diff --git a/3rdPartner/SQLiteCpp-3.3.1.zip b/3rdPartner/SQLiteCpp-3.3.1.zip new file mode 100644 index 0000000..1112976 Binary files /dev/null and b/3rdPartner/SQLiteCpp-3.3.1.zip differ diff --git a/3rdPartner/boa-0.94.13.tar.gz b/3rdPartner/boa-0.94.13.tar.gz new file mode 100644 index 0000000..6b0c8d9 Binary files /dev/null and b/3rdPartner/boa-0.94.13.tar.gz differ diff --git a/3rdPartner/boa-0.94.13/CREDITS b/3rdPartner/boa-0.94.13/CREDITS new file mode 100644 index 0000000..1b11f97 --- /dev/null +++ b/3rdPartner/boa-0.94.13/CREDITS @@ -0,0 +1,38 @@ +Liam Widdowson + Lots of improvement for Solaris support + +Wes Hardaker + +Michal Kara + mmap_cache buglet fix + +Matt Callaway + CGI chdir issue + +Jari Korva + IPv6 patch + +William Meadows + escape.c bug notification and (first) fix + +Thomas Neumann + *BSD compilation/core bugfixes + +Paul Saab + Remove SO_REUSEADDR setting on each client socket + +David N. Welton + Added "Listen" directive for server bind address + +Craig Silverstein + patches for config.h and config.c + +Russ Nelson + Original, Experimental IP-based Virtual Host code + +Landon Curt Noll http://www.isthe.com/chongo + Allow non-standard date format 31 September 2000 23:59:59 GMT + Skip whitespace before HTTP/major.minor + +Brieuc Jeunhomme + fix buglet in alias expansion diff --git a/3rdPartner/boa-0.94.13/ChangeLog b/3rdPartner/boa-0.94.13/ChangeLog new file mode 100644 index 0000000..5558c08 --- /dev/null +++ b/3rdPartner/boa-0.94.13/ChangeLog @@ -0,0 +1,433 @@ +** Changes from 0.94.12 to 0.94.13 + * Change many instances of log_error_mesg + exit to DIE macro + * Change all instance of log_error_mesg (without exit) to WARN macro + * do a much better job of checking return values from malloc and + especially strdup. + * check results of calling umask and getrlimit + * server_s is no longer a global int + * check results of fork via switch instead of if (fork()) + * check for getopt.h and include it if found + * remove unused #defines, and add WARN macro, and replace + many calls to log_error_mesg(..) with WARN macro + * fix bug in get_commonlog_time where time_offset calculation was + the opposite of what it should be ('-' and '+' were swapped) + * fix compatability bug with old and newer versions of flex/yacc + * add check for AC_FUNC_MMAP to configure.in + * fix really lame thinko in normalize_path, which would prepend the + results of earlier calls to results from later calls + * Add MaxConnections, a configuration directive which allows the + user to specify the maximum number of connections that Boa will + accept concurrently. + * add SERVER_ADDR and REQUEST_URI to environment of CGI + * handle SIGBUS during writes of data that has been memory mapped + * minor optimization in select.c that prevents DEAD requests from + being added to the block set + * fix bug in CGI environment script_name - closes sf.net bug #576725 + * make 'status' variable local to requests.c, not local to every file + by forgetting to declare 'extern' in globals.h :-| + * make getsockname non-fatal, and do it every time because we may + need it for the CGI + * some minor refactoring optimizations in hash.c + +** Changes from 0.94.11 to 0.94.12 + * Renamed Changelog ChangeLog, and moved up to top-level directory + * Next 3 items due in part or whole thanks to + Liam Widdowson + * when printf'ing a pid type, force to int, because it could be + something else on other platforms. Should probably change it to + a long, and use that. + * backported chroot commandline support from 0.95 + * backported support for strdup, strstr, alphasort, and scandir + from 0.95 + * Fixed src/Makefile.in -- it didn't remove index_dir.o + * backport create_temporary_file from 0.95 + (instead of using tmpnam) + * Allow non-standard date format 31 September 2000 23:59:59 GMT + Patch by Landon Curt Noll + * Skip whitespace before HTTP/major.minor + Adapted patch from Landon Curt Noll + * open /dev/null first thing (affects chrooting) + * properly handle sigalrm -- use sigalrm_flag and sigalrm_run + instead of handling the signal in the signal handler + * update manpage slightly + * send 400 BAD Request when resource does not start with '/' + * add grp.h to boa.h's includes -- remove from boa.c and config.c + * removed duplicate header includes from boa.c, config.c, get.c, + ip.c, request.c, response.c + * factor out creating the server socket and dropping privs + into create_server_socket and drop_privs + * type all functions in boa.c (except main) as static + * set umask after opening /dev/null + * tie stdin/stdout to /dev/null before commandline parse + * removed old, unused chroot code + * move builds_needs_escape earlier in the startup + * move fork later in the startup + * type all c_set_* as static in config.c + * don't bother trying to change uid/gid (or error if the + requested uid/gid doesn't exist) if not UID 0 + * return more appropriate error code when foo.html gives + access denied, but foo.html.gz gives some other error + (essentially report error associated with foo.html, not foo.html.gz) + * send NOT Implemented when an unknown method is attempted + * always attempt a 32k read right before close + (stopgap until blackhole can be merged) + * allow more than 1 space in logline between method, resource, + and http version + * don't use inline functions + * update configure.in so that autoconf 2.50 doesn't complain (as much) + * properly use VPATH and srcdir according to autoconf docs + * change curly-braces to parentheses in Makefilein + * use $^ instead of manually listing the dependencies in Makefile.in + * remove tests section in Makefile.in + * write tags not TAGS in Makefile.in + * Add gethostbyname and inet_aton to function checks + * Add code from 0.95 which checks for socket in -lsocket, + inet_aton in -lresolv, and gethost{by}name in -lnsl + * Also remove broken bc-based "how big is an unsigned int" checks: + assume minimum of 32 bits and check in escape.c at runtime. + * Added new file: README.chroot.solaris, based on a + modified version by Liam Widdowson + * Add check_struct_for.m4, which allows us to check a structure + for a member (found at http://www.gnu.org/software/ac-archive/ + authored by Wes Hardaker + * Call "aclocal -I ." to rebuild aclocal.m4 + * Using new check-struct-for-member autoconf macro, check + for tm_gmtoff and tm_zone in struct tm -- useful in + portability tests for localtime. + * Also check sockaddr_in for structure sin_len so we can set + it properly. + * index_dir.c (which ends up in boa_indexer) can now be compiled + with USE_LOCALTIME, and if so, it will report the local time + using the timezone name. Otherwise it uses UTC time and UTC + timezone designation. + * fix buglet in mmap_cache.c which shows up when under + heavy load by many different files. + Found and squashed by Michal Kara + * normalize paths on Aliases, log files, server root, dirmaker + This makes sure that paths are 'absolute' + * don't generate DOCUMENT_ROOT or SERVER_ROOT, + CGIs have no business knowing that information + * if CGI, chdir to the cgi's root path + Bug found by Matt Callaway + * remove ChrootPath and PidFile directives from the parser + (they aren't used anyway) + * keep track of maximum file descriptor in use to optimize call + to select() + * apply IPv6 patch from Jari Korva + * optimize keep-alive copy data routine + * try to use memcpy instead of strcpy/strcat in more places (alias.c) + * update .depend file + * use fcntl + GET_FL to get a file descriptor's flags, then + add or remove only the bits we want to set. This prevents + accidentally setting or unsettings bits we don't have anything + to do with inadvertantly. (removed, at least temporarily. + Show me a system where it is needed -- LRD) + * make sure to call FD_ZERO when we handle a restart + * in read.c, don't call boa_perror on read failure -- socket is + dead or messed up anyway, no reason to try to write to it. + * explicit .SUFFIXES in Makefile.in + * boa.objdump target added + * use @MAKE_SET@ (for when $(MAKE) != "make") + * add -Wundef -Wwrite-strings -Wredundant-decls -Winline to GCC_FLAGS + * change Paul Phillips' and Larry Doolittle's emails in source + * add --disable-debug, --enable-profile, --with-dmalloc, and --with-efence + * test for failed-but-return-was-successful setuid: + http://www.securityfocus.com/bid/1322 + * use _exit not exit in CGI child + * always place new keepalive request on blocked list, we can't be + sure of the state of the active list, and since enqueue places + things at the *front* of the list, it doesn't do us much good + to place the new request on the active list anyway. + * update some Copyright statements for 2002 + * When comparing the uri to an alias, only compare if + the uri length is greater than or equal to the length of the alias + * in init_script_alias, make sure to check for document_root before + trying to use it + * script_name is now just a copy of the request, rather + than some complicated variation on the pathname + * change the way the CGI environment is handled. + Now, it is allocated at request allocation time, and exists + throughout the life of the structure. + * check memory allocations, etc.. when creating the static + CGI environment and when making new CGI environment variables + * wait until process_option_end to call unescape_uri, clean_pathname, + and translate_uri + * remove debian package information + * move RedHat packaging information to contrib + * remove tests -- they weren't usable anyway + * add some new hash routines, and use djb2 (a variant on a + hash algorithm popularized by Dan J. Bernstein) + * a side-effect of the new hash routines is a bugfix, + involving negative return values from hash routines. + This has been fixed. + * add a routine, show_hash_stats, which is called with other + statistical output via sigalarm + * remove some duplicate prototypes from config.c + * make simple_itoa take an unsigned int + * try to make NOBLOCK handling in compat.h compatible with Solaris + * make sure to update current_time before calling signal handlers + * alter primary loop to make sure that select gets called even + when there are requests that are not blocking, and call fdset_update + and process_requests (when appropriate) after signal handlers but + before select to make sure that blocked requests are still handled + by select after a sighup. (Thanks to Karl Olsen) + * pull select loop into select.c + * poll server socket once per active connection + * add send_r_service_unavailable and use it when appropriate + * state uptime in seconds at normal program termination + * include sys/fcntl.h if it is found by configure + * fix POST bug where a content-length < 0 would cause Boa to + consume its full share of CPU until killed + Bug report by Landon Curt Noll + * add CGIPath configuration variable + based upon a patch by Landon Curt Noll + * add function boa_atoi, which wraps atoi, but does not + accept negative values. Additionally, it checks to make sure + the converted value and the original value are the same, avoiding + issues like "124.3" -> "123" and "123abc" -=> "123". + Either a value is an int or it isn't - no middle ground. + * use boa_atoi to convert content-length from client. + * add new #define - SINGLE_POST_LIMIT_DEFAULT, which defines + (in bytes) the *default* single_post_limit. + * single_post_limit is now in bytes. + * when adding aliases, only "normalize" paths that start + with "./" - this is a departure from previous behavior + * add "?" to the list of characters that it is safe to leave unescaped + * clean up Makefile.in of no-longer-pertinent comments + * add send_r_bad_gateway and use it + * tie stderr to either cgi_log_fd or devnullfd - either way + make sure stderr is a valid filehandle before cgi execution + * cgi_env is no longer allocated, it's part of the struct now + * fix bug in CgiPath logic + * when unable to allocate memory for an environment variable, log it + * add clear_common_env, which de-allocates the cgi_common_env stuff + [NEVER USE THIS outside of a terminal signal handler!] + * don't be so wasteful of memory in normalize_path + * adapted fix for alias expansion from Brieuc Jeunhomme + +** Changes from 0.94.10.1 to 0.94.11 + * use LIBS in Makefile.in (which propagates from autoconf) + * properly free memory allocated by scandir in index_dir.c + * rearrange some header files and includes + * on reads and writes, don't check for -1, check for < 0 + * include fix by William Meadows + for escape.c which fixes segfaults due to improper allocation + * above fix by William Meadows no longer needed; + escape.c and escape.h rewritten by Larry Doolittle -- requires + at least 32 bit words, but is correct (jdn's 1st attempt was faulty) + +** Changes from 0.94.10 to 0.94.10.1 + * Actually update the SERVER_VERSION in src/defines.h + +** Changes from 0.94.9 to 0.94.10 + * Fixes escaping rules + * Fixes segfault when directory_index is undefined and + directory needs to be generated + * adds dummy signal handlers for SIGUSR1 and SIGUSR2 (Closes SF #425921) + * Update documentation regarding mime.types (Closes Debian #69991) + * Make sure documentation builds (Closes Debian #110818) + +** Changes from 0.94.8.3 to 0.94.9 + * src/Makefile.in updated to take CFLAGS, LIBS, and LDFLAGS + from autoconf + * Update escaping rules with latest RFC + * unescape_uri skips fragments and also stop parsing at '?' + * Don't accept fd over FD_SETSIZE in request.c:get_request + * use backported documentation from 0.95 + * make sure POST fd gets closed even on client cancel + * use backported index_dir.c from 0.95 + * support subdirectories in ScriptAlias directories + * add SinglePostLimit (int, in Kilobytes) to config system + * check for ENOSPC on body write + * use environment variable TMP (or "/tmp" if not available), + and chdir there when boa exits. + * add 1-time-only hack to make a 32kB read at the end of a request + on POST or PUT + * close unused file descriptors (/dev/null in boa.c, and the + unused part of the pipes call in cgi.c) + * made Makefile.in VPATH happy + +** Changes from 0.94.8.2 to 0.94.8.3 + * Move unescape_uri *before* clean_pathname to prevent + encoding of / and .. in pathname + * wrap execution of GUNZIP in cgi.c with #ifdef GUNZIP + * stop parsing when fragment found in URL ('#') + +** Changes from 0.94.8.1 to 0.94.8.2 + * close pipes[1] in child and generate HTTP_REFERER environment + variable in cgi.c + * Minor changes to the Debian package + +** Changes from 0.94.8 to 0.94.8.1 + * Change umask call from (umask(0600)) to (umask(~0600)) + +** Changes from 0.94.7 to 0.94.8 + * Fix major thinko in temp file permissions + * unlink temporary file immediately following creation + * implement maximum # of active connections at 10 less than RLIMIT_NOFILE + to avoid or eliminate crashes resulting from running out of + file descriptors + * Fix thinko in POST + +** Changes from 0.94.6 to 0.94.7 + * STDIN and STDOUT are now tied to /dev/null + * sets PATH_MAX to 2048 if not defined (for Hurd) + * core dumps (should never happen) would be located in /tmp + * alter behavior when select gets a EBADF + * add translation for the \" char -> " + * remove use of sys_errlist. Use perror. + * better makedist.sh (still a stupid program though) + +** Changes from 0.94.5 to 0.94.6 + * Removed doc++ commenting + * Removed erroneous debugging statments + * Move some stuff out of config.c (read_config_file) to boa.c + * Altered some of fixup_server_root() + * Bug fix in get.c re: automatic gunzip + * Added some stubs for chroot code (*not* ready yet) + +** Changes from 0.94.4 to 0.94.5 + * Alteration of most of the comments and such for doc++ use + * Fixed buffer overflow in alias.c + * Fixed buffer underflow in util.c + +** Changes from 0.94.3 to 0.94.4 + * Better escaping of data to user, both for HTTP headers and HTML body + * Proper escaping of output in CGI example perl scripts + +** Changes from 0.94.0 to 0.94.2 + * Fixed obnoxious pipeline bug + * Fixed (sorta) a compilation/core bug for *BSD systems + Original code by Thomas Neumann + * Moved to GPLv2 + * Changed manpage to section 8 + * boa.sgml now references a .png file instead of evil .gif + +** Changes from 0.93.19.2 to 0.94.0 + * Added UseGMT to the configuration parser + * util.c commonlog now logs in Apache-style commonlog time format + * Remove SO_SNDBUF on-start message + +** Changes from 0.93.19 to 0.93.19.2 + * Changed to combined log (from NCSA access_log format) ala Drew Streib + * Altered POST cgi code to handle bug in Netscape + * SO_SNDBUF changes by Larry + +** Changes from 0.93.17.2 to 0.93.19 (all 0.93.18.x changes inclusive) + * Update of some copyright statements for 99 + * Replacement of sprintf with strlen/memcpy or strcpy/strcat + wherever possible + * Significant rearrangement in alias.c, minor functional differences + (some CGI environment variables handled differently) + * Removal of die function. Replace with log_err_mesg and exit. + * initial IPv6 stubs and support + * Move #include "config.h" to top of boa.h where it will do some good + * Stubs and functions for strstr and strdup + * Seperation of buffer code into it's own file + * Significant changes to cgi.c et al (cgi_header.c, etc...) + * Speed patches by removal of "extra" calls to time(): Use global variable! + * pipelining changes... it works now. + * require content-length from clients (ala rfc1945) + * alter body_read and body_write to work more efficiently with known content-length + * move read(2) part to *after* parsing... + * added support for additional header message in send_redirect_temp + * change use of NO_ZERO_FILL_LENGTH to offsetof() use + * Remove SO_REUSEADDR setting on each client socket, Paul Saab + * Avoid SO_SNDBUF setting if possible + * Large quantities of otherwise not-insignificant changes + +** Changes from 0.93.17.2 to 0.93.17.3 + * Put on-the-fly directories back in, stripped down from the 0.92 version + * Fixed DocumentRoot, ServerAdmin and ServerName null-value handling in + CGI environment generation + * Fixed argument order in Script* directives (bug introduced in 0.93.17.2) + * Got rid of MAX_CGI_VARS because it was not being used consistently, or + for that matter, at all, really. + * Added some more FASCIST_LOGGING to cgi.c + * Minor mmap patch by LRD for request.c + +** Changes from 0.93.17.1 to 0.93.17.2 + * Added "Listen" directive for server bind address, as most recently + suggested by David N. Welton + * Put virtualhost feature in, was experimental in 0.92q + +** Changes from 0.93.16.2 to 0.93.17.1 + * New config file parser (supposed to be more maintainable) (LRD) + * Support for "|command" and ":host:port" syntax for logfiles (untested) (LRD) + +** Changes for the 0.93 version ** + * Huge quantities of changes + * keepalive Bugfix in 0.93.16.2 by Jon Nelson + report by Craig Silverstein of Google fame. + * patch for config.h by Craig Silverstein + * fixed "Parent Directory" problem in boa_indexer for title "/" + (Debian bug #36165) + * More Craig Silverstein + modifications, namely: + ErrorLog (if omitted, print to stderr) + DocumentRoot (if omitted, can only server user-dir files) + DirectoryIndex (if omitted, always use DirectoryMaker) + MimeTypes (if omitted, don't load -- users can use AddType instead) + + +** Changes from v0.92o to v0.92p ** + + * Documented misbehavior of CGI, SIGHUP, short aliases, stale dircache. + * Documented how to patch signals.c for use on SunOS. + * Closed file descriptor leak when redirecting a bare directory URL to + one with an appended "/". + * Closed potential file descriptor leak if errors encountered generating + on-the-fly index. + * Cleaned up include file handling to be simultaneously compatible with + Linux, SunOS, HP-UX, and AIX. + * Supress message body for codes 302, 400, 403, 404, 500, and 501 if + incoming request is "HEAD". + +** Changes from v0.91 to v0.92o ** + (0.92o released 27 December, 1996) + + * Maintenance handover from Paul Phillips to Larry Doolittle + * Changed (char)NULL to '\0' + * Cleaned up signal handler prototypes in signals.c + * Modified handling of CGI environment variable PATH_TRANSLATED, + should now work the same as NCSA. + * More conservative buffer size in add_cgi_env() + * Build argv list for a CGI script according to spec + * Speedup process_header_line, eliminate potential memory leak + * Occasional spelling fixes and lint removal + * Added REMOTE_PORT env var for CGI scripts, to allow easy ident lookups + * Changed rfc822 time format + * Log timeouts and broken connections + * Fix mime suffix handling for filenames with multiple "."s + * Initialize conn->time_last, fixes bug with rapid-fire connections + * Performance tweak to req_write() + * Changed http_version from float to char[8] + * Rewrote on-the-fly directory generation; it works now + * Added user configurable dircache directory in boa.conf + * Fixed "simple" response bugs, including incorrect CGI handling + * Keepalive (HTTP/1.1 draft) support, mostly by Jon Nelson + * Close data_fd in 304 Not Modified flow of control + * Switch socket flags to non-blocking before cgi handoff + * Try to handle errno properly in the face of multiple errors + * Close fd's of all other transactions before cgi handoff + * Move real work for sighup and sigchld out of signal handler + * Fix free(req->cgi_env) in request.c + * Response message cleanup - better match to HTML-2.0 DTD + * Experimental Virtual Host code from Russ Nelson + * Expand buffer for escaped URI in init_get() + * SIGTERM triggers lame duck mode until all pending transactions complete + * Close and unlink temp file for POST in parent process + +** Changes from v0.90 to v0.91 ** + + * Cleaned up main while loop + * Optimized request line parsing + * Added state machine for header reads -- necessary to deal wtih + possibility of obtaining header data in multiple reads. This + also allows interactive use of server. + * Added 500/501 return codes for various conditions + +** v0.90 ** + + * Initial release + diff --git a/3rdPartner/boa-0.94.13/Gnu_License b/3rdPartner/boa-0.94.13/Gnu_License new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/3rdPartner/boa-0.94.13/Gnu_License @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 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 Library 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library General +Public License instead of this License. diff --git a/3rdPartner/boa-0.94.13/README b/3rdPartner/boa-0.94.13/README new file mode 100644 index 0000000..6ba94d7 --- /dev/null +++ b/3rdPartner/boa-0.94.13/README @@ -0,0 +1,15 @@ +This is Boa, a high performance web server for Unix-alike computers, +covered by the Gnu General Public License. This is version 0.94, +released January 2000. It is well tested and appears to be of +at least "gamma" quality. + +Boa was created in 1991 by Paul Phillips . It is now being +maintained and enhanced by Larry Doolittle +and Jon Nelson . + +For more information (including installation instructions) examine +the file docs/boa.txt or docs/boa.dvi, point your web browser to docs/boa.html, +or visit the Boa homepage at + + http://www.boa.org/ + diff --git a/3rdPartner/boa-0.94.13/boa.conf b/3rdPartner/boa-0.94.13/boa.conf new file mode 100644 index 0000000..e3775db --- /dev/null +++ b/3rdPartner/boa-0.94.13/boa.conf @@ -0,0 +1,194 @@ +# Boa v0.94 configuration file +# File format has not changed from 0.93 +# File format has changed little from 0.92 +# version changes are noted in the comments +# +# The Boa configuration file is parsed with a lex/yacc or flex/bison +# generated parser. If it reports an error, the line number will be +# provided; it should be easy to spot. The syntax of each of these +# rules is very simple, and they can occur in any order. Where possible +# these directives mimic those of NCSA httpd 1.3; I saw no reason to +# introduce gratuitous differences. + +# $Id: boa.conf,v 1.25 2002/03/22 04:33:09 jnelson Exp $ + +# The "ServerRoot" is not in this configuration file. It can be compiled +# into the server (see defines.h) or specified on the command line with +# the -c option, for example: +# +# boa -c /usr/local/boa + + +# Port: The port Boa runs on. The default port for http servers is 80. +# If it is less than 1024, the server must be started as root. + +Port 80 + +# Listen: the Internet address to bind(2) to. If you leave it out, +# it takes the behavior before 0.93.17.2, which is to bind to all +# addresses (INADDR_ANY). You only get one "Listen" directive, +# if you want service on multiple IP addresses, you have three choices: +# 1. Run boa without a "Listen" directive +# a. All addresses are treated the same; makes sense if the addresses +# are localhost, ppp, and eth0. +# b. Use the VirtualHost directive below to point requests to different +# files. Should be good for a very large number of addresses (web +# hosting clients). +# 2. Run one copy of boa per IP address, each has its own configuration +# with a "Listen" directive. No big deal up to a few tens of addresses. +# Nice separation between clients. +# The name you provide gets run through inet_aton(3), so you have to use dotted +# quad notation. This configuration is too important to trust some DNS. + +#Listen 192.68.0.5 + +# User: The name or UID the server should run as. +# Group: The group name or GID the server should run as. + +User nobody +Group nogroup + +# ServerAdmin: The email address where server problems should be sent. +# Note: this is not currently used, except as an environment variable +# for CGIs. + +#ServerAdmin root@localhost + +# ErrorLog: The location of the error log file. If this does not start +# with /, it is considered relative to the server root. +# Set to /dev/null if you don't want errors logged. +# If unset, defaults to /dev/stderr + +ErrorLog /var/log/boa/error_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log" + +# AccessLog: The location of the access log file. If this does not +# start with /, it is considered relative to the server root. +# Comment out or set to /dev/null (less effective) to disable +# Access logging. + +AccessLog /var/log/boa/access_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log" + +# UseLocaltime: Logical switch. Uncomment to use localtime +# instead of UTC time +#UseLocaltime + +# VerboseCGILogs: this is just a logical switch. +# It simply notes the start and stop times of cgis in the error log +# Comment out to disable. + +#VerboseCGILogs + +# ServerName: the name of this server that should be sent back to +# clients if different than that returned by gethostname + gethostbyname + +#ServerName www.your.org.here + +# VirtualHost: a logical switch. +# Comment out to disable. +# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' +# become /var/www/IP-A. +# Example: http://localhost/ becomes /var/www/127.0.0.1 +# +# Not used until version 0.93.17.2. This "feature" also breaks commonlog +# output rules, it prepends the interface number to each access_log line. +# You are expected to fix that problem with a postprocessing script. + +#VirtualHost + +# DocumentRoot: The root directory of the HTML documents. +# Comment out to disable server non user files. + +DocumentRoot /var/www + +# UserDir: The name of the directory which is appended onto a user's home +# directory if a ~user request is recieved. + +UserDir public_html + +# DirectoryIndex: Name of the file to use as a pre-written HTML +# directory index. Please MAKE AND USE THESE FILES. On the +# fly creation of directory indexes can be _slow_. +# Comment out to always use DirectoryMaker + +DirectoryIndex index.html + +# DirectoryMaker: Name of program used to create a directory listing. +# Comment out to disable directory listings. If both this and +# DirectoryIndex are commented out, accessing a directory will give +# an error (though accessing files in the directory are still ok). + +DirectoryMaker /usr/lib/boa/boa_indexer + +# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker +# has been commented out, the the on-the-fly indexing of Boa can be used +# to generate indexes of directories. Be warned that the output is +# extremely minimal and can cause delays when slow disks are used. +# Note: The DirectoryCache must be writable by the same user/group that +# Boa runs as. + +# DirectoryCache /var/spool/boa/dircache + +# KeepAliveMax: Number of KeepAlive requests to allow per connection +# Comment out, or set to 0 to disable keepalive processing + +KeepAliveMax 1000 + +# KeepAliveTimeout: seconds to wait before keepalive connection times out + +KeepAliveTimeout 10 + +# MimeTypes: This is the file that is used to generate mime type pairs +# and Content-Type fields for boa. +# Set to /dev/null if you do not want to load a mime types file. +# Do *not* comment out (better use AddType!) + +MimeTypes /etc/mime.types + +# DefaultType: MIME type used if the file extension is unknown, or there +# is no file extension. + +DefaultType text/plain + +# CGIPath: The value of the $PATH environment variable given to CGI progs. + +CGIPath /bin:/usr/bin:/usr/local/bin + +# SinglePostLimit: The maximum allowable number of bytes in +# a single POST. Default is normally 1MB. + +# AddType: adds types without editing mime.types +# Example: AddType type extension [extension ...] + +# Uncomment the next line if you want .cgi files to execute from anywhere +#AddType application/x-httpd-cgi cgi + +# Redirect, Alias, and ScriptAlias all have the same semantics -- they +# match the beginning of a request and take appropriate action. Use +# Redirect for other servers, Alias for the same server, and ScriptAlias +# to enable directories for script execution. + +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: Redirect /bar http://elsewhere/feh/bar + +# Aliases: Aliases one path to another. +# Example: Alias /path1/bar /path2/foo + +Alias /doc /usr/doc + +# ScriptAlias: Maps a virtual path to a directory for serving scripts +# Example: ScriptAlias /htbin/ /www/htbin/ + +ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + diff --git a/3rdPartner/boa-0.94.13/contrib/README.chroot.solaris b/3rdPartner/boa-0.94.13/contrib/README.chroot.solaris new file mode 100644 index 0000000..afc2bdc --- /dev/null +++ b/3rdPartner/boa-0.94.13/contrib/README.chroot.solaris @@ -0,0 +1,158 @@ +Boa chroot mini-HOWTO +=================================================== +by Liam Widdowson +modified slightly by Jon Nelson + +The following is required to get Boa working in a chroot jail. Whilst this +README is about Solaris specifically, the principals here will apply to +other operating systems. + +The following assumptions are made: + + - Boa has been compiled and installed in /opt/boa + - The chroot jail will be created in /var/www + - A user and group 'www' have been created. + +Make sure you change the above directories to suit your system. + +Your boa.conf should look something like the following: + +## begin config file + +Port 80 +User www +Group www + +# Note, these paths are used releative to the chroot jail. i.e /var/log is +# really /var/www/var/log +ErrorLog /var/log/error_log +AccessLog /var/log/access_log +DocumentRoot /var/www + +# You won't be able to access user home directories outside of the chroot +# but you may replicate them into the chroot jail. You'll need a working +# and valid /etc/passwd as well +UserDir public_html + +DirectoryIndex index.html + +# this binary must exist in the chroot jail. Again, the path is relative. +DirectoryMaker /usr/bin/boa_indexer + +KeepAliveMax 1000 +KeepAliveTimeout 10 + +# this file must exist inside AND outside the chroot jail. +MimeTypes /opt/boa/mime.types + +DefaultType text/plain + +## end config file + +Once the configuration file is created, you must begin creating your +chroot jail. A variety of libraries, timezone files, device files and other +bits and pieces must be copied in order for this to work. Below is a ls -lR +of what your jail should be at a minimum: + +.: +total 10 +drwxr-xr-x 2 root other 512 Jan 21 18:58 dev +drwxr-xr-x 2 root other 512 Jan 21 19:20 etc +drwxr-xr-x 3 root other 512 Jan 21 19:20 opt +drwxr-xr-x 5 root other 512 Jan 21 19:08 usr +drwxr-xr-x 4 root other 512 Jan 21 18:57 var + +./dev: +total 0 +crw-rw-rw- 1 root other 13, 2 Jan 21 18:58 null +crw-rw-rw- 1 root other 41, 0 Jan 21 18:58 udp + +./etc: +total 16 +-r-xr-xr-x 1 root other 482 Jan 21 19:20 TIMEZONE +-r--r--r-- 1 root other 74 Jan 21 19:20 hosts +-rw-r--r-- 1 root other 1239 Jan 21 19:20 netconfig +-rw-r--r-- 1 root other 1298 Jan 21 19:20 nsswitch.conf +-r--r--r-- 1 root other 514 Jan 21 19:44 passwd +-rw-r--r-- 1 root other 94 Jan 21 19:20 resolv.conf +drwx------ 2 root other 512 Jan 21 19:20 boa + +./boa: +total 4 +-rw-r--r-- 1 root other 1234 Jan 21 19:26 boa.conf + +./opt: +total 2 +drwxr-xr-x 2 root other 512 Jan 21 19:26 boa + +./opt/boa: +total 20 +-rw-r--r-- 1 root other 9964 Jan 21 19:26 mime.types + +./usr: +total 6 +drwxr-xr-x 2 root other 512 Jan 21 19:21 bin +drwxr-xr-x 2 root other 512 Jan 21 19:03 lib +drwxr-xr-x 3 root other 512 Jan 21 19:08 share + +./usr/bin: +total 18 +-rwxr-xr-x 1 root other 8944 Jan 21 19:23 boa_indexer + +./usr/lib: +total 5094 +-rwxr-xr-x 1 root other 185020 Jan 21 19:03 ld.so.1 +-rwxr-xr-x 1 root other 1126652 Jan 21 18:56 libc.so.1 +-rwxr-xr-x 1 root other 4308 Jan 21 18:56 libdl.so.1 +-rwxr-xr-x 1 root other 24968 Jan 21 18:56 libmp.so.2 +-rwxr-xr-x 1 root other 883500 Jan 21 18:56 libnsl.so.1 +-rwxr-xr-x 1 root other 265860 Jan 21 18:56 libresolv.so.2 +-rwxr-xr-x 1 root other 70260 Jan 21 18:56 libsocket.so.1 + +./usr/share: +total 2 +drwxr-xr-x 3 root other 512 Jan 21 19:08 lib + +./usr/share/lib: +total 2 +drwxr-xr-x 3 root other 512 Jan 21 19:08 zoneinfo + +./usr/share/lib/zoneinfo: +total 2 +drwxr-xr-x 2 root other 512 Jan 21 19:09 Australia + +./usr/share/lib/zoneinfo/Australia: +total 22 +-rw-r--r-- 1 root other 785 Jan 21 19:09 ACT +-rw-r--r-- 1 root other 785 Jan 21 19:09 Broken_Hill +-rw-r--r-- 1 root other 663 Jan 21 19:09 LHI +-rw-r--r-- 1 root other 785 Jan 21 19:09 NSW +-rw-r--r-- 1 root other 104 Jan 21 19:09 North +-rw-r--r-- 1 root other 160 Jan 21 19:09 Queensland +-rw-r--r-- 1 root other 785 Jan 21 19:09 South +-rw-r--r-- 1 root other 825 Jan 21 19:09 Tasmania +-rw-r--r-- 1 root other 785 Jan 21 19:09 Victoria +-rw-r--r-- 1 root other 150 Jan 21 19:09 West +-rw-r--r-- 1 root other 785 Jan 21 19:09 Yancowinna + +./var: +total 4 +drwxr-xr-x 2 www www 512 Jan 21 19:44 log +drwxr-xr-x 2 root other 512 Jan 21 18:57 www + +./var/log: +total 4 +-rw-r--r-- 1 root other 202 Jan 21 19:47 access_log +-rw-r--r-- 1 root other 590 Jan 21 19:49 error_log + +./var/www: +total 0 + +Note, your boa binary should be kept outside of the chroot jail as +they are not required. + +The commandline issued to boa requires "-r /var/www" which tells +boa to chroot to /var/www before it does anything else, including +reading its configuration file. + +That's all that's required. Start your new chrooting boa up and enjoy! diff --git a/3rdPartner/boa-0.94.13/contrib/redhat/boa.conf b/3rdPartner/boa-0.94.13/contrib/redhat/boa.conf new file mode 100644 index 0000000..8e4b050 --- /dev/null +++ b/3rdPartner/boa-0.94.13/contrib/redhat/boa.conf @@ -0,0 +1,183 @@ +# Boa v0.94 configuration file +# File format has not changed from 0.93 +# File format has changed little from 0.92 +# version changes are noted in the comments +# +# The Boa configuration file is parsed with a lex/yacc or flex/bison +# generated parser. If it reports an error, the line number will be +# provided; it should be easy to spot. The syntax of each of these +# rules is very simple, and they can occur in any order. Where possible +# these directives mimic those of NCSA httpd 1.3; I saw no reason to +# introduce gratuitous differences. + +# $Id: boa.conf,v 1.2 2001/09/25 03:28:31 jnelson Exp $ + +# The "ServerRoot" is not in this configuration file. It can be compiled +# into the server (see defines.h) or specified on the command line with +# the -c option, for example: +# +# boa -c /usr/local/boa + + +# Port: The port Boa runs on. The default port for http servers is 80. +# If it is less than 1024, the server must be started as root. + +Port 80 + +# Listen: the Internet address to bind(2) to. If you leave it out, +# it takes the behavior before 0.93.17.2, which is to bind to all +# addresses (INADDR_ANY). You only get one "Listen" directive, +# if you want service on multiple IP addresses, you have three choices: +# 1. Run boa without a "Listen" directive +# a. All addresses are treated the same; makes sense if the addresses +# are localhost, ppp, and eth0. +# b. Use the VirtualHost directive below to point requests to different +# files. Should be good for a very large number of addresses (web +# hosting clients). +# 2. Run one copy of boa per IP address, each has its own configuration +# with a "Listen" directive. No big deal up to a few tens of addresses. +# Nice separation between clients. +# The name you provide gets run through inet_aton(3), so you have to use dotted +# quad notation. This configuration is too important to trust some DNS. + +#Listen 192.68.0.5 + +# User: The name or UID the server should run as. +# Group: The group name or GID the server should run as. + +User nobody +Group nobody + +# ServerAdmin: The email address where server problems should be sent. +# Note: this is not currently used, except as an environment variable +# for CGIs. + +#ServerAdmin root@localhost + +# ErrorLog: The location of the error log file. If this does not start +# with /, it is considered relative to the server root. +# Set to /dev/null if you don't want errors logged. +# If unset, defaults to /dev/stderr + +ErrorLog /var/log/boa/error_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log" + +# AccessLog: The location of the access log file. If this does not +# start with /, it is considered relative to the server root. +# Comment out or set to /dev/null (less effective) to disable +# Access logging. + +AccessLog /var/log/boa/access_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log" + +# VerboseCGILogs: this is just a logical switch. +# It simply notes the start and stop times of cgis in the error log +# Comment out to disable. + +#VerboseCGILogs + +# ServerName: the name of this server that should be sent back to +# clients if different than that returned by gethostname + gethostbyname + +#ServerName www.your.org.here + +# VirtualHost: a logical switch. +# Comment out to disable. +# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' +# become /var/www/IP-A. +# Example: http://localhost/ becomes /var/www/127.0.0.1 +# +# Not used until version 0.93.17.2. This "feature" also breaks commonlog +# output rules, it prepends the interface number to each access_log line. +# You are expected to fix that problem with a postprocessing script. + +#VirtualHost + +# DocumentRoot: The root directory of the HTML documents. +# Comment out to disable server non user files. + +DocumentRoot /home/httpd/html + +# UserDir: The name of the directory which is appended onto a user's home +# directory if a ~user request is recieved. + +UserDir public_html + +# DirectoryIndex: Name of the file to use as a pre-written HTML +# directory index. Please MAKE AND USE THESE FILES. On the +# fly creation of directory indexes can be _slow_. +# Comment out to always use DirectoryMaker + +DirectoryIndex index.html + +# DirectoryMaker: Name of program used to create a directory listing. +# Comment out to disable directory listings. If both this and +# DirectoryIndex are commented out, accessing a directory will give +# an error (though accessing files in the directory are still ok). + +DirectoryMaker /usr/lib/boa/boa_indexer + +# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker +# has been commented out, the the on-the-fly indexing of Boa can be used +# to generate indexes of directories. Be warned that the output is +# extremely minimal and can cause delays when slow disks are used. +# Note: The DirectoryCache must be writable by the same user/group that +# Boa runs as. + +# DirectoryCache /var/spool/boa/dircache + +# KeepAliveMax: Number of KeepAlive requests to allow per connection +# Comment out, or set to 0 to disable keepalive processing + +KeepAliveMax 1000 + +# KeepAliveTimeout: seconds to wait before keepalive connection times out + +KeepAliveTimeout 10 + +# MimeTypes: This is the file that is used to generate mime type pairs +# and Content-Type fields for boa. +# Set to /dev/null if you do not want to load a mime types file. +# Do *not* comment out (better use AddType!) + +MimeTypes /etc/mime.types + +# DefaultType: MIME type used if the file extension is unknown, or there +# is no file extension. + +DefaultType text/plain + +# AddType: adds types without editing mime.types +# Example: AddType type extension [extension ...] + +# Uncomment the next line if you want .cgi files to execute from anywhere +#AddType application/x-httpd-cgi cgi + +# Redirect, Alias, and ScriptAlias all have the same semantics -- they +# match the beginning of a request and take appropriate action. Use +# Redirect for other servers, Alias for the same server, and ScriptAlias +# to enable directories for script execution. + +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: Redirect /bar http://elsewhere/feh/bar + +# Aliases: Aliases one path to another. +# Example: Alias /path1/bar /path2/foo + +Alias /doc /usr/doc + +# ScriptAlias: Maps a virtual path to a directory for serving scripts +# Example: ScriptAlias /htbin/ /www/htbin/ + +ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ + diff --git a/3rdPartner/boa-0.94.13/contrib/redhat/boa.init b/3rdPartner/boa-0.94.13/contrib/redhat/boa.init new file mode 100644 index 0000000..d416652 --- /dev/null +++ b/3rdPartner/boa-0.94.13/contrib/redhat/boa.init @@ -0,0 +1,45 @@ +#!/bin/sh +# The following two lines enable chkconfig(1) to manipulate this script +# chkconfig: 345 87 13 +# description: Boa is a World Wide Web server. It is used to serve \ +# HTML files and CGI. +# processname: boa +# config: /etc/boa/boa.conf +# There is no pid file + +# Source function library. +. /etc/rc.d/init.d/functions + +# See how we were called. +case "$1" in + start) + echo -n "Starting boa: " + daemon boa + touch /var/lock/subsys/boa + echo + ;; + stop) + echo -n "Shutting down boa: " + killproc boa + echo + rm -f /var/lock/subsys/boa + rm -f /var/run/boa.pid + ;; + status) + status boa + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo -n "Reloading boa: " + killproc boa -HUP + echo + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|status}" + exit 1 +esac + +exit 0 diff --git a/3rdPartner/boa-0.94.13/contrib/redhat/boa.logrotate b/3rdPartner/boa-0.94.13/contrib/redhat/boa.logrotate new file mode 100644 index 0000000..23770e5 --- /dev/null +++ b/3rdPartner/boa-0.94.13/contrib/redhat/boa.logrotate @@ -0,0 +1,6 @@ +/var/log/boa/*_log { + weekly + compress + copytruncate + missingok +} diff --git a/3rdPartner/boa-0.94.13/contrib/redhat/boa.spec b/3rdPartner/boa-0.94.13/contrib/redhat/boa.spec new file mode 100644 index 0000000..a6697df --- /dev/null +++ b/3rdPartner/boa-0.94.13/contrib/redhat/boa.spec @@ -0,0 +1,89 @@ +Summary: a single-tasking high performance http server +Name: boa +Version: 0.94.9 +Release: 1 +Group: System Environment/Daemons +Source: http://www.boa.org/boa-%{version}.tar.gz +Copyright: GNU general public license +Requires: /etc/mime.types +Prereq: /sbin/chkconfig, man, gzip +Provides: setup webserver +Buildroot: /usr/tmp/boa + +%description +Boa is a single-tasking HTTP server. That means that +unlike traditional web servers, it does not fork for each +incoming connection, nor does it fork many copies of +itself to handle multiple connections. It internally mul +tiplexes all of the ongoing HTTP connections, and forks +only for CGI programs (which must be separate processes.) +Preliminary tests show Boa is more than twice as fast as +Apache. + +Boa was created in 1991 by Paul Phillips . It is now being +maintained and enhanced by Larry Doolittle +and Jon Nelson . + +For more information (including installation instructions) examine +the file docs/boa.txt or docs/boa.dvi, point your web browser to docs/boa.html, +or visit the Boa homepage at + + http://www.boa.org/ + +%changelog +* Thu Aug 6 2000 Jonathon D Nelson +- revamp packaging based upon examples provided by + Jules Stuifbergen and others + +%prep +%setup -T -b 0 +%build +(cd src && CFLAGS=$RPM_OPT_FLAGS ./configure --prefix=$RPM_BUILD_ROOT) +(cd src && make) +(cd docs && gzip -c boa.8 > boa.8.gz) +(cd docs && make boa.html) + +%clean +rm -rf $RPM_BUILD_ROOT + +%install +rm -rf $RPM_BUILD_ROOT + +mkdir -p $RPM_BUILD_ROOT/etc/{boa,logrotate.d} +mkdir -p $RPM_BUILD_ROOT/usr/sbin +mkdir -p $RPM_BUILD_ROOT/home/httpd/{html,cgi-bin} +mkdir -p $RPM_BUILD_ROOT/var/log/boa +mkdir -p $RPM_BUILD_ROOT/usr/lib/boa +mkdir -p $RPM_BUILD_ROOT/usr/man/man8 +mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d + +install -m755 src/boa $RPM_BUILD_ROOT/usr/sbin/ +install -m755 src/boa_indexer $RPM_BUILD_ROOT/usr/lib/boa/ +install -m644 redhat/boa.conf $RPM_BUILD_ROOT/etc/boa/ +install -m755 redhat/boa.init $RPM_BUILD_ROOT/etc/rc.d/init.d/boa +mv docs/boa.8.gz $RPM_BUILD_ROOT/usr/man/man8/ +install -m644 redhat/boa.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/boa + +touch $RPM_BUILD_ROOT/var/log/boa/{error,access}_log + +%post +/sbin/chkconfig boa reset + +%preun +/etc/rc.d/init.d/boa stop +/sbin/chkconfig --del boa + +%files +%defattr(-,root,root) +%dir /home/httpd/html +%dir /home/httpd/cgi-bin +%dir /var/log/boa +%doc Gnu_License README docs/* +%doc /usr/man/man8/* +%config /etc/boa/boa.conf +%config /etc/rc.d/init.d/boa +%config /etc/logrotate.d/boa +%attr(600,nobody,nobody)/var/log/boa/error_log +%attr(600,nobody,nobody)/var/log/boa/access_log +/usr/sbin/boa +/usr/lib/boa/boa_indexer diff --git a/3rdPartner/boa-0.94.13/docs/Makefile b/3rdPartner/boa-0.94.13/docs/Makefile new file mode 100644 index 0000000..36a7342 --- /dev/null +++ b/3rdPartner/boa-0.94.13/docs/Makefile @@ -0,0 +1,31 @@ +all: boa.html boa_toc.html boa.dvi boa.info boa.txt + +boa.info: boa.texi + makeinfo --number-sections boa.texi + +boa.dvi: boa.texi + texi2dvi --clean boa.texi + +boa.pdf: boa.texi + texi2dvi --pdf --clean boa.texi + +boa.ps: boa.dvi + dvips -o boa.ps boa.dvi + +boa_toc.html: boa.texi + texi2html -split_chapter -menu boa.texi + +boa.html: boa.texi + makeinfo --html --number-sections --no-split -o - boa.texi | \ + sed -e 's/Node:.*//' | sed -e 's/Next:.*//' | \ + sed -e 's/Previous:.*//' | sed -e 's/Up:.*//' > boa.html + +boa.txt: boa.texi + makeinfo --no-headers --no-split -o boa.txt boa.texi + + +cleanup: + rm -f boa.{cp,fn,fns,ky,log,pg,toc,tp,vr,vrs,aux} *~ + +clean: cleanup + rm -f boa.{html,txt,dvi,ps,pdf,info} boa_*.html diff --git a/3rdPartner/boa-0.94.13/docs/boa.8 b/3rdPartner/boa-0.94.13/docs/boa.8 new file mode 100644 index 0000000..15a8caa --- /dev/null +++ b/3rdPartner/boa-0.94.13/docs/boa.8 @@ -0,0 +1,196 @@ +.TH BOA 8 "Jan 22 2000" "Version 0.94" +.SH NAME +.B boa \- a single\-tasking high performance http server +.SH SYNOPSIS +.B boa +.RB [ -c +.IR server_root ] +.RB [ -r +.IR chroot ] +.RB [ -d ] +.SH DESCRIPTION +Boa is a single-tasking HTTP server. That means that unlike traditional web +servers, it does not fork for each incoming connection, nor does it fork many +copies of itself to handle multiple connections. It internally multiplexes all +of the ongoing HTTP connections, and forks only for CGI programs (which must be +separate processes.) Preliminary tests show Boa is more than twice as fast as +Apache. +.PP +The primary design goals of Boa are speed and security. Security, in the sense +of "can't be subverted by a malicious user", not "fine grained access control +and encrypted communications". Boa is not intended as a feature-packed server; +if you want one of those, check out WN from John Franks. Modifications to Boa +that improve its speed, security, robustness, and portability, are eagerly +sought. Other features may be added if they can be achieved without hurting the +primary goals. +.SH OPTIONS +.IP \fB-d\fR +instruct Boa not to fork itself (non-daemonize). + +.IP "\fB-c \fIserver_root\fR" +choose a server root overriding the default SERVER_ROOT #define in +.I defines.h + +The server root must hold your local copy of the configuration file + +.IP "\fB-r \fIchroot\fR" +instruct Boa where to chdir and chroot to. The chdir/chroot +is done before the configuration file is read, or any log +files are opened. + +.SH FILES +.TP +\fBboa.conf\fR \- the sole configuration file for Boa. +The directives in this file are defined in the +.B DIRECTIVES +section. + +.TP +\fBmime.types\fR \- the +MimeTypes +defines what Content-Type Boa will send in an HTTP/1.0 +or better transaction. +.SH DIRECTIVES + +The Boa configuration file is parsed with a lex/yacc or flex/bison generated +parser. If it reports an error, the line number will be provided; it should +be easy to spot. The syntax of each of these rules is very simple, and they +can occur in any order. Where possible, these directives mimic those of NCSA +httpd 1.3; We saw no reason to introduce gratuitous differences. +.PP +Note: the "ServerRoot" is not in this configuration file. It can be compiled +into the server (see +.I defines.h +) or specified on the command line with the +.B -c +option. + +The following directives are contained in the +.I boa.conf +file, and most, but not all, are required. +.TP +Port +This is the port that Boa runs on. The default port for http servers is 80. +If it is less than 1024, the server must be started as root. +.TP +User +The name or UID the server should run as. For Boa to attempt this, the +server must be started as root. +.TP +Group +The group name or GID the server should run as. For Boa to attempt this, +the server must be started as root. +.TP +ServerAdmin +The email address where server problems should be sent. +Note: this is not currently used. +.TP +ErrorLog +The location of the error log file. If this does not start with +/, it is considered relative to the server root. +Set to /dev/null if you don't want errors logged. +.TP +AccessLog +The location of the access log file. If this does not start with /, it is +considered relative to the server root. +Comment out or set to /dev/null (less effective) to disable access logging. +.TP +VerboseCGILogs +This is a logical switch and does not take any parameters. +Comment out to disable. +.TP +ServerName +The name of this server that should be sent back to +clients if different than that returned by gethostname. +.Tp +VirtualHost +This is a logical switch and does not take any parameters. +Comment out to disable. +Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' +become /var/www/IP-A. +Example: http://localhost/ becomes /var/www/127.0.0.1 +.TP +DocumentRoot +The root directory of the HTML documents. If this does not start with +/, it is considered relative to the server root. +.TP +UserDir +The name of the directory which is appended onto a user's home directory if a +~user request is received. +.TP +DirectoryIndex +Name of the file to use as a pre-written HTML directory index. Please make +and use these files. On the fly creation of directory indexes can be slow. +.TP +DirectoryMaker +Name of the program used to generate on-the-fly directory listings. +The program must take one or two command-line arguments, the first +being the directory to index (absolute), and the second, which is optional, +contains what Boa would have the "title" of the document be. +Comment out if you don't want on the fly directory listings. +If this does not start with +/, it is considered relative to the server root. +.TP +KeepAliveMax +Number of KeepAlive requests to allow per connection. Comment out, or set +to 0 to disable keepalive processing. +.TP +KeepAliveTimeout +Number of seconds to wait before keepalive connections time out. +.TP +MimeTypes +The location of the +.I mime.types +file. If this does not start with /, it is considered relative to +the server root. Set to /dev/null if you do not want to load a mime types +file. Do *not* comment out (better use AddType!) +.TP +DefaultType +MIME type used if the file extension is unknown, or there is no file extension. +.TP +AddType [extension...] +Associates a MIME type with an extension or extensions. +.TP +Redirect, Alias, and ScriptAlias +Redirect, Alias, and ScriptAlias all have the same semantics \-\- they +match the beginning of a request and take appropriate action. Use +Redirect for other servers, Alias for the same server, and ScriptAlias to +enable directories for script execution. + +Redirect allows you to tell clients about documents which used to exist +in your server's namespace, but do not anymore. This allows you tell +the clients where to look for the relocated document. + +Alias aliases one path to another. Of course, symbolic links in the +file system work fine too. + +ScriptAlias maps a virtual path to a directory for serving scripts. +.PP +Please see the included +.I boa.conf +for defaults and examples. +.SH HISTORY +Like the Linux kernel, even numbered versions are "stable", and odd numbered +versions are "unstable", or rather, "development". +Versions 0.91 and 0.91beta of Boa were released by Paul Phillips +.PP +Version 0.92 was released by Larry Doolittle on +December 12, 1996. +.PP +Version 0.93 was the development version of 0.94. +.PP +Version 0.94 was released 22 Jan 2000. +.SH BUGS +There are probably bugs, but we are not aware of any at this time. +.SH AUTHOR +Boa was created by Paul Phillips . It is now being maintained and +enhanced by Larry Doolittle + and +Jon Nelson . +.PP +Linux is the development platform at the moment, other +OS's are known to work. If you'd like to +contribute to this effort, contact Larry or Jon via e-mail. +.SH LICENSE +This program is distributed under the GNU General Public License, as noted in +each source file. diff --git a/3rdPartner/boa-0.94.13/docs/boa.texi b/3rdPartner/boa-0.94.13/docs/boa.texi new file mode 100644 index 0000000..8ad26a0 --- /dev/null +++ b/3rdPartner/boa-0.94.13/docs/boa.texi @@ -0,0 +1,772 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename boa.info +@settitle The Boa HTTP Daemon +@set UPDATED Last Updated: 2 Jan 2001 +@set COPYPHRASE Copyright @copyright{} 1996-2001 Jon Nelson and Larry Doolittle +@set VERSION $Revision: 1.5 $ + +@paragraphindent asis +@iftex +@parindent 0pt +@end iftex +@c @setchapternewpage odd +@c %**end of header + +@iftex +@titlepage +@title The Boa HTTP Daemon +@c @sp 2 +@end iftex + +@ifinfo +This file documents Boa, an HTTP daemon for UN*X like machines. +@end ifinfo + +@html +

The Boa HTTP Daemon

+
+@end html + +@ifinfo +@dircategory Networking +@direntry +* Boa: (boa). The Boa Webserver +@end direntry +@end ifinfo + +@comment node-name, next, previous, up +@node Top, Introduction, , (dir) + +Welcome to the documentation for Boa, a high performance +HTTP Server for UN*X-alike computers, covered by the +@uref{Gnu_License,GNU General Public License}. +The on-line, updated copy of this documentation lives at +@uref{http://www.boa.org/,http://www.boa.org/} +@sp 1 +@center @value{COPYPHRASE} +@center @value{UPDATED}, @value{VERSION} + +@iftex +@end titlepage +@contents +@end iftex + +@menu +* Introduction:: +* Installation and Usage:: +* Limits and Design Philosophy:: +* Appendix:: + + -- Detailed Node Listing -- + +Installation + +* Files Used by Boa:: +* Compile-Time and Command-Line Options:: +* boa.conf Directives:: +* Security:: + +Limits and Design Philosophy + +* Limits:: +* Differences between Boa and other web servers:: +* Unexpected Behavior:: + +Appendix + +* License:: +* Acknowledgments:: +* Reference Documents:: +* Other HTTP Servers:: +* Benchmarks:: +* Tools:: +* Authors:: + +@end menu + +@comment node-name, next, previous, up +@node Introduction, Installation and Usage,top,top +@chapter Introduction + +Boa is a single-tasking HTTP server. That means that unlike +traditional web servers, it does not fork for each incoming +connection, nor does it fork many copies of itself to handle multiple +connections. It internally multiplexes all of the ongoing HTTP +connections, and forks only for CGI programs (which must be separate +processes), automatic directory generation, and automatic file +gunzipping. Preliminary tests show Boa is capable of +handling several thousand hits per second on a 300 MHz Pentium and +dozens of hits per second on a lowly 20 MHz 386/SX. + +The primary design goals of Boa are speed and security. Security, +in the sense of @emph{can't be subverted by a malicious user,} not +@emph{fine grained access control and encrypted communications}. +Boa is not intended as a feature-packed server; if you want one of those, +check out +WN (@uref{http://hopf.math.nwu.edu/}) from John Franks. +Modifications to Boa that improve its speed, security, robustness, and +portability, are eagerly sought. Other features may be added if they +can be achieved without hurting the primary goals. + +Boa was created in 1991 by Paul Phillips (@email{psp@@well.com}). +It is now being maintained and enhanced by Larry Doolittle +(@email{ldoolitt@@boa.org}) and Jon Nelson +(@email{jnelson@@boa.org}). +Please see the acknowledgement section for further +details. + +GNU/Linux is the development platform at the moment, other OS's are known to work. +If you'd like to contribute to this effort, contact Larry or Jon via e-mail. + +@comment node-name, next, previous, up +@node Installation and Usage, Limits and Design Philosophy, Introduction,top +@chapter Installation and Usage + +Boa is currently being developed and tested on GNU/Linux/i386. +The code is straightforward (more so than most other servers), +so it should run easily on most modern Unix-alike platforms. Recent +versions of Boa worked fine on FreeBSD, SunOS 4.1.4, GNU/Linux-SPARC, +and HP-UX 9.0. Pre-1.2.0 GNU/Linux kernels may not work because of +deficient mmap() implementations. + +@menu +* Installation:: +* Files Used by Boa:: +* Compile-Time and Command-Line Options:: +* Security:: +@end menu + +@comment node-name, next, previous, up +@node Installation,Files Used by Boa,,Installation and Usage +@section Installation + +@enumerate + @item Unpack + @enumerate + @item Choose, and cd into, a convenient directory for the package. + @item @kbd{tar -xvzf boa-0.94.tar.gz}, or for those of you with an archaic +(non-GNU) tar; @kbd{gzip -cd < boa-0.94.tar.gz | tar -xvf -} + @item Read the documentation. Really. + @end enumerate + @item Build + @enumerate + @item cd into the @t{src} directory. + @item (optional) Change the default SERVER_ROOT by setting the #define + at the top of src/defines.h + @item Type @kbd{./configure; make} + @item Report any errors to the maintainers for resolution, or strike + out on your own. + @end enumerate + @item Configure + @enumerate + @item Choose a user and server port under which Boa can run. The + traditional port is 80, and user @t{nobody} (create if + you need to) is often a good selection for security purposes. + If you don't have (or choose not to use) root privileges, you + can not use port numbers less than 1024, nor can you switch user id. + @item Choose a server root. The @t{conf} directory within the + server root must hold your copy of the configuration file + @emph{boa.conf} + @item Choose locations for log files, CGI programs (if any), and + the base of your URL tree. + @item Set the location of the @t{mime.types} file. + @item Edit @emph{conf/boa.conf} according to your + choices above (this file documents itself). Read through this file + to see what other features you can configure. + @end enumerate + @item Start + @itemize + @item Start Boa. If you didn't build the right SERVER_ROOT into the + binary, you can specify it on the command line with the -c option + (command line takes precedence). + @example + Example: ./boa -c /usr/local/boa + @end example + @end itemize + + @item Test + @itemize + @item At this point the server should run and serve documents. + If not, check the error_log file for clues. + @end itemize + + @item Install + @itemize + @item Copy the binary to a safe place, and put the invocation into + your system startup scripts. Use the same -c option you used + in your initial tests. + @end itemize +@end enumerate + +@comment node-name, next, previous, up +@node Files Used by Boa, Compile-Time and Command-Line Options, Installation,Installation and Usage +@section Files Used by Boa + +@ftable @file +@item boa.conf + This file is the sole configuration file for Boa. The directives in this + file are defined in the DIRECTIVES section. +@item mime.types + The MimeTypes defines what Content-Type Boa will + send in an HTTP/1.0 or better transaction. + Set to /dev/null if you do not want to load a mime types file. + Do *not* comment out (better use AddType!) +@end ftable + +@comment node-name, next, previous, up +@node Compile-Time and Command-Line Options, boa.conf Directives, Files Used by Boa,Installation and Usage +@section Compile-Time and Command-Line Options + +@table @var +@item SERVER_ROOT +@itemx -c + The default server root as #defined by @var{SERVER_ROOT} in + @file{defines.h} can be overridden on the commandline using the + @option{-c} option. The server root must hold your local copy of the + configuration file @file{boa.conf}. + @example + Example: /usr/sbin/boa -c /etc/boa + @end example + +@end table + +@comment node-name, next, previous, up +@node boa.conf Directives, Security, Compile-Time and Command-Line Options, (top) +@section boa.conf Directives + +The Boa configuration file is parsed with a lex/yacc or flex/bison +generated parser. If it reports an error, the line number will be +provided; it should be easy to spot. The syntax of each of these rules +is very simple, and they can occur in any order. Where possible, these +directives mimic those of NCSA httpd 1.3; I (Paul Phillips) saw no reason +to introduce gratuitous differences. + +Note: the "ServerRoot" is not in this configuration file. It can be +compiled into the server (see @file{defines.h}) or specified on the command +line with the @command{-c} option. + +The following directives are contained in the @file{boa.conf} file, and most, +but not all, are required. + +@table @option + @item Port + This is the port that Boa runs on. The default port for http servers is 80. + If it is less than 1024, the server must be started as root. + + @item Listen + The Internet address to bind(2) to, in quadded-octet form (numbers). + If you leave it out, it binds to all addresses (INADDR_ANY). + + The name you provide gets run through inet_aton(3), so you have to + use dotted quad notation. This configuration is too important to trust some DNS. + + You only get one "Listen" directive, if you want service on multiple + IP addresses, you have three choices: + + @enumerate + @item Run boa without a "Listen" directive: + @itemize @bullet + @item All addresses are treated the same; makes sense if the addresses + are localhost, ppp, and eth0. + @item Use the VirtualHost directive below to point requests to different files. + Should be good for a very large number of addresses (web hosting clients). + @end itemize + @item Run one copy of boa per IP address: + @itemize @bullet + @item Each instance has its own configuration with its own + "Listen" directive. No big deal up to a few tens of addresses. Nice separation + between clients. + @end itemize + @end enumerate + + @item User + The name or UID the server should run as. For Boa to attempt this, the + server must be started as root. + + @item Group + The group name or GID the server should run as. For Boa to attempt this, + the server must be started as root. + + @item ServerAdmin + The email address where server problems should be sent. Note: this is not + currently used. + + @item ErrorLog + The location of the error log file. If this does not start with /, it is + considered relative to the server root. Set to /dev/null if you don't want + errors logged. + + @item AccessLog + The location of the access log file. If this does not start with /, it is + considered relative to the server root. Comment out or set to /dev/null + (less effective) to disable access logging. + + @item VerboseCGILogs + This is a logical switch and does not take any parameters. Comment out to + disable. All it does is switch on or off logging of when CGIs are launched and when + the children return. + + @item CgiLog + The location of the CGI error log file. If + specified, this is the file that the stderr of CGIs is tied to. Otherwise, writes + to stderr meet the bit bucket. + + @item ServerName + The name of this server that should be sent back to clients if different + than that returned by gethostname. + + @item VirtualHost + This is a logical switch and does not take any parameters. + Comment out to disable. Given DocumentRoot /var/www, requests on interface `A' or + IP `IP-A' become /var/www/IP-A. Example: http://localhost/ becomes + /var/www/127.0.0.1 + + @item DocumentRoot + The root directory of the HTML documents. If this does not start with /, + it is considered relative to the server root. + + @item UserDir + The name of the directory which is appended onto a user's home directory + if a ~user request is received. + + @item DirectoryIndex + Name of the file to use as a pre-written HTML directory index. Please + make and use these files. On the fly creation of directory indexes + can be slow. + + @item DirectoryMaker + Name of the program used + to generate on-the-fly directory listings. The program must take one or two + command-line arguments, the first being the directory to index (absolute), and the + second, which is optional, should be the "title" of the document be. Comment out if + you don't want on the fly directory listings. If this does not start with /, it is + considered relative to the server root. + + @item DirectoryCache + DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker has been + commented out, the the on-the-fly indexing of Boa can be used to generate indexes + of directories. Be warned that the output is extremely minimal and can cause + delays when slow disks are used. Note: The DirectoryCache must be writable by the + same user/group that Boa runs as. + + @item KeepAliveMax + Number of KeepAlive requests to allow per connection. Comment out, or set + to 0 to disable keepalive processing. + + @item KeepAliveTimeout + Number of seconds to wait before keepalive connections time out. + + @item MimeTypes + The location of the mime.types file. If this does not start with /, it is + considered relative to the server root. + Comment out to avoid loading mime.types (better use AddType!) + + @item DefaultType + MIME type used if the file extension is unknown, or there is no file + extension. + + @item AddType extension... + Associates a MIME type + with an extension or extensions. + + @item Redirect, Alias, and ScriptAlias + Redirect, Alias, and ScriptAlias all have the same semantics -- + they match the beginning of a request and take appropriate action. + Use Redirect for other servers, Alias for the same server, and + ScriptAlias to enable directories for script execution. + + @item Redirect + allows you to tell clients about documents which used to exist + in your server's namespace, but do not anymore. This allows you + tell the clients where to look for the relocated document. + + @item Alias + aliases one path to another. Of course, symbolic links in the + file system work fine too. + + @item ScriptAlias + maps a virtual path to a directory for serving scripts. +@end table + +@comment node-name, next, previous, up +@node Security, , boa.conf Directives, Installation and Usage +@section Security + +Boa has been designed to use the existing file system security. In +@file{boa.conf}, the directives @emph{user} and +@emph{group} determine who Boa will run as, if launched by root. +By default, the user/group is nobody/nogroup. This allows quite a bit +of flexibility. For example, if you want to disallow access to otherwise +accessible directories or files, simply make them inaccessible to +nobody/nogroup. If the user that Boa runs as is "boa" and the groups that +"boa" belongs to include "web-stuff" then files/directories accessible +by users with group "web-stuff" will also be accessible to Boa. + +The February 2000 hoo-rah from +@uref{http://www.cert.org/advisories/CA-2000-02.html,CERT advisory CA-2000-02} +has little to do with Boa. As of version 0.94.4, Boa's escaping rules have +been cleaned up a little, but they weren't that bad before. The example CGI +programs have been updated to show what effort is needed there. If you +write, maintain, or use CGI programs under Boa (or any other server) it's +worth your while to read and understand this advisory. The real problem, +however, boils down to browser and web page designers emphasizing frills +over content and security. The market leading browsers assume (incorrectly) +that all web pages are trustworthy. + +@comment node-name, next, previous, up +@node Limits and Design Philosophy,Appendix, Installation and Usage,top +@chapter Limits and Design Philosophy + +There are many issues that become more difficult to resolve in a single +tasking web server than in the normal forking model. Here is a partial +list -- there are probably others that haven't been encountered yet. + +@menu +* Limits:: +* Differences between Boa and other web servers:: +* Unexpected Behavior:: +@end menu + +@comment node-name, next, previous, up +@node Limits,Differences between Boa and other web servers,,Limits and Design Philosophy +@section Limits + +@itemize @bullet + @item Slow file systems + + The file systems being served should be much faster than the + network connection to the HTTP requests, or performance will suffer. + For instance, if a document is served from a CD-ROM, the whole server + (including all other currently incomplete data transfers) will stall + while the CD-ROM spins up. This is a consequence of the fact that Boa + mmap()'s each file being served, and lets the kernel read and cache + pages as best it knows how. When the files come from a local disk + (the faster the better), this is no problem, and in fact delivers + nearly ideal performance under heavy load. Avoid serving documents + from NFS and CD-ROM unless you have even slower inbound net + connections (e.g., POTS SLIP). + + @item DNS lookups + + Writing a nonblocking gethostbyaddr is a difficult and not very + enjoyable task. Paul Phillips experimented with several methods, + including a separate logging process, before removing hostname + lookups entirely. There is a companion program with Boa + @file{util/resolver.pl} that will postprocess the logfiles and + replace IP addresses with hostnames, which is much faster no matter + what sort of server you run. + + @item Identd lookups + + Same difficulties as hostname lookups; not included. + Boa provides a REMOTE_PORT environment variable, in addition + to REMOTE_ADDR, so that a CGI program can do its own ident. + See the end of @t{examples/cgi-test.cgi}. + + @item Password file lookups via NIS + + If users are allowed to serve HTML from their home directories, + password file lookups can potentially block the process. To lessen + the impact, each user's home directory is cached by Boa so it need + only be looked up once. + + @item Running out of file descriptors + + Since a file descriptor is needed for every ongoing connection + (two for non-nph CGIs, directories, and automatic gunzipping of files), + it is possible though highly improbable to run out of file + descriptors. The symptoms of this conditions may vary with + your particular unix variant, but you will probably see log + entries giving an error message for @t{accept}. + Try to build your kernel to give an adequate number for + your usage - GNU/Linux provides 256 out of the box, more than + enough for most people. +@end itemize + +@comment node-name, next, previous, up +@node Differences between Boa and other web servers,Unexpected Behavior,Limits,Limits and Design Philosophy +@section Differences between Boa and other web servers + +In the pursuit of speed and simplicity, some aspects of Boa differ +from the popular web servers. In no particular order: + +@itemize @bullet + @item @var{REMOTE_HOST} environment variable not set for CGI programs + + The @var{REMOTE_HOST} environment variable is not set for CGI programs, + for reasons already described. This is easily worked around because the + IP address is provided in the @var{REMOTE_HOST} variable, so (if the CGI + program actually cares) gethostbyaddr or a variant can be used. + + @item There are no server side includes (@acronym{SSI}) in Boa + + We don't like them, and they are too slow to parse. We will consider + more efficient alternatives. + + @item There are no access control features + + Boa will follow symbolic links, and serve any file that it can + read. The expectation is that you will configure Boa to run as user + "nobody", and only files configured world readable will come + out. + + @item No chroot option + + There is no option to run chrooted. If anybody wants this, and is + willing to try out experimental code, contact the maintainers. +@end itemize + +@comment node-name, next, previous, up +@node Unexpected Behavior,,Differences between Boa and other web servers,Limits and Design Philosophy +@section Unexpected Behavior + +@itemize @bullet + @item SIGHUP handling + + Like any good server, Boa traps SIGHUP and rereads @file{boa.conf}. + However, under normal circumstances, it has already given away + permissions, so many items listed in @file{boa.conf} can not take effect. + No attempt is made to change uid, gid, log files, or server port. + All other configuration changes should take place smoothly. + + @item Relative URL handling + + Not all browsers handle relative URLs correctly. Boa will not + cover up for this browser bug, and will typically report 404 Not Found + for URL's containing odd combinations of "../" 's. + + Note: As of version 0.95.0 (unreleased) the URL parser has been + rewritten and *does* correctly handle relative URLs. +@end itemize + +@comment node-name, next, previous, up +@node Appendix,,Limits and Design Philosophy,top +@appendix Appendix + +@menu +* License:: +* Acknowledgments:: +* Reference Documents:: +* Other HTTP Servers:: +* Benchmarks:: +* Tools:: +* Authors:: +@end menu + +@comment node-name, next, previous, up +@node License,Acknowledgments,,Appendix +@section License + +This program is distributed under the + @uref{http://www.gnu.org/copyleft/gpl.html,GNU General Public License}. +as noted in each source file: +@* + +@smallexample +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +@end smallexample + +@comment node-name, next, previous, up +@node Acknowledgments,Reference Documents,License,Appendix +@section Acknowledgments + +Paul Phillips wrote the first versions of Boa, up to and including +version 0.91. Version 0.92 of Boa was officially released December 1996 +by Larry Doolittle. Version 0.93 was the development version of 0.94, +which was released in February 2000. + +The Boa Webserver is currently (Feb 2000) maintained and enhanced by +Larry Doolittle (@email{ldoolitt@@boa.org}) +and Jon Nelson (@email{jnelson@@boa.org}). + +We would like to thank Russ Nelson (@email{nelson@@crynwr.com}) +for hosting the @uref{http://www.boa.org,web site}. + +We would also like to thank Paul Philips for writing code that is +worth maintaining and supporting. + +Many people have contributed to Boa, including (but not +limited to) Charles F. Randall (@email{randall@@goldsys.com}) +Christoph Lameter (@email{}), +Russ Nelson (@email{}), Alain Magloire +(@email{}), +and more recently, M. Drew Streib (@email{}). + +Paul Phillips records his acknowledgments as follows: +@quotation +Thanks to everyone in the WWW community, in general a great bunch of people. +Special thanks to Clem Taylor (@email{}), who +provided invaluable feedback on many of my ideas, and offered good +ones of his own. Also thanks to John Franks, author of wn, for +writing what I believe is the best webserver out there. +@end quotation + +@comment node-name, next, previous, up +@node Reference Documents,Other HTTP Servers,Acknowledgments,Appendix +@section Reference Documents + +Links to documents relevant to +@uref{http://www.boa.org/,Boa} +development and usage. Incomplete, we're still working on this. +NCSA has a decent +@uref{http://hoohoo.ncsa.uiuc.edu/docs/Library.html,page} along +these lines, too. + +Also see Yahoo's List +@* @uref{http://www.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/} + +@itemize + @item W3O HTTP page + @* @uref{http://www.w3.org/pub/WWW/Protocols/} + + @item RFC 1945 HTTP-1.0 (informational) + @* @uref{http://ds.internic.net/rfc/rfc1945.txt} + + @item IETF Working Group Draft 07 of HTTP-1.1 + @* @uref{http://www.w3.org/pub/WWW/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-07.txt} + + @item HTTP: A protocol for networked information + @* @uref{http://www.w3.org/pub/WWW/Protocols/HTTP/HTTP2.html} + + @item The Common Gateway Interface (CGI) + @* @uref{http://hoohoo.ncsa.uiuc.edu/cgi/overview.html} + + @item RFC 1738 URL syntax and semantics + @* @uref{http://ds.internic.net/rfc/rfc1738.txt} + + @item RFC 1808 Relative URL syntax and semantics + @* @uref{http://ds.internic.net/rfc/rfc1808.txt} +@end itemize + +@comment node-name, next, previous, up +@node Other HTTP Servers,Benchmarks,Reference Documents,Appendix +@section Other HTTP Servers + +For unix-alike platforms, with published source code. + +@itemize + @item tiny/turbo/throttling httpd very similar to Boa, with a throttling + feature + @* @uref{http://www.acme.com/software/thttpd/} + + @item Roxen: based on ulpc interpreter, non-forking (interpreter implements + threading), GPL'd + @* @uref{http://www.roxen.com/} + + @item WN: featureful, GPL'd + @* @uref{http://hopf.math.nwu.edu/} + + @item Apache: fast, PD + @* @uref{http://www.apache.org/} + + @item NCSA: standard, legal status? + @* @uref{http://hoohoo.ncsa.uiuc.edu/} + + @item CERN: standard, PD, supports proxy + @* @uref{http://www.w3.org/pub/WWW/Daemon/Status.html} + + @item xs-httpd 2.0: small, fast, pseudo-GPL'd + @* @uref{http://www.stack.nl/~sven/xs-httpd/} + + @item bozohttpd.tar.gz sources, in perl + @* @uref{ftp://ftp.eterna.com.au/bozo/bsf/attware/bozohttpd.tar.gz} + + @item Squid is actually an "Internet Object Cache" + @* @uref{http://squid.nlanr.net/Squid/} +@end itemize + +Also worth mentioning is Zeus. +It is commercial, with a free demo, so it doesn't belong on the list above. +Zeus seems to be based on technology similar to Boa and thttpd, +but with more bells and whistles. +@* @uref{http://www.zeus.co.uk/products/server/} + +@comment node-name, next, previous, up +@node Benchmarks,Tools,Other HTTP Servers,Appendix +@section Benchmarks + +@itemize +@item ZeusBench (broken link) +@* @uref{http://www.zeus.co.uk/products/server/intro/bench2/zeusbench.shtml} + +@item WebBench (binary-ware) +@* @uref{http://web1.zdnet.com/zdbop/webbench/webbench.html} + +@item WebStone +@* @uref{http://www.mindcraft.com/benchmarks/webstone/} + +@item SpecWeb96 +@* @uref{http://www.specbench.org/osg/web96/} +@end itemize + +@comment node-name, next, previous, up +@node Tools,Authors,Benchmarks,Appendix +@section Tools + +@itemize +@item Analog logfile analyzer +@* @uref{http://www.statslab.cam.ac.uk/@~sret1/analog/} + +@item wwwstat logfile analyzer +@* @uref{http://www.ics.uci.edu/pub/websoft/wwwstat/} + +@item gwstat wwwstat postprocessor +@* @uref{http://dis.cs.umass.edu/stats/gwstat.html} + +@item The Webalizer logfile analyzer +@* @uref{http://www.usagl.net/webalizer/} + +@item cgiwrap +@* @uref{http://www.umr.edu/@~cgiwrap/} + +@item suEXEC (Boa would need to be ..umm.. "adjusted" to support this) +@* @uref{http://www.apache.org/docs/suexec.html} +@end itemize + +Note: References last checked: 06 October 1997 + +@comment node-name, next, previous, up +@node Authors,,Tools,Appendix +@section Authors + +@itemize + @item Conversion from linuxdoc SGML to texinfo by Jon Nelson + @item Conversion to linuxdoc SGML by Jon Nelson + @item Original HTML documentation by Larry Doolittle + @item @value{COPYPHRASE} +@end itemize + +@c variable +@c @printindex vr +@c concept +@c @printindex cp +@c function +@c @printindex fn +@c key +@c @printindex ky +@c program +@c @printindex pg +@c data type +@c @printindex tp + +@bye diff --git a/3rdPartner/boa-0.94.13/docs/boa_banner.png b/3rdPartner/boa-0.94.13/docs/boa_banner.png new file mode 100644 index 0000000..2022ca4 Binary files /dev/null and b/3rdPartner/boa-0.94.13/docs/boa_banner.png differ diff --git a/3rdPartner/boa-0.94.13/examples/cgi-test.cgi b/3rdPartner/boa-0.94.13/examples/cgi-test.cgi new file mode 100644 index 0000000..aeb252b --- /dev/null +++ b/3rdPartner/boa-0.94.13/examples/cgi-test.cgi @@ -0,0 +1,120 @@ +#! /usr/bin/perl + +# Remember that CGI programs have to close out the HTTP header +# (with a pair of newlines), after giving the Content-type: +# and any other relevant or available header information. + +# Unlike CGI programs running under Apache, CGI programs under Boa +# should understand some simple HTTP options. The header (and the +# double-newline) should not be printed if the incoming request was +# in HTTP/0.9. Also, we should stop after the header if +# REQUEST_METHOD == "HEAD". Under Apache, nph- programs also have +# to worry about such stuff. + +# Feb 3, 2000 -- updated to support POST, and avoid passing +# Malicious HTML Tags as described in CERT's CA-2000-02 advisory. + +if ($ENV{"SERVER_PROTOCOL"} ne "HTTP/0.9") { + print "Content-type: text/html; charset=ISO-8859-1\r\n\r\n"; +} + +exit 0 if ($ENV{"REQUEST_METHOD"} eq "HEAD"); + +print "Boa CGI test\n"; +print "

Boa CGI test

\n\n"; + +$now=`date`; +chomp($now); + +print "Date: $now\n"; +print "

\n"; + +print "Method: $ENV{\"REQUEST_METHOD\"}\n"; +print "

\n"; + +print "\n"; +print ""; +print ""; +print "\n"; +print ""; +print "
Basic GET Form:
"; +print "
\n\ + \ + \ + \ +
"; +print "
Basic POST Form:
"; +print "
\n\ + \ + \ + \ +
"; +print "
Sample ISINDEX form:
\n"; +print "$ENV{\"SCRIPT_NAME\"}?param1+param2+param3\n"; +print "
\n"; + +print "

Query String: $ENV{\"QUERY_STRING\"}\n"; + +# arguments list +print "

\nArguments:\n

    \n"; +if ($#ARGV >= 0) { + while ($a=shift(@ARGV)) { + $a=~s/&/&/g; + $a=~s//>/g; + print "
  1. $a\n"; + } +} +print "
\n"; + +# environment list +print "

\nEnvironment:\n

    \n"; +foreach $i (keys %ENV) { + $a=$ENV{$i}; + $a=~s/&/&/g; + $a=~s//>/g; + $i=~s/&/&/g; + $i=~s//>/g; + print "
  • $i = $a\n"; +} +print "
\n"; + +if ($ENV{REQUEST_METHOD} eq "POST") { + print "Input stream:

\n";
+    while () {
+	s/&/&/g;
+	s//>/g;
+        print "$_";
+    }
+    print "

\n"; +} else { + print "No input stream: (not POST)

"; +} + +print "id: ", `id`, "\n

\n"; + +if ($ENV{"QUERY_STRING"}=~/ident/ && $ENV{"REMOTE_PORT"} ne "") { + +# Uses idlookup-1.2 from Peter Eriksson +# ftp://coast.cs.purdue.edu/pub/tools/unix/ident/tools/idlookup-1.2.tar.gz +# Could use modification to timeout and trap stderr messages + $a="idlookup ". + $ENV{"REMOTE_ADDR"}." ".$ENV{"REMOTE_PORT"}." ".$ENV{"SERVER_PORT"}; + $b=qx/$a/; + print "ident output:

\n$b
\n"; +} + +print "\nBoa http server\n"; +print "\n"; + +exit 0; + diff --git a/3rdPartner/boa-0.94.13/examples/nph-test.cgi b/3rdPartner/boa-0.94.13/examples/nph-test.cgi new file mode 100644 index 0000000..a935026 --- /dev/null +++ b/3rdPartner/boa-0.94.13/examples/nph-test.cgi @@ -0,0 +1,69 @@ +#!/usr/bin/perl + +# Remember that CGI programs have to close out the HTTP header +# (with a pair of newlines), after giving the Content-type: +# and any other relevant or available header information. + +# This test program always reports success (200 OK), and +# correctly uses SERVER_PROTOCOL and REQUEST_METHOD to decide +# whether or not to send the headers and content. + +# Feb 3, 2000 -- updated to support POST, and avoid passing +# Malicious HTML Tags as described in CERT's CA-2000-02 advisory. + +$now=`date`; +chomp($now); +if ($ENV{"SERVER_PROTOCOL"} ne "HTTP/0.9") { + print "HTTP/1.0 200 OK\r\nDate: $now\r\n"; + print "Connection: close\r\n"; + print "Content-type: text/html; charset=ISO-8859-1\r\n\r\n"; +} + +exit 0 if ($ENV{"REQUEST_METHOD"} eq "HEAD"); + +print "Boa nph-CGI test\n"; +print "

Boa nph-CGI test

\n\n"; + +print "Date: $now\n"; + +print "

\n\n

    \n"; + +foreach (keys %ENV) { + $a= $ENV{$_}; + $a=~s/&/&/g; + $a=~s//>/g; + print "
  • $_ == $a\n"; +} + +print "
\n"; + +if ($ENV{REQUEST_METHOD} eq "POST") { + print "Input stream:

\n";
+    while () {
+	s/&/&/g;
+	s//>/g;
+        print "$_";
+    }
+    print "

\n"; +} + +print "id: ", `id`, "\n

\n"; + +if ($ENV{"QUERY_STRING"}=~/ident/ && $ENV{"REMOTE_PORT"} ne "") { + +# Uses idlookup-1.2 from Peter Eriksson +# ftp://coast.cs.purdue.edu/pub/tools/unix/ident/tools/idlookup-1.2.tar.gz +# Could use modification to timeout and trap stderr messages + $a="idlookup ". + $ENV{"REMOTE_ADDR"}." ".$ENV{"REMOTE_PORT"}." ".$ENV{"SERVER_PORT"}; + $b=qx/$a/; + print "ident output:

\n$b
\n"; +} + +print "\nBoa http server\n"; +print "\n"; + +exit 0; + diff --git a/3rdPartner/boa-0.94.13/examples/resolver.pl b/3rdPartner/boa-0.94.13/examples/resolver.pl new file mode 100644 index 0000000..b535a8b --- /dev/null +++ b/3rdPartner/boa-0.94.13/examples/resolver.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl + +# IP address resolver for Boa + +# If you want an "in place" change to the log file, +# change the first line to +#!/usr/local/bin/perl -i.bak +# Otherwise, send the output of this program wherever you want: +# resolver.pl access_log >access_log_resolved + +$AF_INET = 2; + +while(<>) { + next unless (($ip, $rest) = /([\d\.]+) (.*)/o); + + if(!$hosts{$ip}) { + $packed_ip = pack('C4', split(/\./, $ip)); + $host = (gethostbyaddr($packed_ip, $AF_INET))[0]; + $hosts{$ip} = ($host ? $host : $ip); + } + + print "$hosts{$ip} $rest\n"; +} + diff --git a/3rdPartner/boa-0.94.13/extras/alphasort.c b/3rdPartner/boa-0.94.13/extras/alphasort.c new file mode 100644 index 0000000..2e4c932 --- /dev/null +++ b/3rdPartner/boa-0.94.13/extras/alphasort.c @@ -0,0 +1,7 @@ +#include +#include "compat.h" + +int alphasort(const struct dirent **a, const struct dirent **b) +{ + return (strcmp((*a)->d_name, (*b)->d_name)); +} diff --git a/3rdPartner/boa-0.94.13/extras/scandir.c b/3rdPartner/boa-0.94.13/extras/scandir.c new file mode 100644 index 0000000..a4a3427 --- /dev/null +++ b/3rdPartner/boa-0.94.13/extras/scandir.c @@ -0,0 +1,85 @@ +/* -*- Mode: C; c-file-style: "gnu" -*- */ +/* + Copyright (c) 2000 Petter Reinholdtsen + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +/* + * scandir.c -- if scandir() is missing, make a replacement + */ + +#include +#include +#include +#include + +#include "compat.h" + +/* + * XXX This is a simple hack version which doesn't sort the data, and + * just passes all unsorted. + */ + +int +scandir(const char *dir, struct dirent ***namelist, + int (*select) (const struct dirent *), + int (*compar) (const struct dirent **, const struct dirent **)) +{ + DIR *d = opendir(dir); + struct dirent *current; + struct dirent **names; + int count = 0; + int pos = 0; + int result = -1; + + if (NULL == d) + return -1; + + while (NULL != readdir(d)) + count++; + + names = malloc(sizeof (struct dirent *) * count); + + closedir(d); + d = opendir(dir); + if (NULL == d) + return -1; + + while (NULL != (current = readdir(d))) { + if (NULL == select || select(current)) { + struct dirent *copyentry = malloc(current->d_reclen); + + memcpy(copyentry, current, current->d_reclen); + + names[pos] = copyentry; + pos++; + } + } + result = closedir(d); + + if (pos != count) + names = realloc(names, sizeof (struct dirent *) * pos); + + *namelist = names; + + return pos; +} diff --git a/3rdPartner/boa-0.94.13/extras/strutil.c b/3rdPartner/boa-0.94.13/extras/strutil.c new file mode 100644 index 0000000..f0727b5 --- /dev/null +++ b/3rdPartner/boa-0.94.13/extras/strutil.c @@ -0,0 +1,36 @@ +/* + * Name: strstr and strdup + * + * These are the standard library utilities. We define them here for + * systems that don't have them. + */ + +#ifndef HAVE_STRSTR +char *strstr(char *s1, char *s2) +{ /* from libiberty */ + char *p; + int len = strlen(s2); + + if (*s2 == '\0') /* everything matches empty string */ + return s1; + for (p = s1; (p = strchr(p, *s2)) != NULL; p = strchr(p + 1, *s2)) { + if (strncmp(p, s2, len) == 0) + return (p); + } + return NULL; +} +#endif + +#ifndef HAVE_STRDUP +char *strdup(char *s) +{ + char *retval; + + retval = (char *) malloc(strlen(s) + 1); + if (retval == NULL) { + perror("boa: out of memory in strdup"); + exit(1); + } + return strcpy(retval, s); +} +#endif diff --git a/3rdPartner/boa-0.94.13/src/.depend b/3rdPartner/boa-0.94.13/src/.depend new file mode 100644 index 0000000..f0a9fe9 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/.depend @@ -0,0 +1,28 @@ +alias.o: alias.c boa.h config.h compat.h defines.h globals.h escape.h +boa.o: boa.c boa.h config.h compat.h defines.h globals.h escape.h +buffer.o: buffer.c boa.h config.h compat.h defines.h globals.h \ + escape.h +cgi.o: cgi.c boa.h config.h compat.h defines.h globals.h escape.h +cgi_header.o: cgi_header.c boa.h config.h compat.h defines.h globals.h \ + escape.h +config.o: config.c boa.h config.h compat.h defines.h globals.h \ + escape.h y.tab.h parse.h +escape.o: escape.c boa.h config.h compat.h defines.h globals.h \ + escape.h +get.o: get.c boa.h config.h compat.h defines.h globals.h escape.h +hash.o: hash.c boa.h config.h compat.h defines.h globals.h escape.h +ip.o: ip.c boa.h config.h compat.h defines.h globals.h escape.h +log.o: log.c boa.h config.h compat.h defines.h globals.h escape.h +mmap_cache.o: mmap_cache.c boa.h config.h compat.h defines.h globals.h \ + escape.h +pipe.o: pipe.c boa.h config.h compat.h defines.h globals.h escape.h +queue.o: queue.c boa.h config.h compat.h defines.h globals.h escape.h +read.o: read.c boa.h config.h compat.h defines.h globals.h escape.h +request.o: request.c boa.h config.h compat.h defines.h globals.h \ + escape.h +response.o: response.c boa.h config.h compat.h defines.h globals.h \ + escape.h +signals.o: signals.c boa.h config.h compat.h defines.h globals.h \ + escape.h +util.o: util.c boa.h config.h compat.h defines.h globals.h escape.h +sublog.o: sublog.c diff --git a/3rdPartner/boa-0.94.13/src/Makefile b/3rdPartner/boa-0.94.13/src/Makefile new file mode 100644 index 0000000..d58c32e --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/Makefile @@ -0,0 +1,90 @@ +# Generated automatically from Makefile.in by configure. +# $Id: Makefile.in,v 1.59 2002/03/24 22:20:19 jnelson Exp $ + +.SUFFIXES: +.SUFFIXES: .o .c +.PHONY: clean mrclean distclean depend all dist + + + +GCC_FLAGS = -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wcast-qual\ + -Wtraditional\ + -Wshadow\ + -Wconversion\ + -Waggregate-return\ + -Wmissing-prototypes\ + -Wnested-externs\ + -Wall \ + -Wundef -Wwrite-strings -Wredundant-decls -Winline + + +srcdir = . +VPATH = .:./../extras +LDFLAGS = -g +LIBS = +CFLAGS = -g -O2 -pipe -Wall -I. + +# Change these if necessary + +YACC = bison -y +LEX = lex +CC = gcc +CPP = gcc -E + +SOURCES = alias.c boa.c buffer.c cgi.c cgi_header.c config.c escape.c \ + get.c hash.c ip.c log.c mmap_cache.c pipe.c queue.c read.c \ + request.c response.c select.c signals.c util.c sublog.c + +OBJS = y.tab.o lex.yy.o $(SOURCES:.c=.o) timestamp.o + +all: boa boa_indexer + +boa: $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + +boa_indexer: index_dir.o escape.o + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + +clean: + rm -f $(OBJS) boa core lex.yy.c y.tab.c y.tab.h *~ boa_indexer index_dir.o + +distclean: mrclean + +mrclean: clean + rm -f config.status config.cache config.h Makefile config.log + +# parser dependencies + +y.tab.c y.tab.h: boa_grammar.y + $(YACC) -d $^ + +lex.yy.c: boa_lexer.l + $(LEX) $^ + +# timestamp + +timestamp.o: $(SOURCES) boa_grammar.y boa_lexer.l + +# depend stuff +.depend: + $(CPP) -MM $(SOURCES) > .depend + +depend: + -rm -f .depend + $(MAKE) .depend + +include .depend + +# tags +tags: $(SOURCES) + ctags -o tags $^ *.h + +# dist +dist: + $(MAKE) clean + ./makedist.sh + +# object dump +boa.objdump: boa + objdump --disassemble-all --source boa > $@ + diff --git a/3rdPartner/boa-0.94.13/src/Makefile.in b/3rdPartner/boa-0.94.13/src/Makefile.in new file mode 100644 index 0000000..c8685d9 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/Makefile.in @@ -0,0 +1,89 @@ +# $Id: Makefile.in,v 1.59 2002/03/24 22:20:19 jnelson Exp $ + +.SUFFIXES: +.SUFFIXES: .o .c +.PHONY: clean mrclean distclean depend all dist + +@SET_MAKE@ + +GCC_FLAGS = -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wcast-qual\ + -Wtraditional\ + -Wshadow\ + -Wconversion\ + -Waggregate-return\ + -Wmissing-prototypes\ + -Wnested-externs\ + -Wall \ + -Wundef -Wwrite-strings -Wredundant-decls -Winline + + +srcdir = @srcdir@ +VPATH = @srcdir@:@srcdir@/../extras +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +CFLAGS = @CFLAGS@ -I. + +# Change these if necessary + +YACC = @YACC@ +LEX = @LEX@ +CC = @CC@ +CPP = @CPP@ + +SOURCES = alias.c boa.c buffer.c cgi.c cgi_header.c config.c escape.c \ + get.c hash.c ip.c log.c mmap_cache.c pipe.c queue.c read.c \ + request.c response.c select.c signals.c util.c sublog.c + +OBJS = y.tab.o lex.yy.o $(SOURCES:.c=.o) timestamp.o @STRUTIL@ + +all: boa boa_indexer + +boa: $(OBJS) + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + +boa_indexer: index_dir.o escape.o @SCANDIR@ @ALPHASORT@ @STRUTIL@ + $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + +clean: + rm -f $(OBJS) boa core lex.yy.c y.tab.c y.tab.h *~ boa_indexer index_dir.o @SCANDIR@ @ALPHASORT@ @STRUTIL@ + +distclean: mrclean + +mrclean: clean + rm -f config.status config.cache config.h Makefile config.log + +# parser dependencies + +y.tab.c y.tab.h: boa_grammar.y + $(YACC) -d $^ + +lex.yy.c: boa_lexer.l + $(LEX) $^ + +# timestamp + +timestamp.o: $(SOURCES) boa_grammar.y boa_lexer.l + +# depend stuff +.depend: + $(CPP) -MM $(SOURCES) > .depend + +depend: + -rm -f .depend + $(MAKE) .depend + +include .depend + +# tags +tags: $(SOURCES) + ctags -o tags $^ *.h + +# dist +dist: + $(MAKE) clean + ./makedist.sh + +# object dump +boa.objdump: boa + objdump --disassemble-all --source boa > $@ + diff --git a/3rdPartner/boa-0.94.13/src/acconfig.h b/3rdPartner/boa-0.94.13/src/acconfig.h new file mode 100644 index 0000000..fd696c7 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/acconfig.h @@ -0,0 +1,15 @@ +/* define if GUNZIP found */ +#undef GUNZIP + +/* sockaddr_in has sin_len member */ +#undef HAVE_SIN_LEN + +/* how many times we shift left for unsigned long */ +#undef NEEDS_ESCAPE_SHIFT + +/* if struct tm has tm_gmtoff structure */ +#undef HAVE_TM_GMTOFF + +/* if struct tm has tm_zone structure */ +#undef HAVE_TM_ZONE + diff --git a/3rdPartner/boa-0.94.13/src/aclocal.m4 b/3rdPartner/boa-0.94.13/src/aclocal.m4 new file mode 100644 index 0000000..68ad433 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/aclocal.m4 @@ -0,0 +1,53 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4-p5 + +dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +AC_DEFUN([AC_CHECK_STRUCT_FOR],[ +ac_safe_struct=`echo "$2" | sed 'y%./+-%__p_%'` +ac_safe_member=`echo "$3" | sed 'y%./+-%__p_%'` +ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}" +changequote(, )dnl + ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` +changequote([, ])dnl + +AC_MSG_CHECKING([for $2.$3]) +AC_CACHE_VAL($ac_safe_all, +[ +if test "x$4" = "x"; then + defineit="= 0" +elif test "x$4" = "xno"; then + defineit="" +else + defineit="$4" +fi +AC_TRY_COMPILE([ +$1 +],[ +struct $2 testit; +testit.$3 $defineit; +], eval "${ac_safe_all}=yes", eval "${ac_safe_all}=no" ) +]) + +if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED($ac_uc_define) +else + AC_MSG_RESULT(no) +fi +]) + +dnl AC_CHECK_STRUCT_FOR(INCLUDES,STRUCT,MEMBER,DEFINE,[no]) +dnl 1.1 (2000/09/19) +dnl Wes Hardaker + +dnl ---------------------------------------------------------- + + diff --git a/3rdPartner/boa-0.94.13/src/alias.c b/3rdPartner/boa-0.94.13/src/alias.c new file mode 100644 index 0000000..7f4ec61 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/alias.c @@ -0,0 +1,632 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1996 Russ Nelson + * Some changes Copyright (C) 1996-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: alias.c,v 1.70.2.4 2002/07/28 02:46:52 jnelson Exp $ */ + +#include "boa.h" + +static alias *alias_hashtable[ALIAS_HASHTABLE_SIZE]; + +int get_alias_hash_value(char *file); + +/* + * Name: get_alias_hash_value + * + * Description: adds the ASCII values of the file letters + * and mods by the hashtable size to get the hash value + * Note: stops at first '/' (or '\0') + */ + +int get_alias_hash_value(char *file) +{ + unsigned int hash = 0; + unsigned int index = 0; + unsigned char c; + + hash = file[index++]; + while ((c = file[index++]) && c != '/') + hash += (unsigned int) c; + + return hash % ALIAS_HASHTABLE_SIZE; +} + +/* + * Name: add_alias + * + * Description: add an Alias, Redirect, or ScriptAlias to the + * alias hash table. + */ + +void add_alias(char *fakename, char *realname, int type) +{ + int hash; + alias *old, *new; + int fakelen, reallen; + + /* sanity checking */ + if (fakename == NULL || realname == NULL) { + DIE("NULL values sent to add_alias"); + } + + fakelen = strlen(fakename); + reallen = strlen(realname); + if (fakelen == 0 || reallen == 0) { + DIE("empty values sent to add_alias"); + } + + hash = get_alias_hash_value(fakename); + + old = alias_hashtable[hash]; + + if (old) { + while (old->next) { + if (!strcmp(fakename, old->fakename)) /* don't add twice */ + return; + old = old->next; + } + } + + new = (alias *) malloc(sizeof (alias)); + if (!new) { + DIE("out of memory adding alias to hash"); + } + + if (old) + old->next = new; + else + alias_hashtable[hash] = new; + + new->fakename = strdup(fakename); + if (!new->fakename) { + DIE("failed strdup"); + } + new->fake_len = fakelen; + /* check for "here" */ + if (realname[0] == '.' && realname[1] == '/') { + new->realname = normalize_path(realname+2); + if (!new->realname) { + /* superfluous - normalize_path checks for NULL return values. */ + DIE("normalize_path returned NULL"); + } + reallen = strlen(new->realname); + } else { + new->realname = strdup(realname); + if (!new->realname) { + DIE("strdup of realname failed"); + } + } + new->real_len = reallen; + + new->type = type; + new->next = NULL; +} + +/* + * Name: find_alias + * + * Description: Locates uri in the alias hashtable if it exists. + * + * Returns: + * + * alias structure or NULL if not found + */ + +alias *find_alias(char *uri, int urilen) +{ + alias *current; + int hash; + + /* Find ScriptAlias, Alias, or Redirect */ + + if (urilen == 0) + urilen = strlen(uri); + hash = get_alias_hash_value(uri); + + current = alias_hashtable[hash]; + while (current) { +#ifdef FASCIST_LOGGING + fprintf(stderr, + "%s:%d - comparing \"%s\" (request) to \"%s\" (alias): ", + __FILE__, __LINE__, uri, current->fakename); +#endif + /* current->fake_len must always be: + * shorter or equal to the uri + */ + /* + * when performing matches: + * If the virtual part of the url ends in '/', and + * we get a match, stop there. + * Otherwise, we require '/' or '\0' at the end of the url. + * We only check if the virtual path does *not* end in '/' + */ + if (current->fake_len <= urilen && + !memcmp(uri, current->fakename, current->fake_len) && + (current->fakename[current->fake_len - 1] == '/' || + (current->fakename[current->fake_len - 1] != '/' && + (uri[current->fake_len] == '\0' || + uri[current->fake_len] == '/')))) { +#ifdef FASCIST_LOGGING + fprintf(stderr, "Got it!\n"); +#endif + return current; + } +#ifdef FASCIST_LOGGING + else + fprintf(stderr, "Don't Got it!\n"); +#endif + current = current->next; + } + return current; +} + +/* + * Name: translate_uri + * + * Description: Parse a request's virtual path. + * Sets query_string, pathname directly. + * Also sets path_info, path_translated, and script_name via + * init_script_alias + * + * Note: NPH in user dir is currently broken + * + * Note -- this should be broken up. + * + * Return values: + * 0: failure, close it down + * 1: success, continue + */ + +int translate_uri(request * req) +{ + static char buffer[MAX_HEADER_LENGTH + 1]; + char *req_urip; + alias *current; + char *p; + int uri_len; + + req_urip = req->request_uri; + if (req_urip[0] != '/') { + send_r_bad_request(req); + return 0; + } + + uri_len = strlen(req->request_uri); + + current = find_alias(req->request_uri, uri_len); + if (current) { + + if (current->type == SCRIPTALIAS) /* Script */ + return init_script_alias(req, current, uri_len); + + /* not a script alias, therefore begin filling in data */ + + { + int len; + len = current->real_len; + len += uri_len - current->fake_len; + if (len > MAX_HEADER_LENGTH) { + log_error_doc(req); + fputs("uri too long!\n", stderr); + send_r_bad_request(req); + return 0; + } + memcpy(buffer, current->realname, current->real_len); + memcpy(buffer + current->real_len, + req->request_uri + current->fake_len, + uri_len - current->fake_len + 1); + } + + if (current->type == REDIRECT) { /* Redirect */ + if (req->method == M_POST) { /* POST to non-script */ + /* it's not a cgi, but we try to POST??? */ + send_r_bad_request(req); + return 0; /* not a script alias, therefore begin filling in data */ + } + send_r_moved_temp(req, buffer, ""); + return 0; + } else { /* Alias */ + req->pathname = strdup(buffer); + if (!req->pathname) { + send_r_error(req); + WARN("unable to strdup buffer onto req->pathname"); + return 0; + } + return 1; + } + } + + /* + The reason why this is *not* an 'else if' is that, + after aliasing, we still have to check for '~' expansion + */ + + if (user_dir && req->request_uri[1] == '~') { + char *user_homedir; + + req_urip = req->request_uri + 2; + + /* since we have uri_len which is from strlen(req->request_uri) */ + p = memchr(req_urip, '/', uri_len - 2); + if (p) + *p = '\0'; + + user_homedir = get_home_dir(req_urip); + if (p) /* have to restore request_uri in case of error */ + *p = '/'; + + if (!user_homedir) { /*no such user */ + send_r_not_found(req); + return 0; + } + { + int l1 = strlen(user_homedir); + int l2 = strlen(user_dir); + int l3 = (p ? strlen(p) : 0); + + if (l1 + l2 + l3 + 1 > MAX_HEADER_LENGTH) { + log_error_doc(req); + fputs("uri too long!\n", stderr); + send_r_bad_request(req); + return 0; + } + + memcpy(buffer, user_homedir, l1); + buffer[l1] = '/'; + memcpy(buffer + l1 + 1, user_dir, l2 + 1); + if (p) + memcpy(buffer + l1 + 1 + l2, p, l3 + 1); + } + } else if (document_root) { + /* no aliasing, no userdir... */ + int l1, l2, l3; + + l1 = strlen(document_root); + l2 = strlen(req->request_uri); + if (virtualhost) + l3 = strlen(req->local_ip_addr); + else + l3 = 0; + + if (l1 + l2 + l3 + 1 > MAX_HEADER_LENGTH) { + log_error_doc(req); + fputs("uri too long!\n", stderr); + send_r_bad_request(req); + return 0; + } + + /* the 'l2 + 1' is there so we copy the '\0' as well */ + memcpy(buffer, document_root, l1); + if (virtualhost) { + buffer[l1] = '/'; + memcpy(buffer + l1 + 1, req->local_ip_addr, l3); + memcpy(buffer + l1 + 1 + l3, req->request_uri, l2 + 1); + } else + memcpy(buffer + l1, req->request_uri, l2 + 1); + } else { + /* not aliased. not userdir. not part of document_root. BAIL */ + send_r_not_found(req); + return 0; + } + + /* if here, + * o it may be aliased but it's not a redirect or a script... + * o it may be a homedir + * o it may be a document_root resource (with or without virtual host) + */ + + req->pathname = strdup(buffer); + if (!req->pathname) { + WARN("Could not strdup buffer for req->pathname!"); + send_r_error(req); + return 0; + } + + /* below we support cgis outside of a ScriptAlias */ + if (strcmp(CGI_MIME_TYPE, get_mime_type(buffer)) == 0) { /* cgi */ +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "%s:%d - buffer is: \"%s\"\n", + __FILE__, __LINE__, buffer); +#endif + /* FIXME */ + /* script_name could end up as /cgi-bin/bob/extra_path */ + req->script_name = strdup(req->request_uri); + if (!req->script_name) { + WARN("Could not strdup req->request_uri for req->script_name"); + send_r_error(req); + return 0; + } + if (req->simple) + req->is_cgi = NPH; + else + req->is_cgi = CGI; + return 1; + } else if (req->method == M_POST) { /* POST to non-script */ + /* it's not a cgi, but we try to POST??? */ + send_r_bad_request(req); + return 0; + } else /* we are done!! */ + return 1; +} + +/* + * Name: init_script_alias + * + * Description: Performs full parsing on a ScriptAlias request + * Sets path_info and script_name + * + * Return values: + * + * 0: failure, shut down + * 1: success, continue + */ + +int init_script_alias(request * req, alias * current1, int uri_len) +{ + static char pathname[MAX_HEADER_LENGTH + 1]; + struct stat statbuf; + static char buffer[MAX_HEADER_LENGTH + 1]; + + int index = 0; + char c; + int err; + + /* copies the "real" path + the non-alias portion of the + uri to pathname. + */ + + if (uri_len - current1->fake_len + current1->real_len > + MAX_HEADER_LENGTH) { + log_error_doc(req); + fputs("uri too long!\n", stderr); + send_r_bad_request(req); + return 0; + } + + memcpy(pathname, current1->realname, current1->real_len); + memcpy(pathname + current1->real_len, + &req->request_uri[current1->fake_len], + uri_len - current1->fake_len + 1); /* the +1 copies the NUL */ +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, + "%s:%d - pathname in init_script_alias is: \"%s\" (\"%s\")\n", + __FILE__, __LINE__, pathname, pathname + current1->real_len); +#endif + if (strncmp("nph-", pathname + current1->real_len, 4) == 0 + || req->simple) req->is_cgi = NPH; + else + req->is_cgi = CGI; + + + /* start at the beginning of the actual uri... + (in /cgi-bin/bob, start at the 'b' in bob */ + index = current1->real_len; + + /* go to first and successive '/' and keep checking + * if it is a full pathname + * on success (stat (not lstat) of file is a *regular file*) + */ + do { + c = pathname[++index]; + if (c == '/') { + pathname[index] = '\0'; + err = stat(pathname, &statbuf); + pathname[index] = '/'; + if (err == -1) { + send_r_not_found(req); + return 0; + } + + /* is it a dir? */ + if (!S_ISDIR(statbuf.st_mode)) { + /* check access */ + if (!(statbuf.st_mode & + (S_IFREG | /* regular file */ + (S_IRUSR | S_IXUSR) | /* u+rx */ + (S_IRGRP | S_IXGRP) | /* g+rx */ + (S_IROTH | S_IXOTH)))) { /* o+rx */ + send_r_forbidden(req); + return 0; + } + /* stop here */ + break; + } + } + } while (c != '\0'); + + req->script_name = strdup(req->request_uri); + if (!req->script_name) { + send_r_error(req); + WARN("unable to strdup req->request_uri for req->script_name"); + return 0; + } + + if (c == '\0') { + err = stat(pathname, &statbuf); + if (err == -1) { + send_r_not_found(req); + return 0; + } + + /* is it a dir? */ + if (!S_ISDIR(statbuf.st_mode)) { + /* check access */ + if (!(statbuf.st_mode & + (S_IFREG | /* regular file */ + (S_IRUSR | S_IXUSR) | /* u+rx */ + (S_IRGRP | S_IXGRP) | /* g+rx */ + (S_IROTH | S_IXOTH)))) { /* o+rx */ + send_r_forbidden(req); + return 0; + } + /* stop here */ + } else { + send_r_forbidden(req); + return 0; + } + } + + /* we have path_info if c == '/'... still have to check for query */ + else if (c == '/') { + int hash; + alias *current; + int path_len; + + req->path_info = strdup(pathname + index); + if (!req->path_info) { + send_r_error(req); + WARN("unable to strdup pathname + index for req->path_info"); + return 0; + } + pathname[index] = '\0'; /* strip path_info from path */ + path_len = strlen(req->path_info); + /* we need to fix script_name here */ + /* index points into pathname, which is + * realname/cginame/foo + * and index points to the '/foo' part + */ + req->script_name[strlen(req->script_name) - path_len] = '\0'; /* zap off the /foo part */ + + /* now, we have to re-alias the extra path info.... + this sucks. + */ + hash = get_alias_hash_value(req->path_info); + current = alias_hashtable[hash]; + while (current && !req->path_translated) { + if (!strncmp(req->path_info, current->fakename, + current->fake_len)) { + + if (current->real_len + + path_len - current->fake_len > MAX_HEADER_LENGTH) { + log_error_doc(req); + fputs("uri too long!\n", stderr); + send_r_bad_request(req); + return 0; + } + + memcpy(buffer, current->realname, current->real_len); + strcpy(buffer + current->real_len, + &req->path_info[current->fake_len]); + req->path_translated = strdup(buffer); + if (!req->path_translated) { + send_r_error(req); + WARN("unable to strdup buffer for req->path_translated"); + return 0; + } + } + current = current->next; + } + /* no alias... try userdir */ + if (!req->path_translated && user_dir && req->path_info[1] == '~') { + char *user_homedir; + char *p; + + p = strchr(pathname + index + 1, '/'); + if (p) + *p = '\0'; + + user_homedir = get_home_dir(pathname + index + 2); + if (p) + *p = '/'; + + if (!user_homedir) { /* no such user */ + send_r_not_found(req); + return 0; + } + { + int l1 = strlen(user_homedir); + int l2 = strlen(user_dir); + int l3; + if (p) + l3 = strlen(p); + else + l3 = 0; + + req->path_translated = malloc(l1 + l2 + l3 + 2); + if (req->path_translated == NULL) { + send_r_error(req); + WARN("unable to malloc memory for req->path_translated"); + return 0; + } + memcpy(req->path_translated, user_homedir, l1); + req->path_translated[l1] = '/'; + memcpy(req->path_translated + l1 + 1, user_dir, l2 + 1); + if (p) + memcpy(req->path_translated + l1 + 1 + l2, p, l3 + 1); + } + } + if (!req->path_translated && document_root) { + /* no userdir, no aliasing... try document root */ + int l1, l2; + l1 = strlen(document_root); + l2 = path_len; + + req->path_translated = malloc(l1 + l2 + 1); + if (req->path_translated == NULL) { + send_r_error(req); + WARN("unable to malloc memory for req->path_translated"); + return 0; + } + memcpy(req->path_translated, document_root, l1); + memcpy(req->path_translated + l1, req->path_info, l2 + 1); + } + } + + req->pathname = strdup(pathname); + if (!req->pathname) { + send_r_error(req); + WARN("unable to strdup pathname for req->pathname"); + return 0; + } + + return 1; +} + +/* + * Empties the alias hashtable, deallocating any allocated memory. + */ + +void dump_alias(void) +{ + int i; + alias *temp; + + for (i = 0; i < ALIAS_HASHTABLE_SIZE; ++i) { /* these limits OK? */ + if (alias_hashtable[i]) { + temp = alias_hashtable[i]; + while (temp) { + alias *temp_next; + + if (temp->fakename) + free(temp->fakename); + if (temp->realname) + free(temp->realname); + temp_next = temp->next; + free(temp); + temp = temp_next; + } + alias_hashtable[i] = NULL; + } + } +} diff --git a/3rdPartner/boa-0.94.13/src/alias.o b/3rdPartner/boa-0.94.13/src/alias.o new file mode 100644 index 0000000..4856c50 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/alias.o differ diff --git a/3rdPartner/boa-0.94.13/src/boa b/3rdPartner/boa-0.94.13/src/boa new file mode 100644 index 0000000..d43f4d6 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/boa differ diff --git a/3rdPartner/boa-0.94.13/src/boa.c b/3rdPartner/boa-0.94.13/src/boa.c new file mode 100644 index 0000000..5076963 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/boa.c @@ -0,0 +1,277 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Charles F. Randall + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1996-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa.c,v 1.99.2.2 2002/07/23 15:50:29 jnelson Exp $*/ + +#include "boa.h" +#include + +/* globals */ +int backlog = SO_MAXCONN; +time_t start_time; + +int sighup_flag = 0; /* 1 => signal has happened, needs attention */ +int sigchld_flag = 0; /* 1 => signal has happened, needs attention */ +int sigalrm_flag = 0; /* 1 => signal has happened, needs attention */ +int sigterm_flag = 0; /* lame duck mode */ +time_t current_time; +int max_fd = 0; +int pending_requests = 0; + +/* static to boa.c */ +static void fixup_server_root(void); +static int create_server_socket(void); +static void drop_privs(void); + +static int sock_opt = 1; +static int do_fork = 1; +int devnullfd = -1; + +int main(int argc, char **argv) +{ + int c; /* command line arg */ + int server_s; /* boa socket */ + + /* set umask to u+rw, u-x, go-rwx */ + c = umask(~0600); + if (c == -1) { + perror("umask"); + exit(1); + } + + devnullfd = open("/dev/null", 0); + + /* make STDIN and STDOUT point to /dev/null */ + if (devnullfd == -1) { + DIE("can't open /dev/null"); + } + + if (dup2(devnullfd, STDIN_FILENO) == -1) { + DIE("can't dup2 /dev/null to STDIN_FILENO"); + } + + if (dup2(devnullfd, STDOUT_FILENO) == -1) { + DIE("can't dup2 /dev/null to STDOUT_FILENO"); + } + + /* but first, update timestamp, because log_error_time uses it */ + (void) time(¤t_time); + + while ((c = getopt(argc, argv, "c:r:d")) != -1) { + switch (c) { + case 'c': + if (server_root) + free(server_root); + server_root = strdup(optarg); + if (!server_root) { + perror("strdup (for server_root)"); + exit(1); + } + break; + case 'r': + if (chdir(optarg) == -1) { + log_error_time(); + perror("chdir (to chroot)"); + exit(1); + } + if (chroot(optarg) == -1) { + log_error_time(); + perror("chroot"); + exit(1); + } + if (chdir("/") == -1) { + log_error_time(); + perror("chdir (after chroot)"); + exit(1); + } + break; + case 'd': + do_fork = 0; + break; + default: + fprintf(stderr, "Usage: %s [-c serverroot] [-r chroot] [-d]\n", argv[0]); + exit(1); + } + } + + fixup_server_root(); + read_config_files(); + open_logs(); + server_s = create_server_socket(); + init_signals(); + drop_privs(); + create_common_env(); + build_needs_escape(); + + if (max_connections < 1) { + struct rlimit rl; + + /* has not been set explicitly */ + c = getrlimit(RLIMIT_NOFILE, &rl); + if (c < 0) { + perror("getrlimit"); + exit(1); + } + max_connections = rl.rlim_cur; + } + + /* background ourself */ + if (do_fork) { + switch(fork()) { + case -1: + /* error */ + perror("fork"); + exit(1); + break; + case 0: + /* child, success */ + break; + default: + /* parent, success */ + exit(0); + break; + } + } + + /* main loop */ + timestamp(); + + status.requests = 0; + status.errors = 0; + + start_time = current_time; + select_loop(server_s); + return 0; +} + +static int create_server_socket(void) +{ + int server_s; + + server_s = socket(SERVER_AF, SOCK_STREAM, IPPROTO_TCP); + if (server_s == -1) { + DIE("unable to create socket"); + } + + /* server socket is nonblocking */ + if (set_nonblock_fd(server_s) == -1) { + DIE("fcntl: unable to set server socket to nonblocking"); + } + + /* close server socket on exec so cgi's can't write to it */ + if (fcntl(server_s, F_SETFD, 1) == -1) { + DIE("can't set close-on-exec on server socket!"); + } + + /* reuse socket addr */ + if ((setsockopt(server_s, SOL_SOCKET, SO_REUSEADDR, (void *) &sock_opt, + sizeof (sock_opt))) == -1) { + DIE("setsockopt"); + } + + /* internet family-specific code encapsulated in bind_server() */ + if (bind_server(server_s, server_ip) == -1) { + DIE("unable to bind"); + } + + /* listen: large number just in case your kernel is nicely tweaked */ + if (listen(server_s, backlog) == -1) { + DIE("unable to listen"); + } + return server_s; +} + +static void drop_privs(void) +{ + /* give away our privs if we can */ + if (getuid() == 0) { + struct passwd *passwdbuf; + passwdbuf = getpwuid(server_uid); + if (passwdbuf == NULL) { + DIE("getpwuid"); + } + if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) { + DIE("initgroups"); + } + if (setgid(server_gid) == -1) { + DIE("setgid"); + } + if (setuid(server_uid) == -1) { + DIE("setuid"); + } + /* test for failed-but-return-was-successful setuid + * http://www.securityportal.com/list-archive/bugtraq/2000/Jun/0101.html + */ + /*if (setuid(0) != -1) { + DIE("icky Linux kernel bug!"); + }*/ + } else { + if (server_gid || server_uid) { + log_error_time(); + fprintf(stderr, "Warning: " + "Not running as root: no attempt to change" + " to uid %d gid %d\n", server_uid, server_gid); + } + server_gid = getgid(); + server_uid = getuid(); + } +} + +/* + * Name: fixup_server_root + * + * Description: Makes sure the server root is valid. + * + */ + +static void fixup_server_root() +{ + char *dirbuf; + + if (!server_root) { +#ifdef SERVER_ROOT + server_root = strdup(SERVER_ROOT); + if (!server_root) { + perror("strdup (SERVER_ROOT)"); + exit(1); + } +#else + fputs("boa: don't know where server root is. Please #define " + "SERVER_ROOT in boa.h\n" + "and recompile, or use the -c command line option to " + "specify it.\n", stderr); + exit(1); +#endif + } + + if (chdir(server_root) == -1) { + fprintf(stderr, "Could not chdir to \"%s\": aborting\n", + server_root); + exit(1); + } + + dirbuf = normalize_path(server_root); + free(server_root); + server_root = dirbuf; +} + diff --git a/3rdPartner/boa-0.94.13/src/boa.h b/3rdPartner/boa-0.94.13/src/boa.h new file mode 100644 index 0000000..d47fcbd --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/boa.h @@ -0,0 +1,195 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996-99 Larry Doolittle + * Some changes Copyright (C) 1997-99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa.h,v 1.63.2.2 2002/07/26 03:03:44 jnelson Exp $*/ + +#ifndef _BOA_H +#define _BOA_H + +#include +#include /* malloc, free, etc. */ +#include /* stdin, stdout, stderr */ +#include /* strdup */ +#include +#include /* localtime, time */ +#include +#include +#include +#include +#include /* OPEN_MAX */ +#include + +#include +#include + +#include +#include +#include /* socket, bind, accept */ +#include /* socket, bind, accept, setsockopt, */ +#include /* open */ + +#include "compat.h" /* oh what fun is porting */ +#include "defines.h" +#include "globals.h" + +/* alias */ +void add_alias(char *fakename, char *realname, int script); +int translate_uri(request * req); +int init_script_alias(request * req, alias * current, int uri_len); +void dump_alias(void); + +/* config */ +void read_config_files(void); + +/* escape */ +#include "escape.h" + +/* get */ + +int init_get(request * req); +int process_get(request * req); +int get_dir(request * req, struct stat *statbuf); + +/* hash */ +unsigned get_mime_hash_value(char *extension); +char *get_mime_type(char *filename); +char *get_home_dir(char *name); +void dump_mime(void); +void dump_passwd(void); +void show_hash_stats(void); + +/* log */ +void open_logs(void); +void close_access_log(void); +void log_access(request * req); +void log_error_doc(request * req); +void boa_perror(request * req, char *message); +void log_error_time(void); +void log_error_mesg(char *file, int line, char *mesg); + +/* queue */ +void block_request(request * req); +void ready_request(request * req); +void dequeue(request ** head, request * req); +void enqueue(request ** head, request * req); + +/* read */ +int read_header(request * req); +int read_body(request * req); +int write_body(request * req); + +/* request */ +request *new_request(void); +void get_request(int); +void process_requests(int server_s); +int process_header_end(request * req); +int process_header_line(request * req); +int process_logline(request * req); +int process_option_line(request * req); +void add_accept_header(request * req, char *mime_type); +void free_requests(void); + +/* response */ +void print_ka_phrase(request * req); +void print_content_type(request * req); +void print_content_length(request * req); +void print_last_modified(request * req); +void print_http_headers(request * req); + +void send_r_request_ok(request * req); /* 200 */ +void send_r_moved_perm(request * req, char *url); /* 301 */ +void send_r_moved_temp(request * req, char *url, char *more_hdr); /* 302 */ +void send_r_not_modified(request * req); /* 304 */ +void send_r_bad_request(request * req); /* 400 */ +void send_r_unauthorized(request * req, char *name); /* 401 */ +void send_r_forbidden(request * req); /* 403 */ +void send_r_not_found(request * req); /* 404 */ +void send_r_error(request * req); /* 500 */ +void send_r_not_implemented(request * req); /* 501 */ +void send_r_bad_gateway(request * req); /* 502 */ +void send_r_service_unavailable(request * req); /* 503 */ +void send_r_bad_version(request * req); /* 505 */ + +/* cgi */ +void create_common_env(void); +void clear_common_env(void); +int add_cgi_env(request * req, char *key, char *value, int http_prefix); +int complete_env(request * req); +void create_argv(request * req, char **aargv); +int init_cgi(request * req); + +/* signals */ +void init_signals(void); +void sighup_run(void); +void sigchld_run(void); +void sigalrm_run(void); +void sigterm_stage1_run(int); +void sigterm_stage2_run(); + +/* util.c */ +void clean_pathname(char *pathname); +char *get_commonlog_time(void); +void rfc822_time_buf(char *buf, time_t s); +char *simple_itoa(unsigned int i); +int boa_atoi(char *s); +char *escape_string(char *inp, char *buf); +int month2int(char *month); +int modified_since(time_t * mtime, char *if_modified_since); +char *to_upper(char *str); +int unescape_uri(char *uri, char **query_string); +int create_temporary_file(short want_unlink, char *storage, int size); +char * normalize_path(char *path); +int real_set_block_fd(int fd); +int real_set_nonblock_fd(int fd); + +/* buffer */ +int req_write(request * req, char *msg); +void reset_output_buffer(request *req); +int req_write_escape_http(request * req, char *msg); +int req_write_escape_html(request * req, char *msg); +int req_flush(request * req); +char *escape_uri(char *uri); + +/* timestamp */ +void timestamp(void); + +/* mmap_cache */ +struct mmap_entry *find_mmap(int data_fd, struct stat *s); +void release_mmap(struct mmap_entry *e); + +/* sublog */ +int open_gen_fd(char *spec); +int process_cgi_header(request * req); + +/* pipe */ +int read_from_pipe(request * req); +int write_from_pipe(request * req); + +/* ip */ +int bind_server(int server_s, char *ip); +char *ascii_sockaddr(struct SOCKADDR *s, char *dest, int len); +int net_port(struct SOCKADDR *s); + +/* select */ +void select_loop(int server_s); + +#endif diff --git a/3rdPartner/boa-0.94.13/src/boa.o b/3rdPartner/boa-0.94.13/src/boa.o new file mode 100644 index 0000000..57f6fbd Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/boa.o differ diff --git a/3rdPartner/boa-0.94.13/src/boa_grammar.y b/3rdPartner/boa-0.94.13/src/boa_grammar.y new file mode 100644 index 0000000..c028b0f --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/boa_grammar.y @@ -0,0 +1,127 @@ +%{ + +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa_grammar.y,v 1.14 1999/10/12 14:49:07 jon Exp $*/ + +#include +#include +#include +#include +/* #include "boa.h" */ +#include "parse.h" + +int yyerror(char * msg); + +/* yydebug = 1; */ + +#ifdef DEBUG +#define DBG(x) x +#else +#define DBG(x) +#endif + +char *arg1hold; +char mime_type[256]; /* global to inherit */ + +%} + +%union { + char * sval; + int ival; + struct ccommand * cval; +}; + +/* boa.conf tokens */ +%token STMT_NO_ARGS STMT_ONE_ARG STMT_TWO_ARGS + +/* mime.type tokens */ +%token MIMETYPE +%token STRING +%token INTEGER + +%start ConfigFiles + +%% + +ConfigFiles: BoaConfigStmts MimeTypeStmts + ; + +BoaConfigStmts: BoaConfigStmts BoaConfigStmt + | /* empty */ + ; + +BoaConfigStmt: + StmtNoArgs + | StmtOneArg + | StmtTwoArgs + ; + +StmtNoArgs: STMT_NO_ARGS + { if ($1->action) { + DBG(printf("StmtNoArgs: %s\n",$1->name);) + $1->action(NULL,NULL,$1->object); + } + } + ; + +StmtOneArg: STMT_ONE_ARG STRING + { if ($1->action) { + DBG(printf("StmtOneArg: %s %s\n",$1->name,$2);) + $1->action($2,NULL,$1->object); + } + } + ; + +StmtTwoArgs: STMT_TWO_ARGS STRING + { arg1hold = strdup($2); } + STRING + { if ($1->action) { + DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n", + $1->name,arg1hold,$4);) + $1->action($4,arg1hold,$1->object); + } + free(arg1hold); + } + ; + + +/******************* mime.types **********************/ + +MimeTypeStmts: MimeTypeStmts MimeTypeStmt + | /* empty */ + ; + +MimeTypeStmt: MIMETYPE + { strcpy(mime_type, $1); } + ExtensionList + ; + +ExtensionList: ExtensionList Extension + | /* empty */ + ; + +Extension: STRING + { add_mime_type($1, mime_type); } + ; + +%% + diff --git a/3rdPartner/boa-0.94.13/src/boa_indexer b/3rdPartner/boa-0.94.13/src/boa_indexer new file mode 100644 index 0000000..1ebe07c Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/boa_indexer differ diff --git a/3rdPartner/boa-0.94.13/src/boa_lexer.l b/3rdPartner/boa-0.94.13/src/boa_lexer.l new file mode 100644 index 0000000..7978af9 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/boa_lexer.l @@ -0,0 +1,155 @@ +%{ + +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa_lexer.l,v 1.13.2.1 2002/07/07 23:19:55 jnelson Exp $*/ + +#include "y.tab.h" +#include +#include +#include "parse.h" + +#define MAX_STR_CONST 1024 +#define qspush(c) \ + if (string_buf_ptr < string_buf+MAX_STR_CONST) \ + *string_buf_ptr++ = c; \ + else \ + yyerror("quoted string overflow"); + +char *mime_types = NULL; + +static int file = 0; +int lineno = 1; +struct ccommand *k; +char string_buf[MAX_STR_CONST]; +char *string_buf_ptr; +%} + +%s MIME +/* Quoted string handling (almost) straight out of + the flex 2.5 man page, April 1995 */ +%x STR + +%% + +[ \t]+ ; +#.* ; + +[^ \t\n]+\/[^ \t\n]+ { yylval.sval = yytext; return MIMETYPE; } + +[^ \"\t\n]+ { /* XXX could use better checks that we are in a state to + * accept keywords; this version matches original behavior */ + if ((YYSTATE==INITIAL) && (k=lookup_keyword(yytext))) { + yylval.cval=k; + return (k->type); + } else { yylval.sval = yytext; return STRING; } + } + +\" { + string_buf_ptr = string_buf; + BEGIN(STR); + } + +{ +\" { /* saw closing quote - all done */ + BEGIN(INITIAL); + *string_buf_ptr = '\0'; + /* return string constant token type and value to parser */ + yylval.sval = string_buf; return STRING; + } + +\n { + /* error - unterminated string constant */ + /* generate error message */ + yyerror("unterminated string constant"); + } + +\\[0-7]{1,3} { + /* octal escape sequence */ + int result; + + (void) sscanf( yytext + 1, "%o", &result ); + + if ( result > 0xff ) + { /* error, constant is out-of-bounds */ } + + qspush(result); + } + +\\[0-9]+ { + /* generate error - bad escape sequence; something + * like '\48' or '\0777777' + */ + yyerror("bad escape sequence"); + } + +\\n qspush('\n'); +\\t qspush('\t'); +\\r qspush('\r'); +\\b qspush('\b'); +\\f qspush('\f'); + +\\(.|\n) *string_buf_ptr++ = yytext[1]; + +[^\\\n\"]+ { + char *yptr = yytext; + while ( *yptr ) + qspush(*yptr++); + } +} + /* End of dependence */ +\n { lineno++; } +%% + +/* In yywrap we track which file we are on. + * 1: close boa.conf, open mime.types + * 2: return 1; + */ + +int yywrap() +{ + fclose(yyin); + file++; + + switch(file) { + case 1: + yyin = fopen(mime_types, "r"); + if(!yyin) { + fprintf(stderr, "Could not open mime.types file, \"%s\", " + "for reading\n", mime_types); + exit(1); + } + BEGIN MIME; + return 0; + default: + BEGIN INITIAL; + file = 0; /* in case we reread config files */ + return 1; + } +} + +int yyerror(char * msg) +{ + fprintf(stderr, "Error on line %d of %s: %s\n", lineno, + (file == 0 ? "boa.conf" : "mime.types"), msg); + return 1; +} + diff --git a/3rdPartner/boa-0.94.13/src/buffer.c b/3rdPartner/boa-0.94.13/src/buffer.c new file mode 100644 index 0000000..034c099 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/buffer.c @@ -0,0 +1,259 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1999 Jon Nelson + + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: buffer.c,v 1.10.2.2 2002/07/26 03:03:44 jnelson Exp $ */ + +#include "boa.h" +#include "escape.h" + +#define INT_TO_HEX(x) \ + ((((x)-10)>=0)?('A'+((x)-10)):('0'+(x))) + +/* + * Name: req_write + * + * Description: Buffers data before sending to client. + * Returns: -1 for error, otherwise how much is stored + */ + +int req_write(request * req, char *msg) +{ + int msg_len; + + msg_len = strlen(msg); + + if (!msg_len || req->status == DEAD) + return req->buffer_end; + + if (req->buffer_end + msg_len > BUFFER_SIZE) { + log_error_time(); + fprintf(stderr, "Ran out of Buffer space!\n"); + req->status = DEAD; + return -1; + } + memcpy(req->buffer + req->buffer_end, msg, msg_len); + req->buffer_end += msg_len; + return req->buffer_end; +} + +void reset_output_buffer(request *req) +{ + req->buffer_end = 0; +} + +/* + * Name: req_write_escape_http + * Description: Buffers and "escapes" data before sending to client. + * as above, but translates as it copies, into a form suitably + * encoded for URLs in HTTP headers. + * Returns: -1 for error, otherwise how much is stored + */ +int req_write_escape_http(request * req, char *msg) +{ + char c, *inp, *dest; + int left; + inp = msg; + dest = req->buffer + req->buffer_end; + /* 3 is a guard band, since we don't check the destination pointer + * in the middle of a transfer of up to 3 bytes */ + left = BUFFER_SIZE - req->buffer_end - 3; + while ((c = *inp++) && left > 0) { + if (needs_escape((unsigned int) c)) { + *dest++ = '%'; + *dest++ = INT_TO_HEX(c >> 4); + *dest++ = INT_TO_HEX(c & 15); + left -= 3; + } else { + *dest++ = c; + left--; + } + } + req->buffer_end = dest - req->buffer; + if (left == 0) { + log_error_time(); + fprintf(stderr, "Ran out of Buffer space!\n"); + req->status = DEAD; + return -1; + } + return req->buffer_end; +} + +/* + * Name: req_write_escape_html + * Description: Buffers and "escapes" data before sending to client. + * as above, but translates as it copies, into a form suitably + * encoded for HTML bodies. + * Returns: -1 for error, otherwise how much is stored + */ +int req_write_escape_html(request * req, char *msg) +{ + char c, *inp, *dest; + int left; + inp = msg; + dest = req->buffer + req->buffer_end; + /* 5 is a guard band, since we don't check the destination pointer + * in the middle of a transfer of up to 5 bytes */ + left = BUFFER_SIZE - req->buffer_end - 5; + while ((c = *inp++) && left > 0) { + switch (c) { + case '>': + *dest++ = '&'; + *dest++ = 'g'; + *dest++ = 't'; + *dest++ = ';'; + left -= 4; + break; + case '<': + *dest++ = '&'; + *dest++ = 'l'; + *dest++ = 't'; + *dest++ = ';'; + left -= 4; + break; + case '&': + *dest++ = '&'; + *dest++ = 'a'; + *dest++ = 'm'; + *dest++ = 'p'; + *dest++ = ';'; + left -= 5; + break; + case '\"': + *dest++ = '&'; + *dest++ = 'q'; + *dest++ = 'u'; + *dest++ = 'o'; + *dest++ = 't'; + *dest++ = ';'; + left -= 6; + break; + default: + *dest++ = c; + left--; + } + } + req->buffer_end = dest - req->buffer; + if (left == 0) { + log_error_time(); + fprintf(stderr, "Ran out of Buffer space!\n"); + req->status = DEAD; + return -1; + } + return req->buffer_end; +} + + +/* + * Name: flush_req + * + * Description: Sends any backlogged buffer to client. + * + * Returns: -2 for error, -1 for blocked, otherwise how much is stored + */ + +int req_flush(request * req) +{ + int bytes_to_write; + + bytes_to_write = req->buffer_end - req->buffer_start; + if (req->status == DEAD) + return -2; + + if (bytes_to_write) { + int bytes_written; + + bytes_written = write(req->fd, req->buffer + req->buffer_start, + bytes_to_write); + + if (bytes_written < 0) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return -1; /* request blocked at the pipe level, but keep going */ + else { + req->buffer_start = req->buffer_end = 0; + if (errno != EPIPE) + perror("buffer flush"); /* OK to disable if your logs get too big */ + req->status = DEAD; + req->buffer_end = 0; + return -2; + } + } +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "%s:%d - Wrote \"", __FILE__, __LINE__); + fwrite(req->buffer + req->buffer_start, sizeof (char), + bytes_written, stderr); + fprintf(stderr, "\" (%d bytes)\n", bytes_written); +#endif + req->buffer_start += bytes_written; + } + if (req->buffer_start == req->buffer_end) + req->buffer_start = req->buffer_end = 0; + return req->buffer_end; /* successful */ +} + +/* + * Name: escape_string + * + * Description: escapes the string inp. Uses variable buf. If buf is + * NULL when the program starts, it will attempt to dynamically allocate + * the space that it needs, otherwise it will assume that the user + * has already allocated enough space for the variable buf, which + * could be up to 3 times the size of inp. If the routine dynamically + * allocates the space, the user is responsible for freeing it afterwords + * Returns: NULL on error, pointer to string otherwise. + * Note: this function doesn't really belong here, I plopped it here to + * work around a "bug" in escape.h (it defines a global, so can't be + * used in multiple source files). Actually, this routine shouldn't + * exist anywhere, it's only usage is in get.c's handling of on-the-fly + * directory generation, which would be better configured to use a combination + * of req_write_escape_http and req_write_escape_html. That would involve + * more work than I'm willing to put in right now, though, so here we are. + */ + +char *escape_string(char *inp, char *buf) +{ + int max; + char *index; + unsigned char c; + + max = strlen(inp) * 3; + + if (buf == NULL && max) + buf = malloc(sizeof (char) * max + 1); + + if (buf == NULL) { + log_error_time(); + perror("malloc"); + return NULL; + } + + index = buf; + while ((c = *inp++) && max > 0) { + if (needs_escape((unsigned int) c)) { + *index++ = '%'; + *index++ = INT_TO_HEX(c >> 4); + *index++ = INT_TO_HEX(c & 15); + } else + *index++ = c; + } + *index = '\0'; + return buf; +} diff --git a/3rdPartner/boa-0.94.13/src/buffer.o b/3rdPartner/boa-0.94.13/src/buffer.o new file mode 100644 index 0000000..88c8d36 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/buffer.o differ diff --git a/3rdPartner/boa-0.94.13/src/cgi.c b/3rdPartner/boa-0.94.13/src/cgi.c new file mode 100644 index 0000000..36fda5d --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/cgi.c @@ -0,0 +1,556 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,97 Larry Doolittle + * Some changes Copyright (C) 1996 Charles F. Randall + * Some changes Copyright (C) 1997-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: cgi.c,v 1.83.2.3 2002/07/23 15:49:54 jnelson Exp $ */ + +#include "boa.h" + +static char *env_gen_extra(const char *key, const char *value, int extra); + +int verbose_cgi_logs = 0; +/* The +1 is for the the NULL in complete_env */ +static char *common_cgi_env[COMMON_CGI_COUNT + 1]; + +/* + * Name: create_common_env + * + * Description: Set up the environment variables that are common to + * all CGI scripts + */ + +void create_common_env() +{ + int index = 0, i; + + + /* NOTE NOTE NOTE: + If you (the reader) someday modify this chunk of code to + handle more "common" CGI environment variables, then bump the + value COMMON_CGI_COUNT in defines.h UP + + Also, in the case of document_root and server_admin, two variables + that may or may not be defined depending on the way the server + is configured, we check for null values and use an empty + string to denote a NULL value to the environment, as per the + specification. The quote for which follows: + + "In all cases, a missing environment variable is + equivalent to a zero-length (NULL) value, and vice versa." + */ + common_cgi_env[index++] = env_gen_extra("PATH", + ((cgi_path != NULL) ? cgi_path : DEFAULT_PATH), 0); + common_cgi_env[index++] = env_gen_extra("SERVER_SOFTWARE", SERVER_VERSION, 0); + common_cgi_env[index++] = env_gen_extra("SERVER_NAME", server_name, 0); + common_cgi_env[index++] = env_gen_extra("GATEWAY_INTERFACE", CGI_VERSION, 0); + + common_cgi_env[index++] = + env_gen_extra("SERVER_PORT", simple_itoa(server_port), 0); + + /* NCSA and APACHE added -- not in CGI spec */ + /* common_cgi_env[index++] = env_gen_extra("DOCUMENT_ROOT", document_root); */ + + /* NCSA added */ + /* common_cgi_env[index++] = env_gen_extra("SERVER_ROOT", server_root); */ + + /* APACHE added */ + common_cgi_env[index++] = env_gen_extra("SERVER_ADMIN", server_admin, 0); + common_cgi_env[index] = NULL; + + /* Sanity checking -- make *sure* the memory got allocated */ + if (index > COMMON_CGI_COUNT) { + log_error_time(); + fprintf(stderr, "COMMON_CGI_COUNT not high enough.\n"); + exit(1); + } + + for(i = 0;i < index;++i) { + if (common_cgi_env[i] == NULL) { + log_error_time(); + fprintf(stderr, "Unable to allocate a component of common_cgi_env - out of memory.\n"); + exit(1); + } + } +} + +void clear_common_env(void) +{ + int i; + + for(i = 0;i <= COMMON_CGI_COUNT;++i) { + if (common_cgi_env[i] != NULL) { + free(common_cgi_env[i]); + common_cgi_env[i] = NULL; + } + } +} + +/* + * Name: env_gen_extra + * (and via a not-so-tricky #define, env_gen) + * This routine calls malloc: please free the memory when you are done + */ +static char *env_gen_extra(const char *key, const char *value, int extra) +{ + char *result; + int key_len, value_len; + + if (value == NULL) /* ServerAdmin may not be defined, eg */ + value = ""; + key_len = strlen(key); + value_len = strlen(value); + /* leave room for '=' sign and null terminator */ + result = malloc(extra + key_len + value_len + 2); + if (result) { + memcpy(result + extra, key, key_len); + *(result + extra + key_len) = '='; + memcpy(result + extra + key_len + 1, value, value_len); + *(result + extra + key_len + value_len + 1) = '\0'; + } else { + log_error_time(); + perror("malloc"); + log_error_time(); + fprintf(stderr, + "tried to allocate (key=value) extra=%d: %s=%s\n", + extra, key, value); + } + return result; +} + +/* + * Name: add_cgi_env + * + * Description: adds a variable to CGI's environment + * Used for HTTP_ headers + */ + +int add_cgi_env(request * req, char *key, char *value, int http_prefix) +{ + char *p; + int prefix_len; + + if (http_prefix) { + prefix_len = 5; + } else { + prefix_len = 0; + } + + if (req->cgi_env_index < CGI_ENV_MAX) { + p = env_gen_extra(key, value, prefix_len); + if (!p) { + log_error_time(); + fprintf(stderr, "Unable to generate additional CGI Environment" + "variable -- ran out of memory!\n"); + } + if (prefix_len) + memcpy(p, "HTTP_", 5); + req->cgi_env[req->cgi_env_index++] = p; + return 1; + } else { + log_error_time(); + fprintf(stderr, "Unable to generate additional CGI Environment" + "variable -- not enough space!\n"); + } + return 0; +} + +#define my_add_cgi_env(req, key, value) { \ + int ok = add_cgi_env(req, key, value, 0); \ + if (!ok) return 0; \ + } + +/* + * Name: complete_env + * + * Description: adds the known client header env variables + * and terminates the environment array + */ + +int complete_env(request * req) +{ + int i; + + for (i = 0; common_cgi_env[i]; i++) + req->cgi_env[i] = common_cgi_env[i]; + + { + char *w; + switch (req->method) { + case M_POST: + w = "POST"; + break; + case M_HEAD: + w = "HEAD"; + break; + case M_GET: + w = "GET"; + break; + default: + w = "UNKNOWN"; + break; + } + my_add_cgi_env(req, "REQUEST_METHOD", w); + } + + my_add_cgi_env(req, "SERVER_ADDR", req->local_ip_addr); + my_add_cgi_env(req, "SERVER_PROTOCOL", req->http_version); + my_add_cgi_env(req, "REQUEST_URI", req->request_uri); + + if (req->path_info) + my_add_cgi_env(req, "PATH_INFO", req->path_info); + + if (req->path_translated) + /* while path_translated depends on path_info, + * there are cases when path_translated might + * not exist when path_info does + */ + my_add_cgi_env(req, "PATH_TRANSLATED", req->path_translated); + + my_add_cgi_env(req, "SCRIPT_NAME", req->script_name); + + if (req->query_string) + my_add_cgi_env(req, "QUERY_STRING", req->query_string); + my_add_cgi_env(req, "REMOTE_ADDR", req->remote_ip_addr); + my_add_cgi_env(req, "REMOTE_PORT", simple_itoa(req->remote_port)); + + if (req->method == M_POST) { + if (req->content_type) { + my_add_cgi_env(req, "CONTENT_TYPE", req->content_type); + } else { + my_add_cgi_env(req, "CONTENT_TYPE", default_type); + } + if (req->content_length) { + my_add_cgi_env(req, "CONTENT_LENGTH", req->content_length); + } + } +#ifdef ACCEPT_ON + if (req->accept[0]) + my_add_cgi_env(req, "HTTP_ACCEPT", req->accept); +#endif + + if (req->cgi_env_index < CGI_ENV_MAX + 1) { + req->cgi_env[req->cgi_env_index] = NULL; /* terminate */ + return 1; + } + log_error_time(); + fprintf(stderr, "Not enough space in CGI environment for remainder"\ + " of variables.\n"); + return 0; +} + +/* + * Name: make_args_cgi + * + * Build argv list for a CGI script according to spec + * + */ + +void create_argv(request * req, char **aargv) +{ + char *p, *q, *r; + int aargc; + + q = req->query_string; + aargv[0] = req->pathname; + + /* here, we handle a special "indexed" query string. + * Taken from the CGI/1.1 SPEC: + * This is identified by a GET or HEAD request with a query string + * with no *unencoded* '=' in it. + * For such a request, I'm supposed to parse the search string + * into words, according to the following rules: + + search-string = search-word *( "+" search-word ) + search-word = 1*schar + schar = xunreserved | escaped | xreserved + xunreserved = alpha | digit | xsafe | extra + xsafe = "$" | "-" | "_" | "." + xreserved = ";" | "/" | "?" | ":" | "@" | "&" + + After parsing, each word is URL-decoded, optionally encoded in a system + defined manner, and then the argument list + is set to the list of words. + + + Thus, schar is alpha|digit|"$"|"-"|"_"|"."|";"|"/"|"?"|":"|"@"|"&" + + As of this writing, escape.pl escapes the following chars: + + "-", "_", ".", "!", "~", "*", "'", "(", ")", + "0".."9", "A".."Z", "a".."z", + ";", "/", "?", ":", "@", "&", "=", "+", "\$", "," + + Which therefore means + "=", "+", "~", "!", "*", "'", "(", ")", "," + are *not* escaped and should be? + Wait, we don't do any escaping, and nor should we. + According to the RFC draft, we unescape and then re-escape + in a "system defined manner" (here: none). + + The CGI/1.1 draft (03, latest is 1999???) is very unclear here. + + I am using the latest published RFC, 2396, for what does and does + not need escaping. + + Since boa builds the argument list and does not call /bin/sh, + (boa uses execve for CGI) + */ + + if (q && !strchr(q, '=')) { + /* we have an 'index' style */ + q = strdup(q); + if (!q) { + WARN("unable to strdup 'q' in create_argv!"); + } + for (aargc = 1; q && (aargc < CGI_ARGC_MAX);) { + r = q; + /* for an index-style CGI, + is used to seperate arguments + * an escaped '+' is of no concern to us + */ + if ((p = strchr(q, '+'))) { + *p = '\0'; + q = p + 1; + } else { + q = NULL; + } + if (unescape_uri(r, NULL)) { + /* printf("parameter %d: %s\n",aargc,r); */ + aargv[aargc++] = r; + } + } + aargv[aargc] = NULL; + } else { + aargv[1] = NULL; + } +} + +/* + * Name: init_cgi + * + * Description: Called for GET/POST requests that refer to ScriptAlias + * directories or application/x-httpd-cgi files. Ties stdout to socket, + * stdin to data if POST, and execs CGI. + * stderr remains tied to our log file; is this good? + * + * Returns: + * 0 - error or NPH, either way the socket is closed + * 1 - success + */ + +int init_cgi(request * req) +{ + int child_pid; + int pipes[2]; + int use_pipes = 0; + + SQUASH_KA(req); + + if (req->is_cgi) { + if (complete_env(req) == 0) { + return 0; + } + } +#ifdef FASCIST_LOGGING + { + int i; + for (i = 0; i < req->cgi_env_index; ++i) + fprintf(stderr, "%s - environment variable for cgi: \"%s\"\n", + __FILE__, req->cgi_env[i]); + } +#endif + + if (req->is_cgi == CGI || 1) { + use_pipes = 1; + if (pipe(pipes) == -1) { + log_error_time(); + perror("pipe"); + return 0; + } + + /* set the read end of the socket to non-blocking */ + if (set_nonblock_fd(pipes[0]) == -1) { + log_error_time(); + perror("cgi-fcntl"); + close(pipes[0]); + close(pipes[1]); + return 0; + } + } + + child_pid = fork(); + switch(child_pid) { + case -1: + /* fork unsuccessful */ + log_error_time(); + perror("fork"); + + if (use_pipes) { + close(pipes[0]); + close(pipes[1]); + } + send_r_error(req); + /* FIXME: There is aproblem here. send_r_error would work + for NPH and CGI, but not for GUNZIP. Fix that. */ + /* i'd like to send_r_error, but.... */ + return 0; + break; + case 0: + /* child */ + if (req->is_cgi == CGI || req->is_cgi == NPH) { + char *foo = strdup(req->pathname); + char *c; + + if (!foo) { + WARN("unable to strdup pathname for req->pathname"); + _exit(1); + } + c = strrchr(foo, '/'); + if (c) { + ++c; + *c = '\0'; + } else { + /* we have a serious problem */ + log_error_time(); + perror("chdir"); + if (use_pipes) + close(pipes[1]); + _exit(1); + } + if (chdir(foo) != 0) { + log_error_time(); + perror("chdir"); + if (use_pipes) + close(pipes[1]); + _exit(1); + } + } + if (use_pipes) { + close(pipes[0]); + /* tie cgi's STDOUT to it's write end of pipe */ + if (dup2(pipes[1], STDOUT_FILENO) == -1) { + log_error_time(); + perror("dup2 - pipes"); + close(pipes[1]); + _exit(1); + } + close(pipes[1]); + if (set_block_fd(STDOUT_FILENO) == -1) { + log_error_time(); + perror("cgi-fcntl"); + _exit(1); + } + } else { + /* tie stdout to socket */ + if (dup2(req->fd, STDOUT_FILENO) == -1) { + log_error_time(); + perror("dup2 - fd"); + _exit(1); + } + /* Switch socket flags back to blocking */ + if (set_block_fd(req->fd) == -1) { + log_error_time(); + perror("cgi-fcntl"); + _exit(1); + } + } + /* tie post_data_fd to POST stdin */ + if (req->method == M_POST) { /* tie stdin to file */ + lseek(req->post_data_fd, SEEK_SET, 0); + dup2(req->post_data_fd, STDIN_FILENO); + close(req->post_data_fd); + } + /* Close access log, so CGI program can't scribble + * where it shouldn't + */ + close_access_log(); + + /* + * tie STDERR to cgi_log_fd + * cgi_log_fd will automatically close, close-on-exec rocks! + * if we don't tied STDERR (current log_error) to cgi_log_fd, + * then we ought to close it. + */ + if (!cgi_log_fd) + dup2(devnullfd, STDERR_FILENO); + else + dup2(cgi_log_fd, STDERR_FILENO); + + if (req->is_cgi) { + char *aargv[CGI_ARGC_MAX + 1]; + create_argv(req, aargv); + execve(req->pathname, aargv, req->cgi_env); + } else { + if (req->pathname[strlen(req->pathname) - 1] == '/') + execl(dirmaker, dirmaker, req->pathname, req->request_uri, + NULL); +#ifdef GUNZIP + else + execl(GUNZIP, GUNZIP, "--stdout", "--decompress", + req->pathname, NULL); +#endif + } + /* execve failed */ + WARN(req->pathname); + _exit(1); + break; + + default: + /* parent */ + /* if here, fork was successful */ + if (verbose_cgi_logs) { + log_error_time(); + fprintf(stderr, "Forked child \"%s\" pid %d\n", + req->pathname, child_pid); + } + + if (req->method == M_POST) { + close(req->post_data_fd); /* child closed it too */ + req->post_data_fd = 0; + } + + /* NPH, GUNZIP, etc... all go straight to the fd */ + if (!use_pipes) + return 0; + + close(pipes[1]); + req->data_fd = pipes[0]; + + req->status = PIPE_READ; + if (req->is_cgi == CGI) { + req->cgi_status = CGI_PARSE; /* got to parse cgi header */ + /* for cgi_header... I get half the buffer! */ + req->header_line = req->header_end = + (req->buffer + BUFFER_SIZE / 2); + } else { + req->cgi_status = CGI_BUFFER; + /* I get all the buffer! */ + req->header_line = req->header_end = req->buffer; + } + + /* reset req->filepos for logging (it's used in pipe.c) */ + /* still don't know why req->filesize might be reset though */ + req->filepos = 0; + break; + } + + return 1; +} diff --git a/3rdPartner/boa-0.94.13/src/cgi.o b/3rdPartner/boa-0.94.13/src/cgi.o new file mode 100644 index 0000000..f612146 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/cgi.o differ diff --git a/3rdPartner/boa-0.94.13/src/cgi_header.c b/3rdPartner/boa-0.94.13/src/cgi_header.c new file mode 100644 index 0000000..c2ae3a6 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/cgi_header.c @@ -0,0 +1,176 @@ +/* + * Boa, an http server + * cgi_header.c - cgi header parsing and control + * Copyright (C) 1997-99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "boa.h" + +/* process_cgi_header + +* returns 0 -=> error or HEAD, close down. +* returns 1 -=> done processing +* leaves req->cgi_status as WRITE +*/ + +/* + The server MUST also resolve any conflicts between header fields returned by + the script and header fields that it would otherwise send itself. + + ... + + At least one CGI-Field MUST be supplied, but no CGI field name may be used + more than once in a response. If a body is supplied, then a + "Content-type" header field MUST be supplied by the script, + otherwise the script MUST send a "Location" or "Status" header + field. If a Location CGI-Field is returned, then the script + MUST NOT supply any HTTP-Fields. + */ + +/* TODO: + We still need to cycle through the data before the end of the headers, + line-by-line, and check for any problems with the CGI + outputting overriding http responses, etc... + */ + +int process_cgi_header(request * req) +{ + char *buf; + char *c; + + if (req->cgi_status != CGI_DONE) + req->cgi_status = CGI_BUFFER; + + buf = req->header_line; + + c = strstr(buf, "\n\r\n"); + if (c == NULL) { + c = strstr(buf, "\n\n"); + if (c == NULL) { + log_error_time(); + fputs("cgi_header: unable to find LFLF\n", stderr); +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "\"%s\"\n", buf); +#endif + send_r_bad_gateway(req); + return 0; + } + } + if (req->simple) { + if (*(c + 1) == '\r') + req->header_line = c + 2; + else + req->header_line = c + 1; + return 1; + } + if (!strncasecmp(buf, "Status: ", 8)) { + req->header_line--; + memcpy(req->header_line, "HTTP/1.0 ", 9); + } else if (!strncasecmp(buf, "Location: ", 10)) { /* got a location header */ +#ifdef FASCIST_LOGGING + + log_error_time(); + fprintf(stderr, "%s:%d - found Location header \"%s\"\n", + __FILE__, __LINE__, buf + 10); +#endif + + + if (buf[10] == '/') { /* virtual path */ + log_error_time(); + fprintf(stderr, + "server does not support internal redirection: " \ + "\"%s\"\n", buf + 10); + send_r_bad_request(req); + + /* + * We (I, Jon) have declined to support absolute-path parsing + * because I see it as a major security hole. + * Location: /etc/passwd or Location: /etc/shadow is not funny. + * + * Also, the below code is borked. + * request_uri could contain /cgi-bin/bob/extra_path + */ + + /* + strcpy(req->request_uri, buf + 10); + return internal_redirect(req); + */ + } else { /* URL */ + char *c2; + c2 = strchr(buf + 10, '\n'); + /* c2 cannot ever equal NULL here because we already have found one */ + + --c2; + while (*c2 == '\r') + --c2; + ++c2; + /* c2 now points to a '\r' or the '\n' */ + *c2++ = '\0'; /* end header */ + + /* first next header, or is at req->header_end */ + while ((*c2 == '\n' || *c2 == '\r') && c2 < req->header_end) + ++c2; + if (c2 == req->header_end) + send_r_moved_temp(req, buf + 10, ""); + else + send_r_moved_temp(req, buf + 10, c2); + } + req->status = DONE; + return 1; + } else { /* not location and not status */ + char *dest; + int howmuch; + send_r_request_ok(req); /* does not terminate */ + /* got to do special things because + a) we have a single buffer divided into 2 pieces + b) we need to merge those pieces + Easiest way is to memmove the cgi data backward until + it touches the buffered data, then reset the cgi data pointers + */ + dest = req->buffer + req->buffer_end; + if (req->method == M_HEAD) { + if (*(c + 1) == '\r') + req->header_end = c + 2; + else + req->header_end = c + 1; + req->cgi_status = CGI_DONE; + } + howmuch = req->header_end - req->header_line; + + if (dest + howmuch > req->buffer + BUFFER_SIZE) { + /* big problem */ + log_error_time(); + fprintf(stderr, "Too much data to move! Aborting! %s %d\n", + __FILE__, __LINE__); + /* reset buffer pointers because we already called + send_r_request_ok... */ + req->buffer_start = req->buffer_end = 0; + send_r_error(req); + return 0; + } + memmove(dest, req->header_line, howmuch); + req->buffer_end += howmuch; + req->header_line = req->buffer + req->buffer_end; + req->header_end = req->header_line; + req_flush(req); + if (req->method == M_HEAD) + return 0; + } + return 1; +} diff --git a/3rdPartner/boa-0.94.13/src/cgi_header.o b/3rdPartner/boa-0.94.13/src/cgi_header.o new file mode 100644 index 0000000..4599a64 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/cgi_header.o differ diff --git a/3rdPartner/boa-0.94.13/src/check_struct_for.m4 b/3rdPartner/boa-0.94.13/src/check_struct_for.m4 new file mode 100644 index 0000000..98940f6 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/check_struct_for.m4 @@ -0,0 +1,40 @@ +AC_DEFUN([AC_CHECK_STRUCT_FOR],[ +ac_safe_struct=`echo "$2" | sed 'y%./+-%__p_%'` +ac_safe_member=`echo "$3" | sed 'y%./+-%__p_%'` +ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}" +changequote(, )dnl + ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` +changequote([, ])dnl + +AC_MSG_CHECKING([for $2.$3]) +AC_CACHE_VAL($ac_safe_all, +[ +if test "x$4" = "x"; then + defineit="= 0" +elif test "x$4" = "xno"; then + defineit="" +else + defineit="$4" +fi +AC_TRY_COMPILE([ +$1 +],[ +struct $2 testit; +testit.$3 $defineit; +], eval "${ac_safe_all}=yes", eval "${ac_safe_all}=no" ) +]) + +if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED($ac_uc_define) +else + AC_MSG_RESULT(no) +fi +]) + +dnl AC_CHECK_STRUCT_FOR(INCLUDES,STRUCT,MEMBER,DEFINE,[no]) +dnl 1.1 (2000/09/19) +dnl Wes Hardaker + +dnl ---------------------------------------------------------- + diff --git a/3rdPartner/boa-0.94.13/src/compat.h b/3rdPartner/boa-0.94.13/src/compat.h new file mode 100644 index 0000000..31b656a --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/compat.h @@ -0,0 +1,140 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1999-2000 Jon Nelson + * and Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: compat.h,v 1.18.2.1 2002/06/06 05:02:28 jnelson Exp $*/ + +#ifndef _COMPAT_H +#define _COMPAT_H + +#include "config.h" + +#ifdef TIME_WITH_SYS_TIME +#include +#endif + +#ifdef HAVE_SYS_FCNTL_H +#include +#endif + +#ifndef OPEN_MAX +#define OPEN_MAX 256 +#endif + +#ifndef NI_MAXHOST +#define NI_MAXHOST 20 +#endif + +#include +#ifndef SO_MAXCONN +#define SO_MAXCONN 250 +#endif + +#ifndef PATH_MAX +#define PATH_MAX 2048 +#endif + +/* Wild guess time, probably better done with configure */ +#ifdef O_NONBLOCK +#define NOBLOCK O_NONBLOCK /* Linux */ +#else /* O_NONBLOCK */ +#ifdef O_NDELAY +#define NOBLOCK O_NDELAY /* Sun */ +#else /* O_NDELAY */ +#error "Can't find a way to #define NOBLOCK" +#endif /* O_NDELAY */ +#endif /* O_NONBLOCK */ + +#ifndef MAP_FILE +#define MAP_OPTIONS MAP_PRIVATE /* Sun */ +#else +#define MAP_OPTIONS MAP_FILE|MAP_PRIVATE /* Linux */ +#endif + +#ifdef INET6 +#define SOCKADDR sockaddr_storage +#define S_FAMILY __s_family +#define SERVER_AF AF_INET6 +#else +#define SOCKADDR sockaddr_in +#define S_FAMILY sin_family +#define SERVER_AF AF_INET +#endif + +#if HAVE_DIRENT_H +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +#else +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# if HAVE_SYS_NDIR_H +# include +# endif +# if HAVE_SYS_DIR_H +# include +# endif +# if HAVE_NDIR_H +# include +# endif +#endif + +/* below here, functions are provided in extras */ +#ifndef HAVE_SCANDIR +int +scandir(const char *dir, struct dirent ***namelist, + int (*select) (const struct dirent *), + int (*compar) (const struct dirent **, const struct dirent **)); +#endif + +#ifndef HAVE_ALPHASORT +int alphasort(const struct dirent **a, const struct dirent **b); +#endif + +#ifndef HAVE_STRSTR +char *strstr(char *s1, char *s2); +#endif + +#ifndef HAVE_STRDUP +char *strdup(char *s); +#endif + +#ifdef HAVE_TM_GMTOFF +#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff +#else +#define TIMEZONE_OFFSET(foo) timezone +#endif + +#ifdef HAVE_TM_ZONE +#define TIMEZONE(foo) foo##->tm_zone +#else +#define TIMEZONE(foo) *tzname +#endif + +#ifdef HAVE_LIBDMALLOC +#define DMALLOC_FUNC_CHECK +#include +#endif + +#ifdef HAVE_GETOPT_H +#include +#endif + +#endif diff --git a/3rdPartner/boa-0.94.13/src/config.c b/3rdPartner/boa-0.94.13/src/config.c new file mode 100644 index 0000000..6ccc1b9 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.c @@ -0,0 +1,334 @@ +/* + * Boa, an http server + * Copyright (C) 1999 Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: config.c,v 1.31.2.3 2002/07/26 03:04:29 jnelson Exp $*/ + +#include "boa.h" +#include "y.tab.h" +#include "parse.h" + +int yyparse(void); /* Better match the output of lex */ + +#ifdef DEBUG +#define DBG(x) x +#else +#define DBG(x) +#endif + +int server_port; +uid_t server_uid; +gid_t server_gid; +char *server_root; +char *server_name; +char *server_admin; +char *server_ip; +int virtualhost; +long int max_connections; + +char *document_root; +char *user_dir; +char *directory_index; +char *default_type; +char *dirmaker; +char *cachedir; + +char *tempdir; + +char *cgi_path = NULL; +int single_post_limit = SINGLE_POST_LIMIT_DEFAULT; + +int ka_timeout; +int ka_max; + +/* These came from log.c */ +char *error_log_name; +char *access_log_name; +char *cgi_log_name; + +int use_localtime; + +/* These are new */ +static void c_set_user(char *v1, char *v2, void *t); +static void c_set_group(char *v1, char *v2, void *t); +static void c_set_string(char *v1, char *v2, void *t); +static void c_set_int(char *v1, char *v2, void *t); +static void c_set_unity(char *v1, char *v2, void *t); +static void c_add_type(char *v1, char *v2, void *t); +static void c_add_alias(char *v1, char *v2, void *t); + +/* Fakery to keep the value passed to action() a void *, + see usage in table and c_add_alias() below */ +static int script_number = SCRIPTALIAS; +static int redirect_number = REDIRECT; +static int alias_number = ALIAS; +static uid_t current_uid=0; + +/* Help keep the table below compact */ +#define S0A STMT_NO_ARGS +#define S1A STMT_ONE_ARG +#define S2A STMT_TWO_ARGS + +struct ccommand clist[] = { + {"Port", S1A, c_set_int, &server_port}, + {"Listen", S1A, c_set_string, &server_ip}, + {"BackLog", S1A, c_set_int, &backlog}, + {"User", S1A, c_set_user, NULL}, + {"Group", S1A, c_set_group, NULL}, + {"ServerAdmin", S1A, c_set_string, &server_admin}, + {"ServerRoot", S1A, c_set_string, &server_root}, + {"ErrorLog", S1A, c_set_string, &error_log_name}, + {"AccessLog", S1A, c_set_string, &access_log_name}, + {"UseLocaltime", S0A, c_set_unity, &use_localtime}, + {"CgiLog", S1A, c_set_string, &cgi_log_name}, + {"VerboseCGILogs", S0A, c_set_unity, &verbose_cgi_logs}, + {"ServerName", S1A, c_set_string, &server_name}, + {"VirtualHost", S0A, c_set_unity, &virtualhost}, + {"DocumentRoot", S1A, c_set_string, &document_root}, + {"UserDir", S1A, c_set_string, &user_dir}, + {"DirectoryIndex", S1A, c_set_string, &directory_index}, + {"DirectoryMaker", S1A, c_set_string, &dirmaker}, + {"DirectoryCache", S1A, c_set_string, &cachedir}, + {"KeepAliveMax", S1A, c_set_int, &ka_max}, + {"KeepAliveTimeout", S1A, c_set_int, &ka_timeout}, + {"MimeTypes", S1A, c_set_string, &mime_types}, + {"DefaultType", S1A, c_set_string, &default_type}, + {"AddType", S2A, c_add_type, NULL}, + {"ScriptAlias", S2A, c_add_alias, &script_number}, + {"Redirect", S2A, c_add_alias, &redirect_number}, + {"Alias", S2A, c_add_alias, &alias_number}, + {"SinglePostLimit", S1A, c_set_int, &single_post_limit}, + {"CGIPath", S1A, c_set_string, &cgi_path}, + {"MaxConnections", S1A, c_set_int, &max_connections}, +}; + +static void c_set_user(char *v1, char *v2, void *t) +{ + struct passwd *passwdbuf; + char *endptr; + int i; + + DBG(printf("User %s = ", v1); + ) + i = strtol(v1, &endptr, 0); + if (*v1 != '\0' && *endptr == '\0') { + server_uid = i; + } else { + passwdbuf = getpwnam(v1); + if (!passwdbuf) { + if (current_uid) + return; + fprintf(stderr, "No such user: %s\n", v1); + exit(1); + } + server_uid = passwdbuf->pw_uid; + } + DBG(printf("%d\n", server_uid); + ) +} + +static void c_set_group(char *v1, char *v2, void *t) +{ + struct group *groupbuf; + char *endptr; + int i; + DBG(printf("Group %s = ", v1); + ) + i = strtol(v1, &endptr, 0); + if (*v1 != '\0' && *endptr == '\0') { + server_gid = i; + } else { + groupbuf = getgrnam(v1); + if (!groupbuf) { + if (current_uid) + return; + fprintf(stderr, "No such group: %s\n", v1); + exit(1); + } + server_gid = groupbuf->gr_gid; + } + DBG(printf("%d\n", server_gid); + ) +} + +static void c_set_string(char *v1, char *v2, void *t) +{ + char *s; + DBG(printf("Setting pointer %p to string %s ..", t, v1); + ) + if (t) { + s = *(char **) t; + if (s) + free(s); + *(char **) t = strdup(v1); + if (!*(char **) t) { + DIE("Unable to strdup in c_set_string"); + } + DBG(printf("done.\n"); + ) + } else { + DBG(printf("skipped.\n"); + ) + } +} + +static void c_set_int(char *v1, char *v2, void *t) +{ + char *endptr; + int i; + DBG(printf("Setting pointer %p to integer string %s ..", t, v1); + ) + if (t) { + i = strtol(v1, &endptr, 0); /* Automatic base 10/16/8 switching */ + if (*v1 != '\0' && *endptr == '\0') { + *(int *) t = i; + DBG(printf(" Integer converted as %d, done\n", i); + ) + } else { + /* XXX should tell line number to user */ + fprintf(stderr, "Error: %s found where integer expected\n", + v1); + } + } else { + DBG(printf("skipped.\n"); + ) + } +} + +static void c_set_unity(char *v1, char *v2, void *t) +{ + DBG(printf("Setting pointer %p to unity\n", t); + ) + if (t) + *(int *) t = 1; +} + +static void c_add_type(char *v1, char *v2, void *t) +{ + add_mime_type(v1, v2); +} + +static void c_add_alias(char *v1, char *v2, void *t) +{ + add_alias(v2, v1, *(int *) t); +} + +struct ccommand *lookup_keyword(char *c) +{ + struct ccommand *p; + DBG(printf("Checking string '%s' against keyword list\n", c); + ) + for (p = clist; + p < clist + (sizeof (clist) / sizeof (struct ccommand)); p++) { + if (strcmp(c, p->name) == 0) + return p; + } + return NULL; +} + +/* + * Name: read_config_files + * + * Description: Reads config files via yyparse, then makes sure that + * all required variables were set properly. + */ +void read_config_files(void) +{ + char *temp; + current_uid = getuid(); + yyin = fopen("boa.conf", "r"); + + if (!yyin) { + fputs("Could not open boa.conf for reading.\n", stderr); + exit(1); + } + if (yyparse()) { + fputs("Error parsing config files, exiting\n", stderr); + exit(1); + } + + if (!server_name) { + struct hostent *he; + char temp_name[100]; + + if (gethostname(temp_name, 100) == -1) { + perror("gethostname:"); + exit(1); + } + + he = gethostbyname(temp_name); + if (he == NULL) { + perror("gethostbyname:"); + exit(1); + } + + server_name = strdup(he->h_name); + if (server_name == NULL) { + perror("strdup:"); + exit(1); + } + } + tempdir = getenv("TMP"); + if (tempdir == NULL) + tempdir = "/tmp"; + + if (single_post_limit < 0) { + fprintf(stderr, "Invalid value for single_post_limit: %d\n", + single_post_limit); + exit(1); + } + + if (document_root) { + temp = normalize_path(document_root); + free(document_root); + document_root = temp; + } + + if (error_log_name) { + temp = normalize_path(error_log_name); + free(error_log_name); + error_log_name = temp; + } + + if (access_log_name) { + temp = normalize_path(access_log_name); + free(access_log_name); + access_log_name = temp; + } + + if (cgi_log_name) { + temp = normalize_path(cgi_log_name); + free(cgi_log_name); + cgi_log_name = temp; + } + + if (dirmaker) { + temp = normalize_path(dirmaker); + free(dirmaker); + dirmaker = temp; + } + +#if 0 + if (mime_types) { + temp = normalize_path(mime_types); + free(mime_types); + mime_types = temp; + } +#endif +} diff --git a/3rdPartner/boa-0.94.13/src/config.cache b/3rdPartner/boa-0.94.13/src/config.cache new file mode 100644 index 0000000..127436d --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.cache @@ -0,0 +1,56 @@ +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +ac_cv_c_const=${ac_cv_c_const='yes'} +ac_cv_func_alphasort=${ac_cv_func_alphasort='yes'} +ac_cv_func_getcwd=${ac_cv_func_getcwd='yes'} +ac_cv_func_gethostbyname=${ac_cv_func_gethostbyname='yes'} +ac_cv_func_gethostname=${ac_cv_func_gethostname='yes'} +ac_cv_func_getpagesize=${ac_cv_func_getpagesize='yes'} +ac_cv_func_inet_aton=${ac_cv_func_inet_aton='yes'} +ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped='yes'} +ac_cv_func_scandir=${ac_cv_func_scandir='yes'} +ac_cv_func_select=${ac_cv_func_select='yes'} +ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed='no'} +ac_cv_func_socket=${ac_cv_func_socket='yes'} +ac_cv_func_strdup=${ac_cv_func_strdup='yes'} +ac_cv_func_strstr=${ac_cv_func_strstr='yes'} +ac_cv_header_dirent_dirent_h=${ac_cv_header_dirent_dirent_h='yes'} +ac_cv_header_fcntl_h=${ac_cv_header_fcntl_h='yes'} +ac_cv_header_getopt_h=${ac_cv_header_getopt_h='yes'} +ac_cv_header_limits_h=${ac_cv_header_limits_h='yes'} +ac_cv_header_stdc=${ac_cv_header_stdc='yes'} +ac_cv_header_sys_fcntl_h=${ac_cv_header_sys_fcntl_h='yes'} +ac_cv_header_sys_select_h=${ac_cv_header_sys_select_h='yes'} +ac_cv_header_sys_time_h=${ac_cv_header_sys_time_h='yes'} +ac_cv_header_sys_wait_h=${ac_cv_header_sys_wait_h='yes'} +ac_cv_header_time=${ac_cv_header_time='yes'} +ac_cv_header_unistd_h=${ac_cv_header_unistd_h='yes'} +ac_cv_lib_dir_opendir=${ac_cv_lib_dir_opendir='no'} +ac_cv_lib_l_yywrap=${ac_cv_lib_l_yywrap='no'} +ac_cv_path_GUNZIP=${ac_cv_path_GUNZIP='/bin/gunzip'} +ac_cv_prog_CC=${ac_cv_prog_CC='gcc'} +ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'} +ac_cv_prog_LEX=${ac_cv_prog_LEX='lex'} +ac_cv_prog_YACC=${ac_cv_prog_YACC='bison -y'} +ac_cv_prog_cc_cross=${ac_cv_prog_cc_cross='no'} +ac_cv_prog_cc_g=${ac_cv_prog_cc_g='yes'} +ac_cv_prog_cc_works=${ac_cv_prog_cc_works='yes'} +ac_cv_prog_gcc=${ac_cv_prog_gcc='yes'} +ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set='yes'} +ac_cv_struct_sockaddr_in_has_sin_len=${ac_cv_struct_sockaddr_in_has_sin_len='no'} +ac_cv_struct_tm_has_tm_gmtoff=${ac_cv_struct_tm_has_tm_gmtoff='yes'} +ac_cv_struct_tm_has_tm_zone=${ac_cv_struct_tm_has_tm_zone='yes'} +ac_cv_type_pid_t=${ac_cv_type_pid_t='yes'} +ac_cv_type_uid_t=${ac_cv_type_uid_t='yes'} diff --git a/3rdPartner/boa-0.94.13/src/config.h b/3rdPartner/boa-0.94.13/src/config.h new file mode 100644 index 0000000..bbb3d07 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.h @@ -0,0 +1,118 @@ +/* config.h. Generated automatically by configure. */ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define if your struct tm has tm_zone. */ +#define HAVE_TM_ZONE 1 + +/* Define to `int' if doesn't define. */ +/* #undef pid_t */ + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ + +/* define if GUNZIP found */ +#define GUNZIP "/bin/gunzip" + +/* sockaddr_in has sin_len member */ +/* #undef HAVE_SIN_LEN */ + +/* if struct tm has tm_gmtoff structure */ +#define HAVE_TM_GMTOFF 1 + +/* if struct tm has tm_zone structure */ +#define HAVE_TM_ZONE 1 + +/* Define if you have the alphasort function. */ +#define HAVE_ALPHASORT 1 + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the gethostbyname function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define if you have the gethostname function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define if you have the getpagesize function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the inet_aton function. */ +#define HAVE_INET_ATON 1 + +/* Define if you have the scandir function. */ +#define HAVE_SCANDIR 1 + +/* Define if you have the select function. */ +#define HAVE_SELECT 1 + +/* Define if you have the socket function. */ +#define HAVE_SOCKET 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the strstr function. */ +#define HAVE_STRSTR 1 + +/* Define if you have the header file. */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if you have the header file. */ +#define HAVE_SYS_FCNTL_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if you have the dmalloc library (-ldmalloc). */ +/* #undef HAVE_LIBDMALLOC */ + +/* Define if you have the efence library (-lefence). */ +/* #undef HAVE_LIBEFENCE */ diff --git a/3rdPartner/boa-0.94.13/src/config.h.in b/3rdPartner/boa-0.94.13/src/config.h.in new file mode 100644 index 0000000..f7efdc4 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.h.in @@ -0,0 +1,117 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* Define if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define if your struct tm has tm_zone. */ +#undef HAVE_TM_ZONE + +/* Define to `int' if doesn't define. */ +#undef pid_t + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +#undef SETVBUF_REVERSED + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define to `int' if doesn't define. */ +#undef uid_t + +/* define if GUNZIP found */ +#undef GUNZIP + +/* sockaddr_in has sin_len member */ +#undef HAVE_SIN_LEN + +/* if struct tm has tm_gmtoff structure */ +#undef HAVE_TM_GMTOFF + +/* if struct tm has tm_zone structure */ +#undef HAVE_TM_ZONE + +/* Define if you have the alphasort function. */ +#undef HAVE_ALPHASORT + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD + +/* Define if you have the gethostbyname function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define if you have the gethostname function. */ +#undef HAVE_GETHOSTNAME + +/* Define if you have the getpagesize function. */ +#undef HAVE_GETPAGESIZE + +/* Define if you have the inet_aton function. */ +#undef HAVE_INET_ATON + +/* Define if you have the scandir function. */ +#undef HAVE_SCANDIR + +/* Define if you have the select function. */ +#undef HAVE_SELECT + +/* Define if you have the socket function. */ +#undef HAVE_SOCKET + +/* Define if you have the strdup function. */ +#undef HAVE_STRDUP + +/* Define if you have the strstr function. */ +#undef HAVE_STRSTR + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define if you have the header file. */ +#undef HAVE_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the dmalloc library (-ldmalloc). */ +#undef HAVE_LIBDMALLOC + +/* Define if you have the efence library (-lefence). */ +#undef HAVE_LIBEFENCE diff --git a/3rdPartner/boa-0.94.13/src/config.log b/3rdPartner/boa-0.94.13/src/config.log new file mode 100644 index 0000000..427b11d --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.log @@ -0,0 +1,53 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +configure:537: checking for gunzip +configure:577: checking for flex +configure:611: checking for yywrap in -ll +configure:657: checking for bison +configure:690: checking for gcc +configure:803: checking whether the C compiler (gcc ) works +configure:819: gcc -o conftest conftest.c 1>&5 +configure:816:1: warning: return type defaults to 'int' [-Wimplicit-int] + main(){return(0);} + ^ +configure:845: checking whether the C compiler (gcc ) is a cross-compiler +configure:850: checking whether we are using GNU C +configure:878: checking whether gcc accepts -g +configure:910: checking how to run the C preprocessor +configure:990: checking whether make sets ${MAKE} +configure:1025: checking for dirent.h that defines DIR +configure:1063: checking for opendir in -ldir +configure:1146: checking for ANSI C header files +configure:1250: checking for sys/wait.h that is POSIX.1 compatible +configure:1295: checking for fcntl.h +configure:1295: checking for sys/fcntl.h +configure:1295: checking for limits.h +configure:1295: checking for sys/time.h +configure:1295: checking for sys/select.h +configure:1335: checking for getopt.h +configure:1373: checking for working const +configure:1448: checking for uid_t in sys/types.h +configure:1482: checking for pid_t +configure:1515: checking whether time.h and sys/time.h may both be included +configure:1551: checking whether setvbuf arguments are reversed +configure:1600: checking for unistd.h +configure:1639: checking for getpagesize +configure:1692: checking for working mmap +configure:1865: checking for getcwd +configure:1865: checking for strdup +configure:1865: checking for strstr +configure:1920: checking for gethostname +configure:1920: checking for gethostbyname +configure:1920: checking for select +configure:1920: checking for socket +configure:1920: checking for inet_aton +configure:1975: checking for scandir +configure:1975: checking for alphasort +configure:2035: checking for tm.tm_gmtoff +configure:2110: checking for tm.tm_zone +configure:2186: checking for sockaddr_in.sin_len +configure:2441: checking compile and link profiling code +configure:2463: checking whether to compile and link debugging code +configure:2486: checking whether to link with the Dmalloc memory debugger/profiler +configure:2552: checking whether to link with the Electric Fence memory debugger diff --git a/3rdPartner/boa-0.94.13/src/config.o b/3rdPartner/boa-0.94.13/src/config.o new file mode 100644 index 0000000..0f4da53 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/config.o differ diff --git a/3rdPartner/boa-0.94.13/src/config.status b/3rdPartner/boa-0.94.13/src/config.status new file mode 100644 index 0000000..f4a7ebc --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/config.status @@ -0,0 +1,347 @@ +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host hkc-VirtualBox: +# +# ./configure +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]" +for ac_option +do + case "$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion" + exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "./config.status generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "$ac_cs_usage"; exit 0 ;; + *) echo "$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=. + +trap 'rm -fr Makefile config.h conftest*; exit 1' 1 2 15 + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g; + s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF +/^[ ]*VPATH[ ]*=[^:]*$/d + +s%@SHELL@%/bin/sh%g +s%@CFLAGS@%-g -O2 -pipe -Wall%g +s%@CPPFLAGS@%%g +s%@CXXFLAGS@%%g +s%@FFLAGS@%%g +s%@DEFS@%-DHAVE_CONFIG_H%g +s%@LDFLAGS@% -g%g +s%@LIBS@% %g +s%@exec_prefix@%${prefix}%g +s%@prefix@%/usr/local%g +s%@program_transform_name@%s,x,x,%g +s%@bindir@%${exec_prefix}/bin%g +s%@sbindir@%${exec_prefix}/sbin%g +s%@libexecdir@%${exec_prefix}/libexec%g +s%@datadir@%${prefix}/share%g +s%@sysconfdir@%${prefix}/etc%g +s%@sharedstatedir@%${prefix}/com%g +s%@localstatedir@%${prefix}/var%g +s%@libdir@%${exec_prefix}/lib%g +s%@includedir@%${prefix}/include%g +s%@oldincludedir@%/usr/include%g +s%@infodir@%${prefix}/info%g +s%@mandir@%${prefix}/man%g +s%@GUNZIP@%/bin/gunzip%g +s%@LEX@%lex%g +s%@LEXLIB@%%g +s%@YACC@%bison -y%g +s%@CC@%gcc%g +s%@CPP@%gcc -E%g +s%@SET_MAKE@%%g +s%@STRUTIL@%%g +s%@ALPHASORT@%%g +s%@SCANDIR@%%g + +CEOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi + +CONFIG_FILES=${CONFIG_FILES-"Makefile"} +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then + CONFIG_HEADERS="config.h" +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + cat > conftest.frag < conftest.out + rm -f conftest.in + mv conftest.out conftest.in + + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + + + +exit 0 diff --git a/3rdPartner/boa-0.94.13/src/configure b/3rdPartner/boa-0.94.13/src/configure new file mode 100644 index 0000000..bda829f --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/configure @@ -0,0 +1,2971 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-profiling Compile and link profiling code" +ac_help="$ac_help + --disable-debug Compile and link debugging code" +ac_help="$ac_help + --with-dmalloc link with the Dmalloc memory debugger/profiler" +ac_help="$ac_help + --with-efence link with the Electric Fence memory debugger " + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=boa.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +# Extract the first word of "gunzip", so it can be a program name with args. +set dummy gunzip; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:537: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_GUNZIP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$GUNZIP" in + /*) + ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_GUNZIP="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +GUNZIP="$ac_cv_path_GUNZIP" +if test -n "$GUNZIP"; then + echo "$ac_t""$GUNZIP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +cat >> confdefs.h <&6 +echo "configure:577: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LEX="flex" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex" +fi +fi +LEX="$ac_cv_prog_LEX" +if test -n "$LEX"; then + echo "$ac_t""$LEX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$LEXLIB" +then + case "$LEX" in + flex*) ac_lib=fl ;; + *) ac_lib=l ;; + esac + echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 +echo "configure:611: checking for yywrap in -l$ac_lib" >&5 +ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-l$ac_lib $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LEXLIB="-l$ac_lib" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +for ac_prog in 'bison -y' byacc +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:657: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_YACC="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +YACC="$ac_cv_prog_YACC" +if test -n "$YACC"; then + echo "$ac_t""$YACC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:690: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:720: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:771: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:803: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 814 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:845: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:850: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:878: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:910: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:931: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:948: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:990: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + + + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 +echo "configure:1025: checking for $ac_hdr that defines DIR" >&5 +if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include <$ac_hdr> +int main() { +DIR *dirp = 0; +; return 0; } +EOF +if { (eval echo configure:1038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:1063: checking for opendir in -ldir" >&5 +ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldir $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -ldir" +else + echo "$ac_t""no" 1>&6 +fi + +else +echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 +echo "configure:1104: checking for opendir in -lx" >&5 +ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lx $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lx" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1146: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 +echo "configure:1250: checking for sys/wait.h that is POSIX.1 compatible" >&5 +if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifndef WEXITSTATUS +#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) +#endif +#ifndef WIFEXITED +#define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif +int main() { +int s; +wait (&s); +s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; +; return 0; } +EOF +if { (eval echo configure:1271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_sys_wait_h=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_sys_wait_h=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6 +if test $ac_cv_header_sys_wait_h = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_SYS_WAIT_H 1 +EOF + +fi + +for ac_hdr in fcntl.h sys/fcntl.h limits.h sys/time.h sys/select.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1295: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_hdr in getopt.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1335: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + +echo $ac_n "checking for working const""... $ac_c" 1>&6 +echo "configure:1373: checking for working const" >&5 +if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <j = 5; +} +{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +} + +; return 0; } +EOF +if { (eval echo configure:1427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_c_const=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_c_const" 1>&6 +if test $ac_cv_c_const = no; then + cat >> confdefs.h <<\EOF +#define const +EOF + +fi + +echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 +echo "configure:1448: checking for uid_t in sys/types.h" >&5 +if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "uid_t" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_uid_t=yes +else + rm -rf conftest* + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_type_uid_t" 1>&6 +if test $ac_cv_type_uid_t = no; then + cat >> confdefs.h <<\EOF +#define uid_t int +EOF + + cat >> confdefs.h <<\EOF +#define gid_t int +EOF + +fi + +echo $ac_n "checking for pid_t""... $ac_c" 1>&6 +echo "configure:1482: checking for pid_t" >&5 +if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#if STDC_HEADERS +#include +#include +#endif +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_type_pid_t=yes +else + rm -rf conftest* + ac_cv_type_pid_t=no +fi +rm -f conftest* + +fi +echo "$ac_t""$ac_cv_type_pid_t" 1>&6 +if test $ac_cv_type_pid_t = no; then + cat >> confdefs.h <<\EOF +#define pid_t int +EOF + +fi + +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +echo "configure:1515: checking whether time.h and sys/time.h may both be included" >&5 +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +int main() { +struct tm *tp; +; return 0; } +EOF +if { (eval echo configure:1529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_time=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + +fi + + +echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 +echo "configure:1551: checking whether setvbuf arguments are reversed" >&5 +if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } +else + cat > conftest.$ac_ext < +/* If setvbuf has the reversed format, exit 0. */ +main () { + /* This call has the arguments reversed. + A reversed system may check and see that the address of main + is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ + if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0) + exit(1); + putc('\r', stdout); + exit(0); /* Non-reversed systems segv here. */ +} +EOF +if { (eval echo configure:1573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + ac_cv_func_setvbuf_reversed=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_setvbuf_reversed=no +fi +rm -fr conftest* +fi + +rm -f core core.* *.core +fi + +echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6 +if test $ac_cv_func_setvbuf_reversed = yes; then + cat >> confdefs.h <<\EOF +#define SETVBUF_REVERSED 1 +EOF + +fi + +for ac_hdr in unistd.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1600: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1610: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in getpagesize +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1639: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +echo "configure:1692: checking for working mmap" >&5 +if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no +else + cat > conftest.$ac_ext < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# endif + +/* Assume that all systems that can run configure have sys/param.h. */ +# ifndef HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +#ifdef __cplusplus +extern "C" { void *malloc(unsigned); } +#else +char *malloc(); +#endif + +int +main() +{ + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize(); + + /* + * First, make a file with some known garbage in it. + */ + data = malloc(pagesize); + if (!data) + exit(1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand(); + umask(0); + fd = creat("conftestmmap", 0600); + if (fd < 0) + exit(1); + if (write(fd, data, pagesize) != pagesize) + exit(1); + close(fd); + + /* + * Next, try to mmap the file at a fixed address which + * already has something else allocated at it. If we can, + * also make sure that we see the same garbage. + */ + fd = open("conftestmmap", O_RDWR); + if (fd < 0) + exit(1); + data2 = malloc(2 * pagesize); + if (!data2) + exit(1); + data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit(1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + exit(1); + + /* + * Finally, make sure that changes to the mapped area + * do not percolate back to the file as seen by read(). + * (This is a bug on some variants of i386 svr4.0.) + */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = malloc(pagesize); + if (!data3) + exit(1); + if (read(fd, data3, pagesize) != pagesize) + exit(1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + exit(1); + close(fd); + unlink("conftestmmap"); + exit(0); +} + +EOF +if { (eval echo configure:1840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + ac_cv_func_mmap_fixed_mapped=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_func_mmap_fixed_mapped=no +fi +rm -fr conftest* +fi + +fi + +echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_MMAP 1 +EOF + +fi + +for ac_func in getcwd strdup strstr +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1865: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in gethostname gethostbyname select socket inet_aton +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1920: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in scandir alphasort +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1975: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + + + +ac_safe_struct=`echo "tm" | sed 'y%./+-%__p_%'` +ac_safe_member=`echo "tm_gmtoff" | sed 'y%./+-%__p_%'` +ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}" + ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + +echo $ac_n "checking for tm.tm_gmtoff""... $ac_c" 1>&6 +echo "configure:2035: checking for tm.tm_gmtoff" >&5 +if eval "test \"`echo '$''{'$ac_safe_all'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +if test "x" = "x"; then + defineit="= 0" +elif test "x" = "xno"; then + defineit="" +else + defineit="" +fi +cat > conftest.$ac_ext < +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + + +int main() { + +struct tm testit; +testit.tm_gmtoff $defineit; + +; return 0; } +EOF +if { (eval echo configure:2071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "${ac_safe_all}=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "${ac_safe_all}=no" +fi +rm -f conftest* + +fi + + +if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <&6 +fi + + +if test "$ac_cv_struct_tm_has_tm_gmtoff" = "yes"; then + cat >> confdefs.h <<\EOF +#define HAVE_TM_GMTOFF 1 +EOF + +fi + + +ac_safe_struct=`echo "tm" | sed 'y%./+-%__p_%'` +ac_safe_member=`echo "tm_zone" | sed 'y%./+-%__p_%'` +ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}" + ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + +echo $ac_n "checking for tm.tm_zone""... $ac_c" 1>&6 +echo "configure:2110: checking for tm.tm_zone" >&5 +if eval "test \"`echo '$''{'$ac_safe_all'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +if test "x" = "x"; then + defineit="= 0" +elif test "x" = "xno"; then + defineit="" +else + defineit="" +fi +cat > conftest.$ac_ext < +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + + +int main() { + +struct tm testit; +testit.tm_zone $defineit; + +; return 0; } +EOF +if { (eval echo configure:2147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "${ac_safe_all}=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "${ac_safe_all}=no" +fi +rm -f conftest* + +fi + + +if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <&6 +fi + + +if test "$ac_cv_struct_tm_has_tm_zone" = "yes"; then + cat >> confdefs.h <<\EOF +#define HAVE_TM_ZONE 1 +EOF + +fi + + +ac_safe_struct=`echo "sockaddr_in" | sed 'y%./+-%__p_%'` +ac_safe_member=`echo "sin_len" | sed 'y%./+-%__p_%'` +ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}" + ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + +echo $ac_n "checking for sockaddr_in.sin_len""... $ac_c" 1>&6 +echo "configure:2186: checking for sockaddr_in.sin_len" >&5 +if eval "test \"`echo '$''{'$ac_safe_all'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +if test "x" = "x"; then + defineit="= 0" +elif test "x" = "xno"; then + defineit="" +else + defineit="" +fi +cat > conftest.$ac_ext < +#include + + +int main() { + +struct sockaddr_in testit; +testit.sin_len $defineit; + +; return 0; } +EOF +if { (eval echo configure:2214: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "${ac_safe_all}=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "${ac_safe_all}=no" +fi +rm -f conftest* + +fi + + +if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <&6 +fi + + +if test "$ac_cv_struct_sockaddr_in_has_sin_len" = "yes"; then + cat >> confdefs.h <<\EOF +#define HAVE_SIN_LEN 1 +EOF + +fi + +if test $ac_cv_func_socket = no; then + # socket is not in the default libraries. + echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +echo "configure:2249: checking for socket in -lsocket" >&5 +ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MYLIBS="$MYLIBS -lsocket" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +if test $ac_cv_func_inet_aton = no; then + # inet_aton is not in the default libraries. + echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6 +echo "configure:2293: checking for inet_aton in -lresolv" >&5 +ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lresolv $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MYLIBS="$MYLIBS -lresolv" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +if test $ac_cv_func_gethostname = no; then + echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6 +echo "configure:2336: checking for gethostname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MYLIBS="$MYLIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:2379: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + MYLIBS="$MYLIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +LIBS="$LIBS $MYLIBS" + +if test $ac_cv_func_scandir = no; then + # scandir not defined, add it + SCANDIR="scandir.o" +fi + +if test $ac_cv_func_alphasort = no; then + # alphasort not defined, add it + ALPHASORT="alphasort.o" +fi + +if test $ac_cv_func_strdup = no -o $ac_cv_func_strstr = no; then + # strdup or strstr not defined + STRUTIL="strutil.o" +fi + +if test -n "$GCC"; then + test -n "$GCC" && CFLAGS="$CFLAGS -pipe" + + echo $ac_n "checking compile and link profiling code""... $ac_c" 1>&6 +echo "configure:2441: checking compile and link profiling code" >&5 + # Check whether --enable-profiling or --disable-profiling was given. +if test "${enable_profiling+set}" = set; then + enableval="$enable_profiling" + + if test "$enableval" = "yes" ; then + echo "$ac_t""yes" 1>&6 + CFLAGS="$CFLAGS -pg" + LDFLAGS="$LDFLAGS -g -pg" + else + echo "$ac_t""no" 1>&6 + fi + +else + + echo "$ac_t""no" 1>&6 + +fi + +fi + +echo $ac_n "checking whether to compile and link debugging code""... $ac_c" 1>&6 +echo "configure:2463: checking whether to compile and link debugging code" >&5 +# Check whether --enable-debug or --disable-debug was given. +if test "${enable_debug+set}" = set; then + enableval="$enable_debug" + + if test "$enableval" = "yes" ; then + echo "$ac_t""yes" 1>&6 + LDFLAGS="$LDFLAGS -g" + test -n "$GCC" && CFLAGS="$CFLAGS -Wall" + else + echo "$ac_t""no" 1>&6 + fi + +else + + echo "$ac_t""yes" 1>&6 + LDFLAGS="$LDFLAGS -g" + test -n "$GCC" && CFLAGS="$CFLAGS -Wall" + +fi + + +echo $ac_n "checking whether to link with the Dmalloc memory debugger/profiler""... $ac_c" 1>&6 +echo "configure:2486: checking whether to link with the Dmalloc memory debugger/profiler" >&5 +# Check whether --with-dmalloc or --without-dmalloc was given. +if test "${with_dmalloc+set}" = set; then + withval="$with_dmalloc" + + if test "$withval" = "yes"; then + echo "$ac_t""trying" 1>&6 + echo $ac_n "checking for dmalloc_shutdown in -ldmalloc""... $ac_c" 1>&6 +echo "configure:2494: checking for dmalloc_shutdown in -ldmalloc" >&5 +ac_lib_var=`echo dmalloc'_'dmalloc_shutdown | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldmalloc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo dmalloc | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + else + echo "$ac_t""no" 1>&6 + fi + +else + + echo "$ac_t""no" 1>&6 + +fi + + +echo $ac_n "checking whether to link with the Electric Fence memory debugger""... $ac_c" 1>&6 +echo "configure:2552: checking whether to link with the Electric Fence memory debugger" >&5 +# Check whether --with-efence or --without-efence was given. +if test "${with_efence+set}" = set; then + withval="$with_efence" + + if test "$withval" = "yes"; then + echo "$ac_t""trying" 1>&6 + echo $ac_n "checking for main in -lefence""... $ac_c" 1>&6 +echo "configure:2560: checking for main in -lefence" >&5 +ac_lib_var=`echo efence'_'main | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lefence $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo efence | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + else + echo "$ac_t""no" 1>&6 + fi + +else + + echo "$ac_t""no" 1>&6 + +fi + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@GUNZIP@%$GUNZIP%g +s%@LEX@%$LEX%g +s%@LEXLIB@%$LEXLIB%g +s%@YACC@%$YACC%g +s%@CC@%$CC%g +s%@CPP@%$CPP%g +s%@SET_MAKE@%$SET_MAKE%g +s%@STRUTIL@%$STRUTIL%g +s%@ALPHASORT@%$ALPHASORT%g +s%@SCANDIR@%$SCANDIR%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. And first: +# Protect against being on the right side of a sed subst in config.status. +# Protect against being in an unquoted here document in config.status. +rm -f conftest.vals +cat > conftest.hdr <<\EOF +s/[\\&%]/\\&/g +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >> conftest.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> $CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> $CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +cat >> $CONFIG_STATUS <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/3rdPartner/boa-0.94.13/src/configure.in b/3rdPartner/boa-0.94.13/src/configure.in new file mode 100644 index 0000000..c3061bd --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/configure.in @@ -0,0 +1,196 @@ +dnl $Id: configure.in,v 1.21.2.5 2002/07/28 02:38:32 jnelson Exp $ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(boa.c) + +dnl Look for gunzip +AC_PATH_PROG(GUNZIP, gunzip) +AC_DEFINE_UNQUOTED(GUNZIP, "$ac_cv_path_GUNZIP") + +dnl Checks for programs. +AC_PROG_LEX +AC_PROG_YACC +AC_PROG_CC +AC_PROG_CPP +AC_PROG_MAKE_SET + +dnl Checks for libraries. + +dnl Make config.h +AC_CONFIG_HEADER(config.h) + +dnl Checks for header files. +AC_HEADER_DIRENT +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(fcntl.h sys/fcntl.h limits.h sys/time.h sys/select.h) +AC_CHECK_HEADERS(getopt.h) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_UID_T +AC_TYPE_PID_T +AC_HEADER_TIME + +dnl Checks for library functions. +AC_FUNC_SETVBUF_REVERSED +AC_FUNC_MMAP +AC_CHECK_FUNCS(getcwd strdup strstr) +AC_CHECK_FUNCS(gethostname gethostbyname select socket inet_aton) +AC_CHECK_FUNCS(scandir alphasort) + +AC_CHECK_STRUCT_FOR([ +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +],tm,tm_gmtoff) + +if test "$ac_cv_struct_tm_has_tm_gmtoff" = "yes"; then + AC_DEFINE(HAVE_TM_GMTOFF) +fi + +AC_CHECK_STRUCT_FOR([ + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +],tm,tm_zone) + +if test "$ac_cv_struct_tm_has_tm_zone" = "yes"; then + AC_DEFINE(HAVE_TM_ZONE) +fi + +AC_CHECK_STRUCT_FOR([ +#include +#include +],sockaddr_in,sin_len) + +if test "$ac_cv_struct_sockaddr_in_has_sin_len" = "yes"; then + AC_DEFINE(HAVE_SIN_LEN) +fi + +if test $ac_cv_func_socket = no; then + # socket is not in the default libraries. + AC_CHECK_LIB(socket, socket, + [ MYLIBS="$MYLIBS -lsocket" ]) +fi + +if test $ac_cv_func_inet_aton = no; then + # inet_aton is not in the default libraries. + AC_CHECK_LIB(resolv, inet_aton, MYLIBS="$MYLIBS -lresolv") +fi + +if test $ac_cv_func_gethostname = no; then + AC_CHECK_LIB(nsl, gethostname, MYLIBS="$MYLIBS -lnsl") +fi + +dnl May end up with duplicate -lnsl -- oh well +if test $ac_cv_func_gethostbyname = no; then + AC_CHECK_LIB(nsl, gethostbyname, MYLIBS="$MYLIBS -lnsl") +fi + +LIBS="$LIBS $MYLIBS" + +if test $ac_cv_func_scandir = no; then + # scandir not defined, add it + SCANDIR="scandir.o" +fi + +if test $ac_cv_func_alphasort = no; then + # alphasort not defined, add it + ALPHASORT="alphasort.o" +fi + +if test $ac_cv_func_strdup = no -o $ac_cv_func_strstr = no; then + # strdup or strstr not defined + STRUTIL="strutil.o" +fi + +if test -n "$GCC"; then + dnl if we are running gcc, use -pipe + test -n "$GCC" && CFLAGS="$CFLAGS -pipe" + + AC_MSG_CHECKING(compile and link profiling code) + AC_ARG_ENABLE(profiling, + [ --enable-profiling Compile and link profiling code], + [ + if test "$enableval" = "yes" ; then + AC_MSG_RESULT(yes) + CFLAGS="$CFLAGS -pg" + LDFLAGS="$LDFLAGS -g -pg" + else + AC_MSG_RESULT(no) + fi + ], + [ + AC_MSG_RESULT(no) + ]) +fi + +AC_MSG_CHECKING(whether to compile and link debugging code) +AC_ARG_ENABLE(debug, +[ --disable-debug Compile and link debugging code], +[ + if test "$enableval" = "yes" ; then + AC_MSG_RESULT(yes) + LDFLAGS="$LDFLAGS -g" + test -n "$GCC" && CFLAGS="$CFLAGS -Wall" + else + AC_MSG_RESULT(no) + fi +], +[ + AC_MSG_RESULT(yes) + LDFLAGS="$LDFLAGS -g" + test -n "$GCC" && CFLAGS="$CFLAGS -Wall" +]) + +AC_MSG_CHECKING(whether to link with the Dmalloc memory debugger/profiler) +AC_ARG_WITH(dmalloc, +[ --with-dmalloc link with the Dmalloc memory debugger/profiler], +[ + if test "$withval" = "yes"; then + AC_MSG_RESULT(trying) + AC_CHECK_LIB(dmalloc, dmalloc_shutdown) + else + AC_MSG_RESULT(no) + fi +], +[ + AC_MSG_RESULT(no) +]) + +AC_MSG_CHECKING(whether to link with the Electric Fence memory debugger) +AC_ARG_WITH(efence, +[ --with-efence link with the Electric Fence memory debugger ], +[ + if test "$withval" = "yes"; then + AC_MSG_RESULT(trying) + AC_CHECK_LIB(efence, main) + else + AC_MSG_RESULT(no) + fi +], +[ + AC_MSG_RESULT(no) +]) + +dnl For anything that wasn't found but we have source for +AC_SUBST(STRUTIL) +AC_SUBST(ALPHASORT) +AC_SUBST(SCANDIR) + +AC_OUTPUT(Makefile) diff --git a/3rdPartner/boa-0.94.13/src/defines.h b/3rdPartner/boa-0.94.13/src/defines.h new file mode 100644 index 0000000..a124da5 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/defines.h @@ -0,0 +1,198 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1997 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: defines.h,v 1.107.2.2 2002/06/07 02:57:23 jnelson Exp $*/ + +#ifndef _DEFINES_H +#define _DEFINES_H + +/***** Change this, or use -c on the command line to specify it *****/ + +#ifndef SERVER_ROOT +#define SERVER_ROOT "/etc/boa" +#endif + +/***** Change this via the CGIPath configuration value in boa.conf *****/ +#define DEFAULT_PATH "/bin:/usr/bin:/usr/local/bin" + +/***** Change this via the SinglePostLimit configuration value in boa.conf *****/ +#define SINGLE_POST_LIMIT_DEFAULT 1024 * 1024 /* 1 MB */ + +/***** Various stuff that you may want to tweak, but probably shouldn't *****/ + +#define SOCKETBUF_SIZE 8192 +#define MAX_HEADER_LENGTH 1024 +#define CLIENT_STREAM_SIZE SOCKETBUF_SIZE +#define BUFFER_SIZE CLIENT_STREAM_SIZE + +#define MIME_HASHTABLE_SIZE 47 +#define ALIAS_HASHTABLE_SIZE 17 +#define PASSWD_HASHTABLE_SIZE 47 + +#define REQUEST_TIMEOUT 60 + +#define CGI_MIME_TYPE "application/x-httpd-cgi" + +/***** CHANGE ANYTHING BELOW THIS LINE AT YOUR OWN PERIL *****/ +/***** You will probably introduce buffer overruns unless you know + what you are doing *****/ + +#define MAX_SITENAME_LENGTH 256 +#define MAX_LOG_LENGTH MAX_HEADER_LENGTH + 1024 +#define MAX_FILE_LENGTH NAME_MAX +#define MAX_PATH_LENGTH PATH_MAX + +#ifdef ACCEPT_ON +#define MAX_ACCEPT_LENGTH MAX_HEADER_LENGTH +#else +#define MAX_ACCEPT_LENGTH 0 +#endif + +#ifndef SERVER_VERSION +#define SERVER_VERSION "Boa/0.94.13" +#endif + +#define CGI_VERSION "CGI/1.1" +#define COMMON_CGI_COUNT 6 +#define CGI_ENV_MAX 50 +#define CGI_ARGC_MAX 128 + +/******************* RESPONSE CLASSES *****************/ + +#define R_INFORMATIONAL 1 +#define R_SUCCESS 2 +#define R_REDIRECTION 3 +#define R_CLIENT_ERROR 4 +#define R_SERVER_ERROR 5 + +/******************* RESPONSE CODES ******************/ + +#define R_REQUEST_OK 200 +#define R_CREATED 201 +#define R_ACCEPTED 202 +#define R_PROVISIONAL 203 /* provisional information */ +#define R_NO_CONTENT 204 + +#define R_MULTIPLE 300 /* multiple choices */ +#define R_MOVED_PERM 301 +#define R_MOVED_TEMP 302 +#define R_NOT_MODIFIED 304 + +#define R_BAD_REQUEST 400 +#define R_UNAUTHORIZED 401 +#define R_PAYMENT 402 /* payment required */ +#define R_FORBIDDEN 403 +#define R_NOT_FOUND 404 +#define R_METHOD_NA 405 /* method not allowed */ +#define R_NONE_ACC 406 /* none acceptable */ +#define R_PROXY 407 /* proxy authentication required */ +#define R_REQUEST_TO 408 /* request timeout */ +#define R_CONFLICT 409 +#define R_GONE 410 + +#define R_ERROR 500 /* internal server error */ +#define R_NOT_IMP 501 /* not implemented */ +#define R_BAD_GATEWAY 502 +#define R_SERVICE_UNAV 503 /* service unavailable */ +#define R_GATEWAY_TO 504 /* gateway timeout */ +#define R_BAD_VERSION 505 + +/****************** METHODS *****************/ + +#define M_GET 1 +#define M_HEAD 2 +#define M_PUT 3 +#define M_POST 4 +#define M_DELETE 5 +#define M_LINK 6 +#define M_UNLINK 7 + +/************** REQUEST STATUS (req->status) ***************/ + +#define READ_HEADER 0 +#define ONE_CR 1 +#define ONE_LF 2 +#define TWO_CR 3 +#define BODY_READ 4 +#define BODY_WRITE 5 +#define WRITE 6 +#define PIPE_READ 7 +#define PIPE_WRITE 8 +#define DONE 9 +#define DEAD 10 + +/************** CGI TYPE (req->is_cgi) ******************/ + +#define CGI 1 +#define NPH 2 + +/************* ALIAS TYPES (aliasp->type) ***************/ + +#define ALIAS 0 +#define SCRIPTALIAS 1 +#define REDIRECT 2 + +/*********** KEEPALIVE CONSTANTS (req->keepalive) *******/ + +#define KA_INACTIVE 0 +#define KA_STOPPED 1 +#define KA_ACTIVE 2 + +/********* CGI STATUS CONSTANTS (req->cgi_status) *******/ +#define CGI_PARSE 1 +#define CGI_BUFFER 2 +#define CGI_DONE 3 + +/*********** MMAP_LIST CONSTANTS ************************/ +#define MMAP_LIST_SIZE 256 +#define MMAP_LIST_MASK 255 +#define MMAP_LIST_USE_MAX 128 +#define MMAP_LIST_NEXT(i) (((i)+1)&MMAP_LIST_MASK) +#define MMAP_LIST_HASH(dev,ino,size) ((ino)&MMAP_LIST_MASK) + +#define MAX_FILE_MMAP 100 * 1024 /* 100K */ + +/***************** USEFUL MACROS ************************/ + +#define SQUASH_KA(req) (req->keepalive=KA_STOPPED) + +#define BOA_FD_SET(fd, where) { FD_SET(fd, where); \ + if (fd > max_fd) max_fd = fd; \ + } + +/* If and when everyone has a modern gcc or other near-C99 compiler, + * change these to static inline functions. Also note that since + * we never fuss with O_APPEND append or O_ASYNC, we shouldn't have + * to perform an extra system call to F_GETFL first. + */ + +#ifdef BOA_USE_GETFL +#define set_block_fd(fd) real_set_block_fd(fd) +#define set_nonblock_fd(fd) real_set_nonblock_fd(fd) +#else +#define set_block_fd(fd) fcntl(fd, F_SETFL, 0) +#define set_nonblock_fd(fd) fcntl(fd, F_SETFL, NOBLOCK) +#endif + +#define DIE(mesg) log_error_mesg(__FILE__, __LINE__, mesg), exit(1) +#define WARN(mesg) log_error_mesg(__FILE__, __LINE__, mesg) + +#endif diff --git a/3rdPartner/boa-0.94.13/src/escape.c b/3rdPartner/boa-0.94.13/src/escape.c new file mode 100644 index 0000000..690fbab --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/escape.c @@ -0,0 +1,95 @@ +/* + * Boa, an http server + * escape.c + * Copyright (C) 2001 Jon Nelson + * Based on escape.pl, Copyright (C) 1996 Larry Doolittle + * Copyright (C) 2001 Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: escape.c,v 1.7 2002/03/22 04:24:09 jnelson Exp $ */ + +/* + unreserved = alnum | mark + alnum = "0".."9" | "A".."Z" | "a".."z" + mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" + noescape = unreserved | ":" | "@" | "&" | "=" | "+" | "$" | "," | "/" + */ + +#ifdef TEST +#include +#include +#else +#include "boa.h" +#endif + +#include "escape.h" + +unsigned long _needs_escape[(NEEDS_ESCAPE_BITS+NEEDS_ESCAPE_WORD_LENGTH-1)/NEEDS_ESCAPE_WORD_LENGTH]; + +void build_needs_escape(void) +{ + unsigned int a, b; + const unsigned char special[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789" + "-_.!~*'():@&=+$,/?"; + /* 21 Mar 2002 - jnelson - confirm with Apache 1.3.23 that '?' + * is safe to leave unescaped. + */ + unsigned short i, j; + + b = 1; + for (a=0; b!=0; a++) b=b<<1; + /* I found $a bit positions available in an unsigned long. */ + if (a < NEEDS_ESCAPE_WORD_LENGTH) { + fprintf(stderr, + "NEEDS_ESCAPE_SHIFT configuration error -- "\ + "%d should be <= log2(%d)\n", + NEEDS_ESCAPE_SHIFT, a); + exit(1); + } else if (a >= 2*NEEDS_ESCAPE_WORD_LENGTH) { + /* needs_escape_shift configuration suboptimal */ + } else { + /* Ahh, just right! */; + } + memset(_needs_escape, ~0, sizeof(_needs_escape)); + for(i = 0; i < sizeof(special) - 1; ++i) { + j=special[i]; + if (j>=NEEDS_ESCAPE_BITS) { + /* warning: character $j will be needlessly escaped. */ + } else { + _needs_escape[NEEDS_ESCAPE_INDEX(j)]&=~NEEDS_ESCAPE_MASK(j); + } + } +} + +#ifdef TEST +int main(void) +{ + int i; + build_needs_escape(); + for(i = 0; i <= NEEDS_ESCAPE_BITS; ++i) { + if (needs_escape(i)) { + fprintf(stdout, "%3d needs escape.\n", i); + } + } + return(0); +} +#endif + diff --git a/3rdPartner/boa-0.94.13/src/escape.h b/3rdPartner/boa-0.94.13/src/escape.h new file mode 100644 index 0000000..62ef3d6 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/escape.h @@ -0,0 +1,47 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Copyright (C) 2001 Jon Nelson + * Copyright (C) 2001 Larry Doolittle + + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: escape.h,v 1.18 2002/01/31 03:12:21 jnelson Exp $ */ + +#include "config.h" + +/* Highest character number that can possibly be passed through un-escaped */ +#define NEEDS_ESCAPE_BITS 128 + +#ifndef NEEDS_ESCAPE_SHIFT +#define NEEDS_ESCAPE_SHIFT 5 /* 1 << 5 is 32 bits */ +#endif + +#define NEEDS_ESCAPE_WORD_LENGTH (1<>NEEDS_ESCAPE_SHIFT) + +/* Assume variable shift is fast, otherwise this could be a table lookup */ +#define NEEDS_ESCAPE_MASK(c) (1<<((c)&(NEEDS_ESCAPE_WORD_LENGTH - 1))) + +/* Newer compilers could use an inline function. + * This macro works great, as long as you pass unsigned int or unsigned char. + */ +#define needs_escape(c) ((c)>=NEEDS_ESCAPE_BITS || _needs_escape[NEEDS_ESCAPE_INDEX(c)]&NEEDS_ESCAPE_MASK(c)) + +extern unsigned long _needs_escape[(NEEDS_ESCAPE_BITS+NEEDS_ESCAPE_WORD_LENGTH-1)/NEEDS_ESCAPE_WORD_LENGTH]; +void build_needs_escape(void); diff --git a/3rdPartner/boa-0.94.13/src/escape.o b/3rdPartner/boa-0.94.13/src/escape.o new file mode 100644 index 0000000..f08b2a1 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/escape.o differ diff --git a/3rdPartner/boa-0.94.13/src/get.c b/3rdPartner/boa-0.94.13/src/get.c new file mode 100644 index 0000000..cdd410b --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/get.c @@ -0,0 +1,513 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,99 Larry Doolittle + * Some changes Copyright (C) 1996-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: get.c,v 1.76.2.5 2002/07/26 03:05:59 jnelson Exp $*/ + +#include "boa.h" + +/* local prototypes */ +int get_cachedir_file(request * req, struct stat *statbuf); +int index_directory(request * req, char *dest_filename); + +/* + * Name: init_get + * Description: Initializes a non-script GET or HEAD request. + * + * Return values: + * 0: finished or error, request will be freed + * 1: successfully initialized, added to ready queue + */ + +int init_get(request * req) +{ + int data_fd, saved_errno; + struct stat statbuf; + volatile int bytes; + + data_fd = open(req->pathname, O_RDONLY); + saved_errno = errno; /* might not get used */ + +#ifdef GUNZIP + if (data_fd == -1 && errno == ENOENT) { + /* cannot open */ + /* it's either a gunzipped file or a directory */ + char gzip_pathname[MAX_PATH_LENGTH]; + int len; + + len = strlen(req->pathname); + + memcpy(gzip_pathname, req->pathname, len); + memcpy(gzip_pathname + len, ".gz", 3); + gzip_pathname[len + 3] = '\0'; + data_fd = open(gzip_pathname, O_RDONLY); + if (data_fd != -1) { + close(data_fd); + + req->response_status = R_REQUEST_OK; + if (req->pathname) + free(req->pathname); + req->pathname = strdup(gzip_pathname); + if (!req->pathname) { + log_error_time(); + perror("strdup"); + send_r_error(req); + return 0; + } + if (!req->simple) { + req_write(req, "HTTP/1.0 200 OK-GUNZIP\r\n"); + print_http_headers(req); + print_content_type(req); + print_last_modified(req); + req_write(req, "\r\n"); + req_flush(req); + } + if (req->method == M_HEAD) + return 0; + + return init_cgi(req); + } + } +#endif + + if (data_fd == -1) { + log_error_doc(req); + errno = saved_errno; + perror("document open"); + + if (saved_errno == ENOENT) + send_r_not_found(req); + else if (saved_errno == EACCES) + send_r_forbidden(req); + else + send_r_bad_request(req); + return 0; + } + + fstat(data_fd, &statbuf); + + if (S_ISDIR(statbuf.st_mode)) { /* directory */ + close(data_fd); /* close dir */ + + if (req->pathname[strlen(req->pathname) - 1] != '/') { + char buffer[3 * MAX_PATH_LENGTH + 128]; + + if (server_port != 80) + sprintf(buffer, "http://%s:%d%s/", server_name, + server_port, req->request_uri); + else + sprintf(buffer, "http://%s%s/", server_name, + req->request_uri); + send_r_moved_perm(req, buffer); + return 0; + } + data_fd = get_dir(req, &statbuf); /* updates statbuf */ + + if (data_fd == -1) /* couldn't do it */ + return 0; /* errors reported by get_dir */ + else if (data_fd <= 1) + /* data_fd == 0 -> close it down, 1 -> continue */ + return data_fd; + /* else, data_fd contains the fd of the file... */ + } + if (req->if_modified_since && + !modified_since(&(statbuf.st_mtime), req->if_modified_since)) { + send_r_not_modified(req); + close(data_fd); + return 0; + } + req->filesize = statbuf.st_size; + req->last_modified = statbuf.st_mtime; + + if (req->method == M_HEAD || req->filesize == 0) { + send_r_request_ok(req); + close(data_fd); + return 0; + } + + if (req->filesize > MAX_FILE_MMAP) { + send_r_request_ok(req); /* All's well */ + req->status = PIPE_READ; + req->cgi_status = CGI_BUFFER; + req->data_fd = data_fd; + req_flush(req); /* this should *always* complete due to + the size of the I/O buffers */ + req->header_line = req->header_end = req->buffer; + return 1; + } + + if (req->filesize == 0) { /* done */ + send_r_request_ok(req); /* All's well *so far* */ + close(data_fd); + return 1; + } + + /* NOTE: I (Jon Nelson) tried performing a read(2) + * into the output buffer provided the file data would + * fit, before mmapping, and if successful, writing that + * and stopping there -- all to avoid the cost + * of a mmap. Oddly, it was *slower* in benchmarks. + */ + req->mmap_entry_var = find_mmap(data_fd, &statbuf); + if (req->mmap_entry_var == NULL) { + req->buffer_end = 0; + if (errno == ENOENT) + send_r_not_found(req); + else if (errno == EACCES) + send_r_forbidden(req); + else + send_r_bad_request(req); + close(data_fd); + return 0; + } + req->data_mem = req->mmap_entry_var->mmap; + close(data_fd); /* close data file */ + + if ((long) req->data_mem == -1) { + boa_perror(req, "mmap"); + return 0; + } + + send_r_request_ok(req); /* All's well */ + + bytes = BUFFER_SIZE - req->buffer_end; + + /* bytes is now how much the buffer can hold + * after the headers + */ + + if (bytes > 0) { + if (bytes > req->filesize) + bytes = req->filesize; + + if (sigsetjmp(env, 1) == 0) { + handle_sigbus = 1; + memcpy(req->buffer + req->buffer_end, req->data_mem, bytes); + handle_sigbus = 0; + /* OK, SIGBUS **after** this point is very bad! */ + } else { + /* sigbus! */ + log_error_doc(req); + reset_output_buffer(req); + send_r_error(req); + fprintf(stderr, "%sGot SIGBUS in memcpy!\n", get_commonlog_time()); + return 0; + } + req->buffer_end += bytes; + req->filepos += bytes; + if (req->filesize == req->filepos) { + req_flush(req); + req->status = DONE; + } + } + + /* We lose statbuf here, so make sure response has been sent */ + return 1; +} + +/* + * Name: process_get + * Description: Writes a chunk of data to the socket. + * + * Return values: + * -1: request blocked, move to blocked queue + * 0: EOF or error, close it down + * 1: successful write, recycle in ready queue + */ + +int process_get(request * req) +{ + int bytes_written; + volatile int bytes_to_write; + + bytes_to_write = req->filesize - req->filepos; + if (bytes_to_write > SOCKETBUF_SIZE) + bytes_to_write = SOCKETBUF_SIZE; + + + if (sigsetjmp(env, 1) == 0) { + handle_sigbus = 1; + bytes_written = write(req->fd, req->data_mem + req->filepos, + bytes_to_write); + handle_sigbus = 0; + /* OK, SIGBUS **after** this point is very bad! */ + } else { + /* sigbus! */ + log_error_doc(req); + /* sending an error here is inappropriate + * if we are here, the file is mmapped, and thus, + * a content-length has been sent. If we send fewer bytes + * the client knows there has been a problem. + * We run the risk of accidentally sending the right number + * of bytes (or a few too many) and the client + * won't be the wiser. + */ + req->status = DEAD; + fprintf(stderr, "%sGot SIGBUS in write(2)!\n", get_commonlog_time()); + return 0; + } + + if (bytes_written < 0) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return -1; + /* request blocked at the pipe level, but keep going */ + else { + if (errno != EPIPE) { + log_error_doc(req); + /* Can generate lots of log entries, */ + perror("write"); + /* OK to disable if your logs get too big */ + } + req->status = DEAD; + return 0; + } + } + req->filepos += bytes_written; + + if (req->filepos == req->filesize) { /* EOF */ + return 0; + } else + return 1; /* more to do */ +} + +/* + * Name: get_dir + * Description: Called from process_get if the request is a directory. + * statbuf must describe directory on input, since we may need its + * device, inode, and mtime. + * statbuf is updated, since we may need to check mtimes of a cache. + * returns: + * -1 error + * 0 cgi (either gunzip or auto-generated) + * >0 file descriptor of file + */ + +int get_dir(request * req, struct stat *statbuf) +{ + + char pathname_with_index[MAX_PATH_LENGTH]; + int data_fd; + + if (directory_index) { /* look for index.html first?? */ + strcpy(pathname_with_index, req->pathname); + strcat(pathname_with_index, directory_index); + /* + sprintf(pathname_with_index, "%s%s", req->pathname, directory_index); + */ + + data_fd = open(pathname_with_index, O_RDONLY); + + if (data_fd != -1) { /* user's index file */ + strcpy(req->request_uri, directory_index); /* for mimetype */ + fstat(data_fd, statbuf); + return data_fd; + } + if (errno == EACCES) { + send_r_forbidden(req); + return -1; + } else if (errno != ENOENT) { + /* if there is an error *other* than EACCES or ENOENT */ + send_r_not_found(req); + return -1; + } + +#ifdef GUNZIP + /* if we are here, trying index.html didn't work + * try index.html.gz + */ + strcat(pathname_with_index, ".gz"); + data_fd = open(pathname_with_index, O_RDONLY); + if (data_fd != -1) { /* user's index file */ + close(data_fd); + + req->response_status = R_REQUEST_OK; + SQUASH_KA(req); + if (req->pathname) + free(req->pathname); + req->pathname = strdup(pathname_with_index); + if (!req->pathname) { + log_error_time(); + perror("strdup"); + send_r_error(req); + return 0; + } + if (!req->simple) { + req_write(req, "HTTP/1.0 200 OK-GUNZIP\r\n"); + print_http_headers(req); + print_last_modified(req); + req_write(req, "Content-Type: "); + req_write(req, get_mime_type(directory_index)); + req_write(req, "\r\n\r\n"); + req_flush(req); + } + if (req->method == M_HEAD) + return 0; + return init_cgi(req); + } +#endif + } + + /* only here if index.html, index.html.gz don't exist */ + if (dirmaker != NULL) { /* don't look for index.html... maybe automake? */ + req->response_status = R_REQUEST_OK; + SQUASH_KA(req); + + /* the indexer should take care of all headers */ + if (!req->simple) { + req_write(req, "HTTP/1.0 200 OK\r\n"); + print_http_headers(req); + print_last_modified(req); + req_write(req, "Content-Type: text/html\r\n\r\n"); + req_flush(req); + } + if (req->method == M_HEAD) + return 0; + + return init_cgi(req); + /* in this case, 0 means success */ + } else if (cachedir) { + return get_cachedir_file(req, statbuf); + } else { /* neither index.html nor autogenerate are allowed */ + send_r_forbidden(req); + return -1; /* nothing worked */ + } +} + +int get_cachedir_file(request * req, struct stat *statbuf) +{ + + char pathname_with_index[MAX_PATH_LENGTH]; + int data_fd; + time_t real_dir_mtime; + + real_dir_mtime = statbuf->st_mtime; + sprintf(pathname_with_index, "%s/dir.%d.%ld", + cachedir, (int) statbuf->st_dev, statbuf->st_ino); + data_fd = open(pathname_with_index, O_RDONLY); + + if (data_fd != -1) { /* index cache */ + + fstat(data_fd, statbuf); + if (statbuf->st_mtime > real_dir_mtime) { + statbuf->st_mtime = real_dir_mtime; /* lie */ + strcpy(req->request_uri, directory_index); /* for mimetype */ + return data_fd; + } + close(data_fd); + unlink(pathname_with_index); /* cache is stale, delete it */ + } + if (index_directory(req, pathname_with_index) == -1) + return -1; + + data_fd = open(pathname_with_index, O_RDONLY); /* Last chance */ + if (data_fd != -1) { + strcpy(req->request_uri, directory_index); /* for mimetype */ + fstat(data_fd, statbuf); + statbuf->st_mtime = real_dir_mtime; /* lie */ + return data_fd; + } + + boa_perror(req, "re-opening dircache"); + return -1; /* Nothing worked. */ + +} + +/* + * Name: index_directory + * Description: Called from get_cachedir_file if a directory html + * has to be generated on the fly + * returns -1 for problem, else 0 + * This version is the fastest, ugliest, and most accurate yet. + * It solves the "stale size or type" problem by not ever giving + * the size or type. This also speeds it up since no per-file + * stat() is required. + */ + +int index_directory(request * req, char *dest_filename) +{ + DIR *request_dir; + FILE *fdstream; + struct dirent *dirbuf; + int bytes = 0; + char *escname = NULL; + + if (chdir(req->pathname) == -1) { + if (errno == EACCES || errno == EPERM) { + send_r_forbidden(req); + } else { + log_error_doc(req); + perror("chdir"); + send_r_bad_request(req); + } + return -1; + } + + request_dir = opendir("."); + if (request_dir == NULL) { + int errno_save = errno; + send_r_error(req); + log_error_time(); + fprintf(stderr, "directory \"%s\": ", req->pathname); + errno = errno_save; + perror("opendir"); + return -1; + } + + fdstream = fopen(dest_filename, "w"); + if (fdstream == NULL) { + boa_perror(req, "dircache fopen"); + closedir(request_dir); + return -1; + } + + bytes += fprintf(fdstream, + "\nIndex of %s\n\n\n", + req->request_uri); + bytes += fprintf(fdstream, "\n\n

Index of %s

\n\n
\n",
+                     req->request_uri);
+
+    while ((dirbuf = readdir(request_dir))) {
+        if (!strcmp(dirbuf->d_name, "."))
+            continue;
+
+        if (!strcmp(dirbuf->d_name, "..")) {
+            bytes += fprintf(fdstream,
+                             " [DIR] Parent Directory\n");
+            continue;
+        }
+
+        if ((escname = escape_string(dirbuf->d_name, NULL)) != NULL) {
+            bytes += fprintf(fdstream, " %s\n",
+                             escname, dirbuf->d_name);
+            free(escname);
+            escname = NULL;
+        }
+    }
+    closedir(request_dir);
+    bytes += fprintf(fdstream, "
\n\n\n\n"); + + fclose(fdstream); + + chdir(server_root); + + req->filesize = bytes; /* for logging transfer size */ + return 0; /* success */ +} diff --git a/3rdPartner/boa-0.94.13/src/get.o b/3rdPartner/boa-0.94.13/src/get.o new file mode 100644 index 0000000..618e797 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/get.o differ diff --git a/3rdPartner/boa-0.94.13/src/globals.h b/3rdPartner/boa-0.94.13/src/globals.h new file mode 100644 index 0000000..896fd20 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/globals.h @@ -0,0 +1,193 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,97 Larry Doolittle + * Some changes Copyright (C) 1997 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: globals.h,v 1.65.2.3 2002/07/24 03:03:59 jnelson Exp $*/ + +#ifndef _GLOBALS_H +#define _GLOBALS_H + +struct mmap_entry { + dev_t dev; + ino_t ino; + char *mmap; + int use_count; + size_t len; +}; + +struct alias { + char *fakename; /* URI path to file */ + char *realname; /* Actual path to file */ + int type; /* ALIAS, SCRIPTALIAS, REDIRECT */ + int fake_len; /* strlen of fakename */ + int real_len; /* strlen of realname */ + struct alias *next; +}; + +typedef struct alias alias; + +struct request { /* pending requests */ + int fd; /* client's socket fd */ + int status; /* see #defines.h */ + time_t time_last; /* time of last succ. op. */ + char *pathname; /* pathname of requested file */ + int simple; /* simple request? */ + int keepalive; /* keepalive status */ + int kacount; /* keepalive count */ + + int data_fd; /* fd of data */ + unsigned long filesize; /* filesize */ + unsigned long filepos; /* position in file */ + char *data_mem; /* mmapped/malloced char array */ + int method; /* M_GET, M_POST, etc. */ + + char *logline; /* line to log file */ + + char *header_line; /* beginning of un or incompletely processed header line */ + char *header_end; /* last known end of header, or end of processed data */ + int parse_pos; /* how much have we parsed */ + int client_stream_pos; /* how much have we read... */ + + int buffer_start; /* where the buffer starts */ + int buffer_end; /* where the buffer ends */ + + char *http_version; /* HTTP/?.? of req */ + int response_status; /* R_NOT_FOUND etc. */ + + char *if_modified_since; /* If-Modified-Since */ + time_t last_modified; /* Last-modified: */ + + char local_ip_addr[NI_MAXHOST]; /* for virtualhost */ + + /* CGI vars */ + + int remote_port; /* could be used for ident */ + + char remote_ip_addr[NI_MAXHOST]; /* after inet_ntoa */ + + int is_cgi; /* true if CGI/NPH */ + int cgi_status; + int cgi_env_index; /* index into array */ + + /* Agent and referer for logfiles */ + char *header_user_agent; + char *header_referer; + + int post_data_fd; /* fd for post data tmpfile */ + + char *path_info; /* env variable */ + char *path_translated; /* env variable */ + char *script_name; /* env variable */ + char *query_string; /* env variable */ + char *content_type; /* env variable */ + char *content_length; /* env variable */ + + struct mmap_entry *mmap_entry_var; + + struct request *next; /* next */ + struct request *prev; /* previous */ + + /* everything below this line is kept regardless */ + char buffer[BUFFER_SIZE + 1]; /* generic I/O buffer */ + char request_uri[MAX_HEADER_LENGTH + 1]; /* uri */ + char client_stream[CLIENT_STREAM_SIZE]; /* data from client - fit or be hosed */ + char *cgi_env[CGI_ENV_MAX + 4]; /* CGI environment */ + +#ifdef ACCEPT_ON + char accept[MAX_ACCEPT_LENGTH]; /* Accept: fields */ +#endif +}; + +typedef struct request request; + +struct status { + long requests; + long errors; +}; + +extern struct status status; + +extern char *optarg; /* For getopt */ +extern FILE *yyin; /* yacc input */ + +extern request *request_ready; /* first in ready list */ +extern request *request_block; /* first in blocked list */ +extern request *request_free; /* first in free list */ + +extern fd_set block_read_fdset; /* fds blocked on read */ +extern fd_set block_write_fdset; /* fds blocked on write */ + +/* global server variables */ + +extern char *access_log_name; +extern char *error_log_name; +extern char *cgi_log_name; +extern int cgi_log_fd; +extern int use_localtime; + +extern int server_port; +extern uid_t server_uid; +extern gid_t server_gid; +extern char *server_admin; +extern char *server_root; +extern char *server_name; +extern char *server_ip; +extern int max_fd; +extern int devnullfd; + +extern char *document_root; +extern char *user_dir; +extern char *directory_index; +extern char *default_type; +extern char *dirmaker; +extern char *mime_types; +extern char *cachedir; + +extern char *tempdir; + +extern char *cgi_path; +extern int single_post_limit; + +extern int ka_timeout; +extern int ka_max; + +extern int sighup_flag; +extern int sigchld_flag; +extern int sigalrm_flag; +extern int sigterm_flag; +extern time_t start_time; + +extern int pending_requests; +extern long int max_connections; + +extern int verbose_cgi_logs; + +extern int backlog; +extern time_t current_time; + +extern int virtualhost; + +extern int total_connections; + +extern sigjmp_buf env; +extern int handle_sigbus; + +#endif diff --git a/3rdPartner/boa-0.94.13/src/hash.c b/3rdPartner/boa-0.94.13/src/hash.c new file mode 100644 index 0000000..833e308 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/hash.c @@ -0,0 +1,411 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1997 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: hash.c,v 1.14.4.4 2002/07/30 03:59:26 jnelson Exp $*/ + +#include "boa.h" +#include "parse.h" + +/* + * There are two hash tables used, each with a key/value pair + * stored in a hash_struct. They are: + * + * mime_hashtable: + * key = file extension + * value = mime type + * + * passwd_hashtable: + * key = username + * value = home directory + * + */ + +struct _hash_struct_ { + char *key; + char *value; + struct _hash_struct_ *next; +}; + +typedef struct _hash_struct_ hash_struct; + +static hash_struct *mime_hashtable[MIME_HASHTABLE_SIZE]; +static hash_struct *passwd_hashtable[PASSWD_HASHTABLE_SIZE]; + +#ifdef WANT_ICKY_HASH +static unsigned four_char_hash(char *buf); +#define boa_hash four_char_hash +#else +#ifdef WANT_SDBM_HASH +static unsigned sdbm_hash(char *str); +#define boa_hash sdbm_hash +#else +static unsigned djb2_hash(char *str); +#define boa_hash djb2_hash +#endif +#endif + +#ifdef WANT_ICKY_HASH +static unsigned four_char_hash(char *buf) +{ + unsigned int hash = (buf[0] + + (buf[1] ? buf[1] : 241 + + (buf[2] ? buf[2] : 251 + + (buf[3] ? buf[3] : 257)))); +#ifdef DEBUG_HASH + log_error_time(); + fprintf(stderr, "four_char_hash(%s) = %u\n", buf, hash); +#endif + return hash; +} + +/* The next two hashes taken from + * http://www.cs.yorku.ca/~oz/hash.html + * + * In my (admittedly) very brief testing, djb2_hash performed + * very slightly better than sdbm_hash. + */ + +#else +#define MAX_HASH_LENGTH 4 +#ifdef WANT_SDBM_HASH +static unsigned sdbm_hash(char *str) +{ + unsigned hash = 0; + int c; + short count = MAX_HASH_LENGTH; + +#ifdef DEBUG_HASH + log_error_time(); + fprintf(stderr, "sdbm_hash(%s) = ", str); +#endif + + while ((c = *str++) && count--) + hash = c + (hash << 6) + (hash << 16) - hash; + +#ifdef DEBUG_HASH + fprintf(stderr, "%u\n", hash); +#endif + return hash; +} +#else + +static unsigned djb2_hash(char *str) +{ + unsigned hash = 5381; + int c; + short count = MAX_HASH_LENGTH; + +#ifdef DEBUG_HASH + log_error_time(); + fprintf(stderr, "djb2_hash(%s) = ", str); +#endif + + while ((c = *(str++)) && count--) + hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ + +#ifdef DEBUG_HASH + fprintf(stderr, "%u\n", hash); +#endif + return hash; +} +#endif +#endif + +/* + * Name: add_mime_type + * Description: Adds a key/value pair to the mime_hashtable + */ + +void add_mime_type(char *extension, char *type) +{ + unsigned int hash; + hash_struct *current, *next; + + if (!extension) + return; + + hash = get_mime_hash_value(extension); + + current = mime_hashtable[hash]; + + while (current) { + if (!strcmp(current->key, extension)) + return; /* don't add extension twice */ + if (current->next) + current = current->next; + else + break; + } + + /* if here, we need to add a new one */ + next = (hash_struct *) malloc(sizeof (hash_struct)); + if (!next) { + DIE("malloc of hash_struct failed!"); + } + next->key = strdup(extension); + if (!next->key) + DIE("malloc of hash_struct->key failed!"); + next->value = strdup(type); + if (!next->value) + DIE("malloc of hash_struct->value failed!"); + next->next = NULL; + + if (!current) { + mime_hashtable[hash] = next; + } else { + current->next = next; + } +} + +/* + * Name: get_mime_hash_value + * + * Description: adds the ASCII values of the file extension letters + * and mods by the hashtable size to get the hash value + */ + +unsigned get_mime_hash_value(char *extension) +{ + unsigned int hash = 0; + + if (extension == NULL || extension[0] == '\0') { + /* FIXME */ + log_error_time(); + fprintf(stderr, "Attempt to hash NULL or empty string!\n"); + return 0; + } + + hash = boa_hash(extension); + hash %= MIME_HASHTABLE_SIZE; + + return hash; +} + +/* + * Name: get_mime_type + * + * Description: Returns the mime type for a supplied filename. + * Returns default type if not found. + */ + +char *get_mime_type(char *filename) +{ + char *extension; + hash_struct *current; + + unsigned int hash; + + extension = strrchr(filename, '.'); + + if (!extension || *extension++ == '\0') + return default_type; + + hash = get_mime_hash_value(extension); + current = mime_hashtable[hash]; + + while (current) { + if (!strcmp(current->key, extension)) /* hit */ + return current->value; + current = current->next; + } + + return default_type; +} + +/* + * Name: get_homedir_hash_value + * + * Description: adds the ASCII values of the username letters + * and mods by the hashtable size to get the hash value + */ + +unsigned get_homedir_hash_value(char *name) +{ + unsigned int hash = 0; + + if (name == NULL || name[0] == '\0') { + /* FIXME */ + log_error_time(); + fprintf(stderr, "Attempt to hash NULL or empty string!\n"); + return 0; + } + + hash = boa_hash(name); + hash %= PASSWD_HASHTABLE_SIZE; + + return hash; +} + + +/* + * Name: get_home_dir + * + * Description: Returns a point to the supplied user's home directory. + * Adds to the hashtable if it's not already present. + * + */ + +char *get_home_dir(char *name) +{ + struct passwd *passwdbuf; + + hash_struct *current, *next; + unsigned int hash; + + /* first check hash table -- if username is less than four characters, + just hash to zero (this should be very rare) */ + + hash = get_homedir_hash_value(name); + + for(current = passwd_hashtable[hash];current;current = current->next) { + if (!strcmp(current->key, name)) /* hit */ + return current->value; + if (!current->next) + break; + } + + /* if here, we have to add a new one */ + + passwdbuf = getpwnam(name); + + if (!passwdbuf) /* does not exist */ + return NULL; + + next = (hash_struct *) malloc(sizeof (hash_struct)); + if (!next) { + WARN("malloc of hash_struct for passwd_hashtable failed!"); + return NULL; + } + + next->key = strdup(name); + if (!next->key) { + WARN("malloc of passwd_hashtable[hash]->key failed!"); + free(next); + return NULL; + } + next->value = strdup(passwdbuf->pw_dir); + if (!next->value) { + WARN("malloc of passwd_hashtable[hash]->value failed!"); + free(next->key); + free(next); + return NULL; + } + next->next = NULL; + + if (!current) { + passwd_hashtable[hash] = next; + } else { + current->next = next; + } + return next->value; +} + +void dump_mime(void) +{ + int i; + hash_struct *temp; + for (i = 0; i < MIME_HASHTABLE_SIZE; ++i) { /* these limits OK? */ + temp = mime_hashtable[i]; + while (temp) { + hash_struct *temp_next; + + temp_next = temp->next; + free(temp->key); + free(temp->value); + free(temp); + + temp = temp_next; + } + mime_hashtable[i] = NULL; + } +} + +void dump_passwd(void) +{ + int i; + hash_struct *temp; + for (i = 0; i < PASSWD_HASHTABLE_SIZE; ++i) { /* these limits OK? */ + temp = passwd_hashtable[i]; + while (temp) { + hash_struct *temp_next; + + temp_next = temp->next; + free(temp->key); + free(temp->value); + free(temp); + + temp = temp_next; + } + passwd_hashtable[i] = NULL; + } +} + +void show_hash_stats(void) +{ + int i; + hash_struct *temp; + int total = 0; + int count; + + for (i = 0; i < MIME_HASHTABLE_SIZE; ++i) { /* these limits OK? */ + if (mime_hashtable[i]) { + count = 0; + temp = mime_hashtable[i]; + while (temp) { + temp = temp->next; + ++count; + } +#ifdef NOISY_SIGALRM + log_error_time(); + fprintf(stderr, "mime_hashtable[%d] has %d entries\n", + i, count); +#endif + total += count; + } + } + log_error_time(); + fprintf(stderr, "mime_hashtable has %d total entries\n", + total); + + total = 0; + for (i = 0; i < PASSWD_HASHTABLE_SIZE; ++i) { /* these limits OK? */ + if (passwd_hashtable[i]) { + temp = passwd_hashtable[i]; + count = 0; + while (temp) { + temp = temp->next; + ++count; + } +#ifdef NOISY_SIGALRM + log_error_time(); + fprintf(stderr, "passwd_hashtable[%d] has %d entries\n", + i, count); +#endif + total += count; + } + } + + log_error_time(); + fprintf(stderr, "passwd_hashtable has %d total entries\n", + total); + +} diff --git a/3rdPartner/boa-0.94.13/src/hash.o b/3rdPartner/boa-0.94.13/src/hash.o new file mode 100644 index 0000000..f320eb8 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/hash.o differ diff --git a/3rdPartner/boa-0.94.13/src/index_dir.c b/3rdPartner/boa-0.94.13/src/index_dir.c new file mode 100644 index 0000000..43f15e5 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/index_dir.c @@ -0,0 +1,355 @@ +/* + * Copyright (C) 1997-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: index_dir.c,v 1.32 2002/01/30 03:41:45 jnelson Exp $*/ + +#include +#include +#include /* for PATH_MAX */ +#include +#include +#include +#include +#include +#include "compat.h" + +#define MAX_FILE_LENGTH MAXNAMLEN +#define MAX_PATH_LENGTH PATH_MAX + +#define INT_TO_HEX(x) \ + ((((x)-10)>=0)?('A'+((x)-10)):('0'+(x))) + +#include "escape.h" + +char *html_escape_string(char *inp, char *buf, const int len); +char *http_escape_string(char *inp, char *buf, const int len); + +#if defined __GNUC__ && \ + (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 0)) +#define CONST const +#else +#define CONST +#endif + +int select_files(CONST struct dirent *d); +int index_directory(char *dir, char *title); + +/* + * Name: html_escape_string + */ +char *html_escape_string(char *inp, char *dest, const int len) +{ + int max; + char *buf; + unsigned char c; + + max = len * 5; + + if (dest == NULL && max) + dest = malloc(sizeof (unsigned char) * (max + 1)); + + if (dest == NULL) + return NULL; + + buf = dest; + while ((c = *inp++)) { + switch (c) { + case '>': + *dest++ = '&'; + *dest++ = 'g'; + *dest++ = 't'; + *dest++ = ';'; + break; + case '<': + *dest++ = '&'; + *dest++ = 'l'; + *dest++ = 't'; + *dest++ = ';'; + break; + case '&': + *dest++ = '&'; + *dest++ = 'a'; + *dest++ = 'm'; + *dest++ = 'p'; + *dest++ = ';'; + break; + default: + *dest++ = c; + } + } + *dest = '\0'; + return buf; +} + + +/* + * Name: escape_string + * + * Description: escapes the string inp. Uses variable buf. If buf is + * NULL when the program starts, it will attempt to dynamically allocate + * the space that it needs, otherwise it will assume that the user + * has already allocated enough space for the variable buf, which + * could be up to 3 times the size of inp. If the routine dynamically + * allocates the space, the user is responsible for freeing it afterwords + * Returns: NULL on error, pointer to string otherwise. + */ + +char *http_escape_string(char *inp, char *buf, const int len) +{ + int max; + char *index; + unsigned char c; + + max = len * 3; + + if (buf == NULL && max) + buf = malloc(sizeof (unsigned char) * (max + 1)); + + if (buf == NULL) + return NULL; + + index = buf; + while ((c = *inp++)) { + if (needs_escape((unsigned int) c)) { + *index++ = '%'; + *index++ = INT_TO_HEX(c >> 4); + *index++ = INT_TO_HEX(c & 15); + } else + *index++ = c; + } + *index = '\0'; + + return buf; +} + +void send_error(int error) +{ + char *the_error; + + switch (error) { + + case 1: + the_error = "Not enough arguments were passed to the indexer."; + break; + case 2: + the_error = "The Directory Sorter ran out of Memory"; + break; + case 3: + the_error = + "The was a problem changing to the appropriate directory."; + break; + case 4: + the_error = "There was an error escaping a string."; + case 5: + the_error = "Too many arguments were passed to the indexer."; + break; + case 6: + the_error = "No files in this directory."; + break; + default: + the_error = "An unknown error occurred producing the directory."; + break; + } + printf("\n\n\n%s\n\n" + "\n%s\n\n\n", the_error, the_error); +} + +int select_files(CONST struct dirent *dirbuf) +{ + if (dirbuf->d_name[0] == '.') + return 0; + else + return 1; +} + +/* + * Name: index_directory + * Description: Called from get_dir_mapping if a directory html + * has to be generated on the fly + * If no_slash is true, prepend slashes to hrefs + * returns -1 for problem, else 0 + */ + +int index_directory(char *dir, char *title) +{ + struct dirent *dirbuf; + int numdir; + struct dirent **array; + struct stat statbuf; + char http_filename[MAX_FILE_LENGTH * 3]; + char html_filename[MAX_FILE_LENGTH * 4]; + int i; + + if (chdir(dir) == -1) { + send_error(3); + return -1; + } + numdir = scandir(".", &array, select_files, alphasort); + if (numdir == -1) { + send_error(2); + return -1; + } else if (numdir == -2) { + send_error(6); + return -1; + } + printf("\n" + "\nIndex of %s\n\n\n" + "\n" + "

Index of %s

\n" + "\n%s", + title, title, + (strcmp(title, "/") == 0 ? "" : + "" + "\n")); + + for (i = 0; i < numdir; ++i) { + dirbuf = array[i]; + + if (stat(dirbuf->d_name, &statbuf) == -1) + continue; + + if (!S_ISDIR(statbuf.st_mode)) + continue; + + if (html_escape_string(dirbuf->d_name, html_filename, + NAMLEN(dirbuf)) == NULL) { + send_error(4); + return -1; + } + if (http_escape_string(dirbuf->d_name, http_filename, + NAMLEN(dirbuf)) == NULL) { + send_error(4); + return -1; + } + printf("" + "" + "" + "" + "\n", + http_filename, html_filename, + ctime(&statbuf.st_mtime), (long) statbuf.st_size); + } + + printf + ("\n\n"); + + for (i = 0; i < numdir; ++i) { + int len; + dirbuf = array[i]; + + if (stat(dirbuf->d_name, &statbuf) == -1) + continue; + + + if (S_ISDIR(statbuf.st_mode)) + continue; + + if (html_escape_string(dirbuf->d_name, html_filename, + NAMLEN(dirbuf)) == NULL) { + send_error(4); + return -1; + } + if (http_escape_string(dirbuf->d_name, http_filename, + NAMLEN(dirbuf)) == NULL) { + send_error(4); + return -1; + } + + len = strlen(http_filename); +#ifdef GUNZIP + if (len > 3 && !memcmp(http_filename + len - 3, ".gz", 3)) { + http_filename[len - 3] = '\0'; + html_filename[strlen(html_filename) - 3] = '\0'; + + printf("" + "" + "" + "" + "\n", + http_filename, html_filename, http_filename, + ctime(&statbuf.st_mtime), (long) statbuf.st_size); + } else { +#endif + printf("" + "" + "" + "" + "\n", + http_filename, html_filename, + ctime(&statbuf.st_mtime), (long) statbuf.st_size); +#ifdef GUNZIP + } +#endif + } + /* hey -- even though this is a one-shot deal, we should + * still free memory we ought to free + * You never know -- this code might get used elsewhere! + */ + for (i = 0; i < numdir; ++i) { + free(array[i]); + array[i] = NULL; + } + free(array); + array = NULL; + + return 0; /* success */ +} + +int main(int argc, char *argv[]) +{ + time_t timep; + struct tm *timeptr; + char *now; + + if (argc < 3) { + send_error(1); + return -1; + } else if (argc > 3) { + send_error(5); + return -1; + } + + build_needs_escape(); + + if (argv[2] == NULL) + index_directory(argv[1], argv[1]); + else + index_directory(argv[1], argv[2]); + + time(&timep); +#ifdef USE_LOCALTIME + timeptr = localtime(&timep); +#else + timeptr = gmtime(&timep); +#endif + now = strdup(asctime(timeptr)); + now[strlen(now) - 1] = '\0'; +#ifdef USE_LOCALTIME + printf("

Directories

Parent Directory
%s/%s%ld bytes
 

Files

%s " + "(.gz)%s%ld bytes
%s%s%ld bytes
\n
\nIndex generated %s %s\n" + "\n" + "\n\n", now, TIMEZONE(timeptr)); +#else + printf("\n
\nIndex generated %s UTC\n" + "\n" + "\n\n", now); +#endif + + return 0; +} diff --git a/3rdPartner/boa-0.94.13/src/index_dir.o b/3rdPartner/boa-0.94.13/src/index_dir.o new file mode 100644 index 0000000..89a1b9f Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/index_dir.o differ diff --git a/3rdPartner/boa-0.94.13/src/ip.c b/3rdPartner/boa-0.94.13/src/ip.c new file mode 100644 index 0000000..eaf467c --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/ip.c @@ -0,0 +1,114 @@ +/* + * Boa, an http server + * Copyright (C) 1999 Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + + Encapsulation of ipv4 and ipv6 stuff, try to get rid of the ifdef's + elsewhere in the code. + + The IPv6 code here is bsed on contributions from Martin Hinner + and Arkadiusz Miskiewicz . This incarnation of that + code is untested. The original IPv4 code is based on original Boa code + from Paul Phillips . + + A goal is to compile in as many families as are supported, and + make the final choice at runtime. + +globals.h: +#ifdef INET6 + char remote_ip_addr[NI_MAXHOST]; +#else + char remote_ip_addr[20]; after inet_ntoa +#endif + + None of this code interacts with the rest of Boa except through + the parameter lists and return values. + + Consider making these functions __inline__ and using this as a .h file + */ + +#include "boa.h" +#include /* inet_ntoa */ + +/* Binds to the existing server_s, based on the configuration string + in server_ip. IPv6 version doesn't pay attention to server_ip yet. */ +int bind_server(int server_s, char *server_ip) +{ +#ifdef INET6 + struct sockaddr_in6 server_sockaddr; + server_sockaddr.sin6_family = AF_INET6; + memcpy(&server_sockaddr.sin6_addr, &in6addr_any, sizeof (in6addr_any)); + server_sockaddr.sin6_port = htons(server_port); +#else + struct sockaddr_in server_sockaddr; + memset(&server_sockaddr, 0, sizeof server_sockaddr); +#ifdef HAVE_SIN_LEN /* uncomment for BSDs */ + server_sockaddr.sin_len = sizeof server_sockaddr; +#endif + server_sockaddr.sin_family = AF_INET; + if (server_ip != NULL) { + inet_aton(server_ip, &server_sockaddr.sin_addr); + } else { + server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY); + } + server_sockaddr.sin_port = htons(server_port); +#endif + + return bind(server_s, (struct sockaddr *) &server_sockaddr, + sizeof (server_sockaddr)); +} + +char *ascii_sockaddr(struct SOCKADDR *s, char *dest, int len) +{ +#ifdef INET6 + if (getnameinfo((struct sockaddr *) s, + sizeof(struct SOCKADDR), + dest, len, NULL, 0, NI_NUMERICHOST)) { + fprintf(stderr, "[IPv6] getnameinfo failed\n"); + *dest = '\0'; + } +#ifdef WHEN_DOES_THIS_APPLY + if ((s->__ss_family == AF_INET6) && + IN6_IS_ADDR_V4MAPPED(&(((struct sockaddr_in6 *) s)->sin6_addr))) { + memmove(dest, dest+7, NI_MAXHOST); + } +#endif +#else + memmove(dest, inet_ntoa(s->sin_addr), len); +#endif + return dest; +} + +int net_port(struct SOCKADDR *s) +{ + int p = -1; +#ifdef INET6 + char serv[NI_MAXSERV]; + + if (getnameinfo((struct sockaddr *) s, + sizeof(struct SOCKADDR), + NULL, 0, serv, sizeof(serv), NI_NUMERICSERV)) { + fprintf(stderr, "[IPv6] getnameinfo failed\n"); + } else { + p = atoi(serv); + } +#else + p = ntohs(s->sin_port); +#endif + return p; +} diff --git a/3rdPartner/boa-0.94.13/src/ip.o b/3rdPartner/boa-0.94.13/src/ip.o new file mode 100644 index 0000000..601031a Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/ip.o differ diff --git a/3rdPartner/boa-0.94.13/src/lex.yy.c b/3rdPartner/boa-0.94.13/src/lex.yy.c new file mode 100644 index 0000000..96a0e7e --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/lex.yy.c @@ -0,0 +1,2014 @@ + +#line 3 "lex.yy.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 0 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +#if defined(__GNUC__) && __GNUC__ >= 3 +__attribute__((__noreturn__)) +#endif +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + yyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 18 +#define YY_END_OF_BUFFER 19 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[49] = + { 0, + 0, 0, 0, 0, 0, 0, 19, 4, 1, 17, + 5, 2, 4, 5, 2, 16, 7, 6, 18, 4, + 1, 2, 2, 4, 0, 4, 0, 2, 2, 2, + 16, 15, 8, 9, 13, 14, 10, 12, 11, 3, + 3, 2, 2, 2, 8, 9, 8, 0 + } ; + +static yyconst YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 8, 8, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 9, 1, 1, 1, 1, 1, 10, 1, 1, + + 1, 11, 1, 1, 1, 1, 1, 1, 1, 12, + 1, 1, 1, 13, 1, 14, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst YY_CHAR yy_meta[15] = + { 0, + 1, 2, 3, 4, 1, 1, 1, 1, 5, 1, + 1, 1, 1, 1 + } ; + +static yyconst flex_uint16_t yy_base[64] = + { 0, + 0, 4, 8, 12, 15, 22, 101, 0, 95, 142, + 142, 18, 17, 90, 30, 0, 142, 142, 36, 0, + 90, 25, 0, 24, 82, 83, 0, 49, 50, 31, + 0, 142, 50, 52, 142, 142, 142, 142, 142, 82, + 0, 60, 59, 52, 57, 59, 61, 142, 69, 74, + 79, 84, 89, 94, 99, 104, 109, 111, 116, 121, + 126, 131, 136 + } ; + +static yyconst flex_int16_t yy_def[64] = + { 0, + 49, 49, 50, 50, 51, 51, 48, 52, 48, 48, + 48, 53, 54, 55, 56, 57, 48, 48, 48, 52, + 48, 53, 58, 54, 55, 59, 60, 56, 61, 62, + 57, 48, 48, 48, 48, 48, 48, 48, 48, 59, + 60, 63, 62, 63, 48, 48, 48, 0, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48 + } ; + +static yyconst flex_uint16_t yy_nxt[157] = + { 0, + 48, 9, 10, 11, 12, 9, 10, 11, 12, 9, + 10, 14, 15, 9, 10, 14, 15, 17, 18, 23, + 25, 23, 26, 19, 17, 18, 23, 25, 23, 26, + 19, 23, 23, 29, 44, 30, 32, 32, 32, 32, + 32, 32, 33, 34, 32, 35, 36, 37, 38, 39, + 23, 23, 29, 23, 30, 42, 45, 46, 46, 46, + 23, 23, 44, 47, 46, 46, 46, 46, 46, 8, + 8, 8, 8, 8, 13, 13, 13, 13, 13, 16, + 16, 16, 16, 16, 20, 41, 41, 27, 20, 22, + 22, 21, 22, 22, 24, 27, 21, 24, 24, 25, + + 48, 48, 25, 25, 28, 28, 48, 28, 28, 31, + 31, 23, 23, 48, 23, 23, 40, 48, 48, 40, + 40, 41, 48, 48, 41, 41, 29, 29, 48, 29, + 29, 43, 43, 48, 43, 43, 44, 44, 48, 44, + 44, 7, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48 + } ; + +static yyconst flex_int16_t yy_chk[157] = + { 0, + 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, + 3, 3, 3, 4, 4, 4, 4, 5, 5, 12, + 13, 12, 13, 5, 6, 6, 22, 24, 22, 24, + 6, 15, 30, 15, 30, 15, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 28, 29, 28, 44, 28, 29, 33, 33, 34, 34, + 43, 42, 43, 45, 45, 46, 46, 47, 47, 49, + 49, 49, 49, 49, 50, 50, 50, 50, 50, 51, + 51, 51, 51, 51, 52, 40, 26, 25, 52, 53, + 53, 21, 53, 53, 54, 14, 9, 54, 54, 55, + + 7, 0, 55, 55, 56, 56, 0, 56, 56, 57, + 57, 58, 58, 0, 58, 58, 59, 0, 0, 59, + 59, 60, 0, 0, 60, 60, 61, 61, 0, 61, + 61, 62, 62, 0, 62, 62, 63, 63, 0, 63, + 63, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "boa_lexer.l" +#line 2 "boa_lexer.l" + +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa_lexer.l,v 1.13.2.1 2002/07/07 23:19:55 jnelson Exp $*/ + +#include "y.tab.h" +#include +#include +#include "parse.h" + +#define MAX_STR_CONST 1024 +#define qspush(c) \ + if (string_buf_ptr < string_buf+MAX_STR_CONST) \ + *string_buf_ptr++ = c; \ + else \ + yyerror("quoted string overflow"); + +char *mime_types = NULL; + +static int file = 0; +int lineno = 1; +struct ccommand *k; +char string_buf[MAX_STR_CONST]; +char *string_buf_ptr; + +/* Quoted string handling (almost) straight out of + the flex 2.5 man page, April 1995 */ + +#line 561 "lex.yy.c" + +#define INITIAL 0 +#define MIME 1 +#define STR 2 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * _in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * _out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int _line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef YY_NO_UNPUT + + static void yyunput (int c,char *buf_ptr ); + +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { +#line 51 "boa_lexer.l" + + +#line 784 "lex.yy.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 49 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 142 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 53 "boa_lexer.l" +; + YY_BREAK +case 2: +YY_RULE_SETUP +#line 54 "boa_lexer.l" +; + YY_BREAK +case 3: +YY_RULE_SETUP +#line 56 "boa_lexer.l" +{ yylval.sval = yytext; return MIMETYPE; } + YY_BREAK +case 4: +YY_RULE_SETUP +#line 58 "boa_lexer.l" +{ /* XXX could use better checks that we are in a state to + * accept keywords; this version matches original behavior */ + if ((YYSTATE==INITIAL) && (k=lookup_keyword(yytext))) { + yylval.cval=k; + return (k->type); + } else { yylval.sval = yytext; return STRING; } + } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 66 "boa_lexer.l" +{ + string_buf_ptr = string_buf; + BEGIN(STR); + } + YY_BREAK + +case 6: +YY_RULE_SETUP +#line 72 "boa_lexer.l" +{ /* saw closing quote - all done */ + BEGIN(INITIAL); + *string_buf_ptr = '\0'; + /* return string constant token type and value to parser */ + yylval.sval = string_buf; return STRING; + } + YY_BREAK +case 7: +/* rule 7 can match eol */ +YY_RULE_SETUP +#line 79 "boa_lexer.l" +{ + /* error - unterminated string constant */ + /* generate error message */ + yyerror("unterminated string constant"); + } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 85 "boa_lexer.l" +{ + /* octal escape sequence */ + int result; + + (void) sscanf( yytext + 1, "%o", &result ); + + if ( result > 0xff ) + { /* error, constant is out-of-bounds */ } + + qspush(result); + } + YY_BREAK +case 9: +YY_RULE_SETUP +#line 97 "boa_lexer.l" +{ + /* generate error - bad escape sequence; something + * like '\48' or '\0777777' + */ + yyerror("bad escape sequence"); + } + YY_BREAK +case 10: +YY_RULE_SETUP +#line 104 "boa_lexer.l" +qspush('\n'); + YY_BREAK +case 11: +YY_RULE_SETUP +#line 105 "boa_lexer.l" +qspush('\t'); + YY_BREAK +case 12: +YY_RULE_SETUP +#line 106 "boa_lexer.l" +qspush('\r'); + YY_BREAK +case 13: +YY_RULE_SETUP +#line 107 "boa_lexer.l" +qspush('\b'); + YY_BREAK +case 14: +YY_RULE_SETUP +#line 108 "boa_lexer.l" +qspush('\f'); + YY_BREAK +case 15: +/* rule 15 can match eol */ +YY_RULE_SETUP +#line 110 "boa_lexer.l" +*string_buf_ptr++ = yytext[1]; + YY_BREAK +case 16: +YY_RULE_SETUP +#line 112 "boa_lexer.l" +{ + char *yptr = yytext; + while ( *yptr ) + qspush(*yptr++); + } + YY_BREAK + +/* End of dependence */ +case 17: +/* rule 17 can match eol */ +YY_RULE_SETUP +#line 119 "boa_lexer.l" +{ lineno++; } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 120 "boa_lexer.l" +ECHO; + YY_BREAK +#line 974 "lex.yy.c" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(MIME): +case YY_STATE_EOF(STR): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + yy_size_t number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + yy_state_type yy_current_state; + char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 49 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 49 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 48); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp ) +{ + char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + yy_size_t number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return EOF; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = (yy_size_t)size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + yy_size_t i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param _line_number line number + * + */ +void yyset_lineno (int _line_number ) +{ + + yylineno = _line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param _in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * _in_str ) +{ + yyin = _in_str ; +} + +void yyset_out (FILE * _out_str ) +{ + yyout = _out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int _bdebug ) +{ + yy_flex_debug = _bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 120 "boa_lexer.l" + + + +/* In yywrap we track which file we are on. + * 1: close boa.conf, open mime.types + * 2: return 1; + */ + +int yywrap() +{ + fclose(yyin); + file++; + + switch(file) { + case 1: + yyin = fopen(mime_types, "r"); + if(!yyin) { + fprintf(stderr, "Could not open mime.types file, \"%s\", " + "for reading\n", mime_types); + exit(1); + } + BEGIN MIME; + return 0; + default: + BEGIN INITIAL; + file = 0; /* in case we reread config files */ + return 1; + } +} + +int yyerror(char * msg) +{ + fprintf(stderr, "Error on line %d of %s: %s\n", lineno, + (file == 0 ? "boa.conf" : "mime.types"), msg); + return 1; +} + + diff --git a/3rdPartner/boa-0.94.13/src/lex.yy.o b/3rdPartner/boa-0.94.13/src/lex.yy.o new file mode 100644 index 0000000..68f6562 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/lex.yy.o differ diff --git a/3rdPartner/boa-0.94.13/src/log.c b/3rdPartner/boa-0.94.13/src/log.c new file mode 100644 index 0000000..d61ab9f --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/log.c @@ -0,0 +1,229 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1999 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: log.c,v 1.36.2.3 2002/07/26 03:04:48 jnelson Exp $*/ + +#include "boa.h" + +FILE *access_log; + +char *error_log_name; +char *access_log_name; +char *cgi_log_name; +int cgi_log_fd; + +FILE *fopen_gen_fd(char *spec, const char *mode); + +FILE *fopen_gen_fd(char *spec, const char *mode) +{ + int fd; + if (!spec || *spec == '\0') + return NULL; + fd = open_gen_fd(spec); + if (fd == -1) + return NULL; + return fdopen(fd, mode); +} + +/* + * Name: open_logs + * + * Description: Opens access log, error log, and if specified, cgi log + * Ties stderr to error log, except during cgi execution, at which + * time cgi log is the stderr for cgis. + * + * Access log is line buffered, error log is not buffered. + * + */ + +void open_logs(void) +{ + int error_log; + + /* if error_log_name is set, dup2 stderr to it */ + /* otherwise, leave stderr alone */ + /* we don't want to tie stderr to /dev/null */ + if (error_log_name) { + /* open the log file */ + if (!(error_log = open_gen_fd(error_log_name))) { + DIE("unable to open error log"); + } + + /* redirect stderr to error_log */ + /*if (dup2(error_log, STDERR_FILENO) == -1) { + DIE("unable to dup2 the error log"); + }*/ + close(error_log); + } + + /* set the close-on-exec to true */ + if (fcntl(STDERR_FILENO, F_SETFD, 1) == -1) { + DIE("unable to fcntl the error log"); + } + + if (access_log_name) { + /* Used the "a" flag with fopen, but fopen_gen_fd builds that in + * implicitly when used as a file, and "a" is incompatible with + * pipes and network sockets. */ + if (!(access_log = fopen_gen_fd(access_log_name, "w"))) { + int errno_save = errno; + fprintf(stderr, "Cannot open %s for logging: ", + access_log_name); + errno = errno_save; + perror("logfile open"); + exit(errno); + } + /* line buffer the access log */ +#ifdef SETVBUF_REVERSED + setvbuf(access_log, _IOLBF, (char *) NULL, 0); +#else + setvbuf(access_log, (char *) NULL, _IOLBF, 0); +#endif + } else + access_log = NULL; + + if (cgi_log_name) { + cgi_log_fd = open_gen_fd(cgi_log_name); + if (cgi_log_fd == -1) { + WARN("open cgi_log"); + free(cgi_log_name); + cgi_log_name = NULL; + cgi_log_fd = 0; + } else { + if (fcntl(cgi_log_fd, F_SETFD, 1) == -1) { + WARN("unable to set close-on-exec flag for cgi_log"); + close(cgi_log_fd); + cgi_log_fd = 0; + free(cgi_log_name); + cgi_log_name = NULL; + } + } + } +} + +/* + * Name: close_access_log + * + * Description: closes access_log file + */ +void close_access_log(void) +{ + if (access_log) + fclose(access_log); +} + +/* + * Name: log_access + * + * Description: Writes log data to access_log. + */ + +void log_access(request * req) +{ + if (access_log) { + if (virtualhost) + fprintf(access_log, "%s ", req->local_ip_addr); + fprintf(access_log, "%s - - %s\"%s\" %d %ld \"%s\" \"%s\"\n", + req->remote_ip_addr, + get_commonlog_time(), + req->logline, + req->response_status, + req->filepos, + (req->header_referer ? req->header_referer : "-"), + (req->header_user_agent ? req->header_user_agent : "-")); + + } +} + +/* + * Name: log_error_doc + * + * Description: Logs the current time and transaction identification + * to the stderr (the error log): + * should always be followed by an fprintf to stderr + * + * This function used to be implemented with a big fprintf, but not + * all fprintf's are reliable in the face of null string pointers + * (SunOS, in particular). As long as I had to add the checks for + * null pointers, I changed from fprintf to fputs. + * + * Example output: + [08/Nov/1997:01:05:03 -0600] request from 192.228.331.232 "GET /~joeblow/dir/ HTTP/1.0" ("/usr/user1/joeblow/public_html/dir/"): write: Broken pipe + */ + +void log_error_doc(request * req) +{ + int errno_save = errno; + + fprintf(stderr, "%srequest from %s \"%s\" (\"%s\"): ", + get_commonlog_time(), + req->remote_ip_addr, + (req->logline != NULL ? + req->logline : "(null)"), + (req->pathname != NULL ? req->pathname : "(null)")); + + errno = errno_save; +} + +/* + * Name: boa_perror + * + * Description: logs an error to user and error file both + * + */ +void boa_perror(request * req, char *message) +{ + log_error_doc(req); + perror(message); /* don't need to save errno because log_error_doc does */ + send_r_error(req); +} + +/* + * Name: log_error_time + * + * Description: Logs the current time to the stderr (the error log): + * should always be followed by an fprintf to stderr + */ + +void log_error_time() +{ + int errno_save = errno; + fputs(get_commonlog_time(), stderr); + errno = errno_save; +} + +/* + * Name: log_error_mesg + * + * Description: performs a log_error_time, writes the file and lineno + * to stderr (saving errno), and then a perror with message + * + */ + +void log_error_mesg(char *file, int line, char *mesg) +{ + int errno_save = errno; + fprintf(stderr, "%s%s:%d - ", get_commonlog_time(), file, line); + errno = errno_save; + perror(mesg); + errno = errno_save; +} diff --git a/3rdPartner/boa-0.94.13/src/log.o b/3rdPartner/boa-0.94.13/src/log.o new file mode 100644 index 0000000..e0dc594 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/log.o differ diff --git a/3rdPartner/boa-0.94.13/src/mmap_cache.c b/3rdPartner/boa-0.94.13/src/mmap_cache.c new file mode 100644 index 0000000..472820e --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/mmap_cache.c @@ -0,0 +1,152 @@ +/* + * Boa, an http server + * Copyright (C) 1999 Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: mmap_cache.c,v 1.9 2002/03/24 22:35:34 jnelson Exp $*/ + +#include "boa.h" + +int mmap_list_entries_used = 0; +int mmap_list_total_requests = 0; +int mmap_list_hash_bounces = 0; + +/* define local table variable */ +static struct mmap_entry mmap_list[MMAP_LIST_SIZE]; + +struct mmap_entry *find_mmap(int data_fd, struct stat *s) +{ + char *m; + int i, start; + mmap_list_total_requests++; + i = start = MMAP_LIST_HASH(s->st_dev, s->st_ino, s->st_size); + for (; mmap_list[i].use_count;) { + if (mmap_list[i].dev == s->st_dev && + mmap_list[i].ino == s->st_ino && + mmap_list[i].len == s->st_size) { + mmap_list[i].use_count++; +#ifdef DEBUG + fprintf(stderr, + "Old mmap_list entry %d use_count now %d (hash was %d)\n", + i, mmap_list[i].use_count, start); +#endif + return mmap_list + i; + } + mmap_list_hash_bounces++; + i = MMAP_LIST_NEXT(i); + /* Shouldn't happen, because of size limit enforcement below */ + if (i == start) + return NULL; + } + /* didn't find an entry that matches our dev/inode/size. + There might be an entry that matches later in the table, + but that _should_ be rare. The worst case is that we + needlessly mmap() a file that is already mmap'd, but we + did that all the time before this code was written, + so it shouldn't be _too_ bad. + */ + + /* Enforce a size limit here */ + if (mmap_list_entries_used > MMAP_LIST_USE_MAX) + return NULL; + + m = mmap(0, s->st_size, PROT_READ, MAP_OPTIONS, data_fd, 0); + + if ((int) m == -1) { + /* boa_perror(req,"mmap"); */ + return NULL; + } +#ifdef DEBUG + fprintf(stderr, "New mmap_list entry %d (hash was %d)\n", i, h); +#endif + mmap_list_entries_used++; + mmap_list[i].dev = s->st_dev; + mmap_list[i].ino = s->st_ino; + mmap_list[i].len = s->st_size; + mmap_list[i].mmap = m; + mmap_list[i].use_count = 1; + return mmap_list + i; +} + +void release_mmap(struct mmap_entry *e) +{ + if (!e) + return; + if (!e->use_count) { +#ifdef DEBUG + fprintf(stderr, "mmap_list(%p)->use_count already zero!\n", e); +#endif + return; + } + if (!--(e->use_count)) { + munmap(e->mmap, e->len); + mmap_list_entries_used--; + } +} + +struct mmap_entry *find_named_mmap(char *fname) +{ + int data_fd; + struct stat statbuf; + struct mmap_entry *e; + data_fd = open(fname, O_RDONLY); + if (data_fd == -1) { + perror(fname); + return NULL; + } + fstat(data_fd, &statbuf); + if (S_ISDIR(statbuf.st_mode)) { +#ifdef DEBUG + fprintf(stderr, "%s is a directory\n", fname); +#endif + return NULL; + } + + e = find_mmap(data_fd, &statbuf); + close(data_fd); + return e; +} + +/* + int main(int argc, char *argv[]) + { + #define MAXTEST 2048 + struct mmap_entry *mlist[MAXTEST]; + char name[1024], *s; + int i, tests=0; + while (fgets(name,sizeof(name),stdin) && tests < MAXTEST) { + if (name[0]=='-') { + i=atoi(name+1); + release_mmap(mlist[i]); + mlist[i]=NULL; + } else { + if ((s=strchr(name,'\n'))) *s='\0'; + mlist[tests] = find_named_mmap(name); + if (mlist[tests]) tests++; + else fprintf(stderr, "find_named_mmap(%s) failed\n",name); + } + } + fprintf(stderr, "mmap_list entries_used=%d ",mmap_list_entries_used); + fprintf(stderr, "total_requests=%d ",mmap_list_total_requests); + fprintf(stderr, "hash_bounces=%d\n",mmap_list_hash_bounces); + for (i=0; i + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * parse.h + * minimum interaction point between Boa's parser (boa_lexer.l and + * boa_grammar.y) and the rest of Boa. + */ + +/* $Id: parse.h,v 1.5 2000/02/12 21:52:45 jon Exp $*/ + +struct ccommand { + char *name; + int type; + void (*action) (char *, char *, void *); + void *object; +}; +struct ccommand *lookup_keyword(char *c); +void add_mime_type(char *extension, char *type); diff --git a/3rdPartner/boa-0.94.13/src/pipe.c b/3rdPartner/boa-0.94.13/src/pipe.c new file mode 100644 index 0000000..5954464 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/pipe.c @@ -0,0 +1,136 @@ + +/* + * Boa, an http server + * Based on code Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1997-99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: pipe.c,v 1.39 2002/01/21 02:19:16 jnelson Exp $*/ + +#include "boa.h" + +/* + * Name: read_from_pipe + * Description: Reads data from a pipe + * + * Return values: + * -1: request blocked, move to blocked queue + * 0: EOF or error, close it down + * 1: successful read, recycle in ready queue + */ + +int read_from_pipe(request * req) +{ + int bytes_read, bytes_to_read = + BUFFER_SIZE - (req->header_end - req->buffer); + + if (bytes_to_read == 0) { /* buffer full */ + if (req->cgi_status == CGI_PARSE) { /* got+parsed header */ + req->cgi_status = CGI_BUFFER; + *req->header_end = '\0'; /* points to end of read data */ + /* Could the above statement overwrite data??? + No, because req->header_end points to where new data + should begin, not where old data is. + */ + return process_cgi_header(req); /* cgi_status will change */ + } + req->status = PIPE_WRITE; + return 1; + } + + bytes_read = read(req->data_fd, req->header_end, bytes_to_read); +#ifdef FASCIST_LOGGING + if (bytes_read > 0) { + *(req->header_end + bytes_read) = '\0'; + fprintf(stderr, "pipe.c - read %d bytes: \"%s\"\n", + bytes_read, req->header_end); + } else + fprintf(stderr, "pipe.c - read %d bytes\n", bytes_read); + fprintf(stderr, "status, cgi_status: %d, %d\n", req->status, + req->cgi_status); +#endif + + if (bytes_read == -1) { + if (errno == EINTR) + return 1; + else if (errno == EWOULDBLOCK || errno == EAGAIN) + return -1; /* request blocked at the pipe level, but keep going */ + else { + req->status = DEAD; + log_error_doc(req); + perror("pipe read"); + return 0; + } + } else if (bytes_read == 0) { /* eof, write rest of buffer */ + req->status = PIPE_WRITE; + if (req->cgi_status == CGI_PARSE) { /* hasn't processed header yet */ + req->cgi_status = CGI_DONE; + *req->header_end = '\0'; /* points to end of read data */ + return process_cgi_header(req); /* cgi_status will change */ + } + req->cgi_status = CGI_DONE; + return 1; + } + req->header_end += bytes_read; + return 1; +} + +/* + * Name: write_from_pipe + * Description: Writes data previously read from a pipe + * + * Return values: + * -1: request blocked, move to blocked queue + * 0: EOF or error, close it down + * 1: successful write, recycle in ready queue + */ + +int write_from_pipe(request * req) +{ + int bytes_written, bytes_to_write = req->header_end - req->header_line; + + if (bytes_to_write == 0) { + if (req->cgi_status == CGI_DONE) + return 0; + + req->status = PIPE_READ; + req->header_end = req->header_line = req->buffer; + return 1; + } + + bytes_written = write(req->fd, req->header_line, bytes_to_write); + + if (bytes_written == -1) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return -1; /* request blocked at the pipe level, but keep going */ + else if (errno == EINTR) + return 1; + else { + req->status = DEAD; + send_r_error(req); /* maybe superfluous */ + log_error_doc(req); + perror("pipe write"); + return 0; + } + } + + req->header_line += bytes_written; + req->filepos += bytes_written; + + return 1; +} diff --git a/3rdPartner/boa-0.94.13/src/pipe.o b/3rdPartner/boa-0.94.13/src/pipe.o new file mode 100644 index 0000000..dddffec Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/pipe.o differ diff --git a/3rdPartner/boa-0.94.13/src/queue.c b/3rdPartner/boa-0.94.13/src/queue.c new file mode 100644 index 0000000..f17b461 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/queue.c @@ -0,0 +1,131 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1997 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: queue.c,v 1.21 2002/01/21 02:19:16 jnelson Exp $*/ + +#include "boa.h" + +request *request_ready = NULL; /* ready list head */ +request *request_block = NULL; /* blocked list head */ +request *request_free = NULL; /* free list head */ + +/* + * Name: block_request + * + * Description: Moves a request from the ready queue to the blocked queue + */ + +void block_request(request * req) +{ + dequeue(&request_ready, req); + enqueue(&request_block, req); + + if (req->buffer_end) { + BOA_FD_SET(req->fd, &block_write_fdset); + } else { + switch (req->status) { + case WRITE: + case PIPE_WRITE: + case DONE: + BOA_FD_SET(req->fd, &block_write_fdset); + break; + case PIPE_READ: + BOA_FD_SET(req->data_fd, &block_read_fdset); + break; + case BODY_WRITE: + BOA_FD_SET(req->post_data_fd, &block_write_fdset); + break; + default: + BOA_FD_SET(req->fd, &block_read_fdset); + break; + } + } +} + +/* + * Name: ready_request + * + * Description: Moves a request from the blocked queue to the ready queue + */ + +void ready_request(request * req) +{ + dequeue(&request_block, req); + enqueue(&request_ready, req); + + if (req->buffer_end) { + FD_CLR(req->fd, &block_write_fdset); + } else { + switch (req->status) { + case WRITE: + case PIPE_WRITE: + case DONE: + FD_CLR(req->fd, &block_write_fdset); + break; + case PIPE_READ: + FD_CLR(req->data_fd, &block_read_fdset); + break; + case BODY_WRITE: + FD_CLR(req->post_data_fd, &block_write_fdset); + break; + default: + FD_CLR(req->fd, &block_read_fdset); + } + } +} + + +/* + * Name: dequeue + * + * Description: Removes a request from its current queue + */ + +void dequeue(request ** head, request * req) +{ + if (*head == req) + *head = req->next; + + if (req->prev) + req->prev->next = req->next; + if (req->next) + req->next->prev = req->prev; + + req->next = NULL; + req->prev = NULL; +} + +/* + * Name: enqueue + * + * Description: Adds a request to the head of a queue + */ + +void enqueue(request ** head, request * req) +{ + if (*head) + (*head)->prev = req; /* previous head's prev is us */ + + req->next = *head; /* our next is previous head */ + req->prev = NULL; /* first in list */ + + *head = req; /* now we are head */ +} diff --git a/3rdPartner/boa-0.94.13/src/queue.o b/3rdPartner/boa-0.94.13/src/queue.o new file mode 100644 index 0000000..4c0ddfb Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/queue.o differ diff --git a/3rdPartner/boa-0.94.13/src/read.c b/3rdPartner/boa-0.94.13/src/read.c new file mode 100644 index 0000000..caf5ace --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/read.c @@ -0,0 +1,377 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,97 Larry Doolittle + * Some changes Copyright (C) 1997,99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: read.c,v 1.49 2002/03/18 01:53:48 jnelson Exp $*/ + +#include "boa.h" + +/* + * Name: read_header + * Description: Reads data from a request socket. Manages the current + * status via a state machine. Changes status from READ_HEADER to + * READ_BODY or WRITE as necessary. + * + * Return values: + * -1: request blocked, move to blocked queue + * 0: request done, close it down + * 1: more to do, leave on ready list + */ + +int read_header(request * req) +{ + int bytes, buf_bytes_left; + char *check, *buffer; + + check = req->client_stream + req->parse_pos; + buffer = req->client_stream; + bytes = req->client_stream_pos; + +#ifdef VERY_FASCIST_LOGGING + if (check < (buffer + bytes)) { + buffer[bytes] = '\0'; + log_error_time(); + fprintf(stderr, "%s:%d - Parsing headers (\"%s\")\n", + __FILE__, __LINE__, check); + } +#endif + while (check < (buffer + bytes)) { + switch (req->status) { + case READ_HEADER: + if (*check == '\r') { + req->status = ONE_CR; + req->header_end = check; + } else if (*check == '\n') { + req->status = ONE_LF; + req->header_end = check; + } + break; + + case ONE_CR: + if (*check == '\n') + req->status = ONE_LF; + else if (*check != '\r') + req->status = READ_HEADER; + break; + + case ONE_LF: + /* if here, we've found the end (for sure) of a header */ + if (*check == '\r') /* could be end o headers */ + req->status = TWO_CR; + else if (*check == '\n') + req->status = BODY_READ; + else + req->status = READ_HEADER; + break; + + case TWO_CR: + if (*check == '\n') + req->status = BODY_READ; + else if (*check != '\r') + req->status = READ_HEADER; + break; + + default: + break; + } + +#ifdef VERY_FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "status, check: %d, %d\n", req->status, *check); +#endif + + req->parse_pos++; /* update parse position */ + check++; + + if (req->status == ONE_LF) { + *req->header_end = '\0'; + + /* terminate string that begins at req->header_line */ + + if (req->logline) { + if (process_option_line(req) == 0) { + return 0; + } + } else { + if (process_logline(req) == 0) + return 0; + if (req->simple) + return process_header_end(req); + } + /* set header_line to point to beginning of new header */ + req->header_line = check; + } else if (req->status == BODY_READ) { +#ifdef VERY_FASCIST_LOGGING + int retval; + log_error_time(); + fprintf(stderr, "%s:%d -- got to body read.\n", + __FILE__, __LINE__); + retval = process_header_end(req); +#else + int retval = process_header_end(req); +#endif + /* process_header_end inits non-POST cgi's */ + + if (retval && req->method == M_POST) { + /* for body_{read,write}, set header_line to start of data, + and header_end to end of data */ + req->header_line = check; + req->header_end = + req->client_stream + req->client_stream_pos; + + req->status = BODY_WRITE; + /* so write it */ + /* have to write first, or read will be confused + * because of the special case where the + * filesize is less than we have already read. + */ + + /* + + As quoted from RFC1945: + + A valid Content-Length is required on all HTTP/1.0 POST requests. An + HTTP/1.0 server should respond with a 400 (bad request) message if it + cannot determine the length of the request message's content. + + */ + + if (req->content_length) { + int content_length; + + content_length = boa_atoi(req->content_length); + /* Is a content-length of 0 legal? */ + if (content_length <= 0) { + log_error_time(); + fprintf(stderr, "Invalid Content-Length [%s] on POST!\n", + req->content_length); + send_r_bad_request(req); + return 0; + } + if (single_post_limit && content_length > single_post_limit) { + log_error_time(); + fprintf(stderr, "Content-Length [%d] > SinglePostLimit [%d] on POST!\n", + content_length, single_post_limit); + send_r_bad_request(req); + return 0; + } + req->filesize = content_length; + req->filepos = 0; + if (req->header_end - req->header_line > req->filesize) { + req->header_end = req->header_line + req->filesize; + } + } else { + log_error_time(); + fprintf(stderr, "Unknown Content-Length POST!\n"); + send_r_bad_request(req); + return 0; + } + } /* either process_header_end failed or req->method != POST */ + return retval; /* 0 - close it done, 1 - keep on ready */ + } /* req->status == BODY_READ */ + } /* done processing available buffer */ + +#ifdef VERY_FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "%s:%d - Done processing buffer. Status: %d\n", + __FILE__, __LINE__, req->status); +#endif + + if (req->status < BODY_READ) { + /* only reached if request is split across more than one packet */ + + buf_bytes_left = CLIENT_STREAM_SIZE - req->client_stream_pos; + if (buf_bytes_left < 1) { + log_error_time(); + fputs("buffer overrun - read.c, read_header - closing\n", + stderr); + req->status = DEAD; + return 0; + } + + bytes = read(req->fd, buffer + req->client_stream_pos, buf_bytes_left); + + if (bytes < 0) { + if (errno == EINTR) + return 1; + if (errno == EAGAIN || errno == EWOULDBLOCK) /* request blocked */ + return -1; + /* + else if (errno == EBADF || errno == EPIPE) { + + req->status = DEAD; + return 0; + */ + log_error_doc(req); + perror("header read"); /* don't need to save errno because log_error_doc does */ + return 0; + } else if (bytes == 0) { + /* + log_error_time(); + fputs("unexpected end of headers\n", stderr); + */ + return 0; + } + + /* bytes is positive */ + req->client_stream_pos += bytes; + +#ifdef FASCIST_LOGGING1 + log_error_time(); + req->client_stream[req->client_stream_pos] = '\0'; + fprintf(stderr, "%s:%d -- We read %d bytes: \"%s\"\n", + __FILE__, __LINE__, bytes, +#ifdef VERY_FASCIST_LOGGING2 + req->client_stream + req->client_stream_pos - bytes); +#else + ""); +#endif +#endif + + return 1; + } + return 1; +} + +/* + * Name: read_body + * Description: Reads body from a request socket for POST CGI + * + * Return values: + * + * -1: request blocked, move to blocked queue + * 0: request done, close it down + * 1: more to do, leave on ready list + * + + As quoted from RFC1945: + + A valid Content-Length is required on all HTTP/1.0 POST requests. An + HTTP/1.0 server should respond with a 400 (bad request) message if it + cannot determine the length of the request message's content. + + */ + +int read_body(request * req) +{ + int bytes_read, bytes_to_read, bytes_free; + + bytes_free = BUFFER_SIZE - (req->header_end - req->header_line); + bytes_to_read = req->filesize - req->filepos; + + if (bytes_to_read > bytes_free) + bytes_to_read = bytes_free; + + if (bytes_to_read <= 0) { + req->status = BODY_WRITE; /* go write it */ + return 1; + } + + bytes_read = read(req->fd, req->header_end, bytes_to_read); + + if (bytes_read == -1) { + if (errno == EWOULDBLOCK || errno == EAGAIN) { + /* + req->status = BODY_WRITE; + return 1; + */ + return -1; + } else { + boa_perror(req, "read body"); + return 0; + } + } else if (bytes_read == 0) { + /* this is an error. premature end of body! */ + log_error_time(); + fprintf(stderr, "%s:%d - Premature end of body!!\n", + __FILE__, __LINE__); + send_r_bad_request(req); + return 0; + } + + req->status = BODY_WRITE; + +#ifdef FASCIST_LOGGING1 + log_error_time(); + fprintf(stderr, "%s:%d - read %d bytes.\n", + __FILE__, __LINE__, bytes_to_read); +#endif + + req->header_end += bytes_read; + + return 1; +} + +/* + * Name: write_body + * Description: Writes a chunk of data to a file + * + * Return values: + * -1: request blocked, move to blocked queue + * 0: EOF or error, close it down + * 1: successful write, recycle in ready queue + */ + +int write_body(request * req) +{ + int bytes_written, bytes_to_write = req->header_end - req->header_line; + if (req->filepos + bytes_to_write > req->filesize) + bytes_to_write = req->filesize - req->filepos; + + if (bytes_to_write == 0) { /* nothing left in buffer to write */ + req->header_line = req->header_end = req->buffer; + if (req->filepos >= req->filesize) + return init_cgi(req); + /* if here, we can safely assume that there is more to read */ + req->status = BODY_READ; + return 1; + } + bytes_written = write(req->post_data_fd, + req->header_line, bytes_to_write); + + if (bytes_written == -1) { + if (errno == EWOULDBLOCK || errno == EAGAIN) + return -1; /* request blocked at the pipe level, but keep going */ + else if (errno == EINTR) + return 1; + else if (errno == ENOSPC) { + /* 20010520 - Alfred Fluckiger */ + /* No test was originally done in this case, which might */ + /* lead to a "no space left on device" error. */ + boa_perror(req, "write body"); /* OK to disable if your logs get too big */ + return 0; + } else { + boa_perror(req, "write body"); /* OK to disable if your logs get too big */ + return 0; + } + } +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "%s:%d - wrote %d bytes. %ld of %ld\n", + __FILE__, __LINE__, + bytes_written, req->filepos, req->filesize); +#endif + + req->filepos += bytes_written; + req->header_line += bytes_written; + + return 1; /* more to do */ +} diff --git a/3rdPartner/boa-0.94.13/src/read.o b/3rdPartner/boa-0.94.13/src/read.o new file mode 100644 index 0000000..3c7db1b Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/read.o differ diff --git a/3rdPartner/boa-0.94.13/src/request.c b/3rdPartner/boa-0.94.13/src/request.c new file mode 100644 index 0000000..7e07ef6 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/request.c @@ -0,0 +1,749 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,97 Larry Doolittle + * Some changes Copyright (C) 1996-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: request.c,v 1.112.2.3 2002/07/24 03:03:59 jnelson Exp $*/ + +#include "boa.h" +#include /* for offsetof */ + +int total_connections; +struct status status; + +static int sockbufsize = SOCKETBUF_SIZE; + +/* function prototypes located in this file only */ +static void free_request(request ** list_head_addr, request * req); + +/* + * Name: new_request + * Description: Obtains a request struct off the free list, or if the + * free list is empty, allocates memory + * + * Return value: pointer to initialized request + */ + +request *new_request(void) +{ + request *req; + + if (request_free) { + req = request_free; /* first on free list */ + dequeue(&request_free, request_free); /* dequeue the head */ + } else { + req = (request *) malloc(sizeof (request)); + if (!req) { + log_error_time(); + perror("malloc for new request"); + return NULL; + } + } + + memset(req, 0, offsetof(request, buffer) + 1); + + return req; +} + +/* + * Name: get_request + * + * Description: Polls the server socket for a request. If one exists, + * does some basic initialization and adds it to the ready queue;. + */ + +void get_request(int server_s) +{ + int fd; /* socket */ + struct SOCKADDR remote_addr; /* address */ + struct SOCKADDR salocal; + int remote_addrlen = sizeof (struct SOCKADDR); + request *conn; /* connection */ + size_t len; + static int system_bufsize = 0; /* Default size of SNDBUF given by system */ + + remote_addr.S_FAMILY = 0xdead; + fd = accept(server_s, (struct sockaddr *) &remote_addr, + &remote_addrlen); + + if (fd == -1) { + if (errno != EAGAIN && errno != EWOULDBLOCK) + /* abnormal error */ + WARN("accept"); + else + /* no requests */ + pending_requests = 0; + return; + } + if (fd >= FD_SETSIZE) { + WARN("Got fd >= FD_SETSIZE."); + close(fd); + return; + } +#ifdef DEBUGNONINET + /* This shows up due to race conditions in some Linux kernels + when the client closes the socket sometime between + the select() and accept() syscalls. + Code and description by Larry Doolittle + */ +#define HEX(x) (((x)>9)?(('a'-10)+(x)):('0'+(x))) + if (remote_addr.sin_family != AF_INET) { + struct sockaddr *bogus = (struct sockaddr *) &remote_addr; + char *ap, ablock[44]; + int i; + close(fd); + log_error_time(); + for (ap = ablock, i = 0; i < remote_addrlen && i < 14; i++) { + *ap++ = ' '; + *ap++ = HEX((bogus->sa_data[i] >> 4) & 0x0f); + *ap++ = HEX(bogus->sa_data[i] & 0x0f); + } + *ap = '\0'; + fprintf(stderr, "non-INET connection attempt: socket %d, " + "sa_family = %hu, sa_data[%d] = %s\n", + fd, bogus->sa_family, remote_addrlen, ablock); + return; + } +#endif + +/* XXX Either delete this, or document why it's needed */ +/* Pointed out 3-Oct-1999 by Paul Saab */ +#ifdef REUSE_EACH_CLIENT_CONNECTION_SOCKET + if ((setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *) &sock_opt, + sizeof (sock_opt))) == -1) { + DIE("setsockopt: unable to set SO_REUSEADDR"); + } +#endif + + len = sizeof(salocal); + + if (getsockname(fd, (struct sockaddr *) &salocal, &len) != 0) { + WARN("getsockname"); + close(fd); + return; + } + + conn = new_request(); + if (!conn) { + close(fd); + return; + } + conn->fd = fd; + conn->status = READ_HEADER; + conn->header_line = conn->client_stream; + conn->time_last = current_time; + conn->kacount = ka_max; + + ascii_sockaddr(&salocal, conn->local_ip_addr, NI_MAXHOST); + + /* nonblocking socket */ + if (set_nonblock_fd(conn->fd) == -1) + WARN("fcntl: unable to set new socket to non-block"); + + /* set close on exec to true */ + if (fcntl(conn->fd, F_SETFD, 1) == -1) + WARN("fctnl: unable to set close-on-exec for new socket"); + + /* Increase buffer size if we have to. + * Only ask the system the buffer size on the first request, + * and assume all subsequent sockets have the same size. + */ + if (system_bufsize == 0) { + len = sizeof (system_bufsize); + if (getsockopt + (conn->fd, SOL_SOCKET, SO_SNDBUF, &system_bufsize, &len) == 0 + && len == sizeof (system_bufsize)) { + /* + fprintf(stderr, "%sgetsockopt reports SNDBUF %d\n", + get_commonlog_time(), system_bufsize); + */ + ; + } else { + WARN("getsockopt(SNDBUF)"); + system_bufsize = 1; + } + } + if (system_bufsize < sockbufsize) { + if (setsockopt + (conn->fd, SOL_SOCKET, SO_SNDBUF, (void *) &sockbufsize, + sizeof (sockbufsize)) == -1) { + WARN("setsockopt: unable to set socket buffer size"); +#ifdef DIE_ON_ERROR_TUNING_SNDBUF + exit(errno); +#endif + } + } + + /* for log file and possible use by CGI programs */ + ascii_sockaddr(&remote_addr, conn->remote_ip_addr, NI_MAXHOST); + + /* for possible use by CGI programs */ + conn->remote_port = net_port(&remote_addr); + + status.requests++; + +#ifdef USE_TCPNODELAY + /* Thanks to Jef Poskanzer for this tweak */ + { + int one = 1; + if (setsockopt(conn->fd, IPPROTO_TCP, TCP_NODELAY, + (void *) &one, sizeof (one)) == -1) { + DIE("setsockopt: unable to set TCP_NODELAY"); + } + + } +#endif + +#ifndef NO_RATE_LIMIT + if (conn->fd > max_connections) { + send_r_service_unavailable(conn); + conn->status = DONE; + pending_requests = 0; + } +#endif /* NO_RATE_LIMIT */ + + total_connections++; + enqueue(&request_ready, conn); +} + + +/* + * Name: free_request + * + * Description: Deallocates memory for a finished request and closes + * down socket. + */ + +static void free_request(request ** list_head_addr, request * req) +{ + int i; + /* free_request should *never* get called by anything but + process_requests */ + + if (req->buffer_end && req->status != DEAD) { + req->status = DONE; + return; + } + /* put request on the free list */ + dequeue(list_head_addr, req); /* dequeue from ready or block list */ + + if (req->logline) /* access log */ + log_access(req); + + if (req->mmap_entry_var) + release_mmap(req->mmap_entry_var); + else if (req->data_mem) + munmap(req->data_mem, req->filesize); + + if (req->data_fd) + close(req->data_fd); + + if (req->post_data_fd) + close(req->post_data_fd); + + if (req->response_status >= 400) + status.errors++; + + for (i = COMMON_CGI_COUNT; i < req->cgi_env_index; ++i) { + if (req->cgi_env[i]) { + free(req->cgi_env[i]); + } else { + log_error_time(); + fprintf(stderr, "Warning: CGI Environment contains NULL value" \ + "(index %d of %d).\n", i, req->cgi_env_index); + } + } + + if (req->pathname) + free(req->pathname); + if (req->path_info) + free(req->path_info); + if (req->path_translated) + free(req->path_translated); + if (req->script_name) + free(req->script_name); + + if ((req->keepalive == KA_ACTIVE) && + (req->response_status < 500) && req->kacount > 0) { + int bytes_to_move; + + request *conn = new_request(); + if (!conn) { + /* errors already reported */ + enqueue(&request_free, req); + close(req->fd); + total_connections--; + return; + } + conn->fd = req->fd; + conn->status = READ_HEADER; + conn->header_line = conn->client_stream; + conn->kacount = req->kacount - 1; + + /* close enough and we avoid a call to time(NULL) */ + conn->time_last = req->time_last; + + /* for log file and possible use by CGI programs */ + memcpy(conn->remote_ip_addr, req->remote_ip_addr, NI_MAXHOST); + memcpy(conn->local_ip_addr, req->local_ip_addr, NI_MAXHOST); + + /* for possible use by CGI programs */ + conn->remote_port = req->remote_port; + + status.requests++; + + /* we haven't parsed beyond req->parse_pos, so... */ + bytes_to_move = req->client_stream_pos - req->parse_pos; + + if (bytes_to_move) { + memcpy(conn->client_stream, + req->client_stream + req->parse_pos, bytes_to_move); + conn->client_stream_pos = bytes_to_move; + } + enqueue(&request_block, conn); + BOA_FD_SET(conn->fd, &block_read_fdset); + + enqueue(&request_free, req); + return; + } + + /* + While debugging some weird errors, Jon Nelson learned that + some versions of Netscape Navigator break the + HTTP specification. + + Some research on the issue brought up: + + http://www.apache.org/docs/misc/known_client_problems.html + + As quoted here: + + " + Trailing CRLF on POSTs + + This is a legacy issue. The CERN webserver required POST + data to have an extra CRLF following it. Thus many + clients send an extra CRLF that is not included in the + Content-Length of the request. Apache works around this + problem by eating any empty lines which appear before a + request. + " + + Boa will (for now) hack around this stupid bug in Netscape + (and Internet Exploder) + by reading up to 32k after the connection is all but closed. + This should eliminate any remaining spurious crlf sent + by the client. + + Building bugs *into* software to be compatable is + just plain wrong + */ + + if (req->method == M_POST) { + char buf[32768]; + read(req->fd, buf, 32768); + } + close(req->fd); + total_connections--; + + enqueue(&request_free, req); + + return; +} + +/* + * Name: process_requests + * + * Description: Iterates through the ready queue, passing each request + * to the appropriate handler for processing. It monitors the + * return value from handler functions, all of which return -1 + * to indicate a block, 0 on completion and 1 to remain on the + * ready list for more procesing. + */ + +void process_requests(int server_s) +{ + int retval = 0; + request *current, *trailer; + + if (pending_requests) { + get_request(server_s); +#ifdef ORIGINAL_BEHAVIOR + pending_requests = 0; +#endif + } + + current = request_ready; + + while (current) { + time(¤t_time); + if (current->buffer_end && /* there is data in the buffer */ + current->status != DEAD && current->status != DONE) { + retval = req_flush(current); + /* + * retval can be -2=error, -1=blocked, or bytes left + */ + if (retval == -2) { /* error */ + current->status = DEAD; + retval = 0; + } else if (retval >= 0) { + /* notice the >= which is different from below? + Here, we may just be flushing headers. + We don't want to return 0 because we are not DONE + or DEAD */ + + retval = 1; + } + } else { + switch (current->status) { + case READ_HEADER: + case ONE_CR: + case ONE_LF: + case TWO_CR: + retval = read_header(current); + break; + case BODY_READ: + retval = read_body(current); + break; + case BODY_WRITE: + retval = write_body(current); + break; + case WRITE: + retval = process_get(current); + break; + case PIPE_READ: + retval = read_from_pipe(current); + break; + case PIPE_WRITE: + retval = write_from_pipe(current); + break; + case DONE: + /* a non-status that will terminate the request */ + retval = req_flush(current); + /* + * retval can be -2=error, -1=blocked, or bytes left + */ + if (retval == -2) { /* error */ + current->status = DEAD; + retval = 0; + } else if (retval > 0) { + retval = 1; + } + break; + case DEAD: + retval = 0; + current->buffer_end = 0; + SQUASH_KA(current); + break; + default: + retval = 0; + fprintf(stderr, "Unknown status (%d), " + "closing!\n", current->status); + current->status = DEAD; + break; + } + + } + + if (sigterm_flag) + SQUASH_KA(current); + + /* we put this here instead of after the switch so that + * if we are on the last request, and get_request is successful, + * current->next is valid! + */ + if (pending_requests) + get_request(server_s); + + switch (retval) { + case -1: /* request blocked */ + trailer = current; + current = current->next; + block_request(trailer); + break; + case 0: /* request complete */ + current->time_last = current_time; + trailer = current; + current = current->next; + free_request(&request_ready, trailer); + break; + case 1: /* more to do */ + current->time_last = current_time; + current = current->next; + break; + default: + log_error_time(); + fprintf(stderr, "Unknown retval in process.c - " + "Status: %d, retval: %d\n", current->status, retval); + current = current->next; + break; + } + } +} + +/* + * Name: process_logline + * + * Description: This is called with the first req->header_line received + * by a request, called "logline" because it is logged to a file. + * It is parsed to determine request type and method, then passed to + * translate_uri for further parsing. Also sets up CGI environment if + * needed. + */ + +int process_logline(request * req) +{ + char *stop, *stop2; + static char *SIMPLE_HTTP_VERSION = "HTTP/0.9"; + + req->logline = req->client_stream; + if (!memcmp(req->logline, "GET ", 4)) + req->method = M_GET; + else if (!memcmp(req->logline, "HEAD ", 5)) + /* head is just get w/no body */ + req->method = M_HEAD; + else if (!memcmp(req->logline, "POST ", 5)) + req->method = M_POST; + else { + log_error_time(); + fprintf(stderr, "malformed request: \"%s\"\n", req->logline); + send_r_not_implemented(req); + return 0; + } + + req->http_version = SIMPLE_HTTP_VERSION; + req->simple = 1; + + /* Guaranteed to find ' ' since we matched a method above */ + stop = req->logline + 3; + if (*stop != ' ') + ++stop; + + /* scan to start of non-whitespace */ + while (*(++stop) == ' '); + + stop2 = stop; + + /* scan to end of non-whitespace */ + while (*stop2 != '\0' && *stop2 != ' ') + ++stop2; + + if (stop2 - stop > MAX_HEADER_LENGTH) { + log_error_time(); + fprintf(stderr, "URI too long %d: \"%s\"\n", MAX_HEADER_LENGTH, + req->logline); + send_r_bad_request(req); + return 0; + } + memcpy(req->request_uri, stop, stop2 - stop); + req->request_uri[stop2 - stop] = '\0'; + + if (*stop2 == ' ') { + /* if found, we should get an HTTP/x.x */ + unsigned int p1, p2; + + /* scan to end of whitespace */ + ++stop2; + while (*stop2 == ' ' && *stop2 != '\0') + ++stop2; + + /* scan in HTTP/major.minor */ + if (sscanf(stop2, "HTTP/%u.%u", &p1, &p2) == 2) { + /* HTTP/{0.9,1.0,1.1} */ + if (p1 == 1 && (p2 == 0 || p2 == 1)) { + req->http_version = stop2; + req->simple = 0; + } else if (p1 > 1 || (p1 != 0 && p2 > 1)) { + goto BAD_VERSION; + } + } else { + goto BAD_VERSION; + } + } + + if (req->method == M_HEAD && req->simple) { + send_r_bad_request(req); + return 0; + } + req->cgi_env_index = COMMON_CGI_COUNT; + + return 1; + +BAD_VERSION: + log_error_time(); + fprintf(stderr, "bogus HTTP version: \"%s\"\n", stop2); + send_r_bad_request(req); + return 0; +} + +/* + * Name: process_header_end + * + * Description: takes a request and performs some final checking before + * init_cgi or init_get + * Returns 0 for error or NPH, or 1 for success + */ + +int process_header_end(request * req) +{ + if (!req->logline) { + send_r_error(req); + return 0; + } + + /* Percent-decode request */ + if (unescape_uri(req->request_uri, &(req->query_string)) == 0) { + log_error_doc(req); + fputs("Problem unescaping uri\n", stderr); + send_r_bad_request(req); + return 0; + } + + /* clean pathname */ + clean_pathname(req->request_uri); + + if (req->request_uri[0] != '/') { + send_r_bad_request(req); + return 0; + } + + if (translate_uri(req) == 0) { /* unescape, parse uri */ + SQUASH_KA(req); + return 0; /* failure, close down */ + } + + if (req->method == M_POST) { + req->post_data_fd = create_temporary_file(1, NULL, 0); + if (req->post_data_fd == 0) + return(0); + return(1); /* success */ + } + + if (req->is_cgi) { + return init_cgi(req); + } + + req->status = WRITE; + return init_get(req); /* get and head */ +} + +/* + * Name: process_option_line + * + * Description: Parses the contents of req->header_line and takes + * appropriate action. + */ + +int process_option_line(request * req) +{ + char c, *value, *line = req->header_line; + + /* Start by aggressively hacking the in-place copy of the header line */ + +#ifdef FASCIST_LOGGING + log_error_time(); + fprintf(stderr, "%s:%d - Parsing \"%s\"\n", __FILE__, __LINE__, line); +#endif + + value = strchr(line, ':'); + if (value == NULL) + return 0; + *value++ = '\0'; /* overwrite the : */ + to_upper(line); /* header types are case-insensitive */ + while ((c = *value) && (c == ' ' || c == '\t')) + value++; + + if (!memcmp(line, "IF_MODIFIED_SINCE", 18) && !req->if_modified_since) + req->if_modified_since = value; + + else if (!memcmp(line, "CONTENT_TYPE", 13) && !req->content_type) + req->content_type = value; + + else if (!memcmp(line, "CONTENT_LENGTH", 15) && !req->content_length) + req->content_length = value; + + else if (!memcmp(line, "CONNECTION", 11) && + ka_max && req->keepalive != KA_STOPPED) { + req->keepalive = (!strncasecmp(value, "Keep-Alive", 10) ? + KA_ACTIVE : KA_STOPPED); + } + /* #ifdef ACCEPT_ON */ + else if (!memcmp(line, "ACCEPT", 7)) + add_accept_header(req, value); + /* #endif */ + + /* Need agent and referer for logs */ + else if (!memcmp(line, "REFERER", 8)) { + req->header_referer = value; + if (!add_cgi_env(req, "REFERER", value, 1)) + return 0; + } else if (!memcmp(line, "USER_AGENT", 11)) { + req->header_user_agent = value; + if (!add_cgi_env(req, "USER_AGENT", value, 1)) + return 0; + } else { + if (!add_cgi_env(req, line, value, 1)) + return 0; + } + return 1; +} + +/* + * Name: add_accept_header + * Description: Adds a mime_type to a requests accept char buffer + * silently ignore any that don't fit - + * shouldn't happen because of relative buffer sizes + */ + +void add_accept_header(request * req, char *mime_type) +{ +#ifdef ACCEPT_ON + int l = strlen(req->accept); + int l2 = strlen(mime_type); + + if ((l + l2 + 2) >= MAX_HEADER_LENGTH) + return; + + if (req->accept[0] == '\0') + strcpy(req->accept, mime_type); + else { + req->accept[l] = ','; + req->accept[l + 1] = ' '; + memcpy(req->accept + l + 2, mime_type, l2 + 1); + /* the +1 is for the '\0' */ + /* + sprintf(req->accept + l, ", %s", mime_type); + */ + } +#endif +} + +void free_requests(void) +{ + request *ptr, *next; + + ptr = request_free; + while (ptr != NULL) { + next = ptr->next; + free(ptr); + ptr = next; + } + request_free = NULL; +} diff --git a/3rdPartner/boa-0.94.13/src/request.o b/3rdPartner/boa-0.94.13/src/request.o new file mode 100644 index 0000000..df2f734 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/request.o differ diff --git a/3rdPartner/boa-0.94.13/src/response.c b/3rdPartner/boa-0.94.13/src/response.c new file mode 100644 index 0000000..388269c --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/response.c @@ -0,0 +1,362 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1996-99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: response.c,v 1.41.2.1 2002/06/06 05:08:54 jnelson Exp $*/ + +#include "boa.h" + +#define HTML "text/html; charset=ISO-8859-1" +#define CRLF "\r\n" + +void print_content_type(request * req) +{ + req_write(req, "Content-Type: "); + req_write(req, get_mime_type(req->request_uri)); + req_write(req, "\r\n"); +} + +void print_content_length(request * req) +{ + req_write(req, "Content-Length: "); + req_write(req, simple_itoa(req->filesize)); + req_write(req, "\r\n"); +} + +void print_last_modified(request * req) +{ + static char lm[] = "Last-Modified: " + " " "\r\n"; + rfc822_time_buf(lm + 15, req->last_modified); + req_write(req, lm); +} + +void print_ka_phrase(request * req) +{ + if (req->kacount > 0 && + req->keepalive == KA_ACTIVE && req->response_status < 500) { + req_write(req, "Connection: Keep-Alive\r\nKeep-Alive: timeout="); + req_write(req, simple_itoa(ka_timeout)); + req_write(req, ", max="); + req_write(req, simple_itoa(req->kacount)); + req_write(req, "\r\n"); + } else + req_write(req, "Connection: close\r\n"); +} + +void print_http_headers(request * req) +{ + static char stuff[] = "Date: " + " " + "\r\nServer: " SERVER_VERSION "\r\n"; + + rfc822_time_buf(stuff + 6, 0); + req_write(req, stuff); + print_ka_phrase(req); +} + +/* The routines above are only called by the routines below. + * The rest of Boa only enters through the routines below. + */ + +/* R_REQUEST_OK: 200 */ +void send_r_request_ok(request * req) +{ + req->response_status = R_REQUEST_OK; + if (req->simple) + return; + + req_write(req, "HTTP/1.0 200 OK\r\n"); + print_http_headers(req); + + if (!req->is_cgi) { + print_content_length(req); + print_last_modified(req); + print_content_type(req); + req_write(req, "\r\n"); + } +} + +/* R_MOVED_PERM: 301 */ +void send_r_moved_perm(request * req, char *url) +{ + SQUASH_KA(req); + req->response_status = R_MOVED_PERM; + if (!req->simple) { + req_write(req, "HTTP/1.0 301 Moved Permanently\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n"); + + req_write(req, "Location: "); + req_write_escape_http(req, url); + req_write(req, "\r\n\r\n"); + } + if (req->method != M_HEAD) { + req_write(req, + "301 Moved Permanently\n" + "\n

301 Moved

The document has moved\n" + "here.\n\n"); + } + req_flush(req); +} + +/* R_MOVED_TEMP: 302 */ +void send_r_moved_temp(request * req, char *url, char *more_hdr) +{ + SQUASH_KA(req); + req->response_status = R_MOVED_TEMP; + if (!req->simple) { + req_write(req, "HTTP/1.0 302 Moved Temporarily\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n"); + + req_write(req, "Location: "); + req_write_escape_http(req, url); + req_write(req, "\r\n"); + req_write(req, more_hdr); + req_write(req, "\r\n\r\n"); + } + if (req->method != M_HEAD) { + req_write(req, + "302 Moved Temporarily\n" + "\n

302 Moved

The document has moved\n" + "here.\n\n"); + } + req_flush(req); +} + +/* R_NOT_MODIFIED: 304 */ +void send_r_not_modified(request * req) +{ + SQUASH_KA(req); + req->response_status = R_NOT_MODIFIED; + req_write(req, "HTTP/1.0 304 Not Modified\r\n"); + print_http_headers(req); + print_content_type(req); + req_write(req, "\r\n"); + req_flush(req); +} + +/* R_BAD_REQUEST: 400 */ +void send_r_bad_request(request * req) +{ + SQUASH_KA(req); + req->response_status = R_BAD_REQUEST; + if (!req->simple) { + req_write(req, "HTTP/1.0 400 Bad Request\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) + req_write(req, + "400 Bad Request\n" + "

400 Bad Request

\nYour client has issued " + "a malformed or illegal request.\n\n"); + req_flush(req); +} + +/* R_UNAUTHORIZED: 401 */ +void send_r_unauthorized(request * req, char *realm_name) +{ + SQUASH_KA(req); + req->response_status = R_UNAUTHORIZED; + if (!req->simple) { + req_write(req, "HTTP/1.0 401 Unauthorized\r\n"); + print_http_headers(req); + req_write(req, "WWW-Authenticate: Basic realm=\""); + req_write(req, realm_name); + req_write(req, "\"\r\n"); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, + "401 Unauthorized\n" + "

401 Unauthorized

\nYour client does not " + "have permission to get URL "); + req_write_escape_html(req, req->request_uri); + req_write(req, " from this server.\n\n"); + } + req_flush(req); +} + +/* R_FORBIDDEN: 403 */ +void send_r_forbidden(request * req) +{ + SQUASH_KA(req); + req->response_status = R_FORBIDDEN; + if (!req->simple) { + req_write(req, "HTTP/1.0 403 Forbidden\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, "403 Forbidden\n" + "

403 Forbidden

\nYour client does not " + "have permission to get URL "); + req_write_escape_html(req, req->request_uri); + req_write(req, " from this server.\n\n"); + } + req_flush(req); +} + +/* R_NOT_FOUND: 404 */ +void send_r_not_found(request * req) +{ + SQUASH_KA(req); + req->response_status = R_NOT_FOUND; + if (!req->simple) { + req_write(req, "HTTP/1.0 404 Not Found\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, "404 Not Found\n" + "

404 Not Found

\nThe requested URL "); + req_write_escape_html(req, req->request_uri); + req_write(req, " was not found on this server.\n\n"); + } + req_flush(req); +} + +/* R_ERROR: 500 */ +void send_r_error(request * req) +{ + SQUASH_KA(req); + req->response_status = R_ERROR; + if (!req->simple) { + req_write(req, "HTTP/1.0 500 Server Error\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, + "500 Server Error\n" + "

500 Server Error

\nThe server encountered " + "an internal error and could not complete your request.\n" + "\n"); + } + req_flush(req); +} + +/* R_NOT_IMP: 501 */ +void send_r_not_implemented(request * req) +{ + SQUASH_KA(req); + req->response_status = R_NOT_IMP; + if (!req->simple) { + req_write(req, "HTTP/1.0 501 Not Implemented\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, + "501 Not Implemented\n" + "

501 Not Implemented

\nPOST to non-script " + "is not supported in Boa.\n\n"); + } + req_flush(req); +} + +/* R_BAD_GATEWAY: 502 */ +void send_r_bad_gateway(request * req) +{ + SQUASH_KA(req); + req->response_status = R_BAD_GATEWAY; + if (!req->simple) { + req_write(req, "HTTP/1.0 502 Bad Gateway" CRLF); + print_http_headers(req); + req_write(req, "Content-Type: " HTML CRLF CRLF); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, + "502 Bad Gateway\n" + "

502 Bad Gateway

\nThe CGI was " + "not CGI/1.1 compliant.\n" "\n"); + } + req_flush(req); +} + +/* R_SERVICE_UNAVAILABLE: 503 */ +void send_r_service_unavailable(request * req) /* 503 */ +{ + static char body[] = + "503 Service Unavailable\n" + "

503 Service Unavailable

\n" + "There are too many connections in use right now.\r\n" + "Please try again later.\r\n\n"; + static int _body_len; + static char *body_len; + + if (!_body_len) + _body_len = strlen(body); + if (!body_len) + body_len = strdup(simple_itoa(_body_len)); + if (!body_len) { + log_error_time(); + perror("strdup of _body_len from simple_itoa"); + } + + + SQUASH_KA(req); + req->response_status = R_SERVICE_UNAV; + if (!req->simple) { + req_write(req, "HTTP/1.0 503 Service Unavailable\r\n"); + print_http_headers(req); + if (body_len) { + req_write(req, "Content-Length: "); + req_write(req, body_len); + req_write(req, "\r\n"); + } + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header + */ + } + if (req->method != M_HEAD) { + req_write(req, body); + } + req_flush(req); +} + + +/* R_NOT_IMP: 505 */ +void send_r_bad_version(request * req) +{ + SQUASH_KA(req); + req->response_status = R_BAD_VERSION; + if (!req->simple) { + req_write(req, "HTTP/1.0 505 HTTP Version Not Supported\r\n"); + print_http_headers(req); + req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */ + } + if (req->method != M_HEAD) { + req_write(req, + "505 HTTP Version Not Supported\n" + "

505 HTTP Version Not Supported

\nHTTP versions " + "other than 0.9 and 1.0 " + "are not supported in Boa.\n

Version encountered: "); + req_write(req, req->http_version); + req_write(req, "

\n"); + } + req_flush(req); +} diff --git a/3rdPartner/boa-0.94.13/src/response.o b/3rdPartner/boa-0.94.13/src/response.o new file mode 100644 index 0000000..0ca242f Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/response.o differ diff --git a/3rdPartner/boa-0.94.13/src/select.c b/3rdPartner/boa-0.94.13/src/select.c new file mode 100644 index 0000000..88e7f5d --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/select.c @@ -0,0 +1,183 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Charles F. Randall + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1996-2002 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: select.c,v 1.1.2.2 2002/07/23 15:54:52 jnelson Exp $*/ + +#include "boa.h" + +static void fdset_update(void); +fd_set block_read_fdset; +fd_set block_write_fdset; +static struct timeval req_timeout; /* timeval for select */ + +void select_loop(int server_s) +{ + FD_ZERO(&block_read_fdset); + FD_ZERO(&block_write_fdset); + /* set server_s and req_timeout */ + req_timeout.tv_sec = (ka_timeout ? ka_timeout : REQUEST_TIMEOUT); + req_timeout.tv_usec = 0l; /* reset timeout */ + + /* preset max_fd */ + max_fd = -1; + + while (1) { + if (sighup_flag) + sighup_run(); + if (sigchld_flag) + sigchld_run(); + if (sigalrm_flag) + sigalrm_run(); + + if (sigterm_flag) { + if (sigterm_flag == 1) + sigterm_stage1_run(server_s); + if (sigterm_flag == 2 && !request_ready && !request_block) { + sigterm_stage2_run(); + } + } + + /* reset max_fd */ + max_fd = -1; + + if (request_block) + /* move selected req's from request_block to request_ready */ + fdset_update(); + + /* any blocked req's move from request_ready to request_block */ + process_requests(server_s); + + if (!sigterm_flag && total_connections < (max_connections - 10)) { + BOA_FD_SET(server_s, &block_read_fdset); /* server always set */ + } + + req_timeout.tv_sec = (request_ready ? 0 : + (ka_timeout ? ka_timeout : REQUEST_TIMEOUT)); + req_timeout.tv_usec = 0l; /* reset timeout */ + + if (select(max_fd + 1, &block_read_fdset, + &block_write_fdset, NULL, + (request_ready || request_block ? &req_timeout : NULL)) == -1) { + /* what is the appropriate thing to do here on EBADF */ + if (errno == EINTR) + continue; /* while(1) */ + else if (errno != EBADF) { + DIE("select"); + } + } + + time(¤t_time); + if (FD_ISSET(server_s, &block_read_fdset)) + pending_requests = 1; + } +} + +/* + * Name: fdset_update + * + * Description: iterate through the blocked requests, checking whether + * that file descriptor has been set by select. Update the fd_set to + * reflect current status. + * + * Here, we need to do some things: + * - keepalive timeouts simply close + * (this is special:: a keepalive timeout is a timeout where + keepalive is active but nothing has been read yet) + * - regular timeouts close + error + * - stuff in buffer and fd ready? write it out + * - fd ready for other actions? do them + */ + +static void fdset_update(void) +{ + request *current, *next; + + for(current = request_block;current;current = next) { + time_t time_since = current_time - current->time_last; + next = current->next; + + /* hmm, what if we are in "the middle" of a request and not + * just waiting for a new one... perhaps check to see if anything + * has been read via header position, etc... */ + if (current->kacount < ka_max && /* we *are* in a keepalive */ + (time_since >= ka_timeout) && /* ka timeout */ + !current->logline) /* haven't read anything yet */ + current->status = DEAD; /* connection keepalive timed out */ + else if (time_since > REQUEST_TIMEOUT) { + log_error_doc(current); + fputs("connection timed out\n", stderr); + current->status = DEAD; + } + if (current->buffer_end && current->status < DEAD) { + if (FD_ISSET(current->fd, &block_write_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->fd, &block_write_fdset); + } + } else { + switch (current->status) { + case WRITE: + case PIPE_WRITE: + if (FD_ISSET(current->fd, &block_write_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->fd, &block_write_fdset); + } + break; + case BODY_WRITE: + if (FD_ISSET(current->post_data_fd, &block_write_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->post_data_fd, &block_write_fdset); + } + break; + case PIPE_READ: + if (FD_ISSET(current->data_fd, &block_read_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->data_fd, &block_read_fdset); + } + break; + case DONE: + if (FD_ISSET(current->fd, &block_write_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->fd, &block_write_fdset); + } + break; + case DEAD: + ready_request(current); + break; + default: + if (FD_ISSET(current->fd, &block_read_fdset)) + ready_request(current); + else { + BOA_FD_SET(current->fd, &block_read_fdset); + } + break; + } + } + current = next; + } +} + diff --git a/3rdPartner/boa-0.94.13/src/select.o b/3rdPartner/boa-0.94.13/src/select.o new file mode 100644 index 0000000..d067bc0 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/select.o differ diff --git a/3rdPartner/boa-0.94.13/src/signals.c b/3rdPartner/boa-0.94.13/src/signals.c new file mode 100644 index 0000000..f38dfb8 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/signals.c @@ -0,0 +1,231 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996 Larry Doolittle + * Some changes Copyright (C) 1996-99 Jon Nelson + * Some changes Copyright (C) 1997 Alain Magloire + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: signals.c,v 1.37.2.2 2002/07/23 16:03:41 jnelson Exp $*/ + +#include "boa.h" +#ifdef HAVE_SYS_WAIT_H +#include /* wait */ +#endif +#include /* signal */ + +sigjmp_buf env; +int handle_sigbus; + +void sigsegv(int); +void sigbus(int); +void sigterm(int); +void sighup(int); +void sigint(int); +void sigchld(int); +void sigalrm(int); + +/* + * Name: init_signals + * Description: Sets up signal handlers for all our friends. + */ + +void init_signals(void) +{ + struct sigaction sa; + + sa.sa_flags = 0; + + sigemptyset(&sa.sa_mask); + sigaddset(&sa.sa_mask, SIGSEGV); + sigaddset(&sa.sa_mask, SIGBUS); + sigaddset(&sa.sa_mask, SIGTERM); + sigaddset(&sa.sa_mask, SIGHUP); + sigaddset(&sa.sa_mask, SIGINT); + sigaddset(&sa.sa_mask, SIGPIPE); + sigaddset(&sa.sa_mask, SIGCHLD); + sigaddset(&sa.sa_mask, SIGALRM); + sigaddset(&sa.sa_mask, SIGUSR1); + sigaddset(&sa.sa_mask, SIGUSR2); + + sa.sa_handler = sigsegv; + sigaction(SIGSEGV, &sa, NULL); + + sa.sa_handler = sigbus; + sigaction(SIGBUS, &sa, NULL); + + sa.sa_handler = sigterm; + sigaction(SIGTERM, &sa, NULL); + + sa.sa_handler = sighup; + sigaction(SIGHUP, &sa, NULL); + + sa.sa_handler = sigint; + sigaction(SIGINT, &sa, NULL); + + sa.sa_handler = SIG_IGN; + sigaction(SIGPIPE, &sa, NULL); + + sa.sa_handler = sigchld; + sigaction(SIGCHLD, &sa, NULL); + + sa.sa_handler = sigalrm; + sigaction(SIGALRM, &sa, NULL); + + sa.sa_handler = SIG_IGN; + sigaction(SIGUSR1, &sa, NULL); + + sa.sa_handler = SIG_IGN; + sigaction(SIGUSR2, &sa, NULL); +} + +void sigsegv(int dummy) +{ + time(¤t_time); + log_error_time(); + fprintf(stderr, "caught SIGSEGV, dumping core in %s\n", tempdir); + fclose(stderr); + chdir(tempdir); + abort(); +} + +extern sigjmp_buf env; +extern int handle_sigbus; + +void sigbus(int dummy) +{ + if (handle_sigbus) { + longjmp(env, dummy); + } + time(¤t_time); + log_error_time(); + fprintf(stderr, "caught SIGBUS, dumping core in %s\n", tempdir); + fclose(stderr); + chdir(tempdir); + abort(); +} + +void sigterm(int dummy) +{ + sigterm_flag = 1; +} + +void sigterm_stage1_run(int server_s) /* lame duck mode */ +{ + time(¤t_time); + log_error_time(); + fputs("caught SIGTERM, starting shutdown\n", stderr); + FD_CLR(server_s, &block_read_fdset); + close(server_s); + sigterm_flag = 2; +} + +void sigterm_stage2_run() /* lame duck mode */ +{ + log_error_time(); + fprintf(stderr, + "exiting Boa normally (uptime %d seconds)\n", + (int) (current_time - start_time)); + chdir(tempdir); + clear_common_env(); + dump_mime(); + dump_passwd(); + dump_alias(); + free_requests(); + exit(0); +} + + +void sighup(int dummy) +{ + sighup_flag = 1; +} + +void sighup_run(void) +{ + sighup_flag = 0; + time(¤t_time); + log_error_time(); + fputs("caught SIGHUP, restarting\n", stderr); + + /* Philosophy change for 0.92: don't close and attempt reopen of logfiles, + * since usual permission structure prevents such reopening. + */ + + FD_ZERO(&block_read_fdset); + FD_ZERO(&block_write_fdset); + /* clear_common_env(); NEVER DO THIS */ + dump_mime(); + dump_passwd(); + dump_alias(); + free_requests(); + + log_error_time(); + fputs("re-reading configuration files\n", stderr); + read_config_files(); + + log_error_time(); + fputs("successful restart\n", stderr); + +} + +void sigint(int dummy) +{ + time(¤t_time); + log_error_time(); + fputs("caught SIGINT: shutting down\n", stderr); + fclose(stderr); + chdir(tempdir); + exit(1); +} + +void sigchld(int dummy) +{ + sigchld_flag = 1; +} + +void sigchld_run(void) +{ + int status; + pid_t pid; + + sigchld_flag = 0; + + while ((pid = waitpid(-1, &status, WNOHANG)) > 0) + if (verbose_cgi_logs) { + time(¤t_time); + log_error_time(); + fprintf(stderr, "reaping child %d: status %d\n", (int) pid, status); + } + return; +} + +void sigalrm(int dummy) +{ + sigalrm_flag = 1; +} + +void sigalrm_run(void) +{ + time(¤t_time); + log_error_time(); + fprintf(stderr, "%ld requests, %ld errors\n", + status.requests, status.errors); + show_hash_stats(); + sigalrm_flag = 0; +} diff --git a/3rdPartner/boa-0.94.13/src/signals.o b/3rdPartner/boa-0.94.13/src/signals.o new file mode 100644 index 0000000..caa6fc9 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/signals.o differ diff --git a/3rdPartner/boa-0.94.13/src/sublog.c b/3rdPartner/boa-0.94.13/src/sublog.c new file mode 100644 index 0000000..f580bcc --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/sublog.c @@ -0,0 +1,143 @@ +/* + * Boa, an http server + * Copyright (C) 1999 Larry Doolittle + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: sublog.c,v 1.6 2002/03/24 22:40:31 jnelson Exp $*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int open_pipe_fd(char *command); +int open_net_fd(char *spec); +int open_gen_fd(char *spec); + +/* Like popen, but gives fd instead of FILE * */ +int open_pipe_fd(char *command) +{ + int pipe_fds[2]; + int pid; + /* "man pipe" says "filedes[0] is for reading, + * filedes[1] is for writing. */ + if (pipe(pipe_fds) == -1) + return -1; + pid = fork(); + if (pid == 0) { /* child */ + close(pipe_fds[1]); + if (pipe_fds[0] != 0) { + dup2(pipe_fds[0], 0); + close(pipe_fds[0]); + } + execl("/bin/sh", "sh", "-c", command, (char *) 0); + exit(127); + } + close(pipe_fds[0]); + if (pid < 0) { + close(pipe_fds[1]); + return -1; + } + return pipe_fds[1]; +} + +int open_net_fd(char *spec) +{ + char *p; + int fd, port; + struct sockaddr_in sa; + struct hostent *he; + p = strchr(spec, ':'); + if (!p) + return -1; + *p++ = '\0'; + port = strtol(p, NULL, 10); + /* printf("Host %s, port %d\n",spec,port); */ + sa.sin_family = AF_INET; + sa.sin_port = htons(port); + he = gethostbyname(spec); + if (!he) { + herror("open_net_fd"); + return -1; + } + memcpy(&sa.sin_addr, he->h_addr, he->h_length); + /* printf("using ip %s\n",inet_ntoa(sa.sin_addr)); */ + fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (fd < 0) + return fd; + if (connect(fd, (struct sockaddr *) &sa, sizeof (sa)) < 0) + return -1; + return fd; +} + +int open_gen_fd(char *spec) +{ + int fd; + if (*spec == '|') { + fd = open_pipe_fd(spec + 1); + } else if (*spec == ':') { + fd = open_net_fd(spec + 1); + } else { + fd = open(spec, + O_WRONLY | O_CREAT | O_APPEND, + S_IRUSR | S_IWUSR | S_IROTH | S_IRGRP); + } + return fd; +} + +#ifdef STANDALONE_TEST +int main(int argc, char *argv[]) +{ + char buff[1024]; + int fd, nr, nw; + if (argc < 2) { + fprintf(stderr, + "usage: %s output-filename\n" + " %s |output-command\n" + " %s :host:port\n", argv[0], argv[0], argv[0]); + return 1; + } + fd = open_gen_fd(argv[1]); + if (fd < 0) { + perror("open_gen_fd"); + exit(1); + } + while ((nr = read(0, buff, sizeof (buff))) != 0) { + if (nr < 0) { + if (errno == EINTR) + continue; + perror("read"); + exit(1); + } + nw = write(fd, buff, nr); + if (nw < 0) { + perror("write"); + exit(1); + } + } + return 0; +} +#endif diff --git a/3rdPartner/boa-0.94.13/src/sublog.o b/3rdPartner/boa-0.94.13/src/sublog.o new file mode 100644 index 0000000..98e6faa Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/sublog.o differ diff --git a/3rdPartner/boa-0.94.13/src/timestamp.c b/3rdPartner/boa-0.94.13/src/timestamp.c new file mode 100644 index 0000000..3e7f068 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/timestamp.c @@ -0,0 +1,34 @@ +/* + * Boa, an http server + * Copyright (C) 1998 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: timestamp.c,v 1.9 2001/11/06 03:38:50 jnelson Exp $*/ + +#include "boa.h" + +void timestamp(void) +{ + log_error_time(); + fprintf(stderr, "boa: server version %s\n", SERVER_VERSION); + log_error_time(); + fprintf(stderr, "boa: server built " __DATE__ " at " __TIME__ ".\n"); + log_error_time(); + fprintf(stderr, "boa: starting server pid=%d, port %d\n", + (int) getpid(), server_port); +} diff --git a/3rdPartner/boa-0.94.13/src/timestamp.o b/3rdPartner/boa-0.94.13/src/timestamp.o new file mode 100644 index 0000000..b4abe40 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/timestamp.o differ diff --git a/3rdPartner/boa-0.94.13/src/util.c b/3rdPartner/boa-0.94.13/src/util.c new file mode 100644 index 0000000..6007996 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/util.c @@ -0,0 +1,555 @@ +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * Some changes Copyright (C) 1996,97 Larry Doolittle + * Some changes Copyright (C) 1996 Charles F. Randall + * Some changes Copyright (C) 1996-99 Jon Nelson + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: util.c,v 1.61.2.3 2002/07/07 23:22:18 jnelson Exp $ */ + +#include "boa.h" + +#define HEX_TO_DECIMAL(char1, char2) \ + (((char1 >= 'A') ? (((char1 & 0xdf) - 'A') + 10) : (char1 - '0')) * 16) + \ + (((char2 >= 'A') ? (((char2 & 0xdf) - 'A') + 10) : (char2 - '0'))) + +const char month_tab[48] = + "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec "; +const char day_tab[] = "Sun,Mon,Tue,Wed,Thu,Fri,Sat,"; + +/* + * Name: clean_pathname + * + * Description: Replaces unsafe/incorrect instances of: + * //[...] with / + * /./ with / + * /../ with / (technically not what we want, but browsers should deal + * with this, not servers) + */ + +void clean_pathname(char *pathname) +{ + char *cleanpath, c; + + cleanpath = pathname; + while ((c = *pathname++)) { + if (c == '/') { + while (1) { + if (*pathname == '/') + pathname++; + else if (*pathname == '.' && *(pathname + 1) == '/') + pathname += 2; + else if (*pathname == '.' && *(pathname + 1) == '.' && + *(pathname + 2) == '/') { + pathname += 3; + } else + break; + } + c = '/'; + } + *cleanpath++ = c; + } + + *cleanpath = '\0'; +} + +/* + * Name: get_commonlog_time + * + * Description: Returns the current time in common log format in a static + * char buffer. + * + * commonlog time is exactly 25 characters long + * because this is only used in logging, we add " [" before and "] " after + * making 29 characters + * "[27/Feb/1998:20:20:04 +0000] " + * + * Constrast with rfc822 time: + * "Sun, 06 Nov 1994 08:49:37 GMT" + * + * Altered 10 Jan 2000 by Jon Nelson ala Drew Streib for non UTC logging + * + */ + +char *get_commonlog_time(void) +{ + struct tm *t; + char *p; + unsigned int a; + static char buf[30]; + int time_offset; + + if (use_localtime) { + t = localtime(¤t_time); + time_offset = TIMEZONE_OFFSET(t); + } else { + t = gmtime(¤t_time); + time_offset = 0; + } + + p = buf + 29; + *p-- = '\0'; + *p-- = ' '; + *p-- = ']'; + a = abs(time_offset / 60); + *p-- = '0' + a % 10; + a /= 10; + *p-- = '0' + a % 6; + a /= 6; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = (time_offset >= 0) ? '+' : '-'; + *p-- = ' '; + + a = t->tm_sec; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ':'; + a = t->tm_min; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ':'; + a = t->tm_hour; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ':'; + a = 1900 + t->tm_year; + while (a) { + *p-- = '0' + a % 10; + a /= 10; + } + /* p points to an unused spot */ + *p-- = '/'; + p -= 2; + memcpy(p--, month_tab + 4 * (t->tm_mon), 3); + *p-- = '/'; + a = t->tm_mday; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p = '['; + return p; /* should be same as returning buf */ +} + +/* + * Name: month2int + * + * Description: Turns a three letter month into a 0-11 int + * + * Note: This function is from wn-v1.07 -- it's clever and fast + */ + +int month2int(char *monthname) +{ + switch (*monthname) { + case 'A': + return (*++monthname == 'p' ? 3 : 7); + case 'D': + return (11); + case 'F': + return (1); + case 'J': + if (*++monthname == 'a') + return (0); + return (*++monthname == 'n' ? 5 : 6); + case 'M': + return (*(monthname + 2) == 'r' ? 2 : 4); + case 'N': + return (10); + case 'O': + return (9); + case 'S': + return (8); + default: + return (-1); + } +} + +/* + * Name: modified_since + * Description: Decides whether a file's mtime is newer than the + * If-Modified-Since header of a request. + * + + Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 + Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 + Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format + 31 September 2000 23:59:59 GMT ; non-standard + + * RETURN VALUES: + * 0: File has not been modified since specified time. + * 1: File has been. + * -1: Error! + */ + +int modified_since(time_t * mtime, char *if_modified_since) +{ + struct tm *file_gmt; + char *ims_info; + char monthname[10 + 1]; + int day, month, year, hour, minute, second; + int comp; + + ims_info = if_modified_since; + while (*ims_info != ' ' && *ims_info != '\0') + ++ims_info; + if (*ims_info != ' ') + return -1; + + /* the pre-space in the third scanf skips whitespace for the string */ + if (sscanf(ims_info, "%d %3s %d %d:%d:%d GMT", /* RFC 1123 */ + &day, monthname, &year, &hour, &minute, &second) == 6); + else if (sscanf(ims_info, "%d-%3s-%d %d:%d:%d GMT", /* RFC 1036 */ + &day, monthname, &year, &hour, &minute, &second) == 6) + year += 1900; + else if (sscanf(ims_info, " %3s %d %d:%d:%d %d", /* asctime() format */ + monthname, &day, &hour, &minute, &second, &year) == 6); + /* allow this non-standard date format: 31 September 2000 23:59:59 GMT */ + /* NOTE: Use if_modified_since here, because the date *starts* + * with the day, versus a throwaway item + */ + else if (sscanf(if_modified_since, "%d %10s %d %d:%d:%d GMT", + &day, monthname, &year, &hour, &minute, &second) == 6); + else { + log_error_time(); + fprintf(stderr, "Error in %s, line %d: Unable to sscanf \"%s\"\n", + __FILE__, __LINE__, ims_info); + return -1; /* error */ + } + + file_gmt = gmtime(mtime); + month = month2int(monthname); + + /* Go through from years to seconds -- if they are ever unequal, + we know which one is newer and can return */ + + if ((comp = 1900 + file_gmt->tm_year - year)) + return (comp > 0); + if ((comp = file_gmt->tm_mon - month)) + return (comp > 0); + if ((comp = file_gmt->tm_mday - day)) + return (comp > 0); + if ((comp = file_gmt->tm_hour - hour)) + return (comp > 0); + if ((comp = file_gmt->tm_min - minute)) + return (comp > 0); + if ((comp = file_gmt->tm_sec - second)) + return (comp > 0); + + return 0; /* this person must really be into the latest/greatest */ +} + + +/* + * Name: to_upper + * + * Description: Turns a string into all upper case (for HTTP_ header forming) + * AND changes - into _ + */ + +char *to_upper(char *str) +{ + char *start = str; + + while (*str) { + if (*str == '-') + *str = '_'; + else + *str = toupper(*str); + + str++; + } + + return start; +} + +/* + * Name: unescape_uri + * + * Description: Decodes a uri, changing %xx encodings with the actual + * character. The query_string should already be gone. + * + * Return values: + * 1: success + * 0: illegal string + */ + +int unescape_uri(char *uri, char ** query_string) +{ + char c, d; + char *uri_old; + + uri_old = uri; + + while ((c = *uri_old)) { + if (c == '%') { + uri_old++; + if ((c = *uri_old++) && (d = *uri_old++)) + *uri++ = HEX_TO_DECIMAL(c, d); + else + return 0; /* NULL in chars to be decoded */ + } else if (c == '?') { /* query string */ + if (query_string) + *query_string = ++uri_old; + /* stop here */ + *uri = '\0'; + return(1); + break; + } else if (c == '#') { /* fragment */ + /* legal part of URL, but we do *not* care. + * However, we still have to look for the query string */ + if (query_string) { + ++uri_old; + while((c = *uri_old)) { + if (c == '?') { + *query_string = ++uri_old; + break; + } + ++uri_old; + } + } + break; + } else { + *uri++ = c; + uri_old++; + } + } + + *uri = '\0'; + return 1; +} + +/* rfc822 (1123) time is exactly 29 characters long + * "Sun, 06 Nov 1994 08:49:37 GMT" + */ + +void rfc822_time_buf(char *buf, time_t s) +{ + struct tm *t; + char *p; + unsigned int a; + + if (!s) { + t = gmtime(¤t_time); + } else + t = gmtime(&s); + + p = buf + 28; + /* p points to the last char in the buf */ + + p -= 3; + /* p points to where the ' ' will go */ + memcpy(p--, " GMT", 4); + + a = t->tm_sec; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ':'; + a = t->tm_min; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ':'; + a = t->tm_hour; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ' '; + a = 1900 + t->tm_year; + while (a) { + *p-- = '0' + a % 10; + a /= 10; + } + /* p points to an unused spot to where the space will go */ + p -= 3; + /* p points to where the first char of the month will go */ + memcpy(p--, month_tab + 4 * (t->tm_mon), 4); + *p-- = ' '; + a = t->tm_mday; + *p-- = '0' + a % 10; + *p-- = '0' + a / 10; + *p-- = ' '; + p -= 3; + memcpy(p, day_tab + t->tm_wday * 4, 4); +} + +char *simple_itoa(unsigned int i) +{ + /* 21 digits plus null terminator, good for 64-bit or smaller ints + * for bigger ints, use a bigger buffer! + * + * 4294967295 is, incidentally, MAX_UINT (on 32bit systems at this time) + * and is 10 bytes long + */ + static char local[22]; + char *p = &local[21]; + *p-- = '\0'; + do { + *p-- = '0' + i % 10; + i /= 10; + } while (i > 0); + return p + 1; +} + +/* I don't "do" negative conversions + * Therefore, -1 indicates error + */ + +int boa_atoi(char *s) +{ + int retval; + char *reconv; + + if (!isdigit(*s)) + return -1; + + retval = atoi(s); + if (retval < 0) + return -1; + + reconv = simple_itoa(retval); + if (memcmp(s,reconv,strlen(s)) != 0) { + return -1; + } + return retval; +} + +int create_temporary_file(short want_unlink, char *storage, int size) +{ + static char boa_tempfile[MAX_PATH_LENGTH + 1]; + int fd; + + snprintf(boa_tempfile, MAX_PATH_LENGTH, + "%s/boa-temp.XXXXXX", tempdir); + + /* open temp file */ + fd = mkstemp(boa_tempfile); + if (fd == -1) { + log_error_time(); + perror("mkstemp"); + return 0; + } + + if (storage != NULL) { + int len = strlen(boa_tempfile); + + if (len < size) { + memcpy(storage, boa_tempfile, len + 1); + } else { + close(fd); + fd = 0; + log_error_time(); + fprintf(stderr, "not enough memory for memcpy in storage\n"); + want_unlink = 1; + } + } + + if (want_unlink) { + if (unlink(boa_tempfile) == -1) { + close(fd); + fd = 0; + log_error_time(); + fprintf(stderr, "unlink temp file\n"); + } + } + + return (fd); +} + +/* + * Name: normalize_path + * + * Description: Makes sure relative paths are made absolute + * + */ + +#define DIRBUF_SIZE MAX_PATH_LENGTH * 2 + 1 +char * normalize_path(char *path) +{ + char dirbuf[DIRBUF_SIZE]; + int len1, len2; + char *endpath; + + if (path[0] == '/') { + endpath = strdup(path); + } else { + +#ifndef HAVE_GETCWD + perror("boa: getcwd() not defined. Aborting."); + exit(1); +#endif + if (getcwd(dirbuf, DIRBUF_SIZE) == NULL) { + if (errno == ERANGE) + perror + ("boa: getcwd() failed - unable to get working directory. " + "Aborting."); + else if (errno == EACCES) + perror("boa: getcwd() failed - No read access in current " + "directory. Aborting."); + else + perror("boa: getcwd() failed - unknown error. Aborting."); + exit(1); + } + + /* OK, now the hard part. */ + len1 = strlen(dirbuf); + len2 = strlen(path); + if (len1 + len2 > MAX_PATH_LENGTH * 2) { + perror("boa: eek. unable to normalize pathname"); + exit(1); + } + if (strcmp(path,".") != 0) { + memcpy(dirbuf + len1, "/", 1); + memcpy(dirbuf + len1 + 1, path, len2 + 1); + } + /* fprintf(stderr, "boa: normalize gets \"%s\"\n", dirbuf); */ + + endpath = strdup(dirbuf); + } + + if (endpath == NULL) { + fprintf(stderr, + "boa: Cannot strdup path. Aborting.\n"); + exit(1); + } + return endpath; +} + +int real_set_block_fd(int fd) +{ + int flags; + + flags = fcntl(fd, F_GETFL); + if (flags == -1) + return -1; + + flags &= ~O_NONBLOCK; + flags = fcntl(fd, F_SETFL, flags); + return flags; +} + +int real_set_nonblock_fd(int fd) +{ + int flags; + + flags = fcntl(fd, F_GETFL); + if (flags == -1) + return -1; + + flags |= O_NONBLOCK; + flags = fcntl(fd, F_SETFL, flags); + return flags; +} diff --git a/3rdPartner/boa-0.94.13/src/util.o b/3rdPartner/boa-0.94.13/src/util.o new file mode 100644 index 0000000..0c32a0d Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/util.o differ diff --git a/3rdPartner/boa-0.94.13/src/webindex.pl b/3rdPartner/boa-0.94.13/src/webindex.pl new file mode 100644 index 0000000..506329c --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/webindex.pl @@ -0,0 +1,119 @@ +#!/usr/bin/perl + +# webindex, a world wide web directory generating program +# Copyright (C) 1997 Larry Doolittle +# +# 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + +# likely future additions: +# incorporate user-supplied README files +# use config file to supply icons +# other formats and sort options, including one giving dates +# more robust handling of GCOS field +# nicer date format in footer + +# usable as it stands, 11-Feb-1997 lrd +# $Id: webindex.pl,v 1.2 1999/10/12 14:49:08 jon Exp $ + + +# *****configure me****** +$index="INDEX.html"; +# ^^^^^^^^^^ +# The line above defines the output file name from webindex. +# You should make sure it lines up with the configuration of +# the web server on your system, i.e., the DirectoryIndex +# directive in NCSA, Apache, or Boa. + +$magic="This file is unmodified webindex output"; + +($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) + =getpwuid($<); + +# Title of the page - there is no unique mapping from the unix +# filename to URL space. Take an easy way out and just give +# the name of the directory. +# Even this can be confused, look what happens if user joe +# makes a public_html/foo directory, and runs webindex on it. +# Now user bill makes a symbolic link from his public_html/bar +# ~joe/public_html/foo. This directory now has two URLs, +# http://some.server/~joe/foo/ and http://some.server/~bill/bar/ . +# The name that we generate is foo, which is only half right :-( + +@A=split("/",`pwd`); +$here=pop(@A); + +# We will happily create a new $index file, or overwrite +# one if it has the magic comment in it. We won't overwrite +# a carefully hand-crafted one, though. + +if (open CHK,"<$index") { + while () { + last if ($found = / $magic /); + } + close(CHK); + die "existing $index not overwritten" if (!$found); +} + +opendir DIR, "." || die "opendir"; +open OUT,">$index" || die "fopen"; + +print OUT "\nIndex of $here\n\n\n"; + +# This comment syntax should be compatible with all HTML versions +print OUT "\n"; + +print OUT "\n\n

Index of $here

\n\n"; + +@A=sort(readdir(DIR)); + +print OUT "

Directories

\n
    \n"; +print OUT "
  • Parent Directory\n"; +for $a (@A) { + next if ($a eq "."); + next if ($a eq ".."); + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = stat($a); + if ( -d _) { + print OUT "
  • $a\n"; + } +} +print OUT "
\n"; + +$found=0; +for $a (@A) { + next if ($a eq "."); + next if ($a eq ".."); + next if ($a eq $index); + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = stat($a); + if (! -d _) { + if (!$found) { + $found=1; + print OUT "

Files

    \n"; + } + print OUT "
  • $a ($size bytes)\n"; + } +} +print OUT "
\n" if $found; + +closedir(DIR); +$now=localtime(); +($who)=split(/,/,$gcos); +print OUT "
Index created by $who + with webindex at $now
\n"; + +print OUT "\n\n"; + +close OUT; diff --git a/3rdPartner/boa-0.94.13/src/y.tab.c b/3rdPartner/boa-0.94.13/src/y.tab.c new file mode 100644 index 0000000..a6c2ba9 --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/y.tab.c @@ -0,0 +1,1550 @@ +/* A Bison parser, made by GNU Bison 3.0.4. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + + 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 3 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, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.4" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + + + +/* Copy the first part of user declarations. */ +#line 1 "boa_grammar.y" /* yacc.c:339 */ + + +/* + * Boa, an http server + * Copyright (C) 1995 Paul Phillips + * + * 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* $Id: boa_grammar.y,v 1.14 1999/10/12 14:49:07 jon Exp $*/ + +#include +#include +#include +#include +/* #include "boa.h" */ +#include "parse.h" + +int yyerror(char * msg); + +/* yydebug = 1; */ + +#ifdef DEBUG +#define DBG(x) x +#else +#define DBG(x) +#endif + +char *arg1hold; +char mime_type[256]; /* global to inherit */ + + +#line 112 "y.tab.c" /* yacc.c:339 */ + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "y.tab.h". */ +#ifndef YY_YY_Y_TAB_H_INCLUDED +# define YY_YY_Y_TAB_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + STMT_NO_ARGS = 258, + STMT_ONE_ARG = 259, + STMT_TWO_ARGS = 260, + MIMETYPE = 261, + STRING = 262, + INTEGER = 263 + }; +#endif +/* Tokens. */ +#define STMT_NO_ARGS 258 +#define STMT_ONE_ARG 259 +#define STMT_TWO_ARGS 260 +#define MIMETYPE 261 +#define STRING 262 +#define INTEGER 263 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + +union YYSTYPE +{ +#line 47 "boa_grammar.y" /* yacc.c:355 */ + + char * sval; + int ival; + struct ccommand * cval; + +#line 174 "y.tab.c" /* yacc.c:355 */ +}; + +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_Y_TAB_H_INCLUDED */ + +/* Copy the second part of user declarations. */ + +#line 191 "y.tab.c" /* yacc.c:358 */ + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 3 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 11 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 9 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 13 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 18 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 22 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 263 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint8 yyrline[] = +{ + 0, 65, 65, 68, 69, 73, 74, 75, 78, 86, + 95, 94, 109, 110, 114, 113, 118, 119, 122 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "STMT_NO_ARGS", "STMT_ONE_ARG", + "STMT_TWO_ARGS", "MIMETYPE", "STRING", "INTEGER", "$accept", + "ConfigFiles", "BoaConfigStmts", "BoaConfigStmt", "StmtNoArgs", + "StmtOneArg", "StmtTwoArgs", "$@1", "MimeTypeStmts", "MimeTypeStmt", + "$@2", "ExtensionList", "Extension", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263 +}; +# endif + +#define YYPACT_NINF -4 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-4))) + +#define YYTABLE_NINF -1 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int8 yypact[] = +{ + -4, 3, -3, -4, -4, -2, -1, -4, -4, -4, + -4, 1, -4, -4, -4, -4, 2, -4, -4, 4, + -4, -4 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 4, 0, 13, 1, 8, 0, 0, 3, 5, 6, + 7, 2, 9, 10, 14, 12, 0, 17, 11, 15, + 18, 16 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int8 yypgoto[] = +{ + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, -4 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int8 yydefgoto[] = +{ + -1, 1, 2, 7, 8, 9, 10, 16, 11, 15, + 17, 19, 21 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_uint8 yytable[] = +{ + 4, 5, 6, 3, 0, 12, 13, 14, 0, 18, + 0, 20 +}; + +static const yytype_int8 yycheck[] = +{ + 3, 4, 5, 0, -1, 7, 7, 6, -1, 7, + -1, 7 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 10, 11, 0, 3, 4, 5, 12, 13, 14, + 15, 17, 7, 7, 6, 18, 16, 19, 7, 20, + 7, 21 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 9, 10, 11, 11, 12, 12, 12, 13, 14, + 16, 15, 17, 17, 19, 18, 20, 20, 21 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 2, 2, 0, 1, 1, 1, 1, 2, + 0, 4, 2, 0, 0, 3, 2, 0, 1 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +{ + YYUSE (yyvaluep); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; +/* Number of syntax errors so far. */ +int yynerrs; + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (void) +{ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 8: +#line 79 "boa_grammar.y" /* yacc.c:1646 */ + { if ((yyvsp[0].cval)->action) { + DBG(printf("StmtNoArgs: %s\n",(yyvsp[0].cval)->name);) + (yyvsp[0].cval)->action(NULL,NULL,(yyvsp[0].cval)->object); + } + } +#line 1277 "y.tab.c" /* yacc.c:1646 */ + break; + + case 9: +#line 87 "boa_grammar.y" /* yacc.c:1646 */ + { if ((yyvsp[-1].cval)->action) { + DBG(printf("StmtOneArg: %s %s\n",(yyvsp[-1].cval)->name,(yyvsp[0].sval));) + (yyvsp[-1].cval)->action((yyvsp[0].sval),NULL,(yyvsp[-1].cval)->object); + } + } +#line 1287 "y.tab.c" /* yacc.c:1646 */ + break; + + case 10: +#line 95 "boa_grammar.y" /* yacc.c:1646 */ + { arg1hold = strdup((yyvsp[0].sval)); } +#line 1293 "y.tab.c" /* yacc.c:1646 */ + break; + + case 11: +#line 97 "boa_grammar.y" /* yacc.c:1646 */ + { if ((yyvsp[-3].cval)->action) { + DBG(printf("StmtTwoArgs: '%s' '%s' '%s'\n", + (yyvsp[-3].cval)->name,arg1hold,(yyvsp[0].sval));) + (yyvsp[-3].cval)->action((yyvsp[0].sval),arg1hold,(yyvsp[-3].cval)->object); + } + free(arg1hold); + } +#line 1305 "y.tab.c" /* yacc.c:1646 */ + break; + + case 14: +#line 114 "boa_grammar.y" /* yacc.c:1646 */ + { strcpy(mime_type, (yyvsp[0].sval)); } +#line 1311 "y.tab.c" /* yacc.c:1646 */ + break; + + case 18: +#line 123 "boa_grammar.y" /* yacc.c:1646 */ + { add_mime_type((yyvsp[0].sval), mime_type); } +#line 1317 "y.tab.c" /* yacc.c:1646 */ + break; + + +#line 1321 "y.tab.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} +#line 126 "boa_grammar.y" /* yacc.c:1906 */ + + diff --git a/3rdPartner/boa-0.94.13/src/y.tab.h b/3rdPartner/boa-0.94.13/src/y.tab.h new file mode 100644 index 0000000..f12bafe --- /dev/null +++ b/3rdPartner/boa-0.94.13/src/y.tab.h @@ -0,0 +1,88 @@ +/* A Bison parser, made by GNU Bison 3.0.4. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + + 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 3 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, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_YY_Y_TAB_H_INCLUDED +# define YY_YY_Y_TAB_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + STMT_NO_ARGS = 258, + STMT_ONE_ARG = 259, + STMT_TWO_ARGS = 260, + MIMETYPE = 261, + STRING = 262, + INTEGER = 263 + }; +#endif +/* Tokens. */ +#define STMT_NO_ARGS 258 +#define STMT_ONE_ARG 259 +#define STMT_TWO_ARGS 260 +#define MIMETYPE 261 +#define STRING 262 +#define INTEGER 263 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + +union YYSTYPE +{ +#line 47 "boa_grammar.y" /* yacc.c:1909 */ + + char * sval; + int ival; + struct ccommand * cval; + +#line 76 "y.tab.h" /* yacc.c:1909 */ +}; + +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_Y_TAB_H_INCLUDED */ diff --git a/3rdPartner/boa-0.94.13/src/y.tab.o b/3rdPartner/boa-0.94.13/src/y.tab.o new file mode 100644 index 0000000..9b8e3e7 Binary files /dev/null and b/3rdPartner/boa-0.94.13/src/y.tab.o differ diff --git a/3rdPartner/cgic-master.zip b/3rdPartner/cgic-master.zip new file mode 100644 index 0000000..0ab8df4 Binary files /dev/null and b/3rdPartner/cgic-master.zip differ diff --git a/3rdPartner/cgic-master/.gitignore b/3rdPartner/cgic-master/.gitignore new file mode 100644 index 0000000..976cd80 --- /dev/null +++ b/3rdPartner/cgic-master/.gitignore @@ -0,0 +1,5 @@ +*.a +*.o +*.cgi +capture +cgicunittest diff --git a/3rdPartner/cgic-master/Makefile b/3rdPartner/cgic-master/Makefile new file mode 100644 index 0000000..1085a04 --- /dev/null +++ b/3rdPartner/cgic-master/Makefile @@ -0,0 +1,32 @@ +CFLAGS=-g -Wall -shared -fPIC +CC=gcc +AR=ar +RANLIB=ranlib +LIBS=-L./ -lcgic + +all: libcgic.so cgictest.cgi capture + +install: libcgic.so + cp libcgic.so /usr/local/lib + cp cgic.h /usr/local/include + @echo libcgic.so is in /usr/local/lib. cgic.h is in /usr/local/include. + +libcgic.so: cgic.o cgic.h + rm -f libcgic.so + #$(AR) rc libcgic.a cgic.o + #$(RANLIB) libcgic.so + +#mingw32 and cygwin users: replace .cgi with .exe + +cgictest.cgi: cgictest.o libcgic.so + gcc cgictest.o -o cgictest.cgi ${LIBS} + +capture: capture.o libcgic.so + gcc capture.o -o capture ${LIBS} + +clean: + rm -f *.o *.so cgictest.cgi capture cgicunittest + +test: + gcc -D UNIT_TEST=1 cgic.c -o cgicunittest + ./cgicunittest diff --git a/3rdPartner/cgic-master/Makefile.static-lib b/3rdPartner/cgic-master/Makefile.static-lib new file mode 100644 index 0000000..8be64c3 --- /dev/null +++ b/3rdPartner/cgic-master/Makefile.static-lib @@ -0,0 +1,32 @@ +CFLAGS=-g -Wall +CC=gcc +AR=ar +RANLIB=ranlib +LIBS=-L./ -lcgic + +all: libcgic.a cgictest.cgi capture + +install: libcgic.a + cp libcgic.a /usr/local/lib + cp cgic.h /usr/local/include + @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include. + +libcgic.a: cgic.o cgic.h + rm -f libcgic.a + $(AR) rc libcgic.a cgic.o + $(RANLIB) libcgic.a + +#mingw32 and cygwin users: replace .cgi with .exe + +cgictest.cgi: cgictest.o libcgic.a + gcc cgictest.o -o cgictest.cgi ${LIBS} + +capture: capture.o libcgic.a + gcc capture.o -o capture ${LIBS} + +clean: + rm -f *.o *.a cgictest.cgi capture cgicunittest + +test: + gcc -D UNIT_TEST=1 cgic.c -o cgicunittest + ./cgicunittest diff --git a/3rdPartner/cgic-master/README.md b/3rdPartner/cgic-master/README.md new file mode 100644 index 0000000..a3663b4 --- /dev/null +++ b/3rdPartner/cgic-master/README.md @@ -0,0 +1,2119 @@ +

cgic 2.08: an ANSI C library for CGI Programming

+

By Thomas Boutell

+
+IMPORTANT NOTICES: +

+If you have CGIC 1.05 or earlier, you should upgrade to CGIC 1.07, +or to CGIC 2.02 or better, in order to obtain important security fixes. +

+If you have CGIC 2.0 or CGIC 2.01 and you use the cgiCookie routines, +you should upgrade to CGIC 2.02 or better, in order to obtain +important security fixes. +

+

Table of Contents

+ + +

Credits and License Terms

+ +

+cgic is now distributed under the MIT license: +

+

+Copyright (c) 1996-2020 Thomas Boutell +

+

+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +

+

+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +

+

+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +

+

+Thanks are due to Robert Gustavsson, Ken Holervich, Bob Nestor, +Jon Ribbens, Thomas Strangert, Wu Yongwei, and other CGIC users +who have corresponded over the years. Although the implementation +of multipart/form-data file upload support in CGIC 2.x is my own, +I particularly wish to thank those who submitted their own +implementations of this feature. +

+

What's new in version 2.08?

+Beginning with version 2.08, `cgic` offers more options when setting cookies. To enhance security, the following options can be used when setting a cookie: +
    +
  • Secure
  • +
  • HttpOnly
  • +
  • SameSite=Strict
  • +
+The new function +cgiHeaderCookieSet +allows you to set these options. The function +cgiHeaderCookieSetString +is kept for compability reasons. +

What's new in version 2.07?

+Per a suggestion by Geoff Mulligan, cgic now tolerates keys without a value in URL-encoded GET and POST submissions. Although the HTML5 spec discourages it, there are existing systems in the wild that do leave the `=` off entirely if the value is an empty string. Beginning with version 2.07, `cgic` handles this as you'd expect: you get an entry with the corresponding key and an empty string as the value. A simple unit test compilation target was also added, to test this feature and rule out side effects. +

What's new in version 2.06?

+A long list of significant fixes generously contributed by Jeffrey Hutzelman. + These are especially important on platforms where attempting to read beyong the content length stated by the request can lead to a deadlock. Please see the commit notes. +

What's new in version 2.05?

+Uploaded files properly closed; corrects a resource leak and enables +file uploads to work properly on platforms with particular file +locking semantics. +

What's new in version 2.04?

+Documentation fixes: the cgiHtmlEscape, cgiHtmlEscapeData, +cgiValueEscape, and cgiValueEscapeData routines were named +incorrectly in the manual. No code changes in version 2.04. +

What's new in version 2.03?

+
    +
  • Support for setting cookies has been reimplemented. The new +code closely follows the actual practice of web sites that successfully +use cookies, rather than attempting to implement the specification. +The new code can successfully set more than one cookie at a time in +typical web browsers. +
+

What's new in version 2.02?

+
    +
  • In CGIC 2.0 and 2.01, if the HTTP_COOKIE environment variable +was exactly equal to the name of a cookie requested with cgiCookieString, +with no value or equal sign or other characters present, a buffer +overrun could take place. This was not normal behavior and it is +unknown whether any actual web server would allow it to occur, however +we have of course released a patch to correct it. +Thanks to Nicolas Tomadakis. +
  • cgiCookieString returned cgiFormTruncated when cgiFormSuccess would +be appropriate. Fixed; thanks to Mathieu Villeneuve-Belair. +
  • Cookies are now set using a simpler Set-Cookie: header, and with +one header line per cookie, based on data collected by Chunfu Lai. +
  • Memory leaks in cgiReadEnvironment fixed by Merezko Oleg. These +memory leaks were not experienced in a normal CGI situation, only +when reading a saved CGI environment. +
+

What's new in version 2.01?

+
    +
  • Makefile supports "make install" +
  • Compiles without warnings under both C and C++ with strict +warnings and strict ANSI compliance enabled +
  • Builds out of the box on Windows (#include <fcntl.h> was needed) +
  • Rare problem in cgiReadEnvironment corrected; no impact on +normal CGI operations +
  • cgiCookieString now sets the result to an empty string +when returning cgiFormNotFound +
  • Minor code cleanups +
+

What's new in version 2.0?

+1. CGIC 2.0 provides support for file upload fields. User-uploaded +files are kept in temporary files, to avoid the use of +excessive swap space (Solaris users may wish to change the +cgicTempDir macro in cgic.c before compiling). +The cgiFormFileName, +cgiFormFileContentType, +cgiFormFileSize, +cgiFormFileOpen, +cgiFormFileRead, and +cgiFormFileClose functions +provide a complete interface to this new functionality. Remember, +the enctype attribute of the form tag +must be set to multipart/form-data when +<input type="file"> tags are used. +

+2. CGIC 2.0 provides support for setting and examining cookies +(persistent data storage on the browser side). +The cgiCookieString, +and cgiCookieInteger +and cgiCookies +functions retrieve cookies. The +cgiHeaderCookieSetString +and cgiHeaderCookieSetInteger functions set cookies. +

+3. CGIC 2.0 offers a convenient way to retrieve a list of all form fields. +The new cgiFormEntries +function performs this operation. +

+4. CGIC 2.0 provides convenience functions to correctly escape +text before outputting it as part of HTML, or as part of the +value of a tag attribute, such as the HREF or +VALUE attribute. See +cgiHtmlEscape, +cgiHtmlEscapeData, +cgiValueEscape and +cgiValueEscapeData. +

+5. Users have often asked the correct way to determine which submit +button was clicked. This could always be accomplished in previous versions, +but CGIC 2.0 also provides +cgiFormSubmitClicked, +a convenient alternate label for the +cgiFormCheckboxSingle function. +

What's new in version 1.07?

+A problem with the cgiFormString and related functions has been +corrected. These functions were previously incorrectly returning cgiFormTruncated +in cases where the returned string fit the buffer exactly. +

What's new in version 1.06?

+1. A potentially significant buffer overflow problem has been +corrected. Jon Ribbens correctly pointed out to me (and to the +Internet's bugtraq mailing list) that the cgiFormEntryString +function, which is used directly or indirectly by almost all +CGIC programs, can potentially write past the buffer passed +to it by the programmer. This bug has been corrected. +Upgrading to version 1.06 is strongly recommended. +

+2. The function cgiSaferSystem() has been +removed entirely. This function escaped only a few metacharacters, +while most shells have many, and there was no way to account for +the many different operating system shells that might be in use +on different operating systems. Since this led to a false sense +of security, the function has been removed. It is our recommendation +that user input should never be passed directly on the command line +unless it has been carefully shown to contain only characters +regarded as safe and appropriate by the programmer. Even then, it is +better to design your utilities to accept their input from standard +input rather than the command line. +

What's new in version 1.05?

+Non-exclusive commercial license fee reduced to $200. +

What's new in version 1.04?

+For consistency with other packages, the standard Makefile +now produces a true library for cgic (libcgic.a). +

What's new in version 1.03?

+Version 1.03 sends line feeds only (ascii 10) to end +Content-type:, Status:, and other HTTP protocol output lines, +instead of CR/LF sequences. The standard specifies CR/LF. +Unfortunately, too many servers reject CR/LF to make +implementation of that standard practical. No server +tested ever rejects LF alone in this context. +

What's new in version 1.02?

+Version 1.02 corrects bugs in previous versions: +
    +
  • +cgiFormDoubleBounded specified +its arguments in the wrong order, with surprising results. +This bug has been corrected. +
  • +Many small changes have been made to increase compatibility. +cgic now compiles with no warnings under the compilers +available at boutell.dev. +
+

What's new in version 1.01?

+Version 1.01 adds no major functionality but corrects +significant bugs and incompatibilities: +
    +
  • +cgiFormInteger, +cgiFormIntegerBounded, +cgiFormDouble and +cgiFormDoubleBounded now +accept negative numbers properly. They also accept positive +numbers with an explicit + sign. +
  • Hex values containing the digit 9 are +now properly decoded. +
  • cgiFormString now +represents each newline as a single line feed (ascii 10 decimal) +as described in the documentation, not a carriage return +(ascii 13 decimal) as in version 1.0. The latter approach +pleased no one. +
  • cgiFormString and +cgiFormStringNoNewlines +no longer erroneously return cgiFormEmpty in place of +cgiFormSuccess. +
  • The main() function of cgic now flushes standard output +and sleeps for one second before exiting in order to inhibit +problems with the completion of I/O on some platforms. This was +not a cgic bug per se, but has been reported as a common problem +with CGI when used with the CERN server. This change should +improve compatibility. +
  • The single selection example in the testform.html +example now works properly. This was an error in the +form itself, not cgic. +
  • cgiRemoteUser and +cgiRemoteIdent are now +documented accurately. They were reversed earlier. +
+

What is cgic?

+cgic is an ANSI C-language library for the creation of CGI-based +World Wide Web applications. For basic information about +the CGI standard, see the +CGI documentation at NCSA. +

+cgic performs the following tasks: +

    +
  • Parses form data, correcting for defective and/or inconsistent browsers +
  • Transparently accepts both GET and POST form data +
  • Accepts uploaded files as well as regular form fields +
  • Provides functions to set and retrieve "cookies" +(browser-side persistent information) +
  • Handles line breaks in form fields in a consistent manner +
  • Provides string, integer, floating-point, and single- and +multiple-choice functions to retrieve form data +
  • Provides bounds checking for numeric fields +
  • Loads CGI environment variables into C strings which are always non-null +
  • Provides a way to capture CGI situations for replay in a debugging +environment, including file uploads and cookies +
+

+cgic is compatible with any CGI-compliant server environment, and +compiles without modification in Posix/Unix/Linux and Windows +environments. +

Obtaining cgic

+cgic is distributed via the web in two forms: as a Windows-compatible +.ZIP file, and as a gzipped tar file. Most users of Windows and +related operating systems have access to 'unzip' or 'pkunzip'. All modern Unix +systems come with 'gunzip' and 'tar' as standard equipment, and gzip/gunzip +is not difficult to find if yours does not. Versions +of these programs for other operating systems are widely +available if you do not already have them. +

+Important: to use cgic, you will need an ANSI-standard +C compiler. Under Unix, just obtain and use gcc. Most Unix systems have +standardiszed on gcc. Users of Windows operating systems should not have +ANSI C-related problems as all of the popular compilers follow the ANSI +standard. +

+Note for Windows Programmers: you must use a modern +32-bit compiler. Visual C++ 2.0 or higher, Borland C++ and the +mingw32 gcc compiler are all appropriate, as is cygwin. Do +NOT use an ancient 16-bit DOS executable compiler, please. +

+

What Operating System Does Your WEB SERVER Run?

+Remember, the computer on your desk is usually NOT your web server. +Compiling a Windows console executable will not give you a CGI program that +can be installed on a Linux-based server. +
+Your web browser should inquire whether to save the file to disk +when you select one of the links below. Under Unix and compatible +operating systems, save it, then issue the following +commands to unpack it: +
+gunzip cgic207.tar.gz
+tar -xf cgic207.tar
+
+This should produce the subdirectory 'cgic207', which will contain +the complete cgic distribution for version 2.07, including a copy of this +documentation in the file cgic.html. +

+Under Windows and compatible operating systems, save it, +open a command prompt window, and issue the following commands to unpack it: +

+unzip /d cgic207.zip
+
+Or use the unzip utility of your choice. +

+This command also produces the subdirectory 'cgic207', which will contain +the complete cgic distribution, including a copy of this +documentation in the file cgic.html. +

+cgic is available via the web from www.boutell.dev: +

+

Building cgic: a sample application

+The sample application 'cgictest.c' is provided as part of the +cgic distribution. This CGI program displays an input form, +accepts a submission, and then displays what was submitted. +In the process essentially all of cgic's features are tested. +

+On a Unix system, you can build cgictest simply by typing +'make cgictest.cgi'. cgic.c and cgictest.c will be compiled and linked +together to produce the cgictest application. Under non-Unix +operating systems, you will need to create and compile an appropriate +project containing the files cgic.c and cgictest.c. +

+IMPORTANT: after compiling cgictest.cgi, you will +need to place it in a location on your server system which is +designated by your server administrator as an appropriate location +for CGI scripts. Some servers are configured to recognize any +file ending in .cgi as a CGI program when it is found in any +subdirectory of the server's web space, but this is not always +the case! The right locations for CGI +programs vary greatly from one server to another. Resolving +this issue is between you, your web server administrator, +and your web server documentation. Before submitting a bug +report for cgic, make certain that the CGI example programs +which came with your server do work for you. Otherwise +it is very likely that you have a server configuration problem. +

+Once you have moved cgictest.cgi (or cgictest.exe, under Windows) +to an appropriate cgi directory, +use the web browser of your choice to access the URL at which +you have installed it +(for instance, www.mysite.com/cgi-bin/cgictest.cgi). +Fill out the various fields in any manner you wish, then +select the SUBMIT button. +

+If all goes well, cgictest.cgi will respond with a page which +indicates the various settings you submitted. If not, +please reread the section above regarding the correct location in +which to install your CGI program on your web server. +

What to do if it won't compile

+
    +
  • Are you using Visual C++ or Borland C++? Did you forget to add +cgic.c to your project? +
  • Make sure you are using an ANSI C or C++ compiler. +(All of the Windows compilers are ANSI C compliant.) +
+If none of the above proves effective, please see the +section regarding support. +

How to write a cgic application

+Note: All cgic applications must be linked to the cgic.c module +itself. How to do this depends on your operating system; under Unix, +just use the provided Makefile as an example. +

+Since all CGI applications must perform certain initial +tasks, such as parsing form data and examining +environment variables, the cgic library provides its +own main() function. When you write applications that +use cgic, you will begin your own programs by writing +a cgiMain() function, which cgic will invoke when +the initial cgi work has been successfully completed. Your +program must also be sure to #include the file cgic.h. +

+Important: if you write your own main() +function, your program will not link properly. Your own +code should begin with cgiMain(). The library +provides main() for you. (Those who prefer different behavior +can easily modify cgic.c.) +

+Consider the cgiMain function of cgictest.c: +

+

+int cgiMain() {
+#ifdef DEBUG
+  LoadEnvironment();
+#endif /* DEBUG */
+  /* Load a previously saved CGI scenario if that button
+    has been pressed. */
+  if (cgiFormSubmitClicked("loadenvironment") == cgiFormSuccess) {
+    LoadEnvironment();
+  }
+  /* Set any new cookie requested. Must be done *before*
+    outputting the content type. */
+  CookieSet();
+  /* Send the content type, letting the browser know this is HTML */
+  cgiHeaderContentType("text/html");
+  /* Top of the page */
+  fprintf(cgiOut, "<HTML><HEAD>\n");
+  fprintf(cgiOut, "<TITLE>cgic test</TITLE></HEAD>\n");
+  fprintf(cgiOut, "<BODY><H1>cgic test</H1>\n");
+  /* If a submit button has already been clicked, act on the 
+    submission of the form. */
+  if ((cgiFormSubmitClicked("testcgic") == cgiFormSuccess) ||
+    cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess)
+  {
+    HandleSubmit();
+    fprintf(cgiOut, "<hr>\n");
+  }
+  /* Now show the form */
+  ShowForm();
+  /* Finish up the page */
+  fprintf(cgiOut, "</BODY></HTML>\n");
+  return 0;
+}
+
+Note the DEBUG #ifdef. If DEBUG is defined at compile time, either by +inserting the line "#define DEBUG 1" into the program or by setting +it in the Makefile or other development environment, then the +LoadEnvironment function is invoked. This function calls +cgiReadEnvironment() +to restore a captured CGI environment for debugging purposes. See +also the discussion of the capture program, which is +provided for use in CGI debugging. Because this is a test program, +the cgiFormSubmitClicked function is +also called to check for the use of a button that requests the reloading +of a saved CGI environment. A completed CGI program typically would +never allow the end user to make that decision. +

Setting Cookies

+Next, one of the cgiHeader functions should be called. +This particular program demonstrates many features, including +the setting of cookies. If the programmer wishes to set a cookie, +the cookie-setting function must be called +first, before other headers are output. This is done by the +CookieSet() function of cgictest.c: +
+void CookieSet()
+{
+  char cname[1024];
+  char cvalue[1024];
+  /* Must set cookies BEFORE calling 
+    cgiHeaderContentType */
+  cgiFormString("cname", cname, sizeof(cname));  
+  cgiFormString("cvalue", cvalue, sizeof(cvalue));  
+  if (strlen(cname)) {
+    /* Cookie lives for one day (or until 
+      browser chooses to get rid of it, which 
+      may be immediately), and applies only to 
+      this script on this site. */  
+    cgiHeaderCookieSet(cname, cvalue,
+      86400, cgiScriptName, cgiServerName,
+      cgiCookieHttpOnly | cgiCookieSameSiteStrict);
+  }
+}
+
+Since this is a test program, the cgiFormString +function is used to fetch the name and value from the form previously filled +in by the user. Normally, cookie names and values are chosen to meet the +needs of the programmer and provide a means of identifying the same +user again later. +

+The cgiHeaderCookieSet +function sets the cookie by requesting that the web browser store it. +There is never any guarantee that this will happen! +Many browsers reject cookies completely; others do not necessarily keep +them as long as requested or return them with their values intact. +Always code defensively when using cookies. +

+The cname and cvalue parameters are of course the namd and value for +the cookie. The third argument is the time, in seconds, that the +cookie should "live" on the browser side before it expires; in this +case it has been set to 86,400 seconds, which is exactly one day. +The browser may or may not respect this setting, as with everything +else about cookies. +

+The fourth argument identifies the "path" within the web site for which +the cookie is considered valid. A cookie that should be sent back +for every access to the site should be set with a path of /. +In this case the cookie is relevant only to the CGI program itself, so +cgiScriptName (the URL of the CGI program, not including the +domain name) is sent. Similarly, a cookie can be considered relevant +to a single web site or to an entire domain, such as +www.boutell.dev or the entire .boutell.dev +domain. In this case, the current site on which the program is running +is the only relevant site, so cgiServerName is used +as the domain. +

+The sixth argument sets extra security options, for example HttpOnly or +SameSite=Strict to prevent cross-site-scripting attacks. +

Outputting the Content Type Header

+Next, cgiHeaderContentType() is +called to indicate the MIME type of the document being output, in this case +"text/html" (a normal HTML document). A few other common MIME types are +"image/gif", "image/jpeg" and "audio/wav". +

+Note that cgiHeaderStatus() or +cgiHeaderLocation() could have +been invoked instead to output an error code or redirect the +request to a different URL. Only one of the cgiHeader functions +should be called in a single execution of the program. +

+Important: one of the cgiHeader functions, +usually cgiHeaderContentType(), +must be invoked before outputting any other +response to the user. Otherwise, the result will not be a valid +document and the browser's behavior will be unpredictable. +You may, of course, output your own ContentType and other +header information to cgiOut if you prefer. The cgiHeader functions +are provided as a convenience. +

Handling Form Submissions

+Like many CGI programs, cgictest makes decisions about the way it +should behave based on whether various submit buttons have been clicked. +When either the testcgic or saveenvironment button is present, cgictest +invokes the HandleSubmit function, which invokes additional functions to +handle various parts of the form: +
+void HandleSubmit()
+{
+  Name();
+  Address();
+  Hungry();
+  Temperature();
+  Frogs();
+  Color();
+  Flavors();
+  NonExButtons();
+  RadioButtons();
+  File();
+  Entries();
+  Cookies();
+  /* The saveenvironment button, in addition to submitting 
+    the form, also saves the resulting CGI scenario to 
+    disk for later replay with the 'load saved environment' 
+    button. */
+  if (cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess) {
+    SaveEnvironment();
+  }
+}
+
+

Handling Text Input

+The Name() function of cgictest is shown below, in its simplest +possible form: +
+void Name() {
+        char name[81];
+        cgiFormStringNoNewlines("name", name, 81);
+        fprintf(cgiOut, "Name: ");
+        cgicHtmlEscape(name);
+        fprintf(cgiOut, "
\n"); +} +
+The purpose of this function is to retrieve and display the name that was +input by the user. Since the programmer has decided that names should +be permitted to have up to 80 characters, a buffer of 81 characters +has been declared (allowing for the final null character). +The cgiFormStringNoNewlines() +function is then invoked to retrieve the name and ensure that +carriage returns are not present in the name (despite the +incorrect behavior of some web browsers). The first argument +is the name of the input field in the form, the second argument +is the buffer to which the data should be copied, and the third +argument is the size of the buffer. cgic will never write beyond +the size of the buffer, and will always provide a null-terminated +string in response; if the buffer is too small, the string will +be shortened. If this is not acceptable, the +cgiFormStringSpaceNeeded() +function can be used to check the amount of space needed; the +return value of cgiFormStringNoNewlines() can also be checked +to determine whether truncation occurred. See +the full description of +cgiFormStringNoNewlines(). +

Handling Output

+Note that Name() writes its HTML output to cgiOut, not +to stdout. +

+The actual name submitted by the user may or may not contain +characters that have special meaning in HTML, specifically the +the <, >, and & characters. +The cgiHtmlEscape function is used to output +the user-entered name with any occurrences of these characters +correctly escaped as &lt;, &gt;, +and &amp;. +

+Important: cgiOut is normally equivalent +to stdout, and there is no performance penalty for using it. +It is recommended that you write output to cgiOut to ensure compatibility +with modified versions of the cgic library for special +environments that do not provide stdin and stdout for +each cgi connection. +

+Note that, for text input areas in which carriage returns are +desired, the function cgiFormString +should be used instead. cgiFormString ensures that line breaks +are always represented by a single carriage return (ascii decimal 13), +making life easier for the programmer. See the source code to +the Address() function of cgictest.c for an example. +

Handling Single Checkboxes

+Consider the Hungry() function, which determines whether +the user has selected the "hungry" checkbox: +
+void Hungry() {
+        if (cgiFormCheckboxSingle("hungry") == cgiFormSuccess) {
+                fprintf(cgiOut, "I'm Hungry!<BR>\n");
+        } else {
+                fprintf(cgiOut, "I'm Not Hungry!<BR>\n");
+        }
+}
+
+This function takes advantage of the +cgiFormCheckboxSingle() function, which +determines whether a single checkbox has been selected. +cgiFormCheckboxSingle() accepts the name attribute of the checkbox +as its sole argument and returns +cgiFormSuccess if the checkbox is selected, or +cgiFormNotFound if it is not. +If multiple checkboxes with the same name are in use, +consider the +cgiFormCheckboxMultiple() and +cgiFormStringMultiple() +functions. +

Handling Numeric Input

+Now consider the Temperature() function, which retrieves +a temperature in degrees (a floating-point value) and ensures +that it lies within particular bounds: +
+void Temperature() {
+        double temperature;
+        cgiFormDoubleBounded("temperature", &temperature, 80.0, 120.0, 98.6);
+        fprintf(cgiOut, "My temperature is %f.<BR>\n", temperature);
+}
+
+The temperature is retrieved by the function +cgiFormDoubleBounded(). The first +argument is the name of the temperature input field in the form; +the second argument points to the address of the variable that will +contain the result. The next two arguments are the lower and upper +bounds, respectively. The final argument is the default value to +be returned if the user did not submit a value. +

+This function always retrieves a reasonable value within the +specified bounds; values above or below bounds are constrained +to fit the bounds. However, the return value of +cgiFormDoubleBounded can be checked to make sure the +actual user entry was in bounds, not blank, and so forth; +see the description of +cgiFormDoubleBounded() for more details. If bounds checking +is not desired, consider using +cgiFormDouble() instead. +

+Note that, for integer input, the functions +cgiFormInteger and +cgiFormIntegerBounded +are available. The behavior of these functions is similar to +that of their floating-point counterparts above. +

Handling Single-Choice Input

+The <SELECT> tag of HTML is used to provide the user with +several choices. Radio buttons and checkboxes can also be used +when the number of choices is relatively small. Consider +the Color() function of cgictest.c: +
+char *colors[] = {
+        "Red",
+        "Green",
+        "Blue"
+};
+
+void Color() {
+        int colorChoice;
+        cgiFormSelectSingle("colors", colors, 3, &colorChoice, 0);
+        fprintf(cgiOut, "I am: %s<BR>\n", colors[colorChoice]);
+}
+
+This function determines which of several colors the user chose +from a <SELECT> list in the form. An array of colors is +declared; the cgiFormSelectSingle() +function is then invoked to determine which, if any, of those choices +was selected. The first argument indicates the name of the input +field in the form. The second argument points to the list of +acceptable colors. The third argument indicates the number of +entries in the color array. The fourth argument points to the +variable which will accept the chosen color, and the last argument +indicates the index of the default value to be set if no +selection was submitted by the browser. +

+cgiFormSelectSingle() will +always indicate a reasonable selection value. However, if +the programmer wishes to know for certain that a value was +actually submitted, that the value submitted was a legal +response, and so on, the return value of cgiFormSelectSingle() +can be consulted. See the full description of +cgiFormSelectSingle() for +more information. +

+Note that radio button groups and <SELECT> lists can both +be handled by this function. If you are processing radio +button groups, you may prefer to invoke +cgiFormRadio(), which functions +identically. +

+"What if I won't know the acceptable choices at runtime?" +

+If the acceptable choices aren't known until runtime, +one can simply load the choices from disk. But if the acceptable +choices aren't fixed at all (consider a list of country names; +new names may be added to the form at any time and it is +inconvenient to also update program code or a separate list +of countries), simply invoke +cgiFormStringNoNewlines() +instead to retrieve the string directly. Keep in mind that, if +you do so, validating the response to make sure it is +safe and legitimate becomes a problem for your own +program to solve. The advantage of cgiFormSelectSingle() is that invalid +responses are never returned. +

+To handle multiple-selection <SELECT> lists and +groups of checkboxes with the same name, see the +discussion of the NonExButtons() function of cgictest.c, immediately below. +

Handling Multiple-Choice Input

+Consider the first half of the NonExButtons() function of cgictest.c: +
+char *votes[] = {
+  "A",
+  "B",
+  "C",
+  "D"
+};
+
+void NonExButtons() {
+  int voteChoices[4];
+  int i;
+  int result;  
+  int invalid;
+
+  char **responses;
+
+  /* Method #1: check for valid votes. This is a good idea,
+    since votes for nonexistent candidates should probably
+    be discounted... */
+  fprintf(cgiOut, "Votes (method 1):<BR>\n");
+  result = cgiFormCheckboxMultiple("vote", votes, 4, 
+    voteChoices, &invalid);
+  if (result == cgiFormNotFound) {
+    fprintf(cgiOut, "I hate them all!<p>\n");
+  } else {  
+    fprintf(cgiOut, "My preferred candidates are:\n");
+    fprintf(cgiOut, "<ul>\n");
+    for (i=0; (i < 4); i++) {
+      if (voteChoices[i]) {
+        fprintf(cgiOut, "<li>%s\n", votes[i]);
+      }
+    }
+    fprintf(cgiOut, "</ul>\n");
+  }
+
+This function takes advantage of +cgiFormCheckboxMultiple(), +which is used to identify one or more selected checkboxes with +the same name. This function performs identically to +cgiFormSelectMultiple(). +That is, <SELECT> tags with the MULTIPLE attribute are handled +just like a group of several checkboxes with the same name. +

+The first argument to +cgiFormCheckboxMultiple() is the name given to all +checkbox input fields in the group. The second argument +points to an array of legitimate values; these should +correspond to the VALUE attributes of the checkboxes +(or OPTION tags in a <SELECT> list). The third argument +indicates the number of entries in the array of +legitimate values. The fourth argument points to +an array of integers with the same number of entries +as the array of legitimate values; each entry +will be set true if that checkbox or option was selected, +false otherwise. +

+The last argument points to an integer which will be set to the +number of invalid responses (responses not in the array of +valid responses) that were submitted. If this value is not +of interest, the last argument may be a null pointer (0). +

+Note that the return value of cgiFormCheckboxMultiple is +inspected to determine whether any choices at all were +set. See the full description of +cgiFormCheckboxMultiple +for other possible return values. +

+"What if I won't know the acceptable choices at runtime?" +

+If the acceptable choices aren't known until runtime, +one can simply load the choices from disk. But if the acceptable +choices aren't fixed at all (consider a list of ice cream flavors; +new names may be added to the form at any time and it is +inconvenient to also update program code or a separate list +of countries), a more dynamic approach is needed. Consider +the second half of the NonExButtons() function of cgictest.c: +

+  /* Method #2: get all the names voted for and trust them.
+    This is good if the form will change more often
+    than the code and invented responses are not a danger
+    or can be checked in some other way. */
+  fprintf(cgiOut, "Votes (method 2):<BR>\n");
+  result = cgiFormStringMultiple("vote", &responses);
+  if (result == cgiFormNotFound) {  
+    fprintf(cgiOut, "I hate them all!<p>\n");
+  } else {
+    int i = 0;
+    fprintf(cgiOut, "My preferred candidates are:\n");
+    fprintf(cgiOut, "<ul>\n");
+    while (responses[i]) {
+      fprintf(cgiOut, "<li>%s\n", responses[i]);
+      i++;
+    }
+    fprintf(cgiOut, "</ul>\n");
+  }
+  /* We must be sure to free the string array or a memory
+    leak will occur. Simply calling free() would free
+    the array but not the individual strings. The
+    function cgiStringArrayFree() does the job completely. */  
+  cgiStringArrayFree(responses);
+}
+
+This code excerpt demonstrates an alternate means of retrieving +a list of choices. The function +cgiFormStringMultiple() is used +to retrieve an array consisting of all the strings submitted +for with a particular input field name. This works both for +<SELECT> tags with the MULTIPLE attribute and for +groups of checkboxes with the same name. +

+The first argument to +cgiFormStringMultiple() is the name of the input field or +group of input fields in question. The second argument should +be the address of a pointer to a pointer to a string, which +isn't as bad as it sounds. Consider the following simple call +of the function: +

+/* An array of strings; each C string is an array of characters */
+char **responses; 
+
+cgiFormStringMultiple("vote", &responses);
+
+"How do I know how many responses there are?" +

+After the call, the last entry in the string array will be +a null pointer. Thus the simple loop: +

+int i = 0;
+while (responses[i]) {
+  /* Do something with the string responses[i] */
+  i++;
+}
+
+can be used to walk through the array until the last +entry is encountered. +

+Important: the +cgiFormStringMultiple function +returns a pointer to allocated memory. Your code +should not modify the strings in the responses array or the responses +array itself; if modification is needed, the strings should be +copied. When your code is done examining the responses array, +you MUST call +cgiStringArrayFree() with the array as an argument to free the memory +associated with the array. Otherwise, the memory will not be available +again until the program exists. Don't just call the +free() function; if you do, the individual strings will not be freed. +

Accessing Uploaded Files

+CGIC provides functions to access files that have been uploaded +as part of a form submission. IMPORTANT: you MUST set +the enctype attribute of your form tag +to multipart/form-data for this feature to work! For an +example, see the ShowForm function of +cgictest.c, examined below. +

+The File function of cgictest.c takes care of +receiving uploaded files: +

+void File()
+{
+  cgiFilePtr file;
+  char name[1024];
+  char contentType[1024];
+  char buffer[1024];
+  int size;
+  int got;
+  if (cgiFormFileName("file", name, sizeof(name)) != 
+    cgiFormSuccess) 
+  {
+    printf("<p>No file was uploaded.<p>\n");
+    return;
+  } 
+        fprintf(cgiOut, "The filename submitted was: ");
+        cgiHtmlEscape(name);
+        fprintf(cgiOut, "<p>\n");
+        cgiFormFileSize("file", &size);
+        fprintf(cgiOut, "The file size was: %d bytes<p>\n", size);
+        cgiFormFileContentType("file", contentType, sizeof(contentType));
+        fprintf(cgiOut, "The alleged content type of the file was: ");
+        cgiHtmlEscape(contentType);
+        fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Of course, this is only the claim the browser "
+    "made when uploading the file. Much like the filename, "
+    "it cannot be trusted.<p>\n");
+  fprintf(cgiOut, "The file's contents are shown here:<p>\n");
+  if (cgiFormFileOpen("file", &file) != cgiFormSuccess) {
+    fprintf(cgiOut, "Could not open the file.<p>\n");
+    return;
+  }
+  fprintf(cgiOut, "<pre>\n");
+  while (cgiFormFileRead(file, buffer, sizeof(buffer), &got) ==
+    cgiFormSuccess)
+  {
+    cgiHtmlEscapeData(buffer, got);
+  }
+  fprintf(cgiOut, "</pre>\n");
+  cgiFormFileClose(file);
+}
+
+First, the File function checks to determine the filename that was +submitted by the user. VERY IMPORTANT: this filename may or +may not bear any relation to the real name of the file on the user's +computer, may be deliberately manipulated with malicious intent, +and should not be used for any purpose unless you have +determined that its content is safe for your intended use and will not, +at the very least, overwrite another file of importance to you, especially if +you intend to use it as a file name on the server side. The cgic library +itself does not use this file name for temporary storage. +

+If the cgiFormFileName function does +not succeed, no file was uploaded. +

+Next, the cgiFormFileSize function is called +to determine the size of the uploaded file, in bytes. +

+The File function then proceeds to query the content type of the uploaded +file. Files uploaded by the user have their own content type information, +which may be useful in determining whether the file is an image, HTML document, +word processing document, or other type of file. However, +as with the filename and any other claim made by the browser, +this information should not be blindly trusted. The browser +may upload a file with the name picture.jpg and the +content type image/jpeg, but this does not guarantee that the +actual file will contain a valid JPEG image suitable for display. +

+The content type submitted by the browser can be queried using the +cgiFormFileContentType function. +

+Of course, CGIC also provides access to the actual uploded file. +First, the programmer calls cgiFormFileOpen, +passing the address of a cgiFilePtr object. If this function +succeeds, the cgiFilePtr object becomes valid, and can be +used in subsequent calls to cgiFormFileRead. +Notice that the number of bytes read may be less than the number requested, +in particular on the last successful call before cgiFormFileRead begins +to return cgiFormEOF. When cgiFormFileRead no longer returns +cgiFormSuccess, +the programmer calls cgiFormFileClose to +release the cgiFilePtr object. +

+The uploaded file data may contain anything, including binary data, +null characters, and so on. The example program uses the +cgiHtmlEscapeData function to output the +data with any special characters that have meaning in HTML escaped. +Most programs will save the uploaded information to a server-side file or +database. +

Fetching All Form Entries

+From time to time, the programmer may not know the names of all +form fields in advance. In such situations it is convenient to +use the cgiFormEntries function. +The Entries function of cgictest.c demonstrates the use of +cgiFormEntries: +
+void Entries()
+{
+        char **array, **arrayStep;
+        fprintf(cgiOut, "List of All Submitted Form Field Names:<p>\n");
+        if (cgiFormEntries(&array) != cgiFormSuccess) {
+                return;
+        }
+        arrayStep = array;
+        fprintf(cgiOut, "<ul>\n");
+        while (*arrayStep) {
+                fprintf(cgiOut, "<li>");
+                cgiHtmlEscape(*arrayStep);
+                fprintf(cgiOut, "\n");
+                arrayStep++;
+        }
+        fprintf(cgiOut, "</ul>\n");
+        cgiStringArrayFree(array);
+}
+
+The cgiFormEntries function retrieves an array of form field names. +This array consists of pointers to strings, with a final null pointer +to mark the end of the list. The above code illustrates one way of +looping through the returned strings. Note the final call to +cgiStringArrayFree, which is +essential in order to return the memory used to store the strings +and the string array. +

Retrieving Cookies

+The Cookies function of cgictest.c displays a list of all cookies +submitted by the browser with the current form submission, along +with their values: +
+void Cookies()
+{
+  char **array, **arrayStep;
+  char cname[1024], cvalue[1024];
+  fprintf(cgiOut, "Cookies Submitted On This Call, With Values "
+    "(Many Browsers NEVER Submit Cookies):<p>\n");
+  if (cgiCookies(&array) != cgiFormSuccess) {
+    return;
+  }
+  arrayStep = array;
+  fprintf(cgiOut, "<table border=1>\n");
+  fprintf(cgiOut, "<tr><th>Cookie<th>Value</tr>\n");
+  while (*arrayStep) {
+    char value[1024];
+    fprintf(cgiOut, "<tr>");
+    fprintf(cgiOut, "<td>");
+    cgiHtmlEscape(*arrayStep);
+    fprintf(cgiOut, "<td>");
+    cgiCookieString(*arrayStep, value, sizeof(value));
+    cgiHtmlEscape(value);
+    fprintf(cgiOut, "\n");
+    arrayStep++;
+  }
+  fprintf(cgiOut, "</table>\n");
+  cgiFormString("cname", cname, sizeof(cname));  
+  cgiFormString("cvalue", cvalue, sizeof(cvalue));  
+  if (strlen(cname)) {
+    fprintf(cgiOut, "New Cookie Set On This Call:<p>\n");
+    fprintf(cgiOut, "Name: ");  
+    cgiHtmlEscape(cname);
+    fprintf(cgiOut, "Value: ");  
+    cgiHtmlEscape(cvalue);
+    fprintf(cgiOut, "<p>\n");
+    fprintf(cgiOut, "If your browser accepts cookies "
+      "(many do not), this new cookie should appear "
+      "in the above list the next time the form is "
+      "submitted.<p>\n"); 
+  }
+  cgiStringArrayFree(array);
+}
+
+VERY IMPORTANT: YOUR BROWSER MIGHT NOT SUBMIT COOKIES, +EVER, REGARDLESS OF WHAT VALUES YOU ENTER INTO THE TEST FORM. +Many, many browsers are configured not to accept or send cookies; +others are configured to send them as little as possible to meet the +bare minimum requirements for entry into popular sites. Users will often +refuse your cookies; make sure your code still works in that situation! +

+The above code uses the cgiCookies function +to retrieve a list of all currently set cookies as a null-terminated +array of strings. The cgiCookieString +function is then used to fetch the value associated with each cookie; +this function works much like cgiFormString, +discussed earlier. Note that a cookie set as a part of the current +form submission process does not appear on this list immediately, as +it has not yet been sent back by the browser. It should appear on +future submissions, provided that the browser chooses to accept +and resend the cookie at all. +

Displaying a Form That Submits to the Current Program

+CGI programmers often need to display HTML pages as part of the output +of CGI programs; these HTML pages often contain forms which should submit +fields back to the same program they came from. Provided that your +web server is well-configured, this can be done conveniently using +the cgiScriptName environment variable, as shown below. Here is the +source code of the ShowForm function of cgictest.c: +
+void ShowForm()
+{
+  fprintf(cgiOut, "<!-- 2.0: multipart/form-data is required 
+    "for file uploads. -->");
+  fprintf(cgiOut, "<form method=\"POST\" "
+    "enctype=\"multipart/form-data\" ");
+  fprintf(cgiOut, "  action=\"");
+  cgiValueEscape(cgiScriptName);
+  fprintf(cgiOut, "\">\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing Plaintext\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"name\">Your Name\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Multiple-Line Text Field\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<textarea NAME=\"address\" ROWS=4 COLS=40>\n");
+  fprintf(cgiOut, "Default contents go here. \n");
+  fprintf(cgiOut, "</textarea>\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Checkbox\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"hungry\" checked>Hungry\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing a Numeric Value\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"temperature\" value=\"98.6\">\n");
+  fprintf(cgiOut, "Blood Temperature (80.0-120.0)\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing an Integer Value\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"frogs\" value=\"1\">\n");
+  fprintf(cgiOut, "Frogs Eaten\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Single-SELECT\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "<select name=\"colors\">\n");
+  fprintf(cgiOut, "<option value=\"Red\">Red\n");
+  fprintf(cgiOut, "<option value=\"Green\">Green\n");
+  fprintf(cgiOut, "<option value=\"Blue\">Blue\n");
+  fprintf(cgiOut, "</select>\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "Multiple-SELECT\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "<select name=\"flavors\" multiple>\n");
+  fprintf(cgiOut, "<option value=\"pistachio\">Pistachio\n");
+  fprintf(cgiOut, "<option value=\"walnut\">Walnut\n");
+  fprintf(cgiOut, "<option value=\"creme\">Creme\n");
+  fprintf(cgiOut, "</select>\n");
+  fprintf(cgiOut, "<p>Exclusive Radio Button Group: Age of "
+    "Truck in Years\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"1\">1\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"2\">2\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"3\" checked>3\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"4\">4\n");
+  fprintf(cgiOut, "<p>Nonexclusive Checkbox Group: "
+    "Voting for Zero through Four Candidates\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"A\">A\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"B\">B\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"C\">C\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"D\">D\n");
+  fprintf(cgiOut, "<p>File Upload:\n");
+  fprintf(cgiOut, "<input type=\"file\" name=\"file\" "
+    "value=\"\"> (Select A Local File)\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<p>Set a Cookie<p>\n");
+  fprintf(cgiOut, "<input name=\"cname\" "
+    "value=\"\"> Cookie Name\n");
+  fprintf(cgiOut, "<input name=\"cvalue\" "
+    "value=\"\"> Cookie Value<p>\n");
+  fprintf(cgiOut, "<input type=\"submit\" "
+    "name=\"testcgic\" value=\"Submit Request\">\n");
+  fprintf(cgiOut, "<input type=\"reset\" "
+    "value=\"Reset Request\">\n");
+  fprintf(cgiOut, "<p>Save the CGI Environment<p>\n");
+  fprintf(cgiOut, "Pressing this button will submit the form, then "
+    "save the CGI environment so that it can be replayed later "
+    "by calling cgiReadEnvironment (in a debugger, for "
+    "instance).<p>\n");
+  fprintf(cgiOut, "<input type=\"submit\" name=\"saveenvironment\" "
+    "value=\"Save Environment\">\n");
+  fprintf(cgiOut, "</form>\n");
+}
+
+Note the use of enctype="multipart/form-data" in the +FORM tag. This is absolutely required if the form +will contain file upload fields, as in the above example. Most +browsers will not even attempt file uploads without the +presence of this attribute. +

Examining CGI environment variables

+The CGI standard specifies a number of environment variables +which are set by the server. However, servers are somewhat +unpredictable as to whether these variables will be null or +point to empty strings when an environment variable is not set. +Also, in order to allow the programmer to restore saved +CGI environments, the cgic library needs have a way of insulating +the programmer from the actual environment variables. +

+Instead of calling getenv() to determine the value of a +variable such as HTTP_USER_AGENT (the browser software being used), +always use the +cgic copies of the environment variables, +which are always valid C strings (they are never null, although +they may point to an empty string). For instance, the cgic +variable containing the name of the browser software is +cgiUserAgent. The referring URL appears +in the variable cgiReferrer. +

How can I generate images from my cgic application?

+cgic can be used in conjunction with the +gd graphics library, which +can produce GIF images on the fly. +

+The following short sample program hints at the possibilities: +

+#include "cgic.h"
+#include "gd.h"
+
+char *colors[] = {
+  "red", "green", "blue"
+};
+
+#define colorsTotal 3
+
+int cgiMain() {
+  int colorChosen;
+  gdImagePtr im;
+  int r, g, b;
+  /* Use gd to create an image */
+  im = gdImageCreate(64, 64);
+  r = gdImageColorAllocate(im, 255, 0, 0);  
+  g = gdImageColorAllocate(im, 0, 255, 0);  
+  b = gdImageColorAllocate(im, 0, 0, 255);  
+  /* Now use cgic to find out what color the user requested */
+  cgiFormSelectSingle("color", 3, &colorChosen, 0);  
+  /* Now fill with the desired color */
+  switch(colorChosen) {
+    case 0:
+    gdImageFill(im, 32, 32, r);
+    break;
+    case 1:
+    gdImageFill(im, 32, 32, g);
+    break;
+    case 2:
+    gdImageFill(im, 32, 32, b);
+    break;
+  }  
+  /* Now output the image. Note the content type! */
+  cgiHeaderContentType("image/gif");
+  /* Send the image to cgiOut */
+  gdImageGif(im, cgiOut);
+  /* Free the gd image */
+  gdImageDestroy(im);
+  return 0;
+}
+
+Note that this program would need to be linked with both cgic.o +and libgd.a. Often programs of this type respond to one +cgiPathInfo value or set of form fields by returning an HTML page +with an inline image reference that, in turn, generates a GIF image. +

Debugging CGI applications: using capture

+Debugging CGI applications can be a painful task. Since CGI applications +run in a special environment created by the web server, it is difficult +to execute them in a debugger. However, the cgic library provides a way +of capturing "live" CGI environments to a file, and also provides a way +to reload saved environments. +

+The provided program 'capture.c' can be used to capture CGI +environments. Just change the first line of the cgiMain() function +of capture.c to save the CGI environment to a filename appropriate +on your system and type 'make capture'. Then place capture in your +cgi directory and set the form action or other link you want to test +to point to it. When the form submission or other link takes place, +capture will write the CGI environment active at that time to +the filename you specified in the source. The +cgiReadEnvironment() function can then +be invoked on the same filename at the beginning of the cgiMain() function +of the application you want to test in order to restore the captured +environment. You can then execute your program in the debugger of your choice, +and it should perform exactly as it would have performed had +it been launched by the actual web server, including file uploads, +cookies and all other phenomena within the purview of cgic. +

+Important: Make sure you specify the full path, as the +current working directory of a CGI script may not be what you +think it is! +

+Even More Important: If you call getenv() yourself +in your code, instead of using the provided +cgic copies of the CGI environment variables, you will +not get the values you expect when running with +a saved CGI environment. Always use the cgic variables instead +of calling getenv(). +

cgic function reference

+
+
cgiFormResultType cgiFormString( + char *name, char *result, int max) +
cgiFormString attempts to retrieve the string sent for the + specified input field. The text will be copied into + the buffer specified by result, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. Regardless of the newline + format submitted by the browser, cgiFormString always + encodes each newline as a single line feed (ascii decimal 10); as + a result the final string may be slightly shorter than indicated + by a call to + cgiFormStringSpaceNeeded but will never be longer. + cgiFormString returns cgiFormSuccess if the string was + successfully retrieved, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + cgiFormEmpty if the string was + retrieved but was empty, and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. +

+cgiFormResultType cgiFormStringNoNewlines( + char *name, char *result, int max) +
+cgiFormStringNoNewlines() is exactly equivalent to + cgiFormString(), except + that any carriage returns or line feeds that occur in the input + will be stripped out. The use of this function is recommended + for single-line text input fields, as some browsers will submit + carriage returns and line feeds when they should not. +

+cgiFormResultType cgiFormStringSpaceNeeded( + char *name, int *length) +
+cgiFormStringSpaceNeeded() is used to determine the length of the input text + buffer needed to receive the contents of the specified input field. + This is useful if the programmer wishes to allocate sufficient memory + for input of arbitrary length. The actual length of the string + retrieved by a subsequent call to cgiFormString() may be slightly shorter + but will never be longer than *result. On success, cgiFormStringSpaceNeeded() + sets the value pointed to by length to the number of bytes of data, + including the terminating null, and returns cgiFormSuccess. If no + value was submitted for the specified field, cgiFormStringSpaceNeeded sets + the value pointed to by length to 1 and returns cgiFormNotFound. 1 is + set to ensure space for an empty string (a single null + character) if cgiFormString is called despite the return value. + +

cgiFormResultType cgiFormStringMultiple( + char *name, char ***ptrToStringArray) +
cgiFormStringMultiple is useful in the unusual case in which several + input elements in the form have the same name and, for whatever + reason, the programmer does not wish to use the checkbox, radio + button and selection menu functions provided below. This is + occasionally needed if the programmer cannot know + in advance what values might appear in a multiple-selection list + or group of checkboxes on a form. The value pointed to + by result will be set to a pointer to an array of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiFormStringMultiple() returns cgiFormSuccess if at least + one occurrence of the name is found, cgiFormNotFound + if no occurrences are found, or cgiFormMemory if not enough + memory is available to allocate the array to be returned. + In all cases except the last, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer. + +

cgiFormResultType cgiFormEntries( + char ***ptrToStringArray) +
cgiFormEntries is useful when the programmer cannot know the names + of all relevant form fields in advance. The value pointed to + by result will be set to a pointer to an array of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiFormEntries() returns cgiFormSuccess except in the event of an out of memory error. + On success, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer, and + cgiFormOutOfMemory is returned. + +

void cgiStringArrayFree(char **stringArray) + +
+cgiStringArrayFree() is used to free the memory associated with + a string array created by + cgiFormStringMultiple(), + cgiFormEntries(), or + cgiFormCookies(). +

cgiFormResultType cgiFormInteger( + char *name, int *result, int defaultV) +
cgiFormInteger() attempts to retrieve the integer sent for the + specified input field. The value pointed to by result + will be set to the value submitted. cgiFormInteger() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not an integer, + and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. +

+cgiFormResultType cgiFormIntegerBounded( + char *name, int *result, int min, int max, int defaultV) +
cgiFormIntegerBounded() attempts to retrieve the integer sent for the + specified input field, and constrains the result to be within + the specified bounds. The value pointed to by result + will be set to the value submitted. cgiFormIntegerBounded() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormConstrained if the value was out of bounds and result + was adjusted accordingly, cgiFormEmpty if the value submitted is + an empty string, cgiFormBadType if the value submitted is not an + integer, and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. + +

cgiFormResultType cgiFormDouble( + char *name, double *result, double defaultV) +
cgiFormDouble attempts to retrieve the floating-point value sent for + the specified input field. The value pointed to by result + will be set to the value submitted. cgiFormDouble returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not a number, + and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. +

+cgiFormResultType cgiFormDoubleBounded( + char *name, double *result, double min, double max, + double defaultV) +
+cgiFormDoubleBounded() attempts to retrieve the floating-point + value sent for the specified input field, and constrains the + result to be within the specified bounds. The value pointed to by + result will be set to the value submitted. cgiFormDoubleBounded() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormConstrained if the value was out of bounds and result + was adjusted accordingly, cgiFormEmpty if the value submitted is + an empty string, cgiFormBadType if the value submitted is not a + number, and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. + +

+cgiFormResultType cgiFormSelectSingle( + char *name, char **choicesText, int choicesTotal, + int *result, int defaultV) +
+cgiFormSelectSingle() retrieves the selection number associated with a + <SELECT> element that does not allow multiple selections. name + should identify the NAME attribute of the <SELECT> element. choicesText + should point to an array of strings identifying each choice; + choicesTotal should indicate the total number of choices. The value + pointed to by result will be set to the position of the actual choice + selected within the choicesText array, if any, or to the value of + default, if no selection was submitted or an invalid selection was + made. cgiFormSelectSingle() returns cgiFormSuccess if the value was + successfully retrieved, cgiFormNotFound if no selection + was submitted, and cgiFormNoSuchChoice if the selection + does not match any of the possibilities in the choicesText array. +
+ +cgiFormResultType cgiFormSelectMultiple( + char *name, char **choicesText, int choicesTotal, + int *result, int *invalid) +
cgiFormSelectMultiple() retrieves the selection numbers associated with a + <SELECT> element that does allow multiple selections. name should + identify the NAME attribute of the <SELECT> element. choicesText + should point to an array of strings identifying each choice; + choicesTotal should indicate the total number of choices. result + should point to an array of integers with as many elements as there + are strings in the choicesText array. For each choice in the + choicesText array that is selected, the corresponding integer in + the result array will be set to one; other entries in the result + array will be set to zero. cgiFormSelectMultiple() returns cgiFormSuccess + if at least one valid selection was successfully retrieved or + cgiFormNotFound if no valid selections were submitted. + The integer pointed to by invalid is set to the number of + invalid selections that were submitted, which should be zero + unless the form and the choicesText array do not agree. + +

+ +cgiFormResultType cgiFormSubmitClicked( + char *name) +
+It is often desirable to know whether a particular submit button was clicked, + when multiple submit buttons with different name attributes exist. + cgiFormSubmitClicked is an alternative name for the + cgiFormCheckboxSingle function, + which is suitable for testing whether a particular submit button + was used. +

+ +cgiFormResultType cgiFormCheckboxSingle( + char *name) +
+cgiFormCheckboxSingle determines whether the checkbox with the specified name + is checked. cgiFormCheckboxSingle returns cgiFormSuccess if the + button is checked, cgiFormNotFound if the checkbox is + not checked. cgiFormCheckboxSingle is intended for single + checkboxes with a unique name; see below for functions to + deal with multiple checkboxes with the same name, and + with radio buttons. + +

+cgiFormResultType cgiFormCheckboxMultiple( + char *name, char **valuesText, int valuesTotal, + int *result, int *invalid) +
cgiFormCheckboxMultiple() determines which checkboxes among a group + of checkboxes with the same name are checked. This is distinct + from radio buttons (see cgiFormRadio). + valuesText + should point to an array of strings identifying the VALUE + attribute of each checkbox; valuesTotal should indicate the total + number of checkboxes. result should point to an array of integers with + as many elements as there are strings in the valuesText array. For + each choice in the valuesText array that is selected, the corresponding + integer in the result array will be set to one; other entries in the + result array will be set to zero. cgiFormCheckboxMultiple returns + cgiFormSuccess if at least one valid checkbox was checked or + cgiFormNotFound if no valid checkboxes were checked. + The integer pointed to by invalid is set to the number of + invalid selections that were submitted, which should be zero + unless the form and the valuesText array do not agree. +

+cgiFormResultType cgiFormRadio( + char *name, char **valuesText, int valuesTotal, + int *result, int defaultV) +
cgiFormRadio() determines which, if any, of a group of radio boxes with + the same name was selected. valuesText should point to an array of + strings identifying the VALUE attribute of each radio box; + valuesTotal should indicate the total number of radio boxes. The value + pointed to by result will be set to the position of the actual choice + selected within the valuesText array, if any, or to the value of + default, if no radio box was checked or an invalid selection was + made. cgiFormRadio() returns cgiFormSuccess if a checked radio box was + found in the group, cgiFormNotFound if no box was checked, and + cgiFormNoSuchChoice if the radio box submitted does not match any of + the possibilities in the valuesText array. + +
cgiFormResultType cgiFormFileName( + char *name, char *fileName, int max) +
cgiFormFileName attempts to retrieve the file name uploaded by the + user for the specified form input field of type file. + NEVER, EVER TRUST THIS FILENAME TO BE REASONABLE AND + SAFE FOR DIRECT USE ON THE SERVER SIDE. + The text will be copied into + the buffer specified by fileName, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. cgiFormFileName returns + cgiFormSuccess if the string was + successfully retrieved and was not empty, + cgiFormNoFileName if the string was + successfully retrieved but empty indicating that no file was uploaded, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. +
cgiFormResultType cgiFormFileSize( + char *name, int *sizeP) +
cgiFormFileSize attempts to retrieve the size, in bytes, of a + file uploaded by the browser in response to the + input field of type file specified by the + name parameter. On success, the size is stored + to *sizeP, and this function returns + cgiFormSuccess. If the form + field does not exist, this function returns + cgiFormNotFound. + If the form field exists but no file was uploaded, this function + returns cgiFormNotAFile. +
cgiFormResultType cgiFormFileContentType( + char *name, char *contentType, int max) +
cgiFormString attempts to retrieve the content name claimed by the + user for the specified form input field of type file. + THERE IS NO GUARANTEE THAT THE CONTENT TYPE WILL BE + ACCURATE. + The content type string will be copied into + the buffer specified by contentType, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. cgiFormFileContentType returns + cgiFormSuccess if the string was + successfully retrieved and was not empty, + cgiFormNoContentType if the string was + successfully retrieved but empty indicating that no file was uploaded + or the browser did not know the content type, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. + +
cgiFormResultType cgiFormFileOpen( + char *name, cgiFilePtr *cfpp) +
cgiFormFileOpen attempts to open the actual uploaded file data for + the specified form field of type file. Upon success, + this function returns retrieve the content name claimed by the + user for the specified form input field of type file. + On success, this function sets *cfpp to a valid cgiFilePtr + object for use with cgiFormFileRead + and returns cgiFormSuccess. + On failure, this function sets *cfpp to a null pointer, and + returns cgiFormNotFound, + cgiFormNotAFile, + cgiFormMemory or + cgiFormIO as appropriate. +

+ See also cgiFormFileRead +and cgiFormFileClose. +

cgiFormResultType cgiFormFileRead( + cgiFilePtr cfp, char *buffer, int bufferSize, int *gotP) +
cgiFormFileRead attempts to read up to bufferSize + bytes from a cgiFilePtr object previously opened with + cgiFormFileOpen. If any data + is successfully read, it is copied to buffer, + and the number of bytes successfully read is stored + to *gotP. This function returns + cgiFormSuccess if any data + is successfully read. At end of file, this function + returns cgiFormEOF. In the event + of an I/O error, this function returns + cgiFormIO. If cfp is a null pointer, + this function returns cgiFormOpenFailed. +

+ See also cgiFormFileOpen +and cgiFormFileClose. +

cgiFormResultType cgiFormFileClose( + cgiFilePtr cfp) +
cgiFormFileClose closes a cgiFilePtr object previously opened + with cgiFormFileOpen, freeing + memory and other system resources. This + function returns cgiFormSuccess + unless cfp is null, in which case + cgiFormOpenFailed is returned. +

+ See also cgiFormFileOpen +and cgiFormFileRead. +

+void cgiHeaderLocation(char *redirectUrl) +
+cgiHeaderLocation() should be called if the programmer wishes to +redirect the user to a different URL. No futher output +is needed in this case. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderLocation. +

+void cgiHeaderStatus(int status, char *statusMessage) +
+cgiHeaderStatus() should be called if the programmer wishes to +output an HTTP error status code instead of a document. The status +code is the first argument; the second argument is the status +message to be displayed to the user. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderStatus. +

+void cgiHeaderContentType(char *mimeType) +
+cgiHeaderContentType() should be called if the programmer wishes to +output a new document in response to the user's request. This is +the normal case. The single argument is the MIME document type +of the response; typical values are "text/html" for HTML documents, +"text/plain" for plain ASCII without HTML tags, "image/gif" for +a GIF image and "audio/basic" for .au-format audio. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderContentType. +

+void cgiHeaderCookieSet(char *name, char *value, + int secondsToLive, char *path, char *domain, int options) +
+cgiHeaderCookieSet() should be called when the programmer wishes +to store a piece of information in the user's browser, so that the +stored information is again presented to the server on subsequent +accesses to the relevant site. The first argument is the name of the +cookie to be stored; for best results in all browsers, use a short +name without spaces or unusual punctuation. The second argument is +the value of the cookie to be stored. Again, for best results, use +a short string; it is recommended that cookies be used to store a +unique identifier which is then used to look up more detailed +information in a database on the server side. Attempts to store +elaborate information on the browser side are much more likely to fail. +The third argument is the number of seconds that the cookie should +be kept by the browser; 86400 is a single full day, 365*86400 is +roughly one year. The fourth argument is the partial URL of the +web site within which the cookie is relevant. If the cookie should +be sent to the server for every access to the entire site, +set this argument to /. The final argument is the +web site name or entire domain for which this cookie should be +submitted; if you choose to have the cookie sent back for an +entire domain, this argument must begin with a dot, such as +.boutell.dev. The cgic variables cgiScriptName +and cgiServerName are convenient +values for the fourth and fifth arguments. +The sixth argument is a bitmask for specifying cookie security options. +It can be zero (no options) or a bitwise-OR of the following +enum cgiCookieOption values: +
    +
  • cgiCookieSecure
  • +
  • cgiCookieHttpOnly
  • +
  • cgiCookieSameSiteStrict
  • +
+See HTTP cookies +for more information.
+See also cgiHeaderCookieSetString, +cgiHeaderCookieSetInteger, +cgiCookieString, +cgiCookieInteger and +cgiCookies. +

+void cgiHeaderCookieSetString(char *name, char *value, + int secondsToLive, char *path, char *domain) +
+cgiHeaderCookieSetString() is kept for API compability reasons. It calls +cgiHeaderCookieSet with zero (0) as sixth +argument, i.e. no cookie options are set. +

+void cgiHeaderCookieSetInteger(char *name, int value, + int secondsToLive, char *path, char *domain) +
+cgiHeaderCookieSetInteger() is identical to +cgiHeaderCookieSetString, +except that the value to be set is an integer rather than a string. +See cgiHeaderCookieSetString +for complete information. +
+
cgiFormResultType cgiCookieString( + char *name, char *result, int max) +
cgiFormString attempts to retrieve the string sent for the + specified cookie (browser-side persistent storage). The + text will be copied into + the buffer specified by result, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. + cgiCookieString returns cgiFormSuccess if the string was + successfully retrieved, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + cgiFormEmpty if the string was + retrieved but was empty, and cgiFormNotFound if no + such cookie was submitted. In the last case, + an empty string is copied to result. +

cgiFormResultType cgiCookieInteger( + char *name, int *result, int defaultV) +
cgiCookieInteger() attempts to retrieve the integer sent for the + specified cookie (browser-side persistent storage). The value + pointed to by result will be set to the value submitted. + cgiCookieInteger() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not an integer, + and cgiFormNotFound if no such + input field was submitted. In the last three cases, the value + pointed to by result is set to the specified default.
+ See also cgiCookieString, + cgiCookies, + cgiHeaderCookieSet, + cgiHeaderCookieSetString, and + cgiHeaderCookieSetInteger. +

cgiFormResultType cgiCookies( + char *name, char ***ptrToStringArray) +
cgiCookies is useful when the programmer cannot know the names + of all relevant cookies (browser-side persistent strings) in advance. + The value pointed to by result will be set to a pointer to an array + of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiCookies() returns cgiFormSuccess except in the event of an out of memory error. + On success, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer, and + cgiFormOutOfMemory is returned. +

+cgiFormResultType cgiHtmlEscape(char *s) +
+cgiHtmlEscape() outputs the specified null-terminated string to +cgiOut, +escaping any <, &, and > characters encountered correctly so that +they do not interfere with HTML markup. Returns +cgiFormSuccess, or +cgiFormIO in the event of an I/O error. +

+

+cgiFormResultType cgiHtmlEscapeData(char *data, int len) +
+cgiHtmlEscapeData() is identical to cgiHtmlEscape, +except that the data is not null-terminated. This version of the function +outputs len bytes. See cgiHtmlEscape +for more information. +

+cgiFormResultType cgiValueEscape(char *s) +
+cgiValueEscape() outputs the specified null-terminated string to +cgiOut, +escaping any " characters encountered correctly so that +they do not interfere with the quotation marks of HTML attribute +values. This is useful when outputting a string as part of the +value attribute of an input tag, or the href attribute of a link +or form tag. This function returns +cgiFormSuccess, or +cgiFormIO in the event of an I/O error. +

+

+cgiFormResultType cgiValueEscapeData(char *data, int len) +
+cgiValueEscapeData() is identical to cgiValueEscape, +except that the data is not null-terminated. This version of the function +outputs len bytes. See cgiValueEscape +for more information. +

+cgiEnvironmentResultType cgiWriteEnvironment(char *filename) +
+cgiWriteEnvironment() can + be used to write the entire CGI environment, including + form data, to the specified output file; + cgiReadEnvironment() + can then be used to restore that environment from the specified + input file for debugging. Of course, these will only work as expected + if you use the cgic copies of the CGI environment + variables and cgiIn and + cgiOut rather than stdin and + stdout (also see above). These functions are useful in order + to capture real CGI situations while the web server is running, then + recreate them in a debugging environment. Both functions + return cgiEnvironmentSuccess on + success, cgiEnvironmentIO on an I/O + error, and cgiEnvironmentMemory + on an out-of-memory error. +

+cgiEnvironmentResultType cgiReadEnvironment(char *filename) +
+cgiReadEnvironment() restores a CGI environment saved to the specified file by + cgiWriteEnvironment(). + Of course, these will only work as expected + if you use the cgic copies of the CGI environment + variables and cgiIn and + cgiOut rather than stdin and + stdout (also see above). These functions are useful in order + to capture real CGI situations while the web server is running, then + recreate them in a debugging environment. Both functions + return cgiEnvironmentSuccess on success, + cgiEnvironmentIO on an I/O error, and + cgiEnvironmentMemory + on an out-of-memory error. +

int cgiMain() +
The programmer must write this function, which performs + the unique task of the program and is invoked by the true main() + function, found in the cgic library itself. The return value from + cgiMain will be the return value of the program. It is expected that + the user will make numerous calls to the cgiForm functions + from within this function. See how to write + a cgic application for details. +
+

cgic variable reference

+This section provides a reference guide to the various global +variables provided by cgic for the programmer to utilize. +These variables should always be used in preference to +stdin, stdout, and calls to getenv() in order to ensure +compatibility with the cgic CGI debugging features. +

+Most of these variables are equivalent to various CGI environment +variables. The most important difference is that the cgic +environment string variables are never null pointers. They will always +point to valid C strings of zero or more characters. +

+
char *cgiServerSoftware +
Points to the name of the server software, +or to an empty string if unknown. +
char *cgiServerName +
Points to the name of the server, +or to an empty string if unknown. +
char *cgiGatewayInterface +
Points to the name of the gateway interface (usually CGI/1.1), +or to an empty string if unknown. +
char *cgiServerProtocol +
Points to the protocol in use (usually HTTP/1.0), +or to an empty string if unknown. +
char *cgiServerPort +
Points to the port number on which the server is listening +for HTTP connections (usually 80), or an empty string if unknown. +
char *cgiRequestMethod +
Points to the method used in the request (usually GET or POST), +or an empty string if unknown (this should not happen). +
char *cgiPathInfo +
Most web servers recognize any additional path information in +the URL of the request beyond the name of the CGI program itself and +pass that information on to the program. cgiPathInfo points to this +additional path information. +
char *cgiPathTranslated +
Most web servers recognize any additional path information in +the URL of the request beyond the name of the CGI program itself and +pass that information on to the program. cgiPathTranslated points +to this additional path information, translated by the server into a +filesystem path on the local server. +
char *cgiScriptName +
Points to the name under which the program was invoked. +
char *cgiQueryString +
Contains any query information submitted by the user as a result +of a GET-method form or an <ISINDEX> tag. Note that this +information need not be parsed directly unless an <ISINDEX> tag +was used; normally it is parsed automatically by the cgic library. Use +the cgiForm family of functions to retrieve the values associated +with form input fields. See how to write +a cgic application for more information. +
char *cgiRemoteHost +
Points to the fully resolved hostname of the browser, if known, +or an empty string if unknown. +
char *cgiRemoteAddr +
Points to the dotted-decimal IP address of the browser, if known, +or an empty string if unknown. +
char *cgiAuthType +
Points to the type of authorization used for the request, +if any, or an empty string if none or unknown. +
char *cgiRemoteUser +
Points to the user name under which the user has +authenticated; an empty string if no authentication has +taken place. The certainty of this information depends on +the type of authorization in use; see +cgiAuthType. +
char *cgiRemoteIdent +
Points to the user name volunteered by the user via +the user identification protocol; an empty +string if unknown. This information is not secure. +Identification demons can be installed by users on +insecure systems such as Windows machines. +
char *cgiContentType +
Points to the MIME content type of the information +submitted by the user, if any; an empty string if no +information was submitted. If this string is equal to +application/x-www-form-urlencoded or +multipart/form-data, the cgic +library will automatically examine the form data submitted. +If this string has any other non-empty value, a different +type of data has been submitted. This is currently very rare, +as most browsers can only submit forms and file uploads which +cgic parses directly. +
char *cgiCookie +
Points to the raw cookie (browser-side persistent storage) +data submitted by the web browser. +Programmers should use the functions cgiCookies, +cgiCookieString and +cgiCookieInteger instead of +examining this string directly. +
char *cgiAccept +
Points to a space-separated list of MIME content types +acceptable to the browser (see +cgiHeaderContentType() ), or an empty string. Unfortunately, this variable +is not supplied in a useful form by most current browsers. Programmers wishing +to make decisions based on the capabilities of the browser +are advised to check the cgiUserAgent +variable against a list of browsers and capabilities instead. +
char *cgiUserAgent +
+Points to the name of the browser in use, or an empty +string if this information is not available. +
char *cgiReferrer +
+Points to the URL of the previous page visited by the user. This is +often the URL of the form that brought the user to your program. +Note that reporting this information is entirely up to the browser, +which may choose not do so, and may choose not to do so truthfully. +However, this variable is typically accurate. The frequently +used misspelling cgiReferer is also supplied as a macro. +
int cgiContentLength +
The number of bytes of form or query data received. + Note that if the submission is a form or query submission + the library will read and parse all the information + directly from cgiIn and/or cgiQueryString. The programmer should + not do so, and indeed the cgiIn pointer will be at end-of-file + in such cases. +
FILE *cgiOut +
Pointer to CGI output. The cgiHeader functions, such as + cgiHeaderContentType, should + be used first to output the mime headers; the output HTML + page, GIF image or other web document should then be written + to cgiOut by the programmer using standard C I/O functions + such as fprintf() and fwrite(). cgiOut is normally equivalent + to stdout; however, it is recommended that cgiOut be used to + ensure compatibility with future versions of cgic for + specialized environments. +
FILE *cgiIn +
Pointer to CGI input. In 99.99% of cases, you will not + need this. CGIC 2.0 supports both regular POST form submissions + and multipart/form-data file upload form submissions directly. +
+

cgic result code reference

+

+In most cases, cgic functions are designed to produce reasonable results +even when browsers and users do unreasonable things. However, it is sometimes +important to know precisely which unreasonable things took place, especially +when assigning a default value or bounding a value is an inadequate +solution. The following result codes are useful in making this determination. +

+
cgiFormSuccess +
Indicates that the function successfully performed at least one +action (or retrieved at least one value, where applicable). +
cgiFormTruncated +
Indicates that a string value retrieved from the user was +cut short to avoid overwriting the end of a buffer. +
cgiFormBadType +
Indicates that a "numeric" value submitted by the user was +in fact not a legal number. +
cgiFormEmpty +
Indicates that a field was retrieved but contained no data. +
cgiFormNotFound +
Indicates that no value was submitted for a particular field. +
cgiFormConstrained +
Indicates that a numeric value was beyond the specified bounds +and was forced to the lower or upper bound as appropriate. +
cgiFormNoSuchChoice +
Indicates that the value submitted for a single-choice field +(such as a radio-button group) was not one of the acceptable values. +This usually indicates a discrepancy between the form and the program. +
cgiFormEOF +
Returned by cgiFormFileRead +when, at the start of the call, the cgiFilePtr object is already +positioned at the end of the uploaded file data. +
cgiFormIO +
Returned by cgiFormFileRead +when an I/O error occurs while reading uploaded file data. +
cgiFormNotAFile +
Returned in response to an attempt to manipulate a form field +that is not a file upload field using a file-related function. +
cgiFormNoContentType +
Returned in response to an attempt to fetch the content type of +a file-upload field when the content type is not specified by the browser. +
cgiFormNoFileName +
Returned in response to an attempt to fetch the file name of +a file-upload field when a file name is not specified by the browser. +
cgiFormOpenFailed +
Returned in response to an attempt to read from a null +cgiFilePtr object, typically when the programmer has failed to +check the result of a call to cgiFormFileOpen. +
cgiEnvironmentMemory +
Indicates that an attempt to read or write the CGI environment +to or from a capture file failed due to an out-of-memory error. +
cgiEnvironmentSuccess +
Indicates that an attempt to read or write the CGI environment +to or from a capture file was successful. +
cgiEnvironmentIO +
Indicates that an attempt to read or write the CGI environment +to or from a capture file failed due to an I/O error. +
cgiEnvironmentWrongVersion +
Indicates that an attempt to read from a saved debugging CGI environment +produced by a pre-2.0 version of CGIC was made. +
+

cgic quick index

+cgiAccept | +cgiAuthType | +cgiContentLength | +cgiContentType | +cgiEnvironmentIO | +cgiEnvironmentMemory | +cgiEnvironmentSuccess | +cgiCookieInteger | +cgiCookies | +cgiHeaderCookieSet | +cgiHeaderCookieSetString | +cgiHeaderCookieSetInteger | +cgiCookieString | +cgiCookieInteger | +cgiHtmlEscape | +cgiHtmlEscapeData | +cgiValueEscape | +cgiValueEscapeData | +cgiFormBadType | +cgiFormCheckboxMultiple() | +cgiFormCheckboxSingle() | +cgiFormConstrained | +cgiFormDouble() | +cgiFormDoubleBounded() | +cgiFormEOF | +cgiFormEmpty | +cgiFormEntries | +cgiFormFileClose | +cgiFormFileContentType | +cgiFormFileName | +cgiFormFileOpen | +cgiFormFileRead | +cgiFormFileSize | +cgiFormInteger() | +cgiFormIntegerBounded() | +cgiFormNoContentType | +cgiFormNoFileName | +cgiFormNoSuchChoice | +cgiFormNotAFile | +cgiFormNotFound | +cgiFormRadio() | +cgiFormSelectMultiple() | +cgiFormSelectSingle() | +cgiFormString() | +cgiFormStringMultiple() | +cgiFormStringNoNewlines() | +cgiFormStringSpaceNeeded() | +cgiFormSuccess | +cgiFormTruncated | +cgiGatewayInterface | +cgiHeaderContentType() | +cgiHeaderLocation() | +cgiHeaderStatus() | +cgiIn | +cgiMain() +cgiOut | +cgiPathInfo | +cgiPathTranslated | +cgiQueryString | +cgiReadEnvironment() | +cgiReferrer() | +cgiRemoteAddr | +cgiRemoteHost | +cgiRemoteIdent | +cgiRemoteUser | +cgiRequestMethod | +cgiScriptName | +cgiServerName | +cgiServerPort | +cgiServerProtocol | +cgiServerSoftware | +cgiStringArrayFree() | +cgiUserAgent | +cgiWriteEnvironment() diff --git a/3rdPartner/cgic-master/capture.c b/3rdPartner/cgic-master/capture.c new file mode 100644 index 0000000..fe0d155 --- /dev/null +++ b/3rdPartner/cgic-master/capture.c @@ -0,0 +1,12 @@ +#include "cgic.h" + +int cgiMain() { + cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat"); + cgiHeaderContentType("text/html"); + fprintf(cgiOut, "Captured\n"); + fprintf(cgiOut, "

Captured

\n"); + fprintf(cgiOut, "Your form submission was captured for use in\n"); + fprintf(cgiOut, "debugging CGI code.\n"); + return 0; +} + diff --git a/3rdPartner/cgic-master/cgic.c b/3rdPartner/cgic-master/cgic.c new file mode 100644 index 0000000..0af957f --- /dev/null +++ b/3rdPartner/cgic-master/cgic.c @@ -0,0 +1,2576 @@ +/* cgicTempDir is the only setting you are likely to need + to change in this file. */ + +/* Used only in Unix environments, in conjunction with mkstemp(). + Elsewhere (Windows), temporary files go where the tmpnam() + function suggests. If this behavior does not work for you, + modify the getTempFile() function to suit your needs. */ + +#define cgicTempDir "/tmp" +#define cgicMaxTempSize 1073741824 + +#if CGICDEBUG +#define CGICDEBUGSTART \ + { \ + FILE *dout; \ + dout = fopen("/home/boutell/public_html/debug", "a"); \ + +#define CGICDEBUGEND \ + fclose(dout); \ + } +#else /* CGICDEBUG */ +#define CGICDEBUGSTART +#define CGICDEBUGEND +#endif /* CGICDEBUG */ + +#include +#include +#include +#include +#include +#include +#include + +#ifdef WIN32 +#include + +/* cgic 2.01 */ +#include + +#else +#include +#endif /* WIN32 */ +#include "cgic.h" + +#define cgiStrEq(a, b) (!strcmp((a), (b))) + +char *cgiServerSoftware; +char *cgiServerName; +char *cgiGatewayInterface; +char *cgiServerProtocol; +char *cgiServerPort; +char *cgiRequestMethod; +char *cgiPathInfo; +char *cgiPathTranslated; +char *cgiScriptName; +char *cgiQueryString; +char *cgiRemoteHost; +char *cgiRemoteAddr; +char *cgiAuthType; +char *cgiRemoteUser; +char *cgiRemoteIdent; +char cgiContentTypeData[1024]; +char *cgiContentType = cgiContentTypeData; +char *cgiMultipartBoundary; +char *cgiCookie; +int cgiContentLength; +char *cgiAccept; +char *cgiUserAgent; +char *cgiReferrer; + +FILE *cgiIn; +FILE *cgiOut; + +/* True if CGI environment was restored from a file. */ +static int cgiRestored = 0; + +static void cgiGetenv(char **s, char *var); + +typedef enum { + cgiParseSuccess, + cgiParseMemory, + cgiParseIO +} cgiParseResultType; + +/* One form entry, consisting of an attribute-value pair, + and an optional filename and content type. All of + these are guaranteed to be valid null-terminated strings, + which will be of length zero in the event that the + field is not present, with the exception of tfileName + which will be null when 'in' is null. DO NOT MODIFY THESE + VALUES. Make local copies if modifications are desired. */ + +typedef struct cgiFormEntryStruct { + char *attr; + /* value is populated for regular form fields only. + For file uploads, it points to an empty string, and file + upload data should be read from the file tfileName. */ + char *value; + /* When fileName is not an empty string, tfileName is not null, + and 'value' points to an empty string. */ + /* Valid for both files and regular fields; does not include + terminating null of regular fields. */ + int valueLength; + char *fileName; + char *contentType; + /* Temporary file descriptor for working storage of file uploads. */ + FILE *tFile; + struct cgiFormEntryStruct *next; +} cgiFormEntry; + +/* The first form entry. */ +static cgiFormEntry *cgiFormEntryFirst; + +static cgiParseResultType cgiParseGetFormInput(); +static cgiParseResultType cgiParsePostFormInput(); +static cgiParseResultType cgiParsePostMultipartInput(); +static cgiParseResultType cgiParseFormInput(char *data, int length); +static void cgiSetupConstants(); +static void cgiFreeResources(); +static int cgiStrEqNc(char *s1, char *s2); +static int cgiStrBeginsNc(char *s1, char *s2); + +#ifdef UNIT_TEST +static int unitTest(); +#endif + +int main(int argc, char *argv[]) { + int result; + char *cgiContentLengthString; + char *e; + cgiSetupConstants(); + cgiGetenv(&cgiServerSoftware, "SERVER_SOFTWARE"); + cgiGetenv(&cgiServerName, "SERVER_NAME"); + cgiGetenv(&cgiGatewayInterface, "GATEWAY_INTERFACE"); + cgiGetenv(&cgiServerProtocol, "SERVER_PROTOCOL"); + cgiGetenv(&cgiServerPort, "SERVER_PORT"); + cgiGetenv(&cgiRequestMethod, "REQUEST_METHOD"); + cgiGetenv(&cgiPathInfo, "PATH_INFO"); + cgiGetenv(&cgiPathTranslated, "PATH_TRANSLATED"); + cgiGetenv(&cgiScriptName, "SCRIPT_NAME"); + cgiGetenv(&cgiQueryString, "QUERY_STRING"); + cgiGetenv(&cgiRemoteHost, "REMOTE_HOST"); + cgiGetenv(&cgiRemoteAddr, "REMOTE_ADDR"); + cgiGetenv(&cgiAuthType, "AUTH_TYPE"); + cgiGetenv(&cgiRemoteUser, "REMOTE_USER"); + cgiGetenv(&cgiRemoteIdent, "REMOTE_IDENT"); + /* 2.0: the content type string needs to be parsed and modified, so + copy it to a buffer. */ + e = getenv("CONTENT_TYPE"); + if (e) { + if (strlen(e) < sizeof(cgiContentTypeData)) { + strcpy(cgiContentType, e); + } else { + /* Truncate safely in the event of what is almost certainly + a hack attempt */ + strncpy(cgiContentType, e, sizeof(cgiContentTypeData)); + cgiContentType[sizeof(cgiContentTypeData) - 1] = '\0'; + } + } else { + cgiContentType[0] = '\0'; + } + /* Never null */ + cgiMultipartBoundary = ""; + /* 2.0: parse semicolon-separated additional parameters of the + content type. The one we're interested in is 'boundary'. + We discard the rest to make cgiContentType more useful + to the typical programmer. */ + if (strchr(cgiContentType, ';')) { + char *sat = strchr(cgiContentType, ';'); + while (sat) { + *sat = '\0'; + sat++; + while (isspace(*sat)) { + sat++; + } + if (cgiStrBeginsNc(sat, "boundary=")) { + char *s; + cgiMultipartBoundary = sat + strlen("boundary="); + s = cgiMultipartBoundary; + while ((*s) && (!isspace(*s))) { + s++; + } + *s = '\0'; + break; + } else { + sat = strchr(sat, ';'); + } + } + } + cgiGetenv(&cgiContentLengthString, "CONTENT_LENGTH"); + cgiContentLength = atoi(cgiContentLengthString); + cgiGetenv(&cgiAccept, "HTTP_ACCEPT"); + cgiGetenv(&cgiUserAgent, "HTTP_USER_AGENT"); + cgiGetenv(&cgiReferrer, "HTTP_REFERER"); + cgiGetenv(&cgiCookie, "HTTP_COOKIE"); +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "%d\n", cgiContentLength); + fprintf(dout, "%s\n", cgiRequestMethod); + fprintf(dout, "%s\n", cgiContentType); + CGICDEBUGEND +#endif /* CGICDEBUG */ +#ifdef WIN32 + /* 1.07: Must set stdin and stdout to binary mode */ + /* 2.0: this is particularly crucial now and must not be removed */ + _setmode( _fileno( stdin ), _O_BINARY ); + _setmode( _fileno( stdout ), _O_BINARY ); +#endif /* WIN32 */ + cgiFormEntryFirst = 0; + cgiIn = stdin; + cgiOut = stdout; + cgiRestored = 0; + + + /* These five lines keep compilers from + producing warnings that argc and argv + are unused. They have no actual function. */ + if (argc) { + if (argv[0]) { + cgiRestored = 0; + } + } + + + if (cgiStrEqNc(cgiRequestMethod, "post")) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "POST recognized\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (cgiStrEqNc(cgiContentType, "application/x-www-form-urlencoded")) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "Calling PostFormInput\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (cgiParsePostFormInput() != cgiParseSuccess) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "PostFormInput failed\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + cgiHeaderStatus(500, "Error reading form data"); + cgiFreeResources(); + return -1; + } +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "PostFormInput succeeded\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + } else if (cgiStrEqNc(cgiContentType, "multipart/form-data")) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "Calling PostMultipartInput\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (cgiParsePostMultipartInput() != cgiParseSuccess) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "PostMultipartInput failed\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + cgiHeaderStatus(500, "Error reading form data"); + cgiFreeResources(); + return -1; + } +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "PostMultipartInput succeeded\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + } + } else if (cgiStrEqNc(cgiRequestMethod, "get")) { + /* The spec says this should be taken care of by + the server, but... it isn't */ + cgiContentLength = strlen(cgiQueryString); + if (cgiParseGetFormInput() != cgiParseSuccess) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "GetFormInput failed\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + cgiHeaderStatus(500, "Error reading form data"); + cgiFreeResources(); + return -1; + } else { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "GetFormInput succeeded\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + } + } +#ifdef UNIT_TEST + unitTest(); + cgiFreeResources(); + return 0; +#else + result = cgiMain(); + return result; +#endif +} + +static void cgiGetenv(char **s, char *var){ + *s = getenv(var); + if (!(*s)) { + *s = ""; + } +} + +static cgiParseResultType cgiParsePostFormInput() { + char *input; + cgiParseResultType result; + if (!cgiContentLength) { + return cgiParseSuccess; + } + input = (char *) malloc(cgiContentLength); + if (!input) { + return cgiParseMemory; + } + if (((int) fread(input, 1, cgiContentLength, cgiIn)) + != cgiContentLength) + { + return cgiParseIO; + } + result = cgiParseFormInput(input, cgiContentLength); + free(input); + return result; +} + +/* 2.0: A virtual datastream supporting putback of + enough characters to handle multipart boundaries easily. + A simple memset(&mp, 0, sizeof(mp)) is suitable initialization. */ + +typedef struct { + /* Buffer for putting characters back */ + char putback[1024]; + /* Position in putback from which next character will be read. + If readPos == writePos, then next character should + come from cgiIn. */ + int readPos; + /* Position in putback to which next character will be put back. + If writePos catches up to readPos, as opposed to the other + way around, the stream no longer functions properly. + Calling code must guarantee that no more than + sizeof(putback) bytes are put back at any given time. */ + int writePos; + /* Offset in the virtual datastream; can be compared + to cgiContentLength */ + int offset; +} mpStream, *mpStreamPtr; + +int mpRead(mpStreamPtr mpp, char *buffer, int len) +{ + int ilen = len; + int got = 0; + /* Refuse to read past the declared length in order to + avoid deadlock */ + if (len > (cgiContentLength - mpp->offset)) { + len = cgiContentLength - mpp->offset; + } + while (len) { + if (mpp->readPos != mpp->writePos) { + *buffer++ = mpp->putback[mpp->readPos++]; + mpp->readPos %= sizeof(mpp->putback); + got++; + len--; + } else { + break; + } + } + if (len) { + int fgot = fread(buffer, 1, len, cgiIn); + if (fgot >= 0) { + mpp->offset += (got + fgot); + return got + fgot; + } else if (got > 0) { + mpp->offset += got; + return got; + } else { + /* EOF or error */ + return fgot; + } + } else if (got) { + mpp->offset += got; + return got; + } else if (ilen) { + return EOF; + } else { + /* 2.01 */ + return 0; + } +} + +void mpPutBack(mpStreamPtr mpp, char *data, int len) +{ + mpp->offset -= len; + while (len) { + mpp->putback[mpp->writePos++] = *data++; + mpp->writePos %= sizeof(mpp->putback); + len--; + } +} + +/* This function copies the body to outf if it is not null, otherwise to + a newly allocated character buffer at *outP, which will be null + terminated; if both outf and outP are null the body is not stored. + If bodyLengthP is not null, the size of the body in bytes is stored + to *bodyLengthP, not including any terminating null added to *outP. + If 'first' is nonzero, a preceding newline is not expected before + the boundary. If 'first' is zero, a preceding newline is expected. + Upon return mpp is positioned after the boundary and its trailing + newline, if any; if the boundary is followed by -- the next two + characters read after this function returns will be --. Upon error, + if outP is not null, *outP is a null pointer; *bodyLengthP + is set to zero. Returns cgiParseSuccess, cgiParseMemory + or cgiParseIO. */ + +static cgiParseResultType afterNextBoundary(mpStreamPtr mpp, + FILE *outf, + char **outP, + int *bodyLengthP, + int first + ); + +static int readHeaderLine( + mpStreamPtr mpp, + char *attr, + int attrSpace, + char *value, + int valueSpace); + +static void decomposeValue(char *value, + char *mvalue, int mvalueSpace, + char **argNames, + char **argValues, + int argValueSpace); + +static cgiParseResultType getTempFile(FILE **tFile); + +static cgiParseResultType cgiParsePostMultipartInput() { + cgiParseResultType result; + cgiFormEntry *n = 0, *l = 0; + int got; + FILE *outf = 0; + char *out = 0; + mpStream mp; + mpStreamPtr mpp = ∓ + memset(&mp, 0, sizeof(mp)); + if (!cgiContentLength) { + return cgiParseSuccess; + } + /* Read first boundary, including trailing newline */ + result = afterNextBoundary(mpp, 0, 0, 0, 1); + if (result == cgiParseIO) { + /* An empty submission is not necessarily an error */ + return cgiParseSuccess; + } else if (result != cgiParseSuccess) { + return result; + } + while (1) { + char d[1024]; + char fvalue[1024]; + char fname[1024]; + int bodyLength = 0; + char ffileName[1024]; + char fcontentType[1024]; + char attr[1024]; + char value[1024]; + fvalue[0] = 0; + fname[0] = 0; + ffileName[0] = 0; + fcontentType[0] = 0; + out = 0; + outf = 0; + /* Check for EOF */ + got = mpRead(mpp, d, 2); + if (got < 2) { + /* Crude EOF */ + break; + } + if ((d[0] == '-') && (d[1] == '-')) { + /* Graceful EOF */ + break; + } + mpPutBack(mpp, d, 2); + /* Read header lines until end of header */ + while (readHeaderLine( + mpp, attr, sizeof(attr), value, sizeof(value))) + { + char *argNames[3]; + char *argValues[2]; + /* Content-Disposition: form-data; + name="test"; filename="googley.gif" */ + if (cgiStrEqNc(attr, "Content-Disposition")) { + argNames[0] = "name"; + argNames[1] = "filename"; + argNames[2] = 0; + argValues[0] = fname; + argValues[1] = ffileName; + decomposeValue(value, + fvalue, sizeof(fvalue), + argNames, + argValues, + 1024); + } else if (cgiStrEqNc(attr, "Content-Type")) { + argNames[0] = 0; + decomposeValue(value, + fcontentType, sizeof(fcontentType), + argNames, + 0, + 0); + } + } + if (!cgiStrEqNc(fvalue, "form-data")) { + /* Not form data */ + result = afterNextBoundary(mpp, 0, 0, 0, 0); + if (result != cgiParseSuccess) { + /* Lack of a boundary here is an error. */ + return result; + } + continue; + } + /* Body is everything from here until the next + boundary. So, set it aside and move past boundary. + If a filename was submitted as part of the + disposition header, store to a temporary file. + Otherwise, store to a memory buffer (it is + presumably a regular form field). */ + if (strlen(ffileName)) { + if (getTempFile(&outf) != cgiParseSuccess) { + return cgiParseIO; + } + } else { + outf = 0; + } + result = afterNextBoundary(mpp, outf, &out, &bodyLength, 0); + if (result != cgiParseSuccess) { + /* Lack of a boundary here is an error. */ + if (outf) { + fclose(outf); + } + if (out) { + free(out); + } + return result; + } + /* OK, we have a new pair, add it to the list. */ + n = (cgiFormEntry *) malloc(sizeof(cgiFormEntry)); + if (!n) { + goto outOfMemory; + } + memset(n, 0, sizeof(cgiFormEntry)); + /* 2.01: one of numerous new casts required + to please C++ compilers */ + n->attr = (char *) malloc(strlen(fname) + 1); + if (!n->attr) { + goto outOfMemory; + } + strcpy(n->attr, fname); + if (out) { + n->value = out; + out = 0; + } else if (outf) { + n->value = (char *) malloc(1); + if (!n->value) { + goto outOfMemory; + } + n->value[0] = '\0'; + } + n->valueLength = bodyLength; + n->next = 0; + if (!l) { + cgiFormEntryFirst = n; + } else { + l->next = n; + } + n->fileName = (char *) malloc(strlen(ffileName) + 1); + if (!n->fileName) { + goto outOfMemory; + } + strcpy(n->fileName, ffileName); + n->contentType = (char *) malloc(strlen(fcontentType) + 1); + if (!n->contentType) { + goto outOfMemory; + } + strcpy(n->contentType, fcontentType); + + if(outf) + { + n->tFile = fdopen (dup (fileno (outf)), "w+b"); + fclose(outf); + } + + l = n; + } + return cgiParseSuccess; +outOfMemory: + if (n) { + if (n->attr) { + free(n->attr); + } + if (n->value) { + free(n->value); + } + if (n->fileName) { + free(n->fileName); + } + if (n->tFile) { + fclose(n->tFile); + } + if (n->contentType) { + free(n->contentType); + } + free(n); + } + if (out) { + free(out); + } + if (outf) { + fclose(outf); + } + +return cgiParseMemory; +} + +static cgiParseResultType getTempFile(FILE **tFile) +{ + /* tfileName must be 1024 bytes to ensure adequacy on + win32 (1024 exceeds the maximum path length and + certainly exceeds observed behavior of _tmpnam). + May as well also be 1024 bytes on Unix, although actual + length is strlen(cgiTempDir) + a short unique pattern. */ + char tfileName[1024]; + +#ifndef WIN32 + /* Unix. Use the robust 'mkstemp' function to create + a temporary file that is truly unique, with + permissions that are truly safe. The + fopen-for-write destroys any bogus information + written by potential hackers during the brief + window between the file's creation and the + chmod call (glibc 2.0.6 and lower might + otherwise have allowed this). */ + int outfd; + strcpy(tfileName, cgicTempDir "/cgicXXXXXX"); + outfd = mkstemp(tfileName); + if (outfd == -1) { + return cgiParseIO; + } + close(outfd); + /* Fix the permissions */ + if (chmod(tfileName, 0600) != 0) { + unlink(tfileName); + return cgiParseIO; + } +#else + /* Non-Unix. Do what we can. */ + if (!tmpnam(tfileName)) { + return cgiParseIO; + } +#endif + *tFile = fopen(tfileName, "w+b"); + unlink(tfileName); + return cgiParseSuccess; +} + + +#define APPEND(string, char) \ + { \ + if ((string##Len + 1) < string##Space) { \ + string[string##Len++] = (char); \ + } \ + } + +#define RAPPEND(string, ch) \ + { \ + if ((string##Len + 1) == string##Space) { \ + char *sold = string; \ + string##Space *= 2; \ + string = (char *) realloc(string, string##Space); \ + if (!string) { \ + string = sold; \ + goto outOfMemory; \ + } \ + } \ + string[string##Len++] = (ch); \ + } + +#define BAPPEND(ch) \ + { \ + if (outf) { \ + putc(ch, outf); \ + outLen++; \ + } else if (out) { \ + RAPPEND(out, ch); \ + } \ + } + +cgiParseResultType afterNextBoundary(mpStreamPtr mpp, FILE *outf, char **outP, + int *bodyLengthP, int first) +{ + int outLen = 0; + int outSpace = 256; + char *out = 0; + cgiParseResultType result; + int boffset; + int got; + char d[2]; + /* This is large enough, because the buffer into which the + original boundary string is fetched is shorter by more + than four characters due to the space required for + the attribute name */ + char workingBoundaryData[1024]; + char *workingBoundary = workingBoundaryData; + int workingBoundaryLength; + if ((!outf) && (outP)) { + out = (char *) malloc(outSpace); + if (!out) { + goto outOfMemory; + } + } + boffset = 0; + sprintf(workingBoundaryData, "\r\n--%s", cgiMultipartBoundary); + if (first) { + workingBoundary = workingBoundaryData + 2; + } + workingBoundaryLength = strlen(workingBoundary); + while (1) { + got = mpRead(mpp, d, 1); + if (got != 1) { + /* 2.01: cgiParseIO, not cgiFormIO */ + result = cgiParseIO; + goto error; + } + if (d[0] == workingBoundary[boffset]) { + /* We matched the next byte of the boundary. + Keep track of our progress into the + boundary and don't emit anything. */ + boffset++; + if (boffset == workingBoundaryLength) { + break; + } + } else if (boffset > 0) { + /* We matched part, but not all, of the + boundary. Now we have to be careful: + put back all except the first + character and try again. The + real boundary could begin in the + middle of a false match. We can + emit the first character only so far. */ + BAPPEND(workingBoundary[0]); + mpPutBack(mpp, + workingBoundary + 1, boffset - 1); + mpPutBack(mpp, d, 1); + boffset = 0; + } else { + /* Not presently in the middle of a boundary + match; just emit the character. */ + BAPPEND(d[0]); + } + if(outLen > cgicMaxTempSize) { + goto outOfMemory; + } + } + /* Read trailing newline or -- EOF marker. A literal EOF here + would be an error in the input stream. */ + got = mpRead(mpp, d, 2); + if (got != 2) { + result = cgiParseIO; + goto error; + } + if ((d[0] == '\r') && (d[1] == '\n')) { + /* OK, EOL */ + } else if (d[0] == '-') { + /* Probably EOF, but we check for + that later */ + mpPutBack(mpp, d, 2); + } + if (out && outSpace) { + char *oout = out; + out[outLen] = '\0'; + out = (char *) realloc(out, outLen + 1); + if (!out) { + /* Surprising if it happens; and not fatal! We were + just trying to give some space back. We can + keep it if we have to. */ + out = oout; + } + *outP = out; + } + if (bodyLengthP) { + *bodyLengthP = outLen; + } + return cgiParseSuccess; +outOfMemory: + result = cgiParseMemory; + if (outP) { + if (out) { + free(out); + } + *outP = 0; + } +error: + if (bodyLengthP) { + *bodyLengthP = 0; + } + if (out) { + free(out); + } + if (outP) { + *outP = 0; + } + return result; +} + +static void decomposeValue(char *value, + char *mvalue, int mvalueSpace, + char **argNames, + char **argValues, + int argValueSpace) +{ + char argName[1024]; + int argNameSpace = sizeof(argName); + int argNameLen = 0; + int mvalueLen = 0; + char *argValue; + int argNum = 0; + while (argNames[argNum]) { + if (argValueSpace) { + argValues[argNum][0] = '\0'; + } + argNum++; + } + while (isspace(*value)) { + value++; + } + /* Quoted mvalue */ + if (*value == '\"') { + value++; + while ((*value) && (*value != '\"')) { + APPEND(mvalue, *value); + value++; + } + while ((*value) && (*value != ';')) { + value++; + } + } else { + /* Unquoted mvalue */ + while ((*value) && (*value != ';')) { + APPEND(mvalue, *value); + value++; + } + } + if (mvalueSpace) { + mvalue[mvalueLen] = '\0'; + } + while (*value == ';') { + int argNum; + int argValueLen = 0; + /* Skip the ; between parameters */ + value++; + /* Now skip leading whitespace */ + while ((*value) && (isspace(*value))) { + value++; + } + /* Now read the parameter name */ + argNameLen = 0; + while ((*value) && (isalnum(*value))) { + APPEND(argName, *value); + value++; + } + if (argNameSpace) { + argName[argNameLen] = '\0'; + } + while ((*value) && isspace(*value)) { + value++; + } + if (*value != '=') { + /* Malformed line */ + return; + } + value++; + while ((*value) && isspace(*value)) { + value++; + } + /* Find the parameter in the argument list, if present */ + argNum = 0; + argValue = 0; + while (argNames[argNum]) { + if (cgiStrEqNc(argName, argNames[argNum])) { + argValue = argValues[argNum]; + break; + } + argNum++; + } + /* Finally, read the parameter value */ + if (*value == '\"') { + value++; + while ((*value) && (*value != '\"')) { + if (argValue) { + APPEND(argValue, *value); + } + value++; + } + while ((*value) && (*value != ';')) { + value++; + } + } else { + /* Unquoted value */ + while ((*value) && (*value != ';')) { + if (argNames[argNum]) { + APPEND(argValue, *value); + } + value++; + } + } + if (argValueSpace) { + if (argValue) { + argValue[argValueLen] = '\0'; + } + } + } +} + +static int readHeaderLine( + mpStreamPtr mpp, + char *attr, + int attrSpace, + char *value, + int valueSpace) +{ + int attrLen = 0; + int valueLen = 0; + int valueFound = 0; + while (1) { + char d[1]; + int got = mpRead(mpp, d, 1); + if (got != 1) { + return 0; + } + if (d[0] == '\r') { + got = mpRead(mpp, d, 1); + if (got == 1) { + if (d[0] == '\n') { + /* OK */ + } else { + mpPutBack(mpp, d, 1); + } + } + break; + } else if (d[0] == '\n') { + break; + } else if ((d[0] == ':') && attrLen) { + valueFound = 1; + while (mpRead(mpp, d, 1) == 1) { + if (!isspace(d[0])) { + mpPutBack(mpp, d, 1); + break; + } + } + } else if (!valueFound) { + if (!isspace(*d)) { + if (attrLen < (attrSpace - 1)) { + attr[attrLen++] = *d; + } + } + } else if (valueFound) { + if (valueLen < (valueSpace - 1)) { + value[valueLen++] = *d; + } + } + } + if (attrSpace) { + attr[attrLen] = '\0'; + } + if (valueSpace) { + value[valueLen] = '\0'; + } + if (attrLen && valueLen) { + return 1; + } else { + return 0; + } +} + +static cgiParseResultType cgiParseGetFormInput() { + return cgiParseFormInput(cgiQueryString, cgiContentLength); +} + +typedef enum { + cgiEscapeRest, + cgiEscapeFirst, + cgiEscapeSecond +} cgiEscapeState; + +typedef enum { + cgiUnescapeSuccess, + cgiUnescapeMemory +} cgiUnescapeResultType; + +static cgiUnescapeResultType cgiUnescapeChars(char **sp, char *cp, int len); + +static cgiParseResultType cgiParseFormInput(char *data, int length) { + /* Scan for pairs, unescaping and storing them as they are found. */ + int pos = 0; + cgiFormEntry *n; + cgiFormEntry *l = 0; + while (pos != length) { + int foundAmp = 0; + int start = pos; + int len = 0; + char *attr; + char *value; + while (pos != length) { + if (data[pos] == '&') { + /* Tolerate attr name without a value. This will fall through + and give us an empty value */ + break; + } + if (data[pos] == '=') { + pos++; + break; + } + pos++; + len++; + } + if (!len) { + break; + } + if (cgiUnescapeChars(&attr, data+start, len) + != cgiUnescapeSuccess) { + return cgiParseMemory; + } + start = pos; + len = 0; + while (pos != length) { + if (data[pos] == '&') { + foundAmp = 1; + pos++; + break; + } + pos++; + len++; + } + /* The last pair probably won't be followed by a &, but + that's fine, so check for that after accepting it */ + if (cgiUnescapeChars(&value, data+start, len) + != cgiUnescapeSuccess) { + free(attr); + return cgiParseMemory; + } + /* OK, we have a new pair, add it to the list. */ + n = (cgiFormEntry *) malloc(sizeof(cgiFormEntry)); + if (!n) { + free(attr); + free(value); + return cgiParseMemory; + } + n->attr = attr; + n->value = value; + n->valueLength = strlen(n->value); + n->fileName = (char *) malloc(1); + if (!n->fileName) { + free(attr); + free(value); + free(n); + return cgiParseMemory; + } + n->fileName[0] = '\0'; + n->contentType = (char *) malloc(1); + if (!n->contentType) { + free(attr); + free(value); + free(n->fileName); + free(n); + return cgiParseMemory; + } + n->contentType[0] = '\0'; + n->next = 0; + if (!l) { + cgiFormEntryFirst = n; + } else { + l->next = n; + } + l = n; + if (!foundAmp) { + break; + } + } + return cgiParseSuccess; +} + +static int cgiHexValue[256]; + +cgiUnescapeResultType cgiUnescapeChars(char **sp, char *cp, int len) { + char *s; + cgiEscapeState escapeState = cgiEscapeRest; + int escapedValue = 0; + int srcPos = 0; + int dstPos = 0; + s = (char *) malloc(len + 1); + if (!s) { + return cgiUnescapeMemory; + } + while (srcPos < len) { + int ch = cp[srcPos]; + switch (escapeState) { + case cgiEscapeRest: + if (ch == '%') { + escapeState = cgiEscapeFirst; + } else if (ch == '+') { + s[dstPos++] = ' '; + } else { + s[dstPos++] = ch; + } + break; + case cgiEscapeFirst: + escapedValue = cgiHexValue[ch] << 4; + escapeState = cgiEscapeSecond; + break; + case cgiEscapeSecond: + escapedValue += cgiHexValue[ch]; + s[dstPos++] = escapedValue; + escapeState = cgiEscapeRest; + break; + } + srcPos++; + } + s[dstPos] = '\0'; + *sp = s; + return cgiUnescapeSuccess; +} + +static void cgiSetupConstants() { + int i; + for (i=0; (i < 256); i++) { + cgiHexValue[i] = 0; + } + cgiHexValue['0'] = 0; + cgiHexValue['1'] = 1; + cgiHexValue['2'] = 2; + cgiHexValue['3'] = 3; + cgiHexValue['4'] = 4; + cgiHexValue['5'] = 5; + cgiHexValue['6'] = 6; + cgiHexValue['7'] = 7; + cgiHexValue['8'] = 8; + cgiHexValue['9'] = 9; + cgiHexValue['A'] = 10; + cgiHexValue['B'] = 11; + cgiHexValue['C'] = 12; + cgiHexValue['D'] = 13; + cgiHexValue['E'] = 14; + cgiHexValue['F'] = 15; + cgiHexValue['a'] = 10; + cgiHexValue['b'] = 11; + cgiHexValue['c'] = 12; + cgiHexValue['d'] = 13; + cgiHexValue['e'] = 14; + cgiHexValue['f'] = 15; +} + +static void cgiFreeResources() { + cgiFormEntry *c = cgiFormEntryFirst; + cgiFormEntry *n; + while (c) { + n = c->next; + free(c->attr); + free(c->value); + free(c->fileName); + free(c->contentType); + if (c->tFile) { + fclose(c->tFile); + } + free(c); + c = n; + } + /* If the cgi environment was restored from a saved environment, + then these are in allocated space and must also be freed */ + if (cgiRestored) { + free(cgiServerSoftware); + free(cgiServerName); + free(cgiGatewayInterface); + free(cgiServerProtocol); + free(cgiServerPort); + free(cgiRequestMethod); + free(cgiPathInfo); + free(cgiPathTranslated); + free(cgiScriptName); + free(cgiQueryString); + free(cgiRemoteHost); + free(cgiRemoteAddr); + free(cgiAuthType); + free(cgiRemoteUser); + free(cgiRemoteIdent); + free(cgiContentType); + free(cgiAccept); + free(cgiUserAgent); + free(cgiReferrer); + } + /* 2.0: to clean up the environment for cgiReadEnvironment, + we must set these correctly */ + cgiFormEntryFirst = 0; + cgiRestored = 0; +} + +static cgiFormResultType cgiFormEntryString( + cgiFormEntry *e, char *result, int max, int newlines); + +static cgiFormEntry *cgiFormEntryFindFirst(char *name); +static cgiFormEntry *cgiFormEntryFindNext(); + +cgiFormResultType cgiFormString( + char *name, char *result, int max) { + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + strcpy(result, ""); + return cgiFormNotFound; + } + return cgiFormEntryString(e, result, max, 1); +} + +cgiFormResultType cgiFormFileName( + char *name, char *result, int resultSpace) +{ + cgiFormEntry *e; + int resultLen = 0; + char *s; + e = cgiFormEntryFindFirst(name); + if (!e) { + strcpy(result, ""); + return cgiFormNotFound; + } + s = e->fileName; + while (*s) { + APPEND(result, *s); + s++; + } + if (resultSpace) { + result[resultLen] = '\0'; + } + if (!strlen(e->fileName)) { + return cgiFormNoFileName; + } else if (((int) strlen(e->fileName)) > (resultSpace - 1)) { + return cgiFormTruncated; + } else { + return cgiFormSuccess; + } +} + +cgiFormResultType cgiFormFileContentType( + char *name, char *result, int resultSpace) +{ + cgiFormEntry *e; + int resultLen = 0; + char *s; + e = cgiFormEntryFindFirst(name); + if (!e) { + if (resultSpace) { + result[0] = '\0'; + } + return cgiFormNotFound; + } + s = e->contentType; + while (*s) { + APPEND(result, *s); + s++; + } + if (resultSpace) { + result[resultLen] = '\0'; + } + if (!strlen(e->contentType)) { + return cgiFormNoContentType; + } else if (((int) strlen(e->contentType)) > (resultSpace - 1)) { + return cgiFormTruncated; + } else { + return cgiFormSuccess; + } +} + +cgiFormResultType cgiFormFileSize( + char *name, int *sizeP) +{ + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + if (sizeP) { + *sizeP = 0; + } + return cgiFormNotFound; + } else if (!e->tFile) { + if (sizeP) { + *sizeP = 0; + } + return cgiFormNotAFile; + } else { + if (sizeP) { + *sizeP = e->valueLength; + } + return cgiFormSuccess; + } +} + +typedef struct cgiFileStruct { + FILE *in; +} cgiFile; + +cgiFormResultType cgiFormFileOpen( + char *name, cgiFilePtr *cfpp) +{ + cgiFormEntry *e; + cgiFilePtr cfp; + e = cgiFormEntryFindFirst(name); + if (!e) { + *cfpp = 0; + return cgiFormNotFound; + } + if (!e->tFile) { + *cfpp = 0; + return cgiFormNotAFile; + } + cfp = (cgiFilePtr) malloc(sizeof(cgiFile)); + if (!cfp) { + *cfpp = 0; + return cgiFormMemory; + } + cfp->in = fdopen(dup(fileno(e->tFile)), "rb"); + rewind(cfp->in); + if (!cfp->in) { + free(cfp); + return cgiFormIO; + } + *cfpp = cfp; + return cgiFormSuccess; +} + +cgiFormResultType cgiFormFileRead( + cgiFilePtr cfp, char *buffer, + int bufferSize, int *gotP) +{ + int got = 0; + if (!cfp) { + return cgiFormOpenFailed; + } + got = fread(buffer, 1, bufferSize, cfp->in); + if (got <= 0) { + return cgiFormEOF; + } + *gotP = got; + return cgiFormSuccess; +} + +cgiFormResultType cgiFormFileClose(cgiFilePtr cfp) +{ + if (!cfp) { + return cgiFormOpenFailed; + } + fclose(cfp->in); + free(cfp); + return cgiFormSuccess; +} + +cgiFormResultType cgiFormStringNoNewlines( + char *name, char *result, int max) { + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + strcpy(result, ""); + return cgiFormNotFound; + } + return cgiFormEntryString(e, result, max, 0); +} + +cgiFormResultType cgiFormStringMultiple( + char *name, char ***result) { + char **stringArray; + cgiFormEntry *e; + int i; + int total = 0; + /* Make two passes. One would be more efficient, but this + function is not commonly used. The select menu and + radio box functions are faster. */ + e = cgiFormEntryFindFirst(name); + if (e != 0) { + do { + total++; + } while ((e = cgiFormEntryFindNext()) != 0); + } + stringArray = (char **) malloc(sizeof(char *) * (total + 1)); + if (!stringArray) { + *result = 0; + return cgiFormMemory; + } + /* initialize all entries to null; the last will stay that way */ + for (i=0; (i <= total); i++) { + stringArray[i] = 0; + } + /* Now go get the entries */ + e = cgiFormEntryFindFirst(name); +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "StringMultiple Beginning\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (e) { + i = 0; + do { + int max = (int) (strlen(e->value) + 1); + stringArray[i] = (char *) malloc(max); + if (stringArray[i] == 0) { + /* Memory problems */ + cgiStringArrayFree(stringArray); + *result = 0; + return cgiFormMemory; + } + strcpy(stringArray[i], e->value); + cgiFormEntryString(e, stringArray[i], max, 1); + i++; + } while ((e = cgiFormEntryFindNext()) != 0); + *result = stringArray; +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "StringMultiple Succeeding\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + return cgiFormSuccess; + } else { + *result = stringArray; +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "StringMultiple found nothing\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + return cgiFormNotFound; + } +} + +cgiFormResultType cgiFormStringSpaceNeeded( + char *name, int *result) { + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + *result = 1; + return cgiFormNotFound; + } + *result = ((int) strlen(e->value)) + 1; + return cgiFormSuccess; +} + +static cgiFormResultType cgiFormEntryString( + cgiFormEntry *e, char *result, int max, int newlines) { + char *dp, *sp; + int truncated = 0; + int len = 0; + int avail = max-1; + int crCount = 0; + int lfCount = 0; + dp = result; + sp = e->value; + while (1) { + int ch; + /* 1.07: don't check for available space now. + We check for it immediately before adding + an actual character. 1.06 handled the + trailing null of the source string improperly, + resulting in a cgiFormTruncated error. */ + ch = *sp; + /* Fix the CR/LF, LF, CR nightmare: watch for + consecutive bursts of CRs and LFs in whatever + pattern, then actually output the larger number + of LFs. Consistently sane, yet it still allows + consecutive blank lines when the user + actually intends them. */ + if ((ch == 13) || (ch == 10)) { + if (ch == 13) { + crCount++; + } else { + lfCount++; + } + } else { + if (crCount || lfCount) { + int lfsAdd = crCount; + if (lfCount > crCount) { + lfsAdd = lfCount; + } + /* Stomp all newlines if desired */ + if (!newlines) { + lfsAdd = 0; + } + while (lfsAdd) { + if (len >= avail) { + truncated = 1; + break; + } + *dp = 10; + dp++; + lfsAdd--; + len++; + } + crCount = 0; + lfCount = 0; + } + if (ch == '\0') { + /* The end of the source string */ + break; + } + /* 1.06: check available space before adding + the character, because a previously added + LF may have brought us to the limit */ + if (len >= avail) { + truncated = 1; + break; + } + *dp = ch; + dp++; + len++; + } + sp++; + } + *dp = '\0'; + if (truncated) { + return cgiFormTruncated; + } else if (!len) { + return cgiFormEmpty; + } else { + return cgiFormSuccess; + } +} + +static int cgiFirstNonspaceChar(char *s); + +cgiFormResultType cgiFormInteger( + char *name, int *result, int defaultV) { + cgiFormEntry *e; + int ch; + e = cgiFormEntryFindFirst(name); + if (!e) { + *result = defaultV; + return cgiFormNotFound; + } + if (!strlen(e->value)) { + *result = defaultV; + return cgiFormEmpty; + } + ch = cgiFirstNonspaceChar(e->value); + if (!(isdigit(ch)) && (ch != '-') && (ch != '+')) { + *result = defaultV; + return cgiFormBadType; + } else { + *result = atoi(e->value); + return cgiFormSuccess; + } +} + +cgiFormResultType cgiFormIntegerBounded( + char *name, int *result, int min, int max, int defaultV) { + cgiFormResultType error = cgiFormInteger(name, result, defaultV); + if (error != cgiFormSuccess) { + return error; + } + if (*result < min) { + *result = min; + return cgiFormConstrained; + } + if (*result > max) { + *result = max; + return cgiFormConstrained; + } + return cgiFormSuccess; +} + +cgiFormResultType cgiFormDouble( + char *name, double *result, double defaultV) { + cgiFormEntry *e; + int ch; + e = cgiFormEntryFindFirst(name); + if (!e) { + *result = defaultV; + return cgiFormNotFound; + } + if (!strlen(e->value)) { + *result = defaultV; + return cgiFormEmpty; + } + ch = cgiFirstNonspaceChar(e->value); + if (!(isdigit(ch)) && (ch != '.') && (ch != '-') && (ch != '+')) { + *result = defaultV; + return cgiFormBadType; + } else { + *result = atof(e->value); + return cgiFormSuccess; + } +} + +cgiFormResultType cgiFormDoubleBounded( + char *name, double *result, double min, double max, double defaultV) { + cgiFormResultType error = cgiFormDouble(name, result, defaultV); + if (error != cgiFormSuccess) { + return error; + } + if (*result < min) { + *result = min; + return cgiFormConstrained; + } + if (*result > max) { + *result = max; + return cgiFormConstrained; + } + return cgiFormSuccess; +} + +cgiFormResultType cgiFormSelectSingle( + char *name, char **choicesText, int choicesTotal, + int *result, int defaultV) +{ + cgiFormEntry *e; + int i; + e = cgiFormEntryFindFirst(name); +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "%d\n", (int) e); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (!e) { + *result = defaultV; + return cgiFormNotFound; + } + for (i=0; (i < choicesTotal); i++) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "%s %s\n", choicesText[i], e->value); + CGICDEBUGEND +#endif /* CGICDEBUG */ + if (cgiStrEq(choicesText[i], e->value)) { +#ifdef CGICDEBUG + CGICDEBUGSTART + fprintf(dout, "MATCH\n"); + CGICDEBUGEND +#endif /* CGICDEBUG */ + *result = i; + return cgiFormSuccess; + } + } + *result = defaultV; + return cgiFormNoSuchChoice; +} + +cgiFormResultType cgiFormSelectMultiple( + char *name, char **choicesText, int choicesTotal, + int *result, int *invalid) +{ + cgiFormEntry *e; + int i; + int hits = 0; + int invalidE = 0; + for (i=0; (i < choicesTotal); i++) { + result[i] = 0; + } + e = cgiFormEntryFindFirst(name); + if (!e) { + *invalid = invalidE; + return cgiFormNotFound; + } + do { + int hit = 0; + for (i=0; (i < choicesTotal); i++) { + if (cgiStrEq(choicesText[i], e->value)) { + result[i] = 1; + hits++; + hit = 1; + break; + } + } + if (!(hit)) { + invalidE++; + } + } while ((e = cgiFormEntryFindNext()) != 0); + + *invalid = invalidE; + + if (hits) { + return cgiFormSuccess; + } else { + return cgiFormNotFound; + } +} + +cgiFormResultType cgiFormCheckboxSingle( + char *name) +{ + cgiFormEntry *e; + e = cgiFormEntryFindFirst(name); + if (!e) { + return cgiFormNotFound; + } + return cgiFormSuccess; +} + +extern cgiFormResultType cgiFormCheckboxMultiple( + char *name, char **valuesText, int valuesTotal, + int *result, int *invalid) +{ + /* Implementation is identical to cgiFormSelectMultiple. */ + return cgiFormSelectMultiple(name, valuesText, + valuesTotal, result, invalid); +} + +cgiFormResultType cgiFormRadio( + char *name, + char **valuesText, int valuesTotal, int *result, int defaultV) +{ + /* Implementation is identical to cgiFormSelectSingle. */ + return cgiFormSelectSingle(name, valuesText, valuesTotal, + result, defaultV); +} + +cgiFormResultType cgiCookieString( + char *name, + char *value, + int space) +{ + char *p = cgiCookie; + while (*p) { + char *n = name; + /* 2.02: if cgiCookie is exactly equal to name, this + can cause an overrun. The server probably wouldn't + allow it, since a name without values makes no sense + -- but then again it might not check, so this is a + genuine security concern. Thanks to Nicolas + Tomadakis. */ + while (*p == *n) { + if ((*p == '\0') && (*n == '\0')) { + /* Malformed cookie header from client */ + return cgiFormNotFound; + } + p++; + n++; + } + if ((!*n) && (*p == '=')) { + p++; + while ((*p != ';') && (*p != '\0') && + (space > 1)) + { + *value = *p; + value++; + p++; + space--; + } + if (space > 0) { + *value = '\0'; + } + /* Correct parens: 2.02. Thanks to + Mathieu Villeneuve-Belair. */ + if (!(((*p) == ';') || ((*p) == '\0'))) + { + return cgiFormTruncated; + } else { + return cgiFormSuccess; + } + } else { + /* Skip to next cookie */ + while (*p) { + if (*p == ';') { + break; + } + p++; + } + if (!*p) { + /* 2.01: default to empty */ + if (space) { + *value = '\0'; + } + return cgiFormNotFound; + } + p++; + /* Allow whitespace after semicolon */ + while ((*p) && isspace(*p)) { + p++; + } + } + } + /* 2.01: actually the above loop never terminates except + with a return, but do this to placate gcc */ + /* Actually, it can, so this is real. */ + if (space) { + *value = '\0'; + } + return cgiFormNotFound; +} + +cgiFormResultType cgiCookieInteger( + char *name, + int *result, + int defaultV) +{ + char buffer[256]; + cgiFormResultType r = + cgiCookieString(name, buffer, sizeof(buffer)); + if (r != cgiFormSuccess) { + *result = defaultV; + } else { + *result = atoi(buffer); + } + return r; +} + +void cgiHeaderCookieSetInteger(char *name, int value, int secondsToLive, + char *path, char *domain) +{ + char svalue[256]; + sprintf(svalue, "%d", value); + cgiHeaderCookieSet(name, svalue, secondsToLive, path, domain, 0); +} + +static char *days[] = { + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat" +}; + +static char *months[] = { + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" +}; + +void cgiHeaderCookieSet(char *name, char *value, int secondsToLive, + char *path, char *domain, int options) +{ + /* cgic 2.02: simpler and more widely compatible implementation. + Thanks to Chunfu Lai. + cgic 2.03: yes, but it didn't work. Reimplemented by + Thomas Boutell. ; after last element was a bug. + Examples of real world cookies that really work: + Set-Cookie: MSNADS=UM=; domain=.slate.com; + expires=Tue, 26-Apr-2022 19:00:00 GMT; path=/ + Set-Cookie: MC1=V=3&ID=b5bc08af2b8a43ff85fcb5efd8b238f0; + domain=.slate.com; expires=Mon, 04-Oct-2021 19:00:00 GMT; path=/ + */ + time_t now; + time_t then; + struct tm *gt; + time(&now); + then = now + secondsToLive; + gt = gmtime(&then); + fprintf(cgiOut, + "Set-Cookie: %s=%s; domain=%s; expires=%s, %02d-%s-%04d %02d:%02d:%02d GMT; path=%s%s%s%s\r\n", + name, value, domain, + days[gt->tm_wday], + gt->tm_mday, + months[gt->tm_mon], + gt->tm_year + 1900, + gt->tm_hour, + gt->tm_min, + gt->tm_sec, + path, + ((options & cgiCookieSecure) ? "; Secure" : ""), + ((options & cgiCookieHttpOnly) ? "; HttpOnly" : ""), + ((options & cgiCookieSameSiteStrict) ? "; SameSite=Strict" : "")); +} + +void cgiHeaderCookieSetString(char *name, char *value, int secondsToLive, + char *path, char *domain) +{ + cgiHeaderCookieSet(name, value, secondsToLive, path, domain, 0); +} + +void cgiHeaderLocation(char *redirectUrl) { + fprintf(cgiOut, "Location: %s\r\n\r\n", redirectUrl); +} + +void cgiHeaderStatus(int status, char *statusMessage) { + fprintf(cgiOut, "Status: %d %s\r\n\r\n", status, statusMessage); +} + +void cgiHeaderContentType(char *mimeType) { + fprintf(cgiOut, "Content-type: %s\r\n\r\n", mimeType); +} + +static int cgiWriteString(FILE *out, char *s); + +static int cgiWriteInt(FILE *out, int i); + +#define CGIC_VERSION "2.0" + +cgiEnvironmentResultType cgiWriteEnvironment(char *filename) { + FILE *out; + cgiFormEntry *e; + /* Be sure to open in binary mode */ + out = fopen(filename, "wb"); + if (!out) { + /* Can't create file */ + return cgiEnvironmentIO; + } + if (!cgiWriteString(out, "CGIC2.0")) { + goto error; + } + if (!cgiWriteString(out, cgiServerSoftware)) { + goto error; + } + if (!cgiWriteString(out, cgiServerName)) { + goto error; + } + if (!cgiWriteString(out, cgiGatewayInterface)) { + goto error; + } + if (!cgiWriteString(out, cgiServerProtocol)) { + goto error; + } + if (!cgiWriteString(out, cgiServerPort)) { + goto error; + } + if (!cgiWriteString(out, cgiRequestMethod)) { + goto error; + } + if (!cgiWriteString(out, cgiPathInfo)) { + goto error; + } + if (!cgiWriteString(out, cgiPathTranslated)) { + goto error; + } + if (!cgiWriteString(out, cgiScriptName)) { + goto error; + } + if (!cgiWriteString(out, cgiQueryString)) { + goto error; + } + if (!cgiWriteString(out, cgiRemoteHost)) { + goto error; + } + if (!cgiWriteString(out, cgiRemoteAddr)) { + goto error; + } + if (!cgiWriteString(out, cgiAuthType)) { + goto error; + } + if (!cgiWriteString(out, cgiRemoteUser)) { + goto error; + } + if (!cgiWriteString(out, cgiRemoteIdent)) { + goto error; + } + if (!cgiWriteString(out, cgiContentType)) { + goto error; + } + if (!cgiWriteString(out, cgiAccept)) { + goto error; + } + if (!cgiWriteString(out, cgiUserAgent)) { + goto error; + } + if (!cgiWriteString(out, cgiReferrer)) { + goto error; + } + if (!cgiWriteString(out, cgiCookie)) { + goto error; + } + if (!cgiWriteInt(out, cgiContentLength)) { + goto error; + } + e = cgiFormEntryFirst; + while (e) { + cgiFilePtr fp; + if (!cgiWriteString(out, e->attr)) { + goto error; + } + if (!cgiWriteString(out, e->value)) { + goto error; + } + /* New 2.0 fields and file uploads */ + if (!cgiWriteString(out, e->fileName)) { + goto error; + } + if (!cgiWriteString(out, e->contentType)) { + goto error; + } + if (!cgiWriteInt(out, e->valueLength)) { + goto error; + } + if (cgiFormFileOpen(e->attr, &fp) == cgiFormSuccess) { + char buffer[1024]; + int got; + if (!cgiWriteInt(out, 1)) { + cgiFormFileClose(fp); + goto error; + } + while (cgiFormFileRead(fp, buffer, + sizeof(buffer), &got) == cgiFormSuccess) + { + if (((int) fwrite(buffer, 1, got, out)) != got) { + cgiFormFileClose(fp); + goto error; + } + } + if (cgiFormFileClose(fp) != cgiFormSuccess) { + goto error; + } + } else { + if (!cgiWriteInt(out, 0)) { + goto error; + } + } + e = e->next; + } + fclose(out); + return cgiEnvironmentSuccess; +error: + fclose(out); + /* If this function is not defined in your system, + you must substitute the appropriate + file-deletion function. */ + unlink(filename); + return cgiEnvironmentIO; +} + +static int cgiWriteString(FILE *out, char *s) { + int len = (int) strlen(s); + cgiWriteInt(out, len); + if (((int) fwrite(s, 1, len, out)) != len) { + return 0; + } + return 1; +} + +static int cgiWriteInt(FILE *out, int i) { + if (!fwrite(&i, sizeof(int), 1, out)) { + return 0; + } + return 1; +} + +static int cgiReadString(FILE *out, char **s); + +static int cgiReadInt(FILE *out, int *i); + +cgiEnvironmentResultType cgiReadEnvironment(char *filename) { + FILE *in; + cgiFormEntry *e = 0, *p; + char *version; + /* Prevent compiler warnings */ + cgiEnvironmentResultType result = cgiEnvironmentIO; + /* Free any existing data first */ + cgiFreeResources(); + /* Be sure to open in binary mode */ + in = fopen(filename, "rb"); + if (!in) { + /* Can't access file */ + return cgiEnvironmentIO; + } + if (!cgiReadString(in, &version)) { + goto error; + } + if (strcmp(version, "CGIC" CGIC_VERSION)) { + /* 2.02: Merezko Oleg */ + free(version); + return cgiEnvironmentWrongVersion; + } + /* 2.02: Merezko Oleg */ + free(version); + if (!cgiReadString(in, &cgiServerSoftware)) { + goto error; + } + if (!cgiReadString(in, &cgiServerName)) { + goto error; + } + if (!cgiReadString(in, &cgiGatewayInterface)) { + goto error; + } + if (!cgiReadString(in, &cgiServerProtocol)) { + goto error; + } + if (!cgiReadString(in, &cgiServerPort)) { + goto error; + } + if (!cgiReadString(in, &cgiRequestMethod)) { + goto error; + } + if (!cgiReadString(in, &cgiPathInfo)) { + goto error; + } + if (!cgiReadString(in, &cgiPathTranslated)) { + goto error; + } + if (!cgiReadString(in, &cgiScriptName)) { + goto error; + } + if (!cgiReadString(in, &cgiQueryString)) { + goto error; + } + if (!cgiReadString(in, &cgiRemoteHost)) { + goto error; + } + if (!cgiReadString(in, &cgiRemoteAddr)) { + goto error; + } + if (!cgiReadString(in, &cgiAuthType)) { + goto error; + } + if (!cgiReadString(in, &cgiRemoteUser)) { + goto error; + } + if (!cgiReadString(in, &cgiRemoteIdent)) { + goto error; + } + if (!cgiReadString(in, &cgiContentType)) { + goto error; + } + if (!cgiReadString(in, &cgiAccept)) { + goto error; + } + if (!cgiReadString(in, &cgiUserAgent)) { + goto error; + } + if (!cgiReadString(in, &cgiReferrer)) { + goto error; + } + /* 2.0 */ + if (!cgiReadString(in, &cgiCookie)) { + goto error; + } + if (!cgiReadInt(in, &cgiContentLength)) { + goto error; + } + p = 0; + while (1) { + int fileFlag; + e = (cgiFormEntry *) calloc(1, sizeof(cgiFormEntry)); + if (!e) { + cgiFreeResources(); + fclose(in); + return cgiEnvironmentMemory; + } + memset(e, 0, sizeof(cgiFormEntry)); + if (!cgiReadString(in, &e->attr)) { + /* This means we've reached the end of the list. */ + /* 2.02: thanks to Merezko Oleg */ + free(e); + break; + } + if (!cgiReadString(in, &e->value)) { + goto outOfMemory; + } + if (!cgiReadString(in, &e->fileName)) { + goto outOfMemory; + } + if (!cgiReadString(in, &e->contentType)) { + goto outOfMemory; + } + if (!cgiReadInt(in, &e->valueLength)) { + goto outOfMemory; + } + if (!cgiReadInt(in, &fileFlag)) { + goto outOfMemory; + } + if (fileFlag) { + char buffer[1024]; + FILE *out = NULL; + int got; + int len = e->valueLength; + if (getTempFile(&out) + != cgiParseSuccess || !out) + { + result = cgiEnvironmentIO; + goto error; + } + while (len > 0) { + /* 2.01: try is a bad variable name in + C++, and it wasn't being used + properly either */ + int tryr = len; + if (tryr > ((int) sizeof(buffer))) { + tryr = sizeof(buffer); + } + got = fread(buffer, 1, tryr, in); + if (got <= 0) { + result = cgiEnvironmentIO; + fclose(out); + goto error; + } + if (((int) fwrite(buffer, 1, got, out)) != got) { + result = cgiEnvironmentIO; + fclose(out); + goto error; + } + len -= got; + } + /* cgic 2.05: should be fclose not rewind */ + e->tFile = out; + } else { + e->tFile = NULL; + } + e->next = 0; + if (p) { + p->next = e; + } else { + cgiFormEntryFirst = e; + } + p = e; + } + fclose(in); + cgiRestored = 1; + return cgiEnvironmentSuccess; +outOfMemory: + result = cgiEnvironmentMemory; +error: + cgiFreeResources(); + fclose(in); + if (e) { + if (e->attr) { + free(e->attr); + } + if (e->value) { + free(e->value); + } + if (e->fileName) { + free(e->fileName); + } + if (e->contentType) { + free(e->contentType); + } + if (e->tFile) { + fclose(e->tFile); + } + free(e); + } + return result; +} + +static int cgiReadString(FILE *in, char **s) { + int len; + /* 2.0 fix: test cgiReadInt for failure! */ + if (!cgiReadInt(in, &len)) { + return 0; + } + *s = (char *) malloc(len + 1); + if (!(*s)) { + return 0; + } + if (((int) fread(*s, 1, len, in)) != len) { + return 0; + } + (*s)[len] = '\0'; + return 1; +} + +static int cgiReadInt(FILE *out, int *i) { + if (!fread(i, sizeof(int), 1, out)) { + return 0; + } + return 1; +} + +static int cgiStrEqNc(char *s1, char *s2) { + while(1) { + if (!(*s1)) { + if (!(*s2)) { + return 1; + } else { + return 0; + } + } else if (!(*s2)) { + return 0; + } + if (isalpha(*s1)) { + if (tolower(*s1) != tolower(*s2)) { + return 0; + } + } else if ((*s1) != (*s2)) { + return 0; + } + s1++; + s2++; + } +} + +static int cgiStrBeginsNc(char *s1, char *s2) { + while(1) { + if (!(*s2)) { + return 1; + } else if (!(*s1)) { + return 0; + } + if (isalpha(*s1)) { + if (tolower(*s1) != tolower(*s2)) { + return 0; + } + } else if ((*s1) != (*s2)) { + return 0; + } + s1++; + s2++; + } +} + +static char *cgiFindTarget = 0; +static cgiFormEntry *cgiFindPos = 0; + +static cgiFormEntry *cgiFormEntryFindFirst(char *name) { + cgiFindTarget = name; + cgiFindPos = cgiFormEntryFirst; + return cgiFormEntryFindNext(); +} + +static cgiFormEntry *cgiFormEntryFindNext() { + while (cgiFindPos) { + cgiFormEntry *c = cgiFindPos; + cgiFindPos = c->next; + if (!strcmp(c -> attr, cgiFindTarget)) { + return c; + } + } + return 0; +} + +static int cgiFirstNonspaceChar(char *s) { + int len = strspn(s, " \n\r\t"); + return s[len]; +} + +void cgiStringArrayFree(char **stringArray) { + char *p; + char **arrayItself = stringArray; + p = *stringArray; + while (p) { + free(p); + stringArray++; + p = *stringArray; + } + /* 2.0: free the array itself! */ + free(arrayItself); +} + +cgiFormResultType cgiCookies(char ***result) { + char **stringArray; + int i; + int total = 0; + char *p; + char *n; + p = cgiCookie; + while (*p) { + if (*p == '=') { + total++; + } + p++; + } + stringArray = (char **) malloc(sizeof(char *) * (total + 1)); + if (!stringArray) { + *result = 0; + return cgiFormMemory; + } + /* initialize all entries to null; the last will stay that way */ + for (i=0; (i <= total); i++) { + stringArray[i] = 0; + } + i = 0; + p = cgiCookie; + while (*p) { + while (*p && isspace(*p)) { + p++; + } + n = p; + while (*p && (*p != '=')) { + p++; + } + if (p != n) { + stringArray[i] = (char *) malloc((p - n) + 1); + if (!stringArray[i]) { + cgiStringArrayFree(stringArray); + *result = 0; + return cgiFormMemory; + } + memcpy(stringArray[i], n, p - n); + stringArray[i][p - n] = '\0'; + i++; + } + while (*p && (*p != ';')) { + p++; + } + if (!*p) { + break; + } + if (*p == ';') { + p++; + } + } + *result = stringArray; + return cgiFormSuccess; +} + +cgiFormResultType cgiFormEntries(char ***result) { + char **stringArray; + cgiFormEntry *e, *pe; + int i; + int total = 0; + e = cgiFormEntryFirst; + while (e) { + /* Don't count a field name more than once if + multiple values happen to be present for it */ + pe = cgiFormEntryFirst; + while (pe != e) { + if (!strcmp(e->attr, pe->attr)) { + goto skipSecondValue; + } + pe = pe->next; + } + total++; +skipSecondValue: + e = e->next; + } + stringArray = (char **) malloc(sizeof(char *) * (total + 1)); + if (!stringArray) { + *result = 0; + return cgiFormMemory; + } + /* initialize all entries to null; the last will stay that way */ + for (i=0; (i <= total); i++) { + stringArray[i] = 0; + } + /* Now go get the entries */ + e = cgiFormEntryFirst; + i = 0; + while (e) { + size_t space; + /* Don't return a field name more than once if + multiple values happen to be present for it */ + pe = cgiFormEntryFirst; + while (pe != e) { + if (!strcmp(e->attr, pe->attr)) { + goto skipSecondValue2; + } + pe = pe->next; + } + space = strlen(e->attr) + 1; + stringArray[i] = (char *) malloc(space); + if (stringArray[i] == 0) { + /* Memory problems */ + cgiStringArrayFree(stringArray); + *result = 0; + return cgiFormMemory; + } + strcpy(stringArray[i], e->attr); + i++; +skipSecondValue2: + e = e->next; + } + *result = stringArray; + return cgiFormSuccess; +} + +#define TRYPUTC(ch) \ + { \ + if (putc((ch), cgiOut) == EOF) { \ + return cgiFormIO; \ + } \ + } + +cgiFormResultType cgiHtmlEscapeData(const char *data, int len) +{ + while (len--) { + if (*data == '<') { + TRYPUTC('&'); + TRYPUTC('l'); + TRYPUTC('t'); + TRYPUTC(';'); + } else if (*data == '&') { + TRYPUTC('&'); + TRYPUTC('a'); + TRYPUTC('m'); + TRYPUTC('p'); + TRYPUTC(';'); + } else if (*data == '>') { + TRYPUTC('&'); + TRYPUTC('g'); + TRYPUTC('t'); + TRYPUTC(';'); + } else { + TRYPUTC(*data); + } + data++; + } + return cgiFormSuccess; +} + +cgiFormResultType cgiHtmlEscape(const char *s) +{ + return cgiHtmlEscapeData(s, (int) strlen(s)); +} + +/* Output data with the " character HTML-escaped, and no + other characters escaped. This is useful when outputting + the contents of a tag attribute such as 'href' or 'src'. + 'data' is not null-terminated; 'len' is the number of + bytes in 'data'. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiValueEscapeData(const char *data, int len) +{ + while (len--) { + if (*data == '\"') { + TRYPUTC('&'); + TRYPUTC('#'); + TRYPUTC('3'); + TRYPUTC('4'); + TRYPUTC(';'); + } else { + TRYPUTC(*data); + } + data++; + } + return cgiFormSuccess; +} + +cgiFormResultType cgiValueEscape(const char *s) +{ + return cgiValueEscapeData(s, (int) strlen(s)); +} + + +#ifdef UNIT_TEST + +static void unitTestAssert(const int value, const char *message); + +static int unitTest() { + char *input = "one=1&two=2&empty1&four=4&empty2"; + cgiFormEntry *e; + cgiParseResultType result = cgiParseFormInput(input, strlen(input)); + unitTestAssert(result == cgiParseSuccess, "cgiParseFormInput did not return cgiParseSuccess"); + e = cgiFormEntryFirst; + unitTestAssert(!!e, "first entry missing"); + unitTestAssert(!strcmp(e->attr, "one"), "first entry name is not one"); + unitTestAssert(!strcmp(e->value, "1"), "first entry value is not 1"); + e = e->next; + unitTestAssert(!!e, "Test failed: second entry missing"); + unitTestAssert(!strcmp(e->attr, "two"), "second entry name is not two"); + unitTestAssert(!strcmp(e->value, "2"), "second entry value is not 2"); + e = e->next; + unitTestAssert(!!e, "Test failed: third entry missing"); + unitTestAssert(!strcmp(e->attr, "empty1"), "third entry name is not empty1"); + unitTestAssert(!strcmp(e->value, ""), "third entry value is not empty string"); + e = e->next; + unitTestAssert(!!e, "Test failed: fourth entry missing"); + unitTestAssert(!strcmp(e->attr, "four"), "fourth entry name is not four"); + unitTestAssert(!strcmp(e->value, "4"), "fourth entry value is not 4"); + e = e->next; + unitTestAssert(!!e, "Test failed: fifth entry missing"); + unitTestAssert(!strcmp(e->attr, "empty2"), "fifth entry name is not empty2"); + unitTestAssert(!strcmp(e->value, ""), "fifth entry value is not empty string"); + unitTestAssert(!e->next, "unexpected entry at end of list"); + return 0; +} + +static void unitTestAssert(const int value, const char *message) +{ + if (value) { + return; + } + fprintf(stderr, "Test failed: %s\n", message); + exit(1); +} + +#endif diff --git a/3rdPartner/cgic-master/cgic.h b/3rdPartner/cgic-master/cgic.h new file mode 100644 index 0000000..472e23a --- /dev/null +++ b/3rdPartner/cgic-master/cgic.h @@ -0,0 +1,249 @@ +/* The CGI_C library, by Thomas Boutell, version 2.01. CGI_C is intended + to be a high-quality API to simplify CGI programming tasks. */ + +/* Make sure this is only included once. */ + +#ifndef CGI_C +#define CGI_C 1 + +/* Ensure proper linkage to c++ programs. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Bring in standard I/O since some of the functions refer to + types defined by it, such as FILE *. */ + +#include + +/* The various CGI environment variables. Instead of using getenv(), + the programmer should refer to these, which are always + valid null-terminated strings (they may be empty, but they + will never be null). If these variables are used instead + of calling getenv(), then it will be possible to save + and restore CGI environments, which is highly convenient + for debugging. */ + +extern char *cgiServerSoftware; +extern char *cgiServerName; +extern char *cgiGatewayInterface; +extern char *cgiServerProtocol; +extern char *cgiServerPort; +extern char *cgiRequestMethod; +extern char *cgiPathInfo; +extern char *cgiPathTranslated; +extern char *cgiScriptName; +extern char *cgiQueryString; +extern char *cgiRemoteHost; +extern char *cgiRemoteAddr; +extern char *cgiAuthType; +extern char *cgiRemoteUser; +extern char *cgiRemoteIdent; +extern char *cgiContentType; +extern char *cgiAccept; +extern char *cgiUserAgent; +extern char *cgiReferrer; + +/* Cookies as sent to the server. You can also get them + individually, or as a string array; see the documentation. */ +extern char *cgiCookie; + +/* A macro providing the same incorrect spelling that is + found in the HTTP/CGI specifications */ +#define cgiReferer cgiReferrer + +/* The number of bytes of data received. + Note that if the submission is a form submission + the library will read and parse all the information + directly from cgiIn; the programmer need not do so. */ + +extern int cgiContentLength; + +/* Pointer to CGI output. The cgiHeader functions should be used + first to output the mime headers; the output HTML + page, GIF image or other web document should then be written + to cgiOut by the programmer. In the standard CGIC library, + cgiOut is always equivalent to stdout. */ + +extern FILE *cgiOut; + +/* Pointer to CGI input. The programmer does not read from this. + We have continued to export it for backwards compatibility + so that cgic 1.x applications link properly. */ + +extern FILE *cgiIn; + +/* Possible return codes from the cgiForm family of functions (see below). */ + +typedef enum { + cgiFormSuccess, + cgiFormTruncated, + cgiFormBadType, + cgiFormEmpty, + cgiFormNotFound, + cgiFormConstrained, + cgiFormNoSuchChoice, + cgiFormMemory, + cgiFormNoFileName, + cgiFormNoContentType, + cgiFormNotAFile, + cgiFormOpenFailed, + cgiFormIO, + cgiFormEOF +} cgiFormResultType; + +/* These functions are used to retrieve form data. See + cgic.html for documentation. */ + +extern cgiFormResultType cgiFormString( + char *name, char *result, int max); + +extern cgiFormResultType cgiFormStringNoNewlines( + char *name, char *result, int max); + + +extern cgiFormResultType cgiFormStringSpaceNeeded( + char *name, int *length); + + +extern cgiFormResultType cgiFormStringMultiple( + char *name, char ***ptrToStringArray); + +extern void cgiStringArrayFree(char **stringArray); + +extern cgiFormResultType cgiFormInteger( + char *name, int *result, int defaultV); + +extern cgiFormResultType cgiFormIntegerBounded( + char *name, int *result, int min, int max, int defaultV); + +extern cgiFormResultType cgiFormDouble( + char *name, double *result, double defaultV); + +extern cgiFormResultType cgiFormDoubleBounded( + char *name, double *result, double min, double max, double defaultV); + +extern cgiFormResultType cgiFormSelectSingle( + char *name, char **choicesText, int choicesTotal, + int *result, int defaultV); + + +extern cgiFormResultType cgiFormSelectMultiple( + char *name, char **choicesText, int choicesTotal, + int *result, int *invalid); + +/* Just an alias; users have asked for this */ +#define cgiFormSubmitClicked cgiFormCheckboxSingle + +extern cgiFormResultType cgiFormCheckboxSingle( + char *name); + +extern cgiFormResultType cgiFormCheckboxMultiple( + char *name, char **valuesText, int valuesTotal, + int *result, int *invalid); + +extern cgiFormResultType cgiFormRadio( + char *name, char **valuesText, int valuesTotal, + int *result, int defaultV); + +/* The paths returned by this function are the original names of files + as reported by the uploading web browser and shoult NOT be + blindly assumed to be "safe" names for server-side use! */ +extern cgiFormResultType cgiFormFileName( + char *name, char *result, int max); + +/* The content type of the uploaded file, as reported by the browser. + It should NOT be assumed that browsers will never falsify + such information. */ +extern cgiFormResultType cgiFormFileContentType( + char *name, char *result, int max); + +extern cgiFormResultType cgiFormFileSize( + char *name, int *sizeP); + +typedef struct cgiFileStruct *cgiFilePtr; + +extern cgiFormResultType cgiFormFileOpen( + char *name, cgiFilePtr *cfpp); + +extern cgiFormResultType cgiFormFileRead( + cgiFilePtr cfp, char *buffer, int bufferSize, int *gotP); + +extern cgiFormResultType cgiFormFileClose( + cgiFilePtr cfp); + +extern cgiFormResultType cgiCookieString( + char *name, char *result, int max); + +extern cgiFormResultType cgiCookieInteger( + char *name, int *result, int defaultV); + +cgiFormResultType cgiCookies( + char ***ptrToStringArray); + +typedef enum { + cgiCookieSecure = 1, + cgiCookieHttpOnly = 2, + cgiCookieSameSiteStrict = 4 +} cgiCookieOption; + +/* path can be null or empty in which case a path of / (entire site) is set. + domain can be a single web site; if it is an entire domain, such as + 'boutell.dev', it should begin with a dot: '.boutell.dev' */ +extern void cgiHeaderCookieSet(char *name, char *value, + int secondsToLive, char *path, char *domain, int options); +extern void cgiHeaderCookieSetString(char *name, char *value, + int secondsToLive, char *path, char *domain); +extern void cgiHeaderCookieSetInteger(char *name, int value, + int secondsToLive, char *path, char *domain); +extern void cgiHeaderLocation(char *redirectUrl); +extern void cgiHeaderStatus(int status, char *statusMessage); +extern void cgiHeaderContentType(char *mimeType); + +typedef enum { + cgiEnvironmentIO, + cgiEnvironmentMemory, + cgiEnvironmentSuccess, + cgiEnvironmentWrongVersion +} cgiEnvironmentResultType; + +extern cgiEnvironmentResultType cgiWriteEnvironment(char *filename); +extern cgiEnvironmentResultType cgiReadEnvironment(char *filename); + +extern int cgiMain(); + +extern cgiFormResultType cgiFormEntries( + char ***ptrToStringArray); + +/* Output string with the <, &, and > characters HTML-escaped. + 's' is null-terminated. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiHtmlEscape(const char *s); + +/* Output data with the <, &, and > characters HTML-escaped. + 'data' is not null-terminated; 'len' is the number of + bytes in 'data'. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiHtmlEscapeData(const char *data, int len); + +/* Output string with the " character HTML-escaped, and no + other characters escaped. This is useful when outputting + the contents of a tag attribute such as 'href' or 'src'. + 's' is null-terminated. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiValueEscape(const char *s); + +/* Output data with the " character HTML-escaped, and no + other characters escaped. This is useful when outputting + the contents of a tag attribute such as 'href' or 'src'. + 'data' is not null-terminated; 'len' is the number of + bytes in 'data'. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiValueEscapeData(const char *data, int len); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* CGI_C */ + diff --git a/3rdPartner/cgic-master/cgic.html b/3rdPartner/cgic-master/cgic.html new file mode 100644 index 0000000..890084a --- /dev/null +++ b/3rdPartner/cgic-master/cgic.html @@ -0,0 +1,2085 @@ + + +cgic: an ANSI C library for CGI Programming + + +

cgic 2.07: an ANSI C library for CGI Programming

+
+IMPORTANT NOTICES: +

+If you have CGIC 1.05 or earlier, you should upgrade to CGIC 1.07, +or to CGIC 2.02 or better, in order to obtain important security fixes. +

+If you have CGIC 2.0 or CGIC 2.01 and you use the cgiCookie routines, +you should upgrade to CGIC 2.02 or better, in order to obtain +important security fixes. +

+

Table of Contents

+ + +

Credits and License Terms

+ +

+cgic is now distributed under the MIT license: +

+

+Copyright (c) 1996-2019 Thomas Boutell +

+

+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +

+

+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +

+

+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +

+

+Thanks are due to Robert Gustavsson, Ken Holervich, Bob Nestor, +Jon Ribbens, Thomas Strangert, Wu Yongwei, and other CGIC users +who have corresponded over the years. Although the implementation +of multipart/form-data file upload support in CGIC 2.x is my own, +I particularly wish to thank those who submitted their own +implementations of this feature. +

+

What's new in version 2.07?

+Per a suggestion by Geoff Mulligan, cgic now tolerates keys without a value in URL-encoded GET and POST submissions. Although the HTML5 spec discourages it, there are existing systems in the wild that do leave the `=` off entirely if the value is an empty string. Beginning with version 2.07, `cgic` handles this as you'd expect: you get an entry with the corresponding key and an empty string as the value. A simple unit test compilation target was also added, to test this feature and rule out side effects. +

What's new in version 2.06?

+A long list of significant fixes generously contributed by Jeffrey Hutzelman. + These are especially important on platforms where attempting to read beyong the content length stated by the request can lead to a deadlock. Please see the commit notes. +

What's new in version 2.05?

+Uploaded files properly closed; corrects a resource leak and enables +file uploads to work properly on platforms with particular file +locking semantics. +

What's new in version 2.04?

+Documentation fixes: the cgiHtmlEscape, cgiHtmlEscapeData, +cgiValueEscape, and cgiValueEscapeData routines were named +incorrectly in the manual. No code changes in version 2.04. +

What's new in version 2.03?

+
    +
  • Support for setting cookies has been reimplemented. The new +code closely follows the actual practice of web sites that successfully +use cookies, rather than attempting to implement the specification. +The new code can successfully set more than one cookie at a time in +typical web browsers. +
+

What's new in version 2.02?

+
    +
  • In CGIC 2.0 and 2.01, if the HTTP_COOKIE environment variable +was exactly equal to the name of a cookie requested with cgiCookieString, +with no value or equal sign or other characters present, a buffer +overrun could take place. This was not normal behavior and it is +unknown whether any actual web server would allow it to occur, however +we have of course released a patch to correct it. +Thanks to Nicolas Tomadakis. +
  • cgiCookieString returned cgiFormTruncated when cgiFormSuccess would +be appropriate. Fixed; thanks to Mathieu Villeneuve-Belair. +
  • Cookies are now set using a simpler Set-Cookie: header, and with +one header line per cookie, based on data collected by Chunfu Lai. +
  • Memory leaks in cgiReadEnvironment fixed by Merezko Oleg. These +memory leaks were not experienced in a normal CGI situation, only +when reading a saved CGI environment. +
+

What's new in version 2.01?

+
    +
  • Makefile supports "make install" +
  • Compiles without warnings under both C and C++ with strict +warnings and strict ANSI compliance enabled +
  • Builds out of the box on Windows (#include <fcntl.h> was needed) +
  • Rare problem in cgiReadEnvironment corrected; no impact on +normal CGI operations +
  • cgiCookieString now sets the result to an empty string +when returning cgiFormNotFound +
  • Minor code cleanups +
+

What's new in version 2.0?

+1. CGIC 2.0 provides support for file upload fields. User-uploaded +files are kept in temporary files, to avoid the use of +excessive swap space (Solaris users may wish to change the +cgicTempDir macro in cgic.c before compiling). +The cgiFormFileName, +cgiFormFileContentType, +cgiFormFileSize, +cgiFormFileOpen, +cgiFormFileRead, and +cgiFormFileClose functions +provide a complete interface to this new functionality. Remember, +the enctype attribute of the form tag +must be set to multipart/form-data when +<input type="file"> tags are used. +

+2. CGIC 2.0 provides support for setting and examining cookies +(persistent data storage on the browser side). +The cgiCookieString, +and cgiCookieInteger +and cgiCookies +functions retrieve cookies. The +cgiHeaderCookieSetString +and cgiHeaderCookieSetInteger functions set cookies. +

+3. CGIC 2.0 offers a convenient way to retrieve a list of all form fields. +The new cgiFormEntries +function performs this operation. +

+4. CGIC 2.0 provides convenience functions to correctly escape +text before outputting it as part of HTML, or as part of the +value of a tag attribute, such as the HREF or +VALUE attribute. See +cgiHtmlEscape, +cgiHtmlEscapeData, +cgiValueEscape and +cgiValueEscapeData. +

+5. Users have often asked the correct way to determine which submit +button was clicked. This could always be accomplished in previous versions, +but CGIC 2.0 also provides +cgiFormSubmitClicked, +a convenient alternate label for the +cgiFormCheckboxSingle function. +

What's new in version 1.07?

+A problem with the cgiFormString and related functions has been +corrected. These functions were previously incorrectly returning cgiFormTruncated +in cases where the returned string fit the buffer exactly. +

What's new in version 1.06?

+1. A potentially significant buffer overflow problem has been +corrected. Jon Ribbens correctly pointed out to me (and to the +Internet's bugtraq mailing list) that the cgiFormEntryString +function, which is used directly or indirectly by almost all +CGIC programs, can potentially write past the buffer passed +to it by the programmer. This bug has been corrected. +Upgrading to version 1.06 is strongly recommended. +

+2. The function cgiSaferSystem() has been +removed entirely. This function escaped only a few metacharacters, +while most shells have many, and there was no way to account for +the many different operating system shells that might be in use +on different operating systems. Since this led to a false sense +of security, the function has been removed. It is our recommendation +that user input should never be passed directly on the command line +unless it has been carefully shown to contain only characters +regarded as safe and appropriate by the programmer. Even then, it is +better to design your utilities to accept their input from standard +input rather than the command line. +

What's new in version 1.05?

+Non-exclusive commercial license fee reduced to $200. +

What's new in version 1.04?

+For consistency with other packages, the standard Makefile +now produces a true library for cgic (libcgic.a). +

What's new in version 1.03?

+Version 1.03 sends line feeds only (ascii 10) to end +Content-type:, Status:, and other HTTP protocol output lines, +instead of CR/LF sequences. The standard specifies CR/LF. +Unfortunately, too many servers reject CR/LF to make +implementation of that standard practical. No server +tested ever rejects LF alone in this context. +

What's new in version 1.02?

+Version 1.02 corrects bugs in previous versions: +
    +
  • +cgiFormDoubleBounded specified +its arguments in the wrong order, with surprising results. +This bug has been corrected. +
+

What's new in version 1.01?

+Version 1.01 adds no major functionality but corrects +significant bugs and incompatibilities: +
    +
  • +cgiFormInteger, +cgiFormIntegerBounded, +cgiFormDouble and +cgiFormDoubleBounded now +accept negative numbers properly. They also accept positive +numbers with an explicit + sign. +
  • Hex values containing the digit 9 are +now properly decoded. +
  • cgiFormString now +represents each newline as a single line feed (ascii 10 decimal) +as described in the documentation, not a carriage return +(ascii 13 decimal) as in version 1.0. The latter approach +pleased no one. +
  • cgiFormString and +cgiFormStringNoNewlines +no longer erroneously return cgiFormEmpty in place of +cgiFormSuccess. +
  • The main() function of cgic now flushes standard output +and sleeps for one second before exiting in order to inhibit +problems with the completion of I/O on some platforms. This was +not a cgic bug per se, but has been reported as a common problem +with CGI when used with the CERN server. This change should +improve compatibility. +
  • The single selection example in the testform.html +example now works properly. This was an error in the +form itself, not cgic. +
  • cgiRemoteUser and +cgiRemoteIdent are now +documented accurately. They were reversed earlier. +
+

What is cgic?

+cgic is an ANSI C-language library for the creation of CGI-based +World Wide Web applications. For basic information about +the CGI standard, see the +CGI documentation at NCSA. +

+cgic performs the following tasks: +

    +
  • Parses form data, correcting for defective and/or inconsistent browsers +
  • Transparently accepts both GET and POST form data +
  • Accepts uploaded files as well as regular form fields +
  • Provides functions to set and retrieve "cookies" +(browser-side persistent information) +
  • Handles line breaks in form fields in a consistent manner +
  • Provides string, integer, floating-point, and single- and +multiple-choice functions to retrieve form data +
  • Provides bounds checking for numeric fields +
  • Loads CGI environment variables into C strings which are always non-null +
  • Provides a way to capture CGI situations for replay in a debugging +environment, including file uploads and cookies +
+

+cgic is compatible with any CGI-compliant server environment, and +compiles without modification in Posix/Unix/Linux and Windows +environments. +

Obtaining cgic

+cgic is distributed via the web in two forms: as a Windows-compatible +.ZIP file, and as a gzipped tar file. Most users of Windows and +related operating systems have access to 'unzip' or 'pkunzip'. All modern Unix +systems come with 'gunzip' and 'tar' as standard equipment, and gzip/gunzip +is not difficult to find if yours does not. Versions +of these programs for other operating systems are widely +available if you do not already have them. +

+Important: to use cgic, you will need an ANSI-standard +C compiler. Under Unix, just obtain and use gcc. Most Unix systems have +standardiszed on gcc. Users of Windows operating systems should not have +ANSI C-related problems as all of the popular compilers follow the ANSI +standard. +

+Note for Windows Programmers: you must use a modern +32-bit compiler. Visual C++ 2.0 or higher, Borland C++ and the +mingw32 gcc compiler are all appropriate, as is cygwin. Do +NOT use an ancient 16-bit DOS executable compiler, please. +

+

What Operating System Does Your WEB SERVER Run?

+Remember, the computer on your desk is usually NOT your web server. +Compiling a Windows console executable will not give you a CGI program that +can be installed on a Linux-based server. +
+

Building cgic: a sample application

+The sample application 'cgictest.c' is provided as part of the +cgic distribution. This CGI program displays an input form, +accepts a submission, and then displays what was submitted. +In the process essentially all of cgic's features are tested. +

+On a Unix system, you can build cgictest simply by typing +'make cgictest.cgi'. cgic.c and cgictest.c will be compiled and linked +together to produce the cgictest application. Under non-Unix +operating systems, you will need to create and compile an appropriate +project containing the files cgic.c and cgictest.c. +

+IMPORTANT: after compiling cgictest.cgi, you will +need to place it in a location on your server system which is +designated by your server administrator as an appropriate location +for CGI scripts. Some servers are configured to recognize any +file ending in .cgi as a CGI program when it is found in any +subdirectory of the server's web space, but this is not always +the case! The right locations for CGI +programs vary greatly from one server to another. Resolving +this issue is between you, your web server administrator, +and your web server documentation. Before submitting a bug +report for cgic, make certain that the CGI example programs +which came with your server do work for you. Otherwise +it is very likely that you have a server configuration problem. +

+Once you have moved cgictest.cgi (or cgictest.exe, under Windows) +to an appropriate cgi directory, +use the web browser of your choice to access the URL at which +you have installed it +(for instance, www.mysite.com/cgi-bin/cgictest.cgi). +Fill out the various fields in any manner you wish, then +select the SUBMIT button. +

+If all goes well, cgictest.cgi will respond with a page which +indicates the various settings you submitted. If not, +please reread the section above regarding the correct location in +which to install your CGI program on your web server. +

What to do if it won't compile

+
    +
  • Are you using Visual C++ or Borland C++? Did you forget to add +cgic.c to your project? +
  • Make sure you are using an ANSI C or C++ compiler. +(All of the Windows compilers are ANSI C compliant.) +
+If none of the above proves effective, please see the +section regarding support. +

How to write a cgic application

+Note: All cgic applications must be linked to the cgic.c module +itself. How to do this depends on your operating system; under Unix, +just use the provided Makefile as an example. +

+Since all CGI applications must perform certain initial +tasks, such as parsing form data and examining +environment variables, the cgic library provides its +own main() function. When you write applications that +use cgic, you will begin your own programs by writing +a cgiMain() function, which cgic will invoke when +the initial cgi work has been successfully completed. Your +program must also be sure to #include the file cgic.h. +

+Important: if you write your own main() +function, your program will not link properly. Your own +code should begin with cgiMain(). The library +provides main() for you. (Those who prefer different behavior +can easily modify cgic.c.) +

+Consider the cgiMain function of cgictest.c: +

+

+int cgiMain() {
+#ifdef DEBUG
+  LoadEnvironment();
+#endif /* DEBUG */
+  /* Load a previously saved CGI scenario if that button
+    has been pressed. */
+  if (cgiFormSubmitClicked("loadenvironment") == cgiFormSuccess) {
+    LoadEnvironment();
+  }
+  /* Set any new cookie requested. Must be done *before*
+    outputting the content type. */
+  CookieSet();
+  /* Send the content type, letting the browser know this is HTML */
+  cgiHeaderContentType("text/html");
+  /* Top of the page */
+  fprintf(cgiOut, "<HTML><HEAD>\n");
+  fprintf(cgiOut, "<TITLE>cgic test</TITLE></HEAD>\n");
+  fprintf(cgiOut, "<BODY><H1>cgic test</H1>\n");
+  /* If a submit button has already been clicked, act on the 
+    submission of the form. */
+  if ((cgiFormSubmitClicked("testcgic") == cgiFormSuccess) ||
+    cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess)
+  {
+    HandleSubmit();
+    fprintf(cgiOut, "<hr>\n");
+  }
+  /* Now show the form */
+  ShowForm();
+  /* Finish up the page */
+  fprintf(cgiOut, "</BODY></HTML>\n");
+  return 0;
+}
+
+Note the DEBUG #ifdef. If DEBUG is defined at compile time, either by +inserting the line "#define DEBUG 1" into the program or by setting +it in the Makefile or other development environment, then the +LoadEnvironment function is invoked. This function calls +cgiReadEnvironment() +to restore a captured CGI environment for debugging purposes. See +also the discussion of the capture program, which is +provided for use in CGI debugging. Because this is a test program, +the cgiFormSubmitClicked function is +also called to check for the use of a button that requests the reloading +of a saved CGI environment. A completed CGI program typically would +never allow the end user to make that decision. +

Setting Cookies

+Next, one of the cgiHeader functions should be called. +This particular program demonstrates many features, including +the setting of cookies. If the programmer wishes to set a cookie, +the cookie-setting function must be called +first, before other headers are output. This is done by the +CookieSet() function of cgictest.c: +
+void CookieSet()
+{
+  char cname[1024];
+  char cvalue[1024];
+  /* Must set cookies BEFORE calling 
+    cgiHeaderContentType */
+  cgiFormString("cname", cname, sizeof(cname));  
+  cgiFormString("cvalue", cvalue, sizeof(cvalue));  
+  if (strlen(cname)) {
+    /* Cookie lives for one day (or until 
+      browser chooses to get rid of it, which 
+      may be immediately), and applies only to 
+      this script on this site. */  
+    cgiHeaderCookieSet(cname, cvalue,
+      86400, cgiScriptName, cgiServerName,
+      cgiCookieHttpOnly | cgiCookieSameSiteStrict);
+  }
+}
+
+Since this is a test program, the cgiFormString +function is used to fetch the name and value from the form previously filled +in by the user. Normally, cookie names and values are chosen to meet the +needs of the programmer and provide a means of identifying the same +user again later. +

+The cgiHeaderCookieSet +function sets the cookie by requesting that the web browser store it. +There is never any guarantee that this will happen! +Many browsers reject cookies completely; others do not necessarily keep +them as long as requested or return them with their values intact. +Always code defensively when using cookies. +

+The cname and cvalue parameters are of course the namd and value for +the cookie. The third argument is the time, in seconds, that the +cookie should "live" on the browser side before it expires; in this +case it has been set to 86,400 seconds, which is exactly one day. +The browser may or may not respect this setting, as with everything +else about cookies. +

+The fourth argument identifies the "path" within the web site for which +the cookie is considered valid. A cookie that should be sent back +for every access to the site should be set with a path of /. +In this case the cookie is relevant only to the CGI program itself, so +cgiScriptName (the URL of the CGI program, not including the +domain name) is sent. Similarly, a cookie can be considered relevant +to a single web site or to an entire domain, such as +www.boutell.dev or the entire .boutell.dev +domain. In this case, the current site on which the program is running +is the only relevant site, so cgiServerName is used +as the domain. +

+The sixth argument sets extra security options, for example HttpOnly or +SameSite=Strict to prevent cross-site-scripting attacks. +

Outputting the Content Type Header

+Next, cgiHeaderContentType() is +called to indicate the MIME type of the document being output, in this case +"text/html" (a normal HTML document). A few other common MIME types are +"image/gif", "image/jpeg" and "audio/wav". +

+Note that cgiHeaderStatus() or +cgiHeaderLocation() could have +been invoked instead to output an error code or redirect the +request to a different URL. Only one of the cgiHeader functions +should be called in a single execution of the program. +

+Important: one of the cgiHeader functions, +usually cgiHeaderContentType(), +must be invoked before outputting any other +response to the user. Otherwise, the result will not be a valid +document and the browser's behavior will be unpredictable. +You may, of course, output your own ContentType and other +header information to cgiOut if you prefer. The cgiHeader functions +are provided as a convenience. +

Handling Form Submissions

+Like many CGI programs, cgictest makes decisions about the way it +should behave based on whether various submit buttons have been clicked. +When either the testcgic or saveenvironment button is present, cgictest +invokes the HandleSubmit function, which invokes additional functions to +handle various parts of the form: +
+void HandleSubmit()
+{
+  Name();
+  Address();
+  Hungry();
+  Temperature();
+  Frogs();
+  Color();
+  Flavors();
+  NonExButtons();
+  RadioButtons();
+  File();
+  Entries();
+  Cookies();
+  /* The saveenvironment button, in addition to submitting 
+    the form, also saves the resulting CGI scenario to 
+    disk for later replay with the 'load saved environment' 
+    button. */
+  if (cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess) {
+    SaveEnvironment();
+  }
+}
+
+

Handling Text Input

+The Name() function of cgictest is shown below, in its simplest +possible form: +
+void Name() {
+        char name[81];
+        cgiFormStringNoNewlines("name", name, 81);
+        fprintf(cgiOut, "Name: ");
+        cgicHtmlEscape(name);
+        fprintf(cgiOut, "
\n"); +} +
+The purpose of this function is to retrieve and display the name that was +input by the user. Since the programmer has decided that names should +be permitted to have up to 80 characters, a buffer of 81 characters +has been declared (allowing for the final null character). +The cgiFormStringNoNewlines() +function is then invoked to retrieve the name and ensure that +carriage returns are not present in the name (despite the +incorrect behavior of some web browsers). The first argument +is the name of the input field in the form, the second argument +is the buffer to which the data should be copied, and the third +argument is the size of the buffer. cgic will never write beyond +the size of the buffer, and will always provide a null-terminated +string in response; if the buffer is too small, the string will +be shortened. If this is not acceptable, the +cgiFormStringSpaceNeeded() +function can be used to check the amount of space needed; the +return value of cgiFormStringNoNewlines() can also be checked +to determine whether truncation occurred. See +the full description of +cgiFormStringNoNewlines(). +

Handling Output

+Note that Name() writes its HTML output to cgiOut, not +to stdout. +

+The actual name submitted by the user may or may not contain +characters that have special meaning in HTML, specifically the +the <, >, and & characters. +The cgiHtmlEscape function is used to output +the user-entered name with any occurrences of these characters +correctly escaped as &lt;, &gt;, +and &amp;. +

+Important: cgiOut is normally equivalent +to stdout, and there is no performance penalty for using it. +It is recommended that you write output to cgiOut to ensure compatibility +with modified versions of the cgic library for special +environments that do not provide stdin and stdout for +each cgi connection. +

+Note that, for text input areas in which carriage returns are +desired, the function cgiFormString +should be used instead. cgiFormString ensures that line breaks +are always represented by a single carriage return (ascii decimal 13), +making life easier for the programmer. See the source code to +the Address() function of cgictest.c for an example. +

Handling Single Checkboxes

+Consider the Hungry() function, which determines whether +the user has selected the "hungry" checkbox: +
+void Hungry() {
+        if (cgiFormCheckboxSingle("hungry") == cgiFormSuccess) {
+                fprintf(cgiOut, "I'm Hungry!<BR>\n");
+        } else {
+                fprintf(cgiOut, "I'm Not Hungry!<BR>\n");
+        }
+}
+
+This function takes advantage of the +cgiFormCheckboxSingle() function, which +determines whether a single checkbox has been selected. +cgiFormCheckboxSingle() accepts the name attribute of the checkbox +as its sole argument and returns +cgiFormSuccess if the checkbox is selected, or +cgiFormNotFound if it is not. +If multiple checkboxes with the same name are in use, +consider the +cgiFormCheckboxMultiple() and +cgiFormStringMultiple() +functions. +

Handling Numeric Input

+Now consider the Temperature() function, which retrieves +a temperature in degrees (a floating-point value) and ensures +that it lies within particular bounds: +
+void Temperature() {
+        double temperature;
+        cgiFormDoubleBounded("temperature", &temperature, 80.0, 120.0, 98.6);
+        fprintf(cgiOut, "My temperature is %f.<BR>\n", temperature);
+}
+
+The temperature is retrieved by the function +cgiFormDoubleBounded(). The first +argument is the name of the temperature input field in the form; +the second argument points to the address of the variable that will +contain the result. The next two arguments are the lower and upper +bounds, respectively. The final argument is the default value to +be returned if the user did not submit a value. +

+This function always retrieves a reasonable value within the +specified bounds; values above or below bounds are constrained +to fit the bounds. However, the return value of +cgiFormDoubleBounded can be checked to make sure the +actual user entry was in bounds, not blank, and so forth; +see the description of +cgiFormDoubleBounded() for more details. If bounds checking +is not desired, consider using +cgiFormDouble() instead. +

+Note that, for integer input, the functions +cgiFormInteger and +cgiFormIntegerBounded +are available. The behavior of these functions is similar to +that of their floating-point counterparts above. +

Handling Single-Choice Input

+The <SELECT> tag of HTML is used to provide the user with +several choices. Radio buttons and checkboxes can also be used +when the number of choices is relatively small. Consider +the Color() function of cgictest.c: +
+char *colors[] = {
+        "Red",
+        "Green",
+        "Blue"
+};
+
+void Color() {
+        int colorChoice;
+        cgiFormSelectSingle("colors", colors, 3, &colorChoice, 0);
+        fprintf(cgiOut, "I am: %s<BR>\n", colors[colorChoice]);
+}
+
+This function determines which of several colors the user chose +from a <SELECT> list in the form. An array of colors is +declared; the cgiFormSelectSingle() +function is then invoked to determine which, if any, of those choices +was selected. The first argument indicates the name of the input +field in the form. The second argument points to the list of +acceptable colors. The third argument indicates the number of +entries in the color array. The fourth argument points to the +variable which will accept the chosen color, and the last argument +indicates the index of the default value to be set if no +selection was submitted by the browser. +

+cgiFormSelectSingle() will +always indicate a reasonable selection value. However, if +the programmer wishes to know for certain that a value was +actually submitted, that the value submitted was a legal +response, and so on, the return value of cgiFormSelectSingle() +can be consulted. See the full description of +cgiFormSelectSingle() for +more information. +

+Note that radio button groups and <SELECT> lists can both +be handled by this function. If you are processing radio +button groups, you may prefer to invoke +cgiFormRadio(), which functions +identically. +

+"What if I won't know the acceptable choices at runtime?" +

+If the acceptable choices aren't known until runtime, +one can simply load the choices from disk. But if the acceptable +choices aren't fixed at all (consider a list of country names; +new names may be added to the form at any time and it is +inconvenient to also update program code or a separate list +of countries), simply invoke +cgiFormStringNoNewlines() +instead to retrieve the string directly. Keep in mind that, if +you do so, validating the response to make sure it is +safe and legitimate becomes a problem for your own +program to solve. The advantage of cgiFormSelectSingle() is that invalid +responses are never returned. +

+To handle multiple-selection <SELECT> lists and +groups of checkboxes with the same name, see the +discussion of the NonExButtons() function of cgictest.c, immediately below. +

Handling Multiple-Choice Input

+Consider the first half of the NonExButtons() function of cgictest.c: +
+char *votes[] = {
+  "A",
+  "B",
+  "C",
+  "D"
+};
+
+void NonExButtons() {
+  int voteChoices[4];
+  int i;
+  int result;  
+  int invalid;
+
+  char **responses;
+
+  /* Method #1: check for valid votes. This is a good idea,
+    since votes for nonexistent candidates should probably
+    be discounted... */
+  fprintf(cgiOut, "Votes (method 1):<BR>\n");
+  result = cgiFormCheckboxMultiple("vote", votes, 4, 
+    voteChoices, &invalid);
+  if (result == cgiFormNotFound) {
+    fprintf(cgiOut, "I hate them all!<p>\n");
+  } else {  
+    fprintf(cgiOut, "My preferred candidates are:\n");
+    fprintf(cgiOut, "<ul>\n");
+    for (i=0; (i < 4); i++) {
+      if (voteChoices[i]) {
+        fprintf(cgiOut, "<li>%s\n", votes[i]);
+      }
+    }
+    fprintf(cgiOut, "</ul>\n");
+  }
+
+This function takes advantage of +cgiFormCheckboxMultiple(), +which is used to identify one or more selected checkboxes with +the same name. This function performs identically to +cgiFormSelectMultiple(). +That is, <SELECT> tags with the MULTIPLE attribute are handled +just like a group of several checkboxes with the same name. +

+The first argument to +cgiFormCheckboxMultiple() is the name given to all +checkbox input fields in the group. The second argument +points to an array of legitimate values; these should +correspond to the VALUE attributes of the checkboxes +(or OPTION tags in a <SELECT> list). The third argument +indicates the number of entries in the array of +legitimate values. The fourth argument points to +an array of integers with the same number of entries +as the array of legitimate values; each entry +will be set true if that checkbox or option was selected, +false otherwise. +

+The last argument points to an integer which will be set to the +number of invalid responses (responses not in the array of +valid responses) that were submitted. If this value is not +of interest, the last argument may be a null pointer (0). +

+Note that the return value of cgiFormCheckboxMultiple is +inspected to determine whether any choices at all were +set. See the full description of +cgiFormCheckboxMultiple +for other possible return values. +

+"What if I won't know the acceptable choices at runtime?" +

+If the acceptable choices aren't known until runtime, +one can simply load the choices from disk. But if the acceptable +choices aren't fixed at all (consider a list of ice cream flavors; +new names may be added to the form at any time and it is +inconvenient to also update program code or a separate list +of countries), a more dynamic approach is needed. Consider +the second half of the NonExButtons() function of cgictest.c: +

+  /* Method #2: get all the names voted for and trust them.
+    This is good if the form will change more often
+    than the code and invented responses are not a danger
+    or can be checked in some other way. */
+  fprintf(cgiOut, "Votes (method 2):<BR>\n");
+  result = cgiFormStringMultiple("vote", &responses);
+  if (result == cgiFormNotFound) {  
+    fprintf(cgiOut, "I hate them all!<p>\n");
+  } else {
+    int i = 0;
+    fprintf(cgiOut, "My preferred candidates are:\n");
+    fprintf(cgiOut, "<ul>\n");
+    while (responses[i]) {
+      fprintf(cgiOut, "<li>%s\n", responses[i]);
+      i++;
+    }
+    fprintf(cgiOut, "</ul>\n");
+  }
+  /* We must be sure to free the string array or a memory
+    leak will occur. Simply calling free() would free
+    the array but not the individual strings. The
+    function cgiStringArrayFree() does the job completely. */  
+  cgiStringArrayFree(responses);
+}
+
+This code excerpt demonstrates an alternate means of retrieving +a list of choices. The function +cgiFormStringMultiple() is used +to retrieve an array consisting of all the strings submitted +for with a particular input field name. This works both for +<SELECT> tags with the MULTIPLE attribute and for +groups of checkboxes with the same name. +

+The first argument to +cgiFormStringMultiple() is the name of the input field or +group of input fields in question. The second argument should +be the address of a pointer to a pointer to a string, which +isn't as bad as it sounds. Consider the following simple call +of the function: +

+/* An array of strings; each C string is an array of characters */
+char **responses; 
+
+cgiFormStringMultiple("vote", &responses);
+
+"How do I know how many responses there are?" +

+After the call, the last entry in the string array will be +a null pointer. Thus the simple loop: +

+int i = 0;
+while (responses[i]) {
+  /* Do something with the string responses[i] */
+  i++;
+}
+
+can be used to walk through the array until the last +entry is encountered. +

+Important: the +cgiFormStringMultiple function +returns a pointer to allocated memory. Your code +should not modify the strings in the responses array or the responses +array itself; if modification is needed, the strings should be +copied. When your code is done examining the responses array, +you MUST call +cgiStringArrayFree() with the array as an argument to free the memory +associated with the array. Otherwise, the memory will not be available +again until the program exists. Don't just call the +free() function; if you do, the individual strings will not be freed. +

Accessing Uploaded Files

+CGIC provides functions to access files that have been uploaded +as part of a form submission. IMPORTANT: you MUST set +the enctype attribute of your form tag +to multipart/form-data for this feature to work! For an +example, see the ShowForm function of +cgictest.c, examined below. +

+The File function of cgictest.c takes care of +receiving uploaded files: +

+void File()
+{
+  cgiFilePtr file;
+  char name[1024];
+  char contentType[1024];
+  char buffer[1024];
+  int size;
+  int got;
+  if (cgiFormFileName("file", name, sizeof(name)) != 
+    cgiFormSuccess) 
+  {
+    printf("<p>No file was uploaded.<p>\n");
+    return;
+  } 
+        fprintf(cgiOut, "The filename submitted was: ");
+        cgiHtmlEscape(name);
+        fprintf(cgiOut, "<p>\n");
+        cgiFormFileSize("file", &size);
+        fprintf(cgiOut, "The file size was: %d bytes<p>\n", size);
+        cgiFormFileContentType("file", contentType, sizeof(contentType));
+        fprintf(cgiOut, "The alleged content type of the file was: ");
+        cgiHtmlEscape(contentType);
+        fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Of course, this is only the claim the browser "
+    "made when uploading the file. Much like the filename, "
+    "it cannot be trusted.<p>\n");
+  fprintf(cgiOut, "The file's contents are shown here:<p>\n");
+  if (cgiFormFileOpen("file", &file) != cgiFormSuccess) {
+    fprintf(cgiOut, "Could not open the file.<p>\n");
+    return;
+  }
+  fprintf(cgiOut, "<pre>\n");
+  while (cgiFormFileRead(file, buffer, sizeof(buffer), &got) ==
+    cgiFormSuccess)
+  {
+    cgiHtmlEscapeData(buffer, got);
+  }
+  fprintf(cgiOut, "</pre>\n");
+  cgiFormFileClose(file);
+}
+
+First, the File function checks to determine the filename that was +submitted by the user. VERY IMPORTANT: this filename may or +may not bear any relation to the real name of the file on the user's +computer, may be deliberately manipulated with malicious intent, +and should not be used for any purpose unless you have +determined that its content is safe for your intended use and will not, +at the very least, overwrite another file of importance to you, especially if +you intend to use it as a file name on the server side. The cgic library +itself does not use this file name for temporary storage. +

+If the cgiFormFileName function does +not succeed, no file was uploaded. +

+Next, the cgiFormFileSize function is called +to determine the size of the uploaded file, in bytes. +

+The File function then proceeds to query the content type of the uploaded +file. Files uploaded by the user have their own content type information, +which may be useful in determining whether the file is an image, HTML document, +word processing document, or other type of file. However, +as with the filename and any other claim made by the browser, +this information should not be blindly trusted. The browser +may upload a file with the name picture.jpg and the +content type image/jpeg, but this does not guarantee that the +actual file will contain a valid JPEG image suitable for display. +

+The content type submitted by the browser can be queried using the +cgiFormFileContentType function. +

+Of course, CGIC also provides access to the actual uploded file. +First, the programmer calls cgiFormFileOpen, +passing the address of a cgiFilePtr object. If this function +succeeds, the cgiFilePtr object becomes valid, and can be +used in subsequent calls to cgiFormFileRead. +Notice that the number of bytes read may be less than the number requested, +in particular on the last successful call before cgiFormFileRead begins +to return cgiFormEOF. When cgiFormFileRead no longer returns +cgiFormSuccess, +the programmer calls cgiFormFileClose to +release the cgiFilePtr object. +

+The uploaded file data may contain anything, including binary data, +null characters, and so on. The example program uses the +cgiHtmlEscapeData function to output the +data with any special characters that have meaning in HTML escaped. +Most programs will save the uploaded information to a server-side file or +database. +

Fetching All Form Entries

+From time to time, the programmer may not know the names of all +form fields in advance. In such situations it is convenient to +use the cgiFormEntries function. +The Entries function of cgictest.c demonstrates the use of +cgiFormEntries: +
+void Entries()
+{
+        char **array, **arrayStep;
+        fprintf(cgiOut, "List of All Submitted Form Field Names:<p>\n");
+        if (cgiFormEntries(&array) != cgiFormSuccess) {
+                return;
+        }
+        arrayStep = array;
+        fprintf(cgiOut, "<ul>\n");
+        while (*arrayStep) {
+                fprintf(cgiOut, "<li>");
+                cgiHtmlEscape(*arrayStep);
+                fprintf(cgiOut, "\n");
+                arrayStep++;
+        }
+        fprintf(cgiOut, "</ul>\n");
+        cgiStringArrayFree(array);
+}
+
+The cgiFormEntries function retrieves an array of form field names. +This array consists of pointers to strings, with a final null pointer +to mark the end of the list. The above code illustrates one way of +looping through the returned strings. Note the final call to +cgiStringArrayFree, which is +essential in order to return the memory used to store the strings +and the string array. +

Retrieving Cookies

+The Cookies function of cgictest.c displays a list of all cookies +submitted by the browser with the current form submission, along +with their values: +
+void Cookies()
+{
+  char **array, **arrayStep;
+  char cname[1024], cvalue[1024];
+  fprintf(cgiOut, "Cookies Submitted On This Call, With Values "
+    "(Many Browsers NEVER Submit Cookies):<p>\n");
+  if (cgiCookies(&array) != cgiFormSuccess) {
+    return;
+  }
+  arrayStep = array;
+  fprintf(cgiOut, "<table border=1>\n");
+  fprintf(cgiOut, "<tr><th>Cookie<th>Value</tr>\n");
+  while (*arrayStep) {
+    char value[1024];
+    fprintf(cgiOut, "<tr>");
+    fprintf(cgiOut, "<td>");
+    cgiHtmlEscape(*arrayStep);
+    fprintf(cgiOut, "<td>");
+    cgiCookieString(*arrayStep, value, sizeof(value));
+    cgiHtmlEscape(value);
+    fprintf(cgiOut, "\n");
+    arrayStep++;
+  }
+  fprintf(cgiOut, "</table>\n");
+  cgiFormString("cname", cname, sizeof(cname));  
+  cgiFormString("cvalue", cvalue, sizeof(cvalue));  
+  if (strlen(cname)) {
+    fprintf(cgiOut, "New Cookie Set On This Call:<p>\n");
+    fprintf(cgiOut, "Name: ");  
+    cgiHtmlEscape(cname);
+    fprintf(cgiOut, "Value: ");  
+    cgiHtmlEscape(cvalue);
+    fprintf(cgiOut, "<p>\n");
+    fprintf(cgiOut, "If your browser accepts cookies "
+      "(many do not), this new cookie should appear "
+      "in the above list the next time the form is "
+      "submitted.<p>\n"); 
+  }
+  cgiStringArrayFree(array);
+}
+
+VERY IMPORTANT: YOUR BROWSER MIGHT NOT SUBMIT COOKIES, +EVER, REGARDLESS OF WHAT VALUES YOU ENTER INTO THE TEST FORM. +Many, many browsers are configured not to accept or send cookies; +others are configured to send them as little as possible to meet the +bare minimum requirements for entry into popular sites. Users will often +refuse your cookies; make sure your code still works in that situation! +

+The above code uses the cgiCookies function +to retrieve a list of all currently set cookies as a null-terminated +array of strings. The cgiCookieString +function is then used to fetch the value associated with each cookie; +this function works much like cgiFormString, +discussed earlier. Note that a cookie set as a part of the current +form submission process does not appear on this list immediately, as +it has not yet been sent back by the browser. It should appear on +future submissions, provided that the browser chooses to accept +and resend the cookie at all. +

Displaying a Form That Submits to the Current Program

+CGI programmers often need to display HTML pages as part of the output +of CGI programs; these HTML pages often contain forms which should submit +fields back to the same program they came from. Provided that your +web server is well-configured, this can be done conveniently using +the cgiScriptName environment variable, as shown below. Here is the +source code of the ShowForm function of cgictest.c: +
+void ShowForm()
+{
+  fprintf(cgiOut, "<!-- 2.0: multipart/form-data is required 
+    "for file uploads. -->");
+  fprintf(cgiOut, "<form method=\"POST\" "
+    "enctype=\"multipart/form-data\" ");
+  fprintf(cgiOut, "  action=\"");
+  cgiValueEscape(cgiScriptName);
+  fprintf(cgiOut, "\">\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing Plaintext\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"name\">Your Name\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Multiple-Line Text Field\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<textarea NAME=\"address\" ROWS=4 COLS=40>\n");
+  fprintf(cgiOut, "Default contents go here. \n");
+  fprintf(cgiOut, "</textarea>\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Checkbox\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"hungry\" checked>Hungry\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing a Numeric Value\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"temperature\" value=\"98.6\">\n");
+  fprintf(cgiOut, "Blood Temperature (80.0-120.0)\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Text Field containing an Integer Value\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<input type=\"text\" name=\"frogs\" value=\"1\">\n");
+  fprintf(cgiOut, "Frogs Eaten\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "Single-SELECT\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "<select name=\"colors\">\n");
+  fprintf(cgiOut, "<option value=\"Red\">Red\n");
+  fprintf(cgiOut, "<option value=\"Green\">Green\n");
+  fprintf(cgiOut, "<option value=\"Blue\">Blue\n");
+  fprintf(cgiOut, "</select>\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "Multiple-SELECT\n");
+  fprintf(cgiOut, "<br>\n");
+  fprintf(cgiOut, "<select name=\"flavors\" multiple>\n");
+  fprintf(cgiOut, "<option value=\"pistachio\">Pistachio\n");
+  fprintf(cgiOut, "<option value=\"walnut\">Walnut\n");
+  fprintf(cgiOut, "<option value=\"creme\">Creme\n");
+  fprintf(cgiOut, "</select>\n");
+  fprintf(cgiOut, "<p>Exclusive Radio Button Group: Age of "
+    "Truck in Years\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"1\">1\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"2\">2\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"3\" checked>3\n");
+  fprintf(cgiOut, "<input type=\"radio\" name=\"age\" "
+    "value=\"4\">4\n");
+  fprintf(cgiOut, "<p>Nonexclusive Checkbox Group: "
+    "Voting for Zero through Four Candidates\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"A\">A\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"B\">B\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"C\">C\n");
+  fprintf(cgiOut, "<input type=\"checkbox\" name=\"vote\" "
+    "value=\"D\">D\n");
+  fprintf(cgiOut, "<p>File Upload:\n");
+  fprintf(cgiOut, "<input type=\"file\" name=\"file\" "
+    "value=\"\"> (Select A Local File)\n");
+  fprintf(cgiOut, "<p>\n");
+  fprintf(cgiOut, "<p>Set a Cookie<p>\n");
+  fprintf(cgiOut, "<input name=\"cname\" "
+    "value=\"\"> Cookie Name\n");
+  fprintf(cgiOut, "<input name=\"cvalue\" "
+    "value=\"\"> Cookie Value<p>\n");
+  fprintf(cgiOut, "<input type=\"submit\" "
+    "name=\"testcgic\" value=\"Submit Request\">\n");
+  fprintf(cgiOut, "<input type=\"reset\" "
+    "value=\"Reset Request\">\n");
+  fprintf(cgiOut, "<p>Save the CGI Environment<p>\n");
+  fprintf(cgiOut, "Pressing this button will submit the form, then "
+    "save the CGI environment so that it can be replayed later "
+    "by calling cgiReadEnvironment (in a debugger, for "
+    "instance).<p>\n");
+  fprintf(cgiOut, "<input type=\"submit\" name=\"saveenvironment\" "
+    "value=\"Save Environment\">\n");
+  fprintf(cgiOut, "</form>\n");
+}
+
+Note the use of enctype="multipart/form-data" in the +FORM tag. This is absolutely required if the form +will contain file upload fields, as in the above example. Most +browsers will not even attempt file uploads without the +presence of this attribute. +

Examining CGI environment variables

+The CGI standard specifies a number of environment variables +which are set by the server. However, servers are somewhat +unpredictable as to whether these variables will be null or +point to empty strings when an environment variable is not set. +Also, in order to allow the programmer to restore saved +CGI environments, the cgic library needs have a way of insulating +the programmer from the actual environment variables. +

+Instead of calling getenv() to determine the value of a +variable such as HTTP_USER_AGENT (the browser software being used), +always use the +cgic copies of the environment variables, +which are always valid C strings (they are never null, although +they may point to an empty string). For instance, the cgic +variable containing the name of the browser software is +cgiUserAgent. The referring URL appears +in the variable cgiReferrer. +

How can I generate images from my cgic application?

+cgic can be used in conjunction with the gd graphics library, which +can produce GIF images on the fly. +

+The following short sample program hints at the possibilities: +

+#include "cgic.h"
+#include "gd.h"
+
+char *colors[] = {
+  "red", "green", "blue"
+};
+
+#define colorsTotal 3
+
+int cgiMain() {
+  int colorChosen;
+  gdImagePtr im;
+  int r, g, b;
+  /* Use gd to create an image */
+  im = gdImageCreate(64, 64);
+  r = gdImageColorAllocate(im, 255, 0, 0);  
+  g = gdImageColorAllocate(im, 0, 255, 0);  
+  b = gdImageColorAllocate(im, 0, 0, 255);  
+  /* Now use cgic to find out what color the user requested */
+  cgiFormSelectSingle("color", 3, &colorChosen, 0);  
+  /* Now fill with the desired color */
+  switch(colorChosen) {
+    case 0:
+    gdImageFill(im, 32, 32, r);
+    break;
+    case 1:
+    gdImageFill(im, 32, 32, g);
+    break;
+    case 2:
+    gdImageFill(im, 32, 32, b);
+    break;
+  }  
+  /* Now output the image. Note the content type! */
+  cgiHeaderContentType("image/gif");
+  /* Send the image to cgiOut */
+  gdImageGif(im, cgiOut);
+  /* Free the gd image */
+  gdImageDestroy(im);
+  return 0;
+}
+
+Note that this program would need to be linked with both cgic.o +and libgd.a. Often programs of this type respond to one +cgiPathInfo value or set of form fields by returning an HTML page +with an inline image reference that, in turn, generates a GIF image. +

Debugging CGI applications: using capture

+Debugging CGI applications can be a painful task. Since CGI applications +run in a special environment created by the web server, it is difficult +to execute them in a debugger. However, the cgic library provides a way +of capturing "live" CGI environments to a file, and also provides a way +to reload saved environments. +

+The provided program 'capture.c' can be used to capture CGI +environments. Just change the first line of the cgiMain() function +of capture.c to save the CGI environment to a filename appropriate +on your system and type 'make capture'. Then place capture in your +cgi directory and set the form action or other link you want to test +to point to it. When the form submission or other link takes place, +capture will write the CGI environment active at that time to +the filename you specified in the source. The +cgiReadEnvironment() function can then +be invoked on the same filename at the beginning of the cgiMain() function +of the application you want to test in order to restore the captured +environment. You can then execute your program in the debugger of your choice, +and it should perform exactly as it would have performed had +it been launched by the actual web server, including file uploads, +cookies and all other phenomena within the purview of cgic. +

+Important: Make sure you specify the full path, as the +current working directory of a CGI script may not be what you +think it is! +

+Even More Important: If you call getenv() yourself +in your code, instead of using the provided +cgic copies of the CGI environment variables, you will +not get the values you expect when running with +a saved CGI environment. Always use the cgic variables instead +of calling getenv(). +

cgic function reference

+
+
cgiFormResultType cgiFormString( + char *name, char *result, int max) +
cgiFormString attempts to retrieve the string sent for the + specified input field. The text will be copied into + the buffer specified by result, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. Regardless of the newline + format submitted by the browser, cgiFormString always + encodes each newline as a single line feed (ascii decimal 10); as + a result the final string may be slightly shorter than indicated + by a call to + cgiFormStringSpaceNeeded but will never be longer. + cgiFormString returns cgiFormSuccess if the string was + successfully retrieved, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + cgiFormEmpty if the string was + retrieved but was empty, and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. +

+cgiFormResultType cgiFormStringNoNewlines( + char *name, char *result, int max) +
+cgiFormStringNoNewlines() is exactly equivalent to + cgiFormString(), except + that any carriage returns or line feeds that occur in the input + will be stripped out. The use of this function is recommended + for single-line text input fields, as some browsers will submit + carriage returns and line feeds when they should not. +

+cgiFormResultType cgiFormStringSpaceNeeded( + char *name, int *length) +
+cgiFormStringSpaceNeeded() is used to determine the length of the input text + buffer needed to receive the contents of the specified input field. + This is useful if the programmer wishes to allocate sufficient memory + for input of arbitrary length. The actual length of the string + retrieved by a subsequent call to cgiFormString() may be slightly shorter + but will never be longer than *result. On success, cgiFormStringSpaceNeeded() + sets the value pointed to by length to the number of bytes of data, + including the terminating null, and returns cgiFormSuccess. If no + value was submitted for the specified field, cgiFormStringSpaceNeeded sets + the value pointed to by length to 1 and returns cgiFormNotFound. 1 is + set to ensure space for an empty string (a single null + character) if cgiFormString is called despite the return value. + +

cgiFormResultType cgiFormStringMultiple( + char *name, char ***ptrToStringArray) +
cgiFormStringMultiple is useful in the unusual case in which several + input elements in the form have the same name and, for whatever + reason, the programmer does not wish to use the checkbox, radio + button and selection menu functions provided below. This is + occasionally needed if the programmer cannot know + in advance what values might appear in a multiple-selection list + or group of checkboxes on a form. The value pointed to + by result will be set to a pointer to an array of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiFormStringMultiple() returns cgiFormSuccess if at least + one occurrence of the name is found, cgiFormNotFound + if no occurrences are found, or cgiFormMemory if not enough + memory is available to allocate the array to be returned. + In all cases except the last, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer. + +

cgiFormResultType cgiFormEntries( + char ***ptrToStringArray) +
cgiFormEntries is useful when the programmer cannot know the names + of all relevant form fields in advance. The value pointed to + by result will be set to a pointer to an array of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiFormEntries() returns cgiFormSuccess except in the event of an out of memory error. + On success, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer, and + cgiFormOutOfMemory is returned. + +

void cgiStringArrayFree(char **stringArray) + +
+cgiStringArrayFree() is used to free the memory associated with + a string array created by + cgiFormStringMultiple(), + cgiFormEntries(), or + cgiFormCookies(). +

cgiFormResultType cgiFormInteger( + char *name, int *result, int defaultV) +
cgiFormInteger() attempts to retrieve the integer sent for the + specified input field. The value pointed to by result + will be set to the value submitted. cgiFormInteger() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not an integer, + and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. +

+cgiFormResultType cgiFormIntegerBounded( + char *name, int *result, int min, int max, int defaultV) +
cgiFormIntegerBounded() attempts to retrieve the integer sent for the + specified input field, and constrains the result to be within + the specified bounds. The value pointed to by result + will be set to the value submitted. cgiFormIntegerBounded() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormConstrained if the value was out of bounds and result + was adjusted accordingly, cgiFormEmpty if the value submitted is + an empty string, cgiFormBadType if the value submitted is not an + integer, and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. + +

cgiFormResultType cgiFormDouble( + char *name, double *result, double defaultV) +
cgiFormDouble attempts to retrieve the floating-point value sent for + the specified input field. The value pointed to by result + will be set to the value submitted. cgiFormDouble returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not a number, + and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. +

+cgiFormResultType cgiFormDoubleBounded( + char *name, double *result, double min, double max, + double defaultV) +
+cgiFormDoubleBounded() attempts to retrieve the floating-point + value sent for the specified input field, and constrains the + result to be within the specified bounds. The value pointed to by + result will be set to the value submitted. cgiFormDoubleBounded() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormConstrained if the value was out of bounds and result + was adjusted accordingly, cgiFormEmpty if the value submitted is + an empty string, cgiFormBadType if the value submitted is not a + number, and cgiFormNotFound if no such input field was submitted. + In the last three cases, the value pointed to by result + is set to the specified default. + +

+cgiFormResultType cgiFormSelectSingle( + char *name, char **choicesText, int choicesTotal, + int *result, int defaultV) +
+cgiFormSelectSingle() retrieves the selection number associated with a + <SELECT> element that does not allow multiple selections. name + should identify the NAME attribute of the <SELECT> element. choicesText + should point to an array of strings identifying each choice; + choicesTotal should indicate the total number of choices. The value + pointed to by result will be set to the position of the actual choice + selected within the choicesText array, if any, or to the value of + default, if no selection was submitted or an invalid selection was + made. cgiFormSelectSingle() returns cgiFormSuccess if the value was + successfully retrieved, cgiFormNotFound if no selection + was submitted, and cgiFormNoSuchChoice if the selection + does not match any of the possibilities in the choicesText array. +
+ +cgiFormResultType cgiFormSelectMultiple( + char *name, char **choicesText, int choicesTotal, + int *result, int *invalid) +
cgiFormSelectMultiple() retrieves the selection numbers associated with a + <SELECT> element that does allow multiple selections. name should + identify the NAME attribute of the <SELECT> element. choicesText + should point to an array of strings identifying each choice; + choicesTotal should indicate the total number of choices. result + should point to an array of integers with as many elements as there + are strings in the choicesText array. For each choice in the + choicesText array that is selected, the corresponding integer in + the result array will be set to one; other entries in the result + array will be set to zero. cgiFormSelectMultiple() returns cgiFormSuccess + if at least one valid selection was successfully retrieved or + cgiFormNotFound if no valid selections were submitted. + The integer pointed to by invalid is set to the number of + invalid selections that were submitted, which should be zero + unless the form and the choicesText array do not agree. + +

+ +cgiFormResultType cgiFormSubmitClicked( + char *name) +
+It is often desirable to know whether a particular submit button was clicked, + when multiple submit buttons with different name attributes exist. + cgiFormSubmitClicked is an alternative name for the + cgiFormCheckboxSingle function, + which is suitable for testing whether a particular submit button + was used. +

+ +cgiFormResultType cgiFormCheckboxSingle( + char *name) +
+cgiFormCheckboxSingle determines whether the checkbox with the specified name + is checked. cgiFormCheckboxSingle returns cgiFormSuccess if the + button is checked, cgiFormNotFound if the checkbox is + not checked. cgiFormCheckboxSingle is intended for single + checkboxes with a unique name; see below for functions to + deal with multiple checkboxes with the same name, and + with radio buttons. + +

+cgiFormResultType cgiFormCheckboxMultiple( + char *name, char **valuesText, int valuesTotal, + int *result, int *invalid) +
cgiFormCheckboxMultiple() determines which checkboxes among a group + of checkboxes with the same name are checked. This is distinct + from radio buttons (see cgiFormRadio). + valuesText + should point to an array of strings identifying the VALUE + attribute of each checkbox; valuesTotal should indicate the total + number of checkboxes. result should point to an array of integers with + as many elements as there are strings in the valuesText array. For + each choice in the valuesText array that is selected, the corresponding + integer in the result array will be set to one; other entries in the + result array will be set to zero. cgiFormCheckboxMultiple returns + cgiFormSuccess if at least one valid checkbox was checked or + cgiFormNotFound if no valid checkboxes were checked. + The integer pointed to by invalid is set to the number of + invalid selections that were submitted, which should be zero + unless the form and the valuesText array do not agree. +

+cgiFormResultType cgiFormRadio( + char *name, char **valuesText, int valuesTotal, + int *result, int defaultV) +
cgiFormRadio() determines which, if any, of a group of radio boxes with + the same name was selected. valuesText should point to an array of + strings identifying the VALUE attribute of each radio box; + valuesTotal should indicate the total number of radio boxes. The value + pointed to by result will be set to the position of the actual choice + selected within the valuesText array, if any, or to the value of + default, if no radio box was checked or an invalid selection was + made. cgiFormRadio() returns cgiFormSuccess if a checked radio box was + found in the group, cgiFormNotFound if no box was checked, and + cgiFormNoSuchChoice if the radio box submitted does not match any of + the possibilities in the valuesText array. + +
cgiFormResultType cgiFormFileName( + char *name, char *fileName, int max) +
cgiFormFileName attempts to retrieve the file name uploaded by the + user for the specified form input field of type file. + NEVER, EVER TRUST THIS FILENAME TO BE REASONABLE AND + SAFE FOR DIRECT USE ON THE SERVER SIDE. + The text will be copied into + the buffer specified by fileName, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. cgiFormFileName returns + cgiFormSuccess if the string was + successfully retrieved and was not empty, + cgiFormNoFileName if the string was + successfully retrieved but empty indicating that no file was uploaded, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. +
cgiFormResultType cgiFormFileSize( + char *name, int *sizeP) +
cgiFormFileSize attempts to retrieve the size, in bytes, of a + file uploaded by the browser in response to the + input field of type file specified by the + name parameter. On success, the size is stored + to *sizeP, and this function returns + cgiFormSuccess. If the form + field does not exist, this function returns + cgiFormNotFound. + If the form field exists but no file was uploaded, this function + returns cgiFormNotAFile. +
cgiFormResultType cgiFormFileContentType( + char *name, char *contentType, int max) +
cgiFormString attempts to retrieve the content name claimed by the + user for the specified form input field of type file. + THERE IS NO GUARANTEE THAT THE CONTENT TYPE WILL BE + ACCURATE. + The content type string will be copied into + the buffer specified by contentType, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. cgiFormFileContentType returns + cgiFormSuccess if the string was + successfully retrieved and was not empty, + cgiFormNoContentType if the string was + successfully retrieved but empty indicating that no file was uploaded + or the browser did not know the content type, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + and cgiFormNotFound if no + such input field was submitted. In the last case, + an empty string is copied to result. + +
cgiFormResultType cgiFormFileOpen( + char *name, cgiFilePtr *cfpp) +
cgiFormFileOpen attempts to open the actual uploaded file data for + the specified form field of type file. Upon success, + this function returns retrieve the content name claimed by the + user for the specified form input field of type file. + On success, this function sets *cfpp to a valid cgiFilePtr + object for use with cgiFormFileRead + and returns cgiFormSuccess. + On failure, this function sets *cfpp to a null pointer, and + returns cgiFormNotFound, + cgiFormNotAFile, + cgiFormMemory or + cgiFormIO as appropriate. +

+ See also cgiFormFileRead +and cgiFormFileClose. +

cgiFormResultType cgiFormFileRead( + cgiFilePtr cfp, char *buffer, int bufferSize, int *gotP) +
cgiFormFileRead attempts to read up to bufferSize + bytes from a cgiFilePtr object previously opened with + cgiFormFileOpen. If any data + is successfully read, it is copied to buffer, + and the number of bytes successfully read is stored + to *gotP. This function returns + cgiFormSuccess if any data + is successfully read. At end of file, this function + returns cgiFormEOF. In the event + of an I/O error, this function returns + cgiFormIO. If cfp is a null pointer, + this function returns cgiFormOpenFailed. +

+ See also cgiFormFileOpen +and cgiFormFileClose. +

cgiFormResultType cgiFormFileClose( + cgiFilePtr cfp) +
cgiFormFileClose closes a cgiFilePtr object previously opened + with cgiFormFileOpen, freeing + memory and other system resources. This + function returns cgiFormSuccess + unless cfp is null, in which case + cgiFormOpenFailed is returned. +

+ See also cgiFormFileOpen +and cgiFormFileRead. +

+void cgiHeaderLocation(char *redirectUrl) +
+cgiHeaderLocation() should be called if the programmer wishes to +redirect the user to a different URL. No futher output +is needed in this case. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderLocation. +

+void cgiHeaderStatus(int status, char *statusMessage) +
+cgiHeaderStatus() should be called if the programmer wishes to +output an HTTP error status code instead of a document. The status +code is the first argument; the second argument is the status +message to be displayed to the user. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderStatus. +

+void cgiHeaderContentType(char *mimeType) +
+cgiHeaderContentType() should be called if the programmer wishes to +output a new document in response to the user's request. This is +the normal case. The single argument is the MIME document type +of the response; typical values are "text/html" for HTML documents, +"text/plain" for plain ASCII without HTML tags, "image/gif" for +a GIF image and "audio/basic" for .au-format audio. +

+If you wish to set cookies, +you must make your calls to +cgiHeaderCookieSet +and +cgiHeaderCookieSetInteger + BEFORE invoking cgiHeaderContentType. +

+void cgiHeaderCookieSet(char *name, char *value, + int secondsToLive, char *path, char *domain, int options) +
+cgiHeaderCookieSet() should be called when the programmer wishes +to store a piece of information in the user's browser, so that the +stored information is again presented to the server on subsequent +accesses to the relevant site. The first argument is the name of the +cookie to be stored; for best results in all browsers, use a short +name without spaces or unusual punctuation. The second argument is +the value of the cookie to be stored. Again, for best results, use +a short string; it is recommended that cookies be used to store a +unique identifier which is then used to look up more detailed +information in a database on the server side. Attempts to store +elaborate information on the browser side are much more likely to fail. +The third argument is the number of seconds that the cookie should +be kept by the browser; 86400 is a single full day, 365*86400 is +roughly one year. The fourth argument is the partial URL of the +web site within which the cookie is relevant. If the cookie should +be sent to the server for every access to the entire site, +set this argument to /. The final argument is the +web site name or entire domain for which this cookie should be +submitted; if you choose to have the cookie sent back for an +entire domain, this argument must begin with a dot, such as +.boutell.dev. The cgic variables cgiScriptName +and cgiServerName are convenient +values for the fourth and fifth arguments. +The sixth argument is a bitmask for specifying cookie security options. +It can be zero (no options) or a bitwise-OR of the following +enum cgiCookieOption values: +
    +
  • cgiCookieSecure
  • +
  • cgiCookieHttpOnly
  • +
  • cgiCookieSameSiteStrict
  • +
+See HTTP cookies +for more information.
+See also cgiHeaderCookieSetString, +cgiHeaderCookieSetInteger, +cgiCookieString, +cgiCookieInteger and +cgiCookies. +

+void cgiHeaderCookieSetString(char *name, char *value, + int secondsToLive, char *path, char *domain) +
+cgiHeaderCookieSetString() is kept for API compability reasons. It calls +cgiHeaderCookieSet with zero as sixth +argument, i.e. no cookie options are set. +

+void cgiHeaderCookieSetInteger(char *name, int value, + int secondsToLive, char *path, char *domain) +
+cgiHeaderCookieSetInteger() is identical to +cgiHeaderCookieSetString, +except that the value to be set is an integer rather than a string. +See cgiHeaderCookieSetString +for complete information. +
+
cgiFormResultType cgiCookieString( + char *name, char *result, int max) +
cgiFormString attempts to retrieve the string sent for the + specified cookie (browser-side persistent storage). The + text will be copied into + the buffer specified by result, up to but not + exceeding max-1 bytes; a terminating null is then + added to complete the string. + cgiCookieString returns cgiFormSuccess if the string was + successfully retrieved, + cgiFormTruncated if the string was + retrieved but was truncated to fit the buffer, + cgiFormEmpty if the string was + retrieved but was empty, and cgiFormNotFound if no + such cookie was submitted. In the last case, + an empty string is copied to result. +

cgiFormResultType cgiCookieInteger( + char *name, int *result, int defaultV) + See also cgiCookieInteger, + cgiCookies, + cgiHeaderCookieSet, + cgiHeaderCookieSetString, and + cgiHeaderCookieSetInteger. +
cgiCookieInteger() attempts to retrieve the integer sent for the + specified cookie (browser-side persistent storage). The value + pointed to by result will be set to the value submitted. + cgiCookieInteger() returns + cgiFormSuccess if the value was successfully retrieved, + cgiFormEmpty if the value submitted is an empty string, + cgiFormBadType if the value submitted is not an integer, + and cgiFormNotFound if no such + input field was submitted. In the last three cases, the value + pointed to by result is set to the specified default. + See also cgiCookieString, + cgiCookies, + cgiHeaderCookieSet, + cgiHeaderCookieSetString, and + cgiHeaderCookieSetInteger. +

cgiFormResultType cgiCookies( + char *name, char ***ptrToStringArray) +
cgiCookies is useful when the programmer cannot know the names + of all relevant cookies (browser-side persistent strings) in advance. + The value pointed to by result will be set to a pointer to an array + of strings; the last + entry in the array will be a null pointer. This array is allocated + by the CGI library. Important: when done working with the array, + you must call cgiStringArrayFree() with the array pointer as the + argument. cgiCookies() returns cgiFormSuccess except in the event of an out of memory error. + On success, ptrToStringArray is set to point to a + valid array of strings, with the last element in the array being a + null pointer; in the out-of-memory case ptrToStringArray is set to + a null pointer, and + cgiFormOutOfMemory is returned. +

+cgiFormResultType cgiHtmlEscape(char *s) +
+cgiHtmlEscape() outputs the specified null-terminated string to +cgiOut, +escaping any <, &, and > characters encountered correctly so that +they do not interfere with HTML markup. Returns +cgiFormSuccess, or +cgiFormIO in the event of an I/O error. +

+

+cgiFormResultType cgiHtmlEscapeData(char *data, int len) +
+cgiHtmlEscapeData() is identical to cgiHtmlEscape, +except that the data is not null-terminated. This version of the function +outputs len bytes. See cgiHtmlEscape +for more information. +

+cgiFormResultType cgiValueEscape(char *s) +
+cgiValueEscape() outputs the specified null-terminated string to +cgiOut, +escaping any " characters encountered correctly so that +they do not interfere with the quotation marks of HTML attribute +values. This is useful when outputting a string as part of the +value attribute of an input tag, or the href attribute of a link +or form tag. This function returns +cgiFormSuccess, or +cgiFormIO in the event of an I/O error. +

+

+cgiFormResultType cgiValueEscapeData(char *data, int len) +
+cgiValueEscapeData() is identical to cgiValueEscape, +except that the data is not null-terminated. This version of the function +outputs len bytes. See cgiValueEscape +for more information. +

+cgiEnvironmentResultType cgiWriteEnvironment(char *filename) +
+cgiWriteEnvironment() can + be used to write the entire CGI environment, including + form data, to the specified output file; + cgiReadEnvironment() + can then be used to restore that environment from the specified + input file for debugging. Of course, these will only work as expected + if you use the cgic copies of the CGI environment + variables and cgiIn and + cgiOut rather than stdin and + stdout (also see above). These functions are useful in order + to capture real CGI situations while the web server is running, then + recreate them in a debugging environment. Both functions + return cgiEnvironmentSuccess on + success, cgiEnvironmentIO on an I/O + error, and cgiEnvironmentMemory + on an out-of-memory error. +

+cgiEnvironmentResultType cgiReadEnvironment(char *filename) +
+cgiReadEnvironment() restores a CGI environment saved to the specified file by + cgiWriteEnvironment(). + Of course, these will only work as expected + if you use the cgic copies of the CGI environment + variables and cgiIn and + cgiOut rather than stdin and + stdout (also see above). These functions are useful in order + to capture real CGI situations while the web server is running, then + recreate them in a debugging environment. Both functions + return cgiEnvironmentSuccess on success, + cgiEnvironmentIO on an I/O error, and + cgiEnvironmentMemory + on an out-of-memory error. +

int cgiMain() +
The programmer must write this function, which performs + the unique task of the program and is invoked by the true main() + function, found in the cgic library itself. The return value from + cgiMain will be the return value of the program. It is expected that + the user will make numerous calls to the cgiForm functions + from within this function. See how to write + a cgic application for details. +
+

cgic variable reference

+This section provides a reference guide to the various global +variables provided by cgic for the programmer to utilize. +These variables should always be used in preference to +stdin, stdout, and calls to getenv() in order to ensure +compatibility with the cgic CGI debugging features. +

+Most of these variables are equivalent to various CGI environment +variables. The most important difference is that the cgic +environment string variables are never null pointers. They will always +point to valid C strings of zero or more characters. +

+
char *cgiServerSoftware +
Points to the name of the server software, +or to an empty string if unknown. +
char *cgiServerName +
Points to the name of the server, +or to an empty string if unknown. +
char *cgiGatewayInterface +
Points to the name of the gateway interface (usually CGI/1.1), +or to an empty string if unknown. +
char *cgiServerProtocol +
Points to the protocol in use (usually HTTP/1.0), +or to an empty string if unknown. +
char *cgiServerPort +
Points to the port number on which the server is listening +for HTTP connections (usually 80), or an empty string if unknown. +
char *cgiRequestMethod +
Points to the method used in the request (usually GET or POST), +or an empty string if unknown (this should not happen). +
char *cgiPathInfo +
Most web servers recognize any additional path information in +the URL of the request beyond the name of the CGI program itself and +pass that information on to the program. cgiPathInfo points to this +additional path information. +
char *cgiPathTranslated +
Most web servers recognize any additional path information in +the URL of the request beyond the name of the CGI program itself and +pass that information on to the program. cgiPathTranslated points +to this additional path information, translated by the server into a +filesystem path on the local server. +
char *cgiScriptName +
Points to the name under which the program was invoked. +
char *cgiQueryString +
Contains any query information submitted by the user as a result +of a GET-method form or an <ISINDEX> tag. Note that this +information need not be parsed directly unless an <ISINDEX> tag +was used; normally it is parsed automatically by the cgic library. Use +the cgiForm family of functions to retrieve the values associated +with form input fields. See how to write +a cgic application for more information. +
char *cgiRemoteHost +
Points to the fully resolved hostname of the browser, if known, +or an empty string if unknown. +
char *cgiRemoteAddr +
Points to the dotted-decimal IP address of the browser, if known, +or an empty string if unknown. +
char *cgiAuthType +
Points to the type of authorization used for the request, +if any, or an empty string if none or unknown. +
char *cgiRemoteUser +
Points to the user name under which the user has +authenticated; an empty string if no authentication has +taken place. The certainty of this information depends on +the type of authorization in use; see +cgiAuthType. +
char *cgiRemoteIdent +
Points to the user name volunteered by the user via +the user identification protocol; an empty +string if unknown. This information is not secure. +Identification demons can be installed by users on +insecure systems such as Windows machines. +
char *cgiContentType +
Points to the MIME content type of the information +submitted by the user, if any; an empty string if no +information was submitted. If this string is equal to +application/x-www-form-urlencoded or +multipart/form-data, the cgic +library will automatically examine the form data submitted. +If this string has any other non-empty value, a different +type of data has been submitted. This is currently very rare, +as most browsers can only submit forms and file uploads which +cgic parses directly. +
char *cgiCookie +
Points to the raw cookie (browser-side persistent storage) +data submitted by the web browser. +Programmers should use the functions cgiCookies, +cgiCookieString and +cgiCookieInteger instead of +examining this string directly. +
char *cgiAccept +
Points to a space-separated list of MIME content types +acceptable to the browser (see +cgiHeaderContentType() ), or an empty string. Unfortunately, this variable +is not supplied in a useful form by most current browsers. Programmers wishing +to make decisions based on the capabilities of the browser +are advised to check the cgiUserAgent +variable against a list of browsers and capabilities instead. +
char *cgiUserAgent +
+Points to the name of the browser in use, or an empty +string if this information is not available. +
char *cgiReferrer +
+Points to the URL of the previous page visited by the user. This is +often the URL of the form that brought the user to your program. +Note that reporting this information is entirely up to the browser, +which may choose not do so, and may choose not to do so truthfully. +However, this variable is typically accurate. The frequently +used misspelling cgiReferer is also supplied as a macro. +
int cgiContentLength +
The number of bytes of form or query data received. + Note that if the submission is a form or query submission + the library will read and parse all the information + directly from cgiIn and/or cgiQueryString. The programmer should + not do so, and indeed the cgiIn pointer will be at end-of-file + in such cases. +
FILE *cgiOut +
Pointer to CGI output. The cgiHeader functions, such as + cgiHeaderContentType, should + be used first to output the mime headers; the output HTML + page, GIF image or other web document should then be written + to cgiOut by the programmer using standard C I/O functions + such as fprintf() and fwrite(). cgiOut is normally equivalent + to stdout; however, it is recommended that cgiOut be used to + ensure compatibility with future versions of cgic for + specialized environments. +
FILE *cgiIn +
Pointer to CGI input. In 99.99% of cases, you will not + need this. CGIC 2.0 supports both regular POST form submissions + and multipart/form-data file upload form submissions directly. +
+

cgic result code reference

+

+In most cases, cgic functions are designed to produce reasonable results +even when browsers and users do unreasonable things. However, it is sometimes +important to know precisely which unreasonable things took place, especially +when assigning a default value or bounding a value is an inadequate +solution. The following result codes are useful in making this determination. +

+
cgiFormSuccess +
Indicates that the function successfully performed at least one +action (or retrieved at least one value, where applicable). +
cgiFormTruncated +
Indicates that a string value retrieved from the user was +cut short to avoid overwriting the end of a buffer. +
cgiFormBadType +
Indicates that a "numeric" value submitted by the user was +in fact not a legal number. +
cgiFormEmpty +
Indicates that a field was retrieved but contained no data. +
cgiFormNotFound +
Indicates that no value was submitted for a particular field. +
cgiFormConstrained +
Indicates that a numeric value was beyond the specified bounds +and was forced to the lower or upper bound as appropriate. +
cgiFormNoSuchChoice +
Indicates that the value submitted for a single-choice field +(such as a radio-button group) was not one of the acceptable values. +This usually indicates a discrepancy between the form and the program. +
cgiFormEOF +
Returned by cgiFormFileRead +when, at the start of the call, the cgiFilePtr object is already +positioned at the end of the uploaded file data. +
cgiFormIO +
Returned by cgiFormFileRead +when an I/O error occurs while reading uploaded file data. +
cgiFormNotAFile +
Returned in response to an attempt to manipulate a form field +that is not a file upload field using a file-related function. +
cgiFormNoContentType +
Returned in response to an attempt to fetch the content type of +a file-upload field when the content type is not specified by the browser. +
cgiFormNoFileName +
Returned in response to an attempt to fetch the file name of +a file-upload field when a file name is not specified by the browser. +
cgiFormOpenFailed +
Returned in response to an attempt to read from a null +cgiFilePtr object, typically when the programmer has failed to +check the result of a call to cgiFormFileOpen. +
cgiEnvironmentMemory +
Indicates that an attempt to read or write the CGI environment +to or from a capture file failed due to an out-of-memory error. +
cgiEnvironmentSuccess +
Indicates that an attempt to read or write the CGI environment +to or from a capture file was successful. +
cgiEnvironmentIO +
Indicates that an attempt to read or write the CGI environment +to or from a capture file failed due to an I/O error. +
cgiEnvironmentWrongVersion +
Indicates that an attempt to read from a saved debugging CGI environment +produced by a pre-2.0 version of CGIC was made. +
+

cgic quick index

+cgiAccept | +cgiAuthType | +cgiContentLength | +cgiContentType | +cgiEnvironmentIO | +cgiEnvironmentMemory | +cgiEnvironmentSuccess | +cgiCookieInteger | +cgiCookies | +cgiHeaderCookieSet | +cgiHeaderCookieSetString | +cgiHeaderCookieSetInteger | +cgiCookieString | +cgiCookieInteger | +cgiHtmlEscape | +cgiHtmlEscapeData | +cgiValueEscape | +cgiValueEscapeData | +cgiFormBadType | +cgiFormCheckboxMultiple() | +cgiFormCheckboxSingle() | +cgiFormConstrained | +cgiFormDouble() | +cgiFormDoubleBounded() | +cgiFormEOF | +cgiFormEmpty | +cgiFormEntries | +cgiFormFileClose | +cgiFormFileContentType | +cgiFormFileName | +cgiFormFileOpen | +cgiFormFileRead | +cgiFormFileSize | +cgiFormInteger() | +cgiFormIntegerBounded() | +cgiFormNoContentType | +cgiFormNoFileName | +cgiFormNoSuchChoice | +cgiFormNotAFile | +cgiFormNotFound | +cgiFormRadio() | +cgiFormSelectMultiple() | +cgiFormSelectSingle() | +cgiFormString() | +cgiFormStringMultiple() | +cgiFormStringNoNewlines() | +cgiFormStringSpaceNeeded() | +cgiFormSuccess | +cgiFormTruncated | +cgiGatewayInterface | +cgiHeaderContentType() | +cgiHeaderLocation() | +cgiHeaderStatus() | +cgiIn | +cgiMain() +cgiOut | +cgiPathInfo | +cgiPathTranslated | +cgiQueryString | +cgiReadEnvironment() | +cgiReferrer() | +cgiRemoteAddr | +cgiRemoteHost | +cgiRemoteIdent | +cgiRemoteUser | +cgiRequestMethod | +cgiScriptName | +cgiServerName | +cgiServerPort | +cgiServerProtocol | +cgiServerSoftware | +cgiStringArrayFree() | +cgiUserAgent | +cgiWriteEnvironment() + + diff --git a/3rdPartner/cgic-master/cgictest b/3rdPartner/cgic-master/cgictest new file mode 100644 index 0000000..f252f39 Binary files /dev/null and b/3rdPartner/cgic-master/cgictest differ diff --git a/3rdPartner/cgic-master/cgictest.c b/3rdPartner/cgic-master/cgictest.c new file mode 100644 index 0000000..da2f68b --- /dev/null +++ b/3rdPartner/cgic-master/cgictest.c @@ -0,0 +1,480 @@ +/* Change this if the SERVER_NAME environment variable does not report + the true name of your web server. */ +#if 1 +#define SERVER_NAME cgiServerName +#endif +#if 0 +#define SERVER_NAME "www.boutell.dev" +#endif + +/* You may need to change this, particularly under Windows; + it is a reasonable guess as to an acceptable place to + store a saved environment in order to test that feature. + If that feature is not important to you, you needn't + concern yourself with this. */ + +#ifdef WIN32 +#define SAVED_ENVIRONMENT "c:\\cgicsave.env" +#else +#define SAVED_ENVIRONMENT "/tmp/cgicsave.env" +#endif /* WIN32 */ + +#include +#include "cgic.h" +#include +#include + +void HandleSubmit(); +void ShowForm(); +void CookieSet(); +void Name(); +void Address(); +void Hungry(); +void Temperature(); +void Frogs(); +void Color(); +void Flavors(); +void NonExButtons(); +void RadioButtons(); +void File(); +void Entries(); +void Cookies(); +void LoadEnvironment(); +void SaveEnvironment(); + +int cgiMain() { +#ifdef DEBUG + LoadEnvironment(); +#endif /* DEBUG */ + /* Load a previously saved CGI scenario if that button + has been pressed. */ + if (cgiFormSubmitClicked("loadenvironment") == cgiFormSuccess) { + LoadEnvironment(); + } + /* Set any new cookie requested. Must be done *before* + outputting the content type. */ + CookieSet(); + /* Send the content type, letting the browser know this is HTML */ + cgiHeaderContentType("text/html"); + /* Top of the page */ + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "cgic test\n"); + fprintf(cgiOut, "

cgic test

\n"); + /* If a submit button has already been clicked, act on the + submission of the form. */ + if ((cgiFormSubmitClicked("testcgic") == cgiFormSuccess) || + cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess) + { + HandleSubmit(); + fprintf(cgiOut, "
\n"); + } + /* Now show the form */ + ShowForm(); + /* Finish up the page */ + fprintf(cgiOut, "\n"); + return 0; +} + +void HandleSubmit() +{ + Name(); + Address(); + Hungry(); + Temperature(); + Frogs(); + Color(); + Flavors(); + NonExButtons(); + RadioButtons(); + File(); + Entries(); + Cookies(); + /* The saveenvironment button, in addition to submitting the form, + also saves the resulting CGI scenario to disk for later + replay with the 'load saved environment' button. */ + if (cgiFormSubmitClicked("saveenvironment") == cgiFormSuccess) { + SaveEnvironment(); + } +} + +void Name() { + char name[81]; + cgiFormStringNoNewlines("name", name, 81); + fprintf(cgiOut, "Name: "); + cgiHtmlEscape(name); + fprintf(cgiOut, "
\n"); +} + +void Address() { + char address[241]; + cgiFormString("address", address, 241); + fprintf(cgiOut, "Address:
\n");
+	cgiHtmlEscape(address);
+	fprintf(cgiOut, "
\n"); +} + +void Hungry() { + if (cgiFormCheckboxSingle("hungry") == cgiFormSuccess) { + fprintf(cgiOut, "I'm Hungry!
\n"); + } else { + fprintf(cgiOut, "I'm Not Hungry!
\n"); + } +} + +void Temperature() { + double temperature; + cgiFormDoubleBounded("temperature", &temperature, 80.0, 120.0, 98.6); + fprintf(cgiOut, "My temperature is %f.
\n", temperature); +} + +void Frogs() { + int frogsEaten; + cgiFormInteger("frogs", &frogsEaten, 0); + fprintf(cgiOut, "I have eaten %d frogs.
\n", frogsEaten); +} + +char *colors[] = { + "Red", + "Green", + "Blue" +}; + +void Color() { + int colorChoice; + cgiFormSelectSingle("colors", colors, 3, &colorChoice, 0); + fprintf(cgiOut, "I am: %s
\n", colors[colorChoice]); +} + +char *flavors[] = { + "pistachio", + "walnut", + "creme" +}; + +void Flavors() { + int flavorChoices[3]; + int i; + int result; + int invalid; + result = cgiFormSelectMultiple("flavors", flavors, 3, + flavorChoices, &invalid); + if (result == cgiFormNotFound) { + fprintf(cgiOut, "I hate ice cream.

\n"); + } else { + fprintf(cgiOut, "My favorite ice cream flavors are:\n"); + fprintf(cgiOut, "

    \n"); + for (i=0; (i < 3); i++) { + if (flavorChoices[i]) { + fprintf(cgiOut, "
  • %s\n", flavors[i]); + } + } + fprintf(cgiOut, "
\n"); + } +} + +char *ages[] = { + "1", + "2", + "3", + "4" +}; + +void RadioButtons() { + int ageChoice; + char ageText[10]; + /* Approach #1: check for one of several valid responses. + Good if there are a short list of possible button values and + you wish to enumerate them. */ + cgiFormRadio("age", ages, 4, &ageChoice, 0); + + fprintf(cgiOut, "Age of Truck: %s (method #1)
\n", + ages[ageChoice]); + + /* Approach #2: just get the string. Good + if the information is not critical or if you wish + to verify it in some other way. Note that if + the information is numeric, cgiFormInteger, + cgiFormDouble, and related functions may be + used instead of cgiFormString. */ + cgiFormString("age", ageText, 10); + + fprintf(cgiOut, "Age of Truck: %s (method #2)
\n", ageText); +} + +char *votes[] = { + "A", + "B", + "C", + "D" +}; + +void NonExButtons() { + int voteChoices[4]; + int i; + int result; + int invalid; + + char **responses; + + /* Method #1: check for valid votes. This is a good idea, + since votes for nonexistent candidates should probably + be discounted... */ + fprintf(cgiOut, "Votes (method 1):
\n"); + result = cgiFormCheckboxMultiple("vote", votes, 4, + voteChoices, &invalid); + if (result == cgiFormNotFound) { + fprintf(cgiOut, "I hate them all!

\n"); + } else { + fprintf(cgiOut, "My preferred candidates are:\n"); + fprintf(cgiOut, "

    \n"); + for (i=0; (i < 4); i++) { + if (voteChoices[i]) { + fprintf(cgiOut, "
  • %s\n", votes[i]); + } + } + fprintf(cgiOut, "
\n"); + } + + /* Method #2: get all the names voted for and trust them. + This is good if the form will change more often + than the code and invented responses are not a danger + or can be checked in some other way. */ + fprintf(cgiOut, "Votes (method 2):
\n"); + result = cgiFormStringMultiple("vote", &responses); + if (result == cgiFormNotFound) { + fprintf(cgiOut, "I hate them all!

\n"); + } else { + int i = 0; + fprintf(cgiOut, "My preferred candidates are:\n"); + fprintf(cgiOut, "

    \n"); + while (responses[i]) { + fprintf(cgiOut, "
  • %s\n", responses[i]); + i++; + } + fprintf(cgiOut, "
\n"); + } + /* We must be sure to free the string array or a memory + leak will occur. Simply calling free() would free + the array but not the individual strings. The + function cgiStringArrayFree() does the job completely. */ + cgiStringArrayFree(responses); +} + +void Entries() +{ + char **array, **arrayStep; + fprintf(cgiOut, "List of All Submitted Form Field Names:

\n"); + if (cgiFormEntries(&array) != cgiFormSuccess) { + return; + } + arrayStep = array; + fprintf(cgiOut, "

    \n"); + while (*arrayStep) { + fprintf(cgiOut, "
  • "); + cgiHtmlEscape(*arrayStep); + fprintf(cgiOut, "\n"); + arrayStep++; + } + fprintf(cgiOut, "
\n"); + cgiStringArrayFree(array); +} + +void Cookies() +{ + char **array, **arrayStep; + char cname[1024], cvalue[1024]; + fprintf(cgiOut, "Cookies Submitted On This Call, With Values (Many Browsers NEVER Submit Cookies):

\n"); + if (cgiCookies(&array) != cgiFormSuccess) { + return; + } + arrayStep = array; + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "\n"); + while (*arrayStep) { + char value[1024]; + fprintf(cgiOut, ""); + fprintf(cgiOut, "
CookieValue
"); + cgiHtmlEscape(*arrayStep); + fprintf(cgiOut, ""); + cgiCookieString(*arrayStep, value, sizeof(value)); + cgiHtmlEscape(value); + fprintf(cgiOut, "\n"); + arrayStep++; + } + fprintf(cgiOut, "
\n"); + cgiFormString("cname", cname, sizeof(cname)); + cgiFormString("cvalue", cvalue, sizeof(cvalue)); + if (strlen(cname)) { + fprintf(cgiOut, "New Cookie Set On This Call:

\n"); + fprintf(cgiOut, "Name: "); + cgiHtmlEscape(cname); + fprintf(cgiOut, "Value: "); + cgiHtmlEscape(cvalue); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "If your browser accepts cookies (many do not), this new cookie should appear in the above list the next time the form is submitted.

\n"); + } + cgiStringArrayFree(array); +} + +void File() +{ + cgiFilePtr file; + char name[1024]; + char contentType[1024]; + char buffer[1024]; + int size; + int got; + if (cgiFormFileName("file", name, sizeof(name)) != cgiFormSuccess) { + printf("

No file was uploaded.

\n"); + return; + } + fprintf(cgiOut, "The filename submitted was: "); + cgiHtmlEscape(name); + fprintf(cgiOut, "

\n"); + cgiFormFileSize("file", &size); + fprintf(cgiOut, "The file size was: %d bytes

\n", size); + cgiFormFileContentType("file", contentType, sizeof(contentType)); + fprintf(cgiOut, "The alleged content type of the file was: "); + cgiHtmlEscape(contentType); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Of course, this is only the claim the browser made when uploading the file. Much like the filename, it cannot be trusted.

\n"); + fprintf(cgiOut, "The file's contents are shown here:

\n"); + if (cgiFormFileOpen("file", &file) != cgiFormSuccess) { + fprintf(cgiOut, "Could not open the file.

\n"); + return; + } + fprintf(cgiOut, "

\n");
+	while (cgiFormFileRead(file, buffer, sizeof(buffer), &got) ==
+		cgiFormSuccess)
+	{
+		cgiHtmlEscapeData(buffer, got);
+	}
+	fprintf(cgiOut, "
\n"); + cgiFormFileClose(file); +} + +void ShowForm() +{ + fprintf(cgiOut, ""); + fprintf(cgiOut, "
\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Text Field containing Plaintext\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Your Name\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Multiple-Line Text Field\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Checkbox\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Hungry\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Text Field containing a Numeric Value\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "Blood Temperature (80.0-120.0)\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Text Field containing an Integer Value\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "Frogs Eaten\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "Single-SELECT\n"); + fprintf(cgiOut, "
\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "
\n"); + fprintf(cgiOut, "Multiple-SELECT\n"); + fprintf(cgiOut, "
\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "

Exclusive Radio Button Group: Age of Truck in Years\n"); + fprintf(cgiOut, "1\n"); + fprintf(cgiOut, "2\n"); + fprintf(cgiOut, "3\n"); + fprintf(cgiOut, "4\n"); + fprintf(cgiOut, "

Nonexclusive Checkbox Group: Voting for Zero through Four Candidates\n"); + fprintf(cgiOut, "A\n"); + fprintf(cgiOut, "B\n"); + fprintf(cgiOut, "C\n"); + fprintf(cgiOut, "D\n"); + fprintf(cgiOut, "

File Upload:\n"); + fprintf(cgiOut, " (Select A Local File)\n"); + fprintf(cgiOut, "

\n"); + fprintf(cgiOut, "

Set a Cookie

\n"); + fprintf(cgiOut, " Cookie Name\n"); + fprintf(cgiOut, " Cookie Value

\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "

Save the CGI Environment

\n"); + fprintf(cgiOut, "Pressing this button will submit the form, then save the CGI environment so that it can be replayed later by calling cgiReadEnvironment (in a debugger, for instance).

\n"); + fprintf(cgiOut, "\n"); + fprintf(cgiOut, "

\n"); +} + +void CookieSet() +{ + char cname[1024]; + char cvalue[1024]; + /* Must set cookies BEFORE calling cgiHeaderContentType */ + cgiFormString("cname", cname, sizeof(cname)); + cgiFormString("cvalue", cvalue, sizeof(cvalue)); + if (strlen(cname)) { + /* Cookie lives for one day (or until browser chooses + to get rid of it, which may be immediately), + and applies only to this script on this site. */ + cgiHeaderCookieSetString(cname, cvalue, + 86400, cgiScriptName, SERVER_NAME); + } +} + +void LoadEnvironment() +{ + if (cgiReadEnvironment(SAVED_ENVIRONMENT) != + cgiEnvironmentSuccess) + { + cgiHeaderContentType("text/html"); + fprintf(cgiOut, "Error\n"); + fprintf(cgiOut, "

Error

\n"); + fprintf(cgiOut, "cgiReadEnvironment failed. Most " + "likely you have not saved an environment " + "yet.\n"); + exit(0); + } + /* OK, return now and show the results of the saved environment */ +} + +void SaveEnvironment() +{ + if (cgiWriteEnvironment(SAVED_ENVIRONMENT) != + cgiEnvironmentSuccess) + { + fprintf(cgiOut, "

cgiWriteEnvironment failed. Most " + "likely %s is not a valid path or is not " + "writable by the user that the CGI program " + "is running as.

\n", SAVED_ENVIRONMENT); + } else { + fprintf(cgiOut, "

Environment saved. Click this button " + "to restore it, playing back exactly the same " + "scenario: " + "

" + "

\n"); + } +} + diff --git a/3rdPartner/cgic-master/libcgic.so b/3rdPartner/cgic-master/libcgic.so new file mode 100644 index 0000000..9b9bcdc Binary files /dev/null and b/3rdPartner/cgic-master/libcgic.so differ diff --git a/3rdPartner/cgic-master/license.txt b/3rdPartner/cgic-master/license.txt new file mode 100644 index 0000000..54fa1f8 --- /dev/null +++ b/3rdPartner/cgic-master/license.txt @@ -0,0 +1,10 @@ +cgic is now distributed under the MIT license: + +Copyright (c) 1996-2019 Thomas Boutell + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/3rdPartner/cgic-master/mso.sh b/3rdPartner/cgic-master/mso.sh new file mode 100644 index 0000000..228244c --- /dev/null +++ b/3rdPartner/cgic-master/mso.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +gcc -fpic -shared -o libcgic.so -I. cgic.c capture.c +gcc -o cgictest -I. -L. -lcgic cgictest.c + diff --git a/3rdPartner/cgicc-3.2.19.tar.gz b/3rdPartner/cgicc-3.2.19.tar.gz new file mode 100644 index 0000000..22ec380 Binary files /dev/null and b/3rdPartner/cgicc-3.2.19.tar.gz differ diff --git a/3rdPartner/cgicc-3.2.20.tar.gz b/3rdPartner/cgicc-3.2.20.tar.gz new file mode 100644 index 0000000..9f6d23e Binary files /dev/null and b/3rdPartner/cgicc-3.2.20.tar.gz differ diff --git a/3rdPartner/json-develop.zip b/3rdPartner/json-develop.zip new file mode 100644 index 0000000..58bedf2 Binary files /dev/null and b/3rdPartner/json-develop.zip differ diff --git a/3rdPartner/libhv-master.zip b/3rdPartner/libhv-master.zip new file mode 100644 index 0000000..6e1352c Binary files /dev/null and b/3rdPartner/libhv-master.zip differ diff --git a/3rdPartner/libhv/.bazelrc b/3rdPartner/libhv/.bazelrc new file mode 100644 index 0000000..81485ef --- /dev/null +++ b/3rdPartner/libhv/.bazelrc @@ -0,0 +1,24 @@ +build --copt=-std=c99 +build --cxxopt=-std=c++11 +build --define BUILD_SHARED=ON +build --define BUILD_STATIC=ON +build --define BUILD_EXAMPLES=ON +build --define BUILD_UNITTEST=OFF +build --define WITH_PROTOCOL=OFF +build --define WITH_EVPP=ON +build --define WITH_HTTP=ON +build --define WITH_HTTP_SERVER=ON +build --define WITH_HTTP_CLIENT=ON +build --define WITH_MQTT=OFF +build --define ENABLE_UDS=OFF +build --define USE_MULTIMAP=OFF +build --define WITH_CURL=OFF +build --define WITH_NGHTTP2=OFF +build --define WITH_OPENSSL=OFF +build --define WITH_GNUTLS=OFF +build --define WITH_MBEDTLS=OFF +build --define WITH_KCP=OFF +build --define WITH_WEPOLL=ON +build --define ENABLE_WINDUMP=OFF +build --define BUILD_FOR_MT=OFF + diff --git a/3rdPartner/libhv/.clang-format b/3rdPartner/libhv/.clang-format new file mode 100644 index 0000000..80d5c60 --- /dev/null +++ b/3rdPartner/libhv/.clang-format @@ -0,0 +1,95 @@ +--- +Language: Cpp +# BasedOnStyle: LLVM +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlinesLeft: true +AlignOperands: true +AlignTrailingComments: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: true +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: true + BeforeElse: true + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Custom +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 160 +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: true +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '.*' + Priority: 1 + - Regex: '^".*/' + Priority: 2 + - Regex: '^<)' + Priority: 3 +IncludeIsMainRegex: '$' +IndentCaseLabels: false +IndentWidth: 4 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 4 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: true +SortIncludes: false +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 4 +UseTab: Never +... + diff --git a/3rdPartner/libhv/.gitattributes b/3rdPartner/libhv/.gitattributes new file mode 100644 index 0000000..2512879 --- /dev/null +++ b/3rdPartner/libhv/.gitattributes @@ -0,0 +1 @@ +cpputil/json.hpp linguist-vendored diff --git a/3rdPartner/libhv/.gitignore b/3rdPartner/libhv/.gitignore new file mode 100644 index 0000000..aa15252 --- /dev/null +++ b/3rdPartner/libhv/.gitignore @@ -0,0 +1,77 @@ +# Bazel +bazel-* +MODULE.bazel +MODULE.bazel.lock + +# Compiled Object files +*.o +*.lo +*.slo +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Compiled Static libraries +*.a +*.la +*.lai +*.lib + +# Executables +*.exe +*.out +*.app + +# cache +*~ +*.bk +*.bak +*.old +*.new + +# IDE +.vs +.vscode +.DS_Store + +tags +cscope* +.ycm* + +# generated +examples/protorpc/generated + +# output +*.pid +*.log +*.db + +include +lib +bin +tmp +dist +test +*_test +build +config.mk +hconfig.h +html/uploads + +# msvc +*.VC.* +*.vcxproj.* +Debug +Release + +# cmake +CMakeFiles +CMakeCache.txt +cmake_install.cmake diff --git a/3rdPartner/libhv/.travis.yml b/3rdPartner/libhv/.travis.yml new file mode 100644 index 0000000..6bd4ad3 --- /dev/null +++ b/3rdPartner/libhv/.travis.yml @@ -0,0 +1,39 @@ +language: cpp + +jobs: + include: + - os: linux + dist: xenial + compiler: gcc + env: COVERALLS=no + script: + - ./configure + - make libhv examples unittest evpp + + - os: osx + compiler: clang + env: COVERALLS=no + script: + - ./configure + - make libhv examples unittest evpp + + - os: windows + compiler: msvc + env: COVERALLS=no + script: + - mkdir win64 + - cd win64 + - cmake .. -G "Visual Studio 15 2017 Win64" + - cmake --build . + +before_script: + - if [ "$COVERALLS" = "yes" ]; then + pip install --user cpp-coveralls; + export CC="$CC --coverage" CXX="$CXX --coverage"; + fi + +after_success: + - if [ "$COVERALLS" = "yes" ]; then + scripts/test-coverage.sh; + coveralls --gcov-options '\-lp' --include base --include event --include http; + fi diff --git a/3rdPartner/libhv/BUILD.bazel b/3rdPartner/libhv/BUILD.bazel new file mode 100644 index 0000000..0e5b8b6 --- /dev/null +++ b/3rdPartner/libhv/BUILD.bazel @@ -0,0 +1,466 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + + +config_setting( + name = "ios", + constraint_values = ["@platforms//apple:ios"], +) + +config_setting( + name = "msvc", + values = { + "compiler": "msvc-cl", + }, +) + +config_setting( + name = "debug", + values = {"compilation_mode": "dbg"}, +) + +config_setting( + name = "release", + values = {"compilation_mode": "opt"}, +) + +config_setting( + name = "build_shared", + define_values = {"BUILD_SHARED": "ON"}, +) + +config_setting( + name = "build_static", + define_values = {"BUILD_STATIC": "ON"} +) + +config_setting( + name = "build_examples", + define_values = {"BUILD_EXAMPLES": "ON"}, +) + +config_setting( + name = "build_unittest", + define_values = {"BUILD_UNITTEST": "ON"} +) + +config_setting( + name = "with_protocol", + define_values = {"WITH_PROTOCOL": "ON"} +) + +config_setting( + name = "with_evpp", + define_values = { + "WITH_EVPP": "ON", + }, + visibility = [":__subpackages__"] +) + +config_setting( + name = "with_http", + define_values = { + "WITH_EVPP": "ON", + "WITH_HTTP": "ON", + }, + visibility = [":__subpackages__"] +) + +config_setting( + name = "with_http_server", + define_values = { + "WITH_EVPP": "ON", + "WITH_HTTP": "ON", + "WITH_HTTP_SERVER": "ON", + }, + visibility = [":__subpackages__"] +) + +config_setting( + name = "with_http_client", + define_values = { + "WITH_EVPP": "ON", + "WITH_HTTP": "ON", + "WITH_HTTP_CLIENT": "ON", + }, + visibility = [":__subpackages__"] +) + +config_setting( + name = "with_evpp_nghttp2", + define_values = { + "WITH_EVPP": "ON", + "WITH_HTTP": "ON", + "WITH_NGHTTP2": "ON", + } +) + +config_setting( + name = "with_mqtt", + define_values = {"WITH_MQTT": "ON"}, + visibility = [":__subpackages__"], +) + +config_setting( + name = "enable_uds", + define_values = {"ENABLE_UDS": "ON"} +) + +config_setting( + name = "use_multimap", + define_values = {"USE_MULTIMAP": "ON"} +) + +config_setting( + name = "with_curl", + define_values = {"WITH_CURL": "ON"} +) + +config_setting( + name = "with_nghttp2", + define_values = {"WITH_NGHTTP2": "ON"} +) + +config_setting( + name = "with_openssl", + define_values = {"WITH_OPENSSL": "ON"} +) + +config_setting( + name = "with_gnutls", + define_values = {"WITH_GNUTLS": "ON"} +) + +config_setting( + name = "with_mbedtls", + define_values = {"WITH_MBEDTLS": "ON"} +) + +config_setting( + name = "with_kcp", + define_values = {"WITH_KCP": "ON"} +) + +config_setting( + name = "with_wepoll", + constraint_values = ["@platforms//os:windows"], + define_values = {"WITH_WEPOLL": "ON"} +) + +config_setting( + name = "enable_windump", + constraint_values = ["@platforms//os:windows"], + define_values = {"ENABLE_WINDUMP": "ON"} +) + +config_setting( + name = "build_for_mt_dbg", + constraint_values = ["@platforms//os:windows"], + define_values = { + "BUILD_FOR_MT": "ON", + "compilation_mode": "dbg" + } +) + +config_setting( + name = "build_for_mt_opt", + constraint_values = ["@platforms//os:windows"], + define_values = { + "BUILD_FOR_MT": "ON", + "compilation_mode": "opt" + } +) + +genrule( + name = "config", + outs = ["hconfig.h"], + cmd = "($(execpath configure) && cp hconfig.h $@) || exit 1", + tools = ["configure"], +) + +HEADERS_DIRS = ["base", "ssl", "event"] + select({ + "with_wepoll": ["event/wepoll"], + "//conditions:default": [], +}) + select({ + "with_kcp": ["event/kcp"], + "//conditions:default": [], +}) + ["util"] + select({ + "with_protocol": ["protocol"], + "//conditions:default": [], +}) + select({ + "with_evpp": ["cpputil", "evpp"], + "//conditions:default": [], +}) + select({ + "with_http": ["http"], + "//conditions:default": [], +}) + select({ + "with_http_server": ["http/server"], + "//conditions:default": [], +}) + select({ + "with_http_client": ["http/client"], + "//conditions:default": [], +}) + select({ + "with_mqtt": ["mqtt"], + "//conditions:default": [], +}) + +COPTS = select({ + "debug": ["-DDEBUG"], + "release": ["-DNDEBUG"], + "//conditions:default": [], +}) + select({ + "enable_uds": ["-DENABLE_UDS"], + "//conditions:default": [], +}) + select({ + "use_multimap": ["-DUSE_MULTIMAP"], + "//conditions:default": [], +}) + select({ + "with_curl": ["-DWITH_CURL"], + "//conditions:default": [], +}) + select({ + "with_nghttp2": ["-DWITH_NGHTTP2"], + "//conditions:default": [], +}) + select({ + "with_openssl": ["-DWITH_OPENSSL"], + "//conditions:default": [], +}) + select({ + "with_gnutls": ["-DWITH_GNUTLS"], + "//conditions:default": [], +}) + select({ + "with_mbedtls": ["-DWITH_MBEDTLS"], + "//conditions:default": [], +}) + select({ + "@platforms//os:windows": ["-DWIN32_LEAN_AND_MEAN", "-D_CRT_SECURE_NO_WARNINGS", "-D_WIN32_WINNT=0x0600"], + "//conditions:default": [], +}) + select({ + "enable_windump": ["-DENABLE_WINDUMP"], + "//conditions:default": [], +}) + select({ + "build_for_mt_dbg": ["/MTd"], + "build_for_mt_opt": ["/MT"], + "//conditions:default": [], +}) + +LINKOPTS = select({ + "msvc": [], + "//conditions:default": ["-pthread"], +}) + select({ + "@platforms//os:linux": [ + "-lpthread", + "-lm", + "-ldl", + ], + "//conditions:default": [], +}) + select({ + "@bazel_tools//tools/cpp:gcc": ["-lrt"], + "//conditions:default": [], +}) + +BASE_HEADERS = [ + "base/hplatform.h", + "base/hdef.h", + "base/hatomic.h", + "base/herr.h", + "base/htime.h", + "base/hmath.h", + "base/hbase.h", + "base/hversion.h", + "base/hsysinfo.h", + "base/hproc.h", + "base/hthread.h", + "base/hmutex.h", + "base/hsocket.h", + "base/hlog.h", + "base/hbuf.h", + "base/hmain.h", + "base/hendian.h", +] + +SSL_HEADERS = [ + "ssl/hssl.h", +] + +EVENT_HEADERS = [ + "event/hloop.h", + "event/nlog.h", +] + +UTIL_HEADERS = [ + "util/base64.h", + "util/md5.h", + "util/sha1.h", +] + +CPPUTIL_HEADERS = [ + "cpputil/hmap.h", + "cpputil/hstring.h", + "cpputil/hfile.h", + "cpputil/hpath.h", + "cpputil/hdir.h", + "cpputil/hurl.h", + "cpputil/hscope.h", + "cpputil/hthreadpool.h", + "cpputil/hasync.h", + "cpputil/hobjectpool.h", + "cpputil/ifconfig.h", + "cpputil/iniparser.h", + "cpputil/json.hpp", + "cpputil/singleton.h", + "cpputil/ThreadLocalStorage.h", +] + +EVPP_HEADERS = [ + "evpp/Buffer.h", + "evpp/Channel.h", + "evpp/Event.h", + "evpp/EventLoop.h", + "evpp/EventLoopThread.h", + "evpp/EventLoopThreadPool.h", + "evpp/Status.h", + "evpp/TcpClient.h", + "evpp/TcpServer.h", + "evpp/UdpClient.h", + "evpp/UdpServer.h", +] + +PROTOCOL_HEADERS = [ + "protocol/icmp.h", + "protocol/dns.h", + "protocol/ftp.h", + "protocol/smtp.h", +] + +HTTP_HEADERS = [ + "http/httpdef.h", + "http/wsdef.h", + "http/http_content.h", + "http/HttpMessage.h", + "http/HttpParser.h", + "http/WebSocketParser.h", + "http/WebSocketChannel.h", +] + +HTTP2_HEADERS = [ + "http/http2def.h", + "http/grpcdef.h", +] + +HTTP_CLIENT_HEADERS = [ + "http/client/HttpClient.h", + "http/client/requests.h", + "http/client/axios.h", + "http/client/AsyncHttpClient.h", + "http/client/WebSocketClient.h", +] + +HTTP_SERVER_HEADERS = [ + "http/server/HttpServer.h", + "http/server/HttpService.h", + "http/server/HttpContext.h", + "http/server/HttpResponseWriter.h", + "http/server/WebSocketServer.h", +] + +MQTT_HEADERS = [ + "mqtt/mqtt_protocol.h", + "mqtt/mqtt_client.h", +] + + +HEADERS = ["hv.h", ":config", "hexport.h"] + BASE_HEADERS + SSL_HEADERS + EVENT_HEADERS + UTIL_HEADERS + select({ + "with_protocol": PROTOCOL_HEADERS, + "//conditions:default": [], +}) + select({ + "with_evpp": CPPUTIL_HEADERS + EVPP_HEADERS, + "//conditions:default": [], +}) + select({ + "with_http": HTTP_HEADERS, + "//conditions:default": [], +}) + select({ + "with_evpp_nghttp2": HTTP2_HEADERS, + "//conditions:default": [], +}) + select({ + "with_http_server": HTTP_SERVER_HEADERS, + "//conditions:default": [], +}) + select({ + "with_http_client": HTTP_CLIENT_HEADERS, + "//conditions:default": [], +}) + select({ + "with_mqtt": MQTT_HEADERS, + "//conditions:default": [], +}) + + +CORE_SRCS = glob( + ["*.h"], exclude = ["*_test.c"] +) + glob( + ["base/*.h", "base/*.c", "base/*.cpp"], exclude = ["base/*_test.c"] +) + glob( + ["ssl/*.h", "ssl/*.c", "ssl/*.cpp"], exclude = ["ssl/*_test.c"] +) + glob( + ["event/*.h", "event/*.c", "event/*.cpp"], exclude = ["event/*_test.c"] +) + select({ + "with_wepoll": glob(["event/wepoll/*.h", "event/wepoll/*.c", "event/wepoll/*.cpp"], exclude = ["event/wepoll/*_test.c"]), + "//conditions:default": [], +}) + select({ + "with_kcp": glob(["event/kcp/*.h", "event/kcp/*.c", "event/kcp/*.cpp"], exclude = ["event/kcp/*_test.c"]), + "//conditions:default": [], +}) + +SRCS = CORE_SRCS + glob(["util/*.h", "util/*.c", "util/*.cpp"], exclude = ["util/*_test.c"]) + select({ + "with_protocol": glob(["protocol/*.h", "protocol/*.c", "protocol/*.cpp"], exclude = ["protocol/*_test.c"]), + "//conditions:default": [], +}) + select({ + "with_evpp": glob(["cpputil/*.h", "cpputil/*.c", "cpputil/*.cpp", "evpp/*.h", "evpp/*.c", "evpp/*.cpp"], exclude = ["cpputil/*_test.c", "evpp/*_test.c", "evpp/*_test.cpp"]), + "//conditions:default": [], +}) + select({ + "with_http": glob(["http/*.h", "http/*.c", "http/*.cpp"], exclude = ["http/*_test.c"]), + "//conditions:default": [], +}) + select({ + "with_http_server": glob(["http/server/*.h", "http/server/*.c", "http/server/*.cpp"], exclude = ["http/server/*_test.c"]), + "//conditions:default": [], +}) + select({ + "with_http_client": glob(["http/client/*.h", "http/client/*.c", "http/client/*.cpp"], exclude = ["http/client/*_test.c"]), + "//conditions:default": [], +}) + select({ + "with_mqtt": glob(["mqtt/*.h", "mqtt/*.c", "mqtt/*.cpp"], exclude = ["mqtt/*_test.c"]), + "//conditions:default": [], +}) + +cc_library( + name = "hv_static", + srcs = SRCS, + hdrs = HEADERS, + includes = HEADERS_DIRS, + defines = ["HV_STATICLIB"], + copts = COPTS, + linkstatic = True, + linkopts = LINKOPTS, +) + + +cc_library( + name = "hv", + srcs = SRCS, + hdrs = HEADERS, + includes = HEADERS_DIRS, + defines = ["HV_DYNAMICLIB"], + copts = COPTS, + linkopts = LINKOPTS, + visibility = ["//visibility:public"] +) + +filegroup( + name = "libhv", + srcs = select({ + "build_shared": [":hv"], + "//conditions:default": [], + }) + select({ + "build_static": [":hv_static"], + "//conditions:default": [], + }) + select({ + "build_examples": ["//examples:examples"], + "//conditions:default": [], + }) +) + + diff --git a/3rdPartner/libhv/BUILD.md b/3rdPartner/libhv/BUILD.md new file mode 100644 index 0000000..c2219ae --- /dev/null +++ b/3rdPartner/libhv/BUILD.md @@ -0,0 +1,162 @@ +## Prequired + +- c99 +- c++11 + +gcc4.8+, msvc2015 or later + +## Makefile +options see [config.ini](config.ini) +``` +./configure --with-openssl +make +sudo make install +``` + +## cmake +options see [CMakeLists.txt](CMakeLists.txt) +``` +mkdir build +cd build +cmake .. -DWITH_OPENSSL=ON +cmake --build . +``` + +## bazel +options see [.bazelrc](.bazelrc) +``` +bazel build libhv +``` + +## Unix +use Makefile or cmake or bazel + +## Windows +use cmake +``` +mkdir win64 +cd win64 +cmake .. -G "Visual Studio 15 2017 Win64" +#cmake .. -G "Visual Studio 16 2019" -A x64 +#cmake .. -G "Visual Studio 17 2022" -A x64 +cmake --build . +``` + +## CROSS_COMPILE +use Makefile +``` +sudo apt install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi # ubuntu +export CROSS_COMPILE=arm-linux-gnueabi- +./configure +make clean +make libhv +``` +or use cmake +``` +mkdir build +cd build +cmake .. -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++ +cmake --build . --target libhv libhv_static +``` + +### mingw +see CROSS_COMPILE +``` +sudo apt install mingw-w64 # ubuntu +#export CROSS_COMPILE=i686-w64-mingw32- +export CROSS_COMPILE=x86_64-w64-mingw32- +./configure +make clean +make libhv +``` + +### Android +``` +#https://developer.android.com/ndk/downloads +#export ANDROID_NDK_ROOT=~/Downloads/android-ndk-r21b +mkdir build +cd build +cmake .. -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake" -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 +cmake --build . --target hv --config Release +``` + +### iOS +``` +mkdir build +cd build +cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64 -DARCHS="arm64" -DDEPLOYMENT_TARGET=9.0 +cmake --build . --target hv_static --config Release +``` + +## targets + +### lib +- make libhv + +### examples +- make examples + +### unittest +- make unittest + +## options + +### compile without c++ +``` +./configure --without-evpp +make clean && make libhv +``` + +### compile WITH_OPENSSL +Enable SSL/TLS in libhv is so easy :) +``` +// see ssl/hssl.h +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* opt); + +// see event/hloop.h +int hio_new_ssl_ctx(hio_t* io, hssl_ctx_opt_t* opt); +``` + +https is the best example. +``` +sudo apt install openssl libssl-dev # ubuntu +./configure --with-openssl +make clean && make +bin/httpd -s restart -d +bin/curl -v http://localhost:8080 +bin/curl -v https://localhost:8443 +``` + +### compile WITH_CURL +``` +./configure --with-curl +make clean && make +bin/httpd -s restart -d +bin/curl -v http://localhost:8080 +``` + +### compile WITH_NGHTTP2 +``` +sudo apt install libnghttp2-dev # ubuntu +./configure --with-nghttp2 +make clean && make +bin/httpd -s restart -d +bin/curl -v http://localhost:8080 --http2 +``` + +### compile WITH_KCP +``` +./configure --with-kcp +make clean && make +``` + +### compile WITH_MQTT +``` +./configure --with-mqtt +make clean && make +``` + +### More +``` +./configure --help +``` diff --git a/3rdPartner/libhv/CMakeLists.txt b/3rdPartner/libhv/CMakeLists.txt new file mode 100644 index 0000000..b7e7ff0 --- /dev/null +++ b/3rdPartner/libhv/CMakeLists.txt @@ -0,0 +1,281 @@ +cmake_minimum_required(VERSION 3.6) + +project(hv VERSION 1.3.2) + +option(BUILD_SHARED "build shared library" ON) +option(BUILD_STATIC "build static library" ON) + +option(BUILD_EXAMPLES "build examples" ON) +option(BUILD_UNITTEST "build unittest" OFF) + +# see config.ini +option(WITH_PROTOCOL "compile protocol" OFF) + +option(WITH_EVPP "compile evpp" ON) +option(WITH_HTTP "compile http" ON) +option(WITH_HTTP_SERVER "compile http/server" ON) +option(WITH_HTTP_CLIENT "compile http/client" ON) +option(WITH_MQTT "compile mqtt" OFF) + +option(ENABLE_UDS "Unix Domain Socket" OFF) +option(USE_MULTIMAP "MultiMap" OFF) + +option(WITH_CURL "with curl library (deprecated)" OFF) +option(WITH_NGHTTP2 "with nghttp2 library" OFF) + +option(WITH_OPENSSL "with openssl library" OFF) +option(WITH_GNUTLS "with gnutls library" OFF) +option(WITH_MBEDTLS "with mbedtls library" OFF) + +option(WITH_KCP "compile event/kcp" OFF) + +if(WIN32) + option(WITH_WEPOLL "compile event/wepoll -> use iocp" ON) + option(ENABLE_WINDUMP "Windows MiniDumpWriteDump" OFF) + option(BUILD_FOR_MT "build for /MT" OFF) + if(BUILD_FOR_MT) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") + endif() +endif() + +message(STATUS "CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}") +message(STATUS "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}") +if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") + set(BUILD_EXAMPLES OFF) +endif() + +if(IOS) + set(BUILD_SHARED OFF) + set(BUILD_EXAMPLES OFF) +endif() + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}") +include(utils) +include(vars) + +# see configure +# Checks for header files +check_header("stdbool.h") +check_header("stdint.h") +check_header("stdatomic.h") +check_header("sys/types.h") +check_header("sys/stat.h") +check_header("sys/time.h") +check_header("fcntl.h") +check_header("pthread.h") +check_header("endian.h") +check_header("sys/endian.h") + +# Checks for functions +if(NOT MSVC) + set(CMAKE_REQUIRED_LIBRARIES "-pthread") +endif() +check_function("gettid" "unistd.h") +check_function("strlcpy" "string.h") +check_function("strlcat" "string.h") +check_function("clock_gettime" "time.h") +check_function("gettimeofday" "sys/time.h") +check_function("pthread_spin_lock" "pthread.h") +check_function("pthread_mutex_timedlock" "pthread.h") +check_function("sem_timedwait" "semaphore.h") +check_function("pipe" "unistd.h") +check_function("socketpair" "sys/socket.h") +check_function("eventfd" "sys/eventfd.h") +check_function("setproctitle" "unistd.h") + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hconfig.h.in ${CMAKE_CURRENT_SOURCE_DIR}/hconfig.h) + +# see Makefile.in +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED True) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +set(INCDIR include) +set(SRCDIR src) +set(LIBDIR lib) +set(BINDIR bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBDIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBDIR}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BINDIR}) +message(STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + +set(INCDIRS . include 3rd/include) +set(LIBDIRS . lib 3rd/lib) +include_directories(${INCDIRS} ${SRCDIR}) +link_directories(${LIBDIRS}) + +message(STATUS "CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") +if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + add_definitions(-DDEBUG) +else() + add_definitions(-DNDEBUG) +endif() + +if(ENABLE_UDS) + add_definitions(-DENABLE_UDS) +endif() + +if(USE_MULTIMAP) + add_definitions(-DUSE_MULTIMAP) +endif() + +if(WITH_CURL) + add_definitions(-DWITH_CURL) + set(LIBS ${LIBS} curl) + if(WIN32) + set(LIBS ${LIBS} wldap32 advapi32 crypt32) + endif() +endif() + +if(WITH_NGHTTP2) + add_definitions(-DWITH_NGHTTP2) + set(LIBS ${LIBS} nghttp2) +endif() + +if(WITH_OPENSSL) + add_definitions(-DWITH_OPENSSL) + find_package(OpenSSL) + if(OpenSSL_FOUND) + set(LIBS ${LIBS} OpenSSL::SSL OpenSSL::Crypto) + else() + set(LIBS ${LIBS} ssl crypto) + endif() +endif() + +if(WITH_GNUTLS) + add_definitions(-DWITH_GNUTLS) + set(LIBS ${LIBS} gnutls) +endif() + +if(WITH_MBEDTLS) + add_definitions(-DWITH_MBEDTLS) + set(LIBS ${LIBS} mbedtls mbedx509 mbedcrypto) +endif() + +if(WIN32) + add_definitions(-DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0x0600) + set(LIBS ${LIBS} secur32 crypt32 winmm iphlpapi ws2_32) + if(ENABLE_WINDUMP) + add_definitions(-DENABLE_WINDUMP) + set(LIBS ${LIBS} dbghelp) + endif() +endif() + +if(ANDROID) + set(LIBS ${LIBS} log) +elseif(UNIX) + set(LIBS ${LIBS} pthread m dl) + if(CMAKE_COMPILER_IS_GNUCC) + set(LIBS ${LIBS} rt) + endif() +endif() + +if(APPLE) + set(LIBS ${LIBS} "-framework CoreFoundation" "-framework Security") +endif() + +# see Makefile +set(ALL_SRCDIRS . base ssl event event/kcp util cpputil evpp protocol http http/client http/server mqtt) +set(CORE_SRCDIRS . base ssl event) +if(WIN32) + if(WITH_WEPOLL) + set(CORE_SRCDIRS ${CORE_SRCDIRS} event/wepoll) + endif() +endif() +if(WITH_KCP) + set(CORE_SRCDIRS ${CORE_SRCDIRS} event/kcp) +endif() +set(LIBHV_SRCDIRS ${CORE_SRCDIRS} util) +set(LIBHV_HEADERS hv.h hconfig.h hexport.h) +set(LIBHV_HEADERS ${LIBHV_HEADERS} ${BASE_HEADERS} ${SSL_HEADERS} ${EVENT_HEADERS} ${UTIL_HEADERS}) + +if(WITH_PROTOCOL) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${PROTOCOL_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} protocol) +endif() + +if(WITH_EVPP) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${CPPUTIL_HEADERS} ${EVPP_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} cpputil evpp) + if(WITH_HTTP) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${HTTP_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} http) + if(WITH_NGHTTP2) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${HTTP2_HEADERS}) + endif() + if(WITH_HTTP_SERVER) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${HTTP_SERVER_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} http/server) + endif() + if(WITH_HTTP_CLIENT) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${HTTP_CLIENT_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} http/client) + endif() + endif() + + if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND CMAKE_COMPILER_IS_GNUCC) + set(LIBS ${LIBS} stdc++) + endif() +endif() + +if(WITH_MQTT) + set(LIBHV_HEADERS ${LIBHV_HEADERS} ${MQTT_HEADERS}) + set(LIBHV_SRCDIRS ${LIBHV_SRCDIRS} mqtt) +endif() + +list_source_directories(LIBHV_SRCS ${LIBHV_SRCDIRS}) + +file(INSTALL ${LIBHV_HEADERS} DESTINATION include/hv) +file(INSTALL ${LIBHV_HEADERS} DESTINATION ${PROJECT_SOURCE_DIR}/include/hv) + +if(BUILD_SHARED) + add_library(hv SHARED ${LIBHV_SRCS}) + target_compile_definitions(hv PRIVATE HV_DYNAMICLIB) + target_include_directories(hv PRIVATE ${LIBHV_SRCDIRS} + INTERFACE $ $) + target_link_libraries(hv ${LIBS}) + install(TARGETS hv + EXPORT libhvConfig + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) + add_custom_target(libhv DEPENDS hv) +endif() + +if(BUILD_STATIC) + add_library(hv_static STATIC ${LIBHV_SRCS}) + target_compile_definitions(hv_static PUBLIC HV_STATICLIB) + target_include_directories(hv_static PRIVATE ${LIBHV_SRCDIRS} + INTERFACE $ $) + target_link_libraries(hv_static ${LIBS}) + install(TARGETS hv_static + EXPORT libhvConfig + ARCHIVE DESTINATION lib) + add_custom_target(libhv_static DEPENDS hv_static) +endif() + +install(FILES ${LIBHV_HEADERS} DESTINATION include/hv) +install(EXPORT libhvConfig DESTINATION lib/cmake/libhv) + +if(BUILD_SHARED) + set(HV_LIBRARIES hv CACHE INTERNAL "link hv libraries") +else() + add_definitions(-DHV_STATICLIB) + set(HV_LIBRARIES hv_static ${LIBS} CACHE INTERNAL "link hv libraries") +endif() + +if(BUILD_EXAMPLES) + add_subdirectory(examples) + # for httpd -c etc/httpd.conf + file(INSTALL etc DESTINATION ${CMAKE_BINARY_DIR}) + file(INSTALL etc DESTINATION ${CMAKE_BINARY_DIR}/bin) + file(INSTALL etc DESTINATION ${CMAKE_BINARY_DIR}/examples) +endif() + +if(BUILD_UNITTEST) + add_subdirectory(unittest) +endif() diff --git a/3rdPartner/libhv/LICENSE b/3rdPartner/libhv/LICENSE new file mode 100644 index 0000000..77c29c1 --- /dev/null +++ b/3rdPartner/libhv/LICENSE @@ -0,0 +1,30 @@ +BSD 3-Clause License + +Copyright (c) 2020, ithewei +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/3rdPartner/libhv/Makefile b/3rdPartner/libhv/Makefile new file mode 100644 index 0000000..a875f99 --- /dev/null +++ b/3rdPartner/libhv/Makefile @@ -0,0 +1,283 @@ +include config.mk +include Makefile.vars + +MAKEF=$(MAKE) -f Makefile.in +ALL_SRCDIRS=. base ssl event event/kcp util cpputil evpp protocol http http/client http/server mqtt +CORE_SRCDIRS=. base ssl event +ifeq ($(WITH_KCP), yes) +CORE_SRCDIRS += event/kcp +endif + +LIBHV_SRCDIRS = $(CORE_SRCDIRS) util +LIBHV_HEADERS = hv.h hconfig.h hexport.h +LIBHV_HEADERS += $(BASE_HEADERS) $(SSL_HEADERS) $(EVENT_HEADERS) $(UTIL_HEADERS) + +ifeq ($(WITH_PROTOCOL), yes) +LIBHV_HEADERS += $(PROTOCOL_HEADERS) +LIBHV_SRCDIRS += protocol +endif + +ifeq ($(WITH_EVPP), yes) +LIBHV_HEADERS += $(CPPUTIL_HEADERS) $(EVPP_HEADERS) +LIBHV_SRCDIRS += cpputil evpp + +ifeq ($(WITH_HTTP), yes) +LIBHV_HEADERS += $(HTTP_HEADERS) +LIBHV_SRCDIRS += http + +ifeq ($(WITH_NGHTTP2), yes) +LIBHV_HEADERS += $(HTTP2_HEADERS) +endif + +ifeq ($(WITH_HTTP_SERVER), yes) +LIBHV_HEADERS += $(HTTP_SERVER_HEADERS) +LIBHV_SRCDIRS += http/server +endif + +ifeq ($(WITH_HTTP_CLIENT), yes) +LIBHV_HEADERS += $(HTTP_CLIENT_HEADERS) +LIBHV_SRCDIRS += http/client +endif + +endif +endif + +ifeq ($(WITH_MQTT), yes) +LIBHV_HEADERS += $(MQTT_HEADERS) +LIBHV_SRCDIRS += mqtt +endif + +default: all + +all: libhv examples + @echo "make all done, please enjoy libhv." + +examples: hmain_test htimer_test hloop_test \ + nc nmap tinyhttpd tinyproxyd httpd curl wget wrk consul \ + tcp_client_test \ + tcp_echo_server \ + tcp_chat_server \ + tcp_proxy_server \ + udp_echo_server \ + udp_proxy_server \ + socks5_proxy_server \ + multi-acceptor-processes \ + multi-acceptor-threads \ + one-acceptor-multi-workers \ + http_server_test http_client_test \ + websocket_server_test \ + websocket_client_test \ + mqtt_sub \ + mqtt_pub \ + mqtt_client_test \ + jsonrpc + @echo "make examples done." + +clean: + $(MAKEF) clean SRCDIRS="$(ALL_SRCDIRS)" + $(RM) examples/*.o examples/*/*.o + $(RM) include/hv + @echo "make clean done." + +prepare: + $(MKDIR) bin + +libhv: + $(MKDIR) lib + $(MAKEF) TARGET=$@ TARGET_TYPE="SHARED|STATIC" SRCDIRS="$(LIBHV_SRCDIRS)" + $(MKDIR) include/hv + $(CP) $(LIBHV_HEADERS) include/hv + @echo "make libhv done." + +install: + $(MKDIR) $(INSTALL_INCDIR) + $(MKDIR) $(INSTALL_LIBDIR) + $(CP) include/hv/* $(INSTALL_INCDIR) + $(CP) lib/libhv.* $(INSTALL_LIBDIR) + $(LDCONFIG) + @echo "make install done." + +uninstall: clean + $(RM) $(PREFIX)/include/hv + $(RM) $(PREFIX)/lib/libhv.* + @echo "make uninstall done." + +hmain_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS=". base cpputil" SRCS="examples/hmain_test.cpp" + +htimer_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/htimer_test.c" + +hloop_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/hloop_test.c" + +tcp_client_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tcp_client_test.c" + +tcp_echo_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tcp_echo_server.c" + +tcp_chat_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tcp_chat_server.c" + +tcp_proxy_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tcp_proxy_server.c" + +udp_echo_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/udp_echo_server.c" + +udp_proxy_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/udp_proxy_server.c" + +socks5_proxy_server: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/socks5_proxy_server.c" + +multi-acceptor-processes: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/multi-thread/multi-acceptor-processes.c" + +multi-acceptor-threads: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/multi-thread/multi-acceptor-threads.c" + +one-acceptor-multi-workers: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/multi-thread/one-acceptor-multi-workers.c" + +nc: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/nc.c" + +tinyhttpd: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tinyhttpd.c" + +tinyproxyd: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/tinyproxyd.c" + +nmap: prepare libhv + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) cpputil examples/nmap" DEFINES="PRINT_DEBUG" + +wrk: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http" SRCS="examples/wrk.cpp" + +httpd: prepare + $(RM) examples/httpd/*.o + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client http/server examples/httpd" + +consul: prepare libhv + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client examples/consul" DEFINES="PRINT_DEBUG" + +curl: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client" SRCS="examples/curl.cpp" + # $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client" SRCS="examples/curl.cpp" WITH_CURL=yes + +wget: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client" SRCS="examples/wget.cpp" + +http_server_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/server" SRCS="examples/http_server_test.cpp" + +http_client_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client" SRCS="examples/http_client_test.cpp" + +websocket_server_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/server" SRCS="examples/websocket_server_test.cpp" + +websocket_client_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) util cpputil evpp http http/client" SRCS="examples/websocket_client_test.cpp" + +mqtt_sub: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) mqtt" SRCS="examples/mqtt/mqtt_sub.c" + +mqtt_pub: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) mqtt" SRCS="examples/mqtt/mqtt_pub.c" + +mqtt_client_test: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) mqtt" SRCS="examples/mqtt/mqtt_client_test.cpp" + +jsonrpc: jsonrpc_client jsonrpc_server + +jsonrpc_client: prepare + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/jsonrpc/jsonrpc_client.c examples/jsonrpc/cJSON.c" + +jsonrpc_server: prepare + $(RM) examples/jsonrpc/*.o + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS)" SRCS="examples/jsonrpc/jsonrpc_server.c examples/jsonrpc/cJSON.c" + +protorpc: protorpc_client protorpc_server + +protorpc_protoc: + bash examples/protorpc/proto/protoc.sh + +protorpc_client: prepare protorpc_protoc + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) cpputil evpp examples/protorpc/generated" \ + SRCS="examples/protorpc/protorpc_client.cpp examples/protorpc/protorpc.c" \ + LIBS="protobuf" + +protorpc_server: prepare protorpc_protoc + $(RM) examples/protorpc/*.o + $(MAKEF) TARGET=$@ SRCDIRS="$(CORE_SRCDIRS) cpputil evpp examples/protorpc/generated" \ + SRCS="examples/protorpc/protorpc_server.cpp examples/protorpc/protorpc.c" \ + LIBS="protobuf" + +unittest: prepare + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/rbtree_test unittest/rbtree_test.c base/rbtree.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/hbase_test unittest/hbase_test.c base/hbase.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/mkdir_p unittest/mkdir_test.c base/hbase.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/rmdir_p unittest/rmdir_test.c base/hbase.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/date unittest/date_test.c base/htime.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/hatomic_test unittest/hatomic_test.c -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -o bin/hatomic_cpp_test unittest/hatomic_test.cpp -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -o bin/hthread_test unittest/hthread_test.cpp -pthread + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/hmutex_test unittest/hmutex_test.c base/htime.c -pthread + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/connect_test unittest/connect_test.c base/hsocket.c base/htime.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -o bin/socketpair_test unittest/socketpair_test.c base/hsocket.c + $(CC) -g -Wall -O0 -std=c99 -I. -Iutil -o bin/base64 unittest/base64_test.c util/base64.c + $(CC) -g -Wall -O0 -std=c99 -I. -Iutil -o bin/md5 unittest/md5_test.c util/md5.c + $(CC) -g -Wall -O0 -std=c99 -I. -Iutil -o bin/sha1 unittest/sha1_test.c util/sha1.c + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/hstring_test unittest/hstring_test.cpp cpputil/hstring.cpp + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/hpath_test unittest/hpath_test.cpp cpputil/hpath.cpp + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/hurl_test unittest/hurl_test.cpp cpputil/hurl.cpp base/hbase.c + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/ls unittest/listdir_test.cpp cpputil/hdir.cpp + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/ifconfig unittest/ifconfig_test.cpp cpputil/ifconfig.cpp + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/defer_test unittest/defer_test.cpp + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/synchronized_test unittest/synchronized_test.cpp -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/threadpool_test unittest/threadpool_test.cpp -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Icpputil -o bin/objectpool_test unittest/objectpool_test.cpp -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Ievpp -Icpputil -Ihttp -Ihttp/client -Ihttp/server -o bin/sizeof_test unittest/sizeof_test.cpp + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -Iprotocol -o bin/nslookup unittest/nslookup_test.c protocol/dns.c base/hsocket.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -Iprotocol -o bin/ping unittest/ping_test.c protocol/icmp.c base/hsocket.c base/htime.c -DPRINT_DEBUG + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -Iprotocol -o bin/ftp unittest/ftp_test.c protocol/ftp.c base/hsocket.c + $(CC) -g -Wall -O0 -std=c99 -I. -Ibase -Iprotocol -Iutil -o bin/sendmail unittest/sendmail_test.c protocol/smtp.c base/hsocket.c util/base64.c + +run-unittest: unittest + bash scripts/unittest.sh + +check: examples + bash scripts/check.sh + +evpp: prepare libhv + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/EventLoop_test evpp/EventLoop_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/EventLoopThread_test evpp/EventLoopThread_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/EventLoopThreadPool_test evpp/EventLoopThreadPool_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/TimerThread_test evpp/TimerThread_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/TcpServer_test evpp/TcpServer_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/TcpClient_test evpp/TcpClient_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/TcpClientEventLoop_test evpp/TcpClientEventLoop_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/UdpServer_test evpp/UdpServer_test.cpp -Llib -lhv -pthread + $(CXX) -g -Wall -O0 -std=c++11 -I. -Ibase -Issl -Ievent -Icpputil -Ievpp -o bin/UdpClient_test evpp/UdpClient_test.cpp -Llib -lhv -pthread + +# UNIX only +webbench: prepare + $(CC) -o bin/webbench unittest/webbench.c + +echo-servers: + $(CXX) -g -Wall -std=c++11 -O3 -o bin/pingpong_client echo-servers/pingpong_client.cpp -lhv -pthread + $(CC) -g -Wall -std=c99 -O3 -o bin/libevent_echo echo-servers/libevent_echo.c -levent + $(CC) -g -Wall -std=c99 -O3 -o bin/libev_echo echo-servers/libev_echo.c -lev + $(CC) -g -Wall -std=c99 -O3 -o bin/libuv_echo echo-servers/libuv_echo.c -luv + $(CC) -g -Wall -std=c99 -O3 -o bin/libhv_echo echo-servers/libhv_echo.c -lhv + $(CXX) -g -Wall -std=c++11 -O3 -o bin/asio_echo echo-servers/asio_echo.cpp -lboost_system -pthread + $(CXX) -g -Wall -std=c++11 -O3 -o bin/poco_echo echo-servers/poco_echo.cpp -lPocoNet -lPocoUtil -lPocoFoundation +# $(CXX) -g -Wall -std=c++11 -O3 -o bin/muduo_echo echo-servers/muduo_echo.cpp -lmuduo_net -lmuduo_base -pthread + +echo-benchmark: echo-servers + bash echo-servers/benchmark.sh + +.PHONY: clean prepare install uninstall libhv examples unittest evpp echo-servers diff --git a/3rdPartner/libhv/Makefile.in b/3rdPartner/libhv/Makefile.in new file mode 100644 index 0000000..73d51ae --- /dev/null +++ b/3rdPartner/libhv/Makefile.in @@ -0,0 +1,307 @@ +#+++++++++++++++++++++++++++++++++configure++++++++++++++++++++++++++++++++++++++++ +# OS=Windows,Linux,Android +# ARCH=x86,x86_64,arm,aarch64 +# CC = $(CROSS_COMPILE)gcc +# CXX = $(CROSS_COMPILE)g++ +# CPPFLAGS += $(addprefix -D, $(DEFINES)) +# CPPFLAGS += $(addprefix -I, $(SRCDIRS)) +# CPPFLAGS += $(addprefix -I, $(INCDIRS)) +# LDFLAGS += $(addprefix -L, $(LIBDIRS)) +# LDFLAGS += $(addprefix -l, $(LIBS)) +# +# Usage: +# make all \ +# TARGET=libxx \ +# TARGET_TYPE=SHARED \ +# BUILD_TYPE=DEBUG \ +# CROSS_COMPILE=arm-linux-androideabi- \ +# SRCDIRS="src/base src/event" \ +# INCDIRS="src/util" \ +# SRCS="src/util/hmain.cpp src/util/iniparser.cpp" \ +# DEFINES=USE_OPENCV \ +# LIBS="opencv_core opencv_highgui" +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-include config.mk + +# VARIABLES +TARGET ?= test +# BUILD_TYPE=DEBUG,RELEASE +BUILD_TYPE ?= RELEASE +# TARGET_TYPE=EXECUTABLE,SHARED,STATIC,SHARED|STATIC +TARGET_TYPE ?= EXECUTABLE + +# COMMANDS +ifdef CROSS_COMPILE +CC = $(CROSS_COMPILE)gcc +CXX = $(CROSS_COMPILE)g++ +CPP = $(CC) -E +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +endif + +MKDIR = -mkdir -p 2>/dev/null +CP = -cp -r 2>/dev/null +RM = -rm -r 2>/dev/null + +# PLATFORM: OS, ARCH +CC_VERSION=$(shell $(CC) --version 2>&1 | head -n 1) +TARGET_PLATFORM=$(shell $(CC) -v 2>&1 | grep Target | sed 's/Target: //') +ifneq ($(findstring mingw, $(TARGET_PLATFORM)), ) + OS=Windows +endif +ifneq ($(findstring android, $(TARGET_PLATFORM)), ) + OS=Android +endif +ifneq ($(findstring darwin, $(TARGET_PLATFORM)), ) + OS=Darwin +endif +ifndef OS + OS=Linux +endif + +ifndef ARCH +ARCH=$(shell echo $(TARGET_PLATFORM) | awk -F'-' '{print $$1}') +endif + +# CFLAGS, CXXFLAGS, ARFLAGS +BUILD_TYPE_UPPER := $(shell echo $(BUILD_TYPE) | tr 'a-z' 'A-Z') +ifeq ($(BUILD_TYPE_UPPER), DEBUG) + DEFAULT_CFLAGS = -g -Wall -O0 +else + DEFAULT_CFLAGS += -O2 +endif + +CFLAGS ?= $(DEFAULT_CFLAGS) +CXXFLAGS ?= $(DEFAULT_CFLAGS) + +ifneq ($(OS), Windows) +ifeq ($(findstring -fPIC, $(CFLAGS)), ) +override CFLAGS += -fPIC +endif +ifeq ($(findstring -fPIC, $(CXXFLAGS)), ) +override CXXFLAGS += -fPIC +endif +endif + +ifeq ($(findstring -std, $(CFLAGS)), ) +override CFLAGS += -std=c99 +endif + +ifeq ($(findstring -std, $(CXXFLAGS)), ) +override CXXFLAGS += -std=c++11 +endif + +ARFLAGS ?= cr + +# DIRS +ifeq ($(OS), Linux) + PREFIX ?= /usr/local +else + PREFIX ?= install +endif + +INCDIR = include +LIBDIR = lib +SRCDIR = src +BINDIR = bin +DEPDIR = 3rd +CONFDIR = etc +DISTDIR = dist +DOCDIR = docs + +SRCDIRS += $(shell find $(SRCDIR) -type d) +override INCDIRS += $(INCDIR) $(DEPDIR) $(DEPDIR)/include +override LIBDIRS += $(LIBDIR) $(DEPDIR)/lib $(DEPDIR)/lib/$(TARGET_PLATFORM) + +ALL_SRCS += $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c $(dir)/*.cc $(dir)/*.cpp)) +ifeq ($(ALL_SRCS), ) + ALL_SRCS = $(wildcard *.c *.cc *.cpp) +endif +override SRCS += $(filter-out %_test.c %_test.cc %_test.cpp, $(ALL_SRCS)) +# OBJS += $(patsubst %.c, %.o, $(SRCS)) +# OBJS += $(patsubst %.cc, %.o, $(SRCS)) +# OBJS += $(patsubst %.cpp, %.o, $(SRCS)) +OBJS := $(addsuffix .o, $(basename $(SRCS))) + +INSTALLED_INCS=$(addprefix $(PREFIX)/$(INCDIR)/, $(shell ls $(INCDIR))) +INSTALLED_LIBS=$(addprefix $(PREFIX)/$(LIBDIR)/, $(shell ls $(LIBDIR))) +INSTALLED_BINS=$(addprefix $(PREFIX)/$(BINDIR)/, $(shell ls $(BINDIR))) + +# CPPFLAGS +ifeq ($(OS), Windows) + CPPFLAGS += -D_WIN32_WINNT=0x600 +ifeq ($(TARGET_TYPE), SHARED) + CPPFLAGS += -DDLL_EXPORTS +endif +endif + +ifeq ($(BUILD_TYPE_UPPER), DEBUG) + CPPFLAGS += -DDEBUG +else + CPPFLAGS += -DNDEBUG +endif + +ifeq ($(ENABLE_UDS), yes) + CPPFLAGS += -DENABLE_UDS +endif + +ifeq ($(USE_MULTIMAP), yes) + CPPFLAGS += -DUSE_MULTIMAP +endif + +CPPFLAGS += $(addprefix -D, $(DEFINES)) +CPPFLAGS += $(addprefix -I, $(INCDIRS)) +CPPFLAGS += $(addprefix -I, $(SRCDIRS)) + +# LDFLAGS +ifeq ($(OS), Windows) + LDFLAGS += -static-libgcc -static-libstdc++ +endif + +ifeq ($(WITH_CURL), yes) + CPPFLAGS += -DWITH_CURL + LDFLAGS += -lcurl +ifeq ($(OS), Windows) + LDFLAGS += -lwldap32 -ladvapi32 -lcrypt32 +endif +endif + +ifeq ($(WITH_NGHTTP2), yes) + CPPFLAGS += -DWITH_NGHTTP2 + LDFLAGS += -lnghttp2 +endif + +ifeq ($(WITH_OPENSSL), yes) + CPPFLAGS += -DWITH_OPENSSL + LDFLAGS += -lssl -lcrypto +else +ifeq ($(WITH_GNUTLS), yes) + CPPFLAGS += -DWITH_GNUTLS + LDFLAGS += -lgnutls +else +ifeq ($(WITH_MBEDTLS), yes) + CPPFLAGS += -DWITH_MBEDTLS + LDFLAGS += -lmbedtls -lmbedx509 -lmbedcrypto +endif +endif +endif + +LDFLAGS += $(addprefix -L, $(LIBDIRS)) +LDFLAGS += $(addprefix -l, $(LIBS)) + +ifeq ($(OS), Windows) + LDFLAGS += -lsecur32 -lcrypt32 -lwinmm -liphlpapi -lws2_32 +ifeq ($(ENABLE_WINDUMP), yes) + CPPFLAGS += -DENABLE_WINDUMP + LDFLAGS += -ldbghelp +endif + LDFLAGS += -Wl,-Bstatic -lstdc++ -lpthread -lm +else +ifeq ($(filter %.cc %.cpp, $(SRCS)), ) + LINK = $(CC) +else + LINK = $(CXX) + LDFLAGS += -lstdc++ +endif +ifeq ($(OS), Android) + LDFLAGS += -lm -llog -ldl +else + LDFLAGS += -lpthread -lm -ldl + LINK_RT=$(shell echo "int main(){return 0;}" | $(CC) -x c - -lrt 2>&1) +ifeq ($(LINK_RT), ) + LDFLAGS += -lrt +endif +endif +endif + +ifeq ($(OS), Darwin) + LDFLAGS += -framework CoreFoundation -framework Security +endif + +LINK ?= $(CC) + +# info +$(info $(CC_VERSION)) + +$(info OS = $(OS)) +$(info ARCH = $(ARCH)) +$(info MAKE = $(MAKE)) +$(info CC = $(CC)) +$(info CXX = $(CXX)) + +$(info CFLAGS = $(CFLAGS)) +$(info CXXFLAGS = $(CXXFLAGS)) +$(info CPPFLAGS = $(CPPFLAGS)) +$(info LDFLAGS = $(LDFLAGS)) + +$(info TARGET = $(TARGET)) +$(info TARGET_TYPE = $(TARGET_TYPE)) +$(info TARGET_PLATFORM = $(TARGET_PLATFORM)) +$(info BUILD_TYPE = $(BUILD_TYPE)) + +$(info SRCS=$(SRCS)) +$(info OBJS=$(OBJS)) + +# $(info INSTALLED_INCS=$(INSTALLED_INCS)) +# $(info INSTALLED_LIBS=$(INSTALLED_LIBS)) +# $(info INSTALLED_BINS=$(INSTALLED_BINS)) + +default: all + +all: prepare $(TARGET) + +prepare: + $(MKDIR) $(BINDIR) $(LIBDIR) + +$(TARGET): $(OBJS) +ifneq ($(findstring SHARED, $(TARGET_TYPE)), ) +ifeq ($(OS), Windows) + $(LINK) -shared $^ -o $(LIBDIR)/$@.dll $(LDFLAGS) -Wl,--output-def,$(LIBDIR)/$(@).def +else +ifeq ($(OS), Darwin) + $(LINK) -dynamiclib -install_name @rpath/$@.dylib $^ -o $(LIBDIR)/$@.dylib $(LDFLAGS) +else + $(LINK) -shared $^ -o $(LIBDIR)/$@.so $(LDFLAGS) +endif +endif +endif + +ifneq ($(findstring STATIC, $(TARGET_TYPE)), ) + $(AR) $(ARFLAGS) $(LIBDIR)/$@.a $^ +endif + +ifneq ($(findstring EXECUTABLE, $(TARGET_TYPE)), ) +ifeq ($(OS), Windows) + $(LINK) $^ -o $(BINDIR)/$@.exe $(LDFLAGS) +else + $(LINK) $^ -o $(BINDIR)/$@ $(LDFLAGS) +endif +endif + +clean: + $(RM) $(OBJS) + #$(RM) $(LIBDIR) + #$(RM) $(BINDIR) + +install: + $(CP) $(INCDIR)/* $(PREFIX)/$(INCDIR)/ + $(CP) $(LIBDIR)/* $(PREFIX)/$(LIBDIR)/ + $(CP) $(BINDIR)/* $(PREFIX)/$(BINDIR)/ + $(LDCONFIG) + +uninstall: + $(RM) $(INSTALLED_INCS) + $(RM) $(INSTALLED_LIBS) + $(RM) $(INSTALLED_BINS) + +dist: + $(MKDIR) $(DISTDIR) + $(CP) $(INCDIR) $(LIBDIR) $(BINDIR) $(CONFDIR) $(DOCDIR) $(DISTDIR) + +undist: + $(RM) $(DISTDIR) + +.PHONY: default all prepare clean install uninstall dist undist diff --git a/3rdPartner/libhv/Makefile.vars b/3rdPartner/libhv/Makefile.vars new file mode 100644 index 0000000..8f091c6 --- /dev/null +++ b/3rdPartner/libhv/Makefile.vars @@ -0,0 +1,95 @@ +MKDIR = -mkdir -p 2>/dev/null +CP = -cp -r 2>/dev/null +RM = -rm -r 2>/dev/null +LDCONFIG = -ldconfig 2>/dev/null + +PREFIX ?= /usr/local +INSTALL_INCDIR ?= $(PREFIX)/include/hv +INSTALL_LIBDIR ?= $(PREFIX)/lib + +BASE_HEADERS = base/hplatform.h\ + \ + base/hdef.h\ + base/hatomic.h\ + base/herr.h\ + base/htime.h\ + base/hmath.h\ + base/hbase.h\ + base/hversion.h\ + base/hsysinfo.h\ + base/hproc.h\ + base/hthread.h\ + base/hmutex.h\ + base/hsocket.h\ + base/hlog.h\ + base/hbuf.h\ + base/hmain.h\ + base/hendian.h\ + +SSL_HEADERS = ssl/hssl.h + +EVENT_HEADERS = event/hloop.h\ + event/nlog.h\ + +UTIL_HEADERS = util/base64.h\ + util/md5.h\ + util/sha1.h\ + +CPPUTIL_HEADERS = cpputil/hmap.h\ + cpputil/hstring.h\ + cpputil/hfile.h\ + cpputil/hpath.h\ + cpputil/hdir.h\ + cpputil/hurl.h\ + cpputil/hscope.h\ + cpputil/hthreadpool.h\ + cpputil/hasync.h\ + cpputil/hobjectpool.h\ + cpputil/ifconfig.h\ + cpputil/iniparser.h\ + cpputil/json.hpp\ + cpputil/singleton.h\ + cpputil/ThreadLocalStorage.h\ + +EVPP_HEADERS = evpp/Buffer.h\ + evpp/Channel.h\ + evpp/Event.h\ + evpp/EventLoop.h\ + evpp/EventLoopThread.h\ + evpp/EventLoopThreadPool.h\ + evpp/Status.h\ + evpp/TcpClient.h\ + evpp/TcpServer.h\ + evpp/UdpClient.h\ + evpp/UdpServer.h\ + +PROTOCOL_HEADERS = protocol/icmp.h\ + protocol/dns.h\ + protocol/ftp.h\ + protocol/smtp.h + +HTTP_HEADERS = http/httpdef.h\ + http/wsdef.h\ + http/http_content.h\ + http/HttpMessage.h\ + http/HttpParser.h\ + http/WebSocketParser.h\ + http/WebSocketChannel.h\ + +HTTP2_HEADERS = http/http2def.h\ + http/grpcdef.h\ + +HTTP_CLIENT_HEADERS = http/client/HttpClient.h\ + http/client/requests.h\ + http/client/axios.h\ + http/client/AsyncHttpClient.h\ + http/client/WebSocketClient.h\ + +HTTP_SERVER_HEADERS = http/server/HttpServer.h\ + http/server/HttpService.h\ + http/server/HttpContext.h\ + http/server/HttpResponseWriter.h\ + http/server/WebSocketServer.h\ + +MQTT_HEADERS = mqtt/mqtt_protocol.h\ + mqtt/mqtt_client.h\ diff --git a/3rdPartner/libhv/README-CN.md b/3rdPartner/libhv/README-CN.md new file mode 100644 index 0000000..c196a05 --- /dev/null +++ b/3rdPartner/libhv/README-CN.md @@ -0,0 +1,542 @@ +[English](README.md) | 中文 + +# libhv + +[![Linux](https://badgen.net/badge/Linux/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![Windows](https://badgen.net/badge/Windows/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![macOS](https://badgen.net/badge/macOS/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![Android](https://badgen.net/badge/Android/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![iOS](https://badgen.net/badge/iOS/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![benchmark](https://github.com/ithewei/libhv/workflows/benchmark/badge.svg?branch=master)](https://github.com/ithewei/libhv/actions/workflows/benchmark.yml?query=branch%3Amaster) +
+[![release](https://badgen.net/github/release/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/releases) +[![stars](https://badgen.net/github/stars/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/stargazers) +[![forks](https://badgen.net/github/forks/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/forks) +[![issues](https://badgen.net/github/issues/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/issues) +[![PRs](https://badgen.net/github/prs/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/pulls) +[![contributors](https://badgen.net/github/contributors/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/contributors) +[![license](https://badgen.net/github/license/ithewei/libhv?icon=github)](LICENSE) +
+[![gitee](https://badgen.net/badge/mirror/gitee/red)](https://gitee.com/libhv/libhv) +[![awesome-c](https://badgen.net/badge/icon/awesome-c/pink?icon=awesome&label&color)](https://github.com/oz123/awesome-c) +[![awesome-cpp](https://badgen.net/badge/icon/awesome-cpp/pink?icon=awesome&label&color)](https://github.com/fffaraz/awesome-cpp) + +`libhv`是一个类似于`libevent、libev、libuv`的跨平台网络库,提供了更易用的接口和更丰富的协议。 + +## 📚 中文资料 + +- **libhv QQ群**: `739352073`,欢迎加群交流 +- **libhv 源码剖析**: +- **libhv 接口手册**: +- **libhv 教程目录**: +- [libhv教程01--介绍与体验](https://hewei.blog.csdn.net/article/details/113702536) +- [libhv教程02--编译与安装](https://hewei.blog.csdn.net/article/details/113704737) +- [libhv教程03--链库与使用](https://hewei.blog.csdn.net/article/details/113706378) +- [libhv教程04--编写一个完整的命令行程序](https://hewei.blog.csdn.net/article/details/113719503) +- [libhv教程05--事件循环以及定时器的简单使用](https://hewei.blog.csdn.net/article/details/113724474) +- [libhv教程06--创建一个简单的TCP服务端](https://hewei.blog.csdn.net/article/details/113737580) +- [libhv教程07--创建一个简单的TCP客户端](https://hewei.blog.csdn.net/article/details/113738900) +- [libhv教程08--创建一个简单的UDP服务端](https://hewei.blog.csdn.net/article/details/113871498) +- [libhv教程09--创建一个简单的UDP客户端](https://hewei.blog.csdn.net/article/details/113871724) +- [libhv教程10--创建一个简单的HTTP服务端](https://hewei.blog.csdn.net/article/details/113982999) +- [libhv教程11--创建一个简单的HTTP客户端](https://hewei.blog.csdn.net/article/details/113984302) +- [libhv教程12--创建一个简单的WebSocket服务端](https://hewei.blog.csdn.net/article/details/113985321) +- [libhv教程13--创建一个简单的WebSocket客户端](https://hewei.blog.csdn.net/article/details/113985895) +- [libhv教程14--200行实现一个纯C版jsonrpc框架](https://hewei.blog.csdn.net/article/details/119920540) +- [libhv教程15--200行实现一个C++版protorpc框架](https://hewei.blog.csdn.net/article/details/119966701) +- [libhv教程16--多线程/多进程服务端编程](https://hewei.blog.csdn.net/article/details/120366024) +- [libhv教程17--Qt中使用libhv](https://hewei.blog.csdn.net/article/details/120699890) +- [libhv教程18--动手写一个tinyhttpd](https://hewei.blog.csdn.net/article/details/121706604) +- [libhv教程19--MQTT的实现与使用](https://hewei.blog.csdn.net/article/details/122753665) + +## ✨ 特性 + +- 跨平台(Linux, Windows, macOS, Android, iOS, BSD, Solaris) +- 高性能事件循环(网络IO事件、定时器事件、空闲事件、自定义事件) +- TCP/UDP服务端/客户端/代理 +- TCP支持心跳、重连、转发、多线程安全write和close等特性 +- 内置常见的拆包模式(固定包长、分界符、头部长度字段) +- 可靠UDP支持: WITH_KCP +- SSL/TLS加密通信(可选WITH_OPENSSL、WITH_GNUTLS、WITH_MBEDTLS) +- HTTP服务端/客户端(支持https http1/x http2 grpc) +- HTTP支持静态文件服务、目录服务、正向/反向代理服务、同步/异步API处理器 +- HTTP支持RESTful风格、路由、中间件、keep-alive长连接、chunked分块、SSE等特性 +- WebSocket服务端/客户端 +- MQTT客户端 + +## ⌛️ 构建 + +见[BUILD.md](BUILD.md) + +libhv提供了以下构建方式: + +1、通过Makefile: +```shell +./configure +make +sudo make install +``` + +2、通过cmake: +```shell +mkdir build +cd build +cmake .. +cmake --build . +``` + +3、通过bazel: +```shell +bazel build libhv +``` + +4、通过vcpkg: +```shell +vcpkg install libhv +``` + +5、通过xmake: +```shell +xrepo install libhv +``` + +## ⚡️ 快速入门 + +### 体验 +运行脚本`./getting_started.sh`: + +```shell +# 下载编译 +git clone https://github.com/ithewei/libhv.git +cd libhv +./configure +make + +# 运行httpd服务 +bin/httpd -h +bin/httpd -d +#bin/httpd -c etc/httpd.conf -s restart -d +ps aux | grep httpd + +# 文件服务 +bin/curl -v localhost:8080 + +# 目录服务 +bin/curl -v localhost:8080/downloads/ + +# API服务 +bin/curl -v localhost:8080/ping +bin/curl -v localhost:8080/echo -d "hello,world!" +bin/curl -v localhost:8080/query?page_no=1\&page_size=10 +bin/curl -v localhost:8080/kv -H "Content-Type:application/x-www-form-urlencoded" -d 'user=admin&pswd=123456' +bin/curl -v localhost:8080/json -H "Content-Type:application/json" -d '{"user":"admin","pswd":"123456"}' +bin/curl -v localhost:8080/form -F 'user=admin' -F 'pswd=123456' +bin/curl -v localhost:8080/upload -d "@LICENSE" +bin/curl -v localhost:8080/upload -F "file=@LICENSE" + +bin/curl -v localhost:8080/test -H "Content-Type:application/x-www-form-urlencoded" -d 'bool=1&int=123&float=3.14&string=hello' +bin/curl -v localhost:8080/test -H "Content-Type:application/json" -d '{"bool":true,"int":123,"float":3.14,"string":"hello"}' +bin/curl -v localhost:8080/test -F 'bool=1' -F 'int=123' -F 'float=3.14' -F 'string=hello' +# RESTful API: /group/:group_name/user/:user_id +bin/curl -v -X DELETE localhost:8080/group/test/user/123 + +# 压力测试 +bin/wrk -c 1000 -d 10 -t 4 http://127.0.0.1:8080/ +``` + +### TCP +#### TCP服务端 +**c版本**: [examples/tcp_echo_server.c](examples/tcp_echo_server.c) + +**c++版本**: [evpp/TcpServer_test.cpp](evpp/TcpServer_test.cpp) +```c++ +#include "TcpServer.h" +using namespace hv; + +int main() { + int port = 1234; + TcpServer srv; + int listenfd = srv.createsocket(port); + if (listenfd < 0) { + return -1; + } + printf("server listen on port %d, listenfd=%d ...\n", port, listenfd); + srv.onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("%s connected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + printf("%s disconnected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + srv.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + // echo + channel->write(buf); + }; + srv.setThreadNum(4); + srv.start(); + + // press Enter to stop + while (getchar() != '\n'); + return 0; +} +``` + +**注意**: + +以上示例只是简单的`echo`服务,TCP是流式协议,实际应用中请务必添加边界进行拆包。
+文本协议建议加上`\0`或者`\r\n`分隔符,可参考 [examples/jsonrpc](examples/jsonrpc);
+二进制协议建议加上自定义协议头,通过头部长度字段表明负载长度,可参考 [examples/protorpc](examples/protorpc);
+通过`setUnpack`(c接口即`hio_set_unpack`)设置拆包规则,支持固定包长、分隔符、头部长度字段三种常见的拆包方式,
+内部根据拆包规则处理粘包与分包,保证`onMessage`回调上来的是完整的一包数据,大大节省了上层处理粘包与分包的成本。
+不想自定义协议和拆包组包的可直接使用现成的`HTTP/WebSocket`协议。
+
+`channel->write`(c接口即`hio_write`)是非阻塞的(事件循环异步编程里所有的一切都要求是非阻塞的),且多线程安全的。
+发送大数据时应该做流控,通过`onWriteComplete`监听写完成事件,在可写时再发送下一帧数据。
+具体示例代码可参考 [examples/tinyhttpd.c](examples/tinyhttpd.c) 中的 `http_serve_file`。
+
+`channel->close`(c接口即`hio_close`) 也是多线程安全的,这可以让网络IO事件循环线程里接收数据、拆包组包、反序列化后放入队列,
+消费者线程/线程池从队列里取出数据、处理后发送响应和关闭连接,变得更加简单。
+ +#### TCP客户端 +**c版本**: [examples/tcp_client_test.c](examples/tcp_client_test.c) + +**c++版本**: [evpp/TcpClient_test.cpp](evpp/TcpClient_test.cpp) +```c++ +#include +#include "TcpClient.h" +using namespace hv; + +int main() { + int port = 1234; + TcpClient cli; + int connfd = cli.createsocket(port); + if (connfd < 0) { + return -1; + } + cli.onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + cli.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + }; + cli.start(); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + cli.closesocket(); + } else if (str == "start") { + cli.start(); + } else if (str == "stop") { + cli.stop(); + break; + } else { + if (!cli.isConnected()) break; + cli.send(str); + } + } + return 0; +} +``` + +### HTTP +#### HTTP服务端 +见[examples/http_server_test.cpp](examples/http_server_test.cpp) + +**golang gin 风格** +```c++ +#include "HttpServer.h" +using namespace hv; + +int main() { + HttpService router; + router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { + return resp->String("pong"); + }); + + router.GET("/data", [](HttpRequest* req, HttpResponse* resp) { + static char data[] = "0123456789"; + return resp->Data(data, 10); + }); + + router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) { + return resp->Json(router.Paths()); + }); + + router.GET("/get", [](HttpRequest* req, HttpResponse* resp) { + resp->json["origin"] = req->client_addr.ip; + resp->json["url"] = req->url; + resp->json["args"] = req->query_params; + resp->json["headers"] = req->headers; + return 200; + }); + + router.POST("/echo", [](const HttpContextPtr& ctx) { + return ctx->send(ctx->body(), ctx->type()); + }); + + HttpServer server(&router); + server.setPort(8080); + server.setThreadNum(4); + server.run(); + return 0; +} +``` + +**注意**: + +上面示例直接运行在`main`主线程,`server.run()`会阻塞当前线程运行,所以`router`和`server`对象不会被析构,
+如使用`server.start()`内部会另起线程运行,不会阻塞当前线程,但需要注意`router`和`server`的生命周期,
+不要定义为局部变量被析构了,可定义为类成员变量或者全局变量,下面的`WebSocket`服务同理。
+ +#### HTTP客户端 +见[examples/http_client_test.cpp](examples/http_client_test.cpp) + +**python requests 风格** +```c++ +#include "requests.h" + +int main() { + auto resp = requests::get("http://www.example.com"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + + resp = requests::post("127.0.0.1:8080/echo", "hello,world!"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + + return 0; +} +``` + +附HTTP相关接口文档: + +- [class HttpMessage](docs/cn/HttpMessage.md) +- [class HttpClient](docs/cn/HttpClient.md) +- [class HttpServer](docs/cn/HttpServer.md) +- [class HttpContext](docs/cn/HttpContext.md) + +### WebSocket +#### WebSocket服务端 +见[examples/websocket_server_test.cpp](examples/websocket_server_test.cpp) +```c++ +#include "WebSocketServer.h" +using namespace hv; + +int main(int argc, char** argv) { + WebSocketService ws; + ws.onopen = [](const WebSocketChannelPtr& channel, const HttpRequestPtr& req) { + printf("onopen: GET %s\n", req->Path().c_str()); + }; + ws.onmessage = [](const WebSocketChannelPtr& channel, const std::string& msg) { + printf("onmessage: %.*s\n", (int)msg.size(), msg.data()); + }; + ws.onclose = [](const WebSocketChannelPtr& channel) { + printf("onclose\n"); + }; + + WebSocketServer server(&ws); + server.setPort(9999); + server.setThreadNum(4); + server.run(); + return 0; +} +``` + +#### WebSocket客户端 +见[examples/websocket_client_test.cpp](examples/websocket_client_test.cpp) +```c++ +#include "WebSocketClient.h" +using namespace hv; + +int main(int argc, char** argv) { + WebSocketClient ws; + ws.onopen = []() { + printf("onopen\n"); + }; + ws.onmessage = [](const std::string& msg) { + printf("onmessage: %.*s\n", (int)msg.size(), msg.data()); + }; + ws.onclose = []() { + printf("onclose\n"); + }; + + // reconnect: 1,2,4,8,10,10,10... + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + ws.setReconnect(&reconn); + + ws.open("ws://127.0.0.1:9999/test"); + + std::string str; + while (std::getline(std::cin, str)) { + if (!ws.isConnected()) break; + if (str == "quit") { + ws.close(); + break; + } + ws.send(str); + } + + return 0; +} +``` + +## 🍭 更多示例 + +### c版本 +- 事件循环: [examples/hloop_test.c](examples/hloop_test.c) +- 定时器: [examples/htimer_test.c](examples/htimer_test.c) +- TCP回显服务: [examples/tcp_echo_server.c](examples/tcp_echo_server.c) +- TCP聊天服务: [examples/tcp_chat_server.c](examples/tcp_chat_server.c) +- TCP代理服务: [examples/tcp_proxy_server.c](examples/tcp_proxy_server.c) +- UDP回显服务: [examples/udp_echo_server.c](examples/udp_echo_server.c) +- UDP代理服务: [examples/udp_proxy_server.c](examples/udp_proxy_server.c) +- SOCKS5代理服务: [examples/socks5_proxy_server.c](examples/socks5_proxy_server.c) +- HTTP服务: [examples/tinyhttpd.c](examples/tinyhttpd.c) +- HTTP代理服务: [examples/tinyproxyd.c](examples/tinyproxyd.c) +- jsonRPC示例: [examples/jsonrpc](examples/jsonrpc) +- MQTT示例: [examples/mqtt](examples/mqtt) +- 多accept进程模式: [examples/multi-thread/multi-acceptor-processes.c](examples/multi-thread/multi-acceptor-processes.c) +- 多accept线程模式: [examples/multi-thread/multi-acceptor-threads.c](examples/multi-thread/multi-acceptor-threads.c) +- 一个accept线程+多worker线程: [examples/multi-thread/one-acceptor-multi-workers.c](examples/multi-thread/one-acceptor-multi-workers.c) + +### c++版本 +- 事件循环: [evpp/EventLoop_test.cpp](evpp/EventLoop_test.cpp) +- 事件循环线程: [evpp/EventLoopThread_test.cpp](evpp/EventLoopThread_test.cpp) +- 事件循环线程池: [evpp/EventLoopThreadPool_test.cpp](evpp/EventLoopThreadPool_test.cpp) +- 定时器: [evpp/TimerThread_test.cpp](evpp/TimerThread_test.cpp) +- TCP服务端: [evpp/TcpServer_test.cpp](evpp/TcpServer_test.cpp) +- TCP客户端: [evpp/TcpClient_test.cpp](evpp/TcpClient_test.cpp) +- UDP服务端: [evpp/UdpServer_test.cpp](evpp/UdpServer_test.cpp) +- UDP客户端: [evpp/UdpClient_test.cpp](evpp/UdpClient_test.cpp) +- HTTP服务端: [examples/http_server_test.cpp](examples/http_server_test.cpp) +- HTTP客户端: [examples/http_client_test.cpp](examples/http_client_test.cpp) +- WebSocket服务端: [examples/websocket_server_test.cpp](examples/websocket_server_test.cpp) +- WebSocket客户端: [examples/websocket_client_test.cpp](examples/websocket_client_test.cpp) +- protobufRPC示例: [examples/protorpc](examples/protorpc) +- Qt中使用libhv示例: [hv-projects/QtDemo](https://github.com/hv-projects/QtDemo) + +### 模拟实现著名的命令行工具 +- 网络连接工具: [examples/nc](examples/nc.c) +- 网络扫描工具: [examples/nmap](examples/nmap) +- HTTP服务程序: [examples/httpd](examples/httpd) +- HTTP压测工具: [examples/wrk](examples/wrk.cpp) +- URL请求工具: [examples/curl](examples/curl.cpp) +- 文件下载工具: [examples/wget](examples/wget.cpp) +- 服务注册与发现: [examples/consul](examples/consul) + +## 🥇 性能测试 + +### TCP回显服务pingpong测试 +```shell +cd echo-servers +./build.sh +./benchmark.sh +``` + +**吞吐量**: +```shell +libevent running on port 2001 +libev running on port 2002 +libuv running on port 2003 +libhv running on port 2004 +asio running on port 2005 +poco running on port 2006 + +==============2001===================================== +[127.0.0.1:2001] 4 threads 1000 connections run 10s +total readcount=1616761 readbytes=1655563264 +throughput = 157 MB/s + +==============2002===================================== +[127.0.0.1:2002] 4 threads 1000 connections run 10s +total readcount=2153171 readbytes=2204847104 +throughput = 210 MB/s + +==============2003===================================== +[127.0.0.1:2003] 4 threads 1000 connections run 10s +total readcount=1599727 readbytes=1638120448 +throughput = 156 MB/s + +==============2004===================================== +[127.0.0.1:2004] 4 threads 1000 connections run 10s +total readcount=2202271 readbytes=2255125504 +throughput = 215 MB/s + +==============2005===================================== +[127.0.0.1:2005] 4 threads 1000 connections run 10s +total readcount=1354230 readbytes=1386731520 +throughput = 132 MB/s + +==============2006===================================== +[127.0.0.1:2006] 4 threads 1000 connections run 10s +total readcount=1699652 readbytes=1740443648 +throughput = 165 MB/s +``` + +### TCP代理服务压测 + +```shell +# sudo apt install iperf +iperf -s -p 5001 > /dev/null & +bin/tcp_proxy_server 1212 127.0.0.1:5001 & +iperf -c 127.0.0.1 -p 5001 -l 8K +iperf -c 127.0.0.1 -p 1212 -l 8K +``` + +**带宽**: +```shell +------------------------------------------------------------ +[ 3] local 127.0.0.1 port 52560 connected with 127.0.0.1 port 5001 +[ ID] Interval Transfer Bandwidth +[ 3] 0.0-10.0 sec 20.8 GBytes 17.9 Gbits/sec + +------------------------------------------------------------ +[ 3] local 127.0.0.1 port 48142 connected with 127.0.0.1 port 1212 +[ ID] Interval Transfer Bandwidth +[ 3] 0.0-10.0 sec 11.9 GBytes 10.2 Gbits/sec +``` + +### HTTP压测 +```shell +# sudo apt install wrk +wrk -c 100 -t 4 -d 10s http://127.0.0.1:8080/ + +# sudo apt install apache2-utils +ab -c 100 -n 100000 http://127.0.0.1:8080/ +``` + +**libhv(port:8080) vs nginx(port:80)** + +![libhv-vs-nginx.png](html/downloads/libhv-vs-nginx.png) + +以上测试结果可以在 [Github Actions](https://github.com/ithewei/libhv/actions/workflows/benchmark.yml) 中查看。 + +## 💎 用户案例 + +如果您在使用`libhv`,欢迎通过PR将信息提交至此列表,让更多的用户了解`libhv`的实际使用场景,以建立更好的网络生态。 + +| 用户 (公司名/项目名/个人联系方式) | 案例 (项目简介/业务场景) | +| :--- | :--- | +| [阅面科技](https://www.readsense.cn) | [猎户AIoT平台](https://orionweb.readsense.cn)设备管理、人脸检测HTTP服务、人脸搜索HTTP服务 | +| [socks5-libhv](https://gitee.com/billykang/socks5-libhv) | socks5代理 | +| [hvloop](https://github.com/xiispace/hvloop) | 类似[uvloop](https://github.com/MagicStack/uvloop)的python异步IO事件循环 | +| [tsproxyd-android](https://github.com/Haiwen-GitHub/tsproxyd-android) | 一个基于libhv实现的android端web代理服务 | +| [玄舟智维](https://zjzwxw.com) | C100K设备连接网关服务 | + diff --git a/3rdPartner/libhv/README.md b/3rdPartner/libhv/README.md new file mode 100644 index 0000000..87d728d --- /dev/null +++ b/3rdPartner/libhv/README.md @@ -0,0 +1,467 @@ +English | [中文](README-CN.md) + +# libhv + +[![Linux](https://badgen.net/badge/Linux/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![Windows](https://badgen.net/badge/Windows/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![macOS](https://badgen.net/badge/macOS/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![Android](https://badgen.net/badge/Android/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![iOS](https://badgen.net/badge/iOS/success/green?icon=github)](https://github.com/ithewei/libhv/actions/workflows/CI.yml?query=branch%3Amaster) +[![benchmark](https://github.com/ithewei/libhv/workflows/benchmark/badge.svg?branch=master)](https://github.com/ithewei/libhv/actions/workflows/benchmark.yml?query=branch%3Amaster) +
+[![release](https://badgen.net/github/release/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/releases) +[![stars](https://badgen.net/github/stars/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/stargazers) +[![forks](https://badgen.net/github/forks/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/forks) +[![issues](https://badgen.net/github/issues/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/issues) +[![PRs](https://badgen.net/github/prs/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/pulls) +[![contributors](https://badgen.net/github/contributors/ithewei/libhv?icon=github)](https://github.com/ithewei/libhv/contributors) +[![license](https://badgen.net/github/license/ithewei/libhv?icon=github)](LICENSE) +
+[![gitee](https://badgen.net/badge/mirror/gitee/red)](https://gitee.com/libhv/libhv) +[![awesome-c](https://badgen.net/badge/icon/awesome-c/pink?icon=awesome&label&color)](https://github.com/oz123/awesome-c) +[![awesome-cpp](https://badgen.net/badge/icon/awesome-cpp/pink?icon=awesome&label&color)](https://github.com/fffaraz/awesome-cpp) + +Like `libevent, libev, and libuv`, +`libhv` provides event-loop with non-blocking IO and timer, +but simpler api and richer protocols. + +## ✨ Features + +- Cross-platform (Linux, Windows, macOS, Android, iOS, BSD, Solaris) +- High-performance EventLoop (IO, timer, idle, custom) +- TCP/UDP client/server/proxy +- TCP supports heartbeat, reconnect, upstream, MultiThread-safe write and close, etc. +- Built-in common unpacking modes (FixedLength, Delimiter, LengthField) +- RUDP support: WITH_KCP +- SSL/TLS support: (via WITH_OPENSSL or WITH_GNUTLS or WITH_MBEDTLS) +- HTTP client/server (support https http1/x http2 grpc) +- HTTP supports static service, indexof service, forward/reverse proxy service, sync/async API handler +- HTTP supports RESTful, router, middleware, keep-alive, chunked, SSE, etc. +- WebSocket client/server +- MQTT client + +## ⌛️ Build + +see [BUILD.md](BUILD.md) + +Makefile: +```shell +./configure +make +sudo make install +``` + +or cmake: +```shell +mkdir build +cd build +cmake .. +cmake --build . +``` + +or bazel: +```shell +bazel build libhv +``` + +or vcpkg: +```shell +vcpkg install libhv +``` + +or xmake: +```shell +xrepo install libhv +``` + +## ⚡️ Getting Started + +run `./getting_started.sh`: + +```shell +git clone https://github.com/ithewei/libhv.git +cd libhv +./configure +make + +bin/httpd -h +bin/httpd -d +#bin/httpd -c etc/httpd.conf -s restart -d +ps aux | grep httpd + +# http file service +bin/curl -v localhost:8080 + +# http indexof service +bin/curl -v localhost:8080/downloads/ + +# http api service +bin/curl -v localhost:8080/ping +bin/curl -v localhost:8080/echo -d "hello,world!" +bin/curl -v localhost:8080/query?page_no=1\&page_size=10 +bin/curl -v localhost:8080/kv -H "Content-Type:application/x-www-form-urlencoded" -d 'user=admin&pswd=123456' +bin/curl -v localhost:8080/json -H "Content-Type:application/json" -d '{"user":"admin","pswd":"123456"}' +bin/curl -v localhost:8080/form -F 'user=admin' -F 'pswd=123456' +bin/curl -v localhost:8080/upload -d "@LICENSE" +bin/curl -v localhost:8080/upload -F "file=@LICENSE" + +bin/curl -v localhost:8080/test -H "Content-Type:application/x-www-form-urlencoded" -d 'bool=1&int=123&float=3.14&string=hello' +bin/curl -v localhost:8080/test -H "Content-Type:application/json" -d '{"bool":true,"int":123,"float":3.14,"string":"hello"}' +bin/curl -v localhost:8080/test -F 'bool=1' -F 'int=123' -F 'float=3.14' -F 'string=hello' +# RESTful API: /group/:group_name/user/:user_id +bin/curl -v -X DELETE localhost:8080/group/test/user/123 + +# benchmark +bin/wrk -c 1000 -d 10 -t 4 http://127.0.0.1:8080/ +``` + +### TCP +#### tcp server +**c version**: [examples/tcp_echo_server.c](examples/tcp_echo_server.c) + +**c++ version**: [evpp/TcpServer_test.cpp](evpp/TcpServer_test.cpp) +```c++ +#include "TcpServer.h" +using namespace hv; + +int main() { + int port = 1234; + TcpServer srv; + int listenfd = srv.createsocket(port); + if (listenfd < 0) { + return -1; + } + printf("server listen on port %d, listenfd=%d ...\n", port, listenfd); + srv.onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("%s connected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + printf("%s disconnected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + srv.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + // echo + channel->write(buf); + }; + srv.setThreadNum(4); + srv.start(); + + // press Enter to stop + while (getchar() != '\n'); + return 0; +} +``` + +#### tcp client +**c version**: [examples/tcp_client_test.c](examples/tcp_client_test.c) + +**c++ version**: [evpp/TcpClient_test.cpp](evpp/TcpClient_test.cpp) +```c++ +#include +#include "TcpClient.h" +using namespace hv; + +int main() { + int port = 1234; + TcpClient cli; + int connfd = cli.createsocket(port); + if (connfd < 0) { + return -1; + } + cli.onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + cli.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + }; + cli.start(); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + cli.closesocket(); + } else if (str == "start") { + cli.start(); + } else if (str == "stop") { + cli.stop(); + break; + } else { + if (!cli.isConnected()) break; + cli.send(str); + } + } + return 0; +} +``` + +### HTTP +#### http server +see [examples/http_server_test.cpp](examples/http_server_test.cpp) + +**golang gin style** +```c++ +#include "HttpServer.h" +using namespace hv; + +int main() { + HttpService router; + router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { + return resp->String("pong"); + }); + + router.GET("/data", [](HttpRequest* req, HttpResponse* resp) { + static char data[] = "0123456789"; + return resp->Data(data, 10); + }); + + router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) { + return resp->Json(router.Paths()); + }); + + router.GET("/get", [](HttpRequest* req, HttpResponse* resp) { + resp->json["origin"] = req->client_addr.ip; + resp->json["url"] = req->url; + resp->json["args"] = req->query_params; + resp->json["headers"] = req->headers; + return 200; + }); + + router.POST("/echo", [](const HttpContextPtr& ctx) { + return ctx->send(ctx->body(), ctx->type()); + }); + + HttpServer server(&router); + server.setPort(8080); + server.setThreadNum(4); + server.run(); + return 0; +} +``` +#### http client +see [examples/http_client_test.cpp](examples/http_client_test.cpp) + +**python requests style** +```c++ +#include "requests.h" + +int main() { + auto resp = requests::get("http://www.example.com"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + + resp = requests::post("127.0.0.1:8080/echo", "hello,world!"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + + return 0; +} +``` + +### WebSocket +#### WebSocket server +see [examples/websocket_server_test.cpp](examples/websocket_server_test.cpp) +```c++ +#include "WebSocketServer.h" +using namespace hv; + +int main(int argc, char** argv) { + WebSocketService ws; + ws.onopen = [](const WebSocketChannelPtr& channel, const HttpRequestPtr& req) { + printf("onopen: GET %s\n", req->Path().c_str()); + }; + ws.onmessage = [](const WebSocketChannelPtr& channel, const std::string& msg) { + printf("onmessage: %.*s\n", (int)msg.size(), msg.data()); + }; + ws.onclose = [](const WebSocketChannelPtr& channel) { + printf("onclose\n"); + }; + + WebSocketServer server(&ws); + server.setPort(9999); + server.setThreadNum(4); + server.run(); + return 0; +} +``` + +#### WebSocket client +see [examples/websocket_client_test.cpp](examples/websocket_client_test.cpp) +```c++ +#include "WebSocketClient.h" +using namespace hv; + +int main(int argc, char** argv) { + WebSocketClient ws; + ws.onopen = []() { + printf("onopen\n"); + }; + ws.onmessage = [](const std::string& msg) { + printf("onmessage: %.*s\n", (int)msg.size(), msg.data()); + }; + ws.onclose = []() { + printf("onclose\n"); + }; + + // reconnect: 1,2,4,8,10,10,10... + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + ws.setReconnect(&reconn); + + ws.open("ws://127.0.0.1:9999/test"); + + std::string str; + while (std::getline(std::cin, str)) { + if (!ws.isConnected()) break; + if (str == "quit") { + ws.close(); + break; + } + ws.send(str); + } + + return 0; +} +``` + +## 🍭 More examples +### c version +- [examples/hloop_test.c](examples/hloop_test.c) +- [examples/htimer_test.c](examples/htimer_test.c) +- [examples/tcp_echo_server.c](examples/tcp_echo_server.c) +- [examples/tcp_chat_server.c](examples/tcp_chat_server.c) +- [examples/tcp_proxy_server.c](examples/tcp_proxy_server.c) +- [examples/udp_echo_server.c](examples/udp_echo_server.c) +- [examples/udp_proxy_server.c](examples/udp_proxy_server.c) +- [examples/socks5_proxy_server.c](examples/socks5_proxy_server.c) +- [examples/tinyhttpd.c](examples/tinyhttpd.c) +- [examples/tinyproxyd.c](examples/tinyproxyd.c) +- [examples/jsonrpc](examples/jsonrpc) +- [examples/mqtt](examples/mqtt) +- [examples/multi-thread/multi-acceptor-processes.c](examples/multi-thread/multi-acceptor-processes.c) +- [examples/multi-thread/multi-acceptor-threads.c](examples/multi-thread/multi-acceptor-threads.c) +- [examples/multi-thread/one-acceptor-multi-workers.c](examples/multi-thread/one-acceptor-multi-workers.c) + +### c++ version +- [evpp/EventLoop_test.cpp](evpp/EventLoop_test.cpp) +- [evpp/EventLoopThread_test.cpp](evpp/EventLoopThread_test.cpp) +- [evpp/EventLoopThreadPool_test.cpp](evpp/EventLoopThreadPool_test.cpp) +- [evpp/TimerThread_test.cpp](evpp/TimerThread_test.cpp) +- [evpp/TcpServer_test.cpp](evpp/TcpServer_test.cpp) +- [evpp/TcpClient_test.cpp](evpp/TcpClient_test.cpp) +- [evpp/UdpServer_test.cpp](evpp/UdpServer_test.cpp) +- [evpp/UdpClient_test.cpp](evpp/UdpClient_test.cpp) +- [examples/http_server_test.cpp](examples/http_server_test.cpp) +- [examples/http_client_test.cpp](examples/http_client_test.cpp) +- [examples/websocket_server_test.cpp](examples/websocket_server_test.cpp) +- [examples/websocket_client_test.cpp](examples/websocket_client_test.cpp) +- [examples/protorpc](examples/protorpc) +- [hv-projects/QtDemo](https://github.com/hv-projects/QtDemo) + +### simulate well-known command line tools +- [examples/nc](examples/nc.c) +- [examples/nmap](examples/nmap) +- [examples/httpd](examples/httpd) +- [examples/wrk](examples/wrk.cpp) +- [examples/curl](examples/curl.cpp) +- [examples/wget](examples/wget.cpp) +- [examples/consul](examples/consul) + +## 🥇 Benchmark +### `pingpong echo-servers` +```shell +cd echo-servers +./build.sh +./benchmark.sh +``` + +**throughput**: +```shell +libevent running on port 2001 +libev running on port 2002 +libuv running on port 2003 +libhv running on port 2004 +asio running on port 2005 +poco running on port 2006 + +==============2001===================================== +[127.0.0.1:2001] 4 threads 1000 connections run 10s +total readcount=1616761 readbytes=1655563264 +throughput = 157 MB/s + +==============2002===================================== +[127.0.0.1:2002] 4 threads 1000 connections run 10s +total readcount=2153171 readbytes=2204847104 +throughput = 210 MB/s + +==============2003===================================== +[127.0.0.1:2003] 4 threads 1000 connections run 10s +total readcount=1599727 readbytes=1638120448 +throughput = 156 MB/s + +==============2004===================================== +[127.0.0.1:2004] 4 threads 1000 connections run 10s +total readcount=2202271 readbytes=2255125504 +throughput = 215 MB/s + +==============2005===================================== +[127.0.0.1:2005] 4 threads 1000 connections run 10s +total readcount=1354230 readbytes=1386731520 +throughput = 132 MB/s + +==============2006===================================== +[127.0.0.1:2006] 4 threads 1000 connections run 10s +total readcount=1699652 readbytes=1740443648 +throughput = 165 MB/s +``` + +### `iperf tcp_proxy_server` +```shell +# sudo apt install iperf +iperf -s -p 5001 > /dev/null & +bin/tcp_proxy_server 1212 127.0.0.1:5001 & +iperf -c 127.0.0.1 -p 5001 -l 8K +iperf -c 127.0.0.1 -p 1212 -l 8K +``` + +**Bandwidth**: +```shell +------------------------------------------------------------ +[ 3] local 127.0.0.1 port 52560 connected with 127.0.0.1 port 5001 +[ ID] Interval Transfer Bandwidth +[ 3] 0.0-10.0 sec 20.8 GBytes 17.9 Gbits/sec + +------------------------------------------------------------ +[ 3] local 127.0.0.1 port 48142 connected with 127.0.0.1 port 1212 +[ ID] Interval Transfer Bandwidth +[ 3] 0.0-10.0 sec 11.9 GBytes 10.2 Gbits/sec +``` + +### `webbench` +```shell +# sudo apt install wrk +wrk -c 100 -t 4 -d 10s http://127.0.0.1:8080/ + +# sudo apt install apache2-utils +ab -c 100 -n 100000 http://127.0.0.1:8080/ +``` + +**libhv(port:8080) vs nginx(port:80)** + +![libhv-vs-nginx.png](html/downloads/libhv-vs-nginx.png) + +Above test results can be found on [Github Actions](https://github.com/ithewei/libhv/actions/workflows/benchmark.yml). diff --git a/3rdPartner/libhv/TREE.md b/3rdPartner/libhv/TREE.md new file mode 100644 index 0000000..f5a54a4 --- /dev/null +++ b/3rdPartner/libhv/TREE.md @@ -0,0 +1,36 @@ +## 目录结构 + +``` +. +├── base libhv基础设施,如常用宏定义、数据结构、日期时间、线程、进程、日志、套接字 +├── bin 可执行文件安装目录 +├── build cmake默认构建目录 +├── cert SSL证书存放目录 +├── cmake cmake脚本存放目录 +├── cpputil libhv工具类,如字符串、文件、路径、线程池、json解析、ini解析 +├── docs 文档存放目录 +├── echo-servers 包含libevent、libev、libuv、libhv、asio、poco、muduo等多个网络库的tcp echo server写法,并做压力测试 +├── etc 应用程序配置目录 +├── event libhv事件循环模块 +├── evpp 事件循环c++封装类 +├── examples 示例代码 +│   └── httpd +├── html 网页document_root目录 +│   ├── downloads 下载目录 +│   └── uploads 上传目录 +├── http libhv http模块 +│   ├── client +│   └── server +├── include 头文件安装目录 +│   └── hv +├── lib 库文件安装目录 +├── logs 日志生成目录 +├── misc 杂项 +├── mqtt MQTT协议 +├── protocol 包含icmp、dns、ftp、smtp等协议的实现 +├── scripts shell脚本存放目录 +├── ssl SSL/TLS加密通信 +├── unittest 单元测试代码 +└── util libhv工具函数,如base64、md5、sha1 + +``` diff --git a/3rdPartner/libhv/WORKSPACE.bazel b/3rdPartner/libhv/WORKSPACE.bazel new file mode 100644 index 0000000..999396c --- /dev/null +++ b/3rdPartner/libhv/WORKSPACE.bazel @@ -0,0 +1 @@ +workspace(name = "hv") diff --git a/3rdPartner/libhv/base/README.md b/3rdPartner/libhv/base/README.md new file mode 100644 index 0000000..399dc50 --- /dev/null +++ b/3rdPartner/libhv/base/README.md @@ -0,0 +1,28 @@ +## 目录结构 + +``` +. +├── array.h 动态数组 +├── hatomic.h 原子操作 +├── hbase.h 基础函数 +├── hbuf.h 缓存 +├── hdef.h 常见宏定义 +├── heap.h 堆 +├── hendian.h 大小端 +├── herr.h 错误码表 +├── hlog.h 日志 +├── hmain.h 命令行解析 +├── hmath.h 数学函数 +├── hmutex.h 线程同步锁 +├── hplatform.h 平台相关宏 +├── hproc.h 进程 +├── hsocket.h 套接字 +├── hsysinfo.h 系统信息 +├── hthread.h 线程 +├── htime.h 时间 +├── hversion.h 版本 +├── list.h 链表 +├── queue.h 队列 +└── rbtree.h 红黑树 + +``` diff --git a/3rdPartner/libhv/base/array.h b/3rdPartner/libhv/base/array.h new file mode 100644 index 0000000..4370d5b --- /dev/null +++ b/3rdPartner/libhv/base/array.h @@ -0,0 +1,152 @@ +#ifndef HV_ARRAY_H_ +#define HV_ARRAY_H_ + +/* + * array + * at: random access by pos + * @effective + * push_back,pop_back,del_nomove,swap + * @ineffective + * add,del + */ + +#include // for assert +#include // for NULL +#include // for malloc,realloc,free +#include // for memset,memmove + +#include "hbase.h" // for HV_ALLOC, HV_FREE + +#define ARRAY_INIT_SIZE 16 + +// #include +// typedef std::vector atype; +#define ARRAY_DECL(type, atype) \ +struct atype { \ + type* ptr; \ + size_t size; \ + size_t maxsize;\ +}; \ +typedef struct atype atype;\ +\ +static inline type* atype##_data(atype* p) {\ + return p->ptr;\ +}\ +\ +static inline int atype##_size(atype* p) {\ + return p->size;\ +}\ +\ +static inline int atype##_maxsize(atype* p) {\ + return p->maxsize;\ +}\ +\ +static inline int atype##_empty(atype* p) {\ + return p->size == 0;\ +}\ +\ +static inline type* atype##_at(atype* p, int pos) {\ + if (pos < 0) {\ + pos += p->size;\ + }\ + assert(pos >= 0 && pos < p->size);\ + return p->ptr + pos;\ +}\ +\ +static inline type* atype##_front(atype* p) {\ + return p->size == 0 ? NULL : p->ptr;\ +}\ +\ +static inline type* atype##_back(atype* p) {\ + return p->size == 0 ? NULL : p->ptr + p->size - 1;\ +}\ +\ +static inline void atype##_init(atype* p, int maxsize) {\ + p->size = 0;\ + p->maxsize = maxsize;\ + HV_ALLOC(p->ptr, sizeof(type) * maxsize);\ +}\ +\ +static inline void atype##_clear(atype* p) {\ + p->size = 0;\ + memset(p->ptr, 0, sizeof(type) * p->maxsize);\ +}\ +\ +static inline void atype##_cleanup(atype* p) {\ + HV_FREE(p->ptr);\ + p->size = p->maxsize = 0;\ +}\ +\ +static inline void atype##_resize(atype* p, int maxsize) {\ + if (maxsize == 0) maxsize = ARRAY_INIT_SIZE;\ + p->ptr = (type*)hv_realloc(p->ptr, sizeof(type) * maxsize, sizeof(type) * p->maxsize);\ + p->maxsize = maxsize;\ +}\ +\ +static inline void atype##_double_resize(atype* p) {\ + atype##_resize(p, p->maxsize * 2);\ +}\ +\ +static inline void atype##_push_back(atype* p, type* elem) {\ + if (p->size == p->maxsize) {\ + atype##_double_resize(p);\ + }\ + p->ptr[p->size] = *elem;\ + p->size++;\ +}\ +\ +static inline void atype##_pop_back(atype* p) {\ + assert(p->size > 0);\ + p->size--;\ +}\ +\ +static inline void atype##_add(atype* p, type* elem, int pos) {\ + if (pos < 0) {\ + pos += p->size;\ + }\ + assert(pos >= 0 && pos <= p->size);\ + if (p->size == p->maxsize) {\ + atype##_double_resize(p);\ + }\ + if (pos < p->size) {\ + memmove(p->ptr + pos+1, p->ptr + pos, sizeof(type) * (p->size - pos));\ + }\ + p->ptr[pos] = *elem;\ + p->size++;\ +}\ +\ +static inline void atype##_del(atype* p, int pos) {\ + if (pos < 0) {\ + pos += p->size;\ + }\ + assert(pos >= 0 && pos < p->size);\ + p->size--;\ + if (pos < p->size) {\ + memmove(p->ptr + pos, p->ptr + pos+1, sizeof(type) * (p->size - pos));\ + }\ +}\ +\ +static inline void atype##_del_nomove(atype* p, int pos) {\ + if (pos < 0) {\ + pos += p->size;\ + }\ + assert(pos >= 0 && pos < p->size);\ + p->size--;\ + if (pos < p->size) {\ + p->ptr[pos] = p->ptr[p->size];\ + }\ +}\ +\ +static inline void atype##_swap(atype* p, int pos1, int pos2) {\ + if (pos1 < 0) {\ + pos1 += p->size;\ + }\ + if (pos2 < 0) {\ + pos2 += p->size;\ + }\ + type tmp = p->ptr[pos1];\ + p->ptr[pos1] = p->ptr[pos2];\ + p->ptr[pos2] = tmp;\ +}\ + +#endif // HV_ARRAY_H_ diff --git a/3rdPartner/libhv/base/hatomic.h b/3rdPartner/libhv/base/hatomic.h new file mode 100644 index 0000000..eea6a61 --- /dev/null +++ b/3rdPartner/libhv/base/hatomic.h @@ -0,0 +1,130 @@ +#ifndef HV_ATOMIC_H_ +#define HV_ATOMIC_H_ + +#ifdef __cplusplus + +// c++11 +#include + +using std::atomic_flag; +using std::atomic_long; + +#define ATOMIC_FLAG_TEST_AND_SET(p) ((p)->test_and_set()) +#define ATOMIC_FLAG_CLEAR(p) ((p)->clear()) + +#else + +#include "hplatform.h" // for HAVE_STDATOMIC_H +#if HAVE_STDATOMIC_H + +// c11 +#include + +#define ATOMIC_FLAG_TEST_AND_SET atomic_flag_test_and_set +#define ATOMIC_FLAG_CLEAR atomic_flag_clear +#define ATOMIC_ADD atomic_fetch_add +#define ATOMIC_SUB atomic_fetch_sub +#define ATOMIC_INC(p) ATOMIC_ADD(p, 1) +#define ATOMIC_DEC(p) ATOMIC_SUB(p, 1) + +#else + +typedef volatile bool atomic_bool; +typedef volatile char atomic_char; +typedef volatile unsigned char atomic_uchar; +typedef volatile short atomic_short; +typedef volatile unsigned short atomic_ushort; +typedef volatile int atomic_int; +typedef volatile unsigned int atomic_uint; +typedef volatile long atomic_long; +typedef volatile unsigned long atomic_ulong; +typedef volatile long long atomic_llong; +typedef volatile unsigned long long atomic_ullong; +typedef volatile size_t atomic_size_t; + +typedef struct atomic_flag { atomic_bool _Value; } atomic_flag; + +#ifdef _WIN32 + +#define ATOMIC_FLAG_TEST_AND_SET atomic_flag_test_and_set +static inline bool atomic_flag_test_and_set(atomic_flag* p) { + // return InterlockedIncrement((LONG*)&p->_Value, 1); + return InterlockedCompareExchange((LONG*)&p->_Value, 1, 0); +} + +#define ATOMIC_ADD InterlockedAdd +#define ATOMIC_SUB(p, n) InterlockedAdd(p, -n) +#define ATOMIC_INC InterlockedIncrement +#define ATOMIC_DEC InterlockedDecrement + +#elif defined(__GNUC__) + +#define ATOMIC_FLAG_TEST_AND_SET atomic_flag_test_and_set +static inline bool atomic_flag_test_and_set(atomic_flag* p) { + return !__sync_bool_compare_and_swap(&p->_Value, 0, 1); +} + +#define ATOMIC_ADD __sync_fetch_and_add +#define ATOMIC_SUB __sync_fetch_and_sub +#define ATOMIC_INC(p) ATOMIC_ADD(p, 1) +#define ATOMIC_DEC(p) ATOMIC_SUB(p, 1) + +#endif + +#endif // HAVE_STDATOMIC_H + +#endif // __cplusplus + +#ifndef ATOMIC_FLAG_INIT +#define ATOMIC_FLAG_INIT { 0 } +#endif + +#ifndef ATOMIC_VAR_INIT +#define ATOMIC_VAR_INIT(value) (value) +#endif + +#ifndef ATOMIC_FLAG_TEST_AND_SET +#define ATOMIC_FLAG_TEST_AND_SET atomic_flag_test_and_set +static inline bool atomic_flag_test_and_set(atomic_flag* p) { + bool ret = p->_Value; + p->_Value = 1; + return ret; +} +#endif + +#ifndef ATOMIC_FLAG_CLEAR +#define ATOMIC_FLAG_CLEAR atomic_flag_clear +static inline void atomic_flag_clear(atomic_flag* p) { + p->_Value = 0; +} +#endif + +#ifndef ATOMIC_ADD +#define ATOMIC_ADD(p, n) (*(p) += (n)) +#endif + +#ifndef ATOMIC_SUB +#define ATOMIC_SUB(p, n) (*(p) -= (n)) +#endif + +#ifndef ATOMIC_INC +#define ATOMIC_INC(p) ((*(p))++) +#endif + +#ifndef ATOMIC_DEC +#define ATOMIC_DEC(p) ((*(p))--) +#endif + +typedef atomic_flag hatomic_flag_t; +#define HATOMIC_FLAG_INIT ATOMIC_FLAG_INIT +#define hatomic_flag_test_and_set ATOMIC_FLAG_TEST_AND_SET +#define hatomic_flag_clear ATOMIC_FLAG_CLEAR + +typedef atomic_long hatomic_t; +#define HATOMIC_VAR_INIT ATOMIC_VAR_INIT +#define hatomic_add ATOMIC_ADD +#define hatomic_sub ATOMIC_SUB +#define hatomic_inc ATOMIC_INC +#define hatomic_dec ATOMIC_DEC + +#endif // HV_ATOMIC_H_ diff --git a/3rdPartner/libhv/base/hbase.c b/3rdPartner/libhv/base/hbase.c new file mode 100644 index 0000000..a7d600d --- /dev/null +++ b/3rdPartner/libhv/base/hbase.c @@ -0,0 +1,519 @@ +#include "hbase.h" + +#ifdef OS_DARWIN +#include // for _NSGetExecutablePath +#endif + +#include "hatomic.h" + +#ifndef RAND_MAX +#define RAND_MAX 2147483647 +#endif + +static hatomic_t s_alloc_cnt = HATOMIC_VAR_INIT(0); +static hatomic_t s_free_cnt = HATOMIC_VAR_INIT(0); + +long hv_alloc_cnt() { + return s_alloc_cnt; +} + +long hv_free_cnt() { + return s_free_cnt; +} + +void* hv_malloc(size_t size) { + hatomic_inc(&s_alloc_cnt); + void* ptr = malloc(size); + if (!ptr) { + fprintf(stderr, "malloc failed!\n"); + exit(-1); + } + return ptr; +} + +void* hv_realloc(void* oldptr, size_t newsize, size_t oldsize) { + hatomic_inc(&s_alloc_cnt); + if (oldptr) hatomic_inc(&s_free_cnt); + void* ptr = realloc(oldptr, newsize); + if (!ptr) { + fprintf(stderr, "realloc failed!\n"); + exit(-1); + } + if (newsize > oldsize) { + memset((char*)ptr + oldsize, 0, newsize - oldsize); + } + return ptr; +} + +void* hv_calloc(size_t nmemb, size_t size) { + hatomic_inc(&s_alloc_cnt); + void* ptr = calloc(nmemb, size); + if (!ptr) { + fprintf(stderr, "calloc failed!\n"); + exit(-1); + } + return ptr; +} + +void* hv_zalloc(size_t size) { + hatomic_inc(&s_alloc_cnt); + void* ptr = malloc(size); + if (!ptr) { + fprintf(stderr, "malloc failed!\n"); + exit(-1); + } + memset(ptr, 0, size); + return ptr; +} + +void hv_free(void* ptr) { + if (ptr) { + free(ptr); + ptr = NULL; + hatomic_inc(&s_free_cnt); + } +} + +char* hv_strupper(char* str) { + char* p = str; + while (*p != '\0') { + if (*p >= 'a' && *p <= 'z') { + *p &= ~0x20; + } + ++p; + } + return str; +} + +char* hv_strlower(char* str) { + char* p = str; + while (*p != '\0') { + if (*p >= 'A' && *p <= 'Z') { + *p |= 0x20; + } + ++p; + } + return str; +} + +char* hv_strreverse(char* str) { + if (str == NULL) return NULL; + char* b = str; + char* e = str; + while(*e) {++e;} + --e; + char tmp; + while (e > b) { + tmp = *e; + *e = *b; + *b = tmp; + --e; + ++b; + } + return str; +} + +// n = sizeof(dest_buf) +char* hv_strncpy(char* dest, const char* src, size_t n) { + assert(dest != NULL && src != NULL); + char* ret = dest; + while (*src != '\0' && --n > 0) { + *dest++ = *src++; + } + *dest = '\0'; + return ret; +} + +// n = sizeof(dest_buf) +char* hv_strncat(char* dest, const char* src, size_t n) { + assert(dest != NULL && src != NULL); + char* ret = dest; + while (*dest) {++dest;--n;} + while (*src != '\0' && --n > 0) { + *dest++ = *src++; + } + *dest = '\0'; + return ret; +} + +bool hv_strstartswith(const char* str, const char* start) { + assert(str != NULL && start != NULL); + while (*str && *start && *str == *start) { + ++str; + ++start; + } + return *start == '\0'; +} + +bool hv_strendswith(const char* str, const char* end) { + assert(str != NULL && end != NULL); + int len1 = 0; + int len2 = 0; + while (*str) {++str; ++len1;} + while (*end) {++end; ++len2;} + if (len1 < len2) return false; + while (len2-- > 0) { + --str; + --end; + if (*str != *end) { + return false; + } + } + return true; +} + +bool hv_strcontains(const char* str, const char* sub) { + assert(str != NULL && sub != NULL); + return strstr(str, sub) != NULL; +} + +bool hv_wildcard_match(const char* str, const char* pattern) { + assert(str != NULL && pattern != NULL); + bool match = false; + while (*str && *pattern) { + if (*pattern == '*') { + match = hv_strendswith(str, pattern + 1); + break; + } else if (*str != *pattern) { + match = false; + break; + } else { + ++str; + ++pattern; + } + } + return match ? match : (*str == '\0' && *pattern == '\0'); +} + +char* hv_strnchr(const char* s, char c, size_t n) { + assert(s != NULL); + const char* p = s; + while (*p != '\0' && n-- > 0) { + if (*p == c) return (char*)p; + ++p; + } + return NULL; +} + +char* hv_strrchr_dir(const char* filepath) { + char* p = (char*)filepath; + while (*p) ++p; + while (--p >= filepath) { +#ifdef OS_WIN + if (*p == '/' || *p == '\\') +#else + if (*p == '/') +#endif + return p; + } + return NULL; +} + +const char* hv_basename(const char* filepath) { + const char* pos = hv_strrchr_dir(filepath); + return pos ? pos+1 : filepath; +} + +const char* hv_suffixname(const char* filename) { + const char* pos = hv_strrchr_dot(filename); + return pos ? pos+1 : ""; +} + +int hv_mkdir_p(const char* dir) { + if (access(dir, 0) == 0) { + return EEXIST; + } + char tmp[MAX_PATH] = {0}; + hv_strncpy(tmp, dir, sizeof(tmp)); + char* p = tmp; + char delim = '/'; + while (*p) { +#ifdef OS_WIN + if (*p == '/' || *p == '\\') { + delim = *p; +#else + if (*p == '/') { +#endif + *p = '\0'; + hv_mkdir(tmp); + *p = delim; + } + ++p; + } + if (hv_mkdir(tmp) != 0) { + return EPERM; + } + return 0; +} + +int hv_rmdir_p(const char* dir) { + if (access(dir, 0) != 0) { + return ENOENT; + } + if (rmdir(dir) != 0) { + return EPERM; + } + char tmp[MAX_PATH] = {0}; + hv_strncpy(tmp, dir, sizeof(tmp)); + char* p = tmp; + while (*p) ++p; + while (--p >= tmp) { +#ifdef OS_WIN + if (*p == '/' || *p == '\\') { +#else + if (*p == '/') { +#endif + *p = '\0'; + if (rmdir(tmp) != 0) { + return 0; + } + } + } + return 0; +} + +bool hv_exists(const char* path) { + return access(path, 0) == 0; +} + +bool hv_isdir(const char* path) { + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + stat(path, &st); + return S_ISDIR(st.st_mode); +} + +bool hv_isfile(const char* path) { + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + stat(path, &st); + return S_ISREG(st.st_mode); +} + +bool hv_islink(const char* path) { +#ifdef OS_WIN + return hv_isdir(path) && (GetFileAttributes(path) & FILE_ATTRIBUTE_REPARSE_POINT); +#else + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + lstat(path, &st); + return S_ISLNK(st.st_mode); +#endif +} + +size_t hv_filesize(const char* filepath) { + struct stat st; + memset(&st, 0, sizeof(st)); + stat(filepath, &st); + return st.st_size; +} + +char* get_executable_path(char* buf, int size) { +#ifdef OS_WIN + GetModuleFileName(NULL, buf, size); +#elif defined(OS_LINUX) + if (readlink("/proc/self/exe", buf, size) == -1) { + return NULL; + } +#elif defined(OS_DARWIN) + _NSGetExecutablePath(buf, (uint32_t*)&size); +#endif + return buf; +} + +char* get_executable_dir(char* buf, int size) { + char filepath[MAX_PATH] = {0}; + get_executable_path(filepath, sizeof(filepath)); + char* pos = hv_strrchr_dir(filepath); + if (pos) { + *pos = '\0'; + strncpy(buf, filepath, size); + } + return buf; +} + +char* get_executable_file(char* buf, int size) { + char filepath[MAX_PATH] = {0}; + get_executable_path(filepath, sizeof(filepath)); + char* pos = hv_strrchr_dir(filepath); + if (pos) { + strncpy(buf, pos+1, size); + } + return buf; +} + +char* get_run_dir(char* buf, int size) { + return getcwd(buf, size); +} + +int hv_rand(int min, int max) { + static int s_seed = 0; + assert(max > min); + + if (s_seed == 0) { + s_seed = time(NULL); + srand(s_seed); + } + + int _rand = rand(); + _rand = min + (int) ((double) ((double) (max) - (min) + 1.0) * ((_rand) / ((RAND_MAX) + 1.0))); + return _rand; +} + +char* hv_random_string(char *buf, int len) { + static char s_characters[] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', + 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + }; + int i = 0; + for (; i < len; i++) { + buf[i] = s_characters[hv_rand(0, sizeof(s_characters) - 1)]; + } + buf[i] = '\0'; + return buf; +} + +bool hv_getboolean(const char* str) { + if (str == NULL) return false; + int len = strlen(str); + if (len == 0) return false; + switch (len) { + case 1: return *str == '1' || *str == 'y' || *str == 'Y'; + case 2: return stricmp(str, "on") == 0; + case 3: return stricmp(str, "yes") == 0; + case 4: return stricmp(str, "true") == 0; + case 6: return stricmp(str, "enable") == 0; + default: return false; + } +} + +size_t hv_parse_size(const char* str) { + size_t size = 0, n = 0; + const char* p = str; + char c; + while ((c = *p) != '\0') { + if (c >= '0' && c <= '9') { + n = n * 10 + c - '0'; + } else { + switch (c) { + case 'K': case 'k': n <<= 10; break; + case 'M': case 'm': n <<= 20; break; + case 'G': case 'g': n <<= 30; break; + case 'T': case 't': n <<= 40; break; + default: break; + } + size += n; + n = 0; + } + ++p; + } + return size + n; +} + +time_t hv_parse_time(const char* str) { + time_t time = 0, n = 0; + const char* p = str; + char c; + while ((c = *p) != '\0') { + if (c >= '0' && c <= '9') { + n = n * 10 + c - '0'; + } else { + switch (c) { + case 's': break; + case 'm': n *= 60; break; + case 'h': n *= 60 * 60; break; + case 'd': n *= 24 * 60 * 60; break; + case 'w': n *= 7 * 24 * 60 * 60; break; + default: break; + } + time += n; + n = 0; + } + ++p; + } + return time + n; +} + +int hv_parse_url(hurl_t* stURL, const char* strURL) { + if (stURL == NULL || strURL == NULL) return -1; + memset(stURL, 0, sizeof(hurl_t)); + const char* begin = strURL; + const char* end = strURL; + while (*end != '\0') ++end; + if (end - begin > 65535) return -2; + // scheme:// + const char* sp = strURL; + const char* ep = strstr(sp, "://"); + if (ep) { + // stURL->fields[HV_URL_SCHEME].off = sp - begin; + stURL->fields[HV_URL_SCHEME].len = ep - sp; + sp = ep + 3; + } + // user:pswd@host:port + ep = strchr(sp, '/'); + if (ep == NULL) ep = end; + const char* user = sp; + const char* host = sp; + const char* pos = hv_strnchr(sp, '@', ep - sp); + if (pos) { + // user:pswd + const char* pswd = hv_strnchr(user, ':', pos - user); + if (pswd) { + stURL->fields[HV_URL_PASSWORD].off = pswd + 1 - begin; + stURL->fields[HV_URL_PASSWORD].len = pos - pswd - 1; + } else { + pswd = pos; + } + stURL->fields[HV_URL_USERNAME].off = user - begin; + stURL->fields[HV_URL_USERNAME].len = pswd - user; + // @ + host = pos + 1; + } + // port + const char* port = hv_strnchr(host, ':', ep - host); + if (port) { + stURL->fields[HV_URL_PORT].off = port + 1 - begin; + stURL->fields[HV_URL_PORT].len = ep - port - 1; + // atoi + for (unsigned short i = 1; i <= stURL->fields[HV_URL_PORT].len; ++i) { + stURL->port = stURL->port * 10 + (port[i] - '0'); + } + } else { + port = ep; + // set default port + stURL->port = 80; + if (stURL->fields[HV_URL_SCHEME].len > 0) { + if (strncmp(strURL, "https://", 8) == 0) { + stURL->port = 443; + } + } + } + // host + stURL->fields[HV_URL_HOST].off = host - begin; + stURL->fields[HV_URL_HOST].len = port - host; + if (ep == end) return 0; + // /path + sp = ep; + ep = strchr(sp, '?'); + if (ep == NULL) ep = end; + stURL->fields[HV_URL_PATH].off = sp - begin; + stURL->fields[HV_URL_PATH].len = ep - sp; + if (ep == end) return 0; + // ?query + sp = ep + 1; + ep = strchr(sp, '#'); + if (ep == NULL) ep = end; + stURL->fields[HV_URL_QUERY].off = sp - begin; + stURL->fields[HV_URL_QUERY].len = ep - sp; + if (ep == end) return 0; + // #fragment + sp = ep + 1; + ep = end; + stURL->fields[HV_URL_FRAGMENT].off = sp - begin; + stURL->fields[HV_URL_FRAGMENT].len = ep - sp; + return 0; +} diff --git a/3rdPartner/libhv/base/hbase.h b/3rdPartner/libhv/base/hbase.h new file mode 100644 index 0000000..1a9041a --- /dev/null +++ b/3rdPartner/libhv/base/hbase.h @@ -0,0 +1,144 @@ +#ifndef HV_BASE_H_ +#define HV_BASE_H_ + +#include "hexport.h" +#include "hplatform.h" // for bool +#include "hdef.h" // for printd + +BEGIN_EXTERN_C + +//--------------------alloc/free--------------------------- +HV_EXPORT void* hv_malloc(size_t size); +HV_EXPORT void* hv_realloc(void* oldptr, size_t newsize, size_t oldsize); +HV_EXPORT void* hv_calloc(size_t nmemb, size_t size); +HV_EXPORT void* hv_zalloc(size_t size); +HV_EXPORT void hv_free(void* ptr); + +#define HV_ALLOC(ptr, size)\ + do {\ + *(void**)&(ptr) = hv_zalloc(size);\ + printd("alloc(%p, size=%llu)\tat [%s:%d:%s]\n", ptr, (unsigned long long)size, __FILE__, __LINE__, __FUNCTION__);\ + } while(0) + +#define HV_ALLOC_SIZEOF(ptr) HV_ALLOC(ptr, sizeof(*(ptr))) + +#define HV_FREE(ptr)\ + do {\ + if (ptr) {\ + hv_free(ptr);\ + printd("free( %p )\tat [%s:%d:%s]\n", ptr, __FILE__, __LINE__, __FUNCTION__);\ + ptr = NULL;\ + }\ + } while(0) + +#define STACK_OR_HEAP_ALLOC(ptr, size, stack_size)\ + unsigned char _stackbuf_[stack_size] = { 0 };\ + if ((size) > (stack_size)) {\ + HV_ALLOC(ptr, size);\ + } else {\ + *(unsigned char**)&(ptr) = _stackbuf_;\ + } + +#define STACK_OR_HEAP_FREE(ptr)\ + if ((unsigned char*)(ptr) != _stackbuf_) {\ + HV_FREE(ptr);\ + } + +#define HV_DEFAULT_STACKBUF_SIZE 1024 +#define HV_STACK_ALLOC(ptr, size) STACK_OR_HEAP_ALLOC(ptr, size, HV_DEFAULT_STACKBUF_SIZE) +#define HV_STACK_FREE(ptr) STACK_OR_HEAP_FREE(ptr) + +HV_EXPORT long hv_alloc_cnt(); +HV_EXPORT long hv_free_cnt(); +HV_INLINE void hv_memcheck(void) { + printf("Memcheck => alloc:%ld free:%ld\n", hv_alloc_cnt(), hv_free_cnt()); +} +#define HV_MEMCHECK atexit(hv_memcheck); + +//--------------------string------------------------------- +HV_EXPORT char* hv_strupper(char* str); +HV_EXPORT char* hv_strlower(char* str); +HV_EXPORT char* hv_strreverse(char* str); + +HV_EXPORT bool hv_strstartswith(const char* str, const char* start); +HV_EXPORT bool hv_strendswith(const char* str, const char* end); +HV_EXPORT bool hv_strcontains(const char* str, const char* sub); +HV_EXPORT bool hv_wildcard_match(const char* str, const char* pattern); + +// strncpy n = sizeof(dest_buf)-1 +// hv_strncpy n = sizeof(dest_buf) +HV_EXPORT char* hv_strncpy(char* dest, const char* src, size_t n); + +// strncat n = sizeof(dest_buf)-1-strlen(dest) +// hv_strncpy n = sizeof(dest_buf) +HV_EXPORT char* hv_strncat(char* dest, const char* src, size_t n); + +#if !HAVE_STRLCPY +#define strlcpy hv_strncpy +#endif + +#if !HAVE_STRLCAT +#define strlcat hv_strncat +#endif + +HV_EXPORT char* hv_strnchr(const char* s, char c, size_t n); + +#define hv_strrchr_dot(str) strrchr(str, '.') +HV_EXPORT char* hv_strrchr_dir(const char* filepath); + +// basename +HV_EXPORT const char* hv_basename(const char* filepath); +HV_EXPORT const char* hv_suffixname(const char* filename); +// mkdir -p +HV_EXPORT int hv_mkdir_p(const char* dir); +// rmdir -p +HV_EXPORT int hv_rmdir_p(const char* dir); +// path +HV_EXPORT bool hv_exists(const char* path); +HV_EXPORT bool hv_isdir(const char* path); +HV_EXPORT bool hv_isfile(const char* path); +HV_EXPORT bool hv_islink(const char* path); +HV_EXPORT size_t hv_filesize(const char* filepath); + +HV_EXPORT char* get_executable_path(char* buf, int size); +HV_EXPORT char* get_executable_dir(char* buf, int size); +HV_EXPORT char* get_executable_file(char* buf, int size); +HV_EXPORT char* get_run_dir(char* buf, int size); + +// random +HV_EXPORT int hv_rand(int min, int max); +HV_EXPORT char* hv_random_string(char *buf, int len); + +// 1 y on yes true enable => true +HV_EXPORT bool hv_getboolean(const char* str); +// 1T2G3M4K5B => ?B +HV_EXPORT size_t hv_parse_size(const char* str); +// 1w2d3h4m5s => ?s +HV_EXPORT time_t hv_parse_time(const char* str); + +// scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] +typedef enum { + HV_URL_SCHEME, + HV_URL_USERNAME, + HV_URL_PASSWORD, + HV_URL_HOST, + HV_URL_PORT, + HV_URL_PATH, + HV_URL_QUERY, + HV_URL_FRAGMENT, + HV_URL_FIELD_NUM, +} hurl_field_e; + +typedef struct hurl_s { + struct { + unsigned short off; + unsigned short len; + } fields[HV_URL_FIELD_NUM]; + unsigned short port; +} hurl_t; + +HV_EXPORT int hv_parse_url(hurl_t* stURL, const char* strURL); + +END_EXTERN_C + +#endif // HV_BASE_H_ diff --git a/3rdPartner/libhv/base/hbuf.h b/3rdPartner/libhv/base/hbuf.h new file mode 100644 index 0000000..903e164 --- /dev/null +++ b/3rdPartner/libhv/base/hbuf.h @@ -0,0 +1,257 @@ +#ifndef HV_BUF_H_ +#define HV_BUF_H_ + +#include "hdef.h" // for MAX +#include "hbase.h" // for HV_ALLOC, HV_FREE + +typedef struct hbuf_s { + char* base; + size_t len; + +#ifdef __cplusplus + hbuf_s() { + base = NULL; + len = 0; + } + + hbuf_s(void* data, size_t len) { + this->base = (char*)data; + this->len = len; + } +#endif +} hbuf_t; + +typedef struct offset_buf_s { + char* base; + size_t len; + size_t offset; +#ifdef __cplusplus + offset_buf_s() { + base = NULL; + len = 0; + offset = 0; + } + + offset_buf_s(void* data, size_t len) { + this->base = (char*)data; + this->len = len; + offset = 0; + } +#endif +} offset_buf_t; + +typedef struct fifo_buf_s { + char* base; + size_t len; + size_t head; + size_t tail; +#ifdef __cplusplus + fifo_buf_s() { + base = NULL; + len = 0; + head = tail = 0; + } + + fifo_buf_s(void* data, size_t len) { + this->base = (char*)data; + this->len = len; + head = tail = 0; + } +#endif +} fifo_buf_t; + +#ifdef __cplusplus +class HBuf : public hbuf_t { +public: + HBuf() : hbuf_t() { + cleanup_ = false; + } + HBuf(void* data, size_t len) : hbuf_t(data, len) { + cleanup_ = false; + } + HBuf(size_t cap) { resize(cap); } + + virtual ~HBuf() { + cleanup(); + } + + void* data() { return base; } + size_t size() { return len; } + + bool isNull() { return base == NULL || len == 0; } + + void cleanup() { + if (cleanup_) { + HV_FREE(base); + len = 0; + cleanup_ = false; + } + } + + void resize(size_t cap) { + if (cap == len) return; + + if (base == NULL) { + HV_ALLOC(base, cap); + } + else { + base = (char*)hv_realloc(base, cap, len); + } + len = cap; + cleanup_ = true; + } + + void copy(void* data, size_t len) { + resize(len); + memcpy(base, data, len); + } + + void copy(hbuf_t* buf) { + copy(buf->base, buf->len); + } + +private: + bool cleanup_; +}; + +// VL: Variable-Length +class HVLBuf : public HBuf { +public: + HVLBuf() : HBuf() {_offset = _size = 0;} + HVLBuf(void* data, size_t len) : HBuf(data, len) {_offset = 0; _size = len;} + HVLBuf(size_t cap) : HBuf(cap) {_offset = _size = 0;} + virtual ~HVLBuf() {} + + char* data() { return base + _offset; } + size_t size() { return _size; } + + void push_front(void* ptr, size_t len) { + if (len > this->len - _size) { + size_t newsize = MAX(this->len, len)*2; + resize(newsize); + } + + if (_offset < len) { + // move => end + memmove(base+this->len-_size, data(), _size); + _offset = this->len-_size; + } + + memcpy(data()-len, ptr, len); + _offset -= len; + _size += len; + } + + void push_back(void* ptr, size_t len) { + if (len > this->len - _size) { + size_t newsize = MAX(this->len, len)*2; + resize(newsize); + } + else if (len > this->len - _offset - _size) { + // move => start + memmove(base, data(), _size); + _offset = 0; + } + memcpy(data()+_size, ptr, len); + _size += len; + } + + void pop_front(void* ptr, size_t len) { + if (len <= _size) { + if (ptr) { + memcpy(ptr, data(), len); + } + _offset += len; + if (_offset >= this->len) _offset = 0; + _size -= len; + } + } + + void pop_back(void* ptr, size_t len) { + if (len <= _size) { + if (ptr) { + memcpy(ptr, data()+_size-len, len); + } + _size -= len; + } + } + + void clear() { + _offset = _size = 0; + } + + void prepend(void* ptr, size_t len) { + push_front(ptr, len); + } + + void append(void* ptr, size_t len) { + push_back(ptr, len); + } + + void insert(void* ptr, size_t len) { + push_back(ptr, len); + } + + void remove(size_t len) { + pop_front(NULL, len); + } + +private: + size_t _offset; + size_t _size; +}; + +class HRingBuf : public HBuf { +public: + HRingBuf() : HBuf() {_head = _tail = _size = 0;} + HRingBuf(size_t cap) : HBuf(cap) {_head = _tail = _size = 0;} + virtual ~HRingBuf() {} + + char* alloc(size_t len) { + char* ret = NULL; + if (_head < _tail || _size == 0) { + // [_tail, this->len) && [0, _head) + if (this->len - _tail >= len) { + ret = base + _tail; + _tail += len; + if (_tail == this->len) _tail = 0; + } + else if (_head >= len) { + ret = base; + _tail = len; + } + } + else { + // [_tail, _head) + if (_head - _tail >= len) { + ret = base + _tail; + _tail += len; + } + } + _size += ret ? len : 0; + return ret; + } + + void free(size_t len) { + _size -= len; + if (len <= this->len - _head) { + _head += len; + if (_head == this->len) _head = 0; + } + else { + _head = len; + } + } + + void clear() {_head = _tail = _size = 0;} + + size_t size() {return _size;} + +private: + size_t _head; + size_t _tail; + size_t _size; +}; +#endif + +#endif // HV_BUF_H_ diff --git a/3rdPartner/libhv/base/hdef.h b/3rdPartner/libhv/base/hdef.h new file mode 100644 index 0000000..0f79c75 --- /dev/null +++ b/3rdPartner/libhv/base/hdef.h @@ -0,0 +1,271 @@ +#ifndef HV_DEF_H_ +#define HV_DEF_H_ + +#include "hplatform.h" + +#ifndef ABS +#define ABS(n) ((n) > 0 ? (n) : -(n)) +#endif + +#ifndef NABS +#define NABS(n) ((n) < 0 ? (n) : -(n)) +#endif + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) +#endif + +#ifndef BITSET +#define BITSET(p, n) (*(p) |= (1u << (n))) +#endif + +#ifndef BITCLR +#define BITCLR(p, n) (*(p) &= ~(1u << (n))) +#endif + +#ifndef BITGET +#define BITGET(i, n) ((i) & (1u << (n))) +#endif + +/* +#ifndef CR +#define CR '\r' +#endif + +#ifndef LF +#define LF '\n' +#endif + +#ifndef CRLF +#define CRLF "\r\n" +#endif +*/ + +#define FLOAT_PRECISION 1e-6 +#define FLOAT_EQUAL_ZERO(f) (ABS(f) < FLOAT_PRECISION) + +#ifndef INFINITE +#define INFINITE (uint32_t)-1 +#endif + +/* +ASCII: +[0, 0x20) control-charaters +[0x20, 0x7F) printable-charaters + +0x0A => LF +0x0D => CR +0x20 => SPACE +0x7F => DEL + +[0x09, 0x0D] => \t\n\v\f\r +[0x30, 0x39] => 0~9 +[0x41, 0x5A] => A~Z +[0x61, 0x7A] => a~z +*/ + +#ifndef IS_ALPHA +#define IS_ALPHA(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) +#endif + +// NOTE: IS_NUM conflicts with mysql.h +#ifndef IS_DIGIT +#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9') +#endif + +#ifndef IS_ALPHANUM +#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_DIGIT(c)) +#endif + +#ifndef IS_CNTRL +#define IS_CNTRL(c) ((c) >= 0 && (c) < 0x20) +#endif + +#ifndef IS_GRAPH +#define IS_GRAPH(c) ((c) >= 0x20 && (c) < 0x7F) +#endif + +#ifndef IS_HEX +#define IS_HEX(c) (IS_DIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +#endif + +#ifndef IS_LOWER +#define IS_LOWER(c) (((c) >= 'a' && (c) <= 'z')) +#endif + +#ifndef IS_UPPER +#define IS_UPPER(c) (((c) >= 'A' && (c) <= 'Z')) +#endif + +#ifndef LOWER +#define LOWER(c) ((c) | 0x20) +#endif + +#ifndef UPPER +#define UPPER(c) ((c) & ~0x20) +#endif + +// LD, LU, LLD, LLU for explicit conversion of integer +// #ifndef LD +// #define LD(v) ((long)(v)) +// #endif + +// #ifndef LU +// #define LU(v) ((unsigned long)(v)) +// #endif + +#ifndef LLD +#define LLD(v) ((long long)(v)) +#endif + +#ifndef LLU +#define LLU(v) ((unsigned long long)(v)) +#endif + +#ifndef _WIN32 + +// MAKEWORD, HIBYTE, LOBYTE +#ifndef MAKEWORD +#define MAKEWORD(h, l) ( (((WORD)h) << 8) | (l & 0xff) ) +#endif + +#ifndef HIBYTE +#define HIBYTE(w) ( (BYTE)(((WORD)w) >> 8) ) +#endif + +#ifndef LOBYTE +#define LOBYTE(w) ( (BYTE)(w & 0xff) ) +#endif + +// MAKELONG, HIWORD, LOWORD +#ifndef MAKELONG +#define MAKELONG(h, l) ( ((int32_t)h) << 16 | (l & 0xffff) ) +#endif + +#ifndef HIWORD +#define HIWORD(n) ( (WORD)(((int32_t)n) >> 16) ) +#endif + +#ifndef LOWORD +#define LOWORD(n) ( (WORD)(n & 0xffff) ) +#endif + +#endif // _WIN32 + +// MAKEINT64, HIINT, LOINT +#ifndef MAKEINT64 +#define MAKEINT64(h, l) ( ((int64_t)h) << 32 | (l & 0xffffffff) ) +#endif + +#ifndef HIINT +#define HIINT(n) ( (int32_t)(((int64_t)n) >> 32) ) +#endif + +#ifndef LOINT +#define LOINT(n) ( (int32_t)(n & 0xffffffff) ) +#endif + +#ifndef MAKE_FOURCC +#define MAKE_FOURCC(a, b, c, d) \ +( ((uint32)d) | ( ((uint32)c) << 8 ) | ( ((uint32)b) << 16 ) | ( ((uint32)a) << 24 ) ) +#endif + +#ifndef MAX +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif + +#ifndef MIN +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef LIMIT +#define LIMIT(lower, v, upper) ((v) < (lower) ? (lower) : (v) > (upper) ? (upper) : (v)) +#endif + +#ifndef MAX_PATH +#define MAX_PATH 260 +#endif + +#ifndef NULL +#ifdef __cplusplus + #define NULL 0 +#else + #define NULL ((void*)0) +#endif +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef SAFE_ALLOC +#define SAFE_ALLOC(p, size)\ + do {\ + void* ptr = malloc(size);\ + if (!ptr) {\ + fprintf(stderr, "malloc failed!\n");\ + exit(-1);\ + }\ + memset(ptr, 0, size);\ + *(void**)&(p) = ptr;\ + } while(0) +#endif + +#ifndef SAFE_FREE +#define SAFE_FREE(p) do {if (p) {free(p); (p) = NULL;}} while(0) +#endif + +#ifndef SAFE_DELETE +#define SAFE_DELETE(p) do {if (p) {delete (p); (p) = NULL;}} while(0) +#endif + +#ifndef SAFE_DELETE_ARRAY +#define SAFE_DELETE_ARRAY(p) do {if (p) {delete[] (p); (p) = NULL;}} while(0) +#endif + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(p) do {if (p) {(p)->release(); (p) = NULL;}} while(0) +#endif + +#ifndef SAFE_CLOSE +#define SAFE_CLOSE(fd) do {if ((fd) >= 0) {close(fd); (fd) = -1;}} while(0) +#endif + +#define STRINGIFY(x) STRINGIFY_HELPER(x) +#define STRINGIFY_HELPER(x) #x + +#define STRINGCAT(x, y) STRINGCAT_HELPER(x, y) +#define STRINGCAT_HELPER(x, y) x##y + +#ifndef offsetof +#define offsetof(type, member) \ +((size_t)(&((type*)0)->member)) +#endif + +#ifndef offsetofend +#define offsetofend(type, member) \ +(offsetof(type, member) + sizeof(((type*)0)->member)) +#endif + +#ifndef container_of +#define container_of(ptr, type, member) \ +((type*)((char*)(ptr) - offsetof(type, member))) +#endif + +#ifdef PRINT_DEBUG +#define printd(...) printf(__VA_ARGS__) +#else +#define printd(...) +#endif + +#ifdef PRINT_ERROR +#define printe(...) fprintf(stderr, __VA_ARGS__) +#else +#define printe(...) +#endif + +#endif // HV_DEF_H_ diff --git a/3rdPartner/libhv/base/heap.h b/3rdPartner/libhv/base/heap.h new file mode 100644 index 0000000..a0c5b56 --- /dev/null +++ b/3rdPartner/libhv/base/heap.h @@ -0,0 +1,172 @@ +#ifndef HV_HEAP_H_ +#define HV_HEAP_H_ + +#include // for assert +#include // for NULL + +struct heap_node { + struct heap_node* parent; + struct heap_node* left; + struct heap_node* right; +}; + +typedef int (*heap_compare_fn)(const struct heap_node* lhs, const struct heap_node* rhs); +struct heap { + struct heap_node* root; + int nelts; + // if compare is less_than, root is min of heap + // if compare is larger_than, root is max of heap + heap_compare_fn compare; +}; + +static inline void heap_init(struct heap* heap, heap_compare_fn fn) { + heap->root = NULL; + heap->nelts = 0; + heap->compare = fn; +} + +// replace s with r +static inline void heap_replace(struct heap* heap, struct heap_node* s, struct heap_node* r) { + // s->parent->child, s->left->parent, s->right->parent + if (s->parent == NULL) heap->root = r; + else if (s->parent->left == s) s->parent->left = r; + else if (s->parent->right == s) s->parent->right = r; + + if (s->left) s->left->parent = r; + if (s->right) s->right->parent = r; + if (r) { + //*r = *s; + r->parent = s->parent; + r->left = s->left; + r->right = s->right; + } +} + +static inline void heap_swap(struct heap* heap, struct heap_node* parent, struct heap_node* child) { + assert(child->parent == parent && (parent->left == child || parent->right == child)); + struct heap_node* pparent = parent->parent; + struct heap_node* lchild = child->left; + struct heap_node* rchild = child->right; + struct heap_node* sibling = NULL; + + if (pparent == NULL) heap->root = child; + else if (pparent->left == parent) pparent->left = child; + else if (pparent->right == parent) pparent->right = child; + + if (lchild) lchild->parent = parent; + if (rchild) rchild->parent = parent; + + child->parent = pparent; + if (parent->left == child) { + sibling = parent->right; + child->left = parent; + child->right = sibling; + } else { + sibling = parent->left; + child->left = sibling; + child->right = parent; + } + if (sibling) sibling->parent = child; + + parent->parent = child; + parent->left = lchild; + parent->right = rchild; +} + +static inline void heap_insert(struct heap* heap, struct heap_node* node) { + // get last => insert node => sift up + // 0: left, 1: right + int path = 0; + int n,d; + ++heap->nelts; + // traverse from bottom to up, get path of last node + for (d = 0, n = heap->nelts; n >= 2; ++d, n>>=1) { + path = (path << 1) | (n & 1); + } + + // get last->parent by path + struct heap_node* parent = heap->root; + while(d > 1) { + parent = (path & 1) ? parent->right : parent->left; + --d; + path >>= 1; + } + + // insert node + node->parent = parent; + if (parent == NULL) heap->root = node; + else if (path & 1) parent->right = node; + else parent->left = node; + + // sift up + if (heap->compare) { + while (node->parent && heap->compare(node, node->parent)) { + heap_swap(heap, node->parent, node); + } + } +} + +static inline void heap_remove(struct heap* heap, struct heap_node* node) { + if (heap->nelts == 0) return; + // get last => replace node with last => sift down and sift up + // 0: left, 1: right + int path = 0; + int n,d; + // traverse from bottom to up, get path of last node + for (d = 0, n = heap->nelts; n >= 2; ++d, n>>=1) { + path = (path << 1) | (n & 1); + } + --heap->nelts; + + // get last->parent by path + struct heap_node* parent = heap->root; + while(d > 1) { + parent = (path & 1) ? parent->right : parent->left; + --d; + path >>= 1; + } + + // replace node with last + struct heap_node* last = NULL; + if (parent == NULL) { + return; + } + else if (path & 1) { + last = parent->right; + parent->right = NULL; + } + else { + last = parent->left; + parent->left = NULL; + } + if (last == NULL) { + if (heap->root == node) { + heap->root = NULL; + } + return; + } + heap_replace(heap, node, last); + node->parent = node->left = node->right = NULL; + + if (!heap->compare) return; + struct heap_node* v = last; + struct heap_node* est = NULL; + // sift down + while (1) { + est = v; + if (v->left) est = heap->compare(est, v->left) ? est : v->left; + if (v->right) est = heap->compare(est, v->right) ? est : v->right; + if (est == v) break; + heap_swap(heap, v, est); + } + // sift up + while (v->parent && heap->compare(v, v->parent)) { + heap_swap(heap, v->parent, v); + } +} + +static inline void heap_dequeue(struct heap* heap) { + heap_remove(heap, heap->root); +} + +#endif // HV_HEAP_H_ diff --git a/3rdPartner/libhv/base/hendian.h b/3rdPartner/libhv/base/hendian.h new file mode 100644 index 0000000..573af6c --- /dev/null +++ b/3rdPartner/libhv/base/hendian.h @@ -0,0 +1,244 @@ +#ifndef HV_ENDIAN_H_ +#define HV_ENDIAN_H_ + +#include "hplatform.h" +#if defined(OS_MAC) +#include +#define htobe16(v) OSSwapHostToBigInt16(v) +#define htobe32(v) OSSwapHostToBigInt32(v) +#define htobe64(v) OSSwapHostToBigInt64(v) +#define be16toh(v) OSSwapBigToHostInt16(v) +#define be32toh(v) OSSwapBigToHostInt32(v) +#define be64toh(v) OSSwapBigToHostInt64(v) + +#define htole16(v) OSSwapHostToLittleInt16(v) +#define htole32(v) OSSwapHostToLittleInt32(v) +#define htole64(v) OSSwapHostToLittleInt64(v) +#define le16toh(v) OSSwapLittleToHostInt16(v) +#define le32toh(v) OSSwapLittleToHostInt32(v) +#define le64toh(v) OSSwapLittleToHostInt64(v) +#elif defined(OS_WIN) + +#if _WIN32_WINNT < _WIN32_WINNT_WIN8 + /* + * Byte order conversion functions for 64-bit integers and 32 + 64 bit + * floating-point numbers. IEEE big-endian format is used for the + * network floating point format. + */ + #define _WS2_32_WINSOCK_SWAP_LONG(l) \ + ( ( ((l) >> 24) & 0x000000FFL ) | \ + ( ((l) >> 8) & 0x0000FF00L ) | \ + ( ((l) << 8) & 0x00FF0000L ) | \ + ( ((l) << 24) & 0xFF000000L ) ) + + #define _WS2_32_WINSOCK_SWAP_LONGLONG(l) \ + ( ( ((l) >> 56) & 0x00000000000000FFLL ) | \ + ( ((l) >> 40) & 0x000000000000FF00LL ) | \ + ( ((l) >> 24) & 0x0000000000FF0000LL ) | \ + ( ((l) >> 8) & 0x00000000FF000000LL ) | \ + ( ((l) << 8) & 0x000000FF00000000LL ) | \ + ( ((l) << 24) & 0x0000FF0000000000LL ) | \ + ( ((l) << 40) & 0x00FF000000000000LL ) | \ + ( ((l) << 56) & 0xFF00000000000000LL ) ) + + + #ifndef htonll + __inline unsigned __int64 htonll ( unsigned __int64 Value ) + { + const unsigned __int64 Retval = _WS2_32_WINSOCK_SWAP_LONGLONG (Value); + return Retval; + } + #endif /* htonll */ + + #ifndef ntohll + __inline unsigned __int64 ntohll ( unsigned __int64 Value ) + { + const unsigned __int64 Retval = _WS2_32_WINSOCK_SWAP_LONGLONG (Value); + return Retval; + } + #endif /* ntohll */ + + #ifndef htonf + __inline unsigned __int32 htonf ( float Value ) + { + unsigned __int32 Tempval; + unsigned __int32 Retval; + Tempval = *(unsigned __int32*)(&Value); + Retval = _WS2_32_WINSOCK_SWAP_LONG (Tempval); + return Retval; + } + #endif /* htonf */ + + #ifndef ntohf + __inline float ntohf ( unsigned __int32 Value ) + { + const unsigned __int32 Tempval = _WS2_32_WINSOCK_SWAP_LONG (Value); + float Retval; + *((unsigned __int32*)&Retval) = Tempval; + return Retval; + } + #endif /* ntohf */ + + #ifndef htond + __inline unsigned __int64 htond ( double Value ) + { + unsigned __int64 Tempval; + unsigned __int64 Retval; + Tempval = *(unsigned __int64*)(&Value); + Retval = _WS2_32_WINSOCK_SWAP_LONGLONG (Tempval); + return Retval; + } + #endif /* htond */ + + #ifndef ntohd + __inline double ntohd ( unsigned __int64 Value ) + { + const unsigned __int64 Tempval = _WS2_32_WINSOCK_SWAP_LONGLONG (Value); + double Retval; + *((unsigned __int64*)&Retval) = Tempval; + return Retval; + } + #endif /* ntohd */ +#endif + +#define htobe16(v) htons(v) +#define htobe32(v) htonl(v) +#define htobe64(v) htonll(v) +#define be16toh(v) ntohs(v) +#define be32toh(v) ntohl(v) +#define be64toh(v) ntohll(v) + +#if (BYTE_ORDER == LITTLE_ENDIAN) +#define htole16(v) (v) +#define htole32(v) (v) +#define htole64(v) (v) +#define le16toh(v) (v) +#define le32toh(v) (v) +#define le64toh(v) (v) +#elif (BYTE_ORDER == BIG_ENDIAN) +#define htole16(v) __builtin_bswap16(v) +#define htole32(v) __builtin_bswap32(v) +#define htole64(v) __builtin_bswap64(v) +#define le16toh(v) __builtin_bswap16(v) +#define le32toh(v) __builtin_bswap32(v) +#define le64toh(v) __builtin_bswap64(v) +#endif +#elif HAVE_ENDIAN_H +#include +#elif HAVE_SYS_ENDIAN_H +#include +#else +#warning "Not found endian.h!" +#endif + +#define PI8(p) *(int8_t*)(p) +#define PI16(p) *(int16_t*)(p) +#define PI32(p) *(int32_t*)(p) +#define PI64(p) *(int64_t*)(p) + +#define PU8(p) *(uint8_t*)(p) +#define PU16(p) *(uint16_t*)(p) +#define PU32(p) *(uint32_t*)(p) +#define PU64(p) *(uint64_t*)(p) + +#define PF32(p) *(float*)(p) +#define PF64(p) *(double*)(p) + +#define GET_BE16(p) be16toh(PU16(p)) +#define GET_BE32(p) be32toh(PU32(p)) +#define GET_BE64(p) be64toh(PU64(p)) + +#define GET_LE16(p) le16toh(PU16(p)) +#define GET_LE32(p) le32toh(PU32(p)) +#define GET_LE64(p) le64toh(PU64(p)) + +#define PUT_BE16(p, v) PU16(p) = htobe16(v) +#define PUT_BE32(p, v) PU32(p) = htobe32(v) +#define PUT_BE64(p, v) PU64(p) = htobe64(v) + +#define PUT_LE16(p, v) PU16(p) = htole16(v) +#define PUT_LE32(p, v) PU32(p) = htole32(v) +#define PUT_LE64(p, v) PU64(p) = htole64(v) + +// NOTE: uint8_t* p = (uint8_t*)buf; +#define POP_BE8(p, v) v = *p; ++p +#define POP_BE16(p, v) v = be16toh(PU16(p)); p += 2 +#define POP_BE32(p, v) v = be32toh(PU32(p)); p += 4 +#define POP_BE64(p, v) v = be64toh(PU64(p)); p += 8 + +#define POP_LE8(p, v) v= *p; ++p +#define POP_LE16(p, v) v = le16toh(PU16(p)); p += 2 +#define POP_LE32(p, v) v = le32toh(PU32(p)); p += 4 +#define POP_LE64(p, v) v = le64toh(PU64(p)); p += 8 + +#define PUSH_BE8(p, v) *p = v; ++p +#define PUSH_BE16(p, v) PU16(p) = htobe16(v); p += 2 +#define PUSH_BE32(p, v) PU32(p) = htobe32(v); p += 4 +#define PUSH_BE64(p, v) PU64(p) = htobe64(v); p += 8 + +#define PUSH_LE8(p, v) *p = v; ++p +#define PUSH_LE16(p, v) PU16(p) = htole16(v); p += 2 +#define PUSH_LE32(p, v) PU32(p) = htole32(v); p += 4 +#define PUSH_LE64(p, v) PU64(p) = htole64(v); p += 8 + +// NOTE: NET_ENDIAN = BIG_ENDIAN +#define POP8(p, v) POP_BE8(p, v) +#define POP16(p, v) POP_BE16(p, v) +#define POP32(p, v) POP_BE32(p, v) +#define POP64(p, v) POP_BE64(p, v) +#define POP_N(p, v, n) memcpy(v, p, n); p += n + +#define PUSH8(p, v) PUSH_BE8(p, v) +#define PUSH16(p, v) PUSH_BE16(p, v) +#define PUSH32(p, v) PUSH_BE32(p, v) +#define PUSH64(p, v) PUSH_BE64(p, v) +#define PUSH_N(p, v, n) memcpy(p, v, n); p += n + +static inline int detect_endian() { + union { + char c; + short s; + } u; + u.s = 0x1122; + return u.c ==0x11 ? BIG_ENDIAN : LITTLE_ENDIAN; +} + +#ifdef __cplusplus +template +uint8_t* serialize(uint8_t* buf, T value, int host_endian = LITTLE_ENDIAN, int buf_endian = BIG_ENDIAN) { + size_t size = sizeof(T); + uint8_t* pDst = buf; + uint8_t* pSrc = (uint8_t*)&value; + + if (host_endian == buf_endian) { + memcpy(pDst, pSrc, size); + } + else { + for (int i = 0; i < size; ++i) { + pDst[i] = pSrc[size-i-1]; + } + } + + return buf+size; +} + +template +uint8_t* deserialize(uint8_t* buf, T* value, int host_endian = LITTLE_ENDIAN, int buf_endian = BIG_ENDIAN) { + size_t size = sizeof(T); + uint8_t* pSrc = buf; + uint8_t* pDst = (uint8_t*)value; + + if (host_endian == buf_endian) { + memcpy(pDst, pSrc, size); + } + else { + for (int i = 0; i < size; ++i) { + pDst[i] = pSrc[size-i-1]; + } + } + + return buf+size; +} +#endif // __cplusplus + +#endif // HV_ENDIAN_H_ diff --git a/3rdPartner/libhv/base/herr.c b/3rdPartner/libhv/base/herr.c new file mode 100644 index 0000000..d3adf16 --- /dev/null +++ b/3rdPartner/libhv/base/herr.c @@ -0,0 +1,19 @@ +#include "herr.h" + +#include // for strerror + +// errcode => errmsg +const char* hv_strerror(int err) { + if (err > 0 && err <= SYS_NERR) { + return strerror(err); + } + + switch (err) { +#define F(errcode, name, errmsg) \ + case errcode: return errmsg; + FOREACH_ERR(F) +#undef F + default: + return "Undefined error"; + } +} diff --git a/3rdPartner/libhv/base/herr.h b/3rdPartner/libhv/base/herr.h new file mode 100644 index 0000000..adb6d07 --- /dev/null +++ b/3rdPartner/libhv/base/herr.h @@ -0,0 +1,122 @@ +#ifndef HV_ERR_H_ +#define HV_ERR_H_ + +#include + +#include "hexport.h" + +#ifndef SYS_NERR +#define SYS_NERR 133 +#endif + +// F(errcode, name, errmsg) +// [1, 133] +#define FOREACH_ERR_SYS(F) + +// [1xx~5xx] +#define FOREACH_ERR_STATUS(F) + +// [1xxx] +#define FOREACH_ERR_COMMON(F) \ + F(0, OK, "OK") \ + F(1000, UNKNOWN, "Unknown error") \ + \ + F(1001, NULL_PARAM, "Null parameter") \ + F(1002, NULL_POINTER, "Null pointer") \ + F(1003, NULL_DATA, "Null data") \ + F(1004, NULL_HANDLE, "Null handle") \ + \ + F(1011, INVALID_PARAM, "Invalid parameter")\ + F(1012, INVALID_POINTER, "Invalid pointer") \ + F(1013, INVALID_DATA, "Invalid data") \ + F(1014, INVALID_HANDLE, "Invalid handle") \ + F(1015, INVALID_JSON, "Invalid json") \ + F(1016, INVALID_XML, "Invalid xml") \ + F(1017, INVALID_FMT, "Invalid format") \ + F(1018, INVALID_PROTOCOL, "Invalid protocol") \ + F(1019, INVALID_PACKAGE, "Invalid package") \ + \ + F(1021, OUT_OF_RANGE, "Out of range") \ + F(1022, OVER_LIMIT, "Over the limit") \ + F(1023, MISMATCH, "Mismatch") \ + F(1024, PARSE, "Parse failed") \ + \ + F(1030, OPEN_FILE, "Open file failed") \ + F(1031, SAVE_FILE, "Save file failed") \ + F(1032, READ_FILE, "Read file failed") \ + F(1033, WRITE_FILE, "Write file failed")\ + \ + F(1040, SSL, "SSL/TLS error") \ + F(1041, NEW_SSL_CTX, "New SSL_CTX failed") \ + F(1042, NEW_SSL, "New SSL failed") \ + F(1043, SSL_HANDSHAKE, "SSL handshake failed") \ + \ + F(1100, TASK_TIMEOUT, "Task timeout") \ + F(1101, TASK_QUEUE_FULL, "Task queue full") \ + F(1102, TASK_QUEUE_EMPTY, "Task queue empty") \ + \ + F(1400, REQUEST, "Bad request") \ + F(1401, RESPONSE, "Bad response") \ + +// [-1xxx] +#define FOREACH_ERR_FUNC(F) \ + F(-1001, MALLOC, "malloc() error") \ + F(-1002, REALLOC, "realloc() error") \ + F(-1003, CALLOC, "calloc() error") \ + F(-1004, FREE, "free() error") \ + \ + F(-1011, SOCKET, "socket() error") \ + F(-1012, BIND, "bind() error") \ + F(-1013, LISTEN, "listen() error") \ + F(-1014, ACCEPT, "accept() error") \ + F(-1015, CONNECT, "connect() error") \ + F(-1016, RECV, "recv() error") \ + F(-1017, SEND, "send() error") \ + F(-1018, RECVFROM, "recvfrom() error") \ + F(-1019, SENDTO, "sendto() error") \ + F(-1020, SETSOCKOPT, "setsockopt() error") \ + F(-1021, GETSOCKOPT, "getsockopt() error") \ + +// grpc [4xxx] +#define FOREACH_ERR_GRPC(F) \ + F(4000, GRPC_FIRST, "grpc no error") \ + F(4001, GRPC_STATUS_CANCELLED, "grpc status: cancelled") \ + F(4002, GRPC_STATUS_UNKNOWN, "grpc unknown error") \ + F(4003, GRPC_STATUS_INVALID_ARGUMENT, "grpc status: invalid argument")\ + F(4004, GRPC_STATUS_DEADLINE, "grpc status: deadline") \ + F(4005, GRPC_STATUS_NOT_FOUND, "grpc status: not found") \ + F(4006, GRPC_STATUS_ALREADY_EXISTS, "grpc status: already exists") \ + F(4007, GRPC_STATUS_PERMISSION_DENIED, "grpc status: permission denied") \ + F(4008, GRPC_STATUS_RESOURCE_EXHAUSTED, "grpc status: resource exhausted") \ + F(4009, GRPC_STATUS_FAILED_PRECONDITION,"grpc status: failed precondition") \ + F(4010, GRPC_STATUS_ABORTED, "grpc status: aborted") \ + F(4011, GRPC_STATUS_OUT_OF_RANGE, "grpc status: out of range") \ + F(4012, GRPC_STATUS_UNIMPLEMENTED, "grpc status: unimplemented") \ + F(4013, GRPC_STATUS_INTERNAL, "grpc internal error") \ + F(4014, GRPC_STATUS_UNAVAILABLE, "grpc service unavailable") \ + F(4015, GRPC_STATUS_DATA_LOSS, "grpc status: data loss") \ + +#define FOREACH_ERR(F) \ + FOREACH_ERR_COMMON(F) \ + FOREACH_ERR_FUNC(F) \ + FOREACH_ERR_GRPC(F) \ + +#undef ERR_OK // prevent conflict +enum { +#define F(errcode, name, errmsg) ERR_##name = errcode, + FOREACH_ERR(F) +#undef F +}; + +#ifdef __cplusplus +extern "C" { +#endif + +// errcode => errmsg +HV_EXPORT const char* hv_strerror(int err); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // HV_ERR_H_ diff --git a/3rdPartner/libhv/base/hlog.c b/3rdPartner/libhv/base/hlog.c new file mode 100644 index 0000000..2992dd8 --- /dev/null +++ b/3rdPartner/libhv/base/hlog.c @@ -0,0 +1,463 @@ +#include "hlog.h" + +#include +#include +#include +#include +#include + +//#include "hmutex.h" +#ifdef _WIN32 +#pragma warning (disable: 4244) // conversion loss of data +#include +#define hmutex_t CRITICAL_SECTION +#define hmutex_init InitializeCriticalSection +#define hmutex_destroy DeleteCriticalSection +#define hmutex_lock EnterCriticalSection +#define hmutex_unlock LeaveCriticalSection +#else +#include // for gettimeofday +#include +#define hmutex_t pthread_mutex_t +#define hmutex_init(mutex) pthread_mutex_init(mutex, NULL) +#define hmutex_destroy pthread_mutex_destroy +#define hmutex_lock pthread_mutex_lock +#define hmutex_unlock pthread_mutex_unlock +#endif + +//#include "htime.h" +#define SECONDS_PER_HOUR 3600 +#define SECONDS_PER_DAY 86400 // 24*3600 +#define SECONDS_PER_WEEK 604800 // 7*24*3600; + +static int s_gmtoff = 28800; // 8*3600 + +struct logger_s { + logger_handler handler; + unsigned int bufsize; + char* buf; + + int level; + int enable_color; + char format[64]; + + // for file logger + char filepath[256]; + unsigned long long max_filesize; + int remain_days; + int enable_fsync; + FILE* fp_; + char cur_logfile[256]; + time_t last_logfile_ts; + int can_write_cnt; + + hmutex_t mutex_; // thread-safe +}; + +static void logger_init(logger_t* logger) { + logger->handler = NULL; + logger->bufsize = DEFAULT_LOG_MAX_BUFSIZE; + logger->buf = (char*)malloc(logger->bufsize); + + logger->level = DEFAULT_LOG_LEVEL; + logger->enable_color = 0; + // NOTE: format is faster 6% than snprintf + // logger->format[0] = '\0'; + strncpy(logger->format, DEFAULT_LOG_FORMAT, sizeof(logger->format) - 1); + + logger->fp_ = NULL; + logger->max_filesize = DEFAULT_LOG_MAX_FILESIZE; + logger->remain_days = DEFAULT_LOG_REMAIN_DAYS; + logger->enable_fsync = 1; + logger_set_file(logger, DEFAULT_LOG_FILE); + logger->last_logfile_ts = 0; + logger->can_write_cnt = -1; + hmutex_init(&logger->mutex_); +} + +logger_t* logger_create() { + // init gmtoff here + time_t ts = time(NULL); + struct tm* local_tm = localtime(&ts); + int local_hour = local_tm->tm_hour; + struct tm* gmt_tm = gmtime(&ts); + int gmt_hour = gmt_tm->tm_hour; + s_gmtoff = (local_hour - gmt_hour) * SECONDS_PER_HOUR; + + logger_t* logger = (logger_t*)malloc(sizeof(logger_t)); + logger_init(logger); + return logger; +} + +void logger_destroy(logger_t* logger) { + if (logger) { + if (logger->buf) { + free(logger->buf); + logger->buf = NULL; + } + if (logger->fp_) { + fclose(logger->fp_); + logger->fp_ = NULL; + } + hmutex_destroy(&logger->mutex_); + free(logger); + } +} + +void logger_set_handler(logger_t* logger, logger_handler fn) { + logger->handler = fn; +} + +void logger_set_level(logger_t* logger, int level) { + logger->level = level; +} + +void logger_set_level_by_str(logger_t* logger, const char* szLoglevel) { + int loglevel = DEFAULT_LOG_LEVEL; + if (strcmp(szLoglevel, "VERBOSE") == 0) { + loglevel = LOG_LEVEL_VERBOSE; + } else if (strcmp(szLoglevel, "DEBUG") == 0) { + loglevel = LOG_LEVEL_DEBUG; + } else if (strcmp(szLoglevel, "INFO") == 0) { + loglevel = LOG_LEVEL_INFO; + } else if (strcmp(szLoglevel, "WARN") == 0) { + loglevel = LOG_LEVEL_WARN; + } else if (strcmp(szLoglevel, "ERROR") == 0) { + loglevel = LOG_LEVEL_ERROR; + } else if (strcmp(szLoglevel, "FATAL") == 0) { + loglevel = LOG_LEVEL_FATAL; + } else if (strcmp(szLoglevel, "SILENT") == 0) { + loglevel = LOG_LEVEL_SILENT; + } else { + loglevel = DEFAULT_LOG_LEVEL; + } + logger->level = loglevel; +} + +void logger_set_format(logger_t* logger, const char* format) { + if (format) { + strncpy(logger->format, format, sizeof(logger->format) - 1); + } else { + logger->format[0] = '\0'; + } +} + +void logger_set_remain_days(logger_t* logger, int days) { + logger->remain_days = days; +} + +void logger_set_max_bufsize(logger_t* logger, unsigned int bufsize) { + logger->bufsize = bufsize; + logger->buf = (char*)realloc(logger->buf, bufsize); +} + +void logger_enable_color(logger_t* logger, int on) { + logger->enable_color = on; +} + +void logger_set_file(logger_t* logger, const char* filepath) { + strncpy(logger->filepath, filepath, sizeof(logger->filepath) - 1); + // remove suffix .log + char* suffix = strrchr(logger->filepath, '.'); + if (suffix && strcmp(suffix, ".log") == 0) { + *suffix = '\0'; + } +} + +void logger_set_max_filesize(logger_t* logger, unsigned long long filesize) { + logger->max_filesize = filesize; +} + +void logger_set_max_filesize_by_str(logger_t* logger, const char* str) { + int num = atoi(str); + if (num <= 0) return; + // 16 16M 16MB + const char* e = str; + while (*e != '\0') ++e; + --e; + char unit; + if (*e >= '0' && *e <= '9') unit = 'M'; + else if (*e == 'B') unit = *(e-1); + else unit = *e; + unsigned long long filesize = num; + switch (unit) { + case 'K': filesize <<= 10; break; + case 'M': filesize <<= 20; break; + case 'G': filesize <<= 30; break; + default: filesize <<= 20; break; + } + logger->max_filesize = filesize; +} + +void logger_enable_fsync(logger_t* logger, int on) { + logger->enable_fsync = on; +} + +void logger_fsync(logger_t* logger) { + hmutex_lock(&logger->mutex_); + if (logger->fp_) { + fflush(logger->fp_); + } + hmutex_unlock(&logger->mutex_); +} + +const char* logger_get_cur_file(logger_t* logger) { + return logger->cur_logfile; +} + +static void logfile_name(const char* filepath, time_t ts, char* buf, int len) { + struct tm* tm = localtime(&ts); + snprintf(buf, len, "%s.%04d%02d%02d.log", + filepath, + tm->tm_year+1900, + tm->tm_mon+1, + tm->tm_mday); +} + +static FILE* logfile_shift(logger_t* logger) { + time_t ts_now = time(NULL); + int interval_days = logger->last_logfile_ts == 0 ? 0 : (ts_now+s_gmtoff) / SECONDS_PER_DAY - (logger->last_logfile_ts+s_gmtoff) / SECONDS_PER_DAY; + if (logger->fp_ == NULL || interval_days > 0) { + // close old logfile + if (logger->fp_) { + fclose(logger->fp_); + logger->fp_ = NULL; + } + else { + interval_days = 30; + } + + if (logger->remain_days >= 0) { + char rm_logfile[256] = {0}; + if (interval_days >= logger->remain_days) { + // remove [today-interval_days, today-remain_days] logfile + for (int i = interval_days; i >= logger->remain_days; --i) { + time_t ts_rm = ts_now - i * SECONDS_PER_DAY; + logfile_name(logger->filepath, ts_rm, rm_logfile, sizeof(rm_logfile)); + remove(rm_logfile); + } + } + else { + // remove today-remain_days logfile + time_t ts_rm = ts_now - logger->remain_days * SECONDS_PER_DAY; + logfile_name(logger->filepath, ts_rm, rm_logfile, sizeof(rm_logfile)); + remove(rm_logfile); + } + } + } + + // open today logfile + if (logger->fp_ == NULL) { + logfile_name(logger->filepath, ts_now, logger->cur_logfile, sizeof(logger->cur_logfile)); + logger->fp_ = fopen(logger->cur_logfile, "a"); + logger->last_logfile_ts = ts_now; + } + + // NOTE: estimate can_write_cnt to avoid frequent fseek/ftell + if (logger->fp_ && --logger->can_write_cnt < 0) { + fseek(logger->fp_, 0, SEEK_END); + long filesize = ftell(logger->fp_); + if (filesize > logger->max_filesize) { + fclose(logger->fp_); + logger->fp_ = NULL; + // ftruncate + logger->fp_ = fopen(logger->cur_logfile, "w"); + // reopen with O_APPEND for multi-processes + if (logger->fp_) { + fclose(logger->fp_); + logger->fp_ = fopen(logger->cur_logfile, "a"); + } + } + else { + logger->can_write_cnt = (logger->max_filesize - filesize) / logger->bufsize; + } + } + + return logger->fp_; +} + +static void logfile_write(logger_t* logger, const char* buf, int len) { + FILE* fp = logfile_shift(logger); + if (fp) { + fwrite(buf, 1, len, fp); + if (logger->enable_fsync) { + fflush(fp); + } + } +} + +static int i2a(int i, char* buf, int len) { + for (int l = len - 1; l >= 0; --l) { + if (i == 0) { + buf[l] = '0'; + } else { + buf[l] = i % 10 + '0'; + i /= 10; + } + } + return len; +} + +int logger_print(logger_t* logger, int level, const char* fmt, ...) { + if (level < logger->level) + return -10; + + int year,month,day,hour,min,sec,us; +#ifdef _WIN32 + SYSTEMTIME tm; + GetLocalTime(&tm); + year = tm.wYear; + month = tm.wMonth; + day = tm.wDay; + hour = tm.wHour; + min = tm.wMinute; + sec = tm.wSecond; + us = tm.wMilliseconds * 1000; +#else + struct timeval tv; + struct tm* tm = NULL; + gettimeofday(&tv, NULL); + time_t tt = tv.tv_sec; + tm = localtime(&tt); + year = tm->tm_year + 1900; + month = tm->tm_mon + 1; + day = tm->tm_mday; + hour = tm->tm_hour; + min = tm->tm_min; + sec = tm->tm_sec; + us = tv.tv_usec; +#endif + + const char* pcolor = ""; + const char* plevel = ""; +#define XXX(id, str, clr) \ + case id: plevel = str; pcolor = clr; break; + + switch (level) { + LOG_LEVEL_MAP(XXX) + } +#undef XXX + + // lock logger->buf + hmutex_lock(&logger->mutex_); + + char* buf = logger->buf; + int bufsize = logger->bufsize; + int len = 0; + + if (logger->enable_color) { + len = snprintf(buf, bufsize, "%s", pcolor); + } + + const char* p = logger->format; + if (*p) { + while (*p) { + if (*p == '%') { + switch(*++p) { + case 'y': + len += i2a(year, buf + len, 4); + break; + case 'm': + len += i2a(month, buf + len, 2); + break; + case 'd': + len += i2a(day, buf + len, 2); + break; + case 'H': + len += i2a(hour, buf + len, 2); + break; + case 'M': + len += i2a(min, buf + len, 2); + break; + case 'S': + len += i2a(sec, buf + len, 2); + break; + case 'z': + len += i2a(us/1000, buf + len, 3); + break; + case 'Z': + len += i2a(us, buf + len, 6); + break; + case 'l': + buf[len++] = *plevel; + break; + case 'L': + for (int i = 0; i < 5; ++i) { + buf[len++] = plevel[i]; + } + break; + case 's': + { + va_list ap; + va_start(ap, fmt); + len += vsnprintf(buf + len, bufsize - len, fmt, ap); + va_end(ap); + } + break; + case '%': + buf[len++] = '%'; + break; + default: break; + } + } else { + buf[len++] = *p; + } + ++p; + } + } else { + len += snprintf(buf + len, bufsize - len, "%04d-%02d-%02d %02d:%02d:%02d.%03d %s ", + year, month, day, hour, min, sec, us/1000, + plevel); + + va_list ap; + va_start(ap, fmt); + len += vsnprintf(buf + len, bufsize - len, fmt, ap); + va_end(ap); + } + + if (logger->enable_color) { + len += snprintf(buf + len, bufsize - len, "%s", CLR_CLR); + } + + if(lenhandler) { + logger->handler(level, buf, len); + } + else { + logfile_write(logger, buf, len); + } + + hmutex_unlock(&logger->mutex_); + return len; +} + +static logger_t* s_logger = NULL; +logger_t* hv_default_logger() { + if (s_logger == NULL) { + s_logger = logger_create(); + atexit(hv_destroy_default_logger); + } + return s_logger; +} +void hv_destroy_default_logger(void) { + if (s_logger) { + logger_fsync(s_logger); + logger_destroy(s_logger); + s_logger = NULL; + } +} + +void stdout_logger(int loglevel, const char* buf, int len) { + fprintf(stdout, "%.*s", len, buf); +} + +void stderr_logger(int loglevel, const char* buf, int len) { + fprintf(stderr, "%.*s", len, buf); +} + +void file_logger(int loglevel, const char* buf, int len) { + logfile_write(hv_default_logger(), buf, len); +} diff --git a/3rdPartner/libhv/base/hlog.h b/3rdPartner/libhv/base/hlog.h new file mode 100644 index 0000000..5836b90 --- /dev/null +++ b/3rdPartner/libhv/base/hlog.h @@ -0,0 +1,176 @@ +#ifndef HV_LOG_H_ +#define HV_LOG_H_ + +/* + * hlog is thread-safe + */ + +#include + +#ifdef _WIN32 +#define DIR_SEPARATOR '\\' +#define DIR_SEPARATOR_STR "\\" +#else +#define DIR_SEPARATOR '/' +#define DIR_SEPARATOR_STR "/" +#endif + +#ifndef __FILENAME__ +// #define __FILENAME__ (strrchr(__FILE__, DIR_SEPARATOR) ? strrchr(__FILE__, DIR_SEPARATOR) + 1 : __FILE__) +#define __FILENAME__ (strrchr(DIR_SEPARATOR_STR __FILE__, DIR_SEPARATOR) + 1) +#endif + +#include "hexport.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define CLR_CLR "\033[0m" /* 恢复颜色 */ +#define CLR_BLACK "\033[30m" /* 黑色字 */ +#define CLR_RED "\033[31m" /* 红色字 */ +#define CLR_GREEN "\033[32m" /* 绿色字 */ +#define CLR_YELLOW "\033[33m" /* 黄色字 */ +#define CLR_BLUE "\033[34m" /* 蓝色字 */ +#define CLR_PURPLE "\033[35m" /* 紫色字 */ +#define CLR_SKYBLUE "\033[36m" /* 天蓝字 */ +#define CLR_WHITE "\033[37m" /* 白色字 */ + +#define CLR_BLK_WHT "\033[40;37m" /* 黑底白字 */ +#define CLR_RED_WHT "\033[41;37m" /* 红底白字 */ +#define CLR_GREEN_WHT "\033[42;37m" /* 绿底白字 */ +#define CLR_YELLOW_WHT "\033[43;37m" /* 黄底白字 */ +#define CLR_BLUE_WHT "\033[44;37m" /* 蓝底白字 */ +#define CLR_PURPLE_WHT "\033[45;37m" /* 紫底白字 */ +#define CLR_SKYBLUE_WHT "\033[46;37m" /* 天蓝底白字 */ +#define CLR_WHT_BLK "\033[47;30m" /* 白底黑字 */ + +// XXX(id, str, clr) +#define LOG_LEVEL_MAP(XXX) \ + XXX(LOG_LEVEL_DEBUG, "DEBUG", CLR_WHITE) \ + XXX(LOG_LEVEL_INFO, "INFO ", CLR_GREEN) \ + XXX(LOG_LEVEL_WARN, "WARN ", CLR_YELLOW) \ + XXX(LOG_LEVEL_ERROR, "ERROR", CLR_RED) \ + XXX(LOG_LEVEL_FATAL, "FATAL", CLR_RED_WHT) + +typedef enum { + LOG_LEVEL_VERBOSE = 0, +#define XXX(id, str, clr) id, + LOG_LEVEL_MAP(XXX) +#undef XXX + LOG_LEVEL_SILENT +} log_level_e; + +#define DEFAULT_LOG_FILE "libhv" +#define DEFAULT_LOG_LEVEL LOG_LEVEL_INFO +#define DEFAULT_LOG_FORMAT "%y-%m-%d %H:%M:%S.%z %L %s" +#define DEFAULT_LOG_REMAIN_DAYS 1 +#define DEFAULT_LOG_MAX_BUFSIZE (1<<14) // 16k +#define DEFAULT_LOG_MAX_FILESIZE (1<<24) // 16M + +// logger: default file_logger +// network_logger() see event/nlog.h +typedef void (*logger_handler)(int loglevel, const char* buf, int len); + +HV_EXPORT void stdout_logger(int loglevel, const char* buf, int len); +HV_EXPORT void stderr_logger(int loglevel, const char* buf, int len); +HV_EXPORT void file_logger(int loglevel, const char* buf, int len); +// network_logger implement see event/nlog.h +// HV_EXPORT void network_logger(int loglevel, const char* buf, int len); + +typedef struct logger_s logger_t; +HV_EXPORT logger_t* logger_create(); +HV_EXPORT void logger_destroy(logger_t* logger); + +HV_EXPORT void logger_set_handler(logger_t* logger, logger_handler fn); +HV_EXPORT void logger_set_level(logger_t* logger, int level); +// level = [VERBOSE,DEBUG,INFO,WARN,ERROR,FATAL,SILENT] +HV_EXPORT void logger_set_level_by_str(logger_t* logger, const char* level); +/* + * format = "%y-%m-%d %H:%M:%S.%z %L %s" + * message = "2020-01-02 03:04:05.067 DEBUG message" + * %y year + * %m month + * %d day + * %H hour + * %M min + * %S sec + * %z ms + * %Z us + * %l First character of level + * %L All characters of level + * %s message + * %% % + */ +HV_EXPORT void logger_set_format(logger_t* logger, const char* format); +HV_EXPORT void logger_set_max_bufsize(logger_t* logger, unsigned int bufsize); +HV_EXPORT void logger_enable_color(logger_t* logger, int on); +HV_EXPORT int logger_print(logger_t* logger, int level, const char* fmt, ...); + +// below for file logger +HV_EXPORT void logger_set_file(logger_t* logger, const char* filepath); +HV_EXPORT void logger_set_max_filesize(logger_t* logger, unsigned long long filesize); +// 16, 16M, 16MB +HV_EXPORT void logger_set_max_filesize_by_str(logger_t* logger, const char* filesize); +HV_EXPORT void logger_set_remain_days(logger_t* logger, int days); +HV_EXPORT void logger_enable_fsync(logger_t* logger, int on); +HV_EXPORT void logger_fsync(logger_t* logger); +HV_EXPORT const char* logger_get_cur_file(logger_t* logger); + +// hlog: default logger instance +HV_EXPORT logger_t* hv_default_logger(); +HV_EXPORT void hv_destroy_default_logger(void); + +// macro hlog* +#define hlog hv_default_logger() +#define hlog_destory() hv_destroy_default_logger() +#define hlog_disable() logger_set_level(hlog, LOG_LEVEL_SILENT) +#define hlog_set_file(filepath) logger_set_file(hlog, filepath) +#define hlog_set_level(level) logger_set_level(hlog, level) +#define hlog_set_level_by_str(level) logger_set_level_by_str(hlog, level) +#define hlog_set_handler(fn) logger_set_handler(hlog, fn) +#define hlog_set_format(format) logger_set_format(hlog, format) +#define hlog_set_max_filesize(filesize) logger_set_max_filesize(hlog, filesize) +#define hlog_set_max_filesize_by_str(filesize) logger_set_max_filesize_by_str(hlog, filesize) +#define hlog_set_remain_days(days) logger_set_remain_days(hlog, days) +#define hlog_enable_fsync() logger_enable_fsync(hlog, 1) +#define hlog_disable_fsync() logger_enable_fsync(hlog, 0) +#define hlog_fsync() logger_fsync(hlog) +#define hlog_get_cur_file() logger_get_cur_file(hlog) + +#define hlogd(fmt, ...) logger_print(hlog, LOG_LEVEL_DEBUG, fmt " [%s:%d:%s]", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogi(fmt, ...) logger_print(hlog, LOG_LEVEL_INFO, fmt " [%s:%d:%s]", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogw(fmt, ...) logger_print(hlog, LOG_LEVEL_WARN, fmt " [%s:%d:%s]", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hloge(fmt, ...) logger_print(hlog, LOG_LEVEL_ERROR, fmt " [%s:%d:%s]", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogf(fmt, ...) logger_print(hlog, LOG_LEVEL_FATAL, fmt " [%s:%d:%s]", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) + +// below for android +#if defined(ANDROID) || defined(__ANDROID__) +#include +#define LOG_TAG "JNI" +#undef hlogd +#undef hlogi +#undef hlogw +#undef hloge +#undef hlogf +#define hlogd(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) +#define hlogi(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) +#define hlogw(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__) +#define hloge(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) +#define hlogf(...) __android_log_print(ANDROID_LOG_FATAL, LOG_TAG, __VA_ARGS__) +#endif + +// macro alias +#if !defined(LOGD) && !defined(LOGI) && !defined(LOGW) && !defined(LOGE) && !defined(LOGF) +#define LOGD hlogd +#define LOGI hlogi +#define LOGW hlogw +#define LOGE hloge +#define LOGF hlogf +#endif + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // HV_LOG_H_ diff --git a/3rdPartner/libhv/base/hmain.c b/3rdPartner/libhv/base/hmain.c new file mode 100644 index 0000000..41398a5 --- /dev/null +++ b/3rdPartner/libhv/base/hmain.c @@ -0,0 +1,674 @@ +#include "hmain.h" + +#include "hbase.h" +#include "hlog.h" +#include "herr.h" +#include "htime.h" +#include "hthread.h" + +#ifdef OS_DARWIN +#include +#define environ (*_NSGetEnviron()) +#endif + +main_ctx_t g_main_ctx; + +static void init_arg_kv(int maxsize) { + g_main_ctx.arg_kv_size = 0; + SAFE_ALLOC(g_main_ctx.arg_kv, sizeof(char*) * maxsize); +} + +static void save_arg_kv(const char* key, int key_len, const char* val, int val_len) { + if (key_len <= 0) key_len = strlen(key); + if (val_len <= 0) val_len = strlen(val); + char* arg = NULL; + SAFE_ALLOC(arg, key_len + val_len + 2); + memcpy(arg, key, key_len); + arg[key_len] = '='; + memcpy(arg + key_len + 1, val, val_len); + // printf("save_arg_kv: %s\n", arg); + g_main_ctx.arg_kv[g_main_ctx.arg_kv_size++] = arg; +} + +static void init_arg_list(int maxsize) { + g_main_ctx.arg_list_size = 0; + SAFE_ALLOC(g_main_ctx.arg_list, sizeof(char*) * maxsize); +} + +static void save_arg_list(const char* arg) { + // printf("save_arg_list: %s\n", arg); + g_main_ctx.arg_list[g_main_ctx.arg_list_size++] = strdup(arg); +} + +static const char* get_val(char** kvs, const char* key) { + if (kvs == NULL) return NULL; + int key_len = strlen(key); + char* kv = NULL; + int kv_len = 0; + for (int i = 0; kvs[i]; ++i) { + kv = kvs[i]; + kv_len = strlen(kv); + if (kv_len <= key_len) continue; + // key=val + if (memcmp(kv, key, key_len) == 0 && kv[key_len] == '=') { + return kv + key_len + 1; + } + } + return NULL; +} + +const char* get_arg(const char* key) { + return get_val(g_main_ctx.arg_kv, key); +} + +const char* get_env(const char* key) { + return get_val(g_main_ctx.save_envp, key); +} + +int main_ctx_init(int argc, char** argv) { + if (argc == 0 || argv == NULL) { + argc = 1; + SAFE_ALLOC(argv, 2 * sizeof(char*)); + SAFE_ALLOC(argv[0], MAX_PATH); + get_executable_path(argv[0], MAX_PATH); + } + + get_run_dir(g_main_ctx.run_dir, sizeof(g_main_ctx.run_dir)); + //printf("run_dir=%s\n", g_main_ctx.run_dir); + strncpy(g_main_ctx.program_name, hv_basename(argv[0]), sizeof(g_main_ctx.program_name)); +#ifdef OS_WIN + if (strcmp(g_main_ctx.program_name+strlen(g_main_ctx.program_name)-4, ".exe") == 0) { + *(g_main_ctx.program_name+strlen(g_main_ctx.program_name)-4) = '\0'; + } +#endif + //printf("program_name=%s\n", g_main_ctx.program_name); + char logdir[MAX_PATH] = {0}; + snprintf(logdir, sizeof(logdir), "%s/logs", g_main_ctx.run_dir); + hv_mkdir(logdir); + snprintf(g_main_ctx.confile, sizeof(g_main_ctx.confile), "%s/etc/%s.conf", g_main_ctx.run_dir, g_main_ctx.program_name); + snprintf(g_main_ctx.pidfile, sizeof(g_main_ctx.pidfile), "%s/logs/%s.pid", g_main_ctx.run_dir, g_main_ctx.program_name); + snprintf(g_main_ctx.logfile, sizeof(g_main_ctx.logfile), "%s/logs/%s.log", g_main_ctx.run_dir, g_main_ctx.program_name); + hlog_set_file(g_main_ctx.logfile); + + g_main_ctx.pid = getpid(); + g_main_ctx.oldpid = getpid_from_pidfile(); +#ifdef OS_UNIX + if (kill(g_main_ctx.oldpid, 0) == -1 && errno == ESRCH) { + g_main_ctx.oldpid = -1; + } +#else + HANDLE hproc = OpenProcess(PROCESS_TERMINATE, FALSE, g_main_ctx.oldpid); + if (hproc == NULL) { + g_main_ctx.oldpid = -1; + } + else { + CloseHandle(hproc); + } +#endif + + // save arg + int i = 0; + g_main_ctx.os_argv = argv; + g_main_ctx.argc = 0; + g_main_ctx.arg_len = 0; + for (i = 0; argv[i]; ++i) { + g_main_ctx.arg_len += strlen(argv[i]) + 1; + } + g_main_ctx.argc = i; + char* argp = NULL; + SAFE_ALLOC(argp, g_main_ctx.arg_len); + SAFE_ALLOC(g_main_ctx.save_argv, (g_main_ctx.argc + 1) * sizeof(char*)); + char* cmdline = NULL; + SAFE_ALLOC(cmdline, g_main_ctx.arg_len); + g_main_ctx.cmdline = cmdline; + for (i = 0; argv[i]; ++i) { + strcpy(argp, argv[i]); + g_main_ctx.save_argv[i] = argp; + argp += strlen(argv[i]) + 1; + + strcpy(cmdline, argv[i]); + cmdline += strlen(argv[i]); + *cmdline = ' '; + ++cmdline; + } + g_main_ctx.save_argv[g_main_ctx.argc] = NULL; + g_main_ctx.cmdline[g_main_ctx.arg_len-1] = '\0'; + +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_DARWIN) + // save env + g_main_ctx.os_envp = environ; + g_main_ctx.envc = 0; + g_main_ctx.env_len = 0; + for (i = 0; environ[i]; ++i) { + g_main_ctx.env_len += strlen(environ[i]) + 1; + } + g_main_ctx.envc = i; + char* envp = NULL; + SAFE_ALLOC(envp, g_main_ctx.env_len); + SAFE_ALLOC(g_main_ctx.save_envp, (g_main_ctx.envc + 1) * sizeof(char*)); + for (i = 0; environ[i]; ++i) { + g_main_ctx.save_envp[i] = envp; + strcpy(g_main_ctx.save_envp[i], environ[i]); + envp += strlen(environ[i]) + 1; + } + g_main_ctx.save_envp[g_main_ctx.envc] = NULL; +#endif + + // signals + g_main_ctx.reload_fn = NULL; + g_main_ctx.reload_userdata = NULL; + + // master workers + g_main_ctx.worker_processes = 0; + g_main_ctx.worker_threads = 0; + g_main_ctx.worker_fn = 0; + g_main_ctx.worker_userdata = 0; + g_main_ctx.proc_ctxs = NULL; + + atexit(main_ctx_free); + return 0; +} + +void main_ctx_free(void) { + if (g_main_ctx.save_argv) { + SAFE_FREE(g_main_ctx.save_argv[0]); + SAFE_FREE(g_main_ctx.save_argv); + } + SAFE_FREE(g_main_ctx.cmdline); + if (g_main_ctx.save_envp) { + SAFE_FREE(g_main_ctx.save_envp[0]); + SAFE_FREE(g_main_ctx.save_envp); + } + if (g_main_ctx.arg_kv) { + for (int i = 0; i < g_main_ctx.arg_kv_size; ++i) { + SAFE_FREE(g_main_ctx.arg_kv[i]); + } + SAFE_FREE(g_main_ctx.arg_kv); + } + if (g_main_ctx.arg_list) { + for (int i = 0; i < g_main_ctx.arg_list_size; ++i) { + SAFE_FREE(g_main_ctx.arg_list[i]); + } + SAFE_FREE(g_main_ctx.arg_list); + } +} + +#define UNDEFINED_OPTION -1 +static int get_arg_type(int short_opt, const char* options) { + if (options == NULL) return UNDEFINED_OPTION; + const char* p = options; + while (*p && *p != short_opt) ++p; + if (*p == '\0') return UNDEFINED_OPTION; + if (*(p+1) == ':') return REQUIRED_ARGUMENT; + return NO_ARGUMENT; +} + +int parse_opt(int argc, char** argv, const char* options) { + if (argc < 1) return 0; + init_arg_kv(strlen(options) + 1); + init_arg_list(argc); + + for (int i = 1; argv[i]; ++i) { + char* p = argv[i]; + if (*p != '-') { + save_arg_list(argv[i]); + continue; + } + while (*++p) { + int arg_type = get_arg_type(*p, options); + if (arg_type == UNDEFINED_OPTION) { + printf("Invalid option '%c'\n", *p); + return -20; + } else if (arg_type == NO_ARGUMENT) { + save_arg_kv(p, 1, OPTION_ENABLE, 0); + continue; + } else if (arg_type == REQUIRED_ARGUMENT) { + if (*(p+1) != '\0') { + save_arg_kv(p, 1, p+1, 0); + break; + } else if (argv[i+1] != NULL) { + save_arg_kv(p, 1, argv[++i], 0); + break; + } else { + printf("Option '%c' requires param\n", *p); + return -30; + } + } + } + } + return 0; +} + +static const option_t* get_option(const char* opt, const option_t* long_options, int size) { + if (opt == NULL || long_options == NULL) return NULL; + int len = strlen(opt); + if (len == 0) return NULL; + if (len == 1) { + for (int i = 0; i < size; ++i) { + if (long_options[i].short_opt == *opt) { + return &long_options[i]; + } + } + } else { + for (int i = 0; i < size; ++i) { + if (strcmp(long_options[i].long_opt, opt) == 0) { + return &long_options[i]; + } + } + } + + return NULL; +} + +#define MAX_OPTION 32 +// opt type +#define NOPREFIX_OPTION 0 +#define SHORT_OPTION -1 +#define LONG_OPTION -2 +int parse_opt_long(int argc, char** argv, const option_t* long_options, int size) { + if (argc < 1) return 0; + init_arg_kv(size + 1); + init_arg_list(argc); + + char opt[MAX_OPTION+1] = {0}; + for (int i = 1; argv[i]; ++i) { + char* arg = argv[i]; + int opt_type = NOPREFIX_OPTION; + // prefix + if (*arg == OPTION_PREFIX) { + ++arg; + opt_type = SHORT_OPTION; + if (*arg == OPTION_PREFIX) { + ++arg; + opt_type = LONG_OPTION; + } + } + int arg_len = strlen(arg); + // delim + char* delim = strchr(arg, OPTION_DELIM); + if (delim) { + if (delim == arg || delim == arg+arg_len-1 || delim-arg > MAX_OPTION) { + printf("Invalid option '%s'\n", argv[i]); + return -10; + } + memcpy(opt, arg, delim-arg); + opt[delim-arg] = '\0'; + } else { + if (opt_type == SHORT_OPTION) { + *opt = *arg; + opt[1] = '\0'; + } else { + strncpy(opt, arg, MAX_OPTION); + } + } + // get_option + const option_t* pOption = get_option(opt, long_options, size); + if (pOption == NULL) { + if (delim == NULL && opt_type == NOPREFIX_OPTION) { + save_arg_list(arg); + continue; + } else { + printf("Invalid option: '%s'\n", argv[i]); + return -10; + } + } + const char* value = NULL; + if (pOption->arg_type == NO_ARGUMENT) { + // -h + value = OPTION_ENABLE; + } else if (pOption->arg_type == REQUIRED_ARGUMENT) { + if (delim) { + // --port=80 + value = delim+1; + } else { + if (opt_type == SHORT_OPTION && *(arg+1) != '\0') { + // p80 + value = arg+1; + } else if (argv[i+1] != NULL) { + // --port 80 + value = argv[++i]; + } else { + printf("Option '%s' requires parament\n", opt); + return -20; + } + } + } + // preferred to use short_opt as key + if (pOption->short_opt > 0) { + save_arg_kv(&pOption->short_opt, 1, value, 0); + } else if (pOption->long_opt) { + save_arg_kv(pOption->long_opt, 0, value, 0); + } + } + return 0; +} + +#if defined(OS_UNIX) && !HAVE_SETPROCTITLE +/* + * memory layout + * argv[0]\0argv[1]\0argv[n]\0env[0]\0env[1]\0env[n]\0 + */ +void setproctitle(const char* fmt, ...) { + char buf[256] = {0}; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf) - 1, fmt, ap); + va_end(ap); + + int len = g_main_ctx.arg_len + g_main_ctx.env_len; + if (g_main_ctx.os_argv && len) { + strncpy(g_main_ctx.os_argv[0], buf, len-1); + } +} +#endif + +int create_pidfile() { + FILE* fp = fopen(g_main_ctx.pidfile, "w"); + if (fp == NULL) { + hloge("fopen('%s') error: %d", g_main_ctx.pidfile, errno); + return -1; + } + + g_main_ctx.pid = hv_getpid(); + fprintf(fp, "%d\n", (int)g_main_ctx.pid); + fclose(fp); + hlogi("create_pidfile('%s') pid=%d", g_main_ctx.pidfile, g_main_ctx.pid); + atexit(delete_pidfile); + return 0; +} + +void delete_pidfile(void) { + hlogi("delete_pidfile('%s') pid=%d", g_main_ctx.pidfile, g_main_ctx.pid); + remove(g_main_ctx.pidfile); +} + +pid_t getpid_from_pidfile() { + FILE* fp = fopen(g_main_ctx.pidfile, "r"); + if (fp == NULL) { + // hloge("fopen('%s') error: %d", g_main_ctx.pidfile, errno); + return -1; + } + int pid = -1; + fscanf(fp, "%d", &pid); + fclose(fp); + return pid; +} + +#ifdef OS_UNIX +// unix use signal +#include + +void signal_handler(int signo) { + hlogi("pid=%d recv signo=%d", getpid(), signo); + switch (signo) { + case SIGINT: + case SIGNAL_TERMINATE: + hlogi("killall processes"); + signal(SIGCHLD, SIG_IGN); + // master send SIGKILL => workers + for (int i = 0; i < g_main_ctx.worker_processes; ++i) { + if (g_main_ctx.proc_ctxs[i].pid <= 0) break; + kill(g_main_ctx.proc_ctxs[i].pid, SIGKILL); + g_main_ctx.proc_ctxs[i].pid = -1; + } + exit(0); + break; + case SIGCHLD: + { + pid_t pid = 0; + int status = 0; + while ((pid = waitpid(-1, &status, WNOHANG)) > 0) { + hlogw("proc stop/waiting, pid=%d status=%d", pid, status); + for (int i = 0; i < g_main_ctx.worker_processes; ++i) { + proc_ctx_t* ctx = g_main_ctx.proc_ctxs + i; + if (ctx->pid == pid) { + ctx->pid = -1; + // NOTE: avoid frequent crash and restart + time_t run_time = time(NULL) - ctx->start_time; + if (ctx->spawn_cnt < 3 || run_time > 3600) { + hproc_spawn(ctx); + } + else { + hloge("proc crash, pid=%d spawn_cnt=%d run_time=%us", + pid, ctx->spawn_cnt, (unsigned int)run_time); + + bool have_worker = false; + for (int i = 0; i < g_main_ctx.worker_processes; ++i) { + if (g_main_ctx.proc_ctxs[i].pid > 0) { + have_worker = true; + break; + } + } + if (!have_worker) { + hlogw("No alive worker process, exit master process!"); + exit(0); + } + } + break; + } + } + } + } + break; + case SIGNAL_RELOAD: + if (g_main_ctx.reload_fn) { + g_main_ctx.reload_fn(g_main_ctx.reload_userdata); + if (getpid_from_pidfile() == getpid()) { + // master send SIGNAL_RELOAD => workers + for (int i = 0; i < g_main_ctx.worker_processes; ++i) { + if (g_main_ctx.proc_ctxs[i].pid <= 0) break; + kill(g_main_ctx.proc_ctxs[i].pid, SIGNAL_RELOAD); + } + } + } + break; + default: + break; + } +} + +int signal_init(procedure_t reload_fn, void* reload_userdata) { + g_main_ctx.reload_fn = reload_fn; + g_main_ctx.reload_userdata = reload_userdata; + + signal(SIGINT, signal_handler); + signal(SIGCHLD, signal_handler); + signal(SIGNAL_TERMINATE, signal_handler); + signal(SIGNAL_RELOAD, signal_handler); + + return 0; +} + +#elif defined(OS_WIN) +#include // for timeSetEvent + +// win32 use Event +//static HANDLE s_hEventTerm = NULL; +static HANDLE s_hEventReload = NULL; + +static void WINAPI on_timer(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) { + DWORD ret; + /* + ret = WaitForSingleObject(s_hEventTerm, 0); + if (ret == WAIT_OBJECT_0) { + hlogi("pid=%d recv event [TERM]", getpid()); + if (getpid_from_pidfile() == getpid()) { + timeKillEvent(uTimerID); + exit(0); + } + } + */ + + ret = WaitForSingleObject(s_hEventReload, 0); + if (ret == WAIT_OBJECT_0) { + hlogi("pid=%d recv event [RELOAD]", getpid()); + if (g_main_ctx.reload_fn) { + g_main_ctx.reload_fn(g_main_ctx.reload_userdata); + } + } +} + +static void signal_cleanup(void) { + //CloseHandle(s_hEventTerm); + //s_hEventTerm = NULL; + CloseHandle(s_hEventReload); + s_hEventReload = NULL; +} + +int signal_init(procedure_t reload_fn, void* reload_userdata) { + g_main_ctx.reload_fn = reload_fn; + g_main_ctx.reload_userdata = reload_userdata; + + char eventname[MAX_PATH] = {0}; + //snprintf(eventname, sizeof(eventname), "%s_term_event", g_main_ctx.program_name); + //s_hEventTerm = CreateEvent(NULL, FALSE, FALSE, eventname); + //s_hEventTerm = OpenEvent(EVENT_ALL_ACCESS, FALSE, eventname); + snprintf(eventname, sizeof(eventname), "%s_reload_event", g_main_ctx.program_name); + s_hEventReload = CreateEvent(NULL, FALSE, FALSE, eventname); + + timeSetEvent(1000, 1000, on_timer, 0, TIME_PERIODIC); + + atexit(signal_cleanup); + return 0; +} +#endif + +static void kill_proc(int pid) { +#ifdef OS_UNIX + kill(pid, SIGNAL_TERMINATE); +#else + //SetEvent(s_hEventTerm); + //hv_sleep(1); + HANDLE hproc = OpenProcess(PROCESS_TERMINATE, FALSE, pid); + if (hproc) { + TerminateProcess(hproc, 0); + CloseHandle(hproc); + } +#endif +} + +void signal_handle(const char* signal) { + if (strcmp(signal, "start") == 0) { + if (g_main_ctx.oldpid > 0) { + printf("%s is already running, pid=%d\n", g_main_ctx.program_name, g_main_ctx.oldpid); + exit(0); + } + } else if (strcmp(signal, "stop") == 0) { + if (g_main_ctx.oldpid > 0) { + kill_proc(g_main_ctx.oldpid); + printf("%s stop/waiting\n", g_main_ctx.program_name); + } else { + printf("%s is already stopped\n", g_main_ctx.program_name); + } + exit(0); + } else if (strcmp(signal, "restart") == 0) { + if (g_main_ctx.oldpid > 0) { + kill_proc(g_main_ctx.oldpid); + printf("%s stop/waiting\n", g_main_ctx.program_name); + hv_sleep(1); + } + } else if (strcmp(signal, "status") == 0) { + if (g_main_ctx.oldpid > 0) { + printf("%s start/running, pid=%d\n", g_main_ctx.program_name, g_main_ctx.oldpid); + } else { + printf("%s stop/waiting\n", g_main_ctx.program_name); + } + exit(0); + } else if (strcmp(signal, "reload") == 0) { + if (g_main_ctx.oldpid > 0) { + printf("reload confile [%s]\n", g_main_ctx.confile); +#ifdef OS_UNIX + kill(g_main_ctx.oldpid, SIGNAL_RELOAD); +#else + SetEvent(s_hEventReload); +#endif + } + hv_sleep(1); + exit(0); + } else { + printf("Invalid signal: '%s'\n", signal); + exit(0); + } + printf("%s start/running\n", g_main_ctx.program_name); +} + +// master-workers processes +static HTHREAD_ROUTINE(worker_thread) { + hlogi("worker_thread pid=%ld tid=%ld", hv_getpid(), hv_gettid()); + if (g_main_ctx.worker_fn) { + g_main_ctx.worker_fn(g_main_ctx.worker_userdata); + } + return 0; +} + +static void worker_init(void* userdata) { +#ifdef OS_UNIX + setproctitle("%s: worker process", g_main_ctx.program_name); + signal(SIGNAL_RELOAD, signal_handler); +#endif +} + +static void worker_proc(void* userdata) { + for (int i = 1; i < g_main_ctx.worker_threads; ++i) { + hthread_create(worker_thread, NULL); + } + worker_thread(NULL); +} + +int master_workers_run(procedure_t worker_fn, void* worker_userdata, + int worker_processes, int worker_threads, bool wait) { +#ifdef OS_WIN + // NOTE: Windows not provide MultiProcesses + if (worker_threads == 0) { + // MultiProcesses => MultiThreads + worker_threads = worker_processes; + } + worker_processes = 0; +#endif + if (worker_threads == 0) worker_threads = 1; + + g_main_ctx.worker_threads = worker_threads; + g_main_ctx.worker_fn = worker_fn; + g_main_ctx.worker_userdata = worker_userdata; + + if (worker_processes == 0) { + // single process + if (wait) { + for (int i = 1; i < worker_threads; ++i) { + hthread_create(worker_thread, NULL); + } + worker_thread(NULL); + } + else { + for (int i = 0; i < worker_threads; ++i) { + hthread_create(worker_thread, NULL); + } + } + } + else { + if (g_main_ctx.worker_processes != 0) { + return ERR_OVER_LIMIT; + } + // master-workers processes +#ifdef OS_UNIX + setproctitle("%s: master process", g_main_ctx.program_name); + signal(SIGNAL_RELOAD, signal_handler); +#endif + g_main_ctx.worker_processes = worker_processes; + int bytes = g_main_ctx.worker_processes * sizeof(proc_ctx_t); + SAFE_ALLOC(g_main_ctx.proc_ctxs, bytes); + proc_ctx_t* ctx = g_main_ctx.proc_ctxs; + for (int i = 0; i < g_main_ctx.worker_processes; ++i, ++ctx) { + ctx->init = worker_init; + ctx->proc = worker_proc; + hproc_spawn(ctx); + hlogi("workers[%d] start/running, pid=%d", i, ctx->pid); + } + g_main_ctx.pid = getpid(); + hlogi("master start/running, pid=%d", g_main_ctx.pid); + if (wait) { + while (1) hv_sleep (1); + } + } + return 0; +} diff --git a/3rdPartner/libhv/base/hmain.h b/3rdPartner/libhv/base/hmain.h new file mode 100644 index 0000000..3fe6598 --- /dev/null +++ b/3rdPartner/libhv/base/hmain.h @@ -0,0 +1,117 @@ +#ifndef HV_MAIN_H_ +#define HV_MAIN_H_ + +#include "hexport.h" +#include "hplatform.h" +#include "hdef.h" +#include "hproc.h" + +#ifdef _MSC_VER +#pragma comment(lib, "winmm.lib") // for timeSetEvent +#endif + +BEGIN_EXTERN_C + +typedef struct main_ctx_s { + char run_dir[MAX_PATH]; + char program_name[MAX_PATH]; + + char confile[MAX_PATH]; // default etc/${program}.conf + char pidfile[MAX_PATH]; // default logs/${program}.pid + char logfile[MAX_PATH]; // default logs/${program}.log + + pid_t pid; // getpid + pid_t oldpid; // getpid_from_pidfile + + // arg + int argc; + int arg_len; + char** os_argv; + char** save_argv; + char* cmdline; + // parsed arg + int arg_kv_size; + char** arg_kv; + int arg_list_size; + char** arg_list; + + // env + int envc; + int env_len; + char** os_envp; + char** save_envp; + + // signals + procedure_t reload_fn; + void* reload_userdata; + // master workers model + int worker_processes; + int worker_threads; + procedure_t worker_fn; + void* worker_userdata; + proc_ctx_t* proc_ctxs; +} main_ctx_t; + +// arg_type +#define NO_ARGUMENT 0 +#define REQUIRED_ARGUMENT 1 +#define OPTIONAL_ARGUMENT 2 +// option define +#define OPTION_PREFIX '-' +#define OPTION_DELIM '=' +#define OPTION_ENABLE "1" +#define OPTION_DISABLE "0" +typedef struct option_s { + char short_opt; + const char* long_opt; + int arg_type; +} option_t; + +HV_EXPORT int main_ctx_init(int argc, char** argv); +HV_EXPORT void main_ctx_free(void); + +// ls -a -l +// ls -al +// watch -n 10 ls +// watch -n10 ls +HV_EXPORT int parse_opt(int argc, char** argv, const char* opt); +// gcc -g -Wall -O3 -std=cpp main.c +HV_EXPORT int parse_opt_long(int argc, char** argv, const option_t* long_options, int size); +HV_EXPORT const char* get_arg(const char* key); +HV_EXPORT const char* get_env(const char* key); + +#if defined(OS_UNIX) && !HAVE_SETPROCTITLE +HV_EXPORT void setproctitle(const char* fmt, ...); +#endif + +// pidfile +HV_EXPORT int create_pidfile(); +HV_EXPORT void delete_pidfile(void); +HV_EXPORT pid_t getpid_from_pidfile(); + +// signal=[start,stop,restart,status,reload] +HV_EXPORT int signal_init(procedure_t reload_fn DEFAULT(NULL), void* reload_userdata DEFAULT(NULL)); +HV_EXPORT void signal_handle(const char* signal); +#ifdef OS_UNIX +// we use SIGTERM to quit process, SIGUSR1 to reload confile +#define SIGNAL_TERMINATE SIGTERM +#define SIGNAL_RELOAD SIGUSR1 +void signal_handler(int signo); +#endif + +// global var +#define DEFAULT_WORKER_PROCESSES 4 +#define MAXNUM_WORKER_PROCESSES 256 +HV_EXPORT extern main_ctx_t g_main_ctx; + +// master-workers processes +HV_EXPORT int master_workers_run( + procedure_t worker_fn, + void* worker_userdata DEFAULT(NULL), + int worker_processes DEFAULT(DEFAULT_WORKER_PROCESSES), + int worker_threads DEFAULT(0), + bool wait DEFAULT(true)); + +END_EXTERN_C + +#endif // HV_MAIN_H_ diff --git a/3rdPartner/libhv/base/hmath.h b/3rdPartner/libhv/base/hmath.h new file mode 100644 index 0000000..d29fb01 --- /dev/null +++ b/3rdPartner/libhv/base/hmath.h @@ -0,0 +1,68 @@ +#ifndef HV_MATH_H_ +#define HV_MATH_H_ + +#include + +static inline unsigned long floor2e(unsigned long num) { + unsigned long n = num; + int e = 0; + while (n>>=1) ++e; + unsigned long ret = 1; + while (e--) ret<<=1; + return ret; +} + +static inline unsigned long ceil2e(unsigned long num) { + // 2**0 = 1 + if (num == 0 || num == 1) return 1; + unsigned long n = num - 1; + int e = 1; + while (n>>=1) ++e; + unsigned long ret = 1; + while (e--) ret<<=1; + return ret; +} + +// varint little-endian +// MSB +static inline int varint_encode(long long value, unsigned char* buf) { + unsigned char ch; + unsigned char *p = buf; + int bytes = 0; + do { + ch = value & 0x7F; + value >>= 7; + *p++ = value == 0 ? ch : (ch | 0x80); + ++bytes; + } while (value); + return bytes; +} + +// @param[IN|OUT] len: in=>buflen, out=>varint bytesize +static inline long long varint_decode(const unsigned char* buf, int* len) { + long long ret = 0; + int bytes = 0, bits = 0; + const unsigned char *p = buf; + do { + if (len && *len && bytes == *len) { + // Not enough length + *len = 0; + return 0; + } + ret |= ((long long)(*p & 0x7F)) << bits; + ++bytes; + if ((*p & 0x80) == 0) { + // Found end + if (len) *len = bytes; + return ret; + } + ++p; + bits += 7; + } while(bytes < 10); + + // Not found end + if (len) *len = -1; + return ret; +} + +#endif // HV_MATH_H_ diff --git a/3rdPartner/libhv/base/hmutex.h b/3rdPartner/libhv/base/hmutex.h new file mode 100644 index 0000000..3496039 --- /dev/null +++ b/3rdPartner/libhv/base/hmutex.h @@ -0,0 +1,268 @@ +#ifndef HV_MUTEX_H_ +#define HV_MUTEX_H_ + +#include "hexport.h" +#include "hplatform.h" +#include "htime.h" + +BEGIN_EXTERN_C + +#ifdef OS_WIN +#define hmutex_t CRITICAL_SECTION +#define hmutex_init InitializeCriticalSection +#define hmutex_destroy DeleteCriticalSection +#define hmutex_lock EnterCriticalSection +#define hmutex_unlock LeaveCriticalSection + +#define hrecursive_mutex_t CRITICAL_SECTION +#define hrecursive_mutex_init InitializeCriticalSection +#define hrecursive_mutex_destroy DeleteCriticalSection +#define hrecursive_mutex_lock EnterCriticalSection +#define hrecursive_mutex_unlock LeaveCriticalSection + +#define HSPINLOCK_COUNT -1 +#define hspinlock_t CRITICAL_SECTION +#define hspinlock_init(pspin) InitializeCriticalSectionAndSpinCount(pspin, HSPINLOCK_COUNT) +#define hspinlock_destroy DeleteCriticalSection +#define hspinlock_lock EnterCriticalSection +#define hspinlock_unlock LeaveCriticalSection + +#define hrwlock_t SRWLOCK +#define hrwlock_init InitializeSRWLock +#define hrwlock_destroy(plock) +#define hrwlock_rdlock AcquireSRWLockShared +#define hrwlock_rdunlock ReleaseSRWLockShared +#define hrwlock_wrlock AcquireSRWLockExclusive +#define hrwlock_wrunlock ReleaseSRWLockExclusive + +#define htimed_mutex_t HANDLE +#define htimed_mutex_init(pmutex) *(pmutex) = CreateMutex(NULL, FALSE, NULL) +#define htimed_mutex_destroy(pmutex) CloseHandle(*(pmutex)) +#define htimed_mutex_lock(pmutex) WaitForSingleObject(*(pmutex), INFINITE) +#define htimed_mutex_unlock(pmutex) ReleaseMutex(*(pmutex)) +// true: WAIT_OBJECT_0 +// false: WAIT_OBJECT_TIMEOUT +#define htimed_mutex_lock_for(pmutex, ms) ( WaitForSingleObject(*(pmutex), ms) == WAIT_OBJECT_0 ) + +#define hcondvar_t CONDITION_VARIABLE +#define hcondvar_init InitializeConditionVariable +#define hcondvar_destroy(pcond) +#define hcondvar_wait(pcond, pmutex) SleepConditionVariableCS(pcond, pmutex, INFINITE) +#define hcondvar_wait_for(pcond, pmutex, ms) SleepConditionVariableCS(pcond, pmutex, ms) +#define hcondvar_signal WakeConditionVariable +#define hcondvar_broadcast WakeAllConditionVariable + +#define honce_t INIT_ONCE +#define HONCE_INIT INIT_ONCE_STATIC_INIT +typedef void (*honce_fn)(); +static inline BOOL WINAPI s_once_func(INIT_ONCE* once, PVOID arg, PVOID* _) { + honce_fn fn = (honce_fn)arg; + fn(); + return TRUE; +} +static inline void honce(honce_t* once, honce_fn fn) { + PVOID dummy = NULL; + InitOnceExecuteOnce(once, s_once_func, (PVOID)fn, &dummy); +} + +#define hsem_t HANDLE +#define hsem_init(psem, value) *(psem) = CreateSemaphore(NULL, value, value+100000, NULL) +#define hsem_destroy(psem) CloseHandle(*(psem)) +#define hsem_wait(psem) WaitForSingleObject(*(psem), INFINITE) +#define hsem_post(psem) ReleaseSemaphore(*(psem), 1, NULL) +// true: WAIT_OBJECT_0 +// false: WAIT_OBJECT_TIMEOUT +#define hsem_wait_for(psem, ms) ( WaitForSingleObject(*(psem), ms) == WAIT_OBJECT_0 ) + +#else +#define hmutex_t pthread_mutex_t +#define hmutex_init(pmutex) pthread_mutex_init(pmutex, NULL) +#define hmutex_destroy pthread_mutex_destroy +#define hmutex_lock pthread_mutex_lock +#define hmutex_unlock pthread_mutex_unlock + +#define hrecursive_mutex_t pthread_mutex_t +#define hrecursive_mutex_init(pmutex) \ + do {\ + pthread_mutexattr_t attr;\ + pthread_mutexattr_init(&attr);\ + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);\ + pthread_mutex_init(pmutex, &attr);\ + } while(0) +#define hrecursive_mutex_destroy pthread_mutex_destroy +#define hrecursive_mutex_lock pthread_mutex_lock +#define hrecursive_mutex_unlock pthread_mutex_unlock + +#if HAVE_PTHREAD_SPIN_LOCK +#define hspinlock_t pthread_spinlock_t +#define hspinlock_init(pspin) pthread_spin_init(pspin, PTHREAD_PROCESS_PRIVATE) +#define hspinlock_destroy pthread_spin_destroy +#define hspinlock_lock pthread_spin_lock +#define hspinlock_unlock pthread_spin_unlock +#else +#define hspinlock_t pthread_mutex_t +#define hspinlock_init(pmutex) pthread_mutex_init(pmutex, NULL) +#define hspinlock_destroy pthread_mutex_destroy +#define hspinlock_lock pthread_mutex_lock +#define hspinlock_unlock pthread_mutex_unlock +#endif + +#define hrwlock_t pthread_rwlock_t +#define hrwlock_init(prwlock) pthread_rwlock_init(prwlock, NULL) +#define hrwlock_destroy pthread_rwlock_destroy +#define hrwlock_rdlock pthread_rwlock_rdlock +#define hrwlock_rdunlock pthread_rwlock_unlock +#define hrwlock_wrlock pthread_rwlock_wrlock +#define hrwlock_wrunlock pthread_rwlock_unlock + +#define htimed_mutex_t pthread_mutex_t +#define htimed_mutex_init(pmutex) pthread_mutex_init(pmutex, NULL) +#define htimed_mutex_destroy pthread_mutex_destroy +#define htimed_mutex_lock pthread_mutex_lock +#define htimed_mutex_unlock pthread_mutex_unlock +static inline void timespec_after(struct timespec* ts, unsigned int ms) { + struct timeval tv; + gettimeofday(&tv, NULL); + ts->tv_sec = tv.tv_sec + ms / 1000; + ts->tv_nsec = tv.tv_usec * 1000 + ms % 1000 * 1000000; + if (ts->tv_nsec >= 1000000000) { + ts->tv_nsec -= 1000000000; + ts->tv_sec += 1; + } +} +// true: OK +// false: ETIMEDOUT +static inline int htimed_mutex_lock_for(htimed_mutex_t* mutex, unsigned int ms) { +#if HAVE_PTHREAD_MUTEX_TIMEDLOCK + struct timespec ts; + timespec_after(&ts, ms); + return pthread_mutex_timedlock(mutex, &ts) != ETIMEDOUT; +#else + int ret = 0; + unsigned int end = gettick_ms() + ms; + while ((ret = pthread_mutex_trylock(mutex)) != 0) { + if (gettick_ms() >= end) { + break; + } + hv_msleep(1); + } + return ret == 0; +#endif +} + +#define hcondvar_t pthread_cond_t +#define hcondvar_init(pcond) pthread_cond_init(pcond, NULL) +#define hcondvar_destroy pthread_cond_destroy +#define hcondvar_wait pthread_cond_wait +#define hcondvar_signal pthread_cond_signal +#define hcondvar_broadcast pthread_cond_broadcast +// true: OK +// false: ETIMEDOUT +static inline int hcondvar_wait_for(hcondvar_t* cond, hmutex_t* mutex, unsigned int ms) { + struct timespec ts; + timespec_after(&ts, ms); + return pthread_cond_timedwait(cond, mutex, &ts) != ETIMEDOUT; +} + +#define honce_t pthread_once_t +#define HONCE_INIT PTHREAD_ONCE_INIT +#define honce pthread_once + +#include +#define hsem_t sem_t +#define hsem_init(psem, value) sem_init(psem, 0, value) +#define hsem_destroy sem_destroy +#define hsem_wait sem_wait +#define hsem_post sem_post +// true: OK +// false: ETIMEDOUT +static inline int hsem_wait_for(hsem_t* sem, unsigned int ms) { +#if HAVE_SEM_TIMEDWAIT + struct timespec ts; + timespec_after(&ts, ms); + return sem_timedwait(sem, &ts) != ETIMEDOUT; +#else + int ret = 0; + unsigned int end = gettick_ms() + ms; + while ((ret = sem_trywait(sem)) != 0) { + if (gettick_ms() >= end) { + break; + } + hv_msleep(1); + } + return ret == 0; +#endif +} + +#endif + +END_EXTERN_C + +#ifdef __cplusplus +#include +#include +// using std::mutex; +// NOTE: test std::timed_mutex incorrect in some platforms, use htimed_mutex_t +// using std::timed_mutex; +using std::condition_variable; +using std::lock_guard; +using std::unique_lock; + +BEGIN_NAMESPACE_HV + +class MutexLock { +public: + MutexLock() { hmutex_init(&_mutex); } + ~MutexLock() { hmutex_destroy(&_mutex); } + + void lock() { hmutex_lock(&_mutex); } + void unlock() { hmutex_unlock(&_mutex); } +protected: + hmutex_t _mutex; +}; + +class SpinLock { +public: + SpinLock() { hspinlock_init(&_spin); } + ~SpinLock() { hspinlock_destroy(&_spin); } + + void lock() { hspinlock_lock(&_spin); } + void unlock() { hspinlock_unlock(&_spin); } +protected: + hspinlock_t _spin; +}; + +class RWLock { +public: + RWLock() { hrwlock_init(&_rwlock); } + ~RWLock() { hrwlock_destroy(&_rwlock); } + + void rdlock() { hrwlock_rdlock(&_rwlock); } + void rdunlock() { hrwlock_rdunlock(&_rwlock); } + + void wrlock() { hrwlock_wrlock(&_rwlock); } + void wrunlock() { hrwlock_wrunlock(&_rwlock); } + + void lock() { rdlock(); } + void unlock() { rdunlock(); } +protected: + hrwlock_t _rwlock; +}; + +template +class LockGuard { +public: + LockGuard(T& t) : _lock(t) { _lock.lock(); } + ~LockGuard() { _lock.unlock(); } +protected: + T& _lock; +}; + +END_NAMESPACE_HV + +// same as java synchronized(lock) { ... } +#define synchronized(lock) for (std::lock_guard _lock_(lock), *p = &_lock_; p != NULL; p = NULL) + +#endif // __cplusplus + +#endif // HV_MUTEX_H_ diff --git a/3rdPartner/libhv/base/hplatform.h b/3rdPartner/libhv/base/hplatform.h new file mode 100644 index 0000000..5e0a290 --- /dev/null +++ b/3rdPartner/libhv/base/hplatform.h @@ -0,0 +1,330 @@ +#ifndef HV_PLATFORM_H_ +#define HV_PLATFORM_H_ + +#include "hconfig.h" + +// OS +#if defined(WIN64) || defined(_WIN64) + #define OS_WIN64 + #define OS_WIN32 +#elif defined(WIN32)|| defined(_WIN32) + #define OS_WIN32 +#elif defined(ANDROID) || defined(__ANDROID__) + #define OS_ANDROID + #define OS_LINUX +#elif defined(linux) || defined(__linux) || defined(__linux__) + #define OS_LINUX +#elif defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__)) + #include + #if defined(TARGET_OS_MAC) && TARGET_OS_MAC + #define OS_MAC + #elif defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE + #define OS_IOS + #endif + #define OS_DARWIN +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + #define OS_FREEBSD + #define OS_BSD +#elif defined(__NetBSD__) + #define OS_NETBSD + #define OS_BSD +#elif defined(__OpenBSD__) + #define OS_OPENBSD + #define OS_BSD +#elif defined(sun) || defined(__sun) || defined(__sun__) + #define OS_SOLARIS +#else + #warning "Untested operating system platform!" +#endif + +#if defined(OS_WIN32) || defined(OS_WIN64) + #undef OS_UNIX + #define OS_WIN +#else + #define OS_UNIX +#endif + +// ARCH +#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64) + #define ARCH_X64 + #define ARCH_X86_64 +#elif defined(__i386) || defined(__i386__) || defined(_M_IX86) + #define ARCH_X86 + #define ARCH_X86_32 +#elif defined(__aarch64__) || defined(__ARM64__) || defined(_M_ARM64) + #define ARCH_ARM64 +#elif defined(__arm__) || defined(_M_ARM) + #define ARCH_ARM +#elif defined(__mips64__) + #define ARCH_MIPS64 +#elif defined(__mips__) + #define ARCH_MIPS +#else + #warning "Untested hardware architecture!" +#endif + +// COMPILER +#if defined (_MSC_VER) +#define COMPILER_MSVC + +#if (_MSC_VER < 1200) // Visual C++ 6.0 +#define MSVS_VERSION 1998 +#define MSVC_VERSION 60 +#elif (_MSC_VER >= 1200) && (_MSC_VER < 1300) // Visual Studio 2002, MSVC++ 7.0 +#define MSVS_VERSION 2002 +#define MSVC_VERSION 70 +#elif (_MSC_VER >= 1300) && (_MSC_VER < 1400) // Visual Studio 2003, MSVC++ 7.1 +#define MSVS_VERSION 2003 +#define MSVC_VERSION 71 +#elif (_MSC_VER >= 1400) && (_MSC_VER < 1500) // Visual Studio 2005, MSVC++ 8.0 +#define MSVS_VERSION 2005 +#define MSVC_VERSION 80 +#elif (_MSC_VER >= 1500) && (_MSC_VER < 1600) // Visual Studio 2008, MSVC++ 9.0 +#define MSVS_VERSION 2008 +#define MSVC_VERSION 90 +#elif (_MSC_VER >= 1600) && (_MSC_VER < 1700) // Visual Studio 2010, MSVC++ 10.0 +#define MSVS_VERSION 2010 +#define MSVC_VERSION 100 +#elif (_MSC_VER >= 1700) && (_MSC_VER < 1800) // Visual Studio 2012, MSVC++ 11.0 +#define MSVS_VERSION 2012 +#define MSVC_VERSION 110 +#elif (_MSC_VER >= 1800) && (_MSC_VER < 1900) // Visual Studio 2013, MSVC++ 12.0 +#define MSVS_VERSION 2013 +#define MSVC_VERSION 120 +#elif (_MSC_VER >= 1900) && (_MSC_VER < 1910) // Visual Studio 2015, MSVC++ 14.0 +#define MSVS_VERSION 2015 +#define MSVC_VERSION 140 +#elif (_MSC_VER >= 1910) && (_MSC_VER < 1920) // Visual Studio 2017, MSVC++ 15.0 +#define MSVS_VERSION 2017 +#define MSVC_VERSION 150 +#elif (_MSC_VER >= 1920) && (_MSC_VER < 2000) // Visual Studio 2019, MSVC++ 16.0 +#define MSVS_VERSION 2019 +#define MSVC_VERSION 160 +#endif + +#undef HAVE_STDATOMIC_H +#define HAVE_STDATOMIC_H 0 +#undef HAVE_SYS_TIME_H +#define HAVE_SYS_TIME_H 0 +#undef HAVE_PTHREAD_H +#define HAVE_PTHREAD_H 0 + +#pragma warning (disable: 4018) // signed/unsigned comparison +#pragma warning (disable: 4100) // unused param +#pragma warning (disable: 4102) // unreferenced label +#pragma warning (disable: 4244) // conversion loss of data +#pragma warning (disable: 4267) // size_t => int +#pragma warning (disable: 4819) // Unicode +#pragma warning (disable: 4996) // _CRT_SECURE_NO_WARNINGS + +#elif defined(__GNUC__) +#define COMPILER_GCC + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + +#elif defined(__clang__) +#define COMPILER_CLANG + +#elif defined(__MINGW32__) || defined(__MINGW64__) +#define COMPILER_MINGW + +#elif defined(__MSYS__) +#define COMPILER_MSYS + +#elif defined(__CYGWIN__) +#define COMPILER_CYGWIN + +#else +#warning "Untested compiler!" +#endif + +// headers +#ifdef OS_WIN + #ifndef WIN32_LEAN_AND_MEAN + #define WIN32_LEAN_AND_MEAN + #endif + #ifndef _CRT_NONSTDC_NO_DEPRECATE + #define _CRT_NONSTDC_NO_DEPRECATE + #endif + #ifndef _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS + #endif + #ifndef _WINSOCK_DEPRECATED_NO_WARNINGS + #define _WINSOCK_DEPRECATED_NO_WARNINGS + #endif + #include + #include // for inet_pton,inet_ntop + #include + #include // for getpid,exec + #include // for mkdir,rmdir,chdir,getcwd + #include // for open,close,read,write,lseek,tell + + #define hv_sleep(s) Sleep((s) * 1000) + #define hv_msleep(ms) Sleep(ms) + #define hv_usleep(us) Sleep((us) / 1000) + #define hv_delay(ms) hv_msleep(ms) + #define hv_mkdir(dir) mkdir(dir) + + // access + #ifndef F_OK + #define F_OK 0 /* test for existence of file */ + #endif + #ifndef X_OK + #define X_OK (1<<0) /* test for execute or search permission */ + #endif + #ifndef W_OK + #define W_OK (1<<1) /* test for write permission */ + #endif + #ifndef R_OK + #define R_OK (1<<2) /* test for read permission */ + #endif + + // stat + #ifndef S_ISREG + #define S_ISREG(st_mode) (((st_mode) & S_IFMT) == S_IFREG) + #endif + #ifndef S_ISDIR + #define S_ISDIR(st_mode) (((st_mode) & S_IFMT) == S_IFDIR) + #endif +#else + #include + #include // for mkdir,rmdir,chdir,getcwd + + // socket + #include + #include + #include + #include + #include + #include + #include // for gethostbyname + + #define hv_sleep(s) sleep(s) + #define hv_msleep(ms) usleep((ms) * 1000) + #define hv_usleep(us) usleep(us) + #define hv_delay(ms) hv_msleep(ms) + #define hv_mkdir(dir) mkdir(dir, 0777) +#endif + +#ifdef _MSC_VER + typedef int pid_t; + typedef int gid_t; + typedef int uid_t; + #define strcasecmp stricmp + #define strncasecmp strnicmp +#else + typedef int BOOL; + typedef unsigned char BYTE; + typedef unsigned short WORD; + typedef void* HANDLE; + #include + #define stricmp strcasecmp + #define strnicmp strncasecmp +#endif + +// ENDIAN +#ifndef BIG_ENDIAN +#define BIG_ENDIAN 4321 +#endif +#ifndef LITTLE_ENDIAN +#define LITTLE_ENDIAN 1234 +#endif +#ifndef NET_ENDIAN +#define NET_ENDIAN BIG_ENDIAN +#endif + +// BYTE_ORDER +#ifndef BYTE_ORDER +#if defined(__BYTE_ORDER) + #define BYTE_ORDER __BYTE_ORDER +#elif defined(__BYTE_ORDER__) + #define BYTE_ORDER __BYTE_ORDER__ +#elif defined(ARCH_X86) || defined(ARCH_X86_64) || \ + defined(__ARMEL__) || defined(__AARCH64EL__) || \ + defined(__MIPSEL) || defined(__MIPS64EL) + #define BYTE_ORDER LITTLE_ENDIAN +#elif defined(__ARMEB__) || defined(__AARCH64EB__) || \ + defined(__MIPSEB) || defined(__MIPS64EB) + #define BYTE_ORDER BIG_ENDIAN +#elif defined(OS_WIN) + #define BYTE_ORDER LITTLE_ENDIAN +#else + #warning "Unknown byte order!" +#endif +#endif + +// ANSI C +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef __cplusplus +#if HAVE_STDBOOL_H +#include +#else + #ifndef bool + #define bool char + #endif + + #ifndef true + #define true 1 + #endif + + #ifndef false + #define false 0 + #endif +#endif +#endif + +#if HAVE_STDINT_H +#include +#elif defined(_MSC_VER) && _MSC_VER < 1700 +typedef __int8 int8_t; +typedef __int16 int16_t; +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; +#endif + +typedef float float32_t; +typedef double float64_t; + +typedef int (*method_t)(void* userdata); +typedef void (*procedure_t)(void* userdata); + +#if HAVE_SYS_TYPES_H +#include +#endif + +#if HAVE_SYS_STAT_H +#include +#endif + +#if HAVE_SYS_TIME_H +#include // for gettimeofday +#endif + +#if HAVE_FCNTL_H +#include +#endif + +#if HAVE_PTHREAD_H +#include +#endif + +#endif // HV_PLATFORM_H_ diff --git a/3rdPartner/libhv/base/hproc.h b/3rdPartner/libhv/base/hproc.h new file mode 100644 index 0000000..b783562 --- /dev/null +++ b/3rdPartner/libhv/base/hproc.h @@ -0,0 +1,69 @@ +#ifndef HV_PROC_H_ +#define HV_PROC_H_ + +#include "hplatform.h" + +typedef struct proc_ctx_s { + pid_t pid; // tid in Windows + time_t start_time; + int spawn_cnt; + procedure_t init; + void* init_userdata; + procedure_t proc; + void* proc_userdata; + procedure_t exit; + void* exit_userdata; +} proc_ctx_t; + +static inline void hproc_run(proc_ctx_t* ctx) { + if (ctx->init) { + ctx->init(ctx->init_userdata); + } + if (ctx->proc) { + ctx->proc(ctx->proc_userdata); + } + if (ctx->exit) { + ctx->exit(ctx->exit_userdata); + } +} + +#ifdef OS_UNIX +// unix use multi-processes +static inline int hproc_spawn(proc_ctx_t* ctx) { + ++ctx->spawn_cnt; + ctx->start_time = time(NULL); + pid_t pid = fork(); + if (pid < 0) { + perror("fork"); + return -1; + } else if (pid == 0) { + // child process + ctx->pid = getpid(); + hproc_run(ctx); + exit(0); + } else if (pid > 0) { + // parent process + ctx->pid = pid; + } + return pid; +} +#elif defined(OS_WIN) +// win32 use multi-threads +static void win_thread(void* userdata) { + proc_ctx_t* ctx = (proc_ctx_t*)userdata; + ctx->pid = GetCurrentThreadId(); // tid in Windows + hproc_run(ctx); +} +static inline int hproc_spawn(proc_ctx_t* ctx) { + ++ctx->spawn_cnt; + ctx->start_time = time(NULL); + HANDLE h = (HANDLE)_beginthread(win_thread, 0, ctx); + if (h == NULL) { + return -1; + } + ctx->pid = GetThreadId(h); // tid in Windows + return ctx->pid; +} +#endif + +#endif // HV_PROC_H_ diff --git a/3rdPartner/libhv/base/hsocket.c b/3rdPartner/libhv/base/hsocket.c new file mode 100644 index 0000000..da491b7 --- /dev/null +++ b/3rdPartner/libhv/base/hsocket.c @@ -0,0 +1,408 @@ +#include "hsocket.h" + +#include "hdef.h" + +#ifdef OS_WIN +#include "hatomic.h" +static hatomic_flag_t s_wsa_initialized = HATOMIC_FLAG_INIT; +void WSAInit() { + if (!hatomic_flag_test_and_set(&s_wsa_initialized)) { + WSADATA wsadata; + WSAStartup(MAKEWORD(2, 2), &wsadata); + } +} + +void WSADeinit() { + if (hatomic_flag_test_and_set(&s_wsa_initialized)) { + hatomic_flag_clear(&s_wsa_initialized); + WSACleanup(); + } +} +#endif + +static inline int socket_errno_negative(int sockfd) { + int err = socket_errno(); + if (sockfd >= 0) closesocket(sockfd); + return err > 0 ? -err : -1; +} + +const char* socket_strerror(int err) { +#ifdef OS_WIN + static char buffer[128]; + + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS | + FORMAT_MESSAGE_MAX_WIDTH_MASK, + 0, ABS(err), 0, buffer, sizeof(buffer), NULL); + + return buffer; +#else + return strerror(ABS(err)); +#endif +} + +bool is_ipv4(const char* host) { + struct sockaddr_in sin; + return inet_pton(AF_INET, host, &sin) == 1; +} + +bool is_ipv6(const char* host) { + struct sockaddr_in6 sin6; + return inet_pton(AF_INET6, host, &sin6) == 1; +} + +int ResolveAddr(const char* host, sockaddr_u* addr) { +#ifdef OS_WIN + WSAInit(); +#endif + if (inet_pton(AF_INET, host, &addr->sin.sin_addr) == 1) { + addr->sa.sa_family = AF_INET; // host is ipv4, so easy ;) + return 0; + } + + if (inet_pton(AF_INET6, host, &addr->sin6.sin6_addr) == 1) { + addr->sa.sa_family = AF_INET6; // host is ipv6 + } + + struct addrinfo* ais = NULL; + int ret = getaddrinfo(host, NULL, NULL, &ais); + if (ret != 0 || ais == NULL || ais->ai_addr == NULL || ais->ai_addrlen == 0) { + printd("unknown host: %s err:%d:%s\n", host, ret, gai_strerror(ret)); + return ret; + } + struct addrinfo* pai = ais; + while (pai != NULL) { + if (pai->ai_family == AF_INET) break; + pai = pai->ai_next; + } + if (pai == NULL) pai = ais; + memcpy(addr, pai->ai_addr, pai->ai_addrlen); + freeaddrinfo(ais); + return 0; +} + +const char* sockaddr_ip(sockaddr_u* addr, char *ip, int len) { + if (addr->sa.sa_family == AF_INET) { + return inet_ntop(AF_INET, &addr->sin.sin_addr, ip, len); + } + else if (addr->sa.sa_family == AF_INET6) { + return inet_ntop(AF_INET6, &addr->sin6.sin6_addr, ip, len); + } + return ip; +} + +uint16_t sockaddr_port(sockaddr_u* addr) { + uint16_t port = 0; + if (addr->sa.sa_family == AF_INET) { + port = ntohs(addr->sin.sin_port); + } + else if (addr->sa.sa_family == AF_INET6) { + port = ntohs(addr->sin6.sin6_port); + } + return port; +} + +int sockaddr_set_ip(sockaddr_u* addr, const char* host) { + if (!host || *host == '\0') { + addr->sin.sin_family = AF_INET; + addr->sin.sin_addr.s_addr = htonl(INADDR_ANY); + return 0; + } + return ResolveAddr(host, addr); +} + +void sockaddr_set_port(sockaddr_u* addr, int port) { + if (addr->sa.sa_family == AF_INET) { + addr->sin.sin_port = htons(port); + } + else if (addr->sa.sa_family == AF_INET6) { + addr->sin6.sin6_port = htons(port); + } +} + +int sockaddr_set_ipport(sockaddr_u* addr, const char* host, int port) { +#ifdef ENABLE_UDS + if (port < 0) { + sockaddr_set_path(addr, host); + return 0; + } +#endif + int ret = sockaddr_set_ip(addr, host); + if (ret != 0) return ret; + sockaddr_set_port(addr, port); + // SOCKADDR_PRINT(addr); + return 0; +} + +socklen_t sockaddr_len(sockaddr_u* addr) { + if (addr->sa.sa_family == AF_INET) { + return sizeof(struct sockaddr_in); + } + else if (addr->sa.sa_family == AF_INET6) { + return sizeof(struct sockaddr_in6); + } +#ifdef ENABLE_UDS + else if (addr->sa.sa_family == AF_UNIX) { + return sizeof(struct sockaddr_un); + } +#endif + return sizeof(sockaddr_u); +} + +const char* sockaddr_str(sockaddr_u* addr, char* buf, int len) { + char ip[SOCKADDR_STRLEN] = {0}; + uint16_t port = 0; + if (addr->sa.sa_family == AF_INET) { + inet_ntop(AF_INET, &addr->sin.sin_addr, ip, len); + port = ntohs(addr->sin.sin_port); + snprintf(buf, len, "%s:%d", ip, port); + } + else if (addr->sa.sa_family == AF_INET6) { + inet_ntop(AF_INET6, &addr->sin6.sin6_addr, ip, len); + port = ntohs(addr->sin6.sin6_port); + snprintf(buf, len, "[%s]:%d", ip, port); + } +#ifdef ENABLE_UDS + else if (addr->sa.sa_family == AF_UNIX) { + snprintf(buf, len, "%s", addr->sun.sun_path); + } +#endif + return buf; +} + +static int sockaddr_bind(sockaddr_u* localaddr, int type) { + // socket -> setsockopt -> bind +#ifdef SOCK_CLOEXEC + type |= SOCK_CLOEXEC; +#endif + int sockfd = socket(localaddr->sa.sa_family, type, 0); + if (sockfd < 0) { + perror("socket"); + goto error; + } + +#ifdef OS_UNIX + so_reuseaddr(sockfd, 1); + // so_reuseport(sockfd, 1); +#endif + + if (localaddr->sa.sa_family == AF_INET6) { + ip_v6only(sockfd, 0); + } + + if (bind(sockfd, &localaddr->sa, sockaddr_len(localaddr)) < 0) { + perror("bind"); + goto error; + } + + return sockfd; +error: + return socket_errno_negative(sockfd); +} + +static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) { + // socket -> nonblocking -> connect + int ret = 0; + int connfd = socket(peeraddr->sa.sa_family, SOCK_STREAM, 0); + if (connfd < 0) { + perror("socket"); + goto error; + } + + if (nonblock) { + nonblocking(connfd); + } + + ret = connect(connfd, &peeraddr->sa, sockaddr_len(peeraddr)); +#ifdef OS_WIN + if (ret < 0 && socket_errno() != WSAEWOULDBLOCK) { +#else + if (ret < 0 && socket_errno() != EINPROGRESS) { +#endif + // perror("connect"); + goto error; + } + + return connfd; +error: + return socket_errno_negative(connfd); +} + +static int ListenFD(int sockfd) { + if (sockfd < 0) return sockfd; + if (listen(sockfd, SOMAXCONN) < 0) { + perror("listen"); + return socket_errno_negative(sockfd); + } + return sockfd; +} + +static int ConnectFDTimeout(int connfd, int ms) { + int err = 0; + socklen_t optlen = sizeof(err); + struct timeval tv = { ms / 1000, (ms % 1000) * 1000 }; + fd_set writefds; + FD_ZERO(&writefds); + FD_SET(connfd, &writefds); + int ret = select(connfd+1, 0, &writefds, 0, &tv); + if (ret < 0) { + perror("select"); + goto error; + } + if (ret == 0) { + errno = ETIMEDOUT; + goto error; + } + if (getsockopt(connfd, SOL_SOCKET, SO_ERROR, (char*)&err, &optlen) < 0 || err != 0) { + if (err != 0) errno = err; + goto error; + } + blocking(connfd); + return connfd; +error: + return socket_errno_negative(connfd); +} + +int Bind(int port, const char* host, int type) { +#ifdef OS_WIN + WSAInit(); +#endif + sockaddr_u localaddr; + memset(&localaddr, 0, sizeof(localaddr)); + int ret = sockaddr_set_ipport(&localaddr, host, port); + if (ret != 0) { + return NABS(ret); + } + return sockaddr_bind(&localaddr, type); +} + +int Listen(int port, const char* host) { + int sockfd = Bind(port, host, SOCK_STREAM); + if (sockfd < 0) return sockfd; + return ListenFD(sockfd); +} + +int Connect(const char* host, int port, int nonblock) { +#ifdef OS_WIN + WSAInit(); +#endif + sockaddr_u peeraddr; + memset(&peeraddr, 0, sizeof(peeraddr)); + int ret = sockaddr_set_ipport(&peeraddr, host, port); + if (ret != 0) { + return NABS(ret); + } + return sockaddr_connect(&peeraddr, nonblock); +} + +int ConnectNonblock(const char* host, int port) { + return Connect(host, port, 1); +} + +int ConnectTimeout(const char* host, int port, int ms) { + int connfd = Connect(host, port, 1); + if (connfd < 0) return connfd; + return ConnectFDTimeout(connfd, ms); +} + +#ifdef ENABLE_UDS +int BindUnix(const char* path, int type) { + sockaddr_u localaddr; + memset(&localaddr, 0, sizeof(localaddr)); + sockaddr_set_path(&localaddr, path); + return sockaddr_bind(&localaddr, type); +} + +int ListenUnix(const char* path) { + int sockfd = BindUnix(path, SOCK_STREAM); + if (sockfd < 0) return sockfd; + return ListenFD(sockfd); +} + +int ConnectUnix(const char* path, int nonblock) { + sockaddr_u peeraddr; + memset(&peeraddr, 0, sizeof(peeraddr)); + sockaddr_set_path(&peeraddr, path); + return sockaddr_connect(&peeraddr, nonblock); +} + +int ConnectUnixNonblock(const char* path) { + return ConnectUnix(path, 1); +} + +int ConnectUnixTimeout(const char* path, int ms) { + int connfd = ConnectUnix(path, 1); + if (connfd < 0) return connfd; + return ConnectFDTimeout(connfd, ms); +} +#endif + +int Socketpair(int family, int type, int protocol, int sv[2]) { +#if defined(OS_UNIX) && HAVE_SOCKETPAIR + return socketpair(AF_LOCAL, type, protocol, sv); +#endif + if (family != AF_INET || type != SOCK_STREAM) { + return -1; + } +#ifdef OS_WIN + WSAInit(); +#endif + int listenfd, connfd, acceptfd; + listenfd = connfd = acceptfd = -1; + struct sockaddr_in localaddr; + socklen_t addrlen = sizeof(localaddr); + memset(&localaddr, 0, addrlen); + localaddr.sin_family = AF_INET; + localaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + localaddr.sin_port = 0; + // listener + listenfd = socket(AF_INET, SOCK_STREAM, 0); + if (listenfd < 0) { + perror("socket"); + goto error; + } + if (bind(listenfd, (struct sockaddr*)&localaddr, addrlen) < 0) { + perror("bind"); + goto error; + } + if (listen(listenfd, 1) < 0) { + perror("listen"); + goto error; + } + if (getsockname(listenfd, (struct sockaddr*)&localaddr, &addrlen) < 0) { + perror("getsockname"); + goto error; + } + // connector + connfd = socket(AF_INET, SOCK_STREAM, 0); + if (connfd < 0) { + perror("socket"); + goto error; + } + if (connect(connfd, (struct sockaddr*)&localaddr, addrlen) < 0) { + perror("connect"); + goto error; + } + // acceptor + acceptfd = accept(listenfd, (struct sockaddr*)&localaddr, &addrlen); + if (acceptfd < 0) { + perror("accept"); + goto error; + } + + closesocket(listenfd); + sv[0] = connfd; + sv[1] = acceptfd; + return 0; +error: + if (listenfd != -1) { + closesocket(listenfd); + } + if (connfd != -1) { + closesocket(connfd); + } + if (acceptfd != -1) { + closesocket(acceptfd); + } + return -1; +} diff --git a/3rdPartner/libhv/base/hsocket.h b/3rdPartner/libhv/base/hsocket.h new file mode 100644 index 0000000..8459a7b --- /dev/null +++ b/3rdPartner/libhv/base/hsocket.h @@ -0,0 +1,285 @@ +#ifndef HV_SOCKET_H_ +#define HV_SOCKET_H_ + +#include "hexport.h" +#include "hplatform.h" + +#ifdef ENABLE_UDS +#ifdef OS_WIN + #include // import struct sockaddr_un +#else + #include // import struct sockaddr_un +#endif +#endif + +#ifdef _MSC_VER +#pragma comment(lib, "ws2_32.lib") +#endif + +#define LOCALHOST "127.0.0.1" +#define ANYADDR "0.0.0.0" + +BEGIN_EXTERN_C + +HV_INLINE int socket_errno() { +#ifdef OS_WIN + return WSAGetLastError(); +#else + return errno; +#endif +} +HV_EXPORT const char* socket_strerror(int err); + +#ifdef OS_WIN + +typedef SOCKET hsocket_t; +typedef int socklen_t; + +void WSAInit(); +void WSADeinit(); + +HV_INLINE int blocking(int sockfd) { + unsigned long nb = 0; + return ioctlsocket(sockfd, FIONBIO, &nb); +} +HV_INLINE int nonblocking(int sockfd) { + unsigned long nb = 1; + return ioctlsocket(sockfd, FIONBIO, &nb); +} + +#undef EAGAIN +#define EAGAIN WSAEWOULDBLOCK + +#undef EINPROGRESS +#define EINPROGRESS WSAEINPROGRESS + +#undef EINTR +#define EINTR WSAEINTR + +#undef ENOTSOCK +#define ENOTSOCK WSAENOTSOCK + +#undef EMSGSIZE +#define EMSGSIZE WSAEMSGSIZE + +#else + +typedef int hsocket_t; + +#ifndef SOCKET +#define SOCKET int +#endif + +#ifndef INVALID_SOCKET +#define INVALID_SOCKET -1 +#endif + +HV_INLINE int blocking(int s) { + return fcntl(s, F_SETFL, fcntl(s, F_GETFL) & ~O_NONBLOCK); +} + +HV_INLINE int nonblocking(int s) { + return fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK); +} + +HV_INLINE int closesocket(int sockfd) { + return close(sockfd); +} + +#endif + +#ifndef SAFE_CLOSESOCKET +#define SAFE_CLOSESOCKET(fd) do {if ((fd) >= 0) {closesocket(fd); (fd) = -1;}} while(0) +#endif + +//-----------------------------sockaddr_u---------------------------------------------- +typedef union { + struct sockaddr sa; + struct sockaddr_in sin; + struct sockaddr_in6 sin6; +#ifdef ENABLE_UDS + struct sockaddr_un sun; +#endif +} sockaddr_u; + +HV_EXPORT bool is_ipv4(const char* host); +HV_EXPORT bool is_ipv6(const char* host); +HV_INLINE bool is_ipaddr(const char* host) { + return is_ipv4(host) || is_ipv6(host); +} + +// @param host: domain or ip +// @retval 0:succeed +HV_EXPORT int ResolveAddr(const char* host, sockaddr_u* addr); + +HV_EXPORT const char* sockaddr_ip(sockaddr_u* addr, char *ip, int len); +HV_EXPORT uint16_t sockaddr_port(sockaddr_u* addr); +HV_EXPORT int sockaddr_set_ip(sockaddr_u* addr, const char* host); +HV_EXPORT void sockaddr_set_port(sockaddr_u* addr, int port); +HV_EXPORT int sockaddr_set_ipport(sockaddr_u* addr, const char* host, int port); +HV_EXPORT socklen_t sockaddr_len(sockaddr_u* addr); +HV_EXPORT const char* sockaddr_str(sockaddr_u* addr, char* buf, int len); + +//#define INET_ADDRSTRLEN 16 +//#define INET6_ADDRSTRLEN 46 +#ifdef ENABLE_UDS +#define SOCKADDR_STRLEN sizeof(((struct sockaddr_un*)(NULL))->sun_path) +HV_INLINE void sockaddr_set_path(sockaddr_u* addr, const char* path) { + addr->sa.sa_family = AF_UNIX; + strncpy(addr->sun.sun_path, path, sizeof(addr->sun.sun_path)); +} +#else +#define SOCKADDR_STRLEN 64 // ipv4:port | [ipv6]:port +#endif + +HV_INLINE void sockaddr_print(sockaddr_u* addr) { + char buf[SOCKADDR_STRLEN] = {0}; + sockaddr_str(addr, buf, sizeof(buf)); + puts(buf); +} + +#define SOCKADDR_LEN(addr) sockaddr_len((sockaddr_u*)addr) +#define SOCKADDR_STR(addr, buf) sockaddr_str((sockaddr_u*)addr, buf, sizeof(buf)) +#define SOCKADDR_PRINT(addr) sockaddr_print((sockaddr_u*)addr) +//===================================================================================== + +// socket -> setsockopt -> bind +// @param type: SOCK_STREAM(tcp) SOCK_DGRAM(udp) +// @return sockfd +HV_EXPORT int Bind(int port, const char* host DEFAULT(ANYADDR), int type DEFAULT(SOCK_STREAM)); + +// Bind -> listen +// @return listenfd +HV_EXPORT int Listen(int port, const char* host DEFAULT(ANYADDR)); + +// @return connfd +// ResolveAddr -> socket -> nonblocking -> connect +HV_EXPORT int Connect(const char* host, int port, int nonblock DEFAULT(0)); +// Connect(host, port, 1) +HV_EXPORT int ConnectNonblock(const char* host, int port); +// Connect(host, port, 1) -> select -> blocking +#define DEFAULT_CONNECT_TIMEOUT 10000 // ms +HV_EXPORT int ConnectTimeout(const char* host, int port, int ms DEFAULT(DEFAULT_CONNECT_TIMEOUT)); + +#ifdef ENABLE_UDS +HV_EXPORT int BindUnix(const char* path, int type DEFAULT(SOCK_STREAM)); +HV_EXPORT int ListenUnix(const char* path); +HV_EXPORT int ConnectUnix(const char* path, int nonblock DEFAULT(0)); +HV_EXPORT int ConnectUnixNonblock(const char* path); +HV_EXPORT int ConnectUnixTimeout(const char* path, int ms DEFAULT(DEFAULT_CONNECT_TIMEOUT)); +#endif + +// Just implement Socketpair(AF_INET, SOCK_STREAM, 0, sv); +HV_EXPORT int Socketpair(int family, int type, int protocol, int sv[2]); + +HV_INLINE int tcp_nodelay(int sockfd, int on DEFAULT(1)) { + return setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (const char*)&on, sizeof(int)); +} + +HV_INLINE int tcp_nopush(int sockfd, int on DEFAULT(1)) { +#ifdef TCP_NOPUSH + return setsockopt(sockfd, IPPROTO_TCP, TCP_NOPUSH, (const char*)&on, sizeof(int)); +#elif defined(TCP_CORK) + return setsockopt(sockfd, IPPROTO_TCP, TCP_CORK, (const char*)&on, sizeof(int)); +#else + return 0; +#endif +} + +HV_INLINE int tcp_keepalive(int sockfd, int on DEFAULT(1), int delay DEFAULT(60)) { + if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (const char*)&on, sizeof(int)) != 0) { + return socket_errno(); + } + +#ifdef TCP_KEEPALIVE + return setsockopt(sockfd, IPPROTO_TCP, TCP_KEEPALIVE, (const char*)&delay, sizeof(int)); +#elif defined(TCP_KEEPIDLE) + // TCP_KEEPIDLE => tcp_keepalive_time + // TCP_KEEPCNT => tcp_keepalive_probes + // TCP_KEEPINTVL => tcp_keepalive_intvl + return setsockopt(sockfd, IPPROTO_TCP, TCP_KEEPIDLE, (const char*)&delay, sizeof(int)); +#else + return 0; +#endif +} + +HV_INLINE int udp_broadcast(int sockfd, int on DEFAULT(1)) { + return setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (const char*)&on, sizeof(int)); +} + +HV_INLINE int ip_v6only(int sockfd, int on DEFAULT(1)) { +#ifdef IPV6_V6ONLY + return setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (const char*)&on, sizeof(int)); +#else + return 0; +#endif +} + +// send timeout +HV_INLINE int so_sndtimeo(int sockfd, int timeout) { +#ifdef OS_WIN + return setsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(int)); +#else + struct timeval tv = {timeout/1000, (timeout%1000)*1000}; + return setsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)); +#endif +} + +// recv timeout +HV_INLINE int so_rcvtimeo(int sockfd, int timeout) { +#ifdef OS_WIN + return setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(int)); +#else + struct timeval tv = {timeout/1000, (timeout%1000)*1000}; + return setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); +#endif +} + +// send buffer size +HV_INLINE int so_sndbuf(int sockfd, int len) { + return setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (const char*)&len, sizeof(int)); +} + +// recv buffer size +HV_INLINE int so_rcvbuf(int sockfd, int len) { + return setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (const char*)&len, sizeof(int)); +} + +HV_INLINE int so_reuseaddr(int sockfd, int on DEFAULT(1)) { +#ifdef SO_REUSEADDR + // NOTE: SO_REUSEADDR allow to reuse sockaddr of TIME_WAIT status + return setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const char*)&on, sizeof(int)); +#else + return 0; +#endif +} + +HV_INLINE int so_reuseport(int sockfd, int on DEFAULT(1)) { +#ifdef SO_REUSEPORT + // NOTE: SO_REUSEPORT allow multiple sockets to bind same port + return setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, (const char*)&on, sizeof(int)); +#else + return 0; +#endif +} + +HV_INLINE int so_linger(int sockfd, int timeout DEFAULT(1)) { +#ifdef SO_LINGER + struct linger linger; + if (timeout >= 0) { + linger.l_onoff = 1; + linger.l_linger = timeout; + } else { + linger.l_onoff = 0; + linger.l_linger = 0; + } + // NOTE: SO_LINGER change the default behavior of close, send RST, avoid TIME_WAIT + return setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (const char*)&linger, sizeof(linger)); +#else + return 0; +#endif +} + +END_EXTERN_C + +#endif // HV_SOCKET_H_ diff --git a/3rdPartner/libhv/base/hsysinfo.h b/3rdPartner/libhv/base/hsysinfo.h new file mode 100644 index 0000000..5366aa5 --- /dev/null +++ b/3rdPartner/libhv/base/hsysinfo.h @@ -0,0 +1,68 @@ +#ifndef HV_SYS_INFO_H_ +#define HV_SYS_INFO_H_ + +#include "hplatform.h" + +#ifdef OS_LINUX +#include +#endif + +#ifdef OS_DARWIN +#include +#include +#endif + +static inline int get_ncpu() { +#ifdef OS_WIN + SYSTEM_INFO si; + GetSystemInfo(&si); + return si.dwNumberOfProcessors; +#else + //return get_nprocs(); + //return get_nprocs_conf(); + //return sysconf(_SC_NPROCESSORS_ONLN); // processors available + return sysconf(_SC_NPROCESSORS_CONF); // processors configured +#endif +} + +typedef struct meminfo_s { + unsigned long total; // KB + unsigned long free; // KB +} meminfo_t; + +static inline int get_meminfo(meminfo_t* mem) { +#ifdef OS_WIN + MEMORYSTATUSEX memstat; + memset(&memstat, 0, sizeof(memstat)); + memstat.dwLength = sizeof(memstat); + GlobalMemoryStatusEx(&memstat); + mem->total = (unsigned long)(memstat.ullTotalPhys >> 10); + mem->free = (unsigned long)(memstat.ullAvailPhys >> 10); + return 0; +#elif defined(OS_LINUX) + struct sysinfo info; + if (sysinfo(&info) < 0) { + return errno; + } + mem->total = info.totalram * info.mem_unit >> 10; + mem->free = info.freeram * info.mem_unit >> 10; + return 0; +#elif defined(OS_DARWIN) + uint64_t memsize = 0; + size_t size = sizeof(memsize); + int which[2] = {CTL_HW, HW_MEMSIZE}; + sysctl(which, 2, &memsize, &size, NULL, 0); + mem->total = memsize >> 10; + + vm_statistics_data_t info; + mach_msg_type_number_t count = sizeof(info) / sizeof(integer_t); + host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&info, &count); + mem->free = ((uint64_t)info.free_count * sysconf(_SC_PAGESIZE)) >> 10; + return 0; +#else + (void)(mem); + return -10; +#endif +} + +#endif // HV_SYS_INFO_H_ diff --git a/3rdPartner/libhv/base/hthread.h b/3rdPartner/libhv/base/hthread.h new file mode 100644 index 0000000..b43e0c6 --- /dev/null +++ b/3rdPartner/libhv/base/hthread.h @@ -0,0 +1,217 @@ +#ifndef HV_THREAD_H_ +#define HV_THREAD_H_ + +#include "hplatform.h" + +#ifdef OS_WIN +#define hv_getpid (long)GetCurrentProcessId +#else +#define hv_getpid (long)getpid +#endif + +#ifdef OS_WIN +#define hv_gettid (long)GetCurrentThreadId +#elif HAVE_GETTID || defined(OS_ANDROID) +#define hv_gettid (long)gettid +#elif defined(OS_LINUX) +#include +#define hv_gettid() (long)syscall(SYS_gettid) +#elif defined(OS_DARWIN) +static inline long hv_gettid() { + uint64_t tid = 0; + pthread_threadid_np(NULL, &tid); + return tid; +} +#elif HAVE_PTHREAD_H +#define hv_gettid (long)pthread_self +#else +#define hv_gettid hv_getpid +#endif + +/* +#include "hthread.h" + +HTHREAD_ROUTINE(thread_demo) { + printf("thread[%ld] start\n", hv_gettid()); + hv_delay(3000); + printf("thread[%ld] end\n", hv_gettid()); + return 0; +} + +int main() { + hthread_t th = hthread_create(thread_demo, NULL); + hthread_join(th); + return 0; +} + */ + +#ifdef OS_WIN +typedef HANDLE hthread_t; +typedef DWORD (WINAPI *hthread_routine)(void*); +#define HTHREAD_RETTYPE DWORD +#define HTHREAD_ROUTINE(fname) DWORD WINAPI fname(void* userdata) +static inline hthread_t hthread_create(hthread_routine fn, void* userdata) { + return CreateThread(NULL, 0, fn, userdata, 0, NULL); +} + +static inline int hthread_join(hthread_t th) { + WaitForSingleObject(th, INFINITE); + CloseHandle(th); + return 0; +} + +#else + +typedef pthread_t hthread_t; +typedef void* (*hthread_routine)(void*); +#define HTHREAD_RETTYPE void* +#define HTHREAD_ROUTINE(fname) void* fname(void* userdata) +static inline hthread_t hthread_create(hthread_routine fn, void* userdata) { + pthread_t th; + pthread_create(&th, NULL, fn, userdata); + return th; +} + +static inline int hthread_join(hthread_t th) { + return pthread_join(th, NULL); +} + +#endif + +#ifdef __cplusplus +/************************************************ + * HThread + * Status: STOP,RUNNING,PAUSE + * Control: start,stop,pause,resume + * first-level virtual: doTask + * second-level virtual: run +************************************************/ +#include +#include +#include + +class HThread { +public: + enum Status { + STOP, + RUNNING, + PAUSE, + }; + + enum SleepPolicy { + YIELD, + SLEEP_FOR, + SLEEP_UNTIL, + NO_SLEEP, + }; + + HThread() { + status = STOP; + status_changed = false; + dotask_cnt = 0; + sleep_policy = YIELD; + sleep_ms = 0; + } + + virtual ~HThread() {} + + void setStatus(Status stat) { + status_changed = true; + status = stat; + } + + void setSleepPolicy(SleepPolicy policy, uint32_t ms = 0) { + sleep_policy = policy; + sleep_ms = ms; + setStatus(status); + } + + virtual int start() { + if (status == STOP) { + thread = std::thread([this] { + if (!doPrepare()) return; + setStatus(RUNNING); + run(); + setStatus(STOP); + if (!doFinish()) return; + }); + } + return 0; + } + + virtual int stop() { + if (status != STOP) { + setStatus(STOP); + } + if (thread.joinable()) { + thread.join(); // wait thread exit + } + return 0; + } + + virtual int pause() { + if (status == RUNNING) { + setStatus(PAUSE); + } + return 0; + } + + virtual int resume() { + if (status == PAUSE) { + setStatus(RUNNING); + } + return 0; + } + + virtual void run() { + while (status != STOP) { + while (status == PAUSE) { + std::this_thread::yield(); + } + + doTask(); + ++dotask_cnt; + + HThread::sleep(); + } + } + + virtual bool doPrepare() {return true;} + virtual void doTask() {} + virtual bool doFinish() {return true;} + + std::thread thread; + std::atomic status; + uint32_t dotask_cnt; +protected: + void sleep() { + switch (sleep_policy) { + case YIELD: + std::this_thread::yield(); + break; + case SLEEP_FOR: + std::this_thread::sleep_for(std::chrono::milliseconds(sleep_ms)); + break; + case SLEEP_UNTIL: { + if (status_changed) { + status_changed = false; + base_tp = std::chrono::steady_clock::now(); + } + base_tp += std::chrono::milliseconds(sleep_ms); + std::this_thread::sleep_until(base_tp); + } + break; + default: // donothing, go all out. + break; + } + } + + SleepPolicy sleep_policy; + uint32_t sleep_ms; + // for SLEEP_UNTIL + std::atomic status_changed; + std::chrono::steady_clock::time_point base_tp; +}; +#endif + +#endif // HV_THREAD_H_ diff --git a/3rdPartner/libhv/base/htime.c b/3rdPartner/libhv/base/htime.c new file mode 100644 index 0000000..6f1542e --- /dev/null +++ b/3rdPartner/libhv/base/htime.c @@ -0,0 +1,290 @@ +#include "htime.h" + +static const char* s_weekdays[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; + +static const char* s_months[] = {"January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December"}; + +static const uint8_t s_days[] = \ +// 1 3 5 7 8 10 12 + {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + +unsigned int gettick_ms() { +#ifdef OS_WIN + return GetTickCount(); +#elif HAVE_CLOCK_GETTIME + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ts.tv_sec * 1000 + ts.tv_nsec / 1000000; +#else + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000 + tv.tv_usec / 1000; +#endif +} + +unsigned long long gethrtime_us() { +#ifdef OS_WIN + static LONGLONG s_freq = 0; + if (s_freq == 0) { + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + s_freq = freq.QuadPart; + } + if (s_freq != 0) { + LARGE_INTEGER count; + QueryPerformanceCounter(&count); + return (unsigned long long)(count.QuadPart / (double)s_freq * 1000000); + } + return 0; +#elif defined(OS_SOLARIS) + return gethrtime() / 1000; +#elif HAVE_CLOCK_GETTIME + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return ts.tv_sec*(unsigned long long)1000000 + ts.tv_nsec / 1000; +#else + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec*(unsigned long long)1000000 + tv.tv_usec; +#endif +} + +datetime_t datetime_now() { +#ifdef OS_WIN + SYSTEMTIME tm; + GetLocalTime(&tm); + datetime_t dt; + dt.year = tm.wYear; + dt.month = tm.wMonth; + dt.day = tm.wDay; + dt.hour = tm.wHour; + dt.min = tm.wMinute; + dt.sec = tm.wSecond; + dt.ms = tm.wMilliseconds; + return dt; +#else + struct timeval tv; + gettimeofday(&tv, NULL); + datetime_t dt = datetime_localtime(tv.tv_sec); + dt.ms = tv.tv_usec / 1000; + return dt; +#endif +} + +datetime_t datetime_localtime(time_t seconds) { + struct tm* tm = localtime(&seconds); + datetime_t dt; + dt.year = tm->tm_year + 1900; + dt.month = tm->tm_mon + 1; + dt.day = tm->tm_mday; + dt.hour = tm->tm_hour; + dt.min = tm->tm_min; + dt.sec = tm->tm_sec; + return dt; +} + +time_t datetime_mktime(datetime_t* dt) { + struct tm tm; + time_t ts; + time(&ts); + struct tm* ptm = localtime(&ts); + memcpy(&tm, ptm, sizeof(struct tm)); + tm.tm_year = dt->year - 1900; + tm.tm_mon = dt->month - 1; + tm.tm_mday = dt->day; + tm.tm_hour = dt->hour; + tm.tm_min = dt->min; + tm.tm_sec = dt->sec; + return mktime(&tm); +} + +int days_of_month(int month, int year) { + if (month < 1 || month > 12) { + return 0; + } + int days = s_days[month-1]; + return (month == 2 && IS_LEAP_YEAR(year)) ? ++days : days; +} + +datetime_t* datetime_past(datetime_t* dt, int days) { + assert(days >= 0); + int sub = days; + while (sub) { + if (dt->day > sub) { + dt->day -= sub; + break; + } + sub -= dt->day; + if (--dt->month == 0) { + dt->month = 12; + --dt->year; + } + dt->day = days_of_month(dt->month, dt->year); + } + return dt; +} + +datetime_t* datetime_future(datetime_t* dt, int days) { + assert(days >= 0); + int sub = days; + int mdays; + while (sub) { + mdays = days_of_month(dt->month, dt->year); + if (dt->day + sub <= mdays) { + dt->day += sub; + break; + } + sub -= (mdays - dt->day + 1); + if (++dt->month > 12) { + dt->month = 1; + ++dt->year; + } + dt->day = 1; + } + return dt; +} + +char* duration_fmt(int sec, char* buf) { + int h, m, s; + m = sec / 60; + s = sec % 60; + h = m / 60; + m = m % 60; + sprintf(buf, TIME_FMT, h, m, s); + return buf; +} + +char* datetime_fmt(datetime_t* dt, char* buf) { + sprintf(buf, DATETIME_FMT, + dt->year, dt->month, dt->day, + dt->hour, dt->min, dt->sec); + return buf; +} + +char* datetime_fmt_iso(datetime_t* dt, char* buf) { + sprintf(buf, DATETIME_FMT_ISO, + dt->year, dt->month, dt->day, + dt->hour, dt->min, dt->sec, + dt->ms); + return buf; +} + +char* gmtime_fmt(time_t time, char* buf) { + struct tm* tm = gmtime(&time); + //strftime(buf, GMTIME_FMT_BUFLEN, "%a, %d %b %Y %H:%M:%S GMT", tm); + sprintf(buf, GMTIME_FMT, + s_weekdays[tm->tm_wday], + tm->tm_mday, s_months[tm->tm_mon], tm->tm_year + 1900, + tm->tm_hour, tm->tm_min, tm->tm_sec); + return buf; +} + +int month_atoi(const char* month) { + for (size_t i = 0; i < 12; ++i) { + if (strnicmp(month, s_months[i], strlen(month)) == 0) + return i+1; + } + return 0; +} + +const char* month_itoa(int month) { + assert(month >= 1 && month <= 12); + return s_months[month-1]; +} + +int weekday_atoi(const char* weekday) { + for (size_t i = 0; i < 7; ++i) { + if (strnicmp(weekday, s_weekdays[i], strlen(weekday)) == 0) + return i; + } + return 0; +} + +const char* weekday_itoa(int weekday) { + assert(weekday >= 0 && weekday <= 7); + if (weekday == 7) weekday = 0; + return s_weekdays[weekday]; +} + +datetime_t hv_compile_datetime() { + datetime_t dt; + char month[32]; + sscanf(__DATE__, "%s %d %d", month, &dt.day, &dt.year); + sscanf(__TIME__, "%d:%d:%d", &dt.hour, &dt.min, &dt.sec); + dt.month = month_atoi(month); + return dt; +} + +time_t cron_next_timeout(int minute, int hour, int day, int week, int month) { + enum { + MINUTELY, + HOURLY, + DAILY, + WEEKLY, + MONTHLY, + YEARLY, + } period_type = MINUTELY; + struct tm tm; + time_t tt; + time(&tt); + tm = *localtime(&tt); + time_t tt_round = 0; + + tm.tm_sec = 0; + if (minute >= 0) { + period_type = HOURLY; + tm.tm_min = minute; + } + if (hour >= 0) { + period_type = DAILY; + tm.tm_hour = hour; + } + if (week >= 0) { + period_type = WEEKLY; + } + else if (day > 0) { + period_type = MONTHLY; + tm.tm_mday = day; + if (month > 0) { + period_type = YEARLY; + tm.tm_mon = month - 1; + } + } + + tt_round = mktime(&tm); + if (week >= 0) { + tt_round += (week-tm.tm_wday)*SECONDS_PER_DAY; + } + if (tt_round > tt) { + return tt_round; + } + + switch(period_type) { + case MINUTELY: + tt_round += SECONDS_PER_MINUTE; + return tt_round; + case HOURLY: + tt_round += SECONDS_PER_HOUR; + return tt_round; + case DAILY: + tt_round += SECONDS_PER_DAY; + return tt_round; + case WEEKLY: + tt_round += SECONDS_PER_WEEK; + return tt_round; + case MONTHLY: + if (++tm.tm_mon == 12) { + tm.tm_mon = 0; + ++tm.tm_year; + } + break; + case YEARLY: + ++tm.tm_year; + break; + default: + return -1; + } + + return mktime(&tm); +} diff --git a/3rdPartner/libhv/base/htime.h b/3rdPartner/libhv/base/htime.h new file mode 100644 index 0000000..4d6dd01 --- /dev/null +++ b/3rdPartner/libhv/base/htime.h @@ -0,0 +1,114 @@ +#ifndef HV_TIME_H_ +#define HV_TIME_H_ + +#include "hexport.h" +#include "hplatform.h" + +BEGIN_EXTERN_C + +#define SECONDS_PER_MINUTE 60 +#define SECONDS_PER_HOUR 3600 +#define SECONDS_PER_DAY 86400 // 24*3600 +#define SECONDS_PER_WEEK 604800 // 7*24*3600 + +#define IS_LEAP_YEAR(year) (((year)%4 == 0 && (year)%100 != 0) || (year)%400 == 0) + +typedef struct datetime_s { + int year; + int month; + int day; + int hour; + int min; + int sec; + int ms; +} datetime_t; + +#ifdef _MSC_VER +/* @see winsock2.h +// Structure used in select() call, taken from the BSD file sys/time.h +struct timeval { + long tv_sec; + long tv_usec; +}; +*/ + +struct timezone { + int tz_minuteswest; /* of Greenwich */ + int tz_dsttime; /* type of dst correction to apply */ +}; + +#include +HV_INLINE int gettimeofday(struct timeval *tv, struct timezone *tz) { + struct _timeb tb; + _ftime(&tb); + if (tv) { + tv->tv_sec = (long)tb.time; + tv->tv_usec = tb.millitm * 1000; + } + if (tz) { + tz->tz_minuteswest = tb.timezone; + tz->tz_dsttime = tb.dstflag; + } + return 0; +} +#endif + +HV_EXPORT unsigned int gettick_ms(); +HV_INLINE unsigned long long gettimeofday_ms() { + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * (unsigned long long)1000 + tv.tv_usec/1000; +} +HV_INLINE unsigned long long gettimeofday_us() { + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * (unsigned long long)1000000 + tv.tv_usec; +} +HV_EXPORT unsigned long long gethrtime_us(); + +HV_EXPORT datetime_t datetime_now(); +HV_EXPORT datetime_t datetime_localtime(time_t seconds); +HV_EXPORT time_t datetime_mktime(datetime_t* dt); + +HV_EXPORT datetime_t* datetime_past(datetime_t* dt, int days DEFAULT(1)); +HV_EXPORT datetime_t* datetime_future(datetime_t* dt, int days DEFAULT(1)); + +#define TIME_FMT "%02d:%02d:%02d" +#define TIME_FMT_BUFLEN 12 +HV_EXPORT char* duration_fmt(int sec, char* buf); + +#define DATETIME_FMT "%04d-%02d-%02d %02d:%02d:%02d" +#define DATETIME_FMT_ISO "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ" +#define DATETIME_FMT_BUFLEN 30 +HV_EXPORT char* datetime_fmt(datetime_t* dt, char* buf); +HV_EXPORT char* datetime_fmt_iso(datetime_t* dt, char* buf); + +#define GMTIME_FMT "%.3s, %02d %.3s %04d %02d:%02d:%02d GMT" +#define GMTIME_FMT_BUFLEN 30 +HV_EXPORT char* gmtime_fmt(time_t time, char* buf); + +HV_EXPORT int days_of_month(int month, int year); + +HV_EXPORT int month_atoi(const char* month); +HV_EXPORT const char* month_itoa(int month); + +HV_EXPORT int weekday_atoi(const char* weekday); +HV_EXPORT const char* weekday_itoa(int weekday); + +HV_EXPORT datetime_t hv_compile_datetime(); + +/* + * minute hour day week month action + * 0~59 0~23 1~31 0~6 1~12 + * -1 -1 -1 -1 -1 cron.minutely + * 30 -1 -1 -1 -1 cron.hourly + * 30 1 -1 -1 -1 cron.daily + * 30 1 15 -1 -1 cron.monthly + * 30 1 -1 0 -1 cron.weekly + * 30 1 1 -1 10 cron.yearly + */ +HV_EXPORT time_t cron_next_timeout(int minute, int hour, int day, int week, int month); + +END_EXTERN_C + +#endif // HV_TIME_H_ diff --git a/3rdPartner/libhv/base/hversion.c b/3rdPartner/libhv/base/hversion.c new file mode 100644 index 0000000..31a97d9 --- /dev/null +++ b/3rdPartner/libhv/base/hversion.c @@ -0,0 +1,48 @@ +#include "hversion.h" + +#include "htime.h" + +const char* hv_compile_version() { + static char s_version[16] = {0}; + datetime_t dt = hv_compile_datetime(); + snprintf(s_version, sizeof(s_version), "%d.%d.%d.%d", + HV_VERSION_MAJOR, dt.year%100, dt.month, dt.day); + return s_version; +} + +int version_atoi(const char* str) { + int hex = 0; + + // trim v1.2.3.4 + const char* pv = strchr(str, 'v'); + const char* pdot = pv ? pv+1 : str; + + while (1) { + hex = (hex << 8) | atoi(pdot); + pdot = strchr(pdot, '.'); + if (pdot == NULL) break; + ++pdot; + } + + return hex; +} + +void version_itoa(int num, char* str) { + char* ch = (char*)# + sprintf(str, "%d.%d.%d.%d", ch[3], ch[2], ch[1], ch[0]); + + // trim 0.1.2.3 + const char* p = str; + while (1) { + if (p[0] == '0' && p[1] == '.') { + p += 2; + } + else { + break; + } + } + + if (p != str) { + strcpy(str, p); + } +} diff --git a/3rdPartner/libhv/base/hversion.h b/3rdPartner/libhv/base/hversion.h new file mode 100644 index 0000000..d88dd42 --- /dev/null +++ b/3rdPartner/libhv/base/hversion.h @@ -0,0 +1,34 @@ +#ifndef HV_VERSION_H_ +#define HV_VERSION_H_ + +#include "hexport.h" +#include "hdef.h" + +BEGIN_EXTERN_C + +#define HV_VERSION_MAJOR 1 +#define HV_VERSION_MINOR 3 +#define HV_VERSION_PATCH 2 + +#define HV_VERSION_STRING STRINGIFY(HV_VERSION_MAJOR) "." \ + STRINGIFY(HV_VERSION_MINOR) "." \ + STRINGIFY(HV_VERSION_PATCH) + +#define HV_VERSION_NUMBER ((HV_VERSION_MAJOR << 16) | (HV_VERSION_MINOR << 8) | HV_VERSION_PATCH) + + +HV_INLINE const char* hv_version() { + return HV_VERSION_STRING; +} + +HV_EXPORT const char* hv_compile_version(); + +// 1.2.3.4 => 0x01020304 +HV_EXPORT int version_atoi(const char* str); + +// 0x01020304 => 1.2.3.4 +HV_EXPORT void version_itoa(int hex, char* str); + +END_EXTERN_C + +#endif // HV_VERSION_H_ diff --git a/3rdPartner/libhv/base/list.h b/3rdPartner/libhv/base/list.h new file mode 100644 index 0000000..97a7d7a --- /dev/null +++ b/3rdPartner/libhv/base/list.h @@ -0,0 +1,733 @@ +#ifndef _LINUX_LIST_H +#define _LINUX_LIST_H + +/* + * Simple doubly linked list implementation. + * + * Some of the internal functions ("__xxx") are useful when + * manipulating whole lists rather than single entries, as + * sometimes we already know the next/prev entries and we can + * generate better code by using them directly rather than + * using the generic single-entry routines. + */ + +#include + +#ifndef prefetch +#ifdef __GNUC__ + #define prefetch(x) __builtin_prefetch(x) +#else + #define prefetch(x) (void)0 +#endif +#endif + +struct list_head { + struct list_head *next, *prev; +}; +#define list_node list_head + +struct hlist_head { + struct hlist_node *first; +}; + +struct hlist_node { + struct hlist_node *next, **pprev; +}; + +#define LIST_HEAD_INIT(name) { &(name), &(name) } +// TODO: defined LIST_HEAD +#ifndef LIST_HEAD +#define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name) +#endif +#define INIT_LIST_HEAD list_init +static inline void list_init(struct list_head *list) +{ + list->next = list; + list->prev = list; +} + +/* + * Insert a new entry between two known consecutive entries. + * + * This is only for internal list manipulation where we know + * the prev/next entries already! + */ +static inline void __list_add(struct list_head *n, + struct list_head *prev, + struct list_head *next) +{ + next->prev = n; + n->next = next; + n->prev = prev; + prev->next = n; +} + +/** + * list_add - add a new entry + * @new: new entry to be added + * @head: list head to add it after + * + * Insert a new entry after the specified head. + * This is good for implementing stacks. + */ +static inline void list_add(struct list_head *n, struct list_head *head) +{ + __list_add(n, head, head->next); +} + + +/** + * list_add_tail - add a new entry + * @new: new entry to be added + * @head: list head to add it before + * + * Insert a new entry before the specified head. + * This is useful for implementing queues. + */ +static inline void list_add_tail(struct list_head *n, struct list_head *head) +{ + __list_add(n, head->prev, head); +} + +/* + * Delete a list entry by making the prev/next entries + * point to each other. + * + * This is only for internal list manipulation where we know + * the prev/next entries already! + */ +static inline void __list_del(struct list_head * prev, struct list_head * next) +{ + next->prev = prev; + prev->next = next; +} + +/** + * list_del - deletes entry from list. + * @entry: the element to delete from the list. + * Note: list_empty() on entry does not return true after this, the entry is + * in an undefined state. + */ +static inline void __list_del_entry(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); +} + +static inline void list_del(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); + //entry->next = NULL; + //entry->prev = NULL; +} + +/** + * list_replace - replace old entry by new one + * @old : the element to be replaced + * @new : the new element to insert + * + * If @old was empty, it will be overwritten. + */ +static inline void list_replace(struct list_head *old, + struct list_head *n) +{ + n->next = old->next; + n->next->prev = n; + n->prev = old->prev; + n->prev->next = n; +} + +static inline void list_replace_init(struct list_head *old, + struct list_head *n) +{ + list_replace(old, n); + INIT_LIST_HEAD(old); +} + +/** + * list_del_init - deletes entry from list and reinitialize it. + * @entry: the element to delete from the list. + */ +static inline void list_del_init(struct list_head *entry) +{ + __list_del_entry(entry); + INIT_LIST_HEAD(entry); +} + +/** + * list_move - delete from one list and add as another's head + * @list: the entry to move + * @head: the head that will precede our entry + */ +static inline void list_move(struct list_head *list, struct list_head *head) +{ + __list_del_entry(list); + list_add(list, head); +} + +/** + * list_move_tail - delete from one list and add as another's tail + * @list: the entry to move + * @head: the head that will follow our entry + */ +static inline void list_move_tail(struct list_head *list, + struct list_head *head) +{ + __list_del_entry(list); + list_add_tail(list, head); +} + +/** + * list_is_last - tests whether @list is the last entry in list @head + * @list: the entry to test + * @head: the head of the list + */ +static inline int list_is_last(const struct list_head *list, + const struct list_head *head) +{ + return list->next == head; +} + +/** + * list_empty - tests whether a list is empty + * @head: the list to test. + */ +static inline int list_empty(const struct list_head *head) +{ + return head->next == head; +} + +/** + * list_empty_careful - tests whether a list is empty and not being modified + * @head: the list to test + * + * Description: + * tests whether a list is empty _and_ checks that no other CPU might be + * in the process of modifying either member (next or prev) + * + * NOTE: using list_empty_careful() without synchronization + * can only be safe if the only activity that can happen + * to the list entry is list_del_init(). Eg. it cannot be used + * if another CPU could re-list_add() it. + */ +static inline int list_empty_careful(const struct list_head *head) +{ + struct list_head *next = head->next; + return (next == head) && (next == head->prev); +} + +/** + * list_rotate_left - rotate the list to the left + * @head: the head of the list + */ +static inline void list_rotate_left(struct list_head *head) +{ + struct list_head *first; + + if (!list_empty(head)) { + first = head->next; + list_move_tail(first, head); + } +} + +/** + * list_is_singular - tests whether a list has just one entry. + * @head: the list to test. + */ +static inline int list_is_singular(const struct list_head *head) +{ + return !list_empty(head) && (head->next == head->prev); +} + +static inline void __list_cut_position(struct list_head *list, + struct list_head *head, struct list_head *entry) +{ + struct list_head *new_first = entry->next; + list->next = head->next; + list->next->prev = list; + list->prev = entry; + entry->next = list; + head->next = new_first; + new_first->prev = head; +} + +/** + * list_cut_position - cut a list into two + * @list: a new list to add all removed entries + * @head: a list with entries + * @entry: an entry within head, could be the head itself + * and if so we won't cut the list + * + * This helper moves the initial part of @head, up to and + * including @entry, from @head to @list. You should + * pass on @entry an element you know is on @head. @list + * should be an empty list or a list you do not care about + * losing its data. + * + */ +static inline void list_cut_position(struct list_head *list, + struct list_head *head, struct list_head *entry) +{ + if (list_empty(head)) + return; + if (list_is_singular(head) && + (head->next != entry && head != entry)) + return; + if (entry == head) + INIT_LIST_HEAD(list); + else + __list_cut_position(list, head, entry); +} + +static inline void __list_splice(const struct list_head *list, + struct list_head *prev, + struct list_head *next) +{ + struct list_head *first = list->next; + struct list_head *last = list->prev; + + first->prev = prev; + prev->next = first; + + last->next = next; + next->prev = last; +} + +/** + * list_splice - join two lists, this is designed for stacks + * @list: the new list to add. + * @head: the place to add it in the first list. + */ +static inline void list_splice(const struct list_head *list, + struct list_head *head) +{ + if (!list_empty(list)) + __list_splice(list, head, head->next); +} + +/** + * list_splice_tail - join two lists, each list being a queue + * @list: the new list to add. + * @head: the place to add it in the first list. + */ +static inline void list_splice_tail(struct list_head *list, + struct list_head *head) +{ + if (!list_empty(list)) + __list_splice(list, head->prev, head); +} + +/** + * list_splice_init - join two lists and reinitialise the emptied list. + * @list: the new list to add. + * @head: the place to add it in the first list. + * + * The list at @list is reinitialised + */ +static inline void list_splice_init(struct list_head *list, + struct list_head *head) +{ + if (!list_empty(list)) { + __list_splice(list, head, head->next); + INIT_LIST_HEAD(list); + } +} + +/** + * list_splice_tail_init - join two lists and reinitialise the emptied list + * @list: the new list to add. + * @head: the place to add it in the first list. + * + * Each of the lists is a queue. + * The list at @list is reinitialised + */ +static inline void list_splice_tail_init(struct list_head *list, + struct list_head *head) +{ + if (!list_empty(list)) { + __list_splice(list, head->prev, head); + INIT_LIST_HEAD(list); + } +} + +/** + * list_entry - get the struct for this entry + * @ptr: the &struct list_head pointer. + * @type: the type of the struct this is embedded in. + * @member: the name of the list_struct within the struct. + */ +#define list_entry(ptr, type, member) \ + container_of(ptr, type, member) + +/** + * list_first_entry - get the first element from a list + * @ptr: the list head to take the element from. + * @type: the type of the struct this is embedded in. + * @member: the name of the list_struct within the struct. + * + * Note, that list is expected to be not empty. + */ +#define list_first_entry(ptr, type, member) \ + list_entry((ptr)->next, type, member) + +/** + * list_for_each - iterate over a list + * @pos: the &struct list_head to use as a loop cursor. + * @head: the head for your list. + */ +#define list_for_each(pos, head) \ + for (pos = (head)->next; prefetch(pos->next), pos != (head); \ + pos = pos->next) + +/** + * __list_for_each - iterate over a list + * @pos: the &struct list_head to use as a loop cursor. + * @head: the head for your list. + * + * This variant differs from list_for_each() in that it's the + * simplest possible list iteration code, no prefetching is done. + * Use this for code that knows the list to be very short (empty + * or 1 entry) most of the time. + */ +#define __list_for_each(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + +/** + * list_for_each_prev - iterate over a list backwards + * @pos: the &struct list_head to use as a loop cursor. + * @head: the head for your list. + */ +#define list_for_each_prev(pos, head) \ + for (pos = (head)->prev; prefetch(pos->prev), pos != (head); \ + pos = pos->prev) + +/** + * list_for_each_safe - iterate over a list safe against removal of list entry + * @pos: the &struct list_head to use as a loop cursor. + * @n: another &struct list_head to use as temporary storage + * @head: the head for your list. + */ +#define list_for_each_safe(pos, n, head) \ + for (pos = (head)->next, n = pos->next; pos != (head); \ + pos = n, n = pos->next) + +/** + * list_for_each_prev_safe - iterate over a list backwards safe against removal of list entry + * @pos: the &struct list_head to use as a loop cursor. + * @n: another &struct list_head to use as temporary storage + * @head: the head for your list. + */ +#define list_for_each_prev_safe(pos, n, head) \ + for (pos = (head)->prev, n = pos->prev; \ + prefetch(pos->prev), pos != (head); \ + pos = n, n = pos->prev) + +/** + * list_for_each_entry - iterate over list of given type + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + */ +#define list_for_each_entry(pos, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member); \ + prefetch(pos->member.next), &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member)) + +/** + * list_for_each_entry_reverse - iterate backwards over list of given type. + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + */ +#define list_for_each_entry_reverse(pos, head, member) \ + for (pos = list_entry((head)->prev, typeof(*pos), member); \ + prefetch(pos->member.prev), &pos->member != (head); \ + pos = list_entry(pos->member.prev, typeof(*pos), member)) + +/** + * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue() + * @pos: the type * to use as a start point + * @head: the head of the list + * @member: the name of the list_struct within the struct. + * + * Prepares a pos entry for use as a start point in list_for_each_entry_continue(). + */ +#define list_prepare_entry(pos, head, member) \ + ((pos) ? : list_entry(head, typeof(*pos), member)) + +/** + * list_for_each_entry_continue - continue iteration over list of given type + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Continue to iterate over list of given type, continuing after + * the current position. + */ +#define list_for_each_entry_continue(pos, head, member) \ + for (pos = list_entry(pos->member.next, typeof(*pos), member); \ + prefetch(pos->member.next), &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member)) + +/** + * list_for_each_entry_continue_reverse - iterate backwards from the given point + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Start to iterate over list of given type backwards, continuing after + * the current position. + */ +#define list_for_each_entry_continue_reverse(pos, head, member) \ + for (pos = list_entry(pos->member.prev, typeof(*pos), member); \ + prefetch(pos->member.prev), &pos->member != (head); \ + pos = list_entry(pos->member.prev, typeof(*pos), member)) + +/** + * list_for_each_entry_from - iterate over list of given type from the current point + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate over list of given type, continuing from current position. + */ +#define list_for_each_entry_from(pos, head, member) \ + for (; prefetch(pos->member.next), &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member)) + +/** + * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry + * @pos: the type * to use as a loop cursor. + * @n: another type * to use as temporary storage + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + */ +#define list_for_each_entry_safe(pos, n, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member), \ + n = list_entry(pos->member.next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.next, typeof(*n), member)) + +/** + * list_for_each_entry_safe_continue - continue list iteration safe against removal + * @pos: the type * to use as a loop cursor. + * @n: another type * to use as temporary storage + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate over list of given type, continuing after current point, + * safe against removal of list entry. + */ +#define list_for_each_entry_safe_continue(pos, n, head, member) \ + for (pos = list_entry(pos->member.next, typeof(*pos), member), \ + n = list_entry(pos->member.next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.next, typeof(*n), member)) + +/** + * list_for_each_entry_safe_from - iterate over list from current point safe against removal + * @pos: the type * to use as a loop cursor. + * @n: another type * to use as temporary storage + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate over list of given type from current point, safe against + * removal of list entry. + */ +#define list_for_each_entry_safe_from(pos, n, head, member) \ + for (n = list_entry(pos->member.next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.next, typeof(*n), member)) + +/** + * list_for_each_entry_safe_reverse - iterate backwards over list safe against removal + * @pos: the type * to use as a loop cursor. + * @n: another type * to use as temporary storage + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate backwards over list of given type, safe against removal + * of list entry. + */ +#define list_for_each_entry_safe_reverse(pos, n, head, member) \ + for (pos = list_entry((head)->prev, typeof(*pos), member), \ + n = list_entry(pos->member.prev, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.prev, typeof(*n), member)) + +/** + * list_safe_reset_next - reset a stale list_for_each_entry_safe loop + * @pos: the loop cursor used in the list_for_each_entry_safe loop + * @n: temporary storage used in list_for_each_entry_safe + * @member: the name of the list_struct within the struct. + * + * list_safe_reset_next is not safe to use in general if the list may be + * modified concurrently (eg. the lock is dropped in the loop body). An + * exception to this is if the cursor element (pos) is pinned in the list, + * and list_safe_reset_next is called after re-taking the lock and before + * completing the current iteration of the loop body. + */ +#define list_safe_reset_next(pos, n, member) \ + n = list_entry(pos->member.next, typeof(*pos), member) + +/* + * Double linked lists with a single pointer list head. + * Mostly useful for hash tables where the two pointer list head is + * too wasteful. + * You lose the ability to access the tail in O(1). + */ + +#define HLIST_HEAD_INIT { .first = NULL } +#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } +#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) +#define INIT_HLIST_NODE hlist_init +static inline void hlist_init(struct hlist_node *h) +{ + h->next = NULL; + h->pprev = NULL; +} + +static inline int hlist_unhashed(const struct hlist_node *h) +{ + return !h->pprev; +} + +static inline int hlist_empty(const struct hlist_head *h) +{ + return !h->first; +} + +static inline void __hlist_del(struct hlist_node *n) +{ + struct hlist_node *next = n->next; + struct hlist_node **pprev = n->pprev; + *pprev = next; + if (next) + next->pprev = pprev; +} + +static inline void hlist_del(struct hlist_node *n) +{ + __hlist_del(n); + //n->next = NULL; + //n->pprev = NULL; +} + +static inline void hlist_del_init(struct hlist_node *n) +{ + if (!hlist_unhashed(n)) { + __hlist_del(n); + INIT_HLIST_NODE(n); + } +} + +static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) +{ + struct hlist_node *first = h->first; + n->next = first; + if (first) + first->pprev = &n->next; + h->first = n; + n->pprev = &h->first; +} + +/* next must be != NULL */ +static inline void hlist_add_before(struct hlist_node *n, + struct hlist_node *next) +{ + n->pprev = next->pprev; + n->next = next; + next->pprev = &n->next; + *(n->pprev) = n; +} + +static inline void hlist_add_after(struct hlist_node *n, + struct hlist_node *next) +{ + next->next = n->next; + n->next = next; + next->pprev = &n->next; + + if(next->next) + next->next->pprev = &next->next; +} + +/* after that we'll appear to be on some hlist and hlist_del will work */ +static inline void hlist_add_fake(struct hlist_node *n) +{ + n->pprev = &n->next; +} + +/* + * Move a list from one list head to another. Fixup the pprev + * reference of the first entry if it exists. + */ +static inline void hlist_move_list(struct hlist_head *old, + struct hlist_head *n) +{ + n->first = old->first; + if (n->first) + n->first->pprev = &n->first; + old->first = NULL; +} + +#define hlist_entry(ptr, type, member) container_of(ptr,type,member) + +#define hlist_for_each(pos, head) \ + for (pos = (head)->first; pos && ({ prefetch(pos->next); 1; }); \ + pos = pos->next) + +#define hlist_for_each_safe(pos, n, head) \ + for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \ + pos = n) + +/** + * hlist_for_each_entry - iterate over list of given type + * @tpos: the type * to use as a loop cursor. + * @pos: the &struct hlist_node to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry(tpos, pos, head, member) \ + for (pos = (head)->first; \ + pos && ({ prefetch(pos->next); 1;}) && \ + ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ + pos = pos->next) + +/** + * hlist_for_each_entry_continue - iterate over a hlist continuing after current point + * @tpos: the type * to use as a loop cursor. + * @pos: the &struct hlist_node to use as a loop cursor. + * @member: the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_continue(tpos, pos, member) \ + for (pos = (pos)->next; \ + pos && ({ prefetch(pos->next); 1;}) && \ + ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ + pos = pos->next) + +/** + * hlist_for_each_entry_from - iterate over a hlist continuing from current point + * @tpos: the type * to use as a loop cursor. + * @pos: the &struct hlist_node to use as a loop cursor. + * @member: the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_from(tpos, pos, member) \ + for (; pos && ({ prefetch(pos->next); 1;}) && \ + ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ + pos = pos->next) + +/** + * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry + * @tpos: the type * to use as a loop cursor. + * @pos: the &struct hlist_node to use as a loop cursor. + * @n: another &struct hlist_node to use as temporary storage + * @head: the head for your list. + * @member: the name of the hlist_node within the struct. + */ +#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \ + for (pos = (head)->first; \ + pos && ({ n = pos->next; 1; }) && \ + ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ + pos = n) + +#endif diff --git a/3rdPartner/libhv/base/netinet.h b/3rdPartner/libhv/base/netinet.h new file mode 100644 index 0000000..4969639 --- /dev/null +++ b/3rdPartner/libhv/base/netinet.h @@ -0,0 +1,194 @@ +#ifndef HV_NETINET_H_ +#define HV_NETINET_H_ + +#include "hplatform.h" + +/* +#ifdef OS_UNIX +#include +#include +#include +#include +#include +typedef struct iphdr iphdr_t; +typedef struct udphdr udphdr_t; +typedef struct tcphdr tcphdr_t; + +typedef struct icmphdr icmphdr_t; +typedef struct icmp icmp_t; +#else +*/ +// sizeof(iphdr_t) = 20 +typedef struct iphdr_s { +#if BYTE_ORDER == LITTLE_ENDIAN + uint8_t ihl:4; // ip header length + uint8_t version:4; +#elif BYTE_ORDER == BIG_ENDIAN + uint8_t version:4; + uint8_t ihl:4; +#else +#error "BYTE_ORDER undefined!" +#endif + uint8_t tos; // type of service + uint16_t tot_len; // total length + uint16_t id; + uint16_t frag_off; // fragment offset + uint8_t ttl; // Time To Live + uint8_t protocol; + uint16_t check; // checksum + uint32_t saddr; // srcaddr + uint32_t daddr; // dstaddr + /*The options start here.*/ +} iphdr_t; + +// sizeof(udphdr_t) = 8 +typedef struct udphdr_s { + uint16_t source; // source port + uint16_t dest; // dest port + uint16_t len; // udp length + uint16_t check; // checksum +} udphdr_t; + +// sizeof(tcphdr_t) = 20 +typedef struct tcphdr_s { + uint16_t source; // source port + uint16_t dest; // dest port + uint32_t seq; // sequence + uint32_t ack_seq; +#if BYTE_ORDER == LITTLE_ENDIAN + uint16_t res1:4; + uint16_t doff:4; + uint16_t fin:1; + uint16_t syn:1; + uint16_t rst:1; + uint16_t psh:1; + uint16_t ack:1; + uint16_t urg:1; + uint16_t res2:2; +#elif BYTE_ORDER == BIG_ENDIAN + uint16_t doff:4; + uint16_t res1:4; + uint16_t res2:2; + uint16_t urg:1; + uint16_t ack:1; + uint16_t psh:1; + uint16_t rst:1; + uint16_t syn:1; + uint16_t fin:1; +#else +#error "BYTE_ORDER undefined!" +#endif + uint16_t window; + uint16_t check; // checksum + uint16_t urg_ptr; // urgent pointer +} tcphdr_t; + +//----------------------icmp---------------------------------- +#define ICMP_ECHOREPLY 0 /* Echo Reply */ +#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ +#define ICMP_SOURCE_QUENCH 4 /* Source Quench */ +#define ICMP_REDIRECT 5 /* Redirect (change route) */ +#define ICMP_ECHO 8 /* Echo Request */ +#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */ +#define ICMP_PARAMETERPROB 12 /* Parameter Problem */ +#define ICMP_TIMESTAMP 13 /* Timestamp Request */ +#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */ +#define ICMP_INFO_REQUEST 15 /* Information Request */ +#define ICMP_INFO_REPLY 16 /* Information Reply */ +#define ICMP_ADDRESS 17 /* Address Mask Request */ +#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */ + +// sizeof(icmphdr_t) = 8 +typedef struct icmphdr_s { + uint8_t type; // message type + uint8_t code; // type sub-code + uint16_t checksum; + union { + struct { + uint16_t id; + uint16_t sequence; + } echo; + uint32_t gateway; + struct { + uint16_t reserved; + uint16_t mtu; + } frag; + } un; +} icmphdr_t; + +typedef struct icmp_s { + uint8_t icmp_type; + uint8_t icmp_code; + uint16_t icmp_cksum; + union { + uint8_t ih_pptr; + struct in_addr ih_gwaddr; + struct ih_idseq { + uint16_t icd_id; + uint16_t icd_seq; + } ih_idseq; + uint32_t ih_void; + + struct ih_pmtu { + uint16_t ipm_void; + uint16_t ipm_nextmtu; + } ih_pmtu; + + struct ih_rtradv { + uint8_t irt_num_addrs; + uint8_t irt_wpa; + uint16_t irt_lifetime; + } ih_rtradv; + } icmp_hun; +#define icmp_pptr icmp_hun.ih_pptr +#define icmp_gwaddr icmp_hun.ih_gwaddr +#define icmp_id icmp_hun.ih_idseq.icd_id +#define icmp_seq icmp_hun.ih_idseq.icd_seq +#define icmp_void icmp_hun.ih_void +#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void +#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu +#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs +#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa +#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime + + union { + struct { + uint32_t its_otime; + uint32_t its_rtime; + uint32_t its_ttime; + } id_ts; + /* + struct { + struct ip idi_ip; + } id_ip; + struct icmp_ra_addr id_radv; + */ + uint32_t id_mask; + uint8_t id_data[1]; + } icmp_dun; +#define icmp_otime icmp_dun.id_ts.its_otime +#define icmp_rtime icmp_dun.id_ts.its_rtime +#define icmp_ttime icmp_dun.id_ts.its_ttime +#define icmp_ip icmp_dun.id_ip.idi_ip +#define icmp_radv icmp_dun.id_radv +#define icmp_mask icmp_dun.id_mask +#define icmp_data icmp_dun.id_data +} icmp_t; +//#endif + +static inline uint16_t checksum(uint8_t* buf, int len) { + unsigned int sum = 0; + uint16_t* ptr = (uint16_t*)buf; + while(len > 1) { + sum += *ptr++; + len -= 2; + } + if(len) { + sum += *(uint8_t*)ptr; + } + sum = (sum >> 16) + (sum & 0xffff); + sum += (sum >> 16); + return (uint16_t)(~sum); +}; + +#endif // HV_NETINET_H_ diff --git a/3rdPartner/libhv/base/queue.h b/3rdPartner/libhv/base/queue.h new file mode 100644 index 0000000..17140a9 --- /dev/null +++ b/3rdPartner/libhv/base/queue.h @@ -0,0 +1,105 @@ +#ifndef HV_QUEUE_H_ +#define HV_QUEUE_H_ + +/* + * queue + * FIFO: push_back,pop_front + * stack + * LIFO: push_back,pop_back + */ + +#include // for assert +#include // for NULL +#include // for malloc,realloc,free +#include // for memset,memmove + +#include "hbase.h" // for HV_ALLOC, HV_FREE + +#define QUEUE_INIT_SIZE 16 + +// #include +// typedef std::deque qtype; +#define QUEUE_DECL(type, qtype) \ +struct qtype { \ + type* ptr; \ + size_t size; \ + size_t maxsize;\ + size_t _offset;\ +}; \ +typedef struct qtype qtype;\ +\ +static inline type* qtype##_data(qtype* p) {\ + return p->ptr + p->_offset;\ +}\ +\ +static inline int qtype##_size(qtype* p) {\ + return p->size;\ +}\ +\ +static inline int qtype##_maxsize(qtype* p) {\ + return p->maxsize;\ +}\ +\ +static inline int qtype##_empty(qtype* p) {\ + return p->size == 0;\ +}\ +\ +static inline type* qtype##_front(qtype* p) {\ + return p->size == 0 ? NULL : p->ptr + p->_offset;\ +}\ +\ +static inline type* qtype##_back(qtype* p) {\ + return p->size == 0 ? NULL : p->ptr + p->_offset + p->size - 1;\ +}\ +\ +static inline void qtype##_init(qtype* p, int maxsize) {\ + p->_offset = 0;\ + p->size = 0;\ + p->maxsize = maxsize;\ + HV_ALLOC(p->ptr, sizeof(type) * maxsize);\ +}\ +\ +static inline void qtype##_clear(qtype* p) {\ + p->_offset = 0;\ + p->size = 0;\ + memset(p->ptr, 0, sizeof(type) * p->maxsize);\ +}\ +\ +static inline void qtype##_cleanup(qtype* p) {\ + HV_FREE(p->ptr);\ + p->_offset = p->size = p->maxsize = 0;\ +}\ +\ +static inline void qtype##_resize(qtype* p, int maxsize) {\ + if (maxsize == 0) maxsize = QUEUE_INIT_SIZE;\ + p->ptr = (type*)hv_realloc(p->ptr, sizeof(type) * maxsize, sizeof(type) * p->maxsize);\ + p->maxsize = maxsize;\ +}\ +\ +static inline void qtype##_double_resize(qtype* p) {\ + qtype##_resize(p, p->maxsize * 2);\ +}\ +\ +static inline void qtype##_push_back(qtype* p, type* elem) {\ + if (p->size == p->maxsize) {\ + qtype##_double_resize(p);\ + }\ + else if (p->_offset + p->size == p->maxsize) {\ + memmove(p->ptr, p->ptr + p->_offset, sizeof(type) * p->size);\ + p->_offset = 0;\ + }\ + p->ptr[p->_offset + p->size] = *elem;\ + p->size++;\ +}\ +static inline void qtype##_pop_front(qtype* p) {\ + assert(p->size > 0);\ + p->size--;\ + if (++p->_offset == p->maxsize) p->_offset = 0;\ +}\ +\ +static inline void qtype##_pop_back(qtype* p) {\ + assert(p->size > 0);\ + p->size--;\ +}\ + +#endif // HV_QUEUE_H_ diff --git a/3rdPartner/libhv/base/rbtree.c b/3rdPartner/libhv/base/rbtree.c new file mode 100644 index 0000000..9998f23 --- /dev/null +++ b/3rdPartner/libhv/base/rbtree.c @@ -0,0 +1,386 @@ +/* + Red Black Trees + (C) 1999 Andrea Arcangeli + (C) 2002 David Woodhouse + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + linux/lib/rbtree.c +*/ + +#include "rbtree.h" + +static void __rb_rotate_left(struct rb_node *node, struct rb_root *root) +{ + struct rb_node *right = node->rb_right; + + if ((node->rb_right = right->rb_left)) + right->rb_left->rb_parent = node; + right->rb_left = node; + + if ((right->rb_parent = node->rb_parent)) + { + if (node == node->rb_parent->rb_left) + node->rb_parent->rb_left = right; + else + node->rb_parent->rb_right = right; + } + else + root->rb_node = right; + node->rb_parent = right; +} + +static void __rb_rotate_right(struct rb_node *node, struct rb_root *root) +{ + struct rb_node *left = node->rb_left; + + if ((node->rb_left = left->rb_right)) + left->rb_right->rb_parent = node; + left->rb_right = node; + + if ((left->rb_parent = node->rb_parent)) + { + if (node == node->rb_parent->rb_right) + node->rb_parent->rb_right = left; + else + node->rb_parent->rb_left = left; + } + else + root->rb_node = left; + node->rb_parent = left; +} + +void rb_insert_color(struct rb_node *node, struct rb_root *root) +{ + struct rb_node *parent, *gparent; + + while ((parent = node->rb_parent) && parent->rb_color == RB_RED) + { + gparent = parent->rb_parent; + + if (parent == gparent->rb_left) + { + { + register struct rb_node *uncle = gparent->rb_right; + if (uncle && uncle->rb_color == RB_RED) + { + uncle->rb_color = RB_BLACK; + parent->rb_color = RB_BLACK; + gparent->rb_color = RB_RED; + node = gparent; + continue; + } + } + + if (parent->rb_right == node) + { + register struct rb_node *tmp; + __rb_rotate_left(parent, root); + tmp = parent; + parent = node; + node = tmp; + } + + parent->rb_color = RB_BLACK; + gparent->rb_color = RB_RED; + __rb_rotate_right(gparent, root); + } else { + { + register struct rb_node *uncle = gparent->rb_left; + if (uncle && uncle->rb_color == RB_RED) + { + uncle->rb_color = RB_BLACK; + parent->rb_color = RB_BLACK; + gparent->rb_color = RB_RED; + node = gparent; + continue; + } + } + + if (parent->rb_left == node) + { + register struct rb_node *tmp; + __rb_rotate_right(parent, root); + tmp = parent; + parent = node; + node = tmp; + } + + parent->rb_color = RB_BLACK; + gparent->rb_color = RB_RED; + __rb_rotate_left(gparent, root); + } + } + + root->rb_node->rb_color = RB_BLACK; +} + +static void __rb_erase_color(struct rb_node *node, struct rb_node *parent, + struct rb_root *root) +{ + struct rb_node *other; + + while ((!node || node->rb_color == RB_BLACK) && node != root->rb_node) + { + if (parent->rb_left == node) + { + other = parent->rb_right; + if (other->rb_color == RB_RED) + { + other->rb_color = RB_BLACK; + parent->rb_color = RB_RED; + __rb_rotate_left(parent, root); + other = parent->rb_right; + } + if ((!other->rb_left || + other->rb_left->rb_color == RB_BLACK) + && (!other->rb_right || + other->rb_right->rb_color == RB_BLACK)) + { + other->rb_color = RB_RED; + node = parent; + parent = node->rb_parent; + } + else + { + if (!other->rb_right || + other->rb_right->rb_color == RB_BLACK) + { + register struct rb_node *o_left; + if ((o_left = other->rb_left)) + o_left->rb_color = RB_BLACK; + other->rb_color = RB_RED; + __rb_rotate_right(other, root); + other = parent->rb_right; + } + other->rb_color = parent->rb_color; + parent->rb_color = RB_BLACK; + if (other->rb_right) + other->rb_right->rb_color = RB_BLACK; + __rb_rotate_left(parent, root); + node = root->rb_node; + break; + } + } + else + { + other = parent->rb_left; + if (other->rb_color == RB_RED) + { + other->rb_color = RB_BLACK; + parent->rb_color = RB_RED; + __rb_rotate_right(parent, root); + other = parent->rb_left; + } + if ((!other->rb_left || + other->rb_left->rb_color == RB_BLACK) + && (!other->rb_right || + other->rb_right->rb_color == RB_BLACK)) + { + other->rb_color = RB_RED; + node = parent; + parent = node->rb_parent; + } + else + { + if (!other->rb_left || + other->rb_left->rb_color == RB_BLACK) + { + register struct rb_node *o_right; + if ((o_right = other->rb_right)) + o_right->rb_color = RB_BLACK; + other->rb_color = RB_RED; + __rb_rotate_left(other, root); + other = parent->rb_left; + } + other->rb_color = parent->rb_color; + parent->rb_color = RB_BLACK; + if (other->rb_left) + other->rb_left->rb_color = RB_BLACK; + __rb_rotate_right(parent, root); + node = root->rb_node; + break; + } + } + } + if (node) + node->rb_color = RB_BLACK; +} + +void rb_erase(struct rb_node *node, struct rb_root *root) +{ + struct rb_node *child, *parent; + int color; + + if (!node->rb_left) + child = node->rb_right; + else if (!node->rb_right) + child = node->rb_left; + else + { + struct rb_node *old = node, *left; + + node = node->rb_right; + while ((left = node->rb_left)) + node = left; + child = node->rb_right; + parent = node->rb_parent; + color = node->rb_color; + + if (child) + child->rb_parent = parent; + if (parent) + { + if (parent->rb_left == node) + parent->rb_left = child; + else + parent->rb_right = child; + } + else + root->rb_node = child; + + if (node->rb_parent == old) + parent = node; + node->rb_parent = old->rb_parent; + node->rb_color = old->rb_color; + node->rb_right = old->rb_right; + node->rb_left = old->rb_left; + + if (old->rb_parent) + { + if (old->rb_parent->rb_left == old) + old->rb_parent->rb_left = node; + else + old->rb_parent->rb_right = node; + } else + root->rb_node = node; + + old->rb_left->rb_parent = node; + if (old->rb_right) + old->rb_right->rb_parent = node; + goto color; + } + + parent = node->rb_parent; + color = node->rb_color; + + if (child) + child->rb_parent = parent; + if (parent) + { + if (parent->rb_left == node) + parent->rb_left = child; + else + parent->rb_right = child; + } + else + root->rb_node = child; + + color: + if (color == RB_BLACK) + __rb_erase_color(child, parent, root); +} + +/* + * This function returns the first node (in sort order) of the tree. + */ +struct rb_node *rb_first(struct rb_root *root) +{ + struct rb_node *n; + + n = root->rb_node; + if (!n) + return (struct rb_node *)0; + while (n->rb_left) + n = n->rb_left; + return n; +} + +struct rb_node *rb_last(struct rb_root *root) +{ + struct rb_node *n; + + n = root->rb_node; + if (!n) + return (struct rb_node *)0; + while (n->rb_right) + n = n->rb_right; + return n; +} + +struct rb_node *rb_next(struct rb_node *node) +{ + /* If we have a right-hand child, go down and then left as far + as we can. */ + if (node->rb_right) { + node = node->rb_right; + while (node->rb_left) + node = node->rb_left; + return node; + } + + /* No right-hand children. Everything down and left is + smaller than us, so any 'next' node must be in the general + direction of our parent. Go up the tree; any time the + ancestor is a right-hand child of its parent, keep going + up. First time it's a left-hand child of its parent, said + parent is our 'next' node. */ + while (node->rb_parent && node == node->rb_parent->rb_right) + node = node->rb_parent; + + return node->rb_parent; +} + +struct rb_node *rb_prev(struct rb_node *node) +{ + /* If we have a left-hand child, go down and then right as far + as we can. */ + if (node->rb_left) { + node = node->rb_left; + while (node->rb_right) + node = node->rb_right; + return node; + } + + /* No left-hand children. Go up till we find an ancestor which + is a right-hand child of its parent */ + while (node->rb_parent && node == node->rb_parent->rb_left) + node = node->rb_parent; + + return node->rb_parent; +} + +void rb_replace_node(struct rb_node *victim, struct rb_node *newnode, + struct rb_root *root) +{ + struct rb_node *parent = victim->rb_parent; + + /* Set the surrounding nodes to point to the replacement */ + if (parent) { + if (victim == parent->rb_left) + parent->rb_left = newnode; + else + parent->rb_right = newnode; + } else { + root->rb_node = newnode; + } + if (victim->rb_left) + victim->rb_left->rb_parent = newnode; + if (victim->rb_right) + victim->rb_right->rb_parent = newnode; + + /* Copy the pointers/colour from the victim to the replacement */ + *newnode = *victim; +} diff --git a/3rdPartner/libhv/base/rbtree.h b/3rdPartner/libhv/base/rbtree.h new file mode 100644 index 0000000..602390a --- /dev/null +++ b/3rdPartner/libhv/base/rbtree.h @@ -0,0 +1,147 @@ +/* + Red Black Trees + (C) 1999 Andrea Arcangeli + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + linux/include/linux/rbtree.h + + To use rbtrees you'll have to implement your own insert and search cores. + This will avoid us to use callbacks and to drop drammatically performances. + I know it's not the cleaner way, but in C (not in C++) to get + performances and genericity... + + Some example of insert and search follows here. The search is a plain + normal search over an ordered tree. The insert instead must be implemented + in two steps: First, the code must insert the element in order as a red leaf + in the tree, and then the support library function rb_insert_color() must + be called. Such function will do the not trivial work to rebalance the + rbtree, if necessary. + +----------------------------------------------------------------------- +static inline struct page * rb_search_page_cache(struct inode * inode, + unsigned long offset) +{ + struct rb_node * n = inode->i_rb_page_cache.rb_node; + struct page * page; + + while (n) + { + page = rb_entry(n, struct page, rb_page_cache); + + if (offset < page->offset) + n = n->rb_left; + else if (offset > page->offset) + n = n->rb_right; + else + return page; + } + return NULL; +} + +static inline struct page * __rb_insert_page_cache(struct inode * inode, + unsigned long offset, + struct rb_node * node) +{ + struct rb_node ** p = &inode->i_rb_page_cache.rb_node; + struct rb_node * parent = NULL; + struct page * page; + + while (*p) + { + parent = *p; + page = rb_entry(parent, struct page, rb_page_cache); + + if (offset < page->offset) + p = &(*p)->rb_left; + else if (offset > page->offset) + p = &(*p)->rb_right; + else + return page; + } + + rb_link_node(node, parent, p); + + return NULL; +} + +static inline struct page * rb_insert_page_cache(struct inode * inode, + unsigned long offset, + struct rb_node * node) +{ + struct page * ret; + if ((ret = __rb_insert_page_cache(inode, offset, node))) + goto out; + rb_insert_color(node, &inode->i_rb_page_cache); + out: + return ret; +} +----------------------------------------------------------------------- +*/ + +#ifndef _LINUX_RBTREE_H +#define _LINUX_RBTREE_H + +struct rb_node +{ + struct rb_node *rb_parent; + struct rb_node *rb_right; + struct rb_node *rb_left; + char rb_color; +#define RB_RED 0 +#define RB_BLACK 1 +}; + +struct rb_root +{ + struct rb_node *rb_node; +}; + +#define RB_ROOT (struct rb_root){ (struct rb_node *)0, } +#define rb_entry(ptr, type, member) \ + ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) + +#ifdef __cplusplus +extern "C" +{ +#endif + +void rb_insert_color(struct rb_node *node, struct rb_root *root); +void rb_erase(struct rb_node *node, struct rb_root *root); + +/* Find logical next and previous nodes in a tree */ +struct rb_node *rb_next(struct rb_node *); +struct rb_node *rb_prev(struct rb_node *); +struct rb_node *rb_first(struct rb_root *); +struct rb_node *rb_last(struct rb_root *); + +/* Fast replacement of a single node without remove/rebalance/add/rebalance */ +void rb_replace_node(struct rb_node *victim, struct rb_node *newnode, + struct rb_root *root); + +#ifdef __cplusplus +} +#endif + +static inline void rb_link_node(struct rb_node *node, struct rb_node *parent, + struct rb_node **link) +{ + node->rb_parent = parent; + node->rb_color = RB_RED; + node->rb_left = node->rb_right = (struct rb_node *)0; + *link = node; +} + +#endif /* _LINUX_RBTREE_H */ diff --git a/3rdPartner/libhv/cert/cacert.pem b/3rdPartner/libhv/cert/cacert.pem new file mode 100644 index 0000000..65be218 --- /dev/null +++ b/3rdPartner/libhv/cert/cacert.pem @@ -0,0 +1,3476 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Wed Aug 28 03:12:10 2019 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.27. +## SHA256: fffa309937c3be940649293f749b8207fabc6eb224e50e4bb3f2c5e44e0d6a6b +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ +5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn +vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj +CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil +e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR +OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI +CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 +48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi +trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 +qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB +AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC +ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA +A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz ++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj +f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN +kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk +CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF +URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb +CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h +oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV +IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm +66+KAQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl +OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P +AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV +MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF +JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G3 +================================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y +olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t +x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy +EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K +Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur +mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 +1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp +07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo +FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE +41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu +yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq +KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 +v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA +8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b +8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r +mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq +1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI +JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV +tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +LuxTrust Global Root 2 +====================== +-----BEGIN CERTIFICATE----- +MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG +A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh +bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW +MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm +Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2 +xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC +wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm +1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm +FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF +wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/ +a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U +ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ +MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB +/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5 +Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT ++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ +FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN +H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW +7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu +ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA +VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR +TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt +/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc +7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I +iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +TrustCor RootCert CA-1 +====================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx +MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu +YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe +VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy +dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq +jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 +pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 +JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h +gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw +/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j +BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 +mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C +qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P +3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +TrustCor RootCert CA-2 +====================== +-----BEGIN CERTIFICATE----- +MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w +DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT +eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 +eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy +MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h +bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 +IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb +ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk +RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 +oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb +XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 +/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q +jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP +eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg +rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh +8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU +2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h +Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp +kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv +2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 +S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw +PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv +DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU +RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE +xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX +RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ +-----END CERTIFICATE----- + +TrustCor ECA-1 +============== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw +N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 +MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR +MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 +xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc +p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ +fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj +YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL +f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF +AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u +/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs +J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC +jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM +BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x +MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw +MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM +LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C +Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 +P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge +oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp +k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z +fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ +gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 +UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 +1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s +bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr +dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf +ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl +u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq +erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj +MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ +vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI +Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y +wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG +EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv +b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG +A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx +9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r +aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW +r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM +LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly +4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr +06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om +3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu +JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM +BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 +d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv +fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm +ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b +gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq +4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr +tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo +pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 +sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql +CFF1pkgl +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG +EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv +b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG +A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk +k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo +7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI +m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm +dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu +ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz +cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl +aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy +5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM +BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT +vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ ++YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw +c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da +WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r +n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu +Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ +7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs +gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld +o/DUhgkC +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU +Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej +QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP +0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 +glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa +KaqW04MjyaR7YbPMAuhd +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa +6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj +QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV +2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI +N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x +zPKwTdb+mciUqXWi4w== +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQELBQAwbzELMAkG +A1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJSG9uZyBLb25nMRYwFAYDVQQK +Ew1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2 +MDMwMjI5NDZaFw00MjA2MDMwMjI5NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtv +bmcxEjAQBgNVBAcTCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMX +SG9uZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz +iNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFOdem1p+/l6TWZ5Mwc50tf +jTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mIVoBc+L0sPOFMV4i707mV78vH9toxdCim +5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOe +sL4jpNrcyCse2m5FHomY2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj +0mRiikKYvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+TtbNe/ +JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZbx39ri1UbSsUgYT2u +y1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+l2oBlKN8W4UdKjk60FSh0Tlxnf0h ++bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YKTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsG +xVd7GYYKecsAyVKvQv83j+GjHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwID +AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e +i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEwDQYJKoZIhvcN +AQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG7BJ8dNVI0lkUmcDrudHr9Egw +W62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCkMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWld +y8joRTnU+kLBEUx3XZL7av9YROXrgZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov ++BS5gLNdTaqX4fnkGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDc +eqFS3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJmOzj/2ZQw +9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+l6mc1X5VTMbeRRAc6uk7 +nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6cJfTzPV4e0hz5sy229zdcxsshTrD3mUcY +hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB +60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq +dBb9HxEGmpv0 +-----END CERTIFICATE----- diff --git a/3rdPartner/libhv/cert/gen.sh b/3rdPartner/libhv/cert/gen.sh new file mode 100644 index 0000000..f9f6ff4 --- /dev/null +++ b/3rdPartner/libhv/cert/gen.sh @@ -0,0 +1,2 @@ +openssl genrsa -out server.key 2048 +openssl req -new -x509 -key server.key -out server.crt -days 3650 diff --git a/3rdPartner/libhv/cert/server.crt b/3rdPartner/libhv/cert/server.crt new file mode 100644 index 0000000..93c2a91 --- /dev/null +++ b/3rdPartner/libhv/cert/server.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDgjCCAmqgAwIBAgIJAL/XKTs4cCwRMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV +BAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hhbmdoYWkxITAf +BgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xOTA4MjkwNDA1NDda +Fw0yOTA4MjYwNDA1NDdaMFYxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hh +aTERMA8GA1UEBwwIU2hhbmdoYWkxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMg +UHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANJJ5DaZroEg +N34H6A3uq5qDRlJe/ELhWcmtkj57cYb5U/T39C7dEjqGfhURb/NEuYbYoEb+4/lD +xJOvn0qqXiJGPt0avecGhQUpggykEj4NZe6W1/WIX81Z1tF6QJZrpUDq4MD1S3KA +ETvnTDv0bc6lvT/YDDb8qYMKGNZUTIQKpucdrIet9kDVIrXON4icJL9PDi/zFu3S +e6feGsG7SAWv1ZInzF6wkEr8pCQc2Aab9R2BsbDsnVc8qZahfLniif7yDxiRbcEf +P4P4cJ7YCD6T1Vyv7bDCnxSEJ+b+j4Ih5XVwHUeK2wG9rrNQ6Z4sSMrv1oSoxVfG +mGdHHEhBN0ECAwEAAaNTMFEwHQYDVR0OBBYEFGPOMSeA6p3Vkf4uHdt5eRbrkoXU +MB8GA1UdIwQYMBaAFGPOMSeA6p3Vkf4uHdt5eRbrkoXUMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQELBQADggEBAEa3x7MzIBQvr43l6zuoK9SBoW6DET42yCRb +YA6as/8fFYc4A1GqJStjvOgS0nIhBeCdyLJCy40U5ERhhVKqjPLLHHB4i7sv98Ac +aXgVr91eUZcKeuiEkDHWRPCitkPj3p2v9J2VDAHpxfKvIB+r/q+7O4W6tjJT5fPq +iUgdpr/R6uBFndBtGc+k65byxSQgvAvdM4kpGA8nnypT9i8SGVp0gB7lMG8avUTU +zH16msecIEKLBHED40w9aiuOf3CnMDqGSTilP7p4gvMY4u+qm3zAXN29OHqoldbn +j/A8RE9Q1F1H3G+eSltBuug3DBGp0q0EskxiqtfJbzW9G5fwGxM= +-----END CERTIFICATE----- diff --git a/3rdPartner/libhv/cert/server.key b/3rdPartner/libhv/cert/server.key new file mode 100644 index 0000000..144266e --- /dev/null +++ b/3rdPartner/libhv/cert/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA0knkNpmugSA3fgfoDe6rmoNGUl78QuFZya2SPntxhvlT9Pf0 +Lt0SOoZ+FRFv80S5htigRv7j+UPEk6+fSqpeIkY+3Rq95waFBSmCDKQSPg1l7pbX +9YhfzVnW0XpAlmulQOrgwPVLcoARO+dMO/RtzqW9P9gMNvypgwoY1lRMhAqm5x2s +h632QNUitc43iJwkv08OL/MW7dJ7p94awbtIBa/VkifMXrCQSvykJBzYBpv1HYGx +sOydVzyplqF8ueKJ/vIPGJFtwR8/g/hwntgIPpPVXK/tsMKfFIQn5v6PgiHldXAd +R4rbAb2us1DpnixIyu/WhKjFV8aYZ0ccSEE3QQIDAQABAoIBAG/JthbMdbbRAI7v +9w1I/lKCTKTHN8T59PhAXAj5KG2/J0GHenhbLzCLhIUAowmoVBP6HqH/KAO/YcW8 +y6oujSIdQ5fYenFQxu/qk+bSZZw1FSXTbHRrDbqlcowjOCh+ivfKpLYO8A+rQv4c +RCtvEdyTwNoqqLumbxppCLEPWSmrZOuw/EegeDMRspMpPNsFsk7mcl2w3jJjiX9D +NB/yHZZzbZoTf/ayT/ca6FueKqPF52jIiuDzOncE1PqQ8hiPrXFIh4yZYCn1IpnK +48hotm3NSixpnag6UziwCRSoPsUCue8h2h3Tr690Lr/7LzILdtBJ+4Qxs3mU8Crz ++bM7Xo0CgYEA9K94Gp0gyIxEiIPQ/zcOLeY2y3gUpS5LNaM6lxm82u4nsrC4FQJZ +H72kV6YxvedmC1JZcYc6WiaAelkv9GqSekTMFv05rTsA4zQX59habsXPa5r3vzds +NzgdjhDfwvWZCp3QXDG1n0wEMKJleG9+CK7khQ4doHmjQtCt0w16AxMCgYEA3AM9 +qxJSOADePq0G4fJ+4jAr4MgsMBsWaGEWU0Z7pBaTj+hm0ULiwShWy9/bbxw+zZgL +VqE0cCiqKsMZMFtZvwX89fIN71YLkyTbl5Y/Lb65HKfKI8a8LGSNNaAd6CG9vy2C +krqDKoHILCQdBpT7tSi2vF57+uDxJDH6+VyZ0tsCgYEAsVE7o2W87TihLaEA4wJ9 +1wtfKCJUK8QZorwwaHGxZ6JwyFDChg8WkSb4IsCAiZNYYtoBkYEi61O9hWx+kQxu +LAcRM5O8qWn54azNqikil+Xnw54g7cR3OqkC2gImdf1PM99bsIQhj1giLTBygk2h +sx8y4a1yEOo1QuVBIpJAmlsCgYEAv3NehXAC9dLjkny0oYeIHEG43PizYwUfQaNC +byLFUquGqtKcLfrbISR+KxjYdV6J1BQ7wZ2z6Omp8l4lnCvR8+U9E7QXpi4lEl0f +bVCEF8WAhcwInYtBkgvJyWFUxPwfhq4OkqoUm7elvauLSn/4bNNJ+K7riguWK14G +vFl1TcMCgYEA9EDTbpBl1oXICe2xevuh1HJQ1eBXAXP0l3hy0h76czBoBlnoF13A +6TOy6iSE3tpEwGPZZ33goKZdKyBLXG3TmemthWMxjBHc31C55gpIIgYPlW4Blv35 +djt8AlxF68VKIhY7CkaGhNmUpdSSfANHyirfw9rx70IRwRJfnZ5MN+M= +-----END RSA PRIVATE KEY----- diff --git a/3rdPartner/libhv/cmake/ios.toolchain.cmake b/3rdPartner/libhv/cmake/ios.toolchain.cmake new file mode 100644 index 0000000..8f3d814 --- /dev/null +++ b/3rdPartner/libhv/cmake/ios.toolchain.cmake @@ -0,0 +1,1028 @@ +# This file is part of the ios-cmake project. It was retrieved from +# https://github.com/leetal/ios-cmake.git, which is a fork of +# https://github.com/gerstrong/ios-cmake.git, which is a fork of +# https://github.com/cristeab/ios-cmake.git, which is a fork of +# https://code.google.com/p/ios-cmake/. Which in turn is based off of +# the Platform/Darwin.cmake and Platform/UnixPaths.cmake files which +# are included with CMake 2.8.4 +# +# The ios-cmake project is licensed under the new BSD license. +# +# Copyright (c) 2014, Bogdan Cristea and LTE Engineering Software, +# Kitware, Inc., Insight Software Consortium. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# This file is based on the Platform/Darwin.cmake and +# Platform/UnixPaths.cmake files which are included with CMake 2.8.4 +# It has been altered for iOS development. +# +# Updated by Alex Stewart (alexs.mac@gmail.com) +# +# ***************************************************************************** +# Now maintained by Alexander Widerberg (widerbergaren [at] gmail.com) +# under the BSD-3-Clause license +# https://github.com/leetal/ios-cmake +# ***************************************************************************** +# +# INFORMATION / HELP +# +############################################################################### +# OPTIONS # +############################################################################### +# +# PLATFORM: (default "OS64") +# OS = Build for iPhoneOS. +# OS64 = Build for arm64 iphoneOS. +# OS64COMBINED = Build for arm64 x86_64 iphoneOS + iphoneOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR = Build for x86 i386 iphoneOS Simulator. +# SIMULATOR64 = Build for x86_64 iphoneOS Simulator. +# SIMULATORARM64 = Build for arm64 iphoneOS Simulator. +# TVOS = Build for arm64 tvOS. +# TVOSCOMBINED = Build for arm64 x86_64 tvOS + tvOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR_TVOS = Build for x86_64 tvOS Simulator. +# WATCHOS = Build for armv7k arm64_32 for watchOS. +# WATCHOSCOMBINED = Build for armv7k arm64_32 x86_64 watchOS + watchOS Simulator. Combined into FAT STATIC lib (only supported on 3.14+ of CMake with "-G Xcode" argument in combination with the "cmake --install" CMake build step) +# SIMULATOR_WATCHOS = Build for x86_64 for watchOS Simulator. +# MAC = Build for x86_64 macOS. +# MAC_ARM64 = Build for Apple Silicon macOS. +# MAC_UNIVERSAL = Combined build for x86_64 and Apple Silicon on macOS. +# MAC_CATALYST = Build for x86_64 macOS with Catalyst support (iOS toolchain on macOS). +# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS +# MAC_CATALYST_ARM64 = Build for Apple Silicon macOS with Catalyst support (iOS toolchain on macOS). +# Note: The build argument "MACOSX_DEPLOYMENT_TARGET" can be used to control min-version of macOS +# +# CMAKE_OSX_SYSROOT: Path to the SDK to use. By default this is +# automatically determined from PLATFORM and xcodebuild, but +# can also be manually specified (although this should not be required). +# +# CMAKE_DEVELOPER_ROOT: Path to the Developer directory for the platform +# being compiled for. By default, this is automatically determined from +# CMAKE_OSX_SYSROOT, but can also be manually specified (although this should +# not be required). +# +# DEPLOYMENT_TARGET: Minimum SDK version to target. Default 2.0 on watchOS and 9.0 on tvOS+iOS +# +# NAMED_LANGUAGE_SUPPORT: +# ON (default) = Will require "enable_language(OBJC) and/or enable_language(OBJCXX)" for full OBJC|OBJCXX support +# OFF = Will embed the OBJC and OBJCXX flags into the CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (legacy behavior, CMake version < 3.16) +# +# ENABLE_BITCODE: (ON|OFF) Enables or disables bitcode support. Default ON +# +# ENABLE_ARC: (ON|OFF) Enables or disables ARC support. Default ON (ARC enabled by default) +# +# ENABLE_VISIBILITY: (ON|OFF) Enables or disables symbol visibility support. Default OFF (visibility hidden by default) +# +# ENABLE_STRICT_TRY_COMPILE: (ON|OFF) Enables or disables strict try_compile() on all Check* directives (will run linker +# to actually check if linking is possible). Default OFF (will set CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY) +# +# ARCHS: (armv7 armv7s armv7k arm64 arm64_32 i386 x86_64) If specified, will override the default architectures for the given PLATFORM +# OS = armv7 armv7s arm64 (if applicable) +# OS64 = arm64 (if applicable) +# SIMULATOR = i386 +# SIMULATOR64 = x86_64 +# SIMULATORARM64 = arm64 +# TVOS = arm64 +# SIMULATOR_TVOS = x86_64 (i386 has since long been deprecated) +# WATCHOS = armv7k arm64_32 (if applicable) +# SIMULATOR_WATCHOS = x86_64 (i386 has since long been deprecated) +# MAC = x86_64 +# MAC_ARM64 = arm64 +# MAC_UNIVERSAL = x86_64 arm64 +# MAC_CATALYST = x86_64 +# MAC_CATALYST_ARM64 = arm64 +# +# NOTE: When manually specifying ARCHS, put a semi-colon between the entries. E.g., -DARCHS="armv7;arm64" +# +############################################################################### +# END OPTIONS # +############################################################################### +# +# This toolchain defines the following properties (available via get_property()) for use externally: +# +# PLATFORM: The currently targeted platform. +# XCODE_VERSION: Version number (not including Build version) of Xcode detected. +# SDK_VERSION: Version of SDK being used. +# OSX_ARCHITECTURES: Architectures being compiled for (generated from PLATFORM). +# APPLE_TARGET_TRIPLE: Used by autoconf build systems. NOTE: If "ARCHS" is overridden, this will *NOT* be set! +# +# This toolchain defines the following macros for use externally: +# +# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE XCODE_VARIANT) +# A convenience macro for setting xcode specific properties on targets. +# Available variants are: All, Release, RelWithDebInfo, Debug, MinSizeRel +# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1" "all"). +# +# find_host_package (PROGRAM ARGS) +# A macro used to find executable programs on the host system, not within the +# environment. Thanks to the android-cmake project for providing the +# command. +# + +cmake_minimum_required(VERSION 3.8.0) + +# CMake invokes the toolchain file twice during the first build, but only once during subsequent rebuilds. +if(DEFINED ENV{_IOS_TOOLCHAIN_HAS_RUN}) + return() +endif() +set(ENV{_IOS_TOOLCHAIN_HAS_RUN} true) + +# List of supported platform values +list(APPEND _supported_platforms + "OS" "OS64" "OS64COMBINED" "SIMULATOR" "SIMULATOR64" "SIMULATORARM64" + "TVOS" "TVOSCOMBINED" "SIMULATOR_TVOS" + "WATCHOS" "WATCHOSCOMBINED" "SIMULATOR_WATCHOS" + "MAC" "MAC_ARM64" "MAC_UNIVERSAL" + "MAC_CATALYST" "MAC_CATALYST_ARM64") + +# Cache what generator is used +set(USED_CMAKE_GENERATOR "${CMAKE_GENERATOR}") + +# Check if using a CMake version capable of building combined FAT builds (simulator and target slices combined in one static lib) +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14") + set(MODERN_CMAKE YES) +endif() + +# Get the Xcode version being used. +# Problem: CMake runs toolchain files multiple times, but can't read cache variables on some runs. +# Workaround: On the first run (in which cache variables are always accessible), set an intermediary environment variable. +# +# NOTE: This pattern is used in many places in this toolchain to speed up checks of all sorts +if(DEFINED XCODE_VERSION_INT) + # Environment variables are always preserved. + set(ENV{_XCODE_VERSION_INT} "${XCODE_VERSION_INT}") +elseif(DEFINED ENV{_XCODE_VERSION_INT}) + set(XCODE_VERSION_INT "$ENV{_XCODE_VERSION_INT}") +elseif(NOT DEFINED XCODE_VERSION_INT) + find_program(XCODEBUILD_EXECUTABLE xcodebuild) + if(NOT XCODEBUILD_EXECUTABLE) + message(FATAL_ERROR "xcodebuild not found. Please install either the standalone commandline tools or Xcode.") + endif() + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -version + OUTPUT_VARIABLE XCODE_VERSION_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION_INT "${XCODE_VERSION_INT}") + string(REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION_INT "${XCODE_VERSION_INT}") + set(XCODE_VERSION_INT "${XCODE_VERSION_INT}" CACHE INTERNAL "") +endif() + +# Assuming that xcode 12.0 is installed you most probably have ios sdk 14.0 or later installed (tested on Big Sur) +# if you don't set a deployment target it will be set the way you only get 64-bit builds +if(NOT DEFINED DEPLOYMENT_TARGET AND XCODE_VERSION_INT VERSION_GREATER 12.0) + # Temporarily fix the arm64 issues in CMake install-combined by excluding arm64 for simulator builds (needed for Apple Silicon...) + set(CMAKE_XCODE_ATTRIBUTE_EXCLUDED_ARCHS[sdk=iphonesimulator*] "arm64") +endif() + +# Check if the platform variable is set +if(DEFINED PLATFORM) + # Environment variables are always preserved. + set(ENV{_PLATFORM} "${PLATFORM}") +elseif(DEFINED ENV{_PLATFORM}) + set(PLATFORM "$ENV{_PLATFORM}") +elseif(NOT DEFINED PLATFORM) + message(FATAL_ERROR "PLATFORM argument not set. Bailing configure since I don't know what target you want to build for!") +endif () + +if(PLATFORM MATCHES ".*COMBINED" AND NOT CMAKE_GENERATOR MATCHES "Xcode") + message(FATAL_ERROR "The combined builds support requires Xcode to be used as a generator via '-G Xcode' command-line argument in CMake") +endif() + +# Safeguard that the platform value is set and is one of the supported values +list(FIND _supported_platforms ${PLATFORM} contains_PLATFORM) +if("${contains_PLATFORM}" EQUAL "-1") + string(REPLACE ";" "\n * " _supported_platforms_formatted "${_supported_platforms}") + message(FATAL_ERROR " Invalid PLATFORM specified! Current value: ${PLATFORM}.\n" + " Supported PLATFORM values: \n * ${_supported_platforms_formatted}") +endif() + +# Check if Apple Silicon is supported +if(PLATFORM MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$|^(MAC_UNIVERSAL)$" AND ${CMAKE_VERSION} VERSION_LESS "3.19.5") + message(FATAL_ERROR "Apple Silicon builds requires a minimum of CMake 3.19.5") +endif() + +# Touch the toolchain variable to suppress the "unused variable" warning. +# This happens if CMake is invoked with the same command line the second time. +if(CMAKE_TOOLCHAIN_FILE) +endif() + +# Fix for PThread library not in path +set(CMAKE_THREAD_LIBS_INIT "-lpthread") +set(CMAKE_HAVE_THREADS_LIBRARY 1) +set(CMAKE_USE_WIN32_THREADS_INIT 0) +set(CMAKE_USE_PTHREADS_INIT 1) + +# Specify named language support defaults. +if(NOT DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16") + set(NAMED_LANGUAGE_SUPPORT ON) + message(STATUS "[DEFAULTS] Using explicit named language support! E.g., enable_language(CXX) is needed in the project files.") +elseif(NOT DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_LESS "3.16") + set(NAMED_LANGUAGE_SUPPORT OFF) + message(STATUS "[DEFAULTS] Disabling explicit named language support. Falling back to legacy behavior.") +elseif(DEFINED NAMED_LANGUAGE_SUPPORT AND ${CMAKE_VERSION} VERSION_LESS "3.16") + message(FATAL_ERROR "CMake named language support for OBJC and OBJCXX was added in CMake 3.16.") +endif() +set(NAMED_LANGUAGE_SUPPORT_INT ${NAMED_LANGUAGE_SUPPORT} CACHE BOOL + "Whether or not to enable explicit named language support" FORCE) + +# Specify the minimum version of the deployment target. +if(NOT DEFINED DEPLOYMENT_TARGET) + if (PLATFORM MATCHES "WATCHOS") + # Unless specified, SDK version 4.0 is used by default as minimum target version (watchOS). + set(DEPLOYMENT_TARGET "4.0") + elseif(PLATFORM STREQUAL "MAC") + # Unless specified, SDK version 10.13 (High Sierra) is used by default as the minimum target version (macos). + set(DEPLOYMENT_TARGET "10.13") + elseif(PLATFORM STREQUAL "MAC_ARM64") + # Unless specified, SDK version 11.0 (Big Sur) is used by default as the minimum target version (macOS on arm). + set(DEPLOYMENT_TARGET "11.0") + elseif(PLATFORM STREQUAL "MAC_UNIVERSAL") + # Unless specified, SDK version 11.0 (Big Sur) is used by default as minimum target version for universal builds. + set(DEPLOYMENT_TARGET "11.0") + elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") + # Unless specified, SDK version 13.0 is used by default as the minimum target version (mac catalyst minimum requirement). + set(DEPLOYMENT_TARGET "13.1") + else() + # Unless specified, SDK version 11.0 is used by default as the minimum target version (iOS, tvOS). + set(DEPLOYMENT_TARGET "11.0") + endif() + message(STATUS "[DEFAULTS] Using the default min-version since DEPLOYMENT_TARGET not provided!") +elseif(DEFINED DEPLOYMENT_TARGET AND PLATFORM MATCHES "^MAC_CATALYST" AND ${DEPLOYMENT_TARGET} VERSION_LESS "13.1") + message(FATAL_ERROR "Mac Catalyst builds requires a minimum deployment target of 13.1!") +endif() + +# Store the DEPLOYMENT_TARGET in the cache +set(DEPLOYMENT_TARGET "${DEPLOYMENT_TARGET}" CACHE INTERNAL "") + +# Handle the case where we are targeting iOS and a version above 10.3.4 (32-bit support dropped officially) +if(PLATFORM STREQUAL "OS" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) + set(PLATFORM "OS64") + message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") +elseif(PLATFORM STREQUAL "SIMULATOR" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.3.4) + set(PLATFORM "SIMULATOR64") + message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.") +endif() + +set(PLATFORM_INT "${PLATFORM}") + +if(DEFINED ARCHS) + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") +endif() + +# Determine the platform name and architectures for use in xcodebuild commands +# from the specified PLATFORM_INT name. +if(PLATFORM_INT STREQUAL "OS") + set(SDK_NAME iphoneos) + if(NOT ARCHS) + set(ARCHS armv7 armv7s arm64) + set(APPLE_TARGET_TRIPLE_INT arm-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "OS64") + set(SDK_NAME iphoneos) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS arm64) # FIXME: Add arm64e when Apple has fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example + else() + set(ARCHS arm64) + endif() + set(APPLE_TARGET_TRIPLE_INT aarch64-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "OS64COMBINED") + set(SDK_NAME iphoneos) + if(MODERN_CMAKE) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS arm64 x86_64) # FIXME: Add arm64e when Apple has fixed the integration issues with it, libarclite_iphoneos.a is currently missing bitcode markers for example + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") + else() + set(ARCHS arm64 x86_64) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphoneos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=iphonesimulator*] "x86_64") + endif() + set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-ios${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the OS64COMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS i386) + set(APPLE_TARGET_TRIPLE_INT i386-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() + message(DEPRECATION "SIMULATOR IS DEPRECATED. Consider using SIMULATOR64 instead.") +elseif(PLATFORM_INT STREQUAL "SIMULATOR64") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS x86_64) + set(APPLE_TARGET_TRIPLE_INT x86_64-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATORARM64") + set(SDK_NAME iphonesimulator) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT aarch64-apple-ios${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "TVOS") + set(SDK_NAME appletvos) + if(NOT ARCHS) + set(ARCHS arm64) + set(APPLE_TARGET_TRIPLE_INT aarch64-apple-tvos${DEPLOYMENT_TARGET}) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) + endif() +elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED") + set(SDK_NAME appletvos) + if(MODERN_CMAKE) + if(NOT ARCHS) + set(ARCHS arm64 x86_64) + set(APPLE_TARGET_TRIPLE_INT aarch64-x86_64-apple-tvos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=appletvsimulator*] "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvos*] "arm64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=appletvsimulator*] "x86_64") + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the TVOSCOMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") + set(SDK_NAME appletvsimulator) + if(NOT ARCHS) + set(ARCHS x86_64) + set(APPLE_TARGET_TRIPLE_INT x86_64-apple-tvos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-tvos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "WATCHOS") + set(SDK_NAME watchos) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS armv7k arm64_32) + set(APPLE_TARGET_TRIPLE_INT aarch64_32-apple-watchos${DEPLOYMENT_TARGET}) + else() + set(ARCHS armv7k) + set(APPLE_TARGET_TRIPLE_INT arm-apple-watchos${DEPLOYMENT_TARGET}) + endif() + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}) + endif() +elseif(PLATFORM_INT STREQUAL "WATCHOSCOMBINED") + set(SDK_NAME watchos) + if(MODERN_CMAKE) + if(NOT ARCHS) + if (XCODE_VERSION_INT VERSION_GREATER 10.0) + set(ARCHS armv7k arm64_32 i386) + set(APPLE_TARGET_TRIPLE_INT aarch64_32-i386-apple-watchos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k arm64_32") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k arm64_32") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchsimulator*] "i386") + else() + set(ARCHS armv7k i386) + set(APPLE_TARGET_TRIPLE_INT arm-i386-apple-watchos${DEPLOYMENT_TARGET}) + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchos*] "armv7k") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=watchsimulator*] "i386") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchos*] "armv7k") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=watchsimulator*] "i386") + endif() + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}) + endif() + else() + message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the WATCHOSCOMBINED setting work") + endif() +elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") + set(SDK_NAME watchsimulator) + if(NOT ARCHS) + set(ARCHS i386) + set(APPLE_TARGET_TRIPLE_INT i386-apple-watchos${DEPLOYMENT_TARGET}-simulator) + else() + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-watchos${DEPLOYMENT_TARGET}-simulator) + endif() +elseif(PLATFORM_INT STREQUAL "MAC" OR PLATFORM_INT STREQUAL "MAC_CATALYST") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS x86_64) + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + if(PLATFORM_INT STREQUAL "MAC") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) + elseif(PLATFORM_INT STREQUAL "MAC_CATALYST") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi) + endif() +elseif(PLATFORM_INT MATCHES "^(MAC_ARM64)$|^(MAC_CATALYST_ARM64)$") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS arm64) + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + if(PLATFORM_INT STREQUAL "MAC_ARM64") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) + elseif(PLATFORM_INT STREQUAL "MAC_CATALYST_ARM64") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-ios${DEPLOYMENT_TARGET}-macabi) + endif() +elseif(PLATFORM_INT STREQUAL "MAC_UNIVERSAL") + set(SDK_NAME macosx) + if(NOT ARCHS) + set(ARCHS "x86_64;arm64") + endif() + string(REPLACE ";" "-" ARCHS_SPLIT "${ARCHS}") + set(APPLE_TARGET_TRIPLE_INT ${ARCHS_SPLIT}-apple-macosx${DEPLOYMENT_TARGET}) +else() + message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}") +endif() + +string(REPLACE ";" " " ARCHS_SPACED "${ARCHS}") + +if(MODERN_CMAKE AND PLATFORM_INT MATCHES ".*COMBINED" AND NOT CMAKE_GENERATOR MATCHES "Xcode") + message(FATAL_ERROR "The COMBINED options only work with Xcode generator, -G Xcode") +endif() + +if(CMAKE_GENERATOR MATCHES "Xcode" AND PLATFORM_INT MATCHES "^MAC_CATALYST") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "macosx") + set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-maccatalyst") + if(NOT DEFINED MACOSX_DEPLOYMENT_TARGET) + set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "10.15") + else() + set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "${MACOSX_DEPLOYMENT_TARGET}") + endif() +elseif(CMAKE_GENERATOR MATCHES "Xcode") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${DEPLOYMENT_TARGET}") + if(NOT PLATFORM_INT MATCHES ".*COMBINED") + set(CMAKE_XCODE_ATTRIBUTE_ARCHS[sdk=${SDK_NAME}*] "${ARCHS_SPACED}") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS[sdk=${SDK_NAME}*] "${ARCHS_SPACED}") + endif() +endif() + +# If the user did not specify the SDK root to use, then query xcodebuild for it. +if(DEFINED CMAKE_OSX_SYSROOT_INT) + # Environment variables are always preserved. + set(ENV{_CMAKE_OSX_SYSROOT_INT} "${CMAKE_OSX_SYSROOT_INT}") +elseif(DEFINED ENV{_CMAKE_OSX_SYSROOT_INT}) + set(CMAKE_OSX_SYSROOT_INT "$ENV{_CMAKE_OSX_SYSROOT_INT}") +elseif(NOT DEFINED CMAKE_OSX_SYSROOT_INT) + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -version -sdk ${SDK_NAME} Path + OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +if (NOT DEFINED CMAKE_OSX_SYSROOT_INT AND NOT DEFINED CMAKE_OSX_SYSROOT) + message(SEND_ERROR "Please make sure that Xcode is installed and that the toolchain" + "is pointing to the correct path. Please run:" + "sudo xcode-select -s /Applications/Xcode.app/Contents/Developer" + "and see if that fixes the problem for you.") + message(FATAL_ERROR "Invalid CMAKE_OSX_SYSROOT: ${CMAKE_OSX_SYSROOT} " + "does not exist.") +elseif(DEFINED CMAKE_OSX_SYSROOT_INT) + set(CMAKE_OSX_SYSROOT_INT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") + # Specify the location or name of the platform SDK to be used in CMAKE_OSX_SYSROOT. + set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") +endif() + +# Use bitcode or not +if(NOT DEFINED ENABLE_BITCODE AND NOT ARCHS MATCHES "((^|;|, )(i386|x86_64))+") + # Unless specified, enable bitcode support by default + message(STATUS "[DEFAULTS] Enabling bitcode support by default. ENABLE_BITCODE not provided!") + set(ENABLE_BITCODE ON) +elseif(NOT DEFINED ENABLE_BITCODE) + message(STATUS "[DEFAULTS] Disabling bitcode support by default on simulators. ENABLE_BITCODE not provided for override!") + set(ENABLE_BITCODE OFF) +endif() +set(ENABLE_BITCODE_INT ${ENABLE_BITCODE} CACHE BOOL + "Whether or not to enable bitcode" FORCE) +# Use ARC or not +if(NOT DEFINED ENABLE_ARC) + # Unless specified, enable ARC support by default + set(ENABLE_ARC ON) + message(STATUS "[DEFAULTS] Enabling ARC support by default. ENABLE_ARC not provided!") +endif() +set(ENABLE_ARC_INT ${ENABLE_ARC} CACHE BOOL "Whether or not to enable ARC" FORCE) +# Use hidden visibility or not +if(NOT DEFINED ENABLE_VISIBILITY) + # Unless specified, disable symbols visibility by default + set(ENABLE_VISIBILITY OFF) + message(STATUS "[DEFAULTS] Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!") +endif() +set(ENABLE_VISIBILITY_INT ${ENABLE_VISIBILITY} CACHE BOOL "Whether or not to hide symbols from the dynamic linker (-fvisibility=hidden)" FORCE) +# Set strict compiler checks or not +if(NOT DEFINED ENABLE_STRICT_TRY_COMPILE) + # Unless specified, disable strict try_compile() + set(ENABLE_STRICT_TRY_COMPILE OFF) + message(STATUS "[DEFAULTS] Using NON-strict compiler checks by default. ENABLE_STRICT_TRY_COMPILE not provided!") +endif() +set(ENABLE_STRICT_TRY_COMPILE_INT ${ENABLE_STRICT_TRY_COMPILE} CACHE BOOL + "Whether or not to use strict compiler checks" FORCE) + +# Get the SDK version information. +if(DEFINED SDK_VERSION) + # Environment variables are always preserved. + set(ENV{_SDK_VERSION} "${SDK_VERSION}") +elseif(DEFINED ENV{_SDK_VERSION}) + set(SDK_VERSION "$ENV{_SDK_VERSION}") +elseif(NOT DEFINED SDK_VERSION) + execute_process(COMMAND ${XCODEBUILD_EXECUTABLE} -sdk ${CMAKE_OSX_SYSROOT_INT} -version SDKVersion + OUTPUT_VARIABLE SDK_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() + +# Find the Developer root for the specific iOS platform being compiled for +# from CMAKE_OSX_SYSROOT. Should be ../../ from SDK specified in +# CMAKE_OSX_SYSROOT. There does not appear to be a direct way to obtain +# this information from xcrun or xcodebuild. +if (NOT DEFINED CMAKE_DEVELOPER_ROOT AND NOT CMAKE_GENERATOR MATCHES "Xcode") + get_filename_component(PLATFORM_SDK_DIR ${CMAKE_OSX_SYSROOT_INT} PATH) + get_filename_component(CMAKE_DEVELOPER_ROOT ${PLATFORM_SDK_DIR} PATH) + if (NOT EXISTS "${CMAKE_DEVELOPER_ROOT}") + message(FATAL_ERROR "Invalid CMAKE_DEVELOPER_ROOT: ${CMAKE_DEVELOPER_ROOT} does not exist.") + endif() +endif() + +# Find the C & C++ compilers for the specified SDK. +if(DEFINED CMAKE_C_COMPILER) + # Environment variables are always preserved. + set(ENV{_CMAKE_C_COMPILER} "${CMAKE_C_COMPILER}") +elseif(DEFINED ENV{_CMAKE_C_COMPILER}) + set(CMAKE_C_COMPILER "$ENV{_CMAKE_C_COMPILER}") + set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +elseif(NOT DEFINED CMAKE_C_COMPILER) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find clang + OUTPUT_VARIABLE CMAKE_C_COMPILER + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +endif() +if(DEFINED CMAKE_CXX_COMPILER) + # Environment variables are always preserved. + set(ENV{_CMAKE_CXX_COMPILER} "${CMAKE_CXX_COMPILER}") +elseif(DEFINED ENV{_CMAKE_CXX_COMPILER}) + set(CMAKE_CXX_COMPILER "$ENV{_CMAKE_CXX_COMPILER}") +elseif(NOT DEFINED CMAKE_CXX_COMPILER) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find clang++ + OUTPUT_VARIABLE CMAKE_CXX_COMPILER + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() +# Find (Apple's) libtool. +if(DEFINED BUILD_LIBTOOL) + # Environment variables are always preserved. + set(ENV{_BUILD_LIBTOOL} "${BUILD_LIBTOOL}") +elseif(DEFINED ENV{_BUILD_LIBTOOL}) + set(BUILD_LIBTOOL "$ENV{_BUILD_LIBTOOL}") +elseif(NOT DEFINED BUILD_LIBTOOL) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find libtool + OUTPUT_VARIABLE BUILD_LIBTOOL + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() +# Find the toolchain's provided install_name_tool if none is found on the host +if(DEFINED CMAKE_INSTALL_NAME_TOOL) + # Environment variables are always preserved. + set(ENV{_CMAKE_INSTALL_NAME_TOOL} "${CMAKE_INSTALL_NAME_TOOL}") +elseif(DEFINED ENV{_CMAKE_INSTALL_NAME_TOOL}) + set(CMAKE_INSTALL_NAME_TOOL "$ENV{_CMAKE_INSTALL_NAME_TOOL}") +elseif(NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT_INT} -find install_name_tool + OUTPUT_VARIABLE CMAKE_INSTALL_NAME_TOOL_INT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CMAKE_INSTALL_NAME_TOOL ${CMAKE_INSTALL_NAME_TOOL_INT} CACHE INTERNAL "") +endif() + +# Configure libtool to be used instead of ar + ranlib to build static libraries. +# This is required on Xcode 7+, but should also work on previous versions of +# Xcode. +get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(lang ${languages}) + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "${BUILD_LIBTOOL} -static -o " CACHE INTERNAL "") +endforeach() + +# CMake 3.14+ support building for iOS, watchOS, and tvOS out of the box. +if(MODERN_CMAKE) + if(SDK_NAME MATCHES "iphone") + set(CMAKE_SYSTEM_NAME iOS) + elseif(SDK_NAME MATCHES "macosx") + set(CMAKE_SYSTEM_NAME Darwin) + elseif(SDK_NAME MATCHES "appletv") + set(CMAKE_SYSTEM_NAME tvOS) + elseif(SDK_NAME MATCHES "watch") + set(CMAKE_SYSTEM_NAME watchOS) + endif() + # Provide flags for a combined FAT library build on newer CMake versions + if(PLATFORM_INT MATCHES ".*COMBINED") + set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO") + set(CMAKE_IOS_INSTALL_COMBINED YES) + endif() +elseif(NOT DEFINED CMAKE_SYSTEM_NAME AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.10") + # Legacy code path prior to CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified + set(CMAKE_SYSTEM_NAME iOS) +elseif(NOT DEFINED CMAKE_SYSTEM_NAME) + # Legacy code path before CMake 3.14 or fallback if no CMAKE_SYSTEM_NAME specified + set(CMAKE_SYSTEM_NAME Darwin) +endif() +# Standard settings. +set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "") +set(UNIX ON CACHE BOOL "") +set(APPLE ON CACHE BOOL "") +if(PLATFORM STREQUAL "MAC" OR PLATFORM STREQUAL "MAC_ARM64" OR PLATFORM STREQUAL "MAC_UNIVERSAL") + set(IOS OFF CACHE BOOL "") + set(MACOS ON CACHE BOOL "") +elseif(PLATFORM STREQUAL "MAC_CATALYST" OR PLATFORM STREQUAL "MAC_CATALYST_ARM64") + set(IOS ON CACHE BOOL "") + set(MACOS ON CACHE BOOL "") +else() + set(IOS ON CACHE BOOL "") +endif() +set(CMAKE_AR ar CACHE FILEPATH "" FORCE) +set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) +set(CMAKE_STRIP strip CACHE FILEPATH "" FORCE) +# Set the architectures for which to build. +set(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE INTERNAL "") +# Change the type of target generated for try_compile() so it'll work when cross-compiling, weak compiler checks +if(NOT ENABLE_STRICT_TRY_COMPILE_INT) + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +endif() +# All iOS/Darwin specific settings - some may be redundant. +if (NOT DEFINED CMAKE_MACOSX_BUNDLE) + set(CMAKE_MACOSX_BUNDLE YES) +endif() +set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") +set(CMAKE_SHARED_LIBRARY_PREFIX "lib") +set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set(CMAKE_SHARED_MODULE_PREFIX "lib") +set(CMAKE_SHARED_MODULE_SUFFIX ".so") +set(CMAKE_C_COMPILER_ABI ELF) +set(CMAKE_CXX_COMPILER_ABI ELF) +set(CMAKE_C_HAS_ISYSROOT 1) +set(CMAKE_CXX_HAS_ISYSROOT 1) +set(CMAKE_MODULE_EXISTS 1) +set(CMAKE_DL_LIBS "") +set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") +set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") +set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") +set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") + +if(ARCHS MATCHES "((^|;|, )(arm64|arm64e|x86_64))+") + set(CMAKE_C_SIZEOF_DATA_PTR 8) + set(CMAKE_CXX_SIZEOF_DATA_PTR 8) + if(ARCHS MATCHES "((^|;|, )(arm64|arm64e))+") + set(CMAKE_SYSTEM_PROCESSOR "aarch64") + else() + set(CMAKE_SYSTEM_PROCESSOR "x86_64") + endif() +else() + set(CMAKE_C_SIZEOF_DATA_PTR 4) + set(CMAKE_CXX_SIZEOF_DATA_PTR 4) + set(CMAKE_SYSTEM_PROCESSOR "arm") +endif() + +# Note that only Xcode 7+ supports the newer more specific: +# -m${SDK_NAME}-version-min flags, older versions of Xcode use: +# -m(ios/ios-simulator)-version-min instead. +if(${CMAKE_VERSION} VERSION_LESS "3.11") + if(PLATFORM_INT STREQUAL "OS" OR PLATFORM_INT STREQUAL "OS64") + if(XCODE_VERSION_INT VERSION_LESS 7.0) + set(SDK_NAME_VERSION_FLAGS + "-mios-version-min=${DEPLOYMENT_TARGET}") + else() + # Xcode 7.0+ uses flags we can build directly from SDK_NAME. + set(SDK_NAME_VERSION_FLAGS + "-m${SDK_NAME}-version-min=${DEPLOYMENT_TARGET}") + endif() + elseif(PLATFORM_INT STREQUAL "TVOS") + set(SDK_NAME_VERSION_FLAGS + "-mtvos-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS") + set(SDK_NAME_VERSION_FLAGS + "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "WATCHOS") + set(SDK_NAME_VERSION_FLAGS + "-mwatchos-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS") + set(SDK_NAME_VERSION_FLAGS + "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}") + elseif(PLATFORM_INT STREQUAL "MAC") + set(SDK_NAME_VERSION_FLAGS + "-mmacosx-version-min=${DEPLOYMENT_TARGET}") + else() + # SIMULATOR or SIMULATOR64 both use -mios-simulator-version-min. + set(SDK_NAME_VERSION_FLAGS + "-mios-simulator-version-min=${DEPLOYMENT_TARGET}") + endif() +elseif(NOT PLATFORM_INT MATCHES "^MAC_CATALYST") + # Newer versions of CMake sets the version min flags correctly, skip this for Mac Catalyst targets + set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET}) +endif() + +if(DEFINED APPLE_TARGET_TRIPLE_INT) + set(APPLE_TARGET_TRIPLE ${APPLE_TARGET_TRIPLE_INT} CACHE INTERNAL "") + set(CMAKE_C_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) + set(CMAKE_CXX_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) + set(CMAKE_ASM_COMPILER_TARGET ${APPLE_TARGET_TRIPLE}) +endif() + +if(PLATFORM_INT MATCHES "^MAC_CATALYST") + set(C_TARGET_FLAGS "-isystem ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/usr/include -iframework ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/System/Library/Frameworks") +endif() + +if(ENABLE_BITCODE_INT) + set(BITCODE "-fembed-bitcode") + set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE "bitcode") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") +else() + set(BITCODE "") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") +endif() + +if(ENABLE_ARC_INT) + set(FOBJC_ARC "-fobjc-arc") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES") +else() + set(FOBJC_ARC "-fno-objc-arc") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "NO") +endif() + +if(NAMED_LANGUAGE_SUPPORT_INT) + set(OBJC_VARS "-fobjc-abi-version=2 -DOBJC_OLD_DISPATCH_PROTOTYPES=0") + set(OBJC_LEGACY_VARS "") +else() + set(OBJC_VARS "") + set(OBJC_LEGACY_VARS "-fobjc-abi-version=2 -DOBJC_OLD_DISPATCH_PROTOTYPES=0") +endif() + +if(NOT ENABLE_VISIBILITY_INT) + foreach(lang ${languages}) + set(CMAKE_${lang}_VISIBILITY_PRESET "hidden" CACHE INTERNAL "") + endforeach() + set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "YES") + set(VISIBILITY "-fvisibility=hidden -fvisibility-inlines-hidden") +else() + foreach(lang ${languages}) + set(CMAKE_${lang}_VISIBILITY_PRESET "default" CACHE INTERNAL "") + endforeach() + set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "NO") + set(VISIBILITY "-fvisibility=default") +endif() + +if(DEFINED APPLE_TARGET_TRIPLE) + set(APPLE_TARGET_TRIPLE_FLAG "-target ${APPLE_TARGET_TRIPLE}") +endif() + +#Check if Xcode generator is used since that will handle these flags automagically +if(CMAKE_GENERATOR MATCHES "Xcode") + message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as the generator. Modifying the Xcode build-settings directly instead.") +else() + set(CMAKE_C_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_C_FLAGS}") + set(CMAKE_C_FLAGS_DEBUG "-O0 -g ${CMAKE_C_FLAGS_DEBUG}") + set(CMAKE_C_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_C_FLAGS_MINSIZEREL}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_C_FLAGS_RELWITHDEBINFO}") + set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_C_FLAGS_RELEASE}") + set(CMAKE_CXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${OBJC_LEGACY_VARS} ${BITCODE} ${VISIBILITY} ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g ${CMAKE_CXX_FLAGS_DEBUG}") + set(CMAKE_CXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_CXX_FLAGS_MINSIZEREL}") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_CXX_FLAGS_RELEASE}") + if(NAMED_LANGUAGE_SUPPORT_INT) + set(CMAKE_OBJC_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJC_FLAGS}") + set(CMAKE_OBJC_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJC_FLAGS_DEBUG}") + set(CMAKE_OBJC_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJC_FLAGS_MINSIZEREL}") + set(CMAKE_OBJC_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJC_FLAGS_RELWITHDEBINFO}") + set(CMAKE_OBJC_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJC_FLAGS_RELEASE}") + set(CMAKE_OBJCXX_FLAGS "${C_TARGET_FLAGS} ${APPLE_TARGET_TRIPLE_FLAG} ${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} ${FOBJC_ARC} ${OBJC_VARS} ${CMAKE_OBJCXX_FLAGS}") + set(CMAKE_OBJCXX_FLAGS_DEBUG "-O0 -g ${CMAKE_OBJCXX_FLAGS_DEBUG}") + set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "-DNDEBUG -Os ${CMAKE_OBJCXX_FLAGS_MINSIZEREL}") + set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -O2 -g ${CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO}") + set(CMAKE_OBJCXX_FLAGS_RELEASE "-DNDEBUG -O3 ${CMAKE_OBJCXX_FLAGS_RELEASE}") + endif() + set(CMAKE_C_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") + set(CMAKE_CXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") + if(NAMED_LANGUAGE_SUPPORT_INT) + set(CMAKE_OBJC_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJC_LINK_FLAGS}") + set(CMAKE_OBJCXX_LINK_FLAGS "${C_TARGET_FLAGS} ${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_OBJCXX_LINK_FLAGS}") + endif() + set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -arch ${CMAKE_OSX_ARCHITECTURES} ${APPLE_TARGET_TRIPLE_FLAG}") +endif() + +## Print status messages to inform of the current state +message(STATUS "Configuring ${SDK_NAME} build for platform: ${PLATFORM_INT}, architecture(s): ${ARCHS}") +message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT_INT}") +message(STATUS "Using C compiler: ${CMAKE_C_COMPILER}") +message(STATUS "Using CXX compiler: ${CMAKE_CXX_COMPILER}") +message(STATUS "Using libtool: ${BUILD_LIBTOOL}") +message(STATUS "Using install name tool: ${CMAKE_INSTALL_NAME_TOOL}") +if(DEFINED APPLE_TARGET_TRIPLE) + message(STATUS "Autoconf target triple: ${APPLE_TARGET_TRIPLE}") +endif() +message(STATUS "Using minimum deployment version: ${DEPLOYMENT_TARGET}" + " (SDK version: ${SDK_VERSION})") +if(MODERN_CMAKE) + message(STATUS "Merging integrated CMake 3.14+ iOS,tvOS,watchOS,macOS toolchain(s) with this toolchain!") + if(PLATFORM_INT MATCHES ".*COMBINED") + message(STATUS "Will combine built (static) artifacts into FAT lib...") + endif() +endif() +if(CMAKE_GENERATOR MATCHES "Xcode") + message(STATUS "Using Xcode version: ${XCODE_VERSION_INT}") +endif() +message(STATUS "CMake version: ${CMAKE_VERSION}") +if(DEFINED SDK_NAME_VERSION_FLAGS) + message(STATUS "Using version flags: ${SDK_NAME_VERSION_FLAGS}") +endif() +message(STATUS "Using a data_ptr size of: ${CMAKE_CXX_SIZEOF_DATA_PTR}") +if(ENABLE_BITCODE_INT) + message(STATUS "Bitcode: Enabled") +else() + message(STATUS "Bitcode: Disabled") +endif() + +if(ENABLE_ARC_INT) + message(STATUS "ARC: Enabled") +else() + message(STATUS "ARC: Disabled") +endif() + +if(ENABLE_VISIBILITY_INT) + message(STATUS "Hiding symbols: Disabled") +else() + message(STATUS "Hiding symbols: Enabled") +endif() + +# Set global properties +set_property(GLOBAL PROPERTY PLATFORM "${PLATFORM}") +set_property(GLOBAL PROPERTY APPLE_TARGET_TRIPLE "${APPLE_TARGET_TRIPLE_INT}") +set_property(GLOBAL PROPERTY SDK_VERSION "${SDK_VERSION}") +set_property(GLOBAL PROPERTY XCODE_VERSION "${XCODE_VERSION_INT}") +set_property(GLOBAL PROPERTY OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}") + +# Export configurable variables for the try_compile() command. +set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + PLATFORM + XCODE_VERSION_INT + SDK_VERSION + NAMED_LANGUAGE_SUPPORT + DEPLOYMENT_TARGET + CMAKE_DEVELOPER_ROOT + CMAKE_OSX_SYSROOT_INT + ENABLE_BITCODE + ENABLE_ARC + CMAKE_ASM_COMPILER + CMAKE_C_COMPILER + CMAKE_C_COMPILER_TARGET + CMAKE_CXX_COMPILER + CMAKE_CXX_COMPILER_TARGET + BUILD_LIBTOOL + CMAKE_INSTALL_NAME_TOOL + CMAKE_C_FLAGS + CMAKE_C_DEBUG + CMAKE_C_MINSIZEREL + CMAKE_C_RELWITHDEBINFO + CMAKE_C_RELEASE + CMAKE_CXX_FLAGS + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS_RELEASE + CMAKE_C_LINK_FLAGS + CMAKE_CXX_LINK_FLAGS + CMAKE_ASM_FLAGS +) + +if(NAMED_LANGUAGE_SUPPORT_INT) + list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + CMAKE_OBJC_FLAGS + CMAKE_OBJC_DEBUG + CMAKE_OBJC_MINSIZEREL + CMAKE_OBJC_RELWITHDEBINFO + CMAKE_OBJC_RELEASE + CMAKE_OBJCXX_FLAGS + CMAKE_OBJCXX_DEBUG + CMAKE_OBJCXX_MINSIZEREL + CMAKE_OBJCXX_RELWITHDEBINFO + CMAKE_OBJCXX_RELEASE + CMAKE_OBJC_LINK_FLAGS + CMAKE_OBJCXX_LINK_FLAGS + ) +endif() + +set(CMAKE_PLATFORM_HAS_INSTALLNAME 1) +set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/Frameworks -rpath @loader_path/Frameworks") +set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -Wl,-headerpad_max_install_names") +set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a") +set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-install_name") + +# Set the find root to the SDK developer roots. +# Note: CMAKE_FIND_ROOT_PATH is only useful when cross-compiling. Thus, do not set on macOS builds. +if(NOT PLATFORM_INT MATCHES "^MAC.*$") + list(APPEND CMAKE_FIND_ROOT_PATH "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "") + set(CMAKE_IGNORE_PATH "/System/Library/Frameworks;/usr/local/lib" CACHE INTERNAL "") +endif() + +# Default to searching for frameworks first. +set(CMAKE_FIND_FRAMEWORK FIRST) + +# Set up the default search directories for frameworks. +if(PLATFORM_INT MATCHES "^MAC_CATALYST") + set(CMAKE_FRAMEWORK_PATH + ${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks + ${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks + ${CMAKE_OSX_SYSROOT_INT}/System/iOSSupport/System/Library/Frameworks + ${CMAKE_FRAMEWORK_PATH} CACHE INTERNAL "") +else() + set(CMAKE_FRAMEWORK_PATH + ${CMAKE_DEVELOPER_ROOT}/Library/PrivateFrameworks + ${CMAKE_OSX_SYSROOT_INT}/System/Library/Frameworks + ${CMAKE_FRAMEWORK_PATH} CACHE INTERNAL "") +endif() + +# By default, search both the specified iOS SDK and the remainder of the host filesystem. +if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH CACHE INTERNAL "") +endif() +if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH CACHE INTERNAL "") +endif() + +# +# Some helper-macros below to simplify and beautify the CMakeFile +# + +# This little macro lets you set any Xcode specific property. +macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE XCODE_RELVERSION) + set(XCODE_RELVERSION_I "${XCODE_RELVERSION}") + if(XCODE_RELVERSION_I STREQUAL "All") + set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} "${XCODE_VALUE}") + else() + set_property(TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY}[variant=${XCODE_RELVERSION_I}] "${XCODE_VALUE}") + endif() +endmacro(set_xcode_property) + +# This macro lets you find executable programs on the host system. +macro(find_host_package) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER) + set(_TOOLCHAIN_IOS ${IOS}) + set(IOS OFF) + find_package(${ARGN}) + set(IOS ${_TOOLCHAIN_IOS}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) +endmacro(find_host_package) diff --git a/3rdPartner/libhv/cmake/libhvConfig.cmake b/3rdPartner/libhv/cmake/libhvConfig.cmake new file mode 100644 index 0000000..9088115 --- /dev/null +++ b/3rdPartner/libhv/cmake/libhvConfig.cmake @@ -0,0 +1,87 @@ + +include(SelectLibraryConfigurations) + +find_path(libhv_INCLUDE_DIRS hv/hv.h) +message("libhv_INCLUDE_DIRS: " ${libhv_INCLUDE_DIRS}) + +find_library(libhv_LIBRARY_RELEASE NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH) + +find_library(libhv_LIBRARY_DEBUG NAMES hv PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH) +select_library_configurations(libhv) + +if(NOT libhv_LIBRARY) + set(libhv_FOUND FALSE) + set(LIBHV_FOUND FALSE) + return() +endif() + +if(WIN32) + find_file(libhv_LIBRARY_RELEASE_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../bin" NO_DEFAULT_PATH) + find_file(libhv_LIBRARY_DEBUG_DLL NAMES hv.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/bin" NO_DEFAULT_PATH) +endif() + +# Manage Release Windows shared +if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}") + add_library(libhv SHARED IMPORTED) + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS Release + IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}" + IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) +endif() + +# Manage Debug Windows shared +if(EXISTS "${libhv_LIBRARY_DEBUG_DLL}") + if(EXISTS "${libhv_LIBRARY_RELEASE_DLL}") + #message("Debug mode") + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS "Release;Debug" + IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE_DLL}" + IMPORTED_IMPLIB_RELEASE "${libhv_LIBRARY_RELEASE}" + IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL}" + IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) + else() + add_library(libhv SHARED IMPORTED) + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS Debug + IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG_DLL}" + IMPORTED_IMPLIB_DEBUG "${libhv_LIBRARY_DEBUG}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) + endif() +endif() + +# Manage Release Windows static and Linux shared/static +if((NOT EXISTS "${libhv_LIBRARY_RELEASE_DLL}") AND (EXISTS "${libhv_LIBRARY_RELEASE}")) + add_library(libhv UNKNOWN IMPORTED) + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS Release + IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) +endif() + +# Manage Debug Windows static and Linux shared/static +if((NOT EXISTS "${libhv_LIBRARY_DEBUG_DLL}") AND (EXISTS "${libhv_LIBRARY_DEBUG}")) + if(EXISTS "${libhv_LIBRARY_RELEASE}") + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS "Release;Debug" + IMPORTED_LOCATION_RELEASE "${libhv_LIBRARY_RELEASE}" + IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) + else() + add_library(libhv UNKNOWN IMPORTED) + set_target_properties(libhv PROPERTIES + IMPORTED_CONFIGURATIONS Debug + IMPORTED_LOCATION_DEBUG "${libhv_LIBRARY_DEBUG}" + INTERFACE_INCLUDE_DIRECTORIES "${libhv_INCLUDE_DIRS}" + ) + endif() +endif() + +set(libhv_FOUND TRUE) +set(LIBHV_FOUND TRUE) diff --git a/3rdPartner/libhv/cmake/utils.cmake b/3rdPartner/libhv/cmake/utils.cmake new file mode 100644 index 0000000..38ff5c9 --- /dev/null +++ b/3rdPartner/libhv/cmake/utils.cmake @@ -0,0 +1,42 @@ +include(CheckIncludeFiles) +macro(check_header header) + string(TOUPPER ${header} str1) + string(REGEX REPLACE "[/.]" "_" str2 ${str1}) + set(str3 HAVE_${str2}) + check_include_files(${header} ${str3}) + if (${str3}) + set(${str3} 1) + else() + set(${str3} 0) + endif() +endmacro() + +include(CheckSymbolExists) +macro(check_function function header) + string(TOUPPER ${function} str1) + set(str2 HAVE_${str1}) + check_symbol_exists(${function} ${header} ${str2}) + if (${str2}) + set(${str2} 1) + else() + set(${str2} 0) + endif() +endmacro() + +macro(list_source_directories srcs) + unset(tmp) + foreach(dir ${ARGN}) + aux_source_directory(${dir} tmp) + endforeach() + set(${srcs} ${tmp}) + list(FILTER ${srcs} EXCLUDE REGEX ".*_test\\.c") +endmacro() + +macro(glob_headers_and_sources files) + unset(tmp) + foreach(dir ${ARGN}) + file(GLOB tmp ${dir}/*.h ${dir}/*.c ${dir}/*.hpp ${dir}/*.cpp) + list(APPEND ${files} ${tmp}) + endforeach() + list(FILTER ${files} EXCLUDE REGEX ".*_test\\.c") +endmacro() diff --git a/3rdPartner/libhv/cmake/vars.cmake b/3rdPartner/libhv/cmake/vars.cmake new file mode 100644 index 0000000..20a6e65 --- /dev/null +++ b/3rdPartner/libhv/cmake/vars.cmake @@ -0,0 +1,110 @@ +# see Makefile.vars + +set(BASE_HEADERS + base/hplatform.h + base/hdef.h + base/hatomic.h + base/herr.h + base/htime.h + base/hmath.h + base/hbase.h + base/hversion.h + base/hsysinfo.h + base/hproc.h + base/hthread.h + base/hmutex.h + base/hsocket.h + base/hlog.h + base/hbuf.h + base/hmain.h + base/hendian.h +) + +set(SSL_HEADERS + ssl/hssl.h +) + +set(EVENT_HEADERS + event/hloop.h + event/nlog.h +) + +set(UTIL_HEADERS + util/base64.h + util/md5.h + util/sha1.h +) + +set(CPPUTIL_HEADERS + cpputil/hmap.h + cpputil/hstring.h + cpputil/hfile.h + cpputil/hpath.h + cpputil/hdir.h + cpputil/hurl.h + cpputil/hscope.h + cpputil/hthreadpool.h + cpputil/hasync.h + cpputil/hobjectpool.h + cpputil/ifconfig.h + cpputil/iniparser.h + cpputil/json.hpp + cpputil/singleton.h + cpputil/ThreadLocalStorage.h +) + +set(EVPP_HEADERS + evpp/Buffer.h + evpp/Channel.h + evpp/Event.h + evpp/EventLoop.h + evpp/EventLoopThread.h + evpp/EventLoopThreadPool.h + evpp/Status.h + evpp/TcpClient.h + evpp/TcpServer.h + evpp/UdpClient.h + evpp/UdpServer.h +) + +set(PROTOCOL_HEADERS + protocol/icmp.h + protocol/dns.h + protocol/ftp.h + protocol/smtp.h +) + +set(HTTP_HEADERS + http/httpdef.h + http/wsdef.h + http/http_content.h + http/HttpMessage.h + http/HttpParser.h + http/WebSocketParser.h + http/WebSocketChannel.h +) + +set(HTTP2_HEADERS + http/http2def.h + http/grpcdef.h +) + +set(HTTP_CLIENT_HEADERS + http/client/HttpClient.h + http/client/requests.h + http/client/axios.h + http/client/AsyncHttpClient.h + http/client/WebSocketClient.h) + +set(HTTP_SERVER_HEADERS + http/server/HttpServer.h + http/server/HttpService.h + http/server/HttpContext.h + http/server/HttpResponseWriter.h + http/server/WebSocketServer.h +) + +set(MQTT_HEADERS + mqtt/mqtt_protocol.h + mqtt/mqtt_client.h +) diff --git a/3rdPartner/libhv/config.ini b/3rdPartner/libhv/config.ini new file mode 100644 index 0000000..f7877fe --- /dev/null +++ b/3rdPartner/libhv/config.ini @@ -0,0 +1,37 @@ +# Don't modify this file, you should modify config.mk or +# run ./configure --with-MODULE --enable-FEATURE + +PREFIX=/usr/local +INSTALL_INCDIR=$(PREFIX)/include/hv +INSTALL_LIBDIR=$(PREFIX)/lib + +# modules +# include icmp dns ftp smtp +WITH_PROTOCOL=no + +WITH_EVPP=yes +WITH_HTTP=yes +WITH_HTTP_SERVER=yes +WITH_HTTP_CLIENT=yes +WITH_MQTT=no + +# features +# base/hsocket.h: Unix Domain Socket +ENABLE_UDS=no +# base/RAII.cpp: Windows MiniDumpWriteDump +ENABLE_WINDUMP=no +# http/http_content.h: KeyValue,QueryParams,MultiPart +USE_MULTIMAP=no + +# dependencies +# for http/client +WITH_CURL=no +# for http2 +WITH_NGHTTP2=no +# for SSL/TLS +WITH_OPENSSL=no +WITH_GNUTLS=no +WITH_MBEDTLS=no + +# rudp +WITH_KCP=no diff --git a/3rdPartner/libhv/configure b/3rdPartner/libhv/configure new file mode 100644 index 0000000..15b4489 --- /dev/null +++ b/3rdPartner/libhv/configure @@ -0,0 +1,288 @@ +#!/bin/bash + +. "$(dirname "$0")/scripts/shini.sh" + +print_help() { + shini_parse "config.ini" + cat << END +Usage: ./configure [--option] ... + +options: + --prefix=PREFIX (DEFAULT: $PREFIX) + --incdir=INSTALL_INCDIR (DEFAULT: $PREFIX/include/hv) + --libdir=INSTALL_LIBDIR (DEFAULT: $PREFIX/lib) + + --with-MODULE + --without-MODULE + --enable-FEATURE + --disable-FEATURE + +modules: + --with-protocol compile protocol module? (DEFAULT: $WITH_PROTOCOL) + --with-evpp compile evpp module? (DEFAULT: $WITH_EVPP) + --with-http compile http module? (DEFAULT: $WITH_HTTP) + --with-http-client compile http client module? (DEFAULT: $WITH_HTTP_CLIENT) + --with-http-server compile http server module? (DEFAULT: $WITH_HTTP_SERVER) + --with-mqtt compile mqtt module? (DEFAULT: $WITH_MQTT) + +features: + --enable-uds enable Unix Domain Socket? (DEFAULT: $ENABLE_UDS) + --enable-windump enable Windows coredump? (DEFAULT: $ENABLE_WINDUMP) + +dependencies: + --with-curl compile with curl? (DEFAULT: $WITH_CURL) + --with-nghttp2 compile with nghttp2? (DEFAULT: $WITH_NGHTTP2) + --with-openssl compile with openssl? (DEFAULT: $WITH_OPENSSL) + --with-gnutls compile with gnutls? (DEFAULT: $WITH_GNUTLS) + --with-mbedtls compile with mbedtls? (DEFAULT: $WITH_MBEDTLS) + +rudp: + --with-kcp compile with kcp? (DEFAULT: $WITH_KCP) + +END +} + +mkdir tmp 2>/dev/null +while [ -n "$1" ] +do + opt="$1" + KEY="" + VAL=yes + case $opt in + --help) + print_help + exit 0 + ;; + --prefix=*) + KEY="PREFIX" + VAL=${opt:9} + ;; + --incdir=*) + KEY="INSTALL_INCDIR" + VAL=${opt:9} + ;; + --libdir=*) + KEY="INSTALL_LIBDIR" + VAL=${opt:9} + ;; + --with-*) + KEY="WITH_${opt:7}" + ;; + --without-*) + KEY="WITH_${opt:10}" + VAL=no + ;; + --enable-*) + KEY="ENABLE_${opt:9}" + ;; + --disable-*) + KEY="ENABLE_${opt:10}" + VAL=no + ;; + *) + print_help + exit 255 + ;; + esac + + if [ -n $KEY ]; then + FEATURE=$(echo "$KEY" | tr "a-z-" "A-Z_") + if [ ! -f tmp/config.mk ]; then + cp config.ini tmp/config.mk + fi + shini_write "tmp/config.mk" "" "$FEATURE" "$VAL" + fi + + shift 1 +done + +# config.mk +echo "[config.mk]" +if [ -f tmp/config.mk ]; then + mv tmp/config.mk config.mk + shini_write "config.mk" "" "CONFIG_DATE" "$(date +%Y%m%d)" +fi +cat config.mk +echo "" + +# Checks for compiler +echo -e "\nchecking for compiler..." +if [ $CROSS_COMPILE ]; then + CC=${CROSS_COMPILE}gcc + CXX=${CROSS_COMPILE}g++ +fi + +if [ ! $CC ]; then + CC=gcc + CXX=g++ +fi +CC_VERSION=`$CC --version 2>&1 | head -n 1` + +echo "CC = $CC" +echo "CXX = $CXX" +echo "$CC_VERSION" + +# Checks for os +echo -e "\nchecking for os..." +HOST_OS=`uname -s` +HOST_ARCH=`uname -m` +TARGET_PLATFORM=`$CC -v 2>&1 | grep Target | sed 's/Target: //'` +TARGET_ARCH=`echo $TARGET_PLATFORM | awk -F'-' '{print $1}'` + +case $TARGET_PLATFORM in + *mingw*) TARGET_OS=Windows ;; + *android*) TARGET_OS=Android ;; + *darwin*) TARGET_OS=Darwin ;; + *) TARGET_OS=Linux ;; +esac + +echo "HOST_OS = $HOST_OS" +echo "HOST_ARCH = $HOST_ARCH" +echo "TARGET_PLATFORM = $TARGET_PLATFORM" +echo "TARGET_OS = $TARGET_OS" +echo "TARGET_ARCH = $TARGET_ARCH" + +# hconfig.h +echo -e "\n>> hconfig.h" +confile=hconfig.h +cat << END > $confile +#ifndef HV_CONFIG_H_ +#define HV_CONFIG_H_ + +END + +write_define() { +cat << END >> hconfig.h +#ifndef $macro +#define $macro $value +#endif + +END +} + +CheckHeaderExists() { +rm tmp/check 2>/dev/null +cat << END > tmp/check.c +#include <$header> + +int main() { + return 0; +} + +END +$CC -o tmp/check tmp/check.c 2>/dev/null +if [ -x tmp/check ]; then + value=1 +else + value=0 +fi +} + +CheckSymbolExists() { +CheckHeaderExists +if [ $value -eq 0 ]; then + return; +fi +rm tmp/check 2>/dev/null +cat << END > tmp/check.c +#include <$header> + +int $function(void** pp) {return 0;} +int main() { + void* p; + return $function(&p); +} + +END +$CC -o tmp/check tmp/check.c 2>/dev/null +if [ -x tmp/check ]; then + value=0 +else + value=1 +fi +} + +check_header() { +echo -n "checking for $header... " +CheckHeaderExists +if [ $value -eq 0 ]; then + echo "no" +else + echo "yes" +fi +macro=HAVE_$(echo $header | tr a-z./ A-Z__) +write_define +} + +check_function() { +echo -n "checking for $function... " +CheckSymbolExists +if [ $value -eq 0 ]; then + echo "no" +else + echo "yes" +fi +macro=HAVE_$(echo $function | tr a-z A-Z) +write_define +} + +check_option() { +value=$(eval echo \$$option) +echo "checking for $option=$value" +if [ "$value" == "yes" ]; then +cat << END >> $confile +#define $option 1 +END +else +cat << END >> $confile +/* #undef $option */ +END +fi +} + +# Checks for programs + +# Checks for libraries + +# Checks for header files +header=stdbool.h && check_header +header=stdint.h && check_header +header=stdatomic.h && check_header +header=sys/types.h && check_header +header=sys/stat.h && check_header +header=sys/time.h && check_header +header=fcntl.h && check_header +header=pthread.h && check_header +header=endian.h && check_header +header=sys/endian.h && check_header + +# Checks for functions +function=gettid && header=unistd.h && check_function +function=strlcpy && header=string.h && check_function +function=strlcat && header=string.h && check_function +function=clock_gettime && header=time.h && check_function +function=gettimeofday && header=sys/time.h && check_function +function=pthread_spin_lock && header=pthread.h && check_function +function=pthread_mutex_timedlock && header=pthread.h && check_function +function=sem_timedwait && header=semaphore.h && check_function +function=pipe && header=unistd.h && check_function +function=socketpair && header=sys/socket.h && check_function +function=eventfd && header=sys/eventfd.h && check_function +function=setproctitle && header=unistd.h && check_function + +# Checks for options +source config.mk 2>/dev/null +option=WITH_OPENSSL && check_option +option=WITH_GNUTLS && check_option +option=WITH_MBEDTLS && check_option +option=ENABLE_UDS && check_option +option=USE_MULTIMAP && check_option +option=WITH_KCP && check_option + +# end confile +cat << END >> $confile + +#endif // HV_CONFIG_H_ +END + +echo "configure done." diff --git a/3rdPartner/libhv/cpputil/RAII.cpp b/3rdPartner/libhv/cpputil/RAII.cpp new file mode 100644 index 0000000..078380a --- /dev/null +++ b/3rdPartner/libhv/cpputil/RAII.cpp @@ -0,0 +1,66 @@ +#include "hplatform.h" + +#ifdef OS_WIN +#ifdef ENABLE_WINDUMP +#include +#ifdef _MSC_VER +#pragma comment(lib,"dbghelp.lib") +#endif +static LONG UnhandledException(EXCEPTION_POINTERS *pException) { + char modulefile[256]; + GetModuleFileName(NULL, modulefile, sizeof(modulefile)); + char* pos = strrchr(modulefile, '\\'); + char* modulefilename = pos + 1; + SYSTEMTIME st; + GetLocalTime(&st); + char filename[256]; + snprintf(filename, sizeof(filename), "core_%s_%04d%02d%02d_%02d%02d%02d_%03d.dump", + modulefilename, + st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); + HANDLE hDumpFile = CreateFile(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + MINIDUMP_EXCEPTION_INFORMATION dumpInfo; + dumpInfo.ExceptionPointers = pException; + dumpInfo.ThreadId = GetCurrentThreadId(); + dumpInfo.ClientPointers = TRUE; + MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL); + CloseHandle(hDumpFile); + return EXCEPTION_EXECUTE_HANDLER; +} +#endif + +#include "hsocket.h" +class WsaRAII { +public: + WsaRAII() { + WSAInit(); +#ifdef ENABLE_WINDUMP + SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)UnhandledException); +#endif + } + ~WsaRAII() { + WSADeinit(); + } +}; +static WsaRAII s_wsa; +#endif + +#ifdef WITH_CURL +#include "curl/curl.h" +#ifdef _MSC_VER +//#pragma comment(lib, "libcurl.a") +#pragma comment(lib, "ws2_32.lib") +#pragma comment(lib, "wldap32.lib") +#pragma comment(lib, "advapi32.lib") +#pragma comment(lib, "crypt32.lib") +#endif +class CurlRAII { +public: + CurlRAII() { + curl_global_init(CURL_GLOBAL_ALL); + } + ~CurlRAII() { + curl_global_cleanup(); + } +}; +static CurlRAII s_curl; +#endif diff --git a/3rdPartner/libhv/cpputil/README.md b/3rdPartner/libhv/cpputil/README.md new file mode 100644 index 0000000..7adad79 --- /dev/null +++ b/3rdPartner/libhv/cpputil/README.md @@ -0,0 +1,20 @@ +## 目录结构 + +``` +. +├── hasync.h hv::async实现 +├── hdir.h 目录(ls实现) +├── hfile.h 文件类 +├── hobjectpool.h 对象池 +├── hpath.h 路径操作 +├── hscope.h 作用域模板类 +├── hstring.h 字符串操作 +├── hthreadpool.h 线程池 +├── hurl.h URL操作 +├── ifconfig.h 网络配置(ifconfig实现) +├── iniparser.h INI解析 +├── json.hpp JSON解析 +├── singleton.h 单例模式宏 +└── ThreadLocalStorage.h 线程本地存储类 + +``` diff --git a/3rdPartner/libhv/cpputil/ThreadLocalStorage.cpp b/3rdPartner/libhv/cpputil/ThreadLocalStorage.cpp new file mode 100644 index 0000000..8b72786 --- /dev/null +++ b/3rdPartner/libhv/cpputil/ThreadLocalStorage.cpp @@ -0,0 +1,32 @@ +#include "ThreadLocalStorage.h" + +#include "hthread.h" + +namespace hv { + +ThreadLocalStorage ThreadLocalStorage::tls[ThreadLocalStorage::MAX_NUM]; + +void ThreadLocalStorage::set(int idx, void* val) { + return tls[idx].set(val); +} + +void* ThreadLocalStorage::get(int idx) { + return tls[idx].get(); +} + +void ThreadLocalStorage::setThreadName(const char* name) { + set(THREAD_NAME, (void*)name); +} + +const char* ThreadLocalStorage::threadName() { + void* value = get(THREAD_NAME); + if (value) { + return (char*)value; + } + + static char unnamed[32] = {0}; + snprintf(unnamed, sizeof(unnamed)-1, "thread-%ld", hv_gettid()); + return unnamed; +} + +} diff --git a/3rdPartner/libhv/cpputil/ThreadLocalStorage.h b/3rdPartner/libhv/cpputil/ThreadLocalStorage.h new file mode 100644 index 0000000..e4ddaee --- /dev/null +++ b/3rdPartner/libhv/cpputil/ThreadLocalStorage.h @@ -0,0 +1,67 @@ +#ifndef HV_THREAD_LOCAL_STORAGE_H_ +#define HV_THREAD_LOCAL_STORAGE_H_ + +#include "hexport.h" +#include "hplatform.h" + +#ifdef OS_WIN + +#define hthread_key_t DWORD +#define INVALID_HTHREAD_KEY 0xFFFFFFFF +#define hthread_key_create(pkey) *pkey = TlsAlloc() +#define hthread_key_delete TlsFree +#define hthread_get_value TlsGetValue +#define hthread_set_value TlsSetValue + +#else + +#define hthread_key_t pthread_key_t +#define INVALID_HTHREAD_KEY 0xFFFFFFFF +#define hthread_key_create(pkey) pthread_key_create(pkey, NULL) +#define hthread_key_delete pthread_key_delete +#define hthread_get_value pthread_getspecific +#define hthread_set_value pthread_setspecific + +#endif + +#ifdef __cplusplus +namespace hv { + +class HV_EXPORT ThreadLocalStorage { +public: + enum { + THREAD_NAME = 0, + EVENT_LOOP = 1, + MAX_NUM = 16, + }; + ThreadLocalStorage() { + hthread_key_create(&key); + } + + ~ThreadLocalStorage() { + hthread_key_delete(key); + } + + void set(void* val) { + hthread_set_value(key, val); + } + + void* get() { + return hthread_get_value(key); + } + + static void set(int idx, void* val); + static void* get(int idx); + + static void setThreadName(const char* name); + static const char* threadName(); + +private: + hthread_key_t key; + static ThreadLocalStorage tls[MAX_NUM]; +}; + +} +#endif + +#endif // HV_THREAD_LOCAL_STORAGE_H_ diff --git a/3rdPartner/libhv/cpputil/hasync.cpp b/3rdPartner/libhv/cpputil/hasync.cpp new file mode 100644 index 0000000..e60685e --- /dev/null +++ b/3rdPartner/libhv/cpputil/hasync.cpp @@ -0,0 +1,7 @@ +#include "hasync.h" + +namespace hv { + +SINGLETON_IMPL(GlobalThreadPool) + +} diff --git a/3rdPartner/libhv/cpputil/hasync.h b/3rdPartner/libhv/cpputil/hasync.h new file mode 100644 index 0000000..c1ea03d --- /dev/null +++ b/3rdPartner/libhv/cpputil/hasync.h @@ -0,0 +1,49 @@ +#ifndef HV_ASYNC_H_ +#define HV_ASYNC_H_ + +#include "hexport.h" +#include "hthreadpool.h" +#include "singleton.h" + +namespace hv { + +class HV_EXPORT GlobalThreadPool : public HThreadPool { + SINGLETON_DECL(GlobalThreadPool) +protected: + GlobalThreadPool() : HThreadPool() {} + ~GlobalThreadPool() {} +}; + +/* + * return a future, calling future.get() will wait task done and return RetType. + * async(fn, args...) + * async(std::bind(&Class::mem_fn, &obj)) + * async(std::mem_fn(&Class::mem_fn, &obj)) + * + */ +template +auto async(Fn&& fn, Args&&... args) -> std::future { + return GlobalThreadPool::instance()->commit(std::forward(fn), std::forward(args)...); +} + +class async { +public: + static void startup(int min_threads = DEFAULT_THREAD_POOL_MIN_THREAD_NUM, + int max_threads = DEFAULT_THREAD_POOL_MAX_THREAD_NUM, + int max_idle_ms = DEFAULT_THREAD_POOL_MAX_IDLE_TIME) { + GlobalThreadPool* gtp = GlobalThreadPool::instance(); + if (gtp->isStarted()) return; + gtp->setMinThreadNum(min_threads); + gtp->setMaxThreadNum(max_threads); + gtp->setMaxIdleTime(max_idle_ms); + gtp->start(); + } + + static void cleanup() { + GlobalThreadPool::exitInstance(); + } +}; + +} // end namespace hv + +#endif // HV_ASYNC_H_ diff --git a/3rdPartner/libhv/cpputil/hdir.cpp b/3rdPartner/libhv/cpputil/hdir.cpp new file mode 100644 index 0000000..4027223 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hdir.cpp @@ -0,0 +1,88 @@ +#include "hdir.h" + +#include "hplatform.h" + +#ifdef OS_WIN +//FILETIME starts from 1601-01-01 UTC, epoch from 1970-01-01 UTC +//FILETIME unit (100ns) +#define FILETIME_EPOCH_DIFF 11644473600 // s +time_t FileTime2Epoch(FILETIME filetime) { + uint64_t ll = (((uint64_t)filetime.dwHighDateTime) << 32) | filetime.dwLowDateTime; + ll /= 1e7; // s + return ll - FILETIME_EPOCH_DIFF; +} +#endif + +static bool less(const hdir_t& lhs, const hdir_t& rhs) { + return stricmp(lhs.name, rhs.name) < 0; +} + +int listdir(const char* dir, std::list& dirs) { + int dirlen = strlen(dir); + if (dirlen > 256) { + return -1; + } + char path[512]; + strcpy(path, dir); + if (dir[dirlen-1] != '/') { + strcat(path, "/"); + ++dirlen; + } + dirs.clear(); +#ifdef OS_UNIX + // opendir -> readdir -> closedir + DIR* dp = opendir(dir); + if (dp == NULL) return -1; + struct dirent* result = NULL; + struct stat st; + hdir_t tmp; + while ((result = readdir(dp))) { + memset(&tmp, 0, sizeof(hdir_t)); + strncpy(tmp.name, result->d_name, sizeof(tmp.name)); + strncpy(path+dirlen, result->d_name, sizeof(path)-dirlen); + if (lstat(path, &st) == 0) { + if (S_ISREG(st.st_mode)) tmp.type = 'f'; + else if (S_ISDIR(st.st_mode)) tmp.type = 'd'; + else if (S_ISLNK(st.st_mode)) tmp.type = 'l'; + else if (S_ISBLK(st.st_mode)) tmp.type = 'b'; + else if (S_ISCHR(st.st_mode)) tmp.type = 'c'; + else if (S_ISSOCK(st.st_mode)) tmp.type = 's'; + else if (S_ISFIFO(st.st_mode)) tmp.type = 'p'; + else tmp.type = '-'; + tmp.mode = st.st_mode & 0777; + tmp.size = st.st_size; + tmp.atime = st.st_atime; + tmp.mtime = st.st_mtime; + tmp.ctime = st.st_ctime; + } + dirs.push_back(tmp); + } + closedir(dp); +#elif defined(OS_WIN) + // FindFirstFile -> FindNextFile -> FindClose + strcat(path, "*"); + WIN32_FIND_DATAA data; + HANDLE h = FindFirstFileA(path, &data); + if (h == NULL) { + return -1; + } + hdir_t tmp; + do { + memset(&tmp, 0, sizeof(hdir_t)); + strncpy(tmp.name, data.cFileName, sizeof(tmp.name)); + tmp.type = 'f'; + if (data.dwFileAttributes & _A_SUBDIR) { + tmp.type = 'd'; + } + tmp.mode = 0777; + tmp.size = (((uint64_t)data.nFileSizeHigh) << 32) | data.nFileSizeLow; + tmp.atime = FileTime2Epoch(data.ftLastAccessTime); + tmp.mtime = FileTime2Epoch(data.ftLastWriteTime); + tmp.ctime = FileTime2Epoch(data.ftCreationTime); + dirs.push_back(tmp); + } while (FindNextFileA(h, &data)); + FindClose(h); +#endif + dirs.sort(less); + return dirs.size(); +} diff --git a/3rdPartner/libhv/cpputil/hdir.h b/3rdPartner/libhv/cpputil/hdir.h new file mode 100644 index 0000000..d570b1b --- /dev/null +++ b/3rdPartner/libhv/cpputil/hdir.h @@ -0,0 +1,69 @@ +#ifndef HV_DIR_H_ +#define HV_DIR_H_ + +/* + *@code +int main(int argc, char* argv[]) { + const char* dir = "."; + if (argc > 1) { + dir = argv[1]; + } + std::list dirs; + listdir(dir, dirs); + for (auto& item : dirs) { + printf("%c%c%c%c%c%c%c%c%c%c\t", + item.type, + item.mode & 0400 ? 'r' : '-', + item.mode & 0200 ? 'w' : '-', + item.mode & 0100 ? 'x' : '-', + item.mode & 0040 ? 'r' : '-', + item.mode & 0020 ? 'w' : '-', + item.mode & 0010 ? 'x' : '-', + item.mode & 0004 ? 'r' : '-', + item.mode & 0002 ? 'w' : '-', + item.mode & 0001 ? 'x' : '-'); + float hsize; + if (item.size < 1024) { + printf("%lu\t", item.size); + } + else if ((hsize = item.size/1024.0f) < 1024.0f) { + printf("%.1fK\t", hsize); + } + else if ((hsize /= 1024.0f) < 1024.0f) { + printf("%.1fM\t", hsize); + } + else { + hsize /= 1024.0f; + printf("%.1fG\t", hsize); + } + struct tm* tm = localtime(&item.mtime); + printf("%04d-%02d-%02d %02d:%02d:%02d\t", + tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); + printf("%s%s\n", item.name, item.type == 'd' ? "/" : ""); + } + return 0; +} +*/ + +#include +#include + +#include + +#include "hexport.h" + +typedef struct hdir_s { + char name[256]; + char type; // f:file d:dir l:link b:block c:char s:socket p:pipe + char reserverd; + unsigned short mode; + size_t size; + time_t atime; + time_t mtime; + time_t ctime; +} hdir_t; + +// listdir: same as ls on unix, dir on win +HV_EXPORT int listdir(const char* dir, std::list& dirs); + +#endif // HV_DIR_H_ diff --git a/3rdPartner/libhv/cpputil/hfile.h b/3rdPartner/libhv/cpputil/hfile.h new file mode 100644 index 0000000..0d681ea --- /dev/null +++ b/3rdPartner/libhv/cpputil/hfile.h @@ -0,0 +1,134 @@ +#ifndef HV_FILE_H_ +#define HV_FILE_H_ + +#include // for std::string + +#include "hplatform.h" // for stat +#include "hbuf.h" // for HBuf + +class HFile { +public: + HFile() { + filepath[0] = '\0'; + fp = NULL; + } + + ~HFile() { + close(); + } + + int open(const char* filepath, const char* mode) { + close(); + strncpy(this->filepath, filepath, MAX_PATH - 1); + fp = fopen(filepath, mode); + return fp ? 0 : errno; + } + + void close() { + if (fp) { + fclose(fp); + fp = NULL; + } + } + + bool isopen() { + return fp != NULL; + } + + int remove() { + close(); + return ::remove(filepath); + } + + int rename(const char* newpath) { + close(); + return ::rename(filepath, newpath); + } + + size_t read(void* ptr, size_t len) { + return fread(ptr, 1, len, fp); + } + + size_t write(const void* ptr, size_t len) { + return fwrite(ptr, 1, len, fp); + } + + size_t write(const std::string& str) { + return write(str.c_str(), str.length()); + } + + int seek(size_t offset, int whence = SEEK_SET) { + return fseek(fp, offset, whence); + } + + int tell() { + return ftell(fp); + } + + int flush() { + return fflush(fp); + } + + static size_t size(const char* filepath) { + struct stat st; + memset(&st, 0, sizeof(st)); + stat(filepath, &st); + return st.st_size; + } + + size_t size() { + return HFile::size(filepath); + } + + size_t readall(HBuf& buf) { + size_t filesize = size(); + if (filesize == 0) return 0; + buf.resize(filesize); + return fread(buf.base, 1, filesize, fp); + } + + size_t readall(std::string& str) { + size_t filesize = size(); + if (filesize == 0) return 0; + str.resize(filesize); + return fread((void*)str.data(), 1, filesize, fp); + } + + bool readline(std::string& str) { + str.clear(); + char ch; + while (fread(&ch, 1, 1, fp)) { + if (ch == '\n') { + // unix: LF + return true; + } + if (ch == '\r') { + // dos: CRLF + // read LF + if (fread(&ch, 1, 1, fp) && ch != '\n') { + // mac: CR + fseek(fp, -1, SEEK_CUR); + } + return true; + } + str += ch; + } + return str.length() != 0; + } + + int readrange(std::string& str, size_t from = 0, size_t to = 0) { + size_t filesize = size(); + if (filesize == 0) return 0; + if (to == 0 || to >= filesize) to = filesize - 1; + size_t readbytes = to - from + 1; + str.resize(readbytes); + fseek(fp, from, SEEK_SET); + return fread((void*)str.data(), 1, readbytes, fp); + } + +public: + char filepath[MAX_PATH]; + FILE* fp; +}; + +#endif // HV_FILE_H_ diff --git a/3rdPartner/libhv/cpputil/hmap.h b/3rdPartner/libhv/cpputil/hmap.h new file mode 100644 index 0000000..1d466d5 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hmap.h @@ -0,0 +1,55 @@ +#ifndef HV_MAP_H_ +#define HV_MAP_H_ + +#include "hconfig.h" + +#include +#include + +// MultiMap +namespace std { +/* +int main() { + std::MultiMap kvs; + kvs["name"] = "hw"; + kvs["filename"] = "1.jpg"; + kvs["filename"] = "2.jpg"; + //kvs.insert(std::pair("name", "hw")); + //kvs.insert(std::pair("filename", "1.jpg")); + //kvs.insert(std::pair("filename", "2.jpg")); + for (auto& pair : kvs) { + printf("%s:%s\n", pair.first.c_str(), pair.second.c_str()); + } + auto iter = kvs.find("filename"); + if (iter != kvs.end()) { + for (int i = 0; i < kvs.count("filename"); ++i, ++iter) { + printf("%s:%s\n", iter->first.c_str(), iter->second.c_str()); + } + } + return 0; +} + */ +template +class MultiMap : public multimap { +public: + Value& operator[](Key key) { + auto iter = this->insert(std::pair(key,Value())); + return (*iter).second; + } +}; +} + +#ifdef USE_MULTIMAP +#define HV_MAP std::MultiMap +#else +#define HV_MAP std::map +#endif + +// KeyValue +namespace hv { +typedef std::map keyval_t; +typedef std::MultiMap multi_keyval_t; +typedef HV_MAP KeyValue; +} + +#endif // HV_MAP_H_ diff --git a/3rdPartner/libhv/cpputil/hobjectpool.h b/3rdPartner/libhv/cpputil/hobjectpool.h new file mode 100644 index 0000000..31b9f64 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hobjectpool.h @@ -0,0 +1,183 @@ +#ifndef HV_OBJECT_POOL_H_ +#define HV_OBJECT_POOL_H_ + +/* + * @usage unittest/objectpool_test.cpp + */ + +#include +#include +#include +#include + +#define DEFAULT_OBJECT_POOL_INIT_NUM 0 +#define DEFAULT_OBJECT_POOL_MAX_NUM 4 +#define DEFAULT_OBJECT_POOL_TIMEOUT 3000 // ms + +template +class HObjectFactory { +public: + static T* create() { + return new T; + } +}; + +template> +class HObjectPool { +public: + HObjectPool( + int init_num = DEFAULT_OBJECT_POOL_INIT_NUM, + int max_num = DEFAULT_OBJECT_POOL_MAX_NUM, + int timeout = DEFAULT_OBJECT_POOL_TIMEOUT) + : _max_num(max_num) + , _timeout(timeout) + { + for (int i = 0; i < init_num; ++i) { + T* p = TFactory::create(); + if (p) { + objects_.push_back(std::shared_ptr(p)); + } + } + _object_num = objects_.size(); + } + + ~HObjectPool() {} + + int ObjectNum() { return _object_num; } + int IdleNum() { return objects_.size(); } + int BorrowNum() { return ObjectNum() - IdleNum(); } + + std::shared_ptr TryBorrow() { + std::shared_ptr pObj = NULL; + std::lock_guard locker(mutex_); + if (!objects_.empty()) { + pObj = objects_.front(); + objects_.pop_front(); + } + return pObj; + } + + std::shared_ptr Borrow() { + std::shared_ptr pObj = TryBorrow(); + if (pObj) { + return pObj; + } + + std::unique_lock locker(mutex_); + if (_object_num < _max_num) { + ++_object_num; + // NOTE: unlock to avoid TFactory::create block + mutex_.unlock(); + T* p = TFactory::create(); + mutex_.lock(); + if (!p) --_object_num; + return std::shared_ptr(p); + } + + if (_timeout > 0) { + std::cv_status status = cond_.wait_for(locker, std::chrono::milliseconds(_timeout)); + if (status == std::cv_status::timeout) { + return NULL; + } + if (!objects_.empty()) { + pObj = objects_.front(); + objects_.pop_front(); + return pObj; + } + else { + // WARN: No idle object + } + } + return pObj; + } + + void Return(std::shared_ptr& pObj) { + if (!pObj) return; + std::lock_guard locker(mutex_); + objects_.push_back(pObj); + cond_.notify_one(); + } + + bool Add(std::shared_ptr& pObj) { + std::lock_guard locker(mutex_); + if (_object_num >= _max_num) { + return false; + } + objects_.push_back(pObj); + ++_object_num; + cond_.notify_one(); + return true; + } + + bool Remove(std::shared_ptr& pObj) { + std::lock_guard locker(mutex_); + auto iter = objects_.begin(); + while (iter != objects_.end()) { + if (*iter == pObj) { + iter = objects_.erase(iter); + --_object_num; + return true; + } + else { + ++iter; + } + } + return false; + } + + void Clear() { + std::lock_guard locker(mutex_); + objects_.clear(); + _object_num = 0; + } + + int _object_num; + int _max_num; + int _timeout; +private: + std::list> objects_; + std::mutex mutex_; + std::condition_variable cond_; +}; + +template> +class HPoolObject { +public: + typedef HObjectPool PoolType; + + HPoolObject(PoolType& pool) : pool_(pool) + { + sptr_ = pool_.Borrow(); + } + + ~HPoolObject() { + if (sptr_) { + pool_.Return(sptr_); + } + } + + HPoolObject(const HPoolObject&) = delete; + HPoolObject& operator=(const HPoolObject&) = delete; + + T* get() { + return sptr_.get(); + } + + operator bool() { + return sptr_.get() != NULL; + } + + T* operator->() { + return sptr_.get(); + } + + T operator*() { + return *sptr_.get(); + } + +private: + PoolType& pool_; + std::shared_ptr sptr_; +}; + +#endif // HV_OBJECT_POOL_H_ diff --git a/3rdPartner/libhv/cpputil/hpath.cpp b/3rdPartner/libhv/cpputil/hpath.cpp new file mode 100644 index 0000000..0a4ffc0 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hpath.cpp @@ -0,0 +1,112 @@ +#include "hpath.h" + +#include "hplatform.h" + +bool HPath::exists(const char* path) { + return access(path, 0) == 0; +} + +bool HPath::isdir(const char* path) { + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + stat(path, &st); + return S_ISDIR(st.st_mode); +} + +bool HPath::isfile(const char* path) { + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + stat(path, &st); + return S_ISREG(st.st_mode); +} + +bool HPath::islink(const char* path) { +#ifdef OS_WIN + return HPath::isdir(path) && (GetFileAttributesA(path) & FILE_ATTRIBUTE_REPARSE_POINT); +#else + if (access(path, 0) != 0) return false; + struct stat st; + memset(&st, 0, sizeof(st)); + lstat(path, &st); + return S_ISLNK(st.st_mode); +#endif +} + +std::string HPath::basename(const std::string& filepath) { + std::string::size_type pos1 = filepath.find_last_not_of("/\\"); + if (pos1 == std::string::npos) { + return "/"; + } + std::string::size_type pos2 = filepath.find_last_of("/\\", pos1); + if (pos2 == std::string::npos) { + pos2 = 0; + } else { + pos2++; + } + + return filepath.substr(pos2, pos1-pos2+1); +} + +std::string HPath::dirname(const std::string& filepath) { + std::string::size_type pos1 = filepath.find_last_not_of("/\\"); + if (pos1 == std::string::npos) { + return "/"; + } + std::string::size_type pos2 = filepath.find_last_of("/\\", pos1); + if (pos2 == std::string::npos) { + return "."; + } else if (pos2 == 0) { + pos2 = 1; + } + + return filepath.substr(0, pos2); +} + +std::string HPath::filename(const std::string& filepath) { + std::string::size_type pos1 = filepath.find_last_of("/\\"); + if (pos1 == std::string::npos) { + pos1 = 0; + } else { + pos1++; + } + std::string file = filepath.substr(pos1, -1); + + std::string::size_type pos2 = file.find_last_of("."); + if (pos2 == std::string::npos) { + return file; + } + return file.substr(0, pos2); +} + +std::string HPath::suffixname(const std::string& filepath) { + std::string::size_type pos1 = filepath.find_last_of("/\\"); + if (pos1 == std::string::npos) { + pos1 = 0; + } else { + pos1++; + } + std::string file = filepath.substr(pos1, -1); + + std::string::size_type pos2 = file.find_last_of("."); + if (pos2 == std::string::npos) { + return ""; + } + return file.substr(pos2+1, -1); +} + +std::string HPath::join(const std::string& dir, const std::string& filename) { + char separator = '/'; +#ifdef OS_WIN + if (dir.find_first_of("\\") != std::string::npos) { + separator = '\\'; + } +#endif + std::string filepath(dir); + if (dir[dir.length()-1] != separator) { + filepath += separator; + } + filepath += filename; + return filepath; +} diff --git a/3rdPartner/libhv/cpputil/hpath.h b/3rdPartner/libhv/cpputil/hpath.h new file mode 100644 index 0000000..28d39e2 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hpath.h @@ -0,0 +1,28 @@ +#ifndef HV_PATH_H_ +#define HV_PATH_H_ + +#include // for std::string + +#include "hexport.h" + +class HV_EXPORT HPath { +public: + static bool exists(const char* path); + static bool isdir(const char* path); + static bool isfile(const char* path); + static bool islink(const char* path); + + // filepath = /mnt/share/image/test.jpg + // basename = test.jpg + // dirname = /mnt/share/image + // filename = test + // suffixname = jpg + static std::string basename(const std::string& filepath); + static std::string dirname(const std::string& filepath); + static std::string filename(const std::string& filepath); + static std::string suffixname(const std::string& filepath); + + static std::string join(const std::string& dir, const std::string& filename); +}; + +#endif // HV_PATH_H_ diff --git a/3rdPartner/libhv/cpputil/hscope.h b/3rdPartner/libhv/cpputil/hscope.h new file mode 100644 index 0000000..0222639 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hscope.h @@ -0,0 +1,79 @@ +#ifndef HV_SCOPE_H_ +#define HV_SCOPE_H_ + +#include +typedef std::function Function; + +#include "hdef.h" + +// same as golang defer +class Defer { +public: + Defer(Function&& fn) : _fn(std::move(fn)) {} + ~Defer() { if(_fn) _fn();} +private: + Function _fn; +}; +#define defer(code) Defer STRINGCAT(_defer_, __LINE__)([&](){code}); + +class ScopeCleanup { +public: + template + ScopeCleanup(Fn&& fn, Args&&... args) { + _cleanup = std::bind(std::forward(fn), std::forward(args)...); + } + + ~ScopeCleanup() { + _cleanup(); + } + +private: + Function _cleanup; +}; + +template +class ScopeFree { +public: + ScopeFree(T* p) : _p(p) {} + ~ScopeFree() {SAFE_FREE(_p);} +private: + T* _p; +}; + +template +class ScopeDelete { +public: + ScopeDelete(T* p) : _p(p) {} + ~ScopeDelete() {SAFE_DELETE(_p);} +private: + T* _p; +}; + +template +class ScopeDeleteArray { +public: + ScopeDeleteArray(T* p) : _p(p) {} + ~ScopeDeleteArray() {SAFE_DELETE_ARRAY(_p);} +private: + T* _p; +}; + +template +class ScopeRelease { +public: + ScopeRelease(T* p) : _p(p) {} + ~ScopeRelease() {SAFE_RELEASE(_p);} +private: + T* _p; +}; + +template +class ScopeLock { +public: + ScopeLock(T& mutex) : _mutex(mutex) {_mutex.lock();} + ~ScopeLock() {_mutex.unlock();} +private: + T& _mutex; +}; + +#endif // HV_SCOPE_H_ diff --git a/3rdPartner/libhv/cpputil/hstring.cpp b/3rdPartner/libhv/cpputil/hstring.cpp new file mode 100644 index 0000000..88cd144 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hstring.cpp @@ -0,0 +1,227 @@ +#include "hstring.h" + +#include +#include +#include +#include + +namespace hv { + +std::string empty_string; +std::map empty_map; + +std::string& toupper(std::string& str) { + // std::transform(str.begin(), str.end(), str.begin(), ::toupper); + char* p = (char*)str.c_str(); + while (*p != '\0') { + if (*p >= 'a' && *p <= 'z') { + *p &= ~0x20; + } + ++p; + } + return str; +} + +std::string& tolower(std::string& str) { + // std::transform(str.begin(), str.end(), str.begin(), ::tolower); + char* p = (char*)str.c_str(); + while (*p != '\0') { + if (*p >= 'A' && *p <= 'Z') { + *p |= 0x20; + } + ++p; + } + return str; +} + +std::string& reverse(std::string& str) { + // std::reverse(str.begin(), str.end()); + char* b = (char*)str.c_str(); + char* e = b + str.length() - 1; + char tmp; + while (e > b) { + tmp = *e; + *e = *b; + *b = tmp; + --e; + ++b; + } + return str; +} + +bool startswith(const std::string& str, const std::string& start) { + if (str.length() < start.length()) return false; + return str.compare(0, start.length(), start) == 0; +} + +bool endswith(const std::string& str, const std::string& end) { + if (str.length() < end.length()) return false; + return str.compare(str.length() - end.length(), end.length(), end) == 0; +} + +bool contains(const std::string& str, const std::string& sub) { + if (str.length() < sub.length()) return false; + return str.find(sub) != std::string::npos; +} + +static inline int vscprintf(const char* fmt, va_list ap) { + return vsnprintf(NULL, 0, fmt, ap); +} + +std::string asprintf(const char* fmt, ...) { + va_list ap; + va_start(ap, fmt); + int len = vscprintf(fmt, ap); + va_end(ap); + + std::string str; + str.reserve(len+1); + // must resize to set str.size + str.resize(len); + // must recall va_start on unix + va_start(ap, fmt); + vsnprintf((char*)str.data(), len+1, fmt, ap); + va_end(ap); + + return str; +} + +StringList split(const std::string& str, char delim) { + /* + std::stringstream ss; + ss << str; + string item; + StringList res; + while (std::getline(ss, item, delim)) { + res.push_back(item); + } + return res; + */ + const char* p = str.c_str(); + const char* value = p; + StringList res; + while (*p != '\0') { + if (*p == delim) { + res.push_back(std::string(value, p-value)); + value = p+1; + } + ++p; + } + res.push_back(value); + return res; +} + +hv::KeyValue splitKV(const std::string& str, char kv_kv, char k_v) { + enum { + s_key, + s_value, + } state = s_key; + const char* p = str.c_str(); + const char* key = p; + const char* value = NULL; + int key_len = 0; + int value_len = 0; + hv::KeyValue kvs; + while (*p != '\0') { + if (*p == kv_kv) { + if (key_len && value_len) { + kvs[std::string(key, key_len)] = std::string(value, value_len); + key_len = value_len = 0; + } + state = s_key; + key = p+1; + } + else if (*p == k_v && state != s_value) { + state = s_value; + value = p+1; + } + else { + state == s_key ? ++key_len : ++value_len; + } + ++p; + } + if (key_len && value_len) { + kvs[std::string(key, key_len)] = std::string(value, value_len); + } + return kvs; +} + +std::string trim(const std::string& str, const char* chars) { + std::string::size_type pos1 = str.find_first_not_of(chars); + if (pos1 == std::string::npos) return ""; + + std::string::size_type pos2 = str.find_last_not_of(chars); + return str.substr(pos1, pos2-pos1+1); +} + +std::string ltrim(const std::string& str, const char* chars) { + std::string::size_type pos = str.find_first_not_of(chars); + if (pos == std::string::npos) return ""; + return str.substr(pos); +} + +std::string rtrim(const std::string& str, const char* chars) { + std::string::size_type pos = str.find_last_not_of(chars); + return str.substr(0, pos+1); +} + +std::string trim_pairs(const std::string& str, const char* pairs) { + const char* s = str.c_str(); + const char* e = str.c_str() + str.size() - 1; + const char* p = pairs; + bool is_pair = false; + while (*p != '\0' && *(p+1) != '\0') { + if (*s == *p && *e == *(p+1)) { + is_pair = true; + break; + } + p += 2; + } + return is_pair ? str.substr(1, str.size()-2) : str; +} + +std::string replace(const std::string& str, const std::string& find, const std::string& rep) { + std::string res(str); + std::string::size_type pos = res.find(find); + if (pos != std::string::npos) { + res.replace(pos, find.size(), rep); + } + return res; +} + +std::string replaceAll(const std::string& str, const std::string& find, const std::string& rep) { + std::string::size_type pos = 0; + std::string::size_type a = find.size(); + std::string::size_type b = rep.size(); + + std::string res(str); + while ((pos = res.find(find, pos)) != std::string::npos) { + res.replace(pos, a, rep); + pos += b; + } + return res; +} + +void NetAddr::from_string(const std::string& ipport) { + auto pos = ipport.find_last_of(':'); + if (pos != std::string::npos) { + ip = trim_pairs(ipport.substr(0, pos), "[]"); + std::string strPort = ipport.substr(pos + 1); + port = atoi(strPort.c_str()); + } else if (ipport.find('.') != std::string::npos) { + ip = ipport; + port = 0; + } else { + port = atoi(ipport.c_str()); + } +} + +std::string NetAddr::to_string() { + const char* fmt = "%s:%d"; + if (ip.find(':') != std::string::npos) { + fmt = "[%s]:%d"; + } + return hv::asprintf(fmt, ip.c_str(), port); +} + +} // end namespace hv diff --git a/3rdPartner/libhv/cpputil/hstring.h b/3rdPartner/libhv/cpputil/hstring.h new file mode 100644 index 0000000..8c675a1 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hstring.h @@ -0,0 +1,92 @@ +#ifndef HV_STRING_H_ +#define HV_STRING_H_ + +#include +#include + +#include +#include + +#include "hexport.h" +#include "hplatform.h" +#include "hmap.h" + +#define SPACE_CHARS " \t\r\n" +#define PAIR_CHARS "{}[]()<>\"\"\'\'``" + +namespace hv { + +HV_EXPORT extern std::string empty_string; +HV_EXPORT extern std::map empty_map; + +typedef std::vector StringList; + +// std::map +class StringCaseLess : public std::less { +public: + bool operator()(const std::string& lhs, const std::string& rhs) const { + return strcasecmp(lhs.c_str(), rhs.c_str()) < 0; + } +}; + +// NOTE: low-version NDK not provide std::to_string +template +HV_INLINE std::string to_string(const T& t) { + std::ostringstream oss; + oss << t; + return oss.str(); +} + +template +HV_INLINE T from_string(const std::string& str) { + T t; + std::istringstream iss(str); + iss >> t; + return t; +} + +template +HV_INLINE void print(const T& t) { + std::cout << t; +} + +template +HV_INLINE void println(const T& t) { + std::cout << t << std::endl; +} + +HV_EXPORT std::string& toupper(std::string& str); +HV_EXPORT std::string& tolower(std::string& str); +HV_EXPORT std::string& reverse(std::string& str); + +HV_EXPORT bool startswith(const std::string& str, const std::string& start); +HV_EXPORT bool endswith(const std::string& str, const std::string& end); +HV_EXPORT bool contains(const std::string& str, const std::string& sub); + +HV_EXPORT std::string asprintf(const char* fmt, ...); +// x,y,z +HV_EXPORT StringList split(const std::string& str, char delim = ','); +// k1=v1&k2=v2 +HV_EXPORT hv::KeyValue splitKV(const std::string& str, char kv_kv = '&', char k_v = '='); +HV_EXPORT std::string trim(const std::string& str, const char* chars = SPACE_CHARS); +HV_EXPORT std::string ltrim(const std::string& str, const char* chars = SPACE_CHARS); +HV_EXPORT std::string rtrim(const std::string& str, const char* chars = SPACE_CHARS); +HV_EXPORT std::string trim_pairs(const std::string& str, const char* pairs = PAIR_CHARS); +HV_EXPORT std::string replace(const std::string& str, const std::string& find, const std::string& rep); +HV_EXPORT std::string replaceAll(const std::string& str, const std::string& find, const std::string& rep); + +struct HV_EXPORT NetAddr { + std::string ip; + int port; + + NetAddr() : port(0) {} + NetAddr(const std::string& _ip, int _port) : ip(_ip), port(_port) {} + NetAddr(const std::string& ipport) { from_string(ipport); } + + void from_string(const std::string& ipport); + std::string to_string(); +}; + +} // end namespace hv + +#endif // HV_STRING_H_ diff --git a/3rdPartner/libhv/cpputil/hthreadpool.h b/3rdPartner/libhv/cpputil/hthreadpool.h new file mode 100644 index 0000000..8df9871 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hthreadpool.h @@ -0,0 +1,249 @@ +#ifndef HV_THREAD_POOL_H_ +#define HV_THREAD_POOL_H_ + +/* + * @usage unittest/threadpool_test.cpp + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DEFAULT_THREAD_POOL_MIN_THREAD_NUM 1 +#define DEFAULT_THREAD_POOL_MAX_THREAD_NUM std::thread::hardware_concurrency() +#define DEFAULT_THREAD_POOL_MAX_IDLE_TIME 60000 // ms + +class HThreadPool { +public: + using Task = std::function; + + HThreadPool(int min_threads = DEFAULT_THREAD_POOL_MIN_THREAD_NUM, + int max_threads = DEFAULT_THREAD_POOL_MAX_THREAD_NUM, + int max_idle_ms = DEFAULT_THREAD_POOL_MAX_IDLE_TIME) + : min_thread_num(min_threads) + , max_thread_num(max_threads) + , max_idle_time(max_idle_ms) + , status(STOP) + , cur_thread_num(0) + , idle_thread_num(0) + {} + + virtual ~HThreadPool() { + stop(); + } + + void setMinThreadNum(int min_threads) { + min_thread_num = min_threads; + } + void setMaxThreadNum(int max_threads) { + max_thread_num = max_threads; + } + void setMaxIdleTime(int ms) { + max_idle_time = ms; + } + int currentThreadNum() { + return cur_thread_num; + } + int idleThreadNum() { + return idle_thread_num; + } + size_t taskNum() { + std::lock_guard locker(task_mutex); + return tasks.size(); + } + bool isStarted() { + return status != STOP; + } + bool isStopped() { + return status == STOP; + } + + int start(int start_threads = 0) { + if (status != STOP) return -1; + status = RUNNING; + if (start_threads < min_thread_num) start_threads = min_thread_num; + if (start_threads > max_thread_num) start_threads = max_thread_num; + for (int i = 0; i < start_threads; ++i) { + createThread(); + } + return 0; + } + + int stop() { + if (status == STOP) return -1; + status = STOP; + task_cond.notify_all(); + for (auto& i : threads) { + if (i.thread->joinable()) { + i.thread->join(); + } + } + threads.clear(); + cur_thread_num = 0; + idle_thread_num = 0; + return 0; + } + + int pause() { + if (status == RUNNING) { + status = PAUSE; + } + return 0; + } + + int resume() { + if (status == PAUSE) { + status = RUNNING; + } + return 0; + } + + int wait() { + while (status != STOP) { + if (tasks.empty() && idle_thread_num == cur_thread_num) { + break; + } + std::this_thread::yield(); + } + return 0; + } + + /* + * return a future, calling future.get() will wait task done and return RetType. + * commit(fn, args...) + * commit(std::bind(&Class::mem_fn, &obj)) + * commit(std::mem_fn(&Class::mem_fn, &obj)) + * + */ + template + auto commit(Fn&& fn, Args&&... args) -> std::future { + if (status == STOP) start(); + if (idle_thread_num <= tasks.size() && cur_thread_num < max_thread_num) { + createThread(); + } + using RetType = decltype(fn(args...)); + auto task = std::make_shared >( + std::bind(std::forward(fn), std::forward(args)...)); + std::future future = task->get_future(); + { + std::lock_guard locker(task_mutex); + tasks.emplace([task]{ + (*task)(); + }); + } + + task_cond.notify_one(); + return future; + } + +protected: + bool createThread() { + if (cur_thread_num >= max_thread_num) return false; + std::thread* thread = new std::thread([this] { + while (status != STOP) { + while (status == PAUSE) { + std::this_thread::yield(); + } + + Task task; + { + std::unique_lock locker(task_mutex); + task_cond.wait_for(locker, std::chrono::milliseconds(max_idle_time), [this]() { + return status == STOP || !tasks.empty(); + }); + if (status == STOP) return; + if (tasks.empty()) { + if (cur_thread_num > min_thread_num) { + delThread(std::this_thread::get_id()); + return; + } + continue; + } + --idle_thread_num; + task = std::move(tasks.front()); + tasks.pop(); + } + if (task) { + task(); + ++idle_thread_num; + } + } + }); + addThread(thread); + return true; + } + + void addThread(std::thread* thread) { + thread_mutex.lock(); + ++cur_thread_num; + ++idle_thread_num; + ThreadData data; + data.thread = std::shared_ptr(thread); + data.id = thread->get_id(); + data.status = RUNNING; + data.start_time = time(NULL); + data.stop_time = 0; + threads.emplace_back(data); + thread_mutex.unlock(); + } + + void delThread(std::thread::id id) { + time_t now = time(NULL); + thread_mutex.lock(); + --cur_thread_num; + --idle_thread_num; + auto iter = threads.begin(); + while (iter != threads.end()) { + if (iter->status == STOP && now > iter->stop_time) { + if (iter->thread->joinable()) { + iter->thread->join(); + iter = threads.erase(iter); + continue; + } + } else if (iter->id == id) { + iter->status = STOP; + iter->stop_time = time(NULL); + } + ++iter; + } + thread_mutex.unlock(); + } + +public: + int min_thread_num; + int max_thread_num; + int max_idle_time; + +protected: + enum Status { + STOP, + RUNNING, + PAUSE, + }; + struct ThreadData { + std::shared_ptr thread; + std::thread::id id; + Status status; + time_t start_time; + time_t stop_time; + }; + std::atomic status; + std::atomic cur_thread_num; + std::atomic idle_thread_num; + std::list threads; + std::mutex thread_mutex; + std::queue tasks; + std::mutex task_mutex; + std::condition_variable task_cond; +}; + +#endif // HV_THREAD_POOL_H_ diff --git a/3rdPartner/libhv/cpputil/hurl.cpp b/3rdPartner/libhv/cpputil/hurl.cpp new file mode 100644 index 0000000..3d90873 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hurl.cpp @@ -0,0 +1,206 @@ +#include "hurl.h" + +#include "hdef.h" +#include "hbase.h" + +/* +static bool Curl_isunreserved(unsigned char in) +{ + switch(in) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + case 'a': case 'b': case 'c': case 'd': case 'e': + case 'f': case 'g': case 'h': case 'i': case 'j': + case 'k': case 'l': case 'm': case 'n': case 'o': + case 'p': case 'q': case 'r': case 's': case 't': + case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': + case 'A': case 'B': case 'C': case 'D': case 'E': + case 'F': case 'G': case 'H': case 'I': case 'J': + case 'K': case 'L': case 'M': case 'N': case 'O': + case 'P': case 'Q': case 'R': case 'S': case 'T': + case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': + case '-': case '.': case '_': case '~': + return TRUE; + default: + break; + } + return FLASE; +} +*/ + +static inline bool is_unambiguous(char c) { + return IS_ALPHANUM(c) || + c == '-' || + c == '_' || + c == '.' || + c == '~'; +} + +static inline bool char_in_str(char c, const char* str) { + const char* p = str; + while (*p && *p != c) ++p; + return *p != '\0'; +} + +static inline unsigned char hex2i(char hex) { + return hex <= '9' ? hex - '0' : + hex <= 'F' ? hex - 'A' + 10 : hex - 'a' + 10; +} + +std::string HUrl::escape(const std::string& str, const char* unescaped_chars) { + std::string ostr; + static char tab[] = "0123456789ABCDEF"; + const unsigned char* p = reinterpret_cast(str.c_str()); + char szHex[4] = "%00"; + while (*p != '\0') { + if (is_unambiguous(*p) || char_in_str(*p, unescaped_chars)) { + ostr += *p; + } + else { + szHex[1] = tab[*p >> 4]; + szHex[2] = tab[*p & 0xF]; + ostr += szHex; + } + ++p; + } + return ostr; +} + +std::string HUrl::unescape(const std::string& str) { + std::string ostr; + const char* p = str.c_str(); + while (*p != '\0') { + if (*p == '%' && + IS_HEX(p[1]) && + IS_HEX(p[2])) { + ostr += ((hex2i(p[1]) << 4) | hex2i(p[2])); + p += 3; + } + else { + if (*p == '+') { + ostr += ' '; + } else { + ostr += *p; + } + ++p; + } + } + return ostr; +} + +void HUrl::reset() { + url.clear(); + scheme.clear(); + username.clear(); + password.clear(); + host.clear(); + port = 0; + path.clear(); + query.clear(); + fragment.clear(); +} + +bool HUrl::parse(const std::string& url) { + reset(); + this->url = url; + hurl_t stURL; + if (hv_parse_url(&stURL, url.c_str()) != 0) { + return false; + } + int len = stURL.fields[HV_URL_SCHEME].len; + if (len > 0) { + scheme = url.substr(stURL.fields[HV_URL_SCHEME].off, len); + } + len = stURL.fields[HV_URL_USERNAME].len; + if (len > 0) { + username = url.substr(stURL.fields[HV_URL_USERNAME].off, len); + len = stURL.fields[HV_URL_PASSWORD].len; + if (len > 0) { + password = url.substr(stURL.fields[HV_URL_PASSWORD].off, len); + } + } + len = stURL.fields[HV_URL_HOST].len; + if (len > 0) { + host = url.substr(stURL.fields[HV_URL_HOST].off, len); + } + port = stURL.port; + len = stURL.fields[HV_URL_PATH].len; + if (len > 0) { + path = url.substr(stURL.fields[HV_URL_PATH].off, len); + } else { + path = "/"; + } + len = stURL.fields[HV_URL_QUERY].len; + if (len > 0) { + query = url.substr(stURL.fields[HV_URL_QUERY].off, len); + } + len = stURL.fields[HV_URL_FRAGMENT].len; + if (len > 0) { + fragment = url.substr(stURL.fields[HV_URL_FRAGMENT].off, len); + } + return true; +} + +const std::string& HUrl::dump() { + url.clear(); + // scheme:// + if (!scheme.empty()) { + url += scheme; + url += "://"; + } + // user:pswd@ + if (!username.empty()) { + url += username; + if (!password.empty()) { + url += ":"; + url += password; + } + url += "@"; + } + // host:port + if (!host.empty()) { + url += host; + if (port != 80 && port != 443) { + char buf[16] = {0}; + snprintf(buf, sizeof(buf), ":%d", port); + url += port; + } + } + // /path + if (!path.empty()) { + url += path; + } + // ?query + if (!query.empty()) { + url += '?'; + url += query; + } + // #fragment + if (!fragment.empty()) { + url += '#'; + url += fragment; + } + return url; +} + +namespace hv { + +std::string escapeHTML(const std::string& str) { + std::string ostr; + const char* p = str.c_str(); + while (*p != '\0') { + switch (*p) { + case '<': ostr += "<"; break; + case '>': ostr += ">"; break; + case '&': ostr += "&"; break; + case '\"': ostr += """; break; + case '\'': ostr += "'"; break; + // case ' ': ostr += " "; break; + default: ostr += *p; break; + } + ++p; + } + return ostr; +} + +} diff --git a/3rdPartner/libhv/cpputil/hurl.h b/3rdPartner/libhv/cpputil/hurl.h new file mode 100644 index 0000000..179a2d2 --- /dev/null +++ b/3rdPartner/libhv/cpputil/hurl.h @@ -0,0 +1,41 @@ +#ifndef HV_URL_H_ +#define HV_URL_H_ + +#include // import std::string + +#include "hexport.h" + +class HV_EXPORT HUrl { +public: + static std::string escape(const std::string& str, const char* unescaped_chars = ""); + static std::string unescape(const std::string& str); + + HUrl() : port(0) {} + ~HUrl() {} + + void reset(); + bool parse(const std::string& url); + const std::string& dump(); + + std::string url; + std::string scheme; + std::string username; + std::string password; + std::string host; + int port; + std::string path; + std::string query; + std::string fragment; +}; + +namespace hv { + +HV_INLINE std::string escapeURL(const std::string& url) { + return HUrl::escape(url, ":/@?=&#+"); +} + +HV_EXPORT std::string escapeHTML(const std::string& str); + +} // end namespace hv + +#endif // HV_URL_H_ diff --git a/3rdPartner/libhv/cpputil/ifconfig.cpp b/3rdPartner/libhv/cpputil/ifconfig.cpp new file mode 100644 index 0000000..9af3618 --- /dev/null +++ b/3rdPartner/libhv/cpputil/ifconfig.cpp @@ -0,0 +1,223 @@ +#include "ifconfig.h" + +#include "hplatform.h" + +#ifdef OS_LINUX +#include +#include +#include +#include +#include +#include +#include + +int ifconfig(std::vector& ifcs) { + int sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) { + return -10; + } + + struct ifconf ifc; + char buf[1024]; + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + + int iRet = ioctl(sock, SIOCGIFCONF, &ifc); + if (iRet != 0) { + close(sock); + return iRet; + } + + int cnt = ifc.ifc_len / sizeof(struct ifreq); + //printf("ifc.size=%d\n", cnt); + if (cnt == 0) { + close(sock); + return -20; + } + + struct ifreq ifr; + ifcs.clear(); + ifconfig_t tmp; + for (int i = 0; i < cnt; ++i) { + // name + strcpy(ifr.ifr_name, ifc.ifc_req[i].ifr_name); + //printf("name: %s\n", ifr.ifr_name); + strncpy(tmp.name, ifr.ifr_name, sizeof(tmp.name)); + // flags + //iRet = ioctl(sock, SIOCGIFFLAGS, &ifr); + //short flags = ifr.ifr_flags; + // addr + iRet = ioctl(sock, SIOCGIFADDR, &ifr); + struct sockaddr_in* addr = (struct sockaddr_in*)&ifr.ifr_addr; + char* ip = inet_ntoa(addr->sin_addr); + //printf("ip: %s\n", ip); + strncpy(tmp.ip, ip, sizeof(tmp.ip)); + // netmask + iRet = ioctl(sock, SIOCGIFNETMASK, &ifr); + addr = (struct sockaddr_in*)&ifr.ifr_netmask; + char* netmask = inet_ntoa(addr->sin_addr); + //printf("netmask: %s\n", netmask); + strncpy(tmp.mask, netmask, sizeof(tmp.mask)); + // broadaddr + iRet = ioctl(sock, SIOCGIFBRDADDR, &ifr); + addr = (struct sockaddr_in*)&ifr.ifr_broadaddr; + char* broadaddr = inet_ntoa(addr->sin_addr); + //printf("broadaddr: %s\n", broadaddr); + strncpy(tmp.broadcast, broadaddr, sizeof(tmp.broadcast)); + // hwaddr + iRet = ioctl(sock, SIOCGIFHWADDR, &ifr); + snprintf(tmp.mac, sizeof(tmp.mac), "%02x:%02x:%02x:%02x:%02x:%02x", + (unsigned char)ifr.ifr_hwaddr.sa_data[0], + (unsigned char)ifr.ifr_hwaddr.sa_data[1], + (unsigned char)ifr.ifr_hwaddr.sa_data[2], + (unsigned char)ifr.ifr_hwaddr.sa_data[3], + (unsigned char)ifr.ifr_hwaddr.sa_data[4], + (unsigned char)ifr.ifr_hwaddr.sa_data[5]); + //printf("mac: %s\n", tmp.mac); + //printf("\n"); + + if (strcmp(tmp.ip, "0.0.0.0") == 0 || + strcmp(tmp.ip, "127.0.0.1") == 0 || + strcmp(tmp.mac, "00:00:00:00:00:00") == 0) { + continue; + } + + ifcs.push_back(tmp); + } + + close(sock); + return 0; +} +#elif defined(OS_WIN) +#include +#include +#include +#include +int ifconfig(std::vector& ifcs) { + PIP_ADAPTER_ADDRESSES pAddrs = NULL; + ULONG buflen = 0; + GetAdaptersAddresses(AF_INET, 0, NULL, pAddrs, &buflen); + pAddrs = (PIP_ADAPTER_ADDRESSES)malloc(buflen); + GetAdaptersAddresses(AF_INET, 0, NULL, pAddrs, &buflen); + + PIP_ADAPTER_INFO pInfos = NULL; + buflen = 0; + GetAdaptersInfo(pInfos, &buflen); + pInfos = (PIP_ADAPTER_INFO)malloc(buflen); + GetAdaptersInfo(pInfos, &buflen); + + ifconfig_t ifc; + std::vector tmp_ifcs; + PIP_ADAPTER_ADDRESSES pAddr = pAddrs; + char mac[32] = {'\0'}; + while (pAddr) { + snprintf(mac, sizeof(mac), "%02x:%02x:%02x:%02x:%02x:%02x", + pAddr->PhysicalAddress[0], + pAddr->PhysicalAddress[1], + pAddr->PhysicalAddress[2], + pAddr->PhysicalAddress[3], + pAddr->PhysicalAddress[4], + pAddr->PhysicalAddress[5]); + + memset(&ifc, 0, sizeof(ifc)); + strncpy(ifc.name, pAddr->AdapterName, sizeof(ifc.name)); + strncpy(ifc.ip, "0.0.0.0", sizeof(ifc.ip)); + strncpy(ifc.mask, "255.255.255.255", sizeof(ifc.mask)); + strncpy(ifc.mac, mac, sizeof(ifc.mac)); + tmp_ifcs.push_back(ifc); + + pAddr = pAddr->Next; + } + + PIP_ADAPTER_INFO pInfo = pInfos; + while (pInfo) { + for (auto& item : tmp_ifcs) { + if (strcmp(item.name, pInfo->AdapterName) == 0) { + // description more friendly + strncpy(item.name, pInfo->Description, sizeof(item.name)); + strncpy(item.ip, pInfo->IpAddressList.IpAddress.String, sizeof(item.ip)); + strncpy(item.mask, pInfo->IpAddressList.IpMask.String, sizeof(item.mask)); + } + } + + pInfo = pInfo->Next; + } + + free(pAddrs); + free(pInfos); + + // filter + ifcs.clear(); + for (auto& item : tmp_ifcs) { + if (strcmp(item.ip, "0.0.0.0") == 0 || + strcmp(item.ip, "127.0.0.1") == 0 || + strcmp(item.mac, "00:00:00:00:00:00") == 0) { + continue; + } + ifcs.push_back(item); + } + + return 0; +} +#elif defined(OS_MAC) +#include +#include +int ifconfig(std::vector& ifcs) { + struct ifaddrs *ifas, *ifap; + int ret = getifaddrs(&ifas); + if (ret != 0) return ret; + ifconfig_s tmp; + for (ifap = ifas; ifap != NULL; ifap = ifap->ifa_next) { + if (ifap->ifa_addr->sa_family == AF_INET) { + // ipv4 + struct sockaddr_in* addr = (struct sockaddr_in*)ifap->ifa_addr; + char* ip = inet_ntoa(addr->sin_addr); + // filter + if (strcmp(ip, "0.0.0.0") == 0 || strcmp(ip, "127.0.0.1") == 0) { + continue; + } + memset(&tmp, 0, sizeof(tmp)); + strncpy(tmp.name, ifap->ifa_name, sizeof(tmp.name)); + strncpy(tmp.ip, ip, sizeof(tmp.ip)); + // netmask + addr = (struct sockaddr_in*)ifap->ifa_netmask; + char* netmask = inet_ntoa(addr->sin_addr); + strncpy(tmp.mask, netmask, sizeof(tmp.mask)); + // broadaddr + addr = (struct sockaddr_in*)ifap->ifa_broadaddr; + char* broadaddr = inet_ntoa(addr->sin_addr); + strncpy(tmp.broadcast, broadaddr, sizeof(tmp.broadcast)); + // push_back + ifcs.push_back(tmp); + } + } + + for (ifap = ifas; ifap != NULL; ifap = ifap->ifa_next) { + if (ifap->ifa_addr->sa_family == AF_LINK) { + // hwaddr + for (auto iter = ifcs.begin(); iter != ifcs.end(); ++iter) { + if (strcmp(iter->name, ifap->ifa_name) == 0) { + struct sockaddr_dl* addr = (struct sockaddr_dl*)ifap->ifa_addr; + unsigned char* pmac = (unsigned char*)LLADDR(addr); + snprintf(iter->mac, sizeof(iter->mac), "%02x:%02x:%02x:%02x:%02x:%02x", + pmac[0], pmac[1], pmac[2], pmac[3], pmac[4], pmac[5]); + // filter + if (strcmp(iter->mac, "00:00:00:00:00:00") == 0) { + ifcs.erase(iter); + } + break; + } + } + } + } + + freeifaddrs(ifas); + return 0; +} + +#else +int ifconfig(std::vector& ifcs) { + return -10; // unimplemented +} +#endif + diff --git a/3rdPartner/libhv/cpputil/ifconfig.h b/3rdPartner/libhv/cpputil/ifconfig.h new file mode 100644 index 0000000..cf717d0 --- /dev/null +++ b/3rdPartner/libhv/cpputil/ifconfig.h @@ -0,0 +1,36 @@ +#ifndef HV_IFCONFIG_H_ +#define HV_IFCONFIG_H_ + +#include + +#include "hexport.h" + +#ifdef _MSC_VER +#pragma comment(lib, "iphlpapi.lib") +#pragma comment(lib, "ws2_32.lib") +#endif + +typedef struct ifconfig_s { + char name[128]; + char ip[16]; + char mask[16]; + char broadcast[16]; + char mac[20]; +} ifconfig_t; + +/* + * @test + std::vector ifcs; + ifconfig(ifcs); + for (auto& item : ifcs) { + printf("%s\nip: %s\nmask: %s\nbroadcast: %s\nmac: %s\n\n", + item.name, + item.ip, + item.mask, + item.broadcast, + item.mac); + } + */ +HV_EXPORT int ifconfig(std::vector& ifcs); + +#endif // HV_IFCONFIG_H_ diff --git a/3rdPartner/libhv/cpputil/iniparser.cpp b/3rdPartner/libhv/cpputil/iniparser.cpp new file mode 100644 index 0000000..86df999 --- /dev/null +++ b/3rdPartner/libhv/cpputil/iniparser.cpp @@ -0,0 +1,390 @@ +#include "iniparser.h" + +#include + +#include "hdef.h" +#include "herr.h" +#include "hstring.h" +#include "hfile.h" +#include "hbase.h" + +using namespace hv; + +/********************************** +# div + +[section] + +key = value # span + +# div +***********************************/ + +class IniNode { +public: + enum Type { + INI_NODE_TYPE_UNKNOWN, + INI_NODE_TYPE_ROOT, + INI_NODE_TYPE_SECTION, + INI_NODE_TYPE_KEY_VALUE, + INI_NODE_TYPE_DIV, + INI_NODE_TYPE_SPAN, + } type; + std::string label; // section|key|comment + std::string value; + std::list children; + + virtual ~IniNode() { + for (auto pNode : children) { + if (pNode) { + delete pNode; + } + } + children.clear(); + } + + void Add(IniNode* pNode) { + children.push_back(pNode); + } + + void Del(IniNode* pNode) { + for (auto iter = children.begin(); iter != children.end(); ++iter) { + if ((*iter) == pNode) { + delete (*iter); + children.erase(iter); + return; + } + } + } + + IniNode* Get(const std::string& label, Type type = INI_NODE_TYPE_KEY_VALUE) { + for (auto pNode : children) { + if (pNode->type == type && pNode->label == label) { + return pNode; + } + } + return NULL; + } +}; + +class IniSection : public IniNode { +public: + IniSection() : IniNode(), section(label) { + type = INI_NODE_TYPE_SECTION; + } + std::string §ion; +}; + +class IniKeyValue : public IniNode { +public: + IniKeyValue() : IniNode(), key(label) { + type = INI_NODE_TYPE_KEY_VALUE; + } + std::string &key; +}; + +class IniComment : public IniNode { +public: + IniComment() : IniNode(), comment(label) { + } + std::string &comment; +}; + +IniParser::IniParser() { + _comment = DEFAULT_INI_COMMENT; + _delim = DEFAULT_INI_DELIM; + root_ = NULL; +} + +IniParser::~IniParser() { + Unload(); +} + +int IniParser::Unload() { + SAFE_DELETE(root_); + return 0; +} + +int IniParser::Reload() { + return LoadFromFile(_filepath.c_str()); +} + +int IniParser::LoadFromFile(const char* filepath) { + _filepath = filepath; + + HFile file; + if (file.open(filepath, "r") != 0) { + return ERR_OPEN_FILE; + } + + std::string str; + file.readall(str); + const char* c_str = str.c_str(); + unsigned char utf8_bom[3] = { 0xEF, 0xBB, 0xBF }; + if (str.size() >= 3 && memcmp(c_str, utf8_bom, 3) == 0) { + c_str += 3; + } + return LoadFromMem(c_str); +} + +int IniParser::LoadFromMem(const char* data) { + Unload(); + + root_ = new IniNode; + root_->type = IniNode::INI_NODE_TYPE_ROOT; + + std::stringstream ss; + ss << data; + std::string strLine; + int line = 0; + std::string::size_type pos; + + std::string content, comment, strDiv; + IniNode* pScopeNode = root_; + IniNode* pNewNode = NULL; + while (std::getline(ss, strLine)) { + ++line; + + content = ltrim(strLine); + if (content.length() == 0) { + // blank line + strDiv += '\n'; + continue; + } + + // trim_comment + comment = ""; + pos = content.find_first_of(_comment); + if (pos != std::string::npos) { + comment = content.substr(pos); + content = content.substr(0, pos); + } + + content = rtrim(content); + if (content.length() == 0) { + strDiv += strLine; + strDiv += '\n'; + continue; + } else if (strDiv.length() != 0) { + IniNode* pNode = new IniNode; + pNode->type = IniNode::INI_NODE_TYPE_DIV; + pNode->label = strDiv; + pScopeNode->Add(pNode); + strDiv = ""; + } + + if (content[0] == '[') { + if (content[content.length()-1] == ']') { + // section + content = trim(content.substr(1, content.length()-2)); + pNewNode = new IniNode; + pNewNode->type = IniNode::INI_NODE_TYPE_SECTION; + pNewNode->label = content; + root_->Add(pNewNode); + pScopeNode = pNewNode; + } else { + // hlogw("format error, line:%d", line); + continue; // ignore + } + } else { + pos = content.find_first_of(_delim); + if (pos != std::string::npos) { + // key-value + pNewNode = new IniNode; + pNewNode->type = IniNode::INI_NODE_TYPE_KEY_VALUE; + pNewNode->label = trim(content.substr(0, pos)); + pNewNode->value = trim(content.substr(pos+_delim.length())); + pScopeNode->Add(pNewNode); + } else { + // hlogw("format error, line:%d", line); + continue; // ignore + } + } + + if (comment.length() != 0) { + // tail_comment + IniNode* pNode = new IniNode; + pNode->type = IniNode::INI_NODE_TYPE_SPAN; + pNode->label = comment; + pNewNode->Add(pNode); + comment = ""; + } + } + + // file end comment + if (strDiv.length() != 0) { + IniNode* pNode = new IniNode; + pNode->type = IniNode::INI_NODE_TYPE_DIV; + pNode->label = strDiv; + root_->Add(pNode); + } + + return 0; +} + +void IniParser::DumpString(IniNode* pNode, std::string& str) { + if (pNode == NULL) return; + + if (pNode->type != IniNode::INI_NODE_TYPE_SPAN) { + if (str.length() > 0 && str[str.length()-1] != '\n') { + str += '\n'; + } + } + + switch (pNode->type) { + case IniNode::INI_NODE_TYPE_SECTION: { + str += '['; + str += pNode->label; + str += ']'; + } + break; + case IniNode::INI_NODE_TYPE_KEY_VALUE: { + str += asprintf("%s %s %s", pNode->label.c_str(), _delim.c_str(), pNode->value.c_str()); + } + break; + case IniNode::INI_NODE_TYPE_DIV: { + str += pNode->label; + } + break; + case IniNode::INI_NODE_TYPE_SPAN: { + str += '\t'; + str += pNode->label; + } + break; + default: + break; + } + + for (auto p : pNode->children) { + DumpString(p, str); + } +} + +std::string IniParser::DumpString() { + std::string str; + DumpString(root_, str); + return str; +} + +int IniParser::Save() { + return SaveAs(_filepath.c_str()); +} + +int IniParser::SaveAs(const char* filepath) { + std::string str = DumpString(); + if (str.length() == 0) { + return 0; + } + + HFile file; + if (file.open(filepath, "w") != 0) { + return ERR_SAVE_FILE; + } + file.write(str.c_str(), str.length()); + + return 0; +} + +std::list IniParser::GetSections() { + std::list ret; + if (root_ == NULL) return std::move(ret); + + for (auto pNode : root_->children) { + if (pNode->type == IniNode::INI_NODE_TYPE_SECTION) { + ret.push_back(pNode->label); + } + } + return std::move(ret); +} + +std::list IniParser::GetKeys(const std::string& section) { + std::list ret; + if (root_ == NULL) return std::move(ret); + + IniNode* pSection = root_; + if (section.length() != 0) { + pSection = root_->Get(section, IniNode::INI_NODE_TYPE_SECTION); + if (pSection == NULL) return std::move(ret); + } + + for (auto pNode : pSection->children) { + if (pNode->type == IniNode::INI_NODE_TYPE_KEY_VALUE) { + ret.push_back(pNode->label); + } + } + return std::move(ret); +} + +std::string IniParser::GetValue(const std::string& key, const std::string& section) { + if (root_ == NULL) return ""; + + IniNode* pSection = root_; + if (section.length() != 0) { + pSection = root_->Get(section, IniNode::INI_NODE_TYPE_SECTION); + if (pSection == NULL) return ""; + } + + IniNode* pKV = pSection->Get(key, IniNode::INI_NODE_TYPE_KEY_VALUE); + if (pKV == NULL) return ""; + + return pKV->value; +} + +void IniParser::SetValue(const std::string& key, const std::string& value, const std::string& section) { + if (root_ == NULL) { + root_ = new IniNode; + } + + IniNode* pSection = root_; + if (section.length() != 0) { + pSection = root_->Get(section, IniNode::INI_NODE_TYPE_SECTION); + if (pSection == NULL) { + pSection = new IniNode; + pSection->type = IniNode::INI_NODE_TYPE_SECTION; + pSection->label = section; + root_->Add(pSection); + } + } + + IniNode* pKV = pSection->Get(key, IniNode::INI_NODE_TYPE_KEY_VALUE); + if (pKV == NULL) { + pKV = new IniNode; + pKV->type = IniNode::INI_NODE_TYPE_KEY_VALUE; + pKV->label = key; + pSection->Add(pKV); + } + pKV->value = value; +} + +template<> +HV_EXPORT bool IniParser::Get(const std::string& key, const std::string& section, bool defvalue) { + std::string str = GetValue(key, section); + return str.empty() ? defvalue : hv_getboolean(str.c_str()); +} + +template<> +HV_EXPORT int IniParser::Get(const std::string& key, const std::string& section, int defvalue) { + std::string str = GetValue(key, section); + return str.empty() ? defvalue : atoi(str.c_str()); +} + +template<> +HV_EXPORT float IniParser::Get(const std::string& key, const std::string& section, float defvalue) { + std::string str = GetValue(key, section); + return str.empty() ? defvalue : atof(str.c_str()); +} + +template<> +HV_EXPORT void IniParser::Set(const std::string& key, const bool& value, const std::string& section) { + SetValue(key, value ? "true" : "false", section); +} + +template<> +HV_EXPORT void IniParser::Set(const std::string& key, const int& value, const std::string& section) { + SetValue(key, asprintf("%d", value), section); +} + +template<> +HV_EXPORT void IniParser::Set(const std::string& key, const float& value, const std::string& section) { + SetValue(key, asprintf("%f", value), section); +} diff --git a/3rdPartner/libhv/cpputil/iniparser.h b/3rdPartner/libhv/cpputil/iniparser.h new file mode 100644 index 0000000..747a96a --- /dev/null +++ b/3rdPartner/libhv/cpputil/iniparser.h @@ -0,0 +1,53 @@ +#ifndef HV_INI_PARSER_H_ +#define HV_INI_PARSER_H_ + +#include +#include + +#include "hexport.h" + +#define DEFAULT_INI_COMMENT "#" +#define DEFAULT_INI_DELIM "=" + +// fwd +class IniNode; + +class HV_EXPORT IniParser { +public: + IniParser(); + ~IniParser(); + + int LoadFromFile(const char* filepath); + int LoadFromMem(const char* data); + int Unload(); + int Reload(); + + std::string DumpString(); + int Save(); + int SaveAs(const char* filepath); + + std::list GetSections(); + std::list GetKeys(const std::string& section = ""); + std::string GetValue(const std::string& key, const std::string& section = ""); + void SetValue(const std::string& key, const std::string& value, const std::string& section = ""); + + // T = [bool, int, float] + template + T Get(const std::string& key, const std::string& section = "", T defvalue = 0); + + // T = [bool, int, float] + template + void Set(const std::string& key, const T& value, const std::string& section = ""); + +protected: + void DumpString(IniNode* pNode, std::string& str); + +public: + std::string _comment; + std::string _delim; + std::string _filepath; +private: + IniNode* root_; +}; + +#endif // HV_INI_PARSER_H_ diff --git a/3rdPartner/libhv/cpputil/json.hpp b/3rdPartner/libhv/cpputil/json.hpp new file mode 100644 index 0000000..a70aaf8 --- /dev/null +++ b/3rdPartner/libhv/cpputil/json.hpp @@ -0,0 +1,25447 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ +| | |__ | | | | | | version 3.9.1 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License . +SPDX-License-Identifier: MIT +Copyright (c) 2013-2019 Niels Lohmann . + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#define NLOHMANN_JSON_VERSION_MAJOR 3 +#define NLOHMANN_JSON_VERSION_MINOR 9 +#define NLOHMANN_JSON_VERSION_PATCH 1 + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#include // istream, ostream +#include // random_access_iterator_tag +#include // unique_ptr +#include // accumulate +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include + + +#include + +// #include + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include + + +#include // exception +#include // runtime_error +#include // to_string + +// #include + + +#include // size_t + +namespace nlohmann +{ +namespace detail +{ +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // pair +// #include +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 13) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 13 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(_MSC_VER) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(VER / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP \ +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(14, 0, 0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + JSON_HEDLEY_HAS_FEATURE(c_static_assert) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + + +// This file contains all internal macro definitions +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +#if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 +#elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 +#elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 +#endif + +// disable float-equal warnings on GCC/clang +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdocumentation" +#endif + +// allow to disable exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow to override assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + + +namespace nlohmann +{ +namespace detail +{ +//////////////// +// exceptions // +//////////////// + +/*! +@brief general exception of the @ref basic_json class + +This class is an extension of `std::exception` objects with a member @a id for +exception ids. It is used as the base class for all exceptions thrown by the +@ref basic_json class. This class can hence be used as "wildcard" to catch +exceptions. + +Subclasses: +- @ref parse_error for exceptions indicating a parse error +- @ref invalid_iterator for exceptions indicating errors with iterators +- @ref type_error for exceptions indicating executing a member function with + a wrong type +- @ref out_of_range for exceptions indicating access out of the defined range +- @ref other_error for exceptions indicating other library errors + +@internal +@note To have nothrow-copy-constructible exceptions, we internally use + `std::runtime_error` which can cope with arbitrary-length error messages. + Intermediate strings are built with static functions and then passed to + the actual constructor. +@endinternal + +@liveexample{The following code shows how arbitrary library exceptions can be +caught.,exception} + +@since version 3.0.0 +*/ +class exception : public std::exception +{ + public: + /// returns the explanatory string + JSON_HEDLEY_RETURNS_NON_NULL + const char* what() const noexcept override + { + return m.what(); + } + + /// the id of the exception + const int id; + + protected: + JSON_HEDLEY_NON_NULL(3) + exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} + + static std::string name(const std::string& ename, int id_) + { + return "[json.exception." + ename + "." + std::to_string(id_) + "] "; + } + + private: + /// an exception object as storage for error messages + std::runtime_error m; +}; + +/*! +@brief exception indicating a parse error + +This exception is thrown by the library when a parse error occurs. Parse errors +can occur during the deserialization of JSON text, CBOR, MessagePack, as well +as when using JSON Patch. + +Member @a byte holds the byte index of the last read character in the input +file. + +Exceptions have ids 1xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.parse_error.101 | parse error at 2: unexpected end of input; expected string literal | This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member @a byte indicates the error position. +json.exception.parse_error.102 | parse error at 14: missing or wrong low surrogate | JSON uses the `\uxxxx` format to describe Unicode characters. Code points above above 0xFFFF are split into two `\uxxxx` entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point. +json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. +json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. +json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. +json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`. +json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. +json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. +json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. +json.exception.parse_error.110 | parse error at 1: cannot read 2 bytes from vector | When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read. +json.exception.parse_error.112 | parse error at 1: error reading CBOR; last byte: 0xF8 | Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read. +json.exception.parse_error.113 | parse error at 2: expected a CBOR string; last byte: 0x98 | While parsing a map key, a value that is not a string has been read. +json.exception.parse_error.114 | parse error: Unsupported BSON record type 0x0F | The parsing of the corresponding BSON record type is not implemented (yet). +json.exception.parse_error.115 | parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A | A UBJSON high-precision number could not be parsed. + +@note For an input with n bytes, 1 is the index of the first character and n+1 + is the index of the terminating null byte or the end of file. This also + holds true when reading a byte vector (CBOR or MessagePack). + +@liveexample{The following code shows how a `parse_error` exception can be +caught.,parse_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class parse_error : public exception +{ + public: + /*! + @brief create a parse error exception + @param[in] id_ the id of the exception + @param[in] pos the position where the error occurred (or with + chars_read_total=0 if the position cannot be + determined) + @param[in] what_arg the explanatory string + @return parse_error object + */ + static parse_error create(int id_, const position_t& pos, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + position_string(pos) + ": " + what_arg; + return parse_error(id_, pos.chars_read_total, w.c_str()); + } + + static parse_error create(int id_, std::size_t byte_, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + (byte_ != 0 ? (" at byte " + std::to_string(byte_)) : "") + + ": " + what_arg; + return parse_error(id_, byte_, w.c_str()); + } + + /*! + @brief byte index of the parse error + + The byte index of the last read character in the input file. + + @note For an input with n bytes, 1 is the index of the first character and + n+1 is the index of the terminating null byte or the end of file. + This also holds true when reading a byte vector (CBOR or MessagePack). + */ + const std::size_t byte; + + private: + parse_error(int id_, std::size_t byte_, const char* what_arg) + : exception(id_, what_arg), byte(byte_) {} + + static std::string position_string(const position_t& pos) + { + return " at line " + std::to_string(pos.lines_read + 1) + + ", column " + std::to_string(pos.chars_read_current_line); + } +}; + +/*! +@brief exception indicating errors with iterators + +This exception is thrown if iterators passed to a library function do not match +the expected semantics. + +Exceptions have ids 2xx. + +name / id | example message | description +----------------------------------- | --------------- | ------------------------- +json.exception.invalid_iterator.201 | iterators are not compatible | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.202 | iterator does not fit current value | In an erase or insert function, the passed iterator @a pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion. +json.exception.invalid_iterator.203 | iterators do not fit current value | Either iterator passed to function @ref erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from. +json.exception.invalid_iterator.204 | iterators out of range | When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (@ref begin(), @ref end()), because this is the only way the single stored value is expressed. All other ranges are invalid. +json.exception.invalid_iterator.205 | iterator out of range | When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the @ref begin() iterator, because it is the only way to address the stored value. All other iterators are invalid. +json.exception.invalid_iterator.206 | cannot construct with iterators from null | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range. +json.exception.invalid_iterator.207 | cannot use key() for non-object iterators | The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key. +json.exception.invalid_iterator.208 | cannot use operator[] for object iterators | The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.209 | cannot use offsets with object iterators | The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.210 | iterators do not fit | The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.211 | passed iterators may not belong to container | The iterator range passed to the insert function must not be a subrange of the container to insert to. +json.exception.invalid_iterator.212 | cannot compare iterators of different containers | When two iterators are compared, they must belong to the same container. +json.exception.invalid_iterator.213 | cannot compare order of object iterators | The order of object iterators cannot be compared, because JSON objects are unordered. +json.exception.invalid_iterator.214 | cannot get value | Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to @ref begin(). + +@liveexample{The following code shows how an `invalid_iterator` exception can be +caught.,invalid_iterator} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class invalid_iterator : public exception +{ + public: + static invalid_iterator create(int id_, const std::string& what_arg) + { + std::string w = exception::name("invalid_iterator", id_) + what_arg; + return invalid_iterator(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + invalid_iterator(int id_, const char* what_arg) + : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating executing a member function with a wrong type + +This exception is thrown in case of a type error; that is, a library function is +executed on a JSON value whose type does not match the expected semantics. + +Exceptions have ids 3xx. + +name / id | example message | description +----------------------------- | --------------- | ------------------------- +json.exception.type_error.301 | cannot create object from initializer list | To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead. +json.exception.type_error.302 | type must be object, but is array | During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types. +json.exception.type_error.303 | incompatible ReferenceType for get_ref, actual type is object | To retrieve a reference to a value stored in a @ref basic_json object with @ref get_ref, the type of the reference must match the value type. For instance, for a JSON array, the @a ReferenceType must be @ref array_t &. +json.exception.type_error.304 | cannot use at() with string | The @ref at() member functions can only be executed for certain JSON types. +json.exception.type_error.305 | cannot use operator[] with string | The @ref operator[] member functions can only be executed for certain JSON types. +json.exception.type_error.306 | cannot use value() with string | The @ref value() member functions can only be executed for certain JSON types. +json.exception.type_error.307 | cannot use erase() with string | The @ref erase() member functions can only be executed for certain JSON types. +json.exception.type_error.308 | cannot use push_back() with string | The @ref push_back() and @ref operator+= member functions can only be executed for certain JSON types. +json.exception.type_error.309 | cannot use insert() with | The @ref insert() member functions can only be executed for certain JSON types. +json.exception.type_error.310 | cannot use swap() with number | The @ref swap() member functions can only be executed for certain JSON types. +json.exception.type_error.311 | cannot use emplace_back() with string | The @ref emplace_back() member function can only be executed for certain JSON types. +json.exception.type_error.312 | cannot use update() with string | The @ref update() member functions can only be executed for certain JSON types. +json.exception.type_error.313 | invalid value to unflatten | The @ref unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined. +json.exception.type_error.314 | only objects can be unflattened | The @ref unflatten function only works for an object whose keys are JSON Pointers. +json.exception.type_error.315 | values in object must be primitive | The @ref unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive. +json.exception.type_error.316 | invalid UTF-8 byte at index 10: 0x7E | The @ref dump function only works with UTF-8 encoded strings; that is, if you assign a `std::string` to a JSON value, make sure it is UTF-8 encoded. | +json.exception.type_error.317 | JSON value cannot be serialized to requested format | The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw `true` or `null` JSON object cannot be serialized to BSON) | + +@liveexample{The following code shows how a `type_error` exception can be +caught.,type_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class type_error : public exception +{ + public: + static type_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("type_error", id_) + what_arg; + return type_error(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + type_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating access out of the defined range + +This exception is thrown in case a library function is called on an input +parameter that exceeds the expected range, for instance in case of array +indices or nonexisting object keys. + +Exceptions have ids 4xx. + +name / id | example message | description +------------------------------- | --------------- | ------------------------- +json.exception.out_of_range.401 | array index 3 is out of range | The provided array index @a i is larger than @a size-1. +json.exception.out_of_range.402 | array index '-' (3) is out of range | The special array index `-` in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it. +json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object. +json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved. +json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value. +json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF. +json.exception.out_of_range.407 | number overflow serializing '9223372036854775808' | UBJSON and BSON only support integer numbers up to 9223372036854775807. (until version 3.8.0) | +json.exception.out_of_range.408 | excessive array size: 8658170730974374167 | The size (following `#`) of an UBJSON array or object exceeds the maximal capacity. | +json.exception.out_of_range.409 | BSON key cannot contain code point U+0000 (at byte 2) | Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string | + +@liveexample{The following code shows how an `out_of_range` exception can be +caught.,out_of_range} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class out_of_range : public exception +{ + public: + static out_of_range create(int id_, const std::string& what_arg) + { + std::string w = exception::name("out_of_range", id_) + what_arg; + return out_of_range(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating other library errors + +This exception is thrown in case of errors that cannot be classified with the +other exception types. + +Exceptions have ids 5xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.other_error.501 | unsuccessful: {"op":"test","path":"/baz", "value":"bar"} | A JSON Patch operation 'test' failed. The unsuccessful operation is also printed. + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range + +@liveexample{The following code shows how an `other_error` exception can be +caught.,other_error} + +@since version 3.0.0 +*/ +class other_error : public exception +{ + public: + static other_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("other_error", id_) + what_arg; + return other_error(id_, w.c_str()); + } + + private: + JSON_HEDLEY_NON_NULL(3) + other_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type + +namespace nlohmann +{ +namespace detail +{ +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +template +using uncvref_t = typename std::remove_cv::type>::type; + +// implementation of C++14 index_sequence and affiliates +// source: https://stackoverflow.com/a/32223343 +template +struct index_sequence +{ + using type = index_sequence; + using value_type = std::size_t; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +template +struct merge_and_renumber; + +template +struct merge_and_renumber, index_sequence> + : index_sequence < I1..., (sizeof...(I1) + I2)... > {}; + +template +struct make_index_sequence + : merge_and_renumber < typename make_index_sequence < N / 2 >::type, + typename make_index_sequence < N - N / 2 >::type > {}; + +template<> struct make_index_sequence<0> : index_sequence<> {}; +template<> struct make_index_sequence<1> : index_sequence<0> {}; + +template +using index_sequence_for = make_index_sequence; + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static constexpr T value{}; +}; + +template +constexpr T static_const::value; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // numeric_limits +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval + +// #include + + +#include // random_access_iterator_tag + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; +} // namespace detail +} // namespace nlohmann + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include + +// #include + + +// https://en.cppreference.com/w/cpp/experimental/is_detected +namespace nlohmann +{ +namespace detail +{ +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; +} // namespace detail +} // namespace nlohmann + +// #include +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ +#define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + +#include // int64_t, uint64_t +#include // map +#include // allocator +#include // string +#include // vector + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ +/*! +@brief default JSONSerializer template argument + +This serializer ignores the template arguments and uses ADL +([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) +for serialization. +*/ +template +struct adl_serializer; + +template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector> +class basic_json; + +/*! +@brief JSON Pointer + +A JSON pointer defines a string syntax for identifying a specific value +within a JSON document. It can be used with functions `at` and +`operator[]`. Furthermore, JSON pointers are the base for JSON patches. + +@sa [RFC 6901](https://tools.ietf.org/html/rfc6901) + +@since version 2.0.0 +*/ +template +class json_pointer; + +/*! +@brief default JSON class + +This type is the default specialization of the @ref basic_json class which +uses the standard template types. + +@since version 1.0.0 +*/ +using json = basic_json<>; + +template +struct ordered_map; + +/*! +@brief ordered JSON class + +This type preserves the insertion order of object keys. + +@since version 3.9.0 +*/ +using ordered_json = basic_json; + +} // namespace nlohmann + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +namespace nlohmann +{ +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using iterator_t = typename T::iterator; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, + enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + + +/////////////////// +// is_ functions // +/////////////////// + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +// source: https://stackoverflow.com/a/37193089/4116453 + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + std::is_constructible::value && + std::is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (std::is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (std::is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type_impl : std::false_type {}; + +template +struct is_compatible_string_type_impl < + BasicJsonType, CompatibleStringType, + enable_if_t::value >> +{ + static constexpr auto value = + std::is_constructible::value; +}; + +template +struct is_compatible_string_type + : is_compatible_string_type_impl {}; + +template +struct is_constructible_string_type_impl : std::false_type {}; + +template +struct is_constructible_string_type_impl < + BasicJsonType, ConstructibleStringType, + enable_if_t::value >> +{ + static constexpr auto value = + std::is_constructible::value; +}; + +template +struct is_constructible_string_type + : is_constructible_string_type_impl {}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < is_detected::value&& + is_detected::value&& +// This is needed because json_reverse_iterator has a ::iterator type... +// Therefore it is detected as a CompatibleArrayType. +// The real fix would be to have an Iterable concept. + !is_iterator_traits < + iterator_traits>::value >> +{ + static constexpr bool value = + std::is_constructible::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + std::is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_detected::value&& +is_complete_type < +detected_t>::value >> +{ + static constexpr bool value = + // This is needed because json_reverse_iterator has a ::iterator type, + // furthermore, std::back_insert_iterator (and other iterators) have a + // base class `iterator`... Therefore it is detected as a + // ConstructibleArrayType. The real fix would be to have an Iterable + // concept. + !is_iterator_traits>::value && + + (std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, typename ConstructibleArrayType::value_type >::value); +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + std::is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B1 { }; +template +struct conjunction +: std::conditional, B1>::type {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +namespace nlohmann +{ +namespace detail +{ +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +} +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +template +void from_json(const BasicJsonType& j, typename std::nullptr_t& n) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_null())) + { + JSON_THROW(type_error::create(302, "type must be null, but is " + std::string(j.type_name()))); + } + n = nullptr; +} + +// overloads for basic_json template parameters +template < typename BasicJsonType, typename ArithmeticType, + enable_if_t < std::is_arithmetic::value&& + !std::is_same::value, + int > = 0 > +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast(j)) + { + case value_t::number_unsigned: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_integer: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_float: + { + val = static_cast(*j.template get_ptr()); + break; + } + + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()))); + } +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_boolean())) + { + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(j.type_name()))); + } + b = *j.template get_ptr(); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()))); + } + s = *j.template get_ptr(); +} + +template < + typename BasicJsonType, typename ConstructibleStringType, + enable_if_t < + is_constructible_string_type::value&& + !std::is_same::value, + int > = 0 > +void from_json(const BasicJsonType& j, ConstructibleStringType& s) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()))); + } + + s = *j.template get_ptr(); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) +{ + get_arithmetic_value(j, val); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) +{ + get_arithmetic_value(j, val); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) +{ + get_arithmetic_value(j, val); +} + +template::value, int> = 0> +void from_json(const BasicJsonType& j, EnumType& e) +{ + typename std::underlying_type::type val; + get_arithmetic_value(j, val); + e = static_cast(val); +} + +// forward_list doesn't have an insert method +template::value, int> = 0> +void from_json(const BasicJsonType& j, std::forward_list& l) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + l.clear(); + std::transform(j.rbegin(), j.rend(), + std::front_inserter(l), [](const BasicJsonType & i) + { + return i.template get(); + }); +} + +// valarray doesn't have an insert method +template::value, int> = 0> +void from_json(const BasicJsonType& j, std::valarray& l) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + l.resize(j.size()); + std::transform(j.begin(), j.end(), std::begin(l), + [](const BasicJsonType & elem) + { + return elem.template get(); + }); +} + +template +auto from_json(const BasicJsonType& j, T (&arr)[N]) +-> decltype(j.template get(), void()) +{ + for (std::size_t i = 0; i < N; ++i) + { + arr[i] = j.at(i).template get(); + } +} + +template +void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) +{ + arr = *j.template get_ptr(); +} + +template +auto from_json_array_impl(const BasicJsonType& j, std::array& arr, + priority_tag<2> /*unused*/) +-> decltype(j.template get(), void()) +{ + for (std::size_t i = 0; i < N; ++i) + { + arr[i] = j.at(i).template get(); + } +} + +template +auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, priority_tag<1> /*unused*/) +-> decltype( + arr.reserve(std::declval()), + j.template get(), + void()) +{ + using std::end; + + ConstructibleArrayType ret; + ret.reserve(j.size()); + std::transform(j.begin(), j.end(), + std::inserter(ret, end(ret)), [](const BasicJsonType & i) + { + // get() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get(); + }); + arr = std::move(ret); +} + +template +void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, + priority_tag<0> /*unused*/) +{ + using std::end; + + ConstructibleArrayType ret; + std::transform( + j.begin(), j.end(), std::inserter(ret, end(ret)), + [](const BasicJsonType & i) + { + // get() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get(); + }); + arr = std::move(ret); +} + +template < typename BasicJsonType, typename ConstructibleArrayType, + enable_if_t < + is_constructible_array_type::value&& + !is_constructible_object_type::value&& + !is_constructible_string_type::value&& + !std::is_same::value&& + !is_basic_json::value, + int > = 0 > +auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr) +-> decltype(from_json_array_impl(j, arr, priority_tag<3> {}), +j.template get(), +void()) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + + std::string(j.type_name()))); + } + + from_json_array_impl(j, arr, priority_tag<3> {}); +} + +template +void from_json(const BasicJsonType& j, typename BasicJsonType::binary_t& bin) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_binary())) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(j.type_name()))); + } + + bin = *j.template get_ptr(); +} + +template::value, int> = 0> +void from_json(const BasicJsonType& j, ConstructibleObjectType& obj) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_object())) + { + JSON_THROW(type_error::create(302, "type must be object, but is " + std::string(j.type_name()))); + } + + ConstructibleObjectType ret; + auto inner_object = j.template get_ptr(); + using value_type = typename ConstructibleObjectType::value_type; + std::transform( + inner_object->begin(), inner_object->end(), + std::inserter(ret, ret.begin()), + [](typename BasicJsonType::object_t::value_type const & p) + { + return value_type(p.first, p.second.template get()); + }); + obj = std::move(ret); +} + +// overload for arithmetic types, not chosen for basic_json template arguments +// (BooleanType, etc..); note: Is it really necessary to provide explicit +// overloads for boolean_t etc. in case of a custom BooleanType which is not +// an arithmetic type? +template < typename BasicJsonType, typename ArithmeticType, + enable_if_t < + std::is_arithmetic::value&& + !std::is_same::value&& + !std::is_same::value&& + !std::is_same::value&& + !std::is_same::value, + int > = 0 > +void from_json(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast(j)) + { + case value_t::number_unsigned: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_integer: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::number_float: + { + val = static_cast(*j.template get_ptr()); + break; + } + case value_t::boolean: + { + val = static_cast(*j.template get_ptr()); + break; + } + + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()))); + } +} + +template +void from_json(const BasicJsonType& j, std::pair& p) +{ + p = {j.at(0).template get(), j.at(1).template get()}; +} + +template +void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence /*unused*/) +{ + t = std::make_tuple(j.at(Idx).template get::type>()...); +} + +template +void from_json(const BasicJsonType& j, std::tuple& t) +{ + from_json_tuple_impl(j, t, index_sequence_for {}); +} + +template < typename BasicJsonType, typename Key, typename Value, typename Compare, typename Allocator, + typename = enable_if_t < !std::is_constructible < + typename BasicJsonType::string_t, Key >::value >> +void from_json(const BasicJsonType& j, std::map& m) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + m.clear(); + for (const auto& p : j) + { + if (JSON_HEDLEY_UNLIKELY(!p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()))); + } + m.emplace(p.at(0).template get(), p.at(1).template get()); + } +} + +template < typename BasicJsonType, typename Key, typename Value, typename Hash, typename KeyEqual, typename Allocator, + typename = enable_if_t < !std::is_constructible < + typename BasicJsonType::string_t, Key >::value >> +void from_json(const BasicJsonType& j, std::unordered_map& m) +{ + if (JSON_HEDLEY_UNLIKELY(!j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + m.clear(); + for (const auto& p : j) + { + if (JSON_HEDLEY_UNLIKELY(!p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()))); + } + m.emplace(p.at(0).template get(), p.at(1).template get()); + } +} + +struct from_json_fn +{ + template + auto operator()(const BasicJsonType& j, T& val) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } +}; +} // namespace detail + +/// namespace to hold default `from_json` function +/// to see why this is required: +/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html +namespace +{ +constexpr const auto& from_json = detail::static_const::value; +} // namespace +} // namespace nlohmann + +// #include + + +#include // copy +#include // begin, end +#include // string +#include // tuple, get +#include // is_same, is_constructible, is_floating_point, is_enum, underlying_type +#include // move, forward, declval, pair +#include // valarray +#include // vector + +// #include + + +#include // size_t +#include // input_iterator_tag +#include // string, to_string +#include // tuple_size, get, tuple_element + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +void int_to_string( string_type& target, std::size_t value ) +{ + // For ADL + using std::to_string; + target = to_string(value); +} +template class iteration_proxy_value +{ + public: + using difference_type = std::ptrdiff_t; + using value_type = iteration_proxy_value; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::input_iterator_tag; + using string_type = typename std::remove_cv< typename std::remove_reference().key() ) >::type >::type; + + private: + /// the iterator + IteratorType anchor; + /// an index for arrays (used to create key names) + std::size_t array_index = 0; + /// last stringified array index + mutable std::size_t array_index_last = 0; + /// a string representation of the array index + mutable string_type array_index_str = "0"; + /// an empty string (to return a reference for primitive values) + const string_type empty_str = ""; + + public: + explicit iteration_proxy_value(IteratorType it) noexcept : anchor(it) {} + + /// dereference operator (needed for range-based for) + iteration_proxy_value& operator*() + { + return *this; + } + + /// increment operator (needed for range-based for) + iteration_proxy_value& operator++() + { + ++anchor; + ++array_index; + + return *this; + } + + /// equality operator (needed for InputIterator) + bool operator==(const iteration_proxy_value& o) const + { + return anchor == o.anchor; + } + + /// inequality operator (needed for range-based for) + bool operator!=(const iteration_proxy_value& o) const + { + return anchor != o.anchor; + } + + /// return key of the iterator + const string_type& key() const + { + JSON_ASSERT(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: + { + if (array_index != array_index_last) + { + int_to_string( array_index_str, array_index ); + array_index_last = array_index; + } + return array_index_str; + } + + // use key from the object + case value_t::object: + return anchor.key(); + + // use an empty key for all primitive types + default: + return empty_str; + } + } + + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } +}; + +/// proxy class for the items() function +template class iteration_proxy +{ + private: + /// the container to iterate + typename IteratorType::reference container; + + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) noexcept + : container(cont) {} + + /// return iterator begin (needed for range-based for) + iteration_proxy_value begin() noexcept + { + return iteration_proxy_value(container.begin()); + } + + /// return iterator end (needed for range-based for) + iteration_proxy_value end() noexcept + { + return iteration_proxy_value(container.end()); + } +}; +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template = 0> +auto get(const nlohmann::detail::iteration_proxy_value& i) -> decltype(i.key()) +{ + return i.key(); +} +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template = 0> +auto get(const nlohmann::detail::iteration_proxy_value& i) -> decltype(i.value()) +{ + return i.value(); +} +} // namespace detail +} // namespace nlohmann + +// The Addition to the STD Namespace is required to add +// Structured Bindings Support to the iteration_proxy_value class +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +namespace std +{ +#if defined(__clang__) + // Fix: https://github.com/nlohmann/json/issues/1401 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmismatched-tags" +#endif +template +class tuple_size<::nlohmann::detail::iteration_proxy_value> + : public std::integral_constant {}; + +template +class tuple_element> +{ + public: + using type = decltype( + get(std::declval < + ::nlohmann::detail::iteration_proxy_value> ())); +}; +#if defined(__clang__) + #pragma clang diagnostic pop +#endif +} // namespace std + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +////////////////// +// constructors // +////////////////// + +template struct external_constructor; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::string_t&& s) + { + j.m_type = value_t::string; + j.m_value = std::move(s); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleStringType, + enable_if_t < !std::is_same::value, + int > = 0 > + static void construct(BasicJsonType& j, const CompatibleStringType& str) + { + j.m_type = value_t::string; + j.m_value.string = j.template create(str); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::binary_t& b) + { + j.m_type = value_t::binary; + typename BasicJsonType::binary_t value{b}; + j.m_value = value; + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::binary_t&& b) + { + j.m_type = value_t::binary; + typename BasicJsonType::binary_t value{std::move(b)}; + j.m_value = value; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept + { + j.m_type = value_t::number_float; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::array_t&& arr) + { + j.m_type = value_t::array; + j.m_value = std::move(arr); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleArrayType, + enable_if_t < !std::is_same::value, + int > = 0 > + static void construct(BasicJsonType& j, const CompatibleArrayType& arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = j.template create(begin(arr), end(arr)); + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, const std::vector& arr) + { + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->reserve(arr.size()); + for (const bool x : arr) + { + j.m_value.array->push_back(x); + } + j.assert_invariant(); + } + + template::value, int> = 0> + static void construct(BasicJsonType& j, const std::valarray& arr) + { + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->resize(arr.size()); + if (arr.size() > 0) + { + std::copy(std::begin(arr), std::end(arr), j.m_value.array->begin()); + } + j.assert_invariant(); + } +}; + +template<> +struct external_constructor +{ + template + static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } + + template + static void construct(BasicJsonType& j, typename BasicJsonType::object_t&& obj) + { + j.m_type = value_t::object; + j.m_value = std::move(obj); + j.assert_invariant(); + } + + template < typename BasicJsonType, typename CompatibleObjectType, + enable_if_t < !std::is_same::value, int > = 0 > + static void construct(BasicJsonType& j, const CompatibleObjectType& obj) + { + using std::begin; + using std::end; + + j.m_type = value_t::object; + j.m_value.object = j.template create(begin(obj), end(obj)); + j.assert_invariant(); + } +}; + +///////////// +// to_json // +///////////// + +template::value, int> = 0> +void to_json(BasicJsonType& j, T b) noexcept +{ + external_constructor::construct(j, b); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, const CompatibleString& s) +{ + external_constructor::construct(j, s); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s) +{ + external_constructor::construct(j, std::move(s)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, FloatType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept +{ + external_constructor::construct(j, static_cast(val)); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, EnumType e) noexcept +{ + using underlying_type = typename std::underlying_type::type; + external_constructor::construct(j, static_cast(e)); +} + +template +void to_json(BasicJsonType& j, const std::vector& e) +{ + external_constructor::construct(j, e); +} + +template < typename BasicJsonType, typename CompatibleArrayType, + enable_if_t < is_compatible_array_type::value&& + !is_compatible_object_type::value&& + !is_compatible_string_type::value&& + !std::is_same::value&& + !is_basic_json::value, + int > = 0 > +void to_json(BasicJsonType& j, const CompatibleArrayType& arr) +{ + external_constructor::construct(j, arr); +} + +template +void to_json(BasicJsonType& j, const typename BasicJsonType::binary_t& bin) +{ + external_constructor::construct(j, bin); +} + +template::value, int> = 0> +void to_json(BasicJsonType& j, const std::valarray& arr) +{ + external_constructor::construct(j, std::move(arr)); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr) +{ + external_constructor::construct(j, std::move(arr)); +} + +template < typename BasicJsonType, typename CompatibleObjectType, + enable_if_t < is_compatible_object_type::value&& !is_basic_json::value, int > = 0 > +void to_json(BasicJsonType& j, const CompatibleObjectType& obj) +{ + external_constructor::construct(j, obj); +} + +template +void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj) +{ + external_constructor::construct(j, std::move(obj)); +} + +template < + typename BasicJsonType, typename T, std::size_t N, + enable_if_t < !std::is_constructible::value, + int > = 0 > +void to_json(BasicJsonType& j, const T(&arr)[N]) +{ + external_constructor::construct(j, arr); +} + +template < typename BasicJsonType, typename T1, typename T2, enable_if_t < std::is_constructible::value&& std::is_constructible::value, int > = 0 > +void to_json(BasicJsonType& j, const std::pair& p) +{ + j = { p.first, p.second }; +} + +// for https://github.com/nlohmann/json/pull/1134 +template>::value, int> = 0> +void to_json(BasicJsonType& j, const T& b) +{ + j = { {b.key(), b.value()} }; +} + +template +void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence /*unused*/) +{ + j = { std::get(t)... }; +} + +template::value, int > = 0> +void to_json(BasicJsonType& j, const T& t) +{ + to_json_tuple_impl(j, t, make_index_sequence::value> {}); +} + +struct to_json_fn +{ + template + auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward(val)))) + -> decltype(to_json(j, std::forward(val)), void()) + { + return to_json(j, std::forward(val)); + } +}; +} // namespace detail + +/// namespace to hold default `to_json` function +namespace +{ +constexpr const auto& to_json = detail::static_const::value; +} // namespace +} // namespace nlohmann + + +namespace nlohmann +{ + +template +struct adl_serializer +{ + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @param[in] j JSON value to read from + @param[in,out] val value to write to + */ + template + static auto from_json(BasicJsonType&& j, ValueType& val) noexcept( + noexcept(::nlohmann::from_json(std::forward(j), val))) + -> decltype(::nlohmann::from_json(std::forward(j), val), void()) + { + ::nlohmann::from_json(std::forward(j), val); + } + + /*! + @brief convert any value type to a JSON value + + This function is usually called by the constructors of the @ref basic_json + class. + + @param[in,out] j JSON value to write to + @param[in] val value to read from + */ + template + static auto to_json(BasicJsonType& j, ValueType&& val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward(val)))) + -> decltype(::nlohmann::to_json(j, std::forward(val)), void()) + { + ::nlohmann::to_json(j, std::forward(val)); + } +}; + +} // namespace nlohmann + +// #include + + +#include // uint8_t +#include // tie +#include // move + +namespace nlohmann +{ + +/*! +@brief an internal type for a backed binary type + +This type extends the template parameter @a BinaryType provided to `basic_json` +with a subtype used by BSON and MessagePack. This type exists so that the user +does not have to specify a type themselves with a specific naming scheme in +order to override the binary type. + +@tparam BinaryType container to store bytes (`std::vector` by + default) + +@since version 3.8.0 +*/ +template +class byte_container_with_subtype : public BinaryType +{ + public: + /// the type of the underlying container + using container_type = BinaryType; + + byte_container_with_subtype() noexcept(noexcept(container_type())) + : container_type() + {} + + byte_container_with_subtype(const container_type& b) noexcept(noexcept(container_type(b))) + : container_type(b) + {} + + byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b)))) + : container_type(std::move(b)) + {} + + byte_container_with_subtype(const container_type& b, std::uint8_t subtype) noexcept(noexcept(container_type(b))) + : container_type(b) + , m_subtype(subtype) + , m_has_subtype(true) + {} + + byte_container_with_subtype(container_type&& b, std::uint8_t subtype) noexcept(noexcept(container_type(std::move(b)))) + : container_type(std::move(b)) + , m_subtype(subtype) + , m_has_subtype(true) + {} + + bool operator==(const byte_container_with_subtype& rhs) const + { + return std::tie(static_cast(*this), m_subtype, m_has_subtype) == + std::tie(static_cast(rhs), rhs.m_subtype, rhs.m_has_subtype); + } + + bool operator!=(const byte_container_with_subtype& rhs) const + { + return !(rhs == *this); + } + + /*! + @brief sets the binary subtype + + Sets the binary subtype of the value, also flags a binary JSON value as + having a subtype, which has implications for serialization. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa @ref subtype() -- return the binary subtype + @sa @ref clear_subtype() -- clears the binary subtype + @sa @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0 + */ + void set_subtype(std::uint8_t subtype) noexcept + { + m_subtype = subtype; + m_has_subtype = true; + } + + /*! + @brief return the binary subtype + + Returns the numerical subtype of the value if it has a subtype. If it does + not have a subtype, this function will return size_t(-1) as a sentinel + value. + + @return the numerical subtype of the binary value + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa @ref set_subtype() -- sets the binary subtype + @sa @ref clear_subtype() -- clears the binary subtype + @sa @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0 + */ + constexpr std::uint8_t subtype() const noexcept + { + return m_subtype; + } + + /*! + @brief return whether the value has a subtype + + @return whether the value has a subtype + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa @ref subtype() -- return the binary subtype + @sa @ref set_subtype() -- sets the binary subtype + @sa @ref clear_subtype() -- clears the binary subtype + + @since version 3.8.0 + */ + constexpr bool has_subtype() const noexcept + { + return m_has_subtype; + } + + /*! + @brief clears the binary subtype + + Clears the binary subtype and flags the value as not having a subtype, which + has implications for serialization; for instance MessagePack will prefer the + bin family over the ext family. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @sa @ref subtype() -- return the binary subtype + @sa @ref set_subtype() -- sets the binary subtype + @sa @ref has_subtype() -- returns whether or not the binary value has a + subtype + + @since version 3.8.0 + */ + void clear_subtype() noexcept + { + m_subtype = 0; + m_has_subtype = false; + } + + private: + std::uint8_t m_subtype = 0; + bool m_has_subtype = false; +}; + +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + + +#include // size_t, uint8_t +#include // hash + +namespace nlohmann +{ +namespace detail +{ + +// boost::hash_combine +inline std::size_t combine(std::size_t seed, std::size_t h) noexcept +{ + seed ^= h + 0x9e3779b9 + (seed << 6U) + (seed >> 2U); + return seed; +} + +/*! +@brief hash a JSON value + +The hash function tries to rely on std::hash where possible. Furthermore, the +type of the JSON value is taken into account to have different hash values for +null, 0, 0U, and false, etc. + +@tparam BasicJsonType basic_json specialization +@param j JSON value to hash +@return hash value of j +*/ +template +std::size_t hash(const BasicJsonType& j) +{ + using string_t = typename BasicJsonType::string_t; + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + + const auto type = static_cast(j.type()); + switch (j.type()) + { + case BasicJsonType::value_t::null: + case BasicJsonType::value_t::discarded: + { + return combine(type, 0); + } + + case BasicJsonType::value_t::object: + { + auto seed = combine(type, j.size()); + for (const auto& element : j.items()) + { + const auto h = std::hash {}(element.key()); + seed = combine(seed, h); + seed = combine(seed, hash(element.value())); + } + return seed; + } + + case BasicJsonType::value_t::array: + { + auto seed = combine(type, j.size()); + for (const auto& element : j) + { + seed = combine(seed, hash(element)); + } + return seed; + } + + case BasicJsonType::value_t::string: + { + const auto h = std::hash {}(j.template get_ref()); + return combine(type, h); + } + + case BasicJsonType::value_t::boolean: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case BasicJsonType::value_t::number_integer: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case nlohmann::detail::value_t::number_unsigned: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case nlohmann::detail::value_t::number_float: + { + const auto h = std::hash {}(j.template get()); + return combine(type, h); + } + + case nlohmann::detail::value_t::binary: + { + auto seed = combine(type, j.get_binary().size()); + const auto h = std::hash {}(j.get_binary().has_subtype()); + seed = combine(seed, h); + seed = combine(seed, j.get_binary().subtype()); + for (const auto byte : j.get_binary()) + { + seed = combine(seed, std::hash {}(byte)); + } + return seed; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } +} + +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // generate_n +#include // array +#include // ldexp +#include // size_t +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // snprintf +#include // memcpy +#include // back_inserter +#include // numeric_limits +#include // char_traits, string +#include // make_pair, move + +// #include + +// #include + + +#include // array +#include // size_t +#include //FILE * +#include // strlen +#include // istream +#include // begin, end, iterator_traits, random_access_iterator_tag, distance, next +#include // shared_ptr, make_shared, addressof +#include // accumulate +#include // string, char_traits +#include // enable_if, is_base_of, is_pointer, is_integral, remove_pointer +#include // pair, declval + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/// the supported input formats +enum class input_format_t { json, cbor, msgpack, ubjson, bson }; + +//////////////////// +// input adapters // +//////////////////// + +/*! +Input adapter for stdio file access. This adapter read only 1 byte and do not use any + buffer. This adapter is a very low level adapter. +*/ +class file_input_adapter +{ + public: + using char_type = char; + + JSON_HEDLEY_NON_NULL(2) + explicit file_input_adapter(std::FILE* f) noexcept + : m_file(f) + {} + + // make class move-only + file_input_adapter(const file_input_adapter&) = delete; + file_input_adapter(file_input_adapter&&) = default; + file_input_adapter& operator=(const file_input_adapter&) = delete; + file_input_adapter& operator=(file_input_adapter&&) = delete; + + std::char_traits::int_type get_character() noexcept + { + return std::fgetc(m_file); + } + + private: + /// the file pointer to read from + std::FILE* m_file; +}; + + +/*! +Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at +beginning of input. Does not support changing the underlying std::streambuf +in mid-input. Maintains underlying std::istream and std::streambuf to support +subsequent use of standard std::istream operations to process any input +characters following those used in parsing the JSON input. Clears the +std::istream flags; any input errors (e.g., EOF) will be detected by the first +subsequent call for input from the std::istream. +*/ +class input_stream_adapter +{ + public: + using char_type = char; + + ~input_stream_adapter() + { + // clear stream flags; we use underlying streambuf I/O, do not + // maintain ifstream flags, except eof + if (is != nullptr) + { + is->clear(is->rdstate() & std::ios::eofbit); + } + } + + explicit input_stream_adapter(std::istream& i) + : is(&i), sb(i.rdbuf()) + {} + + // delete because of pointer members + input_stream_adapter(const input_stream_adapter&) = delete; + input_stream_adapter& operator=(input_stream_adapter&) = delete; + input_stream_adapter& operator=(input_stream_adapter&& rhs) = delete; + + input_stream_adapter(input_stream_adapter&& rhs) noexcept : is(rhs.is), sb(rhs.sb) + { + rhs.is = nullptr; + rhs.sb = nullptr; + } + + // std::istream/std::streambuf use std::char_traits::to_int_type, to + // ensure that std::char_traits::eof() and the character 0xFF do not + // end up as the same value, eg. 0xFFFFFFFF. + std::char_traits::int_type get_character() + { + auto res = sb->sbumpc(); + // set eof manually, as we don't use the istream interface. + if (JSON_HEDLEY_UNLIKELY(res == EOF)) + { + is->clear(is->rdstate() | std::ios::eofbit); + } + return res; + } + + private: + /// the associated input stream + std::istream* is = nullptr; + std::streambuf* sb = nullptr; +}; + +// General-purpose iterator-based adapter. It might not be as fast as +// theoretically possible for some containers, but it is extremely versatile. +template +class iterator_input_adapter +{ + public: + using char_type = typename std::iterator_traits::value_type; + + iterator_input_adapter(IteratorType first, IteratorType last) + : current(std::move(first)), end(std::move(last)) {} + + typename std::char_traits::int_type get_character() + { + if (JSON_HEDLEY_LIKELY(current != end)) + { + auto result = std::char_traits::to_int_type(*current); + std::advance(current, 1); + return result; + } + else + { + return std::char_traits::eof(); + } + } + + private: + IteratorType current; + IteratorType end; + + template + friend struct wide_string_input_helper; + + bool empty() const + { + return current == end; + } + +}; + + +template +struct wide_string_input_helper; + +template +struct wide_string_input_helper +{ + // UTF-32 + static void fill_buffer(BaseInputAdapter& input, + std::array::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (JSON_HEDLEY_UNLIKELY(input.empty())) + { + utf8_bytes[0] = std::char_traits::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = input.get_character(); + + // UTF-32 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast::int_type>(0xC0u | ((static_cast(wc) >> 6u) & 0x1Fu)); + utf8_bytes[1] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (wc <= 0xFFFF) + { + utf8_bytes[0] = static_cast::int_type>(0xE0u | ((static_cast(wc) >> 12u) & 0x0Fu)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 3; + } + else if (wc <= 0x10FFFF) + { + utf8_bytes[0] = static_cast::int_type>(0xF0u | ((static_cast(wc) >> 18u) & 0x07u)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + // unknown character + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } +}; + +template +struct wide_string_input_helper +{ + // UTF-16 + static void fill_buffer(BaseInputAdapter& input, + std::array::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (JSON_HEDLEY_UNLIKELY(input.empty())) + { + utf8_bytes[0] = std::char_traits::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = input.get_character(); + + // UTF-16 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast::int_type>(0xC0u | ((static_cast(wc) >> 6u))); + utf8_bytes[1] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (0xD800 > wc || wc >= 0xE000) + { + utf8_bytes[0] = static_cast::int_type>(0xE0u | ((static_cast(wc) >> 12u))); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((static_cast(wc) >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | (static_cast(wc) & 0x3Fu)); + utf8_bytes_filled = 3; + } + else + { + if (JSON_HEDLEY_UNLIKELY(!input.empty())) + { + const auto wc2 = static_cast(input.get_character()); + const auto charcode = 0x10000u + (((static_cast(wc) & 0x3FFu) << 10u) | (wc2 & 0x3FFu)); + utf8_bytes[0] = static_cast::int_type>(0xF0u | (charcode >> 18u)); + utf8_bytes[1] = static_cast::int_type>(0x80u | ((charcode >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast::int_type>(0x80u | ((charcode >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast::int_type>(0x80u | (charcode & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + utf8_bytes[0] = static_cast::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } + } +}; + +// Wraps another input apdater to convert wide character types into individual bytes. +template +class wide_string_input_adapter +{ + public: + using char_type = char; + + wide_string_input_adapter(BaseInputAdapter base) + : base_adapter(base) {} + + typename std::char_traits::int_type get_character() noexcept + { + // check if buffer needs to be filled + if (utf8_bytes_index == utf8_bytes_filled) + { + fill_buffer(); + + JSON_ASSERT(utf8_bytes_filled > 0); + JSON_ASSERT(utf8_bytes_index == 0); + } + + // use buffer + JSON_ASSERT(utf8_bytes_filled > 0); + JSON_ASSERT(utf8_bytes_index < utf8_bytes_filled); + return utf8_bytes[utf8_bytes_index++]; + } + + private: + BaseInputAdapter base_adapter; + + template + void fill_buffer() + { + wide_string_input_helper::fill_buffer(base_adapter, utf8_bytes, utf8_bytes_index, utf8_bytes_filled); + } + + /// a buffer for UTF-8 bytes + std::array::int_type, 4> utf8_bytes = {{0, 0, 0, 0}}; + + /// index to the utf8_codes array for the next valid byte + std::size_t utf8_bytes_index = 0; + /// number of valid bytes in the utf8_codes array + std::size_t utf8_bytes_filled = 0; +}; + + +template +struct iterator_input_adapter_factory +{ + using iterator_type = IteratorType; + using char_type = typename std::iterator_traits::value_type; + using adapter_type = iterator_input_adapter; + + static adapter_type create(IteratorType first, IteratorType last) + { + return adapter_type(std::move(first), std::move(last)); + } +}; + +template +struct is_iterator_of_multibyte +{ + using value_type = typename std::iterator_traits::value_type; + enum + { + value = sizeof(value_type) > 1 + }; +}; + +template +struct iterator_input_adapter_factory::value>> +{ + using iterator_type = IteratorType; + using char_type = typename std::iterator_traits::value_type; + using base_adapter_type = iterator_input_adapter; + using adapter_type = wide_string_input_adapter; + + static adapter_type create(IteratorType first, IteratorType last) + { + return adapter_type(base_adapter_type(std::move(first), std::move(last))); + } +}; + +// General purpose iterator-based input +template +typename iterator_input_adapter_factory::adapter_type input_adapter(IteratorType first, IteratorType last) +{ + using factory_type = iterator_input_adapter_factory; + return factory_type::create(first, last); +} + +// Convenience shorthand from container to iterator +template +auto input_adapter(const ContainerType& container) -> decltype(input_adapter(begin(container), end(container))) +{ + // Enable ADL + using std::begin; + using std::end; + + return input_adapter(begin(container), end(container)); +} + +// Special cases with fast paths +inline file_input_adapter input_adapter(std::FILE* file) +{ + return file_input_adapter(file); +} + +inline input_stream_adapter input_adapter(std::istream& stream) +{ + return input_stream_adapter(stream); +} + +inline input_stream_adapter input_adapter(std::istream&& stream) +{ + return input_stream_adapter(stream); +} + +using contiguous_bytes_input_adapter = decltype(input_adapter(std::declval(), std::declval())); + +// Null-delimited strings, and the like. +template < typename CharT, + typename std::enable_if < + std::is_pointer::value&& + !std::is_array::value&& + std::is_integral::type>::value&& + sizeof(typename std::remove_pointer::type) == 1, + int >::type = 0 > +contiguous_bytes_input_adapter input_adapter(CharT b) +{ + auto length = std::strlen(reinterpret_cast(b)); + const auto* ptr = reinterpret_cast(b); + return input_adapter(ptr, ptr + length); +} + +template +auto input_adapter(T (&array)[N]) -> decltype(input_adapter(array, array + N)) +{ + return input_adapter(array, array + N); +} + +// This class only handles inputs of input_buffer_adapter type. +// It's required so that expressions like {ptr, len} can be implicitely casted +// to the correct adapter. +class span_input_adapter +{ + public: + template < typename CharT, + typename std::enable_if < + std::is_pointer::value&& + std::is_integral::type>::value&& + sizeof(typename std::remove_pointer::type) == 1, + int >::type = 0 > + span_input_adapter(CharT b, std::size_t l) + : ia(reinterpret_cast(b), reinterpret_cast(b) + l) {} + + template::iterator_category, std::random_access_iterator_tag>::value, + int>::type = 0> + span_input_adapter(IteratorType first, IteratorType last) + : ia(input_adapter(first, last)) {} + + contiguous_bytes_input_adapter&& get() + { + return std::move(ia); + } + + private: + contiguous_bytes_input_adapter ia; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include +#include // string +#include // move +#include // vector + +// #include + +// #include + + +namespace nlohmann +{ + +/*! +@brief SAX interface + +This class describes the SAX interface used by @ref nlohmann::json::sax_parse. +Each function is called in different situations while the input is parsed. The +boolean return value informs the parser whether to continue processing the +input. +*/ +template +struct json_sax +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @brief a null value was read + @return whether parsing should proceed + */ + virtual bool null() = 0; + + /*! + @brief a boolean value was read + @param[in] val boolean value + @return whether parsing should proceed + */ + virtual bool boolean(bool val) = 0; + + /*! + @brief an integer number was read + @param[in] val integer value + @return whether parsing should proceed + */ + virtual bool number_integer(number_integer_t val) = 0; + + /*! + @brief an unsigned integer number was read + @param[in] val unsigned integer value + @return whether parsing should proceed + */ + virtual bool number_unsigned(number_unsigned_t val) = 0; + + /*! + @brief an floating-point number was read + @param[in] val floating-point value + @param[in] s raw token value + @return whether parsing should proceed + */ + virtual bool number_float(number_float_t val, const string_t& s) = 0; + + /*! + @brief a string was read + @param[in] val string value + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool string(string_t& val) = 0; + + /*! + @brief a binary string was read + @param[in] val binary value + @return whether parsing should proceed + @note It is safe to move the passed binary. + */ + virtual bool binary(binary_t& val) = 0; + + /*! + @brief the beginning of an object was read + @param[in] elements number of object elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_object(std::size_t elements) = 0; + + /*! + @brief an object key was read + @param[in] val object key + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool key(string_t& val) = 0; + + /*! + @brief the end of an object was read + @return whether parsing should proceed + */ + virtual bool end_object() = 0; + + /*! + @brief the beginning of an array was read + @param[in] elements number of array elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_array(std::size_t elements) = 0; + + /*! + @brief the end of an array was read + @return whether parsing should proceed + */ + virtual bool end_array() = 0; + + /*! + @brief a parse error occurred + @param[in] position the position in the input where the error occurs + @param[in] last_token the last read token + @param[in] ex an exception object describing the error + @return whether parsing should proceed (must return false) + */ + virtual bool parse_error(std::size_t position, + const std::string& last_token, + const detail::exception& ex) = 0; + + virtual ~json_sax() = default; +}; + + +namespace detail +{ +/*! +@brief SAX implementation to create a JSON value from SAX events + +This class implements the @ref json_sax interface and processes the SAX events +to create a JSON value which makes it basically a DOM parser. The structure or +hierarchy of the JSON value is managed by the stack `ref_stack` which contains +a pointer to the respective array or object for each recursion depth. + +After successful parsing, the value that is passed by reference to the +constructor contains the parsed value. + +@tparam BasicJsonType the JSON type +*/ +template +class json_sax_dom_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + /*! + @param[in, out] r reference to a JSON value that is manipulated while + parsing + @param[in] allow_exceptions_ whether parse errors yield exceptions + */ + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) + : root(r), allow_exceptions(allow_exceptions_) + {} + + // make class move-only + json_sax_dom_parser(const json_sax_dom_parser&) = delete; + json_sax_dom_parser(json_sax_dom_parser&&) = default; + json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; + json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; + ~json_sax_dom_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); + + if (JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, + "excessive object size: " + std::to_string(len))); + } + + return true; + } + + bool key(string_t& val) + { + // add null at given key and store the reference for later + object_element = &(ref_stack.back()->m_value.object->operator[](val)); + return true; + } + + bool end_object() + { + ref_stack.pop_back(); + return true; + } + + bool start_array(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); + + if (JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, + "excessive array size: " + std::to_string(len))); + } + + return true; + } + + bool end_array() + { + ref_stack.pop_back(); + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + */ + template + JSON_HEDLEY_RETURNS_NON_NULL + BasicJsonType* handle_value(Value&& v) + { + if (ref_stack.empty()) + { + root = BasicJsonType(std::forward(v)); + return &root; + } + + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->emplace_back(std::forward(v)); + return &(ref_stack.back()->m_value.array->back()); + } + + JSON_ASSERT(ref_stack.back()->is_object()); + JSON_ASSERT(object_element); + *object_element = BasicJsonType(std::forward(v)); + return object_element; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; + +template +class json_sax_dom_callback_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using parser_callback_t = typename BasicJsonType::parser_callback_t; + using parse_event_t = typename BasicJsonType::parse_event_t; + + json_sax_dom_callback_parser(BasicJsonType& r, + const parser_callback_t cb, + const bool allow_exceptions_ = true) + : root(r), callback(cb), allow_exceptions(allow_exceptions_) + { + keep_stack.push_back(true); + } + + // make class move-only + json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; + json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; + ~json_sax_dom_callback_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool binary(binary_t& val) + { + handle_value(std::move(val)); + return true; + } + + bool start_object(std::size_t len) + { + // check callback for object start + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::object_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::object, true); + ref_stack.push_back(val.second); + + // check object limit + if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive object size: " + std::to_string(len))); + } + + return true; + } + + bool key(string_t& val) + { + BasicJsonType k = BasicJsonType(val); + + // check callback for key + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::key, k); + key_keep_stack.push_back(keep); + + // add discarded value at given key and store the reference for later + if (keep && ref_stack.back()) + { + object_element = &(ref_stack.back()->m_value.object->operator[](val) = discarded); + } + + return true; + } + + bool end_object() + { + if (ref_stack.back() && !callback(static_cast(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) + { + // discard object + *ref_stack.back() = discarded; + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured()) + { + // remove discarded value + for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) + { + if (it->is_discarded()) + { + ref_stack.back()->erase(it); + break; + } + } + } + + return true; + } + + bool start_array(std::size_t len) + { + const bool keep = callback(static_cast(ref_stack.size()), parse_event_t::array_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::array, true); + ref_stack.push_back(val.second); + + // check array limit + if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != std::size_t(-1) && len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive array size: " + std::to_string(len))); + } + + return true; + } + + bool end_array() + { + bool keep = true; + + if (ref_stack.back()) + { + keep = callback(static_cast(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); + if (!keep) + { + // discard array + *ref_stack.back() = discarded; + } + } + + JSON_ASSERT(!ref_stack.empty()); + JSON_ASSERT(!keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + // remove discarded value + if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->pop_back(); + } + + return true; + } + + template + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const Exception& ex) + { + errored = true; + static_cast(ex); + if (allow_exceptions) + { + JSON_THROW(ex); + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @param[in] v value to add to the JSON value we build during parsing + @param[in] skip_callback whether we should skip calling the callback + function; this is required after start_array() and + start_object() SAX events, because otherwise we would call the + callback function with an empty array or object, respectively. + + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + + @return pair of boolean (whether value should be kept) and pointer (to the + passed value in the ref_stack hierarchy; nullptr if not kept) + */ + template + std::pair handle_value(Value&& v, const bool skip_callback = false) + { + JSON_ASSERT(!keep_stack.empty()); + + // do not handle this value if we know it would be added to a discarded + // container + if (!keep_stack.back()) + { + return {false, nullptr}; + } + + // create value + auto value = BasicJsonType(std::forward(v)); + + // check callback + const bool keep = skip_callback || callback(static_cast(ref_stack.size()), parse_event_t::value, value); + + // do not handle this value if we just learnt it shall be discarded + if (!keep) + { + return {false, nullptr}; + } + + if (ref_stack.empty()) + { + root = std::move(value); + return {true, &root}; + } + + // skip this value if we already decided to skip the parent + // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) + if (!ref_stack.back()) + { + return {false, nullptr}; + } + + // we now only expect arrays and objects + JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object()); + + // array + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->push_back(std::move(value)); + return {true, &(ref_stack.back()->m_value.array->back())}; + } + + // object + JSON_ASSERT(ref_stack.back()->is_object()); + // check if we should store an element for the current key + JSON_ASSERT(!key_keep_stack.empty()); + const bool store_element = key_keep_stack.back(); + key_keep_stack.pop_back(); + + if (!store_element) + { + return {false, nullptr}; + } + + JSON_ASSERT(object_element); + *object_element = std::move(value); + return {true, object_element}; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector ref_stack {}; + /// stack to manage which values to keep + std::vector keep_stack {}; + /// stack to manage which object keys to keep + std::vector key_keep_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// callback function + const parser_callback_t callback = nullptr; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// a discarded value for the callback + BasicJsonType discarded = BasicJsonType::value_t::discarded; +}; + +template +class json_sax_acceptor +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + + bool null() + { + return true; + } + + bool boolean(bool /*unused*/) + { + return true; + } + + bool number_integer(number_integer_t /*unused*/) + { + return true; + } + + bool number_unsigned(number_unsigned_t /*unused*/) + { + return true; + } + + bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) + { + return true; + } + + bool string(string_t& /*unused*/) + { + return true; + } + + bool binary(binary_t& /*unused*/) + { + return true; + } + + bool start_object(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool key(string_t& /*unused*/) + { + return true; + } + + bool end_object() + { + return true; + } + + bool start_array(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool end_array() + { + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) + { + return false; + } +}; +} // namespace detail + +} // namespace nlohmann + +// #include + + +#include // array +#include // localeconv +#include // size_t +#include // snprintf +#include // strtof, strtod, strtold, strtoll, strtoull +#include // initializer_list +#include // char_traits, string +#include // move +#include // vector + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/////////// +// lexer // +/////////// + +template +class lexer_base +{ + public: + /// token types for the parser + enum class token_type + { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_unsigned, ///< an unsigned integer -- use get_number_unsigned() for actual value + value_integer, ///< a signed integer -- use get_number_integer() for actual value + value_float, ///< an floating point number -- use get_number_float() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input, ///< indicating the end of the input buffer + literal_or_value ///< a literal or the begin of a value (only for diagnostics) + }; + + /// return name of values of type token_type (only used for errors) + JSON_HEDLEY_RETURNS_NON_NULL + JSON_HEDLEY_CONST + static const char* token_type_name(const token_type t) noexcept + { + switch (t) + { + case token_type::uninitialized: + return ""; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case token_type::value_unsigned: + case token_type::value_integer: + case token_type::value_float: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return ""; + case token_type::end_of_input: + return "end of input"; + case token_type::literal_or_value: + return "'[', '{', or a literal"; + // LCOV_EXCL_START + default: // catch non-enum values + return "unknown token"; + // LCOV_EXCL_STOP + } + } +}; +/*! +@brief lexical analysis + +This class organizes the lexical analysis during JSON deserialization. +*/ +template +class lexer : public lexer_base +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using char_type = typename InputAdapterType::char_type; + using char_int_type = typename std::char_traits::int_type; + + public: + using token_type = typename lexer_base::token_type; + + explicit lexer(InputAdapterType&& adapter, bool ignore_comments_ = false) + : ia(std::move(adapter)) + , ignore_comments(ignore_comments_) + , decimal_point_char(static_cast(get_decimal_point())) + {} + + // delete because of pointer members + lexer(const lexer&) = delete; + lexer(lexer&&) = default; + lexer& operator=(lexer&) = delete; + lexer& operator=(lexer&&) = default; + ~lexer() = default; + + private: + ///////////////////// + // locales + ///////////////////// + + /// return the locale-dependent decimal point + JSON_HEDLEY_PURE + static char get_decimal_point() noexcept + { + const auto* loc = localeconv(); + JSON_ASSERT(loc != nullptr); + return (loc->decimal_point == nullptr) ? '.' : *(loc->decimal_point); + } + + ///////////////////// + // scan functions + ///////////////////// + + /*! + @brief get codepoint from 4 hex characters following `\u` + + For input "\u c1 c2 c3 c4" the codepoint is: + (c1 * 0x1000) + (c2 * 0x0100) + (c3 * 0x0010) + c4 + = (c1 << 12) + (c2 << 8) + (c3 << 4) + (c4 << 0) + + Furthermore, the possible characters '0'..'9', 'A'..'F', and 'a'..'f' + must be converted to the integers 0x0..0x9, 0xA..0xF, 0xA..0xF, resp. The + conversion is done by subtracting the offset (0x30, 0x37, and 0x57) + between the ASCII value of the character and the desired integer value. + + @return codepoint (0x0000..0xFFFF) or -1 in case of an error (e.g. EOF or + non-hex character) + */ + int get_codepoint() + { + // this function only makes sense after reading `\u` + JSON_ASSERT(current == 'u'); + int codepoint = 0; + + const auto factors = { 12u, 8u, 4u, 0u }; + for (const auto factor : factors) + { + get(); + + if (current >= '0' && current <= '9') + { + codepoint += static_cast((static_cast(current) - 0x30u) << factor); + } + else if (current >= 'A' && current <= 'F') + { + codepoint += static_cast((static_cast(current) - 0x37u) << factor); + } + else if (current >= 'a' && current <= 'f') + { + codepoint += static_cast((static_cast(current) - 0x57u) << factor); + } + else + { + return -1; + } + } + + JSON_ASSERT(0x0000 <= codepoint && codepoint <= 0xFFFF); + return codepoint; + } + + /*! + @brief check if the next byte(s) are inside a given range + + Adds the current byte and, for each passed range, reads a new byte and + checks if it is inside the range. If a violation was detected, set up an + error message and return false. Otherwise, return true. + + @param[in] ranges list of integers; interpreted as list of pairs of + inclusive lower and upper bound, respectively + + @pre The passed list @a ranges must have 2, 4, or 6 elements; that is, + 1, 2, or 3 pairs. This precondition is enforced by an assertion. + + @return true if and only if no range violation was detected + */ + bool next_byte_in_range(std::initializer_list ranges) + { + JSON_ASSERT(ranges.size() == 2 || ranges.size() == 4 || ranges.size() == 6); + add(current); + + for (auto range = ranges.begin(); range != ranges.end(); ++range) + { + get(); + if (JSON_HEDLEY_LIKELY(*range <= current && current <= *(++range))) + { + add(current); + } + else + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return false; + } + } + + return true; + } + + /*! + @brief scan a string literal + + This function scans a string according to Sect. 7 of RFC 7159. While + scanning, bytes are escaped and copied into buffer token_buffer. Then the + function returns successfully, token_buffer is *not* null-terminated (as it + may contain \0 bytes), and token_buffer.size() is the number of bytes in the + string. + + @return token_type::value_string if string could be successfully scanned, + token_type::parse_error otherwise + + @note In case of errors, variable error_message contains a textual + description. + */ + token_type scan_string() + { + // reset token_buffer (ignore opening quote) + reset(); + + // we entered the function by reading an open quote + JSON_ASSERT(current == '\"'); + + while (true) + { + // get next character + switch (get()) + { + // end of file while parsing string + case std::char_traits::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; + } + + // closing quote + case '\"': + { + return token_type::value_string; + } + + // escapes + case '\\': + { + switch (get()) + { + // quotation mark + case '\"': + add('\"'); + break; + // reverse solidus + case '\\': + add('\\'); + break; + // solidus + case '/': + add('/'); + break; + // backspace + case 'b': + add('\b'); + break; + // form feed + case 'f': + add('\f'); + break; + // line feed + case 'n': + add('\n'); + break; + // carriage return + case 'r': + add('\r'); + break; + // tab + case 't': + add('\t'); + break; + + // unicode escapes + case 'u': + { + const int codepoint1 = get_codepoint(); + int codepoint = codepoint1; // start with codepoint1 + + if (JSON_HEDLEY_UNLIKELY(codepoint1 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if code point is a high surrogate + if (0xD800 <= codepoint1 && codepoint1 <= 0xDBFF) + { + // expect next \uxxxx entry + if (JSON_HEDLEY_LIKELY(get() == '\\' && get() == 'u')) + { + const int codepoint2 = get_codepoint(); + + if (JSON_HEDLEY_UNLIKELY(codepoint2 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if codepoint2 is a low surrogate + if (JSON_HEDLEY_LIKELY(0xDC00 <= codepoint2 && codepoint2 <= 0xDFFF)) + { + // overwrite codepoint + codepoint = static_cast( + // high surrogate occupies the most significant 22 bits + (static_cast(codepoint1) << 10u) + // low surrogate occupies the least significant 15 bits + + static_cast(codepoint2) + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00u); + } + else + { + error_message = "invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + error_message = "invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(0xDC00 <= codepoint1 && codepoint1 <= 0xDFFF)) + { + error_message = "invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF"; + return token_type::parse_error; + } + } + + // result of the above calculation yields a proper codepoint + JSON_ASSERT(0x00 <= codepoint && codepoint <= 0x10FFFF); + + // translate codepoint into bytes + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + add(static_cast(codepoint)); + } + else if (codepoint <= 0x7FF) + { + // 2-byte characters: 110xxxxx 10xxxxxx + add(static_cast(0xC0u | (static_cast(codepoint) >> 6u))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + else if (codepoint <= 0xFFFF) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + add(static_cast(0xE0u | (static_cast(codepoint) >> 12u))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 6u) & 0x3Fu))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + else + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + add(static_cast(0xF0u | (static_cast(codepoint) >> 18u))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 12u) & 0x3Fu))); + add(static_cast(0x80u | ((static_cast(codepoint) >> 6u) & 0x3Fu))); + add(static_cast(0x80u | (static_cast(codepoint) & 0x3Fu))); + } + + break; + } + + // other characters after escape + default: + error_message = "invalid string: forbidden character after backslash"; + return token_type::parse_error; + } + + break; + } + + // invalid control characters + case 0x00: + { + error_message = "invalid string: control character U+0000 (NUL) must be escaped to \\u0000"; + return token_type::parse_error; + } + + case 0x01: + { + error_message = "invalid string: control character U+0001 (SOH) must be escaped to \\u0001"; + return token_type::parse_error; + } + + case 0x02: + { + error_message = "invalid string: control character U+0002 (STX) must be escaped to \\u0002"; + return token_type::parse_error; + } + + case 0x03: + { + error_message = "invalid string: control character U+0003 (ETX) must be escaped to \\u0003"; + return token_type::parse_error; + } + + case 0x04: + { + error_message = "invalid string: control character U+0004 (EOT) must be escaped to \\u0004"; + return token_type::parse_error; + } + + case 0x05: + { + error_message = "invalid string: control character U+0005 (ENQ) must be escaped to \\u0005"; + return token_type::parse_error; + } + + case 0x06: + { + error_message = "invalid string: control character U+0006 (ACK) must be escaped to \\u0006"; + return token_type::parse_error; + } + + case 0x07: + { + error_message = "invalid string: control character U+0007 (BEL) must be escaped to \\u0007"; + return token_type::parse_error; + } + + case 0x08: + { + error_message = "invalid string: control character U+0008 (BS) must be escaped to \\u0008 or \\b"; + return token_type::parse_error; + } + + case 0x09: + { + error_message = "invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t"; + return token_type::parse_error; + } + + case 0x0A: + { + error_message = "invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n"; + return token_type::parse_error; + } + + case 0x0B: + { + error_message = "invalid string: control character U+000B (VT) must be escaped to \\u000B"; + return token_type::parse_error; + } + + case 0x0C: + { + error_message = "invalid string: control character U+000C (FF) must be escaped to \\u000C or \\f"; + return token_type::parse_error; + } + + case 0x0D: + { + error_message = "invalid string: control character U+000D (CR) must be escaped to \\u000D or \\r"; + return token_type::parse_error; + } + + case 0x0E: + { + error_message = "invalid string: control character U+000E (SO) must be escaped to \\u000E"; + return token_type::parse_error; + } + + case 0x0F: + { + error_message = "invalid string: control character U+000F (SI) must be escaped to \\u000F"; + return token_type::parse_error; + } + + case 0x10: + { + error_message = "invalid string: control character U+0010 (DLE) must be escaped to \\u0010"; + return token_type::parse_error; + } + + case 0x11: + { + error_message = "invalid string: control character U+0011 (DC1) must be escaped to \\u0011"; + return token_type::parse_error; + } + + case 0x12: + { + error_message = "invalid string: control character U+0012 (DC2) must be escaped to \\u0012"; + return token_type::parse_error; + } + + case 0x13: + { + error_message = "invalid string: control character U+0013 (DC3) must be escaped to \\u0013"; + return token_type::parse_error; + } + + case 0x14: + { + error_message = "invalid string: control character U+0014 (DC4) must be escaped to \\u0014"; + return token_type::parse_error; + } + + case 0x15: + { + error_message = "invalid string: control character U+0015 (NAK) must be escaped to \\u0015"; + return token_type::parse_error; + } + + case 0x16: + { + error_message = "invalid string: control character U+0016 (SYN) must be escaped to \\u0016"; + return token_type::parse_error; + } + + case 0x17: + { + error_message = "invalid string: control character U+0017 (ETB) must be escaped to \\u0017"; + return token_type::parse_error; + } + + case 0x18: + { + error_message = "invalid string: control character U+0018 (CAN) must be escaped to \\u0018"; + return token_type::parse_error; + } + + case 0x19: + { + error_message = "invalid string: control character U+0019 (EM) must be escaped to \\u0019"; + return token_type::parse_error; + } + + case 0x1A: + { + error_message = "invalid string: control character U+001A (SUB) must be escaped to \\u001A"; + return token_type::parse_error; + } + + case 0x1B: + { + error_message = "invalid string: control character U+001B (ESC) must be escaped to \\u001B"; + return token_type::parse_error; + } + + case 0x1C: + { + error_message = "invalid string: control character U+001C (FS) must be escaped to \\u001C"; + return token_type::parse_error; + } + + case 0x1D: + { + error_message = "invalid string: control character U+001D (GS) must be escaped to \\u001D"; + return token_type::parse_error; + } + + case 0x1E: + { + error_message = "invalid string: control character U+001E (RS) must be escaped to \\u001E"; + return token_type::parse_error; + } + + case 0x1F: + { + error_message = "invalid string: control character U+001F (US) must be escaped to \\u001F"; + return token_type::parse_error; + } + + // U+0020..U+007F (except U+0022 (quote) and U+005C (backspace)) + case 0x20: + case 0x21: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + { + add(current); + break; + } + + // U+0080..U+07FF: bytes C2..DF 80..BF + case 0xC2: + case 0xC3: + case 0xC4: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC8: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCC: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + case 0xD5: + case 0xD6: + case 0xD7: + case 0xD8: + case 0xD9: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + { + if (JSON_HEDLEY_UNLIKELY(!next_byte_in_range({0x80, 0xBF}))) + { + return token_type::parse_error; + } + break; + } + + // U+0800..U+0FFF: bytes E0 A0..BF 80..BF + case 0xE0: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0xA0, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+1000..U+CFFF: bytes E1..EC 80..BF 80..BF + // U+E000..U+FFFF: bytes EE..EF 80..BF 80..BF + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xEE: + case 0xEF: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+D000..U+D7FF: bytes ED 80..9F 80..BF + case 0xED: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x9F, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+10000..U+3FFFF F0 90..BF 80..BF 80..BF + case 0xF0: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x90, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF + case 0xF1: + case 0xF2: + case 0xF3: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+100000..U+10FFFF F4 80..8F 80..BF 80..BF + case 0xF4: + { + if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x8F, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // remaining bytes (80..C1 and F5..FF) are ill-formed + default: + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return token_type::parse_error; + } + } + } + } + + /*! + * @brief scan a comment + * @return whether comment could be scanned successfully + */ + bool scan_comment() + { + switch (get()) + { + // single-line comments skip input until a newline or EOF is read + case '/': + { + while (true) + { + switch (get()) + { + case '\n': + case '\r': + case std::char_traits::eof(): + case '\0': + return true; + + default: + break; + } + } + } + + // multi-line comments skip input until */ is read + case '*': + { + while (true) + { + switch (get()) + { + case std::char_traits::eof(): + case '\0': + { + error_message = "invalid comment; missing closing '*/'"; + return false; + } + + case '*': + { + switch (get()) + { + case '/': + return true; + + default: + { + unget(); + continue; + } + } + } + + default: + continue; + } + } + } + + // unexpected character after reading '/' + default: + { + error_message = "invalid comment; expecting '/' or '*' after '/'"; + return false; + } + } + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(float& f, const char* str, char** endptr) noexcept + { + f = std::strtof(str, endptr); + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(double& f, const char* str, char** endptr) noexcept + { + f = std::strtod(str, endptr); + } + + JSON_HEDLEY_NON_NULL(2) + static void strtof(long double& f, const char* str, char** endptr) noexcept + { + f = std::strtold(str, endptr); + } + + /*! + @brief scan a number literal + + This function scans a string according to Sect. 6 of RFC 7159. + + The function is realized with a deterministic finite state machine derived + from the grammar described in RFC 7159. Starting in state "init", the + input is read and used to determined the next state. Only state "done" + accepts the number. State "error" is a trap state to model errors. In the + table below, "anything" means any character but the ones listed before. + + state | 0 | 1-9 | e E | + | - | . | anything + ---------|----------|----------|----------|---------|---------|----------|----------- + init | zero | any1 | [error] | [error] | minus | [error] | [error] + minus | zero | any1 | [error] | [error] | [error] | [error] | [error] + zero | done | done | exponent | done | done | decimal1 | done + any1 | any1 | any1 | exponent | done | done | decimal1 | done + decimal1 | decimal2 | decimal2 | [error] | [error] | [error] | [error] | [error] + decimal2 | decimal2 | decimal2 | exponent | done | done | done | done + exponent | any2 | any2 | [error] | sign | sign | [error] | [error] + sign | any2 | any2 | [error] | [error] | [error] | [error] | [error] + any2 | any2 | any2 | done | done | done | done | done + + The state machine is realized with one label per state (prefixed with + "scan_number_") and `goto` statements between them. The state machine + contains cycles, but any cycle can be left when EOF is read. Therefore, + the function is guaranteed to terminate. + + During scanning, the read bytes are stored in token_buffer. This string is + then converted to a signed integer, an unsigned integer, or a + floating-point number. + + @return token_type::value_unsigned, token_type::value_integer, or + token_type::value_float if number could be successfully scanned, + token_type::parse_error otherwise + + @note The scanner is independent of the current locale. Internally, the + locale's decimal point is used instead of `.` to work with the + locale-dependent converters. + */ + token_type scan_number() // lgtm [cpp/use-of-goto] + { + // reset token_buffer to store the number's bytes + reset(); + + // the type of the parsed number; initially set to unsigned; will be + // changed if minus sign, decimal point or exponent is read + token_type number_type = token_type::value_unsigned; + + // state (init): we just found out we need to scan a number + switch (current) + { + case '-': + { + add(current); + goto scan_number_minus; + } + + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + // all other characters are rejected outside scan_number() + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + +scan_number_minus: + // state: we just parsed a leading minus sign + number_type = token_type::value_integer; + switch (get()) + { + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + default: + { + error_message = "invalid number; expected digit after '-'"; + return token_type::parse_error; + } + } + +scan_number_zero: + // state: we just parse a zero (maybe with a leading minus sign) + switch (get()) + { + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_any1: + // state: we just parsed a number 0-9 (maybe with a leading minus sign) + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_decimal1: + // state: we just parsed a decimal point + number_type = token_type::value_float; + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + default: + { + error_message = "invalid number; expected digit after '.'"; + return token_type::parse_error; + } + } + +scan_number_decimal2: + // we just parsed at least one number after a decimal point + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_exponent: + // we just parsed an exponent + number_type = token_type::value_float; + switch (get()) + { + case '+': + case '-': + { + add(current); + goto scan_number_sign; + } + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = + "invalid number; expected '+', '-', or digit after exponent"; + return token_type::parse_error; + } + } + +scan_number_sign: + // we just parsed an exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = "invalid number; expected digit after exponent sign"; + return token_type::parse_error; + } + } + +scan_number_any2: + // we just parsed a number after the exponent or exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + goto scan_number_done; + } + +scan_number_done: + // unget the character after the number (we only read it to know that + // we are done scanning a number) + unget(); + + char* endptr = nullptr; + errno = 0; + + // try to parse integers first and fall back to floats + if (number_type == token_type::value_unsigned) + { + const auto x = std::strtoull(token_buffer.data(), &endptr, 10); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_unsigned = static_cast(x); + if (value_unsigned == x) + { + return token_type::value_unsigned; + } + } + } + else if (number_type == token_type::value_integer) + { + const auto x = std::strtoll(token_buffer.data(), &endptr, 10); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_integer = static_cast(x); + if (value_integer == x) + { + return token_type::value_integer; + } + } + } + + // this code is reached if we parse a floating-point number or if an + // integer conversion above failed + strtof(value_float, token_buffer.data(), &endptr); + + // we checked the number format before + JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size()); + + return token_type::value_float; + } + + /*! + @param[in] literal_text the literal text to expect + @param[in] length the length of the passed literal text + @param[in] return_type the token type to return on success + */ + JSON_HEDLEY_NON_NULL(2) + token_type scan_literal(const char_type* literal_text, const std::size_t length, + token_type return_type) + { + JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { + if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; + } + } + return return_type; + } + + ///////////////////// + // input management + ///////////////////// + + /// reset token_buffer; current character is beginning of token + void reset() noexcept + { + token_buffer.clear(); + token_string.clear(); + token_string.push_back(std::char_traits::to_char_type(current)); + } + + /* + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a + `std::char_traits::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input + */ + char_int_type get() + { + ++position.chars_read_total; + ++position.chars_read_current_line; + + if (next_unget) + { + // just reset the next_unget variable and work with current + next_unget = false; + } + else + { + current = ia.get_character(); + } + + if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + { + token_string.push_back(std::char_traits::to_char_type(current)); + } + + if (current == '\n') + { + ++position.lines_read; + position.chars_read_current_line = 0; + } + + return current; + } + + /*! + @brief unget current character (read it again on next get) + + We implement unget by setting variable next_unget to true. The input is not + changed - we just simulate ungetting by modifying chars_read_total, + chars_read_current_line, and token_string. The next call to get() will + behave as if the unget character is read again. + */ + void unget() + { + next_unget = true; + + --position.chars_read_total; + + // in case we "unget" a newline, we have to also decrement the lines_read + if (position.chars_read_current_line == 0) + { + if (position.lines_read > 0) + { + --position.lines_read; + } + } + else + { + --position.chars_read_current_line; + } + + if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + { + JSON_ASSERT(!token_string.empty()); + token_string.pop_back(); + } + } + + /// add a character to token_buffer + void add(char_int_type c) + { + token_buffer.push_back(static_cast(c)); + } + + public: + ///////////////////// + // value getters + ///////////////////// + + /// return integer value + constexpr number_integer_t get_number_integer() const noexcept + { + return value_integer; + } + + /// return unsigned integer value + constexpr number_unsigned_t get_number_unsigned() const noexcept + { + return value_unsigned; + } + + /// return floating-point value + constexpr number_float_t get_number_float() const noexcept + { + return value_float; + } + + /// return current string value (implicitly resets the token; useful only once) + string_t& get_string() + { + return token_buffer; + } + + ///////////////////// + // diagnostics + ///////////////////// + + /// return position of last read token + constexpr position_t get_position() const noexcept + { + return position; + } + + /// return the last read token (for errors only). Will never contain EOF + /// (an arbitrary value that is not a valid char value, often -1), because + /// 255 may legitimately occur. May contain NUL, which should be escaped. + std::string get_token_string() const + { + // escape control characters + std::string result; + for (const auto c : token_string) + { + if (static_cast(c) <= '\x1F') + { + // escape control characters + std::array cs{{}}; + (std::snprintf)(cs.data(), cs.size(), "", static_cast(c)); + result += cs.data(); + } + else + { + // add character as is + result.push_back(static_cast(c)); + } + } + + return result; + } + + /// return syntax error message + JSON_HEDLEY_RETURNS_NON_NULL + constexpr const char* get_error_message() const noexcept + { + return error_message; + } + + ///////////////////// + // actual scanner + ///////////////////// + + /*! + @brief skip the UTF-8 byte order mark + @return true iff there is no BOM or the correct BOM has been skipped + */ + bool skip_bom() + { + if (get() == 0xEF) + { + // check if we completely parse the BOM + return get() == 0xBB && get() == 0xBF; + } + + // the first character is not the beginning of the BOM; unget it to + // process is later + unget(); + return true; + } + + void skip_whitespace() + { + do + { + get(); + } + while (current == ' ' || current == '\t' || current == '\n' || current == '\r'); + } + + token_type scan() + { + // initially, skip the BOM + if (position.chars_read_total == 0 && !skip_bom()) + { + error_message = "invalid BOM; must be 0xEF 0xBB 0xBF if given"; + return token_type::parse_error; + } + + // read next character and ignore whitespace + skip_whitespace(); + + // ignore comments + while (ignore_comments && current == '/') + { + if (!scan_comment()) + { + return token_type::parse_error; + } + + // skip following whitespace + skip_whitespace(); + } + + switch (current) + { + // structural characters + case '[': + return token_type::begin_array; + case ']': + return token_type::end_array; + case '{': + return token_type::begin_object; + case '}': + return token_type::end_object; + case ':': + return token_type::name_separator; + case ',': + return token_type::value_separator; + + // literals + case 't': + { + std::array true_literal = {{'t', 'r', 'u', 'e'}}; + return scan_literal(true_literal.data(), true_literal.size(), token_type::literal_true); + } + case 'f': + { + std::array false_literal = {{'f', 'a', 'l', 's', 'e'}}; + return scan_literal(false_literal.data(), false_literal.size(), token_type::literal_false); + } + case 'n': + { + std::array null_literal = {{'n', 'u', 'l', 'l'}}; + return scan_literal(null_literal.data(), null_literal.size(), token_type::literal_null); + } + + // string + case '\"': + return scan_string(); + + // number + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return scan_number(); + + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': + case std::char_traits::eof(): + return token_type::end_of_input; + + // error + default: + error_message = "invalid literal"; + return token_type::parse_error; + } + } + + private: + /// input adapter + InputAdapterType ia; + + /// whether comments should be ignored (true) or signaled as errors (false) + const bool ignore_comments = false; + + /// the current character + char_int_type current = std::char_traits::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; + + /// the start position of the current token + position_t position {}; + + /// raw input token string (for error messages) + std::vector token_string {}; + + /// buffer for variable-length tokens (numbers, strings) + string_t token_buffer {}; + + /// a description of occurred lexer errors + const char* error_message = ""; + + // number values + number_integer_t value_integer = 0; + number_unsigned_t value_unsigned = 0; + number_float_t value_float = 0; + + /// the decimal point + const char_int_type decimal_point_char = '.'; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // size_t +#include // declval +#include // string + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +using null_function_t = decltype(std::declval().null()); + +template +using boolean_function_t = + decltype(std::declval().boolean(std::declval())); + +template +using number_integer_function_t = + decltype(std::declval().number_integer(std::declval())); + +template +using number_unsigned_function_t = + decltype(std::declval().number_unsigned(std::declval())); + +template +using number_float_function_t = decltype(std::declval().number_float( + std::declval(), std::declval())); + +template +using string_function_t = + decltype(std::declval().string(std::declval())); + +template +using binary_function_t = + decltype(std::declval().binary(std::declval())); + +template +using start_object_function_t = + decltype(std::declval().start_object(std::declval())); + +template +using key_function_t = + decltype(std::declval().key(std::declval())); + +template +using end_object_function_t = decltype(std::declval().end_object()); + +template +using start_array_function_t = + decltype(std::declval().start_array(std::declval())); + +template +using end_array_function_t = decltype(std::declval().end_array()); + +template +using parse_error_function_t = decltype(std::declval().parse_error( + std::declval(), std::declval(), + std::declval())); + +template +struct is_sax +{ + private: + static_assert(is_basic_json::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using exception_t = typename BasicJsonType::exception; + + public: + static constexpr bool value = + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value && + is_detected_exact::value; +}; + +template +struct is_sax_static_asserts +{ + private: + static_assert(is_basic_json::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using exception_t = typename BasicJsonType::exception; + + public: + static_assert(is_detected_exact::value, + "Missing/invalid function: bool null()"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool number_integer(number_integer_t)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool number_unsigned(number_unsigned_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool number_float(number_float_t, const string_t&)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool string(string_t&)"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool binary(binary_t&)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool start_object(std::size_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool key(string_t&)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool end_object()"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool start_array(std::size_t)"); + static_assert(is_detected_exact::value, + "Missing/invalid function: bool end_array()"); + static_assert( + is_detected_exact::value, + "Missing/invalid function: bool parse_error(std::size_t, const " + "std::string&, const exception&)"); +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +/// how to treat CBOR tags +enum class cbor_tag_handler_t +{ + error, ///< throw a parse_error exception in case of a tag + ignore ///< ignore tags +}; + +/*! +@brief determine system byte order + +@return true if and only if system's byte order is little endian + +@note from https://stackoverflow.com/a/1001328/266378 +*/ +static inline bool little_endianess(int num = 1) noexcept +{ + return *reinterpret_cast(&num) == 1; +} + + +/////////////////// +// binary reader // +/////////////////// + +/*! +@brief deserialization of CBOR, MessagePack, and UBJSON values +*/ +template> +class binary_reader +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using json_sax_t = SAX; + using char_type = typename InputAdapterType::char_type; + using char_int_type = typename std::char_traits::int_type; + + public: + /*! + @brief create a binary reader + + @param[in] adapter input adapter to read from + */ + explicit binary_reader(InputAdapterType&& adapter) : ia(std::move(adapter)) + { + (void)detail::is_sax_static_asserts {}; + } + + // make class move-only + binary_reader(const binary_reader&) = delete; + binary_reader(binary_reader&&) = default; + binary_reader& operator=(const binary_reader&) = delete; + binary_reader& operator=(binary_reader&&) = default; + ~binary_reader() = default; + + /*! + @param[in] format the binary format to parse + @param[in] sax_ a SAX event processor + @param[in] strict whether to expect the input to be consumed completed + @param[in] tag_handler how to treat CBOR tags + + @return + */ + JSON_HEDLEY_NON_NULL(3) + bool sax_parse(const input_format_t format, + json_sax_t* sax_, + const bool strict = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + sax = sax_; + bool result = false; + + switch (format) + { + case input_format_t::bson: + result = parse_bson_internal(); + break; + + case input_format_t::cbor: + result = parse_cbor_internal(true, tag_handler); + break; + + case input_format_t::msgpack: + result = parse_msgpack_internal(); + break; + + case input_format_t::ubjson: + result = parse_ubjson_internal(); + break; + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + + // strict mode: next byte must be EOF + if (result && strict) + { + if (format == input_format_t::ubjson) + { + get_ignore_noop(); + } + else + { + get(); + } + + if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"))); + } + } + + return result; + } + + private: + ////////// + // BSON // + ////////// + + /*! + @brief Reads in a BSON-object and passes it to the SAX-parser. + @return whether a valid BSON-value was passed to the SAX parser + */ + bool parse_bson_internal() + { + std::int32_t document_size{}; + get_number(input_format_t::bson, document_size); + + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/false))) + { + return false; + } + + return sax->end_object(); + } + + /*! + @brief Parses a C-style string from the BSON input. + @param[in, out] result A reference to the string variable where the read + string is to be stored. + @return `true` if the \x00-byte indicating the end of the string was + encountered before the EOF; false` indicates an unexpected EOF. + */ + bool get_bson_cstr(string_t& result) + { + auto out = std::back_inserter(result); + while (true) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, "cstring"))) + { + return false; + } + if (current == 0x00) + { + return true; + } + *out++ = static_cast(current); + } + } + + /*! + @brief Parses a zero-terminated string of length @a len from the BSON + input. + @param[in] len The length (including the zero-byte at the end) of the + string to be read. + @param[in, out] result A reference to the string variable where the read + string is to be stored. + @tparam NumberType The type of the length @a len + @pre len >= 1 + @return `true` if the string was successfully parsed + */ + template + bool get_bson_string(const NumberType len, string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(len < 1)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"))); + } + + return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); + } + + /*! + @brief Parses a byte array input of length @a len from the BSON input. + @param[in] len The length of the byte array to be read. + @param[in, out] result A reference to the binary variable where the read + array is to be stored. + @tparam NumberType The type of the length @a len + @pre len >= 0 + @return `true` if the byte array was successfully parsed + */ + template + bool get_bson_binary(const NumberType len, binary_t& result) + { + if (JSON_HEDLEY_UNLIKELY(len < 0)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "byte array length cannot be negative, is " + std::to_string(len), "binary"))); + } + + // All BSON binary values have a subtype + std::uint8_t subtype{}; + get_number(input_format_t::bson, subtype); + result.set_subtype(subtype); + + return get_binary(input_format_t::bson, len, result); + } + + /*! + @brief Read a BSON document element of the given @a element_type. + @param[in] element_type The BSON element type, c.f. http://bsonspec.org/spec.html + @param[in] element_type_parse_position The position in the input stream, + where the `element_type` was read. + @warning Not all BSON element types are supported yet. An unsupported + @a element_type will give rise to a parse_error.114: + Unsupported BSON record type 0x... + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_internal(const char_int_type element_type, + const std::size_t element_type_parse_position) + { + switch (element_type) + { + case 0x01: // double + { + double number{}; + return get_number(input_format_t::bson, number) && sax->number_float(static_cast(number), ""); + } + + case 0x02: // string + { + std::int32_t len{}; + string_t value; + return get_number(input_format_t::bson, len) && get_bson_string(len, value) && sax->string(value); + } + + case 0x03: // object + { + return parse_bson_internal(); + } + + case 0x04: // array + { + return parse_bson_array(); + } + + case 0x05: // binary + { + std::int32_t len{}; + binary_t value; + return get_number(input_format_t::bson, len) && get_bson_binary(len, value) && sax->binary(value); + } + + case 0x08: // boolean + { + return sax->boolean(get() != 0); + } + + case 0x0A: // null + { + return sax->null(); + } + + case 0x10: // int32 + { + std::int32_t value{}; + return get_number(input_format_t::bson, value) && sax->number_integer(value); + } + + case 0x12: // int64 + { + std::int64_t value{}; + return get_number(input_format_t::bson, value) && sax->number_integer(value); + } + + default: // anything else not supported (yet) + { + std::array cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast(element_type)); + return sax->parse_error(element_type_parse_position, std::string(cr.data()), parse_error::create(114, element_type_parse_position, "Unsupported BSON record type 0x" + std::string(cr.data()))); + } + } + } + + /*! + @brief Read a BSON element list (as specified in the BSON-spec) + + The same binary layout is used for objects and arrays, hence it must be + indicated with the argument @a is_array which one is expected + (true --> array, false --> object). + + @param[in] is_array Determines if the element list being read is to be + treated as an object (@a is_array == false), or as an + array (@a is_array == true). + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_list(const bool is_array) + { + string_t key; + + while (auto element_type = get()) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, "element list"))) + { + return false; + } + + const std::size_t element_type_parse_position = chars_read; + if (JSON_HEDLEY_UNLIKELY(!get_bson_cstr(key))) + { + return false; + } + + if (!is_array && !sax->key(key)) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_internal(element_type, element_type_parse_position))) + { + return false; + } + + // get_bson_cstr only appends + key.clear(); + } + + return true; + } + + /*! + @brief Reads an array from the BSON input and passes it to the SAX-parser. + @return whether a valid BSON-array was passed to the SAX parser + */ + bool parse_bson_array() + { + std::int32_t document_size{}; + get_number(input_format_t::bson, document_size); + + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/true))) + { + return false; + } + + return sax->end_array(); + } + + ////////// + // CBOR // + ////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true) or whether the last read character should + be considered instead (false) + @param[in] tag_handler how CBOR tags should be treated + + @return whether a valid CBOR value was passed to the SAX parser + */ + bool parse_cbor_internal(const bool get_char, + const cbor_tag_handler_t tag_handler) + { + switch (get_char ? get() : current) + { + // EOF + case std::char_traits::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + return sax->number_unsigned(static_cast(current)); + + case 0x18: // Unsigned integer (one-byte uint8_t follows) + { + std::uint8_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x19: // Unsigned integer (two-byte uint16_t follows) + { + std::uint16_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x1A: // Unsigned integer (four-byte uint32_t follows) + { + std::uint32_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + case 0x1B: // Unsigned integer (eight-byte uint64_t follows) + { + std::uint64_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_unsigned(number); + } + + // Negative integer -1-0x00..-1-0x17 (-1..-24) + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + return sax->number_integer(static_cast(0x20 - 1 - current)); + + case 0x38: // Negative integer (one-byte uint8_t follows) + { + std::uint8_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x39: // Negative integer -1-n (two-byte uint16_t follows) + { + std::uint16_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x3A: // Negative integer -1-n (four-byte uint32_t follows) + { + std::uint32_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) - number); + } + + case 0x3B: // Negative integer -1-n (eight-byte uint64_t follows) + { + std::uint64_t number{}; + return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast(-1) + - static_cast(number)); + } + + // Binary data (0x00..0x17 bytes follow) + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: // Binary data (one-byte uint8_t for n follows) + case 0x59: // Binary data (two-byte uint16_t for n follow) + case 0x5A: // Binary data (four-byte uint32_t for n follow) + case 0x5B: // Binary data (eight-byte uint64_t for n follow) + case 0x5F: // Binary data (indefinite length) + { + binary_t b; + return get_cbor_binary(b) && sax->binary(b); + } + + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + case 0x7F: // UTF-8 string (indefinite length) + { + string_t s; + return get_cbor_string(s) && sax->string(s); + } + + // array (0x00..0x17 data items follow) + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + return get_cbor_array(static_cast(static_cast(current) & 0x1Fu), tag_handler); + + case 0x98: // array (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x99: // array (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x9A: // array (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x9B: // array (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast(len), tag_handler); + } + + case 0x9F: // array (indefinite length) + return get_cbor_array(std::size_t(-1), tag_handler); + + // map (0x00..0x17 pairs of data items follow) + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + return get_cbor_object(static_cast(static_cast(current) & 0x1Fu), tag_handler); + + case 0xB8: // map (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xB9: // map (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xBA: // map (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xBB: // map (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast(len), tag_handler); + } + + case 0xBF: // map (indefinite length) + return get_cbor_object(std::size_t(-1), tag_handler); + + case 0xC6: // tagged item + case 0xC7: + case 0xC8: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCC: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + case 0xD8: // tagged item (1 bytes follow) + case 0xD9: // tagged item (2 bytes follow) + case 0xDA: // tagged item (4 bytes follow) + case 0xDB: // tagged item (8 bytes follow) + { + switch (tag_handler) + { + case cbor_tag_handler_t::error: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::cbor, "invalid byte: 0x" + last_token, "value"))); + } + + case cbor_tag_handler_t::ignore: + { + switch (current) + { + case 0xD8: + { + std::uint8_t len{}; + get_number(input_format_t::cbor, len); + break; + } + case 0xD9: + { + std::uint16_t len{}; + get_number(input_format_t::cbor, len); + break; + } + case 0xDA: + { + std::uint32_t len{}; + get_number(input_format_t::cbor, len); + break; + } + case 0xDB: + { + std::uint64_t len{}; + get_number(input_format_t::cbor, len); + break; + } + default: + break; + } + return parse_cbor_internal(true, tag_handler); + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + } + + case 0xF4: // false + return sax->boolean(false); + + case 0xF5: // true + return sax->boolean(true); + + case 0xF6: // null + return sax->null(); + + case 0xF9: // Half-Precision Float (two-byte IEEE 754) + { + const auto byte1_raw = get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + const auto byte2_raw = get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + + const auto byte1 = static_cast(byte1_raw); + const auto byte2 = static_cast(byte2_raw); + + // code from RFC 7049, Appendix D, Figure 3: + // As half-precision floating-point numbers were only added + // to IEEE 754 in 2008, today's programming platforms often + // still only have limited support for them. It is very + // easy to include at least decoding support for them even + // without such support. An example of a small decoder for + // half-precision floating-point numbers in the C language + // is shown in Fig. 3. + const auto half = static_cast((byte1 << 8u) + byte2); + const double val = [&half] + { + const int exp = (half >> 10u) & 0x1Fu; + const unsigned int mant = half & 0x3FFu; + JSON_ASSERT(0 <= exp&& exp <= 32); + JSON_ASSERT(mant <= 1024); + switch (exp) + { + case 0: + return std::ldexp(mant, -24); + case 31: + return (mant == 0) + ? std::numeric_limits::infinity() + : std::numeric_limits::quiet_NaN(); + default: + return std::ldexp(mant + 1024, exp - 25); + } + }(); + return sax->number_float((half & 0x8000u) != 0 + ? static_cast(-val) + : static_cast(val), ""); + } + + case 0xFA: // Single-Precision Float (four-byte IEEE 754) + { + float number{}; + return get_number(input_format_t::cbor, number) && sax->number_float(static_cast(number), ""); + } + + case 0xFB: // Double-Precision Float (eight-byte IEEE 754) + { + double number{}; + return get_number(input_format_t::cbor, number) && sax->number_float(static_cast(number), ""); + } + + default: // anything else (0xFF is handled inside the other types) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::cbor, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @brief reads a CBOR string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + Additionally, CBOR's strings with indefinite lengths are supported. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_cbor_string(string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "string"))) + { + return false; + } + + switch (current) + { + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + { + return get_string(input_format_t::cbor, static_cast(current) & 0x1Fu, result); + } + + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result); + } + + case 0x7F: // UTF-8 string (indefinite length) + { + while (get() != 0xFF) + { + string_t chunk; + if (!get_cbor_string(chunk)) + { + return false; + } + result.append(chunk); + } + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::cbor, "expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0x" + last_token, "string"))); + } + } + } + + /*! + @brief reads a CBOR byte array + + This function first reads starting bytes to determine the expected + byte array length and then copies this number of bytes into the byte array. + Additionally, CBOR's byte arrays with indefinite lengths are supported. + + @param[out] result created byte array + + @return whether byte array creation completed + */ + bool get_cbor_binary(binary_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, "binary"))) + { + return false; + } + + switch (current) + { + // Binary data (0x00..0x17 bytes follow) + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + { + return get_binary(input_format_t::cbor, static_cast(current) & 0x1Fu, result); + } + + case 0x58: // Binary data (one-byte uint8_t for n follows) + { + std::uint8_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x59: // Binary data (two-byte uint16_t for n follow) + { + std::uint16_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5A: // Binary data (four-byte uint32_t for n follow) + { + std::uint32_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5B: // Binary data (eight-byte uint64_t for n follow) + { + std::uint64_t len{}; + return get_number(input_format_t::cbor, len) && + get_binary(input_format_t::cbor, len, result); + } + + case 0x5F: // Binary data (indefinite length) + { + while (get() != 0xFF) + { + binary_t chunk; + if (!get_cbor_binary(chunk)) + { + return false; + } + result.insert(result.end(), chunk.begin(), chunk.end()); + } + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::cbor, "expected length specification (0x40-0x5B) or indefinite binary array type (0x5F); last byte: 0x" + last_token, "binary"))); + } + } + } + + /*! + @param[in] len the length of the array or std::size_t(-1) for an + array of indefinite size + @param[in] tag_handler how CBOR tags should be treated + @return whether array creation completed + */ + bool get_cbor_array(const std::size_t len, + const cbor_tag_handler_t tag_handler) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len))) + { + return false; + } + + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + } + } + else + { + while (get() != 0xFF) + { + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(false, tag_handler))) + { + return false; + } + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object or std::size_t(-1) for an + object of indefinite size + @param[in] tag_handler how CBOR tags should be treated + @return whether object creation completed + */ + bool get_cbor_object(const std::size_t len, + const cbor_tag_handler_t tag_handler) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len))) + { + return false; + } + + string_t key; + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + key.clear(); + } + } + else + { + while (get() != 0xFF) + { + if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler))) + { + return false; + } + key.clear(); + } + } + + return sax->end_object(); + } + + ///////////// + // MsgPack // + ///////////// + + /*! + @return whether a valid MessagePack value was passed to the SAX parser + */ + bool parse_msgpack_internal() + { + switch (get()) + { + // EOF + case std::char_traits::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5C: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + return sax->number_unsigned(static_cast(current)); + + // fixmap + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + return get_msgpack_object(static_cast(static_cast(current) & 0x0Fu)); + + // fixarray + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + case 0x98: + case 0x99: + case 0x9A: + case 0x9B: + case 0x9C: + case 0x9D: + case 0x9E: + case 0x9F: + return get_msgpack_array(static_cast(static_cast(current) & 0x0Fu)); + + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + case 0xD9: // str 8 + case 0xDA: // str 16 + case 0xDB: // str 32 + { + string_t s; + return get_msgpack_string(s) && sax->string(s); + } + + case 0xC0: // nil + return sax->null(); + + case 0xC2: // false + return sax->boolean(false); + + case 0xC3: // true + return sax->boolean(true); + + case 0xC4: // bin 8 + case 0xC5: // bin 16 + case 0xC6: // bin 32 + case 0xC7: // ext 8 + case 0xC8: // ext 16 + case 0xC9: // ext 32 + case 0xD4: // fixext 1 + case 0xD5: // fixext 2 + case 0xD6: // fixext 4 + case 0xD7: // fixext 8 + case 0xD8: // fixext 16 + { + binary_t b; + return get_msgpack_binary(b) && sax->binary(b); + } + + case 0xCA: // float 32 + { + float number{}; + return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast(number), ""); + } + + case 0xCB: // float 64 + { + double number{}; + return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast(number), ""); + } + + case 0xCC: // uint 8 + { + std::uint8_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCD: // uint 16 + { + std::uint16_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCE: // uint 32 + { + std::uint32_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xCF: // uint 64 + { + std::uint64_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number); + } + + case 0xD0: // int 8 + { + std::int8_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD1: // int 16 + { + std::int16_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD2: // int 32 + { + std::int32_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xD3: // int 64 + { + std::int64_t number{}; + return get_number(input_format_t::msgpack, number) && sax->number_integer(number); + } + + case 0xDC: // array 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_array(static_cast(len)); + } + + case 0xDD: // array 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_array(static_cast(len)); + } + + case 0xDE: // map 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_object(static_cast(len)); + } + + case 0xDF: // map 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_msgpack_object(static_cast(len)); + } + + // negative fixint + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xED: + case 0xEE: + case 0xEF: + case 0xF0: + case 0xF1: + case 0xF2: + case 0xF3: + case 0xF4: + case 0xF5: + case 0xF6: + case 0xF7: + case 0xF8: + case 0xF9: + case 0xFA: + case 0xFB: + case 0xFC: + case 0xFD: + case 0xFE: + case 0xFF: + return sax->number_integer(static_cast(current)); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::msgpack, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @brief reads a MessagePack string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_msgpack_string(string_t& result) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::msgpack, "string"))) + { + return false; + } + + switch (current) + { + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + { + return get_string(input_format_t::msgpack, static_cast(current) & 0x1Fu, result); + } + + case 0xD9: // str 8 + { + std::uint8_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + case 0xDA: // str 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + case 0xDB: // str 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result); + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::msgpack, "expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0x" + last_token, "string"))); + } + } + } + + /*! + @brief reads a MessagePack byte array + + This function first reads starting bytes to determine the expected + byte array length and then copies this number of bytes into a byte array. + + @param[out] result created byte array + + @return whether byte array creation completed + */ + bool get_msgpack_binary(binary_t& result) + { + // helper function to set the subtype + auto assign_and_return_true = [&result](std::int8_t subtype) + { + result.set_subtype(static_cast(subtype)); + return true; + }; + + switch (current) + { + case 0xC4: // bin 8 + { + std::uint8_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC5: // bin 16 + { + std::uint16_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC6: // bin 32 + { + std::uint32_t len{}; + return get_number(input_format_t::msgpack, len) && + get_binary(input_format_t::msgpack, len, result); + } + + case 0xC7: // ext 8 + { + std::uint8_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xC8: // ext 16 + { + std::uint16_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xC9: // ext 32 + { + std::uint32_t len{}; + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, len) && + get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, len, result) && + assign_and_return_true(subtype); + } + + case 0xD4: // fixext 1 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 1, result) && + assign_and_return_true(subtype); + } + + case 0xD5: // fixext 2 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 2, result) && + assign_and_return_true(subtype); + } + + case 0xD6: // fixext 4 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 4, result) && + assign_and_return_true(subtype); + } + + case 0xD7: // fixext 8 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 8, result) && + assign_and_return_true(subtype); + } + + case 0xD8: // fixext 16 + { + std::int8_t subtype{}; + return get_number(input_format_t::msgpack, subtype) && + get_binary(input_format_t::msgpack, 16, result) && + assign_and_return_true(subtype); + } + + default: // LCOV_EXCL_LINE + return false; // LCOV_EXCL_LINE + } + } + + /*! + @param[in] len the length of the array + @return whether array creation completed + */ + bool get_msgpack_array(const std::size_t len) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len))) + { + return false; + } + + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal())) + { + return false; + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object + @return whether object creation completed + */ + bool get_msgpack_object(const std::size_t len) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len))) + { + return false; + } + + string_t key; + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!get_msgpack_string(key) || !sax->key(key))) + { + return false; + } + + if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal())) + { + return false; + } + key.clear(); + } + + return sax->end_object(); + } + + //////////// + // UBJSON // + //////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether a valid UBJSON value was passed to the SAX parser + */ + bool parse_ubjson_internal(const bool get_char = true) + { + return get_ubjson_value(get_char ? get_ignore_noop() : current); + } + + /*! + @brief reads a UBJSON string + + This function is either called after reading the 'S' byte explicitly + indicating a string, or in case of an object key where the 'S' byte can be + left out. + + @param[out] result created string + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether string creation completed + */ + bool get_ubjson_string(string_t& result, const bool get_char = true) + { + if (get_char) + { + get(); // TODO(niels): may we ignore N here? + } + + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + + switch (current) + { + case 'U': + { + std::uint8_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'i': + { + std::int8_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'I': + { + std::int16_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'l': + { + std::int32_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + case 'L': + { + std::int64_t len{}; + return get_number(input_format_t::ubjson, len) && get_string(input_format_t::ubjson, len, result); + } + + default: + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L); last byte: 0x" + last_token, "string"))); + } + } + + /*! + @param[out] result determined size + @return whether size determination completed + */ + bool get_ubjson_size_value(std::size_t& result) + { + switch (get_ignore_noop()) + { + case 'U': + { + std::uint8_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'i': + { + std::int8_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'I': + { + std::int16_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'l': + { + std::int32_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + case 'L': + { + std::int64_t number{}; + if (JSON_HEDLEY_UNLIKELY(!get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast(number); + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L) after '#'; last byte: 0x" + last_token, "size"))); + } + } + } + + /*! + @brief determine the type and size for a container + + In the optimized UBJSON format, a type and a size can be provided to allow + for a more compact representation. + + @param[out] result pair of the size and the type + + @return whether pair creation completed + */ + bool get_ubjson_size_type(std::pair& result) + { + result.first = string_t::npos; // size + result.second = 0; // type + + get_ignore_noop(); + + if (current == '$') + { + result.second = get(); // must not ignore 'N', because 'N' maybe the type + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "type"))) + { + return false; + } + + get_ignore_noop(); + if (JSON_HEDLEY_UNLIKELY(current != '#')) + { + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "expected '#' after type information; last byte: 0x" + last_token, "size"))); + } + + return get_ubjson_size_value(result.first); + } + + if (current == '#') + { + return get_ubjson_size_value(result.first); + } + + return true; + } + + /*! + @param prefix the previously read or set type prefix + @return whether value creation completed + */ + bool get_ubjson_value(const char_int_type prefix) + { + switch (prefix) + { + case std::char_traits::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true + return sax->boolean(true); + case 'F': // false + return sax->boolean(false); + + case 'Z': // null + return sax->null(); + + case 'U': + { + std::uint8_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_unsigned(number); + } + + case 'i': + { + std::int8_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'I': + { + std::int16_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'l': + { + std::int32_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'L': + { + std::int64_t number{}; + return get_number(input_format_t::ubjson, number) && sax->number_integer(number); + } + + case 'd': + { + float number{}; + return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast(number), ""); + } + + case 'D': + { + double number{}; + return get_number(input_format_t::ubjson, number) && sax->number_float(static_cast(number), ""); + } + + case 'H': + { + return get_ubjson_high_precision_number(); + } + + case 'C': // char + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "char"))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(current > 127)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "byte after 'C' must be in range 0x00..0x7F; last byte: 0x" + last_token, "char"))); + } + string_t s(1, static_cast(current)); + return sax->string(s); + } + + case 'S': // string + { + string_t s; + return get_ubjson_string(s) && sax->string(s); + } + + case '[': // array + return get_ubjson_array(); + + case '{': // object + return get_ubjson_object(); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @return whether array creation completed + */ + bool get_ubjson_array() + { + std::pair size_and_type; + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type))) + { + return false; + } + + if (size_and_type.first != string_t::npos) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + if (size_and_type.second != 'N') + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second))) + { + return false; + } + } + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + } + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + while (current != ']') + { + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal(false))) + { + return false; + } + get_ignore_noop(); + } + } + + return sax->end_array(); + } + + /*! + @return whether object creation completed + */ + bool get_ubjson_object() + { + std::pair size_and_type; + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type))) + { + return false; + } + + string_t key; + if (size_and_type.first != string_t::npos) + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second))) + { + return false; + } + key.clear(); + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + key.clear(); + } + } + } + else + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + while (current != '}') + { + if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key, false) || !sax->key(key))) + { + return false; + } + if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal())) + { + return false; + } + get_ignore_noop(); + key.clear(); + } + } + + return sax->end_object(); + } + + // Note, no reader for UBJSON binary types is implemented because they do + // not exist + + bool get_ubjson_high_precision_number() + { + // get size of following number string + std::size_t size{}; + auto res = get_ubjson_size_value(size); + if (JSON_HEDLEY_UNLIKELY(!res)) + { + return res; + } + + // get number string + std::vector number_vector; + for (std::size_t i = 0; i < size; ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::ubjson, "number"))) + { + return false; + } + number_vector.push_back(static_cast(current)); + } + + // parse number string + auto number_ia = detail::input_adapter(std::forward(number_vector)); + auto number_lexer = detail::lexer(std::move(number_ia), false); + const auto result_number = number_lexer.scan(); + const auto number_string = number_lexer.get_token_string(); + const auto result_remainder = number_lexer.scan(); + + using token_type = typename detail::lexer_base::token_type; + + if (JSON_HEDLEY_UNLIKELY(result_remainder != token_type::end_of_input)) + { + return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read, exception_message(input_format_t::ubjson, "invalid number text: " + number_lexer.get_token_string(), "high-precision number"))); + } + + switch (result_number) + { + case token_type::value_integer: + return sax->number_integer(number_lexer.get_number_integer()); + case token_type::value_unsigned: + return sax->number_unsigned(number_lexer.get_number_unsigned()); + case token_type::value_float: + return sax->number_float(number_lexer.get_number_float(), std::move(number_string)); + default: + return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read, exception_message(input_format_t::ubjson, "invalid number text: " + number_lexer.get_token_string(), "high-precision number"))); + } + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /*! + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued + `std::char_traits::eof()` in that case. + + @return character read from the input + */ + char_int_type get() + { + ++chars_read; + return current = ia.get_character(); + } + + /*! + @return character read from the input after ignoring all 'N' entries + */ + char_int_type get_ignore_noop() + { + do + { + get(); + } + while (current == 'N'); + + return current; + } + + /* + @brief read a number from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[out] result number of type @a NumberType + + @return whether conversion completed + + @note This function needs to respect the system's endianess, because + bytes in CBOR, MessagePack, and UBJSON are stored in network order + (big endian) and therefore need reordering on little endian systems. + */ + template + bool get_number(const input_format_t format, NumberType& result) + { + // step 1: read input into array with system's byte order + std::array vec; + for (std::size_t i = 0; i < sizeof(NumberType); ++i) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number"))) + { + return false; + } + + // reverse byte order prior to conversion if necessary + if (is_little_endian != InputIsLittleEndian) + { + vec[sizeof(NumberType) - i - 1] = static_cast(current); + } + else + { + vec[i] = static_cast(current); // LCOV_EXCL_LINE + } + } + + // step 2: convert array into number of type T and return + std::memcpy(&result, vec.data(), sizeof(NumberType)); + return true; + } + + /*! + @brief create a string by reading characters from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[in] len number of characters to read + @param[out] result string created by reading @a len bytes + + @return whether string creation completed + + @note We can not reserve @a len bytes for the result, because @a len + may be too large. Usually, @ref unexpect_eof() detects the end of + the input before we run out of string memory. + */ + template + bool get_string(const input_format_t format, + const NumberType len, + string_t& result) + { + bool success = true; + for (NumberType i = 0; i < len; i++) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "string"))) + { + success = false; + break; + } + result.push_back(static_cast(current)); + }; + return success; + } + + /*! + @brief create a byte array by reading bytes from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[in] len number of bytes to read + @param[out] result byte array created by reading @a len bytes + + @return whether byte array creation completed + + @note We can not reserve @a len bytes for the result, because @a len + may be too large. Usually, @ref unexpect_eof() detects the end of + the input before we run out of memory. + */ + template + bool get_binary(const input_format_t format, + const NumberType len, + binary_t& result) + { + bool success = true; + for (NumberType i = 0; i < len; i++) + { + get(); + if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "binary"))) + { + success = false; + break; + } + result.push_back(static_cast(current)); + } + return success; + } + + /*! + @param[in] format the current format (for diagnostics) + @param[in] context further context information (for diagnostics) + @return whether the last read character is not EOF + */ + JSON_HEDLEY_NON_NULL(3) + bool unexpect_eof(const input_format_t format, const char* context) const + { + if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) + { + return sax->parse_error(chars_read, "", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context))); + } + return true; + } + + /*! + @return a string representation of the last read byte + */ + std::string get_token_string() const + { + std::array cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast(current)); + return std::string{cr.data()}; + } + + /*! + @param[in] format the current format + @param[in] detail a detailed error message + @param[in] context further context information + @return a message string to use in the parse_error exceptions + */ + std::string exception_message(const input_format_t format, + const std::string& detail, + const std::string& context) const + { + std::string error_msg = "syntax error while parsing "; + + switch (format) + { + case input_format_t::cbor: + error_msg += "CBOR"; + break; + + case input_format_t::msgpack: + error_msg += "MessagePack"; + break; + + case input_format_t::ubjson: + error_msg += "UBJSON"; + break; + + case input_format_t::bson: + error_msg += "BSON"; + break; + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + + return error_msg + " " + context + ": " + detail; + } + + private: + /// input adapter + InputAdapterType ia; + + /// the current character + char_int_type current = std::char_traits::eof(); + + /// the number of characters read + std::size_t chars_read = 0; + + /// whether we can assume little endianess + const bool is_little_endian = little_endianess(); + + /// the SAX parser + json_sax_t* sax = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include // isfinite +#include // uint8_t +#include // function +#include // string +#include // move +#include // vector + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +//////////// +// parser // +//////////// + +enum class parse_event_t : uint8_t +{ + /// the parser read `{` and started to process a JSON object + object_start, + /// the parser read `}` and finished processing a JSON object + object_end, + /// the parser read `[` and started to process a JSON array + array_start, + /// the parser read `]` and finished processing a JSON array + array_end, + /// the parser read a key of a value in an object + key, + /// the parser finished reading a JSON value + value +}; + +template +using parser_callback_t = + std::function; + +/*! +@brief syntax analysis + +This class implements a recursive descent parser. +*/ +template +class parser +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using lexer_t = lexer; + using token_type = typename lexer_t::token_type; + + public: + /// a parser reading from an input adapter + explicit parser(InputAdapterType&& adapter, + const parser_callback_t cb = nullptr, + const bool allow_exceptions_ = true, + const bool skip_comments = false) + : callback(cb) + , m_lexer(std::move(adapter), skip_comments) + , allow_exceptions(allow_exceptions_) + { + // read first token + get_token(); + } + + /*! + @brief public parser interface + + @param[in] strict whether to expect the last token to be EOF + @param[in,out] result parsed JSON value + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + */ + void parse(const bool strict, BasicJsonType& result) + { + if (callback) + { + json_sax_dom_callback_parser sdp(result, callback, allow_exceptions); + sax_parse_internal(&sdp); + result.assert_invariant(); + + // in strict mode, input must be completely read + if (strict && (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + + // set top-level value to null if it was discarded by the callback + // function + if (result.is_discarded()) + { + result = nullptr; + } + } + else + { + json_sax_dom_parser sdp(result, allow_exceptions); + sax_parse_internal(&sdp); + result.assert_invariant(); + + // in strict mode, input must be completely read + if (strict && (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + } + } + + /*! + @brief public accept interface + + @param[in] strict whether to expect the last token to be EOF + @return whether the input is a proper JSON text + */ + bool accept(const bool strict = true) + { + json_sax_acceptor sax_acceptor; + return sax_parse(&sax_acceptor, strict); + } + + template + JSON_HEDLEY_NON_NULL(2) + bool sax_parse(SAX* sax, const bool strict = true) + { + (void)detail::is_sax_static_asserts {}; + const bool result = sax_parse_internal(sax); + + // strict mode: next byte must be EOF + if (result && strict && (get_token() != token_type::end_of_input)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + return result; + } + + private: + template + JSON_HEDLEY_NON_NULL(2) + bool sax_parse_internal(SAX* sax) + { + // stack to remember the hierarchy of structured values we are parsing + // true = array; false = object + std::vector states; + // value to avoid a goto (see comment where set to true) + bool skip_to_state_evaluation = false; + + while (true) + { + if (!skip_to_state_evaluation) + { + // invariant: get_token() was called before each iteration + switch (last_token) + { + case token_type::begin_object: + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_object(std::size_t(-1)))) + { + return false; + } + + // closing } -> we are done + if (get_token() == token_type::end_object) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_object())) + { + return false; + } + break; + } + + // parse key + if (JSON_HEDLEY_UNLIKELY(last_token != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::value_string, "object key"))); + } + if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::name_separator, "object separator"))); + } + + // remember we are now inside an object + states.push_back(false); + + // parse values + get_token(); + continue; + } + + case token_type::begin_array: + { + if (JSON_HEDLEY_UNLIKELY(!sax->start_array(std::size_t(-1)))) + { + return false; + } + + // closing ] -> we are done + if (get_token() == token_type::end_array) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_array())) + { + return false; + } + break; + } + + // remember we are now inside an array + states.push_back(true); + + // parse values (no need to call get_token) + continue; + } + + case token_type::value_float: + { + const auto res = m_lexer.get_number_float(); + + if (JSON_HEDLEY_UNLIKELY(!std::isfinite(res))) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + out_of_range::create(406, "number overflow parsing '" + m_lexer.get_token_string() + "'")); + } + + if (JSON_HEDLEY_UNLIKELY(!sax->number_float(res, m_lexer.get_string()))) + { + return false; + } + + break; + } + + case token_type::literal_false: + { + if (JSON_HEDLEY_UNLIKELY(!sax->boolean(false))) + { + return false; + } + break; + } + + case token_type::literal_null: + { + if (JSON_HEDLEY_UNLIKELY(!sax->null())) + { + return false; + } + break; + } + + case token_type::literal_true: + { + if (JSON_HEDLEY_UNLIKELY(!sax->boolean(true))) + { + return false; + } + break; + } + + case token_type::value_integer: + { + if (JSON_HEDLEY_UNLIKELY(!sax->number_integer(m_lexer.get_number_integer()))) + { + return false; + } + break; + } + + case token_type::value_string: + { + if (JSON_HEDLEY_UNLIKELY(!sax->string(m_lexer.get_string()))) + { + return false; + } + break; + } + + case token_type::value_unsigned: + { + if (JSON_HEDLEY_UNLIKELY(!sax->number_unsigned(m_lexer.get_number_unsigned()))) + { + return false; + } + break; + } + + case token_type::parse_error: + { + // using "uninitialized" to avoid "expected" message + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::uninitialized, "value"))); + } + + default: // the last token was unexpected + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::literal_or_value, "value"))); + } + } + } + else + { + skip_to_state_evaluation = false; + } + + // we reached this line after we successfully parsed a value + if (states.empty()) + { + // empty stack: we reached the end of the hierarchy: done + return true; + } + + if (states.back()) // array + { + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse a new value + get_token(); + continue; + } + + // closing ] + if (JSON_HEDLEY_LIKELY(last_token == token_type::end_array)) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_array())) + { + return false; + } + + // We are done with this array. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + JSON_ASSERT(!states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_array, "array"))); + } + else // object + { + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse key + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::value_string, "object key"))); + } + + if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::name_separator, "object separator"))); + } + + // parse values + get_token(); + continue; + } + + // closing } + if (JSON_HEDLEY_LIKELY(last_token == token_type::end_object)) + { + if (JSON_HEDLEY_UNLIKELY(!sax->end_object())) + { + return false; + } + + // We are done with this object. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + JSON_ASSERT(!states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_object, "object"))); + } + } + } + + /// get next token from lexer + token_type get_token() + { + return last_token = m_lexer.scan(); + } + + std::string exception_message(const token_type expected, const std::string& context) + { + std::string error_msg = "syntax error "; + + if (!context.empty()) + { + error_msg += "while parsing " + context + " "; + } + + error_msg += "- "; + + if (last_token == token_type::parse_error) + { + error_msg += std::string(m_lexer.get_error_message()) + "; last read: '" + + m_lexer.get_token_string() + "'"; + } + else + { + error_msg += "unexpected " + std::string(lexer_t::token_type_name(last_token)); + } + + if (expected != token_type::uninitialized) + { + error_msg += "; expected " + std::string(lexer_t::token_type_name(expected)); + } + + return error_msg; + } + + private: + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + token_type last_token = token_type::uninitialized; + /// the lexer + lexer_t m_lexer; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +// #include + + +#include // ptrdiff_t +#include // numeric_limits + +namespace nlohmann +{ +namespace detail +{ +/* +@brief an iterator for primitive JSON types + +This class models an iterator for primitive JSON types (boolean, number, +string). It's only purpose is to allow the iterator/const_iterator classes +to "iterate" over primitive values. Internally, the iterator is modeled by +a `difference_type` variable. Value begin_value (`0`) models the begin, +end_value (`1`) models past the end. +*/ +class primitive_iterator_t +{ + private: + using difference_type = std::ptrdiff_t; + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; + + /// iterator as signed integer type + difference_type m_it = (std::numeric_limits::min)(); + + public: + constexpr difference_type get_value() const noexcept + { + return m_it; + } + + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } + + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } + + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return m_it == begin_value; + } + + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return m_it == end_value; + } + + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } + + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } + + primitive_iterator_t operator+(difference_type n) noexcept + { + auto result = *this; + result += n; + return result; + } + + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } + + primitive_iterator_t& operator++() noexcept + { + ++m_it; + return *this; + } + + primitive_iterator_t const operator++(int) noexcept + { + auto result = *this; + ++m_it; + return result; + } + + primitive_iterator_t& operator--() noexcept + { + --m_it; + return *this; + } + + primitive_iterator_t const operator--(int) noexcept + { + auto result = *this; + --m_it; + return result; + } + + primitive_iterator_t& operator+=(difference_type n) noexcept + { + m_it += n; + return *this; + } + + primitive_iterator_t& operator-=(difference_type n) noexcept + { + m_it -= n; + return *this; + } +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/*! +@brief an iterator value + +@note This structure could easily be a union, but MSVC currently does not allow +unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. +*/ +template struct internal_iterator +{ + /// iterator for JSON objects + typename BasicJsonType::object_t::iterator object_iterator {}; + /// iterator for JSON arrays + typename BasicJsonType::array_t::iterator array_iterator {}; + /// generic iterator for all other types + primitive_iterator_t primitive_iterator {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include + + +#include // iterator, random_access_iterator_tag, bidirectional_iterator_tag, advance, next +#include // conditional, is_const, remove_const + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +// forward declare, to be able to friend it later on +template class iteration_proxy; +template class iteration_proxy_value; + +/*! +@brief a template for a bidirectional iterator for the @ref basic_json class +This class implements a both iterators (iterator and const_iterator) for the +@ref basic_json class. +@note An iterator is called *initialized* when a pointer to a JSON value has + been set (e.g., by a constructor or a copy assignment). If the iterator is + default-constructed, it is *uninitialized* and most methods are undefined. + **The library uses assertions to detect calls on uninitialized iterators.** +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +@since version 1.0.0, simplified in version 2.0.9, change to bidirectional + iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593) +*/ +template +class iter_impl +{ + /// allow basic_json to access private members + friend iter_impl::value, typename std::remove_const::type, const BasicJsonType>::type>; + friend BasicJsonType; + friend iteration_proxy; + friend iteration_proxy_value; + + using object_t = typename BasicJsonType::object_t; + using array_t = typename BasicJsonType::array_t; + // make sure BasicJsonType is basic_json or const basic_json + static_assert(is_basic_json::type>::value, + "iter_impl only accepts (const) basic_json"); + + public: + + /// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. + /// The C++ Standard has never required user-defined iterators to derive from std::iterator. + /// A user-defined iterator should provide publicly accessible typedefs named + /// iterator_category, value_type, difference_type, pointer, and reference. + /// Note that value_type is required to be non-const, even for constant iterators. + using iterator_category = std::bidirectional_iterator_tag; + + /// the type of the values when the iterator is dereferenced + using value_type = typename BasicJsonType::value_type; + /// a type to represent differences between iterators + using difference_type = typename BasicJsonType::difference_type; + /// defines a pointer to the type iterated over (value_type) + using pointer = typename std::conditional::value, + typename BasicJsonType::const_pointer, + typename BasicJsonType::pointer>::type; + /// defines a reference to the type iterated over (value_type) + using reference = + typename std::conditional::value, + typename BasicJsonType::const_reference, + typename BasicJsonType::reference>::type; + + /// default constructor + iter_impl() = default; + + /*! + @brief constructor for a given JSON instance + @param[in] object pointer to a JSON object for this iterator + @pre object != nullptr + @post The iterator is initialized; i.e. `m_object != nullptr`. + */ + explicit iter_impl(pointer object) noexcept : m_object(object) + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = typename object_t::iterator(); + break; + } + + case value_t::array: + { + m_it.array_iterator = typename array_t::iterator(); + break; + } + + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; + } + } + } + + /*! + @note The conventional copy constructor and copy assignment are implicitly + defined. Combined with the following converting constructor and + assignment, they support: (1) copy from iterator to iterator, (2) + copy from const iterator to const iterator, and (3) conversion from + iterator to const iterator. However conversion from const iterator + to iterator is not defined. + */ + + /*! + @brief const copy constructor + @param[in] other const iterator to copy from + @note This copy constructor had to be defined explicitly to circumvent a bug + occurring on msvc v19.0 compiler (VS 2015) debug build. For more + information refer to: https://github.com/nlohmann/json/issues/1608 + */ + iter_impl(const iter_impl& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief converting assignment + @param[in] other const iterator to copy from + @return const/non-const iterator + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(const iter_impl& other) noexcept + { + m_object = other.m_object; + m_it = other.m_it; + return *this; + } + + /*! + @brief converting constructor + @param[in] other non-const iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl::type>& other) noexcept + : m_object(other.m_object), m_it(other.m_it) + {} + + /*! + @brief converting assignment + @param[in] other non-const iterator to copy from + @return const/non-const iterator + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(const iter_impl::type>& other) noexcept + { + m_object = other.m_object; + m_it = other.m_it; + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } + + case value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case value_t::array: + { + JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } + + case value_t::array: + { + JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } + + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) + { + return m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator++(int) + { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator--(int) + { + auto result = *this; + --(*this); + return result; + } + + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, -1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, -1); + break; + } + + default: + { + --m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers")); + } + + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + return (m_it.object_iterator == other.m_it.object_iterator); + + case value_t::array: + return (m_it.array_iterator == other.m_it.array_iterator); + + default: + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const + { + return !operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers")); + } + + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(213, "cannot compare order of object iterators")); + + case value_t::array: + return (m_it.array_iterator < other.m_it.array_iterator); + + default: + return (m_it.primitive_iterator < other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const + { + return !other.operator < (*this); + } + + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return !operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return !operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators")); + + case value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief addition of distance and iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + friend iter_impl operator+(difference_type i, const iter_impl& it) + { + auto result = it; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators")); + + case value_t::array: + return m_it.array_iterator - other.m_it.array_iterator; + + default: + return m_it.primitive_iterator - other.m_it.primitive_iterator; + } + } + + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + JSON_ASSERT(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(208, "cannot use operator[] for object iterators")); + + case value_t::array: + return *std::next(m_it.array_iterator, n); + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + + default: + { + if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.get_value() == -n)) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + const typename object_t::key_type& key() const + { + JSON_ASSERT(m_object != nullptr); + + if (JSON_HEDLEY_LIKELY(m_object->is_object())) + { + return m_it.object_iterator->first; + } + + JSON_THROW(invalid_iterator::create(207, "cannot use key() for non-object iterators")); + } + + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } + + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator::type> m_it {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // ptrdiff_t +#include // reverse_iterator +#include // declval + +namespace nlohmann +{ +namespace detail +{ +////////////////////// +// reverse_iterator // +////////////////////// + +/*! +@brief a template for a reverse iterator class + +@tparam Base the base iterator type to reverse. Valid types are @ref +iterator (to create @ref reverse_iterator) and @ref const_iterator (to +create @ref const_reverse_iterator). + +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator): + It is possible to write to the pointed-to element (only if @a Base is + @ref iterator). + +@since version 1.0.0 +*/ +template +class json_reverse_iterator : public std::reverse_iterator +{ + public: + using difference_type = std::ptrdiff_t; + /// shortcut to the reverse iterator adapter + using base_iterator = std::reverse_iterator; + /// the reference type for the pointed-to element + using reference = typename Base::reference; + + /// create reverse iterator from iterator + explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept + : base_iterator(it) {} + + /// create reverse iterator from base class + explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} + + /// post-increment (it++) + json_reverse_iterator const operator++(int) + { + return static_cast(base_iterator::operator++(1)); + } + + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + return static_cast(base_iterator::operator++()); + } + + /// post-decrement (it--) + json_reverse_iterator const operator--(int) + { + return static_cast(base_iterator::operator--(1)); + } + + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + return static_cast(base_iterator::operator--()); + } + + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + return static_cast(base_iterator::operator+=(i)); + } + + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + return static_cast(base_iterator::operator+(i)); + } + + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + return static_cast(base_iterator::operator-(i)); + } + + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return base_iterator(*this) - base_iterator(other); + } + + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } + + /// return the key of an object iterator + auto key() const -> decltype(std::declval().key()) + { + auto it = --this->base(); + return it.key(); + } + + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // all_of +#include // isdigit +#include // max +#include // accumulate +#include // string +#include // move +#include // vector + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +template +class json_pointer +{ + // allow basic_json to access private members + NLOHMANN_BASIC_JSON_TPL_DECLARATION + friend class basic_json; + + public: + /*! + @brief create JSON pointer + + Create a JSON pointer according to the syntax described in + [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3). + + @param[in] s string representing the JSON pointer; if omitted, the empty + string is assumed which references the whole JSON value + + @throw parse_error.107 if the given JSON pointer @a s is nonempty and does + not begin with a slash (`/`); see example below + + @throw parse_error.108 if a tilde (`~`) in the given JSON pointer @a s is + not followed by `0` (representing `~`) or `1` (representing `/`); see + example below + + @liveexample{The example shows the construction several valid JSON pointers + as well as the exceptional behavior.,json_pointer} + + @since version 2.0.0 + */ + explicit json_pointer(const std::string& s = "") + : reference_tokens(split(s)) + {} + + /*! + @brief return a string representation of the JSON pointer + + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode + + @return a string representation of the JSON pointer + + @liveexample{The example shows the result of `to_string`.,json_pointer__to_string} + + @since version 2.0.0 + */ + std::string to_string() const + { + return std::accumulate(reference_tokens.begin(), reference_tokens.end(), + std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + escape(b); + }); + } + + /// @copydoc to_string() + operator std::string() const + { + return to_string(); + } + + /*! + @brief append another JSON pointer at the end of this JSON pointer + + @param[in] ptr JSON pointer to append + @return JSON pointer with @a ptr appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::string) to append a reference token + @sa @ref operator/=(std::size_t) to append an array index + @sa @ref operator/(const json_pointer&, const json_pointer&) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(const json_pointer& ptr) + { + reference_tokens.insert(reference_tokens.end(), + ptr.reference_tokens.begin(), + ptr.reference_tokens.end()); + return *this; + } + + /*! + @brief append an unescaped reference token at the end of this JSON pointer + + @param[in] token reference token to append + @return JSON pointer with @a token appended without escaping @a token + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + @sa @ref operator/=(std::size_t) to append an array index + @sa @ref operator/(const json_pointer&, std::size_t) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::string token) + { + push_back(std::move(token)); + return *this; + } + + /*! + @brief append an array index at the end of this JSON pointer + + @param[in] array_idx array index to append + @return JSON pointer with @a array_idx appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + @sa @ref operator/=(std::string) to append a reference token + @sa @ref operator/(const json_pointer&, std::string) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::size_t array_idx) + { + return *this /= std::to_string(array_idx); + } + + /*! + @brief create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer + + @param[in] lhs JSON pointer + @param[in] rhs JSON pointer + @return a new JSON pointer with @a rhs appended to @a lhs + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a lhs and @a rhs. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& lhs, + const json_pointer& rhs) + { + return json_pointer(lhs) /= rhs; + } + + /*! + @brief create a new JSON pointer by appending the unescaped token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] token reference token + @return a new JSON pointer with unescaped @a token appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::string) to append a reference token + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::string token) + { + return json_pointer(ptr) /= std::move(token); + } + + /*! + @brief create a new JSON pointer by appending the array-index-token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] array_idx array index + @return a new JSON pointer with @a array_idx appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::size_t) to append an array index + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::size_t array_idx) + { + return json_pointer(ptr) /= array_idx; + } + + /*! + @brief returns the parent of this JSON pointer + + @return parent of this JSON pointer; in case this JSON pointer is the root, + the root itself is returned + + @complexity Linear in the length of the JSON pointer. + + @liveexample{The example shows the result of `parent_pointer` for different + JSON Pointers.,json_pointer__parent_pointer} + + @since version 3.6.0 + */ + json_pointer parent_pointer() const + { + if (empty()) + { + return *this; + } + + json_pointer res = *this; + res.pop_back(); + return res; + } + + /*! + @brief remove last reference token + + @pre not `empty()` + + @liveexample{The example shows the usage of `pop_back`.,json_pointer__pop_back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + void pop_back() + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + reference_tokens.pop_back(); + } + + /*! + @brief return last reference token + + @pre not `empty()` + @return last reference token + + @liveexample{The example shows the usage of `back`.,json_pointer__back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + const std::string& back() const + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + return reference_tokens.back(); + } + + /*! + @brief append an unescaped token at the end of the reference pointer + + @param[in] token token to add + + @complexity Amortized constant. + + @liveexample{The example shows the result of `push_back` for different + JSON Pointers.,json_pointer__push_back} + + @since version 3.6.0 + */ + void push_back(const std::string& token) + { + reference_tokens.push_back(token); + } + + /// @copydoc push_back(const std::string&) + void push_back(std::string&& token) + { + reference_tokens.push_back(std::move(token)); + } + + /*! + @brief return whether pointer points to the root document + + @return true iff the JSON pointer points to the root document + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example shows the result of `empty` for different JSON + Pointers.,json_pointer__empty} + + @since version 3.6.0 + */ + bool empty() const noexcept + { + return reference_tokens.empty(); + } + + private: + /*! + @param[in] s reference token to be converted into an array index + + @return integer representation of @a s + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index begins not with a digit + @throw out_of_range.404 if string @a s could not be converted to an integer + @throw out_of_range.410 if an array index exceeds size_type + */ + static typename BasicJsonType::size_type array_index(const std::string& s) + { + using size_type = typename BasicJsonType::size_type; + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && s[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, + "array index '" + s + + "' must not begin with '0'")); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && !(s[0] >= '1' && s[0] <= '9'))) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + s + "' is not a number")); + } + + std::size_t processed_chars = 0; + unsigned long long res = 0; + JSON_TRY + { + res = std::stoull(s, &processed_chars); + } + JSON_CATCH(std::out_of_range&) + { + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + s + "'")); + } + + // check if the string was completely read + if (JSON_HEDLEY_UNLIKELY(processed_chars != s.size())) + { + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + s + "'")); + } + + // only triggered on special platforms (like 32bit), see also + // https://github.com/nlohmann/json/pull/2203 + if (res >= static_cast((std::numeric_limits::max)())) + { + JSON_THROW(detail::out_of_range::create(410, "array index " + s + " exceeds size_type")); // LCOV_EXCL_LINE + } + + return static_cast(res); + } + + json_pointer top() const + { + if (JSON_HEDLEY_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; + return result; + } + + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + + @throw parse_error.109 if array index is not a number + @throw type_error.313 if value cannot be unflattened + */ + BasicJsonType& get_and_create(BasicJsonType& j) const + { + auto result = &j; + + // in case no reference tokens exist, return a reference to the JSON value + // j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) + { + switch (result->type()) + { + case detail::value_t::null: + { + if (reference_token == "0") + { + // start a new array if reference token is 0 + result = &result->operator[](0); + } + else + { + // start a new object otherwise + result = &result->operator[](reference_token); + } + break; + } + + case detail::value_t::object: + { + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + // create an entry in the array + result = &result->operator[](array_index(reference_token)); + break; + } + + /* + The following code is only reached if there exists a reference + token _and_ the current value is primitive. In this case, we have + an error situation, because primitive values may only occur as + single value; that is, with an empty list of reference tokens. + */ + default: + JSON_THROW(detail::type_error::create(313, "invalid value to unflatten")); + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries to + create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_unchecked(BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->is_null()) + { + // check if reference token is a number + const bool nums = + std::all_of(reference_token.begin(), reference_token.end(), + [](const unsigned char x) + { + return std::isdigit(x); + }); + + // change value to array for numbers or "-" or to object otherwise + *ptr = (nums || reference_token == "-") + ? detail::value_t::array + : detail::value_t::object; + } + + switch (ptr->type()) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (reference_token == "-") + { + // explicitly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); + } + else + { + // convert array index to number; unchecked access + ptr = &ptr->operator[](array_index(reference_token)); + } + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_checked(BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // note: at performs range check + ptr = &ptr->at(array_index(reference_token)); + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_unchecked(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" cannot be used for const access + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // use unchecked array access + ptr = &ptr->operator[](array_index(reference_token)); + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_checked(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // note: at performs range check + ptr = &ptr->at(array_index(reference_token)); + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + */ + bool contains(const BasicJsonType* ptr) const + { + for (const auto& reference_token : reference_tokens) + { + switch (ptr->type()) + { + case detail::value_t::object: + { + if (!ptr->contains(reference_token)) + { + // we did not find the key in the object + return false; + } + + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + return false; + } + if (JSON_HEDLEY_UNLIKELY(reference_token.size() == 1 && !("0" <= reference_token && reference_token <= "9"))) + { + // invalid char + return false; + } + if (JSON_HEDLEY_UNLIKELY(reference_token.size() > 1)) + { + if (JSON_HEDLEY_UNLIKELY(!('1' <= reference_token[0] && reference_token[0] <= '9'))) + { + // first char should be between '1' and '9' + return false; + } + for (std::size_t i = 1; i < reference_token.size(); i++) + { + if (JSON_HEDLEY_UNLIKELY(!('0' <= reference_token[i] && reference_token[i] <= '9'))) + { + // other char should be between '0' and '9' + return false; + } + } + } + + const auto idx = array_index(reference_token); + if (idx >= ptr->size()) + { + // index out of range + return false; + } + + ptr = &ptr->operator[](idx); + break; + } + + default: + { + // we do not expect primitive values if there is still a + // reference token to process + return false; + } + } + } + + // no reference token left means we found a primitive value + return true; + } + + /*! + @brief split the string input to reference tokens + + @note This function is only called by the json_pointer constructor. + All exceptions below are documented there. + + @throw parse_error.107 if the pointer is not empty or begins with '/' + @throw parse_error.108 if character '~' is not followed by '0' or '1' + */ + static std::vector split(const std::string& reference_string) + { + std::vector result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { + return result; + } + + // check if nonempty reference string begins with slash + if (JSON_HEDLEY_UNLIKELY(reference_string[0] != '/')) + { + JSON_THROW(detail::parse_error::create(107, 1, + "JSON pointer must be empty or begin with '/' - was: '" + + reference_string + "'")); + } + + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character + std::size_t slash = reference_string.find_first_of('/', 1), + // set the beginning of the first reference token + start = 1; + // we can stop if start == 0 (if slash == std::string::npos) + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = (slash == std::string::npos) ? 0 : slash + 1, + // find next slash + slash = reference_string.find_first_of('/', start)) + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); + + // check reference tokens are properly escaped + for (std::size_t pos = reference_token.find_first_of('~'); + pos != std::string::npos; + pos = reference_token.find_first_of('~', pos + 1)) + { + JSON_ASSERT(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (JSON_HEDLEY_UNLIKELY(pos == reference_token.size() - 1 || + (reference_token[pos + 1] != '0' && + reference_token[pos + 1] != '1'))) + { + JSON_THROW(detail::parse_error::create(108, 0, "escape character '~' must be followed with '0' or '1'")); + } + } + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); + } + + return result; + } + + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. **This precondition is + enforced with an assertion.** + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, const std::string& f, + const std::string& t) + { + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} + } + + /// escape "~" to "~0" and "/" to "~1" + static std::string escape(std::string s) + { + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape "~1" to tilde and "~0" to slash (order is important!) + static void unescape(std::string& s) + { + replace_substring(s, "~1", "/"); + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const BasicJsonType& value, + BasicJsonType& result) + { + switch (value.type()) + { + case detail::value_t::array: + { + if (value.m_value.array->empty()) + { + // flatten empty array as null + result[reference_string] = nullptr; + } + else + { + // iterate array and use index as reference string + for (std::size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; + } + + case detail::value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } + } + } + + /*! + @param[in] value flattened JSON + + @return unflattened JSON + + @throw parse_error.109 if array index is not a number + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + @throw type_error.313 if value cannot be unflattened + */ + static BasicJsonType + unflatten(const BasicJsonType& value) + { + if (JSON_HEDLEY_UNLIKELY(!value.is_object())) + { + JSON_THROW(detail::type_error::create(314, "only objects can be unflattened")); + } + + BasicJsonType result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (JSON_HEDLEY_UNLIKELY(!element.second.is_primitive())) + { + JSON_THROW(detail::type_error::create(315, "values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note that if + // the JSON pointer is "" (i.e., points to the whole value), function + // get_and_create returns a reference to result itself. An assignment + // will then create a primitive value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; + } + + /*! + @brief compares two JSON pointers for equality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is equal to @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator==(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } + + /*! + @brief compares two JSON pointers for inequality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is not equal @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator!=(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return !(lhs == rhs); + } + + /// the reference tokens + std::vector reference_tokens; +}; +} // namespace nlohmann + +// #include + + +#include +#include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +template +class json_ref +{ + public: + using value_type = BasicJsonType; + + json_ref(value_type&& value) + : owned_value(std::move(value)) + , value_ref(&owned_value) + , is_rvalue(true) + {} + + json_ref(const value_type& value) + : value_ref(const_cast(&value)) + , is_rvalue(false) + {} + + json_ref(std::initializer_list init) + : owned_value(init) + , value_ref(&owned_value) + , is_rvalue(true) + {} + + template < + class... Args, + enable_if_t::value, int> = 0 > + json_ref(Args && ... args) + : owned_value(std::forward(args)...) + , value_ref(&owned_value) + , is_rvalue(true) + {} + + // class should be movable only + json_ref(json_ref&&) = default; + json_ref(const json_ref&) = delete; + json_ref& operator=(const json_ref&) = delete; + json_ref& operator=(json_ref&&) = delete; + ~json_ref() = default; + + value_type moved_or_copied() const + { + if (is_rvalue) + { + return std::move(*value_ref); + } + return *value_ref; + } + + value_type const& operator*() const + { + return *static_cast(value_ref); + } + + value_type const* operator->() const + { + return static_cast(value_ref); + } + + private: + mutable value_type owned_value = nullptr; + value_type* value_ref = nullptr; + const bool is_rvalue = true; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + + +#include // reverse +#include // array +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // memcpy +#include // numeric_limits +#include // string +#include // isnan, isinf + +// #include + +// #include + +// #include + + +#include // copy +#include // size_t +#include // streamsize +#include // back_inserter +#include // shared_ptr, make_shared +#include // basic_ostream +#include // basic_string +#include // vector +// #include + + +namespace nlohmann +{ +namespace detail +{ +/// abstract output adapter interface +template struct output_adapter_protocol +{ + virtual void write_character(CharType c) = 0; + virtual void write_characters(const CharType* s, std::size_t length) = 0; + virtual ~output_adapter_protocol() = default; +}; + +/// a type to simplify interfaces +template +using output_adapter_t = std::shared_ptr>; + +/// output adapter for byte vectors +template +class output_vector_adapter : public output_adapter_protocol +{ + public: + explicit output_vector_adapter(std::vector& vec) noexcept + : v(vec) + {} + + void write_character(CharType c) override + { + v.push_back(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + std::copy(s, s + length, std::back_inserter(v)); + } + + private: + std::vector& v; +}; + +/// output adapter for output streams +template +class output_stream_adapter : public output_adapter_protocol +{ + public: + explicit output_stream_adapter(std::basic_ostream& s) noexcept + : stream(s) + {} + + void write_character(CharType c) override + { + stream.put(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + stream.write(s, static_cast(length)); + } + + private: + std::basic_ostream& stream; +}; + +/// output adapter for basic_string +template> +class output_string_adapter : public output_adapter_protocol +{ + public: + explicit output_string_adapter(StringType& s) noexcept + : str(s) + {} + + void write_character(CharType c) override + { + str.push_back(c); + } + + JSON_HEDLEY_NON_NULL(2) + void write_characters(const CharType* s, std::size_t length) override + { + str.append(s, length); + } + + private: + StringType& str; +}; + +template> +class output_adapter +{ + public: + output_adapter(std::vector& vec) + : oa(std::make_shared>(vec)) {} + + output_adapter(std::basic_ostream& s) + : oa(std::make_shared>(s)) {} + + output_adapter(StringType& s) + : oa(std::make_shared>(s)) {} + + operator output_adapter_t() + { + return oa; + } + + private: + output_adapter_t oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// binary writer // +/////////////////// + +/*! +@brief serialization to CBOR and MessagePack values +*/ +template +class binary_writer +{ + using string_t = typename BasicJsonType::string_t; + using binary_t = typename BasicJsonType::binary_t; + using number_float_t = typename BasicJsonType::number_float_t; + + public: + /*! + @brief create a binary writer + + @param[in] adapter output adapter to write to + */ + explicit binary_writer(output_adapter_t adapter) : oa(adapter) + { + JSON_ASSERT(oa); + } + + /*! + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + void write_bson(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + { + write_bson_object(*j.m_value.object); + break; + } + + default: + { + JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()))); + } + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_cbor(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: + { + oa->write_character(to_char_type(0xF6)); + break; + } + + case value_t::boolean: + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xF5) + : to_char_type(0xF4)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // CBOR does not differentiate between positive signed + // integers and unsigned integers. Therefore, we used the + // code from the value_t::number_unsigned case here. + if (j.m_value.number_integer <= 0x17) + { + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast(j.m_value.number_integer)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast(j.m_value.number_integer)); + } + } + else + { + // The conversions below encode the sign in the first + // byte, and the value is converted to a positive number. + const auto positive_number = -1 - j.m_value.number_integer; + if (j.m_value.number_integer >= -24) + { + write_number(static_cast(0x20 + positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x38)); + write_number(static_cast(positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x39)); + write_number(static_cast(positive_number)); + } + else if (positive_number <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x3A)); + write_number(static_cast(positive_number)); + } + else + { + oa->write_character(to_char_type(0x3B)); + write_number(static_cast(positive_number)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= 0x17) + { + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast(j.m_value.number_unsigned)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast(j.m_value.number_unsigned)); + } + break; + } + + case value_t::number_float: + { + if (std::isnan(j.m_value.number_float)) + { + // NaN is 0xf97e00 in CBOR + oa->write_character(to_char_type(0xF9)); + oa->write_character(to_char_type(0x7E)); + oa->write_character(to_char_type(0x00)); + } + else if (std::isinf(j.m_value.number_float)) + { + // Infinity is 0xf97c00, -Infinity is 0xf9fc00 + oa->write_character(to_char_type(0xf9)); + oa->write_character(j.m_value.number_float > 0 ? to_char_type(0x7C) : to_char_type(0xFC)); + oa->write_character(to_char_type(0x00)); + } + else + { + write_compact_float(j.m_value.number_float, detail::input_format_t::cbor); + } + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 0x17) + { + write_number(static_cast(0x60 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x78)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x79)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x7A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x7B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write the string + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 0x17) + { + write_number(static_cast(0x80 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x98)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x99)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x9A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x9B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_cbor(el); + } + break; + } + + case value_t::binary: + { + if (j.m_value.binary->has_subtype()) + { + write_number(static_cast(0xd8)); + write_number(j.m_value.binary->subtype()); + } + + // step 1: write control byte and the binary array size + const auto N = j.m_value.binary->size(); + if (N <= 0x17) + { + write_number(static_cast(0x40 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x58)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x59)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x5A)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0x5B)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + N); + + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 0x17) + { + write_number(static_cast(0xA0 + N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xB8)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xB9)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xBA)); + write_number(static_cast(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits::max)()) + { + oa->write_character(to_char_type(0xBB)); + write_number(static_cast(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_cbor(el.first); + write_cbor(el.second); + } + break; + } + + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_msgpack(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: // nil + { + oa->write_character(to_char_type(0xC0)); + break; + } + + case value_t::boolean: // true and false + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xC3) + : to_char_type(0xC2)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // MessagePack does not differentiate between positive + // signed integers and unsigned integers. Therefore, we used + // the code from the value_t::number_unsigned case here. + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast(j.m_value.number_integer)); + } + } + else + { + if (j.m_value.number_integer >= -32) + { + // negative fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 8 + oa->write_character(to_char_type(0xD0)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 16 + oa->write_character(to_char_type(0xD1)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 32 + oa->write_character(to_char_type(0xD2)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_value.number_integer <= (std::numeric_limits::max)()) + { + // int 64 + oa->write_character(to_char_type(0xD3)); + write_number(static_cast(j.m_value.number_integer)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast(j.m_value.number_integer)); + } + break; + } + + case value_t::number_float: + { + write_compact_float(j.m_value.number_float, detail::input_format_t::msgpack); + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 31) + { + // fixstr + write_number(static_cast(0xA0 | N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 8 + oa->write_character(to_char_type(0xD9)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 16 + oa->write_character(to_char_type(0xDA)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // str 32 + oa->write_character(to_char_type(0xDB)); + write_number(static_cast(N)); + } + + // step 2: write the string + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 15) + { + // fixarray + write_number(static_cast(0x90 | N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // array 16 + oa->write_character(to_char_type(0xDC)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // array 32 + oa->write_character(to_char_type(0xDD)); + write_number(static_cast(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_msgpack(el); + } + break; + } + + case value_t::binary: + { + // step 0: determine if the binary type has a set subtype to + // determine whether or not to use the ext or fixext types + const bool use_ext = j.m_value.binary->has_subtype(); + + // step 1: write control byte and the byte string length + const auto N = j.m_value.binary->size(); + if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type{}; + bool fixed = true; + if (use_ext) + { + switch (N) + { + case 1: + output_type = 0xD4; // fixext 1 + break; + case 2: + output_type = 0xD5; // fixext 2 + break; + case 4: + output_type = 0xD6; // fixext 4 + break; + case 8: + output_type = 0xD7; // fixext 8 + break; + case 16: + output_type = 0xD8; // fixext 16 + break; + default: + output_type = 0xC7; // ext 8 + fixed = false; + break; + } + + } + else + { + output_type = 0xC4; // bin 8 + fixed = false; + } + + oa->write_character(to_char_type(output_type)); + if (!fixed) + { + write_number(static_cast(N)); + } + } + else if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type = use_ext + ? 0xC8 // ext 16 + : 0xC5; // bin 16 + + oa->write_character(to_char_type(output_type)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + std::uint8_t output_type = use_ext + ? 0xC9 // ext 32 + : 0xC6; // bin 32 + + oa->write_character(to_char_type(output_type)); + write_number(static_cast(N)); + } + + // step 1.5: if this is an ext type, write the subtype + if (use_ext) + { + write_number(static_cast(j.m_value.binary->subtype())); + } + + // step 2: write the byte string + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + N); + + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 15) + { + // fixmap + write_number(static_cast(0x80 | (N & 0xF))); + } + else if (N <= (std::numeric_limits::max)()) + { + // map 16 + oa->write_character(to_char_type(0xDE)); + write_number(static_cast(N)); + } + else if (N <= (std::numeric_limits::max)()) + { + // map 32 + oa->write_character(to_char_type(0xDF)); + write_number(static_cast(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_msgpack(el.first); + write_msgpack(el.second); + } + break; + } + + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + @param[in] use_count whether to use '#' prefixes (optimized format) + @param[in] use_type whether to use '$' prefixes (optimized format) + @param[in] add_prefix whether prefixes need to be used for this value + */ + void write_ubjson(const BasicJsonType& j, const bool use_count, + const bool use_type, const bool add_prefix = true) + { + switch (j.type()) + { + case value_t::null: + { + if (add_prefix) + { + oa->write_character(to_char_type('Z')); + } + break; + } + + case value_t::boolean: + { + if (add_prefix) + { + oa->write_character(j.m_value.boolean + ? to_char_type('T') + : to_char_type('F')); + } + break; + } + + case value_t::number_integer: + { + write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix); + break; + } + + case value_t::number_unsigned: + { + write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix); + break; + } + + case value_t::number_float: + { + write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix); + break; + } + + case value_t::string: + { + if (add_prefix) + { + oa->write_character(to_char_type('S')); + } + write_number_with_ubjson_prefix(j.m_value.string->size(), true); + oa->write_characters( + reinterpret_cast(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + if (add_prefix) + { + oa->write_character(to_char_type('[')); + } + + bool prefix_required = true; + if (use_type && !j.m_value.array->empty()) + { + JSON_ASSERT(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin() + 1, j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.array->size(), true); + } + + for (const auto& el : *j.m_value.array) + { + write_ubjson(el, use_count, use_type, prefix_required); + } + + if (!use_count) + { + oa->write_character(to_char_type(']')); + } + + break; + } + + case value_t::binary: + { + if (add_prefix) + { + oa->write_character(to_char_type('[')); + } + + if (use_type && !j.m_value.binary->empty()) + { + JSON_ASSERT(use_count); + oa->write_character(to_char_type('$')); + oa->write_character('U'); + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.binary->size(), true); + } + + if (use_type) + { + oa->write_characters( + reinterpret_cast(j.m_value.binary->data()), + j.m_value.binary->size()); + } + else + { + for (size_t i = 0; i < j.m_value.binary->size(); ++i) + { + oa->write_character(to_char_type('U')); + oa->write_character(j.m_value.binary->data()[i]); + } + } + + if (!use_count) + { + oa->write_character(to_char_type(']')); + } + + break; + } + + case value_t::object: + { + if (add_prefix) + { + oa->write_character(to_char_type('{')); + } + + bool prefix_required = true; + if (use_type && !j.m_value.object->empty()) + { + JSON_ASSERT(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin(), j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.object->size(), true); + } + + for (const auto& el : *j.m_value.object) + { + write_number_with_ubjson_prefix(el.first.size(), true); + oa->write_characters( + reinterpret_cast(el.first.c_str()), + el.first.size()); + write_ubjson(el.second, use_count, use_type, prefix_required); + } + + if (!use_count) + { + oa->write_character(to_char_type('}')); + } + + break; + } + + default: + break; + } + } + + private: + ////////// + // BSON // + ////////// + + /*! + @return The size of a BSON document entry header, including the id marker + and the entry name size (and its null-terminator). + */ + static std::size_t calc_bson_entry_header_size(const string_t& name) + { + const auto it = name.find(static_cast(0)); + if (JSON_HEDLEY_UNLIKELY(it != BasicJsonType::string_t::npos)) + { + JSON_THROW(out_of_range::create(409, + "BSON key cannot contain code point U+0000 (at byte " + std::to_string(it) + ")")); + } + + return /*id*/ 1ul + name.size() + /*zero-terminator*/1u; + } + + /*! + @brief Writes the given @a element_type and @a name to the output adapter + */ + void write_bson_entry_header(const string_t& name, + const std::uint8_t element_type) + { + oa->write_character(to_char_type(element_type)); // boolean + oa->write_characters( + reinterpret_cast(name.c_str()), + name.size() + 1u); + } + + /*! + @brief Writes a BSON element with key @a name and boolean value @a value + */ + void write_bson_boolean(const string_t& name, + const bool value) + { + write_bson_entry_header(name, 0x08); + oa->write_character(value ? to_char_type(0x01) : to_char_type(0x00)); + } + + /*! + @brief Writes a BSON element with key @a name and double value @a value + */ + void write_bson_double(const string_t& name, + const double value) + { + write_bson_entry_header(name, 0x01); + write_number(value); + } + + /*! + @return The size of the BSON-encoded string in @a value + */ + static std::size_t calc_bson_string_size(const string_t& value) + { + return sizeof(std::int32_t) + value.size() + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and string value @a value + */ + void write_bson_string(const string_t& name, + const string_t& value) + { + write_bson_entry_header(name, 0x02); + + write_number(static_cast(value.size() + 1ul)); + oa->write_characters( + reinterpret_cast(value.c_str()), + value.size() + 1); + } + + /*! + @brief Writes a BSON element with key @a name and null value + */ + void write_bson_null(const string_t& name) + { + write_bson_entry_header(name, 0x0A); + } + + /*! + @return The size of the BSON-encoded integer @a value + */ + static std::size_t calc_bson_integer_size(const std::int64_t value) + { + return (std::numeric_limits::min)() <= value && value <= (std::numeric_limits::max)() + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and integer @a value + */ + void write_bson_integer(const string_t& name, + const std::int64_t value) + { + if ((std::numeric_limits::min)() <= value && value <= (std::numeric_limits::max)()) + { + write_bson_entry_header(name, 0x10); // int32 + write_number(static_cast(value)); + } + else + { + write_bson_entry_header(name, 0x12); // int64 + write_number(static_cast(value)); + } + } + + /*! + @return The size of the BSON-encoded unsigned integer in @a j + */ + static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept + { + return (value <= static_cast((std::numeric_limits::max)())) + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and unsigned @a value + */ + void write_bson_unsigned(const string_t& name, + const std::uint64_t value) + { + if (value <= static_cast((std::numeric_limits::max)())) + { + write_bson_entry_header(name, 0x10 /* int32 */); + write_number(static_cast(value)); + } + else if (value <= static_cast((std::numeric_limits::max)())) + { + write_bson_entry_header(name, 0x12 /* int64 */); + write_number(static_cast(value)); + } + else + { + JSON_THROW(out_of_range::create(407, "integer number " + std::to_string(value) + " cannot be represented by BSON as it does not fit int64")); + } + } + + /*! + @brief Writes a BSON element with key @a name and object @a value + */ + void write_bson_object_entry(const string_t& name, + const typename BasicJsonType::object_t& value) + { + write_bson_entry_header(name, 0x03); // object + write_bson_object(value); + } + + /*! + @return The size of the BSON-encoded array @a value + */ + static std::size_t calc_bson_array_size(const typename BasicJsonType::array_t& value) + { + std::size_t array_index = 0ul; + + const std::size_t embedded_document_size = std::accumulate(std::begin(value), std::end(value), std::size_t(0), [&array_index](std::size_t result, const typename BasicJsonType::array_t::value_type & el) + { + return result + calc_bson_element_size(std::to_string(array_index++), el); + }); + + return sizeof(std::int32_t) + embedded_document_size + 1ul; + } + + /*! + @return The size of the BSON-encoded binary array @a value + */ + static std::size_t calc_bson_binary_size(const typename BasicJsonType::binary_t& value) + { + return sizeof(std::int32_t) + value.size() + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and array @a value + */ + void write_bson_array(const string_t& name, + const typename BasicJsonType::array_t& value) + { + write_bson_entry_header(name, 0x04); // array + write_number(static_cast(calc_bson_array_size(value))); + + std::size_t array_index = 0ul; + + for (const auto& el : value) + { + write_bson_element(std::to_string(array_index++), el); + } + + oa->write_character(to_char_type(0x00)); + } + + /*! + @brief Writes a BSON element with key @a name and binary value @a value + */ + void write_bson_binary(const string_t& name, + const binary_t& value) + { + write_bson_entry_header(name, 0x05); + + write_number(static_cast(value.size())); + write_number(value.has_subtype() ? value.subtype() : std::uint8_t(0x00)); + + oa->write_characters(reinterpret_cast(value.data()), value.size()); + } + + /*! + @brief Calculates the size necessary to serialize the JSON value @a j with its @a name + @return The calculated size for the BSON document entry for @a j with the given @a name. + */ + static std::size_t calc_bson_element_size(const string_t& name, + const BasicJsonType& j) + { + const auto header_size = calc_bson_entry_header_size(name); + switch (j.type()) + { + case value_t::object: + return header_size + calc_bson_object_size(*j.m_value.object); + + case value_t::array: + return header_size + calc_bson_array_size(*j.m_value.array); + + case value_t::binary: + return header_size + calc_bson_binary_size(*j.m_value.binary); + + case value_t::boolean: + return header_size + 1ul; + + case value_t::number_float: + return header_size + 8ul; + + case value_t::number_integer: + return header_size + calc_bson_integer_size(j.m_value.number_integer); + + case value_t::number_unsigned: + return header_size + calc_bson_unsigned_size(j.m_value.number_unsigned); + + case value_t::string: + return header_size + calc_bson_string_size(*j.m_value.string); + + case value_t::null: + return header_size + 0ul; + + // LCOV_EXCL_START + default: + JSON_ASSERT(false); + return 0ul; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Serializes the JSON value @a j to BSON and associates it with the + key @a name. + @param name The name to associate with the JSON entity @a j within the + current BSON document + @return The size of the BSON entry + */ + void write_bson_element(const string_t& name, + const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + return write_bson_object_entry(name, *j.m_value.object); + + case value_t::array: + return write_bson_array(name, *j.m_value.array); + + case value_t::binary: + return write_bson_binary(name, *j.m_value.binary); + + case value_t::boolean: + return write_bson_boolean(name, j.m_value.boolean); + + case value_t::number_float: + return write_bson_double(name, j.m_value.number_float); + + case value_t::number_integer: + return write_bson_integer(name, j.m_value.number_integer); + + case value_t::number_unsigned: + return write_bson_unsigned(name, j.m_value.number_unsigned); + + case value_t::string: + return write_bson_string(name, *j.m_value.string); + + case value_t::null: + return write_bson_null(name); + + // LCOV_EXCL_START + default: + JSON_ASSERT(false); + return; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Calculates the size of the BSON serialization of the given + JSON-object @a j. + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + static std::size_t calc_bson_object_size(const typename BasicJsonType::object_t& value) + { + std::size_t document_size = std::accumulate(value.begin(), value.end(), std::size_t(0), + [](size_t result, const typename BasicJsonType::object_t::value_type & el) + { + return result += calc_bson_element_size(el.first, el.second); + }); + + return sizeof(std::int32_t) + document_size + 1ul; + } + + /*! + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + void write_bson_object(const typename BasicJsonType::object_t& value) + { + write_number(static_cast(calc_bson_object_size(value))); + + for (const auto& el : value) + { + write_bson_element(el.first, el.second); + } + + oa->write_character(to_char_type(0x00)); + } + + ////////// + // CBOR // + ////////// + + static constexpr CharType get_cbor_float_prefix(float /*unused*/) + { + return to_char_type(0xFA); // Single-Precision Float + } + + static constexpr CharType get_cbor_float_prefix(double /*unused*/) + { + return to_char_type(0xFB); // Double-Precision Float + } + + ///////////// + // MsgPack // + ///////////// + + static constexpr CharType get_msgpack_float_prefix(float /*unused*/) + { + return to_char_type(0xCA); // float 32 + } + + static constexpr CharType get_msgpack_float_prefix(double /*unused*/) + { + return to_char_type(0xCB); // float 64 + } + + //////////// + // UBJSON // + //////////// + + // UBJSON: write number (floating point) + template::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (add_prefix) + { + oa->write_character(get_ubjson_float_prefix(n)); + } + write_number(n); + } + + // UBJSON: write number (unsigned integer) + template::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast(n)); + } + else if (n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast(n)); + } + else if (n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast(n)); + } + else + { + if (add_prefix) + { + oa->write_character(to_char_type('H')); // high-precision number + } + + const auto number = BasicJsonType(n).dump(); + write_number_with_ubjson_prefix(number.size(), true); + for (std::size_t i = 0; i < number.size(); ++i) + { + oa->write_character(to_char_type(static_cast(number[i]))); + } + } + } + + // UBJSON: write number (signed integer) + template < typename NumberType, typename std::enable_if < + std::is_signed::value&& + !std::is_floating_point::value, int >::type = 0 > + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast(n)); + } + else if (static_cast((std::numeric_limits::min)()) <= n && n <= static_cast((std::numeric_limits::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast(n)); + } + else if ((std::numeric_limits::min)() <= n && n <= (std::numeric_limits::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast(n)); + } + // LCOV_EXCL_START + else + { + if (add_prefix) + { + oa->write_character(to_char_type('H')); // high-precision number + } + + const auto number = BasicJsonType(n).dump(); + write_number_with_ubjson_prefix(number.size(), true); + for (std::size_t i = 0; i < number.size(); ++i) + { + oa->write_character(to_char_type(static_cast(number[i]))); + } + } + // LCOV_EXCL_STOP + } + + /*! + @brief determine the type prefix of container values + */ + CharType ubjson_prefix(const BasicJsonType& j) const noexcept + { + switch (j.type()) + { + case value_t::null: + return 'Z'; + + case value_t::boolean: + return j.m_value.boolean ? 'T' : 'F'; + + case value_t::number_integer: + { + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'i'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'U'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'I'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'l'; + } + if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + { + return 'L'; + } + // anything else is treated as high-precision number + return 'H'; // LCOV_EXCL_LINE + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'i'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'U'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'I'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'l'; + } + if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + { + return 'L'; + } + // anything else is treated as high-precision number + return 'H'; // LCOV_EXCL_LINE + } + + case value_t::number_float: + return get_ubjson_float_prefix(j.m_value.number_float); + + case value_t::string: + return 'S'; + + case value_t::array: // fallthrough + case value_t::binary: + return '['; + + case value_t::object: + return '{'; + + default: // discarded values + return 'N'; + } + } + + static constexpr CharType get_ubjson_float_prefix(float /*unused*/) + { + return 'd'; // float 32 + } + + static constexpr CharType get_ubjson_float_prefix(double /*unused*/) + { + return 'D'; // float 64 + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /* + @brief write a number to output input + @param[in] n number of type @a NumberType + @tparam NumberType the type of the number + @tparam OutputIsLittleEndian Set to true if output data is + required to be little endian + + @note This function needs to respect the system's endianess, because bytes + in CBOR, MessagePack, and UBJSON are stored in network order (big + endian) and therefore need reordering on little endian systems. + */ + template + void write_number(const NumberType n) + { + // step 1: write number to array of length NumberType + std::array vec; + std::memcpy(vec.data(), &n, sizeof(NumberType)); + + // step 2: write array to output (with possible reordering) + if (is_little_endian != OutputIsLittleEndian) + { + // reverse byte order prior to conversion if necessary + std::reverse(vec.begin(), vec.end()); + } + + oa->write_characters(vec.data(), sizeof(NumberType)); + } + + void write_compact_float(const number_float_t n, detail::input_format_t format) + { + if (static_cast(n) >= static_cast(std::numeric_limits::lowest()) && + static_cast(n) <= static_cast((std::numeric_limits::max)()) && + static_cast(static_cast(n)) == static_cast(n)) + { + oa->write_character(format == detail::input_format_t::cbor + ? get_cbor_float_prefix(static_cast(n)) + : get_msgpack_float_prefix(static_cast(n))); + write_number(static_cast(n)); + } + else + { + oa->write_character(format == detail::input_format_t::cbor + ? get_cbor_float_prefix(n) + : get_msgpack_float_prefix(n)); + write_number(n); + } + } + + public: + // The following to_char_type functions are implement the conversion + // between uint8_t and CharType. In case CharType is not unsigned, + // such a conversion is required to allow values greater than 128. + // See for a discussion. + template < typename C = CharType, + enable_if_t < std::is_signed::value && std::is_signed::value > * = nullptr > + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return *reinterpret_cast(&x); + } + + template < typename C = CharType, + enable_if_t < std::is_signed::value && std::is_unsigned::value > * = nullptr > + static CharType to_char_type(std::uint8_t x) noexcept + { + static_assert(sizeof(std::uint8_t) == sizeof(CharType), "size of CharType must be equal to std::uint8_t"); + static_assert(std::is_trivial::value, "CharType must be trivial"); + CharType result; + std::memcpy(&result, &x, sizeof(x)); + return result; + } + + template::value>* = nullptr> + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return x; + } + + template < typename InputCharType, typename C = CharType, + enable_if_t < + std::is_signed::value && + std::is_signed::value && + std::is_same::type>::value + > * = nullptr > + static constexpr CharType to_char_type(InputCharType x) noexcept + { + return x; + } + + private: + /// whether we can assume little endianess + const bool is_little_endian = little_endianess(); + + /// the output + output_adapter_t oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + + +#include // reverse, remove, fill, find, none_of +#include // array +#include // localeconv, lconv +#include // labs, isfinite, isnan, signbit +#include // size_t, ptrdiff_t +#include // uint8_t +#include // snprintf +#include // numeric_limits +#include // string, char_traits +#include // is_same +#include // move + +// #include + + +#include // array +#include // signbit, isfinite +#include // intN_t, uintN_t +#include // memcpy, memmove +#include // numeric_limits +#include // conditional + +// #include + + +namespace nlohmann +{ +namespace detail +{ + +/*! +@brief implements the Grisu2 algorithm for binary to decimal floating-point +conversion. + +This implementation is a slightly modified version of the reference +implementation which may be obtained from +http://florian.loitsch.com/publications (bench.tar.gz). + +The code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch. + +For a detailed description of the algorithm see: + +[1] Loitsch, "Printing Floating-Point Numbers Quickly and Accurately with + Integers", Proceedings of the ACM SIGPLAN 2010 Conference on Programming + Language Design and Implementation, PLDI 2010 +[2] Burger, Dybvig, "Printing Floating-Point Numbers Quickly and Accurately", + Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language + Design and Implementation, PLDI 1996 +*/ +namespace dtoa_impl +{ + +template +Target reinterpret_bits(const Source source) +{ + static_assert(sizeof(Target) == sizeof(Source), "size mismatch"); + + Target target; + std::memcpy(&target, &source, sizeof(Source)); + return target; +} + +struct diyfp // f * 2^e +{ + static constexpr int kPrecision = 64; // = q + + std::uint64_t f = 0; + int e = 0; + + constexpr diyfp(std::uint64_t f_, int e_) noexcept : f(f_), e(e_) {} + + /*! + @brief returns x - y + @pre x.e == y.e and x.f >= y.f + */ + static diyfp sub(const diyfp& x, const diyfp& y) noexcept + { + JSON_ASSERT(x.e == y.e); + JSON_ASSERT(x.f >= y.f); + + return {x.f - y.f, x.e}; + } + + /*! + @brief returns x * y + @note The result is rounded. (Only the upper q bits are returned.) + */ + static diyfp mul(const diyfp& x, const diyfp& y) noexcept + { + static_assert(kPrecision == 64, "internal error"); + + // Computes: + // f = round((x.f * y.f) / 2^q) + // e = x.e + y.e + q + + // Emulate the 64-bit * 64-bit multiplication: + // + // p = u * v + // = (u_lo + 2^32 u_hi) (v_lo + 2^32 v_hi) + // = (u_lo v_lo ) + 2^32 ((u_lo v_hi ) + (u_hi v_lo )) + 2^64 (u_hi v_hi ) + // = (p0 ) + 2^32 ((p1 ) + (p2 )) + 2^64 (p3 ) + // = (p0_lo + 2^32 p0_hi) + 2^32 ((p1_lo + 2^32 p1_hi) + (p2_lo + 2^32 p2_hi)) + 2^64 (p3 ) + // = (p0_lo ) + 2^32 (p0_hi + p1_lo + p2_lo ) + 2^64 (p1_hi + p2_hi + p3) + // = (p0_lo ) + 2^32 (Q ) + 2^64 (H ) + // = (p0_lo ) + 2^32 (Q_lo + 2^32 Q_hi ) + 2^64 (H ) + // + // (Since Q might be larger than 2^32 - 1) + // + // = (p0_lo + 2^32 Q_lo) + 2^64 (Q_hi + H) + // + // (Q_hi + H does not overflow a 64-bit int) + // + // = p_lo + 2^64 p_hi + + const std::uint64_t u_lo = x.f & 0xFFFFFFFFu; + const std::uint64_t u_hi = x.f >> 32u; + const std::uint64_t v_lo = y.f & 0xFFFFFFFFu; + const std::uint64_t v_hi = y.f >> 32u; + + const std::uint64_t p0 = u_lo * v_lo; + const std::uint64_t p1 = u_lo * v_hi; + const std::uint64_t p2 = u_hi * v_lo; + const std::uint64_t p3 = u_hi * v_hi; + + const std::uint64_t p0_hi = p0 >> 32u; + const std::uint64_t p1_lo = p1 & 0xFFFFFFFFu; + const std::uint64_t p1_hi = p1 >> 32u; + const std::uint64_t p2_lo = p2 & 0xFFFFFFFFu; + const std::uint64_t p2_hi = p2 >> 32u; + + std::uint64_t Q = p0_hi + p1_lo + p2_lo; + + // The full product might now be computed as + // + // p_hi = p3 + p2_hi + p1_hi + (Q >> 32) + // p_lo = p0_lo + (Q << 32) + // + // But in this particular case here, the full p_lo is not required. + // Effectively we only need to add the highest bit in p_lo to p_hi (and + // Q_hi + 1 does not overflow). + + Q += std::uint64_t{1} << (64u - 32u - 1u); // round, ties up + + const std::uint64_t h = p3 + p2_hi + p1_hi + (Q >> 32u); + + return {h, x.e + y.e + 64}; + } + + /*! + @brief normalize x such that the significand is >= 2^(q-1) + @pre x.f != 0 + */ + static diyfp normalize(diyfp x) noexcept + { + JSON_ASSERT(x.f != 0); + + while ((x.f >> 63u) == 0) + { + x.f <<= 1u; + x.e--; + } + + return x; + } + + /*! + @brief normalize x such that the result has the exponent E + @pre e >= x.e and the upper e - x.e bits of x.f must be zero. + */ + static diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept + { + const int delta = x.e - target_exponent; + + JSON_ASSERT(delta >= 0); + JSON_ASSERT(((x.f << delta) >> delta) == x.f); + + return {x.f << delta, target_exponent}; + } +}; + +struct boundaries +{ + diyfp w; + diyfp minus; + diyfp plus; +}; + +/*! +Compute the (normalized) diyfp representing the input number 'value' and its +boundaries. + +@pre value must be finite and positive +*/ +template +boundaries compute_boundaries(FloatType value) +{ + JSON_ASSERT(std::isfinite(value)); + JSON_ASSERT(value > 0); + + // Convert the IEEE representation into a diyfp. + // + // If v is denormal: + // value = 0.F * 2^(1 - bias) = ( F) * 2^(1 - bias - (p-1)) + // If v is normalized: + // value = 1.F * 2^(E - bias) = (2^(p-1) + F) * 2^(E - bias - (p-1)) + + static_assert(std::numeric_limits::is_iec559, + "internal error: dtoa_short requires an IEEE-754 floating-point implementation"); + + constexpr int kPrecision = std::numeric_limits::digits; // = p (includes the hidden bit) + constexpr int kBias = std::numeric_limits::max_exponent - 1 + (kPrecision - 1); + constexpr int kMinExp = 1 - kBias; + constexpr std::uint64_t kHiddenBit = std::uint64_t{1} << (kPrecision - 1); // = 2^(p-1) + + using bits_type = typename std::conditional::type; + + const std::uint64_t bits = reinterpret_bits(value); + const std::uint64_t E = bits >> (kPrecision - 1); + const std::uint64_t F = bits & (kHiddenBit - 1); + + const bool is_denormal = E == 0; + const diyfp v = is_denormal + ? diyfp(F, kMinExp) + : diyfp(F + kHiddenBit, static_cast(E) - kBias); + + // Compute the boundaries m- and m+ of the floating-point value + // v = f * 2^e. + // + // Determine v- and v+, the floating-point predecessor and successor if v, + // respectively. + // + // v- = v - 2^e if f != 2^(p-1) or e == e_min (A) + // = v - 2^(e-1) if f == 2^(p-1) and e > e_min (B) + // + // v+ = v + 2^e + // + // Let m- = (v- + v) / 2 and m+ = (v + v+) / 2. All real numbers _strictly_ + // between m- and m+ round to v, regardless of how the input rounding + // algorithm breaks ties. + // + // ---+-------------+-------------+-------------+-------------+--- (A) + // v- m- v m+ v+ + // + // -----------------+------+------+-------------+-------------+--- (B) + // v- m- v m+ v+ + + const bool lower_boundary_is_closer = F == 0 && E > 1; + const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_minus = lower_boundary_is_closer + ? diyfp(4 * v.f - 1, v.e - 2) // (B) + : diyfp(2 * v.f - 1, v.e - 1); // (A) + + // Determine the normalized w+ = m+. + const diyfp w_plus = diyfp::normalize(m_plus); + + // Determine w- = m- such that e_(w-) = e_(w+). + const diyfp w_minus = diyfp::normalize_to(m_minus, w_plus.e); + + return {diyfp::normalize(v), w_minus, w_plus}; +} + +// Given normalized diyfp w, Grisu needs to find a (normalized) cached +// power-of-ten c, such that the exponent of the product c * w = f * 2^e lies +// within a certain range [alpha, gamma] (Definition 3.2 from [1]) +// +// alpha <= e = e_c + e_w + q <= gamma +// +// or +// +// f_c * f_w * 2^alpha <= f_c 2^(e_c) * f_w 2^(e_w) * 2^q +// <= f_c * f_w * 2^gamma +// +// Since c and w are normalized, i.e. 2^(q-1) <= f < 2^q, this implies +// +// 2^(q-1) * 2^(q-1) * 2^alpha <= c * w * 2^q < 2^q * 2^q * 2^gamma +// +// or +// +// 2^(q - 2 + alpha) <= c * w < 2^(q + gamma) +// +// The choice of (alpha,gamma) determines the size of the table and the form of +// the digit generation procedure. Using (alpha,gamma)=(-60,-32) works out well +// in practice: +// +// The idea is to cut the number c * w = f * 2^e into two parts, which can be +// processed independently: An integral part p1, and a fractional part p2: +// +// f * 2^e = ( (f div 2^-e) * 2^-e + (f mod 2^-e) ) * 2^e +// = (f div 2^-e) + (f mod 2^-e) * 2^e +// = p1 + p2 * 2^e +// +// The conversion of p1 into decimal form requires a series of divisions and +// modulos by (a power of) 10. These operations are faster for 32-bit than for +// 64-bit integers, so p1 should ideally fit into a 32-bit integer. This can be +// achieved by choosing +// +// -e >= 32 or e <= -32 := gamma +// +// In order to convert the fractional part +// +// p2 * 2^e = p2 / 2^-e = d[-1] / 10^1 + d[-2] / 10^2 + ... +// +// into decimal form, the fraction is repeatedly multiplied by 10 and the digits +// d[-i] are extracted in order: +// +// (10 * p2) div 2^-e = d[-1] +// (10 * p2) mod 2^-e = d[-2] / 10^1 + ... +// +// The multiplication by 10 must not overflow. It is sufficient to choose +// +// 10 * p2 < 16 * p2 = 2^4 * p2 <= 2^64. +// +// Since p2 = f mod 2^-e < 2^-e, +// +// -e <= 60 or e >= -60 := alpha + +constexpr int kAlpha = -60; +constexpr int kGamma = -32; + +struct cached_power // c = f * 2^e ~= 10^k +{ + std::uint64_t f; + int e; + int k; +}; + +/*! +For a normalized diyfp w = f * 2^e, this function returns a (normalized) cached +power-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c +satisfies (Definition 3.2 from [1]) + + alpha <= e_c + e + q <= gamma. +*/ +inline cached_power get_cached_power_for_binary_exponent(int e) +{ + // Now + // + // alpha <= e_c + e + q <= gamma (1) + // ==> f_c * 2^alpha <= c * 2^e * 2^q + // + // and since the c's are normalized, 2^(q-1) <= f_c, + // + // ==> 2^(q - 1 + alpha) <= c * 2^(e + q) + // ==> 2^(alpha - e - 1) <= c + // + // If c were an exact power of ten, i.e. c = 10^k, one may determine k as + // + // k = ceil( log_10( 2^(alpha - e - 1) ) ) + // = ceil( (alpha - e - 1) * log_10(2) ) + // + // From the paper: + // "In theory the result of the procedure could be wrong since c is rounded, + // and the computation itself is approximated [...]. In practice, however, + // this simple function is sufficient." + // + // For IEEE double precision floating-point numbers converted into + // normalized diyfp's w = f * 2^e, with q = 64, + // + // e >= -1022 (min IEEE exponent) + // -52 (p - 1) + // -52 (p - 1, possibly normalize denormal IEEE numbers) + // -11 (normalize the diyfp) + // = -1137 + // + // and + // + // e <= +1023 (max IEEE exponent) + // -52 (p - 1) + // -11 (normalize the diyfp) + // = 960 + // + // This binary exponent range [-1137,960] results in a decimal exponent + // range [-307,324]. One does not need to store a cached power for each + // k in this range. For each such k it suffices to find a cached power + // such that the exponent of the product lies in [alpha,gamma]. + // This implies that the difference of the decimal exponents of adjacent + // table entries must be less than or equal to + // + // floor( (gamma - alpha) * log_10(2) ) = 8. + // + // (A smaller distance gamma-alpha would require a larger table.) + + // NB: + // Actually this function returns c, such that -60 <= e_c + e + 64 <= -34. + + constexpr int kCachedPowersMinDecExp = -300; + constexpr int kCachedPowersDecStep = 8; + + static constexpr std::array kCachedPowers = + { + { + { 0xAB70FE17C79AC6CA, -1060, -300 }, + { 0xFF77B1FCBEBCDC4F, -1034, -292 }, + { 0xBE5691EF416BD60C, -1007, -284 }, + { 0x8DD01FAD907FFC3C, -980, -276 }, + { 0xD3515C2831559A83, -954, -268 }, + { 0x9D71AC8FADA6C9B5, -927, -260 }, + { 0xEA9C227723EE8BCB, -901, -252 }, + { 0xAECC49914078536D, -874, -244 }, + { 0x823C12795DB6CE57, -847, -236 }, + { 0xC21094364DFB5637, -821, -228 }, + { 0x9096EA6F3848984F, -794, -220 }, + { 0xD77485CB25823AC7, -768, -212 }, + { 0xA086CFCD97BF97F4, -741, -204 }, + { 0xEF340A98172AACE5, -715, -196 }, + { 0xB23867FB2A35B28E, -688, -188 }, + { 0x84C8D4DFD2C63F3B, -661, -180 }, + { 0xC5DD44271AD3CDBA, -635, -172 }, + { 0x936B9FCEBB25C996, -608, -164 }, + { 0xDBAC6C247D62A584, -582, -156 }, + { 0xA3AB66580D5FDAF6, -555, -148 }, + { 0xF3E2F893DEC3F126, -529, -140 }, + { 0xB5B5ADA8AAFF80B8, -502, -132 }, + { 0x87625F056C7C4A8B, -475, -124 }, + { 0xC9BCFF6034C13053, -449, -116 }, + { 0x964E858C91BA2655, -422, -108 }, + { 0xDFF9772470297EBD, -396, -100 }, + { 0xA6DFBD9FB8E5B88F, -369, -92 }, + { 0xF8A95FCF88747D94, -343, -84 }, + { 0xB94470938FA89BCF, -316, -76 }, + { 0x8A08F0F8BF0F156B, -289, -68 }, + { 0xCDB02555653131B6, -263, -60 }, + { 0x993FE2C6D07B7FAC, -236, -52 }, + { 0xE45C10C42A2B3B06, -210, -44 }, + { 0xAA242499697392D3, -183, -36 }, + { 0xFD87B5F28300CA0E, -157, -28 }, + { 0xBCE5086492111AEB, -130, -20 }, + { 0x8CBCCC096F5088CC, -103, -12 }, + { 0xD1B71758E219652C, -77, -4 }, + { 0x9C40000000000000, -50, 4 }, + { 0xE8D4A51000000000, -24, 12 }, + { 0xAD78EBC5AC620000, 3, 20 }, + { 0x813F3978F8940984, 30, 28 }, + { 0xC097CE7BC90715B3, 56, 36 }, + { 0x8F7E32CE7BEA5C70, 83, 44 }, + { 0xD5D238A4ABE98068, 109, 52 }, + { 0x9F4F2726179A2245, 136, 60 }, + { 0xED63A231D4C4FB27, 162, 68 }, + { 0xB0DE65388CC8ADA8, 189, 76 }, + { 0x83C7088E1AAB65DB, 216, 84 }, + { 0xC45D1DF942711D9A, 242, 92 }, + { 0x924D692CA61BE758, 269, 100 }, + { 0xDA01EE641A708DEA, 295, 108 }, + { 0xA26DA3999AEF774A, 322, 116 }, + { 0xF209787BB47D6B85, 348, 124 }, + { 0xB454E4A179DD1877, 375, 132 }, + { 0x865B86925B9BC5C2, 402, 140 }, + { 0xC83553C5C8965D3D, 428, 148 }, + { 0x952AB45CFA97A0B3, 455, 156 }, + { 0xDE469FBD99A05FE3, 481, 164 }, + { 0xA59BC234DB398C25, 508, 172 }, + { 0xF6C69A72A3989F5C, 534, 180 }, + { 0xB7DCBF5354E9BECE, 561, 188 }, + { 0x88FCF317F22241E2, 588, 196 }, + { 0xCC20CE9BD35C78A5, 614, 204 }, + { 0x98165AF37B2153DF, 641, 212 }, + { 0xE2A0B5DC971F303A, 667, 220 }, + { 0xA8D9D1535CE3B396, 694, 228 }, + { 0xFB9B7CD9A4A7443C, 720, 236 }, + { 0xBB764C4CA7A44410, 747, 244 }, + { 0x8BAB8EEFB6409C1A, 774, 252 }, + { 0xD01FEF10A657842C, 800, 260 }, + { 0x9B10A4E5E9913129, 827, 268 }, + { 0xE7109BFBA19C0C9D, 853, 276 }, + { 0xAC2820D9623BF429, 880, 284 }, + { 0x80444B5E7AA7CF85, 907, 292 }, + { 0xBF21E44003ACDD2D, 933, 300 }, + { 0x8E679C2F5E44FF8F, 960, 308 }, + { 0xD433179D9C8CB841, 986, 316 }, + { 0x9E19DB92B4E31BA9, 1013, 324 }, + } + }; + + // This computation gives exactly the same results for k as + // k = ceil((kAlpha - e - 1) * 0.30102999566398114) + // for |e| <= 1500, but doesn't require floating-point operations. + // NB: log_10(2) ~= 78913 / 2^18 + JSON_ASSERT(e >= -1500); + JSON_ASSERT(e <= 1500); + const int f = kAlpha - e - 1; + const int k = (f * 78913) / (1 << 18) + static_cast(f > 0); + + const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; + JSON_ASSERT(index >= 0); + JSON_ASSERT(static_cast(index) < kCachedPowers.size()); + + const cached_power cached = kCachedPowers[static_cast(index)]; + JSON_ASSERT(kAlpha <= cached.e + e + 64); + JSON_ASSERT(kGamma >= cached.e + e + 64); + + return cached; +} + +/*! +For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. +For n == 0, returns 1 and sets pow10 := 1. +*/ +inline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10) +{ + // LCOV_EXCL_START + if (n >= 1000000000) + { + pow10 = 1000000000; + return 10; + } + // LCOV_EXCL_STOP + else if (n >= 100000000) + { + pow10 = 100000000; + return 9; + } + else if (n >= 10000000) + { + pow10 = 10000000; + return 8; + } + else if (n >= 1000000) + { + pow10 = 1000000; + return 7; + } + else if (n >= 100000) + { + pow10 = 100000; + return 6; + } + else if (n >= 10000) + { + pow10 = 10000; + return 5; + } + else if (n >= 1000) + { + pow10 = 1000; + return 4; + } + else if (n >= 100) + { + pow10 = 100; + return 3; + } + else if (n >= 10) + { + pow10 = 10; + return 2; + } + else + { + pow10 = 1; + return 1; + } +} + +inline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta, + std::uint64_t rest, std::uint64_t ten_k) +{ + JSON_ASSERT(len >= 1); + JSON_ASSERT(dist <= delta); + JSON_ASSERT(rest <= delta); + JSON_ASSERT(ten_k > 0); + + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // ten_k + // <------> + // <---- rest ----> + // --------------[------------------+----+--------------]-------------- + // w V + // = buf * 10^k + // + // ten_k represents a unit-in-the-last-place in the decimal representation + // stored in buf. + // Decrement buf by ten_k while this takes buf closer to w. + + // The tests are written in this order to avoid overflow in unsigned + // integer arithmetic. + + while (rest < dist + && delta - rest >= ten_k + && (rest + ten_k < dist || dist - rest > rest + ten_k - dist)) + { + JSON_ASSERT(buf[len - 1] != '0'); + buf[len - 1]--; + rest += ten_k; + } +} + +/*! +Generates V = buffer * 10^decimal_exponent, such that M- <= V <= M+. +M- and M+ must be normalized and share the same exponent -60 <= e <= -32. +*/ +inline void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent, + diyfp M_minus, diyfp w, diyfp M_plus) +{ + static_assert(kAlpha >= -60, "internal error"); + static_assert(kGamma <= -32, "internal error"); + + // Generates the digits (and the exponent) of a decimal floating-point + // number V = buffer * 10^decimal_exponent in the range [M-, M+]. The diyfp's + // w, M- and M+ share the same exponent e, which satisfies alpha <= e <= gamma. + // + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // Grisu2 generates the digits of M+ from left to right and stops as soon as + // V is in [M-,M+]. + + JSON_ASSERT(M_plus.e >= kAlpha); + JSON_ASSERT(M_plus.e <= kGamma); + + std::uint64_t delta = diyfp::sub(M_plus, M_minus).f; // (significand of (M+ - M-), implicit exponent is e) + std::uint64_t dist = diyfp::sub(M_plus, w ).f; // (significand of (M+ - w ), implicit exponent is e) + + // Split M+ = f * 2^e into two parts p1 and p2 (note: e < 0): + // + // M+ = f * 2^e + // = ((f div 2^-e) * 2^-e + (f mod 2^-e)) * 2^e + // = ((p1 ) * 2^-e + (p2 )) * 2^e + // = p1 + p2 * 2^e + + const diyfp one(std::uint64_t{1} << -M_plus.e, M_plus.e); + + auto p1 = static_cast(M_plus.f >> -one.e); // p1 = f div 2^-e (Since -e >= 32, p1 fits into a 32-bit int.) + std::uint64_t p2 = M_plus.f & (one.f - 1); // p2 = f mod 2^-e + + // 1) + // + // Generate the digits of the integral part p1 = d[n-1]...d[1]d[0] + + JSON_ASSERT(p1 > 0); + + std::uint32_t pow10; + const int k = find_largest_pow10(p1, pow10); + + // 10^(k-1) <= p1 < 10^k, pow10 = 10^(k-1) + // + // p1 = (p1 div 10^(k-1)) * 10^(k-1) + (p1 mod 10^(k-1)) + // = (d[k-1] ) * 10^(k-1) + (p1 mod 10^(k-1)) + // + // M+ = p1 + p2 * 2^e + // = d[k-1] * 10^(k-1) + (p1 mod 10^(k-1)) + p2 * 2^e + // = d[k-1] * 10^(k-1) + ((p1 mod 10^(k-1)) * 2^-e + p2) * 2^e + // = d[k-1] * 10^(k-1) + ( rest) * 2^e + // + // Now generate the digits d[n] of p1 from left to right (n = k-1,...,0) + // + // p1 = d[k-1]...d[n] * 10^n + d[n-1]...d[0] + // + // but stop as soon as + // + // rest * 2^e = (d[n-1]...d[0] * 2^-e + p2) * 2^e <= delta * 2^e + + int n = k; + while (n > 0) + { + // Invariants: + // M+ = buffer * 10^n + (p1 + p2 * 2^e) (buffer = 0 for n = k) + // pow10 = 10^(n-1) <= p1 < 10^n + // + const std::uint32_t d = p1 / pow10; // d = p1 div 10^(n-1) + const std::uint32_t r = p1 % pow10; // r = p1 mod 10^(n-1) + // + // M+ = buffer * 10^n + (d * 10^(n-1) + r) + p2 * 2^e + // = (buffer * 10 + d) * 10^(n-1) + (r + p2 * 2^e) + // + JSON_ASSERT(d <= 9); + buffer[length++] = static_cast('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(n-1) + (r + p2 * 2^e) + // + p1 = r; + n--; + // + // M+ = buffer * 10^n + (p1 + p2 * 2^e) + // pow10 = 10^n + // + + // Now check if enough digits have been generated. + // Compute + // + // p1 + p2 * 2^e = (p1 * 2^-e + p2) * 2^e = rest * 2^e + // + // Note: + // Since rest and delta share the same exponent e, it suffices to + // compare the significands. + const std::uint64_t rest = (std::uint64_t{p1} << -one.e) + p2; + if (rest <= delta) + { + // V = buffer * 10^n, with M- <= V <= M+. + + decimal_exponent += n; + + // We may now just stop. But instead look if the buffer could be + // decremented to bring V closer to w. + // + // pow10 = 10^n is now 1 ulp in the decimal representation V. + // The rounding procedure works with diyfp's with an implicit + // exponent of e. + // + // 10^n = (10^n * 2^-e) * 2^e = ulp * 2^e + // + const std::uint64_t ten_n = std::uint64_t{pow10} << -one.e; + grisu2_round(buffer, length, dist, delta, rest, ten_n); + + return; + } + + pow10 /= 10; + // + // pow10 = 10^(n-1) <= p1 < 10^n + // Invariants restored. + } + + // 2) + // + // The digits of the integral part have been generated: + // + // M+ = d[k-1]...d[1]d[0] + p2 * 2^e + // = buffer + p2 * 2^e + // + // Now generate the digits of the fractional part p2 * 2^e. + // + // Note: + // No decimal point is generated: the exponent is adjusted instead. + // + // p2 actually represents the fraction + // + // p2 * 2^e + // = p2 / 2^-e + // = d[-1] / 10^1 + d[-2] / 10^2 + ... + // + // Now generate the digits d[-m] of p1 from left to right (m = 1,2,...) + // + // p2 * 2^e = d[-1]d[-2]...d[-m] * 10^-m + // + 10^-m * (d[-m-1] / 10^1 + d[-m-2] / 10^2 + ...) + // + // using + // + // 10^m * p2 = ((10^m * p2) div 2^-e) * 2^-e + ((10^m * p2) mod 2^-e) + // = ( d) * 2^-e + ( r) + // + // or + // 10^m * p2 * 2^e = d + r * 2^e + // + // i.e. + // + // M+ = buffer + p2 * 2^e + // = buffer + 10^-m * (d + r * 2^e) + // = (buffer * 10^m + d) * 10^-m + 10^-m * r * 2^e + // + // and stop as soon as 10^-m * r * 2^e <= delta * 2^e + + JSON_ASSERT(p2 > delta); + + int m = 0; + for (;;) + { + // Invariant: + // M+ = buffer * 10^-m + 10^-m * (d[-m-1] / 10 + d[-m-2] / 10^2 + ...) * 2^e + // = buffer * 10^-m + 10^-m * (p2 ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (10 * p2) ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * ((10*p2 div 2^-e) * 2^-e + (10*p2 mod 2^-e)) * 2^e + // + JSON_ASSERT(p2 <= (std::numeric_limits::max)() / 10); + p2 *= 10; + const std::uint64_t d = p2 >> -one.e; // d = (10 * p2) div 2^-e + const std::uint64_t r = p2 & (one.f - 1); // r = (10 * p2) mod 2^-e + // + // M+ = buffer * 10^-m + 10^-m * (1/10 * (d * 2^-e + r) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (d + r * 2^e)) + // = (buffer * 10 + d) * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + JSON_ASSERT(d <= 9); + buffer[length++] = static_cast('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + p2 = r; + m++; + // + // M+ = buffer * 10^-m + 10^-m * p2 * 2^e + // Invariant restored. + + // Check if enough digits have been generated. + // + // 10^-m * p2 * 2^e <= delta * 2^e + // p2 * 2^e <= 10^m * delta * 2^e + // p2 <= 10^m * delta + delta *= 10; + dist *= 10; + if (p2 <= delta) + { + break; + } + } + + // V = buffer * 10^-m, with M- <= V <= M+. + + decimal_exponent -= m; + + // 1 ulp in the decimal representation is now 10^-m. + // Since delta and dist are now scaled by 10^m, we need to do the + // same with ulp in order to keep the units in sync. + // + // 10^m * 10^-m = 1 = 2^-e * 2^e = ten_m * 2^e + // + const std::uint64_t ten_m = one.f; + grisu2_round(buffer, length, dist, delta, p2, ten_m); + + // By construction this algorithm generates the shortest possible decimal + // number (Loitsch, Theorem 6.2) which rounds back to w. + // For an input number of precision p, at least + // + // N = 1 + ceil(p * log_10(2)) + // + // decimal digits are sufficient to identify all binary floating-point + // numbers (Matula, "In-and-Out conversions"). + // This implies that the algorithm does not produce more than N decimal + // digits. + // + // N = 17 for p = 53 (IEEE double precision) + // N = 9 for p = 24 (IEEE single precision) +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +JSON_HEDLEY_NON_NULL(1) +inline void grisu2(char* buf, int& len, int& decimal_exponent, + diyfp m_minus, diyfp v, diyfp m_plus) +{ + JSON_ASSERT(m_plus.e == m_minus.e); + JSON_ASSERT(m_plus.e == v.e); + + // --------(-----------------------+-----------------------)-------- (A) + // m- v m+ + // + // --------------------(-----------+-----------------------)-------- (B) + // m- v m+ + // + // First scale v (and m- and m+) such that the exponent is in the range + // [alpha, gamma]. + + const cached_power cached = get_cached_power_for_binary_exponent(m_plus.e); + + const diyfp c_minus_k(cached.f, cached.e); // = c ~= 10^-k + + // The exponent of the products is = v.e + c_minus_k.e + q and is in the range [alpha,gamma] + const diyfp w = diyfp::mul(v, c_minus_k); + const diyfp w_minus = diyfp::mul(m_minus, c_minus_k); + const diyfp w_plus = diyfp::mul(m_plus, c_minus_k); + + // ----(---+---)---------------(---+---)---------------(---+---)---- + // w- w w+ + // = c*m- = c*v = c*m+ + // + // diyfp::mul rounds its result and c_minus_k is approximated too. w, w- and + // w+ are now off by a small amount. + // In fact: + // + // w - v * 10^k < 1 ulp + // + // To account for this inaccuracy, add resp. subtract 1 ulp. + // + // --------+---[---------------(---+---)---------------]---+-------- + // w- M- w M+ w+ + // + // Now any number in [M-, M+] (bounds included) will round to w when input, + // regardless of how the input rounding algorithm breaks ties. + // + // And digit_gen generates the shortest possible such number in [M-, M+]. + // Note that this does not mean that Grisu2 always generates the shortest + // possible number in the interval (m-, m+). + const diyfp M_minus(w_minus.f + 1, w_minus.e); + const diyfp M_plus (w_plus.f - 1, w_plus.e ); + + decimal_exponent = -cached.k; // = -(-k) = k + + grisu2_digit_gen(buf, len, decimal_exponent, M_minus, w, M_plus); +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +template +JSON_HEDLEY_NON_NULL(1) +void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value) +{ + static_assert(diyfp::kPrecision >= std::numeric_limits::digits + 3, + "internal error: not enough precision"); + + JSON_ASSERT(std::isfinite(value)); + JSON_ASSERT(value > 0); + + // If the neighbors (and boundaries) of 'value' are always computed for double-precision + // numbers, all float's can be recovered using strtod (and strtof). However, the resulting + // decimal representations are not exactly "short". + // + // The documentation for 'std::to_chars' (https://en.cppreference.com/w/cpp/utility/to_chars) + // says "value is converted to a string as if by std::sprintf in the default ("C") locale" + // and since sprintf promotes float's to double's, I think this is exactly what 'std::to_chars' + // does. + // On the other hand, the documentation for 'std::to_chars' requires that "parsing the + // representation using the corresponding std::from_chars function recovers value exactly". That + // indicates that single precision floating-point numbers should be recovered using + // 'std::strtof'. + // + // NB: If the neighbors are computed for single-precision numbers, there is a single float + // (7.0385307e-26f) which can't be recovered using strtod. The resulting double precision + // value is off by 1 ulp. +#if 0 + const boundaries w = compute_boundaries(static_cast(value)); +#else + const boundaries w = compute_boundaries(value); +#endif + + grisu2(buf, len, decimal_exponent, w.minus, w.w, w.plus); +} + +/*! +@brief appends a decimal representation of e to buf +@return a pointer to the element following the exponent. +@pre -1000 < e < 1000 +*/ +JSON_HEDLEY_NON_NULL(1) +JSON_HEDLEY_RETURNS_NON_NULL +inline char* append_exponent(char* buf, int e) +{ + JSON_ASSERT(e > -1000); + JSON_ASSERT(e < 1000); + + if (e < 0) + { + e = -e; + *buf++ = '-'; + } + else + { + *buf++ = '+'; + } + + auto k = static_cast(e); + if (k < 10) + { + // Always print at least two digits in the exponent. + // This is for compatibility with printf("%g"). + *buf++ = '0'; + *buf++ = static_cast('0' + k); + } + else if (k < 100) + { + *buf++ = static_cast('0' + k / 10); + k %= 10; + *buf++ = static_cast('0' + k); + } + else + { + *buf++ = static_cast('0' + k / 100); + k %= 100; + *buf++ = static_cast('0' + k / 10); + k %= 10; + *buf++ = static_cast('0' + k); + } + + return buf; +} + +/*! +@brief prettify v = buf * 10^decimal_exponent + +If v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point +notation. Otherwise it will be printed in exponential notation. + +@pre min_exp < 0 +@pre max_exp > 0 +*/ +JSON_HEDLEY_NON_NULL(1) +JSON_HEDLEY_RETURNS_NON_NULL +inline char* format_buffer(char* buf, int len, int decimal_exponent, + int min_exp, int max_exp) +{ + JSON_ASSERT(min_exp < 0); + JSON_ASSERT(max_exp > 0); + + const int k = len; + const int n = len + decimal_exponent; + + // v = buf * 10^(n-k) + // k is the length of the buffer (number of decimal digits) + // n is the position of the decimal point relative to the start of the buffer. + + if (k <= n && n <= max_exp) + { + // digits[000] + // len <= max_exp + 2 + + std::memset(buf + k, '0', static_cast(n) - static_cast(k)); + // Make it look like a floating-point number (#362, #378) + buf[n + 0] = '.'; + buf[n + 1] = '0'; + return buf + (static_cast(n) + 2); + } + + if (0 < n && n <= max_exp) + { + // dig.its + // len <= max_digits10 + 1 + + JSON_ASSERT(k > n); + + std::memmove(buf + (static_cast(n) + 1), buf + n, static_cast(k) - static_cast(n)); + buf[n] = '.'; + return buf + (static_cast(k) + 1U); + } + + if (min_exp < n && n <= 0) + { + // 0.[000]digits + // len <= 2 + (-min_exp - 1) + max_digits10 + + std::memmove(buf + (2 + static_cast(-n)), buf, static_cast(k)); + buf[0] = '0'; + buf[1] = '.'; + std::memset(buf + 2, '0', static_cast(-n)); + return buf + (2U + static_cast(-n) + static_cast(k)); + } + + if (k == 1) + { + // dE+123 + // len <= 1 + 5 + + buf += 1; + } + else + { + // d.igitsE+123 + // len <= max_digits10 + 1 + 5 + + std::memmove(buf + 2, buf + 1, static_cast(k) - 1); + buf[1] = '.'; + buf += 1 + static_cast(k); + } + + *buf++ = 'e'; + return append_exponent(buf, n - 1); +} + +} // namespace dtoa_impl + +/*! +@brief generates a decimal representation of the floating-point number value in [first, last). + +The format of the resulting decimal representation is similar to printf's %g +format. Returns an iterator pointing past-the-end of the decimal representation. + +@note The input number must be finite, i.e. NaN's and Inf's are not supported. +@note The buffer must be large enough. +@note The result is NOT null-terminated. +*/ +template +JSON_HEDLEY_NON_NULL(1, 2) +JSON_HEDLEY_RETURNS_NON_NULL +char* to_chars(char* first, const char* last, FloatType value) +{ + static_cast(last); // maybe unused - fix warning + JSON_ASSERT(std::isfinite(value)); + + // Use signbit(value) instead of (value < 0) since signbit works for -0. + if (std::signbit(value)) + { + value = -value; + *first++ = '-'; + } + + if (value == 0) // +-0 + { + *first++ = '0'; + // Make it look like a floating-point number (#362, #378) + *first++ = '.'; + *first++ = '0'; + return first; + } + + JSON_ASSERT(last - first >= std::numeric_limits::max_digits10); + + // Compute v = buffer * 10^decimal_exponent. + // The decimal digits are stored in the buffer, which needs to be interpreted + // as an unsigned decimal integer. + // len is the length of the buffer, i.e. the number of decimal digits. + int len = 0; + int decimal_exponent = 0; + dtoa_impl::grisu2(first, len, decimal_exponent, value); + + JSON_ASSERT(len <= std::numeric_limits::max_digits10); + + // Format the buffer like printf("%.*g", prec, value) + constexpr int kMinExp = -4; + // Use digits10 here to increase compatibility with version 2. + constexpr int kMaxExp = std::numeric_limits::digits10; + + JSON_ASSERT(last - first >= kMaxExp + 2); + JSON_ASSERT(last - first >= 2 + (-kMinExp - 1) + std::numeric_limits::max_digits10); + JSON_ASSERT(last - first >= std::numeric_limits::max_digits10 + 6); + + return dtoa_impl::format_buffer(first, len, decimal_exponent, kMinExp, kMaxExp); +} + +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + +// #include + +// #include + +// #include + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// serialization // +/////////////////// + +/// how to treat decoding errors +enum class error_handler_t +{ + strict, ///< throw a type_error exception in case of invalid UTF-8 + replace, ///< replace invalid UTF-8 sequences with U+FFFD + ignore ///< ignore invalid UTF-8 sequences +}; + +template +class serializer +{ + using string_t = typename BasicJsonType::string_t; + using number_float_t = typename BasicJsonType::number_float_t; + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using binary_char_t = typename BasicJsonType::binary_t::value_type; + static constexpr std::uint8_t UTF8_ACCEPT = 0; + static constexpr std::uint8_t UTF8_REJECT = 1; + + public: + /*! + @param[in] s output stream to serialize to + @param[in] ichar indentation character to use + @param[in] error_handler_ how to react on decoding errors + */ + serializer(output_adapter_t s, const char ichar, + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) + , thousands_sep(loc->thousands_sep == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->thousands_sep))) + , decimal_point(loc->decimal_point == nullptr ? '\0' : std::char_traits::to_char_type(* (loc->decimal_point))) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) + {} + + // delete because of pointer members + serializer(const serializer&) = delete; + serializer& operator=(const serializer&) = delete; + serializer(serializer&&) = delete; + serializer& operator=(serializer&&) = delete; + ~serializer() = default; + + /*! + @brief internal implementation of the serialization function + + This function is called by the public member function dump and organizes + the serialization internally. The indentation level is propagated as + additional parameter. In case of arrays and objects, the function is + called recursively. + + - strings and object keys are escaped using `escape_string()` + - integer numbers are converted implicitly via `operator<<` + - floating-point numbers are converted to a string using `"%g"` format + - binary values are serialized as objects containing the subtype and the + byte array + + @param[in] val value to serialize + @param[in] pretty_print whether the output shall be pretty-printed + @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters + in the output are escaped with `\uXXXX` sequences, and the result consists + of ASCII characters only. + @param[in] indent_step the indent level + @param[in] current_indent the current indent level (only used internally) + */ + void dump(const BasicJsonType& val, + const bool pretty_print, + const bool ensure_ascii, + const unsigned int indent_step, + const unsigned int current_indent = 0) + { + switch (val.m_type) + { + case value_t::object: + { + if (val.m_value.object->empty()) + { + o->write_characters("{}", 2); + return; + } + + if (pretty_print) + { + o->write_characters("{\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + JSON_ASSERT(i != val.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character('}'); + } + else + { + o->write_character('{'); + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + JSON_ASSERT(i != val.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + + o->write_character('}'); + } + + return; + } + + case value_t::array: + { + if (val.m_value.array->empty()) + { + o->write_characters("[]", 2); + return; + } + + if (pretty_print) + { + o->write_characters("[\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + dump(*i, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + JSON_ASSERT(!val.m_value.array->empty()); + o->write_characters(indent_string.c_str(), new_indent); + dump(val.m_value.array->back(), true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character(']'); + } + else + { + o->write_character('['); + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + dump(*i, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + JSON_ASSERT(!val.m_value.array->empty()); + dump(val.m_value.array->back(), false, ensure_ascii, indent_step, current_indent); + + o->write_character(']'); + } + + return; + } + + case value_t::string: + { + o->write_character('\"'); + dump_escaped(*val.m_value.string, ensure_ascii); + o->write_character('\"'); + return; + } + + case value_t::binary: + { + if (pretty_print) + { + o->write_characters("{\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + o->write_characters(indent_string.c_str(), new_indent); + + o->write_characters("\"bytes\": [", 10); + + if (!val.m_value.binary->empty()) + { + for (auto i = val.m_value.binary->cbegin(); + i != val.m_value.binary->cend() - 1; ++i) + { + dump_integer(*i); + o->write_characters(", ", 2); + } + dump_integer(val.m_value.binary->back()); + } + + o->write_characters("],\n", 3); + o->write_characters(indent_string.c_str(), new_indent); + + o->write_characters("\"subtype\": ", 11); + if (val.m_value.binary->has_subtype()) + { + dump_integer(val.m_value.binary->subtype()); + } + else + { + o->write_characters("null", 4); + } + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character('}'); + } + else + { + o->write_characters("{\"bytes\":[", 10); + + if (!val.m_value.binary->empty()) + { + for (auto i = val.m_value.binary->cbegin(); + i != val.m_value.binary->cend() - 1; ++i) + { + dump_integer(*i); + o->write_character(','); + } + dump_integer(val.m_value.binary->back()); + } + + o->write_characters("],\"subtype\":", 12); + if (val.m_value.binary->has_subtype()) + { + dump_integer(val.m_value.binary->subtype()); + o->write_character('}'); + } + else + { + o->write_characters("null}", 5); + } + } + return; + } + + case value_t::boolean: + { + if (val.m_value.boolean) + { + o->write_characters("true", 4); + } + else + { + o->write_characters("false", 5); + } + return; + } + + case value_t::number_integer: + { + dump_integer(val.m_value.number_integer); + return; + } + + case value_t::number_unsigned: + { + dump_integer(val.m_value.number_unsigned); + return; + } + + case value_t::number_float: + { + dump_float(val.m_value.number_float); + return; + } + + case value_t::discarded: + { + o->write_characters("", 11); + return; + } + + case value_t::null: + { + o->write_characters("null", 4); + return; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + } + + private: + /*! + @brief dump escaped string + + Escape a string by replacing certain special characters by a sequence of an + escape character (backslash) and another character and other control + characters by a sequence of "\u" followed by a four-digit hex + representation. The escaped string is written to output stream @a o. + + @param[in] s the string to escape + @param[in] ensure_ascii whether to escape non-ASCII characters with + \uXXXX sequences + + @complexity Linear in the length of string @a s. + */ + void dump_escaped(const string_t& s, const bool ensure_ascii) + { + std::uint32_t codepoint; + std::uint8_t state = UTF8_ACCEPT; + std::size_t bytes = 0; // number of bytes written to string_buffer + + // number of bytes written at the point of the last valid byte + std::size_t bytes_after_last_accept = 0; + std::size_t undumped_chars = 0; + + for (std::size_t i = 0; i < s.size(); ++i) + { + const auto byte = static_cast(s[i]); + + switch (decode(state, codepoint, byte)) + { + case UTF8_ACCEPT: // decode found a new code point + { + switch (codepoint) + { + case 0x08: // backspace + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'b'; + break; + } + + case 0x09: // horizontal tab + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 't'; + break; + } + + case 0x0A: // newline + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'n'; + break; + } + + case 0x0C: // formfeed + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'f'; + break; + } + + case 0x0D: // carriage return + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'r'; + break; + } + + case 0x22: // quotation mark + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\"'; + break; + } + + case 0x5C: // reverse solidus + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\\'; + break; + } + + default: + { + // escape control characters (0x00..0x1F) or, if + // ensure_ascii parameter is used, non-ASCII characters + if ((codepoint <= 0x1F) || (ensure_ascii && (codepoint >= 0x7F))) + { + if (codepoint <= 0xFFFF) + { + (std::snprintf)(string_buffer.data() + bytes, 7, "\\u%04x", + static_cast(codepoint)); + bytes += 6; + } + else + { + (std::snprintf)(string_buffer.data() + bytes, 13, "\\u%04x\\u%04x", + static_cast(0xD7C0u + (codepoint >> 10u)), + static_cast(0xDC00u + (codepoint & 0x3FFu))); + bytes += 12; + } + } + else + { + // copy byte to buffer (all previous bytes + // been copied have in default case above) + string_buffer[bytes++] = s[i]; + } + break; + } + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + // remember the byte position of this accept + bytes_after_last_accept = bytes; + undumped_chars = 0; + break; + } + + case UTF8_REJECT: // decode found invalid UTF-8 byte + { + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(3, '\0'); + (std::snprintf)(&sn[0], sn.size(), "%.2X", byte); + JSON_THROW(type_error::create(316, "invalid UTF-8 byte at index " + std::to_string(i) + ": 0x" + sn)); + } + + case error_handler_t::ignore: + case error_handler_t::replace: + { + // in case we saw this character the first time, we + // would like to read it again, because the byte + // may be OK for itself, but just not OK for the + // previous sequence + if (undumped_chars > 0) + { + --i; + } + + // reset length buffer to the last accepted index; + // thus removing/ignoring the invalid characters + bytes = bytes_after_last_accept; + + if (error_handler == error_handler_t::replace) + { + // add a replacement character + if (ensure_ascii) + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'u'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'd'; + } + else + { + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xEF'); + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xBF'); + string_buffer[bytes++] = detail::binary_writer::to_char_type('\xBD'); + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + bytes_after_last_accept = bytes; + } + + undumped_chars = 0; + + // continue processing the string + state = UTF8_ACCEPT; + break; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + break; + } + + default: // decode found yet incomplete multi-byte code point + { + if (!ensure_ascii) + { + // code point will not be escaped - copy byte to buffer + string_buffer[bytes++] = s[i]; + } + ++undumped_chars; + break; + } + } + } + + // we finished processing the string + if (JSON_HEDLEY_LIKELY(state == UTF8_ACCEPT)) + { + // write buffer + if (bytes > 0) + { + o->write_characters(string_buffer.data(), bytes); + } + } + else + { + // we finish reading, but do not accept: string was incomplete + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(3, '\0'); + (std::snprintf)(&sn[0], sn.size(), "%.2X", static_cast(s.back())); + JSON_THROW(type_error::create(316, "incomplete UTF-8 string; last byte: 0x" + sn)); + } + + case error_handler_t::ignore: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + break; + } + + case error_handler_t::replace: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + // add a replacement character + if (ensure_ascii) + { + o->write_characters("\\ufffd", 6); + } + else + { + o->write_characters("\xEF\xBF\xBD", 3); + } + break; + } + + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + } + } + + /*! + @brief count digits + + Count the number of decimal (base 10) digits for an input unsigned integer. + + @param[in] x unsigned integer number to count its digits + @return number of decimal digits + */ + inline unsigned int count_digits(number_unsigned_t x) noexcept + { + unsigned int n_digits = 1; + for (;;) + { + if (x < 10) + { + return n_digits; + } + if (x < 100) + { + return n_digits + 1; + } + if (x < 1000) + { + return n_digits + 2; + } + if (x < 10000) + { + return n_digits + 3; + } + x = x / 10000u; + n_digits += 4; + } + } + + /*! + @brief dump an integer + + Dump a given integer to output stream @a o. Works internally with + @a number_buffer. + + @param[in] x integer number (signed or unsigned) to dump + @tparam NumberType either @a number_integer_t or @a number_unsigned_t + */ + template < typename NumberType, detail::enable_if_t < + std::is_same::value || + std::is_same::value || + std::is_same::value, + int > = 0 > + void dump_integer(NumberType x) + { + static constexpr std::array, 100> digits_to_99 + { + { + {{'0', '0'}}, {{'0', '1'}}, {{'0', '2'}}, {{'0', '3'}}, {{'0', '4'}}, {{'0', '5'}}, {{'0', '6'}}, {{'0', '7'}}, {{'0', '8'}}, {{'0', '9'}}, + {{'1', '0'}}, {{'1', '1'}}, {{'1', '2'}}, {{'1', '3'}}, {{'1', '4'}}, {{'1', '5'}}, {{'1', '6'}}, {{'1', '7'}}, {{'1', '8'}}, {{'1', '9'}}, + {{'2', '0'}}, {{'2', '1'}}, {{'2', '2'}}, {{'2', '3'}}, {{'2', '4'}}, {{'2', '5'}}, {{'2', '6'}}, {{'2', '7'}}, {{'2', '8'}}, {{'2', '9'}}, + {{'3', '0'}}, {{'3', '1'}}, {{'3', '2'}}, {{'3', '3'}}, {{'3', '4'}}, {{'3', '5'}}, {{'3', '6'}}, {{'3', '7'}}, {{'3', '8'}}, {{'3', '9'}}, + {{'4', '0'}}, {{'4', '1'}}, {{'4', '2'}}, {{'4', '3'}}, {{'4', '4'}}, {{'4', '5'}}, {{'4', '6'}}, {{'4', '7'}}, {{'4', '8'}}, {{'4', '9'}}, + {{'5', '0'}}, {{'5', '1'}}, {{'5', '2'}}, {{'5', '3'}}, {{'5', '4'}}, {{'5', '5'}}, {{'5', '6'}}, {{'5', '7'}}, {{'5', '8'}}, {{'5', '9'}}, + {{'6', '0'}}, {{'6', '1'}}, {{'6', '2'}}, {{'6', '3'}}, {{'6', '4'}}, {{'6', '5'}}, {{'6', '6'}}, {{'6', '7'}}, {{'6', '8'}}, {{'6', '9'}}, + {{'7', '0'}}, {{'7', '1'}}, {{'7', '2'}}, {{'7', '3'}}, {{'7', '4'}}, {{'7', '5'}}, {{'7', '6'}}, {{'7', '7'}}, {{'7', '8'}}, {{'7', '9'}}, + {{'8', '0'}}, {{'8', '1'}}, {{'8', '2'}}, {{'8', '3'}}, {{'8', '4'}}, {{'8', '5'}}, {{'8', '6'}}, {{'8', '7'}}, {{'8', '8'}}, {{'8', '9'}}, + {{'9', '0'}}, {{'9', '1'}}, {{'9', '2'}}, {{'9', '3'}}, {{'9', '4'}}, {{'9', '5'}}, {{'9', '6'}}, {{'9', '7'}}, {{'9', '8'}}, {{'9', '9'}}, + } + }; + + // special case for "0" + if (x == 0) + { + o->write_character('0'); + return; + } + + // use a pointer to fill the buffer + auto buffer_ptr = number_buffer.begin(); + + const bool is_negative = std::is_same::value && !(x >= 0); // see issue #755 + number_unsigned_t abs_value; + + unsigned int n_chars; + + if (is_negative) + { + *buffer_ptr = '-'; + abs_value = remove_sign(static_cast(x)); + + // account one more byte for the minus sign + n_chars = 1 + count_digits(abs_value); + } + else + { + abs_value = static_cast(x); + n_chars = count_digits(abs_value); + } + + // spare 1 byte for '\0' + JSON_ASSERT(n_chars < number_buffer.size() - 1); + + // jump to the end to generate the string from backward + // so we later avoid reversing the result + buffer_ptr += n_chars; + + // Fast int2ascii implementation inspired by "Fastware" talk by Andrei Alexandrescu + // See: https://www.youtube.com/watch?v=o4-CwDo2zpg + while (abs_value >= 100) + { + const auto digits_index = static_cast((abs_value % 100)); + abs_value /= 100; + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + + if (abs_value >= 10) + { + const auto digits_index = static_cast(abs_value); + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + else + { + *(--buffer_ptr) = static_cast('0' + abs_value); + } + + o->write_characters(number_buffer.data(), n_chars); + } + + /*! + @brief dump a floating-point number + + Dump a given floating-point number to output stream @a o. Works internally + with @a number_buffer. + + @param[in] x floating-point number to dump + */ + void dump_float(number_float_t x) + { + // NaN / inf + if (!std::isfinite(x)) + { + o->write_characters("null", 4); + return; + } + + // If number_float_t is an IEEE-754 single or double precision number, + // use the Grisu2 algorithm to produce short numbers which are + // guaranteed to round-trip, using strtof and strtod, resp. + // + // NB: The test below works if == . + static constexpr bool is_ieee_single_or_double + = (std::numeric_limits::is_iec559 && std::numeric_limits::digits == 24 && std::numeric_limits::max_exponent == 128) || + (std::numeric_limits::is_iec559 && std::numeric_limits::digits == 53 && std::numeric_limits::max_exponent == 1024); + + dump_float(x, std::integral_constant()); + } + + void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/) + { + char* begin = number_buffer.data(); + char* end = ::nlohmann::detail::to_chars(begin, begin + number_buffer.size(), x); + + o->write_characters(begin, static_cast(end - begin)); + } + + void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/) + { + // get number of digits for a float -> text -> float round-trip + static constexpr auto d = std::numeric_limits::max_digits10; + + // the actual conversion + std::ptrdiff_t len = (std::snprintf)(number_buffer.data(), number_buffer.size(), "%.*g", d, x); + + // negative value indicates an error + JSON_ASSERT(len > 0); + // check if buffer was large enough + JSON_ASSERT(static_cast(len) < number_buffer.size()); + + // erase thousands separator + if (thousands_sep != '\0') + { + const auto end = std::remove(number_buffer.begin(), + number_buffer.begin() + len, thousands_sep); + std::fill(end, number_buffer.end(), '\0'); + JSON_ASSERT((end - number_buffer.begin()) <= len); + len = (end - number_buffer.begin()); + } + + // convert decimal point to '.' + if (decimal_point != '\0' && decimal_point != '.') + { + const auto dec_pos = std::find(number_buffer.begin(), number_buffer.end(), decimal_point); + if (dec_pos != number_buffer.end()) + { + *dec_pos = '.'; + } + } + + o->write_characters(number_buffer.data(), static_cast(len)); + + // determine if need to append ".0" + const bool value_is_int_like = + std::none_of(number_buffer.begin(), number_buffer.begin() + len + 1, + [](char c) + { + return c == '.' || c == 'e'; + }); + + if (value_is_int_like) + { + o->write_characters(".0", 2); + } + } + + /*! + @brief check whether a string is UTF-8 encoded + + The function checks each byte of a string whether it is UTF-8 encoded. The + result of the check is stored in the @a state parameter. The function must + be called initially with state 0 (accept). State 1 means the string must + be rejected, because the current byte is not allowed. If the string is + completely processed, but the state is non-zero, the string ended + prematurely; that is, the last byte indicated more bytes should have + followed. + + @param[in,out] state the state of the decoding + @param[in,out] codep codepoint (valid only if resulting state is UTF8_ACCEPT) + @param[in] byte next byte to decode + @return new state + + @note The function has been edited: a std::array is used. + + @copyright Copyright (c) 2008-2009 Bjoern Hoehrmann + @sa http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + */ + static std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const std::uint8_t byte) noexcept + { + static const std::array utf8d = + { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00..1F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20..3F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 40..5F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 60..7F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // 80..9F + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // A0..BF + 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // C0..DF + 0xA, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, // E0..EF + 0xB, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, // F0..FF + 0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, // s0..s0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, // s1..s2 + 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, // s3..s4 + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, // s5..s6 + 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // s7..s8 + } + }; + + const std::uint8_t type = utf8d[byte]; + + codep = (state != UTF8_ACCEPT) + ? (byte & 0x3fu) | (codep << 6u) + : (0xFFu >> type) & (byte); + + std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); + JSON_ASSERT(index < 400); + state = utf8d[index]; + return state; + } + + /* + * Overload to make the compiler happy while it is instantiating + * dump_integer for number_unsigned_t. + * Must never be called. + */ + number_unsigned_t remove_sign(number_unsigned_t x) + { + JSON_ASSERT(false); // LCOV_EXCL_LINE + return x; // LCOV_EXCL_LINE + } + + /* + * Helper function for dump_integer + * + * This function takes a negative signed integer and returns its absolute + * value as unsigned integer. The plus/minus shuffling is necessary as we can + * not directly remove the sign of an arbitrary signed integer as the + * absolute values of INT_MIN and INT_MAX are usually not the same. See + * #1708 for details. + */ + inline number_unsigned_t remove_sign(number_integer_t x) noexcept + { + JSON_ASSERT(x < 0 && x < (std::numeric_limits::max)()); + return static_cast(-(x + 1)) + 1; + } + + private: + /// the output of the serializer + output_adapter_t o = nullptr; + + /// a (hopefully) large enough character buffer + std::array number_buffer{{}}; + + /// the locale + const std::lconv* loc = nullptr; + /// the locale's thousand separator character + const char thousands_sep = '\0'; + /// the locale's decimal point character + const char decimal_point = '\0'; + + /// string buffer + std::array string_buffer{{}}; + + /// the indentation character + const char indent_char; + /// the indentation string + string_t indent_string; + + /// error_handler how to react on decoding errors + const error_handler_t error_handler; +}; +} // namespace detail +} // namespace nlohmann + +// #include + +// #include + +// #include + + +#include // less +#include // allocator +#include // pair +#include // vector + +namespace nlohmann +{ + +/// ordered_map: a minimal map-like container that preserves insertion order +/// for use within nlohmann::basic_json +template , + class Allocator = std::allocator>> + struct ordered_map : std::vector, Allocator> +{ + using key_type = Key; + using mapped_type = T; + using Container = std::vector, Allocator>; + using typename Container::iterator; + using typename Container::const_iterator; + using typename Container::size_type; + using typename Container::value_type; + + // Explicit constructors instead of `using Container::Container` + // otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4) + ordered_map(const Allocator& alloc = Allocator()) : Container{alloc} {} + template + ordered_map(It first, It last, const Allocator& alloc = Allocator()) + : Container{first, last, alloc} {} + ordered_map(std::initializer_list init, const Allocator& alloc = Allocator() ) + : Container{init, alloc} {} + + std::pair emplace(const key_type& key, T&& t) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return {it, false}; + } + } + Container::emplace_back(key, t); + return {--this->end(), true}; + } + + T& operator[](const Key& key) + { + return emplace(key, T{}).first->second; + } + + const T& operator[](const Key& key) const + { + return at(key); + } + + T& at(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it->second; + } + } + + throw std::out_of_range("key not found"); + } + + const T& at(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it->second; + } + } + + throw std::out_of_range("key not found"); + } + + size_type erase(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + // Since we cannot move const Keys, re-construct them in place + for (auto next = it; ++next != this->end(); ++it) + { + it->~value_type(); // Destroy but keep allocation + new (&*it) value_type{std::move(*next)}; + } + Container::pop_back(); + return 1; + } + } + return 0; + } + + iterator erase(iterator pos) + { + auto it = pos; + + // Since we cannot move const Keys, re-construct them in place + for (auto next = it; ++next != this->end(); ++it) + { + it->~value_type(); // Destroy but keep allocation + new (&*it) value_type{std::move(*next)}; + } + Container::pop_back(); + return pos; + } + + size_type count(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return 1; + } + } + return 0; + } + + iterator find(const Key& key) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it; + } + } + return Container::end(); + } + + const_iterator find(const Key& key) const + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == key) + { + return it; + } + } + return Container::end(); + } + + std::pair insert( value_type&& value ) + { + return emplace(value.first, std::move(value.second)); + } + + std::pair insert( const value_type& value ) + { + for (auto it = this->begin(); it != this->end(); ++it) + { + if (it->first == value.first) + { + return {it, false}; + } + } + Container::push_back(value); + return {--this->end(), true}; + } +}; + +} // namespace nlohmann + + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ + +/*! +@brief a class to store JSON values + +@tparam ObjectType type for JSON objects (`std::map` by default; will be used +in @ref object_t) +@tparam ArrayType type for JSON arrays (`std::vector` by default; will be used +in @ref array_t) +@tparam StringType type for JSON strings and object keys (`std::string` by +default; will be used in @ref string_t) +@tparam BooleanType type for JSON booleans (`bool` by default; will be used +in @ref boolean_t) +@tparam NumberIntegerType type for JSON integer numbers (`int64_t` by +default; will be used in @ref number_integer_t) +@tparam NumberUnsignedType type for JSON unsigned integer numbers (@c +`uint64_t` by default; will be used in @ref number_unsigned_t) +@tparam NumberFloatType type for JSON floating-point numbers (`double` by +default; will be used in @ref number_float_t) +@tparam BinaryType type for packed binary data for compatibility with binary +serialization formats (`std::vector` by default; will be used in +@ref binary_t) +@tparam AllocatorType type of the allocator to use (`std::allocator` by +default) +@tparam JSONSerializer the serializer to resolve internal calls to `to_json()` +and `from_json()` (@ref adl_serializer by default) + +@requirement The class satisfies the following concept requirements: +- Basic + - [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible): + JSON values can be default constructed. The result will be a JSON null + value. + - [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible): + A JSON value can be constructed from an rvalue argument. + - [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible): + A JSON value can be copy-constructed from an lvalue expression. + - [MoveAssignable](https://en.cppreference.com/w/cpp/named_req/MoveAssignable): + A JSON value van be assigned from an rvalue argument. + - [CopyAssignable](https://en.cppreference.com/w/cpp/named_req/CopyAssignable): + A JSON value can be copy-assigned from an lvalue expression. + - [Destructible](https://en.cppreference.com/w/cpp/named_req/Destructible): + JSON values can be destructed. +- Layout + - [StandardLayoutType](https://en.cppreference.com/w/cpp/named_req/StandardLayoutType): + JSON values have + [standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout): + All non-static data members are private and standard layout types, the + class has no virtual functions or (virtual) base classes. +- Library-wide + - [EqualityComparable](https://en.cppreference.com/w/cpp/named_req/EqualityComparable): + JSON values can be compared with `==`, see @ref + operator==(const_reference,const_reference). + - [LessThanComparable](https://en.cppreference.com/w/cpp/named_req/LessThanComparable): + JSON values can be compared with `<`, see @ref + operator<(const_reference,const_reference). + - [Swappable](https://en.cppreference.com/w/cpp/named_req/Swappable): + Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of + other compatible types, using unqualified function call @ref swap(). + - [NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer): + JSON values can be compared against `std::nullptr_t` objects which are used + to model the `null` value. +- Container + - [Container](https://en.cppreference.com/w/cpp/named_req/Container): + JSON values can be used like STL containers and provide iterator access. + - [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer); + JSON values can be used like STL containers and provide reverse iterator + access. + +@invariant The member variables @a m_value and @a m_type have the following +relationship: +- If `m_type == value_t::object`, then `m_value.object != nullptr`. +- If `m_type == value_t::array`, then `m_value.array != nullptr`. +- If `m_type == value_t::string`, then `m_value.string != nullptr`. +The invariants are checked by member function assert_invariant(). + +@internal +@note ObjectType trick from https://stackoverflow.com/a/9860911 +@endinternal + +@see [RFC 7159: The JavaScript Object Notation (JSON) Data Interchange +Format](http://rfc7159.net/rfc7159) + +@since version 1.0.0 + +@nosubgrouping +*/ +NLOHMANN_BASIC_JSON_TPL_DECLARATION +class basic_json +{ + private: + template friend struct detail::external_constructor; + friend ::nlohmann::json_pointer; + + template + friend class ::nlohmann::detail::parser; + friend ::nlohmann::detail::serializer; + template + friend class ::nlohmann::detail::iter_impl; + template + friend class ::nlohmann::detail::binary_writer; + template + friend class ::nlohmann::detail::binary_reader; + template + friend class ::nlohmann::detail::json_sax_dom_parser; + template + friend class ::nlohmann::detail::json_sax_dom_callback_parser; + + /// workaround type for MSVC + using basic_json_t = NLOHMANN_BASIC_JSON_TPL; + + // convenience aliases for types residing in namespace detail; + using lexer = ::nlohmann::detail::lexer_base; + + template + static ::nlohmann::detail::parser parser( + InputAdapterType adapter, + detail::parser_callback_tcb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false + ) + { + return ::nlohmann::detail::parser(std::move(adapter), + std::move(cb), allow_exceptions, ignore_comments); + } + + using primitive_iterator_t = ::nlohmann::detail::primitive_iterator_t; + template + using internal_iterator = ::nlohmann::detail::internal_iterator; + template + using iter_impl = ::nlohmann::detail::iter_impl; + template + using iteration_proxy = ::nlohmann::detail::iteration_proxy; + template using json_reverse_iterator = ::nlohmann::detail::json_reverse_iterator; + + template + using output_adapter_t = ::nlohmann::detail::output_adapter_t; + + template + using binary_reader = ::nlohmann::detail::binary_reader; + template using binary_writer = ::nlohmann::detail::binary_writer; + + using serializer = ::nlohmann::detail::serializer; + + public: + using value_t = detail::value_t; + /// JSON Pointer, see @ref nlohmann::json_pointer + using json_pointer = ::nlohmann::json_pointer; + template + using json_serializer = JSONSerializer; + /// how to treat decoding errors + using error_handler_t = detail::error_handler_t; + /// how to treat CBOR tags + using cbor_tag_handler_t = detail::cbor_tag_handler_t; + /// helper type for initializer lists of basic_json values + using initializer_list_t = std::initializer_list>; + + using input_format_t = detail::input_format_t; + /// SAX interface type, see @ref nlohmann::json_sax + using json_sax_t = json_sax; + + //////////////// + // exceptions // + //////////////// + + /// @name exceptions + /// Classes to implement user-defined exceptions. + /// @{ + + /// @copydoc detail::exception + using exception = detail::exception; + /// @copydoc detail::parse_error + using parse_error = detail::parse_error; + /// @copydoc detail::invalid_iterator + using invalid_iterator = detail::invalid_iterator; + /// @copydoc detail::type_error + using type_error = detail::type_error; + /// @copydoc detail::out_of_range + using out_of_range = detail::out_of_range; + /// @copydoc detail::other_error + using other_error = detail::other_error; + + /// @} + + + ///////////////////// + // container types // + ///////////////////// + + /// @name container types + /// The canonic container types to use @ref basic_json like any other STL + /// container. + /// @{ + + /// the type of elements in a basic_json container + using value_type = basic_json; + + /// the type of an element reference + using reference = value_type&; + /// the type of an element const reference + using const_reference = const value_type&; + + /// a type to represent differences between iterators + using difference_type = std::ptrdiff_t; + /// a type to represent container sizes + using size_type = std::size_t; + + /// the allocator type + using allocator_type = AllocatorType; + + /// the type of an element pointer + using pointer = typename std::allocator_traits::pointer; + /// the type of an element const pointer + using const_pointer = typename std::allocator_traits::const_pointer; + + /// an iterator for a basic_json container + using iterator = iter_impl; + /// a const iterator for a basic_json container + using const_iterator = iter_impl; + /// a reverse iterator for a basic_json container + using reverse_iterator = json_reverse_iterator; + /// a const reverse iterator for a basic_json container + using const_reverse_iterator = json_reverse_iterator; + + /// @} + + + /*! + @brief returns the allocator associated with the container + */ + static allocator_type get_allocator() + { + return allocator_type(); + } + + /*! + @brief returns version information on the library + + This function returns a JSON object with information about the library, + including the version number and information on the platform and compiler. + + @return JSON object holding version information + key | description + ----------- | --------------- + `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). + `copyright` | The copyright line for the library as string. + `name` | The name of the library as string. + `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. + `url` | The URL of the project as string. + `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). + + @liveexample{The following code shows an example output of the `meta()` + function.,meta} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @complexity Constant. + + @since 2.1.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json meta() + { + basic_json result; + + result["copyright"] = "(C) 2013-2020 Niels Lohmann"; + result["name"] = "JSON for Modern C++"; + result["url"] = "https://github.com/nlohmann/json"; + result["version"]["string"] = + std::to_string(NLOHMANN_JSON_VERSION_MAJOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_MINOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_PATCH); + result["version"]["major"] = NLOHMANN_JSON_VERSION_MAJOR; + result["version"]["minor"] = NLOHMANN_JSON_VERSION_MINOR; + result["version"]["patch"] = NLOHMANN_JSON_VERSION_PATCH; + +#ifdef _WIN32 + result["platform"] = "win32"; +#elif defined __linux__ + result["platform"] = "linux"; +#elif defined __APPLE__ + result["platform"] = "apple"; +#elif defined __unix__ + result["platform"] = "unix"; +#else + result["platform"] = "unknown"; +#endif + +#if defined(__ICC) || defined(__INTEL_COMPILER) + result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; +#elif defined(__clang__) + result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; +#elif defined(__GNUC__) || defined(__GNUG__) + result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; +#elif defined(__HP_cc) || defined(__HP_aCC) + result["compiler"] = "hp" +#elif defined(__IBMCPP__) + result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; +#elif defined(_MSC_VER) + result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; +#elif defined(__PGI) + result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; +#elif defined(__SUNPRO_CC) + result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; +#else + result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; +#endif + +#ifdef __cplusplus + result["compiler"]["c++"] = std::to_string(__cplusplus); +#else + result["compiler"]["c++"] = "unknown"; +#endif + return result; + } + + + /////////////////////////// + // JSON value data types // + /////////////////////////// + + /// @name JSON value data types + /// The data types to store a JSON value. These types are derived from + /// the template arguments passed to class @ref basic_json. + /// @{ + +#if defined(JSON_HAS_CPP_14) + // Use transparent comparator if possible, combined with perfect forwarding + // on find() and count() calls prevents unnecessary string construction. + using object_comparator_t = std::less<>; +#else + using object_comparator_t = std::less; +#endif + + /*! + @brief a type for an object + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON objects as follows: + > An object is an unordered collection of zero or more name/value pairs, + > where a name is a string and a value is a string, number, boolean, null, + > object, or array. + + To store objects in C++, a type is defined by the template parameters + described below. + + @tparam ObjectType the container to store objects (e.g., `std::map` or + `std::unordered_map`) + @tparam StringType the type of the keys or names (e.g., `std::string`). + The comparison function `std::less` is used to order elements + inside the container. + @tparam AllocatorType the allocator to use for objects (e.g., + `std::allocator`) + + #### Default type + + With the default values for @a ObjectType (`std::map`), @a StringType + (`std::string`), and @a AllocatorType (`std::allocator`), the default + value for @a object_t is: + + @code {.cpp} + std::map< + std::string, // key_type + basic_json, // value_type + std::less, // key_compare + std::allocator> // allocator_type + > + @endcode + + #### Behavior + + The choice of @a object_t influences the behavior of the JSON class. With + the default type, objects have the following behavior: + + - When all names are unique, objects will be interoperable in the sense + that all software implementations receiving that object will agree on + the name-value mappings. + - When the names within an object are not unique, it is unspecified which + one of the values for a given key will be chosen. For instance, + `{"key": 2, "key": 1}` could be equal to either `{"key": 1}` or + `{"key": 2}`. + - Internally, name/value pairs are stored in lexicographical order of the + names. Objects will also be serialized (see @ref dump) in this order. + For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored + and serialized as `{"a": 2, "b": 1}`. + - When comparing objects, the order of the name/value pairs is irrelevant. + This makes objects interoperable in the sense that they will not be + affected by these differences. For instance, `{"b": 1, "a": 2}` and + `{"a": 2, "b": 1}` will be treated as equal. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the object's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON object. + + #### Storage + + Objects are stored as pointers in a @ref basic_json type. That is, for any + access to object values, a pointer of type `object_t*` must be + dereferenced. + + @sa @ref array_t -- type for an array value + + @since version 1.0.0 + + @note The order name/value pairs are added to the object is *not* + preserved by the library. Therefore, iterating an object may return + name/value pairs in a different order than they were originally stored. In + fact, keys will be traversed in alphabetical order as `std::map` with + `std::less` is used by default. Please note this behavior conforms to [RFC + 7159](http://rfc7159.net/rfc7159), because any order implements the + specified "unordered" nature of JSON objects. + */ + using object_t = ObjectType>>; + + /*! + @brief a type for an array + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON arrays as follows: + > An array is an ordered sequence of zero or more values. + + To store objects in C++, a type is defined by the template parameters + explained below. + + @tparam ArrayType container type to store arrays (e.g., `std::vector` or + `std::list`) + @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) + + #### Default type + + With the default values for @a ArrayType (`std::vector`) and @a + AllocatorType (`std::allocator`), the default value for @a array_t is: + + @code {.cpp} + std::vector< + basic_json, // value_type + std::allocator // allocator_type + > + @endcode + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the array's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON array. + + #### Storage + + Arrays are stored as pointers in a @ref basic_json type. That is, for any + access to array values, a pointer of type `array_t*` must be dereferenced. + + @sa @ref object_t -- type for an object value + + @since version 1.0.0 + */ + using array_t = ArrayType>; + + /*! + @brief a type for a string + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON strings as follows: + > A string is a sequence of zero or more Unicode characters. + + To store objects in C++, a type is defined by the template parameter + described below. Unicode values are split by the JSON class into + byte-sized characters during deserialization. + + @tparam StringType the container to store strings (e.g., `std::string`). + Note this container is used for keys/names in objects, see @ref object_t. + + #### Default type + + With the default values for @a StringType (`std::string`), the default + value for @a string_t is: + + @code {.cpp} + std::string + @endcode + + #### Encoding + + Strings are stored in UTF-8 encoding. Therefore, functions like + `std::string::size()` or `std::string::length()` return the number of + bytes in the string rather than the number of characters or glyphs. + + #### String comparison + + [RFC 7159](http://rfc7159.net/rfc7159) states: + > Software implementations are typically required to test names of object + > members for equality. Implementations that transform the textual + > representation into sequences of Unicode code units and then perform the + > comparison numerically, code unit by code unit, are interoperable in the + > sense that implementations will agree in all cases on equality or + > inequality of two strings. For example, implementations that compare + > strings with escaped characters unconverted may incorrectly find that + > `"a\\b"` and `"a\u005Cb"` are not equal. + + This implementation is interoperable as it does compare strings code unit + by code unit. + + #### Storage + + String values are stored as pointers in a @ref basic_json type. That is, + for any access to string values, a pointer of type `string_t*` must be + dereferenced. + + @since version 1.0.0 + */ + using string_t = StringType; + + /*! + @brief a type for a boolean + + [RFC 7159](http://rfc7159.net/rfc7159) implicitly describes a boolean as a + type which differentiates the two literals `true` and `false`. + + To store objects in C++, a type is defined by the template parameter @a + BooleanType which chooses the type to use. + + #### Default type + + With the default values for @a BooleanType (`bool`), the default value for + @a boolean_t is: + + @code {.cpp} + bool + @endcode + + #### Storage + + Boolean values are stored directly inside a @ref basic_json type. + + @since version 1.0.0 + */ + using boolean_t = BooleanType; + + /*! + @brief a type for a number (integer) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store integer numbers in C++, a type is defined by the template + parameter @a NumberIntegerType which chooses the type to use. + + #### Default type + + With the default values for @a NumberIntegerType (`int64_t`), the default + value for @a number_integer_t is: + + @code {.cpp} + int64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `9223372036854775807` (INT64_MAX) and the minimal integer number + that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers + that are out of range will yield over/underflow when used in a + constructor. During deserialization, too large or small integer numbers + will be automatically be stored as @ref number_unsigned_t or @ref + number_float_t. + + [RFC 7159](http://rfc7159.net/rfc7159) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange of the exactly supported range [INT64_MIN, + INT64_MAX], this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa @ref number_float_t -- type for number values (floating-point) + + @sa @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_integer_t = NumberIntegerType; + + /*! + @brief a type for a number (unsigned) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store unsigned integer numbers in C++, a type is defined by the + template parameter @a NumberUnsignedType which chooses the type to use. + + #### Default type + + With the default values for @a NumberUnsignedType (`uint64_t`), the + default value for @a number_unsigned_t is: + + @code {.cpp} + uint64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `18446744073709551615` (UINT64_MAX) and the minimal integer + number that can be stored is `0`. Integer numbers that are out of range + will yield over/underflow when used in a constructor. During + deserialization, too large or small integer numbers will be automatically + be stored as @ref number_integer_t or @ref number_float_t. + + [RFC 7159](http://rfc7159.net/rfc7159) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange (when considered in conjunction with the + number_integer_t type) of the exactly supported range [0, UINT64_MAX], + this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa @ref number_float_t -- type for number values (floating-point) + @sa @ref number_integer_t -- type for number values (integer) + + @since version 2.0.0 + */ + using number_unsigned_t = NumberUnsignedType; + + /*! + @brief a type for a number (floating-point) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store floating-point numbers in C++, a type is defined by the template + parameter @a NumberFloatType which chooses the type to use. + + #### Default type + + With the default values for @a NumberFloatType (`double`), the default + value for @a number_float_t is: + + @code {.cpp} + double + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in floating-point literals will be ignored. Internally, + the value will be stored as decimal number. For instance, the C++ + floating-point literal `01.2` will be serialized to `1.2`. During + deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) states: + > This specification allows implementations to set limits on the range and + > precision of numbers accepted. Since software that implements IEEE + > 754-2008 binary64 (double precision) numbers is generally available and + > widely used, good interoperability can be achieved by implementations + > that expect no more precision or range than these provide, in the sense + > that implementations will approximate JSON numbers within the expected + > precision. + + This implementation does exactly follow this approach, as it uses double + precision floating-point numbers. Note values smaller than + `-1.79769313486232e+308` and values greater than `1.79769313486232e+308` + will be stored as NaN internally and be serialized to `null`. + + #### Storage + + Floating-point number values are stored directly inside a @ref basic_json + type. + + @sa @ref number_integer_t -- type for number values (integer) + + @sa @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_float_t = NumberFloatType; + + /*! + @brief a type for a packed binary type + + This type is a type designed to carry binary data that appears in various + serialized formats, such as CBOR's Major Type 2, MessagePack's bin, and + BSON's generic binary subtype. This type is NOT a part of standard JSON and + exists solely for compatibility with these binary types. As such, it is + simply defined as an ordered sequence of zero or more byte values. + + Additionally, as an implementation detail, the subtype of the binary data is + carried around as a `std::uint8_t`, which is compatible with both of the + binary data formats that use binary subtyping, (though the specific + numbering is incompatible with each other, and it is up to the user to + translate between them). + + [CBOR's RFC 7049](https://tools.ietf.org/html/rfc7049) describes this type + as: + > Major type 2: a byte string. The string's length in bytes is represented + > following the rules for positive integers (major type 0). + + [MessagePack's documentation on the bin type + family](https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family) + describes this type as: + > Bin format family stores an byte array in 2, 3, or 5 bytes of extra bytes + > in addition to the size of the byte array. + + [BSON's specifications](http://bsonspec.org/spec.html) describe several + binary types; however, this type is intended to represent the generic binary + type which has the description: + > Generic binary subtype - This is the most commonly used binary subtype and + > should be the 'default' for drivers and tools. + + None of these impose any limitations on the internal representation other + than the basic unit of storage be some type of array whose parts are + decomposable into bytes. + + The default representation of this binary format is a + `std::vector`, which is a very common way to represent a byte + array in modern C++. + + #### Default type + + The default values for @a BinaryType is `std::vector` + + #### Storage + + Binary Arrays are stored as pointers in a @ref basic_json type. That is, + for any access to array values, a pointer of the type `binary_t*` must be + dereferenced. + + #### Notes on subtypes + + - CBOR + - Binary values are represented as byte strings. No subtypes are + supported and will be ignored when CBOR is written. + - MessagePack + - If a subtype is given and the binary array contains exactly 1, 2, 4, 8, + or 16 elements, the fixext family (fixext1, fixext2, fixext4, fixext8) + is used. For other sizes, the ext family (ext8, ext16, ext32) is used. + The subtype is then added as singed 8-bit integer. + - If no subtype is given, the bin family (bin8, bin16, bin32) is used. + - BSON + - If a subtype is given, it is used and added as unsigned 8-bit integer. + - If no subtype is given, the generic binary subtype 0x00 is used. + + @sa @ref binary -- create a binary array + + @since version 3.8.0 + */ + using binary_t = nlohmann::byte_container_with_subtype; + /// @} + + private: + + /// helper for exception-safe object creation + template + JSON_HEDLEY_RETURNS_NON_NULL + static T* create(Args&& ... args) + { + AllocatorType alloc; + using AllocatorTraits = std::allocator_traits>; + + auto deleter = [&](T * object) + { + AllocatorTraits::deallocate(alloc, object, 1); + }; + std::unique_ptr object(AllocatorTraits::allocate(alloc, 1), deleter); + AllocatorTraits::construct(alloc, object.get(), std::forward(args)...); + JSON_ASSERT(object != nullptr); + return object.release(); + } + + //////////////////////// + // JSON value storage // + //////////////////////// + + /*! + @brief a JSON value + + The actual storage for a JSON value of the @ref basic_json class. This + union combines the different storage types for the JSON value types + defined in @ref value_t. + + JSON type | value_t type | used type + --------- | --------------- | ------------------------ + object | object | pointer to @ref object_t + array | array | pointer to @ref array_t + string | string | pointer to @ref string_t + boolean | boolean | @ref boolean_t + number | number_integer | @ref number_integer_t + number | number_unsigned | @ref number_unsigned_t + number | number_float | @ref number_float_t + binary | binary | pointer to @ref binary_t + null | null | *no value is stored* + + @note Variable-length types (objects, arrays, and strings) are stored as + pointers. The size of the union should not exceed 64 bits if the default + value types are used. + + @since version 1.0.0 + */ + union json_value + { + /// object (stored with pointer to save storage) + object_t* object; + /// array (stored with pointer to save storage) + array_t* array; + /// string (stored with pointer to save storage) + string_t* string; + /// binary (stored with pointer to save storage) + binary_t* binary; + /// boolean + boolean_t boolean; + /// number (integer) + number_integer_t number_integer; + /// number (unsigned integer) + number_unsigned_t number_unsigned; + /// number (floating-point) + number_float_t number_float; + + /// default constructor (for null values) + json_value() = default; + /// constructor for booleans + json_value(boolean_t v) noexcept : boolean(v) {} + /// constructor for numbers (integer) + json_value(number_integer_t v) noexcept : number_integer(v) {} + /// constructor for numbers (unsigned) + json_value(number_unsigned_t v) noexcept : number_unsigned(v) {} + /// constructor for numbers (floating-point) + json_value(number_float_t v) noexcept : number_float(v) {} + /// constructor for empty values of a given type + json_value(value_t t) + { + switch (t) + { + case value_t::object: + { + object = create(); + break; + } + + case value_t::array: + { + array = create(); + break; + } + + case value_t::string: + { + string = create(""); + break; + } + + case value_t::binary: + { + binary = create(); + break; + } + + case value_t::boolean: + { + boolean = boolean_t(false); + break; + } + + case value_t::number_integer: + { + number_integer = number_integer_t(0); + break; + } + + case value_t::number_unsigned: + { + number_unsigned = number_unsigned_t(0); + break; + } + + case value_t::number_float: + { + number_float = number_float_t(0.0); + break; + } + + case value_t::null: + { + object = nullptr; // silence warning, see #821 + break; + } + + default: + { + object = nullptr; // silence warning, see #821 + if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) + { + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.9.1")); // LCOV_EXCL_LINE + } + break; + } + } + } + + /// constructor for strings + json_value(const string_t& value) + { + string = create(value); + } + + /// constructor for rvalue strings + json_value(string_t&& value) + { + string = create(std::move(value)); + } + + /// constructor for objects + json_value(const object_t& value) + { + object = create(value); + } + + /// constructor for rvalue objects + json_value(object_t&& value) + { + object = create(std::move(value)); + } + + /// constructor for arrays + json_value(const array_t& value) + { + array = create(value); + } + + /// constructor for rvalue arrays + json_value(array_t&& value) + { + array = create(std::move(value)); + } + + /// constructor for binary arrays + json_value(const typename binary_t::container_type& value) + { + binary = create(value); + } + + /// constructor for rvalue binary arrays + json_value(typename binary_t::container_type&& value) + { + binary = create(std::move(value)); + } + + /// constructor for binary arrays (internal type) + json_value(const binary_t& value) + { + binary = create(value); + } + + /// constructor for rvalue binary arrays (internal type) + json_value(binary_t&& value) + { + binary = create(std::move(value)); + } + + void destroy(value_t t) noexcept + { + // flatten the current json_value to a heap-allocated stack + std::vector stack; + + // move the top-level items to stack + if (t == value_t::array) + { + stack.reserve(array->size()); + std::move(array->begin(), array->end(), std::back_inserter(stack)); + } + else if (t == value_t::object) + { + stack.reserve(object->size()); + for (auto&& it : *object) + { + stack.push_back(std::move(it.second)); + } + } + + while (!stack.empty()) + { + // move the last item to local variable to be processed + basic_json current_item(std::move(stack.back())); + stack.pop_back(); + + // if current_item is array/object, move + // its children to the stack to be processed later + if (current_item.is_array()) + { + std::move(current_item.m_value.array->begin(), current_item.m_value.array->end(), + std::back_inserter(stack)); + + current_item.m_value.array->clear(); + } + else if (current_item.is_object()) + { + for (auto&& it : *current_item.m_value.object) + { + stack.push_back(std::move(it.second)); + } + + current_item.m_value.object->clear(); + } + + // it's now safe that current_item get destructed + // since it doesn't have any children + } + + switch (t) + { + case value_t::object: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, object); + std::allocator_traits::deallocate(alloc, object, 1); + break; + } + + case value_t::array: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, array); + std::allocator_traits::deallocate(alloc, array, 1); + break; + } + + case value_t::string: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, string); + std::allocator_traits::deallocate(alloc, string, 1); + break; + } + + case value_t::binary: + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, binary); + std::allocator_traits::deallocate(alloc, binary, 1); + break; + } + + default: + { + break; + } + } + } + }; + + /*! + @brief checks the class invariants + + This function asserts the class invariants. It needs to be called at the + end of every constructor to make sure that created objects respect the + invariant. Furthermore, it has to be called each time the type of a JSON + value is changed, because the invariant expresses a relationship between + @a m_type and @a m_value. + */ + void assert_invariant() const noexcept + { + JSON_ASSERT(m_type != value_t::object || m_value.object != nullptr); + JSON_ASSERT(m_type != value_t::array || m_value.array != nullptr); + JSON_ASSERT(m_type != value_t::string || m_value.string != nullptr); + JSON_ASSERT(m_type != value_t::binary || m_value.binary != nullptr); + } + + public: + ////////////////////////// + // JSON parser callback // + ////////////////////////// + + /*! + @brief parser event types + + The parser callback distinguishes the following events: + - `object_start`: the parser read `{` and started to process a JSON object + - `key`: the parser read a key of a value in an object + - `object_end`: the parser read `}` and finished processing a JSON object + - `array_start`: the parser read `[` and started to process a JSON array + - `array_end`: the parser read `]` and finished processing a JSON array + - `value`: the parser finished reading a JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + @sa @ref parser_callback_t for more information and examples + */ + using parse_event_t = detail::parse_event_t; + + /*! + @brief per-element parser callback type + + With a parser callback function, the result of parsing a JSON text can be + influenced. When passed to @ref parse, it is called on certain events + (passed as @ref parse_event_t via parameter @a event) with a set recursion + depth @a depth and context JSON value @a parsed. The return value of the + callback function is a boolean indicating whether the element that emitted + the callback shall be kept or not. + + We distinguish six scenarios (determined by the event type) in which the + callback function can be called. The following table describes the values + of the parameters @a depth, @a event, and @a parsed. + + parameter @a event | description | parameter @a depth | parameter @a parsed + ------------------ | ----------- | ------------------ | ------------------- + parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded + parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key + parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object + parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded + parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array + parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + Discarding a value (i.e., returning `false`) has different effects + depending on the context in which function was called: + + - Discarded values in structured types are skipped. That is, the parser + will behave as if the discarded value was never read. + - In case a value outside a structured type is skipped, it is replaced + with `null`. This case happens if the top-level element is skipped. + + @param[in] depth the depth of the recursion during parsing + + @param[in] event an event of type parse_event_t indicating the context in + the callback function has been called + + @param[in,out] parsed the current intermediate parse result; note that + writing to this value has no effect for parse_event_t::key events + + @return Whether the JSON value which called the function during parsing + should be kept (`true`) or not (`false`). In the latter case, it is either + skipped completely or replaced by an empty discarded object. + + @sa @ref parse for examples + + @since version 1.0.0 + */ + using parser_callback_t = detail::parser_callback_t; + + ////////////////// + // constructors // + ////////////////// + + /// @name constructors and destructors + /// Constructors of class @ref basic_json, copy/move constructor, copy + /// assignment, static functions creating objects, and the destructor. + /// @{ + + /*! + @brief create an empty value with a given type + + Create an empty JSON value with a given type. The value will be default + initialized with an empty value which depends on the type: + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + object | `{}` + array | `[]` + binary | empty array + + @param[in] v the type of the value to create + + @complexity Constant. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows the constructor for different @ref + value_t values,basic_json__value_t} + + @sa @ref clear() -- restores the postcondition of this constructor + + @since version 1.0.0 + */ + basic_json(const value_t v) + : m_type(v), m_value(v) + { + assert_invariant(); + } + + /*! + @brief create a null object + + Create a `null` JSON value. It either takes a null pointer as parameter + (explicitly creating `null`) or no parameter (implicitly creating `null`). + The passed null pointer itself is not read -- it is only used to choose + the right constructor. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @liveexample{The following code shows the constructor with and without a + null pointer parameter.,basic_json__nullptr_t} + + @since version 1.0.0 + */ + basic_json(std::nullptr_t = nullptr) noexcept + : basic_json(value_t::null) + { + assert_invariant(); + } + + /*! + @brief create a JSON value + + This is a "catch all" constructor for all compatible JSON types; that is, + types for which a `to_json()` method exists. The constructor forwards the + parameter @a val to that method (to `json_serializer::to_json` method + with `U = uncvref_t`, to be exact). + + Template type @a CompatibleType includes, but is not limited to, the + following types: + - **arrays**: @ref array_t and all kinds of compatible containers such as + `std::vector`, `std::deque`, `std::list`, `std::forward_list`, + `std::array`, `std::valarray`, `std::set`, `std::unordered_set`, + `std::multiset`, and `std::unordered_multiset` with a `value_type` from + which a @ref basic_json value can be constructed. + - **objects**: @ref object_t and all kinds of compatible associative + containers such as `std::map`, `std::unordered_map`, `std::multimap`, + and `std::unordered_multimap` with a `key_type` compatible to + @ref string_t and a `value_type` from which a @ref basic_json value can + be constructed. + - **strings**: @ref string_t, string literals, and all compatible string + containers can be used. + - **numbers**: @ref number_integer_t, @ref number_unsigned_t, + @ref number_float_t, and all convertible number types such as `int`, + `size_t`, `int64_t`, `float` or `double` can be used. + - **boolean**: @ref boolean_t / `bool` can be used. + - **binary**: @ref binary_t / `std::vector` may be used, + unfortunately because string literals cannot be distinguished from binary + character arrays by the C++ type system, all types compatible with `const + char*` will be directed to the string constructor instead. This is both + for backwards compatibility, and due to the fact that a binary type is not + a standard JSON type. + + See the examples below. + + @tparam CompatibleType a type such that: + - @a CompatibleType is not derived from `std::istream`, + - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move + constructors), + - @a CompatibleType is not a different @ref basic_json type (i.e. with different template arguments) + - @a CompatibleType is not a @ref basic_json nested type (e.g., + @ref json_pointer, @ref iterator, etc ...) + - @ref @ref json_serializer has a + `to_json(basic_json_t&, CompatibleType&&)` method + + @tparam U = `uncvref_t` + + @param[in] val the value to be forwarded to the respective constructor + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @liveexample{The following code shows the constructor with several + compatible types.,basic_json__CompatibleType} + + @since version 2.1.0 + */ + template < typename CompatibleType, + typename U = detail::uncvref_t, + detail::enable_if_t < + !detail::is_basic_json::value && detail::is_compatible_type::value, int > = 0 > + basic_json(CompatibleType && val) noexcept(noexcept( + JSONSerializer::to_json(std::declval(), + std::forward(val)))) + { + JSONSerializer::to_json(*this, std::forward(val)); + assert_invariant(); + } + + /*! + @brief create a JSON value from an existing one + + This is a constructor for existing @ref basic_json types. + It does not hijack copy/move constructors, since the parameter has different + template arguments than the current ones. + + The constructor tries to convert the internal @ref m_value of the parameter. + + @tparam BasicJsonType a type such that: + - @a BasicJsonType is a @ref basic_json type. + - @a BasicJsonType has different template arguments than @ref basic_json_t. + + @param[in] val the @ref basic_json value to be converted. + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @since version 3.2.0 + */ + template < typename BasicJsonType, + detail::enable_if_t < + detail::is_basic_json::value&& !std::is_same::value, int > = 0 > + basic_json(const BasicJsonType& val) + { + using other_boolean_t = typename BasicJsonType::boolean_t; + using other_number_float_t = typename BasicJsonType::number_float_t; + using other_number_integer_t = typename BasicJsonType::number_integer_t; + using other_number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using other_string_t = typename BasicJsonType::string_t; + using other_object_t = typename BasicJsonType::object_t; + using other_array_t = typename BasicJsonType::array_t; + using other_binary_t = typename BasicJsonType::binary_t; + + switch (val.type()) + { + case value_t::boolean: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_float: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_integer: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::number_unsigned: + JSONSerializer::to_json(*this, val.template get()); + break; + case value_t::string: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::object: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::array: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::binary: + JSONSerializer::to_json(*this, val.template get_ref()); + break; + case value_t::null: + *this = nullptr; + break; + case value_t::discarded: + m_type = value_t::discarded; + break; + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + assert_invariant(); + } + + /*! + @brief create a container (array or object) from an initializer list + + Creates a JSON value of type array or object from the passed initializer + list @a init. In case @a type_deduction is `true` (default), the type of + the JSON value to be created is deducted from the initializer list @a init + according to the following rules: + + 1. If the list is empty, an empty JSON object value `{}` is created. + 2. If the list consists of pairs whose first element is a string, a JSON + object value is created where the first elements of the pairs are + treated as keys and the second elements are as values. + 3. In all other cases, an array is created. + + The rules aim to create the best fit between a C++ initializer list and + JSON values. The rationale is as follows: + + 1. The empty initializer list is written as `{}` which is exactly an empty + JSON object. + 2. C++ has no way of describing mapped types other than to list a list of + pairs. As JSON requires that keys must be of type string, rule 2 is the + weakest constraint one can pose on initializer lists to interpret them + as an object. + 3. In all other cases, the initializer list could not be interpreted as + JSON object type, so interpreting it as JSON array type is safe. + + With the rules described above, the following JSON values cannot be + expressed by an initializer list: + + - the empty array (`[]`): use @ref array(initializer_list_t) + with an empty initializer list in this case + - arrays whose elements satisfy rule 2: use @ref + array(initializer_list_t) with the same initializer list + in this case + + @note When used without parentheses around an empty initializer list, @ref + basic_json() is called instead of this function, yielding the JSON null + value. + + @param[in] init initializer list with JSON values + + @param[in] type_deduction internal parameter; when set to `true`, the type + of the JSON value is deducted from the initializer list @a init; when set + to `false`, the type provided via @a manual_type is forced. This mode is + used by the functions @ref array(initializer_list_t) and + @ref object(initializer_list_t). + + @param[in] manual_type internal parameter; when @a type_deduction is set + to `false`, the created JSON value will use the provided type (only @ref + value_t::array and @ref value_t::object are valid); when @a type_deduction + is set to `true`, this parameter has no effect + + @throw type_error.301 if @a type_deduction is `false`, @a manual_type is + `value_t::object`, but @a init contains an element which is not a pair + whose first element is a string. In this case, the constructor could not + create an object. If @a type_deduction would have be `true`, an array + would have been created. See @ref object(initializer_list_t) + for an example. + + @complexity Linear in the size of the initializer list @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows how JSON values are created from + initializer lists.,basic_json__list_init_t} + + @sa @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + @sa @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + basic_json(initializer_list_t init, + bool type_deduction = true, + value_t manual_type = value_t::array) + { + // check if each element is an array with two elements whose first + // element is a string + bool is_an_object = std::all_of(init.begin(), init.end(), + [](const detail::json_ref& element_ref) + { + return element_ref->is_array() && element_ref->size() == 2 && (*element_ref)[0].is_string(); + }); + + // adjust type if type deduction is not wanted + if (!type_deduction) + { + // if array is wanted, do not create an object though possible + if (manual_type == value_t::array) + { + is_an_object = false; + } + + // if object is wanted but impossible, throw an exception + if (JSON_HEDLEY_UNLIKELY(manual_type == value_t::object && !is_an_object)) + { + JSON_THROW(type_error::create(301, "cannot create object from initializer list")); + } + } + + if (is_an_object) + { + // the initializer list is a list of pairs -> create object + m_type = value_t::object; + m_value = value_t::object; + + std::for_each(init.begin(), init.end(), [this](const detail::json_ref& element_ref) + { + auto element = element_ref.moved_or_copied(); + m_value.object->emplace( + std::move(*((*element.m_value.array)[0].m_value.string)), + std::move((*element.m_value.array)[1])); + }); + } + else + { + // the initializer list describes an array -> create array + m_type = value_t::array; + m_value.array = create(init.begin(), init.end()); + } + + assert_invariant(); + } + + /*! + @brief explicitly create a binary array (without subtype) + + Creates a JSON binary array value from a given binary container. Binary + values are part of various binary formats, such as CBOR, MessagePack, and + BSON. This constructor is used to create a value for serialization to those + formats. + + @note Note, this function exists because of the difficulty in correctly + specifying the correct template overload in the standard value ctor, as both + JSON arrays and JSON binary arrays are backed with some form of a + `std::vector`. Because JSON binary arrays are a non-standard extension it + was decided that it would be best to prevent automatic initialization of a + binary array type, for backwards compatibility and so it does not happen on + accident. + + @param[in] init container containing bytes to use as binary type + + @return JSON binary array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @since version 3.8.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(const typename binary_t::container_type& init) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = init; + return res; + } + + /*! + @brief explicitly create a binary array (with subtype) + + Creates a JSON binary array value from a given binary container. Binary + values are part of various binary formats, such as CBOR, MessagePack, and + BSON. This constructor is used to create a value for serialization to those + formats. + + @note Note, this function exists because of the difficulty in correctly + specifying the correct template overload in the standard value ctor, as both + JSON arrays and JSON binary arrays are backed with some form of a + `std::vector`. Because JSON binary arrays are a non-standard extension it + was decided that it would be best to prevent automatic initialization of a + binary array type, for backwards compatibility and so it does not happen on + accident. + + @param[in] init container containing bytes to use as binary type + @param[in] subtype subtype to use in MessagePack and BSON + + @return JSON binary array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @since version 3.8.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(const typename binary_t::container_type& init, std::uint8_t subtype) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = binary_t(init, subtype); + return res; + } + + /// @copydoc binary(const typename binary_t::container_type&) + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(typename binary_t::container_type&& init) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = std::move(init); + return res; + } + + /// @copydoc binary(const typename binary_t::container_type&, std::uint8_t) + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json binary(typename binary_t::container_type&& init, std::uint8_t subtype) + { + auto res = basic_json(); + res.m_type = value_t::binary; + res.m_value = binary_t(std::move(init), subtype); + return res; + } + + /*! + @brief explicitly create an array from an initializer list + + Creates a JSON array value from a given initializer list. That is, given a + list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the + initializer list is empty, the empty array `[]` is created. + + @note This function is only needed to express two edge cases that cannot + be realized with the initializer list constructor (@ref + basic_json(initializer_list_t, bool, value_t)). These cases + are: + 1. creating an array whose elements are all pairs whose first element is a + string -- in this case, the initializer list constructor would create an + object, taking the first elements as keys + 2. creating an empty array -- passing the empty initializer list to the + initializer list constructor yields an empty object + + @param[in] init initializer list with JSON values to create an array from + (optional) + + @return JSON array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `array` + function.,array} + + @sa @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json array(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::array); + } + + /*! + @brief explicitly create an object from an initializer list + + Creates a JSON object value from a given initializer list. The initializer + lists elements must be pairs, and their first elements must be strings. If + the initializer list is empty, the empty object `{}` is created. + + @note This function is only added for symmetry reasons. In contrast to the + related function @ref array(initializer_list_t), there are + no cases which can only be expressed by this function. That is, any + initializer list @a init can also be passed to the initializer list + constructor @ref basic_json(initializer_list_t, bool, value_t). + + @param[in] init initializer list to create an object from (optional) + + @return JSON object value + + @throw type_error.301 if @a init is not a list of pairs whose first + elements are strings. In this case, no object can be created. When such a + value is passed to @ref basic_json(initializer_list_t, bool, value_t), + an array would have been created from the passed initializer list @a init. + See example below. + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `object` + function.,object} + + @sa @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + + @since version 1.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json object(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::object); + } + + /*! + @brief construct an array with count copies of given value + + Constructs a JSON array value by creating @a cnt copies of a passed value. + In case @a cnt is `0`, an empty array is created. + + @param[in] cnt the number of JSON copies of @a val to create + @param[in] val the JSON value to copy + + @post `std::distance(begin(),end()) == cnt` holds. + + @complexity Linear in @a cnt. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows examples for the @ref + basic_json(size_type\, const basic_json&) + constructor.,basic_json__size_type_basic_json} + + @since version 1.0.0 + */ + basic_json(size_type cnt, const basic_json& val) + : m_type(value_t::array) + { + m_value.array = create(cnt, val); + assert_invariant(); + } + + /*! + @brief construct a JSON container given an iterator range + + Constructs the JSON value with the contents of the range `[first, last)`. + The semantics depends on the different types a JSON value can have: + - In case of a null type, invalid_iterator.206 is thrown. + - In case of other primitive types (number, boolean, or string), @a first + must be `begin()` and @a last must be `end()`. In this case, the value is + copied. Otherwise, invalid_iterator.204 is thrown. + - In case of structured types (array, object), the constructor behaves as + similar versions for `std::vector` or `std::map`; that is, a JSON array + or object is constructed from the values in the range. + + @tparam InputIT an input iterator type (@ref iterator or @ref + const_iterator) + + @param[in] first begin of the range to copy from (included) + @param[in] last end of the range to copy from (excluded) + + @pre Iterators @a first and @a last must be initialized. **This + precondition is enforced with an assertion (see warning).** If + assertions are switched off, a violation of this precondition yields + undefined behavior. + + @pre Range `[first, last)` is valid. Usually, this precondition cannot be + checked efficiently. Only certain edge cases are detected; see the + description of the exceptions below. A violation of this precondition + yields undefined behavior. + + @warning A precondition is enforced with a runtime assertion that will + result in calling `std::abort` if this precondition is not met. + Assertions can be disabled by defining `NDEBUG` at compile time. + See https://en.cppreference.com/w/cpp/error/assert for more + information. + + @throw invalid_iterator.201 if iterators @a first and @a last are not + compatible (i.e., do not belong to the same JSON value). In this case, + the range `[first, last)` is undefined. + @throw invalid_iterator.204 if iterators @a first and @a last belong to a + primitive type (number, boolean, or string), but @a first does not point + to the first element any more. In this case, the range `[first, last)` is + undefined. See example code below. + @throw invalid_iterator.206 if iterators @a first and @a last belong to a + null value. In this case, the range `[first, last)` is undefined. + + @complexity Linear in distance between @a first and @a last. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows several ways to create JSON values by + specifying a subrange with iterators.,basic_json__InputIt_InputIt} + + @since version 1.0.0 + */ + template < class InputIT, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type = 0 > + basic_json(InputIT first, InputIT last) + { + JSON_ASSERT(first.m_object != nullptr); + JSON_ASSERT(last.m_object != nullptr); + + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(201, "iterators are not compatible")); + } + + // copy type from first iterator + m_type = first.m_object->m_type; + + // check if iterator range is complete for primitive values + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + { + if (JSON_HEDLEY_UNLIKELY(!first.m_it.primitive_iterator.is_begin() + || !last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range")); + } + break; + } + + default: + break; + } + + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = first.m_object->m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = first.m_object->m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value.number_float = first.m_object->m_value.number_float; + break; + } + + case value_t::boolean: + { + m_value.boolean = first.m_object->m_value.boolean; + break; + } + + case value_t::string: + { + m_value = *first.m_object->m_value.string; + break; + } + + case value_t::object: + { + m_value.object = create(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + m_value.array = create(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + case value_t::binary: + { + m_value = *first.m_object->m_value.binary; + break; + } + + default: + JSON_THROW(invalid_iterator::create(206, "cannot construct with iterators from " + + std::string(first.m_object->type_name()))); + } + + assert_invariant(); + } + + + /////////////////////////////////////// + // other constructors and destructor // + /////////////////////////////////////// + + template, + std::is_same>::value, int> = 0 > + basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {} + + /*! + @brief copy constructor + + Creates a copy of a given JSON value. + + @param[in] other the JSON value to copy + + @post `*this == other` + + @complexity Linear in the size of @a other. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - As postcondition, it holds: `other == basic_json(other)`. + + @liveexample{The following code shows an example for the copy + constructor.,basic_json__basic_json} + + @since version 1.0.0 + */ + basic_json(const basic_json& other) + : m_type(other.m_type) + { + // check of passed value is valid + other.assert_invariant(); + + switch (m_type) + { + case value_t::object: + { + m_value = *other.m_value.object; + break; + } + + case value_t::array: + { + m_value = *other.m_value.array; + break; + } + + case value_t::string: + { + m_value = *other.m_value.string; + break; + } + + case value_t::boolean: + { + m_value = other.m_value.boolean; + break; + } + + case value_t::number_integer: + { + m_value = other.m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value = other.m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value = other.m_value.number_float; + break; + } + + case value_t::binary: + { + m_value = *other.m_value.binary; + break; + } + + default: + break; + } + + assert_invariant(); + } + + /*! + @brief move constructor + + Move constructor. Constructs a JSON value with the contents of the given + value @a other using move semantics. It "steals" the resources from @a + other and leaves it as JSON null value. + + @param[in,out] other value to move to this object + + @post `*this` has the same value as @a other before the call. + @post @a other is a JSON null value. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @requirement This function helps `basic_json` satisfying the + [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible) + requirements. + + @liveexample{The code below shows the move constructor explicitly called + via std::move.,basic_json__moveconstructor} + + @since version 1.0.0 + */ + basic_json(basic_json&& other) noexcept + : m_type(std::move(other.m_type)), + m_value(std::move(other.m_value)) + { + // check that passed value is valid + other.assert_invariant(); + + // invalidate payload + other.m_type = value_t::null; + other.m_value = {}; + + assert_invariant(); + } + + /*! + @brief copy assignment + + Copy assignment operator. Copies a JSON value via the "copy and swap" + strategy: It is expressed in terms of the copy constructor, destructor, + and the `swap()` member function. + + @param[in] other value to copy from + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + + @liveexample{The code below shows and example for the copy assignment. It + creates a copy of value `a` which is then swapped with `b`. Finally\, the + copy of `a` (which is the null value after the swap) is + destroyed.,basic_json__copyassignment} + + @since version 1.0.0 + */ + basic_json& operator=(basic_json other) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + // check that passed value is valid + other.assert_invariant(); + + using std::swap; + swap(m_type, other.m_type); + swap(m_value, other.m_value); + + assert_invariant(); + return *this; + } + + /*! + @brief destructor + + Destroys the JSON value and frees all allocated memory. + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - All stored elements are destroyed and all memory is freed. + + @since version 1.0.0 + */ + ~basic_json() noexcept + { + assert_invariant(); + m_value.destroy(m_type); + } + + /// @} + + public: + /////////////////////// + // object inspection // + /////////////////////// + + /// @name object inspection + /// Functions to inspect the type of a JSON value. + /// @{ + + /*! + @brief serialization + + Serialization function for JSON values. The function tries to mimic + Python's `json.dumps()` function, and currently supports its @a indent + and @a ensure_ascii parameters. + + @param[in] indent If indent is nonnegative, then array elements and object + members will be pretty-printed with that indent level. An indent level of + `0` will only insert newlines. `-1` (the default) selects the most compact + representation. + @param[in] indent_char The character to use for indentation if @a indent is + greater than `0`. The default is ` ` (space). + @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters + in the output are escaped with `\uXXXX` sequences, and the result consists + of ASCII characters only. + @param[in] error_handler how to react on decoding errors; there are three + possible values: `strict` (throws and exception in case a decoding error + occurs; default), `replace` (replace invalid UTF-8 sequences with U+FFFD), + and `ignore` (ignore invalid UTF-8 sequences during serialization; all + bytes are copied to the output unchanged). + + @return string containing the serialization of the JSON value + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded and @a error_handler is set to strict + + @note Binary values are serialized as object containing two keys: + - "bytes": an array of bytes as integers + - "subtype": the subtype as integer or "null" if the binary has no subtype + + @complexity Linear. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @liveexample{The following example shows the effect of different @a indent\, + @a indent_char\, and @a ensure_ascii parameters to the result of the + serialization.,dump} + + @see https://docs.python.org/2/library/json.html#json.dump + + @since version 1.0.0; indentation character @a indent_char, option + @a ensure_ascii and exceptions added in version 3.0.0; error + handlers added in version 3.4.0; serialization of binary values added + in version 3.8.0. + */ + string_t dump(const int indent = -1, + const char indent_char = ' ', + const bool ensure_ascii = false, + const error_handler_t error_handler = error_handler_t::strict) const + { + string_t result; + serializer s(detail::output_adapter(result), indent_char, error_handler); + + if (indent >= 0) + { + s.dump(*this, true, ensure_ascii, static_cast(indent)); + } + else + { + s.dump(*this, false, ensure_ascii, 0); + } + + return result; + } + + /*! + @brief return the type of the JSON value (explicit) + + Return the type of the JSON value as a value from the @ref value_t + enumeration. + + @return the type of the JSON value + Value type | return value + ------------------------- | ------------------------- + null | value_t::null + boolean | value_t::boolean + string | value_t::string + number (integer) | value_t::number_integer + number (unsigned integer) | value_t::number_unsigned + number (floating-point) | value_t::number_float + object | value_t::object + array | value_t::array + binary | value_t::binary + discarded | value_t::discarded + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `type()` for all JSON + types.,type} + + @sa @ref operator value_t() -- return the type of the JSON value (implicit) + @sa @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr value_t type() const noexcept + { + return m_type; + } + + /*! + @brief return whether type is primitive + + This function returns true if and only if the JSON type is primitive + (string, number, boolean, or null). + + @return `true` if type is primitive (string, number, boolean, or null), + `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_primitive()` for all JSON + types.,is_primitive} + + @sa @ref is_structured() -- returns whether JSON value is structured + @sa @ref is_null() -- returns whether JSON value is `null` + @sa @ref is_string() -- returns whether JSON value is a string + @sa @ref is_boolean() -- returns whether JSON value is a boolean + @sa @ref is_number() -- returns whether JSON value is a number + @sa @ref is_binary() -- returns whether JSON value is a binary array + + @since version 1.0.0 + */ + constexpr bool is_primitive() const noexcept + { + return is_null() || is_string() || is_boolean() || is_number() || is_binary(); + } + + /*! + @brief return whether type is structured + + This function returns true if and only if the JSON type is structured + (array or object). + + @return `true` if type is structured (array or object), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_structured()` for all JSON + types.,is_structured} + + @sa @ref is_primitive() -- returns whether value is primitive + @sa @ref is_array() -- returns whether value is an array + @sa @ref is_object() -- returns whether value is an object + + @since version 1.0.0 + */ + constexpr bool is_structured() const noexcept + { + return is_array() || is_object(); + } + + /*! + @brief return whether value is null + + This function returns true if and only if the JSON value is null. + + @return `true` if type is null, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_null()` for all JSON + types.,is_null} + + @since version 1.0.0 + */ + constexpr bool is_null() const noexcept + { + return m_type == value_t::null; + } + + /*! + @brief return whether value is a boolean + + This function returns true if and only if the JSON value is a boolean. + + @return `true` if type is boolean, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_boolean()` for all JSON + types.,is_boolean} + + @since version 1.0.0 + */ + constexpr bool is_boolean() const noexcept + { + return m_type == value_t::boolean; + } + + /*! + @brief return whether value is a number + + This function returns true if and only if the JSON value is a number. This + includes both integer (signed and unsigned) and floating-point values. + + @return `true` if type is number (regardless whether integer, unsigned + integer or floating-type), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number()` for all JSON + types.,is_number} + + @sa @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number() const noexcept + { + return is_number_integer() || is_number_float(); + } + + /*! + @brief return whether value is an integer number + + This function returns true if and only if the JSON value is a signed or + unsigned integer number. This excludes floating-point values. + + @return `true` if type is an integer or unsigned integer number, `false` + otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_integer()` for all + JSON types.,is_number_integer} + + @sa @ref is_number() -- check if value is a number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number_integer() const noexcept + { + return m_type == value_t::number_integer || m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is an unsigned integer number + + This function returns true if and only if the JSON value is an unsigned + integer number. This excludes floating-point and signed integer values. + + @return `true` if type is an unsigned integer number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_unsigned()` for all + JSON types.,is_number_unsigned} + + @sa @ref is_number() -- check if value is a number + @sa @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 2.0.0 + */ + constexpr bool is_number_unsigned() const noexcept + { + return m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is a floating-point number + + This function returns true if and only if the JSON value is a + floating-point number. This excludes signed and unsigned integer values. + + @return `true` if type is a floating-point number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_float()` for all + JSON types.,is_number_float} + + @sa @ref is_number() -- check if value is number + @sa @ref is_number_integer() -- check if value is an integer number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + + @since version 1.0.0 + */ + constexpr bool is_number_float() const noexcept + { + return m_type == value_t::number_float; + } + + /*! + @brief return whether value is an object + + This function returns true if and only if the JSON value is an object. + + @return `true` if type is object, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_object()` for all JSON + types.,is_object} + + @since version 1.0.0 + */ + constexpr bool is_object() const noexcept + { + return m_type == value_t::object; + } + + /*! + @brief return whether value is an array + + This function returns true if and only if the JSON value is an array. + + @return `true` if type is array, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_array()` for all JSON + types.,is_array} + + @since version 1.0.0 + */ + constexpr bool is_array() const noexcept + { + return m_type == value_t::array; + } + + /*! + @brief return whether value is a string + + This function returns true if and only if the JSON value is a string. + + @return `true` if type is string, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_string()` for all JSON + types.,is_string} + + @since version 1.0.0 + */ + constexpr bool is_string() const noexcept + { + return m_type == value_t::string; + } + + /*! + @brief return whether value is a binary array + + This function returns true if and only if the JSON value is a binary array. + + @return `true` if type is binary array, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_binary()` for all JSON + types.,is_binary} + + @since version 3.8.0 + */ + constexpr bool is_binary() const noexcept + { + return m_type == value_t::binary; + } + + /*! + @brief return whether value is discarded + + This function returns true if and only if the JSON value was discarded + during parsing with a callback function (see @ref parser_callback_t). + + @note This function will always be `false` for JSON values after parsing. + That is, discarded values can only occur during parsing, but will be + removed when inside a structured value or replaced by null in other cases. + + @return `true` if type is discarded, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_discarded()` for all JSON + types.,is_discarded} + + @since version 1.0.0 + */ + constexpr bool is_discarded() const noexcept + { + return m_type == value_t::discarded; + } + + /*! + @brief return the type of the JSON value (implicit) + + Implicitly return the type of the JSON value as a value from the @ref + value_t enumeration. + + @return the type of the JSON value + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies the @ref value_t operator for + all JSON types.,operator__value_t} + + @sa @ref type() -- return the type of the JSON value (explicit) + @sa @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr operator value_t() const noexcept + { + return m_type; + } + + /// @} + + private: + ////////////////// + // value access // + ////////////////// + + /// get a boolean (explicit) + boolean_t get_impl(boolean_t* /*unused*/) const + { + if (JSON_HEDLEY_LIKELY(is_boolean())) + { + return m_value.boolean; + } + + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(type_name()))); + } + + /// get a pointer to the value (object) + object_t* get_impl_ptr(object_t* /*unused*/) noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (object) + constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (array) + array_t* get_impl_ptr(array_t* /*unused*/) noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (array) + constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (string) + string_t* get_impl_ptr(string_t* /*unused*/) noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (string) + constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (boolean) + boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (boolean) + constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (integer number) + number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (integer number) + constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (unsigned number) + number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (unsigned number) + constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (floating-point number) + number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /// get a pointer to the value (floating-point number) + constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /// get a pointer to the value (binary) + binary_t* get_impl_ptr(binary_t* /*unused*/) noexcept + { + return is_binary() ? m_value.binary : nullptr; + } + + /// get a pointer to the value (binary) + constexpr const binary_t* get_impl_ptr(const binary_t* /*unused*/) const noexcept + { + return is_binary() ? m_value.binary : nullptr; + } + + /*! + @brief helper function to implement get_ref() + + This function helps to implement get_ref() without code duplication for + const and non-const overloads + + @tparam ThisType will be deduced as `basic_json` or `const basic_json` + + @throw type_error.303 if ReferenceType does not match underlying value + type of the current JSON + */ + template + static ReferenceType get_ref_impl(ThisType& obj) + { + // delegate the call to get_ptr<>() + auto ptr = obj.template get_ptr::type>(); + + if (JSON_HEDLEY_LIKELY(ptr != nullptr)) + { + return *ptr; + } + + JSON_THROW(type_error::create(303, "incompatible ReferenceType for get_ref, actual type is " + std::string(obj.type_name()))); + } + + public: + /// @name value access + /// Direct access to the stored value of a JSON value. + /// @{ + + /*! + @brief get special-case overload + + This overloads avoids a lot of template boilerplate, it can be seen as the + identity method + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this + + @complexity Constant. + + @since version 2.1.0 + */ + template::type, basic_json_t>::value, + int> = 0> + basic_json get() const + { + return *this; + } + + /*! + @brief get special-case overload + + This overloads converts the current @ref basic_json in a different + @ref basic_json type + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this, converted into @tparam BasicJsonType + + @complexity Depending on the implementation of the called `from_json()` + method. + + @since version 3.2.0 + */ + template < typename BasicJsonType, detail::enable_if_t < + !std::is_same::value&& + detail::is_basic_json::value, int > = 0 > + BasicJsonType get() const + { + return *this; + } + + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value + which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType ret; + JSONSerializer::from_json(*this, ret); + return ret; + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + - @ref json_serializer does not have a `from_json()` method of + the form `ValueType from_json(const basic_json&)` + + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,get__ValueType_const} + + @since version 2.1.0 + */ + template < typename ValueTypeCV, typename ValueType = detail::uncvref_t, + detail::enable_if_t < + !detail::is_basic_json::value && + detail::has_from_json::value && + !detail::has_non_default_from_json::value, + int > = 0 > + ValueType get() const noexcept(noexcept( + JSONSerializer::from_json(std::declval(), std::declval()))) + { + // we cannot static_assert on ValueTypeCV being non-const, because + // there is support for get(), which is why we + // still need the uncvref + static_assert(!std::is_reference::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + static_assert(std::is_default_constructible::value, + "types must be DefaultConstructible when used with get()"); + + ValueType ret; + JSONSerializer::from_json(*this, ret); + return ret; + } + + /*! + @brief get a value (explicit); special case + + Explicit type conversion between the JSON value and a compatible value + which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + return JSONSerializer::from_json(*this); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json and + - @ref json_serializer has a `from_json()` method of the form + `ValueType from_json(const basic_json&)` + + @note If @ref json_serializer has both overloads of + `from_json()`, this one is chosen. + + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer `from_json()` method throws + + @since version 2.1.0 + */ + template < typename ValueTypeCV, typename ValueType = detail::uncvref_t, + detail::enable_if_t < !std::is_same::value && + detail::has_non_default_from_json::value, + int > = 0 > + ValueType get() const noexcept(noexcept( + JSONSerializer::from_json(std::declval()))) + { + static_assert(!std::is_reference::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + return JSONSerializer::from_json(*this); + } + + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value. + The value is filled into the input parameter by calling the @ref json_serializer + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType v; + JSONSerializer::from_json(*this, v); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + + @tparam ValueType the input parameter type. + + @return the input parameter, allowing chaining calls. + + @throw what @ref json_serializer `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,get_to} + + @since version 3.3.0 + */ + template < typename ValueType, + detail::enable_if_t < + !detail::is_basic_json::value&& + detail::has_from_json::value, + int > = 0 > + ValueType & get_to(ValueType& v) const noexcept(noexcept( + JSONSerializer::from_json(std::declval(), v))) + { + JSONSerializer::from_json(*this, v); + return v; + } + + // specialization to allow to call get_to with a basic_json value + // see https://github.com/nlohmann/json/issues/2175 + template::value, + int> = 0> + ValueType & get_to(ValueType& v) const + { + v = *this; + return v; + } + + template < + typename T, std::size_t N, + typename Array = T (&)[N], + detail::enable_if_t < + detail::has_from_json::value, int > = 0 > + Array get_to(T (&v)[N]) const + noexcept(noexcept(JSONSerializer::from_json( + std::declval(), v))) + { + JSONSerializer::from_json(*this, v); + return v; + } + + + /*! + @brief get a pointer value (implicit) + + Implicit pointer access to the internally stored JSON value. No copies are + made. + + @warning Writing data to the pointee of the result yields an undefined + state. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. Enforced by a static + assertion. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get_ptr} + + @since version 1.0.0 + */ + template::value, int>::type = 0> + auto get_ptr() noexcept -> decltype(std::declval().get_impl_ptr(std::declval())) + { + // delegate the call to get_impl_ptr<>() + return get_impl_ptr(static_cast(nullptr)); + } + + /*! + @brief get a pointer value (implicit) + @copydoc get_ptr() + */ + template < typename PointerType, typename std::enable_if < + std::is_pointer::value&& + std::is_const::type>::value, int >::type = 0 > + constexpr auto get_ptr() const noexcept -> decltype(std::declval().get_impl_ptr(std::declval())) + { + // delegate the call to get_impl_ptr<>() const + return get_impl_ptr(static_cast(nullptr)); + } + + /*! + @brief get a pointer value (explicit) + + Explicit pointer access to the internally stored JSON value. No copies are + made. + + @warning The pointer becomes invalid if the underlying JSON object + changes. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get__PointerType} + + @sa @ref get_ptr() for explicit pointer-member access + + @since version 1.0.0 + */ + template::value, int>::type = 0> + auto get() noexcept -> decltype(std::declval().template get_ptr()) + { + // delegate the call to get_ptr + return get_ptr(); + } + + /*! + @brief get a pointer value (explicit) + @copydoc get() + */ + template::value, int>::type = 0> + constexpr auto get() const noexcept -> decltype(std::declval().template get_ptr()) + { + // delegate the call to get_ptr + return get_ptr(); + } + + /*! + @brief get a reference value (implicit) + + Implicit reference access to the internally stored JSON value. No copies + are made. + + @warning Writing data to the referee of the result yields an undefined + state. + + @tparam ReferenceType reference type; must be a reference to @ref array_t, + @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or + @ref number_float_t. Enforced by static assertion. + + @return reference to the internally stored JSON value if the requested + reference type @a ReferenceType fits to the JSON value; throws + type_error.303 otherwise + + @throw type_error.303 in case passed type @a ReferenceType is incompatible + with the stored JSON value; see example below + + @complexity Constant. + + @liveexample{The example shows several calls to `get_ref()`.,get_ref} + + @since version 1.1.0 + */ + template::value, int>::type = 0> + ReferenceType get_ref() + { + // delegate call to get_ref_impl + return get_ref_impl(*this); + } + + /*! + @brief get a reference value (implicit) + @copydoc get_ref() + */ + template < typename ReferenceType, typename std::enable_if < + std::is_reference::value&& + std::is_const::type>::value, int >::type = 0 > + ReferenceType get_ref() const + { + // delegate call to get_ref_impl + return get_ref_impl(*this); + } + + /*! + @brief get a value (implicit) + + Implicit type conversion between the JSON value and a compatible value. + The call is realized by calling @ref get() const. + + @tparam ValueType non-pointer type compatible to the JSON value, for + instance `int` for JSON integer numbers, `bool` for JSON booleans, or + `std::vector` types for JSON arrays. The character type of @ref string_t + as well as an initializer list of this type is excluded to avoid + ambiguities as these types implicitly convert to `std::string`. + + @return copy of the JSON value, converted to type @a ValueType + + @throw type_error.302 in case passed type @a ValueType is incompatible + to the JSON value type (e.g., the JSON value is of type boolean, but a + string is requested); see example below + + @complexity Linear in the size of the JSON value. + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map`.,operator__ValueType} + + @since version 1.0.0 + */ + template < typename ValueType, typename std::enable_if < + !std::is_pointer::value&& + !std::is_same>::value&& + !std::is_same::value&& + !detail::is_basic_json::value + && !std::is_same>::value +#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914)) + && !std::is_same::value +#endif + && detail::is_detected::value + , int >::type = 0 > + JSON_EXPLICIT operator ValueType() const + { + // delegate the call to get<>() const + return get(); + } + + /*! + @return reference to the binary value + + @throw type_error.302 if the value is not binary + + @sa @ref is_binary() to check if the value is binary + + @since version 3.8.0 + */ + binary_t& get_binary() + { + if (!is_binary()) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(type_name()))); + } + + return *get_ptr(); + } + + /// @copydoc get_binary() + const binary_t& get_binary() const + { + if (!is_binary()) + { + JSON_THROW(type_error::create(302, "type must be binary, but is " + std::string(type_name()))); + } + + return *get_ptr(); + } + + /// @} + + + //////////////////// + // element access // + //////////////////// + + /// @name element access + /// Access to the JSON value. + /// @{ + + /*! + @brief access specified array element with bounds checking + + Returns a reference to the element at specified location @a idx, with + bounds checking. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__size_type} + */ + reference at(size_type idx) + { + // at only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + JSON_TRY + { + return m_value.array->at(idx); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified array element with bounds checking + + Returns a const reference to the element at specified location @a idx, + with bounds checking. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__size_type_const} + */ + const_reference at(size_type idx) const + { + // at only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + JSON_TRY + { + return m_value.array->at(idx); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a reference to the element at with specified key @a key, with + bounds checking. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__object_t_key_type} + */ + reference at(const typename object_t::key_type& key) + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_TRY + { + return m_value.object->at(key); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a const reference to the element at with specified key @a key, + with bounds checking. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__object_t_key_type_const} + */ + const_reference at(const typename object_t::key_type& key) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_TRY + { + return m_value.object->at(key); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified array element + + Returns a reference to the element at specified location @a idx. + + @note If @a idx is beyond the range of the array (i.e., `idx >= size()`), + then the array is silently filled up with `null` values to make `idx` a + valid reference to the last stored element. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array or null; in that + cases, using the [] operator with an index makes no sense. + + @complexity Constant if @a idx is in the range of the array. Otherwise + linear in `idx - size()`. + + @liveexample{The example below shows how array elements can be read and + written using `[]` operator. Note the addition of `null` + values.,operatorarray__size_type} + + @since version 1.0.0 + */ + reference operator[](size_type idx) + { + // implicitly convert null value to an empty array + if (is_null()) + { + m_type = value_t::array; + m_value.array = create(); + assert_invariant(); + } + + // operator[] only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // fill up array with null values if given idx is outside range + if (idx >= m_value.array->size()) + { + m_value.array->insert(m_value.array->end(), + idx - m_value.array->size() + 1, + basic_json()); + } + + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()))); + } + + /*! + @brief access specified array element + + Returns a const reference to the element at specified location @a idx. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array; in that case, + using the [] operator with an index makes no sense. + + @complexity Constant. + + @liveexample{The example below shows how array elements can be read using + the `[]` operator.,operatorarray__size_type_const} + + @since version 1.0.0 + */ + const_reference operator[](size_type idx) const + { + // const operator[] only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + */ + reference operator[](const typename object_t::key_type& key) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + // operator[] only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return m_value.object->operator[](key); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + */ + const_reference operator[](const typename object_t::key_type& key) const + { + // const operator[] only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_ASSERT(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + reference operator[](T* key) + { + // implicitly convert null to object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return m_value.object->operator[](key); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + const_reference operator[](T* key) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + JSON_ASSERT(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(key); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const typename object_t::key_type&), this function + does not throw if the given key @a key was not found. + + @note Unlike @ref operator[](const typename object_t::key_type& key), this + function does not implicitly add an element to the position defined by @a + key. This function is furthermore also applicable to const objects. + + @param[in] key key of the element to access + @param[in] default_value the value to return if @a key is not found + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.302 if @a default_value does not match the type of the + value at @a key + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + + @since version 1.0.0 + */ + // using std::is_convertible in a std::enable_if will fail when using explicit conversions + template < class ValueType, typename std::enable_if < + detail::is_getable::value + && !std::is_same::value, int >::type = 0 > + ValueType value(const typename object_t::key_type& key, const ValueType& default_value) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + // if key is found, return value and given default value otherwise + const auto it = find(key); + if (it != end()) + { + return it->template get(); + } + + return default_value; + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()))); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const typename object_t::key_type&, const ValueType&) const + */ + string_t value(const typename object_t::key_type& key, const char* default_value) const + { + return value(key, string_t(default_value)); + } + + /*! + @brief access specified object element via JSON Pointer with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(ptr); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const json_pointer&), this function does not throw + if the given key @a key was not found. + + @param[in] ptr a JSON pointer to the element to access + @param[in] default_value the value to return if @a ptr found no value + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.302 if @a default_value does not match the type of the + value at @a ptr + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value_ptr} + + @sa @ref operator[](const json_pointer&) for unchecked access by reference + + @since version 2.0.2 + */ + template::value, int>::type = 0> + ValueType value(const json_pointer& ptr, const ValueType& default_value) const + { + // at only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + // if pointer resolves a value, return it or use default value + JSON_TRY + { + return ptr.get_checked(this).template get(); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + return default_value; + } + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()))); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const json_pointer&, ValueType) const + */ + JSON_HEDLEY_NON_NULL(3) + string_t value(const json_pointer& ptr, const char* default_value) const + { + return value(ptr, string_t(default_value)); + } + + /*! + @brief access the first element + + Returns a reference to the first element in the container. For a JSON + container `c`, the expression `c.front()` is equivalent to `*c.begin()`. + + @return In case of a structured type (array or object), a reference to the + first element is returned. In case of number, string, boolean, or binary + values, a reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on `null` value + + @liveexample{The following code shows an example for `front()`.,front} + + @sa @ref back() -- access the last element + + @since version 1.0.0 + */ + reference front() + { + return *begin(); + } + + /*! + @copydoc basic_json::front() + */ + const_reference front() const + { + return *cbegin(); + } + + /*! + @brief access the last element + + Returns a reference to the last element in the container. For a JSON + container `c`, the expression `c.back()` is equivalent to + @code {.cpp} + auto tmp = c.end(); + --tmp; + return *tmp; + @endcode + + @return In case of a structured type (array or object), a reference to the + last element is returned. In case of number, string, boolean, or binary + values, a reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on a `null` value. See example + below. + + @liveexample{The following code shows an example for `back()`.,back} + + @sa @ref front() -- access the first element + + @since version 1.0.0 + */ + reference back() + { + auto tmp = end(); + --tmp; + return *tmp; + } + + /*! + @copydoc basic_json::back() + */ + const_reference back() const + { + auto tmp = cend(); + --tmp; + return *tmp; + } + + /*! + @brief remove element given an iterator + + Removes the element specified by iterator @a pos. The iterator @a pos must + be valid and dereferenceable. Thus the `end()` iterator (which is valid, + but is not dereferenceable) cannot be used as a value for @a pos. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] pos iterator to the element to remove + @return Iterator following the last removed element. If the iterator @a + pos refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.202 if called on an iterator which does not belong + to the current JSON value; example: `"iterator does not fit current + value"` + @throw invalid_iterator.205 if called on a primitive type with invalid + iterator (i.e., any iterator which is not `begin()`); example: `"iterator + out of range"` + + @complexity The complexity depends on the type: + - objects: amortized constant + - arrays: linear in distance between @a pos and the end of the container + - strings and binary: linear in the length of the member + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType} + + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template < class IteratorType, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type + = 0 > + IteratorType erase(IteratorType pos) + { + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(this != pos.m_object)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + case value_t::binary: + { + if (JSON_HEDLEY_UNLIKELY(!pos.m_it.primitive_iterator.is_begin())) + { + JSON_THROW(invalid_iterator::create(205, "iterator out of range")); + } + + if (is_string()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.string); + std::allocator_traits::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + else if (is_binary()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.binary); + std::allocator_traits::deallocate(alloc, m_value.binary, 1); + m_value.binary = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); + break; + } + + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + return result; + } + + /*! + @brief remove elements given an iterator range + + Removes the element specified by the range `[first; last)`. The iterator + @a first does not need to be dereferenceable if `first == last`: erasing + an empty range is a no-op. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] first iterator to the beginning of the range to remove + @param[in] last iterator past the end of the range to remove + @return Iterator following the last removed element. If the iterator @a + second refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.203 if called on iterators which does not belong + to the current JSON value; example: `"iterators do not fit current value"` + @throw invalid_iterator.204 if called on a primitive type with invalid + iterators (i.e., if `first != begin()` and `last != end()`); example: + `"iterators out of range"` + + @complexity The complexity depends on the type: + - objects: `log(size()) + std::distance(first, last)` + - arrays: linear in the distance between @a first and @a last, plus linear + in the distance between @a last and end of the container + - strings and binary: linear in the length of the member + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType_IteratorType} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template < class IteratorType, typename std::enable_if < + std::is_same::value || + std::is_same::value, int >::type + = 0 > + IteratorType erase(IteratorType first, IteratorType last) + { + // make sure iterator fits the current value + if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object)) + { + JSON_THROW(invalid_iterator::create(203, "iterators do not fit current value")); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + case value_t::binary: + { + if (JSON_HEDLEY_LIKELY(!first.m_it.primitive_iterator.is_begin() + || !last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range")); + } + + if (is_string()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.string); + std::allocator_traits::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + else if (is_binary()) + { + AllocatorType alloc; + std::allocator_traits::destroy(alloc, m_value.binary); + std::allocator_traits::deallocate(alloc, m_value.binary, 1); + m_value.binary = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + return result; + } + + /*! + @brief remove element from a JSON object given a key + + Removes elements from a JSON object with the key value @a key. + + @param[in] key value of the elements to remove + + @return Number of elements removed. If @a ObjectType is the default + `std::map` type, the return value will always be `0` (@a key was not + found) or `1` (@a key was found). + + @post References and iterators to the erased elements are invalidated. + Other references and iterators are not affected. + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + + @complexity `log(size()) + count(key)` + + @liveexample{The example shows the effect of `erase()`.,erase__key_type} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + size_type erase(const typename object_t::key_type& key) + { + // this erase only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + return m_value.object->erase(key); + } + + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + /*! + @brief remove element from a JSON array given an index + + Removes element from a JSON array at the index @a idx. + + @param[in] idx index of the element to remove + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + @throw out_of_range.401 when `idx >= size()`; example: `"array index 17 + is out of range"` + + @complexity Linear in distance between @a idx and the end of the container. + + @liveexample{The example shows the effect of `erase()`.,erase__size_type} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + + @since version 1.0.0 + */ + void erase(const size_type idx) + { + // this erase only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + if (JSON_HEDLEY_UNLIKELY(idx >= size())) + { + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + + m_value.array->erase(m_value.array->begin() + static_cast(idx)); + } + else + { + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + } + + /// @} + + + //////////// + // lookup // + //////////// + + /// @name lookup + /// @{ + + /*! + @brief find an element in a JSON object + + Finds an element in a JSON object with key equivalent to @a key. If the + element is not found or the JSON value is not an object, end() is + returned. + + @note This method always returns @ref end() when executed on a JSON type + that is not an object. + + @param[in] key key value of the element to search for. + + @return Iterator to an element with key equivalent to @a key. If no such + element is found or the JSON value is not an object, past-the-end (see + @ref end()) iterator is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `find()` is used.,find__key_type} + + @sa @ref contains(KeyT&&) const -- checks whether a key exists + + @since version 1.0.0 + */ + template + iterator find(KeyT&& key) + { + auto result = end(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward(key)); + } + + return result; + } + + /*! + @brief find an element in a JSON object + @copydoc find(KeyT&&) + */ + template + const_iterator find(KeyT&& key) const + { + auto result = cend(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward(key)); + } + + return result; + } + + /*! + @brief returns the number of occurrences of a key in a JSON object + + Returns the number of elements with key @a key. If ObjectType is the + default `std::map` type, the return value will always be `0` (@a key was + not found) or `1` (@a key was found). + + @note This method always returns `0` when executed on a JSON type that is + not an object. + + @param[in] key key value of the element to count + + @return Number of elements with key @a key. If the JSON value is not an + object, the return value will be `0`. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `count()` is used.,count} + + @since version 1.0.0 + */ + template + size_type count(KeyT&& key) const + { + // return 0 for all nonobject types + return is_object() ? m_value.object->count(std::forward(key)) : 0; + } + + /*! + @brief check the existence of an element in a JSON object + + Check whether an element exists in a JSON object with key equivalent to + @a key. If the element is not found or the JSON value is not an object, + false is returned. + + @note This method always returns false when executed on a JSON type + that is not an object. + + @param[in] key key value to check its existence. + + @return true if an element with specified @a key exists. If no such + element with such key is found or the JSON value is not an object, + false is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The following code shows an example for `contains()`.,contains} + + @sa @ref find(KeyT&&) -- returns an iterator to an object element + @sa @ref contains(const json_pointer&) const -- checks the existence for a JSON pointer + + @since version 3.6.0 + */ + template < typename KeyT, typename std::enable_if < + !std::is_same::type, json_pointer>::value, int >::type = 0 > + bool contains(KeyT && key) const + { + return is_object() && m_value.object->find(std::forward(key)) != m_value.object->end(); + } + + /*! + @brief check the existence of an element in a JSON object given a JSON pointer + + Check whether the given JSON pointer @a ptr can be resolved in the current + JSON value. + + @note This method can be executed on any JSON value type. + + @param[in] ptr JSON pointer to check its existence. + + @return true if the JSON pointer can be resolved to a stored value, false + otherwise. + + @post If `j.contains(ptr)` returns true, it is safe to call `j[ptr]`. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The following code shows an example for `contains()`.,contains_json_pointer} + + @sa @ref contains(KeyT &&) const -- checks the existence of a key + + @since version 3.7.0 + */ + bool contains(const json_pointer& ptr) const + { + return ptr.contains(this); + } + + /// @} + + + /////////////// + // iterators // + /////////////// + + /// @name iterators + /// @{ + + /*! + @brief returns an iterator to the first element + + Returns an iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `begin()`.,begin} + + @sa @ref cbegin() -- returns a const iterator to the beginning + @sa @ref end() -- returns an iterator to the end + @sa @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + iterator begin() noexcept + { + iterator result(this); + result.set_begin(); + return result; + } + + /*! + @copydoc basic_json::cbegin() + */ + const_iterator begin() const noexcept + { + return cbegin(); + } + + /*! + @brief returns a const iterator to the first element + + Returns a const iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).begin()`. + + @liveexample{The following code shows an example for `cbegin()`.,cbegin} + + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref end() -- returns an iterator to the end + @sa @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + const_iterator cbegin() const noexcept + { + const_iterator result(this); + result.set_begin(); + return result; + } + + /*! + @brief returns an iterator to one past the last element + + Returns an iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `end()`.,end} + + @sa @ref cend() -- returns a const iterator to the end + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + iterator end() noexcept + { + iterator result(this); + result.set_end(); + return result; + } + + /*! + @copydoc basic_json::cend() + */ + const_iterator end() const noexcept + { + return cend(); + } + + /*! + @brief returns a const iterator to one past the last element + + Returns a const iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).end()`. + + @liveexample{The following code shows an example for `cend()`.,cend} + + @sa @ref end() -- returns an iterator to the end + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + const_iterator cend() const noexcept + { + const_iterator result(this); + result.set_end(); + return result; + } + + /*! + @brief returns an iterator to the reverse-beginning + + Returns an iterator to the reverse-beginning; that is, the last element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(end())`. + + @liveexample{The following code shows an example for `rbegin()`.,rbegin} + + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + reverse_iterator rbegin() noexcept + { + return reverse_iterator(end()); + } + + /*! + @copydoc basic_json::crbegin() + */ + const_reverse_iterator rbegin() const noexcept + { + return crbegin(); + } + + /*! + @brief returns an iterator to the reverse-end + + Returns an iterator to the reverse-end; that is, one before the first + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(begin())`. + + @liveexample{The following code shows an example for `rend()`.,rend} + + @sa @ref crend() -- returns a const reverse iterator to the end + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + reverse_iterator rend() noexcept + { + return reverse_iterator(begin()); + } + + /*! + @copydoc basic_json::crend() + */ + const_reverse_iterator rend() const noexcept + { + return crend(); + } + + /*! + @brief returns a const reverse iterator to the last element + + Returns a const iterator to the reverse-beginning; that is, the last + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).rbegin()`. + + @liveexample{The following code shows an example for `crbegin()`.,crbegin} + + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + const_reverse_iterator crbegin() const noexcept + { + return const_reverse_iterator(cend()); + } + + /*! + @brief returns a const reverse iterator to one before the first + + Returns a const reverse iterator to the reverse-end; that is, one before + the first element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast(*this).rend()`. + + @liveexample{The following code shows an example for `crend()`.,crend} + + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + const_reverse_iterator crend() const noexcept + { + return const_reverse_iterator(cbegin()); + } + + public: + /*! + @brief wrapper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without iterator_wrapper: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without iterator proxy: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with iterator proxy: + + @code{cpp} + for (auto it : json::iterator_wrapper(j_object)) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). + + @param[in] ref reference to a JSON value + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the wrapper is used,iterator_wrapper} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @note The name of this function is not yet final and may change in the + future. + + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use @ref items() instead; + that is, replace `json::iterator_wrapper(j)` with `j.items()`. + */ + JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items()) + static iteration_proxy iterator_wrapper(reference ref) noexcept + { + return ref.items(); + } + + /*! + @copydoc iterator_wrapper(reference) + */ + JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items()) + static iteration_proxy iterator_wrapper(const_reference ref) noexcept + { + return ref.items(); + } + + /*! + @brief helper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without `items()` function: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without `items()` function: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with `items()` function: + + @code{cpp} + for (auto& el : j_object.items()) + { + std::cout << "key: " << el.key() << ", value:" << el.value() << '\n'; + } + @endcode + + The `items()` function also allows to use + [structured bindings](https://en.cppreference.com/w/cpp/language/structured_binding) + (C++17): + + @code{cpp} + for (auto& [key, val] : j_object.items()) + { + std::cout << "key: " << key << ", value:" << val << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). For primitive types (e.g., numbers), + `key()` returns an empty string. + + @warning Using `items()` on temporary objects is dangerous. Make sure the + object's lifetime exeeds the iteration. See + for more + information. + + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the function is used.,items} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 3.1.0, structured bindings support since 3.5.0. + */ + iteration_proxy items() noexcept + { + return iteration_proxy(*this); + } + + /*! + @copydoc items() + */ + iteration_proxy items() const noexcept + { + return iteration_proxy(*this); + } + + /// @} + + + ////////////// + // capacity // + ////////////// + + /// @name capacity + /// @{ + + /*! + @brief checks whether the container is empty. + + Checks if a JSON value has no elements (i.e. whether its @ref size is `0`). + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `true` + boolean | `false` + string | `false` + number | `false` + binary | `false` + object | result of function `object_t::empty()` + array | result of function `array_t::empty()` + + @liveexample{The following code uses `empty()` to check if a JSON + object contains any elements.,empty} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `empty()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return whether a string stored as JSON value + is empty - it returns whether the JSON container itself is empty which is + false in the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `begin() == end()`. + + @sa @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + bool empty() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return true; + } + + case value_t::array: + { + // delegate call to array_t::empty() + return m_value.array->empty(); + } + + case value_t::object: + { + // delegate call to object_t::empty() + return m_value.object->empty(); + } + + default: + { + // all other types are nonempty + return false; + } + } + } + + /*! + @brief returns the number of elements + + Returns the number of elements in a JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` + boolean | `1` + string | `1` + number | `1` + binary | `1` + object | result of function object_t::size() + array | result of function array_t::size() + + @liveexample{The following code calls `size()` on the different value + types.,size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their size() functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return the length of a string stored as JSON + value - it returns the number of elements in the JSON value which is 1 in + the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `std::distance(begin(), end())`. + + @sa @ref empty() -- checks whether the container is empty + @sa @ref max_size() -- returns the maximal number of elements + + @since version 1.0.0 + */ + size_type size() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return 0; + } + + case value_t::array: + { + // delegate call to array_t::size() + return m_value.array->size(); + } + + case value_t::object: + { + // delegate call to object_t::size() + return m_value.object->size(); + } + + default: + { + // all other types have size 1 + return 1; + } + } + } + + /*! + @brief returns the maximum possible number of elements + + Returns the maximum number of elements a JSON value is able to hold due to + system or library implementation limitations, i.e. `std::distance(begin(), + end())` for the JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` (same as `size()`) + boolean | `1` (same as `size()`) + string | `1` (same as `size()`) + number | `1` (same as `size()`) + binary | `1` (same as `size()`) + object | result of function `object_t::max_size()` + array | result of function `array_t::max_size()` + + @liveexample{The following code calls `max_size()` on the different value + types. Note the output is implementation specific.,max_size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `max_size()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of returning `b.size()` where `b` is the largest + possible JSON value. + + @sa @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + size_type max_size() const noexcept + { + switch (m_type) + { + case value_t::array: + { + // delegate call to array_t::max_size() + return m_value.array->max_size(); + } + + case value_t::object: + { + // delegate call to object_t::max_size() + return m_value.object->max_size(); + } + + default: + { + // all other types have max_size() == size() + return size(); + } + } + } + + /// @} + + + /////////////// + // modifiers // + /////////////// + + /// @name modifiers + /// @{ + + /*! + @brief clears the contents + + Clears the content of a JSON value and resets it to the default value as + if @ref basic_json(value_t) would have been called with the current value + type from @ref type(): + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + binary | An empty byte vector + object | `{}` + array | `[]` + + @post Has the same effect as calling + @code {.cpp} + *this = basic_json(type()); + @endcode + + @liveexample{The example below shows the effect of `clear()` to different + JSON types.,clear} + + @complexity Linear in the size of the JSON value. + + @iterators All iterators, pointers and references related to this container + are invalidated. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @sa @ref basic_json(value_t) -- constructor that creates an object with the + same value than calling `clear()` + + @since version 1.0.0 + */ + void clear() noexcept + { + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = 0; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = 0; + break; + } + + case value_t::number_float: + { + m_value.number_float = 0.0; + break; + } + + case value_t::boolean: + { + m_value.boolean = false; + break; + } + + case value_t::string: + { + m_value.string->clear(); + break; + } + + case value_t::binary: + { + m_value.binary->clear(); + break; + } + + case value_t::array: + { + m_value.array->clear(); + break; + } + + case value_t::object: + { + m_value.object->clear(); + break; + } + + default: + break; + } + } + + /*! + @brief add an object to an array + + Appends the given element @a val to the end of the JSON value. If the + function is called on a JSON null value, an empty array is created before + appending @a val. + + @param[in] val the value to add to the JSON array + + @throw type_error.308 when called on a type other than JSON array or + null; example: `"cannot use push_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON array. Note how the `null` value was silently + converted to a JSON array.,push_back} + + @since version 1.0.0 + */ + void push_back(basic_json&& val) + { + // push_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (move semantics) + m_value.array->push_back(std::move(val)); + // if val is moved from, basic_json move constructor marks it null so we do not call the destructor + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(basic_json&& val) + { + push_back(std::move(val)); + return *this; + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + void push_back(const basic_json& val) + { + // push_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array + m_value.array->push_back(val); + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(const basic_json& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + Inserts the given element @a val to the JSON object. If the function is + called on a JSON null value, an empty object is created before inserting + @a val. + + @param[in] val the value to add to the JSON object + + @throw type_error.308 when called on a type other than JSON object or + null; example: `"cannot use push_back() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON object. Note how the `null` value was silently + converted to a JSON object.,push_back__object_t__value} + + @since version 1.0.0 + */ + void push_back(const typename object_t::value_type& val) + { + // push_back only works for null objects or objects + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to array + m_value.object->insert(val); + } + + /*! + @brief add an object to an object + @copydoc push_back(const typename object_t::value_type&) + */ + reference operator+=(const typename object_t::value_type& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + This function allows to use `push_back` with an initializer list. In case + + 1. the current value is an object, + 2. the initializer list @a init contains only two elements, and + 3. the first element of @a init is a string, + + @a init is converted into an object element and added using + @ref push_back(const typename object_t::value_type&). Otherwise, @a init + is converted to a JSON value and added using @ref push_back(basic_json&&). + + @param[in] init an initializer list + + @complexity Linear in the size of the initializer list @a init. + + @note This function is required to resolve an ambiguous overload error, + because pairs like `{"key", "value"}` can be both interpreted as + `object_t::value_type` or `std::initializer_list`, see + https://github.com/nlohmann/json/issues/235 for more information. + + @liveexample{The example shows how initializer lists are treated as + objects when possible.,push_back__initializer_list} + */ + void push_back(initializer_list_t init) + { + if (is_object() && init.size() == 2 && (*init.begin())->is_string()) + { + basic_json&& key = init.begin()->moved_or_copied(); + push_back(typename object_t::value_type( + std::move(key.get_ref()), (init.begin() + 1)->moved_or_copied())); + } + else + { + push_back(basic_json(init)); + } + } + + /*! + @brief add an object to an object + @copydoc push_back(initializer_list_t) + */ + reference operator+=(initializer_list_t init) + { + push_back(init); + return *this; + } + + /*! + @brief add an object to an array + + Creates a JSON value from the passed parameters @a args to the end of the + JSON value. If the function is called on a JSON null value, an empty array + is created before appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @return reference to the inserted element + + @throw type_error.311 when called on a type other than JSON array or + null; example: `"cannot use emplace_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` can be used to add + elements to a JSON array. Note how the `null` value was silently converted + to a JSON array.,emplace_back} + + @since version 2.0.8, returns reference since 3.7.0 + */ + template + reference emplace_back(Args&& ... args) + { + // emplace_back only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (perfect forwarding) +#ifdef JSON_HAS_CPP_17 + return m_value.array->emplace_back(std::forward(args)...); +#else + m_value.array->emplace_back(std::forward(args)...); + return m_value.array->back(); +#endif + } + + /*! + @brief add an object to an object if key does not exist + + Inserts a new element into a JSON object constructed in-place with the + given @a args if there is no element with the key in the container. If the + function is called on a JSON null value, an empty object is created before + appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @return a pair consisting of an iterator to the inserted element, or the + already-existing element if no insertion happened, and a bool + denoting whether the insertion took place. + + @throw type_error.311 when called on a type other than JSON object or + null; example: `"cannot use emplace() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `emplace()` can be used to add elements + to a JSON object. Note how the `null` value was silently converted to a + JSON object. Further note how no value is added if there was already one + value stored with the same key.,emplace} + + @since version 2.0.8 + */ + template + std::pair emplace(Args&& ... args) + { + // emplace only works for null objects or arrays + if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace() with " + std::string(type_name()))); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to array (perfect forwarding) + auto res = m_value.object->emplace(std::forward(args)...); + // create result iterator and set iterator to the result of emplace + auto it = begin(); + it.m_it.object_iterator = res.first; + + // return pair of iterator and boolean + return {it, res.second}; + } + + /// Helper for insertion of an iterator + /// @note: This uses std::distance to support GCC 4.8, + /// see https://github.com/nlohmann/json/pull/1257 + template + iterator insert_iterator(const_iterator pos, Args&& ... args) + { + iterator result(this); + JSON_ASSERT(m_value.array != nullptr); + + auto insert_pos = std::distance(m_value.array->begin(), pos.m_it.array_iterator); + m_value.array->insert(pos.m_it.array_iterator, std::forward(args)...); + result.m_it.array_iterator = m_value.array->begin() + insert_pos; + + // This could have been written as: + // result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); + // but the return value of insert is missing in GCC 4.8, so it is written this way instead. + + return result; + } + + /*! + @brief inserts element + + Inserts element @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] val element to insert + @return iterator pointing to the inserted @a val. + + @throw type_error.309 if called on JSON values other than arrays; + example: `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Constant plus linear in the distance between @a pos and end of + the container. + + @liveexample{The example shows how `insert()` is used.,insert} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const basic_json& val) + { + // insert only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + /*! + @brief inserts element + @copydoc insert(const_iterator, const basic_json&) + */ + iterator insert(const_iterator pos, basic_json&& val) + { + return insert(pos, val); + } + + /*! + @brief inserts elements + + Inserts @a cnt copies of @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] cnt number of copies of @a val to insert + @param[in] val element to insert + @return iterator pointing to the first element inserted, or @a pos if + `cnt==0` + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Linear in @a cnt plus linear in the distance between @a pos + and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__count} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + { + // insert only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, cnt, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)` before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + @throw invalid_iterator.211 if @a first or @a last are iterators into + container for which insert is called; example: `"passed iterators may not + belong to container"` + + @return iterator pointing to the first element inserted, or @a pos if + `first==last` + + @complexity Linear in `std::distance(first, last)` plus linear in the + distance between @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__range} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const_iterator first, const_iterator last) + { + // insert only works for arrays + if (JSON_HEDLEY_UNLIKELY(!is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + if (JSON_HEDLEY_UNLIKELY(first.m_object == this)) + { + JSON_THROW(invalid_iterator::create(211, "passed iterators may not belong to container")); + } + + // insert to array and return iterator + return insert_iterator(pos, first.m_it.array_iterator, last.m_it.array_iterator); + } + + /*! + @brief inserts elements + + Inserts elements from initializer list @a ilist before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] ilist initializer list to insert the values from + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @return iterator pointing to the first element inserted, or @a pos if + `ilist` is empty + + @complexity Linear in `ilist.size()` plus linear in the distance between + @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__ilist} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, initializer_list_t ilist) + { + // insert only works for arrays + if (JSON_HEDLEY_UNLIKELY(!is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if iterator pos fits to this JSON value + if (JSON_HEDLEY_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, ilist.begin(), ilist.end()); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)`. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than objects; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity Logarithmic: `O(N*log(size() + N))`, where `N` is the number + of elements to insert. + + @liveexample{The example shows how `insert()` is used.,insert__range_object} + + @since version 3.0.0 + */ + void insert(const_iterator first, const_iterator last) + { + // insert only works for objects + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + // passed iterators must belong to objects + if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects")); + } + + m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from JSON object @a j and overwrites existing keys. + + @param[in] j JSON object to read values from + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_reference j) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()))); + } + if (JSON_HEDLEY_UNLIKELY(!j.is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(j.type_name()))); + } + + for (auto it = j.cbegin(); it != j.cend(); ++it) + { + m_value.object->operator[](it.key()) = it.value(); + } + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from from range `[first, last)` and overwrites existing + keys. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used__range.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_iterator first, const_iterator last) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create(); + assert_invariant(); + } + + if (JSON_HEDLEY_UNLIKELY(!is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()))); + } + + // check if range iterators belong to the same JSON object + if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + // passed iterators must belong to objects + if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object() + || !last.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects")); + } + + for (auto it = first; it != last; ++it) + { + m_value.object->operator[](it.key()) = it.value(); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of the JSON value with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other JSON value to exchange the contents with + + @complexity Constant. + + @liveexample{The example below shows how JSON values can be swapped with + `swap()`.,swap__reference} + + @since version 1.0.0 + */ + void swap(reference other) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + std::swap(m_type, other.m_type); + std::swap(m_value, other.m_value); + assert_invariant(); + } + + /*! + @brief exchanges the values + + Exchanges the contents of the JSON value from @a left with those of @a right. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. implemented as a friend function callable via ADL. + + @param[in,out] left JSON value to exchange the contents with + @param[in,out] right JSON value to exchange the contents with + + @complexity Constant. + + @liveexample{The example below shows how JSON values can be swapped with + `swap()`.,swap__reference} + + @since version 1.0.0 + */ + friend void swap(reference left, reference right) noexcept ( + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value&& + std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_assignable::value + ) + { + left.swap(right); + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON array with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other array to exchange the contents with + + @throw type_error.310 when JSON value is not an array; example: `"cannot + use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how arrays can be swapped with + `swap()`.,swap__array_t} + + @since version 1.0.0 + */ + void swap(array_t& other) + { + // swap only works for arrays + if (JSON_HEDLEY_LIKELY(is_array())) + { + std::swap(*(m_value.array), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON object with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other object to exchange the contents with + + @throw type_error.310 when JSON value is not an object; example: + `"cannot use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how objects can be swapped with + `swap()`.,swap__object_t} + + @since version 1.0.0 + */ + void swap(object_t& other) + { + // swap only works for objects + if (JSON_HEDLEY_LIKELY(is_object())) + { + std::swap(*(m_value.object), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON string with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other string to exchange the contents with + + @throw type_error.310 when JSON value is not a string; example: `"cannot + use swap() with boolean"` + + @complexity Constant. + + @liveexample{The example below shows how strings can be swapped with + `swap()`.,swap__string_t} + + @since version 1.0.0 + */ + void swap(string_t& other) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_string())) + { + std::swap(*(m_value.string), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON string with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other binary to exchange the contents with + + @throw type_error.310 when JSON value is not a string; example: `"cannot + use swap() with boolean"` + + @complexity Constant. + + @liveexample{The example below shows how strings can be swapped with + `swap()`.,swap__binary_t} + + @since version 3.8.0 + */ + void swap(binary_t& other) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_binary())) + { + std::swap(*(m_value.binary), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /// @copydoc swap(binary_t) + void swap(typename binary_t::container_type& other) + { + // swap only works for strings + if (JSON_HEDLEY_LIKELY(is_binary())) + { + std::swap(*(m_value.binary), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /// @} + + public: + ////////////////////////////////////////// + // lexicographical comparison operators // + ////////////////////////////////////////// + + /// @name lexicographical comparison operators + /// @{ + + /*! + @brief comparison: equal + + Compares two JSON values for equality according to the following rules: + - Two JSON values are equal if (1) they are from the same type and (2) + their stored values are the same according to their respective + `operator==`. + - Integer and floating-point numbers are automatically converted before + comparison. Note that two NaN values are always treated as unequal. + - Two JSON null values are equal. + + @note Floating-point inside JSON values numbers are compared with + `json::number_float_t::operator==` which is `double::operator==` by + default. To compare floating-point while respecting an epsilon, an alternative + [comparison function](https://github.com/mariokonrad/marnav/blob/master/include/marnav/math/floatingpoint.hpp#L34-#L39) + could be used, for instance + @code {.cpp} + template::value, T>::type> + inline bool is_same(T a, T b, T epsilon = std::numeric_limits::epsilon()) noexcept + { + return std::abs(a - b) <= epsilon; + } + @endcode + Or you can self-defined operator equal function like this: + @code {.cpp} + bool my_equal(const_reference lhs, const_reference rhs) { + const auto lhs_type lhs.type(); + const auto rhs_type rhs.type(); + if (lhs_type == rhs_type) { + switch(lhs_type) + // self_defined case + case value_t::number_float: + return std::abs(lhs - rhs) <= std::numeric_limits::epsilon(); + // other cases remain the same with the original + ... + } + ... + } + @endcode + + @note NaN values never compare equal to themselves or to other NaN values. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are equal + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Linear. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__equal} + + @since version 1.0.0 + */ + friend bool operator==(const_reference lhs, const_reference rhs) noexcept + { + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + return *lhs.m_value.array == *rhs.m_value.array; + + case value_t::object: + return *lhs.m_value.object == *rhs.m_value.object; + + case value_t::null: + return true; + + case value_t::string: + return *lhs.m_value.string == *rhs.m_value.string; + + case value_t::boolean: + return lhs.m_value.boolean == rhs.m_value.boolean; + + case value_t::number_integer: + return lhs.m_value.number_integer == rhs.m_value.number_integer; + + case value_t::number_unsigned: + return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned; + + case value_t::number_float: + return lhs.m_value.number_float == rhs.m_value.number_float; + + case value_t::binary: + return *lhs.m_value.binary == *rhs.m_value.binary; + + default: + return false; + } + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_integer) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float == static_cast(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float == static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer) + { + return static_cast(lhs.m_value.number_unsigned) == rhs.m_value.number_integer; + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer == static_cast(rhs.m_value.number_unsigned); + } + + return false; + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator==(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs == basic_json(rhs); + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator==(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) == rhs; + } + + /*! + @brief comparison: not equal + + Compares two JSON values for inequality by calculating `not (lhs == rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are not equal + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__notequal} + + @since version 1.0.0 + */ + friend bool operator!=(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs == rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator!=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs != basic_json(rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator!=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) != rhs; + } + + /*! + @brief comparison: less than + + Compares whether one JSON value @a lhs is less than another JSON value @a + rhs according to the following rules: + - If @a lhs and @a rhs have the same type, the values are compared using + the default `<` operator. + - Integer and floating-point numbers are automatically converted before + comparison + - In case @a lhs and @a rhs have different types, the values are ignored + and the order of the types is considered, see + @ref operator<(const value_t, const value_t). + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__less} + + @since version 1.0.0 + */ + friend bool operator<(const_reference lhs, const_reference rhs) noexcept + { + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + // note parentheses are necessary, see + // https://github.com/nlohmann/json/issues/1530 + return (*lhs.m_value.array) < (*rhs.m_value.array); + + case value_t::object: + return (*lhs.m_value.object) < (*rhs.m_value.object); + + case value_t::null: + return false; + + case value_t::string: + return (*lhs.m_value.string) < (*rhs.m_value.string); + + case value_t::boolean: + return (lhs.m_value.boolean) < (rhs.m_value.boolean); + + case value_t::number_integer: + return (lhs.m_value.number_integer) < (rhs.m_value.number_integer); + + case value_t::number_unsigned: + return (lhs.m_value.number_unsigned) < (rhs.m_value.number_unsigned); + + case value_t::number_float: + return (lhs.m_value.number_float) < (rhs.m_value.number_float); + + case value_t::binary: + return (*lhs.m_value.binary) < (*rhs.m_value.binary); + + default: + return false; + } + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_integer) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float < static_cast(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float) + { + return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float < static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer < static_cast(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer) + { + return static_cast(lhs.m_value.number_unsigned) < rhs.m_value.number_integer; + } + + // We only reach this line if we cannot compare values. In that case, + // we compare types. Note we have to call the operator explicitly, + // because MSVC has problems otherwise. + return operator<(lhs_type, rhs_type); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs < basic_json(rhs); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) < rhs; + } + + /*! + @brief comparison: less than or equal + + Compares whether one JSON value @a lhs is less than or equal to another + JSON value by calculating `not (rhs < lhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greater} + + @since version 1.0.0 + */ + friend bool operator<=(const_reference lhs, const_reference rhs) noexcept + { + return !(rhs < lhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs <= basic_json(rhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator<=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) <= rhs; + } + + /*! + @brief comparison: greater than + + Compares whether one JSON value @a lhs is greater than another + JSON value by calculating `not (lhs <= rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__lessequal} + + @since version 1.0.0 + */ + friend bool operator>(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs <= rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs > basic_json(rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) > rhs; + } + + /*! + @brief comparison: greater than or equal + + Compares whether one JSON value @a lhs is greater than or equal to another + JSON value by calculating `not (lhs < rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greaterequal} + + @since version 1.0.0 + */ + friend bool operator>=(const_reference lhs, const_reference rhs) noexcept + { + return !(lhs < rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs >= basic_json(rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template::value, int>::type = 0> + friend bool operator>=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) >= rhs; + } + + /// @} + + /////////////////// + // serialization // + /////////////////// + + /// @name serialization + /// @{ + + /*! + @brief serialize to stream + + Serialize the given JSON value @a j to the output stream @a o. The JSON + value will be serialized using the @ref dump member function. + + - The indentation of the output can be controlled with the member variable + `width` of the output stream @a o. For instance, using the manipulator + `std::setw(4)` on @a o sets the indentation level to `4` and the + serialization result is the same as calling `dump(4)`. + + - The indentation character can be controlled with the member variable + `fill` of the output stream @a o. For instance, the manipulator + `std::setfill('\\t')` sets indentation to use a tab character rather than + the default space character. + + @param[in,out] o stream to serialize to + @param[in] j JSON value to serialize + + @return the stream @a o + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded + + @complexity Linear. + + @liveexample{The example below shows the serialization with different + parameters to `width` to adjust the indentation level.,operator_serialize} + + @since version 1.0.0; indentation character added in version 3.0.0 + */ + friend std::ostream& operator<<(std::ostream& o, const basic_json& j) + { + // read width member and use it as indentation parameter if nonzero + const bool pretty_print = o.width() > 0; + const auto indentation = pretty_print ? o.width() : 0; + + // reset width to 0 for subsequent calls to this stream + o.width(0); + + // do the actual serialization + serializer s(detail::output_adapter(o), o.fill()); + s.dump(j, pretty_print, false, static_cast(indentation)); + return o; + } + + /*! + @brief serialize to stream + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use + @ref operator<<(std::ostream&, const basic_json&) + instead; that is, replace calls like `j >> o;` with `o << j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator<<(std::ostream&, const basic_json&)) + friend std::ostream& operator>>(const basic_json& j, std::ostream& o) + { + return o << j; + } + + /// @} + + + ///////////////////// + // deserialization // + ///////////////////// + + /// @name deserialization + /// @{ + + /*! + @brief deserialize from a compatible input + + @tparam InputType A compatible input, for instance + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb or reading from the input @a i has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an array.,parse__array__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__string__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__istream__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function reading + from a contiguous container.,parse__contiguouscontainer__parser_callback_t} + + @since version 2.0.3 (contiguous containers); version 3.9.0 allowed to + ignore comments. + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json parse(InputType&& i, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(detail::input_adapter(std::forward(i)), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + /*! + @brief deserialize from a pair of character iterators + + The value_type of the iterator must be a integral type with size of 1, 2 or + 4 bytes, which will be interpreted respectively as UTF-8, UTF-16 and UTF-32. + + @param[in] first iterator to start of character range + @param[in] last iterator to end of character range + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json parse(IteratorType first, + IteratorType last, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len)) + static basic_json parse(detail::span_input_adapter&& i, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true, + const bool ignore_comments = false) + { + basic_json result; + parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result); + return result; + } + + /*! + @brief check if the input is valid JSON + + Unlike the @ref parse(InputType&&, const parser_callback_t,const bool) + function, this function neither throws an exception in case of invalid JSON + input (i.e., a parse error) nor creates diagnostic information. + + @tparam InputType A compatible input, for instance + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default) + + @return Whether the input read from @a i is valid JSON. + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `accept()` function reading + from a string.,accept__string} + */ + template + static bool accept(InputType&& i, + const bool ignore_comments = false) + { + return parser(detail::input_adapter(std::forward(i)), nullptr, false, ignore_comments).accept(true); + } + + template + static bool accept(IteratorType first, IteratorType last, + const bool ignore_comments = false) + { + return parser(detail::input_adapter(std::move(first), std::move(last)), nullptr, false, ignore_comments).accept(true); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, accept(ptr, ptr + len)) + static bool accept(detail::span_input_adapter&& i, + const bool ignore_comments = false) + { + return parser(i.get(), nullptr, false, ignore_comments).accept(true); + } + + /*! + @brief generate SAX events + + The SAX event lister must follow the interface of @ref json_sax. + + This function reads from a compatible input. Examples are: + - an std::istream object + - a FILE pointer + - a C-style array of characters + - a pointer to a null-terminated string of single byte characters + - an object obj for which begin(obj) and end(obj) produces a valid pair of + iterators. + + @param[in] i input to read from + @param[in,out] sax SAX event listener + @param[in] format the format to parse (JSON, CBOR, MessagePack, or UBJSON) + @param[in] strict whether the input has to be consumed completely + @param[in] ignore_comments whether comments should be ignored and treated + like whitespace (true) or yield a parse error (true); (optional, false by + default); only applies to the JSON file format. + + @return return value of the last processed SAX event + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the SAX consumer @a sax has + a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `sax_parse()` function + reading from string and processing the events with a user-defined SAX + event consumer.,sax_parse} + + @since version 3.2.0 + */ + template + JSON_HEDLEY_NON_NULL(2) + static bool sax_parse(InputType&& i, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = detail::input_adapter(std::forward(i)); + return format == input_format_t::json + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } + + template + JSON_HEDLEY_NON_NULL(3) + static bool sax_parse(IteratorType first, IteratorType last, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = detail::input_adapter(std::move(first), std::move(last)); + return format == input_format_t::json + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } + + template + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, sax_parse(ptr, ptr + len, ...)) + JSON_HEDLEY_NON_NULL(2) + static bool sax_parse(detail::span_input_adapter&& i, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true, + const bool ignore_comments = false) + { + auto ia = i.get(); + return format == input_format_t::json + ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict) + : detail::binary_reader(std::move(ia)).sax_parse(format, sax, strict); + } + + /*! + @brief deserialize from stream + @deprecated This stream operator is deprecated and will be removed in + version 4.0.0 of the library. Please use + @ref operator>>(std::istream&, basic_json&) + instead; that is, replace calls like `j << i;` with `i >> j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator>>(std::istream&, basic_json&)) + friend std::istream& operator<<(basic_json& j, std::istream& i) + { + return operator>>(i, j); + } + + /*! + @brief deserialize from stream + + Deserializes an input stream to a JSON value. + + @param[in,out] i input stream to read a serialized JSON value from + @param[in,out] j JSON value to write the deserialized input to + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below shows how a JSON value is constructed by + reading a serialization from a stream.,operator_deserialize} + + @sa parse(std::istream&, const parser_callback_t) for a variant with a + parser callback function to filter values while parsing + + @since version 1.0.0 + */ + friend std::istream& operator>>(std::istream& i, basic_json& j) + { + parser(detail::input_adapter(i)).parse(false, j); + return i; + } + + /// @} + + /////////////////////////// + // convenience functions // + /////////////////////////// + + /*! + @brief return the type as string + + Returns the type name as string to be used in error messages - usually to + indicate that a function was called on a wrong JSON type. + + @return a string representation of a the @a m_type member: + Value type | return value + ----------- | ------------- + null | `"null"` + boolean | `"boolean"` + string | `"string"` + number | `"number"` (for all number types) + object | `"object"` + array | `"array"` + binary | `"binary"` + discarded | `"discarded"` + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Constant. + + @liveexample{The following code exemplifies `type_name()` for all JSON + types.,type_name} + + @sa @ref type() -- return the type of the JSON value + @sa @ref operator value_t() -- return the type of the JSON value (implicit) + + @since version 1.0.0, public since 2.1.0, `const char*` and `noexcept` + since 3.0.0 + */ + JSON_HEDLEY_RETURNS_NON_NULL + const char* type_name() const noexcept + { + { + switch (m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::binary: + return "binary"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } + } + } + + + private: + ////////////////////// + // member variables // + ////////////////////// + + /// the type of the current element + value_t m_type = value_t::null; + + /// the value of the current element + json_value m_value = {}; + + ////////////////////////////////////////// + // binary serialization/deserialization // + ////////////////////////////////////////// + + /// @name binary serialization/deserialization support + /// @{ + + public: + /*! + @brief create a CBOR serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the CBOR (Concise + Binary Object Representation) serialization format. CBOR is a binary + serialization format which aims to be more compact than JSON itself, yet + more efficient to parse. + + The library uses the following mapping from JSON values types to + CBOR types according to the CBOR specification (RFC 7049): + + JSON value type | value/range | CBOR type | first byte + --------------- | ------------------------------------------ | ---------------------------------- | --------------- + null | `null` | Null | 0xF6 + boolean | `true` | True | 0xF5 + boolean | `false` | False | 0xF4 + number_integer | -9223372036854775808..-2147483649 | Negative integer (8 bytes follow) | 0x3B + number_integer | -2147483648..-32769 | Negative integer (4 bytes follow) | 0x3A + number_integer | -32768..-129 | Negative integer (2 bytes follow) | 0x39 + number_integer | -128..-25 | Negative integer (1 byte follow) | 0x38 + number_integer | -24..-1 | Negative integer | 0x20..0x37 + number_integer | 0..23 | Integer | 0x00..0x17 + number_integer | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_integer | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_integer | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_integer | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_unsigned | 0..23 | Integer | 0x00..0x17 + number_unsigned | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_unsigned | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_unsigned | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_unsigned | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_float | *any value representable by a float* | Single-Precision Float | 0xFA + number_float | *any value NOT representable by a float* | Double-Precision Float | 0xFB + string | *length*: 0..23 | UTF-8 string | 0x60..0x77 + string | *length*: 23..255 | UTF-8 string (1 byte follow) | 0x78 + string | *length*: 256..65535 | UTF-8 string (2 bytes follow) | 0x79 + string | *length*: 65536..4294967295 | UTF-8 string (4 bytes follow) | 0x7A + string | *length*: 4294967296..18446744073709551615 | UTF-8 string (8 bytes follow) | 0x7B + array | *size*: 0..23 | array | 0x80..0x97 + array | *size*: 23..255 | array (1 byte follow) | 0x98 + array | *size*: 256..65535 | array (2 bytes follow) | 0x99 + array | *size*: 65536..4294967295 | array (4 bytes follow) | 0x9A + array | *size*: 4294967296..18446744073709551615 | array (8 bytes follow) | 0x9B + object | *size*: 0..23 | map | 0xA0..0xB7 + object | *size*: 23..255 | map (1 byte follow) | 0xB8 + object | *size*: 256..65535 | map (2 bytes follow) | 0xB9 + object | *size*: 65536..4294967295 | map (4 bytes follow) | 0xBA + object | *size*: 4294967296..18446744073709551615 | map (8 bytes follow) | 0xBB + binary | *size*: 0..23 | byte string | 0x40..0x57 + binary | *size*: 23..255 | byte string (1 byte follow) | 0x58 + binary | *size*: 256..65535 | byte string (2 bytes follow) | 0x59 + binary | *size*: 65536..4294967295 | byte string (4 bytes follow) | 0x5A + binary | *size*: 4294967296..18446744073709551615 | byte string (8 bytes follow) | 0x5B + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a CBOR value. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The following CBOR types are not used in the conversion: + - UTF-8 strings terminated by "break" (0x7F) + - arrays terminated by "break" (0x9F) + - maps terminated by "break" (0xBF) + - byte strings terminated by "break" (0x5F) + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + - half-precision floats (0xF9) + - break (0xFF) + + @param[in] j JSON value to serialize + @return CBOR serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in CBOR format.,to_cbor} + + @sa http://cbor.io + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the + analogous deserialization + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9; compact representation of floating-point numbers + since version 3.8.0 + */ + static std::vector to_cbor(const basic_json& j) + { + std::vector result; + to_cbor(j, result); + return result; + } + + static void to_cbor(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_cbor(j); + } + + static void to_cbor(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_cbor(j); + } + + /*! + @brief create a MessagePack serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the MessagePack + serialization format. MessagePack is a binary serialization format which + aims to be more compact than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + MessagePack types according to the MessagePack specification: + + JSON value type | value/range | MessagePack type | first byte + --------------- | --------------------------------- | ---------------- | ---------- + null | `null` | nil | 0xC0 + boolean | `true` | true | 0xC3 + boolean | `false` | false | 0xC2 + number_integer | -9223372036854775808..-2147483649 | int64 | 0xD3 + number_integer | -2147483648..-32769 | int32 | 0xD2 + number_integer | -32768..-129 | int16 | 0xD1 + number_integer | -128..-33 | int8 | 0xD0 + number_integer | -32..-1 | negative fixint | 0xE0..0xFF + number_integer | 0..127 | positive fixint | 0x00..0x7F + number_integer | 128..255 | uint 8 | 0xCC + number_integer | 256..65535 | uint 16 | 0xCD + number_integer | 65536..4294967295 | uint 32 | 0xCE + number_integer | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_unsigned | 0..127 | positive fixint | 0x00..0x7F + number_unsigned | 128..255 | uint 8 | 0xCC + number_unsigned | 256..65535 | uint 16 | 0xCD + number_unsigned | 65536..4294967295 | uint 32 | 0xCE + number_unsigned | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_float | *any value representable by a float* | float 32 | 0xCA + number_float | *any value NOT representable by a float* | float 64 | 0xCB + string | *length*: 0..31 | fixstr | 0xA0..0xBF + string | *length*: 32..255 | str 8 | 0xD9 + string | *length*: 256..65535 | str 16 | 0xDA + string | *length*: 65536..4294967295 | str 32 | 0xDB + array | *size*: 0..15 | fixarray | 0x90..0x9F + array | *size*: 16..65535 | array 16 | 0xDC + array | *size*: 65536..4294967295 | array 32 | 0xDD + object | *size*: 0..15 | fix map | 0x80..0x8F + object | *size*: 16..65535 | map 16 | 0xDE + object | *size*: 65536..4294967295 | map 32 | 0xDF + binary | *size*: 0..255 | bin 8 | 0xC4 + binary | *size*: 256..65535 | bin 16 | 0xC5 + binary | *size*: 65536..4294967295 | bin 32 | 0xC6 + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a MessagePack value. + + @note The following values can **not** be converted to a MessagePack value: + - strings with more than 4294967295 bytes + - byte strings with more than 4294967295 bytes + - arrays with more than 4294967295 elements + - objects with more than 4294967295 elements + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @param[in] j JSON value to serialize + @return MessagePack serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in MessagePack format.,to_msgpack} + + @sa http://msgpack.org + @sa @ref from_msgpack for the analogous deserialization + @sa @ref to_cbor(const basic_json& for the related CBOR format + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9 + */ + static std::vector to_msgpack(const basic_json& j) + { + std::vector result; + to_msgpack(j, result); + return result; + } + + static void to_msgpack(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_msgpack(j); + } + + static void to_msgpack(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_msgpack(j); + } + + /*! + @brief create a UBJSON serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the UBJSON + (Universal Binary JSON) serialization format. UBJSON aims to be more compact + than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + UBJSON types according to the UBJSON specification: + + JSON value type | value/range | UBJSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | `Z` + boolean | `true` | true | `T` + boolean | `false` | false | `F` + number_integer | -9223372036854775808..-2147483649 | int64 | `L` + number_integer | -2147483648..-32769 | int32 | `l` + number_integer | -32768..-129 | int16 | `I` + number_integer | -128..127 | int8 | `i` + number_integer | 128..255 | uint8 | `U` + number_integer | 256..32767 | int16 | `I` + number_integer | 32768..2147483647 | int32 | `l` + number_integer | 2147483648..9223372036854775807 | int64 | `L` + number_unsigned | 0..127 | int8 | `i` + number_unsigned | 128..255 | uint8 | `U` + number_unsigned | 256..32767 | int16 | `I` + number_unsigned | 32768..2147483647 | int32 | `l` + number_unsigned | 2147483648..9223372036854775807 | int64 | `L` + number_unsigned | 2147483649..18446744073709551615 | high-precision | `H` + number_float | *any value* | float64 | `D` + string | *with shortest length indicator* | string | `S` + array | *see notes on optimized format* | array | `[` + object | *see notes on optimized format* | map | `{` + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a UBJSON value. + + @note The following values can **not** be converted to a UBJSON value: + - strings with more than 9223372036854775807 bytes (theoretical) + + @note The following markers are not used in the conversion: + - `Z`: no-op values are not created. + - `C`: single-byte strings are serialized with `S` markers. + + @note Any UBJSON output created @ref to_ubjson can be successfully parsed + by @ref from_ubjson. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The optimized formats for containers are supported: Parameter + @a use_size adds size information to the beginning of a container and + removes the closing marker. Parameter @a use_type further checks + whether all elements of a container have the same type and adds the + type marker to the beginning of the container. The @a use_type + parameter must only be used together with @a use_size = true. Note + that @a use_size = true alone may result in larger representations - + the benefit of this parameter is that the receiving side is + immediately informed on the number of elements of the container. + + @note If the JSON data contains the binary type, the value stored is a list + of integers, as suggested by the UBJSON documentation. In particular, + this means that serialization and the deserialization of a JSON + containing binary values into UBJSON and back will result in a + different JSON object. + + @param[in] j JSON value to serialize + @param[in] use_size whether to add size annotations to container types + @param[in] use_type whether to add type annotations to container types + (must be combined with @a use_size = true) + @return UBJSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in UBJSON format.,to_ubjson} + + @sa http://ubjson.org + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + analogous deserialization + @sa @ref to_cbor(const basic_json& for the related CBOR format + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + + @since version 3.1.0 + */ + static std::vector to_ubjson(const basic_json& j, + const bool use_size = false, + const bool use_type = false) + { + std::vector result; + to_ubjson(j, result, use_size, use_type); + return result; + } + + static void to_ubjson(const basic_json& j, detail::output_adapter o, + const bool use_size = false, const bool use_type = false) + { + binary_writer(o).write_ubjson(j, use_size, use_type); + } + + static void to_ubjson(const basic_json& j, detail::output_adapter o, + const bool use_size = false, const bool use_type = false) + { + binary_writer(o).write_ubjson(j, use_size, use_type); + } + + + /*! + @brief Serializes the given JSON object `j` to BSON and returns a vector + containing the corresponding BSON-representation. + + BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are + stored as a single entity (a so-called document). + + The library uses the following mapping from JSON values types to BSON types: + + JSON value type | value/range | BSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | 0x0A + boolean | `true`, `false` | boolean | 0x08 + number_integer | -9223372036854775808..-2147483649 | int64 | 0x12 + number_integer | -2147483648..2147483647 | int32 | 0x10 + number_integer | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 0..2147483647 | int32 | 0x10 + number_unsigned | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 9223372036854775808..18446744073709551615| -- | -- + number_float | *any value* | double | 0x01 + string | *any value* | string | 0x02 + array | *any value* | document | 0x04 + object | *any value* | document | 0x03 + binary | *any value* | binary | 0x05 + + @warning The mapping is **incomplete**, since only JSON-objects (and things + contained therein) can be serialized to BSON. + Also, integers larger than 9223372036854775807 cannot be serialized to BSON, + and the keys may not contain U+0000, since they are serialized a + zero-terminated c-strings. + + @throw out_of_range.407 if `j.is_number_unsigned() && j.get() > 9223372036854775807` + @throw out_of_range.409 if a key in `j` contains a NULL (U+0000) + @throw type_error.317 if `!j.is_object()` + + @pre The input `j` is required to be an object: `j.is_object() == true`. + + @note Any BSON output created via @ref to_bson can be successfully parsed + by @ref from_bson. + + @param[in] j JSON value to serialize + @return BSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in BSON format.,to_bson} + + @sa http://bsonspec.org/spec.html + @sa @ref from_bson(detail::input_adapter&&, const bool strict) for the + analogous deserialization + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + @sa @ref to_cbor(const basic_json&) for the related CBOR format + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + */ + static std::vector to_bson(const basic_json& j) + { + std::vector result; + to_bson(j, result); + return result; + } + + /*! + @brief Serializes the given JSON object `j` to BSON and forwards the + corresponding BSON-representation to the given output_adapter `o`. + @param j The JSON object to convert to BSON. + @param o The output adapter that receives the binary BSON representation. + @pre The input `j` shall be an object: `j.is_object() == true` + @sa @ref to_bson(const basic_json&) + */ + static void to_bson(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_bson(j); + } + + /*! + @copydoc to_bson(const basic_json&, detail::output_adapter) + */ + static void to_bson(const basic_json& j, detail::output_adapter o) + { + binary_writer(o).write_bson(j); + } + + + /*! + @brief create a JSON value from an input in CBOR format + + Deserializes a given input @a i to a JSON value using the CBOR (Concise + Binary Object Representation) serialization format. + + The library maps CBOR types to JSON value types as follows: + + CBOR type | JSON value type | first byte + ---------------------- | --------------- | ---------- + Integer | number_unsigned | 0x00..0x17 + Unsigned integer | number_unsigned | 0x18 + Unsigned integer | number_unsigned | 0x19 + Unsigned integer | number_unsigned | 0x1A + Unsigned integer | number_unsigned | 0x1B + Negative integer | number_integer | 0x20..0x37 + Negative integer | number_integer | 0x38 + Negative integer | number_integer | 0x39 + Negative integer | number_integer | 0x3A + Negative integer | number_integer | 0x3B + Byte string | binary | 0x40..0x57 + Byte string | binary | 0x58 + Byte string | binary | 0x59 + Byte string | binary | 0x5A + Byte string | binary | 0x5B + UTF-8 string | string | 0x60..0x77 + UTF-8 string | string | 0x78 + UTF-8 string | string | 0x79 + UTF-8 string | string | 0x7A + UTF-8 string | string | 0x7B + UTF-8 string | string | 0x7F + array | array | 0x80..0x97 + array | array | 0x98 + array | array | 0x99 + array | array | 0x9A + array | array | 0x9B + array | array | 0x9F + map | object | 0xA0..0xB7 + map | object | 0xB8 + map | object | 0xB9 + map | object | 0xBA + map | object | 0xBB + map | object | 0xBF + False | `false` | 0xF4 + True | `true` | 0xF5 + Null | `null` | 0xF6 + Half-Precision Float | number_float | 0xF9 + Single-Precision Float | number_float | 0xFA + Double-Precision Float | number_float | 0xFB + + @warning The mapping is **incomplete** in the sense that not all CBOR + types can be converted to a JSON value. The following CBOR types + are not supported and will yield parse errors (parse_error.112): + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + + @warning CBOR allows map keys of any type, whereas JSON only allows + strings as keys in object values. Therefore, CBOR maps with keys + other than UTF-8 strings are rejected (parse_error.113). + + @note Any CBOR output created @ref to_cbor can be successfully parsed by + @ref from_cbor. + + @param[in] i an input in CBOR format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + @param[in] tag_handler how to treat CBOR tags (optional, error by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from CBOR were + used in the given input @a v or if the input is not valid CBOR + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in CBOR + format to a JSON value.,from_cbor} + + @sa http://cbor.io + @sa @ref to_cbor(const basic_json&) for the analogous serialization + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for the + related MessagePack format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0; added @a tag_handler parameter since 3.9.0. + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_cbor(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_cbor(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len)) + static basic_json from_cbor(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + return from_cbor(ptr, ptr + len, strict, allow_exceptions, tag_handler); + } + + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len)) + static basic_json from_cbor(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true, + const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @brief create a JSON value from an input in MessagePack format + + Deserializes a given input @a i to a JSON value using the MessagePack + serialization format. + + The library maps MessagePack types to JSON value types as follows: + + MessagePack type | JSON value type | first byte + ---------------- | --------------- | ---------- + positive fixint | number_unsigned | 0x00..0x7F + fixmap | object | 0x80..0x8F + fixarray | array | 0x90..0x9F + fixstr | string | 0xA0..0xBF + nil | `null` | 0xC0 + false | `false` | 0xC2 + true | `true` | 0xC3 + float 32 | number_float | 0xCA + float 64 | number_float | 0xCB + uint 8 | number_unsigned | 0xCC + uint 16 | number_unsigned | 0xCD + uint 32 | number_unsigned | 0xCE + uint 64 | number_unsigned | 0xCF + int 8 | number_integer | 0xD0 + int 16 | number_integer | 0xD1 + int 32 | number_integer | 0xD2 + int 64 | number_integer | 0xD3 + str 8 | string | 0xD9 + str 16 | string | 0xDA + str 32 | string | 0xDB + array 16 | array | 0xDC + array 32 | array | 0xDD + map 16 | object | 0xDE + map 32 | object | 0xDF + bin 8 | binary | 0xC4 + bin 16 | binary | 0xC5 + bin 32 | binary | 0xC6 + ext 8 | binary | 0xC7 + ext 16 | binary | 0xC8 + ext 32 | binary | 0xC9 + fixext 1 | binary | 0xD4 + fixext 2 | binary | 0xD5 + fixext 4 | binary | 0xD6 + fixext 8 | binary | 0xD7 + fixext 16 | binary | 0xD8 + negative fixint | number_integer | 0xE0-0xFF + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @param[in] i an input in MessagePack format convertible to an input + adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from MessagePack were + used in the given input @a i or if the input is not valid MessagePack + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + MessagePack format to a JSON value.,from_msgpack} + + @sa http://msgpack.org + @sa @ref to_msgpack(const basic_json&) for the analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for + the related UBJSON format + @sa @ref from_bson(detail::input_adapter&&, const bool, const bool) for + the related BSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0 + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_msgpack(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_msgpack(detail::input_adapter&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_msgpack(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len)) + static basic_json from_msgpack(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_msgpack(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len)) + static basic_json from_msgpack(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + /*! + @brief create a JSON value from an input in UBJSON format + + Deserializes a given input @a i to a JSON value using the UBJSON (Universal + Binary JSON) serialization format. + + The library maps UBJSON types to JSON value types as follows: + + UBJSON type | JSON value type | marker + ----------- | --------------------------------------- | ------ + no-op | *no value, next value is read* | `N` + null | `null` | `Z` + false | `false` | `F` + true | `true` | `T` + float32 | number_float | `d` + float64 | number_float | `D` + uint8 | number_unsigned | `U` + int8 | number_integer | `i` + int16 | number_integer | `I` + int32 | number_integer | `l` + int64 | number_integer | `L` + high-precision number | number_integer, number_unsigned, or number_float - depends on number string | 'H' + string | string | `S` + char | string | `C` + array | array (optimized values are supported) | `[` + object | object (optimized values are supported) | `{` + + @note The mapping is **complete** in the sense that any UBJSON value can + be converted to a JSON value. + + @param[in] i an input in UBJSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if a parse error occurs + @throw parse_error.113 if a string could not be parsed successfully + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + UBJSON format to a JSON value.,from_ubjson} + + @sa http://ubjson.org + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for + the related MessagePack format + @sa @ref from_bson(detail::input_adapter&&, const bool, const bool) for + the related BSON format + + @since version 3.1.0; added @a allow_exceptions parameter since 3.2.0 + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_ubjson(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_ubjson(detail::input_adapter&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_ubjson(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len)) + static basic_json from_ubjson(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_ubjson(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len)) + static basic_json from_ubjson(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + /*! + @brief Create a JSON value from an input in BSON format + + Deserializes a given input @a i to a JSON value using the BSON (Binary JSON) + serialization format. + + The library maps BSON record types to JSON value types as follows: + + BSON type | BSON marker byte | JSON value type + --------------- | ---------------- | --------------------------- + double | 0x01 | number_float + string | 0x02 | string + document | 0x03 | object + array | 0x04 | array + binary | 0x05 | still unsupported + undefined | 0x06 | still unsupported + ObjectId | 0x07 | still unsupported + boolean | 0x08 | boolean + UTC Date-Time | 0x09 | still unsupported + null | 0x0A | null + Regular Expr. | 0x0B | still unsupported + DB Pointer | 0x0C | still unsupported + JavaScript Code | 0x0D | still unsupported + Symbol | 0x0E | still unsupported + JavaScript Code | 0x0F | still unsupported + int32 | 0x10 | number_integer + Timestamp | 0x11 | still unsupported + 128-bit decimal float | 0x13 | still unsupported + Max Key | 0x7F | still unsupported + Min Key | 0xFF | still unsupported + + @warning The mapping is **incomplete**. The unsupported mappings + are indicated in the table above. + + @param[in] i an input in BSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.114 if an unsupported BSON record type is encountered + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + BSON format to a JSON value.,from_bson} + + @sa http://bsonspec.org/spec.html + @sa @ref to_bson(const basic_json&) for the analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool, const cbor_tag_handler_t) for the + related CBOR format + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for + the related MessagePack format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + related UBJSON format + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_bson(InputType&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::forward(i)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_bson(detail::input_adapter&&, const bool, const bool) + */ + template + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json from_bson(IteratorType first, IteratorType last, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = detail::input_adapter(std::move(first), std::move(last)); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + template + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len)) + static basic_json from_bson(const T* ptr, std::size_t len, + const bool strict = true, + const bool allow_exceptions = true) + { + return from_bson(ptr, ptr + len, strict, allow_exceptions); + } + + JSON_HEDLEY_WARN_UNUSED_RESULT + JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len)) + static basic_json from_bson(detail::span_input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser sdp(result, allow_exceptions); + auto ia = i.get(); + const bool res = binary_reader(std::move(ia)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + /// @} + + ////////////////////////// + // JSON Pointer support // + ////////////////////////// + + /// @name JSON Pointer functions + /// @{ + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. Similar to @ref operator[](const typename + object_t::key_type&), `null` values are created in arrays and objects if + necessary. + + In particular: + - If the JSON pointer points to an object key that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. + - If the JSON pointer points to an array index that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. All indices between the current maximum and the given + index are also filled with `null`. + - The special value `-` is treated as a synonym for the index past the + end. + + @param[in] ptr a JSON pointer + + @return reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer} + + @since version 2.0.0 + */ + reference operator[](const json_pointer& ptr) + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. The function does not change the JSON + value; no `null` values are created. In particular, the special value + `-` yields an exception. + + @param[in] ptr JSON pointer to the desired element + + @return const reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer_const} + + @since version 2.0.0 + */ + const_reference operator[](const json_pointer& ptr) const + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a reference to the element at with specified JSON pointer @a ptr, + with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer} + */ + reference at(const json_pointer& ptr) + { + return ptr.get_checked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a const reference to the element at with specified JSON pointer @a + ptr, with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer_const} + */ + const_reference at(const json_pointer& ptr) const + { + return ptr.get_checked(this); + } + + /*! + @brief return flattened JSON value + + The function creates a JSON object whose keys are JSON pointers (see [RFC + 6901](https://tools.ietf.org/html/rfc6901)) and whose values are all + primitive. The original JSON value can be restored using the @ref + unflatten() function. + + @return an object that maps JSON pointers to primitive values + + @note Empty objects and arrays are flattened to `null` and will not be + reconstructed correctly by the @ref unflatten() function. + + @complexity Linear in the size the JSON value. + + @liveexample{The following code shows how a JSON object is flattened to an + object whose keys consist of JSON pointers.,flatten} + + @sa @ref unflatten() for the reverse function + + @since version 2.0.0 + */ + basic_json flatten() const + { + basic_json result(value_t::object); + json_pointer::flatten("", *this, result); + return result; + } + + /*! + @brief unflatten a previously flattened JSON value + + The function restores the arbitrary nesting of a JSON value that has been + flattened before using the @ref flatten() function. The JSON value must + meet certain constraints: + 1. The value must be an object. + 2. The keys must be JSON pointers (see + [RFC 6901](https://tools.ietf.org/html/rfc6901)) + 3. The mapped values must be primitive JSON types. + + @return the original JSON from a flattened version + + @note Empty objects and arrays are flattened by @ref flatten() to `null` + values and can not unflattened to their original type. Apart from + this example, for a JSON value `j`, the following is always true: + `j == j.flatten().unflatten()`. + + @complexity Linear in the size the JSON value. + + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + + @liveexample{The following code shows how a flattened JSON object is + unflattened into the original nested JSON object.,unflatten} + + @sa @ref flatten() for the reverse function + + @since version 2.0.0 + */ + basic_json unflatten() const + { + return json_pointer::unflatten(*this); + } + + /// @} + + ////////////////////////// + // JSON Patch functions // + ////////////////////////// + + /// @name JSON Patch functions + /// @{ + + /*! + @brief applies a JSON patch + + [JSON Patch](http://jsonpatch.com) defines a JSON document structure for + expressing a sequence of operations to apply to a JSON) document. With + this function, a JSON Patch is applied to the current JSON value by + executing all operations from the patch. + + @param[in] json_patch JSON patch document + @return patched document + + @note The application of a patch is atomic: Either all operations succeed + and the patched document is returned or an exception is thrown. In + any case, the original value is not changed: the patch is applied + to a copy of the value. + + @throw parse_error.104 if the JSON patch does not consist of an array of + objects + + @throw parse_error.105 if the JSON patch is malformed (e.g., mandatory + attributes are missing); example: `"operation add must have member path"` + + @throw out_of_range.401 if an array index is out of range. + + @throw out_of_range.403 if a JSON pointer inside the patch could not be + resolved successfully in the current JSON value; example: `"key baz not + found"` + + @throw out_of_range.405 if JSON pointer has no parent ("add", "remove", + "move") + + @throw other_error.501 if "test" operation was unsuccessful + + @complexity Linear in the size of the JSON value and the length of the + JSON patch. As usually only a fraction of the JSON value is affected by + the patch, the complexity can usually be neglected. + + @liveexample{The following code shows how a JSON patch is applied to a + value.,patch} + + @sa @ref diff -- create a JSON patch by comparing two JSON values + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) + + @since version 2.0.0 + */ + basic_json patch(const basic_json& json_patch) const + { + // make a working copy to apply the patch to + basic_json result = *this; + + // the valid JSON Patch operations + enum class patch_operations {add, remove, replace, move, copy, test, invalid}; + + const auto get_op = [](const std::string & op) + { + if (op == "add") + { + return patch_operations::add; + } + if (op == "remove") + { + return patch_operations::remove; + } + if (op == "replace") + { + return patch_operations::replace; + } + if (op == "move") + { + return patch_operations::move; + } + if (op == "copy") + { + return patch_operations::copy; + } + if (op == "test") + { + return patch_operations::test; + } + + return patch_operations::invalid; + }; + + // wrapper for "add" operation; add value at ptr + const auto operation_add = [&result](json_pointer & ptr, basic_json val) + { + // adding to the root of the target document means replacing it + if (ptr.empty()) + { + result = val; + return; + } + + // make sure the top element of the pointer exists + json_pointer top_pointer = ptr.top(); + if (top_pointer != ptr) + { + result.at(top_pointer); + } + + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result[ptr]; + + switch (parent.m_type) + { + case value_t::null: + case value_t::object: + { + // use operator[] to add value + parent[last_path] = val; + break; + } + + case value_t::array: + { + if (last_path == "-") + { + // special case: append to back + parent.push_back(val); + } + else + { + const auto idx = json_pointer::array_index(last_path); + if (JSON_HEDLEY_UNLIKELY(idx > parent.size())) + { + // avoid undefined behavior + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + + // default case: insert add offset + parent.insert(parent.begin() + static_cast(idx), val); + } + break; + } + + // if there exists a parent it cannot be primitive + default: // LCOV_EXCL_LINE + JSON_ASSERT(false); // LCOV_EXCL_LINE + } + }; + + // wrapper for "remove" operation; remove value at ptr + const auto operation_remove = [&result](json_pointer & ptr) + { + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result.at(ptr); + + // remove child + if (parent.is_object()) + { + // perform range check + auto it = parent.find(last_path); + if (JSON_HEDLEY_LIKELY(it != parent.end())) + { + parent.erase(it); + } + else + { + JSON_THROW(out_of_range::create(403, "key '" + last_path + "' not found")); + } + } + else if (parent.is_array()) + { + // note erase performs range check + parent.erase(json_pointer::array_index(last_path)); + } + }; + + // type check: top level value must be an array + if (JSON_HEDLEY_UNLIKELY(!json_patch.is_array())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects")); + } + + // iterate and apply the operations + for (const auto& val : json_patch) + { + // wrapper to get a value for an operation + const auto get_value = [&val](const std::string & op, + const std::string & member, + bool string_type) -> basic_json & + { + // find value + auto it = val.m_value.object->find(member); + + // context-sensitive error message + const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'"; + + // check if desired value is present + if (JSON_HEDLEY_UNLIKELY(it == val.m_value.object->end())) + { + JSON_THROW(parse_error::create(105, 0, error_msg + " must have member '" + member + "'")); + } + + // check if result is of type string + if (JSON_HEDLEY_UNLIKELY(string_type && !it->second.is_string())) + { + JSON_THROW(parse_error::create(105, 0, error_msg + " must have string member '" + member + "'")); + } + + // no error: return value + return it->second; + }; + + // type check: every element of the array must be an object + if (JSON_HEDLEY_UNLIKELY(!val.is_object())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects")); + } + + // collect mandatory members + const auto op = get_value("op", "op", true).template get(); + const auto path = get_value(op, "path", true).template get(); + json_pointer ptr(path); + + switch (get_op(op)) + { + case patch_operations::add: + { + operation_add(ptr, get_value("add", "value", false)); + break; + } + + case patch_operations::remove: + { + operation_remove(ptr); + break; + } + + case patch_operations::replace: + { + // the "path" location must exist - use at() + result.at(ptr) = get_value("replace", "value", false); + break; + } + + case patch_operations::move: + { + const auto from_path = get_value("move", "from", true).template get(); + json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The move operation is functionally identical to a + // "remove" operation on the "from" location, followed + // immediately by an "add" operation at the target + // location with the value that was just removed. + operation_remove(from_ptr); + operation_add(ptr, v); + break; + } + + case patch_operations::copy: + { + const auto from_path = get_value("copy", "from", true).template get(); + const json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The copy is functionally identical to an "add" + // operation at the target location using the value + // specified in the "from" member. + operation_add(ptr, v); + break; + } + + case patch_operations::test: + { + bool success = false; + JSON_TRY + { + // check if "value" matches the one at "path" + // the "path" location must exist - use at() + success = (result.at(ptr) == get_value("test", "value", false)); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + // ignore out of range errors: success remains false + } + + // throw an exception if test fails + if (JSON_HEDLEY_UNLIKELY(!success)) + { + JSON_THROW(other_error::create(501, "unsuccessful: " + val.dump())); + } + + break; + } + + default: + { + // op must be "add", "remove", "replace", "move", "copy", or + // "test" + JSON_THROW(parse_error::create(105, 0, "operation value '" + op + "' is invalid")); + } + } + } + + return result; + } + + /*! + @brief creates a diff as a JSON patch + + Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can + be changed into the value @a target by calling @ref patch function. + + @invariant For two JSON values @a source and @a target, the following code + yields always `true`: + @code {.cpp} + source.patch(diff(source, target)) == target; + @endcode + + @note Currently, only `remove`, `add`, and `replace` operations are + generated. + + @param[in] source JSON value to compare from + @param[in] target JSON value to compare against + @param[in] path helper value to create JSON pointers + + @return a JSON patch to convert the @a source to @a target + + @complexity Linear in the lengths of @a source and @a target. + + @liveexample{The following code shows how a JSON patch is created as a + diff for two JSON values.,diff} + + @sa @ref patch -- apply a JSON patch + @sa @ref merge_patch -- apply a JSON Merge Patch + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + + @since version 2.0.0 + */ + JSON_HEDLEY_WARN_UNUSED_RESULT + static basic_json diff(const basic_json& source, const basic_json& target, + const std::string& path = "") + { + // the patch + basic_json result(value_t::array); + + // if the values are the same, return empty patch + if (source == target) + { + return result; + } + + if (source.type() != target.type()) + { + // different types: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + return result; + } + + switch (source.type()) + { + case value_t::array: + { + // first pass: traverse common elements + std::size_t i = 0; + while (i < source.size() && i < target.size()) + { + // recursive call to compare array values at index i + auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i)); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + ++i; + } + + // i now reached the end of at least one array + // in a second pass, traverse the remaining elements + + // remove my remaining elements + const auto end_index = static_cast(result.size()); + while (i < source.size()) + { + // add operations in reverse order to avoid invalid + // indices + result.insert(result.begin() + end_index, object( + { + {"op", "remove"}, + {"path", path + "/" + std::to_string(i)} + })); + ++i; + } + + // add other remaining elements + while (i < target.size()) + { + result.push_back( + { + {"op", "add"}, + {"path", path + "/-"}, + {"value", target[i]} + }); + ++i; + } + + break; + } + + case value_t::object: + { + // first pass: traverse this object's elements + for (auto it = source.cbegin(); it != source.cend(); ++it) + { + // escape the key name to be used in a JSON patch + const auto key = json_pointer::escape(it.key()); + + if (target.find(it.key()) != target.end()) + { + // recursive call to compare object values at key it + auto temp_diff = diff(it.value(), target[it.key()], path + "/" + key); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + } + else + { + // found a key that is not in o -> remove it + result.push_back(object( + { + {"op", "remove"}, {"path", path + "/" + key} + })); + } + } + + // second pass: traverse other object's elements + for (auto it = target.cbegin(); it != target.cend(); ++it) + { + if (source.find(it.key()) == source.end()) + { + // found a key that is not in this -> add it + const auto key = json_pointer::escape(it.key()); + result.push_back( + { + {"op", "add"}, {"path", path + "/" + key}, + {"value", it.value()} + }); + } + } + + break; + } + + default: + { + // both primitive type: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + break; + } + } + + return result; + } + + /// @} + + //////////////////////////////// + // JSON Merge Patch functions // + //////////////////////////////// + + /// @name JSON Merge Patch functions + /// @{ + + /*! + @brief applies a JSON Merge Patch + + The merge patch format is primarily intended for use with the HTTP PATCH + method as a means of describing a set of modifications to a target + resource's content. This function applies a merge patch to the current + JSON value. + + The function implements the following algorithm from Section 2 of + [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396): + + ``` + define MergePatch(Target, Patch): + if Patch is an Object: + if Target is not an Object: + Target = {} // Ignore the contents and set it to an empty Object + for each Name/Value pair in Patch: + if Value is null: + if Name exists in Target: + remove the Name/Value pair from Target + else: + Target[Name] = MergePatch(Target[Name], Value) + return Target + else: + return Patch + ``` + + Thereby, `Target` is the current object; that is, the patch is applied to + the current value. + + @param[in] apply_patch the patch to apply + + @complexity Linear in the lengths of @a patch. + + @liveexample{The following code shows how a JSON Merge Patch is applied to + a JSON document.,merge_patch} + + @sa @ref patch -- apply a JSON patch + @sa [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396) + + @since version 3.0.0 + */ + void merge_patch(const basic_json& apply_patch) + { + if (apply_patch.is_object()) + { + if (!is_object()) + { + *this = object(); + } + for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it) + { + if (it.value().is_null()) + { + erase(it.key()); + } + else + { + operator[](it.key()).merge_patch(it.value()); + } + } + } + else + { + *this = apply_patch; + } + } + + /// @} +}; + +/*! +@brief user-defined to_string function for JSON values + +This function implements a user-defined to_string for JSON objects. + +@param[in] j a JSON object +@return a std::string object +*/ + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j) +{ + return j.dump(); +} +} // namespace nlohmann + +/////////////////////// +// nonmember support // +/////////////////////// + +// specialization of std::swap, and std::hash +namespace std +{ + +/// hash value for JSON objects +template<> +struct hash +{ + /*! + @brief return a hash value for a JSON object + + @since version 1.0.0 + */ + std::size_t operator()(const nlohmann::json& j) const + { + return nlohmann::detail::hash(j); + } +}; + +/// specialization for std::less +/// @note: do not remove the space after '<', +/// see https://github.com/nlohmann/json/pull/679 +template<> +struct less<::nlohmann::detail::value_t> +{ + /*! + @brief compare two value_t enum values + @since version 3.0.0 + */ + bool operator()(nlohmann::detail::value_t lhs, + nlohmann::detail::value_t rhs) const noexcept + { + return nlohmann::detail::operator<(lhs, rhs); + } +}; + +// C++20 prohibit function specialization in the std namespace. +#ifndef JSON_HAS_CPP_20 + +/*! +@brief exchanges the values of two JSON objects + +@since version 1.0.0 +*/ +template<> +inline void swap(nlohmann::json& j1, nlohmann::json& j2) noexcept( + is_nothrow_move_constructible::value&& + is_nothrow_move_assignable::value + ) +{ + j1.swap(j2); +} + +#endif + +} // namespace std + +/*! +@brief user-defined string literal for JSON values + +This operator implements a user-defined string literal for JSON objects. It +can be used by adding `"_json"` to a string literal and returns a JSON object +if no parse error occurred. + +@param[in] s a string representation of a JSON object +@param[in] n the length of string @a s +@return a JSON object + +@since version 1.0.0 +*/ +JSON_HEDLEY_NON_NULL(1) +inline nlohmann::json operator "" _json(const char* s, std::size_t n) +{ + return nlohmann::json::parse(s, s + n); +} + +/*! +@brief user-defined string literal for JSON pointer + +This operator implements a user-defined string literal for JSON Pointers. It +can be used by adding `"_json_pointer"` to a string literal and returns a JSON pointer +object if no parse error occurred. + +@param[in] s a string representation of a JSON Pointer +@param[in] n the length of string @a s +@return a JSON pointer object + +@since version 2.0.0 +*/ +JSON_HEDLEY_NON_NULL(1) +inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) +{ + return nlohmann::json::json_pointer(std::string(s, n)); +} + +// #include + + +// restore GCC/clang diagnostic settings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #pragma GCC diagnostic pop +#endif +#if defined(__clang__) + #pragma GCC diagnostic pop +#endif + +// clean up +#undef JSON_ASSERT +#undef JSON_INTERNAL_CATCH +#undef JSON_CATCH +#undef JSON_THROW +#undef JSON_TRY +#undef JSON_HAS_CPP_14 +#undef JSON_HAS_CPP_17 +#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION +#undef NLOHMANN_BASIC_JSON_TPL +#undef JSON_EXPLICIT + +// #include +#undef JSON_HEDLEY_ALWAYS_INLINE +#undef JSON_HEDLEY_ARM_VERSION +#undef JSON_HEDLEY_ARM_VERSION_CHECK +#undef JSON_HEDLEY_ARRAY_PARAM +#undef JSON_HEDLEY_ASSUME +#undef JSON_HEDLEY_BEGIN_C_DECLS +#undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#undef JSON_HEDLEY_CLANG_HAS_FEATURE +#undef JSON_HEDLEY_CLANG_HAS_WARNING +#undef JSON_HEDLEY_COMPCERT_VERSION +#undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#undef JSON_HEDLEY_CONCAT +#undef JSON_HEDLEY_CONCAT3 +#undef JSON_HEDLEY_CONCAT3_EX +#undef JSON_HEDLEY_CONCAT_EX +#undef JSON_HEDLEY_CONST +#undef JSON_HEDLEY_CONSTEXPR +#undef JSON_HEDLEY_CONST_CAST +#undef JSON_HEDLEY_CPP_CAST +#undef JSON_HEDLEY_CRAY_VERSION +#undef JSON_HEDLEY_CRAY_VERSION_CHECK +#undef JSON_HEDLEY_C_DECL +#undef JSON_HEDLEY_DEPRECATED +#undef JSON_HEDLEY_DEPRECATED_FOR +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#undef JSON_HEDLEY_DIAGNOSTIC_POP +#undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#undef JSON_HEDLEY_DMC_VERSION +#undef JSON_HEDLEY_DMC_VERSION_CHECK +#undef JSON_HEDLEY_EMPTY_BASES +#undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#undef JSON_HEDLEY_END_C_DECLS +#undef JSON_HEDLEY_FLAGS +#undef JSON_HEDLEY_FLAGS_CAST +#undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_BUILTIN +#undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_GCC_HAS_EXTENSION +#undef JSON_HEDLEY_GCC_HAS_FEATURE +#undef JSON_HEDLEY_GCC_HAS_WARNING +#undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#undef JSON_HEDLEY_GCC_VERSION +#undef JSON_HEDLEY_GCC_VERSION_CHECK +#undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#undef JSON_HEDLEY_GNUC_HAS_FEATURE +#undef JSON_HEDLEY_GNUC_HAS_WARNING +#undef JSON_HEDLEY_GNUC_VERSION +#undef JSON_HEDLEY_GNUC_VERSION_CHECK +#undef JSON_HEDLEY_HAS_ATTRIBUTE +#undef JSON_HEDLEY_HAS_BUILTIN +#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#undef JSON_HEDLEY_HAS_EXTENSION +#undef JSON_HEDLEY_HAS_FEATURE +#undef JSON_HEDLEY_HAS_WARNING +#undef JSON_HEDLEY_IAR_VERSION +#undef JSON_HEDLEY_IAR_VERSION_CHECK +#undef JSON_HEDLEY_IBM_VERSION +#undef JSON_HEDLEY_IBM_VERSION_CHECK +#undef JSON_HEDLEY_IMPORT +#undef JSON_HEDLEY_INLINE +#undef JSON_HEDLEY_INTEL_VERSION +#undef JSON_HEDLEY_INTEL_VERSION_CHECK +#undef JSON_HEDLEY_IS_CONSTANT +#undef JSON_HEDLEY_IS_CONSTEXPR_ +#undef JSON_HEDLEY_LIKELY +#undef JSON_HEDLEY_MALLOC +#undef JSON_HEDLEY_MESSAGE +#undef JSON_HEDLEY_MSVC_VERSION +#undef JSON_HEDLEY_MSVC_VERSION_CHECK +#undef JSON_HEDLEY_NEVER_INLINE +#undef JSON_HEDLEY_NON_NULL +#undef JSON_HEDLEY_NO_ESCAPE +#undef JSON_HEDLEY_NO_RETURN +#undef JSON_HEDLEY_NO_THROW +#undef JSON_HEDLEY_NULL +#undef JSON_HEDLEY_PELLES_VERSION +#undef JSON_HEDLEY_PELLES_VERSION_CHECK +#undef JSON_HEDLEY_PGI_VERSION +#undef JSON_HEDLEY_PGI_VERSION_CHECK +#undef JSON_HEDLEY_PREDICT +#undef JSON_HEDLEY_PRINTF_FORMAT +#undef JSON_HEDLEY_PRIVATE +#undef JSON_HEDLEY_PUBLIC +#undef JSON_HEDLEY_PURE +#undef JSON_HEDLEY_REINTERPRET_CAST +#undef JSON_HEDLEY_REQUIRE +#undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#undef JSON_HEDLEY_REQUIRE_MSG +#undef JSON_HEDLEY_RESTRICT +#undef JSON_HEDLEY_RETURNS_NON_NULL +#undef JSON_HEDLEY_SENTINEL +#undef JSON_HEDLEY_STATIC_ASSERT +#undef JSON_HEDLEY_STATIC_CAST +#undef JSON_HEDLEY_STRINGIFY +#undef JSON_HEDLEY_STRINGIFY_EX +#undef JSON_HEDLEY_SUNPRO_VERSION +#undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#undef JSON_HEDLEY_TINYC_VERSION +#undef JSON_HEDLEY_TINYC_VERSION_CHECK +#undef JSON_HEDLEY_TI_ARMCL_VERSION +#undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL2000_VERSION +#undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL430_VERSION +#undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL6X_VERSION +#undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#undef JSON_HEDLEY_TI_CL7X_VERSION +#undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#undef JSON_HEDLEY_TI_CLPRU_VERSION +#undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#undef JSON_HEDLEY_TI_VERSION +#undef JSON_HEDLEY_TI_VERSION_CHECK +#undef JSON_HEDLEY_UNAVAILABLE +#undef JSON_HEDLEY_UNLIKELY +#undef JSON_HEDLEY_UNPREDICTABLE +#undef JSON_HEDLEY_UNREACHABLE +#undef JSON_HEDLEY_UNREACHABLE_RETURN +#undef JSON_HEDLEY_VERSION +#undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#undef JSON_HEDLEY_VERSION_DECODE_MINOR +#undef JSON_HEDLEY_VERSION_DECODE_REVISION +#undef JSON_HEDLEY_VERSION_ENCODE +#undef JSON_HEDLEY_WARNING +#undef JSON_HEDLEY_WARN_UNUSED_RESULT +#undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#undef JSON_HEDLEY_FALL_THROUGH + + + +#endif // INCLUDE_NLOHMANN_JSON_HPP_ diff --git a/3rdPartner/libhv/cpputil/singleton.h b/3rdPartner/libhv/cpputil/singleton.h new file mode 100644 index 0000000..ff78af6 --- /dev/null +++ b/3rdPartner/libhv/cpputil/singleton.h @@ -0,0 +1,36 @@ +#ifndef HV_SINGLETON_H_ +#define HV_SINGLETON_H_ + +#include + +#define DISABLE_COPY(Class) \ + Class(const Class&) = delete; \ + Class& operator=(const Class&) = delete; + +#define SINGLETON_DECL(Class) \ + public: \ + static Class* instance(); \ + static void exitInstance(); \ + private: \ + DISABLE_COPY(Class) \ + static Class* s_pInstance; \ + static std::once_flag s_initFlag; \ + static std::mutex s_mutex; + +#define SINGLETON_IMPL(Class) \ + Class* Class::s_pInstance = NULL; \ + std::once_flag Class::s_initFlag; \ + std::mutex Class::s_mutex; \ + Class* Class::instance() { \ + std::call_once(s_initFlag, []() {s_pInstance = new Class;}); \ + return s_pInstance; \ + } \ + void Class::exitInstance() { \ + std::lock_guard lock(s_mutex); \ + if (s_pInstance) { \ + delete s_pInstance; \ + s_pInstance = nullptr; \ + } \ + } + +#endif // HV_SINGLETON_H_ diff --git a/3rdPartner/libhv/docs/API.md b/3rdPartner/libhv/docs/API.md new file mode 100644 index 0000000..043d496 --- /dev/null +++ b/3rdPartner/libhv/docs/API.md @@ -0,0 +1,652 @@ +# libhv API Manual + +## base + +### hplatform.h +- OS: OS_WIN, OS_UNIX (OS_LINUX, OS_ANDROID, OS_DARWIN ...) +- ARCH: ARCH_X86, ARCH_X64, ARCH_ARM, ARCH_ARM64 +- COMPILER: COMPILER_MSVC, COMPILER_MINGW, COMPILER_GCC, COMPILER_CLANG +- BYTE_ORDER: BIG_ENDIAN, LITTLE_ENDIAN +- stdbool.h: bool, true, false +- stdint.h: int8_t, int16_t, int32_t, int64_t +- hv_sleep, hv_msleep, hv_usleep, hv_delay +- hv_mkdir +- stricmp, strcasecmp + +### hexport.h +- HV_EXPORT, HV_INLINE +- HV_SOURCE, HV_STATICLIB, HV_DYNAMICLIB +- HV_DEPRECATED +- HV_UNUSED +- EXTERN_C, BEGIN_EXTERN_C, END_EXTERN_C +- BEGIN_NAMESPACE, END_NAMESPACE, USING_NAMESPACE +- DEFAULT +- ENUM, STRUCT +- IN, OUT, INOUT +- OPTIONAL, REQUIRED, REPEATED + +### hdef.h +- ABS, NABS +- ARRAY_SIZE +- BITSET, BITCLR, BITGET +- CR, LF, CRLF +- FLOAT_EQUAL_ZERO +- INFINITE +- IS_ALPHA, IS_DIGIT, IS_ALPHANUM +- IS_CNTRL, IS_GRAPH +- IS_HEX +- IS_LOWER, IS_UPPER +- LOWER, UPPER +- MAKEWORD, LOBYTE, HIBYTE +- MAKELONG, LOWORD, HIWORD +- MAKEINT64, LOINT, HIINT +- MAKE_FOURCC +- MAX, MIN, LIMIT +- MAX_PATH +- NULL, TRUE, FALSE +- SAFE_FREE, SAFE_DELETE, SAFE_DELETE_ARRAY, SAFE_RELEASE +- STRINGCAT +- STRINGIFY +- offsetof, offsetofend +- container_of +- prefetch +- printd, printe + +### hatomic.h +- hatomic_flag_t, hatomic_t +- hatomic_flag_test_and_set +- hatomic_flag_clear +- hatomic_add +- hatomic_sub +- hatomic_inc +- hatomic_dec + +### herr.h +- hv_strerror + +### htime.h +- IS_LEAP_YEAR +- datetime_t +- gettick_ms +- gettimeofday +- gettimeofday_ms +- gettimeofday_us +- gethrtime_us +- datetime_now +- datetime_localtime +- datetime_mktime +- datetime_past +- datetime_future +- duration_fmt +- datetime_fmt +- gmtime_fmt +- days_of_month +- month_atoi +- month_itoa +- weekday_atoi +- weekday_itoa +- hv_compile_datetime +- cron_next_timeout + +### hmath.h +- floor2e +- ceil2e +- varint_encode +- varint_decode + +### hbase.h +- hv_malloc +- hv_calloc +- hv_realloc +- hv_zalloc +- hv_strncpy +- hv_strncat +- hv_strlower +- hv_strupper +- hv_strreverse +- hv_strstartswith +- hv_strendswith +- hv_strcontains +- hv_wildcard_match +- hv_strnchr +- hv_strrchr_dot +- hv_strrchr_dir +- hv_basename +- hv_suffixname +- hv_mkdir_p +- hv_rmdir_p +- hv_exists +- hv_isdir +- hv_isfile +- hv_islink +- hv_filesize +- get_executable_path +- get_executable_dir +- get_executable_file +- get_run_dir +- hv_rand +- hv_random_string +- hv_getboolean +- hv_parse_size +- hv_parse_time +- hv_parse_url + +### hversion.h +- hv_version +- hv_compile_version +- version_atoi +- version_itoa + +### hsysinfo.h +- get_ncpu +- get_meminfo + +### hproc.h +- hproc_spawn + +### hthread.h +- hv_getpid +- hv_gettid +- HTHREAD_RETTYPE +- HTHREAD_ROUTINE +- hthread_create +- hthread_join +- class HThread + +### hmutex.h +- hmutex_t +- hmutex_init +- hmutex_destroy +- hmutex_lock +- hmutex_unlock +- hspinlock_t +- hspinlock_init +- hspinlock_destroy +- hspinlock_lock +- hspinlock_unlock +- hrwlock_t +- hrwlock_init +- hrwlock_destroy +- hrwlock_rdlock +- hrwlock_rdunlock +- hrwlock_wrlock +- hrwlock_wrunlock +- htimed_mutex_t +- htimed_mutex_init +- htimed_mutex_destroy +- htimed_mutex_lock +- htimed_mutex_lock_for +- htimed_mutex_unlock +- hcondvar_t +- hcondvar_init +- hcondvar_destroy +- hcondvar_wait +- hcondvar_wait_for +- hcondvar_signal +- hcondvar_broadcast +- hsem_init +- hsem_destroy +- hsem_wait +- hsem_post +- hsem_timedwait +- honce_t +- HONCE_INIT +- honce +- class `hv::MutexLock` +- class `hv::SpinLock` +- class `hv::RWLock` +- class `hv::LockGuard` +- synchronized + +### hsocket.h +- INVALID_SOCKET +- closesocket +- blocking +- nonblocking +- Bind +- Listen +- Connect +- ConnectNonblock +- ConnectTimeout +- ResolveAddr +- Socketpair +- socket_errno +- socket_strerror +- sockaddr_u +- sockaddr_ip +- sockaddr_port +- sockaddr_set_ip +- sockaddr_set_port +- sockaddr_set_ipport +- sockaddr_len +- sockaddr_str +- sockaddr_print +- SOCKADDR_LEN +- SOCKADDR_STR +- SOCKADDR_PRINT +- tcp_nodelay +- tcp_nopush +- tcp_keepalive +- udp_broadcast +- ip_v6only +- so_sndtimeo +- so_rcvtimeo +- so_sndbuf +- so_rcvbuf +- so_reuseaddr +- so_reuseport +- so_linger + +### hlog.h +- default_logger +- file_logger +- stderr_logger +- stdout_logger +- logger_create +- logger_destroy +- logger_enable_color +- logger_enable_fsync +- logger_fsync +- logger_print +- logger_set_file +- logger_set_handler +- logger_set_level +- logger_set_max_bufsize +- logger_set_max_filesize +- logger_set_remain_days +- logger_get_cur_file +- hlogd, hlogi, hlogw, hloge, hlogf +- LOGD, LOGI, LOGW, LOGE, LOGF + +### hbuf.h +- hbuf_t +- offset_buf_t +- class HBuf +- class HVLBuf +- class HRingBuf + +### hmain.h +- main_ctx_init +- parse_opt +- parse_opt_long +- get_arg +- get_env +- setproctitle +- signal_init +- signal_handle +- create_pidfile +- delete_pidfile +- getpid_form_pidfile +- master_workers_run + +### hstring.h +- to_string +- from_string +- toupper +- tolower +- reverse +- startswith +- endswith +- contains +- asprintf +- trim +- ltrim +- rtrim +- trim_pairs +- split +- splitKV +- replace +- replaceAll + +### hfile.h +- class HFile + +### hpath.h +- exists +- isdir +- isfile +- islink +- basename +- dirname +- filename +- suffixname +- join + +### hdir.h +- listdir + +### hurl.h +- HUrl::escape +- HUrl::unescape +- HUrl::parse +- HUrl::dump + +### hscope.h +- defer +- template ScopeCleanup +- template ScopeFree +- template ScopeDelete +- template ScopeDeleteArray +- template ScopeRelease +- template ScopeLock + +### ifconfig.h +- ifconfig + +## utils +### md5.h +- HV_MD5Init +- HV_MD5Update +- HV_MD5Final +- hv_md5 +- hv_md5_hex + +### sha1.h +- HV_SHA1Init +- HV_SHA1Update +- HV_SHA1Final +- HV_SHA1 +- hv_sha1 +- hv_sha1_hex + +### base64.h +- hv_base64_decode +- hv_base64_encode + +### json.hpp +- json::parse +- json::dump + +### singleton.h +- DISABLE_COPY +- SINGLETON_DECL +- SINGLETON_IMPL + +## event + +### hloop.h +- hloop_create_tcp_client +- hloop_create_tcp_server +- hloop_create_udp_client +- hloop_create_udp_server +- hloop_create_ssl_client +- hloop_create_ssl_server +- hloop_new +- hloop_free +- hloop_run +- hloop_stop +- hloop_pause +- hloop_resume +- hloop_status +- hloop_pid +- hloop_tid +- hloop_now +- hloop_now_ms +- hloop_now_us +- hloop_update_time +- hloop_set_userdata +- hloop_userdata +- hloop_wakeup +- hloop_post_event +- hevent_loop +- hevent_type +- hevent_id +- hevent_priority +- hevent_userdata +- hevent_set_priority +- hevent_ser_userdata +- haccept +- hconnect +- hread +- hwrite +- hrecv +- hsend +- hrecvfrom +- hsendto +- hio_add +- hio_del +- hio_get +- hio_detach +- hio_attach +- hio_read +- hio_read_start +- hio_read_stop +- hio_read_once +- hio_read_until +- hio_read_until_length +- hio_read_until_delim +- hio_read_readline +- hio_read_readstring +- hio_read_readbytes +- hio_write +- hio_close +- hio_accept +- hio_connect +- hio_fd +- hio_id +- hio_type +- hio_error +- hio_localaddr +- hio_peeraddr +- hio_events +- hio_revents +- hio_is_opened +- hio_is_closed +- hio_enable_ssl +- hio_is_ssl +- hio_get_ssl +- hio_set_ssl +- hio_get_ssl_ctx +- hio_set_ssl_ctx +- hio_new_ssl_ctx +- hio_setcb_accept +- hio_setcb_connect +- hio_setcb_read +- hio_setcb_write +- hio_setcb_close +- hio_getcb_accept +- hio_getcb_connect +- hio_getcb_read +- hio_getcb_write +- hio_getcb_close +- hio_set_type +- hio_set_localaddr +- hio_set_peeraddr +- hio_set_readbuf +- hio_set_connect_timeout +- hio_set_close_timeout +- hio_set_read_timeout +- hio_set_write_timeout +- hio_set_keepalive_timeout +- hio_set_heartbeat +- hio_set_unpack +- hio_unset_unpack +- hio_read_upstream +- hio_write_upstream +- hio_close_upstream +- hio_setup_upstream +- hio_get_upstream +- hio_setup_tcp_upstream +- hio_setup_ssl_upstream +- hio_setup_udp_upstream +- hio_create_socket +- hio_context +- hio_set_context +- htimer_add +- htimer_add_period +- htimer_del +- htimer_reset +- hidle_add +- hidle_del + +### nlog.h +- network_logger +- nlog_listen + +## evpp +- class Buffer +- class Channel +- class Event +- class EventLoop +- class EventLoopThread +- class EventLoopThreadPool +- class TcpClient +- class TcpServer +- class UdpClient +- class UdpServer + +## ssl +- hssl_ctx_init +- hssl_ctx_cleanup +- hssl_ctx_instance +- hssl_ctx_new +- hssl_ctx_free +- hssl_new +- hssl_free +- hssl_accept +- hssl_connnect +- hssl_read +- hssl_write +- hssl_close +- hssl_set_sni_hostname + +## protocol + +### dns.h +- dns_name_decode +- dns_name_encode +- dns_pack +- dns_unpack +- dns_rr_pack +- dns_rr_unpack +- dns_query +- dns_free +- nslookup + +### ftp.h +- ftp_command_str +- ftp_connect +- ftp_login +- ftp_exec +- ftp_upload +- ftp_download +- ftp_download_with_cb +- ftp_quit +- ftp_status_str + +### smtp.h +- smtp_command_str +- smtp_status_str +- smtp_build_command +- sendmail + +### icmp.h +- ping + +## http +- class HttpMessage +- class HttpRequest +- class HttpResponse +- class HttpParser + +### httpdef.h +- http_content_type_enum +- http_content_type_enum_by_suffix +- http_content_type_str +- http_content_type_str_by_suffix +- http_content_type_suffix +- http_errno_description +- http_errno_name +- http_method_enum +- http_method_str +- http_status_enum +- http_status_str + +### http_content.h +- parse_query_params +- parse_json +- parse_multipart +- dump_query_params +- dump_json +- dump_multipart + +### HttpClient.h +- http_client_new +- http_client_del +- http_client_send +- http_client_send_async +- http_client_strerror +- http_client_set_timeout +- http_client_set_header +- http_client_del_header +- http_client_get_header +- http_client_clear_headers +- http_client_set_http_proxy +- http_client_set_https_proxy +- http_client_add_no_proxy +- class HttpClient + +### requests.h +- requests::request +- requests::get +- requests::post +- requests::put +- requests::patch +- requests::Delete +- requests::head +- requests::async + +### axios.h +- axios::axios +- axios::get +- axios::post +- axios::put +- axios::patch +- axios::Delete +- axios::head +- axios::async + +### HttpServer.h +- http_server_run +- http_server_stop +- class HttpService +- class HttpServer + +### WebSocketClient.h +- class WebSocketClient + +### WebSocketServer.h +- websocket_server_run +- websocket_server_stop +- class WebSocketService +- class WebSocketServer + +## mqtt +- mqtt_client_new +- mqtt_client_free +- mqtt_client_run +- mqtt_client_stop +- mqtt_client_set_id +- mqtt_client_set_will +- mqtt_client_set_auth +- mqtt_client_set_callback +- mqtt_client_set_userdata +- mqtt_client_get_userdata +- mqtt_client_get_last_error +- mqtt_client_set_ssl_ctx +- mqtt_client_new_ssl_ctx +- mqtt_client_set_reconnect +- mqtt_client_reconnect +- mqtt_client_set_connect_timeout +- mqtt_client_connect +- mqtt_client_is_connected +- mqtt_client_disconnect +- mqtt_client_publish +- mqtt_client_subscribe +- mqtt_client_unsubscribe +- class MqttClient + +## other +- class HThreadPool +- class HObjectPool +- class ThreadLocalStorage diff --git a/3rdPartner/libhv/docs/PLAN.md b/3rdPartner/libhv/docs/PLAN.md new file mode 100644 index 0000000..d47fc50 --- /dev/null +++ b/3rdPartner/libhv/docs/PLAN.md @@ -0,0 +1,31 @@ +## Done + +- base: cross platfrom infrastructure +- event: select/poll/epoll/wepoll/kqueue/port +- ssl: openssl/gnutls/mbedtls/wintls/appletls +- rudp: KCP +- evpp: c++ EventLoop interface similar to muduo and evpp +- http client/server: include https http1/x http2 +- websocket client/server +- mqtt client + +## Improving + +- Path router: optimized matching via trie? +- FileCache use LRUCache + +## Plan + +- redis client +- async DNS +- lua binding +- js binding +- hrpc = libhv + protobuf +- rudp: FEC, ARQ, UDT, QUIC +- kcptun +- have a taste of io_uring +- coroutine +- cppsocket.io +- IM-libhv +- MediaServer-libhv +- GameServer-libhv diff --git a/3rdPartner/libhv/docs/cn/Channel.md b/3rdPartner/libhv/docs/cn/Channel.md new file mode 100644 index 0000000..f48a60a --- /dev/null +++ b/3rdPartner/libhv/docs/cn/Channel.md @@ -0,0 +1,153 @@ +通道类 + +```c++ + +class Channel { + + // 返回底层的io结构体指针 + hio_t* io() { return io_; } + + // 返回socket文件描述符 + int fd() { return fd_; } + + // 返回一个唯一标示id + uint32_t id() { return id_; } + + // 返回错误码 + int error() { return hio_error(io_); } + + // 获取/设置/新建/删除 上下文 + void* context(); + void setContext(void* ctx); + template T* newContext(); + template T* getContext(); + template void deleteContext(); + + // 获取/设置/新建/删除 上下文智能指针 + std::shared_ptr contextPtr(); + void setContextPtr(const std::shared_ptr& ctx); + void setContextPtr(std::shared_ptr&& ctx); + template std::shared_ptr newContextPtr(); + template std::shared_ptr getContextPtr(); + void deleteContextPtr(); + + // 是否打开状态 + bool isOpened(); + + // 是否关闭状态 + bool isClosed(); + + // 开始读 + int startRead(); + + // 停止读 + int stopRead(); + + // 读一次 + int readOnce(); + // 读一个字符串 + int readString(); + // 读一行 + int readLine(); + // 读取N个字节 + int readBytes(int len); + + // 写 + int write(const void* data, int size); + int write(Buffer* buf); + int write(const std::string& str); + + // 设置最大读缓存 + void setMaxReadBufsize(uint32_t size); + // 设置最大写缓存 + void setMaxWriteBufsize(uint32_t size); + // 获取当前写缓存大小 + size_t writeBufsize(); + // 是否写完成 + bool isWriteComplete(); + + // 关闭 + int close(bool async = false); + + // 读回调 + std::function onread; + // 写回调 + std::function onwrite; + // 关闭回调 + std::function onclose; +}; + +// SocketChannel 继承自 Channel +class SocketChannel : public Channel { + // 连接状态回调 + std::function onconnect; + // 心跳回调 + std::function heartbeat; + + // 启用SSL/TLS加密通信 + int enableSSL(); + // 是否是SSL/TLS加密通信 + bool isSSL(); + // 设置SSL + int setSSL(hssl_t ssl); + // 设置SSL_CTX + int setSslCtx(hssl_ctx_t ssl_ctx); + // 新建SSL_CTX + int newSslCtx(hssl_ctx_opt_t* opt); + // 设置主机名 + int setHostname(const std::string& hostname); + + // 设置连接超时 + void setConnectTimeout(int timeout_ms); + + // 设置关闭超时 (说明:非阻塞写队列非空时,需要等待写完成再关闭) + void setCloseTimeout(int timeout_ms); + + // 设置读超时 (一段时间没有数据到来便自动关闭连接) + void setReadTimeout(int timeout_ms); + + // 设置写超时 (一段时间没有数据发送便自动关闭连接) + void setWriteTimeout(int timeout_ms); + + // 设置keepalive超时 (一段时间没有数据收发便自动关闭连接) + void setKeepaliveTimeout(int timeout_ms); + + // 设置心跳 (定时发送心跳包) + void setHeartbeat(int interval_ms, std::function fn); + + // 设置拆包规则 + void setUnpack(unpack_setting_t* setting); + + // 开始连接 + int startConnect(int port, const char* host = "127.0.0.1"); + int startConnect(struct sockaddr* peeraddr); + int startConnect(); + + // 是否已连接 + bool isConnected(); + + // 返回本地地址 + std::string localaddr(); + + // 返回对端地址 + std::string peeraddr(); +}; + +// WebSocketChannel 继承自 SocketChannel +class WebSocketChannel : public SocketChannel { + + // 发送文本帧 + int send(const std::string& msg, enum ws_opcode opcode = WS_OPCODE_TEXT, bool fin = true); + + // 发送二进制帧 + int send(const char* buf, int len, enum ws_opcode opcode = WS_OPCODE_BINARY, bool fin = true); + + // 分片发送 + int send(const char* buf, int len, int fragment, enum ws_opcode opcode = WS_OPCODE_BINARY); + + // 关闭 + int close(); + +}; + +``` diff --git a/3rdPartner/libhv/docs/cn/EventLoop.md b/3rdPartner/libhv/docs/cn/EventLoop.md new file mode 100644 index 0000000..fe4181b --- /dev/null +++ b/3rdPartner/libhv/docs/cn/EventLoop.md @@ -0,0 +1,123 @@ +事件循环类 + +```c++ + +class EventLoop { + + // 返回底层的loop结构体指针 + hloop_t* loop(); + + // 运行 + void run(); + // 停止 + void stop(); + // 暂停 + void pause(); + // 继续 + void resume(); + + // 设置定时器 + TimerID setTimer(int timeout_ms, TimerCallback cb, uint32_t repeat = INFINITE, TimerID timerID = INVALID_TIMER_ID); + + // 设置一次性定时器 + TimerID setTimeout(int timeout_ms, TimerCallback cb); + + // 设置永久性定时器 + TimerID setInterval(int interval_ms, TimerCallback cb); + + // 杀掉定时器 + void killTimer(TimerID timerID); + + // 重置定时器 + void resetTimer(TimerID timerID, int timeout_ms = 0); + + // 返回事件循环所在的线程ID + long tid(); + + // 是否在事件循环所在线程 + bool isInLoopThread(); + + // 断言在事件循环所在线程 + void assertInLoopThread(); + + // 运行在事件循环里 + void runInLoop(Functor fn); + + // 队列在事件循环里 + void queueInLoop(Functor fn); + + // 投递一个事件到事件循环 + void postEvent(EventCallback cb); + +}; + +class EventLoopThread { + + // 返回事件循环指针 + const EventLoopPtr& loop(); + + // 返回底层的loop结构体指针 + hloop_t* hloop(); + + // 是否运行中 + bool isRunning(); + + /* 开始运行 + * wait_thread_started: 是否阻塞等待线程开始 + * pre: 线程开始后执行的函数 + * post: 线程结束前执行的函数 + */ + void start(bool wait_thread_started = true, + Functor pre = Functor(), + Functor post = Functor()); + + // 停止运行 + void stop(bool wait_thread_stopped = false); + + // 等待线程退出 + void join(); + +}; + +class EventLoopThreadPool { + + // 获取线程数量 + int threadNum(); + + // 设置线程数量 + void setThreadNum(int num); + + // 返回下一个事件循环对象 + // 支持轮询、随机、最少连接数等负载均衡策略 + EventLoopPtr nextLoop(load_balance_e lb = LB_RoundRobin); + + // 返回索引的事件循环对象 + EventLoopPtr loop(int idx = -1); + + // 返回索引的底层loop结构体指针 + hloop_t* hloop(int idx = -1); + + /* 开始运行 + * wait_threads_started: 是否阻塞等待所有线程开始 + * pre: 线程开始后执行的函数 + * post: 线程结束前执行的函数 + */ + void start(bool wait_threads_started = false, + std::function pre = NULL, + std::function post = NULL); + + // 停止运行 + void stop(bool wait_threads_stopped = false); + + // 等待所有线程退出 + void join(); + +}; + +``` + +测试代码见: + +- [evpp/EventLoop_test.cpp](../../evpp/EventLoop_test.cpp) +- [evpp/EventLoopThread_test.cpp](../../evpp/EventLoopThread_test.cpp) +- [evpp/EventLoopThreadPool_test.cpp](../../evpp/EventLoopThreadPool_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/HttpClient.md b/3rdPartner/libhv/docs/cn/HttpClient.md new file mode 100644 index 0000000..d67b57e --- /dev/null +++ b/3rdPartner/libhv/docs/cn/HttpClient.md @@ -0,0 +1,84 @@ +HTTP 客户端类 + +```c++ + +class HttpClient { + + // 设置超时 + int setTimeout(int timeout); + + // 设置SSL/TLS + int setSslCtx(hssl_ctx_t ssl_ctx); + // 新建SSL/TLS + int newSslCtx(hssl_ctx_opt_t* opt); + + // 清除全部请求头部 + int clearHeaders(); + // 设置请求头部 + int setHeader(const char* key, const char* value); + // 删除请求头部 + int delHeader(const char* key); + // 获取请求头部 + const char* getHeader(const char* key); + + // 设置http代理 + int setHttpProxy(const char* host, int port); + // 设置https代理 + int setHttpsProxy(const char* host, int port); + // 添加不走代理 + int addNoProxy(const char* host); + + // 同步发送 + int send(HttpRequest* req, HttpResponse* resp); + // 异步发送 + int sendAsync(HttpRequestPtr req, HttpResponseCallback resp_cb = NULL); + + // 关闭连接 (HttpClient对象析构时会自动调用) + int close(); + +}; + +namespace requests { + + // 同步请求 + Response request(Request req); + Response request(http_method method, const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders); + + // 上传文件 + Response uploadFile(const char* url, const char* filepath, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders); + + // 通过 `multipart/form-data` 格式上传文件 + Response uploadFormFile(const char* url, const char* name, const char* filepath, std::map& params = hv::empty_map, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders); + + // 上传大文件(带上传进度回调) + Response uploadLargeFile(const char* url, const char* filepath, upload_progress_cb progress_cb = NULL, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders); + + // 下载文件 (更详细的断点续传示例代码见`examples/wget.cpp`) + size_t downloadFile(const char* url, const char* filepath, download_progress_cb progress_cb = NULL); + + // HEAD 请求 + Response head(const char* url, const http_headers& headers = DefaultHeaders); + + // GET 请求 + Response get(const char* url, const http_headers& headers = DefaultHeaders); + + // POST 请求 + Response post(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders); + + // PUT 请求 + Response put(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders); + + // PATCH 请求 + Response patch(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders); + + // DELETE 请求 + Response Delete(const char* url, const http_headers& headers = DefaultHeaders); + + // 异步请求 + int async(Request req, ResponseCallback resp_cb); + +} + +``` + +测试代码见 [examples/http_client_test.cpp](../../examples/http_client_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/HttpContext.md b/3rdPartner/libhv/docs/cn/HttpContext.md new file mode 100644 index 0000000..13cf85f --- /dev/null +++ b/3rdPartner/libhv/docs/cn/HttpContext.md @@ -0,0 +1,83 @@ +```c++ + +class HttpContext { + + /* 获取请求信息 */ + // 获取客户端IP + std::string ip(); + // 获取客户端端口 + int port(); + // 获取请求method + http_method method(); + // 获取请求url + std::string url(); + // 获取请求path + std::string path(); + // 获取请求host + std::string host(); + // 获取请求头部 + const http_headers& headers(); + std::string header(const char* key, const std::string& defvalue = hv::empty_string); + // 获取请求参数 + const hv::QueryParams& params(); + std::string param(const char* key, const std::string& defvalue = hv::empty_string); + // 获取请求cookie + const HttpCookie& cookie(const char* name); + // 获取请求 `Content-Length` + int length(); + // 获取请求 `Content-Type` + http_content_type type(); + // 判断请求 `Content-Type` + bool is(http_content_type content_type); + // 获取请求body + std::string& body(); + // 获取 `application/json` 格式数据 + const hv::Json& json(); + // 获取 `multipart/form-data` 格式数据 + const hv::MultiPart& form(); + std::string form(const char* name, const std::string& defvalue = hv::empty_string); + // 获取 `application/x-www-urlencoded` 格式数据 + const hv::KeyValue& urlencoded(); + std::string urlencoded(const char* key, const std::string& defvalue = hv::empty_string); + // 根据 `Content-Type` 获取对应格式数据 + template + T get(const char* key, T defvalue = 0); + std::string get(const char* key, const std::string& defvalue = hv::empty_string); + + /* 设置响应信息 */ + // 设置响应状态码 + void setStatus(http_status status); + // 设置响应 `Content-Type` + void setContentType(http_content_type type); + // 设置响应头部 + void setHeader(const char* key, const std::string& value); + // 设置响应cookie + void setCookie(const HttpCookie& cookie); + // 设置响应body + void setBody(const std::string& body); + template + // 根据 `Content-Type` 设置对应格式数据 + void set(const char* key, const T& value); + + // 发送 + int send(); + int send(const std::string& str, http_content_type type = APPLICATION_JSON); + // 发送文本数据 + int sendString(const std::string& str); + // 发送二进制数据 + int sendData(void* data, int len, bool nocopy = true); + // 发送文件 + int sendFile(const char* filepath); + // 发送json数据 + template + int sendJson(const T& t); + + // 重定向 + int redirect(const std::string& location, http_status status = HTTP_STATUS_FOUND); + + // 主动关闭连接 + int close(); + +}; + +``` diff --git a/3rdPartner/libhv/docs/cn/HttpMessage.md b/3rdPartner/libhv/docs/cn/HttpMessage.md new file mode 100644 index 0000000..e6cd4e0 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/HttpMessage.md @@ -0,0 +1,110 @@ +```c++ + +class HttpMessage { + // 设置/获取头部 + void SetHeader(const char* key, const std::string& value); + std::string GetHeader(const char* key, const std::string& defvalue = hv::empty_string); + + // 添加/获取cookie + void AddCookie(const HttpCookie& cookie); + const HttpCookie& GetCookie(const std::string& name); + + // 设置/获取 `Content-Type` + void SetContentType(http_content_type type); + http_content_type ContentType(); + + // 获取 `Content-Length` + size_t ContentLength(); + + // 填充数据 + void SetBody(const std::string& body); + // 获取数据 + const std::string& Body(); + // 解析数据 + int ParseBody(); + + // 填充/获取 `application/json` 格式数据 + template + int Json(const T& t); + const hv::Json& GetJson(); + + // 填充/获取 `multipart/form-data` 格式数据 + template + void SetFormData(const char* name, const T& t); + void SetFormFile(const char* name, const char* filepath); + std::string GetFormData(const char* name, const std::string& defvalue = hv::empty_string); + int SaveFormFile(const char* name, const char* path); + + // 填充/获取 `application/x-www-urlencoded` 格式数据 + template + void SetUrlEncoded(const char* key, const T& t); + std::string GetUrlEncoded(const char* key, const std::string& defvalue = hv::empty_string); + + // 根据 `Content-Type` 填充对应格式数据 + template + void Set(const char* key, const T& value); + // 根据 `Content-Type` 获取对应格式数据 + template + T Get(const char* key, T defvalue = 0); + // 根据 `Content-Type` 获取对应格式数据并转换成字符串 + std::string GetString(const char* key, const std::string& = ""); + // 根据 `Content-Type` 获取对应格式数据并转换成Boolean类型 + bool GetBool(const char* key, bool defvalue = 0); + // 根据 `Content-Type` 获取对应格式数据并转换成整型 + int64_t GetInt(const char* key, int64_t defvalue = 0); + // 根据 `Content-Type` 获取对应格式数据并转换成浮点数 + double GetFloat(const char* key, double defvalue = 0); +}; + +// HttpRequest 继承自 HttpMessage +class HttpRequest : public HttpMessage { + // 设置/获取method + void SetMethod(const char* method); + const char* Method(); + + // 设置URL + void SetUrl(const char* url); + // 获取URL + const std::string& Url(); + // 解析URL + void ParseUrl(); + // 获取Host + std::string Host(); + // 获取Path + std::string Path(); + + // 设置/获取参数 + template + void SetParam(const char* key, const T& t); + std::string GetParam(const char* key, const std::string& defvalue = hv::empty_string); + + // 设置代理 + void SetProxy(const char* host, int port); + + // 设置认证 + void SetAuth(const std::string& auth); + void SetBasicAuth(const std::string& username, const std::string& password); + void SetBearerTokenAuth(const std::string& token); + + // 设置请求超时 + void SetTimeout(int sec); + // 设置连接超时 + void SetConnectTimeout(int sec); + // 允许重定向 + void AllowRedirect(bool on = true); + // 设置重试 + void SetRetry(int count = DEFAULT_HTTP_FAIL_RETRY_COUNT, + int delay = DEFAULT_HTTP_FAIL_RETRY_DELAY); + // 取消 + void Cancel(); +}; + +// HttpResponse 继承自 HttpMessage +class HttpResponse : public HttpMessage { + // 状态码 + http_status status_code; + // 状态字符串 + const char* status_message(); +}; + +``` diff --git a/3rdPartner/libhv/docs/cn/HttpServer.md b/3rdPartner/libhv/docs/cn/HttpServer.md new file mode 100644 index 0000000..13cae4d --- /dev/null +++ b/3rdPartner/libhv/docs/cn/HttpServer.md @@ -0,0 +1,140 @@ +HTTP 服务端类 + +```c++ + +// HTTP服务类 +class HttpServer { + + // 注册HTTP业务类 + void registerHttpService(HttpService* service); + + // 设置监听主机 + void setHost(const char* host = "0.0.0.0"); + // 设置监听端口 + void setPort(int port = 0, int ssl_port = 0); + // 设置监听文件描述符 + void setListenFD(int fd = -1, int ssl_fd = -1); + + // 设置IO进程数 (仅`linux`下有效) + void setProcessNum(int num); + // 设置IO线程数 + void setThreadNum(int num); + + // 设置SSL/TLS + int setSslCtx(hssl_ctx_t ssl_ctx); + // 新建SSL/TLS + int newSslCtx(hssl_ctx_opt_t* opt); + + // hooks + // 事件循环开始时执行的回调函数 + std::function onWorkerStart; + // 事件循环结束时执行的回调函数 + std::function onWorkerStop; + + // 占用当前线程运行 + int run(bool wait = true); + + // 不占用当前线程运行 + int start(); + + // 停止服务 + int stop(); + +}; + +// HTTP业务类 +class HttpService { + + // 添加静态资源映射 + void Static(const char* path, const char* dir); + + // 允许跨域访问 + void AllowCORS(); + + // 添加可信代理 (代理白名单) + void AddTrustProxy(const char* host); + + // 添加不可信代理 (代理黑名单) + void AddNoProxy(const char* host); + + // 开启正向转发代理 + void EnableForwardProxy(); + + // 添加反向代理映射 + void Proxy(const char* path, const char* url); + + // 添加中间件 + void Use(Handler handlerFunc); + + // 添加路由处理器 + void Handle(const char* httpMethod, const char* relativePath, Handler handlerFunc); + + // 添加`HEAD`路由 + void HEAD(const char* relativePath, Handler handlerFunc); + + // 添加`GET`路由 + void GET(const char* relativePath, Handler handlerFunc); + + // 添加`POST`路由 + void POST(const char* relativePath, Handler handlerFunc); + + // 添加`PUT`路由 + void PUT(const char* relativePath, Handler handlerFunc); + + // 添加`DELETE`路由 + void Delete(const char* relativePath, Handler handlerFunc); + + // 添加`PATCH`路由 + void PATCH(const char* relativePath, Handler handlerFunc); + + // 添加任意`HTTP method`路由 + void Any(const char* relativePath, Handler handlerFunc); + + // 返回注册的路由路径列表 + hv::StringList Paths(); + + // 处理流程:前处理器 -> 中间件 -> 处理器 -> 后处理器 + // preprocessor -> middleware -> processor -> postprocessor + + // 数据成员 + http_handler preprocessor; // 前处理器 + http_handlers middleware; // 中间件 + http_handler processor; // 处理器 + http_handler postprocessor; // 后处理器 + std::string base_url; // 基本路径 + std::string document_root; // 文档根目录 + std::string home_page; // 主页 + std::string error_page; // 默认错误页 + std::string index_of; // 目录 + http_handler errorHandler; // 错误处理器 + + int proxy_connect_timeout; // 代理连接超时 + int proxy_read_timeout; // 代理读超时 + int proxy_write_timeout; // 代理写超时 + + int keepalive_timeout; // 长连接保活超时 + int max_file_cache_size; // 文件缓存最大尺寸 + int file_cache_stat_interval; // 文件缓存stat间隔,查询文件是否修改 + int file_cache_expired_time; // 文件缓存过期时间,过期自动释放 + + int limit_rate; // 下载速度限制 + +}; + +/* 几种`handler`处理函数区别说明: */ + +// 同步`handler`运行在IO线程 +typedef std::function http_sync_handler; + +// 异步`handler`运行在`hv::async`全局线程池,可通过`hv::async::startup`设置线程池属性 +typedef std::function http_async_handler; + +// 上下文`handler`运行在IO线程,你可以很方便的将`HttpContextPtr`智能指针抛到你的消费者线程/线程池去处理 +typedef std::function http_ctx_handler; + +// 中间状态`handler`运行在IO线程,用来实现大数据量的边接收边处理 +typedef std::function http_state_handler; + +``` + +测试代码见 [examples/http_server_test.cpp](../../examples/http_server_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/README.md b/3rdPartner/libhv/docs/cn/README.md new file mode 100644 index 0000000..d93c806 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/README.md @@ -0,0 +1,18 @@ +## c接口 + +- [hloop: 事件循环](hloop.md) +- [hbase: 基础函数](hbase.md) +- [hlog: 日志](hlog.md) + +## c++接口 + +- [class EventLoop: 事件循环类](EventLoop.md) +- [class Channel: 通道类](Channel.md) +- [class TcpServer: TCP服务端类](TcpServer.md) +- [class TcpClient: TCP客户端类](TcpClient.md) +- [class UdpServer: UDP服务端类](UdpServer.md) +- [class UdpClient: UDP客户端类](UdpClient.md) +- [class HttpServer: HTTP服务端类](HttpServer.md) +- [class HttpClient: HTTP客户端类](HttpClient.md) +- [class WebSocketServer: WebSocket服务端类](WebSocketServer.md) +- [class WebSocketClient: WebSocket客户端类](WebSocketClient.md) diff --git a/3rdPartner/libhv/docs/cn/TcpClient.md b/3rdPartner/libhv/docs/cn/TcpClient.md new file mode 100644 index 0000000..18a2aa9 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/TcpClient.md @@ -0,0 +1,63 @@ +TCP 客户端类 + +```c++ + +class TcpClient { + + // 返回所在的事件循环 + const EventLoopPtr& loop(); + + // 创建套接字 + int createsocket(int remote_port, const char* remote_host = "127.0.0.1"); + int createsocket(struct sockaddr* remote_addr); + + // 绑定端口 + int bind(int local_port, const char* local_host = "0.0.0.0"); + int bind(struct sockaddr* local_addr); + + // 关闭套接字 + void closesocket(); + + // 开始运行 + void start(bool wait_threads_started = true); + + // 停止运行 + void stop(bool wait_threads_stopped = true); + + // 是否已连接 + bool isConnected(); + + // 发送 + int send(const void* data, int size); + int send(Buffer* buf); + int send(const std::string& str); + + // 设置SSL/TLS加密通信 + int withTLS(hssl_ctx_opt_t* opt = NULL); + + // 设置连接超时 + void setConnectTimeout(int ms); + + // 设置重连 + void setReconnect(reconn_setting_t* setting); + + // 是否是重连 + bool isReconnect(); + + // 设置拆包规则 + void setUnpack(unpack_setting_t* setting); + + // 连接状态回调 + std::function onConnection; + + // 消息回调 + std::function onMessage; + + // 写完成回调 + std::function onWriteComplete; + +}; + +``` + +测试代码见 [evpp/TcpClient_test.cpp](../../evpp/TcpClient_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/TcpServer.md b/3rdPartner/libhv/docs/cn/TcpServer.md new file mode 100644 index 0000000..ec0932a --- /dev/null +++ b/3rdPartner/libhv/docs/cn/TcpServer.md @@ -0,0 +1,60 @@ +TCP 服务端类 + +```c++ + +class TcpServer { + + // 返回索引的事件循环 + EventLoopPtr loop(int idx = -1); + + // 创建套接字 + int createsocket(int port, const char* host = "0.0.0.0"); + + // 关闭套接字 + void closesocket(); + + // 设置最大连接数 + void setMaxConnectionNum(uint32_t num); + + // 设置负载均衡策略 + void setLoadBalance(load_balance_e lb); + + // 设置线程数 + void setThreadNum(int num); + + // 开始运行 + void start(bool wait_threads_started = true); + + // 停止运行 + void stop(bool wait_threads_stopped = true); + + // 设置SSL/TLS加密通信 + int withTLS(hssl_ctx_opt_t* opt = NULL); + + // 设置拆包规则 + void setUnpack(unpack_setting_t* setting); + + // 返回当前连接数 + size_t connectionNum(); + + // 遍历连接 + int foreachChannel(std::function fn); + + // 广播消息 + int broadcast(const void* data, int size); + int broadcast(const std::string& str); + + // 连接到来/断开回调 + std::function onConnection; + + // 消息回调 + std::function onMessage; + + // 写完成回调 + std::function onWriteComplete; + +}; + +``` + +测试代码见 [evpp/TcpServer_test.cpp](../../evpp/TcpServer_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/UdpClient.md b/3rdPartner/libhv/docs/cn/UdpClient.md new file mode 100644 index 0000000..1544986 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/UdpClient.md @@ -0,0 +1,42 @@ +UDP 客户端类 + +```c++ + +class UdpClient { + + // 返回所在的事件循环 + const EventLoopPtr& loop(); + + // 创建套接字 + int createsocket(int remote_port, const char* remote_host = "127.0.0.1"); + + // 绑定端口 + int bind(int local_port, const char* local_host = "0.0.0.0"); + + // 关闭套接字 + void closesocket(); + + // 开始运行 + void start(bool wait_threads_started = true); + + // 停止运行 + void stop(bool wait_threads_stopped = true); + + // 发送 + int sendto(const void* data, int size, struct sockaddr* peeraddr = NULL); + int sendto(Buffer* buf, struct sockaddr* peeraddr = NULL); + int sendto(const std::string& str, struct sockaddr* peeraddr = NULL); + + // 设置KCP + void setKcp(kcp_setting_t* setting); + + // 消息回调 + std::function onMessage; + + // 写完成回调 + std::function onWriteComplete; +}; + +``` + +测试代码见 [evpp/UdpClient_test.cpp](../../evpp/UdpClient_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/UdpServer.md b/3rdPartner/libhv/docs/cn/UdpServer.md new file mode 100644 index 0000000..cf4d3c6 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/UdpServer.md @@ -0,0 +1,39 @@ +UDP 服务端类 + +```c++ + +class UdpServer { + + // 返回所在的事件循环 + const EventLoopPtr& loop(); + + // 创建套接字 + int createsocket(int port, const char* host = "0.0.0.0"); + + // 关闭套接字 + void closesocket(); + + // 开始运行 + void start(bool wait_threads_started = true); + + // 停止运行 + void stop(bool wait_threads_stopped = true); + + // 发送 + int sendto(const void* data, int size, struct sockaddr* peeraddr = NULL); + int sendto(Buffer* buf, struct sockaddr* peeraddr = NULL); + int sendto(const std::string& str, struct sockaddr* peeraddr = NULL); + + // 设置KCP + void setKcp(kcp_setting_t* setting); + + // 消息回调 + std::function onMessage; + + // 写完成回调 + std::function onWriteComplete; +}; + +``` + +测试代码见 [evpp/UdpServer_test.cpp](../../evpp/UdpServer_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/WebSocketClient.md b/3rdPartner/libhv/docs/cn/WebSocketClient.md new file mode 100644 index 0000000..e015779 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/WebSocketClient.md @@ -0,0 +1,37 @@ +WebSocket 客户端类 + +```c++ + +class WebSocketClient { + + // 打开回调 + std::function onopen; + // 关闭回调 + std::function onclose; + // 消息回调 + std::function onmessage; + + // 打开 + int open(const char* url, const http_headers& headers = DefaultHeaders); + + // 关闭 + int close(); + + // 发送 + int send(const std::string& msg); + int send(const char* buf, int len, enum ws_opcode opcode = WS_OPCODE_BINARY); + + // 设置心跳间隔 + void setPingInterval(int ms); + + // 设置WebSocket握手阶段的HTTP请求 + void setHttpRequest(const HttpRequestPtr& req); + + // 获取WebSocket握手阶段的HTTP响应 + const HttpResponsePtr& getHttpResponse(); + +}; + +``` + +测试代码见 [examples/websocket_client_test.cpp](../../examples/websocket_client_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/WebSocketServer.md b/3rdPartner/libhv/docs/cn/WebSocketServer.md new file mode 100644 index 0000000..0cd4f14 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/WebSocketServer.md @@ -0,0 +1,30 @@ +WebSocket 服务端类 + +```c++ + +// WebSocketServer 继承自 HttpServer +class WebSocketServer : public HttpServer { + + // 注册WebSocket业务类 + void registerWebSocketService(WebSocketService* service); + +}; + +// WebSocket业务类 +struct WebSocketService { + // 打开回调 + std::function onopen; + + // 消息回调 + std::function onmessage; + + // 关闭回调 + std::function onclose; + + // 心跳间隔 + int ping_interval; +}; + +``` + +测试代码见 [examples/websocket_server_test.cpp](../../examples/websocket_server_test.cpp) diff --git a/3rdPartner/libhv/docs/cn/hbase.md b/3rdPartner/libhv/docs/cn/hbase.md new file mode 100644 index 0000000..ec48809 --- /dev/null +++ b/3rdPartner/libhv/docs/cn/hbase.md @@ -0,0 +1,111 @@ +一些基础函数 + +```c + +/* hv内存分配/释放函数 */ +void* hv_malloc(size_t size); +void* hv_realloc(void* oldptr, size_t newsize, size_t oldsize); +void* hv_calloc(size_t nmemb, size_t size); +void* hv_zalloc(size_t size); +void hv_free(void* ptr); + +// 使用hv分配内存次数 +long hv_alloc_cnt(); + +// 使用hv释放内存次数 +long hv_free_cnt(); + +/* 字符串操作 */ +// 字符串转大写 +char* hv_strupper(char* str); +// 字符串转小写 +char* hv_strlower(char* str); +// 字符串翻转 +char* hv_strreverse(char* str); + +// 判断字符串是否以xxx开头 +bool hv_strstartswith(const char* str, const char* start); + +// 判断字符串是否以xxx结尾 +bool hv_strendswith(const char* str, const char* end); + +// 判断字符串是否包含xxx +bool hv_strcontains(const char* str, const char* sub); + +// 安全的strncpy +char* hv_strncpy(char* dest, const char* src, size_t n); + +// 安全的strncat +char* hv_strncat(char* dest, const char* src, size_t n); + +// 字符查找 +char* hv_strnchr(const char* s, char c, size_t n); + +// 查找最后一个点(通常用于提取文件后缀) +#define hv_strrchr_dot(str) strrchr(str, '.') + +// 查找最后的路径(通常用于分离目录和文件) +char* hv_strrchr_dir(const char* filepath); + +// 获取文件名(利用了上面的strrchr_dir) +const char* hv_basename(const char* filepath); + +// 获取文件后缀(利用了上面的strrchr_dot) +const char* hv_suffixname(const char* filename); + +/* 文件&目录 */ +// mkdir -p: 创建目录 +int hv_mkdir_p(const char* dir); +// rmdir -p: 删除目录 +int hv_rmdir_p(const char* dir); + +// 判断路径是否存在 +bool hv_exists(const char* path); + +// 判断是否是目录 +bool hv_isdir(const char* path); + +// 判断是否是文件 +bool hv_isfile(const char* path); + +// 判断是否是链接 +bool hv_islink(const char* path); + +// 获取文件大小 +size_t hv_filesize(const char* filepath); + +// 获取可执行文件绝对路径,例如/usr/local/bin/httpd +char* get_executable_path(char* buf, int size); + +// 获取可执行文件所在目录,例如/usr/local/bin +char* get_executable_dir(char* buf, int size); + +// 获取可执行文件名,例如httpd +char* get_executable_file(char* buf, int size); + +// 获取运行目录,例如/home/www/html +char* get_run_dir(char* buf, int size); + +// 返回一个随机数 +int hv_rand(int min, int max); + +// 返回一个随机字符串 +char* hv_random_string(char *buf, int len); + +// 1 y on yes true enable返回true(通常用于配置文件) +bool hv_getboolean(const char* str); + +// 解析size字符串 +// 1T2G3M4K5B => ?B +size_t hv_parse_size(const char* str); + +// 解析时间字符串 +// 1w2d3h4m5s => ?s +time_t hv_parse_time(const char* str); + +// 解析url字符串 +int hv_parse_url(hurl_t* stURL, const char* strURL); + +``` + +单元测试代码见 [unittest/hbase_test.c](../../unittest/hbase_test.c) diff --git a/3rdPartner/libhv/docs/cn/hlog.md b/3rdPartner/libhv/docs/cn/hlog.md new file mode 100644 index 0000000..63cb77d --- /dev/null +++ b/3rdPartner/libhv/docs/cn/hlog.md @@ -0,0 +1,111 @@ +日志 + +```c + +// 标准输出日志 +void stdout_logger(int loglevel, const char* buf, int len); + +// 标准错误日志 +void stderr_logger(int loglevel, const char* buf, int len); + +// 文件日志 +void file_logger(int loglevel, const char* buf, int len); + +// 网络日志(定义在event/nlog.h头文件里) +// void network_logger(int loglevel, const char* buf, int len); + +// 创建日志器 +logger_t* logger_create(); + +// 销毁日志器 +void logger_destroy(logger_t* logger); + +// 设置日志处理器 +void logger_set_handler(logger_t* logger, logger_handler fn); + +// 设置日志等级 +void logger_set_level(logger_t* logger, int level); +// level = [VERBOSE,DEBUG,INFO,WARN,ERROR,FATAL,SILENT] +void logger_set_level_by_str(logger_t* logger, const char* level); + +/* + * 设置日志格式 + * format = "%y-%m-%d %H:%M:%S.%z %L %s" + * message = "2020-01-02 03:04:05.067 DEBUG message" + * %y year + * %m month + * %d day + * %H hour + * %M min + * %S sec + * %z ms + * %Z us + * %l First character of level + * %L All characters of level + * %s message + * %% % + */ +void logger_set_format(logger_t* logger, const char* format); + +// 设置日志缓存大小 +void logger_set_max_bufsize(logger_t* logger, unsigned int bufsize); + +// 启用日志颜色 +void logger_enable_color(logger_t* logger, int on); + +// 日志打印 +int logger_print(logger_t* logger, int level, const char* fmt, ...); + +// 设置日志文件 +void logger_set_file(logger_t* logger, const char* filepath); + +// 设置日志文件大小 +void logger_set_max_filesize(logger_t* logger, unsigned long long filesize); +// 16, 16M, 16MB +void logger_set_max_filesize_by_str(logger_t* logger, const char* filesize); + +// 设置日志文件保留天数 +void logger_set_remain_days(logger_t* logger, int days); + +// 启用每次写日志文件立即刷新到磁盘(即每次都调用fsync,会增加IO耗时,影响性能) +void logger_enable_fsync(logger_t* logger, int on); + +// 刷新缓存到磁盘(如对日志文件实时性有必要的,可使用定时器定时刷新到磁盘) +void logger_fsync(logger_t* logger); + +// 获取当前日志文件路径 +const char* logger_get_cur_file(logger_t* logger); + +// hlog: 默认的日志器 +logger_t* hv_default_logger(); + +// 销毁默认的日志器 +void hv_destroy_default_logger(void); + +// 对默认日志器hlog的一些便利操作宏 +#define hlog hv_default_logger() +#define hlog_destory() hv_destroy_default_logger() +/* 禁用hv的默认日志 */ +#define hlog_disable() logger_set_level(hlog, LOG_LEVEL_SILENT) +#define hlog_set_file(filepath) logger_set_file(hlog, filepath) +#define hlog_set_level(level) logger_set_level(hlog, level) +#define hlog_set_level_by_str(level) logger_set_level_by_str(hlog, level) +#define hlog_set_handler(fn) logger_set_handler(hlog, fn) +#define hlog_set_format(format) logger_set_format(hlog, format) +#define hlog_set_max_filesize(filesize) logger_set_max_filesize(hlog, filesize) +#define hlog_set_max_filesize_by_str(filesize) logger_set_max_filesize_by_str(hlog, filesize) +#define hlog_set_remain_days(days) logger_set_remain_days(hlog, days) +#define hlog_enable_fsync() logger_enable_fsync(hlog, 1) +#define hlog_disable_fsync() logger_enable_fsync(hlog, 0) +#define hlog_fsync() logger_fsync(hlog) +#define hlog_get_cur_file() logger_get_cur_file(hlog) + +#define hlogd(fmt, ...) logger_print(hlog, LOG_LEVEL_DEBUG, fmt " [%s:%d:%s]\n", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogi(fmt, ...) logger_print(hlog, LOG_LEVEL_INFO, fmt " [%s:%d:%s]\n", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogw(fmt, ...) logger_print(hlog, LOG_LEVEL_WARN, fmt " [%s:%d:%s]\n", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hloge(fmt, ...) logger_print(hlog, LOG_LEVEL_ERROR, fmt " [%s:%d:%s]\n", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) +#define hlogf(fmt, ...) logger_print(hlog, LOG_LEVEL_FATAL, fmt " [%s:%d:%s]\n", ## __VA_ARGS__, __FILENAME__, __LINE__, __FUNCTION__) + +``` + +测试代码见 [examples/hloop_test.c](../../examples/hloop_test.c) diff --git a/3rdPartner/libhv/docs/cn/hloop.md b/3rdPartner/libhv/docs/cn/hloop.md new file mode 100644 index 0000000..ebaf84a --- /dev/null +++ b/3rdPartner/libhv/docs/cn/hloop.md @@ -0,0 +1,636 @@ +事件循环和IO多路复用机制介绍 + +事件循环是`libevent、libev、libuv、libhv`这类网络库里最核心的概念,即在事件循环里处理IO读写事件、定时器事件、自定义事件等各种事件;
+IO多路复用即在一个IO线程监听多个fd,如最早期的`select`、后来的`poll`,`linux的epoll`、`windows的iocp`、`bsd的kqueue`、`solaris的port`等,都属于IO多路复用机制。
+非阻塞NIO搭配IO多路复用机制就是高并发的钥匙。
+`libhv`下的`event`模块正是封装了多种平台的IO多路复用机制,提供了统一的事件接口,是`libhv`的核心模块。
+ +`hloop.h`: 事件循环模块对外头文件。
+ +```c + +// 事件结构体 +struct hevent_s { + hloop_t* loop; // 事件所属循环 + hevent_type_e event_type; // 事件类型 + uint64_t event_id; // 事件ID + hevent_cb cb; // 事件回调 + void* userdata; // 用户数据 + void* privdata; // 私有数据 + struct hevent_s* pending_next; // 指向下一个事件,用于实现事件队列 + int priority; // 事件优先级 +}; + +// 设置事件ID +#define hevent_set_id(ev, id) ((hevent_t*)(ev))->event_id = id +// 设置事件回调 +#define hevent_set_cb(ev, cb) ((hevent_t*)(ev))->cb = cb +// 设置事件优先级 +#define hevent_set_priority(ev, prio) ((hevent_t*)(ev))->priority = prio +// 设置事件用户数据 +#define hevent_set_userdata(ev, udata) ((hevent_t*)(ev))->userdata = (void*)udata + +// 获取事件所属循环 +#define hevent_loop(ev) (((hevent_t*)(ev))->loop) +// 获取事件类型 +#define hevent_type(ev) (((hevent_t*)(ev))->event_type) +// 获取事件ID +#define hevent_id(ev) (((hevent_t*)(ev))->event_id) +// 获取事件回调 +#define hevent_cb(ev) (((hevent_t*)(ev))->cb) +// 获取事件优先级 +#define hevent_priority(ev) (((hevent_t*)(ev))->priority) +// 获取事件用户数据 +#define hevent_userdata(ev) (((hevent_t*)(ev))->userdata) + +// hidle_t、htimer_t、hio_t皆是继承自hevent_t,继承上面的数据成员和函数方法 + +// 新建事件循环 +hloop_t* hloop_new(int flags DEFAULT(HLOOP_FLAG_AUTO_FREE)); + +// 释放事件循环 +void hloop_free(hloop_t** pp); + +// 运行事件循环 +int hloop_run(hloop_t* loop); + +// 停止事件循环 +int hloop_stop(hloop_t* loop); + +// 暂停事件循环 +int hloop_pause(hloop_t* loop); + +// 继续事件循环 +int hloop_resume(hloop_t* loop); + +// 唤醒事件循环 +int hloop_wakeup(hloop_t* loop); + +// 返回事件循环状态 +hloop_status_e hloop_status(hloop_t* loop); + +// 更新事件循环里的时间 +void hloop_update_time(hloop_t* loop); + +// 返回事件循环里记录的时间 +uint64_t hloop_now(hloop_t* loop); // s +uint64_t hloop_now_ms(hloop_t* loop); // ms +uint64_t hloop_now_us(hloop_t* loop); // us + +// 返回事件循环所在进程ID +long hloop_pid(hloop_t* loop); + +// 返回事件循环所在线程ID +long hloop_tid(hloop_t* loop); + +// 返回事件循环的循环次数 +uint64_t hloop_count(hloop_t* loop); + +// 返回事件循环里激活的IO事件数量 +uint32_t hloop_nios(hloop_t* loop); + +// 返回事件循环里激活的定时器事件数量 +uint32_t hloop_ntimers(hloop_t* loop); + +// 返回事件循环里激活的空闲事件数量 +uint32_t hloop_nidles(hloop_t* loop); + +// 返回事件循环里激活的事件数量 +uint32_t hloop_nactives(hloop_t* loop); + +// 设置事件循环的用户数据 +void hloop_set_userdata(hloop_t* loop, void* userdata); + +// 获取事件循环的用户数据 +void* hloop_userdata(hloop_t* loop); + +// 投递事件 +void hloop_post_event(hloop_t* loop, hevent_t* ev); + +// 添加空闲事件 +hidle_t* hidle_add(hloop_t* loop, hidle_cb cb, uint32_t repeat DEFAULT(INFINITE)); + +// 删除空闲事件 +void hidle_del(hidle_t* idle); + +// 添加超时定时器 +htimer_t* htimer_add(hloop_t* loop, htimer_cb cb, uint32_t timeout_ms, uint32_t repeat DEFAULT(INFINITE)); + +// 添加时间定时器 +htimer_t* htimer_add_period(hloop_t* loop, htimer_cb cb, + int8_t minute DEFAULT(0), int8_t hour DEFAULT(-1), int8_t day DEFAULT(-1), + int8_t week DEFAULT(-1), int8_t month DEFAULT(-1), uint32_t repeat DEFAULT(INFINITE)); + +// 删除定时器 +void htimer_del(htimer_t* timer); + +// 重置定时器 +void htimer_reset(htimer_t* timer, uint32_t timeout_ms DEFAULT(0)); + +// 返回IO多路复用引擎 (select、poll、epoll、etc.) +const char* hio_engine(); + +// 获取IO对象 +hio_t* hio_get(hloop_t* loop, int fd); + +// 添加IO读写事件 +int hio_add(hio_t* io, hio_cb cb, int events DEFAULT(HV_READ)); + +// 删除IO读写事件 +int hio_del(hio_t* io, int events DEFAULT(HV_RDWR)); + +// 将IO对象从当前所属事件循环中剥离 +void hio_detach(/*hloop_t* loop,*/ hio_t* io); + +// 将IO对象关联到新的事件循环 +void hio_attach(hloop_t* loop, hio_t* io); + +// hio_detach 和 hio_attach 的示例代码见 examples/multi-thread/one-acceptor-multi-workers.c +/* +void new_conn_event(hevent_t* ev) { + hloop_t* loop = ev->loop; + hio_t* io = (hio_t*)hevent_userdata(ev); + // 关联到新的worker事件循环 + hio_attach(loop, io); +} + +void on_accpet(hio_t* io) { + // 从acceptor所在事件循环中剥离 + hio_detach(io); + + // 将新的连接按照负载均衡策略分发到worker线程 + hloop_t* worker_loop = get_one_loop(); + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.loop = worker_loop; + ev.cb = new_conn_event; + ev.userdata = io; + hloop_post_event(worker_loop, &ev); +} +*/ + +// 判断fd是否存在于事件循环 +bool hio_exists(hloop_t* loop, int fd); + +// 返回一个唯一标示ID +uint32_t hio_id (hio_t* io); + +// 返回文件描述符 +int hio_fd (hio_t* io); + +// 返回错误码 +int hio_error (hio_t* io); + +// 返回添加的事件 +int hio_events (hio_t* io); + +// 获取返回的事件 +int hio_revents (hio_t* io); + +// 返回IO类型 +hio_type_e hio_type (hio_t* io); + +// 返回本地地址 +struct sockaddr* hio_localaddr(hio_t* io); + +// 返回对端地址 +struct sockaddr* hio_peeraddr (hio_t* io); + +// 设置上下文 +void hio_set_context(hio_t* io, void* ctx); + +// 获取上下文 +void* hio_context(hio_t* io); + +// 是否已打开 +bool hio_is_opened(hio_t* io); + +// 是否已连接 +bool hio_is_connected(hio_t* io); + +// 是否已关闭 +bool hio_is_closed(hio_t* io); + +// 设置读缓存 +void hio_set_readbuf(hio_t* io, void* buf, size_t len); + +// 获取读缓存 +hio_readbuf_t* hio_get_readbuf(hio_t* io); + +// 设置最大读缓存 +void hio_set_max_read_bufsize (hio_t* io, uint32_t size); + +// 设置最大写缓存 +void hio_set_max_write_bufsize(hio_t* io, uint32_t size); + +// 获取当前写缓存大小 +size_t hio_write_bufsize(hio_t* io); + +// 判断是否写完成 +#define hio_write_is_complete(io) (hio_write_bufsize(io) == 0) + +// 获取最后读的时间 +uint64_t hio_last_read_time(hio_t* io); // ms + +// 获取最后写的时间 +uint64_t hio_last_write_time(hio_t* io); // ms + +// 设置accept回调 +void hio_setcb_accept (hio_t* io, haccept_cb accept_cb); +// 设置连接回调 +void hio_setcb_connect (hio_t* io, hconnect_cb connect_cb); +// 设置读回调 +void hio_setcb_read (hio_t* io, hread_cb read_cb); +// 设置写回调 +void hio_setcb_write (hio_t* io, hwrite_cb write_cb); +// 设置关闭回调 +void hio_setcb_close (hio_t* io, hclose_cb close_cb); + +// 获取accept回调 +haccept_cb hio_getcb_accept(hio_t* io); +// 获取连接回调 +hconnect_cb hio_getcb_connect(hio_t* io); +// 获取读回调 +hread_cb hio_getcb_read(hio_t* io); +// 获取写回调 +hwrite_cb hio_getcb_write(hio_t* io); +// 获取关闭回调 +hclose_cb hio_getcb_close(hio_t* io); + +// 开启SSL/TLS加密通信 +int hio_enable_ssl(hio_t* io); +// 是否SSL/TLS加密通信 +bool hio_is_ssl(hio_t* io); +// 设置SSL +int hio_set_ssl (hio_t* io, hssl_t ssl); +// 设置SSL_CTX +int hio_set_ssl_ctx(hio_t* io, hssl_ctx_t ssl_ctx); +// 新建SSL_CTX +int hio_new_ssl_ctx(hio_t* io, hssl_ctx_opt_t* opt); +// 获取SSL +hssl_t hio_get_ssl(hio_t* io); +// 获取SSL_CTX +hssl_ctx_t hio_get_ssl_ctx(hio_t* io); +// 设置主机名 +int hio_set_hostname(hio_t* io, const char* hostname); +// 获取主机名 +const char* hio_get_hostname(hio_t* io); + +// 设置连接超时 +void hio_set_connect_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_CONNECT_TIMEOUT)); +// 设置关闭超时 (说明:非阻塞写队列非空时,需要等待写完成再关闭) +void hio_set_close_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_CLOSE_TIMEOUT)); +// 设置读超时 (一段时间没有数据到来便自动关闭连接) +void hio_set_read_timeout(hio_t* io, int timeout_ms); +// 设置写超时 (一段时间没有数据发送便自动关闭连接) +void hio_set_write_timeout(hio_t* io, int timeout_ms); +// 设置keepalive超时 (一段时间没有数据收发便自动关闭连接) +void hio_set_keepalive_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_KEEPALIVE_TIMEOUT)); + +// 设置心跳 (定时发送心跳包) +typedef void (*hio_send_heartbeat_fn)(hio_t* io); +void hio_set_heartbeat(hio_t* io, int interval_ms, hio_send_heartbeat_fn fn); + +// 接收连接 +// hio_add(io, HV_READ) => accept => haccept_cb +int hio_accept (hio_t* io); + +// 连接 +// connect => hio_add(io, HV_WRITE) => hconnect_cb +int hio_connect(hio_t* io); + +// 读 +// hio_add(io, HV_READ) => read => hread_cb +int hio_read (hio_t* io); + +// 开始读 +#define hio_read_start(io) hio_read(io) + +// 停止读 +#define hio_read_stop(io) hio_del(io, HV_READ) + +// 读一次 +// hio_read_start => hread_cb => hio_read_stop +int hio_read_once (hio_t* io); + +// 读取直到指定长度 +// hio_read_once => hread_cb(len) +int hio_read_until_length(hio_t* io, unsigned int len); + +// 读取直到遇到分隔符 +// hio_read_once => hread_cb(...delim) +int hio_read_until_delim (hio_t* io, unsigned char delim); + +// 读取一行 +#define hio_readline(io) hio_read_until_delim(io, '\n') + +// 读取字符串 +#define hio_readstring(io) hio_read_until_delim(io, '\0') + +// 读取N个字节 +#define hio_readbytes(io, len) hio_read_until_length(io, len) +#define hio_read_until(io, len) hio_read_until_length(io, len) + +// 写 +// hio_try_write => hio_add(io, HV_WRITE) => write => hwrite_cb +int hio_write (hio_t* io, const void* buf, size_t len); + +// 关闭 +// hio_del(io, HV_RDWR) => close => hclose_cb +int hio_close (hio_t* io); + +// 异步关闭 (投递一个close事件) +// NOTE: hloop_post_event(hio_close_event) +int hio_close_async(hio_t* io); + +//------------------高等级的接口------------------------------------------- +// 读 +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +hio_t* hread (hloop_t* loop, int fd, void* buf, size_t len, hread_cb read_cb); +// 写 +// hio_get -> hio_setcb_write -> hio_write +hio_t* hwrite (hloop_t* loop, int fd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); +// 关闭 +// hio_get -> hio_close +void hclose (hloop_t* loop, int fd); + +// tcp +// 接收连接 +// hio_get -> hio_setcb_accept -> hio_accept +hio_t* haccept (hloop_t* loop, int listenfd, haccept_cb accept_cb); +// 连接 +// hio_get -> hio_setcb_connect -> hio_connect +hio_t* hconnect (hloop_t* loop, int connfd, hconnect_cb connect_cb); +// 接收 +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +hio_t* hrecv (hloop_t* loop, int connfd, void* buf, size_t len, hread_cb read_cb); +// 发送 +// hio_get -> hio_setcb_write -> hio_write +hio_t* hsend (hloop_t* loop, int connfd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); + +// udp +// 设置IO类型 +void hio_set_type(hio_t* io, hio_type_e type); +// 设置本地地址 +void hio_set_localaddr(hio_t* io, struct sockaddr* addr, int addrlen); +// 设置对端地址 +void hio_set_peeraddr (hio_t* io, struct sockaddr* addr, int addrlen); +// 接收 +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +hio_t* hrecvfrom (hloop_t* loop, int sockfd, void* buf, size_t len, hread_cb read_cb); +// 发送 +// hio_get -> hio_setcb_write -> hio_write +hio_t* hsendto (hloop_t* loop, int sockfd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); + +//-----------------顶层的接口--------------------------------------------- +// 创建socket套接字,返回IO对象 +// @hio_create_socket: socket -> bind -> listen +// sockaddr_set_ipport -> socket -> hio_get(loop, sockfd) -> +// side == HIO_SERVER_SIDE ? bind -> +// type & HIO_TYPE_SOCK_STREAM ? listen -> +hio_t* hio_create_socket(hloop_t* loop, const char* host, int port, + hio_type_e type DEFAULT(HIO_TYPE_TCP), + hio_side_e side DEFAULT(HIO_SERVER_SIDE)); + +// @tcp_server: hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_SERVER_SIDE) -> hio_setcb_accept -> hio_accept +// 创建TCP服务,示例代码见 examples/tcp_echo_server.c +hio_t* hloop_create_tcp_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb); + +// @tcp_client: hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE) -> hio_setcb_connect -> hio_setcb_close -> hio_connect +// 创建TCP客户端,示例代码见 examples/nc.c +hio_t* hloop_create_tcp_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb); + +// @ssl_server: hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_SERVER_SIDE) -> hio_setcb_accept -> hio_accept +// 创建SSL服务端,示例代码见 examples/tcp_echo_server.c => #define TEST_SSL 1 +hio_t* hloop_create_ssl_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb); + +// @ssl_client: hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_CLIENT_SIDE) -> hio_setcb_connect -> hio_setcb_close -> hio_connect +// 创建SSL客户端,示例代码见 examples/nc.c => #define TEST_SSL 1 +hio_t* hloop_create_ssl_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb); + +// @udp_server: hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_SERVER_SIDE) +// 创建UDP服务端,示例代码见 examples/udp_echo_server.c +hio_t* hloop_create_udp_server (hloop_t* loop, const char* host, int port); + +// @udp_server: hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_CLIENT_SIDE) +// 创建UDP客户端,示例代码见 examples/nc.c +hio_t* hloop_create_udp_client (hloop_t* loop, const char* host, int port); + +//-----------------转发--------------------------------------------- +// hio_read(io) +// hio_read(io->upstream_io) +void hio_read_upstream(hio_t* io); +// on_write(io) -> hio_write_is_complete(io) -> hio_read(io->upstream_io) +void hio_read_upstream_on_write_complete(hio_t* io, const void* buf, int writebytes); +// hio_write(io->upstream_io, buf, bytes) +void hio_write_upstream(hio_t* io, void* buf, int bytes); +// hio_close(io->upstream_io) +void hio_close_upstream(hio_t* io); + +// io1->upstream_io = io2; +// io2->upstream_io = io1; +// 建立转发,示例代码见 examples/socks5_proxy_server.c +void hio_setup_upstream(hio_t* io1, hio_t* io2); + +// @return io->upstream_io +hio_t* hio_get_upstream(hio_t* io); + +// @tcp_upstream: hio_create_socket -> hio_setup_upstream -> hio_connect -> on_connect -> hio_read_upstream +// @return upstream_io +// 建立TCP转发,示例代码见 examples/tcp_proxy_server.c +hio_t* hio_setup_tcp_upstream(hio_t* io, const char* host, int port, int ssl DEFAULT(0)); +// 建立SSL转发 +#define hio_setup_ssl_upstream(io, host, port) hio_setup_tcp_upstream(io, host, port, 1) + +// @udp_upstream: hio_create_socket -> hio_setup_upstream -> hio_read_upstream +// @return upstream_io +// 建立UDP转发,示例代码见 examples/udp_proxy_server.c +hio_t* hio_setup_udp_upstream(hio_t* io, const char* host, int port); + +//-----------------拆包--------------------------------------------- +// 拆包模式 +typedef enum { + UNPACK_MODE_NONE = 0, + UNPACK_BY_FIXED_LENGTH = 1, // 固定长度拆包,不建议 + UNPACK_BY_DELIMITER = 2, // 根据分隔符拆包,适用于文本协议 + UNPACK_BY_LENGTH_FIELD = 3, // 根据头部长度字段拆包,适用于二进制协议 +} unpack_mode_e; + +// 拆包设置 +typedef struct unpack_setting_s { + unpack_mode_e mode; // 拆包模式 + unsigned int package_max_length; // 最大的包长 + union { + // UNPACK_BY_FIXED_LENGTH: 固定长度拆包设置 + struct { + unsigned int fixed_length; // 固定长度 + }; + // UNPACK_BY_DELIMITER: 分隔符拆包设置 + struct { + unsigned char delimiter[PACKAGE_MAX_DELIMITER_BYTES]; // 分隔符 + unsigned short delimiter_bytes; // 分隔符所占字节数 + }; + /* + * UNPACK_BY_LENGTH_FIELD: 头部长度字段拆包设置 + * + * 包长 = 头部长度 + 数据长度 + 调整长度 + * package_len = head_len + body_len + length_adjustment + * + * if (length_field_coding == ENCODE_BY_VARINT) head_len = body_offset + varint_bytes - length_field_bytes; + * else head_len = body_offset; + * + * 注意:头部长度字段的值仅代表数据长度,不包括头部本身长度, + * 如果你的头部长度字段代表总包长,那么应该将length_adjustment设置为负的头部长度 + * length_field stores body length, exclude head length, + * if length_field = head_len + body_len, then length_adjustment should be set to -head_len. + * + */ + struct { + unsigned short body_offset; // 到数据的偏移,通常等于头部长度 + unsigned short length_field_offset; // 长度字段偏移 + unsigned short length_field_bytes; // 长度字段所占字节数 + short length_adjustment; // 调整长度 + unpack_coding_e length_field_coding; // 长度字段编码方式 + }; + }; +} unpack_setting_t; + +/* + * 拆包示例代码见 examples/jsonrpc examples/protorpc + * + * 注意:多个IO对象的unpack_setting_t可能是一样的,所有hio_t里仅保存了unpack_setting_t的指针, + * unpack_setting_t的生命周期应该被调用者所保证,不应该使用局部变量。 + */ + +// 设置拆包 +void hio_set_unpack(hio_t* io, unpack_setting_t* setting); +// 取消拆包设置 +void hio_unset_unpack(hio_t* io); + +// 拆包设置示例: +/* + +// FTP协议通过\r\n分割符拆包 +unpack_setting_t ftp_unpack_setting; +memset(&ftp_unpack_setting, 0, sizeof(unpack_setting_t)); +ftp_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; +ftp_unpack_setting.mode = UNPACK_BY_DELIMITER; +ftp_unpack_setting.delimiter[0] = '\r'; +ftp_unpack_setting.delimiter[1] = '\n'; +ftp_unpack_setting.delimiter_bytes = 2; + +// MQTT协议通过头部长度字段拆包,头部长度字段使用了varint编码 +unpack_setting_t mqtt_unpack_setting = { + .mode = UNPACK_BY_LENGTH_FIELD, + .package_max_length = DEFAULT_PACKAGE_MAX_LENGTH, + .body_offset = 2, + .length_field_offset = 1, + .length_field_bytes = 1, + .length_field_coding = ENCODE_BY_VARINT, +}; + +*/ + +//-----------------重连---------------------------------------- +// 重连设置 +typedef struct reconn_setting_s { + uint32_t min_delay; // ms 重连最小延时 + uint32_t max_delay; // ms 重连最大延时 + uint32_t cur_delay; // ms 当前延时 + /* + * @delay_policy: 延时策略 + * 0: fixed 固定延时 + * min_delay=3s => 3,3,3... + * 1: linear 线性增长延时 + * min_delay=3s max_delay=10s => 3,6,9,10,10... + * other: exponential 指数增长延时 + * min_delay=3s max_delay=60s delay_policy=2 => 3,6,12,24,48,60,60... + */ + uint32_t delay_policy; // 延时策略 + uint32_t max_retry_cnt; // 最大重试次数 + uint32_t cur_retry_cnt; // 当前重试次数 +} reconn_setting_t; + +// 重连设置初始化 +void reconn_setting_init(reconn_setting_t* reconn); + +// 重连设置重置 +void reconn_setting_reset(reconn_setting_t* reconn); + +// 增加重试次数并判断是否未超过最大重试次数 +bool reconn_setting_can_retry(reconn_setting_t* reconn); + +// 计算当前重连延时 +uint32_t reconn_setting_calc_delay(reconn_setting_t* reconn); + +//-----------------负载均衡------------------------------------- +// 负载均衡策略枚举 +typedef enum { + LB_RoundRobin, // 轮询 + LB_Random, // 随机 + LB_LeastConnections,// 最少连接数 + LB_IpHash, // IP hash + LB_UrlHash, // URL hash +} load_balance_e; + +//-----------------可靠UDP--------------------------------------------- +// 关闭可靠UDP +int hio_close_rudp(hio_t* io, struct sockaddr* peeraddr DEFAULT(NULL)); + +// KCP设置 +typedef struct kcp_setting_s { + // ikcp_create(conv, ...) + unsigned int conv; + // ikcp_nodelay(kcp, nodelay, interval, fastresend, nocwnd) + int nodelay; + int interval; + int fastresend; + int nocwnd; + // ikcp_wndsize(kcp, sndwnd, rcvwnd) + int sndwnd; + int rcvwnd; + // ikcp_setmtu(kcp, mtu) + int mtu; + // ikcp_update + int update_interval; +} kcp_setting_t; + +// KCP 正常模式 +HV_INLINE void kcp_setting_init_with_normal_mode(kcp_setting_t* setting); + +// KCP fast模式 +void kcp_setting_init_with_fast_mode(kcp_setting_t* setting); + +// KCP fast2模式 +void kcp_setting_init_with_fast2_mode(kcp_setting_t* setting); + +// KCP fast3模式 +void kcp_setting_init_with_fast3_mode(kcp_setting_t* setting); + +// 设置KCP,示例代码见 examples/udp_echo_server.c => #define TEST_KCP 1 +int hio_set_kcp(hio_t* io, kcp_setting_t* setting DEFAULT(NULL)); + +``` + +示例代码: + +- 事件循环: [examples/hloop_test.c](../../examples/hloop_test.c) +- 定时器: [examples/htimer_test.c](../../examples/htimer_test.c) +- TCP回显服务: [examples/tcp_echo_server.c](../../examples/tcp_echo_server.c) +- TCP聊天服务: [examples/tcp_chat_server.c](../../examples/tcp_chat_server.c) +- TCP代理服务: [examples/tcp_proxy_server.c](../../examples/tcp_proxy_server.c) +- TCP客户端: [examples/tcp_client_test.c](../../examples/tcp_client_test.c) +- UDP回显服务: [examples/udp_echo_server.c](../../examples/udp_echo_server.c) +- UDP代理服务: [examples/udp_proxy_server.c](../../examples/udp_proxy_server.c) +- 网络客户端: [examples/nc](../../examples/nc.c) +- SOCKS5代理服务: [examples/socks5_proxy_server.c](../../examples/socks5_proxy_server.c) +- HTTP服务: [examples/tinyhttpd.c](../../examples/tinyhttpd.c) +- HTTP代理服务: [examples/tinyproxyd.c](../../examples/tinyproxyd.c) +- jsonRPC示例: [examples/jsonrpc](../../examples/jsonrpc) +- protobufRPC示例: [examples/protorpc](../../examples/protorpc) + +多进程/多线程模式示例代码: + +- 多accept进程模式: [examples/multi-thread/multi-acceptor-processes.c](../../examples/multi-thread/multi-acceptor-processes.c) +- 多accept线程模式: [examples/multi-thread/multi-acceptor-threads.c](../../examples/multi-thread/multi-acceptor-threads.c) +- 一个accept线程+多worker线程: [examples/multi-thread/one-acceptor-multi-workers.c](../../examples/multi-thread/one-acceptor-multi-workers.c) diff --git a/3rdPartner/libhv/echo-servers/asio_echo.cpp b/3rdPartner/libhv/echo-servers/asio_echo.cpp new file mode 100644 index 0000000..8a435f5 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/asio_echo.cpp @@ -0,0 +1,105 @@ +// +// async_tcp_echo_server.cpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#include +#include +#include +#include + +using boost::asio::ip::tcp; + +class session { +public: + session(boost::asio::io_service& io_service) : + socket_(io_service) { + } + + tcp::socket& socket() { + return socket_; + } + + void start() { + socket_.async_read_some(boost::asio::buffer(data_, max_length), + boost::bind(&session::handle_read, this, + boost::asio::placeholders::error, + boost::asio::placeholders::bytes_transferred)); + } + + void handle_read(const boost::system::error_code& error, + size_t bytes_transferred) { + if (!error) { + boost::asio::async_write(socket_, boost::asio::buffer(data_, + bytes_transferred), boost::bind(&session::handle_write, + this, boost::asio::placeholders::error)); + } else { + delete this; + } + } + + void handle_write(const boost::system::error_code& error) { + if (!error) { + socket_.async_read_some(boost::asio::buffer(data_, max_length), + boost::bind(&session::handle_read, this, + boost::asio::placeholders::error, + boost::asio::placeholders::bytes_transferred)); + } else { + delete this; + } + } + +private: + tcp::socket socket_; + enum { + max_length = 1024 + }; + char data_[max_length]; +}; + +class server { +public: + server(boost::asio::io_service& io_service, short port) : + io_service_(io_service), acceptor_(io_service, tcp::endpoint(tcp::v4(), + port)) { + session* new_session = new session(io_service_); + acceptor_.async_accept(new_session->socket(), boost::bind( + &server::handle_accept, this, new_session, + boost::asio::placeholders::error)); + } + + void handle_accept(session* new_session, + const boost::system::error_code& error) { + if (!error) { + new_session->start(); + new_session = new session(io_service_); + acceptor_.async_accept(new_session->socket(), boost::bind( + &server::handle_accept, this, new_session, + boost::asio::placeholders::error)); + } else { + delete new_session; + } + } + +private: + boost::asio::io_service& io_service_; + tcp::acceptor acceptor_; +}; + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + boost::asio::io_service io_service; + server s(io_service, port); + io_service.run(); + + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/benchmark.sh b/3rdPartner/libhv/echo-servers/benchmark.sh new file mode 100644 index 0000000..d5b1190 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/benchmark.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +host=127.0.0.1 +port=2000 +connections=100 +duration=10 +threads=2 +sendbytes=1024 + +while getopts 'h:p:c:d:t:' opt +do + case $opt in + h) host=$OPTARG;; + p) port=$OPTARG;; + c) connections=$OPTARG;; + d) duration=$OPTARG;; + t) threads=$OPTARG;; + *) exit -1;; + esac +done + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +cd ${SCRIPT_DIR}/.. + +killall_echo_servers() { + #sudo killall libevent_echo libev_echo libuv_echo libhv_echo asio_echo poco_echo muduo_echo + if [ $(ps aux | grep _echo | grep -v grep | wc -l) -gt 0 ]; then + ps aux | grep _echo | grep -v grep | awk '{print $2}' | xargs sudo kill -9 + fi +} + +export LD_LIBRARY_PATH=lib:$LD_LIBRARY_PATH + +killall_echo_servers + +sport=$port + +if [ -x bin/libevent_echo ]; then + let port++ + bin/libevent_echo $port & + echo "libevent running on port $port" +fi + +if [ -x bin/libev_echo ]; then + let port++ + bin/libev_echo $port & + echo "libev running on port $port" +fi + +if [ -x bin/libuv_echo ]; then + let port++ + bin/libuv_echo $port & + echo "libuv running on port $port" +fi + +if [ -x bin/libhv_echo ]; then + let port++ + bin/libhv_echo $port & + echo "libhv running on port $port" +fi + +if [ -x bin/asio_echo ]; then + let port++ + bin/asio_echo $port & + echo "asio running on port $port" +fi + +if [ -x bin/poco_echo ]; then + let port++ + bin/poco_echo $port & + echo "poco running on port $port" +fi + +if [ -x bin/muduo_echo ]; then + let port++ + bin/muduo_echo $port & + echo "muduo running on port $port" +fi + +sleep 1 + +for ((p=$sport+1; p<=$port; ++p)); do + echo -e "\n==============$p=====================================" + bin/pingpong_client -H $host -p $p -c $connections -d $duration -t $threads -b $sendbytes + sleep 1 +done + +killall_echo_servers diff --git a/3rdPartner/libhv/echo-servers/build.sh b/3rdPartner/libhv/echo-servers/build.sh new file mode 100644 index 0000000..be318f6 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/build.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. + +# install libevent libev libuv asio poco +UNAME=$(uname -a) +case ${UNAME} in + *Ubuntu*|*Debian*) + sudo apt install libevent-dev libev-dev libuv1-dev libboost-dev libboost-system-dev libasio-dev libpoco-dev + ;; + *CentOS*) + sudo yum install libevent-devel libev-devel libuv-devel boost-devel asio-devel poco-devel + ;; + *Darwin*) + brew install libevent libev libuv boost asio poco + ;; + *) + echo 'please install libevent libev libuv boost asio poco' + ;; +esac + +# install muduo => https://github.com/chenshuo/muduo.git +TEST_MUDUO=false +if [ "$TEST_MUDUO" == "true" ]; then + cd ${ROOT_DIR}/.. + git clone https://github.com/chenshuo/muduo.git + cd muduo + mkdir build && cd build + cmake .. && make && sudo make install +fi + +# install libhv +cd ${ROOT_DIR} +make libhv && sudo make install && sudo ldconfig + +# build echo-servers +make echo-servers diff --git a/3rdPartner/libhv/echo-servers/libev_echo.c b/3rdPartner/libhv/echo-servers/libev_echo.c new file mode 100644 index 0000000..cb1295c --- /dev/null +++ b/3rdPartner/libhv/echo-servers/libev_echo.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include "ev.h" + +#define RECV_BUFSIZE 8192 +static char recvbuf[RECV_BUFSIZE]; + +void do_recv(struct ev_loop *loop, struct ev_io *io, int revents) { + int nread, nsend; + nread = recv(io->fd, recvbuf, RECV_BUFSIZE, 0); + if (nread <= 0) { + goto error; + } + nsend = send(io->fd, recvbuf, nread, 0); + if (nsend != nread) { + goto error; + } + return; + +error: + ev_io_stop(loop, io); + close(io->fd); + free(io); +} + +void do_accept(struct ev_loop *loop, struct ev_io *listenio, int revents) { + struct sockaddr_in peeraddr; + socklen_t addrlen = sizeof(peeraddr); + int connfd = accept(listenio->fd, (struct sockaddr*)&peeraddr, &addrlen); + if (connfd <= 0) { + return; + } + + struct ev_io* io = (struct ev_io*)malloc(sizeof(struct ev_io)); + ev_io_init(io, do_recv, connfd, EV_READ); + ev_io_start(loop, io); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + struct sockaddr_in addr; + int addrlen = sizeof(addr); + memset(&addr, 0, addrlen); + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + int listenfd = socket(AF_INET, SOCK_STREAM, 0); + if (listenfd < 0) { + return -20; + } + if (bind(listenfd, (struct sockaddr*)&addr, addrlen) < 0) { + return -30; + } + if (listen(listenfd, SOMAXCONN) < 0) { + return -40; + } + + struct ev_loop* loop = ev_loop_new(0); + + struct ev_io listenio; + ev_io_init(&listenio, do_accept, listenfd, EV_READ); + ev_io_start(loop, &listenio); + + ev_run(loop, 0); + ev_loop_destroy(loop); + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/libevent_echo.c b/3rdPartner/libhv/echo-servers/libevent_echo.c new file mode 100644 index 0000000..5c8e266 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/libevent_echo.c @@ -0,0 +1,61 @@ +#include +#include +#include + +#include "event2/event.h" +#include "event2/listener.h" +#include "event2/bufferevent.h" +#include "event2/buffer.h" + +//#define RECV_BUFSIZE 8192 + +void error_cb(struct bufferevent* bev, short event, void* userdata) { + bufferevent_free(bev); +} + +void read_cb(struct bufferevent* bev, void* userdata) { + //static char recvbuf[RECV_BUFSIZE]; + //int nread = bufferevent_read(bev, &recvbuf, RECV_BUFSIZE); + //bufferevent_write(bev, recvbuf, nread); + struct evbuffer* buf = evbuffer_new(); + int ret = bufferevent_read_buffer(bev, buf); + if (ret == 0) { + bufferevent_write_buffer(bev, buf); + } + evbuffer_free(buf); +} + +void on_accept(struct evconnlistener* listener, evutil_socket_t connfd, struct sockaddr* peeraddr, int addrlen, void* userdata) { + struct event_base* loop = evconnlistener_get_base(listener); + struct bufferevent* bev = bufferevent_socket_new(loop, connfd, BEV_OPT_CLOSE_ON_FREE); + bufferevent_setcb(bev, read_cb, NULL, error_cb, NULL); + bufferevent_enable(bev, EV_READ|EV_WRITE|EV_PERSIST); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + struct event_base* loop = event_base_new(); + + struct sockaddr_in addr; + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + struct evconnlistener* listener = evconnlistener_new_bind( + loop, on_accept, NULL, + LEV_OPT_REUSEABLE|LEV_OPT_CLOSE_ON_FREE, + -1, (struct sockaddr*)&addr, sizeof(addr)); + if (listener == NULL) { + return -20; + } + + event_base_dispatch(loop); + + evconnlistener_free(listener); + event_base_free(loop); + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/libhv_echo.c b/3rdPartner/libhv/echo-servers/libhv_echo.c new file mode 100644 index 0000000..8cfc153 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/libhv_echo.c @@ -0,0 +1,31 @@ +#include "hv/hloop.h" + +void on_close(hio_t* io) { +} + +void on_recv(hio_t* io, void* buf, int readbytes) { + hio_write(io, buf, readbytes); +} + +void on_accept(hio_t* io) { + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_read(io); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + hloop_t* loop = hloop_new(0); + hio_t* listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept); + if (listenio == NULL) { + return -20; + } + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/libuv_echo.c b/3rdPartner/libhv/echo-servers/libuv_echo.c new file mode 100644 index 0000000..abc7d18 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/libuv_echo.c @@ -0,0 +1,75 @@ +#define _GNU_SOURCE 1 +#include +#include +#include + +#include "uv.h" + +typedef struct { + uv_write_t req; + uv_buf_t buf; +} uv_write_req_t; + +void alloc_cb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) { + buf->base = (char*)malloc(suggested_size); + buf->len = suggested_size; +} + +void close_cb(uv_handle_t* handle) { + free(handle); +} + +void write_cb(uv_write_t* req, int status) { + uv_write_req_t* wr = (uv_write_req_t*)req; + free(wr->buf.base); + free(wr); +} + +void read_cb(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf) { + if (nread <= 0) { + uv_close((uv_handle_t*)stream, close_cb); + return; + } + uv_write_req_t* wr = (uv_write_req_t*)malloc(sizeof(uv_write_req_t)); + wr->buf.base = buf->base; + wr->buf.len = nread; + uv_write(&wr->req, stream, &wr->buf, 1, write_cb); +} + +void do_accept(uv_stream_t* server, int status) { + uv_tcp_t* tcp_stream = (uv_tcp_t*)malloc(sizeof(uv_tcp_t)); + uv_tcp_init(server->loop, tcp_stream); + uv_accept(server, (uv_stream_t*)tcp_stream); + uv_read_start((uv_stream_t*)tcp_stream, alloc_cb, read_cb); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + uv_loop_t loop; + uv_loop_init(&loop); + + struct sockaddr_in addr; + memset(&addr, 0, sizeof(addr)); + //addr.sin_family = AF_INET; + //addr.sin_port = htons(port); + uv_ip4_addr("0.0.0.0", port, &addr); + + uv_tcp_t tcp_server; + uv_tcp_init(&loop, &tcp_server); + int ret = uv_tcp_bind(&tcp_server, (struct sockaddr*)&addr, 0); + if (ret) { + return -20; + } + ret = uv_listen((uv_stream_t*)&tcp_server, SOMAXCONN, do_accept); + if (ret) { + return -30; + } + + uv_run(&loop, UV_RUN_DEFAULT); + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/muduo_echo.cpp b/3rdPartner/libhv/echo-servers/muduo_echo.cpp new file mode 100644 index 0000000..60e4402 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/muduo_echo.cpp @@ -0,0 +1,62 @@ +// @see muduo/examples/simple/echo +#include "muduo/base/Logging.h" +#include "muduo/net/EventLoop.h" +#include "muduo/net/InetAddress.h" +#include "muduo/net/TcpServer.h" + +using std::placeholders::_1; +using std::placeholders::_2; +using std::placeholders::_3; + +using muduo::Timestamp; + +using muduo::net::EventLoop; +using muduo::net::InetAddress; +using muduo::net::TcpServer; +using muduo::net::TcpConnectionPtr; +using muduo::net::Buffer; + +class EchoTcpServer { +public: + EchoTcpServer(EventLoop* loop, const InetAddress& addr) + : server_(loop, addr, "EchoTcpServer") + { + server_.setConnectionCallback(std::bind(&EchoTcpServer::onConnection, this, _1)); + server_.setMessageCallback(std::bind(&EchoTcpServer::onMessage, this, _1, _2, _3)); + } + + void start() { + server_.start(); + } + +private: + void onConnection(const TcpConnectionPtr& conn) { + } + + void onMessage(const TcpConnectionPtr& conn, + Buffer* buf, Timestamp time) { + muduo::string msg(buf->retrieveAllAsString()); + conn->send(msg); + } + + TcpServer server_; +}; + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(argv[1]); + + muduo::g_logLevel = muduo::Logger::ERROR; + muduo::net::EventLoop loop; + + muduo::net::InetAddress addr(port); + EchoTcpServer server(&loop, addr); + server.start(); + + loop.loop(); + + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/pingpong_client.cpp b/3rdPartner/libhv/echo-servers/pingpong_client.cpp new file mode 100644 index 0000000..697e564 --- /dev/null +++ b/3rdPartner/libhv/echo-servers/pingpong_client.cpp @@ -0,0 +1,143 @@ +#include "hv/hmain.h" // import parse_opt +#include "hv/hloop.h" +#include "hv/hsocket.h" + +#include "hv/EventLoopThreadPool.h" +using namespace hv; + +static const char options[] = "hvH:p:c:d:t:b:"; + +static const char detail_options[] = R"( + -h Print help infomation + -v Show verbose infomation + -H default 127.0.0.1 + -p + -c Number of connections, default: 1000 + -d Duration of test, default: 10s + -t Number of threads, default: 4 + -b Bytes of send buffer, default: 4096 +)"; + +static int connections = 1000; +static int duration = 10; +static int threads = 4; + +static bool verbose = false; +static const char* host = "127.0.0.1"; +static int port = 0; +static int sendbytes = 4096; +static void* sendbuf = NULL; + +static std::atomic connected_num(0); +static std::atomic disconnected_num(0); +static std::atomic total_readcount(0); +static std::atomic total_readbytes(0); + +static void print_help() { + printf("Usage: %s [%s]\n", g_main_ctx.program_name, options); + printf("Options:\n%s\n", detail_options); +} + +static void print_cmd() { + printf("Running %ds test @ %s:%d\n", duration, host, port); + printf("%d threads and %d connections, send %d bytes each time\n", threads, connections, sendbytes); +} + +static void print_result() { + printf("total readcount=%llu readbytes=%llu\n", + (unsigned long long)total_readcount, + (unsigned long long)total_readbytes); + printf("throughput = %llu MB/s\n", (total_readbytes) / ((unsigned long long)duration * 1024 * 1024)); +} + +static void on_close(hio_t* io) { + if (++disconnected_num == connections) { + if (verbose) { + printf("all disconnected\n"); + } + } +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + ++total_readcount; + total_readbytes += readbytes; + hio_write(io, buf, readbytes); +} + +static void on_connect(hio_t* io) { + if (++connected_num == connections) { + if (verbose) { + printf("all connected\n"); + } + } + + hio_write(io, sendbuf, sendbytes); + + hio_setcb_read(io, on_recv); + hio_read_start(io); +} + +static void start_connect(hloop_t* loop) { + hio_t* io = hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (io == NULL) { + perror("socket"); + exit(1); + } + tcp_nodelay(hio_fd(io), 1); + hio_setcb_connect(io, on_connect); + hio_setcb_close(io, on_close); + hio_connect(io); +} + +int main(int argc, char** argv) { + // parse cmdline + main_ctx_init(argc, argv); + int ret = parse_opt(argc, argv, options); + if (ret != 0) { + print_help(); + exit(ret); + } + const char* strHost = get_arg("H"); + const char* strPort = get_arg("p"); + const char* strConnections = get_arg("c"); + const char* strDuration = get_arg("d"); + const char* strThreads = get_arg("t"); + const char* strBytes = get_arg("b"); + + if (strHost) host = strHost; + if (strPort) port = atoi(strPort); + if (strConnections) connections = atoi(strConnections); + if (strDuration) duration = atoi(strDuration); + if (strThreads) threads = atoi(strThreads); + if (strBytes) sendbytes = atoi(strBytes); + + if (get_arg("h") || port == 0) { + print_help(); + exit(0); + } + if (get_arg("v")) { + verbose = true; + } + sendbuf = malloc(sendbytes); + + print_cmd(); + + EventLoopThreadPool loop_threads(threads); + loop_threads.start(true); + for (int i = 0; i < connections; ++i) { + EventLoopPtr loop = loop_threads.nextLoop(); + loop->runInLoop(std::bind(start_connect, loop->loop())); + } + + // stop after seconds + loop_threads.loop()->setTimeout(duration * 1000, [&loop_threads](TimerID timerID){ + loop_threads.stop(false); + }); + + // wait loop_threads exit + loop_threads.join(); + + print_result(); + + return 0; +} diff --git a/3rdPartner/libhv/echo-servers/poco_echo.cpp b/3rdPartner/libhv/echo-servers/poco_echo.cpp new file mode 100644 index 0000000..715184d --- /dev/null +++ b/3rdPartner/libhv/echo-servers/poco_echo.cpp @@ -0,0 +1,225 @@ +// +// EchoServer.cpp +// +// $Id: //poco/1.3/Net/samples/EchoServer/src/EchoServer.cpp#1 $ +// +// This sample demonstrates the SocketReactor and SocketAcceptor classes. +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// Permission is hereby granted, free of charge, to any person or organization +// obtaining a copy of the software and accompanying documentation covered by +// this license (the "Software") to use, reproduce, display, distribute, +// execute, and transmit the Software, and to prepare derivative works of the +// Software, and to permit third-parties to whom the Software is furnished to +// do so, all subject to the following: +// +// The copyright notices in the Software and this entire statement, including +// the above license grant, this restriction and the following disclaimer, +// must be included in all copies of the Software, in whole or in part, and +// all derivative works of the Software, unless such copies or derivative +// works are solely in the form of machine-executable object code generated by +// a source language processor. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. +// + + +#include "Poco/Net/SocketReactor.h" +#include "Poco/Net/SocketAcceptor.h" +#include "Poco/Net/SocketNotification.h" +#include "Poco/Net/StreamSocket.h" +#include "Poco/Net/ServerSocket.h" +#include "Poco/NObserver.h" +#include "Poco/Exception.h" +#include "Poco/Thread.h" +#include "Poco/Util/ServerApplication.h" +#include "Poco/Util/Option.h" +#include "Poco/Util/OptionSet.h" +#include "Poco/Util/HelpFormatter.h" +#include + + +using Poco::Net::SocketReactor; +using Poco::Net::SocketAcceptor; +using Poco::Net::ReadableNotification; +using Poco::Net::ShutdownNotification; +using Poco::Net::ServerSocket; +using Poco::Net::StreamSocket; +using Poco::NObserver; +using Poco::AutoPtr; +using Poco::Thread; +using Poco::Util::ServerApplication; +using Poco::Util::Application; +using Poco::Util::Option; +using Poco::Util::OptionSet; +using Poco::Util::HelpFormatter; + + +class EchoServiceHandler +{ +public: + EchoServiceHandler(StreamSocket& socket, SocketReactor& reactor): + _socket(socket), + _reactor(reactor), + _pBuffer(new char[BUFFER_SIZE]) + { + // Application& app = Application::instance(); + // app.logger().information("Connection from " + socket.peerAddress().toString()); + + _reactor.addEventHandler(_socket, NObserver(*this, &EchoServiceHandler::onReadable)); + _reactor.addEventHandler(_socket, NObserver(*this, &EchoServiceHandler::onShutdown)); + } + + ~EchoServiceHandler() + { + // Application& app = Application::instance(); + // app.logger().information("Disconnecting " + _socket.peerAddress().toString()); + + _reactor.removeEventHandler(_socket, NObserver(*this, &EchoServiceHandler::onReadable)); + _reactor.removeEventHandler(_socket, NObserver(*this, &EchoServiceHandler::onShutdown)); + delete [] _pBuffer; + } + + void onReadable(const AutoPtr& pNf) + { + int n = _socket.receiveBytes(_pBuffer, BUFFER_SIZE); + if (n > 0) + _socket.sendBytes(_pBuffer, n); + else + delete this; + } + + void onShutdown(const AutoPtr& pNf) + { + delete this; + } + +private: + enum + { + BUFFER_SIZE = 1024 + }; + + StreamSocket _socket; + SocketReactor& _reactor; + char* _pBuffer; +}; + + +class EchoServer: public Poco::Util::ServerApplication + /// The main application class. + /// + /// This class handles command-line arguments and + /// configuration files. + /// Start the EchoServer executable with the help + /// option (/help on Windows, --help on Unix) for + /// the available command line options. + /// + /// To use the sample configuration file (EchoServer.properties), + /// copy the file to the directory where the EchoServer executable + /// resides. If you start the debug version of the EchoServer + /// (EchoServerd[.exe]), you must also create a copy of the configuration + /// file named EchoServerd.properties. In the configuration file, you + /// can specify the port on which the server is listening (default + /// 9977) and the format of the date/time string sent back to the client. + /// + /// To test the EchoServer you can use any telnet client (telnet localhost 9977). +{ +public: + EchoServer(): _helpRequested(false) + { + } + + ~EchoServer() + { + } + +protected: + void initialize(Application& self) + { + loadConfiguration(); // load default configuration files, if present + ServerApplication::initialize(self); + } + + void uninitialize() + { + ServerApplication::uninitialize(); + } + + void defineOptions(OptionSet& options) + { + ServerApplication::defineOptions(options); + + options.addOption( + Option("help", "h", "display help information on command line arguments") + .required(false) + .repeatable(false)); + } + + void handleOption(const std::string& name, const std::string& value) + { + ServerApplication::handleOption(name, value); + + if (name == "help") + _helpRequested = true; + } + + void displayHelp() + { + HelpFormatter helpFormatter(options()); + helpFormatter.setCommand(commandName()); + helpFormatter.setUsage("OPTIONS"); + helpFormatter.setHeader("An echo server implemented using the Reactor and Acceptor patterns."); + helpFormatter.format(std::cout); + } + + int main(const std::vector& args) + { + if (_helpRequested) + { + displayHelp(); + } + else + { + if (args.size() < 1) { + printf("Usage: cmd port\n"); + return -10; + } + int port = atoi(args[0].c_str()); + // set-up a server socket + ServerSocket svs(port); + // set-up a SocketReactor... + SocketReactor reactor; + // ... and a SocketAcceptor + SocketAcceptor acceptor(svs, reactor); + // run the reactor in its own thread so that we can wait for + // a termination request + Thread thread; + thread.start(reactor); + // wait for CTRL-C or kill + waitForTerminationRequest(); + // Stop the SocketReactor + reactor.stop(); + thread.join(); + } + return Application::EXIT_OK; + } + +private: + bool _helpRequested; +}; + + +int main(int argc, char** argv) +{ + EchoServer app; + return app.run(argc, argv); +} diff --git a/3rdPartner/libhv/etc/hmain_test.conf b/3rdPartner/libhv/etc/hmain_test.conf new file mode 100644 index 0000000..33c7196 --- /dev/null +++ b/3rdPartner/libhv/etc/hmain_test.conf @@ -0,0 +1,13 @@ +# [root] + +# logfile = logs/test.log +# loglevel = [VERBOSE,DEBUG,INFO,WARN,ERROR,FATAL,SILENT] +loglevel = DEBUG +log_remain_days = 3 +log_filesize = 16M + +# worker_processes = auto # auto = ncpu +worker_processes = auto +worker_threads = 2 + +port = 8086 diff --git a/3rdPartner/libhv/etc/httpd.conf b/3rdPartner/libhv/etc/httpd.conf new file mode 100644 index 0000000..74e8260 --- /dev/null +++ b/3rdPartner/libhv/etc/httpd.conf @@ -0,0 +1,54 @@ +# [root] + +# logfile = logs/httpd.log +# loglevel = [VERBOSE,DEBUG,INFO,WARN,ERROR,FATAL,SILENT] +loglevel = INFO +log_remain_days = 3 +log_filesize = 64M + +# multi-processes mode +# auto = ncpu +worker_processes = auto +worker_threads = 1 + +# multi-threads mode +# worker_processes = 1 +# worker_threads = auto + +# Disable multi-processes mode for debugging +# worker_processes = 0 + +# max_connections = workers * worker_connections +worker_connections = 1024 + +# http server +http_port = 8080 +https_port = 8443 +#base_url = /api/v1 +document_root = html +home_page = index.html +#error_page = error.html +index_of = /downloads/ +keepalive_timeout = 75000 # ms +limit_rate = 500 # KB/s +access_log = off +cors = true + +# SSL/TLS +ssl_certificate = cert/server.crt +ssl_privatekey = cert/server.key +ssl_ca_certificate = cert/cacert.pem + +# proxy +[proxy] +proxy_connect_timeout = 10000 # ms +proxy_read_timeout = 60000 # ms +proxy_write_timeout = 60000 # ms +# forward proxy +forward_proxy = true +trust_proxies = *httpbin.org;*postman-echo.com;*apifox.com +#no_proxies = * +# reverse proxy +/httpbin/ => http://httpbin.org/ +/postman/ => http://postman-echo.com/ +/apifox/ => https://echo.apifox.com/ diff --git a/3rdPartner/libhv/etc/nginx.conf b/3rdPartner/libhv/etc/nginx.conf new file mode 100644 index 0000000..11670c5 --- /dev/null +++ b/3rdPartner/libhv/etc/nginx.conf @@ -0,0 +1,37 @@ +# cd libhv +# sudo nginx -p . -c etc/nginx.conf +# bin/httpd -c etc/httpd.conf -s restart -d +# bin/curl -v http://127.0.0.1/api/v1/get + +worker_processes auto; + +pid logs/nginx.pid; +error_log logs/error.log; + +events { + worker_connections 1024; +} + +http { + access_log logs/access.log; + + server { + listen 80; + + # static files service + location / { + root html; + index index.html; + } + + # autoindex service + location /downloads/ { + autoindex on; + } + + # api service: nginx => libhv + location /api/v1/ { + proxy_pass http://127.0.0.1:8080/; + } + } +} diff --git a/3rdPartner/libhv/event/README.md b/3rdPartner/libhv/event/README.md new file mode 100644 index 0000000..d928342 --- /dev/null +++ b/3rdPartner/libhv/event/README.md @@ -0,0 +1,20 @@ +## 目录结构 + +``` +. +├── hloop.h 事件循环模块对外头文件 +├── hevent.h 事件结构体定义 +├── nlog.h 网络日志 +├── unpack.h 拆包 +├── rudp.h 可靠UDP +├── iowatcher.h IO多路复用统一抽象接口 +├── select.c EVENT_SELECT实现 +├── poll.c EVENT_POLL实现 +├── epoll.c EVENT_EPOLL实现 (for OS_LINUX) +├── iocp.c EVENT_IOCP实现 (for OS_WIN) +├── kqueue.c EVENT_KQUEUE实现(for OS_BSD/OS_MAC) +├── evport.c EVENT_PORT实现 (for OS_SOLARIS) +├── nio.c 非阻塞IO +└── overlapio.c 重叠IO + +``` diff --git a/3rdPartner/libhv/event/epoll.c b/3rdPartner/libhv/event/epoll.c new file mode 100644 index 0000000..5fc6871 --- /dev/null +++ b/3rdPartner/libhv/event/epoll.c @@ -0,0 +1,145 @@ +#include "iowatcher.h" + +#ifdef EVENT_EPOLL +#include "hplatform.h" +#include "hdef.h" +#include "hevent.h" + +#ifdef OS_WIN +#include "wepoll/wepoll.h" +typedef HANDLE epoll_handle_t; +#else +#include +typedef int epoll_handle_t; +#define epoll_close(epfd) close(epfd) +#endif + +#include "array.h" +#define EVENTS_INIT_SIZE 64 +ARRAY_DECL(struct epoll_event, events); + +typedef struct epoll_ctx_s { + epoll_handle_t epfd; + struct events events; +} epoll_ctx_t; + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + epoll_ctx_t* epoll_ctx; + HV_ALLOC_SIZEOF(epoll_ctx); + epoll_ctx->epfd = epoll_create(EVENTS_INIT_SIZE); + events_init(&epoll_ctx->events, EVENTS_INIT_SIZE); + loop->iowatcher = epoll_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + if (loop->iowatcher == NULL) return 0; + epoll_ctx_t* epoll_ctx = (epoll_ctx_t*)loop->iowatcher; + epoll_close(epoll_ctx->epfd); + events_cleanup(&epoll_ctx->events); + HV_FREE(loop->iowatcher); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + epoll_ctx_t* epoll_ctx = (epoll_ctx_t*)loop->iowatcher; + hio_t* io = loop->ios.ptr[fd]; + + struct epoll_event ee; + memset(&ee, 0, sizeof(ee)); + ee.data.fd = fd; + // pre events + if (io->events & HV_READ) { + ee.events |= EPOLLIN; + } + if (io->events & HV_WRITE) { + ee.events |= EPOLLOUT; + } + // now events + if (events & HV_READ) { + ee.events |= EPOLLIN; + } + if (events & HV_WRITE) { + ee.events |= EPOLLOUT; + } + int op = io->events == 0 ? EPOLL_CTL_ADD : EPOLL_CTL_MOD; + epoll_ctl(epoll_ctx->epfd, op, fd, &ee); + if (op == EPOLL_CTL_ADD) { + if (epoll_ctx->events.size == epoll_ctx->events.maxsize) { + events_double_resize(&epoll_ctx->events); + } + epoll_ctx->events.size++; + } + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + epoll_ctx_t* epoll_ctx = (epoll_ctx_t*)loop->iowatcher; + if (epoll_ctx == NULL) return 0; + hio_t* io = loop->ios.ptr[fd]; + + struct epoll_event ee; + memset(&ee, 0, sizeof(ee)); + ee.data.fd = fd; + // pre events + if (io->events & HV_READ) { + ee.events |= EPOLLIN; + } + if (io->events & HV_WRITE) { + ee.events |= EPOLLOUT; + } + // now events + if (events & HV_READ) { + ee.events &= ~EPOLLIN; + } + if (events & HV_WRITE) { + ee.events &= ~EPOLLOUT; + } + int op = ee.events == 0 ? EPOLL_CTL_DEL : EPOLL_CTL_MOD; + epoll_ctl(epoll_ctx->epfd, op, fd, &ee); + if (op == EPOLL_CTL_DEL) { + epoll_ctx->events.size--; + } + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + epoll_ctx_t* epoll_ctx = (epoll_ctx_t*)loop->iowatcher; + if (epoll_ctx == NULL) return 0; + if (epoll_ctx->events.size == 0) return 0; + int nepoll = epoll_wait(epoll_ctx->epfd, epoll_ctx->events.ptr, epoll_ctx->events.size, timeout); + if (nepoll < 0) { + if (errno == EINTR) { + return 0; + } + perror("epoll"); + return nepoll; + } + if (nepoll == 0) return 0; + int nevents = 0; + for (int i = 0; i < epoll_ctx->events.size; ++i) { + struct epoll_event* ee = epoll_ctx->events.ptr + i; + int fd = ee->data.fd; + uint32_t revents = ee->events; + if (revents) { + ++nevents; + hio_t* io = loop->ios.ptr[fd]; + if (io) { + if (revents & (EPOLLIN | EPOLLHUP | EPOLLERR)) { + io->revents |= HV_READ; + } + if (revents & (EPOLLOUT | EPOLLHUP | EPOLLERR)) { + io->revents |= HV_WRITE; + } + EVENT_PENDING(io); + } + } + if (nevents == nepoll) break; + } + return nevents; +} +#endif diff --git a/3rdPartner/libhv/event/evport.c b/3rdPartner/libhv/event/evport.c new file mode 100644 index 0000000..8976dec --- /dev/null +++ b/3rdPartner/libhv/event/evport.c @@ -0,0 +1,137 @@ +#include "iowatcher.h" + +#ifdef EVENT_PORT + +#include "hplatform.h" +#include "hdef.h" +#include "hevent.h" + +#include + +#define EVENTS_INIT_SIZE 64 + +typedef struct evport_ctx_s { + int port; + int capacity; + int nevents; + port_event_t* events; +} evport_ctx_t; + +static void evport_ctx_resize(evport_ctx_t* evport_ctx, int size) { + int bytes = sizeof(port_event_t) * size; + int oldbytes = sizeof(port_event_t) * evport_ctx->capacity; + evport_ctx->events = (port_event_t*)hv_realloc(evport_ctx->events, bytes, oldbytes); + evport_ctx->capacity = size; +} + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + evport_ctx_t* evport_ctx; + HV_ALLOC_SIZEOF(evport_ctx); + evport_ctx->port = port_create(); + evport_ctx->capacity = EVENTS_INIT_SIZE; + evport_ctx->nevents = 0; + int bytes = sizeof(port_event_t) * evport_ctx->capacity; + HV_ALLOC(evport_ctx->events, bytes); + loop->iowatcher = evport_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + if (loop->iowatcher == NULL) return 0; + evport_ctx_t* evport_ctx = (evport_ctx_t*)loop->iowatcher; + close(evport_ctx->port); + HV_FREE(evport_ctx->events); + HV_FREE(loop->iowatcher); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + evport_ctx_t* evport_ctx = (evport_ctx_t*)loop->iowatcher; + hio_t* io = loop->ios.ptr[fd]; + + int evport_events = 0; + if (io->events & HV_READ) { + evport_events |= POLLIN; + } + if (io->events & HV_WRITE) { + evport_events |= POLLOUT; + } + if (events & HV_READ) { + evport_events |= POLLIN; + } + if (events & HV_WRITE) { + evport_events |= POLLOUT; + } + port_associate(evport_ctx->port, PORT_SOURCE_FD, fd, evport_events, NULL); + if (io->events == 0) { + if (evport_ctx->nevents == evport_ctx->capacity) { + evport_ctx_resize(evport_ctx, evport_ctx->capacity * 2); + } + ++evport_ctx->nevents; + } + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + evport_ctx_t* evport_ctx = (evport_ctx_t*)loop->iowatcher; + if (evport_ctx == NULL) return 0; + hio_t* io = loop->ios.ptr[fd]; + + int evport_events = 0; + if (io->events & HV_READ) { + evport_events |= POLLIN; + } + if (io->events & HV_WRITE) { + evport_events |= POLLOUT; + } + if (events & HV_READ) { + evport_events &= ~POLLIN; + } + if (events & HV_WRITE) { + evport_events &= ~POLLOUT; + } + if (evport_events == 0) { + port_dissociate(evport_ctx->port, PORT_SOURCE_FD, fd); + --evport_ctx->nevents; + } else { + port_associate(evport_ctx->port, PORT_SOURCE_FD, fd, evport_events, NULL); + } + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + evport_ctx_t* evport_ctx = (evport_ctx_t*)loop->iowatcher; + if (evport_ctx == NULL) return 0; + struct timespec ts, *tp; + if (timeout == INFINITE) { + tp = NULL; + } else { + ts.tv_sec = timeout / 1000; + ts.tv_nsec = (timeout % 1000) * 1000000; + tp = &ts; + } + unsigned nevents = 1; + port_getn(evport_ctx->port, evport_ctx->events, evport_ctx->capacity, &nevents, tp); + for (int i = 0; i < nevents; ++i) { + int fd = evport_ctx->events[i].portev_object; + int revents = evport_ctx->events[i].portev_events; + hio_t* io = loop->ios.ptr[fd]; + if (io) { + if (revents & POLLIN) { + io->revents |= HV_READ; + } + if (revents & POLLOUT) { + io->revents |= HV_WRITE; + } + EVENT_PENDING(io); + } + // Upon retrieval, the event object is no longer associated with the port. + iowatcher_add_event(loop, fd, io->events); + } + return nevents; +} +#endif diff --git a/3rdPartner/libhv/event/hevent.c b/3rdPartner/libhv/event/hevent.c new file mode 100644 index 0000000..c6abf74 --- /dev/null +++ b/3rdPartner/libhv/event/hevent.c @@ -0,0 +1,939 @@ +#include "hevent.h" +#include "hsocket.h" +#include "hatomic.h" +#include "hlog.h" +#include "herr.h" + +#include "unpack.h" + +uint64_t hloop_next_event_id() { + static hatomic_t s_id = HATOMIC_VAR_INIT(0); + return ++s_id; +} + +uint32_t hio_next_id() { + static hatomic_t s_id = HATOMIC_VAR_INIT(0); + return ++s_id; +} + +static void fill_io_type(hio_t* io) { + int type = 0; + socklen_t optlen = sizeof(int); + int ret = getsockopt(io->fd, SOL_SOCKET, SO_TYPE, (char*)&type, &optlen); + printd("getsockopt SO_TYPE fd=%d ret=%d type=%d errno=%d\n", io->fd, ret, type, socket_errno()); + if (ret == 0) { + switch (type) { + case SOCK_STREAM: io->io_type = HIO_TYPE_TCP; break; + case SOCK_DGRAM: io->io_type = HIO_TYPE_UDP; break; + case SOCK_RAW: io->io_type = HIO_TYPE_IP; break; + default: io->io_type = HIO_TYPE_SOCKET; break; + } + } + else if (socket_errno() == ENOTSOCK) { + switch (io->fd) { + case 0: io->io_type = HIO_TYPE_STDIN; break; + case 1: io->io_type = HIO_TYPE_STDOUT; break; + case 2: io->io_type = HIO_TYPE_STDERR; break; + default: io->io_type = HIO_TYPE_FILE; break; + } + } + else { + io->io_type = HIO_TYPE_TCP; + } +} + +static void hio_socket_init(hio_t* io) { + if ((io->io_type & HIO_TYPE_SOCK_DGRAM) || (io->io_type & HIO_TYPE_SOCK_RAW)) { + // NOTE: sendto multiple peeraddr cannot use io->write_queue + blocking(io->fd); + } else { + nonblocking(io->fd); + } + // fill io->localaddr io->peeraddr + if (io->localaddr == NULL) { + HV_ALLOC(io->localaddr, sizeof(sockaddr_u)); + } + if (io->peeraddr == NULL) { + HV_ALLOC(io->peeraddr, sizeof(sockaddr_u)); + } + socklen_t addrlen = sizeof(sockaddr_u); + int ret = getsockname(io->fd, io->localaddr, &addrlen); + printd("getsockname fd=%d ret=%d errno=%d\n", io->fd, ret, socket_errno()); + // NOTE: udp peeraddr set by recvfrom/sendto + if (io->io_type & HIO_TYPE_SOCK_STREAM) { + addrlen = sizeof(sockaddr_u); + ret = getpeername(io->fd, io->peeraddr, &addrlen); + printd("getpeername fd=%d ret=%d errno=%d\n", io->fd, ret, socket_errno()); + } +} + +void hio_init(hio_t* io) { + // alloc localaddr,peeraddr when hio_socket_init + /* + if (io->localaddr == NULL) { + HV_ALLOC(io->localaddr, sizeof(sockaddr_u)); + } + if (io->peeraddr == NULL) { + HV_ALLOC(io->peeraddr, sizeof(sockaddr_u)); + } + */ + + // write_queue init when hwrite try_write failed + // write_queue_init(&io->write_queue, 4); + + hrecursive_mutex_init(&io->write_mutex); +} + +void hio_ready(hio_t* io) { + if (io->ready) return; + // flags + io->ready = 1; + io->connected = 0; + io->closed = 0; + io->accept = io->connect = io->connectex = 0; + io->recv = io->send = 0; + io->recvfrom = io->sendto = 0; + io->close = 0; + // public: + io->id = hio_next_id(); + io->io_type = HIO_TYPE_UNKNOWN; + io->error = 0; + io->events = io->revents = 0; + io->last_read_hrtime = io->last_write_hrtime = io->loop->cur_hrtime; + // readbuf + io->alloced_readbuf = 0; + hio_use_loop_readbuf(io); + io->readbuf.head = io->readbuf.tail = 0; + io->read_flags = 0; + io->read_until_length = 0; + io->max_read_bufsize = MAX_READ_BUFSIZE; + io->small_readbytes_cnt = 0; + // write_queue + io->write_bufsize = 0; + io->max_write_bufsize = MAX_WRITE_BUFSIZE; + // callbacks + io->read_cb = NULL; + io->write_cb = NULL; + io->close_cb = NULL; + io->accept_cb = NULL; + io->connect_cb = NULL; + // timers + io->connect_timeout = 0; + io->connect_timer = NULL; + io->close_timeout = 0; + io->close_timer = NULL; + io->read_timeout = 0; + io->read_timer = NULL; + io->write_timeout = 0; + io->write_timer = NULL; + io->keepalive_timeout = 0; + io->keepalive_timer = NULL; + io->heartbeat_interval = 0; + io->heartbeat_fn = NULL; + io->heartbeat_timer = NULL; + // upstream + io->upstream_io = NULL; + // unpack + io->unpack_setting = NULL; + // ssl + io->ssl = NULL; + io->ssl_ctx = NULL; + io->alloced_ssl_ctx = 0; + io->hostname = NULL; + // context + io->ctx = NULL; + // private: +#if defined(EVENT_POLL) || defined(EVENT_KQUEUE) + io->event_index[0] = io->event_index[1] = -1; +#endif +#ifdef EVENT_IOCP + io->hovlp = NULL; +#endif + + // io_type + fill_io_type(io); + if (io->io_type & HIO_TYPE_SOCKET) { + hio_socket_init(io); + } + +#if WITH_RUDP + if ((io->io_type & HIO_TYPE_SOCK_DGRAM) || (io->io_type & HIO_TYPE_SOCK_RAW)) { + rudp_init(&io->rudp); + } +#endif +} + +void hio_done(hio_t* io) { + if (!io->ready) return; + io->ready = 0; + + hio_del(io, HV_RDWR); + + // readbuf + hio_free_readbuf(io); + + // write_queue + offset_buf_t* pbuf = NULL; + hrecursive_mutex_lock(&io->write_mutex); + while (!write_queue_empty(&io->write_queue)) { + pbuf = write_queue_front(&io->write_queue); + HV_FREE(pbuf->base); + write_queue_pop_front(&io->write_queue); + } + write_queue_cleanup(&io->write_queue); + hrecursive_mutex_unlock(&io->write_mutex); + +#if WITH_RUDP + if ((io->io_type & HIO_TYPE_SOCK_DGRAM) || (io->io_type & HIO_TYPE_SOCK_RAW)) { + rudp_cleanup(&io->rudp); + } +#endif +} + +void hio_free(hio_t* io) { + if (io == NULL || io->destroy) return; + io->destroy = 1; + hio_close(io); + hrecursive_mutex_destroy(&io->write_mutex); + HV_FREE(io->localaddr); + HV_FREE(io->peeraddr); + HV_FREE(io); +} + +bool hio_is_opened(hio_t* io) { + if (io == NULL) return false; + return io->ready == 1 && io->closed == 0; +} + +bool hio_is_connected(hio_t* io) { + if (io == NULL) return false; + return io->ready == 1 && io->connected == 1 && io->closed == 0; +} + +bool hio_is_closed(hio_t* io) { + if (io == NULL) return true; + return io->ready == 0 && io->closed == 1; +} + +uint32_t hio_id (hio_t* io) { + return io->id; +} + +int hio_fd(hio_t* io) { + return io->fd; +} + +hio_type_e hio_type(hio_t* io) { + return io->io_type; +} + +int hio_error(hio_t* io) { + return io->error; +} + +int hio_events(hio_t* io) { + return io->events; +} + +int hio_revents(hio_t* io) { + return io->revents; +} + +struct sockaddr* hio_localaddr(hio_t* io) { + return io->localaddr; +} + +struct sockaddr* hio_peeraddr(hio_t* io) { + return io->peeraddr; +} + +void hio_set_context(hio_t* io, void* ctx) { + io->ctx = ctx; +} + +void* hio_context(hio_t* io) { + return io->ctx; +} + +haccept_cb hio_getcb_accept(hio_t* io) { + return io->accept_cb; +} + +hconnect_cb hio_getcb_connect(hio_t* io) { + return io->connect_cb; +} + +hread_cb hio_getcb_read(hio_t* io) { + return io->read_cb; +} + +hwrite_cb hio_getcb_write(hio_t* io) { + return io->write_cb; +} + +hclose_cb hio_getcb_close(hio_t* io) { + return io->close_cb; +} + +void hio_setcb_accept(hio_t* io, haccept_cb accept_cb) { + io->accept_cb = accept_cb; +} + +void hio_setcb_connect(hio_t* io, hconnect_cb connect_cb) { + io->connect_cb = connect_cb; +} + +void hio_setcb_read(hio_t* io, hread_cb read_cb) { + io->read_cb = read_cb; +} + +void hio_setcb_write(hio_t* io, hwrite_cb write_cb) { + io->write_cb = write_cb; +} + +void hio_setcb_close(hio_t* io, hclose_cb close_cb) { + io->close_cb = close_cb; +} + +void hio_accept_cb(hio_t* io) { + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("accept connfd=%d [%s] <= [%s]\n", io->fd, + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + */ + if (io->accept_cb) { + // printd("accept_cb------\n"); + io->accept_cb(io); + // printd("accept_cb======\n"); + } +} + +void hio_connect_cb(hio_t* io) { + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("connect connfd=%d [%s] => [%s]\n", io->fd, + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + */ + io->connected = 1; + if (io->connect_cb) { + // printd("connect_cb------\n"); + io->connect_cb(io); + // printd("connect_cb======\n"); + } +} + +void hio_handle_read(hio_t* io, void* buf, int readbytes) { +#if WITH_KCP + if (io->io_type == HIO_TYPE_KCP) { + hio_read_kcp(io, buf, readbytes); + io->readbuf.head = io->readbuf.tail = 0; + return; + } +#endif + + if (io->unpack_setting) { + // hio_set_unpack + hio_unpack(io, buf, readbytes); + } else { + const unsigned char* sp = (const unsigned char*)io->readbuf.base + io->readbuf.head; + const unsigned char* ep = (const unsigned char*)buf + readbytes; + if (io->read_flags & HIO_READ_UNTIL_LENGTH) { + // hio_read_until_length + if (ep - sp >= io->read_until_length) { + io->readbuf.head += io->read_until_length; + if (io->readbuf.head == io->readbuf.tail) { + io->readbuf.head = io->readbuf.tail = 0; + } + io->read_flags &= ~HIO_READ_UNTIL_LENGTH; + hio_read_cb(io, (void*)sp, io->read_until_length); + } + } else if (io->read_flags & HIO_READ_UNTIL_DELIM) { + // hio_read_until_delim + const unsigned char* p = (const unsigned char*)buf; + for (int i = 0; i < readbytes; ++i, ++p) { + if (*p == io->read_until_delim) { + int len = p - sp + 1; + io->readbuf.head += len; + if (io->readbuf.head == io->readbuf.tail) { + io->readbuf.head = io->readbuf.tail = 0; + } + io->read_flags &= ~HIO_READ_UNTIL_DELIM; + hio_read_cb(io, (void*)sp, len); + return; + } + } + } else { + // hio_read + io->readbuf.head = io->readbuf.tail = 0; + hio_read_cb(io, (void*)sp, ep - sp); + } + } + + if (io->readbuf.head == io->readbuf.tail) { + io->readbuf.head = io->readbuf.tail = 0; + } + // readbuf autosize + if (io->readbuf.tail == io->readbuf.len) { + if (io->readbuf.head == 0) { + // scale up * 2 + hio_alloc_readbuf(io, io->readbuf.len * 2); + } else { + hio_memmove_readbuf(io); + } + } else { + size_t small_size = io->readbuf.len / 2; + if (io->readbuf.tail < small_size && + io->small_readbytes_cnt >= 3) { + // scale down / 2 + hio_alloc_readbuf(io, small_size); + } + } +} + +void hio_read_cb(hio_t* io, void* buf, int len) { + if (io->read_flags & HIO_READ_ONCE) { + io->read_flags &= ~HIO_READ_ONCE; + hio_read_stop(io); + } + + if (io->read_cb) { + // printd("read_cb------\n"); + io->read_cb(io, buf, len); + // printd("read_cb======\n"); + } + + // for readbuf autosize + if (hio_is_alloced_readbuf(io) && io->readbuf.len > READ_BUFSIZE_HIGH_WATER) { + size_t small_size = io->readbuf.len / 2; + if (len < small_size) { + ++io->small_readbytes_cnt; + } else { + io->small_readbytes_cnt = 0; + } + } +} + +void hio_write_cb(hio_t* io, const void* buf, int len) { + if (io->write_cb) { + // printd("write_cb------\n"); + io->write_cb(io, buf, len); + // printd("write_cb======\n"); + } +} + +void hio_close_cb(hio_t* io) { + io->connected = 0; + io->closed = 1; + if (io->close_cb) { + // printd("close_cb------\n"); + io->close_cb(io); + // printd("close_cb======\n"); + } +} + +void hio_set_type(hio_t* io, hio_type_e type) { + io->io_type = type; +} + +void hio_set_localaddr(hio_t* io, struct sockaddr* addr, int addrlen) { + if (io->localaddr == NULL) { + HV_ALLOC(io->localaddr, sizeof(sockaddr_u)); + } + memcpy(io->localaddr, addr, addrlen); +} + +void hio_set_peeraddr (hio_t* io, struct sockaddr* addr, int addrlen) { + if (io->peeraddr == NULL) { + HV_ALLOC(io->peeraddr, sizeof(sockaddr_u)); + } + memcpy(io->peeraddr, addr, addrlen); +} + +int hio_enable_ssl(hio_t* io) { + io->io_type = HIO_TYPE_SSL; + return 0; +} + +bool hio_is_ssl(hio_t* io) { + return io->io_type == HIO_TYPE_SSL; +} + +hssl_t hio_get_ssl(hio_t* io) { + return io->ssl; +} + +hssl_ctx_t hio_get_ssl_ctx(hio_t* io) { + return io->ssl_ctx; +} + +int hio_set_ssl(hio_t* io, hssl_t ssl) { + io->io_type = HIO_TYPE_SSL; + io->ssl = ssl; + return 0; +} + +int hio_set_ssl_ctx(hio_t* io, hssl_ctx_t ssl_ctx) { + io->io_type = HIO_TYPE_SSL; + io->ssl_ctx = ssl_ctx; + return 0; +} + +int hio_new_ssl_ctx(hio_t* io, hssl_ctx_opt_t* opt) { + hssl_ctx_t ssl_ctx = hssl_ctx_new(opt); + if (ssl_ctx == NULL) return ERR_NEW_SSL_CTX; + io->alloced_ssl_ctx = 1; + return hio_set_ssl_ctx(io, ssl_ctx); +} + +int hio_set_hostname(hio_t* io, const char* hostname) { + SAFE_FREE(io->hostname); + io->hostname = strdup(hostname); + return 0; +} + +const char* hio_get_hostname(hio_t* io) { + return io->hostname; +} + +void hio_del_connect_timer(hio_t* io) { + if (io->connect_timer) { + htimer_del(io->connect_timer); + io->connect_timer = NULL; + io->connect_timeout = 0; + } +} + +void hio_del_close_timer(hio_t* io) { + if (io->close_timer) { + htimer_del(io->close_timer); + io->close_timer = NULL; + io->close_timeout = 0; + } +} + +void hio_del_read_timer(hio_t* io) { + if (io->read_timer) { + htimer_del(io->read_timer); + io->read_timer = NULL; + io->read_timeout = 0; + } +} + +void hio_del_write_timer(hio_t* io) { + if (io->write_timer) { + htimer_del(io->write_timer); + io->write_timer = NULL; + io->write_timeout = 0; + } +} + +void hio_del_keepalive_timer(hio_t* io) { + if (io->keepalive_timer) { + htimer_del(io->keepalive_timer); + io->keepalive_timer = NULL; + io->keepalive_timeout = 0; + } +} + +void hio_del_heartbeat_timer(hio_t* io) { + if (io->heartbeat_timer) { + htimer_del(io->heartbeat_timer); + io->heartbeat_timer = NULL; + io->heartbeat_interval = 0; + io->heartbeat_fn = NULL; + } +} + +void hio_set_connect_timeout(hio_t* io, int timeout_ms) { + io->connect_timeout = timeout_ms; +} + +void hio_set_close_timeout(hio_t* io, int timeout_ms) { + io->close_timeout = timeout_ms; +} + +static void __read_timeout_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + uint64_t inactive_ms = (io->loop->cur_hrtime - io->last_read_hrtime) / 1000; + if (inactive_ms + 100 < io->read_timeout) { + htimer_reset(io->read_timer, io->read_timeout - inactive_ms); + } else { + if (io->io_type & HIO_TYPE_SOCKET) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + hlogw("read timeout [%s] <=> [%s]", + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + } + io->error = ETIMEDOUT; + hio_close(io); + } +} + +void hio_set_read_timeout(hio_t* io, int timeout_ms) { + if (timeout_ms <= 0) { + // del + hio_del_read_timer(io); + return; + } + + if (io->read_timer) { + // reset + htimer_reset(io->read_timer, timeout_ms); + } else { + // add + io->read_timer = htimer_add(io->loop, __read_timeout_cb, timeout_ms, 1); + io->read_timer->privdata = io; + } + io->read_timeout = timeout_ms; +} + +static void __write_timeout_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + uint64_t inactive_ms = (io->loop->cur_hrtime - io->last_write_hrtime) / 1000; + if (inactive_ms + 100 < io->write_timeout) { + htimer_reset(io->write_timer, io->write_timeout - inactive_ms); + } else { + if (io->io_type & HIO_TYPE_SOCKET) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + hlogw("write timeout [%s] <=> [%s]", + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + } + io->error = ETIMEDOUT; + hio_close(io); + } +} + +void hio_set_write_timeout(hio_t* io, int timeout_ms) { + if (timeout_ms <= 0) { + // del + hio_del_write_timer(io); + return; + } + + if (io->write_timer) { + // reset + htimer_reset(io->write_timer, timeout_ms); + } else { + // add + io->write_timer = htimer_add(io->loop, __write_timeout_cb, timeout_ms, 1); + io->write_timer->privdata = io; + } + io->write_timeout = timeout_ms; +} + +static void __keepalive_timeout_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + uint64_t last_rw_hrtime = MAX(io->last_read_hrtime, io->last_write_hrtime); + uint64_t inactive_ms = (io->loop->cur_hrtime - last_rw_hrtime) / 1000; + if (inactive_ms + 100 < io->keepalive_timeout) { + htimer_reset(io->keepalive_timer, io->keepalive_timeout - inactive_ms); + } else { + if (io->io_type & HIO_TYPE_SOCKET) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + hlogw("keepalive timeout [%s] <=> [%s]", + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + } + io->error = ETIMEDOUT; + hio_close(io); + } +} + +void hio_set_keepalive_timeout(hio_t* io, int timeout_ms) { + if (timeout_ms <= 0) { + // del + hio_del_keepalive_timer(io); + return; + } + + if (io->keepalive_timer) { + // reset + htimer_reset(io->keepalive_timer, timeout_ms); + } else { + // add + io->keepalive_timer = htimer_add(io->loop, __keepalive_timeout_cb, timeout_ms, 1); + io->keepalive_timer->privdata = io; + } + io->keepalive_timeout = timeout_ms; +} + +static void __heartbeat_timer_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + if (io && io->heartbeat_fn) { + io->heartbeat_fn(io); + } +} + +void hio_set_heartbeat(hio_t* io, int interval_ms, hio_send_heartbeat_fn fn) { + if (interval_ms <= 0) { + // del + hio_del_heartbeat_timer(io); + return; + } + + if (io->heartbeat_timer) { + // reset + htimer_reset(io->heartbeat_timer, interval_ms); + } else { + // add + io->heartbeat_timer = htimer_add(io->loop, __heartbeat_timer_cb, interval_ms, INFINITE); + io->heartbeat_timer->privdata = io; + } + io->heartbeat_interval = interval_ms; + io->heartbeat_fn = fn; +} + +//-----------------iobuf--------------------------------------------- +void hio_alloc_readbuf(hio_t* io, int len) { + if (len > io->max_read_bufsize) { + hloge("read bufsize > %u, close it!", io->max_read_bufsize); + io->error = ERR_OVER_LIMIT; + hio_close_async(io); + return; + } + if (hio_is_alloced_readbuf(io)) { + io->readbuf.base = (char*)hv_realloc(io->readbuf.base, len, io->readbuf.len); + } else { + HV_ALLOC(io->readbuf.base, len); + } + io->readbuf.len = len; + io->alloced_readbuf = 1; + io->small_readbytes_cnt = 0; +} + +void hio_free_readbuf(hio_t* io) { + if (hio_is_alloced_readbuf(io)) { + HV_FREE(io->readbuf.base); + io->alloced_readbuf = 0; + // reset to loop->readbuf + io->readbuf.base = io->loop->readbuf.base; + io->readbuf.len = io->loop->readbuf.len; + } +} + +void hio_memmove_readbuf(hio_t* io) { + fifo_buf_t* buf = &io->readbuf; + if (buf->tail == buf->head) { + buf->head = buf->tail = 0; + return; + } + if (buf->tail > buf->head) { + size_t size = buf->tail - buf->head; + // [head, tail] => [0, tail - head] + memmove(buf->base, buf->base + buf->head, size); + buf->head = 0; + buf->tail = size; + } +} + +void hio_set_readbuf(hio_t* io, void* buf, size_t len) { + assert(io && buf && len != 0); + hio_free_readbuf(io); + io->readbuf.base = (char*)buf; + io->readbuf.len = len; + io->readbuf.head = io->readbuf.tail = 0; + io->alloced_readbuf = 0; +} + +hio_readbuf_t* hio_get_readbuf(hio_t* io) { + return &io->readbuf; +} + +void hio_set_max_read_bufsize (hio_t* io, uint32_t size) { + io->max_read_bufsize = size; +} + +void hio_set_max_write_bufsize(hio_t* io, uint32_t size) { + io->max_write_bufsize = size; +} + +size_t hio_write_bufsize(hio_t* io) { + return io->write_bufsize; +} + +int hio_read_once (hio_t* io) { + io->read_flags |= HIO_READ_ONCE; + return hio_read_start(io); +} + +int hio_read_until_length(hio_t* io, unsigned int len) { + if (len == 0) return 0; + if (io->readbuf.tail - io->readbuf.head >= len) { + void* buf = io->readbuf.base + io->readbuf.head; + io->readbuf.head += len; + if (io->readbuf.head == io->readbuf.tail) { + io->readbuf.head = io->readbuf.tail = 0; + } + hio_read_cb(io, buf, len); + return len; + } + io->read_flags = HIO_READ_UNTIL_LENGTH; + io->read_until_length = len; + if (io->readbuf.head > 1024 || io->readbuf.tail - io->readbuf.head < 1024) { + hio_memmove_readbuf(io); + } + // NOTE: prepare readbuf + int need_len = io->readbuf.head + len; + if (hio_is_loop_readbuf(io) || + io->readbuf.len < need_len) { + hio_alloc_readbuf(io, need_len); + } + return hio_read_once(io); +} + +int hio_read_until_delim(hio_t* io, unsigned char delim) { + if (io->readbuf.tail - io->readbuf.head > 0) { + const unsigned char* sp = (const unsigned char*)io->readbuf.base + io->readbuf.head; + const unsigned char* ep = (const unsigned char*)io->readbuf.base + io->readbuf.tail; + const unsigned char* p = sp; + while (p <= ep) { + if (*p == delim) { + int len = p - sp + 1; + io->readbuf.head += len; + if (io->readbuf.head == io->readbuf.tail) { + io->readbuf.head = io->readbuf.tail = 0; + } + hio_read_cb(io, (void*)sp, len); + return len; + } + ++p; + } + } + io->read_flags = HIO_READ_UNTIL_DELIM; + io->read_until_length = delim; + // NOTE: prepare readbuf + if (hio_is_loop_readbuf(io) || + io->readbuf.len < HLOOP_READ_BUFSIZE) { + hio_alloc_readbuf(io, HLOOP_READ_BUFSIZE); + } + return hio_read_once(io); +} + +int hio_read_remain(hio_t* io) { + int remain = io->readbuf.tail - io->readbuf.head; + if (remain > 0) { + void* buf = io->readbuf.base + io->readbuf.head; + io->readbuf.head = io->readbuf.tail = 0; + hio_read_cb(io, buf, remain); + } + return remain; +} + +//-----------------unpack--------------------------------------------- +void hio_set_unpack(hio_t* io, unpack_setting_t* setting) { + hio_unset_unpack(io); + if (setting == NULL) return; + + io->unpack_setting = setting; + if (io->unpack_setting->package_max_length == 0) { + io->unpack_setting->package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + } + if (io->unpack_setting->mode == UNPACK_BY_FIXED_LENGTH) { + assert(io->unpack_setting->fixed_length != 0 && + io->unpack_setting->fixed_length <= io->unpack_setting->package_max_length); + } + else if (io->unpack_setting->mode == UNPACK_BY_DELIMITER) { + if (io->unpack_setting->delimiter_bytes == 0) { + io->unpack_setting->delimiter_bytes = strlen((char*)io->unpack_setting->delimiter); + } + } + else if (io->unpack_setting->mode == UNPACK_BY_LENGTH_FIELD) { + assert(io->unpack_setting->body_offset >= + io->unpack_setting->length_field_offset + + io->unpack_setting->length_field_bytes); + } + + // NOTE: unpack must have own readbuf + if (io->unpack_setting->mode == UNPACK_BY_FIXED_LENGTH) { + io->readbuf.len = io->unpack_setting->fixed_length; + } else { + io->readbuf.len = MIN(HLOOP_READ_BUFSIZE, io->unpack_setting->package_max_length); + } + io->max_read_bufsize = io->unpack_setting->package_max_length; + hio_alloc_readbuf(io, io->readbuf.len); +} + +void hio_unset_unpack(hio_t* io) { + if (io->unpack_setting) { + io->unpack_setting = NULL; + // NOTE: unpack has own readbuf + hio_free_readbuf(io); + } +} + +//-----------------upstream--------------------------------------------- +void hio_read_upstream(hio_t* io) { + hio_t* upstream_io = io->upstream_io; + if (upstream_io) { + hio_read(io); + hio_read(upstream_io); + } +} + +void hio_read_upstream_on_write_complete(hio_t* io, const void* buf, int writebytes) { + hio_t* upstream_io = io->upstream_io; + if (upstream_io && hio_write_is_complete(io)) { + hio_setcb_write(io, NULL); + hio_read(upstream_io); + } +} + +void hio_write_upstream(hio_t* io, void* buf, int bytes) { + hio_t* upstream_io = io->upstream_io; + if (upstream_io) { + int nwrite = hio_write(upstream_io, buf, bytes); + // if (!hio_write_is_complete(upstream_io)) { + if (nwrite >= 0 && nwrite < bytes) { + hio_read_stop(io); + hio_setcb_write(upstream_io, hio_read_upstream_on_write_complete); + } + } +} + +void hio_close_upstream(hio_t* io) { + hio_t* upstream_io = io->upstream_io; + if (upstream_io) { + hio_close(upstream_io); + } +} + +void hio_setup_upstream(hio_t* io1, hio_t* io2) { + io1->upstream_io = io2; + io2->upstream_io = io1; +} + +hio_t* hio_get_upstream(hio_t* io) { + return io->upstream_io; +} + +hio_t* hio_setup_tcp_upstream(hio_t* io, const char* host, int port, int ssl) { + hio_t* upstream_io = hio_create_socket(io->loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (upstream_io == NULL) return NULL; + if (ssl) hio_enable_ssl(upstream_io); + hio_setup_upstream(io, upstream_io); + hio_setcb_read(io, hio_write_upstream); + hio_setcb_read(upstream_io, hio_write_upstream); + hio_setcb_close(io, hio_close_upstream); + hio_setcb_close(upstream_io, hio_close_upstream); + hio_setcb_connect(upstream_io, hio_read_upstream); + hio_connect(upstream_io); + return upstream_io; +} + +hio_t* hio_setup_udp_upstream(hio_t* io, const char* host, int port) { + hio_t* upstream_io = hio_create_socket(io->loop, host, port, HIO_TYPE_UDP, HIO_CLIENT_SIDE); + if (upstream_io == NULL) return NULL; + hio_setup_upstream(io, upstream_io); + hio_setcb_read(io, hio_write_upstream); + hio_setcb_read(upstream_io, hio_write_upstream); + hio_read_upstream(io); + return upstream_io; +} diff --git a/3rdPartner/libhv/event/hevent.h b/3rdPartner/libhv/event/hevent.h new file mode 100644 index 0000000..5fec7c9 --- /dev/null +++ b/3rdPartner/libhv/event/hevent.h @@ -0,0 +1,291 @@ +#ifndef HV_EVENT_H_ +#define HV_EVENT_H_ + +#include "hloop.h" +#include "iowatcher.h" +#include "rudp.h" + +#include "hbuf.h" +#include "hmutex.h" + +#include "array.h" +#include "list.h" +#include "heap.h" +#include "queue.h" + +#define HLOOP_READ_BUFSIZE 8192 // 8K +#define READ_BUFSIZE_HIGH_WATER 65536 // 64K +#define WRITE_BUFSIZE_HIGH_WATER (1U << 23) // 8M +#define MAX_READ_BUFSIZE (1U << 24) // 16M +#define MAX_WRITE_BUFSIZE (1U << 24) // 16M + +// hio_read_flags +#define HIO_READ_ONCE 0x1 +#define HIO_READ_UNTIL_LENGTH 0x2 +#define HIO_READ_UNTIL_DELIM 0x4 + +ARRAY_DECL(hio_t*, io_array); +QUEUE_DECL(hevent_t, event_queue); + +struct hloop_s { + uint32_t flags; + hloop_status_e status; + uint64_t start_ms; // ms + uint64_t start_hrtime; // us + uint64_t end_hrtime; + uint64_t cur_hrtime; + uint64_t loop_cnt; + long pid; + long tid; + void* userdata; +//private: + // events + uint32_t intern_nevents; + uint32_t nactives; + uint32_t npendings; + // pendings: with priority as array.index + hevent_t* pendings[HEVENT_PRIORITY_SIZE]; + // idles + struct list_head idles; + uint32_t nidles; + // timers + struct heap timers; // monotonic time + struct heap realtimers; // realtime + uint32_t ntimers; + // ios: with fd as array.index + struct io_array ios; + uint32_t nios; + // one loop per thread, so one readbuf per loop is OK. + hbuf_t readbuf; + void* iowatcher; + // custom_events + int eventfds[2]; + event_queue custom_events; + hmutex_t custom_events_mutex; +}; + +uint64_t hloop_next_event_id(); + +struct hidle_s { + HEVENT_FIELDS + uint32_t repeat; +//private: + struct list_node node; +}; + +#define HTIMER_FIELDS \ + HEVENT_FIELDS \ + uint32_t repeat; \ + uint64_t next_timeout; \ + struct heap_node node; + +struct htimer_s { + HTIMER_FIELDS +}; + +struct htimeout_s { + HTIMER_FIELDS + uint32_t timeout; \ +}; + +struct hperiod_s { + HTIMER_FIELDS + int8_t minute; + int8_t hour; + int8_t day; + int8_t week; + int8_t month; +}; + +QUEUE_DECL(offset_buf_t, write_queue); +// sizeof(struct hio_s)=416 on linux-x64 +struct hio_s { + HEVENT_FIELDS + // flags + unsigned ready :1; + unsigned connected :1; + unsigned closed :1; + unsigned accept :1; + unsigned connect :1; + unsigned connectex :1; // for ConnectEx/DisconnectEx + unsigned recv :1; + unsigned send :1; + unsigned recvfrom :1; + unsigned sendto :1; + unsigned close :1; + unsigned alloced_readbuf :1; // for hio_alloc_readbuf + unsigned alloced_ssl_ctx :1; // for hio_new_ssl_ctx +// public: + hio_type_e io_type; + uint32_t id; // fd cannot be used as unique identifier, so we provide an id + int fd; + int error; + int events; + int revents; + struct sockaddr* localaddr; + struct sockaddr* peeraddr; + uint64_t last_read_hrtime; + uint64_t last_write_hrtime; + // read + fifo_buf_t readbuf; + unsigned int read_flags; + // for hio_read_until + union { + unsigned int read_until_length; + unsigned char read_until_delim; + }; + uint32_t max_read_bufsize; + uint32_t small_readbytes_cnt; // for readbuf autosize + // write + struct write_queue write_queue; + hrecursive_mutex_t write_mutex; // lock write and write_queue + uint32_t write_bufsize; + uint32_t max_write_bufsize; + // callbacks + hread_cb read_cb; + hwrite_cb write_cb; + hclose_cb close_cb; + haccept_cb accept_cb; + hconnect_cb connect_cb; + // timers + int connect_timeout; // ms + int close_timeout; // ms + int read_timeout; // ms + int write_timeout; // ms + int keepalive_timeout; // ms + int heartbeat_interval; // ms + hio_send_heartbeat_fn heartbeat_fn; + htimer_t* connect_timer; + htimer_t* close_timer; + htimer_t* read_timer; + htimer_t* write_timer; + htimer_t* keepalive_timer; + htimer_t* heartbeat_timer; + // upstream + struct hio_s* upstream_io; // for hio_setup_upstream + // unpack + unpack_setting_t* unpack_setting; // for hio_set_unpack + // ssl + void* ssl; // for hio_set_ssl + void* ssl_ctx; // for hio_set_ssl_ctx + char* hostname; // for hssl_set_sni_hostname + // context + void* ctx; // for hio_context / hio_set_context +// private: +#if defined(EVENT_POLL) || defined(EVENT_KQUEUE) + int event_index[2]; // for poll,kqueue +#endif + +#ifdef EVENT_IOCP + void* hovlp; // for iocp/overlapio +#endif + +#if WITH_RUDP + rudp_t rudp; +#if WITH_KCP + kcp_setting_t* kcp_setting; +#endif +#endif +}; +/* + * hio lifeline: + * + * fd => + * hio_get => HV_ALLOC_SIZEOF(io) => hio_init => hio_ready + * + * hio_read => hio_add(HV_READ) => hio_read_cb + * hio_write => hio_add(HV_WRITE) => hio_write_cb + * hio_close => hio_done => hio_del(HV_RDWR) => hio_close_cb + * + * hloop_stop => hloop_free => hio_free => HV_FREE(io) + */ +void hio_init(hio_t* io); +void hio_ready(hio_t* io); +void hio_done(hio_t* io); +void hio_free(hio_t* io); +uint32_t hio_next_id(); + +void hio_accept_cb(hio_t* io); +void hio_connect_cb(hio_t* io); +void hio_handle_read(hio_t* io, void* buf, int readbytes); +void hio_read_cb(hio_t* io, void* buf, int len); +void hio_write_cb(hio_t* io, const void* buf, int len); +void hio_close_cb(hio_t* io); + +void hio_del_connect_timer(hio_t* io); +void hio_del_close_timer(hio_t* io); +void hio_del_read_timer(hio_t* io); +void hio_del_write_timer(hio_t* io); +void hio_del_keepalive_timer(hio_t* io); +void hio_del_heartbeat_timer(hio_t* io); + +static inline void hio_use_loop_readbuf(hio_t* io) { + hloop_t* loop = io->loop; + if (loop->readbuf.len == 0) { + loop->readbuf.len = HLOOP_READ_BUFSIZE; + HV_ALLOC(loop->readbuf.base, loop->readbuf.len); + } + io->readbuf.base = loop->readbuf.base; + io->readbuf.len = loop->readbuf.len; +} +static inline bool hio_is_loop_readbuf(hio_t* io) { + return io->readbuf.base == io->loop->readbuf.base; +} +static inline bool hio_is_alloced_readbuf(hio_t* io) { + return io->alloced_readbuf; +} +void hio_alloc_readbuf(hio_t* io, int len); +void hio_free_readbuf(hio_t* io); +void hio_memmove_readbuf(hio_t* io); + +#define EVENT_ENTRY(p) container_of(p, hevent_t, pending_node) +#define IDLE_ENTRY(p) container_of(p, hidle_t, node) +#define TIMER_ENTRY(p) container_of(p, htimer_t, node) + +#define EVENT_ACTIVE(ev) \ + if (!ev->active) {\ + ev->active = 1;\ + ev->loop->nactives++;\ + }\ + +#define EVENT_INACTIVE(ev) \ + if (ev->active) {\ + ev->active = 0;\ + ev->loop->nactives--;\ + }\ + +#define EVENT_PENDING(ev) \ + do {\ + if (!ev->pending) {\ + ev->pending = 1;\ + ev->loop->npendings++;\ + hevent_t** phead = &ev->loop->pendings[HEVENT_PRIORITY_INDEX(ev->priority)];\ + ev->pending_next = *phead;\ + *phead = (hevent_t*)ev;\ + }\ + } while(0) + +#define EVENT_ADD(loop, ev, cb) \ + do {\ + ev->loop = loop;\ + ev->event_id = hloop_next_event_id();\ + ev->cb = (hevent_cb)cb;\ + EVENT_ACTIVE(ev);\ + } while(0) + +#define EVENT_DEL(ev) \ + do {\ + EVENT_INACTIVE(ev);\ + if (!ev->pending) {\ + HV_FREE(ev);\ + }\ + } while(0) + +#define EVENT_RESET(ev) \ + do {\ + ev->destroy = 0;\ + EVENT_ACTIVE(ev);\ + ev->pending = 0;\ + } while(0) + +#endif // HV_EVENT_H_ diff --git a/3rdPartner/libhv/event/hloop.c b/3rdPartner/libhv/event/hloop.c new file mode 100644 index 0000000..3937730 --- /dev/null +++ b/3rdPartner/libhv/event/hloop.c @@ -0,0 +1,1027 @@ +#include "hloop.h" +#include "hevent.h" +#include "iowatcher.h" + +#include "hdef.h" +#include "hbase.h" +#include "hlog.h" +#include "hmath.h" +#include "htime.h" +#include "hsocket.h" +#include "hthread.h" + +#if defined(OS_UNIX) && HAVE_EVENTFD +#include "sys/eventfd.h" +#endif + +#define HLOOP_PAUSE_TIME 10 // ms +#define HLOOP_MAX_BLOCK_TIME 100 // ms +#define HLOOP_STAT_TIMEOUT 60000 // ms + +#define IO_ARRAY_INIT_SIZE 1024 +#define CUSTOM_EVENT_QUEUE_INIT_SIZE 16 + +#define EVENTFDS_READ_INDEX 0 +#define EVENTFDS_WRITE_INDEX 1 + +static void __hidle_del(hidle_t* idle); +static void __htimer_del(htimer_t* timer); + +static int timers_compare(const struct heap_node* lhs, const struct heap_node* rhs) { + return TIMER_ENTRY(lhs)->next_timeout < TIMER_ENTRY(rhs)->next_timeout; +} + +static int hloop_process_idles(hloop_t* loop) { + int nidles = 0; + struct list_node* node = loop->idles.next; + hidle_t* idle = NULL; + while (node != &loop->idles) { + idle = IDLE_ENTRY(node); + node = node->next; + if (idle->repeat != INFINITE) { + --idle->repeat; + } + if (idle->repeat == 0) { + // NOTE: Just mark it as destroy and remove from list. + // Real deletion occurs after hloop_process_pendings. + __hidle_del(idle); + } + EVENT_PENDING(idle); + ++nidles; + } + return nidles; +} + +static int __hloop_process_timers(struct heap* timers, uint64_t timeout) { + int ntimers = 0; + htimer_t* timer = NULL; + while (timers->root) { + // NOTE: root of minheap has min timeout. + timer = TIMER_ENTRY(timers->root); + if (timer->next_timeout > timeout) { + break; + } + if (timer->repeat != INFINITE) { + --timer->repeat; + } + if (timer->repeat == 0) { + // NOTE: Just mark it as destroy and remove from heap. + // Real deletion occurs after hloop_process_pendings. + __htimer_del(timer); + } + else { + // NOTE: calc next timeout, then re-insert heap. + heap_dequeue(timers); + if (timer->event_type == HEVENT_TYPE_TIMEOUT) { + while (timer->next_timeout <= timeout) { + timer->next_timeout += (uint64_t)((htimeout_t*)timer)->timeout * 1000; + } + } + else if (timer->event_type == HEVENT_TYPE_PERIOD) { + hperiod_t* period = (hperiod_t*)timer; + timer->next_timeout = (uint64_t)cron_next_timeout(period->minute, period->hour, period->day, + period->week, period->month) * 1000000; + } + heap_insert(timers, &timer->node); + } + EVENT_PENDING(timer); + ++ntimers; + } + return ntimers; +} + +static int hloop_process_timers(hloop_t* loop) { + uint64_t now = hloop_now_us(loop); + int ntimers = __hloop_process_timers(&loop->timers, loop->cur_hrtime); + ntimers += __hloop_process_timers(&loop->realtimers, now); + return ntimers; +} + +static int hloop_process_ios(hloop_t* loop, int timeout) { + // That is to call IO multiplexing function such as select, poll, epoll, etc. + int nevents = iowatcher_poll_events(loop, timeout); + if (nevents < 0) { + hlogd("poll_events error=%d", -nevents); + } + return nevents < 0 ? 0 : nevents; +} + +static int hloop_process_pendings(hloop_t* loop) { + if (loop->npendings == 0) return 0; + + hevent_t* cur = NULL; + hevent_t* next = NULL; + int ncbs = 0; + // NOTE: invoke event callback from high to low sorted by priority. + for (int i = HEVENT_PRIORITY_SIZE-1; i >= 0; --i) { + cur = loop->pendings[i]; + while (cur) { + next = cur->pending_next; + if (cur->pending) { + if (cur->active && cur->cb) { + cur->cb(cur); + ++ncbs; + } + cur->pending = 0; + // NOTE: Now we can safely delete event marked as destroy. + if (cur->destroy) { + EVENT_DEL(cur); + } + } + cur = next; + } + loop->pendings[i] = NULL; + } + loop->npendings = 0; + return ncbs; +} + +// hloop_process_ios -> hloop_process_timers -> hloop_process_idles -> hloop_process_pendings +int hloop_process_events(hloop_t* loop, int timeout_ms) { + // ios -> timers -> idles + int nios, ntimers, nidles; + nios = ntimers = nidles = 0; + + // calc blocktime + int32_t blocktime_ms = timeout_ms; + if (loop->ntimers) { + hloop_update_time(loop); + int64_t blocktime_us = blocktime_ms * 1000; + if (loop->timers.root) { + int64_t min_timeout = TIMER_ENTRY(loop->timers.root)->next_timeout - loop->cur_hrtime; + blocktime_us = MIN(blocktime_us, min_timeout); + } + if (loop->realtimers.root) { + int64_t min_timeout = TIMER_ENTRY(loop->realtimers.root)->next_timeout - hloop_now_us(loop); + blocktime_us = MIN(blocktime_us, min_timeout); + } + if (blocktime_us < 0) goto process_timers; + blocktime_ms = blocktime_us / 1000 + 1; + blocktime_ms = MIN(blocktime_ms, timeout_ms); + } + + if (loop->nios) { + nios = hloop_process_ios(loop, blocktime_ms); + } else { + hv_msleep(blocktime_ms); + } + hloop_update_time(loop); + // wakeup by hloop_stop + if (loop->status == HLOOP_STATUS_STOP) { + return 0; + } + +process_timers: + if (loop->ntimers) { + ntimers = hloop_process_timers(loop); + } + + int npendings = loop->npendings; + if (npendings == 0) { + if (loop->nidles) { + nidles= hloop_process_idles(loop); + } + } + int ncbs = hloop_process_pendings(loop); + // printd("blocktime=%d nios=%d/%u ntimers=%d/%u nidles=%d/%u nactives=%d npendings=%d ncbs=%d\n", + // blocktime, nios, loop->nios, ntimers, loop->ntimers, nidles, loop->nidles, + // loop->nactives, npendings, ncbs); + return ncbs; +} + +static void hloop_stat_timer_cb(htimer_t* timer) { + hloop_t* loop = timer->loop; + // hlog_set_level(LOG_LEVEL_DEBUG); + hlogd("[loop] pid=%ld tid=%ld uptime=%lluus cnt=%llu nactives=%u nios=%u ntimers=%u nidles=%u", + loop->pid, loop->tid, + (unsigned long long)loop->cur_hrtime - loop->start_hrtime, + (unsigned long long)loop->loop_cnt, + loop->nactives, loop->nios, loop->ntimers, loop->nidles); +} + +static void eventfd_read_cb(hio_t* io, void* buf, int readbytes) { + hloop_t* loop = io->loop; + hevent_t* pev = NULL; + hevent_t ev; + uint64_t count = readbytes; +#if defined(OS_UNIX) && HAVE_EVENTFD + assert(readbytes == sizeof(count)); + count = *(uint64_t*)buf; +#endif + for (uint64_t i = 0; i < count; ++i) { + hmutex_lock(&loop->custom_events_mutex); + if (event_queue_empty(&loop->custom_events)) { + goto unlock; + } + pev = event_queue_front(&loop->custom_events); + if (pev == NULL) { + goto unlock; + } + ev = *pev; + event_queue_pop_front(&loop->custom_events); + // NOTE: unlock before cb, avoid deadlock if hloop_post_event called in cb. + hmutex_unlock(&loop->custom_events_mutex); + if (ev.cb) { + ev.cb(&ev); + } + } + return; +unlock: + hmutex_unlock(&loop->custom_events_mutex); +} + +static int hloop_create_eventfds(hloop_t* loop) { +#if defined(OS_UNIX) && HAVE_EVENTFD + int efd = eventfd(0, 0); + if (efd < 0) { + hloge("eventfd create failed!"); + return -1; + } + loop->eventfds[0] = loop->eventfds[1] = efd; +#elif defined(OS_UNIX) && HAVE_PIPE + if (pipe(loop->eventfds) != 0) { + hloge("pipe create failed!"); + return -1; + } +#else + if (Socketpair(AF_INET, SOCK_STREAM, 0, loop->eventfds) != 0) { + hloge("socketpair create failed!"); + return -1; + } +#endif + hio_t* io = hread(loop, loop->eventfds[EVENTFDS_READ_INDEX], NULL, 0, eventfd_read_cb); + io->priority = HEVENT_HIGH_PRIORITY; + ++loop->intern_nevents; + return 0; +} + +static void hloop_destroy_eventfds(hloop_t* loop) { +#if defined(OS_UNIX) && HAVE_EVENTFD + // NOTE: eventfd has only one fd + SAFE_CLOSE(loop->eventfds[0]); +#elif defined(OS_UNIX) && HAVE_PIPE + SAFE_CLOSE(loop->eventfds[0]); + SAFE_CLOSE(loop->eventfds[1]); +#else + // NOTE: Avoid duplication closesocket in hio_cleanup + // SAFE_CLOSESOCKET(loop->eventfds[EVENTFDS_READ_INDEX]); + SAFE_CLOSESOCKET(loop->eventfds[EVENTFDS_WRITE_INDEX]); +#endif + loop->eventfds[0] = loop->eventfds[1] = -1; +} + +void hloop_post_event(hloop_t* loop, hevent_t* ev) { + if (ev->loop == NULL) { + ev->loop = loop; + } + if (ev->event_type == 0) { + ev->event_type = HEVENT_TYPE_CUSTOM; + } + if (ev->event_id == 0) { + ev->event_id = hloop_next_event_id(); + } + + int nwrite = 0; + uint64_t count = 1; + hmutex_lock(&loop->custom_events_mutex); + if (loop->eventfds[EVENTFDS_WRITE_INDEX] == -1) { + if (hloop_create_eventfds(loop) != 0) { + goto unlock; + } + } +#if defined(OS_UNIX) && HAVE_EVENTFD + nwrite = write(loop->eventfds[EVENTFDS_WRITE_INDEX], &count, sizeof(count)); +#elif defined(OS_UNIX) && HAVE_PIPE + nwrite = write(loop->eventfds[EVENTFDS_WRITE_INDEX], "e", 1); +#else + nwrite = send(loop->eventfds[EVENTFDS_WRITE_INDEX], "e", 1, 0); +#endif + if (nwrite <= 0) { + hloge("hloop_post_event failed!"); + goto unlock; + } + if (loop->custom_events.maxsize == 0) { + event_queue_init(&loop->custom_events, CUSTOM_EVENT_QUEUE_INIT_SIZE); + } + event_queue_push_back(&loop->custom_events, ev); +unlock: + hmutex_unlock(&loop->custom_events_mutex); +} + +static void hloop_init(hloop_t* loop) { +#ifdef OS_WIN + WSAInit(); +#endif +#ifdef SIGPIPE + // NOTE: if not ignore SIGPIPE, write twice when peer close will lead to exit process by SIGPIPE. + signal(SIGPIPE, SIG_IGN); +#endif + + loop->status = HLOOP_STATUS_STOP; + loop->pid = hv_getpid(); + loop->tid = hv_gettid(); + + // idles + list_init(&loop->idles); + + // timers + heap_init(&loop->timers, timers_compare); + heap_init(&loop->realtimers, timers_compare); + + // ios + // NOTE: io_array_init when hio_get -> io_array_resize + // io_array_init(&loop->ios, IO_ARRAY_INIT_SIZE); + + // readbuf + // NOTE: alloc readbuf when hio_use_loop_readbuf + // loop->readbuf.len = HLOOP_READ_BUFSIZE; + // HV_ALLOC(loop->readbuf.base, loop->readbuf.len); + + // NOTE: iowatcher_init when hio_add -> iowatcher_add_event + // iowatcher_init(loop); + + // custom_events + hmutex_init(&loop->custom_events_mutex); + // NOTE: hloop_create_eventfds when hloop_post_event or hloop_run + loop->eventfds[0] = loop->eventfds[1] = -1; + + // NOTE: init start_time here, because htimer_add use it. + loop->start_ms = gettimeofday_ms(); + loop->start_hrtime = loop->cur_hrtime = gethrtime_us(); +} + +static void hloop_cleanup(hloop_t* loop) { + // pendings + printd("cleanup pendings...\n"); + for (int i = 0; i < HEVENT_PRIORITY_SIZE; ++i) { + loop->pendings[i] = NULL; + } + + // ios + printd("cleanup ios...\n"); + for (int i = 0; i < loop->ios.maxsize; ++i) { + hio_t* io = loop->ios.ptr[i]; + if (io) { + hio_free(io); + } + } + io_array_cleanup(&loop->ios); + + // idles + printd("cleanup idles...\n"); + struct list_node* node = loop->idles.next; + hidle_t* idle; + while (node != &loop->idles) { + idle = IDLE_ENTRY(node); + node = node->next; + HV_FREE(idle); + } + list_init(&loop->idles); + + // timers + printd("cleanup timers...\n"); + htimer_t* timer; + while (loop->timers.root) { + timer = TIMER_ENTRY(loop->timers.root); + heap_dequeue(&loop->timers); + HV_FREE(timer); + } + heap_init(&loop->timers, NULL); + while (loop->realtimers.root) { + timer = TIMER_ENTRY(loop->realtimers.root); + heap_dequeue(&loop->realtimers); + HV_FREE(timer); + } + heap_init(&loop->realtimers, NULL); + + // readbuf + if (loop->readbuf.base && loop->readbuf.len) { + HV_FREE(loop->readbuf.base); + loop->readbuf.base = NULL; + loop->readbuf.len = 0; + } + + // iowatcher + iowatcher_cleanup(loop); + + // custom_events + hmutex_lock(&loop->custom_events_mutex); + hloop_destroy_eventfds(loop); + event_queue_cleanup(&loop->custom_events); + hmutex_unlock(&loop->custom_events_mutex); + hmutex_destroy(&loop->custom_events_mutex); +} + +hloop_t* hloop_new(int flags) { + hloop_t* loop; + HV_ALLOC_SIZEOF(loop); + hloop_init(loop); + loop->flags |= flags; + hlogd("hloop_new tid=%ld", loop->tid); + return loop; +} + +void hloop_free(hloop_t** pp) { + if (pp == NULL || *pp == NULL) return; + hloop_t* loop = *pp; + if (loop->status == HLOOP_STATUS_DESTROY) return; + loop->status = HLOOP_STATUS_DESTROY; + hlogd("hloop_free tid=%ld", hv_gettid()); + hloop_cleanup(loop); + HV_FREE(loop); + *pp = NULL; +} + +// while (loop->status) { hloop_process_events(loop); } +int hloop_run(hloop_t* loop) { + if (loop == NULL) return -1; + if (loop->status == HLOOP_STATUS_RUNNING) return -2; + + loop->status = HLOOP_STATUS_RUNNING; + loop->pid = hv_getpid(); + loop->tid = hv_gettid(); + hlogd("hloop_run tid=%ld", loop->tid); + + if (loop->intern_nevents == 0) { + hmutex_lock(&loop->custom_events_mutex); + if (loop->eventfds[EVENTFDS_WRITE_INDEX] == -1) { + hloop_create_eventfds(loop); + } + hmutex_unlock(&loop->custom_events_mutex); + +#ifdef DEBUG + htimer_add(loop, hloop_stat_timer_cb, HLOOP_STAT_TIMEOUT, INFINITE); + ++loop->intern_nevents; +#endif + } + + while (loop->status != HLOOP_STATUS_STOP) { + if (loop->status == HLOOP_STATUS_PAUSE) { + hv_msleep(HLOOP_PAUSE_TIME); + hloop_update_time(loop); + continue; + } + ++loop->loop_cnt; + if ((loop->flags & HLOOP_FLAG_QUIT_WHEN_NO_ACTIVE_EVENTS) && + loop->nactives <= loop->intern_nevents) { + break; + } + hloop_process_events(loop, HLOOP_MAX_BLOCK_TIME); + if (loop->flags & HLOOP_FLAG_RUN_ONCE) { + break; + } + } + + loop->status = HLOOP_STATUS_STOP; + loop->end_hrtime = gethrtime_us(); + + if (loop->flags & HLOOP_FLAG_AUTO_FREE) { + hloop_free(&loop); + } + return 0; +} + +int hloop_wakeup(hloop_t* loop) { + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + hloop_post_event(loop, &ev); + return 0; +} + +int hloop_stop(hloop_t* loop) { + if (loop == NULL) return -1; + if (loop->status == HLOOP_STATUS_STOP) return -2; + hlogd("hloop_stop tid=%ld", hv_gettid()); + if (hv_gettid() != loop->tid) { + hloop_wakeup(loop); + } + loop->status = HLOOP_STATUS_STOP; + return 0; +} + +int hloop_pause(hloop_t* loop) { + if (loop->status == HLOOP_STATUS_RUNNING) { + loop->status = HLOOP_STATUS_PAUSE; + } + return 0; +} + +int hloop_resume(hloop_t* loop) { + if (loop->status == HLOOP_STATUS_PAUSE) { + loop->status = HLOOP_STATUS_RUNNING; + } + return 0; +} + +hloop_status_e hloop_status(hloop_t* loop) { + return loop->status; +} + +void hloop_update_time(hloop_t* loop) { + loop->cur_hrtime = gethrtime_us(); + if (hloop_now(loop) != time(NULL)) { + // systemtime changed, we adjust start_ms + loop->start_ms = gettimeofday_ms() - (loop->cur_hrtime - loop->start_hrtime) / 1000; + } +} + +uint64_t hloop_now(hloop_t* loop) { + return loop->start_ms / 1000 + (loop->cur_hrtime - loop->start_hrtime) / 1000000; +} + +uint64_t hloop_now_ms(hloop_t* loop) { + return loop->start_ms + (loop->cur_hrtime - loop->start_hrtime) / 1000; +} + +uint64_t hloop_now_us(hloop_t* loop) { + return loop->start_ms * 1000 + (loop->cur_hrtime - loop->start_hrtime); +} + +uint64_t hloop_now_hrtime(hloop_t* loop) { + return loop->cur_hrtime; +} + +uint64_t hio_last_read_time(hio_t* io) { + hloop_t* loop = io->loop; + return loop->start_ms + (io->last_read_hrtime - loop->start_hrtime) / 1000; +} + +uint64_t hio_last_write_time(hio_t* io) { + hloop_t* loop = io->loop; + return loop->start_ms + (io->last_write_hrtime - loop->start_hrtime) / 1000; +} + +long hloop_pid(hloop_t* loop) { + return loop->pid; +} + +long hloop_tid(hloop_t* loop) { + return loop->tid; +} + +uint64_t hloop_count(hloop_t* loop) { + return loop->loop_cnt; +} + +uint32_t hloop_nios(hloop_t* loop) { + return loop->nios; +} + +uint32_t hloop_ntimers(hloop_t* loop) { + return loop->ntimers; +} + +uint32_t hloop_nidles(hloop_t* loop) { + return loop->nidles; +} + +uint32_t hloop_nactives(hloop_t* loop) { + return loop->nactives; +} + +void hloop_set_userdata(hloop_t* loop, void* userdata) { + loop->userdata = userdata; +} + +void* hloop_userdata(hloop_t* loop) { + return loop->userdata; +} + +hidle_t* hidle_add(hloop_t* loop, hidle_cb cb, uint32_t repeat) { + hidle_t* idle; + HV_ALLOC_SIZEOF(idle); + idle->event_type = HEVENT_TYPE_IDLE; + idle->priority = HEVENT_LOWEST_PRIORITY; + idle->repeat = repeat; + list_add(&idle->node, &loop->idles); + EVENT_ADD(loop, idle, cb); + loop->nidles++; + return idle; +} + +static void __hidle_del(hidle_t* idle) { + if (idle->destroy) return; + idle->destroy = 1; + list_del(&idle->node); + idle->loop->nidles--; +} + +void hidle_del(hidle_t* idle) { + if (!idle->active) return; + __hidle_del(idle); + EVENT_DEL(idle); +} + +htimer_t* htimer_add(hloop_t* loop, htimer_cb cb, uint32_t timeout_ms, uint32_t repeat) { + if (timeout_ms == 0) return NULL; + htimeout_t* timer; + HV_ALLOC_SIZEOF(timer); + timer->event_type = HEVENT_TYPE_TIMEOUT; + timer->priority = HEVENT_HIGHEST_PRIORITY; + timer->repeat = repeat; + timer->timeout = timeout_ms; + hloop_update_time(loop); + timer->next_timeout = loop->cur_hrtime + (uint64_t)timeout_ms * 1000; + // NOTE: Limit granularity to 100ms + if (timeout_ms >= 1000 && timeout_ms % 100 == 0) { + timer->next_timeout = timer->next_timeout / 100000 * 100000; + } + heap_insert(&loop->timers, &timer->node); + EVENT_ADD(loop, timer, cb); + loop->ntimers++; + return (htimer_t*)timer; +} + +void htimer_reset(htimer_t* timer, uint32_t timeout_ms) { + if (timer->event_type != HEVENT_TYPE_TIMEOUT) { + return; + } + hloop_t* loop = timer->loop; + htimeout_t* timeout = (htimeout_t*)timer; + if (timer->destroy) { + loop->ntimers++; + } else { + heap_remove(&loop->timers, &timer->node); + } + if (timer->repeat == 0) { + timer->repeat = 1; + } + if (timeout_ms > 0) { + timeout->timeout = timeout_ms; + } + timer->next_timeout = loop->cur_hrtime + (uint64_t)timeout->timeout * 1000; + // NOTE: Limit granularity to 100ms + if (timeout->timeout >= 1000 && timeout->timeout % 100 == 0) { + timer->next_timeout = timer->next_timeout / 100000 * 100000; + } + heap_insert(&loop->timers, &timer->node); + EVENT_RESET(timer); +} + +htimer_t* htimer_add_period(hloop_t* loop, htimer_cb cb, + int8_t minute, int8_t hour, int8_t day, + int8_t week, int8_t month, uint32_t repeat) { + if (minute > 59 || hour > 23 || day > 31 || week > 6 || month > 12) { + return NULL; + } + hperiod_t* timer; + HV_ALLOC_SIZEOF(timer); + timer->event_type = HEVENT_TYPE_PERIOD; + timer->priority = HEVENT_HIGH_PRIORITY; + timer->repeat = repeat; + timer->minute = minute; + timer->hour = hour; + timer->day = day; + timer->month = month; + timer->week = week; + timer->next_timeout = (uint64_t)cron_next_timeout(minute, hour, day, week, month) * 1000000; + heap_insert(&loop->realtimers, &timer->node); + EVENT_ADD(loop, timer, cb); + loop->ntimers++; + return (htimer_t*)timer; +} + +static void __htimer_del(htimer_t* timer) { + if (timer->destroy) return; + if (timer->event_type == HEVENT_TYPE_TIMEOUT) { + heap_remove(&timer->loop->timers, &timer->node); + } else if (timer->event_type == HEVENT_TYPE_PERIOD) { + heap_remove(&timer->loop->realtimers, &timer->node); + } + timer->loop->ntimers--; + timer->destroy = 1; +} + +void htimer_del(htimer_t* timer) { + if (!timer->active) return; + __htimer_del(timer); + EVENT_DEL(timer); +} + +const char* hio_engine() { +#ifdef EVENT_SELECT + return "select"; +#elif defined(EVENT_POLL) + return "poll"; +#elif defined(EVENT_EPOLL) + return "epoll"; +#elif defined(EVENT_KQUEUE) + return "kqueue"; +#elif defined(EVENT_IOCP) + return "iocp"; +#elif defined(EVENT_PORT) + return "evport"; +#else + return "noevent"; +#endif +} + +static inline hio_t* __hio_get(hloop_t* loop, int fd) { + if (fd >= loop->ios.maxsize) { + int newsize = ceil2e(fd); + newsize = MAX(newsize, IO_ARRAY_INIT_SIZE); + io_array_resize(&loop->ios, newsize > fd ? newsize : 2*fd); + } + return loop->ios.ptr[fd]; +} + +hio_t* hio_get(hloop_t* loop, int fd) { + hio_t* io = __hio_get(loop, fd); + if (io == NULL) { + HV_ALLOC_SIZEOF(io); + hio_init(io); + io->event_type = HEVENT_TYPE_IO; + io->loop = loop; + io->fd = fd; + loop->ios.ptr[fd] = io; + } + + if (!io->ready) { + hio_ready(io); + } + + return io; +} + +void hio_detach(hio_t* io) { + hloop_t* loop = io->loop; + int fd = io->fd; + assert(loop != NULL && fd < loop->ios.maxsize); + loop->ios.ptr[fd] = NULL; +} + +void hio_attach(hloop_t* loop, hio_t* io) { + int fd = io->fd; + // NOTE: hio was not freed for reused when closed, but attached hio can't be reused, + // so we need to free it if fd exists to avoid memory leak. + hio_t* preio = __hio_get(loop, fd); + if (preio != NULL && preio != io) { + hio_free(preio); + } + + io->loop = loop; + // NOTE: use new_loop readbuf + hio_use_loop_readbuf(io); + loop->ios.ptr[fd] = io; +} + +bool hio_exists(hloop_t* loop, int fd) { + if (fd >= loop->ios.maxsize) { + return false; + } + return loop->ios.ptr[fd] != NULL; +} + +int hio_add(hio_t* io, hio_cb cb, int events) { + printd("hio_add fd=%d io->events=%d events=%d\n", io->fd, io->events, events); +#ifdef OS_WIN + // Windows iowatcher not work on stdio + if (io->fd < 3) return -1; +#endif + hloop_t* loop = io->loop; + if (!io->active) { + EVENT_ADD(loop, io, cb); + loop->nios++; + } + + if (!io->ready) { + hio_ready(io); + } + + if (cb) { + io->cb = (hevent_cb)cb; + } + + if (!(io->events & events)) { + iowatcher_add_event(loop, io->fd, events); + io->events |= events; + } + return 0; +} + +int hio_del(hio_t* io, int events) { + printd("hio_del fd=%d io->events=%d events=%d\n", io->fd, io->events, events); +#ifdef OS_WIN + // Windows iowatcher not work on stdio + if (io->fd < 3) return -1; +#endif + if (!io->active) return -1; + + if (io->events & events) { + iowatcher_del_event(io->loop, io->fd, events); + io->events &= ~events; + } + if (io->events == 0) { + io->loop->nios--; + // NOTE: not EVENT_DEL, avoid free + EVENT_INACTIVE(io); + } + return 0; +} + +static void hio_close_event_cb(hevent_t* ev) { + hio_t* io = (hio_t*)ev->userdata; + uint32_t id = (uintptr_t)ev->privdata; + if (io->id != id) return; + hio_close(io); +} + +int hio_close_async(hio_t* io) { + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.cb = hio_close_event_cb; + ev.userdata = io; + ev.privdata = (void*)(uintptr_t)io->id; + hloop_post_event(io->loop, &ev); + return 0; +} + +//------------------high-level apis------------------------------------------- +hio_t* hread(hloop_t* loop, int fd, void* buf, size_t len, hread_cb read_cb) { + hio_t* io = hio_get(loop, fd); + assert(io != NULL); + if (buf && len) { + io->readbuf.base = (char*)buf; + io->readbuf.len = len; + } + if (read_cb) { + io->read_cb = read_cb; + } + hio_read(io); + return io; +} + +hio_t* hwrite(hloop_t* loop, int fd, const void* buf, size_t len, hwrite_cb write_cb) { + hio_t* io = hio_get(loop, fd); + assert(io != NULL); + if (write_cb) { + io->write_cb = write_cb; + } + hio_write(io, buf, len); + return io; +} + +hio_t* haccept(hloop_t* loop, int listenfd, haccept_cb accept_cb) { + hio_t* io = hio_get(loop, listenfd); + assert(io != NULL); + if (accept_cb) { + io->accept_cb = accept_cb; + } + if (hio_accept(io) != 0) return NULL; + return io; +} + +hio_t* hconnect (hloop_t* loop, int connfd, hconnect_cb connect_cb) { + hio_t* io = hio_get(loop, connfd); + assert(io != NULL); + if (connect_cb) { + io->connect_cb = connect_cb; + } + if (hio_connect(io) != 0) return NULL; + return io; +} + +void hclose (hloop_t* loop, int fd) { + hio_t* io = hio_get(loop, fd); + assert(io != NULL); + hio_close(io); +} + +hio_t* hrecv (hloop_t* loop, int connfd, void* buf, size_t len, hread_cb read_cb) { + //hio_t* io = hio_get(loop, connfd); + //assert(io != NULL); + //io->recv = 1; + //if (io->io_type != HIO_TYPE_SSL) { + //io->io_type = HIO_TYPE_TCP; + //} + return hread(loop, connfd, buf, len, read_cb); +} + +hio_t* hsend (hloop_t* loop, int connfd, const void* buf, size_t len, hwrite_cb write_cb) { + //hio_t* io = hio_get(loop, connfd); + //assert(io != NULL); + //io->send = 1; + //if (io->io_type != HIO_TYPE_SSL) { + //io->io_type = HIO_TYPE_TCP; + //} + return hwrite(loop, connfd, buf, len, write_cb); +} + +hio_t* hrecvfrom (hloop_t* loop, int sockfd, void* buf, size_t len, hread_cb read_cb) { + //hio_t* io = hio_get(loop, sockfd); + //assert(io != NULL); + //io->recvfrom = 1; + //io->io_type = HIO_TYPE_UDP; + return hread(loop, sockfd, buf, len, read_cb); +} + +hio_t* hsendto (hloop_t* loop, int sockfd, const void* buf, size_t len, hwrite_cb write_cb) { + //hio_t* io = hio_get(loop, sockfd); + //assert(io != NULL); + //io->sendto = 1; + //io->io_type = HIO_TYPE_UDP; + return hwrite(loop, sockfd, buf, len, write_cb); +} + +//-----------------top-level apis--------------------------------------------- +hio_t* hio_create_socket(hloop_t* loop, const char* host, int port, hio_type_e type, hio_side_e side) { + int sock_type = (type & HIO_TYPE_SOCK_STREAM) ? SOCK_STREAM : + (type & HIO_TYPE_SOCK_DGRAM) ? SOCK_DGRAM : + (type & HIO_TYPE_SOCK_RAW) ? SOCK_RAW : -1; + if (sock_type == -1) return NULL; + sockaddr_u addr; + memset(&addr, 0, sizeof(addr)); + int ret = -1; +#ifdef ENABLE_UDS + if (port < 0) { + sockaddr_set_path(&addr, host); + ret = 0; + } +#endif + if (port >= 0) { + ret = sockaddr_set_ipport(&addr, host, port); + } + if (ret != 0) { + // fprintf(stderr, "unknown host: %s\n", host); + return NULL; + } + int sockfd = socket(addr.sa.sa_family, sock_type, 0); + if (sockfd < 0) { + perror("socket"); + return NULL; + } + hio_t* io = NULL; + if (side == HIO_SERVER_SIDE) { +#ifdef OS_UNIX + so_reuseaddr(sockfd, 1); + // so_reuseport(sockfd, 1); +#endif + if (addr.sa.sa_family == AF_INET6) { + ip_v6only(sockfd, 0); + } + if (bind(sockfd, &addr.sa, sockaddr_len(&addr)) < 0) { + perror("bind"); + closesocket(sockfd); + return NULL; + } + if (sock_type == SOCK_STREAM) { + if (listen(sockfd, SOMAXCONN) < 0) { + perror("listen"); + closesocket(sockfd); + return NULL; + } + } + } + io = hio_get(loop, sockfd); + assert(io != NULL); + io->io_type = type; + if (side == HIO_SERVER_SIDE) { + hio_set_localaddr(io, &addr.sa, sockaddr_len(&addr)); + io->priority = HEVENT_HIGH_PRIORITY; + } else { + hio_set_peeraddr(io, &addr.sa, sockaddr_len(&addr)); + } + return io; +} + +hio_t* hloop_create_tcp_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb) { + hio_t* io = hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_SERVER_SIDE); + if (io == NULL) return NULL; + hio_setcb_accept(io, accept_cb); + if (hio_accept(io) != 0) return NULL; + return io; +} + +hio_t* hloop_create_tcp_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb) { + hio_t* io = hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (io == NULL) return NULL; + hio_setcb_connect(io, connect_cb); + hio_setcb_close(io, close_cb); + if (hio_connect(io) != 0) return NULL; + return io; +} + +hio_t* hloop_create_ssl_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb) { + hio_t* io = hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_SERVER_SIDE); + if (io == NULL) return NULL; + hio_setcb_accept(io, accept_cb); + if (hio_accept(io) != 0) return NULL; + return io; +} + +hio_t* hloop_create_ssl_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb) { + hio_t* io = hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_CLIENT_SIDE); + if (io == NULL) return NULL; + hio_setcb_connect(io, connect_cb); + hio_setcb_close(io, close_cb); + if (hio_connect(io) != 0) return NULL; + return io; +} + +hio_t* hloop_create_udp_server(hloop_t* loop, const char* host, int port) { + return hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_SERVER_SIDE); +} + +hio_t* hloop_create_udp_client(hloop_t* loop, const char* host, int port) { + return hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_CLIENT_SIDE); +} diff --git a/3rdPartner/libhv/event/hloop.h b/3rdPartner/libhv/event/hloop.h new file mode 100644 index 0000000..5cc5836 --- /dev/null +++ b/3rdPartner/libhv/event/hloop.h @@ -0,0 +1,746 @@ +#ifndef HV_LOOP_H_ +#define HV_LOOP_H_ + +#include "hexport.h" +#include "hplatform.h" +#include "hdef.h" +#include "hssl.h" + +typedef struct hloop_s hloop_t; +typedef struct hevent_s hevent_t; + +// NOTE: The following structures are subclasses of hevent_t, +// inheriting hevent_t data members and function members. +typedef struct hidle_s hidle_t; +typedef struct htimer_s htimer_t; +typedef struct htimeout_s htimeout_t; +typedef struct hperiod_s hperiod_t; +typedef struct hio_s hio_t; + +typedef void (*hevent_cb) (hevent_t* ev); +typedef void (*hidle_cb) (hidle_t* idle); +typedef void (*htimer_cb) (htimer_t* timer); +typedef void (*hio_cb) (hio_t* io); + +typedef void (*haccept_cb) (hio_t* io); +typedef void (*hconnect_cb) (hio_t* io); +typedef void (*hread_cb) (hio_t* io, void* buf, int readbytes); +typedef void (*hwrite_cb) (hio_t* io, const void* buf, int writebytes); +typedef void (*hclose_cb) (hio_t* io); + +typedef enum { + HLOOP_STATUS_STOP, + HLOOP_STATUS_RUNNING, + HLOOP_STATUS_PAUSE, + HLOOP_STATUS_DESTROY +} hloop_status_e; + +typedef enum { + HEVENT_TYPE_NONE = 0, + HEVENT_TYPE_IO = 0x00000001, + HEVENT_TYPE_TIMEOUT = 0x00000010, + HEVENT_TYPE_PERIOD = 0x00000020, + HEVENT_TYPE_TIMER = HEVENT_TYPE_TIMEOUT|HEVENT_TYPE_PERIOD, + HEVENT_TYPE_IDLE = 0x00000100, + HEVENT_TYPE_CUSTOM = 0x00000400, // 1024 +} hevent_type_e; + +#define HEVENT_LOWEST_PRIORITY (-5) +#define HEVENT_LOW_PRIORITY (-3) +#define HEVENT_NORMAL_PRIORITY 0 +#define HEVENT_HIGH_PRIORITY 3 +#define HEVENT_HIGHEST_PRIORITY 5 +#define HEVENT_PRIORITY_SIZE (HEVENT_HIGHEST_PRIORITY-HEVENT_LOWEST_PRIORITY+1) +#define HEVENT_PRIORITY_INDEX(priority) (priority-HEVENT_LOWEST_PRIORITY) + +#define HEVENT_FLAGS \ + unsigned destroy :1; \ + unsigned active :1; \ + unsigned pending :1; + +#define HEVENT_FIELDS \ + hloop_t* loop; \ + hevent_type_e event_type; \ + uint64_t event_id; \ + hevent_cb cb; \ + void* userdata; \ + void* privdata; \ + struct hevent_s* pending_next; \ + int priority; \ + HEVENT_FLAGS + +// sizeof(struct hevent_s)=64 on x64 +struct hevent_s { + HEVENT_FIELDS +}; + +#define hevent_set_id(ev, id) ((hevent_t*)(ev))->event_id = id +#define hevent_set_cb(ev, cb) ((hevent_t*)(ev))->cb = cb +#define hevent_set_priority(ev, prio) ((hevent_t*)(ev))->priority = prio +#define hevent_set_userdata(ev, udata) ((hevent_t*)(ev))->userdata = (void*)udata + +#define hevent_loop(ev) (((hevent_t*)(ev))->loop) +#define hevent_type(ev) (((hevent_t*)(ev))->event_type) +#define hevent_id(ev) (((hevent_t*)(ev))->event_id) +#define hevent_cb(ev) (((hevent_t*)(ev))->cb) +#define hevent_priority(ev) (((hevent_t*)(ev))->priority) +#define hevent_userdata(ev) (((hevent_t*)(ev))->userdata) + +typedef enum { + HIO_TYPE_UNKNOWN = 0, + HIO_TYPE_STDIN = 0x00000001, + HIO_TYPE_STDOUT = 0x00000002, + HIO_TYPE_STDERR = 0x00000004, + HIO_TYPE_STDIO = 0x0000000F, + + HIO_TYPE_FILE = 0x00000010, + + HIO_TYPE_IP = 0x00000100, + HIO_TYPE_SOCK_RAW = 0x00000F00, + + HIO_TYPE_UDP = 0x00001000, + HIO_TYPE_KCP = 0x00002000, + HIO_TYPE_DTLS = 0x00010000, + HIO_TYPE_SOCK_DGRAM = 0x000FF000, + + HIO_TYPE_TCP = 0x00100000, + HIO_TYPE_SSL = 0x01000000, + HIO_TYPE_TLS = HIO_TYPE_SSL, + HIO_TYPE_SOCK_STREAM= 0x0FF00000, + + HIO_TYPE_SOCKET = 0x0FFFFF00, +} hio_type_e; + +typedef enum { + HIO_SERVER_SIDE = 0, + HIO_CLIENT_SIDE = 1, +} hio_side_e; + +#define HIO_DEFAULT_CONNECT_TIMEOUT 10000 // ms +#define HIO_DEFAULT_CLOSE_TIMEOUT 60000 // ms +#define HIO_DEFAULT_KEEPALIVE_TIMEOUT 75000 // ms +#define HIO_DEFAULT_HEARTBEAT_INTERVAL 10000 // ms + +BEGIN_EXTERN_C + +// loop +#define HLOOP_FLAG_RUN_ONCE 0x00000001 +#define HLOOP_FLAG_AUTO_FREE 0x00000002 +#define HLOOP_FLAG_QUIT_WHEN_NO_ACTIVE_EVENTS 0x00000004 +HV_EXPORT hloop_t* hloop_new(int flags DEFAULT(HLOOP_FLAG_AUTO_FREE)); + +// WARN: Forbid to call hloop_free if HLOOP_FLAG_AUTO_FREE set. +HV_EXPORT void hloop_free(hloop_t** pp); + +HV_EXPORT int hloop_process_events(hloop_t* loop, int timeout_ms DEFAULT(0)); + +// NOTE: when no active events, loop will quit if HLOOP_FLAG_QUIT_WHEN_NO_ACTIVE_EVENTS set. +HV_EXPORT int hloop_run(hloop_t* loop); +// NOTE: hloop_stop called in loop-thread just set flag to quit in next loop, +// if called in other thread, it will wakeup loop-thread from blocking poll system call, +// then you should join loop thread to safely exit loop thread. +HV_EXPORT int hloop_stop(hloop_t* loop); +HV_EXPORT int hloop_pause(hloop_t* loop); +HV_EXPORT int hloop_resume(hloop_t* loop); +HV_EXPORT int hloop_wakeup(hloop_t* loop); +HV_EXPORT hloop_status_e hloop_status(hloop_t* loop); + +HV_EXPORT void hloop_update_time(hloop_t* loop); +HV_EXPORT uint64_t hloop_now(hloop_t* loop); // s +HV_EXPORT uint64_t hloop_now_ms(hloop_t* loop); // ms +HV_EXPORT uint64_t hloop_now_us(hloop_t* loop); // us +HV_EXPORT uint64_t hloop_now_hrtime(hloop_t* loop); // us + +// export some hloop's members +// @return pid of hloop_run +HV_EXPORT long hloop_pid(hloop_t* loop); +// @return tid of hloop_run +HV_EXPORT long hloop_tid(hloop_t* loop); +// @return count of loop +HV_EXPORT uint64_t hloop_count(hloop_t* loop); +// @return number of ios +HV_EXPORT uint32_t hloop_nios(hloop_t* loop); +// @return number of timers +HV_EXPORT uint32_t hloop_ntimers(hloop_t* loop); +// @return number of idles +HV_EXPORT uint32_t hloop_nidles(hloop_t* loop); +// @return number of active events +HV_EXPORT uint32_t hloop_nactives(hloop_t* loop); + +// userdata +HV_EXPORT void hloop_set_userdata(hloop_t* loop, void* userdata); +HV_EXPORT void* hloop_userdata(hloop_t* loop); + +// custom_event +/* + * hevent_t ev; + * memset(&ev, 0, sizeof(hevent_t)); + * ev.event_type = (hevent_type_e)(HEVENT_TYPE_CUSTOM + 1); + * ev.cb = custom_event_cb; + * ev.userdata = userdata; + * hloop_post_event(loop, &ev); + */ +// NOTE: hloop_post_event is thread-safe, used to post event from other thread to loop thread. +HV_EXPORT void hloop_post_event(hloop_t* loop, hevent_t* ev); + +// idle +HV_EXPORT hidle_t* hidle_add(hloop_t* loop, hidle_cb cb, uint32_t repeat DEFAULT(INFINITE)); +HV_EXPORT void hidle_del(hidle_t* idle); + +// timer +HV_EXPORT htimer_t* htimer_add(hloop_t* loop, htimer_cb cb, uint32_t timeout_ms, uint32_t repeat DEFAULT(INFINITE)); +/* + * minute hour day week month cb + * 0~59 0~23 1~31 0~6 1~12 + * -1 -1 -1 -1 -1 cron.minutely + * 30 -1 -1 -1 -1 cron.hourly + * 30 1 -1 -1 -1 cron.daily + * 30 1 15 -1 -1 cron.monthly + * 30 1 -1 5 -1 cron.weekly + * 30 1 1 -1 10 cron.yearly + */ +HV_EXPORT htimer_t* htimer_add_period(hloop_t* loop, htimer_cb cb, + int8_t minute DEFAULT(0), int8_t hour DEFAULT(-1), int8_t day DEFAULT(-1), + int8_t week DEFAULT(-1), int8_t month DEFAULT(-1), uint32_t repeat DEFAULT(INFINITE)); + +HV_EXPORT void htimer_del(htimer_t* timer); +HV_EXPORT void htimer_reset(htimer_t* timer, uint32_t timeout_ms DEFAULT(0)); + +// io +//-----------------------low-level apis--------------------------------------- +#define HV_READ 0x0001 +#define HV_WRITE 0x0004 +#define HV_RDWR (HV_READ|HV_WRITE) +/* +const char* hio_engine() { +#ifdef EVENT_SELECT + return "select"; +#elif defined(EVENT_POLL) + return "poll"; +#elif defined(EVENT_EPOLL) + return "epoll"; +#elif defined(EVENT_KQUEUE) + return "kqueue"; +#elif defined(EVENT_IOCP) + return "iocp"; +#elif defined(EVENT_PORT) + return "evport"; +#else + return "noevent"; +#endif +} +*/ +HV_EXPORT const char* hio_engine(); + +HV_EXPORT hio_t* hio_get(hloop_t* loop, int fd); +HV_EXPORT int hio_add(hio_t* io, hio_cb cb, int events DEFAULT(HV_READ)); +HV_EXPORT int hio_del(hio_t* io, int events DEFAULT(HV_RDWR)); + +// NOTE: io detach from old loop and attach to new loop +/* @see examples/multi-thread/one-acceptor-multi-workers.c +void new_conn_event(hevent_t* ev) { + hloop_t* loop = ev->loop; + hio_t* io = (hio_t*)hevent_userdata(ev); + hio_attach(loop, io); +} + +void on_accpet(hio_t* io) { + hio_detach(io); + + hloop_t* worker_loop = get_one_loop(); + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.loop = worker_loop; + ev.cb = new_conn_event; + ev.userdata = io; + hloop_post_event(worker_loop, &ev); +} + */ +HV_EXPORT void hio_detach(/*hloop_t* loop,*/ hio_t* io); +HV_EXPORT void hio_attach(hloop_t* loop, hio_t* io); +HV_EXPORT bool hio_exists(hloop_t* loop, int fd); + +// hio_t fields +// NOTE: fd cannot be used as unique identifier, so we provide an id. +HV_EXPORT uint32_t hio_id (hio_t* io); +HV_EXPORT int hio_fd (hio_t* io); +HV_EXPORT int hio_error (hio_t* io); +HV_EXPORT int hio_events (hio_t* io); +HV_EXPORT int hio_revents (hio_t* io); +HV_EXPORT hio_type_e hio_type (hio_t* io); +HV_EXPORT struct sockaddr* hio_localaddr(hio_t* io); +HV_EXPORT struct sockaddr* hio_peeraddr (hio_t* io); +HV_EXPORT void hio_set_context(hio_t* io, void* ctx); +HV_EXPORT void* hio_context(hio_t* io); +HV_EXPORT bool hio_is_opened(hio_t* io); +HV_EXPORT bool hio_is_connected(hio_t* io); +HV_EXPORT bool hio_is_closed(hio_t* io); + +// iobuf +// #include "hbuf.h" +typedef struct fifo_buf_s hio_readbuf_t; +// NOTE: One loop per thread, one readbuf per loop. +// But you can pass in your own readbuf instead of the default readbuf to avoid memcopy. +HV_EXPORT void hio_set_readbuf(hio_t* io, void* buf, size_t len); +HV_EXPORT hio_readbuf_t* hio_get_readbuf(hio_t* io); +HV_EXPORT void hio_set_max_read_bufsize (hio_t* io, uint32_t size); +HV_EXPORT void hio_set_max_write_bufsize(hio_t* io, uint32_t size); +// NOTE: hio_write is non-blocking, so there is a write queue inside hio_t to cache unwritten data and wait for writable. +// @return current buffer size of write queue. +HV_EXPORT size_t hio_write_bufsize(hio_t* io); +#define hio_write_is_complete(io) (hio_write_bufsize(io) == 0) + +HV_EXPORT uint64_t hio_last_read_time(hio_t* io); // ms +HV_EXPORT uint64_t hio_last_write_time(hio_t* io); // ms + +// set callbacks +HV_EXPORT void hio_setcb_accept (hio_t* io, haccept_cb accept_cb); +HV_EXPORT void hio_setcb_connect (hio_t* io, hconnect_cb connect_cb); +HV_EXPORT void hio_setcb_read (hio_t* io, hread_cb read_cb); +HV_EXPORT void hio_setcb_write (hio_t* io, hwrite_cb write_cb); +HV_EXPORT void hio_setcb_close (hio_t* io, hclose_cb close_cb); +// get callbacks +HV_EXPORT haccept_cb hio_getcb_accept(hio_t* io); +HV_EXPORT hconnect_cb hio_getcb_connect(hio_t* io); +HV_EXPORT hread_cb hio_getcb_read(hio_t* io); +HV_EXPORT hwrite_cb hio_getcb_write(hio_t* io); +HV_EXPORT hclose_cb hio_getcb_close(hio_t* io); + +// Enable SSL/TLS is so easy :) +HV_EXPORT int hio_enable_ssl(hio_t* io); +HV_EXPORT bool hio_is_ssl(hio_t* io); +HV_EXPORT int hio_set_ssl (hio_t* io, hssl_t ssl); +HV_EXPORT int hio_set_ssl_ctx(hio_t* io, hssl_ctx_t ssl_ctx); +// hssl_ctx_new(opt) -> hio_set_ssl_ctx +HV_EXPORT int hio_new_ssl_ctx(hio_t* io, hssl_ctx_opt_t* opt); +HV_EXPORT hssl_t hio_get_ssl(hio_t* io); +HV_EXPORT hssl_ctx_t hio_get_ssl_ctx(hio_t* io); +// for hssl_set_sni_hostname +HV_EXPORT int hio_set_hostname(hio_t* io, const char* hostname); +HV_EXPORT const char* hio_get_hostname(hio_t* io); + +// connect timeout => hclose_cb +HV_EXPORT void hio_set_connect_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_CONNECT_TIMEOUT)); +// close timeout => hclose_cb +HV_EXPORT void hio_set_close_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_CLOSE_TIMEOUT)); +// read timeout => hclose_cb +HV_EXPORT void hio_set_read_timeout(hio_t* io, int timeout_ms); +// write timeout => hclose_cb +HV_EXPORT void hio_set_write_timeout(hio_t* io, int timeout_ms); +// keepalive timeout => hclose_cb +HV_EXPORT void hio_set_keepalive_timeout(hio_t* io, int timeout_ms DEFAULT(HIO_DEFAULT_KEEPALIVE_TIMEOUT)); +/* +void send_heartbeat(hio_t* io) { + static char buf[] = "PING\r\n"; + hio_write(io, buf, 6); +} +hio_set_heartbeat(io, 3000, send_heartbeat); +*/ +typedef void (*hio_send_heartbeat_fn)(hio_t* io); +// heartbeat interval => hio_send_heartbeat_fn +HV_EXPORT void hio_set_heartbeat(hio_t* io, int interval_ms, hio_send_heartbeat_fn fn); + +// Nonblocking, poll IO events in the loop to call corresponding callback. +// hio_add(io, HV_READ) => accept => haccept_cb +HV_EXPORT int hio_accept (hio_t* io); + +// connect => hio_add(io, HV_WRITE) => hconnect_cb +HV_EXPORT int hio_connect(hio_t* io); + +// hio_add(io, HV_READ) => read => hread_cb +HV_EXPORT int hio_read (hio_t* io); +#define hio_read_start(io) hio_read(io) +#define hio_read_stop(io) hio_del(io, HV_READ) + +// hio_read_start => hread_cb => hio_read_stop +HV_EXPORT int hio_read_once (hio_t* io); +// hio_read_once => hread_cb(len) +HV_EXPORT int hio_read_until_length(hio_t* io, unsigned int len); +// hio_read_once => hread_cb(...delim) +HV_EXPORT int hio_read_until_delim (hio_t* io, unsigned char delim); +HV_EXPORT int hio_read_remain(hio_t* io); +// @see examples/tinyhttpd.c examples/tinyproxyd.c +#define hio_readline(io) hio_read_until_delim(io, '\n') +#define hio_readstring(io) hio_read_until_delim(io, '\0') +#define hio_readbytes(io, len) hio_read_until_length(io, len) +#define hio_read_until(io, len) hio_read_until_length(io, len) + +// NOTE: hio_write is thread-safe, locked by recursive_mutex, allow to be called by other threads. +// hio_try_write => hio_add(io, HV_WRITE) => write => hwrite_cb +HV_EXPORT int hio_write (hio_t* io, const void* buf, size_t len); + +// NOTE: hio_close is thread-safe, hio_close_async will be called actually in other thread. +// hio_del(io, HV_RDWR) => close => hclose_cb +HV_EXPORT int hio_close (hio_t* io); +// NOTE: hloop_post_event(hio_close_event) +HV_EXPORT int hio_close_async(hio_t* io); + +//------------------high-level apis------------------------------------------- +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +HV_EXPORT hio_t* hread (hloop_t* loop, int fd, void* buf, size_t len, hread_cb read_cb); +// hio_get -> hio_setcb_write -> hio_write +HV_EXPORT hio_t* hwrite (hloop_t* loop, int fd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); +// hio_get -> hio_close +HV_EXPORT void hclose (hloop_t* loop, int fd); + +// tcp +// hio_get -> hio_setcb_accept -> hio_accept +HV_EXPORT hio_t* haccept (hloop_t* loop, int listenfd, haccept_cb accept_cb); +// hio_get -> hio_setcb_connect -> hio_connect +HV_EXPORT hio_t* hconnect (hloop_t* loop, int connfd, hconnect_cb connect_cb); +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +HV_EXPORT hio_t* hrecv (hloop_t* loop, int connfd, void* buf, size_t len, hread_cb read_cb); +// hio_get -> hio_setcb_write -> hio_write +HV_EXPORT hio_t* hsend (hloop_t* loop, int connfd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); + +// udp +HV_EXPORT void hio_set_type(hio_t* io, hio_type_e type); +HV_EXPORT void hio_set_localaddr(hio_t* io, struct sockaddr* addr, int addrlen); +HV_EXPORT void hio_set_peeraddr (hio_t* io, struct sockaddr* addr, int addrlen); +// NOTE: must call hio_set_peeraddr before hrecvfrom/hsendto +// hio_get -> hio_set_readbuf -> hio_setcb_read -> hio_read +HV_EXPORT hio_t* hrecvfrom (hloop_t* loop, int sockfd, void* buf, size_t len, hread_cb read_cb); +// hio_get -> hio_setcb_write -> hio_write +HV_EXPORT hio_t* hsendto (hloop_t* loop, int sockfd, const void* buf, size_t len, hwrite_cb write_cb DEFAULT(NULL)); + +//-----------------top-level apis--------------------------------------------- +// @hio_create_socket: socket -> bind -> listen +// sockaddr_set_ipport -> socket -> hio_get(loop, sockfd) -> +// side == HIO_SERVER_SIDE ? bind -> +// type & HIO_TYPE_SOCK_STREAM ? listen -> +HV_EXPORT hio_t* hio_create_socket(hloop_t* loop, const char* host, int port, + hio_type_e type DEFAULT(HIO_TYPE_TCP), + hio_side_e side DEFAULT(HIO_SERVER_SIDE)); + +// @tcp_server: hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_SERVER_SIDE) -> hio_setcb_accept -> hio_accept +// @see examples/tcp_echo_server.c +HV_EXPORT hio_t* hloop_create_tcp_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb); + +// @tcp_client: hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE) -> hio_setcb_connect -> hio_setcb_close -> hio_connect +// @see examples/nc.c +HV_EXPORT hio_t* hloop_create_tcp_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb); + +// @ssl_server: hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_SERVER_SIDE) -> hio_setcb_accept -> hio_accept +// @see examples/tcp_echo_server.c => #define TEST_SSL 1 +HV_EXPORT hio_t* hloop_create_ssl_server (hloop_t* loop, const char* host, int port, haccept_cb accept_cb); + +// @ssl_client: hio_create_socket(loop, host, port, HIO_TYPE_SSL, HIO_CLIENT_SIDE) -> hio_setcb_connect -> hio_setcb_close -> hio_connect +// @see examples/nc.c => #define TEST_SSL 1 +HV_EXPORT hio_t* hloop_create_ssl_client (hloop_t* loop, const char* host, int port, hconnect_cb connect_cb, hclose_cb close_cb); + +// @udp_server: hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_SERVER_SIDE) +// @see examples/udp_echo_server.c +HV_EXPORT hio_t* hloop_create_udp_server (hloop_t* loop, const char* host, int port); + +// @udp_server: hio_create_socket(loop, host, port, HIO_TYPE_UDP, HIO_CLIENT_SIDE) +// @see examples/nc.c +HV_EXPORT hio_t* hloop_create_udp_client (hloop_t* loop, const char* host, int port); + +//-----------------upstream--------------------------------------------- +// hio_read(io) +// hio_read(io->upstream_io) +HV_EXPORT void hio_read_upstream(hio_t* io); +// on_write(io) -> hio_write_is_complete(io) -> hio_read(io->upstream_io) +HV_EXPORT void hio_read_upstream_on_write_complete(hio_t* io, const void* buf, int writebytes); +// hio_write(io->upstream_io, buf, bytes) +HV_EXPORT void hio_write_upstream(hio_t* io, void* buf, int bytes); +// hio_close(io->upstream_io) +HV_EXPORT void hio_close_upstream(hio_t* io); + +// io1->upstream_io = io2; +// io2->upstream_io = io1; +// @see examples/socks5_proxy_server.c +HV_EXPORT void hio_setup_upstream(hio_t* io1, hio_t* io2); + +// @return io->upstream_io +HV_EXPORT hio_t* hio_get_upstream(hio_t* io); + +// @tcp_upstream: hio_create_socket -> hio_setup_upstream -> hio_connect -> on_connect -> hio_read_upstream +// @return upstream_io +// @see examples/tcp_proxy_server.c +HV_EXPORT hio_t* hio_setup_tcp_upstream(hio_t* io, const char* host, int port, int ssl DEFAULT(0)); +#define hio_setup_ssl_upstream(io, host, port) hio_setup_tcp_upstream(io, host, port, 1) + +// @udp_upstream: hio_create_socket -> hio_setup_upstream -> hio_read_upstream +// @return upstream_io +// @see examples/udp_proxy_server.c +HV_EXPORT hio_t* hio_setup_udp_upstream(hio_t* io, const char* host, int port); + +//-----------------unpack--------------------------------------------- +typedef enum { + UNPACK_MODE_NONE = 0, + UNPACK_BY_FIXED_LENGTH = 1, // Not recommended + UNPACK_BY_DELIMITER = 2, // Suitable for text protocol + UNPACK_BY_LENGTH_FIELD = 3, // Suitable for binary protocol +} unpack_mode_e; + +#define DEFAULT_PACKAGE_MAX_LENGTH (1 << 21) // 2M + +// UNPACK_BY_DELIMITER +#define PACKAGE_MAX_DELIMITER_BYTES 8 + +// UNPACK_BY_LENGTH_FIELD +typedef enum { + ENCODE_BY_VARINT = 17, // 1 MSB + 7 bits + ENCODE_BY_LITTEL_ENDIAN = LITTLE_ENDIAN, // 1234 + ENCODE_BY_BIG_ENDIAN = BIG_ENDIAN, // 4321 +} unpack_coding_e; + +typedef struct unpack_setting_s { + unpack_mode_e mode; + unsigned int package_max_length; + union { + // UNPACK_BY_FIXED_LENGTH + struct { + unsigned int fixed_length; + }; + // UNPACK_BY_DELIMITER + struct { + unsigned char delimiter[PACKAGE_MAX_DELIMITER_BYTES]; + unsigned short delimiter_bytes; + }; + /* + * UNPACK_BY_LENGTH_FIELD + * + * package_len = head_len + body_len + length_adjustment + * + * if (length_field_coding == ENCODE_BY_VARINT) head_len = body_offset + varint_bytes - length_field_bytes; + * else head_len = body_offset; + * + * length_field stores body length, exclude head length, + * if length_field = head_len + body_len, then length_adjustment should be set to -head_len. + * + */ + struct { + unsigned short body_offset; // Equal to head length usually + unsigned short length_field_offset; + unsigned short length_field_bytes; + short length_adjustment; + unpack_coding_e length_field_coding; + }; + }; +#ifdef __cplusplus + unpack_setting_s() { + // Recommended setting: + // head = flags:1byte + length:4bytes = 5bytes + mode = UNPACK_BY_LENGTH_FIELD; + package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + fixed_length = 0; + delimiter_bytes = 0; + body_offset = 5; + length_field_offset = 1; + length_field_bytes = 4; + length_field_coding = ENCODE_BY_BIG_ENDIAN; + length_adjustment = 0; + } +#endif +} unpack_setting_t; + +/* + * @see examples/jsonrpc examples/protorpc + * + * NOTE: unpack_setting_t of multiple IOs of the same function also are same, + * so only the pointer of unpack_setting_t is stored in hio_t, + * the life time of unpack_setting_t shoud be guaranteed by caller. + */ +HV_EXPORT void hio_set_unpack(hio_t* io, unpack_setting_t* setting); +HV_EXPORT void hio_unset_unpack(hio_t* io); + +// unpack examples +/* +unpack_setting_t ftp_unpack_setting; +memset(&ftp_unpack_setting, 0, sizeof(unpack_setting_t)); +ftp_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; +ftp_unpack_setting.mode = UNPACK_BY_DELIMITER; +ftp_unpack_setting.delimiter[0] = '\r'; +ftp_unpack_setting.delimiter[1] = '\n'; +ftp_unpack_setting.delimiter_bytes = 2; + +unpack_setting_t mqtt_unpack_setting = { + .mode = UNPACK_BY_LENGTH_FIELD, + .package_max_length = DEFAULT_PACKAGE_MAX_LENGTH, + .body_offset = 2, + .length_field_offset = 1, + .length_field_bytes = 1, + .length_field_coding = ENCODE_BY_VARINT, +}; + +unpack_setting_t grpc_unpack_setting = { + .mode = UNPACK_BY_LENGTH_FIELD, + .package_max_length = DEFAULT_PACKAGE_MAX_LENGTH, + .body_offset = 5, + .length_field_offset = 1, + .length_field_bytes = 4, + .length_field_coding = ENCODE_BY_BIG_ENDIAN, +}; +*/ + +//-----------------reconnect---------------------------------------- +#define DEFAULT_RECONNECT_MIN_DELAY 1000 // ms +#define DEFAULT_RECONNECT_MAX_DELAY 60000 // ms +#define DEFAULT_RECONNECT_DELAY_POLICY 2 // exponential +#define DEFAULT_RECONNECT_MAX_RETRY_CNT INFINITE +typedef struct reconn_setting_s { + uint32_t min_delay; // ms + uint32_t max_delay; // ms + uint32_t cur_delay; // ms + /* + * @delay_policy + * 0: fixed + * min_delay=3s => 3,3,3... + * 1: linear + * min_delay=3s max_delay=10s => 3,6,9,10,10... + * other: exponential + * min_delay=3s max_delay=60s delay_policy=2 => 3,6,12,24,48,60,60... + */ + uint32_t delay_policy; + uint32_t max_retry_cnt; + uint32_t cur_retry_cnt; + +#ifdef __cplusplus + reconn_setting_s() { + min_delay = DEFAULT_RECONNECT_MIN_DELAY; + max_delay = DEFAULT_RECONNECT_MAX_DELAY; + cur_delay = 0; + // 1,2,4,8,16,32,60,60... + delay_policy = DEFAULT_RECONNECT_DELAY_POLICY; + max_retry_cnt = DEFAULT_RECONNECT_MAX_RETRY_CNT; + cur_retry_cnt = 0; + } +#endif +} reconn_setting_t; + +HV_INLINE void reconn_setting_init(reconn_setting_t* reconn) { + reconn->min_delay = DEFAULT_RECONNECT_MIN_DELAY; + reconn->max_delay = DEFAULT_RECONNECT_MAX_DELAY; + reconn->cur_delay = 0; + // 1,2,4,8,16,32,60,60... + reconn->delay_policy = DEFAULT_RECONNECT_DELAY_POLICY; + reconn->max_retry_cnt = DEFAULT_RECONNECT_MAX_RETRY_CNT; + reconn->cur_retry_cnt = 0; +} + +HV_INLINE void reconn_setting_reset(reconn_setting_t* reconn) { + reconn->cur_delay = 0; + reconn->cur_retry_cnt = 0; +} + +HV_INLINE bool reconn_setting_can_retry(reconn_setting_t* reconn) { + ++reconn->cur_retry_cnt; + return reconn->max_retry_cnt == INFINITE || + reconn->cur_retry_cnt < reconn->max_retry_cnt; +} + +HV_INLINE uint32_t reconn_setting_calc_delay(reconn_setting_t* reconn) { + if (reconn->delay_policy == 0) { + // fixed + reconn->cur_delay = reconn->min_delay; + } else if (reconn->delay_policy == 1) { + // linear + reconn->cur_delay += reconn->min_delay; + } else { + // exponential + reconn->cur_delay *= reconn->delay_policy; + } + reconn->cur_delay = MAX(reconn->cur_delay, reconn->min_delay); + reconn->cur_delay = MIN(reconn->cur_delay, reconn->max_delay); + return reconn->cur_delay; +} + +//-----------------LoadBalance------------------------------------- +typedef enum { + LB_RoundRobin, + LB_Random, + LB_LeastConnections, + LB_IpHash, + LB_UrlHash, +} load_balance_e; + +//-----------------rudp--------------------------------------------- +#if WITH_KCP +#define WITH_RUDP 1 +#endif + +#if WITH_RUDP +// NOTE: hio_close_rudp is thread-safe. +HV_EXPORT int hio_close_rudp(hio_t* io, struct sockaddr* peeraddr DEFAULT(NULL)); +#endif + +#if WITH_KCP +typedef struct kcp_setting_s { + // ikcp_create(conv, ...) + unsigned int conv; + // ikcp_nodelay(kcp, nodelay, interval, fastresend, nocwnd) + int nodelay; + int interval; + int fastresend; + int nocwnd; + // ikcp_wndsize(kcp, sndwnd, rcvwnd) + int sndwnd; + int rcvwnd; + // ikcp_setmtu(kcp, mtu) + int mtu; + // ikcp_update + int update_interval; + +#ifdef __cplusplus + kcp_setting_s() { + conv = 0x11223344; + // normal mode + nodelay = 0; + interval = 40; + fastresend = 0; + nocwnd = 0; + // fast mode + // nodelay = 1; + // interval = 10; + // fastresend = 2; + // nocwnd = 1; + + sndwnd = 0; + rcvwnd = 0; + mtu = 1400; + update_interval = 10; // ms + } +#endif +} kcp_setting_t; + +HV_INLINE void kcp_setting_init_with_normal_mode(kcp_setting_t* setting) { + memset(setting, 0, sizeof(kcp_setting_t)); + setting->nodelay = 0; + setting->interval = 40; + setting->fastresend = 0; + setting->nocwnd = 0; +} + +HV_INLINE void kcp_setting_init_with_fast_mode(kcp_setting_t* setting) { + memset(setting, 0, sizeof(kcp_setting_t)); + setting->nodelay = 0; + setting->interval = 30; + setting->fastresend = 2; + setting->nocwnd = 1; +} + +HV_INLINE void kcp_setting_init_with_fast2_mode(kcp_setting_t* setting) { + memset(setting, 0, sizeof(kcp_setting_t)); + setting->nodelay = 1; + setting->interval = 20; + setting->fastresend = 2; + setting->nocwnd = 1; +} + +HV_INLINE void kcp_setting_init_with_fast3_mode(kcp_setting_t* setting) { + memset(setting, 0, sizeof(kcp_setting_t)); + setting->nodelay = 1; + setting->interval = 10; + setting->fastresend = 2; + setting->nocwnd = 1; +} + +// @see examples/udp_echo_server.c => #define TEST_KCP 1 +HV_EXPORT int hio_set_kcp(hio_t* io, kcp_setting_t* setting DEFAULT(NULL)); +#endif + +END_EXTERN_C + +#endif // HV_LOOP_H_ diff --git a/3rdPartner/libhv/event/iocp.c b/3rdPartner/libhv/event/iocp.c new file mode 100644 index 0000000..caef1cf --- /dev/null +++ b/3rdPartner/libhv/event/iocp.c @@ -0,0 +1,81 @@ +#include "iowatcher.h" + +#ifdef EVENT_IOCP +#include "hplatform.h" +#include "hdef.h" + +#include "hevent.h" +#include "overlapio.h" + +typedef struct iocp_ctx_s { + HANDLE iocp; +} iocp_ctx_t; + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + iocp_ctx_t* iocp_ctx; + HV_ALLOC_SIZEOF(iocp_ctx); + iocp_ctx->iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); + loop->iowatcher = iocp_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + if (loop->iowatcher == NULL) return 0; + iocp_ctx_t* iocp_ctx = (iocp_ctx_t*)loop->iowatcher; + CloseHandle(iocp_ctx->iocp); + HV_FREE(loop->iowatcher); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + iocp_ctx_t* iocp_ctx = (iocp_ctx_t*)loop->iowatcher; + hio_t* io = loop->ios.ptr[fd]; + if (io && io->events == 0 && events != 0) { + CreateIoCompletionPort((HANDLE)fd, iocp_ctx->iocp, 0, 0); + } + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + hio_t* io = loop->ios.ptr[fd]; + if ((io->events & ~events) == 0) { + CancelIo((HANDLE)fd); + } + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + if (loop->iowatcher == NULL) return 0; + iocp_ctx_t* iocp_ctx = (iocp_ctx_t*)loop->iowatcher; + DWORD bytes = 0; + ULONG_PTR key = 0; + LPOVERLAPPED povlp = NULL; + BOOL bRet = GetQueuedCompletionStatus(iocp_ctx->iocp, &bytes, &key, &povlp, timeout); + int err = 0; + if (povlp == NULL) { + err = WSAGetLastError(); + if (err == WAIT_TIMEOUT || ERROR_NETNAME_DELETED || ERROR_OPERATION_ABORTED) { + return 0; + } + return -err; + } + hoverlapped_t* hovlp = (hoverlapped_t*)povlp; + hio_t* io = hovlp->io; + if (bRet == FALSE) { + err = WSAGetLastError(); + printd("iocp ret=%d err=%d bytes=%u\n", bRet, err, bytes); + // NOTE: when ConnectEx failed, err != 0 + hovlp->error = err; + } + // NOTE: when WSASend/WSARecv disconnect, bytes = 0 + hovlp->bytes = bytes; + io->hovlp = hovlp; + io->revents |= hovlp->event; + EVENT_PENDING(hovlp->io); + return 1; +} +#endif diff --git a/3rdPartner/libhv/event/iowatcher.h b/3rdPartner/libhv/event/iowatcher.h new file mode 100644 index 0000000..1c6853d --- /dev/null +++ b/3rdPartner/libhv/event/iowatcher.h @@ -0,0 +1,39 @@ +#ifndef IO_WATCHER_H_ +#define IO_WATCHER_H_ + +#include "hloop.h" + +#include "hplatform.h" +#if !defined(EVENT_SELECT) && \ + !defined(EVENT_POLL) && \ + !defined(EVENT_EPOLL) && \ + !defined(EVENT_KQUEUE) && \ + !defined(EVENT_IOCP) && \ + !defined(EVENT_PORT) && \ + !defined(EVENT_NOEVENT) +#ifdef OS_WIN + #if WITH_WEPOLL + #define EVENT_EPOLL // wepoll -> iocp + #else + #define EVENT_POLL // WSAPoll + #endif +#elif defined(OS_LINUX) +#define EVENT_EPOLL +#elif defined(OS_MAC) +#define EVENT_KQUEUE +#elif defined(OS_BSD) +#define EVENT_KQUEUE +#elif defined(OS_SOLARIS) +#define EVENT_PORT +#else +#define EVENT_SELECT +#endif +#endif + +int iowatcher_init(hloop_t* loop); +int iowatcher_cleanup(hloop_t* loop); +int iowatcher_add_event(hloop_t* loop, int fd, int events); +int iowatcher_del_event(hloop_t* loop, int fd, int events); +int iowatcher_poll_events(hloop_t* loop, int timeout); + +#endif diff --git a/3rdPartner/libhv/event/kcp/LICENSE b/3rdPartner/libhv/event/kcp/LICENSE new file mode 100644 index 0000000..4f9f28f --- /dev/null +++ b/3rdPartner/libhv/event/kcp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Lin Wei (skywind3000 at gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/3rdPartner/libhv/event/kcp/hkcp.c b/3rdPartner/libhv/event/kcp/hkcp.c new file mode 100644 index 0000000..2c9fe6c --- /dev/null +++ b/3rdPartner/libhv/event/kcp/hkcp.c @@ -0,0 +1,150 @@ +#include "hkcp.h" + +#if WITH_KCP + +#include "hevent.h" +#include "hlog.h" +#include "hthread.h" + +static kcp_setting_t s_kcp_setting; + +static int __kcp_output(const char* buf, int len, ikcpcb* ikcp, void* userdata) { + // printf("ikcp_output len=%d\n", len); + rudp_entry_t* rudp = (rudp_entry_t*)userdata; + assert(rudp != NULL && rudp->io != NULL); + int nsend = sendto(rudp->io->fd, buf, len, 0, &rudp->addr.sa, SOCKADDR_LEN(&rudp->addr)); + // printf("sendto nsend=%d\n", nsend); + return nsend; +} + +static void __kcp_update_timer_cb(htimer_t* timer) { + rudp_entry_t* rudp = (rudp_entry_t*)timer->privdata; + assert(rudp != NULL && rudp->io != NULL && rudp->kcp.ikcp != NULL); + ikcp_update(rudp->kcp.ikcp, (IUINT32)(rudp->io->loop->cur_hrtime / 1000)); +} + +void kcp_release(kcp_t* kcp) { + if (kcp->ikcp == NULL) return; + if (kcp->update_timer) { + htimer_del(kcp->update_timer); + kcp->update_timer = NULL; + } + HV_FREE(kcp->readbuf.base); + kcp->readbuf.len = 0; + // printf("ikcp_release ikcp=%p\n", kcp->ikcp); + ikcp_release(kcp->ikcp); + kcp->ikcp = NULL; +} + +int hio_set_kcp(hio_t* io, kcp_setting_t* setting) { + io->io_type = HIO_TYPE_KCP; + io->kcp_setting = setting; + return 0; +} + +kcp_t* hio_get_kcp(hio_t* io, uint32_t conv) { + rudp_entry_t* rudp = hio_get_rudp(io); + assert(rudp != NULL); + kcp_t* kcp = &rudp->kcp; + if (kcp->ikcp != NULL) return kcp; + if (io->kcp_setting == NULL) { + io->kcp_setting = &s_kcp_setting; + } + kcp_setting_t* setting = io->kcp_setting; + kcp->ikcp = ikcp_create(conv, rudp); + // printf("ikcp_create conv=%u ikcp=%p\n", conv, kcp->ikcp); + kcp->ikcp->output = __kcp_output; + kcp->conv = conv; + if (setting->interval > 0) { + ikcp_nodelay(kcp->ikcp, setting->nodelay, setting->interval, setting->fastresend, setting->nocwnd); + } + if (setting->sndwnd > 0 && setting->rcvwnd > 0) { + ikcp_wndsize(kcp->ikcp, setting->sndwnd, setting->rcvwnd); + } + if (setting->mtu > 0) { + ikcp_setmtu(kcp->ikcp, setting->mtu); + } + if (kcp->update_timer == NULL) { + int update_interval = setting->update_interval; + if (update_interval == 0) { + update_interval = DEFAULT_KCP_UPDATE_INTERVAL; + } + kcp->update_timer = htimer_add(io->loop, __kcp_update_timer_cb, update_interval, INFINITE); + kcp->update_timer->privdata = rudp; + } + // NOTE: alloc kcp->readbuf when hio_read_kcp + return kcp; +} + +static void hio_write_kcp_event_cb(hevent_t* ev) { + hio_t* io = (hio_t*)ev->userdata; + hbuf_t* buf = (hbuf_t*)ev->privdata; + + hio_write_kcp(io, buf->base, buf->len); + + HV_FREE(buf); +} + +static int hio_write_kcp_async(hio_t* io, const void* data, size_t len) { + hbuf_t* buf = NULL; + HV_ALLOC(buf, sizeof(hbuf_t) + len); + buf->base = (char*)buf + sizeof(hbuf_t); + buf->len = len; + memcpy(buf->base, data, len); + + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.cb = hio_write_kcp_event_cb; + ev.userdata = io; + ev.privdata = buf; + hloop_post_event(io->loop, &ev); + return len; +} + +int hio_write_kcp(hio_t* io, const void* buf, size_t len) { + if (hv_gettid() != io->loop->tid) { + return hio_write_kcp_async(io, buf, len); + } + IUINT32 conv = io->kcp_setting ? io->kcp_setting->conv : 0; + kcp_t* kcp = hio_get_kcp(io, conv); + // printf("hio_write_kcp conv=%u=%u\n", conv, kcp->conv); + int nsend = ikcp_send(kcp->ikcp, (const char*)buf, len); + // printf("ikcp_send len=%d nsend=%d\n", (int)len, nsend); + if (nsend < 0) { + hloge("ikcp_send error: %d", nsend); + return nsend; + } + ikcp_update(kcp->ikcp, (IUINT32)io->loop->cur_hrtime / 1000); + return len; +} + +int hio_read_kcp (hio_t* io, void* buf, int readbytes) { + IUINT32 conv = ikcp_getconv(buf); + kcp_t* kcp = hio_get_kcp(io, conv); + // printf("hio_read_kcp conv=%u=%u\n", conv, kcp->conv); + if (kcp->conv != conv) { + hloge("recv invalid kcp packet!"); + hio_close_rudp(io, io->peeraddr); + return -1; + } + // printf("ikcp_input len=%d\n", readbytes); + int ret = ikcp_input(kcp->ikcp, (const char*)buf, readbytes); + // printf("ikcp_input ret=%d\n", ret); + if (ret != 0) { + return 0; + } + if (kcp->readbuf.base == NULL || kcp->readbuf.len == 0) { + kcp->readbuf.len = DEFAULT_KCP_READ_BUFSIZE; + HV_ALLOC(kcp->readbuf.base, kcp->readbuf.len); + } + while (1) { + int nrecv = ikcp_recv(kcp->ikcp, kcp->readbuf.base, kcp->readbuf.len); + // printf("ikcp_recv nrecv=%d\n", nrecv); + if (nrecv < 0) break; + hio_read_cb(io, kcp->readbuf.base, nrecv); + ret += nrecv; + } + return ret; +} + +#endif diff --git a/3rdPartner/libhv/event/kcp/hkcp.h b/3rdPartner/libhv/event/kcp/hkcp.h new file mode 100644 index 0000000..ca9a061 --- /dev/null +++ b/3rdPartner/libhv/event/kcp/hkcp.h @@ -0,0 +1,30 @@ +#ifndef HV_KCP_H_ +#define HV_KCP_H_ + +#include "hloop.h" + +#if WITH_KCP + +#include "ikcp.h" +#include "hbuf.h" + +#define DEFAULT_KCP_UPDATE_INTERVAL 10 // ms +#define DEFAULT_KCP_READ_BUFSIZE 1400 + +typedef struct kcp_s { + ikcpcb* ikcp; + uint32_t conv; + htimer_t* update_timer; + hbuf_t readbuf; +} kcp_t; + +// NOTE: kcp_create in hio_get_kcp +void kcp_release(kcp_t* kcp); + +kcp_t* hio_get_kcp (hio_t* io, uint32_t conv); +int hio_read_kcp (hio_t* io, void* buf, int readbytes); +int hio_write_kcp(hio_t* io, const void* buf, size_t len); + +#endif + +#endif // HV_KCP_H_ diff --git a/3rdPartner/libhv/event/kcp/ikcp.c b/3rdPartner/libhv/event/kcp/ikcp.c new file mode 100644 index 0000000..3b70a30 --- /dev/null +++ b/3rdPartner/libhv/event/kcp/ikcp.c @@ -0,0 +1,1299 @@ +//===================================================================== +// +// KCP - A Better ARQ Protocol Implementation +// skywind3000 (at) gmail.com, 2010-2011 +// +// Features: +// + Average RTT reduce 30% - 40% vs traditional ARQ like tcp. +// + Maximum RTT reduce three times vs tcp. +// + Lightweight, distributed as a single source file. +// +//===================================================================== +#include "ikcp.h" + +#include +#include +#include +#include +#include + + + +//===================================================================== +// KCP BASIC +//===================================================================== +const IUINT32 IKCP_RTO_NDL = 30; // no delay min rto +const IUINT32 IKCP_RTO_MIN = 100; // normal min rto +const IUINT32 IKCP_RTO_DEF = 200; +const IUINT32 IKCP_RTO_MAX = 60000; +const IUINT32 IKCP_CMD_PUSH = 81; // cmd: push data +const IUINT32 IKCP_CMD_ACK = 82; // cmd: ack +const IUINT32 IKCP_CMD_WASK = 83; // cmd: window probe (ask) +const IUINT32 IKCP_CMD_WINS = 84; // cmd: window size (tell) +const IUINT32 IKCP_ASK_SEND = 1; // need to send IKCP_CMD_WASK +const IUINT32 IKCP_ASK_TELL = 2; // need to send IKCP_CMD_WINS +const IUINT32 IKCP_WND_SND = 32; +const IUINT32 IKCP_WND_RCV = 128; // must >= max fragment size +const IUINT32 IKCP_MTU_DEF = 1400; +const IUINT32 IKCP_ACK_FAST = 3; +const IUINT32 IKCP_INTERVAL = 100; +const IUINT32 IKCP_OVERHEAD = 24; +const IUINT32 IKCP_DEADLINK = 20; +const IUINT32 IKCP_THRESH_INIT = 2; +const IUINT32 IKCP_THRESH_MIN = 2; +const IUINT32 IKCP_PROBE_INIT = 7000; // 7 secs to probe window size +const IUINT32 IKCP_PROBE_LIMIT = 120000; // up to 120 secs to probe window +const IUINT32 IKCP_FASTACK_LIMIT = 5; // max times to trigger fastack + + +//--------------------------------------------------------------------- +// encode / decode +//--------------------------------------------------------------------- + +/* encode 8 bits unsigned int */ +static inline char *ikcp_encode8u(char *p, unsigned char c) +{ + *(unsigned char*)p++ = c; + return p; +} + +/* decode 8 bits unsigned int */ +static inline const char *ikcp_decode8u(const char *p, unsigned char *c) +{ + *c = *(unsigned char*)p++; + return p; +} + +/* encode 16 bits unsigned int (lsb) */ +static inline char *ikcp_encode16u(char *p, unsigned short w) +{ +#if IWORDS_BIG_ENDIAN || IWORDS_MUST_ALIGN + *(unsigned char*)(p + 0) = (w & 255); + *(unsigned char*)(p + 1) = (w >> 8); +#else + memcpy(p, &w, 2); +#endif + p += 2; + return p; +} + +/* decode 16 bits unsigned int (lsb) */ +static inline const char *ikcp_decode16u(const char *p, unsigned short *w) +{ +#if IWORDS_BIG_ENDIAN || IWORDS_MUST_ALIGN + *w = *(const unsigned char*)(p + 1); + *w = *(const unsigned char*)(p + 0) + (*w << 8); +#else + memcpy(w, p, 2); +#endif + p += 2; + return p; +} + +/* encode 32 bits unsigned int (lsb) */ +static inline char *ikcp_encode32u(char *p, IUINT32 l) +{ +#if IWORDS_BIG_ENDIAN || IWORDS_MUST_ALIGN + *(unsigned char*)(p + 0) = (unsigned char)((l >> 0) & 0xff); + *(unsigned char*)(p + 1) = (unsigned char)((l >> 8) & 0xff); + *(unsigned char*)(p + 2) = (unsigned char)((l >> 16) & 0xff); + *(unsigned char*)(p + 3) = (unsigned char)((l >> 24) & 0xff); +#else + memcpy(p, &l, 4); +#endif + p += 4; + return p; +} + +/* decode 32 bits unsigned int (lsb) */ +static inline const char *ikcp_decode32u(const char *p, IUINT32 *l) +{ +#if IWORDS_BIG_ENDIAN || IWORDS_MUST_ALIGN + *l = *(const unsigned char*)(p + 3); + *l = *(const unsigned char*)(p + 2) + (*l << 8); + *l = *(const unsigned char*)(p + 1) + (*l << 8); + *l = *(const unsigned char*)(p + 0) + (*l << 8); +#else + memcpy(l, p, 4); +#endif + p += 4; + return p; +} + +static inline IUINT32 _imin_(IUINT32 a, IUINT32 b) { + return a <= b ? a : b; +} + +static inline IUINT32 _imax_(IUINT32 a, IUINT32 b) { + return a >= b ? a : b; +} + +static inline IUINT32 _ibound_(IUINT32 lower, IUINT32 middle, IUINT32 upper) +{ + return _imin_(_imax_(lower, middle), upper); +} + +static inline long _itimediff(IUINT32 later, IUINT32 earlier) +{ + return ((IINT32)(later - earlier)); +} + +//--------------------------------------------------------------------- +// manage segment +//--------------------------------------------------------------------- +typedef struct IKCPSEG IKCPSEG; + +static void* (*ikcp_malloc_hook)(size_t) = NULL; +static void (*ikcp_free_hook)(void *) = NULL; + +// internal malloc +static void* ikcp_malloc(size_t size) { + if (ikcp_malloc_hook) + return ikcp_malloc_hook(size); + return malloc(size); +} + +// internal free +static void ikcp_free(void *ptr) { + if (ikcp_free_hook) { + ikcp_free_hook(ptr); + } else { + free(ptr); + } +} + +// redefine allocator +void ikcp_allocator(void* (*new_malloc)(size_t), void (*new_free)(void*)) +{ + ikcp_malloc_hook = new_malloc; + ikcp_free_hook = new_free; +} + +// allocate a new kcp segment +static IKCPSEG* ikcp_segment_new(ikcpcb *kcp, int size) +{ + return (IKCPSEG*)ikcp_malloc(sizeof(IKCPSEG) + size); +} + +// delete a segment +static void ikcp_segment_delete(ikcpcb *kcp, IKCPSEG *seg) +{ + ikcp_free(seg); +} + +// write log +void ikcp_log(ikcpcb *kcp, int mask, const char *fmt, ...) +{ + char buffer[1024]; + va_list argptr; + if ((mask & kcp->logmask) == 0 || kcp->writelog == 0) return; + va_start(argptr, fmt); + vsprintf(buffer, fmt, argptr); + va_end(argptr); + kcp->writelog(buffer, kcp, kcp->user); +} + +// check log mask +static int ikcp_canlog(const ikcpcb *kcp, int mask) +{ + if ((mask & kcp->logmask) == 0 || kcp->writelog == NULL) return 0; + return 1; +} + +// output segment +static int ikcp_output(ikcpcb *kcp, const void *data, int size) +{ + assert(kcp); + assert(kcp->output); + if (ikcp_canlog(kcp, IKCP_LOG_OUTPUT)) { + ikcp_log(kcp, IKCP_LOG_OUTPUT, "[RO] %ld bytes", (long)size); + } + if (size == 0) return 0; + return kcp->output((const char*)data, size, kcp, kcp->user); +} + +// output queue +void ikcp_qprint(const char *name, const struct IQUEUEHEAD *head) +{ +#if 0 + const struct IQUEUEHEAD *p; + printf("<%s>: [", name); + for (p = head->next; p != head; p = p->next) { + const IKCPSEG *seg = iqueue_entry(p, const IKCPSEG, node); + printf("(%lu %d)", (unsigned long)seg->sn, (int)(seg->ts % 10000)); + if (p->next != head) printf(","); + } + printf("]\n"); +#endif +} + + +//--------------------------------------------------------------------- +// create a new kcpcb +//--------------------------------------------------------------------- +ikcpcb* ikcp_create(IUINT32 conv, void *user) +{ + ikcpcb *kcp = (ikcpcb*)ikcp_malloc(sizeof(struct IKCPCB)); + if (kcp == NULL) return NULL; + kcp->conv = conv; + kcp->user = user; + kcp->snd_una = 0; + kcp->snd_nxt = 0; + kcp->rcv_nxt = 0; + kcp->ts_recent = 0; + kcp->ts_lastack = 0; + kcp->ts_probe = 0; + kcp->probe_wait = 0; + kcp->snd_wnd = IKCP_WND_SND; + kcp->rcv_wnd = IKCP_WND_RCV; + kcp->rmt_wnd = IKCP_WND_RCV; + kcp->cwnd = 0; + kcp->incr = 0; + kcp->probe = 0; + kcp->mtu = IKCP_MTU_DEF; + kcp->mss = kcp->mtu - IKCP_OVERHEAD; + kcp->stream = 0; + + kcp->buffer = (char*)ikcp_malloc((kcp->mtu + IKCP_OVERHEAD) * 3); + if (kcp->buffer == NULL) { + ikcp_free(kcp); + return NULL; + } + + iqueue_init(&kcp->snd_queue); + iqueue_init(&kcp->rcv_queue); + iqueue_init(&kcp->snd_buf); + iqueue_init(&kcp->rcv_buf); + kcp->nrcv_buf = 0; + kcp->nsnd_buf = 0; + kcp->nrcv_que = 0; + kcp->nsnd_que = 0; + kcp->state = 0; + kcp->acklist = NULL; + kcp->ackblock = 0; + kcp->ackcount = 0; + kcp->rx_srtt = 0; + kcp->rx_rttval = 0; + kcp->rx_rto = IKCP_RTO_DEF; + kcp->rx_minrto = IKCP_RTO_MIN; + kcp->current = 0; + kcp->interval = IKCP_INTERVAL; + kcp->ts_flush = IKCP_INTERVAL; + kcp->nodelay = 0; + kcp->updated = 0; + kcp->logmask = 0; + kcp->ssthresh = IKCP_THRESH_INIT; + kcp->fastresend = 0; + kcp->fastlimit = IKCP_FASTACK_LIMIT; + kcp->nocwnd = 0; + kcp->xmit = 0; + kcp->dead_link = IKCP_DEADLINK; + kcp->output = NULL; + kcp->writelog = NULL; + + return kcp; +} + + +//--------------------------------------------------------------------- +// release a new kcpcb +//--------------------------------------------------------------------- +void ikcp_release(ikcpcb *kcp) +{ + assert(kcp); + if (kcp) { + IKCPSEG *seg; + while (!iqueue_is_empty(&kcp->snd_buf)) { + seg = iqueue_entry(kcp->snd_buf.next, IKCPSEG, node); + iqueue_del(&seg->node); + ikcp_segment_delete(kcp, seg); + } + while (!iqueue_is_empty(&kcp->rcv_buf)) { + seg = iqueue_entry(kcp->rcv_buf.next, IKCPSEG, node); + iqueue_del(&seg->node); + ikcp_segment_delete(kcp, seg); + } + while (!iqueue_is_empty(&kcp->snd_queue)) { + seg = iqueue_entry(kcp->snd_queue.next, IKCPSEG, node); + iqueue_del(&seg->node); + ikcp_segment_delete(kcp, seg); + } + while (!iqueue_is_empty(&kcp->rcv_queue)) { + seg = iqueue_entry(kcp->rcv_queue.next, IKCPSEG, node); + iqueue_del(&seg->node); + ikcp_segment_delete(kcp, seg); + } + if (kcp->buffer) { + ikcp_free(kcp->buffer); + } + if (kcp->acklist) { + ikcp_free(kcp->acklist); + } + + kcp->nrcv_buf = 0; + kcp->nsnd_buf = 0; + kcp->nrcv_que = 0; + kcp->nsnd_que = 0; + kcp->ackcount = 0; + kcp->buffer = NULL; + kcp->acklist = NULL; + ikcp_free(kcp); + } +} + + +//--------------------------------------------------------------------- +// set output callback, which will be invoked by kcp +//--------------------------------------------------------------------- +void ikcp_setoutput(ikcpcb *kcp, int (*output)(const char *buf, int len, + ikcpcb *kcp, void *user)) +{ + kcp->output = output; +} + + +//--------------------------------------------------------------------- +// user/upper level recv: returns size, returns below zero for EAGAIN +//--------------------------------------------------------------------- +int ikcp_recv(ikcpcb *kcp, char *buffer, int len) +{ + struct IQUEUEHEAD *p; + int ispeek = (len < 0)? 1 : 0; + int peeksize; + int recover = 0; + IKCPSEG *seg; + assert(kcp); + + if (iqueue_is_empty(&kcp->rcv_queue)) + return -1; + + if (len < 0) len = -len; + + peeksize = ikcp_peeksize(kcp); + + if (peeksize < 0) + return -2; + + if (peeksize > len) + return -3; + + if (kcp->nrcv_que >= kcp->rcv_wnd) + recover = 1; + + // merge fragment + for (len = 0, p = kcp->rcv_queue.next; p != &kcp->rcv_queue; ) { + int fragment; + seg = iqueue_entry(p, IKCPSEG, node); + p = p->next; + + if (buffer) { + memcpy(buffer, seg->data, seg->len); + buffer += seg->len; + } + + len += seg->len; + fragment = seg->frg; + + if (ikcp_canlog(kcp, IKCP_LOG_RECV)) { + ikcp_log(kcp, IKCP_LOG_RECV, "recv sn=%lu", (unsigned long)seg->sn); + } + + if (ispeek == 0) { + iqueue_del(&seg->node); + ikcp_segment_delete(kcp, seg); + kcp->nrcv_que--; + } + + if (fragment == 0) + break; + } + + assert(len == peeksize); + + // move available data from rcv_buf -> rcv_queue + while (! iqueue_is_empty(&kcp->rcv_buf)) { + seg = iqueue_entry(kcp->rcv_buf.next, IKCPSEG, node); + if (seg->sn == kcp->rcv_nxt && kcp->nrcv_que < kcp->rcv_wnd) { + iqueue_del(&seg->node); + kcp->nrcv_buf--; + iqueue_add_tail(&seg->node, &kcp->rcv_queue); + kcp->nrcv_que++; + kcp->rcv_nxt++; + } else { + break; + } + } + + // fast recover + if (kcp->nrcv_que < kcp->rcv_wnd && recover) { + // ready to send back IKCP_CMD_WINS in ikcp_flush + // tell remote my window size + kcp->probe |= IKCP_ASK_TELL; + } + + return len; +} + + +//--------------------------------------------------------------------- +// peek data size +//--------------------------------------------------------------------- +int ikcp_peeksize(const ikcpcb *kcp) +{ + struct IQUEUEHEAD *p; + IKCPSEG *seg; + int length = 0; + + assert(kcp); + + if (iqueue_is_empty(&kcp->rcv_queue)) return -1; + + seg = iqueue_entry(kcp->rcv_queue.next, IKCPSEG, node); + if (seg->frg == 0) return seg->len; + + if (kcp->nrcv_que < seg->frg + 1) return -1; + + for (p = kcp->rcv_queue.next; p != &kcp->rcv_queue; p = p->next) { + seg = iqueue_entry(p, IKCPSEG, node); + length += seg->len; + if (seg->frg == 0) break; + } + + return length; +} + + +//--------------------------------------------------------------------- +// user/upper level send, returns below zero for error +//--------------------------------------------------------------------- +int ikcp_send(ikcpcb *kcp, const char *buffer, int len) +{ + IKCPSEG *seg; + int count, i; + + assert(kcp->mss > 0); + if (len < 0) return -1; + + // append to previous segment in streaming mode (if possible) + if (kcp->stream != 0) { + if (!iqueue_is_empty(&kcp->snd_queue)) { + IKCPSEG *old = iqueue_entry(kcp->snd_queue.prev, IKCPSEG, node); + if (old->len < kcp->mss) { + int capacity = kcp->mss - old->len; + int extend = (len < capacity)? len : capacity; + seg = ikcp_segment_new(kcp, old->len + extend); + assert(seg); + if (seg == NULL) { + return -2; + } + iqueue_add_tail(&seg->node, &kcp->snd_queue); + memcpy(seg->data, old->data, old->len); + if (buffer) { + memcpy(seg->data + old->len, buffer, extend); + buffer += extend; + } + seg->len = old->len + extend; + seg->frg = 0; + len -= extend; + iqueue_del_init(&old->node); + ikcp_segment_delete(kcp, old); + } + } + if (len <= 0) { + return 0; + } + } + + if (len <= (int)kcp->mss) count = 1; + else count = (len + kcp->mss - 1) / kcp->mss; + + if (count >= (int)IKCP_WND_RCV) return -2; + + if (count == 0) count = 1; + + // fragment + for (i = 0; i < count; i++) { + int size = len > (int)kcp->mss ? (int)kcp->mss : len; + seg = ikcp_segment_new(kcp, size); + assert(seg); + if (seg == NULL) { + return -2; + } + if (buffer && len > 0) { + memcpy(seg->data, buffer, size); + } + seg->len = size; + seg->frg = (kcp->stream == 0)? (count - i - 1) : 0; + iqueue_init(&seg->node); + iqueue_add_tail(&seg->node, &kcp->snd_queue); + kcp->nsnd_que++; + if (buffer) { + buffer += size; + } + len -= size; + } + + return 0; +} + + +//--------------------------------------------------------------------- +// parse ack +//--------------------------------------------------------------------- +static void ikcp_update_ack(ikcpcb *kcp, IINT32 rtt) +{ + IINT32 rto = 0; + if (kcp->rx_srtt == 0) { + kcp->rx_srtt = rtt; + kcp->rx_rttval = rtt / 2; + } else { + long delta = rtt - kcp->rx_srtt; + if (delta < 0) delta = -delta; + kcp->rx_rttval = (3 * kcp->rx_rttval + delta) / 4; + kcp->rx_srtt = (7 * kcp->rx_srtt + rtt) / 8; + if (kcp->rx_srtt < 1) kcp->rx_srtt = 1; + } + rto = kcp->rx_srtt + _imax_(kcp->interval, 4 * kcp->rx_rttval); + kcp->rx_rto = _ibound_(kcp->rx_minrto, rto, IKCP_RTO_MAX); +} + +static void ikcp_shrink_buf(ikcpcb *kcp) +{ + struct IQUEUEHEAD *p = kcp->snd_buf.next; + if (p != &kcp->snd_buf) { + IKCPSEG *seg = iqueue_entry(p, IKCPSEG, node); + kcp->snd_una = seg->sn; + } else { + kcp->snd_una = kcp->snd_nxt; + } +} + +static void ikcp_parse_ack(ikcpcb *kcp, IUINT32 sn) +{ + struct IQUEUEHEAD *p, *next; + + if (_itimediff(sn, kcp->snd_una) < 0 || _itimediff(sn, kcp->snd_nxt) >= 0) + return; + + for (p = kcp->snd_buf.next; p != &kcp->snd_buf; p = next) { + IKCPSEG *seg = iqueue_entry(p, IKCPSEG, node); + next = p->next; + if (sn == seg->sn) { + iqueue_del(p); + ikcp_segment_delete(kcp, seg); + kcp->nsnd_buf--; + break; + } + if (_itimediff(sn, seg->sn) < 0) { + break; + } + } +} + +static void ikcp_parse_una(ikcpcb *kcp, IUINT32 una) +{ + struct IQUEUEHEAD *p, *next; + for (p = kcp->snd_buf.next; p != &kcp->snd_buf; p = next) { + IKCPSEG *seg = iqueue_entry(p, IKCPSEG, node); + next = p->next; + if (_itimediff(una, seg->sn) > 0) { + iqueue_del(p); + ikcp_segment_delete(kcp, seg); + kcp->nsnd_buf--; + } else { + break; + } + } +} + +static void ikcp_parse_fastack(ikcpcb *kcp, IUINT32 sn, IUINT32 ts) +{ + struct IQUEUEHEAD *p, *next; + + if (_itimediff(sn, kcp->snd_una) < 0 || _itimediff(sn, kcp->snd_nxt) >= 0) + return; + + for (p = kcp->snd_buf.next; p != &kcp->snd_buf; p = next) { + IKCPSEG *seg = iqueue_entry(p, IKCPSEG, node); + next = p->next; + if (_itimediff(sn, seg->sn) < 0) { + break; + } + else if (sn != seg->sn) { + #ifndef IKCP_FASTACK_CONSERVE + seg->fastack++; + #else + if (_itimediff(ts, seg->ts) >= 0) + seg->fastack++; + #endif + } + } +} + + +//--------------------------------------------------------------------- +// ack append +//--------------------------------------------------------------------- +static void ikcp_ack_push(ikcpcb *kcp, IUINT32 sn, IUINT32 ts) +{ + IUINT32 newsize = kcp->ackcount + 1; + IUINT32 *ptr; + + if (newsize > kcp->ackblock) { + IUINT32 *acklist; + IUINT32 newblock; + + for (newblock = 8; newblock < newsize; newblock <<= 1); + acklist = (IUINT32*)ikcp_malloc(newblock * sizeof(IUINT32) * 2); + + if (acklist == NULL) { + assert(acklist != NULL); + abort(); + } + + if (kcp->acklist != NULL) { + IUINT32 x; + for (x = 0; x < kcp->ackcount; x++) { + acklist[x * 2 + 0] = kcp->acklist[x * 2 + 0]; + acklist[x * 2 + 1] = kcp->acklist[x * 2 + 1]; + } + ikcp_free(kcp->acklist); + } + + kcp->acklist = acklist; + kcp->ackblock = newblock; + } + + ptr = &kcp->acklist[kcp->ackcount * 2]; + ptr[0] = sn; + ptr[1] = ts; + kcp->ackcount++; +} + +static void ikcp_ack_get(const ikcpcb *kcp, int p, IUINT32 *sn, IUINT32 *ts) +{ + if (sn) sn[0] = kcp->acklist[p * 2 + 0]; + if (ts) ts[0] = kcp->acklist[p * 2 + 1]; +} + + +//--------------------------------------------------------------------- +// parse data +//--------------------------------------------------------------------- +void ikcp_parse_data(ikcpcb *kcp, IKCPSEG *newseg) +{ + struct IQUEUEHEAD *p, *prev; + IUINT32 sn = newseg->sn; + int repeat = 0; + + if (_itimediff(sn, kcp->rcv_nxt + kcp->rcv_wnd) >= 0 || + _itimediff(sn, kcp->rcv_nxt) < 0) { + ikcp_segment_delete(kcp, newseg); + return; + } + + for (p = kcp->rcv_buf.prev; p != &kcp->rcv_buf; p = prev) { + IKCPSEG *seg = iqueue_entry(p, IKCPSEG, node); + prev = p->prev; + if (seg->sn == sn) { + repeat = 1; + break; + } + if (_itimediff(sn, seg->sn) > 0) { + break; + } + } + + if (repeat == 0) { + iqueue_init(&newseg->node); + iqueue_add(&newseg->node, p); + kcp->nrcv_buf++; + } else { + ikcp_segment_delete(kcp, newseg); + } + +#if 0 + ikcp_qprint("rcvbuf", &kcp->rcv_buf); + printf("rcv_nxt=%lu\n", kcp->rcv_nxt); +#endif + + // move available data from rcv_buf -> rcv_queue + while (! iqueue_is_empty(&kcp->rcv_buf)) { + IKCPSEG *seg = iqueue_entry(kcp->rcv_buf.next, IKCPSEG, node); + if (seg->sn == kcp->rcv_nxt && kcp->nrcv_que < kcp->rcv_wnd) { + iqueue_del(&seg->node); + kcp->nrcv_buf--; + iqueue_add_tail(&seg->node, &kcp->rcv_queue); + kcp->nrcv_que++; + kcp->rcv_nxt++; + } else { + break; + } + } + +#if 0 + ikcp_qprint("queue", &kcp->rcv_queue); + printf("rcv_nxt=%lu\n", kcp->rcv_nxt); +#endif + +#if 1 +// printf("snd(buf=%d, queue=%d)\n", kcp->nsnd_buf, kcp->nsnd_que); +// printf("rcv(buf=%d, queue=%d)\n", kcp->nrcv_buf, kcp->nrcv_que); +#endif +} + + +//--------------------------------------------------------------------- +// input data +//--------------------------------------------------------------------- +int ikcp_input(ikcpcb *kcp, const char *data, long size) +{ + IUINT32 prev_una = kcp->snd_una; + IUINT32 maxack = 0, latest_ts = 0; + int flag = 0; + + if (ikcp_canlog(kcp, IKCP_LOG_INPUT)) { + ikcp_log(kcp, IKCP_LOG_INPUT, "[RI] %d bytes", (int)size); + } + + if (data == NULL || (int)size < (int)IKCP_OVERHEAD) return -1; + + while (1) { + IUINT32 ts, sn, len, una, conv; + IUINT16 wnd; + IUINT8 cmd, frg; + IKCPSEG *seg; + + if (size < (int)IKCP_OVERHEAD) break; + + data = ikcp_decode32u(data, &conv); + if (conv != kcp->conv) return -1; + + data = ikcp_decode8u(data, &cmd); + data = ikcp_decode8u(data, &frg); + data = ikcp_decode16u(data, &wnd); + data = ikcp_decode32u(data, &ts); + data = ikcp_decode32u(data, &sn); + data = ikcp_decode32u(data, &una); + data = ikcp_decode32u(data, &len); + + size -= IKCP_OVERHEAD; + + if ((long)size < (long)len || (int)len < 0) return -2; + + if (cmd != IKCP_CMD_PUSH && cmd != IKCP_CMD_ACK && + cmd != IKCP_CMD_WASK && cmd != IKCP_CMD_WINS) + return -3; + + kcp->rmt_wnd = wnd; + ikcp_parse_una(kcp, una); + ikcp_shrink_buf(kcp); + + if (cmd == IKCP_CMD_ACK) { + if (_itimediff(kcp->current, ts) >= 0) { + ikcp_update_ack(kcp, _itimediff(kcp->current, ts)); + } + ikcp_parse_ack(kcp, sn); + ikcp_shrink_buf(kcp); + if (flag == 0) { + flag = 1; + maxack = sn; + latest_ts = ts; + } else { + if (_itimediff(sn, maxack) > 0) { + #ifndef IKCP_FASTACK_CONSERVE + maxack = sn; + latest_ts = ts; + #else + if (_itimediff(ts, latest_ts) > 0) { + maxack = sn; + latest_ts = ts; + } + #endif + } + } + if (ikcp_canlog(kcp, IKCP_LOG_IN_ACK)) { + ikcp_log(kcp, IKCP_LOG_IN_ACK, + "input ack: sn=%lu rtt=%ld rto=%ld", (unsigned long)sn, + (long)_itimediff(kcp->current, ts), + (long)kcp->rx_rto); + } + } + else if (cmd == IKCP_CMD_PUSH) { + if (ikcp_canlog(kcp, IKCP_LOG_IN_DATA)) { + ikcp_log(kcp, IKCP_LOG_IN_DATA, + "input psh: sn=%lu ts=%lu", (unsigned long)sn, (unsigned long)ts); + } + if (_itimediff(sn, kcp->rcv_nxt + kcp->rcv_wnd) < 0) { + ikcp_ack_push(kcp, sn, ts); + if (_itimediff(sn, kcp->rcv_nxt) >= 0) { + seg = ikcp_segment_new(kcp, len); + seg->conv = conv; + seg->cmd = cmd; + seg->frg = frg; + seg->wnd = wnd; + seg->ts = ts; + seg->sn = sn; + seg->una = una; + seg->len = len; + + if (len > 0) { + memcpy(seg->data, data, len); + } + + ikcp_parse_data(kcp, seg); + } + } + } + else if (cmd == IKCP_CMD_WASK) { + // ready to send back IKCP_CMD_WINS in ikcp_flush + // tell remote my window size + kcp->probe |= IKCP_ASK_TELL; + if (ikcp_canlog(kcp, IKCP_LOG_IN_PROBE)) { + ikcp_log(kcp, IKCP_LOG_IN_PROBE, "input probe"); + } + } + else if (cmd == IKCP_CMD_WINS) { + // do nothing + if (ikcp_canlog(kcp, IKCP_LOG_IN_WINS)) { + ikcp_log(kcp, IKCP_LOG_IN_WINS, + "input wins: %lu", (unsigned long)(wnd)); + } + } + else { + return -3; + } + + data += len; + size -= len; + } + + if (flag != 0) { + ikcp_parse_fastack(kcp, maxack, latest_ts); + } + + if (_itimediff(kcp->snd_una, prev_una) > 0) { + if (kcp->cwnd < kcp->rmt_wnd) { + IUINT32 mss = kcp->mss; + if (kcp->cwnd < kcp->ssthresh) { + kcp->cwnd++; + kcp->incr += mss; + } else { + if (kcp->incr < mss) kcp->incr = mss; + kcp->incr += (mss * mss) / kcp->incr + (mss / 16); + if ((kcp->cwnd + 1) * mss <= kcp->incr) { + #if 1 + kcp->cwnd = (kcp->incr + mss - 1) / ((mss > 0)? mss : 1); + #else + kcp->cwnd++; + #endif + } + } + if (kcp->cwnd > kcp->rmt_wnd) { + kcp->cwnd = kcp->rmt_wnd; + kcp->incr = kcp->rmt_wnd * mss; + } + } + } + + return 0; +} + + +//--------------------------------------------------------------------- +// ikcp_encode_seg +//--------------------------------------------------------------------- +static char *ikcp_encode_seg(char *ptr, const IKCPSEG *seg) +{ + ptr = ikcp_encode32u(ptr, seg->conv); + ptr = ikcp_encode8u(ptr, (IUINT8)seg->cmd); + ptr = ikcp_encode8u(ptr, (IUINT8)seg->frg); + ptr = ikcp_encode16u(ptr, (IUINT16)seg->wnd); + ptr = ikcp_encode32u(ptr, seg->ts); + ptr = ikcp_encode32u(ptr, seg->sn); + ptr = ikcp_encode32u(ptr, seg->una); + ptr = ikcp_encode32u(ptr, seg->len); + return ptr; +} + +static int ikcp_wnd_unused(const ikcpcb *kcp) +{ + if (kcp->nrcv_que < kcp->rcv_wnd) { + return kcp->rcv_wnd - kcp->nrcv_que; + } + return 0; +} + + +//--------------------------------------------------------------------- +// ikcp_flush +//--------------------------------------------------------------------- +void ikcp_flush(ikcpcb *kcp) +{ + IUINT32 current = kcp->current; + char *buffer = kcp->buffer; + char *ptr = buffer; + int count, size, i; + IUINT32 resent, cwnd; + IUINT32 rtomin; + struct IQUEUEHEAD *p; + int change = 0; + int lost = 0; + IKCPSEG seg; + + // 'ikcp_update' haven't been called. + if (kcp->updated == 0) return; + + seg.conv = kcp->conv; + seg.cmd = IKCP_CMD_ACK; + seg.frg = 0; + seg.wnd = ikcp_wnd_unused(kcp); + seg.una = kcp->rcv_nxt; + seg.len = 0; + seg.sn = 0; + seg.ts = 0; + + // flush acknowledges + count = kcp->ackcount; + for (i = 0; i < count; i++) { + size = (int)(ptr - buffer); + if (size + (int)IKCP_OVERHEAD > (int)kcp->mtu) { + ikcp_output(kcp, buffer, size); + ptr = buffer; + } + ikcp_ack_get(kcp, i, &seg.sn, &seg.ts); + ptr = ikcp_encode_seg(ptr, &seg); + } + + kcp->ackcount = 0; + + // probe window size (if remote window size equals zero) + if (kcp->rmt_wnd == 0) { + if (kcp->probe_wait == 0) { + kcp->probe_wait = IKCP_PROBE_INIT; + kcp->ts_probe = kcp->current + kcp->probe_wait; + } + else { + if (_itimediff(kcp->current, kcp->ts_probe) >= 0) { + if (kcp->probe_wait < IKCP_PROBE_INIT) + kcp->probe_wait = IKCP_PROBE_INIT; + kcp->probe_wait += kcp->probe_wait / 2; + if (kcp->probe_wait > IKCP_PROBE_LIMIT) + kcp->probe_wait = IKCP_PROBE_LIMIT; + kcp->ts_probe = kcp->current + kcp->probe_wait; + kcp->probe |= IKCP_ASK_SEND; + } + } + } else { + kcp->ts_probe = 0; + kcp->probe_wait = 0; + } + + // flush window probing commands + if (kcp->probe & IKCP_ASK_SEND) { + seg.cmd = IKCP_CMD_WASK; + size = (int)(ptr - buffer); + if (size + (int)IKCP_OVERHEAD > (int)kcp->mtu) { + ikcp_output(kcp, buffer, size); + ptr = buffer; + } + ptr = ikcp_encode_seg(ptr, &seg); + } + + // flush window probing commands + if (kcp->probe & IKCP_ASK_TELL) { + seg.cmd = IKCP_CMD_WINS; + size = (int)(ptr - buffer); + if (size + (int)IKCP_OVERHEAD > (int)kcp->mtu) { + ikcp_output(kcp, buffer, size); + ptr = buffer; + } + ptr = ikcp_encode_seg(ptr, &seg); + } + + kcp->probe = 0; + + // calculate window size + cwnd = _imin_(kcp->snd_wnd, kcp->rmt_wnd); + if (kcp->nocwnd == 0) cwnd = _imin_(kcp->cwnd, cwnd); + + // move data from snd_queue to snd_buf + while (_itimediff(kcp->snd_nxt, kcp->snd_una + cwnd) < 0) { + IKCPSEG *newseg; + if (iqueue_is_empty(&kcp->snd_queue)) break; + + newseg = iqueue_entry(kcp->snd_queue.next, IKCPSEG, node); + + iqueue_del(&newseg->node); + iqueue_add_tail(&newseg->node, &kcp->snd_buf); + kcp->nsnd_que--; + kcp->nsnd_buf++; + + newseg->conv = kcp->conv; + newseg->cmd = IKCP_CMD_PUSH; + newseg->wnd = seg.wnd; + newseg->ts = current; + newseg->sn = kcp->snd_nxt++; + newseg->una = kcp->rcv_nxt; + newseg->resendts = current; + newseg->rto = kcp->rx_rto; + newseg->fastack = 0; + newseg->xmit = 0; + } + + // calculate resent + resent = (kcp->fastresend > 0)? (IUINT32)kcp->fastresend : 0xffffffff; + rtomin = (kcp->nodelay == 0)? (kcp->rx_rto >> 3) : 0; + + // flush data segments + for (p = kcp->snd_buf.next; p != &kcp->snd_buf; p = p->next) { + IKCPSEG *segment = iqueue_entry(p, IKCPSEG, node); + int needsend = 0; + if (segment->xmit == 0) { + needsend = 1; + segment->xmit++; + segment->rto = kcp->rx_rto; + segment->resendts = current + segment->rto + rtomin; + } + else if (_itimediff(current, segment->resendts) >= 0) { + needsend = 1; + segment->xmit++; + kcp->xmit++; + if (kcp->nodelay == 0) { + segment->rto += _imax_(segment->rto, (IUINT32)kcp->rx_rto); + } else { + IINT32 step = (kcp->nodelay < 2)? + ((IINT32)(segment->rto)) : kcp->rx_rto; + segment->rto += step / 2; + } + segment->resendts = current + segment->rto; + lost = 1; + } + else if (segment->fastack >= resent) { + if ((int)segment->xmit <= kcp->fastlimit || + kcp->fastlimit <= 0) { + needsend = 1; + segment->xmit++; + segment->fastack = 0; + segment->resendts = current + segment->rto; + change++; + } + } + + if (needsend) { + int need; + segment->ts = current; + segment->wnd = seg.wnd; + segment->una = kcp->rcv_nxt; + + size = (int)(ptr - buffer); + need = IKCP_OVERHEAD + segment->len; + + if (size + need > (int)kcp->mtu) { + ikcp_output(kcp, buffer, size); + ptr = buffer; + } + + ptr = ikcp_encode_seg(ptr, segment); + + if (segment->len > 0) { + memcpy(ptr, segment->data, segment->len); + ptr += segment->len; + } + + if (segment->xmit >= kcp->dead_link) { + kcp->state = (IUINT32)-1; + } + } + } + + // flash remain segments + size = (int)(ptr - buffer); + if (size > 0) { + ikcp_output(kcp, buffer, size); + } + + // update ssthresh + if (change) { + IUINT32 inflight = kcp->snd_nxt - kcp->snd_una; + kcp->ssthresh = inflight / 2; + if (kcp->ssthresh < IKCP_THRESH_MIN) + kcp->ssthresh = IKCP_THRESH_MIN; + kcp->cwnd = kcp->ssthresh + resent; + kcp->incr = kcp->cwnd * kcp->mss; + } + + if (lost) { + kcp->ssthresh = cwnd / 2; + if (kcp->ssthresh < IKCP_THRESH_MIN) + kcp->ssthresh = IKCP_THRESH_MIN; + kcp->cwnd = 1; + kcp->incr = kcp->mss; + } + + if (kcp->cwnd < 1) { + kcp->cwnd = 1; + kcp->incr = kcp->mss; + } +} + + +//--------------------------------------------------------------------- +// update state (call it repeatedly, every 10ms-100ms), or you can ask +// ikcp_check when to call it again (without ikcp_input/_send calling). +// 'current' - current timestamp in millisec. +//--------------------------------------------------------------------- +void ikcp_update(ikcpcb *kcp, IUINT32 current) +{ + IINT32 slap; + + kcp->current = current; + + if (kcp->updated == 0) { + kcp->updated = 1; + kcp->ts_flush = kcp->current; + } + + slap = _itimediff(kcp->current, kcp->ts_flush); + + if (slap >= 10000 || slap < -10000) { + kcp->ts_flush = kcp->current; + slap = 0; + } + + if (slap >= 0) { + kcp->ts_flush += kcp->interval; + if (_itimediff(kcp->current, kcp->ts_flush) >= 0) { + kcp->ts_flush = kcp->current + kcp->interval; + } + ikcp_flush(kcp); + } +} + + +//--------------------------------------------------------------------- +// Determine when should you invoke ikcp_update: +// returns when you should invoke ikcp_update in millisec, if there +// is no ikcp_input/_send calling. you can call ikcp_update in that +// time, instead of call update repeatly. +// Important to reduce unnacessary ikcp_update invoking. use it to +// schedule ikcp_update (eg. implementing an epoll-like mechanism, +// or optimize ikcp_update when handling massive kcp connections) +//--------------------------------------------------------------------- +IUINT32 ikcp_check(const ikcpcb *kcp, IUINT32 current) +{ + IUINT32 ts_flush = kcp->ts_flush; + IINT32 tm_flush = 0x7fffffff; + IINT32 tm_packet = 0x7fffffff; + IUINT32 minimal = 0; + struct IQUEUEHEAD *p; + + if (kcp->updated == 0) { + return current; + } + + if (_itimediff(current, ts_flush) >= 10000 || + _itimediff(current, ts_flush) < -10000) { + ts_flush = current; + } + + if (_itimediff(current, ts_flush) >= 0) { + return current; + } + + tm_flush = _itimediff(ts_flush, current); + + for (p = kcp->snd_buf.next; p != &kcp->snd_buf; p = p->next) { + const IKCPSEG *seg = iqueue_entry(p, const IKCPSEG, node); + IINT32 diff = _itimediff(seg->resendts, current); + if (diff <= 0) { + return current; + } + if (diff < tm_packet) tm_packet = diff; + } + + minimal = (IUINT32)(tm_packet < tm_flush ? tm_packet : tm_flush); + if (minimal >= kcp->interval) minimal = kcp->interval; + + return current + minimal; +} + + + +int ikcp_setmtu(ikcpcb *kcp, int mtu) +{ + char *buffer; + if (mtu < 50 || mtu < (int)IKCP_OVERHEAD) + return -1; + buffer = (char*)ikcp_malloc((mtu + IKCP_OVERHEAD) * 3); + if (buffer == NULL) + return -2; + kcp->mtu = mtu; + kcp->mss = kcp->mtu - IKCP_OVERHEAD; + ikcp_free(kcp->buffer); + kcp->buffer = buffer; + return 0; +} + +int ikcp_interval(ikcpcb *kcp, int interval) +{ + if (interval > 5000) interval = 5000; + else if (interval < 10) interval = 10; + kcp->interval = interval; + return 0; +} + +int ikcp_nodelay(ikcpcb *kcp, int nodelay, int interval, int resend, int nc) +{ + if (nodelay >= 0) { + kcp->nodelay = nodelay; + if (nodelay) { + kcp->rx_minrto = IKCP_RTO_NDL; + } + else { + kcp->rx_minrto = IKCP_RTO_MIN; + } + } + if (interval >= 0) { + if (interval > 5000) interval = 5000; + else if (interval < 10) interval = 10; + kcp->interval = interval; + } + if (resend >= 0) { + kcp->fastresend = resend; + } + if (nc >= 0) { + kcp->nocwnd = nc; + } + return 0; +} + + +int ikcp_wndsize(ikcpcb *kcp, int sndwnd, int rcvwnd) +{ + if (kcp) { + if (sndwnd > 0) { + kcp->snd_wnd = sndwnd; + } + if (rcvwnd > 0) { // must >= max fragment size + kcp->rcv_wnd = _imax_(rcvwnd, IKCP_WND_RCV); + } + } + return 0; +} + +int ikcp_waitsnd(const ikcpcb *kcp) +{ + return kcp->nsnd_buf + kcp->nsnd_que; +} + + +// read conv +IUINT32 ikcp_getconv(const void *ptr) +{ + IUINT32 conv; + ikcp_decode32u((const char*)ptr, &conv); + return conv; +} + + diff --git a/3rdPartner/libhv/event/kcp/ikcp.h b/3rdPartner/libhv/event/kcp/ikcp.h new file mode 100644 index 0000000..b8c337f --- /dev/null +++ b/3rdPartner/libhv/event/kcp/ikcp.h @@ -0,0 +1,416 @@ +//===================================================================== +// +// KCP - A Better ARQ Protocol Implementation +// skywind3000 (at) gmail.com, 2010-2011 +// +// Features: +// + Average RTT reduce 30% - 40% vs traditional ARQ like tcp. +// + Maximum RTT reduce three times vs tcp. +// + Lightweight, distributed as a single source file. +// +//===================================================================== +#ifndef __IKCP_H__ +#define __IKCP_H__ + +#include +#include +#include + + +//===================================================================== +// 32BIT INTEGER DEFINITION +//===================================================================== +#ifndef __INTEGER_32_BITS__ +#define __INTEGER_32_BITS__ +#if defined(_WIN64) || defined(WIN64) || defined(__amd64__) || \ + defined(__x86_64) || defined(__x86_64__) || defined(_M_IA64) || \ + defined(_M_AMD64) + typedef unsigned int ISTDUINT32; + typedef int ISTDINT32; +#elif defined(_WIN32) || defined(WIN32) || defined(__i386__) || \ + defined(__i386) || defined(_M_X86) + typedef unsigned long ISTDUINT32; + typedef long ISTDINT32; +#elif defined(__MACOS__) + typedef UInt32 ISTDUINT32; + typedef SInt32 ISTDINT32; +#elif defined(__APPLE__) && defined(__MACH__) + #include + typedef u_int32_t ISTDUINT32; + typedef int32_t ISTDINT32; +#elif defined(__BEOS__) + #include + typedef u_int32_t ISTDUINT32; + typedef int32_t ISTDINT32; +#elif (defined(_MSC_VER) || defined(__BORLANDC__)) && (!defined(__MSDOS__)) + typedef unsigned __int32 ISTDUINT32; + typedef __int32 ISTDINT32; +#elif defined(__GNUC__) + #include + typedef uint32_t ISTDUINT32; + typedef int32_t ISTDINT32; +#else + typedef unsigned long ISTDUINT32; + typedef long ISTDINT32; +#endif +#endif + + +//===================================================================== +// Integer Definition +//===================================================================== +#ifndef __IINT8_DEFINED +#define __IINT8_DEFINED +typedef char IINT8; +#endif + +#ifndef __IUINT8_DEFINED +#define __IUINT8_DEFINED +typedef unsigned char IUINT8; +#endif + +#ifndef __IUINT16_DEFINED +#define __IUINT16_DEFINED +typedef unsigned short IUINT16; +#endif + +#ifndef __IINT16_DEFINED +#define __IINT16_DEFINED +typedef short IINT16; +#endif + +#ifndef __IINT32_DEFINED +#define __IINT32_DEFINED +typedef ISTDINT32 IINT32; +#endif + +#ifndef __IUINT32_DEFINED +#define __IUINT32_DEFINED +typedef ISTDUINT32 IUINT32; +#endif + +#ifndef __IINT64_DEFINED +#define __IINT64_DEFINED +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef __int64 IINT64; +#else +typedef long long IINT64; +#endif +#endif + +#ifndef __IUINT64_DEFINED +#define __IUINT64_DEFINED +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef unsigned __int64 IUINT64; +#else +typedef unsigned long long IUINT64; +#endif +#endif + +#ifndef INLINE +#if defined(__GNUC__) + +#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) +#define INLINE __inline__ __attribute__((always_inline)) +#else +#define INLINE __inline__ +#endif + +#elif (defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) +#define INLINE __inline +#else +#define INLINE +#endif +#endif + +#if (!defined(__cplusplus)) && (!defined(inline)) +#define inline INLINE +#endif + + +//===================================================================== +// QUEUE DEFINITION +//===================================================================== +#ifndef __IQUEUE_DEF__ +#define __IQUEUE_DEF__ + +struct IQUEUEHEAD { + struct IQUEUEHEAD *next, *prev; +}; + +typedef struct IQUEUEHEAD iqueue_head; + + +//--------------------------------------------------------------------- +// queue init +//--------------------------------------------------------------------- +#define IQUEUE_HEAD_INIT(name) { &(name), &(name) } +#define IQUEUE_HEAD(name) \ + struct IQUEUEHEAD name = IQUEUE_HEAD_INIT(name) + +#define IQUEUE_INIT(ptr) ( \ + (ptr)->next = (ptr), (ptr)->prev = (ptr)) + +#define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) + +#define ICONTAINEROF(ptr, type, member) ( \ + (type*)( ((char*)((type*)ptr)) - IOFFSETOF(type, member)) ) + +#define IQUEUE_ENTRY(ptr, type, member) ICONTAINEROF(ptr, type, member) + + +//--------------------------------------------------------------------- +// queue operation +//--------------------------------------------------------------------- +#define IQUEUE_ADD(node, head) ( \ + (node)->prev = (head), (node)->next = (head)->next, \ + (head)->next->prev = (node), (head)->next = (node)) + +#define IQUEUE_ADD_TAIL(node, head) ( \ + (node)->prev = (head)->prev, (node)->next = (head), \ + (head)->prev->next = (node), (head)->prev = (node)) + +#define IQUEUE_DEL_BETWEEN(p, n) ((n)->prev = (p), (p)->next = (n)) + +#define IQUEUE_DEL(entry) (\ + (entry)->next->prev = (entry)->prev, \ + (entry)->prev->next = (entry)->next, \ + (entry)->next = 0, (entry)->prev = 0) + +#define IQUEUE_DEL_INIT(entry) do { \ + IQUEUE_DEL(entry); IQUEUE_INIT(entry); } while (0) + +#define IQUEUE_IS_EMPTY(entry) ((entry) == (entry)->next) + +#define iqueue_init IQUEUE_INIT +#define iqueue_entry IQUEUE_ENTRY +#define iqueue_add IQUEUE_ADD +#define iqueue_add_tail IQUEUE_ADD_TAIL +#define iqueue_del IQUEUE_DEL +#define iqueue_del_init IQUEUE_DEL_INIT +#define iqueue_is_empty IQUEUE_IS_EMPTY + +#define IQUEUE_FOREACH(iterator, head, TYPE, MEMBER) \ + for ((iterator) = iqueue_entry((head)->next, TYPE, MEMBER); \ + &((iterator)->MEMBER) != (head); \ + (iterator) = iqueue_entry((iterator)->MEMBER.next, TYPE, MEMBER)) + +#define iqueue_foreach(iterator, head, TYPE, MEMBER) \ + IQUEUE_FOREACH(iterator, head, TYPE, MEMBER) + +#define iqueue_foreach_entry(pos, head) \ + for( (pos) = (head)->next; (pos) != (head) ; (pos) = (pos)->next ) + + +#define __iqueue_splice(list, head) do { \ + iqueue_head *first = (list)->next, *last = (list)->prev; \ + iqueue_head *at = (head)->next; \ + (first)->prev = (head), (head)->next = (first); \ + (last)->next = (at), (at)->prev = (last); } while (0) + +#define iqueue_splice(list, head) do { \ + if (!iqueue_is_empty(list)) __iqueue_splice(list, head); } while (0) + +#define iqueue_splice_init(list, head) do { \ + iqueue_splice(list, head); iqueue_init(list); } while (0) + + +#ifdef _MSC_VER +#pragma warning(disable:4311) +#pragma warning(disable:4312) +#pragma warning(disable:4996) +#endif + +#endif + + +//--------------------------------------------------------------------- +// BYTE ORDER & ALIGNMENT +//--------------------------------------------------------------------- +#ifndef IWORDS_BIG_ENDIAN + #ifdef _BIG_ENDIAN_ + #if _BIG_ENDIAN_ + #define IWORDS_BIG_ENDIAN 1 + #endif + #endif + #ifndef IWORDS_BIG_ENDIAN + #if defined(__hppa__) || \ + defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ + (defined(__MIPS__) && defined(__MIPSEB__)) || \ + defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ + defined(__sparc__) || defined(__powerpc__) || \ + defined(__mc68000__) || defined(__s390x__) || defined(__s390__) + #define IWORDS_BIG_ENDIAN 1 + #endif + #endif + #ifndef IWORDS_BIG_ENDIAN + #define IWORDS_BIG_ENDIAN 0 + #endif +#endif + +#ifndef IWORDS_MUST_ALIGN + #if defined(__i386__) || defined(__i386) || defined(_i386_) + #define IWORDS_MUST_ALIGN 0 + #elif defined(_M_IX86) || defined(_X86_) || defined(__x86_64__) + #define IWORDS_MUST_ALIGN 0 + #elif defined(__amd64) || defined(__amd64__) + #define IWORDS_MUST_ALIGN 0 + #else + #define IWORDS_MUST_ALIGN 1 + #endif +#endif + + +//===================================================================== +// SEGMENT +//===================================================================== +struct IKCPSEG +{ + struct IQUEUEHEAD node; + IUINT32 conv; + IUINT32 cmd; + IUINT32 frg; + IUINT32 wnd; + IUINT32 ts; + IUINT32 sn; + IUINT32 una; + IUINT32 len; + IUINT32 resendts; + IUINT32 rto; + IUINT32 fastack; + IUINT32 xmit; + char data[1]; +}; + + +//--------------------------------------------------------------------- +// IKCPCB +//--------------------------------------------------------------------- +struct IKCPCB +{ + IUINT32 conv, mtu, mss, state; + IUINT32 snd_una, snd_nxt, rcv_nxt; + IUINT32 ts_recent, ts_lastack, ssthresh; + IINT32 rx_rttval, rx_srtt, rx_rto, rx_minrto; + IUINT32 snd_wnd, rcv_wnd, rmt_wnd, cwnd, probe; + IUINT32 current, interval, ts_flush, xmit; + IUINT32 nrcv_buf, nsnd_buf; + IUINT32 nrcv_que, nsnd_que; + IUINT32 nodelay, updated; + IUINT32 ts_probe, probe_wait; + IUINT32 dead_link, incr; + struct IQUEUEHEAD snd_queue; + struct IQUEUEHEAD rcv_queue; + struct IQUEUEHEAD snd_buf; + struct IQUEUEHEAD rcv_buf; + IUINT32 *acklist; + IUINT32 ackcount; + IUINT32 ackblock; + void *user; + char *buffer; + int fastresend; + int fastlimit; + int nocwnd, stream; + int logmask; + int (*output)(const char *buf, int len, struct IKCPCB *kcp, void *user); + void (*writelog)(const char *log, struct IKCPCB *kcp, void *user); +}; + + +typedef struct IKCPCB ikcpcb; + +#define IKCP_LOG_OUTPUT 1 +#define IKCP_LOG_INPUT 2 +#define IKCP_LOG_SEND 4 +#define IKCP_LOG_RECV 8 +#define IKCP_LOG_IN_DATA 16 +#define IKCP_LOG_IN_ACK 32 +#define IKCP_LOG_IN_PROBE 64 +#define IKCP_LOG_IN_WINS 128 +#define IKCP_LOG_OUT_DATA 256 +#define IKCP_LOG_OUT_ACK 512 +#define IKCP_LOG_OUT_PROBE 1024 +#define IKCP_LOG_OUT_WINS 2048 + +#ifdef __cplusplus +extern "C" { +#endif + +//--------------------------------------------------------------------- +// interface +//--------------------------------------------------------------------- + +// create a new kcp control object, 'conv' must equal in two endpoint +// from the same connection. 'user' will be passed to the output callback +// output callback can be setup like this: 'kcp->output = my_udp_output' +ikcpcb* ikcp_create(IUINT32 conv, void *user); + +// release kcp control object +void ikcp_release(ikcpcb *kcp); + +// set output callback, which will be invoked by kcp +void ikcp_setoutput(ikcpcb *kcp, int (*output)(const char *buf, int len, + ikcpcb *kcp, void *user)); + +// user/upper level recv: returns size, returns below zero for EAGAIN +int ikcp_recv(ikcpcb *kcp, char *buffer, int len); + +// user/upper level send, returns below zero for error +int ikcp_send(ikcpcb *kcp, const char *buffer, int len); + +// update state (call it repeatedly, every 10ms-100ms), or you can ask +// ikcp_check when to call it again (without ikcp_input/_send calling). +// 'current' - current timestamp in millisec. +void ikcp_update(ikcpcb *kcp, IUINT32 current); + +// Determine when should you invoke ikcp_update: +// returns when you should invoke ikcp_update in millisec, if there +// is no ikcp_input/_send calling. you can call ikcp_update in that +// time, instead of call update repeatly. +// Important to reduce unnacessary ikcp_update invoking. use it to +// schedule ikcp_update (eg. implementing an epoll-like mechanism, +// or optimize ikcp_update when handling massive kcp connections) +IUINT32 ikcp_check(const ikcpcb *kcp, IUINT32 current); + +// when you received a low level packet (eg. UDP packet), call it +int ikcp_input(ikcpcb *kcp, const char *data, long size); + +// flush pending data +void ikcp_flush(ikcpcb *kcp); + +// check the size of next message in the recv queue +int ikcp_peeksize(const ikcpcb *kcp); + +// change MTU size, default is 1400 +int ikcp_setmtu(ikcpcb *kcp, int mtu); + +// set maximum window size: sndwnd=32, rcvwnd=32 by default +int ikcp_wndsize(ikcpcb *kcp, int sndwnd, int rcvwnd); + +// get how many packet is waiting to be sent +int ikcp_waitsnd(const ikcpcb *kcp); + +// fastest: ikcp_nodelay(kcp, 1, 20, 2, 1) +// nodelay: 0:disable(default), 1:enable +// interval: internal update timer interval in millisec, default is 100ms +// resend: 0:disable fast resend(default), 1:enable fast resend +// nc: 0:normal congestion control(default), 1:disable congestion control +int ikcp_nodelay(ikcpcb *kcp, int nodelay, int interval, int resend, int nc); + + +void ikcp_log(ikcpcb *kcp, int mask, const char *fmt, ...); + +// setup allocator +void ikcp_allocator(void* (*new_malloc)(size_t), void (*new_free)(void*)); + +// read conv +IUINT32 ikcp_getconv(const void *ptr); + + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/3rdPartner/libhv/event/kqueue.c b/3rdPartner/libhv/event/kqueue.c new file mode 100644 index 0000000..5416280 --- /dev/null +++ b/3rdPartner/libhv/event/kqueue.c @@ -0,0 +1,174 @@ +#include "iowatcher.h" + +#ifdef EVENT_KQUEUE +#include "hplatform.h" +#include "hdef.h" + +#include + +#include "hevent.h" + +#define EVENTS_INIT_SIZE 64 + +#define READ_INDEX 0 +#define WRITE_INDEX 1 +#define EVENT_INDEX(type) ((type == EVFILT_READ) ? READ_INDEX : WRITE_INDEX) + +typedef struct kqueue_ctx_s { + int kqfd; + int capacity; + int nchanges; + struct kevent* changes; + //int nevents; // nevents == nchanges + struct kevent* events; +} kqueue_ctx_t; + +static void kqueue_ctx_resize(kqueue_ctx_t* kqueue_ctx, int size) { + int bytes = sizeof(struct kevent) * size; + int oldbytes = sizeof(struct kevent) * kqueue_ctx->capacity; + kqueue_ctx->changes = (struct kevent*)hv_realloc(kqueue_ctx->changes, bytes, oldbytes); + kqueue_ctx->events = (struct kevent*)hv_realloc(kqueue_ctx->events, bytes, oldbytes); + kqueue_ctx->capacity = size; +} + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + kqueue_ctx_t* kqueue_ctx; + HV_ALLOC_SIZEOF(kqueue_ctx); + kqueue_ctx->kqfd = kqueue(); + kqueue_ctx->capacity = EVENTS_INIT_SIZE; + kqueue_ctx->nchanges = 0; + int bytes = sizeof(struct kevent) * kqueue_ctx->capacity; + HV_ALLOC(kqueue_ctx->changes, bytes); + HV_ALLOC(kqueue_ctx->events, bytes); + loop->iowatcher = kqueue_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + if (loop->iowatcher == NULL) return 0; + kqueue_ctx_t* kqueue_ctx = (kqueue_ctx_t*)loop->iowatcher; + close(kqueue_ctx->kqfd); + HV_FREE(kqueue_ctx->changes); + HV_FREE(kqueue_ctx->events); + HV_FREE(loop->iowatcher); + return 0; +} + +static int __add_event(hloop_t* loop, int fd, int event) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + kqueue_ctx_t* kqueue_ctx = (kqueue_ctx_t*)loop->iowatcher; + hio_t* io = loop->ios.ptr[fd]; + int idx = io->event_index[EVENT_INDEX(event)]; + if (idx < 0) { + io->event_index[EVENT_INDEX(event)] = idx = kqueue_ctx->nchanges; + kqueue_ctx->nchanges++; + if (idx == kqueue_ctx->capacity) { + kqueue_ctx_resize(kqueue_ctx, kqueue_ctx->capacity*2); + } + memset(kqueue_ctx->changes+idx, 0, sizeof(struct kevent)); + kqueue_ctx->changes[idx].ident = fd; + } + assert(kqueue_ctx->changes[idx].ident == fd); + kqueue_ctx->changes[idx].filter = event; + kqueue_ctx->changes[idx].flags = EV_ADD|EV_ENABLE; + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = 0; + kevent(kqueue_ctx->kqfd, kqueue_ctx->changes, kqueue_ctx->nchanges, NULL, 0, &ts); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (events & HV_READ) { + __add_event(loop, fd, EVFILT_READ); + } + if (events & HV_WRITE) { + __add_event(loop, fd, EVFILT_WRITE); + } + return 0; +} + +static int __del_event(hloop_t* loop, int fd, int event) { + kqueue_ctx_t* kqueue_ctx = (kqueue_ctx_t*)loop->iowatcher; + if (kqueue_ctx == NULL) return 0; + hio_t* io = loop->ios.ptr[fd]; + int idx = io->event_index[EVENT_INDEX(event)]; + if (idx < 0) return 0; + assert(kqueue_ctx->changes[idx].ident == fd); + kqueue_ctx->changes[idx].flags = EV_DELETE; + io->event_index[EVENT_INDEX(event)] = -1; + int lastidx = kqueue_ctx->nchanges - 1; + if (idx < lastidx) { + // swap + struct kevent tmp; + tmp = kqueue_ctx->changes[idx]; + kqueue_ctx->changes[idx] = kqueue_ctx->changes[lastidx]; + kqueue_ctx->changes[lastidx] = tmp; + hio_t* last = loop->ios.ptr[kqueue_ctx->changes[idx].ident]; + if (last) { + last->event_index[EVENT_INDEX(kqueue_ctx->changes[idx].filter)] = idx; + } + } + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = 0; + kevent(kqueue_ctx->kqfd, kqueue_ctx->changes, kqueue_ctx->nchanges, NULL, 0, &ts); + kqueue_ctx->nchanges--; + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + if (events & HV_READ) { + __del_event(loop, fd, EVFILT_READ); + } + if (events & HV_WRITE) { + __del_event(loop, fd, EVFILT_WRITE); + } + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + kqueue_ctx_t* kqueue_ctx = (kqueue_ctx_t*)loop->iowatcher; + if (kqueue_ctx == NULL) return 0; + if (kqueue_ctx->nchanges == 0) return 0; + struct timespec ts, *tp; + if (timeout == INFINITE) { + tp = NULL; + } + else { + ts.tv_sec = timeout / 1000; + ts.tv_nsec = (timeout % 1000) * 1000000; + tp = &ts; + } + int nkqueue = kevent(kqueue_ctx->kqfd, kqueue_ctx->changes, kqueue_ctx->nchanges, kqueue_ctx->events, kqueue_ctx->nchanges, tp); + if (nkqueue < 0) { + perror("kevent"); + return nkqueue; + } + if (nkqueue == 0) return 0; + int nevents = 0; + for (int i = 0; i < nkqueue; ++i) { + if (kqueue_ctx->events[i].flags & EV_ERROR) { + continue; + } + ++nevents; + int fd = kqueue_ctx->events[i].ident; + int revents = kqueue_ctx->events[i].filter; + hio_t* io = loop->ios.ptr[fd]; + if (io) { + if (revents & EVFILT_READ) { + io->revents |= HV_READ; + } + if (revents & EVFILT_WRITE) { + io->revents |= HV_WRITE; + } + EVENT_PENDING(io); + } + if (nevents == nkqueue) break; + } + return nevents; +} +#endif diff --git a/3rdPartner/libhv/event/nio.c b/3rdPartner/libhv/event/nio.c new file mode 100644 index 0000000..14f43e2 --- /dev/null +++ b/3rdPartner/libhv/event/nio.c @@ -0,0 +1,606 @@ +#include "iowatcher.h" +#ifndef EVENT_IOCP +#include "hevent.h" +#include "hsocket.h" +#include "hssl.h" +#include "hlog.h" +#include "herr.h" +#include "hthread.h" + +static void __connect_timeout_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + if (io) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + hlogw("connect timeout [%s] <=> [%s]", + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + io->error = ETIMEDOUT; + hio_close(io); + } +} + +static void __close_timeout_cb(htimer_t* timer) { + hio_t* io = (hio_t*)timer->privdata; + if (io) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + hlogw("close timeout [%s] <=> [%s]", + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + io->error = ETIMEDOUT; + hio_close(io); + } +} + +static void __accept_cb(hio_t* io) { + hio_accept_cb(io); +} + +static void __connect_cb(hio_t* io) { + hio_del_connect_timer(io); + hio_connect_cb(io); +} + +static void __read_cb(hio_t* io, void* buf, int readbytes) { + // printd("> %.*s\n", readbytes, buf); + io->last_read_hrtime = io->loop->cur_hrtime; + hio_handle_read(io, buf, readbytes); +} + +static void __write_cb(hio_t* io, const void* buf, int writebytes) { + // printd("< %.*s\n", writebytes, buf); + io->last_write_hrtime = io->loop->cur_hrtime; + hio_write_cb(io, buf, writebytes); +} + +static void __close_cb(hio_t* io) { + // printd("close fd=%d\n", io->fd); + hio_del_connect_timer(io); + hio_del_close_timer(io); + hio_del_read_timer(io); + hio_del_write_timer(io); + hio_del_keepalive_timer(io); + hio_del_heartbeat_timer(io); + hio_close_cb(io); +} + +static void ssl_server_handshake(hio_t* io) { + printd("ssl server handshake...\n"); + int ret = hssl_accept(io->ssl); + if (ret == 0) { + // handshake finish + hio_del(io, HV_READ); + printd("ssl handshake finished.\n"); + __accept_cb(io); + } + else if (ret == HSSL_WANT_READ) { + if ((io->events & HV_READ) == 0) { + hio_add(io, ssl_server_handshake, HV_READ); + } + } + else { + hloge("ssl handshake failed: %d", ret); + io->error = ERR_SSL_HANDSHAKE; + hio_close(io); + } +} + +static void ssl_client_handshake(hio_t* io) { + printd("ssl client handshake...\n"); + int ret = hssl_connect(io->ssl); + if (ret == 0) { + // handshake finish + hio_del(io, HV_READ); + printd("ssl handshake finished.\n"); + __connect_cb(io); + } + else if (ret == HSSL_WANT_READ) { + if ((io->events & HV_READ) == 0) { + hio_add(io, ssl_client_handshake, HV_READ); + } + } + else { + hloge("ssl handshake failed: %d", ret); + io->error = ERR_SSL_HANDSHAKE; + hio_close(io); + } +} + +static void nio_accept(hio_t* io) { + // printd("nio_accept listenfd=%d\n", io->fd); + int connfd = 0, err = 0, accept_cnt = 0; + socklen_t addrlen; + hio_t* connio = NULL; + while (accept_cnt++ < 3) { + addrlen = sizeof(sockaddr_u); + connfd = accept(io->fd, io->peeraddr, &addrlen); + if (connfd < 0) { + err = socket_errno(); + if (err == EAGAIN || err == EINTR) { + return; + } else { + perror("accept"); + io->error = err; + goto accept_error; + } + } + addrlen = sizeof(sockaddr_u); + getsockname(connfd, io->localaddr, &addrlen); + connio = hio_get(io->loop, connfd); + // NOTE: inherit from listenio + connio->accept_cb = io->accept_cb; + connio->userdata = io->userdata; + if (io->unpack_setting) { + hio_set_unpack(connio, io->unpack_setting); + } + + if (io->io_type == HIO_TYPE_SSL) { + if (connio->ssl == NULL) { + // io->ssl_ctx > g_ssl_ctx > hssl_ctx_new + hssl_ctx_t ssl_ctx = NULL; + if (io->ssl_ctx) { + ssl_ctx = io->ssl_ctx; + } else if (g_ssl_ctx) { + ssl_ctx = g_ssl_ctx; + } else { + io->ssl_ctx = ssl_ctx = hssl_ctx_new(NULL); + io->alloced_ssl_ctx = 1; + } + if (ssl_ctx == NULL) { + io->error = ERR_NEW_SSL_CTX; + goto accept_error; + } + hssl_t ssl = hssl_new(ssl_ctx, connfd); + if (ssl == NULL) { + io->error = ERR_NEW_SSL; + goto accept_error; + } + connio->ssl = ssl; + } + hio_enable_ssl(connio); + ssl_server_handshake(connio); + } + else { + // NOTE: SSL call accept_cb after handshake finished + __accept_cb(connio); + } + } + return; + +accept_error: + hloge("listenfd=%d accept error: %s:%d", io->fd, socket_strerror(io->error), io->error); + // NOTE: Don't close listen fd automatically anyway. + // hio_close(io); +} + +static void nio_connect(hio_t* io) { + // printd("nio_connect connfd=%d\n", io->fd); + socklen_t addrlen = sizeof(sockaddr_u); + int ret = getpeername(io->fd, io->peeraddr, &addrlen); + if (ret < 0) { + io->error = socket_errno(); + goto connect_error; + } + else { + addrlen = sizeof(sockaddr_u); + getsockname(io->fd, io->localaddr, &addrlen); + + if (io->io_type == HIO_TYPE_SSL) { + if (io->ssl == NULL) { + // io->ssl_ctx > g_ssl_ctx > hssl_ctx_new + hssl_ctx_t ssl_ctx = NULL; + if (io->ssl_ctx) { + ssl_ctx = io->ssl_ctx; + } else if (g_ssl_ctx) { + ssl_ctx = g_ssl_ctx; + } else { + io->ssl_ctx = ssl_ctx = hssl_ctx_new(NULL); + io->alloced_ssl_ctx = 1; + } + if (ssl_ctx == NULL) { + io->error = ERR_NEW_SSL_CTX; + goto connect_error; + } + hssl_t ssl = hssl_new(ssl_ctx, io->fd); + if (ssl == NULL) { + io->error = ERR_NEW_SSL; + goto connect_error; + } + io->ssl = ssl; + } + if (io->hostname) { + hssl_set_sni_hostname(io->ssl, io->hostname); + } + ssl_client_handshake(io); + } + else { + // NOTE: SSL call connect_cb after handshake finished + __connect_cb(io); + } + + return; + } + +connect_error: + hlogw("connfd=%d connect error: %s:%d", io->fd, socket_strerror(io->error), io->error); + hio_close(io); +} + +static void nio_connect_event_cb(hevent_t* ev) { + hio_t* io = (hio_t*)ev->userdata; + uint32_t id = (uintptr_t)ev->privdata; + if (io->id != id) return; + nio_connect(io); +} + +static int nio_connect_async(hio_t* io) { + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.cb = nio_connect_event_cb; + ev.userdata = io; + ev.privdata = (void*)(uintptr_t)io->id; + hloop_post_event(io->loop, &ev); + return 0; +} + +static int __nio_read(hio_t* io, void* buf, int len) { + int nread = 0; + switch (io->io_type) { + case HIO_TYPE_SSL: + nread = hssl_read(io->ssl, buf, len); + break; + case HIO_TYPE_TCP: + nread = recv(io->fd, buf, len, 0); + break; + case HIO_TYPE_UDP: + case HIO_TYPE_KCP: + case HIO_TYPE_IP: + { + socklen_t addrlen = sizeof(sockaddr_u); + nread = recvfrom(io->fd, buf, len, 0, io->peeraddr, &addrlen); + } + break; + default: + nread = read(io->fd, buf, len); + break; + } + // hlogd("read retval=%d", nread); + return nread; +} + +static int __nio_write(hio_t* io, const void* buf, int len) { + int nwrite = 0; + switch (io->io_type) { + case HIO_TYPE_SSL: + nwrite = hssl_write(io->ssl, buf, len); + break; + case HIO_TYPE_TCP: + { + int flag = 0; +#ifdef MSG_NOSIGNAL + flag |= MSG_NOSIGNAL; +#endif + nwrite = send(io->fd, buf, len, flag); + } + break; + case HIO_TYPE_UDP: + case HIO_TYPE_KCP: + case HIO_TYPE_IP: + nwrite = sendto(io->fd, buf, len, 0, io->peeraddr, SOCKADDR_LEN(io->peeraddr)); + break; + default: + nwrite = write(io->fd, buf, len); + break; + } + // hlogd("write retval=%d", nwrite); + return nwrite; +} + +static void nio_read(hio_t* io) { + // printd("nio_read fd=%d\n", io->fd); + void* buf; + int len = 0, nread = 0, err = 0; +read: + buf = io->readbuf.base + io->readbuf.tail; + if (io->read_flags & HIO_READ_UNTIL_LENGTH) { + len = io->read_until_length - (io->readbuf.tail - io->readbuf.head); + } else { + len = io->readbuf.len - io->readbuf.tail; + } + assert(len > 0); + nread = __nio_read(io, buf, len); + // printd("read retval=%d\n", nread); + if (nread < 0) { + err = socket_errno(); + if (err == EAGAIN || err == EINTR) { + // goto read_done; + return; + } else if (err == EMSGSIZE) { + // ignore + return; + } else { + // perror("read"); + io->error = err; + goto read_error; + } + } + if (nread == 0) { + goto disconnect; + } + if (nread < len) { + // NOTE: make string friendly + ((char*)buf)[nread] = '\0'; + } + io->readbuf.tail += nread; + __read_cb(io, buf, nread); + if (nread == len && !io->closed) { + // NOTE: ssl may have own cache + if (io->io_type == HIO_TYPE_SSL) { + // read continue + goto read; + } + } + return; +read_error: +disconnect: + if (io->io_type & HIO_TYPE_SOCK_STREAM) { + hio_close(io); + } +} + +static void nio_write(hio_t* io) { + // printd("nio_write fd=%d\n", io->fd); + int nwrite = 0, err = 0; + hrecursive_mutex_lock(&io->write_mutex); +write: + if (write_queue_empty(&io->write_queue)) { + hrecursive_mutex_unlock(&io->write_mutex); + if (io->close) { + io->close = 0; + hio_close(io); + } + return; + } + offset_buf_t* pbuf = write_queue_front(&io->write_queue); + char* base = pbuf->base; + char* buf = base + pbuf->offset; + int len = pbuf->len - pbuf->offset; + nwrite = __nio_write(io, buf, len); + // printd("write retval=%d\n", nwrite); + if (nwrite < 0) { + err = socket_errno(); + if (err == EAGAIN || err == EINTR) { + hrecursive_mutex_unlock(&io->write_mutex); + return; + } else { + // perror("write"); + io->error = err; + goto write_error; + } + } + if (nwrite == 0) { + goto disconnect; + } + pbuf->offset += nwrite; + io->write_bufsize -= nwrite; + __write_cb(io, buf, nwrite); + if (nwrite == len) { + // NOTE: after write_cb, pbuf maybe invalid. + // HV_FREE(pbuf->base); + HV_FREE(base); + write_queue_pop_front(&io->write_queue); + if (!io->closed) { + // write continue + goto write; + } + } + hrecursive_mutex_unlock(&io->write_mutex); + return; +write_error: +disconnect: + hrecursive_mutex_unlock(&io->write_mutex); + if (io->io_type & HIO_TYPE_SOCK_STREAM) { + hio_close(io); + } +} + +static void hio_handle_events(hio_t* io) { + if ((io->events & HV_READ) && (io->revents & HV_READ)) { + if (io->accept) { + nio_accept(io); + } + else { + nio_read(io); + } + } + + if ((io->events & HV_WRITE) && (io->revents & HV_WRITE)) { + // NOTE: del HV_WRITE, if write_queue empty + hrecursive_mutex_lock(&io->write_mutex); + if (write_queue_empty(&io->write_queue)) { + hio_del(io, HV_WRITE); + } + hrecursive_mutex_unlock(&io->write_mutex); + if (io->connect) { + // NOTE: connect just do once + // ONESHOT + io->connect = 0; + + nio_connect(io); + } + else { + nio_write(io); + } + } + + io->revents = 0; +} + +int hio_accept(hio_t* io) { + io->accept = 1; + return hio_add(io, hio_handle_events, HV_READ); +} + +int hio_connect(hio_t* io) { + int ret = connect(io->fd, io->peeraddr, SOCKADDR_LEN(io->peeraddr)); +#ifdef OS_WIN + if (ret < 0 && socket_errno() != WSAEWOULDBLOCK) { +#else + if (ret < 0 && socket_errno() != EINPROGRESS) { +#endif + perror("connect"); + io->error = socket_errno(); + hio_close_async(io); + return ret; + } + if (ret == 0) { + // connect ok + nio_connect_async(io); + return 0; + } + int timeout = io->connect_timeout ? io->connect_timeout : HIO_DEFAULT_CONNECT_TIMEOUT; + io->connect_timer = htimer_add(io->loop, __connect_timeout_cb, timeout, 1); + io->connect_timer->privdata = io; + io->connect = 1; + return hio_add(io, hio_handle_events, HV_WRITE); +} + +int hio_read (hio_t* io) { + if (io->closed) { + hloge("hio_read called but fd[%d] already closed!", io->fd); + return -1; + } + hio_add(io, hio_handle_events, HV_READ); + if (io->readbuf.tail > io->readbuf.head && + io->unpack_setting == NULL && + io->read_flags == 0) { + hio_read_remain(io); + } + return 0; +} + +int hio_write (hio_t* io, const void* buf, size_t len) { + if (io->closed) { + hloge("hio_write called but fd[%d] already closed!", io->fd); + return -1; + } + int nwrite = 0, err = 0; + hrecursive_mutex_lock(&io->write_mutex); +#if WITH_KCP + if (io->io_type == HIO_TYPE_KCP) { + nwrite = hio_write_kcp(io, buf, len); + // if (nwrite < 0) goto write_error; + goto write_done; + } +#endif + if (write_queue_empty(&io->write_queue)) { +try_write: + nwrite = __nio_write(io, buf, len); + // printd("write retval=%d\n", nwrite); + if (nwrite < 0) { + err = socket_errno(); + if (err == EAGAIN || err == EINTR) { + nwrite = 0; + hlogw("try_write failed, enqueue!"); + goto enqueue; + } else { + // perror("write"); + io->error = err; + goto write_error; + } + } + if (nwrite == 0) { + goto disconnect; + } + if (nwrite == len) { + goto write_done; + } +enqueue: + hio_add(io, hio_handle_events, HV_WRITE); + } + if (nwrite < len) { + if (io->write_bufsize + len - nwrite > io->max_write_bufsize) { + hloge("write bufsize > %u, close it!", io->max_write_bufsize); + io->error = ERR_OVER_LIMIT; + goto write_error; + } + offset_buf_t remain; + remain.len = len - nwrite; + remain.offset = 0; + // NOTE: free in nio_write + HV_ALLOC(remain.base, remain.len); + memcpy(remain.base, ((char*)buf) + nwrite, remain.len); + if (io->write_queue.maxsize == 0) { + write_queue_init(&io->write_queue, 4); + } + write_queue_push_back(&io->write_queue, &remain); + io->write_bufsize += remain.len; + if (io->write_bufsize > WRITE_BUFSIZE_HIGH_WATER) { + hlogw("write len=%u enqueue %u, bufsize=%u over high water %u", + (unsigned int)len, + (unsigned int)(remain.len - remain.offset), + (unsigned int)io->write_bufsize, + (unsigned int)WRITE_BUFSIZE_HIGH_WATER); + } + } +write_done: + hrecursive_mutex_unlock(&io->write_mutex); + if (nwrite > 0) { + __write_cb(io, buf, nwrite); + } + return nwrite; +write_error: +disconnect: + hrecursive_mutex_unlock(&io->write_mutex); + /* NOTE: + * We usually free resources in hclose_cb, + * if hio_close_sync, we have to be very careful to avoid using freed resources. + * But if hio_close_async, we do not have to worry about this. + */ + if (io->io_type & HIO_TYPE_SOCK_STREAM) { + hio_close_async(io); + } + return nwrite < 0 ? nwrite : -1; +} + +int hio_close (hio_t* io) { + if (io->closed) return 0; + if (io->destroy == 0 && hv_gettid() != io->loop->tid) { + return hio_close_async(io); + } + + hrecursive_mutex_lock(&io->write_mutex); + if (io->closed) { + hrecursive_mutex_unlock(&io->write_mutex); + return 0; + } + if (!write_queue_empty(&io->write_queue) && io->error == 0 && io->close == 0 && io->destroy == 0) { + io->close = 1; + hrecursive_mutex_unlock(&io->write_mutex); + hlogw("write_queue not empty, close later."); + int timeout_ms = io->close_timeout ? io->close_timeout : HIO_DEFAULT_CLOSE_TIMEOUT; + io->close_timer = htimer_add(io->loop, __close_timeout_cb, timeout_ms, 1); + io->close_timer->privdata = io; + return 0; + } + io->closed = 1; + hrecursive_mutex_unlock(&io->write_mutex); + + hio_done(io); + __close_cb(io); + if (io->ssl) { + hssl_free(io->ssl); + io->ssl = NULL; + } + if (io->ssl_ctx && io->alloced_ssl_ctx) { + hssl_ctx_free(io->ssl_ctx); + io->ssl_ctx = NULL; + } + SAFE_FREE(io->hostname); + if (io->io_type & HIO_TYPE_SOCKET) { + closesocket(io->fd); + } + return 0; +} +#endif diff --git a/3rdPartner/libhv/event/nlog.c b/3rdPartner/libhv/event/nlog.c new file mode 100644 index 0000000..fb8ac45 --- /dev/null +++ b/3rdPartner/libhv/event/nlog.c @@ -0,0 +1,87 @@ +#include "nlog.h" + +#include "list.h" +#include "hdef.h" +#include "hbase.h" +#include "hsocket.h" +#include "hmutex.h" + +typedef struct network_logger_s { + hloop_t* loop; + hio_t* listenio; + struct list_head clients; +} network_logger_t; + +typedef struct nlog_client { + hio_t* io; + struct list_node node; +} nlog_client; + +static network_logger_t s_logger = {0}; +static hmutex_t s_mutex; + +static void on_close(hio_t* io) { + printd("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + + nlog_client* client = (nlog_client*)hevent_userdata(io); + if (client) { + hevent_set_userdata(io, NULL); + + hmutex_lock(&s_mutex); + list_del(&client->node); + hmutex_unlock(&s_mutex); + + HV_FREE(client); + } +} + +static void on_read(hio_t* io, void* buf, int readbytes) { + printd("on_read fd=%d readbytes=%d\n", hio_fd(io), readbytes); + printd("< %s\n", (char*)buf); + // nothing to do +} + +static void on_accept(hio_t* io) { + /* + printd("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + hio_setcb_read(io, on_read); + hio_setcb_close(io, on_close); + hio_read(io); + + // free on_close + nlog_client* client; + HV_ALLOC_SIZEOF(client); + client->io = io; + hevent_set_userdata(io, client); + + hmutex_lock(&s_mutex); + list_add(&client->node, &s_logger.clients); + hmutex_unlock(&s_mutex); +} + +void network_logger(int loglevel, const char* buf, int len) { + struct list_node* node; + nlog_client* client; + + hmutex_lock(&s_mutex); + list_for_each (node, &s_logger.clients) { + client = list_entry(node, nlog_client, node); + hio_write(client->io, buf, len); + } + hmutex_unlock(&s_mutex); +} + +hio_t* nlog_listen(hloop_t* loop, int port) { + s_logger.loop = loop; + s_logger.listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept); + list_init(&s_logger.clients); + hmutex_init(&s_mutex); + return s_logger.listenio; +} diff --git a/3rdPartner/libhv/event/nlog.h b/3rdPartner/libhv/event/nlog.h new file mode 100644 index 0000000..568cbbd --- /dev/null +++ b/3rdPartner/libhv/event/nlog.h @@ -0,0 +1,44 @@ +#ifndef HV_NLOG_H_ +#define HV_NLOG_H_ + +// nlog: extend hlog use hloop + +/* you can recv log by: + * Windows: telnet ip port + * Linux: nc ip port + */ + +/* + * @see examples/hloop_test.c +#include "hlog.h" +#include "nlog.h" + +void timer_write_log(htimer_t* timer) { + static int cnt = 0; + hlogi("[%d] Do you recv me?", ++cnt); +} + +int main() { + hloop_t* loop = hloop_new(0); + hlog_set_handler(network_logger); + nlog_listen(loop, DEFAULT_LOG_PORT); + htimer_add(loop, timer_write_log, 1000, INFINITE); + hloop_run(loop); + hloop_free(&loop); +} + */ + + +#include "hexport.h" +#include "hloop.h" + +#define DEFAULT_LOG_PORT 10514 + +BEGIN_EXTERN_C + +HV_EXPORT void network_logger(int loglevel, const char* buf, int len); +HV_EXPORT hio_t* nlog_listen(hloop_t* loop, int port); + +END_EXTERN_C + +#endif // HV_NLOG_H_ diff --git a/3rdPartner/libhv/event/noevent.c b/3rdPartner/libhv/event/noevent.c new file mode 100644 index 0000000..a03eecd --- /dev/null +++ b/3rdPartner/libhv/event/noevent.c @@ -0,0 +1,25 @@ +#include "iowatcher.h" + +#ifdef EVENT_NOEVENT +int iowatcher_init(hloop_t* loop) { + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + hv_delay(timeout); + return 0; +} + +#endif diff --git a/3rdPartner/libhv/event/overlapio.c b/3rdPartner/libhv/event/overlapio.c new file mode 100644 index 0000000..4fe2cb6 --- /dev/null +++ b/3rdPartner/libhv/event/overlapio.c @@ -0,0 +1,419 @@ +// WARN: overlapio maybe need MemoryPool to avoid alloc/free +#include "iowatcher.h" + +#ifdef EVENT_IOCP +#include "overlapio.h" +#include "hevent.h" + +#define ACCEPTEX_NUM 10 + +int post_acceptex(hio_t* listenio, hoverlapped_t* hovlp) { + LPFN_ACCEPTEX AcceptEx = NULL; + GUID guidAcceptEx = WSAID_ACCEPTEX; + DWORD dwbytes = 0; + if (WSAIoctl(listenio->fd, SIO_GET_EXTENSION_FUNCTION_POINTER, + &guidAcceptEx, sizeof(guidAcceptEx), + &AcceptEx, sizeof(AcceptEx), + &dwbytes, NULL, NULL) != 0) { + return WSAGetLastError(); + } + int connfd = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED); + if (connfd < 0) { + return WSAGetLastError(); + } + if (hovlp == NULL) { + HV_ALLOC_SIZEOF(hovlp); + hovlp->buf.len = 20 + sizeof(struct sockaddr_in6) * 2; + HV_ALLOC(hovlp->buf.buf, hovlp->buf.len); + } + hovlp->fd = connfd; + hovlp->event = HV_READ; + hovlp->io = listenio; + if (AcceptEx(listenio->fd, connfd, hovlp->buf.buf, 0, sizeof(struct sockaddr_in6), sizeof(struct sockaddr_in6), + &dwbytes, &hovlp->ovlp) != TRUE) { + int err = WSAGetLastError(); + if (err != ERROR_IO_PENDING) { + fprintf(stderr, "AcceptEx error: %d\n", err); + return err; + } + } + return 0; +} + +int post_recv(hio_t* io, hoverlapped_t* hovlp) { + if (hovlp == NULL) { + HV_ALLOC_SIZEOF(hovlp); + } + hovlp->fd = io->fd; + hovlp->event = HV_READ; + hovlp->io = io; + hovlp->buf.len = io->readbuf.len; + if (io->io_type == HIO_TYPE_UDP || io->io_type == HIO_TYPE_IP) { + HV_ALLOC(hovlp->buf.buf, hovlp->buf.len); + } + else { + hovlp->buf.buf = io->readbuf.base; + } + //memset(hovlp->buf.buf, 0, hovlp->buf.len); + DWORD dwbytes = 0; + DWORD flags = 0; + int ret = 0; + if (io->io_type == HIO_TYPE_TCP) { + ret = WSARecv(io->fd, &hovlp->buf, 1, &dwbytes, &flags, &hovlp->ovlp, NULL); + } + else if (io->io_type == HIO_TYPE_UDP || + io->io_type == HIO_TYPE_IP) { + if (hovlp->addr == NULL) { + hovlp->addrlen = sizeof(struct sockaddr_in6); + HV_ALLOC(hovlp->addr, sizeof(struct sockaddr_in6)); + } + ret = WSARecvFrom(io->fd, &hovlp->buf, 1, &dwbytes, &flags, hovlp->addr, &hovlp->addrlen, &hovlp->ovlp, NULL); + } + else { + ret = -1; + } + //printd("WSARecv ret=%d bytes=%u\n", ret, dwbytes); + if (ret != 0) { + int err = WSAGetLastError(); + if (err != ERROR_IO_PENDING) { + fprintf(stderr, "WSARecv error: %d\n", err); + return err; + } + } + return 0; +} + +static void on_acceptex_complete(hio_t* io) { + printd("on_acceptex_complete------\n"); + hoverlapped_t* hovlp = (hoverlapped_t*)io->hovlp; + int listenfd = io->fd; + int connfd = hovlp->fd; + LPFN_GETACCEPTEXSOCKADDRS GetAcceptExSockaddrs = NULL; + GUID guidGetAcceptExSockaddrs = WSAID_GETACCEPTEXSOCKADDRS; + DWORD dwbytes = 0; + if (WSAIoctl(connfd, SIO_GET_EXTENSION_FUNCTION_POINTER, + &guidGetAcceptExSockaddrs, sizeof(guidGetAcceptExSockaddrs), + &GetAcceptExSockaddrs, sizeof(GetAcceptExSockaddrs), + &dwbytes, NULL, NULL) != 0) { + return; + } + struct sockaddr* plocaladdr = NULL; + struct sockaddr* ppeeraddr = NULL; + socklen_t localaddrlen; + socklen_t peeraddrlen; + GetAcceptExSockaddrs(hovlp->buf.buf, 0, sizeof(struct sockaddr_in6), sizeof(struct sockaddr_in6), + &plocaladdr, &localaddrlen, &ppeeraddr, &peeraddrlen); + memcpy(io->localaddr, plocaladdr, localaddrlen); + memcpy(io->peeraddr, ppeeraddr, peeraddrlen); + if (io->accept_cb) { + setsockopt(connfd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (const char*)&listenfd, sizeof(int)); + hio_t* connio = hio_get(io->loop, connfd); + connio->userdata = io->userdata; + memcpy(connio->localaddr, io->localaddr, localaddrlen); + memcpy(connio->peeraddr, io->peeraddr, peeraddrlen); + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("accept listenfd=%d connfd=%d [%s] <= [%s]\n", listenfd, connfd, + SOCKADDR_STR(connio->localaddr, localaddrstr), + SOCKADDR_STR(connio->peeraddr, peeraddrstr)); + */ + //printd("accept_cb------\n"); + io->accept_cb(connio); + //printd("accept_cb======\n"); + } + post_acceptex(io, hovlp); +} + +static void on_connectex_complete(hio_t* io) { + printd("on_connectex_complete------\n"); + hoverlapped_t* hovlp = (hoverlapped_t*)io->hovlp; + io->error = hovlp->error; + HV_FREE(io->hovlp); + if (io->error != 0) { + hio_close(io); + return; + } + if (io->connect_cb) { + setsockopt(io->fd, SOL_SOCKET, SO_UPDATE_CONNECT_CONTEXT, NULL, 0); + socklen_t addrlen = sizeof(struct sockaddr_in6); + getsockname(io->fd, io->localaddr, &addrlen); + addrlen = sizeof(struct sockaddr_in6); + getpeername(io->fd, io->peeraddr, &addrlen); + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("connect connfd=%d [%s] => [%s]\n", io->fd, + SOCKADDR_STR(io->localaddr, localaddrstr), + SOCKADDR_STR(io->peeraddr, peeraddrstr)); + */ + //printd("connect_cb------\n"); + io->connect_cb(io); + //printd("connect_cb======\n"); + } +} + +static void on_wsarecv_complete(hio_t* io) { + printd("on_recv_complete------\n"); + hoverlapped_t* hovlp = (hoverlapped_t*)io->hovlp; + if (hovlp->bytes == 0) { + io->error = WSAGetLastError(); + hio_close(io); + return; + } + + if (io->read_cb) { + if (io->io_type == HIO_TYPE_UDP || io->io_type == HIO_TYPE_IP) { + if (hovlp->addr && hovlp->addrlen) { + hio_set_peeraddr(io, hovlp->addr, hovlp->addrlen); + } + } + //printd("read_cb------\n"); + io->read_cb(io, hovlp->buf.buf, hovlp->bytes); + //printd("read_cb======\n"); + } + + if (io->io_type == HIO_TYPE_TCP) { + // reuse hovlp + if (!io->closed) { + post_recv(io, hovlp); + } + } + else if (io->io_type == HIO_TYPE_UDP || + io->io_type == HIO_TYPE_IP) { + HV_FREE(hovlp->buf.buf); + HV_FREE(hovlp->addr); + HV_FREE(io->hovlp); + } +} + +static void on_wsasend_complete(hio_t* io) { + printd("on_send_complete------\n"); + hoverlapped_t* hovlp = (hoverlapped_t*)io->hovlp; + if (hovlp->bytes == 0) { + io->error = WSAGetLastError(); + hio_close(io); + goto end; + } + if (io->write_cb) { + if (io->io_type == HIO_TYPE_UDP || io->io_type == HIO_TYPE_IP) { + if (hovlp->addr) { + hio_set_peeraddr(io, hovlp->addr, hovlp->addrlen); + } + } + //printd("write_cb------\n"); + io->write_cb(io, hovlp->buf.buf, hovlp->bytes); + //printd("write_cb======\n"); + } +end: + if (io->hovlp) { + HV_FREE(hovlp->buf.buf); + HV_FREE(io->hovlp); + } +} + +static void hio_handle_events(hio_t* io) { + if ((io->events & HV_READ) && (io->revents & HV_READ)) { + if (io->accept) { + on_acceptex_complete(io); + } + else { + on_wsarecv_complete(io); + } + } + + if ((io->events & HV_WRITE) && (io->revents & HV_WRITE)) { + // NOTE: HV_WRITE just do once + // ONESHOT + iowatcher_del_event(io->loop, io->fd, HV_WRITE); + io->events &= ~HV_WRITE; + if (io->connect) { + io->connect = 0; + + on_connectex_complete(io); + } + else { + on_wsasend_complete(io); + } + } + + io->revents = 0; +} + +int hio_accept (hio_t* io) { + for (int i = 0; i < ACCEPTEX_NUM; ++i) { + post_acceptex(io, NULL); + } + io->accept = 1; + return hio_add(io, hio_handle_events, HV_READ); +} + +int hio_connect (hio_t* io) { + // NOTE: ConnectEx must call bind + struct sockaddr_in localaddr; + socklen_t addrlen = sizeof(localaddr); + memset(&localaddr, 0, addrlen); + localaddr.sin_family = AF_INET; + localaddr.sin_addr.s_addr = htonl(INADDR_ANY); + localaddr.sin_port = htons(0); + if (bind(io->fd, (struct sockaddr*)&localaddr, addrlen) < 0) { + perror("bind"); + goto error; + } + // ConnectEx + io->connectex = 1; + LPFN_CONNECTEX ConnectEx = NULL; + GUID guidConnectEx = WSAID_CONNECTEX; + DWORD dwbytes; + if (WSAIoctl(io->fd, SIO_GET_EXTENSION_FUNCTION_POINTER, + &guidConnectEx, sizeof(guidConnectEx), + &ConnectEx, sizeof(ConnectEx), + &dwbytes, NULL, NULL) != 0) { + goto error; + } + // NOTE: free on_connectex_complete + hoverlapped_t* hovlp; + HV_ALLOC_SIZEOF(hovlp); + hovlp->fd = io->fd; + hovlp->event = HV_WRITE; + hovlp->io = io; + if (ConnectEx(io->fd, io->peeraddr, sizeof(struct sockaddr_in6), NULL, 0, &dwbytes, &hovlp->ovlp) != TRUE) { + int err = WSAGetLastError(); + if (err != ERROR_IO_PENDING) { + fprintf(stderr, "AcceptEx error: %d\n", err); + goto error; + } + } + io->connect = 1; + return hio_add(io, hio_handle_events, HV_WRITE); +error: + hio_close(io); + return 0; +} + +int hio_read (hio_t* io) { + post_recv(io, NULL); + return hio_add(io, hio_handle_events, HV_READ); +} + +int hio_write(hio_t* io, const void* buf, size_t len) { + int nwrite = 0; +try_send: + if (io->io_type == HIO_TYPE_TCP) { + nwrite = send(io->fd, buf, len, 0); + } + else if (io->io_type == HIO_TYPE_UDP) { + nwrite = sendto(io->fd, buf, len, 0, io->peeraddr, sizeof(struct sockaddr_in6)); + } + else if (io->io_type == HIO_TYPE_IP) { + goto WSASend; + } + else { + nwrite = -1; + } + //printd("write retval=%d\n", nwrite); + if (nwrite < 0) { + if (socket_errno() == EAGAIN) { + nwrite = 0; + goto WSASend; + } + else { + perror("write"); + io->error = socket_errno(); + goto write_error; + } + } + if (nwrite == 0) { + goto disconnect; + } + if (io->write_cb) { + //printd("try_write_cb------\n"); + io->write_cb(io, buf, nwrite); + //printd("try_write_cb======\n"); + } + if (nwrite == len) { + //goto write_done; + return nwrite; + } +WSASend: + { + hoverlapped_t* hovlp; + HV_ALLOC_SIZEOF(hovlp); + hovlp->fd = io->fd; + hovlp->event = HV_WRITE; + hovlp->buf.len = len - nwrite; + // NOTE: free on_send_complete + HV_ALLOC(hovlp->buf.buf, hovlp->buf.len); + memcpy(hovlp->buf.buf, ((char*)buf) + nwrite, hovlp->buf.len); + hovlp->io = io; + DWORD dwbytes = 0; + DWORD flags = 0; + int ret = 0; + if (io->io_type == HIO_TYPE_TCP) { + ret = WSASend(io->fd, &hovlp->buf, 1, &dwbytes, flags, &hovlp->ovlp, NULL); + } + else if (io->io_type == HIO_TYPE_UDP || + io->io_type == HIO_TYPE_IP) { + ret = WSASendTo(io->fd, &hovlp->buf, 1, &dwbytes, flags, io->peeraddr, sizeof(struct sockaddr_in6), &hovlp->ovlp, NULL); + } + else { + ret = -1; + } + //printd("WSASend ret=%d bytes=%u\n", ret, dwbytes); + if (ret != 0) { + int err = WSAGetLastError(); + if (err != ERROR_IO_PENDING) { + fprintf(stderr, "WSASend error: %d\n", err); + return ret; + } + } + return hio_add(io, hio_handle_events, HV_WRITE); + } +write_error: +disconnect: + hio_close(io); + return 0; +} + +int hio_close (hio_t* io) { + if (io->closed) return 0; + io->closed = 1; + hio_done(io); + if (io->hovlp) { + hoverlapped_t* hovlp = (hoverlapped_t*)io->hovlp; + // NOTE: hread buf provided by caller + if (hovlp->buf.buf != io->readbuf.base) { + HV_FREE(hovlp->buf.buf); + } + HV_FREE(hovlp->addr); + HV_FREE(io->hovlp); + } + if (io->close_cb) { + //printd("close_cb------\n"); + io->close_cb(io); + //printd("close_cb======\n"); + } + if (io->io_type & HIO_TYPE_SOCKET) { +#ifdef USE_DISCONNECTEX + // DisconnectEx reuse socket + if (io->connectex) { + io->connectex = 0; + LPFN_DISCONNECTEX DisconnectEx = NULL; + GUID guidDisconnectEx = WSAID_DISCONNECTEX; + DWORD dwbytes; + if (WSAIoctl(io->fd, SIO_GET_EXTENSION_FUNCTION_POINTER, + &guidDisconnectEx, sizeof(guidDisconnectEx), + &DisconnectEx, sizeof(DisconnectEx), + &dwbytes, NULL, NULL) != 0) { + return; + } + DisconnectEx(io->fd, NULL, 0, 0); + } +#else + closesocket(io->fd); +#endif + } + return 0; +} + +#endif diff --git a/3rdPartner/libhv/event/overlapio.h b/3rdPartner/libhv/event/overlapio.h new file mode 100644 index 0000000..69fb026 --- /dev/null +++ b/3rdPartner/libhv/event/overlapio.h @@ -0,0 +1,33 @@ +#ifndef HV_OVERLAPPED_H_ +#define HV_OVERLAPPED_H_ + +#include "iowatcher.h" + +#ifdef EVENT_IOCP + +#include "hbuf.h" +#include "hsocket.h" +#include +#ifdef _MSC_VER +#pragma comment(lib, "mswsock.lib") +#endif + +typedef struct hoverlapped_s { + OVERLAPPED ovlp; + int fd; + int event; + WSABUF buf; + int bytes; + int error; + hio_t* io; + // for recvfrom + struct sockaddr* addr; + int addrlen; +} hoverlapped_t; + +int post_acceptex(hio_t* listenio, hoverlapped_t* hovlp); +int post_recv(hio_t* io, hoverlapped_t* hovlp); + +#endif + +#endif // HV_OVERLAPPED_H_ diff --git a/3rdPartner/libhv/event/poll.c b/3rdPartner/libhv/event/poll.c new file mode 100644 index 0000000..4c1073b --- /dev/null +++ b/3rdPartner/libhv/event/poll.c @@ -0,0 +1,135 @@ +#include "iowatcher.h" + +#ifdef EVENT_POLL +#include "hplatform.h" +#include "hdef.h" +#include "hevent.h" + +#ifdef OS_WIN +#define poll WSAPoll +#endif + +#ifdef OS_LINUX +#include +#endif + +#include "array.h" +#define FDS_INIT_SIZE 64 +ARRAY_DECL(struct pollfd, pollfds); + +typedef struct poll_ctx_s { + int capacity; + struct pollfds fds; +} poll_ctx_t; + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + poll_ctx_t* poll_ctx; + HV_ALLOC_SIZEOF(poll_ctx); + pollfds_init(&poll_ctx->fds, FDS_INIT_SIZE); + loop->iowatcher = poll_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + if (loop->iowatcher == NULL) return 0; + poll_ctx_t* poll_ctx = (poll_ctx_t*)loop->iowatcher; + pollfds_cleanup(&poll_ctx->fds); + HV_FREE(loop->iowatcher); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + poll_ctx_t* poll_ctx = (poll_ctx_t*)loop->iowatcher; + hio_t* io = loop->ios.ptr[fd]; + int idx = io->event_index[0]; + struct pollfd* pfd = NULL; + if (idx < 0) { + io->event_index[0] = idx = poll_ctx->fds.size; + if (idx == poll_ctx->fds.maxsize) { + pollfds_double_resize(&poll_ctx->fds); + } + poll_ctx->fds.size++; + pfd = poll_ctx->fds.ptr + idx; + pfd->fd = fd; + pfd->events = 0; + pfd->revents = 0; + } + else { + pfd = poll_ctx->fds.ptr + idx; + assert(pfd->fd == fd); + } + if (events & HV_READ) { + pfd->events |= POLLIN; + } + if (events & HV_WRITE) { + pfd->events |= POLLOUT; + } + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + poll_ctx_t* poll_ctx = (poll_ctx_t*)loop->iowatcher; + if (poll_ctx == NULL) return 0; + hio_t* io = loop->ios.ptr[fd]; + + int idx = io->event_index[0]; + if (idx < 0) return 0; + struct pollfd* pfd = poll_ctx->fds.ptr + idx; + assert(pfd->fd == fd); + if (events & HV_READ) { + pfd->events &= ~POLLIN; + } + if (events & HV_WRITE) { + pfd->events &= ~POLLOUT; + } + if (pfd->events == 0) { + pollfds_del_nomove(&poll_ctx->fds, idx); + // NOTE: correct event_index + if (idx < poll_ctx->fds.size) { + hio_t* last = loop->ios.ptr[poll_ctx->fds.ptr[idx].fd]; + last->event_index[0] = idx; + } + io->event_index[0] = -1; + } + return 0; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + poll_ctx_t* poll_ctx = (poll_ctx_t*)loop->iowatcher; + if (poll_ctx == NULL) return 0; + if (poll_ctx->fds.size == 0) return 0; + int npoll = poll(poll_ctx->fds.ptr, poll_ctx->fds.size, timeout); + if (npoll < 0) { + if (errno == EINTR) { + return 0; + } + perror("poll"); + return npoll; + } + if (npoll == 0) return 0; + int nevents = 0; + for (int i = 0; i < poll_ctx->fds.size; ++i) { + int fd = poll_ctx->fds.ptr[i].fd; + short revents = poll_ctx->fds.ptr[i].revents; + if (revents) { + ++nevents; + hio_t* io = loop->ios.ptr[fd]; + if (io) { + if (revents & (POLLIN | POLLHUP | POLLERR)) { + io->revents |= HV_READ; + } + if (revents & (POLLOUT | POLLHUP | POLLERR)) { + io->revents |= HV_WRITE; + } + EVENT_PENDING(io); + } + } + if (nevents == npoll) break; + } + return nevents; +} +#endif diff --git a/3rdPartner/libhv/event/rudp.c b/3rdPartner/libhv/event/rudp.c new file mode 100644 index 0000000..2a3df23 --- /dev/null +++ b/3rdPartner/libhv/event/rudp.c @@ -0,0 +1,167 @@ +#include "rudp.h" + +#if WITH_RUDP + +#include "hevent.h" + +void rudp_entry_free(rudp_entry_t* entry) { +#if WITH_KCP + kcp_release(&entry->kcp); +#endif + HV_FREE(entry); +} + +void rudp_init(rudp_t* rudp) { + // printf("rudp init\n"); + rudp->rb_root.rb_node = NULL; + hmutex_init(&rudp->mutex); +} + +void rudp_cleanup(rudp_t* rudp) { + // printf("rudp cleaup\n"); + struct rb_node* n = NULL; + rudp_entry_t* e = NULL; + while ((n = rudp->rb_root.rb_node)) { + e = rb_entry(n, rudp_entry_t, rb_node); + rb_erase(n, &rudp->rb_root); + rudp_entry_free(e); + } + hmutex_destroy(&rudp->mutex); +} + +bool rudp_insert(rudp_t* rudp, rudp_entry_t* entry) { + struct rb_node** n = &rudp->rb_root.rb_node; + struct rb_node* parent = NULL; + rudp_entry_t* e = NULL; + int cmp = 0; + bool exists = false; + while (*n) { + parent = *n; + e = rb_entry(*n, rudp_entry_t, rb_node); + cmp = memcmp(&entry->addr, &e->addr, sizeof(sockaddr_u)); + if (cmp < 0) { + n = &(*n)->rb_left; + } else if (cmp > 0) { + n = &(*n)->rb_right; + } else { + exists = true; + break; + } + } + + if (!exists) { + rb_link_node(&entry->rb_node, parent, n); + rb_insert_color(&entry->rb_node, &rudp->rb_root); + } + return !exists; +} + +rudp_entry_t* rudp_search(rudp_t* rudp, struct sockaddr* addr) { + struct rb_node* n = rudp->rb_root.rb_node; + rudp_entry_t* e = NULL; + int cmp = 0; + bool exists = false; + while (n) { + e = rb_entry(n, rudp_entry_t, rb_node); + cmp = memcmp(addr, &e->addr, sizeof(sockaddr_u)); + if (cmp < 0) { + n = n->rb_left; + } else if (cmp > 0) { + n = n->rb_right; + } else { + exists = true; + break; + } + } + return exists ? e : NULL; +} + +rudp_entry_t* rudp_remove(rudp_t* rudp, struct sockaddr* addr) { + hmutex_lock(&rudp->mutex); + rudp_entry_t* e = rudp_search(rudp, addr); + if (e) { + // printf("rudp_remove "); + // SOCKADDR_PRINT(addr); + rb_erase(&e->rb_node, &rudp->rb_root); + } + hmutex_unlock(&rudp->mutex); + return e; +} + +rudp_entry_t* rudp_get(rudp_t* rudp, struct sockaddr* addr) { + hmutex_lock(&rudp->mutex); + struct rb_node** n = &rudp->rb_root.rb_node; + struct rb_node* parent = NULL; + rudp_entry_t* e = NULL; + int cmp = 0; + bool exists = false; + // search + while (*n) { + parent = *n; + e = rb_entry(*n, rudp_entry_t, rb_node); + cmp = memcmp(addr, &e->addr, sizeof(sockaddr_u)); + if (cmp < 0) { + n = &(*n)->rb_left; + } else if (cmp > 0) { + n = &(*n)->rb_right; + } else { + exists = true; + break; + } + } + + if (!exists) { + // insert + // printf("rudp_insert "); + // SOCKADDR_PRINT(addr); + HV_ALLOC_SIZEOF(e); + memcpy(&e->addr, addr, SOCKADDR_LEN(addr)); + rb_link_node(&e->rb_node, parent, n); + rb_insert_color(&e->rb_node, &rudp->rb_root); + } + hmutex_unlock(&rudp->mutex); + return e; +} + +void rudp_del(rudp_t* rudp, struct sockaddr* addr) { + hmutex_lock(&rudp->mutex); + rudp_entry_t* e = rudp_search(rudp, addr); + if (e) { + // printf("rudp_remove "); + // SOCKADDR_PRINT(addr); + rb_erase(&e->rb_node, &rudp->rb_root); + rudp_entry_free(e); + } + hmutex_unlock(&rudp->mutex); +} + +rudp_entry_t* hio_get_rudp(hio_t* io) { + rudp_entry_t* rudp = rudp_get(&io->rudp, io->peeraddr); + rudp->io = io; + return rudp; +} + +static void hio_close_rudp_event_cb(hevent_t* ev) { + rudp_entry_t* entry = (rudp_entry_t*)ev->userdata; + rudp_del(&entry->io->rudp, (struct sockaddr*)&entry->addr); + // rudp_entry_free(entry); +} + +int hio_close_rudp(hio_t* io, struct sockaddr* peeraddr) { + if (peeraddr == NULL) peeraddr = io->peeraddr; + // NOTE: do rudp_del for thread-safe + rudp_entry_t* entry = rudp_get(&io->rudp, peeraddr); + // NOTE: just rudp_remove first, do rudp_entry_free async for safe. + // rudp_entry_t* entry = rudp_remove(&io->rudp, peeraddr); + if (entry) { + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.cb = hio_close_rudp_event_cb; + ev.userdata = entry; + ev.priority = HEVENT_HIGH_PRIORITY; + hloop_post_event(io->loop, &ev); + } + return 0; +} + +#endif diff --git a/3rdPartner/libhv/event/rudp.h b/3rdPartner/libhv/event/rudp.h new file mode 100644 index 0000000..0c30392 --- /dev/null +++ b/3rdPartner/libhv/event/rudp.h @@ -0,0 +1,52 @@ +#ifndef HV_RUDP_H_ +#define HV_RUDP_H_ + +#include "hloop.h" + +#if WITH_RUDP + +#include "rbtree.h" +#include "hsocket.h" +#include "hmutex.h" +#if WITH_KCP +#include "kcp/hkcp.h" +#endif + +typedef struct rudp_s { + struct rb_root rb_root; + hmutex_t mutex; +} rudp_t; + +typedef struct rudp_entry_s { + struct rb_node rb_node; + sockaddr_u addr; // key + // val + hio_t* io; +#if WITH_KCP + kcp_t kcp; +#endif +} rudp_entry_t; + +// NOTE: rudp_entry_t alloc when rudp_get +void rudp_entry_free(rudp_entry_t* entry); + +void rudp_init(rudp_t* rudp); +void rudp_cleanup(rudp_t* rudp); + +bool rudp_insert(rudp_t* rudp, rudp_entry_t* entry); +// NOTE: just rb_erase, not free +rudp_entry_t* rudp_remove(rudp_t* rudp, struct sockaddr* addr); +rudp_entry_t* rudp_search(rudp_t* rudp, struct sockaddr* addr); +#define rudp_has(rudp, addr) (rudp_search(rudp, addr) != NULL) + +// rudp_search + malloc + rudp_insert +rudp_entry_t* rudp_get(rudp_t* rudp, struct sockaddr* addr); +// rudp_remove + free +void rudp_del(rudp_t* rudp, struct sockaddr* addr); + +// rudp_get(&io->rudp, io->peeraddr) +rudp_entry_t* hio_get_rudp(hio_t* io); + +#endif // WITH_RUDP + +#endif // HV_RUDP_H_ diff --git a/3rdPartner/libhv/event/select.c b/3rdPartner/libhv/event/select.c new file mode 100644 index 0000000..8a35ea1 --- /dev/null +++ b/3rdPartner/libhv/event/select.c @@ -0,0 +1,169 @@ +#include "iowatcher.h" + +#ifdef EVENT_SELECT +#include "hplatform.h" +#include "hdef.h" +#include "hevent.h" +#include "hsocket.h" + +typedef struct select_ctx_s { + int max_fd; + fd_set readfds; + fd_set writefds; + int nread; + int nwrite; +} select_ctx_t; + +int iowatcher_init(hloop_t* loop) { + if (loop->iowatcher) return 0; + select_ctx_t* select_ctx; + HV_ALLOC_SIZEOF(select_ctx); + select_ctx->max_fd = -1; + FD_ZERO(&select_ctx->readfds); + FD_ZERO(&select_ctx->writefds); + select_ctx->nread = 0; + select_ctx->nwrite = 0; + loop->iowatcher = select_ctx; + return 0; +} + +int iowatcher_cleanup(hloop_t* loop) { + HV_FREE(loop->iowatcher); + return 0; +} + +int iowatcher_add_event(hloop_t* loop, int fd, int events) { + if (loop->iowatcher == NULL) { + iowatcher_init(loop); + } + select_ctx_t* select_ctx = (select_ctx_t*)loop->iowatcher; + if (fd > select_ctx->max_fd) { + select_ctx->max_fd = fd; + } + if (events & HV_READ) { + if (!FD_ISSET(fd, &select_ctx->readfds)) { + FD_SET(fd, &select_ctx->readfds); + select_ctx->nread++; + } + } + if (events & HV_WRITE) { + if (!FD_ISSET(fd, &select_ctx->writefds)) { + FD_SET(fd, &select_ctx->writefds); + select_ctx->nwrite++; + } + } + return 0; +} + +int iowatcher_del_event(hloop_t* loop, int fd, int events) { + select_ctx_t* select_ctx = (select_ctx_t*)loop->iowatcher; + if (select_ctx == NULL) return 0; + if (fd == select_ctx->max_fd) { + select_ctx->max_fd = -1; + } + if (events & HV_READ) { + if (FD_ISSET(fd, &select_ctx->readfds)) { + FD_CLR(fd, &select_ctx->readfds); + select_ctx->nread--; + } + } + if (events & HV_WRITE) { + if (FD_ISSET(fd, &select_ctx->writefds)) { + FD_CLR(fd, &select_ctx->writefds); + select_ctx->nwrite--; + } + } + return 0; +} + +static int find_max_active_fd(hloop_t* loop) { + hio_t* io = NULL; + for (int i = loop->ios.maxsize-1; i >= 0; --i) { + io = loop->ios.ptr[i]; + if (io && io->active && io->events) return i; + } + return -1; +} + +static int remove_bad_fds(hloop_t* loop) { + select_ctx_t* select_ctx = (select_ctx_t*)loop->iowatcher; + if (select_ctx == NULL) return 0; + int badfds = 0; + int error = 0; + socklen_t optlen = sizeof(error); + for (int fd = 0; fd <= select_ctx->max_fd; ++fd) { + if (FD_ISSET(fd, &select_ctx->readfds) || + FD_ISSET(fd, &select_ctx->writefds)) { + error = 0; + optlen = sizeof(int); + if (getsockopt(fd, SOL_SOCKET, SO_ERROR, (char*)&error, &optlen) < 0 || error != 0) { + ++badfds; + hio_t* io = loop->ios.ptr[fd]; + if (io) { + hio_del(io, HV_RDWR); + } + } + } + } + return badfds; +} + +int iowatcher_poll_events(hloop_t* loop, int timeout) { + select_ctx_t* select_ctx = (select_ctx_t*)loop->iowatcher; + if (select_ctx == NULL) return 0; + if (select_ctx->nread == 0 && select_ctx->nwrite == 0) { + return 0; + } + int max_fd = select_ctx->max_fd; + fd_set readfds = select_ctx->readfds; + fd_set writefds = select_ctx->writefds; + if (max_fd == -1) { + select_ctx->max_fd = max_fd = find_max_active_fd(loop); + } + struct timeval tv, *tp; + if (timeout == INFINITE) { + tp = NULL; + } + else { + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + tp = &tv; + } + int nselect = select(max_fd+1, &readfds, &writefds, NULL, tp); + if (nselect < 0) { +#ifdef OS_WIN + if (WSAGetLastError() == WSAENOTSOCK) { +#else + if (errno == EBADF) { + perror("select"); +#endif + remove_bad_fds(loop); + return -EBADF; + } + return nselect; + } + if (nselect == 0) return 0; + int nevents = 0; + int revents = 0; + for (int fd = 0; fd <= max_fd; ++fd) { + revents = 0; + if (FD_ISSET(fd, &readfds)) { + ++nevents; + revents |= HV_READ; + } + if (FD_ISSET(fd, &writefds)) { + ++nevents; + revents |= HV_WRITE; + } + if (revents) { + hio_t* io = loop->ios.ptr[fd]; + if (io) { + io->revents = revents; + EVENT_PENDING(io); + } + } + if (nevents == nselect) break; + } + return nevents; +} +#endif diff --git a/3rdPartner/libhv/event/unpack.c b/3rdPartner/libhv/event/unpack.c new file mode 100644 index 0000000..8a37a26 --- /dev/null +++ b/3rdPartner/libhv/event/unpack.c @@ -0,0 +1,174 @@ +#include "unpack.h" +#include "hevent.h" +#include "herr.h" +#include "hlog.h" +#include "hmath.h" + +int hio_unpack(hio_t* io, void* buf, int readbytes) { + unpack_setting_t* setting = io->unpack_setting; + switch(setting->mode) { + case UNPACK_BY_FIXED_LENGTH: + return hio_unpack_by_fixed_length(io, buf, readbytes); + case UNPACK_BY_DELIMITER: + return hio_unpack_by_delimiter(io, buf, readbytes); + case UNPACK_BY_LENGTH_FIELD: + return hio_unpack_by_length_field(io, buf, readbytes); + default: + hio_read_cb(io, buf, readbytes); + return readbytes; + } +} + +int hio_unpack_by_fixed_length(hio_t* io, void* buf, int readbytes) { + const unsigned char* sp = (const unsigned char*)io->readbuf.base + io->readbuf.head; + const unsigned char* ep = (const unsigned char*)buf + readbytes; + unpack_setting_t* setting = io->unpack_setting; + + int fixed_length = setting->fixed_length; + assert(io->readbuf.len >= fixed_length); + + const unsigned char* p = sp; + int remain = ep - p; + int handled = 0; + while (remain >= fixed_length) { + hio_read_cb(io, (void*)p, fixed_length); + handled += fixed_length; + p += fixed_length; + remain -= fixed_length; + } + + io->readbuf.head = 0; + io->readbuf.tail = remain; + if (remain) { + // [p, p+remain] => [base, base+remain] + if (p != (unsigned char*)io->readbuf.base) { + memmove(io->readbuf.base, p, remain); + } + } + + return handled; +} + +int hio_unpack_by_delimiter(hio_t* io, void* buf, int readbytes) { + const unsigned char* sp = (const unsigned char*)io->readbuf.base + io->readbuf.head; + const unsigned char* ep = (const unsigned char*)buf + readbytes; + unpack_setting_t* setting = io->unpack_setting; + + unsigned char* delimiter = setting->delimiter; + int delimiter_bytes = setting->delimiter_bytes; + + const unsigned char* p = (const unsigned char*)buf - delimiter_bytes + 1; + if (p < sp) p = sp; + int remain = ep - p; + int handled = 0; + int i = 0; + while (remain >= delimiter_bytes) { + for (i = 0; i < delimiter_bytes; ++i) { + if (p[i] != delimiter[i]) { + goto not_match; + } + } +match: + p += delimiter_bytes; + remain -= delimiter_bytes; + hio_read_cb(io, (void*)sp, p - sp); + handled += p - sp; + sp = p; + continue; +not_match: + ++p; + --remain; + } + + remain = ep - sp; + io->readbuf.head = 0; + io->readbuf.tail = remain; + if (remain) { + // [sp, sp+remain] => [base, base+remain] + if (sp != (unsigned char*)io->readbuf.base) { + memmove(io->readbuf.base, sp, remain); + } + if (io->readbuf.tail == io->readbuf.len) { + if (io->readbuf.len >= setting->package_max_length) { + hloge("recv package over %d bytes!", (int)setting->package_max_length); + io->error = ERR_OVER_LIMIT; + hio_close(io); + return -1; + } + int newsize = MIN(io->readbuf.len * 2, setting->package_max_length); + hio_alloc_readbuf(io, newsize); + } + } + + return handled; +} + +int hio_unpack_by_length_field(hio_t* io, void* buf, int readbytes) { + const unsigned char* sp = (const unsigned char*)io->readbuf.base + io->readbuf.head; + const unsigned char* ep = (const unsigned char*)buf + readbytes; + unpack_setting_t* setting = io->unpack_setting; + + const unsigned char* p = sp; + int remain = ep - p; + int handled = 0; + unsigned int head_len = setting->body_offset; + unsigned int body_len = 0; + unsigned int package_len = head_len; + const unsigned char* lp = NULL; + while (remain >= setting->body_offset) { + body_len = 0; + lp = p + setting->length_field_offset; + if (setting->length_field_coding == BIG_ENDIAN) { + for (int i = 0; i < setting->length_field_bytes; ++i) { + body_len = (body_len << 8) | (unsigned int)*lp++; + } + } + else if (setting->length_field_coding == LITTLE_ENDIAN) { + for (int i = 0; i < setting->length_field_bytes; ++i) { + body_len |= ((unsigned int)*lp++) << (i * 8); + } + } + else if (setting->length_field_coding == ENCODE_BY_VARINT) { + int varint_bytes = ep - lp; + body_len = varint_decode(lp, &varint_bytes); + if (varint_bytes == 0) break; + if (varint_bytes == -1) { + hloge("varint is too big!"); + io->error = ERR_OVER_LIMIT; + hio_close(io); + return -1; + } + head_len = setting->body_offset + varint_bytes - setting->length_field_bytes; + } + package_len = head_len + body_len + setting->length_adjustment; + if (remain >= package_len) { + hio_read_cb(io, (void*)p, package_len); + handled += package_len; + p += package_len; + remain -= package_len; + } else { + break; + } + } + + io->readbuf.head = 0; + io->readbuf.tail = remain; + if (remain) { + // [p, p+remain] => [base, base+remain] + if (p != (unsigned char*)io->readbuf.base) { + memmove(io->readbuf.base, p, remain); + } + if (package_len > io->readbuf.len) { + if (package_len > setting->package_max_length) { + hloge("package length over %d bytes!", (int)setting->package_max_length); + io->error = ERR_OVER_LIMIT; + hio_close(io); + return -1; + } + int newsize = LIMIT(package_len, io->readbuf.len * 2, setting->package_max_length); + hio_alloc_readbuf(io, newsize); + } + } + + return handled; +} diff --git a/3rdPartner/libhv/event/unpack.h b/3rdPartner/libhv/event/unpack.h new file mode 100644 index 0000000..3738587 --- /dev/null +++ b/3rdPartner/libhv/event/unpack.h @@ -0,0 +1,11 @@ +#ifndef HV_UNPACK_H_ +#define HV_UNPACK_H_ + +#include "hloop.h" + +int hio_unpack(hio_t* io, void* buf, int readbytes); +int hio_unpack_by_fixed_length(hio_t* io, void* buf, int readbytes); +int hio_unpack_by_delimiter(hio_t* io, void* buf, int readbytes); +int hio_unpack_by_length_field(hio_t* io, void* buf, int readbytes); + +#endif // HV_UNPACK_H_ diff --git a/3rdPartner/libhv/event/wepoll/LICENSE b/3rdPartner/libhv/event/wepoll/LICENSE new file mode 100644 index 0000000..d7fc4b1 --- /dev/null +++ b/3rdPartner/libhv/event/wepoll/LICENSE @@ -0,0 +1,28 @@ +wepoll - epoll for Windows +https://github.com/piscisaureus/wepoll + +Copyright 2012-2020, Bert Belder +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/3rdPartner/libhv/event/wepoll/README.md b/3rdPartner/libhv/event/wepoll/README.md new file mode 100644 index 0000000..d334d08 --- /dev/null +++ b/3rdPartner/libhv/event/wepoll/README.md @@ -0,0 +1,202 @@ +# wepoll - epoll for windows + +[![][ci status badge]][ci status link] + +This library implements the [epoll][man epoll] API for Windows +applications. It is fast and scalable, and it closely resembles the API +and behavior of Linux' epoll. + +## Rationale + +Unlike Linux, OS X, and many other operating systems, Windows doesn't +have a good API for receiving socket state notifications. It only +supports the `select` and `WSAPoll` APIs, but they +[don't scale][select scale] and suffer from +[other issues][wsapoll broken]. + +Using I/O completion ports isn't always practical when software is +designed to be cross-platform. Wepoll offers an alternative that is +much closer to a drop-in replacement for software that was designed +to run on Linux. + +## Features + +* Can poll 100000s of sockets efficiently. +* Fully thread-safe. +* Multiple threads can poll the same epoll port. +* Sockets can be added to multiple epoll sets. +* All epoll events (`EPOLLIN`, `EPOLLOUT`, `EPOLLPRI`, `EPOLLRDHUP`) + are supported. +* Level-triggered and one-shot (`EPOLLONESTHOT`) modes are supported +* Trivial to embed: you need [only two files][dist]. + +## Limitations + +* Only works with sockets. +* Edge-triggered (`EPOLLET`) mode isn't supported. + +## How to use + +The library is [distributed][dist] as a single source file +([wepoll.c][wepoll.c]) and a single header file ([wepoll.h][wepoll.h]).
+Compile the .c file as part of your project, and include the header wherever +needed. + +## Compatibility + +* Requires Windows Vista or higher. +* Can be compiled with recent versions of MSVC, Clang, and GCC. + +## API + +### General remarks + +* The epoll port is a `HANDLE`, not a file descriptor. +* All functions set both `errno` and `GetLastError()` on failure. +* For more extensive documentation, see the [epoll(7) man page][man epoll], + and the per-function man pages that are linked below. + +### epoll_create/epoll_create1 + +```c +HANDLE epoll_create(int size); +HANDLE epoll_create1(int flags); +``` + +* Create a new epoll instance (port). +* `size` is ignored but most be greater than zero. +* `flags` must be zero as there are no supported flags. +* Returns `NULL` on failure. +* [Linux man page][man epoll_create] + +### epoll_close + +```c +int epoll_close(HANDLE ephnd); +``` + +* Close an epoll port. +* Do not attempt to close the epoll port with `close()`, + `CloseHandle()` or `closesocket()`. + +### epoll_ctl + +```c +int epoll_ctl(HANDLE ephnd, + int op, + SOCKET sock, + struct epoll_event* event); +``` + +* Control which socket events are monitored by an epoll port. +* `ephnd` must be a HANDLE created by + [`epoll_create()`](#epoll_createepoll_create1) or + [`epoll_create1()`](#epoll_createepoll_create1). +* `op` must be one of `EPOLL_CTL_ADD`, `EPOLL_CTL_MOD`, `EPOLL_CTL_DEL`. +* `sock` must be a valid socket created by [`socket()`][msdn socket], + [`WSASocket()`][msdn wsasocket], or [`accept()`][msdn accept]. +* `event` should be a pointer to a [`struct epoll_event`](#struct-epoll_event).
+ If `op` is `EPOLL_CTL_DEL` then the `event` parameter is ignored, and it + may be `NULL`. +* Returns 0 on success, -1 on failure. +* It is recommended to always explicitly remove a socket from its epoll + set using `EPOLL_CTL_DEL` *before* closing it.
+ As on Linux, closed sockets are automatically removed from the epoll set, but + wepoll may not be able to detect that a socket was closed until the next call + to [`epoll_wait()`](#epoll_wait). +* [Linux man page][man epoll_ctl] + +### epoll_wait + +```c +int epoll_wait(HANDLE ephnd, + struct epoll_event* events, + int maxevents, + int timeout); +``` + +* Receive socket events from an epoll port. +* `events` should point to a caller-allocated array of + [`epoll_event`](#struct-epoll_event) structs, which will receive the + reported events. +* `maxevents` is the maximum number of events that will be written to the + `events` array, and must be greater than zero. +* `timeout` specifies whether to block when no events are immediately available. + - `<0` block indefinitely + - `0` report any events that are already waiting, but don't block + - `≥1` block for at most N milliseconds +* Return value: + - `-1` an error occurred + - `0` timed out without any events to report + - `≥1` the number of events stored in the `events` buffer +* [Linux man page][man epoll_wait] + +### struct epoll_event + +```c +typedef union epoll_data { + void* ptr; + int fd; + uint32_t u32; + uint64_t u64; + SOCKET sock; /* Windows specific */ + HANDLE hnd; /* Windows specific */ +} epoll_data_t; +``` + +```c +struct epoll_event { + uint32_t events; /* Epoll events and flags */ + epoll_data_t data; /* User data variable */ +}; +``` + +* The `events` field is a bit mask containing the events being + monitored/reported, and optional flags.
+ Flags are accepted by [`epoll_ctl()`](#epoll_ctl), but they are not reported + back by [`epoll_wait()`](#epoll_wait). +* The `data` field can be used to associate application-specific information + with a socket; its value will be returned unmodified by + [`epoll_wait()`](#epoll_wait). +* [Linux man page][man epoll_ctl] + +| Event | Description | +|---------------|----------------------------------------------------------------------| +| `EPOLLIN` | incoming data available, or incoming connection ready to be accepted | +| `EPOLLOUT` | ready to send data, or outgoing connection successfully established | +| `EPOLLRDHUP` | remote peer initiated graceful socket shutdown | +| `EPOLLPRI` | out-of-band data available for reading | +| `EPOLLERR` | socket error1 | +| `EPOLLHUP` | socket hang-up1 | +| `EPOLLRDNORM` | same as `EPOLLIN` | +| `EPOLLRDBAND` | same as `EPOLLPRI` | +| `EPOLLWRNORM` | same as `EPOLLOUT` | +| `EPOLLWRBAND` | same as `EPOLLOUT` | +| `EPOLLMSG` | never reported | + +| Flag | Description | +|------------------|---------------------------| +| `EPOLLONESHOT` | report event(s) only once | +| `EPOLLET` | not supported by wepoll | +| `EPOLLEXCLUSIVE` | not supported by wepoll | +| `EPOLLWAKEUP` | not supported by wepoll | + +1: the `EPOLLERR` and `EPOLLHUP` events may always be reported by +[`epoll_wait()`](#epoll_wait), regardless of the event mask that was passed to +[`epoll_ctl()`](#epoll_ctl). + + +[ci status badge]: https://ci.appveyor.com/api/projects/status/github/piscisaureus/wepoll?branch=master&svg=true +[ci status link]: https://ci.appveyor.com/project/piscisaureus/wepoll/branch/master +[dist]: https://github.com/piscisaureus/wepoll/tree/dist +[man epoll]: http://man7.org/linux/man-pages/man7/epoll.7.html +[man epoll_create]: http://man7.org/linux/man-pages/man2/epoll_create.2.html +[man epoll_ctl]: http://man7.org/linux/man-pages/man2/epoll_ctl.2.html +[man epoll_wait]: http://man7.org/linux/man-pages/man2/epoll_wait.2.html +[msdn accept]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms737526(v=vs.85).aspx +[msdn socket]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms740506(v=vs.85).aspx +[msdn wsasocket]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms742212(v=vs.85).aspx +[select scale]: https://daniel.haxx.se/docs/poll-vs-select.html +[wsapoll broken]: https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/ +[wepoll.c]: https://github.com/piscisaureus/wepoll/blob/dist/wepoll.c +[wepoll.h]: https://github.com/piscisaureus/wepoll/blob/dist/wepoll.h diff --git a/3rdPartner/libhv/event/wepoll/wepoll.c b/3rdPartner/libhv/event/wepoll/wepoll.c new file mode 100644 index 0000000..186d3f2 --- /dev/null +++ b/3rdPartner/libhv/event/wepoll/wepoll.c @@ -0,0 +1,2253 @@ +/* + * wepoll - epoll for Windows + * https://github.com/piscisaureus/wepoll + * + * Copyright 2012-2020, Bert Belder + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WEPOLL_EXPORT +#define WEPOLL_EXPORT +#endif + +#include + +enum EPOLL_EVENTS { + EPOLLIN = (int) (1U << 0), + EPOLLPRI = (int) (1U << 1), + EPOLLOUT = (int) (1U << 2), + EPOLLERR = (int) (1U << 3), + EPOLLHUP = (int) (1U << 4), + EPOLLRDNORM = (int) (1U << 6), + EPOLLRDBAND = (int) (1U << 7), + EPOLLWRNORM = (int) (1U << 8), + EPOLLWRBAND = (int) (1U << 9), + EPOLLMSG = (int) (1U << 10), /* Never reported. */ + EPOLLRDHUP = (int) (1U << 13), + EPOLLONESHOT = (int) (1U << 31) +}; + +#define EPOLLIN (1U << 0) +#define EPOLLPRI (1U << 1) +#define EPOLLOUT (1U << 2) +#define EPOLLERR (1U << 3) +#define EPOLLHUP (1U << 4) +#define EPOLLRDNORM (1U << 6) +#define EPOLLRDBAND (1U << 7) +#define EPOLLWRNORM (1U << 8) +#define EPOLLWRBAND (1U << 9) +#define EPOLLMSG (1U << 10) +#define EPOLLRDHUP (1U << 13) +#define EPOLLONESHOT (1U << 31) + +#define EPOLL_CTL_ADD 1 +#define EPOLL_CTL_MOD 2 +#define EPOLL_CTL_DEL 3 + +typedef void* HANDLE; +typedef uintptr_t SOCKET; + +typedef union epoll_data { + void* ptr; + int fd; + uint32_t u32; + uint64_t u64; + SOCKET sock; /* Windows specific */ + HANDLE hnd; /* Windows specific */ +} epoll_data_t; + +struct epoll_event { + uint32_t events; /* Epoll events and flags */ + epoll_data_t data; /* User data variable */ +}; + +#ifdef __cplusplus +extern "C" { +#endif + +WEPOLL_EXPORT HANDLE epoll_create(int size); +WEPOLL_EXPORT HANDLE epoll_create1(int flags); + +WEPOLL_EXPORT int epoll_close(HANDLE ephnd); + +WEPOLL_EXPORT int epoll_ctl(HANDLE ephnd, + int op, + SOCKET sock, + struct epoll_event* event); + +WEPOLL_EXPORT int epoll_wait(HANDLE ephnd, + struct epoll_event* events, + int maxevents, + int timeout); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#include + +#include + +#define WEPOLL_INTERNAL static +#define WEPOLL_INTERNAL_EXTERN static + +#if defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonportable-system-include-path" +#pragma clang diagnostic ignored "-Wreserved-id-macro" +#elif defined(_MSC_VER) +#pragma warning(push, 1) +#endif + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN + +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0600 + +#include +#include +#include + +#if defined(__clang__) +#pragma clang diagnostic pop +#elif defined(_MSC_VER) +#pragma warning(pop) +#endif + +WEPOLL_INTERNAL int nt_global_init(void); + +typedef LONG NTSTATUS; +typedef NTSTATUS* PNTSTATUS; + +#ifndef NT_SUCCESS +#define NT_SUCCESS(status) (((NTSTATUS)(status)) >= 0) +#endif + +#ifndef STATUS_SUCCESS +#define STATUS_SUCCESS ((NTSTATUS) 0x00000000L) +#endif + +#ifndef STATUS_PENDING +#define STATUS_PENDING ((NTSTATUS) 0x00000103L) +#endif + +#ifndef STATUS_CANCELLED +#define STATUS_CANCELLED ((NTSTATUS) 0xC0000120L) +#endif + +#ifndef STATUS_NOT_FOUND +#define STATUS_NOT_FOUND ((NTSTATUS) 0xC0000225L) +#endif + +typedef struct _IO_STATUS_BLOCK { + NTSTATUS Status; + ULONG_PTR Information; +} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; + +typedef VOID(NTAPI* PIO_APC_ROUTINE)(PVOID ApcContext, + PIO_STATUS_BLOCK IoStatusBlock, + ULONG Reserved); + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING, *PUNICODE_STRING; + +#define RTL_CONSTANT_STRING(s) \ + { sizeof(s) - sizeof((s)[0]), sizeof(s), s } + +typedef struct _OBJECT_ATTRIBUTES { + ULONG Length; + HANDLE RootDirectory; + PUNICODE_STRING ObjectName; + ULONG Attributes; + PVOID SecurityDescriptor; + PVOID SecurityQualityOfService; +} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; + +#define RTL_CONSTANT_OBJECT_ATTRIBUTES(ObjectName, Attributes) \ + { sizeof(OBJECT_ATTRIBUTES), NULL, ObjectName, Attributes, NULL, NULL } + +#ifndef FILE_OPEN +#define FILE_OPEN 0x00000001UL +#endif + +#define KEYEDEVENT_WAIT 0x00000001UL +#define KEYEDEVENT_WAKE 0x00000002UL +#define KEYEDEVENT_ALL_ACCESS \ + (STANDARD_RIGHTS_REQUIRED | KEYEDEVENT_WAIT | KEYEDEVENT_WAKE) + +#define NT_NTDLL_IMPORT_LIST(X) \ + X(NTSTATUS, \ + NTAPI, \ + NtCancelIoFileEx, \ + (HANDLE FileHandle, \ + PIO_STATUS_BLOCK IoRequestToCancel, \ + PIO_STATUS_BLOCK IoStatusBlock)) \ + \ + X(NTSTATUS, \ + NTAPI, \ + NtCreateFile, \ + (PHANDLE FileHandle, \ + ACCESS_MASK DesiredAccess, \ + POBJECT_ATTRIBUTES ObjectAttributes, \ + PIO_STATUS_BLOCK IoStatusBlock, \ + PLARGE_INTEGER AllocationSize, \ + ULONG FileAttributes, \ + ULONG ShareAccess, \ + ULONG CreateDisposition, \ + ULONG CreateOptions, \ + PVOID EaBuffer, \ + ULONG EaLength)) \ + \ + X(NTSTATUS, \ + NTAPI, \ + NtCreateKeyedEvent, \ + (PHANDLE KeyedEventHandle, \ + ACCESS_MASK DesiredAccess, \ + POBJECT_ATTRIBUTES ObjectAttributes, \ + ULONG Flags)) \ + \ + X(NTSTATUS, \ + NTAPI, \ + NtDeviceIoControlFile, \ + (HANDLE FileHandle, \ + HANDLE Event, \ + PIO_APC_ROUTINE ApcRoutine, \ + PVOID ApcContext, \ + PIO_STATUS_BLOCK IoStatusBlock, \ + ULONG IoControlCode, \ + PVOID InputBuffer, \ + ULONG InputBufferLength, \ + PVOID OutputBuffer, \ + ULONG OutputBufferLength)) \ + \ + X(NTSTATUS, \ + NTAPI, \ + NtReleaseKeyedEvent, \ + (HANDLE KeyedEventHandle, \ + PVOID KeyValue, \ + BOOLEAN Alertable, \ + PLARGE_INTEGER Timeout)) \ + \ + X(NTSTATUS, \ + NTAPI, \ + NtWaitForKeyedEvent, \ + (HANDLE KeyedEventHandle, \ + PVOID KeyValue, \ + BOOLEAN Alertable, \ + PLARGE_INTEGER Timeout)) \ + \ + X(ULONG, WINAPI, RtlNtStatusToDosError, (NTSTATUS Status)) + +#define X(return_type, attributes, name, parameters) \ + WEPOLL_INTERNAL_EXTERN return_type(attributes* name) parameters; +NT_NTDLL_IMPORT_LIST(X) +#undef X + +#define AFD_POLL_RECEIVE 0x0001 +#define AFD_POLL_RECEIVE_EXPEDITED 0x0002 +#define AFD_POLL_SEND 0x0004 +#define AFD_POLL_DISCONNECT 0x0008 +#define AFD_POLL_ABORT 0x0010 +#define AFD_POLL_LOCAL_CLOSE 0x0020 +#define AFD_POLL_ACCEPT 0x0080 +#define AFD_POLL_CONNECT_FAIL 0x0100 + +typedef struct _AFD_POLL_HANDLE_INFO { + HANDLE Handle; + ULONG Events; + NTSTATUS Status; +} AFD_POLL_HANDLE_INFO, *PAFD_POLL_HANDLE_INFO; + +typedef struct _AFD_POLL_INFO { + LARGE_INTEGER Timeout; + ULONG NumberOfHandles; + ULONG Exclusive; + AFD_POLL_HANDLE_INFO Handles[1]; +} AFD_POLL_INFO, *PAFD_POLL_INFO; + +WEPOLL_INTERNAL int afd_create_device_handle(HANDLE iocp_handle, + HANDLE* afd_device_handle_out); + +WEPOLL_INTERNAL int afd_poll(HANDLE afd_device_handle, + AFD_POLL_INFO* poll_info, + IO_STATUS_BLOCK* io_status_block); +WEPOLL_INTERNAL int afd_cancel_poll(HANDLE afd_device_handle, + IO_STATUS_BLOCK* io_status_block); + +#define return_map_error(value) \ + do { \ + err_map_win_error(); \ + return (value); \ + } while (0) + +#define return_set_error(value, error) \ + do { \ + err_set_win_error(error); \ + return (value); \ + } while (0) + +WEPOLL_INTERNAL void err_map_win_error(void); +WEPOLL_INTERNAL void err_set_win_error(DWORD error); +WEPOLL_INTERNAL int err_check_handle(HANDLE handle); + +#define IOCTL_AFD_POLL 0x00012024 + +static UNICODE_STRING afd__device_name = + RTL_CONSTANT_STRING(L"\\Device\\Afd\\Wepoll"); + +static OBJECT_ATTRIBUTES afd__device_attributes = + RTL_CONSTANT_OBJECT_ATTRIBUTES(&afd__device_name, 0); + +int afd_create_device_handle(HANDLE iocp_handle, + HANDLE* afd_device_handle_out) { + HANDLE afd_device_handle; + IO_STATUS_BLOCK iosb; + NTSTATUS status; + + /* By opening \Device\Afd without specifying any extended attributes, we'll + * get a handle that lets us talk to the AFD driver, but that doesn't have an + * associated endpoint (so it's not a socket). */ + status = NtCreateFile(&afd_device_handle, + SYNCHRONIZE, + &afd__device_attributes, + &iosb, + NULL, + 0, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN, + 0, + NULL, + 0); + if (status != STATUS_SUCCESS) + return_set_error(-1, RtlNtStatusToDosError(status)); + + if (CreateIoCompletionPort(afd_device_handle, iocp_handle, 0, 0) == NULL) + goto error; + + if (!SetFileCompletionNotificationModes(afd_device_handle, + FILE_SKIP_SET_EVENT_ON_HANDLE)) + goto error; + + *afd_device_handle_out = afd_device_handle; + return 0; + +error: + CloseHandle(afd_device_handle); + return_map_error(-1); +} + +int afd_poll(HANDLE afd_device_handle, + AFD_POLL_INFO* poll_info, + IO_STATUS_BLOCK* io_status_block) { + NTSTATUS status; + + /* Blocking operation is not supported. */ + assert(io_status_block != NULL); + + io_status_block->Status = STATUS_PENDING; + status = NtDeviceIoControlFile(afd_device_handle, + NULL, + NULL, + io_status_block, + io_status_block, + IOCTL_AFD_POLL, + poll_info, + sizeof *poll_info, + poll_info, + sizeof *poll_info); + + if (status == STATUS_SUCCESS) + return 0; + else if (status == STATUS_PENDING) + return_set_error(-1, ERROR_IO_PENDING); + else + return_set_error(-1, RtlNtStatusToDosError(status)); +} + +int afd_cancel_poll(HANDLE afd_device_handle, + IO_STATUS_BLOCK* io_status_block) { + NTSTATUS cancel_status; + IO_STATUS_BLOCK cancel_iosb; + + /* If the poll operation has already completed or has been cancelled earlier, + * there's nothing left for us to do. */ + if (io_status_block->Status != STATUS_PENDING) + return 0; + + cancel_status = + NtCancelIoFileEx(afd_device_handle, io_status_block, &cancel_iosb); + + /* NtCancelIoFileEx() may return STATUS_NOT_FOUND if the operation completed + * just before calling NtCancelIoFileEx(). This is not an error. */ + if (cancel_status == STATUS_SUCCESS || cancel_status == STATUS_NOT_FOUND) + return 0; + else + return_set_error(-1, RtlNtStatusToDosError(cancel_status)); +} + +WEPOLL_INTERNAL int epoll_global_init(void); + +WEPOLL_INTERNAL int init(void); + +typedef struct port_state port_state_t; +typedef struct queue queue_t; +typedef struct sock_state sock_state_t; +typedef struct ts_tree_node ts_tree_node_t; + +WEPOLL_INTERNAL port_state_t* port_new(HANDLE* iocp_handle_out); +WEPOLL_INTERNAL int port_close(port_state_t* port_state); +WEPOLL_INTERNAL int port_delete(port_state_t* port_state); + +WEPOLL_INTERNAL int port_wait(port_state_t* port_state, + struct epoll_event* events, + int maxevents, + int timeout); + +WEPOLL_INTERNAL int port_ctl(port_state_t* port_state, + int op, + SOCKET sock, + struct epoll_event* ev); + +WEPOLL_INTERNAL int port_register_socket(port_state_t* port_state, + sock_state_t* sock_state, + SOCKET socket); +WEPOLL_INTERNAL void port_unregister_socket(port_state_t* port_state, + sock_state_t* sock_state); +WEPOLL_INTERNAL sock_state_t* port_find_socket(port_state_t* port_state, + SOCKET socket); + +WEPOLL_INTERNAL void port_request_socket_update(port_state_t* port_state, + sock_state_t* sock_state); +WEPOLL_INTERNAL void port_cancel_socket_update(port_state_t* port_state, + sock_state_t* sock_state); + +WEPOLL_INTERNAL void port_add_deleted_socket(port_state_t* port_state, + sock_state_t* sock_state); +WEPOLL_INTERNAL void port_remove_deleted_socket(port_state_t* port_state, + sock_state_t* sock_state); + +WEPOLL_INTERNAL HANDLE port_get_iocp_handle(port_state_t* port_state); +WEPOLL_INTERNAL queue_t* port_get_poll_group_queue(port_state_t* port_state); + +WEPOLL_INTERNAL port_state_t* port_state_from_handle_tree_node( + ts_tree_node_t* tree_node); +WEPOLL_INTERNAL ts_tree_node_t* port_state_to_handle_tree_node( + port_state_t* port_state); + +/* The reflock is a special kind of lock that normally prevents a chunk of + * memory from being freed, but does allow the chunk of memory to eventually be + * released in a coordinated fashion. + * + * Under normal operation, threads increase and decrease the reference count, + * which are wait-free operations. + * + * Exactly once during the reflock's lifecycle, a thread holding a reference to + * the lock may "destroy" the lock; this operation blocks until all other + * threads holding a reference to the lock have dereferenced it. After + * "destroy" returns, the calling thread may assume that no other threads have + * a reference to the lock. + * + * Attemmpting to lock or destroy a lock after reflock_unref_and_destroy() has + * been called is invalid and results in undefined behavior. Therefore the user + * should use another lock to guarantee that this can't happen. + */ + +typedef struct reflock { + volatile long state; /* 32-bit Interlocked APIs operate on `long` values. */ +} reflock_t; + +WEPOLL_INTERNAL int reflock_global_init(void); + +WEPOLL_INTERNAL void reflock_init(reflock_t* reflock); +WEPOLL_INTERNAL void reflock_ref(reflock_t* reflock); +WEPOLL_INTERNAL void reflock_unref(reflock_t* reflock); +WEPOLL_INTERNAL void reflock_unref_and_destroy(reflock_t* reflock); + +#include + +/* N.b.: the tree functions do not set errno or LastError when they fail. Each + * of the API functions has at most one failure mode. It is up to the caller to + * set an appropriate error code when necessary. */ + +typedef struct tree tree_t; +typedef struct tree_node tree_node_t; + +typedef struct tree { + tree_node_t* root; +} tree_t; + +typedef struct tree_node { + tree_node_t* left; + tree_node_t* right; + tree_node_t* parent; + uintptr_t key; + bool red; +} tree_node_t; + +WEPOLL_INTERNAL void tree_init(tree_t* tree); +WEPOLL_INTERNAL void tree_node_init(tree_node_t* node); + +WEPOLL_INTERNAL int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key); +WEPOLL_INTERNAL void tree_del(tree_t* tree, tree_node_t* node); + +WEPOLL_INTERNAL tree_node_t* tree_find(const tree_t* tree, uintptr_t key); +WEPOLL_INTERNAL tree_node_t* tree_root(const tree_t* tree); + +typedef struct ts_tree { + tree_t tree; + SRWLOCK lock; +} ts_tree_t; + +typedef struct ts_tree_node { + tree_node_t tree_node; + reflock_t reflock; +} ts_tree_node_t; + +WEPOLL_INTERNAL void ts_tree_init(ts_tree_t* rtl); +WEPOLL_INTERNAL void ts_tree_node_init(ts_tree_node_t* node); + +WEPOLL_INTERNAL int ts_tree_add(ts_tree_t* ts_tree, + ts_tree_node_t* node, + uintptr_t key); + +WEPOLL_INTERNAL ts_tree_node_t* ts_tree_del_and_ref(ts_tree_t* ts_tree, + uintptr_t key); +WEPOLL_INTERNAL ts_tree_node_t* ts_tree_find_and_ref(ts_tree_t* ts_tree, + uintptr_t key); + +WEPOLL_INTERNAL void ts_tree_node_unref(ts_tree_node_t* node); +WEPOLL_INTERNAL void ts_tree_node_unref_and_destroy(ts_tree_node_t* node); + +static ts_tree_t epoll__handle_tree; + +int epoll_global_init(void) { + ts_tree_init(&epoll__handle_tree); + return 0; +} + +static HANDLE epoll__create(void) { + port_state_t* port_state; + HANDLE ephnd; + ts_tree_node_t* tree_node; + + if (init() < 0) + return NULL; + + port_state = port_new(&ephnd); + if (port_state == NULL) + return NULL; + + tree_node = port_state_to_handle_tree_node(port_state); + if (ts_tree_add(&epoll__handle_tree, tree_node, (uintptr_t) ephnd) < 0) { + /* This should never happen. */ + port_delete(port_state); + return_set_error(NULL, ERROR_ALREADY_EXISTS); + } + + return ephnd; +} + +HANDLE epoll_create(int size) { + if (size <= 0) + return_set_error(NULL, ERROR_INVALID_PARAMETER); + + return epoll__create(); +} + +HANDLE epoll_create1(int flags) { + if (flags != 0) + return_set_error(NULL, ERROR_INVALID_PARAMETER); + + return epoll__create(); +} + +int epoll_close(HANDLE ephnd) { + ts_tree_node_t* tree_node; + port_state_t* port_state; + + if (init() < 0) + return -1; + + tree_node = ts_tree_del_and_ref(&epoll__handle_tree, (uintptr_t) ephnd); + if (tree_node == NULL) { + err_set_win_error(ERROR_INVALID_PARAMETER); + goto err; + } + + port_state = port_state_from_handle_tree_node(tree_node); + port_close(port_state); + + ts_tree_node_unref_and_destroy(tree_node); + + return port_delete(port_state); + +err: + err_check_handle(ephnd); + return -1; +} + +int epoll_ctl(HANDLE ephnd, int op, SOCKET sock, struct epoll_event* ev) { + ts_tree_node_t* tree_node; + port_state_t* port_state; + int r; + + if (init() < 0) + return -1; + + tree_node = ts_tree_find_and_ref(&epoll__handle_tree, (uintptr_t) ephnd); + if (tree_node == NULL) { + err_set_win_error(ERROR_INVALID_PARAMETER); + goto err; + } + + port_state = port_state_from_handle_tree_node(tree_node); + r = port_ctl(port_state, op, sock, ev); + + ts_tree_node_unref(tree_node); + + if (r < 0) + goto err; + + return 0; + +err: + /* On Linux, in the case of epoll_ctl(), EBADF takes priority over other + * errors. Wepoll mimics this behavior. */ + err_check_handle(ephnd); + err_check_handle((HANDLE) sock); + return -1; +} + +int epoll_wait(HANDLE ephnd, + struct epoll_event* events, + int maxevents, + int timeout) { + ts_tree_node_t* tree_node; + port_state_t* port_state; + int num_events; + + if (maxevents <= 0) + return_set_error(-1, ERROR_INVALID_PARAMETER); + + if (init() < 0) + return -1; + + tree_node = ts_tree_find_and_ref(&epoll__handle_tree, (uintptr_t) ephnd); + if (tree_node == NULL) { + err_set_win_error(ERROR_INVALID_PARAMETER); + goto err; + } + + port_state = port_state_from_handle_tree_node(tree_node); + num_events = port_wait(port_state, events, maxevents, timeout); + + ts_tree_node_unref(tree_node); + + if (num_events < 0) + goto err; + + return num_events; + +err: + err_check_handle(ephnd); + return -1; +} + +#include + +#define ERR__ERRNO_MAPPINGS(X) \ + X(ERROR_ACCESS_DENIED, EACCES) \ + X(ERROR_ALREADY_EXISTS, EEXIST) \ + X(ERROR_BAD_COMMAND, EACCES) \ + X(ERROR_BAD_EXE_FORMAT, ENOEXEC) \ + X(ERROR_BAD_LENGTH, EACCES) \ + X(ERROR_BAD_NETPATH, ENOENT) \ + X(ERROR_BAD_NET_NAME, ENOENT) \ + X(ERROR_BAD_NET_RESP, ENETDOWN) \ + X(ERROR_BAD_PATHNAME, ENOENT) \ + X(ERROR_BROKEN_PIPE, EPIPE) \ + X(ERROR_CANNOT_MAKE, EACCES) \ + X(ERROR_COMMITMENT_LIMIT, ENOMEM) \ + X(ERROR_CONNECTION_ABORTED, ECONNABORTED) \ + X(ERROR_CONNECTION_ACTIVE, EISCONN) \ + X(ERROR_CONNECTION_REFUSED, ECONNREFUSED) \ + X(ERROR_CRC, EACCES) \ + X(ERROR_DIR_NOT_EMPTY, ENOTEMPTY) \ + X(ERROR_DISK_FULL, ENOSPC) \ + X(ERROR_DUP_NAME, EADDRINUSE) \ + X(ERROR_FILENAME_EXCED_RANGE, ENOENT) \ + X(ERROR_FILE_NOT_FOUND, ENOENT) \ + X(ERROR_GEN_FAILURE, EACCES) \ + X(ERROR_GRACEFUL_DISCONNECT, EPIPE) \ + X(ERROR_HOST_DOWN, EHOSTUNREACH) \ + X(ERROR_HOST_UNREACHABLE, EHOSTUNREACH) \ + X(ERROR_INSUFFICIENT_BUFFER, EFAULT) \ + X(ERROR_INVALID_ADDRESS, EADDRNOTAVAIL) \ + X(ERROR_INVALID_FUNCTION, EINVAL) \ + X(ERROR_INVALID_HANDLE, EBADF) \ + X(ERROR_INVALID_NETNAME, EADDRNOTAVAIL) \ + X(ERROR_INVALID_PARAMETER, EINVAL) \ + X(ERROR_INVALID_USER_BUFFER, EMSGSIZE) \ + X(ERROR_IO_PENDING, EINPROGRESS) \ + X(ERROR_LOCK_VIOLATION, EACCES) \ + X(ERROR_MORE_DATA, EMSGSIZE) \ + X(ERROR_NETNAME_DELETED, ECONNABORTED) \ + X(ERROR_NETWORK_ACCESS_DENIED, EACCES) \ + X(ERROR_NETWORK_BUSY, ENETDOWN) \ + X(ERROR_NETWORK_UNREACHABLE, ENETUNREACH) \ + X(ERROR_NOACCESS, EFAULT) \ + X(ERROR_NONPAGED_SYSTEM_RESOURCES, ENOMEM) \ + X(ERROR_NOT_ENOUGH_MEMORY, ENOMEM) \ + X(ERROR_NOT_ENOUGH_QUOTA, ENOMEM) \ + X(ERROR_NOT_FOUND, ENOENT) \ + X(ERROR_NOT_LOCKED, EACCES) \ + X(ERROR_NOT_READY, EACCES) \ + X(ERROR_NOT_SAME_DEVICE, EXDEV) \ + X(ERROR_NOT_SUPPORTED, ENOTSUP) \ + X(ERROR_NO_MORE_FILES, ENOENT) \ + X(ERROR_NO_SYSTEM_RESOURCES, ENOMEM) \ + X(ERROR_OPERATION_ABORTED, EINTR) \ + X(ERROR_OUT_OF_PAPER, EACCES) \ + X(ERROR_PAGED_SYSTEM_RESOURCES, ENOMEM) \ + X(ERROR_PAGEFILE_QUOTA, ENOMEM) \ + X(ERROR_PATH_NOT_FOUND, ENOENT) \ + X(ERROR_PIPE_NOT_CONNECTED, EPIPE) \ + X(ERROR_PORT_UNREACHABLE, ECONNRESET) \ + X(ERROR_PROTOCOL_UNREACHABLE, ENETUNREACH) \ + X(ERROR_REM_NOT_LIST, ECONNREFUSED) \ + X(ERROR_REQUEST_ABORTED, EINTR) \ + X(ERROR_REQ_NOT_ACCEP, EWOULDBLOCK) \ + X(ERROR_SECTOR_NOT_FOUND, EACCES) \ + X(ERROR_SEM_TIMEOUT, ETIMEDOUT) \ + X(ERROR_SHARING_VIOLATION, EACCES) \ + X(ERROR_TOO_MANY_NAMES, ENOMEM) \ + X(ERROR_TOO_MANY_OPEN_FILES, EMFILE) \ + X(ERROR_UNEXP_NET_ERR, ECONNABORTED) \ + X(ERROR_WAIT_NO_CHILDREN, ECHILD) \ + X(ERROR_WORKING_SET_QUOTA, ENOMEM) \ + X(ERROR_WRITE_PROTECT, EACCES) \ + X(ERROR_WRONG_DISK, EACCES) \ + X(WSAEACCES, EACCES) \ + X(WSAEADDRINUSE, EADDRINUSE) \ + X(WSAEADDRNOTAVAIL, EADDRNOTAVAIL) \ + X(WSAEAFNOSUPPORT, EAFNOSUPPORT) \ + X(WSAECONNABORTED, ECONNABORTED) \ + X(WSAECONNREFUSED, ECONNREFUSED) \ + X(WSAECONNRESET, ECONNRESET) \ + X(WSAEDISCON, EPIPE) \ + X(WSAEFAULT, EFAULT) \ + X(WSAEHOSTDOWN, EHOSTUNREACH) \ + X(WSAEHOSTUNREACH, EHOSTUNREACH) \ + X(WSAEINPROGRESS, EBUSY) \ + X(WSAEINTR, EINTR) \ + X(WSAEINVAL, EINVAL) \ + X(WSAEISCONN, EISCONN) \ + X(WSAEMSGSIZE, EMSGSIZE) \ + X(WSAENETDOWN, ENETDOWN) \ + X(WSAENETRESET, EHOSTUNREACH) \ + X(WSAENETUNREACH, ENETUNREACH) \ + X(WSAENOBUFS, ENOMEM) \ + X(WSAENOTCONN, ENOTCONN) \ + X(WSAENOTSOCK, ENOTSOCK) \ + X(WSAEOPNOTSUPP, EOPNOTSUPP) \ + X(WSAEPROCLIM, ENOMEM) \ + X(WSAESHUTDOWN, EPIPE) \ + X(WSAETIMEDOUT, ETIMEDOUT) \ + X(WSAEWOULDBLOCK, EWOULDBLOCK) \ + X(WSANOTINITIALISED, ENETDOWN) \ + X(WSASYSNOTREADY, ENETDOWN) \ + X(WSAVERNOTSUPPORTED, ENOSYS) + +static errno_t err__map_win_error_to_errno(DWORD error) { + switch (error) { +#define X(error_sym, errno_sym) \ + case error_sym: \ + return errno_sym; + ERR__ERRNO_MAPPINGS(X) +#undef X + } + return EINVAL; +} + +void err_map_win_error(void) { + errno = err__map_win_error_to_errno(GetLastError()); +} + +void err_set_win_error(DWORD error) { + SetLastError(error); + errno = err__map_win_error_to_errno(error); +} + +int err_check_handle(HANDLE handle) { + DWORD flags; + + /* GetHandleInformation() succeeds when passed INVALID_HANDLE_VALUE, so check + * for this condition explicitly. */ + if (handle == INVALID_HANDLE_VALUE) + return_set_error(-1, ERROR_INVALID_HANDLE); + + if (!GetHandleInformation(handle, &flags)) + return_map_error(-1); + + return 0; +} + +#include + +#define array_count(a) (sizeof(a) / (sizeof((a)[0]))) + +#define container_of(ptr, type, member) \ + ((type*) ((uintptr_t) (ptr) - offsetof(type, member))) + +#define unused_var(v) ((void) (v)) + +/* Polyfill `inline` for older versions of msvc (up to Visual Studio 2013) */ +#if defined(_MSC_VER) && _MSC_VER < 1900 +#define inline __inline +#endif + +WEPOLL_INTERNAL int ws_global_init(void); +WEPOLL_INTERNAL SOCKET ws_get_base_socket(SOCKET socket); + +static bool init__done = false; +static INIT_ONCE init__once = INIT_ONCE_STATIC_INIT; + +static BOOL CALLBACK init__once_callback(INIT_ONCE* once, + void* parameter, + void** context) { + unused_var(once); + unused_var(parameter); + unused_var(context); + + /* N.b. that initialization order matters here. */ + if (ws_global_init() < 0 || nt_global_init() < 0 || + reflock_global_init() < 0 || epoll_global_init() < 0) + return FALSE; + + init__done = true; + return TRUE; +} + +int init(void) { + if (!init__done && + !InitOnceExecuteOnce(&init__once, init__once_callback, NULL, NULL)) + /* `InitOnceExecuteOnce()` itself is infallible, and it doesn't set any + * error code when the once-callback returns FALSE. We return -1 here to + * indicate that global initialization failed; the failing init function is + * resposible for setting `errno` and calling `SetLastError()`. */ + return -1; + + return 0; +} + +/* Set up a workaround for the following problem: + * FARPROC addr = GetProcAddress(...); + * MY_FUNC func = (MY_FUNC) addr; <-- GCC 8 warning/error. + * MY_FUNC func = (MY_FUNC) (void*) addr; <-- MSVC warning/error. + * To compile cleanly with either compiler, do casts with this "bridge" type: + * MY_FUNC func = (MY_FUNC) (nt__fn_ptr_cast_t) addr; */ +#ifdef __GNUC__ +typedef void* nt__fn_ptr_cast_t; +#else +typedef FARPROC nt__fn_ptr_cast_t; +#endif + +#define X(return_type, attributes, name, parameters) \ + WEPOLL_INTERNAL return_type(attributes* name) parameters = NULL; +NT_NTDLL_IMPORT_LIST(X) +#undef X + +int nt_global_init(void) { + HMODULE ntdll; + FARPROC fn_ptr; + + ntdll = GetModuleHandleW(L"ntdll.dll"); + if (ntdll == NULL) + return -1; + +#define X(return_type, attributes, name, parameters) \ + fn_ptr = GetProcAddress(ntdll, #name); \ + if (fn_ptr == NULL) \ + return -1; \ + name = (return_type(attributes*) parameters)(nt__fn_ptr_cast_t) fn_ptr; + NT_NTDLL_IMPORT_LIST(X) +#undef X + + return 0; +} + +#include + +typedef struct poll_group poll_group_t; + +typedef struct queue_node queue_node_t; + +WEPOLL_INTERNAL poll_group_t* poll_group_acquire(port_state_t* port); +WEPOLL_INTERNAL void poll_group_release(poll_group_t* poll_group); + +WEPOLL_INTERNAL void poll_group_delete(poll_group_t* poll_group); + +WEPOLL_INTERNAL poll_group_t* poll_group_from_queue_node( + queue_node_t* queue_node); +WEPOLL_INTERNAL HANDLE + poll_group_get_afd_device_handle(poll_group_t* poll_group); + +typedef struct queue_node { + queue_node_t* prev; + queue_node_t* next; +} queue_node_t; + +typedef struct queue { + queue_node_t head; +} queue_t; + +WEPOLL_INTERNAL void queue_init(queue_t* queue); +WEPOLL_INTERNAL void queue_node_init(queue_node_t* node); + +WEPOLL_INTERNAL queue_node_t* queue_first(const queue_t* queue); +WEPOLL_INTERNAL queue_node_t* queue_last(const queue_t* queue); + +WEPOLL_INTERNAL void queue_prepend(queue_t* queue, queue_node_t* node); +WEPOLL_INTERNAL void queue_append(queue_t* queue, queue_node_t* node); +WEPOLL_INTERNAL void queue_move_to_start(queue_t* queue, queue_node_t* node); +WEPOLL_INTERNAL void queue_move_to_end(queue_t* queue, queue_node_t* node); +WEPOLL_INTERNAL void queue_remove(queue_node_t* node); + +WEPOLL_INTERNAL bool queue_is_empty(const queue_t* queue); +WEPOLL_INTERNAL bool queue_is_enqueued(const queue_node_t* node); + +#define POLL_GROUP__MAX_GROUP_SIZE 32 + +typedef struct poll_group { + port_state_t* port_state; + queue_node_t queue_node; + HANDLE afd_device_handle; + size_t group_size; +} poll_group_t; + +static poll_group_t* poll_group__new(port_state_t* port_state) { + HANDLE iocp_handle = port_get_iocp_handle(port_state); + queue_t* poll_group_queue = port_get_poll_group_queue(port_state); + + poll_group_t* poll_group = malloc(sizeof *poll_group); + if (poll_group == NULL) + return_set_error(NULL, ERROR_NOT_ENOUGH_MEMORY); + + memset(poll_group, 0, sizeof *poll_group); + + queue_node_init(&poll_group->queue_node); + poll_group->port_state = port_state; + + if (afd_create_device_handle(iocp_handle, &poll_group->afd_device_handle) < + 0) { + free(poll_group); + return NULL; + } + + queue_append(poll_group_queue, &poll_group->queue_node); + + return poll_group; +} + +void poll_group_delete(poll_group_t* poll_group) { + assert(poll_group->group_size == 0); + CloseHandle(poll_group->afd_device_handle); + queue_remove(&poll_group->queue_node); + free(poll_group); +} + +poll_group_t* poll_group_from_queue_node(queue_node_t* queue_node) { + return container_of(queue_node, poll_group_t, queue_node); +} + +HANDLE poll_group_get_afd_device_handle(poll_group_t* poll_group) { + return poll_group->afd_device_handle; +} + +poll_group_t* poll_group_acquire(port_state_t* port_state) { + queue_t* poll_group_queue = port_get_poll_group_queue(port_state); + poll_group_t* poll_group = + !queue_is_empty(poll_group_queue) + ? container_of( + queue_last(poll_group_queue), poll_group_t, queue_node) + : NULL; + + if (poll_group == NULL || + poll_group->group_size >= POLL_GROUP__MAX_GROUP_SIZE) + poll_group = poll_group__new(port_state); + if (poll_group == NULL) + return NULL; + + if (++poll_group->group_size == POLL_GROUP__MAX_GROUP_SIZE) + queue_move_to_start(poll_group_queue, &poll_group->queue_node); + + return poll_group; +} + +void poll_group_release(poll_group_t* poll_group) { + port_state_t* port_state = poll_group->port_state; + queue_t* poll_group_queue = port_get_poll_group_queue(port_state); + + poll_group->group_size--; + assert(poll_group->group_size < POLL_GROUP__MAX_GROUP_SIZE); + + queue_move_to_end(poll_group_queue, &poll_group->queue_node); + + /* Poll groups are currently only freed when the epoll port is closed. */ +} + +WEPOLL_INTERNAL sock_state_t* sock_new(port_state_t* port_state, + SOCKET socket); +WEPOLL_INTERNAL void sock_delete(port_state_t* port_state, + sock_state_t* sock_state); +WEPOLL_INTERNAL void sock_force_delete(port_state_t* port_state, + sock_state_t* sock_state); + +WEPOLL_INTERNAL int sock_set_event(port_state_t* port_state, + sock_state_t* sock_state, + const struct epoll_event* ev); + +WEPOLL_INTERNAL int sock_update(port_state_t* port_state, + sock_state_t* sock_state); +WEPOLL_INTERNAL int sock_feed_event(port_state_t* port_state, + IO_STATUS_BLOCK* io_status_block, + struct epoll_event* ev); + +WEPOLL_INTERNAL sock_state_t* sock_state_from_queue_node( + queue_node_t* queue_node); +WEPOLL_INTERNAL queue_node_t* sock_state_to_queue_node( + sock_state_t* sock_state); +WEPOLL_INTERNAL sock_state_t* sock_state_from_tree_node( + tree_node_t* tree_node); +WEPOLL_INTERNAL tree_node_t* sock_state_to_tree_node(sock_state_t* sock_state); + +#define PORT__MAX_ON_STACK_COMPLETIONS 256 + +typedef struct port_state { + HANDLE iocp_handle; + tree_t sock_tree; + queue_t sock_update_queue; + queue_t sock_deleted_queue; + queue_t poll_group_queue; + ts_tree_node_t handle_tree_node; + CRITICAL_SECTION lock; + size_t active_poll_count; +} port_state_t; + +static inline port_state_t* port__alloc(void) { + port_state_t* port_state = malloc(sizeof *port_state); + if (port_state == NULL) + return_set_error(NULL, ERROR_NOT_ENOUGH_MEMORY); + + return port_state; +} + +static inline void port__free(port_state_t* port) { + assert(port != NULL); + free(port); +} + +static inline HANDLE port__create_iocp(void) { + HANDLE iocp_handle = + CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); + if (iocp_handle == NULL) + return_map_error(NULL); + + return iocp_handle; +} + +port_state_t* port_new(HANDLE* iocp_handle_out) { + port_state_t* port_state; + HANDLE iocp_handle; + + port_state = port__alloc(); + if (port_state == NULL) + goto err1; + + iocp_handle = port__create_iocp(); + if (iocp_handle == NULL) + goto err2; + + memset(port_state, 0, sizeof *port_state); + + port_state->iocp_handle = iocp_handle; + tree_init(&port_state->sock_tree); + queue_init(&port_state->sock_update_queue); + queue_init(&port_state->sock_deleted_queue); + queue_init(&port_state->poll_group_queue); + ts_tree_node_init(&port_state->handle_tree_node); + InitializeCriticalSection(&port_state->lock); + + *iocp_handle_out = iocp_handle; + return port_state; + +err2: + port__free(port_state); +err1: + return NULL; +} + +static inline int port__close_iocp(port_state_t* port_state) { + HANDLE iocp_handle = port_state->iocp_handle; + port_state->iocp_handle = NULL; + + if (!CloseHandle(iocp_handle)) + return_map_error(-1); + + return 0; +} + +int port_close(port_state_t* port_state) { + int result; + + EnterCriticalSection(&port_state->lock); + result = port__close_iocp(port_state); + LeaveCriticalSection(&port_state->lock); + + return result; +} + +int port_delete(port_state_t* port_state) { + tree_node_t* tree_node; + queue_node_t* queue_node; + + /* At this point the IOCP port should have been closed. */ + assert(port_state->iocp_handle == NULL); + + while ((tree_node = tree_root(&port_state->sock_tree)) != NULL) { + sock_state_t* sock_state = sock_state_from_tree_node(tree_node); + sock_force_delete(port_state, sock_state); + } + + while ((queue_node = queue_first(&port_state->sock_deleted_queue)) != NULL) { + sock_state_t* sock_state = sock_state_from_queue_node(queue_node); + sock_force_delete(port_state, sock_state); + } + + while ((queue_node = queue_first(&port_state->poll_group_queue)) != NULL) { + poll_group_t* poll_group = poll_group_from_queue_node(queue_node); + poll_group_delete(poll_group); + } + + assert(queue_is_empty(&port_state->sock_update_queue)); + + DeleteCriticalSection(&port_state->lock); + + port__free(port_state); + + return 0; +} + +static int port__update_events(port_state_t* port_state) { + queue_t* sock_update_queue = &port_state->sock_update_queue; + + /* Walk the queue, submitting new poll requests for every socket that needs + * it. */ + while (!queue_is_empty(sock_update_queue)) { + queue_node_t* queue_node = queue_first(sock_update_queue); + sock_state_t* sock_state = sock_state_from_queue_node(queue_node); + + if (sock_update(port_state, sock_state) < 0) + return -1; + + /* sock_update() removes the socket from the update queue. */ + } + + return 0; +} + +static inline void port__update_events_if_polling(port_state_t* port_state) { + if (port_state->active_poll_count > 0) + port__update_events(port_state); +} + +static inline int port__feed_events(port_state_t* port_state, + struct epoll_event* epoll_events, + OVERLAPPED_ENTRY* iocp_events, + DWORD iocp_event_count) { + int epoll_event_count = 0; + DWORD i; + + for (i = 0; i < iocp_event_count; i++) { + IO_STATUS_BLOCK* io_status_block = + (IO_STATUS_BLOCK*) iocp_events[i].lpOverlapped; + struct epoll_event* ev = &epoll_events[epoll_event_count]; + + epoll_event_count += sock_feed_event(port_state, io_status_block, ev); + } + + return epoll_event_count; +} + +static inline int port__poll(port_state_t* port_state, + struct epoll_event* epoll_events, + OVERLAPPED_ENTRY* iocp_events, + DWORD maxevents, + DWORD timeout) { + DWORD completion_count; + + if (port__update_events(port_state) < 0) + return -1; + + port_state->active_poll_count++; + + LeaveCriticalSection(&port_state->lock); + + BOOL r = GetQueuedCompletionStatusEx(port_state->iocp_handle, + iocp_events, + maxevents, + &completion_count, + timeout, + FALSE); + + EnterCriticalSection(&port_state->lock); + + port_state->active_poll_count--; + + if (!r) + return_map_error(-1); + + return port__feed_events( + port_state, epoll_events, iocp_events, completion_count); +} + +int port_wait(port_state_t* port_state, + struct epoll_event* events, + int maxevents, + int timeout) { + OVERLAPPED_ENTRY stack_iocp_events[PORT__MAX_ON_STACK_COMPLETIONS]; + OVERLAPPED_ENTRY* iocp_events; + uint64_t due = 0; + DWORD gqcs_timeout; + int result; + + /* Check whether `maxevents` is in range. */ + if (maxevents <= 0) + return_set_error(-1, ERROR_INVALID_PARAMETER); + + /* Decide whether the IOCP completion list can live on the stack, or allocate + * memory for it on the heap. */ + if ((size_t) maxevents <= array_count(stack_iocp_events)) { + iocp_events = stack_iocp_events; + } else if ((iocp_events = + malloc((size_t) maxevents * sizeof *iocp_events)) == NULL) { + iocp_events = stack_iocp_events; + maxevents = array_count(stack_iocp_events); + } + + /* Compute the timeout for GetQueuedCompletionStatus, and the wait end + * time, if the user specified a timeout other than zero or infinite. */ + if (timeout > 0) { + due = GetTickCount64() + (uint64_t) timeout; + gqcs_timeout = (DWORD) timeout; + } else if (timeout == 0) { + gqcs_timeout = 0; + } else { + gqcs_timeout = INFINITE; + } + + EnterCriticalSection(&port_state->lock); + + /* Dequeue completion packets until either at least one interesting event + * has been discovered, or the timeout is reached. */ + for (;;) { + uint64_t now; + + result = port__poll( + port_state, events, iocp_events, (DWORD) maxevents, gqcs_timeout); + if (result < 0 || result > 0) + break; /* Result, error, or time-out. */ + + if (timeout < 0) + continue; /* When timeout is negative, never time out. */ + + /* Update time. */ + now = GetTickCount64(); + + /* Do not allow the due time to be in the past. */ + if (now >= due) { + SetLastError(WAIT_TIMEOUT); + break; + } + + /* Recompute time-out argument for GetQueuedCompletionStatus. */ + gqcs_timeout = (DWORD)(due - now); + } + + port__update_events_if_polling(port_state); + + LeaveCriticalSection(&port_state->lock); + + if (iocp_events != stack_iocp_events) + free(iocp_events); + + if (result >= 0) + return result; + else if (GetLastError() == WAIT_TIMEOUT) + return 0; + else + return -1; +} + +static inline int port__ctl_add(port_state_t* port_state, + SOCKET sock, + struct epoll_event* ev) { + sock_state_t* sock_state = sock_new(port_state, sock); + if (sock_state == NULL) + return -1; + + if (sock_set_event(port_state, sock_state, ev) < 0) { + sock_delete(port_state, sock_state); + return -1; + } + + port__update_events_if_polling(port_state); + + return 0; +} + +static inline int port__ctl_mod(port_state_t* port_state, + SOCKET sock, + struct epoll_event* ev) { + sock_state_t* sock_state = port_find_socket(port_state, sock); + if (sock_state == NULL) + return -1; + + if (sock_set_event(port_state, sock_state, ev) < 0) + return -1; + + port__update_events_if_polling(port_state); + + return 0; +} + +static inline int port__ctl_del(port_state_t* port_state, SOCKET sock) { + sock_state_t* sock_state = port_find_socket(port_state, sock); + if (sock_state == NULL) + return -1; + + sock_delete(port_state, sock_state); + + return 0; +} + +static inline int port__ctl_op(port_state_t* port_state, + int op, + SOCKET sock, + struct epoll_event* ev) { + switch (op) { + case EPOLL_CTL_ADD: + return port__ctl_add(port_state, sock, ev); + case EPOLL_CTL_MOD: + return port__ctl_mod(port_state, sock, ev); + case EPOLL_CTL_DEL: + return port__ctl_del(port_state, sock); + default: + return_set_error(-1, ERROR_INVALID_PARAMETER); + } +} + +int port_ctl(port_state_t* port_state, + int op, + SOCKET sock, + struct epoll_event* ev) { + int result; + + EnterCriticalSection(&port_state->lock); + result = port__ctl_op(port_state, op, sock, ev); + LeaveCriticalSection(&port_state->lock); + + return result; +} + +int port_register_socket(port_state_t* port_state, + sock_state_t* sock_state, + SOCKET socket) { + if (tree_add(&port_state->sock_tree, + sock_state_to_tree_node(sock_state), + socket) < 0) + return_set_error(-1, ERROR_ALREADY_EXISTS); + return 0; +} + +void port_unregister_socket(port_state_t* port_state, + sock_state_t* sock_state) { + tree_del(&port_state->sock_tree, sock_state_to_tree_node(sock_state)); +} + +sock_state_t* port_find_socket(port_state_t* port_state, SOCKET socket) { + tree_node_t* tree_node = tree_find(&port_state->sock_tree, socket); + if (tree_node == NULL) + return_set_error(NULL, ERROR_NOT_FOUND); + return sock_state_from_tree_node(tree_node); +} + +void port_request_socket_update(port_state_t* port_state, + sock_state_t* sock_state) { + if (queue_is_enqueued(sock_state_to_queue_node(sock_state))) + return; + queue_append(&port_state->sock_update_queue, + sock_state_to_queue_node(sock_state)); +} + +void port_cancel_socket_update(port_state_t* port_state, + sock_state_t* sock_state) { + unused_var(port_state); + if (!queue_is_enqueued(sock_state_to_queue_node(sock_state))) + return; + queue_remove(sock_state_to_queue_node(sock_state)); +} + +void port_add_deleted_socket(port_state_t* port_state, + sock_state_t* sock_state) { + if (queue_is_enqueued(sock_state_to_queue_node(sock_state))) + return; + queue_append(&port_state->sock_deleted_queue, + sock_state_to_queue_node(sock_state)); +} + +void port_remove_deleted_socket(port_state_t* port_state, + sock_state_t* sock_state) { + unused_var(port_state); + if (!queue_is_enqueued(sock_state_to_queue_node(sock_state))) + return; + queue_remove(sock_state_to_queue_node(sock_state)); +} + +HANDLE port_get_iocp_handle(port_state_t* port_state) { + assert(port_state->iocp_handle != NULL); + return port_state->iocp_handle; +} + +queue_t* port_get_poll_group_queue(port_state_t* port_state) { + return &port_state->poll_group_queue; +} + +port_state_t* port_state_from_handle_tree_node(ts_tree_node_t* tree_node) { + return container_of(tree_node, port_state_t, handle_tree_node); +} + +ts_tree_node_t* port_state_to_handle_tree_node(port_state_t* port_state) { + return &port_state->handle_tree_node; +} + +void queue_init(queue_t* queue) { + queue_node_init(&queue->head); +} + +void queue_node_init(queue_node_t* node) { + node->prev = node; + node->next = node; +} + +static inline void queue__detach_node(queue_node_t* node) { + node->prev->next = node->next; + node->next->prev = node->prev; +} + +queue_node_t* queue_first(const queue_t* queue) { + return !queue_is_empty(queue) ? queue->head.next : NULL; +} + +queue_node_t* queue_last(const queue_t* queue) { + return !queue_is_empty(queue) ? queue->head.prev : NULL; +} + +void queue_prepend(queue_t* queue, queue_node_t* node) { + node->next = queue->head.next; + node->prev = &queue->head; + node->next->prev = node; + queue->head.next = node; +} + +void queue_append(queue_t* queue, queue_node_t* node) { + node->next = &queue->head; + node->prev = queue->head.prev; + node->prev->next = node; + queue->head.prev = node; +} + +void queue_move_to_start(queue_t* queue, queue_node_t* node) { + queue__detach_node(node); + queue_prepend(queue, node); +} + +void queue_move_to_end(queue_t* queue, queue_node_t* node) { + queue__detach_node(node); + queue_append(queue, node); +} + +void queue_remove(queue_node_t* node) { + queue__detach_node(node); + queue_node_init(node); +} + +bool queue_is_empty(const queue_t* queue) { + return !queue_is_enqueued(&queue->head); +} + +bool queue_is_enqueued(const queue_node_t* node) { + return node->prev != node; +} + +#define REFLOCK__REF ((long) 0x00000001UL) +#define REFLOCK__REF_MASK ((long) 0x0fffffffUL) +#define REFLOCK__DESTROY ((long) 0x10000000UL) +#define REFLOCK__DESTROY_MASK ((long) 0xf0000000UL) +#define REFLOCK__POISON ((long) 0x300dead0UL) + +static HANDLE reflock__keyed_event = NULL; + +int reflock_global_init(void) { + NTSTATUS status = NtCreateKeyedEvent( + &reflock__keyed_event, KEYEDEVENT_ALL_ACCESS, NULL, 0); + if (status != STATUS_SUCCESS) + return_set_error(-1, RtlNtStatusToDosError(status)); + return 0; +} + +void reflock_init(reflock_t* reflock) { + reflock->state = 0; +} + +static void reflock__signal_event(void* address) { + NTSTATUS status = + NtReleaseKeyedEvent(reflock__keyed_event, address, FALSE, NULL); + if (status != STATUS_SUCCESS) + abort(); +} + +static void reflock__await_event(void* address) { + NTSTATUS status = + NtWaitForKeyedEvent(reflock__keyed_event, address, FALSE, NULL); + if (status != STATUS_SUCCESS) + abort(); +} + +void reflock_ref(reflock_t* reflock) { + long state = InterlockedAdd(&reflock->state, REFLOCK__REF); + + /* Verify that the counter didn't overflow and the lock isn't destroyed. */ + assert((state & REFLOCK__DESTROY_MASK) == 0); + unused_var(state); +} + +void reflock_unref(reflock_t* reflock) { + long state = InterlockedAdd(&reflock->state, -REFLOCK__REF); + + /* Verify that the lock was referenced and not already destroyed. */ + assert((state & REFLOCK__DESTROY_MASK & ~REFLOCK__DESTROY) == 0); + + if (state == REFLOCK__DESTROY) + reflock__signal_event(reflock); +} + +void reflock_unref_and_destroy(reflock_t* reflock) { + long state = + InterlockedAdd(&reflock->state, REFLOCK__DESTROY - REFLOCK__REF); + long ref_count = state & REFLOCK__REF_MASK; + + /* Verify that the lock was referenced and not already destroyed. */ + assert((state & REFLOCK__DESTROY_MASK) == REFLOCK__DESTROY); + + if (ref_count != 0) + reflock__await_event(reflock); + + state = InterlockedExchange(&reflock->state, REFLOCK__POISON); + assert(state == REFLOCK__DESTROY); +} + +#define SOCK__KNOWN_EPOLL_EVENTS \ + (EPOLLIN | EPOLLPRI | EPOLLOUT | EPOLLERR | EPOLLHUP | EPOLLRDNORM | \ + EPOLLRDBAND | EPOLLWRNORM | EPOLLWRBAND | EPOLLMSG | EPOLLRDHUP) + +typedef enum sock__poll_status { + SOCK__POLL_IDLE = 0, + SOCK__POLL_PENDING, + SOCK__POLL_CANCELLED +} sock__poll_status_t; + +typedef struct sock_state { + IO_STATUS_BLOCK io_status_block; + AFD_POLL_INFO poll_info; + queue_node_t queue_node; + tree_node_t tree_node; + poll_group_t* poll_group; + SOCKET base_socket; + epoll_data_t user_data; + uint32_t user_events; + uint32_t pending_events; + sock__poll_status_t poll_status; + bool delete_pending; +} sock_state_t; + +static inline sock_state_t* sock__alloc(void) { + sock_state_t* sock_state = malloc(sizeof *sock_state); + if (sock_state == NULL) + return_set_error(NULL, ERROR_NOT_ENOUGH_MEMORY); + return sock_state; +} + +static inline void sock__free(sock_state_t* sock_state) { + assert(sock_state != NULL); + free(sock_state); +} + +static inline int sock__cancel_poll(sock_state_t* sock_state) { + assert(sock_state->poll_status == SOCK__POLL_PENDING); + + if (afd_cancel_poll(poll_group_get_afd_device_handle(sock_state->poll_group), + &sock_state->io_status_block) < 0) + return -1; + + sock_state->poll_status = SOCK__POLL_CANCELLED; + sock_state->pending_events = 0; + return 0; +} + +sock_state_t* sock_new(port_state_t* port_state, SOCKET socket) { + SOCKET base_socket; + poll_group_t* poll_group; + sock_state_t* sock_state; + + if (socket == 0 || socket == INVALID_SOCKET) + return_set_error(NULL, ERROR_INVALID_HANDLE); + + base_socket = ws_get_base_socket(socket); + if (base_socket == INVALID_SOCKET) + return NULL; + + poll_group = poll_group_acquire(port_state); + if (poll_group == NULL) + return NULL; + + sock_state = sock__alloc(); + if (sock_state == NULL) + goto err1; + + memset(sock_state, 0, sizeof *sock_state); + + sock_state->base_socket = base_socket; + sock_state->poll_group = poll_group; + + tree_node_init(&sock_state->tree_node); + queue_node_init(&sock_state->queue_node); + + if (port_register_socket(port_state, sock_state, socket) < 0) + goto err2; + + return sock_state; + +err2: + sock__free(sock_state); +err1: + poll_group_release(poll_group); + + return NULL; +} + +static int sock__delete(port_state_t* port_state, + sock_state_t* sock_state, + bool force) { + if (!sock_state->delete_pending) { + if (sock_state->poll_status == SOCK__POLL_PENDING) + sock__cancel_poll(sock_state); + + port_cancel_socket_update(port_state, sock_state); + port_unregister_socket(port_state, sock_state); + + sock_state->delete_pending = true; + } + + /* If the poll request still needs to complete, the sock_state object can't + * be free()d yet. `sock_feed_event()` or `port_close()` will take care + * of this later. */ + if (force || sock_state->poll_status == SOCK__POLL_IDLE) { + /* Free the sock_state now. */ + port_remove_deleted_socket(port_state, sock_state); + poll_group_release(sock_state->poll_group); + sock__free(sock_state); + } else { + /* Free the socket later. */ + port_add_deleted_socket(port_state, sock_state); + } + + return 0; +} + +void sock_delete(port_state_t* port_state, sock_state_t* sock_state) { + sock__delete(port_state, sock_state, false); +} + +void sock_force_delete(port_state_t* port_state, sock_state_t* sock_state) { + sock__delete(port_state, sock_state, true); +} + +int sock_set_event(port_state_t* port_state, + sock_state_t* sock_state, + const struct epoll_event* ev) { + /* EPOLLERR and EPOLLHUP are always reported, even when not requested by the + * caller. However they are disabled after a event has been reported for a + * socket for which the EPOLLONESHOT flag was set. */ + uint32_t events = ev->events | EPOLLERR | EPOLLHUP; + + sock_state->user_events = events; + sock_state->user_data = ev->data; + + if ((events & SOCK__KNOWN_EPOLL_EVENTS & ~sock_state->pending_events) != 0) + port_request_socket_update(port_state, sock_state); + + return 0; +} + +static inline DWORD sock__epoll_events_to_afd_events(uint32_t epoll_events) { + /* Always monitor for AFD_POLL_LOCAL_CLOSE, which is triggered when the + * socket is closed with closesocket() or CloseHandle(). */ + DWORD afd_events = AFD_POLL_LOCAL_CLOSE; + + if (epoll_events & (EPOLLIN | EPOLLRDNORM)) + afd_events |= AFD_POLL_RECEIVE | AFD_POLL_ACCEPT; + if (epoll_events & (EPOLLPRI | EPOLLRDBAND)) + afd_events |= AFD_POLL_RECEIVE_EXPEDITED; + if (epoll_events & (EPOLLOUT | EPOLLWRNORM | EPOLLWRBAND)) + afd_events |= AFD_POLL_SEND; + if (epoll_events & (EPOLLIN | EPOLLRDNORM | EPOLLRDHUP)) + afd_events |= AFD_POLL_DISCONNECT; + if (epoll_events & EPOLLHUP) + afd_events |= AFD_POLL_ABORT; + if (epoll_events & EPOLLERR) + afd_events |= AFD_POLL_CONNECT_FAIL; + + return afd_events; +} + +static inline uint32_t sock__afd_events_to_epoll_events(DWORD afd_events) { + uint32_t epoll_events = 0; + + if (afd_events & (AFD_POLL_RECEIVE | AFD_POLL_ACCEPT)) + epoll_events |= EPOLLIN | EPOLLRDNORM; + if (afd_events & AFD_POLL_RECEIVE_EXPEDITED) + epoll_events |= EPOLLPRI | EPOLLRDBAND; + if (afd_events & AFD_POLL_SEND) + epoll_events |= EPOLLOUT | EPOLLWRNORM | EPOLLWRBAND; + if (afd_events & AFD_POLL_DISCONNECT) + epoll_events |= EPOLLIN | EPOLLRDNORM | EPOLLRDHUP; + if (afd_events & AFD_POLL_ABORT) + epoll_events |= EPOLLHUP; + if (afd_events & AFD_POLL_CONNECT_FAIL) + /* Linux reports all these events after connect() has failed. */ + epoll_events |= + EPOLLIN | EPOLLOUT | EPOLLERR | EPOLLRDNORM | EPOLLWRNORM | EPOLLRDHUP; + + return epoll_events; +} + +int sock_update(port_state_t* port_state, sock_state_t* sock_state) { + assert(!sock_state->delete_pending); + + if ((sock_state->poll_status == SOCK__POLL_PENDING) && + (sock_state->user_events & SOCK__KNOWN_EPOLL_EVENTS & + ~sock_state->pending_events) == 0) { + /* All the events the user is interested in are already being monitored by + * the pending poll operation. It might spuriously complete because of an + * event that we're no longer interested in; when that happens we'll submit + * a new poll operation with the updated event mask. */ + + } else if (sock_state->poll_status == SOCK__POLL_PENDING) { + /* A poll operation is already pending, but it's not monitoring for all the + * events that the user is interested in. Therefore, cancel the pending + * poll operation; when we receive it's completion package, a new poll + * operation will be submitted with the correct event mask. */ + if (sock__cancel_poll(sock_state) < 0) + return -1; + + } else if (sock_state->poll_status == SOCK__POLL_CANCELLED) { + /* The poll operation has already been cancelled, we're still waiting for + * it to return. For now, there's nothing that needs to be done. */ + + } else if (sock_state->poll_status == SOCK__POLL_IDLE) { + /* No poll operation is pending; start one. */ + sock_state->poll_info.Exclusive = FALSE; + sock_state->poll_info.NumberOfHandles = 1; + sock_state->poll_info.Timeout.QuadPart = INT64_MAX; + sock_state->poll_info.Handles[0].Handle = (HANDLE) sock_state->base_socket; + sock_state->poll_info.Handles[0].Status = 0; + sock_state->poll_info.Handles[0].Events = + sock__epoll_events_to_afd_events(sock_state->user_events); + + if (afd_poll(poll_group_get_afd_device_handle(sock_state->poll_group), + &sock_state->poll_info, + &sock_state->io_status_block) < 0) { + switch (GetLastError()) { + case ERROR_IO_PENDING: + /* Overlapped poll operation in progress; this is expected. */ + break; + case ERROR_INVALID_HANDLE: + /* Socket closed; it'll be dropped from the epoll set. */ + return sock__delete(port_state, sock_state, false); + default: + /* Other errors are propagated to the caller. */ + return_map_error(-1); + } + } + + /* The poll request was successfully submitted. */ + sock_state->poll_status = SOCK__POLL_PENDING; + sock_state->pending_events = sock_state->user_events; + + } else { + /* Unreachable. */ + assert(false); + } + + port_cancel_socket_update(port_state, sock_state); + return 0; +} + +int sock_feed_event(port_state_t* port_state, + IO_STATUS_BLOCK* io_status_block, + struct epoll_event* ev) { + sock_state_t* sock_state = + container_of(io_status_block, sock_state_t, io_status_block); + AFD_POLL_INFO* poll_info = &sock_state->poll_info; + uint32_t epoll_events = 0; + + sock_state->poll_status = SOCK__POLL_IDLE; + sock_state->pending_events = 0; + + if (sock_state->delete_pending) { + /* Socket has been deleted earlier and can now be freed. */ + return sock__delete(port_state, sock_state, false); + + } else if (io_status_block->Status == STATUS_CANCELLED) { + /* The poll request was cancelled by CancelIoEx. */ + + } else if (!NT_SUCCESS(io_status_block->Status)) { + /* The overlapped request itself failed in an unexpected way. */ + epoll_events = EPOLLERR; + + } else if (poll_info->NumberOfHandles < 1) { + /* This poll operation succeeded but didn't report any socket events. */ + + } else if (poll_info->Handles[0].Events & AFD_POLL_LOCAL_CLOSE) { + /* The poll operation reported that the socket was closed. */ + return sock__delete(port_state, sock_state, false); + + } else { + /* Events related to our socket were reported. */ + epoll_events = + sock__afd_events_to_epoll_events(poll_info->Handles[0].Events); + } + + /* Requeue the socket so a new poll request will be submitted. */ + port_request_socket_update(port_state, sock_state); + + /* Filter out events that the user didn't ask for. */ + epoll_events &= sock_state->user_events; + + /* Return if there are no epoll events to report. */ + if (epoll_events == 0) + return 0; + + /* If the the socket has the EPOLLONESHOT flag set, unmonitor all events, + * even EPOLLERR and EPOLLHUP. But always keep looking for closed sockets. */ + if (sock_state->user_events & EPOLLONESHOT) + sock_state->user_events = 0; + + ev->data = sock_state->user_data; + ev->events = epoll_events; + return 1; +} + +sock_state_t* sock_state_from_queue_node(queue_node_t* queue_node) { + return container_of(queue_node, sock_state_t, queue_node); +} + +queue_node_t* sock_state_to_queue_node(sock_state_t* sock_state) { + return &sock_state->queue_node; +} + +sock_state_t* sock_state_from_tree_node(tree_node_t* tree_node) { + return container_of(tree_node, sock_state_t, tree_node); +} + +tree_node_t* sock_state_to_tree_node(sock_state_t* sock_state) { + return &sock_state->tree_node; +} + +void ts_tree_init(ts_tree_t* ts_tree) { + tree_init(&ts_tree->tree); + InitializeSRWLock(&ts_tree->lock); +} + +void ts_tree_node_init(ts_tree_node_t* node) { + tree_node_init(&node->tree_node); + reflock_init(&node->reflock); +} + +int ts_tree_add(ts_tree_t* ts_tree, ts_tree_node_t* node, uintptr_t key) { + int r; + + AcquireSRWLockExclusive(&ts_tree->lock); + r = tree_add(&ts_tree->tree, &node->tree_node, key); + ReleaseSRWLockExclusive(&ts_tree->lock); + + return r; +} + +static inline ts_tree_node_t* ts_tree__find_node(ts_tree_t* ts_tree, + uintptr_t key) { + tree_node_t* tree_node = tree_find(&ts_tree->tree, key); + if (tree_node == NULL) + return NULL; + + return container_of(tree_node, ts_tree_node_t, tree_node); +} + +ts_tree_node_t* ts_tree_del_and_ref(ts_tree_t* ts_tree, uintptr_t key) { + ts_tree_node_t* ts_tree_node; + + AcquireSRWLockExclusive(&ts_tree->lock); + + ts_tree_node = ts_tree__find_node(ts_tree, key); + if (ts_tree_node != NULL) { + tree_del(&ts_tree->tree, &ts_tree_node->tree_node); + reflock_ref(&ts_tree_node->reflock); + } + + ReleaseSRWLockExclusive(&ts_tree->lock); + + return ts_tree_node; +} + +ts_tree_node_t* ts_tree_find_and_ref(ts_tree_t* ts_tree, uintptr_t key) { + ts_tree_node_t* ts_tree_node; + + AcquireSRWLockShared(&ts_tree->lock); + + ts_tree_node = ts_tree__find_node(ts_tree, key); + if (ts_tree_node != NULL) + reflock_ref(&ts_tree_node->reflock); + + ReleaseSRWLockShared(&ts_tree->lock); + + return ts_tree_node; +} + +void ts_tree_node_unref(ts_tree_node_t* node) { + reflock_unref(&node->reflock); +} + +void ts_tree_node_unref_and_destroy(ts_tree_node_t* node) { + reflock_unref_and_destroy(&node->reflock); +} + +void tree_init(tree_t* tree) { + memset(tree, 0, sizeof *tree); +} + +void tree_node_init(tree_node_t* node) { + memset(node, 0, sizeof *node); +} + +#define TREE__ROTATE(cis, trans) \ + tree_node_t* p = node; \ + tree_node_t* q = node->trans; \ + tree_node_t* parent = p->parent; \ + \ + if (parent) { \ + if (parent->left == p) \ + parent->left = q; \ + else \ + parent->right = q; \ + } else { \ + tree->root = q; \ + } \ + \ + q->parent = parent; \ + p->parent = q; \ + p->trans = q->cis; \ + if (p->trans) \ + p->trans->parent = p; \ + q->cis = p; + +static inline void tree__rotate_left(tree_t* tree, tree_node_t* node) { + TREE__ROTATE(left, right) +} + +static inline void tree__rotate_right(tree_t* tree, tree_node_t* node) { + TREE__ROTATE(right, left) +} + +#define TREE__INSERT_OR_DESCEND(side) \ + if (parent->side) { \ + parent = parent->side; \ + } else { \ + parent->side = node; \ + break; \ + } + +#define TREE__REBALANCE_AFTER_INSERT(cis, trans) \ + tree_node_t* grandparent = parent->parent; \ + tree_node_t* uncle = grandparent->trans; \ + \ + if (uncle && uncle->red) { \ + parent->red = uncle->red = false; \ + grandparent->red = true; \ + node = grandparent; \ + } else { \ + if (node == parent->trans) { \ + tree__rotate_##cis(tree, parent); \ + node = parent; \ + parent = node->parent; \ + } \ + parent->red = false; \ + grandparent->red = true; \ + tree__rotate_##trans(tree, grandparent); \ + } + +int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key) { + tree_node_t* parent; + + parent = tree->root; + if (parent) { + for (;;) { + if (key < parent->key) { + TREE__INSERT_OR_DESCEND(left) + } else if (key > parent->key) { + TREE__INSERT_OR_DESCEND(right) + } else { + return -1; + } + } + } else { + tree->root = node; + } + + node->key = key; + node->left = node->right = NULL; + node->parent = parent; + node->red = true; + + for (; parent && parent->red; parent = node->parent) { + if (parent == parent->parent->left) { + TREE__REBALANCE_AFTER_INSERT(left, right) + } else { + TREE__REBALANCE_AFTER_INSERT(right, left) + } + } + tree->root->red = false; + + return 0; +} + +#define TREE__REBALANCE_AFTER_REMOVE(cis, trans) \ + tree_node_t* sibling = parent->trans; \ + \ + if (sibling->red) { \ + sibling->red = false; \ + parent->red = true; \ + tree__rotate_##cis(tree, parent); \ + sibling = parent->trans; \ + } \ + if ((sibling->left && sibling->left->red) || \ + (sibling->right && sibling->right->red)) { \ + if (!sibling->trans || !sibling->trans->red) { \ + sibling->cis->red = false; \ + sibling->red = true; \ + tree__rotate_##trans(tree, sibling); \ + sibling = parent->trans; \ + } \ + sibling->red = parent->red; \ + parent->red = sibling->trans->red = false; \ + tree__rotate_##cis(tree, parent); \ + node = tree->root; \ + break; \ + } \ + sibling->red = true; + +void tree_del(tree_t* tree, tree_node_t* node) { + tree_node_t* parent = node->parent; + tree_node_t* left = node->left; + tree_node_t* right = node->right; + tree_node_t* next; + bool red; + + if (!left) { + next = right; + } else if (!right) { + next = left; + } else { + next = right; + while (next->left) + next = next->left; + } + + if (parent) { + if (parent->left == node) + parent->left = next; + else + parent->right = next; + } else { + tree->root = next; + } + + if (left && right) { + red = next->red; + next->red = node->red; + next->left = left; + left->parent = next; + if (next != right) { + parent = next->parent; + next->parent = node->parent; + node = next->right; + parent->left = node; + next->right = right; + right->parent = next; + } else { + next->parent = parent; + parent = next; + node = next->right; + } + } else { + red = node->red; + node = next; + } + + if (node) + node->parent = parent; + if (red) + return; + if (node && node->red) { + node->red = false; + return; + } + + do { + if (node == tree->root) + break; + if (node == parent->left) { + TREE__REBALANCE_AFTER_REMOVE(left, right) + } else { + TREE__REBALANCE_AFTER_REMOVE(right, left) + } + node = parent; + parent = parent->parent; + } while (!node->red); + + if (node) + node->red = false; +} + +tree_node_t* tree_find(const tree_t* tree, uintptr_t key) { + tree_node_t* node = tree->root; + while (node) { + if (key < node->key) + node = node->left; + else if (key > node->key) + node = node->right; + else + return node; + } + return NULL; +} + +tree_node_t* tree_root(const tree_t* tree) { + return tree->root; +} + +#ifndef SIO_BSP_HANDLE_POLL +#define SIO_BSP_HANDLE_POLL 0x4800001D +#endif + +#ifndef SIO_BASE_HANDLE +#define SIO_BASE_HANDLE 0x48000022 +#endif + +int ws_global_init(void) { + int r; + WSADATA wsa_data; + + r = WSAStartup(MAKEWORD(2, 2), &wsa_data); + if (r != 0) + return_set_error(-1, (DWORD) r); + + return 0; +} + +static inline SOCKET ws__ioctl_get_bsp_socket(SOCKET socket, DWORD ioctl) { + SOCKET bsp_socket; + DWORD bytes; + + if (WSAIoctl(socket, + ioctl, + NULL, + 0, + &bsp_socket, + sizeof bsp_socket, + &bytes, + NULL, + NULL) != SOCKET_ERROR) + return bsp_socket; + else + return INVALID_SOCKET; +} + +SOCKET ws_get_base_socket(SOCKET socket) { + SOCKET base_socket; + DWORD error; + + for (;;) { + base_socket = ws__ioctl_get_bsp_socket(socket, SIO_BASE_HANDLE); + if (base_socket != INVALID_SOCKET) + return base_socket; + + error = GetLastError(); + if (error == WSAENOTSOCK) + return_set_error(INVALID_SOCKET, error); + + /* Even though Microsoft documentation clearly states that LSPs should + * never intercept the `SIO_BASE_HANDLE` ioctl [1], Komodia based LSPs do + * so anyway, breaking it, with the apparent intention of preventing LSP + * bypass [2]. Fortunately they don't handle `SIO_BSP_HANDLE_POLL`, which + * will at least let us obtain the socket associated with the next winsock + * protocol chain entry. If this succeeds, loop around and call + * `SIO_BASE_HANDLE` again with the returned BSP socket, to make sure that + * we unwrap all layers and retrieve the actual base socket. + * [1] https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-ioctls + * [2] https://www.komodia.com/newwiki/index.php?title=Komodia%27s_Redirector_bug_fixes#Version_2.2.2.6 + */ + base_socket = ws__ioctl_get_bsp_socket(socket, SIO_BSP_HANDLE_POLL); + if (base_socket != INVALID_SOCKET && base_socket != socket) + socket = base_socket; + else + return_set_error(INVALID_SOCKET, error); + } +} diff --git a/3rdPartner/libhv/event/wepoll/wepoll.h b/3rdPartner/libhv/event/wepoll/wepoll.h new file mode 100644 index 0000000..daf6bdb --- /dev/null +++ b/3rdPartner/libhv/event/wepoll/wepoll.h @@ -0,0 +1,113 @@ +/* + * wepoll - epoll for Windows + * https://github.com/piscisaureus/wepoll + * + * Copyright 2012-2020, Bert Belder + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WEPOLL_H_ +#define WEPOLL_H_ + +#ifndef WEPOLL_EXPORT +#define WEPOLL_EXPORT +#endif + +#include + +enum EPOLL_EVENTS { + EPOLLIN = (int) (1U << 0), + EPOLLPRI = (int) (1U << 1), + EPOLLOUT = (int) (1U << 2), + EPOLLERR = (int) (1U << 3), + EPOLLHUP = (int) (1U << 4), + EPOLLRDNORM = (int) (1U << 6), + EPOLLRDBAND = (int) (1U << 7), + EPOLLWRNORM = (int) (1U << 8), + EPOLLWRBAND = (int) (1U << 9), + EPOLLMSG = (int) (1U << 10), /* Never reported. */ + EPOLLRDHUP = (int) (1U << 13), + EPOLLONESHOT = (int) (1U << 31) +}; + +#define EPOLLIN (1U << 0) +#define EPOLLPRI (1U << 1) +#define EPOLLOUT (1U << 2) +#define EPOLLERR (1U << 3) +#define EPOLLHUP (1U << 4) +#define EPOLLRDNORM (1U << 6) +#define EPOLLRDBAND (1U << 7) +#define EPOLLWRNORM (1U << 8) +#define EPOLLWRBAND (1U << 9) +#define EPOLLMSG (1U << 10) +#define EPOLLRDHUP (1U << 13) +#define EPOLLONESHOT (1U << 31) + +#define EPOLL_CTL_ADD 1 +#define EPOLL_CTL_MOD 2 +#define EPOLL_CTL_DEL 3 + +typedef void* HANDLE; +typedef uintptr_t SOCKET; + +typedef union epoll_data { + void* ptr; + int fd; + uint32_t u32; + uint64_t u64; + SOCKET sock; /* Windows specific */ + HANDLE hnd; /* Windows specific */ +} epoll_data_t; + +struct epoll_event { + uint32_t events; /* Epoll events and flags */ + epoll_data_t data; /* User data variable */ +}; + +#ifdef __cplusplus +extern "C" { +#endif + +WEPOLL_EXPORT HANDLE epoll_create(int size); +WEPOLL_EXPORT HANDLE epoll_create1(int flags); + +WEPOLL_EXPORT int epoll_close(HANDLE ephnd); + +WEPOLL_EXPORT int epoll_ctl(HANDLE ephnd, + int op, + SOCKET sock, + struct epoll_event* event); + +WEPOLL_EXPORT int epoll_wait(HANDLE ephnd, + struct epoll_event* events, + int maxevents, + int timeout); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* WEPOLL_H_ */ diff --git a/3rdPartner/libhv/evpp/Buffer.h b/3rdPartner/libhv/evpp/Buffer.h new file mode 100644 index 0000000..1f6644f --- /dev/null +++ b/3rdPartner/libhv/evpp/Buffer.h @@ -0,0 +1,15 @@ +#ifndef HV_BUFFER_HPP_ +#define HV_BUFFER_HPP_ + +#include + +#include "hbuf.h" + +namespace hv { + +typedef HBuf Buffer; +typedef std::shared_ptr BufferPtr; + +} + +#endif // HV_BUFFER_HPP_ diff --git a/3rdPartner/libhv/evpp/Channel.h b/3rdPartner/libhv/evpp/Channel.h new file mode 100644 index 0000000..5ed4fbd --- /dev/null +++ b/3rdPartner/libhv/evpp/Channel.h @@ -0,0 +1,377 @@ +#ifndef HV_CHANNEL_HPP_ +#define HV_CHANNEL_HPP_ + +#include +#include +#include +#include + +#include "hloop.h" +#include "hsocket.h" + +#include "Buffer.h" + +namespace hv { + +class Channel { +public: + Channel(hio_t* io = NULL) { + io_ = io; + fd_ = -1; + id_ = 0; + ctx_ = NULL; + status = CLOSED; + if (io) { + fd_ = hio_fd(io); + id_ = hio_id(io); + ctx_ = hio_context(io); + hio_set_context(io, this); + if (hio_is_opened(io)) { + status = OPENED; + } + if (hio_getcb_read(io) == NULL) { + hio_setcb_read(io_, on_read); + } + if (hio_getcb_write(io) == NULL) { + hio_setcb_write(io_, on_write); + } + if (hio_getcb_close(io) == NULL) { + hio_setcb_close(io_, on_close); + } + } + } + + virtual ~Channel() { + if (isOpened()) { + close(); + // NOTE: Detach after destructor to avoid triggering onclose + if (io_ && id_ == hio_id(io_)) { + hio_set_context(io_, NULL); + } + } + } + + hio_t* io() { return io_; } + int fd() { return fd_; } + uint32_t id() { return id_; } + int error() { return hio_error(io_); } + + // context + void* context() { + return ctx_; + } + void setContext(void* ctx) { + ctx_ = ctx; + } + template + T* newContext() { + ctx_ = new T; + return (T*)ctx_; + } + template + T* getContext() { + return (T*)ctx_; + } + template + void deleteContext() { + if (ctx_) { + delete (T*)ctx_; + ctx_ = NULL; + } + } + + // contextPtr + std::shared_ptr contextPtr() { + return contextPtr_; + } + void setContextPtr(const std::shared_ptr& ctx) { + contextPtr_ = ctx; + } + void setContextPtr(std::shared_ptr&& ctx) { + contextPtr_ = std::move(ctx); + } + template + std::shared_ptr newContextPtr() { + contextPtr_ = std::make_shared(); + return std::static_pointer_cast(contextPtr_); + } + template + std::shared_ptr getContextPtr() { + return std::static_pointer_cast(contextPtr_); + } + void deleteContextPtr() { + contextPtr_.reset(); + } + + bool isOpened() { + if (io_ == NULL || status >= DISCONNECTED) return false; + return id_ == hio_id(io_) && hio_is_opened(io_); + } + bool isClosed() { + return !isOpened(); + } + + int startRead() { + if (!isOpened()) return -1; + return hio_read_start(io_); + } + + int stopRead() { + if (!isOpened()) return -1; + return hio_read_stop(io_); + } + + int readOnce() { + if (!isOpened()) return -1; + return hio_read_once(io_); + } + + int readString() { + if (!isOpened()) return -1; + return hio_readstring(io_); + } + + int readLine() { + if (!isOpened()) return -1; + return hio_readline(io_); + } + + int readBytes(int len) { + if (!isOpened() || len <= 0) return -1; + return hio_readbytes(io_, len); + } + + // write thread-safe + int write(const void* data, int size) { + if (!isOpened()) return -1; + return hio_write(io_, data, size); + } + + int write(Buffer* buf) { + return write(buf->data(), buf->size()); + } + + int write(const std::string& str) { + return write(str.data(), str.size()); + } + + // iobuf setting + void setReadBuf(void* buf, size_t len) { + if (io_ == NULL) return; + hio_set_readbuf(io_, buf, len); + } + void setMaxReadBufsize(uint32_t size) { + if (io_ == NULL) return; + hio_set_max_read_bufsize(io_, size); + } + void setMaxWriteBufsize(uint32_t size) { + if (io_ == NULL) return; + hio_set_max_write_bufsize(io_, size); + } + size_t writeBufsize() { + if (io_ == NULL) return 0; + return hio_write_bufsize(io_); + } + bool isWriteComplete() { + return writeBufsize() == 0; + } + + // close thread-safe + int close(bool async = false) { + if (isClosed()) return -1; + status = CLOSED; + return async ? hio_close_async(io_) : hio_close(io_); + } + +public: + hio_t* io_; + int fd_; + uint32_t id_; + void* ctx_; + enum Status { + OPENED, + CONNECTING, + CONNECTED, + DISCONNECTED, + CLOSED, + }; + std::atomic status; + std::function onread; + // NOTE: Use Channel::isWriteComplete in onwrite callback to determine whether all data has been written. + std::function onwrite; + std::function onclose; + std::shared_ptr contextPtr_; + +private: + static void on_read(hio_t* io, void* data, int readbytes) { + Channel* channel = (Channel*)hio_context(io); + if (channel && channel->onread) { + Buffer buf(data, readbytes); + channel->onread(&buf); + } + } + + static void on_write(hio_t* io, const void* data, int writebytes) { + Channel* channel = (Channel*)hio_context(io); + if (channel && channel->onwrite) { + Buffer buf((void*)data, writebytes); + channel->onwrite(&buf); + } + } + + static void on_close(hio_t* io) { + Channel* channel = (Channel*)hio_context(io); + if (channel) { + channel->status = CLOSED; + if (channel->onclose) { + channel->onclose(); + } + } + } +}; + +class SocketChannel : public Channel { +public: + std::function onconnect; // only for TcpClient + std::function heartbeat; + + SocketChannel(hio_t* io) : Channel(io) { + } + virtual ~SocketChannel() {} + + // SSL/TLS + int enableSSL() { + if (io_ == NULL) return -1; + return hio_enable_ssl(io_); + } + bool isSSL() { + if (io_ == NULL) return false; + return hio_is_ssl(io_); + } + int setSSL(hssl_t ssl) { + if (io_ == NULL) return -1; + return hio_set_ssl(io_, ssl); + } + int setSslCtx(hssl_ctx_t ssl_ctx) { + if (io_ == NULL) return -1; + return hio_set_ssl_ctx(io_, ssl_ctx); + } + int newSslCtx(hssl_ctx_opt_t* opt) { + if (io_ == NULL) return -1; + return hio_new_ssl_ctx(io_, opt); + } + // for hssl_set_sni_hostname + int setHostname(const std::string& hostname) { + if (io_ == NULL) return -1; + return hio_set_hostname(io_, hostname.c_str()); + } + + // timeout + void setConnectTimeout(int timeout_ms) { + if (io_ == NULL) return; + hio_set_connect_timeout(io_, timeout_ms); + } + void setCloseTimeout(int timeout_ms) { + if (io_ == NULL) return; + hio_set_close_timeout(io_, timeout_ms); + } + void setReadTimeout(int timeout_ms) { + if (io_ == NULL) return; + hio_set_read_timeout(io_, timeout_ms); + } + void setWriteTimeout(int timeout_ms) { + if (io_ == NULL) return; + hio_set_write_timeout(io_, timeout_ms); + } + void setKeepaliveTimeout(int timeout_ms) { + if (io_ == NULL) return; + hio_set_keepalive_timeout(io_, timeout_ms); + } + + // heartbeat + // NOTE: Beware of circular reference problems caused by passing SocketChannelPtr by value. + void setHeartbeat(int interval_ms, std::function fn) { + if (io_ == NULL) return; + heartbeat = std::move(fn); + hio_set_heartbeat(io_, interval_ms, send_heartbeat); + } + + /* + * unpack + * + * NOTE: unpack_setting_t of multiple IOs of the same function also are same, + * so only the pointer of unpack_setting_t is stored in hio_t, + * the life time of unpack_setting_t shoud be guaranteed by caller. + */ + void setUnpack(unpack_setting_t* setting) { + if (io_ == NULL) return; + hio_set_unpack(io_, setting); + } + + int startConnect(int port, const char* host = "127.0.0.1") { + sockaddr_u peeraddr; + memset(&peeraddr, 0, sizeof(peeraddr)); + int ret = sockaddr_set_ipport(&peeraddr, host, port); + if (ret != 0) { + // hloge("unknown host %s", host); + return ret; + } + return startConnect(&peeraddr.sa); + } + + int startConnect(struct sockaddr* peeraddr) { + if (io_ == NULL) return -1; + hio_set_peeraddr(io_, peeraddr, SOCKADDR_LEN(peeraddr)); + return startConnect(); + } + + int startConnect() { + if (io_ == NULL) return -1; + status = CONNECTING; + hio_setcb_connect(io_, on_connect); + return hio_connect(io_); + } + + bool isConnected() { + return status == CONNECTED && isOpened(); + } + + std::string localaddr() { + if (io_ == NULL) return ""; + struct sockaddr* addr = hio_localaddr(io_); + char buf[SOCKADDR_STRLEN] = {0}; + return SOCKADDR_STR(addr, buf); + } + + std::string peeraddr() { + if (io_ == NULL) return ""; + struct sockaddr* addr = hio_peeraddr(io_); + char buf[SOCKADDR_STRLEN] = {0}; + return SOCKADDR_STR(addr, buf); + } + +private: + static void on_connect(hio_t* io) { + SocketChannel* channel = (SocketChannel*)hio_context(io); + if (channel) { + channel->status = CONNECTED; + if (channel->onconnect) { + channel->onconnect(); + } + } + } + + static void send_heartbeat(hio_t* io) { + SocketChannel* channel = (SocketChannel*)hio_context(io); + if (channel && channel->heartbeat) { + channel->heartbeat(); + } + } +}; + +typedef std::shared_ptr ChannelPtr; +typedef std::shared_ptr SocketChannelPtr; + +} + +#endif // HV_CHANNEL_HPP_ diff --git a/3rdPartner/libhv/evpp/Event.h b/3rdPartner/libhv/evpp/Event.h new file mode 100644 index 0000000..44d0c7e --- /dev/null +++ b/3rdPartner/libhv/evpp/Event.h @@ -0,0 +1,47 @@ +#ifndef HV_EVENT_HPP_ +#define HV_EVENT_HPP_ + +#include +#include + +#include "hloop.h" + +namespace hv { + +struct Event; +struct Timer; + +typedef uint64_t TimerID; +#define INVALID_TIMER_ID ((hv::TimerID)-1) + +typedef std::function EventCallback; +typedef std::function TimerCallback; + +struct Event { + hevent_t event; + EventCallback cb; + + Event(EventCallback cb = NULL) { + memset(&event, 0, sizeof(hevent_t)); + this->cb = std::move(cb); + } +}; + +struct Timer { + htimer_t* timer; + TimerCallback cb; + uint32_t repeat; + + Timer(htimer_t* timer = NULL, TimerCallback cb = NULL, uint32_t repeat = INFINITE) { + this->timer = timer; + this->cb = std::move(cb); + this->repeat = repeat; + } +}; + +typedef std::shared_ptr EventPtr; +typedef std::shared_ptr TimerPtr; + +} + +#endif // HV_EVENT_HPP_ diff --git a/3rdPartner/libhv/evpp/EventLoop.h b/3rdPartner/libhv/evpp/EventLoop.h new file mode 100644 index 0000000..d8e7f64 --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoop.h @@ -0,0 +1,277 @@ +#ifndef HV_EVENT_LOOP_HPP_ +#define HV_EVENT_LOOP_HPP_ + +#include +#include +#include +#include + +#include "hloop.h" +#include "hthread.h" + +#include "Status.h" +#include "Event.h" +#include "ThreadLocalStorage.h" + +namespace hv { + +class EventLoop : public Status { +public: + + typedef std::function Functor; + + // New an EventLoop using an existing hloop_t object, + // so we can embed an EventLoop object into the old application based on hloop. + // NOTE: Be careful to deal with destroy of hloop_t. + EventLoop(hloop_t* loop = NULL) { + setStatus(kInitializing); + if (loop) { + loop_ = loop; + is_loop_owner = false; + } else { + loop_ = hloop_new(HLOOP_FLAG_AUTO_FREE); + is_loop_owner = true; + } + connectionNum = 0; + nextTimerID = 0; + setStatus(kInitialized); + } + + ~EventLoop() { + stop(); + } + + hloop_t* loop() { + return loop_; + } + + // @brief Run loop forever + void run() { + if (loop_ == NULL) return; + if (status() == kRunning) return; + ThreadLocalStorage::set(ThreadLocalStorage::EVENT_LOOP, this); + setStatus(kRunning); + hloop_run(loop_); + setStatus(kStopped); + } + + // stop thread-safe + void stop() { + if (loop_ == NULL) return; + if (status() < kRunning) { + if (is_loop_owner) { + hloop_free(&loop_); + } + loop_ = NULL; + return; + } + setStatus(kStopping); + hloop_stop(loop_); + loop_ = NULL; + } + + void pause() { + if (loop_ == NULL) return; + if (isRunning()) { + hloop_pause(loop_); + setStatus(kPause); + } + } + + void resume() { + if (loop_ == NULL) return; + if (isPause()) { + hloop_resume(loop_); + setStatus(kRunning); + } + } + + // Timer interfaces: setTimer, killTimer, resetTimer + TimerID setTimer(int timeout_ms, TimerCallback cb, uint32_t repeat = INFINITE, TimerID timerID = INVALID_TIMER_ID) { + if (loop_ == NULL) return INVALID_TIMER_ID; + assertInLoopThread(); + htimer_t* htimer = htimer_add(loop_, onTimer, timeout_ms, repeat); + assert(htimer != NULL); + if (timerID == INVALID_TIMER_ID) { + timerID = generateTimerID(); + } + hevent_set_id(htimer, timerID); + hevent_set_userdata(htimer, this); + + timers[timerID] = std::make_shared(htimer, cb, repeat); + return timerID; + } + + // setTimerInLoop thread-safe + TimerID setTimerInLoop(int timeout_ms, TimerCallback cb, uint32_t repeat = INFINITE, TimerID timerID = INVALID_TIMER_ID) { + if (timerID == INVALID_TIMER_ID) { + timerID = generateTimerID(); + } + runInLoop(std::bind(&EventLoop::setTimer, this, timeout_ms, cb, repeat, timerID)); + return timerID; + } + + // alias javascript setTimeout, setInterval + // setTimeout thread-safe + TimerID setTimeout(int timeout_ms, TimerCallback cb) { + return setTimerInLoop(timeout_ms, cb, 1); + } + // setInterval thread-safe + TimerID setInterval(int interval_ms, TimerCallback cb) { + return setTimerInLoop(interval_ms, cb, INFINITE); + } + + // killTimer thread-safe + void killTimer(TimerID timerID) { + runInLoop([timerID, this](){ + auto iter = timers.find(timerID); + if (iter != timers.end()) { + htimer_del(iter->second->timer); + timers.erase(iter); + } + }); + } + + // resetTimer thread-safe + void resetTimer(TimerID timerID, int timeout_ms = 0) { + runInLoop([timerID, timeout_ms, this](){ + auto iter = timers.find(timerID); + if (iter != timers.end()) { + htimer_reset(iter->second->timer, timeout_ms); + if (iter->second->repeat == 0) { + iter->second->repeat = 1; + } + } + }); + } + + long tid() { + if (loop_ == NULL) return hv_gettid(); + return hloop_tid(loop_); + } + + bool isInLoopThread() { + if (loop_ == NULL) return false; + return hv_gettid() == hloop_tid(loop_); + } + + void assertInLoopThread() { + assert(isInLoopThread()); + } + + void runInLoop(Functor fn) { + if (isRunning() && isInLoopThread()) { + if (fn) fn(); + } else { + queueInLoop(std::move(fn)); + } + } + + void queueInLoop(Functor fn) { + postEvent([fn](Event* ev) { + if (fn) fn(); + }); + } + + void postEvent(EventCallback cb) { + if (loop_ == NULL) return; + + EventPtr ev = std::make_shared(cb); + hevent_set_userdata(&ev->event, this); + ev->event.cb = onCustomEvent; + + mutex_.lock(); + customEvents.push(ev); + mutex_.unlock(); + + hloop_post_event(loop_, &ev->event); + } + +private: + TimerID generateTimerID() { + return (((TimerID)tid() & 0xFFFFFFFF) << 32) | ++nextTimerID; + } + + static void onTimer(htimer_t* htimer) { + EventLoop* loop = (EventLoop*)hevent_userdata(htimer); + + TimerID timerID = hevent_id(htimer); + TimerPtr timer = NULL; + + auto iter = loop->timers.find(timerID); + if (iter != loop->timers.end()) { + timer = iter->second; + if (timer->repeat != INFINITE) --timer->repeat; + } + + if (timer) { + if (timer->cb) timer->cb(timerID); + if (timer->repeat == 0) { + // htimer_t alloc and free by hloop, but timers[timerID] managed by EventLoop. + loop->timers.erase(timerID); + } + } + } + + static void onCustomEvent(hevent_t* hev) { + EventLoop* loop = (EventLoop*)hevent_userdata(hev); + + loop->mutex_.lock(); + EventPtr ev = loop->customEvents.front(); + loop->customEvents.pop(); + loop->mutex_.unlock(); + + if (ev && ev->cb) ev->cb(ev.get()); + } + +public: + std::atomic connectionNum; // for LB_LeastConnections +private: + hloop_t* loop_; + bool is_loop_owner; + std::mutex mutex_; + std::queue customEvents; // GUAREDE_BY(mutex_) + std::map timers; + std::atomic nextTimerID; +}; + +typedef std::shared_ptr EventLoopPtr; + +// ThreadLocalStorage +static inline EventLoop* tlsEventLoop() { + return (EventLoop*)ThreadLocalStorage::get(ThreadLocalStorage::EVENT_LOOP); +} +#define currentThreadEventLoop tlsEventLoop() + +static inline TimerID setTimer(int timeout_ms, TimerCallback cb, uint32_t repeat = INFINITE) { + EventLoop* loop = tlsEventLoop(); + assert(loop != NULL); + if (loop == NULL) return INVALID_TIMER_ID; + return loop->setTimer(timeout_ms, cb, repeat); +} + +static inline void killTimer(TimerID timerID) { + EventLoop* loop = tlsEventLoop(); + assert(loop != NULL); + if (loop == NULL) return; + loop->killTimer(timerID); +} + +static inline void resetTimer(TimerID timerID, int timeout_ms) { + EventLoop* loop = tlsEventLoop(); + assert(loop != NULL); + if (loop == NULL) return; + loop->resetTimer(timerID, timeout_ms); +} + +static inline TimerID setTimeout(int timeout_ms, TimerCallback cb) { + return setTimer(timeout_ms, cb, 1); +} + +static inline TimerID setInterval(int interval_ms, TimerCallback cb) { + return setTimer(interval_ms, cb, INFINITE); +} + +} + +#endif // HV_EVENT_LOOP_HPP_ diff --git a/3rdPartner/libhv/evpp/EventLoopThread.h b/3rdPartner/libhv/evpp/EventLoopThread.h new file mode 100644 index 0000000..47f20db --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoopThread.h @@ -0,0 +1,115 @@ +#ifndef HV_EVENT_LOOP_THREAD_HPP_ +#define HV_EVENT_LOOP_THREAD_HPP_ + +#include + +#include "hlog.h" + +#include "EventLoop.h" + +namespace hv { + +class EventLoopThread : public Status { +public: + // Return 0 means OK, other failed. + typedef std::function Functor; + + EventLoopThread(EventLoopPtr loop = NULL) { + setStatus(kInitializing); + loop_ = loop ? loop : std::make_shared(); + setStatus(kInitialized); + } + + ~EventLoopThread() { + stop(); + join(); + } + + const EventLoopPtr& loop() { + return loop_; + } + + hloop_t* hloop() { + return loop_->loop(); + } + + bool isRunning() { + return loop_->isRunning(); + } + + // @param wait_thread_started: if ture this method will block until loop_thread started. + // @param pre: This functor will be executed when loop_thread started. + // @param post:This Functor will be executed when loop_thread stopped. + void start(bool wait_thread_started = true, + Functor pre = Functor(), + Functor post = Functor()) { + if (status() >= kStarting && status() < kStopped) return; + setStatus(kStarting); + + thread_ = std::make_shared(&EventLoopThread::loop_thread, this, pre, post); + + if (wait_thread_started) { + while (loop_->status() < kRunning) { + hv_delay(1); + } + } + } + + // @param wait_thread_started: if ture this method will block until loop_thread stopped. + // stop thread-safe + void stop(bool wait_thread_stopped = false) { + if (status() < kStarting || status() >= kStopping) return; + setStatus(kStopping); + + long loop_tid = loop_->tid(); + loop_->stop(); + + if (wait_thread_stopped) { + if (hv_gettid() == loop_tid) return; + join(); + } + } + + // @brief join loop_thread + // @note destructor will join loop_thread if you forget to call this method. + void join() { + if (thread_ && thread_->joinable()) { + thread_->join(); + thread_ = NULL; + } + } + +private: + void loop_thread(const Functor& pre, const Functor& post) { + hlogi("EventLoopThread started, tid=%ld", hv_gettid()); + setStatus(kStarted); + + if (pre) { + loop_->queueInLoop([this, pre]{ + if (pre() != 0) { + loop_->stop(); + } + }); + } + + loop_->run(); + assert(loop_->isStopped()); + + if (post) { + post(); + } + + setStatus(kStopped); + hlogi("EventLoopThread stopped, tid=%ld", hv_gettid()); + } + +private: + EventLoopPtr loop_; + std::shared_ptr thread_; +}; + +typedef std::shared_ptr EventLoopThreadPtr; + +} + +#endif // HV_EVENT_LOOP_THREAD_HPP_ diff --git a/3rdPartner/libhv/evpp/EventLoopThreadPool.h b/3rdPartner/libhv/evpp/EventLoopThreadPool.h new file mode 100644 index 0000000..efdb317 --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoopThreadPool.h @@ -0,0 +1,138 @@ +#ifndef HV_EVENT_LOOP_THREAD_POOL_HPP_ +#define HV_EVENT_LOOP_THREAD_POOL_HPP_ + +#include "EventLoopThread.h" +#include "hbase.h" + +namespace hv { + +class EventLoopThreadPool : public Status { +public: + EventLoopThreadPool(int thread_num = std::thread::hardware_concurrency()) { + setStatus(kInitializing); + thread_num_ = thread_num; + next_loop_idx_ = 0; + setStatus(kInitialized); + } + + ~EventLoopThreadPool() { + stop(); + join(); + } + + int threadNum() { + return thread_num_; + } + + void setThreadNum(int num) { + thread_num_ = num; + } + + EventLoopPtr nextLoop(load_balance_e lb = LB_RoundRobin) { + size_t numLoops = loop_threads_.size(); + if (numLoops == 0) return NULL; + size_t idx = 0; + if (lb == LB_RoundRobin) { + if (++next_loop_idx_ >= numLoops) next_loop_idx_ = 0; + idx = next_loop_idx_ % numLoops; + } else if (lb == LB_Random) { + idx = hv_rand(0, numLoops - 1); + } else if (lb == LB_LeastConnections) { + for (size_t i = 1; i < numLoops; ++i) { + if (loop_threads_[i]->loop()->connectionNum < loop_threads_[idx]->loop()->connectionNum) { + idx = i; + } + } + } else { + // Not Implemented + } + return loop_threads_[idx]->loop(); + } + + EventLoopPtr loop(int idx = -1) { + if (idx >= 0 && idx < (int)loop_threads_.size()) { + return loop_threads_[idx]->loop(); + } + return nextLoop(); + } + + hloop_t* hloop(int idx = -1) { + EventLoopPtr ptr = loop(idx); + return ptr ? ptr->loop() : NULL; + } + + // @param wait_threads_started: if ture this method will block until all loop_threads started. + // @param pre: This functor will be executed when loop_thread started. + // @param post:This Functor will be executed when loop_thread stopped. + void start(bool wait_threads_started = false, + std::function pre = NULL, + std::function post = NULL) { + if (thread_num_ == 0) return; + if (status() >= kStarting && status() < kStopped) return; + setStatus(kStarting); + + auto started_cnt = std::make_shared>(0); + auto exited_cnt = std::make_shared>(0); + + loop_threads_.clear(); + for (int i = 0; i < thread_num_; ++i) { + auto loop_thread = std::make_shared(); + const EventLoopPtr& loop = loop_thread->loop(); + loop_thread->start(false, + [this, started_cnt, pre, &loop]() { + if (++(*started_cnt) == thread_num_) { + setStatus(kRunning); + } + if (pre) pre(loop); + return 0; + }, + [this, exited_cnt, post, &loop]() { + if (post) post(loop); + if (++(*exited_cnt) == thread_num_) { + setStatus(kStopped); + } + return 0; + } + ); + loop_threads_.push_back(loop_thread); + } + + if (wait_threads_started) { + while (status() < kRunning) { + hv_delay(1); + } + } + } + + // @param wait_threads_started: if ture this method will block until all loop_threads stopped. + // stop thread-safe + void stop(bool wait_threads_stopped = false) { + if (status() < kStarting || status() >= kStopping) return; + setStatus(kStopping); + + for (auto& loop_thread : loop_threads_) { + loop_thread->stop(false); + } + + if (wait_threads_stopped) { + join(); + } + } + + // @brief join all loop_threads + // @note destructor will join loop_threads if you forget to call this method. + void join() { + for (auto& loop_thread : loop_threads_) { + loop_thread->join(); + } + } + +private: + int thread_num_; + std::vector loop_threads_; + std::atomic next_loop_idx_; +}; + +} + +#endif // HV_EVENT_LOOP_THREAD_POOL_HPP_ diff --git a/3rdPartner/libhv/evpp/EventLoopThreadPool_test.cpp b/3rdPartner/libhv/evpp/EventLoopThreadPool_test.cpp new file mode 100644 index 0000000..a6fc9a3 --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoopThreadPool_test.cpp @@ -0,0 +1,55 @@ +/* + * EventLoopThreadPool_test.cpp + * + * @build: make evpp + * + */ + +#include "hv.h" + +#include "EventLoopThreadPool.h" + +using namespace hv; + +static void onTimer(TimerID timerID, int n) { + printf("tid=%ld timerID=%lu time=%lus n=%d\n", hv_gettid(), (unsigned long)timerID, (unsigned long)time(NULL), n); +} + +int main(int argc, char* argv[]) { + HV_MEMCHECK; + hlog_set_level(LOG_LEVEL_DEBUG); + + printf("main tid=%ld\n", hv_gettid()); + + EventLoopThreadPool loop_threads(4); + loop_threads.start(true); + + int thread_num = loop_threads.threadNum(); + for (int i = 0; i < thread_num; ++i) { + EventLoopPtr loop = loop_threads.nextLoop(); + printf("worker[%d] tid=%ld\n", i, loop->tid()); + + loop->runInLoop([loop](){ + // runEvery 1s + loop->setInterval(1000, std::bind(onTimer, std::placeholders::_1, 100)); + }); + + loop->queueInLoop([](){ + printf("queueInLoop tid=%ld\n", hv_gettid()); + }); + + loop->runInLoop([](){ + printf("runInLoop tid=%ld\n", hv_gettid()); + }); + } + + // runAfter 10s + loop_threads.loop()->setTimeout(10000, [&loop_threads](TimerID timerID){ + loop_threads.stop(false); + }); + + // wait loop_threads exit + loop_threads.join(); + + return 0; +} diff --git a/3rdPartner/libhv/evpp/EventLoopThread_test.cpp b/3rdPartner/libhv/evpp/EventLoopThread_test.cpp new file mode 100644 index 0000000..b8ab220 --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoopThread_test.cpp @@ -0,0 +1,48 @@ +/* + * EventLoopThread_test.cpp + * + * @build: make evpp + * + */ + +#include "hv.h" + +#include "EventLoopThread.h" + +using namespace hv; + +static void onTimer(TimerID timerID, int n) { + printf("tid=%ld timerID=%lu time=%lus n=%d\n", hv_gettid(), (unsigned long)timerID, (unsigned long)time(NULL), n); +} + +int main(int argc, char* argv[]) { + HV_MEMCHECK; + + printf("main tid=%ld\n", hv_gettid()); + + EventLoopThread loop_thread; + const EventLoopPtr& loop = loop_thread.loop(); + + // runEvery 1s + loop->setInterval(1000, std::bind(onTimer, std::placeholders::_1, 100)); + + // runAfter 10s + loop->setTimeout(10000, [&loop](TimerID timerID){ + loop->stop(); + }); + + loop_thread.start(); + + loop->queueInLoop([](){ + printf("queueInLoop tid=%ld\n", hv_gettid()); + }); + + loop->runInLoop([](){ + printf("runInLoop tid=%ld\n", hv_gettid()); + }); + + // wait loop_thread exit + loop_thread.join(); + + return 0; +} diff --git a/3rdPartner/libhv/evpp/EventLoop_test.cpp b/3rdPartner/libhv/evpp/EventLoop_test.cpp new file mode 100644 index 0000000..a6d855c --- /dev/null +++ b/3rdPartner/libhv/evpp/EventLoop_test.cpp @@ -0,0 +1,45 @@ +/* + * EventLoop_test.cpp + * + * @build: make evpp + * + */ + +#include "hv.h" + +#include "EventLoop.h" + +using namespace hv; + +static void onTimer(TimerID timerID, int n) { + printf("tid=%ld timerID=%lu time=%lus n=%d\n", hv_gettid(), (unsigned long)timerID, (unsigned long)time(NULL), n); +} + +int main(int argc, char* argv[]) { + HV_MEMCHECK; + + printf("main tid=%ld\n", hv_gettid()); + + auto loop = std::make_shared(); + + // runEvery 1s + loop->setInterval(1000, std::bind(onTimer, std::placeholders::_1, 100)); + + // runAfter 10s + loop->setTimeout(10000, [&loop](TimerID timerID){ + loop->stop(); + }); + + loop->queueInLoop([](){ + printf("queueInLoop tid=%ld\n", hv_gettid()); + }); + + loop->runInLoop([](){ + printf("runInLoop tid=%ld\n", hv_gettid()); + }); + + // run until loop stopped + loop->run(); + + return 0; +} diff --git a/3rdPartner/libhv/evpp/README.md b/3rdPartner/libhv/evpp/README.md new file mode 100644 index 0000000..cac9ad9 --- /dev/null +++ b/3rdPartner/libhv/evpp/README.md @@ -0,0 +1,24 @@ +The evpp module is designed to be header-only and does not participate in compilation. +hloop.h is encapsulated into c++ classes, referring to muduo and evpp. +You can modify and use evpp classes according to your own business. + +evpp模块被设计成只包含头文件,不参与编译。 +hloop.h中的c接口被封装成了c++的类,参考了muduo和evpp。 +你能修改和使用这些类根据你自己的业务。 + +## 目录结构 + +``` +. +├── Buffer.h 缓存类 +├── Channel.h 通道类,封装了hio_t +├── Event.h 事件类,封装了hevent_t、htimer_t +├── EventLoop.h 事件循环类,封装了hloop_t +├── EventLoopThread.h 事件循环线程类,组合了EventLoop和thread +├── EventLoopThreadPool.h 事件循环线程池类,组合了EventLoop和ThreadPool +├── TcpClient.h TCP客户端类 +├── TcpServer.h TCP服务端类 +├── UdpClient.h UDP客户端类 +└── UdpServer.h UDP服务端类 + +``` diff --git a/3rdPartner/libhv/evpp/Status.h b/3rdPartner/libhv/evpp/Status.h new file mode 100644 index 0000000..caf2853 --- /dev/null +++ b/3rdPartner/libhv/evpp/Status.h @@ -0,0 +1,56 @@ +#ifndef HV_STATUS_HPP_ +#define HV_STATUS_HPP_ + +#include + +namespace hv { + +class Status { +public: + enum KStatus { + kNull = 0, + kInitializing = 1, + kInitialized = 2, + kStarting = 3, + kStarted = 4, + kRunning = 5, + kPause = 6, + kStopping = 7, + kStopped = 8, + kDestroyed = 9, + }; + + Status() { + status_ = kNull; + } + ~Status() { + status_ = kDestroyed; + } + + KStatus status() { + return status_; + } + + void setStatus(KStatus status) { + status_ = status; + } + + bool isRunning() { + return status_ == kRunning; + } + + bool isPause() { + return status_ == kPause; + } + + bool isStopped() { + return status_ == kStopped; + } + +private: + std::atomic status_; +}; + +} + +#endif // HV_STATUS_HPP_ diff --git a/3rdPartner/libhv/evpp/TcpClient.h b/3rdPartner/libhv/evpp/TcpClient.h new file mode 100644 index 0000000..be19cf2 --- /dev/null +++ b/3rdPartner/libhv/evpp/TcpClient.h @@ -0,0 +1,308 @@ +#ifndef HV_TCP_CLIENT_HPP_ +#define HV_TCP_CLIENT_HPP_ + +#include "hsocket.h" +#include "hssl.h" +#include "hlog.h" + +#include "EventLoopThread.h" +#include "Channel.h" + +namespace hv { + +template +class TcpClientEventLoopTmpl { +public: + typedef std::shared_ptr TSocketChannelPtr; + + TcpClientEventLoopTmpl(EventLoopPtr loop = NULL) { + loop_ = loop ? loop : std::make_shared(); + remote_port = 0; + connect_timeout = HIO_DEFAULT_CONNECT_TIMEOUT; + tls = false; + tls_setting = NULL; + reconn_setting = NULL; + unpack_setting = NULL; + } + + virtual ~TcpClientEventLoopTmpl() { + HV_FREE(tls_setting); + HV_FREE(reconn_setting); + HV_FREE(unpack_setting); + } + + const EventLoopPtr& loop() { + return loop_; + } + + // delete thread-safe + void deleteInLoop() { + loop_->runInLoop([this](){ + delete this; + }); + } + + // NOTE: By default, not bind local port. If necessary, you can call bind() after createsocket(). + // @retval >=0 connfd, <0 error + int createsocket(int remote_port, const char* remote_host = "127.0.0.1") { + memset(&remote_addr, 0, sizeof(remote_addr)); + int ret = sockaddr_set_ipport(&remote_addr, remote_host, remote_port); + if (ret != 0) { + return NABS(ret); + } + this->remote_host = remote_host; + this->remote_port = remote_port; + return createsocket(&remote_addr.sa); + } + + int createsocket(struct sockaddr* remote_addr) { + int connfd = ::socket(remote_addr->sa_family, SOCK_STREAM, 0); + // SOCKADDR_PRINT(remote_addr); + if (connfd < 0) { + perror("socket"); + return -2; + } + + hio_t* io = hio_get(loop_->loop(), connfd); + assert(io != NULL); + hio_set_peeraddr(io, remote_addr, SOCKADDR_LEN(remote_addr)); + channel = std::make_shared(io); + return connfd; + } + + int bind(int local_port, const char* local_host = "0.0.0.0") { + sockaddr_u local_addr; + memset(&local_addr, 0, sizeof(local_addr)); + int ret = sockaddr_set_ipport(&local_addr, local_host, local_port); + if (ret != 0) { + return NABS(ret); + } + return bind(&local_addr.sa); + } + + int bind(struct sockaddr* local_addr) { + if (channel == NULL || channel->isClosed()) { + return -1; + } + int ret = ::bind(channel->fd(), local_addr, SOCKADDR_LEN(local_addr)); + if (ret != 0) { + perror("bind"); + } + return ret; + } + + // closesocket thread-safe + void closesocket() { + if (channel && channel->status != SocketChannel::CLOSED) { + loop_->runInLoop([this](){ + if (channel) { + setReconnect(NULL); + channel->close(); + } + }); + } + } + + int startConnect() { + if (channel == NULL || channel->isClosed()) { + int connfd = createsocket(&remote_addr.sa); + if (connfd < 0) { + hloge("createsocket %s:%d return %d!\n", remote_host.c_str(), remote_port, connfd); + return connfd; + } + } + if (channel == NULL || channel->status >= SocketChannel::CONNECTING) { + return -1; + } + if (connect_timeout) { + channel->setConnectTimeout(connect_timeout); + } + if (tls) { + channel->enableSSL(); + if (tls_setting) { + int ret = channel->newSslCtx(tls_setting); + if (ret != 0) { + hloge("new SSL_CTX failed: %d", ret); + closesocket(); + return ret; + } + } + if (!is_ipaddr(remote_host.c_str())) { + channel->setHostname(remote_host); + } + } + channel->onconnect = [this]() { + if (unpack_setting) { + channel->setUnpack(unpack_setting); + } + channel->startRead(); + if (onConnection) { + onConnection(channel); + } + if (reconn_setting) { + reconn_setting_reset(reconn_setting); + } + }; + channel->onread = [this](Buffer* buf) { + if (onMessage) { + onMessage(channel, buf); + } + }; + channel->onwrite = [this](Buffer* buf) { + if (onWriteComplete) { + onWriteComplete(channel, buf); + } + }; + channel->onclose = [this]() { + bool reconnect = reconn_setting != NULL; + if (onConnection) { + onConnection(channel); + } + if (reconnect) { + startReconnect(); + } + }; + return channel->startConnect(); + } + + int startReconnect() { + if (!reconn_setting) return -1; + if (!reconn_setting_can_retry(reconn_setting)) return -2; + uint32_t delay = reconn_setting_calc_delay(reconn_setting); + hlogi("reconnect... cnt=%d, delay=%d", reconn_setting->cur_retry_cnt, reconn_setting->cur_delay); + loop_->setTimeout(delay, [this](TimerID timerID){ + startConnect(); + }); + return 0; + } + + // start thread-safe + void start() { + loop_->runInLoop(std::bind(&TcpClientEventLoopTmpl::startConnect, this)); + } + + bool isConnected() { + if (channel == NULL) return false; + return channel->isConnected(); + } + + // send thread-safe + int send(const void* data, int size) { + if (!isConnected()) return -1; + return channel->write(data, size); + } + int send(Buffer* buf) { + return send(buf->data(), buf->size()); + } + int send(const std::string& str) { + return send(str.data(), str.size()); + } + + int withTLS(hssl_ctx_opt_t* opt = NULL) { + tls = true; + if (opt) { + if (tls_setting == NULL) { + HV_ALLOC_SIZEOF(tls_setting); + } + opt->endpoint = HSSL_CLIENT; + *tls_setting = *opt; + } + return 0; + } + + void setConnectTimeout(int ms) { + connect_timeout = ms; + } + + void setReconnect(reconn_setting_t* setting) { + if (setting == NULL) { + HV_FREE(reconn_setting); + return; + } + if (reconn_setting == NULL) { + HV_ALLOC_SIZEOF(reconn_setting); + } + *reconn_setting = *setting; + } + bool isReconnect() { + return reconn_setting && reconn_setting->cur_retry_cnt > 0; + } + + void setUnpack(unpack_setting_t* setting) { + if (setting == NULL) { + HV_FREE(unpack_setting); + return; + } + if (unpack_setting == NULL) { + HV_ALLOC_SIZEOF(unpack_setting); + } + *unpack_setting = *setting; + } + +public: + TSocketChannelPtr channel; + + std::string remote_host; + int remote_port; + sockaddr_u remote_addr; + int connect_timeout; + bool tls; + hssl_ctx_opt_t* tls_setting; + reconn_setting_t* reconn_setting; + unpack_setting_t* unpack_setting; + + // Callback + std::function onConnection; + std::function onMessage; + // NOTE: Use Channel::isWriteComplete in onWriteComplete callback to determine whether all data has been written. + std::function onWriteComplete; + +private: + EventLoopPtr loop_; +}; + +template +class TcpClientTmpl : private EventLoopThread, public TcpClientEventLoopTmpl { +public: + TcpClientTmpl(EventLoopPtr loop = NULL) + : EventLoopThread(loop) + , TcpClientEventLoopTmpl(EventLoopThread::loop()) + , is_loop_owner(loop == NULL) + {} + virtual ~TcpClientTmpl() { + stop(true); + } + + const EventLoopPtr& loop() { + return EventLoopThread::loop(); + } + + // start thread-safe + void start(bool wait_threads_started = true) { + if (isRunning()) { + TcpClientEventLoopTmpl::start(); + } else { + EventLoopThread::start(wait_threads_started, [this]() { + TcpClientTmpl::startConnect(); + return 0; + }); + } + } + + // stop thread-safe + void stop(bool wait_threads_stopped = true) { + TcpClientEventLoopTmpl::closesocket(); + if (is_loop_owner) { + EventLoopThread::stop(wait_threads_stopped); + } + } + +private: + bool is_loop_owner; +}; + +typedef TcpClientTmpl TcpClient; + +} + +#endif // HV_TCP_CLIENT_HPP_ diff --git a/3rdPartner/libhv/evpp/TcpClientEventLoop_test.cpp b/3rdPartner/libhv/evpp/TcpClientEventLoop_test.cpp new file mode 100644 index 0000000..30aaec7 --- /dev/null +++ b/3rdPartner/libhv/evpp/TcpClientEventLoop_test.cpp @@ -0,0 +1,131 @@ +/* + * TcpClientEventLoop_test.cpp + * + * @build make evpp + * @server bin/TcpServer_test 1234 + * @client bin/TcpClientEventLoop_test 1234 + * + */ + +#include + +#include "TcpClient.h" +#include "htime.h" + +#define TEST_RECONNECT 1 +#define TEST_TLS 0 + +using namespace hv; + +class MyTcpClient : public TcpClient { +public: + MyTcpClient(EventLoopPtr loop = NULL) : TcpClient(loop) { + onConnection = [this](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + // send(time) every 3s + setInterval(3000, [channel](TimerID timerID){ + if (channel->isConnected()) { + if (channel->isWriteComplete()) { + char str[DATETIME_FMT_BUFLEN] = {0}; + datetime_t dt = datetime_now(); + datetime_fmt(&dt, str); + channel->write(str); + } + } else { + killTimer(timerID); + } + }); + } else { + printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + if (isReconnect()) { + printf("reconnect cnt=%d, delay=%d\n", reconn_setting->cur_retry_cnt, reconn_setting->cur_delay); + } + }; + + onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + }; + } + + int connect(int port) { + int connfd = createsocket(port); + if (connfd < 0) { + return connfd; + } +#if TEST_RECONNECT + // reconnect: 1,2,4,8,10,10,10... + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + setReconnect(&reconn); +#endif + +#if TEST_TLS + withTLS(); +#endif + printf("client connect to port %d, connfd=%d ...\n", port, connfd); + start(); + return connfd; + } +}; +typedef std::shared_ptr MyTcpClientPtr; + +int TestMultiClientsRunInOneEventLoop(int port, int nclients) { + auto loop_thread = std::make_shared(); + loop_thread->start(); + + std::map clients; + for (int i = 0; i < nclients; ++i) { + MyTcpClient* client = new MyTcpClient(loop_thread->loop()); + client->connect(port); + clients[i] = client; + } + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + for (auto& pair : clients) { + MyTcpClient* client = pair.second; + client->closesocket(); + } + } else if (str == "delete") { + for (auto& pair : clients) { + MyTcpClient* client = pair.second; + client->deleteInLoop(); + } + break; + } else { + for (auto& pair : clients) { + MyTcpClient* client = pair.second; + client->send(str); + } + } + } + + printf("Press Enter key to exit loop.\n"); + while (getchar() != '\n'); + loop_thread->stop(); + loop_thread->join(); + + return 0; +} + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: %s port [nclients]\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + int nclients = 100; + if (argc > 2) { + nclients = atoi(argv[2]); + } + + return TestMultiClientsRunInOneEventLoop(port, nclients); +} diff --git a/3rdPartner/libhv/evpp/TcpClient_test.cpp b/3rdPartner/libhv/evpp/TcpClient_test.cpp new file mode 100644 index 0000000..2ac096e --- /dev/null +++ b/3rdPartner/libhv/evpp/TcpClient_test.cpp @@ -0,0 +1,97 @@ +/* + * TcpClient_test.cpp + * + * @build make evpp + * @server bin/TcpServer_test 1234 + * @client bin/TcpClient_test 1234 + * + */ + +#include + +#include "TcpClient.h" +#include "htime.h" + +#define TEST_RECONNECT 1 +#define TEST_TLS 0 + +using namespace hv; + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: %s remote_port [remote_host]\n", argv[0]); + return -10; + } + int remote_port = atoi(argv[1]); + const char* remote_host = "127.0.0.1"; + if (argc > 2) { + remote_host = argv[2]; + } + + TcpClient cli; + int connfd = cli.createsocket(remote_port, remote_host); + if (connfd < 0) { + return -20; + } + printf("client connect to port %d, connfd=%d ...\n", remote_port, connfd); + cli.onConnection = [&cli](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + // send(time) every 3s + setInterval(3000, [channel](TimerID timerID){ + if (channel->isConnected()) { + if (channel->isWriteComplete()) { + char str[DATETIME_FMT_BUFLEN] = {0}; + datetime_t dt = datetime_now(); + datetime_fmt(&dt, str); + channel->write(str); + } + } else { + killTimer(timerID); + } + }); + } else { + printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + if (cli.isReconnect()) { + printf("reconnect cnt=%d, delay=%d\n", cli.reconn_setting->cur_retry_cnt, cli.reconn_setting->cur_delay); + } + }; + cli.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + }; + +#if TEST_RECONNECT + // reconnect: 1,2,4,8,10,10,10... + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + cli.setReconnect(&reconn); +#endif + +#if TEST_TLS + cli.withTLS(); +#endif + + cli.start(); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + cli.closesocket(); + } else if (str == "start") { + cli.start(); + } else if (str == "stop") { + cli.stop(); + break; + } else { + if (!cli.isConnected()) break; + cli.send(str); + } + } + + return 0; +} diff --git a/3rdPartner/libhv/evpp/TcpServer.h b/3rdPartner/libhv/evpp/TcpServer.h new file mode 100644 index 0000000..4c7c20f --- /dev/null +++ b/3rdPartner/libhv/evpp/TcpServer.h @@ -0,0 +1,316 @@ +#ifndef HV_TCP_SERVER_HPP_ +#define HV_TCP_SERVER_HPP_ + +#include "hsocket.h" +#include "hssl.h" +#include "hlog.h" + +#include "EventLoopThreadPool.h" +#include "Channel.h" + +namespace hv { + +template +class TcpServerEventLoopTmpl { +public: + typedef std::shared_ptr TSocketChannelPtr; + + TcpServerEventLoopTmpl(EventLoopPtr loop = NULL) { + acceptor_loop = loop ? loop : std::make_shared(); + port = 0; + listenfd = -1; + tls = false; + tls_setting = NULL; + unpack_setting = NULL; + max_connections = 0xFFFFFFFF; + load_balance = LB_RoundRobin; + } + + virtual ~TcpServerEventLoopTmpl() { + HV_FREE(tls_setting); + HV_FREE(unpack_setting); + } + + EventLoopPtr loop(int idx = -1) { + return worker_threads.loop(idx); + } + + //@retval >=0 listenfd, <0 error + int createsocket(int port, const char* host = "0.0.0.0") { + listenfd = Listen(port, host); + if (listenfd < 0) return listenfd; + this->host = host; + this->port = port; + return listenfd; + } + // closesocket thread-safe + void closesocket() { + if (listenfd >= 0) { + hloop_t* loop = acceptor_loop->loop(); + if (loop) { + hio_t* listenio = hio_get(loop, listenfd); + assert(listenio != NULL); + hio_close_async(listenio); + } + listenfd = -1; + } + } + + void setMaxConnectionNum(uint32_t num) { + max_connections = num; + } + + void setLoadBalance(load_balance_e lb) { + load_balance = lb; + } + + // NOTE: totalThreadNum = 1 acceptor_thread + N worker_threads (N can be 0) + void setThreadNum(int num) { + worker_threads.setThreadNum(num); + } + + int startAccept() { + if (listenfd < 0) { + listenfd = createsocket(port, host.c_str()); + if (listenfd < 0) { + hloge("createsocket %s:%d return %d!\n", host.c_str(), port, listenfd); + return listenfd; + } + } + hloop_t* loop = acceptor_loop->loop(); + if (loop == NULL) return -2; + hio_t* listenio = haccept(loop, listenfd, onAccept); + assert(listenio != NULL); + hevent_set_userdata(listenio, this); + if (tls) { + hio_enable_ssl(listenio); + if (tls_setting) { + int ret = hio_new_ssl_ctx(listenio, tls_setting); + if (ret != 0) { + hloge("new SSL_CTX failed: %d", ret); + closesocket(); + return ret; + } + } + } + return 0; + } + + int stopAccept() { + if (listenfd < 0) return -1; + hloop_t* loop = acceptor_loop->loop(); + if (loop == NULL) return -2; + hio_t* listenio = hio_get(loop, listenfd); + assert(listenio != NULL); + return hio_del(listenio, HV_READ); + } + + // start thread-safe + void start(bool wait_threads_started = true) { + if (worker_threads.threadNum() > 0) { + worker_threads.start(wait_threads_started); + } + acceptor_loop->runInLoop(std::bind(&TcpServerEventLoopTmpl::startAccept, this)); + } + // stop thread-safe + void stop(bool wait_threads_stopped = true) { + closesocket(); + if (worker_threads.threadNum() > 0) { + worker_threads.stop(wait_threads_stopped); + } + } + + int withTLS(hssl_ctx_opt_t* opt = NULL) { + tls = true; + if (opt) { + if (tls_setting == NULL) { + HV_ALLOC_SIZEOF(tls_setting); + } + opt->endpoint = HSSL_SERVER; + *tls_setting = *opt; + } + return 0; + } + + void setUnpack(unpack_setting_t* setting) { + if (setting == NULL) { + HV_FREE(unpack_setting); + return; + } + if (unpack_setting == NULL) { + HV_ALLOC_SIZEOF(unpack_setting); + } + *unpack_setting = *setting; + } + + // channel + const TSocketChannelPtr& addChannel(hio_t* io) { + uint32_t id = hio_id(io); + auto channel = std::make_shared(io); + std::lock_guard locker(mutex_); + channels[id] = channel; + return channels[id]; + } + + TSocketChannelPtr getChannelById(uint32_t id) { + std::lock_guard locker(mutex_); + auto iter = channels.find(id); + return iter != channels.end() ? iter->second : NULL; + } + + void removeChannel(const TSocketChannelPtr& channel) { + uint32_t id = channel->id(); + std::lock_guard locker(mutex_); + channels.erase(id); + } + + size_t connectionNum() { + std::lock_guard locker(mutex_); + return channels.size(); + } + + int foreachChannel(std::function fn) { + std::lock_guard locker(mutex_); + for (auto& pair : channels) { + fn(pair.second); + } + return channels.size(); + } + + // broadcast thread-safe + int broadcast(const void* data, int size) { + return foreachChannel([data, size](const TSocketChannelPtr& channel) { + channel->write(data, size); + }); + } + + int broadcast(const std::string& str) { + return broadcast(str.data(), str.size()); + } + +private: + static void newConnEvent(hio_t* connio) { + TcpServerEventLoopTmpl* server = (TcpServerEventLoopTmpl*)hevent_userdata(connio); + if (server->connectionNum() >= server->max_connections) { + hlogw("over max_connections"); + hio_close(connio); + return; + } + + // NOTE: attach to worker loop + EventLoop* worker_loop = currentThreadEventLoop; + assert(worker_loop != NULL); + hio_attach(worker_loop->loop(), connio); + + const TSocketChannelPtr& channel = server->addChannel(connio); + channel->status = SocketChannel::CONNECTED; + + channel->onread = [server, &channel](Buffer* buf) { + if (server->onMessage) { + server->onMessage(channel, buf); + } + }; + channel->onwrite = [server, &channel](Buffer* buf) { + if (server->onWriteComplete) { + server->onWriteComplete(channel, buf); + } + }; + channel->onclose = [server, &channel]() { + EventLoop* worker_loop = currentThreadEventLoop; + assert(worker_loop != NULL); + --worker_loop->connectionNum; + + channel->status = SocketChannel::CLOSED; + if (server->onConnection) { + server->onConnection(channel); + } + server->removeChannel(channel); + // NOTE: After removeChannel, channel may be destroyed, + // so in this lambda function, no code should be added below. + }; + + if (server->unpack_setting) { + channel->setUnpack(server->unpack_setting); + } + channel->startRead(); + if (server->onConnection) { + server->onConnection(channel); + } + } + + static void onAccept(hio_t* connio) { + TcpServerEventLoopTmpl* server = (TcpServerEventLoopTmpl*)hevent_userdata(connio); + // NOTE: detach from acceptor loop + hio_detach(connio); + EventLoopPtr worker_loop = server->worker_threads.nextLoop(server->load_balance); + if (worker_loop == NULL) { + worker_loop = server->acceptor_loop; + } + ++worker_loop->connectionNum; + worker_loop->runInLoop(std::bind(&TcpServerEventLoopTmpl::newConnEvent, connio)); + } + +public: + std::string host; + int port; + int listenfd; + bool tls; + hssl_ctx_opt_t* tls_setting; + unpack_setting_t* unpack_setting; + // Callback + std::function onConnection; + std::function onMessage; + // NOTE: Use Channel::isWriteComplete in onWriteComplete callback to determine whether all data has been written. + std::function onWriteComplete; + + uint32_t max_connections; + load_balance_e load_balance; + +private: + // id => TSocketChannelPtr + std::map channels; // GUAREDE_BY(mutex_) + std::mutex mutex_; + + EventLoopPtr acceptor_loop; + EventLoopThreadPool worker_threads; +}; + +template +class TcpServerTmpl : private EventLoopThread, public TcpServerEventLoopTmpl { +public: + TcpServerTmpl(EventLoopPtr loop = NULL) + : EventLoopThread(loop) + , TcpServerEventLoopTmpl(EventLoopThread::loop()) + , is_loop_owner(loop == NULL) + {} + virtual ~TcpServerTmpl() { + stop(true); + } + + EventLoopPtr loop(int idx = -1) { + return TcpServerEventLoopTmpl::loop(idx); + } + + // start thread-safe + void start(bool wait_threads_started = true) { + TcpServerEventLoopTmpl::start(wait_threads_started); + EventLoopThread::start(wait_threads_started); + } + + // stop thread-safe + void stop(bool wait_threads_stopped = true) { + if (is_loop_owner) { + EventLoopThread::stop(wait_threads_stopped); + } + TcpServerEventLoopTmpl::stop(wait_threads_stopped); + } + +private: + bool is_loop_owner; +}; + +typedef TcpServerTmpl TcpServer; + +} + +#endif // HV_TCP_SERVER_HPP_ diff --git a/3rdPartner/libhv/evpp/TcpServer_test.cpp b/3rdPartner/libhv/evpp/TcpServer_test.cpp new file mode 100644 index 0000000..9af3704 --- /dev/null +++ b/3rdPartner/libhv/evpp/TcpServer_test.cpp @@ -0,0 +1,75 @@ +/* + * TcpServer_test.cpp + * + * @build make evpp + * @server bin/TcpServer_test 1234 + * @client bin/TcpClient_test 1234 + * + */ + +#include + +#include "TcpServer.h" + +using namespace hv; + +#define TEST_TLS 0 + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + hlog_set_level(LOG_LEVEL_DEBUG); + + TcpServer srv; + int listenfd = srv.createsocket(port); + if (listenfd < 0) { + return -20; + } + printf("server listen on port %d, listenfd=%d ...\n", port, listenfd); + srv.onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("%s connected! connfd=%d id=%d tid=%ld\n", peeraddr.c_str(), channel->fd(), channel->id(), currentThreadEventLoop->tid()); + } else { + printf("%s disconnected! connfd=%d id=%d tid=%ld\n", peeraddr.c_str(), channel->fd(), channel->id(), currentThreadEventLoop->tid()); + } + }; + srv.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + // echo + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + channel->write(buf); + }; + srv.setThreadNum(4); + srv.setLoadBalance(LB_LeastConnections); + +#if TEST_TLS + hssl_ctx_opt_t ssl_opt; + memset(&ssl_opt, 0, sizeof(hssl_ctx_opt_t)); + ssl_opt.crt_file = "cert/server.crt"; + ssl_opt.key_file = "cert/server.key"; + ssl_opt.verify_peer = 0; + srv.withTLS(&ssl_opt); +#endif + + srv.start(); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + srv.closesocket(); + } else if (str == "start") { + srv.start(); + } else if (str == "stop") { + srv.stop(); + break; + } else { + srv.broadcast(str.data(), str.size()); + } + } + + return 0; +} diff --git a/3rdPartner/libhv/evpp/TimerThread.h b/3rdPartner/libhv/evpp/TimerThread.h new file mode 100644 index 0000000..8388fe0 --- /dev/null +++ b/3rdPartner/libhv/evpp/TimerThread.h @@ -0,0 +1,47 @@ +#ifndef HV_TIMER_THREAD_HPP_ +#define HV_TIMER_THREAD_HPP_ + +#include "EventLoopThread.h" + +namespace hv { + +class TimerThread : public EventLoopThread { +public: + std::atomic nextTimerID; + TimerThread() : EventLoopThread() { + nextTimerID = 0; + start(); + } + + virtual ~TimerThread() { + stop(); + join(); + } + +public: + // setTimer, setTimeout, killTimer, resetTimer thread-safe + TimerID setTimer(int timeout_ms, TimerCallback cb, uint32_t repeat = INFINITE) { + TimerID timerID = ++nextTimerID; + loop()->setTimerInLoop(timeout_ms, cb, repeat, timerID); + return timerID; + } + // alias javascript setTimeout, setInterval + TimerID setTimeout(int timeout_ms, TimerCallback cb) { + return setTimer(timeout_ms, cb, 1); + } + TimerID setInterval(int interval_ms, TimerCallback cb) { + return setTimer(interval_ms, cb, INFINITE); + } + + void killTimer(TimerID timerID) { + loop()->killTimer(timerID); + } + + void resetTimer(TimerID timerID, int timeout_ms = 0) { + loop()->resetTimer(timerID, timeout_ms); + } +}; + +} // end namespace hv + +#endif // HV_TIMER_THREAD_HPP_ diff --git a/3rdPartner/libhv/evpp/TimerThread_test.cpp b/3rdPartner/libhv/evpp/TimerThread_test.cpp new file mode 100644 index 0000000..f572f30 --- /dev/null +++ b/3rdPartner/libhv/evpp/TimerThread_test.cpp @@ -0,0 +1,55 @@ +/* + * TimerThread_test.cpp + * + * @build: make evpp + * + */ + +#include "TimerThread.h" +#include "singleton.h" + +namespace hv { + +class GlobalTimerThread : public TimerThread { + SINGLETON_DECL(GlobalTimerThread) +protected: + GlobalTimerThread() : TimerThread() {} + ~GlobalTimerThread() {} + +public: + static TimerID setTimeout(int timeout_ms, TimerCallback cb) { + return GlobalTimerThread::instance()->setTimer(timeout_ms, cb, 1); + } + + static void clearTimeout(TimerID timerID) { + GlobalTimerThread::instance()->killTimer(timerID); + } + + static TimerID setInterval(int interval_ms, TimerCallback cb) { + return GlobalTimerThread::instance()->setTimer(interval_ms, cb, INFINITE); + } + + static void clearInterval(TimerID timerID) { + GlobalTimerThread::instance()->killTimer(timerID); + } +}; + +SINGLETON_IMPL(GlobalTimerThread) + +} // end namespace hv + +int main(int argc, char* argv[]) { + hv::GlobalTimerThread::setTimeout(3000, [](hv::TimerID timerID) { + printf("setTimeout timerID=%lu time=%lus\n", (unsigned long)timerID, (unsigned long)time(NULL)); + }); + + hv::GlobalTimerThread::setInterval(1000, [](hv::TimerID timerID) { + printf("setInterval timerID=%lu time=%lus\n", (unsigned long)timerID, (unsigned long)time(NULL)); + }); + + // press Enter to stop + while (getchar() != '\n'); + + hv::GlobalTimerThread::exitInstance(); + return 0; +} diff --git a/3rdPartner/libhv/evpp/UdpClient.h b/3rdPartner/libhv/evpp/UdpClient.h new file mode 100644 index 0000000..1b055a9 --- /dev/null +++ b/3rdPartner/libhv/evpp/UdpClient.h @@ -0,0 +1,200 @@ +#ifndef HV_UDP_CLIENT_HPP_ +#define HV_UDP_CLIENT_HPP_ + +#include "hsocket.h" + +#include "EventLoopThread.h" +#include "Channel.h" + +namespace hv { + +template +class UdpClientEventLoopTmpl { +public: + typedef std::shared_ptr TSocketChannelPtr; + + UdpClientEventLoopTmpl(EventLoopPtr loop = NULL) { + loop_ = loop ? loop : std::make_shared(); + remote_port = 0; +#if WITH_KCP + kcp_setting = NULL; +#endif + } + + virtual ~UdpClientEventLoopTmpl() { +#if WITH_KCP + HV_FREE(kcp_setting); +#endif + } + + const EventLoopPtr& loop() { + return loop_; + } + + // NOTE: By default, not bind local port. If necessary, you can call bind() after createsocket(). + // @retval >=0 sockfd, <0 error + int createsocket(int remote_port, const char* remote_host = "127.0.0.1") { + hio_t* io = hloop_create_udp_client(loop_->loop(), remote_host, remote_port); + if (io == NULL) return -1; + this->remote_host = remote_host; + this->remote_port = remote_port; + channel = std::make_shared(io); + int sockfd = channel->fd(); + if (hv_strendswith(remote_host, ".255")) { + udp_broadcast(sockfd, 1); + } + return sockfd; + } + + int bind(int local_port, const char* local_host = "0.0.0.0") { + if (channel == NULL || channel->isClosed()) { + return -1; + } + sockaddr_u local_addr; + memset(&local_addr, 0, sizeof(local_addr)); + int ret = sockaddr_set_ipport(&local_addr, local_host, local_port); + if (ret != 0) { + return NABS(ret); + } + ret = ::bind(channel->fd(), &local_addr.sa, SOCKADDR_LEN(&local_addr)); + if (ret != 0) { + perror("bind"); + } + hio_set_localaddr(channel->io(), &local_addr.sa, SOCKADDR_LEN(&local_addr)); + return ret; + } + + // closesocket thread-safe + void closesocket() { + if (channel) { + channel->close(true); + } + } + + int startRecv() { + if (channel == NULL || channel->isClosed()) { + int sockfd = createsocket(remote_port, remote_host.c_str()); + if (sockfd < 0) { + hloge("createsocket %s:%d return %d!\n", remote_host.c_str(), remote_port, sockfd); + return sockfd; + } + } + if (channel == NULL || channel->isClosed()) { + return -1; + } + channel->onread = [this](Buffer* buf) { + if (onMessage) { + onMessage(channel, buf); + } + }; + channel->onwrite = [this](Buffer* buf) { + if (onWriteComplete) { + onWriteComplete(channel, buf); + } + }; +#if WITH_KCP + if (kcp_setting) { + hio_set_kcp(channel->io(), kcp_setting); + } +#endif + return channel->startRead(); + } + + int stopRecv() { + if (channel == NULL) return -1; + return channel->stopRead(); + } + + // start thread-safe + void start() { + loop_->runInLoop(std::bind(&UdpClientEventLoopTmpl::startRecv, this)); + } + + // sendto thread-safe + int sendto(const void* data, int size, struct sockaddr* peeraddr = NULL) { + if (channel == NULL) return -1; + std::lock_guard locker(sendto_mutex); + if (peeraddr) hio_set_peeraddr(channel->io(), peeraddr, SOCKADDR_LEN(peeraddr)); + return channel->write(data, size); + } + int sendto(Buffer* buf, struct sockaddr* peeraddr = NULL) { + return sendto(buf->data(), buf->size(), peeraddr); + } + int sendto(const std::string& str, struct sockaddr* peeraddr = NULL) { + return sendto(str.data(), str.size(), peeraddr); + } + +#if WITH_KCP + void setKcp(kcp_setting_t* setting) { + if (setting == NULL) { + HV_FREE(kcp_setting); + return; + } + if (kcp_setting == NULL) { + HV_ALLOC_SIZEOF(kcp_setting); + } + *kcp_setting = *setting; + } +#endif + +public: + TSocketChannelPtr channel; + + std::string remote_host; + int remote_port; + +#if WITH_KCP + kcp_setting_t* kcp_setting; +#endif + // Callback + std::function onMessage; + // NOTE: Use Channel::isWriteComplete in onWriteComplete callback to determine whether all data has been written. + std::function onWriteComplete; + +private: + std::mutex sendto_mutex; + EventLoopPtr loop_; +}; + +template +class UdpClientTmpl : private EventLoopThread, public UdpClientEventLoopTmpl { +public: + UdpClientTmpl(EventLoopPtr loop = NULL) + : EventLoopThread(loop) + , UdpClientEventLoopTmpl(EventLoopThread::loop()) + , is_loop_owner(loop == NULL) + {} + virtual ~UdpClientTmpl() { + stop(true); + } + + const EventLoopPtr& loop() { + return EventLoopThread::loop(); + } + + // start thread-safe + void start(bool wait_threads_started = true) { + if (isRunning()) { + UdpClientEventLoopTmpl::start(); + } else { + EventLoopThread::start(wait_threads_started, std::bind(&UdpClientTmpl::startRecv, this)); + } + } + + // stop thread-safe + void stop(bool wait_threads_stopped = true) { + UdpClientEventLoopTmpl::closesocket(); + if (is_loop_owner) { + EventLoopThread::stop(wait_threads_stopped); + } + } + +private: + bool is_loop_owner; +}; + +typedef UdpClientTmpl UdpClient; + +} + +#endif // HV_UDP_CLIENT_HPP_ diff --git a/3rdPartner/libhv/evpp/UdpClient_test.cpp b/3rdPartner/libhv/evpp/UdpClient_test.cpp new file mode 100644 index 0000000..4ab91d7 --- /dev/null +++ b/3rdPartner/libhv/evpp/UdpClient_test.cpp @@ -0,0 +1,62 @@ +/* + * UdpClient_test.cpp + * + * @build make evpp + * @server bin/UdpServer_test 1234 + * @client bin/UdpClient_test 1234 + * + */ + +#include + +#include "UdpClient.h" +#include "htime.h" + +using namespace hv; + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: %s remote_port [remote_host]\n", argv[0]); + return -10; + } + int remote_port = atoi(argv[1]); + const char* remote_host = "127.0.0.1"; + if (argc > 2) { + remote_host = argv[2]; + } + + UdpClient cli; + int sockfd = cli.createsocket(remote_port, remote_host); + if (sockfd < 0) { + return -20; + } + printf("client sendto port %d, sockfd=%d ...\n", remote_port, sockfd); + cli.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + }; + cli.start(); + + // sendto(time) every 3s + cli.loop()->setInterval(3000, [&cli](TimerID timerID) { + char str[DATETIME_FMT_BUFLEN] = {0}; + datetime_t dt = datetime_now(); + datetime_fmt(&dt, str); + cli.sendto(str); + }); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + cli.closesocket(); + } else if (str == "start") { + cli.start(); + } else if (str == "stop") { + cli.stop(); + break; + } else { + cli.sendto(str); + } + } + + return 0; +} diff --git a/3rdPartner/libhv/evpp/UdpServer.h b/3rdPartner/libhv/evpp/UdpServer.h new file mode 100644 index 0000000..2db27b3 --- /dev/null +++ b/3rdPartner/libhv/evpp/UdpServer.h @@ -0,0 +1,174 @@ +#ifndef HV_UDP_SERVER_HPP_ +#define HV_UDP_SERVER_HPP_ + +#include "hsocket.h" + +#include "EventLoopThreadPool.h" +#include "Channel.h" + +namespace hv { + +template +class UdpServerEventLoopTmpl { +public: + typedef std::shared_ptr TSocketChannelPtr; + + UdpServerEventLoopTmpl(EventLoopPtr loop = NULL) { + loop_ = loop ? loop : std::make_shared(); + port = 0; +#if WITH_KCP + kcp_setting = NULL; +#endif + } + + virtual ~UdpServerEventLoopTmpl() { +#if WITH_KCP + HV_FREE(kcp_setting); +#endif + } + + const EventLoopPtr& loop() { + return loop_; + } + + //@retval >=0 bindfd, <0 error + int createsocket(int port, const char* host = "0.0.0.0") { + hio_t* io = hloop_create_udp_server(loop_->loop(), host, port); + if (io == NULL) return -1; + this->host = host; + this->port = port; + channel = std::make_shared(io); + return channel->fd(); + } + // closesocket thread-safe + void closesocket() { + if (channel) { + channel->close(true); + } + } + + int startRecv() { + if (channel == NULL || channel->isClosed()) { + int bindfd = createsocket(port, host.c_str()); + if (bindfd < 0) { + hloge("createsocket %s:%d return %d!\n", host.c_str(), port, bindfd); + return bindfd; + } + } + if (channel == NULL || channel->isClosed()) { + return -1; + } + channel->onread = [this](Buffer* buf) { + if (onMessage) { + onMessage(channel, buf); + } + }; + channel->onwrite = [this](Buffer* buf) { + if (onWriteComplete) { + onWriteComplete(channel, buf); + } + }; +#if WITH_KCP + if (kcp_setting) { + hio_set_kcp(channel->io(), kcp_setting); + } +#endif + return channel->startRead(); + } + + int stopRecv() { + if (channel == NULL) return -1; + return channel->stopRead(); + } + + // start thread-safe + void start() { + loop_->runInLoop(std::bind(&UdpServerEventLoopTmpl::startRecv, this)); + } + + // sendto thread-safe + int sendto(const void* data, int size, struct sockaddr* peeraddr = NULL) { + if (channel == NULL) return -1; + std::lock_guard locker(sendto_mutex); + if (peeraddr) hio_set_peeraddr(channel->io(), peeraddr, SOCKADDR_LEN(peeraddr)); + return channel->write(data, size); + } + int sendto(Buffer* buf, struct sockaddr* peeraddr = NULL) { + return sendto(buf->data(), buf->size(), peeraddr); + } + int sendto(const std::string& str, struct sockaddr* peeraddr = NULL) { + return sendto(str.data(), str.size(), peeraddr); + } + +#if WITH_KCP + void setKcp(kcp_setting_t* setting) { + if (setting == NULL) { + HV_FREE(kcp_setting); + return; + } + if (kcp_setting == NULL) { + HV_ALLOC_SIZEOF(kcp_setting); + } + *kcp_setting = *setting; + } +#endif + +public: + std::string host; + int port; + TSocketChannelPtr channel; +#if WITH_KCP + kcp_setting_t* kcp_setting; +#endif + // Callback + std::function onMessage; + // NOTE: Use Channel::isWriteComplete in onWriteComplete callback to determine whether all data has been written. + std::function onWriteComplete; + +private: + std::mutex sendto_mutex; + EventLoopPtr loop_; +}; + +template +class UdpServerTmpl : private EventLoopThread, public UdpServerEventLoopTmpl { +public: + UdpServerTmpl(EventLoopPtr loop = NULL) + : EventLoopThread(loop) + , UdpServerEventLoopTmpl(EventLoopThread::loop()) + , is_loop_owner(loop == NULL) + {} + virtual ~UdpServerTmpl() { + stop(true); + } + + const EventLoopPtr& loop() { + return EventLoopThread::loop(); + } + + // start thread-safe + void start(bool wait_threads_started = true) { + if (isRunning()) { + UdpServerEventLoopTmpl::start(); + } else { + EventLoopThread::start(wait_threads_started, std::bind(&UdpServerTmpl::startRecv, this)); + } + } + + // stop thread-safe + void stop(bool wait_threads_stopped = true) { + UdpServerEventLoopTmpl::closesocket(); + if (is_loop_owner) { + EventLoopThread::stop(wait_threads_stopped); + } + } + +private: + bool is_loop_owner; +}; + +typedef UdpServerTmpl UdpServer; + +} + +#endif // HV_UDP_SERVER_HPP_ diff --git a/3rdPartner/libhv/evpp/UdpServer_test.cpp b/3rdPartner/libhv/evpp/UdpServer_test.cpp new file mode 100644 index 0000000..7e4fe46 --- /dev/null +++ b/3rdPartner/libhv/evpp/UdpServer_test.cpp @@ -0,0 +1,51 @@ +/* + * UdpServer_test.cpp + * + * @build make evpp + * @server bin/UdpServer_test 1234 + * @client bin/UdpClient_test 1234 + * + */ + +#include + +#include "UdpServer.h" + +using namespace hv; + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + UdpServer srv; + int bindfd = srv.createsocket(port); + if (bindfd < 0) { + return -20; + } + printf("server bind on port %d, bindfd=%d ...\n", port, bindfd); + srv.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) { + // echo + printf("< %.*s\n", (int)buf->size(), (char*)buf->data()); + channel->write(buf); + }; + srv.start(); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + srv.closesocket(); + } else if (str == "start") { + srv.start(); + } else if (str == "stop") { + srv.stop(); + break; + } else { + srv.sendto(str); + } + } + + return 0; +} diff --git a/3rdPartner/libhv/evpp/build_test.sh b/3rdPartner/libhv/evpp/build_test.sh new file mode 100644 index 0000000..51eee38 --- /dev/null +++ b/3rdPartner/libhv/evpp/build_test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. + +cd ${ROOT_DIR} +make evpp diff --git a/3rdPartner/libhv/examples/BUILD.bazel b/3rdPartner/libhv/examples/BUILD.bazel new file mode 100644 index 0000000..340de96 --- /dev/null +++ b/3rdPartner/libhv/examples/BUILD.bazel @@ -0,0 +1,226 @@ +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +cc_binary( + name = "hloop_test", + srcs = ["hloop_test.c"], + deps = ["//:hv"] +) + + +cc_binary( + name = "htimer_test", + srcs = ["htimer_test.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "nc", + srcs = ["nc.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tinyhttpd", + srcs = ["tinyhttpd.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tinyproxyd", + srcs = ["tinyproxyd.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tcp_client_test", + srcs = ["tcp_client_test.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tcp_echo_server", + srcs = ["tcp_echo_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tcp_chat_server", + srcs = ["tcp_chat_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "tcp_proxy_server", + srcs = ["tcp_proxy_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "udp_echo_server", + srcs = ["udp_echo_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "udp_proxy_server", + srcs = ["udp_proxy_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "socks5_proxy_server", + srcs = ["socks5_proxy_server.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "jsonrpc_client", + srcs = ["jsonrpc/jsonrpc_client.c", "jsonrpc/cJSON.c"] + glob(["jsonrpc/*.h"]), + copts = ["-DCJSON_HIDE_SYMBOLS"], + deps = ["//:hv"] +) + +cc_binary( + name = "jsonrpc_server", + srcs = ["jsonrpc/jsonrpc_server.c", "jsonrpc/cJSON.c"] + glob(["jsonrpc/*.h"]), + copts = ["-DCJSON_HIDE_SYMBOLS"], + deps = ["//:hv"] +) + +cc_binary( + name = "hmain_test", + srcs = ["hmain_test.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "nmap", + srcs = glob(["nmap/*"]), + copts = ["-DPRINT_DEBUG"], + deps = ["//:hv"] +) + +cc_binary( + name = "wrk", + srcs = ["wrk.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "http_server_test", + srcs = ["http_server_test.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "websocket_server_test", + srcs = ["websocket_server_test.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "curl", + srcs = ["curl.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "wget", + srcs = ["wget.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "consul", + srcs = glob(["consul/*"]), + copts = ["-DPRINT_DEBUG"], + deps = ["//:hv"] +) + +cc_binary( + name = "http_client_test", + srcs = ["http_client_test.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "websocket_client_test", + srcs = ["websocket_client_test.cpp"], + deps = ["//:hv"] +) + +cc_binary( + name = "httpd", + srcs = glob(["httpd/*"]), + copts = ["-DPRINT_DEBUG"], + deps = ["//:hv"] +) + +cc_binary( + name = "mqtt_sub", + srcs = ["mqtt/mqtt_sub.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "mqtt_pub", + srcs = ["mqtt/mqtt_pub.c"], + deps = ["//:hv"] +) + +cc_binary( + name = "mqtt_client_test", + srcs = ["mqtt/mqtt_client_test.cpp"], + deps = ["//:hv"] +) + +config_setting( + name = "with_http_server_client", + define_values = { + "WITH_EVPP": "ON", + "WITH_HTTP": "ON", + "WITH_HTTP_SERVER": "ON", + "WITH_HTTP_CLIENT": "ON", + }, +) + + +filegroup( + name = "examples", + srcs = [ + ":hloop_test", + ":htimer_test", + ":nc", + ":tinyhttpd", + ":tinyproxyd", + ":tcp_client_test", + ":tcp_echo_server", + ":tcp_chat_server", + ":tcp_proxy_server", + ":udp_echo_server", + ":udp_proxy_server", + ":socks5_proxy_server", + ":jsonrpc_client", + ":jsonrpc_server", + ] + select({ + "//:with_evpp": [":hmain_test", ":nmap"], + "//conditions:default": [], + }) + select({ + "//:with_http": [":wrk"], + "//conditions:default": [], + }) + select({ + "//:with_http_server": [":http_server_test", ":websocket_server_test"], + "//conditions:default": [], + }) + select({ + "//:with_http_client": [":curl", ":wget", ":consul", ":http_client_test", ":websocket_client_test"], + "//conditions:default": [], + }) + select({ + "with_http_server_client": [":httpd"], + "//conditions:default": [], + }) + select({ + "//:with_mqtt": ["mqtt_sub", "mqtt_pub", "mqtt_client_test"], + "//conditions:default": [], + }), + visibility = ["//:__pkg__"] +) + diff --git a/3rdPartner/libhv/examples/CMakeLists.txt b/3rdPartner/libhv/examples/CMakeLists.txt new file mode 100644 index 0000000..327c3b2 --- /dev/null +++ b/3rdPartner/libhv/examples/CMakeLists.txt @@ -0,0 +1,161 @@ +list(APPEND EXAMPLES + hloop_test + htimer_test + nc + tinyhttpd + tinyproxyd + tcp_client_test + tcp_echo_server + tcp_chat_server + tcp_proxy_server + udp_echo_server + udp_proxy_server + socks5_proxy_server + jsonrpc_client + jsonrpc_server +) + +include_directories(.. ../base ../ssl ../event ../util) + +add_executable(hloop_test hloop_test.c) +target_link_libraries(hloop_test ${HV_LIBRARIES}) + +add_executable(htimer_test htimer_test.c) +target_link_libraries(htimer_test ${HV_LIBRARIES}) + +add_executable(nc nc.c) +target_link_libraries(nc ${HV_LIBRARIES}) + +add_executable(tinyhttpd tinyhttpd.c) +target_link_libraries(tinyhttpd ${HV_LIBRARIES}) + +add_executable(tinyproxyd tinyproxyd.c) +target_link_libraries(tinyproxyd ${HV_LIBRARIES}) + +add_executable(tcp_client_test tcp_client_test.c) +target_link_libraries(tcp_client_test ${HV_LIBRARIES}) + +add_executable(tcp_echo_server tcp_echo_server.c) +target_link_libraries(tcp_echo_server ${HV_LIBRARIES}) + +add_executable(tcp_chat_server tcp_chat_server.c) +target_link_libraries(tcp_chat_server ${HV_LIBRARIES}) + +add_executable(tcp_proxy_server tcp_proxy_server.c) +target_link_libraries(tcp_proxy_server ${HV_LIBRARIES}) + +add_executable(udp_echo_server udp_echo_server.c) +target_link_libraries(udp_echo_server ${HV_LIBRARIES}) + +add_executable(udp_proxy_server udp_proxy_server.c) +target_link_libraries(udp_proxy_server ${HV_LIBRARIES}) + +add_executable(socks5_proxy_server socks5_proxy_server.c) +target_link_libraries(socks5_proxy_server ${HV_LIBRARIES}) + +add_executable(jsonrpc_client jsonrpc/jsonrpc_client.c jsonrpc/cJSON.c) +target_compile_definitions(jsonrpc_client PRIVATE CJSON_HIDE_SYMBOLS) +target_link_libraries(jsonrpc_client ${HV_LIBRARIES}) + +add_executable(jsonrpc_server jsonrpc/jsonrpc_server.c jsonrpc/cJSON.c) +target_compile_definitions(jsonrpc_server PRIVATE CJSON_HIDE_SYMBOLS) +target_link_libraries(jsonrpc_server ${HV_LIBRARIES}) + +if(WITH_EVPP) + include_directories(../cpputil ../evpp) + + # hmain_test + add_executable(hmain_test hmain_test.cpp) + target_link_libraries(hmain_test ${HV_LIBRARIES}) + + # nmap + glob_headers_and_sources(NMAP_FILES nmap) + add_executable(nmap ${NMAP_FILES}) + target_compile_definitions(nmap PRIVATE PRINT_DEBUG) + target_link_libraries(nmap ${HV_LIBRARIES}) + + list(APPEND EXAMPLES hmain_test nmap) +if(WITH_HTTP) + include_directories(../http) + + # wrk + add_executable(wrk wrk.cpp) + target_link_libraries(wrk ${HV_LIBRARIES}) + + list(APPEND EXAMPLES wrk) +if(WITH_HTTP_SERVER) + include_directories(../http/server) + + # http_server_test + add_executable(http_server_test http_server_test.cpp) + target_link_libraries(http_server_test ${HV_LIBRARIES}) + + # websocket_server_test + add_executable(websocket_server_test websocket_server_test.cpp) + target_link_libraries(websocket_server_test ${HV_LIBRARIES}) + + list(APPEND EXAMPLES http_server_test websocket_server_test) +endif() + +if(WITH_HTTP_CLIENT) + include_directories(../http/client) + + # curl + set(CURL_TARGET_NAME curl) + if(WITH_CURL) + set(CURL_TARGET_NAME hv_curl) + endif() + add_executable(${CURL_TARGET_NAME} curl.cpp) + if(WITH_CURL) + set_target_properties(${CURL_TARGET_NAME} PROPERTIES OUTPUT_NAME curl) + endif() + target_link_libraries(${CURL_TARGET_NAME} ${HV_LIBRARIES}) + + # wget + add_executable(wget wget.cpp) + target_link_libraries(wget ${HV_LIBRARIES}) + + # consul + glob_headers_and_sources(CONSUL_FILES consul) + add_executable(consul ${CONSUL_FILES}) + target_compile_definitions(consul PRIVATE PRINT_DEBUG) + target_link_libraries(consul ${HV_LIBRARIES}) + + # http_client_test + add_executable(http_client_test http_client_test.cpp) + target_link_libraries(http_client_test ${HV_LIBRARIES}) + + # websocket_client_test + add_executable(websocket_client_test websocket_client_test.cpp) + target_link_libraries(websocket_client_test ${HV_LIBRARIES}) + + list(APPEND EXAMPLES ${CURL_TARGET_NAME} wget consul http_client_test websocket_client_test) + + if(WITH_HTTP_SERVER) + # httpd + glob_headers_and_sources(HTTPD_FILES httpd) + add_executable(httpd ${HTTPD_FILES}) + target_link_libraries(httpd ${HV_LIBRARIES}) + list(APPEND EXAMPLES httpd) + endif() +endif() + +endif() +endif() + +if(WITH_MQTT) + include_directories(../mqtt) + + add_executable(mqtt_sub mqtt/mqtt_sub.c) + target_link_libraries(mqtt_sub ${HV_LIBRARIES}) + + add_executable(mqtt_pub mqtt/mqtt_pub.c) + target_link_libraries(mqtt_pub ${HV_LIBRARIES}) + + add_executable(mqtt_client_test mqtt/mqtt_client_test.cpp) + target_link_libraries(mqtt_client_test ${HV_LIBRARIES}) + + list(APPEND EXAMPLES mqtt_sub mqtt_pub mqtt_client_test) +endif() + +add_custom_target(examples DEPENDS ${EXAMPLES}) diff --git a/3rdPartner/libhv/examples/README.md b/3rdPartner/libhv/examples/README.md new file mode 100644 index 0000000..273f2e3 --- /dev/null +++ b/3rdPartner/libhv/examples/README.md @@ -0,0 +1,32 @@ +## 目录结构 + +``` +. +├── consul/ consul服务注册与发现 +├── httpd/ HTTP服务端 +├── jsonrpc/ json RPC示例 +├── mqtt/ MQTT发布订阅示例 +├── multi-thread/ 多线程网络编程示例 +├── nmap/ 网络扫描工具 +├── protorpc/ protobuf RPC示例 +├── curl.cpp HTTP请求工具 +├── hloop_test.c 事件循环测试代码 +├── hmain_test.cpp 命令行程序示例代码 +├── htimer_test.c 定时器测试代码 +├── http_client_test.c HTTP客户端测试代码 +├── http_server_test.c HTTP服务端测试代码 +├── nc.c 网络连接工具 +├── socks5_proxy_server.c SOCKS5代理服务 +├── tcp_chat_server.c TCP聊天服务 +├── tcp_echo_server.c TCP回显服务 +├── tcp_proxy_server.c TCP代理服务 +├── tinyhttpd.c 微型HTTP服务 +├── tinyproxyd.c 微型HTTP代理服务 +├── udp_echo_server.c UDP回显服务 +├── udp_proxy_server.c UDP代理服务 +├── websocket_client_test.c WebSocket客户端测试代码 +├── websocket_server_test.c WebSocket服务端测试代码 +├── wget.cpp HTTP文件下载工具 +└── wrk.cpp HTTP压测工具 + +``` diff --git a/3rdPartner/libhv/examples/consul/consul.cpp b/3rdPartner/libhv/examples/consul/consul.cpp new file mode 100644 index 0000000..4f410a8 --- /dev/null +++ b/3rdPartner/libhv/examples/consul/consul.cpp @@ -0,0 +1,144 @@ +#include "consul.h" + +#include "HttpClient.h" +using namespace hv; + +#include "json.hpp" +using json = nlohmann::json; + +#define PROTOCOL "http://" +#define API_VERSION "v1" + +static const char url_register[] = "/agent/service/register"; +static const char url_deregister[] = "/agent/service/deregister"; +static const char url_discover[] = "/catalog/service"; + +static std::string make_url(const char* ip, int port, const char* url) { + return asprintf(PROTOCOL "%s:%d/" API_VERSION "%s", ip, port, url); +} + +static std::string make_ServiceID(consul_service_t* service) { + return asprintf("%s-%s:%d", service->name, service->ip, service->port); +} + +/* +{ + "ID": "redis1", + "Name": "redis", + "Tags": [ + "primary", + "v1" + ], + "Address": "127.0.0.1", + "Port": 8000, + "Meta": { + "redis_version": "4.0" + }, + "EnableTagOverride": false, + "Check": { + "DeregisterCriticalServiceAfter": "90m", + "Args": ["/usr/local/bin/check_redis.py"], + "HTTP": "http://localhost:5000/health", + "Interval": "10s", + "TTL": "15s" + }, + "Weights": { + "Passing": 10, + "Warning": 1 + } +} + */ +int register_service(consul_node_t* node, consul_service_t* service, consul_health_t* health) { + HttpRequest req; + req.method = HTTP_PUT; + req.url = make_url(node->ip, node->port, url_register); + req.content_type = APPLICATION_JSON; + + json jservice; + jservice["Name"] = service->name; + if (*service->ip) { + jservice["Address"] = service->ip; + } + jservice["Port"] = service->port; + jservice["ID"] = make_ServiceID(service); + + json jcheck; + if (*health->url == '\0') { + snprintf(health->url, sizeof(health->url), "%s:%d", service->ip, service->port); + } + jcheck[health->protocol] = health->url; + jcheck["Interval"] = asprintf("%dms", health->interval); + jcheck["DeregisterCriticalServiceAfter"] = asprintf("%dms", health->interval * 3); + jservice["Check"] = jcheck; + + req.body = jservice.dump(); + printd("PUT %s\n", req.url.c_str()); + printd("%s\n", req.body.c_str()); + + HttpResponse res; + int ret = http_client_send(&req, &res); + printd("%s\n", res.body.c_str()); + return ret; +} + +int deregister_service(consul_node_t* node, consul_service_t* service) { + std::string url = make_url(node->ip, node->port, url_deregister); + url += '/'; + url += make_ServiceID(service); + + HttpRequest req; + req.method = HTTP_PUT; + req.url = url; + req.content_type = APPLICATION_JSON; + printd("PUT %s\n", req.url.c_str()); + + HttpResponse res; + int ret = http_client_send(&req, &res); + printd("%s\n", res.body.c_str()); + return ret; +} + +int discover_services(consul_node_t* node, const char* service_name, std::vector& services) { + std::string url = make_url(node->ip, node->port, url_discover); + url += '/'; + url += service_name; + + HttpRequest req; + req.method = HTTP_GET; + req.url = url; + + HttpResponse res; + printd("GET %s\n", req.url.c_str()); + int ret = http_client_send(&req, &res); + if (ret != 0) return ret; + printd("%s\n", res.body.c_str()); + + json jroot = json::parse(res.body); + if (!jroot.is_array()) return -1; + if (jroot.size() == 0) return 0; + + consul_service_t service; + std::string name, ip; + services.clear(); + for (size_t i = 0; i < jroot.size(); ++i) { + auto jservice = jroot[i]; + name = jservice["ServiceName"]; + if (jservice.contains("Address")) { + ip = jservice["Address"]; + } else if (jservice.contains("ServiceAddress")) { + ip = jservice["ServiceAddress"]; + } else if (jservice.contains("ServiceAddress6")) { + ip = jservice["ServiceAddress6"]; + } else { + continue; + } + int port = jservice["ServicePort"]; + + strncpy(service.name, name.c_str(), sizeof(service.name)); + strncpy(service.ip, ip.c_str(), sizeof(service.ip)); + service.port = port; + services.emplace_back(service); + } + + return 0; +} diff --git a/3rdPartner/libhv/examples/consul/consul.h b/3rdPartner/libhv/examples/consul/consul.h new file mode 100644 index 0000000..d02a0ae --- /dev/null +++ b/3rdPartner/libhv/examples/consul/consul.h @@ -0,0 +1,53 @@ +#ifndef CONSUL_H_ +#define CONSUL_H_ + +#include +#include + +typedef struct consul_node_s { + // node + char ip[64]; + int port; + + consul_node_s() { + strcpy(ip, "127.0.0.1"); + port = 8500; + } +} consul_node_t; + +typedef struct consul_service_s { + // service + char name[64]; + char ip[64]; + int port; + + consul_service_s() { + name[0] = '\0'; + strcpy(ip, "127.0.0.1"); + port = 0; + } +} consul_service_t; + +typedef struct consul_health_s { + // check + char protocol[32]; // TCP,HTTP + char url[256]; + char status[32]; // any,passing,warning,critical + + int interval; // ms + int timeout; // ms + + consul_health_s() { + strcpy(protocol, "TCP"); + url[0] = '\0'; + strcpy(status, "passing"); + interval = 10000; + timeout = 3000; + } +} consul_health_t; + +int register_service(consul_node_t* node, consul_service_t* service, consul_health_t* health); +int deregister_service(consul_node_t* node, consul_service_t* service); +int discover_services(consul_node_t* node, const char* service_name, std::vector& services); + +#endif // CONSUL_H_ diff --git a/3rdPartner/libhv/examples/consul/main.cpp b/3rdPartner/libhv/examples/consul/main.cpp new file mode 100644 index 0000000..867f988 --- /dev/null +++ b/3rdPartner/libhv/examples/consul/main.cpp @@ -0,0 +1,67 @@ +#include +#include +#include + +#include "consul.h" + +int main(int argc, char* argv[]) { + if (argc < 3) { + printf("Usage: consul_cli subcmd ServiceName [ServiceAddress ServicePort] [NodeIP NodePort]\n"); + printf("subcmd=[register,deregister,discover]\n"); + return -10; + } + const char* subcmd = argv[1]; + const char* ServiceName = argv[2]; + const char* ServiceAddress = "127.0.0.1"; + int ServicePort = 0; + const char* NodeIP = "127.0.0.1"; + int NodePort = 8500; + if (argc > 3) { + ServiceAddress = argv[3]; + } + if (argc > 4) { + ServicePort = atoi(argv[4]); + } + if (argc > 5) { + NodeIP = argv[5]; + } + if (argc > 6) { + NodePort = atoi(argv[6]); + } + + consul_node_t node; + strncpy(node.ip, NodeIP, sizeof(node.ip)); + node.port = NodePort; + + consul_service_t service; + strncpy(service.name, ServiceName, sizeof(service.name)); + strncpy(service.ip, ServiceAddress, sizeof(service.ip)); + service.port = ServicePort; + + consul_health_t health; + + if (strcmp(subcmd, "register") == 0) { + int ret = register_service(&node, &service, &health); + printf("register_service retval=%d\n", ret); + goto discover; + } + else if (strcmp(subcmd, "deregister") == 0) { + int ret = deregister_service(&node, &service); + printf("deregister_service retval=%d\n", ret); + goto discover; + } + else if (strcmp(subcmd, "discover") == 0) { +discover: + std::vector services; + discover_services(&node, ServiceName, services); + for (auto& service : services) { + printf("name=%s ip=%s port=%d\n", service.name, service.ip, service.port); + } + } + else { + printf("subcmd error!\n"); + return -20; + } + + return 0; +} diff --git a/3rdPartner/libhv/examples/curl.cpp b/3rdPartner/libhv/examples/curl.cpp new file mode 100644 index 0000000..b6d31ea --- /dev/null +++ b/3rdPartner/libhv/examples/curl.cpp @@ -0,0 +1,330 @@ +/* + * @build: make examples + * @server bin/httpd -s restart -d + * @usage: bin/curl -v www.baidu.com + * bin/curl -v 127.0.0.1:8080 + * bin/curl -v 127.0.0.1:8080/ping + * bin/curl -v 127.0.0.1:8080/echo -d 'hello,world!' + */ + +#include "HttpClient.h" +#include "hurl.h" + +#ifdef _MSC_VER +#include "misc/win32_getopt.h" +#else +#include +#endif + +static bool verbose = false; +static const char* method = NULL; +static const char* url = "/"; +static int http_version = 1; +static int grpc = 0; +static int send_count = 1; +static int retry_count = 0; +static int retry_delay = 3; +static int timeout = 0; + +static int lopt = 0; +static const char* http_proxy = NULL; +static const char* https_proxy = NULL; +static const char* no_proxy = NULL; + +static const char* options = "hVvX:H:r:d:F:n:"; +static const struct option long_options[] = { + {"help", no_argument, NULL, 'h'}, + {"verion", no_argument, NULL, 'V'}, + {"verbose", no_argument, NULL, 'v'}, + {"method", required_argument, NULL, 'X'}, + {"header", required_argument, NULL, 'H'}, + {"range", required_argument, NULL, 'r'}, + {"data", required_argument, NULL, 'd'}, + {"form", required_argument, NULL, 'F'}, + {"count", required_argument, NULL, 'n'}, + {"http2", no_argument, &http_version, 2}, + {"grpc", no_argument, &grpc, 1}, + \ + {"http-proxy", required_argument, &lopt, 1}, + {"https-proxy", required_argument, &lopt, 2}, + {"no-proxy", required_argument, &lopt, 3}, + {"retry", required_argument, &lopt, 4}, + {"delay", required_argument, &lopt, 5}, + {"timeout", required_argument, &lopt, 6}, + \ + {NULL, 0, NULL, 0} +}; +static const char* help = R"(Options: + -h|--help Print this message. + -V|--version Print version. + -v|--verbose Show verbose infomation. + -X|--method Set http method. + -H|--header Add http header, -H "Content-Type: application/json" + -r|--range Add http header Range:bytes=0-1023 + -d|--data Set http body. + -F|--form Set http form, -F "name=value" -F "file=@filename" + -n|--count Send request count, used for test keep-alive + --http2 Use http2 + --grpc Use grpc over http2 + --http-proxy Set http proxy + --https-proxy Set https proxy + --no-proxy Set no proxy + --retry Set fail retry count + --timeout Set timeout, unit(s) + +Examples: + curl -v GET httpbin.org/get + curl -v POST httpbin.org/post user=admin pswd=123456 + curl -v PUT httpbin.org/put user=admin pswd=123456 + curl -v localhost:8080 + curl -v localhost:8080 -r 0-9 + curl -v localhost:8080/ping + curl -v localhost:8080/query?page_no=1\&page_size=10 + curl -v localhost:8080/echo hello,world! + curl -v localhost:8080/kv user=admin\&pswd=123456 + curl -v localhost:8080/json user=admin pswd=123456 + curl -v localhost:8080/form -F file=@filename + curl -v localhost:8080/upload @filename +)"; + +static void print_usage() { + fprintf(stderr, "Usage: curl [%s] [METHOD] url [header_field:header_value] [body_key=body_value]\n", options); +} +static void print_version() { + fprintf(stderr, "curl version 1.0.0\n"); +} +static void print_help() { + print_usage(); + puts(help); + print_version(); +} + +static bool is_upper_string(const char* str) { + const char* p = str; + while (*p >= 'A' && *p <= 'Z') ++p; + return *p == '\0'; +} + +static int parse_data(char* arg, HttpRequest* req) { + char* pos = NULL; + // @filename + if (arg[0] == '@') { + req->File(arg + 1); + return 0; + } + + // k1=v1&k2=v2 + hv::KeyValue kvs = hv::splitKV(arg, '&', '='); + if (kvs.size() >= 2) { + if (req->ContentType() == CONTENT_TYPE_NONE) { + req->content_type = X_WWW_FORM_URLENCODED; + } + for (auto& kv : kvs) { + req->Set(kv.first.c_str(), kv.second); + } + return 0; + } + + // k=v + if ((pos = strchr(arg, '=')) != NULL) { + *pos = '\0'; + if (pos[1] == '@') { + // file=@filename + req->content_type = MULTIPART_FORM_DATA; + req->SetFormFile(optarg, pos + 2); + } else { + if (req->ContentType() == CONTENT_TYPE_NONE) { + req->content_type = APPLICATION_JSON; + } + req->Set(arg, pos + 1); + } + return 0; + } + + if (req->ContentType() == CONTENT_TYPE_NONE) { + req->content_type = TEXT_PLAIN; + } + req->body = arg; + return 0; +} + +static int parse_cmdline(int argc, char* argv[], HttpRequest* req) { + int opt; + int opt_idx; + char* pos = NULL; + while ((opt = getopt_long(argc, argv, options, long_options, &opt_idx)) != EOF) { + switch(opt) { + case 'h': print_help(); exit(0); + case 'V': print_version(); exit(0); + case 'v': verbose = true; break; + case 'X': method = optarg; break; + case 'H': + // -H "Content-Type: application/json" + pos = strchr(optarg, ':'); + if (pos) { + *pos = '\0'; + req->headers[optarg] = hv::trim(pos + 1); + *pos = ':'; + } + break; + case 'r': + req->headers["Range"] = std::string("bytes=").append(optarg); + break; + case 'd': + parse_data(optarg, req); + break; + case 'F': + pos = strchr(optarg, '='); + if (pos) { + req->content_type = MULTIPART_FORM_DATA; + *pos = '\0'; + if (pos[1] == '@') { + // -F file=@filename + req->SetFormFile(optarg, pos + 2); + } else { + // -F name=value + req->SetFormData(optarg, pos + 1); + } + *pos = '='; + } + break; + case 'n': send_count = atoi(optarg); break; + case 0 : + { + switch (lopt) { + case 1: http_proxy = optarg; break; + case 2: https_proxy = optarg; break; + case 3: no_proxy = optarg; break; + case 4: retry_count = atoi(optarg);break; + case 5: retry_delay = atoi(optarg);break; + case 6: timeout = atoi(optarg);break; + default: break; + } + } + default: break; + } + } + + if (optind == argc) { + fprintf(stderr, "Missing url\n"); + print_usage(); + exit(-1); + } + + if (is_upper_string(argv[optind])) { + method = argv[optind++]; + } + url = argv[optind++]; + + for (int d = optind; d < argc; ++d) { + char* arg = argv[d]; + if ((pos = strchr(arg, ':')) != NULL) { + *pos = '\0'; + req->headers[arg] = pos + 1; + } else { + parse_data(arg, req); + } + } + + // --grpc + if (grpc) { + http_version = 2; + req->content_type = APPLICATION_GRPC; + } + // --http2 + if (http_version == 2) { + req->http_major = 2; + req->http_minor = 0; + } + // --timeout + if (timeout > 0) { + req->timeout = timeout; + } + + return 0; +} + +int main(int argc, char* argv[]) { + if (argc < 2) { + print_usage(); + return 0; + } + + int ret = 0; + HttpRequest req; + parse_cmdline(argc, argv, &req); + if (method) { + req.method = http_method_enum(method); + } else { + req.DumpBody(); + if (req.body.empty()) { + req.method = HTTP_GET; + } else { + req.method = HTTP_POST; + } + } + req.url = hv::escapeURL(url); + req.http_cb = [](HttpMessage* res, http_parser_state state, const char* data, size_t size) { + if (state == HP_HEADERS_COMPLETE) { + if (verbose) { + fprintf(stderr, "%s", res->Dump(true, false).c_str()); + } + } else if (state == HP_BODY) { + if (data && size) { + printf("%.*s", (int)size, data); + // This program no need to save data to body. + // res->body.append(data, size); + } + } + }; + + hv::HttpClient cli; + // http_proxy + if (http_proxy) { + hv::StringList ss = hv::split(http_proxy, ':'); + const char* host = ss[0].c_str(); + int port = ss.size() == 2 ? hv::from_string(ss[1]) : DEFAULT_HTTP_PORT; + fprintf(stderr, "* http_proxy=%s:%d\n", host, port); + cli.setHttpProxy(host, port); + } + // https_proxy + if (https_proxy) { + hv::StringList ss = hv::split(https_proxy, ':'); + const char* host = ss[0].c_str(); + int port = ss.size() == 2 ? hv::from_string(ss[1]) : DEFAULT_HTTPS_PORT; + fprintf(stderr, "* https_proxy=%s:%d\n", host, port); + cli.setHttpsProxy(host, port); + } + // no_proxy + if (no_proxy) { + hv::StringList ss = hv::split(no_proxy, ','); + fprintf(stderr, "* no_proxy="); + for (const auto& s : ss) { + fprintf(stderr, "%s,", s.c_str()); + cli.addNoProxy(s.c_str()); + } + fprintf(stderr, "\n"); + } + +send: + if (verbose) { + fprintf(stderr, "%s\n", req.Dump(true, true).c_str()); + } + HttpResponse res; + ret = cli.send(&req, &res); + if (ret != 0) { + fprintf(stderr, "* Failed:%s:%d\n", http_client_strerror(ret), ret); + if (retry_count > 0) { + fprintf(stderr, "\nretry again later...%d\n", retry_count); + --retry_count; + hv_sleep(retry_delay); + goto send; + } + } + if (--send_count > 0) { + fprintf(stderr, "\nsend again later...%d\n", send_count); + hv_sleep(retry_delay); + goto send; + } + return ret; +} diff --git a/3rdPartner/libhv/examples/hloop_test.c b/3rdPartner/libhv/examples/hloop_test.c new file mode 100644 index 0000000..8c68552 --- /dev/null +++ b/3rdPartner/libhv/examples/hloop_test.c @@ -0,0 +1,118 @@ +/* + * @build: make examples + * @usage: bin/hloop_test + * bin/nc 127.0.0.1 10514 + * nc 127.0.0.1 10514 + * + */ + +#include "hloop.h" +#include "hbase.h" +#include "hlog.h" +#include "nlog.h" + +void mylogger(int loglevel, const char* buf, int len) { + if (loglevel >= LOG_LEVEL_ERROR) { + stderr_logger(loglevel, buf, len); + } + + if (loglevel >= LOG_LEVEL_INFO) { + file_logger(loglevel, buf, len); + } + + network_logger(loglevel, buf, len); +} + +void on_idle(hidle_t* idle) { + printf("on_idle: event_id=%llu\tpriority=%d\tuserdata=%ld\n", + LLU(hevent_id(idle)), hevent_priority(idle), (long)(intptr_t)(hevent_userdata(idle))); +} + +void on_timer(htimer_t* timer) { + hloop_t* loop = hevent_loop(timer); + printf("on_timer: event_id=%llu\tpriority=%d\tuserdata=%ld\ttime=%llus\thrtime=%lluus\n", + LLU(hevent_id(timer)), hevent_priority(timer), (long)(intptr_t)(hevent_userdata(timer)), + LLU(hloop_now(loop)), LLU(hloop_now_hrtime(loop))); +} + +void cron_minutely(htimer_t* timer) { + time_t now = time(NULL); + printf("cron_minutely: %s\n", ctime(&now)); +} + +void cron_hourly(htimer_t* timer) { + time_t now = time(NULL); + printf("cron_hourly: %s\n", ctime(&now)); +} + +void timer_write_log(htimer_t* timer) { + static int cnt = 0; + hlogd("[%d] Do you recv me?", ++cnt); + hlogi("[%d] Do you recv me?", ++cnt); + hloge("[%d] Do you recv me?", ++cnt); +} + +void on_stdin(hio_t* io, void* buf, int readbytes) { + printf("on_stdin fd=%d readbytes=%d\n", hio_fd(io), readbytes); + printf("> %s\n", (char*)buf); + if (strncmp((char*)buf, "quit", 4) == 0) { + hloop_stop(hevent_loop(io)); + } +} + +void on_custom_events(hevent_t* ev) { + printf("on_custom_events event_type=%d userdata=%ld\n", (int)ev->event_type, (long)(intptr_t)ev->userdata); +} + +int main() { + // memcheck atexit + HV_MEMCHECK; + + hloop_t* loop = hloop_new(0); + + // test idle and priority + for (int i = HEVENT_LOWEST_PRIORITY; i <= HEVENT_HIGHEST_PRIORITY; ++i) { + hidle_t* idle = hidle_add(loop, on_idle, 10); + hevent_set_priority(idle, i); + } + + // test timer timeout + for (int i = 1; i <= 10; ++i) { + htimer_t* timer = htimer_add(loop, on_timer, i*1000, 3); + hevent_set_userdata(timer, (void*)(intptr_t)i); + } + + // test timer period + int minute = time(NULL)%3600/60; + htimer_add_period(loop, cron_minutely, -1, -1, -1, -1, -1, INFINITE); + htimer_add_period(loop, cron_hourly, minute+1, -1, -1, -1, -1, INFINITE); + + // test network_logger + htimer_add(loop, timer_write_log, 1000, INFINITE); + hlog_set_handler(mylogger); + hlog_set_file("loop.log"); + hlog_set_format(DEFAULT_LOG_FORMAT); +#ifndef _MSC_VER + logger_enable_color(hlog, 1); +#endif + nlog_listen(loop, DEFAULT_LOG_PORT); + + // test nonblock stdin + printf("input 'quit' to quit loop\n"); + char buf[64]; + hread(loop, 0, buf, sizeof(buf), on_stdin); + + // test custom_events + for (int i = 0; i < 10; ++i) { + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.event_type = (hevent_type_e)(HEVENT_TYPE_CUSTOM + i); + ev.cb = on_custom_events; + ev.userdata = (void*)(intptr_t)i; + hloop_post_event(loop, &ev); + } + + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/hmain_test.cpp b/3rdPartner/libhv/examples/hmain_test.cpp new file mode 100644 index 0000000..886c6f2 --- /dev/null +++ b/3rdPartner/libhv/examples/hmain_test.cpp @@ -0,0 +1,257 @@ +#include "hv.h" +#include "hmain.h" +#include "iniparser.h" + +/* + * @build: make examples + * @usage: bin/hmain_test -h + * bin/hmain_test -v + * + * bin/hmain_test -c etc/hmain_test.conf -d + * ps aux | grep hmain_test + * + * bin/hmain_test -s stop + * ps aux | grep hmain_test + * + */ + +typedef struct conf_ctx_s { + IniParser* parser; + int loglevel; + int worker_processes; + int worker_threads; + int port; +} conf_ctx_t; +conf_ctx_t g_conf_ctx; + +inline void conf_ctx_init(conf_ctx_t* ctx) { + ctx->parser = new IniParser; + ctx->loglevel = LOG_LEVEL_DEBUG; + ctx->worker_processes = 0; + ctx->worker_threads = 0; + ctx->port = 0; +} + +static void print_version(); +static void print_help(); + +static int parse_confile(const char* confile); +static void worker_fn(void* userdata); + +// short options +static const char options[] = "hvc:ts:dp:"; +// long options +static const option_t long_options[] = { + {'h', "help", NO_ARGUMENT}, + {'v', "version", NO_ARGUMENT}, + {'c', "confile", REQUIRED_ARGUMENT}, + {'t', "test", NO_ARGUMENT}, + {'s', "signal", REQUIRED_ARGUMENT}, + {'d', "daemon", NO_ARGUMENT}, + {'p', "port", REQUIRED_ARGUMENT} +}; +static const char detail_options[] = R"( + -h|--help Print this information + -v|--version Print version + -c|--confile Set configure file, default etc/{program}.conf + -t|--test Test configure file and exit + -s|--signal Send to process, + =[start,stop,restart,status,reload] + -d|--daemon Daemonize + -p|--port Set listen port +)"; + +void print_version() { + printf("%s version %s\n", g_main_ctx.program_name, hv_compile_version()); +} + +void print_help() { + printf("Usage: %s [%s]\n", g_main_ctx.program_name, options); + printf("Options:\n%s\n", detail_options); +} + +int parse_confile(const char* confile) { + int ret = g_conf_ctx.parser->LoadFromFile(confile); + if (ret != 0) { + printf("Load confile [%s] failed: %d\n", confile, ret); + exit(-40); + } + + // logfile + std::string str = g_conf_ctx.parser->GetValue("logfile"); + if (!str.empty()) { + strncpy(g_main_ctx.logfile, str.c_str(), sizeof(g_main_ctx.logfile)); + } + hlog_set_file(g_main_ctx.logfile); + // loglevel + str = g_conf_ctx.parser->GetValue("loglevel"); + if (!str.empty()) { + hlog_set_level_by_str(str.c_str()); + } + // log_filesize + str = g_conf_ctx.parser->GetValue("log_filesize"); + if (!str.empty()) { + hlog_set_max_filesize_by_str(str.c_str()); + } + // log_remain_days + str = g_conf_ctx.parser->GetValue("log_remain_days"); + if (!str.empty()) { + hlog_set_remain_days(atoi(str.c_str())); + } + // log_fsync + str = g_conf_ctx.parser->GetValue("log_fsync"); + if (!str.empty()) { + logger_enable_fsync(hlog, hv_getboolean(str.c_str())); + } + // first log here + hlogi("%s version: %s", g_main_ctx.program_name, hv_compile_version()); + hlog_fsync(); + + // worker_processes + int worker_processes = 0; +#ifdef DEBUG + // Disable multi-processes mode for debugging + worker_processes = 0; +#else + str = g_conf_ctx.parser->GetValue("worker_processes"); + if (str.size() != 0) { + if (strcmp(str.c_str(), "auto") == 0) { + worker_processes = get_ncpu(); + hlogd("worker_processes=ncpu=%d", worker_processes); + } + else { + worker_processes = atoi(str.c_str()); + } + } +#endif + g_conf_ctx.worker_processes = LIMIT(0, worker_processes, MAXNUM_WORKER_PROCESSES); + // worker_threads + int worker_threads = 0; + str = g_conf_ctx.parser->GetValue("worker_threads"); + if (str.size() != 0) { + if (strcmp(str.c_str(), "auto") == 0) { + worker_threads = get_ncpu(); + hlogd("worker_threads=ncpu=%d", worker_threads); + } + else { + worker_threads = atoi(str.c_str()); + } + } + g_conf_ctx.worker_threads = LIMIT(0, worker_threads, 64); + + // port + int port = 0; + const char* szPort = get_arg("p"); + if (szPort) { + port = atoi(szPort); + } + if (port == 0) { + port = g_conf_ctx.parser->Get("port"); + } + if (port == 0) { + printf("Please config listen port!\n"); + exit(-10); + } + g_conf_ctx.port = port; + + hlogi("parse_confile('%s') OK", confile); + return 0; +} + +static void on_reload(void* userdata) { + hlogi("reload confile [%s]", g_main_ctx.confile); + parse_confile(g_main_ctx.confile); +} + +int main(int argc, char** argv) { + // g_main_ctx + main_ctx_init(argc, argv); + if (argc == 1) { + print_help(); + exit(10); + } + // int ret = parse_opt(argc, argv, options); + int ret = parse_opt_long(argc, argv, long_options, ARRAY_SIZE(long_options)); + if (ret != 0) { + print_help(); + exit(ret); + } + + /* + printf("---------------arg------------------------------\n"); + printf("%s\n", g_main_ctx.cmdline); + for (int i = 0; i < g_main_ctx.arg_kv_size; ++i) { + printf("%s\n", g_main_ctx.arg_kv[i]); + } + for (int i = 0; i < g_main_ctx.arg_list_size; ++i) { + printf("%s\n", g_main_ctx.arg_list[i]); + } + printf("================================================\n"); + + printf("---------------env------------------------------\n"); + for (int i = 0; i < g_main_ctx.envc; ++i) { + printf("%s\n", g_main_ctx.save_envp[i]); + } + printf("================================================\n"); + */ + + // help + if (get_arg("h")) { + print_help(); + exit(0); + } + + // version + if (get_arg("v")) { + print_version(); + exit(0); + } + + // g_conf_ctx + conf_ctx_init(&g_conf_ctx); + const char* confile = get_arg("c"); + if (confile) { + strncpy(g_main_ctx.confile, confile, sizeof(g_main_ctx.confile)); + } + parse_confile(g_main_ctx.confile); + + // test + if (get_arg("t")) { + printf("Test confile [%s] OK!\n", g_main_ctx.confile); + exit(0); + } + + // signal + signal_init(on_reload); + const char* signal = get_arg("s"); + if (signal) { + signal_handle(signal); + } + +#ifdef OS_UNIX + // daemon + if (get_arg("d")) { + // nochdir, noclose + int ret = daemon(1, 1); + if (ret != 0) { + printf("daemon error: %d\n", ret); + exit(-10); + } + } +#endif + + // pidfile + create_pidfile(); + + master_workers_run(worker_fn, (void*)(intptr_t)g_conf_ctx.port, g_conf_ctx.worker_processes, g_conf_ctx.worker_threads); + + return 0; +} + +void worker_fn(void* userdata) { + long port = (long)(intptr_t)(userdata); + while (1) { + printf("port=%ld pid=%ld tid=%ld\n", port, hv_getpid(), hv_gettid()); + hv_delay(60000); + } +} diff --git a/3rdPartner/libhv/examples/htimer_test.c b/3rdPartner/libhv/examples/htimer_test.c new file mode 100644 index 0000000..2272d1b --- /dev/null +++ b/3rdPartner/libhv/examples/htimer_test.c @@ -0,0 +1,60 @@ +#include "hloop.h" +#include "hbase.h" + +void on_timer(htimer_t* timer) { + printf("time=%llus on_timer\n", LLU(hloop_now(hevent_loop(timer)))); +} + +// test htimer_add +void on_timer_add(htimer_t* timer) { + printf("time=%llus on_timer_add\n", LLU(hloop_now(hevent_loop(timer)))); + htimer_add(hevent_loop(timer), on_timer_add, 1000, 1); +} + +// test htimer_del +void on_timer_del(htimer_t* timer) { + printf("time=%llus on_timer_del\n", LLU(hloop_now(hevent_loop(timer)))); + htimer_del(timer); +} + +// test htimer_reset +void on_timer_reset(htimer_t* timer) { + printf("time=%llus on_timer_reset\n", LLU(hloop_now(hevent_loop(timer)))); + htimer_reset((htimer_t*)hevent_userdata(timer), 0); +} + +// test hloop_stop +void on_timer_quit(htimer_t* timer) { + printf("time=%llus on_timer_quit\n", LLU(hloop_now(hevent_loop(timer)))); + hloop_stop(hevent_loop(timer)); +} + +// test cron +void cron_hourly(htimer_t* timer) { + time_t tt = time(NULL); + printf("time=%llus cron_hourly: %s\n", LLU(hloop_now(hevent_loop(timer))), ctime(&tt)); +} + +int main() { + HV_MEMCHECK; + hloop_t* loop = hloop_new(0); + + htimer_add(loop, on_timer_add, 1000, 1); + htimer_add(loop, on_timer_del, 1000, 10); + htimer_t* reseted = htimer_add(loop, on_timer, 5000, 1); + htimer_t* reset = htimer_add(loop, on_timer_reset, 1000, 5); + hevent_set_userdata(reset, reseted); + + // cron_hourly next triggered in one minute + int minute = time(NULL)%3600/60; + htimer_add_period(loop, cron_hourly, minute+1, -1, -1, -1, -1, INFINITE); + + // quit application after 1 min + htimer_add(loop, on_timer_quit, 60000, 1); + + printf("time=%llus begin\n", LLU(hloop_now(loop))); + hloop_run(loop); + printf("time=%llus stop\n", LLU(hloop_now(loop))); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/http_client_test.cpp b/3rdPartner/libhv/examples/http_client_test.cpp new file mode 100644 index 0000000..5d7bbc4 --- /dev/null +++ b/3rdPartner/libhv/examples/http_client_test.cpp @@ -0,0 +1,187 @@ +/* + * @build make examples + * + * @server bin/http_server_test 8080 + * + * @client bin/http_client_test + * + */ + +#include "requests.h" +#include "axios.h" +using namespace hv; + +#include "hthread.h" // import hv_gettid + +static void test_http_async_client(HttpClient* cli, int* resp_cnt) { + printf("test_http_async_client request thread tid=%ld\n", hv_gettid()); + auto req = std::make_shared(); + req->method = HTTP_POST; + req->url = "http://127.0.0.1:8080/echo"; + req->headers["Connection"] = "keep-alive"; + req->body = "This is an async request."; + req->timeout = 10; + cli->sendAsync(req, [resp_cnt](const HttpResponsePtr& resp) { + printf("test_http_async_client response thread tid=%ld\n", hv_gettid()); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + *resp_cnt += 1; + }); +} + +static void test_http_sync_client(HttpClient* cli) { + HttpRequest req; + req.method = HTTP_POST; + req.url = "http://127.0.0.1:8080/echo"; + req.headers["Connection"] = "keep-alive"; + req.body = "This is a sync request."; + req.timeout = 10; + HttpResponse resp; + int ret = cli->send(&req, &resp); + if (ret != 0) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp.status_code, resp.status_message()); + printf("%s\n", resp.body.c_str()); + } +} + +static void test_requests() { + // auto resp = requests::get("http://www.example.com"); + // + // make clean && make WITH_OPENSSL=yes + // auto resp = requests::get("https://www.baidu.com"); + + auto resp = requests::get("http://127.0.0.1:8080/ping"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + // Content-Type: application/json + hv::Json jroot; + jroot["user"] = "admin"; + jroot["pswd"] = "123456"; + http_headers headers; + headers["Content-Type"] = "application/json"; + resp = requests::post("http://127.0.0.1:8080/echo", jroot.dump(), headers); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + // Content-Type: multipart/form-data + std::map params; + params["user"] = "admin"; + params["pswd"] = "123456"; + resp = requests::uploadFormFile("http://127.0.0.1:8080/echo", "avatar", "avatar.jpg", params); + if (resp == NULL) { + printf("uploadFormFile failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + /* + size_t filesize = requests::downloadFile("http://www.example.com/index.html", "index.html"); + if (filesize == 0) { + printf("downloadFile failed!\n"); + } else { + printf("downloadFile success!\n"); + } + */ + + // async + /* + // auto req = std::make_shared(); + req->url = "http://127.0.0.1:8080/echo"; + req->method = HTTP_POST; + req->body = "This is an async request."; + req->timeout = 10; + requests::async(req, [](const HttpResponsePtr& resp) { + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + }); + */ +} + +static void test_axios() { + const char* strReq = R"( + { + "method": "POST", + "url": "http://127.0.0.1:8080/echo", + "timeout": 10, + "params": { + "page_no": "1", + "page_size": "10" + }, + "headers": { + "Content-Type": "application/json" + }, + "body": { + "app_id": "123456", + "app_secret": "abcdefg" + } + } + )"; + + // sync + auto resp = axios::axios(strReq); + // auto resp = axios::post("http://127.0.0.1:8080/echo", strReq); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + // async + /* + axios::axios(strReq, [](const HttpResponsePtr& resp) { + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + }); + */ +} + +int main(int argc, char* argv[]) { + int req_cnt = 0; + if (argc > 1) req_cnt = atoi(argv[1]); + if (req_cnt == 0) req_cnt = 1; + + HttpClient sync_client; + HttpClient async_client; + int resp_cnt = 0; + + for (int i = 0; i < req_cnt; ++i) { + test_http_async_client(&async_client, &resp_cnt); + + test_http_sync_client(&sync_client); + + test_requests(); + + test_axios(); + } + + // demo wait async finished + while (resp_cnt < req_cnt) hv_delay(100); + printf("finished!\n"); + + return 0; +} diff --git a/3rdPartner/libhv/examples/http_server_test.cpp b/3rdPartner/libhv/examples/http_server_test.cpp new file mode 100644 index 0000000..2b01c00 --- /dev/null +++ b/3rdPartner/libhv/examples/http_server_test.cpp @@ -0,0 +1,134 @@ +/* + * sample http server + * more detail see examples/httpd + * + */ + +#include "HttpServer.h" +#include "hthread.h" // import hv_gettid +#include "hasync.h" // import hv::async + +using namespace hv; + +/* + * #define TEST_HTTPS 1 + * + * @build ./configure --with-openssl && make clean && make + * + * @server bin/http_server_test 8080 + * + * @client curl -v http://127.0.0.1:8080/ping + * curl -v https://127.0.0.1:8443/ping --insecure + * bin/curl -v http://127.0.0.1:8080/ping + * bin/curl -v https://127.0.0.1:8443/ping + * + */ +#define TEST_HTTPS 0 + +int main(int argc, char** argv) { + HV_MEMCHECK; + + int port = 0; + if (argc > 1) { + port = atoi(argv[1]); + } + if (port == 0) port = 8080; + + HttpService router; + + /* Static file service */ + // curl -v http://ip:port/ + router.Static("/", "./html"); + + /* Forward proxy service */ + router.EnableForwardProxy(); + // curl -v http://httpbin.org/get --proxy http://127.0.0.1:8080 + router.AddTrustProxy("*httpbin.org"); + + /* Reverse proxy service */ + // curl -v http://ip:port/httpbin/get + router.Proxy("/httpbin/", "http://httpbin.org/"); + + /* API handlers */ + // curl -v http://ip:port/ping + router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { + return resp->String("pong"); + }); + + // curl -v http://ip:port/data + router.GET("/data", [](HttpRequest* req, HttpResponse* resp) { + static char data[] = "0123456789"; + return resp->Data(data, 10 /*, false */); + }); + + // curl -v http://ip:port/paths + router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) { + return resp->Json(router.Paths()); + }); + + // curl -v http://ip:port/get?env=1 + router.GET("/get", [](const HttpContextPtr& ctx) { + hv::Json resp; + resp["origin"] = ctx->ip(); + resp["url"] = ctx->url(); + resp["args"] = ctx->params(); + resp["headers"] = ctx->headers(); + return ctx->send(resp.dump(2)); + }); + + // curl -v http://ip:port/echo -d "hello,world!" + router.POST("/echo", [](const HttpContextPtr& ctx) { + return ctx->send(ctx->body(), ctx->type()); + }); + + // curl -v http://ip:port/user/123 + router.GET("/user/{id}", [](const HttpContextPtr& ctx) { + hv::Json resp; + resp["id"] = ctx->param("id"); + return ctx->send(resp.dump(2)); + }); + + // curl -v http://ip:port/async + router.GET("/async", [](const HttpRequestPtr& req, const HttpResponseWriterPtr& writer) { + writer->Begin(); + writer->WriteHeader("X-Response-tid", hv_gettid()); + writer->WriteHeader("Content-Type", "text/plain"); + writer->WriteBody("This is an async response.\n"); + writer->End(); + }); + + // middleware + router.AllowCORS(); + router.Use([](HttpRequest* req, HttpResponse* resp) { + resp->SetHeader("X-Request-tid", hv::to_string(hv_gettid())); + return HTTP_STATUS_NEXT; + }); + + HttpServer server; + server.service = &router; + server.port = port; +#if TEST_HTTPS + server.https_port = 8443; + hssl_ctx_opt_t param; + memset(¶m, 0, sizeof(param)); + param.crt_file = "cert/server.crt"; + param.key_file = "cert/server.key"; + param.endpoint = HSSL_SERVER; + if (server.newSslCtx(¶m) != 0) { + fprintf(stderr, "new SSL_CTX failed!\n"); + return -20; + } +#endif + + // uncomment to test multi-processes + // server.setProcessNum(4); + // uncomment to test multi-threads + // server.setThreadNum(4); + + server.start(); + + // press Enter to stop + while (getchar() != '\n'); + hv::async::cleanup(); + return 0; +} diff --git a/3rdPartner/libhv/examples/httpd/handler.cpp b/3rdPartner/libhv/examples/httpd/handler.cpp new file mode 100644 index 0000000..cccc1a3 --- /dev/null +++ b/3rdPartner/libhv/examples/httpd/handler.cpp @@ -0,0 +1,370 @@ +#include "handler.h" + +#include // import std::thread +#include // import std::chrono + +#include "hbase.h" +#include "htime.h" +#include "hfile.h" +#include "hstring.h" +#include "EventLoop.h" // import setTimeout, setInterval + +int Handler::preprocessor(HttpRequest* req, HttpResponse* resp) { + // printf("%s:%d\n", req->client_addr.ip.c_str(), req->client_addr.port); + // printf("%s\n", req->Dump(true, true).c_str()); + +#if REDIRECT_HTTP_TO_HTTPS + // 301 + if (req->scheme == "http") { + std::string location = hv::asprintf("https://%s:%d%s", req->host.c_str(), 8443, req->path.c_str()); + return resp->Redirect(location, HTTP_STATUS_MOVED_PERMANENTLY); + } +#endif + + // Unified verification request Content-Type? + // if (req->content_type != APPLICATION_JSON) { + // return response_status(resp, HTTP_STATUS_BAD_REQUEST); + // } + + // Deserialize request body to json, form, etc. + req->ParseBody(); + + // Unified setting response Content-Type? + resp->content_type = APPLICATION_JSON; + + return HTTP_STATUS_NEXT; +} + +int Handler::postprocessor(HttpRequest* req, HttpResponse* resp) { + // printf("%s\n", resp->Dump(true, true).c_str()); + return resp->status_code; +} + +int Handler::errorHandler(const HttpContextPtr& ctx) { + int error_code = ctx->response->status_code; + return response_status(ctx, error_code); +} + +int Handler::Authorization(HttpRequest* req, HttpResponse* resp) { + // authentication sample code + if (strcmp(req->path.c_str(), "/login") == 0) { + return HTTP_STATUS_NEXT; + } + std::string token = req->GetHeader("Authorization"); + if (token.empty()) { + response_status(resp, 10011, "Miss Authorization header!"); + return HTTP_STATUS_UNAUTHORIZED; + } + else if (strcmp(token.c_str(), "abcdefg") != 0) { + response_status(resp, 10012, "Authorization failed!"); + return HTTP_STATUS_UNAUTHORIZED; + } + return HTTP_STATUS_NEXT; +} + +int Handler::sleep(const HttpRequestPtr& req, const HttpResponseWriterPtr& writer) { + writer->WriteHeader("X-Response-tid", hv_gettid()); + unsigned long long start_ms = gettimeofday_ms(); + writer->response->Set("start_ms", start_ms); + std::string strTime = req->GetParam("t", "1000"); + if (!strTime.empty()) { + int ms = atoi(strTime.c_str()); + if (ms > 0) { + hv_delay(ms); + } + } + unsigned long long end_ms = gettimeofday_ms(); + writer->response->Set("end_ms", end_ms); + writer->response->Set("cost_ms", end_ms - start_ms); + response_status(writer, 0, "OK"); + return 200; +} + +int Handler::setTimeout(const HttpContextPtr& ctx) { + unsigned long long start_ms = gettimeofday_ms(); + ctx->set("start_ms", start_ms); + std::string strTime = ctx->param("t", "1000"); + if (!strTime.empty()) { + int ms = atoi(strTime.c_str()); + if (ms > 0) { + hv::setTimeout(ms, [ctx, start_ms](hv::TimerID timerID){ + unsigned long long end_ms = gettimeofday_ms(); + ctx->set("end_ms", end_ms); + ctx->set("cost_ms", end_ms - start_ms); + response_status(ctx, 0, "OK"); + }); + } + } + return HTTP_STATUS_UNFINISHED; +} + +int Handler::query(const HttpContextPtr& ctx) { + // scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] + // ?query => HttpRequest::query_params + for (auto& param : ctx->params()) { + ctx->set(param.first.c_str(), param.second); + } + response_status(ctx, 0, "OK"); + return 200; +} + +int Handler::kv(HttpRequest* req, HttpResponse* resp) { + if (req->content_type != APPLICATION_URLENCODED) { + return response_status(resp, HTTP_STATUS_BAD_REQUEST); + } + resp->content_type = APPLICATION_URLENCODED; + resp->kv = req->GetUrlEncoded(); + resp->SetUrlEncoded("int", 123); + resp->SetUrlEncoded("float", 3.14); + resp->SetUrlEncoded("string", "hello"); + return 200; +} + +int Handler::json(HttpRequest* req, HttpResponse* resp) { + if (req->content_type != APPLICATION_JSON) { + return response_status(resp, HTTP_STATUS_BAD_REQUEST); + } + resp->content_type = APPLICATION_JSON; + resp->json = req->GetJson(); + resp->json["int"] = 123; + resp->json["float"] = 3.14; + resp->json["string"] = "hello"; + return 200; +} + +int Handler::form(HttpRequest* req, HttpResponse* resp) { + if (req->content_type != MULTIPART_FORM_DATA) { + return response_status(resp, HTTP_STATUS_BAD_REQUEST); + } + resp->content_type = MULTIPART_FORM_DATA; + resp->form = req->GetForm(); + resp->SetFormData("int", 123); + resp->SetFormData("float", 3.14); + resp->SetFormData("string", "hello"); + // resp->SetFormFile("file", "test.jpg"); + return 200; +} + +int Handler::grpc(HttpRequest* req, HttpResponse* resp) { + if (req->content_type != APPLICATION_GRPC) { + return response_status(resp, HTTP_STATUS_BAD_REQUEST); + } + // parse protobuf + // ParseFromString(req->body); + // resp->content_type = APPLICATION_GRPC; + // serailize protobuf + // resp->body = SerializeAsString(xxx); + response_status(resp, 0, "OK"); + return 200; +} + +int Handler::test(const HttpContextPtr& ctx) { + ctx->setContentType(ctx->type()); + ctx->set("bool", ctx->get("bool")); + ctx->set("int", ctx->get("int")); + ctx->set("float", ctx->get("float")); + ctx->set("string", ctx->get("string")); + response_status(ctx, 0, "OK"); + return 200; +} + +int Handler::restful(const HttpContextPtr& ctx) { + // RESTful /:field/ => HttpRequest::query_params + // path=/group/:group_name/user/:user_id + std::string group_name = ctx->param("group_name"); + std::string user_id = ctx->param("user_id"); + ctx->set("group_name", group_name); + ctx->set("user_id", user_id); + response_status(ctx, 0, "OK"); + return 200; +} + +int Handler::login(const HttpContextPtr& ctx) { + std::string username = ctx->get("username"); + std::string password = ctx->get("password"); + if (username.empty() || password.empty()) { + response_status(ctx, 10001, "Miss username or password"); + return HTTP_STATUS_BAD_REQUEST; + } + else if (strcmp(username.c_str(), "admin") != 0) { + response_status(ctx, 10002, "Username not exist"); + return HTTP_STATUS_BAD_REQUEST; + } + else if (strcmp(password.c_str(), "123456") != 0) { + response_status(ctx, 10003, "Password wrong"); + return HTTP_STATUS_BAD_REQUEST; + } + else { + ctx->set("token", "abcdefg"); + response_status(ctx, 0, "OK"); + return HTTP_STATUS_OK; + } +} + +int Handler::upload(const HttpContextPtr& ctx) { + int status_code = 200; + std::string save_path = "html/uploads/"; + if (ctx->is(MULTIPART_FORM_DATA)) { + status_code = ctx->request->SaveFormFile("file", save_path.c_str()); + } else { + std::string filename = ctx->param("filename", "unnamed.txt"); + std::string filepath = save_path + filename; + status_code = ctx->request->SaveFile(filepath.c_str()); + } + return response_status(ctx, status_code); +} + +int Handler::recvLargeFile(const HttpContextPtr& ctx, http_parser_state state, const char* data, size_t size) { + // printf("recvLargeFile state=%d\n", (int)state); + int status_code = HTTP_STATUS_UNFINISHED; + HFile* file = (HFile*)ctx->userdata; + switch (state) { + case HP_HEADERS_COMPLETE: + { + if (ctx->is(MULTIPART_FORM_DATA)) { + // NOTE: You can use multipart_parser if you want to use multipart/form-data. + ctx->close(); + return HTTP_STATUS_BAD_REQUEST; + } + std::string save_path = "html/uploads/"; + std::string filename = ctx->param("filename", "unnamed.txt"); + std::string filepath = save_path + filename; + file = new HFile; + if (file->open(filepath.c_str(), "wb") != 0) { + ctx->close(); + return HTTP_STATUS_INTERNAL_SERVER_ERROR; + } + ctx->userdata = file; + } + break; + case HP_BODY: + { + if (file && data && size) { + if (file->write(data, size) != size) { + ctx->close(); + return HTTP_STATUS_INTERNAL_SERVER_ERROR; + } + } + } + break; + case HP_MESSAGE_COMPLETE: + { + status_code = HTTP_STATUS_OK; + ctx->setContentType(APPLICATION_JSON); + response_status(ctx, status_code); + if (file) { + delete file; + ctx->userdata = NULL; + } + } + break; + case HP_ERROR: + { + if (file) { + file->remove(); + delete file; + ctx->userdata = NULL; + } + } + break; + default: + break; + } + return status_code; +} + +int Handler::sendLargeFile(const HttpContextPtr& ctx) { + std::thread([ctx](){ + ctx->writer->Begin(); + std::string filepath = ctx->service->document_root + ctx->request->Path(); + HFile file; + if (file.open(filepath.c_str(), "rb") != 0) { + ctx->writer->WriteStatus(HTTP_STATUS_NOT_FOUND); + ctx->writer->WriteHeader("Content-Type", "text/html"); + ctx->writer->WriteBody("

404 Not Found

"); + ctx->writer->End(); + return; + } + http_content_type content_type = CONTENT_TYPE_NONE; + const char* suffix = hv_suffixname(filepath.c_str()); + if (suffix) { + content_type = http_content_type_enum_by_suffix(suffix); + } + if (content_type == CONTENT_TYPE_NONE || content_type == CONTENT_TYPE_UNDEFINED) { + content_type = APPLICATION_OCTET_STREAM; + } + size_t filesize = file.size(); + ctx->writer->WriteHeader("Content-Type", http_content_type_str(content_type)); +#if USE_TRANSFER_ENCODING_CHUNKED + ctx->writer->WriteHeader("Transfer-Encoding", "chunked"); +#else + ctx->writer->WriteHeader("Content-Length", filesize); +#endif + ctx->writer->EndHeaders(); + + char* buf = NULL; + int len = 40960; // 40K + SAFE_ALLOC(buf, len); + size_t total_readbytes = 0; + int last_progress = 0; + int sleep_ms_per_send = 0; + if (ctx->service->limit_rate <= 0) { + // unlimited + } else { + sleep_ms_per_send = len * 1000 / 1024 / ctx->service->limit_rate; + } + if (sleep_ms_per_send == 0) sleep_ms_per_send = 1; + int sleep_ms = sleep_ms_per_send; + auto start_time = std::chrono::steady_clock::now(); + auto end_time = start_time; + while (total_readbytes < filesize) { + if (!ctx->writer->isConnected()) { + break; + } + if (!ctx->writer->isWriteComplete()) { + hv_delay(1); + continue; + } + size_t readbytes = file.read(buf, len); + if (readbytes <= 0) { + // read file error! + ctx->writer->close(); + break; + } + int nwrite = ctx->writer->WriteBody(buf, readbytes); + if (nwrite < 0) { + // disconnected! + break; + } + total_readbytes += readbytes; + int cur_progress = total_readbytes * 100 / filesize; + if (cur_progress > last_progress) { + // printf("<< %s progress: %ld/%ld = %d%%\n", + // ctx->request->path.c_str(), (long)total_readbytes, (long)filesize, (int)cur_progress); + last_progress = cur_progress; + } + end_time += std::chrono::milliseconds(sleep_ms); + std::this_thread::sleep_until(end_time); + } + ctx->writer->End(); + SAFE_FREE(buf); + // auto elapsed_time = std::chrono::duration_cast(end_time - start_time); + // printf("<< %s taked %ds\n", ctx->request->path.c_str(), (int)elapsed_time.count()); + }).detach(); + return HTTP_STATUS_UNFINISHED; +} + +int Handler::sse(const HttpContextPtr& ctx) { + // SSEvent(message) every 1s + hv::setInterval(1000, [ctx](hv::TimerID timerID) { + if (ctx->writer->isConnected()) { + char szTime[DATETIME_FMT_BUFLEN] = {0}; + datetime_t now = datetime_now(); + datetime_fmt(&now, szTime); + ctx->writer->SSEvent(szTime); + } else { + hv::killTimer(timerID); + } + }); + return HTTP_STATUS_UNFINISHED; +} diff --git a/3rdPartner/libhv/examples/httpd/handler.h b/3rdPartner/libhv/examples/httpd/handler.h new file mode 100644 index 0000000..40f2689 --- /dev/null +++ b/3rdPartner/libhv/examples/httpd/handler.h @@ -0,0 +1,56 @@ +#ifndef HV_HTTPD_HANDLER_H +#define HV_HTTPD_HANDLER_H + +#include "HttpService.h" + +class Handler { +public: + // preprocessor => middleware -> handlers => postprocessor + static int preprocessor(HttpRequest* req, HttpResponse* resp); + static int postprocessor(HttpRequest* req, HttpResponse* resp); + static int errorHandler(const HttpContextPtr& ctx); + + // middleware + static int Authorization(HttpRequest* req, HttpResponse* resp); + + static int sleep(const HttpRequestPtr& req, const HttpResponseWriterPtr& writer); + static int setTimeout(const HttpContextPtr& ctx); + static int query(const HttpContextPtr& ctx); + + static int kv(HttpRequest* req, HttpResponse* resp); + static int json(HttpRequest* req, HttpResponse* resp); + static int form(HttpRequest* req, HttpResponse* resp); + static int grpc(HttpRequest* req, HttpResponse* resp); + + static int test(const HttpContextPtr& ctx); + static int restful(const HttpContextPtr& ctx); + + static int login(const HttpContextPtr& ctx); + static int upload(const HttpContextPtr& ctx); + // SSE: Server Send Events + static int sse(const HttpContextPtr& ctx); + + // LargeFile + static int sendLargeFile(const HttpContextPtr& ctx); + static int recvLargeFile(const HttpContextPtr& ctx, http_parser_state state, const char* data, size_t size); + +private: + static int response_status(HttpResponse* resp, int code = 200, const char* message = NULL) { + if (message == NULL) message = http_status_str((enum http_status)code); + resp->Set("code", code); + resp->Set("message", message); + return code; + } + static int response_status(const HttpResponseWriterPtr& writer, int code = 200, const char* message = NULL) { + response_status(writer->response.get(), code, message); + writer->End(); + return code; + } + static int response_status(const HttpContextPtr& ctx, int code = 200, const char* message = NULL) { + response_status(ctx->response.get(), code, message); + ctx->send(); + return code; + } +}; + +#endif // HV_HTTPD_HANDLER_H diff --git a/3rdPartner/libhv/examples/httpd/httpd.cpp b/3rdPartner/libhv/examples/httpd/httpd.cpp new file mode 100644 index 0000000..443a0a8 --- /dev/null +++ b/3rdPartner/libhv/examples/httpd/httpd.cpp @@ -0,0 +1,352 @@ +#include "hv.h" +#include "hssl.h" +#include "hmain.h" +#include "iniparser.h" + +#include "HttpServer.h" +#include "hasync.h" // import hv::async + +#include "router.h" + +hv::HttpServer g_http_server; +hv::HttpService g_http_service; + +static void print_version(); +static void print_help(); + +static int parse_confile(const char* confile); + +// short options +static const char options[] = "hvc:ts:dp:"; +// long options +static const option_t long_options[] = { + {'h', "help", NO_ARGUMENT}, + {'v', "version", NO_ARGUMENT}, + {'c', "confile", REQUIRED_ARGUMENT}, + {'t', "test", NO_ARGUMENT}, + {'s', "signal", REQUIRED_ARGUMENT}, + {'d', "daemon", NO_ARGUMENT}, + {'p', "port", REQUIRED_ARGUMENT} +}; +static const char detail_options[] = R"( + -h|--help Print this information + -v|--version Print version + -c|--confile Set configure file, default etc/{program}.conf + -t|--test Test configure file and exit + -s|--signal Send to process, + =[start,stop,restart,status,reload] + -d|--daemon Daemonize + -p|--port Set listen port +)"; + +void print_version() { + printf("%s version %s\n", g_main_ctx.program_name, hv_compile_version()); +} + +void print_help() { + printf("Usage: %s [%s]\n", g_main_ctx.program_name, options); + printf("Options:\n%s\n", detail_options); +} + +int parse_confile(const char* confile) { + IniParser ini; + int ret = ini.LoadFromFile(confile); + if (ret != 0) { + printf("Load confile [%s] failed: %d\n", confile, ret); + exit(-40); + } + + // logfile + std::string str = ini.GetValue("logfile"); + if (!str.empty()) { + strncpy(g_main_ctx.logfile, str.c_str(), sizeof(g_main_ctx.logfile)); + } + hlog_set_file(g_main_ctx.logfile); + // loglevel + str = ini.GetValue("loglevel"); + if (!str.empty()) { + hlog_set_level_by_str(str.c_str()); + } + // log_filesize + str = ini.GetValue("log_filesize"); + if (!str.empty()) { + hlog_set_max_filesize_by_str(str.c_str()); + } + // log_remain_days + str = ini.GetValue("log_remain_days"); + if (!str.empty()) { + hlog_set_remain_days(atoi(str.c_str())); + } + // log_fsync + str = ini.GetValue("log_fsync"); + if (!str.empty()) { + logger_enable_fsync(hlog, hv_getboolean(str.c_str())); + } + hlogi("%s version: %s", g_main_ctx.program_name, hv_compile_version()); + hlog_fsync(); + + // worker_processes + int worker_processes = 0; +#ifdef DEBUG + // Disable multi-processes mode for debugging + worker_processes = 0; +#else + str = ini.GetValue("worker_processes"); + if (str.size() != 0) { + if (strcmp(str.c_str(), "auto") == 0) { + worker_processes = get_ncpu(); + hlogd("worker_processes=ncpu=%d", worker_processes); + } + else { + worker_processes = atoi(str.c_str()); + } + } +#endif + g_http_server.worker_processes = LIMIT(0, worker_processes, MAXNUM_WORKER_PROCESSES); + // worker_threads + int worker_threads = 0; + str = ini.GetValue("worker_threads"); + if (str.size() != 0) { + if (strcmp(str.c_str(), "auto") == 0) { + worker_threads = get_ncpu(); + hlogd("worker_threads=ncpu=%d", worker_threads); + } + else { + worker_threads = atoi(str.c_str()); + } + } + g_http_server.worker_threads = LIMIT(0, worker_threads, 64); + + // worker_connections + str = ini.GetValue("worker_connections"); + if (str.size() != 0) { + g_http_server.worker_connections = atoi(str.c_str()); + } + + // http_port + int port = 0; + const char* szPort = get_arg("p"); + if (szPort) { + port = atoi(szPort); + } + if (port == 0) { + port = ini.Get("port"); + } + if (port == 0) { + port = ini.Get("http_port"); + } + g_http_server.port = port; + // https_port + if (HV_WITH_SSL) { + g_http_server.https_port = ini.Get("https_port"); + } + if (g_http_server.port == 0 && g_http_server.https_port == 0) { + printf("Please config listen port!\n"); + exit(-10); + } + + // base_url + str = ini.GetValue("base_url"); + if (str.size() != 0) { + g_http_service.base_url = str; + } + // document_root + str = ini.GetValue("document_root"); + if (str.size() != 0) { + g_http_service.document_root = str; + } + // home_page + str = ini.GetValue("home_page"); + if (str.size() != 0) { + g_http_service.home_page = str; + } + // error_page + str = ini.GetValue("error_page"); + if (str.size() != 0) { + g_http_service.error_page = str; + } + // index_of + str = ini.GetValue("index_of"); + if (str.size() != 0) { + g_http_service.index_of = str; + } + // keepalive_timeout + str = ini.GetValue("keepalive_timeout"); + if (str.size() != 0) { + g_http_service.keepalive_timeout = atoi(str.c_str()); + } + // limit_rate + str = ini.GetValue("limit_rate"); + if (str.size() != 0) { + g_http_service.limit_rate = atoi(str.c_str()); + } + // access_log + str = ini.GetValue("access_log"); + if (str.size() != 0) { + g_http_service.enable_access_log = hv_getboolean(str.c_str()); + } + // cors + if (ini.Get("cors")) { + g_http_service.AllowCORS(); + } + // ssl + if (g_http_server.https_port > 0) { + std::string crt_file = ini.GetValue("ssl_certificate"); + std::string key_file = ini.GetValue("ssl_privatekey"); + std::string ca_file = ini.GetValue("ssl_ca_certificate"); + hlogi("SSL backend is %s", hssl_backend()); + hssl_ctx_opt_t param; + memset(¶m, 0, sizeof(param)); + param.crt_file = crt_file.c_str(); + param.key_file = key_file.c_str(); + param.ca_file = ca_file.c_str(); + param.endpoint = HSSL_SERVER; + if (g_http_server.newSslCtx(¶m) != 0) { +#ifdef OS_WIN + if (strcmp(hssl_backend(), "schannel") == 0) { + hlogw("schannel needs pkcs12 formatted certificate file."); + g_http_server.https_port = 0; + } +#else + hloge("SSL certificate verify failed!"); + exit(0); +#endif + } + else { + hlogi("SSL certificate verify ok!"); + } + } + // proxy + auto proxy_keys = ini.GetKeys("proxy"); + for (const auto& proxy_key : proxy_keys) { + str = ini.GetValue(proxy_key, "proxy"); + if (str.empty()) continue; + if (proxy_key[0] == '/') { + // reverse proxy + const std::string& path = proxy_key; + std::string proxy_url = hv::ltrim(str, "> "); + hlogi("reverse_proxy %s => %s", path.c_str(), proxy_url.c_str()); + g_http_service.Proxy(path.c_str(), proxy_url.c_str()); + } + else if (strcmp(proxy_key.c_str(), "proxy_connect_timeout") == 0) { + g_http_service.proxy_connect_timeout = atoi(str.c_str()); + } + else if (strcmp(proxy_key.c_str(), "proxy_read_timeout") == 0) { + g_http_service.proxy_read_timeout = atoi(str.c_str()); + } + else if (strcmp(proxy_key.c_str(), "proxy_write_timeout") == 0) { + g_http_service.proxy_write_timeout = atoi(str.c_str()); + } + else if (strcmp(proxy_key.c_str(), "forward_proxy") == 0) { + hlogi("forward_proxy = %s", str.c_str()); + if (hv_getboolean(str.c_str())) { + g_http_service.EnableForwardProxy(); + } + } + else if (strcmp(proxy_key.c_str(), "trust_proxies") == 0) { + auto trust_proxies = hv::split(str, ';'); + for (auto trust_proxy : trust_proxies) { + trust_proxy = hv::trim(trust_proxy); + if (trust_proxy.empty()) continue; + hlogi("trust_proxy %s", trust_proxy.c_str()); + g_http_service.AddTrustProxy(trust_proxy.c_str()); + } + } + else if (strcmp(proxy_key.c_str(), "no_proxies") == 0) { + auto no_proxies = hv::split(str, ';'); + for (auto no_proxy : no_proxies) { + no_proxy = hv::trim(no_proxy); + if (no_proxy.empty()) continue; + hlogi("no_proxy %s", no_proxy.c_str()); + g_http_service.AddNoProxy(no_proxy.c_str()); + } + } + } + + hlogi("parse_confile('%s') OK", confile); + return 0; +} + +static void on_reload(void* userdata) { + hlogi("reload confile [%s]", g_main_ctx.confile); + parse_confile(g_main_ctx.confile); +} + +int main(int argc, char** argv) { + // g_main_ctx + main_ctx_init(argc, argv); + //int ret = parse_opt(argc, argv, options); + int ret = parse_opt_long(argc, argv, long_options, ARRAY_SIZE(long_options)); + if (ret != 0) { + print_help(); + exit(ret); + } + + // help + if (get_arg("h")) { + print_help(); + exit(0); + } + + // version + if (get_arg("v")) { + print_version(); + exit(0); + } + + // parse_confile + const char* confile = get_arg("c"); + if (confile) { + strncpy(g_main_ctx.confile, confile, sizeof(g_main_ctx.confile)); + } + parse_confile(g_main_ctx.confile); + + // test + if (get_arg("t")) { + printf("Test confile [%s] OK!\n", g_main_ctx.confile); + exit(0); + } + + // signal + signal_init(on_reload); + const char* signal = get_arg("s"); + if (signal) { + signal_handle(signal); + } + +#ifdef OS_UNIX + // daemon + if (get_arg("d")) { + // nochdir, noclose + int ret = daemon(1, 1); + if (ret != 0) { + printf("daemon error: %d\n", ret); + exit(-10); + } + } +#endif + + // pidfile + create_pidfile(); + + // http_server + Router::Register(g_http_service); + g_http_server.registerHttpService(&g_http_service); + +#if 0 + std::atomic_flag init_flag = ATOMIC_FLAG_INIT; + g_http_server.onWorkerStart = [&init_flag](){ + if (!init_flag.test_and_set()) { + hv::async::startup(); + } + }; + g_http_server.onWorkerStop = [&init_flag](){ + if (init_flag.test_and_set()) { + hv::async::cleanup(); + } + }; +#endif + + g_http_server.run(); + return ret; +} diff --git a/3rdPartner/libhv/examples/httpd/router.cpp b/3rdPartner/libhv/examples/httpd/router.cpp new file mode 100644 index 0000000..046b05a --- /dev/null +++ b/3rdPartner/libhv/examples/httpd/router.cpp @@ -0,0 +1,148 @@ +#include "router.h" + +#include "handler.h" +#include "hthread.h" // import hv_gettid +#include "hasync.h" // import hv::async +#include "requests.h" // import requests::async + +void Router::Register(hv::HttpService& router) { + /* handler chain */ + // preprocessor -> middleware -> processor -> postprocessor + // processor: pathHandlers -> staticHandler -> errorHandler + router.preprocessor = Handler::preprocessor; + router.postprocessor = Handler::postprocessor; + // router.errorHandler = Handler::errorHandler; + // router.largeFileHandler = Handler::sendLargeFile; + + // middleware + // router.Use(Handler::Authorization); + + // curl -v http://ip:port/ping + router.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { + return resp->String("pong"); + }); + + // curl -v http://ip:port/data + router.GET("/data", [](HttpRequest* req, HttpResponse* resp) { + static char data[] = "0123456789"; + return resp->Data(data, 10 /*, false */); + }); + + // curl -v http://ip:port/html/index.html + router.GET("/html/index.html", [](HttpRequest* req, HttpResponse* resp) { + return resp->File("html/index.html"); + }); + + // curl -v http://ip:port/paths + router.GET("/paths", [&router](HttpRequest* req, HttpResponse* resp) { + return resp->Json(router.Paths()); + }); + + // curl -v http://ip:port/service + router.GET("/service", [](const HttpContextPtr& ctx) { + ctx->setContentType("application/json"); + ctx->set("base_url", ctx->service->base_url); + ctx->set("document_root", ctx->service->document_root); + ctx->set("home_page", ctx->service->home_page); + ctx->set("error_page", ctx->service->error_page); + ctx->set("index_of", ctx->service->index_of); + return 200; + }); + + // curl -v http://ip:port/get?env=1 + router.GET("/get", [](const HttpContextPtr& ctx) { + hv::Json resp; + resp["origin"] = ctx->ip(); + resp["url"] = ctx->url(); + resp["args"] = ctx->params(); + resp["headers"] = ctx->headers(); + return ctx->send(resp.dump(2)); + }); + + // curl -v http://ip:port/echo -d "hello,world!" + router.POST("/echo", [](const HttpContextPtr& ctx) { + return ctx->send(ctx->body(), ctx->type()); + }); + + // wildcard * + // curl -v http://ip:port/wildcard/any + router.GET("/wildcard*", [](HttpRequest* req, HttpResponse* resp) { + std::string str = req->path + " match /wildcard*"; + return resp->String(str); + }); + + // curl -v http://ip:port/async + router.GET("/async", [](const HttpRequestPtr& req, const HttpResponseWriterPtr& writer) { + writer->Begin(); + writer->WriteHeader("X-Response-tid", hv_gettid()); + writer->WriteHeader("Content-Type", "text/plain"); + writer->WriteBody("This is an async response.\n"); + writer->End(); + }); + + // curl -v http://ip:port/www.* + // curl -v http://ip:port/www.example.com + router.GET("/www.*", [](const HttpRequestPtr& req, const HttpResponseWriterPtr& writer) { + auto req2 = std::make_shared(); + req2->url = req->path.substr(1); + requests::async(req2, [writer](const HttpResponsePtr& resp2){ + writer->Begin(); + if (resp2 == NULL) { + writer->WriteStatus(HTTP_STATUS_NOT_FOUND); + writer->WriteHeader("Content-Type", "text/html"); + writer->WriteBody("

404 Not Found

"); + } else { + writer->WriteResponse(resp2.get()); + } + writer->End(); + }); + }); + + // curl -v http://ip:port/sleep?t=1000 + router.GET("/sleep", Handler::sleep); + + // curl -v http://ip:port/setTimeout?t=1000 + router.GET("/setTimeout", Handler::setTimeout); + + // curl -v http://ip:port/query?page_no=1\&page_size=10 + router.GET("/query", Handler::query); + + // Content-Type: application/x-www-form-urlencoded + // curl -v http://ip:port/kv -H "content-type:application/x-www-form-urlencoded" -d 'user=admin&pswd=123456' + router.POST("/kv", Handler::kv); + + // Content-Type: application/json + // curl -v http://ip:port/json -H "Content-Type:application/json" -d '{"user":"admin","pswd":"123456"}' + router.POST("/json", Handler::json); + + // Content-Type: multipart/form-data + // bin/curl -v http://ip:port/form -F 'user=admin' -F 'pswd=123456' + router.POST("/form", Handler::form); + + // curl -v http://ip:port/test -H "Content-Type:application/x-www-form-urlencoded" -d 'bool=1&int=123&float=3.14&string=hello' + // curl -v http://ip:port/test -H "Content-Type:application/json" -d '{"bool":true,"int":123,"float":3.14,"string":"hello"}' + // bin/curl -v http://ip:port/test -F 'bool=1' -F 'int=123' -F 'float=3.14' -F 'string=hello' + router.POST("/test", Handler::test); + + // Content-Type: application/grpc + // bin/curl -v --http2 http://ip:port/grpc -H "content-type:application/grpc" -d 'protobuf' + router.POST("/grpc", Handler::grpc); + + // RESTful API: /group/:group_name/user/:user_id + // curl -v -X DELETE http://ip:port/group/test/user/123 + router.Delete("/group/:group_name/user/:user_id", Handler::restful); + // router.Delete("/group/{group_name}/user/{user_id}", Handler::restful); + + // curl -v http://ip:port/login -H "Content-Type:application/json" -d '{"username":"admin","password":"123456"}' + router.POST("/login", Handler::login); + + // curl -v http://ip:port/upload?filename=LICENSE -d '@LICENSE' + // curl -v http://ip:port/upload -F 'file=@LICENSE' + router.POST("/upload", Handler::upload); + // curl -v http://ip:port/upload/README.md -d '@README.md' + router.POST("/upload/{filename}", Handler::recvLargeFile); + + // SSE: Server Send Events + // @test html/EventSource.html EventSource.onmessage + router.GET("/sse", Handler::sse); +} diff --git a/3rdPartner/libhv/examples/httpd/router.h b/3rdPartner/libhv/examples/httpd/router.h new file mode 100644 index 0000000..ac6450e --- /dev/null +++ b/3rdPartner/libhv/examples/httpd/router.h @@ -0,0 +1,11 @@ +#ifndef HV_HTTPD_ROUTER_H +#define HV_HTTPD_ROUTER_H + +#include "HttpService.h" + +class Router { +public: + static void Register(hv::HttpService& router); +}; + +#endif // HV_HTTPD_ROUTER_H diff --git a/3rdPartner/libhv/examples/jsonrpc/cJSON.c b/3rdPartner/libhv/examples/jsonrpc/cJSON.c new file mode 100644 index 0000000..030311c --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/cJSON.c @@ -0,0 +1,3110 @@ +/* + Copyright (c) 2009-2017 Dave Gamble and cJSON contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +/* cJSON */ +/* JSON parser in C. */ + +/* disable warnings about old C89 functions in MSVC */ +#if !defined(_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) +#define _CRT_SECURE_NO_DEPRECATE +#endif + +#ifdef __GNUC__ +#pragma GCC visibility push(default) +#endif +#if defined(_MSC_VER) +#pragma warning (push) +/* disable warning about single line comments in system headers */ +#pragma warning (disable : 4001) +#endif + +#include +#include +#include +#include +#include +#include +#include + +#ifdef ENABLE_LOCALES +#include +#endif + +#if defined(_MSC_VER) +#pragma warning (pop) +#endif +#ifdef __GNUC__ +#pragma GCC visibility pop +#endif + +#include "cJSON.h" + +/* define our own boolean type */ +#ifdef true +#undef true +#endif +#define true ((cJSON_bool)1) + +#ifdef false +#undef false +#endif +#define false ((cJSON_bool)0) + +/* define isnan and isinf for ANSI C, if in C99 or above, isnan and isinf has been defined in math.h */ +#ifndef isinf +#define isinf(d) (isnan((d - d)) && !isnan(d)) +#endif +#ifndef isnan +#define isnan(d) (d != d) +#endif + +#ifndef NAN +#ifdef _WIN32 +#define NAN sqrt(-1.0) +#else +#define NAN 0.0/0.0 +#endif +#endif + +typedef struct { + const unsigned char *json; + size_t position; +} error; +static error global_error = { NULL, 0 }; + +CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void) +{ + return (const char*) (global_error.json + global_error.position); +} + +CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item) +{ + if (!cJSON_IsString(item)) + { + return NULL; + } + + return item->valuestring; +} + +CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item) +{ + if (!cJSON_IsNumber(item)) + { + return (double) NAN; + } + + return item->valuedouble; +} + +/* This is a safeguard to prevent copy-pasters from using incompatible C and header files */ +#if (CJSON_VERSION_MAJOR != 1) || (CJSON_VERSION_MINOR != 7) || (CJSON_VERSION_PATCH != 14) + #error cJSON.h and cJSON.c have different versions. Make sure that both have the same. +#endif + +CJSON_PUBLIC(const char*) cJSON_Version(void) +{ + static char version[15]; + sprintf(version, "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH); + + return version; +} + +/* Case insensitive string comparison, doesn't consider two NULL pointers equal though */ +static int case_insensitive_strcmp(const unsigned char *string1, const unsigned char *string2) +{ + if ((string1 == NULL) || (string2 == NULL)) + { + return 1; + } + + if (string1 == string2) + { + return 0; + } + + for(; tolower(*string1) == tolower(*string2); (void)string1++, string2++) + { + if (*string1 == '\0') + { + return 0; + } + } + + return tolower(*string1) - tolower(*string2); +} + +typedef struct internal_hooks +{ + void *(CJSON_CDECL *allocate)(size_t size); + void (CJSON_CDECL *deallocate)(void *pointer); + void *(CJSON_CDECL *reallocate)(void *pointer, size_t size); +} internal_hooks; + +#if defined(_MSC_VER) +/* work around MSVC error C2322: '...' address of dllimport '...' is not static */ +static void * CJSON_CDECL internal_malloc(size_t size) +{ + return malloc(size); +} +static void CJSON_CDECL internal_free(void *pointer) +{ + free(pointer); +} +static void * CJSON_CDECL internal_realloc(void *pointer, size_t size) +{ + return realloc(pointer, size); +} +#else +#define internal_malloc malloc +#define internal_free free +#define internal_realloc realloc +#endif + +/* strlen of character literals resolved at compile time */ +#define static_strlen(string_literal) (sizeof(string_literal) - sizeof("")) + +static internal_hooks global_hooks = { internal_malloc, internal_free, internal_realloc }; + +static unsigned char* cJSON_strdup(const unsigned char* string, const internal_hooks * const hooks) +{ + size_t length = 0; + unsigned char *copy = NULL; + + if (string == NULL) + { + return NULL; + } + + length = strlen((const char*)string) + sizeof(""); + copy = (unsigned char*)hooks->allocate(length); + if (copy == NULL) + { + return NULL; + } + memcpy(copy, string, length); + + return copy; +} + +CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks) +{ + if (hooks == NULL) + { + /* Reset hooks */ + global_hooks.allocate = malloc; + global_hooks.deallocate = free; + global_hooks.reallocate = realloc; + return; + } + + global_hooks.allocate = malloc; + if (hooks->malloc_fn != NULL) + { + global_hooks.allocate = hooks->malloc_fn; + } + + global_hooks.deallocate = free; + if (hooks->free_fn != NULL) + { + global_hooks.deallocate = hooks->free_fn; + } + + /* use realloc only if both free and malloc are used */ + global_hooks.reallocate = NULL; + if ((global_hooks.allocate == malloc) && (global_hooks.deallocate == free)) + { + global_hooks.reallocate = realloc; + } +} + +/* Internal constructor. */ +static cJSON *cJSON_New_Item(const internal_hooks * const hooks) +{ + cJSON* node = (cJSON*)hooks->allocate(sizeof(cJSON)); + if (node) + { + memset(node, '\0', sizeof(cJSON)); + } + + return node; +} + +/* Delete a cJSON structure. */ +CJSON_PUBLIC(void) cJSON_Delete(cJSON *item) +{ + cJSON *next = NULL; + while (item != NULL) + { + next = item->next; + if (!(item->type & cJSON_IsReference) && (item->child != NULL)) + { + cJSON_Delete(item->child); + } + if (!(item->type & cJSON_IsReference) && (item->valuestring != NULL)) + { + global_hooks.deallocate(item->valuestring); + } + if (!(item->type & cJSON_StringIsConst) && (item->string != NULL)) + { + global_hooks.deallocate(item->string); + } + global_hooks.deallocate(item); + item = next; + } +} + +/* get the decimal point character of the current locale */ +static unsigned char get_decimal_point(void) +{ +#ifdef ENABLE_LOCALES + struct lconv *lconv = localeconv(); + return (unsigned char) lconv->decimal_point[0]; +#else + return '.'; +#endif +} + +typedef struct +{ + const unsigned char *content; + size_t length; + size_t offset; + size_t depth; /* How deeply nested (in arrays/objects) is the input at the current offset. */ + internal_hooks hooks; +} parse_buffer; + +/* check if the given size is left to read in a given parse buffer (starting with 1) */ +#define can_read(buffer, size) ((buffer != NULL) && (((buffer)->offset + size) <= (buffer)->length)) +/* check if the buffer can be accessed at the given index (starting with 0) */ +#define can_access_at_index(buffer, index) ((buffer != NULL) && (((buffer)->offset + index) < (buffer)->length)) +#define cannot_access_at_index(buffer, index) (!can_access_at_index(buffer, index)) +/* get a pointer to the buffer at the position */ +#define buffer_at_offset(buffer) ((buffer)->content + (buffer)->offset) + +/* Parse the input text to generate a number, and populate the result into item. */ +static cJSON_bool parse_number(cJSON * const item, parse_buffer * const input_buffer) +{ + double number = 0; + unsigned char *after_end = NULL; + unsigned char number_c_string[64]; + unsigned char decimal_point = get_decimal_point(); + size_t i = 0; + + if ((input_buffer == NULL) || (input_buffer->content == NULL)) + { + return false; + } + + /* copy the number into a temporary buffer and replace '.' with the decimal point + * of the current locale (for strtod) + * This also takes care of '\0' not necessarily being available for marking the end of the input */ + for (i = 0; (i < (sizeof(number_c_string) - 1)) && can_access_at_index(input_buffer, i); i++) + { + switch (buffer_at_offset(input_buffer)[i]) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '+': + case '-': + case 'e': + case 'E': + number_c_string[i] = buffer_at_offset(input_buffer)[i]; + break; + + case '.': + number_c_string[i] = decimal_point; + break; + + default: + goto loop_end; + } + } +loop_end: + number_c_string[i] = '\0'; + + number = strtod((const char*)number_c_string, (char**)&after_end); + if (number_c_string == after_end) + { + return false; /* parse_error */ + } + + item->valuedouble = number; + + /* use saturation in case of overflow */ + if (number >= INT_MAX) + { + item->valueint = INT_MAX; + } + else if (number <= (double)INT_MIN) + { + item->valueint = INT_MIN; + } + else + { + item->valueint = (int)number; + } + + item->type = cJSON_Number; + + input_buffer->offset += (size_t)(after_end - number_c_string); + return true; +} + +/* don't ask me, but the original cJSON_SetNumberValue returns an integer or double */ +CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number) +{ + if (number >= INT_MAX) + { + object->valueint = INT_MAX; + } + else if (number <= (double)INT_MIN) + { + object->valueint = INT_MIN; + } + else + { + object->valueint = (int)number; + } + + return object->valuedouble = number; +} + +CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring) +{ + char *copy = NULL; + /* if object's type is not cJSON_String or is cJSON_IsReference, it should not set valuestring */ + if (!(object->type & cJSON_String) || (object->type & cJSON_IsReference)) + { + return NULL; + } + if (strlen(valuestring) <= strlen(object->valuestring)) + { + strcpy(object->valuestring, valuestring); + return object->valuestring; + } + copy = (char*) cJSON_strdup((const unsigned char*)valuestring, &global_hooks); + if (copy == NULL) + { + return NULL; + } + if (object->valuestring != NULL) + { + cJSON_free(object->valuestring); + } + object->valuestring = copy; + + return copy; +} + +typedef struct +{ + unsigned char *buffer; + size_t length; + size_t offset; + size_t depth; /* current nesting depth (for formatted printing) */ + cJSON_bool noalloc; + cJSON_bool format; /* is this print a formatted print */ + internal_hooks hooks; +} printbuffer; + +/* realloc printbuffer if necessary to have at least "needed" bytes more */ +static unsigned char* ensure(printbuffer * const p, size_t needed) +{ + unsigned char *newbuffer = NULL; + size_t newsize = 0; + + if ((p == NULL) || (p->buffer == NULL)) + { + return NULL; + } + + if ((p->length > 0) && (p->offset >= p->length)) + { + /* make sure that offset is valid */ + return NULL; + } + + if (needed > INT_MAX) + { + /* sizes bigger than INT_MAX are currently not supported */ + return NULL; + } + + needed += p->offset + 1; + if (needed <= p->length) + { + return p->buffer + p->offset; + } + + if (p->noalloc) { + return NULL; + } + + /* calculate new buffer size */ + if (needed > (INT_MAX / 2)) + { + /* overflow of int, use INT_MAX if possible */ + if (needed <= INT_MAX) + { + newsize = INT_MAX; + } + else + { + return NULL; + } + } + else + { + newsize = needed * 2; + } + + if (p->hooks.reallocate != NULL) + { + /* reallocate with realloc if available */ + newbuffer = (unsigned char*)p->hooks.reallocate(p->buffer, newsize); + if (newbuffer == NULL) + { + p->hooks.deallocate(p->buffer); + p->length = 0; + p->buffer = NULL; + + return NULL; + } + } + else + { + /* otherwise reallocate manually */ + newbuffer = (unsigned char*)p->hooks.allocate(newsize); + if (!newbuffer) + { + p->hooks.deallocate(p->buffer); + p->length = 0; + p->buffer = NULL; + + return NULL; + } + + memcpy(newbuffer, p->buffer, p->offset + 1); + p->hooks.deallocate(p->buffer); + } + p->length = newsize; + p->buffer = newbuffer; + + return newbuffer + p->offset; +} + +/* calculate the new length of the string in a printbuffer and update the offset */ +static void update_offset(printbuffer * const buffer) +{ + const unsigned char *buffer_pointer = NULL; + if ((buffer == NULL) || (buffer->buffer == NULL)) + { + return; + } + buffer_pointer = buffer->buffer + buffer->offset; + + buffer->offset += strlen((const char*)buffer_pointer); +} + +/* securely comparison of floating-point variables */ +static cJSON_bool compare_double(double a, double b) +{ + double maxVal = fabs(a) > fabs(b) ? fabs(a) : fabs(b); + return (fabs(a - b) <= maxVal * DBL_EPSILON); +} + +/* Render the number nicely from the given item into a string. */ +static cJSON_bool print_number(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + double d = item->valuedouble; + int length = 0; + size_t i = 0; + unsigned char number_buffer[26] = {0}; /* temporary buffer to print the number into */ + unsigned char decimal_point = get_decimal_point(); + double test = 0.0; + + if (output_buffer == NULL) + { + return false; + } + + /* This checks for NaN and Infinity */ + if (isnan(d) || isinf(d)) + { + length = sprintf((char*)number_buffer, "null"); + } + else + { + /* Try 15 decimal places of precision to avoid nonsignificant nonzero digits */ + length = sprintf((char*)number_buffer, "%1.15g", d); + + /* Check whether the original double can be recovered */ + if ((sscanf((char*)number_buffer, "%lg", &test) != 1) || !compare_double((double)test, d)) + { + /* If not, print with 17 decimal places of precision */ + length = sprintf((char*)number_buffer, "%1.17g", d); + } + } + + /* sprintf failed or buffer overrun occurred */ + if ((length < 0) || (length > (int)(sizeof(number_buffer) - 1))) + { + return false; + } + + /* reserve appropriate space in the output */ + output_pointer = ensure(output_buffer, (size_t)length + sizeof("")); + if (output_pointer == NULL) + { + return false; + } + + /* copy the printed number to the output and replace locale + * dependent decimal point with '.' */ + for (i = 0; i < ((size_t)length); i++) + { + if (number_buffer[i] == decimal_point) + { + output_pointer[i] = '.'; + continue; + } + + output_pointer[i] = number_buffer[i]; + } + output_pointer[i] = '\0'; + + output_buffer->offset += (size_t)length; + + return true; +} + +/* parse 4 digit hexadecimal number */ +static unsigned parse_hex4(const unsigned char * const input) +{ + unsigned int h = 0; + size_t i = 0; + + for (i = 0; i < 4; i++) + { + /* parse digit */ + if ((input[i] >= '0') && (input[i] <= '9')) + { + h += (unsigned int) input[i] - '0'; + } + else if ((input[i] >= 'A') && (input[i] <= 'F')) + { + h += (unsigned int) 10 + input[i] - 'A'; + } + else if ((input[i] >= 'a') && (input[i] <= 'f')) + { + h += (unsigned int) 10 + input[i] - 'a'; + } + else /* invalid */ + { + return 0; + } + + if (i < 3) + { + /* shift left to make place for the next nibble */ + h = h << 4; + } + } + + return h; +} + +/* converts a UTF-16 literal to UTF-8 + * A literal can be one or two sequences of the form \uXXXX */ +static unsigned char utf16_literal_to_utf8(const unsigned char * const input_pointer, const unsigned char * const input_end, unsigned char **output_pointer) +{ + long unsigned int codepoint = 0; + unsigned int first_code = 0; + const unsigned char *first_sequence = input_pointer; + unsigned char utf8_length = 0; + unsigned char utf8_position = 0; + unsigned char sequence_length = 0; + unsigned char first_byte_mark = 0; + + if ((input_end - first_sequence) < 6) + { + /* input ends unexpectedly */ + goto fail; + } + + /* get the first utf16 sequence */ + first_code = parse_hex4(first_sequence + 2); + + /* check that the code is valid */ + if (((first_code >= 0xDC00) && (first_code <= 0xDFFF))) + { + goto fail; + } + + /* UTF16 surrogate pair */ + if ((first_code >= 0xD800) && (first_code <= 0xDBFF)) + { + const unsigned char *second_sequence = first_sequence + 6; + unsigned int second_code = 0; + sequence_length = 12; /* \uXXXX\uXXXX */ + + if ((input_end - second_sequence) < 6) + { + /* input ends unexpectedly */ + goto fail; + } + + if ((second_sequence[0] != '\\') || (second_sequence[1] != 'u')) + { + /* missing second half of the surrogate pair */ + goto fail; + } + + /* get the second utf16 sequence */ + second_code = parse_hex4(second_sequence + 2); + /* check that the code is valid */ + if ((second_code < 0xDC00) || (second_code > 0xDFFF)) + { + /* invalid second half of the surrogate pair */ + goto fail; + } + + + /* calculate the unicode codepoint from the surrogate pair */ + codepoint = 0x10000 + (((first_code & 0x3FF) << 10) | (second_code & 0x3FF)); + } + else + { + sequence_length = 6; /* \uXXXX */ + codepoint = first_code; + } + + /* encode as UTF-8 + * takes at maximum 4 bytes to encode: + * 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ + if (codepoint < 0x80) + { + /* normal ascii, encoding 0xxxxxxx */ + utf8_length = 1; + } + else if (codepoint < 0x800) + { + /* two bytes, encoding 110xxxxx 10xxxxxx */ + utf8_length = 2; + first_byte_mark = 0xC0; /* 11000000 */ + } + else if (codepoint < 0x10000) + { + /* three bytes, encoding 1110xxxx 10xxxxxx 10xxxxxx */ + utf8_length = 3; + first_byte_mark = 0xE0; /* 11100000 */ + } + else if (codepoint <= 0x10FFFF) + { + /* four bytes, encoding 1110xxxx 10xxxxxx 10xxxxxx 10xxxxxx */ + utf8_length = 4; + first_byte_mark = 0xF0; /* 11110000 */ + } + else + { + /* invalid unicode codepoint */ + goto fail; + } + + /* encode as utf8 */ + for (utf8_position = (unsigned char)(utf8_length - 1); utf8_position > 0; utf8_position--) + { + /* 10xxxxxx */ + (*output_pointer)[utf8_position] = (unsigned char)((codepoint | 0x80) & 0xBF); + codepoint >>= 6; + } + /* encode first byte */ + if (utf8_length > 1) + { + (*output_pointer)[0] = (unsigned char)((codepoint | first_byte_mark) & 0xFF); + } + else + { + (*output_pointer)[0] = (unsigned char)(codepoint & 0x7F); + } + + *output_pointer += utf8_length; + + return sequence_length; + +fail: + return 0; +} + +/* Parse the input text into an unescaped cinput, and populate item. */ +static cJSON_bool parse_string(cJSON * const item, parse_buffer * const input_buffer) +{ + const unsigned char *input_pointer = buffer_at_offset(input_buffer) + 1; + const unsigned char *input_end = buffer_at_offset(input_buffer) + 1; + unsigned char *output_pointer = NULL; + unsigned char *output = NULL; + + /* not a string */ + if (buffer_at_offset(input_buffer)[0] != '\"') + { + goto fail; + } + + { + /* calculate approximate size of the output (overestimate) */ + size_t allocation_length = 0; + size_t skipped_bytes = 0; + while (((size_t)(input_end - input_buffer->content) < input_buffer->length) && (*input_end != '\"')) + { + /* is escape sequence */ + if (input_end[0] == '\\') + { + if ((size_t)(input_end + 1 - input_buffer->content) >= input_buffer->length) + { + /* prevent buffer overflow when last input character is a backslash */ + goto fail; + } + skipped_bytes++; + input_end++; + } + input_end++; + } + if (((size_t)(input_end - input_buffer->content) >= input_buffer->length) || (*input_end != '\"')) + { + goto fail; /* string ended unexpectedly */ + } + + /* This is at most how much we need for the output */ + allocation_length = (size_t) (input_end - buffer_at_offset(input_buffer)) - skipped_bytes; + output = (unsigned char*)input_buffer->hooks.allocate(allocation_length + sizeof("")); + if (output == NULL) + { + goto fail; /* allocation failure */ + } + } + + output_pointer = output; + /* loop through the string literal */ + while (input_pointer < input_end) + { + if (*input_pointer != '\\') + { + *output_pointer++ = *input_pointer++; + } + /* escape sequence */ + else + { + unsigned char sequence_length = 2; + if ((input_end - input_pointer) < 1) + { + goto fail; + } + + switch (input_pointer[1]) + { + case 'b': + *output_pointer++ = '\b'; + break; + case 'f': + *output_pointer++ = '\f'; + break; + case 'n': + *output_pointer++ = '\n'; + break; + case 'r': + *output_pointer++ = '\r'; + break; + case 't': + *output_pointer++ = '\t'; + break; + case '\"': + case '\\': + case '/': + *output_pointer++ = input_pointer[1]; + break; + + /* UTF-16 literal */ + case 'u': + sequence_length = utf16_literal_to_utf8(input_pointer, input_end, &output_pointer); + if (sequence_length == 0) + { + /* failed to convert UTF16-literal to UTF-8 */ + goto fail; + } + break; + + default: + goto fail; + } + input_pointer += sequence_length; + } + } + + /* zero terminate the output */ + *output_pointer = '\0'; + + item->type = cJSON_String; + item->valuestring = (char*)output; + + input_buffer->offset = (size_t) (input_end - input_buffer->content); + input_buffer->offset++; + + return true; + +fail: + if (output != NULL) + { + input_buffer->hooks.deallocate(output); + } + + if (input_pointer != NULL) + { + input_buffer->offset = (size_t)(input_pointer - input_buffer->content); + } + + return false; +} + +/* Render the cstring provided to an escaped version that can be printed. */ +static cJSON_bool print_string_ptr(const unsigned char * const input, printbuffer * const output_buffer) +{ + const unsigned char *input_pointer = NULL; + unsigned char *output = NULL; + unsigned char *output_pointer = NULL; + size_t output_length = 0; + /* numbers of additional characters needed for escaping */ + size_t escape_characters = 0; + + if (output_buffer == NULL) + { + return false; + } + + /* empty string */ + if (input == NULL) + { + output = ensure(output_buffer, sizeof("\"\"")); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "\"\""); + + return true; + } + + /* set "flag" to 1 if something needs to be escaped */ + for (input_pointer = input; *input_pointer; input_pointer++) + { + switch (*input_pointer) + { + case '\"': + case '\\': + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + /* one character escape sequence */ + escape_characters++; + break; + default: + if (*input_pointer < 32) + { + /* UTF-16 escape sequence uXXXX */ + escape_characters += 5; + } + break; + } + } + output_length = (size_t)(input_pointer - input) + escape_characters; + + output = ensure(output_buffer, output_length + sizeof("\"\"")); + if (output == NULL) + { + return false; + } + + /* no characters have to be escaped */ + if (escape_characters == 0) + { + output[0] = '\"'; + memcpy(output + 1, input, output_length); + output[output_length + 1] = '\"'; + output[output_length + 2] = '\0'; + + return true; + } + + output[0] = '\"'; + output_pointer = output + 1; + /* copy the string */ + for (input_pointer = input; *input_pointer != '\0'; (void)input_pointer++, output_pointer++) + { + if ((*input_pointer > 31) && (*input_pointer != '\"') && (*input_pointer != '\\')) + { + /* normal character, copy */ + *output_pointer = *input_pointer; + } + else + { + /* character needs to be escaped */ + *output_pointer++ = '\\'; + switch (*input_pointer) + { + case '\\': + *output_pointer = '\\'; + break; + case '\"': + *output_pointer = '\"'; + break; + case '\b': + *output_pointer = 'b'; + break; + case '\f': + *output_pointer = 'f'; + break; + case '\n': + *output_pointer = 'n'; + break; + case '\r': + *output_pointer = 'r'; + break; + case '\t': + *output_pointer = 't'; + break; + default: + /* escape and print as unicode codepoint */ + sprintf((char*)output_pointer, "u%04x", *input_pointer); + output_pointer += 4; + break; + } + } + } + output[output_length + 1] = '\"'; + output[output_length + 2] = '\0'; + + return true; +} + +/* Invoke print_string_ptr (which is useful) on an item. */ +static cJSON_bool print_string(const cJSON * const item, printbuffer * const p) +{ + return print_string_ptr((unsigned char*)item->valuestring, p); +} + +/* Predeclare these prototypes. */ +static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer); +static cJSON_bool parse_array(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_array(const cJSON * const item, printbuffer * const output_buffer); +static cJSON_bool parse_object(cJSON * const item, parse_buffer * const input_buffer); +static cJSON_bool print_object(const cJSON * const item, printbuffer * const output_buffer); + +/* Utility to jump whitespace and cr/lf */ +static parse_buffer *buffer_skip_whitespace(parse_buffer * const buffer) +{ + if ((buffer == NULL) || (buffer->content == NULL)) + { + return NULL; + } + + if (cannot_access_at_index(buffer, 0)) + { + return buffer; + } + + while (can_access_at_index(buffer, 0) && (buffer_at_offset(buffer)[0] <= 32)) + { + buffer->offset++; + } + + if (buffer->offset == buffer->length) + { + buffer->offset--; + } + + return buffer; +} + +/* skip the UTF-8 BOM (byte order mark) if it is at the beginning of a buffer */ +static parse_buffer *skip_utf8_bom(parse_buffer * const buffer) +{ + if ((buffer == NULL) || (buffer->content == NULL) || (buffer->offset != 0)) + { + return NULL; + } + + if (can_access_at_index(buffer, 4) && (strncmp((const char*)buffer_at_offset(buffer), "\xEF\xBB\xBF", 3) == 0)) + { + buffer->offset += 3; + } + + return buffer; +} + +CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated) +{ + size_t buffer_length; + + if (NULL == value) + { + return NULL; + } + + /* Adding null character size due to require_null_terminated. */ + buffer_length = strlen(value) + sizeof(""); + + return cJSON_ParseWithLengthOpts(value, buffer_length, return_parse_end, require_null_terminated); +} + +/* Parse an object - create a new root, and populate. */ +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated) +{ + parse_buffer buffer = { 0, 0, 0, 0, { 0, 0, 0 } }; + cJSON *item = NULL; + + /* reset error position */ + global_error.json = NULL; + global_error.position = 0; + + if (value == NULL || 0 == buffer_length) + { + goto fail; + } + + buffer.content = (const unsigned char*)value; + buffer.length = buffer_length; + buffer.offset = 0; + buffer.hooks = global_hooks; + + item = cJSON_New_Item(&global_hooks); + if (item == NULL) /* memory fail */ + { + goto fail; + } + + if (!parse_value(item, buffer_skip_whitespace(skip_utf8_bom(&buffer)))) + { + /* parse failure. ep is set. */ + goto fail; + } + + /* if we require null-terminated JSON without appended garbage, skip and then check for a null terminator */ + if (require_null_terminated) + { + buffer_skip_whitespace(&buffer); + if ((buffer.offset >= buffer.length) || buffer_at_offset(&buffer)[0] != '\0') + { + goto fail; + } + } + if (return_parse_end) + { + *return_parse_end = (const char*)buffer_at_offset(&buffer); + } + + return item; + +fail: + if (item != NULL) + { + cJSON_Delete(item); + } + + if (value != NULL) + { + error local_error; + local_error.json = (const unsigned char*)value; + local_error.position = 0; + + if (buffer.offset < buffer.length) + { + local_error.position = buffer.offset; + } + else if (buffer.length > 0) + { + local_error.position = buffer.length - 1; + } + + if (return_parse_end != NULL) + { + *return_parse_end = (const char*)local_error.json + local_error.position; + } + + global_error = local_error; + } + + return NULL; +} + +/* Default options for cJSON_Parse */ +CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value) +{ + return cJSON_ParseWithOpts(value, 0, 0); +} + +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length) +{ + return cJSON_ParseWithLengthOpts(value, buffer_length, 0, 0); +} + +#define cjson_min(a, b) (((a) < (b)) ? (a) : (b)) + +static unsigned char *print(const cJSON * const item, cJSON_bool format, const internal_hooks * const hooks) +{ + static const size_t default_buffer_size = 256; + printbuffer buffer[1]; + unsigned char *printed = NULL; + + memset(buffer, 0, sizeof(buffer)); + + /* create buffer */ + buffer->buffer = (unsigned char*) hooks->allocate(default_buffer_size); + buffer->length = default_buffer_size; + buffer->format = format; + buffer->hooks = *hooks; + if (buffer->buffer == NULL) + { + goto fail; + } + + /* print the value */ + if (!print_value(item, buffer)) + { + goto fail; + } + update_offset(buffer); + + /* check if reallocate is available */ + if (hooks->reallocate != NULL) + { + printed = (unsigned char*) hooks->reallocate(buffer->buffer, buffer->offset + 1); + if (printed == NULL) { + goto fail; + } + buffer->buffer = NULL; + } + else /* otherwise copy the JSON over to a new buffer */ + { + printed = (unsigned char*) hooks->allocate(buffer->offset + 1); + if (printed == NULL) + { + goto fail; + } + memcpy(printed, buffer->buffer, cjson_min(buffer->length, buffer->offset + 1)); + printed[buffer->offset] = '\0'; /* just to be sure */ + + /* free the buffer */ + hooks->deallocate(buffer->buffer); + } + + return printed; + +fail: + if (buffer->buffer != NULL) + { + hooks->deallocate(buffer->buffer); + } + + if (printed != NULL) + { + hooks->deallocate(printed); + } + + return NULL; +} + +/* Render a cJSON item/entity/structure to text. */ +CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item) +{ + return (char*)print(item, true, &global_hooks); +} + +CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item) +{ + return (char*)print(item, false, &global_hooks); +} + +CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt) +{ + printbuffer p = { 0, 0, 0, 0, 0, 0, { 0, 0, 0 } }; + + if (prebuffer < 0) + { + return NULL; + } + + p.buffer = (unsigned char*)global_hooks.allocate((size_t)prebuffer); + if (!p.buffer) + { + return NULL; + } + + p.length = (size_t)prebuffer; + p.offset = 0; + p.noalloc = false; + p.format = fmt; + p.hooks = global_hooks; + + if (!print_value(item, &p)) + { + global_hooks.deallocate(p.buffer); + return NULL; + } + + return (char*)p.buffer; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format) +{ + printbuffer p = { 0, 0, 0, 0, 0, 0, { 0, 0, 0 } }; + + if ((length < 0) || (buffer == NULL)) + { + return false; + } + + p.buffer = (unsigned char*)buffer; + p.length = (size_t)length; + p.offset = 0; + p.noalloc = true; + p.format = format; + p.hooks = global_hooks; + + return print_value(item, &p); +} + +/* Parser core - when encountering text, process appropriately. */ +static cJSON_bool parse_value(cJSON * const item, parse_buffer * const input_buffer) +{ + if ((input_buffer == NULL) || (input_buffer->content == NULL)) + { + return false; /* no input */ + } + + /* parse the different types of values */ + /* null */ + if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "null", 4) == 0)) + { + item->type = cJSON_NULL; + input_buffer->offset += 4; + return true; + } + /* false */ + if (can_read(input_buffer, 5) && (strncmp((const char*)buffer_at_offset(input_buffer), "false", 5) == 0)) + { + item->type = cJSON_False; + input_buffer->offset += 5; + return true; + } + /* true */ + if (can_read(input_buffer, 4) && (strncmp((const char*)buffer_at_offset(input_buffer), "true", 4) == 0)) + { + item->type = cJSON_True; + item->valueint = 1; + input_buffer->offset += 4; + return true; + } + /* string */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '\"')) + { + return parse_string(item, input_buffer); + } + /* number */ + if (can_access_at_index(input_buffer, 0) && ((buffer_at_offset(input_buffer)[0] == '-') || ((buffer_at_offset(input_buffer)[0] >= '0') && (buffer_at_offset(input_buffer)[0] <= '9')))) + { + return parse_number(item, input_buffer); + } + /* array */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '[')) + { + return parse_array(item, input_buffer); + } + /* object */ + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '{')) + { + return parse_object(item, input_buffer); + } + + return false; +} + +/* Render a value to text. */ +static cJSON_bool print_value(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output = NULL; + + if ((item == NULL) || (output_buffer == NULL)) + { + return false; + } + + switch ((item->type) & 0xFF) + { + case cJSON_NULL: + output = ensure(output_buffer, 5); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "null"); + return true; + + case cJSON_False: + output = ensure(output_buffer, 6); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "false"); + return true; + + case cJSON_True: + output = ensure(output_buffer, 5); + if (output == NULL) + { + return false; + } + strcpy((char*)output, "true"); + return true; + + case cJSON_Number: + return print_number(item, output_buffer); + + case cJSON_Raw: + { + size_t raw_length = 0; + if (item->valuestring == NULL) + { + return false; + } + + raw_length = strlen(item->valuestring) + sizeof(""); + output = ensure(output_buffer, raw_length); + if (output == NULL) + { + return false; + } + memcpy(output, item->valuestring, raw_length); + return true; + } + + case cJSON_String: + return print_string(item, output_buffer); + + case cJSON_Array: + return print_array(item, output_buffer); + + case cJSON_Object: + return print_object(item, output_buffer); + + default: + return false; + } +} + +/* Build an array from input text. */ +static cJSON_bool parse_array(cJSON * const item, parse_buffer * const input_buffer) +{ + cJSON *head = NULL; /* head of the linked list */ + cJSON *current_item = NULL; + + if (input_buffer->depth >= CJSON_NESTING_LIMIT) + { + return false; /* to deeply nested */ + } + input_buffer->depth++; + + if (buffer_at_offset(input_buffer)[0] != '[') + { + /* not an array */ + goto fail; + } + + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ']')) + { + /* empty array */ + goto success; + } + + /* check if we skipped to the end of the buffer */ + if (cannot_access_at_index(input_buffer, 0)) + { + input_buffer->offset--; + goto fail; + } + + /* step back to character in front of the first element */ + input_buffer->offset--; + /* loop through the comma separated array elements */ + do + { + /* allocate next item */ + cJSON *new_item = cJSON_New_Item(&(input_buffer->hooks)); + if (new_item == NULL) + { + goto fail; /* allocation failure */ + } + + /* attach next item to list */ + if (head == NULL) + { + /* start the linked list */ + current_item = head = new_item; + } + else + { + /* add to the end and advance */ + current_item->next = new_item; + new_item->prev = current_item; + current_item = new_item; + } + + /* parse next value */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_value(current_item, input_buffer)) + { + goto fail; /* failed to parse value */ + } + buffer_skip_whitespace(input_buffer); + } + while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); + + if (cannot_access_at_index(input_buffer, 0) || buffer_at_offset(input_buffer)[0] != ']') + { + goto fail; /* expected end of array */ + } + +success: + input_buffer->depth--; + + if (head != NULL) { + head->prev = current_item; + } + + item->type = cJSON_Array; + item->child = head; + + input_buffer->offset++; + + return true; + +fail: + if (head != NULL) + { + cJSON_Delete(head); + } + + return false; +} + +/* Render an array to text */ +static cJSON_bool print_array(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + size_t length = 0; + cJSON *current_element = item->child; + + if (output_buffer == NULL) + { + return false; + } + + /* Compose the output array. */ + /* opening square bracket */ + output_pointer = ensure(output_buffer, 1); + if (output_pointer == NULL) + { + return false; + } + + *output_pointer = '['; + output_buffer->offset++; + output_buffer->depth++; + + while (current_element != NULL) + { + if (!print_value(current_element, output_buffer)) + { + return false; + } + update_offset(output_buffer); + if (current_element->next) + { + length = (size_t) (output_buffer->format ? 2 : 1); + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ','; + if(output_buffer->format) + { + *output_pointer++ = ' '; + } + *output_pointer = '\0'; + output_buffer->offset += length; + } + current_element = current_element->next; + } + + output_pointer = ensure(output_buffer, 2); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ']'; + *output_pointer = '\0'; + output_buffer->depth--; + + return true; +} + +/* Build an object from the text. */ +static cJSON_bool parse_object(cJSON * const item, parse_buffer * const input_buffer) +{ + cJSON *head = NULL; /* linked list head */ + cJSON *current_item = NULL; + + if (input_buffer->depth >= CJSON_NESTING_LIMIT) + { + return false; /* to deeply nested */ + } + input_buffer->depth++; + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '{')) + { + goto fail; /* not an object */ + } + + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '}')) + { + goto success; /* empty object */ + } + + /* check if we skipped to the end of the buffer */ + if (cannot_access_at_index(input_buffer, 0)) + { + input_buffer->offset--; + goto fail; + } + + /* step back to character in front of the first element */ + input_buffer->offset--; + /* loop through the comma separated array elements */ + do + { + /* allocate next item */ + cJSON *new_item = cJSON_New_Item(&(input_buffer->hooks)); + if (new_item == NULL) + { + goto fail; /* allocation failure */ + } + + /* attach next item to list */ + if (head == NULL) + { + /* start the linked list */ + current_item = head = new_item; + } + else + { + /* add to the end and advance */ + current_item->next = new_item; + new_item->prev = current_item; + current_item = new_item; + } + + /* parse the name of the child */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_string(current_item, input_buffer)) + { + goto fail; /* failed to parse name */ + } + buffer_skip_whitespace(input_buffer); + + /* swap valuestring and string, because we parsed the name */ + current_item->string = current_item->valuestring; + current_item->valuestring = NULL; + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != ':')) + { + goto fail; /* invalid object */ + } + + /* parse the value */ + input_buffer->offset++; + buffer_skip_whitespace(input_buffer); + if (!parse_value(current_item, input_buffer)) + { + goto fail; /* failed to parse value */ + } + buffer_skip_whitespace(input_buffer); + } + while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); + + if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '}')) + { + goto fail; /* expected end of object */ + } + +success: + input_buffer->depth--; + + if (head != NULL) { + head->prev = current_item; + } + + item->type = cJSON_Object; + item->child = head; + + input_buffer->offset++; + return true; + +fail: + if (head != NULL) + { + cJSON_Delete(head); + } + + return false; +} + +/* Render an object to text. */ +static cJSON_bool print_object(const cJSON * const item, printbuffer * const output_buffer) +{ + unsigned char *output_pointer = NULL; + size_t length = 0; + cJSON *current_item = item->child; + + if (output_buffer == NULL) + { + return false; + } + + /* Compose the output: */ + length = (size_t) (output_buffer->format ? 2 : 1); /* fmt: {\n */ + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + + *output_pointer++ = '{'; + output_buffer->depth++; + if (output_buffer->format) + { + *output_pointer++ = '\n'; + } + output_buffer->offset += length; + + while (current_item) + { + if (output_buffer->format) + { + size_t i; + output_pointer = ensure(output_buffer, output_buffer->depth); + if (output_pointer == NULL) + { + return false; + } + for (i = 0; i < output_buffer->depth; i++) + { + *output_pointer++ = '\t'; + } + output_buffer->offset += output_buffer->depth; + } + + /* print key */ + if (!print_string_ptr((unsigned char*)current_item->string, output_buffer)) + { + return false; + } + update_offset(output_buffer); + + length = (size_t) (output_buffer->format ? 2 : 1); + output_pointer = ensure(output_buffer, length); + if (output_pointer == NULL) + { + return false; + } + *output_pointer++ = ':'; + if (output_buffer->format) + { + *output_pointer++ = '\t'; + } + output_buffer->offset += length; + + /* print value */ + if (!print_value(current_item, output_buffer)) + { + return false; + } + update_offset(output_buffer); + + /* print comma if not last */ + length = ((size_t)(output_buffer->format ? 1 : 0) + (size_t)(current_item->next ? 1 : 0)); + output_pointer = ensure(output_buffer, length + 1); + if (output_pointer == NULL) + { + return false; + } + if (current_item->next) + { + *output_pointer++ = ','; + } + + if (output_buffer->format) + { + *output_pointer++ = '\n'; + } + *output_pointer = '\0'; + output_buffer->offset += length; + + current_item = current_item->next; + } + + output_pointer = ensure(output_buffer, output_buffer->format ? (output_buffer->depth + 1) : 2); + if (output_pointer == NULL) + { + return false; + } + if (output_buffer->format) + { + size_t i; + for (i = 0; i < (output_buffer->depth - 1); i++) + { + *output_pointer++ = '\t'; + } + } + *output_pointer++ = '}'; + *output_pointer = '\0'; + output_buffer->depth--; + + return true; +} + +/* Get Array size/item / object item. */ +CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array) +{ + cJSON *child = NULL; + size_t size = 0; + + if (array == NULL) + { + return 0; + } + + child = array->child; + + while(child != NULL) + { + size++; + child = child->next; + } + + /* FIXME: Can overflow here. Cannot be fixed without breaking the API */ + + return (int)size; +} + +static cJSON* get_array_item(const cJSON *array, size_t index) +{ + cJSON *current_child = NULL; + + if (array == NULL) + { + return NULL; + } + + current_child = array->child; + while ((current_child != NULL) && (index > 0)) + { + index--; + current_child = current_child->next; + } + + return current_child; +} + +CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index) +{ + if (index < 0) + { + return NULL; + } + + return get_array_item(array, (size_t)index); +} + +static cJSON *get_object_item(const cJSON * const object, const char * const name, const cJSON_bool case_sensitive) +{ + cJSON *current_element = NULL; + + if ((object == NULL) || (name == NULL)) + { + return NULL; + } + + current_element = object->child; + if (case_sensitive) + { + while ((current_element != NULL) && (current_element->string != NULL) && (strcmp(name, current_element->string) != 0)) + { + current_element = current_element->next; + } + } + else + { + while ((current_element != NULL) && (case_insensitive_strcmp((const unsigned char*)name, (const unsigned char*)(current_element->string)) != 0)) + { + current_element = current_element->next; + } + } + + if ((current_element == NULL) || (current_element->string == NULL)) { + return NULL; + } + + return current_element; +} + +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string) +{ + return get_object_item(object, string, false); +} + +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string) +{ + return get_object_item(object, string, true); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string) +{ + return cJSON_GetObjectItem(object, string) ? 1 : 0; +} + +/* Utility for array list handling. */ +static void suffix_object(cJSON *prev, cJSON *item) +{ + prev->next = item; + item->prev = prev; +} + +/* Utility for handling references. */ +static cJSON *create_reference(const cJSON *item, const internal_hooks * const hooks) +{ + cJSON *reference = NULL; + if (item == NULL) + { + return NULL; + } + + reference = cJSON_New_Item(hooks); + if (reference == NULL) + { + return NULL; + } + + memcpy(reference, item, sizeof(cJSON)); + reference->string = NULL; + reference->type |= cJSON_IsReference; + reference->next = reference->prev = NULL; + return reference; +} + +static cJSON_bool add_item_to_array(cJSON *array, cJSON *item) +{ + cJSON *child = NULL; + + if ((item == NULL) || (array == NULL) || (array == item)) + { + return false; + } + + child = array->child; + /* + * To find the last item in array quickly, we use prev in array + */ + if (child == NULL) + { + /* list is empty, start new one */ + array->child = item; + item->prev = item; + item->next = NULL; + } + else + { + /* append to the end */ + if (child->prev) + { + suffix_object(child->prev, item); + array->child->prev = item; + } + } + + return true; +} + +/* Add item to array/object. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item) +{ + return add_item_to_array(array, item); +} + +#if defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))) + #pragma GCC diagnostic push +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif +/* helper function to cast away const */ +static void* cast_away_const(const void* string) +{ + return (void*)string; +} +#if defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 5)))) + #pragma GCC diagnostic pop +#endif + + +static cJSON_bool add_item_to_object(cJSON * const object, const char * const string, cJSON * const item, const internal_hooks * const hooks, const cJSON_bool constant_key) +{ + char *new_key = NULL; + int new_type = cJSON_Invalid; + + if ((object == NULL) || (string == NULL) || (item == NULL) || (object == item)) + { + return false; + } + + if (constant_key) + { + new_key = (char*)cast_away_const(string); + new_type = item->type | cJSON_StringIsConst; + } + else + { + new_key = (char*)cJSON_strdup((const unsigned char*)string, hooks); + if (new_key == NULL) + { + return false; + } + + new_type = item->type & ~cJSON_StringIsConst; + } + + if (!(item->type & cJSON_StringIsConst) && (item->string != NULL)) + { + hooks->deallocate(item->string); + } + + item->string = new_key; + item->type = new_type; + + return add_item_to_array(object, item); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item) +{ + return add_item_to_object(object, string, item, &global_hooks, false); +} + +/* Add an item to an object with constant string as key */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item) +{ + return add_item_to_object(object, string, item, &global_hooks, true); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item) +{ + if (array == NULL) + { + return false; + } + + return add_item_to_array(array, create_reference(item, &global_hooks)); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item) +{ + if ((object == NULL) || (string == NULL)) + { + return false; + } + + return add_item_to_object(object, string, create_reference(item, &global_hooks), &global_hooks, false); +} + +CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name) +{ + cJSON *null = cJSON_CreateNull(); + if (add_item_to_object(object, name, null, &global_hooks, false)) + { + return null; + } + + cJSON_Delete(null); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name) +{ + cJSON *true_item = cJSON_CreateTrue(); + if (add_item_to_object(object, name, true_item, &global_hooks, false)) + { + return true_item; + } + + cJSON_Delete(true_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name) +{ + cJSON *false_item = cJSON_CreateFalse(); + if (add_item_to_object(object, name, false_item, &global_hooks, false)) + { + return false_item; + } + + cJSON_Delete(false_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean) +{ + cJSON *bool_item = cJSON_CreateBool(boolean); + if (add_item_to_object(object, name, bool_item, &global_hooks, false)) + { + return bool_item; + } + + cJSON_Delete(bool_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number) +{ + cJSON *number_item = cJSON_CreateNumber(number); + if (add_item_to_object(object, name, number_item, &global_hooks, false)) + { + return number_item; + } + + cJSON_Delete(number_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string) +{ + cJSON *string_item = cJSON_CreateString(string); + if (add_item_to_object(object, name, string_item, &global_hooks, false)) + { + return string_item; + } + + cJSON_Delete(string_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw) +{ + cJSON *raw_item = cJSON_CreateRaw(raw); + if (add_item_to_object(object, name, raw_item, &global_hooks, false)) + { + return raw_item; + } + + cJSON_Delete(raw_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name) +{ + cJSON *object_item = cJSON_CreateObject(); + if (add_item_to_object(object, name, object_item, &global_hooks, false)) + { + return object_item; + } + + cJSON_Delete(object_item); + return NULL; +} + +CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name) +{ + cJSON *array = cJSON_CreateArray(); + if (add_item_to_object(object, name, array, &global_hooks, false)) + { + return array; + } + + cJSON_Delete(array); + return NULL; +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item) +{ + if ((parent == NULL) || (item == NULL)) + { + return NULL; + } + + if (item != parent->child) + { + /* not the first element */ + item->prev->next = item->next; + } + if (item->next != NULL) + { + /* not the last element */ + item->next->prev = item->prev; + } + + if (item == parent->child) + { + /* first element */ + parent->child = item->next; + } + else if (item->next == NULL) + { + /* last element */ + parent->child->prev = item->prev; + } + + /* make sure the detached item doesn't point anywhere anymore */ + item->prev = NULL; + item->next = NULL; + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which) +{ + if (which < 0) + { + return NULL; + } + + return cJSON_DetachItemViaPointer(array, get_array_item(array, (size_t)which)); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which) +{ + cJSON_Delete(cJSON_DetachItemFromArray(array, which)); +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string) +{ + cJSON *to_detach = cJSON_GetObjectItem(object, string); + + return cJSON_DetachItemViaPointer(object, to_detach); +} + +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string) +{ + cJSON *to_detach = cJSON_GetObjectItemCaseSensitive(object, string); + + return cJSON_DetachItemViaPointer(object, to_detach); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string) +{ + cJSON_Delete(cJSON_DetachItemFromObject(object, string)); +} + +CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string) +{ + cJSON_Delete(cJSON_DetachItemFromObjectCaseSensitive(object, string)); +} + +/* Replace array/object items with new ones. */ +CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem) +{ + cJSON *after_inserted = NULL; + + if (which < 0) + { + return false; + } + + after_inserted = get_array_item(array, (size_t)which); + if (after_inserted == NULL) + { + return add_item_to_array(array, newitem); + } + + newitem->next = after_inserted; + newitem->prev = after_inserted->prev; + after_inserted->prev = newitem; + if (after_inserted == array->child) + { + array->child = newitem; + } + else + { + newitem->prev->next = newitem; + } + return true; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement) +{ + if ((parent == NULL) || (replacement == NULL) || (item == NULL)) + { + return false; + } + + if (replacement == item) + { + return true; + } + + replacement->next = item->next; + replacement->prev = item->prev; + + if (replacement->next != NULL) + { + replacement->next->prev = replacement; + } + if (parent->child == item) + { + if (parent->child->prev == parent->child) + { + replacement->prev = replacement; + } + parent->child = replacement; + } + else + { /* + * To find the last item in array quickly, we use prev in array. + * We can't modify the last item's next pointer where this item was the parent's child + */ + if (replacement->prev != NULL) + { + replacement->prev->next = replacement; + } + if (replacement->next == NULL) + { + parent->child->prev = replacement; + } + } + + item->next = NULL; + item->prev = NULL; + cJSON_Delete(item); + + return true; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem) +{ + if (which < 0) + { + return false; + } + + return cJSON_ReplaceItemViaPointer(array, get_array_item(array, (size_t)which), newitem); +} + +static cJSON_bool replace_item_in_object(cJSON *object, const char *string, cJSON *replacement, cJSON_bool case_sensitive) +{ + if ((replacement == NULL) || (string == NULL)) + { + return false; + } + + /* replace the name in the replacement */ + if (!(replacement->type & cJSON_StringIsConst) && (replacement->string != NULL)) + { + cJSON_free(replacement->string); + } + replacement->string = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks); + replacement->type &= ~cJSON_StringIsConst; + + return cJSON_ReplaceItemViaPointer(object, get_object_item(object, string, case_sensitive), replacement); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *newitem) +{ + return replace_item_in_object(object, string, newitem, false); +} + +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object, const char *string, cJSON *newitem) +{ + return replace_item_in_object(object, string, newitem, true); +} + +/* Create basic types: */ +CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_NULL; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_True; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_False; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = boolean ? cJSON_True : cJSON_False; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_Number; + item->valuedouble = num; + + /* use saturation in case of overflow */ + if (num >= INT_MAX) + { + item->valueint = INT_MAX; + } + else if (num <= (double)INT_MIN) + { + item->valueint = INT_MIN; + } + else + { + item->valueint = (int)num; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_String; + item->valuestring = (char*)cJSON_strdup((const unsigned char*)string, &global_hooks); + if(!item->valuestring) + { + cJSON_Delete(item); + return NULL; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) + { + item->type = cJSON_String | cJSON_IsReference; + item->valuestring = (char*)cast_away_const(string); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) { + item->type = cJSON_Object | cJSON_IsReference; + item->child = (cJSON*)cast_away_const(child); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child) { + cJSON *item = cJSON_New_Item(&global_hooks); + if (item != NULL) { + item->type = cJSON_Array | cJSON_IsReference; + item->child = (cJSON*)cast_away_const(child); + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type = cJSON_Raw; + item->valuestring = (char*)cJSON_strdup((const unsigned char*)raw, &global_hooks); + if(!item->valuestring) + { + cJSON_Delete(item); + return NULL; + } + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if(item) + { + item->type=cJSON_Array; + } + + return item; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void) +{ + cJSON *item = cJSON_New_Item(&global_hooks); + if (item) + { + item->type = cJSON_Object; + } + + return item; +} + +/* Create Arrays: */ +CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber(numbers[i]); + if (!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber((double)numbers[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (numbers == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for(i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateNumber(numbers[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p, n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count) +{ + size_t i = 0; + cJSON *n = NULL; + cJSON *p = NULL; + cJSON *a = NULL; + + if ((count < 0) || (strings == NULL)) + { + return NULL; + } + + a = cJSON_CreateArray(); + + for (i = 0; a && (i < (size_t)count); i++) + { + n = cJSON_CreateString(strings[i]); + if(!n) + { + cJSON_Delete(a); + return NULL; + } + if(!i) + { + a->child = n; + } + else + { + suffix_object(p,n); + } + p = n; + } + + if (a && a->child) { + a->child->prev = n; + } + + return a; +} + +/* Duplication */ +CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse) +{ + cJSON *newitem = NULL; + cJSON *child = NULL; + cJSON *next = NULL; + cJSON *newchild = NULL; + + /* Bail on bad ptr */ + if (!item) + { + goto fail; + } + /* Create new item */ + newitem = cJSON_New_Item(&global_hooks); + if (!newitem) + { + goto fail; + } + /* Copy over all vars */ + newitem->type = item->type & (~cJSON_IsReference); + newitem->valueint = item->valueint; + newitem->valuedouble = item->valuedouble; + if (item->valuestring) + { + newitem->valuestring = (char*)cJSON_strdup((unsigned char*)item->valuestring, &global_hooks); + if (!newitem->valuestring) + { + goto fail; + } + } + if (item->string) + { + newitem->string = (item->type&cJSON_StringIsConst) ? item->string : (char*)cJSON_strdup((unsigned char*)item->string, &global_hooks); + if (!newitem->string) + { + goto fail; + } + } + /* If non-recursive, then we're done! */ + if (!recurse) + { + return newitem; + } + /* Walk the ->next chain for the child. */ + child = item->child; + while (child != NULL) + { + newchild = cJSON_Duplicate(child, true); /* Duplicate (with recurse) each item in the ->next chain */ + if (!newchild) + { + goto fail; + } + if (next != NULL) + { + /* If newitem->child already set, then crosswire ->prev and ->next and move on */ + next->next = newchild; + newchild->prev = next; + next = newchild; + } + else + { + /* Set newitem->child and move to it */ + newitem->child = newchild; + next = newchild; + } + child = child->next; + } + if (newitem && newitem->child) + { + newitem->child->prev = newchild; + } + + return newitem; + +fail: + if (newitem != NULL) + { + cJSON_Delete(newitem); + } + + return NULL; +} + +static void skip_oneline_comment(char **input) +{ + *input += static_strlen("//"); + + for (; (*input)[0] != '\0'; ++(*input)) + { + if ((*input)[0] == '\n') { + *input += static_strlen("\n"); + return; + } + } +} + +static void skip_multiline_comment(char **input) +{ + *input += static_strlen("/*"); + + for (; (*input)[0] != '\0'; ++(*input)) + { + if (((*input)[0] == '*') && ((*input)[1] == '/')) + { + *input += static_strlen("*/"); + return; + } + } +} + +static void minify_string(char **input, char **output) { + (*output)[0] = (*input)[0]; + *input += static_strlen("\""); + *output += static_strlen("\""); + + + for (; (*input)[0] != '\0'; (void)++(*input), ++(*output)) { + (*output)[0] = (*input)[0]; + + if ((*input)[0] == '\"') { + (*output)[0] = '\"'; + *input += static_strlen("\""); + *output += static_strlen("\""); + return; + } else if (((*input)[0] == '\\') && ((*input)[1] == '\"')) { + (*output)[1] = (*input)[1]; + *input += static_strlen("\""); + *output += static_strlen("\""); + } + } +} + +CJSON_PUBLIC(void) cJSON_Minify(char *json) +{ + char *into = json; + + if (json == NULL) + { + return; + } + + while (json[0] != '\0') + { + switch (json[0]) + { + case ' ': + case '\t': + case '\r': + case '\n': + json++; + break; + + case '/': + if (json[1] == '/') + { + skip_oneline_comment(&json); + } + else if (json[1] == '*') + { + skip_multiline_comment(&json); + } else { + json++; + } + break; + + case '\"': + minify_string(&json, (char**)&into); + break; + + default: + into[0] = json[0]; + json++; + into++; + } + } + + /* and null-terminate. */ + *into = '\0'; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Invalid; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_False; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xff) == cJSON_True; +} + + +CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & (cJSON_True | cJSON_False)) != 0; +} +CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_NULL; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Number; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_String; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Array; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Object; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item) +{ + if (item == NULL) + { + return false; + } + + return (item->type & 0xFF) == cJSON_Raw; +} + +CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive) +{ + if ((a == NULL) || (b == NULL) || ((a->type & 0xFF) != (b->type & 0xFF)) || cJSON_IsInvalid(a)) + { + return false; + } + + /* check if type is valid */ + switch (a->type & 0xFF) + { + case cJSON_False: + case cJSON_True: + case cJSON_NULL: + case cJSON_Number: + case cJSON_String: + case cJSON_Raw: + case cJSON_Array: + case cJSON_Object: + break; + + default: + return false; + } + + /* identical objects are equal */ + if (a == b) + { + return true; + } + + switch (a->type & 0xFF) + { + /* in these cases and equal type is enough */ + case cJSON_False: + case cJSON_True: + case cJSON_NULL: + return true; + + case cJSON_Number: + if (compare_double(a->valuedouble, b->valuedouble)) + { + return true; + } + return false; + + case cJSON_String: + case cJSON_Raw: + if ((a->valuestring == NULL) || (b->valuestring == NULL)) + { + return false; + } + if (strcmp(a->valuestring, b->valuestring) == 0) + { + return true; + } + + return false; + + case cJSON_Array: + { + cJSON *a_element = a->child; + cJSON *b_element = b->child; + + for (; (a_element != NULL) && (b_element != NULL);) + { + if (!cJSON_Compare(a_element, b_element, case_sensitive)) + { + return false; + } + + a_element = a_element->next; + b_element = b_element->next; + } + + /* one of the arrays is longer than the other */ + if (a_element != b_element) { + return false; + } + + return true; + } + + case cJSON_Object: + { + cJSON *a_element = NULL; + cJSON *b_element = NULL; + cJSON_ArrayForEach(a_element, a) + { + /* TODO This has O(n^2) runtime, which is horrible! */ + b_element = get_object_item(b, a_element->string, case_sensitive); + if (b_element == NULL) + { + return false; + } + + if (!cJSON_Compare(a_element, b_element, case_sensitive)) + { + return false; + } + } + + /* doing this twice, once on a and b to prevent true comparison if a subset of b + * TODO: Do this the proper way, this is just a fix for now */ + cJSON_ArrayForEach(b_element, b) + { + a_element = get_object_item(a, b_element->string, case_sensitive); + if (a_element == NULL) + { + return false; + } + + if (!cJSON_Compare(b_element, a_element, case_sensitive)) + { + return false; + } + } + + return true; + } + + default: + return false; + } +} + +CJSON_PUBLIC(void *) cJSON_malloc(size_t size) +{ + return global_hooks.allocate(size); +} + +CJSON_PUBLIC(void) cJSON_free(void *object) +{ + global_hooks.deallocate(object); +} diff --git a/3rdPartner/libhv/examples/jsonrpc/cJSON.h b/3rdPartner/libhv/examples/jsonrpc/cJSON.h new file mode 100644 index 0000000..e97e5f4 --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/cJSON.h @@ -0,0 +1,293 @@ +/* + Copyright (c) 2009-2017 Dave Gamble and cJSON contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +#ifndef cJSON__h +#define cJSON__h + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)) +#define __WINDOWS__ +#endif + +#ifdef __WINDOWS__ + +/* When compiling for windows, we specify a specific calling convention to avoid issues where we are being called from a project with a different default calling convention. For windows you have 3 define options: + +CJSON_HIDE_SYMBOLS - Define this in the case where you don't want to ever dllexport symbols +CJSON_EXPORT_SYMBOLS - Define this on library build when you want to dllexport symbols (default) +CJSON_IMPORT_SYMBOLS - Define this if you want to dllimport symbol + +For *nix builds that support visibility attribute, you can define similar behavior by + +setting default visibility to hidden by adding +-fvisibility=hidden (for gcc) +or +-xldscope=hidden (for sun cc) +to CFLAGS + +then using the CJSON_API_VISIBILITY flag to "export" the same symbols the way CJSON_EXPORT_SYMBOLS does + +*/ + +#define CJSON_CDECL __cdecl +#define CJSON_STDCALL __stdcall + +/* export symbols by default, this is necessary for copy pasting the C and header file */ +#if !defined(CJSON_HIDE_SYMBOLS) && !defined(CJSON_IMPORT_SYMBOLS) && !defined(CJSON_EXPORT_SYMBOLS) +#define CJSON_EXPORT_SYMBOLS +#endif + +#if defined(CJSON_HIDE_SYMBOLS) +#define CJSON_PUBLIC(type) type CJSON_STDCALL +#elif defined(CJSON_EXPORT_SYMBOLS) +#define CJSON_PUBLIC(type) __declspec(dllexport) type CJSON_STDCALL +#elif defined(CJSON_IMPORT_SYMBOLS) +#define CJSON_PUBLIC(type) __declspec(dllimport) type CJSON_STDCALL +#endif +#else /* !__WINDOWS__ */ +#define CJSON_CDECL +#define CJSON_STDCALL + +#if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(CJSON_API_VISIBILITY) +#define CJSON_PUBLIC(type) __attribute__((visibility("default"))) type +#else +#define CJSON_PUBLIC(type) type +#endif +#endif + +/* project version */ +#define CJSON_VERSION_MAJOR 1 +#define CJSON_VERSION_MINOR 7 +#define CJSON_VERSION_PATCH 14 + +#include + +/* cJSON Types: */ +#define cJSON_Invalid (0) +#define cJSON_False (1 << 0) +#define cJSON_True (1 << 1) +#define cJSON_NULL (1 << 2) +#define cJSON_Number (1 << 3) +#define cJSON_String (1 << 4) +#define cJSON_Array (1 << 5) +#define cJSON_Object (1 << 6) +#define cJSON_Raw (1 << 7) /* raw json */ + +#define cJSON_IsReference 256 +#define cJSON_StringIsConst 512 + +/* The cJSON structure: */ +typedef struct cJSON +{ + /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ + struct cJSON *next; + struct cJSON *prev; + /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ + struct cJSON *child; + + /* The type of the item, as above. */ + int type; + + /* The item's string, if type==cJSON_String and type == cJSON_Raw */ + char *valuestring; + /* writing to valueint is DEPRECATED, use cJSON_SetNumberValue instead */ + int valueint; + /* The item's number, if type==cJSON_Number */ + double valuedouble; + + /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ + char *string; +} cJSON; + +typedef struct cJSON_Hooks +{ + /* malloc/free are CDECL on Windows regardless of the default calling convention of the compiler, so ensure the hooks allow passing those functions directly. */ + void *(CJSON_CDECL *malloc_fn)(size_t sz); + void (CJSON_CDECL *free_fn)(void *ptr); +} cJSON_Hooks; + +typedef int cJSON_bool; + +/* Limits how deeply nested arrays/objects can be before cJSON rejects to parse them. + * This is to prevent stack overflows. */ +#ifndef CJSON_NESTING_LIMIT +#define CJSON_NESTING_LIMIT 1000 +#endif + +/* returns the version of cJSON as a string */ +CJSON_PUBLIC(const char*) cJSON_Version(void); + +/* Supply malloc, realloc and free functions to cJSON */ +CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks); + +/* Memory Management: the caller is always responsible to free the results from all variants of cJSON_Parse (with cJSON_Delete) and cJSON_Print (with stdlib free, cJSON_Hooks.free_fn, or cJSON_free as appropriate). The exception is cJSON_PrintPreallocated, where the caller has full responsibility of the buffer. */ +/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */ +CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value); +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length); +/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */ +/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error so will match cJSON_GetErrorPtr(). */ +CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated); +CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated); + +/* Render a cJSON entity to text for transfer/storage. */ +CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item); +/* Render a cJSON entity to text for transfer/storage without any formatting. */ +CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item); +/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */ +CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt); +/* Render a cJSON entity to text using a buffer already allocated in memory with given length. Returns 1 on success and 0 on failure. */ +/* NOTE: cJSON is not always 100% accurate in estimating how much memory it will use, so to be safe allocate 5 bytes more than you actually need */ +CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format); +/* Delete a cJSON entity and all subentities. */ +CJSON_PUBLIC(void) cJSON_Delete(cJSON *item); + +/* Returns the number of items in an array (or object). */ +CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array); +/* Retrieve item number "index" from array "array". Returns NULL if unsuccessful. */ +CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index); +/* Get item "string" from object. Case insensitive. */ +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string); +CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string); +CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string); +/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ +CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void); + +/* Check item type and return its value */ +CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item); +CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item); + +/* These functions check the type of an item */ +CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item); +CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item); + +/* These calls create a cJSON item of the appropriate type. */ +CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean); +CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num); +CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string); +/* raw json */ +CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw); +CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void); +CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void); + +/* Create a string where valuestring references a string so + * it will not be freed by cJSON_Delete */ +CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string); +/* Create an object/array that only references it's elements so + * they will not be freed by cJSON_Delete */ +CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child); +CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child); + +/* These utilities create an Array of count items. + * The parameter count cannot be greater than the number of elements in the number array, otherwise array access will be out of bounds.*/ +CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count); +CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count); + +/* Append item to the specified array/object. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item); +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item); +/* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object. + * WARNING: When this function was used, make sure to always check that (item->type & cJSON_StringIsConst) is zero before + * writing to `item->string` */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item); +/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); +CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item); + +/* Remove/Detach items from Arrays/Objects. */ +CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which); +CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string); +CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string); +CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string); +CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string); + +/* Update array items. */ +CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */ +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem); +CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem); + +/* Duplicate a cJSON item */ +CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse); +/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will + * need to be released. With recurse!=0, it will duplicate any children connected to the item. + * The item->next and ->prev pointers are always zero on return from Duplicate. */ +/* Recursively compare two cJSON items for equality. If either a or b is NULL or invalid, they will be considered unequal. + * case_sensitive determines if object keys are treated case sensitive (1) or case insensitive (0) */ +CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive); + +/* Minify a strings, remove blank characters(such as ' ', '\t', '\r', '\n') from strings. + * The input pointer json cannot point to a read-only address area, such as a string constant, + * but should point to a readable and writable adress area. */ +CJSON_PUBLIC(void) cJSON_Minify(char *json); + +/* Helper functions for creating and adding items to an object at the same time. + * They return the added item or NULL on failure. */ +CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean); +CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number); +CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string); +CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw); +CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name); +CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name); + +/* When assigning an integer value, it needs to be propagated to valuedouble too. */ +#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number)) +/* helper for the cJSON_SetNumberValue macro */ +CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number); +#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number)) +/* Change the valuestring of a cJSON_String object, only takes effect when type of object is cJSON_String */ +CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring); + +/* Macro for iterating over an array or object */ +#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next) + +/* malloc/free objects using the malloc/free functions that have been set with cJSON_InitHooks */ +CJSON_PUBLIC(void *) cJSON_malloc(size_t size); +CJSON_PUBLIC(void) cJSON_free(void *object); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/3rdPartner/libhv/examples/jsonrpc/handler.h b/3rdPartner/libhv/examples/jsonrpc/handler.h new file mode 100644 index 0000000..18d1a1d --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/handler.h @@ -0,0 +1,82 @@ +#ifndef HV_JSON_RPC_HANDLER_H_ +#define HV_JSON_RPC_HANDLER_H_ + +#include "router.h" + +void error_response(cJSON* jres, int code, const char* message) { + cJSON* jerror = cJSON_CreateObject(); + cJSON_AddItemToObject(jerror, "code", cJSON_CreateNumber(code)); + cJSON_AddItemToObject(jerror, "message", cJSON_CreateString(message)); + cJSON_AddItemToObject(jres, "error", jerror); +} + +void not_found(cJSON* jreq, cJSON* jres) { + error_response(jres, 404, "Not Found"); +} + +void bad_request(cJSON* jreq, cJSON* jres) { + error_response(jres, 400, "Bad Request"); +} + +void calc_add(cJSON* jreq, cJSON* jres) { + cJSON* jparams = cJSON_GetObjectItem(jreq, "params"); + if (cJSON_GetArraySize(jparams) != 2) { + bad_request(jreq, jres); + return; + } + cJSON* jnum1 = cJSON_GetArrayItem(jparams, 0); + int num1 = cJSON_GetNumberValue(jnum1); + cJSON* jnum2 = cJSON_GetArrayItem(jparams, 1); + int num2 = cJSON_GetNumberValue(jnum2); + int result = num1 + num2; + cJSON_AddItemToObject(jres, "result", cJSON_CreateNumber(result)); +} + +void calc_sub(cJSON* jreq, cJSON* jres) { + cJSON* jparams = cJSON_GetObjectItem(jreq, "params"); + if (cJSON_GetArraySize(jparams) != 2) { + bad_request(jreq, jres); + return; + } + cJSON* jnum1 = cJSON_GetArrayItem(jparams, 0); + int num1 = cJSON_GetNumberValue(jnum1); + cJSON* jnum2 = cJSON_GetArrayItem(jparams, 1); + int num2 = cJSON_GetNumberValue(jnum2); + int result = num1 - num2; + cJSON_AddItemToObject(jres, "result", cJSON_CreateNumber(result)); +} + +void calc_mul(cJSON* jreq, cJSON* jres) { + cJSON* jparams = cJSON_GetObjectItem(jreq, "params"); + if (cJSON_GetArraySize(jparams) != 2) { + bad_request(jreq, jres); + return; + } + cJSON* jnum1 = cJSON_GetArrayItem(jparams, 0); + int num1 = cJSON_GetNumberValue(jnum1); + cJSON* jnum2 = cJSON_GetArrayItem(jparams, 1); + int num2 = cJSON_GetNumberValue(jnum2); + int result = num1 * num2; + cJSON_AddItemToObject(jres, "result", cJSON_CreateNumber(result)); +} + +void calc_div(cJSON* jreq, cJSON* jres) { + cJSON* jparams = cJSON_GetObjectItem(jreq, "params"); + if (cJSON_GetArraySize(jparams) != 2) { + bad_request(jreq, jres); + return; + } + cJSON* jnum1 = cJSON_GetArrayItem(jparams, 0); + int num1 = cJSON_GetNumberValue(jnum1); + cJSON* jnum2 = cJSON_GetArrayItem(jparams, 1); + int num2 = cJSON_GetNumberValue(jnum2); + if (num2 == 0) { + bad_request(jreq, jres); + return; + } else { + int result = num1 / num2; + cJSON_AddItemToObject(jres, "result", cJSON_CreateNumber(result)); + } +} + +#endif // HV_JSON_RPC_ROUTER_H_ diff --git a/3rdPartner/libhv/examples/jsonrpc/jsonrpc_client.c b/3rdPartner/libhv/examples/jsonrpc/jsonrpc_client.c new file mode 100644 index 0000000..82d8c67 --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/jsonrpc_client.c @@ -0,0 +1,136 @@ +/* + * json rpc client + * + * @build make jsonrpc + * @server bin/jsonrpc_server 1234 + * @client bin/jsonrpc_client 127.0.0.1 1234 add 1 2 + * + */ + +#include "hloop.h" +#include "hatomic.h" +#include "hbase.h" +#include "hsocket.h" + +#include "cJSON.h" + +// hloop_create_tcp_client -> on_connect -> hio_write -> hio_read -> on_recv + +static int verbose = 0; +static unpack_setting_t jsonrpc_unpack_setting; + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + cJSON* jreq = (cJSON*)(hevent_userdata(io)); + if (jreq) { + cJSON_Delete(jreq); + hevent_set_userdata(io, NULL); + } + + hloop_stop(hevent_loop(io)); +} + +static void on_recv(hio_t* io, void* readbuf, int readbytes) { + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + + char* resp_str = (char*)readbuf; + printf("< %s\n", resp_str); + // cJSON_Parse + cJSON* jres = cJSON_Parse(resp_str); + cJSON* jerror = cJSON_GetObjectItem(jres, "error"); + cJSON* jresult = cJSON_GetObjectItem(jres, "result"); + // ... + cJSON_Delete(jres); + + hio_close(io); +} + +static void on_connect(hio_t* io) { + printf("on_connect fd=%d\n", hio_fd(io)); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("connect connfd=%d [%s] => [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + + hio_setcb_read(io, on_recv); + hio_set_unpack(io, &jsonrpc_unpack_setting); + hio_read(io); + + cJSON* jreq = (cJSON*)(hevent_userdata(io)); + hevent_set_userdata(io, NULL); + assert(jreq != NULL); + + // cJSON_Print -> hio_write + char* req_str = cJSON_PrintUnformatted(jreq); + printf("> %s\n", req_str); + // NOTE: +1 for \0 + hio_write(io, req_str, strlen(req_str) + 1); + + cJSON_Delete(jreq); + cJSON_free(req_str); +} + +static int jsonrpc_call(hloop_t* loop, const char* host, int port, const char* method, const char* param1, const char* param2) { + hio_t* connio = hio_create_socket(loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (connio == NULL) { + return -1; + } + // printf("connfd=%d\n", hio_fd(connio)); + + // construct request + cJSON* jreq = cJSON_CreateObject(); + static hatomic_t s_id = HATOMIC_VAR_INIT(0); + cJSON_AddItemToObject(jreq, "id", cJSON_CreateNumber(++s_id)); + cJSON_AddItemToObject(jreq, "method", cJSON_CreateString(method)); + cJSON* jparams = cJSON_CreateArray(); + cJSON_AddItemToArray(jparams, cJSON_CreateNumber(atoi(param1))); + cJSON_AddItemToArray(jparams, cJSON_CreateNumber(atoi(param2))); + cJSON_AddItemToObject(jreq, "params", jparams); + hevent_set_userdata(connio, jreq); + + hio_setcb_connect(connio, on_connect); + hio_setcb_close(connio, on_close); + hio_connect(connio); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 6) { + printf("Usage: %s host port method param1 param2\n", argv[0]); + printf("method = [add, sub, mul, div]\n"); + printf("Examples:\n"); + printf(" %s 127.0.0.1 1234 add 1 2\n", argv[0]); + printf(" %s 127.0.0.1 1234 div 1 0\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + const char* method = argv[3]; + const char* param1 = argv[4]; + const char* param2 = argv[5]; + + // init jsonrpc_unpack_setting + memset(&jsonrpc_unpack_setting, 0, sizeof(unpack_setting_t)); + jsonrpc_unpack_setting.mode = UNPACK_BY_DELIMITER; + jsonrpc_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + jsonrpc_unpack_setting.delimiter[0] = '\0'; + jsonrpc_unpack_setting.delimiter_bytes = 1; + + hloop_t* loop = hloop_new(0); + + jsonrpc_call(loop, host, port, method, param1, param2); + + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/jsonrpc/jsonrpc_server.c b/3rdPartner/libhv/examples/jsonrpc/jsonrpc_server.c new file mode 100644 index 0000000..b21af91 --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/jsonrpc_server.c @@ -0,0 +1,123 @@ +/* + * json rpc server + * + * @build make jsonrpc + * @server bin/jsonrpc_server 1234 + * @client bin/jsonrpc_client 127.0.0.1 1234 add 1 2 + * + */ + +#include "hloop.h" +#include "hbase.h" +#include "hsocket.h" + +#include "cJSON.h" +#include "router.h" +#include "handler.h" + +// hloop_create_tcp_server -> on_accept -> hio_read -> on_recv -> hio_write + +static int verbose = 0; +static unpack_setting_t jsonrpc_unpack_setting; + +jsonrpc_router router[] = { + {"add", calc_add}, + {"sub", calc_sub}, + {"mul", calc_mul}, + {"div", calc_div}, +}; +#define JSONRPC_ROUTER_NUM (sizeof(router)/sizeof(router[0])) + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); +} + +static void on_recv(hio_t* io, void* readbuf, int readbytes) { + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + + // cJSON_Parse -> router -> cJSON_Print -> hio_write + char* req_str = (char*)readbuf; + printf("> %s\n", req_str); + cJSON* jreq = cJSON_Parse(req_str); + cJSON* jres = cJSON_CreateObject(); + cJSON* jid = cJSON_GetObjectItem(jreq, "id"); + cJSON* jmethod = cJSON_GetObjectItem(jreq, "method"); + if (cJSON_IsNumber(jid)) { + long id = cJSON_GetNumberValue(jid); + cJSON_AddItemToObject(jres, "id", cJSON_CreateNumber(id)); + } + if (cJSON_IsString(jmethod)) { + // router + char* method = cJSON_GetStringValue(jmethod); + bool found = false; + for (int i = 0; i < JSONRPC_ROUTER_NUM; ++i) { + if (strcmp(method, router[i].method) == 0) { + found = true; + router[i].handler(jreq, jres); + break; + } + } + if (!found) { + not_found(jreq, jres); + } + } else { + bad_request(jreq, jres); + } + + char* resp_str = cJSON_PrintUnformatted(jres); + printf("< %s\n", resp_str); + // NOTE: +1 for \0 + hio_write(io, resp_str, strlen(resp_str) + 1); + + cJSON_Delete(jreq); + cJSON_Delete(jres); + cJSON_free(resp_str); +} + +static void on_accept(hio_t* io) { + printf("on_accept connfd=%d\n", hio_fd(io)); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_set_unpack(io, &jsonrpc_unpack_setting); + hio_read(io); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + // init jsonrpc_unpack_setting + memset(&jsonrpc_unpack_setting, 0, sizeof(unpack_setting_t)); + jsonrpc_unpack_setting.mode = UNPACK_BY_DELIMITER; + jsonrpc_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + jsonrpc_unpack_setting.delimiter[0] = '\0'; + jsonrpc_unpack_setting.delimiter_bytes = 1; + + hloop_t* loop = hloop_new(0); + hio_t* listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept); + if (listenio == NULL) { + return -20; + } + printf("listenfd=%d\n", hio_fd(listenio)); + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/jsonrpc/router.h b/3rdPartner/libhv/examples/jsonrpc/router.h new file mode 100644 index 0000000..1932747 --- /dev/null +++ b/3rdPartner/libhv/examples/jsonrpc/router.h @@ -0,0 +1,22 @@ +#ifndef HV_JSON_RPC_ROUTER_H_ +#define HV_JSON_RPC_ROUTER_H_ + +#include "cJSON.h" + +typedef void (*jsonrpc_handler)(cJSON* jreq, cJSON* jres); + +typedef struct { + const char* method; + jsonrpc_handler handler; +} jsonrpc_router; + +void error_response(cJSON* jres, int code, const char* message); +void not_found(cJSON* jreq, cJSON* jres); +void bad_request(cJSON* jreq, cJSON* jres); + +void calc_add(cJSON* jreq, cJSON* jres); +void calc_sub(cJSON* jreq, cJSON* jres); +void calc_mul(cJSON* jreq, cJSON* jres); +void calc_div(cJSON* jreq, cJSON* jres); + +#endif // HV_JSON_RPC_ROUTER_H_ diff --git a/3rdPartner/libhv/examples/mqtt/mqtt_client_test.cpp b/3rdPartner/libhv/examples/mqtt/mqtt_client_test.cpp new file mode 100644 index 0000000..5fc606d --- /dev/null +++ b/3rdPartner/libhv/examples/mqtt/mqtt_client_test.cpp @@ -0,0 +1,85 @@ +/* + * mqtt client + * + * @build make examples + * + * @test bin/mqtt_client_test 127.0.0.1 1883 topic payload + * + */ + +#include "mqtt_client.h" +using namespace hv; + +/* + * @test MQTTS + * #define TEST_SSL 1 + * + * @build ./configure --with-mqtt --with-openssl && make clean && make + * + */ +#define TEST_SSL 0 +#define TEST_AUTH 0 +#define TEST_RECONNECT 1 +#define TEST_QOS 0 + +int main(int argc, char** argv) { + if (argc < 5) { + printf("Usage: %s host port topic payload\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + const char* topic = argv[3]; + const char* payload = argv[4]; + + MqttClient cli; + + cli.onConnect = [topic, payload](MqttClient* cli) { + printf("connected!\n"); +#if TEST_QOS + cli->subscribe(topic, 1, [topic, payload](MqttClient* cli) { + printf("subscribe OK!\n"); + cli->publish(topic, payload, 1, 0, [](MqttClient* cli) { + printf("publish OK!\n"); + }); + }); +#else + cli->subscribe(topic); + cli->publish(topic, payload); +#endif + }; + + cli.onMessage = [](MqttClient* cli, mqtt_message_t* msg) { + printf("topic: %.*s\n", msg->topic_len, msg->topic); + printf("payload: %.*s\n", msg->payload_len, msg->payload); + cli->disconnect(); + cli->stop(); + }; + + cli.onClose = [](MqttClient* cli) { + printf("disconnected!\n"); + }; + +#if TEST_AUTH + cli.setAuth("test", "123456"); +#endif + +#if TEST_RECONNECT + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + cli.setReconnect(&reconn); +#endif + + cli.setPingInterval(10); + + int ssl = 0; +#if TEST_SSL + ssl = 1; +#endif + cli.connect(host, port, ssl); + cli.run(); + return 0; +} diff --git a/3rdPartner/libhv/examples/mqtt/mqtt_pub.c b/3rdPartner/libhv/examples/mqtt/mqtt_pub.c new file mode 100644 index 0000000..21b014c --- /dev/null +++ b/3rdPartner/libhv/examples/mqtt/mqtt_pub.c @@ -0,0 +1,134 @@ +/* + * mqtt publish + * + * @build make examples + * @sub bin/mqtt_sub 127.0.0.1 1883 topic + * @pub bin/mqtt_pub 127.0.0.1 1883 topic payload + * + */ + +#include "hv.h" +#include "mqtt_client.h" + +/* + * @test MQTTS + * #define TEST_SSL 1 + * + * @build ./configure --with-mqtt --with-openssl && make clean && make + * + */ +#define TEST_SSL 0 +#define TEST_AUTH 0 + +/* + * workflow: + * mqtt_client_new -> mqtt_client_xxx -> mqtt_client_run + * + * mqtt_client_set_xxx -> + * mqtt_client_connect -> + * on_connack -> mqtt_client_publish -> + * on_puback -> mqtt_client_disconnect -> + * on_disconnect -> mqtt_client_stop + * + */ + +static void on_mqtt(mqtt_client_t* cli, int type) { + printf("on_mqtt type=%d\n", type); + switch(type) { + case MQTT_TYPE_CONNECT: + printf("mqtt connected!\n"); + break; + case MQTT_TYPE_DISCONNECT: + printf("mqtt disconnected!\n"); + { + mqtt_message_t* msg = (mqtt_message_t*)mqtt_client_get_userdata(cli); + HV_FREE(msg); + mqtt_client_set_userdata(cli, NULL); + mqtt_client_stop(cli); + } + break; + case MQTT_TYPE_CONNACK: + printf("mqtt connack!\n"); + { + mqtt_message_t* msg = (mqtt_message_t*)mqtt_client_get_userdata(cli); + if (msg == NULL) return; + int mid = mqtt_client_publish(cli, msg); + printf("mqtt publish mid=%d\n", mid); + if (msg->qos == 0) { + mqtt_client_disconnect(cli); + } else if (msg->qos == 1) { + // wait MQTT_TYPE_PUBACK + } else if (msg->qos == 2) { + // wait MQTT_TYPE_PUBREC + } + } + break; + case MQTT_TYPE_PUBACK: /* qos = 1 */ + printf("mqtt puback mid=%d\n", cli->mid); + mqtt_client_disconnect(cli); + break; + case MQTT_TYPE_PUBREC: /* qos = 2 */ + printf("mqtt pubrec mid=%d\n", cli->mid); + // wait MQTT_TYPE_PUBCOMP + break; + case MQTT_TYPE_PUBCOMP: /* qos = 2 */ + printf("mqtt pubcomp mid=%d\n", cli->mid); + mqtt_client_disconnect(cli); + break; + default: + break; + } +} + +static int mqtt_publish(const char* host, int port, const char* topic, const char* payload) { + mqtt_client_t* cli = mqtt_client_new(NULL); + if (cli == NULL) return -1; + cli->keepalive = 10; + + // client_id + char client_id[64]; + snprintf(client_id, sizeof(client_id), "mqtt_pub_%ld", hv_getpid()); + printf("client_id: %s\n", client_id); + mqtt_client_set_id(cli, client_id); + // will + mqtt_message_t will; + memset(&will, 0, sizeof(will)); + will.topic = "will"; + will.payload = "This is a will."; + mqtt_client_set_will(cli, &will); +#if TEST_AUTH + mqtt_client_set_auth(cli, "test", "123456"); +#endif + + mqtt_message_t* msg = NULL; + HV_ALLOC_SIZEOF(msg); + msg->topic = topic; + msg->topic_len = strlen(topic); + msg->payload = payload; + msg->payload_len = strlen(payload); + msg->qos = 1; + mqtt_client_set_userdata(cli, msg); + mqtt_client_set_callback(cli, on_mqtt); + + int ssl = 0; +#if TEST_SSL + ssl = 1; +#endif + mqtt_client_connect(cli, host, port, ssl); + mqtt_client_run(cli); + mqtt_client_free(cli); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 5) { + printf("Usage: %s host port topic payload\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + const char* topic = argv[3]; + const char* payload = argv[4]; + + return mqtt_publish(host, port, topic, payload); +} diff --git a/3rdPartner/libhv/examples/mqtt/mqtt_sub.c b/3rdPartner/libhv/examples/mqtt/mqtt_sub.c new file mode 100644 index 0000000..1eb8e2d --- /dev/null +++ b/3rdPartner/libhv/examples/mqtt/mqtt_sub.c @@ -0,0 +1,114 @@ +/* + * mqtt subscribe + * + * @build make examples + * @sub bin/mqtt_sub 127.0.0.1 1883 topic + * @pub bin/mqtt_pub 127.0.0.1 1883 topic payload + * + */ + +#include "hv.h" +#include "mqtt_client.h" + +/* + * @test MQTTS + * #define TEST_SSL 1 + * + * @build ./configure --with-mqtt --with-openssl && make clean && make + * + */ +#define TEST_SSL 0 +#define TEST_AUTH 0 +#define TEST_RECONNECT 1 + +/* + * workflow: + * mqtt_client_new -> mqtt_client_xxx -> mqtt_client_run + * + * mqtt_client_set_xxx -> + * mqtt_client_connect -> + * on_connack -> mqtt_client_subscribe -> + * on_publish -> handle_message + * + */ + +static void handle_message(mqtt_client_t* cli, mqtt_message_t* msg) { + printf("topic: %.*s\n", msg->topic_len, msg->topic); + printf("payload: %.*s\n", msg->payload_len, msg->payload); +} + +static void on_mqtt(mqtt_client_t* cli, int type) { + printf("on_mqtt type=%d\n", type); + switch(type) { + case MQTT_TYPE_CONNECT: + printf("mqtt connected!\n"); + if (cli->reconn_setting && cli->reconn_setting->cur_retry_cnt > 0) { + printf("mqtt reconnect cnt=%d, delay=%d\n", cli->reconn_setting->cur_retry_cnt, cli->reconn_setting->cur_delay); + } + break; + case MQTT_TYPE_DISCONNECT: + printf("mqtt disconnected!\n"); + if (cli->reconn_setting && cli->reconn_setting->cur_retry_cnt > 0) { + printf("mqtt reconnect cnt=%d, delay=%d\n", cli->reconn_setting->cur_retry_cnt, cli->reconn_setting->cur_delay); + } + break; + case MQTT_TYPE_CONNACK: + printf("mqtt connack!\n"); + { + const char* topic = (const char*)mqtt_client_get_userdata(cli); + int mid = mqtt_client_subscribe(cli, topic, 0); + printf("mqtt subscribe mid=%d\n", mid); + } + break; + case MQTT_TYPE_SUBACK: + printf("mqtt suback mid=%d\n", cli->mid); + break; + case MQTT_TYPE_PUBLISH: + handle_message(cli, &cli->message); + default: + break; + } +} + +static int mqtt_subscribe(const char* host, int port, const char* topic) { + mqtt_client_t* cli = mqtt_client_new(NULL); + if (cli == NULL) return -1; + cli->keepalive = 10; + +#if TEST_AUTH + mqtt_client_set_auth(cli, "test", "123456"); +#endif + + mqtt_client_set_userdata(cli, (void*)topic); + mqtt_client_set_callback(cli, on_mqtt); + +#if TEST_RECONNECT + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + mqtt_client_set_reconnect(cli, &reconn); +#endif + + int ssl = 0; +#if TEST_SSL + ssl = 1; +#endif + mqtt_client_connect(cli, host, port, ssl); + mqtt_client_run(cli); + mqtt_client_free(cli); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 4) { + printf("Usage: %s host port topic\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + const char* topic = argv[3]; + + return mqtt_subscribe(host, port, topic); +} diff --git a/3rdPartner/libhv/examples/multi-thread/multi-acceptor-processes.c b/3rdPartner/libhv/examples/multi-thread/multi-acceptor-processes.c new file mode 100644 index 0000000..edfce30 --- /dev/null +++ b/3rdPartner/libhv/examples/multi-thread/multi-acceptor-processes.c @@ -0,0 +1,98 @@ +/* + * + * @build make examples + * @server bin/multi-acceptor-processes 1234 + * @client bin/nc 127.0.0.1 1234 + * nc 127.0.0.1 1234 + * telnet 127.0.0.1 1234 + */ + +#include "hloop.h" +#include "hsocket.h" +#include "hthread.h" +#include "hproc.h" + +static char protocol = 't'; +static const char* protocolname = "tcp"; +static const char* host = "0.0.0.0"; +static int port = 1234; +static int process_num = 4; + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + // echo + hio_write(io, buf, readbytes); +} + +static void on_accept(hio_t* io) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("pid=%ld connfd=%d [%s] <= [%s]\n", + (long)hv_getpid(), + (int)hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_read(io); +} + +static void loop_proc(void* userdata) { + int sockfd = (int)(intptr_t)(userdata); + hloop_t* loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + hio_t* io = hio_get(loop, sockfd); + if (protocol == 't') { + hio_setcb_accept(io, on_accept); + hio_accept(io); + } + else if (protocol == 'u') { + hio_setcb_read(io, on_recv); + hio_read(io); + } + hloop_run(loop); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + int index = 1; + if (argv[1][0] == '-') { + protocol = argv[1][1]; + switch(protocol) { + case 't': protocolname = "tcp"; break; + case 'u': protocolname = "udp"; break; + default: fprintf(stderr, "Unsupported protocol '%c'\n", protocol); exit(1); + } + ++index; + } + port = atoi(argv[index++]); + + int sockfd = -1; + if (protocol == 't') { + sockfd = Listen(port, host); + } + else if (protocol == 'u') { + sockfd = Bind(port, host, SOCK_DGRAM); + } + if (sockfd < 0) { + exit(1); + } + + proc_ctx_t ctx; + memset(&ctx, 0, sizeof(ctx)); + ctx.proc = loop_proc; + ctx.proc_userdata = (void*)(intptr_t)sockfd; + for (int i = 0; i < process_num; ++i) { + hproc_spawn(&ctx); + } + + while(1) hv_sleep(1); + + return 0; +} diff --git a/3rdPartner/libhv/examples/multi-thread/multi-acceptor-threads.c b/3rdPartner/libhv/examples/multi-thread/multi-acceptor-threads.c new file mode 100644 index 0000000..cd101d9 --- /dev/null +++ b/3rdPartner/libhv/examples/multi-thread/multi-acceptor-threads.c @@ -0,0 +1,94 @@ +/* + * + * @build make examples + * @server bin/multi-acceptor-threads 1234 + * @client bin/nc 127.0.0.1 1234 + * nc 127.0.0.1 1234 + * telnet 127.0.0.1 1234 + */ + +#include "hloop.h" +#include "hsocket.h" +#include "hthread.h" + +static char protocol = 't'; +static const char* protocolname = "tcp"; +static const char* host = "0.0.0.0"; +static int port = 1234; +static int thread_num = 4; + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + // echo + hio_write(io, buf, readbytes); +} + +static void on_accept(hio_t* io) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("tid=%ld connfd=%d [%s] <= [%s]\n", + (long)hv_gettid(), + (int)hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_read(io); +} + +static HTHREAD_ROUTINE(loop_thread) { + int sockfd = (int)(intptr_t)(userdata); + hloop_t* loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + hio_t* io = hio_get(loop, sockfd); + if (protocol == 't') { + hio_setcb_accept(io, on_accept); + hio_accept(io); + } + else if (protocol == 'u') { + hio_setcb_read(io, on_recv); + hio_read(io); + } + hloop_run(loop); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd [-tu] port\n"); + return -10; + } + int index = 1; + if (argv[1][0] == '-') { + protocol = argv[1][1]; + switch(protocol) { + case 't': protocolname = "tcp"; break; + case 'u': protocolname = "udp"; break; + default: fprintf(stderr, "Unsupported protocol '%c'\n", protocol); exit(1); + } + ++index; + } + port = atoi(argv[index++]); + + int sockfd = -1; + if (protocol == 't') { + sockfd = Listen(port, host); + } + else if (protocol == 'u') { + sockfd = Bind(port, host, SOCK_DGRAM); + } + if (sockfd < 0) { + exit(1); + } + + for (int i = 0; i < thread_num; ++i) { + hthread_create(loop_thread, (void*)(intptr_t)sockfd); + } + + while(1) hv_sleep(1); + + return 0; +} diff --git a/3rdPartner/libhv/examples/multi-thread/one-acceptor-multi-workers.c b/3rdPartner/libhv/examples/multi-thread/one-acceptor-multi-workers.c new file mode 100644 index 0000000..4eb1946 --- /dev/null +++ b/3rdPartner/libhv/examples/multi-thread/one-acceptor-multi-workers.c @@ -0,0 +1,100 @@ +/* + * + * @build make examples + * @server bin/one-acceptor-multi-workers 1234 + * @client bin/nc 127.0.0.1 1234 + * nc 127.0.0.1 1234 + * telnet 127.0.0.1 1234 + */ + +#include "hloop.h" +#include "hsocket.h" +#include "hthread.h" + +static const char* host = "0.0.0.0"; +static int port = 1234; +static int thread_num = 4; +static hloop_t* accept_loop = NULL; +static hloop_t** worker_loops = NULL; + +static hloop_t* get_next_loop() { + static int s_cur_index = 0; + if (++s_cur_index >= thread_num) { + s_cur_index = 0; + } + return worker_loops[s_cur_index % thread_num]; +} + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + // echo + hio_write(io, buf, readbytes); +} + +static void new_conn_event(hevent_t* ev) { + hloop_t* loop = ev->loop; + hio_t* io = (hio_t*)hevent_userdata(ev); + hio_attach(loop, io); + + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("tid=%ld connfd=%d [%s] <= [%s]\n", + (long)hv_gettid(), + (int)hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_read(io); +} + +static void on_accept(hio_t* io) { + hio_detach(io); + + hloop_t* worker_loop = get_next_loop(); + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.loop = worker_loop; + ev.cb = new_conn_event; + ev.userdata = io; + hloop_post_event(worker_loop, &ev); +} + +static HTHREAD_ROUTINE(worker_thread) { + hloop_t* loop = (hloop_t*)userdata; + hloop_run(loop); + return 0; +} + +static HTHREAD_ROUTINE(accept_thread) { + hloop_t* loop = (hloop_t*)userdata; + hio_t* listenio = hloop_create_tcp_server(loop, host, port, on_accept); + if (listenio == NULL) { + exit(1); + } + hloop_run(loop); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: cmd port\n"); + return -10; + } + port = atoi(argv[1]); + + worker_loops = (hloop_t**)malloc(sizeof(hloop_t*) * thread_num); + for (int i = 0; i < thread_num; ++i) { + worker_loops[i] = hloop_new(HLOOP_FLAG_AUTO_FREE); + hthread_create(worker_thread, worker_loops[i]); + } + + accept_loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + accept_thread(accept_loop); + + return 0; +} diff --git a/3rdPartner/libhv/examples/nc.c b/3rdPartner/libhv/examples/nc.c new file mode 100644 index 0000000..69e6e04 --- /dev/null +++ b/3rdPartner/libhv/examples/nc.c @@ -0,0 +1,240 @@ +/* + * network client + * + * @build: make examples + * @server bin/httpd -s restart -d + * @usage: bin/nc 127.0.0.1 8080 + * > GET / HTTP/1.1 + * > Connection: close + * > [Enter] + * > GET / HTTP/1.1 + * > Connection: keep-alive + * > [Enter] + */ + +/* + * @test udp client + * @build ./configure && make examples + * @client bin/nc -u 127.0.0.1 1234 + * + */ + +/* + * @test ssl client + * @build ./configure --with-openssl && make clean && make + * @client bin/nc -s 127.0.0.1 1234 + * + */ + +/* + * @test kcp client + * @build ./configure --with-kcp && make clean && make + * @client bin/nc -k 127.0.0.1 1234 + * + */ + +#include "hloop.h" +#include "hbase.h" +#include "hsocket.h" +#include "hssl.h" + +#define RECV_BUFSIZE 8192 +static char recvbuf[RECV_BUFSIZE]; + +static char protocol = 't'; +static const char* protocolname = "tcp"; +// for stdin +static hio_t* stdinio = NULL; +// for socket +static hio_t* sockio = NULL; + +static int verbose = 0; + +static void send_heartbeat(hio_t* io) { + static char buf[] = "PING\r\n"; + // printf("send_heartbeat %s", buf); + hio_write(io, buf, 6); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + printf("%.*s", readbytes, (char*)buf); + + // test hio_set_readbuf in hread_cb +#if 0 + static int total_readbytes = 0; + total_readbytes += readbytes; + if (total_readbytes >= RECV_BUFSIZE) { + total_readbytes = 0; + } + hio_set_readbuf(io, recvbuf + total_readbytes, RECV_BUFSIZE - total_readbytes); + printf("%.*s", total_readbytes, recvbuf); +#endif + + fflush(stdout); +} + +static void on_stdin(hio_t* io, void* buf, int readbytes) { + // printf("on_stdin fd=%d readbytes=%d\n", hio_fd(io), readbytes); + // printf("> %s\n", buf); + + char* str = (char*)buf; + + // test hio_read_start/hio_read_stop/hio_close/hloop_stop +#if 1 + if (strncmp(str, "start", 5) == 0) { + printf("call hio_read_start\n"); + hio_read_start(sockio); + return; + } + else if (strncmp(str, "stop", 4) == 0) { + printf("call hio_read_stop\n"); + hio_read_stop(sockio); + return; + } + else if (strncmp(str, "close", 5) == 0) { + printf("call hio_close\n"); + hio_close(sockio); + return; + } + else if (strncmp(str, "quit", 4) == 0) { + printf("call hloop_stop\n"); + hloop_stop(hevent_loop(io)); + return; + } +#endif + + // CR|LF => CRLF for test most protocols + char eol = str[readbytes-1]; + if (eol == '\n' || eol == '\r') { + if (readbytes > 1 && str[readbytes-2] == '\r' && eol == '\n') { + // have been CRLF + } + else { + ++readbytes; + str[readbytes - 2] = '\r'; + str[readbytes - 1] = '\n'; + } + } + + hio_write(sockio, buf, readbytes); + + if (strncmp(str, "CLOSE", 5) == 0) { + printf("call hio_close\n"); + hio_close(sockio); + } +} + +static void on_close(hio_t* io) { + // printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + hio_del(stdinio, HV_READ); +} + +static void on_connect(hio_t* io) { + // printf("on_connect fd=%d\n", hio_fd(io)); + if (verbose) { + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("connect connfd=%d [%s] => [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + } + + hio_read_start(io); + // uncomment to test heartbeat + // hio_set_heartbeat(sockio, 3000, send_heartbeat); +} + +int main(int argc, char** argv) { + if (argc < 3) { + printf("\ +Usage: nc [-tusk] host port\n\ +Options:\n\ + -t Use tcp protocol (default)\n\ + -u Use udp protocol\n\ + -s Use ssl protocol\n\ + -k Use kcp protocol\n\ +Examples: nc 127.0.0.1 80\n\ + nc -u 127.0.0.1 80\n"); + return -10; + } + + int index = 1; + if (argv[1][0] == '-') { + protocol = argv[1][1]; + switch(protocol) { + case 't': protocolname = "tcp"; break; + case 'u': protocolname = "udp"; break; + case 's': protocolname = "ssl"; break; + case 'k': protocolname = "kcp"; break; + default: fprintf(stderr, "Unsupported protocol '%c'\n", protocol); exit(1); + } + ++index; + } + const char* host = argv[index++]; + int port = atoi(argv[index++]); + if (verbose) { + printf("%s %s %d\n", protocolname, host, port); + } + + HV_MEMCHECK; + + hloop_t* loop = hloop_new(HLOOP_FLAG_QUIT_WHEN_NO_ACTIVE_EVENTS); + + // stdin use default readbuf + stdinio = hread(loop, 0, NULL, 0, on_stdin); + if (stdinio == NULL) { + return -20; + } + + // socket + if (protocol == 't' || protocol == 's') { + // tcp + sockio = hloop_create_tcp_client(loop, host, port, on_connect, on_close); + if (sockio == NULL) { + return -20; + } + if (protocol == 's') { + if (strcmp(hssl_backend(), "nossl") == 0) { + fprintf(stderr, "Please recompile WITH_SSL!\n"); + exit(1); + } + hio_enable_ssl(sockio); + } + } + else if (protocol == 'u' || protocol == 'k') { + // udp + sockio = hloop_create_udp_client(loop, host, port); + if (sockio == NULL) { + return -20; + } + if (protocol == 'k') { +#if WITH_KCP + static kcp_setting_t s_kcp_setting; + kcp_setting_init_with_normal_mode(&s_kcp_setting); + s_kcp_setting.conv = hv_rand(1, 999999); + hio_set_kcp(sockio, &s_kcp_setting); +#else + fprintf(stderr, "Please recompile WITH_KCP!\n"); + exit(1); +#endif + } + hio_read(sockio); + } + // printf("sockfd=%d\n", hio_fd(sockio)); + hio_setcb_close(sockio, on_close); + hio_setcb_read(sockio, on_recv); + hio_set_readbuf(sockio, recvbuf, RECV_BUFSIZE); + + hloop_run(loop); + hloop_free(&loop); + + return 0; +} diff --git a/3rdPartner/libhv/examples/nmap/main.cpp b/3rdPartner/libhv/examples/nmap/main.cpp new file mode 100644 index 0000000..7063630 --- /dev/null +++ b/3rdPartner/libhv/examples/nmap/main.cpp @@ -0,0 +1,115 @@ +#include +#include + +#include + +#include "nmap.h" +#include "hsocket.h" +#include "hthreadpool.h" + +int host_discover_task(std::string segment, void* nmap) { + Nmap* hosts= (Nmap*)nmap; + return host_discover(segment.c_str(), hosts); +} + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: nmap segment\n"); + printf("Examples: nmap 192.168.1.123\n"); + printf(" nmap 192.168.1.x/24\n"); + printf(" nmap 192.168.x.x/16\n"); + return -1; + } + + char* segment = argv[1]; + char* split = strchr(segment, '/'); + int n = 24; + if (split) { + *split = '\0'; + n = atoi(split+1); + if (n != 24 && n != 16) { + return -2; + } + } + + Nmap hosts; + char ip[INET_ADDRSTRLEN]; + if (n == 24) { + host_discover(segment, &hosts); + } + else if (n == 16) { + Nmap segs; + int up_nsegs = segment_discover(segment, &segs); + if (up_nsegs == 0) return 0; +#if 1 + for (auto& pair : segs) { + if (pair.second == 1) { + uint32_t addr = pair.first; + uint8_t* p = (uint8_t*)&addr; + // 0,255 reserved + for (int i = 1; i < 255; ++i) { + p[3] = i; + hosts[addr] = 0; + } + } + } + nmap_discover(&hosts); +#else + if (up_nsegs == 1) { + for (auto& pair : segs) { + if (pair.second == 1) { + inet_ntop(AF_INET, (void*)&pair.first, ip, sizeof(ip)); + host_discover(ip, &hosts); + } + } + } + else { + // ThreadPool + host_discover + Nmap* hosts = new Nmap[up_nsegs]; + // use ThreadPool + HThreadPool tp(4); + tp.start(); + std::vector> futures; + int i = 0; + for (auto& pair : segs) { + if (pair.second == 1) { + inet_ntop(AF_INET, (void*)&pair.first, ip, sizeof(ip)); + auto future = tp.commit(host_discover_task, std::string(ip), &hosts[i++]); + futures.push_back(std::move(future)); + } + } + // wait all task done + int nhosts = 0; + for (auto& future : futures) { + nhosts += future.get(); + } + // filter up hosts + std::vector up_hosts; + for (int i = 0; i < up_nsegs; ++i) { + Nmap& nmap = hosts[i]; + for (auto& host : nmap) { + if (host.second == 1) { + up_hosts.push_back(host.first); + } + } + } + delete[] hosts; + } +#endif + } + + // filter up hosts + std::vector up_hosts; + for (auto& pair : hosts) { + if (pair.second == 1) { + up_hosts.push_back(pair.first); + } + } + // print up hosts + printf("Up hosts %lu:\n", (unsigned long)up_hosts.size()); + for (auto& host : up_hosts) { + inet_ntop(AF_INET, (void*)&host, ip, sizeof(ip)); + printf("%s\n", ip); + } + return 0; +} diff --git a/3rdPartner/libhv/examples/nmap/nmap.cpp b/3rdPartner/libhv/examples/nmap/nmap.cpp new file mode 100644 index 0000000..90a3634 --- /dev/null +++ b/3rdPartner/libhv/examples/nmap/nmap.cpp @@ -0,0 +1,177 @@ +#include "nmap.h" +#include "hloop.h" +#include "hstring.h" +#include "hsocket.h" +#include "netinet.h" + +using namespace hv; + +#define MAX_RECVFROM_TIMEOUT 5000 // ms +#define MAX_SENDTO_PERSOCKET 1024 + +typedef struct nmap_ctx_s { + Nmap* nmap; + int send_cnt; + int recv_cnt; + int up_cnt; + int idle_cnt; +} nmap_ctx_t; + +static void on_idle(hidle_t* idle) { + hloop_t* loop = hevent_loop(idle); + nmap_ctx_t* ctx = (nmap_ctx_t*)hloop_userdata(loop); + ctx->idle_cnt++; + if (ctx->idle_cnt == 1) { + // try again? + } + hloop_stop(loop); +} + +static void on_timer(htimer_t* timer) { + hloop_t* loop = hevent_loop(timer); + hloop_stop(loop); +} + +static void on_recvfrom(hio_t* io, void* buf, int readbytes) { + //printd("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printd("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + hloop_t* loop = hevent_loop(io); + nmap_ctx_t* ctx = (nmap_ctx_t*)hloop_userdata(loop); + if (++ctx->recv_cnt == ctx->send_cnt) { + //hloop_stop(loop); + } + Nmap* nmap = ctx->nmap; + struct sockaddr_in* peeraddr = (struct sockaddr_in*)hio_peeraddr(io); + auto iter = nmap->find(peeraddr->sin_addr.s_addr); + if (iter != nmap->end()) { + if (iter->second == 0) { + iter->second = 1; + if (++ctx->up_cnt == nmap->size()) { + hloop_stop(loop); + } + } + } +} + +int nmap_discover(Nmap* nmap) { + hloop_t* loop = hloop_new(0); + uint64_t start_hrtime = hloop_now_hrtime(loop); + + nmap_ctx_t ctx; + ctx.nmap = nmap; + ctx.send_cnt = 0; + ctx.recv_cnt = 0; + ctx.up_cnt = 0; + ctx.idle_cnt = 0; + hloop_set_userdata(loop, &ctx); + + char recvbuf[128]; + // icmp + char sendbuf[44]; // 20IP + 44ICMP = 64 + icmp_t* icmp_req = (icmp_t*)sendbuf; + icmp_req->icmp_type = ICMP_ECHO; + icmp_req->icmp_code = 0; + icmp_req->icmp_id = getpid(); + for (int i = 0; i < sizeof(sendbuf) - sizeof(icmphdr_t); ++i) { + icmp_req->icmp_data[i] = i; + } + struct sockaddr_in peeraddr; + hio_t* io = NULL; + for (auto iter = nmap->begin(); iter != nmap->end(); ++iter) { + if (iter->second == 1) continue; + if (ctx.send_cnt % MAX_SENDTO_PERSOCKET == 0) { + // socket + int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); + if (sockfd < 0) { + perror("socket"); + if (errno == EPERM) { + fprintf(stderr, "please use root or sudo to create a raw socket.\n"); + } + return -socket_errno(); + } + nonblocking(sockfd); + so_sndbuf(sockfd, 425984); // 416K + + io = hio_get(loop, sockfd); + if (io == NULL) return -1; + hio_set_type(io, HIO_TYPE_IP); + struct sockaddr_in localaddr; + socklen_t addrlen = sizeof(localaddr); + memset(&localaddr, 0, addrlen); + localaddr.sin_addr.s_addr = htonl(INADDR_ANY); + hio_set_localaddr(io, (struct sockaddr*)&localaddr, addrlen); + hrecvfrom(loop, sockfd, recvbuf, sizeof(recvbuf), on_recvfrom); + } + icmp_req->icmp_seq = iter->first; + icmp_req->icmp_cksum = 0; + icmp_req->icmp_cksum = checksum((uint8_t*)icmp_req, sizeof(sendbuf)); + socklen_t addrlen = sizeof(peeraddr); + memset(&peeraddr, 0, addrlen); + peeraddr.sin_family = AF_INET; + peeraddr.sin_addr.s_addr = iter->first; + hio_set_peeraddr(io, (struct sockaddr*)&peeraddr, addrlen); + hsendto(loop, hio_fd(io), sendbuf, sizeof(sendbuf), NULL); + ++ctx.send_cnt; + } + + htimer_add(loop, on_timer, MAX_RECVFROM_TIMEOUT, 1); + hidle_add(loop, on_idle, 3); + + hloop_run(loop); + uint64_t end_hrtime = hloop_now_hrtime(loop); + hloop_free(&loop); + + // print result + char ip[INET_ADDRSTRLEN]; + auto iter = nmap->begin(); + while (iter != nmap->end()) { + inet_ntop(AF_INET, (void*)&iter->first, ip, sizeof(ip)); + printd("%s\t is %s.\n", ip, iter->second == 0 ? "down" : "up"); + ++iter; + } + printd("Nmap done: %lu IP addresses (%d hosts up) scanned in %.2f seconds\n", + (unsigned long)nmap->size(), ctx.up_cnt, (end_hrtime-start_hrtime)/1000000.0f); + + return ctx.up_cnt; +} + +int segment_discover(const char* segment16, Nmap* nmap) { + StringList strlist = split(segment16, '.'); + if (strlist.size() != 4) return -1; + uint32_t addr = 0; + uint8_t* p = (uint8_t*)&addr; + p[0] = atoi(strlist[0].c_str()); + p[1] = atoi(strlist[1].c_str()); + p[3] = 1; + printd("Nmap scan %u.%u.x.1...\n", p[0], p[1]); + nmap->clear(); + for (int i = 0; i < 256; ++i) { + p[2] = i; + (*nmap)[addr] = 0; + } + return nmap_discover(nmap); +} + +int host_discover(const char* segment24, Nmap* nmap) { + StringList strlist = split(segment24, '.'); + if (strlist.size() != 4) return -1; + uint32_t addr = 0; + uint8_t* p = (uint8_t*)&addr; + p[0] = atoi(strlist[0].c_str()); + p[1] = atoi(strlist[1].c_str()); + p[2] = atoi(strlist[2].c_str()); + printd("Nmap scan %u.%u.%u.x...\n", p[0], p[1], p[2]); + // 0,255 reserved + nmap->clear(); + for (int i = 1; i < 255; ++i) { + p[3] = i; + (*nmap)[addr] = 0; + } + return nmap_discover(nmap); +} diff --git a/3rdPartner/libhv/examples/nmap/nmap.h b/3rdPartner/libhv/examples/nmap/nmap.h new file mode 100644 index 0000000..3975c2d --- /dev/null +++ b/3rdPartner/libhv/examples/nmap/nmap.h @@ -0,0 +1,19 @@ +#ifndef HV_NMAP_H_ +#define HV_NMAP_H_ + +#include +#include + +// addr => 0:down 1:up +typedef std::map Nmap; + +// ip = segment + host +// segment16: 192.168.x.x +// segment24: 192.168.1.x + +// @return up_cnt +int nmap_discover(Nmap* nmap); +int segment_discover(const char* segment16, Nmap* nmap); +int host_discover(const char* segment24, Nmap* nmap); + +#endif // HV_NMAP_H_ diff --git a/3rdPartner/libhv/examples/protorpc/handler/calc.h b/3rdPartner/libhv/examples/protorpc/handler/calc.h new file mode 100644 index 0000000..d727eaf --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/handler/calc.h @@ -0,0 +1,79 @@ +#ifndef HV_PROTO_RPC_HANDLER_CALC_H_ +#define HV_PROTO_RPC_HANDLER_CALC_H_ + +#include "../router.h" + +#include "../generated/calc.pb.h" + +void calc_add(const protorpc::Request& req, protorpc::Response* res) { + // params + if (req.params_size() != 2) { + return bad_request(req, res); + } + protorpc::CalcParam param1, param2; + if (!param1.ParseFromString(req.params(0)) || + !param2.ParseFromString(req.params(1))) { + return bad_request(req, res); + } + + // result + protorpc::CalcResult result; + result.set_num(param1.num() + param2.num()); + res->set_result(result.SerializeAsString()); +} + +void calc_sub(const protorpc::Request& req, protorpc::Response* res) { + // params + if (req.params_size() != 2) { + return bad_request(req, res); + } + protorpc::CalcParam param1, param2; + if (!param1.ParseFromString(req.params(0)) || + !param2.ParseFromString(req.params(1))) { + return bad_request(req, res); + } + + // result + protorpc::CalcResult result; + result.set_num(param1.num() - param2.num()); + res->set_result(result.SerializeAsString()); +} + +void calc_mul(const protorpc::Request& req, protorpc::Response* res) { + // params + if (req.params_size() != 2) { + return bad_request(req, res); + } + protorpc::CalcParam param1, param2; + if (!param1.ParseFromString(req.params(0)) || + !param2.ParseFromString(req.params(1))) { + return bad_request(req, res); + } + + // result + protorpc::CalcResult result; + result.set_num(param1.num() * param2.num()); + res->set_result(result.SerializeAsString()); +} + +void calc_div(const protorpc::Request& req, protorpc::Response* res) { + // params + if (req.params_size() != 2) { + return bad_request(req, res); + } + protorpc::CalcParam param1, param2; + if (!param1.ParseFromString(req.params(0)) || + !param2.ParseFromString(req.params(1))) { + return bad_request(req, res); + } + if (param2.num() == 0) { + return bad_request(req, res); + } + + // result + protorpc::CalcResult result; + result.set_num(param1.num() / param2.num()); + res->set_result(result.SerializeAsString()); +} + +#endif // HV_PROTO_RPC_HANDLER_CALC_H_ diff --git a/3rdPartner/libhv/examples/protorpc/handler/handler.h b/3rdPartner/libhv/examples/protorpc/handler/handler.h new file mode 100644 index 0000000..87c2a95 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/handler/handler.h @@ -0,0 +1,19 @@ +#ifndef HV_PROTO_RPC_HANDLER_H_ +#define HV_PROTO_RPC_HANDLER_H_ + +#include "../router.h" + +void error_response(protorpc::Response* res, int code, const std::string& message) { + res->mutable_error()->set_code(code); + res->mutable_error()->set_message(message); +} + +void not_found(const protorpc::Request& req, protorpc::Response* res) { + error_response(res, 404, "Not Found"); +} + +void bad_request(const protorpc::Request& req, protorpc::Response* res) { + error_response(res, 400, "Bad Request"); +} + +#endif // HV_PROTO_RPC_HANDLER_H_ diff --git a/3rdPartner/libhv/examples/protorpc/handler/login.h b/3rdPartner/libhv/examples/protorpc/handler/login.h new file mode 100644 index 0000000..9cd5f79 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/handler/login.h @@ -0,0 +1,25 @@ +#ifndef HV_PROTO_RPC_HANDLER_LOGIN_H_ +#define HV_PROTO_RPC_HANDLER_LOGIN_H_ + +#include "../router.h" + +#include "../generated/login.pb.h" + +void login(const protorpc::Request& req, protorpc::Response* res) { + // params + if (req.params_size() == 0) { + return bad_request(req, res); + } + protorpc::LoginParam param; + if (!param.ParseFromString(req.params(0))) { + return bad_request(req, res); + } + + // result + protorpc::LoginResult result; + result.set_user_id(123456); + result.set_token(param.username() + ":" + param.password()); + res->set_result(result.SerializeAsString()); +} + +#endif // HV_PROTO_RPC_HANDLER_LOGIN_H_ diff --git a/3rdPartner/libhv/examples/protorpc/proto/base.proto b/3rdPartner/libhv/examples/protorpc/proto/base.proto new file mode 100644 index 0000000..bebaec5 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/proto/base.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package protorpc; + +message Error { + int32 code = 1; + string message = 2; +} + +message Request { + uint64 id = 1; + string method = 2; + repeated bytes params = 3; +} + +message Response { + uint64 id = 1; + bytes result = 2; + Error error = 3; +} diff --git a/3rdPartner/libhv/examples/protorpc/proto/calc.proto b/3rdPartner/libhv/examples/protorpc/proto/calc.proto new file mode 100644 index 0000000..2ad16ec --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/proto/calc.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package protorpc; + +message CalcParam { + int64 num = 1; +} + +message CalcResult { + int64 num = 1; +} diff --git a/3rdPartner/libhv/examples/protorpc/proto/login.proto b/3rdPartner/libhv/examples/protorpc/proto/login.proto new file mode 100644 index 0000000..6897bc6 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/proto/login.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package protorpc; + +message LoginParam { + string username = 1; + string password = 2; +} + +message LoginResult { + uint64 user_id = 1; + string token = 2; +} diff --git a/3rdPartner/libhv/examples/protorpc/proto/protoc.sh b/3rdPartner/libhv/examples/protorpc/proto/protoc.sh new file mode 100644 index 0000000..7e68c48 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/proto/protoc.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +cd `dirname $0` + +PROTOC=`which protoc` +if [ $? -ne 0 ]; then + echo "Not found command protoc!" + echo "Please install libprotobuf first!" + exit 1 +fi + +CPP_OUT_DIR=../generated +if [ ! -d "${CPP_OUT_DIR}" ]; then + mkdir -p ${CPP_OUT_DIR} +fi + +set -x +${PROTOC} --cpp_out=${CPP_OUT_DIR} *.proto diff --git a/3rdPartner/libhv/examples/protorpc/protorpc.c b/3rdPartner/libhv/examples/protorpc/protorpc.c new file mode 100644 index 0000000..1e3dbd8 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/protorpc.c @@ -0,0 +1,65 @@ +#include "protorpc.h" + +#include // import memcpy + +int protorpc_pack(const protorpc_message* msg, void* buf, int len) { + if (!msg || !buf || !len) return -1; + const protorpc_head* head = &(msg->head); + unsigned int packlen = protorpc_package_length(head); + // Check is buffer enough + if (len < packlen) { + return -2; + } + unsigned char* p = (unsigned char*)buf; + *p++ = head->protocol[0]; + *p++ = head->protocol[1]; + *p++ = head->protocol[2]; + *p++ = head->protocol[3]; + *p++ = head->version; + *p++ = head->flags; + *p++ = head->reserved[0]; + *p++ = head->reserved[1]; + // hton length + unsigned int length = head->length; + *p++ = (length >> 24) & 0xFF; + *p++ = (length >> 16) & 0xFF; + *p++ = (length >> 8) & 0xFF; + *p++ = length & 0xFF; + // memcpy body + if (msg->body && head->length) { + memcpy(p, msg->body, head->length); + } + + return packlen; +} + +int protorpc_unpack(protorpc_message* msg, const void* buf, int len) { + if (!msg || !buf || !len) return -1; + if (len < PROTORPC_HEAD_LENGTH) return -2; + protorpc_head* head = &(msg->head); + const unsigned char* p = (const unsigned char*)buf; + head->protocol[0] = *p++; + head->protocol[1] = *p++; + head->protocol[2] = *p++; + head->protocol[3] = *p++; + head->version = *p++; + head->flags = *p++; + head->reserved[0] = *p++; + head->reserved[1] = *p++; + // ntoh length + head->length = ((unsigned int)*p++) << 24; + head->length |= ((unsigned int)*p++) << 16; + head->length |= ((unsigned int)*p++) << 8; + head->length |= *p++; + // Check is buffer enough + unsigned int packlen = protorpc_package_length(head); + if (len < packlen) { + return -3; + } + // NOTE: just shadow copy + if (len > PROTORPC_HEAD_LENGTH) { + msg->body = (const char*)buf + PROTORPC_HEAD_LENGTH; + } + + return packlen; +} diff --git a/3rdPartner/libhv/examples/protorpc/protorpc.h b/3rdPartner/libhv/examples/protorpc/protorpc.h new file mode 100644 index 0000000..e1ef921 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/protorpc.h @@ -0,0 +1,68 @@ +#ifndef HV_PROTO_RPC_H_ +#define HV_PROTO_RPC_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define PROTORPC_NAME "HRPC" +#define PROTORPC_VERSION 1 + +// protocol:4bytes + version:1byte + flags:1byte + reserved:2bytes + length:4bytes = 12bytes +#define PROTORPC_HEAD_LENGTH 12 +#define PROTORPC_HEAD_LENGTH_FIELD_OFFSET 8 +#define PROTORPC_HEAD_LENGTH_FIELD_BYTES 4 +typedef struct { + unsigned char protocol[4]; + unsigned char version; + unsigned char flags; + unsigned char reserved[2]; + unsigned int length; +} protorpc_head; + +typedef const char* protorpc_body; + +typedef struct { + protorpc_head head; + protorpc_body body; +} protorpc_message; + +static inline unsigned int protorpc_package_length(const protorpc_head* head) { + return PROTORPC_HEAD_LENGTH + head->length; +} + +static inline void protorpc_head_init(protorpc_head* head) { + // protocol = HRPC + memcpy(head->protocol, PROTORPC_NAME, 4); + head->version = PROTORPC_VERSION; + head->reserved[0] = head->reserved[1] = 0; + head->length = 0; +} + +static inline void protorpc_message_init(protorpc_message* msg) { + protorpc_head_init(&msg->head); + msg->body = NULL; +} + +static inline int protorpc_head_check(protorpc_head* head) { + if (memcmp(head->protocol, PROTORPC_NAME, 4) != 0) { + return -1; + } + if (head->version != PROTORPC_VERSION) { + return -2; + } + return 0; +} + +// @retval >0 package_length, <0 error +int protorpc_pack(const protorpc_message* msg, void* buf, int len); +// @retval >0 package_length, <0 error +int protorpc_unpack(protorpc_message* msg, const void* buf, int len); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // HV_PROTO_RPC_H_ diff --git a/3rdPartner/libhv/examples/protorpc/protorpc_client.cpp b/3rdPartner/libhv/examples/protorpc/protorpc_client.cpp new file mode 100644 index 0000000..2734aca --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/protorpc_client.cpp @@ -0,0 +1,277 @@ +/* + * proto rpc client + * + * @build make protorpc + * @server bin/protorpc_server 1234 + * @client bin/protorpc_client 127.0.0.1 1234 add 1 2 + * + */ + +#include "TcpClient.h" + +#include +#include + +using namespace hv; + +#include "protorpc.h" +#include "generated/base.pb.h" +#include "generated/calc.pb.h" +#include "generated/login.pb.h" + +// valgrind --leak-check=full --show-leak-kinds=all +class ProtobufRAII { +public: + ProtobufRAII() { + } + ~ProtobufRAII() { + google::protobuf::ShutdownProtobufLibrary(); + } +}; +static ProtobufRAII s_protobuf; + +namespace protorpc { +typedef std::shared_ptr RequestPtr; +typedef std::shared_ptr ResponsePtr; + +enum ProtoRpcResult { + kRpcSuccess = 0, + kRpcTimeout = -1, + kRpcError = -2, + kRpcNoResult = -3, + kRpcParseError = -4, +}; + +class ProtoRpcContext { +public: + protorpc::RequestPtr req; + protorpc::ResponsePtr res; +private: + std::mutex _mutex; + std::condition_variable _cond; + +public: + void wait(int timeout_ms) { + std::unique_lock locker(_mutex); + _cond.wait_for(locker, std::chrono::milliseconds(timeout_ms)); + } + + void notify() { + _cond.notify_one(); + } +}; +typedef std::shared_ptr ContextPtr; + +class ProtoRpcClient : public TcpClient { +public: + ProtoRpcClient() : TcpClient() + { + connect_state = kInitialized; + + setConnectTimeout(5000); + + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + setReconnect(&reconn); + + // init protorpc_unpack_setting + unpack_setting_t protorpc_unpack_setting; + memset(&protorpc_unpack_setting, 0, sizeof(unpack_setting_t)); + protorpc_unpack_setting.mode = UNPACK_BY_LENGTH_FIELD; + protorpc_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + protorpc_unpack_setting.body_offset = PROTORPC_HEAD_LENGTH; + protorpc_unpack_setting.length_field_offset = PROTORPC_HEAD_LENGTH_FIELD_OFFSET; + protorpc_unpack_setting.length_field_bytes = PROTORPC_HEAD_LENGTH_FIELD_BYTES; + protorpc_unpack_setting.length_field_coding = ENCODE_BY_BIG_ENDIAN; + setUnpack(&protorpc_unpack_setting); + + onConnection = [this](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + connect_state = kConnected; + printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + connect_state = kDisconnectd; + printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + + onMessage = [this](const SocketChannelPtr& channel, Buffer* buf) { + // protorpc_unpack + protorpc_message msg; + memset(&msg, 0, sizeof(msg)); + int packlen = protorpc_unpack(&msg, buf->data(), buf->size()); + if (packlen < 0) { + printf("protorpc_unpack failed!\n"); + return; + } + assert(packlen == buf->size()); + if (protorpc_head_check(&msg.head) != 0) { + printf("protorpc_head_check failed!\n"); + return; + } + // Response::ParseFromArray + auto res = std::make_shared(); + if (!res->ParseFromArray(msg.body, msg.head.length)) { + return; + } + // id => res + calls_mutex.lock(); + auto iter = calls.find(res->id()); + if (iter == calls.end()) { + return; + } + auto ctx = iter->second; + calls_mutex.unlock(); + ctx->res = res; + ctx->notify(); + }; + } + + int connect(int port, const char* host = "127.0.0.1") { + createsocket(port, host); + connect_state = kConnecting; + start(); + return 0; + } + + protorpc::ResponsePtr call(protorpc::RequestPtr& req, int timeout_ms = 10000) { + if (connect_state != kConnected) { + return NULL; + } + static std::atomic s_id = ATOMIC_VAR_INIT(0); + req->set_id(++s_id); + req->id(); + auto ctx = std::make_shared(); + ctx->req = req; + calls[req->id()] = ctx; + // Request::SerializeToArray + protorpc_pack + protorpc_message msg; + protorpc_message_init(&msg); + msg.head.length = req->ByteSize(); + int packlen = protorpc_package_length(&msg.head); + unsigned char* writebuf = NULL; + HV_STACK_ALLOC(writebuf, packlen); + packlen = protorpc_pack(&msg, writebuf, packlen); + if (packlen > 0) { + printf("%s\n", req->DebugString().c_str()); + req->SerializeToArray(writebuf + PROTORPC_HEAD_LENGTH, msg.head.length); + channel->write(writebuf, packlen); + } + HV_STACK_FREE(writebuf); + // wait until response come or timeout + ctx->wait(timeout_ms); + auto res = ctx->res; + calls_mutex.lock(); + calls.erase(req->id()); + calls_mutex.unlock(); + if (res == NULL) { + printf("RPC timeout!\n"); + } else if (res->has_error()) { + printf("RPC error:\n%s\n", res->error().DebugString().c_str()); + } + return res; + } + + int calc(const char* method, int num1, int num2, int& out) { + auto req = std::make_shared(); + // method + req->set_method(method); + // params + protorpc::CalcParam param1, param2; + param1.set_num(num1); + param2.set_num(num2); + req->add_params()->assign(param1.SerializeAsString()); + req->add_params()->assign(param2.SerializeAsString()); + + auto res = call(req); + + if (res == NULL) return kRpcTimeout; + if (res->has_error()) return kRpcError; + if (res->result().empty()) return kRpcNoResult; + protorpc::CalcResult result; + if (!result.ParseFromString(res->result())) return kRpcParseError; + out = result.num(); + return kRpcSuccess; + } + + int login(const protorpc::LoginParam& param, protorpc::LoginResult* result) { + auto req = std::make_shared(); + // method + req->set_method("login"); + // params + req->add_params()->assign(param.SerializeAsString()); + + auto res = call(req); + + if (res == NULL) return kRpcTimeout; + if (res->has_error()) return kRpcError; + if (res->result().empty()) return kRpcNoResult; + if (!result->ParseFromString(res->result())) return kRpcParseError; + return kRpcSuccess; + } + + enum { + kInitialized, + kConnecting, + kConnected, + kDisconnectd, + } connect_state; + std::map calls; + std::mutex calls_mutex; +}; +} + +int main(int argc, char** argv) { + if (argc < 6) { + printf("Usage: %s host port method param1 param2\n", argv[0]); + printf("method = [add, sub, mul, div]\n"); + printf("Examples:\n"); + printf(" %s 127.0.0.1 1234 add 1 2\n", argv[0]); + printf(" %s 127.0.0.1 1234 div 1 0\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + const char* method = argv[3]; + const char* param1 = argv[4]; + const char* param2 = argv[5]; + + protorpc::ProtoRpcClient cli; + cli.connect(port, host); + while (cli.connect_state == protorpc::ProtoRpcClient::kConnecting) hv_msleep(1); + if (cli.connect_state == protorpc::ProtoRpcClient::kDisconnectd) { + return -20; + } + + // test login + { + protorpc::LoginParam param; + param.set_username("admin"); + param.set_password("123456"); + protorpc::LoginResult result; + if (cli.login(param, &result) == protorpc::kRpcSuccess) { + printf("login success!\n"); + printf("%s\n", result.DebugString().c_str()); + } else { + printf("login failed!\n"); + } + } + + // test calc + { + int num1 = atoi(param1); + int num2 = atoi(param2); + int result = 0; + if (cli.calc(method, num1, num2, result) == protorpc::kRpcSuccess) { + printf("calc success!\n"); + printf("%d %s %d = %d\n", num1, method, num2, result); + } else { + printf("calc failed!\n"); + } + } + return 0; +} diff --git a/3rdPartner/libhv/examples/protorpc/protorpc_server.cpp b/3rdPartner/libhv/examples/protorpc/protorpc_server.cpp new file mode 100644 index 0000000..f50da3f --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/protorpc_server.cpp @@ -0,0 +1,141 @@ +/* + * proto rpc server + * + * @build make protorpc + * @server bin/protorpc_server 1234 + * @client bin/protorpc_client 127.0.0.1 1234 add 1 2 + * + */ + +#include "TcpServer.h" + +using namespace hv; + +#include "protorpc.h" +#include "router.h" +#include "handler/handler.h" +#include "handler/calc.h" +#include "handler/login.h" + +// valgrind --leak-check=full --show-leak-kinds=all +class ProtobufRAII { +public: + ProtobufRAII() { + } + ~ProtobufRAII() { + google::protobuf::ShutdownProtobufLibrary(); + } +}; +static ProtobufRAII s_protobuf; + +protorpc_router router[] = { + {"add", calc_add}, + {"sub", calc_sub}, + {"mul", calc_mul}, + {"div", calc_div}, + {"login", login}, +}; +#define PROTORPC_ROUTER_NUM (sizeof(router)/sizeof(router[0])) + +class ProtoRpcServer : public TcpServer { +public: + ProtoRpcServer() : TcpServer() + { + onConnection = [](const SocketChannelPtr& channel) { + std::string peeraddr = channel->peeraddr(); + if (channel->isConnected()) { + printf("%s connected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } else { + printf("%s disconnected! connfd=%d\n", peeraddr.c_str(), channel->fd()); + } + }; + onMessage = handleMessage; + // init protorpc_unpack_setting + unpack_setting_t protorpc_unpack_setting; + memset(&protorpc_unpack_setting, 0, sizeof(unpack_setting_t)); + protorpc_unpack_setting.mode = UNPACK_BY_LENGTH_FIELD; + protorpc_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + protorpc_unpack_setting.body_offset = PROTORPC_HEAD_LENGTH; + protorpc_unpack_setting.length_field_offset = PROTORPC_HEAD_LENGTH_FIELD_OFFSET; + protorpc_unpack_setting.length_field_bytes = PROTORPC_HEAD_LENGTH_FIELD_BYTES; + protorpc_unpack_setting.length_field_coding = ENCODE_BY_BIG_ENDIAN; + setUnpack(&protorpc_unpack_setting); + } + + int listen(int port) { return createsocket(port); } + +private: + static void handleMessage(const SocketChannelPtr& channel, Buffer* buf) { + // unpack -> Request::ParseFromArray -> router -> Response::SerializeToArray -> pack -> Channel::write + // protorpc_unpack + protorpc_message msg; + memset(&msg, 0, sizeof(msg)); + int packlen = protorpc_unpack(&msg, buf->data(), buf->size()); + if (packlen < 0) { + printf("protorpc_unpack failed!\n"); + return; + } + assert(packlen == buf->size()); + if (protorpc_head_check(&msg.head) != 0) { + printf("protorpc_head_check failed!\n"); + return; + } + + // Request::ParseFromArray + protorpc::Request req; + protorpc::Response res; + if (req.ParseFromArray(msg.body, msg.head.length)) { + printf("> %s\n", req.DebugString().c_str()); + res.set_id(req.id()); + // router + const char* method = req.method().c_str(); + bool found = false; + for (int i = 0; i < PROTORPC_ROUTER_NUM; ++i) { + if (strcmp(method, router[i].method) == 0) { + found = true; + router[i].handler(req, &res); + break; + } + } + if (!found) { + not_found(req, &res); + } + } else { + bad_request(req, &res); + } + + // Response::SerializeToArray + protorpc_pack + protorpc_message_init(&msg); + msg.head.length = res.ByteSize(); + packlen = protorpc_package_length(&msg.head); + unsigned char* writebuf = NULL; + HV_STACK_ALLOC(writebuf, packlen); + packlen = protorpc_pack(&msg, writebuf, packlen); + if (packlen > 0) { + printf("< %s\n", res.DebugString().c_str()); + res.SerializeToArray(writebuf + PROTORPC_HEAD_LENGTH, msg.head.length); + channel->write(writebuf, packlen); + } + HV_STACK_FREE(writebuf); + } +}; + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + ProtoRpcServer srv; + int listenfd = srv.listen(port); + if (listenfd < 0) { + return -20; + } + printf("protorpc_server listen on port %d, listenfd=%d ...\n", port, listenfd); + srv.setThreadNum(4); + srv.start(); + + while (1) hv_sleep(1); + return 0; +} diff --git a/3rdPartner/libhv/examples/protorpc/router.h b/3rdPartner/libhv/examples/protorpc/router.h new file mode 100644 index 0000000..70bae91 --- /dev/null +++ b/3rdPartner/libhv/examples/protorpc/router.h @@ -0,0 +1,24 @@ +#ifndef HV_PROTO_RPC_ROUTER_H_ +#define HV_PROTO_RPC_ROUTER_H_ + +#include "generated/base.pb.h" + +typedef void (*protorpc_handler)(const protorpc::Request& req, protorpc::Response* res); + +typedef struct { + const char* method; + protorpc_handler handler; +} protorpc_router; + +void error_response(protorpc::Response* res, int code, const std::string& message); +void not_found(const protorpc::Request& req, protorpc::Response* res); +void bad_request(const protorpc::Request& req, protorpc::Response* res); + +void calc_add(const protorpc::Request& req, protorpc::Response* res); +void calc_sub(const protorpc::Request& req, protorpc::Response* res); +void calc_mul(const protorpc::Request& req, protorpc::Response* res); +void calc_div(const protorpc::Request& req, protorpc::Response* res); + +void login(const protorpc::Request& req, protorpc::Response* res); + +#endif // HV_PROTO_RPC_ROUTER_H_ diff --git a/3rdPartner/libhv/examples/socks5_proxy_server.c b/3rdPartner/libhv/examples/socks5_proxy_server.c new file mode 100644 index 0000000..d72581f --- /dev/null +++ b/3rdPartner/libhv/examples/socks5_proxy_server.c @@ -0,0 +1,408 @@ +/* + * socks5 proxy server + * + * @build: make examples + * + * @proxy_server bin/socks5_proxy_server 1080 + * bin/socks5_proxy_server 1080 username password + * + * @proxy_client curl -v http://www.example.com/ --proxy socks5://127.0.0.1:1080 + * curl -v http://www.example.com/ --proxy socks5://username:password@127.0.0.1:1080 + * + */ + +#include "hv.h" +#include "hloop.h" + +static char proxy_host[64] = "0.0.0.0"; +static int proxy_port = 1080; + +static const char* auth_username = NULL; +static const char* auth_password = NULL; + +#define SOCKS5_VERSION ((uint8_t)5) + +#define SOCKS5_AUTH_VERSION ((uint8_t)1) +#define SOCKS5_AUTH_SUCCESS ((uint8_t)0) +#define SOCKS5_AUTH_FAILURE ((uint8_t)1) + +typedef enum { + NoAuth = 0, + GssApiAuth = 1, + UserPassAuth = 2, +} socks5_auth_method; + +typedef enum { + ConnectCommand = 1, + BindCommand = 2, + AssociateCommand= 3, +} socks5_command; + +typedef enum { + IPv4Addr = 1, + FqdnAddr = 3, + IPv6Addr = 4, +} socks5_addr_type; + +typedef enum { + SuccessReply = 0, + ServerFailure = 1, + RuleFailure = 2, + NetworkUnreachable = 3, + HostUnreachable = 4, + ConnectRefused = 5, + TtlExpired = 6, + CommandNotSupported = 7, + AddrTypeNotSupported= 8, +} socks5_reply_code; + +typedef enum { + s_begin, + s_auth_methods_count, + s_auth_methods, + s_auth_username_len, + s_auth_username, + s_auth_password_len, + s_auth_password, + s_request, + s_dst_addr_type, + s_dst_addr_len, + s_dst_addr, + s_dst_port, + s_upstream, + s_end, +} socks5_state_e; + +typedef struct { + hio_t* io; + socks5_state_e state; + socks5_addr_type addr_type; + sockaddr_u addr; +} socks5_conn_t; + +/* + * workflow: + * hloop_new -> hloop_create_tcp_server -> hloop_run + * on_accept -> HV_ALLOC(socks5_conn_t) -> hio_readbytes(s_auth_methods_count:2) -> + * on_recv -> hio_readbytes(s_auth_methods) -> + * on_recv -> hio_write(auth_method) -> hio_readbytes(s_auth_username_len:2) -> + * on_recv -> hio_readbytes(s_auth_username) -> + * on_recv -> hio_readbytes(s_auth_password_len:1) -> + * on_recv -> hio_readbytes(s_auth_password) -> hio_write(auth_result) -> + * on_recv -> hio_readbytes(s_request:3) -> + * on_recv -> hio_readbytes(addr_type:1) -> + * on_recv -> hio_readbytes(addr_len:1) -> + * on_recv -> hio_readbytes(addr) -> + * on_recv -> hio_readbytes(port:2) -> + * on_recv -> hio_setup_tcp_upstream(io, addr, port) -> + * on_close -> hio_close_upstream -> HV_FREE(socks5_conn_t) + * + */ + +static void on_upstream_connect(hio_t* upstream_io) { + // printf("on_upstream_connect connfd=%d\n", hio_fd(upstream_io)); + socks5_conn_t* conn = (socks5_conn_t*)hevent_userdata(upstream_io); + sockaddr_u* localaddr = (sockaddr_u*)hio_localaddr(upstream_io); + uint8_t resp[32] = { SOCKS5_VERSION, SuccessReply, 0, IPv4Addr, 127,0,0,1, 0,80, 0 }; + int resp_len = 3; + if (localaddr->sa.sa_family == AF_INET) { + resp[resp_len++] = IPv4Addr; + memcpy(resp + resp_len, &localaddr->sin.sin_addr, 4); resp_len += 4; + memcpy(resp + resp_len, &localaddr->sin.sin_port, 2); resp_len += 2; + } else if (localaddr->sa.sa_family == AF_INET6) { + resp[resp_len++] = IPv6Addr; + memcpy(resp + resp_len, &localaddr->sin6.sin6_addr, 16); resp_len += 16; + memcpy(resp + resp_len, &localaddr->sin6.sin6_port, 2); resp_len += 2; + } + hio_write(conn->io, resp, resp_len); + hio_setcb_read(upstream_io, hio_write_upstream); + hio_setcb_read(conn->io, hio_write_upstream); + hio_read(conn->io); + hio_read(upstream_io); +} + +static void on_close(hio_t* io) { + // printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + socks5_conn_t* conn = (socks5_conn_t*)hevent_userdata(io); + if (conn) { + hevent_set_userdata(io, NULL); + HV_FREE(conn); + } + hio_close_upstream(io); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + socks5_conn_t* conn = (socks5_conn_t*)hevent_userdata(io); + const uint8_t* bytes = (uint8_t*)buf; + switch(conn->state) { + case s_begin: + // printf("s_begin\n"); + conn->state = s_auth_methods_count; + case s_auth_methods_count: + // printf("s_auth_methods_count\n"); + { + assert(readbytes == 2); + uint8_t version = bytes[0]; + uint8_t methods_count = bytes[1]; + if (version != SOCKS5_VERSION || methods_count == 0) { + fprintf(stderr, "Unsupprted socks version: %d\n", (int)version); + hio_close(io); + return; + } + conn->state = s_auth_methods; + hio_readbytes(io, methods_count); + } + break; + case s_auth_methods: + // printf("s_auth_methods\n"); + { + // TODO: check auth methos + uint8_t auth_method = NoAuth; + if (auth_username && auth_password) { + auth_method = UserPassAuth; + } else { + // TODO: Implement more auth methods + } + // send auth mothod + uint8_t resp[2] = { SOCKS5_VERSION, NoAuth }; + resp[1] = auth_method; + hio_write(io, resp, 2); + if (auth_method == NoAuth) { + conn->state = s_request; + hio_readbytes(io, 3); + } else if (auth_method == UserPassAuth) { + conn->state = s_auth_username_len; + hio_readbytes(io, 2); + } + } + break; + case s_auth_username_len: + // printf("s_auth_username_len\n"); + { + assert(readbytes == 2); + uint8_t auth_version = bytes[0]; + uint8_t username_len = bytes[1]; + if (auth_version != SOCKS5_AUTH_VERSION || username_len == 0) { + fprintf(stderr, "Unsupported auth version: %d\n", (int)auth_version); + hio_close(io); + return; + } + conn->state = s_auth_username; + hio_readbytes(io, username_len); + } + break; + case s_auth_username: + // printf("s_auth_username\n"); + { + char* username = (char*)bytes; + printf("username=%.*s\n", readbytes, username); + if (readbytes != strlen(auth_username) || + strncmp(username, auth_username, readbytes) != 0) { + fprintf(stderr, "User authentication failed!\n"); + uint8_t resp[2] = { SOCKS5_AUTH_VERSION, SOCKS5_AUTH_FAILURE }; + hio_write(io, resp, 2); + hio_close(io); + return; + } + conn->state = s_auth_password_len; + hio_readbytes(io, 1); + } + break; + case s_auth_password_len: + // printf("s_auth_password_len\n"); + { + assert(readbytes == 1); + uint8_t password_len = bytes[0]; + if (password_len == 0) { + fprintf(stderr, "Miss password\n"); + uint8_t resp[2] = { SOCKS5_AUTH_VERSION, SOCKS5_AUTH_FAILURE }; + hio_write(io, resp, 2); + hio_close(io); + return; + } + conn->state = s_auth_password; + hio_readbytes(io, password_len); + } + break; + case s_auth_password: + // printf("s_auth_password\n"); + { + char* password = (char*)bytes; + printf("password=%.*s\n", readbytes, password); + uint8_t resp[2] = { SOCKS5_AUTH_VERSION, SOCKS5_AUTH_SUCCESS }; + if (readbytes != strlen(auth_password) || + strncmp(password, auth_password, readbytes) != 0) { + fprintf(stderr, "User authentication failed!\n"); + resp[1] = SOCKS5_AUTH_FAILURE; + hio_write(io, resp, 2); + hio_close(io); + return; + } + hio_write(io, resp, 2); + conn->state = s_request; + hio_readbytes(io, 3); + } + break; + case s_request: + // printf("s_request\n"); + { + assert(readbytes == 3); + uint8_t version = bytes[0]; + uint8_t cmd = bytes[1]; + if (version != SOCKS5_VERSION || cmd != ConnectCommand) { + // TODO: Implement other commands + fprintf(stderr, "Unsupported command: %d\n", (int)cmd); + hio_close(io); + return; + } + conn->state = s_dst_addr_type; + hio_readbytes(io, 1); + } + break; + case s_dst_addr_type: + // printf("s_dst_addr_type\n"); + { + assert(readbytes == 1); + conn->addr_type = (socks5_addr_type)bytes[0]; + if (conn->addr_type == IPv4Addr) { + conn->state = s_dst_addr; + hio_readbytes(io, 4); + } else if (conn->addr_type == FqdnAddr) { + conn->state = s_dst_addr_len; + hio_readbytes(io, 1); + } else if (conn->addr_type == IPv6Addr) { + conn->state = s_dst_addr; + hio_readbytes(io, 16); + } else { + fprintf(stderr, "Unsupported addr type: %d\n", (int)conn->addr_type); + hio_close(io); + return; + } + } + break; + case s_dst_addr_len: + // printf("s_dst_addr_len\n"); + { + uint8_t addr_len = bytes[0]; + if (addr_len == 0) { + fprintf(stderr, "Miss domain!\n"); + hio_close(io); + return; + } + conn->state = s_dst_addr; + hio_readbytes(io, addr_len); + } + break; + case s_dst_addr: + // printf("s_dst_addr\n"); + { + if (conn->addr_type == IPv4Addr) { + assert(readbytes == 4); + conn->addr.sa.sa_family = AF_INET; + memcpy(&conn->addr.sin.sin_addr, bytes, 4); + } else if (conn->addr_type == IPv6Addr) { + assert(readbytes == 16); + conn->addr.sa.sa_family = AF_INET6; + memcpy(&conn->addr.sin6.sin6_addr, bytes, 16); + } else { + char* host = NULL; + STACK_OR_HEAP_ALLOC(host, readbytes + 1, 256); + memcpy(host, bytes, readbytes); + host[readbytes] = '\0'; + // TODO: async DNS + int ret = ResolveAddr(host, &conn->addr); + STACK_OR_HEAP_FREE(host); + if (ret != 0) { + fprintf(stderr, "Resolve %.*s failed!\n", readbytes, (char*)bytes); + hio_close(io); + return; + } + } + conn->state = s_dst_port; + hio_readbytes(io, 2); + } + break; + case s_dst_port: + // printf("s_dst_port\n"); + { + assert(readbytes == 2); + uint16_t port = ((uint16_t)bytes[0]) << 8 | bytes[1]; + // printf("port=%d\n", port); + sockaddr_set_port(&conn->addr, port); + hloop_t* loop = hevent_loop(io); + // hio_t* upstream_io = hio_setup_tcp_upstream(io, conn->host, conn->port, 0); + // hio_t* upstream_io = hio_create_socket(loop, conn->host, conn->port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + int sockfd = socket(conn->addr.sa.sa_family, SOCK_STREAM, 0); + if (sockfd < 0) { + perror("socket"); + hio_close(io); + return; + } + hio_t* upstream_io = hio_get(loop, sockfd); + assert(upstream_io != NULL); + hio_set_peeraddr(upstream_io, &conn->addr.sa, sockaddr_len(&conn->addr)); + + hevent_set_userdata(upstream_io, conn); + // io <=> upstream_io + hio_setup_upstream(io, upstream_io); + hio_setcb_connect(upstream_io, on_upstream_connect); + hio_setcb_close(upstream_io, hio_close_upstream); + conn->state = s_upstream; + // printf("connect to "); + // SOCKADDR_PRINT(hio_peeraddr(upstream_io)); + hio_connect(upstream_io); + } + break; + case s_upstream: + hio_write_upstream(io, buf, readbytes); + break; + case s_end: + break; + default: + break; + } +} + +static void on_accept(hio_t* io) { + /* + printf("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + hio_setcb_read(io, on_recv); + hio_setcb_close(io, on_close); + + socks5_conn_t* conn = NULL; + HV_ALLOC_SIZEOF(conn); + conn->io = io; + hevent_set_userdata(io, conn); + // start read + conn->state = s_auth_methods_count; + hio_readbytes(io, 2); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s proxy_port [username] [password]\n", argv[0]); + return -10; + } + proxy_port = atoi(argv[1]); + if (argc > 3) { + auth_username = argv[2]; + auth_password = argv[3]; + } + + hloop_t* loop = hloop_new(0); + hio_t* listenio = hloop_create_tcp_server(loop, proxy_host, proxy_port, on_accept); + if (listenio == NULL) { + return -20; + } + printf("socks5 proxy server listening on %s:%d, listenfd=%d\n", proxy_host, proxy_port, hio_fd(listenio)); + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/tcp_chat_server.c b/3rdPartner/libhv/examples/tcp_chat_server.c new file mode 100644 index 0000000..324952e --- /dev/null +++ b/3rdPartner/libhv/examples/tcp_chat_server.c @@ -0,0 +1,160 @@ +/* + * tcp chat server + * + * @build make examples + * @server bin/tcp_chat_server 1234 + * @clients bin/nc 127.0.0.1 1234 + * nc 127.0.0.1 1234 + * telnet 127.0.0.1 1234 + */ + +#include "hloop.h" +#include "hsocket.h" +#include "hbase.h" +#include "list.h" + +unpack_setting_t unpack_setting; + +// hloop_create_tcp_server +// on_accept => join +// on_recv => broadcast +// on_close => leave + +typedef struct chatroom_s { + hloop_t* loop; + hio_t* listenio; + int roomid; + struct list_head conns; +} chatroom_t; + +typedef struct connection_s { + hio_t* connio; + char addr[SOCKADDR_STRLEN]; + struct list_node node; +} connection_t; + +static chatroom_t s_chatroom; + +static void join(chatroom_t* room, connection_t* conn); +static void leave(chatroom_t* room, connection_t* conn); +static void broadcast(chatroom_t* room, const char* msg, int msglen); + +void join(chatroom_t* room, connection_t* conn) { + list_add(&conn->node, &room->conns); + + char msg[256] = {0}; + int msglen = 0; + + struct list_node* node; + connection_t* cur; + msglen = snprintf(msg, sizeof(msg), "room[%06d] clients:\r\n", room->roomid); + hio_write(conn->connio, msg, msglen); + list_for_each (node, &room->conns) { + cur = list_entry(node, connection_t, node); + msglen = snprintf(msg, sizeof(msg), "[%s]\r\n", cur->addr); + hio_write(conn->connio, msg, msglen); + } + hio_write(conn->connio, "\r\n", 2); + + msglen = snprintf(msg, sizeof(msg), "client[%s] join room[%06d]\r\n", conn->addr, room->roomid); + broadcast(room, msg, msglen); +} + +void leave(chatroom_t* room, connection_t* conn) { + list_del(&conn->node); + + char msg[256] = {0}; + int msglen = snprintf(msg, sizeof(msg), "client[%s] leave room[%d]\r\n", conn->addr, room->roomid); + broadcast(room, msg, msglen); +} + +void broadcast(chatroom_t* room, const char* msg, int msglen) { + printf("> %.*s", msglen, msg); + struct list_node* node; + connection_t* conn; + list_for_each (node, &room->conns) { + conn = list_entry(node, connection_t, node); + hio_write(conn->connio, msg, msglen); + } +} + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + + connection_t* conn = (connection_t*)hevent_userdata(io); + if (conn) { + hevent_set_userdata(io, NULL); + + leave(&s_chatroom, conn); + HV_FREE(conn); + } +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + printf("< %.*s", readbytes, (char*)buf); + + // broadcast + connection_t* conn = (connection_t*)hevent_userdata(io); + assert(conn != NULL); + char msg[256] = {0}; + int msglen = snprintf(msg, sizeof(msg), "client[%s] say: %.*s", conn->addr, readbytes, (char*)buf); + broadcast(&s_chatroom, msg, msglen); +} + +static void on_accept(hio_t* io) { + printf("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_set_unpack(io, &unpack_setting); + hio_read_start(io); + + // free on_close + connection_t* conn = NULL; + HV_ALLOC_SIZEOF(conn); + conn->connio = io; + strcpy(conn->addr, peeraddrstr); + hevent_set_userdata(io, conn); + join(&s_chatroom, conn); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + memset(&unpack_setting, 0, sizeof(unpack_setting_t)); + unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + unpack_setting.mode = UNPACK_BY_DELIMITER; + unpack_setting.delimiter[0] = '\n'; + unpack_setting.delimiter_bytes = 1; + + hloop_t* loop = hloop_new(0); + hio_t* listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept); + if (listenio == NULL) { + return -20; + } + printf("listenfd=%d\n", hio_fd(listenio)); + + s_chatroom.loop = loop; + s_chatroom.listenio = listenio; + s_chatroom.roomid = hv_rand(100000, 999999); + list_init(&s_chatroom.conns); + + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/tcp_client_test.c b/3rdPartner/libhv/examples/tcp_client_test.c new file mode 100644 index 0000000..9572937 --- /dev/null +++ b/3rdPartner/libhv/examples/tcp_client_test.c @@ -0,0 +1,251 @@ +/* + * tcp client demo + * + * @build make examples + * @server bin/tcp_echo_server 1234 + * @client bin/tcp_client_test 127.0.0.1 1234 + * + */ + +#include "hloop.h" +#include "hssl.h" +#include "hmutex.h" + +#include "hbase.h" +#include "herr.h" + +#define TEST_SSL 0 +#define TEST_UNPACK 0 +#define TEST_RECONNECT 1 + +// @see mqtt/mqtt_client.h +typedef struct tcp_client_s { + // connect: host:port + char host[256]; + int port; + int connect_timeout; // ms + // reconnect + reconn_setting_t* reconn_setting; + // flags + unsigned char ssl: 1; // Read Only + unsigned char alloced_ssl_ctx: 1; // intern + unsigned char connected : 1; + // privdata + hloop_t* loop; + hio_t* io; + htimer_t* reconn_timer; + // SSL/TLS + hssl_ctx_t ssl_ctx; + // thread-safe + hmutex_t mutex_; + // ... +} tcp_client_t; + +static tcp_client_t* tcp_client_new(hloop_t* loop DEFAULT(NULL)); +static void tcp_client_run (tcp_client_t* cli); +static void tcp_client_stop(tcp_client_t* cli); +static void tcp_client_free(tcp_client_t* cli); + +// SSL/TLS +static int tcp_client_set_ssl_ctx(tcp_client_t* cli, hssl_ctx_t ssl_ctx); +static int tcp_client_new_ssl_ctx(tcp_client_t* cli, hssl_ctx_opt_t* opt); + +// reconnect +static int tcp_client_set_reconnect(tcp_client_t* cli, reconn_setting_t* reconn); +static int tcp_client_reconnect(tcp_client_t* cli); + +static void tcp_client_set_connnect_timeout(tcp_client_t* cli, int timeout_ms); +static int tcp_client_connect(tcp_client_t* cli, const char* host, int port, int ssl); +static int tcp_client_disconnect(tcp_client_t* cli); +static bool tcp_client_is_connected(tcp_client_t* cli); + +static int tcp_client_send(tcp_client_t* cli, const void* buf, int len); + +static void reconnect_timer_cb(htimer_t* timer) { + tcp_client_t* cli = (tcp_client_t*)hevent_userdata(timer); + if (cli == NULL) return; + cli->reconn_timer = NULL; + tcp_client_reconnect(cli); +} + +static void on_close(hio_t* io) { + printf("onclose: connfd=%d error=%d\n", hio_fd(io), hio_error(io)); + tcp_client_t* cli = (tcp_client_t*)hevent_userdata(io); + cli->connected = 0; + // reconnect + if (cli->reconn_setting && reconn_setting_can_retry(cli->reconn_setting)) { + uint32_t delay = reconn_setting_calc_delay(cli->reconn_setting); + printf("reconnect cnt=%d, delay=%d ...\n", cli->reconn_setting->cur_retry_cnt, cli->reconn_setting->cur_delay); + cli->reconn_timer = htimer_add(cli->loop, reconnect_timer_cb, delay, 1); + hevent_set_userdata(cli->reconn_timer, cli); + } +} + +static void on_message(hio_t* io, void* buf, int len) { + printf("onmessage: %.*s\n", len, (char*)buf); + tcp_client_t* cli = (tcp_client_t*)hevent_userdata(io); + // ... +} + +static void on_connect(hio_t* io) { + printf("onconnect: connfd=%d\n", hio_fd(io)); + tcp_client_t* cli = (tcp_client_t*)hevent_userdata(io); + cli->connected = 1; + +#if TEST_UNPACK + static unpack_setting_t s_unpack_setting; + s_unpack_setting.mode = UNPACK_BY_DELIMITER; + s_unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + s_unpack_setting.delimiter_bytes = 2; + s_unpack_setting.delimiter[0] = '\r'; + s_unpack_setting.delimiter[1] = '\n'; + hio_set_unpack(io, &s_unpack_setting); +#endif + + hio_write(io, "hello\r\n", 7); + + hio_setcb_read(io, on_message); + hio_read(io); +} + +// hloop_new -> malloc(tcp_client_t) +tcp_client_t* tcp_client_new(hloop_t* loop) { + if (loop == NULL) { + loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + if (loop == NULL) return NULL; + } + tcp_client_t* cli = NULL; + HV_ALLOC_SIZEOF(cli); + if (cli == NULL) return NULL; + cli->loop = loop; + hmutex_init(&cli->mutex_); + return cli; +} + +// hloop_free -> free(tcp_client_t) +void tcp_client_free(tcp_client_t* cli) { + if (!cli) return; + hmutex_destroy(&cli->mutex_); + if (cli->ssl_ctx && cli->alloced_ssl_ctx) { + hssl_ctx_free(cli->ssl_ctx); + cli->ssl_ctx = NULL; + } + HV_FREE(cli->reconn_setting); + HV_FREE(cli); +} + +void tcp_client_run (tcp_client_t* cli) { + if (!cli || !cli->loop) return; + hloop_run(cli->loop); +} + +void tcp_client_stop(tcp_client_t* cli) { + if (!cli || !cli->loop) return; + hloop_stop(cli->loop); +} + +int tcp_client_set_ssl_ctx(tcp_client_t* cli, hssl_ctx_t ssl_ctx) { + cli->ssl_ctx = ssl_ctx; + return 0; +} + +// hssl_ctx_new(opt) -> tcp_client_set_ssl_ctx +int tcp_client_new_ssl_ctx(tcp_client_t* cli, hssl_ctx_opt_t* opt) { + opt->endpoint = HSSL_CLIENT; + hssl_ctx_t ssl_ctx = hssl_ctx_new(opt); + if (ssl_ctx == NULL) return ERR_NEW_SSL_CTX; + cli->alloced_ssl_ctx = true; + return tcp_client_set_ssl_ctx(cli, ssl_ctx); +} + +int tcp_client_set_reconnect(tcp_client_t* cli, reconn_setting_t* reconn) { + if (reconn == NULL) { + HV_FREE(cli->reconn_setting); + return 0; + } + if (cli->reconn_setting == NULL) { + HV_ALLOC_SIZEOF(cli->reconn_setting); + } + *cli->reconn_setting = *reconn; + return 0; +} + +int tcp_client_reconnect(tcp_client_t* cli) { + tcp_client_connect(cli, cli->host, cli->port, cli->ssl); + return 0; +} + +int tcp_client_connect(tcp_client_t* cli, const char* host, int port, int ssl) { + if (!cli) return -1; + hv_strncpy(cli->host, host, sizeof(cli->host)); + cli->port = port; + cli->ssl = ssl; + hio_t* io = hio_create_socket(cli->loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (io == NULL) return -1; + if (ssl) { + if (cli->ssl_ctx) { + hio_set_ssl_ctx(io, cli->ssl_ctx); + } + hio_enable_ssl(io); + } + if (cli->connect_timeout > 0) { + hio_set_connect_timeout(io, cli->connect_timeout); + } + cli->io = io; + hevent_set_userdata(io, cli); + hio_setcb_connect(io, on_connect); + hio_setcb_close(io, on_close); + return hio_connect(io); +} + +int tcp_client_disconnect(tcp_client_t* cli) { + if (!cli || !cli->io) return -1; + // cancel reconnect first + tcp_client_set_reconnect(cli, NULL); + return hio_close(cli->io); +} + +bool tcp_client_is_connected(tcp_client_t* cli) { + return cli && cli->connected; +} + +int tcp_client_send(tcp_client_t* cli, const void* buf, int len) { + if (!cli || !cli->io || !buf || len == 0) return -1; + if (!cli->connected) return -2; + // thread-safe + hmutex_lock(&cli->mutex_); + int nwrite = hio_write(cli->io, buf, len); + hmutex_unlock(&cli->mutex_); + return nwrite; +} + +int main(int argc, char** argv) { + if (argc < 3) { + printf("Usage: %s host port\n", argv[0]); + return -10; + } + const char* host = argv[1]; + int port = atoi(argv[2]); + + tcp_client_t* cli = tcp_client_new(NULL); + if (!cli) return -20; + +#if TEST_RECONNECT + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + tcp_client_set_reconnect(cli, &reconn); +#endif + + int ssl = 0; +#if TEST_SSL + ssl = 1; +#endif + tcp_client_connect(cli, host, port, ssl); + + tcp_client_run(cli); + tcp_client_free(cli); + return 0; +} diff --git a/3rdPartner/libhv/examples/tcp_echo_server.c b/3rdPartner/libhv/examples/tcp_echo_server.c new file mode 100644 index 0000000..f48788f --- /dev/null +++ b/3rdPartner/libhv/examples/tcp_echo_server.c @@ -0,0 +1,143 @@ +/* + * tcp echo server + * + * @build make examples + * @server bin/tcp_echo_server 1234 + * @client bin/nc 127.0.0.1 1234 + * nc 127.0.0.1 1234 + * telnet 127.0.0.1 1234 + */ + +#include "hloop.h" +#include "hsocket.h" +#include "hssl.h" + +/* + * @test ssl_server + * #define TEST_SSL 1 + * + * @build ./configure --with-openssl && make clean && make + * @server bin/tcp_echo_server 1234 + * @client bin/nc -s 127.0.0.1 1234 + * + */ +#define TEST_SSL 0 +#define TEST_READ_ONCE 0 +#define TEST_READLINE 0 +#define TEST_READSTRING 0 +#define TEST_READBYTES 0 +#define TEST_READ_STOP 0 +#define TEST_UNPACK 0 + +#if TEST_UNPACK +static unpack_setting_t unpack_setting; +#endif + +// hloop_create_tcp_server -> on_accept -> hio_read -> on_recv -> hio_write + +static void on_close(hio_t* io) { + printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + printf("< %.*s", readbytes, (char*)buf); + // echo + printf("> %.*s", readbytes, (char*)buf); + hio_write(io, buf, readbytes); + +#if TEST_READ_STOP + hio_read_stop(io); +#elif TEST_READ_ONCE + hio_read_once(io); +#elif TEST_READLINE + hio_readline(io); +#elif TEST_READSTRING + hio_readstring(io); +#elif TEST_READBYTES + hio_readbytes(io, TEST_READBYTES); +#endif +} + +static void on_accept(hio_t* io) { + printf("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + +#if TEST_UNPACK + hio_set_unpack(io, &unpack_setting); +#endif + +#if TEST_READ_ONCE + hio_read_once(io); +#elif TEST_READLINE + hio_readline(io); +#elif TEST_READSTRING + hio_readstring(io); +#elif TEST_READBYTES + hio_readbytes(io, TEST_READBYTES); +#else + hio_read_start(io); +#endif +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port|path\n", argv[0]); + return -10; + } + const char* host = "0.0.0.0"; + int port = atoi(argv[1]); +#if ENABLE_UDS + if (port == 0) { + host = argv[1]; + port = -1; + } +#endif + +#if TEST_UNPACK + memset(&unpack_setting, 0, sizeof(unpack_setting_t)); + unpack_setting.package_max_length = DEFAULT_PACKAGE_MAX_LENGTH; + unpack_setting.mode = UNPACK_BY_DELIMITER; + unpack_setting.delimiter[0] = '\r'; + unpack_setting.delimiter[1] = '\n'; + unpack_setting.delimiter_bytes = 2; +#endif + + hloop_t* loop = hloop_new(0); +#if TEST_SSL + hio_t* listenio = hloop_create_ssl_server(loop, host, port, on_accept); +#else + hio_t* listenio = hloop_create_tcp_server(loop, host, port, on_accept); +#endif + if (listenio == NULL) { + return -20; + } +#if TEST_SSL + hssl_ctx_opt_t ssl_param; + memset(&ssl_param, 0, sizeof(ssl_param)); + ssl_param.crt_file = "cert/server.crt"; + ssl_param.key_file = "cert/server.key"; + ssl_param.endpoint = HSSL_SERVER; + if (hio_new_ssl_ctx(listenio, &ssl_param) != 0) { + fprintf(stderr, "hssl_ctx_new failed!\n"); + return -30; + } +#endif + + printf("listenfd=%d\n", hio_fd(listenio)); + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/tcp_proxy_server.c b/3rdPartner/libhv/examples/tcp_proxy_server.c new file mode 100644 index 0000000..ccdfd20 --- /dev/null +++ b/3rdPartner/libhv/examples/tcp_proxy_server.c @@ -0,0 +1,86 @@ +/* + * tcp proxy server + * + * @build: make clean && make examples WITH_OPENSSL=yes + * @http_server: bin/httpd -s restart -d + * @proxy_server: bin/tcp_proxy_server 1080 127.0.0.1:8080 + * bin/tcp_proxy_server 1080 127.0.0.1:8443 + * bin/tcp_proxy_server 1080 www.baidu.com + * bin/tcp_proxy_server 1080 www.baidu.com:443 + * @client: bin/curl -v 127.0.0.1:1080 + * bin/nc 127.0.0.1 1080 + * > GET / HTTP/1.1 + * > Connection: close + * > [Enter] + * > GET / HTTP/1.1 + * > Connection: keep-alive + * > [Enter] + * + * @benchmark: sudo apt install iperf + * iperf -s -p 5001 + * bin/tcp_proxy_server 1212 127.0.0.1:5001 + * iperf -c 127.0.0.1 -p 5001 -l 8K + * iperf -c 127.0.0.1 -p 1212 -l 8K + */ + +#include "hloop.h" +#include "hsocket.h" + +static char proxy_host[64] = "0.0.0.0"; +static int proxy_port = 1080; +static int proxy_ssl = 0; + +static char backend_host[64] = "127.0.0.1"; +static int backend_port = 80; +static int backend_ssl = 0; + +// hloop_create_tcp_server -> on_accept -> hio_setup_tcp_upstream + +static void on_accept(hio_t* io) { + /* + printf("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + if (backend_port % 1000 == 443) backend_ssl = 1; + hio_setup_tcp_upstream(io, backend_host, backend_port, backend_ssl); +} + +int main(int argc, char** argv) { + if (argc < 3) { + printf("Usage: %s proxy_port backend_host:backend_port\n", argv[0]); + return -10; + } + proxy_port = atoi(argv[1]); + if (proxy_port % 1000 == 443) proxy_ssl = 1; + char* pos = strchr(argv[2], ':'); + if (pos) { + int len = pos - argv[2]; + if (len > 0) { + memcpy(backend_host, argv[2], len); + backend_host[len] = '\0'; + } + backend_port = atoi(pos + 1); + } else { + strncpy(backend_host, argv[2], sizeof(backend_host)); + } + if (backend_port == 0) backend_port = 80; + printf("%s:%d proxy %s:%d\n", proxy_host, proxy_port, backend_host, backend_port); + + hloop_t* loop = hloop_new(0); + hio_t* listenio = hloop_create_tcp_server(loop, proxy_host, proxy_port, on_accept); + if (listenio == NULL) { + return -20; + } + printf("listenfd=%d\n", hio_fd(listenio)); + if (proxy_ssl) { + hio_enable_ssl(listenio); + } + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/tinyhttpd.c b/3rdPartner/libhv/examples/tinyhttpd.c new file mode 100644 index 0000000..5aa6693 --- /dev/null +++ b/3rdPartner/libhv/examples/tinyhttpd.c @@ -0,0 +1,475 @@ +/* + * tinyhttpd tiny http server + * + * @build make examples + * + * @server bin/tinyhttpd 8000 + * + * @client bin/curl -v http://127.0.0.1:8000/ + * bin/curl -v http://127.0.0.1:8000/ping + * bin/curl -v http://127.0.0.1:8000/echo -d "hello,world!" + * + * @webbench bin/wrk http://127.0.0.1:8000/ping + * + */ + +#include "hv.h" +#include "hloop.h" + +/* + * workflow: + * hloop_new -> hloop_create_tcp_server -> hloop_run -> + * on_accept -> HV_ALLOC(http_conn_t) -> hio_readline -> + * on_recv -> parse_http_request_line -> hio_readline -> + * on_recv -> parse_http_head -> ... -> hio_readbytes(content_length) -> + * on_recv -> on_request -> http_reply-> hio_write -> hio_close -> + * on_close -> HV_FREE(http_conn_t) + * + */ + +static const char* host = "0.0.0.0"; +static int port = 8000; +static int thread_num = 1; +static hloop_t* accept_loop = NULL; +static hloop_t** worker_loops = NULL; + +#define HTTP_KEEPALIVE_TIMEOUT 60000 // ms +#define HTTP_MAX_URL_LENGTH 256 +#define HTTP_MAX_HEAD_LENGTH 1024 + +#define HTML_TAG_BEGIN "

" +#define HTML_TAG_END "

" + +// status_message +#define HTTP_OK "OK" +#define NOT_FOUND "Not Found" +#define NOT_IMPLEMENTED "Not Implemented" + +// Content-Type +#define TEXT_PLAIN "text/plain" +#define TEXT_HTML "text/html" + +typedef enum { + s_begin, + s_first_line, + s_request_line = s_first_line, + s_status_line = s_first_line, + s_head, + s_head_end, + s_body, + s_end +} http_state_e; + +typedef struct { + // first line + int major_version; + int minor_version; + union { + // request line + struct { + char method[32]; + char path[HTTP_MAX_URL_LENGTH]; + }; + // status line + struct { + int status_code; + char status_message[64]; + }; + }; + // headers + char host[64]; + int content_length; + char content_type[64]; + unsigned keepalive: 1; +// char head[HTTP_MAX_HEAD_LENGTH]; +// int head_len; + // body + char* body; + int body_len; // body_len = content_length +} http_msg_t; + +typedef struct { + hio_t* io; + http_state_e state; + http_msg_t request; + http_msg_t response; + // for http_serve_file + FILE* fp; + hbuf_t filebuf; +} http_conn_t; + +static char s_date[32] = {0}; +static void update_date(htimer_t* timer) { + uint64_t now = hloop_now(hevent_loop(timer)); + gmtime_fmt(now, s_date); +} + +static int http_response_dump(http_msg_t* msg, char* buf, int len) { + int offset = 0; + // status line + offset += snprintf(buf + offset, len - offset, "HTTP/%d.%d %d %s\r\n", msg->major_version, msg->minor_version, msg->status_code, msg->status_message); + // headers + offset += snprintf(buf + offset, len - offset, "Server: libhv/%s\r\n", hv_version()); + offset += snprintf(buf + offset, len - offset, "Connection: %s\r\n", msg->keepalive ? "keep-alive" : "close"); + if (msg->content_length > 0) { + offset += snprintf(buf + offset, len - offset, "Content-Length: %d\r\n", msg->content_length); + } + if (*msg->content_type) { + offset += snprintf(buf + offset, len - offset, "Content-Type: %s\r\n", msg->content_type); + } + if (*s_date) { + offset += snprintf(buf + offset, len - offset, "Date: %s\r\n", s_date); + } + // TODO: Add your headers + offset += snprintf(buf + offset, len - offset, "\r\n"); + // body + if (msg->body && msg->content_length > 0) { + memcpy(buf + offset, msg->body, msg->content_length); + offset += msg->content_length; + } + return offset; +} + +static int http_reply(http_conn_t* conn, + int status_code, const char* status_message, + const char* content_type, + const char* body, int body_len) { + http_msg_t* req = &conn->request; + http_msg_t* resp = &conn->response; + resp->major_version = req->major_version; + resp->minor_version = req->minor_version; + resp->status_code = status_code; + if (status_message) strncpy(resp->status_message, status_message, sizeof(req->status_message) - 1); + if (content_type) strncpy(resp->content_type, content_type, sizeof(req->content_type) - 1); + resp->keepalive = req->keepalive; + if (body) { + if (body_len <= 0) body_len = strlen(body); + resp->content_length = body_len; + resp->body = (char*)body; + } + char* buf = NULL; + STACK_OR_HEAP_ALLOC(buf, HTTP_MAX_HEAD_LENGTH + resp->content_length, HTTP_MAX_HEAD_LENGTH + 1024); + int msglen = http_response_dump(resp, buf, HTTP_MAX_HEAD_LENGTH + resp->content_length); + int nwrite = hio_write(conn->io, buf, msglen); + STACK_OR_HEAP_FREE(buf); + return nwrite < 0 ? nwrite : msglen; +} + +static void http_send_file(http_conn_t* conn) { + if (!conn || !conn->fp) return; + // alloc filebuf + if (!conn->filebuf.base) { + conn->filebuf.len = 4096; + HV_ALLOC(conn->filebuf, conn->filebuf.len); + } + char* filebuf = conn->filebuf.base; + size_t filebuflen = conn->filebuf.len; + // read file + int nread = fread(filebuf, 1, filebuflen, conn->fp); + if (nread <= 0) { + // eof or error + hio_close(conn->io); + return; + } + // send file + hio_write(conn->io, filebuf, nread); +} + +static void on_write(hio_t* io, const void* buf, int writebytes) { + if (!io) return; + if (!hio_write_is_complete(io)) return; + http_conn_t* conn = (http_conn_t*)hevent_userdata(io); + http_send_file(conn); +} + +static int http_serve_file(http_conn_t* conn) { + http_msg_t* req = &conn->request; + http_msg_t* resp = &conn->response; + // GET / HTTP/1.1\r\n + const char* filepath = req->path + 1; + // homepage + if (*filepath == '\0') { + filepath = "index.html"; + } + // open file + conn->fp = fopen(filepath, "rb"); + if (!conn->fp) { + http_reply(conn, 404, NOT_FOUND, TEXT_HTML, HTML_TAG_BEGIN NOT_FOUND HTML_TAG_END, 0); + return 404; + } + // send head + size_t filesize = hv_filesize(filepath); + resp->content_length = filesize; + const char* suffix = hv_suffixname(filepath); + const char* content_type = NULL; + if (strcmp(suffix, "html") == 0) { + content_type = TEXT_HTML; + } else { + // TODO: set content_type by suffix + } + hio_setcb_write(conn->io, on_write); + int nwrite = http_reply(conn, 200, "OK", content_type, NULL, 0); + if (nwrite < 0) return nwrite; // disconnected + return 200; +} + +static bool parse_http_request_line(http_conn_t* conn, char* buf, int len) { + // GET / HTTP/1.1 + http_msg_t* req = &conn->request; + sscanf(buf, "%s %s HTTP/%d.%d", req->method, req->path, &req->major_version, &req->minor_version); + if (req->major_version != 1) return false; + if (req->minor_version == 1) req->keepalive = 1; + // printf("%s %s HTTP/%d.%d\r\n", req->method, req->path, req->major_version, req->minor_version); + return true; +} + +static bool parse_http_head(http_conn_t* conn, char* buf, int len) { + http_msg_t* req = &conn->request; + // Content-Type: text/html + const char* key = buf; + const char* val = buf; + char* delim = strchr(buf, ':'); + if (!delim) return false; + *delim = '\0'; + val = delim + 1; + // trim space + while (*val == ' ') ++val; + // printf("%s: %s\r\n", key, val); + if (stricmp(key, "Content-Length") == 0) { + req->content_length = atoi(val); + } else if (stricmp(key, "Content-Type") == 0) { + strncpy(req->content_type, val, sizeof(req->content_type) - 1); + } else if (stricmp(key, "Connection") == 0) { + if (stricmp(val, "close") == 0) { + req->keepalive = 0; + } + } else { + // TODO: save other head + } + return true; +} + +static int on_request(http_conn_t* conn) { + http_msg_t* req = &conn->request; + // TODO: router + if (strcmp(req->method, "GET") == 0) { + // GET /ping HTTP/1.1\r\n + if (strcmp(req->path, "/ping") == 0) { + http_reply(conn, 200, "OK", TEXT_PLAIN, "pong", 4); + return 200; + } else { + // TODO: Add handler for your path + } + return http_serve_file(conn); + } else if (strcmp(req->method, "POST") == 0) { + // POST /echo HTTP/1.1\r\n + if (strcmp(req->path, "/echo") == 0) { + http_reply(conn, 200, "OK", req->content_type, req->body, req->content_length); + return 200; + } else { + // TODO: Add handler for your path + } + } else { + // TODO: handle other method + } + http_reply(conn, 501, NOT_IMPLEMENTED, TEXT_HTML, HTML_TAG_BEGIN NOT_IMPLEMENTED HTML_TAG_END, 0); + return 501; +} + +static void on_close(hio_t* io) { + // printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + http_conn_t* conn = (http_conn_t*)hevent_userdata(io); + if (conn) { + if (conn->fp) { + // close file + fclose(conn->fp); + conn->fp = NULL; + } + // free filebuf + HV_FREE(conn->filebuf.base); + HV_FREE(conn); + hevent_set_userdata(io, NULL); + } +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + char* str = (char*)buf; + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + // printf("%.*s", readbytes, str); + http_conn_t* conn = (http_conn_t*)hevent_userdata(io); + http_msg_t* req = &conn->request; + switch (conn->state) { + case s_begin: + // printf("s_begin"); + conn->state = s_first_line; + case s_first_line: + // printf("s_first_line\n"); + if (readbytes < 2) { + fprintf(stderr, "Not match \r\n!"); + hio_close(io); + return; + } + str[readbytes - 2] = '\0'; + if (parse_http_request_line(conn, str, readbytes - 2) == false) { + fprintf(stderr, "Failed to parse http request line:\n%s\n", str); + hio_close(io); + return; + } + // start read head + conn->state = s_head; + hio_readline(io); + break; + case s_head: + // printf("s_head\n"); + if (readbytes < 2) { + fprintf(stderr, "Not match \r\n!"); + hio_close(io); + return; + } + if (readbytes == 2 && str[0] == '\r' && str[1] == '\n') { + conn->state = s_head_end; + } else { + str[readbytes - 2] = '\0'; + if (parse_http_head(conn, str, readbytes - 2) == false) { + fprintf(stderr, "Failed to parse http head:\n%s\n", str); + hio_close(io); + return; + } + hio_readline(io); + break; + } + case s_head_end: + // printf("s_head_end\n"); + if (req->content_length == 0) { + conn->state = s_end; + goto s_end; + } else { + // start read body + conn->state = s_body; + // WARN: too large content_length should read multiple times! + hio_readbytes(io, req->content_length); + break; + } + case s_body: + // printf("s_body\n"); + req->body = str; + req->body_len += readbytes; + if (req->body_len == req->content_length) { + conn->state = s_end; + } else { + // WARN: too large content_length should be handled by streaming! + break; + } + case s_end: +s_end: + // printf("s_end\n"); + // received complete request + on_request(conn); + if (hio_is_closed(io)) return; + if (req->keepalive) { + // Connection: keep-alive\r\n + // reset and receive next request + memset(&conn->request, 0, sizeof(http_msg_t)); + memset(&conn->response, 0, sizeof(http_msg_t)); + conn->state = s_first_line; + hio_readline(io); + } else { + // Connection: close\r\n + hio_close(io); + } + break; + default: break; + } +} + +static void new_conn_event(hevent_t* ev) { + hloop_t* loop = ev->loop; + hio_t* io = (hio_t*)hevent_userdata(ev); + hio_attach(loop, io); + + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("tid=%ld connfd=%d [%s] <= [%s]\n", + (long)hv_gettid(), + (int)hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_set_keepalive_timeout(io, HTTP_KEEPALIVE_TIMEOUT); + + http_conn_t* conn = NULL; + HV_ALLOC_SIZEOF(conn); + conn->io = io; + hevent_set_userdata(io, conn); + // start read first line + conn->state = s_first_line; + hio_readline(io); +} + +static hloop_t* get_next_loop() { + static int s_cur_index = 0; + if (s_cur_index == thread_num) { + s_cur_index = 0; + } + return worker_loops[s_cur_index++]; +} + +static void on_accept(hio_t* io) { + hio_detach(io); + + hloop_t* worker_loop = get_next_loop(); + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.loop = worker_loop; + ev.cb = new_conn_event; + ev.userdata = io; + hloop_post_event(worker_loop, &ev); +} + +static HTHREAD_ROUTINE(worker_thread) { + hloop_t* loop = (hloop_t*)userdata; + hloop_run(loop); + return 0; +} + +static HTHREAD_ROUTINE(accept_thread) { + hloop_t* loop = (hloop_t*)userdata; + hio_t* listenio = hloop_create_tcp_server(loop, host, port, on_accept); + if (listenio == NULL) { + exit(1); + } + printf("tinyhttpd listening on %s:%d, listenfd=%d, thread_num=%d\n", + host, port, hio_fd(listenio), thread_num); + // NOTE: add timer to update date every 1s + htimer_add(loop, update_date, 1000, INFINITE); + hloop_run(loop); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port [thread_num]\n", argv[0]); + return -10; + } + port = atoi(argv[1]); + if (argc > 2) { + thread_num = atoi(argv[2]); + } else { + thread_num = get_ncpu(); + } + if (thread_num == 0) thread_num = 1; + + worker_loops = (hloop_t**)malloc(sizeof(hloop_t*) * thread_num); + for (int i = 0; i < thread_num; ++i) { + worker_loops[i] = hloop_new(HLOOP_FLAG_AUTO_FREE); + hthread_create(worker_thread, worker_loops[i]); + } + + accept_loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + accept_thread(accept_loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/tinyproxyd.c b/3rdPartner/libhv/examples/tinyproxyd.c new file mode 100644 index 0000000..fe9ba64 --- /dev/null +++ b/3rdPartner/libhv/examples/tinyproxyd.c @@ -0,0 +1,479 @@ +/* + * tinyproxyd tiny http proxy server + * + * @build make examples + * + * @http_server bin/tinyhttpd 8000 + * @proxy_server bin/tinyproxyd 1080 + * + * @proxy_client bin/curl -v www.httpbin.org/get --http-proxy 127.0.0.1:1080 + * bin/curl -v www.httpbin.org/post -d hello --http-proxy 127.0.0.1:1080 + * curl -v www.httpbin.org/get --proxy http://127.0.0.1:1080 + * curl -v www.httpbin.org/post -d hello --proxy http://127.0.0.1:1080 + * + */ + +#include "hv.h" +#include "hloop.h" + +/* + * workflow: + * hloop_new -> hloop_create_tcp_server -> hloop_run -> + * on_accept -> HV_ALLOC(http_conn_t) -> hio_readline -> + * on_recv -> parse_http_request_line -> hio_readline -> + * on_recv -> parse_http_head -> ... -> hio_readline -> + * on_head_end -> hio_setup_upstream -> + * on_upstream_connect -> hio_write_upstream(head) -> + * on_body -> hio_write_upstream(body) -> + * on_upstream_close -> hio_close -> + * on_close -> HV_FREE(http_conn_t) + * + */ + +static char proxy_host[64] = "0.0.0.0"; +static int proxy_port = 1080; +static int proxy_ssl = 0; + +static int thread_num = 1; +static hloop_t* accept_loop = NULL; +static hloop_t** worker_loops = NULL; + +#define HTTP_KEEPALIVE_TIMEOUT 60000 // ms +#define HTTP_MAX_URL_LENGTH 256 +#define HTTP_MAX_HEAD_LENGTH 1024 + +typedef enum { + s_begin, + s_first_line, + s_request_line = s_first_line, + s_status_line = s_first_line, + s_head, + s_head_end, + s_body, + s_end +} http_state_e; + +typedef struct { + // first line + int major_version; + int minor_version; + union { + // request line + struct { + char method[32]; + char path[HTTP_MAX_URL_LENGTH]; + }; + // status line + struct { + int status_code; + char status_message[64]; + }; + }; + // headers + char host[64]; + int content_length; + char content_type[64]; + unsigned keepalive: 1; + unsigned proxy: 1; + char head[HTTP_MAX_HEAD_LENGTH]; + int head_len; + // body + char* body; + int body_len; // body_len = content_length +} http_msg_t; + +typedef struct { + hio_t* io; + http_state_e state; + http_msg_t request; +// http_msg_t response; +} http_conn_t; + +static int http_request_dump(http_conn_t* conn, char* buf, int len) { + http_msg_t* msg = &conn->request; + int offset = 0; + // request line + const char* path = msg->path; + if (msg->proxy) { + const char* pos = strstr(msg->path, "://"); + pos = pos ? pos + 3 : msg->path; + path = strchr(pos, '/'); + } + if (path == NULL) path = "/"; + offset += snprintf(buf + offset, len - offset, "%s %s HTTP/%d.%d\r\n", msg->method, path, msg->major_version, msg->minor_version); + // headers + if (msg->proxy) { + if (msg->head_len) { + memcpy(buf + offset, msg->head, msg->head_len); + offset += msg->head_len; + } + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + SOCKADDR_STR(hio_peeraddr(conn->io), peeraddrstr); + offset += snprintf(buf + offset, len - offset, "X-Origin-IP: %s\r\n", peeraddrstr); + } else { + offset += snprintf(buf + offset, len - offset, "Connection: %s\r\n", msg->keepalive ? "keep-alive" : "close"); + if (msg->content_length > 0) { + offset += snprintf(buf + offset, len - offset, "Content-Length: %d\r\n", msg->content_length); + } + if (*msg->content_type) { + offset += snprintf(buf + offset, len - offset, "Content-Type: %s\r\n", msg->content_type); + } + } + // TODO: Add your headers + offset += snprintf(buf + offset, len - offset, "\r\n"); + // body + if (msg->body && msg->content_length > 0) { + memcpy(buf + offset, msg->body, msg->content_length); + offset += msg->content_length; + } + return offset; +} + +static bool parse_http_request_line(http_conn_t* conn, char* buf, int len) { + // GET / HTTP/1.1 + http_msg_t* req = &conn->request; + sscanf(buf, "%s %s HTTP/%d.%d", req->method, req->path, &req->major_version, &req->minor_version); + if (req->major_version != 1) return false; + if (req->minor_version == 1) req->keepalive = 1; + // printf("%s %s HTTP/%d.%d\r\n", req->method, req->path, req->major_version, req->minor_version); + return true; +} + +static bool parse_http_head(http_conn_t* conn, char* buf, int len) { + http_msg_t* req = &conn->request; + // Content-Type: text/html + const char* key = buf; + const char* val = buf; + char* delim = strchr(buf, ':'); + if (!delim) return false; + *delim = '\0'; + val = delim + 1; + // trim space + while (*val == ' ') ++val; + // printf("%s: %s\r\n", key, val); + if (stricmp(key, "Host") == 0) { + strncpy(req->host, val, sizeof(req->host) - 1); + } else if (stricmp(key, "Content-Length") == 0) { + req->content_length = atoi(val); + } else if (stricmp(key, "Content-Type") == 0) { + strncpy(req->content_type, val, sizeof(req->content_type) - 1); + } else if (stricmp(key, "Connection") == 0 || stricmp(key, "Proxy-Connection") == 0) { + if (stricmp(val, "close") == 0) { + req->keepalive = 0; + } + } + return true; +} + +static void on_upstream_connect(hio_t* upstream_io) { + // printf("on_upstream_connect\n"); + http_conn_t* conn = (http_conn_t*)hevent_userdata(upstream_io); + http_msg_t* req = &conn->request; + // send head + char stackbuf[HTTP_MAX_HEAD_LENGTH + 1024] = {0}; + char* buf = stackbuf; + int buflen = sizeof(stackbuf); + int msglen = http_request_dump(conn, buf, buflen); + hio_write(upstream_io, buf, msglen); + if (conn->state != s_end) { + // start recv body then upstream + hio_read_start(conn->io); + } else { + if (req->keepalive) { + // Connection: keep-alive\r\n + // reset and receive next request + memset(&conn->request, 0, sizeof(http_msg_t)); + // memset(&conn->response, 0, sizeof(http_msg_t)); + conn->state = s_first_line; + hio_readline(conn->io); + } + } + // start recv response + hio_read_start(upstream_io); +} + +static int on_head_end(http_conn_t* conn) { + http_msg_t* req = &conn->request; + if (req->host[0] == '\0') { + fprintf(stderr, "No Host header!\n"); + return -1; + } + char backend_host[64] = {0}; + strcpy(backend_host, req->host); + int backend_port = 80; + char* pos = strchr(backend_host, ':'); + if (pos) { + *pos = '\0'; + backend_port = atoi(pos + 1); + } + if (backend_port == proxy_port && + (strcmp(backend_host, proxy_host) == 0 || + strcmp(backend_host, "localhost") == 0 || + strcmp(backend_host, "127.0.0.1") == 0)) { + req->proxy = 0; + return 0; + } + // NOTE: blew for proxy + req->proxy = 1; + int backend_ssl = strncmp(req->path, "https", 5) == 0 ? 1 : 0; + // printf("upstream %s:%d\n", backend_host, backend_port); + hloop_t* loop = hevent_loop(conn->io); + // hio_t* upstream_io = hio_setup_tcp_upstream(conn->io, backend_host, backend_port, backend_ssl); + hio_t* upstream_io = hio_create_socket(loop, backend_host, backend_port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (upstream_io == NULL) { + fprintf(stderr, "Failed to upstream %s:%d!\n", backend_host, backend_port); + return -3; + } + if (backend_ssl) { + hio_enable_ssl(upstream_io); + } + hevent_set_userdata(upstream_io, conn); + hio_setup_upstream(conn->io, upstream_io); + hio_setcb_read(upstream_io, hio_write_upstream); + hio_setcb_close(upstream_io, hio_close_upstream); + hio_setcb_connect(upstream_io, on_upstream_connect); + hio_connect(upstream_io); + return 0; +} + +static int on_body(http_conn_t* conn, void* buf, int readbytes) { + http_msg_t* req = &conn->request; + if (req->proxy) { + hio_write_upstream(conn->io, buf, readbytes); + } + return 0; +} + +static int on_request(http_conn_t* conn) { + // NOTE: just reply 403, please refer to examples/tinyhttpd if you want to reply other. + http_msg_t* req = &conn->request; + char buf[256] = {0}; + int len = snprintf(buf, sizeof(buf), "HTTP/%d.%d %d %s\r\nContent-Length: 0\r\n\r\n", + req->major_version, req->minor_version, 403, "Forbidden"); + hio_write(conn->io, buf, len); + return 403; +} + +static void on_close(hio_t* io) { + // printf("on_close fd=%d error=%d\n", hio_fd(io), hio_error(io)); + http_conn_t* conn = (http_conn_t*)hevent_userdata(io); + if (conn) { + HV_FREE(conn); + hevent_set_userdata(io, NULL); + } + hio_close_upstream(io); +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + char* str = (char*)buf; + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + // printf("%.*s", readbytes, str); + http_conn_t* conn = (http_conn_t*)hevent_userdata(io); + http_msg_t* req = &conn->request; + switch (conn->state) { + case s_begin: + // printf("s_begin"); + conn->state = s_first_line; + case s_first_line: + // printf("s_first_line\n"); + if (readbytes < 2) { + fprintf(stderr, "Not match \r\n!"); + hio_close(io); + return; + } + str[readbytes - 2] = '\0'; + if (parse_http_request_line(conn, str, readbytes - 2) == false) { + fprintf(stderr, "Failed to parse http request line:\n%s\n", str); + hio_close(io); + return; + } + // start read head + conn->state = s_head; + hio_readline(io); + break; + case s_head: + // printf("s_head\n"); + if (readbytes < 2) { + fprintf(stderr, "Not match \r\n!"); + hio_close(io); + return; + } + if (readbytes == 2 && str[0] == '\r' && str[1] == '\n') { + conn->state = s_head_end; + } else { + // NOTE: save head + if (strnicmp(str, "Proxy-", 6) != 0) { + if (req->head_len + readbytes < HTTP_MAX_HEAD_LENGTH) { + memcpy(req->head + req->head_len, buf, readbytes); + req->head_len += readbytes; + } + } + str[readbytes - 2] = '\0'; + if (parse_http_head(conn, str, readbytes - 2) == false) { + fprintf(stderr, "Failed to parse http head:\n%s\n", str); + hio_close(io); + return; + } + hio_readline(io); + break; + } + case s_head_end: + // printf("s_head_end\n"); + if (on_head_end(conn) < 0) { + hio_close(io); + return; + } + if (req->content_length == 0) { + conn->state = s_end; + if (req->proxy) { + // NOTE: wait upstream connect! + } else { + goto s_end; + } + } else { + conn->state = s_body; + if (req->proxy) { + // NOTE: start read body on_upstream_connect + // hio_read_start(io); + } else { + // WARN: too large content_length should read multiple times! + hio_readbytes(io, req->content_length); + } + break; + } + case s_body: + // printf("s_body\n"); + if (on_body(conn, buf, readbytes) < 0) { + hio_close(io); + return; + } + req->body = str; + req->body_len += readbytes; + if (readbytes == req->content_length) { + conn->state = s_end; + } else { + // Not end + break; + } + case s_end: +s_end: + // printf("s_end\n"); + // received complete request + if (req->proxy) { + // NOTE: reply by upstream + } else { + on_request(conn); + } + if (hio_is_closed(io)) return; + if (req->keepalive) { + // Connection: keep-alive\r\n + // reset and receive next request + memset(&conn->request, 0, sizeof(http_msg_t)); + // memset(&conn->response, 0, sizeof(http_msg_t)); + conn->state = s_first_line; + hio_readline(io); + } else { + // Connection: close\r\n + if (req->proxy) { + // NOTE: wait upstream close! + } else { + hio_close(io); + } + } + break; + default: break; + } +} + +static void new_conn_event(hevent_t* ev) { + hloop_t* loop = ev->loop; + hio_t* io = (hio_t*)hevent_userdata(ev); + hio_attach(loop, io); + + /* + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("tid=%ld connfd=%d [%s] <= [%s]\n", + (long)hv_gettid(), + (int)hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_set_keepalive_timeout(io, HTTP_KEEPALIVE_TIMEOUT); + + http_conn_t* conn = NULL; + HV_ALLOC_SIZEOF(conn); + conn->io = io; + hevent_set_userdata(io, conn); + // start read first line + conn->state = s_first_line; + hio_readline(io); +} + +static hloop_t* get_next_loop() { + static int s_cur_index = 0; + if (s_cur_index == thread_num) { + s_cur_index = 0; + } + return worker_loops[s_cur_index++]; +} + +static void on_accept(hio_t* io) { + hio_detach(io); + + hloop_t* worker_loop = get_next_loop(); + hevent_t ev; + memset(&ev, 0, sizeof(ev)); + ev.loop = worker_loop; + ev.cb = new_conn_event; + ev.userdata = io; + hloop_post_event(worker_loop, &ev); +} + +static HTHREAD_ROUTINE(worker_thread) { + hloop_t* loop = (hloop_t*)userdata; + hloop_run(loop); + return 0; +} + +static HTHREAD_ROUTINE(accept_thread) { + hloop_t* loop = (hloop_t*)userdata; + hio_t* listenio = hloop_create_tcp_server(loop, proxy_host, proxy_port, on_accept); + if (listenio == NULL) { + exit(1); + } + if (proxy_ssl) { + hio_enable_ssl(listenio); + } + printf("tinyproxyd listening on %s:%d, listenfd=%d, thread_num=%d\n", + proxy_host, proxy_port, hio_fd(listenio), thread_num); + hloop_run(loop); + return 0; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s proxy_port [thread_num]\n", argv[0]); + return -10; + } + proxy_port = atoi(argv[1]); + if (argc > 2) { + thread_num = atoi(argv[2]); + } else { + thread_num = get_ncpu(); + } + if (thread_num == 0) thread_num = 1; + + worker_loops = (hloop_t**)malloc(sizeof(hloop_t*) * thread_num); + for (int i = 0; i < thread_num; ++i) { + worker_loops[i] = hloop_new(HLOOP_FLAG_AUTO_FREE); + hthread_create(worker_thread, worker_loops[i]); + } + + accept_loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + accept_thread(accept_loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/udp_echo_server.c b/3rdPartner/libhv/examples/udp_echo_server.c new file mode 100644 index 0000000..5ca0b13 --- /dev/null +++ b/3rdPartner/libhv/examples/udp_echo_server.c @@ -0,0 +1,73 @@ +/* + * udp echo server + * + * @build make examples + * @server bin/udp_echo_server 1234 + * @client bin/nc -u 127.0.0.1 1234 + * nc -u 127.0.0.1 1234 + * + */ + +#include "hloop.h" +#include "hsocket.h" + +/* + * @test kcp_server + * #define TEST_KCP 1 + * + * @build ./configure --with-kcp && make clean && make + * @server bin/udp_echo_server 1234 + * @client bin/nc -k 127.0.0.1 1234 + * + */ +#define TEST_KCP 0 + +static void on_recvfrom(hio_t* io, void* buf, int readbytes) { + printf("on_recvfrom fd=%d readbytes=%d\n", hio_fd(io), readbytes); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("[%s] <=> [%s]\n", + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + + char* str = (char*)buf; + printf("< %.*s", readbytes, str); + // echo + printf("> %.*s", readbytes, str); + hio_write(io, buf, readbytes); + +#if TEST_KCP + if (strncmp(str, "CLOSE", 5) == 0) { + hio_close_rudp(io, hio_peeraddr(io)); + } +#endif +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port|path\n", argv[0]); + return -10; + } + const char* host = "0.0.0.0"; + int port = atoi(argv[1]); +#if ENABLE_UDS + if (port == 0) { + host = argv[1]; + port = -1; + } +#endif + + hloop_t* loop = hloop_new(0); + hio_t* io = hloop_create_udp_server(loop, host, port); + if (io == NULL) { + return -20; + } +#if TEST_KCP + hio_set_kcp(io, NULL); +#endif + hio_setcb_read(io, on_recvfrom); + hio_read(io); + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/udp_proxy_server.c b/3rdPartner/libhv/examples/udp_proxy_server.c new file mode 100644 index 0000000..62163ee --- /dev/null +++ b/3rdPartner/libhv/examples/udp_proxy_server.c @@ -0,0 +1,53 @@ +/* + * udp proxy server + * + * @build: make examples + * @udp_server: bin/udp_echo_server 1234 + * @proxy_server: bin/udp_proxy_server 2222 127.0.0.1:1234 + * @client: bin/nc -u 127.0.0.1 2222 + * > hello + * < hello + */ + +#include "hloop.h" + +static char proxy_host[64] = "0.0.0.0"; +static int proxy_port = 1080; + +static char backend_host[64] = "127.0.0.1"; +static int backend_port = 80; + +// hloop_create_udp_server -> hio_setup_udp_upstream + +int main(int argc, char** argv) { + if (argc < 3) { + printf("Usage: %s proxy_port backend_host:backend_port\n", argv[0]); + return -10; + } + proxy_port = atoi(argv[1]); + char* pos = strchr(argv[2], ':'); + if (pos) { + int len = pos - argv[2]; + if (len > 0) { + memcpy(backend_host, argv[2], len); + backend_host[len] = '\0'; + } + backend_port = atoi(pos + 1); + } else { + strncpy(backend_host, argv[2], sizeof(backend_host)); + } + printf("%s:%d proxy %s:%d\n", proxy_host, proxy_port, backend_host, backend_port); + + hloop_t* loop = hloop_new(0); + hio_t* io = hloop_create_udp_server(loop, proxy_host, proxy_port); + if (io == NULL) { + return -20; + } + hio_t* upstream_io = hio_setup_udp_upstream(io, backend_host, backend_port); + if (upstream_io == NULL) { + return -30; + } + hloop_run(loop); + hloop_free(&loop); + return 0; +} diff --git a/3rdPartner/libhv/examples/websocket_client_test.cpp b/3rdPartner/libhv/examples/websocket_client_test.cpp new file mode 100644 index 0000000..42a7f7c --- /dev/null +++ b/3rdPartner/libhv/examples/websocket_client_test.cpp @@ -0,0 +1,118 @@ +/* + * websocket client + * + * @build make examples + * @server bin/websocket_server_test 8888 + * @client bin/websocket_client_test ws://127.0.0.1:8888/test + * @clients bin/websocket_client_test ws://127.0.0.1:8888/test 100 + * @python scripts/websocket_server.py + * @js html/websocket_client.html + * + */ + +#include "WebSocketClient.h" + +using namespace hv; + +class MyWebSocketClient : public WebSocketClient { +public: + MyWebSocketClient(EventLoopPtr loop = NULL) : WebSocketClient(loop) {} + ~MyWebSocketClient() {} + + int connect(const char* url) { + // set callbacks + onopen = [this]() { + const HttpResponsePtr& resp = getHttpResponse(); + printf("onopen\n%s\n", resp->body.c_str()); + // printf("response:\n%s\n", resp->Dump(true, true).c_str()); + }; + onmessage = [this](const std::string& msg) { + printf("onmessage(type=%s len=%d): %.*s\n", opcode() == WS_OPCODE_TEXT ? "text" : "binary", + (int)msg.size(), (int)msg.size(), msg.data()); + }; + onclose = []() { + printf("onclose\n"); + }; + + // ping + setPingInterval(10000); + + // reconnect: 1,2,4,8,10,10,10... + reconn_setting_t reconn; + reconn_setting_init(&reconn); + reconn.min_delay = 1000; + reconn.max_delay = 10000; + reconn.delay_policy = 2; + setReconnect(&reconn); + + /* + auto req = std::make_shared(); + req->method = HTTP_POST; + req->headers["Origin"] = "http://example.com"; + req->json["app_id"] = "123456"; + req->json["app_secret"] = "abcdefg"; + printf("request:\n%s\n", req->Dump(true, true).c_str()); + setHttpRequest(req); + */ + + http_headers headers; + headers["Origin"] = "http://example.com/"; + return open(url, headers); + }; +}; +typedef std::shared_ptr MyWebSocketClientPtr; + +int TestMultiClientsRunInOneEventLoop(const char* url, int nclients) { + auto loop_thread = std::make_shared(); + loop_thread->start(); + + std::map clients; + for (int i = 0; i < nclients; ++i) { + MyWebSocketClient* client = new MyWebSocketClient(loop_thread->loop()); + client->connect(url); + clients[i] = MyWebSocketClientPtr(client); + } + + // press Enter to stop + while (getchar() != '\n'); + loop_thread->stop(); + loop_thread->join(); + + return 0; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s url\n", argv[0]); + return -10; + } + const char* url = argv[1]; + + int nclients = 0; + if (argc > 2) { + nclients = atoi(argv[2]); + } + if (nclients > 0) { + return TestMultiClientsRunInOneEventLoop(url, nclients); + } + + MyWebSocketClient ws; + ws.connect(url); + + std::string str; + while (std::getline(std::cin, str)) { + if (str == "close") { + ws.close(); + } else if (str == "open") { + ws.connect(url); + } else if (str == "stop") { + ws.stop(); + break; + } else { + if (!ws.isConnected()) break; + ws.send(str); + } + } + + return 0; +} diff --git a/3rdPartner/libhv/examples/websocket_server_test.cpp b/3rdPartner/libhv/examples/websocket_server_test.cpp new file mode 100644 index 0000000..ee290d1 --- /dev/null +++ b/3rdPartner/libhv/examples/websocket_server_test.cpp @@ -0,0 +1,115 @@ +/* + * websocket server + * + * @build make examples + * @server bin/websocket_server_test 9999 + * @client bin/websocket_client_test ws://127.0.0.1:9999/ + * @python scripts/websocket_server.py + * @js html/websocket_client.html + * + */ + +#include "WebSocketServer.h" +#include "EventLoop.h" +#include "htime.h" + +using namespace hv; + +/* + * #define TEST_WSS 1 + * + * @build ./configure --with-openssl && make clean && make + * + * @server bin/websocket_server_test 9999 + * + * @client bin/websocket_client_test ws://127.0.0.1:9999/ + * bin/websocket_client_test wss://127.0.0.1:10000/ + * + */ +#define TEST_WSS 0 + +using namespace hv; + +class MyContext { +public: + MyContext() { + printf("MyContext::MyContext()\n"); + timerID = INVALID_TIMER_ID; + } + ~MyContext() { + printf("MyContext::~MyContext()\n"); + } + + int handleMessage(const std::string& msg, enum ws_opcode opcode) { + printf("onmessage(type=%s len=%d): %.*s\n", opcode == WS_OPCODE_TEXT ? "text" : "binary", + (int)msg.size(), (int)msg.size(), msg.data()); + return msg.size(); + } + + TimerID timerID; +}; + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s port\n", argv[0]); + return -10; + } + int port = atoi(argv[1]); + + HttpService http; + http.GET("/ping", [](const HttpContextPtr& ctx) { + return ctx->send("pong"); + }); + + WebSocketService ws; + // ws.setPingInterval(10000); + ws.onopen = [](const WebSocketChannelPtr& channel, const HttpRequestPtr& req) { + printf("onopen: GET %s\n", req->Path().c_str()); + auto ctx = channel->newContextPtr(); + // send(time) every 1s + ctx->timerID = setInterval(1000, [channel](TimerID id) { + if (channel->isConnected() && channel->isWriteComplete()) { + char str[DATETIME_FMT_BUFLEN] = {0}; + datetime_t dt = datetime_now(); + datetime_fmt(&dt, str); + channel->send(str); + } + }); + }; + ws.onmessage = [](const WebSocketChannelPtr& channel, const std::string& msg) { + auto ctx = channel->getContextPtr(); + ctx->handleMessage(msg, channel->opcode); + }; + ws.onclose = [](const WebSocketChannelPtr& channel) { + printf("onclose\n"); + auto ctx = channel->getContextPtr(); + if (ctx->timerID != INVALID_TIMER_ID) { + killTimer(ctx->timerID); + ctx->timerID = INVALID_TIMER_ID; + } + // channel->deleteContextPtr(); + }; + + WebSocketServer server; + server.port = port; +#if TEST_WSS + server.https_port = port + 1; + hssl_ctx_opt_t param; + memset(¶m, 0, sizeof(param)); + param.crt_file = "cert/server.crt"; + param.key_file = "cert/server.key"; + param.endpoint = HSSL_SERVER; + if (server.newSslCtx(¶m) != 0) { + fprintf(stderr, "new SSL_CTX failed!\n"); + return -20; + } +#endif + server.registerHttpService(&http); + server.registerWebSocketService(&ws); + + server.start(); + + // press Enter to stop + while (getchar() != '\n'); + return 0; +} diff --git a/3rdPartner/libhv/examples/wget.cpp b/3rdPartner/libhv/examples/wget.cpp new file mode 100644 index 0000000..1ba52bb --- /dev/null +++ b/3rdPartner/libhv/examples/wget.cpp @@ -0,0 +1,173 @@ +/* + * @build: make examples + * @server bin/httpd -s restart -d + * @client bin/wget http://127.0.0.1:8080/ + */ + +#include "HttpClient.h" +#include "htime.h" +using namespace hv; + +typedef std::function wget_progress_cb; + +static int wget(const char* url, const char* filepath, wget_progress_cb progress_cb = NULL, bool use_range = true) { + int ret = 0; + HttpClient cli; + HttpRequest req; + HttpResponse resp; + + // HEAD + req.method = HTTP_HEAD; + req.url = url; + ret = cli.send(&req, &resp); + if (ret != 0) { + fprintf(stderr, "request error: %d\n", ret); + return ret; + } + printd("%s", resp.Dump(true, false).c_str()); + if (resp.status_code == HTTP_STATUS_NOT_FOUND) { + fprintf(stderr, "404 Not Found\n"); + return 404; + } + + // use Range? + int range_bytes = 1 << 20; // 1M + long from = 0, to = 0; + size_t content_length = hv::from_string(resp.GetHeader("Content-Length")); + if (use_range) { + use_range = false; + std::string accept_ranges = resp.GetHeader("Accept-Ranges"); + // use Range if server accept_ranges and content_length > 1M + if (resp.status_code == 200 && + accept_ranges == "bytes" && + content_length > range_bytes) { + use_range = true; + } + } + + // open file + std::string filepath_download(filepath); + filepath_download += ".download"; + HFile file; + if (use_range) { + ret = file.open(filepath_download.c_str(), "ab"); + from = file.size(); + } else { + ret = file.open(filepath_download.c_str(), "wb"); + } + if (ret != 0) { + fprintf(stderr, "Failed to open file %s\n", filepath_download.c_str()); + return ret; + } + printf("Save file to %s ...\n", filepath); + + // GET + req.method = HTTP_GET; + req.timeout = 3600; // 1h + if (!use_range) { + size_t received_bytes = 0; + req.http_cb = [&file, &content_length, &received_bytes, &progress_cb] + (HttpMessage* resp, http_parser_state state, const char* data, size_t size) { + if (!resp->headers["Location"].empty()) return; + if (state == HP_HEADERS_COMPLETE) { + content_length = hv::from_string(resp->GetHeader("Content-Length")); + printd("%s", resp->Dump(true, false).c_str()); + } else if (state == HP_BODY) { + if (data && size) { + file.write(data, size); + received_bytes += size; + + if (progress_cb) { + progress_cb(received_bytes, content_length); + } + } + } + }; + ret = cli.send(&req, &resp); + if (ret != 0) { + fprintf(stderr, "request error: %d\n", ret); + goto error; + } + goto success; + } + + // Range: bytes=from-to + while (from < content_length) { + to = from + range_bytes - 1; + if (to >= content_length) to = content_length - 1; + req.SetRange(from, to); + printd("%s", req.Dump(true, false).c_str()); + ret = cli.send(&req, &resp); + if (ret != 0) { + fprintf(stderr, "request error: %d\n", ret); + goto error; + } + printd("%s", resp.Dump(true, false).c_str()); + file.write(resp.body.data(), resp.body.size()); + // fix: resp.body.size != range_bytes on some server + // from = to + 1; + from += resp.body.size(); + + if (progress_cb) { + progress_cb(from, content_length); + } + } + +success: + file.close(); + ret = file.rename(filepath); + if (ret != 0) { + fprintf(stderr, "mv %s => %s failed: %s:%d\n", filepath_download.c_str(), filepath, strerror(ret), ret); + } + return ret; +error: + file.close(); + // file.remove(); + return ret; +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: %s [--use_range] url [filepath]\n", argv[0]); + return -10; + } + int idx = 1; + bool use_range = false; + if (strcmp(argv[idx], "--use_range") == 0) { + use_range = true; + ++idx; + } + const char* url = argv[idx++]; + const char* filepath = "index.html"; + if (argv[idx]) { + filepath = argv[idx]; + } else { + const char* path = strrchr(url, '/'); + if (path && path[1]) { + filepath = path + 1; + } + } + + unsigned int start_time = gettick_ms(); + int last_progress = 0; + wget(url, filepath, [&last_progress](size_t received_bytes, size_t total_bytes) { + // print progress + if (total_bytes == 0) { + printf("\rprogress: %lu/? = ?", (unsigned long)received_bytes); + } else { + int cur_progress = received_bytes * 100 / total_bytes; + if (cur_progress > last_progress) { + printf("\rprogress: %lu/%lu = %d%%", (unsigned long)received_bytes, (unsigned long)total_bytes, (int)cur_progress); + last_progress = cur_progress; + } + } + fflush(stdout); + }, use_range); + unsigned int end_time = gettick_ms(); + unsigned int cost_time = end_time - start_time; + printf("\ncost time %u ms\n", cost_time); + // 1B/ms = 1KB/s = 8Kbps + printf("download rate = %lu KB/s\n", (unsigned long)hv_filesize(filepath) / cost_time); + + return 0; +} diff --git a/3rdPartner/libhv/examples/wrk.cpp b/3rdPartner/libhv/examples/wrk.cpp new file mode 100644 index 0000000..570f1dd --- /dev/null +++ b/3rdPartner/libhv/examples/wrk.cpp @@ -0,0 +1,275 @@ +/* + * @build: make examples + * @server bin/httpd -s restart -d + * @client bin/curl -v http://127.0.0.1:8080/ + * @usage: bin/wrk -c 1000 -d 10 -t 4 http://127.0.0.1:8080/ + * + */ + +#include "hv.h" +#include "hmain.h" // import parse_opt +#include "hloop.h" + +#include "EventLoopThreadPool.h" +#include "HttpMessage.h" +#include "HttpParser.h" +using namespace hv; + +static const char options[] = "hvc:d:t:"; + +static const char detail_options[] = R"( + -h Print help infomation + -v Show verbose infomation + -c Number of connections, default: 1000 + -d Duration of test, default: 10s + -t Number of threads, default: 4 +)"; + +static int connections = 1000; +static int duration = 10; +static int threads = 4; + +static bool verbose = false; +static const char* url = NULL; +static bool https = false; +static char ip[64] = "127.0.0.1"; +static int port = 80; + +static bool stop = false; + +static HttpRequestPtr request; +static std::string request_msg; + +typedef struct connection_s { + hio_t* io; + HttpParserPtr parser; + HttpResponsePtr response; + uint64_t request_cnt; + uint64_t response_cnt; + uint64_t ok_cnt; + uint64_t readbytes; + + connection_s() + : parser(HttpParser::New(HTTP_CLIENT, HTTP_V1)) + , response(std::make_shared()) + , request_cnt(0) + , response_cnt(0) + , ok_cnt(0) + , readbytes(0) + { + response->http_cb = [](HttpMessage* res, http_parser_state state, const char* data, size_t size) { + // wrk no need to save data to body + }; + } + + void SendRequest() { + hio_write(io, request_msg.data(), request_msg.size()); + ++request_cnt; + parser->InitResponse(response.get()); + } + + bool RecvResponse(const char* data, int size) { + readbytes += size; + int nparse = parser->FeedRecvData(data, size); + if (nparse != size) { + fprintf(stderr, "http parse error!\n"); + hio_close(io); + return false; + } + if (parser->IsComplete()) { + ++response_cnt; + if (response->status_code == HTTP_STATUS_OK) { + ++ok_cnt; + } + return true; + } + return false; + } +} connection_t; +static connection_t** conns = NULL; + +static std::atomic connected_num(0); +static std::atomic disconnected_num(0); + +static void print_help() { + printf("Usage: wrk [%s] \n", options); + printf("Options:\n%s\n", detail_options); +} + +static void print_cmd() { + printf("Running %ds test @ %s\n", duration, url); + printf("%d threads and %d connections\n", threads, connections); +} + +static void print_result() { + uint64_t total_request_cnt = 0; + uint64_t total_response_cnt = 0; + uint64_t total_ok_cnt = 0; + uint64_t total_readbytes = 0; + connection_t* conn = NULL; + for (int i = 0; i < connections; ++i) { + conn = conns[i]; + total_request_cnt += conn->request_cnt; + total_response_cnt += conn->response_cnt; + total_ok_cnt += conn->ok_cnt; + total_readbytes += conn->readbytes; + } + printf("%llu requests, %llu OK, %lluMB read in %ds\n", + LLU(total_request_cnt), + LLU(total_ok_cnt), + LLU(total_readbytes >> 20), + duration); + printf("Requests/sec: %8llu\n", LLU(total_response_cnt / duration)); + printf("Transfer/sec: %8lluMB\n", LLU((total_readbytes / duration) >> 20)); +} + +static void start_reconnect(hio_t* io); +static void on_close(hio_t* io) { + if (++disconnected_num == connections) { + if (verbose) { + printf("all disconnected\n"); + } + } + + if (!stop) { + // NOTE: nginx keepalive_requests = 100 + start_reconnect(io); + } +} + +static void on_recv(hio_t* io, void* buf, int readbytes) { + connection_t* conn = (connection_t*)hevent_userdata(io); + if (conn->RecvResponse((const char*)buf, readbytes)) { + conn->SendRequest(); + } +} + +static void on_connect(hio_t* io) { + if (++connected_num == connections) { + if (verbose) { + printf("all connected\n"); + } + } + + connection_t* conn = (connection_t*)hevent_userdata(io); + conn->SendRequest(); + + hio_setcb_read(io, on_recv); + hio_read(io); +} + +static void start_connect(hloop_t* loop, connection_t* conn) { + hio_t* io = hio_create_socket(loop, ip, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (io == NULL) { + perror("socket"); + exit(1); + } + conn->io = io; + hevent_set_userdata(io, conn); + if (https) { + hio_enable_ssl(io); + } + tcp_nodelay(hio_fd(io), 1); + hio_setcb_connect(io, on_connect); + hio_setcb_close(io, on_close); + hio_connect(io); +} + +static void start_reconnect(hio_t* io) { + hloop_t* loop = hevent_loop(io); + connection_t* conn = (connection_t*)hevent_userdata(io); + start_connect(loop, conn); +} + +int main(int argc, char** argv) { + // parse cmdline + main_ctx_init(argc, argv); + int ret = parse_opt(argc, argv, options); + if (ret != 0) { + print_help(); + exit(ret); + } + + if (get_arg("h") || g_main_ctx.arg_list_size != 1) { + print_help(); + exit(0); + } + url = g_main_ctx.arg_list[0]; + + if (get_arg("v")) { + verbose = true; + } + + const char* strConnections = get_arg("c"); + const char* strDuration = get_arg("d"); + const char* strThreads = get_arg("t"); + + if (strConnections) connections = atoi(strConnections); + if (strDuration) duration = atoi(strDuration); + if (strThreads) threads = atoi(strThreads); + + print_cmd(); + + // ParseUrl + request = std::make_shared(); + request->url = url; + request->ParseUrl(); + https = request->scheme == "https"; + const char* host = request->host.c_str(); + port = request->port; + + // ResolveAddr + if (is_ipaddr(host)) { + strcpy(ip, host); + } else { + sockaddr_u addr; + if (ResolveAddr(host, &addr) != 0) { + fprintf(stderr, "Could not resolve host: %s\n", host); + exit(1); + } + sockaddr_ip(&addr, ip, sizeof(ip)); + } + + // Test connect + printf("Connect to %s:%d ...\n", ip, port); + int connfd = ConnectTimeout(ip, port); + if (connfd < 0) { + fprintf(stderr, "Could not connect to %s:%d\n", ip, port); + exit(1); + } else { + closesocket(connfd); + } + + // Dump request + request->headers["User-Agent"] = std::string("libhv/") + hv_version(); + request->headers["Connection"] = "keep-alive"; + request_msg = request->Dump(true, true); + printf("%s", request_msg.c_str()); + + // EventLoopThreadPool + EventLoopThreadPool loop_threads(threads); + loop_threads.start(true); + + // connections + conns = (connection_t**)malloc(sizeof(connection_t*) * connections); + for (int i = 0; i < connections; ++i) { + conns[i] = new connection_t; + + EventLoopPtr loop = loop_threads.nextLoop(); + hloop_t* hloop = loop->loop(); + loop->runInLoop(std::bind(start_connect, loop->loop(), conns[i])); + } + + // stop after duration + loop_threads.loop()->setTimeout(duration * 1000, [&loop_threads](TimerID timerID){ + stop = true; + loop_threads.stop(false); + }); + + // wait loop_threads exit + loop_threads.join(); + + print_result(); + + return 0; +} diff --git a/3rdPartner/libhv/getting_started.sh b/3rdPartner/libhv/getting_started.sh new file mode 100644 index 0000000..a17767f --- /dev/null +++ b/3rdPartner/libhv/getting_started.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +echo "Welcome to libhv!" +echo "Press any key to run ..." + +echo_cmd() { + echo -e "\n\033[36m$cmd\033[0m" + read -n1 +} + +run_cmd() { + echo_cmd + $cmd +} + +# compile httpd curl +if [ ! -x bin/httpd -o ! -x bin/curl ]; then + cmd="make httpd curl" && echo_cmd + ./configure + make clean + make -j4 httpd curl +fi + +# run httpd +processes=$(ps aux | grep -v grep | grep httpd | wc -l) +if [ $processes -lt 1 ]; then + cmd="bin/httpd -c etc/httpd.conf -s restart -d" && run_cmd +fi +ps aux | grep -v grep | grep httpd + +# http file service +cmd="bin/curl -v localhost:8080" && run_cmd + +# http indexof service +cmd="bin/curl -v localhost:8080/downloads/" && run_cmd +cmd="bin/curl -v localhost:8080/downloads/中文.html" && run_cmd + +# http api service +cmd="bin/curl -v localhost:8080/paths" && run_cmd + +cmd="bin/curl -v localhost:8080/ping" && run_cmd + +cmd="bin/curl -v localhost:8080/data" && run_cmd + +cmd="bin/curl -v localhost:8080/html/index.html" && run_cmd + +cmd="bin/curl -v localhost:8080/get?env=1" && run_cmd + +cmd="bin/curl -v localhost:8080/service" && run_cmd + +cmd="bin/curl -v localhost:8080/async" && run_cmd + +cmd="bin/curl -v localhost:8080/wildcard/test" && run_cmd + +cmd="bin/curl -v localhost:8080/echo -d 'hello,world!'" && echo_cmd +bin/curl -v localhost:8080/echo -d 'hello,world!' + +cmd="bin/curl -v localhost:8080/query?page_no=1&page_size=10" && run_cmd + +cmd="bin/curl -v localhost:8080/kv -H 'Content-Type:application/x-www-form-urlencoded' -d 'user=admin&pswd=123456'" && echo_cmd + bin/curl -v localhost:8080/kv -H 'Content-Type:application/x-www-form-urlencoded' -d 'user=admin&pswd=123456' + +cmd="bin/curl -v localhost:8080/json -H 'Content-Type:application/json' -d '{\"user\":\"admin\",\"pswd\":\"123456\"}'" && echo_cmd + bin/curl -v localhost:8080/json -H 'Content-Type:application/json' -d '{"user":"admin","pswd":"123456"}' + +cmd="bin/curl -v localhost:8080/form -F 'user=admin' -F 'pswd=123456'" && echo_cmd + bin/curl -v localhost:8080/form -F 'user=admin' -F 'pswd=123456' + +cmd="bin/curl -v localhost:8080/upload?filename=LICENSE -d '@LICENSE'" && echo_cmd + bin/curl -v localhost:8080/upload?filename=LICENSE -d '@LICENSE' + +cmd="bin/curl -v localhost:8080/upload -F 'file=@LICENSE'" && echo_cmd + bin/curl -v localhost:8080/upload -F 'file=@LICENSE' + +cmd="bin/curl -v localhost:8080/upload/README.md -d '@README.md'" && echo_cmd + bin/curl -v localhost:8080/upload/README.md -d '@README.md' + +cmd="bin/curl -v localhost:8080/test -H 'Content-Type:application/x-www-form-urlencoded' -d 'bool=1&int=123&float=3.14&string=hello'" && echo_cmd + bin/curl -v localhost:8080/test -H 'Content-Type:application/x-www-form-urlencoded' -d 'bool=1&int=123&float=3.14&string=hello' + +cmd="bin/curl -v localhost:8080/test -H 'Content-Type:application/json' -d '{\"bool\":true,\"int\":123,\"float\":3.14,\"string\":\"hello\"}'" && echo_cmd + bin/curl -v localhost:8080/test -H 'Content-Type:application/json' -d '{"bool":true,"int":123,"float":3.14,"string":"hello"}' + +cmd="bin/curl -v localhost:8080/test -F 'bool=1' -F 'int=123' -F 'float=3.14' -F 'string=hello'" && echo_cmd + bin/curl -v localhost:8080/test -F 'bool=1' -F 'int=123' -F 'float=3.14' -F 'string=hello' + +# RESTful API: /group/:group_name/user/:user_id +cmd="bin/curl -v -X DELETE localhost:8080/group/test/user/123" && run_cmd + +# show log +cmd="tail -n 50 logs/httpd*.log" && run_cmd + +echo -e "\nEnjoy libhv!\n" diff --git a/3rdPartner/libhv/hconfig.h.in b/3rdPartner/libhv/hconfig.h.in new file mode 100644 index 0000000..700f9e7 --- /dev/null +++ b/3rdPartner/libhv/hconfig.h.in @@ -0,0 +1,102 @@ +#ifndef HV_CONFIG_H_ +#define HV_CONFIG_H_ + +#ifndef HAVE_STDBOOL_H +#define HAVE_STDBOOL_H @HAVE_STDBOOL_H@ +#endif + +#ifndef HAVE_STDINT_H +#define HAVE_STDINT_H @HAVE_STDINT_H@ +#endif + +#ifndef HAVE_STDATOMIC_H +#define HAVE_STDATOMIC_H @HAVE_STDATOMIC_H@ +#endif + +#ifndef HAVE_SYS_TYPES_H +#define HAVE_SYS_TYPES_H @HAVE_SYS_TYPES_H@ +#endif + +#ifndef HAVE_SYS_STAT_H +#define HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@ +#endif + +#ifndef HAVE_SYS_TIME_H +#define HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ +#endif + +#ifndef HAVE_FCNTL_H +#define HAVE_FCNTL_H @HAVE_FCNTL_H@ +#endif + +#ifndef HAVE_PTHREAD_H +#define HAVE_PTHREAD_H @HAVE_PTHREAD_H@ +#endif + +#ifndef HAVE_ENDIAN_H +#define HAVE_ENDIAN_H @HAVE_ENDIAN_H@ +#endif + +#ifndef HAVE_SYS_ENDIAN_H +#define HAVE_SYS_ENDIAN_H @HAVE_SYS_ENDIAN_H@ +#endif + +#ifndef HAVE_GETTID +#define HAVE_GETTID @HAVE_GETTID@ +#endif + +#ifndef HAVE_STRLCPY +#define HAVE_STRLCPY @HAVE_STRLCPY@ +#endif + +#ifndef HAVE_STRLCAT +#define HAVE_STRLCAT @HAVE_STRLCAT@ +#endif + +#ifndef HAVE_CLOCK_GETTIME +#define HAVE_CLOCK_GETTIME @HAVE_CLOCK_GETTIME@ +#endif + +#ifndef HAVE_GETTIMEOFDAY +#define HAVE_GETTIMEOFDAY @HAVE_GETTIMEOFDAY@ +#endif + +#ifndef HAVE_PTHREAD_SPIN_LOCK +#define HAVE_PTHREAD_SPIN_LOCK @HAVE_PTHREAD_SPIN_LOCK@ +#endif + +#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK +#define HAVE_PTHREAD_MUTEX_TIMEDLOCK @HAVE_PTHREAD_MUTEX_TIMEDLOCK@ +#endif + +#ifndef HAVE_SEM_TIMEDWAIT +#define HAVE_SEM_TIMEDWAIT @HAVE_SEM_TIMEDWAIT@ +#endif + +#ifndef HAVE_PIPE +#define HAVE_PIPE @HAVE_PIPE@ +#endif + +#ifndef HAVE_SOCKETPAIR +#define HAVE_SOCKETPAIR @HAVE_SOCKETPAIR@ +#endif + +#ifndef HAVE_EVENTFD +#define HAVE_EVENTFD @HAVE_EVENTFD@ +#endif + +#ifndef HAVE_SETPROCTITLE +#define HAVE_SETPROCTITLE @HAVE_SETPROCTITLE@ +#endif + +#cmakedefine WITH_OPENSSL 1 +#cmakedefine WITH_GNUTLS 1 +#cmakedefine WITH_MBEDTLS 1 + +#cmakedefine ENABLE_UDS 1 +#cmakedefine USE_MULTIMAP 1 + +#cmakedefine WITH_WEPOLL 1 +#cmakedefine WITH_KCP 1 + +#endif // HV_CONFIG_H_ diff --git a/3rdPartner/libhv/hexport.h b/3rdPartner/libhv/hexport.h new file mode 100644 index 0000000..7d37016 --- /dev/null +++ b/3rdPartner/libhv/hexport.h @@ -0,0 +1,157 @@ +#ifndef HV_EXPORT_H_ +#define HV_EXPORT_H_ + +// HV_EXPORT +#if defined(HV_STATICLIB) || defined(HV_SOURCE) + #define HV_EXPORT +#elif defined(_MSC_VER) + #if defined(HV_DYNAMICLIB) || defined(HV_EXPORTS) || defined(hv_EXPORTS) + #define HV_EXPORT __declspec(dllexport) + #else + #define HV_EXPORT __declspec(dllimport) + #endif +#elif defined(__GNUC__) + #define HV_EXPORT __attribute__((visibility("default"))) +#else + #define HV_EXPORT +#endif + +// HV_INLINE +#define HV_INLINE static inline + +// HV_DEPRECATED +#if defined(HV_NO_DEPRECATED) +#define HV_DEPRECATED +#elif defined(__GNUC__) || defined(__clang__) +#define HV_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) +#define HV_DEPRECATED __declspec(deprecated) +#else +#define HV_DEPRECATED +#endif + +// HV_UNUSED +#if defined(__GNUC__) + #define HV_UNUSED __attribute__((visibility("unused"))) +#else + #define HV_UNUSED +#endif + +// @param[IN | OUT | INOUT] +#ifndef IN +#define IN +#endif + +#ifndef OUT +#define OUT +#endif + +#ifndef INOUT +#define INOUT +#endif + +// @field[OPTIONAL | REQUIRED | REPEATED] +#ifndef OPTIONAL +#define OPTIONAL +#endif + +#ifndef REQUIRED +#define REQUIRED +#endif + +#ifndef REPEATED +#define REPEATED +#endif + +#ifdef __cplusplus + +#ifndef EXTERN_C +#define EXTERN_C extern "C" +#endif + +#ifndef BEGIN_EXTERN_C +#define BEGIN_EXTERN_C extern "C" { +#endif + +#ifndef END_EXTERN_C +#define END_EXTERN_C } // extern "C" +#endif + +#ifndef BEGIN_NAMESPACE +#define BEGIN_NAMESPACE(ns) namespace ns { +#endif + +#ifndef END_NAMESPACE +#define END_NAMESPACE(ns) } // namespace ns +#endif + +#ifndef USING_NAMESPACE +#define USING_NAMESPACE(ns) using namespace ns; +#endif + +#ifndef DEFAULT +#define DEFAULT(x) = x +#endif + +#ifndef ENUM +#define ENUM(e) enum e +#endif + +#ifndef STRUCT +#define STRUCT(s) struct s +#endif + +#else + +#define EXTERN_C extern +#define BEGIN_EXTERN_C +#define END_EXTERN_C + +#define BEGIN_NAMESPACE(ns) +#define END_NAMESPACE(ns) +#define USING_NAMESPACE(ns) + +#ifndef DEFAULT +#define DEFAULT(x) +#endif + +#ifndef ENUM +#define ENUM(e)\ +typedef enum e e;\ +enum e +#endif + +#ifndef STRUCT +#define STRUCT(s)\ +typedef struct s s;\ +struct s +#endif + +#endif // __cplusplus + +#define BEGIN_NAMESPACE_HV BEGIN_NAMESPACE(hv) +#define END_NAMESPACE_HV END_NAMESPACE(hv) +#define USING_NAMESPACE_HV USING_NAMESPACE(hv) + +// MSVC ports +#ifdef _MSC_VER + +#pragma warning (disable: 4251) // STL dll +#pragma warning (disable: 4275) // dll-interface + +#if _MSC_VER < 1900 // < VS2015 + +#ifndef __cplusplus +#ifndef inline +#define inline __inline +#endif +#endif + +#ifndef snprintf +#define snprintf _snprintf +#endif + +#endif +#endif + +#endif // HV_EXPORT_H_ diff --git a/3rdPartner/libhv/html/EventSource.html b/3rdPartner/libhv/html/EventSource.html new file mode 100644 index 0000000..f2fec9a --- /dev/null +++ b/3rdPartner/libhv/html/EventSource.html @@ -0,0 +1,50 @@ + + + + + +EventSource客户端 + + + + + + URL: + +
+
    +
+
+ + + diff --git a/3rdPartner/libhv/html/WebSocket.html b/3rdPartner/libhv/html/WebSocket.html new file mode 100644 index 0000000..493be52 --- /dev/null +++ b/3rdPartner/libhv/html/WebSocket.html @@ -0,0 +1,53 @@ + + + + + +WebSocket客户端 + + + + + + URL: + +
+
    +
+
+ + + diff --git a/3rdPartner/libhv/html/downloads/libhv-vs-nginx.png b/3rdPartner/libhv/html/downloads/libhv-vs-nginx.png new file mode 100644 index 0000000..4964f4b Binary files /dev/null and b/3rdPartner/libhv/html/downloads/libhv-vs-nginx.png differ diff --git a/3rdPartner/libhv/html/downloads/中文.html b/3rdPartner/libhv/html/downloads/中文.html new file mode 100644 index 0000000..078a0dd --- /dev/null +++ b/3rdPartner/libhv/html/downloads/中文.html @@ -0,0 +1,10 @@ + + + + + 中文测试 + + +

欢迎使用 libhv

+ + diff --git a/3rdPartner/libhv/html/error.html b/3rdPartner/libhv/html/error.html new file mode 100644 index 0000000..27fe109 --- /dev/null +++ b/3rdPartner/libhv/html/error.html @@ -0,0 +1,12 @@ + + + + Error + + +

An error occurred.

+

Sorry, the page you are looking for is currently unavailable.
Please try again later.

+

If you are the system administrator of this resource then you should check the error log for details.

+

Faithfully yours, httpd.

+ + diff --git a/3rdPartner/libhv/html/index.html b/3rdPartner/libhv/html/index.html new file mode 100644 index 0000000..10b1e5e --- /dev/null +++ b/3rdPartner/libhv/html/index.html @@ -0,0 +1,9 @@ + + + + libhv + + +

Welcome to libhv

+ + diff --git a/3rdPartner/libhv/http/Http1Parser.cpp b/3rdPartner/libhv/http/Http1Parser.cpp new file mode 100644 index 0000000..0975581 --- /dev/null +++ b/3rdPartner/libhv/http/Http1Parser.cpp @@ -0,0 +1,159 @@ +#include "Http1Parser.h" + +#define MAX_CONTENT_LENGTH (1 << 24) // 16M + +static int on_url(http_parser* parser, const char *at, size_t length); +static int on_status(http_parser* parser, const char *at, size_t length); +static int on_header_field(http_parser* parser, const char *at, size_t length); +static int on_header_value(http_parser* parser, const char *at, size_t length); +static int on_body(http_parser* parser, const char *at, size_t length); +static int on_message_begin(http_parser* parser); +static int on_headers_complete(http_parser* parser); +static int on_message_complete(http_parser* parser); +static int on_chunk_header(http_parser* parser); +static int on_chunk_complete(http_parser* parser); + +http_parser_settings Http1Parser::cbs = { + on_message_begin, + on_url, + on_status, + on_header_field, + on_header_value, + on_headers_complete, + on_body, + on_message_complete, + on_chunk_header, + on_chunk_complete +}; + +Http1Parser::Http1Parser(http_session_type type) { + http_parser_init(&parser, HTTP_BOTH); + parser.data = this; + flags = 0; + state = HP_START_REQ_OR_RES; + submited = NULL; + parsed = NULL; +} + +Http1Parser::~Http1Parser() { +} + +int on_url(http_parser* parser, const char *at, size_t length) { + printd("on_url:%.*s\n", (int)length, at); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_URL; + hp->url.append(at, length); + return 0; +} + +int on_status(http_parser* parser, const char *at, size_t length) { + printd("on_status:%d %.*s\n", (int)parser->status_code, (int)length, at); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_STATUS; + return 0; +} + +int on_header_field(http_parser* parser, const char *at, size_t length) { + printd("on_header_field:%.*s\n", (int)length, at); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->handle_header(); + hp->state = HP_HEADER_FIELD; + hp->header_field.append(at, length); + return 0; +} + +int on_header_value(http_parser* parser, const char *at, size_t length) { + printd("on_header_value:%.*s\n", (int)length, at); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_HEADER_VALUE; + hp->header_value.append(at, length); + return 0; +} + +int on_body(http_parser* parser, const char *at, size_t length) { + printd("on_body:%d\n", (int)length); + // printd("on_body:%.*s\n", (int)length, at); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_BODY; + if (hp->invokeHttpCb(at, length) != 0) { + hp->parsed->body.append(at, length); + } + return 0; +} + +int on_message_begin(http_parser* parser) { + printd("on_message_begin\n"); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_MESSAGE_BEGIN; + hp->invokeHttpCb(); + return 0; +} + +int on_headers_complete(http_parser* parser) { + printd("on_headers_complete\n"); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->handle_header(); + + bool skip_body = false; + hp->parsed->http_major = parser->http_major; + hp->parsed->http_minor = parser->http_minor; + if (hp->parsed->type == HTTP_REQUEST) { + HttpRequest* req = (HttpRequest*)hp->parsed; + req->method = (http_method)parser->method; + req->url = hp->url; + } + else if (hp->parsed->type == HTTP_RESPONSE) { + HttpResponse* res = (HttpResponse*)hp->parsed; + res->status_code = (http_status)parser->status_code; + // response to HEAD + if (hp->flags & F_SKIPBODY) { + skip_body = true; + } + } + + auto iter = hp->parsed->headers.find("content-type"); + if (iter != hp->parsed->headers.end()) { + hp->parsed->content_type = http_content_type_enum(iter->second.c_str()); + } + iter = hp->parsed->headers.find("content-length"); + if (iter != hp->parsed->headers.end()) { + size_t content_length = atoll(iter->second.c_str()); + hp->parsed->content_length = content_length; + size_t reserve_length = MIN(content_length + 1, MAX_CONTENT_LENGTH); + if ((!skip_body) && reserve_length > hp->parsed->body.capacity()) { + hp->parsed->body.reserve(reserve_length); + } + } + hp->state = HP_HEADERS_COMPLETE; + hp->invokeHttpCb(); + return skip_body ? 1 : 0; +} + +int on_message_complete(http_parser* parser) { + printd("on_message_complete\n"); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_MESSAGE_COMPLETE; + hp->invokeHttpCb(); + return 0; +} + +int on_chunk_header(http_parser* parser) { + printd("on_chunk_header:%llu\n", parser->content_length); + Http1Parser* hp = (Http1Parser*)parser->data; + int chunk_size = parser->content_length; + int reserve_size = MIN(chunk_size + 1, MAX_CONTENT_LENGTH); + if (reserve_size > hp->parsed->body.capacity()) { + hp->parsed->body.reserve(reserve_size); + } + hp->state = HP_CHUNK_HEADER; + hp->invokeHttpCb(NULL, chunk_size); + return 0; +} + +int on_chunk_complete(http_parser* parser) { + printd("on_chunk_complete\n"); + Http1Parser* hp = (Http1Parser*)parser->data; + hp->state = HP_CHUNK_COMPLETE; + hp->invokeHttpCb(); + return 0; +} diff --git a/3rdPartner/libhv/http/Http1Parser.h b/3rdPartner/libhv/http/Http1Parser.h new file mode 100644 index 0000000..9cccdc3 --- /dev/null +++ b/3rdPartner/libhv/http/Http1Parser.h @@ -0,0 +1,135 @@ +#ifndef HV_HTTP1_PARSER_H_ +#define HV_HTTP1_PARSER_H_ + +#include "HttpParser.h" +#include "http_parser.h" + +class Http1Parser : public HttpParser { +public: + static http_parser_settings cbs; + http_parser parser; + int flags; + http_parser_state state; + HttpMessage* submited; + HttpMessage* parsed; + // tmp + std::string url; // for on_url + std::string header_field; // for on_header_field + std::string header_value; // for on_header_value + std::string sendbuf; // for GetSendData + + Http1Parser(http_session_type type = HTTP_CLIENT); + virtual ~Http1Parser(); + + void handle_header() { + if (header_field.size() != 0) { + if (stricmp(header_field.c_str(), "Set-CooKie") == 0 || + stricmp(header_field.c_str(), "Cookie") == 0) { + HttpCookie cookie; + if (cookie.parse(header_value)) { + parsed->cookies.emplace_back(cookie); + } + } + parsed->headers[header_field] = header_value; + header_field.clear(); + header_value.clear(); + } + } + + virtual int GetSendData(char** data, size_t* len) { + if (!submited) { + *data = NULL; + *len = 0; + return 0; + } + sendbuf = submited->Dump(true, true); + submited = NULL; + *data = (char*)sendbuf.data(); + *len = sendbuf.size(); + return sendbuf.size(); + } + + virtual int FeedRecvData(const char* data, size_t len) { + return http_parser_execute(&parser, &cbs, data, len); + } + + virtual int GetState() { + return (int)state; + } + + virtual bool WantRecv() { + return state != HP_MESSAGE_COMPLETE; + } + + virtual bool WantSend() { + return state == HP_MESSAGE_COMPLETE; + } + + virtual bool IsComplete() { + return state == HP_MESSAGE_COMPLETE; + } + + virtual bool IsEof() { + FeedRecvData(NULL, 0); + return IsComplete(); + } + + virtual int GetError() { + return parser.http_errno; + } + + virtual const char* StrError(int error) { + return http_errno_description((enum http_errno)error); + } + + // client + // SubmitRequest -> while(GetSendData) {send} -> InitResponse -> do {recv -> FeedRecvData} while(WantRecv) + virtual int SubmitRequest(HttpRequest* req) { + submited = req; + if (req) { + if (req->method == HTTP_HEAD) { + flags |= F_SKIPBODY; + } else { + flags &= ~F_SKIPBODY; + } + } + return 0; + } + + virtual int InitResponse(HttpResponse* res) { + res->Reset(); + parsed = res; + http_parser_init(&parser, HTTP_RESPONSE); + url.clear(); + header_field.clear(); + header_value.clear(); + return 0; + } + + // server + // InitRequest -> do {recv -> FeedRecvData} while(WantRecv) -> SubmitResponse -> while(GetSendData) {send} + virtual int InitRequest(HttpRequest* req) { + req->Reset(); + parsed = req; + http_parser_init(&parser, HTTP_REQUEST); + state = HP_START_REQ_OR_RES; + url.clear(); + header_field.clear(); + header_value.clear(); + return 0; + } + + virtual int SubmitResponse(HttpResponse* res) { + submited = res; + return 0; + } + + // HttpMessage::http_cb + int invokeHttpCb(const char* data = NULL, size_t size = 0) { + if (parsed->http_cb == NULL) return -1; + parsed->http_cb(parsed, state, data, size); + return 0; + } +}; + +#endif // HV_HTTP1_PARSER_H_ diff --git a/3rdPartner/libhv/http/Http2Parser.cpp b/3rdPartner/libhv/http/Http2Parser.cpp new file mode 100644 index 0000000..18c2241 --- /dev/null +++ b/3rdPartner/libhv/http/Http2Parser.cpp @@ -0,0 +1,433 @@ +#ifdef WITH_NGHTTP2 + +#include "Http2Parser.h" + +static nghttp2_nv make_nv(const char* name, const char* value) { + nghttp2_nv nv; + nv.name = (uint8_t*)name; + nv.value = (uint8_t*)value; + nv.namelen = strlen(name); + nv.valuelen = strlen(value); + nv.flags = NGHTTP2_NV_FLAG_NONE; + return nv; +} + +static nghttp2_nv make_nv2(const char* name, const char* value, + int namelen, int valuelen) { + nghttp2_nv nv; + nv.name = (uint8_t*)name; + nv.value = (uint8_t*)value; + nv.namelen = namelen; nv.valuelen = valuelen; + nv.flags = NGHTTP2_NV_FLAG_NONE; + return nv; +} + +static void print_frame_hd(const nghttp2_frame_hd* hd) { + printd("[frame] length=%d type=%x flags=%x stream_id=%d\n", + (int)hd->length, (int)hd->type, (int)hd->flags, hd->stream_id); +} +static int on_header_callback(nghttp2_session *session, + const nghttp2_frame *frame, + const uint8_t *name, size_t namelen, + const uint8_t *value, size_t valuelen, + uint8_t flags, void *userdata); +static int on_data_chunk_recv_callback(nghttp2_session *session, + uint8_t flags, int32_t stream_id, const uint8_t *data, + size_t len, void *userdata); +static int on_frame_recv_callback(nghttp2_session *session, + const nghttp2_frame *frame, void *userdata); +/* +static ssize_t data_source_read_callback(nghttp2_session *session, + int32_t stream_id, uint8_t *buf, size_t length, + uint32_t *data_flags, nghttp2_data_source *source, void *userdata); +*/ + + +Http2Parser::Http2Parser(http_session_type type) { + if (cbs == NULL) { + nghttp2_session_callbacks_new(&cbs); + nghttp2_session_callbacks_set_on_header_callback(cbs, on_header_callback); + nghttp2_session_callbacks_set_on_data_chunk_recv_callback(cbs, on_data_chunk_recv_callback); + nghttp2_session_callbacks_set_on_frame_recv_callback(cbs, on_frame_recv_callback); + } + if (type == HTTP_CLIENT) { + nghttp2_session_client_new(&session, cbs, this); + state = H2_SEND_MAGIC; + } + else if (type == HTTP_SERVER) { + nghttp2_session_server_new(&session, cbs, this); + state = H2_WANT_RECV; + } + //nghttp2_session_set_user_data(session, this); + submited = NULL; + parsed = NULL; + stream_id = -1; + stream_closed = 0; + + nghttp2_settings_entry settings[] = { + {NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, 100} + }; + nghttp2_submit_settings(session, NGHTTP2_FLAG_NONE, settings, ARRAY_SIZE(settings)); + state = H2_SEND_SETTINGS; + + //nghttp2_submit_ping(session, NGHTTP2_FLAG_NONE, NULL); + //state = H2_SEND_PING; +} + +Http2Parser::~Http2Parser() { + if (session) { + nghttp2_session_del(session); + session = NULL; + } +} + +int Http2Parser::GetSendData(char** data, size_t* len) { + // HTTP2_MAGIC,HTTP2_SETTINGS,HTTP2_HEADERS + *len = nghttp2_session_mem_send(session, (const uint8_t**)data); + printd("nghttp2_session_mem_send %d\n", *len); + if (*len != 0) return *len; + + if (submited == NULL) return 0; + // HTTP2_DATA + if (state == H2_SEND_HEADERS) { + void* content = submited->Content(); + int content_length = submited->ContentLength(); + // HTTP2 DATA framehd + state = H2_SEND_DATA_FRAME_HD; + http2_frame_hd framehd; + framehd.length = content_length; + framehd.type = HTTP2_DATA; + framehd.flags = HTTP2_FLAG_END_STREAM; + framehd.stream_id = stream_id; + *data = (char*)frame_hdbuf; + *len = HTTP2_FRAME_HDLEN; + printd("HTTP2 SEND_DATA_FRAME_HD...\n"); + if (submited->ContentType() == APPLICATION_GRPC) { + grpc_message_hd msghd; + msghd.flags = 0; + msghd.length = content_length; + printd("grpc_message_hd: flags=%d length=%d\n", msghd.flags, msghd.length); + + if (type == HTTP_SERVER) { + // grpc server send grpc-status in HTTP2 header frame + framehd.flags = HTTP2_FLAG_NONE; + + /* + // @test protobuf + // message StringMessage { + // string str = 1; + // } + int protobuf_taglen = 0; + int tag = PROTOBUF_MAKE_TAG(1, WIRE_TYPE_LENGTH_DELIMITED); + unsigned char* p = frame_hdbuf + HTTP2_FRAME_HDLEN + GRPC_MESSAGE_HDLEN; + int bytes = varint_encode(tag, p); + protobuf_taglen += bytes; + p += bytes; + bytes = varint_encode(content_length, p); + protobuf_taglen += bytes; + msghd.length += protobuf_taglen; + framehd.length += protobuf_taglen; + *len += protobuf_taglen; + */ + } + + grpc_message_hd_pack(&msghd, frame_hdbuf + HTTP2_FRAME_HDLEN); + framehd.length += GRPC_MESSAGE_HDLEN; + *len += GRPC_MESSAGE_HDLEN; + } + http2_frame_hd_pack(&framehd, frame_hdbuf); + } + else if (state == H2_SEND_DATA_FRAME_HD) { + // HTTP2 DATA + void* content = submited->Content(); + int content_length = submited->ContentLength(); + if (content_length == 0) { + // skip send_data + goto send_done; + } + else { + printd("HTTP2 SEND_DATA... content_length=%d\n", content_length); + state = H2_SEND_DATA; + *data = (char*)content; + *len = content_length; + } + } + else if (state == H2_SEND_DATA) { +send_done: + state = H2_SEND_DONE; + if (submited->ContentType() == APPLICATION_GRPC) { + if (type == HTTP_SERVER && stream_closed) { + // grpc HEADERS grpc-status + printd("grpc HEADERS grpc-status: 0\n"); + int flags = NGHTTP2_FLAG_END_STREAM | NGHTTP2_FLAG_END_HEADERS; + nghttp2_nv nv = make_nv("grpc-status", "0"); + nghttp2_submit_headers(session, flags, stream_id, NULL, &nv, 1, NULL); + *len = nghttp2_session_mem_send(session, (const uint8_t**)data); + } + } + } + + printd("GetSendData %d\n", *len); + return *len; +} + +int Http2Parser::FeedRecvData(const char* data, size_t len) { + printd("nghttp2_session_mem_recv %d\n", len); + state = H2_WANT_RECV; + size_t ret = nghttp2_session_mem_recv(session, (const uint8_t*)data, len); + if (ret != len) { + error = ret; + } + return (int)ret; +} + +int Http2Parser::SubmitRequest(HttpRequest* req) { + submited = req; + + req->FillContentType(); + req->FillContentLength(); + if (req->ContentType() == APPLICATION_GRPC) { + req->method = HTTP_POST; + req->headers["te"] = "trailers"; + req->headers["user-agent"] = "grpc-c++/1.16.0 grpc-c/6.0.0 (linux; nghttp2; hw)"; + req->headers["accept-encoding"] = "identity"; + req->headers["grpc-accept-encoding"] = "identity"; + } + + std::vector nvs; + char c_str[256] = {0}; + req->ParseUrl(); + nvs.push_back(make_nv(":method", http_method_str(req->method))); + nvs.push_back(make_nv(":path", req->path.c_str())); + nvs.push_back(make_nv(":scheme", req->scheme.c_str())); + if (req->port == 0 || + req->port == DEFAULT_HTTP_PORT || + req->port == DEFAULT_HTTPS_PORT) { + nvs.push_back(make_nv(":authority", req->host.c_str())); + } + else { + snprintf(c_str, sizeof(c_str), "%s:%d", req->host.c_str(), req->port); + nvs.push_back(make_nv(":authority", c_str)); + } + const char* name; + const char* value; + for (auto& header : req->headers) { + name = header.first.c_str(); + value = header.second.c_str(); + hv_strlower((char*)name); + if (strcmp(name, "host") == 0) { + // :authority + continue; + } + if (strcmp(name, "connection") == 0) { + // HTTP2 default keep-alive + continue; + } + if (strcmp(name, "content-length") == 0) { + // HTTP2 have frame_hd.length + continue; + } + nvs.push_back(make_nv2(name, value, header.first.size(), header.second.size())); + } + int flags = NGHTTP2_FLAG_END_HEADERS; + // we set EOS on DATA frame + stream_id = nghttp2_submit_headers(session, flags, -1, NULL, &nvs[0], nvs.size(), NULL); + // avoid DATA_SOURCE_COPY, we do not use nghttp2_submit_data + // nghttp2_data_provider data_prd; + // data_prd.read_callback = data_source_read_callback; + //stream_id = nghttp2_submit_request(session, NULL, &nvs[0], nvs.size(), &data_prd, NULL); + state = H2_SEND_HEADERS; + return 0; +} + +int Http2Parser::SubmitResponse(HttpResponse* res) { + submited = res; + + res->FillContentType(); + res->FillContentLength(); + if (parsed && parsed->ContentType() == APPLICATION_GRPC) { + // correct content_type: application/grpc + if (res->ContentType() != APPLICATION_GRPC) { + res->content_type = APPLICATION_GRPC; + res->headers["content-type"] = http_content_type_str(APPLICATION_GRPC); + } + //res->headers["accept-encoding"] = "identity"; + //res->headers["grpc-accept-encoding"] = "identity"; + //res->headers["grpc-status"] = "0"; + //res->status_code = HTTP_STATUS_OK; + } + + std::vector nvs; + char c_str[256] = {0}; + snprintf(c_str, sizeof(c_str), "%d", res->status_code); + nvs.push_back(make_nv(":status", c_str)); + const char* name; + const char* value; + for (auto& header : res->headers) { + name = header.first.c_str(); + value = header.second.c_str(); + hv_strlower((char*)name); + if (strcmp(name, "connection") == 0) { + // HTTP2 default keep-alive + continue; + } + if (strcmp(name, "content-length") == 0) { + // HTTP2 have frame_hd.length + continue; + } + nvs.push_back(make_nv2(name, value, header.first.size(), header.second.size())); + } + int flags = NGHTTP2_FLAG_END_HEADERS; + // we set EOS on DATA frame + if (stream_id == -1) { + // upgrade + nghttp2_session_upgrade(session, NULL, 0, NULL); + stream_id = 1; + } + nghttp2_submit_headers(session, flags, stream_id, NULL, &nvs[0], nvs.size(), NULL); + // avoid DATA_SOURCE_COPY, we do not use nghttp2_submit_data + // data_prd.read_callback = data_source_read_callback; + //nghttp2_submit_response(session, stream_id, &nvs[0], nvs.size(), &data_prd); + state = H2_SEND_HEADERS; + return 0; +} + +int Http2Parser::InitResponse(HttpResponse* res) { + res->Reset(); + res->http_major = 2; + res->http_minor = 0; + parsed = res; + return 0; +} + +int Http2Parser::InitRequest(HttpRequest* req) { + req->Reset(); + req->http_major = 2; + req->http_minor = 0; + parsed = req; + return 0; +} + +nghttp2_session_callbacks* Http2Parser::cbs = NULL; + +int on_header_callback(nghttp2_session *session, + const nghttp2_frame *frame, + const uint8_t *_name, size_t namelen, + const uint8_t *_value, size_t valuelen, + uint8_t flags, void *userdata) { + printd("on_header_callback\n"); + print_frame_hd(&frame->hd); + const char* name = (const char*)_name; + const char* value = (const char*)_value; + printd("%s: %s\n", name, value); + Http2Parser* hp = (Http2Parser*)userdata; + if (*name == ':') { + if (hp->parsed->type == HTTP_REQUEST) { + // :method :path :scheme :authority + HttpRequest* req = (HttpRequest*)hp->parsed; + if (strcmp(name, ":method") == 0) { + req->method = http_method_enum(value); + } + else if (strcmp(name, ":path") == 0) { + req->url = value; + } + else if (strcmp(name, ":scheme") == 0) { + req->headers["Scheme"] = value; + } + else if (strcmp(name, ":authority") == 0) { + req->headers["Host"] = value; + } + } + else if (hp->parsed->type == HTTP_RESPONSE) { + HttpResponse* res = (HttpResponse*)hp->parsed; + if (strcmp(name, ":status") == 0) { + res->status_code = (http_status)atoi(value); + if (res->http_cb) { + res->http_cb(res, HP_MESSAGE_BEGIN, NULL, 0); + } + } + } + } + else { + hp->parsed->headers[name] = value; + if (strcmp(name, "content-type") == 0) { + hp->parsed->content_type = http_content_type_enum(value); + } + } + return 0; +} + +int on_data_chunk_recv_callback(nghttp2_session *session, + uint8_t flags, int32_t stream_id, const uint8_t *data, + size_t len, void *userdata) { + printd("on_data_chunk_recv_callback\n"); + printd("stream_id=%d length=%d\n", stream_id, (int)len); + //printd("%.*s\n", (int)len, data); + Http2Parser* hp = (Http2Parser*)userdata; + + if (hp->parsed->ContentType() == APPLICATION_GRPC) { + // grpc_message_hd + if (len >= GRPC_MESSAGE_HDLEN) { + grpc_message_hd msghd; + grpc_message_hd_unpack(&msghd, data); + printd("grpc_message_hd: flags=%d length=%d\n", msghd.flags, msghd.length); + data += GRPC_MESSAGE_HDLEN; + len -= GRPC_MESSAGE_HDLEN; + //printd("%.*s\n", (int)len, data); + } + } + if (hp->parsed->http_cb) { + hp->parsed->http_cb(hp->parsed, HP_BODY, (const char*)data, len); + } else { + hp->parsed->body.append((const char*)data, len); + } + return 0; +} + +int on_frame_recv_callback(nghttp2_session *session, + const nghttp2_frame *frame, void *userdata) { + printd("on_frame_recv_callback\n"); + print_frame_hd(&frame->hd); + Http2Parser* hp = (Http2Parser*)userdata; + switch (frame->hd.type) { + case NGHTTP2_DATA: + hp->state = H2_RECV_DATA; + break; + case NGHTTP2_HEADERS: + hp->state = H2_RECV_HEADERS; + break; + case NGHTTP2_SETTINGS: + hp->state = H2_RECV_SETTINGS; + break; + case NGHTTP2_PING: + hp->state = H2_RECV_PING; + break; + case NGHTTP2_RST_STREAM: + case NGHTTP2_WINDOW_UPDATE: + // ignore + return 0; + default: + break; + } + if (hp->state == H2_RECV_HEADERS && hp->parsed->http_cb) { + hp->parsed->http_cb(hp->parsed, HP_HEADERS_COMPLETE, NULL, 0); + } + if (frame->hd.stream_id >= hp->stream_id) { + hp->stream_id = frame->hd.stream_id; + hp->stream_closed = 0; + if (frame->hd.flags & NGHTTP2_FLAG_END_STREAM) { + printd("on_stream_closed stream_id=%d\n", hp->stream_id); + hp->stream_closed = 1; + hp->frame_type_when_stream_closed = frame->hd.type; + if (hp->state == H2_RECV_HEADERS || hp->state == H2_RECV_DATA) { + if (hp->parsed->http_cb) { + hp->parsed->http_cb(hp->parsed, HP_MESSAGE_COMPLETE, NULL, 0); + } + } + } + } + + return 0; +} + +#endif diff --git a/3rdPartner/libhv/http/Http2Parser.h b/3rdPartner/libhv/http/Http2Parser.h new file mode 100644 index 0000000..719f449 --- /dev/null +++ b/3rdPartner/libhv/http/Http2Parser.h @@ -0,0 +1,89 @@ +#ifndef HV_HTTP2_PARSER_H_ +#define HV_HTTP2_PARSER_H_ + +#ifdef WITH_NGHTTP2 +#include "HttpParser.h" +#include "http2def.h" +#include "grpcdef.h" + +#include "nghttp2/nghttp2.h" + +enum http2_session_state { + H2_SEND_MAGIC, + H2_SEND_SETTINGS, + H2_SEND_PING, + H2_SEND_HEADERS, + H2_SEND_DATA_FRAME_HD, + H2_SEND_DATA, + H2_SEND_DONE, + + H2_WANT_SEND, + H2_WANT_RECV, + + H2_RECV_SETTINGS, + H2_RECV_PING, + H2_RECV_HEADERS, + H2_RECV_DATA, +}; + +class Http2Parser : public HttpParser { +public: + static nghttp2_session_callbacks* cbs; + nghttp2_session* session; + http2_session_state state; + HttpMessage* submited; + HttpMessage* parsed; + int error; + int stream_id; + int stream_closed; + int frame_type_when_stream_closed; + // http2_frame_hd + grpc_message_hd + // at least HTTP2_FRAME_HDLEN + GRPC_MESSAGE_HDLEN = 9 + 5 = 14 + unsigned char frame_hdbuf[32]; + + Http2Parser(http_session_type type = HTTP_CLIENT); + virtual ~Http2Parser(); + + virtual int GetSendData(char** data, size_t* len); + virtual int FeedRecvData(const char* data, size_t len); + + virtual int GetState() { + return (int)state; + } + + virtual bool WantRecv() { + return state == H2_WANT_RECV; + } + + virtual bool WantSend() { + return state <= H2_WANT_SEND; + } + + virtual bool IsComplete() { + return stream_closed && (frame_type_when_stream_closed == HTTP2_DATA || frame_type_when_stream_closed == HTTP2_HEADERS); + } + + virtual int GetError() { + return error; + } + + virtual const char* StrError(int error) { + //return nghttp2_http2_strerror(error); + return nghttp2_strerror(error); + } + + // client + // SubmitRequest -> while(GetSendData) {send} -> InitResponse -> do {recv -> FeedRecvData} while(WantRecv) + virtual int SubmitRequest(HttpRequest* req); + virtual int InitResponse(HttpResponse* res); + + // server + // InitRequest -> do {recv -> FeedRecvData} while(WantRecv) -> SubmitResponse -> while(GetSendData) {send} + virtual int InitRequest(HttpRequest* req); + virtual int SubmitResponse(HttpResponse* res); + +}; + +#endif + +#endif // HV_HTTP2_PARSER_H_ diff --git a/3rdPartner/libhv/http/HttpMessage.cpp b/3rdPartner/libhv/http/HttpMessage.cpp new file mode 100644 index 0000000..9d46b0e --- /dev/null +++ b/3rdPartner/libhv/http/HttpMessage.cpp @@ -0,0 +1,865 @@ +#include "HttpMessage.h" + +#include + +#include "htime.h" +#include "hlog.h" +#include "hurl.h" +#include "base64.h" + +using namespace hv; + +http_headers DefaultHeaders; +http_body NoBody; +HttpCookie NoCookie; +char HttpMessage::s_date[32] = {0}; + +HttpCookie::HttpCookie() { + init(); +} + +void HttpCookie::init() { + max_age = 0; + secure = false; + httponly = false; + samesite = Default; + priority = NotSet; +} + +void HttpCookie::reset() { + init(); + name.clear(); + value.clear(); + domain.clear(); + path.clear(); + expires.clear(); + kv.clear(); +} + +bool HttpCookie::parse(const std::string& str) { + std::stringstream ss; + ss << str; + std::string line; + std::string::size_type pos; + std::string key; + std::string val; + + reset(); + while (std::getline(ss, line, ';')) { + pos = line.find_first_of('='); + if (pos != std::string::npos) { + key = trim(line.substr(0, pos)); + val = trim(line.substr(pos+1)); + const char* pkey = key.c_str(); + if (stricmp(pkey, "Domain") == 0) { + domain = val; + } + else if (stricmp(pkey, "Path") == 0) { + path = val; + } + else if (stricmp(pkey, "Expires") == 0) { + expires = val; + } + else if (stricmp(pkey, "Max-Age") == 0) { + max_age = atoi(val.c_str()); + } + else if (stricmp(pkey, "SameSite") == 0) { + samesite = stricmp(val.c_str(), "Strict") == 0 ? HttpCookie::SameSite::Strict : + stricmp(val.c_str(), "Lax") == 0 ? HttpCookie::SameSite::Lax : + stricmp(val.c_str(), "None") == 0 ? HttpCookie::SameSite::None : + HttpCookie::SameSite::Default; + } + else if (stricmp(pkey, "Priority") == 0) { + priority = stricmp(val.c_str(), "Low") == 0 ? HttpCookie::Priority::Low : + stricmp(val.c_str(), "Medium") == 0 ? HttpCookie::Priority::Medium : + stricmp(val.c_str(), "High") == 0 ? HttpCookie::Priority::High : + HttpCookie::Priority::NotSet ; + } + else { + if (name.empty()) { + name = key; + value = val; + } + kv[key] = val; + } + } else { + key = trim(line); + const char* pkey = key.c_str(); + if (stricmp(pkey, "Secure") == 0) { + secure = true; + } + else if (stricmp(pkey, "HttpOnly") == 0) { + httponly = true; + } + else { + hlogw("Unrecognized key '%s'", key.c_str()); + } + } + + } + return !name.empty(); +} + +std::string HttpCookie::dump() const { + assert(!name.empty() || !kv.empty()); + std::string res; + + if (!name.empty()) { + res = name; + res += "="; + res += value; + } + + for (auto& pair : kv) { + if (pair.first == name) continue; + if (!res.empty()) res += "; "; + res += pair.first; + res += "="; + res += pair.second; + } + + if (!domain.empty()) { + res += "; Domain="; + res += domain; + } + + if (!path.empty()) { + res += "; Path="; + res += path; + } + + if (max_age > 0) { + res += "; Max-Age="; + res += hv::to_string(max_age); + } else if (!expires.empty()) { + res += "; Expires="; + res += expires; + } + + if (samesite != HttpCookie::SameSite::Default) { + res += "; SameSite="; + res += samesite == HttpCookie::SameSite::Strict ? "Strict" : + samesite == HttpCookie::SameSite::Lax ? "Lax" : + "None" ; + } + + if (priority != HttpCookie::Priority::NotSet) { + res += "; Priority="; + res += priority == HttpCookie::Priority::Low ? "Low" : + priority == HttpCookie::Priority::Medium ? "Medium" : + "High" ; + } + + if (secure) { + res += "; Secure"; + } + + if (httponly) { + res += "; HttpOnly"; + } + + return res; +} + +HttpMessage::HttpMessage() { + type = HTTP_BOTH; + Init(); +} + +HttpMessage::~HttpMessage() { + +} + +void HttpMessage::Init() { + http_major = 1; + http_minor = 1; + content = NULL; + content_length = 0; + content_type = CONTENT_TYPE_NONE; +} + +void HttpMessage::Reset() { + Init(); + headers.clear(); + cookies.clear(); + body.clear(); +#ifndef WITHOUT_HTTP_CONTENT + json.clear(); + form.clear(); + kv.clear(); +#endif +} + +#ifndef WITHOUT_HTTP_CONTENT +// NOTE: json ignore number/string, 123/"123" + +std::string HttpMessage::GetString(const char* key, const std::string& defvalue) { + switch (ContentType()) { + case APPLICATION_JSON: + { + if (json.empty()) { + ParseBody(); + } + if (!json.is_object()) { + return defvalue; + } + const auto& value = json[key]; + if (value.is_string()) { + return value; + } + else if (value.is_number()) { + return hv::to_string(value); + } + else if (value.is_boolean()) { + bool b = value; + return b ? "true" : "false"; + } + else { + return defvalue; + } + } + break; + case MULTIPART_FORM_DATA: + { + if (form.empty()) { + ParseBody(); + } + auto iter = form.find(key); + if (iter != form.end()) { + return iter->second.content; + } + } + break; + case APPLICATION_URLENCODED: + { + if (kv.empty()) { + ParseBody(); + } + auto iter = kv.find(key); + if (iter != kv.end()) { + return iter->second; + } + } + break; + default: + break; + } + return defvalue; +} + +template<> +HV_EXPORT int64_t HttpMessage::Get(const char* key, int64_t defvalue) { + if (ContentType() == APPLICATION_JSON) { + if (json.empty()) { + ParseBody(); + } + if (!json.is_object()) { + return defvalue; + } + const auto& value = json[key]; + if (value.is_number()) { + return value; + } + else if (value.is_string()) { + std::string str = value; + return atoll(str.c_str()); + } + else if (value.is_boolean()) { + bool b = value; + return b ? 1 : 0; + } + else { + return defvalue; + } + } + else { + std::string str = GetString(key); + return str.empty() ? defvalue : atoll(str.c_str()); + } +} + +template<> +HV_EXPORT int HttpMessage::Get(const char* key, int defvalue) { + return (int)Get(key, defvalue); +} + +template<> +HV_EXPORT double HttpMessage::Get(const char* key, double defvalue) { + if (ContentType() == APPLICATION_JSON) { + if (json.empty()) { + ParseBody(); + } + if (!json.is_object()) { + return defvalue; + } + const auto& value = json[key]; + if (value.is_number()) { + return value; + } + else if (value.is_string()) { + std::string str = value; + return atof(str.c_str()); + } + else { + return defvalue; + } + } + else { + std::string str = GetString(key); + return str.empty() ? defvalue : atof(str.c_str()); + } +} + +template<> +HV_EXPORT float HttpMessage::Get(const char* key, float defvalue) { + return (float)Get(key, defvalue); +} + +template<> +HV_EXPORT bool HttpMessage::Get(const char* key, bool defvalue) { + if (ContentType() == APPLICATION_JSON) { + if (json.empty()) { + ParseBody(); + } + if (!json.is_object()) { + return defvalue; + } + const auto& value = json[key]; + if (value.is_boolean()) { + return value; + } + else if (value.is_string()) { + std::string str = value; + return hv_getboolean(str.c_str()); + } + else if (value.is_number()) { + return value != 0; + } + else { + return defvalue; + } + } + else { + std::string str = GetString(key); + return str.empty() ? defvalue : hv_getboolean(str.c_str()); + } +} + +bool HttpMessage::GetBool(const char* key, bool defvalue) { + return Get(key, defvalue); +} +int64_t HttpMessage::GetInt(const char* key, int64_t defvalue) { + return Get(key, defvalue); +} +double HttpMessage::GetFloat(const char* key, double defvalue) { + return Get(key, defvalue); +} +#endif + +void HttpMessage::FillContentType() { + auto iter = headers.find("Content-Type"); + if (iter != headers.end()) { + content_type = http_content_type_enum(iter->second.c_str()); + goto append; + } + +#ifndef WITHOUT_HTTP_CONTENT + if (content_type == CONTENT_TYPE_NONE) { + if (json.size() != 0) { + content_type = APPLICATION_JSON; + } + else if (form.size() != 0) { + content_type = MULTIPART_FORM_DATA; + } + else if (kv.size() != 0) { + content_type = X_WWW_FORM_URLENCODED; + } + else if (body.size() != 0) { + content_type = TEXT_PLAIN; + } + } +#endif + + if (content_type != CONTENT_TYPE_NONE) { + headers["Content-Type"] = http_content_type_str(content_type); + } + +append: +#ifndef WITHOUT_HTTP_CONTENT + if (content_type == MULTIPART_FORM_DATA) { + auto iter = headers.find("Content-Type"); + if (iter != headers.end()) { + const char* boundary = strstr(iter->second.c_str(), "boundary="); + if (boundary == NULL) { + boundary = DEFAULT_MULTIPART_BOUNDARY; + iter->second += "; boundary="; + iter->second += boundary; + } + } + } +#endif + return; +} + +void HttpMessage::FillContentLength() { + auto iter = headers.find("Content-Length"); + if (iter != headers.end()) { + content_length = atoll(iter->second.c_str()); + } + if (content_length == 0) { + DumpBody(); + content_length = body.size(); + } + if (iter == headers.end() && !IsChunked() && content_type != TEXT_EVENT_STREAM) { + if (content_length != 0 || type == HTTP_RESPONSE) { + headers["Content-Length"] = hv::to_string(content_length); + } + } +} + +bool HttpMessage::IsChunked() { + auto iter = headers.find("Transfer-Encoding"); + return iter != headers.end() && stricmp(iter->second.c_str(), "chunked") == 0; +} + +bool HttpMessage::IsKeepAlive() { + bool keepalive = true; + auto iter = headers.find("connection"); + if (iter != headers.end()) { + const char* keepalive_value = iter->second.c_str(); + if (stricmp(keepalive_value, "keep-alive") == 0) { + keepalive = true; + } + else if (stricmp(keepalive_value, "close") == 0) { + keepalive = false; + } + else if (stricmp(keepalive_value, "upgrade") == 0) { + keepalive = true; + } + } + else if (http_major == 1 && http_minor == 0) { + keepalive = false; + } + return keepalive; +} + +bool HttpMessage::IsUpgrade() { + auto iter = headers.find("upgrade"); + return iter != headers.end(); +} + +// headers +void HttpMessage::SetHeader(const char* key, const std::string& value) { + headers[key] = value; +} +std::string HttpMessage::GetHeader(const char* key, const std::string& defvalue) { + auto iter = headers.find(key); + return iter == headers.end() ? defvalue : iter->second; +} + +// cookies +void HttpMessage::AddCookie(const HttpCookie& cookie) { + cookies.push_back(cookie); +} +const HttpCookie& HttpMessage::GetCookie(const std::string& name) { + for (auto iter = cookies.begin(); iter != cookies.end(); ++iter) { + if (iter->name == name) { + return *iter; + } + auto kv_iter = iter->kv.find(name); + if (kv_iter != iter->kv.end()) { + iter->name = name; + iter->value = kv_iter->second; + return *iter; + } + } + return NoCookie; +} + +// body +void HttpMessage::SetBody(const std::string& body) { + this->body = body; +} +const std::string& HttpMessage::Body() { + return this->body; +} + +void HttpMessage::DumpHeaders(std::string& str) { + FillContentType(); + FillContentLength(); + + // headers + for (auto& header: headers) { + // http2 :method :path :scheme :authority :status + if (*str.c_str() != ':') { + // %s: %s\r\n + str += header.first; + str += ": "; + // fix CVE-2023-26148 + // if the value has \r\n, translate to \\r\\n + if (header.second.find("\r") != std::string::npos || + header.second.find("\n") != std::string::npos) { + std::string newStr = ""; + for (size_t i = 0; i < header.second.size(); ++i) { + if (header.second[i] == '\r') { + newStr += "\\r"; + } else if (header.second[i] == '\n') { + newStr += "\\n"; + } else { + newStr += header.second[i]; + } + } + str += newStr; + } else { + str += header.second; + } + str += "\r\n"; + } + } + + // cookies + const char* cookie_field = "Cookie"; + if (type == HTTP_RESPONSE) { + cookie_field = "Set-Cookie"; + } + for (auto& cookie : cookies) { + str += cookie_field; + str += ": "; + str += cookie.dump(); + str += "\r\n"; + } +} + +void HttpMessage::DumpBody() { + if (body.size() != 0) { + return; + } + FillContentType(); +#ifndef WITHOUT_HTTP_CONTENT + switch(content_type) { + case APPLICATION_JSON: + body = dump_json(json, 2); + break; + case MULTIPART_FORM_DATA: + { + auto iter = headers.find("Content-Type"); + if (iter == headers.end()) { + return; + } + const char* boundary = strstr(iter->second.c_str(), "boundary="); + if (boundary == NULL) { + return; + } + boundary += strlen("boundary="); + body = dump_multipart(form, boundary); + } + break; + case X_WWW_FORM_URLENCODED: + body = dump_query_params(kv); + break; + default: + // nothing to do + break; + } +#endif +} + +void HttpMessage::DumpBody(std::string& str) { + DumpBody(); + const char* content = (const char*)Content(); + size_t content_length = ContentLength(); + if (content && content_length) { + str.append(content, content_length); + } +} + +int HttpMessage::ParseBody() { + if (body.size() == 0) { + return -1; + } + FillContentType(); +#ifndef WITHOUT_HTTP_CONTENT + switch(content_type) { + case APPLICATION_JSON: + { + std::string errmsg; + int ret = parse_json(body.c_str(), json, errmsg); + if (ret != 0 && errmsg.size() != 0) { + hloge("%s", errmsg.c_str()); + } + return ret; + } + case MULTIPART_FORM_DATA: + { + auto iter = headers.find("Content-Type"); + if (iter == headers.end()) { + return -1; + } + const char* boundary = strstr(iter->second.c_str(), "boundary="); + if (boundary == NULL) { + return -1; + } + boundary += strlen("boundary="); + std::string strBoundary(boundary); + strBoundary = trim_pairs(strBoundary, "\"\"\'\'"); + return parse_multipart(body, form, strBoundary.c_str()); + } + case X_WWW_FORM_URLENCODED: + return parse_query_params(body.c_str(), kv); + default: + // nothing to do + return 0; + } +#endif + return 0; +} + +std::string HttpMessage::Dump(bool is_dump_headers, bool is_dump_body) { + std::string str; + if (is_dump_headers) { + DumpHeaders(str); + } + str += "\r\n"; + if (is_dump_body) { + DumpBody(str); + } + return str; +} + + +HttpRequest::HttpRequest() : HttpMessage() { + type = HTTP_REQUEST; + Init(); +} + +void HttpRequest::Init() { + headers["User-Agent"] = DEFAULT_HTTP_USER_AGENT; + headers["Accept"] = "*/*"; + method = HTTP_GET; + scheme = "http"; + host = "127.0.0.1"; + port = DEFAULT_HTTP_PORT; + path = "/"; + timeout = DEFAULT_HTTP_TIMEOUT; + connect_timeout = DEFAULT_HTTP_CONNECT_TIMEOUT; + retry_count = DEFAULT_HTTP_FAIL_RETRY_COUNT; + retry_delay = DEFAULT_HTTP_FAIL_RETRY_DELAY; + redirect = 1; + proxy = 0; + cancel = 0; +} + +void HttpRequest::Reset() { + HttpMessage::Reset(); + Init(); + url.clear(); + query_params.clear(); +} + +void HttpRequest::DumpUrl() { + std::string str; + if (url.size() != 0 && + *url.c_str() != '/' && + strstr(url.c_str(), "://") != NULL) { + // have been complete url + goto query; + } + // scheme:// + str = scheme; + str += "://"; + // host:port + if (url.size() != 0 && *url.c_str() != '/') { + // url begin with host + str += url; + } + else { + if (port == 0 || + port == DEFAULT_HTTP_PORT || + port == DEFAULT_HTTPS_PORT) { + str += Host(); + } + else { + str += hv::asprintf("%s:%d", host.c_str(), port); + } + } + // /path + if (url.size() != 0 && *url.c_str() == '/') { + // url begin with path + str += url; + } + else if (path.size() > 1 && *path.c_str() == '/') { + str += path; + } + else if (url.size() == 0) { + str += '/'; + } + url = str; +query: + // ?query + if (strchr(url.c_str(), '?') == NULL && + query_params.size() != 0) { + url += '?'; + url += dump_query_params(query_params); + } +} + +void HttpRequest::ParseUrl() { + DumpUrl(); + hurl_t parser; + hv_parse_url(&parser, url.c_str()); + // scheme + std::string scheme_ = url.substr(parser.fields[HV_URL_SCHEME].off, parser.fields[HV_URL_SCHEME].len); + // host + std::string host_(host); + if (parser.fields[HV_URL_HOST].len > 0) { + host_ = url.substr(parser.fields[HV_URL_HOST].off, parser.fields[HV_URL_HOST].len); + } + // port + int port_ = parser.port ? parser.port : strcmp(scheme_.c_str(), "https") ? DEFAULT_HTTP_PORT : DEFAULT_HTTPS_PORT; + if (!proxy) { + scheme = scheme_; + host = host_; + port = port_; + } + FillHost(host_.c_str(), port_); + // path + if (parser.fields[HV_URL_PATH].len > 0) { + path = url.substr(parser.fields[HV_URL_PATH].off); + } + // query + if (parser.fields[HV_URL_QUERY].len > 0) { + parse_query_params(url.c_str()+parser.fields[HV_URL_QUERY].off, query_params); + } +} + +std::string HttpRequest::Path() { + const char* s = path.c_str(); + const char* e = s; + while (*e && *e != '?' && *e != '#') ++e; + return HUrl::unescape(std::string(s, e)); +} + +void HttpRequest::FillHost(const char* host, int port) { + if (headers.find("Host") == headers.end()) { + if (port == 0 || + port == DEFAULT_HTTP_PORT || + port == DEFAULT_HTTPS_PORT) { + headers["Host"] = host; + } else { + headers["Host"] = asprintf("%s:%d", host, port); + } + } +} + +void HttpRequest::SetHost(const char* host, int port) { + this->host = host; + this->port = port; + FillHost(host, port); +} + +void HttpRequest::SetProxy(const char* host, int port) { + this->scheme = "http"; + this->host = host; + this->port = port; + proxy = 1; +} + +void HttpRequest::SetAuth(const std::string& auth) { + SetHeader("Authorization", auth); +} + +void HttpRequest::SetBasicAuth(const std::string& username, const std::string& password) { + std::string strAuth = hv::asprintf("%s:%s", username.c_str(), password.c_str()); + std::string base64Auth = hv::Base64Encode((const unsigned char*)strAuth.c_str(), strAuth.size()); + SetAuth(std::string("Basic ") + base64Auth); +} + +void HttpRequest::SetBearerTokenAuth(const std::string& token) { + SetAuth(std::string("Bearer ") + token); +} + +std::string HttpRequest::Dump(bool is_dump_headers, bool is_dump_body) { + ParseUrl(); + + std::string str; + str.reserve(MAX(512, path.size() + 128)); + // GET / HTTP/1.1\r\n + str = asprintf("%s %s HTTP/%d.%d\r\n", + http_method_str(method), + proxy ? url.c_str() : path.c_str(), + (int)http_major, (int)http_minor); + if (is_dump_headers) { + DumpHeaders(str); + } + str += "\r\n"; + if (is_dump_body) { + DumpBody(str); + } + return str; +} + +void HttpRequest::SetRange(long from, long to) { + SetHeader("Range", hv::asprintf("bytes=%ld-%ld", from, to)); +} + +bool HttpRequest::GetRange(long& from, long& to) { + auto iter = headers.find("Range"); + if (iter != headers.end()) { + sscanf(iter->second.c_str(), "bytes=%ld-%ld", &from, &to); + return true; + } + from = to = 0; + return false; +} + +HttpResponse::HttpResponse() : HttpMessage() { + type = HTTP_RESPONSE; + Init(); +} + +void HttpResponse::Init() { + status_code = HTTP_STATUS_OK; +} + +void HttpResponse::Reset() { + HttpMessage::Reset(); + Init(); +} + +std::string HttpResponse::Dump(bool is_dump_headers, bool is_dump_body) { + char c_str[256] = {0}; + std::string str; + str.reserve(512); + // HTTP/1.1 200 OK\r\n + snprintf(c_str, sizeof(c_str), "HTTP/%d.%d %d %s\r\n", + (int)http_major, (int)http_minor, + (int)status_code, http_status_str(status_code)); + str = c_str; + if (is_dump_headers) { + if (*s_date) { + headers["Date"] = s_date; + } else { + headers["Date"] = gmtime_fmt(time(NULL), c_str); + } + DumpHeaders(str); + } + str += "\r\n"; + if (is_dump_body) { + DumpBody(str); + } + return str; +} + +void HttpResponse::SetRange(long from, long to, long total) { + SetHeader("Content-Range", hv::asprintf("bytes %ld-%ld/%ld", from, to, total)); +} + +bool HttpResponse::GetRange(long& from, long& to, long& total) { + auto iter = headers.find("Content-Range"); + if (iter != headers.end()) { + sscanf(iter->second.c_str(), "bytes %ld-%ld/%ld", &from, &to, &total); + return true; + } + from = to = total = 0; + return false; +} diff --git a/3rdPartner/libhv/http/HttpMessage.h b/3rdPartner/libhv/http/HttpMessage.h new file mode 100644 index 0000000..4b8a9ef --- /dev/null +++ b/3rdPartner/libhv/http/HttpMessage.h @@ -0,0 +1,501 @@ +#ifndef HV_HTTP_MESSAGE_H_ +#define HV_HTTP_MESSAGE_H_ + +/* + * @class HttpMessage + * HttpRequest extends HttpMessage + * HttpResponse extends HttpMessage + * + * @member + * request-line: GET / HTTP/1.1\r\n => method path + * response-line: HTTP/1.1 200 OK\r\n => status_code + * headers, cookies + * body + * + * content, content_length, content_type + * json, form, kv + * + * @function + * Content, ContentLength, ContentType + * ParseUrl, ParseBody + * DumpUrl, DumpHeaders, DumpBody, Dump + * GetHeader, GetParam, GetJson, GetFormData, GetUrlEncoded + * SetHeader, SetParam, SetBody, SetFormData, SetUrlEncoded + * Get, Set + * GetString, GetBool, GetInt, GetFloat + * String, Data, Json, File, FormFile + * + * @example + * examples/http_server_test.cpp + * examples/http_client_test.cpp + * examples/httpd + * + */ + +#include +#include +#include +#include + +#include "hexport.h" +#include "hbase.h" +#include "hstring.h" +#include "hfile.h" +#include "hpath.h" + +#include "httpdef.h" +#include "http_content.h" + +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie +// Cookie: sessionid=1; domain=.example.com; path=/; max-age=86400; secure; httponly +struct HV_EXPORT HttpCookie { + std::string name; + std::string value; + std::string domain; + std::string path; + std::string expires; + int max_age; + bool secure; + bool httponly; + enum SameSite { + Default, + Strict, + Lax, + None + } samesite; + enum Priority { + NotSet, + Low, + Medium, + High, + } priority; + hv::KeyValue kv; // for multiple names + + HttpCookie(); + + void init(); + void reset(); + + bool parse(const std::string& str); + std::string dump() const; +}; + +typedef std::map http_headers; +typedef std::vector http_cookies; +typedef std::string http_body; + +HV_EXPORT extern http_headers DefaultHeaders; +HV_EXPORT extern http_body NoBody; +HV_EXPORT extern HttpCookie NoCookie; + +class HV_EXPORT HttpMessage { +public: + static char s_date[32]; + int type; + unsigned short http_major; + unsigned short http_minor; + + http_headers headers; + http_cookies cookies; + http_body body; + + // http_cb + std::function http_cb; + + // structured content + void* content; // DATA_NO_COPY + size_t content_length; + http_content_type content_type; +#ifndef WITHOUT_HTTP_CONTENT + hv::Json json; // APPLICATION_JSON + hv::MultiPart form; // MULTIPART_FORM_DATA + hv::KeyValue kv; // X_WWW_FORM_URLENCODED + + // T=[bool, int, int64_t, float, double] + template + T Get(const char* key, T defvalue = 0); + + std::string GetString(const char* key, const std::string& = ""); + bool GetBool(const char* key, bool defvalue = 0); + int64_t GetInt(const char* key, int64_t defvalue = 0); + double GetFloat(const char* key, double defvalue = 0); + + template + void Set(const char* key, const T& value) { + switch (ContentType()) { + case APPLICATION_JSON: + json[key] = value; + break; + case MULTIPART_FORM_DATA: + form[key] = hv::FormData(value); + break; + case X_WWW_FORM_URLENCODED: + kv[key] = hv::to_string(value); + break; + default: + break; + } + } + + /* + * @usage https://github.com/nlohmann/json + * + * null: Json(nullptr); + * boolean: Json(true); + * number: Json(123); + * string: Json("hello"); + * object: Json(std::map); + * Json(hv::Json::object({ + {"k1", "v1"}, + {"k2", "v2"} + })); + * array: Json(std::vector); + Json(hv::Json::array( + {1, 2, 3} + )); + */ + // Content-Type: application/json + template + int Json(const T& t) { + content_type = APPLICATION_JSON; + hv::Json j(t); + body = j.dump(2); + return 200; + } + const hv::Json& GetJson() { + if (json.empty() && ContentType() == APPLICATION_JSON) { + ParseBody(); + } + return json; + } + + // Content-Type: multipart/form-data + template + void SetFormData(const char* name, const T& t) { + form[name] = hv::FormData(t); + } + void SetFormFile(const char* name, const char* filepath) { + form[name] = hv::FormData(NULL, filepath); + } + int FormFile(const char* name, const char* filepath) { + content_type = MULTIPART_FORM_DATA; + form[name] = hv::FormData(NULL, filepath); + return 200; + } + const hv::MultiPart& GetForm() { + if (form.empty() && ContentType() == MULTIPART_FORM_DATA) { + ParseBody(); + } + return form; + } + std::string GetFormData(const char* name, const std::string& defvalue = hv::empty_string) { + if (form.empty() && ContentType() == MULTIPART_FORM_DATA) { + ParseBody(); + } + auto iter = form.find(name); + return iter == form.end() ? defvalue : iter->second.content; + } + int SaveFormFile(const char* name, const char* path) { + if (ContentType() != MULTIPART_FORM_DATA) { + return HTTP_STATUS_BAD_REQUEST; + } + if (form.empty()) { + ParseBody(); + if (form.empty()) return HTTP_STATUS_BAD_REQUEST; + } + auto iter = form.find(name); + if (iter == form.end()) { + return HTTP_STATUS_BAD_REQUEST; + } + const auto& formdata = iter->second; + if (formdata.content.empty()) { + return HTTP_STATUS_BAD_REQUEST; + } + std::string filepath(path); + if (HPath::isdir(path)) { + filepath = HPath::join(filepath, formdata.filename); + } + HFile file; + if (file.open(filepath.c_str(), "wb") != 0) { + return HTTP_STATUS_INTERNAL_SERVER_ERROR; + } + file.write(formdata.content.data(), formdata.content.size()); + return 200; + } + + // Content-Type: application/x-www-form-urlencoded + template + void SetUrlEncoded(const char* key, const T& t) { + kv[key] = hv::to_string(t); + } + const hv::KeyValue& GetUrlEncoded() { + if (kv.empty() && ContentType() == X_WWW_FORM_URLENCODED) { + ParseBody(); + } + return kv; + } + std::string GetUrlEncoded(const char* key, const std::string& defvalue = hv::empty_string) { + if (kv.empty() && ContentType() == X_WWW_FORM_URLENCODED) { + ParseBody(); + } + auto iter = kv.find(key); + return iter == kv.end() ? defvalue : iter->second; + } +#endif + + HttpMessage(); + virtual ~HttpMessage(); + + void Init(); + virtual void Reset(); + + // structured-content -> content_type <-> headers["Content-Type"] + void FillContentType(); + // body.size -> content_length <-> headers["Content-Length"] + void FillContentLength(); + + bool IsChunked(); + bool IsKeepAlive(); + bool IsUpgrade(); + + // headers + void SetHeader(const char* key, const std::string& value); + std::string GetHeader(const char* key, const std::string& defvalue = hv::empty_string); + + // cookies + void AddCookie(const HttpCookie& cookie); + const HttpCookie& GetCookie(const std::string& name); + + // body + void SetBody(const std::string& body); + const std::string& Body(); + + // headers -> string + void DumpHeaders(std::string& str); + // structured content -> body + void DumpBody(); + void DumpBody(std::string& str); + // body -> structured content + // @retval 0:succeed + int ParseBody(); + + virtual std::string Dump(bool is_dump_headers, bool is_dump_body); + + void* Content() { + if (content == NULL && body.size() != 0) { + content = (void*)body.data(); + content_length = body.size(); + } + return content; + } + + size_t ContentLength() { + if (content_length == 0) { + FillContentLength(); + } + return content_length; + } + + http_content_type ContentType() { + if (content_type == CONTENT_TYPE_NONE) { + FillContentType(); + } + return content_type; + } + void SetContentType(http_content_type type) { + content_type = type; + } + void SetContentType(const char* type) { + content_type = http_content_type_enum(type); + } + void SetContentTypeByFilename(const char* filepath) { + const char* suffix = hv_suffixname(filepath); + if (suffix) { + content_type = http_content_type_enum_by_suffix(suffix); + } + if (content_type == CONTENT_TYPE_NONE || content_type == CONTENT_TYPE_UNDEFINED) { + content_type = APPLICATION_OCTET_STREAM; + } + } + + int String(const std::string& str) { + content_type = TEXT_PLAIN; + body = str; + return 200; + } + + int Data(void* data, int len, bool nocopy = true) { + content_type = APPLICATION_OCTET_STREAM; + if (nocopy) { + content = data; + content_length = len; + } else { + content_length = body.size(); + body.resize(content_length + len); + memcpy((void*)(body.data() + content_length), data, len); + content_length += len; + } + return 200; + } + + int File(const char* filepath) { + HFile file; + if (file.open(filepath, "rb") != 0) { + return HTTP_STATUS_NOT_FOUND; + } + SetContentTypeByFilename(filepath); + file.readall(body); + return 200; + } + + int SaveFile(const char* filepath) { + HFile file; + if (file.open(filepath, "wb") != 0) { + return HTTP_STATUS_NOT_FOUND; + } + file.write(body.data(), body.size()); + return 200; + } +}; + +#define DEFAULT_HTTP_USER_AGENT "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" +#define DEFAULT_HTTP_TIMEOUT 60 // s +#define DEFAULT_HTTP_CONNECT_TIMEOUT 10 // s +#define DEFAULT_HTTP_FAIL_RETRY_COUNT 1 +#define DEFAULT_HTTP_FAIL_RETRY_DELAY 1000 // ms + +class HV_EXPORT HttpRequest : public HttpMessage { +public: + http_method method; + // scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] + std::string url; + // structured url + std::string scheme; + std::string host; + int port; + std::string path; + hv::QueryParams query_params; + // client_addr + hv::NetAddr client_addr; // for http server save client addr of request + // for HttpClient + uint16_t timeout; // unit: s + uint16_t connect_timeout;// unit: s + uint32_t retry_count; + uint32_t retry_delay; // unit: ms + unsigned redirect: 1; + unsigned proxy : 1; + unsigned cancel : 1; + + HttpRequest(); + + void Init(); + virtual void Reset(); + + virtual std::string Dump(bool is_dump_headers = true, bool is_dump_body = false); + + // method + void SetMethod(const char* method) { + this->method = http_method_enum(method); + } + const char* Method() { + return http_method_str(method); + } + + // scheme + bool IsHttps() { + return strncmp(scheme.c_str(), "https", 5) == 0 || + strncmp(url.c_str(), "https://", 8) == 0; + } + + // url + void SetUrl(const char* url) { + this->url = url; + } + const std::string& Url() { + return url; + } + // structed url -> url + void DumpUrl(); + // url -> structed url + void ParseUrl(); + + // /path?query#fragment + std::string FullPath() { return path; } + // /path + std::string Path(); + + // ?query_params + template + void SetParam(const char* key, const T& t) { + query_params[key] = hv::to_string(t); + } + std::string GetParam(const char* key, const std::string& defvalue = hv::empty_string) { + auto iter = query_params.find(key); + return iter == query_params.end() ? defvalue : iter->second; + } + + // Host: + std::string Host() { + auto iter = headers.find("Host"); + return iter == headers.end() ? host : iter->second; + } + void FillHost(const char* host, int port = DEFAULT_HTTP_PORT); + void SetHost(const char* host, int port = DEFAULT_HTTP_PORT); + + void SetProxy(const char* host, int port); + bool IsProxy() { return proxy; } + + // Auth + void SetAuth(const std::string& auth); + void SetBasicAuth(const std::string& username, const std::string& password); + void SetBearerTokenAuth(const std::string& token); + + void SetTimeout(int sec) { timeout = sec; } + void SetConnectTimeout(int sec) { connect_timeout = sec; } + + void AllowRedirect(bool on = true) { redirect = on; } + + // NOTE: SetRetry just for AsyncHttpClient + void SetRetry(int count = DEFAULT_HTTP_FAIL_RETRY_COUNT, + int delay = DEFAULT_HTTP_FAIL_RETRY_DELAY) { + retry_count = count; + retry_delay = delay; + } + void Cancel() { cancel = 1; } + bool IsCanceled() { return cancel == 1; } + + // Range: bytes=0-4095 + void SetRange(long from = 0, long to = -1); + bool GetRange(long& from, long& to); +}; + +class HV_EXPORT HttpResponse : public HttpMessage { +public: + http_status status_code; + const char* status_message() { + return http_status_str(status_code); + } + + HttpResponse(); + + void Init(); + virtual void Reset(); + + virtual std::string Dump(bool is_dump_headers = true, bool is_dump_body = false); + + // Content-Range: bytes 0-4095/10240000 + void SetRange(long from, long to, long total); + bool GetRange(long& from, long& to, long& total); + + int Redirect(const std::string& location, http_status status = HTTP_STATUS_FOUND) { + status_code = status; + SetHeader("Location", location); + return status_code; + } +}; + +typedef std::shared_ptr HttpRequestPtr; +typedef std::shared_ptr HttpResponsePtr; +typedef std::function HttpResponseCallback; + +#endif // HV_HTTP_MESSAGE_H_ diff --git a/3rdPartner/libhv/http/HttpParser.cpp b/3rdPartner/libhv/http/HttpParser.cpp new file mode 100644 index 0000000..210bbf6 --- /dev/null +++ b/3rdPartner/libhv/http/HttpParser.cpp @@ -0,0 +1,25 @@ +#include "HttpParser.h" + +#include "Http1Parser.h" +#include "Http2Parser.h" + +HttpParser* HttpParser::New(http_session_type type, http_version version) { + HttpParser* hp = NULL; + if (version == HTTP_V1) { + hp = new Http1Parser(type); + } + else if (version == HTTP_V2) { +#ifdef WITH_NGHTTP2 + hp = new Http2Parser(type); +#else + fprintf(stderr, "Please recompile WITH_NGHTTP2!\n"); +#endif + } + + if (hp) { + hp->version = version; + hp->type = type; + } + + return hp; +} diff --git a/3rdPartner/libhv/http/HttpParser.h b/3rdPartner/libhv/http/HttpParser.h new file mode 100644 index 0000000..1f9fc2a --- /dev/null +++ b/3rdPartner/libhv/http/HttpParser.h @@ -0,0 +1,53 @@ +#ifndef HV_HTTP_PARSER_H_ +#define HV_HTTP_PARSER_H_ + +#include "hexport.h" +#include "HttpMessage.h" + +class HV_EXPORT HttpParser { +public: + http_version version; + http_session_type type; + + static HttpParser* New(http_session_type type = HTTP_CLIENT, http_version version = HTTP_V1); + virtual ~HttpParser() {} + + virtual int GetSendData(char** data, size_t* len) = 0; + virtual int FeedRecvData(const char* data, size_t len) = 0; + + // Http1Parser: http_parser_state + // Http2Parser: http2_session_state + virtual int GetState() = 0; + + // Http1Parser: GetState() != HP_MESSAGE_COMPLETE + // Http2Parser: GetState() == H2_WANT_RECV + virtual bool WantRecv() = 0; + + // Http1Parser: GetState() == HP_MESSAGE_COMPLETE + // Http2Parser: GetState() == H2_WANT_SEND + virtual bool WantSend() = 0; + + // IsComplete: Is recved HttpRequest or HttpResponse complete? + // Http1Parser: GetState() == HP_MESSAGE_COMPLETE + // Http2Parser: (state == H2_RECV_HEADERS || state == H2_RECV_DATA) && stream_closed + virtual bool IsComplete() = 0; + + virtual bool IsEof() { return false; } + + // client + // SubmitRequest -> while(GetSendData) {send} -> InitResponse -> do {recv -> FeedRecvData} while(WantRecv) + virtual int SubmitRequest(HttpRequest* req) = 0; + virtual int InitResponse(HttpResponse* res) = 0; + + // server + // InitRequest -> do {recv -> FeedRecvData} while(WantRecv) -> SubmitResponse -> while(GetSendData) {send} + virtual int InitRequest(HttpRequest* req) = 0; + virtual int SubmitResponse(HttpResponse* res) = 0; + + virtual int GetError() = 0; + virtual const char* StrError(int error) = 0; +}; + +typedef std::shared_ptr HttpParserPtr; + +#endif // HV_HTTP_PARSER_H_ diff --git a/3rdPartner/libhv/http/README.md b/3rdPartner/libhv/http/README.md new file mode 100644 index 0000000..2ffd401 --- /dev/null +++ b/3rdPartner/libhv/http/README.md @@ -0,0 +1,26 @@ +## 目录结构 + +``` +. +├── client +│   ├── HttpClient.h http客户端对外头文件 +│   ├── requests.h 模拟python requests api +│   └── axios.h 模拟nodejs axios api +├── httpdef.h http定义 +├── http2def.h http2定义 +├── grpcdef.h grpc定义 +├── HttpParser.h http解析基类 +├── Http1Parser.h http1解析类 +├── Http2Parser.h http2解析类 +├── HttpMessage.h http请求响应类 +├── http_content.h http Content-Type +├── http_parser.h http1解析实现 +├── multipart_parser.h multipart解析 +└── server + ├── HttpServer.h http服务端对外头文件 + ├── HttpHandler.h http处理类 + ├── FileCache.h 文件缓存类 + ├── http_page.h http页面构造 + └── HttpService.h http业务类 (包括api service、web service、indexof service) + +``` diff --git a/3rdPartner/libhv/http/WebSocketChannel.cpp b/3rdPartner/libhv/http/WebSocketChannel.cpp new file mode 100644 index 0000000..da233db --- /dev/null +++ b/3rdPartner/libhv/http/WebSocketChannel.cpp @@ -0,0 +1,81 @@ +#include "WebSocketChannel.h" + +namespace hv { + +int WebSocketChannel::send(const char* buf, int len, enum ws_opcode opcode /* = WS_OPCODE_BINARY */, bool fin /* = true */) { + int fragment = 0xFFFF; // 65535 + if (len > fragment) { + return send(buf, len, fragment, opcode); + } + std::lock_guard locker(mutex_); + return sendFrame(buf, len, opcode, fin); +} + +/* + * websocket fragment + * lock -> + * sendFrame(p, fragment, opcode, false) -> + * sendFrame(p, fragment, WS_OPCODE_CONTINUE, false) -> + * ... -> + * sendFrame(p, remain, WS_OPCODE_CONTINUE, true) + * unlock + * + */ +int WebSocketChannel::send(const char* buf, int len, int fragment, enum ws_opcode opcode /* = WS_OPCODE_BINARY */) { + std::lock_guard locker(mutex_); + if (len <= fragment) { + return sendFrame(buf, len, opcode, true); + } + + // first fragment + int nsend = sendFrame(buf, fragment, opcode, false); + if (nsend < 0) return nsend; + + const char* p = buf + fragment; + int remain = len - fragment; + while (remain > fragment) { + nsend = sendFrame(p, fragment, WS_OPCODE_CONTINUE, false); + if (nsend < 0) return nsend; + p += fragment; + remain -= fragment; + } + + // last fragment + nsend = sendFrame(p, remain, WS_OPCODE_CONTINUE, true); + if (nsend < 0) return nsend; + + return len; +} + +int WebSocketChannel::sendPing() { + std::lock_guard locker(mutex_); + if (type == WS_CLIENT) { + return write(WS_CLIENT_PING_FRAME, WS_CLIENT_MIN_FRAME_SIZE); + } + return write(WS_SERVER_PING_FRAME, WS_SERVER_MIN_FRAME_SIZE); +} + +int WebSocketChannel::sendPong() { + std::lock_guard locker(mutex_); + if (type == WS_CLIENT) { + return write(WS_CLIENT_PONG_FRAME, WS_CLIENT_MIN_FRAME_SIZE); + } + return write(WS_SERVER_PONG_FRAME, WS_SERVER_MIN_FRAME_SIZE); +} + +int WebSocketChannel::sendFrame(const char* buf, int len, enum ws_opcode opcode /* = WS_OPCODE_BINARY */, bool fin /* = true */) { + bool has_mask = false; + char mask[4] = {0}; + if (type == WS_CLIENT) { + *(int*)mask = rand(); + has_mask = true; + } + int frame_size = ws_calc_frame_size(len, has_mask); + if (sendbuf_.len < (size_t)frame_size) { + sendbuf_.resize(ceil2e(frame_size)); + } + ws_build_frame(sendbuf_.base, buf, len, mask, has_mask, opcode, fin); + return write(sendbuf_.base, frame_size); +} + +} diff --git a/3rdPartner/libhv/http/WebSocketChannel.h b/3rdPartner/libhv/http/WebSocketChannel.h new file mode 100644 index 0000000..b0a8a97 --- /dev/null +++ b/3rdPartner/libhv/http/WebSocketChannel.h @@ -0,0 +1,55 @@ +#ifndef HV_WEBSOCKET_CHANNEL_H_ +#define HV_WEBSOCKET_CHANNEL_H_ + +#include + +#include "Channel.h" + +#include "wsdef.h" +#include "hmath.h" + +namespace hv { + +class HV_EXPORT WebSocketChannel : public SocketChannel { +public: + ws_session_type type; + WebSocketChannel(hio_t* io, ws_session_type type = WS_CLIENT) + : SocketChannel(io) + , type(type) + , opcode(WS_OPCODE_CLOSE) + {} + ~WebSocketChannel() {} + + // isConnected, send, close + + int send(const std::string& msg, enum ws_opcode opcode = WS_OPCODE_TEXT, bool fin = true) { + return send(msg.c_str(), msg.size(), opcode, fin); + } + + int send(const char* buf, int len, enum ws_opcode opcode = WS_OPCODE_BINARY, bool fin = true); + + // websocket fragment + int send(const char* buf, int len, int fragment, enum ws_opcode opcode = WS_OPCODE_BINARY); + + int sendPing(); + int sendPong(); + + int close() { + return SocketChannel::close(type == WS_SERVER); + } + +protected: + int sendFrame(const char* buf, int len, enum ws_opcode opcode = WS_OPCODE_BINARY, bool fin = true); + +public: + enum ws_opcode opcode; +private: + Buffer sendbuf_; + std::mutex mutex_; +}; + +} + +typedef std::shared_ptr WebSocketChannelPtr; + +#endif // HV_WEBSOCKET_CHANNEL_H_ diff --git a/3rdPartner/libhv/http/WebSocketParser.cpp b/3rdPartner/libhv/http/WebSocketParser.cpp new file mode 100644 index 0000000..e655a56 --- /dev/null +++ b/3rdPartner/libhv/http/WebSocketParser.cpp @@ -0,0 +1,75 @@ +#include "WebSocketParser.h" + +#include "websocket_parser.h" +#include "hdef.h" + +#define MAX_PAYLOAD_LENGTH (1 << 24) // 16M + +static int on_frame_header(websocket_parser* parser) { + WebSocketParser* wp = (WebSocketParser*)parser->data; + int opcode = parser->flags & WS_OP_MASK; + // printf("on_frame_header opcode=%d\n", opcode); + if (opcode != WS_OP_CONTINUE) { + wp->opcode = opcode; + } + int length = parser->length; + int reserve_length = MIN(length + 1, MAX_PAYLOAD_LENGTH); + if (reserve_length > wp->message.capacity()) { + wp->message.reserve(reserve_length); + } + if (wp->state == WS_FRAME_BEGIN || + wp->state == WS_FRAME_FIN) { + wp->message.clear(); + } + wp->state = WS_FRAME_HEADER; + return 0; +} + +static int on_frame_body(websocket_parser* parser, const char * at, size_t length) { + // printf("on_frame_body length=%d\n", (int)length); + WebSocketParser* wp = (WebSocketParser*)parser->data; + wp->state = WS_FRAME_BODY; + if (wp->parser->flags & WS_HAS_MASK) { + websocket_parser_decode((char*)at, at, length, wp->parser); + } + wp->message.append(at, length); + return 0; +} + +static int on_frame_end(websocket_parser* parser) { + // printf("on_frame_end\n"); + WebSocketParser* wp = (WebSocketParser*)parser->data; + wp->state = WS_FRAME_END; + if (wp->parser->flags & WS_FIN) { + wp->state = WS_FRAME_FIN; + if (wp->onMessage) { + wp->onMessage(wp->opcode, wp->message); + } + } + return 0; +} + +static websocket_parser_settings cbs = { + on_frame_header, + on_frame_body, + on_frame_end +}; + +WebSocketParser::WebSocketParser() { + parser = (websocket_parser*)malloc(sizeof(websocket_parser)); + websocket_parser_init(parser); + parser->data = this; + state = WS_FRAME_BEGIN; + opcode = WS_OP_CLOSE; +} + +WebSocketParser::~WebSocketParser() { + if (parser) { + free(parser); + parser = NULL; + } +} + +int WebSocketParser::FeedRecvData(const char* data, size_t len) { + return websocket_parser_execute(parser, &cbs, data, len); +} diff --git a/3rdPartner/libhv/http/WebSocketParser.h b/3rdPartner/libhv/http/WebSocketParser.h new file mode 100644 index 0000000..c551550 --- /dev/null +++ b/3rdPartner/libhv/http/WebSocketParser.h @@ -0,0 +1,35 @@ +#ifndef HV_WEBSOCKET_PARSER_H_ +#define HV_WEBSOCKET_PARSER_H_ + +#include "hexport.h" + +#include +#include +#include + +enum websocket_parser_state { + WS_FRAME_BEGIN, + WS_FRAME_HEADER, + WS_FRAME_BODY, + WS_FRAME_END, + WS_FRAME_FIN, +}; + +struct websocket_parser; +class HV_EXPORT WebSocketParser { +public: + websocket_parser* parser; + websocket_parser_state state; + int opcode; + std::string message; + std::function onMessage; + + WebSocketParser(); + ~WebSocketParser(); + + int FeedRecvData(const char* data, size_t len); +}; + +typedef std::shared_ptr WebSocketParserPtr; + +#endif // HV_WEBSOCKET_PARSER_H_ diff --git a/3rdPartner/libhv/http/client/AsyncHttpClient.cpp b/3rdPartner/libhv/http/client/AsyncHttpClient.cpp new file mode 100644 index 0000000..f20d7cc --- /dev/null +++ b/3rdPartner/libhv/http/client/AsyncHttpClient.cpp @@ -0,0 +1,225 @@ +#include "AsyncHttpClient.h" + +namespace hv { + +int AsyncHttpClient::send(const HttpRequestPtr& req, HttpResponseCallback resp_cb) { + hloop_t* loop = EventLoopThread::hloop(); + if (loop == NULL) return -1; + auto task = std::make_shared(); + task->req = req; + task->cb = std::move(resp_cb); + task->start_time = hloop_now_hrtime(loop); + if (req->retry_count > 0 && req->retry_delay > 0) { + req->retry_count = MIN(req->retry_count, req->timeout * 1000 / req->retry_delay - 1); + } + return send(task); +} + +// createsocket => startConnect => +// onconnect => sendRequest => startRead => +// onread => HttpParser => resp_cb +int AsyncHttpClient::doTask(const HttpClientTaskPtr& task) { + const HttpRequestPtr& req = task->req; + if (req->cancel) { + return -1; + } + + // queueInLoop timeout? + uint64_t now_hrtime = hloop_now_hrtime(EventLoopThread::hloop()); + int elapsed_ms = (now_hrtime - task->start_time) / 1000; + int timeout_ms = req->timeout * 1000; + if (timeout_ms > 0 && elapsed_ms >= timeout_ms) { + hlogw("%s queueInLoop timeout!", req->url.c_str()); + return -10; + } + + req->ParseUrl(); + sockaddr_u peeraddr; + memset(&peeraddr, 0, sizeof(peeraddr)); + const char* host = req->host.c_str(); + int ret = sockaddr_set_ipport(&peeraddr, host, req->port); + if (ret != 0) { + hloge("unknown host %s", host); + return -20; + } + + int connfd = -1; + // first get from conn_pools + char strAddr[SOCKADDR_STRLEN] = {0}; + SOCKADDR_STR(&peeraddr, strAddr); + auto iter = conn_pools.find(strAddr); + if (iter != conn_pools.end()) { + // hlogd("get from conn_pools"); + iter->second.get(connfd); + } + + if (connfd < 0) { + // create socket + connfd = socket(peeraddr.sa.sa_family, SOCK_STREAM, 0); + if (connfd < 0) { + perror("socket"); + return -30; + } + hio_t* connio = hio_get(EventLoopThread::hloop(), connfd); + assert(connio != NULL); + hio_set_peeraddr(connio, &peeraddr.sa, sockaddr_len(&peeraddr)); + addChannel(connio); + // https + if (req->IsHttps() && !req->IsProxy()) { + hio_enable_ssl(connio); + if (!is_ipaddr(host)) { + hio_set_hostname(connio, host); + } + } + } + + const SocketChannelPtr& channel = getChannel(connfd); + assert(channel != NULL); + HttpClientContext* ctx = channel->getContext(); + ctx->task = task; + channel->onconnect = [&channel]() { + sendRequest(channel); + }; + channel->onread = [this, &channel](Buffer* buf) { + HttpClientContext* ctx = channel->getContext(); + if (ctx->task == NULL) return; + if (ctx->task->req->cancel) { + channel->close(); + return; + } + const char* data = (const char*)buf->data(); + int len = buf->size(); + int nparse = ctx->parser->FeedRecvData(data, len); + if (nparse != len) { + ctx->errorCallback(); + channel->close(); + return; + } + if (ctx->parser->IsComplete()) { + auto& req = ctx->task->req; + auto& resp = ctx->resp; + bool keepalive = req->IsKeepAlive() && resp->IsKeepAlive(); + if (req->redirect && HTTP_STATUS_IS_REDIRECT(resp->status_code)) { + std::string location = resp->headers["Location"]; + if (!location.empty()) { + hlogi("redirect %s => %s", req->url.c_str(), location.c_str()); + req->url = location; + req->ParseUrl(); + req->headers["Host"] = req->host; + resp->Reset(); + send(ctx->task); + // NOTE: detatch from original channel->context + ctx->cancelTask(); + } + } else { + ctx->successCallback(); + } + if (keepalive) { + // NOTE: add into conn_pools to reuse + // hlogd("add into conn_pools"); + conn_pools[channel->peeraddr()].add(channel->fd()); + } else { + channel->close(); + } + } + }; + channel->onclose = [this, &channel]() { + HttpClientContext* ctx = channel->getContext(); + // NOTE: remove from conn_pools + // hlogd("remove from conn_pools"); + auto iter = conn_pools.find(channel->peeraddr()); + if (iter != conn_pools.end()) { + iter->second.remove(channel->fd()); + } + + const HttpClientTaskPtr& task = ctx->task; + if (task) { + if (ctx->parser && + ctx->parser->IsEof()) { + ctx->successCallback(); + } + else if (task->req && + task->req->cancel == 0 && + task->req->retry_count-- > 0) { + if (task->req->retry_delay > 0) { + // try again after delay + setTimeout(task->req->retry_delay, [this, task](TimerID timerID){ + hlogi("retry %s %s", http_method_str(task->req->method), task->req->url.c_str()); + sendInLoop(task); + }); + } else { + send(task); + } + } + else { + ctx->errorCallback(); + } + } + + removeChannel(channel); + }; + + // timer + if (timeout_ms > 0) { + ctx->timerID = setTimeout(timeout_ms - elapsed_ms, [&channel](TimerID timerID){ + HttpClientContext* ctx = channel->getContext(); + if (ctx && ctx->task) { + hlogw("%s timeout!", ctx->task->req->url.c_str()); + } + if (channel) { + channel->close(); + } + }); + } + + if (channel->isConnected()) { + // sendRequest + sendRequest(channel); + } else { + // startConnect + if (req->connect_timeout > 0) { + channel->setConnectTimeout(req->connect_timeout * 1000); + } + channel->startConnect(); + } + + return 0; +} + +// InitResponse => SubmitRequest => while(GetSendData) write => startRead +int AsyncHttpClient::sendRequest(const SocketChannelPtr& channel) { + HttpClientContext* ctx = (HttpClientContext*)channel->context(); + assert(ctx != NULL && ctx->task != NULL); + if (ctx->resp == NULL) { + ctx->resp = std::make_shared(); + } + HttpRequest* req = ctx->task->req.get(); + HttpResponse* resp = ctx->resp.get(); + assert(req != NULL && resp != NULL); + if (req->http_cb) resp->http_cb = std::move(req->http_cb); + + if (ctx->parser == NULL) { + ctx->parser.reset(HttpParser::New(HTTP_CLIENT, (http_version)req->http_major)); + } + ctx->parser->InitResponse(resp); + ctx->parser->SubmitRequest(req); + + char* data = NULL; + size_t len = 0; + while (ctx->parser->GetSendData(&data, &len)) { + if (req->cancel) { + channel->close(); + return -1; + } + // NOTE: ensure write buffer size is enough + if (len > (1 << 22) /* 4M */) { + channel->setMaxWriteBufsize(len); + } + channel->write(data, len); + } + channel->startRead(); + + return 0; +} + +} diff --git a/3rdPartner/libhv/http/client/AsyncHttpClient.h b/3rdPartner/libhv/http/client/AsyncHttpClient.h new file mode 100644 index 0000000..38ff4fe --- /dev/null +++ b/3rdPartner/libhv/http/client/AsyncHttpClient.h @@ -0,0 +1,164 @@ +#ifndef HV_ASYNC_HTTP_CLIENT_H_ +#define HV_ASYNC_HTTP_CLIENT_H_ + +#include +#include + +#include "EventLoopThread.h" +#include "Channel.h" + +#include "HttpMessage.h" +#include "HttpParser.h" + +namespace hv { + +template +class ConnPool { +public: + int size() { + return conns_.size(); + } + + bool get(Conn& conn) { + if (conns_.empty()) return false; + conn = conns_.front(); + conns_.pop_front(); + return true; + } + + bool add(const Conn& conn) { + conns_.push_back(conn); + return true; + } + + bool remove(const Conn& conn) { + auto iter = conns_.begin(); + while (iter != conns_.end()) { + if (*iter == conn) { + iter = conns_.erase(iter); + return true; + } else { + ++iter; + } + } + return false; + } + +private: + std::list conns_; +}; + +struct HttpClientTask { + HttpRequestPtr req; + HttpResponseCallback cb; + uint64_t start_time; +}; +typedef std::shared_ptr HttpClientTaskPtr; + +struct HttpClientContext { + HttpClientTaskPtr task; + + HttpResponsePtr resp; + HttpParserPtr parser; + TimerID timerID; + + HttpClientContext() { + timerID = INVALID_TIMER_ID; + } + + ~HttpClientContext() { + cancelTimer(); + } + + void cancelTimer() { + if (timerID != INVALID_TIMER_ID) { + killTimer(timerID); + timerID = INVALID_TIMER_ID; + } + } + + void cancelTask() { + cancelTimer(); + task = NULL; + } + + void callback() { + cancelTimer(); + if (task && task->cb) { + task->cb(resp); + } + // NOTE: task done + task = NULL; + } + + void successCallback() { + callback(); + resp = NULL; + } + + void errorCallback() { + resp = NULL; + callback(); + } +}; + +class HV_EXPORT AsyncHttpClient : private EventLoopThread { +public: + AsyncHttpClient(EventLoopPtr loop = NULL) : EventLoopThread(loop) { + if (loop == NULL) { + EventLoopThread::start(true); + } + } + ~AsyncHttpClient() { + EventLoopThread::stop(true); + } + + // thread-safe + int send(const HttpRequestPtr& req, HttpResponseCallback resp_cb); + int send(const HttpClientTaskPtr& task) { + EventLoopThread::loop()->queueInLoop(std::bind(&AsyncHttpClient::sendInLoop, this, task)); + return 0; + } + +protected: + void sendInLoop(HttpClientTaskPtr task) { + int err = doTask(task); + if (err != 0 && task->cb) { + task->cb(NULL); + } + } + int doTask(const HttpClientTaskPtr& task); + + static int sendRequest(const SocketChannelPtr& channel); + + // channel + const SocketChannelPtr& getChannel(int fd) { + return channels[fd]; + // return fd < channels.capacity() ? channels[fd] : NULL; + } + + const SocketChannelPtr& addChannel(hio_t* io) { + auto channel = std::make_shared(io); + channel->newContext(); + int fd = channel->fd(); + channels[fd] = channel; + return channels[fd]; + } + + void removeChannel(const SocketChannelPtr& channel) { + channel->deleteContext(); + int fd = channel->fd(); + channels.erase(fd); + } + +private: + // NOTE: just one loop thread, no need mutex. + // fd => SocketChannelPtr + std::map channels; + // peeraddr => ConnPool + std::map> conn_pools; +}; + +} + +#endif // HV_ASYNC_HTTP_CLIENT_H_ diff --git a/3rdPartner/libhv/http/client/HttpClient.cpp b/3rdPartner/libhv/http/client/HttpClient.cpp new file mode 100644 index 0000000..0960b68 --- /dev/null +++ b/3rdPartner/libhv/http/client/HttpClient.cpp @@ -0,0 +1,733 @@ +#include "HttpClient.h" + +#include + +#ifdef WITH_CURL +#include "curl/curl.h" +#endif + +#include "herr.h" +#include "hlog.h" +#include "htime.h" +#include "hstring.h" +#include "hsocket.h" +#include "hssl.h" +#include "HttpParser.h" + +// for async +#include "AsyncHttpClient.h" + +using namespace hv; + +struct http_client_s { + std::string host; + int port; + int https; + int timeout; // s + http_headers headers; + // http_proxy + std::string http_proxy_host; + int http_proxy_port; + // https_proxy + std::string https_proxy_host; + int https_proxy_port; + // no_proxy + StringList no_proxy_hosts; +//private: +#ifdef WITH_CURL + CURL* curl; +#endif + // for sync + int fd; + unsigned int keepalive_requests; + hssl_t ssl; + hssl_ctx_t ssl_ctx; + bool alloced_ssl_ctx; + HttpParserPtr parser; + // for async + std::mutex mutex_; + std::shared_ptr async_client_; + + http_client_s() { + host = LOCALHOST; + port = DEFAULT_HTTP_PORT; + https = 0; + timeout = DEFAULT_HTTP_TIMEOUT; + http_proxy_port = DEFAULT_HTTP_PORT; + https_proxy_port = DEFAULT_HTTP_PORT; +#ifdef WITH_CURL + curl = NULL; +#endif + fd = -1; + keepalive_requests = 0; + ssl = NULL; + ssl_ctx = NULL; + alloced_ssl_ctx = false; + } + + ~http_client_s() { + Close(); + if (ssl_ctx && alloced_ssl_ctx) { + hssl_ctx_free(ssl_ctx); + ssl_ctx = NULL; + } + } + + void Close() { +#ifdef WITH_CURL + if (curl) { + curl_easy_cleanup(curl); + curl = NULL; + } +#endif + if (ssl) { + hssl_free(ssl); + ssl = NULL; + } + SAFE_CLOSESOCKET(fd); + } +}; + +http_client_t* http_client_new(const char* host, int port, int https) { + http_client_t* cli = new http_client_t; + if (host) cli->host = host; + cli->port = port; + cli->https = https; + cli->headers["Connection"] = "keep-alive"; + return cli; +} + +int http_client_del(http_client_t* cli) { + if (cli == NULL) return 0; + delete cli; + return 0; +} + +int http_client_set_timeout(http_client_t* cli, int timeout) { + cli->timeout = timeout; + return 0; +} + +int http_client_set_ssl_ctx(http_client_t* cli, hssl_ctx_t ssl_ctx) { + cli->ssl_ctx = ssl_ctx; + return 0; +} + +int http_client_new_ssl_ctx(http_client_t* cli, hssl_ctx_opt_t* opt) { + opt->endpoint = HSSL_CLIENT; + hssl_ctx_t ssl_ctx = hssl_ctx_new(opt); + if (ssl_ctx == NULL) return ERR_NEW_SSL_CTX; + cli->alloced_ssl_ctx = true; + return http_client_set_ssl_ctx(cli, ssl_ctx); +} + +int http_client_clear_headers(http_client_t* cli) { + cli->headers.clear(); + return 0; +} + +int http_client_set_header(http_client_t* cli, const char* key, const char* value) { + cli->headers[key] = value; + return 0; +} + +int http_client_del_header(http_client_t* cli, const char* key) { + auto iter = cli->headers.find(key); + if (iter != cli->headers.end()) { + cli->headers.erase(iter); + } + return 0; +} + +const char* http_client_get_header(http_client_t* cli, const char* key) { + auto iter = cli->headers.find(key); + if (iter != cli->headers.end()) { + return iter->second.c_str(); + } + return NULL; +} + +int http_client_set_http_proxy(http_client_t* cli, const char* host, int port) { + cli->http_proxy_host = host; + cli->http_proxy_port = port; + return 0; +} + +int http_client_set_https_proxy(http_client_t* cli, const char* host, int port) { + cli->https_proxy_host = host; + cli->https_proxy_port = port; + return 0; +} + +int http_client_add_no_proxy(http_client_t* cli, const char* host) { + cli->no_proxy_hosts.push_back(host); + return 0; +} + +static int http_client_make_request(http_client_t* cli, HttpRequest* req) { + if (req->url.empty() || *req->url.c_str() == '/') { + req->scheme = cli->https ? "https" : "http"; + req->host = cli->host; + req->port = cli->port; + } + req->ParseUrl(); + + bool https = req->IsHttps(); + bool use_proxy = https ? (!cli->https_proxy_host.empty()) : (!cli->http_proxy_host.empty()); + if (use_proxy) { + if (req->host == "127.0.0.1" || req->host == "localhost") { + use_proxy = false; + } + } + if (use_proxy) { + for (const auto& host : cli->no_proxy_hosts) { + if (req->host == host) { + use_proxy = false; + break; + } + } + } + if (use_proxy) { + req->SetProxy(https ? cli->https_proxy_host.c_str() : cli->http_proxy_host.c_str(), + https ? cli->https_proxy_port : cli->http_proxy_port); + } + + if (req->timeout == 0) { + req->timeout = cli->timeout; + } + + for (const auto& pair : cli->headers) { + if (req->headers.find(pair.first) == req->headers.end()) { + req->headers.insert(pair); + } + } + + return 0; +} + +int http_client_connect(http_client_t* cli, const char* host, int port, int https, int timeout) { + cli->Close(); + int blocktime = DEFAULT_CONNECT_TIMEOUT; + if (timeout > 0) { + blocktime = MIN(timeout*1000, blocktime); + } + int connfd = ConnectTimeout(host, port, blocktime); + if (connfd < 0) { + hloge("connect %s:%d failed!", host, port); + return connfd; + } + tcp_nodelay(connfd, 1); + + if (https && cli->ssl == NULL) { + // cli->ssl_ctx > g_ssl_ctx > hssl_ctx_new + hssl_ctx_t ssl_ctx = NULL; + if (cli->ssl_ctx) { + ssl_ctx = cli->ssl_ctx; + } else if (g_ssl_ctx) { + ssl_ctx = g_ssl_ctx; + } else { + cli->ssl_ctx = ssl_ctx = hssl_ctx_new(NULL); + cli->alloced_ssl_ctx = true; + } + if (ssl_ctx == NULL) { + closesocket(connfd); + return NABS(ERR_NEW_SSL_CTX); + } + cli->ssl = hssl_new(ssl_ctx, connfd); + if (cli->ssl == NULL) { + closesocket(connfd); + return NABS(ERR_NEW_SSL); + } + if (!is_ipaddr(host)) { + hssl_set_sni_hostname(cli->ssl, host); + } + so_rcvtimeo(connfd, blocktime); + int ret = hssl_connect(cli->ssl); + if (ret != 0) { + fprintf(stderr, "* ssl handshake failed: %d\n", ret); + hloge("ssl handshake failed: %d", ret); + hssl_free(cli->ssl); + cli->ssl = NULL; + closesocket(connfd); + return NABS(ret); + } + } + + cli->fd = connfd; + cli->keepalive_requests = 0; + return connfd; +} + +int http_client_close(http_client_t* cli) { + if (cli == NULL) return 0; + cli->Close(); + return 0; +} + +int http_client_send_data(http_client_t* cli, const char* data, int size) { + if (!cli || !data || size <= 0) return -1; + + if (cli->ssl) { + return hssl_write(cli->ssl, data, size); + } + + return send(cli->fd, data, size, 0); +} + +int http_client_recv_data(http_client_t* cli, char* data, int size) { + if (!cli || !data || size <= 0) return -1; + + if (cli->ssl) { + return hssl_read(cli->ssl, data, size); + } + + return recv(cli->fd, data, size, 0); +} + +static int http_client_exec(http_client_t* cli, HttpRequest* req, HttpResponse* resp) { + // connect -> send -> recv -> http_parser + int err = 0; + int connfd = cli->fd; + bool https = req->IsHttps() && !req->IsProxy(); + bool keepalive = true; + + time_t connect_timeout = MIN(req->connect_timeout, req->timeout); + time_t timeout_ms = req->timeout * 1000; + time_t start_time = gettick_ms(); + time_t cur_time = start_time, left_time = INFINITE; + +#define CHECK_TIMEOUT \ + do { \ + if (timeout_ms > 0) { \ + cur_time = gettick_ms(); \ + if (cur_time - start_time >= timeout_ms) { \ + goto timeout; \ + } \ + left_time = timeout_ms - (cur_time - start_time); \ + } \ + } while(0); + + uint32_t retry_count = req->retry_count; + if (cli->keepalive_requests > 0 && retry_count == 0) { + // maybe keep-alive timeout, retry at least once + retry_count = 1; + } + + if (cli->parser == NULL) { + cli->parser = HttpParserPtr(HttpParser::New(HTTP_CLIENT, (http_version)req->http_major)); + if (cli->parser == NULL) { + hloge("New HttpParser failed!"); + return ERR_NULL_POINTER; + } + } + + if (connfd <= 0 || cli->host != req->host || cli->port != req->port) { + cli->host = req->host; + cli->port = req->port; +connect: + connfd = http_client_connect(cli, req->host.c_str(), req->port, https, connect_timeout); + if (connfd < 0) { + return connfd; + } + } + + cli->parser->SubmitRequest(req); + char recvbuf[1024] = {0}; + int total_nsend, nsend, nrecv; + total_nsend = nsend = nrecv = 0; +send: + char* data = NULL; + size_t len = 0; + while (cli->parser->GetSendData(&data, &len)) { + total_nsend = 0; + while (total_nsend < len) { + CHECK_TIMEOUT + if (left_time != INFINITE) { + so_sndtimeo(cli->fd, left_time); + } + if (req->cancel) goto disconnect; + nsend = http_client_send_data(cli, data + total_nsend, len - total_nsend); + if (req->cancel) goto disconnect; + if (nsend <= 0) { + CHECK_TIMEOUT + err = socket_errno(); + if (err == EINTR) continue; + if (retry_count-- > 0 && left_time > req->retry_delay + connect_timeout * 1000) { + err = 0; + if (req->retry_delay > 0) hv_msleep(req->retry_delay); + goto connect; + } + goto disconnect; + } + total_nsend += nsend; + } + } + if (resp == NULL) return 0; + cli->parser->InitResponse(resp); +recv: + do { + CHECK_TIMEOUT + if (left_time != INFINITE) { + so_rcvtimeo(cli->fd, left_time); + } + if (req->cancel) goto disconnect; + nrecv = http_client_recv_data(cli, recvbuf, sizeof(recvbuf)); + if (req->cancel) goto disconnect; + if (nrecv <= 0) { + CHECK_TIMEOUT + err = socket_errno(); + if (err == EINTR) continue; + if (cli->parser->IsEof()) { + err = 0; + goto disconnect; + } + if (retry_count-- > 0 && left_time > req->retry_delay + connect_timeout * 1000) { + err = 0; + if (req->retry_delay > 0) hv_msleep(req->retry_delay); + goto connect; + } + goto disconnect; + } + int nparse = cli->parser->FeedRecvData(recvbuf, nrecv); + if (nparse != nrecv) { + return ERR_PARSE; + } + } while(!cli->parser->IsComplete()); + + keepalive = req->IsKeepAlive() && resp->IsKeepAlive(); + if (keepalive) { + ++cli->keepalive_requests; + } else { + cli->Close(); + } + return 0; +timeout: + err = ERR_TASK_TIMEOUT; +disconnect: + cli->Close(); + return err; +} + +int http_client_send_header(http_client_t* cli, HttpRequest* req) { + if (!cli || !req) return ERR_NULL_POINTER; + + http_client_make_request(cli, req); + + return http_client_exec(cli, req, NULL); +} + +int http_client_recv_response(http_client_t* cli, HttpResponse* resp) { + if (!cli || !resp) return ERR_NULL_POINTER; + if (!cli->parser) { + hloge("Call http_client_send_header first!"); + return ERR_NULL_POINTER; + } + + char recvbuf[1024] = {0}; + cli->parser->InitResponse(resp); + + do { + int nrecv = http_client_recv_data(cli, recvbuf, sizeof(recvbuf)); + if (nrecv <= 0) { + int err = socket_errno(); + if (err == EINTR) continue; + cli->Close(); + return err; + } + int nparse = cli->parser->FeedRecvData(recvbuf, nrecv); + if (nparse != nrecv) { + return ERR_PARSE; + } + } while(!cli->parser->IsComplete()); + + return 0; +} + +#ifdef WITH_CURL +static size_t s_header_cb(char* buf, size_t size, size_t cnt, void* userdata) { + if (buf == NULL || userdata == NULL) return 0; + size_t len = size * cnt; + std::string str(buf, len); + HttpResponse* resp = (HttpResponse*)userdata; + std::string::size_type pos = str.find_first_of(':'); + if (pos == std::string::npos) { + if (strncmp(buf, "HTTP/", 5) == 0) { + // status line + //hlogd("%s", buf); + int http_major = 1, http_minor = 1, status_code = 200; + if (buf[5] == '1') { + // HTTP/1.1 200 OK\r\n + sscanf(buf, "HTTP/%d.%d %d", &http_major, &http_minor, &status_code); + } + else if (buf[5] == '2') { + // HTTP/2 200\r\n + sscanf(buf, "HTTP/%d %d", &http_major, &status_code); + http_minor = 0; + } + resp->http_major = http_major; + resp->http_minor = http_minor; + resp->status_code = (http_status)status_code; + if (resp->http_cb) { + resp->http_cb(resp, HP_MESSAGE_BEGIN, NULL, 0); + } + } + } + else { + // headers + std::string key = trim(str.substr(0, pos)); + std::string value = trim(str.substr(pos+1)); + resp->headers[key] = value; + } + return len; +} + +static size_t s_body_cb(char* buf, size_t size, size_t cnt, void *userdata) { + if (buf == NULL || userdata == NULL) return 0; + size_t len = size * cnt; + HttpMessage* resp = (HttpMessage*)userdata; + if (resp->http_cb) { + if (resp->content == NULL && resp->content_length == 0) { + resp->content = buf; + resp->content_length = len; + resp->http_cb(resp, HP_HEADERS_COMPLETE, NULL, 0); + } + resp->http_cb(resp, HP_BODY, buf, len); + } else { + resp->body.append(buf, len); + } + return len; +} + +static int http_client_exec_curl(http_client_t* cli, HttpRequest* req, HttpResponse* resp) { + if (cli->curl == NULL) { + cli->curl = curl_easy_init(); + } + CURL* curl = cli->curl; + + // proxy + if (req->IsProxy()) { + curl_easy_setopt(curl, CURLOPT_PROXY, req->host.c_str()); + curl_easy_setopt(curl, CURLOPT_PROXYPORT, req->port); + } + + // SSL + if (req->IsHttps()) { + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); + } + + // http2 + if (req->http_major == 2) { +#if LIBCURL_VERSION_NUM < 0x073100 // 7.49.0 + curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_2_0); +#else + // No Connection: Upgrade + curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE); +#endif + } + + // TCP_NODELAY + curl_easy_setopt(curl, CURLOPT_TCP_NODELAY, 1); + + // method + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, http_method_str(req->method)); + + // url + req->DumpUrl(); + curl_easy_setopt(curl, CURLOPT_URL, req->url.c_str()); + //hlogd("%s %s HTTP/%d.%d", http_method_str(req->method), req->url.c_str(), req->http_major, req->http_minor); + + // headers + req->FillContentType(); + struct curl_slist *headers = NULL; + for (auto& pair : req->headers) { + std::string header = pair.first; + header += ": "; + header += pair.second; + headers = curl_slist_append(headers, header.c_str()); + } + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + + // body + //struct curl_httppost* httppost = NULL; + //struct curl_httppost* lastpost = NULL; + if (req->body.size() == 0) { + req->DumpBody(); + /* + if (req->body.size() == 0 && + req->content_type == MULTIPART_FORM_DATA) { + for (auto& pair : req->mp) { + if (pair.second.filename.size() != 0) { + curl_formadd(&httppost, &lastpost, + CURLFORM_COPYNAME, pair.first.c_str(), + CURLFORM_FILE, pair.second.filename.c_str(), + CURLFORM_END); + } + else if (pair.second.content.size() != 0) { + curl_formadd(&httppost, &lastpost, + CURLFORM_COPYNAME, pair.first.c_str(), + CURLFORM_COPYCONTENTS, pair.second.content.c_str(), + CURLFORM_END); + } + } + if (httppost) { + curl_easy_setopt(curl, CURLOPT_HTTPPOST, httppost); + } + } + */ + } + if (req->body.size() != 0) { + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req->body.c_str()); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, req->body.size()); + } + + if (req->connect_timeout > 0) { + curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, req->connect_timeout); + } + if (req->timeout > 0) { + curl_easy_setopt(curl, CURLOPT_TIMEOUT, req->timeout); + } + + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, s_body_cb); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); + + curl_easy_setopt(curl, CURLOPT_HEADER, 0); + curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, s_header_cb); + curl_easy_setopt(curl, CURLOPT_HEADERDATA, resp); + + int ret = curl_easy_perform(curl); + /* + if (ret != 0) { + hloge("curl error: %d: %s", ret, curl_easy_strerror((CURLcode)ret)); + } + if (resp->body.length() != 0) { + hlogd("[Response]\n%s", resp->body.c_str()); + } + double total_time, name_time, conn_time, pre_time; + curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time); + curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &name_time); + curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &conn_time); + curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, &pre_time); + hlogd("TIME_INFO: %lf,%lf,%lf,%lf", total_time, name_time, conn_time, pre_time); + */ + + if (headers) { + curl_slist_free_all(headers); + } + /* + if (httppost) { + curl_formfree(httppost); + } + */ + + if (resp->http_cb) { + resp->http_cb(resp, HP_MESSAGE_COMPLETE, NULL, 0); + } + + return ret; +} + +const char* http_client_strerror(int errcode) { + return curl_easy_strerror((CURLcode)errcode); +} + +#else + +const char* http_client_strerror(int errcode) { + return socket_strerror(errcode); +} + +#endif + +static int http_client_redirect(HttpRequest* req, HttpResponse* resp) { + std::string location = resp->headers["Location"]; + if (!location.empty()) { + hlogi("redirect %s => %s", req->url.c_str(), location.c_str()); + req->url = location; + req->ParseUrl(); + req->headers["Host"] = req->host; + resp->Reset(); + return http_client_send(req, resp); + } + return 0; +} + +int http_client_send(http_client_t* cli, HttpRequest* req, HttpResponse* resp) { + if (!cli || !req || !resp) return ERR_NULL_POINTER; + + http_client_make_request(cli, req); + + if (req->http_cb) resp->http_cb = std::move(req->http_cb); + +#if WITH_CURL + int ret = http_client_exec_curl(cli, req, resp); +#else + int ret = http_client_exec(cli, req, resp); +#endif + if (ret != 0) return ret; + + // redirect + if (req->redirect && HTTP_STATUS_IS_REDIRECT(resp->status_code)) { + return http_client_redirect(req, resp); + } + return 0; +} + +int http_client_send(HttpRequest* req, HttpResponse* resp) { + if (!req || !resp) return ERR_NULL_POINTER; + + http_client_t cli; + return http_client_send(&cli, req, resp); +} + +// below for async +static int http_client_exec_async(http_client_t* cli, HttpRequestPtr req, HttpResponseCallback resp_cb) { + if (cli->async_client_ == NULL) { + cli->mutex_.lock(); + if (cli->async_client_ == NULL) { + cli->async_client_ = std::make_shared(); + } + cli->mutex_.unlock(); + } + + return cli->async_client_->send(req, std::move(resp_cb)); +} + +int http_client_send_async(http_client_t* cli, HttpRequestPtr req, HttpResponseCallback resp_cb) { + if (!cli || !req) return ERR_NULL_POINTER; + http_client_make_request(cli, req.get()); + return http_client_exec_async(cli, req, std::move(resp_cb)); +} + +static http_client_t* s_async_http_client = NULL; +static void hv_destroy_default_async_http_client() { + hlogi("destory default http async client"); + if (s_async_http_client) { + http_client_del(s_async_http_client); + s_async_http_client = NULL; + } +} +static http_client_t* hv_default_async_http_client() { + static std::mutex s_mutex; + if (s_async_http_client == NULL) { + s_mutex.lock(); + if (s_async_http_client == NULL) { + hlogi("create default http async client"); + s_async_http_client = http_client_new(); + // NOTE: I have No better idea + atexit(hv_destroy_default_async_http_client); + } + s_mutex.unlock(); + } + return s_async_http_client; +} + +int http_client_send_async(HttpRequestPtr req, HttpResponseCallback resp_cb) { + if (req == NULL) return ERR_NULL_POINTER; + + if (req->timeout == 0) { + req->timeout = DEFAULT_HTTP_TIMEOUT; + } + + return http_client_exec_async(hv_default_async_http_client(), req, std::move(resp_cb)); +} diff --git a/3rdPartner/libhv/http/client/HttpClient.h b/3rdPartner/libhv/http/client/HttpClient.h new file mode 100644 index 0000000..4891bb6 --- /dev/null +++ b/3rdPartner/libhv/http/client/HttpClient.h @@ -0,0 +1,171 @@ +#ifndef HV_HTTP_CLIENT_H_ +#define HV_HTTP_CLIENT_H_ + +#include "hexport.h" +#include "hssl.h" +#include "HttpMessage.h" + +/* +#include + +#include "HttpClient.h" + +int main(int argc, char* argv[]) { + HttpRequest req; + req.method = HTTP_GET; + req.url = "http://www.example.com"; + HttpResponse res; + int ret = http_client_send(&req, &res); + printf("%s\n", req.Dump(true,true).c_str()); + if (ret != 0) { + printf("* Failed:%s:%d\n", http_client_strerror(ret), ret); + } + else { + printf("%s\n", res.Dump(true,true).c_str()); + } + return ret; +} +*/ + +typedef struct http_client_s http_client_t; + +HV_EXPORT http_client_t* http_client_new(const char* host = NULL, int port = DEFAULT_HTTP_PORT, int https = 0); +HV_EXPORT int http_client_del(http_client_t* cli); +HV_EXPORT const char* http_client_strerror(int errcode); + +// timeout: s +HV_EXPORT int http_client_set_timeout(http_client_t* cli, int timeout); + +// SSL/TLS +HV_EXPORT int http_client_set_ssl_ctx(http_client_t* cli, hssl_ctx_t ssl_ctx); +// hssl_ctx_new(opt) -> http_client_set_ssl_ctx +HV_EXPORT int http_client_new_ssl_ctx(http_client_t* cli, hssl_ctx_opt_t* opt); + +// common headers +HV_EXPORT int http_client_clear_headers(http_client_t* cli); +HV_EXPORT int http_client_set_header(http_client_t* cli, const char* key, const char* value); +HV_EXPORT int http_client_del_header(http_client_t* cli, const char* key); +HV_EXPORT const char* http_client_get_header(http_client_t* cli, const char* key); + +// http_proxy +HV_EXPORT int http_client_set_http_proxy(http_client_t* cli, const char* host, int port); +// https_proxy +HV_EXPORT int http_client_set_https_proxy(http_client_t* cli, const char* host, int port); +// no_proxy +HV_EXPORT int http_client_add_no_proxy(http_client_t* cli, const char* host); + +// sync +HV_EXPORT int http_client_send(http_client_t* cli, HttpRequest* req, HttpResponse* resp); + +// async +// Intern will start an EventLoopThread when http_client_send_async first called, +// http_client_del will destroy the thread. +HV_EXPORT int http_client_send_async(http_client_t* cli, HttpRequestPtr req, HttpResponseCallback resp_cb = NULL); + +// top-level api +// http_client_new -> http_client_send -> http_client_del +HV_EXPORT int http_client_send(HttpRequest* req, HttpResponse* resp); +// http_client_send_async(&default_async_client, ...) +HV_EXPORT int http_client_send_async(HttpRequestPtr req, HttpResponseCallback resp_cb = NULL); + +// low-level api +// @retval >=0 connfd, <0 error +HV_EXPORT int http_client_connect(http_client_t* cli, const char* host, int port, int https, int timeout); +HV_EXPORT int http_client_send_header(http_client_t* cli, HttpRequest* req); +HV_EXPORT int http_client_send_data(http_client_t* cli, const char* data, int size); +HV_EXPORT int http_client_recv_data(http_client_t* cli, char* data, int size); +HV_EXPORT int http_client_recv_response(http_client_t* cli, HttpResponse* resp); +HV_EXPORT int http_client_close(http_client_t* cli); + +namespace hv { + +class HttpClient { +public: + HttpClient(const char* host = NULL, int port = DEFAULT_HTTP_PORT, int https = 0) { + _client = http_client_new(host, port, https); + } + + ~HttpClient() { + if (_client) { + http_client_del(_client); + _client = NULL; + } + } + + // timeout: s + int setTimeout(int timeout) { + return http_client_set_timeout(_client, timeout); + } + + // SSL/TLS + int setSslCtx(hssl_ctx_t ssl_ctx) { + return http_client_set_ssl_ctx(_client, ssl_ctx); + } + int newSslCtx(hssl_ctx_opt_t* opt) { + return http_client_new_ssl_ctx(_client, opt); + } + + // headers + int clearHeaders() { + return http_client_clear_headers(_client); + } + int setHeader(const char* key, const char* value) { + return http_client_set_header(_client, key, value); + } + int delHeader(const char* key) { + return http_client_del_header(_client, key); + } + const char* getHeader(const char* key) { + return http_client_get_header(_client, key); + } + + // http_proxy + int setHttpProxy(const char* host, int port) { + return http_client_set_http_proxy(_client, host, port); + } + // https_proxy + int setHttpsProxy(const char* host, int port) { + return http_client_set_https_proxy(_client, host, port); + } + // no_proxy + int addNoProxy(const char* host) { + return http_client_add_no_proxy(_client, host); + } + + // sync + int send(HttpRequest* req, HttpResponse* resp) { + return http_client_send(_client, req, resp); + } + + // async + int sendAsync(HttpRequestPtr req, HttpResponseCallback resp_cb = NULL) { + return http_client_send_async(_client, req, std::move(resp_cb)); + } + + // low-level api + int connect(const char* host, int port = DEFAULT_HTTP_PORT, int https = 0, int timeout = DEFAULT_HTTP_CONNECT_TIMEOUT) { + return http_client_connect(_client, host, port, https, timeout); + } + int sendHeader(HttpRequest* req) { + return http_client_send_header(_client, req); + } + int sendData(const char* data, int size) { + return http_client_send_data(_client, data, size); + } + int recvData(char* data, int size) { + return http_client_recv_data(_client, data, size); + } + int recvResponse(HttpResponse* resp) { + return http_client_recv_response(_client, resp); + } + int close() { + return http_client_close(_client); + } + +private: + http_client_t* _client; +}; + +} + +#endif // HV_HTTP_CLIENT_H_ diff --git a/3rdPartner/libhv/http/client/WebSocketClient.cpp b/3rdPartner/libhv/http/client/WebSocketClient.cpp new file mode 100644 index 0000000..492c10d --- /dev/null +++ b/3rdPartner/libhv/http/client/WebSocketClient.cpp @@ -0,0 +1,217 @@ +#include "WebSocketClient.h" + +#include "base64.h" +#include "hlog.h" + +#define DEFAULT_WS_PING_INTERVAL 3000 // ms + +namespace hv { + +WebSocketClient::WebSocketClient(EventLoopPtr loop) + : TcpClientTmpl(loop) +{ + state = WS_CLOSED; + ping_interval = DEFAULT_WS_PING_INTERVAL; + ping_cnt = 0; +} + +WebSocketClient::~WebSocketClient() { + stop(); +} + +/* + * ParseUrl => createsocket => start => + * TCP::onConnection => websocket_handshake => WS::onopen => + * TCP::onMessage => WebSocketParser => WS::onmessage => + * TCP::onConnection => WS::onclose + */ +int WebSocketClient::open(const char* _url, const http_headers& headers) { + close(); + + // ParseUrl + if (_url) { + if (strncmp(_url, "ws", 2) != 0) { + url = "ws://"; + url += _url; + } else { + url = _url; + } + } + hlogi("%s", url.c_str()); + if (!http_req_) { + http_req_ = std::make_shared(); + } + // ws => http + http_req_->url = "http" + url.substr(2, -1); + http_req_->ParseUrl(); + + int connfd = createsocket(http_req_->port, http_req_->host.c_str()); + if (connfd < 0) { + hloge("createsocket %s:%d return %d!", http_req_->host.c_str(), http_req_->port, connfd); + return connfd; + } + + // wss + bool wss = strncmp(url.c_str(), "wss", 3) == 0; + if (wss) { + withTLS(); + } + + for (auto& header : headers) { + http_req_->headers[header.first] = header.second; + } + + onConnection = [this](const WebSocketChannelPtr& channel) { + if (channel->isConnected()) { + state = CONNECTED; + // websocket_handshake + http_req_->headers["Connection"] = "Upgrade"; + http_req_->headers["Upgrade"] = "websocket"; + if (http_req_->GetHeader(SEC_WEBSOCKET_KEY).empty()) { + // generate SEC_WEBSOCKET_KEY + unsigned char rand_key[16] = {0}; + int *p = (int*)rand_key; + for (int i = 0; i < 4; ++i, ++p) { + *p = rand(); + } + char ws_key[32] = {0}; + hv_base64_encode(rand_key, 16, ws_key); + http_req_->headers[SEC_WEBSOCKET_KEY] = ws_key; + } + if (http_req_->GetHeader(SEC_WEBSOCKET_VERSION).empty()) { + http_req_->headers[SEC_WEBSOCKET_VERSION] = "13"; + } + std::string http_msg = http_req_->Dump(true, true); + // printf("%s", http_msg.c_str()); + // NOTE: not use WebSocketChannel::send + channel->write(http_msg); + state = WS_UPGRADING; + // prepare HttpParser + http_parser_.reset(HttpParser::New(HTTP_CLIENT, HTTP_V1)); + http_resp_ = std::make_shared(); + http_parser_->InitResponse(http_resp_.get()); + } else { + state = WS_CLOSED; + if (onclose) onclose(); + } + }; + onMessage = [this](const WebSocketChannelPtr& channel, Buffer* buf) { + const char* data = (const char*)buf->data(); + size_t size = buf->size(); + if (state == WS_UPGRADING) { + int nparse = http_parser_->FeedRecvData(data, size); + if (nparse != size && http_parser_->GetError()) { + hloge("http parse error!"); + channel->close(); + return; + } + data += nparse; + size -= nparse; + if (http_parser_->IsComplete()) { + if (http_resp_->status_code != HTTP_STATUS_SWITCHING_PROTOCOLS) { + // printf("websocket response:\n%s\n", http_resp_->Dump(true, true).c_str()); + if (http_req_->redirect && HTTP_STATUS_IS_REDIRECT(http_resp_->status_code)) { + std::string location = http_resp_->headers["Location"]; + if (!location.empty()) { + hlogi("redirect %s => %s", http_req_->url.c_str(), location.c_str()); + std::string ws_url = location; + if (hv::startswith(location, "http")) { + ws_url = hv::replace(location, "http", "ws"); + } + // NOTE: not triggle onclose when redirecting. + channel->onclose = NULL; + open(ws_url.c_str()); + return; + } + } + hloge("server side could not upgrade to websocket: status_code=%d", http_resp_->status_code); + channel->close(); + return; + } + std::string ws_key = http_req_->GetHeader(SEC_WEBSOCKET_KEY); + char ws_accept[32] = {0}; + ws_encode_key(ws_key.c_str(), ws_accept); + std::string ws_accept2 = http_resp_->GetHeader(SEC_WEBSOCKET_ACCEPT); + if (strcmp(ws_accept, ws_accept2.c_str()) != 0) { + hloge("Sec-WebSocket-Accept not match!"); + channel->close(); + return; + } + ws_parser_ = std::make_shared(); + // websocket_onmessage + ws_parser_->onMessage = [this, &channel](int opcode, const std::string& msg) { + channel->opcode = (enum ws_opcode)opcode; + switch (opcode) { + case WS_OPCODE_CLOSE: + channel->send(msg, WS_OPCODE_CLOSE); + channel->close(); + break; + case WS_OPCODE_PING: + { + // printf("recv ping\n"); + // printf("send pong\n"); + channel->send(msg, WS_OPCODE_PONG); + break; + } + case WS_OPCODE_PONG: + // printf("recv pong\n"); + ping_cnt = 0; + break; + case WS_OPCODE_TEXT: + case WS_OPCODE_BINARY: + if (onmessage) onmessage(msg); + break; + default: + break; + } + }; + state = WS_OPENED; + // ping + if (ping_interval > 0) { + ping_cnt = 0; + channel->setHeartbeat(ping_interval, [this](){ + auto& channel = this->channel; + if (channel == NULL) return; + if (ping_cnt++ == 3) { + hloge("websocket no pong!"); + channel->close(); + return; + } + // printf("send ping\n"); + channel->sendPing(); + }); + } + if (onopen) onopen(); + } + } + if (state == WS_OPENED && size != 0) { + int nparse = ws_parser_->FeedRecvData(data, size); + if (nparse != size) { + hloge("websocket parse error!"); + channel->close(); + return; + } + } + }; + + state = CONNECTING; + start(); + return 0; +} + +int WebSocketClient::close() { + closesocket(); + state = WS_CLOSED; + return 0; +} + +int WebSocketClient::send(const std::string& msg) { + return send(msg.c_str(), msg.size(), WS_OPCODE_TEXT); +} + +int WebSocketClient::send(const char* buf, int len, enum ws_opcode opcode) { + if (channel == NULL) return -1; + return channel->send(buf, len, opcode); +} + +} diff --git a/3rdPartner/libhv/http/client/WebSocketClient.h b/3rdPartner/libhv/http/client/WebSocketClient.h new file mode 100644 index 0000000..da0a4af --- /dev/null +++ b/3rdPartner/libhv/http/client/WebSocketClient.h @@ -0,0 +1,71 @@ +#ifndef HV_WEBSOCKET_CLIENT_H_ +#define HV_WEBSOCKET_CLIENT_H_ + +/* + * @demo examples/websocket_client_test.cpp + */ + +#include "hexport.h" + +#include "TcpClient.h" +#include "WebSocketChannel.h" + +#include "HttpParser.h" +#include "WebSocketParser.h" + +namespace hv { + +class HV_EXPORT WebSocketClient : public TcpClientTmpl { +public: + std::string url; + std::function onopen; + std::function onclose; + std::function onmessage; + // PATCH: onmessage not given opcode + enum ws_opcode opcode() { return channel ? channel->opcode : WS_OPCODE_CLOSE; } + + WebSocketClient(EventLoopPtr loop = NULL); + virtual ~WebSocketClient(); + + // url = ws://ip:port/path + // url = wss://ip:port/path + int open(const char* url, const http_headers& headers = DefaultHeaders); + int close(); + int send(const std::string& msg); + int send(const char* buf, int len, enum ws_opcode opcode = WS_OPCODE_BINARY); + + // setConnectTimeout / setPingInterval / setReconnect + void setPingInterval(int ms) { + ping_interval = ms; + } + + // NOTE: call before open + void setHttpRequest(const HttpRequestPtr& req) { + http_req_ = req; + } + + // NOTE: call when onopen + const HttpResponsePtr& getHttpResponse() { + return http_resp_; + } + +private: + enum State { + CONNECTING, + CONNECTED, + WS_UPGRADING, + WS_OPENED, + WS_CLOSED, + } state; + HttpParserPtr http_parser_; + HttpRequestPtr http_req_; + HttpResponsePtr http_resp_; + WebSocketParserPtr ws_parser_; + // ping/pong + int ping_interval; + int ping_cnt; +}; + +} + +#endif // HV_WEBSOCKET_CLIENT_H_ diff --git a/3rdPartner/libhv/http/client/axios.h b/3rdPartner/libhv/http/client/axios.h new file mode 100644 index 0000000..facd99d --- /dev/null +++ b/3rdPartner/libhv/http/client/axios.h @@ -0,0 +1,193 @@ +#ifndef HV_AXIOS_H_ +#define HV_AXIOS_H_ + +#include "json.hpp" +#include "requests.h" + +/* + * Inspired by js axios + * + * @code + +#include "axios.h" + +int main() { + const char* strReq = R"( + { + "method": "POST", + "url": "http://127.0.0.1:8080/echo", + "timeout": 10, + "params": { + "page_no": "1", + "page_size": "10" + }, + "headers": { + "Content-Type": "application/json" + }, + "body": { + "app_id": "123456", + "app_secret": "abcdefg" + } + } + )"; + + // sync + auto resp = axios::axios(strReq); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + + // async + int finished = 0; + axios::axios(strReq, [&finished](const HttpResponsePtr& resp) { + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%s\n", resp->body.c_str()); + } + finished = 1; + }); + + // wait async finished + while (!finished) hv_sleep(1); + return 0; +} + +**/ + +using nlohmann::json; +using requests::Request; +using requests::Response; +using requests::ResponseCallback; + +namespace axios { + +HV_INLINE Request newRequestFromJson(const json& jreq) { + auto req = std::make_shared(); + // url + if (jreq.contains("url")) { + req->url = jreq["url"]; + } + // params + if (jreq.contains("params")) { + req->query_params = jreq["params"].get(); + } + // headers + if (jreq.contains("headers")) { + req->headers = jreq["headers"].get(); + } + // body/data + const char* body_field = nullptr; + if (jreq.contains("body")) { + body_field = "body"; + } else if (jreq.contains("data")) { + body_field = "data"; + } + if (body_field) { + const json& jbody = jreq[body_field]; + if (jbody.is_object() || jbody.is_array()) { + req->json = jbody; + } else if (jbody.is_string()) { + req->body = jbody; + } + } + // method + if (jreq.contains("method")) { + std::string method = jreq["method"]; + req->method = http_method_enum(method.c_str()); + } else if (body_field) { + req->method = HTTP_POST; + } else { + req->method = HTTP_GET; + } + // timeout + if (jreq.contains("timeout")) { + req->timeout = jreq["timeout"]; + } + return req; +} + +HV_INLINE Request newRequestFromJsonString(const char* req_str) { + return newRequestFromJson(json::parse(req_str)); +} + +// sync +HV_INLINE Response axios(const json& jreq, http_method method = HTTP_GET, const char* url = nullptr) { + auto req = newRequestFromJson(jreq); + if (method != HTTP_GET) { + req->method = method; + } + if (url) { + req->url = url; + } + return req ? requests::request(req) : nullptr; +} + +HV_INLINE Response axios(const char* req_str, http_method method = HTTP_GET, const char* url = nullptr) { + return req_str ? axios(json::parse(req_str), method, url) + : requests::request(method, url); +} + +HV_INLINE Response head(const char* url, const json& jreq) { + return axios(jreq, HTTP_HEAD, url); +} + +HV_INLINE Response head(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_HEAD, url); +} + +HV_INLINE Response get(const char* url, const json& jreq) { + return axios(jreq, HTTP_GET, url); +} + +HV_INLINE Response get(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_GET, url); +} + +HV_INLINE Response post(const char* url, const json& jreq) { + return axios(jreq, HTTP_POST, url); +} + +HV_INLINE Response post(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_POST, url); +} + +HV_INLINE Response put(const char* url, const json& jreq) { + return axios(jreq, HTTP_PUT, url); +} + +HV_INLINE Response put(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_PUT, url); +} + +HV_INLINE Response patch(const char* url, const json& jreq) { + return axios(jreq, HTTP_PATCH, url); +} + +HV_INLINE Response patch(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_PATCH, url); +} + +HV_INLINE Response Delete(const char* url, const json& jreq) { + return axios(jreq, HTTP_DELETE, url); +} + +HV_INLINE Response Delete(const char* url, const char* req_str = nullptr) { + return axios(req_str, HTTP_DELETE, url); +} + +// async +HV_INLINE int axios(const json& jreq, ResponseCallback resp_cb) { + auto req = newRequestFromJson(jreq); + return req ? requests::async(req, std::move(resp_cb)) : -1; +} + +HV_INLINE int axios(const char* req_str, ResponseCallback resp_cb) { + return axios(json::parse(req_str), std::move(resp_cb)); +} + +} + +#endif // HV_AXIOS_H_ diff --git a/3rdPartner/libhv/http/client/requests.h b/3rdPartner/libhv/http/client/requests.h new file mode 100644 index 0000000..02c26e4 --- /dev/null +++ b/3rdPartner/libhv/http/client/requests.h @@ -0,0 +1,233 @@ +#ifndef HV_REQUESTS_H_ +#define HV_REQUESTS_H_ + +/* + * Inspired by python requests + * + * @code + +#include "requests.h" + +int main() { + auto resp = requests::get("http://127.0.0.1:8080/ping"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + resp = requests::post("http://127.0.0.1:8080/echo", "hello,world!"); + if (resp == NULL) { + printf("request failed!\n"); + } else { + printf("%d %s\r\n", resp->status_code, resp->status_message()); + printf("%s\n", resp->body.c_str()); + } + + return 0; +} + +**/ + +#include +#include "HttpClient.h" + +namespace requests { + +typedef HttpRequestPtr Request; +typedef HttpResponsePtr Response; +typedef HttpResponseCallback ResponseCallback; + +HV_INLINE Response request(Request req) { + auto resp = std::make_shared(); + int ret = http_client_send(req.get(), resp.get()); + return ret ? NULL : resp; +} + +HV_INLINE Response request(http_method method, const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders) { + auto req = std::make_shared(); + req->method = method; + req->url = url; + if (&body != &NoBody) { + req->body = body; + } + if (&headers != &DefaultHeaders) { + req->headers = headers; + } + return request(req); +} + +HV_INLINE Response head(const char* url, const http_headers& headers = DefaultHeaders) { + return request(HTTP_HEAD, url, NoBody, headers); +} + +HV_INLINE Response get(const char* url, const http_headers& headers = DefaultHeaders) { + return request(HTTP_GET, url, NoBody, headers); +} + +HV_INLINE Response post(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders) { + return request(HTTP_POST, url, body, headers); +} + +HV_INLINE Response put(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders) { + return request(HTTP_PUT, url, body, headers); +} + +HV_INLINE Response patch(const char* url, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders) { + return request(HTTP_PATCH, url, body, headers); +} + +// delete is c++ keyword, we have to replace delete with Delete. +HV_INLINE Response Delete(const char* url, const http_headers& headers = DefaultHeaders) { + return request(HTTP_DELETE, url, NoBody, headers); +} + +HV_INLINE int async(Request req, ResponseCallback resp_cb) { + return http_client_send_async(req, std::move(resp_cb)); +} + +// Sample codes for uploading and downloading files +HV_INLINE Response uploadFile(const char* url, const char* filepath, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders) { + auto req = std::make_shared(); + req->method = method; + req->url = url; + req->timeout = 600; // 10min + if (req->File(filepath) != 200) return NULL; + if (&headers != &DefaultHeaders) { + req->headers = headers; + } + return request(req); +} + +#ifndef WITHOUT_HTTP_CONTENT +HV_INLINE Response uploadFormFile(const char* url, const char* name, const char* filepath, std::map& params = hv::empty_map, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders) { + auto req = std::make_shared(); + req->method = method; + req->url = url; + req->timeout = 600; // 10min + req->content_type = MULTIPART_FORM_DATA; + req->SetFormFile(name, filepath); + for (auto& param : params) { + req->SetFormData(param.first.c_str(), param.second); + } + if (&headers != &DefaultHeaders) { + req->headers = headers; + } + return request(req); +} +#endif + +typedef std::function upload_progress_cb; +HV_INLINE Response uploadLargeFile(const char* url, const char* filepath, upload_progress_cb progress_cb = NULL, http_method method = HTTP_POST, const http_headers& headers = DefaultHeaders) { + // open file + HFile file; + int ret = file.open(filepath, "rb"); + if (ret != 0) { + return NULL; + } + + hv::HttpClient cli; + auto req = std::make_shared(); + req->method = method; + req->url = url; + req->timeout = 3600; // 1h + if (&headers != &DefaultHeaders) { + req->headers = headers; + } + + // connect + req->ParseUrl(); + int connfd = cli.connect(req->host.c_str(), req->port, req->IsHttps(), req->connect_timeout); + if (connfd < 0) { + return NULL; + } + + // send header + size_t total_bytes = file.size(filepath); + req->SetHeader("Content-Length", hv::to_string(total_bytes)); + ret = cli.sendHeader(req.get()); + if (ret != 0) { + return NULL; + } + + // send file + size_t sended_bytes = 0; + char filebuf[40960]; // 40K + int filebuflen = sizeof(filebuf); + int nread = 0, nsend = 0; + while (sended_bytes < total_bytes) { + nread = file.read(filebuf, filebuflen); + if (nread <= 0) { + return NULL; + } + nsend = cli.sendData(filebuf, nread); + if (nsend != nread) { + return NULL; + } + sended_bytes += nsend; + if (progress_cb) { + progress_cb(sended_bytes, total_bytes); + } + } + + // recv response + auto resp = std::make_shared(); + ret = cli.recvResponse(resp.get()); + if (ret != 0) { + return NULL; + } + return resp; +} + +// see examples/wget.cpp +typedef std::function download_progress_cb; +HV_INLINE size_t downloadFile(const char* url, const char* filepath, download_progress_cb progress_cb = NULL) { + // open file + std::string filepath_download(filepath); + filepath_download += ".download"; + HFile file; + int ret = file.open(filepath_download.c_str(), "wb"); + if (ret != 0) { + return 0; + } + // download + auto req = std::make_shared(); + req->method = HTTP_GET; + req->url = url; + req->timeout = 3600; // 1h + size_t content_length = 0; + size_t received_bytes = 0; + req->http_cb = [&file, &content_length, &received_bytes, &progress_cb] + (HttpMessage* resp, http_parser_state state, const char* data, size_t size) { + if (!resp->headers["Location"].empty()) return; + if (state == HP_HEADERS_COMPLETE) { + content_length = hv::from_string(resp->GetHeader("Content-Length")); + } else if (state == HP_BODY) { + if (data && size) { + // write file + file.write(data, size); + received_bytes += size; + if (progress_cb) { + progress_cb(received_bytes, content_length); + } + } + } + }; + auto resp = request(req); + file.close(); + if (resp == NULL || resp->status_code != 200) { + return 0; + } + // check filesize + if (content_length != 0 && hv_filesize(filepath_download.c_str()) != content_length) { + remove(filepath_download.c_str()); + return 0; + } + rename(filepath_download.c_str(), filepath); + return hv_filesize(filepath); +} + +} + +#endif // HV_REQUESTS_H_ diff --git a/3rdPartner/libhv/http/grpcdef.h b/3rdPartner/libhv/http/grpcdef.h new file mode 100644 index 0000000..7bbf29d --- /dev/null +++ b/3rdPartner/libhv/http/grpcdef.h @@ -0,0 +1,89 @@ +#ifndef HV_GRPC_DEF_H_ +#define HV_GRPC_DEF_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +// Length-Prefixed-Message + +// flags:1byte + length:4bytes = 5bytes +#define GRPC_MESSAGE_HDLEN 5 + +typedef struct { + unsigned char flags; + unsigned int length; +} grpc_message_hd; + +typedef struct { + unsigned char flags; + unsigned int length; + unsigned char* message; +} grpc_message; + +static inline void grpc_message_hd_pack(const grpc_message_hd* hd, unsigned char* buf) { + unsigned char* p = buf; + // flags + *p++ = hd->flags; + // hton length + unsigned int length = hd->length; + *p++ = (length >> 24) & 0xFF; + *p++ = (length >> 16) & 0xFF; + *p++ = (length >> 8) & 0xFF; + *p++ = length & 0xFF; +} + +static inline void grpc_message_hd_unpack(grpc_message_hd* hd, const unsigned char* buf) { + const unsigned char* p = buf; + // flags + hd->flags = *p++; + // ntoh length + hd->length = ((unsigned int)*p++) << 24; + hd->length |= ((unsigned int)*p++) << 16; + hd->length |= ((unsigned int)*p++) << 8; + hd->length |= *p++; +} + +// protobuf +// tag = field_num << 3 | wire_type +// varint(tag) [+ varint(length_delimited)] + value; +typedef enum { + WIRE_TYPE_VARINT = 0, + WIRE_TYPE_FIXED64 = 1, + WIRE_TYPE_LENGTH_DELIMITED = 2, + WIRE_TYPE_START_GROUP = 3, + WIRE_TYPE_END_GROUP = 4, + WIRE_TYPE_FIXED32 = 5, +} wire_type; + +typedef enum { + FIELD_TYPE_DOUBLE = 1, + FIELD_TYPE_FLOAT = 2, + FIELD_TYPE_INT64 = 3, + FIELD_TYPE_UINT64 = 4, + FIELD_TYPE_INT32 = 5, + FIELD_TYPE_FIXED64 = 6, + FIELD_TYPE_FIXED32 = 7, + FIELD_TYPE_BOOL = 8, + FIELD_TYPE_STRING = 9, + FIELD_TYPE_GROUP = 10, + FIELD_TYPE_MESSAGE = 11, + FIELD_TYPE_BYTES = 12, + FIELD_TYPE_UINT32 = 13, + FIELD_TYPE_ENUM = 14, + FIELD_TYPE_SFIXED32 = 15, + FIELD_TYPE_SFIXED64 = 16, + FIELD_TYPE_SINT32 = 17, + FIELD_TYPE_SINT64 = 18, + MAX_FIELD_TYPE = 18, +} field_type; + +#define PROTOBUF_MAKE_TAG(field_number, wire_type) ((field_number) << 3 | (wire_type)) +#define PROTOBUF_FILED_NUMBER(tag) ((tag) >> 3) +#define PROTOBUF_WIRE_TYPE(tag) ((tag) & 0x07) + +#ifdef __cplusplus +} +#endif + +#endif // HV_GRPC_DEF_H_ diff --git a/3rdPartner/libhv/http/http2def.h b/3rdPartner/libhv/http/http2def.h new file mode 100644 index 0000000..7a4d831 --- /dev/null +++ b/3rdPartner/libhv/http/http2def.h @@ -0,0 +1,86 @@ +#ifndef HV_HTTP2_DEF_H_ +#define HV_HTTP2_DEF_H_ + +#ifdef __cplusplus +extern "C" { +#endif + + +#define HTTP2_MAGIC "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" +#define HTTP2_MAGIC_LEN 24 + +// length:3bytes + type:1byte + flags:1byte + stream_id:4bytes = 9bytes +#define HTTP2_FRAME_HDLEN 9 + +#define HTTP2_UPGRADE_RESPONSE \ +"HTTP/1.1 101 Switching Protocols\r\n"\ +"Connection: Upgrade\r\n"\ +"Upgrade: h2c\r\n\r\n" + +typedef enum { + HTTP2_DATA = 0, + HTTP2_HEADERS = 0x01, + HTTP2_PRIORITY = 0x02, + HTTP2_RST_STREAM = 0x03, + HTTP2_SETTINGS = 0x04, + HTTP2_PUSH_PROMISE = 0x05, + HTTP2_PING = 0x06, + HTTP2_GOAWAY = 0x07, + HTTP2_WINDOW_UPDATE = 0x08, + HTTP2_CONTINUATION = 0x09, + HTTP2_ALTSVC = 0x0a, + HTTP2_ORIGIN = 0x0c +} http2_frame_type; + +typedef enum { + HTTP2_FLAG_NONE = 0, + HTTP2_FLAG_END_STREAM = 0x01, + HTTP2_FLAG_END_HEADERS = 0x04, + HTTP2_FLAG_PADDED = 0x08, + HTTP2_FLAG_PRIORITY = 0x20 +} http2_flag; + +typedef struct { + int length; + http2_frame_type type; + http2_flag flags; + int stream_id; +} http2_frame_hd; + +static inline void http2_frame_hd_pack(const http2_frame_hd* hd, unsigned char* buf) { + // hton + int length = hd->length; + int stream_id = hd->stream_id; + unsigned char* p = buf; + *p++ = (length >> 16) & 0xFF; + *p++ = (length >> 8) & 0xFF; + *p++ = length & 0xFF; + *p++ = (unsigned char)hd->type; + *p++ = (unsigned char)hd->flags; + *p++ = (stream_id >> 24) & 0xFF; + *p++ = (stream_id >> 16) & 0xFF; + *p++ = (stream_id >> 8) & 0xFF; + *p++ = stream_id & 0xFF; +} + +static inline void http2_frame_hd_unpack(const unsigned char* buf, http2_frame_hd* hd) { + // ntoh + const unsigned char* p = buf; + hd->length = *p++ << 16; + hd->length += *p++ << 8; + hd->length += *p++; + + hd->type = (http2_frame_type)*p++; + hd->flags = (http2_flag)*p++; + + hd->stream_id = *p++ << 24; + hd->stream_id += *p++ << 16; + hd->stream_id += *p++ << 8; + hd->stream_id += *p++; +} + +#ifdef __cplusplus +} +#endif + +#endif // HV_HTTP2_DEF_H_ diff --git a/3rdPartner/libhv/http/http_content.cpp b/3rdPartner/libhv/http/http_content.cpp new file mode 100644 index 0000000..1d358a0 --- /dev/null +++ b/3rdPartner/libhv/http/http_content.cpp @@ -0,0 +1,254 @@ +#include "http_content.h" + +#include "hurl.h" + +#include + +BEGIN_NAMESPACE_HV + +std::string dump_query_params(const QueryParams& query_params) { + std::string query_string; + for (auto& pair : query_params) { + if (query_string.size() != 0) { + query_string += '&'; + } + query_string += HUrl::escape(pair.first); + query_string += '='; + query_string += HUrl::escape(pair.second); + } + return query_string; +} + +int parse_query_params(const char* query_string, QueryParams& query_params) { + const char* p = strchr(query_string, '?'); + p = p ? p+1 : query_string; + + enum { + s_key, + s_value, + } state = s_key; + + const char* key = p; + const char* value = NULL; + int key_len = 0; + int value_len = 0; + while (*p != '\0') { + if (*p == '&') { + if (key_len /* && value_len */) { + std::string strkey = std::string(key, key_len); + std::string strvalue = std::string(value, value_len); + query_params[HUrl::unescape(strkey)] = HUrl::unescape(strvalue); + key_len = value_len = 0; + } + state = s_key; + key = p+1; + } + else if (*p == '=' && state == s_key) { + state = s_value; + value = p+1; + } + else { + state == s_key ? ++key_len : ++value_len; + } + ++p; + } + if (key_len /* && value_len */) { + std::string strkey = std::string(key, key_len); + std::string strvalue = std::string(value, value_len); + query_params[HUrl::unescape(strkey)] = HUrl::unescape(strvalue); + key_len = value_len = 0; + } + return query_params.size() == 0 ? -1 : 0; +} + +#ifndef WITHOUT_HTTP_CONTENT + +#include "hstring.h" // for split +#include "hfile.h" +#include "httpdef.h" // for http_content_type_str_by_suffix + +std::string dump_multipart(MultiPart& mp, const char* boundary) { + char c_str[256] = {0}; + std::string str; + if (mp.empty()) return str; + for (auto& pair : mp) { + str += "--"; + str += boundary; + str += "\r\n"; + str += "Content-Disposition: form-data"; + snprintf(c_str, sizeof(c_str), "; name=\"%s\"", pair.first.c_str()); + str += c_str; + auto& form = pair.second; + if (form.filename.size() != 0) { + if (form.content.size() == 0) { + HFile file; + if (file.open(form.filename.c_str(), "rb") == 0) { + file.readall(form.content); + } + } + snprintf(c_str, sizeof(c_str), "; filename=\"%s\"", hv_basename(form.filename.c_str())); + str += c_str; + const char* suffix = strrchr(form.filename.c_str(), '.'); + if (suffix) { + const char* stype = http_content_type_str_by_suffix(++suffix); + if (stype && *stype != '\0') { + str += "\r\n"; + str += "Content-Type: "; + str += stype; + } + } + } + str += "\r\n\r\n"; + str += form.content; + str += "\r\n"; + } + str += "--"; + str += boundary; + str += "--\r\n"; + return str; +} + +#include "multipart_parser.h" +enum multipart_parser_state_e { + MP_START, + MP_PART_DATA_BEGIN, + MP_HEADER_FIELD, + MP_HEADER_VALUE, + MP_HEADERS_COMPLETE, + MP_PART_DATA, + MP_PART_DATA_END, + MP_BODY_END +}; +struct multipart_parser_userdata { + MultiPart* mp; + // tmp + multipart_parser_state_e state; + std::string header_field; + std::string header_value; + std::string part_data; + std::string name; + std::string filename; + + void handle_header() { + if (header_field.size() == 0 || header_value.size() == 0) return; + if (stricmp(header_field.c_str(), "Content-Disposition") == 0) { + StringList strlist = split(header_value, ';'); + for (auto& str : strlist) { + StringList kv = split(trim(str, " "), '='); + if (kv.size() == 2) { + const char* key = kv.begin()->c_str(); + std::string value = *(kv.begin() + 1); + value = trim_pairs(value, "\"\"\'\'"); + if (strcmp(key, "name") == 0) { + name = value; + } + else if (strcmp(key, "filename") == 0) { + filename = value; + } + } + } + } + header_field.clear(); + header_value.clear(); + } + + void handle_data() { + if (name.size() != 0) { + FormData formdata; + formdata.content = part_data; + formdata.filename = filename; + (*mp)[name] = formdata; + } + name.clear(); + filename.clear(); + part_data.clear(); + } +}; +static int on_header_field(multipart_parser* parser, const char *at, size_t length) { + //printf("on_header_field:%.*s\n", (int)length, at); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->handle_header(); + userdata->state = MP_HEADER_FIELD; + userdata->header_field.append(at, length); + return 0; +} +static int on_header_value(multipart_parser* parser, const char *at, size_t length) { + //printf("on_header_value:%.*s\n", (int)length, at); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->state = MP_HEADER_VALUE; + userdata->header_value.append(at, length); + return 0; +} +static int on_part_data(multipart_parser* parser, const char *at, size_t length) { + //printf("on_part_data:%.*s\n", (int)length, at); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->state = MP_PART_DATA; + userdata->part_data.append(at, length); + return 0; +} +static int on_part_data_begin(multipart_parser* parser) { + //printf("on_part_data_begin\n"); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->state = MP_PART_DATA_BEGIN; + return 0; +} +static int on_headers_complete(multipart_parser* parser) { + //printf("on_headers_complete\n"); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->handle_header(); + userdata->state = MP_HEADERS_COMPLETE; + return 0; +} +static int on_part_data_end(multipart_parser* parser) { + //printf("on_part_data_end\n"); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->state = MP_PART_DATA_END; + userdata->handle_data(); + return 0; +} +static int on_body_end(multipart_parser* parser) { + //printf("on_body_end\n"); + multipart_parser_userdata* userdata = (multipart_parser_userdata*)multipart_parser_get_data(parser); + userdata->state = MP_BODY_END; + return 0; +} +int parse_multipart(const std::string& str, MultiPart& mp, const char* boundary) { + //printf("boundary=%s\n", boundary); + std::string __boundary("--"); + __boundary += boundary; + multipart_parser_settings settings; + settings.on_header_field = on_header_field; + settings.on_header_value = on_header_value; + settings.on_part_data = on_part_data; + settings.on_part_data_begin = on_part_data_begin; + settings.on_headers_complete = on_headers_complete; + settings.on_part_data_end = on_part_data_end; + settings.on_body_end = on_body_end; + multipart_parser* parser = multipart_parser_init(__boundary.c_str(), &settings); + multipart_parser_userdata userdata; + userdata.state = MP_START; + userdata.mp = ∓ + multipart_parser_set_data(parser, &userdata); + size_t nparse = multipart_parser_execute(parser, str.c_str(), str.size()); + multipart_parser_free(parser); + return nparse == str.size() ? 0 : -1; +} + +std::string dump_json(const hv::Json& json, int indent) { + if (json.empty()) return ""; + return json.dump(indent); +} + +int parse_json(const char* str, hv::Json& json, std::string& errmsg) { + try { + json = nlohmann::json::parse(str); + } + catch(nlohmann::detail::exception e) { + errmsg = e.what(); + return -1; + } + return (json.is_discarded() || json.is_null()) ? -1 : 0; +} +#endif + +END_NAMESPACE_HV diff --git a/3rdPartner/libhv/http/http_content.h b/3rdPartner/libhv/http/http_content.h new file mode 100644 index 0000000..11890ee --- /dev/null +++ b/3rdPartner/libhv/http/http_content.h @@ -0,0 +1,78 @@ +#ifndef HV_HTTP_CONTENT_H_ +#define HV_HTTP_CONTENT_H_ + +#include "hexport.h" +#include "hstring.h" + +// NOTE: WITHOUT_HTTP_CONTENT +// ndk-r10e no std::to_string and can't compile modern json.hpp +#ifndef WITHOUT_HTTP_CONTENT +#include "json.hpp" // https://github.com/nlohmann/json +#endif + +BEGIN_NAMESPACE_HV + +// QueryParams +using QueryParams = hv::KeyValue; +HV_EXPORT std::string dump_query_params(const QueryParams& query_params); +HV_EXPORT int parse_query_params(const char* query_string, QueryParams& query_params); + +#ifndef WITHOUT_HTTP_CONTENT + +/**************multipart/form-data************************************* +--boundary +Content-Disposition: form-data; name="user" + +content +--boundary +Content-Disposition: form-data; name="avatar"; filename="user.jpg" +Content-Type: image/jpeg + +content +--boundary-- +***********************************************************************/ +// FormData +struct FormData { + std::string filename; + std::string content; + + FormData(const char* content = NULL, const char* filename = NULL) { + if (content) { + this->content = content; + } + if (filename) { + this->filename = filename; + } + } + template + FormData(T num) { + content = hv::to_string(num); + } +}; +// FormFile +struct FormFile : public FormData { + FormFile(const char* filename = NULL) { + if (filename) { + this->filename = filename; + } + } +}; + +// MultiPart +// name => FormData +typedef HV_MAP MultiPart; +#define DEFAULT_MULTIPART_BOUNDARY "----WebKitFormBoundary7MA4YWxkTrZu0gW" +HV_EXPORT std::string dump_multipart(MultiPart& mp, const char* boundary = DEFAULT_MULTIPART_BOUNDARY); +HV_EXPORT int parse_multipart(const std::string& str, MultiPart& mp, const char* boundary); + +// Json +using Json = nlohmann::json; +// using Json = nlohmann::ordered_json; + +HV_EXPORT std::string dump_json(const hv::Json& json, int indent = -1); +HV_EXPORT int parse_json(const char* str, hv::Json& json, std::string& errmsg); +#endif + +END_NAMESPACE_HV + +#endif // HV_HTTP_CONTENT_H_ diff --git a/3rdPartner/libhv/http/http_parser.c b/3rdPartner/libhv/http/http_parser.c new file mode 100644 index 0000000..659cfb2 --- /dev/null +++ b/3rdPartner/libhv/http/http_parser.c @@ -0,0 +1,2481 @@ +/* Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +#include "http_parser.h" +#include +#include +#include +#include +#include + +static uint32_t max_header_size = HTTP_MAX_HEADER_SIZE; + +#ifndef ULLONG_MAX +# define ULLONG_MAX ((uint64_t) -1) /* 2^64-1 */ +#endif + +#ifndef MIN +# define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef ARRAY_SIZE +# define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) +#endif + +#ifndef BIT_AT +# define BIT_AT(a, i) \ + (!!((unsigned int) (a)[(unsigned int) (i) >> 3] & \ + (1 << ((unsigned int) (i) & 7)))) +#endif + +#ifndef ELEM_AT +# define ELEM_AT(a, i, v) ((unsigned int) (i) < ARRAY_SIZE(a) ? (a)[(i)] : (v)) +#endif + +#define SET_ERRNO(e) \ +do { \ + parser->nread = nread; \ + parser->http_errno = (e); \ +} while(0) + +#define CURRENT_STATE() p_state +#define UPDATE_STATE(V) p_state = (enum state) (V); +#define RETURN(V) \ +do { \ + parser->nread = nread; \ + parser->state = CURRENT_STATE(); \ + return (V); \ +} while (0); +#define REEXECUTE() \ + goto reexecute; \ + + +#ifdef __GNUC__ +# define LIKELY(X) __builtin_expect(!!(X), 1) +# define UNLIKELY(X) __builtin_expect(!!(X), 0) +#else +# define LIKELY(X) (X) +# define UNLIKELY(X) (X) +#endif + + +/* Run the notify callback FOR, returning ER if it fails */ +#define CALLBACK_NOTIFY_(FOR, ER) \ +do { \ + assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ + \ + if (LIKELY(settings->on_##FOR)) { \ + parser->state = CURRENT_STATE(); \ + if (UNLIKELY(0 != settings->on_##FOR(parser))) { \ + SET_ERRNO(HPE_CB_##FOR); \ + } \ + UPDATE_STATE(parser->state); \ + \ + /* We either errored above or got paused; get out */ \ + if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ + return (ER); \ + } \ + } \ +} while (0) + +/* Run the notify callback FOR and consume the current byte */ +#define CALLBACK_NOTIFY(FOR) CALLBACK_NOTIFY_(FOR, p - data + 1) + +/* Run the notify callback FOR and don't consume the current byte */ +#define CALLBACK_NOTIFY_NOADVANCE(FOR) CALLBACK_NOTIFY_(FOR, p - data) + +/* Run data callback FOR with LEN bytes, returning ER if it fails */ +#define CALLBACK_DATA_(FOR, LEN, ER) \ +do { \ + assert(HTTP_PARSER_ERRNO(parser) == HPE_OK); \ + \ + if (FOR##_mark) { \ + if (LIKELY(settings->on_##FOR)) { \ + parser->state = CURRENT_STATE(); \ + if (UNLIKELY(0 != \ + settings->on_##FOR(parser, FOR##_mark, (LEN)))) { \ + SET_ERRNO(HPE_CB_##FOR); \ + } \ + UPDATE_STATE(parser->state); \ + \ + /* We either errored above or got paused; get out */ \ + if (UNLIKELY(HTTP_PARSER_ERRNO(parser) != HPE_OK)) { \ + return (ER); \ + } \ + } \ + FOR##_mark = NULL; \ + } \ +} while (0) + +/* Run the data callback FOR and consume the current byte */ +#define CALLBACK_DATA(FOR) \ + CALLBACK_DATA_(FOR, p - FOR##_mark, p - data + 1) + +/* Run the data callback FOR and don't consume the current byte */ +#define CALLBACK_DATA_NOADVANCE(FOR) \ + CALLBACK_DATA_(FOR, p - FOR##_mark, p - data) + +/* Set the mark FOR; non-destructive if mark is already set */ +#define MARK(FOR) \ +do { \ + if (!FOR##_mark) { \ + FOR##_mark = p; \ + } \ +} while (0) + +/* Don't allow the total size of the HTTP headers (including the status + * line) to exceed max_header_size. This check is here to protect + * embedders against denial-of-service attacks where the attacker feeds + * us a never-ending header that the embedder keeps buffering. + * + * This check is arguably the responsibility of embedders but we're doing + * it on the embedder's behalf because most won't bother and this way we + * make the web a little safer. max_header_size is still far bigger + * than any reasonable request or response so this should never affect + * day-to-day operation. + */ +#define COUNT_HEADER_SIZE(V) \ +do { \ + nread += (uint32_t)(V); \ + if (UNLIKELY(nread > max_header_size)) { \ + SET_ERRNO(HPE_HEADER_OVERFLOW); \ + goto error; \ + } \ +} while (0) + + +#define PROXY_CONNECTION "proxy-connection" +#define CONNECTION "connection" +#define CONTENT_LENGTH "content-length" +#define TRANSFER_ENCODING "transfer-encoding" +#define UPGRADE "upgrade" +#define CHUNKED "chunked" +#define KEEP_ALIVE "keep-alive" +#define CLOSE "close" + + +static const char *method_strings[] = + { +#define XX(num, name, string) #string, + HTTP_METHOD_MAP(XX) +#undef XX + }; + + +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +static const char tokens[256] = { +/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ + 0, 0, 0, 0, 0, 0, 0, 0, +/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ + ' ', '!', 0, '#', '$', '%', '&', '\'', +/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ + 0, 0, '*', '+', 0, '-', '.', 0, +/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ + '0', '1', '2', '3', '4', '5', '6', '7', +/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ + '8', '9', 0, 0, 0, 0, 0, 0, +/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ + 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', +/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', +/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', +/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ + 'x', 'y', 'z', 0, 0, 0, '^', '_', +/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', +/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', +/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', +/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ + 'x', 'y', 'z', 0, '|', 0, '~', 0 }; + + +static const int8_t unhex[256] = + {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1 + ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1 + ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 + }; + + +#if HTTP_PARSER_STRICT +# define T(v) 0 +#else +# define T(v) v +#endif + + +static const uint8_t normal_url_char[32] = { +/* 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si */ + 0 | T(2) | 0 | 0 | T(16) | 0 | 0 | 0, +/* 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us */ + 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0, +/* 32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' */ + 0 | 2 | 4 | 0 | 16 | 32 | 64 | 128, +/* 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, +/* 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, +/* 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del */ + 1 | 2 | 4 | 8 | 16 | 32 | 64 | 0, }; + +#undef T + +enum state + { s_dead = 1 /* important that this is > 0 */ + + , s_start_req_or_res + , s_res_or_resp_H + , s_start_res + , s_res_H + , s_res_HT + , s_res_HTT + , s_res_HTTP + , s_res_http_major + , s_res_http_dot + , s_res_http_minor + , s_res_http_end + , s_res_first_status_code + , s_res_status_code + , s_res_status_start + , s_res_status + , s_res_line_almost_done + + , s_start_req + + , s_req_method + , s_req_spaces_before_url + , s_req_schema + , s_req_schema_slash + , s_req_schema_slash_slash + , s_req_server_start + , s_req_server + , s_req_server_with_at + , s_req_path + , s_req_query_string_start + , s_req_query_string + , s_req_fragment_start + , s_req_fragment + , s_req_http_start + , s_req_http_H + , s_req_http_HT + , s_req_http_HTT + , s_req_http_HTTP + , s_req_http_I + , s_req_http_IC + , s_req_http_major + , s_req_http_dot + , s_req_http_minor + , s_req_http_end + , s_req_line_almost_done + + , s_header_field_start + , s_header_field + , s_header_value_discard_ws + , s_header_value_discard_ws_almost_done + , s_header_value_discard_lws + , s_header_value_start + , s_header_value + , s_header_value_lws + + , s_header_almost_done + + , s_chunk_size_start + , s_chunk_size + , s_chunk_parameters + , s_chunk_size_almost_done + + , s_headers_almost_done + , s_headers_done + + /* Important: 's_headers_done' must be the last 'header' state. All + * states beyond this must be 'body' states. It is used for overflow + * checking. See the PARSING_HEADER() macro. + */ + + , s_chunk_data + , s_chunk_data_almost_done + , s_chunk_data_done + + , s_body_identity + , s_body_identity_eof + + , s_message_done + }; + + +#define PARSING_HEADER(state) (state <= s_headers_done) + + +enum header_states + { h_general = 0 + , h_C + , h_CO + , h_CON + + , h_matching_connection + , h_matching_proxy_connection + , h_matching_content_length + , h_matching_transfer_encoding + , h_matching_upgrade + + , h_connection + , h_content_length + , h_content_length_num + , h_content_length_ws + , h_transfer_encoding + , h_upgrade + + , h_matching_transfer_encoding_chunked + , h_matching_connection_token_start + , h_matching_connection_keep_alive + , h_matching_connection_close + , h_matching_connection_upgrade + , h_matching_connection_token + + , h_transfer_encoding_chunked + , h_connection_keep_alive + , h_connection_close + , h_connection_upgrade + }; + +enum http_host_state + { + s_http_host_dead = 1 + , s_http_userinfo_start + , s_http_userinfo + , s_http_host_start + , s_http_host_v6_start + , s_http_host + , s_http_host_v6 + , s_http_host_v6_end + , s_http_host_v6_zone_start + , s_http_host_v6_zone + , s_http_host_port_start + , s_http_host_port +}; + +/* Macros for character classes; depends on strict-mode */ +#define CR '\r' +#define LF '\n' +#define LOWER(c) (unsigned char)(c | 0x20) +#define IS_ALPHA(c) (LOWER(c) >= 'a' && LOWER(c) <= 'z') +#define IS_NUM(c) ((c) >= '0' && (c) <= '9') +#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_NUM(c)) +#define IS_HEX(c) (IS_NUM(c) || (LOWER(c) >= 'a' && LOWER(c) <= 'f')) +#define IS_MARK(c) ((c) == '-' || (c) == '_' || (c) == '.' || \ + (c) == '!' || (c) == '~' || (c) == '*' || (c) == '\'' || (c) == '(' || \ + (c) == ')') +#define IS_USERINFO_CHAR(c) (IS_ALPHANUM(c) || IS_MARK(c) || (c) == '%' || \ + (c) == ';' || (c) == ':' || (c) == '&' || (c) == '=' || (c) == '+' || \ + (c) == '$' || (c) == ',') + +#define STRICT_TOKEN(c) ((c == ' ') ? 0 : tokens[(unsigned char)c]) + +#if HTTP_PARSER_STRICT +#define TOKEN(c) STRICT_TOKEN(c) +#define IS_URL_CHAR(c) (BIT_AT(normal_url_char, (unsigned char)c)) +#define IS_HOST_CHAR(c) (IS_ALPHANUM(c) || (c) == '.' || (c) == '-') +#else +#define TOKEN(c) tokens[(unsigned char)c] +#define IS_URL_CHAR(c) \ + (BIT_AT(normal_url_char, (unsigned char)c) || ((c) & 0x80)) +#define IS_HOST_CHAR(c) \ + (IS_ALPHANUM(c) || (c) == '.' || (c) == '-' || (c) == '_') +#endif + +/** + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + **/ +#define IS_HEADER_CHAR(ch) \ + (ch == CR || ch == LF || ch == 9 || ((unsigned char)ch > 31 && ch != 127)) + +#define start_state (parser->type == HTTP_REQUEST ? s_start_req : s_start_res) + + +#if HTTP_PARSER_STRICT +# define STRICT_CHECK(cond) \ +do { \ + if (cond) { \ + SET_ERRNO(HPE_STRICT); \ + goto error; \ + } \ +} while (0) +# define NEW_MESSAGE() (http_should_keep_alive(parser) ? start_state : s_dead) +#else +# define STRICT_CHECK(cond) +# define NEW_MESSAGE() start_state +#endif + + +/* Map errno values to strings for human-readable output */ +#define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s }, +static struct { + const char *name; + const char *description; +} http_strerror_tab[] = { + HTTP_ERRNO_MAP(HTTP_STRERROR_GEN) +}; +#undef HTTP_STRERROR_GEN + +int http_message_needs_eof(const http_parser *parser); + +/* Our URL parser. + * + * This is designed to be shared by http_parser_execute() for URL validation, + * hence it has a state transition + byte-for-byte interface. In addition, it + * is meant to be embedded in http_parser_parse_url(), which does the dirty + * work of turning state transitions URL components for its API. + * + * This function should only be invoked with non-space characters. It is + * assumed that the caller cares about (and can detect) the transition between + * URL and non-URL states by looking for these. + */ +static enum state +parse_url_char(enum state s, const char ch) +{ + if (ch == ' ' || ch == '\r' || ch == '\n') { + return s_dead; + } + +#if HTTP_PARSER_STRICT + if (ch == '\t' || ch == '\f') { + return s_dead; + } +#endif + + switch (s) { + case s_req_spaces_before_url: + /* Proxied requests are followed by scheme of an absolute URI (alpha). + * All methods except CONNECT are followed by '/' or '*'. + */ + + if (ch == '/' || ch == '*') { + return s_req_path; + } + + if (IS_ALPHA(ch)) { + return s_req_schema; + } + + break; + + case s_req_schema: + if (IS_ALPHA(ch)) { + return s; + } + + if (ch == ':') { + return s_req_schema_slash; + } + + break; + + case s_req_schema_slash: + if (ch == '/') { + return s_req_schema_slash_slash; + } + + break; + + case s_req_schema_slash_slash: + if (ch == '/') { + return s_req_server_start; + } + + break; + + case s_req_server_with_at: + if (ch == '@') { + return s_dead; + } + + /* fall through */ + case s_req_server_start: + case s_req_server: + if (ch == '/') { + return s_req_path; + } + + if (ch == '?') { + return s_req_query_string_start; + } + + if (ch == '@') { + return s_req_server_with_at; + } + + if (IS_USERINFO_CHAR(ch) || ch == '[' || ch == ']') { + return s_req_server; + } + + break; + + case s_req_path: + if (IS_URL_CHAR(ch)) { + return s; + } + + switch (ch) { + case '?': + return s_req_query_string_start; + + case '#': + return s_req_fragment_start; + } + + break; + + case s_req_query_string_start: + case s_req_query_string: + if (IS_URL_CHAR(ch)) { + return s_req_query_string; + } + + switch (ch) { + case '?': + /* allow extra '?' in query string */ + return s_req_query_string; + + case '#': + return s_req_fragment_start; + } + + break; + + case s_req_fragment_start: + if (IS_URL_CHAR(ch)) { + return s_req_fragment; + } + + switch (ch) { + case '?': + return s_req_fragment; + + case '#': + return s; + } + + break; + + case s_req_fragment: + if (IS_URL_CHAR(ch)) { + return s; + } + + switch (ch) { + case '?': + case '#': + return s; + } + + break; + + default: + break; + } + + /* We should never fall out of the switch above unless there's an error */ + return s_dead; +} + +size_t http_parser_execute (http_parser *parser, + const http_parser_settings *settings, + const char *data, + size_t len) +{ + char c, ch; + int8_t unhex_val; + const char *p = data; + const char *header_field_mark = 0; + const char *header_value_mark = 0; + const char *url_mark = 0; + const char *body_mark = 0; + const char *status_mark = 0; + enum state p_state = (enum state) parser->state; + const unsigned int lenient = parser->lenient_http_headers; + uint32_t nread = parser->nread; + + /* We're in an error state. Don't bother doing anything. */ + if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { + return 0; + } + + if (len == 0) { + switch (CURRENT_STATE()) { + case s_body_identity_eof: + /* Use of CALLBACK_NOTIFY() here would erroneously return 1 byte read if + * we got paused. + */ + CALLBACK_NOTIFY_NOADVANCE(message_complete); + return 0; + + case s_dead: + case s_start_req_or_res: + case s_start_res: + case s_start_req: + return 0; + + default: + SET_ERRNO(HPE_INVALID_EOF_STATE); + return 1; + } + } + + + if (CURRENT_STATE() == s_header_field) + header_field_mark = data; + if (CURRENT_STATE() == s_header_value) + header_value_mark = data; + switch (CURRENT_STATE()) { + case s_req_path: + case s_req_schema: + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + case s_req_server: + case s_req_server_with_at: + case s_req_query_string_start: + case s_req_query_string: + case s_req_fragment_start: + case s_req_fragment: + url_mark = data; + break; + case s_res_status: + status_mark = data; + break; + default: + break; + } + + for (p=data; p != data + len; p++) { + ch = *p; + + if (PARSING_HEADER(CURRENT_STATE())) + COUNT_HEADER_SIZE(1); + +reexecute: + switch (CURRENT_STATE()) { + + case s_dead: + /* this state is used after a 'Connection: close' message + * the parser will error out if it reads another message + */ + if (LIKELY(ch == CR || ch == LF)) + break; + + SET_ERRNO(HPE_CLOSED_CONNECTION); + goto error; + + case s_start_req_or_res: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (ch == 'H') { + UPDATE_STATE(s_res_or_resp_H); + + CALLBACK_NOTIFY(message_begin); + } else { + parser->type = HTTP_REQUEST; + UPDATE_STATE(s_start_req); + REEXECUTE(); + } + + break; + } + + case s_res_or_resp_H: + if (ch == 'T') { + parser->type = HTTP_RESPONSE; + UPDATE_STATE(s_res_HT); + } else { + if (UNLIKELY(ch != 'E')) { + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + + parser->type = HTTP_REQUEST; + parser->method = HTTP_HEAD; + parser->index = 2; + UPDATE_STATE(s_req_method); + } + break; + + case s_start_res: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (ch == 'H') { + UPDATE_STATE(s_res_H); + } else { + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + + CALLBACK_NOTIFY(message_begin); + break; + } + + case s_res_H: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_res_HT); + break; + + case s_res_HT: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_res_HTT); + break; + + case s_res_HTT: + STRICT_CHECK(ch != 'P'); + UPDATE_STATE(s_res_HTTP); + break; + + case s_res_HTTP: + STRICT_CHECK(ch != '/'); + UPDATE_STATE(s_res_http_major); + break; + + case s_res_http_major: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_major = ch - '0'; + UPDATE_STATE(s_res_http_dot); + break; + + case s_res_http_dot: + { + if (UNLIKELY(ch != '.')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_res_http_minor); + break; + } + + case s_res_http_minor: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_minor = ch - '0'; + UPDATE_STATE(s_res_http_end); + break; + + case s_res_http_end: + { + if (UNLIKELY(ch != ' ')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_res_first_status_code); + break; + } + + case s_res_first_status_code: + { + if (!IS_NUM(ch)) { + if (ch == ' ') { + break; + } + + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + parser->status_code = ch - '0'; + UPDATE_STATE(s_res_status_code); + break; + } + + case s_res_status_code: + { + if (!IS_NUM(ch)) { + switch (ch) { + case ' ': + UPDATE_STATE(s_res_status_start); + break; + case CR: + case LF: + UPDATE_STATE(s_res_status_start); + REEXECUTE(); + break; + default: + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + break; + } + + parser->status_code *= 10; + parser->status_code += ch - '0'; + + if (UNLIKELY(parser->status_code > 999)) { + SET_ERRNO(HPE_INVALID_STATUS); + goto error; + } + + break; + } + + case s_res_status_start: + { + MARK(status); + UPDATE_STATE(s_res_status); + parser->index = 0; + + if (ch == CR || ch == LF) + REEXECUTE(); + + break; + } + + case s_res_status: + if (ch == CR) { + UPDATE_STATE(s_res_line_almost_done); + CALLBACK_DATA(status); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_field_start); + CALLBACK_DATA(status); + break; + } + + break; + + case s_res_line_almost_done: + STRICT_CHECK(ch != LF); + UPDATE_STATE(s_header_field_start); + break; + + case s_start_req: + { + if (ch == CR || ch == LF) + break; + parser->flags = 0; + parser->content_length = ULLONG_MAX; + + if (UNLIKELY(!IS_ALPHA(ch))) { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + parser->method = (enum http_method) 0; + parser->index = 1; + switch (ch) { + case 'A': parser->method = HTTP_ACL; break; + case 'B': parser->method = HTTP_BIND; break; + case 'C': parser->method = HTTP_CONNECT; /* or COPY, CHECKOUT */ break; + case 'D': parser->method = HTTP_DELETE; break; + case 'G': parser->method = HTTP_GET; break; + case 'H': parser->method = HTTP_HEAD; break; + case 'L': parser->method = HTTP_LOCK; /* or LINK */ break; + case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH, MKCALENDAR */ break; + case 'N': parser->method = HTTP_NOTIFY; break; + case 'O': parser->method = HTTP_OPTIONS; break; + case 'P': parser->method = HTTP_POST; + /* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */ + break; + case 'R': parser->method = HTTP_REPORT; /* or REBIND */ break; + case 'S': parser->method = HTTP_SUBSCRIBE; /* or SEARCH, SOURCE */ break; + case 'T': parser->method = HTTP_TRACE; break; + case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE, UNBIND, UNLINK */ break; + default: + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + UPDATE_STATE(s_req_method); + + CALLBACK_NOTIFY(message_begin); + + break; + } + + case s_req_method: + { + const char *matcher; + if (UNLIKELY(ch == '\0')) { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + matcher = method_strings[parser->method]; + if (ch == ' ' && matcher[parser->index] == '\0') { + UPDATE_STATE(s_req_spaces_before_url); + } else if (ch == matcher[parser->index]) { + ; /* nada */ + } else if ((ch >= 'A' && ch <= 'Z') || ch == '-') { + + switch (parser->method << 16 | parser->index << 8 | ch) { +#define XX(meth, pos, ch, new_meth) \ + case (HTTP_##meth << 16 | pos << 8 | ch): \ + parser->method = HTTP_##new_meth; break; + + XX(POST, 1, 'U', PUT) + XX(POST, 1, 'A', PATCH) + XX(POST, 1, 'R', PROPFIND) + XX(PUT, 2, 'R', PURGE) + XX(CONNECT, 1, 'H', CHECKOUT) + XX(CONNECT, 2, 'P', COPY) + XX(MKCOL, 1, 'O', MOVE) + XX(MKCOL, 1, 'E', MERGE) + XX(MKCOL, 1, '-', MSEARCH) + XX(MKCOL, 2, 'A', MKACTIVITY) + XX(MKCOL, 3, 'A', MKCALENDAR) + XX(SUBSCRIBE, 1, 'E', SEARCH) + XX(SUBSCRIBE, 1, 'O', SOURCE) + XX(REPORT, 2, 'B', REBIND) + XX(PROPFIND, 4, 'P', PROPPATCH) + XX(LOCK, 1, 'I', LINK) + XX(UNLOCK, 2, 'S', UNSUBSCRIBE) + XX(UNLOCK, 2, 'B', UNBIND) + XX(UNLOCK, 3, 'I', UNLINK) +#undef XX + default: + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + } else { + SET_ERRNO(HPE_INVALID_METHOD); + goto error; + } + + ++parser->index; + break; + } + + case s_req_spaces_before_url: + { + if (ch == ' ') break; + + MARK(url); + if (parser->method == HTTP_CONNECT) { + UPDATE_STATE(s_req_server_start); + } + + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + + break; + } + + case s_req_schema: + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + { + switch (ch) { + /* No whitespace allowed here */ + case ' ': + case CR: + case LF: + SET_ERRNO(HPE_INVALID_URL); + goto error; + default: + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + } + + break; + } + + case s_req_server: + case s_req_server_with_at: + case s_req_path: + case s_req_query_string_start: + case s_req_query_string: + case s_req_fragment_start: + case s_req_fragment: + { + switch (ch) { + case ' ': + UPDATE_STATE(s_req_http_start); + CALLBACK_DATA(url); + break; + case CR: + case LF: + parser->http_major = 0; + parser->http_minor = 9; + UPDATE_STATE((ch == CR) ? + s_req_line_almost_done : + s_header_field_start); + CALLBACK_DATA(url); + break; + default: + UPDATE_STATE(parse_url_char(CURRENT_STATE(), ch)); + if (UNLIKELY(CURRENT_STATE() == s_dead)) { + SET_ERRNO(HPE_INVALID_URL); + goto error; + } + } + break; + } + + case s_req_http_start: + switch (ch) { + case ' ': + break; + case 'H': + UPDATE_STATE(s_req_http_H); + break; + case 'I': + if (parser->method == HTTP_SOURCE) { + UPDATE_STATE(s_req_http_I); + break; + } + /* fall through */ + default: + SET_ERRNO(HPE_INVALID_CONSTANT); + goto error; + } + break; + + case s_req_http_H: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_req_http_HT); + break; + + case s_req_http_HT: + STRICT_CHECK(ch != 'T'); + UPDATE_STATE(s_req_http_HTT); + break; + + case s_req_http_HTT: + STRICT_CHECK(ch != 'P'); + UPDATE_STATE(s_req_http_HTTP); + break; + + case s_req_http_I: + STRICT_CHECK(ch != 'C'); + UPDATE_STATE(s_req_http_IC); + break; + + case s_req_http_IC: + STRICT_CHECK(ch != 'E'); + UPDATE_STATE(s_req_http_HTTP); /* Treat "ICE" as "HTTP". */ + break; + + case s_req_http_HTTP: + STRICT_CHECK(ch != '/'); + UPDATE_STATE(s_req_http_major); + break; + + case s_req_http_major: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_major = ch - '0'; + UPDATE_STATE(s_req_http_dot); + break; + + case s_req_http_dot: + { + if (UNLIKELY(ch != '.')) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + UPDATE_STATE(s_req_http_minor); + break; + } + + case s_req_http_minor: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + } + + parser->http_minor = ch - '0'; + UPDATE_STATE(s_req_http_end); + break; + + case s_req_http_end: + { + if (ch == CR) { + UPDATE_STATE(s_req_line_almost_done); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_field_start); + break; + } + + SET_ERRNO(HPE_INVALID_VERSION); + goto error; + break; + } + + /* end of request line */ + case s_req_line_almost_done: + { + if (UNLIKELY(ch != LF)) { + SET_ERRNO(HPE_LF_EXPECTED); + goto error; + } + + UPDATE_STATE(s_header_field_start); + break; + } + + case s_header_field_start: + { + if (ch == CR) { + UPDATE_STATE(s_headers_almost_done); + break; + } + + if (ch == LF) { + /* they might be just sending \n instead of \r\n so this would be + * the second \n to denote the end of headers*/ + UPDATE_STATE(s_headers_almost_done); + REEXECUTE(); + } + + c = TOKEN(ch); + + if (UNLIKELY(!c)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + MARK(header_field); + + parser->index = 0; + UPDATE_STATE(s_header_field); + + switch (c) { + case 'c': + parser->header_state = h_C; + break; + + case 'p': + parser->header_state = h_matching_proxy_connection; + break; + + case 't': + parser->header_state = h_matching_transfer_encoding; + break; + + case 'u': + parser->header_state = h_matching_upgrade; + break; + + default: + parser->header_state = h_general; + break; + } + break; + } + + case s_header_field: + { + const char* start = p; + for (; p != data + len; p++) { + ch = *p; + c = TOKEN(ch); + + if (!c) + break; + + switch (parser->header_state) { + case h_general: { + size_t limit = data + len - p; + limit = MIN(limit, max_header_size); + while (p+1 < data + limit && TOKEN(p[1])) { + p++; + } + break; + } + + case h_C: + parser->index++; + parser->header_state = (c == 'o' ? h_CO : h_general); + break; + + case h_CO: + parser->index++; + parser->header_state = (c == 'n' ? h_CON : h_general); + break; + + case h_CON: + parser->index++; + switch (c) { + case 'n': + parser->header_state = h_matching_connection; + break; + case 't': + parser->header_state = h_matching_content_length; + break; + default: + parser->header_state = h_general; + break; + } + break; + + /* connection */ + + case h_matching_connection: + parser->index++; + if (parser->index > sizeof(CONNECTION)-1 + || c != CONNECTION[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(CONNECTION)-2) { + parser->header_state = h_connection; + } + break; + + /* proxy-connection */ + + case h_matching_proxy_connection: + parser->index++; + if (parser->index > sizeof(PROXY_CONNECTION)-1 + || c != PROXY_CONNECTION[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(PROXY_CONNECTION)-2) { + parser->header_state = h_connection; + } + break; + + /* content-length */ + + case h_matching_content_length: + parser->index++; + if (parser->index > sizeof(CONTENT_LENGTH)-1 + || c != CONTENT_LENGTH[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(CONTENT_LENGTH)-2) { + parser->header_state = h_content_length; + } + break; + + /* transfer-encoding */ + + case h_matching_transfer_encoding: + parser->index++; + if (parser->index > sizeof(TRANSFER_ENCODING)-1 + || c != TRANSFER_ENCODING[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(TRANSFER_ENCODING)-2) { + parser->header_state = h_transfer_encoding; + } + break; + + /* upgrade */ + + case h_matching_upgrade: + parser->index++; + if (parser->index > sizeof(UPGRADE)-1 + || c != UPGRADE[parser->index]) { + parser->header_state = h_general; + } else if (parser->index == sizeof(UPGRADE)-2) { + parser->header_state = h_upgrade; + } + break; + + case h_connection: + case h_content_length: + case h_transfer_encoding: + case h_upgrade: + if (ch != ' ') parser->header_state = h_general; + break; + + default: + assert(0 && "Unknown header_state"); + break; + } + } + + if (p == data + len) { + --p; + COUNT_HEADER_SIZE(p - start); + break; + } + + COUNT_HEADER_SIZE(p - start); + + if (ch == ':') { + UPDATE_STATE(s_header_value_discard_ws); + CALLBACK_DATA(header_field); + break; + } + + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + case s_header_value_discard_ws: + if (ch == ' ' || ch == '\t') break; + + if (ch == CR) { + UPDATE_STATE(s_header_value_discard_ws_almost_done); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_value_discard_lws); + break; + } + + /* fall through */ + + case s_header_value_start: + { + MARK(header_value); + + UPDATE_STATE(s_header_value); + parser->index = 0; + + c = LOWER(ch); + + switch (parser->header_state) { + case h_upgrade: + parser->flags |= F_UPGRADE; + parser->header_state = h_general; + break; + + case h_transfer_encoding: + /* looking for 'Transfer-Encoding: chunked' */ + if ('c' == c) { + parser->header_state = h_matching_transfer_encoding_chunked; + } else { + parser->header_state = h_general; + } + break; + + case h_content_length: + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + } + + if (parser->flags & F_CONTENTLENGTH) { + SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); + goto error; + } + + parser->flags |= F_CONTENTLENGTH; + parser->content_length = ch - '0'; + parser->header_state = h_content_length_num; + break; + + /* when obsolete line folding is encountered for content length + * continue to the s_header_value state */ + case h_content_length_ws: + break; + + case h_connection: + /* looking for 'Connection: keep-alive' */ + if (c == 'k') { + parser->header_state = h_matching_connection_keep_alive; + /* looking for 'Connection: close' */ + } else if (c == 'c') { + parser->header_state = h_matching_connection_close; + } else if (c == 'u') { + parser->header_state = h_matching_connection_upgrade; + } else { + parser->header_state = h_matching_connection_token; + } + break; + + /* Multi-value `Connection` header */ + case h_matching_connection_token_start: + break; + + default: + parser->header_state = h_general; + break; + } + break; + } + + case s_header_value: + { + const char* start = p; + enum header_states h_state = (enum header_states) parser->header_state; + for (; p != data + len; p++) { + ch = *p; + if (ch == CR) { + UPDATE_STATE(s_header_almost_done); + parser->header_state = h_state; + CALLBACK_DATA(header_value); + break; + } + + if (ch == LF) { + UPDATE_STATE(s_header_almost_done); + COUNT_HEADER_SIZE(p - start); + parser->header_state = h_state; + CALLBACK_DATA_NOADVANCE(header_value); + REEXECUTE(); + } + + if (!lenient && !IS_HEADER_CHAR(ch)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + + c = LOWER(ch); + + switch (h_state) { + case h_general: + { + const char* limit = p + MIN(data + len - p, max_header_size); + + for (; p != limit; p++) { + ch = *p; + if (ch == CR || ch == LF) { + --p; + break; + } + if (!lenient && !IS_HEADER_CHAR(ch)) { + SET_ERRNO(HPE_INVALID_HEADER_TOKEN); + goto error; + } + } + if (p == data + len) + --p; + break; + } + + case h_connection: + case h_transfer_encoding: + assert(0 && "Shouldn't get here."); + break; + + case h_content_length: + if (ch == ' ') break; + h_state = h_content_length_num; + /* fall through */ + + case h_content_length_num: + { + uint64_t t; + + if (ch == ' ') { + h_state = h_content_length_ws; + break; + } + + if (UNLIKELY(!IS_NUM(ch))) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + } + + t = parser->content_length; + t *= 10; + t += ch - '0'; + + /* Overflow? Test against a conservative limit for simplicity. */ + if (UNLIKELY((ULLONG_MAX - 10) / 10 < parser->content_length)) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + } + + parser->content_length = t; + break; + } + + case h_content_length_ws: + if (ch == ' ') break; + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + parser->header_state = h_state; + goto error; + + /* Transfer-Encoding: chunked */ + case h_matching_transfer_encoding_chunked: + parser->index++; + if (parser->index > sizeof(CHUNKED)-1 + || c != CHUNKED[parser->index]) { + h_state = h_general; + } else if (parser->index == sizeof(CHUNKED)-2) { + h_state = h_transfer_encoding_chunked; + } + break; + + case h_matching_connection_token_start: + /* looking for 'Connection: keep-alive' */ + if (c == 'k') { + h_state = h_matching_connection_keep_alive; + /* looking for 'Connection: close' */ + } else if (c == 'c') { + h_state = h_matching_connection_close; + } else if (c == 'u') { + h_state = h_matching_connection_upgrade; + } else if (STRICT_TOKEN(c)) { + h_state = h_matching_connection_token; + } else if (c == ' ' || c == '\t') { + /* Skip lws */ + } else { + h_state = h_general; + } + break; + + /* looking for 'Connection: keep-alive' */ + case h_matching_connection_keep_alive: + parser->index++; + if (parser->index > sizeof(KEEP_ALIVE)-1 + || c != KEEP_ALIVE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(KEEP_ALIVE)-2) { + h_state = h_connection_keep_alive; + } + break; + + /* looking for 'Connection: close' */ + case h_matching_connection_close: + parser->index++; + if (parser->index > sizeof(CLOSE)-1 || c != CLOSE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(CLOSE)-2) { + h_state = h_connection_close; + } + break; + + /* looking for 'Connection: upgrade' */ + case h_matching_connection_upgrade: + parser->index++; + if (parser->index > sizeof(UPGRADE) - 1 || + c != UPGRADE[parser->index]) { + h_state = h_matching_connection_token; + } else if (parser->index == sizeof(UPGRADE)-2) { + h_state = h_connection_upgrade; + } + break; + + case h_matching_connection_token: + if (ch == ',') { + h_state = h_matching_connection_token_start; + parser->index = 0; + } + break; + + case h_transfer_encoding_chunked: + if (ch != ' ') h_state = h_general; + break; + + case h_connection_keep_alive: + case h_connection_close: + case h_connection_upgrade: + if (ch == ',') { + if (h_state == h_connection_keep_alive) { + parser->flags |= F_CONNECTION_KEEP_ALIVE; + } else if (h_state == h_connection_close) { + parser->flags |= F_CONNECTION_CLOSE; + } else if (h_state == h_connection_upgrade) { + parser->flags |= F_CONNECTION_UPGRADE; + } + h_state = h_matching_connection_token_start; + parser->index = 0; + } else if (ch != ' ') { + h_state = h_matching_connection_token; + } + break; + + default: + UPDATE_STATE(s_header_value); + h_state = h_general; + break; + } + } + parser->header_state = h_state; + + if (p == data + len) + --p; + + COUNT_HEADER_SIZE(p - start); + break; + } + + case s_header_almost_done: + { + if (UNLIKELY(ch != LF)) { + SET_ERRNO(HPE_LF_EXPECTED); + goto error; + } + + UPDATE_STATE(s_header_value_lws); + break; + } + + case s_header_value_lws: + { + if (ch == ' ' || ch == '\t') { + if (parser->header_state == h_content_length_num) { + /* treat obsolete line folding as space */ + parser->header_state = h_content_length_ws; + } + UPDATE_STATE(s_header_value_start); + REEXECUTE(); + } + + /* finished the header */ + switch (parser->header_state) { + case h_connection_keep_alive: + parser->flags |= F_CONNECTION_KEEP_ALIVE; + break; + case h_connection_close: + parser->flags |= F_CONNECTION_CLOSE; + break; + case h_transfer_encoding_chunked: + parser->flags |= F_CHUNKED; + break; + case h_connection_upgrade: + parser->flags |= F_CONNECTION_UPGRADE; + break; + default: + break; + } + + UPDATE_STATE(s_header_field_start); + REEXECUTE(); + } + + case s_header_value_discard_ws_almost_done: + { + STRICT_CHECK(ch != LF); + UPDATE_STATE(s_header_value_discard_lws); + break; + } + + case s_header_value_discard_lws: + { + if (ch == ' ' || ch == '\t') { + UPDATE_STATE(s_header_value_discard_ws); + break; + } else { + switch (parser->header_state) { + case h_connection_keep_alive: + parser->flags |= F_CONNECTION_KEEP_ALIVE; + break; + case h_connection_close: + parser->flags |= F_CONNECTION_CLOSE; + break; + case h_connection_upgrade: + parser->flags |= F_CONNECTION_UPGRADE; + break; + case h_transfer_encoding_chunked: + parser->flags |= F_CHUNKED; + break; + case h_content_length: + /* do not allow empty content length */ + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + break; + default: + break; + } + + /* header value was empty */ + MARK(header_value); + UPDATE_STATE(s_header_field_start); + CALLBACK_DATA_NOADVANCE(header_value); + REEXECUTE(); + } + } + + case s_headers_almost_done: + { + STRICT_CHECK(ch != LF); + + if (parser->flags & F_TRAILING) { + /* End of a chunked request */ + UPDATE_STATE(s_message_done); + CALLBACK_NOTIFY_NOADVANCE(chunk_complete); + REEXECUTE(); + } + + /* Cannot use chunked encoding and a content-length header together + per the HTTP specification. */ + if ((parser->flags & F_CHUNKED) && + (parser->flags & F_CONTENTLENGTH)) { + SET_ERRNO(HPE_UNEXPECTED_CONTENT_LENGTH); + goto error; + } + + UPDATE_STATE(s_headers_done); + + /* Set this here so that on_headers_complete() callbacks can see it */ + if ((parser->flags & F_UPGRADE) && + (parser->flags & F_CONNECTION_UPGRADE)) { + /* For responses, "Upgrade: foo" and "Connection: upgrade" are + * mandatory only when it is a 101 Switching Protocols response, + * otherwise it is purely informational, to announce support. + */ + parser->upgrade = + (parser->type == HTTP_REQUEST || parser->status_code == 101); + } else { + parser->upgrade = (parser->method == HTTP_CONNECT); + } + + /* Here we call the headers_complete callback. This is somewhat + * different than other callbacks because if the user returns 1, we + * will interpret that as saying that this message has no body. This + * is needed for the annoying case of recieving a response to a HEAD + * request. + * + * We'd like to use CALLBACK_NOTIFY_NOADVANCE() here but we cannot, so + * we have to simulate it by handling a change in errno below. + */ + if (settings->on_headers_complete) { + switch (settings->on_headers_complete(parser)) { + case 0: + break; + + case 2: + parser->upgrade = 1; + + /* fall through */ + case 1: + parser->flags |= F_SKIPBODY; + break; + + default: + SET_ERRNO(HPE_CB_headers_complete); + RETURN(p - data); /* Error */ + } + } + + if (HTTP_PARSER_ERRNO(parser) != HPE_OK) { + RETURN(p - data); + } + + REEXECUTE(); + } + + case s_headers_done: + { + int hasBody; + STRICT_CHECK(ch != LF); + + parser->nread = 0; + nread = 0; + + hasBody = parser->flags & F_CHUNKED || + (parser->content_length > 0 && parser->content_length != ULLONG_MAX); + if (parser->upgrade && (parser->method == HTTP_CONNECT || + (parser->flags & F_SKIPBODY) || !hasBody)) { + /* Exit, the rest of the message is in a different protocol. */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + RETURN((p - data) + 1); + } + + if (parser->flags & F_SKIPBODY) { + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else if (parser->flags & F_CHUNKED) { + /* chunked encoding - ignore Content-Length header */ + UPDATE_STATE(s_chunk_size_start); + } else { + if (parser->content_length == 0) { + /* Content-Length header given but zero: Content-Length: 0\r\n */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else if (parser->content_length != ULLONG_MAX) { + /* Content-Length header given and non-zero */ + UPDATE_STATE(s_body_identity); + } else { + if (!http_message_needs_eof(parser)) { + /* Assume content-length 0 - read the next */ + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + } else { + /* Read body until EOF */ + UPDATE_STATE(s_body_identity_eof); + } + } + } + + break; + } + + case s_body_identity: + { + uint64_t to_read = MIN(parser->content_length, + (uint64_t) ((data + len) - p)); + + assert(parser->content_length != 0 + && parser->content_length != ULLONG_MAX); + + /* The difference between advancing content_length and p is because + * the latter will automaticaly advance on the next loop iteration. + * Further, if content_length ends up at 0, we want to see the last + * byte again for our message complete callback. + */ + MARK(body); + parser->content_length -= to_read; + p += to_read - 1; + + if (parser->content_length == 0) { + UPDATE_STATE(s_message_done); + + /* Mimic CALLBACK_DATA_NOADVANCE() but with one extra byte. + * + * The alternative to doing this is to wait for the next byte to + * trigger the data callback, just as in every other case. The + * problem with this is that this makes it difficult for the test + * harness to distinguish between complete-on-EOF and + * complete-on-length. It's not clear that this distinction is + * important for applications, but let's keep it for now. + */ + CALLBACK_DATA_(body, p - body_mark + 1, p - data); + REEXECUTE(); + } + + break; + } + + /* read until EOF */ + case s_body_identity_eof: + MARK(body); + p = data + len - 1; + + break; + + case s_message_done: + UPDATE_STATE(NEW_MESSAGE()); + CALLBACK_NOTIFY(message_complete); + if (parser->upgrade) { + /* Exit, the rest of the message is in a different protocol. */ + RETURN((p - data) + 1); + } + break; + + case s_chunk_size_start: + { + assert(nread == 1); + assert(parser->flags & F_CHUNKED); + + unhex_val = unhex[(unsigned char)ch]; + if (UNLIKELY(unhex_val == -1)) { + SET_ERRNO(HPE_INVALID_CHUNK_SIZE); + goto error; + } + + parser->content_length = unhex_val; + UPDATE_STATE(s_chunk_size); + break; + } + + case s_chunk_size: + { + uint64_t t; + + assert(parser->flags & F_CHUNKED); + + if (ch == CR) { + UPDATE_STATE(s_chunk_size_almost_done); + break; + } + + unhex_val = unhex[(unsigned char)ch]; + + if (unhex_val == -1) { + if (ch == ';' || ch == ' ') { + UPDATE_STATE(s_chunk_parameters); + break; + } + + SET_ERRNO(HPE_INVALID_CHUNK_SIZE); + goto error; + } + + t = parser->content_length; + t *= 16; + t += unhex_val; + + /* Overflow? Test against a conservative limit for simplicity. */ + if (UNLIKELY((ULLONG_MAX - 16) / 16 < parser->content_length)) { + SET_ERRNO(HPE_INVALID_CONTENT_LENGTH); + goto error; + } + + parser->content_length = t; + break; + } + + case s_chunk_parameters: + { + assert(parser->flags & F_CHUNKED); + /* just ignore this shit. TODO check for overflow */ + if (ch == CR) { + UPDATE_STATE(s_chunk_size_almost_done); + break; + } + break; + } + + case s_chunk_size_almost_done: + { + assert(parser->flags & F_CHUNKED); + STRICT_CHECK(ch != LF); + + parser->nread = 0; + nread = 0; + + if (parser->content_length == 0) { + parser->flags |= F_TRAILING; + UPDATE_STATE(s_header_field_start); + } else { + UPDATE_STATE(s_chunk_data); + } + CALLBACK_NOTIFY(chunk_header); + break; + } + + case s_chunk_data: + { + uint64_t to_read = MIN(parser->content_length, + (uint64_t) ((data + len) - p)); + + assert(parser->flags & F_CHUNKED); + assert(parser->content_length != 0 + && parser->content_length != ULLONG_MAX); + + /* See the explanation in s_body_identity for why the content + * length and data pointers are managed this way. + */ + MARK(body); + parser->content_length -= to_read; + p += to_read - 1; + + if (parser->content_length == 0) { + UPDATE_STATE(s_chunk_data_almost_done); + } + + break; + } + + case s_chunk_data_almost_done: + assert(parser->flags & F_CHUNKED); + assert(parser->content_length == 0); + STRICT_CHECK(ch != CR); + UPDATE_STATE(s_chunk_data_done); + CALLBACK_DATA(body); + break; + + case s_chunk_data_done: + assert(parser->flags & F_CHUNKED); + STRICT_CHECK(ch != LF); + parser->nread = 0; + nread = 0; + UPDATE_STATE(s_chunk_size_start); + CALLBACK_NOTIFY(chunk_complete); + break; + + default: + assert(0 && "unhandled state"); + SET_ERRNO(HPE_INVALID_INTERNAL_STATE); + goto error; + } + } + + /* Run callbacks for any marks that we have leftover after we ran out of + * bytes. There should be at most one of these set, so it's OK to invoke + * them in series (unset marks will not result in callbacks). + * + * We use the NOADVANCE() variety of callbacks here because 'p' has already + * overflowed 'data' and this allows us to correct for the off-by-one that + * we'd otherwise have (since CALLBACK_DATA() is meant to be run with a 'p' + * value that's in-bounds). + */ + + assert(((header_field_mark ? 1 : 0) + + (header_value_mark ? 1 : 0) + + (url_mark ? 1 : 0) + + (body_mark ? 1 : 0) + + (status_mark ? 1 : 0)) <= 1); + + CALLBACK_DATA_NOADVANCE(header_field); + CALLBACK_DATA_NOADVANCE(header_value); + CALLBACK_DATA_NOADVANCE(url); + CALLBACK_DATA_NOADVANCE(body); + CALLBACK_DATA_NOADVANCE(status); + + RETURN(len); + +error: + if (HTTP_PARSER_ERRNO(parser) == HPE_OK) { + SET_ERRNO(HPE_UNKNOWN); + } + + RETURN(p - data); +} + + +/* Does the parser need to see an EOF to find the end of the message? */ +int +http_message_needs_eof (const http_parser *parser) +{ + if (parser->type == HTTP_REQUEST) { + return 0; + } + + /* See RFC 2616 section 4.4 */ + if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */ + parser->status_code == 204 || /* No Content */ + parser->status_code == 304 || /* Not Modified */ + parser->flags & F_SKIPBODY) { /* response to a HEAD request */ + return 0; + } + + if ((parser->flags & F_CHUNKED) || parser->content_length != ULLONG_MAX) { + return 0; + } + + return 1; +} + + +int +http_should_keep_alive (const http_parser *parser) +{ + if (parser->http_major > 0 && parser->http_minor > 0) { + /* HTTP/1.1 */ + if (parser->flags & F_CONNECTION_CLOSE) { + return 0; + } + } else { + /* HTTP/1.0 or earlier */ + if (!(parser->flags & F_CONNECTION_KEEP_ALIVE)) { + return 0; + } + } + + return !http_message_needs_eof(parser); +} + +void +http_parser_init (http_parser *parser, enum http_parser_type t) +{ + void *data = parser->data; /* preserve application data */ + memset(parser, 0, sizeof(*parser)); + parser->data = data; + parser->type = t; + parser->state = (t == HTTP_REQUEST ? s_start_req : (t == HTTP_RESPONSE ? s_start_res : s_start_req_or_res)); + parser->http_errno = HPE_OK; +} + +void +http_parser_settings_init(http_parser_settings *settings) +{ + memset(settings, 0, sizeof(*settings)); +} + +const char * +http_errno_name(enum http_errno err) { + assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); + return http_strerror_tab[err].name; +} + +const char * +http_errno_description(enum http_errno err) { + assert(((size_t) err) < ARRAY_SIZE(http_strerror_tab)); + return http_strerror_tab[err].description; +} + +#ifdef WITH_HTTP_PRASER_URL +static enum http_host_state +http_parse_host_char(enum http_host_state s, const char ch) { + switch(s) { + case s_http_userinfo: + case s_http_userinfo_start: + if (ch == '@') { + return s_http_host_start; + } + + if (IS_USERINFO_CHAR(ch)) { + return s_http_userinfo; + } + break; + + case s_http_host_start: + if (ch == '[') { + return s_http_host_v6_start; + } + + if (IS_HOST_CHAR(ch)) { + return s_http_host; + } + + break; + + case s_http_host: + if (IS_HOST_CHAR(ch)) { + return s_http_host; + } + + /* fall through */ + case s_http_host_v6_end: + if (ch == ':') { + return s_http_host_port_start; + } + + break; + + case s_http_host_v6: + if (ch == ']') { + return s_http_host_v6_end; + } + + /* fall through */ + case s_http_host_v6_start: + if (IS_HEX(ch) || ch == ':' || ch == '.') { + return s_http_host_v6; + } + + if (s == s_http_host_v6 && ch == '%') { + return s_http_host_v6_zone_start; + } + break; + + case s_http_host_v6_zone: + if (ch == ']') { + return s_http_host_v6_end; + } + + /* fall through */ + case s_http_host_v6_zone_start: + /* RFC 6874 Zone ID consists of 1*( unreserved / pct-encoded) */ + if (IS_ALPHANUM(ch) || ch == '%' || ch == '.' || ch == '-' || ch == '_' || + ch == '~') { + return s_http_host_v6_zone; + } + break; + + case s_http_host_port: + case s_http_host_port_start: + if (IS_NUM(ch)) { + return s_http_host_port; + } + + break; + + default: + break; + } + return s_http_host_dead; +} + +static int +http_parse_host(const char * buf, struct http_parser_url *u, int found_at) { + enum http_host_state s; + + const char *p; + size_t buflen = u->field_data[UF_HOST].off + u->field_data[UF_HOST].len; + + assert(u->field_set & (1 << UF_HOST)); + + u->field_data[UF_HOST].len = 0; + + s = found_at ? s_http_userinfo_start : s_http_host_start; + + for (p = buf + u->field_data[UF_HOST].off; p < buf + buflen; p++) { + enum http_host_state new_s = http_parse_host_char(s, *p); + + if (new_s == s_http_host_dead) { + return 1; + } + + switch(new_s) { + case s_http_host: + if (s != s_http_host) { + u->field_data[UF_HOST].off = (uint16_t)(p - buf); + } + u->field_data[UF_HOST].len++; + break; + + case s_http_host_v6: + if (s != s_http_host_v6) { + u->field_data[UF_HOST].off = (uint16_t)(p - buf); + } + u->field_data[UF_HOST].len++; + break; + + case s_http_host_v6_zone_start: + case s_http_host_v6_zone: + u->field_data[UF_HOST].len++; + break; + + case s_http_host_port: + if (s != s_http_host_port) { + u->field_data[UF_PORT].off = (uint16_t)(p - buf); + u->field_data[UF_PORT].len = 0; + u->field_set |= (1 << UF_PORT); + } + u->field_data[UF_PORT].len++; + break; + + case s_http_userinfo: + if (s != s_http_userinfo) { + u->field_data[UF_USERINFO].off = (uint16_t)(p - buf); + u->field_data[UF_USERINFO].len = 0; + u->field_set |= (1 << UF_USERINFO); + } + u->field_data[UF_USERINFO].len++; + break; + + default: + break; + } + s = new_s; + } + + /* Make sure we don't end somewhere unexpected */ + switch (s) { + case s_http_host_start: + case s_http_host_v6_start: + case s_http_host_v6: + case s_http_host_v6_zone_start: + case s_http_host_v6_zone: + case s_http_host_port_start: + case s_http_userinfo: + case s_http_userinfo_start: + return 1; + default: + break; + } + + return 0; +} + +void +http_parser_url_init(struct http_parser_url *u) { + memset(u, 0, sizeof(*u)); +} + +int +http_parser_parse_url(const char *buf, size_t buflen, int is_connect, + struct http_parser_url *u) +{ + enum state s; + const char *p; + enum http_parser_url_fields uf, old_uf; + int found_at = 0; + + if (buflen == 0) { + return 1; + } + + u->port = u->field_set = 0; + s = is_connect ? s_req_server_start : s_req_spaces_before_url; + old_uf = UF_MAX; + + for (p = buf; p < buf + buflen; p++) { + s = parse_url_char(s, *p); + + /* Figure out the next field that we're operating on */ + switch (s) { + case s_dead: + return 1; + + /* Skip delimeters */ + case s_req_schema_slash: + case s_req_schema_slash_slash: + case s_req_server_start: + case s_req_query_string_start: + case s_req_fragment_start: + continue; + + case s_req_schema: + uf = UF_SCHEMA; + break; + + case s_req_server_with_at: + found_at = 1; + + /* fall through */ + case s_req_server: + uf = UF_HOST; + break; + + case s_req_path: + uf = UF_PATH; + break; + + case s_req_query_string: + uf = UF_QUERY; + break; + + case s_req_fragment: + uf = UF_FRAGMENT; + break; + + default: + assert(!"Unexpected state"); + return 1; + } + + /* Nothing's changed; soldier on */ + if (uf == old_uf) { + u->field_data[uf].len++; + continue; + } + + u->field_data[uf].off = (uint16_t)(p - buf); + u->field_data[uf].len = 1; + + u->field_set |= (1 << uf); + old_uf = uf; + } + + /* host must be present if there is a schema */ + /* parsing http:///toto will fail */ + if ((u->field_set & (1 << UF_SCHEMA)) && + (u->field_set & (1 << UF_HOST)) == 0) { + return 1; + } + + if (u->field_set & (1 << UF_HOST)) { + if (http_parse_host(buf, u, found_at) != 0) { + return 1; + } + } + + /* CONNECT requests can only contain "hostname:port" */ + if (is_connect && u->field_set != ((1 << UF_HOST)|(1 << UF_PORT))) { + return 1; + } + + if (u->field_set & (1 << UF_PORT)) { + uint16_t off; + uint16_t len; + const char* p; + const char* end; + unsigned long v; + + off = u->field_data[UF_PORT].off; + len = u->field_data[UF_PORT].len; + end = buf + off + len; + + /* NOTE: The characters are already validated and are in the [0-9] range */ + assert(off + len <= buflen && "Port number overflow"); + v = 0; + for (p = buf + off; p < end; p++) { + v *= 10; + v += *p - '0'; + + /* Ports have a max value of 2^16 */ + if (v > 0xffff) { + return 1; + } + } + + u->port = (uint16_t) v; + } + + return 0; +} +#endif + +void +http_parser_pause(http_parser *parser, int paused) { + /* Users should only be pausing/unpausing a parser that is not in an error + * state. In non-debug builds, there's not much that we can do about this + * other than ignore it. + */ + if (HTTP_PARSER_ERRNO(parser) == HPE_OK || + HTTP_PARSER_ERRNO(parser) == HPE_PAUSED) { + uint32_t nread = parser->nread; /* used by the SET_ERRNO macro */ + SET_ERRNO((paused) ? HPE_PAUSED : HPE_OK); + } else { + assert(0 && "Attempting to pause parser in error state"); + } +} + +int +http_body_is_final(const struct http_parser *parser) { + return parser->state == s_message_done; +} + +unsigned long +http_parser_version(void) { + return HTTP_PARSER_VERSION_MAJOR * 0x10000 | + HTTP_PARSER_VERSION_MINOR * 0x00100 | + HTTP_PARSER_VERSION_PATCH * 0x00001; +} + +void +http_parser_set_max_header_size(uint32_t size) { + max_header_size = size; +} diff --git a/3rdPartner/libhv/http/http_parser.h b/3rdPartner/libhv/http/http_parser.h new file mode 100644 index 0000000..99ee789 --- /dev/null +++ b/3rdPartner/libhv/http/http_parser.h @@ -0,0 +1,311 @@ +/* Copyright Joyent, Inc. and other Node contributors. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ +#ifndef http_parser_h +#define http_parser_h +#ifdef __cplusplus +extern "C" { +#endif +#include "httpdef.h" + +/* Also update SONAME in the Makefile whenever you change these. */ +#define HTTP_PARSER_VERSION_MAJOR 2 +#define HTTP_PARSER_VERSION_MINOR 9 +#define HTTP_PARSER_VERSION_PATCH 1 + +#include +#if defined(_WIN32) && !defined(__MINGW32__) && \ + (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__) +#include +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include +#endif + +/* Compile with -DHTTP_PARSER_STRICT=0 to make less checks, but run + * faster + */ +#ifndef HTTP_PARSER_STRICT +# define HTTP_PARSER_STRICT 1 +#endif + +/* Maximium header size allowed. If the macro is not defined + * before including this header then the default is used. To + * change the maximum header size, define the macro in the build + * environment (e.g. -DHTTP_MAX_HEADER_SIZE=). To remove + * the effective limit on the size of the header, define the macro + * to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff) + */ +#ifndef HTTP_MAX_HEADER_SIZE +# define HTTP_MAX_HEADER_SIZE (80*1024) +#endif + +typedef struct http_parser http_parser; +typedef struct http_parser_settings http_parser_settings; + +/* Callbacks should return non-zero to indicate an error. The parser will + * then halt execution. + * + * The one exception is on_headers_complete. In a HTTP_RESPONSE parser + * returning '1' from on_headers_complete will tell the parser that it + * should not expect a body. This is used when receiving a response to a + * HEAD request which may contain 'Content-Length' or 'Transfer-Encoding: + * chunked' headers that indicate the presence of a body. + * + * Returning `2` from on_headers_complete will tell parser that it should not + * expect neither a body nor any futher responses on this connection. This is + * useful for handling responses to a CONNECT request which may not contain + * `Upgrade` or `Connection: upgrade` headers. + * + * http_data_cb does not return data chunks. It will be called arbitrarily + * many times for each string. E.G. you might get 10 callbacks for "on_url" + * each providing just a few characters more data. + */ +typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); +typedef int (*http_cb) (http_parser*); + + +/* Flag values for http_parser.flags field */ +enum flags + { F_CHUNKED = 1 << 0 + , F_CONNECTION_KEEP_ALIVE = 1 << 1 + , F_CONNECTION_CLOSE = 1 << 2 + , F_CONNECTION_UPGRADE = 1 << 3 + , F_TRAILING = 1 << 4 + , F_UPGRADE = 1 << 5 + , F_SKIPBODY = 1 << 6 + , F_CONTENTLENGTH = 1 << 7 + }; + + +/* Map for errno-related constants + * + * The provided argument should be a macro that takes 2 arguments. + */ +#define HTTP_ERRNO_MAP(XX) \ + /* No error */ \ + XX(OK, "success") \ + \ + /* Callback-related errors */ \ + XX(CB_message_begin, "the on_message_begin callback failed") \ + XX(CB_url, "the on_url callback failed") \ + XX(CB_header_field, "the on_header_field callback failed") \ + XX(CB_header_value, "the on_header_value callback failed") \ + XX(CB_headers_complete, "the on_headers_complete callback failed") \ + XX(CB_body, "the on_body callback failed") \ + XX(CB_message_complete, "the on_message_complete callback failed") \ + XX(CB_status, "the on_status callback failed") \ + XX(CB_chunk_header, "the on_chunk_header callback failed") \ + XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ + \ + /* Parsing-related errors */ \ + XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ + XX(HEADER_OVERFLOW, \ + "too many header bytes seen; overflow detected") \ + XX(CLOSED_CONNECTION, \ + "data received after completed connection: close message") \ + XX(INVALID_VERSION, "invalid HTTP version") \ + XX(INVALID_STATUS, "invalid HTTP status code") \ + XX(INVALID_METHOD, "invalid HTTP method") \ + XX(INVALID_URL, "invalid URL") \ + XX(INVALID_HOST, "invalid host") \ + XX(INVALID_PORT, "invalid port") \ + XX(INVALID_PATH, "invalid path") \ + XX(INVALID_QUERY_STRING, "invalid query string") \ + XX(INVALID_FRAGMENT, "invalid fragment") \ + XX(LF_EXPECTED, "LF character expected") \ + XX(INVALID_HEADER_TOKEN, "invalid character in header") \ + XX(INVALID_CONTENT_LENGTH, \ + "invalid character in content-length header") \ + XX(UNEXPECTED_CONTENT_LENGTH, \ + "unexpected content-length header") \ + XX(INVALID_CHUNK_SIZE, \ + "invalid character in chunk size header") \ + XX(INVALID_CONSTANT, "invalid constant string") \ + XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\ + XX(STRICT, "strict mode assertion failed") \ + XX(PAUSED, "parser is paused") \ + XX(UNKNOWN, "an unknown error occurred") + + +/* Define HPE_* values for each errno value above */ +#define HTTP_ERRNO_GEN(n, s) HPE_##n, +enum http_errno { + HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) +}; +#undef HTTP_ERRNO_GEN + + +/* Get an http_errno value from an http_parser */ +#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno) + + +struct http_parser { + /** PRIVATE **/ + unsigned int type : 2; /* enum http_parser_type */ + unsigned int flags : 8; /* F_* values from 'flags' enum; semi-public */ + unsigned int state : 7; /* enum state from http_parser.c */ + unsigned int header_state : 7; /* enum header_state from http_parser.c */ + unsigned int index : 7; /* index into current matcher */ + unsigned int lenient_http_headers : 1; + + uint32_t nread; /* # bytes read in various scenarios */ + uint64_t content_length; /* # bytes in body (0 if no Content-Length header) */ + + /** READ-ONLY **/ + unsigned short http_major; + unsigned short http_minor; + unsigned int status_code : 16; /* responses only */ + unsigned int method : 8; /* requests only */ + unsigned int http_errno : 7; + + /* 1 = Upgrade header was present and the parser has exited because of that. + * 0 = No upgrade header present. + * Should be checked when http_parser_execute() returns in addition to + * error checking. + */ + unsigned int upgrade : 1; + + /** PUBLIC **/ + void *data; /* A pointer to get hook to the "connection" or "socket" object */ +}; + + +struct http_parser_settings { + http_cb on_message_begin; + http_data_cb on_url; + http_data_cb on_status; + http_data_cb on_header_field; + http_data_cb on_header_value; + http_cb on_headers_complete; + http_data_cb on_body; + http_cb on_message_complete; + /* When on_chunk_header is called, the current chunk length is stored + * in parser->content_length. + */ + http_cb on_chunk_header; + http_cb on_chunk_complete; +}; + + +#ifdef WITH_HTTP_PRASER_URL +enum http_parser_url_fields + { UF_SCHEMA = 0 + , UF_HOST = 1 + , UF_PORT = 2 + , UF_PATH = 3 + , UF_QUERY = 4 + , UF_FRAGMENT = 5 + , UF_USERINFO = 6 + , UF_MAX = 7 + }; + + +/* Result structure for http_parser_parse_url(). + * + * Callers should index into field_data[] with UF_* values iff field_set + * has the relevant (1 << UF_*) bit set. As a courtesy to clients (and + * because we probably have padding left over), we convert any port to + * a uint16_t. + */ +struct http_parser_url { + uint16_t field_set; /* Bitmask of (1 << UF_*) values */ + uint16_t port; /* Converted UF_PORT string */ + + struct { + uint16_t off; /* Offset into buffer in which field starts */ + uint16_t len; /* Length of run in buffer */ + } field_data[UF_MAX]; +}; +#endif + + +/* Returns the library version. Bits 16-23 contain the major version number, + * bits 8-15 the minor version number and bits 0-7 the patch level. + * Usage example: + * + * unsigned long version = http_parser_version(); + * unsigned major = (version >> 16) & 255; + * unsigned minor = (version >> 8) & 255; + * unsigned patch = version & 255; + * printf("http_parser v%u.%u.%u\n", major, minor, patch); + */ +unsigned long http_parser_version(void); + +void http_parser_init(http_parser *parser, enum http_parser_type type); + + +/* Initialize http_parser_settings members to 0 + */ +void http_parser_settings_init(http_parser_settings *settings); + + +/* Executes the parser. Returns number of parsed bytes. Sets + * `parser->http_errno` on error. */ +size_t http_parser_execute(http_parser *parser, + const http_parser_settings *settings, + const char *data, + size_t len); + + +/* If http_should_keep_alive() in the on_headers_complete or + * on_message_complete callback returns 0, then this should be + * the last message on the connection. + * If you are the server, respond with the "Connection: close" header. + * If you are the client, close the connection. + */ +int http_should_keep_alive(const http_parser *parser); + +/* Return a string name of the given error */ +const char *http_errno_name(enum http_errno err); + +/* Return a string description of the given error */ +const char *http_errno_description(enum http_errno err); + +#ifdef WITH_HTTP_PRASER_URL +/* Initialize all http_parser_url members to 0 */ +void http_parser_url_init(struct http_parser_url *u); + +/* Parse a URL; return nonzero on failure */ +int http_parser_parse_url(const char *buf, size_t buflen, + int is_connect, + struct http_parser_url *u); +#endif + +/* Pause or un-pause the parser; a nonzero value pauses */ +void http_parser_pause(http_parser *parser, int paused); + +/* Checks if this is the final chunk of the body. */ +int http_body_is_final(const http_parser *parser); + +/* Change the maximum header size provided at compile time. */ +void http_parser_set_max_header_size(uint32_t size); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/3rdPartner/libhv/http/httpdef.c b/3rdPartner/libhv/http/httpdef.c new file mode 100644 index 0000000..c791667 --- /dev/null +++ b/3rdPartner/libhv/http/httpdef.c @@ -0,0 +1,106 @@ +#include "httpdef.h" + +#include + +static int strstartswith(const char* str, const char* start) { + while (*str && *start && *str == *start) { + ++str; + ++start; + } + return *start == '\0'; +} + +const char* http_status_str(enum http_status status) { + switch (status) { +#define XX(num, name, string) case HTTP_STATUS_##name: return #string; + HTTP_STATUS_MAP(XX) +#undef XX + default: return ""; + } +} + +const char* http_method_str(enum http_method method) { + switch (method) { +#define XX(num, name, string) case HTTP_##name: return #string; + HTTP_METHOD_MAP(XX) +#undef XX + default: return ""; + } +} + +const char* http_content_type_str(enum http_content_type type) { + switch (type) { +#define XX(name, string, suffix) case name: return #string; + HTTP_CONTENT_TYPE_MAP(XX) +#undef XX + default: return ""; + } +} + +enum http_status http_status_enum(const char* str) { +#define XX(num, name, string) \ + if (strcmp(str, #string) == 0) { \ + return HTTP_STATUS_##name; \ + } + HTTP_STATUS_MAP(XX) +#undef XX + return HTTP_CUSTOM_STATUS; +} + +enum http_method http_method_enum(const char* str) { +#define XX(num, name, string) \ + if (strcmp(str, #string) == 0) { \ + return HTTP_##name; \ + } + HTTP_METHOD_MAP(XX) +#undef XX + return HTTP_CUSTOM_METHOD; +} + +enum http_content_type http_content_type_enum(const char* str) { + if (!str || !*str) { + return CONTENT_TYPE_NONE; + } +#define XX(name, string, suffix) \ + if (strstartswith(str, #string)) { \ + return name; \ + } + HTTP_CONTENT_TYPE_MAP(XX) +#undef XX + return CONTENT_TYPE_UNDEFINED; +} + +const char* http_content_type_suffix(enum http_content_type type) { + switch (type) { +#define XX(name, string, suffix) case name: return #suffix; + HTTP_CONTENT_TYPE_MAP(XX) +#undef XX + default: return ""; + } +} + +const char* http_content_type_str_by_suffix(const char* str) { + if (!str || !*str) { + return ""; + } +#define XX(name, string, suffix) \ + if (strcmp(str, #suffix) == 0) { \ + return #string; \ + } + HTTP_CONTENT_TYPE_MAP(XX) +#undef XX + return ""; +} + +enum http_content_type http_content_type_enum_by_suffix(const char* str) { + if (!str || !*str) { + return CONTENT_TYPE_NONE; + } +#define XX(name, string, suffix) \ + if (strcmp(str, #suffix) == 0) { \ + return name; \ + } + HTTP_CONTENT_TYPE_MAP(XX) +#undef XX + return CONTENT_TYPE_UNDEFINED; +} diff --git a/3rdPartner/libhv/http/httpdef.h b/3rdPartner/libhv/http/httpdef.h new file mode 100644 index 0000000..3f25f54 --- /dev/null +++ b/3rdPartner/libhv/http/httpdef.h @@ -0,0 +1,295 @@ +#ifndef HV_HTTP_DEF_H_ +#define HV_HTTP_DEF_H_ + +#include "hexport.h" + +#define DEFAULT_HTTP_PORT 80 +#define DEFAULT_HTTPS_PORT 443 + +enum http_version { HTTP_V1 = 1, HTTP_V2 = 2 }; +enum http_session_type { HTTP_CLIENT, HTTP_SERVER }; +enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; +enum http_parser_state { + HP_START_REQ_OR_RES, + HP_MESSAGE_BEGIN, + HP_URL, + HP_STATUS, + HP_HEADER_FIELD, + HP_HEADER_VALUE, + HP_HEADERS_COMPLETE, + HP_CHUNK_HEADER, + HP_BODY, + HP_CHUNK_COMPLETE, + HP_MESSAGE_COMPLETE, + HP_ERROR +}; + +// http_status +// XX(num, name, string) +#define HTTP_STATUS_MAP(XX) \ + XX(100, CONTINUE, Continue) \ + XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \ + XX(102, PROCESSING, Processing) \ + XX(200, OK, OK) \ + XX(201, CREATED, Created) \ + XX(202, ACCEPTED, Accepted) \ + XX(203, NON_AUTHORITATIVE_INFORMATION, Non-Authoritative Information) \ + XX(204, NO_CONTENT, No Content) \ + XX(205, RESET_CONTENT, Reset Content) \ + XX(206, PARTIAL_CONTENT, Partial Content) \ + XX(207, MULTI_STATUS, Multi-Status) \ + XX(208, ALREADY_REPORTED, Already Reported) \ + XX(226, IM_USED, IM Used) \ + XX(300, MULTIPLE_CHOICES, Multiple Choices) \ + XX(301, MOVED_PERMANENTLY, Moved Permanently) \ + XX(302, FOUND, Found) \ + XX(303, SEE_OTHER, See Other) \ + XX(304, NOT_MODIFIED, Not Modified) \ + XX(305, USE_PROXY, Use Proxy) \ + XX(307, TEMPORARY_REDIRECT, Temporary Redirect) \ + XX(308, PERMANENT_REDIRECT, Permanent Redirect) \ + XX(400, BAD_REQUEST, Bad Request) \ + XX(401, UNAUTHORIZED, Unauthorized) \ + XX(402, PAYMENT_REQUIRED, Payment Required) \ + XX(403, FORBIDDEN, Forbidden) \ + XX(404, NOT_FOUND, Not Found) \ + XX(405, METHOD_NOT_ALLOWED, Method Not Allowed) \ + XX(406, NOT_ACCEPTABLE, Not Acceptable) \ + XX(407, PROXY_AUTHENTICATION_REQUIRED, Proxy Authentication Required) \ + XX(408, REQUEST_TIMEOUT, Request Timeout) \ + XX(409, CONFLICT, Conflict) \ + XX(410, GONE, Gone) \ + XX(411, LENGTH_REQUIRED, Length Required) \ + XX(412, PRECONDITION_FAILED, Precondition Failed) \ + XX(413, PAYLOAD_TOO_LARGE, Payload Too Large) \ + XX(414, URI_TOO_LONG, URI Too Long) \ + XX(415, UNSUPPORTED_MEDIA_TYPE, Unsupported Media Type) \ + XX(416, RANGE_NOT_SATISFIABLE, Range Not Satisfiable) \ + XX(417, EXPECTATION_FAILED, Expectation Failed) \ + XX(421, MISDIRECTED_REQUEST, Misdirected Request) \ + XX(422, UNPROCESSABLE_ENTITY, Unprocessable Entity) \ + XX(423, LOCKED, Locked) \ + XX(424, FAILED_DEPENDENCY, Failed Dependency) \ + XX(426, UPGRADE_REQUIRED, Upgrade Required) \ + XX(428, PRECONDITION_REQUIRED, Precondition Required) \ + XX(429, TOO_MANY_REQUESTS, Too Many Requests) \ + XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, Request Header Fields Too Large) \ + XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, Unavailable For Legal Reasons) \ + XX(500, INTERNAL_SERVER_ERROR, Internal Server Error) \ + XX(501, NOT_IMPLEMENTED, Not Implemented) \ + XX(502, BAD_GATEWAY, Bad Gateway) \ + XX(503, SERVICE_UNAVAILABLE, Service Unavailable) \ + XX(504, GATEWAY_TIMEOUT, Gateway Timeout) \ + XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP Version Not Supported) \ + XX(506, VARIANT_ALSO_NEGOTIATES, Variant Also Negotiates) \ + XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \ + XX(508, LOOP_DETECTED, Loop Detected) \ + XX(510, NOT_EXTENDED, Not Extended) \ + XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \ + +// HTTP_STATUS_##name +enum http_status { +#define XX(num, name, string) HTTP_STATUS_##name = num, + HTTP_STATUS_MAP(XX) +#undef XX + HTTP_CUSTOM_STATUS +}; + +#define HTTP_STATUS_IS_REDIRECT(status) \ + ( \ + (status) == HTTP_STATUS_MOVED_PERMANENTLY || \ + (status) == HTTP_STATUS_FOUND || \ + (status) == HTTP_STATUS_SEE_OTHER || \ + (status) == HTTP_STATUS_TEMPORARY_REDIRECT || \ + (status) == HTTP_STATUS_PERMANENT_REDIRECT \ + ) + +// http_mehtod +// XX(num, name, string) +#define HTTP_METHOD_MAP(XX) \ + XX(0, DELETE, DELETE) \ + XX(1, GET, GET) \ + XX(2, HEAD, HEAD) \ + XX(3, POST, POST) \ + XX(4, PUT, PUT) \ + /* pathological */ \ + XX(5, CONNECT, CONNECT) \ + XX(6, OPTIONS, OPTIONS) \ + XX(7, TRACE, TRACE) \ + /* WebDAV */ \ + XX(8, COPY, COPY) \ + XX(9, LOCK, LOCK) \ + XX(10, MKCOL, MKCOL) \ + XX(11, MOVE, MOVE) \ + XX(12, PROPFIND, PROPFIND) \ + XX(13, PROPPATCH, PROPPATCH) \ + XX(14, SEARCH, SEARCH) \ + XX(15, UNLOCK, UNLOCK) \ + XX(16, BIND, BIND) \ + XX(17, REBIND, REBIND) \ + XX(18, UNBIND, UNBIND) \ + XX(19, ACL, ACL) \ + /* subversion */ \ + XX(20, REPORT, REPORT) \ + XX(21, MKACTIVITY, MKACTIVITY) \ + XX(22, CHECKOUT, CHECKOUT) \ + XX(23, MERGE, MERGE) \ + /* upnp */ \ + XX(24, MSEARCH, M-SEARCH) \ + XX(25, NOTIFY, NOTIFY) \ + XX(26, SUBSCRIBE, SUBSCRIBE) \ + XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ + /* RFC-5789 */ \ + XX(28, PATCH, PATCH) \ + XX(29, PURGE, PURGE) \ + /* CalDAV */ \ + XX(30, MKCALENDAR, MKCALENDAR) \ + /* RFC-2068, section 19.6.1.2 */ \ + XX(31, LINK, LINK) \ + XX(32, UNLINK, UNLINK) \ + /* icecast */ \ + XX(33, SOURCE, SOURCE) \ + +// HTTP_##name +enum http_method { +#define XX(num, name, string) HTTP_##name = num, + HTTP_METHOD_MAP(XX) +#undef XX + HTTP_CUSTOM_METHOD +}; + +// MIME: https://www.iana.org/assignments/media-types/media-types.xhtml +// XX(name, mime, suffix) +#define MIME_TYPE_TEXT_MAP(XX) \ + XX(TEXT_PLAIN, text/plain, txt) \ + XX(TEXT_HTML, text/html, html) \ + XX(TEXT_CSS, text/css, css) \ + XX(TEXT_CSV, text/csv, csv) \ + XX(TEXT_MARKDOWN, text/markdown, md) \ + XX(TEXT_EVENT_STREAM, text/event-stream, sse) \ + +#define MIME_TYPE_APPLICATION_MAP(XX) \ + XX(APPLICATION_JAVASCRIPT, application/javascript, js) \ + XX(APPLICATION_JSON, application/json, json) \ + XX(APPLICATION_XML, application/xml, xml) \ + XX(APPLICATION_URLENCODED, application/x-www-form-urlencoded, kv) \ + XX(APPLICATION_OCTET_STREAM,application/octet-stream, bin) \ + XX(APPLICATION_ZIP, application/zip, zip) \ + XX(APPLICATION_GZIP, application/gzip, gzip) \ + XX(APPLICATION_7Z, application/x-7z-compressed, 7z) \ + XX(APPLICATION_RAR, application/x-rar-compressed, rar) \ + XX(APPLICATION_PDF, application/pdf, pdf) \ + XX(APPLICATION_RTF, application/rtf, rtf) \ + XX(APPLICATION_GRPC, application/grpc, grpc) \ + XX(APPLICATION_WASM, application/wasm, wasm) \ + XX(APPLICATION_JAR, application/java-archive, jar) \ + XX(APPLICATION_XHTML, application/xhtml+xml, xhtml) \ + XX(APPLICATION_ATOM, application/atom+xml, atom) \ + XX(APPLICATION_RSS, application/rss+xml, rss) \ + XX(APPLICATION_WORD, application/msword, doc) \ + XX(APPLICATION_EXCEL, application/vnd.ms-excel, xls) \ + XX(APPLICATION_PPT, application/vnd.ms-powerpoint, ppt) \ + XX(APPLICATION_EOT, application/vnd.ms-fontobject, eot) \ + XX(APPLICATION_M3U8, application/vnd.apple.mpegurl, m3u8) \ + XX(APPLICATION_DOCX, application/vnd.openxmlformats-officedocument.wordprocessingml.document, docx) \ + XX(APPLICATION_XLSX, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, xlsx) \ + XX(APPLICATION_PPTX, application/vnd.openxmlformats-officedocument.presentationml.presentation, pptx) \ + +#define MIME_TYPE_MULTIPART_MAP(XX) \ + XX(MULTIPART_FORM_DATA, multipart/form-data, mp) \ + +#define MIME_TYPE_IMAGE_MAP(XX) \ + XX(IMAGE_JPEG, image/jpeg, jpg) \ + XX(IMAGE_PNG, image/png, png) \ + XX(IMAGE_GIF, image/gif, gif) \ + XX(IMAGE_ICO, image/x-icon, ico) \ + XX(IMAGE_BMP, image/x-ms-bmp, bmp) \ + XX(IMAGE_SVG, image/svg+xml, svg) \ + XX(IMAGE_TIFF, image/tiff, tiff) \ + XX(IMAGE_WEBP, image/webp, webp) \ + +#define MIME_TYPE_VIDEO_MAP(XX) \ + XX(VIDEO_MP4, video/mp4, mp4) \ + XX(VIDEO_FLV, video/x-flv, flv) \ + XX(VIDEO_M4V, video/x-m4v, m4v) \ + XX(VIDEO_MNG, video/x-mng, mng) \ + XX(VIDEO_TS, video/mp2t, ts) \ + XX(VIDEO_MPEG, video/mpeg, mpeg) \ + XX(VIDEO_WEBM, video/webm, webm) \ + XX(VIDEO_MOV, video/quicktime, mov) \ + XX(VIDEO_3GPP, video/3gpp, 3gpp) \ + XX(VIDEO_AVI, video/x-msvideo, avi) \ + XX(VIDEO_WMV, video/x-ms-wmv, wmv) \ + XX(VIDEO_ASF, video/x-ms-asf, asf) \ + +#define MIME_TYPE_AUDIO_MAP(XX) \ + XX(AUDIO_MP3, audio/mpeg, mp3) \ + XX(AUDIO_OGG, audio/ogg, ogg) \ + XX(AUDIO_M4A, audio/x-m4a, m4a) \ + XX(AUDIO_AAC, audio/aac, aac) \ + XX(AUDIO_PCMA, audio/PCMA, pcma) \ + XX(AUDIO_OPUS, audio/opus, opus) \ + +#define MIME_TYPE_FONT_MAP(XX) \ + XX(FONT_TTF, font/ttf, ttf) \ + XX(FONT_OTF, font/otf, otf) \ + XX(FONT_WOFF, font/woff, woff) \ + XX(FONT_WOFF2, font/woff2, woff2) \ + +#define HTTP_CONTENT_TYPE_MAP(XX) \ + MIME_TYPE_TEXT_MAP(XX) \ + MIME_TYPE_APPLICATION_MAP(XX) \ + MIME_TYPE_MULTIPART_MAP(XX) \ + MIME_TYPE_IMAGE_MAP(XX) \ + MIME_TYPE_VIDEO_MAP(XX) \ + MIME_TYPE_AUDIO_MAP(XX) \ + MIME_TYPE_FONT_MAP(XX) \ + +#define X_WWW_FORM_URLENCODED APPLICATION_URLENCODED // for compatibility + +enum http_content_type { +#define XX(name, string, suffix) name, + CONTENT_TYPE_NONE = 0, + + CONTENT_TYPE_TEXT = 100, + MIME_TYPE_TEXT_MAP(XX) + + CONTENT_TYPE_APPLICATION = 200, + MIME_TYPE_APPLICATION_MAP(XX) + + CONTENT_TYPE_MULTIPART = 300, + MIME_TYPE_MULTIPART_MAP(XX) + + CONTENT_TYPE_IMAGE = 400, + MIME_TYPE_IMAGE_MAP(XX) + + CONTENT_TYPE_VIDEO = 500, + MIME_TYPE_VIDEO_MAP(XX) + + CONTENT_TYPE_AUDIO = 600, + MIME_TYPE_AUDIO_MAP(XX) + + CONTENT_TYPE_FONT = 700, + MIME_TYPE_FONT_MAP(XX) + + CONTENT_TYPE_UNDEFINED = 1000 +#undef XX +}; + +BEGIN_EXTERN_C + +HV_EXPORT const char* http_status_str(enum http_status status); +HV_EXPORT const char* http_method_str(enum http_method method); +HV_EXPORT const char* http_content_type_str(enum http_content_type type); + +HV_EXPORT enum http_status http_status_enum(const char* str); +HV_EXPORT enum http_method http_method_enum(const char* str); +HV_EXPORT enum http_content_type http_content_type_enum(const char* str); + +HV_EXPORT const char* http_content_type_suffix(enum http_content_type type); +HV_EXPORT const char* http_content_type_str_by_suffix(const char* suffix); +HV_EXPORT enum http_content_type http_content_type_enum_by_suffix(const char* suffix); + +END_EXTERN_C + +#endif // HV_HTTP_DEF_H_ diff --git a/3rdPartner/libhv/http/multipart_parser.c b/3rdPartner/libhv/http/multipart_parser.c new file mode 100644 index 0000000..6a2e550 --- /dev/null +++ b/3rdPartner/libhv/http/multipart_parser.c @@ -0,0 +1,308 @@ +/* Based on node-formidable by Felix Geisendörfer + * Igor Afonov - afonov@gmail.com - 2012 + * MIT License - http://www.opensource.org/licenses/mit-license.php + */ + +#include "multipart_parser.h" + +#include +#include +#include + +static void multipart_log(const char * format, ...) +{ +#ifdef DEBUG_MULTIPART + va_list args; + va_start(args, format); + + fprintf(stderr, "[HTTP_MULTIPART_PARSER] %s:%d: ", __FILE__, __LINE__); + vfprintf(stderr, format, args); + fprintf(stderr, "\n"); + + va_end(args); +#endif +} + +#define NOTIFY_CB(FOR) \ +do { \ + if (p->settings->on_##FOR) { \ + if (p->settings->on_##FOR(p) != 0) { \ + return i; \ + } \ + } \ +} while (0) + +#define EMIT_DATA_CB(FOR, ptr, len) \ +do { \ + if (p->settings->on_##FOR) { \ + if (p->settings->on_##FOR(p, ptr, len) != 0) { \ + return i; \ + } \ + } \ +} while (0) + + +#define LF 10 +#define CR 13 + +struct multipart_parser { + void * data; + + size_t index; + size_t boundary_length; + + unsigned char state; + + const multipart_parser_settings* settings; + + char* lookbehind; + char multipart_boundary[1]; +}; + +enum state { + s_uninitialized = 1, + s_start, + s_start_boundary, + s_header_field_start, + s_header_field, + s_headers_almost_done, + s_header_value_start, + s_header_value, + s_header_value_almost_done, + s_part_data_start, + s_part_data, + s_part_data_almost_boundary, + s_part_data_boundary, + s_part_data_almost_end, + s_part_data_end, + s_part_data_final_hyphen, + s_end +}; + +multipart_parser* multipart_parser_init + (const char *boundary, const multipart_parser_settings* settings) { + + multipart_parser* p = (multipart_parser*)malloc(sizeof(multipart_parser) + + strlen(boundary) + + strlen(boundary) + 9); + + strcpy(p->multipart_boundary, boundary); + p->boundary_length = strlen(boundary); + + p->lookbehind = (p->multipart_boundary + p->boundary_length + 1); + + p->index = 0; + p->state = s_start; + p->settings = settings; + + return p; +} + +void multipart_parser_free(multipart_parser* p) { + free(p); +} + +void multipart_parser_set_data(multipart_parser *p, void *data) { + p->data = data; +} + +void *multipart_parser_get_data(multipart_parser *p) { + return p->data; +} + +size_t multipart_parser_execute(multipart_parser* p, const char *buf, size_t len) { + size_t i = 0; + size_t mark = 0; + char c, cl; + int is_last = 0; + + while(i < len) { + c = buf[i]; + is_last = (i == (len - 1)); + switch (p->state) { + case s_start: + multipart_log("s_start"); + p->index = 0; + p->state = s_start_boundary; + + /* fallthrough */ + case s_start_boundary: + multipart_log("s_start_boundary"); + if (p->index == p->boundary_length) { + if (c != CR) { + return i; + } + p->index++; + break; + } else if (p->index == (p->boundary_length + 1)) { + if (c != LF) { + return i; + } + p->index = 0; + NOTIFY_CB(part_data_begin); + p->state = s_header_field_start; + break; + } + if (c != p->multipart_boundary[p->index]) { + return i; + } + p->index++; + break; + + case s_header_field_start: + multipart_log("s_header_field_start"); + mark = i; + p->state = s_header_field; + + /* fallthrough */ + case s_header_field: + multipart_log("s_header_field"); + if (c == CR) { + p->state = s_headers_almost_done; + break; + } + + if (c == ':') { + EMIT_DATA_CB(header_field, buf + mark, i - mark); + p->state = s_header_value_start; + break; + } + + cl = tolower(c); + if ((c != '-') && (cl < 'a' || cl > 'z')) { + multipart_log("invalid character in header name"); + return i; + } + if (is_last) + EMIT_DATA_CB(header_field, buf + mark, (i - mark) + 1); + break; + + case s_headers_almost_done: + multipart_log("s_headers_almost_done"); + if (c != LF) { + return i; + } + + p->state = s_part_data_start; + break; + + case s_header_value_start: + multipart_log("s_header_value_start"); + if (c == ' ') { + break; + } + + mark = i; + p->state = s_header_value; + + /* fallthrough */ + case s_header_value: + multipart_log("s_header_value"); + if (c == CR) { + EMIT_DATA_CB(header_value, buf + mark, i - mark); + p->state = s_header_value_almost_done; + break; + } + if (is_last) + EMIT_DATA_CB(header_value, buf + mark, (i - mark) + 1); + break; + + case s_header_value_almost_done: + multipart_log("s_header_value_almost_done"); + if (c != LF) { + return i; + } + p->state = s_header_field_start; + break; + + case s_part_data_start: + multipart_log("s_part_data_start"); + NOTIFY_CB(headers_complete); + mark = i; + p->state = s_part_data; + + /* fallthrough */ + case s_part_data: + multipart_log("s_part_data"); + if (c == CR) { + EMIT_DATA_CB(part_data, buf + mark, i - mark); + mark = i; + p->state = s_part_data_almost_boundary; + p->lookbehind[0] = CR; + break; + } + if (is_last) + EMIT_DATA_CB(part_data, buf + mark, (i - mark) + 1); + break; + + case s_part_data_almost_boundary: + multipart_log("s_part_data_almost_boundary"); + if (c == LF) { + p->state = s_part_data_boundary; + p->lookbehind[1] = LF; + p->index = 0; + break; + } + EMIT_DATA_CB(part_data, p->lookbehind, 1); + p->state = s_part_data; + mark = i --; + break; + + case s_part_data_boundary: + multipart_log("s_part_data_boundary"); + if (p->multipart_boundary[p->index] != c) { + EMIT_DATA_CB(part_data, p->lookbehind, 2 + p->index); + p->state = s_part_data; + mark = i --; + break; + } + p->lookbehind[2 + p->index] = c; + if ((++ p->index) == p->boundary_length) { + NOTIFY_CB(part_data_end); + p->state = s_part_data_almost_end; + } + break; + + case s_part_data_almost_end: + multipart_log("s_part_data_almost_end"); + if (c == '-') { + p->state = s_part_data_final_hyphen; + break; + } + if (c == CR) { + p->state = s_part_data_end; + break; + } + return i; + + case s_part_data_final_hyphen: + multipart_log("s_part_data_final_hyphen"); + if (c == '-') { + NOTIFY_CB(body_end); + p->state = s_end; + break; + } + return i; + + case s_part_data_end: + multipart_log("s_part_data_end"); + if (c == LF) { + p->state = s_header_field_start; + NOTIFY_CB(part_data_begin); + break; + } + return i; + + case s_end: + multipart_log("s_end: %02X", (int) c); + break; + + default: + multipart_log("Multipart parser unrecoverable error"); + return 0; + } + ++ i; + } + + return len; +} diff --git a/3rdPartner/libhv/http/multipart_parser.h b/3rdPartner/libhv/http/multipart_parser.h new file mode 100644 index 0000000..05429d7 --- /dev/null +++ b/3rdPartner/libhv/http/multipart_parser.h @@ -0,0 +1,48 @@ +/* Based on node-formidable by Felix Geisendörfer + * Igor Afonov - afonov@gmail.com - 2012 + * MIT License - http://www.opensource.org/licenses/mit-license.php + */ +#ifndef _multipart_parser_h +#define _multipart_parser_h + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include +#include + +typedef struct multipart_parser multipart_parser; +typedef struct multipart_parser_settings multipart_parser_settings; +typedef struct multipart_parser_state multipart_parser_state; + +typedef int (*multipart_data_cb) (multipart_parser*, const char *at, size_t length); +typedef int (*multipart_notify_cb) (multipart_parser*); + +struct multipart_parser_settings { + multipart_data_cb on_header_field; + multipart_data_cb on_header_value; + multipart_data_cb on_part_data; + + multipart_notify_cb on_part_data_begin; + multipart_notify_cb on_headers_complete; + multipart_notify_cb on_part_data_end; + multipart_notify_cb on_body_end; +}; + +multipart_parser* multipart_parser_init + (const char *boundary, const multipart_parser_settings* settings); + +void multipart_parser_free(multipart_parser* p); + +size_t multipart_parser_execute(multipart_parser* p, const char *buf, size_t len); + +void multipart_parser_set_data(multipart_parser* p, void* data); +void * multipart_parser_get_data(multipart_parser* p); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/3rdPartner/libhv/http/server/FileCache.cpp b/3rdPartner/libhv/http/server/FileCache.cpp new file mode 100644 index 0000000..c3b49bc --- /dev/null +++ b/3rdPartner/libhv/http/server/FileCache.cpp @@ -0,0 +1,157 @@ +#include "FileCache.h" + +#include "herr.h" +#include "hscope.h" +#include "htime.h" +#include "hlog.h" + +#include "httpdef.h" // import http_content_type_str_by_suffix +#include "http_page.h" // import make_index_of_page + +#define ETAG_FMT "\"%zx-%zx\"" + +file_cache_ptr FileCache::Open(const char* filepath, OpenParam* param) { + std::lock_guard locker(mutex_); + file_cache_ptr fc = Get(filepath); + bool modified = false; + if (fc) { + time_t now = time(NULL); + if (now - fc->stat_time > stat_interval) { + modified = fc->is_modified(); + fc->stat_time = now; + fc->stat_cnt++; + } + if (param->need_read) { + if (!modified && fc->is_complete()) { + param->need_read = false; + } + } + } + if (fc == NULL || modified || param->need_read) { + int flags = O_RDONLY; +#ifdef O_BINARY + flags |= O_BINARY; +#endif + int fd = open(filepath, flags); + if (fd < 0) { +#ifdef OS_WIN + // NOTE: open(dir) return -1 on windows + if (!hv_isdir(filepath)) { + param->error = ERR_OPEN_FILE; + return NULL; + } +#else + param->error = ERR_OPEN_FILE; + return NULL; +#endif + } + defer(if (fd > 0) { close(fd); }) + if (fc == NULL) { + struct stat st; + if (fd > 0) { + fstat(fd, &st); + } else { + stat(filepath, &st); + } + if (S_ISREG(st.st_mode) || + (S_ISDIR(st.st_mode) && + filepath[strlen(filepath)-1] == '/')) { + fc = std::make_shared(); + fc->filepath = filepath; + fc->st = st; + time(&fc->open_time); + fc->stat_time = fc->open_time; + fc->stat_cnt = 1; + cached_files[filepath] = fc; + } + else { + param->error = ERR_MISMATCH; + return NULL; + } + } + if (S_ISREG(fc->st.st_mode)) { + param->filesize = fc->st.st_size; + // FILE + if (param->need_read) { + if (fc->st.st_size > param->max_read) { + param->error = ERR_OVER_LIMIT; + return NULL; + } + fc->resize_buf(fc->st.st_size); + int nread = read(fd, fc->filebuf.base, fc->filebuf.len); + if (nread != fc->filebuf.len) { + hloge("Failed to read file: %s", filepath); + param->error = ERR_READ_FILE; + return NULL; + } + } + const char* suffix = strrchr(filepath, '.'); + if (suffix) { + http_content_type content_type = http_content_type_enum_by_suffix(suffix+1); + if (content_type == TEXT_HTML) { + fc->content_type = "text/html; charset=utf-8"; + } else if (content_type == TEXT_PLAIN) { + fc->content_type = "text/plain; charset=utf-8"; + } else { + fc->content_type = http_content_type_str_by_suffix(suffix+1); + } + } + } + else if (S_ISDIR(fc->st.st_mode)) { + // DIR + std::string page; + make_index_of_page(filepath, page, param->path); + fc->resize_buf(page.size()); + memcpy(fc->filebuf.base, page.c_str(), page.size()); + fc->content_type = "text/html; charset=utf-8"; + } + gmtime_fmt(fc->st.st_mtime, fc->last_modified); + snprintf(fc->etag, sizeof(fc->etag), ETAG_FMT, (size_t)fc->st.st_mtime, (size_t)fc->st.st_size); + } + return fc; +} + +bool FileCache::Close(const char* filepath) { + std::lock_guard locker(mutex_); + auto iter = cached_files.find(filepath); + if (iter != cached_files.end()) { + iter = cached_files.erase(iter); + return true; + } + return false; +} + +bool FileCache::Close(const file_cache_ptr& fc) { + std::lock_guard locker(mutex_); + auto iter = cached_files.begin(); + while (iter != cached_files.end()) { + if (iter->second == fc) { + iter = cached_files.erase(iter); + return true; + } else { + ++iter; + } + } + return false; +} + +file_cache_ptr FileCache::Get(const char* filepath) { + auto iter = cached_files.find(filepath); + if (iter != cached_files.end()) { + return iter->second; + } + return NULL; +} + +void FileCache::RemoveExpiredFileCache() { + std::lock_guard locker(mutex_); + time_t now = time(NULL); + auto iter = cached_files.begin(); + while (iter != cached_files.end()) { + if (now - iter->second->stat_time > expired_time) { + iter = cached_files.erase(iter); + } else { + ++iter; + } + } +} diff --git a/3rdPartner/libhv/http/server/FileCache.h b/3rdPartner/libhv/http/server/FileCache.h new file mode 100644 index 0000000..bb4ab90 --- /dev/null +++ b/3rdPartner/libhv/http/server/FileCache.h @@ -0,0 +1,96 @@ +#ifndef HV_FILE_CACHE_H_ +#define HV_FILE_CACHE_H_ + +#include +#include +#include +#include + +#include "hbuf.h" +#include "hstring.h" + +#define HTTP_HEADER_MAX_LENGTH 1024 // 1K +#define FILE_CACHE_MAX_SIZE (1 << 22) // 4M + +typedef struct file_cache_s { + std::string filepath; + struct stat st; + time_t open_time; + time_t stat_time; + uint32_t stat_cnt; + HBuf buf; // http_header + file_content + hbuf_t filebuf; + hbuf_t httpbuf; + char last_modified[64]; + char etag[64]; + std::string content_type; + + file_cache_s() { + stat_cnt = 0; + } + + bool is_modified() { + time_t mtime = st.st_mtime; + stat(filepath.c_str(), &st); + return mtime != st.st_mtime; + } + + bool is_complete() { + return filebuf.len == st.st_size; + } + + void resize_buf(int filesize) { + buf.resize(HTTP_HEADER_MAX_LENGTH + filesize); + filebuf.base = buf.base + HTTP_HEADER_MAX_LENGTH; + filebuf.len = filesize; + } + + void prepend_header(const char* header, int len) { + if (len > HTTP_HEADER_MAX_LENGTH) return; + httpbuf.base = filebuf.base - len; + httpbuf.len = len + filebuf.len; + memcpy(httpbuf.base, header, len); + } +} file_cache_t; + +typedef std::shared_ptr file_cache_ptr; +// filepath => file_cache_ptr +typedef std::map FileCacheMap; + +class FileCache { +public: + FileCacheMap cached_files; + std::mutex mutex_; + int stat_interval; + int expired_time; + + FileCache() { + stat_interval = 10; // s + expired_time = 60; // s + } + + struct OpenParam { + bool need_read; + int max_read; + const char* path; + size_t filesize; + int error; + + OpenParam() { + need_read = true; + max_read = FILE_CACHE_MAX_SIZE; + path = "/"; + filesize = 0; + error = 0; + } + }; + file_cache_ptr Open(const char* filepath, OpenParam* param); + bool Close(const char* filepath); + bool Close(const file_cache_ptr& fc); + void RemoveExpiredFileCache(); + +protected: + file_cache_ptr Get(const char* filepath); +}; + +#endif // HV_FILE_CACHE_H_ diff --git a/3rdPartner/libhv/http/server/HttpContext.h b/3rdPartner/libhv/http/server/HttpContext.h new file mode 100644 index 0000000..5c3defd --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpContext.h @@ -0,0 +1,213 @@ +#ifndef HV_HTTP_CONTEXT_H_ +#define HV_HTTP_CONTEXT_H_ + +#include "hexport.h" +#include "HttpMessage.h" +#include "HttpResponseWriter.h" + +namespace hv { + +struct HttpService; +struct HV_EXPORT HttpContext { + HttpService* service; + HttpRequestPtr request; + HttpResponsePtr response; + HttpResponseWriterPtr writer; + void* userdata; + + HttpContext() { + service = NULL; + userdata = NULL; + } + + // HttpRequest aliases + // return request->xxx + std::string ip() { + return request->client_addr.ip; + } + + int port() { + return request->client_addr.port; + } + + http_method method() { + return request->method; + } + + std::string url() { + return request->url; + } + + std::string path() { + return request->Path(); + } + + std::string fullpath() { + return request->FullPath(); + } + + std::string host() { + return request->Host(); + } + + const http_headers& headers() { + return request->headers; + } + + std::string header(const char* key, const std::string& defvalue = hv::empty_string) { + return request->GetHeader(key, defvalue); + } + + const hv::QueryParams& params() { + return request->query_params; + } + + std::string param(const char* key, const std::string& defvalue = hv::empty_string) { + return request->GetParam(key, defvalue); + } + + const HttpCookie& cookie(const char* name) { + return request->GetCookie(name); + } + + int length() { + return request->ContentLength(); + } + + http_content_type type() { + return request->ContentType(); + } + + bool is(http_content_type content_type) { + return request->ContentType() == content_type; + } + + bool is(const char* content_type) { + return request->ContentType() == http_content_type_enum(content_type); + } + + std::string& body() { + return request->body; + } + +#ifndef WITHOUT_HTTP_CONTENT + // Content-Type: application/json + const hv::Json& json() { + return request->GetJson(); + } + + // Content-Type: multipart/form-data + const hv::MultiPart& form() { + return request->GetForm(); + } + std::string form(const char* name, const std::string& defvalue = hv::empty_string) { + return request->GetFormData(name, defvalue); + } + + // Content-Type: application/x-www-form-urlencoded + const hv::KeyValue& urlencoded() { + return request->GetUrlEncoded(); + } + std::string urlencoded(const char* key, const std::string& defvalue = hv::empty_string) { + return request->GetUrlEncoded(key, defvalue); + } + + // T=[bool, int, int64_t, float, double] + template + T get(const char* key, T defvalue = 0) { + return request->Get(key, defvalue); + } + std::string get(const char* key, const std::string& defvalue = hv::empty_string) { + return request->GetString(key, defvalue); + } +#endif + + // HttpResponse aliases + // response->xxx = xxx + void setStatus(http_status status) { + response->status_code = status; + } + + void setContentType(http_content_type type) { + response->content_type = type; + } + + void setContentType(const char* type) { + response->content_type = http_content_type_enum(type); + } + + void setHeader(const char* key, const std::string& value) { + response->SetHeader(key, value); + if (stricmp(key, "Content-Type") == 0) { + setContentType(value.c_str()); + } + } + + void setCookie(const HttpCookie& cookie) { + response->AddCookie(cookie); + } + + void setBody(const std::string& body) { + response->body = body; + } + + // response->sendXxx + int send() { + if (writer) { + writer->End(); + } + return response->status_code; + } + + int send(const std::string& str, http_content_type type = APPLICATION_JSON) { + response->content_type = type; + response->body = str; + return send(); + } + + int sendString(const std::string& str) { + response->String(str); + return send(); + } + + int sendData(void* data, int len, bool nocopy = true) { + response->Data(data, len, nocopy); + return send(); + } + + int sendFile(const char* filepath) { + response->File(filepath); + return send(); + } + +#ifndef WITHOUT_HTTP_CONTENT + // T=[bool, int, int64_t, float, double, string] + template + void set(const char* key, const T& value) { + response->Set(key, value); + } + + // @see HttpMessage::Json + // @usage https://github.com/nlohmann/json + template + int sendJson(const T& t) { + response->Json(t); + return send(); + } +#endif + + int redirect(const std::string& location, http_status status = HTTP_STATUS_FOUND) { + response->Redirect(location, status); + return send(); + } + + int close() { + return writer ? writer->close(true) : -1; + } +}; + +} // end namespace hv + +typedef std::shared_ptr HttpContextPtr; + +#endif // HV_HTTP_CONTEXT_H_ diff --git a/3rdPartner/libhv/http/server/HttpHandler.cpp b/3rdPartner/libhv/http/server/HttpHandler.cpp new file mode 100644 index 0000000..ac492e9 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpHandler.cpp @@ -0,0 +1,1147 @@ +#include "HttpHandler.h" + +#include "hversion.h" +#include "herr.h" +#include "hlog.h" +#include "htime.h" +#include "hurl.h" +#include "hasync.h" // import hv::async for http_async_handler + +#include "httpdef.h" +#include "http2def.h" +#include "wsdef.h" + +#include "http_page.h" + +#include "EventLoop.h" // import hv::setInterval +using namespace hv; + +#define MIN_HTTP_REQUEST "GET / HTTP/1.1\r\n\r\n" +#define MIN_HTTP_REQUEST_LEN 14 // exclude CRLF + +#define HTTP_100_CONTINUE_RESPONSE "HTTP/1.1 100 Continue\r\n\r\n" +#define HTTP_100_CONTINUE_RESPONSE_LEN 25 +#define HTTP_200_CONNECT_RESPONSE "HTTP/1.1 200 Connection established\r\n\r\n" +#define HTTP_200_CONNECT_RESPONSE_LEN 39 + +HttpHandler::HttpHandler(hio_t* io) : + protocol(HttpHandler::UNKNOWN), + state(WANT_RECV), + error(0), + // flags + ssl(0), + keepalive(1), + upgrade(0), + proxy(0), + proxy_connected(0), + forward_proxy(0), + reverse_proxy(0), + ip{'\0'}, + port(0), + pid(0), + tid(0), + // for http + io(io), + service(NULL), + api_handler(NULL), + // for websocket + ws_service(NULL), + last_send_ping_time(0), + last_recv_pong_time(0), + // for sendfile + files(NULL), + file(NULL), + // for proxy + proxy_port(0) +{ + // Init(); +} + +HttpHandler::~HttpHandler() { + Close(); +} + +bool HttpHandler::Init(int http_version) { + parser.reset(HttpParser::New(HTTP_SERVER, (enum http_version)http_version)); + if (parser == NULL) { + return false; + } + req = std::make_shared(); + resp = std::make_shared(); + if(http_version == 1) { + protocol = HTTP_V1; + } else if (http_version == 2) { + protocol = HTTP_V2; + resp->http_major = req->http_major = 2; + resp->http_minor = req->http_minor = 0; + } + if (io) { + hloop_t* loop = hevent_loop(io); + pid = hloop_pid(loop); + tid = hloop_tid(loop); + writer = std::make_shared(io, resp); + writer->status = hv::SocketChannel::CONNECTED; + } else { + pid = hv_getpid(); + tid = hv_gettid(); + } + parser->InitRequest(req.get()); + // NOTE: hook http_cb + req->http_cb = [this](HttpMessage* msg, http_parser_state state, const char* data, size_t size) { + if (this->state == WANT_CLOSE) return; + switch (state) { + case HP_HEADERS_COMPLETE: + if (this->error != 0) return; + onHeadersComplete(); + break; + case HP_BODY: + if (this->error != 0) return; + onBody(data, size); + break; + case HP_MESSAGE_COMPLETE: + onMessageComplete(); + break; + default: + break; + } + }; + return true; +} + +void HttpHandler::Reset() { + state = WANT_RECV; + error = 0; + req->Reset(); + resp->Reset(); + ctx = NULL; + api_handler = NULL; + closeFile(); + if (writer) { + writer->Begin(); + writer->onwrite = NULL; + writer->onclose = NULL; + } + parser->InitRequest(req.get()); +} + +void HttpHandler::Close() { + if (writer) { + writer->status = hv::SocketChannel::DISCONNECTED; + } + + if (api_handler && api_handler->state_handler) { + if (parser && !parser->IsComplete()) { + api_handler->state_handler(context(), HP_ERROR, NULL, 0); + } + return; + } + + // close proxy + closeProxy(); + + // close file + closeFile(); + + // onclose + if (protocol == HttpHandler::WEBSOCKET) { + WebSocketOnClose(); + } else { + if (writer && writer->onclose) { + writer->onclose(); + } + } +} + +bool HttpHandler::SwitchHTTP2() { + parser.reset(HttpParser::New(HTTP_SERVER, ::HTTP_V2)); + if (parser == NULL) { + return false; + } + protocol = HTTP_V2; + resp->http_major = req->http_major = 2; + resp->http_minor = req->http_minor = 0; + parser->InitRequest(req.get()); + return true; +} + +bool HttpHandler::SwitchWebSocket() { + if(!io) return false; + + protocol = WEBSOCKET; + ws_parser = std::make_shared(); + ws_channel = std::make_shared(io, WS_SERVER); + ws_parser->onMessage = [this](int opcode, const std::string& msg){ + ws_channel->opcode = (enum ws_opcode)opcode; + switch(opcode) { + case WS_OPCODE_CLOSE: + ws_channel->send(msg, WS_OPCODE_CLOSE); + ws_channel->close(); + break; + case WS_OPCODE_PING: + // printf("recv ping\n"); + // printf("send pong\n"); + ws_channel->send(msg, WS_OPCODE_PONG); + break; + case WS_OPCODE_PONG: + // printf("recv pong\n"); + this->last_recv_pong_time = gethrtime_us(); + break; + case WS_OPCODE_TEXT: + case WS_OPCODE_BINARY: + // onmessage + if (ws_service && ws_service->onmessage) { + ws_service->onmessage(ws_channel, msg); + } + break; + default: + break; + } + }; + // NOTE: cancel keepalive timer, judge alive by heartbeat. + ws_channel->setKeepaliveTimeout(0); + if (ws_service && ws_service->ping_interval > 0) { + int ping_interval = MAX(ws_service->ping_interval, 1000); + ws_channel->setHeartbeat(ping_interval, [this](){ + if (last_recv_pong_time < last_send_ping_time) { + hlogw("[%s:%d] websocket no pong!", ip, port); + ws_channel->close(); + } else { + // printf("send ping\n"); + ws_channel->sendPing(); + last_send_ping_time = gethrtime_us(); + } + }); + } + return true; +} + +const HttpContextPtr& HttpHandler::context() { + if (!ctx) { + ctx = std::make_shared(); + ctx->service = service; + ctx->request = req; + ctx->response = resp; + ctx->writer = writer; + } + return ctx; +} + +int HttpHandler::customHttpHandler(const http_handler& handler) { + return invokeHttpHandler(&handler); +} + +int HttpHandler::invokeHttpHandler(const http_handler* handler) { + int status_code = HTTP_STATUS_NOT_IMPLEMENTED; + if (handler->sync_handler) { + // NOTE: sync_handler run on IO thread + status_code = handler->sync_handler(req.get(), resp.get()); + } else if (handler->async_handler) { + // NOTE: async_handler run on hv::async threadpool + hv::async(std::bind(handler->async_handler, req, writer)); + status_code = HTTP_STATUS_NEXT; + } else if (handler->ctx_handler) { + // NOTE: ctx_handler run on IO thread, you can easily post HttpContextPtr to your consumer thread for processing. + status_code = handler->ctx_handler(context()); + } else if (handler->state_handler) { + status_code = handler->state_handler(context(), HP_MESSAGE_COMPLETE, NULL, 0); + } + return status_code; +} + +void HttpHandler::onHeadersComplete() { + // printf("onHeadersComplete\n"); + int status_code = handleRequestHeaders(); + if (status_code != HTTP_STATUS_OK) { + error = ERR_REQUEST; + return; + } + + HttpRequest* pReq = req.get(); + if (service && service->pathHandlers.size() != 0) { + service->GetRoute(pReq, &api_handler); + } + + if (api_handler && api_handler->state_handler) { + api_handler->state_handler(context(), HP_HEADERS_COMPLETE, NULL, 0); + return; + } + + if (proxy) { + handleProxy(); + return; + } + + // Expect: 100-continue + handleExpect100(); +} + +void HttpHandler::onBody(const char* data, size_t size) { + if (api_handler && api_handler->state_handler) { + api_handler->state_handler(context(), HP_BODY, data, size); + return; + } + + if (proxy && proxy_connected) { + if (io) hio_write_upstream(io, (void*)data, size); + return; + } + + req->body.append(data, size); + return; +} + +void HttpHandler::onMessageComplete() { + // printf("onMessageComplete\n"); + int status_code = HTTP_STATUS_OK; + + if (error) { + SendHttpStatusResponse(resp->status_code); + return; + } + + if (proxy) { + if (proxy_connected) Reset(); + return; + } + + addResponseHeaders(); + + // upgrade ? handleUpgrade : HandleHttpRequest + if (upgrade) { + auto iter_upgrade = req->headers.find("upgrade"); + if (iter_upgrade != req->headers.end()) { + handleUpgrade(iter_upgrade->second.c_str()); + status_code = resp->status_code; + } + } else { + status_code = HandleHttpRequest(); + if (status_code != HTTP_STATUS_NEXT) { + SendHttpResponse(); + } + } + + // access log + if (service && service->enable_access_log) { + hlogi("[%ld-%ld][%s:%d][%s %s]=>[%d %s]", + pid, tid, ip, port, + http_method_str(req->method), req->path.c_str(), + resp->status_code, resp->status_message()); + } + + if (status_code != HTTP_STATUS_NEXT) { + // keepalive ? Reset : Close + if (keepalive) { + Reset(); + } else { + state = WANT_CLOSE; + } + } +} + +int HttpHandler::handleRequestHeaders() { + HttpRequest* pReq = req.get(); + pReq->scheme = ssl ? "https" : "http"; + pReq->client_addr.ip = ip; + pReq->client_addr.port = port; + + // keepalive + keepalive = pReq->IsKeepAlive(); + + // upgrade + upgrade = pReq->IsUpgrade(); + + // proxy + proxy = forward_proxy = reverse_proxy = 0; + if (hv::startswith(pReq->url, "http")) { + // forward proxy + proxy = forward_proxy = 1; + } + else if (pReq->method == HTTP_CONNECT) { + // proxy tunnel + // CONNECT ip:port HTTP/1.1\r\n + pReq->url = "https://" + pReq->url; + proxy = forward_proxy = 1; + keepalive = true; + } + + // printf("url=%s\n", pReq->url.c_str()); + pReq->ParseUrl(); + // printf("path=%s\n", pReq->path.c_str()); + // fix CVE-2023-26147 + if (pReq->path.find("%") != std::string::npos) { + std::string unescaped_path = HUrl::unescape(pReq->path); + if (unescaped_path.find("\r\n") != std::string::npos) { + hlogw("Illegal path: %s\n", unescaped_path.c_str()); + resp->status_code = HTTP_STATUS_BAD_REQUEST; + return resp->status_code; + } + } + + if (proxy) { + // Proxy-Connection + auto iter = pReq->headers.find("Proxy-Connection"); + if (iter != pReq->headers.end()) { + const char* keepalive_value = iter->second.c_str(); + if (stricmp(keepalive_value, "keep-alive") == 0) { + keepalive = true; + } + else if (stricmp(keepalive_value, "close") == 0) { + keepalive = false; + } + else if (stricmp(keepalive_value, "upgrade") == 0) { + keepalive = true; + } + } + } + else { + // reverse proxy + std::string proxy_url = service->GetProxyUrl(pReq->path.c_str()); + if (!proxy_url.empty()) { + pReq->url = proxy_url; + proxy = reverse_proxy = 1; + } + } + + // TODO: rewrite url + return HTTP_STATUS_OK; +} + +void HttpHandler::handleExpect100() { + // Expect: 100-continue + auto iter = req->headers.find("Expect"); + if (iter != req->headers.end() && + stricmp(iter->second.c_str(), "100-continue") == 0) { + if (io) hio_write(io, HTTP_100_CONTINUE_RESPONSE, HTTP_100_CONTINUE_RESPONSE_LEN); + } +} + +void HttpHandler::addResponseHeaders() { + HttpResponse* pResp = resp.get(); + // Server: + pResp->headers["Server"] = "libhv/" HV_VERSION_STRING; + + // Connection: + pResp->headers["Connection"] = keepalive ? "keep-alive" : "close"; +} + +int HttpHandler::HandleHttpRequest() { + // preprocessor -> middleware -> processor -> postprocessor + HttpRequest* pReq = req.get(); + HttpResponse* pResp = resp.get(); + + // NOTE: Not all users want to parse body, we comment it out. + // pReq->ParseBody(); + + int status_code = pResp->status_code; + if (status_code != HTTP_STATUS_OK) { + goto postprocessor; + } + +preprocessor: + state = HANDLE_BEGIN; + if (service->preprocessor) { + status_code = customHttpHandler(service->preprocessor); + if (status_code != HTTP_STATUS_NEXT) { + goto postprocessor; + } + } + +middleware: + for (const auto& middleware : service->middleware) { + status_code = customHttpHandler(middleware); + if (status_code != HTTP_STATUS_NEXT) { + goto postprocessor; + } + } + +processor: + if (service->processor) { + status_code = customHttpHandler(service->processor); + } else { + status_code = defaultRequestHandler(); + } + +postprocessor: + if (status_code >= 100 && status_code < 600) { + pResp->status_code = (http_status)status_code; + if (pResp->status_code >= 400 && pResp->body.size() == 0 && pReq->method != HTTP_HEAD) { + if (service->errorHandler) { + customHttpHandler(service->errorHandler); + } else { + defaultErrorHandler(); + } + } + } + if (fc) { + pResp->content = fc->filebuf.base; + pResp->content_length = fc->filebuf.len; + pResp->headers["Content-Type"] = fc->content_type; + pResp->headers["Last-Modified"] = fc->last_modified; + pResp->headers["Etag"] = fc->etag; + } + if (service->postprocessor) { + customHttpHandler(service->postprocessor); + } + + if (writer && writer->state != hv::HttpResponseWriter::SEND_BEGIN) { + status_code = HTTP_STATUS_NEXT; + } + if (status_code == HTTP_STATUS_NEXT) { + state = HANDLE_CONTINUE; + } else { + state = HANDLE_END; + } + return status_code; +} + +int HttpHandler::defaultRequestHandler() { + int status_code = HTTP_STATUS_OK; + + if (api_handler) { + status_code = invokeHttpHandler(api_handler); + } + else if (req->method == HTTP_GET || req->method == HTTP_HEAD) { + // static handler + if (service->staticHandler) { + status_code = customHttpHandler(service->staticHandler); + } + else if (service->staticDirs.size() > 0) { + status_code = defaultStaticHandler(); + } + else { + status_code = HTTP_STATUS_NOT_FOUND; + } + } + else { + // Not Implemented + status_code = HTTP_STATUS_NOT_IMPLEMENTED; + } + + return status_code; +} + +int HttpHandler::defaultStaticHandler() { + // file service + std::string path = req->Path(); + const char* req_path = path.c_str(); + // path safe check + if (req_path[0] != '/' || strstr(req_path, "/..") || strstr(req_path, "\\..")) { + return HTTP_STATUS_BAD_REQUEST; + } + + std::string filepath; + bool is_dir = path.back() == '/' && + service->index_of.size() > 0 && + hv_strstartswith(req_path, service->index_of.c_str()); + if (is_dir) { + filepath = service->document_root + path; + } else { + filepath = service->GetStaticFilepath(req_path); + } + if (filepath.empty()) { + return HTTP_STATUS_NOT_FOUND; + } + + int status_code = HTTP_STATUS_OK; + // Range: + bool has_range = false; + long from, to = 0; + if (req->GetRange(from, to)) { + has_range = true; + if (openFile(filepath.c_str()) != 0) { + return HTTP_STATUS_NOT_FOUND; + } + long total = file->size(); + if (to == 0 || to >= total) to = total - 1; + file->seek(from); + status_code = HTTP_STATUS_PARTIAL_CONTENT; + resp->status_code = HTTP_STATUS_PARTIAL_CONTENT; + resp->content_length = to - from + 1; + resp->SetContentTypeByFilename(filepath.c_str()); + resp->SetRange(from, to, total); + if(resp->content_length < service->max_file_cache_size) { + // read into body directly + int nread = file->readrange(resp->body, from, to); + closeFile(); + if (nread != resp->content_length) { + resp->content_length = 0; + resp->body.clear(); + return HTTP_STATUS_INTERNAL_SERVER_ERROR; + } + } + else { + if (service->largeFileHandler) { + status_code = customHttpHandler(service->largeFileHandler); + } else { + status_code = defaultLargeFileHandler(); + } + } + return status_code; + } + + // FileCache + FileCache::OpenParam param; + param.max_read = service->max_file_cache_size; + param.need_read = !(req->method == HTTP_HEAD || has_range); + param.path = req_path; + if (files) { + fc = files->Open(filepath.c_str(), ¶m); + } + if (fc == NULL) { + if (param.error == ERR_OVER_LIMIT) { + if (service->largeFileHandler) { + status_code = customHttpHandler(service->largeFileHandler); + } else { + status_code = defaultLargeFileHandler(); + } + } else { + status_code = HTTP_STATUS_NOT_FOUND; + } + } + else { + // Not Modified + auto iter = req->headers.find("if-none-match"); + if (iter != req->headers.end() && + strcmp(iter->second.c_str(), fc->etag) == 0) { + fc = NULL; + return HTTP_STATUS_NOT_MODIFIED; + } + + iter = req->headers.find("if-modified-since"); + if (iter != req->headers.end() && + strcmp(iter->second.c_str(), fc->last_modified) == 0) { + fc = NULL; + return HTTP_STATUS_NOT_MODIFIED; + } + } + return status_code; +} + +int HttpHandler::defaultLargeFileHandler() { + if (!writer) return HTTP_STATUS_NOT_IMPLEMENTED; + if (!isFileOpened()) { + std::string filepath = service->GetStaticFilepath(req->Path().c_str()); + if (filepath.empty() || openFile(filepath.c_str()) != 0) { + return HTTP_STATUS_NOT_FOUND; + } + resp->content_length = file->size(); + resp->SetContentTypeByFilename(filepath.c_str()); + } + if (service->limit_rate == 0) { + // forbidden to send large file + resp->content_length = 0; + resp->status_code = HTTP_STATUS_FORBIDDEN; + } else { + size_t bufsize = 40960; // 40K + file->buf.resize(bufsize); + if (service->limit_rate < 0) { + // unlimited: sendFile when writable + writer->onwrite = [this](HBuf* buf) { + if (writer->isWriteComplete()) { + sendFile(); + } + }; + } else { + // limit_rate=40KB/s interval_ms=1000 + // limit_rate=500KB/s interval_ms=80 + int interval_ms = file->buf.len * 1000 / 1024 / service->limit_rate; + // limit_rate=40MB/s interval_m=1: 40KB/ms = 40MB/s = 320Mbps + if (interval_ms == 0) interval_ms = 1; + // printf("limit_rate=%dKB/s interval_ms=%d\n", service->limit_rate, interval_ms); + file->timer = setInterval(interval_ms, std::bind(&HttpHandler::sendFile, this)); + } + } + writer->EndHeaders(); + return HTTP_STATUS_UNFINISHED; +} + +int HttpHandler::defaultErrorHandler() { + // error page + if (service->error_page.size() != 0) { + std::string filepath = service->document_root + '/' + service->error_page; + if (files) { + // cache and load error page + FileCache::OpenParam param; + fc = files->Open(filepath.c_str(), ¶m); + } + } + // status page + if (fc == NULL && resp->body.size() == 0) { + resp->content_type = TEXT_HTML; + make_http_status_page(resp->status_code, resp->body); + } + return 0; +} + +int HttpHandler::FeedRecvData(const char* data, size_t len) { + if (protocol == HttpHandler::UNKNOWN) { + int http_version = 1; +#if WITH_NGHTTP2 + if (strncmp(data, HTTP2_MAGIC, MIN(len, HTTP2_MAGIC_LEN)) == 0) { + http_version = 2; + } +#else + // check request-line + if (len < MIN_HTTP_REQUEST_LEN) { + hloge("[%s:%d] http request-line too small", ip, port); + error = ERR_REQUEST; + return -1; + } + for (int i = 0; i < MIN_HTTP_REQUEST_LEN; ++i) { + if (!IS_GRAPH(data[i])) { + hloge("[%s:%d] http request-line not plain", ip, port); + error = ERR_REQUEST; + return -1; + } + } +#endif + if (!Init(http_version)) { + hloge("[%s:%d] unsupported HTTP%d", ip, port, http_version); + error = ERR_INVALID_PROTOCOL; + return -1; + } + } + + int nfeed = 0; + switch (protocol) { + case HttpHandler::HTTP_V1: + case HttpHandler::HTTP_V2: + if (state != WANT_RECV) { + Reset(); + } + nfeed = parser->FeedRecvData(data, len); + // printf("FeedRecvData %d=>%d\n", (int)len, nfeed); + if (nfeed != len) { + hloge("[%s:%d] http parse error: %s", ip, port, parser->StrError(parser->GetError())); + error = ERR_PARSE; + return -1; + } + break; + case HttpHandler::WEBSOCKET: + nfeed = ws_parser->FeedRecvData(data, len); + if (nfeed != len) { + hloge("[%s:%d] websocket parse error!", ip, port); + error = ERR_PARSE; + return -1; + } + break; + default: + hloge("[%s:%d] unknown protocol", ip, port); + error = ERR_INVALID_PROTOCOL; + return -1; + } + + if (state == WANT_CLOSE) return 0; + return error ? -1 : nfeed; +} + +int HttpHandler::GetSendData(char** data, size_t* len) { + if (state == HANDLE_CONTINUE) { + return 0; + } + + HttpRequest* pReq = req.get(); + HttpResponse* pResp = resp.get(); + + if (protocol == HTTP_V1) { + switch(state) { + case WANT_RECV: + if (parser->IsComplete()) state = WANT_SEND; + else return 0; + case HANDLE_END: + state = WANT_SEND; + case WANT_SEND: + state = SEND_HEADER; + case SEND_HEADER: + { + size_t content_length = 0; + const char* content = NULL; + // HEAD + if (pReq->method == HTTP_HEAD) { + if (fc) { + pResp->headers["Accept-Ranges"] = "bytes"; + pResp->headers["Content-Length"] = hv::to_string(fc->st.st_size); + } else { + pResp->headers["Content-Type"] = "text/html"; + pResp->headers["Content-Length"] = "0"; + } + state = SEND_DONE; + goto return_nobody; + } + // File service + if (fc) { + // FileCache + // NOTE: no copy filebuf, more efficient + header = pResp->Dump(true, false); + fc->prepend_header(header.c_str(), header.size()); + *data = fc->httpbuf.base; + *len = fc->httpbuf.len; + state = SEND_DONE; + return *len; + } + // API service + content_length = pResp->ContentLength(); + content = (const char*)pResp->Content(); + if (content) { + if (content_length > (1 << 20)) { + state = SEND_BODY; + goto return_header; + } else { + // NOTE: header+body in one package if <= 1M + header = pResp->Dump(true, false); + header.append(content, content_length); + state = SEND_DONE; + goto return_header; + } + } else { + state = SEND_DONE; + goto return_header; + } +return_nobody: + pResp->content_length = 0; +return_header: + if (header.empty()) header = pResp->Dump(true, false); + *data = (char*)header.c_str(); + *len = header.size(); + return *len; + } + case SEND_BODY: + { + *data = (char*)pResp->Content(); + *len = pResp->ContentLength(); + state = SEND_DONE; + return *len; + } + case SEND_DONE: + { + // NOTE: remove file cache if > FILE_CACHE_MAX_SIZE + if (fc && fc->filebuf.len > FILE_CACHE_MAX_SIZE) { + files->Close(fc); + } + fc = NULL; + header.clear(); + return 0; + } + default: + return 0; + } + } else if (protocol == HTTP_V2) { + int ret = parser->GetSendData(data, len); + if (ret == 0) state = SEND_DONE; + return ret; + } + return 0; +} + +int HttpHandler::SendHttpResponse(bool submit) { + if (!io || !parser) return -1; + char* data = NULL; + size_t len = 0, total_len = 0; + if (submit) parser->SubmitResponse(resp.get()); + while (GetSendData(&data, &len)) { + // printf("GetSendData %d\n", (int)len); + if (data && len) { + hio_write(io, data, len); + total_len += len; + } + } + return total_len; +} + +int HttpHandler::SendHttpStatusResponse(http_status status_code) { + if (state > WANT_SEND) return 0; + resp->status_code = status_code; + addResponseHeaders(); + HandleHttpRequest(); + state = WANT_SEND; + return SendHttpResponse(); +} + +//------------------sendfile-------------------------------------- +int HttpHandler::openFile(const char* filepath) { + closeFile(); + file = new LargeFile; + file->timer = INVALID_TIMER_ID; + return file->open(filepath, "rb"); +} + +bool HttpHandler::isFileOpened() { + return file && file->isopen(); +} + +int HttpHandler::sendFile() { + if (!writer || !writer->isWriteComplete() || + !isFileOpened() || + file->buf.len == 0 || + resp->content_length == 0) { + return -1; + } + + int readbytes = MIN(file->buf.len, resp->content_length); + size_t nread = file->read(file->buf.base, readbytes); + if (nread <= 0) { + hloge("read file error!"); + error = ERR_READ_FILE; + writer->close(true); + return nread; + } + int nwrite = writer->WriteBody(file->buf.base, nread); + if (nwrite < 0) { + // disconnectd + writer->close(true); + return nwrite; + } + resp->content_length -= nread; + if (resp->content_length == 0) { + writer->End(); + closeFile(); + } + return nread; +} + +void HttpHandler::closeFile() { + if (file) { + if (file->timer != INVALID_TIMER_ID) { + killTimer(file->timer); + file->timer = INVALID_TIMER_ID; + } + delete file; + file = NULL; + } +} + +//------------------upgrade-------------------------------------- +int HttpHandler::handleUpgrade(const char* upgrade_protocol) { + hlogi("[%s:%d] Upgrade: %s", ip, port, upgrade_protocol); + + // websocket + if (stricmp(upgrade_protocol, "websocket") == 0) { + return upgradeWebSocket(); + } + + // h2/h2c + if (strnicmp(upgrade_protocol, "h2", 2) == 0) { + return upgradeHTTP2(); + } + + hloge("[%s:%d] unsupported Upgrade: %s", ip, port, upgrade_protocol); + return SetError(ERR_INVALID_PROTOCOL); +} + +int HttpHandler::upgradeWebSocket() { + /* + HTTP/1.1 101 Switching Protocols + Connection: Upgrade + Upgrade: websocket + Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= + */ + resp->status_code = HTTP_STATUS_SWITCHING_PROTOCOLS; + resp->headers["Connection"] = "Upgrade"; + resp->headers["Upgrade"] = "websocket"; + + // Sec-WebSocket-Accept: + auto iter_key = req->headers.find(SEC_WEBSOCKET_KEY); + if (iter_key != req->headers.end()) { + char ws_accept[32] = {0}; + ws_encode_key(iter_key->second.c_str(), ws_accept); + resp->headers[SEC_WEBSOCKET_ACCEPT] = ws_accept; + } + + // Sec-WebSocket-Protocol: + auto iter_protocol = req->headers.find(SEC_WEBSOCKET_PROTOCOL); + if (iter_protocol != req->headers.end()) { + hv::StringList subprotocols = hv::split(iter_protocol->second, ','); + if (subprotocols.size() > 0) { + hlogw("%s: %s => just select first protocol %s", SEC_WEBSOCKET_PROTOCOL, iter_protocol->second.c_str(), subprotocols[0].c_str()); + resp->headers[SEC_WEBSOCKET_PROTOCOL] = subprotocols[0]; + } + } + + SendHttpResponse(); + + if (!SwitchWebSocket()) { + hloge("[%s:%d] unsupported websocket", ip, port); + return SetError(ERR_INVALID_PROTOCOL); + } + + // onopen + WebSocketOnOpen(); + return 0; +} + +int HttpHandler::upgradeHTTP2() { + /* + HTTP/1.1 101 Switching Protocols + Connection: Upgrade + Upgrade: h2c + */ + resp->status_code = HTTP_STATUS_SWITCHING_PROTOCOLS; + resp->headers["Connection"] = "Upgrade"; + resp->headers["Upgrade"] = "h2c"; + + SendHttpResponse(); + + if (!SwitchHTTP2()) { + hloge("[%s:%d] unsupported HTTP2", ip, port); + return SetError(ERR_INVALID_PROTOCOL); + } + + // NOTE: send HTTP2_SETTINGS frame + SendHttpResponse(false); + + return 0; +} + +//------------------proxy-------------------------------------- +int HttpHandler::handleProxy() { + if (forward_proxy) { + return handleForwardProxy(); + } + + if (reverse_proxy) { + return handleReverseProxy(); + } + + return 0; +} + +int HttpHandler::handleForwardProxy() { + if (service && service->enable_forward_proxy) { + return connectProxy(req->url); + } else { + hlogw("Forbidden to forward proxy %s", req->url.c_str()); + SetError(HTTP_STATUS_FORBIDDEN, HTTP_STATUS_FORBIDDEN); + } + return 0; +} + +int HttpHandler::handleReverseProxy() { + return connectProxy(req->url); +} + +int HttpHandler::connectProxy(const std::string& strUrl) { + if (!io) return ERR_NULL_POINTER; + + HUrl url; + url.parse(strUrl); + hlogi("[%s:%d] proxy_pass %s", ip, port, strUrl.c_str()); + + if (proxy_connected) { + if (url.host == proxy_host && url.port == proxy_port) { + // reuse keepalive connection + sendProxyRequest(); + return 0; + } else { + // detach and close previous connection + hio_t* upstream_io = hio_get_upstream(io); + if (upstream_io) { + hio_setcb_close(upstream_io, NULL); + closeProxy(); + } + } + } + + if (forward_proxy && !service->IsTrustProxy(url.host.c_str())) { + hlogw("Forbidden to proxy %s", url.host.c_str()); + SetError(HTTP_STATUS_FORBIDDEN, HTTP_STATUS_FORBIDDEN); + return 0; + } + + hloop_t* loop = hevent_loop(io); + proxy = 1; + proxy_host = url.host; + proxy_port = url.port; + hio_t* upstream_io = hio_create_socket(loop, proxy_host.c_str(), proxy_port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (upstream_io == NULL) { + return SetError(ERR_SOCKET, HTTP_STATUS_BAD_GATEWAY); + } + if (url.scheme == "https") { + hio_enable_ssl(upstream_io); + } + hevent_set_userdata(upstream_io, this); + hio_setup_upstream(io, upstream_io); + hio_setcb_connect(upstream_io, HttpHandler::onProxyConnect); + hio_setcb_close(upstream_io, HttpHandler::onProxyClose); + if (service->proxy_connect_timeout > 0) { + hio_set_connect_timeout(upstream_io, service->proxy_connect_timeout); + } + if (service->proxy_read_timeout > 0) { + hio_set_read_timeout(io, service->proxy_read_timeout); + } + if (service->proxy_write_timeout > 0) { + hio_set_write_timeout(io, service->proxy_write_timeout); + } + hio_connect(upstream_io); + // NOTE: wait upstream_io connected then start read + hio_read_stop(io); + return 0; +} + +int HttpHandler::closeProxy() { + if (proxy && proxy_connected) { + proxy_connected = 0; + if (io) hio_close_upstream(io); + } + return 0; +} + +int HttpHandler::sendProxyRequest() { + if (!io || !proxy_connected) return -1; + + req->headers.erase("Host"); + req->FillHost(proxy_host.c_str(), proxy_port); + req->headers.erase("Proxy-Connection"); + req->headers["Connection"] = keepalive ? "keep-alive" : "close"; + req->headers["X-Real-IP"] = ip; + // NOTE: send head + received body + std::string msg = req->Dump(true, false) + req->body; + // printf("%s\n", msg.c_str()); + req->Reset(); + + hio_write_upstream(io, (void*)msg.c_str(), msg.size()); + if (parser->IsComplete()) state = WANT_SEND; + return msg.size(); +} + +void HttpHandler::onProxyConnect(hio_t* upstream_io) { + // printf("onProxyConnect\n"); + HttpHandler* handler = (HttpHandler*)hevent_userdata(upstream_io); + hio_t* io = hio_get_upstream(upstream_io); + assert(handler != NULL && io != NULL); + handler->proxy_connected = 1; + + if (handler->req->method == HTTP_CONNECT) { + // handler->resp->status_code = HTTP_STATUS_OK; + // handler->SendHttpResponse(); + hio_write(io, HTTP_200_CONNECT_RESPONSE, HTTP_200_CONNECT_RESPONSE_LEN); + handler->state = SEND_DONE; + // NOTE: recv request then upstream + hio_setcb_read(io, hio_write_upstream); + } else { + handler->sendProxyRequest(); + } + + // NOTE: start recv request continue then upstream + if (handler->upgrade) hio_setcb_read(io, hio_write_upstream); + hio_read_start(io); + // NOTE: start recv response then upstream + hio_setcb_read(upstream_io, hio_write_upstream); + hio_read_start(upstream_io); +} + +void HttpHandler::onProxyClose(hio_t* upstream_io) { + // printf("onProxyClose\n"); + HttpHandler* handler = (HttpHandler*)hevent_userdata(upstream_io); + if (handler == NULL) return; + handler->proxy_connected = 0; + + hevent_set_userdata(upstream_io, NULL); + + int error = hio_error(upstream_io); + if (error == ETIMEDOUT) { + handler->SendHttpStatusResponse(HTTP_STATUS_GATEWAY_TIMEOUT); + } + + handler->error = error; + hio_close_upstream(upstream_io); +} diff --git a/3rdPartner/libhv/http/server/HttpHandler.h b/3rdPartner/libhv/http/server/HttpHandler.h new file mode 100644 index 0000000..fca6848 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpHandler.h @@ -0,0 +1,186 @@ +#ifndef HV_HTTP_HANDLER_H_ +#define HV_HTTP_HANDLER_H_ + +#include "HttpService.h" +#include "HttpParser.h" +#include "FileCache.h" + +#include "WebSocketServer.h" +#include "WebSocketParser.h" + +class HttpHandler { +public: + enum ProtocolType { + UNKNOWN, + HTTP_V1, + HTTP_V2, + WEBSOCKET, + } protocol; + + enum State { + WANT_RECV, + HANDLE_BEGIN, + HANDLE_CONTINUE, + HANDLE_END, + WANT_SEND, + SEND_HEADER, + SEND_BODY, + SEND_DONE, + WANT_CLOSE, + } state; + + // errno + int error; + + // flags + unsigned ssl :1; + unsigned keepalive :1; + unsigned upgrade :1; + unsigned proxy :1; + unsigned proxy_connected :1; + unsigned forward_proxy :1; + unsigned reverse_proxy :1; + + // peeraddr + char ip[64]; + int port; + + // for log + long pid; + long tid; + + // for http + hio_t *io; + HttpService *service; + HttpRequestPtr req; + HttpResponsePtr resp; + HttpResponseWriterPtr writer; + HttpParserPtr parser; + HttpContextPtr ctx; + http_handler* api_handler; + + // for GetSendData + std::string header; + // std::string body; + + // for websocket + WebSocketService* ws_service; + WebSocketChannelPtr ws_channel; + WebSocketParserPtr ws_parser; + uint64_t last_send_ping_time; + uint64_t last_recv_pong_time; + + // for sendfile + FileCache *files; + file_cache_ptr fc; // cache small file + struct LargeFile : public HFile { + HBuf buf; + uint64_t timer; + } *file; // for large file + + // for proxy + std::string proxy_host; + int proxy_port; + + HttpHandler(hio_t* io = NULL); + ~HttpHandler(); + + bool Init(int http_version = 1); + void Reset(); + void Close(); + + /* @workflow: + * HttpServer::on_recv -> HttpHandler::FeedRecvData -> Init -> HttpParser::InitRequest -> HttpRequest::http_cb -> + * onHeadersComplete -> proxy ? handleProxy -> connectProxy : + * onMessageComplete -> upgrade ? handleUpgrade : HandleHttpRequest -> HttpParser::SubmitResponse -> + * SendHttpResponse -> while(GetSendData) hio_write -> + * keepalive ? Reset : Close -> hio_close + * + * @return + * == len: ok + * == 0: WANT_CLOSE + * < 0: error + */ + int FeedRecvData(const char* data, size_t len); + + /* @workflow: + * preprocessor -> middleware -> processor -> postprocessor + * + * @return status_code + * == 0: HANDLE_CONTINUE + * != 0: HANDLE_END + */ + int HandleHttpRequest(); + + int GetSendData(char** data, size_t* len); + + int SendHttpResponse(bool submit = true); + int SendHttpStatusResponse(http_status status_code); + + // HTTP2 + bool SwitchHTTP2(); + + // websocket + bool SwitchWebSocket(); + void WebSocketOnOpen() { + ws_channel->status = hv::SocketChannel::CONNECTED; + if (ws_service && ws_service->onopen) { + ws_service->onopen(ws_channel, req); + } + } + void WebSocketOnClose() { + ws_channel->status = hv::SocketChannel::DISCONNECTED; + if (ws_service && ws_service->onclose) { + ws_service->onclose(ws_channel); + } + } + + int SetError(int error_code, http_status status_code = HTTP_STATUS_BAD_REQUEST) { + error = error_code; + if (resp) resp->status_code = status_code; + return error; + } + +private: + const HttpContextPtr& context(); + int handleRequestHeaders(); + // Expect: 100-continue + void handleExpect100(); + void addResponseHeaders(); + + // http_cb + void onHeadersComplete(); + void onBody(const char* data, size_t size); + void onMessageComplete(); + + // default handlers + int defaultRequestHandler(); + int defaultStaticHandler(); + int defaultLargeFileHandler(); + int defaultErrorHandler(); + int customHttpHandler(const http_handler& handler); + int invokeHttpHandler(const http_handler* handler); + + // sendfile + int openFile(const char* filepath); + int sendFile(); + void closeFile(); + bool isFileOpened(); + + // upgrade + int handleUpgrade(const char* upgrade_protocol); + int upgradeWebSocket(); + int upgradeHTTP2(); + + // proxy + int handleProxy(); + int handleForwardProxy(); + int handleReverseProxy(); + int connectProxy(const std::string& url); + int closeProxy(); + int sendProxyRequest(); + static void onProxyConnect(hio_t* upstream_io); + static void onProxyClose(hio_t* upstream_io); +}; + +#endif // HV_HTTP_HANDLER_H_ diff --git a/3rdPartner/libhv/http/server/HttpMiddleware.cpp b/3rdPartner/libhv/http/server/HttpMiddleware.cpp new file mode 100644 index 0000000..4560790 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpMiddleware.cpp @@ -0,0 +1,16 @@ +#include "HttpMiddleware.h" +#include "HttpService.h" + +BEGIN_NAMESPACE_HV + +int HttpMiddleware::CORS(HttpRequest* req, HttpResponse* resp) { + resp->headers["Access-Control-Allow-Origin"] = req->GetHeader("Origin", "*"); + if (req->method == HTTP_OPTIONS) { + resp->headers["Access-Control-Allow-Methods"] = req->GetHeader("Access-Control-Request-Method", "OPTIONS, HEAD, GET, POST, PUT, DELETE, PATCH"); + resp->headers["Access-Control-Allow-Headers"] = req->GetHeader("Access-Control-Request-Headers", "Content-Type"); + return HTTP_STATUS_NO_CONTENT; + } + return HTTP_STATUS_NEXT; +} + +END_NAMESPACE_HV diff --git a/3rdPartner/libhv/http/server/HttpMiddleware.h b/3rdPartner/libhv/http/server/HttpMiddleware.h new file mode 100644 index 0000000..d310143 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpMiddleware.h @@ -0,0 +1,16 @@ +#ifndef HV_HTTP_MIDDLEWARE_H_ +#define HV_HTTP_MIDDLEWARE_H_ + +#include "hexport.h" +#include "HttpContext.h" + +BEGIN_NAMESPACE_HV + +class HttpMiddleware { +public: + static int CORS(HttpRequest* req, HttpResponse* resp); +}; + +END_NAMESPACE_HV + +#endif // HV_HTTP_MIDDLEWARE_H_ diff --git a/3rdPartner/libhv/http/server/HttpResponseWriter.cpp b/3rdPartner/libhv/http/server/HttpResponseWriter.cpp new file mode 100644 index 0000000..928d2b9 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpResponseWriter.cpp @@ -0,0 +1,119 @@ +#include "HttpResponseWriter.h" + +namespace hv { + +int HttpResponseWriter::EndHeaders(const char* key /* = NULL */, const char* value /* = NULL */) { + if (state != SEND_BEGIN) return -1; + if (key && value) { + response->SetHeader(key, value); + } + std::string headers = response->Dump(true, false); + // erase Content-Length: 0\r\n + std::string content_length_0("Content-Length: 0\r\n"); + auto pos = headers.find(content_length_0); + if (pos != std::string::npos) { + headers.erase(pos, content_length_0.size()); + } + state = SEND_HEADER; + return write(headers); +} + +int HttpResponseWriter::WriteChunked(const char* buf, int len /* = -1 */) { + int ret = 0; + if (len == -1) len = strlen(buf); + if (state == SEND_BEGIN) { + EndHeaders("Transfer-Encoding", "chunked"); + } + char chunked_header[64]; + int chunked_header_len = snprintf(chunked_header, sizeof(chunked_header), "%x\r\n", len); + write(chunked_header, chunked_header_len); + if (buf && len) { + state = SEND_CHUNKED; + ret = write(buf, len); + } else { + state = SEND_CHUNKED_END; + } + write("\r\n", 2); + return ret; +} + +int HttpResponseWriter::WriteBody(const char* buf, int len /* = -1 */) { + if (response->IsChunked()) { + return WriteChunked(buf, len); + } + + if (len == -1) len = strlen(buf); + if (state == SEND_BEGIN) { + response->body.append(buf, len); + return len; + } else { + state = SEND_BODY; + return write(buf, len); + } +} + +int HttpResponseWriter::WriteResponse(HttpResponse* resp) { + if (resp == NULL) { + response->status_code = HTTP_STATUS_INTERNAL_SERVER_ERROR; + return 0; + } + bool is_dump_headers = state == SEND_BEGIN ? true : false; + std::string msg = resp->Dump(is_dump_headers, true); + state = SEND_BODY; + return write(msg); +} + +int HttpResponseWriter::SSEvent(const std::string& data, const char* event /* = "message" */) { + if (state == SEND_BEGIN) { + EndHeaders("Content-Type", "text/event-stream"); + } + std::string msg; + msg = "event: "; msg += event; msg += "\n"; + msg += "data: "; msg += data; msg += "\n\n"; + state = SEND_BODY; + return write(msg); +} + +int HttpResponseWriter::End(const char* buf /* = NULL */, int len /* = -1 */) { + if (end == SEND_END) return 0; + end = SEND_END; + + if (!isConnected()) { + return -1; + } + + int ret = 0; + bool keepAlive = response->IsKeepAlive(); + if (state == SEND_CHUNKED) { + if (buf) { + ret = WriteChunked(buf, len); + } + if (state == SEND_CHUNKED) { + EndChunked(); + } + } else { + if (buf) { + ret = WriteBody(buf, len); + } + bool is_dump_headers = true; + bool is_dump_body = true; + if (state == SEND_HEADER) { + is_dump_headers = false; + } else if (state == SEND_BODY) { + is_dump_headers = false; + is_dump_body = false; + } + if (is_dump_body) { + std::string msg = response->Dump(is_dump_headers, is_dump_body); + state = SEND_BODY; + ret = write(msg); + } + } + + if (!keepAlive) { + close(true); + } + return ret; +} + +} diff --git a/3rdPartner/libhv/http/server/HttpResponseWriter.h b/3rdPartner/libhv/http/server/HttpResponseWriter.h new file mode 100644 index 0000000..195fba7 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpResponseWriter.h @@ -0,0 +1,100 @@ +#ifndef HV_HTTP_RESPONSE_WRITER_H_ +#define HV_HTTP_RESPONSE_WRITER_H_ + +#include "Channel.h" +#include "HttpMessage.h" + +namespace hv { + +class HV_EXPORT HttpResponseWriter : public SocketChannel { +public: + HttpResponsePtr response; + enum State { + SEND_BEGIN = 0, + SEND_HEADER, + SEND_BODY, + SEND_CHUNKED, + SEND_CHUNKED_END, + SEND_END, + } state: 8, end: 8; + HttpResponseWriter(hio_t* io, const HttpResponsePtr& resp) + : SocketChannel(io) + , response(resp) + , state(SEND_BEGIN) + , end(SEND_BEGIN) + {} + ~HttpResponseWriter() {} + + // Begin -> End + // Begin -> WriteResponse -> End + // Begin -> WriteStatus -> WriteHeader -> WriteBody -> End + // Begin -> EndHeaders("Content-Type", "text/event-stream") -> write -> write -> ... -> close + // Begin -> EndHeaders("Content-Length", content_length) -> WriteBody -> WriteBody -> ... -> End + // Begin -> EndHeaders("Transfer-Encoding", "chunked") -> WriteChunked -> WriteChunked -> ... -> End + + int Begin() { + state = end = SEND_BEGIN; + return 0; + } + + int WriteStatus(http_status status_codes) { + response->status_code = status_codes; + return 0; + } + + int WriteHeader(const char* key, const char* value) { + response->SetHeader(key, value); + return 0; + } + + template + int WriteHeader(const char* key, T num) { + response->SetHeader(key, hv::to_string(num)); + return 0; + } + + int WriteCookie(const HttpCookie& cookie) { + response->cookies.push_back(cookie); + return 0; + } + + int EndHeaders(const char* key = NULL, const char* value = NULL); + + template + int EndHeaders(const char* key, T num) { + std::string value = hv::to_string(num); + return EndHeaders(key, value.c_str()); + } + + int WriteChunked(const char* buf, int len = -1); + + int WriteChunked(const std::string& str) { + return WriteChunked(str.c_str(), str.size()); + } + + int EndChunked() { + return WriteChunked(NULL, 0); + } + + int WriteBody(const char* buf, int len = -1); + + int WriteBody(const std::string& str) { + return WriteBody(str.c_str(), str.size()); + } + + int WriteResponse(HttpResponse* resp); + + int SSEvent(const std::string& data, const char* event = "message"); + + int End(const char* buf = NULL, int len = -1); + + int End(const std::string& str) { + return End(str.c_str(), str.size()); + } +}; + +} + +typedef std::shared_ptr HttpResponseWriterPtr; + +#endif // HV_HTTP_RESPONSE_WRITER_H_ diff --git a/3rdPartner/libhv/http/server/HttpServer.cpp b/3rdPartner/libhv/http/server/HttpServer.cpp new file mode 100644 index 0000000..b2d4902 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpServer.cpp @@ -0,0 +1,280 @@ +#include "HttpServer.h" + +#include "hmain.h" // import master_workers_run +#include "herr.h" +#include "hlog.h" +#include "htime.h" + +#include "EventLoop.h" +using namespace hv; + +#include "HttpHandler.h" + +static void on_accept(hio_t* io); +static void on_recv(hio_t* io, void* _buf, int readbytes); +static void on_close(hio_t* io); + +struct HttpServerPrivdata { + std::vector loops; + std::vector threads; + std::mutex mutex_; + std::shared_ptr service; + FileCache filecache; +}; + +static void on_recv(hio_t* io, void* buf, int readbytes) { + // printf("on_recv fd=%d readbytes=%d\n", hio_fd(io), readbytes); + HttpHandler* handler = (HttpHandler*)hevent_userdata(io); + assert(handler != NULL); + + int nfeed = handler->FeedRecvData((const char*)buf, readbytes); + if (nfeed != readbytes) { + hio_close(io); + return; + } +} + +static void on_close(hio_t* io) { + HttpHandler* handler = (HttpHandler*)hevent_userdata(io); + if (handler == NULL) return; + + hevent_set_userdata(io, NULL); + delete handler; + + EventLoop* loop = currentThreadEventLoop; + if (loop) { + --loop->connectionNum; + } +} + +static void on_accept(hio_t* io) { + http_server_t* server = (http_server_t*)hevent_userdata(io); + HttpService* service = server->service; + /* + printf("on_accept connfd=%d\n", hio_fd(io)); + char localaddrstr[SOCKADDR_STRLEN] = {0}; + char peeraddrstr[SOCKADDR_STRLEN] = {0}; + printf("accept connfd=%d [%s] <= [%s]\n", hio_fd(io), + SOCKADDR_STR(hio_localaddr(io), localaddrstr), + SOCKADDR_STR(hio_peeraddr(io), peeraddrstr)); + */ + + EventLoop* loop = currentThreadEventLoop; + if (loop->connectionNum >= server->worker_connections) { + hlogw("over worker_connections"); + hio_close(io); + return; + } + ++loop->connectionNum; + + hio_setcb_close(io, on_close); + hio_setcb_read(io, on_recv); + hio_read(io); + if (service->keepalive_timeout > 0) { + hio_set_keepalive_timeout(io, service->keepalive_timeout); + } + + // new HttpHandler, delete on_close + HttpHandler* handler = new HttpHandler(io); + // ssl + handler->ssl = hio_is_ssl(io); + // ip:port + sockaddr_u* peeraddr = (sockaddr_u*)hio_peeraddr(io); + sockaddr_ip(peeraddr, handler->ip, sizeof(handler->ip)); + handler->port = sockaddr_port(peeraddr); + // http service + handler->service = service; + // websocket service + handler->ws_service = server->ws; + // FileCache + HttpServerPrivdata* privdata = (HttpServerPrivdata*)server->privdata; + handler->files = &privdata->filecache; + hevent_set_userdata(io, handler); +} + +static void loop_thread(void* userdata) { + http_server_t* server = (http_server_t*)userdata; + HttpService* service = server->service; + + auto loop = std::make_shared(); + hloop_t* hloop = loop->loop(); + // http + if (server->listenfd[0] >= 0) { + hio_t* listenio = haccept(hloop, server->listenfd[0], on_accept); + hevent_set_userdata(listenio, server); + } + // https + if (server->listenfd[1] >= 0) { + hio_t* listenio = haccept(hloop, server->listenfd[1], on_accept); + hevent_set_userdata(listenio, server); + hio_enable_ssl(listenio); + if (server->ssl_ctx) { + hio_set_ssl_ctx(listenio, server->ssl_ctx); + } + } + + HttpServerPrivdata* privdata = (HttpServerPrivdata*)server->privdata; + privdata->mutex_.lock(); + if (privdata->loops.size() == 0) { + // NOTE: fsync logfile when idle + hlog_disable_fsync(); + hidle_add(hloop, [](hidle_t*) { + hlog_fsync(); + }, INFINITE); + + // NOTE: add timer to update s_date every 1s + htimer_add(hloop, [](htimer_t* timer) { + gmtime_fmt(hloop_now(hevent_loop(timer)), HttpMessage::s_date); + }, 1000); + + // document_root + if (service->document_root.size() > 0 && service->GetStaticFilepath("/").empty()) { + service->Static("/", service->document_root.c_str()); + } + + // FileCache + FileCache* filecache = &privdata->filecache; + filecache->stat_interval = service->file_cache_stat_interval; + filecache->expired_time = service->file_cache_expired_time; + if (filecache->expired_time > 0) { + // NOTE: add timer to remove expired file cache + htimer_t* timer = htimer_add(hloop, [](htimer_t* timer) { + FileCache* filecache = (FileCache*)hevent_userdata(timer); + filecache->RemoveExpiredFileCache(); + }, filecache->expired_time * 1000); + hevent_set_userdata(timer, filecache); + } + } + privdata->loops.push_back(loop); + privdata->mutex_.unlock(); + + hlogi("EventLoop started, pid=%ld tid=%ld", hv_getpid(), hv_gettid()); + if (server->onWorkerStart) { + loop->queueInLoop([server](){ + server->onWorkerStart(); + }); + } + + loop->run(); + + if (server->onWorkerStop) { + server->onWorkerStop(); + } + hlogi("EventLoop stopped, pid=%ld tid=%ld", hv_getpid(), hv_gettid()); +} + +/* @workflow: + * http_server_run -> Listen -> master_workers_run / hthread_create -> + * loop_thread -> accept -> EventLoop::run -> + * on_accept -> new HttpHandler -> hio_read -> + * on_recv -> HttpHandler::FeedRecvData -> + * on_close -> delete HttpHandler + */ +int http_server_run(http_server_t* server, int wait) { + // http_port + if (server->port > 0) { + server->listenfd[0] = Listen(server->port, server->host); + if (server->listenfd[0] < 0) return server->listenfd[0]; + hlogi("http server listening on %s:%d", server->host, server->port); + } + // https_port + if (server->https_port > 0 && HV_WITH_SSL) { + server->listenfd[1] = Listen(server->https_port, server->host); + if (server->listenfd[1] < 0) return server->listenfd[1]; + hlogi("https server listening on %s:%d", server->host, server->https_port); + } + // SSL_CTX + if (server->listenfd[1] >= 0) { + if (server->ssl_ctx == NULL) { + server->ssl_ctx = hssl_ctx_instance(); + } + if (server->ssl_ctx == NULL) { + hloge("new SSL_CTX failed!"); + return ERR_NEW_SSL_CTX; + } +#ifdef WITH_NGHTTP2 +#ifdef WITH_OPENSSL + static unsigned char s_alpn_protos[] = "\x02h2\x08http/1.1\x08http/1.0\x08http/0.9"; + hssl_ctx_set_alpn_protos(server->ssl_ctx, s_alpn_protos, sizeof(s_alpn_protos) - 1); +#endif +#endif + } + + HttpServerPrivdata* privdata = new HttpServerPrivdata; + server->privdata = privdata; + if (server->service == NULL) { + privdata->service = std::make_shared(); + server->service = privdata->service.get(); + } + + if (server->worker_processes) { + // multi-processes + return master_workers_run(loop_thread, server, server->worker_processes, server->worker_threads, wait); + } + else { + // multi-threads + if (server->worker_threads == 0) server->worker_threads = 1; + for (int i = wait ? 1 : 0; i < server->worker_threads; ++i) { + hthread_t thrd = hthread_create((hthread_routine)loop_thread, server); + privdata->threads.push_back(thrd); + } + if (wait) { + loop_thread(server); + } + return 0; + } +} + +/* @workflow: + * http_server_stop -> EventLoop::stop -> hthread_join + */ +int http_server_stop(http_server_t* server) { + HttpServerPrivdata* privdata = (HttpServerPrivdata*)server->privdata; + if (privdata == NULL) return 0; + +#ifdef OS_UNIX + if (server->worker_processes) { + signal_handle("stop"); + return 0; + } +#endif + + // wait for all threads started and all loops running + while (1) { + hv_delay(1); + std::lock_guard locker(privdata->mutex_); + // wait for all loops created + if (privdata->loops.size() < server->worker_threads) { + continue; + } + // wait for all loops running + bool all_loops_running = true; + for (auto& loop : privdata->loops) { + if (loop->status() < hv::Status::kRunning) { + all_loops_running = false; + break; + } + } + if (all_loops_running) break; + } + + // stop all loops + for (auto& loop : privdata->loops) { + loop->stop(); + } + + // join all threads + for (auto& thrd : privdata->threads) { + hthread_join(thrd); + } + + if (server->alloced_ssl_ctx && server->ssl_ctx) { + hssl_ctx_free(server->ssl_ctx); + server->alloced_ssl_ctx = 0; + server->ssl_ctx = NULL; + } + + delete privdata; + server->privdata = NULL; + return 0; +} diff --git a/3rdPartner/libhv/http/server/HttpServer.h b/3rdPartner/libhv/http/server/HttpServer.h new file mode 100644 index 0000000..6243cfb --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpServer.h @@ -0,0 +1,154 @@ +#ifndef HV_HTTP_SERVER_H_ +#define HV_HTTP_SERVER_H_ + +#include "hexport.h" +#include "hssl.h" +#include "HttpService.h" +// #include "WebSocketServer.h" +namespace hv { +struct WebSocketService; +} +using hv::HttpService; +using hv::WebSocketService; + +typedef struct http_server_s { + char host[64]; + int port; // http_port + int https_port; + int http_version; + int worker_processes; + int worker_threads; + uint32_t worker_connections; // max_connections = workers * worker_connections + HttpService* service; // http service + WebSocketService* ws; // websocket service + void* userdata; + int listenfd[2]; // 0: http, 1: https + void* privdata; + // hooks + std::function onWorkerStart; + std::function onWorkerStop; + // SSL/TLS + hssl_ctx_t ssl_ctx; + unsigned alloced_ssl_ctx: 1; + +#ifdef __cplusplus + http_server_s() { + strcpy(host, "0.0.0.0"); + // port = DEFAULT_HTTP_PORT; + // https_port = DEFAULT_HTTPS_PORT; + // port = 8080; + // https_port = 8443; + port = https_port = 0; + http_version = 1; + worker_processes = 0; + worker_threads = 0; + worker_connections = 1024; + service = NULL; + ws = NULL; + listenfd[0] = listenfd[1] = -1; + userdata = NULL; + privdata = NULL; + // SSL/TLS + ssl_ctx = NULL; + alloced_ssl_ctx = 0; + } +#endif +} http_server_t; + +// @param wait: Whether to occupy current thread +HV_EXPORT int http_server_run(http_server_t* server, int wait = 1); + +// NOTE: stop all loops and join all threads +HV_EXPORT int http_server_stop(http_server_t* server); + +/* +#include "HttpServer.h" +using namespace hv; + +int main() { + HttpService service; + service.GET("/ping", [](HttpRequest* req, HttpResponse* resp) { + resp->body = "pong"; + return 200; + }); + + HttpServer server(&service); + server.setThreadNum(4); + server.run(":8080"); + return 0; +} +*/ + +namespace hv { + +class HttpServer : public http_server_t { +public: + HttpServer(HttpService* service = NULL) + : http_server_t() + { + this->service = service; + } + ~HttpServer() { stop(); } + + void registerHttpService(HttpService* service) { + this->service = service; + } + + void setHost(const char* host = "0.0.0.0") { + if (host) strcpy(this->host, host); + } + + void setPort(int port = 0, int ssl_port = 0) { + if (port >= 0) this->port = port; + if (ssl_port >= 0) this->https_port = ssl_port; + } + void setListenFD(int fd = -1, int ssl_fd = -1) { + if (fd >= 0) this->listenfd[0] = fd; + if (ssl_fd >= 0) this->listenfd[1] = ssl_fd; + } + + void setProcessNum(int num) { + this->worker_processes = num; + } + + void setThreadNum(int num) { + this->worker_threads = num; + } + + // SSL/TLS + int setSslCtx(hssl_ctx_t ssl_ctx) { + this->ssl_ctx = ssl_ctx; + return 0; + } + int newSslCtx(hssl_ctx_opt_t* opt) { + // NOTE: hssl_ctx_free in http_server_stop + hssl_ctx_t ssl_ctx = hssl_ctx_new(opt); + if (ssl_ctx == NULL) return -1; + this->alloced_ssl_ctx = 1; + return setSslCtx(ssl_ctx); + } + + // run(":8080") + // run("0.0.0.0:8080") + // run("[::]:8080") + int run(const char* ip_port = NULL, bool wait = true) { + if (ip_port) { + hv::NetAddr listen_addr(ip_port); + if (listen_addr.ip.size() != 0) setHost(listen_addr.ip.c_str()); + if (listen_addr.port != 0) setPort(listen_addr.port); + } + return http_server_run(this, wait); + } + + int start(const char* ip_port = NULL) { + return run(ip_port, false); + } + + int stop() { + return http_server_stop(this); + } +}; + +} + +#endif // HV_HTTP_SERVER_H_ diff --git a/3rdPartner/libhv/http/server/HttpService.cpp b/3rdPartner/libhv/http/server/HttpService.cpp new file mode 100644 index 0000000..acab0fa --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpService.cpp @@ -0,0 +1,209 @@ +#include "HttpService.h" +#include "HttpMiddleware.h" + +#include "hbase.h" // import hv_strendswith + +namespace hv { + +void HttpService::AddRoute(const char* path, http_method method, const http_handler& handler) { + std::shared_ptr method_handlers = NULL; + auto iter = pathHandlers.find(path); + if (iter == pathHandlers.end()) { + // add path + method_handlers = std::make_shared(); + pathHandlers[path] = method_handlers; + } + else { + method_handlers = iter->second; + } + for (auto iter = method_handlers->begin(); iter != method_handlers->end(); ++iter) { + if (iter->method == method) { + // update + iter->handler = handler; + return; + } + } + // add + method_handlers->push_back(http_method_handler(method, handler)); +} + +int HttpService::GetRoute(const char* url, http_method method, http_handler** handler) { + // {base_url}/path?query + const char* s = url; + const char* b = base_url.c_str(); + while (*s && *b && *s == *b) {++s;++b;} + if (*b != '\0') { + return HTTP_STATUS_NOT_FOUND; + } + const char* e = s; + while (*e && *e != '?') ++e; + + std::string path = std::string(s, e); + auto iter = pathHandlers.find(path); + if (iter == pathHandlers.end()) { + if (handler) *handler = NULL; + return HTTP_STATUS_NOT_FOUND; + } + auto method_handlers = iter->second; + for (auto iter = method_handlers->begin(); iter != method_handlers->end(); ++iter) { + if (iter->method == method) { + if (handler) *handler = &iter->handler; + return 0; + } + } + if (handler) *handler = NULL; + return HTTP_STATUS_METHOD_NOT_ALLOWED; +} + +int HttpService::GetRoute(HttpRequest* req, http_handler** handler) { + // {base_url}/path?query + const char* s = req->path.c_str(); + const char* b = base_url.c_str(); + while (*s && *b && *s == *b) {++s;++b;} + if (*b != '\0') { + return HTTP_STATUS_NOT_FOUND; + } + const char* e = s; + while (*e && *e != '?') ++e; + + std::string path = std::string(s, e); + const char *kp, *ks, *vp, *vs; + bool match; + for (auto iter = pathHandlers.begin(); iter != pathHandlers.end(); ++iter) { + kp = iter->first.c_str(); + vp = path.c_str(); + match = false; + std::map params; + + while (*kp && *vp) { + if (kp[0] == '*') { + // wildcard * + match = hv_strendswith(vp, kp+1); + break; + } else if (*kp != *vp) { + match = false; + break; + } else if (kp[0] == '/' && (kp[1] == ':' || kp[1] == '{')) { + // RESTful /:field/ + // RESTful /{field}/ + kp += 2; + ks = kp; + while (*kp && *kp != '/') {++kp;} + vp += 1; + vs = vp; + while (*vp && *vp != '/') {++vp;} + int klen = kp - ks; + if (*(ks-1) == '{' && *(kp-1) == '}') { + --klen; + } + params[std::string(ks, klen)] = std::string(vs, vp-vs); + continue; + } else { + ++kp; + ++vp; + } + } + + match = match ? match : (*kp == '\0' && *vp == '\0'); + + if (match) { + auto method_handlers = iter->second; + for (auto iter = method_handlers->begin(); iter != method_handlers->end(); ++iter) { + if (iter->method == req->method) { + for (auto& param : params) { + // RESTful /:field/ => req->query_params[field] + req->query_params[param.first] = param.second; + } + if (handler) *handler = &iter->handler; + return 0; + } + } + + if (params.size() == 0) { + if (handler) *handler = NULL; + return HTTP_STATUS_METHOD_NOT_ALLOWED; + } + } + } + if (handler) *handler = NULL; + return HTTP_STATUS_NOT_FOUND; +} + +void HttpService::Static(const char* path, const char* dir) { + std::string strPath(path); + if (strPath.back() != '/') strPath += '/'; + std::string strDir(dir); + if (strDir.back() == '/') strDir.pop_back(); + staticDirs[strPath] = strDir; +} + +std::string HttpService::GetStaticFilepath(const char* path) { + std::string filepath; + for (auto iter = staticDirs.begin(); iter != staticDirs.end(); ++iter) { + if (hv_strstartswith(path, iter->first.c_str())) { + filepath = iter->second + (path + iter->first.length() - 1); + break; + } + } + + if (filepath.empty()) { + return filepath; + } + + if (filepath.back() == '/') { + filepath += home_page; + } + return filepath; +} + +void HttpService::Proxy(const char* path, const char* url) { + proxies[path] = url; +} + +std::string HttpService::GetProxyUrl(const char* path) { + std::string url; + for (auto iter = proxies.begin(); iter != proxies.end(); ++iter) { + if (hv_strstartswith(path, iter->first.c_str())) { + url = iter->second + (path + iter->first.length()); + break; + } + } + return url; +} + +void HttpService::AddTrustProxy(const char* host) { + trustProxies.emplace_back(host); +} + +void HttpService::AddNoProxy(const char* host) { + noProxies.emplace_back(host); +} + +bool HttpService::IsTrustProxy(const char* host) { + if (!host || *host == '\0') return false; + bool trust = true; + if (trustProxies.size() != 0) { + trust = false; + for (const auto& trust_proxy : trustProxies) { + if (hv_wildcard_match(host, trust_proxy.c_str())) { + trust = true; + break; + } + } + } + if (noProxies.size() != 0) { + for (const auto& no_proxy : noProxies) { + if (hv_wildcard_match(host, no_proxy.c_str())) { + trust = false; + break; + } + } + } + return trust; +} + +void HttpService::AllowCORS() { + Use(HttpMiddleware::CORS); +} + +} diff --git a/3rdPartner/libhv/http/server/HttpService.h b/3rdPartner/libhv/http/server/HttpService.h new file mode 100644 index 0000000..d85c760 --- /dev/null +++ b/3rdPartner/libhv/http/server/HttpService.h @@ -0,0 +1,281 @@ +#ifndef HV_HTTP_SERVICE_H_ +#define HV_HTTP_SERVICE_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include "hexport.h" +#include "HttpMessage.h" +#include "HttpResponseWriter.h" +#include "HttpContext.h" + +#define DEFAULT_BASE_URL "/api/v1" +#define DEFAULT_DOCUMENT_ROOT "/var/www/html" +#define DEFAULT_HOME_PAGE "index.html" +#define DEFAULT_ERROR_PAGE "error.html" +#define DEFAULT_INDEXOF_DIR "/downloads/" +#define DEFAULT_KEEPALIVE_TIMEOUT 75000 // ms + +// for FileCache +#define MAX_FILE_CACHE_SIZE (1 << 22) // 4M +#define DEFAULT_FILE_CACHE_STAT_INTERVAL 10 // s +#define DEFAULT_FILE_CACHE_EXPIRED_TIME 60 // s + +/* + * @param[in] req: parsed structured http request + * @param[out] resp: structured http response + * @return 0: handle next + * http_status_code: handle done + */ +#define HTTP_STATUS_NEXT 0 +#define HTTP_STATUS_UNFINISHED 0 +// NOTE: http_sync_handler run on IO thread +typedef std::function http_sync_handler; +// NOTE: http_async_handler run on hv::async threadpool +typedef std::function http_async_handler; +// NOTE: http_ctx_handler run on IO thread, you can easily post HttpContextPtr to your consumer thread for processing. +typedef std::function http_ctx_handler; +// NOTE: http_state_handler run on IO thread +typedef std::function http_state_handler; + +struct http_handler { + http_sync_handler sync_handler; + http_async_handler async_handler; + http_ctx_handler ctx_handler; + http_state_handler state_handler; + + http_handler() {} + http_handler(http_sync_handler fn) : sync_handler(std::move(fn)) {} + http_handler(http_async_handler fn) : async_handler(std::move(fn)) {} + http_handler(http_ctx_handler fn) : ctx_handler(std::move(fn)) {} + http_handler(http_state_handler fn) : state_handler(std::move(fn)) {} + http_handler(const http_handler& rhs) + : sync_handler(std::move(const_cast(rhs).sync_handler)) + , async_handler(std::move(const_cast(rhs).async_handler)) + , ctx_handler(std::move(const_cast(rhs).ctx_handler)) + , state_handler(std::move(const_cast(rhs).state_handler)) + {} + + const http_handler& operator=(http_sync_handler fn) { + sync_handler = std::move(fn); + return *this; + } + const http_handler& operator=(http_async_handler fn) { + async_handler = std::move(fn); + return *this; + } + const http_handler& operator=(http_ctx_handler fn) { + ctx_handler = std::move(fn); + return *this; + } + const http_handler& operator=(http_state_handler fn) { + state_handler = std::move(fn); + return *this; + } + + bool isNull() { + return sync_handler == NULL && + async_handler == NULL && + ctx_handler == NULL; + } + + operator bool() { + return !isNull(); + } +}; + +typedef std::vector http_handlers; + +struct http_method_handler { + http_method method; + http_handler handler; + + http_method_handler() {} + http_method_handler(http_method m, const http_handler& h) : method(m), handler(h) {} +}; + +// method => http_method_handler +typedef std::list http_method_handlers; +// path => http_method_handlers +typedef std::unordered_map> http_path_handlers; + +namespace hv { + +struct HV_EXPORT HttpService { + /* handler chain */ + // preprocessor -> middleware -> processor -> postprocessor + http_handler preprocessor; + http_handlers middleware; + // processor: pathHandlers -> staticHandler -> errorHandler + http_handler processor; + http_handler postprocessor; + + /* API handlers */ + std::string base_url; + http_path_handlers pathHandlers; + + /* Static file service */ + http_handler staticHandler; + http_handler largeFileHandler; + std::string document_root; + std::string home_page; + std::string error_page; + // nginx: location => root + std::map> staticDirs; + /* Indexof directory service */ + std::string index_of; + http_handler errorHandler; + + /* Proxy service */ + /* Reverse proxy service */ + // nginx: location => proxy_pass + std::map> proxies; + /* Forward proxy service */ + StringList trustProxies; + StringList noProxies; + int proxy_connect_timeout; + int proxy_read_timeout; + int proxy_write_timeout; + + // options + int keepalive_timeout; + int max_file_cache_size; // cache small file + int file_cache_stat_interval; // stat file is modified + int file_cache_expired_time; // remove expired file cache + /* + * @test limit_rate + * @build make examples + * @server bin/httpd -c etc/httpd.conf -s restart -d + * @client bin/wget http://127.0.0.1:8080/downloads/test.zip + */ + int limit_rate; // limit send rate, unit: KB/s + + unsigned enable_access_log :1; + unsigned enable_forward_proxy :1; + + HttpService() { + // base_url = DEFAULT_BASE_URL; + + document_root = DEFAULT_DOCUMENT_ROOT; + home_page = DEFAULT_HOME_PAGE; + // error_page = DEFAULT_ERROR_PAGE; + // index_of = DEFAULT_INDEXOF_DIR; + + proxy_connect_timeout = DEFAULT_CONNECT_TIMEOUT; + proxy_read_timeout = 0; + proxy_write_timeout = 0; + + keepalive_timeout = DEFAULT_KEEPALIVE_TIMEOUT; + max_file_cache_size = MAX_FILE_CACHE_SIZE; + file_cache_stat_interval = DEFAULT_FILE_CACHE_STAT_INTERVAL; + file_cache_expired_time = DEFAULT_FILE_CACHE_EXPIRED_TIME; + limit_rate = -1; // unlimited + + enable_access_log = 1; + enable_forward_proxy = 0; + } + + void AddRoute(const char* path, http_method method, const http_handler& handler); + // @retval 0 OK, else HTTP_STATUS_NOT_FOUND, HTTP_STATUS_METHOD_NOT_ALLOWED + int GetRoute(const char* url, http_method method, http_handler** handler); + // RESTful API /:field/ => req->query_params["field"] + int GetRoute(HttpRequest* req, http_handler** handler); + + // Static("/", "/var/www/html") + void Static(const char* path, const char* dir); + // @retval / => /var/www/html/index.html + std::string GetStaticFilepath(const char* path); + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS + void AllowCORS(); + + // proxy + // forward proxy + void EnableForwardProxy() { enable_forward_proxy = 1; } + void AddTrustProxy(const char* host); + void AddNoProxy(const char* host); + bool IsTrustProxy(const char* host); + // reverse proxy + // Proxy("/api/v1/", "http://www.httpbin.org/"); + void Proxy(const char* path, const char* url); + // @retval /api/v1/test => http://www.httpbin.org/test + std::string GetProxyUrl(const char* path); + + hv::StringList Paths() { + hv::StringList paths; + for (auto& pair : pathHandlers) { + paths.emplace_back(pair.first); + } + return paths; + } + + // Handler = [ http_sync_handler, http_ctx_handler ] + template + void Use(Handler handlerFunc) { + middleware.emplace_back(handlerFunc); + } + + // Inspired by github.com/gin-gonic/gin + // Handler = [ http_sync_handler, http_async_handler, http_ctx_handler, http_state_handler ] + template + void Handle(const char* httpMethod, const char* relativePath, Handler handlerFunc) { + AddRoute(relativePath, http_method_enum(httpMethod), http_handler(handlerFunc)); + } + + // HEAD + template + void HEAD(const char* relativePath, Handler handlerFunc) { + Handle("HEAD", relativePath, handlerFunc); + } + + // GET + template + void GET(const char* relativePath, Handler handlerFunc) { + Handle("GET", relativePath, handlerFunc); + } + + // POST + template + void POST(const char* relativePath, Handler handlerFunc) { + Handle("POST", relativePath, handlerFunc); + } + + // PUT + template + void PUT(const char* relativePath, Handler handlerFunc) { + Handle("PUT", relativePath, handlerFunc); + } + + // DELETE + // NOTE: Windows #define DELETE as a macro, we have to replace DELETE with Delete. + template + void Delete(const char* relativePath, Handler handlerFunc) { + Handle("DELETE", relativePath, handlerFunc); + } + + // PATCH + template + void PATCH(const char* relativePath, Handler handlerFunc) { + Handle("PATCH", relativePath, handlerFunc); + } + + // Any + template + void Any(const char* relativePath, Handler handlerFunc) { + Handle("HEAD", relativePath, handlerFunc); + Handle("GET", relativePath, handlerFunc); + Handle("POST", relativePath, handlerFunc); + Handle("PUT", relativePath, handlerFunc); + Handle("DELETE", relativePath, handlerFunc); + Handle("PATCH", relativePath, handlerFunc); + } +}; + +} + +#endif // HV_HTTP_SERVICE_H_ diff --git a/3rdPartner/libhv/http/server/WebSocketServer.h b/3rdPartner/libhv/http/server/WebSocketServer.h new file mode 100644 index 0000000..6eee36e --- /dev/null +++ b/3rdPartner/libhv/http/server/WebSocketServer.h @@ -0,0 +1,46 @@ +#ifndef HV_WEBSOCKET_SERVER_H_ +#define HV_WEBSOCKET_SERVER_H_ + +/* + * @demo examples/websocket_server_test.cpp + */ + +#include "HttpServer.h" +#include "WebSocketChannel.h" + +#define websocket_server_t http_server_t +#define websocket_server_run http_server_run +#define websocket_server_stop http_server_stop + +namespace hv { + +struct WebSocketService { + std::function onopen; + std::function onmessage; + std::function onclose; + int ping_interval; + + WebSocketService() : ping_interval(0) {} + + void setPingInterval(int ms) { + ping_interval = ms; + } +}; + +class WebSocketServer : public HttpServer { +public: + WebSocketServer(WebSocketService* service = NULL) + : HttpServer() + { + this->ws = service; + } + ~WebSocketServer() { stop(); } + + void registerWebSocketService(WebSocketService* service) { + this->ws = service; + } +}; + +} + +#endif // HV_WEBSOCKET_SERVER_H_ diff --git a/3rdPartner/libhv/http/server/http_page.cpp b/3rdPartner/libhv/http/server/http_page.cpp new file mode 100644 index 0000000..f3c1c9d --- /dev/null +++ b/3rdPartner/libhv/http/server/http_page.cpp @@ -0,0 +1,108 @@ +#include "http_page.h" +#include "hdir.h" +#include "hurl.h" + +#define AUTOINDEX_FILENAME_MAXLEN 50 + +void make_http_status_page(http_status status_code, std::string& page) { + char szCode[8]; + snprintf(szCode, sizeof(szCode), "%d ", status_code); + const char* status_message = http_status_str(status_code); + page += R"( + + + )"; + page += szCode; page += status_message; + page += R"( + + +

)"; + page += szCode; page += status_message; + page += R"(

+
+ +)"; +} + +void make_index_of_page(const char* dir, std::string& page, const char* url) { + char c_str[1024] = {0}; + snprintf(c_str, sizeof(c_str), R"( + + + Index of %s + + +

Index of %s

+
+)", url, url); + page += c_str; + + page += " \n"; + page += R"( + + + + +)"; + +#define _ADD_TD_(page, td) \ + page += " \n"; \ + + std::list dirs; + listdir(dir, dirs); + std::string escaped_name; + for (auto& item : dirs) { + if (item.name[0] == '.' && item.name[1] == '\0') continue; + page += " \n"; + // fix CVE-2023-26146 + escaped_name = hv::escapeHTML(item.name); + const char* filename = escaped_name.c_str(); + size_t len = escaped_name.size() + (item.type == 'd'); + // name + snprintf(c_str, sizeof(c_str), "%s%s", + filename, + item.type == 'd' ? "/" : "", + len < AUTOINDEX_FILENAME_MAXLEN ? filename : std::string(filename, filename+AUTOINDEX_FILENAME_MAXLEN-4).append("...").c_str(), + item.type == 'd' ? "/" : ""); + _ADD_TD_(page, c_str) + if (strcmp(filename, "..") != 0) { + // mtime + struct tm* tm = localtime(&item.mtime); + snprintf(c_str, sizeof(c_str), "%04d-%02d-%02d %02d:%02d:%02d", + tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); + _ADD_TD_(page, c_str) + // size + if (item.type == 'd') { + page += '-'; + } + else { + float hsize; + if (item.size < 1024) { + snprintf(c_str, sizeof(c_str), "%lu", (unsigned long)item.size); + } + else if ((hsize = item.size/1024.0f) < 1024.0f) { + snprintf(c_str, sizeof(c_str), "%.1fK", hsize); + } + else if ((hsize /= 1024.0f) < 1024.0f) { + snprintf(c_str, sizeof(c_str), "%.1fM", hsize); + } + else { + hsize /= 1024.0f; + snprintf(c_str, sizeof(c_str), "%.1fG", hsize); + } + _ADD_TD_(page, c_str) + } + } + page += " \n"; + } + +#undef _ADD_TD_ + + page += R"(
NameDateSize
"; \ + page += td; \ + page += "
+
+ + +)"; +} diff --git a/3rdPartner/libhv/http/server/http_page.h b/3rdPartner/libhv/http/server/http_page.h new file mode 100644 index 0000000..4cd8179 --- /dev/null +++ b/3rdPartner/libhv/http/server/http_page.h @@ -0,0 +1,56 @@ +#ifndef HV_HTTP_PAGE_H_ +#define HV_HTTP_PAGE_H_ + +#include + +#include "httpdef.h" + +/* + + + + 404 Not Found + + +

404 Not Found

+
+ + + */ +void make_http_status_page(http_status status_code, std::string& page); + +/* + + + + Index of /downloads/ + + +

Index of /downloads/

+
+ + + + + + + + + + + + + + + + + + +
NameDateSize
../
libhv-vs-nginx.png2021-03-10 12:33:57211.4K
中文.html2022-04-25 15:37:12191
+
+ + + */ +void make_index_of_page(const char* dir, std::string& page, const char* url = ""); + +#endif // HV_HTTP_PAGE_H_ diff --git a/3rdPartner/libhv/http/websocket_parser.c b/3rdPartner/libhv/http/websocket_parser.c new file mode 100644 index 0000000..96baf20 --- /dev/null +++ b/3rdPartner/libhv/http/websocket_parser.c @@ -0,0 +1,249 @@ +#include "websocket_parser.h" +#include +#include + +#ifdef assert +# define assertFalse(msg) assert(0 && msg) +#else +# define assertFalse(msg) +#endif + +#define SET_STATE(V) parser->state = V +#define HAS_DATA() (p < end ) +#define CC (*p) +#define GET_NPARSED() ( (p == end) ? len : (p - data) ) + +#define NOTIFY_CB(FOR) \ +do { \ + if (settings->on_##FOR) { \ + if (settings->on_##FOR(parser) != 0) { \ + return GET_NPARSED(); \ + } \ + } \ +} while (0) + +#define EMIT_DATA_CB(FOR, ptr, len) \ +do { \ + if (settings->on_##FOR) { \ + if (settings->on_##FOR(parser, ptr, len) != 0) { \ + return GET_NPARSED(); \ + } \ + } \ +} while (0) + +enum state { + s_start, + s_head, + s_length, + s_mask, + s_body, +}; + +void websocket_parser_init(websocket_parser * parser) { + void *data = parser->data; /* preserve application data */ + memset(parser, 0, sizeof(*parser)); + parser->data = data; + parser->state = s_start; +} + +void websocket_parser_settings_init(websocket_parser_settings *settings) { + memset(settings, 0, sizeof(*settings)); +} + +size_t websocket_parser_execute(websocket_parser *parser, const websocket_parser_settings *settings, const char *data, size_t len) { + const char * p; + const char * end = data + len; + size_t frame_offset = 0; + + for(p = data; p != end; p++) { + switch(parser->state) { + case s_start: + parser->offset = 0; + parser->length = 0; + parser->mask_offset = 0; + parser->flags = (websocket_flags) (CC & WS_OP_MASK); + if(CC & (1<<7)) { + parser->flags |= WS_FIN; + } + SET_STATE(s_head); + + frame_offset++; + break; + case s_head: + parser->length = (size_t)CC & 0x7F; + if(CC & 0x80) { + parser->flags |= WS_HAS_MASK; + } + if(parser->length >= 126) { + if(parser->length == 127) { + parser->require = 8; + } else { + parser->require = 2; + } + parser->length = 0; + SET_STATE(s_length); + } else if (parser->flags & WS_HAS_MASK) { + SET_STATE(s_mask); + parser->require = 4; + } else if (parser->length) { + SET_STATE(s_body); + parser->require = parser->length; + NOTIFY_CB(frame_header); + } else { + SET_STATE(s_start); + NOTIFY_CB(frame_header); + NOTIFY_CB(frame_end); + } + + frame_offset++; + break; + case s_length: + while(HAS_DATA() && parser->require) { + parser->length <<= 8; + parser->length |= (unsigned char)CC; + parser->require--; + frame_offset++; + p++; + } + p--; + if(!parser->require) { + if (parser->flags & WS_HAS_MASK) { + SET_STATE(s_mask); + parser->require = 4; + } else if (parser->length) { + SET_STATE(s_body); + parser->require = parser->length; + NOTIFY_CB(frame_header); + } else { + SET_STATE(s_start); + NOTIFY_CB(frame_header); + NOTIFY_CB(frame_end); + } + } + break; + case s_mask: + while(HAS_DATA() && parser->require) { + parser->mask[4 - parser->require--] = CC; + frame_offset++; + p++; + } + p--; + if(!parser->require) { + if(parser->length) { + SET_STATE(s_body); + parser->require = parser->length; + NOTIFY_CB(frame_header); + } else { + SET_STATE(s_start); + NOTIFY_CB(frame_header); + NOTIFY_CB(frame_end); + } + } + break; + case s_body: + if(parser->require) { + if(p + parser->require <= end) { + EMIT_DATA_CB(frame_body, p, parser->require); + p += parser->require; + parser->require = 0; + frame_offset = p - data; + } else { + EMIT_DATA_CB(frame_body, p, end - p); + parser->require -= end - p; + p = end; + parser->offset += p - data - frame_offset; + frame_offset = 0; + } + + p--; + } + if(!parser->require) { + SET_STATE(s_start); + NOTIFY_CB(frame_end); + } + break; + default: + assertFalse("Unreachable case"); + } + } + + return GET_NPARSED(); +} + +void websocket_parser_decode(char * dst, const char * src, size_t len, websocket_parser * parser) { + size_t i = 0; + for(; i < len; i++) { + dst[i] = src[i] ^ parser->mask[(i + parser->mask_offset) % 4]; + } + + parser->mask_offset = (uint8_t) ((i + parser->mask_offset) % 4); +} + +uint8_t websocket_decode(char * dst, const char * src, size_t len, const char mask[4], uint8_t mask_offset) { + size_t i = 0; + for(; i < len; i++) { + dst[i] = src[i] ^ mask[(i + mask_offset) % 4]; + } + + return (uint8_t) ((i + mask_offset) % 4); +} + +size_t websocket_calc_frame_size(websocket_flags flags, size_t data_len) { + size_t size = data_len + 2; // body + 2 bytes of head + if(data_len >= 126) { + if(data_len > 0xFFFF) { + size += 8; + } else { + size += 2; + } + } + if(flags & WS_HAS_MASK) { + size += 4; + } + + return size; +} + +size_t websocket_build_frame(char * frame, websocket_flags flags, const char mask[4], const char * data, size_t data_len) { + size_t body_offset = 0; + frame[0] = 0; + frame[1] = 0; + if(flags & WS_FIN) { + frame[0] = (char) (1 << 7); + } + frame[0] |= flags & WS_OP_MASK; + if(flags & WS_HAS_MASK) { + frame[1] = (char) (1 << 7); + } + if(data_len < 126) { + frame[1] |= data_len; + body_offset = 2; + } else if(data_len <= 0xFFFF) { + frame[1] |= 126; + frame[2] = (char) (data_len >> 8); + frame[3] = (char) (data_len & 0xFF); + body_offset = 4; + } else { + frame[1] |= 127; + frame[2] = (char) ((data_len >> 56) & 0xFF); + frame[3] = (char) ((data_len >> 48) & 0xFF); + frame[4] = (char) ((data_len >> 40) & 0xFF); + frame[5] = (char) ((data_len >> 32) & 0xFF); + frame[6] = (char) ((data_len >> 24) & 0xFF); + frame[7] = (char) ((data_len >> 16) & 0xFF); + frame[8] = (char) ((data_len >> 8) & 0xFF); + frame[9] = (char) ((data_len) & 0xFF); + body_offset = 10; + } + if(flags & WS_HAS_MASK) { + if(mask != NULL) { + memcpy(&frame[body_offset], mask, 4); + } + websocket_decode(&frame[body_offset + 4], data, data_len, &frame[body_offset], 0); + body_offset += 4; + } else { + memcpy(&frame[body_offset], data, data_len); + } + + return body_offset + data_len; +} diff --git a/3rdPartner/libhv/http/websocket_parser.h b/3rdPartner/libhv/http/websocket_parser.h new file mode 100644 index 0000000..e022125 --- /dev/null +++ b/3rdPartner/libhv/http/websocket_parser.h @@ -0,0 +1,99 @@ +#ifndef WEBSOCKET_PARSER_H +#define WEBSOCKET_PARSER_H +#ifdef __cplusplus +extern "C" { +#endif + + +#include +#if defined(_WIN32) && !defined(__MINGW32__) && \ + (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__) +#include +#include +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include +#endif + +#define WEBSOCKET_UUID "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" + +typedef struct websocket_parser websocket_parser; +typedef struct websocket_parser_settings websocket_parser_settings; + +typedef enum websocket_flags { + // opcodes + WS_OP_CONTINUE = 0x0, + WS_OP_TEXT = 0x1, + WS_OP_BINARY = 0x2, + WS_OP_CLOSE = 0x8, + WS_OP_PING = 0x9, + WS_OP_PONG = 0xA, + + // marks + WS_FINAL_FRAME = 0x10, + WS_HAS_MASK = 0x20, +} websocket_flags; + +#define WS_OP_MASK 0xF +#define WS_FIN WS_FINAL_FRAME + +typedef int (*websocket_data_cb) (websocket_parser*, const char * at, size_t length); +typedef int (*websocket_cb) (websocket_parser*); + +struct websocket_parser { + uint32_t state; + websocket_flags flags; + + char mask[4]; + uint8_t mask_offset; + + size_t length; + size_t require; + size_t offset; + + void * data; +}; + +struct websocket_parser_settings { + websocket_cb on_frame_header; + websocket_data_cb on_frame_body; + websocket_cb on_frame_end; +}; + +void websocket_parser_init(websocket_parser *parser); +void websocket_parser_settings_init(websocket_parser_settings *settings); +size_t websocket_parser_execute( + websocket_parser * parser, + const websocket_parser_settings *settings, + const char * data, + size_t len +); + +// Apply XOR mask (see https://tools.ietf.org/html/rfc6455#section-5.3) and store mask's offset +void websocket_parser_decode(char * dst, const char * src, size_t len, websocket_parser * parser); + +// Apply XOR mask (see https://tools.ietf.org/html/rfc6455#section-5.3) and return mask's offset +uint8_t websocket_decode(char * dst, const char * src, size_t len, const char mask[4], uint8_t mask_offset); +#define websocket_encode(dst, src, len, mask, mask_offset) websocket_decode(dst, src, len, mask, mask_offset) + +// Calculate frame size using flags and data length +size_t websocket_calc_frame_size(websocket_flags flags, size_t data_len); + +// Create string representation of frame +size_t websocket_build_frame(char * frame, websocket_flags flags, const char mask[4], const char * data, size_t data_len); + +#define websocket_parser_get_opcode(p) (p->flags & WS_OP_MASK) +#define websocket_parser_has_mask(p) (p->flags & WS_HAS_MASK) +#define websocket_parser_has_final(p) (p->flags & WS_FIN) + +#ifdef __cplusplus +} +#endif +#endif //WEBSOCKET_PARSER_H diff --git a/3rdPartner/libhv/http/wsdef.c b/3rdPartner/libhv/http/wsdef.c new file mode 100644 index 0000000..a99d15a --- /dev/null +++ b/3rdPartner/libhv/http/wsdef.c @@ -0,0 +1,46 @@ +#include "wsdef.h" + +#include + +#include "sha1.h" +#include "base64.h" + +#include "websocket_parser.h" + +// base64_encode( SHA1(key + magic) ) +void ws_encode_key(const char* key, char accept[]) { + char magic[] = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; + unsigned char digest[20] = {0}; + HV_SHA1_CTX ctx; + HV_SHA1Init(&ctx); + HV_SHA1Update(&ctx, (unsigned char*)key, (uint32_t)strlen(key)); + HV_SHA1Update(&ctx, (unsigned char*)magic, (uint32_t)strlen(magic)); + HV_SHA1Final(digest, &ctx); + hv_base64_encode(digest, 20, accept); +} + +// fix-header[2] + var-length[2/8] + mask[4] + data[data_len] +int ws_calc_frame_size(int data_len, bool has_mask) { + int size = data_len + 2; + if (data_len >=126) { + if (data_len > 0xFFFF) { + size += 8; + } else { + size += 2; + } + } + if (has_mask) size += 4; + return size; +} + +int ws_build_frame( + char* out, + const char* data, int data_len, + const char mask[4], bool has_mask, + enum ws_opcode opcode, + bool fin) { + int flags = opcode; + if (fin) flags |= WS_FIN; + if (has_mask) flags |= WS_HAS_MASK; + return (int)websocket_build_frame(out, (websocket_flags)flags, mask, data, data_len); +} diff --git a/3rdPartner/libhv/http/wsdef.h b/3rdPartner/libhv/http/wsdef.h new file mode 100644 index 0000000..bbd0456 --- /dev/null +++ b/3rdPartner/libhv/http/wsdef.h @@ -0,0 +1,89 @@ +#ifndef HV_WS_DEF_H_ +#define HV_WS_DEF_H_ + +#include "hexport.h" + +#include +#include // import rand + +#define SEC_WEBSOCKET_VERSION "Sec-WebSocket-Version" +#define SEC_WEBSOCKET_KEY "Sec-WebSocket-Key" +#define SEC_WEBSOCKET_ACCEPT "Sec-WebSocket-Accept" +#define SEC_WEBSOCKET_PROTOCOL "Sec-WebSocket-Protocol" +#define SEC_WEBSOCKET_EXTENSIONS "Sec-WebSocket-Extensions" + +#define WS_SERVER_MIN_FRAME_SIZE 2 +// 1000 1001 0000 0000 +#define WS_SERVER_PING_FRAME "\211\0" +// 1000 1010 0000 0000 +#define WS_SERVER_PONG_FRAME "\212\0" + +#define WS_CLIENT_MIN_FRAME_SIZE 6 +// 1000 1001 1000 0000 +#define WS_CLIENT_PING_FRAME "\211\200WSWS" +// 1000 1010 1000 0000 +#define WS_CLIENT_PONG_FRAME "\212\200WSWS" + +enum ws_session_type { + WS_CLIENT, + WS_SERVER, +}; + +enum ws_opcode { + WS_OPCODE_CONTINUE = 0x0, + WS_OPCODE_TEXT = 0x1, + WS_OPCODE_BINARY = 0x2, + WS_OPCODE_CLOSE = 0x8, + WS_OPCODE_PING = 0x9, + WS_OPCODE_PONG = 0xA, +}; + +BEGIN_EXTERN_C + +// Sec-WebSocket-Key => Sec-WebSocket-Accept +HV_EXPORT void ws_encode_key(const char* key, char accept[]); + +// fix-header[2] + var-length[2/8] + mask[4] + data[data_len] +HV_EXPORT int ws_calc_frame_size(int data_len, bool has_mask DEFAULT(false)); + +HV_EXPORT int ws_build_frame( + char* out, + const char* data, + int data_len, + const char mask[4], + bool has_mask DEFAULT(false), + enum ws_opcode opcode DEFAULT(WS_OPCODE_TEXT), + bool fin DEFAULT(true)); + +HV_INLINE int ws_client_build_frame( + char* out, + const char* data, + int data_len, + /* const char mask[4] */ + /* bool has_mask = true */ + enum ws_opcode opcode DEFAULT(WS_OPCODE_TEXT), + bool fin DEFAULT(true)) { + char mask[4] = {0}; + int i = 0; + int imask = rand(); + for (i = 0; i < 4; i++) { + mask[i] = (imask >> (8 * i)) & 0xff; + } + return ws_build_frame(out, data, data_len, mask, true, opcode, fin); +} + +HV_INLINE int ws_server_build_frame( + char* out, + const char* data, + int data_len, + /* const char mask[4] */ + /* bool has_mask = false */ + enum ws_opcode opcode DEFAULT(WS_OPCODE_TEXT), + bool fin DEFAULT(true)) { + char mask[4] = {0}; + return ws_build_frame(out, data, data_len, mask, false, opcode, fin); +} + +END_EXTERN_C + +#endif // HV_WS_DEF_H_ diff --git a/3rdPartner/libhv/hv.h b/3rdPartner/libhv/hv.h new file mode 100644 index 0000000..ef6fb2b --- /dev/null +++ b/3rdPartner/libhv/hv.h @@ -0,0 +1,41 @@ +#ifndef HV_H_ +#define HV_H_ + +/** + * @copyright 2018 HeWei, all rights reserved. + */ + +// platform +#include "hconfig.h" +#include "hexport.h" +#include "hplatform.h" + +// c +#include "hdef.h" // +#include "hatomic.h"// +#include "herr.h" // +#include "htime.h" // +#include "hmath.h" // + +#include "hbase.h" +#include "hversion.h" +#include "hsysinfo.h" +#include "hproc.h" +#include "hthread.h" +#include "hmutex.h" +#include "hsocket.h" + +#include "hlog.h" +#include "hbuf.h" + +// cpp +#ifdef __cplusplus +#include "hmap.h" // +#include "hstring.h" // +#include "hfile.h" +#include "hpath.h" +#include "hdir.h" +#include "hurl.h" +#endif + +#endif // HV_H_ diff --git a/3rdPartner/libhv/misc/grpc_server.h b/3rdPartner/libhv/misc/grpc_server.h new file mode 100644 index 0000000..049d00b --- /dev/null +++ b/3rdPartner/libhv/misc/grpc_server.h @@ -0,0 +1,45 @@ +#ifndef GRPC_SERVER_H +#define GRPC_SERVER_H + +#include "grpcpp/grpcpp.h" +using grpc::ServerBuilder; +using grpc::Server; +using grpc::Service; +using grpc::ServerCompletionQueue; + +// GRPC_DEFAULT_MAX_RECV_MESSAGE_LENGTH = 4M +// GRPC_DEFAULT_MAX_SEND_MESSAGE_LENGTH = 4M +#define GRPC_MAX_RECV_MESSAGE_LENGTH 1<<24 // 16M +#define GRPC_MAX_SEND_MESSAGE_LENGTH 1<<24 // 16M + +class GrpcServer { +public: + GrpcServer(int port) : _port(port) { + char srvaddr[128] = {0}; + snprintf(srvaddr, sizeof(srvaddr), "%s:%d", "0.0.0.0", _port); + build_.AddListeningPort(srvaddr, grpc::InsecureServerCredentials()); + build_.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIME_MS, 30000); + build_.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIMEOUT_MS, 5000); + build_.AddChannelArgument(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS, 1); + build_.SetMaxReceiveMessageSize(GRPC_MAX_RECV_MESSAGE_LENGTH); + build_.SetMaxSendMessageSize(GRPC_MAX_SEND_MESSAGE_LENGTH); + } + + void RegisterService(Service* service) { + build_.RegisterService(service); + } + + void Run(bool wait=true) { + server_ = build_.BuildAndStart(); + if (wait) { + server_->Wait(); + } + } + +public: + int _port; + ServerBuilder build_; + std::unique_ptr server_; +}; + +#endif // GRPC_SERVER_H diff --git a/3rdPartner/libhv/misc/win32_getopt.h b/3rdPartner/libhv/misc/win32_getopt.h new file mode 100644 index 0000000..d7e2601 --- /dev/null +++ b/3rdPartner/libhv/misc/win32_getopt.h @@ -0,0 +1,653 @@ +#ifndef __GETOPT_H__ +/** + * DISCLAIMER + * This file is part of the mingw-w64 runtime package. + * + * The mingw-w64 runtime package and its code is distributed in the hope that it + * will be useful but WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESSED OR + * IMPLIED ARE HEREBY DISCLAIMED. This includes but is not limited to + * warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + /* + * Copyright (c) 2002 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ +/*- + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Dieter Baron and Thomas Klausner. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma warning(disable:4996) + +#define __GETOPT_H__ + +/* All the headers include this file. */ +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define REPLACE_GETOPT /* use this getopt as the system getopt(3) */ + +#ifdef REPLACE_GETOPT +int opterr = 1; /* if error message should be printed */ +int optind = 1; /* index into parent argv vector */ +int optopt = '?'; /* character checked for validity */ +#undef optreset /* see getopt.h */ +#define optreset __mingw_optreset +int optreset; /* reset getopt */ +char *optarg; /* argument associated with option */ +#endif + +//extern int optind; /* index of first non-option in argv */ +//extern int optopt; /* single option character, as parsed */ +//extern int opterr; /* flag to enable built-in diagnostics... */ +// /* (user may set to zero, to suppress) */ +// +//extern char *optarg; /* pointer to argument of current option */ + +#define PRINT_ERROR ((opterr) && (*options != ':')) + +#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */ +#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */ +#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */ + +/* return values */ +#define BADCH (int)'?' +#define BADARG ((*options == ':') ? (int)':' : (int)'?') +#define INORDER (int)1 + +#ifndef __CYGWIN__ +#define __progname __argv[0] +#else +extern char __declspec(dllimport) *__progname; +#endif + +#ifdef __CYGWIN__ +static char EMSG[] = ""; +#else +#define EMSG (char*)"" +#endif + +static int getopt_internal(int, char * const *, const char *, + const struct option *, int *, int); +static int parse_long_options(char * const *, const char *, + const struct option *, int *, int); +static int gcd(int, int); +static void permute_args(int, int, int, char * const *); + +static char *place = EMSG; /* option letter processing */ + +/* XXX: set optreset to 1 rather than these two */ +static int nonopt_start = -1; /* first non option argument (for permute) */ +static int nonopt_end = -1; /* first option after non options (for permute) */ + +/* Error messages */ +static const char recargchar[] = "option requires an argument -- %c"; +static const char recargstring[] = "option requires an argument -- %s"; +static const char ambig[] = "ambiguous option -- %.*s"; +static const char noarg[] = "option doesn't take an argument -- %.*s"; +static const char illoptchar[] = "unknown option -- %c"; +static const char illoptstring[] = "unknown option -- %s"; + +static void +_vwarnx(const char *fmt,va_list ap) +{ + (void)fprintf(stderr,"%s: ",__progname); + if (fmt != NULL) + (void)vfprintf(stderr,fmt,ap); + (void)fprintf(stderr,"\n"); +} + +static void +warnx(const char *fmt,...) +{ + va_list ap; + va_start(ap,fmt); + _vwarnx(fmt,ap); + va_end(ap); +} + +/* + * Compute the greatest common divisor of a and b. + */ +static int +gcd(int a, int b) +{ + int c; + + c = a % b; + while (c != 0) { + a = b; + b = c; + c = a % b; + } + + return (b); +} + +/* + * Exchange the block from nonopt_start to nonopt_end with the block + * from nonopt_end to opt_end (keeping the same order of arguments + * in each block). + */ +static void +permute_args(int panonopt_start, int panonopt_end, int opt_end, + char * const *nargv) +{ + int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; + char *swap; + + /* + * compute lengths of blocks and number and size of cycles + */ + nnonopts = panonopt_end - panonopt_start; + nopts = opt_end - panonopt_end; + ncycle = gcd(nnonopts, nopts); + cyclelen = (opt_end - panonopt_start) / ncycle; + + for (i = 0; i < ncycle; i++) { + cstart = panonopt_end+i; + pos = cstart; + for (j = 0; j < cyclelen; j++) { + if (pos >= panonopt_end) + pos -= nnonopts; + else + pos += nopts; + swap = nargv[pos]; + /* LINTED const cast */ + ((char **) nargv)[pos] = nargv[cstart]; + /* LINTED const cast */ + ((char **)nargv)[cstart] = swap; + } + } +} + +#ifdef REPLACE_GETOPT +/* + * getopt -- + * Parse argc/argv argument vector. + * + * [eventually this will replace the BSD getopt] + */ +int +getopt(int nargc, char * const *nargv, const char *options) +{ + + /* + * We don't pass FLAG_PERMUTE to getopt_internal() since + * the BSD getopt(3) (unlike GNU) has never done this. + * + * Furthermore, since many privileged programs call getopt() + * before dropping privileges it makes sense to keep things + * as simple (and bug-free) as possible. + */ + return (getopt_internal(nargc, nargv, options, NULL, NULL, 0)); +} +#endif /* REPLACE_GETOPT */ + +//extern int getopt(int nargc, char * const *nargv, const char *options); + +#ifdef _BSD_SOURCE +/* + * BSD adds the non-standard `optreset' feature, for reinitialisation + * of `getopt' parsing. We support this feature, for applications which + * proclaim their BSD heritage, before including this header; however, + * to maintain portability, developers are advised to avoid it. + */ +# define optreset __mingw_optreset +extern int optreset; +#endif +#ifdef __cplusplus +} +#endif +/* + * POSIX requires the `getopt' API to be specified in `unistd.h'; + * thus, `unistd.h' includes this header. However, we do not want + * to expose the `getopt_long' or `getopt_long_only' APIs, when + * included in this manner. Thus, close the standard __GETOPT_H__ + * declarations block, and open an additional __GETOPT_LONG_H__ + * specific block, only when *not* __UNISTD_H_SOURCED__, in which + * to declare the extended API. + */ +#endif /* !defined(__GETOPT_H__) */ + +#if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) +#define __GETOPT_LONG_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +struct option /* specification for a long form option... */ +{ + const char *name; /* option name, without leading hyphens */ + int has_arg; /* does it take an argument? */ + int *flag; /* where to save its status, or NULL */ + int val; /* its associated status value */ +}; + +enum /* permitted values for its `has_arg' field... */ +{ + no_argument = 0, /* option never takes an argument */ + required_argument, /* option always requires an argument */ + optional_argument /* option may take an argument */ +}; + +/* + * parse_long_options -- + * Parse long options in argc/argv argument vector. + * Returns -1 if short_too is set and the option does not match long_options. + */ +static int +parse_long_options(char * const *nargv, const char *options, + const struct option *long_options, int *idx, int short_too) +{ + char *current_argv, *has_equal; + size_t current_argv_len; + int i, ambiguous, match; + +#define IDENTICAL_INTERPRETATION(_x, _y) \ + (long_options[(_x)].has_arg == long_options[(_y)].has_arg && \ + long_options[(_x)].flag == long_options[(_y)].flag && \ + long_options[(_x)].val == long_options[(_y)].val) + + current_argv = place; + match = -1; + ambiguous = 0; + + optind++; + + if ((has_equal = strchr(current_argv, '=')) != NULL) { + /* argument found (--option=arg) */ + current_argv_len = has_equal - current_argv; + has_equal++; + } else + current_argv_len = strlen(current_argv); + + for (i = 0; long_options[i].name; i++) { + /* find matching long option */ + if (strncmp(current_argv, long_options[i].name, + current_argv_len)) + continue; + + if (strlen(long_options[i].name) == current_argv_len) { + /* exact match */ + match = i; + ambiguous = 0; + break; + } + /* + * If this is a known short option, don't allow + * a partial match of a single character. + */ + if (short_too && current_argv_len == 1) + continue; + + if (match == -1) /* partial match */ + match = i; + else if (!IDENTICAL_INTERPRETATION(i, match)) + ambiguous = 1; + } + if (ambiguous) { + /* ambiguous abbreviation */ + if (PRINT_ERROR) + warnx(ambig, (int)current_argv_len, + current_argv); + optopt = 0; + return (BADCH); + } + if (match != -1) { /* option found */ + if (long_options[match].has_arg == no_argument + && has_equal) { + if (PRINT_ERROR) + warnx(noarg, (int)current_argv_len, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + return (BADARG); + } + if (long_options[match].has_arg == required_argument || + long_options[match].has_arg == optional_argument) { + if (has_equal) + optarg = has_equal; + else if (long_options[match].has_arg == + required_argument) { + /* + * optional argument doesn't use next nargv + */ + optarg = nargv[optind++]; + } + } + if ((long_options[match].has_arg == required_argument) + && (optarg == NULL)) { + /* + * Missing argument; leading ':' indicates no error + * should be generated. + */ + if (PRINT_ERROR) + warnx(recargstring, + current_argv); + /* + * XXX: GNU sets optopt to val regardless of flag + */ + if (long_options[match].flag == NULL) + optopt = long_options[match].val; + else + optopt = 0; + --optind; + return (BADARG); + } + } else { /* unknown option */ + if (short_too) { + --optind; + return (-1); + } + if (PRINT_ERROR) + warnx(illoptstring, current_argv); + optopt = 0; + return (BADCH); + } + if (idx) + *idx = match; + if (long_options[match].flag) { + *long_options[match].flag = long_options[match].val; + return (0); + } else + return (long_options[match].val); +#undef IDENTICAL_INTERPRETATION +} + +/* + * getopt_internal -- + * Parse argc/argv argument vector. Called by user level routines. + */ +static int +getopt_internal(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx, int flags) +{ + char *oli; /* option letter list index */ + int optchar, short_too; + static int posixly_correct = -1; + + if (options == NULL) + return (-1); + + /* + * XXX Some GNU programs (like cvs) set optind to 0 instead of + * XXX using optreset. Work around this braindamage. + */ + if (optind == 0) + optind = optreset = 1; + + /* + * Disable GNU extensions if POSIXLY_CORRECT is set or options + * string begins with a '+'. + * + * CV, 2009-12-14: Check POSIXLY_CORRECT anew if optind == 0 or + * optreset != 0 for GNU compatibility. + */ + if (posixly_correct == -1 || optreset != 0) + posixly_correct = (getenv("POSIXLY_CORRECT") != NULL); + if (*options == '-') + flags |= FLAG_ALLARGS; + else if (posixly_correct || *options == '+') + flags &= ~FLAG_PERMUTE; + if (*options == '+' || *options == '-') + options++; + + optarg = NULL; + if (optreset) + nonopt_start = nonopt_end = -1; +start: + if (optreset || !*place) { /* update scanning pointer */ + optreset = 0; + if (optind >= nargc) { /* end of argument vector */ + place = EMSG; + if (nonopt_end != -1) { + /* do permutation, if we have to */ + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + else if (nonopt_start != -1) { + /* + * If we skipped non-options, set optind + * to the first of them. + */ + optind = nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + if (*(place = nargv[optind]) != '-' || + (place[1] == '\0' && strchr(options, '-') == NULL)) { + place = EMSG; /* found non-option */ + if (flags & FLAG_ALLARGS) { + /* + * GNU extension: + * return non-option as argument to option 1 + */ + optarg = nargv[optind++]; + return (INORDER); + } + if (!(flags & FLAG_PERMUTE)) { + /* + * If no permutation wanted, stop parsing + * at first non-option. + */ + return (-1); + } + /* do permutation */ + if (nonopt_start == -1) + nonopt_start = optind; + else if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + nonopt_start = optind - + (nonopt_end - nonopt_start); + nonopt_end = -1; + } + optind++; + /* process next argument */ + goto start; + } + if (nonopt_start != -1 && nonopt_end == -1) + nonopt_end = optind; + + /* + * If we have "-" do nothing, if "--" we are done. + */ + if (place[1] != '\0' && *++place == '-' && place[1] == '\0') { + optind++; + place = EMSG; + /* + * We found an option (--), so if we skipped + * non-options, we have to permute. + */ + if (nonopt_end != -1) { + permute_args(nonopt_start, nonopt_end, + optind, nargv); + optind -= nonopt_end - nonopt_start; + } + nonopt_start = nonopt_end = -1; + return (-1); + } + } + + /* + * Check long options if: + * 1) we were passed some + * 2) the arg is not just "-" + * 3) either the arg starts with -- we are getopt_long_only() + */ + if (long_options != NULL && place != nargv[optind] && + (*place == '-' || (flags & FLAG_LONGONLY))) { + short_too = 0; + if (*place == '-') + place++; /* --foo long option */ + else if (*place != ':' && strchr(options, *place) != NULL) + short_too = 1; /* could be short option too */ + + optchar = parse_long_options(nargv, options, long_options, + idx, short_too); + if (optchar != -1) { + place = EMSG; + return (optchar); + } + } + + if ((optchar = (int)*place++) == (int)':' || + (optchar == (int)'-' && *place != '\0') || + (oli = (char*)strchr(options, optchar)) == NULL) { + /* + * If the user specified "-" and '-' isn't listed in + * options, return -1 (non-option) as per POSIX. + * Otherwise, it is an unknown option character (or ':'). + */ + if (optchar == (int)'-' && *place == '\0') + return (-1); + if (!*place) + ++optind; + if (PRINT_ERROR) + warnx(illoptchar, optchar); + optopt = optchar; + return (BADCH); + } + if (long_options != NULL && optchar == 'W' && oli[1] == ';') { + /* -W long-option */ + if (*place) /* no space */ + /* NOTHING */; + else if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else /* white space */ + place = nargv[optind]; + optchar = parse_long_options(nargv, options, long_options, + idx, 0); + place = EMSG; + return (optchar); + } + if (*++oli != ':') { /* doesn't take argument */ + if (!*place) + ++optind; + } else { /* takes (optional) argument */ + optarg = NULL; + if (*place) /* no white space */ + optarg = place; + else if (oli[1] != ':') { /* arg not optional */ + if (++optind >= nargc) { /* no arg */ + place = EMSG; + if (PRINT_ERROR) + warnx(recargchar, optchar); + optopt = optchar; + return (BADARG); + } else + optarg = nargv[optind]; + } + place = EMSG; + ++optind; + } + /* dump back option letter */ + return (optchar); +} + +/* + * getopt_long -- + * Parse argc/argv argument vector. + */ +int +getopt_long(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) +{ + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE)); +} + +/* + * getopt_long_only -- + * Parse argc/argv argument vector. + */ +int +getopt_long_only(int nargc, char * const *nargv, const char *options, + const struct option *long_options, int *idx) +{ + + return (getopt_internal(nargc, nargv, options, long_options, idx, + FLAG_PERMUTE|FLAG_LONGONLY)); +} + +//extern int getopt_long(int nargc, char * const *nargv, const char *options, +// const struct option *long_options, int *idx); +//extern int getopt_long_only(int nargc, char * const *nargv, const char *options, +// const struct option *long_options, int *idx); +/* + * Previous MinGW implementation had... + */ +#ifndef HAVE_DECL_GETOPT +/* + * ...for the long form API only; keep this for compatibility. + */ +# define HAVE_DECL_GETOPT 1 +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */ diff --git a/3rdPartner/libhv/mqtt/mqtt_client.c b/3rdPartner/libhv/mqtt/mqtt_client.c new file mode 100644 index 0000000..2a62d38 --- /dev/null +++ b/3rdPartner/libhv/mqtt/mqtt_client.c @@ -0,0 +1,602 @@ +#include "mqtt_client.h" +#include "hbase.h" +#include "hlog.h" +#include "herr.h" +#include "hendian.h" + +static unsigned short mqtt_next_mid() { + static unsigned short s_mid = 0; + return ++s_mid; +} + +static int mqtt_client_send(mqtt_client_t* cli, const void* buf, int len) { + // thread-safe + hmutex_lock(&cli->mutex_); + int nwrite = hio_write(cli->io, buf, len); + hmutex_unlock(&cli->mutex_); + return nwrite; +} + +static int mqtt_send_head(hio_t* io, int type, int length) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = type; + head.length = length; + unsigned char headbuf[8] = { 0 }; + int headlen = mqtt_head_pack(&head, headbuf); + return mqtt_client_send(cli, headbuf, headlen); +} + +static int mqtt_send_head_with_mid(hio_t* io, int type, unsigned short mid) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = type; + if (head.type == MQTT_TYPE_PUBREL) { + head.qos = 1; + } + head.length = 2; + unsigned char headbuf[8] = { 0 }; + unsigned char* p = headbuf; + int headlen = mqtt_head_pack(&head, p); + p += headlen; + PUSH16(p, mid); + return mqtt_client_send(cli, headbuf, headlen + 2); +} + +static void mqtt_send_ping(hio_t* io) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + if (cli->ping_cnt++ == 3) { + hloge("mqtt no pong!"); + hio_close(io); + return; + } + mqtt_send_head(io, MQTT_TYPE_PINGREQ, 0); +} + +static void mqtt_send_pong(hio_t* io) { + mqtt_send_head(io, MQTT_TYPE_PINGRESP, 0); +} + +static void mqtt_send_disconnect(hio_t* io) { + mqtt_send_head(io, MQTT_TYPE_DISCONNECT, 0); +} + +/* + * MQTT_TYPE_CONNECT + * 2 + protocol_name + 1 protocol_version + 1 conn_flags + 2 keepalive + 2 + [client_id] + + * [2 + will_topic + 2 + will_payload] + + * [2 + username] + [2 + password] + */ +static int mqtt_client_login(mqtt_client_t* cli) { + int len = 2 + 1 + 1 + 2 + 2; + unsigned short cid_len = 0, + will_topic_len = 0, + will_payload_len = 0, + username_len = 0, + password_len = 0; + unsigned char conn_flags = 0; + + // protocol_name_len + len += cli->protocol_version == MQTT_PROTOCOL_V31 ? 6 : 4; + if (*cli->client_id) { + cid_len = strlen(cli->client_id); + } else { + cid_len = 20; + hv_random_string(cli->client_id, cid_len); + hlogi("MQTT client_id: %.*s", (int)cid_len, cli->client_id); + } + len += cid_len; + if (cid_len == 0) cli->clean_session = 1; + if (cli->clean_session) { + conn_flags |= MQTT_CONN_CLEAN_SESSION; + } + if (cli->will && cli->will->topic && cli->will->payload) { + will_topic_len = cli->will->topic_len ? cli->will->topic_len : strlen(cli->will->topic); + will_payload_len = cli->will->payload_len ? cli->will->payload_len : strlen(cli->will->payload); + if (will_topic_len && will_payload_len) { + conn_flags |= MQTT_CONN_HAS_WILL; + conn_flags |= ((cli->will->qos & 3) << 3); + if (cli->will->retain) { + conn_flags |= MQTT_CONN_WILL_RETAIN; + } + len += 2 + will_topic_len; + len += 2 + will_payload_len; + } + } + if (*cli->username) { + username_len = strlen(cli->username); + if (username_len) { + conn_flags |= MQTT_CONN_HAS_USERNAME; + len += 2 + username_len; + } + } + if (*cli->password) { + password_len = strlen(cli->password); + if (password_len) { + conn_flags |= MQTT_CONN_HAS_PASSWORD; + len += 2 + password_len; + } + } + + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = MQTT_TYPE_CONNECT; + head.length = len; + int buflen = mqtt_estimate_length(&head); + unsigned char* buf = NULL; + HV_STACK_ALLOC(buf, buflen); + unsigned char* p = buf; + int headlen = mqtt_head_pack(&head, p); + p += headlen; + // TODO: Not implement MQTT_PROTOCOL_V5 + if (cli->protocol_version == MQTT_PROTOCOL_V31) { + PUSH16(p, 6); + PUSH_N(p, MQTT_PROTOCOL_NAME_v31, 6); + } else { + PUSH16(p, 4); + PUSH_N(p, MQTT_PROTOCOL_NAME, 4); + } + PUSH8(p, cli->protocol_version); + PUSH8(p, conn_flags); + PUSH16(p, cli->keepalive); + PUSH16(p, cid_len); + if (cid_len > 0) { + PUSH_N(p, cli->client_id, cid_len); + } + if (conn_flags & MQTT_CONN_HAS_WILL) { + PUSH16(p, will_topic_len); + PUSH_N(p, cli->will->topic, will_topic_len); + PUSH16(p, will_payload_len); + PUSH_N(p, cli->will->payload, will_payload_len); + } + if (conn_flags & MQTT_CONN_HAS_USERNAME) { + PUSH16(p, username_len); + PUSH_N(p, cli->username, username_len); + } + if (conn_flags & MQTT_CONN_HAS_PASSWORD) { + PUSH16(p, password_len); + PUSH_N(p, cli->password, password_len); + } + + int nwrite = mqtt_client_send(cli, buf, p - buf); + HV_STACK_FREE(buf); + return nwrite < 0 ? nwrite : 0; +} + +static void reconnect_timer_cb(htimer_t* timer) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(timer); + if (cli == NULL) return; + cli->reconn_timer = NULL; + mqtt_client_reconnect(cli); +} + +static void on_close(hio_t* io) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + cli->connected = 0; + if (cli->cb) { + cli->head.type = MQTT_TYPE_DISCONNECT; + cli->cb(cli, cli->head.type); + } + // reconnect + if (cli->reconn_setting && reconn_setting_can_retry(cli->reconn_setting)) { + uint32_t delay = reconn_setting_calc_delay(cli->reconn_setting); + cli->reconn_timer = htimer_add(cli->loop, reconnect_timer_cb, delay, 1); + hevent_set_userdata(cli->reconn_timer, cli); + } +} + +static void on_packet(hio_t* io, void* buf, int len) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + unsigned char* p = (unsigned char*)buf; + unsigned char* end = p + len; + memset(&cli->head, 0, sizeof(mqtt_head_t)); + int headlen = mqtt_head_unpack(&cli->head, p, len); + if (headlen <= 0) return; + p += headlen; + switch (cli->head.type) { + // case MQTT_TYPE_CONNECT: + case MQTT_TYPE_CONNACK: + { + if (cli->head.length < 2) { + hloge("MQTT CONNACK malformed!"); + hio_close(io); + return; + } + unsigned char conn_flags = 0, rc = 0; + POP8(p, conn_flags); + POP8(p, rc); + if (rc != MQTT_CONNACK_ACCEPTED) { + cli->error = rc; + hloge("MQTT CONNACK error=%d", cli->error); + hio_close(io); + return; + } + cli->connected = 1; + if (cli->keepalive) { + cli->ping_cnt = 0; + hio_set_heartbeat(io, cli->keepalive * 1000, mqtt_send_ping); + } + } + break; + case MQTT_TYPE_PUBLISH: + { + if (cli->head.length < 2) { + hloge("MQTT PUBLISH malformed!"); + hio_close(io); + return; + } + memset(&cli->message, 0, sizeof(mqtt_message_t)); + POP16(p, cli->message.topic_len); + if (end - p < cli->message.topic_len) { + hloge("MQTT PUBLISH malformed!"); + hio_close(io); + return; + } + // NOTE: Not deep copy + cli->message.topic = (char*)p; + p += cli->message.topic_len; + if (cli->head.qos > 0) { + if (end - p < 2) { + hloge("MQTT PUBLISH malformed!"); + hio_close(io); + return; + } + POP16(p, cli->mid); + } + cli->message.payload_len = end - p; + if (cli->message.payload_len > 0) { + // NOTE: Not deep copy + cli->message.payload = (char*)p; + } + cli->message.qos = cli->head.qos; + if (cli->message.qos == 0) { + // Do nothing + } else if (cli->message.qos == 1) { + mqtt_send_head_with_mid(io, MQTT_TYPE_PUBACK, cli->mid); + } else if (cli->message.qos == 2) { + mqtt_send_head_with_mid(io, MQTT_TYPE_PUBREC, cli->mid); + } + } + break; + case MQTT_TYPE_PUBACK: + case MQTT_TYPE_PUBREC: + case MQTT_TYPE_PUBREL: + case MQTT_TYPE_PUBCOMP: + { + if (cli->head.length < 2) { + hloge("MQTT PUBACK malformed!"); + hio_close(io); + return; + } + POP16(p, cli->mid); + if (cli->head.type == MQTT_TYPE_PUBREC) { + mqtt_send_head_with_mid(io, MQTT_TYPE_PUBREL, cli->mid); + } else if (cli->head.type == MQTT_TYPE_PUBREL) { + mqtt_send_head_with_mid(io, MQTT_TYPE_PUBCOMP, cli->mid); + } + } + break; + // case MQTT_TYPE_SUBSCRIBE: + // break; + case MQTT_TYPE_SUBACK: + { + if (cli->head.length < 2) { + hloge("MQTT SUBACK malformed!"); + hio_close(io); + return; + } + POP16(p, cli->mid); + } + break; + // case MQTT_TYPE_UNSUBSCRIBE: + // break; + case MQTT_TYPE_UNSUBACK: + { + if (cli->head.length < 2) { + hloge("MQTT UNSUBACK malformed!"); + hio_close(io); + return; + } + POP16(p, cli->mid); + } + break; + case MQTT_TYPE_PINGREQ: + // printf("recv ping\n"); + // printf("send pong\n"); + mqtt_send_pong(io); + return; + case MQTT_TYPE_PINGRESP: + // printf("recv pong\n"); + cli->ping_cnt = 0; + return; + case MQTT_TYPE_DISCONNECT: + hio_close(io); + return; + default: + hloge("MQTT client received wrong type=%d", (int)cli->head.type); + hio_close(io); + return; + } + + if (cli->cb) { + cli->cb(cli, cli->head.type); + } +} + +static void on_connect(hio_t* io) { + mqtt_client_t* cli = (mqtt_client_t*)hevent_userdata(io); + if (cli->cb) { + cli->head.type = MQTT_TYPE_CONNECT; + cli->cb(cli, cli->head.type); + } + if (cli->reconn_setting) { + reconn_setting_reset(cli->reconn_setting); + } + + static unpack_setting_t mqtt_unpack_setting; + mqtt_unpack_setting.mode = UNPACK_BY_LENGTH_FIELD; + mqtt_unpack_setting.package_max_length = DEFAULT_MQTT_PACKAGE_MAX_LENGTH; + mqtt_unpack_setting.body_offset = 2; + mqtt_unpack_setting.length_field_offset = 1; + mqtt_unpack_setting.length_field_bytes = 1; + mqtt_unpack_setting.length_field_coding = ENCODE_BY_VARINT; + hio_set_unpack(io, &mqtt_unpack_setting); + + // start recv packet + hio_setcb_read(io, on_packet); + hio_read(io); + + mqtt_client_login(cli); +} + +mqtt_client_t* mqtt_client_new(hloop_t* loop) { + if (loop == NULL) { + loop = hloop_new(HLOOP_FLAG_AUTO_FREE); + if (loop == NULL) return NULL; + } + mqtt_client_t* cli = NULL; + HV_ALLOC_SIZEOF(cli); + if (cli == NULL) return NULL; + cli->loop = loop; + cli->protocol_version = MQTT_PROTOCOL_V311; + cli->keepalive = DEFAULT_MQTT_KEEPALIVE; + hmutex_init(&cli->mutex_); + return cli; +} + +void mqtt_client_free(mqtt_client_t* cli) { + if (!cli) return; + hmutex_destroy(&cli->mutex_); + if (cli->ssl_ctx && cli->alloced_ssl_ctx) { + hssl_ctx_free(cli->ssl_ctx); + cli->ssl_ctx = NULL; + } + HV_FREE(cli->reconn_setting); + HV_FREE(cli->will); + HV_FREE(cli); +} + +void mqtt_client_run (mqtt_client_t* cli) { + if (!cli || !cli->loop) return; + hloop_run(cli->loop); +} + +void mqtt_client_stop(mqtt_client_t* cli) { + if (!cli || !cli->loop) return; + hloop_stop(cli->loop); +} + +void mqtt_client_set_id(mqtt_client_t* cli, const char* id) { + if (!cli || !id) return; + hv_strncpy(cli->client_id, id, sizeof(cli->client_id)); +} + +void mqtt_client_set_will(mqtt_client_t* cli, mqtt_message_t* will) { + if (!cli || !will) return; + if (cli->will == NULL) { + HV_ALLOC_SIZEOF(cli->will); + } + memcpy(cli->will, will, sizeof(mqtt_message_t)); +} + +void mqtt_client_set_auth(mqtt_client_t* cli, const char* username, const char* password) { + if (!cli) return; + if (username) { + hv_strncpy(cli->username, username, sizeof(cli->username)); + } + if (password) { + hv_strncpy(cli->password, password, sizeof(cli->password)); + } +} + +void mqtt_client_set_callback(mqtt_client_t* cli, mqtt_client_cb cb) { + if (!cli) return; + cli->cb = cb; +} + +void mqtt_client_set_userdata(mqtt_client_t* cli, void* userdata) { + if (!cli) return; + cli->userdata = userdata; +} + +void* mqtt_client_get_userdata(mqtt_client_t* cli) { + if (!cli) return NULL; + return cli->userdata; +} + +int mqtt_client_get_last_error(mqtt_client_t* cli) { + if (!cli) return -1; + return cli->error; +} + +int mqtt_client_set_ssl_ctx(mqtt_client_t* cli, hssl_ctx_t ssl_ctx) { + cli->ssl_ctx = ssl_ctx; + return 0; +} + +int mqtt_client_new_ssl_ctx(mqtt_client_t* cli, hssl_ctx_opt_t* opt) { + opt->endpoint = HSSL_CLIENT; + hssl_ctx_t ssl_ctx = hssl_ctx_new(opt); + if (ssl_ctx == NULL) return ERR_NEW_SSL_CTX; + cli->alloced_ssl_ctx = true; + return mqtt_client_set_ssl_ctx(cli, ssl_ctx); +} + +int mqtt_client_set_reconnect(mqtt_client_t* cli, reconn_setting_t* reconn) { + if (reconn == NULL) { + HV_FREE(cli->reconn_setting); + return 0; + } + if (cli->reconn_setting == NULL) { + HV_ALLOC_SIZEOF(cli->reconn_setting); + } + *cli->reconn_setting = *reconn; + return 0; +} + +int mqtt_client_reconnect(mqtt_client_t* cli) { + mqtt_client_connect(cli, cli->host, cli->port, cli->ssl); + return 0; +} + +void mqtt_client_set_connect_timeout(mqtt_client_t* cli, int ms) { + cli->connect_timeout = ms; +} + +int mqtt_client_connect(mqtt_client_t* cli, const char* host, int port, int ssl) { + if (!cli) return -1; + hv_strncpy(cli->host, host, sizeof(cli->host)); + cli->port = port; + cli->ssl = ssl; + hio_t* io = hio_create_socket(cli->loop, host, port, HIO_TYPE_TCP, HIO_CLIENT_SIDE); + if (io == NULL) return -1; + if (ssl) { + if (cli->ssl_ctx) { + hio_set_ssl_ctx(io, cli->ssl_ctx); + } + hio_enable_ssl(io); + } + if (cli->connect_timeout > 0) { + hio_set_connect_timeout(io, cli->connect_timeout); + } + cli->io = io; + hevent_set_userdata(io, cli); + hio_setcb_connect(io, on_connect); + hio_setcb_close(io, on_close); + return hio_connect(io); +} + +bool mqtt_client_is_connected(mqtt_client_t* cli) { + return cli && cli->connected; +} + +int mqtt_client_disconnect(mqtt_client_t* cli) { + if (!cli || !cli->io) return -1; + // cancel reconnect first + mqtt_client_set_reconnect(cli, NULL); + mqtt_send_disconnect(cli->io); + return hio_close(cli->io); +} + +int mqtt_client_publish(mqtt_client_t* cli, mqtt_message_t* msg) { + if (!cli || !cli->io || !msg) return -1; + if (!cli->connected) return -2; + int topic_len = msg->topic_len ? msg->topic_len : strlen(msg->topic); + int payload_len = msg->payload_len ? msg->payload_len : strlen(msg->payload); + int len = 2 + topic_len + payload_len; + if (msg->qos > 0) len += 2; // mid + unsigned short mid = 0; + + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = MQTT_TYPE_PUBLISH; + head.qos = msg->qos & 3; + head.retain = msg->retain; + head.length = len; + int buflen = mqtt_estimate_length(&head); + // NOTE: send payload alone + buflen -= payload_len; + unsigned char* buf = NULL; + HV_STACK_ALLOC(buf, buflen); + unsigned char* p = buf; + int headlen = mqtt_head_pack(&head, p); + p += headlen; + PUSH16(p, topic_len); + PUSH_N(p, msg->topic, topic_len); + if (msg->qos) { + mid = mqtt_next_mid(); + PUSH16(p, mid); + } + + hmutex_lock(&cli->mutex_); + // send head + topic + mid + int nwrite = hio_write(cli->io, buf, p - buf); + HV_STACK_FREE(buf); + if (nwrite < 0) { + goto unlock; + } + + // send payload + nwrite = hio_write(cli->io, msg->payload, payload_len); + +unlock: + hmutex_unlock(&cli->mutex_); + return nwrite < 0 ? nwrite : mid; +} + +int mqtt_client_subscribe(mqtt_client_t* cli, const char* topic, int qos) { + if (!cli || !cli->io || !topic) return -1; + if (!cli->connected) return -2; + int topic_len = strlen(topic); + int len = 2 + 2 + topic_len + 1; + + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = MQTT_TYPE_SUBSCRIBE; + head.qos = 1; + head.length = len; + int buflen = mqtt_estimate_length(&head); + unsigned char* buf = NULL; + HV_STACK_ALLOC(buf, buflen); + unsigned char* p = buf; + int headlen = mqtt_head_pack(&head, p); + p += headlen; + unsigned short mid = mqtt_next_mid(); + PUSH16(p, mid); + PUSH16(p, topic_len); + PUSH_N(p, topic, topic_len); + PUSH8(p, qos & 3); + // send head + mid + topic + qos + int nwrite = mqtt_client_send(cli, buf, p - buf); + HV_STACK_FREE(buf); + return nwrite < 0 ? nwrite : mid; +} + +int mqtt_client_unsubscribe(mqtt_client_t* cli, const char* topic) { + if (!cli || !cli->io || !topic) return -1; + if (!cli->connected) return -2; + int topic_len = strlen(topic); + int len = 2 + 2 + topic_len; + + mqtt_head_t head; + memset(&head, 0, sizeof(head)); + head.type = MQTT_TYPE_UNSUBSCRIBE; + head.qos = 1; + head.length = len; + int buflen = mqtt_estimate_length(&head); + unsigned char* buf = NULL; + HV_STACK_ALLOC(buf, buflen); + unsigned char* p = buf; + int headlen = mqtt_head_pack(&head, p); + p += headlen; + unsigned short mid = mqtt_next_mid(); + PUSH16(p, mid); + PUSH16(p, topic_len); + PUSH_N(p, topic, topic_len); + // send head + mid + topic + int nwrite = mqtt_client_send(cli, buf, p - buf); + HV_STACK_FREE(buf); + return nwrite < 0 ? nwrite : mid; +} diff --git a/3rdPartner/libhv/mqtt/mqtt_client.h b/3rdPartner/libhv/mqtt/mqtt_client.h new file mode 100644 index 0000000..8001dc5 --- /dev/null +++ b/3rdPartner/libhv/mqtt/mqtt_client.h @@ -0,0 +1,335 @@ +#ifndef HV_MQTT_CLIENT_H_ +#define HV_MQTT_CLIENT_H_ + +#include "mqtt_protocol.h" +#include "hloop.h" +#include "hssl.h" +#include "hmutex.h" + +#define DEFAULT_MQTT_KEEPALIVE 60 // s + +typedef struct mqtt_client_s mqtt_client_t; + +// @type mqtt_type_e +// @example examples/mqtt +typedef void (*mqtt_client_cb)(mqtt_client_t* cli, int type); + +struct mqtt_client_s { + // connect: host:port + char host[256]; + int port; + int connect_timeout; // ms + // reconnect + reconn_setting_t* reconn_setting; + // login: flags + keepalive + client_id + will + username + password + // flags + unsigned char protocol_version; // Default MQTT_PROTOCOL_V311 + unsigned char clean_session: 1; + unsigned char ssl: 1; // Read Only + unsigned char alloced_ssl_ctx: 1; // intern + unsigned char connected : 1; + unsigned short keepalive; + int ping_cnt; + char client_id[64]; + // will + mqtt_message_t* will; + // auth + char username[64]; + char password[64]; + // message + mqtt_head_t head; + int error; // for MQTT_TYPE_CONNACK + int mid; // for MQTT_TYPE_SUBACK, MQTT_TYPE_PUBACK + mqtt_message_t message; // for MQTT_TYPE_PUBLISH + // callback + mqtt_client_cb cb; + // userdata + void* userdata; + // privdata + hloop_t* loop; + hio_t* io; + htimer_t* reconn_timer; + // SSL/TLS + hssl_ctx_t ssl_ctx; + // thread-safe + hmutex_t mutex_; +}; + +BEGIN_EXTERN_C + +// hloop_new -> malloc(mqtt_client_t) +HV_EXPORT mqtt_client_t* mqtt_client_new(hloop_t* loop DEFAULT(NULL)); +// @see hloop_run +HV_EXPORT void mqtt_client_run (mqtt_client_t* cli); +// @see hloop_stop +HV_EXPORT void mqtt_client_stop(mqtt_client_t* cli); +// hloop_free -> free(mqtt_client_t) +HV_EXPORT void mqtt_client_free(mqtt_client_t* cli); + +// id +HV_EXPORT void mqtt_client_set_id(mqtt_client_t* cli, const char* id); + +// will +HV_EXPORT void mqtt_client_set_will(mqtt_client_t* cli, + mqtt_message_t* will); + +// auth +HV_EXPORT void mqtt_client_set_auth(mqtt_client_t* cli, + const char* username, const char* password); + +// callback +HV_EXPORT void mqtt_client_set_callback(mqtt_client_t* cli, mqtt_client_cb cb); + +// userdata +HV_EXPORT void mqtt_client_set_userdata(mqtt_client_t* cli, void* userdata); +HV_EXPORT void* mqtt_client_get_userdata(mqtt_client_t* cli); + +// error +HV_EXPORT int mqtt_client_get_last_error(mqtt_client_t* cli); + +// SSL/TLS +HV_EXPORT int mqtt_client_set_ssl_ctx(mqtt_client_t* cli, hssl_ctx_t ssl_ctx); +// hssl_ctx_new(opt) -> mqtt_client_set_ssl_ctx +HV_EXPORT int mqtt_client_new_ssl_ctx(mqtt_client_t* cli, hssl_ctx_opt_t* opt); + +// reconnect +HV_EXPORT int mqtt_client_set_reconnect(mqtt_client_t* cli, + reconn_setting_t* reconn); +HV_EXPORT int mqtt_client_reconnect(mqtt_client_t* cli); + +// connect +// hio_create_socket -> hio_connect -> +// on_connect -> mqtt_client_login -> +// on_connack +HV_EXPORT void mqtt_client_set_connect_timeout(mqtt_client_t* cli, int ms); +HV_EXPORT int mqtt_client_connect(mqtt_client_t* cli, + const char* host, + int port DEFAULT(DEFAULT_MQTT_PORT), + int ssl DEFAULT(0)); +HV_EXPORT bool mqtt_client_is_connected(mqtt_client_t* cli); + +// disconnect +// @see hio_close +HV_EXPORT int mqtt_client_disconnect(mqtt_client_t* cli); + +// publish +HV_EXPORT int mqtt_client_publish(mqtt_client_t* cli, + mqtt_message_t* msg); + +// subscribe +HV_EXPORT int mqtt_client_subscribe(mqtt_client_t* cli, + const char* topic, int qos DEFAULT(0)); + +// unsubscribe +HV_EXPORT int mqtt_client_unsubscribe(mqtt_client_t* cli, + const char* topic); + +END_EXTERN_C + +#ifdef __cplusplus + +#include +#include +#include +#include + +namespace hv { + +// @usage examples/mqtt/mqtt_client_test.cpp +class MqttClient { +public: + mqtt_client_t* client; + // callbacks + typedef std::function MqttCallback; + typedef std::function MqttMessageCallback; + MqttCallback onConnect; + MqttCallback onClose; + MqttMessageCallback onMessage; + + MqttClient(hloop_t* loop = NULL) { + client = mqtt_client_new(loop); + } + + ~MqttClient() { + if (client) { + mqtt_client_free(client); + client = NULL; + } + } + + void run() { + mqtt_client_set_callback(client, on_mqtt); + mqtt_client_set_userdata(client, this); + mqtt_client_run(client); + } + + void stop() { + mqtt_client_stop(client); + } + + void setID(const char* id) { + mqtt_client_set_id(client, id); + } + + void setWill(mqtt_message_t* will) { + mqtt_client_set_will(client, will); + } + + void setAuth(const char* username, const char* password) { + mqtt_client_set_auth(client, username, password); + } + + void setPingInterval(int sec) { + client->keepalive = sec; + } + + int lastError() { + return mqtt_client_get_last_error(client); + } + + // SSL/TLS + int setSslCtx(hssl_ctx_t ssl_ctx) { + return mqtt_client_set_ssl_ctx(client, ssl_ctx); + } + int newSslCtx(hssl_ctx_opt_t* opt) { + return mqtt_client_new_ssl_ctx(client, opt); + } + + void setReconnect(reconn_setting_t* reconn) { + mqtt_client_set_reconnect(client, reconn); + } + + void setConnectTimeout(int ms) { + mqtt_client_set_connect_timeout(client, ms); + } + + int connect(const char* host, int port = DEFAULT_MQTT_PORT, int ssl = 0) { + return mqtt_client_connect(client, host, port, ssl); + } + + int reconnect() { + return mqtt_client_reconnect(client); + } + + int disconnect() { + return mqtt_client_disconnect(client); + } + + bool isConnected() { + return mqtt_client_is_connected(client); + } + + int publish(mqtt_message_t* msg, MqttCallback ack_cb = NULL) { + int mid = mqtt_client_publish(client, msg); + if (msg->qos > 0 && mid >= 0 && ack_cb) { + setAckCallback(mid, ack_cb); + } + return mid; + } + + int publish(const std::string& topic, const std::string& payload, int qos = 0, int retain = 0, MqttCallback ack_cb = NULL) { + mqtt_message_t msg; + memset(&msg, 0, sizeof(msg)); + msg.topic_len = topic.size(); + msg.topic = topic.c_str(); + msg.payload_len = payload.size(); + msg.payload = payload.c_str(); + msg.qos = qos; + msg.retain = retain; + return publish(&msg, ack_cb); + } + + int subscribe(const char* topic, int qos = 0, MqttCallback ack_cb = NULL) { + int mid = mqtt_client_subscribe(client, topic, qos); + if (qos > 0 && mid >= 0 && ack_cb) { + setAckCallback(mid, ack_cb); + } + return mid; + } + + int unsubscribe(const char* topic, MqttCallback ack_cb = NULL) { + int mid = mqtt_client_unsubscribe(client, topic); + if (mid >= 0 && ack_cb) { + setAckCallback(mid, ack_cb); + } + return mid; + } + +protected: + void setAckCallback(int mid, MqttCallback cb) { + ack_cbs_mutex.lock(); + ack_cbs[mid] = std::move(cb); + ack_cbs_mutex.unlock(); + } + + void invokeAckCallback(int mid) { + MqttCallback ack_cb = NULL; + ack_cbs_mutex.lock(); + auto iter = ack_cbs.find(mid); + if (iter != ack_cbs.end()) { + ack_cb = std::move(iter->second); + ack_cbs.erase(iter); + } + ack_cbs_mutex.unlock(); + if (ack_cb) ack_cb(this); + } + + static void on_mqtt(mqtt_client_t* cli, int type) { + MqttClient* client = (MqttClient*)mqtt_client_get_userdata(cli); + // printf("on_mqtt type=%d\n", type); + switch(type) { + case MQTT_TYPE_CONNECT: + // printf("mqtt connected!\n"); + break; + case MQTT_TYPE_DISCONNECT: + // printf("mqtt disconnected!\n"); + if (client->onClose) { + client->onClose(client); + } + break; + case MQTT_TYPE_CONNACK: + // printf("mqtt connack!\n"); + if (client->onConnect) { + client->onConnect(client); + } + break; + case MQTT_TYPE_PUBLISH: + if (client->onMessage) { + client->onMessage(client, &cli->message); + } + break; + case MQTT_TYPE_PUBACK: /* qos = 1 */ + // printf("mqtt puback mid=%d\n", cli->mid); + client->invokeAckCallback(cli->mid); + break; + case MQTT_TYPE_PUBREC: /* qos = 2 */ + // printf("mqtt pubrec mid=%d\n", cli->mid); + // wait MQTT_TYPE_PUBCOMP + break; + case MQTT_TYPE_PUBCOMP: /* qos = 2 */ + // printf("mqtt pubcomp mid=%d\n", cli->mid); + client->invokeAckCallback(cli->mid); + break; + case MQTT_TYPE_SUBACK: + // printf("mqtt suback mid=%d\n", cli->mid); + client->invokeAckCallback(cli->mid); + break; + case MQTT_TYPE_UNSUBACK: + // printf("mqtt unsuback mid=%d\n", cli->mid); + client->invokeAckCallback(cli->mid); + break; + default: + break; + } + } + +private: + // mid => ack callback + std::map ack_cbs; + std::mutex ack_cbs_mutex; +}; + +} +#endif + +#endif // HV_MQTT_CLIENT_H_ diff --git a/3rdPartner/libhv/mqtt/mqtt_protocol.c b/3rdPartner/libhv/mqtt/mqtt_protocol.c new file mode 100644 index 0000000..f556097 --- /dev/null +++ b/3rdPartner/libhv/mqtt/mqtt_protocol.c @@ -0,0 +1,22 @@ +#include "mqtt_protocol.h" +#include "hmath.h" + +int mqtt_head_pack(mqtt_head_t* head, unsigned char buf[]) { + buf[0] = (head->type << 4) | + (head->dup << 3) | + (head->qos << 1) | + (head->retain); + int bytes = varint_encode(head->length, buf + 1); + return 1 + bytes; +} + +int mqtt_head_unpack(mqtt_head_t* head, const unsigned char* buf, int len) { + head->type = (buf[0] >> 4) & 0x0F; + head->dup = (buf[0] >> 3) & 0x01; + head->qos = (buf[0] >> 1) & 0x03; + head->retain = buf[0] & 0x01; + int bytes = len - 1; + head->length = varint_decode(buf + 1, &bytes); + if (bytes <= 0) return bytes; + return 1 + bytes; +} diff --git a/3rdPartner/libhv/mqtt/mqtt_protocol.h b/3rdPartner/libhv/mqtt/mqtt_protocol.h new file mode 100644 index 0000000..57343e1 --- /dev/null +++ b/3rdPartner/libhv/mqtt/mqtt_protocol.h @@ -0,0 +1,82 @@ +#ifndef HV_MQTT_PROTOCOL_H_ +#define HV_MQTT_PROTOCOL_H_ + +#include "hexport.h" + +#define DEFAULT_MQTT_PORT 1883 + +#define MQTT_PROTOCOL_V31 3 +#define MQTT_PROTOCOL_V311 4 +#define MQTT_PROTOCOL_V5 5 // Not yet supproted + +#define MQTT_PROTOCOL_NAME "MQTT" +#define MQTT_PROTOCOL_NAME_v31 "MQIsdp" + +/* + * connect flags + * 0 1 2 3-4 5 6 7 + * reserved clean_session has_will will_qos will_retain has_password has_username + */ +#define MQTT_CONN_CLEAN_SESSION 0x02 +#define MQTT_CONN_HAS_WILL 0x04 +#define MQTT_CONN_WILL_RETAIN 0x20 +#define MQTT_CONN_HAS_PASSWORD 0x40 +#define MQTT_CONN_HAS_USERNAME 0x80 + +typedef enum { + MQTT_TYPE_CONNECT = 1, + MQTT_TYPE_CONNACK = 2, + MQTT_TYPE_PUBLISH = 3, + MQTT_TYPE_PUBACK = 4, + MQTT_TYPE_PUBREC = 5, + MQTT_TYPE_PUBREL = 6, + MQTT_TYPE_PUBCOMP = 7, + MQTT_TYPE_SUBSCRIBE = 8, + MQTT_TYPE_SUBACK = 9, + MQTT_TYPE_UNSUBSCRIBE = 10, + MQTT_TYPE_UNSUBACK = 11, + MQTT_TYPE_PINGREQ = 12, + MQTT_TYPE_PINGRESP = 13, + MQTT_TYPE_DISCONNECT = 14, +} mqtt_type_e; + +typedef enum { + MQTT_CONNACK_ACCEPTED = 0, + MQTT_CONNACK_REFUSED_PROTOCOL_VERSION = 1, + MQTT_CONNACK_REFUSED_IDENTIFIER_REJECTED = 2, + MQTT_CONNACK_REFUSED_SERVER_UNAVAILABLE = 3, + MQTT_CONNACK_REFUSED_BAD_USERNAME_PASSWORD = 4, + MQTT_CONNACK_REFUSED_NOT_AUTHORIZED = 5, +} mqtt_connack_e; + +typedef struct mqtt_head_s { + unsigned char type: 4; + unsigned char dup: 1; + unsigned char qos: 2; + unsigned char retain: 1; + unsigned int length; +} mqtt_head_t; + +typedef struct mqtt_message_s { + unsigned int topic_len; + const char* topic; + unsigned int payload_len; + const char* payload; + unsigned char qos; + unsigned char retain; +} mqtt_message_t; + +BEGIN_EXTERN_C + +#define DEFAULT_MQTT_PACKAGE_MAX_LENGTH (1 << 28) // 256M +HV_INLINE int mqtt_estimate_length(mqtt_head_t* head) { + // 28 bits => 4*7 bits varint + return 1 + 4 + head->length; +} + +HV_EXPORT int mqtt_head_pack(mqtt_head_t* head, unsigned char buf[]); +HV_EXPORT int mqtt_head_unpack(mqtt_head_t* head, const unsigned char* buf, int len); + +END_EXTERN_C + +#endif // HV_MQTT_PROTOCOL_H_ diff --git a/3rdPartner/libhv/protocol/README.md b/3rdPartner/libhv/protocol/README.md new file mode 100644 index 0000000..3d51514 --- /dev/null +++ b/3rdPartner/libhv/protocol/README.md @@ -0,0 +1,10 @@ +## 目录结构 + +``` +. +├── dns.h DNS协议 +├── ftp.h FTP协议 +├── icmp.h ICMP协议 +└── smtp.h SMTP协议 + +``` diff --git a/3rdPartner/libhv/protocol/dns.c b/3rdPartner/libhv/protocol/dns.c new file mode 100644 index 0000000..4fa55d3 --- /dev/null +++ b/3rdPartner/libhv/protocol/dns.c @@ -0,0 +1,336 @@ +#include "dns.h" + +#include "hdef.h" +#include "hsocket.h" +#include "herr.h" + +void dns_free(dns_t* dns) { + SAFE_FREE(dns->questions); + SAFE_FREE(dns->answers); + SAFE_FREE(dns->authorities); + SAFE_FREE(dns->addtionals); +} + +// www.example.com => 3www7example3com +int dns_name_encode(const char* domain, char* buf) { + const char* p = domain; + char* plen = buf++; + int buflen = 1; + int len = 0; + while (*p != '\0') { + if (*p != '.') { + ++len; + *buf = *p; + } + else { + *plen = len; + //printf("len=%d\n", len); + plen = buf; + len = 0; + } + ++p; + ++buf; + ++buflen; + } + *plen = len; + //printf("len=%d\n", len); + *buf = '\0'; + if (len != 0) { + ++buflen; // include last '\0' + } + return buflen; +} + +// 3www7example3com => www.example.com +int dns_name_decode(const char* buf, char* domain) { + const char* p = buf; + int len = *p++; + //printf("len=%d\n", len); + int buflen = 1; + while (*p != '\0') { + if (len-- == 0) { + len = *p; + //printf("len=%d\n", len); + *domain = '.'; + } + else { + *domain = *p; + } + ++p; + ++domain; + ++buflen; + } + *domain = '\0'; + ++buflen; // include last '\0' + return buflen; +} + +int dns_rr_pack(dns_rr_t* rr, char* buf, int len) { + char* p = buf; + char encoded_name[256]; + int encoded_namelen = dns_name_encode(rr->name, encoded_name); + int packetlen = encoded_namelen + 2 + 2 + (rr->data ? (4+2+rr->datalen) : 0); + if (len < packetlen) { + return -1; + } + + memcpy(p, encoded_name, encoded_namelen); + p += encoded_namelen; + uint16_t* pushort = (uint16_t*)p; + *pushort = htons(rr->rtype); + p += 2; + pushort = (uint16_t*)p; + *pushort = htons(rr->rclass); + p += 2; + + // ... + if (rr->datalen && rr->data) { + uint32_t* puint = (uint32_t*)p; + *puint = htonl(rr->ttl); + p += 4; + pushort = (uint16_t*)p; + *pushort = htons(rr->datalen); + p += 2; + memcpy(p, rr->data, rr->datalen); + p += rr->datalen; + } + return packetlen; +} + +int dns_rr_unpack(char* buf, int len, dns_rr_t* rr, int is_question) { + char* p = buf; + int off = 0; + int namelen = 0; + if (*(uint8_t*)p >= 192) { + // name off, we ignore + namelen = 2; + //uint16_t nameoff = (*(uint8_t*)p - 192) * 256 + *(uint8_t*)(p+1); + } + else { + namelen = dns_name_decode(buf, rr->name); + } + if (namelen < 0) return -1; + p += namelen; + off += namelen; + + if (len < off + 4) return -1; + uint16_t* pushort = (uint16_t*)p; + rr->rtype = ntohs(*pushort); + p += 2; + pushort = (uint16_t*)p; + rr->rclass = ntohs(*pushort); + p += 2; + off += 4; + + if (!is_question) { + if (len < off + 6) return -1; + uint32_t* puint = (uint32_t*)p; + rr->ttl = ntohl(*puint); + p += 4; + pushort = (uint16_t*)p; + rr->datalen = ntohs(*pushort); + p += 2; + off += 6; + if (len < off + rr->datalen) return -1; + rr->data = p; + p += rr->datalen; + off += rr->datalen; + } + return off; +} + +int dns_pack(dns_t* dns, char* buf, int len) { + if (len < sizeof(dnshdr_t)) return -1; + int off = 0; + dnshdr_t* hdr = &dns->hdr; + dnshdr_t htonhdr = dns->hdr; + htonhdr.transaction_id = htons(hdr->transaction_id); + htonhdr.nquestion = htons(hdr->nquestion); + htonhdr.nanswer = htons(hdr->nanswer); + htonhdr.nauthority = htons(hdr->nauthority); + htonhdr.naddtional = htons(hdr->naddtional); + memcpy(buf, &htonhdr, sizeof(dnshdr_t)); + off += sizeof(dnshdr_t); + int i; + for (i = 0; i < hdr->nquestion; ++i) { + int packetlen = dns_rr_pack(dns->questions+i, buf+off, len-off); + if (packetlen < 0) return -1; + off += packetlen; + } + for (i = 0; i < hdr->nanswer; ++i) { + int packetlen = dns_rr_pack(dns->answers+i, buf+off, len-off); + if (packetlen < 0) return -1; + off += packetlen; + } + for (i = 0; i < hdr->nauthority; ++i) { + int packetlen = dns_rr_pack(dns->authorities+i, buf+off, len-off); + if (packetlen < 0) return -1; + off += packetlen; + } + for (i = 0; i < hdr->naddtional; ++i) { + int packetlen = dns_rr_pack(dns->addtionals+i, buf+off, len-off); + if (packetlen < 0) return -1; + off += packetlen; + } + return off; +} + +int dns_unpack(char* buf, int len, dns_t* dns) { + memset(dns, 0, sizeof(dns_t)); + if (len < sizeof(dnshdr_t)) return -1; + int off = 0; + dnshdr_t* hdr = &dns->hdr; + memcpy(hdr, buf, sizeof(dnshdr_t)); + off += sizeof(dnshdr_t); + hdr->transaction_id = ntohs(hdr->transaction_id); + hdr->nquestion = ntohs(hdr->nquestion); + hdr->nanswer = ntohs(hdr->nanswer); + hdr->nauthority = ntohs(hdr->nauthority); + hdr->naddtional = ntohs(hdr->naddtional); + int i; + if (hdr->nquestion) { + int bytes = hdr->nquestion * sizeof(dns_rr_t); + SAFE_ALLOC(dns->questions, bytes); + for (i = 0; i < hdr->nquestion; ++i) { + int packetlen = dns_rr_unpack(buf+off, len-off, dns->questions+i, 1); + if (packetlen < 0) return -1; + off += packetlen; + } + } + if (hdr->nanswer) { + int bytes = hdr->nanswer * sizeof(dns_rr_t); + SAFE_ALLOC(dns->answers, bytes); + for (i = 0; i < hdr->nanswer; ++i) { + int packetlen = dns_rr_unpack(buf+off, len-off, dns->answers+i, 0); + if (packetlen < 0) return -1; + off += packetlen; + } + } + if (hdr->nauthority) { + int bytes = hdr->nauthority * sizeof(dns_rr_t); + SAFE_ALLOC(dns->authorities, bytes); + for (i = 0; i < hdr->nauthority; ++i) { + int packetlen = dns_rr_unpack(buf+off, len-off, dns->authorities+i, 0); + if (packetlen < 0) return -1; + off += packetlen; + } + } + if (hdr->naddtional) { + int bytes = hdr->naddtional * sizeof(dns_rr_t); + SAFE_ALLOC(dns->addtionals, bytes); + for (i = 0; i < hdr->naddtional; ++i) { + int packetlen = dns_rr_unpack(buf+off, len-off, dns->addtionals+i, 0); + if (packetlen < 0) return -1; + off += packetlen; + } + } + return off; +} + +// dns_pack -> sendto -> recvfrom -> dns_unpack +int dns_query(dns_t* query, dns_t* response, const char* nameserver) { + char buf[1024]; + int buflen = sizeof(buf); + buflen = dns_pack(query, buf, buflen); + if (buflen < 0) { + return buflen; + } +#ifdef OS_WIN + WSAInit(); +#endif + int sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) { + perror("socket"); + return ERR_SOCKET; + } + so_sndtimeo(sockfd, 5000); + so_rcvtimeo(sockfd, 5000); + int ret = 0; + int nsend, nrecv; + int nparse; + struct sockaddr_in addr; + socklen_t addrlen = sizeof(addr); + memset(&addr, 0, addrlen); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = inet_addr(nameserver); + addr.sin_port = htons(DNS_PORT); + nsend = sendto(sockfd, buf, buflen, 0, (struct sockaddr*)&addr, addrlen); + if (nsend != buflen) { + ret = ERR_SENDTO; + goto error; + } + nrecv = recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr*)&addr, &addrlen); + if (nrecv <= 0) { + ret = ERR_RECVFROM; + goto error; + } + + nparse = dns_unpack(buf, nrecv, response); + if (nparse != nrecv) { + ret = -ERR_INVALID_PACKAGE; + goto error; + } + +error: + if (sockfd != INVALID_SOCKET) { + closesocket(sockfd); + } + return ret; +} + +int nslookup(const char* domain, uint32_t* addrs, int naddr, const char* nameserver) { + dns_t query; + memset(&query, 0, sizeof(query)); + query.hdr.transaction_id = getpid(); + query.hdr.qr = DNS_QUERY; + query.hdr.rd = 1; + query.hdr.nquestion = 1; + + dns_rr_t question; + memset(&question, 0, sizeof(question)); + strncpy(question.name, domain, sizeof(question.name)); + question.rtype = DNS_TYPE_A; + question.rclass = DNS_CLASS_IN; + + query.questions = &question; + + dns_t resp; + memset(&resp, 0, sizeof(resp)); + int ret = dns_query(&query, &resp, nameserver); + if (ret != 0) { + return ret; + } + + dns_rr_t* rr = resp.answers; + int addr_cnt = 0; + if (resp.hdr.transaction_id != query.hdr.transaction_id || + resp.hdr.qr != DNS_RESPONSE || + resp.hdr.rcode != 0) { + ret = -ERR_MISMATCH; + goto end; + } + + if (resp.hdr.nanswer == 0) { + ret = 0; + goto end; + } + + for (int i = 0; i < resp.hdr.nanswer; ++i, ++rr) { + if (rr->rtype == DNS_TYPE_A) { + if (addr_cnt < naddr && rr->datalen == 4) { + memcpy(addrs+addr_cnt, rr->data, 4); + } + ++addr_cnt; + } + /* + else if (rr->rtype == DNS_TYPE_CNAME) { + char name[256]; + dns_name_decode(rr->data, name); + } + */ + } + ret = addr_cnt; +end: + dns_free(&resp); + return ret; +} diff --git a/3rdPartner/libhv/protocol/dns.h b/3rdPartner/libhv/protocol/dns.h new file mode 100644 index 0000000..2bb9d43 --- /dev/null +++ b/3rdPartner/libhv/protocol/dns.h @@ -0,0 +1,105 @@ +#ifndef HV_DNS_H_ +#define HV_DNS_H_ + +#include "hexport.h" +#include "hplatform.h" + +#define DNS_PORT 53 + +#define DNS_QUERY 0 +#define DNS_RESPONSE 1 + +#define DNS_TYPE_A 1 // ipv4 +#define DNS_TYPE_NS 2 +#define DNS_TYPE_CNAME 5 +#define DNS_TYPE_SOA 6 +#define DNS_TYPE_WKS 11 +#define DNS_TYPE_PTR 12 +#define DNS_TYPE_HINFO 13 +#define DNS_TYPE_MX 15 +#define DNS_TYPE_AAAA 28 // ipv6 +#define DNS_TYPE_AXFR 252 +#define DNS_TYPE_ANY 255 + +#define DNS_CLASS_IN 1 + +#define DNS_NAME_MAXLEN 256 + +// sizeof(dnshdr_t) = 12 +typedef struct dnshdr_s { + uint16_t transaction_id; + // flags +#if BYTE_ORDER == LITTLE_ENDIAN + uint8_t rd:1; + uint8_t tc:1; + uint8_t aa:1; + uint8_t opcode:4; + uint8_t qr:1; + + uint8_t rcode:4; + uint8_t cd:1; + uint8_t ad:1; + uint8_t res:1; + uint8_t ra:1; +#elif BYTE_ORDER == BIG_ENDIAN + uint8_t qr:1; // DNS_QUERY or DNS_RESPONSE + uint8_t opcode:4; + uint8_t aa:1; // authoritative + uint8_t tc:1; // truncated + uint8_t rd:1; // recursion desired + + uint8_t ra:1; // recursion available + uint8_t res:1; // reserved + uint8_t ad:1; // authenticated data + uint8_t cd:1; // checking disable + uint8_t rcode:4; +#else +#error "BYTE_ORDER undefined!" +#endif + uint16_t nquestion; + uint16_t nanswer; + uint16_t nauthority; + uint16_t naddtional; +} dnshdr_t; + +typedef struct dns_rr_s { + char name[DNS_NAME_MAXLEN]; // original domain, such as www.example.com + uint16_t rtype; + uint16_t rclass; + uint32_t ttl; + uint16_t datalen; + char* data; +} dns_rr_t; + +typedef struct dns_s { + dnshdr_t hdr; + dns_rr_t* questions; + dns_rr_t* answers; + dns_rr_t* authorities; + dns_rr_t* addtionals; +} dns_t; + +BEGIN_EXTERN_C + +// www.example.com => 3www7example3com +HV_EXPORT int dns_name_encode(const char* domain, char* buf); +// 3www7example3com => www.example.com +HV_EXPORT int dns_name_decode(const char* buf, char* domain); + +HV_EXPORT int dns_rr_pack(dns_rr_t* rr, char* buf, int len); +HV_EXPORT int dns_rr_unpack(char* buf, int len, dns_rr_t* rr, int is_question); + +HV_EXPORT int dns_pack(dns_t* dns, char* buf, int len); +HV_EXPORT int dns_unpack(char* buf, int len, dns_t* dns); +// NOTE: free dns->rrs +HV_EXPORT void dns_free(dns_t* dns); + +// dns_pack -> sendto -> recvfrom -> dns_unpack +HV_EXPORT int dns_query(dns_t* query, dns_t* response, const char* nameserver DEFAULT("127.0.1.1")); + +// domain -> dns_t query; -> dns_query -> dns_t response; -> addrs +HV_EXPORT int nslookup(const char* domain, uint32_t* addrs, int naddr, const char* nameserver DEFAULT("127.0.1.1")); + +END_EXTERN_C + +#endif // HV_DNS_H_ diff --git a/3rdPartner/libhv/protocol/ftp.c b/3rdPartner/libhv/protocol/ftp.c new file mode 100644 index 0000000..7dcdba7 --- /dev/null +++ b/3rdPartner/libhv/protocol/ftp.c @@ -0,0 +1,247 @@ +#include "ftp.h" +#include "hsocket.h" +#include "herr.h" + +const char* ftp_command_str(enum ftp_command cmd) { + switch (cmd) { +#define X(name) case FTP_##name: return #name; + FTP_COMMAND_MAP(X) +#undef X + default: return ""; + } +} + +const char* ftp_status_str(enum ftp_status status) { + switch (status) { +#define XXX(code, name, string) case FTP_STATUS_##name: return #string; + FTP_STATUS_MAP(XXX) +#undef XXX + default: return ""; + } +} + +int ftp_connect(ftp_handle_t* hftp, const char* host, int port) { + int sockfd = ConnectTimeout(host, port, DEFAULT_CONNECT_TIMEOUT); + if (sockfd < 0) { + return sockfd; + } + so_sndtimeo(sockfd, 5000); + so_rcvtimeo(sockfd, 5000); + hftp->sockfd = sockfd; + int ret = 0; + int status_code = 0; + memset(hftp->recvbuf, 0, FTP_RECV_BUFSIZE); + int nrecv = recv(sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(hftp->recvbuf); + if (status_code != FTP_STATUS_READY) { + ret = status_code; + goto error; + } + return 0; + +error: + closesocket(sockfd); + return ret; +} + +int ftp_login(ftp_handle_t* hftp, const char* username, const char* password) { + int status_code = ftp_exec(hftp, "USER", username); + status_code = ftp_exec(hftp, "PASS", password); + return status_code == FTP_STATUS_LOGIN_OK ? 0 : status_code; +} + +int ftp_quit(ftp_handle_t* hftp) { + ftp_exec(hftp, "QUIT", NULL); + closesocket(hftp->sockfd); + return 0; +} + +int ftp_exec(ftp_handle_t* hftp, const char* cmd, const char* param) { + char buf[1024]; + int len = 0; + if (param && *param) { + len = snprintf(buf, sizeof(buf), "%s %s\r\n", cmd, param); + } + else { + len = snprintf(buf, sizeof(buf), "%s\r\n", cmd); + } + int nsend, nrecv; + int ret = 0; + nsend = send(hftp->sockfd, buf, len, 0); + if (nsend != len) { + ret = ERR_SEND; + goto error; + } + //printf("> %s", buf); + memset(hftp->recvbuf, 0, FTP_RECV_BUFSIZE); + nrecv = recv(hftp->sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + //printf("< %s", hftp->recvbuf); + return atoi(hftp->recvbuf); +error: + closesocket(hftp->sockfd); + return ret; +} + +static int ftp_parse_pasv(const char* resp, char* host, int* port) { + // 227 Entering Passive Mode (127,0,0,1,4,51) + const char* str = strchr(resp, '('); + if (str == NULL) { + return ERR_RESPONSE; + } + int arr[6]; + sscanf(str, "(%d,%d,%d,%d,%d,%d)", + &arr[0], &arr[1], &arr[2], &arr[3], &arr[4], &arr[5]); + sprintf(host, "%d.%d.%d.%d", arr[0], arr[1], arr[2], arr[3]); + *port = arr[4] << 8 | arr[5]; + return 0; +} + +int ftp_download_with_cb(ftp_handle_t* hftp, const char* filepath, ftp_download_cb cb) { + int status_code = ftp_exec(hftp, "PASV", NULL); + if (status_code != FTP_STATUS_PASV) { + return status_code; + } + char host[64]; + int port = 0; + int ret = ftp_parse_pasv(hftp->recvbuf, host, &port); + if (ret != 0) { + return ret; + } + //ftp_exec(hftp, "RETR", filepath); + char request[1024]; + int len = snprintf(request, sizeof(request), "RETR %s\r\n", filepath); + int nsend = send(hftp->sockfd, request, len, 0); + if (nsend != len) { + closesocket(hftp->sockfd); + return ERR_SEND; + } + //printf("> %s", request); + int sockfd = ConnectTimeout(host, port, DEFAULT_CONNECT_TIMEOUT); + if (sockfd < 0) { + return sockfd; + } + int nrecv = recv(hftp->sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + closesocket(hftp->sockfd); + return ERR_RECV; + } + //printf("< %s", hftp->recvbuf); + { + // you can create thread to recv data + char recvbuf[1024]; + int ntotal = 0; + while (1) { + nrecv = recv(sockfd, recvbuf, sizeof(recvbuf), 0); + if (cb) { + cb(hftp, recvbuf, nrecv); + } + if (nrecv <= 0) break; + ntotal += nrecv; + } + } + closesocket(sockfd); + nrecv = recv(hftp->sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + closesocket(hftp->sockfd); + return ERR_RECV; + } + //printf("< %s", hftp->recvbuf); + status_code = atoi(hftp->recvbuf); + return status_code == FTP_STATUS_TRANSFER_COMPLETE ? 0 : status_code; +} + +// local => remote +int ftp_upload(ftp_handle_t* hftp, const char* local_filepath, const char* remote_filepath) { + int status_code = ftp_exec(hftp, "PASV", NULL); + if (status_code != FTP_STATUS_PASV) { + return status_code; + } + char host[64]; + int port = 0; + int ret = ftp_parse_pasv(hftp->recvbuf, host, &port); + if (ret != 0) { + return ret; + } + //ftp_exec(hftp, "STOR", remote_filepath); + char request[1024]; + int len = snprintf(request, sizeof(request), "STOR %s\r\n", remote_filepath); + int nsend = send(hftp->sockfd, request, len, 0); + if (nsend != len) { + closesocket(hftp->sockfd); + return ERR_SEND; + } + //printf("> %s", request); + int sockfd = ConnectTimeout(host, port, DEFAULT_CONNECT_TIMEOUT); + if (sockfd < 0) { + return sockfd; + } + int nrecv = recv(hftp->sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + closesocket(hftp->sockfd); + return ERR_RECV; + } + //printf("< %s", hftp->recvbuf); + { + // you can create thread to send data + FILE* fp = fopen(local_filepath, "rb"); + if (fp == NULL) { + closesocket(sockfd); + return ERR_OPEN_FILE; + } + char sendbuf[1024]; + int nread, nsend; + int ntotal = 0; + while (1) { + nread = fread(sendbuf, 1, sizeof(sendbuf), fp); + if (nread == 0) break; + nsend = send(sockfd, sendbuf, nread, 0); + if (nsend != nread) break; + ntotal += nsend; + } + fclose(fp); + } + closesocket(sockfd); + nrecv = recv(hftp->sockfd, hftp->recvbuf, FTP_RECV_BUFSIZE, 0); + if (nrecv <= 0) { + closesocket(hftp->sockfd); + return ERR_RECV; + } + //printf("< %s", hftp->recvbuf); + status_code = atoi(hftp->recvbuf); + return status_code == FTP_STATUS_TRANSFER_COMPLETE ? 0 : status_code; +} + +static int s_ftp_download_cb(ftp_handle_t* hftp, char* buf, int len) { + FILE* fp = (FILE*)hftp->userdata; + if (fp == NULL) return -1; + if (len <= 0) { + fclose(fp); + hftp->userdata = NULL; + return 0; + } + return fwrite(buf, 1, len, fp); +} + +// remote => local +int ftp_download(ftp_handle_t* hftp, const char* remote_filepath, const char* local_filepath) { + FILE* fp = fopen(local_filepath, "wb"); + if (fp == NULL) { + return ERR_OPEN_FILE; + } + hftp->userdata = (void*)fp; + int ret = ftp_download_with_cb(hftp, remote_filepath, s_ftp_download_cb); + // ensure fclose + if (hftp->userdata != NULL) { + fclose(fp); + hftp->userdata = NULL; + } + return ret; +} diff --git a/3rdPartner/libhv/protocol/ftp.h b/3rdPartner/libhv/protocol/ftp.h new file mode 100644 index 0000000..d1b60ca --- /dev/null +++ b/3rdPartner/libhv/protocol/ftp.h @@ -0,0 +1,96 @@ +#ifndef HV_FTP_H_ +#define HV_FTP_H_ + +#include "hexport.h" + +#define FTP_COMMAND_PORT 21 +#define FTP_DATA_PORT 20 + +// ftp_command +// X(name) +#define FTP_COMMAND_MAP(X) \ + X(HELP) \ + X(USER) \ + X(PASS) \ + X(PWD) \ + X(CWD) \ + X(CDUP) \ + X(MKD) \ + X(RMD) \ + X(STAT) \ + X(SIZE) \ + X(DELE) \ + X(RNFR) \ + X(RNTO) \ + X(PORT) \ + X(PASV) \ + X(LIST) \ + X(NLST) \ + X(APPE) \ + X(RETR) \ + X(STOR) \ + X(QUIT) \ + +enum ftp_command { +#define X(name) FTP_##name, + FTP_COMMAND_MAP(X) +#undef X +}; + +// ftp_status +// XXX(code, name, string) +#define FTP_STATUS_MAP(XXX) \ + XXX(220, READY, Ready) \ + XXX(221, BYE, Bye) \ + XXX(226, TRANSFER_COMPLETE, Transfer complete) \ + XXX(227, PASV, Entering Passive Mode) \ + XXX(331, PASS, Password required) \ + XXX(230, LOGIN_OK, Login OK) \ + XXX(250, OK, OK) \ + XXX(500, BAD_SYNTAX, Bad syntax) \ + XXX(530, NOT_LOGIN, Not login) \ + +enum ftp_status { +#define XXX(code, name, string) FTP_STATUS_##name = code, + FTP_STATUS_MAP(XXX) +#undef XXX +}; + +// more friendly macros +#define FTP_MKDIR FTP_MKD +#define FTP_RMDIR FTP_RMD +#define FTP_APPEND FTP_APPE +#define FTP_REMOVE FTP_DELE +#define FTP_DOWNLOAD FTP_RETR +#define FTP_UPLOAD FTP_STOR + +#define FTP_RECV_BUFSIZE 8192 + +typedef struct ftp_handle_s { + int sockfd; + char recvbuf[FTP_RECV_BUFSIZE]; + void* userdata; +} ftp_handle_t; + +BEGIN_EXTERN_C + +HV_EXPORT const char* ftp_command_str(enum ftp_command cmd); +HV_EXPORT const char* ftp_status_str(enum ftp_status status); + +HV_EXPORT int ftp_connect(ftp_handle_t* hftp, const char* host, int port); +HV_EXPORT int ftp_login(ftp_handle_t* hftp, const char* username, const char* password); +HV_EXPORT int ftp_quit(ftp_handle_t* hftp); + +HV_EXPORT int ftp_exec(ftp_handle_t* hftp, const char* cmd, const char* param); + +// local => remote +HV_EXPORT int ftp_upload(ftp_handle_t* hftp, const char* local_filepath, const char* remote_filepath); +// remote => local +HV_EXPORT int ftp_download(ftp_handle_t* hftp, const char* remote_filepath, const char* local_filepath); + +typedef int (*ftp_download_cb)(ftp_handle_t* hftp, char* buf, int len); +HV_EXPORT int ftp_download_with_cb(ftp_handle_t* hftp, const char* filepath, ftp_download_cb cb); + +END_EXTERN_C + +#endif // HV_FTP_H_ diff --git a/3rdPartner/libhv/protocol/icmp.c b/3rdPartner/libhv/protocol/icmp.c new file mode 100644 index 0000000..864a839 --- /dev/null +++ b/3rdPartner/libhv/protocol/icmp.c @@ -0,0 +1,125 @@ +#include "icmp.h" + +#include "netinet.h" +#include "hdef.h" +#include "hsocket.h" +#include "htime.h" + +#define PING_TIMEOUT 1000 // ms +int ping(const char* host, int cnt) { + static uint16_t seq = 0; + uint16_t pid16 = (uint16_t)getpid(); + char ip[64] = {0}; + uint32_t start_tick, end_tick; + uint64_t start_hrtime, end_hrtime; + int timeout = 0; + int sendbytes = 64; + char sendbuf[64]; + char recvbuf[128]; // iphdr + icmp = 84 at least + icmp_t* icmp_req = (icmp_t*)sendbuf; + iphdr_t* ipheader = (iphdr_t*)recvbuf; + icmp_t* icmp_res; + // ping stat + int send_cnt = 0; + int recv_cnt = 0; + int ok_cnt = 0; + float rtt, min_rtt, max_rtt, total_rtt; + rtt = max_rtt = total_rtt = 0.0f; + min_rtt = 1000000.0f; + //min_rtt = MIN(rtt, min_rtt); + //max_rtt = MAX(rtt, max_rtt); + // gethostbyname -> socket -> setsockopt -> sendto -> recvfrom -> closesocket + sockaddr_u peeraddr; + socklen_t addrlen = sizeof(peeraddr); + memset(&peeraddr, 0, addrlen); + int ret = ResolveAddr(host, &peeraddr); + if (ret != 0) return ret; + sockaddr_ip(&peeraddr, ip, sizeof(ip)); + int sockfd = socket(peeraddr.sa.sa_family, SOCK_RAW, IPPROTO_ICMP); + if (sockfd < 0) { + perror("socket"); + if (errno == EPERM) { + fprintf(stderr, "please use root or sudo to create a raw socket.\n"); + } + return -socket_errno(); + } + + timeout = PING_TIMEOUT; + ret = so_sndtimeo(sockfd, timeout); + if (ret < 0) { + perror("setsockopt"); + goto error; + } + timeout = PING_TIMEOUT; + ret = so_rcvtimeo(sockfd, timeout); + if (ret < 0) { + perror("setsockopt"); + goto error; + } + + icmp_req->icmp_type = ICMP_ECHO; + icmp_req->icmp_code = 0; + icmp_req->icmp_id = pid16; + for (int i = 0; i < sendbytes - sizeof(icmphdr_t); ++i) { + icmp_req->icmp_data[i] = i; + } + start_tick = gettick_ms(); + while (cnt-- > 0) { + // NOTE: checksum + icmp_req->icmp_seq = ++seq; + icmp_req->icmp_cksum = 0; + icmp_req->icmp_cksum = checksum((uint8_t*)icmp_req, sendbytes); + start_hrtime = gethrtime_us(); + addrlen = sockaddr_len(&peeraddr); + int nsend = sendto(sockfd, sendbuf, sendbytes, 0, &peeraddr.sa, addrlen); + if (nsend < 0) { + perror("sendto"); + continue; + } + ++send_cnt; + addrlen = sizeof(peeraddr); + int nrecv = recvfrom(sockfd, recvbuf, sizeof(recvbuf), 0, &peeraddr.sa, &addrlen); + if (nrecv < 0) { + perror("recvfrom"); + continue; + } + ++recv_cnt; + end_hrtime = gethrtime_us(); + // check valid + bool valid = false; + int iphdr_len = ipheader->ihl * 4; + int icmp_len = nrecv - iphdr_len; + if (icmp_len == sendbytes) { + icmp_res = (icmp_t*)(recvbuf + ipheader->ihl*4); + if (icmp_res->icmp_type == ICMP_ECHOREPLY && + icmp_res->icmp_id == pid16 && + icmp_res->icmp_seq == seq) { + valid = true; + } + } + if (valid == false) { + printd("recv invalid icmp packet!\n"); + continue; + } + rtt = (end_hrtime-start_hrtime) / 1000.0f; + min_rtt = MIN(rtt, min_rtt); + max_rtt = MAX(rtt, max_rtt); + total_rtt += rtt; + printd("%d bytes from %s: icmp_seq=%u ttl=%u time=%.1f ms\n", icmp_len, ip, seq, ipheader->ttl, rtt); + fflush(stdout); + ++ok_cnt; + if (cnt > 0) hv_sleep(1); // sleep a while, then agian + } + end_tick = gettick_ms(); + printd("--- %s ping statistics ---\n", host); + printd("%d packets transmitted, %d received, %d%% packet loss, time %d ms\n", + send_cnt, recv_cnt, (send_cnt-recv_cnt)*100/(send_cnt==0?1:send_cnt), end_tick-start_tick); + printd("rtt min/avg/max = %.3f/%.3f/%.3f ms\n", + min_rtt, total_rtt/(ok_cnt==0?1:ok_cnt), max_rtt); + + closesocket(sockfd); + return ok_cnt; +error: + closesocket(sockfd); + return socket_errno() > 0 ? -socket_errno() : -1; +} diff --git a/3rdPartner/libhv/protocol/icmp.h b/3rdPartner/libhv/protocol/icmp.h new file mode 100644 index 0000000..afd8349 --- /dev/null +++ b/3rdPartner/libhv/protocol/icmp.h @@ -0,0 +1,15 @@ +#ifndef HV_ICMP_H_ +#define HV_ICMP_H_ + +#include "hexport.h" + +BEGIN_EXTERN_C + +// @param cnt: ping count +// @return: ok count +// @note: printd $CC -DPRINT_DEBUG +HV_EXPORT int ping(const char* host, int cnt DEFAULT(4)); + +END_EXTERN_C + +#endif // HV_ICMP_H_ diff --git a/3rdPartner/libhv/protocol/smtp.c b/3rdPartner/libhv/protocol/smtp.c new file mode 100644 index 0000000..d365559 --- /dev/null +++ b/3rdPartner/libhv/protocol/smtp.c @@ -0,0 +1,256 @@ +#include "smtp.h" + +#include "hsocket.h" +#include "herr.h" +#include "base64.h" + +const char* smtp_command_str(enum smtp_command cmd) { + switch (cmd) { +#define XX(name, string) case SMTP_##name: return #string; + SMTP_COMMAND_MAP(XX) +#undef XX + default: return ""; + } +} + +const char* smtp_status_str(enum smtp_status status) { + switch (status) { +#define XXX(code, name, string) case SMTP_STATUS_##name: return #string; + SMTP_STATUS_MAP(XXX) +#undef XXX + default: return ""; + } +} + +int smtp_build_command(enum smtp_command cmd, const char* param, char* buf, int buflen) { + switch (cmd) { + // unary + case SMTP_DATA: + case SMTP_QUIT: + return snprintf(buf, buflen, "%s\r\n", smtp_command_str(cmd)); + //
+ case SMTP_MAIL: + case SMTP_RCPT: + return snprintf(buf, buflen, "%s <%s>\r\n", smtp_command_str(cmd), param); + default: + return snprintf(buf, buflen, "%s %s\r\n", smtp_command_str(cmd), param); + } +} + +// EHLO => AUTH PLAIN => MAIL => RCPT => DATA => data => EOB => QUIT +int sendmail(const char* smtp_server, + const char* username, + const char* password, + mail_t* mail) { + char buf[1024] = {0}; + int buflen = sizeof(buf); + int cmdlen = 0; + int status_code = 0; + char basic[256]; + int basiclen; + + int sockfd = ConnectTimeout(smtp_server, SMTP_PORT, DEFAULT_CONNECT_TIMEOUT); + if (sockfd < 0) { + return sockfd; + } + so_sndtimeo(sockfd, 5000); + so_rcvtimeo(sockfd, 5000); + + int ret, nsend, nrecv; + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_READY) { + ret = status_code; + goto error; + } + // EHLO smtp.xxx.com\r\n + cmdlen = smtp_build_command(SMTP_EHLO, smtp_server, buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_OK) { + ret = status_code; + goto error; + } + // AUTH PLAIN\r\n + cmdlen = smtp_build_command(SMTP_AUTH, "PLAIN", buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_AUTH) { + ret = status_code; + goto error; + } + { + // BASE64 \0username\0password + int usernamelen = strlen(username); + int passwordlen = strlen(password); + basic[0] = '\0'; + memcpy(basic+1, username, usernamelen); + basic[1+usernamelen] = '\0'; + memcpy(basic+1+usernamelen+1, password, passwordlen); + basiclen = 1 + usernamelen + 1 + passwordlen; + } + hv_base64_encode((unsigned char*)basic, basiclen, buf); + cmdlen = BASE64_ENCODE_OUT_SIZE(basiclen); + buf[cmdlen] = '\r'; + buf[cmdlen+1] = '\n'; + cmdlen += 2; + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_AUTH_SUCCESS) { + ret = status_code; + goto error; + } + // MAIL FROM: \r\n + cmdlen = smtp_build_command(SMTP_MAIL, mail->from, buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_OK) { + ret = status_code; + goto error; + } + // RCPT TO: \r\n + cmdlen = smtp_build_command(SMTP_RCPT, mail->to, buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_OK) { + ret = status_code; + goto error; + } + // DATA\r\n + cmdlen = smtp_build_command(SMTP_DATA, NULL, buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + status_code = atoi(buf); + // SMTP_STATUS_DATA + if (status_code >= 400) { + ret = status_code; + goto error; + } + // From: + cmdlen = snprintf(buf, buflen, "From:%s\r\n", mail->from); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + // To: + cmdlen = snprintf(buf, buflen, "To:%s\r\n", mail->to); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + // Subject: + cmdlen = snprintf(buf, buflen, "Subject:%s\r\n\r\n", mail->subject); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + // body + cmdlen = strlen(mail->body); + nsend = send(sockfd, mail->body, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + // EOB + nsend = send(sockfd, SMTP_EOB, SMTP_EOB_LEN, 0); + if (nsend != SMTP_EOB_LEN) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_SEND; + goto error; + } + status_code = atoi(buf); + if (status_code != SMTP_STATUS_OK) { + ret = status_code; + goto error; + } + // QUIT\r\n + cmdlen = smtp_build_command(SMTP_QUIT, NULL, buf, buflen); + nsend = send(sockfd, buf, cmdlen, 0); + if (nsend != cmdlen) { + ret = ERR_SEND; + goto error; + } + nrecv = recv(sockfd, buf, buflen, 0); + if (nrecv <= 0) { + ret = ERR_RECV; + goto error; + } + /* + status_code = atoi(buf); + if (status_code != SMTP_STATUS_BYE) { + ret = status_code; + goto error; + } + */ + ret = SMTP_STATUS_OK; + +error: + if (sockfd != INVALID_SOCKET) { + closesocket(sockfd); + } + return ret; +} diff --git a/3rdPartner/libhv/protocol/smtp.h b/3rdPartner/libhv/protocol/smtp.h new file mode 100644 index 0000000..ce00399 --- /dev/null +++ b/3rdPartner/libhv/protocol/smtp.h @@ -0,0 +1,74 @@ +#ifndef HV_SMTP_H_ +#define HV_SMTP_H_ + +#include "hexport.h" + +#define SMTP_PORT 25 +#define SMTPS_PORT 465 +#define SMTP_EOB "\r\n.\r\n" +#define SMTP_EOB_LEN 5 + +// smtp_command +// XX(name, string) +#define SMTP_COMMAND_MAP(XX)\ + XX(HELO, HELO) \ + XX(EHLO, EHLO) \ + XX(AUTH, AUTH) \ + XX(MAIL, MAIL FROM:) \ + XX(RCPT, RCPT TO:) \ + XX(DATA, DATA) \ + XX(QUIT, QUIT) \ + +enum smtp_command { +#define XX(name, string) SMTP_##name, + SMTP_COMMAND_MAP(XX) +#undef XX +}; + +// smtp_status +// XXX(code, name, string) +#define SMTP_STATUS_MAP(XXX) \ + XXX(220, READY, Ready) \ + XXX(221, BYE, Bye) \ + XXX(235, AUTH_SUCCESS, Authentication success) \ + XXX(250, OK, OK) \ + XXX(334, AUTH, Auth input) \ + XXX(354, DATA, End with .) \ + XXX(500, BAD_SYNTAX, Bad syntax) \ + XXX(502, NOT_IMPLEMENTED,Command not implemented) \ + XXX(503, BAD_SEQUENCE, Bad sequence of commands) \ + XXX(504, UNRECOGNIZED_AUTH_TYPE, Unrecognized authentication type) \ + XXX(535, AUTH_FAILED, Authentication failed) \ + XXX(553, ERR_MAIL, Mailbox name not allowed) \ + XXX(554, ERR_DATA, Transaction failed) \ + +enum smtp_status { +#define XXX(code, name, string) SMTP_STATUS_##name = code, + SMTP_STATUS_MAP(XXX) +#undef XXX +}; + +typedef struct mail_s { + char* from; + char* to; + char* subject; + char* body; +} mail_t; + +BEGIN_EXTERN_C + +HV_EXPORT const char* smtp_command_str(enum smtp_command cmd); +HV_EXPORT const char* smtp_status_str(enum smtp_status status); + +// cmd param\r\n +HV_EXPORT int smtp_build_command(enum smtp_command cmd, const char* param, char* buf, int buflen); +// status_code status_message\r\n + +HV_EXPORT int sendmail(const char* smtp_server, + const char* username, + const char* password, + mail_t* mail); + +END_EXTERN_C + +#endif // HV_SMTP_H_ diff --git a/3rdPartner/libhv/scripts/check.sh b/3rdPartner/libhv/scripts/check.sh new file mode 100644 index 0000000..dfe9171 --- /dev/null +++ b/3rdPartner/libhv/scripts/check.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. +cd ${ROOT_DIR} + +bin/httpd -c etc/httpd.conf -s restart -d +ps aux | grep httpd +HTTPS=`netstat -atn | grep 8443 | wc -l` + +bin/http_client_test +bin/curl -v http://127.0.0.1:8080/ +if [ $HTTPS -gt 0 ]; then + bin/curl -v https://127.0.0.1:8443/ +fi +bin/wrk -c 100 -t 2 -d 10s http://127.0.0.1:8080/ping diff --git a/3rdPartner/libhv/scripts/cmake_cross_compile.sh b/3rdPartner/libhv/scripts/cmake_cross_compile.sh new file mode 100644 index 0000000..3a5ce06 --- /dev/null +++ b/3rdPartner/libhv/scripts/cmake_cross_compile.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. + +if [ $# -gt 0 ]; then +CROSS_COMPILE=$1 +else +sudo apt install g++-arm-linux-gnueabi +CROSS_COMPILE=arm-linux-gnueabi- +fi +echo CROSS_COMPILE=${CROSS_COMPILE} + +cd ${ROOT_DIR} +. scripts/toolchain.sh export ${CROSS_COMPILE} +BUILD_DIR=build/${HV_TARGET_OS}/${HV_TARGET_ARCH} +echo BUILD_DIR=${BUILD_DIR} +mkdir -p ${BUILD_DIR} +cd ${BUILD_DIR} +cmake ../../.. -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_SYSTEM_NAME=$HV_TARGET_OS -DCMAKE_SYSTEM_PROCESSOR=$HV_TARGET_ARCH +make libhv libhv_static +cd ${ROOT_DIR} +. scripts/toolchain.sh unset ${CROSS_COMPILE} + +echo 'Completed => ${BUILD_DIR}' diff --git a/3rdPartner/libhv/scripts/consul.py b/3rdPartner/libhv/scripts/consul.py new file mode 100644 index 0000000..a9fe7e1 --- /dev/null +++ b/3rdPartner/libhv/scripts/consul.py @@ -0,0 +1,89 @@ +#!/usr/bin/python3 + +import sys +import json +import requests + +headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', + 'Cache-Control': 'no-cache', + 'Accpet': '*/*', + 'Content-Type': 'application/json'} + +_node = {'ip': '127.0.0.1', 'port': 8500} + +def gen_ServiceID(service_name, service_ip, service_port): + return service_name + '-' + service_ip + ':' + str(service_port) + +def register_service(service_name, service_ip, service_port , node=_node): + service = {} + service['Name'] = service_name + service['Address'] = service_ip + service['Port'] = service_port + service['ID'] = gen_ServiceID(service_name, service_ip, service_port) + check = {} + check['TCP'] = service['Address'] + ':' + str(service['Port']) + check['Interval'] = '10s' + check['DeregisterCriticalServiceAfter'] = '30s' + service['Check'] = check + data = json.dumps(service) + url = 'http://' + node['ip'] + ':' + str(node['port']) + url += '/v1/agent/service/register' + try: + res = requests.put(url=url, headers=headers, data=data) + return res.status_code == 200 and len(res.content) == 0 + except Exception as e: + print(e) + return False + +def deregister_service(ServiceID, node=_node): + url = 'http://' + node['ip'] + ':' + str(node['port']) + url += '/v1/agent/service/deregister/' + url += ServiceID + try: + res = requests.put(url=url, headers=headers) + return res.status_code == 200 and len(res.content) == 0 + except Exception as e: + print(e) + return False + +def discover_service(service_name, node=_node): + url = 'http://' + node['ip'] + ':' + str(node['port']) + url += '/v1/catalog/service/' + url += service_name + try: + res = requests.get(url=url, headers=headers) + return res.content + except Exception as e: + print(e) + return 'false' + +def main(): + print(sys.argv) + if len(sys.argv) < 4: + print('Usage: cmd service_name service_ip service_port node_ip node_port') + return + service_name = sys.argv[1] + service_ip = sys.argv[2] + service_port = int(sys.argv[3]) + if len(sys.argv) >= 5: + _node['ip'] = sys.argv[4] + _node['port'] = int(sys.argv[5]) + ServiceID = gen_ServiceID(service_name, service_ip, service_port) + if register_service(service_name, service_ip, service_port): + print('register_service [%s] succeed!' % (ServiceID)) + else: + print('register_service failed!') + + print(discover_service(service_name)) + + ''' + if deregister_service(ServiceID): + print('deregister_service [%s] succeed!' % (ServiceID)) + else: + print('deregister_service failed') + + print(discover_service(service_name)) + ''' + +if __name__ == '__main__': + main() diff --git a/3rdPartner/libhv/scripts/consul_agent.sh b/3rdPartner/libhv/scripts/consul_agent.sh new file mode 100644 index 0000000..0e15897 --- /dev/null +++ b/3rdPartner/libhv/scripts/consul_agent.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +rm -r consul +rm nohup.out +mkdir consul + +print_help() { +cat < /proc/sys/kernel/core_uses_pid +echo "/tmp/core-%e-%p-%t" > /proc/sys/kernel/core_pattern +echo "1" > /proc/sys/fs/suid_dumpable +print_conf + +ulimit -c unlimited +ulimit -a diff --git a/3rdPartner/libhv/scripts/create_repo.sh b/3rdPartner/libhv/scripts/create_repo.sh new file mode 100644 index 0000000..a9fa0b6 --- /dev/null +++ b/3rdPartner/libhv/scripts/create_repo.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +mkdir -p include lib src bin doc etc 3rd/include 3rd/lib dist +touch README.md BUILD.md RELEASE.md CHANGELOG.md Makefile .gitignore +git init + +# personal +git submodule add https://github.com/ithewei/libhv.git src/hv +cp src/hv/.gitignore . +cp src/hv/.clang-format . +cp src/hv/Makefile . +cp -r src/hv/etc/* etc +cp src/hv/examples/hmain_test.cpp src/main.cpp diff --git a/3rdPartner/libhv/scripts/libhv.cmake b/3rdPartner/libhv/scripts/libhv.cmake new file mode 100644 index 0000000..916c37e --- /dev/null +++ b/3rdPartner/libhv/scripts/libhv.cmake @@ -0,0 +1,9 @@ +set(CMAKE_C_COMPILER $CC) +set(CMAKE_CXX_COMPILER $CXX) + +set(CMAKE_SYSTEM_NAME $HV_TARGET_OS) +set(CMAKE_SYSTEM_PROCESSOR $HV_TARGET_ARCH) + +if(WIN32) + add_definitions(-D_WIN32_WINNT=0x600) +endif() diff --git a/3rdPartner/libhv/scripts/shini.sh b/3rdPartner/libhv/scripts/shini.sh new file mode 100644 index 0000000..266ae95 --- /dev/null +++ b/3rdPartner/libhv/scripts/shini.sh @@ -0,0 +1,311 @@ +# shini - compatible INI library for sh +# +# This code is released freely under the MIT license - see the shipped LICENSE document. +# For the latest version etc, please see https://github.com/wallyhall/shini +# + +# Solely for the purpose of portable performance, this script breaks good practice to +# avoid forking subshells. One such good practice is avoiding global variables. +# This variable is used to carry non-numeric results from functions to the caller. +# Alternatively an echo and "$(...)" approach could be used, but is significantly slower. + +shini_setup() +{ + if [ -n "$ZSH_VERSION" ]; then + RESTORE_OPTS=$(set +o) + # Enable BASH_REMATCH for zsh + setopt KSH_ARRAYS BASH_REMATCH + fi +} + +shini_teardown() +{ + [ -n "$ZSH_VERSION" ] && eval "$RESTORE_OPTS" +} + +shini_function_exists() +{ + type "$1" > /dev/null 2>&1 + return $? +} + +shini_regex_match() +{ + # $KSH_VERSION (I'm told) only exists on ksh 93 and above, which supports regex matching. + if [ -n "$BASH_VERSINFO" ] && [ "$BASH_VERSINFO" -ge 3 ] || \ + [ -n "$ZSH_VERSION" ] || \ + [ -n "$KSH_VERSION" ]; then + [[ "$1" =~ $2 ]] && return 0 || return 1 + fi + + printf '%s' "$1" | grep -qe "$2" + return $? +} + +shini_regex_replace() +{ + if [ -n "$BASH_VERSINFO" ] && [ "${BASH_VERSINFO}" -ge 3 ] || \ + [ -n "$ZSH_VERSION" ]; then + [[ "$1" =~ $2 ]] && shini_retval=${BASH_REMATCH[1]} || shini_retval="$1" + return 0 + fi + + shini_retval="$(printf '%s' "$1" | sed -E "s/$2/\1/")" # If you have isses on older systems, + # it may be the non-newer POSIX compliant sed. + # -E should be enabling extended regex mode portably. +} + +# @param inifile Filename of INI file to parse +# @param postfix Function postfix for callbacks (optional) +# @param extra Extra argument for callbacks (optional) +shini_parse() +{ + shini_parse_section "$1" '' "$2" "$3" "$4" "$5" +} + +# @param inifile Filename of INI file to parse +# @param section Section to parse (or empty string for entire file) +# @param postfix Function postfix for callbacks (optional) +# @param extra Extra argument for callbacks (optional) +shini_parse_section() +{ + shini_setup + # ******** + + RX_KEY='[a-zA-Z0-9_\-\.]' + RX_VALUE="[^;\"]" + RX_SECTION='[a-zA-Z0-9_\-]' + RX_WS='[ ]' + RX_QUOTE='"' + RX_HEX='[0-9A-F]' + POSTFIX='' + SKIP_TO_SECTION='' + EXTRA1='' + EXTRA2='' + EXTRA3='' + SECTION_FOUND=-1 + + if [ $# -ge 2 ] && [ ! -z "$2" ]; then + SKIP_TO_SECTION="$2" + fi + + if [ $# -ge 3 ] && [ ! -z "$3" ]; then + POSTFIX="_$3" + fi + + if [ $# -ge 4 ] && ! [ -z "$4" ]; then + EXTRA1="$4" + fi + + if [ $# -ge 5 ] && [ ! -z "$5" ]; then + EXTRA2="$5" + fi + + if [ $# -ge 6 ] && [ ! -z "$6" ]; then + EXTRA3="$6" + fi + + if ! shini_function_exists "__shini_parsed${POSTFIX}"; then + printf 'shini: __shini_parsed%s function not declared.\n' "${POSTFIX}" 1>&2 + exit 255 + fi + + if [ $# -lt 1 ]; then + if shini_function_exists "__shini_no_file_passed{$POSTFIX}"; then + "__shini_no_file_passed${POSTFIX}" "$EXTRA1" "$EXTRA2" "$EXTRA3" + else + printf 'shini: Argument 1 needs to specify the INI file to parse.\n' 1>&2 + exit 254 + fi + fi + INI_FILE="$1" + + if [ ! -r "$INI_FILE" ]; then + if shini_function_exists "__shini_file_unreadable${POSTFIX}"; then + "__shini_file_unreadable${POSTFIX}" "$INI_FILE" "$EXTRA1" "$EXTRA2" "$EXTRA3" + else + printf 'shini: Unable to read INI file:\n `%s`\n' "$INI_FILE" 1>&2 + exit 253 + fi + fi + + # Iterate INI file line by line + LINE_NUM=0 + SECTION='' + while read LINE || [ -n "$LINE" ]; do # -n $LINE catches final line if not empty + # Check for new sections + if shini_regex_match "$LINE" "^${RX_WS}*\[${RX_SECTION}${RX_SECTION}*\]${RX_WS}*$"; then + shini_regex_replace "$LINE" "^${RX_WS}*\[(${RX_SECTION}${RX_SECTION}*)\]${RX_WS}*$" "\1" + SECTION=$shini_retval + + if [ "$SKIP_TO_SECTION" != '' ]; then + # stop once specific section is finished + [ $SECTION_FOUND -eq 0 ] && break; + + # mark the specified section as found + [ "$SKIP_TO_SECTION" = "$SECTION" ] && SECTION_FOUND=0; + fi + + if shini_function_exists "__shini_parsed_section${POSTFIX}"; then + "__shini_parsed_section${POSTFIX}" "$SECTION" "$EXTRA1" "$EXTRA2" "$EXTRA3" + fi + + LINE_NUM=$((LINE_NUM+1)) + continue + fi + + # Skip over sections we don't care about, if a specific section was specified + [ "$SKIP_TO_SECTION" != '' ] && [ $SECTION_FOUND -ne 0 ] && LINE_NUM=$((LINE_NUM+1)) && continue; + + # Check for new values + if shini_regex_match "$LINE" "^${RX_WS}*${RX_KEY}${RX_KEY}*${RX_WS}*="; then + shini_regex_replace "$LINE" "^${RX_WS}*(${RX_KEY}${RX_KEY}*)${RX_WS}*=.*$" + KEY=$shini_retval + + shini_regex_replace "$LINE" "^${RX_WS}*${RX_KEY}${RX_KEY}*${RX_WS}*=${RX_WS}*${RX_QUOTE}{0,1}(${RX_VALUE}*)${RX_QUOTE}{0,1}(${RX_WS}*\;.*)*$" + VALUE=$shini_retval + + if shini_regex_match "$LINE" "^0x${RX_HEX}${RX_HEX}*$"; then + VALUE=$(printf '%d' "$VALUE") + fi + + "__shini_parsed${POSTFIX}" "$SECTION" "$KEY" "$VALUE" "$EXTRA1" "$EXTRA2" "$EXTRA3" + + if shini_function_exists "__shini_parsed_comment${POSTFIX}"; then + if shini_regex_match "$LINE" ";"; then + shini_regex_replace "$LINE" "^.*\;(.*)$" + COMMENT=$shini_retval + + "__shini_parsed_comment${POSTFIX}" "$COMMENT" "$EXTRA1" "$EXTRA2" "$EXTRA3" + fi + fi + + LINE_NUM=$((LINE_NUM+1)) + continue + fi + + # Announce parse errors + if [ "$LINE" != '' ] && + ! shini_regex_match "$LINE" "^${RX_WS}*;.*$" && + ! shini_regex_match "$LINE" "^${RX_WS}*$"; then + if shini_function_exists "__shini_parse_error${POSTFIX}"; then + "__shini_parse_error${POSTFIX}" $LINE_NUM "$LINE" "$EXTRA1" "$EXTRA2" "$EXTRA3" + else + printf 'shini: Unable to parse line %d:\n `%s`\n' $LINE_NUM "$LINE" + fi + fi + + LINE_NUM=$((LINE_NUM+1)) + done < "$INI_FILE" + + # ******** + shini_teardown +} + +# @param inifile Filename of INI file to write to +# @param section Section of INI file to write to +# @param variable Variable name to add/update/delete +# @param value Value to add/update, do not specify to delete +shini_write() +{ + shini_setup + # ******** + + # This is not yet optimised (early write support only) - + # We actually re-parse the entire file, looking for the location in which to + # write the new value, writing out everything we parse as-is meanwhile. + + # Declare the following if you want particular behaviour (like skipping + # broken INI file content or handling an unreadable file etc). + # __shini_no_file_passed__writer() + # __shini_file_unreadable__writer() + # __shini_parse_error__writer() + + # Writer callbacks, used for writing the INI file content + __shini_parsed_section__writer() + { + # Validate the last section wasn't the target section + if [ "$LAST_SECTION" = "$WRITE_SECTION" ]; then + # If it was, and the value wasn't written already, write it + if [ $VALUE_WRITTEN -eq 0 ]; then + printf "\n%s=%s" "$WRITE_KEY" "$WRITE_VALUE" >> "$INI_FILE_TEMP" + VALUE_WRITTEN=1 + fi + fi + printf "\n[%s]" "$1" >> "$INI_FILE_TEMP" + + LAST_SECTION="$1" + } + + __shini_parsed_comment__writer() + { + printf ";%s" "$1" >> "$INI_FILE_TEMP" + } + + __shini_parsed__writer() + { + if [ "$1" = "$WRITE_SECTION" ]; then + if [ "$2" = "$WRITE_KEY" ]; then + if [ ! -z "$WRITE_VALUE" ]; then + printf "\n%s=%s" "$WRITE_KEY" "$WRITE_VALUE" >> "$INI_FILE_TEMP" + fi + VALUE_WRITTEN=1 + return + fi + fi + + printf "\n%s=%s" "$2" "$3" >> "$INI_FILE_TEMP" + } + + if [ $# -lt 3 ]; then + if shini_function_exists "__shini_no_file_passed"; then + __shini_no_file_passed + else + printf 'shini: Argument 1 needs to specify the INI file to write.\n' 1>&2 + exit 254 + fi + fi + + INI_FILE="$1" + INI_FILE_TEMP="$(mktemp -t shini_XXXXXX)" + + WRITE_SECTION="$2" + WRITE_KEY="$3" + WRITE_VALUE="$4" + LAST_SECTION="" + VALUE_WRITTEN=0 + + shini_parse "$1" "_writer" "$2" "$3" "$4" + # Still not written out yet + if [ $VALUE_WRITTEN -eq 0 ]; then + # Check if final existing section was target one, add it if not + if [ "$LAST_SECTION" != "$WRITE_SECTION" ]; then + printf "\n[%s]" "$WRITE_SECTION" >> "$INI_FILE_TEMP" + fi + # Write value at end of file + printf "\n%s=%s" "$WRITE_KEY" "$WRITE_VALUE" >> "$INI_FILE_TEMP" + fi + + mv "$INI_FILE_TEMP" "$INI_FILE" + + # ******** + shini_teardown +} + +# default usage +__shini_parsed() +{ + if [[ $2 != *\$* ]] && [[ $3 != *\$* ]]; then + eval $2=$3 + fi +} + +__shini_parse_error() +{ + error_line=$1 +} + +__shini_parse_error__writer() +{ + error_line=$1 +} diff --git a/3rdPartner/libhv/scripts/test-coverage.sh b/3rdPartner/libhv/scripts/test-coverage.sh new file mode 100644 index 0000000..6f9d7ba --- /dev/null +++ b/3rdPartner/libhv/scripts/test-coverage.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. +cd ${ROOT_DIR} + +bin/httpd -c etc/httpd.conf -s restart -d + +bin/ls +bin/date +bin/ifconfig +bin/mkdir_p 123/456 +bin/rmdir_p 123/456 + +bin/defer_test +bin/hstring_test +bin/hpath_test +bin/hatomic_test +bin/hatomic_cpp_test +bin/hmutex_test +bin/socketpair_test +bin/threadpool_test +bin/objectpool_test + +bin/curl -v localhost:8080 +bin/curl -v localhost:8080/ping +bin/curl -v localhost:8080/echo -d "hello,world!" +bin/curl -v localhost:8080/query?page_no=1\&page_size=10 +bin/curl -v localhost:8080/kv -H "Content-Type:application/x-www-form-urlencoded" -d 'user=admin&pswd=123456' +bin/curl -v localhost:8080/json -H "Content-Type:application/json" -d '{"user":"admin","pswd":"123456"}' +bin/curl -v localhost:8080/form -F "user=admin pswd=123456" +bin/curl -v localhost:8080/upload -F "file=@LICENSE" +bin/curl -v localhost:8080/test -H "Content-Type:application/x-www-form-urlencoded" -d 'bool=1&int=123&float=3.14&string=hello' +bin/curl -v localhost:8080/test -H "Content-Type:application/json" -d '{"bool":true,"int":123,"float":3.14,"string":"hello"}' +bin/curl -v localhost:8080/test -F 'bool=1 int=123 float=3.14 string=hello' +bin/curl -v -X DELETE localhost:8080/group/test/user/123 + +bin/httpd -s stop + +bin/htimer_test diff --git a/3rdPartner/libhv/scripts/toolchain.sh b/3rdPartner/libhv/scripts/toolchain.sh new file mode 100644 index 0000000..31565bb --- /dev/null +++ b/3rdPartner/libhv/scripts/toolchain.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +print_help() { +cat <&1 | grep Target | sed 's/Target: //'` + TARGET_ARCH=`echo $TARGET_PLATFORM | awk -F'-' '{print $1}'` + + case $TARGET_PLATFORM in + *mingw*) TARGET_OS=Windows ;; + *android*) TARGET_OS=Android ;; + *darwin*) TARGET_OS=Darwin ;; + *) TARGET_OS=Linux ;; + esac + # TARGET_OS,TARGET_ARCH used by make + export HV_HOST_OS=$HOST_OS + export HV_HOST_ARCH=$HOST_ARCH + export HV_TARGET_OS=$TARGET_OS + export HV_TARGET_ARCH=$TARGET_ARCH + export HOST=$TARGET_PLATFORM + elif [ $COMMAND = "unset" ]; then + unset CROSS_COMPILE + unset CC + unset CXX + unset AR + unset AS + unset LD + unset STRIP + unset RANLIB + unset NM + + unset HOST_OS + unset HOST_ARCH + unset TARGET_OS + unset TARGET_ARCH + unset HOST + else + print_help + return + fi +} + +main $@ +echo "CC = $CC" +echo "CXX = $CXX" +if [ $CC ]; then +CC_VERSION=`$CC --version 2>&1 | head -n 1` +echo "$CC_VERSION" +fi +echo "AR = $AR" +echo "AS = $AS" +echo "LD = $LD" +echo "STRIP = $STRIP" +echo "RANLIB = $RANLIB" +echo "NM = $NM" + +echo "HV_HOST_OS = $HOST_OS" +echo "HV_HOST_ARCH = $HOST_ARCH" +echo "HV_TARGET_OS = $TARGET_OS" +echo "HV_TARGET_ARCH = $TARGET_ARCH" diff --git a/3rdPartner/libhv/scripts/unittest.sh b/3rdPartner/libhv/scripts/unittest.sh new file mode 100644 index 0000000..8d6de66 --- /dev/null +++ b/3rdPartner/libhv/scripts/unittest.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +SCRIPT_DIR=$(cd `dirname $0`; pwd) +ROOT_DIR=${SCRIPT_DIR}/.. +cd ${ROOT_DIR} + +bin/rbtree_test +bin/hbase_test +bin/date +bin/ifconfig +bin/mkdir_p 123/456 +bin/ls +bin/rmdir_p 123/456 + +bin/base64 +bin/md5 +bin/sha1 + +bin/defer_test +bin/hstring_test +bin/hpath_test +bin/hurl_test +# bin/hatomic_test +# bin/hatomic_cpp_test +# bin/hthread_test +# bin/hmutex_test +bin/socketpair_test +# bin/threadpool_test +# bin/objectpool_test +bin/sizeof_test diff --git a/3rdPartner/libhv/scripts/websocket_server.py b/3rdPartner/libhv/scripts/websocket_server.py new file mode 100644 index 0000000..f300d07 --- /dev/null +++ b/3rdPartner/libhv/scripts/websocket_server.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +# pip3 install websockets + +import asyncio +import websockets + +async def echo(websocket): + async for message in websocket: + print(message) + await websocket.send(message) + +async def serve(port): + async with websockets.serve(echo, "0.0.0.0", port): + await asyncio.Future() + +if __name__ == "__main__": + asyncio.run(serve(9999)) diff --git a/3rdPartner/libhv/ssl/appletls.c b/3rdPartner/libhv/ssl/appletls.c new file mode 100644 index 0000000..a74fee1 --- /dev/null +++ b/3rdPartner/libhv/ssl/appletls.c @@ -0,0 +1,1114 @@ +#include "hssl.h" + +#ifdef WITH_APPLETLS + +/* Disclaimer: excerpted from curl */ + +#include +/* For some reason, when building for iOS, the omnibus header above does + * not include SecureTransport.h as of iOS SDK 5.1. */ +#include +#include +#include + +#include "hsocket.h" + +/* The Security framework has changed greatly between iOS and different macOS + versions, and we will try to support as many of them as we can (back to + Leopard and iOS 5) by using macros and weak-linking. + In general, you want to build this using the most recent OS SDK, since some + features require curl to be built against the latest SDK. TLS 1.1 and 1.2 + support, for instance, require the macOS 10.8 SDK or later. TLS 1.3 + requires the macOS 10.13 or iOS 11 SDK or later. */ +#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) + +#if MAC_OS_X_VERSION_MAX_ALLOWED < 1050 +#error "The Secure Transport back-end requires Leopard or later." +#endif /* MAC_OS_X_VERSION_MAX_ALLOWED < 1050 */ + +#define CURL_BUILD_IOS 0 +#define CURL_BUILD_IOS_7 0 +#define CURL_BUILD_IOS_9 0 +#define CURL_BUILD_IOS_11 0 +#define CURL_BUILD_IOS_13 0 +#define CURL_BUILD_MAC 1 +/* This is the maximum API level we are allowed to use when building: */ +#define CURL_BUILD_MAC_10_5 MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 +#define CURL_BUILD_MAC_10_6 MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 +#define CURL_BUILD_MAC_10_7 MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 +#define CURL_BUILD_MAC_10_8 MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +#define CURL_BUILD_MAC_10_9 MAC_OS_X_VERSION_MAX_ALLOWED >= 1090 +#define CURL_BUILD_MAC_10_11 MAC_OS_X_VERSION_MAX_ALLOWED >= 101100 +#define CURL_BUILD_MAC_10_13 MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 +#define CURL_BUILD_MAC_10_15 MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 +/* These macros mean "the following code is present to allow runtime backward + compatibility with at least this cat or earlier": + (You set this at build-time using the compiler command line option + "-mmacosx-version-min.") */ +#define CURL_SUPPORT_MAC_10_5 MAC_OS_X_VERSION_MIN_REQUIRED <= 1050 +#define CURL_SUPPORT_MAC_10_6 MAC_OS_X_VERSION_MIN_REQUIRED <= 1060 +#define CURL_SUPPORT_MAC_10_7 MAC_OS_X_VERSION_MIN_REQUIRED <= 1070 +#define CURL_SUPPORT_MAC_10_8 MAC_OS_X_VERSION_MIN_REQUIRED <= 1080 +#define CURL_SUPPORT_MAC_10_9 MAC_OS_X_VERSION_MIN_REQUIRED <= 1090 + +#elif TARGET_OS_EMBEDDED || TARGET_OS_IPHONE +#define CURL_BUILD_IOS 1 +#define CURL_BUILD_IOS_7 __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 +#define CURL_BUILD_IOS_9 __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000 +#define CURL_BUILD_IOS_11 __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 +#define CURL_BUILD_IOS_13 __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 +#define CURL_BUILD_MAC 0 +#define CURL_BUILD_MAC_10_5 0 +#define CURL_BUILD_MAC_10_6 0 +#define CURL_BUILD_MAC_10_7 0 +#define CURL_BUILD_MAC_10_8 0 +#define CURL_BUILD_MAC_10_9 0 +#define CURL_BUILD_MAC_10_11 0 +#define CURL_BUILD_MAC_10_13 0 +#define CURL_BUILD_MAC_10_15 0 +#define CURL_SUPPORT_MAC_10_5 0 +#define CURL_SUPPORT_MAC_10_6 0 +#define CURL_SUPPORT_MAC_10_7 0 +#define CURL_SUPPORT_MAC_10_8 0 +#define CURL_SUPPORT_MAC_10_9 0 + +#else +#error "The Secure Transport back-end requires iOS or macOS." +#endif /* (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) */ + +#if !defined(__MAC_10_8) +static const SSLProtocol kTLSProtocol11 = (SSLProtocol)7; +static const SSLProtocol kTLSProtocol12 = (SSLProtocol)8; +#endif + +#if !defined(__MAC_10_13) +static const SSLProtocol kTLSProtocol13 = (SSLProtocol)10; +#endif + +static inline const char* SSLProtocolToString(SSLProtocol proto) { + switch(proto) { + case kSSLProtocol2: return "SSLv2"; + case kSSLProtocol3: return "SSLv3"; + case kTLSProtocol1: return "TLSv1"; + case kTLSProtocol11: return "TLSv1.1"; + case kTLSProtocol12: return "TLSv1.2"; + case kTLSProtocol13: return "TLSv1.3"; + default: return "Unknown"; + } +} + +struct st_cipher { + const char *name; /* Cipher suite IANA name. It starts with "TLS_" prefix */ + const char *alias_name; /* Alias name is the same as OpenSSL cipher name */ + SSLCipherSuite num; /* Cipher suite code/number defined in IANA registry */ + bool weak; /* Flag to mark cipher as weak based on previous implementation + of Secure Transport back-end by CURL */ +}; + +/* Macro to initialize st_cipher data structure: stringify id to name, cipher + number/id, 'weak' suite flag + */ +#define CIPHER_DEF(num, alias, weak) \ + { #num, alias, num, weak } + +/* + Macro to initialize st_cipher data structure with name, code (IANA cipher + number/id value), and 'weak' suite flag. The first 28 cipher suite numbers + have the same IANA code for both SSL and TLS standards: numbers 0x0000 to + 0x001B. They have different names though. The first 4 letters of the cipher + suite name are the protocol name: "SSL_" or "TLS_", rest of the IANA name is + the same for both SSL and TLS cipher suite name. + The second part of the problem is that macOS/iOS SDKs don't define all TLS + codes but only 12 of them. The SDK defines all SSL codes though, i.e. SSL_NUM + constant is always defined for those 28 ciphers while TLS_NUM is defined only + for 12 of the first 28 ciphers. Those 12 TLS cipher codes match to + corresponding SSL enum value and represent the same cipher suite. Therefore + we'll use the SSL enum value for those cipher suites because it is defined + for all 28 of them. + We make internal data consistent and based on TLS names, i.e. all st_cipher + item names start with the "TLS_" prefix. + Summarizing all the above, those 28 first ciphers are presented in our table + with both TLS and SSL names. Their cipher numbers are assigned based on the + SDK enum value for the SSL cipher, which matches to IANA TLS number. + */ +#define CIPHER_DEF_SSLTLS(num_wo_prefix, alias, weak) \ + { "TLS_" #num_wo_prefix, alias, SSL_##num_wo_prefix, weak } + +/* + Cipher suites were marked as weak based on the following: + RC4 encryption - rfc7465, the document contains a list of deprecated ciphers. + Marked in the code below as weak. + RC2 encryption - many mentions, was found vulnerable to a relatively easy + attack https://link.springer.com/chapter/10.1007%2F3-540-69710-1_14 + Marked in the code below as weak. + DES and IDEA encryption - rfc5469, has a list of deprecated ciphers. + Marked in the code below as weak. + Anonymous Diffie-Hellman authentication and anonymous elliptic curve + Diffie-Hellman - vulnerable to a man-in-the-middle attack. Deprecated by + RFC 4346 aka TLS 1.1 (section A.5, page 60) + Null bulk encryption suites - not encrypted communication + Export ciphers, i.e. ciphers with restrictions to be used outside the US for + software exported to some countries, they were excluded from TLS 1.1 + version. More precisely, they were noted as ciphers which MUST NOT be + negotiated in RFC 4346 aka TLS 1.1 (section A.5, pages 60 and 61). + All of those filters were considered weak because they contain a weak + algorithm like DES, RC2 or RC4, and already considered weak by other + criteria. + 3DES - NIST deprecated it and is going to retire it by 2023 + https://csrc.nist.gov/News/2017/Update-to-Current-Use-and-Deprecation-of-TDEA + OpenSSL https://www.openssl.org/blog/blog/2016/08/24/sweet32/ also + deprecated those ciphers. Some other libraries also consider it + vulnerable or at least not strong enough. + CBC ciphers are vulnerable with SSL3.0 and TLS1.0: + https://www.cisco.com/c/en/us/support/docs/security/email-security-appliance + /118518-technote-esa-00.html + We don't take care of this issue because it is resolved by later TLS + versions and for us, it requires more complicated checks, we need to + check a protocol version also. Vulnerability doesn't look very critical + and we do not filter out those cipher suites. + */ + +#define CIPHER_WEAK_NOT_ENCRYPTED TRUE +#define CIPHER_WEAK_RC_ENCRYPTION TRUE +#define CIPHER_WEAK_DES_ENCRYPTION TRUE +#define CIPHER_WEAK_IDEA_ENCRYPTION TRUE +#define CIPHER_WEAK_ANON_AUTH TRUE +#define CIPHER_WEAK_3DES_ENCRYPTION TRUE +#define CIPHER_STRONG_ENOUGH FALSE + +/* Please do not change the order of the first ciphers available for SSL. + Do not insert and do not delete any of them. Code below + depends on their order and continuity. + If you add a new cipher, please maintain order by number, i.e. + insert in between existing items to appropriate place based on + cipher suite IANA number +*/ +const static struct st_cipher ciphertable[] = { + /* SSL version 3.0 and initial TLS 1.0 cipher suites. + Defined since SDK 10.2.8 */ + CIPHER_DEF_SSLTLS(NULL_WITH_NULL_NULL, /* 0x0000 */ + NULL, + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF_SSLTLS(RSA_WITH_NULL_MD5, /* 0x0001 */ + "NULL-MD5", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF_SSLTLS(RSA_WITH_NULL_SHA, /* 0x0002 */ + "NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF_SSLTLS(RSA_EXPORT_WITH_RC4_40_MD5, /* 0x0003 */ + "EXP-RC4-MD5", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_WITH_RC4_128_MD5, /* 0x0004 */ + "RC4-MD5", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_WITH_RC4_128_SHA, /* 0x0005 */ + "RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_EXPORT_WITH_RC2_CBC_40_MD5, /* 0x0006 */ + "EXP-RC2-CBC-MD5", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_WITH_IDEA_CBC_SHA, /* 0x0007 */ + "IDEA-CBC-SHA", + CIPHER_WEAK_IDEA_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_EXPORT_WITH_DES40_CBC_SHA, /* 0x0008 */ + "EXP-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_WITH_DES_CBC_SHA, /* 0x0009 */ + "DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(RSA_WITH_3DES_EDE_CBC_SHA, /* 0x000A */ + "DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_DSS_EXPORT_WITH_DES40_CBC_SHA, /* 0x000B */ + "EXP-DH-DSS-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_DSS_WITH_DES_CBC_SHA, /* 0x000C */ + "DH-DSS-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_DSS_WITH_3DES_EDE_CBC_SHA, /* 0x000D */ + "DH-DSS-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_RSA_EXPORT_WITH_DES40_CBC_SHA, /* 0x000E */ + "EXP-DH-RSA-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_RSA_WITH_DES_CBC_SHA, /* 0x000F */ + "DH-RSA-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_RSA_WITH_3DES_EDE_CBC_SHA, /* 0x0010 */ + "DH-RSA-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, /* 0x0011 */ + "EXP-EDH-DSS-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_DSS_WITH_DES_CBC_SHA, /* 0x0012 */ + "EDH-DSS-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_DSS_WITH_3DES_EDE_CBC_SHA, /* 0x0013 */ + "DHE-DSS-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, /* 0x0014 */ + "EXP-EDH-RSA-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_RSA_WITH_DES_CBC_SHA, /* 0x0015 */ + "EDH-RSA-DES-CBC-SHA", + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DHE_RSA_WITH_3DES_EDE_CBC_SHA, /* 0x0016 */ + "DHE-RSA-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF_SSLTLS(DH_anon_EXPORT_WITH_RC4_40_MD5, /* 0x0017 */ + "EXP-ADH-RC4-MD5", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF_SSLTLS(DH_anon_WITH_RC4_128_MD5, /* 0x0018 */ + "ADH-RC4-MD5", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF_SSLTLS(DH_anon_EXPORT_WITH_DES40_CBC_SHA, /* 0x0019 */ + "EXP-ADH-DES-CBC-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF_SSLTLS(DH_anon_WITH_DES_CBC_SHA, /* 0x001A */ + "ADH-DES-CBC-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF_SSLTLS(DH_anon_WITH_3DES_EDE_CBC_SHA, /* 0x001B */ + "ADH-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(SSL_FORTEZZA_DMS_WITH_NULL_SHA, /* 0x001C */ + NULL, + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA, /* 0x001D */ + NULL, + CIPHER_STRONG_ENOUGH), + +#if CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 + /* RFC 4785 - Pre-Shared Key (PSK) Ciphersuites with NULL Encryption */ + CIPHER_DEF(TLS_PSK_WITH_NULL_SHA, /* 0x002C */ + "PSK-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_DHE_PSK_WITH_NULL_SHA, /* 0x002D */ + "DHE-PSK-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_RSA_PSK_WITH_NULL_SHA, /* 0x002E */ + "RSA-PSK-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), +#endif /* CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 */ + + /* TLS addenda using AES, per RFC 3268. Defined since SDK 10.4u */ + CIPHER_DEF(TLS_RSA_WITH_AES_128_CBC_SHA, /* 0x002F */ + "AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_DSS_WITH_AES_128_CBC_SHA, /* 0x0030 */ + "DH-DSS-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_128_CBC_SHA, /* 0x0031 */ + "DH-RSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_128_CBC_SHA, /* 0x0032 */ + "DHE-DSS-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_128_CBC_SHA, /* 0x0033 */ + "DHE-RSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_128_CBC_SHA, /* 0x0034 */ + "ADH-AES128-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_RSA_WITH_AES_256_CBC_SHA, /* 0x0035 */ + "AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_DSS_WITH_AES_256_CBC_SHA, /* 0x0036 */ + "DH-DSS-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_256_CBC_SHA, /* 0x0037 */ + "DH-RSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_256_CBC_SHA, /* 0x0038 */ + "DHE-DSS-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_256_CBC_SHA, /* 0x0039 */ + "DHE-RSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_256_CBC_SHA, /* 0x003A */ + "ADH-AES256-SHA", + CIPHER_WEAK_ANON_AUTH), + +#if CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS + /* TLS 1.2 addenda, RFC 5246 */ + /* Server provided RSA certificate for key exchange. */ + CIPHER_DEF(TLS_RSA_WITH_NULL_SHA256, /* 0x003B */ + "NULL-SHA256", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_RSA_WITH_AES_128_CBC_SHA256, /* 0x003C */ + "AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_WITH_AES_256_CBC_SHA256, /* 0x003D */ + "AES256-SHA256", + CIPHER_STRONG_ENOUGH), + /* Server-authenticated (and optionally client-authenticated) + Diffie-Hellman. */ + CIPHER_DEF(TLS_DH_DSS_WITH_AES_128_CBC_SHA256, /* 0x003E */ + "DH-DSS-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_128_CBC_SHA256, /* 0x003F */ + "DH-RSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, /* 0x0040 */ + "DHE-DSS-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + + /* TLS 1.2 addenda, RFC 5246 */ + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, /* 0x0067 */ + "DHE-RSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_DSS_WITH_AES_256_CBC_SHA256, /* 0x0068 */ + "DH-DSS-AES256-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_256_CBC_SHA256, /* 0x0069 */ + "DH-RSA-AES256-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, /* 0x006A */ + "DHE-DSS-AES256-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, /* 0x006B */ + "DHE-RSA-AES256-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_128_CBC_SHA256, /* 0x006C */ + "ADH-AES128-SHA256", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_256_CBC_SHA256, /* 0x006D */ + "ADH-AES256-SHA256", + CIPHER_WEAK_ANON_AUTH), +#endif /* CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS */ + +#if CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 + /* Addendum from RFC 4279, TLS PSK */ + CIPHER_DEF(TLS_PSK_WITH_RC4_128_SHA, /* 0x008A */ + "PSK-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_PSK_WITH_3DES_EDE_CBC_SHA, /* 0x008B */ + "PSK-3DES-EDE-CBC-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_PSK_WITH_AES_128_CBC_SHA, /* 0x008C */ + "PSK-AES128-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_PSK_WITH_AES_256_CBC_SHA, /* 0x008D */ + "PSK-AES256-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_RC4_128_SHA, /* 0x008E */ + "DHE-PSK-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, /* 0x008F */ + "DHE-PSK-3DES-EDE-CBC-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_128_CBC_SHA, /* 0x0090 */ + "DHE-PSK-AES128-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_256_CBC_SHA, /* 0x0091 */ + "DHE-PSK-AES256-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_RC4_128_SHA, /* 0x0092 */ + "RSA-PSK-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, /* 0x0093 */ + "RSA-PSK-3DES-EDE-CBC-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_128_CBC_SHA, /* 0x0094 */ + "RSA-PSK-AES128-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_256_CBC_SHA, /* 0x0095 */ + "RSA-PSK-AES256-CBC-SHA", + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 */ + +#if CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS + /* Addenda from rfc 5288 AES Galois Counter Mode (GCM) Cipher Suites + for TLS. */ + CIPHER_DEF(TLS_RSA_WITH_AES_128_GCM_SHA256, /* 0x009C */ + "AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_WITH_AES_256_GCM_SHA384, /* 0x009D */ + "AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, /* 0x009E */ + "DHE-RSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, /* 0x009F */ + "DHE-RSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_128_GCM_SHA256, /* 0x00A0 */ + "DH-RSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_RSA_WITH_AES_256_GCM_SHA384, /* 0x00A1 */ + "DH-RSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, /* 0x00A2 */ + "DHE-DSS-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, /* 0x00A3 */ + "DHE-DSS-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_DSS_WITH_AES_128_GCM_SHA256, /* 0x00A4 */ + "DH-DSS-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_DSS_WITH_AES_256_GCM_SHA384, /* 0x00A5 */ + "DH-DSS-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_128_GCM_SHA256, /* 0x00A6 */ + "ADH-AES128-GCM-SHA256", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_DH_anon_WITH_AES_256_GCM_SHA384, /* 0x00A7 */ + "ADH-AES256-GCM-SHA384", + CIPHER_WEAK_ANON_AUTH), +#endif /* CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS */ + +#if CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 + /* RFC 5487 - PSK with SHA-256/384 and AES GCM */ + CIPHER_DEF(TLS_PSK_WITH_AES_128_GCM_SHA256, /* 0x00A8 */ + "PSK-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_PSK_WITH_AES_256_GCM_SHA384, /* 0x00A9 */ + "PSK-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, /* 0x00AA */ + "DHE-PSK-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, /* 0x00AB */ + "DHE-PSK-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, /* 0x00AC */ + "RSA-PSK-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, /* 0x00AD */ + "RSA-PSK-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_PSK_WITH_AES_128_CBC_SHA256, /* 0x00AE */ + "PSK-AES128-CBC-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_PSK_WITH_AES_256_CBC_SHA384, /* 0x00AF */ + "PSK-AES256-CBC-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_PSK_WITH_NULL_SHA256, /* 0x00B0 */ + "PSK-NULL-SHA256", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_PSK_WITH_NULL_SHA384, /* 0x00B1 */ + "PSK-NULL-SHA384", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, /* 0x00B2 */ + "DHE-PSK-AES128-CBC-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, /* 0x00B3 */ + "DHE-PSK-AES256-CBC-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_DHE_PSK_WITH_NULL_SHA256, /* 0x00B4 */ + "DHE-PSK-NULL-SHA256", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_DHE_PSK_WITH_NULL_SHA384, /* 0x00B5 */ + "DHE-PSK-NULL-SHA384", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, /* 0x00B6 */ + "RSA-PSK-AES128-CBC-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, /* 0x00B7 */ + "RSA-PSK-AES256-CBC-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_RSA_PSK_WITH_NULL_SHA256, /* 0x00B8 */ + "RSA-PSK-NULL-SHA256", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_RSA_PSK_WITH_NULL_SHA384, /* 0x00B9 */ + "RSA-PSK-NULL-SHA384", + CIPHER_WEAK_NOT_ENCRYPTED), +#endif /* CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7 */ + + /* RFC 5746 - Secure Renegotiation. This is not a real suite, + it is a response to initiate negotiation again */ + CIPHER_DEF(TLS_EMPTY_RENEGOTIATION_INFO_SCSV, /* 0x00FF */ + NULL, + CIPHER_STRONG_ENOUGH), + +#if CURL_BUILD_MAC_10_13 || CURL_BUILD_IOS_11 + /* TLS 1.3 standard cipher suites for ChaCha20+Poly1305. + Note: TLS 1.3 ciphersuites do not specify the key exchange + algorithm -- they only specify the symmetric ciphers. + Cipher alias name matches to OpenSSL cipher name, and for + TLS 1.3 ciphers */ + CIPHER_DEF(TLS_AES_128_GCM_SHA256, /* 0x1301 */ + NULL, /* The OpenSSL cipher name matches to the IANA name */ + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_AES_256_GCM_SHA384, /* 0x1302 */ + NULL, /* The OpenSSL cipher name matches to the IANA name */ + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_CHACHA20_POLY1305_SHA256, /* 0x1303 */ + NULL, /* The OpenSSL cipher name matches to the IANA name */ + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_AES_128_CCM_SHA256, /* 0x1304 */ + NULL, /* The OpenSSL cipher name matches to the IANA name */ + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_AES_128_CCM_8_SHA256, /* 0x1305 */ + NULL, /* The OpenSSL cipher name matches to the IANA name */ + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_13 || CURL_BUILD_IOS_11 */ + +#if CURL_BUILD_MAC_10_6 || CURL_BUILD_IOS + /* ECDSA addenda, RFC 4492 */ + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_NULL_SHA, /* 0xC001 */ + "ECDH-ECDSA-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_RC4_128_SHA, /* 0xC002 */ + "ECDH-ECDSA-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, /* 0xC003 */ + "ECDH-ECDSA-DES-CBC3-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, /* 0xC004 */ + "ECDH-ECDSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, /* 0xC005 */ + "ECDH-ECDSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_NULL_SHA, /* 0xC006 */ + "ECDHE-ECDSA-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, /* 0xC007 */ + "ECDHE-ECDSA-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, /* 0xC008 */ + "ECDHE-ECDSA-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, /* 0xC009 */ + "ECDHE-ECDSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, /* 0xC00A */ + "ECDHE-ECDSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_NULL_SHA, /* 0xC00B */ + "ECDH-RSA-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_ECDH_RSA_WITH_RC4_128_SHA, /* 0xC00C */ + "ECDH-RSA-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, /* 0xC00D */ + "ECDH-RSA-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, /* 0xC00E */ + "ECDH-RSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, /* 0xC00F */ + "ECDH-RSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_NULL_SHA, /* 0xC010 */ + "ECDHE-RSA-NULL-SHA", + CIPHER_WEAK_NOT_ENCRYPTED), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_RC4_128_SHA, /* 0xC011 */ + "ECDHE-RSA-RC4-SHA", + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, /* 0xC012 */ + "ECDHE-RSA-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, /* 0xC013 */ + "ECDHE-RSA-AES128-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, /* 0xC014 */ + "ECDHE-RSA-AES256-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_anon_WITH_NULL_SHA, /* 0xC015 */ + "AECDH-NULL-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_ECDH_anon_WITH_RC4_128_SHA, /* 0xC016 */ + "AECDH-RC4-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, /* 0xC017 */ + "AECDH-DES-CBC3-SHA", + CIPHER_WEAK_3DES_ENCRYPTION), + CIPHER_DEF(TLS_ECDH_anon_WITH_AES_128_CBC_SHA, /* 0xC018 */ + "AECDH-AES128-SHA", + CIPHER_WEAK_ANON_AUTH), + CIPHER_DEF(TLS_ECDH_anon_WITH_AES_256_CBC_SHA, /* 0xC019 */ + "AECDH-AES256-SHA", + CIPHER_WEAK_ANON_AUTH), +#endif /* CURL_BUILD_MAC_10_6 || CURL_BUILD_IOS */ + +#if CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS + /* Addenda from rfc 5289 Elliptic Curve Cipher Suites with + HMAC SHA-256/384. */ + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, /* 0xC023 */ + "ECDHE-ECDSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, /* 0xC024 */ + "ECDHE-ECDSA-AES256-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, /* 0xC025 */ + "ECDH-ECDSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, /* 0xC026 */ + "ECDH-ECDSA-AES256-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, /* 0xC027 */ + "ECDHE-RSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, /* 0xC028 */ + "ECDHE-RSA-AES256-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, /* 0xC029 */ + "ECDH-RSA-AES128-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, /* 0xC02A */ + "ECDH-RSA-AES256-SHA384", + CIPHER_STRONG_ENOUGH), + /* Addenda from rfc 5289 Elliptic Curve Cipher Suites with + SHA-256/384 and AES Galois Counter Mode (GCM) */ + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, /* 0xC02B */ + "ECDHE-ECDSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, /* 0xC02C */ + "ECDHE-ECDSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, /* 0xC02D */ + "ECDH-ECDSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, /* 0xC02E */ + "ECDH-ECDSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, /* 0xC02F */ + "ECDHE-RSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, /* 0xC030 */ + "ECDHE-RSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, /* 0xC031 */ + "ECDH-RSA-AES128-GCM-SHA256", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, /* 0xC032 */ + "ECDH-RSA-AES256-GCM-SHA384", + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_8 || CURL_BUILD_IOS */ + +#if CURL_BUILD_MAC_10_15 || CURL_BUILD_IOS_13 + /* ECDHE_PSK Cipher Suites for Transport Layer Security (TLS), RFC 5489 */ + CIPHER_DEF(TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, /* 0xC035 */ + "ECDHE-PSK-AES128-CBC-SHA", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, /* 0xC036 */ + "ECDHE-PSK-AES256-CBC-SHA", + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_15 || CURL_BUILD_IOS_13 */ + +#if CURL_BUILD_MAC_10_13 || CURL_BUILD_IOS_11 + /* Addenda from rfc 7905 ChaCha20-Poly1305 Cipher Suites for + Transport Layer Security (TLS). */ + CIPHER_DEF(TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, /* 0xCCA8 */ + "ECDHE-RSA-CHACHA20-POLY1305", + CIPHER_STRONG_ENOUGH), + CIPHER_DEF(TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, /* 0xCCA9 */ + "ECDHE-ECDSA-CHACHA20-POLY1305", + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_13 || CURL_BUILD_IOS_11 */ + +#if CURL_BUILD_MAC_10_15 || CURL_BUILD_IOS_13 + /* ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS), + RFC 7905 */ + CIPHER_DEF(TLS_PSK_WITH_CHACHA20_POLY1305_SHA256, /* 0xCCAB */ + "PSK-CHACHA20-POLY1305", + CIPHER_STRONG_ENOUGH), +#endif /* CURL_BUILD_MAC_10_15 || CURL_BUILD_IOS_13 */ + + /* Tags for SSL 2 cipher kinds which are not specified for SSL 3. + Defined since SDK 10.2.8 */ + CIPHER_DEF(SSL_RSA_WITH_RC2_CBC_MD5, /* 0xFF80 */ + NULL, + CIPHER_WEAK_RC_ENCRYPTION), + CIPHER_DEF(SSL_RSA_WITH_IDEA_CBC_MD5, /* 0xFF81 */ + NULL, + CIPHER_WEAK_IDEA_ENCRYPTION), + CIPHER_DEF(SSL_RSA_WITH_DES_CBC_MD5, /* 0xFF82 */ + NULL, + CIPHER_WEAK_DES_ENCRYPTION), + CIPHER_DEF(SSL_RSA_WITH_3DES_EDE_CBC_MD5, /* 0xFF83 */ + NULL, + CIPHER_WEAK_3DES_ENCRYPTION), +}; + +#define NUM_OF_CIPHERS sizeof(ciphertable)/sizeof(ciphertable[0]) + +static const char* SSLCipherSuiteToString(SSLCipherSuite cipher) +{ + /* The first ciphers in the ciphertable are continuos. Here we do small + optimization and instead of loop directly get SSL name by cipher number. + */ + if(cipher <= SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA) { + return ciphertable[cipher].name; + } + /* Iterate through the rest of the ciphers */ + for(size_t i = SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA + 1; + i < NUM_OF_CIPHERS; + ++i) { + if(ciphertable[i].num == cipher) { + return ciphertable[i].name; + } + } + return ciphertable[SSL_NULL_WITH_NULL_NULL].name; +} + +static bool is_cipher_suite_strong(SSLCipherSuite suite_num) +{ + for(size_t i = 0; i < NUM_OF_CIPHERS; ++i) { + if(ciphertable[i].num == suite_num) { + return !ciphertable[i].weak; + } + } + /* If the cipher is not in our list, assume it is a new one + and therefore strong. Previous implementation was the same, + if cipher suite is not in the list, it was considered strong enough */ + return true; +} + +const char* hssl_backend() { + return "appletls"; +} + +typedef struct appletls_ctx { + SecIdentityRef cert; + hssl_ctx_opt_t* param; +} appletls_ctx_t; + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* param) { + appletls_ctx_t* ctx = (appletls_ctx_t*)malloc(sizeof(appletls_ctx_t)); + if (ctx == NULL) return NULL; + ctx->cert = NULL; + ctx->param = param; + return ctx; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) { + if (ssl_ctx == NULL) return; + appletls_ctx_t* ctx = (appletls_ctx_t*)ssl_ctx; + if (ctx->cert) { + CFRelease(ctx->cert); + ctx->cert = NULL; + } + free(ctx); +} + +typedef struct appletls_s { + SSLContextRef session; + appletls_ctx_t* ctx; + int fd; +} appletls_t; + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) { + if (ssl_ctx == NULL) return NULL; + appletls_t* appletls = (appletls_t*)malloc(sizeof(appletls_t)); + if (appletls == NULL) return NULL; + appletls->session = NULL; + appletls->ctx = (appletls_ctx_t*)ssl_ctx; + appletls->fd = fd; + return (hssl_t)appletls; +} + +static OSStatus SocketRead(SSLConnectionRef conn, void* data, size_t* len) { + // printf("SocketRead(%d)\n", (int)*len); + appletls_t* appletls = (appletls_t*)conn; + uint8_t* buffer = (uint8_t*)data; + size_t remain = *len; + *len = 0; + int fd = appletls->fd; + // int timeout = 1000; + // struct timeval tv = { timeout / 1000, (timeout % 1000) * 1000 }; + // fd_set readfds; + while (remain) { + /* + FD_ZERO(&readfds); + FD_SET(fd, &readfds); + int nselect = select(fd + 1, &readfds, 0, 0, &tv); + printf("nselect=%d\n", nselect); + if (nselect < 0) { + return errSSLClosedAbort; + } + if (nselect == 0) { + return errSSLWouldBlock; + } + */ + // printf("read(%d)\n", (int)remain); + // NOTE: avoid blocking + if (remain < 16) { + so_rcvtimeo(fd, 1000); + } + ssize_t nread = read(fd, buffer, remain); + // printf("nread=%d errno=%d\n", (int)nread, (int)errno); + if (nread == 0) return errSSLClosedGraceful; + if (nread < 0) { + switch (errno) { + case ENOENT: return errSSLClosedGraceful; + case ECONNRESET:return errSSLClosedAbort; + case EAGAIN: return errSSLWouldBlock; + default: return errSSLClosedAbort; + } + } + *len += nread; + remain -= nread; + buffer += nread; + } + return noErr; +} + +static OSStatus SocketWrite(SSLConnectionRef conn, const void* data, size_t* len) { + // printf("SocketWrite(%d)\n", (int)*len); + appletls_t* appletls = (appletls_t*)conn; + uint8_t* buffer = (uint8_t*)data; + size_t remain = *len; + *len = 0; + int fd = appletls->fd; + while (remain) { + if (remain < 16) { + so_sndtimeo(fd, 1000); + } + // printf("write(%d)\n", (int)remain); + ssize_t nwrite = write(fd, buffer, remain); + // printf("nwrite=%d errno=%d\n", (int)nwrite, (int)errno); + if (nwrite <= 0) { + switch (errno) { + case EAGAIN: return errSSLWouldBlock; + default: return errSSLClosedAbort; + } + } + remain -= nwrite; + buffer += nwrite; + *len += nwrite; + } + return noErr; +} + +static int hssl_init(hssl_t ssl, int endpoint) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + OSStatus ret = noErr; + if (appletls->session == NULL) { +#if defined(__MAC_10_8) + appletls->session = SSLCreateContext(NULL, endpoint == HSSL_SERVER ? kSSLServerSide : kSSLClientSide, kSSLStreamType); +#else + SSLNewContext(endpoint == HSSL_SERVER, &(appletls->session)); +#endif + } + if (appletls->session == NULL) { + fprintf(stderr, "SSLCreateContext failed!\n"); + return HSSL_ERROR; + } + + // ret = SSLSetProtocolVersionEnabled(appletls->session, kSSLProtocolAll, true); + ret = SSLSetProtocolVersionMin(appletls->session, kTLSProtocol12); + if (ret != noErr) { + fprintf(stderr, "SSLSetProtocolVersionMin failed!\n"); + return HSSL_ERROR; + } + + bool verify_peer = false; + if (appletls->ctx->param && appletls->ctx->param->verify_peer) { + verify_peer = true; + } +#if defined(__MAC_10_8) + ret = SSLSetSessionOption(appletls->session, kSSLSessionOptionBreakOnServerAuth, !verify_peer); +#else + ret = SSLSetEnableCertVerify(appletls->session, verify_peer); +#endif + if (ret != noErr) { + fprintf(stderr, "SSLSetEnableCertVerify failed!\n"); + return HSSL_ERROR; + } + + if (appletls->ctx->cert) { + CFArrayRef certs = CFArrayCreate(NULL, (const void**)&appletls->ctx->cert, 1, NULL); + if (!certs) { + fprintf(stderr, "CFArrayCreate failed!\n"); + return HSSL_ERROR; + } + ret = SSLSetCertificate(appletls->session, certs); + CFRelease(certs); + if (ret != noErr) { + fprintf(stderr, "SSLSetCertificate failed!\n"); + return HSSL_ERROR; + } + } + + size_t all_ciphers_count = 0, allowed_ciphers_count = 0; + SSLCipherSuite *all_ciphers = NULL, *allowed_ciphers = NULL; + ret = SSLGetNumberSupportedCiphers(appletls->session, &all_ciphers_count); + if (ret != noErr) { + fprintf(stderr, "SSLGetNumberSupportedCiphers failed!\n"); + goto error; + } + all_ciphers = (SSLCipherSuite*)malloc(all_ciphers_count * sizeof(SSLCipherSuite)); + allowed_ciphers = (SSLCipherSuite*)malloc(all_ciphers_count * sizeof(SSLCipherSuite)); + if (all_ciphers == NULL || allowed_ciphers == NULL) { + fprintf(stderr, "malloc failed!\n"); + goto error; + } + ret = SSLGetSupportedCiphers(appletls->session, all_ciphers, &all_ciphers_count); + if (ret != noErr) { + fprintf(stderr, "SSLGetSupportedCiphers failed!\n"); + goto error; + } + for (size_t i = 0; i < all_ciphers_count; ++i) { + if (is_cipher_suite_strong(all_ciphers[i])) { + allowed_ciphers[allowed_ciphers_count++] = all_ciphers[i]; + } + } + ret = SSLSetEnabledCiphers(appletls->session, allowed_ciphers, allowed_ciphers_count); + if (ret != noErr) { + fprintf(stderr, "SSLSetEnabledCiphers failed!\n"); + goto error; + } + if (all_ciphers) { + free(all_ciphers); + all_ciphers = NULL; + } + if (allowed_ciphers) { + free(allowed_ciphers); + allowed_ciphers = NULL; + } + + ret = SSLSetIOFuncs(appletls->session, SocketRead, SocketWrite); + if (ret != noErr) { + fprintf(stderr, "SSLSetIOFuncs failed!\n"); + return HSSL_ERROR; + } + ret = SSLSetConnection(appletls->session, appletls); + if (ret != noErr) { + fprintf(stderr, "SSLSetConnection failed!\n"); + return HSSL_ERROR; + } + + /* + char session_id[64] = {0}; + int session_id_len = snprintf(session_id, sizeof(session_id), "libhv:appletls:%p", appletls->session); + ret = SSLSetPeerID(appletls->session, session_id, session_id_len); + if (ret != noErr) { + fprintf(stderr, "SSLSetPeerID failed!\n"); + return HSSL_ERROR; + } + */ + + return HSSL_OK; +error: + if (all_ciphers) { + free(all_ciphers); + } + if (allowed_ciphers) { + free(allowed_ciphers); + } + return HSSL_ERROR; +} + +void hssl_free(hssl_t ssl) { + if (ssl == NULL) return; + appletls_t* appletls = (appletls_t*)ssl; + if (appletls->session) { +#if defined(__MAC_10_8) + CFRelease(appletls->session); +#else + SSLDisposeContext(appletls->session); +#endif + appletls->session = NULL; + } + free(appletls); +} + +static int hssl_handshake(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + OSStatus ret = SSLHandshake(appletls->session); + // printf("SSLHandshake retval=%d\n", (int)ret); + switch(ret) { + case noErr: + break; + case errSSLWouldBlock: + return HSSL_WANT_READ; + case errSSLPeerAuthCompleted: /* peer cert is valid, or was ignored if verification disabled */ + return hssl_handshake(ssl); + case errSSLBadConfiguration: + return HSSL_WANT_READ; + default: + return HSSL_ERROR; + } + + /* + SSLProtocol protocol = kSSLProtocolUnknown; + SSLGetNegotiatedProtocolVersion(appletls->session, &protocol); + SSLCipherSuite cipher = SSL_NO_SUCH_CIPHERSUITE; + SSLGetNegotiatedCipher(appletls->session, &cipher); + printf("* %s connection using %s\n", SSLProtocolToString(protocol), SSLCipherSuiteToString(cipher)); + */ + + return HSSL_OK; +} + +int hssl_accept(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + if (appletls->session == NULL) { + hssl_init(ssl, HSSL_SERVER); + } + return hssl_handshake(ssl); +} + +int hssl_connect(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + if (appletls->session == NULL) { + hssl_init(ssl, HSSL_CLIENT); + } + return hssl_handshake(ssl); +} + +int hssl_read(hssl_t ssl, void* buf, int len) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + size_t processed = 0; + // printf("SSLRead(%d)\n", len); + OSStatus ret = SSLRead(appletls->session, buf, len, &processed); + // printf("SSLRead retval=%d processed=%d\n", (int)ret, (int)processed); + switch (ret) { + case noErr: + return processed; + case errSSLWouldBlock: + return processed ? processed : HSSL_WOULD_BLOCK; + case errSSLClosedGraceful: + case errSSLClosedNoNotify: + return 0; + default: + return HSSL_ERROR; + } +} + +int hssl_write(hssl_t ssl, const void* buf, int len) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + size_t processed = 0; + // printf("SSLWrite(%d)\n", len); + OSStatus ret = SSLWrite(appletls->session, buf, len, &processed); + // printf("SSLWrite retval=%d processed=%d\n", (int)ret, (int)processed); + switch (ret) { + case noErr: + return processed; + case errSSLWouldBlock: + return processed ? processed : HSSL_WOULD_BLOCK; + case errSSLClosedGraceful: + case errSSLClosedNoNotify: + return 0; + default: + return HSSL_ERROR; + } +} + +int hssl_close(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + SSLClose(appletls->session); + return 0; +} + +int hssl_set_sni_hostname(hssl_t ssl, const char* hostname) { + if (ssl == NULL) return HSSL_ERROR; + appletls_t* appletls = (appletls_t*)ssl; + if (appletls->session == NULL) { + hssl_init(ssl, HSSL_CLIENT); + } + SSLSetPeerDomainName(appletls->session, hostname, strlen(hostname)); + return 0; +} + +#endif // WITH_APPLETLS diff --git a/3rdPartner/libhv/ssl/gnutls.c b/3rdPartner/libhv/ssl/gnutls.c new file mode 100644 index 0000000..465c89a --- /dev/null +++ b/3rdPartner/libhv/ssl/gnutls.c @@ -0,0 +1,197 @@ +#include "hssl.h" + +#ifdef WITH_GNUTLS + +#include "gnutls/gnutls.h" + +const char* hssl_backend() { + return "gnutls"; +} + +typedef gnutls_certificate_credentials_t gnutls_ctx_t; + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* param) { + static int s_initialized = 0; + if (s_initialized == 0) { + gnutls_global_init(); + s_initialized = 1; + } + + gnutls_ctx_t ctx; + const char* crt_file = NULL; + const char* key_file = NULL; + const char* ca_file = NULL; + const char* ca_path = NULL; + + int ret = gnutls_certificate_allocate_credentials(&ctx); + if (ret != GNUTLS_E_SUCCESS) { + return NULL; + } + + if (param) { + if (param->crt_file && *param->crt_file) { + crt_file = param->crt_file; + } + if (param->key_file && *param->key_file) { + key_file = param->key_file; + } + if (param->ca_file && *param->ca_file) { + ca_file = param->ca_file; + } + if (param->ca_path && *param->ca_path) { + ca_path = param->ca_path; + } + + if (ca_file) { + ret = gnutls_certificate_set_x509_trust_file(ctx, ca_file, GNUTLS_X509_FMT_PEM); + if (ret < 0) { + fprintf(stderr, "ssl ca_file failed!\n"); + goto error; + } + } + + if (ca_path) { + ret = gnutls_certificate_set_x509_trust_dir(ctx, ca_path, GNUTLS_X509_FMT_PEM); + if (ret < 0) { + fprintf(stderr, "ssl ca_path failed!\n"); + goto error; + } + } + + if (crt_file && key_file) { + ret = gnutls_certificate_set_x509_key_file(ctx, crt_file, key_file, GNUTLS_X509_FMT_PEM); + if (ret != GNUTLS_E_SUCCESS) { + fprintf(stderr, "ssl crt_file/key_file error!\n"); + goto error; + } + } + + if (param->verify_peer && !ca_file && !ca_path) { + gnutls_certificate_set_x509_system_trust(ctx); + } + } + return ctx; +error: + gnutls_certificate_free_credentials(ctx); + return NULL; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) { + if (!ssl_ctx) return; + gnutls_ctx_t ctx = (gnutls_ctx_t)ssl_ctx; + gnutls_certificate_free_credentials(ctx); +} + +typedef struct gnutls_s { + gnutls_session_t session; + gnutls_ctx_t ctx; + int fd; +} gnutls_t; + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) { + gnutls_t* gnutls = (gnutls_t*)malloc(sizeof(gnutls_t)); + if (gnutls == NULL) return NULL; + gnutls->session = NULL; + gnutls->ctx = (gnutls_ctx_t)ssl_ctx; + gnutls->fd = fd; + return (hssl_t)gnutls; +} + +static int hssl_init(hssl_t ssl, int endpoint) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) { + gnutls_init(&gnutls->session, endpoint); + gnutls_priority_set_direct(gnutls->session, "NORMAL", NULL); + gnutls_credentials_set(gnutls->session, GNUTLS_CRD_CERTIFICATE, gnutls->ctx); + gnutls_transport_set_ptr(gnutls->session, (gnutls_transport_ptr_t)(ptrdiff_t)gnutls->fd); + } + return HSSL_OK; +} + +void hssl_free(hssl_t ssl) { + if (ssl == NULL) return; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session) { + gnutls_deinit(gnutls->session); + gnutls->session = NULL; + } + free(gnutls); +} + +static int hssl_handshake(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) return HSSL_ERROR; + int ret = 0; + while (1) { + ret = gnutls_handshake(gnutls->session); + if (ret == GNUTLS_E_SUCCESS) { + return HSSL_OK; + } + else if (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) { + return gnutls_record_get_direction(gnutls->session) == 0 ? HSSL_WANT_READ : HSSL_WANT_WRITE; + } + else if (gnutls_error_is_fatal(ret)) { + // fprintf(stderr, "gnutls_handshake failed: %s\n", gnutls_strerror(ret)); + return HSSL_ERROR; + } + } + return HSSL_OK; +} + +int hssl_accept(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) { + hssl_init(ssl, GNUTLS_SERVER); + } + return hssl_handshake(ssl); +} + +int hssl_connect(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) { + hssl_init(ssl, GNUTLS_CLIENT); + } + return hssl_handshake(ssl); +} + +int hssl_read(hssl_t ssl, void* buf, int len) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) return HSSL_ERROR; + int ret = 0; + while ((ret = gnutls_record_recv(gnutls->session, buf, len)) == GNUTLS_E_INTERRUPTED); + return ret; +} + +int hssl_write(hssl_t ssl, const void* buf, int len) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) return HSSL_ERROR; + int ret = 0; + while ((ret = gnutls_record_send(gnutls->session, buf, len)) == GNUTLS_E_INTERRUPTED); + return ret; +} + +int hssl_close(hssl_t ssl) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) return HSSL_ERROR; + gnutls_bye(gnutls->session, GNUTLS_SHUT_RDWR); + return HSSL_OK; +} + +int hssl_set_sni_hostname(hssl_t ssl, const char* hostname) { + if (ssl == NULL) return HSSL_ERROR; + gnutls_t* gnutls = (gnutls_t*)ssl; + if (gnutls->session == NULL) { + hssl_init(ssl, GNUTLS_CLIENT); + } + gnutls_server_name_set(gnutls->session, GNUTLS_NAME_DNS, hostname, strlen(hostname)); + return 0; +} + +#endif // WITH_GNUTLS diff --git a/3rdPartner/libhv/ssl/hssl.c b/3rdPartner/libhv/ssl/hssl.c new file mode 100644 index 0000000..ad95b24 --- /dev/null +++ b/3rdPartner/libhv/ssl/hssl.c @@ -0,0 +1,24 @@ +#include "hssl.h" + +hssl_ctx_t g_ssl_ctx = NULL; + +hssl_ctx_t hssl_ctx_init(hssl_ctx_init_param_t* param) { + if (g_ssl_ctx == NULL) { + g_ssl_ctx = hssl_ctx_new(param); + } + return g_ssl_ctx; +} + +void hssl_ctx_cleanup(hssl_ctx_t ssl_ctx) { + hssl_ctx_free(ssl_ctx); + if (g_ssl_ctx == ssl_ctx) { + g_ssl_ctx = NULL; + } +} + +hssl_ctx_t hssl_ctx_instance() { + if (g_ssl_ctx == NULL) { + g_ssl_ctx = hssl_ctx_new(NULL); + } + return g_ssl_ctx; +} diff --git a/3rdPartner/libhv/ssl/hssl.h b/3rdPartner/libhv/ssl/hssl.h new file mode 100644 index 0000000..0a6cf09 --- /dev/null +++ b/3rdPartner/libhv/ssl/hssl.h @@ -0,0 +1,91 @@ +#ifndef HV_SSL_H_ +#define HV_SSL_H_ + +#include "hexport.h" + +#include "hplatform.h" +#if !defined(WITH_OPENSSL) && \ + !defined(WITH_GNUTLS) && \ + !defined(WITH_MBEDTLS) +#ifdef OS_WIN + #define WITH_WINTLS + #ifdef _MSC_VER + #pragma comment(lib, "secur32.lib") + #pragma comment(lib, "crypt32.lib") + #endif +#elif defined(OS_DARWIN) + #define WITH_APPLETLS +#else + #define HV_WITHOUT_SSL +#endif +#endif + +typedef void* hssl_ctx_t; ///> SSL_CTX +typedef void* hssl_t; ///> SSL + +enum { + HSSL_SERVER = 0, + HSSL_CLIENT = 1, +}; + +enum { + HSSL_OK = 0, + HSSL_ERROR = -1, + HSSL_WANT_READ = -2, + HSSL_WANT_WRITE = -3, + HSSL_WOULD_BLOCK = -4, +}; + +typedef struct { + const char* crt_file; + const char* key_file; + const char* ca_file; + const char* ca_path; + short verify_peer; + short endpoint; // HSSL_SERVER / HSSL_CLIENT +} hssl_ctx_opt_t, hssl_ctx_init_param_t; + +BEGIN_EXTERN_C + +/* +const char* hssl_backend() { +#ifdef WITH_OPENSSL + return "openssl"; +#elif defined(WITH_GNUTLS) + return "gnutls"; +#elif defined(WITH_MBEDTLS) + return "mbedtls"; +#else + return "nossl"; +#endif +} +*/ +HV_EXPORT const char* hssl_backend(); +#define HV_WITH_SSL (strcmp(hssl_backend(), "nossl") != 0) + +HV_EXPORT extern hssl_ctx_t g_ssl_ctx; +HV_EXPORT hssl_ctx_t hssl_ctx_init(hssl_ctx_init_param_t* param); +HV_EXPORT void hssl_ctx_cleanup(hssl_ctx_t ssl_ctx); +HV_EXPORT hssl_ctx_t hssl_ctx_instance(); + +HV_EXPORT hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* opt); +HV_EXPORT void hssl_ctx_free(hssl_ctx_t ssl_ctx); + +HV_EXPORT hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd); +HV_EXPORT void hssl_free(hssl_t ssl); + +HV_EXPORT int hssl_accept(hssl_t ssl); +HV_EXPORT int hssl_connect(hssl_t ssl); +HV_EXPORT int hssl_read(hssl_t ssl, void* buf, int len); +HV_EXPORT int hssl_write(hssl_t ssl, const void* buf, int len); +HV_EXPORT int hssl_close(hssl_t ssl); + +HV_EXPORT int hssl_set_sni_hostname(hssl_t ssl, const char* hostname); + +#ifdef WITH_OPENSSL +HV_EXPORT int hssl_ctx_set_alpn_protos(hssl_ctx_t ssl_ctx, const unsigned char* protos, unsigned int protos_len); +#endif + +END_EXTERN_C + +#endif // HV_SSL_H_ diff --git a/3rdPartner/libhv/ssl/mbedtls.c b/3rdPartner/libhv/ssl/mbedtls.c new file mode 100644 index 0000000..4a14ead --- /dev/null +++ b/3rdPartner/libhv/ssl/mbedtls.c @@ -0,0 +1,194 @@ +#include "hssl.h" +#include "hsocket.h" + +#ifdef WITH_MBEDTLS + +#include "mbedtls/version.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" +#include "mbedtls/x509.h" +#include "mbedtls/ssl.h" +#include "mbedtls/net_sockets.h" +#include "mbedtls/error.h" +#include "mbedtls/debug.h" + +#if defined(MBEDTLS_SSL_CACHE_C) +#include "mbedtls/ssl_cache.h" +#endif + +#ifdef _MSC_VER +//#pragma comment(lib, "libmbedtls.a") +//#pragma comment(lib, "libmbedx509.a") +//#pragma comment(lib, "libmbedcrypto.a") +#endif + +const char* hssl_backend() { + return "mbedtls"; +} + +struct mbedtls_ctx { + mbedtls_entropy_context entropy; + mbedtls_ctr_drbg_context ctr_drbg; + mbedtls_ssl_config conf; + mbedtls_x509_crt cert; + mbedtls_pk_context pkey; +#if defined(MBEDTLS_SSL_CACHE_C) + mbedtls_ssl_cache_context cache; +#endif +}; + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* param) { + struct mbedtls_ctx* ctx = (struct mbedtls_ctx*)malloc(sizeof(struct mbedtls_ctx)); + if (ctx == NULL) return NULL; + + mbedtls_ssl_config_init(&ctx->conf); +#if defined(MBEDTLS_SSL_CACHE_C) + mbedtls_ssl_cache_init(&ctx->cache); +#endif + mbedtls_x509_crt_init(&ctx->cert); + mbedtls_pk_init(&ctx->pkey); + mbedtls_entropy_init(&ctx->entropy); + mbedtls_ctr_drbg_init(&ctx->ctr_drbg); + + int mode = MBEDTLS_SSL_VERIFY_NONE; + int endpoint = MBEDTLS_SSL_IS_CLIENT; + bool check = false; + if (param) { + if (param->crt_file && *param->crt_file) { + if (mbedtls_x509_crt_parse_file(&ctx->cert, param->crt_file) != 0) { + fprintf(stderr, "ssl crt_file error!\n"); + goto error; + } + } + if (param->key_file && *param->key_file) { +#if MBEDTLS_VERSION_MAJOR >= 3 + if (mbedtls_pk_parse_keyfile(&ctx->pkey, param->key_file, NULL, NULL, NULL) != 0) { +#else + if (mbedtls_pk_parse_keyfile(&ctx->pkey, param->key_file, NULL) != 0) { +#endif + fprintf(stderr, "ssl key_file error!\n"); + goto error; + } + check = true; + } + if (param->verify_peer) { + mode = MBEDTLS_SSL_VERIFY_REQUIRED; + } + if (param->endpoint == HSSL_SERVER) { + endpoint = MBEDTLS_SSL_IS_SERVER; + } + } + mbedtls_ctr_drbg_seed(&ctx->ctr_drbg, mbedtls_entropy_func, &ctx->entropy, NULL, 0); + if (mbedtls_ssl_config_defaults(&ctx->conf, endpoint, + MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT) != 0) { + fprintf(stderr, "ssl config error!\n"); + goto error; + } + mbedtls_ssl_conf_authmode(&ctx->conf, mode); + mbedtls_ssl_conf_rng(&ctx->conf, mbedtls_ctr_drbg_random, &ctx->ctr_drbg); + +#if defined(MBEDTLS_SSL_CACHE_C) + mbedtls_ssl_conf_session_cache(&ctx->conf, &ctx->cache, mbedtls_ssl_cache_get, mbedtls_ssl_cache_set); +#endif + + if (check) { + mbedtls_ssl_conf_ca_chain(&ctx->conf, ctx->cert.next, NULL); + if (mbedtls_ssl_conf_own_cert(&ctx->conf, &ctx->cert, &ctx->pkey) != 0) { + fprintf(stderr, "ssl key_file check failed!\n"); + goto error; + } + } + return ctx; +error: + free(ctx); + return NULL; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) { + if (!ssl_ctx) return; + struct mbedtls_ctx *mctx = (struct mbedtls_ctx *)ssl_ctx; + mbedtls_x509_crt_free(&mctx->cert); + mbedtls_pk_free(&mctx->pkey); + mbedtls_ssl_config_free(&mctx->conf); +#if defined(MBEDTLS_SSL_CACHE_C) + mbedtls_ssl_cache_free(&mctx->cache); +#endif + mbedtls_ctr_drbg_free(&mctx->ctr_drbg); + mbedtls_entropy_free(&mctx->entropy); + free(mctx); +} + +static int __mbedtls_net_send(void *ctx, const unsigned char *buf, size_t len) { + int fd = (intptr_t)ctx; + // int n = write(fd, buf, len); + int n = send(fd, (char*)(buf), (int)(len), 0); + if (n >= 0) return n; + return ((socket_errno() == EAGAIN || socket_errno() == EINPROGRESS) ? MBEDTLS_ERR_SSL_WANT_WRITE : -1); +} + +static int __mbedtls_net_recv(void *ctx, unsigned char *buf, size_t len) { + int fd = (intptr_t)ctx; + // int n = read(fd, buf, len); + int n = recv(fd, (char*)(buf), (int)(len), 0); + if (n >= 0) return n; + return ((socket_errno() == EAGAIN || socket_errno() == EINPROGRESS) ? MBEDTLS_ERR_SSL_WANT_READ : -1); +} + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) { + struct mbedtls_ctx* mctx = (struct mbedtls_ctx*)ssl_ctx; + mbedtls_ssl_context* ssl = (mbedtls_ssl_context*)malloc(sizeof(mbedtls_ssl_context)); + if (ssl == NULL) return NULL; + mbedtls_ssl_init(ssl); + mbedtls_ssl_setup(ssl, &mctx->conf); + mbedtls_ssl_set_bio(ssl, (void*)(intptr_t)fd, __mbedtls_net_send, __mbedtls_net_recv, NULL); + return ssl; +} + +void hssl_free(hssl_t ssl) { + if (ssl) { + mbedtls_ssl_free(ssl); + ssl = NULL; + } +} + +static int hssl_handshake(hssl_t ssl) { + int ret = mbedtls_ssl_handshake(ssl); + if (ret != 0) { + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { + return HSSL_WANT_READ; + } + else if (ret == MBEDTLS_ERR_SSL_WANT_WRITE) { + return HSSL_WANT_WRITE; + } + } + return ret; +} + +int hssl_accept(hssl_t ssl) { + return hssl_handshake(ssl); +} + +int hssl_connect(hssl_t ssl) { + return hssl_handshake(ssl); +} + +int hssl_read(hssl_t ssl, void* buf, int len) { + return mbedtls_ssl_read(ssl, buf, len); +} + +int hssl_write(hssl_t ssl, const void* buf, int len) { + return mbedtls_ssl_write(ssl, buf, len); +} + +int hssl_close(hssl_t ssl) { + return 0; +} + +int hssl_set_sni_hostname(hssl_t ssl, const char* hostname) { +#ifdef MBEDTLS_X509_CRT_PARSE_C + mbedtls_ssl_set_hostname(ssl, hostname); +#endif + return 0; +} + +#endif // WITH_MBEDTLS diff --git a/3rdPartner/libhv/ssl/nossl.c b/3rdPartner/libhv/ssl/nossl.c new file mode 100644 index 0000000..03a873d --- /dev/null +++ b/3rdPartner/libhv/ssl/nossl.c @@ -0,0 +1,50 @@ +#include "hssl.h" + +#ifdef HV_WITHOUT_SSL + +const char* hssl_backend() { + return "nossl"; +} + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* opt) { + fprintf(stderr, "Please recompile WITH_SSL.\n"); + return NULL; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) { +} + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) { + return (void*)(intptr_t)fd; +} + +void hssl_free(hssl_t ssl) { +} + +int hssl_accept(hssl_t ssl) { + return 0; +} + +int hssl_connect(hssl_t ssl) { + return 0; +} + +int hssl_read(hssl_t ssl, void* buf, int len) { + int fd = (intptr_t)ssl; + return read(fd, buf, len); +} + +int hssl_write(hssl_t ssl, const void* buf, int len) { + int fd = (intptr_t)ssl; + return write(fd, buf, len); +} + +int hssl_close(hssl_t ssl) { + return 0; +} + +int hssl_set_sni_hostname(hssl_t ssl, const char* hostname) { + return 0; +} + +#endif // HV_WITHOUT_SSL diff --git a/3rdPartner/libhv/ssl/openssl.c b/3rdPartner/libhv/ssl/openssl.c new file mode 100644 index 0000000..8758794 --- /dev/null +++ b/3rdPartner/libhv/ssl/openssl.c @@ -0,0 +1,188 @@ +#include "hssl.h" + +#ifdef WITH_OPENSSL + +#include "openssl/ssl.h" +#include "openssl/err.h" +#ifdef _MSC_VER +//#pragma comment(lib, "libssl.a") +//#pragma comment(lib, "libcrypto.a") +#endif + +const char* hssl_backend() { + return "openssl"; +} + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* param) { + static int s_initialized = 0; + if (s_initialized == 0) { +#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_library_init(); + SSL_load_error_strings(); +#else + OPENSSL_init_ssl(OPENSSL_INIT_SSL_DEFAULT, NULL); +#endif + s_initialized = 1; + } + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_CTX* ctx = SSL_CTX_new(SSLv23_method()); +#else + SSL_CTX* ctx = SSL_CTX_new(TLS_method()); +#endif + if (ctx == NULL) return NULL; + int mode = SSL_VERIFY_NONE; + const char* ca_file = NULL; + const char* ca_path = NULL; + if (param) { + if (param->ca_file && *param->ca_file) { + ca_file = param->ca_file; + } + if (param->ca_path && *param->ca_path) { + ca_path = param->ca_path; + } + if (ca_file || ca_path) { + if (!SSL_CTX_load_verify_locations(ctx, ca_file, ca_path)) { + fprintf(stderr, "ssl ca_file/ca_path failed!\n"); + goto error; + } + } + + if (param->crt_file && *param->crt_file) { + if (!SSL_CTX_use_certificate_file(ctx, param->crt_file, SSL_FILETYPE_PEM)) { + fprintf(stderr, "ssl crt_file error!\n"); + goto error; + } + } + + if (param->key_file && *param->key_file) { + if (!SSL_CTX_use_PrivateKey_file(ctx, param->key_file, SSL_FILETYPE_PEM)) { + fprintf(stderr, "ssl key_file error!\n"); + goto error; + } + if (!SSL_CTX_check_private_key(ctx)) { + fprintf(stderr, "ssl key_file check failed!\n"); + goto error; + } + } + + if (param->verify_peer) { + mode = SSL_VERIFY_PEER; + if (param->endpoint == HSSL_SERVER) { + mode |= SSL_VERIFY_FAIL_IF_NO_PEER_CERT; + } + } + } + if (mode == SSL_VERIFY_PEER && !ca_file && !ca_path) { + SSL_CTX_set_default_verify_paths(ctx); + } + +#ifdef SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER + SSL_CTX_set_mode(ctx, SSL_CTX_get_mode(ctx) | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); +#endif + SSL_CTX_set_verify(ctx, mode, NULL); + return ctx; +error: + SSL_CTX_free(ctx); + return NULL; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) { + if (!ssl_ctx) return; + SSL_CTX_free((SSL_CTX*)ssl_ctx); +} + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) { + SSL* ssl = SSL_new((SSL_CTX*)ssl_ctx); + if (ssl == NULL) return NULL; + SSL_set_fd(ssl, fd); + return ssl; +} + +void hssl_free(hssl_t ssl) { + if (ssl) { + SSL_free((SSL*)ssl); + ssl = NULL; + } +} + +int hssl_accept(hssl_t ssl) { + int ret = SSL_accept((SSL*)ssl); + if (ret == 1) return 0; + + int err = SSL_get_error((SSL*)ssl, ret); + if (err == SSL_ERROR_WANT_READ) { + return HSSL_WANT_READ; + } + else if (err == SSL_ERROR_WANT_WRITE) { + return HSSL_WANT_WRITE; + } + return err; +} + +int hssl_connect(hssl_t ssl) { + int ret = SSL_connect((SSL*)ssl); + if (ret == 1) return 0; + + int err = SSL_get_error((SSL*)ssl, ret); + if (err == SSL_ERROR_WANT_READ) { + return HSSL_WANT_READ; + } + else if (err == SSL_ERROR_WANT_WRITE) { + return HSSL_WANT_WRITE; + } + return err; +} + +int hssl_read(hssl_t ssl, void* buf, int len) { + return SSL_read((SSL*)ssl, buf, len); +} + +int hssl_write(hssl_t ssl, const void* buf, int len) { + return SSL_write((SSL*)ssl, buf, len); +} + +int hssl_close(hssl_t ssl) { + SSL_shutdown((SSL*)ssl); + return 0; +} + +int hssl_set_sni_hostname(hssl_t ssl, const char* hostname) { +#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME + SSL_set_tlsext_host_name((SSL*)ssl, hostname); +#endif + return 0; +} + +#ifdef TLSEXT_TYPE_application_layer_protocol_negotiation +static int hssl_ctx_alpn_select_cb(SSL *ssl, + const unsigned char **out, unsigned char *outlen, + const unsigned char *in, unsigned int inlen, + void *arg) { + const unsigned char* protos = (unsigned char*)arg; + unsigned int protos_len = strlen((char*)protos); + // printf("hssl_ctx_alpn_select_cb(in=%*.s:%u out=%.*s:%u protos=%.*s:%u)\n", inlen, in, inlen, (int)*outlen, (char*)out, (int)*outlen, protos_len, protos, protos_len); + if (SSL_select_next_proto((unsigned char **) out, outlen, protos, protos_len, in, inlen) != OPENSSL_NPN_NEGOTIATED) { + fprintf(stderr, "SSL_select_next_proto failed!\n"); + return SSL_TLSEXT_ERR_ALERT_FATAL; + } + // printf("SSL_select_next_proto(out=%.*s:%u)\n", (int)*outlen, (char*)*out, (int)*outlen); + return SSL_TLSEXT_ERR_OK; +} +#endif + +int hssl_ctx_set_alpn_protos(hssl_ctx_t ssl_ctx, const unsigned char* protos, unsigned int protos_len) { + int ret = -1; + // printf("hssl_ctx_set_alpn_protos(%.*s:%u)\n", protos_len, protos, protos_len); +#ifdef TLSEXT_TYPE_application_layer_protocol_negotiation + // for HSSL_CLIENT + // ret = SSL_CTX_set_alpn_protos((SSL_CTX*)ssl_ctx, (const unsigned char*)protos, protos_len); + + // for HSSL_SERVER + SSL_CTX_set_alpn_select_cb((SSL_CTX*)ssl_ctx, hssl_ctx_alpn_select_cb, (void*)protos); + ret = 0; +#endif + return ret; +} + +#endif // WITH_OPENSSL diff --git a/3rdPartner/libhv/ssl/wintls.c b/3rdPartner/libhv/ssl/wintls.c new file mode 100644 index 0000000..98d056f --- /dev/null +++ b/3rdPartner/libhv/ssl/wintls.c @@ -0,0 +1,837 @@ +#include "hssl.h" + +#ifdef WITH_WINTLS + +// #define PRINT_DEBUG +// #define PRINT_ERROR +#include "hdef.h" +#include +#include +#include +#include + +#define SECURITY_WIN32 +#include +#include + +#define TLS_SOCKET_BUFFER_SIZE 17000 + +#ifndef SP_PROT_SSL2_SERVER +#define SP_PROT_SSL2_SERVER 0x00000004 +#endif + +#ifndef SP_PROT_SSL2_CLIENT +#define SP_PROT_SSL2_CLIENT 0x00000008 +#endif + +#ifndef SP_PROT_SSL3_SERVER +#define SP_PROT_SSL3_SERVER 0x00000010 +#endif + +#ifndef SP_PROT_SSL3_CLIENT +#define SP_PROT_SSL3_CLIENT 0x00000020 +#endif + +#ifndef SP_PROT_TLS1_SERVER +#define SP_PROT_TLS1_SERVER 0x00000040 +#endif + +#ifndef SP_PROT_TLS1_CLIENT +#define SP_PROT_TLS1_CLIENT 0x00000080 +#endif + +#ifndef SP_PROT_TLS1_0_SERVER +#define SP_PROT_TLS1_0_SERVER SP_PROT_TLS1_SERVER +#endif + +#ifndef SP_PROT_TLS1_0_CLIENT +#define SP_PROT_TLS1_0_CLIENT SP_PROT_TLS1_CLIENT +#endif + +#ifndef SP_PROT_TLS1_1_SERVER +#define SP_PROT_TLS1_1_SERVER 0x00000100 +#endif + +#ifndef SP_PROT_TLS1_1_CLIENT +#define SP_PROT_TLS1_1_CLIENT 0x00000200 +#endif + +#ifndef SP_PROT_TLS1_2_SERVER +#define SP_PROT_TLS1_2_SERVER 0x00000400 +#endif + +#ifndef SP_PROT_TLS1_2_CLIENT +#define SP_PROT_TLS1_2_CLIENT 0x00000800 +#endif + +#ifndef SP_PROT_TLS1_3_SERVER +#define SP_PROT_TLS1_3_SERVER 0x00001000 +#endif + +#ifndef SP_PROT_TLS1_3_CLIENT +#define SP_PROT_TLS1_3_CLIENT 0x00002000 +#endif + +#ifndef SCH_USE_STRONG_CRYPTO +#define SCH_USE_STRONG_CRYPTO 0x00400000 +#endif + +#ifndef SECBUFFER_ALERT +#define SECBUFFER_ALERT 17 +#endif + +const char* hssl_backend() +{ + return "schannel"; +} + +static PCCERT_CONTEXT getservercert(const char* path) +{ + /* + According to the information I searched from the internet, it is not possible to specify an x509 private key and certificate using the + CertCreateCertificateContext interface. We must first export them as a pkcs#12 formatted file, and then import them into the Windows certificate store. This + is because the Windows certificate store is an integrated system location that does not support the direct use of separate private key files and certificate + files. The pkcs#12 format is a complex format that can store and protect keys and certificates. You can use the OpenSSL tool to combine the private key file + and certificate file into a pkcs#12 formatted file, For example: OpenSSL pkcs12 -export -out cert.pfx -inkey private.key -in cert.cer Then, you can use the + certutil tool or a graphical interface to import this file into the personal store of your local computer. After importing, you can use the + CertFindCertificateInStore interface to create and manipulate certificate contexts. + */ + return NULL; +} + +hssl_ctx_t hssl_ctx_new(hssl_ctx_opt_t* opt) +{ + SECURITY_STATUS SecStatus; + TimeStamp Lifetime; + CredHandle* hCred = NULL; + SCHANNEL_CRED credData = { 0 }; + TCHAR unisp_name[] = UNISP_NAME; + unsigned long credflag; + + if (opt && opt->endpoint == HSSL_SERVER) { + PCCERT_CONTEXT serverCert = NULL; // server-side certificate +#if 1 // create cert from store + + //------------------------------------------------------- + // Get the server certificate. + //------------------------------------------------------- + // Open the My store(personal store). + HCERTSTORE hMyCertStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, X509_ASN_ENCODING, 0, CERT_SYSTEM_STORE_LOCAL_MACHINE, L"MY"); + if (hMyCertStore == NULL) { + printe("Error opening MY store for server.\n"); + return NULL; + } + //------------------------------------------------------- + // Search for a certificate match its subject string to opt->crt_file. + serverCert = CertFindCertificateInStore(hMyCertStore, X509_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR_A, opt->crt_file, NULL); + CertCloseStore(hMyCertStore, 0); + if (serverCert == NULL) { + printe("Error retrieving server certificate. %x\n", GetLastError()); + return NULL; + } +#else + serverCert = getservercert(opt->ca_file); +#endif + credData.cCreds = 1; // 数量 + credData.paCred = &serverCert; + // credData.dwCredFormat = SCH_CRED_FORMAT_CERT_HASH; + credData.grbitEnabledProtocols = SP_PROT_TLS1_2_SERVER | SP_PROT_TLS1_3_SERVER; + credflag = SECPKG_CRED_INBOUND; + } else { + credData.grbitEnabledProtocols = SP_PROT_TLS1_2_CLIENT | SP_PROT_TLS1_3_CLIENT; + credflag = SECPKG_CRED_OUTBOUND; + } +#if 0 // just use the system defalut algs + ALG_ID rgbSupportedAlgs[4]; + rgbSupportedAlgs[0] = CALG_DH_EPHEM; + rgbSupportedAlgs[1] = CALG_RSA_KEYX; + rgbSupportedAlgs[2] = CALG_AES_128; + rgbSupportedAlgs[3] = CALG_SHA_256; + credData.cSupportedAlgs = 4; + credData.palgSupportedAlgs = rgbSupportedAlgs; +#endif + credData.dwVersion = SCHANNEL_CRED_VERSION; + // credData.dwFlags = SCH_CRED_NO_DEFAULT_CREDS | SCH_CRED_NO_SERVERNAME_CHECK | SCH_USE_STRONG_CRYPTO | SCH_CRED_MANUAL_CRED_VALIDATION | SCH_CRED_IGNORE_NO_REVOCATION_CHECK | SCH_CRED_IGNORE_REVOCATION_OFFLINE; + // credData.dwFlags = SCH_CRED_AUTO_CRED_VALIDATION | SCH_CRED_REVOCATION_CHECK_CHAIN | SCH_CRED_IGNORE_REVOCATION_OFFLINE; + // credData.dwMinimumCipherStrength = -1; + // credData.dwMaximumCipherStrength = -1; + + //------------------------------------------------------- + hCred = (CredHandle*)malloc(sizeof(CredHandle)); + if (hCred == NULL) { + return NULL; + } + + SecStatus = AcquireCredentialsHandle(NULL, unisp_name, credflag, NULL, &credData, NULL, NULL, hCred, &Lifetime); + if (SecStatus == SEC_E_OK) { +#ifndef NDEBUG + SecPkgCred_SupportedAlgs algs; + if (QueryCredentialsAttributesA(hCred, SECPKG_ATTR_SUPPORTED_ALGS, &algs) == SEC_E_OK) { + for (int i = 0; i < algs.cSupportedAlgs; i++) { + printd("alg: 0x%08x\n", algs.palgSupportedAlgs[i]); + } + } +#endif + } else { + printe("ERROR: AcquireCredentialsHandle: 0x%x\n", SecStatus); + free(hCred); + hCred = NULL; + } + return hCred; +} + +void hssl_ctx_free(hssl_ctx_t ssl_ctx) +{ + SECURITY_STATUS sec_status = FreeCredentialsHandle(ssl_ctx); + if (sec_status != SEC_E_OK) { + printe("free_cred_handle FreeCredentialsHandle %d\n", sec_status); + } +} + +static void init_sec_buffer(SecBuffer* secure_buffer, unsigned long type, unsigned long len, void* buffer) +{ + secure_buffer->BufferType = type; + secure_buffer->cbBuffer = len; + secure_buffer->pvBuffer = buffer; +} + +static void init_sec_buffer_desc(SecBufferDesc* secure_buffer_desc, unsigned long version, unsigned long num_buffers, SecBuffer* buffers) +{ + secure_buffer_desc->ulVersion = version; + secure_buffer_desc->cBuffers = num_buffers; + secure_buffer_desc->pBuffers = buffers; +} + +/* enum for the nonblocking SSL connection state machine */ +typedef enum { + ssl_connect_1, + ssl_connect_2, + ssl_connect_2_reading, + ssl_connect_2_writing, + ssl_connect_3, + ssl_connect_done +} ssl_connect_state; + +struct wintls_s { + hssl_ctx_t ssl_ctx; // CredHandle + int fd; + union { + ssl_connect_state state2; + ssl_connect_state connecting_state; + }; + SecHandle sechandle; + SecPkgContext_StreamSizes stream_sizes_; + size_t buffer_to_decrypt_offset_; + size_t dec_len_; + char encrypted_buffer_[TLS_SOCKET_BUFFER_SIZE]; + char buffer_to_decrypt_[TLS_SOCKET_BUFFER_SIZE]; + char decrypted_buffer_[TLS_SOCKET_BUFFER_SIZE + TLS_SOCKET_BUFFER_SIZE]; + char* sni; +}; + +hssl_t hssl_new(hssl_ctx_t ssl_ctx, int fd) +{ + struct wintls_s* ret = malloc(sizeof(*ret)); + if (ret) { + memset(ret, 0, sizeof(*ret)); + ret->ssl_ctx = ssl_ctx; + ret->fd = fd; + ret->sechandle.dwLower = 0; + ret->sechandle.dwUpper = 0; + } + return ret; +} + +void hssl_free(hssl_t _ssl) +{ + struct wintls_s* ssl = _ssl; + SECURITY_STATUS sec_status = DeleteSecurityContext(&ssl->sechandle); + if (sec_status != SEC_E_OK) { + printe("hssl_free DeleteSecurityContext %d", sec_status); + } + if (ssl->sni) { + free(ssl->sni); + } + free(ssl); +} + +static void free_all_buffers(SecBufferDesc* secure_buffer_desc) +{ + for (unsigned long i = 0; i < secure_buffer_desc->cBuffers; ++i) { + void* buffer = secure_buffer_desc->pBuffers[i].pvBuffer; + if (buffer != NULL) { + FreeContextBuffer(buffer); + } + } +} + +static int __sendwrapper(SOCKET fd, const char* buf, size_t len, int flags) +{ + int left = len; + int offset = 0; + while (left > 0) { + int bytes_sent = send(fd, buf + offset, left, flags); + if (bytes_sent == 0 || (bytes_sent == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK && WSAGetLastError() != WSAEINTR)) { + break; + } + if (bytes_sent > 0) { + offset += bytes_sent; + left -= bytes_sent; + } + } + return offset; +} + +static int __recvwrapper(SOCKET fd, char* buf, int len, int flags) +{ + int ret = 0; + do { + ret = recv(fd, buf, len, flags); + } while (ret == SOCKET_ERROR && WSAGetLastError() == WSAEINTR); + return ret; +} + +int hssl_accept(hssl_t ssl) +{ + int ret = HSSL_ERROR; + struct wintls_s* winssl = ssl; + bool authn_completed = false; + + // Input buffer + char buffer_in[TLS_SOCKET_BUFFER_SIZE]; + + SecBuffer secure_buffer_in[2] = { 0 }; + init_sec_buffer(&secure_buffer_in[0], SECBUFFER_TOKEN, TLS_SOCKET_BUFFER_SIZE, buffer_in); + init_sec_buffer(&secure_buffer_in[1], SECBUFFER_EMPTY, 0, NULL); + + SecBufferDesc secure_buffer_desc_in = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc_in, SECBUFFER_VERSION, 2, secure_buffer_in); + + // Output buffer + SecBuffer secure_buffer_out[3] = { 0 }; + init_sec_buffer(&secure_buffer_out[0], SECBUFFER_TOKEN, 0, NULL); + init_sec_buffer(&secure_buffer_out[1], SECBUFFER_ALERT, 0, NULL); + init_sec_buffer(&secure_buffer_out[2], SECBUFFER_EMPTY, 0, NULL); + + SecBufferDesc secure_buffer_desc_out = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc_out, SECBUFFER_VERSION, 3, secure_buffer_out); + + unsigned long context_requirements = ASC_REQ_ALLOCATE_MEMORY | ASC_REQ_CONFIDENTIALITY; + + // We use ASC_REQ_ALLOCATE_MEMORY which means the buffers will be allocated for us, we need to make sure we free them. + + ULONG context_attributes = 0; + TimeStamp life_time = { 0 }; + + secure_buffer_in[0].cbBuffer = __recvwrapper(winssl->fd, (char*)secure_buffer_in[0].pvBuffer, TLS_SOCKET_BUFFER_SIZE, 0); + // printd("%s recv %d %d\n", __func__, secure_buffer_in[0].cbBuffer, WSAGetLastError()); + if (secure_buffer_in[0].cbBuffer == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK) { + ret = HSSL_WANT_READ; + } else if (secure_buffer_in[0].cbBuffer > 0) { + SECURITY_STATUS sec_status = AcceptSecurityContext(winssl->ssl_ctx, winssl->state2 == 0 ? NULL : &winssl->sechandle, &secure_buffer_desc_in, + context_requirements, 0, &winssl->sechandle, &secure_buffer_desc_out, &context_attributes, &life_time); + + winssl->state2 = 1; + // printd("establish_server_security_context AcceptSecurityContext %x\n", sec_status); + + if (secure_buffer_out[0].cbBuffer > 0) { + int rc = __sendwrapper(winssl->fd, (const char*)secure_buffer_out[0].pvBuffer, secure_buffer_out[0].cbBuffer, 0); + if (rc != secure_buffer_out[0].cbBuffer) { + goto END; + } + } + + switch (sec_status) { + case SEC_E_OK: + ret = HSSL_OK; + authn_completed = true; + break; + case SEC_I_CONTINUE_NEEDED: + ret = HSSL_WANT_READ; + break; + case SEC_I_COMPLETE_AND_CONTINUE: + case SEC_I_COMPLETE_NEEDED: { + SECURITY_STATUS complete_sec_status = SEC_E_OK; + complete_sec_status = CompleteAuthToken(&winssl->sechandle, &secure_buffer_desc_out); + if (complete_sec_status != SEC_E_OK) { + printe("establish_server_security_context CompleteAuthToken %x\n", complete_sec_status); + goto END; + } + + if (sec_status == SEC_I_COMPLETE_NEEDED) { + authn_completed = true; + ret = HSSL_OK; + } else { + ret = HSSL_WANT_READ; + } + break; + } + default: + break; + } + } +END: + free_all_buffers(&secure_buffer_desc_out); + + if (authn_completed) { + SECURITY_STATUS sec_status = QueryContextAttributes(&winssl->sechandle, SECPKG_ATTR_STREAM_SIZES, &winssl->stream_sizes_); + if (sec_status != SEC_E_OK) { + printe("get_stream_sizes QueryContextAttributes %d\n", sec_status); + } + } + return ret; +} + +static int schannel_connect_step1(struct wintls_s* ssl) +{ + int ret = 0; + ULONG context_attributes = 0; + unsigned long context_requirements = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT | ISC_REQ_CONFIDENTIALITY | ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM; + + TimeStamp life_time = { 0 }; + + SecBuffer secure_buffer_out[1] = { 0 }; + init_sec_buffer(&secure_buffer_out[0], SECBUFFER_EMPTY, 0, NULL); + + SecBufferDesc secure_buffer_desc_out = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc_out, SECBUFFER_VERSION, 1, secure_buffer_out); + + SECURITY_STATUS sec_status = InitializeSecurityContext(ssl->ssl_ctx, NULL, ssl->sni, context_requirements, 0, 0, NULL, 0, &ssl->sechandle, + &secure_buffer_desc_out, &context_attributes, &life_time); + + if (sec_status != SEC_I_CONTINUE_NEEDED) { + printe("1InitializeSecurityContext: %x\n", sec_status); + } + + if (secure_buffer_out[0].cbBuffer > 0) { + int rc = __sendwrapper(ssl->fd, (const char*)secure_buffer_out[0].pvBuffer, secure_buffer_out[0].cbBuffer, 0); + if (rc != secure_buffer_out[0].cbBuffer) { + // TODO: Handle the error + printe("%s :send failed\n", __func__); + ret = -1; + } else { + printd("%s :send len=%d\n", __func__, rc); + ssl->connecting_state = ssl_connect_2; + } + } + free_all_buffers(&secure_buffer_desc_out); + return ret; +} + +static int schannel_connect_step2(struct wintls_s* ssl) +{ + int ret = HSSL_ERROR; + ULONG context_attributes = 0; + bool verify_server_cert = 0; + + unsigned long context_requirements = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT | ISC_REQ_CONFIDENTIALITY | ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM; + if (!verify_server_cert) { + context_requirements |= ISC_REQ_MANUAL_CRED_VALIDATION; + } + + TimeStamp life_time = { 0 }; + + // Allocate a temporary buffer for input + char* buffer_in = malloc(TLS_SOCKET_BUFFER_SIZE); + if (buffer_in == NULL) { + printe("schannel_connect_step2: Memory allocation failed\n"); + return HSSL_ERROR; + } + + int offset = 0; + bool skip_recv = false; + bool authn_complete = false; + while (!authn_complete) { + int in_buffer_size = 0; + + if (!skip_recv) { + int received = __recvwrapper(ssl->fd, buffer_in + offset, TLS_SOCKET_BUFFER_SIZE, 0); + if (received == SOCKET_ERROR) { + if (WSAGetLastError() == WSAEWOULDBLOCK) { + ret = HSSL_WANT_READ; + } else { + printe("schannel_connect_step2: Receive failed\n"); + } + break; + } else if (received == 0) { + printe("schannel_connect_step2: peer closed\n"); + break; + } + in_buffer_size = received + offset; + } else { + in_buffer_size = offset; + } + + skip_recv = false; + offset = 0; + + // Input buffer + SecBuffer secure_buffer_in[4] = { 0 }; + init_sec_buffer(&secure_buffer_in[0], SECBUFFER_TOKEN, in_buffer_size, buffer_in); + init_sec_buffer(&secure_buffer_in[1], SECBUFFER_EMPTY, 0, NULL); + + SecBufferDesc secure_buffer_desc_in = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc_in, SECBUFFER_VERSION, 2, secure_buffer_in); + + // Output buffer + SecBuffer secure_buffer_out[3] = { 0 }; + init_sec_buffer(&secure_buffer_out[0], SECBUFFER_TOKEN, 0, NULL); + init_sec_buffer(&secure_buffer_out[1], SECBUFFER_ALERT, 0, NULL); + init_sec_buffer(&secure_buffer_out[2], SECBUFFER_EMPTY, 0, NULL); + + SecBufferDesc secure_buffer_desc_out = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc_out, SECBUFFER_VERSION, 3, secure_buffer_out); + printd("h2:%d\n", in_buffer_size); + SECURITY_STATUS sec_status = InitializeSecurityContext(ssl->ssl_ctx, &ssl->sechandle, ssl->sni, context_requirements, 0, 0, &secure_buffer_desc_in, 0, + &ssl->sechandle, &secure_buffer_desc_out, &context_attributes, &life_time); + + printd("h2 0x%x inbuf[1] type=%d %d inbuf[0]=%d\n", sec_status, secure_buffer_in[1].BufferType, secure_buffer_in[1].cbBuffer, secure_buffer_in[0].cbBuffer); + if (sec_status == SEC_E_OK || sec_status == SEC_I_CONTINUE_NEEDED) { + // for (size_t i = 0; i < 3; i++) { + // printd("obuf[%zu] type=%d %d\n", i, secure_buffer_out[i].BufferType, secure_buffer_out[i].cbBuffer); + // } + if (secure_buffer_out[0].cbBuffer > 0) { + int rc = __sendwrapper(ssl->fd, (const char*)secure_buffer_out[0].pvBuffer, secure_buffer_out[0].cbBuffer, 0); + if (rc != secure_buffer_out[0].cbBuffer) { + printe("schannel_connect_step2: Send failed\n"); + // TODO: Handle the error + break; + } + // printd("%s :send ok\n", __func__); + } + + if (sec_status == SEC_I_CONTINUE_NEEDED) { + if (secure_buffer_in[1].BufferType == SECBUFFER_EXTRA && secure_buffer_in[1].cbBuffer > 0) { + offset = secure_buffer_in[0].cbBuffer - secure_buffer_in[1].cbBuffer; + memmove(buffer_in, buffer_in + offset, secure_buffer_in[1].cbBuffer); + offset = secure_buffer_in[1].cbBuffer; + skip_recv = true; + } + } else if (sec_status == SEC_E_OK) { + authn_complete = true; + ret = HSSL_OK; + ssl->connecting_state = ssl_connect_3; + } + } else if (sec_status == SEC_E_INCOMPLETE_MESSAGE) { + offset = secure_buffer_in[0].cbBuffer; + } else { + printe("2InitializeSecurityContext: 0x%x\n", sec_status); + break; + } + + free_all_buffers(&secure_buffer_desc_out); + } + // END: + free(buffer_in); // Free the temporary buffer + return ret; +} + +static void dumpconninfo(SecHandle* sechandle) +{ + SECURITY_STATUS Status; + SecPkgContext_ConnectionInfo ConnectionInfo; + + Status = QueryContextAttributes(sechandle, + SECPKG_ATTR_CONNECTION_INFO, + (PVOID)&ConnectionInfo); + if (Status != SEC_E_OK) { + printe("Error 0x%x querying connection info\n", Status); + return; + } + + printd("\n"); + + switch (ConnectionInfo.dwProtocol) { + case SP_PROT_TLS1_CLIENT: + printd("Protocol: TLS1\n"); + break; + + case SP_PROT_SSL3_CLIENT: + printd("Protocol: SSL3\n"); + break; + + case SP_PROT_SSL2_CLIENT: + printd("Protocol: SSL2\n"); + break; + + case SP_PROT_PCT1_CLIENT: + printd("Protocol: PCT\n"); + break; + + default: + printd("Protocol: 0x%x\n", ConnectionInfo.dwProtocol); + } + + switch (ConnectionInfo.aiCipher) { + case CALG_RC4: + printd("Cipher: RC4\n"); + break; + + case CALG_3DES: + printd("Cipher: Triple DES\n"); + break; + + case CALG_RC2: + printd("Cipher: RC2\n"); + break; + + case CALG_DES: + case CALG_CYLINK_MEK: + printd("Cipher: DES\n"); + break; + + case CALG_SKIPJACK: + printd("Cipher: Skipjack\n"); + break; + + case CALG_AES_128: + printd("Cipher: aes128\n"); + break; + default: + printd("Cipher: 0x%x\n", ConnectionInfo.aiCipher); + } + + printd("Cipher strength: %d\n", ConnectionInfo.dwCipherStrength); + + switch (ConnectionInfo.aiHash) { + case CALG_MD5: + printd("Hash: MD5\n"); + break; + + case CALG_SHA: + printd("Hash: SHA\n"); + break; + + default: + printd("Hash: 0x%x\n", ConnectionInfo.aiHash); + } + + printd("Hash strength: %d\n", ConnectionInfo.dwHashStrength); + + switch (ConnectionInfo.aiExch) { + case CALG_RSA_KEYX: + case CALG_RSA_SIGN: + printd("Key exchange: RSA\n"); + break; + + case CALG_KEA_KEYX: + printd("Key exchange: KEA\n"); + break; + + case CALG_DH_EPHEM: + printd("Key exchange: DH Ephemeral\n"); + break; + + default: + printd("Key exchange: 0x%x\n", ConnectionInfo.aiExch); + } + + printd("Key exchange strength: %d\n", ConnectionInfo.dwExchStrength); +} + +int hssl_connect(hssl_t _ssl) +{ + int ret = 0; + struct wintls_s* ssl = _ssl; + if (ssl->connecting_state == ssl_connect_1) { + ret = schannel_connect_step1(ssl); + } + if (!ret && ssl->connecting_state == ssl_connect_2) { + ret = schannel_connect_step2(ssl); + } + // printd("%s %x\n", __func__, ret); + if (!ret) { + if (ssl->connecting_state == ssl_connect_3) { + // ret = schannel_connect_step3(ssl); + } + SECURITY_STATUS sec_status = QueryContextAttributes(&ssl->sechandle, SECPKG_ATTR_STREAM_SIZES, &ssl->stream_sizes_); + if (sec_status != SEC_E_OK) { + printe("get_stream_sizes QueryContextAttributes %d\n", sec_status); + } else { + printd("stream_sizes bs:%d h:%d t:%d max:%d bfs:%d\n", ssl->stream_sizes_.cbBlockSize, ssl->stream_sizes_.cbHeader, ssl->stream_sizes_.cbTrailer, ssl->stream_sizes_.cbMaximumMessage, ssl->stream_sizes_.cBuffers); + } + dumpconninfo(&ssl->sechandle); + } + return ret; +} + +static int decrypt_message(SecHandle security_context, unsigned long* extra, char* in_buf, int in_len, char* out_buf, int out_len) +{ + printd("%s: inlen=%d\n", __func__, in_len); + // Initialize the secure buffers + SecBuffer secure_buffers[4] = { 0 }; + init_sec_buffer(&secure_buffers[0], SECBUFFER_DATA, in_len, in_buf); + init_sec_buffer(&secure_buffers[1], SECBUFFER_EMPTY, 0, NULL); + init_sec_buffer(&secure_buffers[2], SECBUFFER_EMPTY, 0, NULL); + init_sec_buffer(&secure_buffers[3], SECBUFFER_EMPTY, 0, NULL); + + // Initialize the secure buffer descriptor + SecBufferDesc secure_buffer_desc = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc, SECBUFFER_VERSION, 4, secure_buffers); + + // Decrypt the message using the security context + SECURITY_STATUS sec_status = DecryptMessage(&security_context, &secure_buffer_desc, 0, NULL); + + for (size_t i = 1; i < 4; i++) { + printd("%d: %u %u\n", i, secure_buffers[i].BufferType, secure_buffers[i].cbBuffer); + } + if (sec_status == SEC_E_INCOMPLETE_MESSAGE) { + printe("decrypt_message SEC_E_INCOMPLETE_MESSAGE\n"); + return -1; + } else if (sec_status == SEC_E_DECRYPT_FAILURE) { + printe("decrypt_message ignore SEC_E_DECRYPT_FAILURE\n"); + return 0; + } else if (sec_status == SEC_E_UNSUPPORTED_FUNCTION) { + printe("decrypt_message ignore SEC_E_UNSUPPORTED_FUNCTION\n"); + return 0; + } + + if (sec_status != SEC_E_OK) { + printe("decrypt_message DecryptMessage: 0x%x\n", sec_status); + return -1; + } + if (secure_buffers[3].BufferType == SECBUFFER_EXTRA && secure_buffers[3].cbBuffer > 0) { + *extra = secure_buffers[3].cbBuffer; + } + memcpy(out_buf, secure_buffers[1].pvBuffer, secure_buffers[1].cbBuffer); + // printd("ob:%s\n", out_buf); + return secure_buffers[1].cbBuffer; +} + +int hssl_read(hssl_t _ssl, void* buf, int len) +{ + struct wintls_s* ssl = _ssl; + printd("%s: dec_len_= %zu\n", __func__, ssl->dec_len_); + if (ssl->dec_len_ > 0) { + if (buf == NULL) { + return 0; + } + int decrypted = MIN(ssl->dec_len_, len); + memcpy(buf, ssl->decrypted_buffer_, (size_t)decrypted); + ssl->dec_len_ -= decrypted; + if (ssl->dec_len_) { + memmove(ssl->decrypted_buffer_, ssl->decrypted_buffer_ + decrypted, (size_t)ssl->dec_len_); + } else { + // hssl_read(_ssl, NULL, 0); + } + return decrypted; + } + + // We might have leftovers, an incomplete message from a previous call. + // Calculate the available buffer length for tcp recv. + int recv_max_len = TLS_SOCKET_BUFFER_SIZE - ssl->buffer_to_decrypt_offset_; + int bytes_received = __recvwrapper(ssl->fd, ssl->buffer_to_decrypt_ + ssl->buffer_to_decrypt_offset_, recv_max_len, 0); + // printd("%s recv %d %d\n", __func__, bytes_received, WSAGetLastError()); + if (bytes_received == SOCKET_ERROR) { + if (WSAGetLastError() == WSAEWOULDBLOCK) { + bytes_received = 0; + return 0; + } else { + return -1; + } + } else if (bytes_received == 0) { + return 0; + } + + int encrypted_buffer_len = ssl->buffer_to_decrypt_offset_ + bytes_received; + ssl->buffer_to_decrypt_offset_ = 0; + while (true) { + // printd("%s:buffer_to_decrypt_offset_ = %d , encrypted_buffer_len= %d\n", __func__, ssl->buffer_to_decrypt_offset_, encrypted_buffer_len); + if (ssl->buffer_to_decrypt_offset_ >= encrypted_buffer_len) { + // Reached the encrypted buffer length, we decrypted everything so we can stop. + break; + } + unsigned long extra = 0; + int decrypted_len = decrypt_message(ssl->sechandle, &extra, ssl->buffer_to_decrypt_ + ssl->buffer_to_decrypt_offset_, + encrypted_buffer_len - ssl->buffer_to_decrypt_offset_, ssl->decrypted_buffer_ + ssl->dec_len_, + TLS_SOCKET_BUFFER_SIZE + TLS_SOCKET_BUFFER_SIZE - ssl->dec_len_); + + if (decrypted_len == -1) { + // Incomplete message, we shuold keep it so it will be decrypted on the next call to recv(). + // Shift the remaining buffer to the beginning and break the loop. + + memmove(ssl->buffer_to_decrypt_, ssl->buffer_to_decrypt_ + ssl->buffer_to_decrypt_offset_, encrypted_buffer_len - ssl->buffer_to_decrypt_offset_); + + break; + } + + ssl->dec_len_ += decrypted_len; + ssl->buffer_to_decrypt_offset_ = encrypted_buffer_len - extra; + } + ssl->buffer_to_decrypt_offset_ = encrypted_buffer_len - ssl->buffer_to_decrypt_offset_; + return hssl_read(_ssl, buf, len); +} + +int hssl_write(hssl_t _ssl, const void* buf, int len) +{ + struct wintls_s* ssl = _ssl; + SecPkgContext_StreamSizes* stream_sizes = &ssl->stream_sizes_; + if (len > (int)stream_sizes->cbMaximumMessage) { + len = stream_sizes->cbMaximumMessage; + } + + // Calculate the minimum output buffer length + int min_out_len = stream_sizes->cbHeader + len + stream_sizes->cbTrailer; + if (min_out_len > TLS_SOCKET_BUFFER_SIZE) { + printe("encrypt_message: Output buffer is too small"); + return -1; + } + + // Initialize the secure buffers + SecBuffer secure_buffers[4] = { 0 }; + init_sec_buffer(&secure_buffers[0], SECBUFFER_STREAM_HEADER, stream_sizes->cbHeader, ssl->encrypted_buffer_); + init_sec_buffer(&secure_buffers[1], SECBUFFER_DATA, len, ssl->encrypted_buffer_ + stream_sizes->cbHeader); + init_sec_buffer(&secure_buffers[2], SECBUFFER_STREAM_TRAILER, stream_sizes->cbTrailer, ssl->encrypted_buffer_ + stream_sizes->cbHeader + len); + init_sec_buffer(&secure_buffers[3], SECBUFFER_EMPTY, 0, NULL); + + // Initialize the secure buffer descriptor + SecBufferDesc secure_buffer_desc = { 0 }; + init_sec_buffer_desc(&secure_buffer_desc, SECBUFFER_VERSION, 4, secure_buffers); + + // Copy the input buffer to the data buffer + memcpy(secure_buffers[1].pvBuffer, buf, len); + + // Encrypt the message using the security context + SECURITY_STATUS sec_status = EncryptMessage(&ssl->sechandle, 0, &secure_buffer_desc, 0); + + // Check the encryption status and the data buffer length + if (sec_status != SEC_E_OK) { + printe("encrypt_message EncryptMessage %d\n", sec_status); + return -1; + } + if (secure_buffers[1].cbBuffer > (unsigned int)len) { + printe("encrypt_message: Data buffer is too large\n"); + return -1; + } + + // Adjust the minimum output buffer length + min_out_len = secure_buffers[0].cbBuffer + secure_buffers[1].cbBuffer + secure_buffers[2].cbBuffer; + printd("enc02: %d %d\n", secure_buffers[0].cbBuffer, secure_buffers[2].cbBuffer); + + // Send the encrypted message to the socket + int offset = __sendwrapper(ssl->fd, ssl->encrypted_buffer_, min_out_len, 0); + // Check the send result + if (offset != min_out_len) { + printe("hssl_write: Send failed\n"); + return -1; + } else { + printd("hssl_write: Send %d\n", min_out_len); + } + + // Return the number of bytes sent excluding the header and trailer + return offset - secure_buffers[0].cbBuffer - secure_buffers[2].cbBuffer; +} + +int hssl_close(hssl_t _ssl) +{ + return 0; +} + +int hssl_set_sni_hostname(hssl_t _ssl, const char* hostname) +{ + struct wintls_s* ssl = _ssl; + ssl->sni = strdup(hostname); + return 0; +} + +#endif // WITH_WINTLS diff --git a/3rdPartner/libhv/unittest/CMakeLists.txt b/3rdPartner/libhv/unittest/CMakeLists.txt new file mode 100644 index 0000000..4e469e6 --- /dev/null +++ b/3rdPartner/libhv/unittest/CMakeLists.txt @@ -0,0 +1,118 @@ +add_definitions(-DHV_SOURCE=1) + +# ------base------ +add_executable(hbase_test hbase_test.c ../base/hbase.c) +target_include_directories(hbase_test PRIVATE .. ../base) + +add_executable(mkdir_p mkdir_test.c ../base/hbase.c) +target_include_directories(mkdir_p PRIVATE .. ../base) + +add_executable(rmdir_p rmdir_test.c ../base/hbase.c) +target_include_directories(rmdir_p PRIVATE .. ../base) + +add_executable(date date_test.c ../base/htime.c) +target_include_directories(date PRIVATE .. ../base) + +add_executable(hatomic_test hatomic_test.c) +target_include_directories(hatomic_test PRIVATE .. ../base) +target_link_libraries(hatomic_test -lpthread) + +add_executable(hthread_test hthread_test.cpp) +target_include_directories(hthread_test PRIVATE .. ../base) +target_link_libraries(hthread_test -lpthread) + +add_executable(hmutex_test hmutex_test.c ../base/htime.c) +target_include_directories(hmutex_test PRIVATE .. ../base) +target_link_libraries(hmutex_test -lpthread) + +add_executable(connect_test connect_test.c ../base/hsocket.c ../base/htime.c) +target_include_directories(connect_test PRIVATE .. ../base) + +add_executable(socketpair_test socketpair_test.c ../base/hsocket.c) +target_include_directories(socketpair_test PRIVATE .. ../base) + +# ------util------ +add_executable(base64 base64_test.c ../util/base64.c) +target_include_directories(base64 PRIVATE .. ../util) + +add_executable(md5 md5_test.c ../util/md5.c) +target_include_directories(md5 PRIVATE .. ../util) + +add_executable(sha1 sha1_test.c ../util/sha1.c) +target_include_directories(sha1 PRIVATE .. ../util) + +# ------cpputil------ +add_executable(hstring_test hstring_test.cpp ../cpputil/hstring.cpp) +target_include_directories(hstring_test PRIVATE .. ../base ../cpputil) + +add_executable(hpath_test hpath_test.cpp ../cpputil/hpath.cpp) +target_include_directories(hpath_test PRIVATE .. ../base ../cpputil) + +add_executable(hurl_test hurl_test.cpp ../cpputil/hurl.cpp ../base/hbase.c) +target_include_directories(hurl_test PRIVATE .. ../base ../cpputil) + +add_executable(ls listdir_test.cpp ../cpputil/hdir.cpp) +target_include_directories(ls PRIVATE .. ../base ../cpputil) + +add_executable(ifconfig ifconfig_test.cpp ../cpputil/ifconfig.cpp) +target_include_directories(ifconfig PRIVATE .. ../base ../cpputil) + +add_executable(defer_test defer_test.cpp) +target_include_directories(defer_test PRIVATE .. ../base ../cpputil) + +add_executable(synchronized_test synchronized_test.cpp) +target_include_directories(synchronized_test PRIVATE .. ../base ../cpputil) +target_link_libraries(synchronized_test -lpthread) + +add_executable(threadpool_test threadpool_test.cpp) +target_include_directories(threadpool_test PRIVATE .. ../base ../cpputil) +target_link_libraries(threadpool_test -lpthread) + +add_executable(objectpool_test objectpool_test.cpp) +target_include_directories(objectpool_test PRIVATE .. ../base ../cpputil) +target_link_libraries(objectpool_test -lpthread) + +# ------protocol------ +add_executable(nslookup nslookup_test.c ../protocol/dns.c) +target_include_directories(nslookup PRIVATE .. ../base ../protocol) + +add_executable(ping ping_test.c ../protocol/icmp.c ../base/hsocket.c ../base/htime.c) +target_compile_definitions(ping PRIVATE -DPRINT_DEBUG) +target_include_directories(ping PRIVATE .. ../base ../protocol) + +add_executable(ftp ftp_test.c ../protocol/ftp.c ../base/hsocket.c) +target_include_directories(ftp PRIVATE .. ../base ../protocol) + +add_executable(sendmail sendmail_test.c ../protocol/smtp.c ../base/hsocket.c ../util/base64.c) +target_include_directories(sendmail PRIVATE .. ../base ../protocol ../util) + +if(UNIX) +add_executable(webbench webbench.c) +endif() + +add_custom_target(unittest DEPENDS + mkdir_p + rmdir_p + date + hatomic_test + hthread_test + hmutex_test + connect_test + socketpair_test + base64 + md5 + sha1 + hstring_test + hpath_test + hurl_test + ls + ifconfig + defer_test + synchronized_test + threadpool_test + objectpool_test + nslookup + ping + ftp + sendmail +) diff --git a/3rdPartner/libhv/unittest/base64_test.c b/3rdPartner/libhv/unittest/base64_test.c new file mode 100644 index 0000000..2574008 --- /dev/null +++ b/3rdPartner/libhv/unittest/base64_test.c @@ -0,0 +1,118 @@ +/* + * @build: gcc -o bin/base64 unittest/base64_test.c util/base64.c -I. -Iutil + * + */ + +#include +#include +#include +#include + +#include "base64.h" + +static void test() { + unsigned char in[] = "0123456789"; + // test encode + int encoded_size = BASE64_ENCODE_OUT_SIZE(10); + char* encoded = (char*)malloc(encoded_size + 1); + encoded_size = hv_base64_encode(in, 10, encoded); + encoded[encoded_size] = '\0'; + assert(strcmp(encoded, "MDEyMzQ1Njc4OQ==") == 0); + // test decode + int decoded_size = BASE64_DECODE_OUT_SIZE(encoded_size); + unsigned char* decoded = (unsigned char*)malloc(decoded_size); + decoded_size = hv_base64_decode(encoded, encoded_size, decoded); + assert(decoded_size == 10 && memcmp(in, decoded, decoded_size) == 0); + + free(encoded); + free(decoded); +} + +int main(int argc, char* argv[]) { + test(); + + if (argc < 3) { + printf("Usage: base64 infile outfile\n"); + printf(" base64 -d infile outfile\n"); + return -10; + } + else if (argc == 3) { + // encode file + const char* infile = argv[1]; + const char* outfile = argv[2]; + + FILE* infp = fopen(infile, "rb"); + if (infp == NULL) { + printf("Open file '%s' failed!\n", infile); + return -20; + } + fseek(infp, 0, SEEK_END); + long filesize = ftell(infp); + // printf("filesize=%ld\n", filesize); + fseek(infp, 0, SEEK_SET); + unsigned char* filebuf = (unsigned char*)malloc(filesize); + size_t nread = fread(filebuf, 1, filesize, infp); + assert(nread == filesize); + + int encoded_size = BASE64_ENCODE_OUT_SIZE(filesize); + char* encoded = (char*)malloc(encoded_size + 1); + encoded_size = hv_base64_encode(filebuf, filesize, encoded); + encoded[encoded_size] = '\0'; + + FILE* outfp = fopen(outfile, "w"); + if (outfp == NULL) { + printf("Save file '%s' failed!\n", infile); + return -20; + } + size_t nwrite = fwrite(encoded, 1, encoded_size, outfp); + assert(nwrite == encoded_size); + + free(filebuf); + free(encoded); + fclose(infp); + fclose(outfp); + } + else if (argc == 4) { + const char* flags = argv[1]; + if (flags[0] == '-' && flags[1] == 'd') { + // decode file + const char* infile = argv[2]; + const char* outfile = argv[3]; + FILE* infp = fopen(infile, "r"); + if (infp == NULL) { + printf("Open file '%s' failed!\n", infile); + return -20; + } + fseek(infp, 0, SEEK_END); + long filesize = ftell(infp); + // printf("filesize=%ld\n", filesize); + fseek(infp, 0, SEEK_SET); + char* filebuf = (char*)malloc(filesize); + size_t nread = fread(filebuf, 1, filesize, infp); + assert(nread == filesize); + + int decoded_size = BASE64_DECODE_OUT_SIZE(filesize); + unsigned char* decoded = (unsigned char*)malloc(decoded_size); + decoded_size = hv_base64_decode(filebuf, filesize, decoded); + + FILE* outfp = fopen(outfile, "wb"); + if (outfp == NULL) { + printf("Save file '%s' failed!\n", infile); + return -20; + } + size_t nwrite = fwrite(decoded, 1, decoded_size, outfp); + assert(nwrite == decoded_size); + + free(filebuf); + free(decoded); + fclose(infp); + fclose(outfp); + } + else { + printf("Unrecognized flags '%s'\n", flags); + return -40; + } + } + + return 0; +} diff --git a/3rdPartner/libhv/unittest/connect_test.c b/3rdPartner/libhv/unittest/connect_test.c new file mode 100644 index 0000000..9a1792e --- /dev/null +++ b/3rdPartner/libhv/unittest/connect_test.c @@ -0,0 +1,29 @@ +#include "hsocket.h" +#include "htime.h" + +int main(int argc, char* argv[]) { + if (argc < 3) { + printf("Usage: cmd ip port\n"); + return -10; + } + + const char* ip = argv[1]; + int port = atoi(argv[2]); + + unsigned int start_time = gettick_ms(); + int ret = ConnectNonblock(ip, port); + unsigned int end_time = gettick_ms(); + printf("ConnectNonblock[%s:%d] retval=%d cost=%ums\n", ip, port, ret, end_time-start_time); + + start_time = gettick_ms(); + ret = ConnectTimeout(ip, port, 3000); + end_time = gettick_ms(); + printf("ConnectTimeout[%s:%d] retval=%d cost=%ums\n", ip, port, ret, end_time-start_time); + + start_time = gettick_ms(); + ret = Connect(ip, port, 0); + end_time = gettick_ms(); + printf("ConnectBlock[%s:%d] retval=%d cost=%ums\n", ip, port, ret, end_time-start_time); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/date_test.c b/3rdPartner/libhv/unittest/date_test.c new file mode 100644 index 0000000..3a74398 --- /dev/null +++ b/3rdPartner/libhv/unittest/date_test.c @@ -0,0 +1,17 @@ +#include "htime.h" + +int main(int argc, char* argv[]) { + datetime_t dt = datetime_now(); + char buf1[DATETIME_FMT_BUFLEN]; + datetime_fmt(&dt, buf1); + puts(buf1); + datetime_fmt_iso(&dt, buf1); + puts(buf1); + + time_t ts = datetime_mktime(&dt); + char buf2[GMTIME_FMT_BUFLEN]; + gmtime_fmt(ts, buf2); + puts(buf2); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/defer_test.cpp b/3rdPartner/libhv/unittest/defer_test.cpp new file mode 100644 index 0000000..48d43ab --- /dev/null +++ b/3rdPartner/libhv/unittest/defer_test.cpp @@ -0,0 +1,19 @@ +#include + +#include "hscope.h" + +int main() { + defer ( + printf("1\n"); + printf("2\n"); + ) + + defer ( + printf("3\n"); + printf("4\n"); + ) + + defer(printf("hello\n");) + + return 0; +} diff --git a/3rdPartner/libhv/unittest/ftp_test.c b/3rdPartner/libhv/unittest/ftp_test.c new file mode 100644 index 0000000..ec5dbca --- /dev/null +++ b/3rdPartner/libhv/unittest/ftp_test.c @@ -0,0 +1,88 @@ +#include +#include +#include + +#include "ftp.h" + +void print_help() { + printf("Usage:\n\ +help\n\ +login \n\ +download \n\ +upload \n\ +quit\n"); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: ftp host [port]\n"); + return 0; + } + const char* host = argv[1]; + int port = FTP_COMMAND_PORT; + if (argc >= 3) { + port = atoi(argv[2]); + } + int ret = 0; + ftp_handle_t hftp; + ret = ftp_connect(&hftp, host, port); + if (ret != 0) { + printf("ftp connect failed!\n"); + return ret; + } + print_help(); + + char cmd[256] = {0}; + char param1[256] = {0}; + char param2[256] = {0}; + while (1) { + printf("> "); + scanf("%s", cmd); + if (strncmp(cmd, "help", 4) == 0) { + print_help(); + } + else if (strncmp(cmd, "login", 5) == 0) { + scanf("%s", param1); + scanf("%s", param2); + //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2); + const char* username = param1; + const char* password = param2; + ret = ftp_login(&hftp, username, password); + printf("%s", hftp.recvbuf); + if (ret != 0) break; + } + else if (strncmp(cmd, "upload", 6) == 0) { + scanf("%s", param1); + scanf("%s", param2); + //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2); + const char* localfile = param1; + const char* remotefile = param2; + ret = ftp_upload(&hftp, localfile, remotefile); + printf("%s", hftp.recvbuf); + if (ret != 0) break; + } + else if (strncmp(cmd, "download", 8) == 0) { + scanf("%s", param1); + scanf("%s", param2); + //printf("cmd=%s param1=%s param2=%s\n", cmd, param1, param2); + const char* remotefile = param1; + const char* localfile = param2; + ret = ftp_download(&hftp, remotefile, localfile); + printf("%s", hftp.recvbuf); + if (ret != 0) break; + } + else if (strncmp(cmd, "quit", 4) == 0) { + break; + } + else { + scanf("%s", param1); + //printf("cmd=%s param=%s\n", cmd, param1); + ret = ftp_exec(&hftp, cmd, param1); + printf("%s", hftp.recvbuf); + } + } + printf("QUIT\n"); + ftp_quit(&hftp); + printf("%s", hftp.recvbuf); + return 0; +} diff --git a/3rdPartner/libhv/unittest/hatomic_test.c b/3rdPartner/libhv/unittest/hatomic_test.c new file mode 100644 index 0000000..81f208b --- /dev/null +++ b/3rdPartner/libhv/unittest/hatomic_test.c @@ -0,0 +1,39 @@ +#include + +#include "hatomic.h" +#include "hthread.h" + +hatomic_flag_t flag = HATOMIC_FLAG_INIT; +hatomic_t cnt = HATOMIC_VAR_INIT(0); + +HTHREAD_ROUTINE(test_hatomic_flag) { + if (!hatomic_flag_test_and_set(&flag)) { + printf("tid=%ld flag 0=>1\n", hv_gettid()); + } + else { + printf("tid=%ld flag=1\n", hv_gettid()); + } + return 0; +} + +HTHREAD_ROUTINE(test_hatomic) { + for (int i = 0; i < 10; ++i) { + long n = hatomic_inc(&cnt); + printf("tid=%ld cnt=%ld\n", hv_gettid(), n); + hv_delay(1); + } + return 0; +} + +int main() { + for (int i = 0; i < 10; ++i) { + hthread_create(test_hatomic_flag, NULL); + } + + for (int i = 0; i < 10; ++i) { + hthread_create(test_hatomic, NULL); + } + + hv_delay(1000); + return 0; +} diff --git a/3rdPartner/libhv/unittest/hatomic_test.cpp b/3rdPartner/libhv/unittest/hatomic_test.cpp new file mode 100644 index 0000000..81f208b --- /dev/null +++ b/3rdPartner/libhv/unittest/hatomic_test.cpp @@ -0,0 +1,39 @@ +#include + +#include "hatomic.h" +#include "hthread.h" + +hatomic_flag_t flag = HATOMIC_FLAG_INIT; +hatomic_t cnt = HATOMIC_VAR_INIT(0); + +HTHREAD_ROUTINE(test_hatomic_flag) { + if (!hatomic_flag_test_and_set(&flag)) { + printf("tid=%ld flag 0=>1\n", hv_gettid()); + } + else { + printf("tid=%ld flag=1\n", hv_gettid()); + } + return 0; +} + +HTHREAD_ROUTINE(test_hatomic) { + for (int i = 0; i < 10; ++i) { + long n = hatomic_inc(&cnt); + printf("tid=%ld cnt=%ld\n", hv_gettid(), n); + hv_delay(1); + } + return 0; +} + +int main() { + for (int i = 0; i < 10; ++i) { + hthread_create(test_hatomic_flag, NULL); + } + + for (int i = 0; i < 10; ++i) { + hthread_create(test_hatomic, NULL); + } + + hv_delay(1000); + return 0; +} diff --git a/3rdPartner/libhv/unittest/hbase_test.c b/3rdPartner/libhv/unittest/hbase_test.c new file mode 100644 index 0000000..be6e726 --- /dev/null +++ b/3rdPartner/libhv/unittest/hbase_test.c @@ -0,0 +1,114 @@ +#include "hbase.h" + +int main(int argc, char* argv[]) { + char buf[16] = {0}; + printf("hv_rand(10, 99) -> %d\n", hv_rand(10, 99)); + printf("hv_random_string(buf, 10) -> %s\n", hv_random_string(buf, 10)); + + assert(hv_getboolean("1")); + assert(hv_getboolean("yes")); + + assert(hv_wildcard_match("www.example.com", "www.example.com")); + assert(hv_wildcard_match("www.example.com", "*.example.com")); + assert(hv_wildcard_match("www.example.com", "www.*.com")); + assert(hv_wildcard_match("www.example.com", "www.example.*")); + + assert(hv_parse_size("256") == 256); + assert(hv_parse_size("1K") == 1024); + assert(hv_parse_size("1G2M3K4B") == + 1 * 1024 * 1024 * 1024 + + 2 * 1024 * 1024 + + 3 * 1024 + + 4); + + assert(hv_parse_time("30") == 30); + assert(hv_parse_time("1m") == 60); + assert(hv_parse_time("1d2h3m4s") == + 1 * 24 * 60 * 60 + + 2 * 60 * 60 + + 3 * 60 + + 4); + + const char* test_urls[] = { + "http://user:pswd@www.example.com:80/path?query#fragment", + "http://user:pswd@www.example.com/path?query#fragment", + "http://www.example.com/path?query#fragment", + "http://www.example.com/path?query", + "http://www.example.com/path", + "www.example.com/path", + "/path", + }; + hurl_t stURL; + for (int i = 0; i < ARRAY_SIZE(test_urls); ++i) { + const char* strURL = test_urls[i]; + printf("%s =>\n", strURL); + hv_parse_url(&stURL, strURL); + assert(stURL.port == 80); + // scheme:// + if (stURL.fields[HV_URL_SCHEME].len > 0) { + const char* scheme = strURL + stURL.fields[HV_URL_SCHEME].off; + int len = stURL.fields[HV_URL_SCHEME].len; + assert(len == 4); + assert(strncmp(scheme, "http", len) == 0); + printf("%.*s://", len, scheme); + } + // user:pswd@ + if (stURL.fields[HV_URL_USERNAME].len > 0) { + const char* user = strURL + stURL.fields[HV_URL_USERNAME].off; + int len = stURL.fields[HV_URL_USERNAME].len; + assert(len == 4); + assert(strncmp(user, "user", len) == 0); + printf("%.*s", len, user); + if (stURL.fields[HV_URL_PASSWORD].len > 0) { + const char* pswd = strURL + stURL.fields[HV_URL_PASSWORD].off; + int len = stURL.fields[HV_URL_PASSWORD].len; + assert(len == 4); + assert(strncmp(pswd, "pswd", len) == 0); + printf(":%.*s", len, pswd); + } + printf("@"); + } + // host:port + if (stURL.fields[HV_URL_HOST].len > 0) { + const char* host = strURL + stURL.fields[HV_URL_HOST].off; + int len = stURL.fields[HV_URL_HOST].len; + assert(len == strlen("www.example.com")); + assert(strncmp(host, "www.example.com", len) == 0); + printf("%.*s", len, host); + if (stURL.fields[HV_URL_PORT].len > 0) { + const char* port = strURL + stURL.fields[HV_URL_PORT].off; + int len = stURL.fields[HV_URL_PORT].len; + assert(len == 2); + assert(strncmp(port, "80", len) == 0); + printf(":%.*s", len, port); + } + } + // /path + if (stURL.fields[HV_URL_PATH].len > 0) { + const char* path = strURL + stURL.fields[HV_URL_PATH].off; + int len = stURL.fields[HV_URL_PATH].len; + assert(len == 5); + assert(strncmp(path, "/path", len) == 0); + printf("%.*s", len, path); + } + // ?query + if (stURL.fields[HV_URL_QUERY].len > 0) { + const char* query = strURL + stURL.fields[HV_URL_QUERY].off; + int len = stURL.fields[HV_URL_QUERY].len; + assert(len == 5); + assert(strncmp(query, "query", len) == 0); + printf("?%.*s", len, query); + } + // #fragment + if (stURL.fields[HV_URL_FRAGMENT].len > 0) { + const char* fragment = strURL + stURL.fields[HV_URL_FRAGMENT].off; + int len = stURL.fields[HV_URL_FRAGMENT].len; + assert(len == 8); + assert(strncmp(fragment, "fragment", len) == 0); + printf("#%.*s", len, fragment); + } + printf("\n"); + } + + return 0; +} diff --git a/3rdPartner/libhv/unittest/hmutex_test.c b/3rdPartner/libhv/unittest/hmutex_test.c new file mode 100644 index 0000000..b255a13 --- /dev/null +++ b/3rdPartner/libhv/unittest/hmutex_test.c @@ -0,0 +1,134 @@ +#include "hthread.h" +#include "hmutex.h" +#include "htime.h" + +void once_print() { + printf("exec once\n"); +} + +HTHREAD_ROUTINE(test_once) { + honce_t once = HONCE_INIT; + for (int i = 0; i < 10; ++i) { + honce(&once, once_print); + } + printf("honce test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_mutex) { + hmutex_t mutex; + hmutex_init(&mutex); + hmutex_lock(&mutex); + hmutex_unlock(&mutex); + hmutex_destroy(&mutex); + printf("hmutex test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_recursive_mutex) { + hrecursive_mutex_t mutex; + hrecursive_mutex_init(&mutex); + hrecursive_mutex_lock(&mutex); + hrecursive_mutex_lock(&mutex); + hrecursive_mutex_unlock(&mutex); + hrecursive_mutex_unlock(&mutex); + hrecursive_mutex_destroy(&mutex); + printf("hrecursive_mutex test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_spinlock) { + hspinlock_t spin; + hspinlock_init(&spin); + hspinlock_lock(&spin); + hspinlock_unlock(&spin); + hspinlock_destroy(&spin); + printf("hspinlock test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_rwlock) { + hrwlock_t rwlock; + hrwlock_init(&rwlock); + hrwlock_rdlock(&rwlock); + hrwlock_rdunlock(&rwlock); + hrwlock_wrlock(&rwlock); + hrwlock_wrunlock(&rwlock); + hrwlock_destroy(&rwlock); + printf("hrwlock test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_timed_mutex) { + htimed_mutex_t mutex; + htimed_mutex_init(&mutex); + htimed_mutex_lock(&mutex); + time_t start_time = gettick_ms(); + htimed_mutex_lock_for(&mutex, 3000); + time_t end_time = gettick_ms(); + printf("htimed_mutex_lock_for %zdms\n", end_time - start_time); + htimed_mutex_unlock(&mutex); + htimed_mutex_destroy(&mutex); + printf("htimed_mutex test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_condvar) { + hmutex_t mutex; + hmutex_init(&mutex); + hcondvar_t cv; + hcondvar_init(&cv); + + hmutex_lock(&mutex); + hcondvar_signal(&cv); + hcondvar_broadcast(&cv); + time_t start_time = gettick_ms(); + hcondvar_wait_for(&cv, &mutex, 3000); + time_t end_time = gettick_ms(); + printf("hcondvar_wait_for %zdms\n", end_time - start_time); + hmutex_unlock(&mutex); + + hmutex_destroy(&mutex); + hcondvar_destroy(&cv); + printf("hcondvar test OK!\n"); + return 0; +} + +HTHREAD_ROUTINE(test_sem) { + hsem_t sem; + hsem_init(&sem, 10); + for (int i = 0; i < 10; ++i) { + hsem_wait(&sem); + } + hsem_post(&sem); + hsem_wait(&sem); + time_t start_time = gettick_ms(); + hsem_wait_for(&sem, 3000); + time_t end_time = gettick_ms(); + printf("hsem_wait_for %zdms\n", end_time - start_time); + hsem_destroy(&sem); + printf("hsem test OK!\n"); + return 0; +} + +int main(int argc, char* argv[]) { + hthread_t thread_once = hthread_create(test_once, NULL); + hthread_t thread_mutex = hthread_create(test_mutex, NULL); + hthread_t thread_recursive_mutex = hthread_create(test_recursive_mutex, NULL); + hthread_t thread_spinlock = hthread_create(test_spinlock, NULL); + hthread_t thread_rwlock = hthread_create(test_rwlock, NULL); + hthread_t thread_timed_mutex = hthread_create(test_timed_mutex, NULL); + hthread_t thread_condvar = hthread_create(test_condvar, NULL); + hthread_t thread_sem = hthread_create(test_sem, NULL); + + hthread_join(thread_once); + hthread_join(thread_mutex); + hthread_join(thread_recursive_mutex); + hthread_join(thread_spinlock); + hthread_join(thread_rwlock); + hthread_join(thread_timed_mutex); + hthread_join(thread_condvar); + hthread_join(thread_sem); + printf("hthread test OK!\n"); + return 0; +} diff --git a/3rdPartner/libhv/unittest/hpath_test.cpp b/3rdPartner/libhv/unittest/hpath_test.cpp new file mode 100644 index 0000000..4003c22 --- /dev/null +++ b/3rdPartner/libhv/unittest/hpath_test.cpp @@ -0,0 +1,15 @@ +#include "hpath.h" + +int main(int argc, char** argv) { + std::string filepath = HPath::join("/mnt/share/image", "test.jpg"); + std::string basename = HPath::basename(filepath); + std::string dirname = HPath::dirname(filepath); + std::string filename = HPath::filename(filepath); + std::string suffixname = HPath::suffixname(filepath); + printf("filepath = %s\n", filepath.c_str()); + printf("basename = %s\n", basename.c_str()); + printf("dirname = %s\n", dirname.c_str()); + printf("filename = %s\n", filename.c_str()); + printf("suffixname = %s\n", suffixname.c_str()); + return 0; +} diff --git a/3rdPartner/libhv/unittest/hstring_test.cpp b/3rdPartner/libhv/unittest/hstring_test.cpp new file mode 100644 index 0000000..b7f10e1 --- /dev/null +++ b/3rdPartner/libhv/unittest/hstring_test.cpp @@ -0,0 +1,52 @@ +#include "hstring.h" +using namespace hv; + +int main(int argc, char** argv) { + std::string str1 = "a1B2*C3d4=="; + std::string str2 = "a1B2*C3d4=="; + println("toupper=" + toupper(str1)); + println("tolower=" + tolower(str2)); + std::string str3 = "abcdefg"; + println("reverse=" + reverse(str3)); + + std::string str4 = "123456789"; + printf("startswith=%d\nendswith=%d\ncontains=%d\n", + (int)startswith(str4, "123"), + (int)endswith(str4, "789"), + (int)contains(str4, "456")); + + std::string str5 = asprintf("%s%d", "hello", 5); + println("asprintf=" + str5); + + std::string str6("123,456,789"); + StringList strlist = split(str6, ','); + println("split " + str6); + for (auto& str : strlist) { + println(str); + } + + std::string str7("user=admin&pswd=123456"); + hv::KeyValue kv = splitKV(str7, '&', '='); + for (auto& pair : kv) { + printf("%s=%s\n", pair.first.c_str(), pair.second.c_str()); + } + + std::string str8(""); + std::string str9 = trim_pairs(str8); + println("trim_pairs=" + str9); + + std::string str10("{{title}}"); + std::string str11 = replace(str10, "{{title}}", "Home"); + println("replace=" + str11); + + NetAddr addr1("0.0.0.0:8080"); + println(addr1.to_string()); + + NetAddr addr2("[::0]:8080"); + println(addr2.to_string()); + + NetAddr addr3(":8080"); + println(addr3.to_string()); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/hthread_test.cpp b/3rdPartner/libhv/unittest/hthread_test.cpp new file mode 100644 index 0000000..b284129 --- /dev/null +++ b/3rdPartner/libhv/unittest/hthread_test.cpp @@ -0,0 +1,59 @@ +#include "hthread.h" +#include "htime.h" + +HTHREAD_ROUTINE(test_thread1) { + int cnt = 10; + while (cnt-- > 0) { + printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms()); + hv_msleep(100); + } + return 0; +} + +class TestThread2 : public HThread { +protected: + virtual void run() { + int cnt = 10; + while (cnt-- > 0) { + printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms()); + hv_msleep(100); + } + } +}; + +class TestThread3 : public HThread { +protected: + virtual bool doPrepare() { + printf("doPrepare\n"); + return true; + } + + virtual void doTask() { + printf("tid=%ld time=%llums\n", hv_gettid(), gettimeofday_ms()); + } + + virtual bool doFinish() { + printf("doFinish\n"); + return true; + } +}; + +int main() { + printf("c-style hthread_create\n"); + hthread_t thread1 = hthread_create(test_thread1, NULL); + hthread_join(thread1); + + printf("cpp-style override HThread::run\n"); + TestThread2 thread2; + thread2.start(); + thread2.stop(); + + printf("cpp-style override HThread::doTask\n"); + TestThread3 thread3; + thread3.setSleepPolicy(HThread::SLEEP_UNTIL, 100); + thread3.start(); + hv_sleep(1); + thread3.stop(); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/hurl_test.cpp b/3rdPartner/libhv/unittest/hurl_test.cpp new file mode 100644 index 0000000..7319746 --- /dev/null +++ b/3rdPartner/libhv/unittest/hurl_test.cpp @@ -0,0 +1,23 @@ +#include + +#include "hurl.h" + +int main(int argc, char** argv) { + std::string strURL = "http://www.example.com/path?query#fragment"; + HUrl url; + if (!url.parse(strURL)) { + printf("parse url %s error!\n", strURL.c_str()); + return -1; + } + std::string dumpURL = url.dump(); + printf("%s =>\n%s\n", strURL.c_str(), dumpURL.c_str()); + assert(strURL == dumpURL); + + const char* str = "中 文"; + std::string escaped = HUrl::escape(str); + std::string unescaped = HUrl::unescape(escaped.c_str()); + printf("%s => %s\n", str, escaped.c_str()); + assert(str == unescaped); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/ifconfig_test.cpp b/3rdPartner/libhv/unittest/ifconfig_test.cpp new file mode 100644 index 0000000..b85b783 --- /dev/null +++ b/3rdPartner/libhv/unittest/ifconfig_test.cpp @@ -0,0 +1,17 @@ +#include + +#include "ifconfig.h" + +int main() { + std::vector ifcs; + ifconfig(ifcs); + for (auto& item : ifcs) { + printf("%s\nip: %s\nmask: %s\nbroadcast: %s\nmac: %s\n\n", + item.name, + item.ip, + item.mask, + item.broadcast, + item.mac); + } + return 0; +} diff --git a/3rdPartner/libhv/unittest/listdir_test.cpp b/3rdPartner/libhv/unittest/listdir_test.cpp new file mode 100644 index 0000000..d49486d --- /dev/null +++ b/3rdPartner/libhv/unittest/listdir_test.cpp @@ -0,0 +1,44 @@ +#include + +#include "hdir.h" + +int main(int argc, char* argv[]) { + const char* dir = "."; + if (argc > 1) { + dir = argv[1]; + } + std::list dirs; + listdir(dir, dirs); + for (auto& item : dirs) { + printf("%c%c%c%c%c%c%c%c%c%c\t", + item.type, + (item.mode & 0400) ? 'r' : '-', + (item.mode & 0200) ? 'w' : '-', + (item.mode & 0100) ? 'x' : '-', + (item.mode & 0040) ? 'r' : '-', + (item.mode & 0020) ? 'w' : '-', + (item.mode & 0010) ? 'x' : '-', + (item.mode & 0004) ? 'r' : '-', + (item.mode & 0002) ? 'w' : '-', + (item.mode & 0001) ? 'x' : '-'); + float hsize; + if (item.size < 1024) { + printf("%lu\t", item.size); + } + else if ((hsize = item.size/1024.0f) < 1024.0f) { + printf("%.1fK\t", hsize); + } + else if ((hsize /= 1024.0f) < 1024.0f) { + printf("%.1fM\t", hsize); + } + else { + hsize /= 1024.0f; + printf("%.1fG\t", hsize); + } + struct tm* tm = localtime(&item.mtime); + printf("%04d-%02d-%02d %02d:%02d:%02d\t", + tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); + printf("%s%s\n", item.name, item.type == 'd' ? "/" : ""); + } + return 0; +} diff --git a/3rdPartner/libhv/unittest/md5_test.c b/3rdPartner/libhv/unittest/md5_test.c new file mode 100644 index 0000000..41fb4d4 --- /dev/null +++ b/3rdPartner/libhv/unittest/md5_test.c @@ -0,0 +1,64 @@ +/* + * @build: gcc -o bin/md5 unittest/md5_test.c util/md5.c -I. -Iutil + * + */ + +#include +#include +#include +#include + +#include "md5.h" + +static void test() { + unsigned char ch = '1'; + char md5[33] = {0}; + hv_md5_hex(&ch, 1, md5, sizeof(md5)); + assert(strcmp(md5, "c4ca4238a0b923820dcc509a6f75849b") == 0); +} + +int main(int argc, char* argv[]) { + test(); + + if (argc < 2) { + printf("Usage: md5 file\n"); + printf(" md5 -s string\n"); + return -10; + } + + char md5[33] = {0}; + + if (argc == 2) { + const char* filepath = argv[1]; + FILE* fp = fopen(filepath, "rb"); + if (fp == NULL) { + printf("Open file '%s' failed!\n", filepath); + return -20; + } + fseek(fp, 0, SEEK_END); + long filesize = ftell(fp); + // printf("filesize=%ld\n", filesize); + fseek(fp, 0, SEEK_SET); + unsigned char* filebuf = (unsigned char*)malloc(filesize); + size_t nread = fread(filebuf, 1, filesize, fp); + assert(nread == filesize); + hv_md5_hex(filebuf, filesize, md5, sizeof(md5)); + + free(filebuf); + fclose(fp); + } + else if (argc == 3) { + const char* flags = argv[1]; + if (flags[0] == '-' && flags[1] == 's') { + hv_md5_hex((unsigned char*)argv[2], strlen(argv[2]), md5, sizeof(md5)); + } + else { + printf("Unrecognized flags '%s'\n", flags); + return -40; + } + } + + puts(md5); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/mkdir_test.c b/3rdPartner/libhv/unittest/mkdir_test.c new file mode 100644 index 0000000..8f11444 --- /dev/null +++ b/3rdPartner/libhv/unittest/mkdir_test.c @@ -0,0 +1,10 @@ +#include "hbase.h" + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: mkdir_p dir\n"); + return -1; + } + const char* dir = argv[1]; + return hv_mkdir_p(dir); +} diff --git a/3rdPartner/libhv/unittest/nslookup_test.c b/3rdPartner/libhv/unittest/nslookup_test.c new file mode 100644 index 0000000..eaa972b --- /dev/null +++ b/3rdPartner/libhv/unittest/nslookup_test.c @@ -0,0 +1,34 @@ +#include + +#include "hplatform.h" // inet_ntop +#include "dns.h" // nslookup + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: nslookup domain [nameserver]\n"); + return -1; + } + + const char* domain = argv[1]; + const char* nameserver = "127.0.1.1"; +#ifndef OS_LINUX + nameserver = "114.114.114.114"; + // nameserver = "8.8.8.8"; +#endif + + if (argc > 2) { + nameserver = argv[2]; + } + + uint32_t addrs[16]; + int naddr = nslookup(domain, addrs, 16, nameserver); + if (naddr < 0) { + return naddr; + } + char ip[16]; + for (int i = 0; i < naddr; ++i) { + inet_ntop(AF_INET, (void*)&addrs[i], ip, 16); + printf("%s\n", ip); + } + return 0; +} diff --git a/3rdPartner/libhv/unittest/objectpool_test.cpp b/3rdPartner/libhv/unittest/objectpool_test.cpp new file mode 100644 index 0000000..6b1cc22 --- /dev/null +++ b/3rdPartner/libhv/unittest/objectpool_test.cpp @@ -0,0 +1,56 @@ +#include +#include + +#include "hobjectpool.h" + +#ifdef _WIN32 +#include +#else +#include +#endif + +void msleep(unsigned int ms) { +#ifdef _WIN32 + Sleep(ms); +#else + usleep(ms*1000); +#endif +} + +class Task { +public: + Task() {printf("Task()\n");} + ~Task() {printf("~Task()\n");} + + void Do() { + printf("%p start do...\n", this); + msleep(4000); + printf("%p end do\n", this); + } +}; + +HObjectPool task_pool(1, 5); + +void task_thread(int id) { + printf("thread %d run...\n", id); + HPoolObject pTask(task_pool); + if (pTask) { + pTask->Do(); + } + else { + printf("No available task in pool\n"); + } + printf("thread %d exit\n", id); +} + +int main(int argc, char** argv) { + for (int i = 0; i < 10; ++i) { + new std::thread(task_thread, i); + } + msleep(5000); + for (int i = 10; i < 20; ++i) { + new std::thread(task_thread, i); + } + msleep(10000); + return 0; +} diff --git a/3rdPartner/libhv/unittest/ping_test.c b/3rdPartner/libhv/unittest/ping_test.c new file mode 100644 index 0000000..af4b039 --- /dev/null +++ b/3rdPartner/libhv/unittest/ping_test.c @@ -0,0 +1,16 @@ +#include +#include "icmp.h" +#include "hplatform.h" + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: ping host|ip\n"); + return -10; + } + + char* host = argv[1]; + int ping_cnt = 4; + int ok_cnt = ping(host, ping_cnt); + printf("ping %d count, %d ok.\n", ping_cnt, ok_cnt); + return 0; +} diff --git a/3rdPartner/libhv/unittest/rbtree_test.c b/3rdPartner/libhv/unittest/rbtree_test.c new file mode 100644 index 0000000..2e6c61e --- /dev/null +++ b/3rdPartner/libhv/unittest/rbtree_test.c @@ -0,0 +1,111 @@ +#include +#include + +#include "rbtree.h" + +typedef int rbtree_key_type; +typedef int rbtree_val_type; + +struct rbtree_entry { + struct rb_node rb_node; + rbtree_key_type key; + rbtree_val_type val; +}; + +int rbtree_insert(struct rb_root* root, struct rbtree_entry* entry) { + printf("insert %d\n", entry->key); + struct rb_node** n = &root->rb_node; + struct rb_node* parent = NULL; + struct rbtree_entry* e = NULL; + while (*n) { + parent = *n; + e = rb_entry(*n, struct rbtree_entry, rb_node); + if (entry->key < e->key) { + n = &(*n)->rb_left; + } else if (entry->key > e->key) { + n = &(*n)->rb_right; + } else { + return -1; + } + } + + rb_link_node(&entry->rb_node, parent, n); + rb_insert_color(&entry->rb_node, root); + return 0; +} + +int rbtree_remove(struct rb_root* root, struct rbtree_entry* entry) { + printf("remove %d\n", entry->key); + rb_erase(&entry->rb_node, root); + return 0; +} + +struct rbtree_entry* rbtree_search(struct rb_root* root, const rbtree_key_type* key) { + struct rb_node* n = root->rb_node; + struct rbtree_entry* e = NULL; + while (n) { + e = rb_entry(n, struct rbtree_entry, rb_node); + if (*key < e->key) { + n = n->rb_left; + } else if (*key > e->key) { + n = n->rb_right; + } else { + return e; + } + } + return NULL; +} + +void rbtree_entry_print(struct rbtree_entry* entry) { + if (entry == NULL) { + printf("null\n"); + return; + } + printf("%d:%d\n", entry->key, entry->val); +} + +int main() { + struct rb_root root = { NULL }; + struct rbtree_entry* entry = NULL; + + struct rbtree_entry entries[10]; + for (int i = 0; i < 10; ++i) { + memset(&entries[i], 0, sizeof(struct rbtree_entry)); + entries[i].key = i; + entries[i].val = i; + } + + rbtree_insert(&root, &entries[1]); + rbtree_insert(&root, &entries[2]); + rbtree_insert(&root, &entries[3]); + rbtree_insert(&root, &entries[7]); + rbtree_insert(&root, &entries[8]); + rbtree_insert(&root, &entries[9]); + rbtree_insert(&root, &entries[4]); + rbtree_insert(&root, &entries[5]); + rbtree_insert(&root, &entries[6]); + + rbtree_remove(&root, &entries[1]); + rbtree_remove(&root, &entries[9]); + rbtree_remove(&root, &entries[4]); + rbtree_remove(&root, &entries[6]); + + int key = 5; + entry = rbtree_search(&root, &key); + rbtree_entry_print(entry); + + key = 4; + entry = rbtree_search(&root, &key); + rbtree_entry_print(entry); + + struct rb_node* node = NULL; + // while((node = rb_first(&root))) { + while((node = root.rb_node)) { + entry = rb_entry(node, struct rbtree_entry, rb_node); + rb_erase(node, &root); + rbtree_entry_print(entry); + memset(entry, 0, sizeof(struct rbtree_entry)); + } + + return 0; +} diff --git a/3rdPartner/libhv/unittest/rmdir_test.c b/3rdPartner/libhv/unittest/rmdir_test.c new file mode 100644 index 0000000..a0c5bcb --- /dev/null +++ b/3rdPartner/libhv/unittest/rmdir_test.c @@ -0,0 +1,10 @@ +#include "hbase.h" + +int main(int argc, char* argv[]) { + if (argc < 2) { + printf("Usage: rmdir_p dir\n"); + return -1; + } + const char* dir = argv[1]; + return hv_rmdir_p(dir); +} diff --git a/3rdPartner/libhv/unittest/sendmail_test.c b/3rdPartner/libhv/unittest/sendmail_test.c new file mode 100644 index 0000000..3e5d09a --- /dev/null +++ b/3rdPartner/libhv/unittest/sendmail_test.c @@ -0,0 +1,24 @@ +#include + +#include "smtp.h" + +int main(int argc, char** argv) { + if (argc < 8) { + printf("Usage: sendmail smtp_server username password from to subject body\n"); + return -10; + } + + const char* smtp_server = argv[1]; + const char* username = argv[2]; + const char* password = argv[3]; + mail_t mail; + mail.from = argv[4]; + mail.to = argv[5]; + mail.subject = argv[6]; + mail.body = argv[7]; + + int status_code = sendmail(smtp_server, username, password, &mail); + printf("sendmail: %d %s\n", status_code, smtp_status_str((enum smtp_status)status_code)); + + return status_code == SMTP_STATUS_OK ? 0 : status_code; +} diff --git a/3rdPartner/libhv/unittest/sha1_test.c b/3rdPartner/libhv/unittest/sha1_test.c new file mode 100644 index 0000000..326b4cd --- /dev/null +++ b/3rdPartner/libhv/unittest/sha1_test.c @@ -0,0 +1,64 @@ +/* + * @build: gcc -o bin/sha1 unittest/sha1_test.c util/sha1.c -I. -Iutil + * + */ + +#include +#include +#include +#include + +#include "sha1.h" + +static void test() { + unsigned char ch = '1'; + char sha1[41] = {0}; + hv_sha1_hex(&ch, 1, sha1, sizeof(sha1)); + assert(strcmp(sha1, "356a192b7913b04c54574d18c28d46e6395428ab") == 0); +} + +int main(int argc, char* argv[]) { + test(); + + if (argc < 2) { + printf("Usage: sha1 file\n"); + printf(" sha1 -s string\n"); + return -10; + } + + char sha1[41] = {0}; + + if (argc == 2) { + const char* filepath = argv[1]; + FILE* fp = fopen(filepath, "rb"); + if (fp == NULL) { + printf("Open file '%s' failed!\n", filepath); + return -20; + } + fseek(fp, 0, SEEK_END); + long filesize = ftell(fp); + // printf("filesize=%ld\n", filesize); + fseek(fp, 0, SEEK_SET); + unsigned char* filebuf = (unsigned char*)malloc(filesize); + size_t nread = fread(filebuf, 1, filesize, fp); + assert(nread == filesize); + hv_sha1_hex(filebuf, filesize, sha1, sizeof(sha1)); + + free(filebuf); + fclose(fp); + } + else if (argc == 3) { + const char* flags = argv[1]; + if (flags[0] == '-' && flags[1] == 's') { + hv_sha1_hex((unsigned char*)argv[2], strlen(argv[2]), sha1, sizeof(sha1)); + } + else { + printf("Unrecognized flags '%s'\n", flags); + return -40; + } + } + + puts(sha1); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/sizeof_test.cpp b/3rdPartner/libhv/unittest/sizeof_test.cpp new file mode 100644 index 0000000..e73d233 --- /dev/null +++ b/3rdPartner/libhv/unittest/sizeof_test.cpp @@ -0,0 +1,62 @@ +#include + +#include "hloop.h" +#include "hevent.h" + +#include "EventLoop.h" +#include "EventLoopThread.h" +#include "EventLoopThreadPool.h" +#include "Channel.h" +#include "TcpClient.h" +#include "TcpServer.h" +#include "UdpClient.h" +#include "UdpServer.h" + +#include "HttpMessage.h" +#include "Http1Parser.h" +#include "HttpContext.h" +#include "HttpServer.h" +#include "HttpHandler.h" +#include "HttpResponseWriter.h" + +#include "WebSocketChannel.h" +#include "WebSocketParser.h" +#include "WebSocketServer.h" +#include "WebSocketClient.h" + +using namespace hv; + +int main() { + // event + printf("sizeof(struct hloop_s)=%lu\n", sizeof(struct hloop_s)); + printf("sizeof(struct hevent_s)=%lu\n", sizeof(struct hevent_s)); + printf("sizeof(struct hidle_s)=%lu\n", sizeof(struct hidle_s)); + printf("sizeof(struct htimer_s)=%lu\n", sizeof(struct htimer_s)); + printf("sizeof(struct htimeout_s)=%lu\n", sizeof(struct htimeout_s)); + printf("sizeof(struct hperiod_s)=%lu\n", sizeof(struct hperiod_s)); + printf("sizeof(struct hio_s)=%lu\n", sizeof(struct hio_s)); + // evpp + printf("sizeof(class EventLoop)=%lu\n", sizeof(EventLoop)); + printf("sizeof(class EventLoopThread)=%lu\n", sizeof(EventLoopThread)); + printf("sizeof(class EventLoopThreadPool)=%lu\n", sizeof(EventLoopThreadPool)); + printf("sizeof(class Channel)=%lu\n", sizeof(Channel)); + printf("sizeof(class SocketChannel)=%lu\n", sizeof(SocketChannel)); + printf("sizeof(class TcpClient)=%lu\n", sizeof(TcpClient)); + printf("sizeof(class TcpServer)=%lu\n", sizeof(TcpServer)); + printf("sizeof(class UdpClient)=%lu\n", sizeof(UdpClient)); + printf("sizeof(class UdpServer)=%lu\n", sizeof(UdpServer)); + // http + printf("sizeof(class HttpRequest)=%lu\n", sizeof(HttpRequest)); + printf("sizeof(class HttpResponse)=%lu\n", sizeof(HttpResponse)); + printf("sizeof(class Http1Parser)=%lu\n", sizeof(Http1Parser)); + printf("sizeof(class HttpContext)=%lu\n", sizeof(HttpContext)); + printf("sizeof(class HttpServer)=%lu\n", sizeof(HttpServer)); + printf("sizeof(class HttpHandler)=%lu\n", sizeof(HttpHandler)); + printf("sizeof(class HttpResponseWrite)=%lu\n", sizeof(HttpResponseWriter)); + // websocket + printf("sizeof(class WebSocketChannel)=%lu\n", sizeof(WebSocketChannel)); + printf("sizeof(class WebSocketParser)=%lu\n", sizeof(WebSocketParser)); + printf("sizeof(class WebSocketClient)=%lu\n", sizeof(WebSocketClient)); + printf("sizeof(class WebSocketServer)=%lu\n", sizeof(WebSocketServer)); + return 0; +} diff --git a/3rdPartner/libhv/unittest/socketpair_test.c b/3rdPartner/libhv/unittest/socketpair_test.c new file mode 100644 index 0000000..b29398e --- /dev/null +++ b/3rdPartner/libhv/unittest/socketpair_test.c @@ -0,0 +1,24 @@ +#include + +#include "hsocket.h" + +int main(int argc, char* argv[]) { + int sockfds[2]; + if (Socketpair(AF_INET, SOCK_STREAM, 0, sockfds) != 0) { + printf("socketpair failed!\n"); + return -1; + } + printf("Socketpair %d<=>%d\n", sockfds[0], sockfds[1]); + + char sendbuf[] = "hello,world!"; + char recvbuf[1460]; + int nsend = send(sockfds[0], sendbuf, strlen(sendbuf), 0); + printf("sockfd:%d send %d bytes: %s\n", sockfds[0], nsend, sendbuf); + memset(recvbuf, 0, sizeof(recvbuf)); + int nrecv = recv(sockfds[1], recvbuf, sizeof(recvbuf), 0); + printf("sockfd:%d recv %d bytes: %s\n", sockfds[1], nrecv, recvbuf); + + closesocket(sockfds[0]); + closesocket(sockfds[1]); + return 0; +} diff --git a/3rdPartner/libhv/unittest/synchronized_test.cpp b/3rdPartner/libhv/unittest/synchronized_test.cpp new file mode 100644 index 0000000..acfe005 --- /dev/null +++ b/3rdPartner/libhv/unittest/synchronized_test.cpp @@ -0,0 +1,24 @@ +#include "hthread.h" +#include "hmutex.h" + +#define THREAD_NUM 10 +std::mutex g_mutex; + +HTHREAD_ROUTINE(test_synchronized) { + synchronized(g_mutex) { + hv_delay(1000); + printf("tid=%ld time=%llus\n", hv_gettid(), (unsigned long long)time(NULL)); + } + return 0; +} + +int main() { + hthread_t threads[THREAD_NUM]; + for (int i = 0; i < THREAD_NUM; ++i) { + threads[i] = hthread_create(test_synchronized, NULL); + } + for (int i = 0; i < THREAD_NUM; ++i) { + hthread_join(threads[i]); + } + return 0; +} diff --git a/3rdPartner/libhv/unittest/threadpool_test.cpp b/3rdPartner/libhv/unittest/threadpool_test.cpp new file mode 100644 index 0000000..7f9c830 --- /dev/null +++ b/3rdPartner/libhv/unittest/threadpool_test.cpp @@ -0,0 +1,30 @@ +#include + +#include "hthreadpool.h" +#include "hthread.h" +#include "htime.h" + +void print_task(int i) { + printf("thread[%ld]: task[%d]\n", hv_gettid(), i); + hv_sleep(1); +} + +int main(int argc, char** argv) { + HThreadPool tp(1, 4); + tp.start(); + + int i = 0; + for (; i < 10; ++i) { + tp.commit(print_task, i); + } + + tp.wait(); + + for (; i < 20; ++i) { + tp.commit(print_task, i); + } + + tp.wait(); + + return 0; +} diff --git a/3rdPartner/libhv/unittest/webbench.c b/3rdPartner/libhv/unittest/webbench.c new file mode 100644 index 0000000..7bac7b6 --- /dev/null +++ b/3rdPartner/libhv/unittest/webbench.c @@ -0,0 +1,373 @@ +#include +#include +#include +#include +#include // for gethostbyname + +#include +#include +#include +#include + +#include + +#include +#include + +int Connect(const char* host, int port) { + struct sockaddr_in addr; + addr.sin_family = AF_INET; + in_addr_t inaddr = inet_addr(host); + if (inaddr != INADDR_NONE) { + addr.sin_addr.s_addr = inaddr; + } + else { + struct hostent* phe = gethostbyname(host); + if (phe == NULL) { + return -1; + } + memcpy(&addr.sin_addr, phe->h_addr_list[0], phe->h_length); + } + addr.sin_port = htons(port); + int sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) { + perror("socket"); + return -2; + } + if (connect(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) { + perror("connect"); + return -3; + } + return sock; +} + +#define METHOD_GET 0 +#define METHOD_HEAD 1 +#define METHOD_OPTIONS 2 +#define METHOD_TRACE 3 + +#define VERSION "webbench/1.19.3.15" + +int verbose = 0; +int quiet = 0; +volatile int timerexpired = 0; // for timer +int time = 30; +int clients = 1; +char host[64] = {0}; +int port = 80; +char* proxy_host = NULL; +int proxy_port = 80; +int method = METHOD_GET; +int http = 1; // 1=HTTP/1.1 0=HTTP/1.0 +int keepalive = 0; +const char* url = NULL; + +#define REQUEST_SIZE 2048 +char request[REQUEST_SIZE] = {0}; +char buf[1460] = {0}; + +int mypipe[2]; // IPC + +static const char options[] = "?hVvq01kt:p:c:"; + +static const struct option long_options[] = { + {"help", no_argument, NULL, 'h'}, + {"version", no_argument, NULL, 'V'}, + {"verbose", no_argument, NULL, 'v'}, + {"quiet", no_argument, NULL, 'q'}, + {"time", required_argument, NULL, 't'}, + {"proxy", required_argument, NULL, 'p'}, + {"clients", required_argument, NULL, 'c'}, + {"http10", no_argument, NULL, '0'}, + {"http11", no_argument, NULL, '1'}, + {"keepalive", no_argument, NULL, 'k'}, + {"get", no_argument, &method, METHOD_GET}, + {"head", no_argument, &method, METHOD_HEAD}, + {"options", no_argument, &method, METHOD_OPTIONS}, + {"trace", no_argument, &method, METHOD_TRACE}, + {NULL, 0, NULL, 0} +}; + +void print_usage() { + printf("Usage: webbench [%s] URL\n", options); + puts("\n\ +Options:\n\ + -?|-h|--help Print this information.\n\ + -V|--version Print version.\n\ + -v|--verbose Print verbose.\n\ + -q|--quiet Print quiet.\n\ + -0|--http10 Use HTTP/1.0 protocol.\n\ + -1|--http11 Use HTTP/1.1 protocol.\n\ + -k|--keepalive Connection: keep-alive.\n\ + -t|--time Run benchmark for seconds. Default 30.\n\ + -p|--proxy Use proxy server for request.\n\ + -c|--clients Run HTTP clients. Default one.\n\ + --get Use GET request method.\n\ + --head Use HEAD request method.\n\ + --options Use OPTIONS request method.\n\ + --trace Use TRACE request method.\n\ + "); +} + +int parse_cmdline(int argc, char** argv) { + int opt = 0; + int opt_idx = 0; + while ((opt=getopt_long(argc, argv, options, long_options, &opt_idx)) != EOF) { + switch (opt) { + case '?': + case 'h': print_usage(); exit(1); + case 'V': puts(VERSION); exit(1); + case 'v': verbose = 1; break; + case 'q': quiet = 1; break; + case '0': http = 0; break; + case '1': http = 1; break; + case 'k': keepalive = 1; break; + case 't': time = atoi(optarg); break; + case 'c': clients = atoi(optarg); break; + case 'p': + { + // host:port + char* pos = strrchr(optarg, ':'); + proxy_host = optarg; + if (pos == NULL) break; + if (pos == optarg || + pos == optarg + strlen(optarg) - 1) { + printf("Error option --proxy\n"); + return -2; + } + *pos = '\0'; + proxy_port = atoi(pos+1); + } + break; + } + } + + if (optind == argc) { + printf("Missing URL\n"); + return -2; + } + + url = argv[optind]; + + return 0; +} + +static void alarm_handler(int singal) { + timerexpired = 1; +} + +int main(int argc, char** argv) { + if (argc == 1) { + print_usage(); + return 2; + } + + int ret = parse_cmdline(argc, argv); + if (ret != 0) { + return ret; + } + + printf("%d clients, running %d sec\n", clients, time); + + // domain port url + const char* req_url = "/"; + if (proxy_host) { + strncpy(host, proxy_host, sizeof(host)); + port = proxy_port; + } else { + // http://host:port/path + const char* pos1 = strstr(url, "http://"); + if (pos1 == NULL) { + pos1 = url; + } else { + pos1 += strlen("http://"); + } + const char* pos2 = strchr(pos1, '/'); + if (pos2 == NULL) { + pos2 = url + strlen(url); + } else { + req_url = pos2; + } + int len = pos2 - pos1; + char* server = (char*)malloc(len+1); + memcpy(server, pos1, len); + server[len] = '\0'; + char* pos3 = strrchr(server, ':'); + if (pos3 == NULL) { + port = 80; + } else { + *pos3 = '\0'; + port = atoi(pos3+1); + } + strncpy(host, server, sizeof(host)); + free(server); + } + char Host[256]; + snprintf(Host, sizeof(Host), "Host: %s:%d\r\n", host, port); + printf("%s", Host); + + // test connect + int sock = Connect(host, port); + if (sock < 0) { + printf("Connect failed!\n"); + return -20; + } else { + printf("Connect test OK!\n"); + close(sock); + } + + // build request + switch (method) { + case METHOD_GET: + default: + strcpy(request, "GET"); + break; + case METHOD_HEAD: + strcpy(request, "HEAD"); + break; + case METHOD_OPTIONS: + strcpy(request, "OPTIONS"); + break; + case METHOD_TRACE: + strcpy(request, "TRACE"); + break; + } + + strcat(request, " "); + strcat(request, req_url); + strcat(request, " "); + if (http == 0) { + strcat(request, "HTTP/1.0"); + } else if (http == 1) { + strcat(request, "HTTP/1.1"); + } + strcat(request, "\r\n"); + strcat(request, "User-Agent: webbench/1.18.3.15\r\n"); + strcat(request, Host); + strcat(request, "Cache-Control: no-cache\r\n"); + if (keepalive) { + strcat(request, "Connection: keep-alive\r\n"); + } + else { + strcat(request, "Connection: close\r\n"); + } + strcat(request, "\r\n"); + if (!quiet) { + printf("%s", request); + } + + // IPC + if (pipe(mypipe) < 0) { + perror("pipe"); + exit(20); + } + + // fork childs + pid_t pid = 0; + FILE* fp = NULL; + long long succeed = 0, failed = 0, bytes = 0; + int childs = clients; + int i; + for (i = 0; i < childs; ++i) { + pid = fork(); + if (pid < 0) { + perror("fork"); + exit(-10); + } + + if (pid == 0) { + // child + //printf("child[%d] start\n", getpid()); + signal(SIGALRM, alarm_handler); + alarm(time); + int sock = -1; + int len = strlen(request); + int wrbytes, rdbytes; + while (1) { +connect: + if (timerexpired) break; + if (sock == -1) { + sock = Connect(host, port); + } + if (sock < 0) { + ++failed; + continue; + } + int total_rdbytes = 0; +write: + if (timerexpired) break; + wrbytes = write(sock, request, len); + if (verbose) { + printf("write %d bytes\n", wrbytes); + } + if (wrbytes != len) { + ++failed; + goto close; + } + if (verbose) { + printf("%s\n", request); + } +read: + if (timerexpired) break; + rdbytes = read(sock, buf, sizeof(buf)); + if (verbose) { + printf("read %d bytes\n", rdbytes); + } + if (rdbytes <= 0) { + ++failed; + goto close; + } + if (verbose) { + printf("%.*s\n", rdbytes, buf); + } + static int s_rdbytes = 0; + if (s_rdbytes == 0) { + s_rdbytes = rdbytes; + } + bytes += rdbytes; + total_rdbytes += rdbytes; + if (total_rdbytes < s_rdbytes) { + // NOTE: some http server head and body send not one packet. + goto read; + } + ++succeed; +close: + if (!keepalive) { + close(sock); + sock = -1; + } + } + + fp = fdopen(mypipe[1], "w"); + if (fp == NULL) { + perror("fdopen"); + return 30; + } + fprintf(fp, "%lld %lld %lld\n", succeed, failed, bytes); + fclose(fp); + //printf("child[%d] end\n", getpid()); + return 0; + } + } + + fp = fdopen(mypipe[0], "r"); + if (fp == NULL) { + perror("fdopen"); + return 30; + } + while (1) { + long long i,j,k; + fscanf(fp, "%lld %lld %lld", &i, &j, &k); + succeed += i; + failed += j; + bytes += k; + if (--childs==0) break; + } + fclose(fp); + printf("recv %lld bytes/sec, %lld succeed, %lld failed\n", + bytes/time, + succeed, + failed); + + return 0; +} diff --git a/3rdPartner/libhv/util/README.md b/3rdPartner/libhv/util/README.md new file mode 100644 index 0000000..b5fc90e --- /dev/null +++ b/3rdPartner/libhv/util/README.md @@ -0,0 +1,9 @@ +## 目录结构 + +``` +. +├── base64.h BASE64编解码 +├── md5.h MD5数字摘要 +└── sha1.h SHA1安全散列算法 + +``` diff --git a/3rdPartner/libhv/util/base64.c b/3rdPartner/libhv/util/base64.c new file mode 100644 index 0000000..80e8e55 --- /dev/null +++ b/3rdPartner/libhv/util/base64.c @@ -0,0 +1,126 @@ +#include + +#include "base64.h" + +/* BASE 64 encode table */ +static const char base64en[] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', + 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '+', '/', +}; + +#define BASE64_PAD '=' +#define BASE64DE_FIRST '+' +#define BASE64DE_LAST 'z' +/* ASCII order for BASE 64 decode, -1 in unused character */ +static const signed char base64de[] = { + /* '+', ',', '-', '.', '/', '0', '1', '2', */ + 62, -1, -1, -1, 63, 52, 53, 54, + + /* '3', '4', '5', '6', '7', '8', '9', ':', */ + 55, 56, 57, 58, 59, 60, 61, -1, + + /* ';', '<', '=', '>', '?', '@', 'A', 'B', */ + -1, -1, -1, -1, -1, -1, 0, 1, + + /* 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', */ + 2, 3, 4, 5, 6, 7, 8, 9, + + /* 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', */ + 10, 11, 12, 13, 14, 15, 16, 17, + + /* 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', */ + 18, 19, 20, 21, 22, 23, 24, 25, + + /* '[', '\', ']', '^', '_', '`', 'a', 'b', */ + -1, -1, -1, -1, -1, -1, 26, 27, + + /* 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', */ + 28, 29, 30, 31, 32, 33, 34, 35, + + /* 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', */ + 36, 37, 38, 39, 40, 41, 42, 43, + + /* 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', */ + 44, 45, 46, 47, 48, 49, 50, 51, +}; + +int hv_base64_encode(const unsigned char *in, unsigned int inlen, char *out) { + unsigned int i = 0, j = 0; + + for (; i < inlen; i++) { + int s = i % 3; + + switch (s) { + case 0: + out[j++] = base64en[(in[i] >> 2) & 0x3F]; + continue; + case 1: + out[j++] = base64en[((in[i-1] & 0x3) << 4) + ((in[i] >> 4) & 0xF)]; + continue; + case 2: + out[j++] = base64en[((in[i-1] & 0xF) << 2) + ((in[i] >> 6) & 0x3)]; + out[j++] = base64en[in[i] & 0x3F]; + } + } + + /* move back */ + i -= 1; + + /* check the last and add padding */ + if ((i % 3) == 0) { + out[j++] = base64en[(in[i] & 0x3) << 4]; + out[j++] = BASE64_PAD; + out[j++] = BASE64_PAD; + } else if ((i % 3) == 1) { + out[j++] = base64en[(in[i] & 0xF) << 2]; + out[j++] = BASE64_PAD; + } + + return j; +} + +int hv_base64_decode(const char *in, unsigned int inlen, unsigned char *out) { + unsigned int i = 0, j = 0; + + for (; i < inlen; i++) { + int c; + int s = i % 4; + + if (in[i] == '=') + return j; + + if (in[i] < BASE64DE_FIRST || in[i] > BASE64DE_LAST || + (c = base64de[in[i] - BASE64DE_FIRST]) == -1) + return -1; + + switch (s) { + case 0: + out[j] = ((unsigned int)c << 2) & 0xFF; + continue; + case 1: + out[j++] += ((unsigned int)c >> 4) & 0x3; + + /* if not last char with padding */ + if (i < (inlen - 3) || in[inlen - 2] != '=') + out[j] = ((unsigned int)c & 0xF) << 4; + continue; + case 2: + out[j++] += ((unsigned int)c >> 2) & 0xF; + + /* if not last char with padding */ + if (i < (inlen - 2) || in[inlen - 1] != '=') + out[j] = ((unsigned int)c & 0x3) << 6; + continue; + case 3: + out[j++] += (unsigned char)c; + } + } + + return j; +} diff --git a/3rdPartner/libhv/util/base64.h b/3rdPartner/libhv/util/base64.h new file mode 100644 index 0000000..ed24c0a --- /dev/null +++ b/3rdPartner/libhv/util/base64.h @@ -0,0 +1,46 @@ +#ifndef HV_BASE64_H_ +#define HV_BASE64_H_ + +#include "hexport.h" + +#define BASE64_ENCODE_OUT_SIZE(s) (((s) + 2) / 3 * 4) +#define BASE64_DECODE_OUT_SIZE(s) (((s)) / 4 * 3) + +BEGIN_EXTERN_C + +// @return encoded size +HV_EXPORT int hv_base64_encode(const unsigned char *in, unsigned int inlen, char *out); + +// @return decoded size +HV_EXPORT int hv_base64_decode(const char *in, unsigned int inlen, unsigned char *out); + +END_EXTERN_C + +#ifdef __cplusplus + +#include +#include + +namespace hv { + +HV_INLINE std::string Base64Encode(const unsigned char* data, unsigned int len) { + int encoded_size = BASE64_ENCODE_OUT_SIZE(len); + std::string encoded_str(encoded_size + 1, 0); + encoded_size = hv_base64_encode(data, len, (char*)encoded_str.data()); + encoded_str.resize(encoded_size); + return encoded_str; +} + +HV_INLINE std::string Base64Decode(const char* str, unsigned int len = 0) { + if (len == 0) len = strlen(str); + int decoded_size = BASE64_DECODE_OUT_SIZE(len); + std::string decoded_buf(decoded_size + 1, 0); + decoded_size = hv_base64_decode(str, len, (unsigned char*)decoded_buf.data()); + decoded_buf.resize(decoded_size); + return decoded_buf; +} + +} +#endif + +#endif // HV_BASE64_H_ diff --git a/3rdPartner/libhv/util/md5.c b/3rdPartner/libhv/util/md5.c new file mode 100644 index 0000000..21f6c9f --- /dev/null +++ b/3rdPartner/libhv/util/md5.c @@ -0,0 +1,215 @@ +#include + +#include "md5.h" + +#define F(x,y,z) ((x & y) | (~x & z)) +#define G(x,y,z) ((x & z) | (y & ~z)) +#define H(x,y,z) (x^y^z) +#define I(x,y,z) (y ^ (x | ~z)) +#define ROTATE_LEFT(x,n) ((x << n) | (x >> (32-n))) +#define FF(a,b,c,d,x,s,ac) \ + { \ + a += F(b,c,d) + x + ac; \ + a = ROTATE_LEFT(a,s); \ + a += b; \ + } +#define GG(a,b,c,d,x,s,ac) \ + { \ + a += G(b,c,d) + x + ac; \ + a = ROTATE_LEFT(a,s); \ + a += b; \ + } +#define HH(a,b,c,d,x,s,ac) \ + { \ + a += H(b,c,d) + x + ac; \ + a = ROTATE_LEFT(a,s); \ + a += b; \ + } +#define II(a,b,c,d,x,s,ac) \ + { \ + a += I(b,c,d) + x + ac; \ + a = ROTATE_LEFT(a,s); \ + a += b; \ + } + +static void HV_MD5Transform(unsigned int state[4],unsigned char block[64]); +static void HV_MD5Encode(unsigned char *output,unsigned int *input,unsigned int len); +static void HV_MD5Decode(unsigned int *output,unsigned char *input,unsigned int len); + +static unsigned char PADDING[] = { + 0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +void HV_MD5Init(HV_MD5_CTX *ctx) { + ctx->count[0] = 0; + ctx->count[1] = 0; + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xEFCDAB89; + ctx->state[2] = 0x98BADCFE; + ctx->state[3] = 0x10325476; +} + +void HV_MD5Update(HV_MD5_CTX *ctx,unsigned char *input,unsigned int inputlen) { + unsigned int i = 0,index = 0,partlen = 0; + index = (ctx->count[0] >> 3) & 0x3F; + partlen = 64 - index; + ctx->count[0] += inputlen << 3; + if(ctx->count[0] < (inputlen << 3)) { + ctx->count[1]++; + } + ctx->count[1] += inputlen >> 29; + + if(inputlen >= partlen) { + memcpy(&ctx->buffer[index],input,partlen); + HV_MD5Transform(ctx->state,ctx->buffer); + for(i = partlen;i+64 <= inputlen;i+=64) { + HV_MD5Transform(ctx->state,&input[i]); + } + index = 0; + } else { + i = 0; + } + + memcpy(&ctx->buffer[index],&input[i],inputlen-i); +} + +void HV_MD5Final(HV_MD5_CTX *ctx,unsigned char digest[16]) { + unsigned int index = 0,padlen = 0; + unsigned char bits[8]; + index = (ctx->count[0] >> 3) & 0x3F; + padlen = (index < 56)?(56-index):(120-index); + HV_MD5Encode(bits,ctx->count,8); + HV_MD5Update(ctx,PADDING,padlen); + HV_MD5Update(ctx,bits,8); + HV_MD5Encode(digest,ctx->state,16); +} + +void HV_MD5Encode(unsigned char *output,unsigned int *input,unsigned int len) { + unsigned int i = 0,j = 0; + while(j < len) { + output[j] = input[i] & 0xFF; + output[j+1] = (input[i] >> 8) & 0xFF; + output[j+2] = (input[i] >> 16) & 0xFF; + output[j+3] = (input[i] >> 24) & 0xFF; + i++; + j+=4; + } +} + +void HV_MD5Decode(unsigned int *output,unsigned char *input,unsigned int len) { + unsigned int i = 0,j = 0; + while(j < len) { + output[i] = (input[j]) | (input[j+1] << 8) | (input[j+2] << 16) | (input[j+3] << 24); + i++; + j+=4; + } +} + +void HV_MD5Transform(unsigned int state[4],unsigned char block[64]) { + unsigned int a = state[0]; + unsigned int b = state[1]; + unsigned int c = state[2]; + unsigned int d = state[3]; + unsigned int x[64]; + + HV_MD5Decode(x,block,64); + + FF(a, b, c, d, x[ 0], 7, 0xd76aa478); + FF(d, a, b, c, x[ 1], 12, 0xe8c7b756); + FF(c, d, a, b, x[ 2], 17, 0x242070db); + FF(b, c, d, a, x[ 3], 22, 0xc1bdceee); + FF(a, b, c, d, x[ 4], 7, 0xf57c0faf); + FF(d, a, b, c, x[ 5], 12, 0x4787c62a); + FF(c, d, a, b, x[ 6], 17, 0xa8304613); + FF(b, c, d, a, x[ 7], 22, 0xfd469501); + FF(a, b, c, d, x[ 8], 7, 0x698098d8); + FF(d, a, b, c, x[ 9], 12, 0x8b44f7af); + FF(c, d, a, b, x[10], 17, 0xffff5bb1); + FF(b, c, d, a, x[11], 22, 0x895cd7be); + FF(a, b, c, d, x[12], 7, 0x6b901122); + FF(d, a, b, c, x[13], 12, 0xfd987193); + FF(c, d, a, b, x[14], 17, 0xa679438e); + FF(b, c, d, a, x[15], 22, 0x49b40821); + + GG(a, b, c, d, x[ 1], 5, 0xf61e2562); + GG(d, a, b, c, x[ 6], 9, 0xc040b340); + GG(c, d, a, b, x[11], 14, 0x265e5a51); + GG(b, c, d, a, x[ 0], 20, 0xe9b6c7aa); + GG(a, b, c, d, x[ 5], 5, 0xd62f105d); + GG(d, a, b, c, x[10], 9, 0x2441453); + GG(c, d, a, b, x[15], 14, 0xd8a1e681); + GG(b, c, d, a, x[ 4], 20, 0xe7d3fbc8); + GG(a, b, c, d, x[ 9], 5, 0x21e1cde6); + GG(d, a, b, c, x[14], 9, 0xc33707d6); + GG(c, d, a, b, x[ 3], 14, 0xf4d50d87); + GG(b, c, d, a, x[ 8], 20, 0x455a14ed); + GG(a, b, c, d, x[13], 5, 0xa9e3e905); + GG(d, a, b, c, x[ 2], 9, 0xfcefa3f8); + GG(c, d, a, b, x[ 7], 14, 0x676f02d9); + GG(b, c, d, a, x[12], 20, 0x8d2a4c8a); + + HH(a, b, c, d, x[ 5], 4, 0xfffa3942); + HH(d, a, b, c, x[ 8], 11, 0x8771f681); + HH(c, d, a, b, x[11], 16, 0x6d9d6122); + HH(b, c, d, a, x[14], 23, 0xfde5380c); + HH(a, b, c, d, x[ 1], 4, 0xa4beea44); + HH(d, a, b, c, x[ 4], 11, 0x4bdecfa9); + HH(c, d, a, b, x[ 7], 16, 0xf6bb4b60); + HH(b, c, d, a, x[10], 23, 0xbebfbc70); + HH(a, b, c, d, x[13], 4, 0x289b7ec6); + HH(d, a, b, c, x[ 0], 11, 0xeaa127fa); + HH(c, d, a, b, x[ 3], 16, 0xd4ef3085); + HH(b, c, d, a, x[ 6], 23, 0x4881d05); + HH(a, b, c, d, x[ 9], 4, 0xd9d4d039); + HH(d, a, b, c, x[12], 11, 0xe6db99e5); + HH(c, d, a, b, x[15], 16, 0x1fa27cf8); + HH(b, c, d, a, x[ 2], 23, 0xc4ac5665); + + II(a, b, c, d, x[ 0], 6, 0xf4292244); + II(d, a, b, c, x[ 7], 10, 0x432aff97); + II(c, d, a, b, x[14], 15, 0xab9423a7); + II(b, c, d, a, x[ 5], 21, 0xfc93a039); + II(a, b, c, d, x[12], 6, 0x655b59c3); + II(d, a, b, c, x[ 3], 10, 0x8f0ccc92); + II(c, d, a, b, x[10], 15, 0xffeff47d); + II(b, c, d, a, x[ 1], 21, 0x85845dd1); + II(a, b, c, d, x[ 8], 6, 0x6fa87e4f); + II(d, a, b, c, x[15], 10, 0xfe2ce6e0); + II(c, d, a, b, x[ 6], 15, 0xa3014314); + II(b, c, d, a, x[13], 21, 0x4e0811a1); + II(a, b, c, d, x[ 4], 6, 0xf7537e82); + II(d, a, b, c, x[11], 10, 0xbd3af235); + II(c, d, a, b, x[ 2], 15, 0x2ad7d2bb); + II(b, c, d, a, x[ 9], 21, 0xeb86d391); + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; +} + +void hv_md5(unsigned char* input, unsigned int inputlen, unsigned char digest[16]) { + HV_MD5_CTX ctx; + HV_MD5Init(&ctx); + HV_MD5Update(&ctx, input, inputlen); + HV_MD5Final(&ctx, digest); +} + +static inline char i2hex(unsigned char i) { + return i < 10 ? i + '0' : i - 10 + 'a'; +} + +void hv_md5_hex(unsigned char* input, unsigned int inputlen, char* output, unsigned int outputlen) { + int i; + unsigned char digest[16]; + if (outputlen < 32) return; + hv_md5(input, inputlen, digest); + for (i = 0; i < 16; ++i) { + *output++ = i2hex(digest[i] >> 4); + *output++ = i2hex(digest[i] & 0x0F); + } + if (outputlen > 32) *output = '\0'; +} diff --git a/3rdPartner/libhv/util/md5.h b/3rdPartner/libhv/util/md5.h new file mode 100644 index 0000000..9909856 --- /dev/null +++ b/3rdPartner/libhv/util/md5.h @@ -0,0 +1,25 @@ +#ifndef HV_MD5_H_ +#define HV_MD5_H_ + +#include "hexport.h" + +typedef struct { + unsigned int count[2]; + unsigned int state[4]; + unsigned char buffer[64]; +} HV_MD5_CTX; + +BEGIN_EXTERN_C + +HV_EXPORT void HV_MD5Init(HV_MD5_CTX *ctx); +HV_EXPORT void HV_MD5Update(HV_MD5_CTX *ctx, unsigned char *input, unsigned int inputlen); +HV_EXPORT void HV_MD5Final(HV_MD5_CTX *ctx, unsigned char digest[16]); + +HV_EXPORT void hv_md5(unsigned char* input, unsigned int inputlen, unsigned char digest[16]); + +// NOTE: if outputlen > 32: output[32] = '\0' +HV_EXPORT void hv_md5_hex(unsigned char* input, unsigned int inputlen, char* output, unsigned int outputlen); + +END_EXTERN_C + +#endif // HV_MD5_H_ diff --git a/3rdPartner/libhv/util/sha1.c b/3rdPartner/libhv/util/sha1.c new file mode 100644 index 0000000..fea5b69 --- /dev/null +++ b/3rdPartner/libhv/util/sha1.c @@ -0,0 +1,313 @@ +/* +SHA-1 in C +By Steve Reid +100% Public Domain + +Test Vectors (from FIPS PUB 180-1) +"abc" + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +A million repetitions of "a" + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + +/* #define LITTLE_ENDIAN * This should be #define'd already, if true. */ +/* #define SHA1HANDSOFF * Copies data before messing with it. */ + +#define SHA1HANDSOFF + +#include +#include + +#include "sha1.h" + +#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) + +/* blk0() and blk() perform the initial expand. */ +/* I got the idea of expanding during the round function from SSLeay */ +#if BYTE_ORDER == LITTLE_ENDIAN +#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ + |(rol(block->l[i],8)&0x00FF00FF)) +#elif BYTE_ORDER == BIG_ENDIAN +#define blk0(i) block->l[i] +#else +#error "Endianness not defined!" +#endif +#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ + ^block->l[(i+2)&15]^block->l[i&15],1)) + +/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); +#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); +#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); + +/* Hash a single 512-bit block. This is the core of the algorithm. */ + +void HV_SHA1Transform( + uint32_t state[5], + const unsigned char buffer[64] +) +{ + uint32_t a, b, c, d, e; + + typedef union + { + unsigned char c[64]; + uint32_t l[16]; + } CHAR64LONG16; + +#ifdef SHA1HANDSOFF + CHAR64LONG16 block[1]; /* use array to appear as a pointer */ + + memcpy(block, buffer, 64); +#else + /* The following had better never be used because it causes the + * pointer-to-const buffer to be cast into a pointer to non-const. + * And the result is written through. I threw a "const" in, hoping + * this will cause a diagnostic. + */ + CHAR64LONG16 *block = (const CHAR64LONG16 *) buffer; +#endif + /* Copy context->state[] to working vars */ + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + e = state[4]; + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(a, b, c, d, e, 0); + R0(e, a, b, c, d, 1); + R0(d, e, a, b, c, 2); + R0(c, d, e, a, b, 3); + R0(b, c, d, e, a, 4); + R0(a, b, c, d, e, 5); + R0(e, a, b, c, d, 6); + R0(d, e, a, b, c, 7); + R0(c, d, e, a, b, 8); + R0(b, c, d, e, a, 9); + R0(a, b, c, d, e, 10); + R0(e, a, b, c, d, 11); + R0(d, e, a, b, c, 12); + R0(c, d, e, a, b, 13); + R0(b, c, d, e, a, 14); + R0(a, b, c, d, e, 15); + R1(e, a, b, c, d, 16); + R1(d, e, a, b, c, 17); + R1(c, d, e, a, b, 18); + R1(b, c, d, e, a, 19); + R2(a, b, c, d, e, 20); + R2(e, a, b, c, d, 21); + R2(d, e, a, b, c, 22); + R2(c, d, e, a, b, 23); + R2(b, c, d, e, a, 24); + R2(a, b, c, d, e, 25); + R2(e, a, b, c, d, 26); + R2(d, e, a, b, c, 27); + R2(c, d, e, a, b, 28); + R2(b, c, d, e, a, 29); + R2(a, b, c, d, e, 30); + R2(e, a, b, c, d, 31); + R2(d, e, a, b, c, 32); + R2(c, d, e, a, b, 33); + R2(b, c, d, e, a, 34); + R2(a, b, c, d, e, 35); + R2(e, a, b, c, d, 36); + R2(d, e, a, b, c, 37); + R2(c, d, e, a, b, 38); + R2(b, c, d, e, a, 39); + R3(a, b, c, d, e, 40); + R3(e, a, b, c, d, 41); + R3(d, e, a, b, c, 42); + R3(c, d, e, a, b, 43); + R3(b, c, d, e, a, 44); + R3(a, b, c, d, e, 45); + R3(e, a, b, c, d, 46); + R3(d, e, a, b, c, 47); + R3(c, d, e, a, b, 48); + R3(b, c, d, e, a, 49); + R3(a, b, c, d, e, 50); + R3(e, a, b, c, d, 51); + R3(d, e, a, b, c, 52); + R3(c, d, e, a, b, 53); + R3(b, c, d, e, a, 54); + R3(a, b, c, d, e, 55); + R3(e, a, b, c, d, 56); + R3(d, e, a, b, c, 57); + R3(c, d, e, a, b, 58); + R3(b, c, d, e, a, 59); + R4(a, b, c, d, e, 60); + R4(e, a, b, c, d, 61); + R4(d, e, a, b, c, 62); + R4(c, d, e, a, b, 63); + R4(b, c, d, e, a, 64); + R4(a, b, c, d, e, 65); + R4(e, a, b, c, d, 66); + R4(d, e, a, b, c, 67); + R4(c, d, e, a, b, 68); + R4(b, c, d, e, a, 69); + R4(a, b, c, d, e, 70); + R4(e, a, b, c, d, 71); + R4(d, e, a, b, c, 72); + R4(c, d, e, a, b, 73); + R4(b, c, d, e, a, 74); + R4(a, b, c, d, e, 75); + R4(e, a, b, c, d, 76); + R4(d, e, a, b, c, 77); + R4(c, d, e, a, b, 78); + R4(b, c, d, e, a, 79); + /* Add the working vars back into context.state[] */ + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + /* Wipe variables */ + a = b = c = d = e = 0; +#ifdef SHA1HANDSOFF + memset(block, '\0', sizeof(block)); +#endif +} + + +/* HV_SHA1Init - Initialize new context */ + +void HV_SHA1Init( + HV_SHA1_CTX * context +) +{ + /* SHA1 initialization constants */ + context->state[0] = 0x67452301; + context->state[1] = 0xEFCDAB89; + context->state[2] = 0x98BADCFE; + context->state[3] = 0x10325476; + context->state[4] = 0xC3D2E1F0; + context->count[0] = context->count[1] = 0; +} + + +/* Run your data through this. */ + +void HV_SHA1Update( + HV_SHA1_CTX * context, + const unsigned char *data, + uint32_t len +) +{ + uint32_t i; + + uint32_t j; + + j = context->count[0]; + if ((context->count[0] += len << 3) < j) + context->count[1]++; + context->count[1] += (len >> 29); + j = (j >> 3) & 63; + if ((j + len) > 63) + { + memcpy(&context->buffer[j], data, (i = 64 - j)); + HV_SHA1Transform(context->state, context->buffer); + for (; i + 63 < len; i += 64) + { + HV_SHA1Transform(context->state, &data[i]); + } + j = 0; + } + else + i = 0; + memcpy(&context->buffer[j], &data[i], len - i); +} + + +/* Add padding and return the message digest. */ + +void HV_SHA1Final( + unsigned char digest[20], + HV_SHA1_CTX * context +) +{ + unsigned i; + + unsigned char finalcount[8]; + + unsigned char c; + +#if 0 /* untested "improvement" by DHR */ + /* Convert context->count to a sequence of bytes + * in finalcount. Second element first, but + * big-endian order within element. + * But we do it all backwards. + */ + unsigned char *fcp = &finalcount[8]; + + for (i = 0; i < 2; i++) + { + uint32_t t = context->count[i]; + + int j; + + for (j = 0; j < 4; t >>= 8, j++) + *--fcp = (unsigned char) t} +#else + for (i = 0; i < 8; i++) + { + finalcount[i] = (unsigned char) ((context->count[(i >= 4 ? 0 : 1)] >> ((3 - (i & 3)) * 8)) & 255); /* Endian independent */ + } +#endif + c = 0200; + HV_SHA1Update(context, &c, 1); + while ((context->count[0] & 504) != 448) + { + c = 0000; + HV_SHA1Update(context, &c, 1); + } + HV_SHA1Update(context, finalcount, 8); /* Should cause a HV_SHA1Transform() */ + for (i = 0; i < 20; i++) + { + digest[i] = (unsigned char) + ((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255); + } + /* Wipe variables */ + memset(context, '\0', sizeof(*context)); + memset(&finalcount, '\0', sizeof(finalcount)); +} + +void HV_SHA1( + char *hash_out, + const char *str, + uint32_t len) +{ + HV_SHA1_CTX ctx; + unsigned int ii; + + HV_SHA1Init(&ctx); + for (ii=0; ii> 4); + *output++ = i2hex(digest[i] & 0x0F); + } + if (outputlen > 40) *output = '\0'; +} diff --git a/3rdPartner/libhv/util/sha1.h b/3rdPartner/libhv/util/sha1.h new file mode 100644 index 0000000..3d74765 --- /dev/null +++ b/3rdPartner/libhv/util/sha1.h @@ -0,0 +1,55 @@ +#ifndef HV_SHA1_H_ +#define HV_SHA1_H_ + +/* + SHA-1 in C + By Steve Reid + 100% Public Domain + */ + +/* for uint32_t */ +#include + +#include "hexport.h" + +typedef struct { + uint32_t state[5]; + uint32_t count[2]; + unsigned char buffer[64]; +} HV_SHA1_CTX; + +BEGIN_EXTERN_C + +HV_EXPORT void HV_SHA1Transform( + uint32_t state[5], + const unsigned char buffer[64] + ); + +HV_EXPORT void HV_SHA1Init( + HV_SHA1_CTX * context + ); + +HV_EXPORT void HV_SHA1Update( + HV_SHA1_CTX * context, + const unsigned char *data, + uint32_t len + ); + +HV_EXPORT void HV_SHA1Final( + unsigned char digest[20], + HV_SHA1_CTX * context + ); + +HV_EXPORT void HV_SHA1( + char *hash_out, + const char *str, + uint32_t len); + +HV_EXPORT void hv_sha1(unsigned char* input, uint32_t inputlen, unsigned char digest[20]); + +// NOTE: if outputlen > 40: output[40] = '\0' +HV_EXPORT void hv_sha1_hex(unsigned char* input, uint32_t inputlen, char* output, uint32_t outputlen); + +END_EXTERN_C + +#endif // HV_SHA1_H_ diff --git a/3rdPartner/libiconv-1.17.tar.gz b/3rdPartner/libiconv-1.17.tar.gz new file mode 100644 index 0000000..12b0cd7 Binary files /dev/null and b/3rdPartner/libiconv-1.17.tar.gz differ diff --git a/3rdPartner/libiconv/ABOUT-NLS b/3rdPartner/libiconv/ABOUT-NLS new file mode 100644 index 0000000..0a9d56d --- /dev/null +++ b/3rdPartner/libiconv/ABOUT-NLS @@ -0,0 +1 @@ + diff --git a/3rdPartner/libiconv/AUTHORS b/3rdPartner/libiconv/AUTHORS new file mode 100644 index 0000000..8bedd79 --- /dev/null +++ b/3rdPartner/libiconv/AUTHORS @@ -0,0 +1 @@ +Bruno Haible diff --git a/3rdPartner/libiconv/COPYING b/3rdPartner/libiconv/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/3rdPartner/libiconv/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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. But first, please read +. diff --git a/3rdPartner/libiconv/COPYING.LIB b/3rdPartner/libiconv/COPYING.LIB new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/3rdPartner/libiconv/COPYING.LIB @@ -0,0 +1,502 @@ + 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/3rdPartner/libiconv/ChangeLog b/3rdPartner/libiconv/ChangeLog new file mode 100644 index 0000000..ca0b68a --- /dev/null +++ b/3rdPartner/libiconv/ChangeLog @@ -0,0 +1,5838 @@ +2022-05-15 Bruno Haible + + Switch to libtool 2.4.7. + * m4/libtool.m4: Update from libtool-2.4.7, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: Likewise. + * m4/ltsugar.m4: Likewise. + * m4/ltversion.m4: Likewise. + * m4/lt~obsolete.m4: Likewise. + * build-aux/ltmain.sh: Update from libtool-2.4.7, with modifications: + 2017-07-15 Bruno Haible + Allow building statically linked binaries, through + LDFLAGS="-static". Apply patch from + . + * build-aux/ltmain.sh (func_mode_help, func_mode_link): In the + link mode, accept option '-static-uninstalled-libs' in place of + '-static', and make '-static' an equivalent of '-all-static'. + +2022-04-13 Bruno Haible + + Fix undefined behaviour. + * tests/test-shiftseq.c (main2): Make input array larger. + +2022-02-12 Bruno Haible + + Update translations. + * po/ro.po: Update Romanian translations. + * po/wa.po: Update Walloon translations. + +2022-02-12 Bruno Haible + + Prepare for version 1.17. + * configure.ac: Bump version number to 1.17. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7. + * src/iconv.c (print_version): Update copyright year. + * windows/iconv.rc: Likewise. + * windows/libiconv.rc: Likewise. + * README: Update download link. + +2022-02-12 Bruno Haible + + Update source file list (regression 2022-01-23). + * lib/Makefile.in (SOURCE_FILES): Add encodings_zos.def, ebcdic*.h. + (GENERATED_FILES): Add aliases_zos.h, canonical_zos.h. + * tests/Makefile.in (SOURCE_FILES): Add IBM-*.TXT. + +2022-01-23 Bruno Haible + + Update NEWS. + * NEWS: Mention the EBCDIC encodings. + +2022-01-23 Bruno Haible + + Optimize the EBCDIC table sizes. + * lib/converters.h (DEDUPLICATE_TABLES): New macro. + * lib/ebcdic1025.h: Deduplicate tables with ebcdic880.h. + * lib/ebcdic1123.h: Deduplicate tables with ebcdic1025.h. + * lib/ebcdic1132.h: Deduplicate tables with ebcdic838.h. + * lib/ebcdic1153.h: Deduplicate tables with ebcdic870.h. + * lib/ebcdic1154.h: Deduplicate tables with ebcdic880.h. + * lib/ebcdic1155.h: Deduplicate tables with ebcdic1026.h. + * lib/ebcdic1156.h: Deduplicate tables with ebcdic1112.h. + * lib/ebcdic1157.h: Deduplicate tables with ebcdic1122.h. + * lib/ebcdic1158.h: Deduplicate tables with ebcdic1154.h, ebcdic1123.h. + * lib/ebcdic1160.h: Deduplicate tables with ebcdic838.h. + * lib/ebcdic1164.h: Deduplicate tables with ebcdic1130.h. + * lib/ebcdic1165.h: Deduplicate tables with ebcdic870.h. + * lib/ebcdic1166.h: Deduplicate tables with ebcdic1154.h. + * lib/ebcdic4971.h: Deduplicate tables with ebcdic875.h. + * lib/ebcdic12712.h: Deduplicate tables with ebcdic424.h. + +2022-01-23 Bruno Haible + + New EBCDIC encodings. + Reported by Ulrich Schwab and Calvin Buckley via Jack Woehr. + * NOTES: Mention how to enable EBCDIC encodings. + * tests/IBM-*.TXT: New files. + * tools/8bit_tab_to_h.c (main): Emit copyright header with year 2022. + * tools/Makefile: Add rules for generating ebcdic*.h. + * lib/ebcdic*.h: New files, automatically generated by tools/Makefile. + * lib/ebcdic838.h: Tweak reverse mapping manually. + * lib/ebcdic1160.h: Likewise. + * lib/converters.h: Include all ebcdic*.h. + * lib/encodings_zos.def: New file. + * lib/genaliases2.c: Include encodings_zos.def. + * lib/genflags.c: Likewise. + * Makefile.devel (lib/aliases_zos.h lib/canonical_zos.h): New rule. + (lib/flags.h, totally-clean): Update. + * lib/aliases2.h: Include aliases_zos.h. + * lib/iconv.c (USE_ZOS): New macro. + Include encodings_zos.def, canonical_zos.h. + * README, man/iconv_open.3: Document the IBM-* encodings. + * tests/Makefile.in (check-extra-yes): Also test the EBCDIC encodings. + +2022-01-04 Bruno Haible + + Update after gnulib changed. + * gnulib-local/m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H + instead of ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations. + +2021-09-19 Bruno Haible + + tests: Avoid check-subst failures in QEMU user-mode environments. + * Makefile.devel (GNULIB_MODULES): Add stdbool. + (gnulib-imported-files): Copy also tests/qemu.h. + * tests/is-native.c: New file. + * tests/Makefile.in (is-native, is-native.@OBJEXT@): New targets. + (clean): Remove the 'is-native' program. + (SOURCE_FILES): Add is-native.c. + (IMPORTED_FILES): Add qemu.h. + * tests/check-subst: Invoke 'locale charmap' only in native + environments. + +2021-06-27 Bruno Haible + + README: Update. + Reported at . + * README: Overhaul the paragraph that mentions iconv.m4. + +2021-06-06 Bruno Haible + + gnulib-local: Put real license notice into the source files. + * gnulib-local/lib/alloca.in.h: Use an LGPLv2+ notice. + +2021-02-28 Bruno Haible + + Update DEPENDENCIES. + * DEPENDENCIES: List the normal dependencies of a package with an + Autoconf-generated configure file. + +2021-02-07 Bruno Haible + + Support creating shared libraries on MidnightBSD. + Patch from . + * m4/libtool.m4: Treat MidnightBSD like FreeBSD. + * build-aux/ltmain.sh: Likewise. + +2021-01-31 Bruno Haible + + Update after gnulib changed on 2020-08-26. + * configure.ac: Test $iconv_arg1, not $am_cv_proto_iconv_arg1. + +2021-01-31 Bruno Haible + + Switch to autoconf 2.71. + * autogen.sh: Update comment. + * configure.ac: Use AS_HELP_STRING instead of AC_HELP_STRING. Invoke + AC_C_BIGENDIAN instead of CL_WORDS_LITTLEENDIAN. + * m4/eilseq.m4: Require Autoconf >= 2.61. + (AC_EILSEQ): Improve quoting. Use AC_COMPUTE_INT instead of + _AC_COMPUTE_INT. + * m4/endian.m4: Remove file. + * Makefile.in (SOURCE_FILES): Remove it. + +2020-12-08 Bruno Haible + + Switch to autoconf 2.70. + * Makefile.devel (AUTOCONF, AUTOHEADER): Remove '-2.69' suffix. + * HACKING: Remove sentence about symbolic links. + * autogen.sh: Update comment. + +2020-08-31 Bruno Haible + + Fix some -Wcast-qual warning, reported by clang. + * lib/iconv.c (compare_by_name): Add more 'const'. + (iconv_canonicalize): Cast value to 'unsigned char', not pointer to 'unsigned char *'. + * lib/iconv_open1.h: Likewise. + +2020-08-30 Bruno Haible + + Make sure that build-aux/compile is in the tarball. + * autogen.sh: Fetch also 'build-aux/compile' through gnulib-tool. + * Makefile.devel (srclib/Makefile.in): Don't fetch nor delete + 'build-aux/compile'. + * Makefile.in (AUTOMAKE_IMPORTED_FILES): Remove build-aux/compile. + (IMPORTED_FILES): Add build-aux/compile. + +2020-08-29 Bruno Haible + + Update after gnulib changed. + * configure.ac (AC_PREREQ): Bump minimum Autoconf version to 2.64. + +2020-08-06 Bruno Haible + + Avoid a GCC warning with GCC >= 7. + Reported by Reini Urban + in . + * lib/gentranslit.c (main): Reset i to 0 each time p gets a new value. + Add assertion about i's possible values. + +2020-04-05 Bruno Haible + + Fix an autogen.sh failure (regression from 2016-12-04). + Reported by Petr Ovtchenkov in + . + * autogen.sh: Invoke also the Makefile target srclib/Makefile.in, so as + to get build-aux/install-sh. Finish the "copy files" phase before recursing + through the subpackages tree through Makefile.devel. + * Makefile.devel: Reorder targets. + +2020-04-04 Bruno Haible + + Don't use LGPLv3. + * gnulib-local/modules/mbstate (License): Set to LGPLv2+. + +2020-04-04 Bruno Haible + + Change the license of the library from LGPL 2.0 to LGPL 2.1. + * COPYING.LIB: Upgrade to LGPL 2.1. + +2019-12-23 Bruno Haible + + Do export the symbol 'locale_charset' (needed by GNU bash). + * lib/Makefile.in (DEFS): Define also BUILDING_LIBCHARSET. + +2019-09-01 Bruno Haible + + build: Add support for shallow-cloning of subdirectories. + * gitsub.sh (func_usage): Document allowed git options with 'git pull'. + (func_pull): Accept GIT_OPTIONS argument. + (pull): Parse git options before complaining about too many arguments. + Pass the git options to func_pull. + +2019-07-05 Bruno Haible + + Don't export the symbol 'aliases_lookup' on non-ELF platforms. + * Makefile.devel (lib/aliases.h, lib/aliases_sysaix.h, + lib/aliases_syshpux.h, lib/aliases_sysosf1.h, lib/aliases_syssolaris.h): + Add a 'static' keyword in front of the declaration of aliases_lookup. + +2019-07-02 Bruno Haible + + Update to current gnulib. + * Makefile.devel (GNULIB_MODULES): Add lib-symbol-visibility. + (srclib/Makefile.gnulib): Copy codeset.m4. + * srclib/Makefile.am (AM_CFLAGS): Initialize. + +2019-07-02 Bruno Haible + + Drop unused macro gl_GLIBC21. + * autogen.sh: Don't copy glibc21.m4. + +2019-05-22 Bruno Haible + + Fix comment. + Reported by Paul Hardy . + * lib/jisx0213.h: Fix comment about the underlying standard version. + +2019-05-11 Bruno Haible + + Update bug reporting instructions. + * README: Tell users to report bugs in the bug tracker or by email. + * src/iconv.c (usage): Likewise. + (print_version): Move URL out of translatable string. + +2019-04-26 Bruno Haible + + Update translations. + $ rsync -Lrtvz translationproject.org::tp/latest/libiconv/ po/new + $ cd po/new + $ for f in *.po; do \ + msgmerge --update --lang=${f%.po} --previous $f ../libiconv.pot; \ + done + $ mv *.po ../ + $ cd ..; rm -rf new + +2019-04-26 Bruno Haible + + Update POT file. + $ cd po; make update-po + +2019-04-26 Bruno Haible + + Prepare for version 1.16. + * configure.ac: Bump version number to 1.16. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 8:1:6. + * src/iconv.c (print_version): Update copyright year. + * windows/iconv.rc: Likewise. + * windows/libiconv.rc: Likewise. + * README: Update download link. + +2019-04-26 Bruno Haible + + Tweak exported symbols when --enable-relocatable is used. + * lib/Makefile.in (DEFS): Map 'relocate2' to a different symbol. + +2019-04-01 Bruno Haible + + build: Separate git operations from build operations. + * gitsub.sh: New file, from gnulib. + * .gitmodules: New file. + * autogen.sh: Remove all git operations. Look at GNULIB_SRCDIR + environment variable. Ignore the GNULIB_TOOL environment variable. + * HACKING: Explain when to use gitsub.sh. + +2019-03-07 Bruno Haible + + Avoid signed integer overflow during shifts. + Reported by Jeffrey Walton . + * lib/tcvn.h (tcvn_wctomb): Use unsigned integer type for bit mask + operation. + * lib/viscii.h (viscii_wctomb): Likewise. + +2019-03-04 Bruno Haible + + Add support for --enable-relocatable to libcharset. + * autogen.sh: Copy some more files to libcharset/build-aux/ and + libcharset/m4/. + +2019-03-04 Bruno Haible + + Update --enable-relocatable support after gnulib changed. + * configure.ac: Move the LT_INIT invocation before the gl_RELOCATABLE + invocation. Remove unused argument to gl_RELOCATABLE. + +2019-01-27 Bruno Haible + + Accommodate a shell that is not in /bin/sh. + * Makefile.in (SHELL): Use the value found by configure. + * lib/Makefile.in (SHELL): Likewise. + * man/Makefile.in (SHELL): Likewise. + * src/Makefile.in (SHELL): Likewise. + * tests/Makefile.in (SHELL): Likewise. + (check, check-extra-yes): Use SHELL to run the check-* scripts. + +2019-01-27 Bruno Haible + + Update after gnulib changed. + * Makefile.in (GNULIB_IMPORTED_FILES): Remove build-aux/snippet/*. + +2019-01-27 Bruno Haible + + Update support for building with MSVC. Automake does not install ar-lib. + * autogen.sh: Fetch build-aux/ar-lib here. + * Makefile.devel (srclib/Makefile.in): Don't fetch build-aux/ar-lib + here. + * Makefile.in (AUTOMAKE_IMPORTED_FILES): Remove build-aux/ar-lib. + (IMPORTED_FILES): Add build-aux/ar-lib. + +2019-01-06 Bruno Haible + + Revisit handling of file descriptors closed by the parent process. + * src/iconv.c (main): Add comment. + +2018-10-23 Bruno Haible + + Remove outdated DJGPP build infrastructure. + Approved by Juan Manuel Guerrero . + * djgpp: Remove directory. + * INSTALL.djgpp: Remove file. + * Makefile.in (SOURCE_FILES): Remove them. + +2018-10-23 Bruno Haible + + Update after gnulib changed. + * configure.ac (AC_PREREQ): Bump minimum Autoconf version to 2.63. + +2018-09-22 Bruno Haible + + Avoid some warnings in MSVC build. + * include/export.h: Handle MSVC compiler as well. + +2018-09-22 Bruno Haible + + Update from gnulib. Move mapping tables into the code. + * autogen.sh: Don't create libcharset/m4/relocatable-lib.m4. + * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): Don't + remove lib/charset.alias. + * tests/check-subst: Don't set CHARSETALIASDIR. + +2018-05-04 Bruno Haible + + Drop special instructions for OSF/1. + * INSTALL.generic: Remove the recommendation for OSF/1. + +2018-05-04 Bruno Haible + + Simplify: Remove the ability to install a preloadable library. + * preload/*: Remove directory. + * Makefile.devel: Don't recurse into 'preload'. + * Makefile.in: Likewise. + * configure.ac: Don't declare 'preload' as a subdirectory. + * README, NEWS: Update. + +2018-05-04 Bruno Haible + + Simplify code. Drop support for Borland C++ on Windows. + * lib/iconv.c: Simplify 'defined _WIN32 || defined __WIN32__' to just + 'defined _WIN32'. + * lib/iconv_open1.h: Likewise. + +2018-05-04 Bruno Haible + + * lib/relocatable.c: Update from gnulib. + +2018-05-04 Bruno Haible + + Switch to automake 1.16. + * autogen.sh: Update comment. + * Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.16. + * libcharset/Makefile.devel (ACLOCAL): Likewise. + * preload/Makefile.devel (ACLOCAL): Likewise. + +2018-03-27 Bruno Haible + + Doc tweaks. + * README: Don't recommend to use --prefix=/usr/local, as it produces + problems with GCC (since GCC's treatment of /usr/local/include and + /usr/local/lib is inconsistent by default). Don't recommend to use + the iconv.m4 installed by GNU gettext, because it won't work when + GNU automake and GNU gettext are installed with different --prefix + options; instead recommend the 'iconv' module from gnulib. + +2018-01-27 Bruno Haible + + Rename some files. + * INSTALL.windows: Renamed from README.windows. + * INSTALL.djgpp: Renamed from README.djgpp. + * Makefile.in (SOURCE_FILES): Update. + +2018-01-03 Bruno Haible + + Fix installation in 64-bit mode on AIX. + * lib/Makefile.in (AR): New variable. + (install): Use it instead of hardcoding 'ar'. + +2017-11-26 Bruno Haible + + Avoid end-of-lines problem in generated shell scripts on Cygwin. + Patch by Feiyun Wang . + * lib/genaliases.c (main): Create canonical.sh and canonical_local.sh + with Unix end-of-line characters, regardless of Cygwin choice of + text mode vs. binary mode. + +2017-07-15 Bruno Haible + + Allow building statically linked binaries, through LDFLAGS="-static". + Apply patch from + . + * build-aux/ltmain.sh (func_mode_help, func_mode_link): In the link + mode, accept option '-static-uninstalled-libs' in place of '-static', + and make '-static' an equivalent of '-all-static'. + +2017-07-15 Bruno Haible + + Don't attempt to build preloadable_libiconv.so when linking statically. + * preload/configure.ac (enable_shared, enable_static): Don't force + shared libraries when LDFLAGS indicates static linking. + (PLUGLIB): Set to empty when is not configured for building shared + libraries. + +2017-07-15 Bruno Haible + + Get rid of autom4te.cache directories, as far as possible. + * Makefile.devel (srclib/Makefile.in, aclocal.m4, configure, + config.h.in): Remove autom4te.cache after invoking aclocal, autoconf, + autoheader, automake. + * preload/Makefile.devel (aclocal, configure): Likewise. + +2017-05-18 Bruno Haible + + * lib/relocatable.h: Update from gnulib. + * lib/relocatable.c: Update from gnulib. + +2017-01-30 Bruno Haible + + Prepare for version 1.15. + * src/iconv.c (print_version): Update copyright year. + * windows/iconv.rc: Likewise. + * windows/libiconv.rc: Likewise. + +2016-12-29 Bruno Haible + + Make Makefile.devel consistent with .gitignore. + * Makefile.devel (srclib/Makefile.in): Depend on aclocal.m4. + (totally-clean): Remove also aclocal.m4. + +2016-12-25 Bruno Haible + + Tweak autogen.sh. + * autogen.sh: Emit a "done" diagnostic when autogen.sh completed + successfully. + +2016-12-25 Bruno Haible + + Reorder Makefile.devel. + * Makefile.devel: Reorder: put gnulib targets before autotools targets. + +2016-12-14 Bruno Haible + + Cleanup useless removals. + * lib/Makefile.in (distclean): No need to remove 'libtool'. + +2016-12-04 Bruno Haible + + Update comments. + * Makefile.devel: Update comments about release process. + +2016-12-04 Bruno Haible + + Create tarballs through an Automake-like "make dist" command. + * Makefile.in (SOURCE_FILES, LIBTOOL_IMPORTED_FILES, + AUTOMAKE_OLD_IMPORTED_FILES, AUTOMAKE_IMPORTED_FILES, IMPORTED_FILES, + GENERATED_FILES, DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + (PACKAGE, VERSION, TAR, GZIP): New macros. + (dist): New target. + * lib/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES, + DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + * man/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES, + DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + * preload/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES, + DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + * src/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES, + DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + * tests/Makefile.in (SOURCE_FILES, IMPORTED_FILES, GENERATED_FILES, + DISTRIBUTED_BUILT_FILES, DISTFILES): New macros. + (distdir): New target. + +2016-12-04 Bruno Haible + + Remove duplicates of imported files from version control. + * autogen.sh: Copy imported files to libcharset. + +2016-12-04 Bruno Haible + + Always use the newest released copies of files brought in from Automake. + * Makefile.devel (srclib/Makefile.in): Make sure to get new versions of + files brought in by automake. + * build-aux/install-sh: Remove from version control. + * build-aux/missing: Likewise. + +2016-12-04 Bruno Haible + + Always use the newest copies of config.guess, config.sub. + * Makefile.devel (gnulib-imported-files): New target. + * autogen.sh: Invoke it. + * build-aux/config.guess: Remove from version control. + * build-aux/config.sub: Likewise. + +2016-12-04 Bruno Haible + + Always use the newest copy of fcntl-o.m4. + * m4/fcntl-o.m4: Remove file. Rely on srcm4/fcntl-o.m4 instead. + +2016-12-04 Bruno Haible + + Remove obsolete documentation. + * PORTS: Remove file. + +2016-12-03 Bruno Haible + + Make Makefile.devel more useful for the users of the released tarball. + * Makefile.devel (srclib/Makefile.gnulib): Don't force this target. + (gnulib-clean): New target. + (totally-clean): New target. Do the removals from autogen.sh. Also, + remove lib/aliases*.gperf, lib/canonical*.h, man/iconvctl.3.html, + man/iconv_open_into.3.html. + * autogen.sh: Invoke target gnulib-clean before srclib/Makefile.gnulib. + Invoke target totally-clean before all. + * preload/Makefile.devel (totally-clean): New target. + +2016-12-03 Bruno Haible + + Modernize configure.ac. + * configure.ac: Use 2-argument AC_INIT. Avoid an AM_INIT_AUTOMAKE + warning. + * preload/configure.ac: Use 2-argument AC_INIT. Use AC_CONFIG_SRCDIR. + +2016-12-03 Bruno Haible + + Towards reproducible builds. + * Makefile.devel (man/%.html): Remove the CreationDate comment line + from the output. + +2016-12-04 Bruno Haible + + Update to gettext-0.19.8.1. + * ABOUT-NLS: Update through 'gettextize'. + +2016-12-03 Bruno Haible + + Update documentation. + * HACKING: Refer to the Git repository. + +2016-12-03 Bruno Haible + + Avoid compilation warnings in 'genflags' program. + * lib/genflags.c: Avoid warnings from GCC's -Wunused-function option. + +2016-12-02 Bruno Haible + + * relocatable.c: Update from gnulib. + +2016-11-25 Bruno Haible + + Prepare for version 1.15. + * configure.ac: Bump version number to 1.15. + * README: Likewise. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * windows/iconv.rc: Update. + * windows/libiconv.rc: Update. + * Makefile.devel: Update comments. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 8:0:6. + * src/iconv.c (print_version): Update copyright year. + +2016-11-23 Bruno Haible + + Update installation instructions for Windows. + * README.windows: Assume a 64-bit Windows. Explain both 32-bit and + 64-bit builds. Add instructions for the MS Visual C/C++ tool chain. + Revamp instructions for Cygwin. + +2016-11-23 Bruno Haible + + Drop the nickname "woe32". + * README.windows: Renamed from README.woe32. + +2016-11-22 Bruno Haible + + Update support for building with MSVC. + * Makefile.devel (srclib/Makefile.in): Import 'ar-lib' and 'compile' + from gnulib. + * lib/Makefile.in (install-lib, install): Install the .la file with + $(INSTALL), not $(INSTALL_DATA). Otherwise the native Windows DLL gets + installed without execution permissions, and programs linked to it fail: + in a Cygwin shell with exit code 127, or from a cmd.exe window with a + dialog "The application was unable to start correctly (0xc0000022)." + +2016-11-19 Bruno Haible + + Fix link error when compiling with gcc -O0. + * lib/iconv.c (aliases2_lookup): Make static. + Reported by Chung-Lin Tang + at https://savannah.gnu.org/bugs/?47953 . + +2016-11-17 Bruno Haible + + UTF-8: Reject surrogates and out-of-range code points. + * lib/utf8.h (utf8_mbtowc, utf8_wctomb): Reject code points in the + range 0xD800..0xDFFF and >= 0x110000. + * tests/genutf8.c (main): Don't emit mappings for 0xD800..0xDFFF. + +2016-10-22 Bruno Haible + + Switch to libtool 2.4.6. + * m4/libtool.m4: Update from libtool-2.4.6, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}.. + * m4/ltoptions.m4: Likewise. + * m4/ltversion.m4: Likewise. + * build-aux/ltmain.sh: Likewise. + +2016-10-14 Bruno Haible + + Use 'size_t', not 'int', for the length of a string. + * lib/iconv.c: Include . + * lib/genflags.c: Likewise. + * lib/converters.h (struct mbtowc_funcs, struct wctomb_funcs): Change + 'int n' parameter to 'size_t n'. + (RET_COUNT_MAX): New macro. + * lib/*.h: Use 'size_t n' instead of 'int n'. + * lib/ucs2.h (ucs2_mbtowc): Make sure 'count' does not cause an 'int' + overflow. + * lib/ucs4.h (ucs4_mbtowc): Likewise. + * lib/utf16.h (utf16_mbtowc): Likewise. + * lib/utf32.h (utf32_mbtowc): Likewise. + * tools/8bit_tab_to_h.c: Generate function signatures with 'size_t n'. + * tools/cjk_tab_to_h.c: Likewise. + * NEWS: Mention the change. + +2016-10-04 Bruno Haible + + Extend CP1255 mapping. + * lib/cp1255.h (cp1255_2uni, cp1255_page05): Map 0xCA to U+05BA. + * tests/CP1255.TXT: Likewise. + This matches https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt + and what the native Windows converter does since at least Windows XP. + +2016-10-01 Ben Noordhuis (tiny change) + Bruno Haible + + Remove large stack requirement from gentranslit. + * lib/gentranslit.c (main): Heap-allocate large arrays. + * Makefile.devel (lib/translit.h): Remove 'ulimit -s unlimited' command. + +2015-12-10 Ben Noordhuis (tiny change) + + Remove unused array from gentranslit. + * lib/gentranslit.c (main): Remove unused array. + * Makefile.devel (CC): Add -Wall option. + Reported in https://savannah.gnu.org/bugs/?46663 . + +2016-10-01 Bruno Haible + + Fix bug #41187. + * src/iconv.c (main): Increment i after parsing the --silent option. + Reported in https://savannah.gnu.org/bugs/?41187 . + +2016-10-01 Bruno Haible + + Update to current gnulib. + * Makefile.devel (GNULIB_MODULES): Remove memmove. + * tests/Makefile.in (INCLUDES): Make sure to include the top-level + "config.h". Needed for the 'binary-io' module. + +2016-10-01 Bruno Haible + + Switch to automake 1.15. + * autogen.sh: Update comment. + * Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.15. + (srclib/Makefile.in): Don't remove auxiliary files brought in by + automake. + * preload/Makefile.devel (ACLOCAL): Switch to version 1.15. + * srclib/Makefile.am (AUTOMAKE_OPTIONS): Add subdir-objects. + * build-aux/missing: Update from automake-1.15. + +2016-10-01 Bruno Haible + + Remove autogenerated doc files from version control. + * man/iconvctl.3.html: Remove file. + * man/iconv_open_into.3.html: Remove file. + +2012-12-06 Bruno Haible + + Change copyright holder of man pages. + * man/*.[13]: Replace myself with FSF. + +2012-06-30 Bruno Haible + + Make it possible to run 'genaliases2' on native Windows. + * lib/genaliases2.c (main): Expect 3 arguments. Open the output files + explicitly. Complain if they don't exist. + * Makefile.devel (lib/aliases_*.h): Pass the output filenames as + arguments to genaliases. + Reported at . + + Make it possible to run 'genaliases' on native Windows. + * lib/genaliases.c (main): Expect 3 arguments. Open the output files + explicitly. Complain if they don't exist. Improve error checking. + * Makefile.devel (lib/aliases*.h): Pass the output filenames as + arguments to genaliases. + Reported at . + +2012-05-13 Bruno Haible + + Tweak the GB18030 converter to map 0x8135F437 to U+E7C7. + * lib/gb18030.h (gb18030_pua2charset, gb18030_wctomb): Remove mapping + from U+E7C7 to 0xA8BC. + * lib/gb18030uni.h (gb18030uni_mbtowc): Treat 0x8135F437 as a special + case. + (gb18030uni_wctomb): Treat U+E7C7 as a special case. + * tests/GB18030-BMP.TXT: Map 0x8135F437 to U+E7C7, not U+1E3F. + * tests/GB18030.IRREVERSIBLE.TXT: Remove irreversible mappings for + 0x8135F437 and U+E7C7. + +2012-04-28 Bruno Haible + + Switch to autoconf 2.69 and automake 1.12. + * autogen.sh: Update comment. + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.69. + (AUTOMAKE, ACLOCAL): Switch to version 1.12. + * preload/Makefile.devel (AUTOCONF): Switch to version 2.69. + (ACLOCAL): Switch to version 1.12. + +2012-03-24 Bruno Haible + + Avoid a GCC warning. + * lib/isoir165.h (isoir165_mbtowc): Don't shadow the 'ret' variable. + +2012-01-26 Bruno Haible + + Modernize quoting. + * README: Quote 'like this', not `like this', as per the recent change + to the GNU coding standards. + * NOTES: Likewise. + * gnulib-local/lib/xmalloc.c: Likewise. + * lib/config.h.in: Likewise. + * src/iconv.c (usage): Likewise. + * tests/uniq-u.c: Likewise. + * tools/cjk_tab_to_h.c (output_uni2charset_sparse, do_jisx0213): + Likewise. + * lib/big5.h: Update accordingly. + * lib/cns11643_inv.h: Likewise. + * lib/cp932ext.h: Likewise. + * lib/cp950ext.h: Likewise. + * lib/gb12345ext.h: Likewise. + * lib/gb2312.h: Likewise. + * lib/gbkext_inv.h: Likewise. + * lib/hkscs1999.h: Likewise. + * lib/hkscs2001.h: Likewise. + * lib/hkscs2004.h: Likewise. + * lib/hkscs2008.h: Likewise. + * lib/isoir165ext.h: Likewise. + * lib/jisx0208.h: Likewise. + * lib/jisx0212.h: Likewise. + * lib/jisx0213.h: Likewise. + * lib/ksc5601.h: Likewise. + * lib/uhc_1.h: Likewise. + * lib/uhc_2.h: Likewise. + +2012-01-15 Bruno Haible + + Support for MSVC 9. + * lib/config.h.in (inline, mode_t, ssize_t): Copy snippets from top + config.h.in. + * tests/genutf8.c: Include config.h. + * tests/gengb18030z.c: Likewise. + * woe32dll/export.h (VARIABLE): Define to empty if not using GCC. + +2011-01-28 Bruno Haible + + Add a comment. + * woe32dll/export.h: Add a reference to the woe32dll writeup. + +2012-01-06 Bruno Haible + + Update after gnulib changed. + * gnulib-local/lib/error.h.diff: Update. + +2012-01-06 Bruno Haible + + Talk about "native Windows API", not "Woe32". + * lib/relocatable.c: Update comments to mention native Windows. + +2012-01-04 Bruno Haible + + Talk about "native Windows API", not "Win32". + * lib/relocatable.c: Update comments to mention native Windows. + (WINDOWS_NATIVE): Renamed from WIN32_NATIVE. + +2011-10-27 Bruno Haible + + Fix bug with error handling in UCS-2, UCS-4, UTF-32 decoders. + * lib/ucs2.h (ucs2_mbtowc): Increment count only after validating wc. + * lib/ucs4.h (ucs4_mbtowc): Likewise. + * lib/utf32.h (utf32_mbtowc): Likewise. + Reported at . + +2012-06-30 Bruno Haible + + Improve ISO-2022-CP-MS versus CP932. + * lib/iso2022_jpms.h (iso2022_jpms_mbtowc): Recognize characters from + the rows 0x79..0x7C as rows from CP932. + * tests/ISO-2022-JP-MS-snippet.alt: New file, renamed from + tests/ISO-2022-JP-MS-snippet. + * tests/ISO-2022-JP-MS-snippet.UTF-8: Update the rows that correspond + to ESC $ B 0x79..0x7C. + * tests/ISO-2022-JP-MS-snippet: Likewise. + * tests/check-stateful: Also test the *-snippet.alt file if it exists. + * tests/check-stateful.bat: Likewise. + +2012-06-30 Bruno Haible + + Improve ISO-2022-CP-MS versus CP932. + * lib/cp50221_0208_ext.h (cp50221_0208_ext_page30): Map U+301D like + U+301E. + * lib/iso2022_jpms.h (iso2022_jpms_wctomb): Map U+663B to JISX0208 + 0x7A 0x36, U+FFE2 to 0x7C 0x7B, U+FFE4 to 0x7C 0x7C. + Reported by Jeff Diehl . + +2011-10-23 Bruno Haible + + New encoding ISO-2022-CP-MS. + * NOTES: Mention ISO-2022-JP-MS. + * tools/CP50221-0208-EXT.TXT: New file. + * tools/CP50221-0212-EXT.TXT: New file. + * tools/8bit_tab_to_h.c: Add comments about how to generate + cp50221_0208_ext.h, cp50221_0212_ext.h. + * tools/Makefile: Add rules for generating cp50221_0208_ext.h, + cp50221_0212_ext.h. + * lib/cp50221_0208_ext.h: New file, mostly generated. + * lib/cp50221_0212_ext.h: New file, mostly generated. + * lib/iso2022_jpms.h: New file. + * lib/converters.h: Include it. + * lib/encodings.def: Add ISO-2022-JP-MS. + * README, man/iconv_open.3: Add ISO-2022-JP-MS. + * tests/ISO-2022-JP-MS-snippet: New file. + * tests/ISO-2022-JP-MS-snippet.UTF-8: New file. + * tests/Makefile.in (check): Also test ISO-2022-JP-MS. + Reported by Jeff Diehl . + +2011-10-23 Bruno Haible + + * lib/encodings.def: Add comments about Windows names of encodings. + +2011-10-18 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.4.2, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}.. + * m4/ltoptions.m4: Likewise. + * m4/ltversion.m4: Likewise. + * build-aux/ltmain.sh: Likewise. + +2011-10-03 Bruno Haible + + * lib/relocatable.c: Update from gnulib. + +2011-09-02 Bruno Haible + + Fix "make check" failure when $(srcdir) != $(builddir). + * tests/Makefile.in (check): When $(srcdir) != ., temporarily copy + GB18030.IRREVERSIBLE.TXT into the build directory. + Reported by Christian Weisgerber . + +2011-08-07 Bruno Haible + + Ensure all HTML-formatted man pages are up-to-date. + * Makefile.devel (all): Depend on man/iconvctl.3.html and + man/iconv_open_into.3.html. + +2011-08-07 Bruno Haible + + * Version 1.14 released. + +2011-08-07 Bruno Haible + + * configure.ac: Bump version number to 1.14. + * README: Likewise. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * windows/iconv.rc: Update. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 7:1:5. + * src/iconv.c (print_version): Update copyright year. + +2011-08-07 Bruno Haible + + Avoid a test failure on Solaris 2.6 and HP-UX 11.00. + * tests/test-to-wchar.c (main): Skip the test if conversion to wchar_t + is not supported. + +2011-08-07 Bruno Haible + + * tests/check-subst: Add comments about OSF/1. + +2011-08-07 Bruno Haible + + * lib/relocatable.c: Update from gnulib. + +2011-08-06 Bruno Haible + + Upgrade the GB18030 converter to the version from 2005. + * lib/gb18030ext.h (gb18030ext_2uni_pagefe): Change element type to + 'unsigned int'. Change values for 0xFE51..0xFE53, 0xFE59, 0xFE61, + 0xFE66, 0xFE67, 0xFE6C, 0xFE6D, 0xFE76, 0xFE7E, 0xFE90, 0xFE91, 0xFEA0. + (gb18030ext_mbtowc): Change type of wc to 'unsigned int'. Change values + for 0xA6D9..0xA6DF, 0xA6EC..0xA6ED, 0xA6F3, 0xA8BC. + (gb18030ext_page9f, gb18030ext_pagefe): New constant arrays. + (gb18030ext_wctomb): Change values for U+1E3F, U+9FB4..U+9FBB, + U+FE10..U+FE19, U+20087, U+20089, U+200CC, U+215D7, U+2298F, U+241FE. + * tests/GB18030-BMP.TXT: Change values for 0xA6D9..0xA6DF, + 0xA6EC..0xA6ED, 0xA6F3, 0xA8BC, 0xFE51..0xFE53, 0xFE59, 0xFE61, 0xFE66, + 0xFE67, 0xFE6C, 0xFE6D, 0xFE76, 0xFE7E, 0xFE90, 0xFE91, 0xFEA0, to map + to now-assigned Unicode codepoints. + * tests/GB18030.IRREVERSIBLE.TXT: New file. + +2011-08-06 Bruno Haible + + Fix conversion bug in CP1258 converter. + * lib/vietcomb.h (viet_comp_table_data): Remove entry for + U+00A5 U+0301. Fix entry for U+00A8 U+0301. + (viet_decomp_table): Fix entry for U+0385. + * tests/CP1258.IRREVERSIBLE.TXT: Update. + Reported by Gertjan Halkes . + +2011-07-03 Bruno Haible + + Improve interactive behaviour of iconv program. + * src/iconv.c (convert): Flush the output before starting a possibly + blocking safe_read call. + +2011-07-03 Bruno Haible + + Fix interactive behaviour of iconv program. + * Makefile.devel (GNULIB_MODULES): Add safe-read. + * src/iconv.c: Include safe-read.h. + (convert): Take the infile as a file descriptor, not as a FILE stream. + Use safe_read() instead of fread(). + (main): Update. + Reported by Xavier Pucel . + +2011-05-02 Bruno Haible + + Update after gnulib changed. + * autogen.sh (GNULIB_MODULES): Remove exit, add stdlib. + +2011-06-02 Bruno Haible + + Update after gnulib changed. + * gnulib-local/m4/alloca.m4 (gl_FUNC_ALLOCA): Update. + +2011-06-04 Bruno Haible + + Work around bug on OSF/1 5.1. + * lib/loop_wchar.h: Before including , include and + some other includes. + +2011-03-27 KO Myung-Hun + + Fix installation on OS/2. + * src/Makefile.in (all, iconv_no_i18n): Add $(EXEEXT) suffix to + iconv_no_i18n. This is the recommended way to use libtool, see + . + +2011-03-31 Bruno Haible + + gentranslit: Fix buffer overrun. + * lib/gentranslit.c (main): Allocate more room for the suffix strings + of the translit pages. + Reported by Ben Noordhuis . + +2011-02-28 Bruno Haible + + * lib/relocatable.h: Update from gnulib. + * lib/relocatable.c: Likewise. + +2011-01-29 Corinna Vinschen + Bruno Haible + + Simplify "wchar_t" handling on Cygwin 1.7.x. + * lib/iconv.c (iconv_canonicalize): On Cygwin >= 1.7, map + ei_local_wchar_t to ei_utf16le or ei_utf16be, not ei_ucs2internal. + * lib/iconv_open1.h: Likewise. + Rationale: . + +2011-01-29 Bruno Haible + + Adjust the meaning of "wchar_t" on native Windows systems. + * lib/iconv.c (iconv_canonicalize): On native Windows, map + ei_local_wchar_t to ei_utf16le or ei_utf16be, not ei_ucs2internal. + * lib/iconv_open1.h: Likewise. + Reported by Corinna Vinschen + in . + +2010-11-23 Bruno Haible + + Implement newer release of BIG5-HKSCS. + * tools/Makefile (ALL): Add hkscs2008.h. + (hkscs2008.h): New rule. + * tools/cjk_tab_to_h.c (main): Recognize hkscs2008. + * lib/encodings.def: Add BIG5-HKSCS:2008. Change BIG5-HKSCS alias to be + equivalent to BIG5-HKSCS:2008. + * lib/hkscs2008.h: New file, autogenerated. + * lib/big5hkscs2008.h: New file, based on lib/big5hkscs2004.h. + * lib/converters.h: Include the new file. + * README, man/iconv_open.3: Add BIG5-HKSCS:2004. + * tests/BIG5-HKSCS-2008.TXT: New file, based on + tests/BIG5-HKSCS-2004.TXT. + * tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT: New file, copied from + tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT + * tests/BIG5-HKSCS-2008-snippet: New file, based on + tests/BIG5-HKSCS-2004-snippet. + * tests/BIG5-HKSCS-2008-snippet.UTF-8: New file, based on + tests/BIG5-HKSCS-2004-snippet.UTF-8. + * tests/Makefile.in (check): Check also BIG5-HKSCS:2008. + Reported by oCameLo . + +2010-11-23 Bruno Haible + + Make cjk_tab_to_h 64-bit clean. + * tools/cjk_tab_to_h.c (do_jisx0213): Add a cast from size_t to int. + (output_title): Update copyright year. + +2010-09-23 Bruno Haible + + Switch to autoconf 2.68. + * autogen.sh: Update comment. + * configure.ac: Fix AC_COMPILE_IFELSE invocation. + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.68. + * preload/Makefile.devel (AUTOCONF): Likewise. + +2010-09-23 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.4, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltversion.m4: Update from libtool-2.4. + * build-aux/ltmain.sh: Likewise. + +2010-09-23 Bruno Haible + + Simplify use of gnulib-tool now that gnulib-tool --import works better. + * autogen.sh: Don't remove gnulib-cache.m4 before running gnulib-tool. + * Makefile.devel (srclib/Makefile.gnulib): Depend on 'force'. + +2010-07-31 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.67. + * preload/Makefile.devel (AUTOCONF): Likewise. + +2010-07-03 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.66. + * preload/Makefile.devel (AUTOCONF): Likewise. + +2010-06-04 Bruno Haible + + Addendum to 2009-10-18 commit. + * m4/fcntl-o.m4: New file, from gnulib. + * configure.ac: Invoke gl_FCNTL_O_FLAGS. + * lib/config.h.in (HAVE_WORKING_O_NOFOLLOW): New macro. + +2010-06-04 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.2.8, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: Update from libtool-2.2.8. + * m4/ltversion.m4: Likewise. + * m4/lt~obsolete.m4: Likewise. + * build-aux/ltmain.sh: Likewise. + +2010-04-06 Bruno Haible + + Avoid a compilation error of gnulib's test-iconv-h-c++.cc on mingw. + * include/iconv.h.in: Restrict the extern "C" { ... } scope so that it + doesn't contains #include directives. + +2010-03-30 Bruno Haible + + * README.woe32: Update for Cygwin 1.7.x. + +2009-12-26 Bruno Haible + + * windows/libiconv.rc: Update. + * windows/iconv.rc: Update. + +2009-12-11 Bruno Haible + + * include/iconv.h.in: Untabify. + * gnulib-local/lib/xalloc.h: Untabify. + * woe32dll/export.h: Untabify. + * tests/uniq-u.c: Untabify. + +2009-12-11 Bruno Haible + + * srclib/Makefile.am (MOSTLYCLEANDIRS): New macro. + +2009-12-11 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.65. + * preload/Makefile.devel (AUTOCONF): Likewise. + +2009-11-22 Bruno Haible + + * tests/check-subst: Add reference to the Solaris printf bug. + Reported by Dagobert Michelsen . + +2009-09-01 Bruno Haible + + * README.woe32: Put the -mno-cygwin option into CC and CXX. + Recommended by Paolo Bonzini and Eric Blake. + +2009-08-15 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.64. + * preload/Makefile.devel (AUTOCONF): Likewise. + +2009-08-15 Bruno Haible + + Use .git/info/exclude, not .gitignore, for imported or generated files. + * Makefile.devel (srclib/Makefile.gnulib): Pass option --no-vc-files to + gnulib-tool. + +2009-07-07 Bruno Haible + + Fix an endless loop. + * lib/loop_wchar.h (wchar_to_loop_convert): Handle the case of + incomplete input correctly. + * tests/test-to-wchar.c: New file. + * tests/Makefile.in (tests-to-wchar, tests-to-wchar.o): New rules. + (check): Depend on and run tests-to-wchar. + (clean): Add tests-to-wchar. + Reported by Tristan Gingold . + +2009-06-30 Bruno Haible + + * Version 1.13.1 released. + +2009-06-30 Bruno Haible + + * configure.ac: Bump version number to 1.13.1. + * README: Likewise. + +2009-06-04 Bruno Haible + + * preload/Makefile.devel (AUTOCONF): Switch to version 2.63. + (ACLOCAL): Switch to version 1.11. + +2009-05-19 Bruno Haible + + * Makefile.devel (AUTOMAKE, ACLOCAL): Switch to version 1.11. + * autogen.sh: Update comments. + +2009-04-24 Bruno Haible + + Fix a compilation error on HP-UX 11.00, introduced on 2008-09-16. + * src/iconv_open2.h: Don't initialize nonexistent field if + !(HAVE_WCRTOMB || HAVE_MBRTOWC). + Patch by Joel Brobecker . + +2009-04-15 Bruno Haible + + * src/Makefile.in (install, uninstall): Append the $(EXEEXT) suffix + explicitly. Needed on Cygwin. + +2009-04-11 Bruno Haible + + * configure.ac: Move the statements for WOE32 and WINDRES. + +2009-03-26 Bruno Haible + + * Version 1.13 released. + +2009-03-26 Bruno Haible + + * src/iconv.c: Update copyright header to GPLv3+. + (print_version): Update license info. + +2009-03-26 Bruno Haible + + * src/iconv.c (print_version): Bump year. + +2009-03-25 Bruno Haible + + * build-aux/config.guess: Update to GNU version 2009-02-03. + * build-aux/config.sub: Likewise. + +2009-03-25 Bruno Haible + + * configure.ac: Bump version number to 1.13. + * README: Likewise. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * windows/iconv.rc: Update. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 7:0:5. + +2009-03-25 Bruno Haible + + Fix the handling of Windows resources in shared libraries. + * configure.ac: Invoke LT_LANG for 'Windows Resource'. + * lib/Makefile.in (RC): New variable. + (WINDRES): Remove variable. + (OBJECTS_RES_yes): Add .lo suffix. + (libiconv.res.lo): Renamed from libiconv.res. Use libtool --tag=RC. + (clean): Simplify. + Based on a patch by Roumen Petrov . + +2009-03-14 Bruno Haible + + * autogen.sh: Checkout gnulib using 'git' instead of 'cvs'. + +2009-01-24 Bruno Haible + + * tools/Makefile (ALL): Add cp1131.h. + (cp1131.h): New rule. + * lib/encodings.def: Add CP1131. + * lib/cp1131.h: New file. + * lib/converters.h: Include it. + * README, man/iconv_open.3: Add CP1131. + * NOTES: Mention CP1131. + * tests/CP1131.TXT: New file. + * tests/Makefile.in (check): Also test CP1131. + +2009-01-17 Bruno Haible + + Add support for "make install-strip". + * configure.ac: Search for 'strip'. Invoke AM_PROG_INSTALL_STRIP. + * Makefile.in (install-strip): New rule. + * src/Makefile.in (STRIP, INSTALL_STRIP_PROGRAM, install_sh): New + variables. + (install-strip): New rule. + * lib/Makefile.in (install-strip): New target. + * preload/Makefile.in (install-strip): Likewise. + * man/Makefile.in (install-strip): Likewise. + Reported by Alon Bar-Lev . + +2009-01-17 Bruno Haible + + Update after gnulib changed. + * src/Makefile.in (RELOCATABLE_STRIP): New variable. + +2009-01-17 Bruno Haible + + Make --enable-relocatable work on glibc systems. + * src/Makefile.in (host): New variable. + +2009-01-17 Bruno Haible + + * lib/genflags.c: Include . + +2009-01-14 Bruno Haible + + * configure.ac: More consistent m4 quoting. + * preload/configure.ac: Likewise. + +2008-09-28 Bruno Haible + + * build-aux/ltmain.sh (func_emit_cwrapperexe_src): On mingw, + preprocess the argument vector through prepare_spawn. + +2008-09-27 Bruno Haible + + * build-aux/config.guess: Update to GNU version 2008-09-08. + * build-aux/config.sub: Likewise. + +2008-09-26 Bruno Haible + + * tests/test-shiftseq.c (main1, main2): Use ICONV_CONST. + +2008-09-26 Bruno Haible + + * Makefile.devel (GNULIB_MODULES): Add sigpipe, stdio. + * tests/Makefile.in (check, table-from, table-to, test-shiftseq): Link + all programs against libicrt.a. Needed for the stdio function + replacements on mingw. + +2008-09-21 Tadamasa Teranishi + + * lib/encodings_extra.def: Add aliases for EUC-JISX0213, SHIFT_JISX0213, + ISO-2022-JP-3, found on . + +2008-09-20 Bruno Haible + + * man/iconv_open_into.3: New file. + +2008-09-16 Bruno Haible + + New function iconv_open_into. + * include/iconv.h.in: Include and its prerequisites. + (iconv_allocation_t): New type. + (iconv_open_into): New declaration. + * lib/iconv_open1.h: New file, extracted from lib/iconv.c. + * lib/iconv_open2.h: New file, extracted from lib/iconv.c. + * lib/iconv.c (iconv_open): Include iconv_open1.h and iconv_open2.h. + Verify size of iconv_allocation_t. + (iconv_open_into): New function. + * lib/loop_wchar.h (struct wchar_conv_struct): Don't define a state + field if !(HAVE_WCRTOMB || HAVE_MBRTOWC). + * configure.ac: Set and substitute USE_MBSTATE_T, BROKEN_WCHAR_H. + Reported by Roman Rybalko . + +2008-09-16 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Switch to version 2.63. + +2008-09-16 Bruno Haible + + * include/iconv.h.in: Use Unicode single-quotes in comments. + +2008-09-14 Bruno Haible + + * Makefile.devel (GNULIB_MODULES): Add strerror. + +2008-09-07 Bruno Haible + + Make behaviour when encountering invalid input after a shift sequence + more consistent. + * lib/converters.h (RET_SHIFT_ILSEQ): New macro. + (RET_ILSEQ): Define in terms of RET_SHIFT_ILSEQ. + (RET_TOOFEW): Change to avoid collisions with RET_SHIFT_ILSEQ. + (DECODE_SHIFT_ILSEQ, DECODE_TOOFEW): New macros. + * lib/loop_unicode.h (unicode_loop_convert): Take into account the + shift count contained in the negative return values. + * lib/hz.h (hz_mbtowc): When encountering invalid input, store the + modified state and return RET_SHIFT_ILSEQ. + * lib/iso2022_cn.h (iso2022_cn_mbtowc): Likewise. + * lib/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Likewise. + * lib/iso2022_jp.h (iso2022_jp_mbtowc): Likewise. + * lib/iso2022_jp1.h (iso2022_jp1_mbtowc): Likewise. + * lib/iso2022_jp2.h (iso2022_jp2_mbtowc): Likewise. + * lib/iso2022_jp3.h (iso2022_jp3_mbtowc): Likewise. + * lib/iso2022_kr.h (iso2022_kr_mbtowc): Likewise. + * lib/ucs2.h (ucs2_mbtowc): Likewise. + * lib/ucs4.h (ucs4_mbtowc): Likewise. + * lib/utf16.h (utf16_mbtowc): Likewise. + * lib/utf32.h (utf32_mbtowc): Likewise. + * lib/utf7.h (utf7_mbtowc): Likewise. + * lib/utf16be.h (utf16be_mbtowcutf16be_mbtowc): When encountering + invalid input, return RET_SHIFT_ILSEQ. + * lib/utf16le.h (utf16le_mbtowc): Likewise. + * tests/test-shiftseq.c: New file. + * tests/Makefile.in (check): Run test-shiftseq. + (test-shiftseq, test-shiftseq.@OBJEXT@): New rules. + (clean): Remove test-shiftseq executable. + Reported by Roman Rybalko + at . + +2008-09-07 Bruno Haible + + * man/iconv.3: Clarify the processing of shift-sequences. + +2008-09-07 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.2.6, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: Update from libtool-2.2.6. + * m4/ltsugar.m4: Likewise. + * m4/ltversion.m4: Likewise. + * build-aux/ltmain.sh: Likewise. + +2008-09-06 Bruno Haible + + * lib/gbk.h (gbk_wctomb): Fix an out-of-bounds write. + Reported by Roman Rybalko + at . + +2008-06-30 Bruno Haible + + Fix sed expressions to work with the old sed-3.02 on MSYS. + * windows/windres-options (sed_extract_major, sed_extract_minor, + sed_extract_subminor): Put a semicolon before the closing brace. Use + an i\ command instead of an a\ command. + Reported by Sunil Negi + in + via Keith Marshall . + +2008-05-22 Bruno Haible + + * README.woe32: Update with info from GNU gettext's README.woe32. + +2008-05-18 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.2.4, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: Update from libtool-2.2.4. + * m4/ltversion.m4: Likewise. + * m4/lt~obsolete.m4: Likewise. + * build-aux/ltmain.sh: Likewise. + +2008-04-14 Bruno Haible + + * tests/Makefile.in (check): Remove *.dSYM directories left over by gcc + on MacOS X 10.5. + +2008-04-14 Bruno Haible + + * preload/configure.ac: Invoke AC_USE_SYSTEM_EXTENSIONS instead of + AC_AIX and AC_MINIX. + * Makefile.devel (AUTOCONF, AUTOHEADER): Require autoconf-2.62. + * preload/Makefile.devel (AUTOCONF): Likewise. + * autogen.sh: Likewise. + +2008-04-06 Bruno Haible + + * m4/libtool.m4: Update from libtool-2.2.2, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: New file, from libtool-2.2.2. + * m4/ltsugar.m4: New file, from libtool-2.2.2. + * m4/ltversion.m4: New file, from libtool-2.2.2. + * m4/lt~obsolete.m4: New file, from libtool-2.2.2. + * build-aux/ltmain.sh: New file, from libtool-2.2.2. + * configure.ac: Use LT_INIT instead of AC_PROG_LIBTOOL. + * preload/configure.ac: Likewise. + +2008-04-06 Bruno Haible + + More portable way of building the preloadable library. + * preload/Makefile.devel: New file. + * preload/Makefile.in: New file, based on lib/Makefile.in. + * preload/configure.ac: New file, based on configure.ac. + * Makefile.devel (all): Recurse into preload directory. + * Makefile.in (all, install, installdirs, uninstall, check, + mostlyclean, clean, distclean, maintainer-clean): Recurse into preload + directory. + * configure.ac: Likewise. + (OS, GCC, PLUGLIB): Remove definitions. + * lib/Makefile.in (all): Don't depend on PLUGLIB. + (preloadable_libiconv.so, preloadable_libiconv_linux.so, + preloadable_libiconv_solaris.so, preloadable_libiconv_osf.so): Remove + rules. + (install, uninstall, clean): Don't handle the preloadable library here. + +2008-04-06 Bruno Haible + + Avoid a gcc warning. + * lib/loop_unicode.h (unicode_loop_convert): Add a cast. + +2008-04-06 Bruno Haible + + * src/iconv.c (print_version): Bump year. + +2008-04-06 Bruno Haible + + Support all possible nl_langinfo(CODESET) results on the respective + platforms, according to libcharset/lib/config.charset. + * lib/encodings.def: Add DEFALIAS statements, conditional on + USE_AIX_ALIASES, USE_HPUX_ALIASES, USE_OSF1_ALIASES, + USE_SOLARIS_ALIASES. + * lib/encodings_aix.def: Add DEFALIAS statements, conditional on + USE_AIX_ALIASES. + * lib/encodings_osf1.def: Add DEFALIAS statements, conditional on + USE_OSF1_ALIASES. + * lib/genaliases.c (emit_alias): New function, extracted from + emit_encoding. + (emit_encoding): Use it. + (main): Define DEFALIAS. + * lib/genaliases2.c (counter): New variable, extracted from + emit_encoding. + (emit_alias): New function, extracted from emit_encoding. + (emit_encoding): Use it. + (main): Define DEFALIAS. + * lib/genflags.c (main): Define DEFALIAS. + * lib/iconv.c (all_encodings): Define DEFALIAS. + Include the system dependent variant of aliases.h on the appropriate + systems. + (all_canonical): Include the system dependent variant of canonical.h, + canonical_aix.h, canonical_osf1.h, canonical_local.h on the appropriate + systems. + * lib/aliases2.h: Include the system dependent variant of + aliases_aix.h or aliases_osf1.h on the appropriate systems. + * lib/Makefile.in (iconv.lo): Depend on aliases_sysaix.h, + aliases_syshpux.h, aliases_sysosf1.h, aliases_syssolaris.h, + aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h, and also + aliases_extra.h, translit.h. + * Makefile.devel (all): Depend on lib/aliases_sysaix.h, + lib/aliases_syshpux.h, lib/aliases_sysosf1.h, lib/aliases_syssolaris.h, + lib/aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h. + (lib/aliases_sysaix.h, lib/aliases_syshpux.h, lib/aliases_sysosf1.h, + lib/aliases_syssolaris.h): New rules. + (lib/aliases_aix_sysaix.h): New rule. + (lib/aliases_osf1_sysosf1.h): New rule. + * autogen.sh: Also remove lib/aliases_sysaix.h, lib/aliases_syshpux.h, + lib/aliases_sysosf1.h, lib/aliases_syssolaris.h, + lib/aliases_aix_sysaix.h, lib/aliases_osf1_sysosf1.h. + +2008-04-06 Bruno Haible + + * build-aux/config.libpath: Remove file, brought in by gnulib-tool. + * build-aux/config.rpath: Remove file, brought in by gnulib-tool. + +2007-11-11 Bruno Haible + + * Version 1.12 released. + +2007-11-11 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Require version 2.61. + (AUTOMAKE, ACLOCAL): Require version 1.10. + (srclib/Makefile.in): Avoid error from automake. + +2007-10-26 Bruno Haible + + * m4/libtool.m4: Update, based on libtool-1.5.24. + * build-aux/ltmain.sh: Update, based on libtool-1.5.24. + +2007-10-23 Bruno Haible + + * build-aux/config.guess: Update to GNU version 2007-07-22. + * build-aux/config.sub: Likewise. + +2007-10-23 Bruno Haible + + * configure.ac: Bump version number to 1.12. + * README: Likewise. + +2007-10-23 Bruno Haible + + Move relocatability infrastructure to gnulib. + * gnulib-local/lib/relocatable.h: Remove file. + * gnulib-local/lib/relocatable.c: Remove file. + +2007-10-23 Bruno Haible + + Update from GNU gettext. + 2006-11-26 Bruno Haible + * gnulib-local/lib/xalloc.h (xmemdup): Add a typesafe C++ + template variant. + Based on a patch from Paul Eggert in gnulib. + 2006-11-06 Bruno Haible + * gnulib-local/lib/xalloc.h (xcharalloc): New macro. + (xmemdup): New declaration. + * gnulib-local/lib/xstrdup.c (xmemdup): New function. + 2006-11-03 Bruno Haible + * gnulib-local/lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC, + XCALLOC): New macros. + (xnboundedmalloc): New inline function. + * gnulib-local/lib/xstrdup.c (xstrdup): Use XNMALLOC instead of + xmalloc. + 2006-11-02 Bruno Haible + * lib/xalloc.h (xnmalloc): New declaration. From gnulib + xalloc.h. + * lib/xmalloc.c (fixup_null_alloc): Write NULL, not 0. + (xnmalloc): New function. + +2007-10-23 Bruno Haible + + Moved module xreadlink to gnulib. + * gnulib-local/modules/xreadlink: Remove file. + * gnulib-local/lib/xreadlink.h: Remove file. + * gnulib-local/lib/xreadlink.c: Remove file. + * gnulib-local/m4/xreadlink.m4: Remove file. + +2007-10-07 Bruno Haible + + Update program license to GPLv3. + * COPYING: Replace with GPL 3. + * windows/iconv.rc (Comments): Update. + +2007-10-07 Bruno Haible + + * gnulib-local/lib/alloca.in.h: Renamed from gnulib-local/lib/alloca_.h. + +2007-03-30 Bruno Haible + + * gnulib-local/lib/alloca_.h: Change prefix of double-inclusion guard + macro to _GL_. + +2006-06-19 Paul Eggert + + * gnulib-local/lib/alloca_.h (alloca) [defined alloca]: Don't define or + declare. + +2007-09-29 Bruno Haible + + * autogen.sh (GNULIB_CVS_ROOT): Change to read-only git mirror + valid since 2007-09-19. + +2007-07-07 Bruno Haible + + * autogen.sh: Add an option --skip-gnulib. + +2007-07-07 Bruno Haible + + * gnulib-local/lib/uniwidth.h: Remove file, moved to gnulib. + * gnulib-local/lib/width.c: Remove file, moved to gnulib. + * gnulib-local/lib/cjk.h: Remove file, moved to gnulib. + * gnulib-local/modules/uniwidth: Remove file. + * Makefile.devel (GNULIB_MODULES): Remove uniwidth, add uniwidth/width. + * src/iconv.c: Include uniwidth/cjk.h instead of cjk.h. + +2007-06-30 Bruno Haible + + * src/iconv.c (print_version): Use the standard --version output, see + . + +2007-06-30 Bruno Haible + + * autogen.sh: New file. + * DEPENDENCIES: New file. + * HACKING: New file. + +2007-06-30 Bruno Haible + + * src/iconv.c: Provide translator comments for many messages. + (conversion_error_EILSEQ, conversion_error_EINVAL, + conversion_error_other): New functions, extracted from convert. + (convert): Use them. + Reported by Tim Van Holder . + +2007-06-09 Bruno Haible + + * gnulib-local/lib/relocwrapper.c: Remove file. + +2007-05-27 Bruno Haible + + * windows/libiconv.rc: New file. + * windows/iconv.rc: New file. + * windows/windres-options: New file. + * configure.ac (WOE32): New variable. + (WINDRES) [WOE32]: New variable. + * lib/Makefile.in (WINDRES): New variable. + (PACKAGE_VERSION): New variable. + (OBJECTS_EXP_yes): Renamed from OBJECTS_yes. + (OBJECTS_EXP_no): Renamed from OBJECTS_no. + (OBJECTS_RES_yes, OBJECTS_RES_no): New variables. + (OBJECTS): Add one of them. + (libiconv.res): New rule. + (clean): Remove also libiconv.res. + * src/Makefile.in (WINDRES): New variable. + (PACKAGE_VERSION): New variable. + (OBJECTS_RES_yes, OBJECTS_RES_no): New variables. + (all, iconv_no_i18n, install): Use them. + (iconv.res): New rule. + (clean): Remove also iconv.res. + Suggested and inspired by work by Perry Rapp. + +2007-05-27 Bruno Haible + + Follow broken iconv() prototype in POSIX. + * configure.ac (ICONV_CONST): Set to empty if the system has no iconv. + * lib/config.h.in (ICONV_CONST): Change default value to an empty + comment. + * src/iconv.c (ICONV_CONST): Change default value to empty. + Reported by Andreas Krennmair . + +2007-05-25 Bruno Haible + + * tools/Makefile (ALL): Add rk1048.h. + (rk1048.h): New rule. + * lib/encodings.def: Add RK1048. + * lib/rk1048.h: New file. + * lib/converters.h: Include it. + * README, man/iconv_open.3: Add RK1048. + * NOTES: Mention RK1048. + * tests/RK1048.TXT: New file. + * tests/Makefile.in (check): Also test RK1048. + Suggested by Timur Birsh . + +2007-04-24 Bruno Haible + + * man/iconv_open.3: Tweak explanation of TRANSLIT. + Reported by Perry Rapp. + +2007-04-23 Bruno Haible + + * tests/check-subst: Use the output of 'printf' only if it didn't + crash. Needed to work around a buffer overflow in Solaris /bin/printf. + Reported by Arto C. Nirkko . + +2007-04-23 Bruno Haible + + * lib/iconv.c (iconv_open, iconv_canonicalize): Treat native Woe32 + systems like those which define __STDC_ISO_10646__. + Reported by Keith Marshall . + +2007-03-31 Bruno Haible + + * man/iconv.1: Use HYPHEN-MINUS signs instead of HYPHENs where + appropriate. + * man/iconv_open.3: Likewise. + * man/iconv.3: Likewise. + * man/iconv_close.3: Likewise. + * man/iconvctl.3: Likewise. + +2007-03-31 Bruno Haible + + * man/iconv.1: Mark as POSIX compliant. + * man/iconv_open.3: Likewise. + * man/iconv.3: Likewise. + * man/iconv_close.3: Likewise. + + * man/*.[13]: Syntactic simplifications. + +2007-03-19 Bruno Haible + + Assume that mkinstalldirs also creates the necessary parent directories. + * Makefile.in (install, installdirs): Don't explicitly create the + parent directories. + * lib/Makefile.in (install, installdirs): Likewise. + * src/Makefile.in (install, installdirs): Likewise. + * man/Makefile.in (install, installdirs): Likewise. + Reported by Thomas Klausner . + +2007-03-04 Bruno Haible + + * Makefile.devel (GNULIB_MODULES): Add relocatable-prog. Remove + relocatable, relocwrapper. + * configure.ac: Invoke gl_RELOCATABLE instead of AC_RELOCATABLE. + * gnulib-local/modules/progreloc: Remove file. + * gnulib-local/modules/relocatable: Remove file. + * gnulib-local/modules/relocwrapper: Remove file. + * gnulib-local/m4/relocatable.m4: Remove file. + * gnulib-local/lib/strerror.c.diff: Remove file. + * src/Makefile.in: Remove SET_RELOCATABLE invocation. Instead get + RELOCATABLE_LDFLAGS and INSTALL_PROGRAM_ENV. + +2007-02-19 Bruno Haible + + * gnulib-local/lib/xmalloc.c: Don't include exit.h. + * src/iconv.c: Likewise. + +2007-02-16 Juan Manuel Guerrero + + * djgpp/*: Update. + +2007-02-03 Bruno Haible + + * tools/Makefile (ksc5601.h): Add one extra character. + * lib/ksc5601.h: Regenerated. + * lib/cp949.h (cp949_mbtowc, cp949_wctomb): Exclude the new character. + * tests/EUC-KR.TXT: Add CIRCLED HANGUL IEUNG U. + * tests/JOHAB.TXT: Likewise. + Reported by Jungshik Shin (신정식, 申政湜) . + + * lib/euc_kr.h: Update comments. + * lib/johab.h: Likewise. + +2007-02-03 Bruno Haible + + * tools/cjk_tab_to_h.c (output_title): Bump copyright year. + +2007-01-26 Bruno Haible + + Moved streq.h to gnulib. + * gnulib-local/lib/streq.h: Remove file. + * gnulib-local/modules/uniwidth (Files): Remove lib/streq.h. + (Depends-on): Add streq. + (lib_SOURCES): Remove streq.h. + +2007-01-26 Bruno Haible + + Moved unitypes.h to gnulib. + * gnulib-local/lib/unitypes.h: Remove file. + * gnulib-local/modules/uniwidth (Files): Remove lib/unitypes.h. + (Depends-on): Add unitypes. + (lib_SOURCES): Remove unitypes.h. + +2007-01-26 Bruno Haible + + Moved canonicalize to gnulib. + * gnulib-local/modules/canonicalize: Remove file. + * gnulib-local/lib/canonicalize.h: Remove file. + * gnulib-local/lib/canonicalize.c: Remove file. + * gnulib-local/m4/canonicalize.m4: Remove file. + * gnulib-local/modules/progreloc (Depends-on): Replace 'canonicalize' + with 'canonicalize-lgpl'. + +2006-12-20 Bruno Haible + + * lib/Makefile.in (install): On AIX, add the contents of + /lib/libiconv.a to libiconv.a. + +2006-12-20 Bruno Haible + + * Makefile.devel (all): Depend on srclib/Makefile.gnulib, not + srclib/Makefile.am. + (aclocal.m4): Likewise. Touch the resulting file, since aclocal not + always does it. + (srclib/Makefile.gnulib): Renamed from srclib/Makefile.am. Pass + option --makefile-name. + (srclib/Makefile.in): Depend on srclib/Makefile.gnulib too. + * srclib/Makefile.am: New file that includes srclib/Makefile.gnulib. + +2006-10-31 Bruno Haible + + Update from GNU gettext. + 2006-10-29 Bruno Haible + Make it compile in C++ mode. + * gnulib-local/lib/xalloc.h (xrealloc): Define as template + with appropriate return type. + * gnulib-local/lib/xstrdup.c (xstrdup): Cast xmalloc result. + 2006-10-26 Bruno Haible + * gnulib-local/modules/canonicalize (Makefile.am): Remove + EXTRA_DIST. Now done by gnulib-tool. + * gnulib-local/modules/relocatable (Makefile.am): Likewise. + * gnulib-local/modules/relocwrapper (Makefile.am): Likewise. + 2006-10-25 Bruno Haible + * gnulib-local/m4/relocatable.m4 (AC_RELOCATABLE_BODY): + Renamed from AC_RELOCATABLE, without the AC_LIBOBJ invocation. + (AC_RELOCATABLE): New macro. Invoke AC_LIBOBJ here. + * gnulib-local/modules/relocwrapper (configure.ac): Invoke + AC_RELOCATABLE instead of requiring it. + 2006-10-12 Bruno Haible + * gnulib-local/modules/canonicalize (Makefile.am): Distribute + all files in lib/ through EXTRA_DIST. + * gnulib-local/modules/relocatable (Makefile.am): Likewise. + 2006-09-14 Bruno Haible + * gnulib-local/lib/canonicalize.c: Include + unconditionally. + * gnulib-local/lib/relocatable.c: Likewise. + * lib/relocatable.c: Likewise. + * gnulib-local/lib/relocwrapper.c: Likewise. + * gnulib-local/lib/xmalloc.c: Likewise. + * gnulib-local/lib/xreadlink.c: Likewise. + * gnulib-local/lib/xstrdup.c: Likewise. + 2006-08-02 Bruno Haible + * gnulib-local/modules/canonicalize: Put under LGPL. + * gnulib-local/modules/relocatable: Likewise. + 2006-07-18 Bruno Haible + * gnulib-local/xalloc.h (xzalloc): New declaration. + * gnulib-local/xmalloc.c (xzalloc): New function. + +2006-10-24 Bruno Haible + + * man/Makefile.in (PACKAGE): New variable. Needed for docdir. + Reported by Charles Wilson . + +2006-10-14 Bruno Haible + + * COPYING: New file. + * README: Clarify copyright of the iconv program. + Reported by Charles Wilson . + +2006-08-08 Bruno Haible + + * INSTALL.generic: Add a recommendation for Tru64. + Reported by Gary V. Vaughan . + +2006-07-29 Bruno Haible + + * tests/check-subst: Set CHARSETALIASDIR. + Needed so that "make check" works before "make install" on systems + such as NetBSD. + +2006-07-29 Bruno Haible + + * Makefile.devel (aclocal.m4): Depend on srclib/Makefile.am. + (AUTOCONF_FILES): Add the existing *.m4 files. + +2006-07-29 Bruno Haible + + * gnulib-local/lib/xreadlink.c: Assume exists. + * src/iconv.c: Assume exists. + * configure.ac: Remove tests for , , , + . + +2006-07-29 Bruno Haible + + * configure.ac: Remove obsolete calls AC_PROG_GCC_TRADITIONAL, + AC_ISC_POSIX, AC_HEADER_STDC. + +2006-07-29 Bruno Haible + + * configure.ac: Remove macro invocations that are redundant through + gl_EARLY and gl_INIT. + +2006-07-29 Bruno Haible + + * gnulib-local/m4/alloca.m4 (gl_PREREQ_ALLOCA): Add a dummy statement. + Avoids a sh syntax error. + +2006-07-29 Bruno Haible + + * gnulib-local/m4/relocatable.m4: Add comments. + +2006-07-29 Bruno Haible + + * gnulib-local/modules/libiconv-misc: New file. + * Makefile.devel (GNULIB_MODULES): Add libiconv-misc. + + * Makefile.devel (srclib/Makefile.am): Pass --no-libtool. + +2006-07-29 Bruno Haible + + Note: gnulib macros no longer invoke AC_TYPE_SIZE_T nor + AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], ...)]) + because we now assume that the system defines size_t and ptrdiff_t. + +2006-07-29 Bruno Haible + + Switch to using gnulib. + * configure.ac (AC_PREREQ): Require autoconf-2.60. + Invoke gl_EARLY and gl_INIT. + * Makefile.devel (all): Depend on srclib/Makefile.am. + (aclocal.m4): Pass -I srcm4 to aclocal. Simplify dependencies, assuming + GNU make. + (GNULIB_MODULES): New variable. + (srclib/Makefile.am): New rule. + * gnulib-local: New directory. + * gnulib-local/m4/alloca.m4: Moved here from m4/alloca.m4. + * gnulib-local/m4/canonicalize.m4: Moved here from m4/canonicalize.m4. + * gnulib-local/m4/relocatable.m4: Moved here from m4/relocatable.m4. + * gnulib-local/m4/xreadlink.m4: Moved here from m4/xreadlink.m4. + * gnulib-local/lib/alloca_.h: Moved here from srclib/alloca_.h. + * gnulib-local/lib/canonicalize.h: Moved here from srclib/canonicalize.h. + * gnulib-local/lib/canonicalize.c: Moved here from srclib/canonicalize.c. + * gnulib-local/lib/cjk.h: Moved here from srclib/cjk.h. + * gnulib-local/lib/error.h.diff: New file. + * gnulib-local/lib/progname.h.diff: New file. + * gnulib-local/lib/relocatable.h: Moved here from srclib/relocatable.h. + * gnulib-local/lib/relocatable.c: Moved here from srclib/relocatable.c. + * gnulib-local/lib/relocwrapper.c: Moved here from srclib/relocwrapper.c. + * gnulib-local/lib/streq.h: Moved here from srclib/streq.h. + * gnulib-local/lib/strerror.c.diff: New file. + * gnulib-local/lib/unitypes.h: Moved here from srclib/unitypes.h. + * gnulib-local/lib/uniwidth.h: Moved here from srclib/uniwidth.h. + * gnulib-local/lib/width.c: Moved here from srclib/width.c. + * gnulib-local/lib/xalloc.h: Moved here from srclib/xalloc.h. + * gnulib-local/lib/xmalloc.c: Moved here from srclib/xmalloc.c. + * gnulib-local/lib/xstrdup.c: Moved here from srclib/xstrdup.c. + * gnulib-local/lib/xreadlink.h: Moved here from srclib/xreadlink.h. + * gnulib-local/lib/xreadlink.c: Moved here from srclib/xreadlink.c. + * gnulib-local/modules/canonicalize: New file. + * gnulib-local/modules/progreloc: New file. + * gnulib-local/modules/relocatable: New file. + * gnulib-local/modules/relocwrapper: New file. + * gnulib-local/modules/uniwidth: New file. + * gnulib-local/modules/xalloc: New file. + * gnulib-local/modules/xreadlink: New file. + + * m4/allocsa.m4: Remove file. Now taken from gnulib. + * m4/codeset.m4: Likewise. + * m4/eealloc.m4: Likewise. + * m4/error.m4: Likewise. + * m4/extensions.m4: Likewise. + * m4/full-header-path.m4: Likewise. + * m4/gettext.m4: Likewise. + * m4/glibc21.m4: Likewise. + * m4/iconv.m4: Likewise. + * m4/intmax.m4: Likewise. + * m4/inttypes-h.m4: Likewise. + * m4/inttypes_h.m4: Likewise. + * m4/isc-posix.m4: Likewise. + * m4/lcmessage.m4: Likewise. + * m4/lib-ld.m4: Likewise. + * m4/lib-link.m4: Likewise. + * m4/lib-prefix.m4: Likewise. + * m4/longdouble.m4: Likewise. + * m4/longlong.m4: Likewise. + * m4/mbstate_t.m4: Likewise. + * m4/nls.m4: Likewise. + * m4/onceonly.m4: Likewise. + * m4/pathmax.m4: Likewise. + * m4/po.m4: Likewise. + * m4/printf-posix.m4: Likewise. + * m4/progtest.m4: Likewise. + * m4/readlink.m4: Likewise. + * m4/setenv.m4: Likewise. + * m4/signed.m4: Likewise. + * m4/size_max.m4: Likewise. + * m4/ssize_t.m4: Likewise. + * m4/stdbool.m4: Likewise. + * m4/stdint.m4: Likewise. + * m4/stdint_h.m4: Likewise. + * m4/strerror.m4: Likewise. + * m4/strerror_r.m4: Likewise. + * m4/unistd_h.m4: Likewise. + * m4/unlocked-io.m4: Likewise. + * m4/visibility.m4: Likewise. + * m4/wchar_t.m4: Likewise. + * m4/wint_t.m4: Likewise. + + * srclib/allocsa.h: Remove file. Now taken from gnulib. + * srclib/allocsa.c: Likewise. + * srclib/binary-io.h: Likewise. + * srclib/error.h: Likewise. + * srclib/error.c: Likewise. + * srclib/exit.h: Likewise. + * srclib/gettext.h: Likewise. + * srclib/memmove.c: Likewise. + * srclib/pathmax.h: Likewise. + * srclib/progname.h: Likewise. + * srclib/progname.c: Likewise. + * srclib/progreloc.c: Likewise. + * srclib/readlink.c: Likewise. + * srclib/setenv.h: Likewise. + * srclib/setenv.c: Likewise. + * srclib/stdbool_.h: Likewise. + * srclib/stdint_.h: Likewise. + * srclib/strerror.c: Likewise. + * srclib/unlocked-io.h: Likewise. + * srclib/unsetenv.c: Likewise. + * srclib/Makefile.am: Remove file. + +2006-07-27 Bruno Haible + + Remove OS/2 build support that doesn't assume GNU make and GNU bash. + * README.os2: Remove file. + * Makefile.os2: Remove file. + * lib/Makefile.os2: Remove file. + * src/Makefile.os2: Remove file. + * man/Makefile.os2: Remove file. + * tests/Makefile.os2: Remove file. + * tests/check-stateful.cmd: Remove file. + * tests/check-stateless.cmd: Remove file. + * tests/check-translit.cmd: Remove file. + +2006-07-25 Bruno Haible + + Remove MSVC/nmake build support. + * windows: Remove directory. + * Makefile.msvc: Remove file. + * lib/Makefile.msvc: Remove file. + * srclib/Makefile.msvc: Remove file. + * src/Makefile.msvc: Remove file. + * tests/Makefile.msvc: Remove file. + * man/Makefile.msvc: Remove file. + * po/Rules-msvc: Remove file. + * po/Makefile.msvc.sh: Remove file. + * Makefile.devel (config.h.msvc, lib/config.h.msvc): Remove rules. + (include/iconv.h.msvc-static, include/iconv.h.msvc-shared): Remove + rules. + (po/Makefile.msvc): Remove rule. + (all): Update. + +2006-07-25 Bruno Haible + + Remove VMS support. + * vms: Remove directory. + * Makefile.vms: Remove file. + * lib/Makefile.vms: Remove file. + * srclib/Makefile.vms: Remove file. + * src/Makefile.vms: Remove file. + * tests/Makefile.vms: Remove file. + * man/Makefile.vms: Remove file. + * Makefile.devel (config.h_vms, lib/config.h_vms): Remove rules. + (include/iconv.h_vms): Remove rule. + (all): Update. + +2006-07-23 Bruno Haible + + * lib/Makefile.in (libiconv.la): Use the CFLAGS during linking. + * src/Makefile.in (iconv_no_i18n): Likewise. + (install): Likewise. + * tests/Makefile.in (table-from, table-to): Likewise. + Needed because the CFLAGS can e.g. trigger profiling. + Reported by Russell Aspinwall . + +2006-07-19 Bruno Haible + + * Version 1.11 released. + +2006-07-19 Bruno Haible + + * srclib/Makefile.am (libicrt_a_SOURCES): Remove error.h, error.c. + (LIBADD_SOURCE): Add them here. + +2006-07-19 Bruno Haible + + * build-aux/config.guess: Update to GNU version 2006-07-02. + * build-aux/config.sub: Likewise. + +2006-07-14 Bruno Haible + + * lib/Makefile.in (clean): Remove also *.stackdump. + * src/Makefile.in (clean): Likewise. + * tests/Makefile.in (clean): Likewise. + +2006-07-14 Bruno Haible + + * src/Makefile.in (clean): Remove also iconv_no_i18n. Needed for + cygwin or mingw. + * tests/Makefile.in (clean): Remove also the programs, without + EXEEXT. Needed for cygwin or mingw. + * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): + Remove also bin directory. Needed for cygwin and mingw. + +2006-07-03 Bruno Haible + + * src/iconv.c (check_subst_formatstring): Use ngettext. + (subst_wc_to_mb_fallback, subst_mb_to_mb_fallback): Fix error messages + after 2006-01-22 change. + * configure.ac: Require a gettext version with ngettext. + +2006-06-28 Bruno Haible + + * m4/gettext.m4: Update from GNU gettext. + * m4/po.m4: Update from GNU gettext. + +2006-06-27 Bruno Haible + + * Makefile.devel (AUTOCONF, AUTOHEADER): Use autoconf-2.60. + * Makefile.in (datarootdir): New variable. + (install, installdirs, uninstall): Also pass datarootdir. + * configure.ac (mandir): Remove customization. + * man/Makefile.in (datarootdir): New variable. + (docdir, htmldir): Use autoconf-substituted value. + * src/Makefile.in (datarootdir): New variable. + (localedir): Use autoconf-substituted value. + +2006-06-27 Bruno Haible + + * m4/stdint.m4: Update from gnulib. + * srclib/stdint_.h: Update from gnulib. + * srclib/Makefile.am: Update. + +2006-06-17 Bruno Haible + + * srclib/unsetenv.c: Update from GNU gettext. + * srclib/xreadlink.c: Likewise. + +2006-06-16 Bruno Haible + + * m4/full-header-path.m4: New file, from gnulib. + * m4/size_max.m4: New file, from gnulib. + * m4/stdint.m4: Update from gnulib. + * srclib/stdint_.h: Update from gnulib. + * srclib/Makefile.am (stdint.h): Likewise. + * Makefile.devel (aclocal.m4): Update dependencies. + +2006-06-16 Bruno Haible + + * m4/ssize_t.m4: Update from GNU gettext. + +2006-06-12 Bruno Haible + + * m4/gettext.m4: Update from GNU gettext. + * m4/inttypes-h.m4: New file, from GNU gettext. + * m4/inttypes.m4: Remove file. + * m4/stdint.m4 (gl_STDINT_H): Update. + * Makefile.devel (aclocal.m4): Update dependencies. + +2006-06-10 Bruno Haible + + * src/iconv.c (error) [NO_I18N]: Define here instead of including + error.h. Fixes link failure introduced on 2006-01-22. + +2006-03-28 Ralf Wildenhues + + * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]: Avoid warning when + "parsing" /etc/ld.so.conf and empty /etc/ld.so.conf.d. + +2006-05-20 Bruno Haible + + * tests/BIG5-HKSCS-1999-snippet: New file. + * tests/BIG5-HKSCS-1999-snippet.UTF-8: New file. + * tests/BIG5-HKSCS-2001-snippet: New file. + * tests/BIG5-HKSCS-2001-snippet.UTF-8: New file. + * tests/BIG5-HKSCS-2004-snippet: New file. + * tests/BIG5-HKSCS-2004-snippet.UTF-8: New file. + * tests/Makefile.in (check): Test also the stateful parts of + BIG5-HKSCS:1999, BIG5-HKSCS:2001, BIG5-HKSCS:2004. + +2006-05-17 Bruno Haible + + Implement newer releases of BIG5-HKSCS. + * tools/Makefile (ALL): Remove hkscs.h, add hkscs1999.h, hkscs2001.h, + hkscs2004.h. + (hkscs.h): Remove rule. + (hkscs1999.h, hkscs2001.h, hkscs2004.h): New rules. + * tools/cjk_tab_to_h.c (output_title): Update year. + (main): Recognize hkscs1999, hkscs2001, hkscs2004. + * lib/encodings.def: Rename BIG5-HKSCS to BIG5-HKSCS:1999. Add + BIG5-HKSCS:2001, BIG5-HKSCS:2004. Make all three stateful. + * lib/hkscs.h: Remove file. + * lib/hkscs1999.h: New file. + * lib/hkscs2001.h: New file. + * lib/hkscs2004.h: New file. + * lib/big5hkscs.h: Remove file. + * lib/big5hkscs1999.h: New file. + * lib/big5hkscs2001.h: New file. + * lib/big5hkscs2004.h: New file. + * lib/converters.h: Include the new files. + * README, man/iconv_open.3: Add BIG5-HKSCS:1999, BIG5-HKSCS:2001. + * tests/BIG5-HKSCS.TXT: Remove file. + * tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Remove file. + * tests/BIG5-HKSCS-1999.TXT: New file. + * tests/BIG5-HKSCS-1999.IRREVERSIBLE.TXT: New file. + * tests/BIG5-HKSCS-2001.TXT: New file. + * tests/BIG5-HKSCS-2001.IRREVERSIBLE.TXT: New file. + * tests/BIG5-HKSCS-2004.TXT: New file. + * tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT: New file. + * tests/check-stateless: Convert colon in the charset name to a dash in + the file name. + * tests/Makefile.in (check): Check BIG5-HKSCS:1999, BIG5-HKSCS:2001, + BIG5-HKSCS:2004 instead of just BIG5-HKSCS. + * tests/Makefile.msvc (check): Don't check BIG5-HKSCS. + * tests/Makefile.os2 (check): Likewise. + +2006-05-17 Bruno Haible + + * srclib/progreloc.c: Update from GNU gettext. + +2006-05-16 Bruno Haible + + * src/Makefile.in (clean): Use EXEEXT. + * tests/Makefile.in (check, clean): Likewise. + +2006-05-15 Bruno Haible + + * configure.ac: Move some checks before AC_RELOCATABLE. + +2006-05-15 Bruno Haible + + Support for building shared libraries on mingw and Cygwin. + * configure.ac (WOE32DLL, DLL_VARIABLE): New variables. + * include/iconv.h.in (_libiconv_version): Mark as DLL_VARIABLE. + * woe32dll/export.h: New file, from GNU gettext. + * woe32dll/iconv-exports.h: New file. + * Makefile.devel (include/iconv.h_vms, include/iconv.h.msvc-static, + include/iconv.h.msvc-shared): Remove the DLL_VARIABLE annotation. + * lib/Makefile.in (INCLUDES): Add -I for parent directory. + (LDFLAGS): Add WOE32DLL dependent flags. + (LDFLAGS_yes, LDFLAGS_no): New variables. + (OBJECTS): Add WOE32DLL dependent objects. + (OBJECTS_yes, OBJECTS_no): New variables. + (iconv-exports.lo): New rule. + +2006-05-15 Bruno Haible + + * srclib/gettext.h: Update from GNU gettext. + * srclib/pathmax.h: Update from GNU gettext. + * srclib/progreloc.c: Update from GNU gettext. + * srclib/unsetenv.c: Update from GNU gettext. + * srclib/Makefile.am: Add snippet for creation of unistd.h. + * m4/extensions.m4: Update from GNU gettext. + * m4/gettext.m4: Update from GNU gettext. + * m4/lib-ld.m4: Update from GNU gettext. + * m4/lib-link.m4: Update from GNU gettext. + * m4/lib-prefix.m4: Update from GNU gettext. + * m4/longdouble.m4: Update from GNU gettext. + * m4/nls.m4: Update from GNU gettext. + * m4/onceonly.m4: Update from GNU gettext. + * m4/po.m4: Update from GNU gettext. + * m4/relocatable.m4: Update from GNU gettext. + * m4/unistd_h.m4: New file, from GNU gettext. + * Makefile.devel (aclocal.m4): Depend on it. + * configure.ac: Invoke gl_HEADER_UNISTD. + +2006-05-14 Bruno Haible , + Ralf Wildenhues + + * m4/libtool.m4 [ linux ] (AC_LIBTOOL_LANG_CXX_CONFIG) + (AC_LIBTOOL_POSTDEP_PREDEP, AC_LIBTOOL_PROG_COMPILER_PIC) + (AC_LIBTOOL_PROG_LD_SHLIBS): Add support for Sun C 5.9, + Sun C++ 5.9, and Sun Fortran 8.3 on Linux. + +2006-05-06 Charles Wilson + + * m4/libtool.m4: On Cygwin, like on mingw, define DLL_EXPORT when + compiling a shared library object. + +2006-05-15 Bruno Haible + + * build-aux/config.rpath: Add support for Sun C 5.9 on Linux. + +2006-03-31 Juan Manuel Guerrero + + * djgpp/*: Update. + +2006-01-23 Bruno Haible + + * configure.ac: Invoke gl_ALLOCSA. + + * Makefile.devel (aclocal.m4): Depend on $(CONFIGURES_IN). + +2006-01-22 Bruno Haible + + * src/iconv.c (xmalloc, xalloc_die) [NO_I18N]: Define to avoid using + gettext(). + +2006-01-22 Bruno Haible + + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 6:0:4. + +2006-01-22 Bruno Haible + + * src/iconv.c: Include error.h, exit.h. + (print_version): Use EXIT_SUCCESS. + (check_subst_formatstring, subst_mb_to_uc_fallback, + subst_uc_to_mb_fallback, subst_mb_to_wc_fallback, + subst_wc_to_mb_fallback, subst_mb_to_mb_fallback, convert, main): Use + error() instead of fprintf to stderr. + +2006-01-22 Bruno Haible + + New feature: character-dependent substitutions. + * include/iconv.h.in (iconv_unicode_mb_to_uc_fallback, + iconv_unicode_uc_to_mb_fallback, iconv_wchar_mb_to_wc_fallback, + iconv_wchar_wc_to_mb_fallback): New types. + (struct iconv_fallbacks): New structure type. + (ICONV_SET_FALLBACKS): New macro. + * configure.ac: Invoke gt_TYPE_WCHAR_T and substitute HAVE_WCHAR_T. + * Makefile.os2 (all): Also substitute @HAVE_WCHAR_T@ in build/iconv.h. + * Makefile.devel (include/iconv.h_vms, include/iconv.h.msvc-static, + include/iconv.h.msvc-shared): Also substitute @HAVE_WCHAR_T@. + * lib/converters.h (struct conv_struct): Add field 'fallbacks'. + * lib/loop_unicode.h (struct uc_to_mb_fallback_locals): New type. + (uc_to_mb_write_replacement): New function. + (struct mb_to_uc_fallback_locals): New type. + (mb_to_uc_write_replacement): New function. + (unicode_loop_convert): Call mb_to_uc_fallback and uc_to_mb_fallback. + (unicode_loop_reset): Call uc_to_mb_fallback. + * lib/loop_wchar.h (struct wc_to_mb_fallback_locals): New type. + (wc_to_mb_write_replacement): New function. + (wchar_from_loop_convert): Call wc_to_mb_fallback. + (struct mb_to_wc_fallback_locals): New type. + (mb_to_wc_write_replacement): New function. + (wchar_to_loop_convert): Call mb_to_wc_fallback. + * lib/iconv.c (iconv_open): Initialize the 'fallbacks' field. + (iconvctl): Handle ICONV_SET_FALLBACKS. + * lib/genflags.c (struct iconv_fallbacks): New dummy definition. + * src/iconv.c: Include limits.h. + (isdigit, c_isprint): New macros. + (usage): Document long options and new options. + (check_subst_formatstring): New function. + (ilseq_byte_subst, ilseq_wchar_subst, ilseq_unicode_subst): New + variables. + (ilseq_byte_subst_size, ilseq_wchar_subst_size, + ilseq_unicode_subst_size): New variables. + (ilseq_byte_subst_buffer, ilseq_wchar_subst_buffer, + ilseq_unicode_subst_buffer): New variables. + (subst_mb_to_uc_cd, subst_mb_to_uc_temp_buffer): New variables. + (subst_mb_to_uc_fallback): New function. + (subst_uc_to_mb_cd, subst_uc_to_mb_temp_buffer): New variables. + (subst_uc_to_mb_fallback): New function. + (subst_mb_to_wc_cd, subst_mb_to_wc_temp_buffer): New variables. + (subst_mb_to_wc_fallback): New function. + (subst_wc_to_mb_cd, subst_wc_to_mb_temp_buffer): New variables. + (subst_wc_to_mb_fallback): New function. + (subst_mb_to_mb_cd, subst_mb_to_mb_temp_buffer): New variables. + (subst_mb_to_mb_fallback): New function. + (convert): Enlarge the outbuf when the conversion failed with E2BIG. + (main): Handle new options --byte-subst, --widechar-subst, + --unicode-subst. + * man/iconv.1: Document --unicode-subst, --byte-subst, --widechar-subst + options. + * tests/check-subst: New file. + * tests/Makefile.in (check): Also invoke check-subst. + Suggested by James Taylor . + +2006-01-21 Bruno Haible + + * src/iconv.c (print_version): Bump copyright year. + (main): Accept long options --from-code, --to-code, --list, --silent. + Accept abbreviated long options, like getopt() does. + * man/iconv.1: Document long options. + +2005-12-29 Bruno Haible + + * src/iconv.c (print_version): Update copyright year. + +2005-12-29 Bruno Haible + + * configure.ac: Renamed from configure.in. + * Makefile.devel (CONFIGURES_IN, configure, config.h.in): Update. + +2005-12-29 Bruno Haible + + * configure.in: Bump version number. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * windows/iconv.rc: Likewise. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 5:1:3. + +2005-12-29 Bruno Haible + + * build-aux/config.guess: Update to GNU version 2005-12-23. + * build-aux/config.sub: Likewise. + * build-aux/config.libpath: Update from GNU gettext. + * build-aux/install-sh: Upgrade to automake-1.9.5. + * build-aux/missing: Upgrade to automake-1.9.5. + * build-aux/mkinstalldirs: Upgrade to automake-1.9.5. + +2005-12-29 Bruno Haible + + * m4/alloca.m4: Update from GNU gettext. + * m4/allocsa.m4: Update from GNU gettext. + * m4/canonicalize.m4: Update from GNU gettext. + * m4/codeset.m4: Update from GNU gettext. + * m4/eealloc.m4: Update from GNU gettext. + * m4/error.m4: Update from GNU gettext. + * m4/extensions.m4: Update from GNU gettext. + * m4/gettext.m4: Update from GNU gettext. + * m4/glibc21.m4: Update from GNU gettext. + * m4/iconv.m4: Update from GNU gettext. + * m4/intmax.m4: Update from GNU gettext. + * m4/inttypes_h.m4: New file, from GNU gettext. + * m4/isc-posix.m4: Update from GNU gettext. + * m4/lcmessage.m4: Update from GNU gettext. + * m4/longdouble.m4: Update from GNU gettext. + * m4/longlong.m4: Update from GNU gettext. + * m4/mbstate_t.m4: Update from GNU gettext. + * m4/nls.m4: Update from GNU gettext. + * m4/onceonly.m4: Update from GNU gettext. + * m4/pathmax.m4: Update from GNU gettext. + * m4/po.m4: Update from GNU gettext. + * m4/printf-posix.m4: Update from GNU gettext. + * m4/progtest.m4: Update from GNU gettext. + * m4/readlink.m4: Update from GNU gettext. + * m4/relocatable.m4: Update from GNU gettext. + * m4/setenv.m4: Update from GNU gettext. + * m4/signed.m4: Update from GNU gettext. + * m4/ssize_t.m4: Update from GNU gettext. + * m4/stdbool.m4: Update from GNU gettext. + * m4/stdint_h.m4: New file, from GNU gettext. + * m4/strerror.m4: Update from GNU gettext. + * m4/strerror_r.m4: Update from GNU gettext. + * m4/unlocked-io.m4: Update from GNU gettext. + * m4/wchar_t.m4: Update from GNU gettext. + * m4/wint_t.m4: Update from GNU gettext. + * m4/xreadlink.m4: Update from GNU gettext. + * Makefile.devel (aclocal.m4): Depend on m4/inttypes_h.m4 and + m4/stdint_h.m4 as well. + * configure.in: Invoke AC_TYPE_MBSTATE_T instead of AC_MBSTATE_T. + Invoke gl_FUNC_GLIBC_UNLOCKED_IO instead of jm_FUNC_GLIBC_UNLOCKED_IO. + Invoke gl_ERROR instead of gt_FUNC_ERROR_AT_LINE. + Don't invoke AC_AIX and AC_MINIX, done by gl_USE_SYSTEM_EXTENSIONS. + Temporarily redefine AC_LIBOBJ and AC_REPLACE_FUNCS, so as to fill + SRCLIBOBJS instead of LIBOBJS. + * srclib/alloca_.h: Update from GNU gettext. + * srclib/allocsa.h: Update from GNU gettext. + * srclib/canonicalize.c: Update from GNU gettext. + * srclib/error.h: Update from GNU gettext. + * srclib/error.c: Update from GNU gettext. + * srclib/gettext.h: Update from GNU gettext. + * srclib/memmove.c: Update from GNU gettext. + * srclib/progname.h: Update from GNU gettext. + * srclib/progname.c: Update from GNU gettext. + * srclib/progreloc.c: Update from GNU gettext. + * srclib/readlink.c: Update from GNU gettext. + * srclib/relocatable.c: Update from GNU gettext. + * srclib/relocwrapper.c: Update from GNU gettext. + * srclib/setenv.h: Update from GNU gettext. + * srclib/setenv.c: Update from GNU gettext. + * srclib/stdbool_.h: Update from GNU gettext. + * srclib/stdint_.h: Update from gnulib. + * srclib/strerror.c: Update from GNU gettext. + * srclib/unlocked-io.h: Update from GNU gettext. + * srclib/unsetenv.c: Update from GNU gettext. + * srclib/xalloc.h: Update from GNU gettext. + * srclib/xmalloc.c: Update from GNU gettext. + * srclib/xreadlink.c: Update from GNU gettext. + * srclib/xstrdup.c: Update from GNU gettext. + * srclib/Makefile.am (DEFS): Also define EXEEXT. + (libicrt_a_LIBADD): Use SRCLIBOBJS instead of LIBOBJS. + (libicrt_a_DEPENDENCIES): New variable. + * src/Makefile.in (EXEEXT): New variable. + * build-aux/install-reloc: Update from GNU gettext. + * build-aux/reloc-ldflags: Update from GNU gettext. + * build-aux/config.rpath: Update from GNU gettext. + +2005-12-29 Bruno Haible + + * m4/libtool.m4: Update, based on libtool-1.5.22. + * build-aux/ltmain.sh: Update, based on libtool-1.5.22. + +2005-12-24 Bruno Haible + + Check the whole range of GB18030. + * tests/GB18030-BMP.TXT: Renamed from tests/GB18030.TXT. + * tests/gengb18030z.c: New file. + * tests/table-from.c (main): For GB18030, don't stop at U+10000. + * tests/table-to.c (main): Likewise. + * tests/Makefile.in (check): Generate GB18030.TXT on the fly from + GB18030-BMP.TXT. + (clean): Remove also gengb18030z and GB18030.TXT. + * tests/Makefile.msvc (check): Generate GB18030.TXT on the fly from + GB18030-BMP.TXT. + (clean): Remove also GB18030Z.TXT, GB18030TMP.TXT, GB18030.TXT. + * tests/Makefile.os2 (check): Depend on gengb18030z.exe. Generate + GB18030.TXT on the fly from GB18030-BMP.TXT. + (clean): Remove also GB18030Z.TXT, GB18030TMP.TXT, GB18030.TXT. + +2005-12-20 Bruno Haible + + * tests/table-to.c (main): Test the mappings up to U+10FFFF, not only + up to U+2FFFF. Tolerate that Unicode language tags are silently mapped + to nothing. + +2005-12-22 Bruno Haible + + Extend GB18030 converter to cover the entire Unicode PUA. + * lib/gb18030.h: Update comments, based on second printing. + (gb18030_mbtowc): Add mapping for range U+E000..U+E765. + (gb18030_pua2charset): New array. + (gb18030_wctomb): Add mapping for range U+E000..U+E765 and the two-byte + part of range U+E766..U+E864. + * lib/gb18030ext.h (gb18030ext_2uni_pagefe): Add mappings to private + area. + (gb18030ext_mbtowc): Add mapping for the two-byte part of range + U+E766..U+E864. + * lib/gb18030uni.h (gb18030uni_charset2uni_ranges, + gb18030uni_uni2charset_ranges, gb18030uni_ranges): Add 12 more + intervals. + (gb18030uni_mbtowc, gb18030uni_wctomb): Update. + * tests/GB18030.TXT: Complete mappings to private area. + +2005-12-22 Bruno Haible + + * lib/gbk.h: Update comments. + +2005-12-20 Bruno Haible + + Add private area mappings to CP949. + * lib/cp949.h (cp949_mbtowc, cp949_wctomb): Map U+E000..U+E0BB like + many others do it. + * tests/CP949.TXT: Add mappings for U+E000..U+E0BB. + +2005-12-15 Bruno Haible + + Add private area mappings to CP950. + * lib/cp950.h (cp950_mbtowc, cp950_wctomb): Map U+E000..U+F6B0 like + most others do it. + * tests/CP950.TXT: Add mappings for U+E000..U+F6B0. + +2005-12-15 Bruno Haible + + Make CP936 follow what Microsoft does. + In http://www.microsoft.com/globaldev/reference/dbcs/936.mspx they + added a 0x80 - U+20AC mapping to the code chart, but not to the + tooltips and not to the list of mappings. + * lib/cp936.h: New file. + * lib/gbk.h: Update comments. + * lib/ces_gbk.h: Update comments. + * lib/converters.h: Include cp936.h. + * lib/encodings.def (CP936): New encoding. + (GBK): Remove CP936 aliases. + * README, man/iconv_open.3: Add CP936. + * tests/Makefile.in (check): Check CP936. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + * tests/CP936.TXT: New file. + +2005-12-14 Bruno Haible + + * lib/cp932.h (cp932_wctomb): Map U+FF5E, U+2225, U+FF0D, U+FFE0, + U+FFE1 like Microsoft does it. + * lib/CP932.IRREVERSIBLE.TXT: Add these mappings. + Reported by Lei Wang . + +2005-12-14 Bruno Haible + + Follow Euro sign addition done in 1999 in + http://www.microsoft.com/globaldev/reference/dbcs/950/950_A3.mspx + * lib/cp950.h (cp950_mbtowc, cp950_wctomb): Add mapping for 0xA3E1. + * tests/CP950.TXT: Add mapping for 0xA3E1. + +2005-11-11 Bruno Haible + + * lib/euc_jp.h (euc_jp_wctomb): When writing a 3-bytes byte sequence + and only two bytes are available in the output buffer, return + RET_TOOSMALL instead of overrunning the output buffer. + * lib/isoir165.h (isoir165_wctomb): When only one byte is available + in the output buffer, don't overrun the output buffer. + Reported by William Bardwell . + +2005-09-18 Bruno Haible + + * m4/libtool.m4: Update, based on libtool-1.5.20. + * build-aux/ltmain.sh: Update, based on libtool-1.5.20. + +2005-08-12 Bruno Haible + + * lib/big5_2003.h: Map 0xF9FA..0xF9FD differently. + * tests/BIG5-2003.TXT: Likewise. + * tests/BIG5-2003.IRREVERSIBLE.TXT: New file. + Reported by Ping Yeh . + +2005-07-24 Bruno Haible + + Tidy up exported symbols. + * m4/visibility.m4: New file. + * include/export.h: New file. + * configure.in: Invoke gl_VISIBILITY. Use AC_CONFIG_FILES. Arrange to + create also include/iconv.h.inst. + * Makefile.devel (all): Depend on include/iconv.h.build.in. + (aclocal.m4): Depend on m4/visibility.m4. + (include/iconv.h.build.in): New rule. + * Makefile.in (install-lib, install): Install include/iconv.h.inst, + not the include/iconv.h that was used for building. + (distclean, maintainer-clean): Remove also include/iconv.h.inst. + * lib/Makefile.in (CFLAGS): Add @CFLAG_VISIBILITY@. + (DEFS): Also define BUILDING_LIBICONV and BUILDING_DLL. + * lib/config.h.in (HAVE_VISIBILITY): New macro. + * lib/relocatable.h (RELOCATABLE_DLL_EXPORTED) [HAVE_VISIBILITY]: + Define to the gcc visibility attribute. + * srclib/relocatable.h (RELOCATABLE_DLL_EXPORTED) [HAVE_VISIBILITY]: + Likewise. + +2005-07-25 Bruno Haible + + 2003-08-24 Bruno Haible + * lib/relocatable.h: Make this file includable in C++ mode: add extern + "C". + +2005-07-08 Bruno Haible + + * Version 1.10 released. + +2005-07-08 Bruno Haible + + * m4/libtool.m4 (postinstall_cmds) [cygwin,mingw,pw32]: Make DLL + executable after installing it. + +2005-07-08 Bruno Haible + + * configure.in: Bump version number. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * windows/iconv.rc: Likewise. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 5:0:3. + +2005-07-05 Bruno Haible + + * Makefile.devel (ACLOCAL): New variable. + (aclocal.m4): Use it. + +2005-07-05 Bruno Haible + + * m4/relocatable.m4 (AC_RELOCATABLE): On mingw, simply set + SET_RELOCATABLE to a trivial value. + +2004-08-08 Bruno Haible + + * srclib/progreloc.c (xstrdup): Define as strdup if no xmalloc should + be used. + +2004-04-28 Bruno Haible + + * srclib/progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): + Treat Cygwin like Windows, since it now accepts Windows pathnames. + +2005-06-09 Bruno Haible + + * Makefile.in (mkinstalldirs): Use build-aux/ instead of autoconf/. + * lib/Makefile.in (mkinstalldirs): Likewise. + * src/Makefile.in (mkinstalldirs): Likewise. + * man/Makefile.in (mkinstalldirs): Likewise. + +2005-06-08 Bruno Haible + + * srclib/canonicalize.c (__realpath): Avoid gcc warnings on platforms + that don't support symbolic links. + +2005-06-08 Bruno Haible + + * srclib/binary-io.h (fileno): Undefine before defining it. Avoids a + gcc warning on mingw. + +2005-05-22 Bruno Haible + + Implement and document BIG5-2003. + * lib/big5_2003.h: New file. + * lib/converters.h: Include it. + * lib/encodings_extra.def (BIG5-2003): New encoding. + * README, man/iconv_open.3: Add BIG5-2003. + * tests/Makefile.in (check-extra-yes): Check BIG5-2003. + * tests/BIG5-2003.TXT: New file. + +2005-05-21 Bruno Haible + + Add EURO SIGN to EUC-TW converter. + * lib/cns11643_1.h (cns11643_1_2uni_page42): Add entry for 0x14242. + (cns11643_1_mbtowc): Update. + * lib/cns11643_inv.h (cns11643_inv_2charset): Add entry for 0x20AC. + (cns11643_inv_uni2indx_page*): Update. + * lib/dec_hanyu.h (dec_hanyu_mbtowc, dec_hanyu_wctomb): Consider only + part of row 42. + * tests/EUC-TW.TXT: Add entry for 0x20AC. + * tests/EUC-TW.IRREVERSIBLE.TXT: Likewise. + +2005-05-03 Bruno Haible + + * tools/Makefile (ALL): Add pt154.h. + (pt154.h): New rule. + * lib/encodings.def: Add PT154. + * lib/pt154.h: New file. + * lib/converters.h: Include it. + * README, man/iconv_open.3: Add PT154. + * NOTES: Mention PT154. + * tests/PT154.TXT: New file. + * tests/Makefile.in (check): Also test PT154. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + +2005-03-29 Bruno Haible + + Rename libiconv_plug.so to preloadable_libiconv.so. + * configure.in (PLUGLIB): Set to preloadable_libiconv.so instead of + libiconv_plug.so. + * lib/Makefile.in (preloadable_libiconv.so): Renamed from + libiconv_plug.so. + (preloadable_libiconv_linux.so): Renamed from libiconv_plug_linux.so. + (preloadable_libiconv_solaris.so): Renamed from + libiconv_plug_solaris.so. + (preloadable_libiconv_osf.so): Renamed from libiconv_plug_osf.so. + (clean): Update. + * README: Update. + +2005-03-29 Bruno Haible + + Implement and document ATARIST. + * tools/Makefile (ALL): Add atarist.h. + (atarist.h): New rule. + * lib/atarist.h: New file. + * lib/converters.h: Include it. + * lib/encodings_extra.def (ATARIST): New encoding. + * README, man/iconv_open.3: Add ATARIST. + * tests/Makefile.in (check-extra-yes): Check ATARIST. + * tests/ATARIST.TXT: New file. + +2005-03-22 Bruno Haible + + * build-aux: New directory, renamed from autoconf. + * configure.in (AC_CONFIG_AUX_DIR): Use build-aux. + +2005-03-16 Bruno Haible + + * m4/stdint.m4 (gl_STDINT_H): Define HAVE_LONG_LONG_64BIT instead of + HAVE_LONGLONG_64BIT. + * srclib/stdint_.h: Use HAVE_LONG_LONG_64BIT instead of + HAVE_LONGLONG_64BIT. + * srclib/Makefile.am (stdint.h): Likewise. + +2005-03-14 Bruno Haible + + * Makefile.devel (aclocal.m4): Depend also on allocsa.m4, eealloc.m4, + extensions.m4, intmax.m4, inttypes.m4, longdouble.m4, longlong.m4, + printf-posix.m4, readlink.m4, signed.m4, ssize_t.m4, stdint.m4, + wchar_t.m4, wint_t.m4. + +2005-03-13 Bruno Haible + + Make stdout error checking reliable, also when writing to a NFS file. + * src/iconv.c (main): Check the return value of fclose(stdout). + * lib/genaliases.c (main): Likewise. + * lib/genaliases2.c (main): Likewise. + * lib/genflags.c (main): Likewise. + * lib/gentranslit.c (main): Likewise. + * tests/genutf8.c (main): Likewise. + * tests/table-from.c (main): Likewise. + * tests/table-to.c (main): Likewise. + +2005-03-13 Bruno Haible + + * src/iconv.c (convert): Before outputting an error message, flush + stdout and output a newline if suitable. + +2005-03-13 Bruno Haible + + Improved error messages. + * srclib/width.c: New file, from GNU clisp. + * srclib/uniwidth.h: New file, from GNU clisp with modifications. + * srclib/unitypes.h: New file, from GNU clisp with modifications. + * srclib/cjk.h: New file, from GNU clisp. + * srclib/streq.h: New file, from GNU clisp. + * srclib/stdint_.h: New file, from gnulib. + * m4/stdint.m4: New file, from gnulib. + * m4/inttypes.m4: New file, from gnulib. + * srclib/Makefile.am: Add gnulib module 'stdint' snippet. + (BUILT_SOURCES): New variable. + (libicrt_a_SOURCES): Add width.c, uniwidth.h, unitypes.h, cjk.h, + streq.h. + * configure.in: Invoke gl_STDINT_H. + * src/iconv.c: Include cjk.h, uniwidth.h. + (line, column, cjkcode): New variables. + (update_line_column): New function. + (convert): Initialize line and column. In all error message, show also + the line and column number. + (main): Initialize cjkcode. Set up hooks to call update_line_column. + +2005-03-13 Bruno Haible + + * include/iconv.h.in (iconv_canonicalize): New declaration. + * lib/genaliases.c (emit_encoding): Take two output streams as + arguments. To the second stream, emit a shell command for extracting + offsets into the gperf generated string pool. + (main): Write the shell commands into file descriptors 3 and 4. + * lib/genaliases2.c (emit_encoding): Take two output streams as + arguments. To the second stream, emit an expression for the offset + into the string pool. + (main): Write the offsets into file descriptor 3. + * Makefile.devel (lib/aliases.gperf): Remove target. + (lib/aliases.h): Generate lib/aliases.gperf temporarily. Generate also + lib/canonical.h and lib/canonical_local.h. + (lib/aliases_aix.h): Generate also lib/canonical_aix.h. + (lib/aliases_osf1.h): Generate also lib/canonical_osf1.h. + (lib/aliases_dos.h): Generate also lib/canonical_dos.h. + (lib/aliases_extra.h): Generate also lib/canonical_extra.h. + * lib/iconv.c (stringpool2): Provide default definition when it doesn't + exist. + (all_canonical): New array. + (iconv_canonicalize): New function. + +2005-03-13 Bruno Haible + + * include/iconv.h.in (iconv_unicode_char_hook, iconv_wide_char_hook, + iconv_hooks): New types. + (ICONV_SET_HOOKS): New macro. + * lib/converters.h (struct conv_struct): Add field 'hooks'. + * lib/iconv.c (iconv_open): Initialize hooks to NULL. + (iconvctl): Handle ICONV_SET_HOOKS. + * lib/loop_unicode.h (unicode_loop_convert, unicode_loop_reset): After + conversion of a character, call the uc_hook. + * lib/loop_wchar.h (wchar_id_loop_convert): After every character, call + the wc_hook. + * lib/genflags.c (iconv_hooks): Provide a dummy definition. + +2005-02-05 Bruno Haible + + * src/iconv.c (main): In case of unsupported encodings, show a hint + towards "iconv -l". + +2005-01-06 Bruno Haible + + * lib/Makefile.msvc (CFLAGS): Define also INSTALLPREFIX. + * lib/Makefile.vms (DEFS): Likewise. + Reported by Troels Walsted Hansen . + +2005-01-05 Bruno Haible + + * autoconf/config.rpath: Update from GNU gettext. + +2005-01-05 Bruno Haible + + Assume automake-1.9. + * Makefile.devel (AUTOMAKE): Assume automake-1.9. + +2005-01-05 Bruno Haible + + * m4/libtool.m4: Update from GNU gettext, based on libtool-1.5.10. + * autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5.10. + +2004-11-11 Bruno Haible + + * lib/iconv.c (iconv_open): Accept the suffixes //TRANSLIT and //IGNORE + in arbitrary order. + Reported by Lukas Gebauer . + +2004-09-21 Juan Manuel Guerrero + + * djgpp/config.bat: Update. + * djgpp/config.sed: Update. + * djgpp/config.site: Update. + * djgpp/edtest.bat: Update. + * djgpp/fnchange.in: Update. + * djgpp/Makefile.maint: Update. + * djgpp/makefile.sed: Update. + * djgpp/README.in: Update. + * djgpp/sources.sed: Update. + * djgpp/translit-check.sed: Update. + +2004-08-25 Bruno Haible + + * m4/libtool.m4: Update from GNU gettext, based on libtool-1.5.6. + * autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5.6. + +2004-07-31 Bruno Haible + + Update to JISX 0213 plane 1 to 2004 version (ISO-IR-233). + * tools/Makefile (jisx0213.h): Bump version number. + * tools/JISX0213.TXT: Change mappings U+2015 -> U+2014, + U+2299 -> U+29BF, and add 10 new characters. + * tools/cjk_tab_to_h.c (output_title): Bump year. + (do_jisx0213): Update comments. Emit a conditional 'inline'. + * lib/jisx0213.h: Regenerated. + * lib/iso2022_jp3.h (iso2022_jp3_mbtowc): Accept escape sequence + ESC $ ( Q as a synonym of ESC $ ( O. + (iso2022_jp3_wctomb): Emit ESC $ ( Q instead of ESC $ ( O. + * tests/EUC-JISX0213.TXT: Change mappings U+2015 -> U+2014, + U+2299 -> U+29BF, and add 10 new characters. + * tests/SHIFT_JISX0213.TXT: Likewise. + * tests/ISO-2022-JP-3-snippet: Update. + * tests/ISO-2022-JP-3-snippet.UTF-8: Update. + +2004-07-22 Bruno Haible + + * lib/encodings.def (ISO-8859-7): Add alias ISO_8859-7:2003. + * tools/Makefile (iso8859_7.h): Use conversion table from 2003. + * lib/iso8859_7.h: Add mappings for 0xa4, 0xa5, 0xaa. + * tests/ISO-8859-7.TXT: Update to ISO_8859-7:2003. + +2004-07-22 Bruno Haible + + * tools/Makefile (ALL): Add iso8859_11.h. + (iso8859_11.h): New rule. + * lib/encodings.def: Add ISO-8859-11. + * lib/iso8859_11.h: New file. + * lib/converters.h: Include it. + * tests/ISO-8859-11.TXT: New file. + * tests/Makefile.in (check): Also test ISO-8859-11. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + +2004-07-17 Bruno Haible + + * src/iconv.c (main): Terminate option parsing when option -- is seen. + Reported by Len Lattanzi . + +2004-03-05 Bruno Haible + + * src/Makefile.in (install): Make DESTDIR work on HP-UX. + Reported by Bob Proulx . + +2004-02-19 Bruno Haible + + * lib/vietcomb.h (viet_comp_table_data): Un-uncomment 0x00D5, 0x00F5, + 0x0168, 0x0169. Needed for TCVN-5712 but not for CP1258. + (viet_comp_table0301_len): Increment by 4. + + * lib/cp1255.h (cp1255_mbtowc): Don't delay the handling of characters + which are not entries in cp1255_comp_table_data. + * lib/cp1258.h (cp1258_comp_bases): New array. + (cp1258_mbtowc): Don't delay the handling of characters which are not + relevant entries in viet_comp_table_data. + * lib/tcvn.h (tcvn_comp_bases): New array. + (tcvn_mbtowc): Don't delay the handling of characters which are not + relevant entries in viet_comp_table_data. + Reported by Alain Bench . + +2004-02-02 Perry Rapp + Bruno Haible + + * man/iconvctl.3: New file. + * man/iconv.3: Refer to it in "See also". + * man/iconv_open.3: Likewise. + +2004-01-24 Bruno Haible + + * srclib/progreloc.c (xstrdup): Define as strdup if no xmalloc should + be used. + +2004-01-20 Bruno Haible + + Upgrade from gettext-0.14. + + * configure.in: Call gl_USE_SYSTEM_EXTENSIONS. Call AM_STDBOOL_H + instead of gt_STDBOOL_H. Provide a definition for DLL_VARIABLE. + * srclib/Makefile.am (libicrt_a_SOURCES): Add allocsa.h, allocsa.c, + xalloc.h. Remove xmalloc.h. + (libicrt_a_LIBADD): Remove @ALLOCA@. + * srclib/Makefile.msvc (OBJECTS): Add allocsa.obj. + (allocsa.obj): New rule. + * srclib/Makefile.vms (OBJECTS): Add allocsa.obj. + (allocsa.obj): New rule. + * Makefile.devel (config.h_vms): Set MALLOC_0_IS_NONNULL to 0. + (config.h.msvc): Set MALLOC_0_IS_NONNULL to 1. + + lib/: + + 2003-10-09 Bruno Haible + * lib/relocatable.c: Include xalloc.h instead of xmalloc.h. + + 2003-08-01 Bruno Haible + * lib/relocatable.c (find_shared_library_fullname): Disable the code on + Linux/libc5. Reported by Alain Guibert . + + 2003-06-22 Bruno Haible + * lib/relocatable.c (compute_curr_prefix): Comment out this function in + the case when it is not used. + Reported by Pavel Roskin . + + m4/: + + * m4/gettext.m4: Upgrade from GNU gettext. Many changes. + * m4/po.m4: Likewise. + + * m4/readlink.m4: New file, from GNU gettext. + + 2003-11-30 Bruno Haible + * m4/allocsa.m4: New file. + * m4/eealloc.m4: New file. + * m4/setenv.m4 (gl_PREREQ_SETENV): Require gl_ALLOCSA instead of + AC_FUNC_ALLOCA. + + 2003-10-21 Bruno Haible + * m4/canonicalize.m4 (gl_PREREQ_CANONICALIZE): Also test for + readlink(). + + 2003-08-24 Bruno Haible + * m4/relocatable.m4 (AC_RELOCATABLE): Use $(host) instead of @host@, + since the substitution of @host@ may occur before the substitution of + @SET_RELOCATABLE@. + + 2003-08-23 Bruno Haible + * stdbool.m4: Replace with the version from gnulib, without + AC_HEADER_STDBOOL. + + 2003-08-08 Paul Eggert + * m4/extensions.m4: New file. + * m4/unlocked-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO): + Require gl_USE_SYSTEM_EXTENSIONS rather than AC_GNU_SOURCE. + + 2003-07-01 Bruno Haible + * m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Don't include . + should be sufficient. + Reported by Paul Eggert. + + 2003-07-01 Bruno Haible + * m4/lib-prefix.m4 (AC_LIB_ARG_WITH): Avoid "duplicated macro" error + from aclocal-1.4-p4. + Reported by Luke Schierer and + Michael C. Toren . + + 2003-07-01 Paul Eggert + * m4/xreadlink.m4 (gl_XREADLINK): Don't check for sys/types.h, since + xreadlink.c now includes it unconditionally. + + 2003-06-17 Paul Eggert + * m4/lib-ld.m4 (AC_LIB_PROG_LD_GNU, AC_LIB_PROG_LD): Don't use egrep, + for portability to POSIX 1003.1-2001. Backported from libtool-1.5. + + 2003-05-28 Paul Eggert + * m4/pathmax.m4 (gl_PATHMAX): Don't check for limits.h. + * m4/xreadlink.m4 (gl_XREADLINK): Likewise. + + 2002-12-24 Bruno Haible + * m4/setenv.m4 (gt_FUNC_SETENV): New macro. + (gt_CHECK_VAR_DECL): Fix quoting error that led to infinite loop in m4 + when invoked twice. + (gt_PREREQ_SETENV, gt_PREREQ_UNSETENV): New macros, replacing old + gt_FUNC_SETENV. + + srclib/: + + 2003-11-30 Bruno Haible + * srclib/alloca.c: Remove file. + + 2003-11-30 Bruno Haible + Safer stack allocation. + * srclib/allocsa.h: New file. + * srclib/allocsa.c: New file. + * canonicalize.c: Include allocsa.h. + (__realpath): Use allocsa instead of alloca. Don't clobber errno right + before returning NULL. + * srclib/relocwrapper.c: Indirectly depends on allocsa. + * srclib/setenv.c: Include allocsa.h. + (alloca): Remove fallback definition. + (freea): Remove macro. + (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa + instead of freea. + + 2003-11-17 Bruno Haible + * srclib/canonicalize.c: #undef realpath after but before + the system includes, so as to avoid a prototype clash on Solaris 2.5.1. + Reported by Warren L. Dodge . + + 2003-10-21 Bruno Haible + * srclib/canonicalize.c (lstat): Define as an alias to 'stat' on + systems without symbolic links. + + 2003-10-17 Bruno Haible + * srclib/binary-io.h: Avoid warnings on Cygwin. + + 2003-10-09 Bruno Haible + * srclib/xalloc.h: Renamed from xmalloc.h. + * srclib/progreloc.c: Include xalloc.h instead of xmalloc.h. + * srclib/relocatable.c: Likewise. + * srclib/xmalloc.c: Likewise. + * srclib/xreadlink.c: Likewise. + * srclib/xstrdup.c: Likewise. + + 2003-09-12 Paul Eggert + * srclib/progreloc.c (get_full_program_name): Define via prototype. + + 2003-09-12 Paul Eggert + * srclib/setenv.c (clearenv): Define via prototype. + + 2003-09-10 Bruno Haible + * srclib/setenv.c: Include and unconditionally. + * srclib/unsetenv.c: Likewise. + + 2003-08-28 Bruno Haible + * srclib/binary-io.h: Undefine O_BINARY before defining it. This avoids + a warning on QNX, which defines O_BINARY to 000000. + + 2003-08-24 Bruno Haible + * srclib/binary-io.h: Include , to avoid a compilation error + when MSVC7 is included later. + + 2003-08-24 Bruno Haible + * srclib/error.h: Use ANSI C "..." declarations when compiling with + MSVC, even though it doesn't define __STDC__ by default. + * srclib/error.c: Use when compiling with MSVC, even though + it doesn't define __STDC__ by default. + + 2003-08-24 Bruno Haible + Support for building DLLs on Windows. + * srclib/error.h (error_print_progname, error_message_count, + error_one_per_line): Add DLL_VARIABLE attribute. + * srclib/progname.h (program_name): Likewise. + + 2003-08-24 Bruno Haible + * srclib/progname.h: Make this file includable in C++ mode: add extern + "C". + * srclib/relocatable.h: Likewise. + * srclib/xmalloc.h: Likewise. + + 2003-08-22 Bruno Haible + * srclib/progname.h (error_with_progname, maybe_print_progname): Remove + declarations. + * srclib/progname.c (error_with_progname): Remove variable. + (maybe_print_progname): Remove function. + + 2003-08-01 Bruno Haible + * srclib/relocatable.c (find_shared_library_fullname): Disable the code + on Linux/libc5. Reported by Alain Guibert . + + 2003-07-01 Paul Eggert + * srclib/xreadlink.c: Include unconditionally, instead of + having it depend on HAVE_SYS_TYPES_H. + + 2003-06-23 Bruno Haible + Avoid compilation units that are empty after preprocessing. + * srclib/canonicalize.c: Add dummy declaration. + * srclib/strerror.c: Likewise. + * srclib/error.c: Include even if there's nothing to be + compiled. + + 2003-06-22 Bruno Haible + * srclib/relocatable.c (compute_curr_prefix): Comment out this function + in the case when it is not used. + Reported by Pavel Roskin . + + 2003-05-28 Paul Eggert + * srclib/pathmax.h: Include without checking for + HAVE_LIMITS_H. + * srclib/xreadlink.c: Likewise. + +2004-01-20 Bruno Haible + + Assume automake-1.8. + * Makefile.devel (AUTOCONF, AUTOHEADER): Assume autoconf-2.59. + (AUTOMAKE): Assume automake-1.8. + * Makefile.in (am--refresh): New target. + +2004-01-23 Bruno Haible + + * Version 1.9.2 released. + +2004-01-23 Bruno Haible + + * tests/table-from.c: Include binary-io.h. + (main): Switch stdout to binary mode. + * tests/table-to.c: Include binary-io.h. + (main): Switch stdout to binary mode. + * tests/genutf8.c: Include binary-io.h. + (main): Switch stdout to binary mode. + * tests/Makefile.in (INCLUDES): Also look in srclib. + (check): Pass INCLUDES when compiling genutf8.c. + * tests/Makefile.os2 (INCLUDES): Also look in srclib. + (genutf8.exe): Pass INCLUDES when compiling genutf8.c. + * tests/Makefile.msvc (INCLUDES): Also look in srclib. + (check): Pass INCLUDES when compiling genutf8.c. + +2004-01-21 Bruno Haible + + * src/iconv.c (force_binary): Remove variable. + (usage): Don't document --binary any more. + (convert, main): Always switch to binary mode. + * tests/check-stateful.bat: Remove --binary option. + * tests/check-translit.bat: Likewise. + * tests/check-stateful.cmd: Likewise. + * tests/check-translit.cmd: Likewise. + * djgpp/stateful-check.sed: Remove MODE variable. + * djgpp/translit-check.sed: Likewise. + +2004-01-21 Bruno Haible + + * man/iconv.3: Fix description of return value in case of error. + Reported by Jonathan Wakely . + +2003-09-12 Paul Eggert + + * srclib/progreloc.c (get_full_program_name): Define via prototype. + +2003-08-15 Bruno Haible + + * Makefile.devel (lib/translit.h): Add ulimit command so that the + gentranslit program gets the stack it needs. Many Linux distributions + allow only 8 MB of stack by default. + +2003-08-01 Bruno Haible + + * lib/relocatable.c (find_shared_library_fullname): Disable the code on + Linux/libc5. + * srclib/relocatable.c (find_shared_library_fullname): Likewise. + Reported by Alain Guibert . + +2003-07-02 Bruno Haible + + * m4/lib-ld.m4: Update from GNU gettext. + * m4/lib-prefix.m4: Update from GNU gettext. + * m4/gettext.m4: Update from GNU gettext. + * m4/intmax.m4: New file, from GNU gettext. + * m4/longdouble.m4: New file, from GNU gettext. + * m4/longlong.m4: New file, from GNU gettext. + * m4/printf-posix.m4: New file, from GNU gettext. + * m4/signed.m4: New file, from GNU gettext. + * m4/wchar_t.m4: New file, from GNU gettext. + * m4/wint_t.m4: New file, from GNU gettext. + * m4/pathmax.m4: Update from GNU gettext and gnulib. + * m4/ssize_t.m4: Update from GNU gettext and gnulib. + * m4/xreadlink.m4: Update from GNU gettext and gnulib. + * m4/readlink.m4: New file, from gnulib. + * autoconf/install-reloc: Update from GNU gettext. + * srclib/stdbool_.h: Renamed from srclib/stdbool.h.in. + * srclib/readlink.c: New file, from GNU gettext and gnulib. + * srclib/Makefile.am (LIBADD_SOURCE): Add readlink.c. + (EXTRA_DIST, stdbool.h): Use stdbool_.h instead of stdbool.h.in. + * configure.in: Invoke gl_FUNC_READLINK. + +2003-06-22 Bruno Haible + + * src/Makefile.in (install): Link with the already installed library. + This fixes a link error on Solaris. + Reported by Paul Eggert. + +2003-06-08 Bruno Haible + + * srclib/canonicalize.c (__getcwd) [VMS]: Pass 3 arguments to getcwd. + +2003-05-02 Bruno Haible + + Support for libtool-1.5. + * srclib/progname.c (set_program_name): Remove a leading + "/.libs/lt-" or "/.libs/", not only "lt-". + +2003-06-23 Bruno Haible + + Avoid compilation units that are empty after preprocessing. + * srclib/canonicalize.c: Add dummy declaration. + * srclib/strerror.c: Likewise. + * srclib/error.c: Include even if there's nothing to be + compiled. + +2003-06-22 Bruno Haible + + Portability to mingw32. + * m4/ssize_t.m4: New file, from GNU gettext. + * m4/xreadlink.m4 (gl_XREADLINK): Require gt_TYPE_SSIZE_T. + Reported by Jeff Bonggren . + +2003-06-22 Bruno Haible + + Portability to mingw32. + * lib/relocatable.c [WIN32]: Include . + * srclib/relocatable.c: Likewise. + Reported by Jeff Bonggren . + +2003-06-22 Bruno Haible + + * lib/relocatable.c (compute_curr_prefix): Comment out this function in + the case when it is not used. + * srclib/relocatable.c (compute_curr_prefix): Likewise. + Reported by Pavel Roskin . + +2003-06-18 Bruno Haible + + * config/install-sh: Update from automake-1.7.5. + +2003-06-16 Bruno Haible + + * lib/encodings.def (ISO-8859-15): Add alias LATIN-9. + (ISO-8859-16): Add aliases ISO_8859-16:2001, LATIN10, L10. Remove alias + ISO_8859-16:2000. + (GBK): Add aliases MS936, WINDOWS-936. + Reported by Guido Flohr . + +2003-05-09 Bruno Haible + + * srclib/canonicalize.c: Add #ifdef around versioned_symbol. Avoids an + "extraneous semicolon" warning from Tru64 cc. + +2003-06-07 Bruno Haible + + * Makefile.devel (config.h_vms): Don't define HAVE_ENVIRON_DECL. + * Makefile.vms (config.h): New rule. + (all, install): Depend on it. + (all, install, installdirs, uninstall, check): Fix typo. + (mostlyclean, clean, distclean, maintainer-clean): Likewise. Remove + config.h. + * lib/Makefile.vms (DEFS): Fix value of INSTALLDIR. + (OBJECTS): Use libiconv.obj instead of iconv.obj. + (libiconv.obj): Renamed from iconv.obj. + * srclib/Makefile.vms (INCLUDES): Add parent directory. + (OBJECTS): Remove strtoul.obj, setenv.obj, unsetenv.obj. + (strtoul.obj, setenv.obj, unsetenv.obj): Remove rules. + (alloca.h): New rule. + (canonicalize.obj): Depend on it. + (clean): Remove alloca.h. + * src/Makefile.vms (datadir, localedir): New variables. + (DEFS): Also define LOCALEDIR. + (iconv.obj): Add flags for relocatability, + (iconv.exe): Link with libicrt. Use link_options. + * vms/link_options.opt: New file. + Reported by Jouk Jansen . + +2003-06-07 Bruno Haible + + Support for relocatable data files even on Woe32. + * lib/Makefile.msvc (PICFLAGS): Also define PIC. + +2003-05-22 Bruno Haible + + * Version 1.9.1 released. + +2003-05-22 Bruno Haible + + * lib/genaliases.c (main): Emit %pic instead of %null-strings. + Change type of 'name' field to 'int'. + * lib/genaliases2.c (emit_encoding): Add a 'tag' argument. Emit an + invocation of macro S(), including the tag and a counter. + (main): Use the command-line argument as tag. + * Makefile.devel (lib/aliases_aix.h, lib/aliases_osf1.h, + lib/aliases_dos.h, lib/aliases_extra.h): Pass a tag to the program. + * lib/iconv.c (stringpool2_t): New type. + (stringpool2_contents): New data table. + (stringpool2): New macro. + (sysdep_aliases): Make position-independent. Move #includes out to + aliases2.h. + (aliases2_lookup): Update. + (nalias): New type. + (compare_by_index): Use 'struct nalias' instead of 'struct alias'. + (iconvlist): Convert 'struct alias' to 'struct nalias' while copying. + * lib/aliases2.h: New file, extracted from lib/iconv.c. + +2003-05-20 Bruno Haible + + * lib/iconv.c (iconvlist): Test p->name against NULL, not against "". + Reported by Muraoka Taro . + +2003-05-19 Bruno Haible + + * windows/iconv.rc: Include . + Reported by Perry Rapp. + +2003-05-18 Bruno Haible + + * Version 1.9 released. + +2003-05-18 Bruno Haible + + * lib/Makefile.in (libiconv_plug_osf.so): Avoid using LIBTOOL_LINK. + +2003-05-18 Bruno Haible + + * lib/Makefile.msvc (DEBUGFLAGS): New variable. + (iconv.lib): Use it. + * src/Makefile.msvc (DEBUGFLAGS): New variable. + * tests/Makefile.msvc (DEBUGFLAGS): New variable. + +2003-05-17 Bruno Haible + + * src/Makefile.msvc (libdir, datadir, localedir): New variables. + (IIlibdir, IIdatadir, IIlocaledir): New variables. + (CFLAGS): Define LOCALEDIR. + (iconv_no_i18n.exe): New rule. + (all): Depend on it. + * tests/check-stateful.bat: Invoke iconv_no_i18n instead of iconv. + * tests/check-translit.bat: Likewise. + +2003-05-16 Bruno Haible + + * lib/genaliases.c (main): Emit declarations for gperf-3.0. + * Makefile.devel (lib/aliases.h): Remove gperf command line options; + add new option "-m 10" for gperf-3.0. + +2003-05-12 Bruno Haible + + * m4/error.m4: Update from gettext. + +2003-05-12 Bruno Haible + + * configure.in: Invoke AC_GNU_SOURCE and jm_FUNC_GLIBC_UNLOCKED_IO. + +2003-05-12 Bruno Haible + + * lib/Makefile.msvc (PICFLAGS, CFLAGS): Move BUILDING_* macros from + CFLAGS to PICFLAGS. + +2003-05-09 Bruno Haible + + * srclib/error.c: Update from gnulib with modifications. + * srclib/unlocked-io.h: New file, from gnulib. + * m4/strerror_r.m4: New file, from gnulib. + * m4/unlocked-io.m4: New file, from gnulib. + * Makefile.devel (aclocal.m4): Depend on them. + +2003-05-08 Bruno Haible + + * Makefile.msvc (IIPREFIX): New variable. + * srclib/Makefile.msvc (INCLUDES): Add -I..\windows. + * src/Makefile.msvc (IIPREFIX, IIprefix, IIexec_prefix, IIbindir, + IIincludedir): New variables. + (INCLUDES): Add -I..\windows. + (iconv.exe): Define INSTALLPREFIX and INSTALLDIR. Link with + ../srclib/icrt.lib. + Patches by Perry Rapp. + +2003-05-07 Bruno Haible + + * README.woe32: Fix instructions for step 1. + * srclib/Makefile.msvc (OBJECTS): Remove strtoul.obj. + (strtoul.obj): Remove rule. + Reported by Perry Rapp. + +2003-05-07 Bruno Haible + + * Makefile.vms: New file. + * lib/Makefile.vms: New file. + * srclib/Makefile.vms: New file. + * src/Makefile.vms: New file. + * man/Makefile.vms: New file. + * tests/Makefile.vms: New file. + * Makefile.devel (config.h_vms, lib/config.h_vms, include/iconv.h_vms): + New rules. + (all): Depend on them. + +2003-05-07 Bruno Haible + + * srclib/Makefile.msvc (OBJECTS): Remove findprog.obj. + (findprog.obj): Remove rule. + * src/Makefile.msvc (includedir): New variable. + +2003-05-06 Bruno Haible + + * lib/translit.def: Upgrade to Unicode 4.0. + +2003-05-06 Bruno Haible + + * srclib/Makefile.am (DEFS): Fix spelling of DEPENDS_ON_LIBICONV. + * srclib/Makefile.msvc (CFLAGS): Likewise. + + * srclib/Makefile.msvc (INCLUDES): Add -I.. . + Reported by Perry Rapp. + + * Makefile.msvc (config.h): New rule. + (all): Depend on it. + (mostlyclean, clean, distclean, maintainer-clean): Erase config.h. + Reported by Perry Rapp. + +2003-05-06 Bruno Haible + + * autoconf/config.guess: Update to GNU version 2003-02-22. + * autoconf/config.sub: Likewise. + +2003-05-06 Bruno Haible + + * m4/lib-link.m4: Update from GNU gettext. + * autoconf/config.rpath: Update from GNU gettext. + + * m4/libtool.m4: Update from GNU gettext, based on libtool-1.5. + * autoconf/ltmain.sh: Update from GNU gettext, based on libtool-1.5. + + * m4/gettext.m4: Update from GNU gettext. + * m4/nls.m4: Update from GNU gettext. + * m4/po.m4: Update from GNU gettext. + * Makefile.devel (aclocal.m4): Depend on m4/nls.m4 and m4/po.m4. + +2003-04-12 Bruno Haible + + Support for OpenVMS 7.3. + * lib/iconv.c (USE_OSF1): Define also on VMS. + +2003-04-12 Bruno Haible + + Better support for FreeBSD. + * lib/encodings.def (ISO8859-{1,2,3,4,5,6,7,8,9,10,13,14,15,16): New + aliases, for compatibility with earlier FreeBSD iconv implementation + by Konstantin Chuguev. + * lib/iconv.c (iconv_open, iconv, iconv_close) [FreeBSD]: Define as + aliases. + * src/Makefile.in (install) [FreeBSD]: Avoid installation problem. + +2003-04-12 Bruno Haible + + * configure.in (mandir): Change default value. + * Makefile.in (datadir): New variable. + (install, installdirs, uninstall): Pass datadir to po and man + directories. + * Makefile.os2 (datadir): New variable. + (mandir): Use it instead of prefix. + (install, uninstall): Pass datadir to man directory. + * Makefile.msvc (mandir, docdir): Use datadir instead of prefix. + * man/Makefile.in (datadir): New variable. + (docdir): Use it instead of prefix. + (install, installdirs): Update. + * man/Makefile.os2 (datadir): New variable. + (mandir): Use it instead of prefix. + * man/Makefile.msvc (datadir): New variable. + (mandir, docdir): Use it instead of prefix. + (install, installdirs): Update. + +2003-04-06 Bruno Haible + + Make it possible to build with or without libintl support on Woe32. + * Makefile.devel (config.h.msvc): Remove ENABLE_NLS. + * Makefile.msvc (NO_NLS): New variable. + * srclib/Makefile.msvc (NO_NLS): New variable. + (CFLAGS, INCLUDES): Use them. + * src/Makefile.msvc (NO_NLS): New variable. + (NLSFLAGS, INCINTL, LIBINTL): New variables. + (CFLAGS, INCLUDES, iconv.exe): Use them. + +2003-04-12 Bruno Haible + + * lib/loop_unicode.h (unicode_transliterate): When the Hangul or + variants transliteration failed with RET_ILUNI, don't return + RET_TOOSMALL. + Reported by the FreeBSD porters. + +2003-04-06 Bruno Haible + + * srclib/binary-io.h: New file, from GNU gettext. + * src/iconv.c: Include it. + (O_BINARY, O_TEXT, SET_BINARY): Remove definitions. + +2003-04-05 Bruno Haible + + Support for relocatable installation. + * m4/alloca.m4: New file, from GNU gettext. + * m4/canonicalize.m4: New file, from GNU gettext. + * m4/error.m4: New file, from GNU gettext. + * m4/onceonly.m4: New file, from GNU gettext. + * m4/pathmax.m4: New file, from GNU gettext. + * m4/relocatable.m4: New file, from GNU gettext. + * m4/setenv.m4: New file, from GNU gettext. + * m4/stdbool.m4: New file, from GNU gettext. + * m4/strerror.m4: New file, from GNU gettext. + * m4/xreadlink.m4: New file, from GNU gettext. + * autoconf/config.libpath: New file, from GNU gettext. + * autoconf/install-reloc: New file, from GNU gettext. + * autoconf/reloc-ldflags: New file, from GNU gettext. + * autoconf/missing: New file, from GNU automake 1.7.3. + * lib/relocatable.h: New file, from GNU gettext. + * lib/relocatable.c: New file, from GNU gettext. + * srclib/alloca.c: New file, from GNU gettext. + * srclib/alloca_.h: New file, from GNU gettext. + * srclib/canonicalize.c: New file, from GNU gettext. + * srclib/canonicalize.h: New file, from GNU gettext. + * srclib/error.c: New file, from GNU gettext. + * srclib/error.h: New file, from GNU gettext. + * srclib/exit.h: New file, from GNU gettext. + * srclib/gettext.h: New file, from GNU gettext. + * srclib/memmove.c: New file, from GNU gettext. + * srclib/pathmax.h: New file, from GNU gettext. + * srclib/progname.c: New file, from GNU gettext. + * srclib/progname.h: New file, from GNU gettext. + * srclib/progreloc.c: New file, from GNU gettext. + * srclib/relocatable.c: New file, from GNU gettext. + * srclib/relocatable.h: New file, from GNU gettext. + * srclib/relocwrapper.c: New file, from GNU gettext. + * srclib/setenv.c: New file, from GNU gettext. + * srclib/setenv.h: New file, from GNU gettext. + * srclib/stdbool.h.in: New file, from GNU gettext. + * srclib/strerror.c: New file, from GNU gettext. + * srclib/unsetenv.c: New file, from GNU gettext. + * srclib/xmalloc.c: New file, from GNU gettext. + * srclib/xmalloc.h: New file, from GNU gettext. + * srclib/xreadlink.c: New file, from GNU gettext. + * srclib/xreadlink.h: New file, from GNU gettext. + * srclib/xstrdup.c: New file, from GNU gettext. + * srclib/Makefile.am: New file. + * srclib/Makefile.msvc: New file. + * windows/alloca.h: New file, from GNU gettext. + * windows/stdbool.h: New file, from GNU gettext. + * configure.in (AC_CONFIG_HEADERS): Replace src/config.h with config.h. + Add AC_RELOCATABLE, AC_HEADER_STDC, AC_CHECK_HEADERS(stddef.h stdlib.h + string.h), AC_CHECK_FUNCS(getc_unlocked), AC_REPLACE_FUNCS(memmove), + AM_LANGINFO_CODESET, gl_FUNC_ALLOCA, gl_CANONICALIZE, + gt_FUNC_ERROR_AT_LINE, gl_PATHMAX, gt_FUNC_SETENV, gt_STDBOOL_H, + gl_FUNC_STRERROR, gl_XREADLINK, AC_OUTPUT(srclib/Makefile). + * lib/config.h.in: Add HAVE_GETC_UNLOCKED, HAVE_LANGINFO_CODESET, + HAVE_SETLOCALE, HAVE_STDDEF_H, HAVE_STDLIB_H, HAVE_STRING_H, for + localcharset.c. Add ENABLE_RELOCATABLE, INSTALLPREFIX, for + relocatable.c. + * lib/Makefile.in (DEFS): New variable. + (SOURCES): Add localcharset.c and relocatable.c. + (OBJECTS): Add localcharset.lo and relocatable.lo. + (LIBCHARSET_OBJECTS): Remove variable. + (libiconv_plug_linux.so, libiconv_plug_solaris.so, + libiconv_plug_osf.so): Use $(DEFS). Don't use $(LIBCHARSET_OBJECTS). + (iconv.lo): Use $(DEFS). + (localcharset.lo, relocatable.lo): New rules. + * lib/Makefile.msvc (CFLAGS): Define HAVE_CONFIG_H, BUILDING_DLL, + ENABLE_RELOCATABLE, IN_LIBRARY, INSTALLDIR, NO_XMALLOC, + set_relocation_prefix, relocate. Remove $(PICFLAGS). + (INCLUDES): Simplify. + (SOURCES): Remove variable. + (OBJECTS): Add localcharset.obj and relocatable.obj. + (LIBCHARSET_OBJECTS): Remove variable. + (iconv.obj): Add $(PICFLAGS). + (localcharset.obj, relocatable.obj): New rules. + (iconv.lib): Drop $(LIBCHARSET_OBJECTS). + * include/iconv.h.in (libiconv_set_relocation_prefix): New declaration. + * src/gettext.h: Remove file. + * src/iconv.c: Include progname.h and relocatable.h. + (ICONV_CONST): Define to const if the system has no iconv. + (main): Invoke set_program_name. Relocate LOCALEDIR. + * src/Makefile.in (top_srcdir): New variable. + (INCLUDES): Add .. and ../srclib. + (iconv_no_i18n, iconv): Link with ../srclib/libicrt.a. + (iconv_no_i18n.@OBJEXT@, iconv.@OBJEXT@): Define INSTALLDIR. + (RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR, + RELOCATABLE_CONFIG_H_DIR, @SET_RELOCATABLE@, iconv_LDFLAGS): New + variables. + (iconv): Use $(iconv_LDFLAGS). + (install): Use $(INSTALL_PROGRAM_ENV). + (distclean): Drop removing config.h. + * src/Makefile.msvc (INCLUDES): Add .., simplify. + * tests/Makefile.msvc (INCLUDES): Simplify. + * Makefile.devel (AUTOHEADER, AUTOMAKE): New variables. + (config.h.in, srclib/Makefile.in, config.h.msvc): New rules. + (all): Depend on them. + (aclocal.m4) Depend also on m4/alloca.m4, m4/canonicalize.m4, + m4/error.m4, m4/onceonly.m4, m4/pathmax.m4, m4/relocatable.m4, + m4/setenv.m4, m4/stdbool.m4, m4/strerror.m4, m4/xreadlink.m4. + (lib/config.h.msvc): Additional processing. + * Makefile.in (all, install, installdirs, uninstall, check): Recurse + into srclib. + (mostlyclean, clean, distclean, maintainerclean): Likewise. Remove + lib/localcharset.h. + (distclean, maintainerclean): Remove also config.h and some stamps. + * Makefile.msvc (all, install, installdirs, uninstall, check, + mostlyclean, clean, distclean, maintainerclean): Recurse into srclib. + * INSTALL.generic: Document --enable-relocatable and + --with-libintl-prefix. Remove the recommendation to set CPPFLAGS and + LDFLAGS. The lib-link.m4 macros make this unnecessary. + +2003-04-05 Bruno Haible + + * configure.in: Bump version number to 1.9. + * include/iconv.h.in (_LIBICONV_VERSION): Bump. + * windows/iconv.rc: Bump version number. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 4:0:2. + +2003-04-05 Bruno Haible + + * Makefile.msvc (PREFIX): New variable. + (prefix): Use it. + (distclean, maintainer-clean): Drop Unix specific removals. + * lib/Makefile.msvc (PREFIX, IIPREFIX): New variables. + (prefix): Use it. + (IIprefix, IIexec_prefix, IIbindir, IIlibdir): New variables. + (clean): Drop Unix specific removal. + * src/Makefile.msvc (PREFIX): New variable. + (prefix): Use it. + (clean): Drop Unix specific removal. + (distclean): Likewise. + * tests/Makefile.msvc (clean): Drop Unix specific removal. + (distclean): Likewise. + +2003-04-05 Bruno Haible + + * m4/endian.m4 (CL_WORDS_LITTLEENDIAN): Use 3-argument AC_DEFINE. + +2003-04-05 Bruno Haible + + * m4/general.m4 (CL_CONFIG_SUBDIRS, CL_CANONICAL_HOST, + CL_CANONICAL_HOST_CPU, CL_CANONICAL_HOST_CPU_FOR_FFCALL): Remove + macros. + * m4/gettext.m4: Update from GNU gettext. + * m4/iconv.m4: Update from GNU gettext. + * m4/lcmessage.m4: Update from GNU gettext. + * m4/progtest.m4: Update from GNU gettext. + * m4/libtool.m4: Update from GNU gettext. + 2003-02-16 Bruno Haible + Workaround autoconf >= 2.52 breakage. + * libtool.m4 (AC_LIBTOOL_ARG_WITH): New macro. + (_LT_AC_LTCONFIG_HACK, AC_PROG_LD): Use it. + * autoconf/ltmain.sh: Update from GNU gettext. + 2003-02-18 Bruno Haible + Fix the 2002-09-16 fix. + * ltmain.sh (install): If "ln -s -f" fails (this is the case + with /usr/bin/ln on Solaris 2.7), fall back to "rm && ln -s". + +2003-04-05 Bruno Haible + + Start using automake. + * configure.in: Add AM_INIT_AUTOMAKE invocation. + (PACKAGE, VERSION): Remove. + Use AC_CANONICAL_HOST instead of CL_CANONICAL_HOST. + Use AC_PROG_LN_S instead of CL_PROG_LN_S. + Use AC_PROG_RANLIB instead of CL_PROG_RANLIB. + Reorder so that AC_CANONICAL_HOST comes early but still after + AC_PROG_CC. + * m4/ranlib.m4: Remove file. + * m4/libtool.m4: Undo AC_ -> CL_ substitutions. + * Makefile.devel (CLISP_DIR): Comment out. + (AUTOCONF_FILES): Change to aclocal.m4. + (aclocal.m4): Renamed from autoconf/aclocal.m4. Update dependencies. + (configure.in): Drop --include option. + +2003-03-17 Bruno Haible + + Improved MSVC support. + * Makefile.msvc (prefix): Use less Unixy value. + (local_prefix): Remove variable. + (libdir, includedir, mandir): Use backslashes. + (bindir, datadir, localedir, docdir): New variables. + (INSTALL, INSTALL_PROGRAM, INSTALL_DATA): New variables. + (all): Recurse into po/ and man/. + (install, installdirs, uninstall): Rewritten. + (check, mostlyclean, clean, distclean, maintainer-clean): Recurse + into po/ and man/. + * lib/Makefile.msvc (prefix): Use less Unixy value. + (local_prefix): Remove variable. + (libdir): Use backslashes. + (bindir): New variable. + (INSTALL, INSTALL_PROGRAM, INSTALL_DATA): Set to real values. + (RESOURCES): Enable iconv.res. + (install, installdirs, uninstall): New rules. + (clean): Remove config.h. + (distclean): Don't remove config.h here. + * src/Makefile.msvc (prefix, exec_prefix, bindir): New variables. + (INSTALL, INSTALL_PROGRAM, INSTALL_DATA): New variables. + (install, installdirs, uninstall): New rules. + * man/Makefile.msvc: New file. + * tests/Makefile.msvc (install, installdirs, uninstall): New rules. + * Makefile.devel (all): Depend on po/Makefile.msvc. + (po/Makefile.msvc): New rule. + * windows/iconv.rc: Update. + * README.woe32: Mention automatic installation command. + + Rename libcharset.h to localcharset.h. + * lib/iconv.c: Include localcharset.h, not libcharset.h. + * Makefile.in (lib/localcharset.h): Renamed from lib/libcharset.h. + (all, install): Update dependencies. + (all): Create lib/localcharset.h, not lib/libcharset.h. + (mostlyclean, clean, distclean, maintainer-clean): Remove + lib/localcharset.h, not lib/libcharset.h. + * djgpp/README.in, djgpp/README: Update. + * djgpp/config.bat: Update. + * djgpp/config.sed: Update. + * djgpp/fnchange.in, djgpp/fnchange.lst: Update. + +2003-01-31 Bruno Haible + + * src/Makefile.in (all): Don't do the chmod if it has already been + done. + +2003-01-31 Bruno Haible + + * lib/loop_unicode.h (unicode_transliterate): Enable recursive + transliteration. Idea from Perry Rapp. + * lib/gentranslit.c (main): Change bound from 0x10000 to 0x110000. + Change element type of translit_data to 'unsigned int'. + * lib/translit.def: Many new transliterations, mostly taken from glibc. + * lib/translit.h: Regenerated. + * tests/Translit1.ISO-8859-1, tests/Translit1.ASCII: New files. + * tests/Makefile.in (check): Add Translit1 check. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + * tests/TranslitFail1.ISO-8859-1: Choose a sentence which the new + improved transliteration cannot do. + +2003-02-14 Bruno Haible + + * Makefile.devel (AUTOCONF): Switch to autoconf-2.57. + (configure): Update rule. + +2003-01-03 Albert Chin + + * autoconf/ltmain.sh: Don't pass -R flags found in a .la's + dependency_libs variable directly down to the linker. + Reported by Tim Mooney . + +2003-01-01 Bruno Haible + + * src/Makefile.in (install): Use libiconv.la in ../lib, not in + $(libdir), so that installing with DESTDIR works. + Reported by Michael Adams . + +2003-01-01 Bruno Haible + + * Makefile.in (mkinstalldirs): New variable. + (install-lib, install, installdirs): Use it instead of mkdir. + * lib/Makefile.in (mkinstalldirs): New variable. + (install-lib, install, installdirs): Use it instead of mkdir. + * man/Makefile.in (mkinstalldirs): New variable. + (install, installdirs): Use it instead of mkdir. + * src/Makefile.in (mkinstalldirs): New variable. + (install, installdirs): Use it instead of mkdir. + +2002-09-27 Bruno Haible + + * autoconf/mkinstalldirs: Upgrade to automake-1.7.2 version. + +2002-11-07 Bruno Haible + + * m4/libtool.m4: Upgrade to libtool-1.4.3. + * autoconf/ltmain.sh: Upgrade to libtool-1.4.3. + +2002-07-14 Bruno Haible + + * m4/libtool.m4 (_LT_AC_LTCONFIG_HACK): Add support for GNU/FreeBSD. + +2002-06-12 Bruno Haible + + * configure.in: Use new AC_* names of libtool macros. Invoke + AC_LIBTOOL_WIN32_DLL. + +2002-12-19 Bruno Haible + + * lib/Makefile.in (libiconv_plug_solaris.so): Change rule if using gcc. + Reported by Henry Nelson . + +2002-11-07 Bruno Haible + + Make "make install" without prior "make" work. + * Makefile.in (lib/libcharset.h): New rule. + (all, install): Depend on it. + Reported by Martin Mokrejš . + +2002-10-28 Bruno Haible + + * man/Makefile.in (install): Change directory back to the working + directory, so that install-sh (which may be a relative pathname) is + found in the right place. + +2002-09-16 Bruno Haible + + * autoconf/ltmain.sh (install): Use "ln -s -f" instead of + "rm -f && ln -s" to make a symlink for a shared library. + Reported by Nelson H. F. Beebe . + +2002-09-02 Bruno Haible + + * src/iconv.c (main): Don't call bindtextdomain if !ENABLE_NLS. + +2002-08-16 Bruno Haible + + * src/iconv.c (main): Perform fflush before testing ferror(stdout). + +2002-05-29 Bruno Haible + + * Version 1.8 released. + +2002-05-26 Bruno Haible + + * lib/c99.h: New file. + * lib/converters.h: Include it. + * lib/encodings.def (C99): New encoding. + * README, man/iconv_open.3: Document C99 encoding. + +2002-05-26 Bruno Haible + + * lib/java.h (java_mbtowc): Accept 12-byte sequences for non-BMP + characters. + (java_wctomb): Produce 12-byte sequences for non-BMP characters. + +2002-05-29 Bruno Haible + + Fix installation of iconv program when linked with a libintl that was + built against an earlier libiconv. + * src/iconv.c: Conditionally disable NLS. + * src/iconv_no_i18n.c: New file. + * src/Makefile.in (libdir): New variable. + (all): Depend on iconv_no_i18n, iconv.@OBJEXT@ but not iconv. Make + directory writable, so iconv executable can be created during "make + install". + (iconv): Remove rule. + (iconv_no_i18n, iconv_no_i18n.@OBJEXT@): New rules. + (install): Link iconv now, after the new libiconv.so is installed. + (clean): Also remove iconv_no_i18n. + * tests/Makefile.in: (check, check-extra-yes): Depend on iconv_no_i18n, + not iconv. + * tests/check-stateful: Use iconv_no_i18n, not iconv. + * tests/check-translit: LIkewise. + * tests/check-translitfailure: Likewise. + +2002-05-29 Bruno Haible + + * configure.in: Call AC_PROG_INSTALL instead of CL_PROG_INSTALL. + * m4/install.m4: Remove file. + * Makefile.devel (autoconf/aclocal.m4): Don't depend on m4/install.m4. + +2002-05-24 Bruno Haible + + * lib/jisx0213.h: Use 'inline' only conditionally. + +2002-05-18 Bruno Haible + + * configure.in (AC_INIT), include/iconv.h.in (_LIBICONV_VERSION), + README, windows/iconv.rc, djgpp/README, djgpp/fnchange.lst: + Bump version number. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 3:0:1. + +2002-02-06 Bruno Haible + + * autoconf/ltmain.sh: Upgrade from libtool-1.4 to libtool-1.4.2. + +2002-02-02 Bruno Haible + + * autoconf/ltmain.sh: Add DESTDIR support on ELF systems. + +2001-11-03 Bruno Haible + + * autoconf/ltmain.sh: chmod 777 the .libs directory, so that + "make install" succeeds. + +2002-05-18 Bruno Haible + + * src/Makefile.in (iconv): Remove the -liconv dependency of -lintl + from the command line. Needed to ensure that the new libiconv version + is used on FreeBSD. + +2002-05-14 Bruno Haible + + Implement and document CP853, TDS565, RISCOS-LATIN1. + * tools/Makefile (ALL): Add cp853.h, tds565.h, riscos1.h. + (cp853.h, tds565.h, riscos1.h): New rules. + * lib/cp853.h: New file. + * lib/tds565.h: New file. + * lib/riscos1.h: New file. + * lib/converters.h: Include them. + * lib/encodings_dos.def (CP853): New encoding. + * lib/encodings_extra.def (TDS565, RISCOS-LATIN1): New encodings. + * README, man/iconv_open.3: Add CP853, TDS565, RISCOS-LATIN1. + * tests/Makefile.in (check-extra-yes): Check CP853, TDS565, + RISCOS-LATIN1. + * tests/Makefile.msvc (check): Check CP853. + * tests/CP853.TXT: New file. + * tests/TDS565.TXT: New file. + * tests/RISCOS-LATIN1.TXT: New file. + + * lib/cp860.h (cp860_wctomb): Optimize. + +2002-05-12 Bruno Haible + + * tools/Makefile (ksc5601.h): Add two extra characters. + * lib/ksc5601.h: Regenerated. + * tests/EUC-KR.TXT: Add EURO SIGN and REGISTERED SIGN. + * tests/CP949.TXT: Likewise. + * tests/JOHAB.TXT: Likewise. + +2002-05-12 Bruno Haible + + * README: Mention extra encodings. + * man/iconv_open.3: Likewise. Improve formatting in text and html + output formats. + +2002-05-12 Bruno Haible + + * tests/SHIFT_JIS.TXT: Renamed from tests/SHIFT-JIS.TXT. + +2002-05-12 Bruno Haible + + * Makefile.devel (AUTOCONF): New variable. + (AUTOCONF_FILES): Remove autoconf/autoconf.m4f. + (configure): Use the AUTOCONF variable. + * autoconf/autoconf: Remove file. + * autoconf/autoconf.m4: Remove file. + * autoconf/autoconf.m4f: Remove file. + +2002-05-12 Bruno Haible + + * tools/JISX0213.TXT: New file. + * tools/cjk_tab_to_h.c (do_jisx0213): New function. + (main): Accept "jisx0213". + * tools/Makefile (all): Add jisx0213.h. + (jisx0213.h): New rule. + * lib/jisx0213.h: New file, generated by cjk_tab_to_h. + * lib/euc_jisx0213.h: New file. + * lib/shift_jisx0213.h: New file. + * lib/iso2022_jp3.h: New file. + * lib/converters.h: Include them. + * lib/encodings_extra.def (EUC-JISX0213, SHIFT_JISX0213, + ISO-2022-JP-3): New encodings. + * tests/EUC-JISX0213.TXT: New file. + * tests/SHIFT_JISX0213.TXT: New file. + * tests/ISO-2022-JP-3-snippet: New file. + * tests/ISO-2022-JP-3-snippet.UTF-8: New file. + * tests/Makefile.in (check-extra): Also check EUC-JISX0213, + SHIFT_JISX0213, ISO-2022-JP-3. + * tests/check-stateless: Add support for encodings which contain + precomposed Unicode characters, by eliminating precomposed characters + before the comparison. + * tests/table-from.c (main): Fix usage message. + * tests/table-to.c (main): Make it work for encodings for which the + "to" direction is stateful. + +2002-05-09 Bruno Haible + + New configure option --enable-extra-encodings. + * lib/encodings_extra.def: New file. + * lib/converters.h: Handle USE_EXTRA. + * lib/genaliases2.c (main): Handle USE_EXTRA. + * lib/genflags.c: Define USE_EXTRA. + (main): Include encodings_extra.def. + * lib/iconv.c: Handle ENABLE_EXTRA, conditionally set USE_EXTRA. + Handle USE_EXTRA. + * lib/config.h.in (ENABLE_EXTRA): New macro. + * configure.in: Accept option --enable-extra-encodings. + * Makefile.devel (all): Depend on lib/aliases_extra.h. + (lib/aliases_extra.h): New rule. + (lib/flags.h): Depend on lib/encodings_extra.def. + * tests/Makefile.in (check-extra, check-extra-no, check-extra-yes): + New rules. + (check): Invoke check-extra. + * tests/Makefile.msvc (check): Also check the DOS encodings. + + Support for testing the AIX encodings. + * tests/CP856.TXT: New file. + * tests/CP922.TXT: New file. + * tests/CP1046.TXT: New file. + * tests/CP1124.TXT: New file. + * tests/CP1129.TXT: New file. + * tests/CP1161.TXT, tests/CP1161.IRREVERSIBLE.TXT: New files. + * tests/CP1162.TXT: New file. + * tests/CP1163.TXT, tests/CP1163.IRREVERSIBLE.TXT: New files. + + Support for testing the OSF/1 encodings. + * tests/DEC-KANJI.TXT: New file. + * tests/DEC-HANYU.TXT, tests/DEC-HANYU.IRREVERSIBLE.TXT: New files. + + Support for testing the DOS encodings. + * tests/CP437.TXT: New file. + * tests/CP737.TXT: New file. + * tests/CP775.TXT: New file. + * tests/CP852.TXT: New file. + * tests/CP855.TXT: New file. + * tests/CP857.TXT: New file. + * tests/CP858.TXT: New file. + * tests/CP860.TXT: New file. + * tests/CP861.TXT: New file. + * tests/CP863.TXT: New file. + * tests/CP864.TXT: New file. + * tests/CP865.TXT: New file. + * tests/CP869.TXT: New file. + * tests/CP1125.TXT: New file. + +2002-05-09 Bruno Haible + + Implement more ASCII compatible DOS encodings. + * tools/Makefile (ALL): Add cp737.h, cp858.h, cp860.h, cp863.h. + (cp737.h, cp858.h, cp860.h, cp863.h): New rules. + * lib/cp737.h: New file. + * lib/cp858.h: New file. + * lib/cp860.h: New file. + * lib/cp863.h: New file. + * lib/converters.h: Include them. + * lib/encodings_dos.def (CP737, CP858, CP860, CP863): New encodings. + +2002-05-09 Bruno Haible + + Implement new ASCII compatible encodings from IBM. + * tools/Makefile (ALL): Add cp1161.h, cp1162.h, cp1163.h. + (cp1161.h, cp1162.h, cp1163.h): New rules. + * lib/cp1161.h: New file. + * lib/cp1162.h: New file. + * lib/cp1163.h: New file. + * lib/converters.h: Include them. + * lib/encodings_aix.def (CP1161, CP1162, CP1163): New encodings. + +2002-05-09 Bruno Haible + + Implement and document KOI8-T. + * tools/Makefile (ALL): Add koi8_t.h. + (koi8_t.h): New rule. + * lib/koi8_t.h: New file. + * lib/converters.h: Include it. + * lib/encodings.def (KOI8-T): New encoding. + * README, man/iconv_open.3: Add KOI8-T. + * tests/Makefile.in (tests): Check KOI8-T. + * tests/Makefile.os2 (tests): Likewise. + * tests/Makefile.msvc (tests): Likewise. + * tests/KOI8-T.TXT: New file. + +2002-05-09 Bruno Haible + + * tools/8bit_tab_to_h.c (main): Update copyright year. + * tools/cjk_variants.c (main): Likewise. + +2002-05-08 Bruno Haible + + * README.woe32: Renamed from README.win32. + +2002-05-08 Bruno Haible + + * lib/iconv.c: Enable DOS encodings also when compiling for Woe32, + because the Woe32 consoles use them. + +2002-05-04 Bruno Haible + + * lib/loop_unicode.h (unicode_loop_convert): When quitting the loop + without writing an output character, restore cd->istate to its value + before the xxx_mbtowc call. Otherwise we lose some characters during + CP1255/CP1258/TCVN to Unicode conversion. + (unicode_loop_reset): Likewise for the xxx_flushwc call. + * tests/CP1255-snippet, tests/CP1255-snippet.UTF-8: Make the test + files large enough to test against the bug. + * tests/CP1258-snippet, tests/CP1258-snippet.UTF-8: Likewise. + * tests/TCVN-snippet, tests/TCVN-snippet.UTF-8: Likewise. + +2002-04-28 Bruno Haible + + * tools/Makefile (armscii_8.h): Use table from glibc-2.2.90. + * tests/ARMSCII-8.TXT: Update to glibc-2.2.90 version. + * tests/ARMSCII-8.IRREVERSIBLE.TXT: Remove 0x0027. + * lib/armscii_8.h: Regenerated. + +2002-04-28 Bruno Haible + + * src/iconv.c: Include gettext.h. + (_): New macro. + (usage, print_version, convert, main): Internationalize. + (main): Call setlocale, bindtextdomain, textdomain. + * src/gettext.h: New file, from GNU gettext 0.11.2. + * src/config.h.in: New file, needed for ENABLE_NLS. + * src/Makefile.in (datadir, localedir): New variables. + (iconv): Link with @LTLIBINTL@. + (iconv.@OBJEXT@): Define LOCALEDIR. + (distclean): Remove config.h. + * po: New directory. + * Makefile.in (all, install, installdirs, uninstall, check, + mostlyclean, clean, distclean, maintainer-clean): Recurse into the po + directory. + * autoconf/mkinstalldirs: New file, from automake-1.5. + * ABOUT-NLS: New file, from GNU gettext 0.11.2. + * m4/codeset.m4: New file, from GNU gettext 0.11.2. + * m4/gettext.m4: New file, from GNU gettext 0.11.2. + * m4/glibc21.m4: New file, from GNU gettext 0.11.2. + * m4/isc-posix.m4: New file, from GNU gettext 0.11.2. + * m4/lcmessage.m4: New file, from GNU gettext 0.11.2. + * m4/progtest.m4: New file, from GNU gettext 0.11.2. + * configure.in: Require autoconf-2.52, needed for multiple config.h.in + files. Use new form of AC_INIT. Invoke AM_GNU_GETTEXT. + (PACKAGE, VERSION): Define, needed for po/Makefile.in.in. + * lib/config.h.in (HAVE_LOCALE_H, HAVE_SETLOCALE): Remove. + +2002-04-28 gettextize + + * configure.in (AC_OUTPUT): Add po/Makefile.in. + +2002-04-28 Bruno Haible + + * m4/eilseq.m4: Renamed from autoconf/eilseq.m4. + * m4/mbstate_t.m4: Renamed from autoconf/mbstate_t.m4. + * m4/general.m4: New file, from GNU clisp. + * m4/proto.m4: New file, from GNU clisp. + * m4/ranlib.m4: New file, from GNU clisp. + * m4/install.m4: New file, from GNU clisp. + * m4/cp.m4: New file, from GNU clisp. + * m4/ln.m4: New file, from GNU clisp. + * m4/endian.m4: New file, from GNU clisp. + * m4/iconv.m4: New file, from GNU gettext 0.11.2. + * m4/lib-ld.m4: New file, from GNU gettext 0.11.2. + * m4/lib-link.m4: New file, from GNU gettext 0.11.2. + * m4/lib-prefix.m4: New file, from GNU gettext 0.11.2. + * autoconf/config.rpath: New file, from GNU gettext 0.11.2. + * m4/libtool.m4: New file, based on libtool-1.4.2. + * Makefile.devel (ACLOCAL): Remove variable. + (ACSELECT): Remove variable. + (OTHERMACROS): Remove variable. + (m4/*.m4): New rules. + (autoconf/aclocal.m4): Construct using aclocal instead of acselect. + * configure.in: Invoke AM_ICONV instead of CL_ICONV. + +2002-04-06 Bruno Haible + + Upgrade to Unicode 3.2. + * tools/cjk_tab_to_h.c (output_title): Bump copyright year. + (compact_large_charset2uni): Add an argument. Determine optimal shift. + Copy modified enc->charset2uni table. + (output_charset2uni): Deal with shift other than 8. Copy encoding, so + as to not disturb subsequent output_uni2charset[_sparse] call. + * lib/hkscs.h: Regenerated. + * tests/BIG5-HKSCS.TXT: Update. + * tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Update. + +2002-04-06 Bruno Haible + + Upgrade to Unicode 3.2. + * tools/Makefile (cns11643_1.h, cns11643_2.h, cns11643_3.h, + cns11643_4a.h, cns11643_4b.h, cns11643_5.h, cns11643_6.h, + cns11643_7.h, cns11643_15.h, cns11643_inv.h): Use + CNS11643-Unicode32.TXT instead of CNS11643-Unicode31.TXT. + * lib/cns11643_3.h: Regenerated. + * lib/cns11643_4a.h: Regenerated. + * lib/cns11643_4b.h: Regenerated. + * lib/cns11643_5.h: Regenerated. + * lib/cns11643_6.h: Regenerated. + * lib/cns11643_7.h: Regenerated. + * lib/cns11643_15.h: Regenerated. + * lib/cns11643_inv.h: Regenerated. + * tests/EUC-TW.TXT: Update. + +2002-01-17 Bruno Haible + + * lib/tcvn.h (tcvn_2uni_1): Make it smaller. + (tcvn_mbtowc): Small optimization. + +2002-01-13 Bruno Haible + + New options -l, -c, -s. + * src/iconv.c (discard_unconvertible, silent): New variables. + (usage): Document options -l, -c, -s. + (print_one): New function. + (convert): If silent is true, don't print error messages about the + conversion to stderr. If discard_unconvertible is true, set the + iconv descriptor to DISCARD_ILSEQ the first time, but make sure to + return the same return code as when discard_unconvertible is false. + (main): Accept options -l, -c, -s. Implement option -l. + * man/iconv.1: Document options -l, -c, -s. + +2002-01-13 Bruno Haible + + Support for "iconv -c". + * include/iconv.h.in (ICONV_GET_DISCARD_ILSEQ): New macro. + (ICONV_SET_DISCARD_ILSEQ): Likewise. + * lib/converters.h (struct conv_struct): New field discard_ilseq. + * lib/iconv.c (iconv_open): Set discard_ilseq to true if tocode + has an "//IGNORE" suffix, and to false otherwise. + (iconvctl): Implement ICONV_GET_DISCARD_ILSEQ, ICONV_SET_DISCARD_ILSEQ. + * lib/loop_unicode.h (unicode_loop_convert): If discard_ilseq is + true, skip one input character instead of returning EILSEQ. + (unicode_loop_reset): Likewise. + * lib/loop_wchar.h (wchar_from_loop_convert): Likewise. + (wchar_to_loop_convert): Likewise. + +2002-01-13 Bruno Haible + + Support for "iconv -l". + * include/iconv.h.in (iconvlist): New declaration. + * Makefile.devel (lib/aliases.h): Change gperf options. + * lib/iconv.c (compare_by_index, compare_by_name, iconvlist): New + functions. + +2002-01-06 Bruno Haible + + * lib/loop_unicode.h (unicode_transliterate): If the transliteration + fails due to limited output encoding, return RET_ILUNI, not + RET_TOOSMALL. Reported by Nelson H. F. Beebe . + * tests/check-translitfailure: New file. + * tests/TranslitFail1.ISO-8859-1: New file. + * tests/Makefile.in (check): Call check-translitfailure. + +2001-12-15 Bruno Haible + + * lib/euc_jp.h (euc_jp_wctomb): Add irreversible mappings for + Shift_JIS characters 0x5C and 0x7E. + * tests/EUC-JP.IRREVERSIBLE.TXT: New file. + +2001-12-05 Bruno Haible + + * lib/iconv.c (iconv_open): Recognize the empty encoding name. Avoid + endless loop if locale_charset() returns the empty string. + * README, man/iconv_open.3: Add the empty encoding name. + +2001-11-10 Bruno Haible + + * lib/Makefile.in (libiconv_plug_linux.so): Allow building it with a + non-gcc compiler. + +2001-10-23 Bruno Haible + + * tools/Makefile (cp1125.h): New target. + (ALL): Add it. + * lib/cp1125.h: New file. + * lib/converters.h: Include it. + * lib/encodings_dos.def (CP1125): New encoding. + +2001-09-08 Bruno Haible + + * autoconf/eilseq.m4: New file. + * Makefile.devel (OTHERMACROS): Add it. + * configure.in: Call AC_EILSEQ. + * include/iconv.h.in (EILSEQ): Define to the autoconf determined value. + +2001-08-25 Bruno Haible + + Upgrade to autoconf-2.52. + * autoconf/autoconf: Upgrade to autoconf-2.52. + * autoconf/acgeneral.m4: Remove file. + * autoconf/acspecific.m4: Remove file. + * autoconf/autoconf.m4f: New file, from autoconf-2.52. + * autoconf/aclocal.m4: Require autoconf-2.52. + (CL_CANONICAL_HOST): Call AC_CANONICAL_HOST. Don't cache the result, + AC_CANONICAL_HOST does it itself. Add $SHELL in front of + $ac_config_guess and $ac_config_sub. + * Makefile.devel (AUTOCONF_FILES): Remove acgeneral.m4, acspecific.m4. + Add autoconf.m4f. + (configure): Use autoconf options -A, -l instead of -m. + * configure.in: Use AC_CONFIG_SUBDIRS, not AC_OUTPUT_SUBDIRS. + +2001-08-05 Bruno Haible + + * autoconf/acgeneral.m4 (AC_MSG_RESULTPROTO): Remove macro. + (AC_LANG_EXTERN): Move to aclocal.m4. + * autoconf/aclocal.m4 (AC_LANG_EXTERN): Moved here from acgeneral.m4. + (CL_PROTO): Use AC_MSG_RESULT directly, instead of AC_MSG_RESULTPROTO. + (CL_SILENT): No need to pushdef AC_MSG_RESULTPROTO. + +2001-08-05 Bruno Haible + + Make it possible to build libiconv with CC=gcc CFLAGS="-x c++". + * lib/loop_wchar.h (wchar_to_loop_convert): Rename local variable + 'try' to 'incount'. + * lib/Makefile.in (libiconv_plug_linux.so): Add "-x none" option + between sources and libs. + (libiconv_plug_solaris.so) [GCC]: Likewise. + (libiconv_plug_osf.so) [GCC]: Likewise. + * src/Makefile.in (iconv.@OBJEXT@): New rule. + (iconv): Depend on it. + (clean): Erase *.@OBJEXT@, not *.o. + * tests/Makefile.in (table-from.@OBJEXT@): New rule. + (table-from): Depend on it. + (table-to.@OBJEXT@): New rule. + (table-to): Depend on it. + (clean): Erase *.@OBJEXT@, not *.o. + +2001-07-28 Bruno Haible + + * tools/Makefile (iso8859_16.h): Generate from the unicode.org table. + * lib/iso8859_16.h: Regenerated. + * tests/ISO-8859-16.TXT: Swap the values of 0xA5 and 0xAB. + +2001-07-17 Bruno Haible + + * configure.in (VERSION): Define. Needed by djgpp/Makefile.maint. + +2001-07-03 Bruno Haible + + * configure.in: Also check for mbsinit. + * lib/loop_wchar.h (mbsinit): Define to 1 if not defined. + Needed for SCO 3.2v5.0.2. + +2001-06-27 Bruno Haible + + * Version 1.7 released. + +2001-06-27 Bruno Haible + + * INSTALL.generic (Particular Systems): Generalize section about + /usr/local to "most systems". + + * lib/Makefile.in (all): Build @PLUGLIB@ before libiconv.la, because + Solaris cc destroys iconv.o and iconv.lo while building + libiconv_plug_solaris.so. + (clean): Remove so_locations, left there by the OSF/1 linker. + + * lib/cp1255.h (cp1255_decomp): Use 'signed int' instead of 'int'. + + * lib/vietcomb.h (viet_decomp): Use 'unsigned int' instead of + 'unsigned short'. + + * tests/table-from.c: Include string.h. + * tests/table-to.c: Likewise. + +2001-06-26 Bruno Haible + + * tools/Makefile (jisx0208.h): Replace U+005C with U+FF3C. + (jisx0212.h): Replace U+007E with U+FF5E. + * lib/jisx0208.h: Regenerated. + * lib/jisx0212.h: Regenerated. + * tests/EUC-JP.TXT: Map 0xA1C0 to U+FF3C. Map 0x8FA2B7 to U+FF5E. + * tests/EUC-JP.IRREVERSIBLE.TXT: Remove file. + * tests/SHIFT-JIS.TXT: Map 0x815F to U+FF3C. + * tests/CP932.TXT: Likewise. + * tests/CP932.IRREVERSIBLE.TXT: 0x815F mapping is now reversible. + +2001-06-25 Bruno Haible + + * src/Makefile.in (iconv): Mention $(INCLUDES) before $(CFLAGS) and + $(CPPFLAGS). + * src/Makefile.msvc (iconv.exe): Likewise. + * src/Makefile.os2 (iconv.exe): Likewise. + * lib/Makefile.in (libiconv_plug_linux.so): Likewise. + (libiconv_plug_solaris.so): Likewise. + (libiconv_plug_osf.so): Likewise. + (iconv.lo): Likewise. + * lib/Makefile.msvc (iconv.obj): Likewise. + * lib/Makefile.os2 (iconv.obj): Likewise. + * tests/Makefile.in (table-from, table-to): Likewise. + * tests/Makefile.msvc (table-from.exe, table-to.exe): Likewise. + * tests/Makefile.os2 (table-from.exe, table-to.exe): Likewise. + (genutf8.exe): Don't use $(INCLUDES). + +2001-06-25 Bruno Haible + + * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc: + Bump version number. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:4:0. + +2001-06-25 Bruno Haible + + * Makefile.devel (OTHERMACROS): Use libtool.m4 in libcharset subdir. + +2001-06-25 Bruno Haible + + * lib/encodings.def: Make SHIFT_JIS the primary name of SJIS. + +2001-06-08 Bruno Haible + + * autoconf/ltmain.sh: Upgrade to libtool-1.4. + * autoconf/ltconfig: Remove file. + +2001-06-08 Bruno Haible + + * autoconf/config.guess: Update to GNU version 2001-05-11. + * autoconf/config.sub: Likewise. + +2001-06-03 Bruno Haible + + * lib/loop_unicode.h (unicode_loop_convert): Ignore Unicode 3.1 tag + characters if they cannot be converted. + (unicode_loop_reset): Likewise. + * lib/iso2022_jp2.h (STATE_TAG_NONE, STATE_TAG_LANGUAGE, + STATE_TAG_LANGUAGE_j, STATE_TAG_LANGUAGE_ja, STATE_TAG_LANGUAGE_k, + STATE_TAG_LANGUAGE_ko, STATE_TAG_LANGUAGE_z, STATE_TAG_LANGUAGE_zh): + New macros. + (SPLIT_STATE, COMBINE_STATE): Different differently for wctomb + direction. + (iso2022_jp2_wctomb): Keep track of Unicode 3.1 language tag. + If "ja", prefer conversion to Japanese character sets. If "zh", + prefer conversion to GB2312. If "ko", prefer conversion to KSC5601. + + * lib/converters.h (RET_ILUNI): Change value from 0 to -1. + (RET_TOOSMALL): Change value from -1 to -2. + * lib/loop_unicode.h (unicode_transliterate): Allow xxx_wctomb to + return 0 written bytes. + +2001-06-06 Bruno Haible + + * lib/encodings.def: Align with IANA character-set registry. + (US-ASCII): Add alias "ANSI_X3.4-1986". + (ISO-8859-14): Add alias "ISO-CELTIC". + (JIS_X0208): Add alias "JIS_C6226-1983". + (BIG5HKSCS): Add alias "BIG5-HKSCS". + * README, man/iconv_open.3: Rename BIG5HKSCS to BIG5-HKSCS. + * tests/Makefile.in (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + * tests/Makefile.msvc (check): Likewise. + * tests/BIG5-HKSCS.TXT: Renamed from BIG5HKSCS.TXT. + * tests/BIG5-HKSCS.IRREVERSIBLE.TXT: Renamed from + BIG5HKSCS.IRREVERSIBLE.TXT. + +2001-06-02 Bruno Haible + + * tools/cjk_tab_to_h.c (Encoding): Add fffd field. + (is_charset2uni_large, compact_large_charset2uni): New functions. + (find_charset2uni_pages): Use enc->fffd instead of 0xfffd. + (output_charset2uni): If mapping to more than the Unicode BMP, + use an extra indirection to keep each value in 16 bits. + (invert): Bump limit from U+10000 to U+30000. + (output_uni2charset_dense): Likewise. + (output_uni2charset_sparse): Likewise. If mapping to more than one + CJK plane, use three bytes per value instead of two bytes. + (byte_row_cns11643): Allow more than 3 CJK planes. + (do_cns11643_only_uni2charset): Increase number of rows, to include + plane 15. Remove plane bits hack. + (main): Accept names cns11643_4a,4b,5,6,7,15 as well. + * tools/Makefile (ALL): Add cns11643_4a.h, cns11643_4b.h, cns11643_5.h, + cns11643_6.h, cns11643_7.h, cns11643_15.h. + (cns11643_1.h, cns11643_2.h, cns11643_3.h): Use new Unicode 3.1 + derived table. + (cns11643_4a.h, cns11643_4b.h, cns11643_5.h, cns11643_6.h, + cns11643_7.h, cns11643_15.h): New rules. + (cns11643_inv.h): Change title. + * lib/cns11643_1.h: Regenerated from Unicode 3.1 derived table. + * lib/cns11643_3.h: Likewise. + * lib/cns11643_4a.h: New file. + * lib/cns11643_4b.h: New file. + * lib/cns11643_4.h: New file. + * lib/cns11643_5.h: New file. + * lib/cns11643_6.h: New file. + * lib/cns11643_7.h: New file. + * lib/cns11643_15.h: New file. + * lib/cns11643_inv.h: Regenerated from Unicode 3.1 derived table. + (cns11643_inv_wctomb): Return 3 bytes now. + * lib/cns11643.h: Include cns11643_4.h, cns11643_5.h, cns11643_6.h, + cns11643_7.h, cns11643_15.h. + (cns11643_wctomb): Now a simple alias to cns11643_inv_wctomb. Return + plane number starting at 1, not 0. + * lib/dec_hanyu.h (dec_hanyu_wctomb): Update for cns11643_wctomb + change. + * lib/euc_tw.h (euc_tw_mbtowc): Accept CNS11643 planes 4,5,6,7,15 as + well. + (euc_tw_wctomb): Update for cns11643_wctomb change. + * lib/iso2022_cn.h (iso2022_cn_wctomb): Likewise. + * lib/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Accept CNS11643 planes + 4,5,6,7 as well. + (iso2022_cn_ext_wctomb): Update for cns11643_wctomb change. + Try CNS11643 planes 4,5,6,7 as well. + * tests/EUC-TW.TXT: Many additions, mostly in planes 3,4,5,6,7,15. + * tests/EUC-TW.IRREVERSIBLE.TXT: Reflect additions to CNS11643 plane 1. + Add U+5344. + +2001-06-01 Bruno Haible + + * tests/table-from.c (bmp_only): New variable. + (ucs4_decode): If bmp_only, don't return characters outside Unicode + plane 0. + (main): When testing UTF-8 or GB18030, set bmp_only to 1. Don't print + a conversion line if ucs4_decode returns NULL. + * tests/table-to.c (main): When testing encodings other than UTF-8 and + GB18030, loop upto U+30000 instead of U+10000. + +2001-05-24 Bruno Haible + + * lib/converters.h (mbtowc_funcs): Add flushwc member function. + * lib/flushwc.h: New file. + * lib/cp1255.h: Include flushwc.h. + (cp1255_comp_table_data, cp1255_comp_table): New arrays. + (cp1255_mbtowc): Compose base and combining characters. + (cp1255_flushwc): New macro. + * lib/vietcomb.h (viet_comp_table_data, viet_comp_table): New arrays. + * lib/cp1258.h: Include flushwc.h. + (cp1258_mbtowc): Compose base and combining characters. + (cp1258_flushwc): New macro. + * lib/tcvn.h: Include flushwc.h. + (tcvn_mbtowc): Compose base and combining characters. + (tcvn_flushwc): New macro. + * lib/loop_unicode.h: (unicode_transliterate): New function, extracted + from unicode_loop_convert. + (unicode_loop_convert): Use unicode_transliterate. + (unicode_loop_reset): Call xxx_flushwc and output the resulting + character. + * lib/encodings.def: Add xxx_flushwc member. + * lib/encodings_aix.def: Likewise. + * lib/encodings_dos.def: Likewise. + * lib/encodings_local.def: Likewise. + * lib/encodings_osf1.def: Likewise. + * lib/genaliases.c: Add an argument to the DEFENCODING macro. + * lib/genaliases2.c: Likewise. + * lib/genflags.c: Likewise. + * lib/iconv.c: Likewise. + * tests/table-from.c (try): Reset the iconv descriptor before the main + call, and flush it afterwards. + (ucs4_decode): New function. + (main): Allow up to 3 Unicode characters output. Call ucs4_decode. + * tests/CP1255-snippet: New file. + * tests/CP1255-snippet.UTF-8: New file. + * tests/CP1258-snippet: New file. + * tests/CP1258-snippet.UTF-8: New file. + * tests/TCVN-snippet: New file. + * tests/TCVN-snippet.UTF-8: New file. + * tests/Makefile.in (check): Check combining behaviour of CP1255, + CP1258, TCVN. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + +2001-05-22 Bruno Haible + + * lib/converters.h (RET_ILUNI): New macro. + (RET_ILSEQ): Change value to -1. + (RET_TOOFEW): Change value. + * lib/loop_unicode.h (unicode_loop_convert): Write RET_ILUNI instead + of 0. Update handling of xxx_mbtowc return value. + * lib/genflags.c (emit_encoding): Likewise. + * lib/ascii.h (ascii_wctomb): Use RET_ILUNI instead of RET_ILSEQ. + * lib/armscii_8.h (armscii_8_wctomb): Likewise. + * lib/big5.h (big5_wctomb): Likewise. + * lib/big5hkscs.h (big5hkscs_wctomb): Likewise. + * lib/ces_big5.h (ces_big5_wctomb): Likewise. + * lib/ces_gbk.h (ces_gbk_wctomb): Likewise. + * lib/cns11643.h (cns11643_wctomb): Likewise. + * lib/cns11643_inv.h (cns11643_inv_wctomb): Likewise. + * lib/cp437.h (cp437_wctomb): Likewise. + * lib/cp775.h (cp775_wctomb): Likewise. + * lib/cp850.h (cp850_wctomb): Likewise. + * lib/cp852.h (cp852_wctomb): Likewise. + * lib/cp855.h (cp855_wctomb): Likewise. + * lib/cp856.h (cp856_wctomb): Likewise. + * lib/cp857.h (cp857_wctomb): Likewise. + * lib/cp861.h (cp861_wctomb): Likewise. + * lib/cp862.h (cp862_wctomb): Likewise. + * lib/cp864.h (cp864_wctomb): Likewise. + * lib/cp865.h (cp865_wctomb): Likewise. + * lib/cp866.h (cp866_wctomb): Likewise. + * lib/cp869.h (cp869_wctomb): Likewise. + * lib/cp874.h (cp874_wctomb): Likewise. + * lib/cp922.h (cp922_wctomb): Likewise. + * lib/cp932ext.h (cp932ext_wctomb): Likewise. + * lib/cp932.h (cp932_wctomb): Likewise. + * lib/cp936ext.h (cp936ext_wctomb): Likewise. + * lib/cp949.h (cp949_wctomb): Likewise. + * lib/cp950ext.h (cp950ext_wctomb): Likewise. + * lib/cp950.h (cp950_wctomb): Likewise. + * lib/cp1046.h (cp1046_wctomb): Likewise. + * lib/cp1124.h (cp1124_wctomb): Likewise. + * lib/cp1129.h (cp1129_wctomb): Likewise. + * lib/cp1133.h (cp1133_wctomb): Likewise. + * lib/cp1250.h (cp1250_wctomb): Likewise. + * lib/cp1251.h (cp1251_wctomb): Likewise. + * lib/cp1252.h (cp1252_wctomb): Likewise. + * lib/cp1253.h (cp1253_wctomb): Likewise. + * lib/cp1254.h (cp1254_wctomb): Likewise. + * lib/cp1255.h (cp1255_wctomb): Likewise. + * lib/cp1256.h (cp1256_wctomb): Likewise. + * lib/cp1257.h (cp1257_wctomb): Likewise. + * lib/cp1258.h (cp1258_wctomb): Likewise. + * lib/dec_hanyu.h (dec_hanyu_wctomb): Likewise. + * lib/dec_kanji.h (dec_kanji_wctomb): Likewise. + * lib/euc_cn.h (euc_cn_wctomb): Likewise. + * lib/euc_jp.h (euc_jp_wctomb): Likewise. + * lib/euc_kr.h (euc_kr_wctomb): Likewise. + * lib/euc_tw.h (euc_tw_wctomb): Likewise. + * lib/gb12345ext.h (gb12345ext_wctomb): Likewise. + * lib/gb12345.h (gb12345_wctomb): Likewise. + * lib/gb18030ext.h (gb18030ext_wctomb): Likewise. + * lib/gb18030.h (gb18030_wctomb): Likewise. + * lib/gb18030uni.h (gb18030uni_wctomb): Likewise. + * lib/gb2312.h (gb2312_wctomb): Likewise. + * lib/gbkext_inv.h (gbkext_inv_wctomb): Likewise. + * lib/gbk.h (gbk_wctomb): Likewise. + * lib/georgian_academy.h (georgian_academy_wctomb): Likewise. + * lib/georgian_ps.h (georgian_ps_wctomb): Likewise. + * lib/hkscs.h (hkscs_wctomb): Likewise. + * lib/hp_roman8.h (hp_roman8_wctomb): Likewise. + * lib/hz.h (hz_wctomb): Likewise. + * lib/iso2022_cnext.h (iso2022_cn_ext_wctomb): Likewise. + * lib/iso2022_cn.h (iso2022_cn_wctomb): Likewise. + * lib/iso2022_jp1.h (iso2022_jp1_wctomb): Likewise. + * lib/iso2022_jp2.h (iso2022_jp2_wctomb): Likewise. + * lib/iso2022_jp.h (iso2022_jp_wctomb): Likewise. + * lib/iso2022_kr.h (iso2022_kr_wctomb): Likewise. + * lib/iso646_cn.h (iso646_cn_wctomb): Likewise. + * lib/iso646_jp.h (iso646_jp_wctomb): Likewise. + * lib/iso8859_1.h (iso8859_1_wctomb): Likewise. + * lib/iso8859_2.h (iso8859_2_wctomb): Likewise. + * lib/iso8859_3.h (iso8859_3_wctomb): Likewise. + * lib/iso8859_4.h (iso8859_4_wctomb): Likewise. + * lib/iso8859_5.h (iso8859_5_wctomb): Likewise. + * lib/iso8859_6.h (iso8859_6_wctomb): Likewise. + * lib/iso8859_7.h (iso8859_7_wctomb): Likewise. + * lib/iso8859_8.h (iso8859_8_wctomb): Likewise. + * lib/iso8859_9.h (iso8859_9_wctomb): Likewise. + * lib/iso8859_10.h (iso8859_10_wctomb): Likewise. + * lib/iso8859_13.h (iso8859_13_wctomb): Likewise. + * lib/iso8859_14.h (iso8859_14_wctomb): Likewise. + * lib/iso8859_15.h (iso8859_15_wctomb): Likewise. + * lib/iso8859_16.h (iso8859_16_wctomb): Likewise. + * lib/isoir165ext.h (isoir165ext_wctomb): Likewise. + * lib/isoir165.h (isoir165_wctomb): Likewise. + * lib/jisx0201.h (jisx0201_wctomb): Likewise. + * lib/jisx0208.h (jisx0208_wctomb): Likewise. + * lib/jisx0212.h (jisx0212_wctomb): Likewise. + * lib/johab.h (johab_wctomb): Likewise. + * lib/johab_hangul.h (johab_hangul_wctomb, johab_hangul_decompose): + Likewise. + * lib/koi8_r.h (koi8_r_wctomb): Likewise. + * lib/koi8_ru.h (koi8_ru_wctomb): Likewise. + * lib/koi8_u.h (koi8_u_wctomb): Likewise. + * lib/ksc5601.h (ksc5601_wctomb): Likewise. + * lib/mac_arabic.h (mac_arabic_wctomb): Likewise. + * lib/mac_centraleurope.h (mac_centraleurope_wctomb): Likewise. + * lib/mac_croatian.h (mac_croatian_wctomb): Likewise. + * lib/mac_cyrillic.h (mac_cyrillic_wctomb): Likewise. + * lib/mac_greek.h (mac_greek_wctomb): Likewise. + * lib/mac_hebrew.h (mac_hebrew_wctomb): Likewise. + * lib/mac_iceland.h (mac_iceland_wctomb): Likewise. + * lib/mac_roman.h (mac_roman_wctomb): Likewise. + * lib/mac_romania.h (mac_romania_wctomb): Likewise. + * lib/mac_thai.h (mac_thai_wctomb): Likewise. + * lib/mac_turkish.h (mac_turkish_wctomb): Likewise. + * lib/mac_ukraine.h (mac_ukraine_wctomb): Likewise. + * lib/mulelao.h (mulelao_wctomb): Likewise. + * lib/nextstep.h (nextstep_wctomb): Likewise. + * lib/sjis.h (sjis_wctomb): Likewise. + * lib/tcvn.h (tcvn_wctomb): Likewise. + * lib/tis620.h (tis620_wctomb): Likewise. + * lib/ucs2be.h (ucs2be_wctomb): Likewise. + * lib/ucs2.h (ucs2_wctomb): Likewise. + * lib/ucs2internal.h (ucs2internal_wctomb): Likewise. + * lib/ucs2le.h (ucs2le_wctomb): Likewise. + * lib/ucs2swapped.h (ucs2swapped_wctomb): Likewise. + * lib/ucs4.h (ucs4_wctomb): Likewise. + * lib/uhc_1.h (uhc_1_wctomb): Likewise. + * lib/uhc_2.h (uhc_2_wctomb): Likewise. + * lib/utf16be.h (utf16be_wctomb): Likewise. + * lib/utf16.h (utf16_wctomb): Likewise. + * lib/utf16le.h (utf16le_wctomb): Likewise. + * lib/utf32be.h (utf32be_wctomb): Likewise. + * lib/utf32.h (utf32_wctomb): Likewise. + * lib/utf32le.h (utf32le_wctomb): Likewise. + * lib/utf7.h (utf7_wctomb): Likewise. + * lib/utf8.h (utf8_wctomb): Likewise. + * lib/viscii.h (viscii_wctomb): Likewise. + * tools/8bit_tab_to_h.c (main): Likewise. + * tools/cjk_tab_to_h.c (output_uni2charset_dense, + output_uni2charset_sparse, do_gb18030uni): Likewise. + +2001-05-19 Bruno Haible + + * Makefile.devel (all): Add man/{iconv.1,iconv*.3}.html. + (man/%.html): New rule. + * man/Makefile.in (docdir, htmldir): New variables. + (install, installdirs): Install the HTML formatted man pages in + $(htmldir). + (uninstall): Uninstall them. + +2001-05-20 Bruno Haible + + * lib/cp1255.h (cp1255_decomp_table): New array. + (cp1255_comb_table): New array. + (cp1255_wctomb): Decompose Unicode characters. + * tests/CP1255.IRREVERSIBLE.TXT: New file. + +2001-05-13 Bruno Haible + + * lib/vietcomb.h: New file. + * lib/cp1258.h: Include it. + (cp1258_comb_table): New array. + (cp1258_wctomb): Decompose Unicode characters. + * lib/tcvn.h: Include it. + (tcvn_comb_table): New array. + (tcvn_wctomb): Decompose Unicode characters. + * tests/CP1258.IRREVERSIBLE.TXT: New file. + * tests/TCVN.IRREVERSIBLE.TXT: New file. + +2001-05-06 Bruno Haible + + * lib/Makefile.msvc (config.h): Allow the 'del' command to fail. + (iconv.lib): Likewise. + +2001-05-06 Bruno Haible + + * lib/Makefile.in (CPPFLAGS, LDFLAGS): New variables. + (CPP): Remove variable. + (libiconv.la, libiconv_plug_linux.so, libiconv_plug_solaris.so, + libiconv_plug_osf.so): Use LDFLAGS. + (libiconv_plug_linux.so, libiconv_plug_solaris.so, + libiconv_plug_osf.so, iconv.lo): Use CPPFLAGS. + * lib/Makefile.msvc (CPP): Remove variable. + * src/Makefile.in (CPPFLAGS, LDFLAGS): New variables. + (CPP): Remove variable. + (iconv): Use CPPFLAGS and LDFLAGS. + * src/Makefile.msvc (CPP): Remove variable. + * tests/Makefile.in (CPPFLAGS, LDFLAGS): New variables. + (check, table-from, table-to): Use CPPFLAGS and LDFLAGS. + * tests/Makefile.msvc (CPP): Remove variable. + +2001-05-06 Bruno Haible + + * lib/Makefile.in (libiconv_plug_solaris.so): Change rule if not using + gcc. Reported by Paananen Mikko . + +2001-04-11 Bruno Haible + + Implement and document UTF-32, UTF-32BE, UTF-32LE. + * src/utf32.h, src/utf32be.h, src/utf32le.h: New files. + * src/converters.h: Include them. + * src/encodings.def (UTF-32, UTF-32BE, UTF32LE): New encodings. + * README, man/iconv_open.3: Add UTF-32, UTF-32BE, UTF32LE. + * tests/Makefile.in (check): Check UTF-32, UTF-32BE, UTF32LE. + * tests/Makefile.os2 (check): Likewise. + * tests/Makefile.msvc (check): Likewise. + * tests/UTF-32*snippet*: New files. + + * lib/ucs4.h (ucs4_mbtowc): Fix value of other-endian byte order. + (ucs4_wctomb): Allow any 31-bit codepoint. + +2001-04-11 Bruno Haible + + * tests/GB18030.TXT: Add mappings for all of U+0000..U+FFFF, including + unassigned code points. + * tests/table-from.c (main); When dumping GB18030, don't print code + points larger than U+FFFF. + +2001-03-30 Bruno Haible + + * tools/Makefile (GB18030uni.TXT): Use a table source which includes + the unassigned Unicode code points. + * lib/gb18030uni.h: Update. + (gb18030uni_ranges): Remove bitmap_offset field. + (gb18030uni_bitmap): Remove array. + (gb18030uni_mbtowc): Omit gb18030uni_bitmap access. + (gb18030uni_wctomb): Likewise. + * lib/gb18030.h (gb18030_mbtowc): Handle Unicode characters >= 0x10000. + (gb18030_wctomb): Likewise. + +2001-03-21 Bruno Haible + + * INSTALL.generic (Particular Systems): Add recommendations for AIX 3. + +2001-03-21 Bruno Haible + + * src/iconv.c (print_version): Now called GNU libiconv. + +2001-03-20 Bruno Haible + + * README: This package is now called GNU libiconv. + + * tools/8bit_tab_to_h.c (main): Emit copyright notice to the output + file. + * tools/cjk_tab_to_h.c (output_title): Likewise. + * tools/cjk_variants.c (main): Likewise. + * lib/gentranslit.c (main): Likewise. + +2001-03-19 Bruno Haible + + * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Always define + ac_config_guess and ac_config_sub. Then ignore requests for + AC_CONFIG_AUX_DIR_DEFAULT or AC_CANONICAL_HOST. + +2001-03-10 Bruno Haible + + * INSTALL.generic: New section "Particular Systems". + +2001-03-10 Bruno Haible + + * lib/Makefile.in (libiconv.la): Pass flag -no-undefined. Needed on + platforms like BeOS. + + * lib/loop_wchar.h (mbstate_t): Don't typedef if already #defined in + config.h. + +2001-03-06 Bruno Haible + + * Version 1.6 released. + * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc: + Bump version number. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:3:0. + +2001-03-05 Bruno Haible + + Provide all encodings used by OSF/1 5.1 locales. + * lib/dec_kanji.h: New file. + * lib/dec_hanyu.h: New file. + * lib/converters.h: Include them if USE_OSF1 is defined. + * lib/encodings_osf1.def: New file. + * lib/genflags.c (main): Include it. Define USE_OSF1. + * lib/genaliases2.c (main): Include it conditionally. + * lib/iconv.c: Define USE_OSF1 on OSF/1. + Include encodings_osf1.def and aliases_osf1.h. + * lib/Makefile.in (iconv.lo): Depend on encodings_osf1.def and + aliases_osf1.h. + * Makefile.devel (lib/aliases_osf1.h): New target. + (all): Depend on lib/aliases_osf1.h. + (lib/flags.h): Depend on lib/encodings_osf1.def. + +2001-03-01 Bruno Haible + + * tools/Makefile (cp775.h): New target. + (ALL): Add it. + * lib/cp775.h: New file. + * lib/converters.h: Include it. + * lib/encodings_dos.def (CP775): New encoding. + +2001-02-25 Bruno Haible + + * lib/iconv.c (iconv_open): locale_charset() doesn't return NULL any + more. + +2001-02-24 Bruno Haible + + * src/iconv.c (convert): Use ICONV_CONST. + * tests/table-from.c: Include config.h. + (try): Use ICONV_CONST. + * tests/table-to.c: Include config.h. + (main): Use ICONV_CONST. + * tests/Makefile.in (INCLUDES): Add -I../lib. + * tests/Makefile.os2 (INCLUDES): Likewise. + * tests/Makefile.msvc (INCLUDES): Add -I..\lib. + +2001-02-24 Bruno Haible + + Provide all encodings used by DOS locales. + * tools/Makefile (cp437.h, cp852.h, cp855.h, cp857.h, cp861.h, + cp864.h, cp865.h, cp869.h): New targets. + (ALL): Add them. + * lib/cp437.h: New file. + * lib/cp852.h: New file. + * lib/cp855.h: New file. + * lib/cp857.h: New file. + * lib/cp861.h: New file. + * lib/cp864.h: New file. + * lib/cp865.h: New file. + * lib/cp869.h: New file. + * lib/converters.h: Include them if USE_DOS is defined. + * lib/encodings_dos.def: New file. + * lib/genflags.c (main): Include it. Define USE_DOS. + * lib/genaliases2.c (main): Include it conditionally. + * lib/iconv.c: Define USE_DOS on DJGPP. + Include encodings_dos.def and aliases_dos.h. + * lib/Makefile.in (iconv.lo): Depend on encodings_dos.def and + aliases_dos.h. + * Makefile.devel (lib/aliases_dos.h): New target. + (all): Depend on lib/aliases_dos.h. + (lib/flags.h): Depend on lib/encodings_dos.def. + +2001-02-23 Bruno Haible + + * src/iconv.c [DJGPP]: Include and . + (SET_BINARY) [O_BINARY]: New macro. + (usage): Mention --binary if available. + (convert): Use SET_BINARY instead of setmode. + (main): Likewise. + Reported by Juan Manuel Guerrero . + +2001-02-25 Bruno Haible + + * autoconf/ltconfig: + sed -e 's/reload object files/produce relocatable object files/'. + +2001-02-20 Bruno Haible + + * src/iconv.c (usage, main): Make -f and -t options optional. + * man/iconv.1: Mark them as optional. + +2001-02-20 Bruno Haible + + * tools/Makefile (GB18030ext.TXT, GB18030uni.TXT): Generate from + glibc-2.2.2 table. + * lib/gb18030uni.h, lib/gb18030ext.h: Add mapping 0xA989 -> U+303E, + 0xFE5E -> U+2E97. Shift the entire four-byte range. + * tests/GB18030.TXT: Regenerated. + +2001-02-20 Bruno Haible + + Better support for DOS/Windows platforms. + * autoconf/ltconfig: Upgrade to libtool-1.3.5. + * autoconf/ltmain.sh: Likewise. + * autoconf/aclocal.m4: Likewise. + * autoconf/install-sh: New file. + * configure.in: Call AC_OBJEXT and AC_EXEEXT. Call AC_CONFIG_AUX_DIR. + +2001-02-20 Bruno Haible + + * Makefile.in (libdir, includedir, mandir): Use the autoconf + determined value, in order to respect the configure arguments. + * lib/Makefile.in (libdir): Likewise. + * src/Makefile.in (bindir): Likewise. + * man/Makefile.in (mandir): Likewise. + +2001-02-04 Bruno Haible + + * lib/translit.def: Add all the neutral transliterations from glibc. + * lib/gentranslit.c (main): Allow UTF-8 replacements which are in + UCS-2 but not in ISO-8859-1. Generate a table of 'unsigned short'. + Avoid accessing data[-1]. + * lib/loop_unicode.h (unicode_loop_convert): Change type of pointer + into translit_data. + +2001-01-05 Bruno Haible + + Implement and document CP862. + * tools/Makefile (ALL): Add cp862.h. + (cp862.h): New target. + * lib/cp862.h: New file. + * lib/converters.h: Include it. + * lib/encodings.def (CP862): New encoding. + * README, man/iconv_open.3: Add CP862. + * tests/Makefile.in (check): Check CP862. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + * tests/CP862.TXT: New file. + +2000-12-18 Bruno Haible + + * autoconf/mbstate_t.m4: New file, from textutils-2.0.10. + * Makefile.devel (OTHERMACROS): Add it. + * configure.in: Call AC_MBSTATE_T. + * lib/config.h.in (mbstate_t): New definition. + * lib/loop_wchar.h (mbrtowc): For BeOS, declare and define fallback. + +2000-12-12 Bruno Haible + + * Makefile.in: Use $(MAKE) instead of $(MAKE) -r. Needed with Solaris + "make", which doesn't set MAKE as expected by @SET_MAKE@ if -r is + given. Reported by Toshimitsu Fujiwara. + +2000-12-08 Bruno Haible + + * Makefile.in (exec_prefix): Use configure's --exec-prefix argument. + * lib/Makefile.in (exec_prefix): Likewise. + * src/Makefile.in (exec_prefix): Likewise. + * man/Makefile.in (exec_prefix): Likewise. + +2000-12-02 Bruno Haible + + * Version 1.5 released. + * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc: + Bump version number. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:2:0. + +2000-12-02 Bruno Haible + + * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): + Remove files installed in lib by libcharset. + * Makefile.msvc (mostlyclean): Likewise. + + * Makefile.in (check): Depend on target 'all'. + * Makefile.os2 (check): Likewise. + * Makefile.msvc (check): Depend on target 'force' as well. + + * src/iconv.c (usage): Take an exitcode argument. + (print_version): New function. + (main): Recognize --help and --version command line options. + +2000-12-02 Bruno Haible + + * Makefile.msvc: Replace STATIC with its opposite flag, DLL. + * lib/Makefile.msvc: Likewise. + * src/Makefile.msvc: Likewise. + * tests/Makefile.msvc: Likewise. + +2000-12-01 Bruno Haible + + * src/iconv.c: Include . Define fallbacks for setmode, fileno. + (force_binary): New variable. + (convert): If requested, set the input O_BINARY. + (main): Accept --binary option. If requested, set the output O_BINARY. + * tests/check-stateful.bat: Pass --binary to iconv. + * tests/check-stateful.cmd: Likewise. + * tests/check-translit.bat: Likewise. + * tests/check-translit.cmd: Likewise. + +2000-12-01 Bruno Haible + + * include/iconv.h.in (_libiconv_version): New declaration. + * lib/iconv.c (_libiconv_version): New variable. + +2000-11-30 Bruno Haible + + * Makefile.msvc (all): File now named lib/libcharset.h. + (clean, distclean, maintainer-clean): Likewise. + +2000-11-23 Bruno Haible + + * lib/*: Move here all files from src/*. + * src/*: Move all files to lib. + * lib/Makefile.in (distclean): No need to remove config.status, + config.log, config.cache. + * configure.in: Require lib/iconv.c, not src/iconv.c. Create + lib/config.h, not src/config.h. Also create lib/Makefile. + * Makefile.in (all): Install libcharset into lib, not src. Recurse + into lib and src. + (install-lib): Recurse into lib, not src. + (install): Recurse into libcharset, lib and src. + (installdirs, uninstall): Likewise. + (check, mostlyclean, clean, distclean, maintainer-clean): Likewise. + * Makefile.msvc (all): Recurse into lib and src. + (install): Recurse into libcharset, lib and src. + (installdirs, uninstall): Likewise. + (check, mostlyclean, clean, distclean, maintainer-clean): Likewise. + * Makefile.os2 (all): Recurse into lib and src. + (install-lib): Recurse into lib, not src. + (install, uninstall): Recurse into lib and src. + (check, mostlyclean, clean, distclean, maintainer-clean): Likewise. + * Makefile.devel (lib/config.h.msvc): Renamed from src/config.h.msvc. + (lib/aliases.h): Renamed from src/aliases.h. + (lib/aliases.gperf): Renamed from src/aliases.gperf. + (lib/aliases_aix.h): Renamed from src/aliases_aix.h. + (lib/flags.h): Renamed from src/flags.h. + (lib/translit.h): Renamed from src/translit.h. + * src/iconv.c: Moved here from tests/iconv.c. + * src/Makefile.in: New file. + * src/Makefile.msvc: New file. + * src/Makefile.os2: New file. + * tests/Makefile.in (iconv): Remove target. + (../lib/libiconv.la): Renamed from ../src/libiconv.la. + (clean): No need to remove iconv. + * tests/Makefile.msvc (iconv.exe): Remove target. + * tests/Makefile.os2 (iconv.exe): Likewise. + * tests/check-stateful: iconv is in ../src. + * tests/check-stateful.bat: Likewise. + * tests/check-stateful.cmd: Likewise. + * tests/check-translit: iconv is in ../src. + * tests/check-translit.bat: Likewise. + * tests/check-translit.cmd: Likewise. + * man/iconv.1: New file. + * man/Makefile.in (install, installdirs, uninstall): Also install *.1 + man pages. + * man/Makefile.os2 (MAN3): Renamed from MAN. + (MAN1): New variable. + (install, uninstall): Also install *.1 man pages. + +2000-11-21 Bruno Haible + + * Makefile.msvc (all, check, mostlyclean, clean, distclean, + maintainer-clean): Recurse into libcharset. + (clean, distclean, maintainer-clean): Remove src\libcharset.h. + * src/Makefile.msvc (LIBCHARSET_OBJECTS): New variable. + (iconv.lib): Link with $(LIBCHARSET_OBJECTS). + +2000-11-18 Bruno Haible + + * src/cp950.h (cp950_mbtowc, cp950_wctomb): Change implementation + so that it agrees with Microsoft's definition of CP950. + * tests/CP950.TXT: Likewise. + * tests/CP950.IRREVERSIBLE.TXT: Add 0xA244, 0xA2CC, 0xA2CE. + +2000-11-18 Bruno Haible + + Add support for locale dependent "char" and "wchar_t" encodings. + * libcharset: New subdirectory. + * src/loop_unicode.h: New file, extracted from src/iconv.c. + * src/loop_wchar.h: New file. + * src/loops.h: New file. Include loop_unicode.h and loop_wchar.h. + * src/encodings_local.def: New file. + * src/genaliases.c: Also create aliases for encodings_local.def. + * src/converters.h (conv_struct): Add lfuncs field. + * src/genflags.c: Add dummy definitions of struct loop_funcs. + * src/iconv.c: Include libcharset.h. + (loop_funcs): New structure. + Treat encodings_local.def like encodings.def. + Include loops.h. + (iconv_open): Move the bulk of the code to loop_unicode.h. + (iconv): Likewise. + (iconvctl): Extend determination of TRIVIALP to wchar_t conversion + descriptors. + * src/Makefile.in (PLUG_SOURCES): Remove variable. + (LIBCHARSET_OBJECTS): New variable. + (libiconv.la): Link in the LIBCHARSET_OBJECTS. + (libiconv_plug_linux.so, libiconv_plug_solaris.so, + libiconv_plug_osf.so): Link in the LIBCHARSET_OBJECTS, using + LIBTOOL_LINK. + (iconv.lo): Depend on encodings_local.def. + * src/Makefile.msvc (iconv.obj): Depend on encodings_local.def. + * src/Makefile.os2 (iconv.obj): Likewise. + * configure.in: Add tests for locale.h, mbrtowc, wcrtomb, setlocale. + Recurse into libcharset. + * src/config.h.in (HAVE_LOCALE_H, HAVE_MBRTOWC, HAVE_WCRTOMB, + HAVE_SETLOCALE): New macros. + * tests/iconv.c: Include config.h and locale.h. + (main): Call setlocale. + * tests/Makefile.in (iconv): Search for config.h in ../src. + * tests/Makefile.os2 (iconv.exe): Likewise. + * tests/Makefile.msvc (iconv.exe): Likewise. + * README, man/iconv_open.3: Document "char" and "wchar_t" encodings. + * Makefile.in: After "cd", use "&&" not ";". + (all, check, mostlyclean, clean, distclean, maintainer-clean): + Recurse into libcharset. + * Makefile.devel (all): Recurse into libcharset. + (src/aliases.gperf): Depend on src/encodings_local.def. + +2000-11-18 Bruno Haible + + * src/converters.h (ucs4_t): New type. + (wchar_t): Remove locally defined override. + (mbtowc_funcs, wctomb_funcs): Use ucs4_t instead of wchar_t. + * src/iconv.c (iconv): Likewise. + * src/genflags.c (emit_encoding): Use ucs4_t instead of wchar_t. + * tools/8bit_tab_to_h.c: Use "ucs4_t" instead of "wchar_t". + * tools/cjk_tab_to_h.c: Likewise. + * src/armscii_8.h: Use ucs4_t instead of wchar_t. + * src/ascii.h: Likewise. + * src/big5.h: Likewise. + * src/big5hkscs.h: Likewise. + * src/ces_big5.h: Likewise. + * src/ces_gbk.h: Likewise. + * src/cns11643.h: Likewise. + * src/cns11643_1.h: Likewise. + * src/cns11643_2.h: Likewise. + * src/cns11643_3.h: Likewise. + * src/cns11643_inv.h: Likewise. + * src/cp1046.h: Likewise. + * src/cp1124.h: Likewise. + * src/cp1129.h: Likewise. + * src/cp1133.h: Likewise. + * src/cp1250.h: Likewise. + * src/cp1251.h: Likewise. + * src/cp1252.h: Likewise. + * src/cp1253.h: Likewise. + * src/cp1254.h: Likewise. + * src/cp1255.h: Likewise. + * src/cp1256.h: Likewise. + * src/cp1257.h: Likewise. + * src/cp1258.h: Likewise. + * src/cp850.h: Likewise. + * src/cp856.h: Likewise. + * src/cp866.h: Likewise. + * src/cp874.h: Likewise. + * src/cp922.h: Likewise. + * src/cp932.h: Likewise. + * src/cp932ext.h: Likewise. + * src/cp936ext.h: Likewise. + * src/cp949.h: Likewise. + * src/cp950.h: Likewise. + * src/cp950ext.h: Likewise. + * src/euc_cn.h: Likewise. + * src/euc_jp.h: Likewise. + * src/euc_kr.h: Likewise. + * src/euc_tw.h: Likewise. + * src/gb12345.h: Likewise. + * src/gb12345ext.h: Likewise. + * src/gb18030.h: Likewise. + * src/gb18030ext.h: Likewise. + * src/gb18030uni.h: Likewise. + * src/gb2312.h: Likewise. + * src/gbk.h: Likewise. + * src/gbkext1.h: Likewise. + * src/gbkext2.h: Likewise. + * src/gbkext_inv.h: Likewise. + * src/georgian_academy.h: Likewise. + * src/georgian_ps.h: Likewise. + * src/hkscs.h: Likewise. + * src/hp_roman8.h: Likewise. + * src/hz.h: Likewise. + * src/iso2022_cn.h: Likewise. + * src/iso2022_cnext.h: Likewise. + * src/iso2022_jp.h: Likewise. + * src/iso2022_jp1.h: Likewise. + * src/iso2022_jp2.h: Likewise. + * src/iso2022_kr.h: Likewise. + * src/iso646_cn.h: Likewise. + * src/iso646_jp.h: Likewise. + * src/iso8859_1.h: Likewise. + * src/iso8859_10.h: Likewise. + * src/iso8859_13.h: Likewise. + * src/iso8859_14.h: Likewise. + * src/iso8859_15.h: Likewise. + * src/iso8859_16.h: Likewise. + * src/iso8859_2.h: Likewise. + * src/iso8859_3.h: Likewise. + * src/iso8859_4.h: Likewise. + * src/iso8859_5.h: Likewise. + * src/iso8859_6.h: Likewise. + * src/iso8859_7.h: Likewise. + * src/iso8859_8.h: Likewise. + * src/iso8859_9.h: Likewise. + * src/isoir165.h: Likewise. + * src/isoir165ext.h: Likewise. + * src/java.h: Likewise. + * src/jisx0201.h: Likewise. + * src/jisx0208.h: Likewise. + * src/jisx0212.h: Likewise. + * src/johab.h: Likewise. + * src/johab_hangul.h: Likewise. + * src/koi8_r.h: Likewise. + * src/koi8_ru.h: Likewise. + * src/koi8_u.h: Likewise. + * src/ksc5601.h: Likewise. + * src/mac_arabic.h: Likewise. + * src/mac_centraleurope.h: Likewise. + * src/mac_croatian.h: Likewise. + * src/mac_cyrillic.h: Likewise. + * src/mac_greek.h: Likewise. + * src/mac_hebrew.h: Likewise. + * src/mac_iceland.h: Likewise. + * src/mac_roman.h: Likewise. + * src/mac_romania.h: Likewise. + * src/mac_thai.h: Likewise. + * src/mac_turkish.h: Likewise. + * src/mac_ukraine.h: Likewise. + * src/mulelao.h: Likewise. + * src/nextstep.h: Likewise. + * src/sjis.h: Likewise. + * src/tcvn.h: Likewise. + * src/tis620.h: Likewise. + * src/ucs2.h: Likewise. + * src/ucs2be.h: Likewise. + * src/ucs2internal.h: Likewise. + * src/ucs2le.h: Likewise. + * src/ucs2swapped.h: Likewise. + * src/ucs4.h: Likewise. + * src/ucs4be.h: Likewise. + * src/ucs4internal.h: Likewise. + * src/ucs4le.h: Likewise. + * src/ucs4swapped.h: Likewise. + * src/uhc_1.h: Likewise. + * src/uhc_2.h: Likewise. + * src/utf16.h: Likewise. + * src/utf16be.h: Likewise. + * src/utf16le.h: Likewise. + * src/utf7.h: Likewise. + * src/utf8.h: Likewise. + * src/viscii.h: Likewise. + +2000-11-18 Bruno Haible + + Make transliteration optional. + * src/iconv.c (iconv_open): Strip off //TRANSLIT suffix from names. + Set transliteration on if and only if tocode ends in //TRANSLIT. + * README, man/iconv_open.3: Document how to enable transliteration. + * tests/check-translit: Add //TRANSLIT to iconv's 't' argument. + * tests/check-translit.bat: Likewise. + * tests/check-translit.cmd: Likewise. + +2000-11-18 Bruno Haible + + * man/iconv.3: Fix typo. + +2000-10-31 Bruno Haible + + * README, man/iconv_open.3: Document JOHAB again. + +2000-11-15 Bruno Haible + + * Makefile.msvc: Add support for MFLAGS and DEBUG parameters. + (STATIC): Change default from 0 to 1. + * src/Makefile.msvc: Likewise. + * tests/Makefile.msvc: Likewise. + * tests/check-stateless.bat: Call 'sort' with no arguments. + +2000-11-12 Bruno Haible + + * autoconf/config.guess, autoconf/config.sub: Upgrade to newest + version from GNU CVS. + +2000-10-24 Bruno Haible + + * Version 1.4 released. + * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc: + Bump version number. + * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:1:0. + +2000-10-23 Bruno Haible + + Implement and document GB18030 and BIG5HKSCS. + * tools/cjk_tab_to_h.c (row_byte_hkscs, byte_row_hkscs, do_hkscs): New + functions. + (do_gb18030uni): New function. + (main): Accept gb18030ext, gb18030uni, hkscs. + * tools/Makefile (ALL): Add gb18030ext.h, gb18030uni.h, hkscs.h. + (gb18030ext.h, GB18030ext.TXT, gb18030uni.h, GB18030uni.TXT, + hkscs.h): New targets. + * src/gb18030ext.h, src/gb18030uni.h, src/gb18030.h: New files. + * src/hkscs.h, src/big5hkscs.h: New files. + * src/converters.h: Include gb18030.h and big5hkscs.h. + * src/encodings.def (GB18030, BIG5HKSCS): New encodings. + * README, man/iconv_open.3: Add GB18030, BIG5HKSCS. + * tests/Makefile.in (check): Check GB18030, BIG5HKSCS. + * tests/Makefile.msvc (check): Likewise. + * tests/Makefile.os2 (check): Likewise. + * tests/GB18030.TXT: New file. + * tests/BIG5HKSCS.TXT, tests/BIG5HKSCS.IRREVERSIBLE.TXT: New files. + +2000-10-23 Bruno Haible + + * tests/table-from.c (try, main): Use UCS-4-INTERNAL instead of + UCS-2-INTERNAL, to avoid problems with UCS-2 surrogate handling. + * tests/table-to.c (main): Likewise. + +2000-10-22 Bruno Haible + + * src/gentranslit.c (main): Read the input in UTF-8 encoding. + +2000-10-09 Bruno Haible + + CPU recognition on OpenBSD. + * autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __m68k__, + __mc68020__, __MIPSEB__, __MIPSEL__, __m88k__ as CPU indicators. + +2000-10-03 Bruno Haible + + * src/gentranslit.c (main): Don't output non-ASCII ISO-8859-1 + character literals, use the numeric value instead. + Reported by Shin-Hsien Yeh . + +2000-09-29 Bruno Haible + + * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Fix bug in 2000-05-23 + change. + +2000-09-25 Bruno Haible + + * autoconf/aclocal.m4 (CL_WORDS_LITTLEENDIAN): Recognize __i386__ + as equivalent to __i386. For OpenBSD. + +2000-09-21 Bruno Haible + + * src/utf16.h (utf16_wctomb): Reject single surrogates. + * src/utf16be.h (utf16be_wctomb): Likewise. + * src/utf16le.h (utf16le_wctomb): Likewise. + * src/ucs2.h (ucs2_mbtowc, ucs2_wctomb): Likewise. + * src/ucs2be.h (ucs2be_mbtowc, ucs2be_wctomb): Likewise. + * src/ucs2le.h (ucs2le_mbtowc, ucs2le_wctomb): Likewise. + * src/ucs2internal.h (ucs2internal_mbtowc, ucs2internal_wctomb): + Likewise. + * src/ucs2swapped.h (ucs2swapped_mbtowc, ucs2swapped_wctomb): + Likewise. + +2000-09-15 Bruno Haible + + * Makefile.in (install, installdirs, uninstall): Support DESTDIR. + * src/Makefile.in (install, installdirs, uninstall): Likewise. + * man/Makefile.in (install, installdirs, uninstall): Likewise. + +2000-09-11 Bruno Haible + + * src/utf7.h (utf7_mbtowc): Fix combining of UTF-16 surrogates. + +2000-08-26 Bruno Haible + + * autoconf/acgeneral.m4 (AC_OUTPUT): Use braces in exec_prefix default + value, not parens. + +2000-07-04 Akira Hatakeyama + Bruno Haible + + * os2/iconv.def, README.os2, Makefile.os2, src/Makefile.os2, + tests/Makefile.os2, man/Makefile.os2, tests/check-stateful.cmd, + tests/check-stateless.cmd, tests/check-translit.cmd: New files. + +2000-06-28 Bruno Haible + + * src/ucs2internal.h (ucs2internal_mbtowc): Avoid gcc warning about + cast. + * src/ucs4internal.h (ucs4internal_mbtowc): Likewise. + * src/ucs2swapped.h (ucs2swapped_mbtowc, ucs2swapped_wctomb): Verify + sizeof(unsigned short). + * src/ucs4swapped.h (ucs4swapped_mbtowc, ucs4swapped_mbtowc): Verify + sizeof(unsigned int). + Reported by François Pinard . + +2000-05-29 Bruno Haible + + * autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo. + Reported by Thomas Klausner . + +2000-05-23 Bruno Haible + + * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu, + host_vendor, host_os correctly if $host has more than two hyphens. + +2000-04-15 Bruno Haible + + * Version 1.3 released. + * include/iconv.h.in (_LIBICONV_VERSION), README, windows/iconv.rc: + Bump version number. + * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 2:0:0. + +2000-04-15 Bruno Haible + + * THANKS: New file. + * INSTALL.generic: New file. + + Implement and document UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE. + * src/ucs2be.h, src/ucs2le.h, src/ucs4be.h, src/ucs4le.h: New files. + * src/converters.h: Include them. + * src/ucs2swapped.h: Remove #defines for UCS-2-BE, UCS-2-LE. + * src/ucs4swapped.h: Remove #defines for UCS-4-BE, UCS-4-LE. + * src/encodings.def (UCS-2BE): Renamed from UCS-2-BE. + (UCS-2LE): Renamed from UCS-2-LE. + (UCS-4BE): Renamed from UCS-4-BE. + (UCS-4LE): Renamed from UCS-4-LE. + * Makefile.devel (src/aliases.h): Pass option "-i 1" to gperf. + * README, man/iconv_open.3: Add UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE. + * tests/Makefile.in (check): Check UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE. + * tests/Makefile.msvc (check): Likewise. + * tests/UCS-*snippet*: New files. + + Allow building as a shared library on Windows. + Allow running the tests on Windows. + * Makefile.devel (include/iconv.h.msvc): Remove rule. + (include/iconv.h.msvc-static, include/iconv.h.msvc-shared): New + rules. + (all): Update. + * windows/dllexport.h: New file. + * include/iconv.h.msvc: Remove file. + * include/iconv.h.msvc-static, include/iconv.h.msvc-shared: New + autogenerated files. + * Makefile.msvc (STATIC, DEBUG): Default to 0. + (all): Choose either include\iconv.h.msvc-static or + include\iconv.h.msvc-shared. + (check): Depend on all. + (all, check, mostlyclean, clean, distclean, maintainer-clean): + Recurse into tests directory. + * src/Makefile.msvc (STATIC, DEBUG): Default to 0. + (WARN_CFLAGS, PICFLAGS, OPTIMFLAGS): New variables. + (CFLAGS): Use them. Add -MD and -DBUILDING_LIBICONV. + (RESOURCES): New variable. + (iconv.lib): Change rule when building DLL. + (clean, distclean): One filename per line. + * tests/Makefile.msvc: New file. + * tests/check-stateful.bat, tests/check-stateless.bat, + tests/check-translit.bat: New files. + * tests/uniq-u.c: New file, taken from GNU textutils. + * README.win32: Update. + Based on patches by Taro Muraoka . + +2000-04-14 Bruno Haible + + Fix an OSF/1 problem. + * configure.in: Define GCC variable for substitution. + * src/Makefile.in (libiconv_plug_osf.so): Change rule if not using + gcc. + +2000-04-13 Bruno Haible + + Fix a SunOS 4 problem. + * include/iconv.h.in: If EILSEQ is not defined by the system, define + it to ENOENT, not EINVAL. + +2000-04-02 Bruno Haible + + Allow building on filesystems lacking symlinks and hard links. + * Makefile.devel (autoconf/aclocal.m4): Replace AC_PROG_LN_S with + CL_PROG_LN_S. + * configure.in: Add CL_PROG_LN, CL_PROG_LN_S. + * src/Makefile.in (LN): Use autoconfigured value @LN@. + (LN_S): Use autoconfigured value @LN_S@. + +2000-03-15 Bruno Haible + + * Version 1.2 released. + * include/iconv.h.in (_LIBICONV_VERSION): Bump version number. + * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 1:1:1. + +2000-03-14 Bruno Haible + + Implement and document UTF-16BE and UTF16LE. + * src/utf16be.h, src/utf16le.h: New files. + * src/converters.h: Include them. + * src/encodings.def (UTF-16BE, UTF16LE): New encodings. + * README, man/iconv_open.3: Add UTF-16BE, UTF16LE. + * tests/Makefile.in (check): Check UTF-16, UTF-16BE, UTF16LE. + * tests/UTF-16*snippet*: New files. + + * src/utf16.h (utf16_wctomb): Output a byte order mark. + +2000-03-13 Bruno Haible + + Provide all encodings used by AIX locales. + * tools/Makefile (all): Add cp856.h, cp922.h, cp1046.h, cp1124.h, + cp1129.h. + (cp856.h, cp922.h, cp1046.h, cp1124.h, cp1129.h): New targets. + * src/cp856.h, src/cp922.h, src/cp943.h, src/cp1046.h, src/cp1124.h, + src/cp1129.h: New files. + * src/converters.h: Include them if USE_AIX is defined. + * src/encodings_aix.def: New file, with CP856, CP922, CP943, CP1046, + CP1124, CP1129. + * src/genflags.c: Define USE_AIX. Include encodings_aix.def. + * src/genaliases2.c: New file. + * src/iconv.c: Define USE_AIX on AIX. + Include encodings_aix.def and aliases_aix.h. + (aliases2_lookup): New function. + (iconv_open): Call aliases2_lookup. + * src/Makefile.in (iconv.lo): Depend on encodings_aix.def and + aliases_aix.h. + * Makefile.devel (all): Add src/aliases_aix.h. + (src/aliases_aix.h): New rule. + (src/flags.h): Depend on src/encodings_aix.def. + +2000-02-24 Bruno Haible + + * src/iconv.c (iconv): Don't write beyond the end of the output buffer. + Reported by Edmund Grimley Evans . + +2000-02-22 Bruno Haible + + * src/utf7.h (direct_tab, xdirect_tab): Treat tab like space. + +2000-02-15 Bruno Haible + + * src/iconv.c (iconv): Add cast in xxx_reset call. + +2000-02-05 Bruno Haible + + * src/tis620.h: Simplify. + +2000-01-27 Bruno Haible + + * Makefile.devel (CLISP_DIR): Change to "..". + +2000-01-24 Bruno Haible + + * Version 1.1 released. + * include/iconv.h.in (_LIBICONV_VERSION): Bump version number. + * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 1:0:1. + +2000-01-23 Bruno Haible + + * src/utf7.h (utf7_wctomb): If base64 encoding is not active, encode + '+' as "+-". + +2000-01-22 Bruno Haible + + * include/iconv.h.in (iconvctl): New declaration. + (ICONV_TRIVIALP, ICONV_GET_TRANSLITERATE, ICONV_SET_TRANSLITERATE): + New macros. + * src/iconv.c (iconvctl): New function. + + * tests/Makefile.in: Add a rule for ../src/libiconv.la. Define $(MAKE). + + Solve a build problem. + * include/iconv.h.in: Renamed from include/libiconv.h.in. + * Makefile.devel: libiconv.h -> iconv.h. + * Makefile.in: Likewise. + * configure.in: Likewise. Remove check for . + * src/iconv.c: Include iconv.h instead of libiconv.h. + * tests/iconv.c, tests/table-from.c, tests/table-to.c: Likewise. + + * README, man/iconv_open.3: Don't document JOHAB any more. + + * man/iconv.3: Clarify return value again. + +2000-01-16 Bruno Haible + + Add aliases. + * src/encodings.def (ISO-8859-14): Add alias ISO-IR-199. + (ISO-8859-15): Add alias ISO-IR-203. + (EUC-CN): Add alias CN-GB, from RFC 1922. + (BIG5): Add alias CN-BIG5, from RFC 1922. + * Makefile.devel (src/aliases.h): Add 8th character to key set. + + Drop X11 aliases. + * src/encodings.def (JIS_X0201): Drop JISX0201.1976-0 alias. + (JIS_X0208): Drop JIS_X0208.1983-0, JIS_X0208.1983-1 aliases. + (KSC_5601): Drop KSC5601.1987-0 alias. + + Improve GB/T 12345 (not used yet). + * tools/Makefile (gb12345ext.h): Use GB12345-more.TXT. + * src/gb12345ext.h: Regenerated. + + Improve and document CP949. + * tools/Makefile (all): Add uhc_1.h and uhc_2.h. + (uhc_1.h, uhc_2.h): New rules. + * tools/cjk_tab_to_h.c (output_charset2uni_noholes_monotonic): New + function. + (output_uni2charset_sparse): Take an additional boolean argument. + All callers changed. + (*_uhc_1, *_uhc_2): New functions. + (main): Treat uhc_1 and uhc_2. + * src/uhc_1.h, src/uhc_2.h: New files. + * src/cp949.h: New file, include them. + * src/converters.h: Include it. + * src/encodings.def (KSC_5601): Remove alias CP949. + (CP949): New encoding. + * README, man/iconv_open.3: Add CP949. + * tests/Makefile.in (check): Check CP949. + * tests/CP949.TXT: New file. + + Document CP932. + * README, man/iconv_open.3: Add CP932. + * tests/Makefile.in (check): Check CP932. + * tests/CP932.TXT, tests/CP932.IRREVERSIBLE.TXT: New files. + + * Makefile.devel (src/flags.h): Depend on src/converters.h. + + * tests/Makefile.in (check): Check JIS_X0201. + * tests/JIS_X0201.TXT: New file. + + * src/euc_kr.h (euc_kr_wctomb): Shrink size of buf. + * src/iso2022_kr.h (iso2022_kr_wctomb): Likewise. + + * src/iso2022_cnext.h (iso2022_cn_ext_mbtowc): Use isoir165_mbtowc. + (iso2022_cn_ext_wctomb): Use isoir165_wctomb. + + Add ISO-IR-165 (undocumented). + * tools/Makefile (all): Add isoir165ext.h. + (isoir165ext.h): New rule. + * tools/cjk_tab_to_h.c (main): Treat isoir165ext like gb2312. + * src/isoir165.h, src/isoir165ext.h: New files. + * src/converters.h: Include it. + * src/encodings.def: Add ISO-IR-165. + * tests/Makefile.in (check): Check ISO-IR-165. + * tests/ISO-IR-165.TXT, tests/ISO-IR-165.IRREVERSIBLE.TXT: New files. + + Add ISO646-CN (undocumented). + * src/iso646_cn.h: New file. + * src/converters.h: Include it. + * src/encodings.def: Add ISO646-CN. + * tests/Makefile.in (check): Check ISO646-CN. + * tests/ISO646-CN.TXT: New file. + + Add ISO646-JP (undocumented). + * src/iso646_jp.h: New file. + * src/converters.h: Include it. + * src/encodings.def: Add ISO646-JP. + * tests/Makefile.in (check): Check ISO646-JP. + * tests/ISO646-JP.TXT: New file. + +2000-01-05 Bruno Haible + + Add ISO-8859-16. + * tools/Makefile (all): Add iso8859_16.h. + (iso8859_16.h): New rule. + * src/iso8859_16.h: New file. + * src/converters.h: Include it. + * src/encodings.def: Add ISO-8859-16. + * README, man/iconv_open.3: Add ISO-8859-16. + * tests/Makefile.in (check): Check ISO-8859-16. + * tests/ISO-8859-16.TXT: New file. + + * man/iconv.3: Clarify what happens *inbuf in case 3. + + * src/iso8859_8.h: Update using newest table from ftp.unicode.org. + * tests/ISO-8859-8.TXT: Likewise. + +2000-01-04 Bruno Haible + + * Version 1.0 released. + * include/libiconv.h.in (_LIBICONV_VERSION): Bump version number. + * src/Makefile.in (LIBICONV_VERSION_INFO): Define to 0:1:0. + (libiconv.la): Use LIBICONV_VERSION_INFO. + +2000-01-03 Bruno Haible + + * tests/Makefile.in: New file. + tests/check-stateless, tests/table-from.c, tests/table-to.c, + tests/*.TXT, tests/genutf8.c: New files, checks for stateless + encodings. + tests/check-stateful, tests/iconv.c, tests/*-snippet*: New files, + checks for stateful encodings. + * Makefile.in (all, check, mostlyclean, clean, distclean, + maintainer-clean): Descend into tests directory. + * configure.in: Add tests/Makefile to AC_OUTPUT duties. + + * src/gentranslit.c: New file. + * Makefile.devel (src/translit.h): New rule. + * src/translit.def, src/translit.h: New files. + * src/iconv.c: Include it. + (iconv): Transliterate using translit.h table. + + * src/genflags.c: New file. + * Makefile.devel (src/flags.h): New rule. + * src/flags.h: New file. + * src/iconv.c: Include it. + (encoding): Add field 'oflags'. + (all_encodings): Initialize the field 'oflags'. + (iconv_open): Copy field 'oflags'. + (iconv): Transliterate quotation marks U+2018, U+2019, U+201A. + * src/Makefile.in (iconv.lo): Update dependencies. + + * src/converters.h: New file, extracted from src/iconv.c. + * src/iconv.c: Include it. + * src/Makefile.in (iconv.lo): Update dependencies. + + * tools/cjk_variants.c: New file. + * tools/Makefile (ALL): Add cjk_variants.h. + (cjk_variants.h, cjk_variants): New rules. + * src/cjk_variants.h: New file. + * src/iconv.c: Include it. + (iconv): Use cjk_variants for transliteration. + + * man/iconv.3: Fix description of return value. + * euc_kr.h (euc_kr_wctomb): Remove Hangul transliteration. + * iso2022_kr.h (iso2022kr_wctomb): Likewise. + * src/iconv.c (iconv): Do Hangul transliteration here and increment + result once for every transliterated character. + * src/johab_hangul.h (johab_hangul_decompose): Change result array + from 'unsigned char*' to 'wchar_t*'. + + * src/cp1258.h (cp1258_mbtowc): Return RET_ILSEQ instead of storing + 0xfffd. + + * src/georgian_ps.h (georgian_ps_wctomb): Accept 0x00e6. + + * src/euc_jp.h (euc_jp_wctomb): Don't treat U+005C and U+007E like + Katakana. + + * src/euc_tw.h (euc_tw_mbtowc): Fix typo. + + * src/cp950.h (cp950_mbtowc, cp950_wctomb): Exclude the range + 0xC6A1..0xC7FE. + + * tools/cjk_tab_to_h.c (read_table_ksc5601): Some Hangul range was + not being excluded. Fix that. + * src/ksc5601.h: Regenerated. + * src/johab.h (johab_mbtowc): Don't accept 0xDA{A1..D3} - this is + valid in KSC5601/KSX1001 but not in JOHAB. + + * src/iconv.c (conv_struct): Add fields iindex, oindex. + (iconv_open): Fill in iindex, oindex. + + * src/encodings.def (UCS-2-BE): Add aliases "UNICODE-1-1" and + "csUnicode11", from IANA charset list. + (MacRoman): Add aliases "MAC" and "csMacintosh" for "MACINTOSH", + from IANA charset list. + (JIS_X0208): Add aliases "X0208", "ISO-IR-87", "csISO87JISX0208", + from IANA charset list. + (GB_2312-80): New encoding, from IANA charset list. + + * README, man/iconv_open.3: Add MacIceland and MacUkraine. + + * Makefile.devel: Add rules for src/aliases.h and src/aliases.gperf. + (all): Depend on src/aliases.h. + * src/Makefile.in: Remove rules for $(srcdir)/aliases.h and + $(srcdir)/aliases.gperf. + (clean): Clean up. + + * src/Makefile.in (libiconv_plug_linux.so): Remove unneeded "-ldl". + +1999-12-31 Bruno Haible + + * Version 0.3 released. + diff --git a/3rdPartner/libiconv/DEPENDENCIES b/3rdPartner/libiconv/DEPENDENCIES new file mode 100644 index 0000000..748fb83 --- /dev/null +++ b/3rdPartner/libiconv/DEPENDENCIES @@ -0,0 +1,76 @@ +The following packages should be installed before GNU libiconv is installed +(runtime dependencies that are also build dependencies): + +None. + + +The following packages should be installed when GNU libiconv is installed +(runtime dependencies, but not build dependencies): + +None. + + +The following should be installed when GNU libiconv is built, but are not +needed later, once it is installed (build dependencies, but not runtime +dependencies): + +* A C runtime, compiler, linker, etc. + + Mandatory. + Either the platform's native 'cc', or GCC 3.1 or newer. + + GCC Homepage: + https://gcc.gnu.org/ + + Download: + https://ftp.gnu.org/gnu/gcc/ + +* A 'make' utility. + + Mandatory. + Either the platform's native 'make' (for in-tree builds only), + or GNU Make 3.79.1 or newer. + + GNU Make Homepage: + https://www.gnu.org/software/make/ + + Download: + https://ftp.gnu.org/gnu/make/ + +* A shell + + Mandatory. + Either the platform's native 'sh', or Bash. + + Homepage: + https://www.gnu.org/software/bash/ + + Download: + https://ftp.gnu.org/gnu/bash/ + +* Core POSIX utilities, including: + [ basename cat chgrp chmod chown cp dd echo expand expr + false hostname install kill ln ls md5sum mkdir mkfifo + mknod mv printenv pwd rm rmdir sleep sort tee test touch + true uname + + Mandatory. + Either the platform's native utilities, or GNU coreutils. + + Homepage: + https://www.gnu.org/software/coreutils/ + + Download: + https://ftp.gnu.org/gnu/coreutils/ + +* The comparison utilities 'cmp' and 'diff'. + + Mandatory. + Either the platform's native utilities, or GNU diffutils. + + Homepage: + https://www.gnu.org/software/diffutils/ + + Download: + https://ftp.gnu.org/gnu/diffutils/ + +* Grep. + + Mandatory. + Either the platform's native grep, or GNU grep. + + Homepage: + https://www.gnu.org/software/grep/ + + Download: + https://ftp.gnu.org/gnu/grep/ + +* Awk. + + Mandatory. + Either the platform's native awk, mawk, or nawk, or GNU awk. + + Homepage: + https://www.gnu.org/software/gawk/ + + Download: + https://ftp.gnu.org/gnu/gawk/ diff --git a/3rdPartner/libiconv/DESIGN b/3rdPartner/libiconv/DESIGN new file mode 100644 index 0000000..9ff2ad3 --- /dev/null +++ b/3rdPartner/libiconv/DESIGN @@ -0,0 +1,64 @@ +While some other iconv(3) implementations - like FreeBSD iconv(3) - choose +the "many small shared libraries" and dlopen(3) approach, this implementation +packs everything into a single shared library. Here is a comparison of the +two designs. + +* Run-time efficiency + 1. A dlopen() based approach needs a cache of loaded shared libraries. + Otherwise, every iconv_open() call will result in a call to dlopen() + and thus to file system related system calls - which is prohibitive + because some applications use the iconv_open/iconv/iconv_close sequence + for every single filename, string, or piece of text. + 2. In terms of virtual memory use, both approaches are on par. Being shared + libraries, the tables are shared between any processes that use them. + And because of the demand loading used by Unix systems (and because libiconv + does not have initialization functions), only those parts of the tables + which are needed (typically very few kilobytes) will be read from disk and + paged into main memory. + 3. Even with a cache of loaded shared libraries, the dlopen() based approach + makes more system calls, because it has to load one or two shared libraries + for every encoding in use. + +* Total size + In the dlopen(3) approach, every shared library has a symbol table and + relocation offset. All together, FreeBSD iconv installs more than 200 shared + libraries with a total size of 2.3 MB. Whereas libiconv installs 0.45 MB. + +* Extensibility + The dlopen(3) approach is good for guaranteeing extensibility if the iconv + implementation is distributed without source. (Or when, as in glibc, you + cannot rebuild iconv without rebuilding your libc, thus possibly + destabilizing your system.) + The libiconv package achieves extensibility through the LGPL license: + Every user has access to the source of the package and can extend and + replace just libiconv.so. + The places which have to be modified when a new encoding is added are as + follows: add an #include statement in iconv.c, add an entry in the table in + iconv.c, and of course, update the README and iconv_open.3 manual page. + +* Use within other packages + If you want to incorporate an iconv implementation into another package + (such as a mail user agent or web browser), the single library approach + is easier, because: + 1. In the shared library approach you have to provide the right directory + prefix which will be used at run time. + 2. Incorporating iconv as a static library into the executable is easy - + it won't need dynamic loading. (This assumes that your package is under + the LGPL or GPL license.) + + +All conversions go through Unicode. This is possible because most of the +world's characters have already been allocated in the Unicode standard. +Therefore we have for each encoding two functions: +- For conversion from the encoding to Unicode, a function called xxx_mbtowc. +- For conversion from Unicode to the encoding, a function called xxx_wctomb, + and for stateful encodings, a function called xxx_reset which returns to + the initial shift state. + + +All our functions operate on a single Unicode character at a time. This is +obviously less efficient than operating on an entire buffer of characters at +a time, but it makes the coding considerably easier and less bug-prone. Those +who wish best performance should install the Real Thing (TM): GNU libc 2.1 +or newer. + diff --git a/3rdPartner/libiconv/HACKING b/3rdPartner/libiconv/HACKING new file mode 100644 index 0000000..8e5a63e --- /dev/null +++ b/3rdPartner/libiconv/HACKING @@ -0,0 +1,72 @@ +All you need to know when hacking (modifying) GNU libiconv or when building +it off the Git repository. + + +Requirements +============ + +You will need reasonably recent versions of the build tools: + + * A C compiler. Such as GNU GCC. + + Homepage: + https://gcc.gnu.org/ + + * GNU automake 1.16.x + + Homepage: + https://www.gnu.org/software/automake/ + + * GNU autoconf 2.69 or newer + + Homepage: + https://www.gnu.org/software/autoconf/ + + * GNU m4 + + Homepage: + https://www.gnu.org/software/m4/ + + * GNU gperf + + Homepage: + https://www.gnu.org/software/gperf/ + + * GNU groff 1.17 or newer + + Homepage: + https://www.gnu.org/software/groff/ + + * Perl + + Homepage: + https://www.perl.org/ + + * Either an internet connection or a recent copy of GNU gnulib. + + Homepage: + https://www.gnu.org/software/gnulib/ + +And, of course, the packages listed in the DEPENDENCIES file. + + +Building off the Git repository +=============================== + +Access to the Git repository is described at +https://savannah.gnu.org/git/?group=libiconv . + +After fetching the sources from the Git repository, peek at the comments in +autogen.sh, then run + ./gitsub.sh pull + ./autogen.sh +Then you can proceed with "./configure" as usual. + +Each time you want to update the source, do not only "git pull". Instead do + git pull && ./gitsub.sh pull + ./autogen.sh + + +Adding new encodings +==================== + +For an indication which encodings are acceptable in the official version of +GNU libiconv, take a look at NOTES. + +For an indication which files need to be modified when adding a new encoding, +look for example at the 2007-05-25 ChangeLog entry for RK1048. The lib/*.h +file for an encoding is usually generated by one of the tools in the tools/ +directory. All you need to provide is the conversion table in the format of +the many *.TXT files. diff --git a/3rdPartner/libiconv/INSTALL.generic b/3rdPartner/libiconv/INSTALL.generic new file mode 100644 index 0000000..69df07d --- /dev/null +++ b/3rdPartner/libiconv/INSTALL.generic @@ -0,0 +1,262 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.ac' is used to create `configure' by a program +called `autoconf'. You only need `configure.ac' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple '-arch' options to the +compiler but only a single '-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases. You +may have to build one architecture at a time and combine the results +using the 'lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Relocatable Installation +======================== + + By default, `make install' will install a package with hardwired +file names, and the package will not work correctly when copied or +moved to a different location in the filesystem. + + Some packages pay attention to the `--enable-relocatable' option to +`configure'. This option makes the entire installed package +relocatable. This means, it can be moved or copied to a different +location on the filesystem. It is possible to make symlinks to the +installed and moved programs, and invoke them through the symlink. It +is possible to do the same thing with a hard link _only_ if the hard +linked file is in the same directory as the real program. + + For reliability it is best to give together with --enable-relocatable +a `--prefix' option pointing to an otherwise unused (and never used +again) directory, for example, `--prefix=/tmp/inst$$'. This is +recommended because on some OSes the executables remember the location +of shared libraries (and prefer them over LD_LIBRARY_PATH !), therefore +such an executable will look for its shared libraries first in the +original installation directory and only then in the current +installation directory. + + Installation with `--enable-relocatable' will not work for setuid / +setgid executables. (This is because such an executable kills its +LD_LIBRARY_PATH variable when it is launched.) + + The runtime penalty and size penalty are nearly zero on Linux 2.2 or +newer (just one system call more when an executable is launched), and +small on other systems (the wrapper program just sets an environment +variable and execs the real program). + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + For packages that use the GNU libiconv library, you can use the +`configure' option `--with-libiconv-prefix' to specify the prefix you +used while installing GNU libiconv. This option is not necessary if +that other prefix is the same as the one now specified through --prefix. + + For packages that use the GNU libintl library, you can use the +`configure' option `--with-libintl-prefix' to specify the prefix you +used while installing GNU gettext-runtime. This option is not necessary if +that other prefix is the same as the one now specified through --prefix. + +Particular Systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC +is not installed, it is recommended to use the following options in order +to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On AIX 3, the C include files by default don't define some necessary +prototype declarations. If GNU CC is not installed, it is recommended to +use the following options: + + ./configure CC="xlc -D_ALL_SOURCE" + + On BeOS, user installed software goes in /boot/home/config, not +/usr/local. It is recommended to use the following options: + + ./configure --prefix=/boot/home/config + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/3rdPartner/libiconv/INSTALL.windows b/3rdPartner/libiconv/INSTALL.windows new file mode 100644 index 0000000..0c75279 --- /dev/null +++ b/3rdPartner/libiconv/INSTALL.windows @@ -0,0 +1,255 @@ +Installation on Microsoft Windows: + +There are three ways to create binaries of this package for Microsoft Windows: +1) Native binaries, built using the mingw tool chain. +2) Native binaries, built using the MS Visual C/C++ tool chain. +3) Binaries for the Cygwin environment. + +=============================================================================== +1) Native binaries, built using the mingw tool chain. + + I recommend to use the Cygwin environment as the development environment + and mingw only as the target (runtime, deployment) environment. + For this, you need to install + * Cygwin (from https://cygwin.com/), + * some packages available from the Cygwin package installer: + make + * the mingw cross-compilation tools and runtime package, available from + the Cygwin package installer (setup-x86_64.exe): + - for creating 32-bit binaries: packages + mingw64-i686-gcc-core, + mingw64-i686-headers, + mingw64-i686-runtime + - for creating 64-bit binaries: packages + mingw64-x86_64-gcc-core, + mingw64-x86_64-headers, + mingw64-x86_64-runtime + + Building 32-bit binaries for mingw is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/mingw32/bin:$PATH + export PATH + ./configure --host=i686-w64-mingw32 --prefix=/usr/local/mingw32 \ + CC=i686-w64-mingw32-gcc \ + CPPFLAGS="-I/usr/local/mingw32/include -Wall" \ + LDFLAGS="-L/usr/local/mingw32/lib" + make + make check + + Building 64-bit binaries for mingw is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/mingw64/bin:$PATH + export PATH + ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/mingw64 \ + CC=x86_64-w64-mingw32-gcc \ + CPPFLAGS="-I/usr/local/mingw64/include -Wall" \ + LDFLAGS="-L/usr/local/mingw64/lib" + make + make check + + Installation: + + make install + +=============================================================================== +2) Native binaries, built using the MS Visual C/C++ tool chain. + + Note that binaries created with MSVC have a distribution constraint: They + depend on a closed-source library ('msvcr90.dll' for MSVC 9.0, + 'vcruntime140.dll' for MSVC 14.0, and so on) which is not normally part of + a Windows installation. + You cannot distribute 'vcruntime*.dll' with the binaries - this would be a + violation of the GPL and of the Microsoft EULA. + You can distribute the binaries without including 'vcruntime*.dll'. Users + who don't have this library on their system will require to pull some files + (api-ms-win*.dll) through the Windows Update mechanism, see + https://support.microsoft.com/en-us/kb/2999226 . + + This recipe requires MS Visual C/C++ 9.0 or newer. + You don't need the Visual Studio IDE, just the C/C++ tool chain. + As of 2016, you can install the MS Visual C/C++ 14.0 tool chain from + http://landinghub.visualstudio.com/visual-cpp-build-tools (it's the file + visualcppbuildtools_full.exe). + + This recipe requires also a Cygwin environment (with 'bash', the common POSIX + commands, and 'make') as a build environment. Building with 'nmake' is not + supported. + For this, you need to install + * Cygwin (from https://cygwin.com/), + * some packages available from the Cygwin package installer: + make + + You also need the scripts 'ar-lib' and 'compile' from + https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/ar-lib;hb=HEAD + https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;f=lib/compile;hb=HEAD + respectively. + They may also be included in this package, in directory 'build-aux/'. + Save them; the instructions below assume that you stored them in $HOME/msvc/. + Make them executable: + chmod a+x ar-lib compile + + Start a bash (from Cygwin). + + Make sure that the MSVC tools ("cl" etc.) are found in PATH and the + environment variables INCLUDE and LIB are set appropriately. + In a typical MSVC 9.0 installation, it can be achieved by running + C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat + In a typical MSVC 14.0 installation on Windows 10, it can be achieved + - for creating 32-bit binaries: through the following bash commands: + + # Set environment variables for using MSVC 14, + # for creating native 32-bit Windows executables. + + # Windows C library headers and libraries. + WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt' + WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\' + INCLUDE="${WindowsCrtIncludeDir};$INCLUDE" + LIB="${WindowsCrtLibDir}x86;$LIB" + + # Windows API headers and libraries. + WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\' + WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\' + INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE" + LIB="${WindowsSdkLibDir}x86;$LIB" + + # Visual C++ tools, headers and libraries. + VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0' + VCINSTALLDIR="${VSINSTALLDIR}"'\VC' + PATH=`cygpath -u "${VCINSTALLDIR}"`/bin:"$PATH" + INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}" + LIB="${VCINSTALLDIR}"'\lib;'"${LIB}" + + export INCLUDE LIB + + - for creating 64-bit binaries: through the following bash commands: + + # Set environment variables for using MSVC 14, + # for creating native 64-bit Windows executables. + + # Windows C library headers and libraries. + WindowsCrtIncludeDir='C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt' + WindowsCrtLibDir='C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\' + INCLUDE="${WindowsCrtIncludeDir};$INCLUDE" + LIB="${WindowsCrtLibDir}x64;$LIB" + + # Windows API headers and libraries. + WindowsSdkIncludeDir='C:\Program Files (x86)\Windows Kits\8.1\Include\' + WindowsSdkLibDir='C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\' + INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;$INCLUDE" + LIB="${WindowsSdkLibDir}x64;$LIB" + + # Visual C++ tools, headers and libraries. + VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0' + VCINSTALLDIR="${VSINSTALLDIR}"'\VC' + PATH=`cygpath -u "${VCINSTALLDIR}"`/bin/amd64:"$PATH" + INCLUDE="${VCINSTALLDIR}"'\include;'"${INCLUDE}" + LIB="${VCINSTALLDIR}"'\lib\amd64;'"${LIB}" + + export INCLUDE LIB + + Building 32-bit binaries with MSVC is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/msvc32/bin:$PATH + export PATH + + win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0 + win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0 + win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0 + win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0 + + ./configure --host=i686-w64-mingw32 --prefix=/usr/local/msvc32 \ + CC="$HOME/msvc/compile cl -nologo" \ + CFLAGS="-MD" \ + CXX="$HOME/msvc/compile cl -nologo" \ + CXXFLAGS="-MD" \ + CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc32/include" \ + LDFLAGS="-L/usr/local/msvc32/lib" \ + LD="link" \ + NM="dumpbin -symbols" \ + STRIP=":" \ + AR="$HOME/msvc/ar-lib lib" \ + RANLIB=":" + make + make check + + Building 64-bit binaries with MSVC is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/msvc64/bin:$PATH + export PATH + + win32_target=_WIN32_WINNT_WINXP # for MSVC 9.0 + win32_target=_WIN32_WINNT_VISTA # possibly for MSVC >= 10.0 + win32_target=_WIN32_WINNT_WIN7 # possibly for MSVC >= 10.0 + win32_target=_WIN32_WINNT_WIN8 # possibly for MSVC >= 10.0 + + ./configure --host=x86_64-w64-mingw32 --prefix=/usr/local/msvc64 \ + CC="$HOME/msvc/compile cl -nologo" \ + CFLAGS="-MD" \ + CXX="$HOME/msvc/compile cl -nologo" \ + CXXFLAGS="-MD" \ + CPPFLAGS="-D_WIN32_WINNT=$win32_target -I/usr/local/msvc64/include" \ + LDFLAGS="-L/usr/local/msvc64/lib" \ + LD="link" \ + NM="dumpbin -symbols" \ + STRIP=":" \ + AR="$HOME/msvc/ar-lib lib" \ + RANLIB=":" + make + make check + + Installation: + + make install + +=============================================================================== +3) Binaries for the Cygwin environment. + + The generic instructions in the INSTALL file apply. But here are more + specific ones. + + You need to install + * Cygwin (from https://cygwin.com/), + * some packages available from the Cygwin package installer: + make + * the Cygwin [cross-]compilation tools package, available from + the Cygwin package installer (setup-x86_64.exe): + - for creating 32-bit binaries: packages + cygwin32-gcc-core, + cygwin32 + - for creating 64-bit binaries: packages + gcc-core + + Building 32-bit binaries for Cygwin must be done in a directory *outside* + the Cygwin /home and /usr hierarchies. It is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/cygwin32/bin:/usr/i686-pc-cygwin/sys-root/usr/bin:$PATH + export PATH + ./configure --host=i686-pc-cygwin --prefix=/usr/local/cygwin32 \ + CC=i686-pc-cygwin-gcc \ + CPPFLAGS="-I/usr/local/cygwin32/include -Wall" \ + LDFLAGS="-L/usr/local/cygwin32/lib" + make + make check + + Building 64-bit binaries for Cygwin is achieved through the following + preparation, configure, and build commands: + + PATH=/usr/local/cygwin64/bin:$PATH + export PATH + ./configure --host=x86_64-pc-cygwin --prefix=/usr/local/cygwin64 \ + CC=x86_64-pc-cygwin-gcc \ + CPPFLAGS="-I/usr/local/cygwin64/include -Wall" \ + LDFLAGS="-L/usr/local/cygwin64/lib" + make + make check + + Installation: + + make install + +=============================================================================== diff --git a/3rdPartner/libiconv/Makefile.devel b/3rdPartner/libiconv/Makefile.devel new file mode 100644 index 0000000..3102ad2 --- /dev/null +++ b/3rdPartner/libiconv/Makefile.devel @@ -0,0 +1,255 @@ +# -*- makefile -*- +# This is the developer's makefile, not the user's makefile. +# Don't use it unless you know exactly what you do! + +SHELL = /bin/sh +MAKE = make +AUTOCONF = autoconf +AUTOHEADER = autoheader +AUTOMAKE = automake-1.16 +ACLOCAL = aclocal-1.16 +GPERF = gperf +CC = gcc -Wall +CFLAGS = -O +MAN2HTML = groff -mandoc -Thtml +CP = cp +RM = rm -f + + +all : srclib/Makefile.gnulib srclib/Makefile.in \ + configures config.h.in \ + include/iconv.h.build.in \ + lib/aliases.h lib/aliases_sysaix.h lib/aliases_syshpux.h lib/aliases_sysosf1.h lib/aliases_syssolaris.h \ + lib/aliases_aix.h lib/aliases_aix_sysaix.h \ + lib/aliases_osf1.h lib/aliases_osf1_sysosf1.h \ + lib/aliases_dos.h \ + lib/aliases_zos.h \ + lib/aliases_extra.h \ + lib/flags.h lib/translit.h \ + man/iconv.1.html man/iconv.3.html man/iconv_close.3.html man/iconv_open.3.html man/iconvctl.3.html man/iconv_open_into.3.html \ + force + cd libcharset && $(MAKE) -f Makefile.devel all + + +# Before making a new release: +# - check that the encoding lists in README and man/iconv_open.3 are up to date, +# - check that the files in libcharset/lib/ are in sync with the gnulib module +# 'localcharset', +# - increment the version number in +# configure.ac +# include/iconv.h.in +# README +# - update the version info in lib/Makefile.in, +# - $ ./autogen.sh +# Making a new release: +# - $ ./configure CPPFLAGS=-Wall; make; make check +# - $ make dist + + +GNULIB_MODULES = \ + binary-io \ + error \ + gettext \ + gettext-h \ + lib-symbol-visibility \ + mbstate \ + progname \ + relocatable-prog \ + safe-read \ + sigpipe \ + stdbool \ + stdio \ + stdlib \ + strerror \ + unistd \ + uniwidth/width \ + unlocked-io \ + xalloc \ + libiconv-misc + +srclib/Makefile.gnulib : + if test -n "$$GNULIB_TOOL"; then \ + $$GNULIB_TOOL --copy-file m4/codeset.m4 srcm4/codeset.m4 || exit $$?; \ + $$GNULIB_TOOL --lib=libicrt --source-base=srclib --m4-base=srcm4 --makefile-name=Makefile.gnulib --no-libtool --local-dir=gnulib-local --no-vc-files \ + --import $(GNULIB_MODULES); \ + fi + +gnulib-imported-files : force + if test -n "$$GNULIB_TOOL"; then \ + for file in config.guess config.sub; do \ + $$GNULIB_TOOL --copy-file build-aux/$$file || exit $$?; \ + chmod a+x build-aux/$$file || exit $$?; \ + done; \ + $$GNULIB_TOOL --copy-file tests/qemu.h || exit $$?; \ + fi + +srclib/Makefile.in : srclib/Makefile.am srclib/Makefile.gnulib aclocal.m4 +# Make sure we get new versions of files brought in by automake. + (cd build-aux && rm -f depcomp install-sh mdate-sh missing test-driver) + $(AUTOMAKE) --gnits --add-missing --copy srclib/Makefile && rm -rf autom4te.cache + + +CONFIGURES = configure +CONFIGURES_IN = configure.ac + +aclocal.m4 : $(CONFIGURES_IN) srclib/Makefile.gnulib $(wildcard m4/*.m4) $(wildcard srcm4/*.m4) + $(ACLOCAL) -I m4 -I srcm4 --output=$@ && touch $@ && rm -rf autom4te.cache + +configures : $(CONFIGURES) + +AUTOCONF_FILES = aclocal.m4 $(wildcard m4/*.m4) $(wildcard srcm4/*.m4) + +configure : configure.ac $(AUTOCONF_FILES) + $(AUTOCONF) && rm -rf autom4te.cache + +check-configures : $(CONFIGURES) + set -e; for f in $(CONFIGURES); do bash -x -n $$f; done + +config.h.in : configure.ac $(AUTOCONF_FILES) + $(AUTOHEADER) && rm -rf autom4te.cache + touch $@ + + +include/iconv.h.build.in : include/iconv.h.in include/export.h + sed -e 's/extern \([^"]\)/extern LIBICONV_DLL_EXPORTED \1/' \ + -e '/_LIBICONV_VERSION/r include/export.h' \ + < $< > $@ + + +lib/aliases.h lib/canonical.h lib/canonical_local.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c + $(CC) $(CFLAGS) lib/genaliases.c -o genaliases + ./genaliases lib/aliases.gperf canonical.sh canonical_local.sh + $(RM) genaliases + $(GPERF) -m 10 lib/aliases.gperf > tmp.h + sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases.h + sh canonical.sh > lib/canonical.h + sh canonical_local.sh > lib/canonical_local.h + $(RM) tmp.h canonical.sh canonical_local.sh + +lib/aliases_sysaix.h lib/canonical_sysaix.h lib/canonical_local_sysaix.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c + $(CC) $(CFLAGS) -DUSE_AIX_ALIASES lib/genaliases.c -o genaliases + ./genaliases lib/aliases_sysaix.gperf canonical.sh canonical_local.sh + $(RM) genaliases + $(GPERF) -m 10 lib/aliases_sysaix.gperf > tmp.h + sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_sysaix.h + sh canonical.sh > lib/canonical_sysaix.h + sh canonical_local.sh > lib/canonical_local_sysaix.h + $(RM) tmp.h canonical.sh canonical_local.sh + +lib/aliases_syshpux.h lib/canonical_syshpux.h lib/canonical_local_syshpux.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c + $(CC) $(CFLAGS) -DUSE_HPUX_ALIASES lib/genaliases.c -o genaliases + ./genaliases lib/aliases_syshpux.gperf canonical.sh canonical_local.sh + $(RM) genaliases + $(GPERF) -m 10 lib/aliases_syshpux.gperf > tmp.h + sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_syshpux.h + sh canonical.sh > lib/canonical_syshpux.h + sh canonical_local.sh > lib/canonical_local_syshpux.h + $(RM) tmp.h canonical.sh canonical_local.sh + +lib/aliases_sysosf1.h lib/canonical_sysosf1.h lib/canonical_local_sysosf1.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c + $(CC) $(CFLAGS) -DUSE_OSF1_ALIASES lib/genaliases.c -o genaliases + ./genaliases lib/aliases_sysosf1.gperf canonical.sh canonical_local.sh + $(RM) genaliases + $(GPERF) -m 10 lib/aliases_sysosf1.gperf > tmp.h + sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_sysosf1.h + sh canonical.sh > lib/canonical_sysosf1.h + sh canonical_local.sh > lib/canonical_local_sysosf1.h + $(RM) tmp.h canonical.sh canonical_local.sh + +lib/aliases_syssolaris.h lib/canonical_syssolaris.h lib/canonical_local_syssolaris.h : lib/encodings.def lib/encodings_local.def lib/genaliases.c + $(CC) $(CFLAGS) -DUSE_SOLARIS_ALIASES lib/genaliases.c -o genaliases + ./genaliases lib/aliases_syssolaris.gperf canonical.sh canonical_local.sh + $(RM) genaliases + $(GPERF) -m 10 lib/aliases_syssolaris.gperf > tmp.h + sed -e 's/^\(const struct alias \)/static \1/' < tmp.h > lib/aliases_syssolaris.h + sh canonical.sh > lib/canonical_syssolaris.h + sh canonical_local.sh > lib/canonical_local_syssolaris.h + $(RM) tmp.h canonical.sh canonical_local.sh + +lib/aliases_aix.h lib/canonical_aix.h : lib/encodings_aix.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_AIX lib/genaliases2.c -o genaliases + ./genaliases aix lib/aliases_aix.h lib/canonical_aix.h + $(RM) genaliases + +lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h : lib/encodings_aix.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_AIX -DUSE_AIX_ALIASES lib/genaliases2.c -o genaliases + ./genaliases aix lib/aliases_aix_sysaix.h lib/canonical_aix_sysaix.h + $(RM) genaliases + +lib/aliases_osf1.h lib/canonical_osf1.h : lib/encodings_osf1.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_OSF1 lib/genaliases2.c -o genaliases + ./genaliases osf1 lib/aliases_osf1.h lib/canonical_osf1.h + $(RM) genaliases + +lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h : lib/encodings_osf1.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_OSF1 -DUSE_OSF1_ALIASES lib/genaliases2.c -o genaliases + ./genaliases osf1 lib/aliases_osf1_sysosf1.h lib/canonical_osf1_sysosf1.h + $(RM) genaliases + +lib/aliases_dos.h lib/canonical_dos.h : lib/encodings_dos.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_DOS lib/genaliases2.c -o genaliases + ./genaliases dos lib/aliases_dos.h lib/canonical_dos.h + $(RM) genaliases + +lib/aliases_zos.h lib/canonical_zos.h : lib/encodings_zos.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_ZOS lib/genaliases2.c -o genaliases + ./genaliases zos lib/aliases_zos.h lib/canonical_zos.h + $(RM) genaliases + +lib/aliases_extra.h lib/canonical_extra.h : lib/encodings_extra.def lib/genaliases2.c + $(CC) $(CFLAGS) -DUSE_EXTRA lib/genaliases2.c -o genaliases + ./genaliases extra lib/aliases_extra.h lib/canonical_extra.h + $(RM) genaliases + + +lib/flags.h : lib/encodings.def lib/encodings_aix.def lib/encodings_osf1.def lib/encodings_dos.def lib/encodings_zos.def lib/encodings_extra.def lib/converters.h lib/genflags.c + $(CC) $(CFLAGS) lib/genflags.c -o genflags + ./genflags > lib/flags.h + $(RM) genflags + + +lib/translit.h : lib/translit.def lib/gentranslit.c + $(CC) $(CFLAGS) lib/gentranslit.c -o gentranslit + ./gentranslit < lib/translit.def > lib/translit.h + $(RM) gentranslit + + +man/%.html : man/% + $(MAN2HTML) $< > $@-t + grep -v ' + + + + + + + +ICONV + + + + +

ICONV

+ +NAME
+SYNOPSIS
+DESCRIPTION
+EXAMPLES
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

iconv − +character set conversion

+ +

SYNOPSIS + +

+ + +

iconv +[OPTION...] [−f encoding] +[−t encoding] [inputfile ...] +
+iconv −l

+ +

DESCRIPTION + +

+ + +

The +iconv program converts text from one encoding to +another encoding. More precisely, it converts from +the encoding given for the −f option to +the encoding given for the −t option. Either of +these encodings defaults to the encoding of the current +locale. All the inputfiles are read and converted in +turn; if no inputfile is given, the standard input is +used. The converted text is printed to standard output.

+ +

The encodings +permitted are system dependent. For the libiconv +implementation, they are listed in the iconv_open(3) manual +page.

+ +

Options +controlling the input and output format:
+−f
encoding, +−−from−code=encoding

+ +

Specifies the encoding of the +input.

+ +

−t +encoding, +−−to−code=encoding

+ +

Specifies the encoding of the +output.

+ +

Options +controlling conversion problems:

+ + + + + + + +
+ + +

−c

+ + +

When this option is given, characters that cannot be +converted are silently discarded, instead of leading to a +conversion error.

+ + +

−−unicode−subst=formatstring

+ +

When this option is given, +Unicode characters that cannot be represented in the target +encoding are replaced with a placeholder string that is +constructed from the given formatstring, applied to +the Unicode code point. The formatstring must be a +format string in the same format as for the printf +command or the printf() function, taking either no +argument or exactly one unsigned integer argument.

+ + +

−−byte−subst=formatstring

+ +

When this option is given, +bytes in the input that are not valid in the source encoding +are replaced with a placeholder string that is constructed +from the given formatstring, applied to the +byte’s value. The formatstring must be a format +string in the same format as for the printf command +or the printf() function, taking either no argument +or exactly one unsigned integer argument.

+ + +

−−widechar−subst=formatstring

+ +

When this option is given, wide +characters in the input that are not valid in the source +encoding are replaced with a placeholder string that is +constructed from the given formatstring, applied to +the byte’s value. The formatstring must be a +format string in the same format as for the printf +command or the printf() function, taking either no +argument or exactly one unsigned integer argument.

+ +

Options +controlling error output:
+−s
, −−silent

+ +

When this option is given, +error messages about invalid or unconvertible characters are +omitted, but the actual converted text is unaffected.

+ +

The iconv +−l or iconv −−list command +lists the names of the supported encodings, in a system +dependent format. For the libiconv implementation, the names +are printed in upper case, separated by whitespace, and +alias names of an encoding are listed on the same line as +the encoding itself.

+ +

EXAMPLES + +

+ + +

iconv +−f ISO−8859−1 −t UTF−8

+ +

converts input from the old +West-European encoding ISO−8859−1 to +Unicode.

+ +

iconv +−f KOI8−R +−−byte−subst="<0x%x>"
+ +−−unicode−subst="<U+%04X>"

+ +

converts input from the old +Russian encoding KOI8−R to the locale encoding, +substituting an angle bracket notation with hexadecimal +numbers for invalid bytes and for valid but unconvertible +characters.

+ +

iconv +−−list

+ +

lists the supported +encodings.

+ +

CONFORMING TO + +

+ + +

POSIX:2001

+ +

SEE ALSO + +

+ + + +

iconv_open(3), +locale(7)

+
+ + diff --git a/3rdPartner/libiconv/man/iconv.3 b/3rdPartner/libiconv/man/iconv.3 new file mode 100644 index 0000000..f01e24c --- /dev/null +++ b/3rdPartner/libiconv/man/iconv.3 @@ -0,0 +1,92 @@ +.\" Copyright (c) Free Software Foundation, Inc. +.\" +.\" This is free documentation; 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 3 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" GNU glibc-2 source code and manual +.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html +.\" +.TH ICONV 3 "September 7, 2008" "GNU" "Linux Programmer's Manual" +.SH NAME +iconv \- perform character set conversion +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "size_t iconv (iconv_t " cd , +.BI " const char* * " inbuf ", size_t * "inbytesleft , +.BI " char* * " outbuf ", size_t * "outbytesleft ); +.fi +.SH DESCRIPTION +The argument \fIcd\fP must be a conversion descriptor created using the +function \fBiconv_open\fP. +.PP +The main case is when \fIinbuf\fP is not NULL and \fI*inbuf\fP is not NULL. +In this case, the \fBiconv\fP function converts the multibyte sequence +starting at \fI*inbuf\fP to a multibyte sequence starting at \fI*outbuf\fP. +At most \fI*inbytesleft\fP bytes, starting at \fI*inbuf\fP, will be read. +At most \fI*outbytesleft\fP bytes, starting at \fI*outbuf\fP, will be written. +.PP +The \fBiconv\fP function converts one multibyte character at a time, and for +each character conversion it increments \fI*inbuf\fP and decrements +\fI*inbytesleft\fP by the number of converted input bytes, it increments +\fI*outbuf\fP and decrements \fI*outbytesleft\fP by the number of converted +output bytes, and it updates the conversion state contained in \fIcd\fP. +If the character encoding of the input is stateful, the \fBiconv\fP function +can also convert a sequence of input bytes to an update of the conversion state +without producing any output bytes; such input is called a \fIshift sequence\fP. +The conversion can stop for four reasons: +.PP +1. An invalid multibyte sequence is encountered in the input. In this case +it sets \fBerrno\fP to \fBEILSEQ\fP and returns (size_t)(\-1). \fI*inbuf\fP +is left pointing to the beginning of the invalid multibyte sequence. +.PP +2. The input byte sequence has been entirely converted, i.e. \fI*inbytesleft\fP +has gone down to 0. In this case \fBiconv\fP returns the number of +non-reversible conversions performed during this call. +.PP +3. An incomplete multibyte sequence is encountered in the input, and the +input byte sequence terminates after it. In this case it sets \fBerrno\fP to +\fBEINVAL\fP and returns (size_t)(\-1). \fI*inbuf\fP is left pointing to the +beginning of the incomplete multibyte sequence. +.PP +4. The output buffer has no more room for the next converted character. In +this case it sets \fBerrno\fP to \fBE2BIG\fP and returns (size_t)(\-1). +.PP +A different case is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, but +\fIoutbuf\fP is not NULL and \fI*outbuf\fP is not NULL. In this case, the +\fBiconv\fP function attempts to set \fIcd\fP's conversion state to the +initial state and store a corresponding shift sequence at \fI*outbuf\fP. +At most \fI*outbytesleft\fP bytes, starting at \fI*outbuf\fP, will be written. +If the output buffer has no more room for this reset sequence, it sets +\fBerrno\fP to \fBE2BIG\fP and returns (size_t)(\-1). Otherwise it increments +\fI*outbuf\fP and decrements \fI*outbytesleft\fP by the number of bytes +written. +.PP +A third case is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, and +\fIoutbuf\fP is NULL or \fI*outbuf\fP is NULL. In this case, the \fBiconv\fP +function sets \fIcd\fP's conversion state to the initial state. +.SH "RETURN VALUE" +The \fBiconv\fP function returns the number of characters converted in a +non-reversible way during this call; reversible conversions are not counted. +In case of error, it sets \fBerrno\fP and returns (size_t)(\-1). +.SH ERRORS +The following errors can occur, among others: +.TP +.B E2BIG +There is not sufficient room at \fI*outbuf\fP. +.TP +.B EILSEQ +An invalid multibyte sequence has been encountered in the input. +.TP +.B EINVAL +An incomplete multibyte sequence has been encountered in the input. +.SH "CONFORMING TO" +POSIX:2001 +.SH "SEE ALSO" +.BR iconv_open (3), +.BR iconvctl (3) +.BR iconv_close (3) diff --git a/3rdPartner/libiconv/man/iconv.3.html b/3rdPartner/libiconv/man/iconv.3.html new file mode 100644 index 0000000..8f146da --- /dev/null +++ b/3rdPartner/libiconv/man/iconv.3.html @@ -0,0 +1,206 @@ + + + + + + + + +ICONV + + + + +

ICONV

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

iconv − +perform character set conversion

+ +

SYNOPSIS + +

+ + +

#include +<iconv.h>

+ +

size_t iconv +(iconv_t cd,
+const char* *
inbuf, size_t * +inbytesleft,
+char* *
outbuf, size_t * +outbytesleft);

+ +

DESCRIPTION + +

+ + +

The argument +cd must be a conversion descriptor created using the +function iconv_open.

+ +

The main case +is when inbuf is not NULL and *inbuf is not +NULL. In this case, the iconv function converts the +multibyte sequence starting at *inbuf to a multibyte +sequence starting at *outbuf. At most +*inbytesleft bytes, starting at *inbuf, will +be read. At most *outbytesleft bytes, starting at +*outbuf, will be written.

+ +

The +iconv function converts one multibyte character at a +time, and for each character conversion it increments +*inbuf and decrements *inbytesleft by the +number of converted input bytes, it increments +*outbuf and decrements *outbytesleft by the +number of converted output bytes, and it updates the +conversion state contained in cd. If the character +encoding of the input is stateful, the iconv function +can also convert a sequence of input bytes to an update of +the conversion state without producing any output bytes; +such input is called a shift sequence. The conversion +can stop for four reasons:

+ +

1. An invalid +multibyte sequence is encountered in the input. In this case +it sets errno to EILSEQ and returns +(size_t)(−1). *inbuf is left pointing to the +beginning of the invalid multibyte sequence.

+ +

2. The input +byte sequence has been entirely converted, i.e. +*inbytesleft has gone down to 0. In this case +iconv returns the number of non-reversible +conversions performed during this call.

+ +

3. An +incomplete multibyte sequence is encountered in the input, +and the input byte sequence terminates after it. In this +case it sets errno to EINVAL and returns +(size_t)(−1). *inbuf is left pointing to the +beginning of the incomplete multibyte sequence.

+ +

4. The output +buffer has no more room for the next converted character. In +this case it sets errno to E2BIG and returns +(size_t)(−1).

+ +

A different +case is when inbuf is NULL or *inbuf is NULL, +but outbuf is not NULL and *outbuf is not +NULL. In this case, the iconv function attempts to +set cd’s conversion state to the initial state +and store a corresponding shift sequence at *outbuf. +At most *outbytesleft bytes, starting at +*outbuf, will be written. If the output buffer has no +more room for this reset sequence, it sets errno to +E2BIG and returns (size_t)(−1). Otherwise it +increments *outbuf and decrements +*outbytesleft by the number of bytes written.

+ +

A third case is +when inbuf is NULL or *inbuf is NULL, and +outbuf is NULL or *outbuf is NULL. In this +case, the iconv function sets cd’s +conversion state to the initial state.

+ +

RETURN VALUE + +

+ + +

The +iconv function returns the number of characters +converted in a non-reversible way during this call; +reversible conversions are not counted. In case of error, it +sets errno and returns (size_t)(−1).

+ +

ERRORS + +

+ + +

The following +errors can occur, among others:

+ + + + + + + + + + + + + + + + + +
+ + +

E2BIG

+ + +

There is not sufficient room at *outbuf.

+ + +

EILSEQ

+ + +

An invalid multibyte sequence has been encountered in +the input.

+ + +

EINVAL

+ + +

An incomplete multibyte sequence has been encountered in +the input.

+ +

CONFORMING TO + +

+ + +

POSIX:2001

+ +

SEE ALSO + +

+ + + +

iconv_open(3), +iconvctl(3) iconv_close(3)

+
+ + diff --git a/3rdPartner/libiconv/man/iconv_close.3 b/3rdPartner/libiconv/man/iconv_close.3 new file mode 100644 index 0000000..4905f0f --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_close.3 @@ -0,0 +1,31 @@ +.\" Copyright (c) Free Software Foundation, Inc. +.\" +.\" This is free documentation; 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 3 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" GNU glibc-2 source code and manual +.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html +.\" +.TH ICONV_CLOSE 3 "March 31, 2007" "GNU" "Linux Programmer's Manual" +.SH NAME +iconv_close \- deallocate descriptor for character set conversion +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "int iconv_close (iconv_t " cd ); +.fi +.SH DESCRIPTION +The \fBiconv_close\fP function deallocates a conversion descriptor \fIcd\fP +previously allocated using \fBiconv_open\fP. +.SH "RETURN VALUE" +When successful, the \fBiconv_close\fP function returns 0. In case of error, +it sets \fBerrno\fP and returns \-1. +.SH "CONFORMING TO" +POSIX:2001 +.SH "SEE ALSO" +.BR iconv_open (3) +.BR iconv (3) diff --git a/3rdPartner/libiconv/man/iconv_close.3.html b/3rdPartner/libiconv/man/iconv_close.3.html new file mode 100644 index 0000000..b31c8f1 --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_close.3.html @@ -0,0 +1,89 @@ + + + + + + + + +ICONV_CLOSE + + + + +

ICONV_CLOSE

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

iconv_close +− deallocate descriptor for character set +conversion

+ +

SYNOPSIS + +

+ + +

#include +<iconv.h>

+ +

int +iconv_close (iconv_t cd);

+ +

DESCRIPTION + +

+ + +

The +iconv_close function deallocates a conversion +descriptor cd previously allocated using +iconv_open.

+ +

RETURN VALUE + +

+ + +

When +successful, the iconv_close function returns 0. In +case of error, it sets errno and returns +−1.

+ +

CONFORMING TO + +

+ + +

POSIX:2001

+ +

SEE ALSO + +

+ + + +

iconv_open(3) +iconv(3)

+
+ + diff --git a/3rdPartner/libiconv/man/iconv_open.3 b/3rdPartner/libiconv/man/iconv_open.3 new file mode 100644 index 0000000..fb6316d --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_open.3 @@ -0,0 +1,254 @@ +.\" Copyright (c) Free Software Foundation, Inc. +.\" +.\" This is free documentation; 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 3 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" GNU glibc-2 source code and manual +.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html +.\" +.TH ICONV_OPEN 3 "January 23, 2022" "GNU" "Linux Programmer's Manual" +.SH NAME +iconv_open \- allocate descriptor for character set conversion +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "iconv_t iconv_open (const char* " tocode ", const char* " fromcode ); +.fi +.SH DESCRIPTION +The \fBiconv_open\fP function allocates a conversion descriptor suitable +for converting byte sequences from character encoding \fIfromcode\fP to +character encoding \fItocode\fP. +.PP +The values permitted for \fIfromcode\fP and \fItocode\fP and the supported +combinations are system dependent. For the libiconv library, the following +encodings are supported, in all combinations. +.TP +European languages +.nf +.fi +ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16}, +KOI8\-R, KOI8\-U, KOI8\-RU, +CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, +Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, +Mac{Cyrillic,Ukraine,Greek,Turkish}, +Macintosh +.TP +Semitic languages +.nf +.fi +ISO\-8859\-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} +.TP +Japanese +.nf +.fi +EUC\-JP, SHIFT_JIS, CP932, ISO\-2022\-JP, ISO\-2022\-JP\-2, ISO\-2022\-JP\-1, +ISO-2022\-JP\-MS +.TP +Chinese +.nf +.fi +EUC\-CN, HZ, GBK, CP936, GB18030, EUC\-TW, BIG5, CP950, BIG5\-HKSCS, +BIG5\-HKSCS:2004, BIG5\-HKSCS:2001, BIG5\-HKSCS:1999, ISO\-2022\-CN, +ISO\-2022\-CN\-EXT +.TP +Korean +.nf +.fi +EUC\-KR, CP949, ISO\-2022\-KR, JOHAB +.TP +Armenian +.nf +.fi +ARMSCII\-8 +.TP +Georgian +.nf +.fi +Georgian\-Academy, Georgian\-PS +.TP +Tajik +.nf +.fi +KOI8\-T +.TP +Kazakh +.nf +.fi +PT154, RK1048 +.TP +Thai +.nf +.fi +TIS\-620, CP874, MacThai +.TP +Laotian +.nf +.fi +MuleLao\-1, CP1133 +.TP +Vietnamese +.nf +.fi +VISCII, TCVN, CP1258 +.TP +Platform specifics +.nf +.fi +HP\-ROMAN8, NEXTSTEP +.TP +Full Unicode +.nf +.fi +UTF\-8 +.nf +.fi +UCS\-2, UCS\-2BE, UCS\-2LE +.nf +.fi +UCS\-4, UCS\-4BE, UCS\-4LE +.nf +.fi +UTF\-16, UTF\-16BE, UTF\-16LE +.nf +.fi +UTF\-32, UTF\-32BE, UTF\-32LE +.nf +.fi +UTF\-7 +.nf +.fi +C99, JAVA +.TP +Full Unicode, in terms of \fBuint16_t\fP or \fBuint32_t\fP +(with machine dependent endianness and alignment) +.nf +.fi +UCS\-2\-INTERNAL, UCS\-4\-INTERNAL +.TP +Locale dependent, in terms of \fBchar\fP or \fBwchar_t\fP +(with machine dependent endianness and alignment, and with semantics +depending on the OS and the current LC_CTYPE locale facet) +.nf +.fi +char, wchar_t +.PP +When configured with the option \fB\-\-enable\-extra\-encodings\fP, it also +provides support for a few extra encodings: +.TP +European languages +.nf +CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125} +.fi +.TP +Semitic languages +.nf +.fi +CP864 +.TP +Japanese +.nf +.fi +EUC\-JISX0213, Shift_JISX0213, ISO\-2022\-JP\-3 +.TP +Chinese +.nf +.fi +BIG5\-2003 (experimental) +.TP +Turkmen +.nf +.fi +TDS565 +.TP +Platform specifics +.nf +.fi +ATARIST, RISCOS\-LATIN1 +.PP +.TP +EBCDIC compatible (not ASCII compatible, very rarely used) +.nf +.fi +European languages: +.nf +.fi + IBM-{037,273,277,278,280,282,284,285,297,423,500,870,871,875,880}, + IBM-{905,924,1025,1026,1047,1112,1122,1123,1140,1141,1142,1143}, + IBM-{1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157,1158}, + IBM-{1165,1166,4971} +.nf +.fi +Semitic languages: +.nf +.fi + IBM-{424,425,12712,16804} +.nf +.fi +Persian: +.nf +.fi + IBM-1097 +.nf +.fi +Thai: +.nf +.fi + IBM-{838,1160} +.nf +.fi +Laotian: +.nf +.fi + IBM-1132 +.nf +.fi +Vietnamese: +.nf +.fi + IBM-{1130,1164} +.nf +.fi +Indic languages: +.nf +.fi + IBM-1137 +.PP +The empty encoding name "" is equivalent to "char": it denotes the +locale dependent character encoding. +.PP +When the string "//TRANSLIT" is appended to \fItocode\fP, transliteration +is activated. This means that when a character cannot be represented in the +target character set, it can be approximated through one or several characters +that look similar to the original character. +.PP +When the string "//IGNORE" is appended to \fItocode\fP, characters that +cannot be represented in the target character set will be silently discarded. +.PP +The resulting conversion descriptor can be used with \fBiconv\fP any number +of times. It remains valid until deallocated using \fBiconv_close\fP. +.PP +A conversion descriptor contains a conversion state. After creation using +\fBiconv_open\fP, the state is in the initial state. Using \fBiconv\fP +modifies the descriptor's conversion state. (This implies that a conversion +descriptor can not be used in multiple threads simultaneously.) To bring the +state back to the initial state, use \fBiconv\fP with NULL as \fIinbuf\fP +argument. +.SH "RETURN VALUE" +The \fBiconv_open\fP function returns a freshly allocated conversion +descriptor. In case of error, it sets \fBerrno\fP and returns (iconv_t)(\-1). +.SH ERRORS +The following error can occur, among others: +.TP +.B EINVAL +The conversion from \fIfromcode\fP to \fItocode\fP is not supported by the +implementation. +.SH "CONFORMING TO" +POSIX:2001 +.SH "SEE ALSO" +.BR iconv (3) +.BR iconvctl (3) +.BR iconv_close (3) diff --git a/3rdPartner/libiconv/man/iconv_open.3.html b/3rdPartner/libiconv/man/iconv_open.3.html new file mode 100644 index 0000000..c9482a3 --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_open.3.html @@ -0,0 +1,345 @@ + + + + + + + + +ICONV_OPEN + + + + +

ICONV_OPEN

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

iconv_open +− allocate descriptor for character set conversion

+ +

SYNOPSIS + +

+ + +

#include +<iconv.h>

+ +

iconv_t +iconv_open (const char* tocode, const +char* fromcode);

+ +

DESCRIPTION + +

+ + +

The +iconv_open function allocates a conversion descriptor +suitable for converting byte sequences from character +encoding fromcode to character encoding +tocode.

+ +

The values +permitted for fromcode and tocode and the +supported combinations are system dependent. For the +libiconv library, the following encodings are supported, in +all combinations.
+European languages

+ +

ASCII, +ISO−8859−{1,2,3,4,5,7,9,10,13,14,15,16}, +KOI8−R, KOI8−U, KOI8−RU, +CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, +Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, +Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh

+ +

Semitic languages

+ +

ISO−8859−{6,8}, +CP{1255,1256}, CP862, Mac{Hebrew,Arabic}

+ +

Japanese

+ +

EUC−JP, SHIFT_JIS, CP932, +ISO−2022−JP, ISO−2022−JP−2, +ISO−2022−JP−1, +ISO-2022−JP−MS

+ +

Chinese

+ +

EUC−CN, HZ, GBK, CP936, +GB18030, EUC−TW, BIG5, CP950, BIG5−HKSCS, +BIG5−HKSCS:2004, BIG5−HKSCS:2001, +BIG5−HKSCS:1999, ISO−2022−CN, +ISO−2022−CN−EXT

+ + + + + + + + +
+ + +

Korean

+ + +

EUC−KR, CP949, ISO−2022−KR, JOHAB

+
+ +

Armenian

+ +

ARMSCII−8

+ +

Georgian

+ +

Georgian−Academy, +Georgian−PS

+ + + + + + + + + + + + + + + + + + + + +
+ + +

Tajik

+ + +

KOI8−T

+
+ + +

Kazakh

+ + +

PT154, RK1048

+
+ + +

Thai

+ + +

TIS−620, CP874, MacThai

+
+ +

Laotian

+ +

MuleLao−1, CP1133

+ +

Vietnamese

+ +

VISCII, TCVN, CP1258

+ +

Platform specifics

+ +

HP−ROMAN8, NEXTSTEP

+ +

Full Unicode

+ +

UTF−8
+UCS−2, UCS−2BE, UCS−2LE
+UCS−4, UCS−4BE, UCS−4LE
+UTF−16, UTF−16BE, UTF−16LE
+UTF−32, UTF−32BE, UTF−32LE
+UTF−7
+C99, JAVA

+ +

Full Unicode, in terms of +uint16_t or uint32_t

+ +

(with machine dependent +endianness and alignment)
+UCS−2−INTERNAL, UCS−4−INTERNAL

+ +

Locale dependent, in terms of +char or wchar_t

+ +

(with machine dependent +endianness and alignment, and with semantics depending on +the OS and the current LC_CTYPE locale facet)
+char, wchar_t

+ +

When configured +with the option +−−enable−extra−encodings, it +also provides support for a few extra encodings:
+European languages

+ + +

CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}

+ +

Semitic languages

+ +

CP864

+ +

Japanese

+ +

EUC−JISX0213, +Shift_JISX0213, ISO−2022−JP−3

+ +

Chinese

+ +

BIG5−2003 +(experimental)

+ +

Turkmen

+ +

TDS565

+ +

Platform specifics

+ +

ATARIST, +RISCOS−LATIN1

+ +

EBCDIC compatible (not ASCII +compatible, very rarely used)

+ +

European languages:
+ +IBM-{037,273,277,278,280,282,284,285,297,423,500,870,871,875,880}, +
+ +IBM-{905,924,1025,1026,1047,1112,1122,1123,1140,1141,1142,1143}, +
+ +IBM-{1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157,1158}, +
+IBM-{1165,1166,4971}
+Semitic languages:
+IBM-{424,425,12712,16804}
+Persian:
+IBM-1097
+Thai:
+IBM-{838,1160}
+Laotian:
+IBM-1132
+Vietnamese:
+IBM-{1130,1164}
+Indic languages:
+IBM-1137

+ +

The empty +encoding name "" is equivalent to +"char": it denotes the locale dependent character +encoding.

+ +

When the string +"//TRANSLIT" is appended to tocode, +transliteration is activated. This means that when a +character cannot be represented in the target character set, +it can be approximated through one or several characters +that look similar to the original character.

+ +

When the string +"//IGNORE" is appended to tocode, +characters that cannot be represented in the target +character set will be silently discarded.

+ +

The resulting +conversion descriptor can be used with iconv any +number of times. It remains valid until deallocated using +iconv_close.

+ +

A conversion +descriptor contains a conversion state. After creation using +iconv_open, the state is in the initial state. Using +iconv modifies the descriptor’s conversion +state. (This implies that a conversion descriptor can not be +used in multiple threads simultaneously.) To bring the state +back to the initial state, use iconv with NULL as +inbuf argument.

+ +

RETURN VALUE + +

+ + +

The +iconv_open function returns a freshly allocated +conversion descriptor. In case of error, it sets +errno and returns (iconv_t)(−1).

+ +

ERRORS + +

+ + +

The following +error can occur, among others:

+ + + + + + + +
+ + +

EINVAL

+ + +

The conversion from fromcode to tocode is +not supported by the implementation.

+ +

CONFORMING TO + +

+ + +

POSIX:2001

+ +

SEE ALSO + +

+ + + +

iconv(3) +iconvctl(3) iconv_close(3)

+
+ + diff --git a/3rdPartner/libiconv/man/iconv_open_into.3 b/3rdPartner/libiconv/man/iconv_open_into.3 new file mode 100644 index 0000000..9cb28cb --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_open_into.3 @@ -0,0 +1,47 @@ +.\" Copyright (c) Free Software Foundation, Inc. +.\" +.\" This is free documentation; 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 3 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" iconv.h +.\" +.TH ICONV_OPEN_INTO 3 "September 21, 2008" "GNU" "Linux Programmer's Manual" +.SH NAME +iconv_open_into \- initialize descriptor for character set conversion +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "int iconv_open_into (const char* " tocode ", const char* " fromcode "," +.BI " iconv_allocation_t* " resultp ); +.fi +.SH DESCRIPTION +The \fBiconv_open_into\fP function initializes a conversion descriptor suitable +for converting byte sequences from character encoding \fIfromcode\fP to +character encoding \fItocode\fP. The conversion descriptor is stored in the +memory pointed to by \fIresultp\fP. +.PP +The values permitted for \fIfromcode\fP and \fItocode\fP are the same as for +the function \fBiconv_open\fP. +.PP +After a successful return from this function, \fIresultp\fP can be be used +as an \fBiconv_t\fP object with the \fBiconv\fP function. +.SH "RETURN VALUE" +The \fBiconv_open_into\fP function fills \fB*\fP\fIresultp\fP and returns 0 if +it succeeds. In case of error, it sets \fBerrno\fP and returns \-1. +.SH ERRORS +The following error can occur, among others: +.TP +.B EINVAL +The conversion from \fIfromcode\fP to \fItocode\fP is not supported by the +implementation. +.SH "CONFORMING TO" +This function is implemented only in GNU libiconv and not in other \fBiconv\fP +implementations. It is not backed by a standard. You can test for its presence +through \fB(_LIBICONV_VERSION >= 0x010D)\fP. +.SH "SEE ALSO" +.BR iconv_open (3) +.BR iconv (3) diff --git a/3rdPartner/libiconv/man/iconv_open_into.3.html b/3rdPartner/libiconv/man/iconv_open_into.3.html new file mode 100644 index 0000000..192f6c3 --- /dev/null +++ b/3rdPartner/libiconv/man/iconv_open_into.3.html @@ -0,0 +1,132 @@ + + + + + + + + +ICONV_OPEN_INTO + + + + +

ICONV_OPEN_INTO

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + + +

iconv_open_into +− initialize descriptor for character set +conversion

+ +

SYNOPSIS + +

+ + +

#include +<iconv.h>

+ +

int +iconv_open_into (const char* tocode, const +char* fromcode,
+iconv_allocation_t*
resultp);

+ +

DESCRIPTION + +

+ + +

The +iconv_open_into function initializes a conversion +descriptor suitable for converting byte sequences from +character encoding fromcode to character encoding +tocode. The conversion descriptor is stored in the +memory pointed to by resultp.

+ +

The values +permitted for fromcode and tocode are the same +as for the function iconv_open.

+ +

After a +successful return from this function, resultp can be +be used as an iconv_t object with the iconv +function.

+ +

RETURN VALUE + +

+ + +

The +iconv_open_into function fills *resultp +and returns 0 if it succeeds. In case of error, it sets +errno and returns −1.

+ +

ERRORS + +

+ + +

The following +error can occur, among others:

+ + + + + + + +
+ + +

EINVAL

+ + +

The conversion from fromcode to tocode is +not supported by the implementation.

+ +

CONFORMING TO + +

+ + +

This function +is implemented only in GNU libiconv and not in other +iconv implementations. It is not backed by a +standard. You can test for its presence through +(_LIBICONV_VERSION >= 0x010D).

+ +

SEE ALSO + +

+ + + +

iconv_open(3) +iconv(3)

+
+ + diff --git a/3rdPartner/libiconv/man/iconvctl.3 b/3rdPartner/libiconv/man/iconvctl.3 new file mode 100644 index 0000000..b460d87 --- /dev/null +++ b/3rdPartner/libiconv/man/iconvctl.3 @@ -0,0 +1,67 @@ +.\" Copyright (c) Perry Rapp +.\" Copyright (c) Free Software Foundation, Inc. +.\" +.\" This is free documentation; 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 3 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" iconv.h +.\" +.TH ICONVCTL 3 "March 31, 2007" "GNU" "Linux Programmer's Manual" +.SH NAME +iconvctl \- control iconv behavior +.SH SYNOPSIS +.nf +.B #include +.sp +.BI "int iconvctl (iconv_t " cd " , int " request ", void * " argument ); +.fi +.SH DESCRIPTION +The argument \fIcd\fP must be a conversion descriptor created using the +function \fBiconv_open\fP. +.PP +\fBiconvctl\fP queries or adjusts the behavior of the \fBiconv\fP function, +when invoked with the specified conversion descriptor, depending on the +request value. +.SH "REQUEST VALUES" +The following are permissible values for the \fIrequest\fP parameter. +.TP +.B ICONV_TRIVIALP +\fIargument\fP should be an \fBint *\fP which will receive 1 if the +conversion is trivial, or 0 otherwise. +.TP +.B ICONV_GET_TRANSLITERATE +\fIargument\fP should be an \fBint *\fP which will receive 1 if +transliteration is enabled in the conversion, or 0 otherwise. +.TP +.B ICONV_SET_TRANSLITERATE +\fIargument\fP should be a \fBconst int *\fP, pointing to an \fBint\fP value. +A non-zero value is used to enable transliteration in the conversion. A zero +value disables it. +.TP +.B ICONV_GET_DISCARD_ILSEQ +\fIargument\fP should be an \fBint *\fP which will receive 1 if +"illegal sequence discard and continue" is enabled in the conversion, +or 0 otherwise. +.TP +.B ICONV_SET_DISCARD_ILSEQ +\fIargument\fP should be a \fBconst int *\fP, pointing to an \fBint\fP value. +A non-zero value is used to enable "illegal sequence discard and continue" +in the conversion. A zero value disables it. +.SH "RETURN VALUE" +The \fBiconvctl\fP function returns 0 if it succeeds. In case of error, it sets +\fBerrno\fP and returns \-1. +.SH ERRORS +The following errors can occur, among others: +.TP +.B EINVAL +The request is invalid. +.SH "CONFORMING TO" +This function is implemented only in GNU libiconv and not in other \fBiconv\fP +implementations. It is not backed by a standard. You can test for its presence +through \fB(_LIBICONV_VERSION >= 0x0108)\fP. +.SH "SEE ALSO" +.BR iconv_open (3) +.BR iconv (3) diff --git a/3rdPartner/libiconv/man/iconvctl.3.html b/3rdPartner/libiconv/man/iconvctl.3.html new file mode 100644 index 0000000..16d85c1 --- /dev/null +++ b/3rdPartner/libiconv/man/iconvctl.3.html @@ -0,0 +1,170 @@ + + + + + + + + +ICONVCTL + + + + +

ICONVCTL

+ +NAME
+SYNOPSIS
+DESCRIPTION
+REQUEST VALUES
+RETURN VALUE
+ERRORS
+CONFORMING TO
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

iconvctl +− control iconv behavior

+ +

SYNOPSIS + +

+ + +

#include +<iconv.h>

+ +

int iconvctl +(iconv_t cd , int request, void +* argument);

+ +

DESCRIPTION + +

+ + +

The argument +cd must be a conversion descriptor created using the +function iconv_open.

+ + +

iconvctl +queries or adjusts the behavior of the iconv +function, when invoked with the specified conversion +descriptor, depending on the request value.

+ +

REQUEST VALUES + +

+ + +

The following +are permissible values for the request parameter. +
+ICONV_TRIVIALP

+ +

argument should be an +int * which will receive 1 if the conversion is +trivial, or 0 otherwise.

+ + +

ICONV_GET_TRANSLITERATE

+ +

argument should be an +int * which will receive 1 if transliteration is +enabled in the conversion, or 0 otherwise.

+ + +

ICONV_SET_TRANSLITERATE

+ +

argument should be a +const int *, pointing to an int value. A +non-zero value is used to enable transliteration in the +conversion. A zero value disables it.

+ + +

ICONV_GET_DISCARD_ILSEQ

+ +

argument should be an +int * which will receive 1 if "illegal sequence +discard and continue" is enabled in the conversion, or +0 otherwise.

+ + +

ICONV_SET_DISCARD_ILSEQ

+ +

argument should be a +const int *, pointing to an int value. A +non-zero value is used to enable "illegal sequence +discard and continue" in the conversion. A zero value +disables it.

+ +

RETURN VALUE + +

+ + +

The +iconvctl function returns 0 if it succeeds. In case +of error, it sets errno and returns −1.

+ +

ERRORS + +

+ + +

The following +errors can occur, among others:

+ + + + + + + + +
+ + +

EINVAL

+ + +

The request is invalid.

+
+ +

CONFORMING TO + +

+ + +

This function +is implemented only in GNU libiconv and not in other +iconv implementations. It is not backed by a +standard. You can test for its presence through +(_LIBICONV_VERSION >= 0x0108).

+ +

SEE ALSO + +

+ + + +

iconv_open(3) +iconv(3)

+
+ + diff --git a/3rdPartner/libiconv/os2/iconv.def b/3rdPartner/libiconv/os2/iconv.def new file mode 100644 index 0000000..ede921d --- /dev/null +++ b/3rdPartner/libiconv/os2/iconv.def @@ -0,0 +1,8 @@ +; iconv.def (emx+gcc) +LIBRARY ICONV +DESCRIPTION 'OS/2 port of libiconv ' +EXPORTS + libiconv_open @1 + libiconv @2 + libiconv_close @3 + libiconvctl @4 diff --git a/3rdPartner/libiconv/po/ChangeLog b/3rdPartner/libiconv/po/ChangeLog new file mode 100644 index 0000000..d157f45 --- /dev/null +++ b/3rdPartner/libiconv/po/ChangeLog @@ -0,0 +1,422 @@ +2022-05-15 Bruno Haible + + Use the newest gettext release. + * Makefile.in.in: Upgrade to gettext-0.21, keeping the change + 2019-01-27 Bruno Haible + Accommodate a shell that is not in /bin/sh. + * Makefile.in.in (SHELL): Use the value found by configure. + +2022-05-15 Bruno Haible + + Update translations. + * *.po: Update from TP, with 'msgmerge --previous'. + * LINGUAS: Add ko. + +2019-07-02 Bruno Haible + + Use the newest gettext release. + * Makefile.in.in: Upgrade to gettext-0.20.1, keeping the change + 2019-01-27 Bruno Haible + Accommodate a shell that is not in /bin/sh. + * Makefile.in.in (SHELL): Use the value found by configure. + * Rules-quot: Upgrade to gettext-0.20.1. + * en@boldquot.header: Upgrade to gettext-0.20.1. + * en@quot.header: Upgrade to gettext-0.20.1. + * insert-header.sin: Upgrade to gettext-0.20.1. + * remove-potcdate.sin: Upgrade to gettext-0.20.1. + +2019-04-26 Bruno Haible + + * cs.po: Update from Petr Pisar . + * da.po: Update from Keld Simonsen . + * hu.po: Update from Balázs Úr . + * ru.po: Update from Yuri Kozlov . + * sv.po: Update from Anders Jonsson . + * zh_CN.po: Update from Boyuan Yang <073plan@gmail.com>. + * zh_TW.po: Update from pan93412 . + * lt.po: New file, from Rimas Kudelis . + * LINGUAS: Add lt. + +2019-01-27 Bruno Haible + + Accommodate a shell that is not in /bin/sh. + * Makefile.in.in (SHELL): Use the value found by configure. + +2017-04-16 Bruno Haible + + * uk.po: Fix header syntax (bug in old version of KDE Lokalize). + +2017-01-30 Bruno Haible + + * bg.po: Update from Roumen Petrov . + * cs.po: Update from Petr Pisar . + * de.po: Update from Mario Blättermann . + * eo.po: Update from Felipe Castro . + * et.po: Update from Toomas Soome . + * fr.po: Update from Stéphane Aulery . + * ga.po: Update from Kevin Scannell . + * it.po: Update from Milo Casagrande . + * ja.po: Update from Takeshi Hamasaki . + * nl.po: Update from Benno Schulenberg . + * pl.po: Update from Jakub Bogusz . + * pt_BR.po: Update from Rafael Fontenelle . + * sk.po: Update from Marcel Telka . + * sr.po: Update from Мирослав Николић . + * uk.po: Update from Yuri Chornoivan . + * vi.po: Update from Trần Ngọc Quân . + +2016-10-01 Bruno Haible + + * Makefile.in.in: Upgrade to gettext-0.19.8.1. + * Makevars: Upgrade to gettext-0.19.8.1, keeping modifications. + * Rules-quot: Upgrade to gettext-0.19.8.1. + +2016-10-01 Bruno Haible + + * es.po: Update from Santiago Vila Doncel . + * gl.po: Update from Leandro Regueiro . + * hu.po: Update from Balázs Úr . + * pt_BR.po: Update from Rafael Ferreira . + * zh_TW.po: Update from Wei-Lun Chao . + * zh_CN.po: Update Language-Team address. + +2012-12-07 Bruno Haible + + * gl.po: Update from Leandro Regueiro . + +2012-06-03 Bruno Haible + + * hr.po: Update from Tomislav Krznar . + +2012-02-19 Bruno Haible + + * sr.po: Update from Мирослав Николић . + +2011-06-04 Bruno Haible + + * uk.po: Update from Yuri Chornoivan . + +2010-08-24 Bruno Haible + + * ja.po: Update from Yasuaki Taniguchi . + +2010-08-04 Bruno Haible + + * et.po: Update from Toomas Soome . + +2010-06-04 Bruno Haible + + * Makevars (MSGMERGE_OPTIONS): Define to empty. + +2010-06-04 gettextize + + * Makefile.in.in: Upgrade to gettext-0.18.1. + * Rules-quot: Upgrade to gettext-0.18.1. + +2010-03-08 Bruno Haible + + * ja.po: New file, from Yasuaki Taniguchi . + * LINGUAS: Add ja. + +2009-12-06 Bruno Haible + + * da.po: Update from Keld Simonsen . + +2009-11-28 Bruno Haible + + * da.po: Update from Keld Simonsen . + +2009-07-21 Bruno Haible + + * cs.po: New file, from Petr Pisar . + * LINGUAS: Add cs. + +2009-03-24 Bruno Haible + + * bg.po: New file, from Roumen Petrov . + * LINGUAS: Add bg. + +2009-01-24 Bruno Haible + + * id.po: Update from Arif E. Nugroho . + * it.po: Update from Milo Casagrande . + +2008-11-11 Bruno Haible + + * zh_CN.po: Update from Ji ZhengYu . + +2008-05-18 Bruno Haible + + * zh_CN.po: Update from Ji ZhengYu . + +2008-04-27 Bruno Haible + + * sl.po: Update from + Primož Peterlin . + +2008-03-30 Bruno Haible + + * fr.po: Update from François-Xavier Coudert . + +2008-02-18 Bruno Haible + + * ga.po: Update from Kevin Scannell . + +2008-02-09 Bruno Haible + + * sv.po: Update from Daniel Nylander . + +2008-01-31 Bruno Haible + + * sk.po: Update from Marcel Telka . + +2008-01-08 Bruno Haible + + * de.po: Update from Bruno Haible . + * eo.po: Update from Edmund Grimley Evans . + * fi.po: Update from Jorma Karvonen . + * nl.po: Update from Tim Van Holder . + * pl.po: Update from Jakub Bogusz . + * vi.po: Update from Clytie Siddall . + +2007-11-30 Bruno Haible + + * pl.po: Update from Jakub Bogusz . + +2007-11-11 gettextize + + * Makefile.in.in: Upgrade to gettext-0.17. + * Rules-quot: Upgrade to gettext-0.17. + +2007-10-24 Bruno Haible + + * Makefile.in.in: Update from gettext-0.16.2. + +2007-10-24 Bruno Haible + + * fi.po: Update from Jorma Karvonen . + +2007-10-15 Bruno Haible + + * sl.po: Update from + Primož Peterlin . + +2007-09-15 Bruno Haible + + * eo.po: Update from Edmund Grimley Evans . + * ga.po: Update from Kevin Scannell . + * nl.po: Update from Tim Van Holder . + * sv.po: Update from Daniel Nylander . + * vi.po: Update from Clytie Siddall . + * wa.po: Update from Pablo Saratxaga . + +2007-05-30 Bruno Haible + + * sv.po: Update from Daniel Nylander . + +2006-10-02 Bruno Haible + + * sl.po: Update from + Primož Peterlin . + +2006-09-28 Bruno Haible + + * et.po: Update from Toomas Soome . + * sr.po: Update from Aleksandar Jelenak . + +2006-07-19 Bruno Haible + + * de.po: Update. + * ga.po: Update from Kevin Patrick Scannell . + +2006-07-03 Bruno Haible + + * eo.po: Update from Edmund Grimley Evans . + +2006-06-23 Bruno Haible + + * vi.po: Update from Clytie Siddall . + +2006-05-16 Bruno Haible + + * Makefile.in.in: Update from GNU gettext. + * Makevars (XGETTEXT_OPTIONS): Add more flags. + (USE_MSGCTXT): New variable. + +2005-12-29 Bruno Haible + + * zh_TW.po: New file, from Wei-Lun Chao . + * LINGUAS: Add zh_TW. + +2005-02-11 Bruno Haible + + * rm.po: New file, from Florian Verdet . + * vi.po: New file, from Clytie Siddall . + * LINGUAS: Add rm, vi. + +2005-01-10 Bruno Haible + + * el.po: New file, from Balaskas Euaggelos . + * LINGUAS: Add el. + +2005-01-06 Bruno Haible + + * sq.po: New file, from Laurent Dhima . + * fr.po: Update from Michel Robitaille . + * wa.po: Update from Pablo Saratxaga . + * LINGUAS: Add sq. + +2004-03-21 Bruno Haible + + * af.po: New file, from Petri Jooste . + * ca.po: Update from Ivan Vilata i Balaguer . + * LINGUAS: Add af. + +2003-11-13 Bruno Haible + + * sr.po: New file, from Aleksandar Jelenak . + * LINGUAS: Add sr. + +2003-10-14 Bruno Haible + + * pl.po: New file, from Arkadiusz Lipiec . + * LINGUAS: Add pl. + +2003-08-22 Bruno Haible + + * wa.po: New file, from Pablo Saratxaga . + * LINGUAS: Add wa. + +2003-08-05 Bruno Haible + + * nl.po: Update from Elros Cyriatan . + +2003-07-31 Bruno Haible + + * nl.po: New file, from Taco Witte . + * LINGUAS: Add nl. + +2003-06-11 Bruno Haible + + * et.po: New file, from Toomas Soome . + * ro.po: Update from Eugen Hoanca . + * ru.po: Update from Dmitry S. Sivachenko . + * zh_CN.po: New file, from Wang Jian . + * LINGUAS: Add et and zh_CN. + +2003-05-07 Bruno Haible + + * ga.po: Update from Kevin Patrick Scannell . + +2003-05-06 Bruno Haible + + * ga.po: New file, from Kevin Patrick Scannell . + * LINGUAS: Add it. + +2003-04-22 Bruno Haible + + * ro.po: New file, from Eugen Hoanca . + * LINGUAS: Add it. + +2003-04-05 Bruno Haible + + * Makefile.msvc.sh (PREFIX): New variable. + (prefix): Use it. + (clean): Drop Unix specific removal. + +2003-04-09 Bruno Haible + + * Makevars (MSGID_BUGS_ADDRESS): New variable. + +2003-04-09 gettextize + + * Makefile.in.in: Upgrade to gettext-0.12-pre3. + +2003-03-17 Bruno Haible + + Improved MSVC support. + * Makefile.msvc.sh: New file. + * Rules-msvc: New file. + +2003-02-10 Bruno Haible + + * uk.po: New file, from Volodymyr M. Lisivka . + * LINGUAS: Add it. + +2002-12-05 Bruno Haible + + * it.po: New file, from Marco Parrone . + * LINGUAS: Add it. + +2002-11-12 Bruno Haible + + * da.po: New file, from Keld Simonsen . + * LINGUAS: Add da. + +2002-10-29 Bruno Haible + + * id.po: New file, from Tedi Heriyanto . + * LINGUAS: Add id. + +2002-08-23 Bruno Haible + + * fi.po: New file, from Matti Koskimies . + * fr.po: New file, from Michel Robitaille . + * pt_BR.po: Update from + Alexandre Folle de Menezes . + * ru.po: New file, from Dmitry S. Sivachenko . + * sl.po: New file, from + Primož Peterlin . + * tr.po: New file, from Deniz Akkus Kanca . + * LINGUAS: Add fi, fr, ru, sl, tr. + +2002-06-20 Bruno Haible + + * es.po: New file, from Santiago Vila Doncel . + * LINGUAS: Add es. + +2002-06-14 Bruno Haible + + * hr.po: New file, from Denis Lackovic . + * LINGUAS: Add hr. + +2002-06-14 Bruno Haible + + * pt_BR.po: Update from + Alexandre Folle de Menezes . + +2002-06-11 Bruno Haible + + * sv.po: New file, from Christian Rose . + * LINGUAS: Add sv. + +2002-06-05 Bruno Haible + + * pt_BR.po: New file, from + Alexandre Folle de Menezes . + * LINGUAS: Add pt_BR. + +2002-06-03 Bruno Haible + + * gl.po: New file, from Jacobo Tarrio . + * LINGUAS: Add gl. + +2002-05-31 Bruno Haible + + * ca.po: New file, from Ivan Vilata i Balaguer . + * eo.po: New file, from Edmund Grimley Evans . + * hu.po: New file, from Emese Kovacs . + * sk.po: New file, from Marcel Telka . + * LINGUAS: Add ca, eo, hu, sk. + +2002-04-27 gettextize + + * Makefile.in.in: New file, from gettext-0.11.1. + * Rules-quot: New file, from gettext-0.11.1. + * boldquot.sed: New file, from gettext-0.11.1. + * en@boldquot.header: New file, from gettext-0.11.1. + * en@quot.header: New file, from gettext-0.11.1. + * insert-header.sin: New file, from gettext-0.11.1. + * quot.sed: New file, from gettext-0.11.1. + * remove-potcdate.sin: New file, from gettext-0.11.1. + diff --git a/3rdPartner/libiconv/po/LINGUAS b/3rdPartner/libiconv/po/LINGUAS new file mode 100644 index 0000000..9b226ab --- /dev/null +++ b/3rdPartner/libiconv/po/LINGUAS @@ -0,0 +1,2 @@ +# Set of available languages. +af bg ca cs da de el eo es et fi fr ga gl hr hu id it ja ko lt nl pl pt_BR rm ro ru sk sl sq sr sv tr uk vi wa zh_CN zh_TW diff --git a/3rdPartner/libiconv/po/Makefile.in.in b/3rdPartner/libiconv/po/Makefile.in.in new file mode 100644 index 0000000..c61ef7b --- /dev/null +++ b/3rdPartner/libiconv/po/Makefile.in.in @@ -0,0 +1,510 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-2000 Ulrich Drepper +# Copyright (C) 2000-2020 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# Origin: gettext-0.21 +GETTEXT_MACRO_VERSION = 0.20 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SED = @SED@ +SHELL = @SHELL@ +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +# When building gettext-tools, we prefer to use the built programs +# rather than installed programs. However, we can't do that when we +# are cross compiling. +CROSS_COMPILING = @CROSS_COMPILING@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot +POFILESDEPS_yes = $(POFILESDEPS_) +POFILESDEPS_no = +POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) + +DISTFILESDEPS_ = update-po +DISTFILESDEPS_yes = $(DISTFILESDEPS_) +DISTFILESDEPS_no = +DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) + +# Makevars gets inserted here. (Don't remove this line!) + +all: all-@USE_NLS@ + + +.SUFFIXES: +.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-yes: $(srcdir)/stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +CHECK_MACRO_VERSION = \ + test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + @$(CHECK_MACRO_VERSION) + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(POFILESDEPS) + @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +install-dvi install-ps install-pdf install-html: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f $(srcdir)/stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: $(srcdir)/stamp-po $(DISTFILES) + @dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \ + esac; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/3rdPartner/libiconv/po/Makevars b/3rdPartner/libiconv/po/Makevars new file mode 100644 index 0000000..28eedb6 --- /dev/null +++ b/3rdPartner/libiconv/po/Makevars @@ -0,0 +1,85 @@ +# Makefile variables for libiconv/po. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=error:3:c-format --flag=error_at_line:5:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = yes + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gnu-libiconv@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/3rdPartner/libiconv/po/POTFILES.in b/3rdPartner/libiconv/po/POTFILES.in new file mode 100644 index 0000000..f4ef5b4 --- /dev/null +++ b/3rdPartner/libiconv/po/POTFILES.in @@ -0,0 +1,4 @@ +# List of files which contain translatable strings. +# Copyright (C) 2002 Free Software Foundation, Inc. + +src/iconv.c diff --git a/3rdPartner/libiconv/po/Rules-quot b/3rdPartner/libiconv/po/Rules-quot new file mode 100644 index 0000000..18c024b --- /dev/null +++ b/3rdPartner/libiconv/po/Rules-quot @@ -0,0 +1,62 @@ +# Special Makefile rules for English message catalogs with quotation marks. +# +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# This file, Rules-quot, and its auxiliary files (listed under +# DISTFILES.common.extra1) are free software; the Free Software Foundation +# gives unlimited permission to use, copy, distribute, and modify them. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ + | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ + { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ + $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ + ;; \ + *) \ + $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ + ;; \ + esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ + ; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/3rdPartner/libiconv/po/af.gmo b/3rdPartner/libiconv/po/af.gmo new file mode 100644 index 0000000..f67da1a Binary files /dev/null and b/3rdPartner/libiconv/po/af.gmo differ diff --git a/3rdPartner/libiconv/po/af.po b/3rdPartner/libiconv/po/af.po new file mode 100644 index 0000000..ee4d04b --- /dev/null +++ b/3rdPartner/libiconv/po/af.po @@ -0,0 +1,362 @@ +# libiconv Afrikaans +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Petri Jooste , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.9.1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2004-03-08 13:42+0200\n" +"Last-Translator: Petri Jooste \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Gebruik so: iconv [-c] [-s] [-f vanaf-kode] [-t na-kode] [ler ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "of: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +#| msgid "or: iconv -l" +msgid "or: %s -l\n" +msgstr "of: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Geskryf deur %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +#| msgid "iconv: %s: cannot convert\n" +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: kan nie omskakeling doen nie\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +#| msgid "iconv: %s: incomplete character or shift sequence\n" +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: onvolledige karakter of skuifreeks\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +#| msgid "iconv: %s: I/O error\n" +msgid "%s: I/O error" +msgstr "iconv: %s: T/A-fout\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s unsupported\n" +msgid "conversion from %s unsupported" +msgstr "iconv: omskakeling van %s word nie ondersteun nie\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +#| msgid "iconv: conversion to %s unsupported\n" +msgid "conversion to %s unsupported" +msgstr "iconv: omskakeling na %s word nie ondersteun nie\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s to %s unsupported\n" +msgid "conversion from %s to %s unsupported" +msgstr "iconv: omskakeling van %s na %s word nie ondersteun nie\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +#| msgid "iconv: I/O error\n" +msgid "I/O error" +msgstr "iconv: T/A-fout\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Gebruik so: iconv [--binary] [-c] [-s] [-f vanaf-kode] [-t na-kode] " +#~ "[ler ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Hierdie is gratis programmatuur; kyk in die bronkode vir " +#~ "kopiervoorwaardes. Daar is GEEN\n" +#~ "waarborg nie; selfs nie vir VERKOOPBAARHEID of GESKIKTHEID VIR 'N " +#~ "SPESIFIEKE DOEL nie.\n" + +#, c-format +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/bg.gmo b/3rdPartner/libiconv/po/bg.gmo new file mode 100644 index 0000000..a7f5b10 Binary files /dev/null and b/3rdPartner/libiconv/po/bg.gmo differ diff --git a/3rdPartner/libiconv/po/bg.po b/3rdPartner/libiconv/po/bg.po new file mode 100644 index 0000000..4d0f22d --- /dev/null +++ b/3rdPartner/libiconv/po/bg.po @@ -0,0 +1,373 @@ +# Bulgarian translation of libiconv po-file. +# Copyright (C) 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Roumen Petrov , 2008, 2009, 2016, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 12:27+0200\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Употреба: iconv [-c] [-s] [-f от_кодиране] [-t към_кодиране] [файл ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "или: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "За повече сведения '%s --help'.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Употреба: %s [АРГУМЕНТИ...] [-f КОДИРАНЕ] [-t КОДИРАНЕ] [ВХОДЕН_ФАЙЛ...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "или: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Преобразува текст от едно кодиране към друго.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Аргументи задаващи входния и изходния формати:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f КОДИРАНЕ, --from-code=КОДИРАНЕ\n" +" кодиране на входните данни\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t КОДИРАНЕ, --to-code=КОДИРАНЕ\n" +" кодиране на изходните данни\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Аргументи управляващи проблеми при преобразуване:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c пренебрегване на непреобразуваеми знаци\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=ФОРМАТИРАЩ_НИЗ\n" +" заместител на непреобразуваеми знаци от Уникод\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=ФОРМАТИРАЩ_НИЗ\n" +" заместител на непреобразуваеми байтове\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=ФОРМАТИРАЩ_НИЗ\n" +" заместител на непреобразуваеми широки знаци\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Аргументи задаващи извеждането на грешки:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" +" -s, --silent подтискане на съобщенията за грешки при\n" +" преобразуване\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Извеждане на сведение:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list изброяване на поддържаните кодирания\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help показване на тази помощ и изход от програмата\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" +" --version извеждане на сведение за версията и изход от\n" +" програмата\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Подавайте доклади за грешки на <%s>\n" +"или с е-поща до <%s>, а за грешки в превода\n" +"докладвайте с писмо до .\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Разрешително GPLv3+: Версия 3 на GNU GPL или следваща <%s>\n" +"Това е свободен програмен продукт: свободни сте да го променяте и разпространя-\n" +"вате. Не се дават НИКАКВИ ГАРАНЦИИ до степента позволена от закона.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Автори: %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s аргумент: не е позволена директива за форматиране с променлива ширина." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s аргумент: не е позволена директива за форматиране с променлива точност." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s аргумент: не е позволена директива за форматиране с размер." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s аргумент: низът завършва по средата на директивата." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s аргумент: знакът '%c' не е правилен определител за преобразуване." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s аргумент: знакът, завършващ директивата за форматиране, не е правилен " +"определител за преобразуване." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s аргумент: форматиращият низ използва повече от един аргумент: %u аргумент." +msgstr[1] "" +"%s аргумент: форматиращият низ използва повече от един аргумент: %u " +"аргумента." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "заместителят за байт към Уникод не може да се преобразува: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"заместителят за Уникод не може да се преобразува към резултатното кодиране: " +"%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" +"заместителят за байт в Уникод не може да се преобразува в широк знак: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"заместителят за широк знак не може да се преобразува към резултатното " +"кодиране: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"заместителят за байт не може да се преобразува в резултатното кодиране: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: не може да се преобразува" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: непълен знак или изместваща последователност" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: входно/изходна грешка" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "не се поддържа преобразуване от %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "не се поддържа преобразуване към %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "не се поддържа преобразуване от %s към %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "опитайте с '%s -l', за да получите списък с поддържаните кодирания" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(стандартен вход)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "входно/изходна грешка" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Подавайте доклади за грешки в програмата на .\n" +#~ "Подавайте доклади за грешки в превода на .\n" diff --git a/3rdPartner/libiconv/po/boldquot.sed b/3rdPartner/libiconv/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/3rdPartner/libiconv/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/3rdPartner/libiconv/po/ca.gmo b/3rdPartner/libiconv/po/ca.gmo new file mode 100644 index 0000000..07077cf Binary files /dev/null and b/3rdPartner/libiconv/po/ca.gmo differ diff --git a/3rdPartner/libiconv/po/ca.po b/3rdPartner/libiconv/po/ca.po new file mode 100644 index 0000000..7bdf40f --- /dev/null +++ b/3rdPartner/libiconv/po/ca.po @@ -0,0 +1,362 @@ +# Catalan messages for GNU libiconv. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Ivan Vilata i Balaguer , 2002, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.9.1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2004-03-20 16:18+0100\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Forma d'ús: iconv [-c] [-s] [-f CODIF_ORIG] [-t CODIF_DEST] [FITXER ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "o: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +#| msgid "or: iconv -l" +msgid "or: %s -l\n" +msgstr "o: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Escrit per %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +#| msgid "iconv: %s: cannot convert\n" +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: no s'ha pogut convertir\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +#| msgid "iconv: %s: incomplete character or shift sequence\n" +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: hi ha un caràcter o seqüència de desplaçament incompleta\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +#| msgid "iconv: %s: I/O error\n" +msgid "%s: I/O error" +msgstr "iconv: %s: error d'E/S\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s unsupported\n" +msgid "conversion from %s unsupported" +msgstr "iconv: la conversió des de «%s» no és suportada\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +#| msgid "iconv: conversion to %s unsupported\n" +msgid "conversion to %s unsupported" +msgstr "iconv: la conversió fins a «%s» no és suportada\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s to %s unsupported\n" +msgid "conversion from %s to %s unsupported" +msgstr "iconv: la conversió des de «%s» fins a «%s» no és suportada\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(entrada estàndard)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +#| msgid "iconv: I/O error\n" +msgid "I/O error" +msgstr "iconv: error d'E/S\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Forma d'ús: iconv [--binary] [-c] [-s] [-f CODIF_ORIG] [-t CODIF_DEST]\n" +#~ " [FITXER ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Aquest és programari lliure; vegeu el codi font per les condicions de " +#~ "còpia.\n" +#~ "No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o ADEQUACIÓ PER UN\n" +#~ "PROPÒSIT PARTICULAR.\n" + +#, c-format +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/cs.gmo b/3rdPartner/libiconv/po/cs.gmo new file mode 100644 index 0000000..a6733f1 Binary files /dev/null and b/3rdPartner/libiconv/po/cs.gmo differ diff --git a/3rdPartner/libiconv/po/cs.po b/3rdPartner/libiconv/po/cs.po new file mode 100644 index 0000000..3864966 --- /dev/null +++ b/3rdPartner/libiconv/po/cs.po @@ -0,0 +1,379 @@ +# Czech translation for libiconv. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Petr Pisar , 2009, 2016, 2018, 2022. +# +# Založeno na doméně libc. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 22:29+01:00\n" +"Last-Translator: Petr Pisar \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Použití: iconv [-c] [-s] [-f VSTUP_KÓDOVÁNÍ] [-t VÝST_KÓDOVÁNÍ] [SOUBOR…]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "nebo: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Více informací získáte příkazem „%s --help“.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Použití: %s [PŘEPÍNAČE…] [-f KÓDOVÁNÍ] [-t KÓDOVÁNÍ] [VSTUPNÍ_SOUBOR…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "or: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konvertuje text z jednoho kódování do druhého.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Přepínače řídící vstupní a výstupní formát:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KÓDOVÁNÍ, --from-code=KÓDOVÁNÍ\n" +" kódování vstupu\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KÓDOVÁNÍ, --to-code=KÓDOVÁNÍ\n" +" kódování výstupu\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Přepínače řídící řešení potíží při převodu:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c zahodí nepřeveditelné znaky\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMÁTOVACÍ_ŘETĚZEC\n" +" nahrazení nepřeveditelných znaků Unicode\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=FORMÁTOVACÍ_ŘETĚZEC\n" +" nahrazení nepřeveditelných bajtů\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMÁTOVACÍ_ŘETĚZEC\n" +" nahrazení nepřeveditelných širokých znaků\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Přepínače řídící chybový výstup:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent potlačí chybová hlášení o potížích při převodu\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informativní výstup:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list vypíše seznam podporovaných kódování\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help zobrazí tuto nápovědu a skončí\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version zobrazí informace o verzi a skončí\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Chyby hlaste anglicky do systému pro sledování chyb na <%s>\n" +"nebo e-mailem na <%s>.\n" +"Chyby v překladu hlaste na " +"(česky).\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licence GPLv3+: GNU GPL verze 3 nebo novější <%s>\n" +"Toto je svobodné programové vybavení: můžete jej měnit a šířit.\n" +"Není poskytována ŽÁDNÁ ZÁRUKA, jak jen zákon dovoluje.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Autor: %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "Argument %s: Direktiva formátu s proměnnou šířkou zde není povolena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argument %s: Direktiva formátu s proměnnou přesností zde není povolena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "Argument %s: Direktiva formátu s velikostí zde není povolena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argument %s: Řetězec končí uprostřed direktivy." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "Argument %s: Znak „%c“ není platným vyhrazeným konverzním znakem." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argument %s: Znak, který zakončuje formátovací direktivu, není platným " +"vyhrazeným konverzním znakem." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argument %s: Formátovací řetězec potřebuje více než jeden argument: %u " +"argument." +msgstr[1] "" +"Argument %s: Formátovací řetězec potřebuje více než jeden argument: %u " +"argumenty." +msgstr[2] "" +"Argument %s: Formátovací řetězec potřebuje více než jeden argument: %u " +"argumentů." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nahrazení bajtu nelze převést do Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "nahrazení unicodu nelze převést do cílového kódování: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nahrazení bajtu nelze převést do řetězce širokých znaků: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "nahrazení širokého znaku nelze převést do cílového kódování: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "nahrazení bajtu nelze převést do cílového kódování: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: nelze převést" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: neúplný znak nebo posunovací posloupnost" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: chyba I/0" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "převod z %s není podporován" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "převod do %s není podporován" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "převod z %s do %s není podporován" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "seznam podporovaných kódování získáte příkazem „%s -l“" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standardní vstup)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +# Vzdálená V/V chyba +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Chyba vstupu/výstupu" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Chyby hlaste na (anglicky).\n" +#~ "Chyby v překladu hlaste na " +#~ "(česky).\n" + +#~ msgid "" +#~ " --unicode-subst=formatstring\n" +#~ " substitution for unconvertible Unicode " +#~ "characters\n" +#~ msgstr "" +#~ " --unicode-subst=FORMÁTOVACÍ_ŘETĚZEC\n" +#~ " nahrazení nepřeveditelných znaků Unicodu\n" diff --git a/3rdPartner/libiconv/po/da.gmo b/3rdPartner/libiconv/po/da.gmo new file mode 100644 index 0000000..6d4c01f Binary files /dev/null and b/3rdPartner/libiconv/po/da.gmo differ diff --git a/3rdPartner/libiconv/po/da.po b/3rdPartner/libiconv/po/da.po new file mode 100644 index 0000000..103271d --- /dev/null +++ b/3rdPartner/libiconv/po/da.po @@ -0,0 +1,365 @@ +# translation of libiconv-1.12.po to Danish +# Copyright (C) 2002, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Christian Rose , 2002. +# Daniel Nylander , 2006, 2007, 2008. +# Keld Simonsen , 2009, 2017. +msgid "" +msgstr "" +"Project-Id-Version: libiconv-1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2017-12-17 16:31+0100\n" +"Last-Translator: Keld Simonsen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Brug: iconv [-c] [-s] [-f fra-kode] [-t til-kode] [fil ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "eller: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Prv '%s --help' for mere information.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Brug: %s [FLAG...] [-f KODNING] [-t KODNING] [INPUTFIL...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "eller: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konverterer tekst fra n kodning til en anden kodning.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Flag som styrer formatet p inddata og uddata:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODNING, --from-code=KODNING\n" +" kodningen p inddata\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODNING, --to-code=KODNING\n" +" kodningen p uddata\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Flag som kontrollerer konverteringsproblemer:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c smid tegn vk som ikke kan konverteres\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATSTRENG\n" +" erstatning af UCS-tegn som ikke kan konverteres\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATSTRENG erstatning for ikke konverterbare byte\n" + +# Breda tegn? Finns det bedre ord? +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATSTRENG\n" +" erstatning for ikke konverterbare brede tegn\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Flag som kontrollerer fejludskrift:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent undertryk fejlmeddelelser om konverteringsproblemer\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informativt uddata:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list list de kodninger som understttes\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help vis denne hjlpetekst og afslut\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version udskriv versionsinformation og afslut\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licens GPLv3+: GNU GPL version 3 eller senere \n" +"Dette er frit programmel: du kan ndre og distribuere det.\n" +"Der gives INGEN GARANTI, s vidt lov tillader.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Skrevet af %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Argument %s: Et formatdirektiv med en variabel bredde tillades ikke her." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argument %s: Et formatdirektiv med en variabel prcision tillades ikke her." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "Argument %s: Et formatdirektiv med en strrelse tillades ikke her." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argument %s: Strengen stopper midt i et direktiv." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"Argument %s: Tegnet \"%c\" er ikke en gyldig konverteringsspecificering." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argument %s: Tegnet som afslutter formatdirektivet er ikke en gyldig " +"konverteringsspecificering." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argument %s: Formatstrengen forbruger mere end t argument: %u argument." +msgstr[1] "" +"Argument %s: Formatstrengen forbruger mere end t argument: %u argumenter." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "kan ikke konvertere byte-erstatning til UCS: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "kan ikke konvertere UCS-erstatning til mlkodning: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "kan ikke konvertere byte-erstatning til bred streng: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "kan ikke konvertere bredtegns-erstatning til mlkodning: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "kan ikke konvertere byte-erstatning til mlkodning: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: kan ikke konvertere" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: ufuldstndigt tegn eller skiftesekvens" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Ind/ud-fejl" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konvertering fra %s understttes ikke" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konvertering til %s understttes ikke" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konvertering fra %s til %s understttes ikke" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "prv \"%s -l\" for at f vist listen af understttede kodninger" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standard ind)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Ind/ud-fejl" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Meddel fejl til .\n" +#~ "Send synspunkter p oversttelsen til .\n" diff --git a/3rdPartner/libiconv/po/de.gmo b/3rdPartner/libiconv/po/de.gmo new file mode 100644 index 0000000..dd186a1 Binary files /dev/null and b/3rdPartner/libiconv/po/de.gmo differ diff --git a/3rdPartner/libiconv/po/de.po b/3rdPartner/libiconv/po/de.po new file mode 100644 index 0000000..2c7f739 --- /dev/null +++ b/3rdPartner/libiconv/po/de.po @@ -0,0 +1,384 @@ +# German translation of libiconv +# German messages for GNU libiconv. +# Copyright (C) 2002, 2006, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Bruno Haible , 2002, 2006, 2008. +# Mario Blättermann , 2016, 2022. +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 13:28+0100\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 21.12.2\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Aufruf: iconv [-c] [-s] [-f AUSGANGS-KODIERUNG] [-t ZIEL-KODIERUNG] [DATEI …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "oder: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "»%s --help« gibt weitere Informationen.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Aufruf: %s [OPTION...] [-f KODIERUNG] [-t KODIERUNG] [EINBABEDATEI …]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "oder: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Wandelt Text von einer Kodierung in eine andere Kodierung um.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Optionen für das Ein- und Ausgabeformat:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODIERUNG, --from-code=KODIERUNG\n" +" die Kodierung der Eingabe\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODIERUNG, --to-code=KODIERUNG\n" +" die Kodierung der Ausgabe\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Optionen für die Behandlung von Umwandlungsproblemen:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" +" -c Zeichen, die nicht umgewandelt werden können,\n" +" verwerfen\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATZEICHENKETTE\n" +" Ersatz für Unicode-Zeichen, die nicht umgewandelt\n" +" werden können\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=FORMATZEICHENKETTE\n" +" Ersatz für Bytes, die nicht umgewandelt werden\n" +" können\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATZEICHENKETTE\n" +" Ersatz für »wide«-Zeichen, die nicht umgewandelt\n" +" werden können\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Optionen für die Ausgabe von Fehlern:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" +" -s, --silent Fehlermeldungen über Probleme bei der Umwandlung\n" +" unterdrücken\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informative Ausgabe:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list die unterstützten Kodierungen anzeigen\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help diese Hilfe anzeigen und beenden\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version Versionsinformation anzeigen und beenden\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Melden Sie Fehler im Fehlererfassungssystem auf <%s>\n" +"oder per E-Mail an <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Lizenz: GPLv3+, d.h. GNU GPL ab Version 3 <%s>\n" +"Dieses Programm ist freie Software: Sie dürfen es ändern und weitergeben.\n" +"Es gibt KEINERLEI GARANTIE, so weit das Gesetz es erlaubt.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Geschrieben von %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"»%s«-Argument: Eine Formatierungsanweisung mit variabler Breite ist hier " +"nicht erlaubt." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"»%s«-Argument: Eine Formatierungsanweisung mit variabler Genauigkeit ist " +"hier nicht erlaubt." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"»%s«-Argument: Eine Formatierungsanweisung mit Größenangabe ist hier nicht " +"erlaubt." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "»%s«-Argument: Die Zeichenkette endet mitten in einer Anweisung." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "»%s«-Argument: Das Zeichen »%c« bezeichnet keine gültige Umwandlung." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"»%s«-Argument: Das Zeichen am Ende der Formatierungsanweisung bezeichnet " +"keine gültige Umwandlung." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"»%s«-Argument: Die Formatzeichenkette verbraucht mehr als ein Argument: %u " +"Argument." +msgstr[1] "" +"»%s«-Argument: Die Formatzeichenkette verbraucht mehr als ein Argument: %u " +"Argumente." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "Byte-Ersatz kann nicht in Unicode umgewandelt werden: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"Unicode-Zeichen-Ersatz kann nicht in die Zielkodierung umgewandelt werden: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" +"Byte-Ersatz kann nicht in eine »wide«-Zeichenkette umgewandelt werden: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"»wide«-Zeichen-Ersatz kann nicht in die Zielkodierung umgewandelt werden: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "Byte-Ersatz kann nicht in die Zielkodierung umgewandelt werden: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: Umwandeln nicht möglich." + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: unvollständiges Zeichen oder unvollständige Umschaltfolge" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Ein-/Ausgabefehler" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "Umwandlung ausgehend von %s ist nicht unterstützt." + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "Umwandlung nach %s ist nicht unterstützt." + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "Umwandlung von %s nach %s ist nicht unterstützt." + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" +"Versuchen Sie »%s -l«, um eine Liste aller unterstützten Kodierungen zu " +"erhalten." + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(Standard-Eingabe)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Ein-/Ausgabefehler" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Fehler bitte (auf Englisch, mit LC_ALL=C) an \n" +#~ "melden.\n" +#~ "Für die deutsche Übersetzung ist die Mailingliste\n" +#~ " zuständig.\n" diff --git a/3rdPartner/libiconv/po/el.gmo b/3rdPartner/libiconv/po/el.gmo new file mode 100644 index 0000000..f55c001 Binary files /dev/null and b/3rdPartner/libiconv/po/el.gmo differ diff --git a/3rdPartner/libiconv/po/el.po b/3rdPartner/libiconv/po/el.po new file mode 100644 index 0000000..d3e8f9b --- /dev/null +++ b/3rdPartner/libiconv/po/el.po @@ -0,0 +1,360 @@ +# Greek translation of libiconv. +# Copyright (C) 2005 Free Software Foundation, Inc. +# Balaskas Euaggelos , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.9.1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2004-12-25 22:15+0200\n" +"Last-Translator: Balaskas Euaggelos \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Χρήση: iconv [-c] [-s] [-f από_κώδικα] [-t tocode] [αρχείο...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "είτε: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +#| msgid "or: iconv -l" +msgid "or: %s -l\n" +msgstr "είτε: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Γράφτηκε από τον %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +#| msgid "iconv: %s: cannot convert\n" +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: δεν μπορεί να γίνει η μετατροπή\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +#| msgid "iconv: %s: incomplete character or shift sequence\n" +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: μη ολοκληρωμένος χαρακτήρας ή shift συνέχεια\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +#| msgid "iconv: %s: I/O error\n" +msgid "%s: I/O error" +msgstr "iconv: %s: I/O σφάλμα\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s unsupported\n" +msgid "conversion from %s unsupported" +msgstr "iconv: μετατροπή από %s μη υποστηριζόμενη\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +#| msgid "iconv: conversion to %s unsupported\n" +msgid "conversion to %s unsupported" +msgstr "iconv: μετατροπή σε %s μη υποστηριζόμενη\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s to %s unsupported\n" +msgid "conversion from %s to %s unsupported" +msgstr "iconv: μετατροπή από %s σε %s μη υποστηριζόμενη\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +#| msgid "iconv: I/O error\n" +msgid "I/O error" +msgstr "iconv: I/O σφάλμα\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Χρήση: iconv [--binary] [-c] [-s] [-f από_κώδικα] [-t tocode] [αρχείο...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Αυτό είναι ένα χωρίς χρέωση πρόγραμμα΄ δείτε τον κώδικα για αντιγραφή " +#~ "συνθηκών. Δεν υπάρχει ΚΑΜΙΑ\n" +#~ " εγγύηση' ούτε ακόμα για ΕΜΠΟΡΕΥΜΑΤΟΠΟΙΗΣΗ ή ΚΑΤΑΛΗΛΟΤΗΤΑ ΓΙΑ ΕΝΑΝ " +#~ "ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n" + +#, c-format +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/en@boldquot.header b/3rdPartner/libiconv/po/en@boldquot.header new file mode 100644 index 0000000..506ca9e --- /dev/null +++ b/3rdPartner/libiconv/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/3rdPartner/libiconv/po/en@quot.header b/3rdPartner/libiconv/po/en@quot.header new file mode 100644 index 0000000..6522f0c --- /dev/null +++ b/3rdPartner/libiconv/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/3rdPartner/libiconv/po/eo.gmo b/3rdPartner/libiconv/po/eo.gmo new file mode 100644 index 0000000..2d7cb29 Binary files /dev/null and b/3rdPartner/libiconv/po/eo.gmo differ diff --git a/3rdPartner/libiconv/po/eo.po b/3rdPartner/libiconv/po/eo.po new file mode 100644 index 0000000..eecabd5 --- /dev/null +++ b/3rdPartner/libiconv/po/eo.po @@ -0,0 +1,360 @@ +# Mesaĝoj por la biblioteko "libiconv". +# Copyright © 2002, 2006, 2007, 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Edmund GRIMLEY EVANS , 2002, 2006-2007. +# Felipe Castro , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2017-01-27 23:17-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Uzmaniero: iconv [-c] [-s] [-f fontkodo] [-t celkodo] [dosiero ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "aŭ: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Provu '%s --help' por pli da informoj.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Uzmaniero: %s [OPCIO...] [-f KODO] [-t KODO] [ENIGDOSIERO...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "aŭ: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konvertas tekston de unu kodo al alia kodo.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opcioj, kiuj regas la formon de enigo kaj eligo:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODO, --from-code=KODO\n" +" la kodo de la enigo\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODO, --to-code=KODO\n" +" la kodo de la eligo\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opcioj, kiuj regas konvertoproblemojn:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c forĵeti nekonverteblajn signojn\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATĈENO\n" +" substituado de nekonverteblaj unikodaj signoj\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATĈENO substituado de nekonverteblaj bitokoj\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATĈENO\n" +" substituado de nekonverteblaj larĝaj signoj\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opcioj, kiuj regas eligon de eraroj:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent subpremi eraromesaĝojn pri konvertoproblemoj\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informa eligo:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list listigi la konatajn kodojn\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help montri ĉi tiun helpon kaj eliri\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " -version eligi informon pri la versio kaj eliri\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Permeso GPLv3+: GNU-GPL versio 3 aŭ posta \n" +"Ĉi tio estas libera programo: vi rajtas ŝanĝi ĝin kaj pludoni kopiojn.\n" +"Estas NENIA GARANTIO, laŭ la grado leĝe permesata.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Verkita de %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s argumento: formodirektivo kun variabla larĝo ne estas permesata ĉi tie." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s argumento: formodirektivo kun variabla precizo ne estas permesata ĉi tie." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s argumento: formodirektivo kun grando ne estas permesata ĉi tie." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argumento: la signoĉeno finiĝas meze de direktivo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s argumento: la signo '%c' ne estas valida konvertospecifo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argumento: la signo, kiu finas la formatdirektivon ne estas valida " +"konvertospecifo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s argumento: la formatoĉeno konsumas pli ol unu argumenton: %u argumento." +msgstr[1] "" +"%s argumento: la formatoĉeno konsumas pli ol unu argumenton: %u argumentoj." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "ne povas konverti bitoksubstituon al Unikodo: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "ne povas konverti unikodan substituon al celkodo: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "ne povas konverti bitoksubstituon al larĝa signoĉeno: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "ne povas konverti larĝasignan substituon al celkodo: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "ne povas konverti bitoksubstituon al celkodo: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ne povas konverti" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: malkompleta signo aŭ reĝimŝanĝa kodo" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: leg/skrib-eraro" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konvertado de %s ne estas subtenata" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konvertado al %s ne estas subtenata" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konvertado de %s al %s ne estas subtenata" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "provu '%s -l' por ricevi liston de konataj kodoj" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(normala enigo)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "leg/skrib-eraro" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Raportu cimojn al .\n" diff --git a/3rdPartner/libiconv/po/es.gmo b/3rdPartner/libiconv/po/es.gmo new file mode 100644 index 0000000..08c11a4 Binary files /dev/null and b/3rdPartner/libiconv/po/es.gmo differ diff --git a/3rdPartner/libiconv/po/es.po b/3rdPartner/libiconv/po/es.po new file mode 100644 index 0000000..59ae469 --- /dev/null +++ b/3rdPartner/libiconv/po/es.po @@ -0,0 +1,390 @@ +# Mensajes en español para GNU libiconv. +# Copyright (C) 2002, 2014 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Santiago Vila Doncel , 2002, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2014-07-13 11:14+0200\n" +"Last-Translator: Santiago Vila Doncel \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Modo de empleo: iconv [-c] [-s] [-f desde] [-t hasta] [fichero ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "o bien: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Pruebe `%s --help' para más información.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Modo de empleo: %s [OPCIÓN...] [-f CODIFICACIÓN] [-t CODIFICACIÓN] [FICHEROENTRADA...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "o bien: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Convierte texto de una codificación a otra.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opciones para controlar el formato de entrada y de salida:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODIFICACIÓN, --from-code=CODIFICACIÓN\n" +" codificación de la entrada\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODIFICACIÓN, --to-code=CONDIFICACIÓN\n" +" codificación de la salida\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opciones para controlar los problemas de conversión:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c descarta los caracteres no convertibles\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=CADENADEFORMATO\n" +" sustitución para los caracteres Unicode no convertibles\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=CADENADEFORMATO sustitución para los bytes no convertibles\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=CADENADEFORMATO\n" +" sustitución para los caracteres anchos no convertibles\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opciones para controlar la salida de error:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent suprime los mensajes de error sobre problemas de conversión\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Salida informativa:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list lista las codificaciones admitidas\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help muestra esta ayuda y sale\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version muestra la versión y sale\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +# Esta cadena es para libiconv 1.14 +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"License GPLv3+: GPL de GNU versión 3 o posterior \n" +"Esto es software libre: usted es libre de cambiarlo y redistribuirlo.\n" +"No hay NINGUNA GARANTÍA, hasta donde permite la ley.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Escrito por %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"argumento %s: No se permite un especificador de formato con ancho variable." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argumento %s: No se permite un especificador de formato con precisión " +"variable." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "argumento %s: No se permite un especificador de formato con tamaño." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argumento %s: La cadena termina en mitad de un especificador." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"argumento %s: El carácter '%c' no es un especificador de conversión válido." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argumento %s: El carácter que termina la directiva de formato no es un " +"especificador de conversión válido." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argumento %s: La cadena de formato consume más de un argumento: %u argumento." +msgstr[1] "" +"argumento %s: La cadena de formato consume más de un argumento: %u " +"argumentos." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "no se puede convertir la sustitución de bytes a Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"no se puede convertir la sustitución unicode a la codificación de destino: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "no se puede convertir la sustitución de bytes a cadena ancha: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"no se puede convertir la sustitución de carácter ancho a la codificación de " +"destino: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"no se puede convertir la sustitución de bytes a la codificación de destino: " +"%s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: no se puede convertir" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: carácter o secuencia de desplazamiento incompleta" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: error de E/S" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "no se admite la conversión de %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "no se admite la conversión a %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "no se admite la conversión de %s a %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "pruebe '%s -l' para obtener la lista de codificaciones admitidas" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(entrada estándar)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "error de E/S" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Comunicar errores a .\n" + +#, no-wrap +#~ msgid "" +#~ "License GPLv2+: GNU GPL version 2 or later \n" +#~ "This is free software: you are free to change and redistribute it.\n" +#~ "There is NO WARRANTY, to the extent permitted by law.\n" +#~ msgstr "" +#~ "License GPLv2+: GPL de GNU versión 2 o posterior \n" +#~ "Esto es software libre: usted es libre de cambiarlo y redistribuirlo.\n" +#~ "No hay NINGUNA GARANTÍA, hasta donde permite la ley.\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Esto es software libre; vea el código fuente para las condiciones de " +#~ "copia.\n" +#~ "No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA " +#~ "UN\n" +#~ "FIN DETERMINADO.\n" diff --git a/3rdPartner/libiconv/po/et.gmo b/3rdPartner/libiconv/po/et.gmo new file mode 100644 index 0000000..30dae1d Binary files /dev/null and b/3rdPartner/libiconv/po/et.gmo differ diff --git a/3rdPartner/libiconv/po/et.po b/3rdPartner/libiconv/po/et.po new file mode 100644 index 0000000..b35d7d1 --- /dev/null +++ b/3rdPartner/libiconv/po/et.po @@ -0,0 +1,355 @@ +# Estonian translations for libiconv. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Toomas Soome , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2016-12-12 13:23+0200\n" +"Last-Translator: Toomas Soome \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Kasutamine: iconv [-c] [-s] [-f koodist] [-t koodi] [fail ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "vi: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Lisainfo saamiseks kasutage '%s --help'.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Kasutamine: %s [VTI...] [-f KODEERING] [-t KODEERING] [SISENDFAIL...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "vi: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Teisendab teksti hest kooditabelist teise.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Sisendi ja vljundi vormingut kontrollivad vtmed:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODEERING, --from-code=KODEERING\n" +" sisendi kooditabel\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODEERING, --to-code=KODEERING\n" +" vljundi kooditabel\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Teisendamisel tekkivate probleemide kontrolli vtmed:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c eemalda mitteteisendatavad smbolid\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=VORMING\n" +" mitteteisendavate Unikoodi smbolite asendus\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=VORMING mitteteisendatavate baitide asendus\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=VORMING\n" +" mitteteisendatavate mitmebaidi smbolite asendus\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Vigade vljundi kontrollimise vtmed:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent keela probleemidest teatamine\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Infovljund:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list vljasta toetatud kooditabelite nimekiri\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help vljasta see abiinfo ja lpeta t\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version vljasta versiooni info ja lpeta t\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Litsents GPLv3+: GNU GPL versioon 3 vi uuem \n" +"See on vaba tarkvara: teil on lubatud seda muuta ja levitada.\n" +"GARANTII PUDUB, vastavalt seadusega lubatud piiridele.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Kirjutanud %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "%s argument: Muutuva pikkusega vorming ei ole siin lubatud." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "%s argument: Muutuva tpsusega vorming ei ole siin lubatud." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s argument: Suuruse mranguga vorming ei ole siin lubatud." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argument: Sne lppeb keset direktiivi." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s argument: Smbol '%c' ei ole lubatud teisenduses." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argument: Vormingi direktiivi lpetav smbol ei ole teisenduses lubatud." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s argument: Vormingu sne nuab enam kui hte argumenti: %u argument." +msgstr[1] "" +"%s argument: Vormingu sne nuab enam kui hte argumenti: %u argumenti." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "baidiasendust ei saa Unikoodi teisendada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "unikoodi asendust ei saa sihttabelisse teisendada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "baidiasendust ei saa mitmebaidiliste smbolitega sneks teisendada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "widechar smboleid ei saa sihttabelisse teisendada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "baitide asendust ei saa sihttabelisse teisendada: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ei saa teisendada" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: mittetielik smbol vi nihkejrjend" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: S/V viga" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "teisendust tabelist %s ei toetata" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "teisendust tabelisse %s ei toetata" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "teisendust tabelist %s tabelisse %s ei toetata" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "Toetatud kooditabelite niekirja saate ksuga '%s -l'" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standardsisend)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "S/V viga" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Vigadest teatage palun aadressil .\n" diff --git a/3rdPartner/libiconv/po/fi.gmo b/3rdPartner/libiconv/po/fi.gmo new file mode 100644 index 0000000..a823cfa Binary files /dev/null and b/3rdPartner/libiconv/po/fi.gmo differ diff --git a/3rdPartner/libiconv/po/fi.po b/3rdPartner/libiconv/po/fi.po new file mode 100644 index 0000000..9f7431a --- /dev/null +++ b/3rdPartner/libiconv/po/fi.po @@ -0,0 +1,369 @@ +# translation of libiconv-1.12.pot to Finnish +# Finnish translation of iconv. +# Copyright © 2002, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Matti Koskimies , 2002. +# Jorma Karvonen , 2007,2008. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2008-01-02 07:55+0200\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Käyttö: iconv [-c] [-s] [-f syötekoodaus] [-t tulostekoodaus] [tiedosto ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "tai: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Katso lisäohjeet valitsimella ”%s --help”.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Käyttö: %s [VALITSIN...] [-f KOODAUS] [-t KOODAUS] [SYÖTETIEDOSTO...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "tai: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Muuntaa tekstin yhdestä koodauksesta toiseksi koodaukseksi.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Valitsimet, jotka ohjaavat syötteen ja tulosteen muotoa:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KOODAUS, --from-code=KOODAUS\n" +" syötteen koodaus\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KOODAUS --to-code=KOODAUS\n" +" tulosteen koodaus\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Valitsimet, jotka ohjaavat muunnospulmia:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c hylkää ei-muunnettavat merkit\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=MUOTOMERKKIJONO\n" +" korvaus ei-muunnettaville Unicode-merkeille\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=MUOTOMERKKIJONO korvaus ei-muunnettaville tavuille\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=MUOTOMERKKIJONO\n" +" korvaus ei-muunnettaville wide-merkeille\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Valitsimet, jotka ohjaavat virhetulostetta:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent vaimenna virheilmoitukset muunnospulmista\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Tiedotetuloste:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list luettele tuetut koodaukset\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help näytä tämä opaste ja poistu\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version tulosta versiotiedot ja poistu\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv2+: GNU GPL version 2 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Lisenssi GPLv2+: GNU GPL versio 2 tai myöhäisempi \n" +"Tämä on vapaa ohjelma: voit vapaasti muuttaa sitä ja jakaa sitä edelleen.\n" +"Ohjelmalla EI OLE TAKUUta siinä laajuudessa kuin laki sallii.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Kirjoittanut %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s-argumentti: Muotodirektiivi vaihtelevalla leveydellä ei ole sallittu " +"tässä." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s-argumentti: Muotodirektiivi vaihtelevalla tarkkuudella ei ole sallittu " +"tässä." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s-argumentti: Muotodirektivii koolla ei ole sallittu tässä." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s-argumentti: Merkkijono loppuu direktiivin keskellä." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s-argumentti: Merkki ”%c” ei ole voimassa oleva muunnosmäärite." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s-argumentti: Merkki, joka päättää muotodirektiivin, ei ole voimassa olevan " +"muunnosmäärite." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s-argumentti: Muotoilumerkkijono kuluttaa enemmän kuin yhden argumentin: %u " +"argumentti." +msgstr[1] "" +"%s-argumentti: Muotoilumerkkijono kuluttaa enemmän kuin yhden argumentin: %u " +"argumenttia." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "ei voida muuntaa tavukorvausta Unicode-merkiksi: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "ei voida muuntaa Unicode-korvausta kohdekoodaukseksi: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "ei voida muuntaa tavukorvausta wide-merkkijonoksi: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "ei voida muuntaa wide-merkkikorvausta kohdekoodaukseksi: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "ei voida muuntaa tavukorvausta kohdekoodaukseksi: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ei voida muuntaa" + +# Tästä en ole aivan varma, että tarkoittaako tämä näppäimistön shift-näppäimellä tehtyä merkkiä vai sivuttaissiirtoa bittikentässä. +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: epätäydellinen merkki tai shift-sekvenssi" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Siirräntävirhe" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "muunnos %s-koodauksesta ei ole tuettu" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "muunnos %s-koodaukseen ei tuettu" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "muunnos %s-koodauksesta %s-koodaukseen ei ole tuettu" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "katso luettelo tuetuista koodauksista valitsimella ”%s -l”" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(vakiosyöte)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Siirräntävirhe" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Ilmoita ohjelmistovioista osoitteeseen .\n" diff --git a/3rdPartner/libiconv/po/fr.gmo b/3rdPartner/libiconv/po/fr.gmo new file mode 100644 index 0000000..a740ece Binary files /dev/null and b/3rdPartner/libiconv/po/fr.gmo differ diff --git a/3rdPartner/libiconv/po/fr.po b/3rdPartner/libiconv/po/fr.po new file mode 100644 index 0000000..f0517e2 --- /dev/null +++ b/3rdPartner/libiconv/po/fr.po @@ -0,0 +1,369 @@ +# Messages français pour GNU concernant libiconv. +# This file is distributed under the same license as the libiconv package. +# Copyright © 2004, 2008 Free Software Foundation, Inc. +# Michel Robitaille , traducteur depuis/since 1996. +# François-Xavier Coudert , 2008. +# Stéphane Aulery , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2016-12-23 20:58+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Usage: iconv [-c] [-s] [-f code_source] [-t code_cible] [fichier ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ou: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Essayez « %s --help » pour plus d'informations.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "ou: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Convertit du texte d'un codage à un autre codage.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Options contrôlant les formats d'entrée et de sortie :\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODAGE, --from-code=CODAGE\n" +" codage en entrée\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODAGE, --to-code=CODAGE\n" +" codage en sortie\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Options contrôlant les problèmes de conversion :\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c écarte les caractères non convertissables\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMAT\n" +" substitution pour les caractères Unicode non convertissables\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMAT substitution pour les octets non convertissables\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMAT\n" +" substitution pour les caractères larges non convertissables\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Options contrôlant l'affichage des erreurs :\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent supprime les messages d'erreur concernant les problèmes de conversion\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Options d'aide:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list afficher les codages supportés\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help affiche ce message d'aide et terminer\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version affiche les informations de version et terminer\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licence GPLv3+: GNU GPL version 4 ou ultérieure \n" +"Ce logiciel est libre: vous pouvez le modifier et le redistribuer.\n" +"Il n'y a PAS DE GARANTIE, selon les limites permises par la loi..\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Écrit pas %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"argument %s: Une directive de format avec largeur variable n'est pas " +"autorisée ici." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argument %s: Une directive de format avec précision variable n'est pas " +"autorisée ici." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"argument %s: Une directive de format comportant une taille n'est pas " +"autorisée à cet endroit." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argument %s: La chaîne se termine au milieu d'une directive." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"argument %s: Le caractère « %c » n'est pas un spécificateur de conversion " +"valide." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argument %s: Le caractère qui termine le format n'est pas un spécificateur " +"de conversion valide." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argument %s: La chaîne de format consomme plus d'un argument: %u argument." +msgstr[1] "" +"argument %s: La chaîne de format consomme plus d'un argument: %u arguments." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "ne peut convertir les octets de substitution vers Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "ne peut convertir la substitution Unicode dans le codage de sortie: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "ne peut convertir les octets de substitution en chaîne large: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"ne peut convertir les caractères larges de substitution dans le codage de " +"sortie: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"ne peut convertir les octets de substitution dans le codage de sortie: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ne peut convertir" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: caractère incomplet ou séquence de décalage" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: erreur E/S" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "conversion à partir de %s non supportée" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "conversion vers %s non supportée" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "conversion à partir de %s vers %s non supportée" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "essayez « %s -l » pour obtenir la liste des codages supportés" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "erreur E/S" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Soumettre les rapports d'anomalies à .\n" diff --git a/3rdPartner/libiconv/po/ga.gmo b/3rdPartner/libiconv/po/ga.gmo new file mode 100644 index 0000000..bfe7815 Binary files /dev/null and b/3rdPartner/libiconv/po/ga.gmo differ diff --git a/3rdPartner/libiconv/po/ga.po b/3rdPartner/libiconv/po/ga.po new file mode 100644 index 0000000..ca354cf --- /dev/null +++ b/3rdPartner/libiconv/po/ga.po @@ -0,0 +1,391 @@ +# Irish translations for libiconv +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Kevin Patrick Scannell , 2003, 2006, 2007, 2008, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2017-01-08 14:58-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 : " +"(n>6 && n <11) ? 3 : 4;\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Úsáid: iconv [-c] [-s] [-f cód] [-t cód] [comhad ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "nó: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Bain triail as '%s --help' chun tuilleadh eolais a fháil.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Úsáid: %s [ROGHA...] [-f IONCHÓDÚ] [-t IONCHÓDÚ] [INCHOMHAD...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "nó: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Tiontaigh ó ionchódú go ceann eile.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Roghanna a rialaíonn formáid ionchurtha/aschurtha:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f IONCHÓDÚ, --from-code=IONCHÓDÚ\n" +" ionchódú an ionchuir\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t IONCHÓDÚ, --to-code=IONCHÓDÚ\n" +" ionchódú an aschuir\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Roghanna a rialaíonn fadhbanna tiontaithe:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c ná coinnigh carachtair dhothiontaithe\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=TEAGHRÁN\n" +" ionadaíocht do charachtair dhothiontaithe Unicode\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=TEAGHRÁN ionadaíocht do bhearta dothiontaithe\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=TEAGHRÁN\n" +" ionadaíocht do charachtair leathana dhothiontaithe\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Roghanna a rialaíonn aschur d'earráidí:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent ná taispeáin teachtaireachtaí faoi fhadhbanna tiontaithe\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Aschur faisnéiseach:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list taispeáin na hionchóduithe a dtacaítear leo\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help taispeáin an chabhair seo agus scoir\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version taispeáin eolas faoin leagan agus scoir\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí \n" +"Is saorbhogearra é seo: ceadaítear duit é a athrú agus a athdháileadh.\n" +"Níl baránta AR BITH ann, an oiread atá ceadaithe de réir dlí.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Le %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"argóint %s: Ní cheadaítear treoir fhormáidithe le leithead athraitheach " +"anseo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argóint %s: Ní cheadaítear treoir fhormáidithe le beachtas athraitheach " +"anseo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "argóint %s: Ní cheadaítear treoir fhormáidithe le méid anseo." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argóint %s: Deireadh an teaghráin i lár treorach." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "argóint %s: Níl carachtar '%c' bailí mar shonraitheoir tiontaithe." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argóint %s: An carachtar ag deireadh na treorach formáidithe, níl sé bailí " +"mar shonraitheoir tiontaithe." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argóint %s: Úsáideann an teaghrán formáidithe níos mó ná aon argóint amháin: " +"%u argóint." +msgstr[1] "" +"argóint %s: Úsáideann an teaghrán formáidithe níos mó ná aon argóint amháin: " +"%u argóint." +msgstr[2] "" +"argóint %s: Úsáideann an teaghrán formáidithe níos mó ná aon argóint amháin: " +"%u argóint." +msgstr[3] "" +"argóint %s: Úsáideann an teaghrán formáidithe níos mó ná aon argóint amháin: " +"%u n-argóint." +msgstr[4] "" +"argóint %s: Úsáideann an teaghrán formáidithe níos mó ná aon argóint amháin: " +"%u argóint." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "ní féidir ionadaíocht bhirt a thiontú go Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "ní féidir ionadaíocht unicode a thiontú go dtí an sprioc-ionchódú: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "ní féidir ionadaíocht bhirt a thiontú go teaghrán leathan: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "ní féidir ionadaíocht widechar a thiontú go dtí an sprioc-ionchódú: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "ní féidir ionadaíocht bhirt a thiontú go dtí an sprioc-ionchódú: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ní féidir tiontú" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: carachtar nó seicheamh neamhiomlán" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Earráid I/A" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "ní thacaítear le tiontú ó %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "ní thacaítear le tiontú go %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "ní thacaítear le tiontú ó %s go %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" +"bain triail as '%s -l' chun liosta de na hionchóduithe a dtacaítear leo a " +"thaispeáint" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Earráid I/A" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Seol tuairiscí fabhtanna chuig .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Is saorbhogearra an ríomhchlár seo; féach ar an bhunchód le haghaidh\n" +#~ "coinníollacha cóipeála. Níl baránta ar bith ann; go fiú níl baránta ann\n" +#~ "d'INDÍOLTACHT nó FEILIÚNACHT D'FHEIDHM AR LEITH.\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "Úsáid: iconv [--binary] [-c] [-s] [-f cód] [-t cód] [comhad ...]" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/gl.gmo b/3rdPartner/libiconv/po/gl.gmo new file mode 100644 index 0000000..a36919e Binary files /dev/null and b/3rdPartner/libiconv/po/gl.gmo differ diff --git a/3rdPartner/libiconv/po/gl.po b/3rdPartner/libiconv/po/gl.po new file mode 100644 index 0000000..9a91700 --- /dev/null +++ b/3rdPartner/libiconv/po/gl.po @@ -0,0 +1,374 @@ +# Galician translation of libiconv +# This file is distributed under the same license as the libiconv package. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Copyright (C) 2012, 2013 Leandro Regueiro. +# +# Jacobo Tarrio , 2002. +# Leandro Regueiro , 2012, 2013. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2013-01-05 17:00+0200\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Emprego: iconv [-c] [-s] [-f desdecódigo] [-t acódigo] [ficheiro ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ou: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Execute «%s --help» para obter máis información.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Emprego: %s [OPCIÓN...] [-f CODIFICACIÓN] [-t CODIFICACIÓN] [FICHEIROENTRADA...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "ou: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Converte texto desde unha codificación a outra codificación.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opcións que controlan o formato de entrada e de saída:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODIFICACIÓN, --from-code=CODIFICACIÓN\n" +" a codificación da entrada\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODIFICACIÓN, --to-code=CODIFICACIÓN\n" +" a codificación da saída\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opcións que controlan os problemas de conversión:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c desbotar os caracteres non convertíbeis\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=CADEA_DE_FORMATO\n" +" substitución para os caracteres Unicode non convertíbeis\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=CADEA_DE_FORMATO\n" +" substitución para bytes non convertíbeis\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=CADEA_DE_FORMATO\n" +" substitución para caracteres amplos non convertíbeis\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opcións que controlan a saída de erro:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent suprime mensaxes de erro sobre problemas de conversión\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Saída informativa:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list Lista das codificacións admitidas\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help Mostra esta mensaxe de axuda e sae\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version Mostra a información da versión e sae\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv2+: GNU GPL version 2 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licenza GPLv2+: GNU GPL versión 2 ou posterior \n" +"Isto é software libre: pode modificalo e redistribuílo.\n" +"Non hai NINGUNHA GARANTÍA, ata onde o permita a lei.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Escrito por %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Argumento %s: aquí non se permiten directivas de formato cun ancho variábel." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argumento %s: aquí non se permiten directivas de formato cunha precisión " +"variábel." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"Argumento %s: aquí non se permiten directivas de formato que teñan un tamaño." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argumento %s: a cadea remata no medio dunha directiva." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"Argumento %s: o carácter «%c» non é un especificador de conversión correcto." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argumento %s: o carácter no que remata a directiva de formato non é un " +"especificador de conversión correcto." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argumento %s: a cadea de formato ocupa máis dun argumento: %u argumento." +msgstr[1] "" +"Argumento %s: a cadea de formato ocupa máis dun argumento: %u argumentos." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "non é posíbel converter a substitución de bytes a Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"non é posíbel converter a substitución de unicode á codificación destino: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "non é posíbel converter a substitución de bytes a cadea ampla: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"non é posíbel converter a substitución de caracteres amplos á codificación " +"destino: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"non é posíbel converter a substitución de bytes á codificación destino: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: non foi posíbel converter" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: secuencia de caracteres ou desprazamentos incompleta" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: erro de E/S" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "non se admite a conversión desde %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "non se admite a conversión a %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "non se admite a conversión de %s a %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "execute «%s -l» para obter a lista das codificacións admitidas" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(entrada estándar)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Erro de E/S" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Envíe informes de fallo a .\n" diff --git a/3rdPartner/libiconv/po/hr.gmo b/3rdPartner/libiconv/po/hr.gmo new file mode 100644 index 0000000..3141380 Binary files /dev/null and b/3rdPartner/libiconv/po/hr.gmo differ diff --git a/3rdPartner/libiconv/po/hr.po b/3rdPartner/libiconv/po/hr.po new file mode 100644 index 0000000..5d5d278 --- /dev/null +++ b/3rdPartner/libiconv/po/hr.po @@ -0,0 +1,387 @@ +# Translation of libiconv to Croatian. +# Copyright (C) 2002, 2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Denis Lackovic , 2002. +# Tomislav Krznar , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2012-04-16 16:14+0200\n" +"Last-Translator: Tomislav Krznar \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Generator: TransDict server\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Uporaba: iconv [-c] [-s] [-f izkoda] [-t ukod] [datoteka ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ili: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Pokušajte „%s --help” za više informacija.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Uporaba: %s [OPCIJA...] [-f KODIRANJE] [-t KODIRANJE] [ULAZNADATOTEKA...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "ili: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Pretvara tekst iz jednog kodiranja u drugo.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opcije za kontroliranje ulaznog i izlaznog oblika:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODIRANJE, --from-code=KODIRANJE\n" +" kodiranje ulaza\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODIRANJE, --to-code=KODIRANJE\n" +" kodiranje izlaza\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opcije za kontroliranje problema pretvaranja:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c odbaci nepretvorive znakove\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATSTRING\n" +" zamjena za nepretvorive Unicode znakove\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATSTRING zamjena za nepretvorive bajtove\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATSTRING\n" +" zamjena za nepretvorive široke znakove\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opcije za kontroliranje ispisa grešaka:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent izostavi poruke grešaka o problemima pretvaranja\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informativni izlaz:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list ispiši podržana kodiranja\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help prikaži ovu pomoć i izađi\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version ispiši informacije o inačici i izađi\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv2+: GNU GPL version 2 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licenca GPLv2+: GNU GPL inačica 2 ili kasnija .\n" +"Ovo je slobodan softver: slobodno ga smijete mijenjati i dijeliti.\n" +"NEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Napisao %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s argument: Propis oblika s promjenjivom širinom ovdje nije dozvoljen." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s argument: Propis oblika s promjenjivom preciznošću ovdje nije dozvoljen." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s argument: Propis oblika s veličinom ovdje nije dozvoljen." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argument: Znakovni niz završava u sredini propisa." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s argument: Znak „%c” nije ispravna oznaka pretvaranja." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argument: Znak koji završava propis oblika nije ispravna oznaka " +"pretvaranja." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s argument: Znakovni niz oblika sadrži više od jednog argumenta: %u " +"argument." +msgstr[1] "" +"%s argument: Znakovni niz oblika sadrži više od jednog argumenta: %u " +"argumenta." +msgstr[2] "" +"%s argument: Znakovni niz oblika sadrži više od jednog argumenta: %u " +"argumenata." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "ne mogu pretvoriti bajtovnu zamjenu u Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "ne mogu pretvoriti unicode zamjenu u odredišno kodiranje: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "ne mogu pretvoriti bajtovnu zamjenu u široki niz: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "ne mogu pretvoriti širokoznačnu zamjenu u odredišno kodiranje: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "ne mogu pretvoriti bajtovnu zamjenu u odredišno kodiranje: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: ne mogu pretvoriti" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: nepotpun znakovni ili pomačni niz" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: U/I greška" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "pretvaranje iz %s nije podržano" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "pretvaranje u %s nije podržano" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "pretvaranje iz %s u %s nije podržano" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "pokušajte „%s -l” za prikaz popisa podržanih kodiranja" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "U/I greška" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Prijavite greške na .\n" +#~ "Prijavite greške prijevoda na .\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Uporaba: iconv [--binary] [-c] [-s] [-f izkoda] [-t ukod] [datoteka ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Ovo je slobodni softver; pogledajte kod kako biste doznali uvjete " +#~ "kopiranja. NEMA\n" +#~ "garancije; čak ni tvrdnje o ISPLATIVOSTI ili POGODNOSTI ZA NEKU SVRHU.\n" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/hu.gmo b/3rdPartner/libiconv/po/hu.gmo new file mode 100644 index 0000000..ab71d5a Binary files /dev/null and b/3rdPartner/libiconv/po/hu.gmo differ diff --git a/3rdPartner/libiconv/po/hu.po b/3rdPartner/libiconv/po/hu.po new file mode 100644 index 0000000..ada6d1f --- /dev/null +++ b/3rdPartner/libiconv/po/hu.po @@ -0,0 +1,367 @@ +# Hungarian translation for libiconv. +# Copyright (C) 2002, 2014, 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Emese Kovács , 2002. +# Balázs Úr , 2014, 2017. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2017-03-19 00:57+0100\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Használat: iconv [-c] [-s] [-f kódolásról] [-t kódolásra] [fájl …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "vagy: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "További információkért próbálja a(z) „%s --help” parancsot.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Használat: %s [KAPCSOLÓ…] [-f KÓDOLÁS] [-t KÓDOLÁS] [BEMENETFÁJL…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "vagy: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Átalakítja a szöveget egy adott kódolásról egy másik kódolásra.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "A bemeneti és kimeneti formátumokat vezérlő kapcsolók:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KÓDOLÁS, --from-code=KÓDOLÁS\n" +" a bemenet kódolása\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KÓDOLÁS, --to-code=KÓDOLÁS\n" +" a kimenet kódolása\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Átalakítási problémákat vezérlő kapcsolók:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c átalakíthatatlan karakterek eldobása\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMÁTUMSZÖVEG\n" +" helyettesítés az átalakíthatatlan Unicode karakterekhez\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMÁTUMSZÖVEG helyettesítés az átalakíthatatlan byte-okhoz\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMÁTUMSZÖVEG\n" +" helyettesítés az átalakíthatatlan széles karakterekhez\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "A hibakimenetet vezérlő kapcsolók:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent az átalakítási problémákról szóló hibaüzenetek elnyomása\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Tájékoztató kimenet:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list a támogatott kódolások felsorolása\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help ezen súgó megjelenítése és kilépés\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version verzióinformációk kiírása és kilépés\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licenc GPLv3+: GNU GPL 3. vagy későbbi verzió \n" +"Ez egy szabad szoftver: szabadon módosíthatja és terjesztheti.\n" +"Nincs SEMMIFÉLE GARANCIA, a törvény által megengedett mértékben.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Írta %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s argumentum: Egy formátum utasítás egy változó szélességgel itt nem " +"engedélyezett." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s argumentum: Egy formátum utasítás egy változó pontossággal itt nem " +"engedélyezett." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"%s argumentum: Egy formátum utasítás egy mérettel itt nem engedélyezett." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argumentum: A szöveg befejeződik egy utasítás közepén." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"%s argumentum: A(z) „%c” karakter nem érvényes átalakítási meghatározó." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argumentum: Az a karakter, amely megszakítja a formátum utasítást, nem " +"érvényes átalakítási meghatározó." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s argumentum: A formátumszöveg több mint egy argumentumot fogyaszt: %u " +"argumentum." +msgstr[1] "" +"%s argumentum: A formátumszöveg több mint egy argumentumot fogyaszt: %u " +"argumentum." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nem sikerült átalakítani a byte helyettesítést Unicode kódolásra: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "nem sikerült átalakítani a Unicode helyettesítést a cél kódolásra: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nem sikerült átalakítani a byte helyettesítést széles szövegre: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"nem sikerült átalakítani a széles karakter helyettesítést a cél kódolásra: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "nem sikerült átalakítani a byte helyettesítést a cél kódolásra: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: nem sikerült átalakítani" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: nem teljes karakter vagy eltolási szekvencia" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: I/O hiba" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "az átalakítás %s kódolásról nem támogatott" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "az átalakítás %s kódolásra nem támogatott" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "az átalakítás %s kódolásról %s kódolásra nem támogatott" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "próbálja a(z) „%s -l” parancsot a támogatott kódolások listájához" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "I/O hiba" + +#~ msgid "Report bugs to .\n" +#~ msgstr "A hibákat ezen a címen jelentse: .\n" diff --git a/3rdPartner/libiconv/po/id.gmo b/3rdPartner/libiconv/po/id.gmo new file mode 100644 index 0000000..0d4ebf3 Binary files /dev/null and b/3rdPartner/libiconv/po/id.gmo differ diff --git a/3rdPartner/libiconv/po/id.po b/3rdPartner/libiconv/po/id.po new file mode 100644 index 0000000..84a0eda --- /dev/null +++ b/3rdPartner/libiconv/po/id.po @@ -0,0 +1,359 @@ +# Pesan bahasa indonesia untuk libiconv. +# Copyright (C) 2002 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Tedi Heriyanto , 2002. +# Arif E. Nugroho , 2008. +# Andika Triwidada , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-04-27 19:39+0700\n" +"Last-Translator: Andika Triwidada \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.0\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Penggunaan: iconv [-c] [-s] [-f fromcode] [-t tocode] [berkas ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "atau: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Coba '%s --help' untuk informasi lebih lanjut.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Penggunaan: %s [OPSI...] [-f PENGKODEAN] [-e PENGKODEAN] [BERKAS MASUKAN...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "atau: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Mengubah teks dari satu pengkodean ke pengkodean yang lain.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opsi mengontrol format masukan dan keluaran:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f PENGKODEAN, --from-code=PENGKODEAN\n" +" pengkodean dari masukan\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t PENGKODEAN, --to-code=PENGKODEAN\n" +" pengkodean dari keluaran\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opsi mengontrol masalah pengubahan:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c buang karakter yang tidak dapat diubah\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATSTRING\n" +" substitusi untuk karakter Unicode yang tidak dapat diubah\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATSTRING substitusi untuk byte tidak terubah\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATSTRING\n" +" substitusi untuk karakter lebar tidak terubah\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opsi mengontrol keluaran galat:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent tekan pesan galat mengenai masalah konversi\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Keluaran informasi:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list daftar dari pengkodean yang didukung\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help tampilkan bantuan ini dan keluar\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version keluarkan informasi versi dan keluar\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Laporkan kutu ke pelacak kutu di <%s>\n" +"atau melalui surel ke <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Lisensi GPLv3+: GNU GPL versi 3 atau selanjutnya <%s>\n" +"Ini adalah piranti lunak bebas: Anda bebas untuk mengubah dan meredistribusikannya.\n" +"TIDAK ADA GARANSI, sampai batas yang diizinkan oleh hukum yang berlaku.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Ditulis oleh %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s argumen: Sebuah format direktif dengan sebuah lebar variabel tidak " +"diijinkan disini." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s argumen: Sebuah format direktif dengan sebuah variabel presisi tidak " +"diijinkan disini." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"%s argumen: Sebuah format direktif dengan sebuah ukuran tidak diijinkan " +"disini." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argumen: String berakhir ditengah dari sebuah direktif." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"%s argumen: Karakter '%c' bukan sebuah penspesifikasi konversi yang valid." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argumen: Karakter yang diselesaikan dengan format direktif bukan sebuah " +"penspesifikasi konversi yang valid." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s argumen: Format string mengambil lebih dari satu argumen: %u argumen." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "tidak dapat mengubah substitusi byte ke Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "tidak dapat mengubah substitusi unicode ke target pengkodean: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "tidak dapat mengubah pengganti byte ke string lebar: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "tidak dapat mengubah pengganti widechar ke target pengkodean: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "tidak dapat mengubah pengganti byte ke target pengkodean: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: tidak dapat mengkonversi" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: karakter atau urutan shift tidak lengkap" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: galat I/O" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konversi dari %s tidak didukung" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konversi ke %s tidak didukung" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konversi dari %s to %s tidak didukung" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "coba '%s -l' untuk mendapatkan daftar dari pengkodean yang didukung" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "galat I/O" diff --git a/3rdPartner/libiconv/po/insert-header.sin b/3rdPartner/libiconv/po/insert-header.sin new file mode 100644 index 0000000..ceeebb9 --- /dev/null +++ b/3rdPartner/libiconv/po/insert-header.sin @@ -0,0 +1,28 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# Copyright (C) 2001 Free Software Foundation, Inc. +# Written by Bruno Haible , 2001. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/3rdPartner/libiconv/po/it.gmo b/3rdPartner/libiconv/po/it.gmo new file mode 100644 index 0000000..c1ec000 Binary files /dev/null and b/3rdPartner/libiconv/po/it.gmo differ diff --git a/3rdPartner/libiconv/po/it.po b/3rdPartner/libiconv/po/it.po new file mode 100644 index 0000000..42e5d4e --- /dev/null +++ b/3rdPartner/libiconv/po/it.po @@ -0,0 +1,374 @@ +# Italian translation for libiconv. +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Marco Parrone , 2002. +# Milo Casagrande , 2008-2009 +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2016-12-13 12:17+0100\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.11\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Uso: iconv [-c] [-s] [-f DAL_CODICE] [-t AL_CODICE] [FILE...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "o: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Usare \"%s --help\" per ulteriori informazioni.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Uso: %s [OPZIONI...] [-f CODIFICA] [-t CODIFICA] [FILE...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "o: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Converte il testo da una codifica a un'altra.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opzioni per il controllo del formato di input e di output:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODIFICA, --from-code=CODIFICA\n" +" La codifica dell'input\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODIFICA, --to-code=CODIFICA\n" +" La codifica dell'output\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opzioni per il controllo dei problemi di conversione:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c Tralascia i caratteri non convertibili\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=STRINGA_FORMATO\n" +" Sostituzione per i caratteri Unicode non convertibili\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=STRINGA_FORMATO\n" +" Sostituzione per i byte non convertibili\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=STRINGA_FORMATO\n" +" Sostituzione per i caratteri wide non convertibili\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opzioni per il controllo degli errori di output:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent Tralascia i messaggi di errore dei problemi di conversione\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Output informativo:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list Elenca le codifiche supportate\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help Visualizza questo aiuto ed esce\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version Stampa la versione ed esce\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licenza GPLv3+: GNU GPL versione 3 o successiva \n" +"Questo è software libero: siete liberi di modificarlo e ridistribuirlo\n" +"Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Scritto da %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"argomento %s: una direttiva di formato con una larghezza variabile non è " +"consentita." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argomento %s: una direttiva di formato con una precisione variabile non è " +"consentita." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"argomento %s: una direttiva di formato con una dimensione non è consentita." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argomento %s: la stringa termina a metà di una direttiva." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"argomento %s: il carattere \"%c\" non è uno specificatore di conversione " +"valido." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argomento %s: il carattere terminante della direttiva di formato non è uno " +"specificatore di conversione valido." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argomento %s: la stringa di formato utilizza più di un argomento: %u " +"argomento." +msgstr[1] "" +"argomento %s: la stringa di formato utilizza più di un argomento: %u " +"argomenti." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "impossibile convertire la sostituzione byte in Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"impossibile convertire la sostituzione Unicode nella codifica finale: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "impossibile convertire la sostituzione byte con una stringa wide: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"impossibile convertire il carattere wide di sostituzione alla codifica " +"finale: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "impossibile convertire la sostituzione byte alla codifica finale: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: impossibile convertire" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: carattere o sequenza di shift incompleto" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: errore di I/O" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "conversione da %s non supportata" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "conversione a %s non supportata" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "conversione da %s a %s non supportata" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "usare \"%s -l\" per un elenco delle codifiche supportate" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Errore di I/O" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Segnalare i bug a .\n" +#~ "Segnalare gli errori di traduzione a .\n" diff --git a/3rdPartner/libiconv/po/ja.gmo b/3rdPartner/libiconv/po/ja.gmo new file mode 100644 index 0000000..d440fe4 Binary files /dev/null and b/3rdPartner/libiconv/po/ja.gmo differ diff --git a/3rdPartner/libiconv/po/ja.po b/3rdPartner/libiconv/po/ja.po new file mode 100644 index 0000000..a113e68 --- /dev/null +++ b/3rdPartner/libiconv/po/ja.po @@ -0,0 +1,355 @@ +# Japanese message of libiconv +# Copyright (C) 2016 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Yasuaki Taniguchi , 2010. +# Takeshi Hamasaki , 2016 +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2016-12-30 08:27+0900\n" +"Last-Translator: Takeshi Hamasaki \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.11\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"使用法: iconv [-c] [-s] [-f 変換元コード] [-t 変換先コード] [ファイル名 ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "または: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "さらに情報が必要な場合は '%s --help' と入力してください。\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "使用法: %s [オプション...] [-f 文字コード] [-t 文字コード] [入力ファイル...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "または: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "ある文字コードから別の文字コードへテキストを変換します。\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "入出力形式を制御するオプション:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f 文字コード, --from-code=文字コード\n" +" 入力の文字コード\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t 文字コード, --to-code=文字コード\n" +" 出力の文字コード\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "変換の問題を制御するオプション:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c 変換できない文字を破棄する\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=書式文字列\n" +" 変換できない Unicode 文字の置換\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=書式文字列 変換できないバイトの置換\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=書式文字列\n" +" 変換できないワイド文字の置換\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "エラー出力を制御するオプション:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent 変換問題のエラーメッセージ出力を抑止する\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "情報の出力:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list サポートする文字コード一覧を表示する\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help このヘルプを表示して終了する\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version バージョン情報を表示して終了する\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"%sライセンス GPLv3+: GNU GPL バージョン 3 以降 \n" +"%sこれはフリーソフトウェアです: 自由に変更および配布できます.\n" +"%s法律の許す限り、 無保証 です.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "作成者 %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "引数 %s : ここでは可変幅の書式指定を使用できません。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "引数 %s : ここでは可変精度の書式指定を使用できません。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "引数 %s : ここではサイズ指定を行う書式指定を使用できません。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "引数 %s : 書式指定の中間で文字列が終了しました。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "引数 %s : 文字 '%c' は無効な変換指定です。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "引数 %s : 書式指定を終端させる文字は有効な変換指定ではありません。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "引数 %s : 書式文字列が2つ以上の引数を消費します: %u 個の引数。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "バイトから Unicode へ置換をおこなう変換ができません: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "Unicodeから変換先文字コードへの置換を行う変換ができません: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "バイトからワイド文字への置換を行う変換ができません: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "ワイド文字から変換先文字コードへの置換を行う変換ができません: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "バイトから変換先文字コードへ置換を行う変換ができません: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u行:%u列: 変換できません" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u行:%u列: 不完全な文字またはシフトシーケンスです" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u行:%u列" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: I/O エラー" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "%s からの変換はサポートされていません" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "%s への変換はサポートされていません" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "%s から %s への変換はサポートされていません" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "サポートする文字コード一覧は '%s -l' と入力してください。" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(標準入力)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "I/O エラー" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "バグレポート先 \n" +#~ "翻訳問題レポート先 \n" diff --git a/3rdPartner/libiconv/po/ko.gmo b/3rdPartner/libiconv/po/ko.gmo new file mode 100644 index 0000000..47cf3a2 Binary files /dev/null and b/3rdPartner/libiconv/po/ko.gmo differ diff --git a/3rdPartner/libiconv/po/ko.po b/3rdPartner/libiconv/po/ko.po new file mode 100644 index 0000000..034d76f --- /dev/null +++ b/3rdPartner/libiconv/po/ko.po @@ -0,0 +1,348 @@ +# Korean translation of libiconv. +# Copyright (C) 2022 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Seong-ho Cho , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-14 15:09+0900\n" +"Last-Translator: Seong-ho Cho \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3.1\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "사용법: iconv [-c] [-s] [-f <목적코드>] [-t <대상코드>] [<파일> ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr " 또는: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "자세한 정보는 '%s --help'를 입력하십시오.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "사용법: %s [<옵션>...] [-f <인코딩>] [-t <인코딩>] [<입력파일>...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr " 또는: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "텍스트를 지정 인코딩에서 다른 인코딩으로 변환합니다.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "입출력 형식 제어 옵션:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f <인코딩>, --from-code=<인코딩>\n" +" 입력 인코딩 형식\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t <인코딩>, --to-code=<인코딩>\n" +" 출력 인코딩 형식\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "변환 문제 제어 옵션:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c 변환 불가 문자 무시\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=<형식문자열>\n" +" 변환 불가 유니코드 문자의 대체 문자\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=<형식문자열> 변환 불가 바이트 문자의 대체 문자\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=<형식문자열>\n" +" 변환 불가 전각 문자의 대체 문자\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "오류 출력 제어 옵션:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent 변환 문제 오류 메시지 숨김\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "정보 출력:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list 지원 인코딩 목록 출력\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help 이 도움말을 표시하고 나갑니다\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version 버전 정보를 출력하고 나갑니다\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"<%s> 문제 추적 사이트 또는 <%s> 메일 주소에 \n" +"버그를 알려주십시오.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"GPLv3+ 라이선스: GNU GPL 버전 3 이상 <%s>\n" +"이 프로그램은 자유 소프트웨어입니다: 자유롭게\n" +"바꾸고 재배포할 수 있습니다.\n" +"법률이 허용하는 모든 범위내의 보증은 없습니다.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "%s이(가) 작성함.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "%s 인자: 변수 폭 정보를 가진 형식 지정자를 여기에 둘 수 없습니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "%s 인자: 변수 정밀도 정보를 가진 형식 지정자를 여기에 둘 수 없습니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s 인자: 크기 정보를 가진 형식 지정자를 여기에 둘 수 없습니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s 인자: 문자열이 지정자 중간에서 끝납니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s 인자: '%c' 문자는 올바른 변환 지정자가 아닙니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "%s 인자: 형식 지정자를 끝내는 문자는 올바른 변환 지정자가 아닙니다." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "%s 인자: 형식 문자열이 하나 이상의 인자에 해당합니다: 인자 %u개." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "바이트 대체 요소를 유니코드로 변환할 수 없습니다: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "유니코드 대체 요소를 대상 인코딩으로 변환할 수 없습니다: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "바이트 대체 요소를 전각 문자열로 변환할 수 없습니다: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "전각 문자 대체 요소를 대상 인코딩으로 변환할 수 없습니다: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "바이트 대체 요소를 대상 인코딩으로 변환할 수 없습니다: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: 변환할 수 없음" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: 미결 문자 또는 시퀀스 밀림" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: 입출력 오류" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "%s 인코딩의 변환을 지원하지 않습니다" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "%s 인코딩으로의 변환을 지원하지 않습니다" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "%s → %s 인코딩 변환을 지원하지 않습니다" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "지원 인코딩 목록은 '%s -l'을 입력하십시오" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(표준입력)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "입출력 오류" diff --git a/3rdPartner/libiconv/po/libiconv.pot b/3rdPartner/libiconv/po/libiconv.pot new file mode 100644 index 0000000..b3578a5 --- /dev/null +++ b/3rdPartner/libiconv/po/libiconv.pot @@ -0,0 +1,334 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the GNU libiconv package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.17\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "" diff --git a/3rdPartner/libiconv/po/lt.gmo b/3rdPartner/libiconv/po/lt.gmo new file mode 100644 index 0000000..9afc167 Binary files /dev/null and b/3rdPartner/libiconv/po/lt.gmo differ diff --git a/3rdPartner/libiconv/po/lt.po b/3rdPartner/libiconv/po/lt.po new file mode 100644 index 0000000..92bd2b9 --- /dev/null +++ b/3rdPartner/libiconv/po/lt.po @@ -0,0 +1,353 @@ +# Lithuanian translation for GNU libiconv +# Copyright (C) 2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Rimas Kudelis , 2013. +msgid "" +msgstr "" +"Project-Id-Version: GNU libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2013-06-28 18:23+0300\n" +"Last-Translator: Rimas Kudelis \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.1\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Naudojimas: iconv [-c] [-s] [-f šaltinio_koduotė] [-t išvesties_koduotė] " +"[failas ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "arba: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Bandykite „%s --help“, jeigu norite išsamesnės informacijos.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Naudojimas: %s [PARAMETRAS...] [-f KODUOTĖ] [-t KODUOTĖ] [ĮVESTIES_FAILAS...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "arba: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Programa teksto simbolių koduotei keisti.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Parametrai įvesties ir išvesties formato valdymui:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODUOTĖ, --from-code=KODUOTĖ\n" +" įvesties simbolių koduotė\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODUOTĖ, --to-code=KODUOTĖ\n" +" išvesties simbolių koduotė\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Parametrai teksto perkodavimo problemų valdymui:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c praleisti simbolius kurių perkodavimas negalimas\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr " --unicode-subst=EILUTĖ pakaitalas simboliams, kurių perkodavimas negalimas\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=EILUTĖ pakaitalas baitams, kurių perkodavimas negalimas\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr " --widechar-subst=EILUTĖ pakaitalas „platiesiems“ simboliams, kurių perkodavimas negalimas\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Parametrai klaidų išvesties valdymui:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent neišvesti pranešimų apie perkodavimo klaidas\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informacija:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list išvardyti palaikomas koduotes\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help parodyti šį informacinį pranešimą ir baigti darbą\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version parodyti informaciją apie programos versiją ir baigti darbą\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv2+: GNU GPL version 2 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licencija GPLv2+: GNU GPL 2 ar vėlesnė versija \n" +"Tai – laisvoji programinė įranga. Jums leidžiama ją laisvai modifikuoti ir platinti.\n" +"Šiai programinei įrangai NETAIKOMA JOKIA GARANTIJA, kiek tai leidžia įstatymai.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Programą parašė %s\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: perkodavimas negalimas" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Įvesties/išvesties klaida" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "perkodavimas iš „%s“ nepalaikomas" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "perkodavimas į „%s“ nepalaikomas" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "perkodavimas iš „%s“ į „%s“ nepalaikomas" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "pasinaudokite komanda „%s -l“ palaikomų koduočių sąrašui gauti" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Įvesties/išvesties klaida" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Apie klaidas praneškite adresu .\n" diff --git a/3rdPartner/libiconv/po/nl.gmo b/3rdPartner/libiconv/po/nl.gmo new file mode 100644 index 0000000..4846bb5 Binary files /dev/null and b/3rdPartner/libiconv/po/nl.gmo differ diff --git a/3rdPartner/libiconv/po/nl.po b/3rdPartner/libiconv/po/nl.po new file mode 100644 index 0000000..6af380f --- /dev/null +++ b/3rdPartner/libiconv/po/nl.po @@ -0,0 +1,374 @@ +# Dutch messages for GNU libiconv. +# Copyright (C) 2022 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# "Boer doe mij 't hekke lös, anders schijt ik dij in de boekweit." +# +# Taco Witte , 2003. +# Elros Cyriatan , 2003. +# Tim Van Holder , 2007. +# Benno Schulenberg , 2017, 2022. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 16:52+0100\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Gebruik: iconv [-c] [-s] [-f VANCODE] [-t NAARCODE] [BESTAND...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "of: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Typ '%s --help' voor meer informatie.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Gebruik: %s [OPTIE...] [-f CODERING] [-t CODERING] [INVOERBESTAND...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "of: %s -l\n" + +# Weet niet of "codering" herhaald hoeft te worden. +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Zet tekst om van één codering naar een andere.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opties voor de codering van in- en uitvoer:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODERING, --from-code=CODERING\n" +" de codering van de invoer\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODERING, --to-code=CODERING\n" +" de codering van de uitvoer\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opties voor omzettingsproblemen:\n" + +# of misschien "gooi ... weg" +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c onomzetbare tekens weglaten\n" + +# Of iets als FORMATTERINGSTEKST? +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr " --unicode-subst=TEKST vervanging voor onomzetbare Unicode-tekens\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=TEKST vervanging voor onomzetbare bytes\n" + +# iets beters dan "brede tekens"? +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr " --widechar-subst=TEKST vervanging voor onomzetbare brede tekens\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opties voor foutmeldingen:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent meldingen van omzettingsproblemen onderdrukken\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Opties voor informatieve uitvoer:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list een lijst van ondersteunde coderingen tonen\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help deze hulptekst tonen en stoppen\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version programmaversie tonen en stoppen\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Rapporteer gebreken in het programma via <%s>\n" +"of via een e-mail aan <%s>;\n" +"meld fouten in de vertaling aan .\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n" +"De precieze licentie is GPL-3+: GNU General Public License versie 3 of later.\n" +"Zie <%s> voor de volledige (Engelse) tekst.\n" +"Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Geschreven door %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s argument: Een formatteringscommando met variabele breedte is hier niet " +"toegestaan." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s argument: Een formatteringscommando met variabele precisie is hier niet " +"toegestaan." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"%s argument: Een formatteringscommando met een grootte is hier niet " +"toegestaan." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s argument: De tekst stopt midden in een commando." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s argument: Het teken '%c' is geen geldige omzettingsspecificatie." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s argument: Het teken dat het formatteringscommando afsluit is geen geldige " +"omzettingsspecificatie." + +# "meer dan één argument (%u argumenten om precies te zijn)." leest beter, maar +# dan wordt de boodschap jammer genoeg te lang voor een typische regel van 80 +# tekens... +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "%s argument: De tekst verbruikt meer dan één argument: %u argument." +msgstr[1] "" +"%s argument: De tekst verbruikt meer dan één argument: %u argumenten." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "kan byte-vervanging niet omzetten naar Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "kan Unicode-vervanging niet omzetten naar de doelcodering: %s" + +# "brede tekenreeks" klinkt mij nogal vreemd... +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "kan byte-vervanging niet omzetten naar een brede tekenreeks: %s" + +# "brede tekenvervanging" klinkt slecht... +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "kan breedteken-vervanging niet omzetten naar de doelcodering: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "kan byte-vervanging niet omzetten naar de doelcodering: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: omzetting is onmogelijk" + +# "shift sequence" was eerst als "verschuivingsreeks" vertaald, maar als heel specifiek jargon laat ik het liever onvertaald +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: onvolledig teken of onvolledige shift-sequentie" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: Invoer-/uitvoerfout" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "omzetting vanuit %s wordt niet ondersteund" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "omzetting naar %s wordt niet ondersteund" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "omzetting van %s naar %s wordt niet ondersteund" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "Typ '%s -l' voor een lijst van ondersteunde coderingen." + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standaardinvoer)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Invoer-/uitvoerfout" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Rapporteer gebreken in het programma aan ;\n" +#~ "meld fouten in de vertaling aan .\n" diff --git a/3rdPartner/libiconv/po/pl.gmo b/3rdPartner/libiconv/po/pl.gmo new file mode 100644 index 0000000..e0e96e6 Binary files /dev/null and b/3rdPartner/libiconv/po/pl.gmo differ diff --git a/3rdPartner/libiconv/po/pl.po b/3rdPartner/libiconv/po/pl.po new file mode 100644 index 0000000..15ced29 --- /dev/null +++ b/3rdPartner/libiconv/po/pl.po @@ -0,0 +1,365 @@ +# Polish translation for libiconv. +# Copyright (C) 2003, 2006, 2016, 2022 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Arkadiusz Lipiec , 2003. +# Jakub Bogusz , 2006-2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 20:15+0100\n" +"Last-Translator: Jakub Bogusz \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Składnia: iconv [-c] [-s] [f z_kodu] [-t do_kodu] [plik ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "lub: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Polecenie '%s --help' pozwoli uzyskać więcej informacji.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Składnia: %s [OPCJA...] [-f KODOWANIE] [-t KODOWANIE] [PLIK_WEJ...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "lub: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konwersja tekstu z jednego kodowania do innego.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opcje sterujące formatem wejścia i wyjścia:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODOWANIE, --from-code=KODOWANIE\n" +" kodowanie wejścia\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODOWANIE, --to-code=KODOWANIE\n" +" kodowanie wyjścia\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opcje sterujące zagadnieniami konwersji:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c pominięcie niekonwertowalnych znaków\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=ŁAŃCUCH_FORMATUJĄCY\n" +" zamiennik dla niekonwertowalnych znaków Unicode\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=ŁAŃCUCH_FORMATUJĄCY zamiennik dla niekonwertowalnych bajtów\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=ŁAŃCUCH_FORMATUJĄCY\n" +" zamiennik dla niekonwertowalnych znaków szerokich\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opcje sterujące wyjściem błędów:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent pominięcie komunikatów błędów dotyczących konwersji\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Wyjście informacyjne:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list wypisanie obsługiwanych kodowań\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help wyświetlenie tego opisu i zakończenie\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version wyświetlenie informacji o wersji i zakończenie\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Błędy proszę zgłaszać przez system pod <%s>\n" +"albo pocztą elektroniczną na adres <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza <%s>\n" +"To jest oprogramowanie wolnodostępne: można je modyfikować i rozpowszechniać.\n" +"Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Napisane przez %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Argument %s: dyrektywa formatująca o zmiennej szerokości nie jest tutaj " +"dozwolona." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argument %s: dyrektywa formatująca o zmiennej precyzji nie jest tutaj " +"dozwolona." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"Argument %s: dyrektywa formatująca z rozmiarem nie jest tutaj dozwolona." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argument %s: łańcuch kończy się w środku dyrektywy." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "Argument %s: znak '%c' nie jest poprawnym określeniem konwersji." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argument %s: znak kończący dyrektywę formatującą nie jest poprawnym " +"określeniem konwersji." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u " +"argument." +msgstr[1] "" +"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u " +"argumenty." +msgstr[2] "" +"Argument %s: łańcuch formatujący pobiera więcej niż jeden argument: %u " +"argumentów." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nie można przekonwertować zamiennika bajtu na Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "nie można przekonwertować zamiennika unicode na kodowanie docelowe: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nie można przekonwertować zamiennika bajtu na łańcuch szeroki: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"nie można przekonwertować zamiennika znaku szerokiego na kodowanie docelowe: " +"%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "nie można przekonwertować zamiennika bajtu na kodowanie docelowe: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: nie można skonwertować" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u niedokończony znak lub sekwencja shift" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: błąd wej./wyj." + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konwersja z kodu %s jest nieobsługiwana" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konwersja do kodu %s jest nieobsługiwana" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konwersja z kodu %s do kodu %s jest nieobsługiwana" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "'%s -l' poda listę obsługiwanych kodowań" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "błąd wej./wyj." diff --git a/3rdPartner/libiconv/po/pt_BR.gmo b/3rdPartner/libiconv/po/pt_BR.gmo new file mode 100644 index 0000000..0b4cb6c Binary files /dev/null and b/3rdPartner/libiconv/po/pt_BR.gmo differ diff --git a/3rdPartner/libiconv/po/pt_BR.po b/3rdPartner/libiconv/po/pt_BR.po new file mode 100644 index 0000000..594be1f --- /dev/null +++ b/3rdPartner/libiconv/po/pt_BR.po @@ -0,0 +1,391 @@ +# Brazilian Portuguese translation for libiconv +# Copyright (C) 2016 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# based on the translation to Galician (gl) by +# Jacobo Tarrio Barreiro , 2002. +# Alexandre Folle de Menezes , 2002. +# Rafael Fontenelle , 2014, 2016. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2016-12-12 10:58-0200\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Uso: iconv [-c] [-s] [-f fromcode] [-t tocode] [arquivo ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ou: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Tente \"%s --help\" para mais informações.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Uso: %s [OPÇÃO...] [-f CODIFICAÇÃO] [-t CODIFICAÇÃO] [ENTRADA...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "ou: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Converte texto de uma codificação para outra.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opções para controlar os formatos de entrada e saída:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODIFICAÇÃO, --from-code=CODIFICAÇÃO\n" +" a codificação de entrada\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODIFICAÇÃO, --to-code=CODIFICAÇÃO\n" +" a codificação da saída\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opções para controlar problemas de conversão:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c descarta caracteres não conversíveis\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=TEXTOFORMATO\n" +" substituição de caracteres Unicode no conversíveis\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=TEXTOFORMATO substituição para bytes não conversíveis\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=TEXTOFORMATO\n" +" substituição para caracteres amplos não conversíveis\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opções para controlar saída de erro:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent suprime mensagens de erro sobre problemas de conversão\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Saída informativa:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list lista das codificações com suporte\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help exibe esta ajuda e sai\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version exibe informação da versão e sai\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licença GPLv3+: GNU GPL versão 3 ou posterior \n" +"Esse é um software livre: você está livre para modificá-lo e redistribuí-lo.\n" +"NÃO HÁ GARANTIA, não extensão permitida pela lei.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Escrito por %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"argumento de %s: Uma diretiva de formato com uma variável de largura não " +"permitida aqui." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argumento de %s: Uma diretiva de formato com uma variável de precisão não " +"permitida aqui." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"argumento de %s: Uma diretiva de formato com um tamanho não permitida aqui." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argumento de %s: A string termina no meio de uma diretiva." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"argumento de %s: O caractere \"%c\" não é uma especificação de conversão " +"válida." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argumento de %s: O caractere que termina a diretiva de formato não é uma " +"especificação de conversão válida." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argumento de %s: O texto de formato consume mais do que um argumento: %u " +"argumento." +msgstr[1] "" +"argumento de %s: O texto de formato consume mais do que um argumento: %u " +"argumentos." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "não foi possível converter substituição de bytes para Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "não foi possível converter unicode para codificação desejada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "não foi possível converter substituição de bytes para texto amplo: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "não foi possível converter widechar para codificação desejada: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"não foi possível converter substituição de bytes para codificação desejada: " +"%s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: impossível converter" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: sequência de caracteres ou deslocamentos incompleta" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: erro de E/S" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "não há suporte à conversão de %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "não há suporte à conversão para %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "não há suporte à conversão de %s para %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "tente \"%s -l\" para obter a lista de codificações sem suporte" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "erro de E/S" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Relate problemas para .\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Uso: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [arquivo ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Este é um software livre; veja o código fonte para condições de " +#~ "copyright. Não\n" +#~ "existe NENHUMA garantia; nem mesmo a garantia implícita de " +#~ "COMERCIABILIDADE ou\n" +#~ "ADEQUAÇÃO À QUALQUER FINALIDADE PARTICULAR.\n" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/quot.sed b/3rdPartner/libiconv/po/quot.sed new file mode 100644 index 0000000..0122c46 --- /dev/null +++ b/3rdPartner/libiconv/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/3rdPartner/libiconv/po/remove-potcdate.sin b/3rdPartner/libiconv/po/remove-potcdate.sin new file mode 100644 index 0000000..8c70dfb --- /dev/null +++ b/3rdPartner/libiconv/po/remove-potcdate.sin @@ -0,0 +1,25 @@ +# Sed script that removes the POT-Creation-Date line in the header entry +# from a POT file. +# +# Copyright (C) 2002 Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/3rdPartner/libiconv/po/rm.gmo b/3rdPartner/libiconv/po/rm.gmo new file mode 100644 index 0000000..bf0d78c Binary files /dev/null and b/3rdPartner/libiconv/po/rm.gmo differ diff --git a/3rdPartner/libiconv/po/rm.po b/3rdPartner/libiconv/po/rm.po new file mode 100644 index 0000000..4e34375 --- /dev/null +++ b/3rdPartner/libiconv/po/rm.po @@ -0,0 +1,355 @@ +# translation of libiconv-1.9.1.po to Rumantsch (Rhaeto-Romance) [rm] +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Florian Verdet _goto , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.9.1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2005-02-06 15:27+0100\n" +"Last-Translator: Florian Verdet _goto \n" +"Language-Team: Rhaeto-Romance \n" +"Language: rm\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.2\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Adöver: iconv [-c] [-s] [-f codificaziun d'origin] [-t codificaziun da " +"destinaziun] [datoteca ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "obain: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "obain: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Scrit da %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: nu poss convertir\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: segn incumplet o sequenza da translocaziun\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, fuzzy, c-format +msgid "%s:%u:%u" +msgstr "iconv: %s: " + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +msgid "%s: I/O error" +msgstr "iconv: %s: sbagl d'I/O\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +msgid "conversion from %s unsupported" +msgstr "iconv: conversiun davent da %s na sustgnida\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +msgid "conversion to %s unsupported" +msgstr "iconv: conversiun vers %s na sustgnida\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +msgid "conversion from %s to %s unsupported" +msgstr "iconv: conversiun da %s vers %s na sustgnida\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +msgid "I/O error" +msgstr "iconv: sbagl I/O\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Quist es ün program liber; guarda ils texts da funtana pellas cundiziuns " +#~ "da copcha.\n" +#~ "I nu da INGÜNA garanzia; neir na per MARCHADANTIBILITÀ o per\n" +#~ "l'OPPORTUNITÀ PER ÜN BÖT PARTICULAR.\n" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Adöver: iconv [--binary] [-c] [-s] [-f codificaziun d'origin] [-t " +#~ "codificaziun da destinaziun] [datoteca ...]" diff --git a/3rdPartner/libiconv/po/ro.gmo b/3rdPartner/libiconv/po/ro.gmo new file mode 100644 index 0000000..d4f9bfa Binary files /dev/null and b/3rdPartner/libiconv/po/ro.gmo differ diff --git a/3rdPartner/libiconv/po/ro.po b/3rdPartner/libiconv/po/ro.po new file mode 100644 index 0000000..bfedd73 --- /dev/null +++ b/3rdPartner/libiconv/po/ro.po @@ -0,0 +1,383 @@ +# Mesajele în limba română pentru pachetul libiconv. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Eugen Hoanca , 2003. +# Traducere făcută de EH, pentru versiunea libiconv 1.9.1. +# Acest fișier este distribuit sub aceeași licență ca și pachetul libiconv +# Actualizare a mesajelor, de la fișierul „libiconv-1.15-pre1.pot”. +# Actualizare a codării caracteror, la codarea de caractere UTF-8. +# Actualizare a diacriticelor de la „cu sedilă” la „cu virgulă”. +# Actualizare a algoritmului formelor de plural (de la „două” la „trei”). +# NU și a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# Remus-Gabriel Chelu , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv-1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-19 16:51+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 3.0.1\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Utilizare: iconv [-c] [-s] [-f codificarea_originală] [-t " +"codificarea_dorită] [fișier ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "sau: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Încercați „%s --help” pentru mai multe informații.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Utilizare: %s [OPȚIUNI...] [-f CODIFICAREA] [-t CODIFICAREA] [FIȘIER...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "sau: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Convertește textul dintr-o codificare într-o altă codificare.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Opțiuni care controlează formatul de intrare și de ieșire:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f CODIFICAREA, --from-code=CODIFICAREA\n" +" \n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t CODIFICAREA, --to-code=CODIFICAREA\n" +" codificarea de la ieșire(finală)\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Opțiuni care controlează problemele de conversie:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c ignoră caracterele neconvertibile\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=ȘIR_SUBSTITUTIV\n" +" realizează substituirea caracterelor Unicode neconvertibile\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=ȘIR_SUBSTITUTIV realizează substituirea octeților neconvertibili\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=ȘIR_SUBSTITUTIV\n" +" realizează substituirea caracterelor largi neconvertibile\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Opțiuni care controlează afișarea mesajelor de eroare:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent suprimă mesajele de eroare referitoare la problemele de conversie\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Afișare informații:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list afișează într-o listă, codificările suportate\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help afișează acest ajutor și iese\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version afișează informații despre versiune și iese\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Raportați erorile în sistemul de urmărire a defecțiunilor la <%s>\n" +"sau prin e-mail la <%s>.\n" +"Raportați erorile de traducere la \n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licența GPLv3+: GNU GPL versiunea 3 sau mai mare <%s>.\n" +"Acesta este software liber: sunteți liber să îl modificați și să îl redistribuiți.\n" +"NU există NICIO GARANȚIE, în măsura permisă de lege.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Scris de %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Argumentul %s: o directivă de format cu o lățime variabilă nu este permisă " +"aici." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argumentul %s: o directivă de format cu o precizie variabilă nu este permisă " +"aici." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"Argumentul %s: o directivă de format cu o dimensiune nu este permisă aici." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argumentul %s: șirul se termină în mijlocul unei directive." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"Argumentul %s: caracterul „%c” nu este un specificator de conversie valid." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argumentul %s: caracterul care termină directiva de format nu este un " +"specificator de conversie valid." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argumentul %s: șirul substitutiv consumă mai mult de un argument: %u " +"argument." +msgstr[1] "" +"Argumentul %s: șirul substitutiv consumă mai mult de un argument: %u " +"argumente." +msgstr[2] "" +"Argumentul %s: șirul substitutiv consumă mai mult de un argument: %u de " +"argumente." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nu se poate converti șirul substitutiv de octeți în Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"nu se poate converti șirul substitutiv Unicode în codificarea dorită: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nu se poate converti șirul substitutiv de octeți într-un șir larg: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"nu se poate converti șirul substitutiv de caracter larg(widechar) la " +"codificarea dorită: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"nu se poate converti șirul substitutiv de octeți la codificarea dorită: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: nu se poate converti" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: caracter incomplet sau secvență de schimbare incompletă" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: eroare de In/Ieș(I/O)" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "conversia de la %s nu este suportată" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "conversia la %s nu este suportată" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "conversia de la %s la %s nu este suportată" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "încercați „%s -l” pentru a obține lista de codificări suportate" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)»intrarea standard«" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Eroare de In/Ieș(I/O)" diff --git a/3rdPartner/libiconv/po/ru.gmo b/3rdPartner/libiconv/po/ru.gmo new file mode 100644 index 0000000..ec0b7ca Binary files /dev/null and b/3rdPartner/libiconv/po/ru.gmo differ diff --git a/3rdPartner/libiconv/po/ru.po b/3rdPartner/libiconv/po/ru.po new file mode 100644 index 0000000..f0eb67f --- /dev/null +++ b/3rdPartner/libiconv/po/ru.po @@ -0,0 +1,388 @@ +# Локализация libiconv. +# Copyright (C) 2002 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Dmitry S. Sivachenko , 2002,2003. +# Yuri Kozlov , 2019, 2022. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-19 10:43+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 20.12.0\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Использование: iconv [-c] [-s] [-f вх_кодировка] [-t вых_кодировка] [файл …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "или: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "По команде «%s --help» можно получить дополнительную информацию.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Использование: %s [ПАРАМЕТР…] [-f КОДИРОВКА] [-t КОДИРОВКА] [ВХОДНОЙ_ФАЙЛ…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "или: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Преобразует текст из одной кодировки в другую.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Параметры управления входным и выходным форматом:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f КОДИРОВКА, --from-code=КОДИРОВКА\n" +" кодировка входных данных\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t КОДИРОВКА, --to-code=КОДИРОВКА\n" +" кодировка выходных данных\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Параметры управления проблемами преобразования:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c отбрасывать непреобразующиеся символы\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=СТРОКА_ФОРМАТА\n" +" замена для непреобразующихся символов Юникода\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" +" --byte-subst=СТРОКА_ФОРМАТА\n" +" замена для непреобразующихся байт\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=СТРОКА_ФОРМАТА\n" +" замена для непреобразующихся широких символов\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Параметры управления выводимыми ошибками:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent не выводить ошибки о проблемах с преобразованием\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Вывод информации:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list список поддерживаемых кодировок\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help показать эту справку и выйти\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version показать информацию о версии и выйти\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Сообщайте об ошибках в систему отслеживания <%s>\n" +"или на почту <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Лицензия GPLv3+: GNU GPL версии 3 или новее <%s>\n" +"Это свободное ПО: вы можете изменять и распространять его.\n" +"Нет НИКАКИХ ГАРАНТИЙ в пределах действующего законодательства.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Авторы: %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"аргумент %s: Здесь не допускается директива форматирования переменной ширины." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"аргумент %s: Здесь не допускается директива форматирования переменной " +"точности." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "аргумент %s: Здесь не допускается директива размера." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "аргумент %s: Строка заканчивается на середине директивы." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"аргумент %s: Символ «%c» не является верным спецификатором преобразования." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"аргумент %s: Символ, завершающий директиву форматирования, не является " +"верным спецификатором преобразования." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"аргумент %s: Строка формата задействует более одного аргумента: %u аргумент." +msgstr[1] "" +"аргумент %s: Строка формата задействует более одного аргумента: %u аргумента." +msgstr[2] "" +"аргумент %s: Строка формата задействует более одного аргумента: %u " +"аргументов." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "невозможно преобразовать байтовую подстановку в Юникод: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "невозможно преобразовать юникодную подстановку в целевую кодировку: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "невозможно преобразовать байтовую подстановку в широкую строку: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"невозможно преобразовать широкосимвольную подстановку в целевую кодировку: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "невозможно преобразовать байтовую подстановку в целевую кодировку: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: невозможно преобразовать" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: неполный символ или последовательность сдвига" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: ошибка ввода-вывода" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "преобразование из %s не поддерживается" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "преобразование в %s не поддерживается" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "преобразование из %s в %s не поддерживается" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "список поддерживаемых кодировок доступен по команде «%s -l»" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "ошибка ввода-вывода" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Об ошибках сообщайте по адресу .\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Использование: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] " +#~ "[файл ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Это свободное программное обеспечение; условия копирования приведены в\n" +#~ "исходных текстах программы. Нет НИКАКИХ гарантий; даже гарантии " +#~ "КОММЕРЧЕСКОЙ\n" +#~ "ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.\n" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/sk.gmo b/3rdPartner/libiconv/po/sk.gmo new file mode 100644 index 0000000..59a83da Binary files /dev/null and b/3rdPartner/libiconv/po/sk.gmo differ diff --git a/3rdPartner/libiconv/po/sk.po b/3rdPartner/libiconv/po/sk.po new file mode 100644 index 0000000..d999dc2 --- /dev/null +++ b/3rdPartner/libiconv/po/sk.po @@ -0,0 +1,364 @@ +# Slovak translation of the libiconv. +# Copyright (C) 2002, 2003, 2008, 2016, 2022 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Marcel Telka , 2002, 2003, 2008, 2016, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 21:15+0100\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural= (n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Použitie: iconv [-c] [-s] [-f zkódovania] [-t dokódovania] [súbor ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "alebo: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Pre viac informácií skúste použiť '%s --help'.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Použitie: %s [VOĽBA...] [-f KÓDOVANIA] [-t KÓDOVANIE] [VSTUPNÝSÚBOR...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "alebo: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konvertuje text z jedného kódovania do iného kódovania.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Voľby ovplyvňujúce vstupný a výstupný formát:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KÓDOVANIE, --from-code=KÓDOVANIE\n" +" kódovanie vstupu\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KÓDOVANIE, --to-code=KÓDOVANIE\n" +" kódovanie výstupu\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Voľby ovplyvňujúce problémy s konverziou:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c vynechať nekonvertovateľné znaky\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMÁTOVÝREŤAZEC\n" +" náhrada pre nekonvertovateľné znaky Unicode\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMÁTOVÝREŤAZEC náhrada pre nekonvertovateľné bajty\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMÁTOVÝREŤAZEC\n" +" náhrada pre nekonvertovateľné široké znaky\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Voľby ovplyvňujúce chybový výstup:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent potlačí chybové správy o problémoch s konverziou\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Infomatívny výstup:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list zoznam podporovaných kódovaní\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help zobraziť túto pomoc a skončiť\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version vypísať informáciu o verzii a skončiť\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Chyby oznamujte pomocou nástroja na sledovanie chýb na adrese <%s>\n" +"alebo elektronickou poštou na adresu <%s> (iba anglicky).\n" +"Komentáre k slovenskému prekladu zasielajte na adresu .\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licencia GPLv3+: GNU GPL verzia 3 alebo novšia <%s>\n" +"Toto je slobodný softvér: môžete ho voľne meniť a šíriť ďalej.\n" +"Neposkytuje sa ŽIADNA ZÁRUKA, v rozsahu povolenom zákonmi.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Napísal %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Parameter %s: Formátovacia direktíva s premenlivou šírkou tu nie je " +"prípustná." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Parameter %s: Formátovacia direktíva s premenlivou presnosťou tu nie je " +"prípustná." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"Parameter %s: Formátovacia direktíva s určením šírky tu nie je prípustná." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Parameter %s: Reťazec končí v strede direktívy." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "Parameter %s: Znak '%c' nie je platným konverzným špecifikátorom." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Parameter %s: Znak, ktorý ukončuje formátovaciu direktívu nie je platným " +"konverzným špecifikátorom." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Parameter %s: Formátovací reťazec pohltí viac ako jeden parameter: %u " +"parametrov." +msgstr[1] "" +"Parameter %s: Formátovací reťazec pohltí viac ako jeden parameter: %u " +"parameter." +msgstr[2] "" +"Parameter %s: Formátovací reťazec pohltí viac ako jeden parameter: %u " +"parametre." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nie je možné konvertovať náhradu bajtov do Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "nie je možné konvertovať náhradu Unicode do cieľového kódovania: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nie je možné konvertovať náhradu bajtov na široký reťazec: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"nie je možné konvertovať náhradu širokého znaku do cieľového kódovania: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "nie je možné konvertovať náhradu bajtov do cieľového kódovania: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: nie je možné konvertovať" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: nekompletný znak alebo preraďovacia sekvencia" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: V/V chyba" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konverzia z %s nie je podporovaná" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konverzia do %s nie je podporovaná" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konverzia z %s do %s nie je podporovaná" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "skúste '%s -l' aby ste získali zoznam podporovaných kódovaní" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(štandardný vstup)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "V/V chyba" diff --git a/3rdPartner/libiconv/po/sl.gmo b/3rdPartner/libiconv/po/sl.gmo new file mode 100644 index 0000000..5f7c0f1 Binary files /dev/null and b/3rdPartner/libiconv/po/sl.gmo differ diff --git a/3rdPartner/libiconv/po/sl.po b/3rdPartner/libiconv/po/sl.po new file mode 100644 index 0000000..3ff9597 --- /dev/null +++ b/3rdPartner/libiconv/po/sl.po @@ -0,0 +1,382 @@ +# -*- mode:po; coding:utf-8; -*- Slovenian messages for libiconv. +# Copyright (C) 2002, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Primož Peterlin , 2002, 2006, 2007, 2008. +# $Id: libiconv-1.12.sl.po 1.3 2008/04/27 19:23:24 Primoz Exp $ +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.12\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2008-04-26 09:48+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Uporaba: iconv [-c] [-s] [-f vh_nabor] [-t izh_nabor] [datoteka ...]<" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ali: iconv -l" + +#: src/iconv.c:110 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information.\n" +msgid "Try '%s --help' for more information.\n" +msgstr "Poskusite »%s --help« za več informacij.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Uporaba: %s [IZBIRA...] [-f KODIRANJE] [-t KODIRANJE] [DATOTEKA...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "ali: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Pretvori besedilo iz enega kodnega nabora v drugega.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Izbire, ki določajo vhodni in izhodni zapis:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODIRANJE, --from-code=KODIRANJE\n" +" kodni nabor vhoda\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODIRANJE, --to-code=KODIRANJE\n" +" kodni nabor izhoda\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Izbire, ki določajo odziv na težave pri pretvorbi:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c zavrzi znake, ki jih ni mogoče pretvoriti\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=OBLIKOVNI_NIZ\n" +" zamenjava za nepretvorljive unikodne znake\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=OBLIKOVNI_NIZ zamenjava za nepretvorljive bajte\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=OBLIKOVNI_NIZ\n" +" zamenjava za nepretvorljive široke znake\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Izbire, ki določajo izpis napak:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent brez poročil o napakah pri pretvorbi\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informativni izpis:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list izpiši podprte nabore znakov\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help izpiši ta navodila in končaj\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version izpiši informacijo o različici in končaj\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv2+: GNU GPL version 2 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"GPLv2+: GNU GPL, 2. izdaja ali poznejša \n" +"To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n" +"Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Avtor %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "argument %s: oblikovna direktiva z nestalno širino tu ni dovoljena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"argument %s: oblikovna direktiva z nestalno natančnostjo tu ni dovoljena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "argument %s: oblikovna direktiva z velikostjo tu ni dovoljena." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "argument %s: niz se konča sredi direktive." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "argument %s: znak %c ni veljavno določilo pretvorbe." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"argument %s: znak, ki zaključuje oblikovno direktivo, ni veljavno določilo " +"pretvorbe." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"argument %s: oblikovni niz porabi več kot en argument: %u argumentov." +msgstr[1] "argument %s: oblikovni niz porabi več kot en argument: %u argument." +msgstr[2] "" +"argument %s: oblikovni niz porabi več kot en argument: %u argumenta." +msgstr[3] "" +"argument %s: oblikovni niz porabi več kot en argument: %u argumente." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "nadomestnega bajta ni mogoče pretvoriti v unikod: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "nadomestnega unikoda ni mogoče pretvoriti v ciljni nabor: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "nadomestnega bajta ni mogoče pretvoriti v široki niz: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "pretvorba nadomestnega širokega znaka v ciljni nabor ni mogoča: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "pretvorba nadomestnega bajta v ciljni nabor ni mogoča: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u pretvorba ni mogoča" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u nepopolni znak ali pomično zaporedje" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: V/I napaka" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "pretvorba iz nabora %s ni podprta" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "pretvorba v nabor %s ni podprta" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "pretvorba iz nabora %s v nabor %s ni podprta" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "poskusite »%s -l« za seznam podprtih naborov znakov" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "V/I napaka" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Napake javite na .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "To je prost program; pogoji, pod katerimi ga lahko razmnožujete in\n" +#~ "razširjate, so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n" +#~ "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Uporaba: iconv [--binary] [-c] [-s] [-f vh_nabor] [-t izh_nabor] " +#~ "[datoteka ...]" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/sq.gmo b/3rdPartner/libiconv/po/sq.gmo new file mode 100644 index 0000000..4d528dc Binary files /dev/null and b/3rdPartner/libiconv/po/sq.gmo differ diff --git a/3rdPartner/libiconv/po/sq.po b/3rdPartner/libiconv/po/sq.po new file mode 100644 index 0000000..097978a --- /dev/null +++ b/3rdPartner/libiconv/po/sq.po @@ -0,0 +1,359 @@ +# Përkthimi i mesazheve të libiconv në shqip. +# Copyright (C) 2004 Free Software Foundation, Inc. +# Laurent Dhima , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.9.1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2004-08-08 00:36+0200\n" +"Last-Translator: Laurent Dhima \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Përdorimi: iconv [-c] [-s] [-f ngakodi] [-t tekkodi] [file ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "ose: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +#| msgid "or: iconv -l" +msgid "or: %s -l\n" +msgstr "ose: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Shkruar nga %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +#| msgid "iconv: %s: cannot convert\n" +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: konvertimi është i pamundur\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +#| msgid "iconv: %s: incomplete character or shift sequence\n" +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: simbol apo sekuencë ndryshuesish e paplotë\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +#| msgid "iconv: %s: I/O error\n" +msgid "%s: I/O error" +msgstr "iconv: %s: gabim I/O\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s unsupported\n" +msgid "conversion from %s unsupported" +msgstr "iconv: konvertimi nga %s nuk suportohet\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +#| msgid "iconv: conversion to %s unsupported\n" +msgid "conversion to %s unsupported" +msgstr "iconv: konvertimi në %s nuk suportohet\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s to %s unsupported\n" +msgid "conversion from %s to %s unsupported" +msgstr "iconv: konvertimi nga %s në %s nuk suportohet\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(stdin)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +#| msgid "iconv: I/O error\n" +msgid "I/O error" +msgstr "iconv: gabim I/O\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Përdorimi: iconv [--binary] [-c] [-s] [-f ngakodi] [-t tekkodi] [file ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Ky është software i lirë; shiko burimin për kushtet e kopjimit. NUK " +#~ "jepet asnjë\n" +#~ "garanci; as për TREGËTI apo PËRDORIM PËR NJË QËLLIM TË VEÇANTË.\n" + +#, c-format +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/sr.gmo b/3rdPartner/libiconv/po/sr.gmo new file mode 100644 index 0000000..9924b35 Binary files /dev/null and b/3rdPartner/libiconv/po/sr.gmo differ diff --git a/3rdPartner/libiconv/po/sr.po b/3rdPartner/libiconv/po/sr.po new file mode 100644 index 0000000..ac8e9c3 --- /dev/null +++ b/3rdPartner/libiconv/po/sr.po @@ -0,0 +1,368 @@ +# Serbian translation of libiconv. +# Copyright © 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Aleksandar Jelenak , 2006. +# Мирослав Николић , 2012–2022. +msgid "" +msgstr "" +"Project-Id-Version: libiconv-1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-15 20:43+0200\n" +"Last-Translator: Мирослав Николић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Употреба: iconv [-c] [-s] [-f из_кода] [-t у_код] [датотека ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "или: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Покушајте „%s --help“ за више информација.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Употреба: %s [ОПЦИЈА...] [-f КОДИРАЊЕ] [-t КОДИРАЊЕ] [УЛАЗНАДАТОТЕКА...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "или: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Претвара текст из једног кодирања у друго.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Опције за одређивање улазног и излазног формата:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f КОДИРАЊЕ, --from-code=КОДИРАЊЕ\n" +" улазно кодирање\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t КОДИРАЊЕ, --to-code=КОДИРАЊЕ\n" +" излазно кодирање\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Опције за управљање проблемима претварања:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c одбацује непретворљиве знакове\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=ФОРМАТНИСКА\n" +" замена за непретворљиве знакове Уникода\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=ФОРМАТНИСКА замена за непретворљиве бајтове\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=ФОРМАТНИСКА\n" +" замена за непретворљиве широке знакове\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Опције за управљање исписа грешака:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent потискује поруке грешака о проблемима претварања\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Информативни испис:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list приказује подржана кодирања\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help приказује ову помоћ и излази\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version исписује издање и излази\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Грешке пријавите на пратиоцу грешака на <%s>\n" +"или е-поштом на <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Лиценца ОЈЛв3+: ГНУ ОЈЛ издање 3 или новије <%s>.\n" +"Ово је слободан софтвер: слободни сте да га мењате и расподељујете.\n" +"Не постоји НИКАКВА ГАРАНЦИЈА, у оквирима дозвољеним законом.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Написао је %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"%s аргумент: Наредба формата са променљивом ширином овде није дозвољена." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"%s аргумент: Наредба формата за променљивом тачношћу овде није дозвољена." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s аргумент: Наредба формата са величином овде није дозвољена." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s аргумент: Ниска је завршила у сред наредбе." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s аргумент: Знак „%c“ није исправан одредник претварања." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"%s аргумент: Завршни знак наредбе формата није важећи за задавање претварања." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"%s аргумент: Ниска формата троши више од једног аргумента: %u аргумент." +msgstr[1] "" +"%s аргумент: Ниска формата троши више од једног аргумента: %u аргумента." +msgstr[2] "" +"%s аргумент: Ниска формата троши више од једног аргумента: %u аргумената." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "не могу да претворим замену бајта у Уникод: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "не могу да претворим замену уникода у циљно кодирање: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "не могу да претворим замену бајта у широку ниску: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "не могу да претворим замену широког знака у циљно кодирање: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "не могу да претворим замену бајта у циљно кодирање: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: не могу да претворим" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: непотпуни низ знака или поераја" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: У/И грешка" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "претварање из %s није подржано" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "претварање у %s није подржано" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "претварање из %s у %s није подржано" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "покушајте „%s -l“ да добијете списак подржаних кодирања" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(стдул)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "У/И грешка" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Пријавите грешке на .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Ово је слободан софтвер; видети изворни кôд за услове умножавања. НЕ " +#~ "постоји\n" +#~ "гаранција; чак ни о ТРЖИШНОЈ ВРЕДНОСТИ или ИСПУЊАВАЊУ ОДРЕЂЕНЕ ПОТРЕБЕ.\n" diff --git a/3rdPartner/libiconv/po/stamp-po b/3rdPartner/libiconv/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/3rdPartner/libiconv/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/3rdPartner/libiconv/po/sv.gmo b/3rdPartner/libiconv/po/sv.gmo new file mode 100644 index 0000000..1d340c4 Binary files /dev/null and b/3rdPartner/libiconv/po/sv.gmo differ diff --git a/3rdPartner/libiconv/po/sv.po b/3rdPartner/libiconv/po/sv.po new file mode 100644 index 0000000..7252203 --- /dev/null +++ b/3rdPartner/libiconv/po/sv.po @@ -0,0 +1,383 @@ +# Swedish messages for libiconv. +# Copyright © 2002, 2006, 2007, 2008, 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Christian Rose , 2002. +# Daniel Nylander , 2006, 2007, 2008. +# Anders Jonsson , 2017. +# Luna Jernberg , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 12:57+0100\n" +"Last-Translator: Luna Jernberg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Användning: iconv [-c] [-s] [-f frånkod] [-t tillkod] [fil …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "eller: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Prova ”%s --help” för mer information.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Användning: %s [FLAGGA…] [-f KODNING] [-t KODNING] [INMATNINGSFIL…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "eller: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Konverterar text från en kodning till en annan kodning.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Flaggor som styr formatet på inmatning och utmatning:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f KODNING, --from-code=KODNING\n" +" kodningen på inmatningen\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t KODNING, --to-code=KODNING\n" +" kodningen på utmatningen\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Flaggor som kontrollerar konverteringsproblem:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c förkasta tecken som inte går att konvertera\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATSTRÄNG\n" +" ersättning av Unicode-tecken som inte går att konvertera\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATSTRÄNG ersättning av inte konverterbara byte\n" + +# Breda tecken? Finns det bättre ord? +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATSTRÄNG\n" +" ersättning av inte konverterbara breda tecken\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Flaggor som kontrollerar felutskrift:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent tysta felmeddelanden om konverteringsproblem\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Informativ utmatning:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list lista kodningar som stöds\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help visa denna hjälp och avsluta\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version skriv ut versionsinformation och avsluta\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Rapportera fel i felrapporteringssystemet på <%s>\n" +"eller via e-post till <%s>.\n" +"Rapportera fel eller synpunkter på översättningen till .\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licens GPLv3+: GNU GPL version 3 eller senare <%s>\n" +"Det här är fri programvara: du kan ändra och distribuera den.\n" +"Det finns INGEN GARANTI, så långt lagen tillåter.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Skrivet av %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Argument %s: Ett formatdirektiv med en variabel bredd tillåts inte här." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Argument %s: Ett formatdirektiv med en variabel precision tillåts inte här." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "Argument %s: Ett formatdirektiv med en storlek tillåts inte här." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Argument %s: Strängen slutar mitt i ett direktiv." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "Argument %s: Tecknet \"%c\" är inte en giltig konverteringsangivare." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Argument %s: Tecknet som avslutar formatdirektivet är inte en giltig " +"konverteringsangivare." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Argument %s: Formatsträngen konsumerar fler än ett argument: %u argument." +msgstr[1] "" +"Argument %s: Formatsträngen konsumerar fler än ett argument: %u argument." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "kan inte konvertera byte-ersättning till Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "kan inte konvertera unicode-ersättning till målkodning: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "kan inte konvertera byte-ersättning till bred sträng: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "kan inte konvertera bredteckenersättning till målkodning: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "kan inte konvertera byte-ersättning till målkodning: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: kan inte konvertera" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: ofullständigt tecken eller skiftsekvens" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: In-/Ut-fel" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "konvertering från %s stöds inte" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "konvertering till %s stöds inte" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "konvertering från %s till %s stöds inte" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "prova ”%s -l” för att få listan på kodningar som stöds" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standard in)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "In-/Ut-fel" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Rapportera fel till .\n" +#~ "Skicka synpunkter på översättningen till .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Detta är fri programvara; se källkoden för kopieringsvillkor. Det finns\n" +#~ "INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT\n" +#~ "SPECIELLT ÄNDAMÅL.\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Användning: iconv [--binary] [-c] [-s] [-f frånkod] [-t tillkod] [fil ...]" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/tr.gmo b/3rdPartner/libiconv/po/tr.gmo new file mode 100644 index 0000000..6cc3bbc Binary files /dev/null and b/3rdPartner/libiconv/po/tr.gmo differ diff --git a/3rdPartner/libiconv/po/tr.po b/3rdPartner/libiconv/po/tr.po new file mode 100644 index 0000000..d40f801 --- /dev/null +++ b/3rdPartner/libiconv/po/tr.po @@ -0,0 +1,363 @@ +# libiconv Turkish translation. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Deniz Akkus Kanca , 2002. +# This file is distributed under the same license as the libiconv package. +# Deniz Akkus Kanca , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.8\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2002-06-28 11:00+0200\n" +"Last-Translator: Deniz Akkus Kanca \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Kullanım: iconv [-c] [-s] [-f kaynakkod] [-t hedefkod] [dosya ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "veya: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, fuzzy, c-format, no-wrap +#| msgid "or: iconv -l" +msgid "or: %s -l\n" +msgstr "veya: iconv -l" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr "" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr "" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr "" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr "" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr "" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr "" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Yazan: %s\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, fuzzy, c-format +#| msgid "iconv: %s: cannot convert\n" +msgid "%s:%u:%u: cannot convert" +msgstr "iconv: %s: dönüştürülemedi\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, fuzzy, c-format +#| msgid "iconv: %s: incomplete character or shift sequence\n" +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "iconv: %s: eksik karakter ya da shift dizisi\n" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, fuzzy, c-format +#| msgid "iconv: %s: I/O error\n" +msgid "%s: I/O error" +msgstr "iconv: %s: I/O hatası\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s unsupported\n" +msgid "conversion from %s unsupported" +msgstr "iconv: %s'den dönüşüm desteklenmiyor\n" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, fuzzy, c-format +#| msgid "iconv: conversion to %s unsupported\n" +msgid "conversion to %s unsupported" +msgstr "iconv: %s'e dönüşüm desteklenmiyor\n" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, fuzzy, c-format +#| msgid "iconv: conversion from %s to %s unsupported\n" +msgid "conversion from %s to %s unsupported" +msgstr "iconv: %s'den %s'e dönüşüm desteklenmiyor\n" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(standart girdi)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, fuzzy, c-format +#| msgid "iconv: I/O error\n" +msgid "I/O error" +msgstr "iconv: I/O hatası\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Kullanım: iconv [--binary] [-c] [-s] [-f kaynakkod] [-t hedefkod] " +#~ "[dosya ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Bu bir serbest yazılımdır; kopyalama kuralları için kaynak koduna " +#~ "bakınız.\n" +#~ "HİÇ BİR garantisi yoktur; hatta SATILABİLİRLİĞİ veya HERHANGİ BİR AMACA\n" +#~ "UYGUNLUĞU için dahi garanti verilmez.\n" + +#, c-format +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/uk.gmo b/3rdPartner/libiconv/po/uk.gmo new file mode 100644 index 0000000..bd2acaa Binary files /dev/null and b/3rdPartner/libiconv/po/uk.gmo differ diff --git a/3rdPartner/libiconv/po/uk.po b/3rdPartner/libiconv/po/uk.po new file mode 100644 index 0000000..23d3a96 --- /dev/null +++ b/3rdPartner/libiconv/po/uk.po @@ -0,0 +1,392 @@ +# Ukrainian translation of libiconv. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Volodymyr M. Lisivka , 2003. +# Yuri Chornoivan , 2011, 2016, 2022. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 12:49+0200\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Lokalize 20.12.0\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Використання: iconv [-c] [-s] [-f з_кодування] [-t у_кодування] [файл ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "або: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Щоб дізнатися більше, віддайте команду «%s --help».\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Використання: %s [ПАРАМЕТР...] [-f КОДУВАННЯ] [-t КОДУВАННЯ] [ФАЙЛ ВХІДНИХ ДАНИХ...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "або: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Перетворює текст у одному кодуванні на текст у іншому кодуванні.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Параметри керування форматом вхідних та вихідних даних:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f КОДУВАННЯ, --from-code=КОДУВАННЯ\n" +" кодування вхідних даних\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t КОДУВАННЯ, --to-code=КОДУВАННЯ\n" +" кодування вихідних даних\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Параметри керування обробкою помилок під час перетворення:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c викидати символи, непридатні до перетворення\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=РЯДОК_ФОРМАТУВАННЯ\n" +" заміна непридатних до перетворення символів Unicode\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=РЯДОК_ФОРМАТУВАННЯ заміна непридатних до перетворення байтів\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --wide-subst=РЯДОК_ФОРМАТУВАННЯ\n" +" заміна непридатних до перетворення «широких» символів\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Параметри керування показом повідомлень про помилки:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent придушити повідомлення щодо проблем під час перетворення\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Показ інформації:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list показати список підтримуваних кодувань\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help показати ці довідкові дані і завершити роботу\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version показати дані щодо версії і завершити роботу\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Про вади слід повідомляти за допомогою системи стеження за вадами: <%s>\n" +"або електронною поштою на адресу <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, <%s>\n" +"Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати його.\n" +"Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених законодавством.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Автор — %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"Аргумент %s: тут не можна використовувати команду форматування з визначенням " +"ширини змінної." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Аргумент %s: тут не можна використовувати команду форматування з визначенням " +"точності змінної." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"Аргумент %s: тут не можна використовувати команду форматування з визначенням " +"розміру." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Аргумент %s: завершення рядка посередині команди." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"Аргумент %s: символ «%c» не є коректним символом визначення перетворення." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Аргумент %s: символ, що перериває команду форматування не є коректним " +"символом визначення перетворення." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів." +msgstr[1] "" +"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів." +msgstr[2] "" +"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів." +msgstr[3] "" +"Аргумент %s: слід вказати декілька аргументів, а саме %u аргументів." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "не вдалося перетворити замінник байтів у символ Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "не вдалося перетворити замінник unicode у кодування призначення: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "не вдалося перетворити замінник байтів у «широкий» рядок: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "" +"не вдалося перетворити замінник «широкого» символу у кодування призначення: " +"%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "не вдалося перетворити замінник байтів у кодування призначення: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: не вдалося перетворити" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: незавершений символ чи послідовність зміни регістру" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: помилка вводу-виводу" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "підтримки перетворення з %s не передбачено" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "підтримки перетворення у %s не передбачено" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "підтримки перетворення з %s у %s не передбачено" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "" +"список кодувань, які підтримуються програмою, можна отримати командою «%s -l»" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(стд. ввід)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "помилка вводу-виводу" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Про вади слід повідомляти на адресу .\n" + +#~ msgid "" +#~ "Usage: iconv [--binary] [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +#~ msgstr "" +#~ "Використання:\n" +#~ " iconv [--binary] [-c] [-s] [-f з_кодування] [-t у_кодування] [файл ...]" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Це вільне програмне забезпечення; умови копіювання приведені у\n" +#~ "джерельних текстах програми. Нема НІЯКИХ гарантій; навіть гарантії " +#~ "КОМЕРЦІЙНОЇ\n" +#~ "ЦІННОСТІ або ПРИДАТНОСТІ ДЛЯ КОНКРЕТНОЇ ЦІЛІ.\n" + +#~ msgid "iconv: %s: " +#~ msgstr "iconv: %s: " diff --git a/3rdPartner/libiconv/po/vi.gmo b/3rdPartner/libiconv/po/vi.gmo new file mode 100644 index 0000000..090e29e Binary files /dev/null and b/3rdPartner/libiconv/po/vi.gmo differ diff --git a/3rdPartner/libiconv/po/vi.po b/3rdPartner/libiconv/po/vi.po new file mode 100644 index 0000000..8333749 --- /dev/null +++ b/3rdPartner/libiconv/po/vi.po @@ -0,0 +1,369 @@ +# Vietnamese Translation for Libiconv. +# Bản dịch tiếng Việt dành cho gói libiconv. +# Copyright © 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Clytie Siddall , 2005-2007. +# Trần Ngọc Quân , 2016, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-03-01 14:31+0700\n" +"Last-Translator: Trần Ngọc Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "Cách dùng: iconv [-c] [-s] [-f từ_mã] [-t sang_mã] [tập_tin …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "hoặc: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Hãy chạy lệnh “%s --help” để biết thêm thông tin.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Cách dùng: %s [TÙY_CHỌN…] [-f BẢNG_MÃ] [-t BẢNG_MÃ] [TẬP_TIN_NHẬP…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "hoặc: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Chuyển đổi văn bản từ bảng mã này sang bảng mã khác.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Các tùy chọn điều khiển định dạng nhập vào và xuất ra:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f BẢNG_MÃ, --from-code=BẢNG_MÃ\n" +" bảng mã của đầu vào\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t BẢNG_MÃ, --to-code=BẢNG_MÃ\n" +" bảng mã của đầu ra\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Các tùy chọn điều khiển vấn đề chuyển đổi:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c loại bỏ các ký tự không thể chuyển đổi\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=CHUỖI_ĐỊNH_DẠNG\n" +" thay thế các ký tự Unicode không thể chuyển đổi\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=CHUỖI_ĐỊNH_DẠNG thay thế các byte không thể chuyển đổi\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=CHUỖI_ĐỊNH_DẠNG\n" +" thay thế các ký tự rộng không thể chuyển đổi\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Các tùy chọn điều khiển kết xuất lỗi:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent thu hồi các thông điệp về vấn đề chuyển đổi\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Xuất thông tin:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list liệt kê các bảng mã được hỗ trợ\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help hiển thị trợ giúp này rồi thoát\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version hiển thị thông tin về phiên bản rồi thoát\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"Báo cáo lỗi vào bộ theo dõi lỗi ở <%s>\n" +"hoặc gửi thư điện tử đến <%s>.\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Giấy phép GPL pb3+ : Giấy phép Công cộng GNU phiên bản 3 hay sau <%s>\n" +"Đây là phần mềm tự do: bạn có quyền sửa đổi và phát hành lại nó.\n" +"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều khiển được pháp luật cho phép.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Viết bởi %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "Đối số %s: ở đây không cho phép chỉ thị định dạng có độ rộng thay đổi." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"Đối số %s: ở đây không cho phép chỉ thị định dạng có độ chính xác thay đổi." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "Đối số %s: ở đây không cho phép chỉ thị định dạng có kích cỡ." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "Đối số %s: chuỗi kết thúc ở giữa chỉ thị." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "Đối số %s: ký tự “%c” không phải là bộ xác định chuyển đổi hợp lệ." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"Đối số %s: ký tự kết thúc chỉ thị định dạng không phải là bộ xác định chuyển " +"đổi hợp lệ." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "%s đối số : chuỗi định dạng ăn nhiều đối số : %u đối số." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "không thể chuyển đổi sự thay thế byte sang Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "không thể chuyển đổi sự thay thế Unicode sang bảng mã đích: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "không thể chuyển đổi sự thay thế byte sang chuỗi rộng: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "không thể chuyển đổi sự thay thế ký tự rộng sang bảng mã đích: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "không thể chuyển đổi sự thay thế byte sang bảng mã đích: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: không thể chuyển đổi" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: dây kiểu ký tự hay dịch chưa hoàn thành" + +# Variable: don't translate / Biến: đừng dịch +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: lỗi V/R" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "không hỗ trợ khả năng chuyển đổi từ %s" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "không hỗ trợ khả năng chuyển đổi sang %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "không hỗ trợ khả năng chuyển đổi từ %s sang %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "hãy thử lệnh “%s -l” để xem danh sách các bảng mã được hỗ trợ" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(đầu vào tiêu chuẩn)" + +# Variable: don't translate / Biến: đừng dịch +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Lỗi V/R" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "Thông báo lỗi cho .\n" +#~ "Thông báo lỗi dịch cho: .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Chương trình này là phần mềm tự do; xem mã nguồn để tìm điều kiện sao " +#~ "chép.\n" +#~ "KHÔNG CÓ BẢO HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý\n" +#~ "KHẢ NĂNG BÁN HAY KHẢ NĂNG LÀM ĐƯỢC VIỆC DỨT KHOÁT.\n" diff --git a/3rdPartner/libiconv/po/wa.gmo b/3rdPartner/libiconv/po/wa.gmo new file mode 100644 index 0000000..c4bc26d Binary files /dev/null and b/3rdPartner/libiconv/po/wa.gmo differ diff --git a/3rdPartner/libiconv/po/wa.po b/3rdPartner/libiconv/po/wa.po new file mode 100644 index 0000000..3b6e55d --- /dev/null +++ b/3rdPartner/libiconv/po/wa.po @@ -0,0 +1,380 @@ +# Translation of libiconv into the walloon language. +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# +# Pablo Saratxaga , 2003, 2004, 2007, 2019. +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.15-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2019-10-27 14:19+0100\n" +"Last-Translator: Pablo Saratxaga \n" +"Language-Team: Walloon <(nothing)>\n" +"Language: wa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 2.0\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "" +"Po s' è siervi: iconv [-c] [-s] [-f ecôd._sourd] [-t ecôd._såme] [fitchî...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "oudonbén: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "Sayîz «%s --help» po pus di racsegnes.\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "Po s' è siervi: %s [TCHUZE...] [-f ECÔDAEDJE] [FITCHÎ-INTRÊYE...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "oudonbén: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "Kiviersaedje di tecse d' èn ecôdaedje a èn ôte ecôdaedje.\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "Tchuzes po controler li cogne di l' intrêye et l' rexhowe:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f ECÔDAEDJE, --from-code=ECÔDAEDJE\n" +" l' ecôdaedje do tecse d' intrêye\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t ECÔDAEDJE, --to-code=ECÔDAEDJE\n" +" l' ecôdaedje do tecse e rexhowe\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "Tchuzes po controler les problinmes di kiviersaedje:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c leyî toumer les caracteres ki n' polèt nén esse kiviersés\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=TCHINNE_FORMAT\n" +" replaeçaedje po les caracteres unicôde ki n' polèt nén esse kiviersés\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=TCHINNE_FORMAT replaeçaedje po les octets ki n' polèt nén esse kiviersés\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=TCHINNE_FORMAT\n" +" replaeçaedje po les caracteres wchar ki n' polèt nén esse kiviersés\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "Tchuzes po controler li rexhowe d' arokes:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent èn nén håyner les messaedjes d' aroke so les problinmes di cviersaedje\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "Rexhowe d' infôrmåcion:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list djivêye des ecôdaedjes sopoirtés\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help mostere ci messaedje d' aidance chal.\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version mostere des infôrmåcions sol modêye do programe\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, fuzzy, c-format, no-wrap +#| msgid "" +#| "License GPLv3+: GNU GPL version 3 or later \n" +#| "This is free software: you are free to change and redistribute it.\n" +#| "There is NO WARRANTY, to the extent permitted by law.\n" +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"Licince GPLv3+ : Licince Publike GNU modêye 3 ou pus hôte \n" +"Çouchal est on libe programe: vos estoz libe del candjî eyet del cossemer.\n" +"I n' a NOLE WAERANTEYE, ossu lon k' est permis påzès lwès.\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "Sicrît pa %s.\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "" +"årgumint «%s»: Ene directive di format avou ene lårdjeur variåve ni s' pout " +"nén eployî cial." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "" +"årgumint «%s»: Ene directive di format avou ene precizion variåve ni s' pout " +"nén eployî chal." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "" +"årgumint «%s»: Ene directive di format avou ene grandeur ni s' pout nén " +"eployî chal." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "årgumint «%s»: Li tchinne finixh e plin mitan d' ene directive." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "" +"årgumint «%s»: Li caractere «%c» n' est nén on specifieu d' kiviersaedje " +"valide." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "" +"årgumint «%s»: Li caractere ki finixh li directive di format n' est nén on " +"specifieu d' kiviersaedje valide." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "" +"årgumint «%s»: Li tchinne di format eploye pus d' èn årgumint: %u årgumint." +msgstr[1] "" +"årgumint «%s»: Li tchinne di format eploye pus d' èn årgumint: %u årgumints." + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "dji n' sai cvierser des replaeçaedjes d' octets viè unicôde: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "" +"dji n' sai cvierser des replaeçaedjes unicôde viè l' ecôdaedje såme: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "" +"dji n' sai cvierser des replaeçaedjes d' octets viè des tchinnes wchar: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "dji n' sai cvierser des replaeçaedjes wchar viè l' ecôdaedje såme: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "" +"dji n' sai cvierser des replaeçaedjes d' octets viè l' ecôdaedje såme: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: dji n' sai fé l' kiviersaedje" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s: %u:%u: caractere ou secwince di candjmint nén complete" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: aroke d' intrêye/rexhowe" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "li cviersaedje a pårti d' l' ecôdaedje %s n' est nén sopoirté" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "li cviersaedje viè l' ecôdaedje %s n' est nén sopoirté" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "li cviersaedje di l' ecôdaedje %s viè %s n' est nén sopoirté" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "sayîz «%s -l» po-z aveur li djivêye des ecôdaedjes sopoirtés" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(intrêye sitandård)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "Aroke d' I/R" + +#~ msgid "Report bugs to .\n" +#~ msgstr "Evoyîz les rapoirts di bugs a .\n" + +#~ msgid "" +#~ "This is free software; see the source for copying conditions. There is " +#~ "NO\n" +#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " +#~ "PURPOSE.\n" +#~ msgstr "" +#~ "Çouchal, c' est on libe programe; vos l' poloz bén spåde et sel poloz vs\n" +#~ "bén candjî tot shuvant li Licince Publike Djeneråle (GPL)\n" +#~ "I n' a NOLE WAERANTEYE; nén minme ki vos VINDRÎZ bén\n" +#~ "li programe ou ki vos vs è SIEVRÎZ BÉN PO ENE SÔRE OU L' ÔTE.\n" diff --git a/3rdPartner/libiconv/po/zh_CN.gmo b/3rdPartner/libiconv/po/zh_CN.gmo new file mode 100644 index 0000000..cc4c936 Binary files /dev/null and b/3rdPartner/libiconv/po/zh_CN.gmo differ diff --git a/3rdPartner/libiconv/po/zh_CN.po b/3rdPartner/libiconv/po/zh_CN.po new file mode 100644 index 0000000..73a491e --- /dev/null +++ b/3rdPartner/libiconv/po/zh_CN.po @@ -0,0 +1,354 @@ +# libiconv Simplified Chinese translation +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Wang Jian , 2003 +# Ji ZhengYu , 2008 +# Boyuan Yang <073plan@gmail.com>, 2018, 2022 +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-13 11:40-0500\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.4.3\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "用法:iconv [-c] [-s] [-f 输入编码] [-t 输出编码] [文件 ...]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "或: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "尝试‘%s --help’以获得更多信息。\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "用法: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "或者: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "将文本从一种编码转换成另一种编码。\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "控制输入输出格式的选项:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f ENCODING, --from-code=ENCODING\n" +" 输入编码\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t ENCODING, --to-code=ENCODING\n" +" 输出编码\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "控制字符转换的选项:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c 忽略不可转换的字符\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=FORMATSTRING\n" +" 替代不可转换的 Unicode 字符\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=FORMATSTRING 替代不可转换的字节\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=FORMATSTRING\n" +" 替代不可转换的宽字符\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "控制错误输出的选项:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent 不显示有关转换出错的信息\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "输出信息:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list 列出支持的编码\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help 显示此帮助并退出\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version 显示版本信息并退出\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"请将软件错误提交至 bug 跟踪系统 <%s>\n" +"或发送电子邮件到 <%s>。\n" +"请将翻译错误报告至简体中文邮件列表 。\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"授权 GPLv3+: GNU GPL 第三版或后续版本 <%s>\n" +"此软件为自由软件:您可对其自由修改并重新发布。\n" +"在法律所允许的范围内不做任何担保。\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "由 %s 编写。\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "%s 参数: 此处不允许用可变长度的命令格式。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "%s 参数: 此处不允许用可变精度的命令格式。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s 参数: 此处不允许用含大小的命令格式。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s 参数: 字符串在命令中部终止。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s 参数: 字符‘%c’不是有效的转义符。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "%s 参数: 用于终止命令格式的字符不是有效的转义符。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "%s 参数: 格式字符串需要更多的参数: %u 参数。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "无法将欲替换字节转换成 Unicode: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "无法将欲替换 unicode 字元转换成目标编码: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "无法将欲替换字节转换成宽字符串: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "无法将欲替换的宽字符转换成目标编码: %s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "无法将欲替换字节转换成目标编码: %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u: 无法转换" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u: 不完整的字符或者替换序列" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s: 输入/输出错误" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "不支持从 %s 进行转换" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "不支持转换到 %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "不支持从 %s 转换到 %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "尝试用‘%s -l’获取所支持的编码列表" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(标准输入)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "输入/输出错误" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "请向 <%s> 报告软件错误。\n" +#~ "请向 报告翻译错误。\n" diff --git a/3rdPartner/libiconv/po/zh_TW.gmo b/3rdPartner/libiconv/po/zh_TW.gmo new file mode 100644 index 0000000..e63f4a9 Binary files /dev/null and b/3rdPartner/libiconv/po/zh_TW.gmo differ diff --git a/3rdPartner/libiconv/po/zh_TW.po b/3rdPartner/libiconv/po/zh_TW.po new file mode 100644 index 0000000..e7c1833 --- /dev/null +++ b/3rdPartner/libiconv/po/zh_TW.po @@ -0,0 +1,353 @@ +# Traditional Chinese Messages for libiconv. +# Copyright (C) 2003, 05 Free Software Foundation, Inc. +# This file is distributed under the same license as the libiconv package. +# Wang Jian , 2003. +# Wei-Lun Chao , 2005, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libiconv 1.17-pre1\n" +"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n" +"POT-Creation-Date: 2022-02-12 13:29+0100\n" +"PO-Revision-Date: 2022-02-16 00:25+0800\n" +"Last-Translator: Yi-Jyun Pan \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 3.0.1\n" + +#. TRANSLATORS: The first line of the short usage message. +#: src/iconv.c:104 +msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]" +msgstr "用法:iconv [-c] [-s] [-f 來源編碼] [-t 目的編碼] [檔案 …]" + +#. TRANSLATORS: The second line of the short usage message. +#. Align it correctly against the first line. +#: src/iconv.c:108 +msgid "or: iconv -l" +msgstr "或: iconv -l" + +#: src/iconv.c:110 +#, c-format +msgid "Try '%s --help' for more information.\n" +msgstr "嘗試「%s --help」以獲得更多資訊。\n" + +#. TRANSLATORS: The first line of the long usage message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:115 +#, c-format, no-wrap +msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n" +msgstr "用法:%s [選項…] [-f 編碼] [-t 編碼] [輸入檔…]\n" + +#. TRANSLATORS: The second line of the long usage message. +#. Align it correctly against the first line. +#. The %s placeholder expands to the program name. +#: src/iconv.c:122 +#, c-format, no-wrap +msgid "or: %s -l\n" +msgstr "或: %s -l\n" + +#. TRANSLATORS: Description of the iconv program. +#: src/iconv.c:128 +#, c-format, no-wrap +msgid "Converts text from one encoding to another encoding.\n" +msgstr "將文字從一種編碼轉換到另一種編碼。\n" + +#: src/iconv.c:132 +#, c-format, no-wrap +msgid "Options controlling the input and output format:\n" +msgstr "控制輸入與輸出格式的選項:\n" + +#: src/iconv.c:135 +#, c-format, no-wrap +msgid "" +" -f ENCODING, --from-code=ENCODING\n" +" the encoding of the input\n" +msgstr "" +" -f 編碼, --from-code=編碼\n" +" 輸入的編碼\n" + +#: src/iconv.c:139 +#, c-format, no-wrap +msgid "" +" -t ENCODING, --to-code=ENCODING\n" +" the encoding of the output\n" +msgstr "" +" -t 編碼, --to-code=編碼\n" +" 輸出的編碼\n" + +#: src/iconv.c:144 +#, c-format, no-wrap +msgid "Options controlling conversion problems:\n" +msgstr "控制轉換問題的選項:\n" + +#: src/iconv.c:147 +#, c-format, no-wrap +msgid " -c discard unconvertible characters\n" +msgstr " -c 捨棄無法轉換的字元\n" + +#: src/iconv.c:150 +#, c-format, no-wrap +msgid "" +" --unicode-subst=FORMATSTRING\n" +" substitution for unconvertible Unicode characters\n" +msgstr "" +" --unicode-subst=格式字串\n" +" 做為無法轉換的萬國碼替代字元\n" + +#: src/iconv.c:154 +#, c-format, no-wrap +msgid " --byte-subst=FORMATSTRING substitution for unconvertible bytes\n" +msgstr " --byte-subst=格式字串 做為無法轉換的替代位元組\n" + +#: src/iconv.c:157 +#, c-format, no-wrap +msgid "" +" --widechar-subst=FORMATSTRING\n" +" substitution for unconvertible wide characters\n" +msgstr "" +" --widechar-subst=格式字串\n" +" 做為無法轉換的替代寬字元\n" + +#: src/iconv.c:162 +#, c-format, no-wrap +msgid "Options controlling error output:\n" +msgstr "控制錯誤輸出的選項:\n" + +#: src/iconv.c:165 +#, c-format, no-wrap +msgid " -s, --silent suppress error messages about conversion problems\n" +msgstr " -s, --silent 抑制關於轉換問題的錯誤訊息\n" + +#: src/iconv.c:169 +#, c-format, no-wrap +msgid "Informative output:\n" +msgstr "詳細資訊的輸出:\n" + +#: src/iconv.c:172 +#, c-format, no-wrap +msgid " -l, --list list the supported encodings\n" +msgstr " -l, --list 清單支援的編碼\n" + +#: src/iconv.c:175 +#, c-format, no-wrap +msgid " --help display this help and exit\n" +msgstr " --help 顯示這份說明然後離開\n" + +#: src/iconv.c:178 +#, c-format, no-wrap +msgid " --version output version information and exit\n" +msgstr " --version 輸出版本資訊然後離開\n" + +#. TRANSLATORS: The first placeholder is the web address of the Savannah +#. project of this package. The second placeholder is the bug-reporting +#. email address for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the address for translation +#. bugs (typically your translation team's web or email address). +#: src/iconv.c:186 +#, c-format +msgid "" +"Report bugs in the bug tracker at <%s>\n" +"or by email to <%s>.\n" +msgstr "" +"在臭蟲追蹤器 <%s> 回報臭蟲\n" +"或者是寄電子信件到 <%s>。\n" + +#. TRANSLATORS: The %s placeholder is the web address of the GPL license. +#: src/iconv.c:202 +#, c-format, no-wrap +msgid "" +"License GPLv3+: GNU GPL version 3 or later <%s>\n" +"This is free software: you are free to change and redistribute it.\n" +"There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" +"授權 GPLv3+: GNU GPL 第三版或後續版本 <%s>\n" +"這是自由軟體:您可以自由變更和再次散布它。\n" +"在法律所允許的範圍內不做任何擔保。\n" + +#. TRANSLATORS: The %s placeholder expands to an author's name. +#: src/iconv.c:208 +#, c-format +msgid "Written by %s.\n" +msgstr "作者 %s。\n" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:302 +#, c-format +msgid "" +"%s argument: A format directive with a variable width is not allowed here." +msgstr "%s 引數:這裡不允許具備可變寬度的格式指令。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:317 +#, c-format +msgid "" +"%s argument: A format directive with a variable precision is not allowed " +"here." +msgstr "%s 引數:這裡不允許具備可變精確度的格式指令。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:333 +#, c-format +msgid "%s argument: A format directive with a size is not allowed here." +msgstr "%s 引數:這裡不允許具備大小的格式指令。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:375 +#, c-format +msgid "%s argument: The string ends in the middle of a directive." +msgstr "%s 引數:字串結束於指令中間。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %c placeholder expands to an unknown format directive. +#: src/iconv.c:382 +#, c-format +msgid "%s argument: The character '%c' is not a valid conversion specifier." +msgstr "%s 引數:字元 %c 並非有效的轉換符號。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#: src/iconv.c:388 +#, c-format +msgid "" +"%s argument: The character that terminates the format directive is not a " +"valid conversion specifier." +msgstr "%s 引數:終止格式指令的字元並非有效的轉換符號。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a command-line option. +#. The %u placeholder expands to the number of arguments consumed by the format string. +#: src/iconv.c:404 +#, c-format +msgid "" +"%s argument: The format string consumes more than one argument: %u argument." +msgid_plural "" +"%s argument: The format string consumes more than one argument: %u arguments." +msgstr[0] "%s 引數:格式字串耗用超過一個引數:%u 個引數。" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:462 +#, c-format +msgid "cannot convert byte substitution to Unicode: %s" +msgstr "無法轉換替代位元組到萬國碼:%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --unicode-subst. +#: src/iconv.c:502 +#, c-format +msgid "cannot convert unicode substitution to target encoding: %s" +msgstr "無法轉換替代萬國碼到目標編碼:%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:543 +#, c-format +msgid "cannot convert byte substitution to wide string: %s" +msgstr "無法轉換替代位元組到寬字串:%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --widechar-subst. +#: src/iconv.c:584 +#, c-format +msgid "cannot convert widechar substitution to target encoding: %s" +msgstr "無法轉換替代寬字元到目標編碼:%s" + +#. TRANSLATORS: An error message. +#. The %s placeholder expands to a piece of text, specified through --byte-subst. +#: src/iconv.c:625 +#, c-format +msgid "cannot convert byte substitution to target encoding: %s" +msgstr "無法轉換替代位元組到目標編碼:%s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:644 +#, c-format +msgid "%s:%u:%u: cannot convert" +msgstr "%s:%u:%u:無法轉換" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the input file name, a line number, and a column number. +#. A "shift sequence" is a sequence of bytes that changes the state of the converter; +#. this concept exists only for "stateful" encodings like ISO-2022-JP. +#: src/iconv.c:658 +#, c-format +msgid "%s:%u:%u: incomplete character or shift sequence" +msgstr "%s:%u:%u:不完整的字元或是換碼序列" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The placeholders expand to the input file name, a line number, and a column number. +#: src/iconv.c:671 +#, c-format +msgid "%s:%u:%u" +msgstr "%s:%u:%u" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the input file name. +#: src/iconv.c:832 +#, c-format +msgid "%s: I/O error" +msgstr "%s:輸入輸出錯誤" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --from-code. +#: src/iconv.c:1030 +#, c-format +msgid "conversion from %s unsupported" +msgstr "不支援從 %s 進行轉換" + +#. TRANSLATORS: An error message. +#. The placeholder expands to the encoding name, specified through --to-code. +#: src/iconv.c:1036 +#, c-format +msgid "conversion to %s unsupported" +msgstr "不支援轉換到 %s" + +#. TRANSLATORS: An error message. +#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. +#: src/iconv.c:1042 +#, c-format +msgid "conversion from %s to %s unsupported" +msgstr "不支援從 %s 轉換到 %s" + +#. TRANSLATORS: Additional advice after an error message. +#. The %s placeholder expands to the program name. +#: src/iconv.c:1047 +#, c-format +msgid "try '%s -l' to get the list of supported encodings" +msgstr "嘗試 %s -l 以獲得支援的編碼清單" + +#. TRANSLATORS: A filename substitute denoting standard input. +#: src/iconv.c:1104 +msgid "(stdin)" +msgstr "(標準輸入)" + +#. TRANSLATORS: The first part of an error message. +#. It is followed by a colon and a detail message. +#. The %s placeholder expands to the input file name. +#: src/iconv.c:1116 +#, c-format +msgid "%s" +msgstr "%s" + +#. TRANSLATORS: An error message. +#: src/iconv.c:1130 +#, c-format +msgid "I/O error" +msgstr "輸入輸出錯誤" + +#~ msgid "Report bugs to .\n" +#~ msgstr "" +#~ "將錯誤通報給 ,\n" +#~ "翻譯錯誤通報給 ,\n" diff --git a/3rdPartner/libiconv/src/Makefile.in b/3rdPartner/libiconv/src/Makefile.in new file mode 100644 index 0000000..7035316 --- /dev/null +++ b/3rdPartner/libiconv/src/Makefile.in @@ -0,0 +1,167 @@ +# Makefile for libiconv/src + +#### Start of system configuration section. #### + +# Directories used by "make": +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ + +# Directories used by "make install": +prefix = @prefix@ +local_prefix = /usr/local +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ + +# Programs used by "make": +CC = @CC@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +INCLUDES = -I. -I$(srcdir) -I.. -I../include -I$(srcdir)/../include -I../srclib -I$(srcdir)/../srclib +LIBTOOL = @LIBTOOL@ +LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile +LIBTOOL_LINK = $(LIBTOOL) --mode=link +LIBTOOL_INSTALL = $(LIBTOOL) --mode=install +LIBTOOL_UNINSTALL = $(LIBTOOL) --mode=uninstall +WINDRES = @WINDRES@ +RM = rm -f +@SET_MAKE@ + +# Programs used by "make install": +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +mkinstalldirs = $(SHELL) @top_srcdir@/build-aux/mkinstalldirs + +# Programs used by "make install-strip": +STRIP = @STRIP@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +install_sh = @install_sh@ + +#### End of system configuration section. #### + +SHELL = @SHELL@ + +PACKAGE_VERSION = @VERSION@ + +# Needed by $(LIBTOOL). +top_builddir = .. + +# Needed by SET_RELOCATABLE. +EXEEXT = @EXEEXT@ + +# Needed by RELOCATABLE_LDFLAGS. +host = @host@ + +OBJECTS_RES_yes = iconv.res +OBJECTS_RES_no = + +# We cannot link with libintl until libiconv is installed. (When we call +# libtool with arguments "../lib/libiconv.la -lintl", libtool will call ld +# with "../lib/.libs/libiconv.so $libdir/libintl.so $libdir/libiconv.so", +# (remember that $libdir/libintl.la lists $libdir/libiconv.so as a dependency), +# and this gives a fatal linker error on Solaris because the two libiconv.so +# files are different but have the same soname. +# So we can link the iconv executable only after we have installed libiconv, +# i.e. during "make install". The intermediate 'iconv' executable is built +# without internationalization and not linked with libintl. + +all : iconv_no_i18n$(EXEEXT) iconv.@OBJEXT@ $(OBJECTS_RES_@WOE32@) + test `ls -ld . | sed -e 's/^d\(.........\).*/\1/'` = rwxrwxrwx || chmod 777 . + +# This is the temporary iconv executable, without internationalization. +iconv_no_i18n$(EXEEXT) : iconv_no_i18n.@OBJEXT@ ../lib/libiconv.la $(OBJECTS_RES_@WOE32@) + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) iconv_no_i18n.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la $(OBJECTS_RES_@WOE32@) -o $@ + +iconv_no_i18n.@OBJEXT@ : $(srcdir)/iconv_no_i18n.c $(srcdir)/iconv.c + $(CC) -c $(INCLUDES) -I../lib $(CFLAGS) $(CPPFLAGS) -DINSTALLDIR=\"$(bindir)\" -DLOCALEDIR=\"$(localedir)\" $(srcdir)/iconv_no_i18n.c + +iconv.@OBJEXT@ : $(srcdir)/iconv.c + $(CC) -c $(INCLUDES) -I../lib $(CFLAGS) $(CPPFLAGS) -DINSTALLDIR=\"$(bindir)\" -DLOCALEDIR=\"$(localedir)\" $(srcdir)/iconv.c + +iconv.res : $(srcdir)/../windows/iconv.rc + $(WINDRES) `$(SHELL) $(srcdir)/../windows/windres-options --escape $(PACKAGE_VERSION)` -i $(srcdir)/../windows/iconv.rc -o iconv.res --output-format=coff + +# The following rule is necessary to avoid a toplevel "make -n check" failure. +../lib/libiconv.la : + cd ../lib && $(MAKE) libiconv.la + +# Support for relocatability. +RELOCATABLE_LIBRARY_PATH = $(libdir) +RELOCATABLE_SRC_DIR = $(top_srcdir)/srclib +RELOCATABLE_BUILD_DIR = ../srclib +RELOCATABLE_CONFIG_H_DIR = .. +RELOCATABLE_LDFLAGS = @RELOCATABLE_LDFLAGS@ +RELOCATABLE_STRIP = : +INSTALL_PROGRAM_ENV = @INSTALL_PROGRAM_ENV@ +iconv_LDFLAGS = `if test -n '$(RELOCATABLE_LDFLAGS)'; then $(RELOCATABLE_LDFLAGS) $(bindir); fi` + +# During "make install", we can build the final iconv executable. +# On HP-UX, in order to ensure that the new libiconv.sl will override the old +# one that is hardcoded in libintl.sl, we need to mention libiconv.sl before +# libintl.sl on the link command line. We have to bypass libtool in order to +# achieve this. +# On Solaris, the linker gives an error if we are using libintl.so and it +# refers to a libiconv.so in $prefix/lib since then it sees two libiconv.so's, +# one in $prefix/lib and one in ../lib/.libs. So we have to avoid using +# ../lib/libiconv.la entirely. +install : all force + if [ ! -d $(DESTDIR)$(bindir) ] ; then $(mkinstalldirs) $(DESTDIR)$(bindir) ; fi + case "@host_os@" in \ + hpux*) $(CC) $(LDFLAGS) $(CFLAGS) $(iconv_LDFLAGS) iconv.@OBJEXT@ ../srclib/libicrt.a -L$(DESTDIR)$(libdir) -liconv @LIBINTL@ $(OBJECTS_RES_@WOE32@) `if test -n '$(DESTDIR)'; then echo " -Wl,+b -Wl,$(libdir)"; fi` -o iconv$(EXEEXT);; \ + *) $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) $(iconv_LDFLAGS) iconv.@OBJEXT@ ../srclib/libicrt.a $(DESTDIR)$(libdir)/libiconv.la @LTLIBINTL@ $(OBJECTS_RES_@WOE32@) -o iconv$(EXEEXT);; \ + esac + $(INSTALL_PROGRAM_ENV) $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) iconv$(EXEEXT) $(DESTDIR)$(bindir)/iconv$(EXEEXT) + +install-strip : force + case '$(INSTALL_PROGRAM)' in \ + */install-reloc) \ + $(MAKE) install prefix='$(prefix)' exec_prefix='$(exec_prefix)' libdir='$(libdir)' RELOCATABLE_STRIP='$(STRIP)' ;; \ + *) \ + $(MAKE) install prefix='$(prefix)' exec_prefix='$(exec_prefix)' libdir='$(libdir)' INSTALL_PROGRAM='$(INSTALL_STRIP_PROGRAM)' ;; \ + esac + +installdirs : force + if [ ! -d $(DESTDIR)$(bindir) ] ; then $(mkinstalldirs) $(DESTDIR)$(bindir) ; fi + +uninstall : force + $(LIBTOOL_UNINSTALL) $(RM) $(DESTDIR)$(bindir)/iconv$(EXEEXT) + +check : all + +mostlyclean : clean + +clean : force + $(RM) *.@OBJEXT@ *.lo iconv.res iconv_no_i18n iconv_no_i18n$(EXEEXT) iconv$(EXEEXT) core *.stackdump + $(RM) -r .libs _libs + +distclean : clean + $(RM) Makefile + +maintainer-clean : distclean + +# List of source files. +SOURCE_FILES = \ + Makefile.in \ + iconv.c iconv_no_i18n.c +# List of distributed files imported from other packages. +IMPORTED_FILES = +# List of distributed files generated by autotools or Makefile.devel. +GENERATED_FILES = +# List of distributed files generated by "make". +DISTRIBUTED_BUILT_FILES = +# List of distributed files. +DISTFILES = $(SOURCE_FILES) $(IMPORTED_FILES) $(GENERATED_FILES) $(DISTRIBUTED_BUILT_FILES) + +distdir : $(DISTFILES) + for file in $(DISTFILES); do \ + if test -f $$file; then dir='.'; else dir='$(srcdir)'; fi; \ + cp -p "$$dir/$$file" '$(distdir)'/$$file || exit 1; \ + done + +force : + diff --git a/3rdPartner/libiconv/src/iconv.c b/3rdPartner/libiconv/src/iconv.c new file mode 100644 index 0000000..e3932e5 --- /dev/null +++ b/3rdPartner/libiconv/src/iconv.c @@ -0,0 +1,1134 @@ +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + 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 3 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, see . */ + +#include "config.h" +#ifndef ICONV_CONST +# define ICONV_CONST +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Ensure that iconv_no_i18n does not depend on libintl. */ +#ifdef NO_I18N +# undef ENABLE_NLS +# undef ENABLE_RELOCATABLE +#endif + +#include "binary-io.h" +#include "progname.h" +#include "relocatable.h" +#include "safe-read.h" +#include "xalloc.h" +#include "uniwidth.h" +#include "uniwidth/cjk.h" + +/* Ensure that iconv_no_i18n does not depend on libintl. */ +#ifdef NO_I18N +#include +static void +error (int status, int errnum, const char *message, ...) +{ + va_list args; + + fflush(stdout); + fprintf(stderr,"%s: ",program_name); + va_start(args,message); + vfprintf(stderr,message,args); + va_end(args); + if (errnum) { + const char *s = strerror(errnum); + if (s == NULL) + s = "Unknown system error"; + } + putc('\n',stderr); + fflush(stderr); + if (status) + exit(status); +} +#else +# include "error.h" +#endif + +#include "gettext.h" + +#define _(str) gettext(str) + +/* Ensure that iconv_no_i18n does not depend on libintl. */ +#ifdef NO_I18N +# define xmalloc malloc +# define xalloc_die abort +#endif + +/* Locale independent test for a decimal digit. + Argument can be 'char' or 'unsigned char'. (Whereas the argument of + isdigit must be an 'unsigned char'.) */ +#undef isdigit +#define isdigit(c) ((unsigned int) ((c) - '0') < 10) + +/* Locale independent test for a printable character. + Argument can be 'char' or 'unsigned char'. (Whereas the argument of + isdigit must be an 'unsigned char'.) */ +#define c_isprint(c) ((c) >= ' ' && (c) <= '~') + +/* ========================================================================= */ + +static int discard_unconvertible = 0; +static int silent = 0; + +static void usage (int exitcode) +{ + if (exitcode != 0) { + const char* helpstring1 = + /* TRANSLATORS: The first line of the short usage message. */ + _("Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"); + const char* helpstring2 = + /* TRANSLATORS: The second line of the short usage message. + Align it correctly against the first line. */ + _("or: iconv -l"); + fprintf(stderr, "%s\n%s\n", helpstring1, helpstring2); + fprintf(stderr, _("Try '%s --help' for more information.\n"), program_name); + } else { + /* xgettext: no-wrap */ + /* TRANSLATORS: The first line of the long usage message. + The %s placeholder expands to the program name. */ + printf(_("\ +Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n"), + program_name); + /* xgettext: no-wrap */ + /* TRANSLATORS: The second line of the long usage message. + Align it correctly against the first line. + The %s placeholder expands to the program name. */ + printf(_("\ +or: %s -l\n"), + program_name); + printf("\n"); + /* xgettext: no-wrap */ + /* TRANSLATORS: Description of the iconv program. */ + printf(_("\ +Converts text from one encoding to another encoding.\n")); + printf("\n"); + /* xgettext: no-wrap */ + printf(_("\ +Options controlling the input and output format:\n")); + /* xgettext: no-wrap */ + printf(_("\ + -f ENCODING, --from-code=ENCODING\n\ + the encoding of the input\n")); + /* xgettext: no-wrap */ + printf(_("\ + -t ENCODING, --to-code=ENCODING\n\ + the encoding of the output\n")); + printf("\n"); + /* xgettext: no-wrap */ + printf(_("\ +Options controlling conversion problems:\n")); + /* xgettext: no-wrap */ + printf(_("\ + -c discard unconvertible characters\n")); + /* xgettext: no-wrap */ + printf(_("\ + --unicode-subst=FORMATSTRING\n\ + substitution for unconvertible Unicode characters\n")); + /* xgettext: no-wrap */ + printf(_("\ + --byte-subst=FORMATSTRING substitution for unconvertible bytes\n")); + /* xgettext: no-wrap */ + printf(_("\ + --widechar-subst=FORMATSTRING\n\ + substitution for unconvertible wide characters\n")); + printf("\n"); + /* xgettext: no-wrap */ + printf(_("\ +Options controlling error output:\n")); + /* xgettext: no-wrap */ + printf(_("\ + -s, --silent suppress error messages about conversion problems\n")); + printf("\n"); + /* xgettext: no-wrap */ + printf(_("\ +Informative output:\n")); + /* xgettext: no-wrap */ + printf(_("\ + -l, --list list the supported encodings\n")); + /* xgettext: no-wrap */ + printf(_("\ + --help display this help and exit\n")); + /* xgettext: no-wrap */ + printf(_("\ + --version output version information and exit\n")); + printf("\n"); + /* TRANSLATORS: The first placeholder is the web address of the Savannah + project of this package. The second placeholder is the bug-reporting + email address for this package. Please add _another line_ saying + "Report translation bugs to <...>\n" with the address for translation + bugs (typically your translation team's web or email address). */ + printf(_("\ +Report bugs in the bug tracker at <%s>\n\ +or by email to <%s>.\n"), + "https://savannah.gnu.org/projects/libiconv", + "bug-gnu-libiconv@gnu.org"); + } + exit(exitcode); +} + +static void print_version (void) +{ + printf("iconv (GNU libiconv %d.%d)\n", + _libiconv_version >> 8, _libiconv_version & 0xff); + printf("Copyright (C) %s Free Software Foundation, Inc.\n", "2000-2022"); + /* xgettext: no-wrap */ + /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ + printf (_("\ +License GPLv3+: GNU GPL version 3 or later <%s>\n\ +This is free software: you are free to change and redistribute it.\n\ +There is NO WARRANTY, to the extent permitted by law.\n"), + "https://gnu.org/licenses/gpl.html"); + /* TRANSLATORS: The %s placeholder expands to an author's name. */ + printf(_("Written by %s.\n"),"Bruno Haible"); + exit(EXIT_SUCCESS); +} + +static int print_one (unsigned int namescount, const char * const * names, + void* data) +{ + unsigned int i; + (void)data; + for (i = 0; i < namescount; i++) { + if (i > 0) + putc(' ',stdout); + fputs(names[i],stdout); + } + putc('\n',stdout); + return 0; +} + +/* ========================================================================= */ + +/* Line number and column position. */ +static unsigned int line; +static unsigned int column; +static const char* cjkcode; +/* Update the line number and column position after a character was + successfully converted. */ +static void update_line_column (unsigned int uc, void* data) +{ + if (uc == 0x000A) { + line++; + column = 0; + } else { + int width = uc_width(uc, cjkcode); + if (width >= 0) + column += width; + else if (uc == 0x0009) + column += 8 - (column % 8); + } +} + +/* ========================================================================= */ + +/* Production of placeholder strings as fallback for unconvertible + characters. */ + +/* Check that the argument is a format string taking either no argument + or exactly one unsigned integer argument. Returns the maximum output + size of the format string. */ +static size_t check_subst_formatstring (const char *format, const char *param_name) +{ + /* C format strings are described in POSIX (IEEE P1003.1 2001), section + XSH 3 fprintf(). See also Linux fprintf(3) manual page. + For simplicity, we don't accept + - the '%m$' reordering syntax, + - the 'I' flag, + - width specifications referring to an argument, + - precision specifications referring to an argument, + - size specifiers, + - format specifiers other than 'o', 'u', 'x', 'X'. + What remains? + A directive + - starts with '%', + - is optionally followed by any of the characters '#', '0', '-', ' ', + '+', "'", each of which acts as a flag, + - is optionally followed by a width specification: a nonempty digit + sequence, + - is optionally followed by '.' and a precision specification: a + nonempty digit sequence, + - is finished by a specifier + - '%', that needs no argument, + - 'o', 'u', 'x', 'X', that need an unsigned integer argument. + */ + size_t maxsize = 0; + unsigned int unnumbered_arg_count = 0; + + for (; *format != '\0';) { + if (*format++ == '%') { + /* A directive. */ + unsigned int width = 0; + unsigned int precision = 0; + unsigned int length; + /* Parse flags. */ + for (;;) { + if (*format == ' ' || *format == '+' || *format == '-' + || *format == '#' || *format == '0' || *format == '\'') + format++; + else + break; + } + /* Parse width. */ + if (*format == '*') + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. */ + _("%s argument: A format directive with a variable width is not allowed here."), + param_name); + if (isdigit (*format)) { + do { + width = 10*width + (*format - '0'); + format++; + } while (isdigit (*format)); + } + /* Parse precision. */ + if (*format == '.') { + format++; + if (*format == '*') + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. */ + _("%s argument: A format directive with a variable precision is not allowed here."), + param_name); + if (isdigit (*format)) { + do { + precision = 10*precision + (*format - '0'); + format++; + } while (isdigit (*format)); + } + } + /* Parse size. */ + switch (*format) { + case 'h': case 'l': case 'L': case 'q': + case 'j': case 'z': case 'Z': case 't': + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. */ + _("%s argument: A format directive with a size is not allowed here."), + param_name); + } + /* Parse end of directive. */ + switch (*format) { + case '%': + length = 1; + break; + case 'u': case 'o': case 'x': case 'X': + if (*format == 'u') { + length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.30103 /* binary -> decimal */ + ) + + 1; /* turn floor into ceil */ + if (length < precision) + length = precision; + length *= 2; /* estimate for FLAG_GROUP */ + length += 1; /* account for leading sign */ + } else if (*format == 'o') { + length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.333334 /* binary -> octal */ + ) + + 1; /* turn floor into ceil */ + if (length < precision) + length = precision; + length += 1; /* account for leading sign */ + } else { /* 'x', 'X' */ + length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.25 /* binary -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (length < precision) + length = precision; + length += 2; /* account for leading sign or alternate form */ + } + unnumbered_arg_count++; + break; + default: + if (*format == '\0') + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. */ + _("%s argument: The string ends in the middle of a directive."), + param_name); + else if (c_isprint(*format)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. + The %c placeholder expands to an unknown format directive. */ + _("%s argument: The character '%c' is not a valid conversion specifier."), + param_name,*format); + else + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. */ + _("%s argument: The character that terminates the format directive is not a valid conversion specifier."), + param_name); + abort(); /*NOTREACHED*/ + } + format++; + if (length < width) + length = width; + maxsize += length; + } else + maxsize++; + } + if (unnumbered_arg_count > 1) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a command-line option. + The %u placeholder expands to the number of arguments consumed by the format string. */ + ngettext("%s argument: The format string consumes more than one argument: %u argument.", + "%s argument: The format string consumes more than one argument: %u arguments.", + unnumbered_arg_count), + param_name,unnumbered_arg_count); + return maxsize; +} + +/* Format strings. */ +static const char* ilseq_byte_subst; +static const char* ilseq_wchar_subst; +static const char* ilseq_unicode_subst; + +/* Maximum result size for each format string. */ +static size_t ilseq_byte_subst_size; +static size_t ilseq_wchar_subst_size; +static size_t ilseq_unicode_subst_size; + +/* Buffer of size ilseq_byte_subst_size+1. */ +static char* ilseq_byte_subst_buffer; +#if HAVE_WCHAR_T +/* Buffer of size ilseq_wchar_subst_size+1. */ +static char* ilseq_wchar_subst_buffer; +#endif +/* Buffer of size ilseq_unicode_subst_size+1. */ +static char* ilseq_unicode_subst_buffer; + +/* Auxiliary variables for subst_mb_to_uc_fallback. */ +/* Converter from locale encoding to UCS-4. */ +static iconv_t subst_mb_to_uc_cd; +/* Buffer of size ilseq_byte_subst_size. */ +static unsigned int* subst_mb_to_uc_temp_buffer; + +static void subst_mb_to_uc_fallback + (const char* inbuf, size_t inbufsize, + void (*write_replacement) (const unsigned int *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data) +{ + for (; inbufsize > 0; inbuf++, inbufsize--) { + const char* inptr; + size_t inbytesleft; + char* outptr; + size_t outbytesleft; + sprintf(ilseq_byte_subst_buffer, + ilseq_byte_subst, (unsigned int)(unsigned char)*inbuf); + inptr = ilseq_byte_subst_buffer; + inbytesleft = strlen(ilseq_byte_subst_buffer); + outptr = (char*)subst_mb_to_uc_temp_buffer; + outbytesleft = ilseq_byte_subst_size*sizeof(unsigned int); + iconv(subst_mb_to_uc_cd,NULL,NULL,NULL,NULL); + if (iconv(subst_mb_to_uc_cd, (ICONV_CONST char**)&inptr,&inbytesleft, &outptr,&outbytesleft) + == (size_t)(-1) + || iconv(subst_mb_to_uc_cd, NULL,NULL, &outptr,&outbytesleft) + == (size_t)(-1)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a piece of text, specified through --byte-subst. */ + _("cannot convert byte substitution to Unicode: %s"), + ilseq_byte_subst_buffer); + if (!(outbytesleft%sizeof(unsigned int) == 0)) + abort(); + write_replacement(subst_mb_to_uc_temp_buffer, + ilseq_byte_subst_size-(outbytesleft/sizeof(unsigned int)), + callback_arg); + } +} + +/* Auxiliary variables for subst_uc_to_mb_fallback. */ +/* Converter from locale encoding to target encoding. */ +static iconv_t subst_uc_to_mb_cd; +/* Buffer of size ilseq_unicode_subst_size*4. */ +static char* subst_uc_to_mb_temp_buffer; + +static void subst_uc_to_mb_fallback + (unsigned int code, + void (*write_replacement) (const char *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data) +{ + const char* inptr; + size_t inbytesleft; + char* outptr; + size_t outbytesleft; + sprintf(ilseq_unicode_subst_buffer, ilseq_unicode_subst, code); + inptr = ilseq_unicode_subst_buffer; + inbytesleft = strlen(ilseq_unicode_subst_buffer); + outptr = subst_uc_to_mb_temp_buffer; + outbytesleft = ilseq_unicode_subst_size*4; + iconv(subst_uc_to_mb_cd,NULL,NULL,NULL,NULL); + if (iconv(subst_uc_to_mb_cd, (ICONV_CONST char**)&inptr,&inbytesleft, &outptr,&outbytesleft) + == (size_t)(-1) + || iconv(subst_uc_to_mb_cd, NULL,NULL, &outptr,&outbytesleft) + == (size_t)(-1)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a piece of text, specified through --unicode-subst. */ + _("cannot convert unicode substitution to target encoding: %s"), + ilseq_unicode_subst_buffer); + write_replacement(subst_uc_to_mb_temp_buffer, + ilseq_unicode_subst_size*4-outbytesleft, + callback_arg); +} + +#if HAVE_WCHAR_T + +/* Auxiliary variables for subst_mb_to_wc_fallback. */ +/* Converter from locale encoding to wchar_t. */ +static iconv_t subst_mb_to_wc_cd; +/* Buffer of size ilseq_byte_subst_size. */ +static wchar_t* subst_mb_to_wc_temp_buffer; + +static void subst_mb_to_wc_fallback + (const char* inbuf, size_t inbufsize, + void (*write_replacement) (const wchar_t *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data) +{ + for (; inbufsize > 0; inbuf++, inbufsize--) { + const char* inptr; + size_t inbytesleft; + char* outptr; + size_t outbytesleft; + sprintf(ilseq_byte_subst_buffer, + ilseq_byte_subst, (unsigned int)(unsigned char)*inbuf); + inptr = ilseq_byte_subst_buffer; + inbytesleft = strlen(ilseq_byte_subst_buffer); + outptr = (char*)subst_mb_to_wc_temp_buffer; + outbytesleft = ilseq_byte_subst_size*sizeof(wchar_t); + iconv(subst_mb_to_wc_cd,NULL,NULL,NULL,NULL); + if (iconv(subst_mb_to_wc_cd, (ICONV_CONST char**)&inptr,&inbytesleft, &outptr,&outbytesleft) + == (size_t)(-1) + || iconv(subst_mb_to_wc_cd, NULL,NULL, &outptr,&outbytesleft) + == (size_t)(-1)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a piece of text, specified through --byte-subst. */ + _("cannot convert byte substitution to wide string: %s"), + ilseq_byte_subst_buffer); + if (!(outbytesleft%sizeof(wchar_t) == 0)) + abort(); + write_replacement(subst_mb_to_wc_temp_buffer, + ilseq_byte_subst_size-(outbytesleft/sizeof(wchar_t)), + callback_arg); + } +} + +/* Auxiliary variables for subst_wc_to_mb_fallback. */ +/* Converter from locale encoding to target encoding. */ +static iconv_t subst_wc_to_mb_cd; +/* Buffer of size ilseq_wchar_subst_size*4. + Hardcode factor 4, because MB_LEN_MAX is not reliable on some platforms. */ +static char* subst_wc_to_mb_temp_buffer; + +static void subst_wc_to_mb_fallback + (wchar_t code, + void (*write_replacement) (const char *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data) +{ + const char* inptr; + size_t inbytesleft; + char* outptr; + size_t outbytesleft; + sprintf(ilseq_wchar_subst_buffer, ilseq_wchar_subst, (unsigned int) code); + inptr = ilseq_wchar_subst_buffer; + inbytesleft = strlen(ilseq_wchar_subst_buffer); + outptr = subst_wc_to_mb_temp_buffer; + outbytesleft = ilseq_wchar_subst_size*4; + iconv(subst_wc_to_mb_cd,NULL,NULL,NULL,NULL); + if (iconv(subst_wc_to_mb_cd, (ICONV_CONST char**)&inptr,&inbytesleft, &outptr,&outbytesleft) + == (size_t)(-1) + || iconv(subst_wc_to_mb_cd, NULL,NULL, &outptr,&outbytesleft) + == (size_t)(-1)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a piece of text, specified through --widechar-subst. */ + _("cannot convert widechar substitution to target encoding: %s"), + ilseq_wchar_subst_buffer); + write_replacement(subst_wc_to_mb_temp_buffer, + ilseq_wchar_subst_size*4-outbytesleft, + callback_arg); +} + +#else + +#define subst_mb_to_wc_fallback NULL +#define subst_wc_to_mb_fallback NULL + +#endif + +/* Auxiliary variables for subst_mb_to_mb_fallback. */ +/* Converter from locale encoding to target encoding. */ +static iconv_t subst_mb_to_mb_cd; +/* Buffer of size ilseq_byte_subst_size*4. */ +static char* subst_mb_to_mb_temp_buffer; + +static void subst_mb_to_mb_fallback (const char* inbuf, size_t inbufsize) +{ + for (; inbufsize > 0; inbuf++, inbufsize--) { + const char* inptr; + size_t inbytesleft; + char* outptr; + size_t outbytesleft; + sprintf(ilseq_byte_subst_buffer, + ilseq_byte_subst, (unsigned int)(unsigned char)*inbuf); + inptr = ilseq_byte_subst_buffer; + inbytesleft = strlen(ilseq_byte_subst_buffer); + outptr = subst_mb_to_mb_temp_buffer; + outbytesleft = ilseq_byte_subst_size*4; + iconv(subst_mb_to_mb_cd,NULL,NULL,NULL,NULL); + if (iconv(subst_mb_to_mb_cd, (ICONV_CONST char**)&inptr,&inbytesleft, &outptr,&outbytesleft) + == (size_t)(-1) + || iconv(subst_mb_to_mb_cd, NULL,NULL, &outptr,&outbytesleft) + == (size_t)(-1)) + error(EXIT_FAILURE,0, + /* TRANSLATORS: An error message. + The %s placeholder expands to a piece of text, specified through --byte-subst. */ + _("cannot convert byte substitution to target encoding: %s"), + ilseq_byte_subst_buffer); + fwrite(subst_mb_to_mb_temp_buffer,1,ilseq_byte_subst_size*4-outbytesleft, + stdout); + } +} + +/* ========================================================================= */ + +/* Error messages during conversion. */ + +static void conversion_error_EILSEQ (const char* infilename) +{ + fflush(stdout); + if (column > 0) + putc('\n',stderr); + error(0,0, + /* TRANSLATORS: An error message. + The placeholders expand to the input file name, a line number, and a column number. */ + _("%s:%u:%u: cannot convert"), + infilename,line,column); +} + +static void conversion_error_EINVAL (const char* infilename) +{ + fflush(stdout); + if (column > 0) + putc('\n',stderr); + error(0,0, + /* TRANSLATORS: An error message. + The placeholders expand to the input file name, a line number, and a column number. + A "shift sequence" is a sequence of bytes that changes the state of the converter; + this concept exists only for "stateful" encodings like ISO-2022-JP. */ + _("%s:%u:%u: incomplete character or shift sequence"), + infilename,line,column); +} + +static void conversion_error_other (int errnum, const char* infilename) +{ + fflush(stdout); + if (column > 0) + putc('\n',stderr); + error(0,errnum, + /* TRANSLATORS: The first part of an error message. + It is followed by a colon and a detail message. + The placeholders expand to the input file name, a line number, and a column number. */ + _("%s:%u:%u"), + infilename,line,column); +} + +/* Convert the input given in infile. */ + +static int convert (iconv_t cd, int infile, const char* infilename) +{ + char inbuf[4096+4096]; + size_t inbufrest = 0; + int infile_error = 0; + char initial_outbuf[4096]; + char *outbuf = initial_outbuf; + size_t outbufsize = sizeof(initial_outbuf); + int status = 0; + +#if O_BINARY + SET_BINARY(infile); +#endif + line = 1; column = 0; + iconv(cd,NULL,NULL,NULL,NULL); + for (;;) { + size_t inbufsize; + /* Transfer the accumulated output to its destination, in case the + safe_read() call will block. */ + fflush(stdout); + inbufsize = safe_read(infile,inbuf+4096,4096); + if (inbufsize == 0 || inbufsize == SAFE_READ_ERROR) { + infile_error = (inbufsize == SAFE_READ_ERROR ? errno : 0); + if (inbufrest == 0) + break; + else { + if (ilseq_byte_subst != NULL) + subst_mb_to_mb_fallback(inbuf+4096-inbufrest, inbufrest); + if (!silent) + conversion_error_EINVAL(infilename); + status = 1; + goto done; + } + } else { + const char* inptr = inbuf+4096-inbufrest; + size_t insize = inbufrest+inbufsize; + inbufrest = 0; + while (insize > 0) { + char* outptr = outbuf; + size_t outsize = outbufsize; + size_t res = iconv(cd,(ICONV_CONST char**)&inptr,&insize,&outptr,&outsize); + if (outptr != outbuf) { + int saved_errno = errno; + if (fwrite(outbuf,1,outptr-outbuf,stdout) < outptr-outbuf) { + status = 1; + goto done; + } + errno = saved_errno; + } + if (res == (size_t)(-1)) { + if (errno == EILSEQ) { + if (discard_unconvertible == 1) { + int one = 1; + iconvctl(cd,ICONV_SET_DISCARD_ILSEQ,&one); + discard_unconvertible = 2; + status = 1; + } else { + if (!silent) + conversion_error_EILSEQ(infilename); + status = 1; + goto done; + } + } else if (errno == EINVAL) { + if (inbufsize == 0 || insize > 4096) { + if (!silent) + conversion_error_EINVAL(infilename); + status = 1; + goto done; + } else { + inbufrest = insize; + if (insize > 0) { + /* Like memcpy(inbuf+4096-insize,inptr,insize), except that + we cannot use memcpy here, because source and destination + regions may overlap. */ + char* restptr = inbuf+4096-insize; + do { *restptr++ = *inptr++; } while (--insize > 0); + } + break; + } + } else if (errno == E2BIG) { + if (outptr==outbuf) { + /* outbuf is too small. Double its size. */ + if (outbuf != initial_outbuf) + free(outbuf); + outbufsize = 2*outbufsize; + if (outbufsize==0) /* integer overflow? */ + xalloc_die(); + outbuf = (char*)xmalloc(outbufsize); + } + } else { + if (!silent) + conversion_error_other(errno,infilename); + status = 1; + goto done; + } + } + } + } + } + for (;;) { + char* outptr = outbuf; + size_t outsize = outbufsize; + size_t res = iconv(cd,NULL,NULL,&outptr,&outsize); + if (outptr != outbuf) { + int saved_errno = errno; + if (fwrite(outbuf,1,outptr-outbuf,stdout) < outptr-outbuf) { + status = 1; + goto done; + } + errno = saved_errno; + } + if (res == (size_t)(-1)) { + if (errno == EILSEQ) { + if (discard_unconvertible == 1) { + int one = 1; + iconvctl(cd,ICONV_SET_DISCARD_ILSEQ,&one); + discard_unconvertible = 2; + status = 1; + } else { + if (!silent) + conversion_error_EILSEQ(infilename); + status = 1; + goto done; + } + } else if (errno == EINVAL) { + if (!silent) + conversion_error_EINVAL(infilename); + status = 1; + goto done; + } else if (errno == E2BIG) { + if (outptr==outbuf) { + /* outbuf is too small. Double its size. */ + if (outbuf != initial_outbuf) + free(outbuf); + outbufsize = 2*outbufsize; + if (outbufsize==0) /* integer overflow? */ + xalloc_die(); + outbuf = (char*)xmalloc(outbufsize); + } + } else { + if (!silent) + conversion_error_other(errno,infilename); + status = 1; + goto done; + } + } else + break; + } + if (infile_error) { + fflush(stdout); + if (column > 0) + putc('\n',stderr); + error(0,infile_error, + /* TRANSLATORS: An error message. + The placeholder expands to the input file name. */ + _("%s: I/O error"), + infilename); + status = 1; + goto done; + } + done: + if (outbuf != initial_outbuf) + free(outbuf); + return status; +} + +/* ========================================================================= */ + +int main (int argc, char* argv[]) +{ + const char* fromcode = NULL; + const char* tocode = NULL; + int do_list = 0; + iconv_t cd; + struct iconv_fallbacks fallbacks; + struct iconv_hooks hooks; + int i; + int status; + + set_program_name (argv[0]); +#if HAVE_SETLOCALE + /* Needed for the locale dependent encodings, "char" and "wchar_t", + and for gettext. */ + setlocale(LC_CTYPE,""); +#if ENABLE_NLS + /* Needed for gettext. */ + setlocale(LC_MESSAGES,""); +#endif +#endif +#if ENABLE_NLS + bindtextdomain("libiconv",relocate(LOCALEDIR)); +#endif + textdomain("libiconv"); + /* No need to invoke the gnulib function stdopen() here, because + (1) the only file descriptor allocations done by this program are + fopen(...,"r"), + (2) when such fopen() calls occur, stdin is not used, + hence + - when an fopen() call happens to open fd 0, it is harmless, by (2), + - when an fopen() call happens to open fd 1 or 2, writing to + stdout or stderr will produce an error, by (1). */ + + for (i = 1; i < argc;) { + size_t len = strlen(argv[i]); + if (!strcmp(argv[i],"--")) { + i++; + break; + } + if (!strcmp(argv[i],"-f") + /* --f ... --from-code */ + || (len >= 3 && len <= 11 && !strncmp(argv[i],"--from-code",len)) + /* --from-code=... */ + || (len >= 12 && !strncmp(argv[i],"--from-code=",12))) { + if (len < 12) + if (i == argc-1) usage(1); + if (fromcode != NULL) usage(1); + if (len < 12) { + fromcode = argv[i+1]; + i += 2; + } else { + fromcode = argv[i]+12; + i++; + } + continue; + } + if (!strcmp(argv[i],"-t") + /* --t ... --to-code */ + || (len >= 3 && len <= 9 && !strncmp(argv[i],"--to-code",len)) + /* --from-code=... */ + || (len >= 10 && !strncmp(argv[i],"--to-code=",10))) { + if (len < 10) + if (i == argc-1) usage(1); + if (tocode != NULL) usage(1); + if (len < 10) { + tocode = argv[i+1]; + i += 2; + } else { + tocode = argv[i]+10; + i++; + } + continue; + } + if (!strcmp(argv[i],"-l") + /* --l ... --list */ + || (len >= 3 && len <= 6 && !strncmp(argv[i],"--list",len))) { + do_list = 1; + i++; + continue; + } + if (/* --by ... --byte-subst */ + (len >= 4 && len <= 12 && !strncmp(argv[i],"--byte-subst",len)) + /* --byte-subst=... */ + || (len >= 13 && !strncmp(argv[i],"--byte-subst=",13))) { + if (len < 13) { + if (i == argc-1) usage(1); + ilseq_byte_subst = argv[i+1]; + i += 2; + } else { + ilseq_byte_subst = argv[i]+13; + i++; + } + ilseq_byte_subst_size = + check_subst_formatstring(ilseq_byte_subst, "--byte-subst"); + continue; + } + if (/* --w ... --widechar-subst */ + (len >= 3 && len <= 16 && !strncmp(argv[i],"--widechar-subst",len)) + /* --widechar-subst=... */ + || (len >= 17 && !strncmp(argv[i],"--widechar-subst=",17))) { + if (len < 17) { + if (i == argc-1) usage(1); + ilseq_wchar_subst = argv[i+1]; + i += 2; + } else { + ilseq_wchar_subst = argv[i]+17; + i++; + } + ilseq_wchar_subst_size = + check_subst_formatstring(ilseq_wchar_subst, "--widechar-subst"); + continue; + } + if (/* --u ... --unicode-subst */ + (len >= 3 && len <= 15 && !strncmp(argv[i],"--unicode-subst",len)) + /* --unicode-subst=... */ + || (len >= 16 && !strncmp(argv[i],"--unicode-subst=",16))) { + if (len < 16) { + if (i == argc-1) usage(1); + ilseq_unicode_subst = argv[i+1]; + i += 2; + } else { + ilseq_unicode_subst = argv[i]+16; + i++; + } + ilseq_unicode_subst_size = + check_subst_formatstring(ilseq_unicode_subst, "--unicode-subst"); + continue; + } + if /* --s ... --silent */ + (len >= 3 && len <= 8 && !strncmp(argv[i],"--silent",len)) { + silent = 1; + i++; + continue; + } + if /* --h ... --help */ + (len >= 3 && len <= 6 && !strncmp(argv[i],"--help",len)) { + usage(0); + } + if /* --v ... --version */ + (len >= 3 && len <= 9 && !strncmp(argv[i],"--version",len)) { + print_version(); + } +#if O_BINARY + /* Backward compatibility with iconv <= 1.9.1. */ + if /* --bi ... --binary */ + (len >= 4 && len <= 8 && !strncmp(argv[i],"--binary",len)) { + i++; + continue; + } +#endif + if (argv[i][0] == '-') { + const char *option = argv[i] + 1; + if (*option == '\0') + usage(1); + for (; *option; option++) + switch (*option) { + case 'c': discard_unconvertible = 1; break; + case 's': silent = 1; break; + default: usage(1); + } + i++; + continue; + } + break; + } + if (do_list) { + if (i != 2 || i != argc) + usage(1); + iconvlist(print_one,NULL); + status = 0; + } else { +#if O_BINARY + SET_BINARY(fileno(stdout)); +#endif + if (fromcode == NULL) + fromcode = "char"; + if (tocode == NULL) + tocode = "char"; + cd = iconv_open(tocode,fromcode); + if (cd == (iconv_t)(-1)) { + if (iconv_open("UCS-4",fromcode) == (iconv_t)(-1)) + error(0,0, + /* TRANSLATORS: An error message. + The placeholder expands to the encoding name, specified through --from-code. */ + _("conversion from %s unsupported"), + fromcode); + else if (iconv_open(tocode,"UCS-4") == (iconv_t)(-1)) + error(0,0, + /* TRANSLATORS: An error message. + The placeholder expands to the encoding name, specified through --to-code. */ + _("conversion to %s unsupported"), + tocode); + else + error(0,0, + /* TRANSLATORS: An error message. + The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively. */ + _("conversion from %s to %s unsupported"), + fromcode,tocode); + error(EXIT_FAILURE,0, + /* TRANSLATORS: Additional advice after an error message. + The %s placeholder expands to the program name. */ + _("try '%s -l' to get the list of supported encodings"), + program_name); + } + /* Look at fromcode and tocode, to determine whether character widths + should be determined according to legacy CJK conventions. */ + cjkcode = iconv_canonicalize(tocode); + if (!is_cjk_encoding(cjkcode)) + cjkcode = iconv_canonicalize(fromcode); + /* Set up fallback routines for handling impossible conversions. */ + if (ilseq_byte_subst != NULL) + ilseq_byte_subst_buffer = (char*)xmalloc((ilseq_byte_subst_size+1)*sizeof(char)); + if (!discard_unconvertible) { + #if HAVE_WCHAR_T + if (ilseq_wchar_subst != NULL) + ilseq_wchar_subst_buffer = (char*)xmalloc((ilseq_wchar_subst_size+1)*sizeof(char)); + #endif + if (ilseq_unicode_subst != NULL) + ilseq_unicode_subst_buffer = (char*)xmalloc((ilseq_unicode_subst_size+1)*sizeof(char)); + if (ilseq_byte_subst != NULL) { + subst_mb_to_uc_cd = iconv_open("UCS-4-INTERNAL","char"); + subst_mb_to_uc_temp_buffer = (unsigned int*)xmalloc(ilseq_byte_subst_size*sizeof(unsigned int)); + #if HAVE_WCHAR_T + subst_mb_to_wc_cd = iconv_open("wchar_t","char"); + subst_mb_to_wc_temp_buffer = (wchar_t*)xmalloc(ilseq_byte_subst_size*sizeof(wchar_t)); + #endif + subst_mb_to_mb_cd = iconv_open(tocode,"char"); + subst_mb_to_mb_temp_buffer = (char*)xmalloc(ilseq_byte_subst_size*4); + } + #if HAVE_WCHAR_T + if (ilseq_wchar_subst != NULL) { + subst_wc_to_mb_cd = iconv_open(tocode,"char"); + subst_wc_to_mb_temp_buffer = (char*)xmalloc(ilseq_wchar_subst_size*4); + } + #endif + if (ilseq_unicode_subst != NULL) { + subst_uc_to_mb_cd = iconv_open(tocode,"char"); + subst_uc_to_mb_temp_buffer = (char*)xmalloc(ilseq_unicode_subst_size*4); + } + fallbacks.mb_to_uc_fallback = + (ilseq_byte_subst != NULL ? subst_mb_to_uc_fallback : NULL); + fallbacks.uc_to_mb_fallback = + (ilseq_unicode_subst != NULL ? subst_uc_to_mb_fallback : NULL); + fallbacks.mb_to_wc_fallback = + (ilseq_byte_subst != NULL ? subst_mb_to_wc_fallback : NULL); + fallbacks.wc_to_mb_fallback = + (ilseq_wchar_subst != NULL ? subst_wc_to_mb_fallback : NULL); + fallbacks.data = NULL; + iconvctl(cd, ICONV_SET_FALLBACKS, &fallbacks); + } + /* Set up hooks for updating the line and column position. */ + hooks.uc_hook = update_line_column; + hooks.wc_hook = NULL; + hooks.data = NULL; + iconvctl(cd, ICONV_SET_HOOKS, &hooks); + if (i == argc) + status = convert(cd,fileno(stdin), + /* TRANSLATORS: A filename substitute denoting standard input. */ + _("(stdin)")); + else { + status = 0; + for (; i < argc; i++) { + const char* infilename = argv[i]; + FILE* infile = fopen(infilename,"r"); + if (infile == NULL) { + int saved_errno = errno; + error(0,saved_errno, + /* TRANSLATORS: The first part of an error message. + It is followed by a colon and a detail message. + The %s placeholder expands to the input file name. */ + _("%s"), + infilename); + status = 1; + } else { + status |= convert(cd,fileno(infile),infilename); + fclose(infile); + } + } + } + iconv_close(cd); + } + if (ferror(stdout) || fclose(stdout)) { + error(0,0, + /* TRANSLATORS: An error message. */ + _("I/O error")); + status = 1; + } + exit(status); +} diff --git a/3rdPartner/libiconv/src/iconv_no_i18n.c b/3rdPartner/libiconv/src/iconv_no_i18n.c new file mode 100644 index 0000000..88e943b --- /dev/null +++ b/3rdPartner/libiconv/src/iconv_no_i18n.c @@ -0,0 +1,2 @@ +#define NO_I18N +#include "iconv.c" diff --git a/3rdPartner/libiconv/srclib/Makefile.am b/3rdPartner/libiconv/srclib/Makefile.am new file mode 100644 index 0000000..7cc3749 --- /dev/null +++ b/3rdPartner/libiconv/srclib/Makefile.am @@ -0,0 +1,30 @@ +## Makefile for the srclib subdirectory of GNU libiconv +## Copyright (C) 2003-2006, 2009, 2016, 2019 Free Software Foundation, Inc. +## +## 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, 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, see . + +## Process this file with automake to produce Makefile.in. + +AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies +EXTRA_DIST = +BUILT_SOURCES = +MOSTLYCLEANFILES = core *.stackdump +MOSTLYCLEANDIRS = + +noinst_LIBRARIES = + +AM_CPPFLAGS = +AM_CFLAGS = + +include Makefile.gnulib diff --git a/3rdPartner/libiconv/srclib/Makefile.gnulib b/3rdPartner/libiconv/srclib/Makefile.gnulib new file mode 100644 index 0000000..4fda7d0 --- /dev/null +++ b/3rdPartner/libiconv/srclib/Makefile.gnulib @@ -0,0 +1,1895 @@ +## DO NOT EDIT! GENERATED AUTOMATICALLY! +## Process this file with automake to produce Makefile.in. +# Copyright (C) 2002-2022 Free Software Foundation, Inc. +# +# This file 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 3 of the License, or +# (at your option) any later version. +# +# This file 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 file. If not, see . +# +# As a special exception to the GNU General Public License, +# this file may be distributed as part of a program that +# contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# Generated by gnulib-tool. +# Reproduce by: +# gnulib-tool --import --local-dir=gnulib-local \ +# --lib=libicrt \ +# --source-base=srclib \ +# --m4-base=srcm4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --makefile-name=Makefile.gnulib \ +# --no-conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# --no-vc-files \ +# binary-io \ +# error \ +# gettext \ +# gettext-h \ +# lib-symbol-visibility \ +# libiconv-misc \ +# mbstate \ +# progname \ +# relocatable-prog \ +# safe-read \ +# sigpipe \ +# stdbool \ +# stdio \ +# stdlib \ +# strerror \ +# unistd \ +# uniwidth/width \ +# unlocked-io \ +# xalloc + + +MOSTLYCLEANFILES += core *.stackdump +# No GNU Make output. + +noinst_LIBRARIES += libicrt.a + +libicrt_a_SOURCES = +libicrt_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) +libicrt_a_LIBADD = $(gl_LIBOBJS) +libicrt_a_DEPENDENCIES = $(gl_LIBOBJS) +EXTRA_libicrt_a_SOURCES = + +## begin gnulib module absolute-header + +# Use this preprocessor expression to decide whether #include_next works. +# Do not rely on a 'configure'-time test for this, since the expression +# might appear in an installed header, which is used by some other compiler. +HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) + +## end gnulib module absolute-header + +## begin gnulib module alloca-opt + +BUILT_SOURCES += $(ALLOCA_H) + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +if GL_GENERATE_ALLOCA_H +alloca.h: alloca.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ + $(srcdir)/alloca.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +alloca.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += alloca.h alloca.h-t + +EXTRA_DIST += alloca.in.h + +## end gnulib module alloca-opt + +## begin gnulib module allocator + +libicrt_a_SOURCES += allocator.c + +EXTRA_DIST += allocator.h + +## end gnulib module allocator + +## begin gnulib module areadlink + +libicrt_a_SOURCES += areadlink.c + +EXTRA_DIST += areadlink.h + +## end gnulib module areadlink + +## begin gnulib module basename-lgpl + +libicrt_a_SOURCES += basename-lgpl.c + +EXTRA_DIST += basename-lgpl.h + +## end gnulib module basename-lgpl + +## begin gnulib module binary-io + +libicrt_a_SOURCES += binary-io.h binary-io.c + +## end gnulib module binary-io + +## begin gnulib module canonicalize-lgpl + +if GL_COND_OBJ_CANONICALIZE_LGPL +libicrt_a_SOURCES += canonicalize-lgpl.c +endif + +## end gnulib module canonicalize-lgpl + +## begin gnulib module careadlinkat + +libicrt_a_SOURCES += careadlinkat.c + +EXTRA_DIST += careadlinkat.h + +## end gnulib module careadlinkat + +## begin gnulib module cloexec + +libicrt_a_SOURCES += cloexec.c + +EXTRA_DIST += cloexec.h + +## end gnulib module cloexec + +## begin gnulib module close + +if GL_COND_OBJ_CLOSE +libicrt_a_SOURCES += close.c +endif + +## end gnulib module close + +## begin gnulib module dup2 + +if GL_COND_OBJ_DUP2 +libicrt_a_SOURCES += dup2.c +endif + +## end gnulib module dup2 + +## begin gnulib module eloop-threshold + + +EXTRA_DIST += eloop-threshold.h + +## end gnulib module eloop-threshold + +## begin gnulib module errno + +BUILT_SOURCES += $(ERRNO_H) + +# We need the following in order to create when the system +# doesn't have one that is POSIX compliant. +if GL_GENERATE_ERRNO_H +errno.h: errno.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ + -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ + -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ + -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ + -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ + -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ + -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ + $(srcdir)/errno.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +errno.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += errno.h errno.h-t + +EXTRA_DIST += errno.in.h + +## end gnulib module errno + +## begin gnulib module error + +if GL_COND_OBJ_ERROR +libicrt_a_SOURCES += error.c +endif + +EXTRA_DIST += error.h + +## end gnulib module error + +## begin gnulib module fcntl + +if GL_COND_OBJ_FCNTL +libicrt_a_SOURCES += fcntl.c +endif + +## end gnulib module fcntl + +## begin gnulib module fcntl-h + +BUILT_SOURCES += fcntl.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ + -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ + -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ + -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ + -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ + -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ + -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ + -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ + -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ + -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ + -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/fcntl.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += fcntl.h fcntl.h-t + +EXTRA_DIST += fcntl.in.h + +## end gnulib module fcntl-h + +## begin gnulib module fd-hook + +libicrt_a_SOURCES += fd-hook.c + +EXTRA_DIST += fd-hook.h + +## end gnulib module fd-hook + +## begin gnulib module filename + + +EXTRA_DIST += filename.h + +## end gnulib module filename + +## begin gnulib module free-posix + +if GL_COND_OBJ_FREE +libicrt_a_SOURCES += free.c +endif + +## end gnulib module free-posix + +## begin gnulib module fstat + +if GL_COND_OBJ_FSTAT +libicrt_a_SOURCES += fstat.c +endif + +EXTRA_DIST += stat-w32.c stat-w32.h + +EXTRA_libicrt_a_SOURCES += stat-w32.c + +## end gnulib module fstat + +## begin gnulib module gen-header + +# In 'sed', replace the pattern space with a "DO NOT EDIT" comment. +SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, + +# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". +SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G + +# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading +# "DO_NOT_EDIT". Although this could be done more simply via: +# SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t +# the -n and 'w' avoid a fork+exec, at least when GNU Make is used. +SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' + +# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that +gl_V_at = $(AM_V_GEN) + +## end gnulib module gen-header + +## begin gnulib module getdtablesize + +if GL_COND_OBJ_GETDTABLESIZE +libicrt_a_SOURCES += getdtablesize.c +endif + +## end gnulib module getdtablesize + +## begin gnulib module getprogname + +libicrt_a_SOURCES += getprogname.h getprogname.c + +## end gnulib module getprogname + +## begin gnulib module gettext + +# If your project uses "gettextize --intl" to put a source-code +# copy of libintl into the package, every Makefile.am needs +# -I$(top_builddir)/intl, so that can be found in this directory. +# Here's one way to do this: +#AM_CPPFLAGS += -I$(top_builddir)/intl +# This option has no effect when the user disables NLS (because then +# the intl directory contains no libintl.h file). This option is not +# enabled by default because the intl directory might not exist if +# your project does not use "gettext --intl", and some compilers +# complain about -I options applied to nonexistent directories. + +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + +## end gnulib module gettext + +## begin gnulib module gettext-h + +libicrt_a_SOURCES += gettext.h + +## end gnulib module gettext-h + +## begin gnulib module havelib + + +EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath + +## end gnulib module havelib + +## begin gnulib module idx + +libicrt_a_SOURCES += idx.h + +## end gnulib module idx + +## begin gnulib module intprops + + +EXTRA_DIST += intprops.h + +## end gnulib module intprops + +## begin gnulib module inttypes-incomplete + +BUILT_SOURCES += inttypes.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ + -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ + -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ + -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ + -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ + -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ + -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ + -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ + -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ + -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ + -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ + -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ + -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ + -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ + -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ + -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/inttypes.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += inttypes.h inttypes.h-t + +EXTRA_DIST += inttypes.in.h + +## end gnulib module inttypes-incomplete + +## begin gnulib module lib-symbol-visibility + +# The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the +# compilation of all sources that make up the library. This line here does it +# only for the gnulib part of it. The developer is responsible for adding +# $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. +AM_CFLAGS += $(CFLAG_VISIBILITY) + +## end gnulib module lib-symbol-visibility + +## begin gnulib module libc-config + + +EXTRA_DIST += cdefs.h libc-config.h + +## end gnulib module libc-config + +## begin gnulib module libiconv-misc + +# Parametrization of the 'relocatable' module. +AM_CPPFLAGS += -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 + +## end gnulib module libiconv-misc + +## begin gnulib module limits-h + +BUILT_SOURCES += $(LIMITS_H) + +# We need the following in order to create when the system +# doesn't have one that is compatible with GNU. +if GL_GENERATE_LIMITS_H +limits.h: limits.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ + $(srcdir)/limits.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +limits.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += limits.h limits.h-t + +EXTRA_DIST += limits.in.h + +## end gnulib module limits-h + +## begin gnulib module malloc-posix + + +EXTRA_DIST += malloc.c + +EXTRA_libicrt_a_SOURCES += malloc.c + +## end gnulib module malloc-posix + +## begin gnulib module malloca + +libicrt_a_SOURCES += malloca.c + +EXTRA_DIST += malloca.h + +## end gnulib module malloca + +## begin gnulib module mempcpy + +if GL_COND_OBJ_MEMPCPY +libicrt_a_SOURCES += mempcpy.c +endif + +## end gnulib module mempcpy + +## begin gnulib module minmax + +libicrt_a_SOURCES += minmax.h + +## end gnulib module minmax + +## begin gnulib module msvc-inval + +if GL_COND_OBJ_MSVC_INVAL +libicrt_a_SOURCES += msvc-inval.c +endif + +EXTRA_DIST += msvc-inval.h + +## end gnulib module msvc-inval + +## begin gnulib module msvc-nothrow + +if GL_COND_OBJ_MSVC_NOTHROW +libicrt_a_SOURCES += msvc-nothrow.c +endif + +EXTRA_DIST += msvc-nothrow.h + +## end gnulib module msvc-nothrow + +## begin gnulib module open + +if GL_COND_OBJ_OPEN +libicrt_a_SOURCES += open.c +endif + +## end gnulib module open + +## begin gnulib module pathmax + + +EXTRA_DIST += pathmax.h + +## end gnulib module pathmax + +## begin gnulib module progname + +libicrt_a_SOURCES += progname.h progname.c + +## end gnulib module progname + +## begin gnulib module raise + +if GL_COND_OBJ_RAISE +libicrt_a_SOURCES += raise.c +endif + +## end gnulib module raise + +## begin gnulib module rawmemchr + +if GL_COND_OBJ_RAWMEMCHR +libicrt_a_SOURCES += rawmemchr.c +endif + +EXTRA_DIST += rawmemchr.valgrind + +## end gnulib module rawmemchr + +## begin gnulib module read + +if GL_COND_OBJ_READ +libicrt_a_SOURCES += read.c +endif + +## end gnulib module read + +## begin gnulib module readlink + +if GL_COND_OBJ_READLINK +libicrt_a_SOURCES += readlink.c +endif + +## end gnulib module readlink + +## begin gnulib module realloc-posix + + +EXTRA_DIST += realloc.c + +EXTRA_libicrt_a_SOURCES += realloc.c + +## end gnulib module realloc-posix + +## begin gnulib module relocatable-prog + +if GL_COND_OBJ_PROGRELOC +libicrt_a_SOURCES += progreloc.c +endif +DEFS += -DEXEEXT=\"@EXEEXT@\" +if RELOCATABLE_VIA_WRAPPER +uninstall-hook: uninstall-relocwrapper +uninstall-relocwrapper: + if test $(RELOCATABLE) = yes; then \ + case '$(EXEEXT)' in \ + .bin*) ;; \ + *) cd $(top_builddir) && \ + $(MAKE) $(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT) \ + AM_MAKEFLAGS='$(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT)' \ + uninstall ;; \ + esac; \ + fi +endif +## Automake warns about conditionally added dependencies to unconditionally defined targets. +.PHONY: uninstall-relocwrapper + +EXTRA_DIST += relocatable.c relocatable.h + +EXTRA_libicrt_a_SOURCES += relocatable.c + +EXTRA_DIST += $(top_srcdir)/build-aux/config.libpath $(top_srcdir)/build-aux/reloc-ldflags $(top_srcdir)/build-aux/libtool-reloc + +## end gnulib module relocatable-prog + +## begin gnulib module relocatable-prog-wrapper + + +EXTRA_DIST += allocator.c allocator.h areadlink.c areadlink.h c-ctype.c c-ctype.h canonicalize-lgpl.c careadlinkat.c careadlinkat.h free.c malloc.c malloc/scratch_buffer.h malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c malloc/scratch_buffer_grow_preserve.c malloc/scratch_buffer_set_array_size.c malloca.c malloca.h mempcpy.c progname.c progname.h progreloc.c rawmemchr.c readlink.c realloc.c relocatable.c relocatable.h relocwrapper.c scratch_buffer.h setenv.c stat.c + +EXTRA_DIST += $(top_srcdir)/build-aux/install-reloc + +## end gnulib module relocatable-prog-wrapper + +## begin gnulib module safe-read + +libicrt_a_SOURCES += safe-read.c + +EXTRA_DIST += safe-read.h sys-limits.h + +## end gnulib module safe-read + +## begin gnulib module scratch_buffer + +BUILT_SOURCES += malloc/scratch_buffer.gl.h + +malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h + $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \ + -e 's|__glibc_likely|_GL_LIKELY|g' \ + -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ + -e '/libc_hidden_proto/d' \ + $(srcdir)/malloc/scratch_buffer.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h-t + +libicrt_a_SOURCES += malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c malloc/scratch_buffer_grow_preserve.c malloc/scratch_buffer_set_array_size.c + +EXTRA_DIST += malloc/scratch_buffer.h scratch_buffer.h + +## end gnulib module scratch_buffer + +## begin gnulib module signal-h + +BUILT_SOURCES += signal.h + +# We need the following in order to create when the system +# doesn't have a complete one. +signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ + -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GL_GNULIB_PTHREAD_SIGMASK)/g' \ + -e 's/@''GNULIB_RAISE''@/$(GL_GNULIB_RAISE)/g' \ + -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GL_GNULIB_SIGNAL_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_SIGPROCMASK''@/$(GL_GNULIB_SIGPROCMASK)/g' \ + -e 's/@''GNULIB_SIGACTION''@/$(GL_GNULIB_SIGACTION)/g' \ + -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ + -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ + -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ + -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ + -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ + -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ + -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ + -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ + -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ + -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ + -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/signal.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += signal.h signal.h-t + +EXTRA_DIST += signal.in.h + +## end gnulib module signal-h + +## begin gnulib module sigpipe + + +EXTRA_DIST += stdio-write.c + +EXTRA_libicrt_a_SOURCES += stdio-write.c + +## end gnulib module sigpipe + +## begin gnulib module sigprocmask + +if GL_COND_OBJ_SIGPROCMASK +libicrt_a_SOURCES += sigprocmask.c +endif + +## end gnulib module sigprocmask + +## begin gnulib module snippet/_Noreturn + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +_NORETURN_H=$(srcdir)/_Noreturn.h + +EXTRA_DIST += _Noreturn.h + +## end gnulib module snippet/_Noreturn + +## begin gnulib module snippet/arg-nonnull + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +ARG_NONNULL_H=$(srcdir)/arg-nonnull.h + +EXTRA_DIST += arg-nonnull.h + +## end gnulib module snippet/arg-nonnull + +## begin gnulib module snippet/c++defs + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +CXXDEFS_H=$(srcdir)/c++defs.h + +EXTRA_DIST += c++defs.h + +## end gnulib module snippet/c++defs + +## begin gnulib module snippet/warn-on-use + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +WARN_ON_USE_H=$(srcdir)/warn-on-use.h + +EXTRA_DIST += warn-on-use.h + +## end gnulib module snippet/warn-on-use + +## begin gnulib module stat + +if GL_COND_OBJ_STAT +libicrt_a_SOURCES += stat.c +endif + +EXTRA_DIST += stat-w32.c stat-w32.h + +EXTRA_libicrt_a_SOURCES += stat-w32.c + +## end gnulib module stat + +## begin gnulib module stat-time + +libicrt_a_SOURCES += stat-time.c + +EXTRA_DIST += stat-time.h + +## end gnulib module stat-time + +## begin gnulib module stdalign + +BUILT_SOURCES += $(STDALIGN_H) + +# We need the following in order to create when the system +# doesn't have one that works. +if GL_GENERATE_STDALIGN_H +stdalign.h: stdalign.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h + $(AM_V_at)mv $@-t $@ +else +stdalign.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += stdalign.h stdalign.h-t + +EXTRA_DIST += stdalign.in.h + +## end gnulib module stdalign + +## begin gnulib module stdbool + +BUILT_SOURCES += $(STDBOOL_H) + +# We need the following in order to create when the system +# doesn't have one that works. +if GL_GENERATE_STDBOOL_H +stdbool.h: stdbool.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' \ + $(srcdir)/stdbool.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +stdbool.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += stdbool.h stdbool.h-t + +EXTRA_DIST += stdbool.in.h + +## end gnulib module stdbool + +## begin gnulib module stddef + +BUILT_SOURCES += $(STDDEF_H) + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +if GL_GENERATE_STDDEF_H +stddef.h: stddef.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ + -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ + -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ + -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ + $(srcdir)/stddef.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +stddef.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += stddef.h stddef.h-t + +EXTRA_DIST += stddef.in.h + +## end gnulib module stddef + +## begin gnulib module stdint + +BUILT_SOURCES += $(STDINT_H) + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +if GL_GENERATE_STDINT_H +stdint.h: stdint.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ + -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ + -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ + -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ + -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ + -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ + -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ + -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ + -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ + -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ + -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ + -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ + -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ + -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ + -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ + -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ + $(srcdir)/stdint.in.h > $@-t + $(AM_V_at)mv $@-t $@ +else +stdint.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += stdint.h stdint.h-t + +EXTRA_DIST += stdint.in.h + +## end gnulib module stdint + +## begin gnulib module stdio + +BUILT_SOURCES += stdio.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ + -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ + -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ + -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ + -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ + -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ + -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ + -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ + -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ + -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ + -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ + -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ + -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ + -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ + -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ + -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ + -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ + -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ + -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ + -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ + -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ + -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ + -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ + -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ + -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ + -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ + -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ + -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ + -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ + -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ + -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ + -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ + -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ + -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ + -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ + -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ + -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ + -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ + -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ + -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ + -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ + -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ + -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ + -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ + -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ + -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ + -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ + -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ + < $(srcdir)/stdio.in.h | \ + sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ + -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ + -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ + -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ + -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ + -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ + -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ + -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ + -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ + -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ + -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ + -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ + -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ + -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ + -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ + -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ + -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ + -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ + -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ + -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ + -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ + -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ + -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ + -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ + -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ + -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ + -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += stdio.h stdio.h-t + +if GL_COND_OBJ_STDIO_READ +libicrt_a_SOURCES += stdio-read.c +endif +if GL_COND_OBJ_STDIO_WRITE +libicrt_a_SOURCES += stdio-write.c +endif + +EXTRA_DIST += stdio.in.h + +## end gnulib module stdio + +## begin gnulib module stdlib + +BUILT_SOURCES += stdlib.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ + $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ + -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ + -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ + -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ + -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ + -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ + -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ + -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ + -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ + -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ + -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ + -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ + -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ + -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ + -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ + -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ + -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ + -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ + -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ + -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ + -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ + -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ + -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ + -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ + -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ + -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ + -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ + -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ + -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ + -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ + -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ + -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ + -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ + -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ + -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ + -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ + -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ + -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ + -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ + -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ + < $(srcdir)/stdlib.in.h | \ + sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ + -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ + -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ + -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ + -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ + -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ + -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ + -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ + -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ + -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ + -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ + -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ + -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ + -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ + -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ + -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ + -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ + -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ + -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ + -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ + -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ + -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ + -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ + -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ + -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ + -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ + -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ + -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ + -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ + -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ + -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ + -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ + -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ + -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ + -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ + -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ + -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ + -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ + -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ + -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ + -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ + -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ + -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ + -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ + -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ + -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ + -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ + -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ + -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ + -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ + -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ + -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ + -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ + -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ + -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ + -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ + -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ + -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ + -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ + -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ + -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ + -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ + -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ + -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ + -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _Noreturn/r $(_NORETURN_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += stdlib.h stdlib.h-t + +EXTRA_DIST += stdlib.in.h + +## end gnulib module stdlib + +## begin gnulib module streq + + +EXTRA_DIST += streq.h + +## end gnulib module streq + +## begin gnulib module strerror + +if GL_COND_OBJ_STRERROR +libicrt_a_SOURCES += strerror.c +endif + +## end gnulib module strerror + +## begin gnulib module strerror-override + +if GL_COND_OBJ_STRERROR_OVERRIDE +libicrt_a_SOURCES += strerror-override.c +endif + +EXTRA_DIST += strerror-override.h + +## end gnulib module strerror-override + +## begin gnulib module string + +BUILT_SOURCES += string.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ + -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ + -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ + -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ + -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ + -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ + -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ + -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ + -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ + -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ + -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ + -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ + -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ + -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ + -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ + -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ + -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ + -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ + -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ + -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ + -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ + -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ + -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ + -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ + -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ + -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ + -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ + -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ + -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ + -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ + -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ + -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ + -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ + -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ + -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ + -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ + -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ + -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ + -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ + -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ + -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ + -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ + -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ + -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ + -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ + -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ + -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ + -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ + -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ + -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ + -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ + -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ + -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ + -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ + -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += string.h string.h-t + +EXTRA_DIST += string.in.h + +## end gnulib module string + +## begin gnulib module sys_stat + +BUILT_SOURCES += sys/stat.h + +# We need the following in order to create when the system +# has one that is incomplete. +sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ + -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ + -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ + -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ + -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ + -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ + -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ + -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ + -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ + -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ + -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ + -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ + -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ + -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ + -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ + -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ + -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ + -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ + -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ + -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ + -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ + -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ + -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ + -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ + -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ + -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ + -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ + -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ + -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ + -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ + -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ + -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ + -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ + -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ + -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ + -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ + -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ + -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ + -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ + -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ + -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ + -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ + -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ + -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ + -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/sys_stat.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t +MOSTLYCLEANDIRS += sys + +EXTRA_DIST += sys_stat.in.h + +## end gnulib module sys_stat + +## begin gnulib module sys_types + +BUILT_SOURCES += sys/types.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +sys/types.h: sys_types.in.h $(top_builddir)/config.status + $(AM_V_GEN)$(MKDIR_P) '%reldir%/sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ + $(srcdir)/sys_types.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += sys/types.h sys/types.h-t + +EXTRA_DIST += sys_types.in.h + +## end gnulib module sys_types + +## begin gnulib module time + +BUILT_SOURCES += time.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ + -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ + -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ + -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ + -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ + -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ + -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ + -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ + -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ + -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ + -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ + -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ + -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ + -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ + -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ + -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ + -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ + -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ + -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ + -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ + -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ + -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ + -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ + -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ + -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ + -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ + -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ + -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ + -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ + -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ + -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/time.in.h > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += time.h time.h-t + +EXTRA_DIST += time.in.h + +## end gnulib module time + +## begin gnulib module unistd + +BUILT_SOURCES += unistd.h +libicrt_a_SOURCES += unistd.c + +# We need the following in order to create an empty placeholder for +# when the system doesn't have one. +unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ + -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ + -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ + -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ + -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ + -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ + -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ + -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ + -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ + -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ + -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ + -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ + -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ + -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ + -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ + -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ + -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ + -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ + -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ + -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ + -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ + -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ + -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ + -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ + -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ + -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ + -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ + -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ + -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ + -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ + -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ + -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ + -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ + -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ + -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ + -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ + -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ + -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ + -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ + -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ + -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ + -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ + -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ + -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ + -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ + -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ + -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ + -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ + -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ + -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ + -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ + -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ + -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ + -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ + -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ + -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ + -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ + -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ + -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ + -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ + -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ + -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ + -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ + -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ + -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ + -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ + -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ + -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ + -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ + -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ + -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ + -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ + -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ + -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ + -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ + -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ + -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ + < $(srcdir)/unistd.in.h | \ + sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ + -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ + -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ + -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ + -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ + -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ + -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ + -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ + -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ + -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ + -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ + -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ + -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ + -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ + -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ + -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ + -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ + -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ + -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ + -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ + -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ + -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ + -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ + -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ + -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ + -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ + -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ + -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ + -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ + -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ + -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ + -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ + -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ + -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ + -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ + -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ + -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ + -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ + -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ + -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ + | \ + sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ + -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ + -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ + -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ + -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ + -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ + -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ + -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ + -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ + -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ + -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ + -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ + -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ + -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ + -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ + -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ + -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ + -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ + -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ + -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ + -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ + -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ + -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ + -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ + -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ + -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ + -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ + -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ + -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ + -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ + -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ + -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ + -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ + -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ + -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ + -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ + -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ + -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ + -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += unistd.h unistd.h-t + +EXTRA_DIST += unistd.in.h + +## end gnulib module unistd + +## begin gnulib module unitypes + +BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H) + +unitypes.h: unitypes.in.h + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unitypes.in.h + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += unitypes.h unitypes.h-t + +EXTRA_DIST += unitypes.in.h + +## end gnulib module unitypes + +## begin gnulib module uniwidth/base + +BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H) + +uniwidth.h: uniwidth.in.h + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/uniwidth.in.h + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t + +EXTRA_DIST += localcharset.h uniwidth.in.h + +## end gnulib module uniwidth/base + +## begin gnulib module uniwidth/width + +if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH +libicrt_a_SOURCES += uniwidth/width.c +endif + +EXTRA_DIST += unictype/bitmap.h uniwidth/cjk.h uniwidth/width0.h uniwidth/width2.h + +## end gnulib module uniwidth/width + +## begin gnulib module unlocked-io-internal + + +EXTRA_DIST += unlocked-io.h + +## end gnulib module unlocked-io-internal + +## begin gnulib module verify + + +EXTRA_DIST += verify.h + +## end gnulib module verify + +## begin gnulib module wchar + +BUILT_SOURCES += wchar.h + +# We need the following in order to create when the system +# version does not work standalone. +wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ + -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ + -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ + -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ + -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ + -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ + -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ + -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ + -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ + -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ + -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ + -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ + -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ + -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ + -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ + -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ + -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ + -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ + -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ + -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ + -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ + -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ + -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ + -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ + -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ + -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ + -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ + -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ + -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ + -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ + -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ + -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ + -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ + -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ + -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ + -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ + -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ + -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ + -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ + -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ + -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ + -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ + -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ + -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ + -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + < $(srcdir)/wchar.in.h | \ + sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ + -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ + -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ + -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ + -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ + -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ + -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ + -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ + -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ + -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ + -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ + -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ + -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ + -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ + -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ + -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ + -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ + -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ + -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ + -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ + -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ + -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ + -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ + -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ + -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ + -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ + -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ + -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ + -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ + -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ + -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ + -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ + -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ + -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ + -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ + -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ + -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ + -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ + -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ + -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ + -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ + -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ + -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ + | \ + sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ + -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ + -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ + -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ + -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ + -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ + -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ + -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ + -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ + -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ + -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ + -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ + -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ + -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ +MOSTLYCLEANFILES += wchar.h wchar.h-t + +EXTRA_DIST += wchar.in.h + +## end gnulib module wchar + +## begin gnulib module xalloc + +libicrt_a_SOURCES += xalloc.h xmalloc.c xstrdup.c + +## end gnulib module xalloc + +## begin gnulib module xalloc-oversized + + +EXTRA_DIST += xalloc-oversized.h + +## end gnulib module xalloc-oversized + +## begin gnulib module xreadlink + +libicrt_a_SOURCES += xreadlink.c + +EXTRA_DIST += xreadlink.h + +## end gnulib module xreadlink + + +mostlyclean-local: mostlyclean-generic + @for dir in '' $(MOSTLYCLEANDIRS); do \ + if test -n "$$dir" && test -d $$dir; then \ + echo "rmdir $$dir"; rmdir $$dir; \ + fi; \ + done; \ + : +distclean-local: distclean-gnulib-libobjs +distclean-gnulib-libobjs: + -rm -f @gl_LIBOBJDEPS@ +maintainer-clean-local: distclean-gnulib-libobjs diff --git a/3rdPartner/libiconv/srclib/Makefile.in b/3rdPartner/libiconv/srclib/Makefile.in new file mode 100644 index 0000000..1923d10 --- /dev/null +++ b/3rdPartner/libiconv/srclib/Makefile.in @@ -0,0 +1,3151 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2002-2022 Free Software Foundation, Inc. +# +# This file 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 3 of the License, or +# (at your option) any later version. +# +# This file 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 file. If not, see . +# +# As a special exception to the GNU General Public License, +# this file may be distributed as part of a program that +# contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# Generated by gnulib-tool. +# Reproduce by: +# gnulib-tool --import --local-dir=gnulib-local \ +# --lib=libicrt \ +# --source-base=srclib \ +# --m4-base=srcm4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --makefile-name=Makefile.gnulib \ +# --no-conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# --no-vc-files \ +# binary-io \ +# error \ +# gettext \ +# gettext-h \ +# lib-symbol-visibility \ +# libiconv-misc \ +# mbstate \ +# progname \ +# relocatable-prog \ +# safe-read \ +# sigpipe \ +# stdbool \ +# stdio \ +# stdlib \ +# strerror \ +# unistd \ +# uniwidth/width \ +# unlocked-io \ +# xalloc + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@GL_COND_OBJ_CANONICALIZE_LGPL_TRUE@am__append_1 = canonicalize-lgpl.c +@GL_COND_OBJ_CLOSE_TRUE@am__append_2 = close.c +@GL_COND_OBJ_DUP2_TRUE@am__append_3 = dup2.c +@GL_COND_OBJ_ERROR_TRUE@am__append_4 = error.c +@GL_COND_OBJ_FCNTL_TRUE@am__append_5 = fcntl.c +@GL_COND_OBJ_FREE_TRUE@am__append_6 = free.c +@GL_COND_OBJ_FSTAT_TRUE@am__append_7 = fstat.c +@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__append_8 = getdtablesize.c +@GL_COND_OBJ_MEMPCPY_TRUE@am__append_9 = mempcpy.c +@GL_COND_OBJ_MSVC_INVAL_TRUE@am__append_10 = msvc-inval.c +@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__append_11 = msvc-nothrow.c +@GL_COND_OBJ_OPEN_TRUE@am__append_12 = open.c +@GL_COND_OBJ_RAISE_TRUE@am__append_13 = raise.c +@GL_COND_OBJ_RAWMEMCHR_TRUE@am__append_14 = rawmemchr.c +@GL_COND_OBJ_READ_TRUE@am__append_15 = read.c +@GL_COND_OBJ_READLINK_TRUE@am__append_16 = readlink.c +@GL_COND_OBJ_PROGRELOC_TRUE@am__append_17 = progreloc.c +@GL_COND_OBJ_SIGPROCMASK_TRUE@am__append_18 = sigprocmask.c +@GL_COND_OBJ_STAT_TRUE@am__append_19 = stat.c +@GL_COND_OBJ_STDIO_READ_TRUE@am__append_20 = stdio-read.c +@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_21 = stdio-write.c +@GL_COND_OBJ_STRERROR_TRUE@am__append_22 = strerror.c +@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_23 = strerror-override.c +@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_24 = uniwidth/width.c +subdir = srclib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/srcm4/00gnulib.m4 \ + $(top_srcdir)/srcm4/__inline.m4 \ + $(top_srcdir)/srcm4/absolute-header.m4 \ + $(top_srcdir)/srcm4/alloca.m4 \ + $(top_srcdir)/srcm4/asm-underscore.m4 \ + $(top_srcdir)/srcm4/builtin-expect.m4 \ + $(top_srcdir)/srcm4/canonicalize.m4 \ + $(top_srcdir)/srcm4/close.m4 $(top_srcdir)/srcm4/codeset.m4 \ + $(top_srcdir)/srcm4/double-slash-root.m4 \ + $(top_srcdir)/srcm4/dup2.m4 $(top_srcdir)/srcm4/eealloc.m4 \ + $(top_srcdir)/srcm4/environ.m4 $(top_srcdir)/srcm4/errno_h.m4 \ + $(top_srcdir)/srcm4/error.m4 $(top_srcdir)/srcm4/extensions.m4 \ + $(top_srcdir)/srcm4/extern-inline.m4 \ + $(top_srcdir)/srcm4/fcntl-o.m4 $(top_srcdir)/srcm4/fcntl.m4 \ + $(top_srcdir)/srcm4/fcntl_h.m4 $(top_srcdir)/srcm4/free.m4 \ + $(top_srcdir)/srcm4/fstat.m4 \ + $(top_srcdir)/srcm4/getdtablesize.m4 \ + $(top_srcdir)/srcm4/getprogname.m4 \ + $(top_srcdir)/srcm4/gettext.m4 \ + $(top_srcdir)/srcm4/gnulib-common.m4 \ + $(top_srcdir)/srcm4/gnulib-comp.m4 \ + $(top_srcdir)/srcm4/host-cpu-c-abi.m4 \ + $(top_srcdir)/srcm4/iconv.m4 \ + $(top_srcdir)/srcm4/include_next.m4 \ + $(top_srcdir)/srcm4/intlmacosx.m4 \ + $(top_srcdir)/srcm4/inttypes.m4 \ + $(top_srcdir)/srcm4/largefile.m4 $(top_srcdir)/srcm4/lib-ld.m4 \ + $(top_srcdir)/srcm4/lib-link.m4 \ + $(top_srcdir)/srcm4/lib-prefix.m4 \ + $(top_srcdir)/srcm4/libunistring-base.m4 \ + $(top_srcdir)/srcm4/limits-h.m4 $(top_srcdir)/srcm4/lstat.m4 \ + $(top_srcdir)/srcm4/malloc.m4 $(top_srcdir)/srcm4/malloca.m4 \ + $(top_srcdir)/srcm4/mbstate_t.m4 \ + $(top_srcdir)/srcm4/mempcpy.m4 $(top_srcdir)/srcm4/minmax.m4 \ + $(top_srcdir)/srcm4/mode_t.m4 \ + $(top_srcdir)/srcm4/msvc-inval.m4 \ + $(top_srcdir)/srcm4/msvc-nothrow.m4 \ + $(top_srcdir)/srcm4/multiarch.m4 $(top_srcdir)/srcm4/nls.m4 \ + $(top_srcdir)/srcm4/nocrash.m4 $(top_srcdir)/srcm4/off_t.m4 \ + $(top_srcdir)/srcm4/open-cloexec.m4 \ + $(top_srcdir)/srcm4/open-slash.m4 $(top_srcdir)/srcm4/open.m4 \ + $(top_srcdir)/srcm4/pathmax.m4 $(top_srcdir)/srcm4/po.m4 \ + $(top_srcdir)/srcm4/progtest.m4 $(top_srcdir)/srcm4/raise.m4 \ + $(top_srcdir)/srcm4/rawmemchr.m4 $(top_srcdir)/srcm4/read.m4 \ + $(top_srcdir)/srcm4/readlink.m4 $(top_srcdir)/srcm4/realloc.m4 \ + $(top_srcdir)/srcm4/relocatable-lib.m4 \ + $(top_srcdir)/srcm4/relocatable.m4 \ + $(top_srcdir)/srcm4/safe-read.m4 $(top_srcdir)/srcm4/setenv.m4 \ + $(top_srcdir)/srcm4/signal_h.m4 \ + $(top_srcdir)/srcm4/signalblocking.m4 \ + $(top_srcdir)/srcm4/sigpipe.m4 $(top_srcdir)/srcm4/ssize_t.m4 \ + $(top_srcdir)/srcm4/stat-time.m4 $(top_srcdir)/srcm4/stat.m4 \ + $(top_srcdir)/srcm4/stdalign.m4 $(top_srcdir)/srcm4/stdbool.m4 \ + $(top_srcdir)/srcm4/stddef_h.m4 $(top_srcdir)/srcm4/stdint.m4 \ + $(top_srcdir)/srcm4/stdio_h.m4 $(top_srcdir)/srcm4/stdlib_h.m4 \ + $(top_srcdir)/srcm4/strerror.m4 \ + $(top_srcdir)/srcm4/string_h.m4 \ + $(top_srcdir)/srcm4/sys_socket_h.m4 \ + $(top_srcdir)/srcm4/sys_stat_h.m4 \ + $(top_srcdir)/srcm4/sys_types_h.m4 \ + $(top_srcdir)/srcm4/time_h.m4 $(top_srcdir)/srcm4/unistd_h.m4 \ + $(top_srcdir)/srcm4/unlocked-io.m4 \ + $(top_srcdir)/srcm4/visibility.m4 \ + $(top_srcdir)/srcm4/warn-on-use.m4 \ + $(top_srcdir)/srcm4/wchar_h.m4 $(top_srcdir)/srcm4/wchar_t.m4 \ + $(top_srcdir)/srcm4/wint_t.m4 $(top_srcdir)/srcm4/year2038.m4 \ + $(top_srcdir)/srcm4/zzgnulib.m4 $(top_srcdir)/m4/cp.m4 \ + $(top_srcdir)/m4/eilseq.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ln.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/lib/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = +libicrt_a_AR = $(AR) $(ARFLAGS) +am__DEPENDENCIES_1 = +am__libicrt_a_SOURCES_DIST = allocator.c areadlink.c basename-lgpl.c \ + binary-io.h binary-io.c canonicalize-lgpl.c careadlinkat.c \ + cloexec.c close.c dup2.c error.c fcntl.c fd-hook.c free.c \ + fstat.c getdtablesize.c getprogname.h getprogname.c gettext.h \ + idx.h malloca.c mempcpy.c minmax.h msvc-inval.c msvc-nothrow.c \ + open.c progname.h progname.c raise.c rawmemchr.c read.c \ + readlink.c progreloc.c safe-read.c \ + malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c \ + malloc/scratch_buffer_grow_preserve.c \ + malloc/scratch_buffer_set_array_size.c sigprocmask.c stat.c \ + stat-time.c stdio-read.c stdio-write.c strerror.c \ + strerror-override.c unistd.c uniwidth/width.c xalloc.h \ + xmalloc.c xstrdup.c xreadlink.c +@GL_COND_OBJ_CANONICALIZE_LGPL_TRUE@am__objects_1 = libicrt_a-canonicalize-lgpl.$(OBJEXT) +@GL_COND_OBJ_CLOSE_TRUE@am__objects_2 = libicrt_a-close.$(OBJEXT) +@GL_COND_OBJ_DUP2_TRUE@am__objects_3 = libicrt_a-dup2.$(OBJEXT) +@GL_COND_OBJ_ERROR_TRUE@am__objects_4 = libicrt_a-error.$(OBJEXT) +@GL_COND_OBJ_FCNTL_TRUE@am__objects_5 = libicrt_a-fcntl.$(OBJEXT) +@GL_COND_OBJ_FREE_TRUE@am__objects_6 = libicrt_a-free.$(OBJEXT) +@GL_COND_OBJ_FSTAT_TRUE@am__objects_7 = libicrt_a-fstat.$(OBJEXT) +@GL_COND_OBJ_GETDTABLESIZE_TRUE@am__objects_8 = libicrt_a-getdtablesize.$(OBJEXT) +@GL_COND_OBJ_MEMPCPY_TRUE@am__objects_9 = libicrt_a-mempcpy.$(OBJEXT) +@GL_COND_OBJ_MSVC_INVAL_TRUE@am__objects_10 = \ +@GL_COND_OBJ_MSVC_INVAL_TRUE@ libicrt_a-msvc-inval.$(OBJEXT) +@GL_COND_OBJ_MSVC_NOTHROW_TRUE@am__objects_11 = libicrt_a-msvc-nothrow.$(OBJEXT) +@GL_COND_OBJ_OPEN_TRUE@am__objects_12 = libicrt_a-open.$(OBJEXT) +@GL_COND_OBJ_RAISE_TRUE@am__objects_13 = libicrt_a-raise.$(OBJEXT) +@GL_COND_OBJ_RAWMEMCHR_TRUE@am__objects_14 = \ +@GL_COND_OBJ_RAWMEMCHR_TRUE@ libicrt_a-rawmemchr.$(OBJEXT) +@GL_COND_OBJ_READ_TRUE@am__objects_15 = libicrt_a-read.$(OBJEXT) +@GL_COND_OBJ_READLINK_TRUE@am__objects_16 = \ +@GL_COND_OBJ_READLINK_TRUE@ libicrt_a-readlink.$(OBJEXT) +@GL_COND_OBJ_PROGRELOC_TRUE@am__objects_17 = \ +@GL_COND_OBJ_PROGRELOC_TRUE@ libicrt_a-progreloc.$(OBJEXT) +am__dirstamp = $(am__leading_dot)dirstamp +@GL_COND_OBJ_SIGPROCMASK_TRUE@am__objects_18 = \ +@GL_COND_OBJ_SIGPROCMASK_TRUE@ libicrt_a-sigprocmask.$(OBJEXT) +@GL_COND_OBJ_STAT_TRUE@am__objects_19 = libicrt_a-stat.$(OBJEXT) +@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_20 = \ +@GL_COND_OBJ_STDIO_READ_TRUE@ libicrt_a-stdio-read.$(OBJEXT) +@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_21 = \ +@GL_COND_OBJ_STDIO_WRITE_TRUE@ libicrt_a-stdio-write.$(OBJEXT) +@GL_COND_OBJ_STRERROR_TRUE@am__objects_22 = \ +@GL_COND_OBJ_STRERROR_TRUE@ libicrt_a-strerror.$(OBJEXT) +@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_23 = libicrt_a-strerror-override.$(OBJEXT) +@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_24 = uniwidth/libicrt_a-width.$(OBJEXT) +am_libicrt_a_OBJECTS = libicrt_a-allocator.$(OBJEXT) \ + libicrt_a-areadlink.$(OBJEXT) \ + libicrt_a-basename-lgpl.$(OBJEXT) \ + libicrt_a-binary-io.$(OBJEXT) $(am__objects_1) \ + libicrt_a-careadlinkat.$(OBJEXT) libicrt_a-cloexec.$(OBJEXT) \ + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) libicrt_a-fd-hook.$(OBJEXT) $(am__objects_6) \ + $(am__objects_7) $(am__objects_8) \ + libicrt_a-getprogname.$(OBJEXT) libicrt_a-malloca.$(OBJEXT) \ + $(am__objects_9) $(am__objects_10) $(am__objects_11) \ + $(am__objects_12) libicrt_a-progname.$(OBJEXT) \ + $(am__objects_13) $(am__objects_14) $(am__objects_15) \ + $(am__objects_16) $(am__objects_17) \ + libicrt_a-safe-read.$(OBJEXT) \ + malloc/libicrt_a-scratch_buffer_dupfree.$(OBJEXT) \ + malloc/libicrt_a-scratch_buffer_grow.$(OBJEXT) \ + malloc/libicrt_a-scratch_buffer_grow_preserve.$(OBJEXT) \ + malloc/libicrt_a-scratch_buffer_set_array_size.$(OBJEXT) \ + $(am__objects_18) $(am__objects_19) \ + libicrt_a-stat-time.$(OBJEXT) $(am__objects_20) \ + $(am__objects_21) $(am__objects_22) $(am__objects_23) \ + libicrt_a-unistd.$(OBJEXT) $(am__objects_24) \ + libicrt_a-xmalloc.$(OBJEXT) libicrt_a-xstrdup.$(OBJEXT) \ + libicrt_a-xreadlink.$(OBJEXT) +libicrt_a_OBJECTS = $(am_libicrt_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/lib +depcomp = +am__maybe_remake_depfiles = +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libicrt_a_SOURCES) $(EXTRA_libicrt_a_SOURCES) +DIST_SOURCES = $(am__libicrt_a_SOURCES_DIST) \ + $(EXTRA_libicrt_a_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.gnulib $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/mkinstalldirs +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +AS = @AS@ +ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BROKEN_WCHAR_H = @BROKEN_WCHAR_H@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CP = @CP@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ -DEXEEXT=\"@EXEEXT@\" +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DLL_VARIABLE = @DLL_VARIABLE@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EILSEQ = @EILSEQ@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE__BOOL = @HAVE__BOOL@ +HAVE__EXIT = @HAVE__EXIT@ +ICONV_CONST = @ICONV_CONST@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_PROGRAM_ENV = @INSTALL_PROGRAM_ENV@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBICRT_LIBDEPS = @LIBICRT_LIBDEPS@ +LIBICRT_LTLIBDEPS = @LIBICRT_LTLIBDEPS@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ +LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@ +LIMITS_H = @LIMITS_H@ +LIPO = @LIPO@ +LN = @LN@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +RC = @RC@ +RELOCATABLE = @RELOCATABLE@ +RELOCATABLE_BUILD_DIR = @RELOCATABLE_BUILD_DIR@ +RELOCATABLE_CONFIG_H_DIR = @RELOCATABLE_CONFIG_H_DIR@ +RELOCATABLE_LDFLAGS = @RELOCATABLE_LDFLAGS@ +RELOCATABLE_LIBRARY_PATH = @RELOCATABLE_LIBRARY_PATH@ +RELOCATABLE_SRC_DIR = @RELOCATABLE_SRC_DIR@ +RELOCATABLE_STRIP = @RELOCATABLE_STRIP@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +SRCLIBOBJS = @SRCLIBOBJS@ +STDALIGN_H = @STDALIGN_H@ +STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_EXTRA_ENCODINGS = @USE_EXTRA_ENCODINGS@ +USE_MBSTATE_T = @USE_MBSTATE_T@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINDRES = @WINDRES@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +WOE32 = @WOE32@ +WOE32DLL = @WOE32DLL@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies + +# If your project uses "gettextize --intl" to put a source-code +# copy of libintl into the package, every Makefile.am needs +# -I$(top_builddir)/intl, so that can be found in this directory. +# Here's one way to do this: +#AM_CPPFLAGS += -I$(top_builddir)/intl +# This option has no effect when the user disables NLS (because then +# the intl directory contains no libintl.h file). This option is not +# enabled by default because the intl directory might not exist if +# your project does not use "gettext --intl", and some compilers +# complain about -I options applied to nonexistent directories. +EXTRA_DIST = alloca.in.h allocator.h areadlink.h basename-lgpl.h \ + careadlinkat.h cloexec.h eloop-threshold.h errno.in.h error.h \ + fcntl.in.h fd-hook.h filename.h stat-w32.c stat-w32.h \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.rpath intprops.h inttypes.in.h \ + cdefs.h libc-config.h limits.in.h malloc.c malloca.h \ + msvc-inval.h msvc-nothrow.h pathmax.h rawmemchr.valgrind \ + realloc.c relocatable.c relocatable.h \ + $(top_srcdir)/build-aux/config.libpath \ + $(top_srcdir)/build-aux/reloc-ldflags \ + $(top_srcdir)/build-aux/libtool-reloc allocator.c allocator.h \ + areadlink.c areadlink.h c-ctype.c c-ctype.h \ + canonicalize-lgpl.c careadlinkat.c careadlinkat.h free.c \ + malloc.c malloc/scratch_buffer.h \ + malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c \ + malloc/scratch_buffer_grow_preserve.c \ + malloc/scratch_buffer_set_array_size.c malloca.c malloca.h \ + mempcpy.c progname.c progname.h progreloc.c rawmemchr.c \ + readlink.c realloc.c relocatable.c relocatable.h \ + relocwrapper.c scratch_buffer.h setenv.c stat.c \ + $(top_srcdir)/build-aux/install-reloc safe-read.h sys-limits.h \ + malloc/scratch_buffer.h scratch_buffer.h signal.in.h \ + stdio-write.c _Noreturn.h arg-nonnull.h c++defs.h \ + warn-on-use.h stat-w32.c stat-w32.h stat-time.h stdalign.in.h \ + stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \ + streq.h strerror-override.h string.in.h sys_stat.in.h \ + sys_types.in.h time.in.h unistd.in.h unitypes.in.h \ + localcharset.h uniwidth.in.h unictype/bitmap.h uniwidth/cjk.h \ + uniwidth/width0.h uniwidth/width2.h unlocked-io.h verify.h \ + wchar.in.h xalloc-oversized.h xreadlink.h +BUILT_SOURCES = $(ALLOCA_H) $(ERRNO_H) fcntl.h inttypes.h $(LIMITS_H) \ + malloc/scratch_buffer.gl.h signal.h $(STDALIGN_H) $(STDBOOL_H) \ + $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h sys/stat.h \ + sys/types.h time.h unistd.h $(LIBUNISTRING_UNITYPES_H) \ + $(LIBUNISTRING_UNIWIDTH_H) wchar.h +MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \ + alloca.h-t errno.h errno.h-t fcntl.h fcntl.h-t inttypes.h \ + inttypes.h-t limits.h limits.h-t malloc/scratch_buffer.gl.h \ + malloc/scratch_buffer.gl.h-t signal.h signal.h-t stdalign.h \ + stdalign.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t \ + stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \ + string.h string.h-t sys/stat.h sys/stat.h-t sys/types.h \ + sys/types.h-t time.h time.h-t unistd.h unistd.h-t unitypes.h \ + unitypes.h-t uniwidth.h uniwidth.h-t wchar.h wchar.h-t +MOSTLYCLEANDIRS = sys +# No GNU Make output. +noinst_LIBRARIES = libicrt.a + +# Parametrization of the 'relocatable' module. +AM_CPPFLAGS = -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 + +# The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the +# compilation of all sources that make up the library. This line here does it +# only for the gnulib part of it. The developer is responsible for adding +# $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. +AM_CFLAGS = $(CFLAG_VISIBILITY) +libicrt_a_SOURCES = allocator.c areadlink.c basename-lgpl.c \ + binary-io.h binary-io.c $(am__append_1) careadlinkat.c \ + cloexec.c $(am__append_2) $(am__append_3) $(am__append_4) \ + $(am__append_5) fd-hook.c $(am__append_6) $(am__append_7) \ + $(am__append_8) getprogname.h getprogname.c gettext.h idx.h \ + malloca.c $(am__append_9) minmax.h $(am__append_10) \ + $(am__append_11) $(am__append_12) progname.h progname.c \ + $(am__append_13) $(am__append_14) $(am__append_15) \ + $(am__append_16) $(am__append_17) safe-read.c \ + malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c \ + malloc/scratch_buffer_grow_preserve.c \ + malloc/scratch_buffer_set_array_size.c $(am__append_18) \ + $(am__append_19) stat-time.c $(am__append_20) $(am__append_21) \ + $(am__append_22) $(am__append_23) unistd.c $(am__append_24) \ + xalloc.h xmalloc.c xstrdup.c xreadlink.c +libicrt_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) +libicrt_a_LIBADD = $(gl_LIBOBJS) +libicrt_a_DEPENDENCIES = $(gl_LIBOBJS) +EXTRA_libicrt_a_SOURCES = stat-w32.c malloc.c realloc.c relocatable.c \ + stdio-write.c stat-w32.c + +# Use this preprocessor expression to decide whether #include_next works. +# Do not rely on a 'configure'-time test for this, since the expression +# might appear in an installed header, which is used by some other compiler. +HAVE_INCLUDE_NEXT = (__GNUC__ || __clang__ || 60000000 <= __DECC_VER) + +# In 'sed', replace the pattern space with a "DO NOT EDIT" comment. +SED_HEADER_NOEDIT = s,.*,/* DO NOT EDIT! GENERATED AUTOMATICALLY! */, + +# '$(SED_HEADER_STDOUT) -e "..."' runs 'sed' but first outputs "DO NOT EDIT". +SED_HEADER_STDOUT = sed -e 1h -e '1$(SED_HEADER_NOEDIT)' -e 1G + +# '$(SED_HEADER_TO_AT_t) FILE' copies FILE to $@-t, prepending a leading +# "DO_NOT_EDIT". Although this could be done more simply via: +# SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) > $@-t +# the -n and 'w' avoid a fork+exec, at least when GNU Make is used. +SED_HEADER_TO_AT_t = $(SED_HEADER_STDOUT) -n -e 'w $@-t' + +# Use $(gl_V_at) instead of $(AM_V_GEN) or $(AM_V_at) on a line that +gl_V_at = $(AM_V_GEN) + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. +_NORETURN_H = $(srcdir)/_Noreturn.h + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. +ARG_NONNULL_H = $(srcdir)/arg-nonnull.h + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. +CXXDEFS_H = $(srcdir)/c++defs.h + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. +WARN_ON_USE_H = $(srcdir)/warn-on-use.h +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.gnulib $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits srclib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits srclib/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(srcdir)/Makefile.gnulib $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +malloc/$(am__dirstamp): + @$(MKDIR_P) malloc + @: > malloc/$(am__dirstamp) +malloc/libicrt_a-scratch_buffer_dupfree.$(OBJEXT): \ + malloc/$(am__dirstamp) +malloc/libicrt_a-scratch_buffer_grow.$(OBJEXT): \ + malloc/$(am__dirstamp) +malloc/libicrt_a-scratch_buffer_grow_preserve.$(OBJEXT): \ + malloc/$(am__dirstamp) +malloc/libicrt_a-scratch_buffer_set_array_size.$(OBJEXT): \ + malloc/$(am__dirstamp) +uniwidth/$(am__dirstamp): + @$(MKDIR_P) uniwidth + @: > uniwidth/$(am__dirstamp) +uniwidth/libicrt_a-width.$(OBJEXT): uniwidth/$(am__dirstamp) + +libicrt.a: $(libicrt_a_OBJECTS) $(libicrt_a_DEPENDENCIES) $(EXTRA_libicrt_a_DEPENDENCIES) + $(AM_V_at)-rm -f libicrt.a + $(AM_V_AR)$(libicrt_a_AR) libicrt.a $(libicrt_a_OBJECTS) $(libicrt_a_LIBADD) + $(AM_V_at)$(RANLIB) libicrt.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f malloc/*.$(OBJEXT) + -rm -f uniwidth/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(AM_V_CC)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)$(LTCOMPILE) -c -o $@ $< + +libicrt_a-allocator.o: allocator.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-allocator.o `test -f 'allocator.c' || echo '$(srcdir)/'`allocator.c + +libicrt_a-allocator.obj: allocator.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-allocator.obj `if test -f 'allocator.c'; then $(CYGPATH_W) 'allocator.c'; else $(CYGPATH_W) '$(srcdir)/allocator.c'; fi` + +libicrt_a-areadlink.o: areadlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-areadlink.o `test -f 'areadlink.c' || echo '$(srcdir)/'`areadlink.c + +libicrt_a-areadlink.obj: areadlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-areadlink.obj `if test -f 'areadlink.c'; then $(CYGPATH_W) 'areadlink.c'; else $(CYGPATH_W) '$(srcdir)/areadlink.c'; fi` + +libicrt_a-basename-lgpl.o: basename-lgpl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-basename-lgpl.o `test -f 'basename-lgpl.c' || echo '$(srcdir)/'`basename-lgpl.c + +libicrt_a-basename-lgpl.obj: basename-lgpl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-basename-lgpl.obj `if test -f 'basename-lgpl.c'; then $(CYGPATH_W) 'basename-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/basename-lgpl.c'; fi` + +libicrt_a-binary-io.o: binary-io.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-binary-io.o `test -f 'binary-io.c' || echo '$(srcdir)/'`binary-io.c + +libicrt_a-binary-io.obj: binary-io.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-binary-io.obj `if test -f 'binary-io.c'; then $(CYGPATH_W) 'binary-io.c'; else $(CYGPATH_W) '$(srcdir)/binary-io.c'; fi` + +libicrt_a-canonicalize-lgpl.o: canonicalize-lgpl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-canonicalize-lgpl.o `test -f 'canonicalize-lgpl.c' || echo '$(srcdir)/'`canonicalize-lgpl.c + +libicrt_a-canonicalize-lgpl.obj: canonicalize-lgpl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-canonicalize-lgpl.obj `if test -f 'canonicalize-lgpl.c'; then $(CYGPATH_W) 'canonicalize-lgpl.c'; else $(CYGPATH_W) '$(srcdir)/canonicalize-lgpl.c'; fi` + +libicrt_a-careadlinkat.o: careadlinkat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-careadlinkat.o `test -f 'careadlinkat.c' || echo '$(srcdir)/'`careadlinkat.c + +libicrt_a-careadlinkat.obj: careadlinkat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-careadlinkat.obj `if test -f 'careadlinkat.c'; then $(CYGPATH_W) 'careadlinkat.c'; else $(CYGPATH_W) '$(srcdir)/careadlinkat.c'; fi` + +libicrt_a-cloexec.o: cloexec.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-cloexec.o `test -f 'cloexec.c' || echo '$(srcdir)/'`cloexec.c + +libicrt_a-cloexec.obj: cloexec.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-cloexec.obj `if test -f 'cloexec.c'; then $(CYGPATH_W) 'cloexec.c'; else $(CYGPATH_W) '$(srcdir)/cloexec.c'; fi` + +libicrt_a-close.o: close.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-close.o `test -f 'close.c' || echo '$(srcdir)/'`close.c + +libicrt_a-close.obj: close.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-close.obj `if test -f 'close.c'; then $(CYGPATH_W) 'close.c'; else $(CYGPATH_W) '$(srcdir)/close.c'; fi` + +libicrt_a-dup2.o: dup2.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-dup2.o `test -f 'dup2.c' || echo '$(srcdir)/'`dup2.c + +libicrt_a-dup2.obj: dup2.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-dup2.obj `if test -f 'dup2.c'; then $(CYGPATH_W) 'dup2.c'; else $(CYGPATH_W) '$(srcdir)/dup2.c'; fi` + +libicrt_a-error.o: error.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-error.o `test -f 'error.c' || echo '$(srcdir)/'`error.c + +libicrt_a-error.obj: error.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-error.obj `if test -f 'error.c'; then $(CYGPATH_W) 'error.c'; else $(CYGPATH_W) '$(srcdir)/error.c'; fi` + +libicrt_a-fcntl.o: fcntl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fcntl.o `test -f 'fcntl.c' || echo '$(srcdir)/'`fcntl.c + +libicrt_a-fcntl.obj: fcntl.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fcntl.obj `if test -f 'fcntl.c'; then $(CYGPATH_W) 'fcntl.c'; else $(CYGPATH_W) '$(srcdir)/fcntl.c'; fi` + +libicrt_a-fd-hook.o: fd-hook.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fd-hook.o `test -f 'fd-hook.c' || echo '$(srcdir)/'`fd-hook.c + +libicrt_a-fd-hook.obj: fd-hook.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fd-hook.obj `if test -f 'fd-hook.c'; then $(CYGPATH_W) 'fd-hook.c'; else $(CYGPATH_W) '$(srcdir)/fd-hook.c'; fi` + +libicrt_a-free.o: free.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-free.o `test -f 'free.c' || echo '$(srcdir)/'`free.c + +libicrt_a-free.obj: free.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-free.obj `if test -f 'free.c'; then $(CYGPATH_W) 'free.c'; else $(CYGPATH_W) '$(srcdir)/free.c'; fi` + +libicrt_a-fstat.o: fstat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fstat.o `test -f 'fstat.c' || echo '$(srcdir)/'`fstat.c + +libicrt_a-fstat.obj: fstat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-fstat.obj `if test -f 'fstat.c'; then $(CYGPATH_W) 'fstat.c'; else $(CYGPATH_W) '$(srcdir)/fstat.c'; fi` + +libicrt_a-getdtablesize.o: getdtablesize.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-getdtablesize.o `test -f 'getdtablesize.c' || echo '$(srcdir)/'`getdtablesize.c + +libicrt_a-getdtablesize.obj: getdtablesize.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-getdtablesize.obj `if test -f 'getdtablesize.c'; then $(CYGPATH_W) 'getdtablesize.c'; else $(CYGPATH_W) '$(srcdir)/getdtablesize.c'; fi` + +libicrt_a-getprogname.o: getprogname.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-getprogname.o `test -f 'getprogname.c' || echo '$(srcdir)/'`getprogname.c + +libicrt_a-getprogname.obj: getprogname.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-getprogname.obj `if test -f 'getprogname.c'; then $(CYGPATH_W) 'getprogname.c'; else $(CYGPATH_W) '$(srcdir)/getprogname.c'; fi` + +libicrt_a-malloca.o: malloca.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-malloca.o `test -f 'malloca.c' || echo '$(srcdir)/'`malloca.c + +libicrt_a-malloca.obj: malloca.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-malloca.obj `if test -f 'malloca.c'; then $(CYGPATH_W) 'malloca.c'; else $(CYGPATH_W) '$(srcdir)/malloca.c'; fi` + +libicrt_a-mempcpy.o: mempcpy.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-mempcpy.o `test -f 'mempcpy.c' || echo '$(srcdir)/'`mempcpy.c + +libicrt_a-mempcpy.obj: mempcpy.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-mempcpy.obj `if test -f 'mempcpy.c'; then $(CYGPATH_W) 'mempcpy.c'; else $(CYGPATH_W) '$(srcdir)/mempcpy.c'; fi` + +libicrt_a-msvc-inval.o: msvc-inval.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-msvc-inval.o `test -f 'msvc-inval.c' || echo '$(srcdir)/'`msvc-inval.c + +libicrt_a-msvc-inval.obj: msvc-inval.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-msvc-inval.obj `if test -f 'msvc-inval.c'; then $(CYGPATH_W) 'msvc-inval.c'; else $(CYGPATH_W) '$(srcdir)/msvc-inval.c'; fi` + +libicrt_a-msvc-nothrow.o: msvc-nothrow.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-msvc-nothrow.o `test -f 'msvc-nothrow.c' || echo '$(srcdir)/'`msvc-nothrow.c + +libicrt_a-msvc-nothrow.obj: msvc-nothrow.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-msvc-nothrow.obj `if test -f 'msvc-nothrow.c'; then $(CYGPATH_W) 'msvc-nothrow.c'; else $(CYGPATH_W) '$(srcdir)/msvc-nothrow.c'; fi` + +libicrt_a-open.o: open.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-open.o `test -f 'open.c' || echo '$(srcdir)/'`open.c + +libicrt_a-open.obj: open.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-open.obj `if test -f 'open.c'; then $(CYGPATH_W) 'open.c'; else $(CYGPATH_W) '$(srcdir)/open.c'; fi` + +libicrt_a-progname.o: progname.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-progname.o `test -f 'progname.c' || echo '$(srcdir)/'`progname.c + +libicrt_a-progname.obj: progname.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-progname.obj `if test -f 'progname.c'; then $(CYGPATH_W) 'progname.c'; else $(CYGPATH_W) '$(srcdir)/progname.c'; fi` + +libicrt_a-raise.o: raise.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-raise.o `test -f 'raise.c' || echo '$(srcdir)/'`raise.c + +libicrt_a-raise.obj: raise.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-raise.obj `if test -f 'raise.c'; then $(CYGPATH_W) 'raise.c'; else $(CYGPATH_W) '$(srcdir)/raise.c'; fi` + +libicrt_a-rawmemchr.o: rawmemchr.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-rawmemchr.o `test -f 'rawmemchr.c' || echo '$(srcdir)/'`rawmemchr.c + +libicrt_a-rawmemchr.obj: rawmemchr.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-rawmemchr.obj `if test -f 'rawmemchr.c'; then $(CYGPATH_W) 'rawmemchr.c'; else $(CYGPATH_W) '$(srcdir)/rawmemchr.c'; fi` + +libicrt_a-read.o: read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-read.o `test -f 'read.c' || echo '$(srcdir)/'`read.c + +libicrt_a-read.obj: read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-read.obj `if test -f 'read.c'; then $(CYGPATH_W) 'read.c'; else $(CYGPATH_W) '$(srcdir)/read.c'; fi` + +libicrt_a-readlink.o: readlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-readlink.o `test -f 'readlink.c' || echo '$(srcdir)/'`readlink.c + +libicrt_a-readlink.obj: readlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-readlink.obj `if test -f 'readlink.c'; then $(CYGPATH_W) 'readlink.c'; else $(CYGPATH_W) '$(srcdir)/readlink.c'; fi` + +libicrt_a-progreloc.o: progreloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-progreloc.o `test -f 'progreloc.c' || echo '$(srcdir)/'`progreloc.c + +libicrt_a-progreloc.obj: progreloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-progreloc.obj `if test -f 'progreloc.c'; then $(CYGPATH_W) 'progreloc.c'; else $(CYGPATH_W) '$(srcdir)/progreloc.c'; fi` + +libicrt_a-safe-read.o: safe-read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-safe-read.o `test -f 'safe-read.c' || echo '$(srcdir)/'`safe-read.c + +libicrt_a-safe-read.obj: safe-read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-safe-read.obj `if test -f 'safe-read.c'; then $(CYGPATH_W) 'safe-read.c'; else $(CYGPATH_W) '$(srcdir)/safe-read.c'; fi` + +malloc/libicrt_a-scratch_buffer_dupfree.o: malloc/scratch_buffer_dupfree.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_dupfree.o `test -f 'malloc/scratch_buffer_dupfree.c' || echo '$(srcdir)/'`malloc/scratch_buffer_dupfree.c + +malloc/libicrt_a-scratch_buffer_dupfree.obj: malloc/scratch_buffer_dupfree.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_dupfree.obj `if test -f 'malloc/scratch_buffer_dupfree.c'; then $(CYGPATH_W) 'malloc/scratch_buffer_dupfree.c'; else $(CYGPATH_W) '$(srcdir)/malloc/scratch_buffer_dupfree.c'; fi` + +malloc/libicrt_a-scratch_buffer_grow.o: malloc/scratch_buffer_grow.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_grow.o `test -f 'malloc/scratch_buffer_grow.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow.c + +malloc/libicrt_a-scratch_buffer_grow.obj: malloc/scratch_buffer_grow.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_grow.obj `if test -f 'malloc/scratch_buffer_grow.c'; then $(CYGPATH_W) 'malloc/scratch_buffer_grow.c'; else $(CYGPATH_W) '$(srcdir)/malloc/scratch_buffer_grow.c'; fi` + +malloc/libicrt_a-scratch_buffer_grow_preserve.o: malloc/scratch_buffer_grow_preserve.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_grow_preserve.o `test -f 'malloc/scratch_buffer_grow_preserve.c' || echo '$(srcdir)/'`malloc/scratch_buffer_grow_preserve.c + +malloc/libicrt_a-scratch_buffer_grow_preserve.obj: malloc/scratch_buffer_grow_preserve.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_grow_preserve.obj `if test -f 'malloc/scratch_buffer_grow_preserve.c'; then $(CYGPATH_W) 'malloc/scratch_buffer_grow_preserve.c'; else $(CYGPATH_W) '$(srcdir)/malloc/scratch_buffer_grow_preserve.c'; fi` + +malloc/libicrt_a-scratch_buffer_set_array_size.o: malloc/scratch_buffer_set_array_size.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_set_array_size.o `test -f 'malloc/scratch_buffer_set_array_size.c' || echo '$(srcdir)/'`malloc/scratch_buffer_set_array_size.c + +malloc/libicrt_a-scratch_buffer_set_array_size.obj: malloc/scratch_buffer_set_array_size.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o malloc/libicrt_a-scratch_buffer_set_array_size.obj `if test -f 'malloc/scratch_buffer_set_array_size.c'; then $(CYGPATH_W) 'malloc/scratch_buffer_set_array_size.c'; else $(CYGPATH_W) '$(srcdir)/malloc/scratch_buffer_set_array_size.c'; fi` + +libicrt_a-sigprocmask.o: sigprocmask.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-sigprocmask.o `test -f 'sigprocmask.c' || echo '$(srcdir)/'`sigprocmask.c + +libicrt_a-sigprocmask.obj: sigprocmask.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-sigprocmask.obj `if test -f 'sigprocmask.c'; then $(CYGPATH_W) 'sigprocmask.c'; else $(CYGPATH_W) '$(srcdir)/sigprocmask.c'; fi` + +libicrt_a-stat.o: stat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat.o `test -f 'stat.c' || echo '$(srcdir)/'`stat.c + +libicrt_a-stat.obj: stat.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat.obj `if test -f 'stat.c'; then $(CYGPATH_W) 'stat.c'; else $(CYGPATH_W) '$(srcdir)/stat.c'; fi` + +libicrt_a-stat-time.o: stat-time.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat-time.o `test -f 'stat-time.c' || echo '$(srcdir)/'`stat-time.c + +libicrt_a-stat-time.obj: stat-time.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat-time.obj `if test -f 'stat-time.c'; then $(CYGPATH_W) 'stat-time.c'; else $(CYGPATH_W) '$(srcdir)/stat-time.c'; fi` + +libicrt_a-stdio-read.o: stdio-read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stdio-read.o `test -f 'stdio-read.c' || echo '$(srcdir)/'`stdio-read.c + +libicrt_a-stdio-read.obj: stdio-read.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stdio-read.obj `if test -f 'stdio-read.c'; then $(CYGPATH_W) 'stdio-read.c'; else $(CYGPATH_W) '$(srcdir)/stdio-read.c'; fi` + +libicrt_a-stdio-write.o: stdio-write.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stdio-write.o `test -f 'stdio-write.c' || echo '$(srcdir)/'`stdio-write.c + +libicrt_a-stdio-write.obj: stdio-write.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stdio-write.obj `if test -f 'stdio-write.c'; then $(CYGPATH_W) 'stdio-write.c'; else $(CYGPATH_W) '$(srcdir)/stdio-write.c'; fi` + +libicrt_a-strerror.o: strerror.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-strerror.o `test -f 'strerror.c' || echo '$(srcdir)/'`strerror.c + +libicrt_a-strerror.obj: strerror.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-strerror.obj `if test -f 'strerror.c'; then $(CYGPATH_W) 'strerror.c'; else $(CYGPATH_W) '$(srcdir)/strerror.c'; fi` + +libicrt_a-strerror-override.o: strerror-override.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-strerror-override.o `test -f 'strerror-override.c' || echo '$(srcdir)/'`strerror-override.c + +libicrt_a-strerror-override.obj: strerror-override.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-strerror-override.obj `if test -f 'strerror-override.c'; then $(CYGPATH_W) 'strerror-override.c'; else $(CYGPATH_W) '$(srcdir)/strerror-override.c'; fi` + +libicrt_a-unistd.o: unistd.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c + +libicrt_a-unistd.obj: unistd.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-unistd.obj `if test -f 'unistd.c'; then $(CYGPATH_W) 'unistd.c'; else $(CYGPATH_W) '$(srcdir)/unistd.c'; fi` + +uniwidth/libicrt_a-width.o: uniwidth/width.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o uniwidth/libicrt_a-width.o `test -f 'uniwidth/width.c' || echo '$(srcdir)/'`uniwidth/width.c + +uniwidth/libicrt_a-width.obj: uniwidth/width.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o uniwidth/libicrt_a-width.obj `if test -f 'uniwidth/width.c'; then $(CYGPATH_W) 'uniwidth/width.c'; else $(CYGPATH_W) '$(srcdir)/uniwidth/width.c'; fi` + +libicrt_a-xmalloc.o: xmalloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c + +libicrt_a-xmalloc.obj: xmalloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xmalloc.obj `if test -f 'xmalloc.c'; then $(CYGPATH_W) 'xmalloc.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc.c'; fi` + +libicrt_a-xstrdup.o: xstrdup.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xstrdup.o `test -f 'xstrdup.c' || echo '$(srcdir)/'`xstrdup.c + +libicrt_a-xstrdup.obj: xstrdup.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xstrdup.obj `if test -f 'xstrdup.c'; then $(CYGPATH_W) 'xstrdup.c'; else $(CYGPATH_W) '$(srcdir)/xstrdup.c'; fi` + +libicrt_a-xreadlink.o: xreadlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xreadlink.o `test -f 'xreadlink.c' || echo '$(srcdir)/'`xreadlink.c + +libicrt_a-xreadlink.obj: xreadlink.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-xreadlink.obj `if test -f 'xreadlink.c'; then $(CYGPATH_W) 'xreadlink.c'; else $(CYGPATH_W) '$(srcdir)/xreadlink.c'; fi` + +libicrt_a-stat-w32.o: stat-w32.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat-w32.o `test -f 'stat-w32.c' || echo '$(srcdir)/'`stat-w32.c + +libicrt_a-stat-w32.obj: stat-w32.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-stat-w32.obj `if test -f 'stat-w32.c'; then $(CYGPATH_W) 'stat-w32.c'; else $(CYGPATH_W) '$(srcdir)/stat-w32.c'; fi` + +libicrt_a-malloc.o: malloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-malloc.o `test -f 'malloc.c' || echo '$(srcdir)/'`malloc.c + +libicrt_a-malloc.obj: malloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-malloc.obj `if test -f 'malloc.c'; then $(CYGPATH_W) 'malloc.c'; else $(CYGPATH_W) '$(srcdir)/malloc.c'; fi` + +libicrt_a-realloc.o: realloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-realloc.o `test -f 'realloc.c' || echo '$(srcdir)/'`realloc.c + +libicrt_a-realloc.obj: realloc.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-realloc.obj `if test -f 'realloc.c'; then $(CYGPATH_W) 'realloc.c'; else $(CYGPATH_W) '$(srcdir)/realloc.c'; fi` + +libicrt_a-relocatable.o: relocatable.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-relocatable.o `test -f 'relocatable.c' || echo '$(srcdir)/'`relocatable.c + +libicrt_a-relocatable.obj: relocatable.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libicrt_a_CFLAGS) $(CFLAGS) -c -o libicrt_a-relocatable.obj `if test -f 'relocatable.c'; then $(CYGPATH_W) 'relocatable.c'; else $(CYGPATH_W) '$(srcdir)/relocatable.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LIBRARIES) +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f malloc/$(am__dirstamp) + -rm -f uniwidth/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +@RELOCATABLE_VIA_WRAPPER_FALSE@uninstall-hook: +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +.MAKE: all check install install-am install-exec install-strip \ + uninstall-am + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-hook + +.PRECIOUS: Makefile + + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status +@GL_GENERATE_ALLOCA_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_ALLOCA_H_TRUE@ -e 's|@''HAVE_ALLOCA_H''@|$(HAVE_ALLOCA_H)|g' \ +@GL_GENERATE_ALLOCA_H_TRUE@ $(srcdir)/alloca.in.h > $@-t +@GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status +@GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that is POSIX compliant. +@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status +@GL_GENERATE_ERRNO_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ +@GL_GENERATE_ERRNO_H_TRUE@ $(srcdir)/errno.in.h > $@-t +@GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status +@GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ + -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \ + -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \ + -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \ + -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \ + -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \ + -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \ + -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \ + -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ + -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ + -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/fcntl.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ + -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \ + -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \ + -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \ + -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \ + -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ + -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ + -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ + -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ + -e 's/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ + -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ + -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ + -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ + -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ + -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ + -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/inttypes.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that is compatible with GNU. +@GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status +@GL_GENERATE_LIMITS_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ +@GL_GENERATE_LIMITS_H_TRUE@ $(srcdir)/limits.in.h > $@-t +@GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status +@GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ +@RELOCATABLE_VIA_WRAPPER_TRUE@uninstall-hook: uninstall-relocwrapper +@RELOCATABLE_VIA_WRAPPER_TRUE@uninstall-relocwrapper: +@RELOCATABLE_VIA_WRAPPER_TRUE@ if test $(RELOCATABLE) = yes; then \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ case '$(EXEEXT)' in \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ .bin*) ;; \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ *) cd $(top_builddir) && \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ $(MAKE) $(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT) \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ AM_MAKEFLAGS='$(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT)' \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ uninstall ;; \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ esac; \ +@RELOCATABLE_VIA_WRAPPER_TRUE@ fi +.PHONY: uninstall-relocwrapper + +malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h + $(AM_V_GEN)$(MKDIR_P) 'malloc' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \ + -e 's|__glibc_likely|_GL_LIKELY|g' \ + -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \ + -e '/libc_hidden_proto/d' \ + $(srcdir)/malloc/scratch_buffer.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have a complete one. +signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ + -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GL_GNULIB_PTHREAD_SIGMASK)/g' \ + -e 's/@''GNULIB_RAISE''@/$(GL_GNULIB_RAISE)/g' \ + -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GL_GNULIB_SIGNAL_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_SIGPROCMASK''@/$(GL_GNULIB_SIGPROCMASK)/g' \ + -e 's/@''GNULIB_SIGACTION''@/$(GL_GNULIB_SIGACTION)/g' \ + -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ + -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ + -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ + -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ + -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ + -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ + -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ + -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ + -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ + -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ + -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/signal.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works. +@GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status +@GL_GENERATE_STDALIGN_H_TRUE@ $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h +@GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status +@GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that works. +@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status +@GL_GENERATE_STDBOOL_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_STDBOOL_H_TRUE@ -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' \ +@GL_GENERATE_STDBOOL_H_TRUE@ $(srcdir)/stdbool.in.h > $@-t +@GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status +@GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +@GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status +@GL_GENERATE_STDDEF_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ +@GL_GENERATE_STDDEF_H_TRUE@ $(srcdir)/stddef.in.h > $@-t +@GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status +@GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +@GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status +@GL_GENERATE_STDINT_H_TRUE@ $(gl_V_at)$(SED_HEADER_STDOUT) \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ +@GL_GENERATE_STDINT_H_TRUE@ $(srcdir)/stdint.in.h > $@-t +@GL_GENERATE_STDINT_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status +@GL_GENERATE_STDINT_H_FALSE@ rm -f $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ + -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \ + -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \ + -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \ + -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \ + -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \ + -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \ + -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \ + -e 's/@''GNULIB_FOPEN_GNU''@/$(GL_GNULIB_FOPEN_GNU)/g' \ + -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \ + -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \ + -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \ + -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \ + -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \ + -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \ + -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \ + -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \ + -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \ + -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \ + -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \ + -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \ + -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \ + -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \ + -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \ + -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \ + -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \ + -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \ + -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \ + -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \ + -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \ + -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \ + -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \ + -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \ + -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \ + -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \ + -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \ + -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \ + -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \ + -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \ + -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \ + -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \ + -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \ + -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \ + -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \ + -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \ + -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \ + -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \ + -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \ + -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \ + -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \ + < $(srcdir)/stdio.in.h | \ + sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \ + -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ + -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ + -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ + -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ + -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ + -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ + -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ + -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ + -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ + -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ + -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ + -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ + -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ + -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ + -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ + -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FOPEN_FOR_FOPEN_GNU''@|$(REPLACE_FOPEN_FOR_FOPEN_GNU)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ + -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ + -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ + -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ + -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ + -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ + -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ + -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ + -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ + -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ + -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ + $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ + -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \ + -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \ + -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \ + -e 's/@''GNULIB_CALLOC_GNU''@/$(GL_GNULIB_CALLOC_GNU)/g' \ + -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \ + -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \ + -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \ + -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \ + -e 's/@''GNULIB_MALLOC_GNU''@/$(GL_GNULIB_MALLOC_GNU)/g' \ + -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \ + -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \ + -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \ + -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \ + -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \ + -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \ + -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \ + -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \ + -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \ + -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \ + -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \ + -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \ + -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \ + -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \ + -e 's/@''GNULIB_REALLOC_GNU''@/$(GL_GNULIB_REALLOC_GNU)/g' \ + -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \ + -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \ + -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \ + -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \ + -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \ + -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \ + -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \ + -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \ + -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \ + -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \ + -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \ + -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \ + -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \ + -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \ + -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \ + -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \ + -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \ + -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \ + -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \ + -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \ + -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \ + < $(srcdir)/stdlib.in.h | \ + sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ + -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \ + -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ + -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''HAVE_DECL_ECVT''@|$(HAVE_DECL_ECVT)|g' \ + -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ + -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ + -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ + -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ + -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ + -e 's|@''HAVE_INITSTATE''@|$(HAVE_INITSTATE)|g' \ + -e 's|@''HAVE_DECL_INITSTATE''@|$(HAVE_DECL_INITSTATE)|g' \ + -e 's|@''HAVE_MBTOWC''@|$(HAVE_MBTOWC)|g' \ + -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ + -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ + -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_POSIX_MEMALIGN''@|$(HAVE_POSIX_MEMALIGN)|g' \ + -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ + -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ + -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ + -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ + -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ + -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ + -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ + -e 's|@''HAVE_REALLOCARRAY''@|$(HAVE_REALLOCARRAY)|g' \ + -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ + -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ + -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ + -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ + -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \ + -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \ + -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ + -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \ + -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \ + -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ + -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \ + -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ + -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ + -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ + -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ + -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ + -e 's|@''REPLACE_ALIGNED_ALLOC''@|$(REPLACE_ALIGNED_ALLOC)|g' \ + -e 's|@''REPLACE_CALLOC_FOR_CALLOC_GNU''@|$(REPLACE_CALLOC_FOR_CALLOC_GNU)|g' \ + -e 's|@''REPLACE_CALLOC_FOR_CALLOC_POSIX''@|$(REPLACE_CALLOC_FOR_CALLOC_POSIX)|g' \ + -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_INITSTATE''@|$(REPLACE_INITSTATE)|g' \ + -e 's|@''REPLACE_MALLOC_FOR_MALLOC_GNU''@|$(REPLACE_MALLOC_FOR_MALLOC_GNU)|g' \ + -e 's|@''REPLACE_MALLOC_FOR_MALLOC_POSIX''@|$(REPLACE_MALLOC_FOR_MALLOC_POSIX)|g' \ + -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ + -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_POSIX_MEMALIGN''@|$(REPLACE_POSIX_MEMALIGN)|g' \ + -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ + -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ + -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ + -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \ + -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ + -e 's|@''REPLACE_REALLOC_FOR_REALLOC_GNU''@|$(REPLACE_REALLOC_FOR_REALLOC_GNU)|g' \ + -e 's|@''REPLACE_REALLOC_FOR_REALLOC_POSIX''@|$(REPLACE_REALLOC_FOR_REALLOC_POSIX)|g' \ + -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \ + -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ + -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ + -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \ + -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ + -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \ + -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \ + -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \ + -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \ + -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \ + -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _Noreturn/r $(_NORETURN_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \ + -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \ + -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \ + -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \ + -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \ + -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \ + -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \ + -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \ + -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \ + -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \ + -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \ + -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \ + -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \ + -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \ + -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \ + -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \ + -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \ + -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \ + -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \ + -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \ + -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \ + -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \ + -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \ + -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \ + -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \ + -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \ + -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \ + -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \ + -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \ + -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \ + -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \ + -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \ + -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \ + -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \ + -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \ + -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \ + -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \ + -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \ + -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \ + -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \ + -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \ + -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \ + -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \ + -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ + -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ + -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ + -e 's|@''HAVE_STRERRORNAME_NP''@|$(HAVE_STRERRORNAME_NP)|g' \ + -e 's|@''HAVE_SIGABBREV_NP''@|$(HAVE_SIGABBREV_NP)|g' \ + -e 's|@''HAVE_SIGDESCR_NP''@|$(HAVE_SIGDESCR_NP)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ + -e 's|@''REPLACE_FFSLL''@|$(REPLACE_FFSLL)|g' \ + -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ + -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ + -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ + -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ + -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ + -e 's|@''REPLACE_STRERRORNAME_NP''@|$(REPLACE_STRERRORNAME_NP)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# has one that is incomplete. +sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)$(MKDIR_P) 'sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ + -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \ + -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \ + -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \ + -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \ + -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \ + -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \ + -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \ + -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \ + -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \ + -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \ + -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \ + -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \ + -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \ + -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \ + -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \ + -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \ + -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \ + -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \ + -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \ + -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \ + -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ + -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ + -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ + -e 's|@''HAVE_GETUMASK''@|$(HAVE_GETUMASK)|g' \ + -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ + -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ + -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ + -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ + -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ + -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ + -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ + -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ + -e 's|@''REPLACE_FCHMODAT''@|$(REPLACE_FCHMODAT)|g' \ + -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ + -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ + -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ + -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ + -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ + -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ + -e 's|@''REPLACE_MKFIFOAT''@|$(REPLACE_MKFIFOAT)|g' \ + -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ + -e 's|@''REPLACE_MKNODAT''@|$(REPLACE_MKNODAT)|g' \ + -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ + -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/sys_stat.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +sys/types.h: sys_types.in.h $(top_builddir)/config.status + $(AM_V_GEN)$(MKDIR_P) 'sys' + $(AM_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's|@''WINDOWS_STAT_INODES''@|$(WINDOWS_STAT_INODES)|g' \ + $(srcdir)/sys_types.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ + -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \ + -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \ + -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \ + -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \ + -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \ + -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \ + -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \ + -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \ + -e 's/@''GNULIB_TIMESPEC_GETRES''@/$(GL_GNULIB_TIMESPEC_GETRES)/g' \ + -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \ + -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \ + -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \ + -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \ + -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ + -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ + -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ + -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ + -e 's|@''HAVE_TIMESPEC_GET''@|$(HAVE_TIMESPEC_GET)|g' \ + -e 's|@''HAVE_TIMESPEC_GETRES''@|$(HAVE_TIMESPEC_GETRES)|g' \ + -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ + -e 's|@''REPLACE_CTIME''@|$(REPLACE_CTIME)|g' \ + -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ + -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ + -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ + -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ + -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ + -e 's|@''REPLACE_STRFTIME''@|$(REPLACE_STRFTIME)|g' \ + -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ + -e 's|@''REPLACE_TZSET''@|$(REPLACE_TZSET)|g' \ + -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_TIME_UTC''@|$(TIME_H_DEFINES_TIME_UTC)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + $(srcdir)/time.in.h > $@-t + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create an empty placeholder for +# when the system doesn't have one. +unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ + -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \ + -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \ + -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \ + -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \ + -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \ + -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \ + -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \ + -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \ + -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \ + -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \ + -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \ + -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \ + -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \ + -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \ + -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \ + -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \ + -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \ + -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \ + -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \ + -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \ + -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \ + -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \ + -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \ + -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \ + -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \ + -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \ + -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \ + -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \ + -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \ + -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \ + -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \ + -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \ + -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \ + -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \ + -e 's/@''GNULIB_GETPASS_GNU''@/$(GL_GNULIB_GETPASS_GNU)/g' \ + -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \ + -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \ + -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \ + -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \ + -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \ + -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \ + -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \ + -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \ + -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \ + -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \ + -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \ + -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \ + -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \ + -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \ + -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \ + -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \ + -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \ + -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \ + -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \ + -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \ + -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \ + -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \ + -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \ + -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \ + -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \ + -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \ + -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \ + -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \ + -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \ + -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \ + -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \ + -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \ + -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \ + -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \ + -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \ + -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \ + -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \ + -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \ + -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \ + -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \ + -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \ + -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \ + -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \ + -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \ + -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \ + -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \ + -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \ + -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \ + -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \ + < $(srcdir)/unistd.in.h | \ + sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \ + -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ + -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ + -e 's|@''HAVE_EXECVPE''@|$(HAVE_EXECVPE)|g' \ + -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ + -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ + -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ + -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ + -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ + -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ + -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ + -e 's|@''HAVE_GETENTROPY''@|$(HAVE_GETENTROPY)|g' \ + -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ + -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ + -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ + -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ + -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ + -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ + -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ + -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ + -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ + -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ + -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ + -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ + -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ + -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ + -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ + -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ + -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ + -e 's|@''HAVE_DECL_EXECVPE''@|$(HAVE_DECL_EXECVPE)|g' \ + -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ + -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ + -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ + -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ + -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ + -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ + -e 's|@''HAVE_DECL_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|g' \ + -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ + -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ + -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ + | \ + sed -e 's|@''REPLACE_ACCESS''@|$(REPLACE_ACCESS)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ + -e 's|@''REPLACE_COPY_FILE_RANGE''@|$(REPLACE_COPY_FILE_RANGE)|g' \ + -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ + -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ + -e 's|@''REPLACE_EXECL''@|$(REPLACE_EXECL)|g' \ + -e 's|@''REPLACE_EXECLE''@|$(REPLACE_EXECLE)|g' \ + -e 's|@''REPLACE_EXECLP''@|$(REPLACE_EXECLP)|g' \ + -e 's|@''REPLACE_EXECV''@|$(REPLACE_EXECV)|g' \ + -e 's|@''REPLACE_EXECVE''@|$(REPLACE_EXECVE)|g' \ + -e 's|@''REPLACE_EXECVP''@|$(REPLACE_EXECVP)|g' \ + -e 's|@''REPLACE_EXECVPE''@|$(REPLACE_EXECVPE)|g' \ + -e 's|@''REPLACE_FACCESSAT''@|$(REPLACE_FACCESSAT)|g' \ + -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ + -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ + -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ + -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ + -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ + -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ + -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ + -e 's|@''REPLACE_GETPASS_FOR_GETPASS_GNU''@|$(REPLACE_GETPASS_FOR_GETPASS_GNU)|g' \ + -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ + -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ + -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ + -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ + -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ + -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ + -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ + -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ + -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ + -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ + -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ + -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ + -e 's|@''REPLACE_TRUNCATE''@|$(REPLACE_TRUNCATE)|g' \ + -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ + -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ + -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ + -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ + -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ + -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|$(UNISTD_H_HAVE_SYS_RANDOM_H)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ + +unitypes.h: unitypes.in.h + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/unitypes.in.h + $(AM_V_at)mv $@-t $@ + +uniwidth.h: uniwidth.in.h + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/uniwidth.in.h + $(AM_V_at)mv $@-t $@ + +# We need the following in order to create when the system +# version does not work standalone. +wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(gl_V_at)$(SED_HEADER_STDOUT) \ + -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ + -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \ + -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \ + -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \ + -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \ + -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \ + -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \ + -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \ + -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \ + -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \ + -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \ + -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \ + -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \ + -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \ + -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \ + -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \ + -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \ + -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \ + -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \ + -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \ + -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \ + -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \ + -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \ + -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \ + -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \ + -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \ + -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \ + -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \ + -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \ + -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \ + -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \ + -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \ + -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \ + -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \ + -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \ + -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \ + -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \ + -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \ + -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \ + -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \ + -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \ + -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \ + -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \ + -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \ + -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \ + -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \ + < $(srcdir)/wchar.in.h | \ + sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ + -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ + -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ + -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ + -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ + -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ + -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ + -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ + -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ + -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ + -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ + -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ + -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ + -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ + -e 's|@''HAVE_WMEMPCPY''@|$(HAVE_WMEMPCPY)|g' \ + -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ + -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ + -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ + -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ + -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ + -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ + -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ + -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ + -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ + -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ + -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ + -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ + -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ + -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ + -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ + -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ + -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ + -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ + -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ + -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ + -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ + -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ + -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ + -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ + -e 's|@''HAVE_WCSFTIME''@|$(HAVE_WCSFTIME)|g' \ + -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ + -e 's|@''HAVE_DECL_WCSDUP''@|$(HAVE_DECL_WCSDUP)|g' \ + -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ + | \ + sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ + -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ + -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ + -e 's|@''REPLACE_FREE''@|$(REPLACE_FREE)|g' \ + -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ + -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ + -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ + -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ + -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ + -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ + -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ + -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ + -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ + -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ + -e 's|@''REPLACE_WCSFTIME''@|$(REPLACE_WCSFTIME)|g' \ + -e 's|@''REPLACE_WCSTOK''@|$(REPLACE_WCSTOK)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + > $@-t + $(AM_V_at)mv $@-t $@ + +mostlyclean-local: mostlyclean-generic + @for dir in '' $(MOSTLYCLEANDIRS); do \ + if test -n "$$dir" && test -d $$dir; then \ + echo "rmdir $$dir"; rmdir $$dir; \ + fi; \ + done; \ + : +distclean-local: distclean-gnulib-libobjs +distclean-gnulib-libobjs: + -rm -f @gl_LIBOBJDEPS@ +maintainer-clean-local: distclean-gnulib-libobjs + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/3rdPartner/libiconv/srclib/_Noreturn.h b/3rdPartner/libiconv/srclib/_Noreturn.h new file mode 100644 index 0000000..e914627 --- /dev/null +++ b/3rdPartner/libiconv/srclib/_Noreturn.h @@ -0,0 +1,45 @@ +/* A C macro for declaring that a function does not return. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This program 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 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER)) \ + && 0) + /* [[noreturn]] is not practically usable, because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would only be valid with 'extern' + and '_Noreturn' swapped, or without the 'extern' keyword. However, some + AIX system header files and several gnulib header files use precisely + this syntax with 'extern'. */ +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || (!defined __STRICT_ANSI__ \ + && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))))) + /* _Noreturn works as-is. */ +# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ + || 0x5110 <= __SUNPRO_C) +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif diff --git a/3rdPartner/libiconv/srclib/alloca.in.h b/3rdPartner/libiconv/srclib/alloca.in.h new file mode 100644 index 0000000..02694d1 --- /dev/null +++ b/3rdPartner/libiconv/srclib/alloca.in.h @@ -0,0 +1,68 @@ +/* Memory allocation on the stack. + Copyright (C) 1995, 1999, 2001-2007 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* When this file is included, it may be preceded only by preprocessor + declarations. Thanks to AIX. Therefore we include it right after + "config.h", not later. */ + +/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H + means there is a real alloca function. */ +#ifndef _GL_ALLOCA_H +#define _GL_ALLOCA_H + +/* alloca(N) returns a pointer (void* or char*) to N bytes of memory + allocated on the stack, and which will last until the function returns. + Use of alloca should be avoided: + - inside arguments of function calls - undefined behaviour, + - in inline functions - the allocation may actually last until the + calling function returns, + - for huge N (say, N >= 65536) - you never know how large (or small) + the stack is, and when the stack cannot fulfill the memory allocation + request, the program just crashes. + */ + +#ifndef alloca +# ifdef __GNUC__ +# define alloca __builtin_alloca +# else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifdef __hpux /* This section must match that of bison generated files. */ +# ifdef __cplusplus +extern "C" void *alloca (unsigned int); +# else /* not __cplusplus */ +extern void *alloca (); +# endif /* not __cplusplus */ +# else /* not __hpux */ +# ifndef alloca +extern char *alloca (); +# endif +# endif /* __hpux */ +# endif +# endif +# endif +# endif +#endif + +#endif /* _GL_ALLOCA_H */ diff --git a/3rdPartner/libiconv/srclib/allocator.c b/3rdPartner/libiconv/srclib/allocator.c new file mode 100644 index 0000000..42c8918 --- /dev/null +++ b/3rdPartner/libiconv/srclib/allocator.c @@ -0,0 +1,22 @@ +/* Memory allocators such as malloc+free. + + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#define _GL_USE_STDLIB_ALLOC 1 +#include +#include "allocator.h" +#include +struct allocator const stdlib_allocator = { malloc, realloc, free, NULL }; diff --git a/3rdPartner/libiconv/srclib/allocator.h b/3rdPartner/libiconv/srclib/allocator.h new file mode 100644 index 0000000..3e698ce --- /dev/null +++ b/3rdPartner/libiconv/srclib/allocator.h @@ -0,0 +1,58 @@ +/* Memory allocators such as malloc+free. + + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert. */ + +#ifndef _GL_ALLOCATOR_H +#define _GL_ALLOCATOR_H + +#include + +/* An object describing a memory allocator family. */ + +struct allocator +{ + /* Do not use GCC attributes such as __attribute__ ((malloc)) with + the function types pointed at by these members, because these + attributes do not work with pointers to functions. See + . */ + + /* Call ALLOCATE to allocate memory, like 'malloc'. On failure ALLOCATE + should return NULL, though not necessarily set errno. When given + a zero size it may return NULL even if successful. */ + void *(*allocate) (size_t); + + /* If nonnull, call REALLOCATE to reallocate memory, like 'realloc'. + On failure REALLOCATE should return NULL, though not necessarily set + errno. When given a zero size it may return NULL even if + successful. */ + void *(*reallocate) (void *, size_t); + + /* Call FREE to free memory, like 'free'. */ + void (*free) (void *); + + /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (..., + SIZE) fails. DIE should not return. SIZE should equal SIZE_MAX + if size_t overflow was detected while calculating sizes to be + passed to MALLOC or REALLOC. */ + void (*die) (size_t); +}; + +/* An allocator using the stdlib functions and a null DIE function. */ +extern struct allocator const stdlib_allocator; + +#endif /* _GL_ALLOCATOR_H */ diff --git a/3rdPartner/libiconv/srclib/areadlink.c b/3rdPartner/libiconv/srclib/areadlink.c new file mode 100644 index 0000000..0bff4a9 --- /dev/null +++ b/3rdPartner/libiconv/srclib/areadlink.c @@ -0,0 +1,56 @@ +/* areadlink.c -- readlink wrapper to return the link name in malloc'd storage + Unlike xreadlink and xreadlink_with_size, don't ever call exit. + + Copyright (C) 2001, 2003-2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Jim Meyering + and Bruno Haible . */ + +#include + +/* Specification. */ +#include "areadlink.h" + +#include "careadlinkat.h" + +#include +#include + +/* Get the symbolic link value of FILENAME and put it into BUFFER, with + size BUFFER_SIZE. This function acts like readlink but has + readlinkat's signature. */ +static ssize_t +careadlinkatcwd (int fd, char const *filename, char *buffer, + size_t buffer_size) +{ + /* FD must be AT_FDCWD here, otherwise the caller is using this + function in contexts it was not meant for. */ + if (fd != AT_FDCWD) + abort (); + return readlink (filename, buffer, buffer_size); +} + +/* Call readlink to get the symbolic link value of FILENAME. + Return a pointer to that NUL-terminated string in malloc'd storage. + If readlink fails, return NULL and set errno. + If allocation fails, or if the link value is longer than SIZE_MAX :-), + return NULL and set errno to ENOMEM. */ + +char * +areadlink (char const *filename) +{ + return careadlinkat (AT_FDCWD, filename, NULL, 0, NULL, careadlinkatcwd); +} diff --git a/3rdPartner/libiconv/srclib/areadlink.h b/3rdPartner/libiconv/srclib/areadlink.h new file mode 100644 index 0000000..1518d74 --- /dev/null +++ b/3rdPartner/libiconv/srclib/areadlink.h @@ -0,0 +1,37 @@ +/* Read symbolic links without size limitation. + + Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, + Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Jim Meyering */ + +#include + +extern char *areadlink (char const *filename) + _GL_ATTRIBUTE_DEALLOC_FREE; +extern char *areadlink_with_size (char const *filename, size_t size_hint) + _GL_ATTRIBUTE_DEALLOC_FREE; + +#if GNULIB_AREADLINKAT +extern char *areadlinkat (int fd, char const *filename) + _GL_ATTRIBUTE_DEALLOC_FREE; +#endif + +#if GNULIB_AREADLINKAT_WITH_SIZE +extern char *areadlinkat_with_size (int fd, char const *filename, + size_t size_hint) + _GL_ATTRIBUTE_DEALLOC_FREE; +#endif diff --git a/3rdPartner/libiconv/srclib/arg-nonnull.h b/3rdPartner/libiconv/srclib/arg-nonnull.h new file mode 100644 index 0000000..e4513ef --- /dev/null +++ b/3rdPartner/libiconv/srclib/arg-nonnull.h @@ -0,0 +1,26 @@ +/* A C macro for declaring that specific arguments must not be NULL. + Copyright (C) 2009-2022 Free Software Foundation, Inc. + + This program 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 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools + that the values passed as arguments n, ..., m must be non-NULL pointers. + n = 1 stands for the first argument, n = 2 for the second argument etc. */ +#ifndef _GL_ARG_NONNULL +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ +# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) +# else +# define _GL_ARG_NONNULL(params) +# endif +#endif diff --git a/3rdPartner/libiconv/srclib/basename-lgpl.c b/3rdPartner/libiconv/srclib/basename-lgpl.c new file mode 100644 index 0000000..eb07e25 --- /dev/null +++ b/3rdPartner/libiconv/srclib/basename-lgpl.c @@ -0,0 +1,71 @@ +/* basename.c -- return the last element in a file name + + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include "basename-lgpl.h" + +#include +#include + +#include "filename.h" + +char * +last_component (char const *name) +{ + char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); + char const *p; + bool last_was_slash = false; + + while (ISSLASH (*base)) + base++; + + for (p = base; *p; p++) + { + if (ISSLASH (*p)) + last_was_slash = true; + else if (last_was_slash) + { + base = p; + last_was_slash = false; + } + } + + return (char *) base; +} + +size_t +base_len (char const *name) +{ + size_t len; + size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); + + for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) + continue; + + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 + && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) + return 2; + + if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len + && len == prefix_len && ISSLASH (name[prefix_len])) + return prefix_len + 1; + + return len; +} diff --git a/3rdPartner/libiconv/srclib/basename-lgpl.h b/3rdPartner/libiconv/srclib/basename-lgpl.h new file mode 100644 index 0000000..5569f21 --- /dev/null +++ b/3rdPartner/libiconv/srclib/basename-lgpl.h @@ -0,0 +1,78 @@ +/* Extract the last component (base name) of a file name. + + Copyright (C) 1998, 2001, 2003-2006, 2009-2022 Free Software Foundation, + Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _BASENAME_LGPL_H +#define _BASENAME_LGPL_H + +#include + +#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT +# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Return the address of the last file name component of FILENAME. + If FILENAME has some trailing slash(es), they are considered to be + part of the last component. + If FILENAME has no relative file name components because it is a file + system root, return the empty string. + Examples: + FILENAME RESULT + "foo.c" "foo.c" + "foo/bar.c" "bar.c" + "/foo/bar.c" "bar.c" + "foo/bar/" "bar/" + "foo/bar//" "bar//" + "/" "" + "//" "" + "" "" + The return value is a tail of the given FILENAME; do NOT free() it! */ + +/* This function was traditionally called 'basename', but we avoid this + function name because + * Various platforms have different functions in their libc. + In particular, the glibc basename(), defined in , does + not consider trailing slashes to be part of the component: + FILENAME RESULT + "foo/bar/" "" + "foo/bar//" "" + * The 'basename' command eliminates trailing slashes and for a root + produces a non-empty result: + FILENAME RESULT + "foo/bar/" "bar" + "foo/bar//" "bar" + "/" "/" + "//" "/" + */ +extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; + +/* Return the length of the basename FILENAME. + Typically FILENAME is the value returned by base_name or last_component. + Act like strlen (FILENAME), except omit all trailing slashes. */ +extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _BASENAME_LGPL_H */ diff --git a/3rdPartner/libiconv/srclib/binary-io.c b/3rdPartner/libiconv/srclib/binary-io.c new file mode 100644 index 0000000..ea407fd --- /dev/null +++ b/3rdPartner/libiconv/srclib/binary-io.c @@ -0,0 +1,39 @@ +/* Binary mode I/O. + Copyright 2017-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +#define BINARY_IO_INLINE _GL_EXTERN_INLINE +#include "binary-io.h" + +#if defined __DJGPP__ || defined __EMX__ +# include + +int +set_binary_mode (int fd, int mode) +{ + if (isatty (fd)) + /* If FD refers to a console (not a pipe, not a regular file), + O_TEXT is the only reasonable mode, both on input and on output. + Silently ignore the request. If we were to return -1 here, + all programs that use xset_binary_mode would fail when run + with console input or console output. */ + return O_TEXT; + else + return __gl_setmode (fd, mode); +} + +#endif diff --git a/3rdPartner/libiconv/srclib/binary-io.h b/3rdPartner/libiconv/srclib/binary-io.h new file mode 100644 index 0000000..5b7661e --- /dev/null +++ b/3rdPartner/libiconv/srclib/binary-io.h @@ -0,0 +1,77 @@ +/* Binary mode I/O. + Copyright (C) 2001, 2003, 2005, 2008-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _BINARY_H +#define _BINARY_H + +/* For systems that distinguish between text and binary I/O. + O_BINARY is guaranteed by the gnulib . */ +#include + +/* The MSVC7 doesn't like to be included after '#define fileno ...', + so we include it here first. */ +#include + +#ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +#endif +_GL_INLINE_HEADER_BEGIN +#ifndef BINARY_IO_INLINE +# define BINARY_IO_INLINE _GL_INLINE +#endif + +#if O_BINARY +# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ +# include /* declares setmode() */ +# define __gl_setmode setmode +# else +# define __gl_setmode _setmode +# undef fileno +# define fileno _fileno +# endif +#else + /* On reasonable systems, binary I/O is the only choice. */ + /* Use a function rather than a macro, to avoid gcc warnings + "warning: statement with no effect". */ +BINARY_IO_INLINE int +__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode) +{ + return O_BINARY; +} +#endif + +/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. + Return the old mode if successful, -1 (setting errno) on failure. + Ordinarily this function would be called 'setmode', since that is + its old name on MS-Windows, but it is called 'set_binary_mode' here + to avoid colliding with a BSD function of another name. */ + +#if defined __DJGPP__ || defined __EMX__ +extern int set_binary_mode (int fd, int mode); +#else +BINARY_IO_INLINE int +set_binary_mode (int fd, int mode) +{ + return __gl_setmode (fd, mode); +} +#endif + +/* This macro is obsolescent. */ +#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) + +_GL_INLINE_HEADER_END + +#endif /* _BINARY_H */ diff --git a/3rdPartner/libiconv/srclib/c++defs.h b/3rdPartner/libiconv/srclib/c++defs.h new file mode 100644 index 0000000..ad18155 --- /dev/null +++ b/3rdPartner/libiconv/srclib/c++defs.h @@ -0,0 +1,331 @@ +/* C++ compatible function declaration macros. + Copyright (C) 2010-2022 Free Software Foundation, Inc. + + This program 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 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _GL_CXXDEFS_H +#define _GL_CXXDEFS_H + +/* Begin/end the GNULIB_NAMESPACE namespace. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { +# define _GL_END_NAMESPACE } +#else +# define _GL_BEGIN_NAMESPACE +# define _GL_END_NAMESPACE +#endif + +/* The three most frequent use cases of these macros are: + + * For providing a substitute for a function that is missing on some + platforms, but is declared and works fine on the platforms on which + it exists: + + #if @GNULIB_FOO@ + # if !@HAVE_FOO@ + _GL_FUNCDECL_SYS (foo, ...); + # endif + _GL_CXXALIAS_SYS (foo, ...); + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif + + * For providing a replacement for a function that exists on all platforms, + but is broken/insufficient and needs to be replaced on some platforms: + + #if @GNULIB_FOO@ + # if @REPLACE_FOO@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef foo + # define foo rpl_foo + # endif + _GL_FUNCDECL_RPL (foo, ...); + _GL_CXXALIAS_RPL (foo, ...); + # else + _GL_CXXALIAS_SYS (foo, ...); + # endif + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif + + * For providing a replacement for a function that exists on some platforms + but is broken/insufficient and needs to be replaced on some of them and + is additionally either missing or undeclared on some other platforms: + + #if @GNULIB_FOO@ + # if @REPLACE_FOO@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef foo + # define foo rpl_foo + # endif + _GL_FUNCDECL_RPL (foo, ...); + _GL_CXXALIAS_RPL (foo, ...); + # else + # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ + _GL_FUNCDECL_SYS (foo, ...); + # endif + _GL_CXXALIAS_SYS (foo, ...); + # endif + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif +*/ + +/* _GL_EXTERN_C declaration; + performs the declaration with C linkage. */ +#if defined __cplusplus +# define _GL_EXTERN_C extern "C" +#else +# define _GL_EXTERN_C extern +#endif + +/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); + declares a replacement function, named rpl_func, with the given prototype, + consisting of return type, parameters, and attributes. + Example: + _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); + */ +#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ + _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) +#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ + _GL_EXTERN_C rettype rpl_func parameters_and_attributes + +/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); + declares the system function, named func, with the given prototype, + consisting of return type, parameters, and attributes. + Example: + _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); + */ +#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ + _GL_EXTERN_C rettype func parameters_and_attributes + +/* _GL_CXXALIAS_RPL (func, rettype, parameters); + declares a C++ alias called GNULIB_NAMESPACE::func + that redirects to rpl_func, if GNULIB_NAMESPACE is defined. + Example: + _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); + + Wrapping rpl_func in an object with an inline conversion operator + avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is + actually used in the program. */ +#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ + _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static const struct _gl_ ## func ## _wrapper \ + { \ + typedef rettype (*type) parameters; \ + \ + inline operator type () const \ + { \ + return ::rpl_func; \ + } \ + } func = {}; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_MDA (func, rettype, parameters); + is to be used when func is a Microsoft deprecated alias, on native Windows. + It declares a C++ alias called GNULIB_NAMESPACE::func + that redirects to _func, if GNULIB_NAMESPACE is defined. + Example: + _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); + */ +#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ + _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) + +/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); + is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); + except that the C function rpl_func may have a slightly different + declaration. A cast is used to silence the "invalid conversion" error + that would otherwise occur. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static const struct _gl_ ## func ## _wrapper \ + { \ + typedef rettype (*type) parameters; \ + \ + inline operator type () const \ + { \ + return reinterpret_cast(::rpl_func); \ + } \ + } func = {}; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); + is like _GL_CXXALIAS_MDA (func, rettype, parameters); + except that the C function func may have a slightly different declaration. + A cast is used to silence the "invalid conversion" error that would + otherwise occur. */ +#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ + _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) + +/* _GL_CXXALIAS_SYS (func, rettype, parameters); + declares a C++ alias called GNULIB_NAMESPACE::func + that redirects to the system provided function func, if GNULIB_NAMESPACE + is defined. + Example: + _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); + + Wrapping func in an object with an inline conversion operator + avoids a reference to func unless GNULIB_NAMESPACE::func is + actually used in the program. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static const struct _gl_ ## func ## _wrapper \ + { \ + typedef rettype (*type) parameters; \ + \ + inline operator type () const \ + { \ + return ::func; \ + } \ + } func = {}; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); + is like _GL_CXXALIAS_SYS (func, rettype, parameters); + except that the C function func may have a slightly different declaration. + A cast is used to silence the "invalid conversion" error that would + otherwise occur. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static const struct _gl_ ## func ## _wrapper \ + { \ + typedef rettype (*type) parameters; \ + \ + inline operator type () const \ + { \ + return reinterpret_cast(::func); \ + } \ + } func = {}; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); + is like _GL_CXXALIAS_SYS (func, rettype, parameters); + except that the C function is picked among a set of overloaded functions, + namely the one with rettype2 and parameters2. Two consecutive casts + are used to silence the "cannot find a match" and "invalid conversion" + errors that would otherwise occur. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE + /* The outer cast must be a reinterpret_cast. + The inner cast: When the function is defined as a set of overloaded + functions, it works as a static_cast<>, choosing the designated variant. + When the function is defined as a single variant, it works as a + reinterpret_cast<>. The parenthesized cast syntax works both ways. */ +# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ + namespace GNULIB_NAMESPACE \ + { \ + static const struct _gl_ ## func ## _wrapper \ + { \ + typedef rettype (*type) parameters; \ + \ + inline operator type () const \ + { \ + return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ + } \ + } func = {}; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIASWARN (func); + causes a warning to be emitted when ::func is used but not when + GNULIB_NAMESPACE::func is used. func must be defined without overloaded + variants. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIASWARN(func) \ + _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) +# define _GL_CXXALIASWARN_1(func,namespace) \ + _GL_CXXALIASWARN_2 (func, namespace) +/* To work around GCC bug , + we enable the warning only when not optimizing. */ +# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) +# define _GL_CXXALIASWARN_2(func,namespace) \ + _GL_WARN_ON_USE (func, \ + "The symbol ::" #func " refers to the system function. " \ + "Use " #namespace "::" #func " instead.") +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +# define _GL_CXXALIASWARN_2(func,namespace) \ + extern __typeof__ (func) func +# else +# define _GL_CXXALIASWARN_2(func,namespace) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +# endif +#else +# define _GL_CXXALIASWARN(func) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); + causes a warning to be emitted when the given overloaded variant of ::func + is used but not when GNULIB_NAMESPACE::func is used. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ + _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ + GNULIB_NAMESPACE) +# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ + _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) +/* To work around GCC bug , + we enable the warning only when not optimizing. */ +# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) +# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ + _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ + "The symbol ::" #func " refers to the system function. " \ + "Use " #namespace "::" #func " instead.") +# else +# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +# endif +#else +# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +#endif /* _GL_CXXDEFS_H */ diff --git a/3rdPartner/libiconv/srclib/c-ctype.c b/3rdPartner/libiconv/srclib/c-ctype.c new file mode 100644 index 0000000..a247514 --- /dev/null +++ b/3rdPartner/libiconv/srclib/c-ctype.c @@ -0,0 +1,21 @@ +/* Character handling in C locale. + + Copyright (C) 2003-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +#define C_CTYPE_INLINE _GL_EXTERN_INLINE +#include "c-ctype.h" diff --git a/3rdPartner/libiconv/srclib/c-ctype.h b/3rdPartner/libiconv/srclib/c-ctype.h new file mode 100644 index 0000000..1a4f603 --- /dev/null +++ b/3rdPartner/libiconv/srclib/c-ctype.h @@ -0,0 +1,366 @@ +/* Character handling in C locale. + + These functions work like the corresponding functions in , + except that they have the C (POSIX) locale hardwired, whereas the + functions' behaviour depends on the current locale set via + setlocale. + + Copyright (C) 2000-2003, 2006, 2008-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef C_CTYPE_H +#define C_CTYPE_H + +#include + +#ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +#endif +_GL_INLINE_HEADER_BEGIN +#ifndef C_CTYPE_INLINE +# define C_CTYPE_INLINE _GL_INLINE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* The functions defined in this file assume the "C" locale and a character + set without diacritics (ASCII-US or EBCDIC-US or something like that). + Even if the "C" locale on a particular system is an extension of the ASCII + character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it + is ISO-8859-1), the functions in this file recognize only the ASCII + characters. */ + + +#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) +/* The character set is ASCII or one of its variants or extensions, not EBCDIC. + Testing the value of '\n' and '\r' is not relevant. */ +# define C_CTYPE_ASCII 1 +#elif ! (' ' == '\x40' && '0' == '\xf0' \ + && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ + && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') +# error "Only ASCII and EBCDIC are supported" +#endif + +#if 'A' < 0 +# error "EBCDIC and char is signed -- not supported" +#endif + +/* Cases for control characters. */ + +#define _C_CTYPE_CNTRL \ + case '\a': case '\b': case '\f': case '\n': \ + case '\r': case '\t': case '\v': \ + _C_CTYPE_OTHER_CNTRL + +/* ASCII control characters other than those with \-letter escapes. */ + +#if C_CTYPE_ASCII +# define _C_CTYPE_OTHER_CNTRL \ + case '\x00': case '\x01': case '\x02': case '\x03': \ + case '\x04': case '\x05': case '\x06': case '\x0e': \ + case '\x0f': case '\x10': case '\x11': case '\x12': \ + case '\x13': case '\x14': case '\x15': case '\x16': \ + case '\x17': case '\x18': case '\x19': case '\x1a': \ + case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ + case '\x1f': case '\x7f' +#else + /* Use EBCDIC code page 1047's assignments for ASCII control chars; + assume all EBCDIC code pages agree about these assignments. */ +# define _C_CTYPE_OTHER_CNTRL \ + case '\x00': case '\x01': case '\x02': case '\x03': \ + case '\x07': case '\x0e': case '\x0f': case '\x10': \ + case '\x11': case '\x12': case '\x13': case '\x18': \ + case '\x19': case '\x1c': case '\x1d': case '\x1e': \ + case '\x1f': case '\x26': case '\x27': case '\x2d': \ + case '\x2e': case '\x32': case '\x37': case '\x3c': \ + case '\x3d': case '\x3f' +#endif + +/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ + +#define _C_CTYPE_LOWER_A_THRU_F_N(N) \ + case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ + case 'e' + (N): case 'f' + (N) +#define _C_CTYPE_LOWER_N(N) \ + _C_CTYPE_LOWER_A_THRU_F_N(N): \ + case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ + case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ + case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ + case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ + case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) + +/* Cases for hex letters, digits, lower, punct, and upper. */ + +#define _C_CTYPE_A_THRU_F \ + _C_CTYPE_LOWER_A_THRU_F_N (0): \ + _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') +#define _C_CTYPE_DIGIT \ + case '0': case '1': case '2': case '3': \ + case '4': case '5': case '6': case '7': \ + case '8': case '9' +#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) +#define _C_CTYPE_PUNCT \ + case '!': case '"': case '#': case '$': \ + case '%': case '&': case '\'': case '(': \ + case ')': case '*': case '+': case ',': \ + case '-': case '.': case '/': case ':': \ + case ';': case '<': case '=': case '>': \ + case '?': case '@': case '[': case '\\': \ + case ']': case '^': case '_': case '`': \ + case '{': case '|': case '}': case '~' +#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') + + +/* Function definitions. */ + +/* Unlike the functions in , which require an argument in the range + of the 'unsigned char' type, the functions here operate on values that are + in the 'unsigned char' range or in the 'char' range. In other words, + when you have a 'char' value, you need to cast it before using it as + argument to a function: + + const char *s = ...; + if (isalpha ((unsigned char) *s)) ... + + but you don't need to cast it for the functions defined in this file: + + const char *s = ...; + if (c_isalpha (*s)) ... + */ + +C_CTYPE_INLINE bool +c_isalnum (int c) +{ + switch (c) + { + _C_CTYPE_DIGIT: + _C_CTYPE_LOWER: + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isalpha (int c) +{ + switch (c) + { + _C_CTYPE_LOWER: + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +/* The function isascii is not locale dependent. + Its use in EBCDIC is questionable. */ +C_CTYPE_INLINE bool +c_isascii (int c) +{ + switch (c) + { + case ' ': + _C_CTYPE_CNTRL: + _C_CTYPE_DIGIT: + _C_CTYPE_LOWER: + _C_CTYPE_PUNCT: + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isblank (int c) +{ + return c == ' ' || c == '\t'; +} + +C_CTYPE_INLINE bool +c_iscntrl (int c) +{ + switch (c) + { + _C_CTYPE_CNTRL: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isdigit (int c) +{ + switch (c) + { + _C_CTYPE_DIGIT: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isgraph (int c) +{ + switch (c) + { + _C_CTYPE_DIGIT: + _C_CTYPE_LOWER: + _C_CTYPE_PUNCT: + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_islower (int c) +{ + switch (c) + { + _C_CTYPE_LOWER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isprint (int c) +{ + switch (c) + { + case ' ': + _C_CTYPE_DIGIT: + _C_CTYPE_LOWER: + _C_CTYPE_PUNCT: + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_ispunct (int c) +{ + switch (c) + { + _C_CTYPE_PUNCT: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isspace (int c) +{ + switch (c) + { + case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isupper (int c) +{ + switch (c) + { + _C_CTYPE_UPPER: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE bool +c_isxdigit (int c) +{ + switch (c) + { + _C_CTYPE_DIGIT: + _C_CTYPE_A_THRU_F: + return true; + default: + return false; + } +} + +C_CTYPE_INLINE int +c_tolower (int c) +{ + switch (c) + { + _C_CTYPE_UPPER: + return c - 'A' + 'a'; + default: + return c; + } +} + +C_CTYPE_INLINE int +c_toupper (int c) +{ + switch (c) + { + _C_CTYPE_LOWER: + return c - 'a' + 'A'; + default: + return c; + } +} + +#ifdef __cplusplus +} +#endif + +_GL_INLINE_HEADER_END + +#endif /* C_CTYPE_H */ diff --git a/3rdPartner/libiconv/srclib/canonicalize-lgpl.c b/3rdPartner/libiconv/srclib/canonicalize-lgpl.c new file mode 100644 index 0000000..a7fa7fe --- /dev/null +++ b/3rdPartner/libiconv/srclib/canonicalize-lgpl.c @@ -0,0 +1,472 @@ +/* Return the canonical absolute name of a given file. + Copyright (C) 1996-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _LIBC +/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc + optimizes away the name == NULL test below. */ +# define _GL_ARG_NONNULL(params) + +# include +#endif + +/* Specification. */ +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifdef _LIBC +# include +# define GCC_LINT 1 +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define __canonicalize_file_name canonicalize_file_name +# define __realpath realpath +# include "pathmax.h" +# define __faccessat faccessat +# if defined _WIN32 && !defined __CYGWIN__ +# define __getcwd _getcwd +# elif HAVE_GETCWD +# if IN_RELOCWRAPPER + /* When building the relocatable program wrapper, use the system's getcwd + function, not the gnulib override, otherwise we would get a link error. + */ +# undef getcwd +# endif +# if defined VMS && !defined getcwd + /* We want the directory in Unix syntax, not in VMS syntax. + The gnulib override of 'getcwd' takes 2 arguments; the original VMS + 'getcwd' takes 3 arguments. */ +# define __getcwd(buf, max) getcwd (buf, max, 0) +# else +# define __getcwd getcwd +# endif +# else +# define __getcwd(buf, max) getwd (buf) +# endif +# define __mempcpy mempcpy +# define __pathconf pathconf +# define __rawmemchr rawmemchr +# define __readlink readlink +# if IN_RELOCWRAPPER + /* When building the relocatable program wrapper, use the system's memmove + function, not the gnulib override, otherwise we would get a link error. + */ +# undef memmove +# endif +#endif + +/* Suppress bogus GCC -Wmaybe-uninitialized warnings. */ +#if defined GCC_LINT || defined lint +# define IF_LINT(Code) Code +#else +# define IF_LINT(Code) /* empty */ +#endif + +#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT +# define DOUBLE_SLASH_IS_DISTINCT_ROOT false +#endif + +#if defined _LIBC || !FUNC_REALPATH_WORKS + +/* Return true if FILE's existence can be shown, false (setting errno) + otherwise. Follow symbolic links. */ +static bool +file_accessible (char const *file) +{ +# if defined _LIBC || HAVE_FACCESSAT + return __faccessat (AT_FDCWD, file, F_OK, AT_EACCESS) == 0; +# else + struct stat st; + return stat (file, &st) == 0 || errno == EOVERFLOW; +# endif +} + +/* True if concatenating END as a suffix to a file name means that the + code needs to check that the file name is that of a searchable + directory, since the canonicalize_filename_mode_stk code won't + check this later anyway when it checks an ordinary file name + component within END. END must either be empty, or start with a + slash. */ + +static bool _GL_ATTRIBUTE_PURE +suffix_requires_dir_check (char const *end) +{ + /* If END does not start with a slash, the suffix is OK. */ + while (ISSLASH (*end)) + { + /* Two or more slashes act like a single slash. */ + do + end++; + while (ISSLASH (*end)); + + switch (*end++) + { + default: return false; /* An ordinary file name component is OK. */ + case '\0': return true; /* Trailing "/" is trouble. */ + case '.': break; /* Possibly "." or "..". */ + } + /* Trailing "/.", or "/.." even if not trailing, is trouble. */ + if (!*end || (*end == '.' && (!end[1] || ISSLASH (end[1])))) + return true; + } + + return false; +} + +/* Append this to a file name to test whether it is a searchable directory. + On POSIX platforms "/" suffices, but "/./" is sometimes needed on + macOS 10.13 , and should also work on + platforms like AIX 7.2 that need at least "/.". */ + +# if defined _LIBC || defined LSTAT_FOLLOWS_SLASHED_SYMLINK +static char const dir_suffix[] = "/"; +# else +static char const dir_suffix[] = "/./"; +# endif + +/* Return true if DIR is a searchable dir, false (setting errno) otherwise. + DIREND points to the NUL byte at the end of the DIR string. + Store garbage into DIREND[0 .. strlen (dir_suffix)]. */ + +static bool +dir_check (char *dir, char *dirend) +{ + strcpy (dirend, dir_suffix); + return file_accessible (dir); +} + +static idx_t +get_path_max (void) +{ +# ifdef PATH_MAX + long int path_max = PATH_MAX; +# else + /* The caller invoked realpath with a null RESOLVED, even though + PATH_MAX is not defined as a constant. The glibc manual says + programs should not do this, and POSIX says the behavior is undefined. + Historically, glibc here used the result of pathconf, or 1024 if that + failed; stay consistent with this (dubious) historical practice. */ + int err = errno; + long int path_max = __pathconf ("/", _PC_PATH_MAX); + __set_errno (err); +# endif + return path_max < 0 ? 1024 : path_max <= IDX_MAX ? path_max : IDX_MAX; +} + +/* Act like __realpath (see below), with an additional argument + rname_buf that can be used as temporary storage. + + If GCC_LINT is defined, do not inline this function with GCC 10.1 + and later, to avoid creating a pointer to the stack that GCC + -Wreturn-local-addr incorrectly complains about. See: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93644 + Although the noinline attribute can hurt performance a bit, no better way + to pacify GCC is known; even an explicit #pragma does not pacify GCC. + When the GCC bug is fixed this workaround should be limited to the + broken GCC versions. */ +# if __GNUC_PREREQ (10, 1) +# if defined GCC_LINT || defined lint +__attribute__ ((__noinline__)) +# elif __OPTIMIZE__ && !__NO_INLINE__ +# define GCC_BOGUS_WRETURN_LOCAL_ADDR +# endif +# endif +static char * +realpath_stk (const char *name, char *resolved, + struct scratch_buffer *rname_buf) +{ + char *dest; + char const *start; + char const *end; + int num_links = 0; + + if (name == NULL) + { + /* As per Single Unix Specification V2 we must return an error if + either parameter is a null pointer. We extend this to allow + the RESOLVED parameter to be NULL in case the we are expected to + allocate the room for the return value. */ + __set_errno (EINVAL); + return NULL; + } + + if (name[0] == '\0') + { + /* As per Single Unix Specification V2 we must return an error if + the name argument points to an empty string. */ + __set_errno (ENOENT); + return NULL; + } + + struct scratch_buffer extra_buffer, link_buffer; + scratch_buffer_init (&extra_buffer); + scratch_buffer_init (&link_buffer); + scratch_buffer_init (rname_buf); + char *rname_on_stack = rname_buf->data; + char *rname = rname_on_stack; + bool end_in_extra_buffer = false; + bool failed = true; + + /* This is always zero for Posix hosts, but can be 2 for MS-Windows + and MS-DOS X:/foo/bar file names. */ + idx_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); + + if (!IS_ABSOLUTE_FILE_NAME (name)) + { + while (!__getcwd (rname, rname_buf->length)) + { + if (errno != ERANGE) + { + dest = rname; + goto error; + } + if (!scratch_buffer_grow (rname_buf)) + goto error_nomem; + rname = rname_buf->data; + } + dest = __rawmemchr (rname, '\0'); + start = name; + prefix_len = FILE_SYSTEM_PREFIX_LEN (rname); + } + else + { + dest = __mempcpy (rname, name, prefix_len); + *dest++ = '/'; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT) + { + if (prefix_len == 0 /* implies ISSLASH (name[0]) */ + && ISSLASH (name[1]) && !ISSLASH (name[2])) + *dest++ = '/'; + *dest = '\0'; + } + start = name + prefix_len; + } + + for ( ; *start; start = end) + { + /* Skip sequence of multiple file name separators. */ + while (ISSLASH (*start)) + ++start; + + /* Find end of component. */ + for (end = start; *end && !ISSLASH (*end); ++end) + /* Nothing. */; + + /* Length of this file name component; it can be zero if a file + name ends in '/'. */ + idx_t startlen = end - start; + + if (startlen == 0) + break; + else if (startlen == 1 && start[0] == '.') + /* nothing */; + else if (startlen == 2 && start[0] == '.' && start[1] == '.') + { + /* Back up to previous component, ignore if at root already. */ + if (dest > rname + prefix_len + 1) + for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) + continue; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT + && dest == rname + 1 && !prefix_len + && ISSLASH (*dest) && !ISSLASH (dest[1])) + dest++; + } + else + { + if (!ISSLASH (dest[-1])) + *dest++ = '/'; + + while (rname + rname_buf->length - dest + < startlen + sizeof dir_suffix) + { + idx_t dest_offset = dest - rname; + if (!scratch_buffer_grow_preserve (rname_buf)) + goto error_nomem; + rname = rname_buf->data; + dest = rname + dest_offset; + } + + dest = __mempcpy (dest, start, startlen); + *dest = '\0'; + + char *buf; + ssize_t n; + while (true) + { + buf = link_buffer.data; + idx_t bufsize = link_buffer.length; + n = __readlink (rname, buf, bufsize - 1); + if (n < bufsize - 1) + break; + if (!scratch_buffer_grow (&link_buffer)) + goto error_nomem; + } + if (0 <= n) + { + if (++num_links > __eloop_threshold ()) + { + __set_errno (ELOOP); + goto error; + } + + buf[n] = '\0'; + + char *extra_buf = extra_buffer.data; + idx_t end_idx IF_LINT (= 0); + if (end_in_extra_buffer) + end_idx = end - extra_buf; + size_t len = strlen (end); + if (INT_ADD_OVERFLOW (len, n)) + { + __set_errno (ENOMEM); + goto error_nomem; + } + while (extra_buffer.length <= len + n) + { + if (!scratch_buffer_grow_preserve (&extra_buffer)) + goto error_nomem; + extra_buf = extra_buffer.data; + } + if (end_in_extra_buffer) + end = extra_buf + end_idx; + + /* Careful here, end may be a pointer into extra_buf... */ + memmove (&extra_buf[n], end, len + 1); + name = end = memcpy (extra_buf, buf, n); + end_in_extra_buffer = true; + + if (IS_ABSOLUTE_FILE_NAME (buf)) + { + idx_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf); + + dest = __mempcpy (rname, buf, pfxlen); + *dest++ = '/'; /* It's an absolute symlink */ + if (DOUBLE_SLASH_IS_DISTINCT_ROOT) + { + if (ISSLASH (buf[1]) && !ISSLASH (buf[2]) && !pfxlen) + *dest++ = '/'; + *dest = '\0'; + } + /* Install the new prefix to be in effect hereafter. */ + prefix_len = pfxlen; + } + else + { + /* Back up to previous component, ignore if at root + already: */ + if (dest > rname + prefix_len + 1) + for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) + continue; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 + && ISSLASH (*dest) && !ISSLASH (dest[1]) && !prefix_len) + dest++; + } + } + else if (! (suffix_requires_dir_check (end) + ? dir_check (rname, dest) + : errno == EINVAL)) + goto error; + } + } + if (dest > rname + prefix_len + 1 && ISSLASH (dest[-1])) + --dest; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && !prefix_len + && ISSLASH (*dest) && !ISSLASH (dest[1])) + dest++; + failed = false; + +error: + *dest++ = '\0'; + if (resolved != NULL && dest - rname <= get_path_max ()) + rname = strcpy (resolved, rname); + +error_nomem: + scratch_buffer_free (&extra_buffer); + scratch_buffer_free (&link_buffer); + + if (failed || rname == resolved) + { + scratch_buffer_free (rname_buf); + return failed ? NULL : resolved; + } + + return scratch_buffer_dupfree (rname_buf, dest - rname); +} + +/* Return the canonical absolute name of file NAME. A canonical name + does not contain any ".", ".." components nor any repeated file name + separators ('/') or symlinks. All file name components must exist. If + RESOLVED is null, the result is malloc'd; otherwise, if the + canonical name is PATH_MAX chars or more, returns null with 'errno' + set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, + returns the name in RESOLVED. If the name cannot be resolved and + RESOLVED is non-NULL, it contains the name of the first component + that cannot be resolved. If the name can be resolved, RESOLVED + holds the same value as the value returned. */ + +char * +__realpath (const char *name, char *resolved) +{ + #ifdef GCC_BOGUS_WRETURN_LOCAL_ADDR + #warning "GCC might issue a bogus -Wreturn-local-addr warning here." + #warning "See ." + #endif + struct scratch_buffer rname_buffer; + return realpath_stk (name, resolved, &rname_buffer); +} +libc_hidden_def (__realpath) +versioned_symbol (libc, __realpath, realpath, GLIBC_2_3); + +#endif /* defined _LIBC || !FUNC_REALPATH_WORKS */ + + +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) +char * +attribute_compat_text_section +__old_realpath (const char *name, char *resolved) +{ + if (resolved == NULL) + { + __set_errno (EINVAL); + return NULL; + } + + return __realpath (name, resolved); +} +compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0); +#endif + + +char * +__canonicalize_file_name (const char *name) +{ + return __realpath (name, NULL); +} +weak_alias (__canonicalize_file_name, canonicalize_file_name) diff --git a/3rdPartner/libiconv/srclib/careadlinkat.c b/3rdPartner/libiconv/srclib/careadlinkat.c new file mode 100644 index 0000000..6ddc35f --- /dev/null +++ b/3rdPartner/libiconv/srclib/careadlinkat.c @@ -0,0 +1,184 @@ +/* Read symbolic links into a buffer without size limitation, relative to fd. + + Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, + Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ + +#include + +#include "careadlinkat.h" + +#include "idx.h" +#include "minmax.h" + +#include +#include +#include +#include + +/* Define this independently so that stdint.h is not a prerequisite. */ +#ifndef SIZE_MAX +# define SIZE_MAX ((size_t) -1) +#endif + +#ifndef SSIZE_MAX +# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) +#endif + +#include "allocator.h" + +enum { STACK_BUF_SIZE = 1024 }; + +/* Act like careadlinkat (see below), with an additional argument + STACK_BUF that can be used as temporary storage. + + If GCC_LINT is defined, do not inline this function with GCC 10.1 + and later, to avoid creating a pointer to the stack that GCC + -Wreturn-local-addr incorrectly complains about. See: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93644 + Although the noinline attribute can hurt performance a bit, no better way + to pacify GCC is known; even an explicit #pragma does not pacify GCC. + When the GCC bug is fixed this workaround should be limited to the + broken GCC versions. */ +#if _GL_GNUC_PREREQ (10, 1) +# if defined GCC_LINT || defined lint +__attribute__ ((__noinline__)) +# elif __OPTIMIZE__ && !__NO_INLINE__ +# define GCC_BOGUS_WRETURN_LOCAL_ADDR +# endif +#endif +static char * +readlink_stk (int fd, char const *filename, + char *buffer, size_t buffer_size, + struct allocator const *alloc, + ssize_t (*preadlinkat) (int, char const *, char *, size_t), + char stack_buf[STACK_BUF_SIZE]) +{ + if (! alloc) + alloc = &stdlib_allocator; + + if (!buffer) + { + buffer = stack_buf; + buffer_size = STACK_BUF_SIZE; + } + + char *buf = buffer; + idx_t buf_size_max = MIN (IDX_MAX, MIN (SSIZE_MAX, SIZE_MAX)); + idx_t buf_size = MIN (buffer_size, buf_size_max); + + while (buf) + { + /* Attempt to read the link into the current buffer. */ + idx_t link_length = preadlinkat (fd, filename, buf, buf_size); + if (link_length < 0) + { + if (buf != buffer) + { + int readlinkat_errno = errno; + alloc->free (buf); + errno = readlinkat_errno; + } + return NULL; + } + + idx_t link_size = link_length; + + if (link_size < buf_size) + { + buf[link_size++] = '\0'; + + if (buf == stack_buf) + { + char *b = alloc->allocate (link_size); + buf_size = link_size; + if (! b) + break; + return memcpy (b, buf, link_size); + } + + if (link_size < buf_size && buf != buffer && alloc->reallocate) + { + /* Shrink BUF before returning it. */ + char *b = alloc->reallocate (buf, link_size); + if (b) + return b; + } + + return buf; + } + + if (buf != buffer) + alloc->free (buf); + + if (buf_size_max / 2 <= buf_size) + { + errno = ENAMETOOLONG; + return NULL; + } + + buf_size = 2 * buf_size + 1; + buf = alloc->allocate (buf_size); + } + + if (alloc->die) + alloc->die (buf_size); + errno = ENOMEM; + return NULL; +} + + +/* Assuming the current directory is FD, get the symbolic link value + of FILENAME as a null-terminated string and put it into a buffer. + If FD is AT_FDCWD, FILENAME is interpreted relative to the current + working directory, as in openat. + + If the link is small enough to fit into BUFFER put it there. + BUFFER's size is BUFFER_SIZE, and BUFFER can be null + if BUFFER_SIZE is zero. + + If the link is not small, put it into a dynamically allocated + buffer managed by ALLOC. It is the caller's responsibility to free + the returned value if it is nonnull and is not BUFFER. A null + ALLOC stands for the standard allocator. + + The PREADLINKAT function specifies how to read links. It operates + like POSIX readlinkat() + + but can assume that its first argument is the same as FD. + + If successful, return the buffer address; otherwise return NULL and + set errno. */ + +char * +careadlinkat (int fd, char const *filename, + char *buffer, size_t buffer_size, + struct allocator const *alloc, + ssize_t (*preadlinkat) (int, char const *, char *, size_t)) +{ + /* Allocate the initial buffer on the stack. This way, in the + common case of a symlink of small size, we get away with a + single small malloc instead of a big malloc followed by a + shrinking realloc. */ + #ifdef GCC_BOGUS_WRETURN_LOCAL_ADDR + #warning "GCC might issue a bogus -Wreturn-local-addr warning here." + #warning "See ." + #endif + char stack_buf[STACK_BUF_SIZE]; + return readlink_stk (fd, filename, buffer, buffer_size, alloc, + preadlinkat, stack_buf); +} diff --git a/3rdPartner/libiconv/srclib/careadlinkat.h b/3rdPartner/libiconv/srclib/careadlinkat.h new file mode 100644 index 0000000..2b559b2 --- /dev/null +++ b/3rdPartner/libiconv/srclib/careadlinkat.h @@ -0,0 +1,67 @@ +/* Read symbolic links into a buffer without size limitation, relative to fd. + + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ + +#ifndef _GL_CAREADLINKAT_H +#define _GL_CAREADLINKAT_H + +#include +#include + +struct allocator; + +/* Assuming the current directory is FD, get the symbolic link value + of FILENAME as a null-terminated string and put it into a buffer. + If FD is AT_FDCWD, FILENAME is interpreted relative to the current + working directory, as in openat. + + If the link is small enough to fit into BUFFER put it there. + BUFFER's size is BUFFER_SIZE, and BUFFER can be null + if BUFFER_SIZE is zero. + + If the link is not small, put it into a dynamically allocated + buffer managed by ALLOC. It is the caller's responsibility to free + the returned value if it is nonnull and is not BUFFER. + + The PREADLINKAT function specifies how to read links. It operates + like POSIX readlinkat() + + but can assume that its first argument is the same as FD. + + If successful, return the buffer address; otherwise return NULL and + set errno. */ + +char *careadlinkat (int fd, char const *filename, + char *restrict buffer, size_t buffer_size, + struct allocator const *alloc, + ssize_t (*preadlinkat) (int, char const *, + char *, size_t)); + +/* Suitable value for careadlinkat's FD argument. */ +#if HAVE_READLINKAT +/* AT_FDCWD is declared in . */ +#else +/* Define AT_FDCWD independently, so that the careadlinkat module does + not depend on the fcntl-h module. We might as well use the same value + as fcntl-h. */ +# ifndef AT_FDCWD +# define AT_FDCWD (-3041965) +# endif +#endif + +#endif /* _GL_CAREADLINKAT_H */ diff --git a/3rdPartner/libiconv/srclib/cdefs.h b/3rdPartner/libiconv/srclib/cdefs.h new file mode 100644 index 0000000..7b8ed5b --- /dev/null +++ b/3rdPartner/libiconv/srclib/cdefs.h @@ -0,0 +1,707 @@ +/* Copyright (C) 1992-2022 Free Software Foundation, Inc. + Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _SYS_CDEFS_H +#define _SYS_CDEFS_H 1 + +/* We are almost always included from features.h. */ +#ifndef _FEATURES_H +# include +#endif + +/* The GNU libc does not support any K&R compilers or the traditional mode + of ISO C compilers anymore. Check for some of the combinations not + supported anymore. */ +#if defined __GNUC__ && !defined __STDC__ +# error "You need a ISO C conforming compiler to use the glibc headers" +#endif + +/* Some user header file might have defined this before. */ +#undef __P +#undef __PMT + +/* Compilers that lack __has_attribute may object to + #if defined __has_attribute && __has_attribute (...) + even though they do not need to evaluate the right-hand side of the &&. + Similarly for __has_builtin, etc. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))) +# define __glibc_has_attribute(attr) __has_attribute (attr) +#else +# define __glibc_has_attribute(attr) 0 +#endif +#ifdef __has_builtin +# define __glibc_has_builtin(name) __has_builtin (name) +#else +# define __glibc_has_builtin(name) 0 +#endif +#ifdef __has_extension +# define __glibc_has_extension(ext) __has_extension (ext) +#else +# define __glibc_has_extension(ext) 0 +#endif + +#if defined __GNUC__ || defined __clang__ + +/* All functions, except those with callbacks or those that + synchronize memory, are leaf functions. */ +# if __GNUC_PREREQ (4, 6) && !defined _LIBC +# define __LEAF , __leaf__ +# define __LEAF_ATTR __attribute__ ((__leaf__)) +# else +# define __LEAF +# define __LEAF_ATTR +# endif + +/* GCC can always grok prototypes. For C++ programs we add throw() + to help it optimize the function calls. But this only works with + gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions + as non-throwing using a function attribute since programs can use + the -fexceptions options for C code as well. */ +# if !defined __cplusplus \ + && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) +# define __THROW __attribute__ ((__nothrow__ __LEAF)) +# define __THROWNL __attribute__ ((__nothrow__)) +# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct +# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct +# else +# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) +# if __cplusplus >= 201103L +# define __THROW noexcept (true) +# else +# define __THROW throw () +# endif +# define __THROWNL __THROW +# define __NTH(fct) __LEAF_ATTR fct __THROW +# define __NTHNL(fct) fct __THROW +# else +# define __THROW +# define __THROWNL +# define __NTH(fct) fct +# define __NTHNL(fct) fct +# endif +# endif + +#else /* Not GCC or clang. */ + +# if (defined __cplusplus \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) +# define __inline inline +# else +# define __inline /* No inline functions. */ +# endif + +# define __THROW +# define __THROWNL +# define __NTH(fct) fct + +#endif /* GCC || clang. */ + +/* These two macros are not used in glibc anymore. They are kept here + only because some other projects expect the macros to be defined. */ +#define __P(args) args +#define __PMT(args) args + +/* For these things, GCC behaves the ANSI way normally, + and the non-ANSI way under -traditional. */ + +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x + +/* This is not a typedef so `const __ptr_t' does the right thing. */ +#define __ptr_t void * + + +/* C++ needs to know that types and declarations are C, not C++. */ +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS +# define __END_DECLS +#endif + + +/* Fortify support. */ +#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) +#define __bos0(ptr) __builtin_object_size (ptr, 0) + +/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ +#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ + || __GNUC_PREREQ (12, 0)) +# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) +# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) +#else +# define __glibc_objsize0(__o) __bos0 (__o) +# define __glibc_objsize(__o) __bos (__o) +#endif + +/* Compile time conditions to choose between the regular, _chk and _chk_warn + variants. These conditions should get evaluated to constant and optimized + away. */ + +#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) +#define __glibc_unsigned_or_positive(__l) \ + ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ + || (__builtin_constant_p (__l) && (__l) > 0)) + +/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ + condition can be folded to a constant and if it is true, or unknown (-1) */ +#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ + ((__osz) == (__SIZE_TYPE__) -1 \ + || (__glibc_unsigned_or_positive (__l) \ + && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ + (__s), (__osz))) \ + && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) + +/* Conversely, we know at compile time that the length is unsafe if the + __L * __S <= __OBJSZ condition can be folded to a constant and if it is + false. */ +#define __glibc_unsafe_len(__l, __s, __osz) \ + (__glibc_unsigned_or_positive (__l) \ + && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ + __s, __osz)) \ + && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) + +/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be + declared. */ + +#define __glibc_fortify(f, __l, __s, __osz, ...) \ + (__glibc_safe_or_unknown_len (__l, __s, __osz) \ + ? __ ## f ## _alias (__VA_ARGS__) \ + : (__glibc_unsafe_len (__l, __s, __osz) \ + ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ + : __ ## f ## _chk (__VA_ARGS__, __osz))) \ + +/* Fortify function f, where object size argument passed to f is the number of + elements and not total size. */ + +#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ + (__glibc_safe_or_unknown_len (__l, __s, __osz) \ + ? __ ## f ## _alias (__VA_ARGS__) \ + : (__glibc_unsafe_len (__l, __s, __osz) \ + ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ + : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ + +#if __GNUC_PREREQ (4,3) +# define __warnattr(msg) __attribute__((__warning__ (msg))) +# define __errordecl(name, msg) \ + extern void name (void) __attribute__((__error__ (msg))) +#else +# define __warnattr(msg) +# define __errordecl(name, msg) extern void name (void) +#endif + +/* Support for flexible arrays. + Headers that should use flexible arrays only if they're "real" + (e.g. only if they won't affect sizeof()) should test + #if __glibc_c99_flexarr_available. */ +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif __GNUC_PREREQ (2,97) || defined __clang__ +/* GCC 2.97 and clang support C99 flexible array members as an extension, + even when in C89 mode or compiling C++ (any version). */ +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif defined __GNUC__ +/* Pre-2.97 GCC did not support C99 flexible arrays but did have + an equivalent extension with slightly different notation. */ +# define __flexarr [0] +# define __glibc_c99_flexarr_available 1 +#else +/* Some other non-C99 compiler. Approximate with [1]. */ +# define __flexarr [1] +# define __glibc_c99_flexarr_available 0 +#endif + + +/* __asm__ ("xyz") is used throughout the headers to rename functions + at the assembly language level. This is wrapped by the __REDIRECT + macro, in order to support compilers that can do this some other + way. When compilers don't support asm-names at all, we have to do + preprocessor tricks instead (which don't have exactly the right + semantics, but it's the best we can do). + + Example: + int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ + +#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) + +# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) +# ifdef __cplusplus +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __THROW __asm__ (__ASMNAME (#alias)) +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __THROWNL __asm__ (__ASMNAME (#alias)) +# else +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROW +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROWNL +# endif +# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) +# define __ASMNAME2(prefix, cname) __STRING (prefix) cname + +/* +#elif __SOME_OTHER_COMPILER__ + +# define __REDIRECT(name, proto, alias) name proto; \ + _Pragma("let " #name " = " #alias) +*/ +#endif + +/* GCC and clang have various useful declarations that can be made with + the '__attribute__' syntax. All of the ways we use this do fine if + they are omitted for compilers that don't understand it. */ +#if !(defined __GNUC__ || defined __clang__) +# define __attribute__(xyz) /* Ignore */ +#endif + +/* At some point during the gcc 2.96 development the `malloc' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) +# define __attribute_malloc__ __attribute__ ((__malloc__)) +#else +# define __attribute_malloc__ /* Ignore */ +#endif + +/* Tell the compiler which arguments to an allocation function + indicate the size of the allocation. */ +#if __GNUC_PREREQ (4, 3) +# define __attribute_alloc_size__(params) \ + __attribute__ ((__alloc_size__ params)) +#else +# define __attribute_alloc_size__(params) /* Ignore. */ +#endif + +/* Tell the compiler which argument to an allocation function + indicates the alignment of the allocation. */ +#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) +# define __attribute_alloc_align__(param) \ + __attribute__ ((__alloc_align__ param)) +#else +# define __attribute_alloc_align__(param) /* Ignore. */ +#endif + +/* At some point during the gcc 2.96 development the `pure' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) +# define __attribute_pure__ __attribute__ ((__pure__)) +#else +# define __attribute_pure__ /* Ignore */ +#endif + +/* This declaration tells the compiler that the value is constant. */ +#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) +# define __attribute_const__ __attribute__ ((__const__)) +#else +# define __attribute_const__ /* Ignore */ +#endif + +#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) +# define __attribute_maybe_unused__ __attribute__ ((__unused__)) +#else +# define __attribute_maybe_unused__ /* Ignore */ +#endif + +/* At some point during the gcc 3.1 development the `used' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) +# define __attribute_used__ __attribute__ ((__used__)) +# define __attribute_noinline__ __attribute__ ((__noinline__)) +#else +# define __attribute_used__ __attribute__ ((__unused__)) +# define __attribute_noinline__ /* Ignore */ +#endif + +/* Since version 3.2, gcc allows marking deprecated functions. */ +#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) +# define __attribute_deprecated__ __attribute__ ((__deprecated__)) +#else +# define __attribute_deprecated__ /* Ignore */ +#endif + +/* Since version 4.5, gcc also allows one to specify the message printed + when a deprecated function is used. clang claims to be gcc 4.2, but + may also support this feature. */ +#if __GNUC_PREREQ (4,5) \ + || __glibc_has_extension (__attribute_deprecated_with_message__) +# define __attribute_deprecated_msg__(msg) \ + __attribute__ ((__deprecated__ (msg))) +#else +# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ +#endif + +/* At some point during the gcc 2.8 development the `format_arg' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. + If several `format_arg' attributes are given for the same function, in + gcc-3.0 and older, all but the last one are ignored. In newer gccs, + all designated arguments are considered. */ +#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) +# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) +#else +# define __attribute_format_arg__(x) /* Ignore */ +#endif + +/* At some point during the gcc 2.97 development the `strfmon' format + attribute for functions was introduced. We don't want to use it + unconditionally (although this would be possible) since it + generates warnings. */ +#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) +# define __attribute_format_strfmon__(a,b) \ + __attribute__ ((__format__ (__strfmon__, a, b))) +#else +# define __attribute_format_strfmon__(a,b) /* Ignore */ +#endif + +/* The nonnull function attribute marks pointer parameters that + must not be NULL. This has the name __nonnull in glibc, + and __attribute_nonnull__ in files shared with Gnulib to avoid + collision with a different __nonnull in DragonFlyBSD 5.9. */ +#ifndef __attribute_nonnull__ +# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) +# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) +# else +# define __attribute_nonnull__(params) +# endif +#endif +#ifndef __nonnull +# define __nonnull(params) __attribute_nonnull__ (params) +#endif + +/* The returns_nonnull function attribute marks the return type of the function + as always being non-null. */ +#ifndef __returns_nonnull +# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) +# define __returns_nonnull __attribute__ ((__returns_nonnull__)) +# else +# define __returns_nonnull +# endif +#endif + +/* If fortification mode, we warn about unused results of certain + function calls which can lead to problems. */ +#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) +# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 +# define __wur __attribute_warn_unused_result__ +# endif +#else +# define __attribute_warn_unused_result__ /* empty */ +#endif +#ifndef __wur +# define __wur /* Ignore */ +#endif + +/* Forces a function to be always inlined. */ +#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) +/* The Linux kernel defines __always_inline in stddef.h (283d7573), and + it conflicts with this definition. Therefore undefine it first to + allow either header to be included first. */ +# undef __always_inline +# define __always_inline __inline __attribute__ ((__always_inline__)) +#else +# undef __always_inline +# define __always_inline __inline +#endif + +/* Associate error messages with the source location of the call site rather + than with the source location inside the function. */ +#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) +# define __attribute_artificial__ __attribute__ ((__artificial__)) +#else +# define __attribute_artificial__ /* Ignore */ +#endif + +/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ + or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions + older than 4.3 may define these macros and still not guarantee GNU inlining + semantics. + + clang++ identifies itself as gcc-4.2, but has support for GNU inlining + semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and + __GNUC_GNU_INLINE__ macro definitions. */ +#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ + || defined __GNUC_GNU_INLINE__))) +# if defined __GNUC_STDC_INLINE__ || defined __cplusplus +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__)) +# else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +# endif +#endif + +#ifdef __extern_always_inline +# define __fortify_function __extern_always_inline __attribute_artificial__ +#endif + +/* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +#if __GNUC_PREREQ (4,3) +# define __va_arg_pack() __builtin_va_arg_pack () +# define __va_arg_pack_len() __builtin_va_arg_pack_len () +#endif + +/* It is possible to compile containing GCC extensions even if GCC is + run in pedantic mode if the uses are carefully marked using the + `__extension__' keyword. But this is not generally available before + version 2.8. */ +#if !(__GNUC_PREREQ (2,8) || defined __clang__) +# define __extension__ /* Ignore */ +#endif + +/* __restrict is known in EGCS 1.2 and above, and in clang. + It works also in C++ mode (outside of arrays), but only when spelled + as '__restrict', not 'restrict'. */ +#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict restrict +# else +# define __restrict /* Ignore */ +# endif +#endif + +/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is + array_name[restrict] + GCC 3.1 and clang support this. + This syntax is not usable in C++ mode. */ +#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus +# define __restrict_arr __restrict +#else +# ifdef __GNUC__ +# define __restrict_arr /* Not supported in old GCC. */ +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict_arr restrict +# else +/* Some other non-C99 compiler. */ +# define __restrict_arr /* Not supported. */ +# endif +# endif +#endif + +#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) +# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) +# define __glibc_likely(cond) __builtin_expect ((cond), 1) +#else +# define __glibc_unlikely(cond) (cond) +# define __glibc_likely(cond) (cond) +#endif + +#if (!defined _Noreturn \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && !(__GNUC_PREREQ (4,7) \ + || (3 < __clang_major__ + (5 <= __clang_minor__)))) +# if __GNUC_PREREQ (2,8) +# define _Noreturn __attribute__ ((__noreturn__)) +# else +# define _Noreturn +# endif +#endif + +#if __GNUC_PREREQ (8, 0) +/* Describes a char array whose address can safely be passed as the first + argument to strncpy and strncat, as the char array is not necessarily + a NUL-terminated string. */ +# define __attribute_nonstring__ __attribute__ ((__nonstring__)) +#else +# define __attribute_nonstring__ +#endif + +/* Undefine (also defined in libc-symbols.h). */ +#undef __attribute_copy__ +#if __GNUC_PREREQ (9, 0) +/* Copies attributes from the declaration or type referenced by + the argument. */ +# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) +#else +# define __attribute_copy__(arg) +#endif + +#if (!defined _Static_assert && !defined __cplusplus \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ + || defined __STRICT_ANSI__)) +# define _Static_assert(expr, diagnostic) \ + extern int (*__Static_assert_function (void)) \ + [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] +#endif + +/* Gnulib avoids including these, as they don't work on non-glibc or + older glibc platforms. */ +#ifndef __GNULIB_CDEFS +# include +# include +#endif + +#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 +# ifdef __REDIRECT + +/* Alias name defined automatically. */ +# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir +# define __LDBL_REDIR_DECL(name) \ + extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); + +/* Alias name defined automatically, with leading underscores. */ +# define __LDBL_REDIR2_DECL(name) \ + extern __typeof (__##name) __##name \ + __asm (__ASMNAME ("__" #name "ieee128")); + +/* Alias name defined manually. */ +# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 +# define __LDBL_REDIR1_DECL(name, alias) \ + extern __typeof (name) name __asm (__ASMNAME (#alias)); + +# define __LDBL_REDIR1_NTH(name, proto, alias) \ + __REDIRECT_NTH (name, proto, alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) + +/* Unused. */ +# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl +# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth + +# else +_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); +# endif +#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# define __LDBL_COMPAT 1 +# ifdef __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) +# define __LDBL_REDIR(name, proto) \ + __LDBL_REDIR1 (name, proto, __nldbl_##name) +# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) +# define __LDBL_REDIR_NTH(name, proto) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) +# define __LDBL_REDIR2_DECL(name) \ + extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); +# define __LDBL_REDIR1_DECL(name, alias) \ + extern __typeof (name) name __asm (__ASMNAME (#alias)); +# define __LDBL_REDIR_DECL(name) \ + extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); +# define __REDIRECT_LDBL(name, proto, alias) \ + __LDBL_REDIR1 (name, proto, __nldbl_##alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) +# endif +#endif +#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ + || !defined __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) name proto +# define __LDBL_REDIR(name, proto) name proto +# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW +# define __LDBL_REDIR_NTH(name, proto) name proto __THROW +# define __LDBL_REDIR2_DECL(name) +# define __LDBL_REDIR_DECL(name) +# ifdef __REDIRECT +# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __REDIRECT_NTH (name, proto, alias) +# endif +#endif + +/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is + intended for use in preprocessor macros. + + Note: MESSAGE must be a _single_ string; concatenation of string + literals is not supported. */ +#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) +# define __glibc_macro_warning1(message) _Pragma (#message) +# define __glibc_macro_warning(message) \ + __glibc_macro_warning1 (GCC warning message) +#else +# define __glibc_macro_warning(msg) +#endif + +/* Generic selection (ISO C11) is a C-only feature, available in GCC + since version 4.9. Previous versions do not provide generic + selection, even though they might set __STDC_VERSION__ to 201112L, + when in -std=c11 mode. Thus, we must check for !defined __GNUC__ + when testing __STDC_VERSION__ for generic selection support. + On the other hand, Clang also defines __GNUC__, so a clang-specific + check is required to enable the use of generic selection. */ +#if !defined __cplusplus \ + && (__GNUC_PREREQ (4, 9) \ + || __glibc_has_extension (c_generic_selections) \ + || (!defined __GNUC__ && defined __STDC_VERSION__ \ + && __STDC_VERSION__ >= 201112L)) +# define __HAVE_GENERIC_SELECTION 1 +#else +# define __HAVE_GENERIC_SELECTION 0 +#endif + +#if __GNUC_PREREQ (10, 0) +/* Designates a 1-based positional argument ref-index of pointer type + that can be used to access size-index elements of the pointed-to + array according to access mode, or at least one element when + size-index is not provided: + access (access-mode, [, ]) */ +# define __attr_access(x) __attribute__ ((__access__ x)) +/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may + use the access attribute to get object sizes from function definition + arguments, so we can't use them on functions we fortify. Drop the object + size hints for such functions. */ +# if __USE_FORTIFY_LEVEL == 3 +# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) +# else +# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) +# endif +# if __GNUC_PREREQ (11, 0) +# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) +# else +# define __attr_access_none(argno) +# endif +#else +# define __fortified_attr_access(a, o, s) +# define __attr_access(x) +# define __attr_access_none(argno) +#endif + +#if __GNUC_PREREQ (11, 0) +/* Designates dealloc as a function to call to deallocate objects + allocated by the declared function. */ +# define __attr_dealloc(dealloc, argno) \ + __attribute__ ((__malloc__ (dealloc, argno))) +# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) +#else +# define __attr_dealloc(dealloc, argno) +# define __attr_dealloc_free +#endif + +/* Specify that a function such as setjmp or vfork may return + twice. */ +#if __GNUC_PREREQ (4, 1) +# define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) +#else +# define __attribute_returns_twice__ /* Ignore. */ +#endif + +#endif /* sys/cdefs.h */ diff --git a/3rdPartner/libiconv/srclib/cloexec.c b/3rdPartner/libiconv/srclib/cloexec.c new file mode 100644 index 0000000..812be01 --- /dev/null +++ b/3rdPartner/libiconv/srclib/cloexec.c @@ -0,0 +1,83 @@ +/* cloexec.c - set or clear the close-on-exec descriptor flag + + Copyright (C) 1991, 2004-2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* The code is taken from glibc/manual/llio.texi */ + +#include + +#include "cloexec.h" + +#include +#include +#include + +/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, + or clear the flag if VALUE is false. + Return 0 on success, or -1 on error with 'errno' set. + + Note that on MingW, this function does NOT protect DESC from being + inherited into spawned children. Instead, either use dup_cloexec + followed by closing the original DESC, or use interfaces such as + open or pipe2 that accept flags like O_CLOEXEC to create DESC + non-inheritable in the first place. */ + +int +set_cloexec_flag (int desc, bool value) +{ +#ifdef F_SETFD + + int flags = fcntl (desc, F_GETFD, 0); + + if (0 <= flags) + { + int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); + + if (flags == newflags + || fcntl (desc, F_SETFD, newflags) != -1) + return 0; + } + + return -1; + +#else /* !F_SETFD */ + + /* Use dup2 to reject invalid file descriptors; the cloexec flag + will be unaffected. */ + if (desc < 0) + { + errno = EBADF; + return -1; + } + if (dup2 (desc, desc) < 0) + /* errno is EBADF here. */ + return -1; + + /* There is nothing we can do on this kind of platform. Punt. */ + return 0; +#endif /* !F_SETFD */ +} + + +/* Duplicates a file handle FD, while marking the copy to be closed + prior to exec or spawn. Returns -1 and sets errno if FD could not + be duplicated. */ + +int +dup_cloexec (int fd) +{ + return fcntl (fd, F_DUPFD_CLOEXEC, 0); +} diff --git a/3rdPartner/libiconv/srclib/cloexec.h b/3rdPartner/libiconv/srclib/cloexec.h new file mode 100644 index 0000000..7a22d77 --- /dev/null +++ b/3rdPartner/libiconv/srclib/cloexec.h @@ -0,0 +1,36 @@ +/* cloexec.c - set or clear the close-on-exec descriptor flag + + Copyright (C) 2004, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, + or clear the flag if VALUE is false. + Return 0 on success, or -1 on error with 'errno' set. + + Note that on MingW, this function does NOT protect DESC from being + inherited into spawned children. Instead, either use dup_cloexec + followed by closing the original DESC, or use interfaces such as + open or pipe2 that accept flags like O_CLOEXEC to create DESC + non-inheritable in the first place. */ + +int set_cloexec_flag (int desc, bool value); + +/* Duplicates a file handle FD, while marking the copy to be closed + prior to exec or spawn. Returns -1 and sets errno if FD could not + be duplicated. */ + +int dup_cloexec (int fd); diff --git a/3rdPartner/libiconv/srclib/close.c b/3rdPartner/libiconv/srclib/close.c new file mode 100644 index 0000000..44990ba --- /dev/null +++ b/3rdPartner/libiconv/srclib/close.c @@ -0,0 +1,75 @@ +/* close replacement. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#include + +#include "fd-hook.h" +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +#endif + +#undef close + +#if defined _WIN32 && !defined __CYGWIN__ +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static int +close_nothrow (int fd) +{ + int result; + + TRY_MSVC_INVAL + { + result = _close (fd); + } + CATCH_MSVC_INVAL + { + result = -1; + errno = EBADF; + } + DONE_MSVC_INVAL; + + return result; +} +# else +# define close_nothrow _close +# endif +#else +# define close_nothrow close +#endif + +/* Override close() to call into other gnulib modules. */ + +int +rpl_close (int fd) +{ +#if WINDOWS_SOCKETS + int retval = execute_all_close_hooks (close_nothrow, fd); +#else + int retval = close_nothrow (fd); +#endif + +#if REPLACE_FCHDIR + if (retval >= 0) + _gl_unregister_fd (fd); +#endif + + return retval; +} diff --git a/3rdPartner/libiconv/srclib/dup2.c b/3rdPartner/libiconv/srclib/dup2.c new file mode 100644 index 0000000..1c766ab --- /dev/null +++ b/3rdPartner/libiconv/srclib/dup2.c @@ -0,0 +1,189 @@ +/* Duplicate an open file descriptor to a specified file descriptor. + + Copyright (C) 1999, 2004-2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Paul Eggert */ + +#include + +/* Specification. */ +#include + +#include +#include + +#undef dup2 + +#if defined _WIN32 && ! defined __CYGWIN__ + +/* Get declarations of the native Windows API functions. */ +# define WIN32_LEAN_AND_MEAN +# include + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +# endif + +/* Get _get_osfhandle. */ +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static int +dup2_nothrow (int fd, int desired_fd) +{ + int result; + + TRY_MSVC_INVAL + { + result = _dup2 (fd, desired_fd); + } + CATCH_MSVC_INVAL + { + errno = EBADF; + result = -1; + } + DONE_MSVC_INVAL; + + return result; +} +# else +# define dup2_nothrow _dup2 +# endif + +static int +ms_windows_dup2 (int fd, int desired_fd) +{ + int result; + + /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, + dup2 (fd, fd) returns 0, but all further attempts to use fd in + future dup2 calls will hang. */ + if (fd == desired_fd) + { + if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + return fd; + } + + /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: + https://bugs.winehq.org/show_bug.cgi?id=21289 */ + if (desired_fd < 0) + { + errno = EBADF; + return -1; + } + + result = dup2_nothrow (fd, desired_fd); + + if (result == 0) + result = desired_fd; + + return result; +} + +# define dup2 ms_windows_dup2 + +#elif defined __KLIBC__ + +# include + +static int +klibc_dup2dirfd (int fd, int desired_fd) +{ + int tempfd; + int dupfd; + + tempfd = open ("NUL", O_RDONLY); + if (tempfd == -1) + return -1; + + if (tempfd == desired_fd) + { + close (tempfd); + + char path[_MAX_PATH]; + if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) + return -1; + + return open(path, O_RDONLY); + } + + dupfd = klibc_dup2dirfd (fd, desired_fd); + + close (tempfd); + + return dupfd; +} + +static int +klibc_dup2 (int fd, int desired_fd) +{ + int dupfd; + struct stat sbuf; + + dupfd = dup2 (fd, desired_fd); + if (dupfd == -1 && errno == ENOTSUP \ + && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) + { + close (desired_fd); + + return klibc_dup2dirfd (fd, desired_fd); + } + + return dupfd; +} + +# define dup2 klibc_dup2 +#endif + +int +rpl_dup2 (int fd, int desired_fd) +{ + int result; + +#ifdef F_GETFL + /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. + On Cygwin 1.5.x, dup2 (1, 1) returns 0. + On Cygwin 1.7.17, dup2 (1, -1) dumps core. + On Cygwin 1.7.25, dup2 (1, 256) can dump core. + On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ +# if HAVE_SETDTABLESIZE + setdtablesize (desired_fd + 1); +# endif + if (desired_fd < 0) + fd = desired_fd; + if (fd == desired_fd) + return fcntl (fd, F_GETFL) == -1 ? -1 : fd; +#endif + + result = dup2 (fd, desired_fd); + + /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ + if (result == -1 && errno == EMFILE) + errno = EBADF; +#if REPLACE_FCHDIR + if (fd != desired_fd && result != -1) + result = _gl_register_dup (fd, result); +#endif + return result; +} diff --git a/3rdPartner/libiconv/srclib/eloop-threshold.h b/3rdPartner/libiconv/srclib/eloop-threshold.h new file mode 100644 index 0000000..8b31457 --- /dev/null +++ b/3rdPartner/libiconv/srclib/eloop-threshold.h @@ -0,0 +1,83 @@ +/* Threshold at which to diagnose ELOOP. Generic version. + Copyright (C) 2012-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _ELOOP_THRESHOLD_H +#define _ELOOP_THRESHOLD_H 1 + +#include +#ifdef _LIBC +# include +# define _GL_ATTRIBUTE_CONST __attribute__ ((const)) +#else +# include +# include "minmax.h" +# define __sysconf sysconf +# if (!defined SYMLOOP_MAX \ + && ! (defined _SC_SYMLOOP_MAX && defined _POSIX_SYMLOOP_MAX)) +# define SYMLOOP_MAX 8 +# endif +#endif + +/* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic + links that can be reliably traversed in the resolution of a + pathname in the absence of a loop." This makes it a minimum that + we should certainly accept. But it leaves open the possibility + that more might sometimes work--just not "reliably". + + For example, Linux implements a complex policy whereby there is a + small limit on the number of direct symlink traversals (a symlink + to a symlink to a symlink), but larger limit on the total number of + symlink traversals overall. Hence the SYMLOOP_MAX number should be + the small one, but the limit library functions enforce on users + should be the larger one. + + So, we use the larger of the reported SYMLOOP_MAX (if any) and our + own constant MIN_ELOOP_THRESHOLD, below. This constant should be + large enough that it never rules out a file name and directory tree + that the underlying system (i.e. calls to 'open' et al) would + resolve successfully. It should be small enough that actual loops + are detected without a huge number of iterations. */ + +#ifndef MIN_ELOOP_THRESHOLD +# define MIN_ELOOP_THRESHOLD 40 +#endif + +/* Return the maximum number of symlink traversals to permit + before diagnosing ELOOP. */ +static inline unsigned int _GL_ATTRIBUTE_CONST +__eloop_threshold (void) +{ +#ifdef SYMLOOP_MAX + const int symloop_max = SYMLOOP_MAX; +#else + /* The function is marked 'const' even though we use memory and + call a function, because sysconf is required to return the + same value in every call and so it must always be safe to + call __eloop_threshold exactly once and reuse the value. */ + static long int sysconf_symloop_max; + if (sysconf_symloop_max == 0) + sysconf_symloop_max = __sysconf (_SC_SYMLOOP_MAX); + const unsigned int symloop_max = (sysconf_symloop_max <= 0 + ? _POSIX_SYMLOOP_MAX + : sysconf_symloop_max); +#endif + + return MAX (symloop_max, MIN_ELOOP_THRESHOLD); +} + +#endif /* eloop-threshold.h */ diff --git a/3rdPartner/libiconv/srclib/errno.in.h b/3rdPartner/libiconv/srclib/errno.in.h new file mode 100644 index 0000000..3ec1845 --- /dev/null +++ b/3rdPartner/libiconv/srclib/errno.in.h @@ -0,0 +1,279 @@ +/* A POSIX-like . + + Copyright (C) 2008-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _@GUARD_PREFIX@_ERRNO_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_ERRNO_H@ + +#ifndef _@GUARD_PREFIX@_ERRNO_H +#define _@GUARD_PREFIX@_ERRNO_H + + +/* On native Windows platforms, many macros are not defined. */ +# if defined _WIN32 && ! defined __CYGWIN__ + +/* These are the same values as defined by MSVC 10, for interoperability. */ + +# ifndef ENOMSG +# define ENOMSG 122 +# define GNULIB_defined_ENOMSG 1 +# endif + +# ifndef EIDRM +# define EIDRM 111 +# define GNULIB_defined_EIDRM 1 +# endif + +# ifndef ENOLINK +# define ENOLINK 121 +# define GNULIB_defined_ENOLINK 1 +# endif + +# ifndef EPROTO +# define EPROTO 134 +# define GNULIB_defined_EPROTO 1 +# endif + +# ifndef EBADMSG +# define EBADMSG 104 +# define GNULIB_defined_EBADMSG 1 +# endif + +# ifndef EOVERFLOW +# define EOVERFLOW 132 +# define GNULIB_defined_EOVERFLOW 1 +# endif + +# ifndef ENOTSUP +# define ENOTSUP 129 +# define GNULIB_defined_ENOTSUP 1 +# endif + +# ifndef ENETRESET +# define ENETRESET 117 +# define GNULIB_defined_ENETRESET 1 +# endif + +# ifndef ECONNABORTED +# define ECONNABORTED 106 +# define GNULIB_defined_ECONNABORTED 1 +# endif + +# ifndef ECANCELED +# define ECANCELED 105 +# define GNULIB_defined_ECANCELED 1 +# endif + +# ifndef EOWNERDEAD +# define EOWNERDEAD 133 +# define GNULIB_defined_EOWNERDEAD 1 +# endif + +# ifndef ENOTRECOVERABLE +# define ENOTRECOVERABLE 127 +# define GNULIB_defined_ENOTRECOVERABLE 1 +# endif + +# ifndef EINPROGRESS +# define EINPROGRESS 112 +# define EALREADY 103 +# define ENOTSOCK 128 +# define EDESTADDRREQ 109 +# define EMSGSIZE 115 +# define EPROTOTYPE 136 +# define ENOPROTOOPT 123 +# define EPROTONOSUPPORT 135 +# define EOPNOTSUPP 130 +# define EAFNOSUPPORT 102 +# define EADDRINUSE 100 +# define EADDRNOTAVAIL 101 +# define ENETDOWN 116 +# define ENETUNREACH 118 +# define ECONNRESET 108 +# define ENOBUFS 119 +# define EISCONN 113 +# define ENOTCONN 126 +# define ETIMEDOUT 138 +# define ECONNREFUSED 107 +# define ELOOP 114 +# define EHOSTUNREACH 110 +# define EWOULDBLOCK 140 +# define GNULIB_defined_ESOCK 1 +# endif + +# ifndef ETXTBSY +# define ETXTBSY 139 +# define ENODATA 120 /* not required by POSIX */ +# define ENOSR 124 /* not required by POSIX */ +# define ENOSTR 125 /* not required by POSIX */ +# define ETIME 137 /* not required by POSIX */ +# define EOTHER 131 /* not required by POSIX */ +# define GNULIB_defined_ESTREAMS 1 +# endif + +/* These are intentionally the same values as the WSA* error numbers, defined + in . */ +# define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ +# define EPFNOSUPPORT 10046 /* not required by POSIX */ +# define ESHUTDOWN 10058 /* not required by POSIX */ +# define ETOOMANYREFS 10059 /* not required by POSIX */ +# define EHOSTDOWN 10064 /* not required by POSIX */ +# define EPROCLIM 10067 /* not required by POSIX */ +# define EUSERS 10068 /* not required by POSIX */ +# define EDQUOT 10069 +# define ESTALE 10070 +# define EREMOTE 10071 /* not required by POSIX */ +# define GNULIB_defined_EWINSOCK 1 + +# endif + + +/* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros + EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ +# if @EMULTIHOP_HIDDEN@ +# define EMULTIHOP @EMULTIHOP_VALUE@ +# define GNULIB_defined_EMULTIHOP 1 +# endif +# if @ENOLINK_HIDDEN@ +# define ENOLINK @ENOLINK_VALUE@ +# define GNULIB_defined_ENOLINK 1 +# endif +# if @EOVERFLOW_HIDDEN@ +# define EOVERFLOW @EOVERFLOW_VALUE@ +# define GNULIB_defined_EOVERFLOW 1 +# endif + + +/* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, + EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. + Likewise, on NonStop Kernel, EDQUOT is not defined. + Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, + HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. + + Note: When one of these systems defines some of these macros some day, + binaries will have to be recompiled so that they recognizes the new + errno values from the system. */ + +# ifndef ENOMSG +# define ENOMSG 2000 +# define GNULIB_defined_ENOMSG 1 +# endif + +# ifndef EIDRM +# define EIDRM 2001 +# define GNULIB_defined_EIDRM 1 +# endif + +# ifndef ENOLINK +# define ENOLINK 2002 +# define GNULIB_defined_ENOLINK 1 +# endif + +# ifndef EPROTO +# define EPROTO 2003 +# define GNULIB_defined_EPROTO 1 +# endif + +# ifndef EMULTIHOP +# define EMULTIHOP 2004 +# define GNULIB_defined_EMULTIHOP 1 +# endif + +# ifndef EBADMSG +# define EBADMSG 2005 +# define GNULIB_defined_EBADMSG 1 +# endif + +# ifndef EOVERFLOW +# define EOVERFLOW 2006 +# define GNULIB_defined_EOVERFLOW 1 +# endif + +# ifndef ENOTSUP +# define ENOTSUP 2007 +# define GNULIB_defined_ENOTSUP 1 +# endif + +# ifndef ENETRESET +# define ENETRESET 2011 +# define GNULIB_defined_ENETRESET 1 +# endif + +# ifndef ECONNABORTED +# define ECONNABORTED 2012 +# define GNULIB_defined_ECONNABORTED 1 +# endif + +# ifndef ESTALE +# define ESTALE 2009 +# define GNULIB_defined_ESTALE 1 +# endif + +# ifndef EDQUOT +# define EDQUOT 2010 +# define GNULIB_defined_EDQUOT 1 +# endif + +# ifndef ECANCELED +# define ECANCELED 2008 +# define GNULIB_defined_ECANCELED 1 +# endif + +/* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not + defined. */ + +# ifndef EOWNERDEAD +# if defined __sun + /* Use the same values as defined for Solaris >= 8, for + interoperability. */ +# define EOWNERDEAD 58 +# define ENOTRECOVERABLE 59 +# elif defined _WIN32 && ! defined __CYGWIN__ + /* We have a conflict here: pthreads-win32 defines these values + differently than MSVC 10. It's hairy to decide which one to use. */ +# if defined __MINGW32__ && !defined USE_WINDOWS_THREADS + /* Use the same values as defined by pthreads-win32, for + interoperability. */ +# define EOWNERDEAD 43 +# define ENOTRECOVERABLE 44 +# else + /* Use the same values as defined by MSVC 10, for + interoperability. */ +# define EOWNERDEAD 133 +# define ENOTRECOVERABLE 127 +# endif +# else +# define EOWNERDEAD 2013 +# define ENOTRECOVERABLE 2014 +# endif +# define GNULIB_defined_EOWNERDEAD 1 +# define GNULIB_defined_ENOTRECOVERABLE 1 +# endif + +# ifndef EILSEQ +# define EILSEQ 2015 +# define GNULIB_defined_EILSEQ 1 +# endif + +#endif /* _@GUARD_PREFIX@_ERRNO_H */ +#endif /* _@GUARD_PREFIX@_ERRNO_H */ diff --git a/3rdPartner/libiconv/srclib/error.c b/3rdPartner/libiconv/srclib/error.c new file mode 100644 index 0000000..272d45e --- /dev/null +++ b/3rdPartner/libiconv/srclib/error.c @@ -0,0 +1,411 @@ +/* Error handler for noninteractive utilities + Copyright (C) 1990-1998, 2000-2007, 2009-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + This file 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 file 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 program. If not, see . */ + +/* Written by David MacKenzie . */ + +#if !_LIBC +# include +#endif + +#include "error.h" + +#include +#include +#include +#include + +#if !_LIBC && ENABLE_NLS +# include "gettext.h" +# define _(msgid) gettext (msgid) +#endif + +#ifdef _LIBC +# include +# include +# include +# include +# define mbsrtowcs __mbsrtowcs +# define USE_UNLOCKED_IO 0 +# define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) +# define _GL_ARG_NONNULL(a) +#else +# include "getprogname.h" +#endif + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +#ifndef _ +# define _(String) String +#endif + +/* If NULL, error will flush stdout, then print on stderr the program + name, a colon and a space. Otherwise, error will call this + function without parameters instead. */ +void (*error_print_progname) (void); + +/* This variable is incremented each time 'error' is called. */ +unsigned int error_message_count; + +#ifdef _LIBC +/* In the GNU C library, there is a predefined variable for this. */ + +# define program_name program_invocation_name +# include +# include +# include + +/* In GNU libc we want do not want to use the common name 'error' directly. + Instead make it a weak alias. */ +extern void __error (int status, int errnum, const char *message, ...) + __attribute__ ((__format__ (__printf__, 3, 4))); +extern void __error_at_line (int status, int errnum, const char *file_name, + unsigned int line_number, const char *message, + ...) + __attribute__ ((__format__ (__printf__, 5, 6))); +# define error __error +# define error_at_line __error_at_line + +# include +# define fflush(s) _IO_fflush (s) +# undef putc +# define putc(c, fp) _IO_putc (c, fp) + +# include + +#else /* not _LIBC */ + +# include +# include + +# if defined _WIN32 && ! defined __CYGWIN__ +/* Get declarations of the native Windows API functions. */ +# define WIN32_LEAN_AND_MEAN +# include +/* Get _get_osfhandle. */ +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif +# endif + +/* The gnulib override of fcntl is not needed in this file. */ +# undef fcntl + +# if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) +# ifndef HAVE_DECL_STRERROR_R +"this configure-time declaration test was not run" +# endif +# if STRERROR_R_CHAR_P +char *strerror_r (int errnum, char *buf, size_t buflen); +# else +int strerror_r (int errnum, char *buf, size_t buflen); +# endif +# endif + +# define program_name getprogname () + +# if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r +# define __strerror_r strerror_r +# endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ +#endif /* not _LIBC */ + +#if !_LIBC +/* Return non-zero if FD is open. */ +static int +is_open (int fd) +{ +# if defined _WIN32 && ! defined __CYGWIN__ + /* On native Windows: The initial state of unassigned standard file + descriptors is that they are open but point to an INVALID_HANDLE_VALUE. + There is no fcntl, and the gnulib replacement fcntl does not support + F_GETFL. */ + return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; +# else +# ifndef F_GETFL +# error Please port fcntl to your platform +# endif + return 0 <= fcntl (fd, F_GETFL); +# endif +} +#endif + +static void +flush_stdout (void) +{ +#if !_LIBC + int stdout_fd; + +# if GNULIB_FREOPEN_SAFER + /* Use of gnulib's freopen-safer module normally ensures that + fileno (stdout) == 1 + whenever stdout is open. */ + stdout_fd = STDOUT_FILENO; +# else + /* POSIX states that fileno (stdout) after fclose is unspecified. But in + practice it is not a problem, because stdout is statically allocated and + the fd of a FILE stream is stored as a field in its allocated memory. */ + stdout_fd = fileno (stdout); +# endif + /* POSIX states that fflush (stdout) after fclose is unspecified; it + is safe in glibc, but not on all other platforms. fflush (NULL) + is always defined, but too draconian. */ + if (0 <= stdout_fd && is_open (stdout_fd)) +#endif + fflush (stdout); +} + +static void +print_errno_message (int errnum) +{ + char const *s; + +#if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R + char errbuf[1024]; +# if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) + s = __strerror_r (errnum, errbuf, sizeof errbuf); +# else + if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) + s = errbuf; + else + s = 0; +# endif +#else + s = strerror (errnum); +#endif + +#if !_LIBC + if (! s) + s = _("Unknown system error"); +#endif + +#if _LIBC + __fxprintf (NULL, ": %s", s); +#else + fprintf (stderr, ": %s", s); +#endif +} + +static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) +error_tail (int status, int errnum, const char *message, va_list args) +{ +#if _LIBC + if (_IO_fwide (stderr, 0) > 0) + { + size_t len = strlen (message) + 1; + wchar_t *wmessage = NULL; + mbstate_t st; + size_t res; + const char *tmp; + bool use_malloc = false; + + while (1) + { + if (__libc_use_alloca (len * sizeof (wchar_t))) + wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); + else + { + if (!use_malloc) + wmessage = NULL; + + wchar_t *p = (wchar_t *) realloc (wmessage, + len * sizeof (wchar_t)); + if (p == NULL) + { + free (wmessage); + fputws_unlocked (L"out of memory\n", stderr); + return; + } + wmessage = p; + use_malloc = true; + } + + memset (&st, '\0', sizeof (st)); + tmp = message; + + res = mbsrtowcs (wmessage, &tmp, len, &st); + if (res != len) + break; + + if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) + { + /* This really should not happen if everything is fine. */ + res = (size_t) -1; + break; + } + + len *= 2; + } + + if (res == (size_t) -1) + { + /* The string cannot be converted. */ + if (use_malloc) + { + free (wmessage); + use_malloc = false; + } + wmessage = (wchar_t *) L"???"; + } + + __vfwprintf (stderr, wmessage, args); + + if (use_malloc) + free (wmessage); + } + else +#endif + vfprintf (stderr, message, args); + + ++error_message_count; + if (errnum) + print_errno_message (errnum); +#if _LIBC + __fxprintf (NULL, "\n"); +#else + putc ('\n', stderr); +#endif + fflush (stderr); + if (status) + exit (status); +} + + +/* Print the program name and error message MESSAGE, which is a printf-style + format string with optional args. + If ERRNUM is nonzero, print its corresponding system error message. + Exit with status STATUS if it is nonzero. */ +void +error (int status, int errnum, const char *message, ...) +{ + va_list args; + +#if defined _LIBC && defined __libc_ptf_call + /* We do not want this call to be cut short by a thread + cancellation. Therefore disable cancellation for now. */ + int state = PTHREAD_CANCEL_ENABLE; + __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), + 0); +#endif + + flush_stdout (); +#ifdef _LIBC + _IO_flockfile (stderr); +#endif + if (error_print_progname) + (*error_print_progname) (); + else + { +#if _LIBC + __fxprintf (NULL, "%s: ", program_name); +#else + fprintf (stderr, "%s: ", program_name); +#endif + } + + va_start (args, message); + error_tail (status, errnum, message, args); + va_end (args); + +#ifdef _LIBC + _IO_funlockfile (stderr); +# ifdef __libc_ptf_call + __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); +# endif +#endif +} + +/* Sometimes we want to have at most one error per line. This + variable controls whether this mode is selected or not. */ +int error_one_per_line; + +void +error_at_line (int status, int errnum, const char *file_name, + unsigned int line_number, const char *message, ...) +{ + va_list args; + + if (error_one_per_line) + { + static const char *old_file_name; + static unsigned int old_line_number; + + if (old_line_number == line_number + && (file_name == old_file_name + || (old_file_name != NULL + && file_name != NULL + && strcmp (old_file_name, file_name) == 0))) + + /* Simply return and print nothing. */ + return; + + old_file_name = file_name; + old_line_number = line_number; + } + +#if defined _LIBC && defined __libc_ptf_call + /* We do not want this call to be cut short by a thread + cancellation. Therefore disable cancellation for now. */ + int state = PTHREAD_CANCEL_ENABLE; + __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), + 0); +#endif + + flush_stdout (); +#ifdef _LIBC + _IO_flockfile (stderr); +#endif + if (error_print_progname) + (*error_print_progname) (); + else + { +#if _LIBC + __fxprintf (NULL, "%s:", program_name); +#else + fprintf (stderr, "%s:", program_name); +#endif + } + +#if _LIBC + __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", + file_name, line_number); +#else + fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", + file_name, line_number); +#endif + + va_start (args, message); + error_tail (status, errnum, message, args); + va_end (args); + +#ifdef _LIBC + _IO_funlockfile (stderr); +# ifdef __libc_ptf_call + __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); +# endif +#endif +} + +#ifdef _LIBC +/* Make the weak alias. */ +# undef error +# undef error_at_line +weak_alias (__error, error) +weak_alias (__error_at_line, error_at_line) +#endif diff --git a/3rdPartner/libiconv/srclib/error.h b/3rdPartner/libiconv/srclib/error.h new file mode 100644 index 0000000..8813713 --- /dev/null +++ b/3rdPartner/libiconv/srclib/error.h @@ -0,0 +1,66 @@ +/* Declaration for error-reporting function + Copyright (C) 1995-1997, 2003, 2006, 2008-2022 Free Software Foundation, + Inc. + This file is part of the GNU C Library. + + This file 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 file 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 program. If not, see . */ + +#ifndef _ERROR_H +#define _ERROR_H 1 + +/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Print a message with 'fprintf (stderr, FORMAT, ...)'; + if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). + If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ + +extern void error (int __status, int __errnum, const char *__format, ...) +#if GNULIB_VFPRINTF_POSIX + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)) +#else + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4)) +#endif + ; + +extern void error_at_line (int __status, int __errnum, const char *__fname, + unsigned int __lineno, const char *__format, ...) +#if GNULIB_VFPRINTF_POSIX + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6)) +#else + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6)) +#endif + ; + +/* If NULL, error will flush stdout, then print on stderr the program + name, a colon and a space. Otherwise, error will call this + function without parameters instead. */ +extern DLL_VARIABLE void (*error_print_progname) (void); + +/* This variable is incremented each time 'error' is called. */ +extern DLL_VARIABLE unsigned int error_message_count; + +/* Sometimes we want to have at most one error per line. This + variable controls whether this mode is selected or not. */ +extern DLL_VARIABLE int error_one_per_line; + +#ifdef __cplusplus +} +#endif + +#endif /* error.h */ diff --git a/3rdPartner/libiconv/srclib/fcntl.c b/3rdPartner/libiconv/srclib/fcntl.c new file mode 100644 index 0000000..f9753c4 --- /dev/null +++ b/3rdPartner/libiconv/srclib/fcntl.c @@ -0,0 +1,629 @@ +/* Provide file descriptor control. + + Copyright (C) 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Eric Blake . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include +#include +#include + +#ifdef __KLIBC__ +# define INCL_DOS +# include +#endif + +#if defined _WIN32 && ! defined __CYGWIN__ +/* Get declarations of the native Windows API functions. */ +# define WIN32_LEAN_AND_MEAN +# include + +/* Get _get_osfhandle. */ +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif + +/* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ +# define OPEN_MAX_MAX 0x10000 + +/* Duplicate OLDFD into the first available slot of at least NEWFD, + which must be positive, with FLAGS determining whether the duplicate + will be inheritable. */ +static int +dupfd (int oldfd, int newfd, int flags) +{ + /* Mingw has no way to create an arbitrary fd. Iterate until all + file descriptors less than newfd are filled up. */ + HANDLE curr_process = GetCurrentProcess (); + HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); + unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; + unsigned int fds_to_close_bound = 0; + int result; + BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; + int mode; + + if (newfd < 0 || getdtablesize () <= newfd) + { + errno = EINVAL; + return -1; + } + if (old_handle == INVALID_HANDLE_VALUE + || (mode = _setmode (oldfd, O_BINARY)) == -1) + { + /* oldfd is not open, or is an unassigned standard file + descriptor. */ + errno = EBADF; + return -1; + } + _setmode (oldfd, mode); + flags |= mode; + + for (;;) + { + HANDLE new_handle; + int duplicated_fd; + unsigned int index; + + if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ + old_handle, /* SourceHandle */ + curr_process, /* TargetProcessHandle */ + (PHANDLE) &new_handle, /* TargetHandle */ + (DWORD) 0, /* DesiredAccess */ + inherit, /* InheritHandle */ + DUPLICATE_SAME_ACCESS)) /* Options */ + { + switch (GetLastError ()) + { + case ERROR_TOO_MANY_OPEN_FILES: + errno = EMFILE; + break; + case ERROR_INVALID_HANDLE: + case ERROR_INVALID_TARGET_HANDLE: + case ERROR_DIRECT_ACCESS_HANDLE: + errno = EBADF; + break; + case ERROR_INVALID_PARAMETER: + case ERROR_INVALID_FUNCTION: + case ERROR_INVALID_ACCESS: + errno = EINVAL; + break; + default: + errno = EACCES; + break; + } + result = -1; + break; + } + duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); + if (duplicated_fd < 0) + { + CloseHandle (new_handle); + result = -1; + break; + } + if (newfd <= duplicated_fd) + { + result = duplicated_fd; + break; + } + + /* Set the bit duplicated_fd in fds_to_close[]. */ + index = (unsigned int) duplicated_fd / CHAR_BIT; + if (fds_to_close_bound <= index) + { + if (sizeof fds_to_close <= index) + /* Need to increase OPEN_MAX_MAX. */ + abort (); + memset (fds_to_close + fds_to_close_bound, '\0', + index + 1 - fds_to_close_bound); + fds_to_close_bound = index + 1; + } + fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); + } + + /* Close the previous fds that turned out to be too small. */ + { + int saved_errno = errno; + unsigned int duplicated_fd; + + for (duplicated_fd = 0; + duplicated_fd < fds_to_close_bound * CHAR_BIT; + duplicated_fd++) + if ((fds_to_close[duplicated_fd / CHAR_BIT] + >> (duplicated_fd % CHAR_BIT)) + & 1) + close (duplicated_fd); + + errno = saved_errno; + } + +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (oldfd, result); +# endif + return result; +} +#endif /* W32 */ + +/* Forward declarations, because we '#undef fcntl' in the middle of this + compilation unit. */ +/* Our implementation of fcntl (fd, F_DUPFD, target). */ +static int rpl_fcntl_DUPFD (int fd, int target); +/* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ +static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); +#ifdef __KLIBC__ +/* Adds support for fcntl on directories. */ +static int klibc_fcntl (int fd, int action, /* arg */...); +#endif + + +/* Perform the specified ACTION on the file descriptor FD, possibly + using the argument ARG further described below. This replacement + handles the following actions, and forwards all others on to the + native fcntl. An unrecognized ACTION returns -1 with errno set to + EINVAL. + + F_DUPFD - duplicate FD, with int ARG being the minimum target fd. + If successful, return the duplicate, which will be inheritable; + otherwise return -1 and set errno. + + F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum + target fd. If successful, return the duplicate, which will not be + inheritable; otherwise return -1 and set errno. + + F_GETFD - ARG need not be present. If successful, return a + non-negative value containing the descriptor flags of FD (only + FD_CLOEXEC is portable, but other flags may be present); otherwise + return -1 and set errno. */ + +int +fcntl (int fd, int action, /* arg */...) +#undef fcntl +#ifdef __KLIBC__ +# define fcntl klibc_fcntl +#endif +{ + va_list arg; + int result = -1; + va_start (arg, action); + switch (action) + { + case F_DUPFD: + { + int target = va_arg (arg, int); + result = rpl_fcntl_DUPFD (fd, target); + break; + } + + case F_DUPFD_CLOEXEC: + { + int target = va_arg (arg, int); + result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); + break; + } + +#if !HAVE_FCNTL + case F_GETFD: + { +# if defined _WIN32 && ! defined __CYGWIN__ + HANDLE handle = (HANDLE) _get_osfhandle (fd); + DWORD flags; + if (handle == INVALID_HANDLE_VALUE + || GetHandleInformation (handle, &flags) == 0) + errno = EBADF; + else + result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; +# else /* !W32 */ + /* Use dup2 to reject invalid file descriptors. No way to + access this information, so punt. */ + if (0 <= dup2 (fd, fd)) + result = 0; +# endif /* !W32 */ + break; + } /* F_GETFD */ +#endif /* !HAVE_FCNTL */ + + /* Implementing F_SETFD on mingw is not trivial - there is no + API for changing the O_NOINHERIT bit on an fd, and merely + changing the HANDLE_FLAG_INHERIT bit on the underlying handle + can lead to odd state. It may be possible by duplicating the + handle, using _open_osfhandle with the right flags, then + using dup2 to move the duplicate onto the original, but that + is not supported for now. */ + + default: + { +#if HAVE_FCNTL + switch (action) + { + #ifdef F_BARRIERFSYNC /* macOS */ + case F_BARRIERFSYNC: + #endif + #ifdef F_CHKCLEAN /* macOS */ + case F_CHKCLEAN: + #endif + #ifdef F_CLOSEM /* NetBSD, HP-UX */ + case F_CLOSEM: + #endif + #ifdef F_FLUSH_DATA /* macOS */ + case F_FLUSH_DATA: + #endif + #ifdef F_FREEZE_FS /* macOS */ + case F_FREEZE_FS: + #endif + #ifdef F_FULLFSYNC /* macOS */ + case F_FULLFSYNC: + #endif + #ifdef F_GETCONFINED /* macOS */ + case F_GETCONFINED: + #endif + #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ + case F_GETDEFAULTPROTLEVEL: + #endif + #ifdef F_GETFD /* POSIX */ + case F_GETFD: + #endif + #ifdef F_GETFL /* POSIX */ + case F_GETFL: + #endif + #ifdef F_GETLEASE /* Linux */ + case F_GETLEASE: + #endif + #ifdef F_GETNOSIGPIPE /* macOS */ + case F_GETNOSIGPIPE: + #endif + #ifdef F_GETOWN /* POSIX */ + case F_GETOWN: + #endif + #ifdef F_GETPIPE_SZ /* Linux */ + case F_GETPIPE_SZ: + #endif + #ifdef F_GETPROTECTIONCLASS /* macOS */ + case F_GETPROTECTIONCLASS: + #endif + #ifdef F_GETPROTECTIONLEVEL /* macOS */ + case F_GETPROTECTIONLEVEL: + #endif + #ifdef F_GET_SEALS /* Linux */ + case F_GET_SEALS: + #endif + #ifdef F_GETSIG /* Linux */ + case F_GETSIG: + #endif + #ifdef F_MAXFD /* NetBSD */ + case F_MAXFD: + #endif + #ifdef F_RECYCLE /* macOS */ + case F_RECYCLE: + #endif + #ifdef F_SETFIFOENH /* HP-UX */ + case F_SETFIFOENH: + #endif + #ifdef F_THAW_FS /* macOS */ + case F_THAW_FS: + #endif + /* These actions take no argument. */ + result = fcntl (fd, action); + break; + + #ifdef F_ADD_SEALS /* Linux */ + case F_ADD_SEALS: + #endif + #ifdef F_BADFD /* Solaris */ + case F_BADFD: + #endif + #ifdef F_CHECK_OPENEVT /* macOS */ + case F_CHECK_OPENEVT: + #endif + #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ + case F_DUP2FD: + #endif + #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ + case F_DUP2FD_CLOEXEC: + #endif + #ifdef F_DUP2FD_CLOFORK /* Solaris */ + case F_DUP2FD_CLOFORK: + #endif + #ifdef F_DUPFD /* POSIX */ + case F_DUPFD: + #endif + #ifdef F_DUPFD_CLOEXEC /* POSIX */ + case F_DUPFD_CLOEXEC: + #endif + #ifdef F_DUPFD_CLOFORK /* Solaris */ + case F_DUPFD_CLOFORK: + #endif + #ifdef F_GETXFL /* Solaris */ + case F_GETXFL: + #endif + #ifdef F_GLOBAL_NOCACHE /* macOS */ + case F_GLOBAL_NOCACHE: + #endif + #ifdef F_MAKECOMPRESSED /* macOS */ + case F_MAKECOMPRESSED: + #endif + #ifdef F_MOVEDATAEXTENTS /* macOS */ + case F_MOVEDATAEXTENTS: + #endif + #ifdef F_NOCACHE /* macOS */ + case F_NOCACHE: + #endif + #ifdef F_NODIRECT /* macOS */ + case F_NODIRECT: + #endif + #ifdef F_NOTIFY /* Linux */ + case F_NOTIFY: + #endif + #ifdef F_OPLKACK /* IRIX */ + case F_OPLKACK: + #endif + #ifdef F_OPLKREG /* IRIX */ + case F_OPLKREG: + #endif + #ifdef F_RDAHEAD /* macOS */ + case F_RDAHEAD: + #endif + #ifdef F_SETBACKINGSTORE /* macOS */ + case F_SETBACKINGSTORE: + #endif + #ifdef F_SETCONFINED /* macOS */ + case F_SETCONFINED: + #endif + #ifdef F_SETFD /* POSIX */ + case F_SETFD: + #endif + #ifdef F_SETFL /* POSIX */ + case F_SETFL: + #endif + #ifdef F_SETLEASE /* Linux */ + case F_SETLEASE: + #endif + #ifdef F_SETNOSIGPIPE /* macOS */ + case F_SETNOSIGPIPE: + #endif + #ifdef F_SETOWN /* POSIX */ + case F_SETOWN: + #endif + #ifdef F_SETPIPE_SZ /* Linux */ + case F_SETPIPE_SZ: + #endif + #ifdef F_SETPROTECTIONCLASS /* macOS */ + case F_SETPROTECTIONCLASS: + #endif + #ifdef F_SETSIG /* Linux */ + case F_SETSIG: + #endif + #ifdef F_SINGLE_WRITER /* macOS */ + case F_SINGLE_WRITER: + #endif + /* These actions take an 'int' argument. */ + { + int x = va_arg (arg, int); + result = fcntl (fd, action, x); + } + break; + + default: + /* Other actions take a pointer argument. */ + { + void *p = va_arg (arg, void *); + result = fcntl (fd, action, p); + } + break; + } +#else + errno = EINVAL; +#endif + break; + } + } + va_end (arg); + return result; +} + +static int +rpl_fcntl_DUPFD (int fd, int target) +{ + int result; +#if !HAVE_FCNTL + result = dupfd (fd, target, 0); +#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR + /* Detect invalid target; needed for cygwin 1.5.x. */ + if (target < 0 || getdtablesize () <= target) + { + result = -1; + errno = EINVAL; + } + else + { + /* Haiku alpha 2 loses fd flags on original. */ + int flags = fcntl (fd, F_GETFD); + if (flags < 0) + result = -1; + else + { + result = fcntl (fd, F_DUPFD, target); + if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) + { + int saved_errno = errno; + close (result); + result = -1; + errno = saved_errno; + } +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + } +#else + result = fcntl (fd, F_DUPFD, target); +#endif + return result; +} + +static int +rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) +{ + int result; +#if !HAVE_FCNTL + result = dupfd (fd, target, O_CLOEXEC); +#else /* HAVE_FCNTL */ +# if defined __NetBSD__ || defined __HAIKU__ + /* On NetBSD 9.0, the system fcntl (fd, F_DUPFD_CLOEXEC, target) + has only the same effect as fcntl (fd, F_DUPFD, target). */ + /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets + the FD_CLOEXEC flag on fd, not on target. Therefore avoid the + system fcntl in this case. */ +# define have_dupfd_cloexec -1 +# else + /* Try the system call first, if the headers claim it exists + (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we + may be running with a glibc that has the macro but with an + older kernel that does not support it. Cache the + information on whether the system call really works, but + avoid caching failure if the corresponding F_DUPFD fails + for any reason. 0 = unknown, 1 = yes, -1 = no. */ + static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; + if (0 <= have_dupfd_cloexec) + { + result = fcntl (fd, F_DUPFD_CLOEXEC, target); + if (0 <= result || errno != EINVAL) + { + have_dupfd_cloexec = 1; +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + else + { + result = rpl_fcntl_DUPFD (fd, target); + if (result >= 0) + have_dupfd_cloexec = -1; + } + } + else +# endif + result = rpl_fcntl_DUPFD (fd, target); + if (0 <= result && have_dupfd_cloexec == -1) + { + int flags = fcntl (result, F_GETFD); + if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) + { + int saved_errno = errno; + close (result); + errno = saved_errno; + result = -1; + } + } +#endif /* HAVE_FCNTL */ + return result; +} + +#undef fcntl + +#ifdef __KLIBC__ + +static int +klibc_fcntl (int fd, int action, /* arg */...) +{ + va_list arg_ptr; + int arg; + struct stat sbuf; + int result; + + va_start (arg_ptr, action); + arg = va_arg (arg_ptr, int); + result = fcntl (fd, action, arg); + /* EPERM for F_DUPFD, ENOTSUP for others */ + if (result == -1 && (errno == EPERM || errno == ENOTSUP) + && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) + { + ULONG ulMode; + + switch (action) + { + case F_DUPFD: + /* Find available fd */ + while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) + arg++; + + result = dup2 (fd, arg); + break; + + /* Using underlying APIs is right ? */ + case F_GETFD: + if (DosQueryFHState (fd, &ulMode)) + break; + + result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; + break; + + case F_SETFD: + if (arg & ~FD_CLOEXEC) + break; + + if (DosQueryFHState (fd, &ulMode)) + break; + + if (arg & FD_CLOEXEC) + ulMode |= OPEN_FLAGS_NOINHERIT; + else + ulMode &= ~OPEN_FLAGS_NOINHERIT; + + /* Filter supported flags. */ + ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR + | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); + + if (DosSetFHState (fd, ulMode)) + break; + + result = 0; + break; + + case F_GETFL: + result = 0; + break; + + case F_SETFL: + if (arg != 0) + break; + + result = 0; + break; + + default: + errno = EINVAL; + break; + } + } + + va_end (arg_ptr); + + return result; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/fcntl.in.h b/3rdPartner/libiconv/srclib/fcntl.in.h new file mode 100644 index 0000000..9270ced --- /dev/null +++ b/3rdPartner/libiconv/srclib/fcntl.in.h @@ -0,0 +1,445 @@ +/* Like , but with non-working flags defined to 0. + + Copyright (C) 2006-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Paul Eggert */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_system_fcntl_h +/* Special invocation convention. */ + +/* Needed before . + May also define off_t to a 64-bit type on native Windows. */ +#include +/* On some systems other than glibc, is a prerequisite of + . On glibc systems, we would like to avoid namespace pollution. + But on glibc systems, includes inside an + extern "C" { ... } block, which leads to errors in C++ mode with the + overridden from gnulib. These errors are known to be gone + with g++ version >= 4.3. */ +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) +# include +#endif +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +/* Native Windows platforms declare open(), creat() in . */ +#if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ + && (defined _WIN32 && ! defined __CYGWIN__) +# include +#endif + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_FCNTL_H + +/* Needed before . + May also define off_t to a 64-bit type on native Windows. */ +#include +/* On some systems other than glibc, is a prerequisite of + . On glibc systems, we would like to avoid namespace pollution. + But on glibc systems, includes inside an + extern "C" { ... } block, which leads to errors in C++ mode with the + overridden from gnulib. These errors are known to be gone + with g++ version >= 4.3. */ +#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) +# include +#endif +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +/* Native Windows platforms declare open(), creat() in . */ +#if (@GNULIB_CREAT@ || @GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ + && (defined _WIN32 && ! defined __CYGWIN__) +# include +#endif + +#ifndef _@GUARD_PREFIX@_FCNTL_H +#define _@GUARD_PREFIX@_FCNTL_H + +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Declare overridden functions. */ + +#if @GNULIB_CREAT@ +# if @REPLACE_CREAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef creat +# define creat rpl_creat +# endif +_GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef creat +# define creat _creat +# endif +_GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); +# else +_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); +# endif +_GL_CXXALIASWARN (creat); +#elif defined GNULIB_POSIXCHECK +# undef creat +/* Assume creat is always declared. */ +_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " + "use gnulib module creat for portability"); +#elif @GNULIB_MDA_CREAT@ +/* On native Windows, map 'creat' to '_creat', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::creat always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef creat +# define creat _creat +# endif +/* Need to cast, because in mingw the last argument is 'int mode'. */ +_GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); +# else +_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); +# endif +_GL_CXXALIASWARN (creat); +#endif + +#if @GNULIB_FCNTL@ +# if @REPLACE_FCNTL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fcntl +# define fcntl rpl_fcntl +# endif +_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); +_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); +# if !GNULIB_defined_rpl_fcntl +# define GNULIB_defined_rpl_fcntl 1 +# endif +# else +# if !@HAVE_FCNTL@ +_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); +# if !GNULIB_defined_fcntl +# define GNULIB_defined_fcntl 1 +# endif +# endif +_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); +# endif +_GL_CXXALIASWARN (fcntl); +#elif defined GNULIB_POSIXCHECK +# undef fcntl +# if HAVE_RAW_DECL_FCNTL +_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " + "use gnulib module fcntl for portability"); +# endif +#endif + +#if @GNULIB_OPEN@ +# if @REPLACE_OPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef open +# define open rpl_open +# endif +_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef open +# define open _open +# endif +_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); +# else +_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); +# endif +/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a + default argument. _GL_CXXALIASWARN does not work in this case. */ +# if !defined __hpux +_GL_CXXALIASWARN (open); +# endif +#elif defined GNULIB_POSIXCHECK +# undef open +/* Assume open is always declared. */ +_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " + "use gnulib module open for portability"); +#elif @GNULIB_MDA_OPEN@ +/* On native Windows, map 'open' to '_open', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::open always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef open +# define open _open +# endif +_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); +# else +_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); +# endif +# if !defined __hpux +_GL_CXXALIASWARN (open); +# endif +#endif + +#if @GNULIB_OPENAT@ +# if @REPLACE_OPENAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef openat +# define openat rpl_openat +# endif +_GL_FUNCDECL_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# else +# if !@HAVE_OPENAT@ +_GL_FUNCDECL_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# endif +_GL_CXXALIASWARN (openat); +#elif defined GNULIB_POSIXCHECK +# undef openat +# if HAVE_RAW_DECL_OPENAT +_GL_WARN_ON_USE (openat, "openat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +/* Fix up the FD_* macros, only known to be missing on mingw. */ + +#ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +#endif + +/* Fix up the supported F_* macros. Intentionally leave other F_* + macros undefined. Only known to be missing on mingw. */ + +#ifndef F_DUPFD_CLOEXEC +# define F_DUPFD_CLOEXEC 0x40000000 +/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ +# define GNULIB_defined_F_DUPFD_CLOEXEC 1 +#else +# define GNULIB_defined_F_DUPFD_CLOEXEC 0 +#endif + +#ifndef F_DUPFD +# define F_DUPFD 1 +#endif + +#ifndef F_GETFD +# define F_GETFD 2 +#endif + +/* Fix up the O_* macros. */ + +/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT + to values outside 'int' range, so omit these misdefinitions. + But avoid namespace pollution on non-AIX systems. */ +#ifdef _AIX +# include +# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) +# undef O_CLOEXEC +# endif +# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) +# undef O_NOFOLLOW +# endif +# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) +# undef O_TTY_INIT +# endif +#endif + +#if !defined O_DIRECT && defined O_DIRECTIO +/* Tru64 spells it 'O_DIRECTIO'. */ +# define O_DIRECT O_DIRECTIO +#endif + +#if !defined O_CLOEXEC && defined O_NOINHERIT +/* Mingw spells it 'O_NOINHERIT'. */ +# define O_CLOEXEC O_NOINHERIT +#endif + +#ifndef O_CLOEXEC +# define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ +# define GNULIB_defined_O_CLOEXEC 1 +#else +# define GNULIB_defined_O_CLOEXEC 0 +#endif + +#ifndef O_DIRECT +# define O_DIRECT 0 +#endif + +#ifndef O_DIRECTORY +# define O_DIRECTORY 0 +#endif + +#ifndef O_DSYNC +# define O_DSYNC 0 +#endif + +#ifndef O_EXEC +# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ +#endif + +#ifndef O_IGNORE_CTTY +# define O_IGNORE_CTTY 0 +#endif + +#ifndef O_NDELAY +# define O_NDELAY 0 +#endif + +#ifndef O_NOATIME +# define O_NOATIME 0 +#endif + +#ifndef O_NONBLOCK +# define O_NONBLOCK O_NDELAY +#endif + +/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero + value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY + or to 0 as fallback. */ +#if @GNULIB_NONBLOCKING@ +# if O_NONBLOCK +# define GNULIB_defined_O_NONBLOCK 0 +# else +# define GNULIB_defined_O_NONBLOCK 1 +# undef O_NONBLOCK +# define O_NONBLOCK 0x40000000 +# endif +#endif + +#ifndef O_NOCTTY +# define O_NOCTTY 0 +#endif + +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif + +#ifndef O_NOLINK +# define O_NOLINK 0 +#endif + +#ifndef O_NOLINKS +# define O_NOLINKS 0 +#endif + +#ifndef O_NOTRANS +# define O_NOTRANS 0 +#endif + +#ifndef O_RSYNC +# define O_RSYNC 0 +#endif + +#ifndef O_SEARCH +# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ +#endif + +#ifndef O_SYNC +# define O_SYNC 0 +#endif + +#ifndef O_TTY_INIT +# define O_TTY_INIT 0 +#endif + +#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) +# undef O_ACCMODE +# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) +#endif + +/* For systems that distinguish between text and binary I/O. + O_BINARY is usually declared in fcntl.h */ +#if !defined O_BINARY && defined _O_BINARY + /* For MSC-compatible compilers. */ +# define O_BINARY _O_BINARY +# define O_TEXT _O_TEXT +#endif + +#if defined __BEOS__ || defined __HAIKU__ + /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ +# undef O_BINARY +# undef O_TEXT +#endif + +#ifndef O_BINARY +# define O_BINARY 0 +# define O_TEXT 0 +#endif + +/* Fix up the AT_* macros. */ + +/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its + value exceeds INT_MAX, so its use as an int doesn't conform to the + C standard, and GCC and Sun C complain in some cases. If the bug + is present, undef AT_FDCWD here, so it can be redefined below. */ +#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 +# undef AT_FDCWD +#endif + +/* Use the same bit pattern as Solaris 9, but with the proper + signedness. The bit pattern is important, in case this actually is + Solaris with the above workaround. */ +#ifndef AT_FDCWD +# define AT_FDCWD (-3041965) +#endif + +/* Use the same values as Solaris 9. This shouldn't matter, but + there's no real reason to differ. */ +#ifndef AT_SYMLINK_NOFOLLOW +# define AT_SYMLINK_NOFOLLOW 4096 +#endif + +#ifndef AT_REMOVEDIR +# define AT_REMOVEDIR 1 +#endif + +/* Solaris 9 lacks these two, so just pick unique values. */ +#ifndef AT_SYMLINK_FOLLOW +# define AT_SYMLINK_FOLLOW 2 +#endif + +#ifndef AT_EACCESS +# define AT_EACCESS 4 +#endif + +/* Ignore this flag if not supported. */ +#ifndef AT_NO_AUTOMOUNT +# define AT_NO_AUTOMOUNT 0 +#endif + +#endif /* _@GUARD_PREFIX@_FCNTL_H */ +#endif /* _@GUARD_PREFIX@_FCNTL_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/fd-hook.c b/3rdPartner/libiconv/srclib/fd-hook.c new file mode 100644 index 0000000..64a7a80 --- /dev/null +++ b/3rdPartner/libiconv/srclib/fd-hook.c @@ -0,0 +1,116 @@ +/* Hook for making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2009. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include "fd-hook.h" + +#include + +/* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ +#if WINDOWS_SOCKETS + +/* The first and last link in the doubly linked list. + Initially the list is empty. */ +static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; + +int +execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, + int fd) +{ + if (remaining_list == &anchor) + /* End of list reached. */ + return primary (fd); + else + return remaining_list->private_close_fn (remaining_list->private_next, + primary, fd); +} + +int +execute_all_close_hooks (gl_close_fn primary, int fd) +{ + return execute_close_hooks (anchor.private_next, primary, fd); +} + +int +execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, + int fd, int request, void *arg) +{ + if (remaining_list == &anchor) + /* End of list reached. */ + return primary (fd, request, arg); + else + return remaining_list->private_ioctl_fn (remaining_list->private_next, + primary, fd, request, arg); +} + +int +execute_all_ioctl_hooks (gl_ioctl_fn primary, + int fd, int request, void *arg) +{ + return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); +} + +void +register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) +{ + if (close_hook == NULL) + close_hook = execute_close_hooks; + if (ioctl_hook == NULL) + ioctl_hook = execute_ioctl_hooks; + + if (link->private_next == NULL && link->private_prev == NULL) + { + /* Add the link to the doubly linked list. */ + link->private_next = anchor.private_next; + link->private_prev = &anchor; + link->private_close_fn = close_hook; + link->private_ioctl_fn = ioctl_hook; + anchor.private_next->private_prev = link; + anchor.private_next = link; + } + else + { + /* The link is already in use. */ + if (link->private_close_fn != close_hook + || link->private_ioctl_fn != ioctl_hook) + abort (); + } +} + +void +unregister_fd_hook (struct fd_hook *link) +{ + struct fd_hook *next = link->private_next; + struct fd_hook *prev = link->private_prev; + + if (next != NULL && prev != NULL) + { + /* The link is in use. Remove it from the doubly linked list. */ + prev->private_next = next; + next->private_prev = prev; + /* Clear the link, to mark it unused. */ + link->private_next = NULL; + link->private_prev = NULL; + link->private_close_fn = NULL; + link->private_ioctl_fn = NULL; + } +} + +#endif diff --git a/3rdPartner/libiconv/srclib/fd-hook.h b/3rdPartner/libiconv/srclib/fd-hook.h new file mode 100644 index 0000000..d6c4964 --- /dev/null +++ b/3rdPartner/libiconv/srclib/fd-hook.h @@ -0,0 +1,119 @@ +/* Hook for making file descriptor functions close(), ioctl() extensible. + Copyright (C) 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + + +#ifndef FD_HOOK_H +#define FD_HOOK_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ +#if WINDOWS_SOCKETS + + +/* Type of function that closes FD. */ +typedef int (*gl_close_fn) (int fd); + +/* Type of function that applies a control request to FD. */ +typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); + +/* An element of the list of file descriptor hooks. + In CLOS (Common Lisp Object System) speak, it consists of an "around" + method for the close() function and an "around" method for the ioctl() + function. + The fields of this structure are considered private. */ +struct fd_hook +{ + /* Doubly linked list. */ + struct fd_hook *private_next; + struct fd_hook *private_prev; + /* Function that treats the types of FD that it knows about and calls + execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ + int (*private_close_fn) (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + /* Function that treats the types of FD that it knows about and calls + execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a + fallback. */ + int (*private_ioctl_fn) (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); +}; + +/* This type of function closes FD, applying special knowledge for the FD + types it knows about, and calls + execute_close_hooks (REMAINING_LIST, PRIMARY, FD) + for the other FD types. + In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, + and PRIMARY is the "primary" method for close(). */ +typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + +/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. + Return 0 or -1, like close() would do. */ +extern int execute_close_hooks (const struct fd_hook *remaining_list, + gl_close_fn primary, + int fd); + +/* Execute all close hooks, with PRIMARY as "primary" method. + Return 0 or -1, like close() would do. */ +extern int execute_all_close_hooks (gl_close_fn primary, int fd); + +/* This type of function applies a control request to FD, applying special + knowledge for the FD types it knows about, and calls + execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) + for the other FD types. + In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, + and PRIMARY is the "primary" method for ioctl(). */ +typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); + +/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. + Return 0 or -1, like ioctl() would do. */ +extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, + gl_ioctl_fn primary, + int fd, int request, void *arg); + +/* Execute all ioctl hooks, with PRIMARY as "primary" method. + Return 0 or -1, like ioctl() would do. */ +extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, + int fd, int request, void *arg); + +/* Add a function pair to the list of file descriptor hooks. + CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. + The LINK variable points to a piece of memory which is guaranteed to be + accessible until the corresponding call to unregister_fd_hook. */ +extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, + struct fd_hook *link); + +/* Removes a hook from the list of file descriptor hooks. */ +extern void unregister_fd_hook (struct fd_hook *link); + + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* FD_HOOK_H */ diff --git a/3rdPartner/libiconv/srclib/filename.h b/3rdPartner/libiconv/srclib/filename.h new file mode 100644 index 0000000..ab77ca2 --- /dev/null +++ b/3rdPartner/libiconv/srclib/filename.h @@ -0,0 +1,112 @@ +/* Basic filename support macros. + Copyright (C) 2001-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +/* From Paul Eggert and Jim Meyering. */ + +#ifndef _FILENAME_H +#define _FILENAME_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Filename support. + ISSLASH(C) tests whether C is a directory separator + character. + HAS_DEVICE(Filename) tests whether Filename contains a device + specification. + FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification + at the beginning of Filename, + index of the part consisting of + alternating components and slashes. + FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE + 1 when a non-empty device specification + can be followed by an empty or relative + part, + 0 when a non-empty device specification + must be followed by a slash, + 0 when device specification don't exist. + IS_ABSOLUTE_FILE_NAME(Filename) + tests whether Filename is independent of + any notion of "current directory". + IS_RELATIVE_FILE_NAME(Filename) + tests whether Filename may be concatenated + to a directory filename. + Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a + relative file name! + IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device + or directory specification. + */ +#if defined _WIN32 || defined __CYGWIN__ \ + || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ + /* Native Windows, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') + /* Internal macro: Tests whether a character is a drive letter. */ +# define _IS_DRIVE_LETTER(C) \ + (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) + /* Help the compiler optimizing it. This assumes ASCII. */ +# undef _IS_DRIVE_LETTER +# define _IS_DRIVE_LETTER(C) \ + (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') +# define HAS_DEVICE(Filename) \ + (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') +# define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) +# ifdef __CYGWIN__ +# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 +# else + /* On native Windows, OS/2, DOS, the system has the notion of a + "current directory" on each drive. */ +# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 +# endif +# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE +# define IS_ABSOLUTE_FILE_NAME(Filename) \ + ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) +# else +# define IS_ABSOLUTE_FILE_NAME(Filename) \ + (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) +# endif +# define IS_RELATIVE_FILE_NAME(Filename) \ + (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) +# define IS_FILE_NAME_WITH_DIR(Filename) \ + (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ + || HAS_DEVICE (Filename)) +#else + /* Unix */ +# define ISSLASH(C) ((C) == '/') +# define HAS_DEVICE(Filename) ((void) (Filename), 0) +# define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) +# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 +# define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) +# define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) +# define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) +#endif + +/* Deprecated macros. For backward compatibility with old users of the + 'filename' module. */ +#define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME +#define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR + + +#ifdef __cplusplus +} +#endif + +#endif /* _FILENAME_H */ diff --git a/3rdPartner/libiconv/srclib/free.c b/3rdPartner/libiconv/srclib/free.c new file mode 100644 index 0000000..86ebe6c --- /dev/null +++ b/3rdPartner/libiconv/srclib/free.c @@ -0,0 +1,53 @@ +/* Make free() preserve errno. + + Copyright (C) 2003, 2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Paul Eggert */ + +#include + +/* Specification. */ +#include + +/* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ +#if !HAVE_FREE_POSIX + +# include + +void +rpl_free (void *p) +# undef free +{ +# if defined __GNUC__ && !defined __clang__ + /* An invalid GCC optimization + + would optimize away the assignments in the code below, when link-time + optimization (LTO) is enabled. Make the code more complicated, so that + GCC does not grok how to optimize it. */ + int err[2]; + err[0] = errno; + err[1] = errno; + errno = 0; + free (p); + errno = err[errno == 0]; +# else + int err = errno; + free (p); + errno = err; +# endif +} + +#endif diff --git a/3rdPartner/libiconv/srclib/fstat.c b/3rdPartner/libiconv/srclib/fstat.c new file mode 100644 index 0000000..3928c86 --- /dev/null +++ b/3rdPartner/libiconv/srclib/fstat.c @@ -0,0 +1,94 @@ +/* fstat() replacement. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* If the user's config.h happens to include , let it include only + the system's here, so that orig_fstat doesn't recurse to + rpl_fstat. */ +#define __need_system_sys_stat_h +#include + +/* Get the original definition of fstat. It might be defined as a macro. */ +#include +#include +#undef __need_system_sys_stat_h + +#if defined _WIN32 && ! defined __CYGWIN__ +# define WINDOWS_NATIVE +#endif + +#if !defined WINDOWS_NATIVE + +static int +orig_fstat (int fd, struct stat *buf) +{ + return fstat (fd, buf); +} + +#endif + +/* Specification. */ +#ifdef __osf__ +/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc + eliminates this include because of the preliminary #include + above. */ +# include "sys/stat.h" +#else +# include +#endif + +#include "stat-time.h" + +#include +#include +#ifdef WINDOWS_NATIVE +# define WIN32_LEAN_AND_MEAN +# include +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif +# include "stat-w32.h" +#endif + +int +rpl_fstat (int fd, struct stat *buf) +{ +#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY + /* Handle the case when rpl_open() used a dummy file descriptor to work + around an open() that can't normally visit directories. */ + const char *name = _gl_directory_name (fd); + if (name != NULL) + return stat (name, buf); +#endif + +#ifdef WINDOWS_NATIVE + /* Fill the fields ourselves, because the original fstat function returns + values for st_atime, st_mtime, st_ctime that depend on the current time + zone. See + */ + HANDLE h = (HANDLE) _get_osfhandle (fd); + + if (h == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + return _gl_fstat_by_handle (h, NULL, buf); +#else + return stat_time_normalize (orig_fstat (fd, buf), buf); +#endif +} diff --git a/3rdPartner/libiconv/srclib/getdtablesize.c b/3rdPartner/libiconv/srclib/getdtablesize.c new file mode 100644 index 0000000..793e0f8 --- /dev/null +++ b/3rdPartner/libiconv/srclib/getdtablesize.c @@ -0,0 +1,124 @@ +/* getdtablesize() function: Return maximum possible file descriptor value + 1. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#if defined _WIN32 && ! defined __CYGWIN__ + +# include + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +# endif + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static int +_setmaxstdio_nothrow (int newmax) +{ + int result; + + TRY_MSVC_INVAL + { + result = _setmaxstdio (newmax); + } + CATCH_MSVC_INVAL + { + result = -1; + } + DONE_MSVC_INVAL; + + return result; +} +# else +# define _setmaxstdio_nothrow _setmaxstdio +# endif + +/* Cache for the previous getdtablesize () result. Safe to cache because + Windows also lacks setrlimit. */ +static int dtablesize; + +int +getdtablesize (void) +{ + if (dtablesize == 0) + { + /* We are looking for the number N such that the valid file descriptors + are 0..N-1. It can be obtained through a loop as follows: + { + int fd; + for (fd = 3; fd < 65536; fd++) + if (dup2 (0, fd) == -1) + break; + return fd; + } + On Windows XP, the result is 2048. + The drawback of this loop is that it allocates memory for a libc + internal array that is never freed. + + The number N can also be obtained as the upper bound for + _getmaxstdio (). _getmaxstdio () returns the maximum number of open + FILE objects. The sanity check in _setmaxstdio reveals the maximum + number of file descriptors. This too allocates memory, but it is + freed when we call _setmaxstdio with the original value. */ + int orig_max_stdio = _getmaxstdio (); + unsigned int bound; + for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) + ; + _setmaxstdio_nothrow (orig_max_stdio); + dtablesize = bound; + } + return dtablesize; +} + +#else + +# include +# include + +# ifndef RLIM_SAVED_CUR +# define RLIM_SAVED_CUR RLIM_INFINITY +# endif +# ifndef RLIM_SAVED_MAX +# define RLIM_SAVED_MAX RLIM_INFINITY +# endif + +# ifdef __CYGWIN__ + /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it + hits the compile-time constant hard limit of 3200. We might as + well just report the hard limit. */ +# define rlim_cur rlim_max +# endif + +int +getdtablesize (void) +{ + struct rlimit lim; + + if (getrlimit (RLIMIT_NOFILE, &lim) == 0 + && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX + && lim.rlim_cur != RLIM_INFINITY + && lim.rlim_cur != RLIM_SAVED_CUR + && lim.rlim_cur != RLIM_SAVED_MAX) + return lim.rlim_cur; + + return INT_MAX; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/getprogname.c b/3rdPartner/libiconv/srclib/getprogname.c new file mode 100644 index 0000000..62a4800 --- /dev/null +++ b/3rdPartner/libiconv/srclib/getprogname.c @@ -0,0 +1,302 @@ +/* Program name management. + Copyright (C) 2016-2022 Free Software Foundation, Inc. + + This program 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 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#include + +/* Specification. */ +#include "getprogname.h" + +#include /* get program_invocation_name declaration */ +#include /* get __argv declaration */ + +#ifdef _AIX +# include +# include +# include +#endif + +#ifdef __MVS__ +# ifndef _OPEN_SYS +# define _OPEN_SYS +# endif +# include +# include +#endif + +#ifdef __hpux +# include +# include +# include +# include +#endif + +#if defined __sgi || defined __osf__ +# include +# include +# include +# include +# include +#endif + +#if defined __SCO_VERSION__ || defined __sysv5__ +# include +# include +# include +#endif + +#include "basename-lgpl.h" + +#ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ +char const * +getprogname (void) +{ +# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ + /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ + return program_invocation_short_name; +# elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ + /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ + return last_component (program_invocation_name); +# elif HAVE_GETEXECNAME /* Solaris */ + /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ + const char *p = getexecname (); + if (!p) + p = "?"; + return last_component (p); +# elif HAVE_DECL___ARGV /* mingw, MSVC */ + /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */ + const char *p = __argv && __argv[0] ? __argv[0] : "?"; + return last_component (p); +# elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ + /* https://man.openbsd.org/style.9 */ + /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ + /* Be careful to declare this only when we absolutely need it + (OpenBSD 5.1), rather than when it's available. Otherwise, + its mere declaration makes program_invocation_short_name + malfunction (have zero length) with Fedora 25's glibc. */ + extern char *__progname; + const char *p = __progname; +# if defined __ANDROID__ + return last_component (p); +# else + return p && p[0] ? p : "?"; +# endif +# elif _AIX /* AIX */ + /* Idea by Bastien ROUCARIÈS, + https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html + Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm + */ + static char *p; + static int first = 1; + if (first) + { + first = 0; + pid_t pid = getpid (); + struct procentry64 procs; + p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) + ? strdup (procs.pi_comm) + : NULL); + if (!p) + p = "?"; + } + return p; +# elif defined __hpux + static char *p; + static int first = 1; + if (first) + { + first = 0; + pid_t pid = getpid (); + struct pst_status status; + if (pstat_getproc (&status, sizeof status, 0, pid) > 0) + { + char *ucomm = status.pst_ucomm; + char *cmd = status.pst_cmd; + if (strlen (ucomm) < PST_UCOMMLEN - 1) + p = ucomm; + else + { + /* ucomm is truncated to length PST_UCOMMLEN - 1. + Look at cmd instead. */ + char *space = strchr (cmd, ' '); + if (space != NULL) + *space = '\0'; + p = strrchr (cmd, '/'); + if (p != NULL) + p++; + else + p = cmd; + if (strlen (p) > PST_UCOMMLEN - 1 + && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) + /* p is less truncated than ucomm. */ + ; + else + p = ucomm; + } + p = strdup (p); + } + else + { +# if !defined __LP64__ + /* Support for 32-bit programs running in 64-bit HP-UX. + The documented way to do this is to use the same source code + as above, but in a compilation unit where '#define _PSTAT64 1' + is in effect. I prefer a single compilation unit; the struct + size and the offsets are not going to change. */ + char status64[1216]; + if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) + { + char *ucomm = status64 + 288; + char *cmd = status64 + 168; + if (strlen (ucomm) < PST_UCOMMLEN - 1) + p = ucomm; + else + { + /* ucomm is truncated to length PST_UCOMMLEN - 1. + Look at cmd instead. */ + char *space = strchr (cmd, ' '); + if (space != NULL) + *space = '\0'; + p = strrchr (cmd, '/'); + if (p != NULL) + p++; + else + p = cmd; + if (strlen (p) > PST_UCOMMLEN - 1 + && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) + /* p is less truncated than ucomm. */ + ; + else + p = ucomm; + } + p = strdup (p); + } + else +# endif + p = NULL; + } + if (!p) + p = "?"; + } + return p; +# elif __MVS__ /* z/OS */ + /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ + static char *p = "?"; + static int first = 1; + if (first) + { + pid_t pid = getpid (); + int token; + W_PSPROC buf; + first = 0; + memset (&buf, 0, sizeof(buf)); + buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); + buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); + buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); + if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) + { + for (token = 0; token >= 0; + token = w_getpsent (token, &buf, sizeof(buf))) + { + if (token > 0 && buf.ps_pid == pid) + { + char *s = strdup (last_component (buf.ps_pathptr)); + if (s) + p = s; + break; + } + } + } + free (buf.ps_cmdptr); + free (buf.ps_conttyptr); + free (buf.ps_pathptr); + } + return p; +# elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ + char filename[50]; + int fd; + + # if defined __sgi + sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); + # else + sprintf (filename, "/proc/%d", (int) getpid ()); + # endif + fd = open (filename, O_RDONLY | O_CLOEXEC); + if (0 <= fd) + { + prpsinfo_t buf; + int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); + close (fd); + if (ioctl_ok) + { + char *name = buf.pr_fname; + size_t namesize = sizeof buf.pr_fname; + /* It may not be NUL-terminated. */ + char *namenul = memchr (name, '\0', namesize); + size_t namelen = namenul ? namenul - name : namesize; + char *namecopy = malloc (namelen + 1); + if (namecopy) + { + namecopy[namelen] = '\0'; + return memcpy (namecopy, name, namelen); + } + } + } + return NULL; +# elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */ + char buf[80]; + int fd; + sprintf (buf, "/proc/%d/cmdline", getpid()); + fd = open (buf, O_RDONLY); + if (0 <= fd) + { + size_t n = read (fd, buf, 79); + if (n > 0) + { + buf[n] = '\0'; /* Guarantee null-termination */ + char *progname; + progname = strrchr (buf, '/'); + if (progname) + { + progname = progname + 1; /* Skip the '/' */ + } + else + { + progname = buf; + } + char *ret; + ret = malloc (strlen (progname) + 1); + if (ret) + { + strcpy (ret, progname); + return ret; + } + } + close (fd); + } + return "?"; +# else +# error "getprogname module not ported to this OS" +# endif +} + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/3rdPartner/libiconv/srclib/getprogname.h b/3rdPartner/libiconv/srclib/getprogname.h new file mode 100644 index 0000000..9a35e58 --- /dev/null +++ b/3rdPartner/libiconv/srclib/getprogname.h @@ -0,0 +1,40 @@ +/* Program name management. + Copyright (C) 2016-2022 Free Software Foundation, Inc. + + This program 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 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _GL_GETPROGNAME_H +#define _GL_GETPROGNAME_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Return the base name of the executing program. + On native Windows this will usually end in ".exe" or ".EXE". */ +#ifndef HAVE_GETPROGNAME +extern char const *getprogname (void) +# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME + _GL_ATTRIBUTE_PURE +# endif + ; +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/3rdPartner/libiconv/srclib/gettext.h b/3rdPartner/libiconv/srclib/gettext.h new file mode 100644 index 0000000..b3577a0 --- /dev/null +++ b/3rdPartner/libiconv/srclib/gettext.h @@ -0,0 +1,300 @@ +/* Convenience header for conditional use of GNU . + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _LIBGETTEXT_H +#define _LIBGETTEXT_H 1 + +/* NLS can be disabled through the configure --disable-nls option + or through "#define ENABLE NLS 0" before including this file. */ +#if defined ENABLE_NLS && ENABLE_NLS + +/* Get declarations of GNU message catalog functions. */ +# include + +/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by + the gettext() and ngettext() macros. This is an alternative to calling + textdomain(), and is useful for libraries. */ +# ifdef DEFAULT_TEXT_DOMAIN +# undef gettext +# define gettext(Msgid) \ + dgettext (DEFAULT_TEXT_DOMAIN, Msgid) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) +# endif + +#else + +/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which + chokes if dcgettext is defined as a macro. So include it now, to make + later inclusions of a NOP. We don't include + as well because people using "gettext.h" will not include , + and also including would fail on SunOS 4, whereas + is OK. */ +#if defined(__sun) +# include +#endif + +/* Many header files from the libstdc++ coming with g++ 3.3 or newer include + , which chokes if dcgettext is defined as a macro. So include + it now, to make later inclusions of a NOP. */ +#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) +# include +# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H +# include +# endif +#endif + +/* Disabled NLS. + The casts to 'const char *' serve the purpose of producing warnings + for invalid uses of the value returned from these functions. + On pre-ANSI systems without 'const', the config.h file is supposed to + contain "#define const". */ +# undef gettext +# define gettext(Msgid) ((const char *) (Msgid)) +# undef dgettext +# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) +# undef dcgettext +# define dcgettext(Domainname, Msgid, Category) \ + ((void) (Category), dgettext (Domainname, Msgid)) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + ((N) == 1 \ + ? ((void) (Msgid2), (const char *) (Msgid1)) \ + : ((void) (Msgid1), (const char *) (Msgid2))) +# undef dngettext +# define dngettext(Domainname, Msgid1, Msgid2, N) \ + ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) +# undef dcngettext +# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ + ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) +# undef textdomain +# define textdomain(Domainname) ((const char *) (Domainname)) +# undef bindtextdomain +# define bindtextdomain(Domainname, Dirname) \ + ((void) (Domainname), (const char *) (Dirname)) +# undef bind_textdomain_codeset +# define bind_textdomain_codeset(Domainname, Codeset) \ + ((void) (Domainname), (const char *) (Codeset)) + +#endif + +/* Prefer gnulib's setlocale override over libintl's setlocale override. */ +#ifdef GNULIB_defined_setlocale +# undef setlocale +# define setlocale rpl_setlocale +#endif + +/* A pseudo function call that serves as a marker for the automated + extraction of messages, but does not call gettext(). The run-time + translation is done at a different place in the code. + The argument, String, should be a literal string. Concatenated strings + and other string expressions won't work. + The macro's expansion is not parenthesized, so that it is suitable as + initializer for static 'char[]' or 'const char[]' variables. */ +#define gettext_noop(String) String + +/* The separator between msgctxt and msgid in a .mo file. */ +#define GETTEXT_CONTEXT_GLUE "\004" + +/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a + MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be + short and rarely need to change. + The letter 'p' stands for 'particular' or 'special'. */ +#ifdef DEFAULT_TEXT_DOMAIN +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#else +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#endif +#define dpgettext(Domainname, Msgctxt, Msgid) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) +#ifdef DEFAULT_TEXT_DOMAIN +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#else +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#endif +#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) + +#if defined __GNUC__ || defined __clang__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +pgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + int category) +{ + const char *translation = dcgettext (domain, msg_ctxt_id, category); + if (translation == msg_ctxt_id) + return msgid; + else + return translation; +} + +#if defined __GNUC__ || defined __clang__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +npgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + const char *translation = + dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); + if (translation == msg_ctxt_id || translation == msgid_plural) + return (n == 1 ? msgid : msgid_plural); + else + return translation; +} + +/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID + can be arbitrary expressions. But for string literals these macros are + less efficient than those above. */ + +#include + +/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. + This relates to the -Wvla and -Wvla-larger-than warnings, enabled in + the default GCC many warnings set. This allows programs to disable use + of VLAs, which may be unintended, or may be awkward to support portably, + or may have security implications due to non-deterministic stack usage. */ + +#if (!defined GNULIB_NO_VLA \ + && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ + && !defined __STDC_NO_VLA__) +# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 +#else +# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 +#endif + +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS +#include +#endif + +#define pgettext_expr(Msgctxt, Msgid) \ + dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) +#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ + dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) + +#if defined __GNUC__ || defined __clang__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + int found_translation; + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcgettext (domain, msg_ctxt_id, category); + found_translation = (translation != msg_ctxt_id); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (found_translation) + return translation; + } + return msgid; +} + +#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) + +#if defined __GNUC__ || defined __clang__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcnpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + int found_translation; + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); + found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (found_translation) + return translation; + } + return (n == 1 ? msgid : msgid_plural); +} + +#endif /* _LIBGETTEXT_H */ diff --git a/3rdPartner/libiconv/srclib/idx.h b/3rdPartner/libiconv/srclib/idx.h new file mode 100644 index 0000000..c3669dd --- /dev/null +++ b/3rdPartner/libiconv/srclib/idx.h @@ -0,0 +1,134 @@ +/* A type for indices and sizes. + Copyright (C) 2020-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _IDX_H +#define _IDX_H + +/* Get ptrdiff_t. */ +#include + +/* Get PTRDIFF_MAX. */ +#include + +/* The type 'idx_t' holds an (array) index or an (object) size. + Its implementation promotes to a signed integer type, + which can hold the values + 0..2^63-1 (on 64-bit platforms) or + 0..2^31-1 (on 32-bit platforms). + + Why a signed integer type? + + * Security: Signed types can be checked for overflow via + '-fsanitize=undefined', but unsigned types cannot. + + * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few + surprising results for comparisons, such as + + (int) -3 < (unsigned long) 7 => false + (int) -3 < (unsigned int) 7 => false + and on 32-bit machines: + (long) -3 < (unsigned int) 7 => false + + This is surprising because the natural comparison order is by + value in the realm of infinite-precision signed integers (ℤ). + + The best way to get rid of such surprises is to use signed types + for numerical integer values, and use unsigned types only for + bit masks and enums. + + Why not use 'size_t' directly? + + * Because 'size_t' is an unsigned type, and a signed type is better. + See above. + + Why not use 'ssize_t'? + + * 'ptrdiff_t' is more portable; it is standardized by ISO C + whereas 'ssize_t' is standardized only by POSIX. + + * 'ssize_t' is not required to be as wide as 'size_t', and some + now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. + + * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider + than 'size_t', which can be a win and conforms to POSIX. + + Won't this cause a problem with objects larger than PTRDIFF_MAX? + + * Typical modern or large platforms do not allocate such objects, + so this is not much of a problem in practice; for example, you + can safely write 'idx_t len = strlen (s);'. To port to older + small platforms where allocations larger than PTRDIFF_MAX could + in theory be a problem, you can use Gnulib's ialloc module, or + functions like ximalloc in Gnulib's xalloc module. + + Why not use 'ptrdiff_t' directly? + + * Maintainability: When reading and modifying code, it helps to know that + a certain variable cannot have negative values. For example, when you + have a loop + + int n = ...; + for (int i = 0; i < n; i++) ... + + or + + ptrdiff_t n = ...; + for (ptrdiff_t i = 0; i < n; i++) ... + + you have to ask yourself "what if n < 0?". Whereas in + + idx_t n = ...; + for (idx_t i = 0; i < n; i++) ... + + you know that this case cannot happen. + + Similarly, when a programmer writes + + idx_t = ptr2 - ptr1; + + there is an implied assertion that ptr1 and ptr2 point into the same + object and that ptr1 <= ptr2. + + * Being future-proof: In the future, range types (integers which are + constrained to a certain range of values) may be added to C compilers + or to the C standard. Several programming languages (Ada, Haskell, + Common Lisp, Pascal) already have range types. Such range types may + help producing good code and good warnings. The type 'idx_t' could + then be typedef'ed to a range type that is signed after promotion. */ + +/* In the future, idx_t could be typedef'ed to a signed range type. + The clang "extended integer types", supported in Clang 11 or newer + , + are a special case of range types. However, these types don't support binary + operators with plain integer types (e.g. expressions such as x > 1). + Therefore, they don't behave like signed types (and not like unsigned types + either). So, we cannot use them here. */ + +/* Use the signed type 'ptrdiff_t'. */ +/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same + size, but it is so on all platforms we have seen since 1990. */ +typedef ptrdiff_t idx_t; + +/* IDX_MAX is the maximum value of an idx_t. */ +#define IDX_MAX PTRDIFF_MAX + +/* So far no need has been found for an IDX_WIDTH macro. + Perhaps there should be another macro IDX_VALUE_BITS that does not + count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ + +#endif /* _IDX_H */ diff --git a/3rdPartner/libiconv/srclib/intprops.h b/3rdPartner/libiconv/srclib/intprops.h new file mode 100644 index 0000000..d4a917f --- /dev/null +++ b/3rdPartner/libiconv/srclib/intprops.h @@ -0,0 +1,642 @@ +/* intprops.h -- properties of integer types + + Copyright (C) 2001-2022 Free Software Foundation, Inc. + + This program 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 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + + +#ifndef _GL_INTPROPS_H +#define _GL_INTPROPS_H + +#include + +/* Return a value with the common real type of E and V and the value of V. + Do not evaluate E. */ +#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) + +/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see + . */ +#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) + +/* The extra casts in the following macros work around compiler bugs, + e.g., in Cray C 5.0.3.0. */ + +/* True if the arithmetic type T is an integer type. bool counts as + an integer. */ +#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) + +/* True if the real type T is signed. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + +/* Return 1 if the real expression E, after promotion, has a + signed or floating type. Do not evaluate E. */ +#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) + + +/* Minimum and maximum values for integer types and expressions. */ + +/* The width in bits of the integer type or expression T. + Do not evaluate T. T must not be a bit-field expression. + Padding bits are not supported; this is checked at compile-time below. */ +#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) + +/* The maximum and minimum values for the integer type T. */ +#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) +#define TYPE_MAXIMUM(t) \ + ((t) (! TYPE_SIGNED (t) \ + ? (t) -1 \ + : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) + +/* The maximum and minimum values for the type of the expression E, + after integer promotion. E is not evaluated. */ +#define _GL_INT_MINIMUM(e) \ + (EXPR_SIGNED (e) \ + ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_CONVERT (e, 0)) +#define _GL_INT_MAXIMUM(e) \ + (EXPR_SIGNED (e) \ + ? _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_NEGATE_CONVERT (e, 1)) +#define _GL_SIGNED_INT_MAXIMUM(e) \ + (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) + +/* Work around OpenVMS incompatibility with C99. */ +#if !defined LLONG_MAX && defined __INT64_MAX +# define LLONG_MAX __INT64_MAX +# define LLONG_MIN __INT64_MIN +#endif + +/* This include file assumes that signed types are two's complement without + padding bits; the above macros have undefined behavior otherwise. + If this is a problem for you, please let us know how to fix it for your host. + This assumption is tested by the intprops-tests module. */ + +/* Does the __typeof__ keyword work? This could be done by + 'configure', but for now it's easier to do it by hand. */ +#if (2 <= __GNUC__ \ + || (4 <= __clang_major__) \ + || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ + || (0x5110 <= __SUNPRO_C && !__STDC__)) +# define _GL_HAVE___TYPEOF__ 1 +#else +# define _GL_HAVE___TYPEOF__ 0 +#endif + +/* Return 1 if the integer type or expression T might be signed. Return 0 + if it is definitely unsigned. T must not be a bit-field expression. + This macro does not evaluate its argument, and expands to an + integer constant expression. */ +#if _GL_HAVE___TYPEOF__ +# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) +#else +# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 +#endif + +/* Bound on length of the string representing an unsigned integer + value representable in B bits. log10 (2.0) < 146/485. The + smallest value of B where this bound is not tight is 2621. */ +#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) + +/* Bound on length of the string representing an integer type or expression T. + T must not be a bit-field expression. + + Subtract 1 for the sign bit if T is signed, and then add 1 more for + a minus sign if needed. + + Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is + unsigned, this macro may overestimate the true bound by one byte when + applied to unsigned types of size 2, 4, 16, ... bytes. */ +#define INT_STRLEN_BOUND(t) \ + (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + + _GL_SIGNED_TYPE_OR_EXPR (t)) + +/* Bound on buffer size needed to represent an integer type or expression T, + including the terminating null. T must not be a bit-field expression. */ +#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) + + +/* Range overflow checks. + + The INT__RANGE_OVERFLOW macros return 1 if the corresponding C + operators might not yield numerically correct answers due to + arithmetic overflow. They do not rely on undefined or + implementation-defined behavior. Their implementations are simple + and straightforward, but they are harder to use and may be less + efficient than the INT__WRAPV, INT__OK, and + INT__OVERFLOW macros described below. + + Example usage: + + long int i = ...; + long int j = ...; + if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) + printf ("multiply would overflow"); + else + printf ("product is %ld", i * j); + + Restrictions on *_RANGE_OVERFLOW macros: + + These macros do not check for all possible numerical problems or + undefined or unspecified behavior: they do not check for division + by zero, for bad shift counts, or for shifting negative numbers. + + These macros may evaluate their arguments zero or multiple times, + so the arguments should not have side effects. The arithmetic + arguments (including the MIN and MAX arguments) must be of the same + integer type after the usual arithmetic conversions, and the type + must have minimum value MIN and maximum MAX. Unsigned types should + use a zero MIN of the proper type. + + Because all arguments are subject to integer promotions, these + macros typically do not work on types narrower than 'int'. + + These macros are tuned for constant MIN and MAX. For commutative + operations such as A + B, they are also tuned for constant B. */ + +/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. */ +#define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ + ((b) < 0 \ + ? (a) < (min) - (b) \ + : (max) - (b) < (a)) + +/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. */ +#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ + ((b) < 0 \ + ? (max) + (b) < (a) \ + : (a) < (min) + (b)) + +/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. + See above for restrictions. */ +#define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ + ((min) < 0 \ + ? (a) < - (max) \ + : 0 < (a)) + +/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. Avoid && and || as they tickle + bugs in Sun C 5.11 2010/08/13 and other compilers; see + . */ +#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ + ((b) < 0 \ + ? ((a) < 0 \ + ? (a) < (max) / (b) \ + : (b) == -1 \ + ? 0 \ + : (min) / (b) < (a)) \ + : (b) == 0 \ + ? 0 \ + : ((a) < 0 \ + ? (a) < (min) / (b) \ + : (max) / (b) < (a))) + +/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. Do not check for division by zero. */ +#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ + ((min) < 0 && (b) == -1 && (a) < - (max)) + +/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. Do not check for division by zero. + Mathematically, % should never overflow, but on x86-like hosts + INT_MIN % -1 traps, and the C standard permits this, so treat this + as an overflow too. */ +#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ + INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) + +/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. + See above for restrictions. Here, MIN and MAX are for A only, and B need + not be of the same type as the other arguments. The C standard says that + behavior is undefined for shifts unless 0 <= B < wordwidth, and that when + A is negative then A << B has undefined behavior and A >> B has + implementation-defined behavior, but do not check these other + restrictions. */ +#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ + ((a) < 0 \ + ? (a) < (min) >> (b) \ + : (max) >> (b) < (a)) + +/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow + (A, B, P) work when P is non-null. */ +#ifdef __EDG__ +/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned + . */ +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) +/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, + see . */ +#elif 7 <= __GNUC__ +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 +#else +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 +#endif + +/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ +#if defined __clang_major__ && __clang_major__ < 14 +/* Work around Clang bug . */ +# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 +#else +# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW +#endif + +/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for + __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ +#ifdef __EDG__ +/* In EDG-based compilers like ICC 2021.3 and earlier, + __builtin_add_overflow_p etc. are not treated as integral constant + expressions even when all arguments are. */ +# define _GL_HAS_BUILTIN_OVERFLOW_P 0 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) +#else +# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) +#endif + +/* The _GL*_OVERFLOW macros have the same restrictions as the + *_RANGE_OVERFLOW macros, except that they do not assume that operands + (e.g., A and B) have the same type as MIN and MAX. Instead, they assume + that the result (e.g., A + B) has that type. */ +#if _GL_HAS_BUILTIN_OVERFLOW_P +# define _GL_ADD_OVERFLOW(a, b, min, max) \ + __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) +# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ + __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) +# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ + __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) +#else +# define _GL_ADD_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ + : (a) < 0 ? (b) <= (a) + (b) \ + : (b) < 0 ? (a) <= (a) + (b) \ + : (a) + (b) < (b)) +# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ + : (a) < 0 ? 1 \ + : (b) < 0 ? (a) - (b) <= (a) \ + : (a) < (b)) +# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ + (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ + || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) +#endif +#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ + : (a) < 0 ? (b) <= (a) + (b) - 1 \ + : (b) < 0 && (a) + (b) <= (a)) +#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ + ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ + : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ + : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) + +/* Return a nonzero value if A is a mathematical multiple of B, where + A is unsigned, B is negative, and MAX is the maximum value of A's + type. A's type must be the same as (A % B)'s type. Normally (A % + -B == 0) suffices, but things get tricky if -B would overflow. */ +#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ + (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ + ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ + ? (a) \ + : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ + : (a) % - (b)) \ + == 0) + +/* Check for integer overflow, and report low order bits of answer. + + The INT__OVERFLOW macros return 1 if the corresponding C operators + might not yield numerically correct answers due to arithmetic overflow. + The INT__WRAPV macros compute the low-order bits of the sum, + difference, and product of two C integers, and return 1 if these + low-order bits are not numerically correct. + These macros work correctly on all known practical hosts, and do not rely + on undefined behavior due to signed arithmetic overflow. + + Example usage, assuming A and B are long int: + + if (INT_MULTIPLY_OVERFLOW (a, b)) + printf ("result would overflow\n"); + else + printf ("result is %ld (no overflow)\n", a * b); + + Example usage with WRAPV flavor: + + long int result; + bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); + printf ("result is %ld (%s)\n", result, + overflow ? "after overflow" : "no overflow"); + + Restrictions on these macros: + + These macros do not check for all possible numerical problems or + undefined or unspecified behavior: they do not check for division + by zero, for bad shift counts, or for shifting negative numbers. + + These macros may evaluate their arguments zero or multiple times, so the + arguments should not have side effects. + + The WRAPV macros are not constant expressions. They support only + +, binary -, and *. + + Because the WRAPV macros convert the result, they report overflow + in different circumstances than the OVERFLOW macros do. For + example, in the typical case with 16-bit 'short' and 32-bit 'int', + if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B) + returns false because the addition cannot overflow after A and B + are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns + true or false depending on whether the sum fits into 'short'. + + These macros are tuned for their last input argument being a constant. + + Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, + A % B, and A << B would overflow, respectively. */ + +#define INT_ADD_OVERFLOW(a, b) \ + _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) +#define INT_SUBTRACT_OVERFLOW(a, b) \ + _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) +#if _GL_HAS_BUILTIN_OVERFLOW_P +# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a) +#else +# define INT_NEGATE_OVERFLOW(a) \ + INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) +#endif +#define INT_MULTIPLY_OVERFLOW(a, b) \ + _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) +#define INT_DIVIDE_OVERFLOW(a, b) \ + _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) +#define INT_REMAINDER_OVERFLOW(a, b) \ + _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) +#define INT_LEFT_SHIFT_OVERFLOW(a, b) \ + INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ + _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) + +/* Return 1 if the expression A B would overflow, + where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, + assuming MIN and MAX are the minimum and maximum for the result type. + Arguments should be free of side effects. */ +#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ + op_result_overflow (a, b, \ + _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ + _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) + +/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. + Return 1 if the result overflows. See above for restrictions. */ +#if _GL_HAS_BUILTIN_ADD_OVERFLOW +# define INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) +# define INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) +#else +# define INT_ADD_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) +# define INT_SUBTRACT_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) +#endif +#if _GL_HAS_BUILTIN_MUL_OVERFLOW +# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ + || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ + && !defined __EDG__) +# define INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) +# else + /* Work around GCC bug 91450. */ +# define INT_MULTIPLY_WRAPV(a, b, r) \ + ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \ + && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ + ? ((void) __builtin_mul_overflow (a, b, r), 1) \ + : __builtin_mul_overflow (a, b, r)) +# endif +#else +# define INT_MULTIPLY_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) +#endif + +/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 + https://llvm.org/bugs/show_bug.cgi?id=25390 + For now, assume all versions of GCC-like compilers generate bogus + warnings for _Generic. This matters only for compilers that + lack relevant builtins. */ +#if __GNUC__ || defined __clang__ +# define _GL__GENERIC_BOGUS 1 +#else +# define _GL__GENERIC_BOGUS 0 +#endif + +/* Store the low-order bits of A B into *R, where OP specifies + the operation and OVERFLOW the overflow predicate. Return 1 if the + result overflows. See above for restrictions. */ +#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ + (_Generic \ + (*(r), \ + signed char: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + signed char, SCHAR_MIN, SCHAR_MAX), \ + unsigned char: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned char, 0, UCHAR_MAX), \ + short int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + short int, SHRT_MIN, SHRT_MAX), \ + unsigned short int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned short int, 0, USHRT_MAX), \ + int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + int, INT_MIN, INT_MAX), \ + unsigned int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX), \ + long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX), \ + unsigned long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX), \ + long long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + long long int, LLONG_MIN, LLONG_MAX), \ + unsigned long long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) +#else +/* Store the low-order bits of A B into *R, where OP specifies + the operation and OVERFLOW the overflow predicate. If *R is + signed, its type is ST with bounds SMIN..SMAX; otherwise its type + is UT with bounds U..UMAX. ST and UT are narrower than int. + Return 1 if the result overflows. See above for restrictions. */ +# if _GL_HAVE___TYPEOF__ +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (TYPE_SIGNED (__typeof__ (*(r))) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) +# else +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (overflow (a, b, smin, smax) \ + ? (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ + : (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) +# endif + +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ + (sizeof *(r) == sizeof (signed char) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + signed char, SCHAR_MIN, SCHAR_MAX, \ + unsigned char, UCHAR_MAX) \ + : sizeof *(r) == sizeof (short int) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + short int, SHRT_MIN, SHRT_MAX, \ + unsigned short int, USHRT_MAX) \ + : sizeof *(r) == sizeof (int) \ + ? (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + int, INT_MIN, INT_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX)) \ + : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) +# ifdef LLONG_MAX +# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ + (sizeof *(r) == sizeof (long int) \ + ? (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) \ + : (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + long long int, LLONG_MIN, LLONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) +# else +# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ + (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) +# endif +#endif + +/* Store the low-order bits of A B into *R, where the operation + is given by OP. Use the unsigned type UT for calculation to avoid + overflow problems. *R's type is T, with extrema TMIN and TMAX. + T must be a signed integer type. Return 1 if the result overflows. */ +#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ + (overflow (a, b, tmin, tmax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) + +/* Return the low-order bits of A B, where the operation is given + by OP. Use the unsigned type UT for calculation to avoid undefined + behavior on signed integer overflow, and convert the result to type T. + UT is at least as wide as T and is no narrower than unsigned int, + T is two's complement, and there is no padding or trap representations. + Assume that converting UT to T yields the low-order bits, as is + done in all known two's-complement C compilers. E.g., see: + https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html + + According to the C standard, converting UT to T yields an + implementation-defined result or signal for values outside T's + range. However, code that works around this theoretical problem + runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: + https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html + As the compiler bug is real, don't try to work around the + theoretical problem. */ + +#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ + ((t) ((ut) (a) op (ut) (b))) + +/* Return true if the numeric values A + B, A - B, A * B fall outside + the range TMIN..TMAX. Arguments should be integer expressions + without side effects. TMIN should be signed and nonpositive. + TMAX should be positive, and should be signed unless TMIN is zero. */ +#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? (((tmin) \ + ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ + && (a) < (tmin) - (b)) \ + : (a) <= -1 - (b)) \ + || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ + : (a) < 0 \ + ? (((tmin) \ + ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ + && (b) < (tmin) - (a)) \ + : (b) <= -1 - (a)) \ + || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ + && (tmax) < (a) + (b))) \ + : (tmax) < (b) || (tmax) - (b) < (a)) +#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ + (((a) < 0) == ((b) < 0) \ + ? ((a) < (b) \ + ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ + : (tmax) < (a) - (b)) \ + : (a) < 0 \ + ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ + || (a) - (tmin) < (b)) \ + : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ + && (tmax) <= -1 - (b)) \ + || (tmax) + (b) < (a))) +#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? ((a) < 0 \ + ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + ? (a) < (tmax) / (b) \ + : ((INT_NEGATE_OVERFLOW (b) \ + ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (+ (b)) - 1) \ + : (tmax) / -(b)) \ + <= -1 - (a))) \ + : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ + ? (EXPR_SIGNED (a) \ + ? 0 < (a) + (tmin) \ + : 0 < (a) && -1 - (tmin) < (a) - 1) \ + : (tmin) / (b) < (a)) \ + : (b) == 0 \ + ? 0 \ + : ((a) < 0 \ + ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ + ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ + : (tmin) / (a) < (b)) \ + : (tmax) / (b) < (a))) + +/* The following macros compute A + B, A - B, and A * B, respectively. + If no overflow occurs, they set *R to the result and return 1; + otherwise, they return 0 and may modify *R. + + Example usage: + + long int result; + if (INT_ADD_OK (a, b, &result)) + printf ("result is %ld\n", result); + else + printf ("overflow\n"); + + A, B, and *R should be integers; they need not be the same type, + and they need not be all signed or all unsigned. + + These macros work correctly on all known practical hosts, and do not rely + on undefined behavior due to signed arithmetic overflow. + + These macros are not constant expressions. + + These macros may evaluate their arguments zero or multiple times, so the + arguments should not have side effects. + + These macros are tuned for B being a constant. */ + +#define INT_ADD_OK(a, b, r) ! INT_ADD_WRAPV (a, b, r) +#define INT_SUBTRACT_OK(a, b, r) ! INT_SUBTRACT_WRAPV (a, b, r) +#define INT_MULTIPLY_OK(a, b, r) ! INT_MULTIPLY_WRAPV (a, b, r) + +#endif /* _GL_INTPROPS_H */ diff --git a/3rdPartner/libiconv/srclib/inttypes.in.h b/3rdPartner/libiconv/srclib/inttypes.in.h new file mode 100644 index 0000000..853eca0 --- /dev/null +++ b/3rdPartner/libiconv/srclib/inttypes.in.h @@ -0,0 +1,1002 @@ +/* Copyright (C) 2006-2022 Free Software Foundation, Inc. + Written by Paul Eggert, Bruno Haible, Derek Price. + This file is part of gnulib. + + This file 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 file 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 program. If not, see . */ + +/* + * ISO C 99 for platforms that lack it. + * + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* Include the original if it exists, and if this file + has not been included yet or if this file includes gnulib stdint.h + which in turn includes this file. + The include_next requires a split double-inclusion guard. */ +#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H +# if @HAVE_INTTYPES_H@ + + /* Some pre-C++11 implementations need this. */ +# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS +# define __STDC_FORMAT_MACROS 1 +# endif + +# @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ + +# define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H +# endif +#endif + +#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H +#define INTTYPES_H + +/* Include or the gnulib replacement. + But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include +#endif +/* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ +#include +/* On mingw, __USE_MINGW_ANSI_STDIO only works if is also included */ +#if defined _WIN32 && ! defined __CYGWIN__ +# include +#endif + +#if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) +# error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to ." +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* 7.8.1 Macros for format specifiers */ + +#if defined _TNS_R_TARGET + /* Tandem NonStop R series and compatible platforms released before + July 2005 support %Ld but not %lld. */ +# define _LONG_LONG_FORMAT_PREFIX "L" +#else +# define _LONG_LONG_FORMAT_PREFIX "ll" +#endif + +#if !defined PRId8 +# ifdef INT8_MAX +# define PRId8 "d" +# endif +#endif +#if !defined PRIi8 +# ifdef INT8_MAX +# define PRIi8 "i" +# endif +#endif +#if !defined PRIo8 +# ifdef UINT8_MAX +# define PRIo8 "o" +# endif +#endif +#if !defined PRIu8 +# ifdef UINT8_MAX +# define PRIu8 "u" +# endif +#endif +#if !defined PRIx8 +# ifdef UINT8_MAX +# define PRIx8 "x" +# endif +#endif +#if !defined PRIX8 +# ifdef UINT8_MAX +# define PRIX8 "X" +# endif +#endif +#if !defined PRId16 +# ifdef INT16_MAX +# define PRId16 "d" +# endif +#endif +#if !defined PRIi16 +# ifdef INT16_MAX +# define PRIi16 "i" +# endif +#endif +#if !defined PRIo16 +# ifdef UINT16_MAX +# define PRIo16 "o" +# endif +#endif +#if !defined PRIu16 +# ifdef UINT16_MAX +# define PRIu16 "u" +# endif +#endif +#if !defined PRIx16 +# ifdef UINT16_MAX +# define PRIx16 "x" +# endif +#endif +#if !defined PRIX16 +# ifdef UINT16_MAX +# define PRIX16 "X" +# endif +#endif +#if !defined PRId32 +# ifdef INT32_MAX +# define PRId32 "d" +# endif +#endif +#if !defined PRIi32 +# ifdef INT32_MAX +# define PRIi32 "i" +# endif +#endif +#if !defined PRIo32 +# ifdef UINT32_MAX +# define PRIo32 "o" +# endif +#endif +#if !defined PRIu32 +# ifdef UINT32_MAX +# define PRIu32 "u" +# endif +#endif +#if !defined PRIx32 +# ifdef UINT32_MAX +# define PRIx32 "x" +# endif +#endif +#if !defined PRIX32 +# ifdef UINT32_MAX +# define PRIX32 "X" +# endif +#endif +#ifdef INT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# define _PRI64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _PRI64_PREFIX "I64" +# elif LONG_MAX >> 30 == 1 +# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined PRId64 +# define PRId64 _PRI64_PREFIX "d" +# endif +# if !defined PRIi64 +# define PRIi64 _PRI64_PREFIX "i" +# endif +#endif +#ifdef UINT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# define _PRIu64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _PRIu64_PREFIX "I64" +# elif ULONG_MAX >> 31 == 1 +# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined PRIo64 +# define PRIo64 _PRIu64_PREFIX "o" +# endif +# if !defined PRIu64 +# define PRIu64 _PRIu64_PREFIX "u" +# endif +# if !defined PRIx64 +# define PRIx64 _PRIu64_PREFIX "x" +# endif +# if !defined PRIX64 +# define PRIX64 _PRIu64_PREFIX "X" +# endif +#endif + +#if !defined PRIdLEAST8 +# define PRIdLEAST8 "d" +#endif +#if !defined PRIiLEAST8 +# define PRIiLEAST8 "i" +#endif +#if !defined PRIoLEAST8 +# define PRIoLEAST8 "o" +#endif +#if !defined PRIuLEAST8 +# define PRIuLEAST8 "u" +#endif +#if !defined PRIxLEAST8 +# define PRIxLEAST8 "x" +#endif +#if !defined PRIXLEAST8 +# define PRIXLEAST8 "X" +#endif +#if !defined PRIdLEAST16 +# define PRIdLEAST16 "d" +#endif +#if !defined PRIiLEAST16 +# define PRIiLEAST16 "i" +#endif +#if !defined PRIoLEAST16 +# define PRIoLEAST16 "o" +#endif +#if !defined PRIuLEAST16 +# define PRIuLEAST16 "u" +#endif +#if !defined PRIxLEAST16 +# define PRIxLEAST16 "x" +#endif +#if !defined PRIXLEAST16 +# define PRIXLEAST16 "X" +#endif +#if !defined PRIdLEAST32 +# define PRIdLEAST32 "d" +#endif +#if !defined PRIiLEAST32 +# define PRIiLEAST32 "i" +#endif +#if !defined PRIoLEAST32 +# define PRIoLEAST32 "o" +#endif +#if !defined PRIuLEAST32 +# define PRIuLEAST32 "u" +#endif +#if !defined PRIxLEAST32 +# define PRIxLEAST32 "x" +#endif +#if !defined PRIXLEAST32 +# define PRIXLEAST32 "X" +#endif +#ifdef INT64_MAX +# if !defined PRIdLEAST64 +# define PRIdLEAST64 PRId64 +# endif +# if !defined PRIiLEAST64 +# define PRIiLEAST64 PRIi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined PRIoLEAST64 +# define PRIoLEAST64 PRIo64 +# endif +# if !defined PRIuLEAST64 +# define PRIuLEAST64 PRIu64 +# endif +# if !defined PRIxLEAST64 +# define PRIxLEAST64 PRIx64 +# endif +# if !defined PRIXLEAST64 +# define PRIXLEAST64 PRIX64 +# endif +#endif + +#if !defined PRIdFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define PRIdFAST8 PRId64 +# else +# define PRIdFAST8 "d" +# endif +#endif +#if !defined PRIiFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define PRIiFAST8 PRIi64 +# else +# define PRIiFAST8 "i" +# endif +#endif +#if !defined PRIoFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIoFAST8 PRIo64 +# else +# define PRIoFAST8 "o" +# endif +#endif +#if !defined PRIuFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIuFAST8 PRIu64 +# else +# define PRIuFAST8 "u" +# endif +#endif +#if !defined PRIxFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIxFAST8 PRIx64 +# else +# define PRIxFAST8 "x" +# endif +#endif +#if !defined PRIXFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define PRIXFAST8 PRIX64 +# else +# define PRIXFAST8 "X" +# endif +#endif +#if !defined PRIdFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define PRIdFAST16 PRId64 +# else +# define PRIdFAST16 "d" +# endif +#endif +#if !defined PRIiFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define PRIiFAST16 PRIi64 +# else +# define PRIiFAST16 "i" +# endif +#endif +#if !defined PRIoFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIoFAST16 PRIo64 +# else +# define PRIoFAST16 "o" +# endif +#endif +#if !defined PRIuFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIuFAST16 PRIu64 +# else +# define PRIuFAST16 "u" +# endif +#endif +#if !defined PRIxFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIxFAST16 PRIx64 +# else +# define PRIxFAST16 "x" +# endif +#endif +#if !defined PRIXFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define PRIXFAST16 PRIX64 +# else +# define PRIXFAST16 "X" +# endif +#endif +#if !defined PRIdFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define PRIdFAST32 PRId64 +# else +# define PRIdFAST32 "d" +# endif +#endif +#if !defined PRIiFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define PRIiFAST32 PRIi64 +# else +# define PRIiFAST32 "i" +# endif +#endif +#if !defined PRIoFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIoFAST32 PRIo64 +# else +# define PRIoFAST32 "o" +# endif +#endif +#if !defined PRIuFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIuFAST32 PRIu64 +# else +# define PRIuFAST32 "u" +# endif +#endif +#if !defined PRIxFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIxFAST32 PRIx64 +# else +# define PRIxFAST32 "x" +# endif +#endif +#if !defined PRIXFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define PRIXFAST32 PRIX64 +# else +# define PRIXFAST32 "X" +# endif +#endif +#ifdef INT64_MAX +# if !defined PRIdFAST64 +# define PRIdFAST64 PRId64 +# endif +# if !defined PRIiFAST64 +# define PRIiFAST64 PRIi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined PRIoFAST64 +# define PRIoFAST64 PRIo64 +# endif +# if !defined PRIuFAST64 +# define PRIuFAST64 PRIu64 +# endif +# if !defined PRIxFAST64 +# define PRIxFAST64 PRIx64 +# endif +# if !defined PRIXFAST64 +# define PRIXFAST64 PRIX64 +# endif +#endif + +#if !defined PRIdMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define PRIdMAX PRId64 +# else +# define PRIdMAX "ld" +# endif +#endif +#if !defined PRIiMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define PRIiMAX PRIi64 +# else +# define PRIiMAX "li" +# endif +#endif +#if !defined PRIoMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIoMAX PRIo64 +# else +# define PRIoMAX "lo" +# endif +#endif +#if !defined PRIuMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIuMAX PRIu64 +# else +# define PRIuMAX "lu" +# endif +#endif +#if !defined PRIxMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIxMAX PRIx64 +# else +# define PRIxMAX "lx" +# endif +#endif +#if !defined PRIXMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define PRIXMAX PRIX64 +# else +# define PRIXMAX "lX" +# endif +#endif + +#if !defined PRIdPTR +# ifdef INTPTR_MAX +# define PRIdPTR @PRIPTR_PREFIX@ "d" +# endif +#endif +#if !defined PRIiPTR +# ifdef INTPTR_MAX +# define PRIiPTR @PRIPTR_PREFIX@ "i" +# endif +#endif +#if !defined PRIoPTR +# ifdef UINTPTR_MAX +# define PRIoPTR @PRIPTR_PREFIX@ "o" +# endif +#endif +#if !defined PRIuPTR +# ifdef UINTPTR_MAX +# define PRIuPTR @PRIPTR_PREFIX@ "u" +# endif +#endif +#if !defined PRIxPTR +# ifdef UINTPTR_MAX +# define PRIxPTR @PRIPTR_PREFIX@ "x" +# endif +#endif +#if !defined PRIXPTR +# ifdef UINTPTR_MAX +# define PRIXPTR @PRIPTR_PREFIX@ "X" +# endif +#endif + +#if !defined SCNd8 +# ifdef INT8_MAX +# define SCNd8 "hhd" +# endif +#endif +#if !defined SCNi8 +# ifdef INT8_MAX +# define SCNi8 "hhi" +# endif +#endif +#if !defined SCNo8 +# ifdef UINT8_MAX +# define SCNo8 "hho" +# endif +#endif +#if !defined SCNu8 +# ifdef UINT8_MAX +# define SCNu8 "hhu" +# endif +#endif +#if !defined SCNx8 +# ifdef UINT8_MAX +# define SCNx8 "hhx" +# endif +#endif +#if !defined SCNd16 +# ifdef INT16_MAX +# define SCNd16 "hd" +# endif +#endif +#if !defined SCNi16 +# ifdef INT16_MAX +# define SCNi16 "hi" +# endif +#endif +#if !defined SCNo16 +# ifdef UINT16_MAX +# define SCNo16 "ho" +# endif +#endif +#if !defined SCNu16 +# ifdef UINT16_MAX +# define SCNu16 "hu" +# endif +#endif +#if !defined SCNx16 +# ifdef UINT16_MAX +# define SCNx16 "hx" +# endif +#endif +#if !defined SCNd32 +# ifdef INT32_MAX +# define SCNd32 "d" +# endif +#endif +#if !defined SCNi32 +# ifdef INT32_MAX +# define SCNi32 "i" +# endif +#endif +#if !defined SCNo32 +# ifdef UINT32_MAX +# define SCNo32 "o" +# endif +#endif +#if !defined SCNu32 +# ifdef UINT32_MAX +# define SCNu32 "u" +# endif +#endif +#if !defined SCNx32 +# ifdef UINT32_MAX +# define SCNx32 "x" +# endif +#endif +#ifdef INT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# define _SCN64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _SCN64_PREFIX "I64" +# elif LONG_MAX >> 30 == 1 +# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined SCNd64 +# define SCNd64 _SCN64_PREFIX "d" +# endif +# if !defined SCNi64 +# define SCNi64 _SCN64_PREFIX "i" +# endif +#endif +#ifdef UINT64_MAX +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# define _SCNu64_PREFIX "l" +# elif defined _MSC_VER || defined __MINGW32__ +# define _SCNu64_PREFIX "I64" +# elif ULONG_MAX >> 31 == 1 +# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX +# endif +# if !defined SCNo64 +# define SCNo64 _SCNu64_PREFIX "o" +# endif +# if !defined SCNu64 +# define SCNu64 _SCNu64_PREFIX "u" +# endif +# if !defined SCNx64 +# define SCNx64 _SCNu64_PREFIX "x" +# endif +#endif + +#if !defined SCNdLEAST8 +# define SCNdLEAST8 "hhd" +#endif +#if !defined SCNiLEAST8 +# define SCNiLEAST8 "hhi" +#endif +#if !defined SCNoLEAST8 +# define SCNoLEAST8 "hho" +#endif +#if !defined SCNuLEAST8 +# define SCNuLEAST8 "hhu" +#endif +#if !defined SCNxLEAST8 +# define SCNxLEAST8 "hhx" +#endif +#if !defined SCNdLEAST16 +# define SCNdLEAST16 "hd" +#endif +#if !defined SCNiLEAST16 +# define SCNiLEAST16 "hi" +#endif +#if !defined SCNoLEAST16 +# define SCNoLEAST16 "ho" +#endif +#if !defined SCNuLEAST16 +# define SCNuLEAST16 "hu" +#endif +#if !defined SCNxLEAST16 +# define SCNxLEAST16 "hx" +#endif +#if !defined SCNdLEAST32 +# define SCNdLEAST32 "d" +#endif +#if !defined SCNiLEAST32 +# define SCNiLEAST32 "i" +#endif +#if !defined SCNoLEAST32 +# define SCNoLEAST32 "o" +#endif +#if !defined SCNuLEAST32 +# define SCNuLEAST32 "u" +#endif +#if !defined SCNxLEAST32 +# define SCNxLEAST32 "x" +#endif +#ifdef INT64_MAX +# if !defined SCNdLEAST64 +# define SCNdLEAST64 SCNd64 +# endif +# if !defined SCNiLEAST64 +# define SCNiLEAST64 SCNi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined SCNoLEAST64 +# define SCNoLEAST64 SCNo64 +# endif +# if !defined SCNuLEAST64 +# define SCNuLEAST64 SCNu64 +# endif +# if !defined SCNxLEAST64 +# define SCNxLEAST64 SCNx64 +# endif +#endif + +#if !defined SCNdFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define SCNdFAST8 SCNd64 +# elif INT_FAST8_MAX == 0x7fff +# define SCNdFAST8 "hd" +# elif INT_FAST8_MAX == 0x7f +# define SCNdFAST8 "hhd" +# else +# define SCNdFAST8 "d" +# endif +#endif +#if !defined SCNiFAST8 +# if INT_FAST8_MAX > INT32_MAX +# define SCNiFAST8 SCNi64 +# elif INT_FAST8_MAX == 0x7fff +# define SCNiFAST8 "hi" +# elif INT_FAST8_MAX == 0x7f +# define SCNiFAST8 "hhi" +# else +# define SCNiFAST8 "i" +# endif +#endif +#if !defined SCNoFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNoFAST8 SCNo64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNoFAST8 "ho" +# elif UINT_FAST8_MAX == 0xff +# define SCNoFAST8 "hho" +# else +# define SCNoFAST8 "o" +# endif +#endif +#if !defined SCNuFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNuFAST8 SCNu64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNuFAST8 "hu" +# elif UINT_FAST8_MAX == 0xff +# define SCNuFAST8 "hhu" +# else +# define SCNuFAST8 "u" +# endif +#endif +#if !defined SCNxFAST8 +# if UINT_FAST8_MAX > UINT32_MAX +# define SCNxFAST8 SCNx64 +# elif UINT_FAST8_MAX == 0xffff +# define SCNxFAST8 "hx" +# elif UINT_FAST8_MAX == 0xff +# define SCNxFAST8 "hhx" +# else +# define SCNxFAST8 "x" +# endif +#endif +#if !defined SCNdFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define SCNdFAST16 SCNd64 +# elif INT_FAST16_MAX == 0x7fff +# define SCNdFAST16 "hd" +# else +# define SCNdFAST16 "d" +# endif +#endif +#if !defined SCNiFAST16 +# if INT_FAST16_MAX > INT32_MAX +# define SCNiFAST16 SCNi64 +# elif INT_FAST16_MAX == 0x7fff +# define SCNiFAST16 "hi" +# else +# define SCNiFAST16 "i" +# endif +#endif +#if !defined SCNoFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNoFAST16 SCNo64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNoFAST16 "ho" +# else +# define SCNoFAST16 "o" +# endif +#endif +#if !defined SCNuFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNuFAST16 SCNu64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNuFAST16 "hu" +# else +# define SCNuFAST16 "u" +# endif +#endif +#if !defined SCNxFAST16 +# if UINT_FAST16_MAX > UINT32_MAX +# define SCNxFAST16 SCNx64 +# elif UINT_FAST16_MAX == 0xffff +# define SCNxFAST16 "hx" +# else +# define SCNxFAST16 "x" +# endif +#endif +#if !defined SCNdFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define SCNdFAST32 SCNd64 +# else +# define SCNdFAST32 "d" +# endif +#endif +#if !defined SCNiFAST32 +# if INT_FAST32_MAX > INT32_MAX +# define SCNiFAST32 SCNi64 +# else +# define SCNiFAST32 "i" +# endif +#endif +#if !defined SCNoFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNoFAST32 SCNo64 +# else +# define SCNoFAST32 "o" +# endif +#endif +#if !defined SCNuFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNuFAST32 SCNu64 +# else +# define SCNuFAST32 "u" +# endif +#endif +#if !defined SCNxFAST32 +# if UINT_FAST32_MAX > UINT32_MAX +# define SCNxFAST32 SCNx64 +# else +# define SCNxFAST32 "x" +# endif +#endif +#ifdef INT64_MAX +# if !defined SCNdFAST64 +# define SCNdFAST64 SCNd64 +# endif +# if !defined SCNiFAST64 +# define SCNiFAST64 SCNi64 +# endif +#endif +#ifdef UINT64_MAX +# if !defined SCNoFAST64 +# define SCNoFAST64 SCNo64 +# endif +# if !defined SCNuFAST64 +# define SCNuFAST64 SCNu64 +# endif +# if !defined SCNxFAST64 +# define SCNxFAST64 SCNx64 +# endif +#endif + +#if !defined SCNdMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define SCNdMAX SCNd64 +# else +# define SCNdMAX "ld" +# endif +#endif +#if !defined SCNiMAX +# if @INT32_MAX_LT_INTMAX_MAX@ +# define SCNiMAX SCNi64 +# else +# define SCNiMAX "li" +# endif +#endif +#if !defined SCNoMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNoMAX SCNo64 +# else +# define SCNoMAX "lo" +# endif +#endif +#if !defined SCNuMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNuMAX SCNu64 +# else +# define SCNuMAX "lu" +# endif +#endif +#if !defined SCNxMAX +# if @UINT32_MAX_LT_UINTMAX_MAX@ +# define SCNxMAX SCNx64 +# else +# define SCNxMAX "lx" +# endif +#endif + +#if !defined SCNdPTR +# ifdef INTPTR_MAX +# define SCNdPTR @PRIPTR_PREFIX@ "d" +# endif +#endif +#if !defined SCNiPTR +# ifdef INTPTR_MAX +# define SCNiPTR @PRIPTR_PREFIX@ "i" +# endif +#endif +#if !defined SCNoPTR +# ifdef UINTPTR_MAX +# define SCNoPTR @PRIPTR_PREFIX@ "o" +# endif +#endif +#if !defined SCNuPTR +# ifdef UINTPTR_MAX +# define SCNuPTR @PRIPTR_PREFIX@ "u" +# endif +#endif +#if !defined SCNxPTR +# ifdef UINTPTR_MAX +# define SCNxPTR @PRIPTR_PREFIX@ "x" +# endif +#endif + +/* 7.8.2 Functions for greatest-width integer types */ + +#ifdef __cplusplus +extern "C" { +#endif + +#if @GNULIB_IMAXABS@ +# if !@HAVE_DECL_IMAXABS@ +extern intmax_t imaxabs (intmax_t); +# endif +#elif defined GNULIB_POSIXCHECK +# undef imaxabs +# if HAVE_RAW_DECL_IMAXABS +_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " + "use gnulib module imaxabs for portability"); +# endif +#endif + +#if @GNULIB_IMAXDIV@ +# if !@HAVE_IMAXDIV_T@ +# if !GNULIB_defined_imaxdiv_t +typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; +# define GNULIB_defined_imaxdiv_t 1 +# endif +# endif +# if !@HAVE_DECL_IMAXDIV@ +extern imaxdiv_t imaxdiv (intmax_t, intmax_t); +# endif +#elif defined GNULIB_POSIXCHECK +# undef imaxdiv +# if HAVE_RAW_DECL_IMAXDIV +_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " + "use gnulib module imaxdiv for portability"); +# endif +#endif + +#if @GNULIB_STRTOIMAX@ +# if @REPLACE_STRTOIMAX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtoimax +# define strtoimax rpl_strtoimax +# endif +_GL_FUNCDECL_RPL (strtoimax, intmax_t, + (const char *restrict, char **restrict, int) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoimax, intmax_t, + (const char *restrict, char **restrict, int)); +# else +# if !@HAVE_DECL_STRTOIMAX@ +# undef strtoimax +_GL_FUNCDECL_SYS (strtoimax, intmax_t, + (const char *restrict, char **restrict, int) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoimax, intmax_t, + (const char *restrict, char **restrict, int)); +# endif +_GL_CXXALIASWARN (strtoimax); +#elif defined GNULIB_POSIXCHECK +# undef strtoimax +# if HAVE_RAW_DECL_STRTOIMAX +_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " + "use gnulib module strtoimax for portability"); +# endif +#endif + +#if @GNULIB_STRTOUMAX@ +# if @REPLACE_STRTOUMAX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtoumax +# define strtoumax rpl_strtoumax +# endif +_GL_FUNCDECL_RPL (strtoumax, uintmax_t, + (const char *restrict, char **restrict, int) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoumax, uintmax_t, + (const char *restrict, char **restrict, int)); +# else +# if !@HAVE_DECL_STRTOUMAX@ +# undef strtoumax +_GL_FUNCDECL_SYS (strtoumax, uintmax_t, + (const char *restrict, char **restrict, int) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoumax, uintmax_t, + (const char *restrict, char **restrict, int)); +# endif +_GL_CXXALIASWARN (strtoumax); +#elif defined GNULIB_POSIXCHECK +# undef strtoumax +# if HAVE_RAW_DECL_STRTOUMAX +_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " + "use gnulib module strtoumax for portability"); +# endif +#endif + +/* Don't bother defining or declaring wcstoimax and wcstoumax, since + wide-character functions like this are hardly ever useful. */ + +#ifdef __cplusplus +} +#endif + +#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ diff --git a/3rdPartner/libiconv/srclib/libc-config.h b/3rdPartner/libiconv/srclib/libc-config.h new file mode 100644 index 0000000..a56665b --- /dev/null +++ b/3rdPartner/libiconv/srclib/libc-config.h @@ -0,0 +1,202 @@ +/* System definitions for code taken from the GNU C Library + + Copyright 2017-2022 Free Software Foundation, Inc. + + This program 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 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; if not, see + . */ + +/* Written by Paul Eggert. */ + +/* This is intended to be a good-enough substitute for glibc system + macros like those defined in , so that Gnulib code + shared with glibc can do this as the first #include: + + #ifndef _LIBC + # include + #endif + + When compiled as part of glibc this is a no-op; when compiled as + part of Gnulib this includes Gnulib's and defines macros + that glibc library code would normally assume. + + Note: This header file MUST NOT be included by public header files + of Gnulib. */ + +#include + +/* On glibc this includes and and #defines + _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and + DragonFlyBSD 5.9 it includes which defines __nonnull. + Elsewhere it is harmless. */ +#include + +/* From glibc . */ +#ifndef __set_errno +# define __set_errno(val) (errno = (val)) +#endif + +/* From glibc . */ + +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#ifndef __glibc_clang_prereq +# if defined __clang_major__ && defined __clang_minor__ +# ifdef __apple_build_version__ +/* Apple for some reason renumbers __clang_major__ and __clang_minor__. + Gnulib code uses only __glibc_clang_prereq (3, 5); map it to + 6000000 <= __apple_build_version__. Support for other calls to + __glibc_clang_prereq can be added here as needed. */ +# define __glibc_clang_prereq(maj, min) \ + ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) +# else +# define __glibc_clang_prereq(maj, min) \ + ((maj) < __clang_major__ + ((min) <= __clang_minor__)) +# endif +# else +# define __glibc_clang_prereq(maj, min) 0 +# endif +#endif + +#ifndef __attribute_nonnull__ +/* either does not exist, or is too old for Gnulib. + Prepare to include , which is Gnulib's version of a + more-recent glibc . */ + +/* Define _FEATURES_H so that does not include . */ +# ifndef _FEATURES_H +# define _FEATURES_H 1 +# endif +/* Define __GNULIB_CDEFS so that does not attempt to include + nonexistent files. */ +# define __GNULIB_CDEFS +/* Undef the macros unconditionally defined by our copy of glibc + , so that they do not clash with any system-defined + versions. */ +# undef _SYS_CDEFS_H +# undef __ASMNAME +# undef __ASMNAME2 +# undef __BEGIN_DECLS +# undef __CONCAT +# undef __END_DECLS +# undef __HAVE_GENERIC_SELECTION +# undef __LDBL_COMPAT +# undef __LDBL_REDIR +# undef __LDBL_REDIR1 +# undef __LDBL_REDIR1_DECL +# undef __LDBL_REDIR1_NTH +# undef __LDBL_REDIR2_DECL +# undef __LDBL_REDIR_DECL +# undef __LDBL_REDIR_NTH +# undef __LEAF +# undef __LEAF_ATTR +# undef __NTH +# undef __NTHNL +# undef __REDIRECT +# undef __REDIRECT_LDBL +# undef __REDIRECT_NTH +# undef __REDIRECT_NTHNL +# undef __REDIRECT_NTH_LDBL +# undef __STRING +# undef __THROW +# undef __THROWNL +# undef __attr_access +# undef __attr_access_none +# undef __attr_dealloc +# undef __attr_dealloc_free +# undef __attribute__ +# undef __attribute_alloc_align__ +# undef __attribute_alloc_size__ +# undef __attribute_artificial__ +# undef __attribute_const__ +# undef __attribute_deprecated__ +# undef __attribute_deprecated_msg__ +# undef __attribute_format_arg__ +# undef __attribute_format_strfmon__ +# undef __attribute_malloc__ +# undef __attribute_maybe_unused__ +# undef __attribute_noinline__ +# undef __attribute_nonstring__ +# undef __attribute_pure__ +# undef __attribute_returns_twice__ +# undef __attribute_used__ +# undef __attribute_warn_unused_result__ +# undef __bos +# undef __bos0 +# undef __errordecl +# undef __extension__ +# undef __extern_always_inline +# undef __extern_inline +# undef __flexarr +# undef __fortified_attr_access +# undef __fortify_function +# undef __glibc_c99_flexarr_available +# undef __glibc_fortify +# undef __glibc_fortify_n +# undef __glibc_has_attribute +# undef __glibc_has_builtin +# undef __glibc_has_extension +# undef __glibc_likely +# undef __glibc_macro_warning +# undef __glibc_macro_warning1 +# undef __glibc_objsize +# undef __glibc_objsize0 +# undef __glibc_safe_len_cond +# undef __glibc_safe_or_unknown_len +# undef __glibc_unlikely +# undef __glibc_unsafe_len +# undef __glibc_unsigned_or_positive +# undef __inline +# undef __ptr_t +# undef __restrict +# undef __restrict_arr +# undef __va_arg_pack +# undef __va_arg_pack_len +# undef __warnattr +# undef __wur + +/* Include our copy of glibc . */ +# include + +/* __inline is too pessimistic for non-GCC. */ +# undef __inline +# ifndef HAVE___INLINE +# if 199901 <= __STDC_VERSION__ || defined inline +# define __inline inline +# else +# define __inline +# endif +# endif + +#endif /* defined __glibc_likely */ + + +/* A substitute for glibc , good enough for Gnulib. */ +#define attribute_hidden +#define libc_hidden_proto(name) +#define libc_hidden_def(name) +#define libc_hidden_weak(name) +#define libc_hidden_ver(local, name) +#define strong_alias(name, aliasname) +#define weak_alias(name, aliasname) + +/* A substitute for glibc , good enough for Gnulib. */ +#define SHLIB_COMPAT(lib, introduced, obsoleted) 0 +#define compat_symbol(lib, local, symbol, version) extern int dummy +#define versioned_symbol(lib, local, symbol, version) extern int dummy diff --git a/3rdPartner/libiconv/srclib/limits.in.h b/3rdPartner/libiconv/srclib/limits.in.h new file mode 100644 index 0000000..b77bf75 --- /dev/null +++ b/3rdPartner/libiconv/srclib/limits.in.h @@ -0,0 +1,131 @@ +/* A GNU-like . + + Copyright 2016-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined _GL_ALREADY_INCLUDING_LIMITS_H +/* Special invocation convention: + On Haiku/x86_64, we have a sequence of nested includes + -> -> . + In this situation, LONG_MAX and INT_MAX are not yet defined, + therefore we should not attempt to define LONG_BIT. */ + +#@INCLUDE_NEXT@ @NEXT_LIMITS_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_LIMITS_H + +# define _GL_ALREADY_INCLUDING_LIMITS_H + +/* The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_LIMITS_H@ + +# undef _GL_ALREADY_INCLUDING_LIMITS_H + +#ifndef _@GUARD_PREFIX@_LIMITS_H +#define _@GUARD_PREFIX@_LIMITS_H + +#ifndef LLONG_MIN +# if defined LONG_LONG_MIN /* HP-UX 11.31 */ +# define LLONG_MIN LONG_LONG_MIN +# elif defined LONGLONG_MIN /* IRIX 6.5 */ +# define LLONG_MIN LONGLONG_MIN +# elif defined __GNUC__ +# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) +# endif +#endif +#ifndef LLONG_MAX +# if defined LONG_LONG_MAX /* HP-UX 11.31 */ +# define LLONG_MAX LONG_LONG_MAX +# elif defined LONGLONG_MAX /* IRIX 6.5 */ +# define LLONG_MAX LONGLONG_MAX +# elif defined __GNUC__ +# define LLONG_MAX __LONG_LONG_MAX__ +# endif +#endif +#ifndef ULLONG_MAX +# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ +# define ULLONG_MAX ULONG_LONG_MAX +# elif defined ULONGLONG_MAX /* IRIX 6.5 */ +# define ULLONG_MAX ULONGLONG_MAX +# elif defined __GNUC__ +# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) +# endif +#endif + +/* The number of usable bits in an unsigned or signed integer type + with minimum value MIN and maximum value MAX, as an int expression + suitable in #if. Cover all known practical hosts. This + implementation exploits the fact that MAX is 1 less than a power of + 2, and merely counts the number of 1 bits in MAX; "COBn" means + "count the number of 1 bits in the low-order n bits"). */ +#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) +#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) +#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) +#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) +#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) +#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) +#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) + +#ifndef WORD_BIT +/* Assume 'int' is 32 bits wide. */ +# define WORD_BIT 32 +#endif +#ifndef LONG_BIT +/* Assume 'long' is 32 or 64 bits wide. */ +# if LONG_MAX == INT_MAX +# define LONG_BIT 32 +# else +# define LONG_BIT 64 +# endif +#endif + +/* Macros specified by C2x and by ISO/IEC TS 18661-1:2014. */ + +#if (! defined ULLONG_WIDTH \ + && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \ + || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) +# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) +# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) +# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) +# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) +# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) +# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) +# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) +# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) +# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) +# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) +# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) +#endif + +/* Macros specified by C2x. */ + +#if (! defined BOOL_WIDTH \ + && (defined _GNU_SOURCE \ + || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) +# define BOOL_MAX 1 +# define BOOL_WIDTH 1 +#endif + +#endif /* _@GUARD_PREFIX@_LIMITS_H */ +#endif /* _@GUARD_PREFIX@_LIMITS_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/localcharset.h b/3rdPartner/libiconv/srclib/localcharset.h new file mode 100644 index 0000000..62efbf3 --- /dev/null +++ b/3rdPartner/libiconv/srclib/localcharset.h @@ -0,0 +1,137 @@ +/* Determine a canonical name for the current locale's character encoding. + Copyright (C) 2000-2003, 2009-2022 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + + This file 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 file 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 program. If not, see . */ + +#ifndef _LOCALCHARSET_H +#define _LOCALCHARSET_H + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed below. + The result must not be freed; it is statically allocated. The result + becomes invalid when setlocale() is used to change the global locale, or + when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG + is changed; threads in multithreaded programs should not do this. + If the canonical name cannot be determined, the result is a non-canonical + name. */ +extern const char * locale_charset (void); + +/* About GNU canonical names for character encodings: + + Every canonical name must be supported by GNU libiconv. Support by GNU libc + is also desirable. + + The name is case insensitive. Usually an upper case MIME charset name is + preferred. + + The current list of these GNU canonical names is: + + name MIME? used by which systems + (darwin = Mac OS X, windows = native Windows) + + ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin + ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-3 Y glibc solaris cygwin + ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin + ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-6 Y glibc aix hpux solaris cygwin + ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos + ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos + ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-14 glibc cygwin + ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin + KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin + KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin + KOI8-T glibc + CP437 dos + CP775 dos + CP850 aix osf dos + CP852 dos + CP855 dos + CP856 aix + CP857 dos + CP861 dos + CP862 dos + CP864 dos + CP865 dos + CP866 freebsd netbsd openbsd darwin dos + CP869 dos + CP874 windows dos + CP922 aix + CP932 aix cygwin windows dos + CP943 aix zos + CP949 osf darwin windows dos + CP950 windows dos + CP1046 aix + CP1124 aix + CP1125 dos + CP1129 aix + CP1131 freebsd darwin + CP1250 windows + CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows + CP1252 aix windows + CP1253 windows + CP1254 windows + CP1255 glibc windows + CP1256 windows + CP1257 windows + GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos + EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos + EUC-TW glibc aix hpux irix osf solaris netbsd + BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos + BIG5-HKSCS glibc hpux solaris netbsd darwin + GBK glibc aix osf solaris freebsd darwin cygwin windows dos + GB18030 glibc hpux solaris freebsd netbsd darwin + SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin + JOHAB glibc solaris windows + TIS-620 glibc aix hpux osf solaris cygwin zos + VISCII Y glibc + TCVN5712-1 glibc + ARMSCII-8 glibc freebsd netbsd darwin + GEORGIAN-PS glibc cygwin + PT154 glibc netbsd cygwin + HP-ROMAN8 hpux + HP-ARABIC8 hpux + HP-GREEK8 hpux + HP-HEBREW8 hpux + HP-TURKISH8 hpux + HP-KANA8 hpux + DEC-KANJI osf + DEC-HANYU osf + UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin zos + + Note: Names which are not marked as being a MIME name should not be used in + Internet protocols for information interchange (mail, news, etc.). + + Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications + must understand both names and treat them as equivalent. + */ + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LOCALCHARSET_H */ diff --git a/3rdPartner/libiconv/srclib/malloc.c b/3rdPartner/libiconv/srclib/malloc.c new file mode 100644 index 0000000..f334dd6 --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc.c @@ -0,0 +1,51 @@ +/* malloc() function that is glibc compatible. + + Copyright (C) 1997-1998, 2006-2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Jim Meyering and Bruno Haible */ + +#define _GL_USE_STDLIB_ALLOC 1 +#include + +#include + +#include + +#include "xalloc-oversized.h" + +/* Allocate an N-byte block of memory from the heap, even if N is 0. */ + +void * +rpl_malloc (size_t n) +{ + if (n == 0) + n = 1; + + if (xalloc_oversized (n, 1)) + { + errno = ENOMEM; + return NULL; + } + + void *result = malloc (n); + +#if !HAVE_MALLOC_POSIX + if (result == NULL) + errno = ENOMEM; +#endif + + return result; +} diff --git a/3rdPartner/libiconv/srclib/malloc/scratch_buffer.h b/3rdPartner/libiconv/srclib/malloc/scratch_buffer.h new file mode 100644 index 0000000..e4c5c8a --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc/scratch_buffer.h @@ -0,0 +1,151 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2015-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _SCRATCH_BUFFER_H +#define _SCRATCH_BUFFER_H + +/* Scratch buffers with a default stack allocation and fallback to + heap allocation. It is expected that this function is used in this + way: + + struct scratch_buffer tmpbuf; + scratch_buffer_init (&tmpbuf); + + while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) + if (!scratch_buffer_grow (&tmpbuf)) + return -1; + + scratch_buffer_free (&tmpbuf); + return 0; + + The allocation functions (scratch_buffer_grow, + scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make + sure that the heap allocation, if any, is freed, so that the code + above does not have a memory leak. The buffer still remains in a + state that can be deallocated using scratch_buffer_free, so a loop + like this is valid as well: + + struct scratch_buffer tmpbuf; + scratch_buffer_init (&tmpbuf); + + while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) + if (!scratch_buffer_grow (&tmpbuf)) + break; + + scratch_buffer_free (&tmpbuf); + + scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed + to grow the buffer by at least 512 bytes. This means that when + using the scratch buffer as a backing store for a non-character + array whose element size, in bytes, is 512 or smaller, the scratch + buffer only has to grow once to make room for at least one more + element. +*/ + +#include +#include +#include + +/* Scratch buffer. Must be initialized with scratch_buffer_init + before its use. */ +struct scratch_buffer { + void *data; /* Pointer to the beginning of the scratch area. */ + size_t length; /* Allocated space at the data pointer, in bytes. */ + union { max_align_t __align; char __c[1024]; } __space; +}; + +/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space + and BUFFER->length reflects the available space. */ +static inline void +scratch_buffer_init (struct scratch_buffer *buffer) +{ + buffer->data = buffer->__space.__c; + buffer->length = sizeof (buffer->__space); +} + +/* Deallocates *BUFFER (if it was heap-allocated). */ +static inline void +scratch_buffer_free (struct scratch_buffer *buffer) +{ + if (buffer->data != buffer->__space.__c) + free (buffer->data); +} + +/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT + preserved. Return true on success, false on allocation failure (in + which case the old buffer is freed). On success, the new buffer is + larger than the previous size. On failure, *BUFFER is deallocated, + but remains in a free-able state, and errno is set. */ +bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer); +libc_hidden_proto (__libc_scratch_buffer_grow) + +/* Alias for __libc_scratch_buffer_grow. */ +static __always_inline bool +scratch_buffer_grow (struct scratch_buffer *buffer) +{ + return __glibc_likely (__libc_scratch_buffer_grow (buffer)); +} + +/* Like __libc_scratch_buffer_grow, but preserve the old buffer + contents on success, as a prefix of the new buffer. */ +bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer); +libc_hidden_proto (__libc_scratch_buffer_grow_preserve) + +/* Alias for __libc_scratch_buffer_grow_preserve. */ +static __always_inline bool +scratch_buffer_grow_preserve (struct scratch_buffer *buffer) +{ + return __glibc_likely (__libc_scratch_buffer_grow_preserve (buffer)); +} + +/* Grow *BUFFER so that it can store at least NELEM elements of SIZE + bytes. The buffer contents are NOT preserved. Both NELEM and SIZE + can be zero. Return true on success, false on allocation failure + (in which case the old buffer is freed, but *BUFFER remains in a + free-able state, and errno is set). It is unspecified whether this + function can reduce the array size. */ +bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, + size_t nelem, size_t size); +libc_hidden_proto (__libc_scratch_buffer_set_array_size) + +/* Alias for __libc_scratch_set_array_size. */ +static __always_inline bool +scratch_buffer_set_array_size (struct scratch_buffer *buffer, + size_t nelem, size_t size) +{ + return __glibc_likely (__libc_scratch_buffer_set_array_size + (buffer, nelem, size)); +} + +/* Return a copy of *BUFFER's first SIZE bytes as a heap-allocated block, + deallocating *BUFFER if it was heap-allocated. SIZE must be at + most *BUFFER's size. Return NULL (setting errno) on memory + exhaustion. */ +void *__libc_scratch_buffer_dupfree (struct scratch_buffer *buffer, + size_t size); +libc_hidden_proto (__libc_scratch_buffer_dupfree) + +/* Alias for __libc_scratch_dupfree. */ +static __always_inline void * +scratch_buffer_dupfree (struct scratch_buffer *buffer, size_t size) +{ + void *r = __libc_scratch_buffer_dupfree (buffer, size); + return __glibc_likely (r != NULL) ? r : NULL; +} + +#endif /* _SCRATCH_BUFFER_H */ diff --git a/3rdPartner/libiconv/srclib/malloc/scratch_buffer_dupfree.c b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_dupfree.c new file mode 100644 index 0000000..eb3b95c --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_dupfree.c @@ -0,0 +1,41 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2020-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _LIBC +# include +#endif + +#include +#include + +void * +__libc_scratch_buffer_dupfree (struct scratch_buffer *buffer, size_t size) +{ + void *data = buffer->data; + if (data == buffer->__space.__c) + { + void *copy = malloc (size); + return copy != NULL ? memcpy (copy, data, size) : NULL; + } + else + { + void *copy = realloc (data, size); + return copy != NULL ? copy : data; + } +} +libc_hidden_def (__libc_scratch_buffer_dupfree) diff --git a/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow.c b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow.c new file mode 100644 index 0000000..9a5e4db --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow.c @@ -0,0 +1,56 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2015-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _LIBC +# include +#endif + +#include +#include + +bool +__libc_scratch_buffer_grow (struct scratch_buffer *buffer) +{ + void *new_ptr; + size_t new_length = buffer->length * 2; + + /* Discard old buffer. */ + scratch_buffer_free (buffer); + + /* Check for overflow. */ + if (__glibc_likely (new_length >= buffer->length)) + new_ptr = malloc (new_length); + else + { + __set_errno (ENOMEM); + new_ptr = NULL; + } + + if (__glibc_unlikely (new_ptr == NULL)) + { + /* Buffer must remain valid to free. */ + scratch_buffer_init (buffer); + return false; + } + + /* Install new heap-based buffer. */ + buffer->data = new_ptr; + buffer->length = new_length; + return true; +} +libc_hidden_def (__libc_scratch_buffer_grow) diff --git a/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c new file mode 100644 index 0000000..3fe5a07 --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c @@ -0,0 +1,67 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2015-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _LIBC +# include +#endif + +#include +#include +#include + +bool +__libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer) +{ + size_t new_length = 2 * buffer->length; + void *new_ptr; + + if (buffer->data == buffer->__space.__c) + { + /* Move buffer to the heap. No overflow is possible because + buffer->length describes a small buffer on the stack. */ + new_ptr = malloc (new_length); + if (new_ptr == NULL) + return false; + memcpy (new_ptr, buffer->__space.__c, buffer->length); + } + else + { + /* Buffer was already on the heap. Check for overflow. */ + if (__glibc_likely (new_length >= buffer->length)) + new_ptr = realloc (buffer->data, new_length); + else + { + __set_errno (ENOMEM); + new_ptr = NULL; + } + + if (__glibc_unlikely (new_ptr == NULL)) + { + /* Deallocate, but buffer must remain valid to free. */ + free (buffer->data); + scratch_buffer_init (buffer); + return false; + } + } + + /* Install new heap-based buffer. */ + buffer->data = new_ptr; + buffer->length = new_length; + return true; +} +libc_hidden_def (__libc_scratch_buffer_grow_preserve) diff --git a/3rdPartner/libiconv/srclib/malloc/scratch_buffer_set_array_size.c b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_set_array_size.c new file mode 100644 index 0000000..89c37a9 --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloc/scratch_buffer_set_array_size.c @@ -0,0 +1,64 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2015-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C 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. + + The GNU C 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 the GNU C Library; if not, see + . */ + +#ifndef _LIBC +# include +#endif + +#include +#include +#include + +bool +__libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, + size_t nelem, size_t size) +{ + size_t new_length = nelem * size; + + /* Avoid overflow check if both values are small. */ + if ((nelem | size) >> (sizeof (size_t) * CHAR_BIT / 2) != 0 + && nelem != 0 && size != new_length / nelem) + { + /* Overflow. Discard the old buffer, but it must remain valid + to free. */ + scratch_buffer_free (buffer); + scratch_buffer_init (buffer); + __set_errno (ENOMEM); + return false; + } + + if (new_length <= buffer->length) + return true; + + /* Discard old buffer. */ + scratch_buffer_free (buffer); + + char *new_ptr = malloc (new_length); + if (new_ptr == NULL) + { + /* Buffer must remain valid to free. */ + scratch_buffer_init (buffer); + return false; + } + + /* Install new heap-based buffer. */ + buffer->data = new_ptr; + buffer->length = new_length; + return true; +} +libc_hidden_def (__libc_scratch_buffer_set_array_size) diff --git a/3rdPartner/libiconv/srclib/malloca.c b/3rdPartner/libiconv/srclib/malloca.c new file mode 100644 index 0000000..e7beaaf --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloca.c @@ -0,0 +1,113 @@ +/* Safe automatic memory allocation. + Copyright (C) 2003, 2006-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003, 2018. + + This file 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 file 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 program. If not, see . */ + +#define _GL_USE_STDLIB_ALLOC 1 +#include + +/* Specification. */ +#include "malloca.h" + +#include "idx.h" +#include "intprops.h" +#include "verify.h" + +/* The speed critical point in this file is freea() applied to an alloca() + result: it must be fast, to match the speed of alloca(). The speed of + mmalloca() and freea() in the other case are not critical, because they + are only invoked for big memory sizes. + Here we use a bit in the address as an indicator, an idea by Ondřej Bílka. + malloca() can return three types of pointers: + - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. + - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap + allocation. + - NULL comes from a failed heap allocation. */ + +/* Type for holding very small pointer differences. */ +typedef unsigned char small_t; +/* Verify that it is wide enough. */ +verify (2 * sa_alignment_max - 1 <= (small_t) -1); + +void * +mmalloca (size_t n) +{ +#if HAVE_ALLOCA + /* Allocate one more word, used to determine the address to pass to freea(), + and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ + uintptr_t alignment2_mask = 2 * sa_alignment_max - 1; + int plus = sizeof (small_t) + alignment2_mask; + idx_t nplus; + if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1)) + { + char *mem = (char *) malloc (nplus); + + if (mem != NULL) + { + uintptr_t umem = (uintptr_t)mem, umemplus; + /* The INT_ADD_WRAPV avoids signed integer overflow on + theoretical platforms where UINTPTR_MAX <= INT_MAX. */ + INT_ADD_WRAPV (umem, sizeof (small_t) + sa_alignment_max - 1, + &umemplus); + idx_t offset = ((umemplus & ~alignment2_mask) + + sa_alignment_max - umem); + void *vp = mem + offset; + small_t *p = vp; + /* Here p >= mem + sizeof (small_t), + and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 + hence p + n <= mem + nplus. + So, the memory range [p, p+n) lies in the allocated memory range + [mem, mem + nplus). */ + p[-1] = offset; + /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ + return p; + } + } + /* Out of memory. */ + return NULL; +#else +# if !MALLOC_0_IS_NONNULL + if (n == 0) + n = 1; +# endif + return malloc (n); +#endif +} + +#if HAVE_ALLOCA +void +freea (void *p) +{ + /* Check argument. */ + if ((uintptr_t) p & (sa_alignment_max - 1)) + { + /* p was not the result of a malloca() call. Invalid argument. */ + abort (); + } + /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ + if ((uintptr_t) p & sa_alignment_max) + { + void *mem = (char *) p - ((small_t *) p)[-1]; + free (mem); + } +} +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/3rdPartner/libiconv/srclib/malloca.h b/3rdPartner/libiconv/srclib/malloca.h new file mode 100644 index 0000000..7ec235f --- /dev/null +++ b/3rdPartner/libiconv/srclib/malloca.h @@ -0,0 +1,126 @@ +/* Safe automatic memory allocation. + Copyright (C) 2003-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + This file 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 file 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 program. If not, see . */ + +#ifndef _MALLOCA_H +#define _MALLOCA_H + +#include +#include +#include +#include + +#include "xalloc-oversized.h" + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* safe_alloca(N) is equivalent to alloca(N) when it is safe to call + alloca(N); otherwise it returns NULL. It either returns N bytes of + memory allocated on the stack, that lasts until the function returns, + or NULL. + Use of safe_alloca should be avoided: + - inside arguments of function calls - undefined behaviour, + - in inline functions - the allocation may actually last until the + calling function returns. +*/ +#if HAVE_ALLOCA +/* The OS usually guarantees only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + allocate anything larger than 4096 bytes. Also care for the possibility + of a few compiler-allocated temporary stack slots. + This must be a macro, not a function. */ +# define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) +#else +# define safe_alloca(N) ((void) (N), NULL) +#endif + +/* Free a block of memory allocated through malloca(). */ +#if HAVE_ALLOCA +extern void freea (void *p); +#else +# define freea free +#endif + +/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of + memory allocated on the stack, that must be freed using freea() before + the function returns. Upon failure, it returns NULL. */ +#if HAVE_ALLOCA +# define malloca(N) \ + ((N) < 4032 - (2 * sa_alignment_max - 1) \ + ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ + + (2 * sa_alignment_max - 1)) \ + & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ + : mmalloca (N)) +#else +# define malloca(N) \ + mmalloca (N) +#endif +extern void *mmalloca (size_t n) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) + _GL_ATTRIBUTE_ALLOC_SIZE ((1)); + +/* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). + It allocates an array of N objects, each with S bytes of memory, + on the stack. N and S should be nonnegative and free of side effects. + The array must be freed using freea() before the function returns. */ +#define nmalloca(n, s) \ + (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) + + +#ifdef __cplusplus +} +#endif + + +/* ------------------- Auxiliary, non-public definitions ------------------- */ + +/* Determine the alignment of a type at compile time. */ +#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ +# define sa_alignof __alignof__ +#elif defined __cplusplus + template struct sa_alignof_helper { char __slot1; type __slot2; }; +# define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) +#elif defined __hpux + /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof + values. */ +# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) +#elif defined _AIX + /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof + values. */ +# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) +#else +# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) +#endif + +enum +{ +/* The desired alignment of memory allocations is the maximum alignment + among all elementary types. */ + sa_alignment_long = sa_alignof (long), + sa_alignment_double = sa_alignof (double), + sa_alignment_longlong = sa_alignof (long long), + sa_alignment_longdouble = sa_alignof (long double), + sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) + | (sa_alignment_longlong - 1) + | (sa_alignment_longdouble - 1) + ) + 1 +}; + +#endif /* _MALLOCA_H */ diff --git a/3rdPartner/libiconv/srclib/mempcpy.c b/3rdPartner/libiconv/srclib/mempcpy.c new file mode 100644 index 0000000..9aae418 --- /dev/null +++ b/3rdPartner/libiconv/srclib/mempcpy.c @@ -0,0 +1,33 @@ +/* Copy memory area and return pointer after last written byte. + Copyright (C) 2003, 2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +/* A function definition is only needed if HAVE_MEMPCPY is not defined. */ +#if !HAVE_MEMPCPY + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +void * +mempcpy (void *dest, const void *src, size_t n) +{ + return (char *) memcpy (dest, src, n) + n; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/minmax.h b/3rdPartner/libiconv/srclib/minmax.h new file mode 100644 index 0000000..b4b1345 --- /dev/null +++ b/3rdPartner/libiconv/srclib/minmax.h @@ -0,0 +1,60 @@ +/* MIN, MAX macros. + Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _MINMAX_H +#define _MINMAX_H + +/* Note: MIN, MAX are also defined in on some systems + (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about + MIN, MAX macro redefinitions on some systems; the workaround is to + #include this file as the last one among the #include list. */ + +/* Before we define the following symbols we get the file + since otherwise we get redefinitions on some systems if is + included after this file. Likewise for . + If more than one of these system headers define MIN and MAX, pick just + one of the headers (because the definitions most likely are the same). */ +#if HAVE_MINMAX_IN_LIMITS_H +# include +#elif HAVE_MINMAX_IN_SYS_PARAM_H +# include +#endif + +/* Note: MIN and MAX should be used with two arguments of the + same type. They might not return the minimum and maximum of their two + arguments, if the arguments have different types or have unusual + floating-point values. For example, on a typical host with 32-bit 'int', + 64-bit 'long long', and 64-bit IEEE 754 'double' types: + + MAX (-1, 2147483648) returns 4294967295. + MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. + MAX (NaN, 0.0) returns 0.0. + MAX (+0.0, -0.0) returns -0.0. + + and in each case the answer is in some sense bogus. */ + +/* MAX(a,b) returns the maximum of A and B. */ +#ifndef MAX +# define MAX(a,b) ((a) > (b) ? (a) : (b)) +#endif + +/* MIN(a,b) returns the minimum of A and B. */ +#ifndef MIN +# define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif + +#endif /* _MINMAX_H */ diff --git a/3rdPartner/libiconv/srclib/msvc-inval.c b/3rdPartner/libiconv/srclib/msvc-inval.c new file mode 100644 index 0000000..d6651ca --- /dev/null +++ b/3rdPartner/libiconv/srclib/msvc-inval.c @@ -0,0 +1,129 @@ +/* Invalid parameter handler for MSVC runtime libraries. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include "msvc-inval.h" + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ + && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) + +/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler + declaration. */ +# include + +# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING + +static void __cdecl +gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, + unsigned int line, + uintptr_t dummy) +{ +} + +# else + +/* Get declarations of the native Windows API functions. */ +# define WIN32_LEAN_AND_MEAN +# include + +# if defined _MSC_VER + +static void __cdecl +gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, + unsigned int line, + uintptr_t dummy) +{ + RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); +} + +# else + +/* An index to thread-local storage. */ +static DWORD tls_index; +static int tls_initialized /* = 0 */; + +/* Used as a fallback only. */ +static struct gl_msvc_inval_per_thread not_per_thread; + +struct gl_msvc_inval_per_thread * +gl_msvc_inval_current (void) +{ + if (!tls_initialized) + { + tls_index = TlsAlloc (); + tls_initialized = 1; + } + if (tls_index == TLS_OUT_OF_INDEXES) + /* TlsAlloc had failed. */ + return ¬_per_thread; + else + { + struct gl_msvc_inval_per_thread *pointer = + (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); + if (pointer == NULL) + { + /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ + pointer = + (struct gl_msvc_inval_per_thread *) + malloc (sizeof (struct gl_msvc_inval_per_thread)); + if (pointer == NULL) + /* Could not allocate memory. Use the global storage. */ + pointer = ¬_per_thread; + TlsSetValue (tls_index, pointer); + } + return pointer; + } +} + +static void __cdecl +gl_msvc_invalid_parameter_handler (const wchar_t *expression, + const wchar_t *function, + const wchar_t *file, + unsigned int line, + uintptr_t dummy) +{ + struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); + if (current->restart_valid) + longjmp (current->restart, 1); + else + /* An invalid parameter notification from outside the gnulib code. + Give the caller a chance to intervene. */ + RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); +} + +# endif + +# endif + +static int gl_msvc_inval_initialized /* = 0 */; + +void +gl_msvc_inval_ensure_handler (void) +{ + if (gl_msvc_inval_initialized == 0) + { + _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); + gl_msvc_inval_initialized = 1; + } +} + +#endif diff --git a/3rdPartner/libiconv/srclib/msvc-inval.h b/3rdPartner/libiconv/srclib/msvc-inval.h new file mode 100644 index 0000000..1230b89 --- /dev/null +++ b/3rdPartner/libiconv/srclib/msvc-inval.h @@ -0,0 +1,222 @@ +/* Invalid parameter handler for MSVC runtime libraries. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _MSVC_INVAL_H +#define _MSVC_INVAL_H + +/* With MSVC runtime libraries with the "invalid parameter handler" concept, + functions like fprintf(), dup2(), or close() crash when the caller passes + an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) + instead. + This file defines macros that turn such an invalid parameter notification + into a non-local exit. An error code can then be produced at the target + of this exit. You can thus write code like + + TRY_MSVC_INVAL + { + + } + CATCH_MSVC_INVAL + { + + } + DONE_MSVC_INVAL; + + This entire block expands to a single statement. + + The handling of invalid parameters can be done in three ways: + + * The default way, which is reasonable for programs (not libraries): + AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) + + * The way for libraries that make "hairy" calls (like close(-1), or + fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): + AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) + + * The way for libraries that make no "hairy" calls: + AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) + */ + +#define DEFAULT_HANDLING 0 +#define HAIRY_LIBRARY_HANDLING 1 +#define SANE_LIBRARY_HANDLING 2 + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ + && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) +/* A native Windows platform with the "invalid parameter handler" concept, + and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ + +# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING +/* Default handling. */ + +# ifdef __cplusplus +extern "C" { +# endif + +/* Ensure that the invalid parameter handler in installed that just returns. + Because we assume no other part of the program installs a different + invalid parameter handler, this solution is multithread-safe. */ +extern void gl_msvc_inval_ensure_handler (void); + +# ifdef __cplusplus +} +# endif + +# define TRY_MSVC_INVAL \ + do \ + { \ + gl_msvc_inval_ensure_handler (); \ + if (1) +# define CATCH_MSVC_INVAL \ + else +# define DONE_MSVC_INVAL \ + } \ + while (0) + +# else +/* Handling for hairy libraries. */ + +# include + +/* Gnulib can define its own status codes, as described in the page + "Raising Software Exceptions" on microsoft.com + . + Our status codes are composed of + - 0xE0000000, mandatory for all user-defined status codes, + - 0x474E550, a API identifier ("GNU"), + - 0, 1, 2, ..., used to distinguish different status codes from the + same API. */ +# define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) + +# if defined _MSC_VER +/* A compiler that supports __try/__except, as described in the page + "try-except statement" on microsoft.com + . + With __try/__except, we can use the multithread-safe exception handling. */ + +# ifdef __cplusplus +extern "C" { +# endif + +/* Ensure that the invalid parameter handler in installed that raises a + software exception with code STATUS_GNULIB_INVALID_PARAMETER. + Because we assume no other part of the program installs a different + invalid parameter handler, this solution is multithread-safe. */ +extern void gl_msvc_inval_ensure_handler (void); + +# ifdef __cplusplus +} +# endif + +# define TRY_MSVC_INVAL \ + do \ + { \ + gl_msvc_inval_ensure_handler (); \ + __try +# define CATCH_MSVC_INVAL \ + __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ + ? EXCEPTION_EXECUTE_HANDLER \ + : EXCEPTION_CONTINUE_SEARCH) +# define DONE_MSVC_INVAL \ + } \ + while (0) + +# else +/* Any compiler. + We can only use setjmp/longjmp. */ + +# include + +# ifdef __cplusplus +extern "C" { +# endif + +struct gl_msvc_inval_per_thread +{ + /* The restart that will resume execution at the code between + CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between + TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ + jmp_buf restart; + + /* Tells whether the contents of restart is valid. */ + int restart_valid; +}; + +/* Ensure that the invalid parameter handler in installed that passes + control to the gl_msvc_inval_restart if it is valid, or raises a + software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. + Because we assume no other part of the program installs a different + invalid parameter handler, this solution is multithread-safe. */ +extern void gl_msvc_inval_ensure_handler (void); + +/* Return a pointer to the per-thread data for the current thread. */ +extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); + +# ifdef __cplusplus +} +# endif + +# define TRY_MSVC_INVAL \ + do \ + { \ + struct gl_msvc_inval_per_thread *msvc_inval_current; \ + gl_msvc_inval_ensure_handler (); \ + msvc_inval_current = gl_msvc_inval_current (); \ + /* First, initialize gl_msvc_inval_restart. */ \ + if (setjmp (msvc_inval_current->restart) == 0) \ + { \ + /* Then, mark it as valid. */ \ + msvc_inval_current->restart_valid = 1; +# define CATCH_MSVC_INVAL \ + /* Execution completed. \ + Mark gl_msvc_inval_restart as invalid. */ \ + msvc_inval_current->restart_valid = 0; \ + } \ + else \ + { \ + /* Execution triggered an invalid parameter notification. \ + Mark gl_msvc_inval_restart as invalid. */ \ + msvc_inval_current->restart_valid = 0; +# define DONE_MSVC_INVAL \ + } \ + } \ + while (0) + +# endif + +# endif + +#else +/* A platform that does not need to the invalid parameter handler, + or when SANE_LIBRARY_HANDLING is desired. */ + +/* The braces here avoid GCC warnings like + "warning: suggest explicit braces to avoid ambiguous 'else'". */ +# define TRY_MSVC_INVAL \ + do \ + { \ + if (1) +# define CATCH_MSVC_INVAL \ + else +# define DONE_MSVC_INVAL \ + } \ + while (0) + +#endif + +#endif /* _MSVC_INVAL_H */ diff --git a/3rdPartner/libiconv/srclib/msvc-nothrow.c b/3rdPartner/libiconv/srclib/msvc-nothrow.c new file mode 100644 index 0000000..aa06964 --- /dev/null +++ b/3rdPartner/libiconv/srclib/msvc-nothrow.c @@ -0,0 +1,51 @@ +/* Wrappers that don't throw invalid parameter notifications + with MSVC runtime libraries. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include "msvc-nothrow.h" + +/* Get declarations of the native Windows API functions. */ +#define WIN32_LEAN_AND_MEAN +#include + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +#endif + +#undef _get_osfhandle + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +intptr_t +_gl_nothrow_get_osfhandle (int fd) +{ + intptr_t result; + + TRY_MSVC_INVAL + { + result = _get_osfhandle (fd); + } + CATCH_MSVC_INVAL + { + result = (intptr_t) INVALID_HANDLE_VALUE; + } + DONE_MSVC_INVAL; + + return result; +} +#endif diff --git a/3rdPartner/libiconv/srclib/msvc-nothrow.h b/3rdPartner/libiconv/srclib/msvc-nothrow.h new file mode 100644 index 0000000..5345155 --- /dev/null +++ b/3rdPartner/libiconv/srclib/msvc-nothrow.h @@ -0,0 +1,43 @@ +/* Wrappers that don't throw invalid parameter notifications + with MSVC runtime libraries. + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _MSVC_NOTHROW_H +#define _MSVC_NOTHROW_H + +/* With MSVC runtime libraries with the "invalid parameter handler" concept, + functions like fprintf(), dup2(), or close() crash when the caller passes + an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) + instead. + This file defines wrappers that turn such an invalid parameter notification + into an error code. */ + +#if defined _WIN32 && ! defined __CYGWIN__ + +/* Get original declaration of _get_osfhandle. */ +# include + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER + +/* Override _get_osfhandle. */ +extern intptr_t _gl_nothrow_get_osfhandle (int fd); +# define _get_osfhandle _gl_nothrow_get_osfhandle + +# endif + +#endif + +#endif /* _MSVC_NOTHROW_H */ diff --git a/3rdPartner/libiconv/srclib/open.c b/3rdPartner/libiconv/srclib/open.c new file mode 100644 index 0000000..170bff1 --- /dev/null +++ b/3rdPartner/libiconv/srclib/open.c @@ -0,0 +1,209 @@ +/* Open a descriptor to a file. + Copyright (C) 2007-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Bruno Haible , 2007. */ + +/* If the user's config.h happens to include , let it include only + the system's here, so that orig_open doesn't recurse to + rpl_open. */ +#define __need_system_fcntl_h +#include + +/* Get the original definition of open. It might be defined as a macro. */ +#include +#include +#undef __need_system_fcntl_h + +static int +orig_open (const char *filename, int flags, mode_t mode) +{ +#if defined _WIN32 && !defined __CYGWIN__ + return _open (filename, flags, mode); +#else + return open (filename, flags, mode); +#endif +} + +/* Specification. */ +/* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates + this include because of the preliminary #include above. */ +#include "fcntl.h" + +#include "cloexec.h" + +#include +#include +#include +#include +#include +#include + +#ifndef REPLACE_OPEN_DIRECTORY +# define REPLACE_OPEN_DIRECTORY 0 +#endif + +int +open (const char *filename, int flags, ...) +{ + /* 0 = unknown, 1 = yes, -1 = no. */ +#if GNULIB_defined_O_CLOEXEC + int have_cloexec = -1; +#else + static int have_cloexec; +#endif + + mode_t mode; + int fd; + + mode = 0; + if (flags & O_CREAT) + { + va_list arg; + va_start (arg, flags); + + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (arg, PROMOTED_MODE_T); + + va_end (arg); + } + +#if GNULIB_defined_O_NONBLOCK + /* The only known platform that lacks O_NONBLOCK is mingw, but it + also lacks named pipes and Unix sockets, which are the only two + file types that require non-blocking handling in open(). + Therefore, it is safe to ignore O_NONBLOCK here. It is handy + that mingw also lacks openat(), so that is also covered here. */ + flags &= ~O_NONBLOCK; +#endif + +#if defined _WIN32 && ! defined __CYGWIN__ + if (strcmp (filename, "/dev/null") == 0) + filename = "NUL"; +#endif + +#if OPEN_TRAILING_SLASH_BUG + /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename + ends in a slash, as POSIX says such a filename must name a directory + : + "A pathname that contains at least one non- character and that + ends with one or more trailing characters shall not be resolved + successfully unless the last pathname component before the trailing + characters names an existing directory" + If the named file already exists as a directory, then + - if O_CREAT is specified, open() must fail because of the semantics + of O_CREAT, + - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX + + says that it fails with errno = EISDIR in this case. + If the named file does not exist or does not name a directory, then + - if O_CREAT is specified, open() must fail since open() cannot create + directories, + - if O_WRONLY or O_RDWR is specified, open() must fail because the + file does not contain a '.' directory. */ + if ((flags & O_CREAT) + || (flags & O_ACCMODE) == O_RDWR + || (flags & O_ACCMODE) == O_WRONLY) + { + size_t len = strlen (filename); + if (len > 0 && filename[len - 1] == '/') + { + errno = EISDIR; + return -1; + } + } +#endif + + fd = orig_open (filename, + flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); + + if (flags & O_CLOEXEC) + { + if (! have_cloexec) + { + if (0 <= fd) + have_cloexec = 1; + else if (errno == EINVAL) + { + fd = orig_open (filename, flags & ~O_CLOEXEC, mode); + have_cloexec = -1; + } + } + if (have_cloexec < 0 && 0 <= fd) + set_cloexec_flag (fd, true); + } + + +#if REPLACE_FCHDIR + /* Implementing fchdir and fdopendir requires the ability to open a + directory file descriptor. If open doesn't support that (as on + mingw), we use a dummy file that behaves the same as directories + on Linux (ie. always reports EOF on attempts to read()), and + override fstat() in fchdir.c to hide the fact that we have a + dummy. */ + if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES + && ((flags & O_ACCMODE) == O_RDONLY + || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) + { + struct stat statbuf; + if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) + { + /* Maximum recursion depth of 1. */ + fd = open ("/dev/null", flags, mode); + if (0 <= fd) + fd = _gl_register_fd (fd, filename); + } + else + errno = EACCES; + } +#endif + +#if OPEN_TRAILING_SLASH_BUG + /* If the filename ends in a slash and fd does not refer to a directory, + then fail. + Rationale: POSIX says such a filename must name a directory + : + "A pathname that contains at least one non- character and that + ends with one or more trailing characters shall not be resolved + successfully unless the last pathname component before the trailing + characters names an existing directory" + If the named file without the slash is not a directory, open() must fail + with ENOTDIR. */ + if (fd >= 0) + { + /* We know len is positive, since open did not fail with ENOENT. */ + size_t len = strlen (filename); + if (filename[len - 1] == '/') + { + struct stat statbuf; + + if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) + { + close (fd); + errno = ENOTDIR; + return -1; + } + } + } +#endif + +#if REPLACE_FCHDIR + if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) + fd = _gl_register_fd (fd, filename); +#endif + + return fd; +} diff --git a/3rdPartner/libiconv/srclib/pathmax.h b/3rdPartner/libiconv/srclib/pathmax.h new file mode 100644 index 0000000..19b93d7 --- /dev/null +++ b/3rdPartner/libiconv/srclib/pathmax.h @@ -0,0 +1,83 @@ +/* Define PATH_MAX somehow. Requires sys/types.h. + Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _PATHMAX_H +# define _PATHMAX_H + +/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, + including the terminating NUL byte. + + PATH_MAX is not defined on systems which have no limit on filename length, + such as GNU/Hurd. + + This file does *not* define PATH_MAX always. Programs that use this file + can handle the GNU/Hurd case in several ways: + - Either with a package-wide handling, or with a per-file handling, + - Either through a + #ifdef PATH_MAX + or through a fallback like + #ifndef PATH_MAX + # define PATH_MAX 8192 + #endif + or through a fallback like + #ifndef PATH_MAX + # define PATH_MAX pathconf ("/", _PC_PATH_MAX) + #endif + */ + +# include + +# include + +# ifndef _POSIX_PATH_MAX +# define _POSIX_PATH_MAX 256 +# endif + +/* Don't include sys/param.h if it already has been. */ +# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +# endif + +# if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +# endif + +# ifdef __hpux +/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, + *not* including the terminating NUL byte, and is set to 1023. + Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is + not defined at all any more. */ +# undef PATH_MAX +# define PATH_MAX 1024 +# endif + +# if defined _WIN32 && ! defined __CYGWIN__ +/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, + section "Maximum Path Length Limitation", + + explains that the maximum size of a filename, including the terminating + NUL byte, is 260 = 3 + 256 + 1. + This is the same value as + - FILENAME_MAX in , + - _MAX_PATH in , + - MAX_PATH in . + Undefine the original value, because mingw's gets it wrong. */ +# undef PATH_MAX +# define PATH_MAX 260 +# endif + +#endif /* _PATHMAX_H */ diff --git a/3rdPartner/libiconv/srclib/progname.c b/3rdPartner/libiconv/srclib/progname.c new file mode 100644 index 0000000..6f09c2b --- /dev/null +++ b/3rdPartner/libiconv/srclib/progname.c @@ -0,0 +1,92 @@ +/* Program name management. + Copyright (C) 2001-2003, 2005-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + 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 3 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, see . */ + + +#include + +/* Specification. */ +#undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */ +#include "progname.h" + +#include /* get program_invocation_name declaration */ +#include +#include +#include + + +/* String containing name the program is called with. + To be initialized by main(). */ +const char *program_name = NULL; + +/* Set program_name, based on argv[0]. + argv0 must be a string allocated with indefinite extent, and must not be + modified after this call. */ +void +set_program_name (const char *argv0) +{ + /* libtool creates a temporary executable whose name is sometimes prefixed + with "lt-" (depends on the platform). It also makes argv[0] absolute. + But the name of the temporary executable is a detail that should not be + visible to the end user and to the test suite. + Remove this "/.libs/" or "/.libs/lt-" prefix here. */ + const char *slash; + const char *base; + + /* Sanity check. POSIX requires the invoking process to pass a non-NULL + argv[0]. */ + if (argv0 == NULL) + { + /* It's a bug in the invoking program. Help diagnosing it. */ + fputs ("A NULL argv[0] was passed through an exec system call.\n", + stderr); + abort (); + } + + slash = strrchr (argv0, '/'); + base = (slash != NULL ? slash + 1 : argv0); + if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0) + { + argv0 = base; + if (strncmp (base, "lt-", 3) == 0) + { + argv0 = base + 3; + /* On glibc systems, remove the "lt-" prefix from the variable + program_invocation_short_name. */ +#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME + program_invocation_short_name = (char *) argv0; +#endif + } + } + + /* But don't strip off a leading / in general, because when the user + runs + /some/hidden/place/bin/cp foo foo + he should get the error message + /some/hidden/place/bin/cp: `foo' and `foo' are the same file + not + cp: `foo' and `foo' are the same file + */ + + program_name = argv0; + + /* On glibc systems, the error() function comes from libc and uses the + variable program_invocation_name, not program_name. So set this variable + as well. */ +#if HAVE_DECL_PROGRAM_INVOCATION_NAME + program_invocation_name = (char *) argv0; +#endif +} diff --git a/3rdPartner/libiconv/srclib/progname.h b/3rdPartner/libiconv/srclib/progname.h new file mode 100644 index 0000000..1556a1d --- /dev/null +++ b/3rdPartner/libiconv/srclib/progname.h @@ -0,0 +1,62 @@ +/* Program name management. + Copyright (C) 2001-2004, 2006, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + 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 3 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, see . */ + +#ifndef _PROGNAME_H +#define _PROGNAME_H + +/* Programs using this file should do the following in main(): + set_program_name (argv[0]); + */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* String containing name the program is called with. */ +extern DLL_VARIABLE const char *program_name; + +/* Set program_name, based on argv[0]. + argv0 must be a string allocated with indefinite extent, and must not be + modified after this call. */ +extern void set_program_name (const char *argv0); + +#if ENABLE_RELOCATABLE + +/* Set program_name, based on argv[0], and original installation prefix and + directory, for relocatability. */ +extern void set_program_name_and_installdir (const char *argv0, + const char *orig_installprefix, + const char *orig_installdir); +#undef set_program_name +#define set_program_name(ARG0) \ + set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) + +/* Return the full pathname of the current executable, based on the earlier + call to set_program_name_and_installdir. Return NULL if unknown. */ +extern char *get_full_program_name (void); + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _PROGNAME_H */ diff --git a/3rdPartner/libiconv/srclib/progreloc.c b/3rdPartner/libiconv/srclib/progreloc.c new file mode 100644 index 0000000..8bb2576 --- /dev/null +++ b/3rdPartner/libiconv/srclib/progreloc.c @@ -0,0 +1,511 @@ +/* Provide relocatable programs. + Copyright (C) 2003-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + 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 3 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, see . */ + + +#define _GL_USE_STDLIB_ALLOC 1 +#include + +/* Specification. */ +#include "progname.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +/* Get declaration of _NSGetExecutablePath on Mac OS X 10.2 or newer. */ +#if HAVE_MACH_O_DYLD_H +# include +#endif + +#if defined _WIN32 && !defined __CYGWIN__ +# define WINDOWS_NATIVE +#endif + +#ifdef WINDOWS_NATIVE +# define WIN32_LEAN_AND_MEAN +# include +#endif + +#ifdef __EMX__ +# define INCL_DOS +# include +#endif + +#include "relocatable.h" + +#ifdef NO_XMALLOC +# include "areadlink.h" +# define xreadlink areadlink +#else +# include "xreadlink.h" +#endif + +#ifdef NO_XMALLOC +# define xmalloc malloc +# define xstrdup strdup +#else +# include "xalloc.h" +#endif + +#ifndef O_EXEC +# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ +#endif + +#if defined IN_RELOCWRAPPER && (!defined O_CLOEXEC || GNULIB_defined_O_CLOEXEC) +# undef O_CLOEXEC +# define O_CLOEXEC 0 +#endif + +/* Declare canonicalize_file_name. + The included above may be the system's one, not the gnulib + one. */ +extern char * canonicalize_file_name (const char *name); + +#if defined WINDOWS_NATIVE +/* Don't assume that UNICODE is not defined. */ +# undef GetModuleFileName +# define GetModuleFileName GetModuleFileNameA +#endif + +/* Pathname support. + ISSLASH(C) tests whether C is a directory separator character. + IS_FILE_NAME_WITH_DIR(P) tests whether P contains a directory specification. + */ +#if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ + /* Native Windows, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +# define HAS_DEVICE(P) \ + ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ + && (P)[1] == ':') +# define IS_FILE_NAME_WITH_DIR(P) \ + (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) +# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) +#else + /* Unix */ +# define ISSLASH(C) ((C) == '/') +# define IS_FILE_NAME_WITH_DIR(P) (strchr (P, '/') != NULL) +# define FILE_SYSTEM_PREFIX_LEN(P) 0 +#endif + +/* Use the system functions, not the gnulib overrides in this file. */ +#undef sprintf + +#undef set_program_name + + +#if ENABLE_RELOCATABLE + +#ifdef __sun + +/* Helper function, from gnulib module 'safe-read'. */ +static size_t +safe_read (int fd, void *buf, size_t count) +{ + for (;;) + { + ssize_t result = read (fd, buf, count); + + if (0 <= result || errno != EINTR) + return result; + } +} + +/* Helper function, from gnulib module 'full-read'. */ +static size_t +full_read (int fd, void *buf, size_t count) +{ + size_t total = 0; + const char *ptr = (const char *) buf; + + while (count > 0) + { + size_t n = safe_read (fd, ptr, count); + if (n == (size_t) -1) + break; + if (n == 0) + { + errno = 0; + break; + } + total += n; + ptr += n; + count -= n; + } + + return total; +} + +#endif + +#if defined __linux__ || defined __CYGWIN__ +/* File descriptor of the executable. + (Only used to verify that we find the correct executable.) */ +static int executable_fd = -1; +#endif + +/* Define this function only when it's needed. */ +#if !(defined WINDOWS_NATIVE || defined __EMX__) + +/* Tests whether a given filename may belong to the executable. */ +static bool +maybe_executable (const char *filename) +{ + /* The native Windows API lacks the access() function. */ +# if !defined WINDOWS_NATIVE + if (access (filename, X_OK) < 0) + return false; +# endif + +# if defined __linux__ || defined __CYGWIN__ + if (executable_fd >= 0) + { + /* If we already have an executable_fd, check that filename points to + the same inode. */ + struct stat statexe; + struct stat statfile; + + if (fstat (executable_fd, &statexe) >= 0) + return (stat (filename, &statfile) >= 0 + && statfile.st_dev + && statfile.st_dev == statexe.st_dev + && statfile.st_ino == statexe.st_ino); + } +# endif + + /* Check that the filename does not point to a directory. */ + { + struct stat statfile; + + return (stat (filename, &statfile) >= 0 + && ! S_ISDIR (statfile.st_mode)); + } +} + +#endif + +/* Determine the full pathname of the current executable, freshly allocated. + Return NULL if unknown. + Guaranteed to work on Linux and native Windows. Likely to work on the + other Unixes (maybe except BeOS), under most conditions. */ +static char * +find_executable (const char *argv0) +{ +#if defined WINDOWS_NATIVE + /* Native Windows only. + On Cygwin, it is better to use the Cygwin provided /proc interface, than + to use native Windows API and cygwin_conv_to_posix_path, because it + supports longer file names + (see ). */ + char location[MAX_PATH]; + int length = GetModuleFileName (NULL, location, sizeof (location)); + if (length < 0) + return NULL; + if (!IS_FILE_NAME_WITH_DIR (location)) + /* Shouldn't happen. */ + return NULL; + return xstrdup (location); +#elif defined __EMX__ + PPIB ppib; + char location[CCHMAXPATH]; + + /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/619_L2H_DosGetInfoBlocksSynt.html + for specification of DosGetInfoBlocks(). */ + if (DosGetInfoBlocks (NULL, &ppib)) + return NULL; + + /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html + for specification of DosQueryModuleName(). */ + if (DosQueryModuleName (ppib->pib_hmte, sizeof (location), location)) + return NULL; + + _fnslashify (location); + + return xstrdup (location); +#else /* Unix */ +# if defined __linux__ + /* The executable is accessible as /proc//exe. In newer Linux + versions, also as /proc/self/exe. Linux >= 2.1 provides a symlink + to the true pathname; older Linux versions give only device and ino, + enclosed in brackets, which we cannot use here. */ + { + char *link; + + link = xreadlink ("/proc/self/exe"); + if (link != NULL && link[0] != '[') + return link; + if (executable_fd < 0) + executable_fd = open ("/proc/self/exe", O_EXEC | O_CLOEXEC, 0); + + { + char buf[6+10+5]; + sprintf (buf, "/proc/%d/exe", getpid ()); + link = xreadlink (buf); + if (link != NULL && link[0] != '[') + return link; + if (executable_fd < 0) + executable_fd = open (buf, O_EXEC | O_CLOEXEC, 0); + } + } +# endif +# if defined __ANDROID__ || defined __FreeBSD_kernel__ + /* On Android and GNU/kFreeBSD, the executable is accessible as + /proc//exe and /proc/self/exe. */ + { + char *link; + + link = xreadlink ("/proc/self/exe"); + if (link != NULL) + return link; + } +# endif +# if defined __FreeBSD__ || defined __DragonFly__ + /* In FreeBSD >= 5.0, the executable is accessible as /proc//file and + /proc/curproc/file. */ + { + char *link; + + link = xreadlink ("/proc/curproc/file"); + if (link != NULL) + { + if (strcmp (link, "unknown") != 0) + return link; + free (link); + } + } +# endif +# if defined __NetBSD__ + /* In NetBSD >= 4.0, the executable is accessible as /proc//exe and + /proc/curproc/exe. */ + { + char *link; + + link = xreadlink ("/proc/curproc/exe"); + if (link != NULL) + return link; + } +# endif +# if defined __sun + /* On Solaris >= 11.4, /proc//execname and /proc/self/execname contains + the name of the executable, either as an absolute file name or relative to + the current directory. */ + { + char namebuf[4096]; + int fd = open ("/proc/self/execname", O_RDONLY | O_CLOEXEC, 0); + if (fd >= 0) + { + size_t len = full_read (fd, namebuf, sizeof (namebuf)); + close (fd); + if (len > 0 && len < sizeof (namebuf)) + { + namebuf[len] = '\0'; + return canonicalize_file_name (namebuf); + } + } + } +# endif +# if defined __CYGWIN__ + /* The executable is accessible as /proc//exe, at least in + Cygwin >= 1.5. */ + { + char *link; + + link = xreadlink ("/proc/self/exe"); + if (link != NULL) + return link; + if (executable_fd < 0) + executable_fd = open ("/proc/self/exe", O_EXEC | O_CLOEXEC, 0); + } +# endif +# if HAVE_MACH_O_DYLD_H && HAVE__NSGETEXECUTABLEPATH + /* On Mac OS X 10.2 or newer, the function + int _NSGetExecutablePath (char *buf, uint32_t *bufsize); + can be used to retrieve the executable's full path. */ + char location[4096]; + unsigned int length = sizeof (location); + if (_NSGetExecutablePath (location, &length) == 0 + && location[0] == '/') + return canonicalize_file_name (location); +# endif + /* Guess the executable's full path. We assume the executable has been + called via execlp() or execvp() with properly set up argv[0]. The + login(1) convention to add a '-' prefix to argv[0] is not supported. */ + { + bool has_slash = false; + { + const char *p; + for (p = argv0; *p; p++) + if (*p == '/') + { + has_slash = true; + break; + } + } + if (!has_slash) + { + /* exec searches paths without slashes in the directory list given + by $PATH. */ + const char *path = getenv ("PATH"); + + if (path != NULL) + { + const char *p; + const char *p_next; + + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + char *concat_name; + + for (q = p; *q; q++) + if (*q == ':') + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + + /* We have a path item at p, of length p_len. + Now concatenate the path item and argv0. */ + concat_name = (char *) xmalloc (p_len + strlen (argv0) + 2); +# ifdef NO_XMALLOC + if (concat_name == NULL) + return NULL; +# endif + if (p_len == 0) + /* An empty PATH element designates the current directory. */ + strcpy (concat_name, argv0); + else + { + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, argv0); + } + if (maybe_executable (concat_name)) + return canonicalize_file_name (concat_name); + free (concat_name); + } + } + /* Not found in the PATH, assume the current directory. */ + } + /* exec treats paths containing slashes as relative to the current + directory. */ + if (maybe_executable (argv0)) + return canonicalize_file_name (argv0); + } + /* No way to find the executable. */ + return NULL; +#endif +} + +/* Full pathname of executable, or NULL. */ +static char *executable_fullname; + +static void +prepare_relocate (const char *orig_installprefix, const char *orig_installdir, + const char *argv0) +{ + char *curr_prefix; + + /* Determine the full pathname of the current executable. */ + executable_fullname = find_executable (argv0); + + /* Determine the current installation prefix from it. */ + curr_prefix = compute_curr_prefix (orig_installprefix, orig_installdir, + executable_fullname); + if (curr_prefix != NULL) + { + /* Now pass this prefix to all copies of the relocate.c source file. */ + set_relocation_prefix (orig_installprefix, curr_prefix); + + free (curr_prefix); + } +} + +/* Set program_name, based on argv[0], and original installation prefix and + directory, for relocatability. */ +void +set_program_name_and_installdir (const char *argv0, + const char *orig_installprefix, + const char *orig_installdir) +{ + const char *argv0_stripped = argv0; + + /* Relocatable programs are renamed to .bin by install-reloc. Or, more + generally, their suffix is changed from $exeext to .bin$exeext. + Remove the ".bin" here. */ + { + size_t argv0_len = strlen (argv0); + const size_t exeext_len = sizeof (EXEEXT) - sizeof (""); + if (argv0_len > 4 + exeext_len) + if (memcmp (argv0 + argv0_len - exeext_len - 4, ".bin", 4) == 0) + { + if (sizeof (EXEEXT) > sizeof ("")) + { + /* Compare using an inlined copy of c_strncasecmp(), because + the filenames may have undergone a case conversion since + they were packaged. In other words, EXEEXT may be ".exe" + on one system and ".EXE" on another. */ + static const char exeext[] = EXEEXT; + const char *s1 = argv0 + argv0_len - exeext_len; + const char *s2 = exeext; + for (; *s1 != '\0'; s1++, s2++) + { + unsigned char c1 = *s1; + unsigned char c2 = *s2; + if ((c1 >= 'A' && c1 <= 'Z' ? c1 - 'A' + 'a' : c1) + != (c2 >= 'A' && c2 <= 'Z' ? c2 - 'A' + 'a' : c2)) + goto done_stripping; + } + } + /* Remove ".bin" before EXEEXT or its equivalent. */ + { + char *shorter = (char *) xmalloc (argv0_len - 4 + 1); +#ifdef NO_XMALLOC + if (shorter != NULL) +#endif + { + memcpy (shorter, argv0, argv0_len - exeext_len - 4); + if (sizeof (EXEEXT) > sizeof ("")) + memcpy (shorter + argv0_len - exeext_len - 4, + argv0 + argv0_len - exeext_len - 4, + exeext_len); + shorter[argv0_len - 4] = '\0'; + argv0_stripped = shorter; + } + } + done_stripping: ; + } + } + + set_program_name (argv0_stripped); + + prepare_relocate (orig_installprefix, orig_installdir, argv0); +} + +/* Return the full pathname of the current executable, based on the earlier + call to set_program_name_and_installdir. Return NULL if unknown. */ +char * +get_full_program_name (void) +{ + return executable_fullname; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/raise.c b/3rdPartner/libiconv/srclib/raise.c new file mode 100644 index 0000000..385ddd3 --- /dev/null +++ b/3rdPartner/libiconv/srclib/raise.c @@ -0,0 +1,83 @@ +/* Provide a non-threads replacement for the POSIX raise function. + + Copyright (C) 2002-2003, 2005-2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Jim Meyering and Bruno Haible */ + +#include + +/* Specification. */ +#include + +#if HAVE_RAISE +/* Native Windows platform. */ + +# include + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +# endif + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +/* Forward declaration. */ +static int raise_nothrow (int sig); +# else +# define raise_nothrow raise +# endif + +#else +/* An old Unix platform. */ + +# include + +#endif + +int +raise (int sig) +#undef raise +{ +#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE + if (sig == SIGPIPE) + return _gl_raise_SIGPIPE (); +#endif + +#if HAVE_RAISE + return raise_nothrow (sig); +#else + return kill (getpid (), sig); +#endif +} + +#if HAVE_RAISE && HAVE_MSVC_INVALID_PARAMETER_HANDLER +static int +raise_nothrow (int sig) +{ + int result; + + TRY_MSVC_INVAL + { + result = raise (sig); + } + CATCH_MSVC_INVAL + { + result = -1; + errno = EINVAL; + } + DONE_MSVC_INVAL; + + return result; +} +#endif diff --git a/3rdPartner/libiconv/srclib/rawmemchr.c b/3rdPartner/libiconv/srclib/rawmemchr.c new file mode 100644 index 0000000..ea68c1b --- /dev/null +++ b/3rdPartner/libiconv/srclib/rawmemchr.c @@ -0,0 +1,125 @@ +/* Searching in a string. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +/* A function definition is only needed if HAVE_RAWMEMCHR is not defined. */ +#if !HAVE_RAWMEMCHR + +# include +# include +# include + +# include "verify.h" + +/* Find the first occurrence of C in S. */ +void * +rawmemchr (const void *s, int c_in) +{ + /* Change this typedef to experiment with performance. */ + typedef uintptr_t longword; + /* If you change the "uintptr_t", you should change UINTPTR_WIDTH to match. + This verifies that the type does not have padding bits. */ + verify (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (longword)); + + const unsigned char *char_ptr; + unsigned char c = c_in; + + /* Handle the first few bytes by reading one byte at a time. + Do this until CHAR_PTR is aligned on a longword boundary. */ + for (char_ptr = (const unsigned char *) s; + (uintptr_t) char_ptr % alignof (longword) != 0; + ++char_ptr) + if (*char_ptr == c) + return (void *) char_ptr; + + longword const *longword_ptr = s = char_ptr; + + /* Compute auxiliary longword values: + repeated_one is a value which has a 1 in every byte. + repeated_c has c in every byte. */ + longword repeated_one = (longword) -1 / UCHAR_MAX; + longword repeated_c = repeated_one * c; + longword repeated_hibit = repeated_one * (UCHAR_MAX / 2 + 1); + + /* Instead of the traditional loop which tests each byte, we will + test a longword at a time. The tricky part is testing if any of + the bytes in the longword in question are equal to + c. We first use an xor with repeated_c. This reduces the task + to testing whether any of the bytes in longword1 is zero. + + (The following comments assume 8-bit bytes, as POSIX requires; + the code's use of UCHAR_MAX should work even if bytes have more + than 8 bits.) + + We compute tmp = + ((longword1 - repeated_one) & ~longword1) & (repeated_one * 0x80). + That is, we perform the following operations: + 1. Subtract repeated_one. + 2. & ~longword1. + 3. & a mask consisting of 0x80 in every byte. + Consider what happens in each byte: + - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, + and step 3 transforms it into 0x80. A carry can also be propagated + to more significant bytes. + - If a byte of longword1 is nonzero, let its lowest 1 bit be at + position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, + the byte ends in a single bit of value 0 and k bits of value 1. + After step 2, the result is just k bits of value 1: 2^k - 1. After + step 3, the result is 0. And no carry is produced. + So, if longword1 has only non-zero bytes, tmp is zero. + Whereas if longword1 has a zero byte, call j the position of the least + significant zero byte. Then the result has a zero at positions 0, ..., + j-1 and a 0x80 at position j. We cannot predict the result at the more + significant bytes (positions j+1..3), but it does not matter since we + already have a non-zero bit at position 8*j+7. + + The test whether any byte in longword1 is zero is equivalent + to testing whether tmp is nonzero. + + This test can read beyond the end of a string, depending on where + C_IN is encountered. However, this is considered safe since the + initialization phase ensured that the read will be aligned, + therefore, the read will not cross page boundaries and will not + cause a fault. */ + + while (1) + { + longword longword1 = *longword_ptr ^ repeated_c; + + if ((((longword1 - repeated_one) & ~longword1) & repeated_hibit) != 0) + break; + longword_ptr++; + } + + char_ptr = s = longword_ptr; + + /* At this point, we know that one of the sizeof (longword) bytes + starting at char_ptr is == c. If we knew endianness, we + could determine the first such byte without any further memory + accesses, just by looking at the tmp result from the last loop + iteration. However, the following simple and portable code does + not attempt this potential optimization. */ + + while (*char_ptr != c) + char_ptr++; + return (void *) char_ptr; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/rawmemchr.valgrind b/3rdPartner/libiconv/srclib/rawmemchr.valgrind new file mode 100644 index 0000000..64cf86c --- /dev/null +++ b/3rdPartner/libiconv/srclib/rawmemchr.valgrind @@ -0,0 +1,28 @@ +# Suppress a valgrind message about use of uninitialized memory in rawmemchr(). + +# Copyright (C) 2008-2022 Free Software Foundation, Inc. +# +# This file 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 file 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 program. If not, see . + +# This use is OK because it provides only a speedup. +{ + rawmemchr-value4 + Memcheck:Value4 + fun:rawmemchr +} +{ + rawmemchr-value8 + Memcheck:Value8 + fun:rawmemchr +} diff --git a/3rdPartner/libiconv/srclib/read.c b/3rdPartner/libiconv/srclib/read.c new file mode 100644 index 0000000..1bb7d90 --- /dev/null +++ b/3rdPartner/libiconv/srclib/read.c @@ -0,0 +1,95 @@ +/* POSIX compatible read() function. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#if defined _WIN32 && ! defined __CYGWIN__ + +# include +# include + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +# endif +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif + +/* Don't assume that UNICODE is not defined. */ +# undef GetNamedPipeHandleState +# define GetNamedPipeHandleState GetNamedPipeHandleStateA + +# undef read + +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static ssize_t +read_nothrow (int fd, void *buf, size_t count) +{ + ssize_t result; + + TRY_MSVC_INVAL + { + result = _read (fd, buf, count); + } + CATCH_MSVC_INVAL + { + result = -1; + errno = EBADF; + } + DONE_MSVC_INVAL; + + return result; +} +# else +# define read_nothrow _read +# endif + +ssize_t +rpl_read (int fd, void *buf, size_t count) +{ + ssize_t ret = read_nothrow (fd, buf, count); + +# if GNULIB_NONBLOCKING + if (ret < 0 + && GetLastError () == ERROR_NO_DATA) + { + HANDLE h = (HANDLE) _get_osfhandle (fd); + if (GetFileType (h) == FILE_TYPE_PIPE) + { + /* h is a pipe or socket. */ + DWORD state; + if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0) + && (state & PIPE_NOWAIT) != 0) + /* h is a pipe in non-blocking mode. + Change errno from EINVAL to EAGAIN. */ + errno = EAGAIN; + } + } +# endif + + return ret; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/readlink.c b/3rdPartner/libiconv/srclib/readlink.c new file mode 100644 index 0000000..ed03cc8 --- /dev/null +++ b/3rdPartner/libiconv/srclib/readlink.c @@ -0,0 +1,104 @@ +/* Read the contents of a symbolic link. + Copyright (C) 2003-2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include + +#if !HAVE_READLINK + +/* readlink() substitute for systems that don't have a readlink() function, + such as DJGPP 2.03 and mingw32. */ + +ssize_t +readlink (char const *file, _GL_UNUSED char *buf, + _GL_UNUSED size_t bufsize) +{ + struct stat statbuf; + + /* In general we should use lstat() here, not stat(). But on platforms + without symbolic links, lstat() - if it exists - would be equivalent to + stat(), therefore we can use stat(). This saves us a configure check. */ + if (stat (file, &statbuf) >= 0) + errno = EINVAL; + return -1; +} + +#else /* HAVE_READLINK */ + +# undef readlink + +/* readlink() wrapper that uses correct types, for systems like cygwin + 1.5.x where readlink returns int, and which rejects trailing slash, + for Solaris 9. */ + +ssize_t +rpl_readlink (char const *file, char *buf, size_t bufsize) +{ +# if READLINK_TRAILING_SLASH_BUG + size_t file_len = strlen (file); + if (file_len && file[file_len - 1] == '/') + { + /* Even if FILE without the slash is a symlink to a directory, + both lstat() and stat() must resolve the trailing slash to + the directory rather than the symlink. We can therefore + safely use stat() to distinguish between EINVAL and + ENOTDIR/ENOENT, avoiding extra overhead of rpl_lstat(). */ + struct stat st; + if (stat (file, &st) == 0 || errno == EOVERFLOW) + errno = EINVAL; + return -1; + } +# endif /* READLINK_TRAILING_SLASH_BUG */ + + ssize_t r = readlink (file, buf, bufsize); + +# if READLINK_TRUNCATE_BUG + if (r < 0 && errno == ERANGE) + { + /* Try again with a bigger buffer. This is just for test cases; + real code invariably discards short reads. */ + char stackbuf[4032]; + r = readlink (file, stackbuf, sizeof stackbuf); + if (r < 0) + { + if (errno == ERANGE) + { + /* Clear the buffer, which is good enough for real code. + Thankfully, no test cases try short reads of enormous + symlinks and what would be the point anyway? */ + r = bufsize; + memset (buf, 0, r); + } + } + else + { + if (bufsize < r) + r = bufsize; + memcpy (buf, stackbuf, r); + } + } +# endif + + return r; +} + +#endif /* HAVE_READLINK */ diff --git a/3rdPartner/libiconv/srclib/realloc.c b/3rdPartner/libiconv/srclib/realloc.c new file mode 100644 index 0000000..c878381 --- /dev/null +++ b/3rdPartner/libiconv/srclib/realloc.c @@ -0,0 +1,63 @@ +/* realloc() function that is glibc compatible. + + Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* written by Jim Meyering and Bruno Haible */ + +#include + +#include + +#include + +#include "xalloc-oversized.h" + +/* Call the system's realloc below. This file does not define + _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */ +#undef realloc + +/* Change the size of an allocated block of memory P to N bytes, + with error checking. If P is NULL, use malloc. Otherwise if N is zero, + free P and return NULL. */ + +void * +rpl_realloc (void *p, size_t n) +{ + if (p == NULL) + return malloc (n); + + if (n == 0) + { + free (p); + return NULL; + } + + if (xalloc_oversized (n, 1)) + { + errno = ENOMEM; + return NULL; + } + + void *result = realloc (p, n); + +#if !HAVE_MALLOC_POSIX + if (result == NULL) + errno = ENOMEM; +#endif + + return result; +} diff --git a/3rdPartner/libiconv/srclib/relocatable.c b/3rdPartner/libiconv/srclib/relocatable.c new file mode 100644 index 0000000..1ca8ec0 --- /dev/null +++ b/3rdPartner/libiconv/srclib/relocatable.c @@ -0,0 +1,603 @@ +/* Provide relocatable packages. + Copyright (C) 2003-2006, 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + This file 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 file 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 program. If not, see . */ + + +/* Tell glibc's to provide a prototype for getline(). + This must come before because may include + , and once has been included, it's too late. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + +#define _GL_USE_STDLIB_ALLOC 1 +#include + +/* Specification. */ +#include "relocatable.h" + +#if ENABLE_RELOCATABLE + +#include +#include +#include +#include + +#ifdef NO_XMALLOC +# define xmalloc malloc +#else +# include "xalloc.h" +#endif + +#if defined _WIN32 && !defined __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include +#endif + +#ifdef __EMX__ +# define INCL_DOS +# include + +# define strcmp stricmp +# define strncmp strnicmp +#endif + +#if DEPENDS_ON_LIBCHARSET +# include +#endif +#if DEPENDS_ON_LIBICONV && HAVE_ICONV +# include +#endif +#if DEPENDS_ON_LIBINTL && ENABLE_NLS +# include +#endif + +#if defined _WIN32 && !defined __CYGWIN__ +/* Don't assume that UNICODE is not defined. */ +# undef GetModuleFileName +# define GetModuleFileName GetModuleFileNameA +#endif + +/* Faked cheap 'bool'. */ +#undef bool +#undef false +#undef true +#define bool int +#define false 0 +#define true 1 + +/* Pathname support. + ISSLASH(C) tests whether C is a directory separator character. + IS_FILE_NAME_WITH_DIR(P) tests whether P contains a directory specification. + */ +#if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ + /* Native Windows, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +# define HAS_DEVICE(P) \ + ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ + && (P)[1] == ':') +# define IS_FILE_NAME_WITH_DIR(P) \ + (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) +# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) +#else + /* Unix */ +# define ISSLASH(C) ((C) == '/') +# define IS_FILE_NAME_WITH_DIR(P) (strchr (P, '/') != NULL) +# define FILE_SYSTEM_PREFIX_LEN(P) 0 +#endif + +/* Whether to enable the more costly support for relocatable libraries. + It allows libraries to be have been installed with a different original + prefix than the program. But it is quite costly, especially on Cygwin + platforms, see below. Therefore we enable it by default only on native + Windows platforms. */ +#ifndef ENABLE_COSTLY_RELOCATABLE +# if defined _WIN32 && !defined __CYGWIN__ +# define ENABLE_COSTLY_RELOCATABLE 1 +# else +# define ENABLE_COSTLY_RELOCATABLE 0 +# endif +#endif + +/* Original installation prefix. */ +static char *orig_prefix; +static size_t orig_prefix_len; +/* Current installation prefix. */ +static char *curr_prefix; +static size_t curr_prefix_len; +/* These prefixes do not end in a slash. Anything that will be concatenated + to them must start with a slash. */ + +/* Sets the original and the current installation prefix of this module. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +static void +set_this_relocation_prefix (const char *orig_prefix_arg, + const char *curr_prefix_arg) +{ + if (orig_prefix_arg != NULL && curr_prefix_arg != NULL + /* Optimization: if orig_prefix and curr_prefix are equal, the + relocation is a nop. */ + && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) + { + /* Duplicate the argument strings. */ + char *memory; + + orig_prefix_len = strlen (orig_prefix_arg); + curr_prefix_len = strlen (curr_prefix_arg); + memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); +#ifdef NO_XMALLOC + if (memory != NULL) +#endif + { + memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); + orig_prefix = memory; + memory += orig_prefix_len + 1; + memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); + curr_prefix = memory; + return; + } + } + orig_prefix = NULL; + curr_prefix = NULL; + /* Don't worry about wasted memory here - this function is usually only + called once. */ +} + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +void +set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) +{ + set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); + + /* Now notify all dependent libraries. */ +#if DEPENDS_ON_LIBCHARSET + libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 + libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix + libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +} + +#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE) + +/* Convenience function: + Computes the current installation prefix, based on the original + installation prefix, the original installation directory of a particular + file, and the current pathname of this file. + Returns it, freshly allocated. Returns NULL upon failure. */ +#ifdef IN_LIBRARY +#define compute_curr_prefix local_compute_curr_prefix +static +#endif +char * +compute_curr_prefix (const char *orig_installprefix, + const char *orig_installdir, + const char *curr_pathname) +{ + char *curr_installdir; + const char *rel_installdir; + + if (curr_pathname == NULL) + return NULL; + + /* Determine the relative installation directory, relative to the prefix. + This is simply the difference between orig_installprefix and + orig_installdir. */ + if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) + != 0) + /* Shouldn't happen - nothing should be installed outside $(prefix). */ + return NULL; + rel_installdir = orig_installdir + strlen (orig_installprefix); + + /* Determine the current installation directory. */ + { + const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); + const char *p = curr_pathname + strlen (curr_pathname); + char *q; + + while (p > p_base) + { + p--; + if (ISSLASH (*p)) + break; + } + + q = (char *) xmalloc (p - curr_pathname + 1); +#ifdef NO_XMALLOC + if (q == NULL) + return NULL; +#endif + memcpy (q, curr_pathname, p - curr_pathname); + q[p - curr_pathname] = '\0'; + curr_installdir = q; + } + + /* Compute the current installation prefix by removing the trailing + rel_installdir from it. */ + { + const char *rp = rel_installdir + strlen (rel_installdir); + const char *cp = curr_installdir + strlen (curr_installdir); + const char *cp_base = + curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); + + while (rp > rel_installdir && cp > cp_base) + { + bool same = false; + const char *rpi = rp; + const char *cpi = cp; + + while (rpi > rel_installdir && cpi > cp_base) + { + rpi--; + cpi--; + if (ISSLASH (*rpi) || ISSLASH (*cpi)) + { + if (ISSLASH (*rpi) && ISSLASH (*cpi)) + same = true; + break; + } + /* Do case-insensitive comparison if the file system is always or + often case-insensitive. It's better to accept the comparison + if the difference is only in case, rather than to fail. */ +#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Native Windows, Cygwin, OS/2, DOS - case insignificant file system */ + if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) + != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) + break; +#else + if (*rpi != *cpi) + break; +#endif + } + if (!same) + break; + /* The last pathname component was the same. rpi and cpi now point + to the slash before it. */ + rp = rpi; + cp = cpi; + } + + if (rp > rel_installdir) + { + /* Unexpected: The curr_installdir does not end with rel_installdir. */ + free (curr_installdir); + return NULL; + } + + { + size_t computed_curr_prefix_len = cp - curr_installdir; + char *computed_curr_prefix; + + computed_curr_prefix = (char *) xmalloc (computed_curr_prefix_len + 1); +#ifdef NO_XMALLOC + if (computed_curr_prefix == NULL) + { + free (curr_installdir); + return NULL; + } +#endif + memcpy (computed_curr_prefix, curr_installdir, computed_curr_prefix_len); + computed_curr_prefix[computed_curr_prefix_len] = '\0'; + + free (curr_installdir); + + return computed_curr_prefix; + } + } +} + +#endif /* !IN_LIBRARY || PIC */ + +#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE + +/* Full pathname of shared library, or NULL. */ +static char *shared_library_fullname; + +#if defined _WIN32 && !defined __CYGWIN__ +/* Native Windows only. + On Cygwin, it is better to use the Cygwin provided /proc interface, than + to use native Windows API and cygwin_conv_to_posix_path, because it + supports longer file names + (see ). */ + +/* Determine the full pathname of the shared library when it is loaded. + + Documentation: + */ + +BOOL WINAPI +DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) +{ + (void) reserved; + + if (event == DLL_PROCESS_ATTACH) + { + /* The DLL is being loaded into an application's address range. */ + static char location[MAX_PATH]; + + if (!GetModuleFileName (module_handle, location, sizeof (location))) + /* Shouldn't happen. */ + return FALSE; + + if (!IS_FILE_NAME_WITH_DIR (location)) + /* Shouldn't happen. */ + return FALSE; + + /* Avoid a memory leak when the same DLL get attached, detached, + attached, detached, and so on. This happens e.g. when a spell + checker DLL is used repeatedly by a mail program. */ + if (!(shared_library_fullname != NULL + && strcmp (shared_library_fullname, location) == 0)) + /* Remember the full pathname of the shared library. */ + shared_library_fullname = strdup (location); + } + + return TRUE; +} + +#elif defined __EMX__ + +extern int _CRT_init (void); +extern void _CRT_term (void); +extern void __ctordtorInit (void); +extern void __ctordtorTerm (void); + +unsigned long _System +_DLL_InitTerm (unsigned long hModule, unsigned long ulFlag) +{ + static char location[CCHMAXPATH]; + + switch (ulFlag) + { + case 0: + if (_CRT_init () == -1) + return 0; + + __ctordtorInit(); + + /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html + for specification of DosQueryModuleName(). */ + if (DosQueryModuleName (hModule, sizeof (location), location)) + return 0; + + _fnslashify (location); + shared_library_fullname = strdup (location); + break; + + case 1: + __ctordtorTerm(); + + _CRT_term (); + break; + } + + return 1; +} + +#else /* Unix */ + +static void +find_shared_library_fullname () +{ +#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__ + /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline() + function. + Cygwin >= 1.5 has /proc/self/maps and the getline() function too. + But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on + Cygwin 1.7. */ + FILE *fp; + + /* Open the current process' maps file. It describes one VMA per line. */ + fp = fopen ("/proc/self/maps", "r"); + if (fp) + { + unsigned long address = (unsigned long) &find_shared_library_fullname; + for (;;) + { + unsigned long start, end; + int c; + + if (fscanf (fp, "%lx-%lx", &start, &end) != 2) + break; + if (address >= start && address <= end - 1) + { + /* Found it. Now see if this line contains a filename. */ + while (c = getc (fp), c != EOF && c != '\n' && c != '/') + continue; + if (c == '/') + { + size_t size; + int len; + + ungetc (c, fp); + shared_library_fullname = NULL; size = 0; + len = getline (&shared_library_fullname, &size, fp); + if (len >= 0) + { + /* Success: filled shared_library_fullname. */ + if (len > 0 && shared_library_fullname[len - 1] == '\n') + shared_library_fullname[len - 1] = '\0'; + } + } + break; + } + while (c = getc (fp), c != EOF && c != '\n') + continue; + } + fclose (fp); + } +#endif +} + +#endif /* Native Windows / EMX / Unix */ + +/* Return the full pathname of the current shared library. + Return NULL if unknown. + Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */ +static char * +get_shared_library_fullname () +{ +#if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__ + static bool tried_find_shared_library_fullname; + if (!tried_find_shared_library_fullname) + { + find_shared_library_fullname (); + tried_find_shared_library_fullname = true; + } +#endif + return shared_library_fullname; +} + +#endif /* PIC */ + +/* Returns the pathname, relocated according to the current installation + directory. + The returned string is either PATHNAME unmodified or a freshly allocated + string that you can free with free() after casting it to 'char *'. */ +const char * +relocate (const char *pathname) +{ +#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE + static int initialized; + + /* Initialization code for a shared library. */ + if (!initialized) + { + /* At this point, orig_prefix and curr_prefix likely have already been + set through the main program's set_program_name_and_installdir + function. This is sufficient in the case that the library has + initially been installed in the same orig_prefix. But we can do + better, to also cover the cases that 1. it has been installed + in a different prefix before being moved to orig_prefix and (later) + to curr_prefix, 2. unlike the program, it has not moved away from + orig_prefix. */ + const char *orig_installprefix = INSTALLPREFIX; + const char *orig_installdir = INSTALLDIR; + char *curr_prefix_better; + + curr_prefix_better = + compute_curr_prefix (orig_installprefix, orig_installdir, + get_shared_library_fullname ()); + + set_relocation_prefix (orig_installprefix, + curr_prefix_better != NULL + ? curr_prefix_better + : curr_prefix); + + if (curr_prefix_better != NULL) + free (curr_prefix_better); + + initialized = 1; + } +#endif + + /* Note: It is not necessary to perform case insensitive comparison here, + even for DOS-like file systems, because the pathname argument was + typically created from the same Makefile variable as orig_prefix came + from. */ + if (orig_prefix != NULL && curr_prefix != NULL + && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) + { + if (pathname[orig_prefix_len] == '\0') + { + /* pathname equals orig_prefix. */ + char *result = (char *) xmalloc (strlen (curr_prefix) + 1); + +#ifdef NO_XMALLOC + if (result != NULL) +#endif + { + strcpy (result, curr_prefix); + return result; + } + } + else if (ISSLASH (pathname[orig_prefix_len])) + { + /* pathname starts with orig_prefix. */ + const char *pathname_tail = &pathname[orig_prefix_len]; + char *result = + (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); + +#ifdef NO_XMALLOC + if (result != NULL) +#endif + { + memcpy (result, curr_prefix, curr_prefix_len); + strcpy (result + curr_prefix_len, pathname_tail); + return result; + } + } + } + +#ifdef __EMX__ +# ifdef __KLIBC__ +# undef strncmp + + if (strncmp (pathname, "/@unixroot", 10) == 0 + && (pathname[10] == '\0' || ISSLASH (pathname[10]))) + { + /* kLIBC itself processes /@unixroot prefix */ + return pathname; + } + else +# endif + if (ISSLASH (pathname[0])) + { + const char *unixroot = getenv ("UNIXROOT"); + + if (unixroot && HAS_DEVICE (unixroot) && unixroot[2] == '\0') + { + char *result = (char *) xmalloc (2 + strlen (pathname) + 1); +#ifdef NO_XMALLOC + if (result != NULL) +#endif + { + memcpy (result, unixroot, 2); + strcpy (result + 2, pathname); + return result; + } + } + } +#endif + + /* Nothing to relocate. */ + return pathname; +} + +/* Returns the pathname, relocated according to the current installation + directory. + This function sets *ALLOCATEDP to the allocated memory, or to NULL if + no memory allocation occurs. So that, after you're done with the return + value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ +const char * +relocate2 (const char *pathname, char **allocatedp) +{ + const char *result = relocate (pathname); + *allocatedp = (result != pathname ? (char *) result : NULL); + return result; +} + +#endif diff --git a/3rdPartner/libiconv/srclib/relocatable.h b/3rdPartner/libiconv/srclib/relocatable.h new file mode 100644 index 0000000..49452fe --- /dev/null +++ b/3rdPartner/libiconv/srclib/relocatable.h @@ -0,0 +1,104 @@ +/* Provide relocatable packages. + Copyright (C) 2003, 2005, 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + This file 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 file 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 program. If not, see . */ + +#ifndef _RELOCATABLE_H +#define _RELOCATABLE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* This can be enabled through the configure --enable-relocatable option. */ +#if ENABLE_RELOCATABLE + +/* When building a DLL, we must export some functions. Note that because + this is a private .h file, we don't need to use __declspec(dllimport) + in any case. */ +#if HAVE_VISIBILITY && BUILDING_DLL +# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) +#elif defined _MSC_VER && BUILDING_DLL +# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) +#else +# define RELOCATABLE_DLL_EXPORTED +#endif + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +extern RELOCATABLE_DLL_EXPORTED void + set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + +/* Returns the pathname, relocated according to the current installation + directory. + The returned string is either PATHNAME unmodified or a freshly allocated + string that you can free with free() after casting it to 'char *'. */ +extern const char * relocate (const char *pathname); + +/* Returns the pathname, relocated according to the current installation + directory. + This function sets *ALLOCATEDP to the allocated memory, or to NULL if + no memory allocation occurs. So that, after you're done with the return + value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ +extern const char * relocate2 (const char *pathname, char **allocatedp); + +/* Memory management: relocate() potentially allocates memory, because it has + to construct a fresh pathname. If this is a problem because your program + calls relocate() frequently or because you want to fix all potential memory + leaks anyway, you have three options: + 1) Use this idiom: + const char *pathname = ...; + const char *rel_pathname = relocate (pathname); + ... + if (rel_pathname != pathname) + free ((char *) rel_pathname); + 2) Use this idiom: + char *allocated; + const char *rel_pathname = relocate2 (..., &allocated); + ... + free (allocated); + 3) Think about caching the result. */ + +/* Convenience function: + Computes the current installation prefix, based on the original + installation prefix, the original installation directory of a particular + file, and the current pathname of this file. + Returns it, freshly allocated. Returns NULL upon failure. */ +extern char * compute_curr_prefix (const char *orig_installprefix, + const char *orig_installdir, + const char *curr_pathname) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; + +#else + +/* By default, we use the hardwired pathnames. */ +#define relocate(pathname) (pathname) +#define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _RELOCATABLE_H */ diff --git a/3rdPartner/libiconv/srclib/relocwrapper.c b/3rdPartner/libiconv/srclib/relocwrapper.c new file mode 100644 index 0000000..ff0ad41 --- /dev/null +++ b/3rdPartner/libiconv/srclib/relocwrapper.c @@ -0,0 +1,224 @@ +/* Relocating wrapper program. + Copyright (C) 2003, 2005-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + 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 3 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, see . */ + +/* Dependencies: + relocwrapper + -> progname + -> progreloc + -> stat + -> filename + -> pathmax + -> verify + -> areadlink + -> careadlinkat + -> allocator + -> readlink + -> stat + -> canonicalize-lgpl + -> libc-config + -> errno + -> fcntl-h + -> stdbool + -> sys_stat + -> unistd + -> eloop-threshold + -> filename + -> idx + -> intprops + -> scratch_buffer + -> malloc-posix + -> realloc-posix + -> free-posix + -> pathmax + -> mempcpy + -> rawmemchr + -> readlink + -> stat + -> double-slash-root + -> relocatable + -> setenv + -> malloca + -> fprintf-posix [ignore, cut dependency tree here] + -> strerror [ignore, cut dependency tree here] + -> c-ctype + + Macros that need to be set while compiling this file: + - ENABLE_RELOCATABLE 1 + - INSTALLPREFIX the base installation directory + - INSTALLDIR the directory into which this program is installed + - LIBPATHVAR the platform dependent runtime library path variable + - LIBDIRS a comma-terminated list of strings representing the list of + directories that contain the libraries at installation time + + We don't want to internationalize this wrapper because then it would + depend on libintl and therefore need relocation itself. So use only + libc functions, no gettext(), no error(), no xmalloc(), no xsetenv(). + */ + +#define _GL_USE_STDLIB_ALLOC 1 +#include + +#include +#include +#include +#include +#include + +#include "progname.h" +#include "relocatable.h" +#include "c-ctype.h" +#include "verify.h" + +/* Use the system functions, not the gnulib overrides in this file. */ +#undef fprintf +#undef strerror + +/* Return a copy of the filename, with an extra ".bin" at the end. + More generally, it replaces "${EXEEXT}" at the end with ".bin${EXEEXT}". */ +static char * +add_dotbin (const char *filename) +{ + size_t filename_len = strlen (filename); + char *result = (char *) malloc (filename_len + 4 + 1); + + if (result != NULL) + { + if (sizeof (EXEEXT) > sizeof ("")) + { + /* EXEEXT handling. */ + const size_t exeext_len = sizeof (EXEEXT) - sizeof (""); + static const char exeext[] = EXEEXT; + if (filename_len > exeext_len) + { + /* Compare using an inlined copy of c_strncasecmp(), because + the filenames may have undergone a case conversion since + they were packaged. In other words, EXEEXT may be ".exe" + on one system and ".EXE" on another. */ + const char *s1 = filename + filename_len - exeext_len; + const char *s2 = exeext; + for (; *s1 != '\0'; s1++, s2++) + { + unsigned char c1 = *s1; + unsigned char c2 = *s2; + if (c_tolower (c1) != c_tolower (c2)) + goto simple_append; + } + /* Insert ".bin" before EXEEXT or its equivalent. */ + memcpy (result, filename, filename_len - exeext_len); + memcpy (result + filename_len - exeext_len, ".bin", 4); + memcpy (result + filename_len - exeext_len + 4, + filename + filename_len - exeext_len, + exeext_len + 1); + return result; + } + } + simple_append: + /* Simply append ".bin". */ + memcpy (result, filename, filename_len); + memcpy (result + filename_len, ".bin", 4 + 1); + return result; + } + else + { + fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); + exit (1); + } +} + +/* List of directories that contain the libraries. */ +static const char *libdirs[] = { LIBDIRS NULL }; +/* Verify that at least one directory is given. */ +verify (sizeof (libdirs) / sizeof (libdirs[0]) > 1); + +/* Relocate the list of directories that contain the libraries. */ +static void +relocate_libdirs () +{ + size_t i; + + for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) + libdirs[i] = relocate (libdirs[i]); +} + +/* Activate the list of directories in the LIBPATHVAR. */ +static void +activate_libdirs () +{ + const char *old_value; + size_t total; + size_t i; + char *value; + char *p; + + old_value = getenv (LIBPATHVAR); + if (old_value == NULL) + old_value = ""; + + total = 0; + for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) + total += strlen (libdirs[i]) + 1; + total += strlen (old_value) + 1; + + value = (char *) malloc (total); + if (value == NULL) + { + fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); + exit (1); + } + p = value; + for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) + { + size_t len = strlen (libdirs[i]); + memcpy (p, libdirs[i], len); + p += len; + *p++ = ':'; + } + if (old_value[0] != '\0') + strcpy (p, old_value); + else + p[-1] = '\0'; + + if (setenv (LIBPATHVAR, value, 1) < 0) + { + fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); + exit (1); + } +} + +int +main (int argc, char *argv[]) +{ + char *full_program_name; + + /* Set the program name and perform preparations for + get_full_program_name() and relocate(). */ + set_program_name_and_installdir (argv[0], INSTALLPREFIX, INSTALLDIR); + + /* Get the full program path. (Important if accessed through a symlink.) */ + full_program_name = get_full_program_name (); + if (full_program_name == NULL) + full_program_name = argv[0]; + + /* Invoke the real program, with suffix ".bin". */ + argv[0] = add_dotbin (full_program_name); + relocate_libdirs (); + activate_libdirs (); + execv (argv[0], argv); + fprintf (stderr, "%s: could not execute %s: %s\n", + program_name, argv[0], strerror (errno)); + exit (127); +} diff --git a/3rdPartner/libiconv/srclib/safe-read.c b/3rdPartner/libiconv/srclib/safe-read.c new file mode 100644 index 0000000..04ffa7b --- /dev/null +++ b/3rdPartner/libiconv/srclib/safe-read.c @@ -0,0 +1,71 @@ +/* An interface to read and write that retries after interrupts. + + Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2022 Free Software + Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#ifdef SAFE_WRITE +# include "safe-write.h" +#else +# include "safe-read.h" +#endif + +/* Get ssize_t. */ +#include +#include + +#include + +#ifdef EINTR +# define IS_EINTR(x) ((x) == EINTR) +#else +# define IS_EINTR(x) 0 +#endif + +#include "sys-limits.h" + +#ifdef SAFE_WRITE +# define safe_rw safe_write +# define rw write +#else +# define safe_rw safe_read +# define rw read +# undef const +# define const /* empty */ +#endif + +/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if + interrupted. Return the actual number of bytes read(written), zero for EOF, + or SAFE_READ_ERROR(SAFE_WRITE_ERROR) upon error. */ +size_t +safe_rw (int fd, void const *buf, size_t count) +{ + for (;;) + { + ssize_t result = rw (fd, buf, count); + + if (0 <= result) + return result; + else if (IS_EINTR (errno)) + continue; + else if (errno == EINVAL && SYS_BUFSIZE_MAX < count) + count = SYS_BUFSIZE_MAX; + else + return result; + } +} diff --git a/3rdPartner/libiconv/srclib/safe-read.h b/3rdPartner/libiconv/srclib/safe-read.h new file mode 100644 index 0000000..a39bb98 --- /dev/null +++ b/3rdPartner/libiconv/srclib/safe-read.h @@ -0,0 +1,47 @@ +/* An interface to read() that retries after interrupts. + Copyright (C) 2002, 2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Some system calls may be interrupted and fail with errno = EINTR in the + following situations: + - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user + types Ctrl-Z) on some platforms: Mac OS X. + - The process receives a signal for which a signal handler was installed + with sigaction() with an sa_flags field that does not contain + SA_RESTART. + - The process receives a signal for which a signal handler was installed + with signal() and for which no call to siginterrupt(sig,0) was done, + on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. + + This module provides a wrapper around read() that handles EINTR. */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SAFE_READ_ERROR ((size_t) -1) + +/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted. + Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR + upon error. */ +extern size_t safe_read (int fd, void *buf, size_t count); + + +#ifdef __cplusplus +} +#endif diff --git a/3rdPartner/libiconv/srclib/scratch_buffer.h b/3rdPartner/libiconv/srclib/scratch_buffer.h new file mode 100644 index 0000000..f4fe5e8 --- /dev/null +++ b/3rdPartner/libiconv/srclib/scratch_buffer.h @@ -0,0 +1,127 @@ +/* Variable-sized buffer with on-stack default allocation. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert, 2017. */ + +#ifndef _GL_SCRATCH_BUFFER_H +#define _GL_SCRATCH_BUFFER_H + +/* Scratch buffers with a default stack allocation and fallback to + heap allocation. It is expected that this function is used in this + way: + + struct scratch_buffer tmpbuf; + scratch_buffer_init (&tmpbuf); + + while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) + if (!scratch_buffer_grow (&tmpbuf)) + return -1; + + scratch_buffer_free (&tmpbuf); + return 0; + + The allocation functions (scratch_buffer_grow, + scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make + sure that the heap allocation, if any, is freed, so that the code + above does not have a memory leak. The buffer still remains in a + state that can be deallocated using scratch_buffer_free, so a loop + like this is valid as well: + + struct scratch_buffer tmpbuf; + scratch_buffer_init (&tmpbuf); + + while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) + if (!scratch_buffer_grow (&tmpbuf)) + break; + + scratch_buffer_free (&tmpbuf); + + scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed + to grow the buffer by at least 512 bytes. This means that when + using the scratch buffer as a backing store for a non-character + array whose element size, in bytes, is 512 or smaller, the scratch + buffer only has to grow once to make room for at least one more + element. +*/ + +/* Scratch buffer. Must be initialized with scratch_buffer_init + before its use. */ +struct scratch_buffer; + +/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space + and BUFFER->length reflects the available space. */ +#if 0 +extern void scratch_buffer_init (struct scratch_buffer *buffer); +#endif + +/* Deallocates *BUFFER (if it was heap-allocated). */ +#if 0 +extern void scratch_buffer_free (struct scratch_buffer *buffer); +#endif + +/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT + preserved. Return true on success, false on allocation failure (in + which case the old buffer is freed). On success, the new buffer is + larger than the previous size. On failure, *BUFFER is deallocated, + but remains in a free-able state, and errno is set. */ +#if 0 +extern bool scratch_buffer_grow (struct scratch_buffer *buffer); +#endif + +/* Like scratch_buffer_grow, but preserve the old buffer + contents on success, as a prefix of the new buffer. */ +#if 0 +extern bool scratch_buffer_grow_preserve (struct scratch_buffer *buffer); +#endif + +/* Grow *BUFFER so that it can store at least NELEM elements of SIZE + bytes. The buffer contents are NOT preserved. Both NELEM and SIZE + can be zero. Return true on success, false on allocation failure + (in which case the old buffer is freed, but *BUFFER remains in a + free-able state, and errno is set). It is unspecified whether this + function can reduce the array size. */ +#if 0 +extern bool scratch_buffer_set_array_size (struct scratch_buffer *buffer, + size_t nelem, size_t size); +#endif + +/* Return a copy of *BUFFER's first SIZE bytes as a heap-allocated block, + deallocating *BUFFER if it was heap-allocated. SIZE must be at + most *BUFFER's size. Return NULL (setting errno) on memory + exhaustion. */ +#if 0 +extern void *scratch_buffer_dupfree (struct scratch_buffer *buffer, + size_t size); +#endif + + +/* The implementation is imported from glibc. */ + +/* Avoid possible conflicts with symbols exported by the GNU libc. */ +#define __libc_scratch_buffer_dupfree gl_scratch_buffer_dupfree +#define __libc_scratch_buffer_grow gl_scratch_buffer_grow +#define __libc_scratch_buffer_grow_preserve gl_scratch_buffer_grow_preserve +#define __libc_scratch_buffer_set_array_size gl_scratch_buffer_set_array_size + +#ifndef _GL_LIKELY +/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ +# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) +# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) +#endif + +#include + +#endif /* _GL_SCRATCH_BUFFER_H */ diff --git a/3rdPartner/libiconv/srclib/setenv.c b/3rdPartner/libiconv/srclib/setenv.c new file mode 100644 index 0000000..ebfd4e5 --- /dev/null +++ b/3rdPartner/libiconv/srclib/setenv.c @@ -0,0 +1,390 @@ +/* Copyright (C) 1992, 1995-2003, 2005-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + This file 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 file 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 program. If not, see . */ + +#if !_LIBC +/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc + optimizes away the name == NULL test below. */ +# define _GL_ARG_NONNULL(params) + +# define _GL_USE_STDLIB_ALLOC 1 +# include +#endif + +#include + +/* Specification. */ +#include + +#include +#ifndef __set_errno +# define __set_errno(ev) ((errno) = (ev)) +#endif + +#include +#if _LIBC || HAVE_UNISTD_H +# include +#endif + +#if !_LIBC +# include "malloca.h" +#endif + +#if _LIBC || !HAVE_SETENV + +#if !_LIBC +# define __environ environ +#endif + +#if _LIBC +/* This lock protects against simultaneous modifications of 'environ'. */ +# include +__libc_lock_define_initialized (static, envlock) +# define LOCK __libc_lock_lock (envlock) +# define UNLOCK __libc_lock_unlock (envlock) +#else +# define LOCK +# define UNLOCK +#endif + +/* In the GNU C library we must keep the namespace clean. */ +#ifdef _LIBC +# define setenv __setenv +# define clearenv __clearenv +# define tfind __tfind +# define tsearch __tsearch +#endif + +/* In the GNU C library implementation we try to be more clever and + allow arbitrarily many changes of the environment given that the used + values are from a small set. Outside glibc this will eat up all + memory after a while. */ +#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ + && (defined __GNUC__ || defined __clang__)) +# define USE_TSEARCH 1 +# include +typedef int (*compar_fn_t) (const void *, const void *); + +/* This is a pointer to the root of the search tree with the known + values. */ +static void *known_values; + +# define KNOWN_VALUE(Str) \ + ({ \ + void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ + value != NULL ? *(char **) value : NULL; \ + }) +# define STORE_VALUE(Str) \ + tsearch (Str, &known_values, (compar_fn_t) strcmp) + +#else +# undef USE_TSEARCH + +# define KNOWN_VALUE(Str) NULL +# define STORE_VALUE(Str) do { } while (0) + +#endif + + +/* If this variable is not a null pointer we allocated the current + environment. */ +static char **last_environ; + + +/* This function is used by 'setenv' and 'putenv'. The difference between + the two functions is that for the former must create a new string which + is then placed in the environment, while the argument of 'putenv' + must be used directly. This is all complicated by the fact that we try + to reuse values once generated for a 'setenv' call since we can never + free the strings. */ +int +__add_to_environ (const char *name, const char *value, const char *combined, + int replace) +{ + char **ep; + size_t size; + const size_t namelen = strlen (name); + const size_t vallen = value != NULL ? strlen (value) + 1 : 0; + + LOCK; + + /* We have to get the pointer now that we have the lock and not earlier + since another thread might have created a new environment. */ + ep = __environ; + + size = 0; + if (ep != NULL) + { + for (; *ep != NULL; ++ep) + if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') + break; + else + ++size; + } + + if (ep == NULL || *ep == NULL) + { + char **new_environ; +#ifdef USE_TSEARCH + char *new_value; +#endif + + /* We allocated this space; we can extend it. */ + new_environ = + (char **) (last_environ == NULL + ? malloc ((size + 2) * sizeof (char *)) + : realloc (last_environ, (size + 2) * sizeof (char *))); + if (new_environ == NULL) + { + /* It's easier to set errno to ENOMEM than to rely on the + 'malloc-posix' and 'realloc-posix' gnulib modules. */ + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + + /* If the whole entry is given add it. */ + if (combined != NULL) + /* We must not add the string to the search tree since it belongs + to the user. */ + new_environ[size] = (char *) combined; + else + { + /* See whether the value is already known. */ +#ifdef USE_TSEARCH +# ifdef _LIBC + new_value = (char *) alloca (namelen + 1 + vallen); + __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), + value, vallen); +# else + new_value = (char *) malloca (namelen + 1 + vallen); + if (new_value == NULL) + { + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + memcpy (new_value, name, namelen); + new_value[namelen] = '='; + memcpy (&new_value[namelen + 1], value, vallen); +# endif + + new_environ[size] = KNOWN_VALUE (new_value); + if (new_environ[size] == NULL) +#endif + { + new_environ[size] = (char *) malloc (namelen + 1 + vallen); + if (new_environ[size] == NULL) + { +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + +#ifdef USE_TSEARCH + memcpy (new_environ[size], new_value, namelen + 1 + vallen); +#else + memcpy (new_environ[size], name, namelen); + new_environ[size][namelen] = '='; + memcpy (&new_environ[size][namelen + 1], value, vallen); +#endif + /* And save the value now. We cannot do this when we remove + the string since then we cannot decide whether it is a + user string or not. */ + STORE_VALUE (new_environ[size]); + } +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + } + + if (__environ != last_environ) + memcpy ((char *) new_environ, (char *) __environ, + size * sizeof (char *)); + + new_environ[size + 1] = NULL; + + last_environ = __environ = new_environ; + } + else if (replace) + { + char *np; + + /* Use the user string if given. */ + if (combined != NULL) + np = (char *) combined; + else + { +#ifdef USE_TSEARCH + char *new_value; +# ifdef _LIBC + new_value = alloca (namelen + 1 + vallen); + __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), + value, vallen); +# else + new_value = malloca (namelen + 1 + vallen); + if (new_value == NULL) + { + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + memcpy (new_value, name, namelen); + new_value[namelen] = '='; + memcpy (&new_value[namelen + 1], value, vallen); +# endif + + np = KNOWN_VALUE (new_value); + if (np == NULL) +#endif + { + np = (char *) malloc (namelen + 1 + vallen); + if (np == NULL) + { +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + +#ifdef USE_TSEARCH + memcpy (np, new_value, namelen + 1 + vallen); +#else + memcpy (np, name, namelen); + np[namelen] = '='; + memcpy (&np[namelen + 1], value, vallen); +#endif + /* And remember the value. */ + STORE_VALUE (np); + } +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + } + + *ep = np; + } + + UNLOCK; + + return 0; +} + +int +setenv (const char *name, const char *value, int replace) +{ + if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) + { + __set_errno (EINVAL); + return -1; + } + + return __add_to_environ (name, value, NULL, replace); +} + +/* The 'clearenv' was planned to be added to POSIX.1 but probably + never made it. Nevertheless the POSIX.9 standard (POSIX bindings + for Fortran 77) requires this function. */ +int +clearenv (void) +{ + LOCK; + + if (__environ == last_environ && __environ != NULL) + { + /* We allocated this environment so we can free it. */ + free (__environ); + last_environ = NULL; + } + + /* Clear the environment pointer removes the whole environment. */ + __environ = NULL; + + UNLOCK; + + return 0; +} + +#ifdef _LIBC +static void +free_mem (void) +{ + /* Remove all traces. */ + clearenv (); + + /* Now remove the search tree. */ + __tdestroy (known_values, free); + known_values = NULL; +} +text_set_element (__libc_subfreeres, free_mem); + + +# undef setenv +# undef clearenv +weak_alias (__setenv, setenv) +weak_alias (__clearenv, clearenv) +#endif + +#endif /* _LIBC || !HAVE_SETENV */ + +/* The rest of this file is called into use when replacing an existing + but buggy setenv. Known bugs include failure to diagnose invalid + name, and consuming a leading '=' from value. */ +#if HAVE_SETENV + +# undef setenv +# if !HAVE_DECL_SETENV +extern int setenv (const char *, const char *, int); +# endif +# define STREQ(a, b) (strcmp (a, b) == 0) + +int +rpl_setenv (const char *name, const char *value, int replace) +{ + int result; + if (!name || !*name || strchr (name, '=')) + { + errno = EINVAL; + return -1; + } + /* Call the real setenv even if replace is 0, in case implementation + has underlying data to update, such as when environ changes. */ + result = setenv (name, value, replace); + if (result == 0 && replace && *value == '=') + { + char *tmp = getenv (name); + if (!STREQ (tmp, value)) + { + int saved_errno; + size_t len = strlen (value); + tmp = malloca (len + 2); + /* Since leading '=' is eaten, double it up. */ + *tmp = '='; + memcpy (tmp + 1, value, len + 1); + result = setenv (name, tmp, replace); + saved_errno = errno; + freea (tmp); + errno = saved_errno; + } + } + return result; +} + +#endif /* HAVE_SETENV */ diff --git a/3rdPartner/libiconv/srclib/signal.in.h b/3rdPartner/libiconv/srclib/signal.in.h new file mode 100644 index 0000000..640b502 --- /dev/null +++ b/3rdPartner/libiconv/srclib/signal.in.h @@ -0,0 +1,487 @@ +/* A GNU-like . + + Copyright (C) 2006-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T) +/* Special invocation convention: + - Inside glibc header files. + - On glibc systems we have a sequence of nested includes + -> -> . + In this situation, the functions are not yet declared, therefore we cannot + provide the C++ aliases. + - On glibc systems with GCC 4.3 we have a sequence of nested includes + -> -> -> . + In this situation, some of the functions are not yet declared, therefore + we cannot provide the C++ aliases. */ + +# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_SIGNAL_H + +#define _GL_ALREADY_INCLUDING_SIGNAL_H + +/* Define pid_t, uid_t. + Also, mingw defines sigset_t not in , but in . + On Solaris 10, includes , which eventually includes + us; so include now, before the second inclusion guard. */ +#include + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_SIGNAL_H@ + +#undef _GL_ALREADY_INCLUDING_SIGNAL_H + +#ifndef _@GUARD_PREFIX@_SIGNAL_H +#define _@GUARD_PREFIX@_SIGNAL_H + +/* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android, + OS/2 kLIBC declare pthread_sigmask in , not in . + But avoid namespace pollution on glibc systems.*/ +#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \ + && ((defined __APPLE__ && defined __MACH__) \ + || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \ + || defined __sun || defined __ANDROID__ || defined __KLIBC__) \ + && ! defined __GLIBC__ +# include +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* On AIX, sig_atomic_t already includes volatile. C99 requires that + 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not. + Hence, redefine this to a non-volatile type as needed. */ +#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +# if !GNULIB_defined_sig_atomic_t +typedef int rpl_sig_atomic_t; +# undef sig_atomic_t +# define sig_atomic_t rpl_sig_atomic_t +# define GNULIB_defined_sig_atomic_t 1 +# endif +#endif + +/* A set or mask of signals. */ +#if !@HAVE_SIGSET_T@ +# if !GNULIB_defined_sigset_t +typedef unsigned int sigset_t; +# define GNULIB_defined_sigset_t 1 +# endif +#endif + +/* Define sighandler_t, the type of signal handlers. A GNU extension. */ +#if !@HAVE_SIGHANDLER_T@ +# ifdef __cplusplus +extern "C" { +# endif +# if !GNULIB_defined_sighandler_t +typedef void (*sighandler_t) (int); +# define GNULIB_defined_sighandler_t 1 +# endif +# ifdef __cplusplus +} +# endif +#endif + + +#if @GNULIB_SIGNAL_H_SIGPIPE@ +# ifndef SIGPIPE +/* Define SIGPIPE to a value that does not overlap with other signals. */ +# define SIGPIPE 13 +# define GNULIB_defined_SIGPIPE 1 +/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask', + 'write', 'stdio'. */ +# endif +#endif + + +/* Maximum signal number + 1. */ +#ifndef NSIG +# if defined __TANDEM +# define NSIG 32 +# endif +#endif + + +#if @GNULIB_PTHREAD_SIGMASK@ +# if @REPLACE_PTHREAD_SIGMASK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef pthread_sigmask +# define pthread_sigmask rpl_pthread_sigmask +# endif +_GL_FUNCDECL_RPL (pthread_sigmask, int, + (int how, + const sigset_t *restrict new_mask, + sigset_t *restrict old_mask)); +_GL_CXXALIAS_RPL (pthread_sigmask, int, + (int how, + const sigset_t *restrict new_mask, + sigset_t *restrict old_mask)); +# else +# if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask) +_GL_FUNCDECL_SYS (pthread_sigmask, int, + (int how, + const sigset_t *restrict new_mask, + sigset_t *restrict old_mask)); +# endif +_GL_CXXALIAS_SYS (pthread_sigmask, int, + (int how, + const sigset_t *restrict new_mask, + sigset_t *restrict old_mask)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (pthread_sigmask); +# endif +#elif defined GNULIB_POSIXCHECK +# undef pthread_sigmask +# if HAVE_RAW_DECL_PTHREAD_SIGMASK +_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - " + "use gnulib module pthread_sigmask for portability"); +# endif +#endif + + +#if @GNULIB_RAISE@ +# if @REPLACE_RAISE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef raise +# define raise rpl_raise +# endif +_GL_FUNCDECL_RPL (raise, int, (int sig)); +_GL_CXXALIAS_RPL (raise, int, (int sig)); +# else +# if !@HAVE_RAISE@ +_GL_FUNCDECL_SYS (raise, int, (int sig)); +# endif +_GL_CXXALIAS_SYS (raise, int, (int sig)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (raise); +# endif +#elif defined GNULIB_POSIXCHECK +# undef raise +/* Assume raise is always declared. */ +_GL_WARN_ON_USE (raise, "raise can crash on native Windows - " + "use gnulib module raise for portability"); +#endif + + +#if @GNULIB_SIGPROCMASK@ +# if !@HAVE_POSIX_SIGNALBLOCKING@ + +# ifndef GNULIB_defined_signal_blocking +# define GNULIB_defined_signal_blocking 1 +# endif + +/* Maximum signal number + 1. */ +# ifndef NSIG +# define NSIG 32 +# endif + +/* This code supports only 32 signals. */ +# if !GNULIB_defined_verify_NSIG_constraint +typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1]; +# define GNULIB_defined_verify_NSIG_constraint 1 +# endif + +# endif + +/* When also using extern inline, suppress the use of static inline in + standard headers of problematic Apple configurations, as Libc at + least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., + . + Perhaps Apple will fix this some day. */ +#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ + && (defined __i386__ || defined __x86_64__)) +# undef sigaddset +# undef sigdelset +# undef sigemptyset +# undef sigfillset +# undef sigismember +#endif + +/* Test whether a given signal is contained in a signal set. */ +# if @HAVE_POSIX_SIGNALBLOCKING@ +/* This function is defined as a macro on Mac OS X. */ +# if defined __cplusplus && defined GNULIB_NAMESPACE +# undef sigismember +# endif +# else +_GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig)); +_GL_CXXALIASWARN (sigismember); + +/* Initialize a signal set to the empty set. */ +# if @HAVE_POSIX_SIGNALBLOCKING@ +/* This function is defined as a macro on Mac OS X. */ +# if defined __cplusplus && defined GNULIB_NAMESPACE +# undef sigemptyset +# endif +# else +_GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set)); +_GL_CXXALIASWARN (sigemptyset); + +/* Add a signal to a signal set. */ +# if @HAVE_POSIX_SIGNALBLOCKING@ +/* This function is defined as a macro on Mac OS X. */ +# if defined __cplusplus && defined GNULIB_NAMESPACE +# undef sigaddset +# endif +# else +_GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig)); +_GL_CXXALIASWARN (sigaddset); + +/* Remove a signal from a signal set. */ +# if @HAVE_POSIX_SIGNALBLOCKING@ +/* This function is defined as a macro on Mac OS X. */ +# if defined __cplusplus && defined GNULIB_NAMESPACE +# undef sigdelset +# endif +# else +_GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig)); +_GL_CXXALIASWARN (sigdelset); + +/* Fill a signal set with all possible signals. */ +# if @HAVE_POSIX_SIGNALBLOCKING@ +/* This function is defined as a macro on Mac OS X. */ +# if defined __cplusplus && defined GNULIB_NAMESPACE +# undef sigfillset +# endif +# else +_GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set)); +_GL_CXXALIASWARN (sigfillset); + +/* Return the set of those blocked signals that are pending. */ +# if !@HAVE_POSIX_SIGNALBLOCKING@ +_GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set)); +_GL_CXXALIASWARN (sigpending); + +/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET. + Then, if SET is not NULL, affect the current set of blocked signals by + combining it with *SET as indicated in OPERATION. + In this implementation, you are not allowed to change a signal handler + while the signal is blocked. */ +# if !@HAVE_POSIX_SIGNALBLOCKING@ +# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */ +# define SIG_SETMASK 1 /* blocked_set = *set; */ +# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */ +_GL_FUNCDECL_SYS (sigprocmask, int, + (int operation, + const sigset_t *restrict set, + sigset_t *restrict old_set)); +# endif +_GL_CXXALIAS_SYS (sigprocmask, int, + (int operation, + const sigset_t *restrict set, + sigset_t *restrict old_set)); +_GL_CXXALIASWARN (sigprocmask); + +/* Install the handler FUNC for signal SIG, and return the previous + handler. */ +# ifdef __cplusplus +extern "C" { +# endif +# if !GNULIB_defined_function_taking_int_returning_void_t +typedef void (*_gl_function_taking_int_returning_void_t) (int); +# define GNULIB_defined_function_taking_int_returning_void_t 1 +# endif +# ifdef __cplusplus +} +# endif +# if !@HAVE_POSIX_SIGNALBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define signal rpl_signal +# endif +_GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t, + (int sig, _gl_function_taking_int_returning_void_t func)); +_GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t, + (int sig, _gl_function_taking_int_returning_void_t func)); +# else +/* On OpenBSD, the declaration of 'signal' may not be present at this point, + because it occurs in , not directly. */ +# if defined __OpenBSD__ +_GL_FUNCDECL_SYS (signal, _gl_function_taking_int_returning_void_t, + (int sig, _gl_function_taking_int_returning_void_t func)); +# endif +_GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t, + (int sig, _gl_function_taking_int_returning_void_t func)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (signal); +# endif + +# if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE +/* Raise signal SIGPIPE. */ +_GL_EXTERN_C int _gl_raise_SIGPIPE (void); +# endif + +#elif defined GNULIB_POSIXCHECK +# undef sigaddset +# if HAVE_RAW_DECL_SIGADDSET +_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigdelset +# if HAVE_RAW_DECL_SIGDELSET +_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigemptyset +# if HAVE_RAW_DECL_SIGEMPTYSET +_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigfillset +# if HAVE_RAW_DECL_SIGFILLSET +_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigismember +# if HAVE_RAW_DECL_SIGISMEMBER +_GL_WARN_ON_USE (sigismember, "sigismember is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigpending +# if HAVE_RAW_DECL_SIGPENDING +_GL_WARN_ON_USE (sigpending, "sigpending is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +# undef sigprocmask +# if HAVE_RAW_DECL_SIGPROCMASK +_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - " + "use the gnulib module sigprocmask for portability"); +# endif +#endif /* @GNULIB_SIGPROCMASK@ */ + + +#if @GNULIB_SIGACTION@ +# if !@HAVE_SIGACTION@ + +# if !@HAVE_SIGINFO_T@ + +# if !GNULIB_defined_siginfo_types + +/* Present to allow compilation, but unsupported by gnulib. */ +union sigval +{ + int sival_int; + void *sival_ptr; +}; + +/* Present to allow compilation, but unsupported by gnulib. */ +struct siginfo_t +{ + int si_signo; + int si_code; + int si_errno; + pid_t si_pid; + uid_t si_uid; + void *si_addr; + int si_status; + long si_band; + union sigval si_value; +}; +typedef struct siginfo_t siginfo_t; + +# define GNULIB_defined_siginfo_types 1 +# endif + +# endif /* !@HAVE_SIGINFO_T@ */ + +/* We assume that platforms which lack the sigaction() function also lack + the 'struct sigaction' type, and vice versa. */ + +# if !GNULIB_defined_struct_sigaction + +struct sigaction +{ + union + { + void (*_sa_handler) (int); + /* Present to allow compilation, but unsupported by gnulib. POSIX + says that implementations may, but not must, make sa_sigaction + overlap with sa_handler, but we know of no implementation where + they do not overlap. */ + void (*_sa_sigaction) (int, siginfo_t *, void *); + } _sa_func; + sigset_t sa_mask; + /* Not all POSIX flags are supported. */ + int sa_flags; +}; +# define sa_handler _sa_func._sa_handler +# define sa_sigaction _sa_func._sa_sigaction +/* Unsupported flags are not present. */ +# define SA_RESETHAND 1 +# define SA_NODEFER 2 +# define SA_RESTART 4 + +# define GNULIB_defined_struct_sigaction 1 +# endif + +_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict, + struct sigaction *restrict)); + +# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ + +# define sa_sigaction sa_handler + +# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */ + +_GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict, + struct sigaction *restrict)); +_GL_CXXALIASWARN (sigaction); + +#elif defined GNULIB_POSIXCHECK +# undef sigaction +# if HAVE_RAW_DECL_SIGACTION +_GL_WARN_ON_USE (sigaction, "sigaction is unportable - " + "use the gnulib module sigaction for portability"); +# endif +#endif + +/* Some systems don't have SA_NODEFER. */ +#ifndef SA_NODEFER +# define SA_NODEFER 0 +#endif + + +#endif /* _@GUARD_PREFIX@_SIGNAL_H */ +#endif /* _@GUARD_PREFIX@_SIGNAL_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/sigprocmask.c b/3rdPartner/libiconv/srclib/sigprocmask.c new file mode 100644 index 0000000..a805da6 --- /dev/null +++ b/3rdPartner/libiconv/srclib/sigprocmask.c @@ -0,0 +1,349 @@ +/* POSIX compatible signal blocking. + Copyright (C) 2006-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2006. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +#endif + +/* We assume that a platform without POSIX signal blocking functions + also does not have the POSIX sigaction() function, only the + signal() function. We also assume signal() has SysV semantics, + where any handler is uninstalled prior to being invoked. This is + true for native Windows platforms. */ + +/* We use raw signal(), but also provide a wrapper rpl_signal() so + that applications can query or change a blocked signal. */ +#undef signal + +/* Provide invalid signal numbers as fallbacks if the uncatchable + signals are not defined. */ +#ifndef SIGKILL +# define SIGKILL (-1) +#endif +#ifndef SIGSTOP +# define SIGSTOP (-1) +#endif + +/* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias + for the signal SIGABRT. Only one signal handler is stored for both + SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ +#if defined _WIN32 && ! defined __CYGWIN__ +# undef SIGABRT_COMPAT +# define SIGABRT_COMPAT 6 +#endif +#ifdef SIGABRT_COMPAT +# define SIGABRT_COMPAT_MASK (1U << SIGABRT_COMPAT) +#else +# define SIGABRT_COMPAT_MASK 0 +#endif + +typedef void (*handler_t) (int); + +#if HAVE_MSVC_INVALID_PARAMETER_HANDLER +static handler_t +signal_nothrow (int sig, handler_t handler) +{ + handler_t result; + + TRY_MSVC_INVAL + { + result = signal (sig, handler); + } + CATCH_MSVC_INVAL + { + result = SIG_ERR; + errno = EINVAL; + } + DONE_MSVC_INVAL; + + return result; +} +# define signal signal_nothrow +#endif + +/* Handling of gnulib defined signals. */ + +#if GNULIB_defined_SIGPIPE +static handler_t SIGPIPE_handler = SIG_DFL; +#endif + +#if GNULIB_defined_SIGPIPE +static handler_t +ext_signal (int sig, handler_t handler) +{ + switch (sig) + { + case SIGPIPE: + { + handler_t old_handler = SIGPIPE_handler; + SIGPIPE_handler = handler; + return old_handler; + } + default: /* System defined signal */ + return signal (sig, handler); + } +} +# undef signal +# define signal ext_signal +#endif + +int +sigismember (const sigset_t *set, int sig) +{ + if (sig >= 0 && sig < NSIG) + { + #ifdef SIGABRT_COMPAT + if (sig == SIGABRT_COMPAT) + sig = SIGABRT; + #endif + + return (*set >> sig) & 1; + } + else + return 0; +} + +int +sigemptyset (sigset_t *set) +{ + *set = 0; + return 0; +} + +int +sigaddset (sigset_t *set, int sig) +{ + if (sig >= 0 && sig < NSIG) + { + #ifdef SIGABRT_COMPAT + if (sig == SIGABRT_COMPAT) + sig = SIGABRT; + #endif + + *set |= 1U << sig; + return 0; + } + else + { + errno = EINVAL; + return -1; + } +} + +int +sigdelset (sigset_t *set, int sig) +{ + if (sig >= 0 && sig < NSIG) + { + #ifdef SIGABRT_COMPAT + if (sig == SIGABRT_COMPAT) + sig = SIGABRT; + #endif + + *set &= ~(1U << sig); + return 0; + } + else + { + errno = EINVAL; + return -1; + } +} + + +int +sigfillset (sigset_t *set) +{ + *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; + return 0; +} + +/* Set of currently blocked signals. */ +static volatile sigset_t blocked_set /* = 0 */; + +/* Set of currently blocked and pending signals. */ +static volatile sig_atomic_t pending_array[NSIG] /* = { 0 } */; + +/* Signal handler that is installed for blocked signals. */ +static void +blocked_handler (int sig) +{ + /* Reinstall the handler, in case the signal occurs multiple times + while blocked. There is an inherent race where an asynchronous + signal in between when the kernel uninstalled the handler and + when we reinstall it will trigger the default handler; oh + well. */ + signal (sig, blocked_handler); + if (sig >= 0 && sig < NSIG) + pending_array[sig] = 1; +} + +int +sigpending (sigset_t *set) +{ + sigset_t pending = 0; + int sig; + + for (sig = 0; sig < NSIG; sig++) + if (pending_array[sig]) + pending |= 1U << sig; + *set = pending; + return 0; +} + +/* The previous signal handlers. + Only the array elements corresponding to blocked signals are relevant. */ +static volatile handler_t old_handlers[NSIG]; + +int +sigprocmask (int operation, const sigset_t *set, sigset_t *old_set) +{ + if (old_set != NULL) + *old_set = blocked_set; + + if (set != NULL) + { + sigset_t new_blocked_set; + sigset_t to_unblock; + sigset_t to_block; + + switch (operation) + { + case SIG_BLOCK: + new_blocked_set = blocked_set | *set; + break; + case SIG_SETMASK: + new_blocked_set = *set; + break; + case SIG_UNBLOCK: + new_blocked_set = blocked_set & ~*set; + break; + default: + errno = EINVAL; + return -1; + } + to_unblock = blocked_set & ~new_blocked_set; + to_block = new_blocked_set & ~blocked_set; + + if (to_block != 0) + { + int sig; + + for (sig = 0; sig < NSIG; sig++) + if ((to_block >> sig) & 1) + { + pending_array[sig] = 0; + if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR) + blocked_set |= 1U << sig; + } + } + + if (to_unblock != 0) + { + sig_atomic_t received[NSIG]; + int sig; + + for (sig = 0; sig < NSIG; sig++) + if ((to_unblock >> sig) & 1) + { + if (signal (sig, old_handlers[sig]) != blocked_handler) + /* The application changed a signal handler while the signal + was blocked, bypassing our rpl_signal replacement. + We don't support this. */ + abort (); + received[sig] = pending_array[sig]; + blocked_set &= ~(1U << sig); + pending_array[sig] = 0; + } + else + received[sig] = 0; + + for (sig = 0; sig < NSIG; sig++) + if (received[sig]) + raise (sig); + } + } + return 0; +} + +/* Install the handler FUNC for signal SIG, and return the previous + handler. */ +handler_t +rpl_signal (int sig, handler_t handler) +{ + /* We must provide a wrapper, so that a user can query what handler + they installed even if that signal is currently blocked. */ + if (sig >= 0 && sig < NSIG && sig != SIGKILL && sig != SIGSTOP + && handler != SIG_ERR) + { + #ifdef SIGABRT_COMPAT + if (sig == SIGABRT_COMPAT) + sig = SIGABRT; + #endif + + if (blocked_set & (1U << sig)) + { + /* POSIX states that sigprocmask and signal are both + async-signal-safe. This is not true of our + implementation - there is a slight data race where an + asynchronous interrupt on signal A can occur after we + install blocked_handler but before we have updated + old_handlers for signal B, such that handler A can see + stale information if it calls signal(B). Oh well - + signal handlers really shouldn't try to manipulate the + installed handlers of unrelated signals. */ + handler_t result = old_handlers[sig]; + old_handlers[sig] = handler; + return result; + } + else + return signal (sig, handler); + } + else + { + errno = EINVAL; + return SIG_ERR; + } +} + +#if GNULIB_defined_SIGPIPE +/* Raise the signal SIGPIPE. */ +int +_gl_raise_SIGPIPE (void) +{ + if (blocked_set & (1U << SIGPIPE)) + pending_array[SIGPIPE] = 1; + else + { + handler_t handler = SIGPIPE_handler; + if (handler == SIG_DFL) + exit (128 + SIGPIPE); + else if (handler != SIG_IGN) + (*handler) (SIGPIPE); + } + return 0; +} +#endif diff --git a/3rdPartner/libiconv/srclib/stat-time.c b/3rdPartner/libiconv/srclib/stat-time.c new file mode 100644 index 0000000..3d48a2b --- /dev/null +++ b/3rdPartner/libiconv/srclib/stat-time.c @@ -0,0 +1,21 @@ +/* stat-related time functions. + + Copyright (C) 2012-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE +#include "stat-time.h" diff --git a/3rdPartner/libiconv/srclib/stat-time.h b/3rdPartner/libiconv/srclib/stat-time.h new file mode 100644 index 0000000..6b0088e --- /dev/null +++ b/3rdPartner/libiconv/srclib/stat-time.h @@ -0,0 +1,252 @@ +/* stat-related time functions. + + Copyright (C) 2005, 2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert. */ + +#ifndef STAT_TIME_H +#define STAT_TIME_H 1 + +#include "intprops.h" + +#include +#include +#include +#include + +#ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +#endif +_GL_INLINE_HEADER_BEGIN +#ifndef _GL_STAT_TIME_INLINE +# define _GL_STAT_TIME_INLINE _GL_INLINE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type + struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, + ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, + if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim + for access, status change, data modification, or birth (creation) + time respectively. + + These macros are private to stat-time.h. */ +#if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC +# if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC +# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) +# else +# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) +# endif +#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC +# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) +#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC +# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) +#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC +# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) +#endif + +/* Return the nanosecond component of *ST's access time. */ +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE +get_stat_atime_ns (struct stat const *st) +{ +# if defined STAT_TIMESPEC + return STAT_TIMESPEC (st, st_atim).tv_nsec; +# elif defined STAT_TIMESPEC_NS + return STAT_TIMESPEC_NS (st, st_atim); +# else + return 0; +# endif +} + +/* Return the nanosecond component of *ST's status change time. */ +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE +get_stat_ctime_ns (struct stat const *st) +{ +# if defined STAT_TIMESPEC + return STAT_TIMESPEC (st, st_ctim).tv_nsec; +# elif defined STAT_TIMESPEC_NS + return STAT_TIMESPEC_NS (st, st_ctim); +# else + return 0; +# endif +} + +/* Return the nanosecond component of *ST's data modification time. */ +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE +get_stat_mtime_ns (struct stat const *st) +{ +# if defined STAT_TIMESPEC + return STAT_TIMESPEC (st, st_mtim).tv_nsec; +# elif defined STAT_TIMESPEC_NS + return STAT_TIMESPEC_NS (st, st_mtim); +# else + return 0; +# endif +} + +/* Return the nanosecond component of *ST's birth time. */ +_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE +get_stat_birthtime_ns (_GL_UNUSED struct stat const *st) +{ +# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC + return STAT_TIMESPEC (st, st_birthtim).tv_nsec; +# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC + return STAT_TIMESPEC_NS (st, st_birthtim); +# else + return 0; +# endif +} + +/* Return *ST's access time. */ +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE +get_stat_atime (struct stat const *st) +{ +#ifdef STAT_TIMESPEC + return STAT_TIMESPEC (st, st_atim); +#else + struct timespec t; + t.tv_sec = st->st_atime; + t.tv_nsec = get_stat_atime_ns (st); + return t; +#endif +} + +/* Return *ST's status change time. */ +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE +get_stat_ctime (struct stat const *st) +{ +#ifdef STAT_TIMESPEC + return STAT_TIMESPEC (st, st_ctim); +#else + struct timespec t; + t.tv_sec = st->st_ctime; + t.tv_nsec = get_stat_ctime_ns (st); + return t; +#endif +} + +/* Return *ST's data modification time. */ +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE +get_stat_mtime (struct stat const *st) +{ +#ifdef STAT_TIMESPEC + return STAT_TIMESPEC (st, st_mtim); +#else + struct timespec t; + t.tv_sec = st->st_mtime; + t.tv_nsec = get_stat_mtime_ns (st); + return t; +#endif +} + +/* Return *ST's birth time, if available; otherwise return a value + with tv_sec and tv_nsec both equal to -1. */ +_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE +get_stat_birthtime (_GL_UNUSED struct stat const *st) +{ + struct timespec t; + +#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ + || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) + t = STAT_TIMESPEC (st, st_birthtim); +#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC + t.tv_sec = st->st_birthtime; + t.tv_nsec = st->st_birthtimensec; +#elif defined _WIN32 && ! defined __CYGWIN__ + /* Native Windows platforms (but not Cygwin) put the "file creation + time" in st_ctime (!). See + . */ +# if _GL_WINDOWS_STAT_TIMESPEC + t = st->st_ctim; +# else + t.tv_sec = st->st_ctime; + t.tv_nsec = 0; +# endif +#else + /* Birth time is not supported. */ + t.tv_sec = -1; + t.tv_nsec = -1; +#endif + +#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ + || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ + || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) + /* FreeBSD and NetBSD sometimes signal the absence of knowledge by + using zero. Attempt to work around this problem. Alas, this can + report failure even for valid timestamps. Also, NetBSD + sometimes returns junk in the birth time fields; work around this + bug if it is detected. */ + if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) + { + t.tv_sec = -1; + t.tv_nsec = -1; + } +#endif + + return t; +} + +/* If a stat-like function returned RESULT, normalize the timestamps + in *ST, in case this platform suffers from the Solaris 11 bug where + tv_nsec might be negative. Return the adjusted RESULT, setting + errno to EOVERFLOW if normalization overflowed. This function + is intended to be private to this .h file. */ +_GL_STAT_TIME_INLINE int +stat_time_normalize (int result, _GL_UNUSED struct stat *st) +{ +#if defined __sun && defined STAT_TIMESPEC + if (result == 0) + { + long int timespec_hz = 1000000000; + short int const ts_off[] = { offsetof (struct stat, st_atim), + offsetof (struct stat, st_mtim), + offsetof (struct stat, st_ctim) }; + int i; + for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) + { + struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); + long int q = ts->tv_nsec / timespec_hz; + long int r = ts->tv_nsec % timespec_hz; + if (r < 0) + { + r += timespec_hz; + q--; + } + ts->tv_nsec = r; + /* Overflow is possible, as Solaris 11 stat can yield + tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. + INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ + if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec)) + { + errno = EOVERFLOW; + return -1; + } + } + } +#endif + return result; +} + +#ifdef __cplusplus +} +#endif + +_GL_INLINE_HEADER_END + +#endif diff --git a/3rdPartner/libiconv/srclib/stat-w32.c b/3rdPartner/libiconv/srclib/stat-w32.c new file mode 100644 index 0000000..c1a2923 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stat-w32.c @@ -0,0 +1,461 @@ +/* Core of implementation of fstat and stat for native Windows. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Bruno Haible. */ + +#include + +#if defined _WIN32 && ! defined __CYGWIN__ + +/* Attempt to make define FILE_ID_INFO. + But ensure that the redefinition of _WIN32_WINNT does not make us assume + Windows Vista or newer when building for an older version of Windows. */ +#if HAVE_SDKDDKVER_H +# include +# if _WIN32_WINNT >= _WIN32_WINNT_VISTA +# define WIN32_ASSUME_VISTA 1 +# else +# define WIN32_ASSUME_VISTA 0 +# endif +# if !defined _WIN32_WINNT || (_WIN32_WINNT < _WIN32_WINNT_WIN8) +# undef _WIN32_WINNT +# define _WIN32_WINNT _WIN32_WINNT_WIN8 +# endif +#else +# define WIN32_ASSUME_VISTA (_WIN32_WINNT >= _WIN32_WINNT_VISTA) +#endif + +#include +#include +#include +#include +#include +#include +#include + +/* Specification. */ +#include "stat-w32.h" + +#include "pathmax.h" +#include "verify.h" + +/* Don't assume that UNICODE is not defined. */ +#undef LoadLibrary +#define LoadLibrary LoadLibraryA +#undef GetFinalPathNameByHandle +#define GetFinalPathNameByHandle GetFinalPathNameByHandleA + +/* Older mingw headers do not define VOLUME_NAME_NONE. */ +#ifndef VOLUME_NAME_NONE +# define VOLUME_NAME_NONE 4 +#endif + +#if !WIN32_ASSUME_VISTA + +/* Avoid warnings from gcc -Wcast-function-type. */ +# define GetProcAddress \ + (void *) GetProcAddress + +# if _GL_WINDOWS_STAT_INODES == 2 +/* GetFileInformationByHandleEx was introduced only in Windows Vista. */ +typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, + FILE_INFO_BY_HANDLE_CLASS fiClass, + LPVOID lpBuffer, + DWORD dwBufferSize); +static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; +# endif +/* GetFinalPathNameByHandle was introduced only in Windows Vista. */ +typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, + LPSTR lpFilePath, + DWORD lenFilePath, + DWORD dwFlags); +static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; +static BOOL initialized = FALSE; + +static void +initialize (void) +{ + HMODULE kernel32 = LoadLibrary ("kernel32.dll"); + if (kernel32 != NULL) + { +# if _GL_WINDOWS_STAT_INODES == 2 + GetFileInformationByHandleExFunc = + (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); +# endif + GetFinalPathNameByHandleFunc = + (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); + } + initialized = TRUE; +} + +#else + +# define GetFileInformationByHandleExFunc GetFileInformationByHandleEx +# define GetFinalPathNameByHandleFunc GetFinalPathNameByHandle + +#endif + +/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ +#if _GL_WINDOWS_STAT_TIMESPEC +struct timespec +_gl_convert_FILETIME_to_timespec (const FILETIME *ft) +{ + struct timespec result; + /* FILETIME: */ + unsigned long long since_1601 = + ((unsigned long long) ft->dwHighDateTime << 32) + | (unsigned long long) ft->dwLowDateTime; + if (since_1601 == 0) + { + result.tv_sec = 0; + result.tv_nsec = 0; + } + else + { + /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 + leap years, in total 134774 days. */ + unsigned long long since_1970 = + since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; + result.tv_sec = since_1970 / (unsigned long long) 10000000; + result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; + } + return result; +} +#else +time_t +_gl_convert_FILETIME_to_POSIX (const FILETIME *ft) +{ + /* FILETIME: */ + unsigned long long since_1601 = + ((unsigned long long) ft->dwHighDateTime << 32) + | (unsigned long long) ft->dwLowDateTime; + if (since_1601 == 0) + return 0; + else + { + /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 + leap years, in total 134774 days. */ + unsigned long long since_1970 = + since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; + return since_1970 / (unsigned long long) 10000000; + } +} +#endif + +/* Fill *BUF with information about the file designated by H. + PATH is the file name, if known, otherwise NULL. + Return 0 if successful, or -1 with errno set upon failure. */ +int +_gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) +{ + /* GetFileType + */ + DWORD type = GetFileType (h); + if (type == FILE_TYPE_DISK) + { +#if !WIN32_ASSUME_VISTA + if (!initialized) + initialize (); +#endif + + /* st_mode can be determined through + GetFileAttributesEx + + + or through + GetFileInformationByHandle + + + or through + GetFileInformationByHandleEx with argument FileBasicInfo + + + The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ + BY_HANDLE_FILE_INFORMATION info; + if (! GetFileInformationByHandle (h, &info)) + goto failed; + + /* Test for error conditions before starting to fill *buf. */ + if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) + { + errno = EOVERFLOW; + return -1; + } + +#if _GL_WINDOWS_STAT_INODES + /* st_ino can be determined through + GetFileInformationByHandle + + + as 64 bits, or through + GetFileInformationByHandleEx with argument FileIdInfo + + + as 128 bits. + The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ + /* Experiments show that GetFileInformationByHandleEx does not provide + much more information than GetFileInformationByHandle: + * The dwVolumeSerialNumber from GetFileInformationByHandle is equal + to the low 32 bits of the 64-bit VolumeSerialNumber from + GetFileInformationByHandleEx, and is apparently sufficient for + identifying the device. + * The nFileIndex from GetFileInformationByHandle is equal to the low + 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, + and the high 64 bits of this 128-bit FileId are zero. + * On a FAT file system, GetFileInformationByHandleEx fails with error + ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle + succeeds. + * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with + error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle + succeeds. */ +# if _GL_WINDOWS_STAT_INODES == 2 + if (GetFileInformationByHandleExFunc != NULL) + { + FILE_ID_INFO id; + if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) + { + buf->st_dev = id.VolumeSerialNumber; + verify (sizeof (ino_t) == sizeof (id.FileId)); + memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); + goto ino_done; + } + else + { + switch (GetLastError ()) + { + case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ + case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ + goto fallback; + default: + goto failed; + } + } + } + fallback: ; + /* Fallback for older Windows versions. */ + buf->st_dev = info.dwVolumeSerialNumber; + buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; + buf->st_ino._gl_ino[1] = 0; + ino_done: ; +# else /* _GL_WINDOWS_STAT_INODES == 1 */ + buf->st_dev = info.dwVolumeSerialNumber; + buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; +# endif +#else + /* st_ino is not wide enough for identifying a file on a device. + Without st_ino, st_dev is pointless. */ + buf->st_dev = 0; + buf->st_ino = 0; +#endif + + /* st_mode. */ + unsigned int mode = + /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ + ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) + | S_IREAD_UGO + | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); + if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) + { + /* Determine whether the file is executable by looking at the file + name suffix. + If the file name is already known, use it. Otherwise, for + non-empty files, it can be determined through + GetFinalPathNameByHandle + + or through + GetFileInformationByHandleEx with argument FileNameInfo + + + Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ + if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) + { + char fpath[PATH_MAX]; + if (path != NULL + || (GetFinalPathNameByHandleFunc != NULL + && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) + < sizeof (fpath) + && (path = fpath, 1))) + { + const char *last_dot = NULL; + const char *p; + for (p = path; *p != '\0'; p++) + if (*p == '.') + last_dot = p; + if (last_dot != NULL) + { + const char *suffix = last_dot + 1; + if (_stricmp (suffix, "exe") == 0 + || _stricmp (suffix, "bat") == 0 + || _stricmp (suffix, "cmd") == 0 + || _stricmp (suffix, "com") == 0) + mode |= S_IEXEC_UGO; + } + } + else + /* Cannot determine file name. Pretend that it is executable. */ + mode |= S_IEXEC_UGO; + } + } + buf->st_mode = mode; + + /* st_nlink can be determined through + GetFileInformationByHandle + + + or through + GetFileInformationByHandleEx with argument FileStandardInfo + + + The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ + buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); + + /* There's no easy way to map the Windows SID concept to an integer. */ + buf->st_uid = 0; + buf->st_gid = 0; + + /* st_rdev is irrelevant for normal files and directories. */ + buf->st_rdev = 0; + + /* st_size can be determined through + GetFileSizeEx + + or through + GetFileAttributesEx + + + or through + GetFileInformationByHandle + + + or through + GetFileInformationByHandleEx with argument FileStandardInfo + + + The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ + if (sizeof (buf->st_size) <= 4) + /* Range check already done above. */ + buf->st_size = info.nFileSizeLow; + else + buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; + + /* st_atime, st_mtime, st_ctime can be determined through + GetFileTime + + or through + GetFileAttributesEx + + + or through + GetFileInformationByHandle + + + or through + GetFileInformationByHandleEx with argument FileBasicInfo + + + The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ +#if _GL_WINDOWS_STAT_TIMESPEC + buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); + buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); + buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); +#else + buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); + buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); + buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); +#endif + + return 0; + } + else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) + { + buf->st_dev = 0; +#if _GL_WINDOWS_STAT_INODES == 2 + buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; +#else + buf->st_ino = 0; +#endif + buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); + buf->st_nlink = 1; + buf->st_uid = 0; + buf->st_gid = 0; + buf->st_rdev = 0; + if (type == FILE_TYPE_PIPE) + { + /* PeekNamedPipe + */ + DWORD bytes_available; + if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) + buf->st_size = bytes_available; + else + buf->st_size = 0; + } + else + buf->st_size = 0; +#if _GL_WINDOWS_STAT_TIMESPEC + buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; + buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; + buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; +#else + buf->st_atime = 0; + buf->st_mtime = 0; + buf->st_ctime = 0; +#endif + return 0; + } + else + { + errno = ENOENT; + return -1; + } + + failed: + { + DWORD error = GetLastError (); + #if 0 + fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); + #endif + switch (error) + { + case ERROR_ACCESS_DENIED: + case ERROR_SHARING_VIOLATION: + errno = EACCES; + break; + + case ERROR_OUTOFMEMORY: + errno = ENOMEM; + break; + + case ERROR_WRITE_FAULT: + case ERROR_READ_FAULT: + case ERROR_GEN_FAILURE: + errno = EIO; + break; + + default: + errno = EINVAL; + break; + } + return -1; + } +} + +#else + +/* This declaration is solely to ensure that after preprocessing + this file is never empty. */ +typedef int dummy; + +#endif diff --git a/3rdPartner/libiconv/srclib/stat-w32.h b/3rdPartner/libiconv/srclib/stat-w32.h new file mode 100644 index 0000000..0f79d61 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stat-w32.h @@ -0,0 +1,37 @@ +/* Core of implementation of fstat and stat for native Windows. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _STAT_W32_H +#define _STAT_W32_H 1 + +/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ +#if _GL_WINDOWS_STAT_TIMESPEC +extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); +#else +extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); +#endif + +/* Fill *BUF with information about the file designated by H. + PATH is the file name, if known, otherwise NULL. + Return 0 if successful, or -1 with errno set upon failure. */ +extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); + +/* Bitmasks for st_mode. */ +#define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) +#define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) +#define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) + +#endif /* _STAT_W32_H */ diff --git a/3rdPartner/libiconv/srclib/stat.c b/3rdPartner/libiconv/srclib/stat.c new file mode 100644 index 0000000..574489a --- /dev/null +++ b/3rdPartner/libiconv/srclib/stat.c @@ -0,0 +1,440 @@ +/* Work around platform bugs in stat. + Copyright (C) 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Eric Blake and Bruno Haible. */ + +/* If the user's config.h happens to include , let it include only + the system's here, so that orig_stat doesn't recurse to + rpl_stat. */ +#define __need_system_sys_stat_h +#include + +/* Get the original definition of stat. It might be defined as a macro. */ +#include +#include +#undef __need_system_sys_stat_h + +#if defined _WIN32 && ! defined __CYGWIN__ +# define WINDOWS_NATIVE +#endif + +#if !defined WINDOWS_NATIVE + +static int +orig_stat (const char *filename, struct stat *buf) +{ + return stat (filename, buf); +} + +#endif + +/* Specification. */ +#ifdef __osf__ +/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc + eliminates this include because of the preliminary #include + above. */ +# include "sys/stat.h" +#else +# include +#endif + +#include "stat-time.h" + +#include +#include +#include +#include +#include "filename.h" +#include "malloca.h" +#include "verify.h" + +#ifdef WINDOWS_NATIVE +# define WIN32_LEAN_AND_MEAN +# include +# include "stat-w32.h" +/* Don't assume that UNICODE is not defined. */ +# undef WIN32_FIND_DATA +# define WIN32_FIND_DATA WIN32_FIND_DATAA +# undef CreateFile +# define CreateFile CreateFileA +# undef FindFirstFile +# define FindFirstFile FindFirstFileA +#endif + +#ifdef WINDOWS_NATIVE +/* Return TRUE if the given file name denotes an UNC root. */ +static BOOL +is_unc_root (const char *rname) +{ + /* Test whether it has the syntax '\\server\share'. */ + if (ISSLASH (rname[0]) && ISSLASH (rname[1])) + { + /* It starts with two slashes. Find the next slash. */ + const char *p = rname + 2; + const char *q = p; + while (*q != '\0' && !ISSLASH (*q)) + q++; + if (q > p && *q != '\0') + { + /* Found the next slash at q. */ + q++; + const char *r = q; + while (*r != '\0' && !ISSLASH (*r)) + r++; + if (r > q && *r == '\0') + return TRUE; + } + } + return FALSE; +} +#endif + +/* Store information about NAME into ST. Work around bugs with + trailing slashes. Mingw has other bugs (such as st_ino always + being 0 on success) which this wrapper does not work around. But + at least this implementation provides the ability to emulate fchdir + correctly. */ + +int +rpl_stat (char const *name, struct stat *buf) +{ +#ifdef WINDOWS_NATIVE + /* Fill the fields ourselves, because the original stat function returns + values for st_atime, st_mtime, st_ctime that depend on the current time + zone. See + */ + /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work + around length limitations + ? */ + + /* POSIX + specifies: "More than two leading characters shall be treated as + a single character." */ + if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) + { + name += 2; + while (ISSLASH (name[1])) + name++; + } + + size_t len = strlen (name); + size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); + + /* Remove trailing slashes (except the very first one, at position + drive_prefix_len), but remember their presence. */ + size_t rlen; + bool check_dir = false; + + rlen = len; + while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) + { + check_dir = true; + if (rlen == drive_prefix_len + 1) + break; + rlen--; + } + + /* Handle '' and 'C:'. */ + if (!check_dir && rlen == drive_prefix_len) + { + errno = ENOENT; + return -1; + } + + /* Handle '\\'. */ + if (rlen == 1 && ISSLASH (name[0]) && len >= 2) + { + errno = ENOENT; + return -1; + } + + const char *rname; + char *malloca_rname; + if (rlen == len) + { + rname = name; + malloca_rname = NULL; + } + else + { + malloca_rname = malloca (rlen + 1); + if (malloca_rname == NULL) + { + errno = ENOMEM; + return -1; + } + memcpy (malloca_rname, name, rlen); + malloca_rname[rlen] = '\0'; + rname = malloca_rname; + } + + /* There are two ways to get at the requested information: + - by scanning the parent directory and examining the relevant + directory entry, + - by opening the file directly. + The first approach fails for root directories (e.g. 'C:\') and + UNC root directories (e.g. '\\server\share'). + The second approach fails for some system files (e.g. 'C:\pagefile.sys' + and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. + The second approach gives more information (in particular, correct + st_dev, st_ino, st_nlink fields). + So we use the second approach and, as a fallback except for root and + UNC root directories, also the first approach. */ + { + int ret; + + { + /* Approach based on the file. */ + + /* Open a handle to the file. + CreateFile + + */ + HANDLE h = + CreateFile (rname, + FILE_READ_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only + in case as different) makes sense only when applied to *all* + filesystem operations. */ + FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, + NULL); + if (h != INVALID_HANDLE_VALUE) + { + ret = _gl_fstat_by_handle (h, rname, buf); + CloseHandle (h); + goto done; + } + } + + /* Test for root and UNC root directories. */ + if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) + || is_unc_root (rname)) + goto failed; + + /* Fallback. */ + { + /* Approach based on the directory entry. */ + + if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) + { + /* Other Windows API functions would fail with error + ERROR_INVALID_NAME. */ + if (malloca_rname != NULL) + freea (malloca_rname); + errno = ENOENT; + return -1; + } + + /* Get the details about the directory entry. This can be done through + FindFirstFile + + + or through + FindFirstFileEx with argument FindExInfoBasic + + + */ + WIN32_FIND_DATA info; + HANDLE h = FindFirstFile (rname, &info); + if (h == INVALID_HANDLE_VALUE) + goto failed; + + /* Test for error conditions before starting to fill *buf. */ + if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) + { + FindClose (h); + if (malloca_rname != NULL) + freea (malloca_rname); + errno = EOVERFLOW; + return -1; + } + +# if _GL_WINDOWS_STAT_INODES + buf->st_dev = 0; +# if _GL_WINDOWS_STAT_INODES == 2 + buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; +# else /* _GL_WINDOWS_STAT_INODES == 1 */ + buf->st_ino = 0; +# endif +# else + /* st_ino is not wide enough for identifying a file on a device. + Without st_ino, st_dev is pointless. */ + buf->st_dev = 0; + buf->st_ino = 0; +# endif + + /* st_mode. */ + unsigned int mode = + /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ + ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) + | S_IREAD_UGO + | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); + if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) + { + /* Determine whether the file is executable by looking at the file + name suffix. */ + if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) + { + const char *last_dot = NULL; + const char *p; + for (p = info.cFileName; *p != '\0'; p++) + if (*p == '.') + last_dot = p; + if (last_dot != NULL) + { + const char *suffix = last_dot + 1; + if (_stricmp (suffix, "exe") == 0 + || _stricmp (suffix, "bat") == 0 + || _stricmp (suffix, "cmd") == 0 + || _stricmp (suffix, "com") == 0) + mode |= S_IEXEC_UGO; + } + } + } + buf->st_mode = mode; + + /* st_nlink. Ignore hard links here. */ + buf->st_nlink = 1; + + /* There's no easy way to map the Windows SID concept to an integer. */ + buf->st_uid = 0; + buf->st_gid = 0; + + /* st_rdev is irrelevant for normal files and directories. */ + buf->st_rdev = 0; + + /* st_size. */ + if (sizeof (buf->st_size) <= 4) + /* Range check already done above. */ + buf->st_size = info.nFileSizeLow; + else + buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; + + /* st_atime, st_mtime, st_ctime. */ +# if _GL_WINDOWS_STAT_TIMESPEC + buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); + buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); + buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); +# else + buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); + buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); + buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); +# endif + + FindClose (h); + + ret = 0; + } + + done: + if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) + { + errno = ENOTDIR; + ret = -1; + } + if (malloca_rname != NULL) + { + int saved_errno = errno; + freea (malloca_rname); + errno = saved_errno; + } + return ret; + } + + failed: + { + DWORD error = GetLastError (); + #if 0 + fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); + #endif + + if (malloca_rname != NULL) + freea (malloca_rname); + + switch (error) + { + /* Some of these errors probably cannot happen with the specific flags + that we pass to CreateFile. But who knows... */ + case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ + case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ + case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ + case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ + case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ + case ERROR_DIRECTORY: + errno = ENOENT; + break; + + case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ + case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ + /* XXX map to EACCES or EPERM? */ + errno = EACCES; + break; + + case ERROR_OUTOFMEMORY: + errno = ENOMEM; + break; + + case ERROR_WRITE_PROTECT: + errno = EROFS; + break; + + case ERROR_WRITE_FAULT: + case ERROR_READ_FAULT: + case ERROR_GEN_FAILURE: + errno = EIO; + break; + + case ERROR_BUFFER_OVERFLOW: + case ERROR_FILENAME_EXCED_RANGE: + errno = ENAMETOOLONG; + break; + + case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */ + errno = EPERM; + break; + + default: + errno = EINVAL; + break; + } + + return -1; + } +#else + int result = orig_stat (name, buf); + if (result == 0) + { +# if REPLACE_FUNC_STAT_FILE + /* Solaris 9 mistakenly succeeds when given a non-directory with a + trailing slash. */ + if (!S_ISDIR (buf->st_mode)) + { + size_t len = strlen (name); + if (ISSLASH (name[len - 1])) + { + errno = ENOTDIR; + return -1; + } + } +# endif /* REPLACE_FUNC_STAT_FILE */ + result = stat_time_normalize (result, buf); + } + return result; +#endif +} diff --git a/3rdPartner/libiconv/srclib/stdalign.in.h b/3rdPartner/libiconv/srclib/stdalign.in.h new file mode 100644 index 0000000..3b117df --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdalign.in.h @@ -0,0 +1,127 @@ +/* A substitute for ISO C11 . + + Copyright 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert and Bruno Haible. */ + +#ifndef _GL_STDALIGN_H +#define _GL_STDALIGN_H + +/* ISO C11 for platforms that lack it. + + References: + ISO C11 (latest free draft + ) + sections 6.5.3.4, 6.7.5, 7.15. + C++11 (latest free draft + ) + section 18.10. */ + +/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment + requirement of a structure member (i.e., slot or field) that is of + type TYPE, as an integer constant expression. + + This differs from GCC's and clang's __alignof__ operator, which can + yield a better-performing alignment for an object of that type. For + example, on x86 with GCC and on Linux/x86 with clang, + __alignof__ (double) and __alignof__ (long long) are 8, whereas + alignof (double) and alignof (long long) are 4 unless the option + '-malign-double' is used. + + The result cannot be used as a value for an 'enum' constant, if you + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. + + Include for offsetof. */ +#include + +/* FreeBSD 9.1 , included by and lots of other + standard headers, defines conflicting implementations of _Alignas + and _Alignof that are no better than ours; override them. */ +#undef _Alignas +#undef _Alignof + +/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 + . + clang versions < 8.0.0 have the same bug. */ +#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ + || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ + && !defined __clang__) \ + || (defined __clang__ && __clang_major__ < 8)) +# ifdef __cplusplus +# if 201103 <= __cplusplus +# define _Alignof(type) alignof (type) +# else + template struct __alignof_helper { char __a; __t __b; }; +# define _Alignof(type) offsetof (__alignof_helper, __b) +# endif +# else +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) +# endif +#endif +#if ! (defined __cplusplus && 201103 <= __cplusplus) +# define alignof _Alignof +#endif +#define __alignof_is_defined 1 + +/* alignas (A), also known as _Alignas (A), aligns a variable or type + to the alignment A, where A is an integer constant expression. For + example: + + int alignas (8) foo; + struct s { int a; int alignas (8) bar; }; + + aligns the address of FOO and the offset of BAR to be multiples of 8. + + A should be a power of two that is at least the type's alignment + and at most the implementation's alignment limit. This limit is + 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable + to MSVC through at least version 10.0, A should be an integer + constant, as MSVC does not support expressions such as 1 << 3. + To be portable to Sun C 5.11, do not align auto variables to + anything stricter than their default alignment. + + The following C11 requirements are not supported here: + + - If A is zero, alignas has no effect. + - alignas can be used multiple times; the strictest one wins. + - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). + + */ + +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 +# if defined __cplusplus && 201103 <= __cplusplus +# define _Alignas(a) alignas (a) +# elif (!defined __attribute__ \ + && ((defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__ && !defined __ibmxl__) \ + || (4 <= __clang_major__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) +# define _Alignas(a) __attribute__ ((__aligned__ (a))) +# elif 1300 <= _MSC_VER +# define _Alignas(a) __declspec (align (a)) +# endif +#endif +#if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# define alignas _Alignas +#endif +#if defined alignas || (defined __cplusplus && 201103 <= __cplusplus) +# define __alignas_is_defined 1 +#endif + +#endif /* _GL_STDALIGN_H */ diff --git a/3rdPartner/libiconv/srclib/stdbool.in.h b/3rdPartner/libiconv/srclib/stdbool.in.h new file mode 100644 index 0000000..03840f1 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdbool.in.h @@ -0,0 +1,132 @@ +/* Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + This file 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 file 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 program. If not, see . */ + +#ifndef _GL_STDBOOL_H +#define _GL_STDBOOL_H + +/* ISO C 99 for platforms that lack it. */ + +/* Usage suggestions: + + Programs that use should be aware of some limitations + and standards compliance issues. + + Standards compliance: + + - must be #included before 'bool', 'false', 'true' + can be used. + + - You cannot assume that sizeof (bool) == 1. + + - Programs should not undefine the macros bool, true, and false, + as C99 lists that as an "obsolescent feature". + + Limitations of this substitute, when used in a C89 environment: + + - must be #included before the '_Bool' type can be used. + + - You cannot assume that _Bool is a typedef; it might be a macro. + + - Bit-fields of type 'bool' are not supported. Portable code + should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + + - In C99, casts and automatic conversions to '_Bool' or 'bool' are + performed in such a way that every nonzero value gets converted + to 'true', and zero gets converted to 'false'. This doesn't work + with this substitute. With this substitute, only the values 0 and 1 + give the expected result when converted to _Bool' or 'bool'. + + - C99 allows the use of (_Bool)0.0 in constant expressions, but + this substitute cannot always provide this property. + + Also, it is suggested that programs use 'bool' rather than '_Bool'; + this isn't required, but 'bool' is more common. */ + + +/* 7.16. Boolean type and values */ + +/* BeOS already #defines false 0, true 1. We use the same + definitions below, but temporarily we have to #undef them. */ +#if defined __BEOS__ && !defined __HAIKU__ +# include /* defines bool but not _Bool */ +# undef false +# undef true +#endif + +#ifdef __cplusplus +# define _Bool bool +# define bool bool +#else +# if defined __BEOS__ && !defined __HAIKU__ + /* A compiler known to have 'bool'. */ + /* If the compiler already has both 'bool' and '_Bool', we can assume they + are the same types. */ +# if !@HAVE__BOOL@ +typedef bool _Bool; +# endif +# else +# if !defined __GNUC__ + /* If @HAVE__BOOL@: + Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when + the built-in _Bool type is used. See + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html + https://lists.gnu.org/r/bug-coreutils/2005-10/msg00086.html + Similar bugs are likely with other compilers as well; this file + wouldn't be used if was working. + So we override the _Bool type. + If !@HAVE__BOOL@: + Need to define _Bool ourselves. As 'signed char' or as an enum type? + Use of a typedef, with SunPRO C, leads to a stupid + "warning: _Bool is a keyword in ISO C99". + Use of an enum type, with IRIX cc, leads to a stupid + "warning(1185): enumerated type mixed with another type". + Even the existence of an enum type, without a typedef, + "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. + The only benefit of the enum, debuggability, is not important + with these compilers. So use 'signed char' and no enum. */ +# define _Bool signed char +# else + /* With this compiler, trust the _Bool type if the compiler has it. */ +# if !@HAVE__BOOL@ + /* For the sake of symbolic names in gdb, define true and false as + enum constants, not only as macros. + It is tempting to write + typedef enum { false = 0, true = 1 } _Bool; + so that gdb prints values of type 'bool' symbolically. But then + values of type '_Bool' might promote to 'int' or 'unsigned int' + (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' + (see ISO C 99 6.3.1.1.(2)). So add a negative value to the + enum; this ensures that '_Bool' promotes to 'int'. */ +typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; +# endif +# endif +# endif +# define bool _Bool +#endif + +/* The other macros must be usable in preprocessor directives. */ +#ifdef __cplusplus +# define false false +# define true true +#else +# define false 0 +# define true 1 +#endif + +#define __bool_true_false_are_defined 1 + +#endif /* _GL_STDBOOL_H */ diff --git a/3rdPartner/libiconv/srclib/stddef.in.h b/3rdPartner/libiconv/srclib/stddef.in.h new file mode 100644 index 0000000..5c9a747 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stddef.in.h @@ -0,0 +1,147 @@ +/* A substitute for POSIX 2008 , for platforms that have issues. + + Copyright (C) 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Eric Blake. */ + +/* + * POSIX 2008 for platforms that have issues. + * + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_wchar_t || defined __need_size_t \ + || defined __need_ptrdiff_t || defined __need_NULL \ + || defined __need_wint_t +/* Special invocation convention inside gcc header files. In + particular, gcc provides a version of that blindly + redefines NULL even when __need_wint_t was defined, even though + wint_t is not normally provided by . Hence, we must + remember if special invocation has ever been used to obtain wint_t, + in which case we need to clean up NULL yet again. */ + +# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) +# ifdef __need_wint_t +# define _GL_STDDEF_WINT_T +# endif +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ + /* On TinyCC, make sure that the macros that indicate the special invocation + convention get undefined. */ +# undef __need_wchar_t +# undef __need_size_t +# undef __need_ptrdiff_t +# undef __need_NULL +# undef __need_wint_t +# endif + +#else +/* Normal invocation convention. */ + +# ifndef _@GUARD_PREFIX@_STDDEF_H + +/* On AIX 7.2, with xlc in 64-bit mode, defines max_align_t to a + type with alignment 4, but 'long' has alignment 8. */ +# if defined _AIX && defined __LP64__ +# if !GNULIB_defined_max_align_t +# ifdef _MAX_ALIGN_T +/* /usr/include/stddef.h has already defined max_align_t. Override it. */ +typedef long rpl_max_align_t; +# define max_align_t rpl_max_align_t +# else +/* Prevent /usr/include/stddef.h from defining max_align_t. */ +typedef long max_align_t; +# define _MAX_ALIGN_T +# endif +# define GNULIB_defined_max_align_t 1 +# endif +# endif + +/* The include_next requires a split double-inclusion guard. */ + +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ + +/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ +# if (@REPLACE_NULL@ \ + && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) +# undef NULL +# ifdef __cplusplus + /* ISO C++ says that the macro NULL must expand to an integer constant + expression, hence '((void *) 0)' is not allowed in C++. */ +# if __GNUG__ >= 3 + /* GNU C++ has a __null macro that behaves like an integer ('int' or + 'long') but has the same size as a pointer. Use that, to avoid + warnings. */ +# define NULL __null +# else +# define NULL 0L +# endif +# else +# define NULL ((void *) 0) +# endif +# endif + +# ifndef _@GUARD_PREFIX@_STDDEF_H +# define _@GUARD_PREFIX@_STDDEF_H + +/* Some platforms lack wchar_t. */ +#if !@HAVE_WCHAR_T@ +# define wchar_t int +#endif + +/* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is + a hack in case the configure-time test was done with g++ even though + we are currently compiling with gcc. + On MSVC, max_align_t is defined only in C++ mode, after was + included. Its definition is good since it has an alignment of 8 (on x86 + and x86_64). + Similarly on OS/2 kLIBC. */ +#if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ + && defined __cplusplus +# include +#else +# if ! (@HAVE_MAX_ALIGN_T@ || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) +# if !GNULIB_defined_max_align_t +/* On the x86, the maximum storage alignment of double, long, etc. is 4, + but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, + and the C11 standard allows this. Work around this problem by + using __alignof__ (which returns 8 for double) rather than _Alignof + (which returns 4), and align each union member accordingly. */ +# if defined __GNUC__ || (__clang_major__ >= 4) +# define _GL_STDDEF_ALIGNAS(type) \ + __attribute__ ((__aligned__ (__alignof__ (type)))) +# else +# define _GL_STDDEF_ALIGNAS(type) /* */ +# endif +typedef union +{ + char *__p _GL_STDDEF_ALIGNAS (char *); + double __d _GL_STDDEF_ALIGNAS (double); + long double __ld _GL_STDDEF_ALIGNAS (long double); + long int __i _GL_STDDEF_ALIGNAS (long int); +} rpl_max_align_t; +# define max_align_t rpl_max_align_t +# define GNULIB_defined_max_align_t 1 +# endif +# endif +#endif + +# endif /* _@GUARD_PREFIX@_STDDEF_H */ +# endif /* _@GUARD_PREFIX@_STDDEF_H */ +#endif /* __need_XXX */ diff --git a/3rdPartner/libiconv/srclib/stdint.in.h b/3rdPartner/libiconv/srclib/stdint.in.h new file mode 100644 index 0000000..eaa7874 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdint.in.h @@ -0,0 +1,740 @@ +/* Copyright (C) 2001-2002, 2004-2022 Free Software Foundation, Inc. + Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. + This file is part of gnulib. + + This file 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 file 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 program. If not, see . */ + +/* + * ISO C 99 for platforms that lack it. + * + */ + +#ifndef _@GUARD_PREFIX@_STDINT_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* When including a system file that in turn includes , + use the system , not our substitute. This avoids + problems with (for example) VMS, whose includes + . */ +#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + +/* On Android (Bionic libc), includes this file before + having defined 'time_t'. Therefore in this case avoid including + other system header files; just include the system's . + Ideally we should test __BIONIC__ here, but it is only defined after + has been included; hence test __ANDROID__ instead. */ +#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ +#else + +/* Get those types that are already defined in other system include + files, so that we can "#define int8_t signed char" below without + worrying about a later system include file containing a "typedef + signed char int8_t;" that will get messed up by our macro. Our + macros should all be consistent with the system versions, except + for the "fast" types and macros, which we recommend against using + in public interfaces due to compiler differences. */ + +#if @HAVE_STDINT_H@ +# if defined __sgi && ! defined __c99 + /* Bypass IRIX's if in C89 mode, since it merely annoys users + with "This header file is to be used only for c99 mode compilations" + diagnostics. */ +# define __STDINT_H__ +# endif + + /* Some pre-C++11 implementations need this. */ +# ifdef __cplusplus +# ifndef __STDC_CONSTANT_MACROS +# define __STDC_CONSTANT_MACROS 1 +# endif +# ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS 1 +# endif +# endif + + /* Other systems may have an incomplete or buggy . + Include it before , since any "#include " + in would reinclude us, skipping our contents because + _@GUARD_PREFIX@_STDINT_H is defined. + The include_next requires a split double-inclusion guard. */ +# @INCLUDE_NEXT@ @NEXT_STDINT_H@ +#endif + +#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H +#define _@GUARD_PREFIX@_STDINT_H + +/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, + LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ +#include + +/* Override WINT_MIN and WINT_MAX if gnulib's or overrides + wint_t. */ +#if @GNULIBHEADERS_OVERRIDE_WINT_T@ +# undef WINT_MIN +# undef WINT_MAX +# define WINT_MIN 0x0U +# define WINT_MAX 0xffffffffU +#endif + +#if ! @HAVE_C99_STDINT_H@ + +/* defines some of the stdint.h types as well, on glibc, + IRIX 6.5, and OpenBSD 3.8 (via ). + AIX 5.2 isn't needed and causes troubles. + Mac OS X 10.4.6 includes (which is us), but + relies on the system definitions, so include + after @NEXT_STDINT_H@. */ +# if @HAVE_SYS_TYPES_H@ && ! defined _AIX +# include +# endif + +# if @HAVE_INTTYPES_H@ + /* In OpenBSD 3.8, includes , which defines + int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. + also defines intptr_t and uintptr_t. */ +# include +# elif @HAVE_SYS_INTTYPES_H@ + /* Solaris 7 has the types except the *_fast*_t types, and + the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ +# include +# endif + +# if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ + /* Linux libc4 >= 4.6.7 and libc5 have a that defines + int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is + included by . */ +# include +# endif + +# undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H + +/* Minimum and maximum values for an integer type under the usual assumption. + Return an unspecified value if BITS == 0, adding a check to pacify + picky compilers. */ + +/* These are separate macros, because if you try to merge these macros into + a single one, HP-UX cc rejects the resulting expression in constant + expressions. */ +# define _STDINT_UNSIGNED_MIN(bits, zero) \ + (zero) +# define _STDINT_SIGNED_MIN(bits, zero) \ + (~ _STDINT_MAX (1, bits, zero)) + +# define _STDINT_MAX(signed, bits, zero) \ + (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) + +#if !GNULIB_defined_stdint_types + +/* 7.18.1.1. Exact-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. */ + +# undef int8_t +# undef uint8_t +typedef signed char gl_int8_t; +typedef unsigned char gl_uint8_t; +# define int8_t gl_int8_t +# define uint8_t gl_uint8_t + +# undef int16_t +# undef uint16_t +typedef short int gl_int16_t; +typedef unsigned short int gl_uint16_t; +# define int16_t gl_int16_t +# define uint16_t gl_uint16_t + +# undef int32_t +# undef uint32_t +typedef int gl_int32_t; +typedef unsigned int gl_uint32_t; +# define int32_t gl_int32_t +# define uint32_t gl_uint32_t + +/* If the system defines INT64_MAX, assume int64_t works. That way, + if the underlying platform defines int64_t to be a 64-bit long long + int, the code below won't mistakenly define it to be a 64-bit long + int, which would mess up C++ name mangling. We must use #ifdef + rather than #if, to avoid an error with HP-UX 10.20 cc. */ + +# ifdef INT64_MAX +# define GL_INT64_T +# else +/* Do not undefine int64_t if gnulib is not being used with 64-bit + types, since otherwise it breaks platforms like Tandem/NSK. */ +# if LONG_MAX >> 31 >> 31 == 1 +# undef int64_t +typedef long int gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# elif defined _MSC_VER +# undef int64_t +typedef __int64 gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# else +# undef int64_t +typedef long long int gl_int64_t; +# define int64_t gl_int64_t +# define GL_INT64_T +# endif +# endif + +# ifdef UINT64_MAX +# define GL_UINT64_T +# else +# if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# undef uint64_t +typedef unsigned long int gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# elif defined _MSC_VER +# undef uint64_t +typedef unsigned __int64 gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# else +# undef uint64_t +typedef unsigned long long int gl_uint64_t; +# define uint64_t gl_uint64_t +# define GL_UINT64_T +# endif +# endif + +/* Avoid collision with Solaris 2.5.1 etc. */ +# define _UINT8_T +# define _UINT32_T +# define _UINT64_T + + +/* 7.18.1.2. Minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types + are the same as the corresponding N_t types. */ + +# undef int_least8_t +# undef uint_least8_t +# undef int_least16_t +# undef uint_least16_t +# undef int_least32_t +# undef uint_least32_t +# undef int_least64_t +# undef uint_least64_t +# define int_least8_t int8_t +# define uint_least8_t uint8_t +# define int_least16_t int16_t +# define uint_least16_t uint16_t +# define int_least32_t int32_t +# define uint_least32_t uint32_t +# ifdef GL_INT64_T +# define int_least64_t int64_t +# endif +# ifdef GL_UINT64_T +# define uint_least64_t uint64_t +# endif + +/* 7.18.1.3. Fastest minimum-width integer types */ + +/* Note: Other substitutes may define these types differently. + It is not recommended to use these types in public header files. */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types + are taken from the same list of types. The following code normally + uses types consistent with glibc, as that lessens the chance of + incompatibility with older GNU hosts. */ + +# undef int_fast8_t +# undef uint_fast8_t +# undef int_fast16_t +# undef uint_fast16_t +# undef int_fast32_t +# undef uint_fast32_t +# undef int_fast64_t +# undef uint_fast64_t +typedef signed char gl_int_fast8_t; +typedef unsigned char gl_uint_fast8_t; + +# ifdef __sun +/* Define types compatible with SunOS 5.10, so that code compiled under + earlier SunOS versions works with code compiled under SunOS 5.10. */ +typedef int gl_int_fast32_t; +typedef unsigned int gl_uint_fast32_t; +# else +typedef long int gl_int_fast32_t; +typedef unsigned long int gl_uint_fast32_t; +# endif +typedef gl_int_fast32_t gl_int_fast16_t; +typedef gl_uint_fast32_t gl_uint_fast16_t; + +# define int_fast8_t gl_int_fast8_t +# define uint_fast8_t gl_uint_fast8_t +# define int_fast16_t gl_int_fast16_t +# define uint_fast16_t gl_uint_fast16_t +# define int_fast32_t gl_int_fast32_t +# define uint_fast32_t gl_uint_fast32_t +# ifdef GL_INT64_T +# define int_fast64_t int64_t +# endif +# ifdef GL_UINT64_T +# define uint_fast64_t uint64_t +# endif + +/* 7.18.1.4. Integer types capable of holding object pointers */ + +/* kLIBC's defines _INTPTR_T_DECLARED and needs its own + definitions of intptr_t and uintptr_t (which use int and unsigned) + to avoid clashes with declarations of system functions like sbrk. + Similarly, MinGW WSL-5.4.1 needs its own intptr_t and + uintptr_t to avoid conflicting declarations of system functions like + _findclose in . */ +# if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ + || defined __MINGW32__) +# undef intptr_t +# undef uintptr_t +# ifdef _WIN64 +typedef long long int gl_intptr_t; +typedef unsigned long long int gl_uintptr_t; +# else +typedef long int gl_intptr_t; +typedef unsigned long int gl_uintptr_t; +# endif +# define intptr_t gl_intptr_t +# define uintptr_t gl_uintptr_t +# endif + +/* 7.18.1.5. Greatest-width integer types */ + +/* Note: These types are compiler dependent. It may be unwise to use them in + public header files. */ + +/* If the system defines INTMAX_MAX, assume that intmax_t works, and + similarly for UINTMAX_MAX and uintmax_t. This avoids problems with + assuming one type where another is used by the system. */ + +# ifndef INTMAX_MAX +# undef INTMAX_C +# undef intmax_t +# if LONG_MAX >> 30 == 1 +typedef long long int gl_intmax_t; +# define intmax_t gl_intmax_t +# elif defined GL_INT64_T +# define intmax_t int64_t +# else +typedef long int gl_intmax_t; +# define intmax_t gl_intmax_t +# endif +# endif + +# ifndef UINTMAX_MAX +# undef UINTMAX_C +# undef uintmax_t +# if ULONG_MAX >> 31 == 1 +typedef unsigned long long int gl_uintmax_t; +# define uintmax_t gl_uintmax_t +# elif defined GL_UINT64_T +# define uintmax_t uint64_t +# else +typedef unsigned long int gl_uintmax_t; +# define uintmax_t gl_uintmax_t +# endif +# endif + +/* Verify that intmax_t and uintmax_t have the same size. Too much code + breaks if this is not the case. If this check fails, the reason is likely + to be found in the autoconf macros. */ +typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) + ? 1 : -1]; + +# define GNULIB_defined_stdint_types 1 +# endif /* !GNULIB_defined_stdint_types */ + +/* 7.18.2. Limits of specified-width integer types */ + +/* 7.18.2.1. Limits of exact-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. */ + +# undef INT8_MIN +# undef INT8_MAX +# undef UINT8_MAX +# define INT8_MIN (~ INT8_MAX) +# define INT8_MAX 127 +# define UINT8_MAX 255 + +# undef INT16_MIN +# undef INT16_MAX +# undef UINT16_MAX +# define INT16_MIN (~ INT16_MAX) +# define INT16_MAX 32767 +# define UINT16_MAX 65535 + +# undef INT32_MIN +# undef INT32_MAX +# undef UINT32_MAX +# define INT32_MIN (~ INT32_MAX) +# define INT32_MAX 2147483647 +# define UINT32_MAX 4294967295U + +# if defined GL_INT64_T && ! defined INT64_MAX +/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 + evaluates the latter incorrectly in preprocessor expressions. */ +# define INT64_MIN (- INTMAX_C (1) << 63) +# define INT64_MAX INTMAX_C (9223372036854775807) +# endif + +# if defined GL_UINT64_T && ! defined UINT64_MAX +# define UINT64_MAX UINTMAX_C (18446744073709551615) +# endif + +/* 7.18.2.2. Limits of minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types + are the same as the corresponding N_t types. */ + +# undef INT_LEAST8_MIN +# undef INT_LEAST8_MAX +# undef UINT_LEAST8_MAX +# define INT_LEAST8_MIN INT8_MIN +# define INT_LEAST8_MAX INT8_MAX +# define UINT_LEAST8_MAX UINT8_MAX + +# undef INT_LEAST16_MIN +# undef INT_LEAST16_MAX +# undef UINT_LEAST16_MAX +# define INT_LEAST16_MIN INT16_MIN +# define INT_LEAST16_MAX INT16_MAX +# define UINT_LEAST16_MAX UINT16_MAX + +# undef INT_LEAST32_MIN +# undef INT_LEAST32_MAX +# undef UINT_LEAST32_MAX +# define INT_LEAST32_MIN INT32_MIN +# define INT_LEAST32_MAX INT32_MAX +# define UINT_LEAST32_MAX UINT32_MAX + +# undef INT_LEAST64_MIN +# undef INT_LEAST64_MAX +# ifdef GL_INT64_T +# define INT_LEAST64_MIN INT64_MIN +# define INT_LEAST64_MAX INT64_MAX +# endif + +# undef UINT_LEAST64_MAX +# ifdef GL_UINT64_T +# define UINT_LEAST64_MAX UINT64_MAX +# endif + +/* 7.18.2.3. Limits of fastest minimum-width integer types */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types + are taken from the same list of types. */ + +# undef INT_FAST8_MIN +# undef INT_FAST8_MAX +# undef UINT_FAST8_MAX +# define INT_FAST8_MIN SCHAR_MIN +# define INT_FAST8_MAX SCHAR_MAX +# define UINT_FAST8_MAX UCHAR_MAX + +# undef INT_FAST16_MIN +# undef INT_FAST16_MAX +# undef UINT_FAST16_MAX +# define INT_FAST16_MIN INT_FAST32_MIN +# define INT_FAST16_MAX INT_FAST32_MAX +# define UINT_FAST16_MAX UINT_FAST32_MAX + +# undef INT_FAST32_MIN +# undef INT_FAST32_MAX +# undef UINT_FAST32_MAX +# ifdef __sun +# define INT_FAST32_MIN INT_MIN +# define INT_FAST32_MAX INT_MAX +# define UINT_FAST32_MAX UINT_MAX +# else +# define INT_FAST32_MIN LONG_MIN +# define INT_FAST32_MAX LONG_MAX +# define UINT_FAST32_MAX ULONG_MAX +# endif + +# undef INT_FAST64_MIN +# undef INT_FAST64_MAX +# ifdef GL_INT64_T +# define INT_FAST64_MIN INT64_MIN +# define INT_FAST64_MAX INT64_MAX +# endif + +# undef UINT_FAST64_MAX +# ifdef GL_UINT64_T +# define UINT_FAST64_MAX UINT64_MAX +# endif + +/* 7.18.2.4. Limits of integer types capable of holding object pointers */ + +# undef INTPTR_MIN +# undef INTPTR_MAX +# undef UINTPTR_MAX +# ifdef _WIN64 +# define INTPTR_MIN LLONG_MIN +# define INTPTR_MAX LLONG_MAX +# define UINTPTR_MAX ULLONG_MAX +# else +# define INTPTR_MIN LONG_MIN +# define INTPTR_MAX LONG_MAX +# define UINTPTR_MAX ULONG_MAX +# endif + +/* 7.18.2.5. Limits of greatest-width integer types */ + +# ifndef INTMAX_MAX +# undef INTMAX_MIN +# ifdef INT64_MAX +# define INTMAX_MIN INT64_MIN +# define INTMAX_MAX INT64_MAX +# else +# define INTMAX_MIN INT32_MIN +# define INTMAX_MAX INT32_MAX +# endif +# endif + +# ifndef UINTMAX_MAX +# ifdef UINT64_MAX +# define UINTMAX_MAX UINT64_MAX +# else +# define UINTMAX_MAX UINT32_MAX +# endif +# endif + +/* 7.18.3. Limits of other integer types */ + +/* ptrdiff_t limits */ +# undef PTRDIFF_MIN +# undef PTRDIFF_MAX +# if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) +# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) +# else +# define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) +# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) +# endif +# else +# define PTRDIFF_MIN \ + _STDINT_SIGNED_MIN (@BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +# define PTRDIFF_MAX \ + _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) +# endif + +/* sig_atomic_t limits */ +# undef SIG_ATOMIC_MIN +# undef SIG_ATOMIC_MAX +# if @HAVE_SIGNED_SIG_ATOMIC_T@ +# define SIG_ATOMIC_MIN \ + _STDINT_SIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) +# else +# define SIG_ATOMIC_MIN \ + _STDINT_UNSIGNED_MIN (@BITSIZEOF_SIG_ATOMIC_T@, 0@SIG_ATOMIC_T_SUFFIX@) +# endif +# define SIG_ATOMIC_MAX \ + _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ + 0@SIG_ATOMIC_T_SUFFIX@) + + +/* size_t limit */ +# undef SIZE_MAX +# if @APPLE_UNIVERSAL_BUILD@ +# ifdef _LP64 +# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) +# else +# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) +# endif +# else +# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) +# endif + +/* wchar_t limits */ +/* Get WCHAR_MIN, WCHAR_MAX. + This include is not on the top, above, because on OSF/1 4.0 we have a + sequence of nested includes + -> -> -> , and the latter includes + and assumes its types are already defined. */ +# if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) +# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +# include +# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H +# endif +# undef WCHAR_MIN +# undef WCHAR_MAX +# if @HAVE_SIGNED_WCHAR_T@ +# define WCHAR_MIN \ + _STDINT_SIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) +# else +# define WCHAR_MIN \ + _STDINT_UNSIGNED_MIN (@BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) +# endif +# define WCHAR_MAX \ + _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) + +/* wint_t limits */ +/* If gnulib's or overrides wint_t, @WINT_T_SUFFIX@ is not + accurate, therefore use the definitions from above. */ +# if !@GNULIBHEADERS_OVERRIDE_WINT_T@ +# undef WINT_MIN +# undef WINT_MAX +# if @HAVE_SIGNED_WINT_T@ +# define WINT_MIN \ + _STDINT_SIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) +# else +# define WINT_MIN \ + _STDINT_UNSIGNED_MIN (@BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) +# endif +# define WINT_MAX \ + _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) +# endif + +/* 7.18.4. Macros for integer constants */ + +/* 7.18.4.1. Macros for minimum-width integer constants */ +/* According to ISO C 99 Technical Corrigendum 1 */ + +/* Here we assume a standard architecture where the hardware integer + types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ + +# undef INT8_C +# undef UINT8_C +# define INT8_C(x) x +# define UINT8_C(x) x + +# undef INT16_C +# undef UINT16_C +# define INT16_C(x) x +# define UINT16_C(x) x + +# undef INT32_C +# undef UINT32_C +# define INT32_C(x) x +# define UINT32_C(x) x ## U + +# undef INT64_C +# undef UINT64_C +# if LONG_MAX >> 31 >> 31 == 1 +# define INT64_C(x) x##L +# elif defined _MSC_VER +# define INT64_C(x) x##i64 +# else +# define INT64_C(x) x##LL +# endif +# if ULONG_MAX >> 31 >> 31 >> 1 == 1 +# define UINT64_C(x) x##UL +# elif defined _MSC_VER +# define UINT64_C(x) x##ui64 +# else +# define UINT64_C(x) x##ULL +# endif + +/* 7.18.4.2. Macros for greatest-width integer constants */ + +# ifndef INTMAX_C +# if LONG_MAX >> 30 == 1 +# define INTMAX_C(x) x##LL +# elif defined GL_INT64_T +# define INTMAX_C(x) INT64_C(x) +# else +# define INTMAX_C(x) x##L +# endif +# endif + +# ifndef UINTMAX_C +# if ULONG_MAX >> 31 == 1 +# define UINTMAX_C(x) x##ULL +# elif defined GL_UINT64_T +# define UINTMAX_C(x) UINT64_C(x) +# else +# define UINTMAX_C(x) x##UL +# endif +# endif + +#endif /* !@HAVE_C99_STDINT_H@ */ + +/* Macros specified by ISO/IEC TS 18661-1:2014. */ + +#if (!defined UINTMAX_WIDTH \ + && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) +# ifdef INT8_MAX +# define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) +# endif +# ifdef UINT8_MAX +# define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) +# endif +# ifdef INT16_MAX +# define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) +# endif +# ifdef UINT16_MAX +# define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) +# endif +# ifdef INT32_MAX +# define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) +# endif +# ifdef UINT32_MAX +# define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) +# endif +# ifdef INT64_MAX +# define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) +# endif +# ifdef UINT64_MAX +# define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) +# endif +# define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) +# define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) +# define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) +# define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) +# define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) +# define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) +# define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) +# define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) +# define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) +# define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) +# define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) +# define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) +# define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) +# define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) +# define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) +# define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) +# define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) +# define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) +# define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) +# define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) +# define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) +# define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) +# define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) +# ifdef WINT_MAX +# define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) +# endif +# ifdef SIG_ATOMIC_MAX +# define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) +# endif +#endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ + +#endif /* _@GUARD_PREFIX@_STDINT_H */ +#endif /* !(defined __ANDROID__ && ...) */ +#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff --git a/3rdPartner/libiconv/srclib/stdio-read.c b/3rdPartner/libiconv/srclib/stdio-read.c new file mode 100644 index 0000000..85efa0d --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdio-read.c @@ -0,0 +1,168 @@ +/* POSIX compatible FILE stream read function. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2011. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +/* Replace these functions only if module 'nonblocking' is requested. */ +#if GNULIB_NONBLOCKING + +/* On native Windows platforms, when read() is called on a non-blocking pipe + with an empty buffer, ReadFile() fails with error GetLastError() = + ERROR_NO_DATA, and read() in consequence fails with error EINVAL. This + read() function is at the basis of the function which fills the buffer of + a FILE stream. */ + +# if defined _WIN32 && ! defined __CYGWIN__ + +# include +# include + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif + +/* Don't assume that UNICODE is not defined. */ +# undef GetNamedPipeHandleState +# define GetNamedPipeHandleState GetNamedPipeHandleStateA + +# define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \ + if (ferror (stream)) \ + return (EXPRESSION); \ + else \ + { \ + RETTYPE ret; \ + SetLastError (0); \ + ret = (EXPRESSION); \ + if (FAILED) \ + { \ + if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ + { \ + int fd = fileno (stream); \ + if (fd >= 0) \ + { \ + HANDLE h = (HANDLE) _get_osfhandle (fd); \ + if (GetFileType (h) == FILE_TYPE_PIPE) \ + { \ + /* h is a pipe or socket. */ \ + DWORD state; \ + if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ + NULL, NULL, 0) \ + && (state & PIPE_NOWAIT) != 0) \ + /* h is a pipe in non-blocking mode. \ + Change errno from EINVAL to EAGAIN. */ \ + errno = EAGAIN; \ + } \ + } \ + } \ + } \ + return ret; \ + } + +/* Enable this function definition only if gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_SCANF +int +scanf (const char *format, ...) +{ + int retval; + va_list args; + + va_start (args, format); + retval = vfscanf (stdin, format, args); + va_end (args); + + return retval; +} +# endif + +/* Enable this function definition only if gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_FSCANF +int +fscanf (FILE *stream, const char *format, ...) +{ + int retval; + va_list args; + + va_start (args, format); + retval = vfscanf (stream, format, args); + va_end (args); + + return retval; +} +# endif + +/* Enable this function definition only if gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_VSCANF +int +vscanf (const char *format, va_list args) +{ + return vfscanf (stdin, format, args); +} +# endif + +/* Enable this function definition only if gnulib's has prepared it. + Otherwise we get a function definition conflict with mingw64's . */ +# if GNULIB_VFSCANF +int +vfscanf (FILE *stream, const char *format, va_list args) +#undef vfscanf +{ + CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF) +} +# endif + +int +getchar (void) +{ + return fgetc (stdin); +} + +int +fgetc (FILE *stream) +#undef fgetc +{ + CALL_WITH_ERRNO_FIX (int, fgetc (stream), ret == EOF) +} + +char * +fgets (char *s, int n, FILE *stream) +#undef fgets +{ + CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL) +} + +/* We intentionally don't bother to fix gets. */ + +size_t +fread (void *ptr, size_t s, size_t n, FILE *stream) +#undef fread +{ + CALL_WITH_ERRNO_FIX (size_t, fread (ptr, s, n, stream), ret < n) +} + +# endif +#endif diff --git a/3rdPartner/libiconv/srclib/stdio-write.c b/3rdPartner/libiconv/srclib/stdio-write.c new file mode 100644 index 0000000..82facf5 --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdio-write.c @@ -0,0 +1,206 @@ +/* POSIX compatible FILE stream write function. + Copyright (C) 2008-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2008. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +/* Replace these functions only if module 'nonblocking' or module 'sigpipe' is + requested. */ +#if GNULIB_NONBLOCKING || GNULIB_SIGPIPE + +/* On native Windows platforms, SIGPIPE does not exist. When write() is + called on a pipe with no readers, WriteFile() fails with error + GetLastError() = ERROR_NO_DATA, and write() in consequence fails with + error EINVAL. This write() function is at the basis of the function + which flushes the buffer of a FILE stream. */ + +# if defined _WIN32 && ! defined __CYGWIN__ + +# include +# include +# include + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include + +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include +# endif + +/* Don't assume that UNICODE is not defined. */ +# undef GetNamedPipeHandleState +# define GetNamedPipeHandleState GetNamedPipeHandleStateA + +# if GNULIB_NONBLOCKING +# define CLEAR_ERRNO \ + errno = 0; +# define HANDLE_ENOSPC \ + if (errno == ENOSPC && ferror (stream)) \ + { \ + int fd = fileno (stream); \ + if (fd >= 0) \ + { \ + HANDLE h = (HANDLE) _get_osfhandle (fd); \ + if (GetFileType (h) == FILE_TYPE_PIPE) \ + { \ + /* h is a pipe or socket. */ \ + DWORD state; \ + if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ + NULL, NULL, 0) \ + && (state & PIPE_NOWAIT) != 0) \ + /* h is a pipe in non-blocking mode. \ + Change errno from ENOSPC to EAGAIN. */ \ + errno = EAGAIN; \ + } \ + } \ + } \ + else +# else +# define CLEAR_ERRNO +# define HANDLE_ENOSPC +# endif + +# if GNULIB_SIGPIPE +# define CLEAR_LastError \ + SetLastError (0); +# define HANDLE_ERROR_NO_DATA \ + if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ + { \ + int fd = fileno (stream); \ + if (fd >= 0 \ + && GetFileType ((HANDLE) _get_osfhandle (fd)) \ + == FILE_TYPE_PIPE) \ + { \ + /* Try to raise signal SIGPIPE. */ \ + raise (SIGPIPE); \ + /* If it is currently blocked or ignored, change errno from \ + EINVAL to EPIPE. */ \ + errno = EPIPE; \ + } \ + } \ + else +# else +# define CLEAR_LastError +# define HANDLE_ERROR_NO_DATA +# endif + +# define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ + if (ferror (stream)) \ + return (EXPRESSION); \ + else \ + { \ + RETTYPE ret; \ + CLEAR_ERRNO \ + CLEAR_LastError \ + ret = (EXPRESSION); \ + if (FAILED) \ + { \ + HANDLE_ENOSPC \ + HANDLE_ERROR_NO_DATA \ + ; \ + } \ + return ret; \ + } + +# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ +int +printf (const char *format, ...) +{ + int retval; + va_list args; + + va_start (args, format); + retval = vfprintf (stdout, format, args); + va_end (args); + + return retval; +} +# endif + +# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ +int +fprintf (FILE *stream, const char *format, ...) +{ + int retval; + va_list args; + + va_start (args, format); + retval = vfprintf (stream, format, args); + va_end (args); + + return retval; +} +# endif + +# if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ +int +vprintf (const char *format, va_list args) +{ + return vfprintf (stdout, format, args); +} +# endif + +# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ +int +vfprintf (FILE *stream, const char *format, va_list args) +#undef vfprintf +{ + CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF) +} +# endif + +int +putchar (int c) +{ + return fputc (c, stdout); +} + +int +fputc (int c, FILE *stream) +#undef fputc +{ + CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF) +} + +int +fputs (const char *string, FILE *stream) +#undef fputs +{ + CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF) +} + +int +puts (const char *string) +#undef puts +{ + FILE *stream = stdout; + CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF) +} + +size_t +fwrite (const void *ptr, size_t s, size_t n, FILE *stream) +#undef fwrite +{ + CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n) +} + +# endif +#endif diff --git a/3rdPartner/libiconv/srclib/stdio.in.h b/3rdPartner/libiconv/srclib/stdio.in.h new file mode 100644 index 0000000..7b36dac --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdio.in.h @@ -0,0 +1,1711 @@ +/* A GNU-like . + + Copyright (C) 2004, 2007-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H +/* Special invocation convention: + - Inside glibc header files. + - On OSF/1 5.1 we have a sequence of nested includes + -> -> -> -> + -> -> -> . + In this situation, the functions are not yet declared, therefore we cannot + provide the C++ aliases. */ + +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_STDIO_H + +#define _GL_ALREADY_INCLUDING_STDIO_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#undef _GL_ALREADY_INCLUDING_STDIO_H + +#ifndef _@GUARD_PREFIX@_STDIO_H +#define _@GUARD_PREFIX@_STDIO_H + +/* Get va_list. Needed on many systems, including glibc 2.8. */ +#include + +#include + +/* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 + and eglibc 2.11.2. + May also define off_t to a 64-bit type on native Windows. */ +#include + +/* Solaris 10 and NetBSD 7.0 declare renameat in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ + && ! defined __GLIBC__ +# include +#endif + +/* Android 4.3 declares renameat in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ + && ! defined __GLIBC__ +# include +#endif + +/* MSVC declares 'perror' in , not in . We must include + it before we #define perror rpl_perror. */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ + && ! defined __GLIBC__ +# include +#endif + +/* MSVC declares 'remove' in , not in . We must include + it before we #define remove rpl_remove. */ +/* MSVC declares 'rename' in , not in . We must include + it before we #define rename rpl_rename. */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ + && ! defined __GLIBC__ +# include +#endif + + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. */ +#ifndef _GL_ATTRIBUTE_DEALLOC +# if __GNUC__ >= 11 +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +# else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +# endif +#endif + +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +#ifndef _GL_ATTRIBUTE_FORMAT +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +# else +# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ +# endif +#endif + +/* An __attribute__ __format__ specifier for a function that takes a format + string and arguments, where the format string directives are the ones + standardized by ISO C99 and POSIX. + _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ +/* __gnu_printf__ is supported in GCC >= 4.4. */ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) +# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ +#else +# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ +#endif + +/* An __attribute__ __format__ specifier for a function that takes a format + string and arguments, where the format string directives are the ones of the + system printf(), rather than the ones standardized by ISO C99 and POSIX. + _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ +/* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to + the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates + whether this change is effective. On older mingw, it is not. */ +#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU +# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD +#else +# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ +#endif + +/* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD + indicates to GCC that the function takes a format string and arguments, + where the format string directives are the ones standardized by ISO C99 + and POSIX. */ +#define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) + +/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, + except that it indicates to GCC that the supported format string directives + are the ones of the system printf(), rather than the ones standardized by + ISO C99 and POSIX. */ +#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) + +/* _GL_ATTRIBUTE_FORMAT_SCANF + indicates to GCC that the function takes a format string and arguments, + where the format string directives are the ones standardized by ISO C99 + and POSIX. */ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) +# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) +#else +# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) +#endif + +/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, + except that it indicates to GCC that the supported format string directives + are the ones of the system scanf(), rather than the ones standardized by + ISO C99 and POSIX. */ +#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ + _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Macros for stringification. */ +#define _GL_STDIO_STRINGIZE(token) #token +#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) + +/* When also using extern inline, suppress the use of static inline in + standard headers of problematic Apple configurations, as Libc at + least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., + . + Perhaps Apple will fix this some day. */ +#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ + && defined __GNUC__ && defined __STDC__) +# undef putc_unlocked +#endif + +#if @GNULIB_DPRINTF@ +# if @REPLACE_DPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dprintf rpl_dprintf +# endif +_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); +# else +# if !@HAVE_DPRINTF@ +_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); +# endif +_GL_CXXALIASWARN (dprintf); +#elif defined GNULIB_POSIXCHECK +# undef dprintf +# if HAVE_RAW_DECL_DPRINTF +_GL_WARN_ON_USE (dprintf, "dprintf is unportable - " + "use gnulib module dprintf for portability"); +# endif +#endif + +#if @GNULIB_FCLOSE@ +/* Close STREAM and its underlying file descriptor. */ +# if @REPLACE_FCLOSE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fclose rpl_fclose +# endif +_GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); +# else +_GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fclose); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fclose +/* Assume fclose is always declared. */ +_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " + "use gnulib module fclose for portable POSIX compliance"); +#endif + +#if @GNULIB_MDA_FCLOSEALL@ +/* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is + not required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have + it. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fcloseall +# define fcloseall _fcloseall +# endif +_GL_CXXALIAS_MDA (fcloseall, int, (void)); +# else +# if @HAVE_DECL_FCLOSEALL@ +# if defined __FreeBSD__ || defined __DragonFly__ +_GL_CXXALIAS_SYS (fcloseall, void, (void)); +# else +_GL_CXXALIAS_SYS (fcloseall, int, (void)); +# endif +# endif +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCLOSEALL@ +_GL_CXXALIASWARN (fcloseall); +# endif +#endif + +#if @GNULIB_FDOPEN@ +# if @REPLACE_FDOPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fdopen +# define fdopen rpl_fdopen +# endif +_GL_FUNCDECL_RPL (fdopen, FILE *, + (int fd, const char *mode) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fdopen +# define fdopen _fdopen +# endif +_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (fdopen, FILE *, + (int fd, const char *mode) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); +# endif +_GL_CXXALIASWARN (fdopen); +#else +# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fdopen +/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (fdopen, FILE *, + (int fd, const char *mode) + _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +# if defined GNULIB_POSIXCHECK +# undef fdopen +/* Assume fdopen is always declared. */ +_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " + "use gnulib module fdopen for portability"); +# elif @GNULIB_MDA_FDOPEN@ +/* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::fdopen always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fdopen +# define fdopen _fdopen +# endif +_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); +# else +_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); +# endif +_GL_CXXALIASWARN (fdopen); +# endif +#endif + +#if @GNULIB_FFLUSH@ +/* Flush all pending data on STREAM according to POSIX rules. Both + output and seekable input streams are supported. + Note! LOSS OF DATA can occur if fflush is applied on an input stream + that is _not_seekable_ or on an update stream that is _not_seekable_ + and in which the most recent operation was input. Seekability can + be tested with lseek(fileno(fp),0,SEEK_CUR). */ +# if @REPLACE_FFLUSH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fflush rpl_fflush +# endif +_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); +_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); +# else +_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fflush); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fflush +/* Assume fflush is always declared. */ +_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " + "use gnulib module fflush for portable POSIX compliance"); +#endif + +#if @GNULIB_FGETC@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fgetc +# define fgetc rpl_fgetc +# endif +_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); +# else +_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fgetc); +# endif +#endif + +#if @GNULIB_FGETS@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fgets +# define fgets rpl_fgets +# endif +_GL_FUNCDECL_RPL (fgets, char *, + (char *restrict s, int n, FILE *restrict stream) + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (fgets, char *, + (char *restrict s, int n, FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (fgets, char *, + (char *restrict s, int n, FILE *restrict stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fgets); +# endif +#endif + +#if @GNULIB_MDA_FILENO@ +/* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::fileno always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fileno +# define fileno _fileno +# endif +_GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); +# endif +_GL_CXXALIASWARN (fileno); +#endif + +#if @GNULIB_FOPEN@ +# if (@GNULIB_FOPEN@ && @REPLACE_FOPEN@) \ + || (@GNULIB_FOPEN_GNU@ && @REPLACE_FOPEN_FOR_FOPEN_GNU@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fopen +# define fopen rpl_fopen +# endif +_GL_FUNCDECL_RPL (fopen, FILE *, + (const char *restrict filename, const char *restrict mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +_GL_CXXALIAS_RPL (fopen, FILE *, + (const char *restrict filename, const char *restrict mode)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (fopen, FILE *, + (const char *restrict filename, const char *restrict mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +_GL_CXXALIAS_SYS (fopen, FILE *, + (const char *restrict filename, const char *restrict mode)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fopen); +# endif +#else +# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined fopen +/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (fopen, FILE *, + (const char *restrict filename, const char *restrict mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +# if defined GNULIB_POSIXCHECK +# undef fopen +/* Assume fopen is always declared. */ +_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " + "use gnulib module fopen for portability"); +# endif +#endif + +#if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ +# if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ + || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fprintf rpl_fprintf +# endif +# define GNULIB_overrides_fprintf 1 +# if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ +_GL_FUNCDECL_RPL (fprintf, int, + (FILE *restrict fp, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +# else +_GL_FUNCDECL_RPL (fprintf, int, + (FILE *restrict fp, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_RPL (fprintf, int, + (FILE *restrict fp, const char *restrict format, ...)); +# else +_GL_CXXALIAS_SYS (fprintf, int, + (FILE *restrict fp, const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fprintf); +# endif +#endif +#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_fprintf +# undef fprintf +# endif +/* Assume fprintf is always declared. */ +_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " + "use gnulib module fprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_FPURGE@ +/* Discard all pending buffered I/O data on STREAM. + STREAM must not be wide-character oriented. + When discarding pending output, the file position is set back to where it + was before the write calls. When discarding pending input, the file + position is advanced to match the end of the previously read input. + Return 0 if successful. Upon error, return -1 and set errno. */ +# if @REPLACE_FPURGE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fpurge rpl_fpurge +# endif +_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); +# else +# if !@HAVE_DECL_FPURGE@ +_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); +# endif +_GL_CXXALIASWARN (fpurge); +#elif defined GNULIB_POSIXCHECK +# undef fpurge +# if HAVE_RAW_DECL_FPURGE +_GL_WARN_ON_USE (fpurge, "fpurge is not always present - " + "use gnulib module fpurge for portability"); +# endif +#endif + +#if @GNULIB_FPUTC@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fputc +# define fputc rpl_fputc +# endif +_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); +# else +_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fputc); +# endif +#endif + +#if @GNULIB_FPUTS@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fputs +# define fputs rpl_fputs +# endif +_GL_FUNCDECL_RPL (fputs, int, + (const char *restrict string, FILE *restrict stream) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fputs, int, + (const char *restrict string, FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (fputs, int, + (const char *restrict string, FILE *restrict stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fputs); +# endif +#endif + +#if @GNULIB_FREAD@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fread +# define fread rpl_fread +# endif +_GL_FUNCDECL_RPL (fread, size_t, + (void *restrict ptr, size_t s, size_t n, + FILE *restrict stream) + _GL_ARG_NONNULL ((4))); +_GL_CXXALIAS_RPL (fread, size_t, + (void *restrict ptr, size_t s, size_t n, + FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (fread, size_t, + (void *restrict ptr, size_t s, size_t n, + FILE *restrict stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fread); +# endif +#endif + +#if @GNULIB_FREOPEN@ +# if @REPLACE_FREOPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef freopen +# define freopen rpl_freopen +# endif +_GL_FUNCDECL_RPL (freopen, FILE *, + (const char *restrict filename, const char *restrict mode, + FILE *restrict stream) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (freopen, FILE *, + (const char *restrict filename, const char *restrict mode, + FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (freopen, FILE *, + (const char *restrict filename, const char *restrict mode, + FILE *restrict stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (freopen); +# endif +#elif defined GNULIB_POSIXCHECK +# undef freopen +/* Assume freopen is always declared. */ +_GL_WARN_ON_USE (freopen, + "freopen on native Windows platforms is not POSIX compliant - " + "use gnulib module freopen for portability"); +#endif + +#if @GNULIB_FSCANF@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fscanf +# define fscanf rpl_fscanf +# endif +_GL_FUNCDECL_RPL (fscanf, int, + (FILE *restrict stream, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fscanf, int, + (FILE *restrict stream, const char *restrict format, ...)); +# else +_GL_CXXALIAS_SYS (fscanf, int, + (FILE *restrict stream, const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fscanf); +# endif +#endif + + +/* Set up the following warnings, based on which modules are in use. + GNU Coding Standards discourage the use of fseek, since it imposes + an arbitrary limitation on some 32-bit hosts. Remember that the + fseek module depends on the fseeko module, so we only have three + cases to consider: + + 1. The developer is not using either module. Issue a warning under + GNULIB_POSIXCHECK for both functions, to remind them that both + functions have bugs on some systems. _GL_NO_LARGE_FILES has no + impact on this warning. + + 2. The developer is using both modules. They may be unaware of the + arbitrary limitations of fseek, so issue a warning under + GNULIB_POSIXCHECK. On the other hand, they may be using both + modules intentionally, so the developer can define + _GL_NO_LARGE_FILES in the compilation units where the use of fseek + is safe, to silence the warning. + + 3. The developer is using the fseeko module, but not fseek. Gnulib + guarantees that fseek will still work around platform bugs in that + case, but we presume that the developer is aware of the pitfalls of + fseek and was trying to avoid it, so issue a warning even when + GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be + defined to silence the warning in particular compilation units. + In C++ compilations with GNULIB_NAMESPACE, in order to avoid that + fseek gets defined as a macro, it is recommended that the developer + uses the fseek module, even if he is not calling the fseek function. + + Most gnulib clients that perform stream operations should fall into + category 3. */ + +#if @GNULIB_FSEEK@ +# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES +# define _GL_FSEEK_WARN /* Category 2, above. */ +# undef fseek +# endif +# if @REPLACE_FSEEK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fseek +# define fseek rpl_fseek +# endif +_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); +# else +_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fseek); +# endif +#endif + +#if @GNULIB_FSEEKO@ +# if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES +# define _GL_FSEEK_WARN /* Category 3, above. */ +# undef fseek +# endif +# if @REPLACE_FSEEKO@ +/* Provide an fseeko function that is aware of a preceding fflush(), and which + detects pipes. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fseeko +# define fseeko rpl_fseeko +# endif +_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); +# else +# if ! @HAVE_DECL_FSEEKO@ +_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); +# endif +_GL_CXXALIASWARN (fseeko); +#elif defined GNULIB_POSIXCHECK +# define _GL_FSEEK_WARN /* Category 1, above. */ +# undef fseek +# undef fseeko +# if HAVE_RAW_DECL_FSEEKO +_GL_WARN_ON_USE (fseeko, "fseeko is unportable - " + "use gnulib module fseeko for portability"); +# endif +#endif + +#ifdef _GL_FSEEK_WARN +# undef _GL_FSEEK_WARN +/* Here, either fseek is undefined (but C89 guarantees that it is + declared), or it is defined as rpl_fseek (declared above). */ +_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " + "on 32-bit platforms - " + "use fseeko function for handling of large files"); +#endif + + +/* ftell, ftello. See the comments on fseek/fseeko. */ + +#if @GNULIB_FTELL@ +# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES +# define _GL_FTELL_WARN /* Category 2, above. */ +# undef ftell +# endif +# if @REPLACE_FTELL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftell +# define ftell rpl_ftell +# endif +_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); +# else +_GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (ftell); +# endif +#endif + +#if @GNULIB_FTELLO@ +# if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES +# define _GL_FTELL_WARN /* Category 3, above. */ +# undef ftell +# endif +# if @REPLACE_FTELLO@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftello +# define ftello rpl_ftello +# endif +_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); +# else +# if ! @HAVE_DECL_FTELLO@ +_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); +# endif +_GL_CXXALIASWARN (ftello); +#elif defined GNULIB_POSIXCHECK +# define _GL_FTELL_WARN /* Category 1, above. */ +# undef ftell +# undef ftello +# if HAVE_RAW_DECL_FTELLO +_GL_WARN_ON_USE (ftello, "ftello is unportable - " + "use gnulib module ftello for portability"); +# endif +#endif + +#ifdef _GL_FTELL_WARN +# undef _GL_FTELL_WARN +/* Here, either ftell is undefined (but C89 guarantees that it is + declared), or it is defined as rpl_ftell (declared above). */ +_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " + "on 32-bit platforms - " + "use ftello function for handling of large files"); +#endif + + +#if @GNULIB_FWRITE@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fwrite +# define fwrite rpl_fwrite +# endif +_GL_FUNCDECL_RPL (fwrite, size_t, + (const void *restrict ptr, size_t s, size_t n, + FILE *restrict stream) + _GL_ARG_NONNULL ((1, 4))); +_GL_CXXALIAS_RPL (fwrite, size_t, + (const void *restrict ptr, size_t s, size_t n, + FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (fwrite, size_t, + (const void *restrict ptr, size_t s, size_t n, + FILE *restrict stream)); + +/* Work around bug 11959 when fortifying glibc 2.4 through 2.15 + , + which sometimes causes an unwanted diagnostic for fwrite calls. + This affects only function declaration attributes under certain + versions of gcc and clang, and is not needed for C++. */ +# if (0 < __USE_FORTIFY_LEVEL \ + && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ + && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ + && !defined __cplusplus) +# undef fwrite +# undef fwrite_unlocked +extern size_t __REDIRECT (rpl_fwrite, + (const void *__restrict, size_t, size_t, + FILE *__restrict), + fwrite); +extern size_t __REDIRECT (rpl_fwrite_unlocked, + (const void *__restrict, size_t, size_t, + FILE *__restrict), + fwrite_unlocked); +# define fwrite rpl_fwrite +# define fwrite_unlocked rpl_fwrite_unlocked +# endif +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fwrite); +# endif +#endif + +#if @GNULIB_GETC@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getc +# define getc rpl_fgetc +# endif +_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); +# else +_GL_CXXALIAS_SYS (getc, int, (FILE *stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (getc); +# endif +#endif + +#if @GNULIB_GETCHAR@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getchar +# define getchar rpl_getchar +# endif +_GL_FUNCDECL_RPL (getchar, int, (void)); +_GL_CXXALIAS_RPL (getchar, int, (void)); +# else +_GL_CXXALIAS_SYS (getchar, int, (void)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (getchar); +# endif +#endif + +#if @GNULIB_GETDELIM@ +/* Read input, up to (and including) the next occurrence of DELIMITER, from + STREAM, store it in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +# if @REPLACE_GETDELIM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getdelim +# define getdelim rpl_getdelim +# endif +_GL_FUNCDECL_RPL (getdelim, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + int delimiter, + FILE *restrict stream) + _GL_ARG_NONNULL ((1, 2, 4))); +_GL_CXXALIAS_RPL (getdelim, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + int delimiter, + FILE *restrict stream)); +# else +# if !@HAVE_DECL_GETDELIM@ +_GL_FUNCDECL_SYS (getdelim, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + int delimiter, + FILE *restrict stream) + _GL_ARG_NONNULL ((1, 2, 4))); +# endif +_GL_CXXALIAS_SYS (getdelim, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + int delimiter, + FILE *restrict stream)); +# endif +_GL_CXXALIASWARN (getdelim); +#elif defined GNULIB_POSIXCHECK +# undef getdelim +# if HAVE_RAW_DECL_GETDELIM +_GL_WARN_ON_USE (getdelim, "getdelim is unportable - " + "use gnulib module getdelim for portability"); +# endif +#endif + +#if @GNULIB_GETLINE@ +/* Read a line, up to (and including) the next newline, from STREAM, store it + in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +# if @REPLACE_GETLINE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getline +# define getline rpl_getline +# endif +_GL_FUNCDECL_RPL (getline, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + FILE *restrict stream) + _GL_ARG_NONNULL ((1, 2, 3))); +_GL_CXXALIAS_RPL (getline, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + FILE *restrict stream)); +# else +# if !@HAVE_DECL_GETLINE@ +_GL_FUNCDECL_SYS (getline, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + FILE *restrict stream) + _GL_ARG_NONNULL ((1, 2, 3))); +# endif +_GL_CXXALIAS_SYS (getline, ssize_t, + (char **restrict lineptr, size_t *restrict linesize, + FILE *restrict stream)); +# endif +# if @HAVE_DECL_GETLINE@ +_GL_CXXALIASWARN (getline); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getline +# if HAVE_RAW_DECL_GETLINE +_GL_WARN_ON_USE (getline, "getline is unportable - " + "use gnulib module getline for portability"); +# endif +#endif + +/* It is very rare that the developer ever has full control of stdin, + so any use of gets warrants an unconditional warning; besides, C11 + removed it. */ +#undef gets +#if HAVE_RAW_DECL_GETS && !defined __cplusplus +_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +#endif + +#if @GNULIB_MDA_GETW@ +/* On native Windows, map 'getw' to '_getw', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::getw always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getw +# define getw _getw +# endif +_GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); +# endif +_GL_CXXALIASWARN (getw); +#endif + +#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ +struct obstack; +/* Grow an obstack with formatted output. Return the number of + bytes added to OBS. No trailing nul byte is added, and the + object should be closed with obstack_finish before use. Upon + memory allocation error, call obstack_alloc_failed_handler. Upon + other error, return -1. */ +# if @REPLACE_OBSTACK_PRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define obstack_printf rpl_obstack_printf +# endif +_GL_FUNCDECL_RPL (obstack_printf, int, + (struct obstack *obs, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (obstack_printf, int, + (struct obstack *obs, const char *format, ...)); +# else +# if !@HAVE_DECL_OBSTACK_PRINTF@ +_GL_FUNCDECL_SYS (obstack_printf, int, + (struct obstack *obs, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (obstack_printf, int, + (struct obstack *obs, const char *format, ...)); +# endif +_GL_CXXALIASWARN (obstack_printf); +# if @REPLACE_OBSTACK_PRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define obstack_vprintf rpl_obstack_vprintf +# endif +_GL_FUNCDECL_RPL (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args)); +# else +# if !@HAVE_DECL_OBSTACK_PRINTF@ +_GL_FUNCDECL_SYS (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (obstack_vprintf); +#endif + +#if @GNULIB_PCLOSE@ +# if !@HAVE_PCLOSE@ +_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); +_GL_CXXALIASWARN (pclose); +#elif defined GNULIB_POSIXCHECK +# undef pclose +# if HAVE_RAW_DECL_PCLOSE +_GL_WARN_ON_USE (pclose, "pclose is unportable - " + "use gnulib module pclose for more portability"); +# endif +#endif + +#if @GNULIB_PERROR@ +/* Print a message to standard error, describing the value of ERRNO, + (if STRING is not NULL and not empty) prefixed with STRING and ": ", + and terminated with a newline. */ +# if @REPLACE_PERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define perror rpl_perror +# endif +_GL_FUNCDECL_RPL (perror, void, (const char *string)); +_GL_CXXALIAS_RPL (perror, void, (const char *string)); +# else +_GL_CXXALIAS_SYS (perror, void, (const char *string)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (perror); +# endif +#elif defined GNULIB_POSIXCHECK +# undef perror +/* Assume perror is always declared. */ +_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " + "use gnulib module perror for portability"); +#endif + +#if @GNULIB_POPEN@ +# if @REPLACE_POPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef popen +# define popen rpl_popen +# endif +_GL_FUNCDECL_RPL (popen, FILE *, + (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); +_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); +# else +# if !@HAVE_POPEN@ || __GNUC__ >= 11 +_GL_FUNCDECL_SYS (popen, FILE *, + (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); +# endif +_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); +# endif +_GL_CXXALIASWARN (popen); +#else +# if @GNULIB_PCLOSE@ && __GNUC__ >= 11 && !defined popen +/* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ +_GL_FUNCDECL_SYS (popen, FILE *, + (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); +# endif +# if defined GNULIB_POSIXCHECK +# undef popen +# if HAVE_RAW_DECL_POPEN +_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " + "use gnulib module popen or pipe for more portability"); +# endif +# endif +#endif + +#if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ +# if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ + || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) +# if defined __GNUC__ || defined __clang__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +/* Don't break __attribute__((format(printf,M,N))). */ +# define printf __printf__ +# endif +# if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ +_GL_FUNCDECL_RPL_1 (__printf__, int, + (const char *restrict format, ...) + __asm__ (@ASM_SYMBOL_PREFIX@ + _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) + _GL_ARG_NONNULL ((1))); +# else +_GL_FUNCDECL_RPL_1 (__printf__, int, + (const char *restrict format, ...) + __asm__ (@ASM_SYMBOL_PREFIX@ + _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); +# else +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define printf rpl_printf +# endif +_GL_FUNCDECL_RPL (printf, int, + (const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); +# endif +# define GNULIB_overrides_printf 1 +# else +_GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (printf); +# endif +#endif +#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_printf +# undef printf +# endif +/* Assume printf is always declared. */ +_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " + "use gnulib module printf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_PUTC@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putc +# define putc rpl_fputc +# endif +_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); +# else +_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (putc); +# endif +#endif + +#if @GNULIB_PUTCHAR@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putchar +# define putchar rpl_putchar +# endif +_GL_FUNCDECL_RPL (putchar, int, (int c)); +_GL_CXXALIAS_RPL (putchar, int, (int c)); +# else +_GL_CXXALIAS_SYS (putchar, int, (int c)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (putchar); +# endif +#endif + +#if @GNULIB_PUTS@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef puts +# define puts rpl_puts +# endif +_GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (puts, int, (const char *string)); +# else +_GL_CXXALIAS_SYS (puts, int, (const char *string)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (puts); +# endif +#endif + +#if @GNULIB_MDA_PUTW@ +/* On native Windows, map 'putw' to '_putw', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::putw always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putw +# define putw _putw +# endif +_GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); +# else +_GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); +# endif +_GL_CXXALIASWARN (putw); +#endif + +#if @GNULIB_REMOVE@ +# if @REPLACE_REMOVE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef remove +# define remove rpl_remove +# endif +_GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (remove, int, (const char *name)); +# else +_GL_CXXALIAS_SYS (remove, int, (const char *name)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (remove); +# endif +#elif defined GNULIB_POSIXCHECK +# undef remove +/* Assume remove is always declared. */ +_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " + "use gnulib module remove for more portability"); +#endif + +#if @GNULIB_RENAME@ +# if @REPLACE_RENAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef rename +# define rename rpl_rename +# endif +_GL_FUNCDECL_RPL (rename, int, + (const char *old_filename, const char *new_filename) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (rename, int, + (const char *old_filename, const char *new_filename)); +# else +_GL_CXXALIAS_SYS (rename, int, + (const char *old_filename, const char *new_filename)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (rename); +# endif +#elif defined GNULIB_POSIXCHECK +# undef rename +/* Assume rename is always declared. */ +_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " + "use gnulib module rename for more portability"); +#endif + +#if @GNULIB_RENAMEAT@ +# if @REPLACE_RENAMEAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef renameat +# define renameat rpl_renameat +# endif +_GL_FUNCDECL_RPL (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2)); +# else +# if !@HAVE_RENAMEAT@ +_GL_FUNCDECL_SYS (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2) + _GL_ARG_NONNULL ((2, 4))); +# endif +_GL_CXXALIAS_SYS (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2)); +# endif +_GL_CXXALIASWARN (renameat); +#elif defined GNULIB_POSIXCHECK +# undef renameat +# if HAVE_RAW_DECL_RENAMEAT +_GL_WARN_ON_USE (renameat, "renameat is not portable - " + "use gnulib module renameat for portability"); +# endif +#endif + +#if @GNULIB_SCANF@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if defined __GNUC__ || defined __clang__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef scanf +/* Don't break __attribute__((format(scanf,M,N))). */ +# define scanf __scanf__ +# endif +_GL_FUNCDECL_RPL_1 (__scanf__, int, + (const char *restrict format, ...) + __asm__ (@ASM_SYMBOL_PREFIX@ + _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); +# else +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef scanf +# define scanf rpl_scanf +# endif +_GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); +# endif +# else +_GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (scanf); +# endif +#endif + +#if @GNULIB_SNPRINTF@ +# if @REPLACE_SNPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define snprintf rpl_snprintf +# endif +# define GNULIB_overrides_snprintf 1 +_GL_FUNCDECL_RPL (snprintf, int, + (char *restrict str, size_t size, + const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) + _GL_ARG_NONNULL ((3))); +_GL_CXXALIAS_RPL (snprintf, int, + (char *restrict str, size_t size, + const char *restrict format, ...)); +# else +# if !@HAVE_DECL_SNPRINTF@ +_GL_FUNCDECL_SYS (snprintf, int, + (char *restrict str, size_t size, + const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) + _GL_ARG_NONNULL ((3))); +# endif +_GL_CXXALIAS_SYS (snprintf, int, + (char *restrict str, size_t size, + const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (snprintf); +# endif +#elif defined GNULIB_POSIXCHECK +# undef snprintf +# if HAVE_RAW_DECL_SNPRINTF +_GL_WARN_ON_USE (snprintf, "snprintf is unportable - " + "use gnulib module snprintf for portability"); +# endif +#endif + +/* Some people would argue that all sprintf uses should be warned about + (for example, OpenBSD issues a link warning for it), + since it can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header + intentionally avoids adding a warning to sprintf except when + GNULIB_POSIXCHECK is defined. */ + +#if @GNULIB_SPRINTF_POSIX@ +# if @REPLACE_SPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define sprintf rpl_sprintf +# endif +# define GNULIB_overrides_sprintf 1 +_GL_FUNCDECL_RPL (sprintf, int, + (char *restrict str, const char *restrict format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (sprintf, int, + (char *restrict str, const char *restrict format, ...)); +# else +_GL_CXXALIAS_SYS (sprintf, int, + (char *restrict str, const char *restrict format, ...)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (sprintf); +# endif +#elif defined GNULIB_POSIXCHECK +# undef sprintf +/* Assume sprintf is always declared. */ +_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " + "use gnulib module sprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_MDA_TEMPNAM@ +/* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::tempnam always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef tempnam +# define tempnam _tempnam +# endif +_GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); +# else +_GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); +# endif +_GL_CXXALIASWARN (tempnam); +#endif + +#if @GNULIB_TMPFILE@ +# if @REPLACE_TMPFILE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define tmpfile rpl_tmpfile +# endif +_GL_FUNCDECL_RPL (tmpfile, FILE *, (void) + _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +_GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) + _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +_GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (tmpfile); +# endif +#else +# if @GNULIB_FCLOSE@ && __GNUC__ >= 11 && !defined tmpfile +/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ +_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) + _GL_ATTRIBUTE_DEALLOC (fclose, 1)); +# endif +# if defined GNULIB_POSIXCHECK +# undef tmpfile +# if HAVE_RAW_DECL_TMPFILE +_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " + "use gnulib module tmpfile for portability"); +# endif +# endif +#endif + +#if @GNULIB_VASPRINTF@ +/* Write formatted output to a string dynamically allocated with malloc(). + If the memory allocation succeeds, store the address of the string in + *RESULT and return the number of resulting bytes, excluding the trailing + NUL. Upon memory allocation error, or some other error, return -1. */ +# if @REPLACE_VASPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define asprintf rpl_asprintf +# endif +# define GNULIB_overrides_asprintf +_GL_FUNCDECL_RPL (asprintf, int, + (char **result, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (asprintf, int, + (char **result, const char *format, ...)); +# else +# if !@HAVE_VASPRINTF@ +_GL_FUNCDECL_SYS (asprintf, int, + (char **result, const char *format, ...) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (asprintf, int, + (char **result, const char *format, ...)); +# endif +_GL_CXXALIASWARN (asprintf); +# if @REPLACE_VASPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vasprintf rpl_vasprintf +# endif +# define GNULIB_overrides_vasprintf 1 +_GL_FUNCDECL_RPL (vasprintf, int, + (char **result, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vasprintf, int, + (char **result, const char *format, va_list args)); +# else +# if !@HAVE_VASPRINTF@ +_GL_FUNCDECL_SYS (vasprintf, int, + (char **result, const char *format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (vasprintf, int, + (char **result, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vasprintf); +#endif + +#if @GNULIB_VDPRINTF@ +# if @REPLACE_VDPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vdprintf rpl_vdprintf +# endif +_GL_FUNCDECL_RPL (vdprintf, int, + (int fd, const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (vdprintf, int, + (int fd, const char *restrict format, va_list args)); +# else +# if !@HAVE_VDPRINTF@ +_GL_FUNCDECL_SYS (vdprintf, int, + (int fd, const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((2))); +# endif +/* Need to cast, because on Solaris, the third parameter will likely be + __va_list args. */ +_GL_CXXALIAS_SYS_CAST (vdprintf, int, + (int fd, const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vdprintf); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vdprintf +# if HAVE_RAW_DECL_VDPRINTF +_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " + "use gnulib module vdprintf for portability"); +# endif +#endif + +#if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ +# if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ + || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vfprintf rpl_vfprintf +# endif +# define GNULIB_overrides_vfprintf 1 +# if @GNULIB_VFPRINTF_POSIX@ +_GL_FUNCDECL_RPL (vfprintf, int, + (FILE *restrict fp, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +# else +_GL_FUNCDECL_RPL (vfprintf, int, + (FILE *restrict fp, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_RPL (vfprintf, int, + (FILE *restrict fp, + const char *restrict format, va_list args)); +# else +/* Need to cast, because on Solaris, the third parameter is + __va_list args + and GCC's fixincludes did not change this to __gnuc_va_list. */ +_GL_CXXALIAS_SYS_CAST (vfprintf, int, + (FILE *restrict fp, + const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vfprintf); +# endif +#endif +#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_vfprintf +# undef vfprintf +# endif +/* Assume vfprintf is always declared. */ +_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " + "use gnulib module vfprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_VFSCANF@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef vfscanf +# define vfscanf rpl_vfscanf +# endif +_GL_FUNCDECL_RPL (vfscanf, int, + (FILE *restrict stream, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vfscanf, int, + (FILE *restrict stream, + const char *restrict format, va_list args)); +# else +_GL_CXXALIAS_SYS (vfscanf, int, + (FILE *restrict stream, + const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vfscanf); +# endif +#endif + +#if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ +# if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ + || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vprintf rpl_vprintf +# endif +# define GNULIB_overrides_vprintf 1 +# if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ +_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) + _GL_ARG_NONNULL ((1))); +# else +_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); +# else +/* Need to cast, because on Solaris, the second parameter is + __va_list args + and GCC's fixincludes did not change this to __gnuc_va_list. */ +_GL_CXXALIAS_SYS_CAST (vprintf, int, + (const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vprintf); +# endif +#endif +#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_vprintf +# undef vprintf +# endif +/* Assume vprintf is always declared. */ +_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " + "use gnulib module vprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_VSCANF@ +# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef vscanf +# define vscanf rpl_vscanf +# endif +_GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); +# else +_GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vscanf); +# endif +#endif + +#if @GNULIB_VSNPRINTF@ +# if @REPLACE_VSNPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vsnprintf rpl_vsnprintf +# endif +# define GNULIB_overrides_vsnprintf 1 +_GL_FUNCDECL_RPL (vsnprintf, int, + (char *restrict str, size_t size, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) + _GL_ARG_NONNULL ((3))); +_GL_CXXALIAS_RPL (vsnprintf, int, + (char *restrict str, size_t size, + const char *restrict format, va_list args)); +# else +# if !@HAVE_DECL_VSNPRINTF@ +_GL_FUNCDECL_SYS (vsnprintf, int, + (char *restrict str, size_t size, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) + _GL_ARG_NONNULL ((3))); +# endif +_GL_CXXALIAS_SYS (vsnprintf, int, + (char *restrict str, size_t size, + const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vsnprintf); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vsnprintf +# if HAVE_RAW_DECL_VSNPRINTF +_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " + "use gnulib module vsnprintf for portability"); +# endif +#endif + +#if @GNULIB_VSPRINTF_POSIX@ +# if @REPLACE_VSPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vsprintf rpl_vsprintf +# endif +# define GNULIB_overrides_vsprintf 1 +_GL_FUNCDECL_RPL (vsprintf, int, + (char *restrict str, + const char *restrict format, va_list args) + _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vsprintf, int, + (char *restrict str, + const char *restrict format, va_list args)); +# else +/* Need to cast, because on Solaris, the third parameter is + __va_list args + and GCC's fixincludes did not change this to __gnuc_va_list. */ +_GL_CXXALIAS_SYS_CAST (vsprintf, int, + (char *restrict str, + const char *restrict format, va_list args)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (vsprintf); +# endif +#elif defined GNULIB_POSIXCHECK +# undef vsprintf +/* Assume vsprintf is always declared. */ +_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " + "use gnulib module vsprintf-posix for portable " + "POSIX compliance"); +#endif + +#endif /* _@GUARD_PREFIX@_STDIO_H */ +#endif /* _@GUARD_PREFIX@_STDIO_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/stdlib.in.h b/3rdPartner/libiconv/srclib/stdlib.in.h new file mode 100644 index 0000000..a86643c --- /dev/null +++ b/3rdPartner/libiconv/srclib/stdlib.in.h @@ -0,0 +1,1559 @@ +/* A GNU-like . + + Copyright (C) 1995, 2001-2004, 2006-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc +/* Special invocation conventions inside some gnulib header files, + and inside some glibc header files, respectively. */ + +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_STDLIB_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#ifndef _@GUARD_PREFIX@_STDLIB_H +#define _@GUARD_PREFIX@_STDLIB_H + +/* NetBSD 5.0 mis-defines NULL. */ +#include + +/* MirBSD 10 defines WEXITSTATUS in , not in . */ +#if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS +# include +#endif + +/* Solaris declares getloadavg() in . */ +#if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ +/* OpenIndiana has a bug: must be included before + . */ +# include +# include +#endif + +/* Native Windows platforms declare _mktemp() in . */ +#if defined _WIN32 && !defined __CYGWIN__ +# include +#endif + +#if @GNULIB_RANDOM_R@ + +/* OSF/1 5.1 declares 'struct random_data' in , which is included + from if _REENTRANT is defined. Include it whenever we need + 'struct random_data'. */ +# if @HAVE_RANDOM_H@ +# include +# endif + +# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ +# include +# endif + +# if !@HAVE_STRUCT_RANDOM_DATA@ +/* Define 'struct random_data'. + But allow multiple gnulib generated replacements to coexist. */ +# if !GNULIB_defined_struct_random_data +struct random_data +{ + int32_t *fptr; /* Front pointer. */ + int32_t *rptr; /* Rear pointer. */ + int32_t *state; /* Array of state values. */ + int rand_type; /* Type of random number generator. */ + int rand_deg; /* Degree of random number generator. */ + int rand_sep; /* Distance between front and rear. */ + int32_t *end_ptr; /* Pointer behind state table. */ +}; +# define GNULIB_defined_struct_random_data 1 +# endif +# endif +#endif + +#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) +/* On Mac OS X 10.3, only declares mkstemp. */ +/* On Mac OS X 10.5, only declares mkstemps. */ +/* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ +/* On Cygwin 1.7.1, only declares getsubopt. */ +/* But avoid namespace pollution on glibc systems and native Windows. */ +# include +#endif + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. */ +#ifndef _GL_ATTRIBUTE_DEALLOC +# if __GNUC__ >= 11 +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +# else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +# endif +#endif + +/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#ifndef _GL_ATTRIBUTE_MALLOC +# if __GNUC__ >= 3 || defined __clang__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +# else +# define _GL_ATTRIBUTE_MALLOC +# endif +#endif + +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#ifndef _GL_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _GL_ATTRIBUTE_PURE /* empty */ +# endif +#endif + +/* The definition of _Noreturn is copied here. */ + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere + with proper operation of xargs. */ +#ifndef EXIT_FAILURE +# define EXIT_FAILURE 1 +#elif EXIT_FAILURE != 1 +# undef EXIT_FAILURE +# define EXIT_FAILURE 1 +#endif + + +#if @GNULIB__EXIT@ +/* Terminate the current process with the given return code, without running + the 'atexit' handlers. */ +# if !@HAVE__EXIT@ +_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); +# endif +_GL_CXXALIAS_SYS (_Exit, void, (int status)); +_GL_CXXALIASWARN (_Exit); +#elif defined GNULIB_POSIXCHECK +# undef _Exit +# if HAVE_RAW_DECL__EXIT +_GL_WARN_ON_USE (_Exit, "_Exit is unportable - " + "use gnulib module _Exit for portability"); +# endif +#endif + + +#if @GNULIB_FREE_POSIX@ +# if @REPLACE_FREE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef free +# define free rpl_free +# endif +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_FUNCDECL_RPL (free, void, (void *ptr) throw ()); +# else +_GL_FUNCDECL_RPL (free, void, (void *ptr)); +# endif +_GL_CXXALIAS_RPL (free, void, (void *ptr)); +# else +_GL_CXXALIAS_SYS (free, void, (void *ptr)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (free); +# endif +#elif defined GNULIB_POSIXCHECK +# undef free +/* Assume free is always declared. */ +_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " + "use gnulib module free for portability"); +#endif + + +/* Allocate memory with indefinite extent and specified alignment. */ +#if @GNULIB_ALIGNED_ALLOC@ +# if @REPLACE_ALIGNED_ALLOC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef aligned_alloc +# define aligned_alloc rpl_aligned_alloc +# endif +_GL_FUNCDECL_RPL (aligned_alloc, void *, + (size_t alignment, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); +# else +# if @HAVE_ALIGNED_ALLOC@ +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (aligned_alloc, void *, + (size_t alignment, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); +# endif +# endif +# if @HAVE_ALIGNED_ALLOC@ +_GL_CXXALIASWARN (aligned_alloc); +# endif +#else +# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc +/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (aligned_alloc, void *, + (size_t alignment, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef aligned_alloc +# if HAVE_RAW_DECL_ALIGNED_ALLOC +_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " + "use gnulib module aligned_alloc for portability"); +# endif +# endif +#endif + +#if @GNULIB_ATOLL@ +/* Parse a signed decimal integer. + Returns the value of the integer. Errors are not detected. */ +# if !@HAVE_ATOLL@ +_GL_FUNCDECL_SYS (atoll, long long, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (atoll, long long, (const char *string)); +_GL_CXXALIASWARN (atoll); +#elif defined GNULIB_POSIXCHECK +# undef atoll +# if HAVE_RAW_DECL_ATOLL +_GL_WARN_ON_USE (atoll, "atoll is unportable - " + "use gnulib module atoll for portability"); +# endif +#endif + +#if @GNULIB_CALLOC_POSIX@ +# if (@GNULIB_CALLOC_POSIX@ && @REPLACE_CALLOC_FOR_CALLOC_POSIX@) \ + || (@GNULIB_CALLOC_GNU@ && @REPLACE_CALLOC_FOR_CALLOC_GNU@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef calloc +# define calloc rpl_calloc +# endif +_GL_FUNCDECL_RPL (calloc, void *, + (size_t nmemb, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (calloc, void *, + (size_t nmemb, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (calloc); +# endif +#else +# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc +/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (calloc, void *, + (size_t nmemb, size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef calloc +/* Assume calloc is always declared. */ +_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " + "use gnulib module calloc-posix for portability"); +# endif +#endif + +#if @GNULIB_CANONICALIZE_FILE_NAME@ +# if @REPLACE_CANONICALIZE_FILE_NAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define canonicalize_file_name rpl_canonicalize_file_name +# endif +_GL_FUNCDECL_RPL (canonicalize_file_name, char *, + (const char *name) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); +# else +# if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11 +_GL_FUNCDECL_SYS (canonicalize_file_name, char *, + (const char *name) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); +# endif +# ifndef GNULIB_defined_canonicalize_file_name +# define GNULIB_defined_canonicalize_file_name \ + (!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@) +# endif +_GL_CXXALIASWARN (canonicalize_file_name); +#else +# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name +/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or + rpl_free. */ +_GL_FUNCDECL_SYS (canonicalize_file_name, char *, + (const char *name) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef canonicalize_file_name +# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME +_GL_WARN_ON_USE (canonicalize_file_name, + "canonicalize_file_name is unportable - " + "use gnulib module canonicalize-lgpl for portability"); +# endif +# endif +#endif + +#if @GNULIB_MDA_ECVT@ +/* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have + it. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ecvt +# define ecvt _ecvt +# endif +_GL_CXXALIAS_MDA (ecvt, char *, + (double number, int ndigits, int *decptp, int *signp)); +# else +# if @HAVE_DECL_ECVT@ +_GL_CXXALIAS_SYS (ecvt, char *, + (double number, int ndigits, int *decptp, int *signp)); +# endif +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_ECVT@ +_GL_CXXALIASWARN (ecvt); +# endif +#endif + +#if @GNULIB_MDA_FCVT@ +/* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have + it. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fcvt +# define fcvt _fcvt +# endif +_GL_CXXALIAS_MDA (fcvt, char *, + (double number, int ndigits, int *decptp, int *signp)); +# else +# if @HAVE_DECL_FCVT@ +_GL_CXXALIAS_SYS (fcvt, char *, + (double number, int ndigits, int *decptp, int *signp)); +# endif +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_FCVT@ +_GL_CXXALIASWARN (fcvt); +# endif +#endif + +#if @GNULIB_MDA_GCVT@ +/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have + it. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gcvt +# define gcvt _gcvt +# endif +_GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); +# else +# if @HAVE_DECL_GCVT@ +_GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); +# endif +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_GCVT@ +_GL_CXXALIASWARN (gcvt); +# endif +#endif + +#if @GNULIB_GETLOADAVG@ +/* Store max(NELEM,3) load average numbers in LOADAVG[]. + The three numbers are the load average of the last 1 minute, the last 5 + minutes, and the last 15 minutes, respectively. + LOADAVG is an array of NELEM numbers. */ +# if !@HAVE_DECL_GETLOADAVG@ +_GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); +_GL_CXXALIASWARN (getloadavg); +#elif defined GNULIB_POSIXCHECK +# undef getloadavg +# if HAVE_RAW_DECL_GETLOADAVG +_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " + "use gnulib module getloadavg for portability"); +# endif +#endif + +#if @GNULIB_GETSUBOPT@ +/* Assuming *OPTIONP is a comma separated list of elements of the form + "token" or "token=value", getsubopt parses the first of these elements. + If the first element refers to a "token" that is member of the given + NULL-terminated array of tokens: + - It replaces the comma with a NUL byte, updates *OPTIONP to point past + the first option and the comma, sets *VALUEP to the value of the + element (or NULL if it doesn't contain an "=" sign), + - It returns the index of the "token" in the given array of tokens. + Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. + For more details see the POSIX specification. + https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ +# if !@HAVE_GETSUBOPT@ +_GL_FUNCDECL_SYS (getsubopt, int, + (char **optionp, char *const *tokens, char **valuep) + _GL_ARG_NONNULL ((1, 2, 3))); +# endif +_GL_CXXALIAS_SYS (getsubopt, int, + (char **optionp, char *const *tokens, char **valuep)); +_GL_CXXALIASWARN (getsubopt); +#elif defined GNULIB_POSIXCHECK +# undef getsubopt +# if HAVE_RAW_DECL_GETSUBOPT +_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " + "use gnulib module getsubopt for portability"); +# endif +#endif + +#if @GNULIB_GRANTPT@ +/* Change the ownership and access permission of the slave side of the + pseudo-terminal whose master side is specified by FD. */ +# if !@HAVE_GRANTPT@ +_GL_FUNCDECL_SYS (grantpt, int, (int fd)); +# endif +_GL_CXXALIAS_SYS (grantpt, int, (int fd)); +_GL_CXXALIASWARN (grantpt); +#elif defined GNULIB_POSIXCHECK +# undef grantpt +# if HAVE_RAW_DECL_GRANTPT +_GL_WARN_ON_USE (grantpt, "grantpt is not portable - " + "use gnulib module grantpt for portability"); +# endif +#endif + +/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not + rely on GNU or POSIX semantics for malloc and realloc (for example, + by never specifying a zero size), so it does not need malloc or + realloc to be redefined. */ +#if @GNULIB_MALLOC_POSIX@ +# if (@GNULIB_MALLOC_POSIX@ && @REPLACE_MALLOC_FOR_MALLOC_POSIX@) \ + || (@GNULIB_MALLOC_GNU@ && @REPLACE_MALLOC_FOR_MALLOC_GNU@) +# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ + || _GL_USE_STDLIB_ALLOC) +# undef malloc +# define malloc rpl_malloc +# endif +_GL_FUNCDECL_RPL (malloc, void *, + (size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (malloc, void *, (size_t size)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (malloc, void *, + (size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (malloc, void *, (size_t size)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (malloc); +# endif +#else +# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc +/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (malloc, void *, + (size_t size) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC +# undef malloc +/* Assume malloc is always declared. */ +_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " + "use gnulib module malloc-posix for portability"); +# endif +#endif + +/* Convert a multibyte character to a wide character. */ +#if @GNULIB_MBTOWC@ +# if @REPLACE_MBTOWC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbtowc +# define mbtowc rpl_mbtowc +# endif +_GL_FUNCDECL_RPL (mbtowc, int, + (wchar_t *restrict pwc, const char *restrict s, size_t n)); +_GL_CXXALIAS_RPL (mbtowc, int, + (wchar_t *restrict pwc, const char *restrict s, size_t n)); +# else +# if !@HAVE_MBTOWC@ +_GL_FUNCDECL_SYS (mbtowc, int, + (wchar_t *restrict pwc, const char *restrict s, size_t n)); +# endif +_GL_CXXALIAS_SYS (mbtowc, int, + (wchar_t *restrict pwc, const char *restrict s, size_t n)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mbtowc); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mbtowc +# if HAVE_RAW_DECL_MBTOWC +_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " + "use gnulib module mbtowc for portability"); +# endif +#endif + +#if @GNULIB_MKDTEMP@ +/* Create a unique temporary directory from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the directory name unique. + Returns TEMPLATE, or a null pointer if it cannot get a unique name. + The directory is created mode 700. */ +# if !@HAVE_MKDTEMP@ +_GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); +_GL_CXXALIASWARN (mkdtemp); +#elif defined GNULIB_POSIXCHECK +# undef mkdtemp +# if HAVE_RAW_DECL_MKDTEMP +_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " + "use gnulib module mkdtemp for portability"); +# endif +#endif + +#if @GNULIB_MKOSTEMP@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The flags are a bitmask, possibly including O_CLOEXEC (defined in ) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + The file is then created, with the specified flags, ensuring it didn't exist + before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKOSTEMP@ +_GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); +_GL_CXXALIASWARN (mkostemp); +#elif defined GNULIB_POSIXCHECK +# undef mkostemp +# if HAVE_RAW_DECL_MKOSTEMP +_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " + "use gnulib module mkostemp for portability"); +# endif +#endif + +#if @GNULIB_MKOSTEMPS@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE before a suffix of length + SUFFIXLEN must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The flags are a bitmask, possibly including O_CLOEXEC (defined in ) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + The file is then created, with the specified flags, ensuring it didn't exist + before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKOSTEMPS@ +_GL_FUNCDECL_SYS (mkostemps, int, + (char * /*template*/, int /*suffixlen*/, int /*flags*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkostemps, int, + (char * /*template*/, int /*suffixlen*/, int /*flags*/)); +_GL_CXXALIASWARN (mkostemps); +#elif defined GNULIB_POSIXCHECK +# undef mkostemps +# if HAVE_RAW_DECL_MKOSTEMPS +_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " + "use gnulib module mkostemps for portability"); +# endif +#endif + +#if @GNULIB_MKSTEMP@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The file is then created, ensuring it didn't exist before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if @REPLACE_MKSTEMP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mkstemp rpl_mkstemp +# endif +_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); +# else +# if ! @HAVE_MKSTEMP@ +_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); +# endif +_GL_CXXALIASWARN (mkstemp); +#elif defined GNULIB_POSIXCHECK +# undef mkstemp +# if HAVE_RAW_DECL_MKSTEMP +_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " + "use gnulib module mkstemp for portability"); +# endif +#endif + +#if @GNULIB_MKSTEMPS@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE prior to a suffix of length + SUFFIXLEN must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The file is then created, ensuring it didn't exist before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKSTEMPS@ +_GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); +_GL_CXXALIASWARN (mkstemps); +#elif defined GNULIB_POSIXCHECK +# undef mkstemps +# if HAVE_RAW_DECL_MKSTEMPS +_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " + "use gnulib module mkstemps for portability"); +# endif +#endif + +#if @GNULIB_MDA_MKTEMP@ +/* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::mktemp always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mktemp +# define mktemp _mktemp +# endif +_GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); +# else +_GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); +# endif +_GL_CXXALIASWARN (mktemp); +#endif + +/* Allocate memory with indefinite extent and specified alignment. */ +#if @GNULIB_POSIX_MEMALIGN@ +# if @REPLACE_POSIX_MEMALIGN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef posix_memalign +# define posix_memalign rpl_posix_memalign +# endif +_GL_FUNCDECL_RPL (posix_memalign, int, + (void **memptr, size_t alignment, size_t size) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (posix_memalign, int, + (void **memptr, size_t alignment, size_t size)); +# else +# if @HAVE_POSIX_MEMALIGN@ +_GL_CXXALIAS_SYS (posix_memalign, int, + (void **memptr, size_t alignment, size_t size)); +# endif +# endif +# if @HAVE_POSIX_MEMALIGN@ +_GL_CXXALIASWARN (posix_memalign); +# endif +#elif defined GNULIB_POSIXCHECK +# undef posix_memalign +# if HAVE_RAW_DECL_POSIX_MEMALIGN +_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " + "use gnulib module posix_memalign for portability"); +# endif +#endif + +#if @GNULIB_POSIX_OPENPT@ +/* Return an FD open to the master side of a pseudo-terminal. Flags should + include O_RDWR, and may also include O_NOCTTY. */ +# if !@HAVE_POSIX_OPENPT@ +_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); +# endif +_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); +_GL_CXXALIASWARN (posix_openpt); +#elif defined GNULIB_POSIXCHECK +# undef posix_openpt +# if HAVE_RAW_DECL_POSIX_OPENPT +_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " + "use gnulib module posix_openpt for portability"); +# endif +#endif + +#if @GNULIB_PTSNAME@ +/* Return the pathname of the pseudo-terminal slave associated with + the master FD is open on, or NULL on errors. */ +# if @REPLACE_PTSNAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ptsname +# define ptsname rpl_ptsname +# endif +_GL_FUNCDECL_RPL (ptsname, char *, (int fd)); +_GL_CXXALIAS_RPL (ptsname, char *, (int fd)); +# else +# if !@HAVE_PTSNAME@ +_GL_FUNCDECL_SYS (ptsname, char *, (int fd)); +# endif +_GL_CXXALIAS_SYS (ptsname, char *, (int fd)); +# endif +_GL_CXXALIASWARN (ptsname); +#elif defined GNULIB_POSIXCHECK +# undef ptsname +# if HAVE_RAW_DECL_PTSNAME +_GL_WARN_ON_USE (ptsname, "ptsname is not portable - " + "use gnulib module ptsname for portability"); +# endif +#endif + +#if @GNULIB_PTSNAME_R@ +/* Set the pathname of the pseudo-terminal slave associated with + the master FD is open on and return 0, or set errno and return + non-zero on errors. */ +# if @REPLACE_PTSNAME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ptsname_r +# define ptsname_r rpl_ptsname_r +# endif +_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); +# else +# if !@HAVE_PTSNAME_R@ +_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); +# endif +# ifndef GNULIB_defined_ptsname_r +# define GNULIB_defined_ptsname_r (!@HAVE_PTSNAME_R@ || @REPLACE_PTSNAME_R@) +# endif +_GL_CXXALIASWARN (ptsname_r); +#elif defined GNULIB_POSIXCHECK +# undef ptsname_r +# if HAVE_RAW_DECL_PTSNAME_R +_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " + "use gnulib module ptsname_r for portability"); +# endif +#endif + +#if @GNULIB_PUTENV@ +# if @REPLACE_PUTENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putenv +# define putenv rpl_putenv +# endif +_GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (putenv, int, (char *string)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putenv +# define putenv _putenv +# endif +_GL_CXXALIAS_MDA (putenv, int, (char *string)); +# else +_GL_CXXALIAS_SYS (putenv, int, (char *string)); +# endif +_GL_CXXALIASWARN (putenv); +#elif @GNULIB_MDA_PUTENV@ +/* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::putenv always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putenv +# define putenv _putenv +# endif +/* Need to cast, because on mingw, the parameter is either + 'const char *string' or 'char *string'. */ +_GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); +# else +_GL_CXXALIAS_SYS (putenv, int, (char *string)); +# endif +_GL_CXXALIASWARN (putenv); +#endif + +#if @GNULIB_QSORT_R@ +/* Sort an array of NMEMB elements, starting at address BASE, each element + occupying SIZE bytes, in ascending order according to the comparison + function COMPARE. */ +# ifdef __cplusplus +extern "C" { +# endif +# if !GNULIB_defined_qsort_r_fn_types +typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *); +# define GNULIB_defined_qsort_r_fn_types 1 +# endif +# ifdef __cplusplus +} +# endif +# if @REPLACE_QSORT_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef qsort_r +# define qsort_r rpl_qsort_r +# endif +_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, + _gl_qsort_r_compar_fn compare, + void *arg) _GL_ARG_NONNULL ((1, 4))); +_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, + _gl_qsort_r_compar_fn compare, + void *arg)); +# else +# if !@HAVE_QSORT_R@ +_GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, + _gl_qsort_r_compar_fn compare, + void *arg) _GL_ARG_NONNULL ((1, 4))); +# endif +_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, + _gl_qsort_r_compar_fn compare, + void *arg)); +# endif +_GL_CXXALIASWARN (qsort_r); +#elif defined GNULIB_POSIXCHECK +# undef qsort_r +# if HAVE_RAW_DECL_QSORT_R +_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " + "use gnulib module qsort_r for portability"); +# endif +#endif + + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +# ifndef RAND_MAX +# define RAND_MAX 2147483647 +# endif +# endif +#endif + + +#if @GNULIB_RANDOM@ +# if @REPLACE_RANDOM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef random +# define random rpl_random +# endif +_GL_FUNCDECL_RPL (random, long, (void)); +_GL_CXXALIAS_RPL (random, long, (void)); +# else +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (random, long, (void)); +# endif +/* Need to cast, because on Haiku, the return type is + int. */ +_GL_CXXALIAS_SYS_CAST (random, long, (void)); +# endif +_GL_CXXALIASWARN (random); +#elif defined GNULIB_POSIXCHECK +# undef random +# if HAVE_RAW_DECL_RANDOM +_GL_WARN_ON_USE (random, "random is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if @REPLACE_RANDOM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef srandom +# define srandom rpl_srandom +# endif +_GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); +_GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); +# else +# if !@HAVE_RANDOM@ +_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); +# endif +/* Need to cast, because on FreeBSD, the first parameter is + unsigned long seed. */ +_GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); +# endif +_GL_CXXALIASWARN (srandom); +#elif defined GNULIB_POSIXCHECK +# undef srandom +# if HAVE_RAW_DECL_SRANDOM +_GL_WARN_ON_USE (srandom, "srandom is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if @REPLACE_INITSTATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef initstate +# define initstate rpl_initstate +# endif +_GL_FUNCDECL_RPL (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size)); +# else +# if !@HAVE_INITSTATE@ || !@HAVE_DECL_INITSTATE@ +_GL_FUNCDECL_SYS (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size) + _GL_ARG_NONNULL ((2))); +# endif +/* Need to cast, because on FreeBSD, the first parameter is + unsigned long seed. */ +_GL_CXXALIAS_SYS_CAST (initstate, char *, + (unsigned int seed, char *buf, size_t buf_size)); +# endif +_GL_CXXALIASWARN (initstate); +#elif defined GNULIB_POSIXCHECK +# undef initstate +# if HAVE_RAW_DECL_INITSTATE +_GL_WARN_ON_USE (initstate, "initstate is unportable - " + "use gnulib module random for portability"); +# endif +#endif + +#if @GNULIB_RANDOM@ +# if @REPLACE_SETSTATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setstate +# define setstate rpl_setstate +# endif +_GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); +# else +# if !@HAVE_SETSTATE@ || !@HAVE_DECL_SETSTATE@ +_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter + is const char *arg_state. */ +_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); +# endif +_GL_CXXALIASWARN (setstate); +#elif defined GNULIB_POSIXCHECK +# undef setstate +# if HAVE_RAW_DECL_SETSTATE +_GL_WARN_ON_USE (setstate, "setstate is unportable - " + "use gnulib module random for portability"); +# endif +#endif + + +#if @GNULIB_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef random_r +# define random_r rpl_random_r +# endif +_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); +# else +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); +# endif +_GL_CXXALIASWARN (random_r); +#elif defined GNULIB_POSIXCHECK +# undef random_r +# if HAVE_RAW_DECL_RANDOM_R +_GL_WARN_ON_USE (random_r, "random_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef srandom_r +# define srandom_r rpl_srandom_r +# endif +_GL_FUNCDECL_RPL (srandom_r, int, + (unsigned int seed, struct random_data *rand_state) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (srandom_r, int, + (unsigned int seed, struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (srandom_r, int, + (unsigned int seed, struct random_data *rand_state) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (srandom_r, int, + (unsigned int seed, struct random_data *rand_state)); +# endif +_GL_CXXALIASWARN (srandom_r); +#elif defined GNULIB_POSIXCHECK +# undef srandom_r +# if HAVE_RAW_DECL_SRANDOM_R +_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef initstate_r +# define initstate_r rpl_initstate_r +# endif +_GL_FUNCDECL_RPL (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state) + _GL_ARG_NONNULL ((2, 4))); +# endif +/* Need to cast, because on Haiku, the third parameter is + unsigned long buf_size. */ +_GL_CXXALIAS_SYS_CAST (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state)); +# endif +_GL_CXXALIASWARN (initstate_r); +#elif defined GNULIB_POSIXCHECK +# undef initstate_r +# if HAVE_RAW_DECL_INITSTATE_R +_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if @REPLACE_RANDOM_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setstate_r +# define setstate_r rpl_setstate_r +# endif +_GL_FUNCDECL_RPL (setstate_r, int, + (char *arg_state, struct random_data *rand_state) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (setstate_r, int, + (char *arg_state, struct random_data *rand_state)); +# else +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (setstate_r, int, + (char *arg_state, struct random_data *rand_state) + _GL_ARG_NONNULL ((1, 2))); +# endif +/* Need to cast, because on Haiku, the first parameter is + void *arg_state. */ +_GL_CXXALIAS_SYS_CAST (setstate_r, int, + (char *arg_state, struct random_data *rand_state)); +# endif +_GL_CXXALIASWARN (setstate_r); +#elif defined GNULIB_POSIXCHECK +# undef setstate_r +# if HAVE_RAW_DECL_SETSTATE_R +_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + + +#if @GNULIB_REALLOC_POSIX@ +# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \ + || (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@) +# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ + || _GL_USE_STDLIB_ALLOC) +# undef realloc +# define realloc rpl_realloc +# endif +_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size) + _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); +# else +# if __GNUC__ >= 11 +/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) + _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (realloc); +# endif +#else +# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc +/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ +_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) + _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC +# undef realloc +/* Assume realloc is always declared. */ +_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " + "use gnulib module realloc-posix for portability"); +# endif +#endif + + +#if @GNULIB_REALLOCARRAY@ +# if @REPLACE_REALLOCARRAY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef reallocarray +# define reallocarray rpl_reallocarray +# endif +_GL_FUNCDECL_RPL (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); +_GL_CXXALIAS_RPL (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); +# else +# if ! @HAVE_REALLOCARRAY@ +_GL_FUNCDECL_SYS (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); +# endif +_GL_CXXALIAS_SYS (reallocarray, void *, + (void *ptr, size_t nmemb, size_t size)); +# endif +_GL_CXXALIASWARN (reallocarray); +#elif defined GNULIB_POSIXCHECK +# undef reallocarray +# if HAVE_RAW_DECL_REALLOCARRAY +_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " + "use gnulib module reallocarray for portability"); +# endif +#endif + +#if @GNULIB_REALPATH@ +# if @REPLACE_REALPATH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define realpath rpl_realpath +# endif +_GL_FUNCDECL_RPL (realpath, char *, + (const char *restrict name, char *restrict resolved) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (realpath, char *, + (const char *restrict name, char *restrict resolved)); +# else +# if !@HAVE_REALPATH@ +_GL_FUNCDECL_SYS (realpath, char *, + (const char *restrict name, char *restrict resolved) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (realpath, char *, + (const char *restrict name, char *restrict resolved)); +# endif +_GL_CXXALIASWARN (realpath); +#elif defined GNULIB_POSIXCHECK +# undef realpath +# if HAVE_RAW_DECL_REALPATH +_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " + "canonicalize or canonicalize-lgpl for portability"); +# endif +#endif + +#if @GNULIB_RPMATCH@ +/* Test a user response to a question. + Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ +# if !@HAVE_RPMATCH@ +_GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); +_GL_CXXALIASWARN (rpmatch); +#elif defined GNULIB_POSIXCHECK +# undef rpmatch +# if HAVE_RAW_DECL_RPMATCH +_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " + "use gnulib module rpmatch for portability"); +# endif +#endif + +#if @GNULIB_SECURE_GETENV@ +/* Look up NAME in the environment, returning 0 in insecure situations. */ +# if !@HAVE_SECURE_GETENV@ +_GL_FUNCDECL_SYS (secure_getenv, char *, + (char const *name) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); +_GL_CXXALIASWARN (secure_getenv); +#elif defined GNULIB_POSIXCHECK +# undef secure_getenv +# if HAVE_RAW_DECL_SECURE_GETENV +_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " + "use gnulib module secure_getenv for portability"); +# endif +#endif + +#if @GNULIB_SETENV@ +/* Set NAME to VALUE in the environment. + If REPLACE is nonzero, overwrite an existing value. */ +# if @REPLACE_SETENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setenv +# define setenv rpl_setenv +# endif +_GL_FUNCDECL_RPL (setenv, int, + (const char *name, const char *value, int replace) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (setenv, int, + (const char *name, const char *value, int replace)); +# else +# if !@HAVE_DECL_SETENV@ +_GL_FUNCDECL_SYS (setenv, int, + (const char *name, const char *value, int replace) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (setenv, int, + (const char *name, const char *value, int replace)); +# endif +# if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) +_GL_CXXALIASWARN (setenv); +# endif +#elif defined GNULIB_POSIXCHECK +# undef setenv +# if HAVE_RAW_DECL_SETENV +_GL_WARN_ON_USE (setenv, "setenv is unportable - " + "use gnulib module setenv for portability"); +# endif +#endif + +#if @GNULIB_STRTOD@ + /* Parse a double from STRING, updating ENDP if appropriate. */ +# if @REPLACE_STRTOD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtod rpl_strtod +# endif +# define GNULIB_defined_strtod_function 1 +_GL_FUNCDECL_RPL (strtod, double, + (const char *restrict str, char **restrict endp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtod, double, + (const char *restrict str, char **restrict endp)); +# else +# if !@HAVE_STRTOD@ +_GL_FUNCDECL_SYS (strtod, double, + (const char *restrict str, char **restrict endp) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtod, double, + (const char *restrict str, char **restrict endp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (strtod); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtod +# if HAVE_RAW_DECL_STRTOD +_GL_WARN_ON_USE (strtod, "strtod is unportable - " + "use gnulib module strtod for portability"); +# endif +#endif + +#if @GNULIB_STRTOLD@ + /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ +# if @REPLACE_STRTOLD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtold rpl_strtold +# endif +# define GNULIB_defined_strtold_function 1 +_GL_FUNCDECL_RPL (strtold, long double, + (const char *restrict str, char **restrict endp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtold, long double, + (const char *restrict str, char **restrict endp)); +# else +# if !@HAVE_STRTOLD@ +_GL_FUNCDECL_SYS (strtold, long double, + (const char *restrict str, char **restrict endp) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtold, long double, + (const char *restrict str, char **restrict endp)); +# endif +_GL_CXXALIASWARN (strtold); +#elif defined GNULIB_POSIXCHECK +# undef strtold +# if HAVE_RAW_DECL_STRTOLD +_GL_WARN_ON_USE (strtold, "strtold is unportable - " + "use gnulib module strtold for portability"); +# endif +#endif + +#if @GNULIB_STRTOL@ +/* Parse a signed integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set + to ERANGE. */ +# if @REPLACE_STRTOL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtol rpl_strtol +# endif +# define GNULIB_defined_strtol_function 1 +_GL_FUNCDECL_RPL (strtol, long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtol, long, + (const char *restrict string, char **restrict endptr, + int base)); +# else +# if !@HAVE_STRTOL@ +_GL_FUNCDECL_SYS (strtol, long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtol, long, + (const char *restrict string, char **restrict endptr, + int base)); +# endif +_GL_CXXALIASWARN (strtol); +#elif defined GNULIB_POSIXCHECK +# undef strtol +# if HAVE_RAW_DECL_STRTOL +_GL_WARN_ON_USE (strtol, "strtol is unportable - " + "use gnulib module strtol for portability"); +# endif +#endif + +#if @GNULIB_STRTOLL@ +/* Parse a signed integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set + to ERANGE. */ +# if @REPLACE_STRTOLL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtoll rpl_strtoll +# endif +# define GNULIB_defined_strtoll_function 1 +_GL_FUNCDECL_RPL (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base)); +# else +# if !@HAVE_STRTOLL@ +_GL_FUNCDECL_SYS (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoll, long long, + (const char *restrict string, char **restrict endptr, + int base)); +# endif +_GL_CXXALIASWARN (strtoll); +#elif defined GNULIB_POSIXCHECK +# undef strtoll +# if HAVE_RAW_DECL_STRTOLL +_GL_WARN_ON_USE (strtoll, "strtoll is unportable - " + "use gnulib module strtoll for portability"); +# endif +#endif + +#if @GNULIB_STRTOUL@ +/* Parse an unsigned integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ +# if @REPLACE_STRTOUL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtoul rpl_strtoul +# endif +# define GNULIB_defined_strtoul_function 1 +_GL_FUNCDECL_RPL (strtoul, unsigned long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoul, unsigned long, + (const char *restrict string, char **restrict endptr, + int base)); +# else +# if !@HAVE_STRTOUL@ +_GL_FUNCDECL_SYS (strtoul, unsigned long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoul, unsigned long, + (const char *restrict string, char **restrict endptr, + int base)); +# endif +_GL_CXXALIASWARN (strtoul); +#elif defined GNULIB_POSIXCHECK +# undef strtoul +# if HAVE_RAW_DECL_STRTOUL +_GL_WARN_ON_USE (strtoul, "strtoul is unportable - " + "use gnulib module strtoul for portability"); +# endif +#endif + +#if @GNULIB_STRTOULL@ +/* Parse an unsigned integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is ULLONG_MAX, and errno is set to + ERANGE. */ +# if @REPLACE_STRTOULL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtoull rpl_strtoull +# endif +# define GNULIB_defined_strtoull_function 1 +_GL_FUNCDECL_RPL (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base)); +# else +# if !@HAVE_STRTOULL@ +_GL_FUNCDECL_SYS (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoull, unsigned long long, + (const char *restrict string, char **restrict endptr, + int base)); +# endif +_GL_CXXALIASWARN (strtoull); +#elif defined GNULIB_POSIXCHECK +# undef strtoull +# if HAVE_RAW_DECL_STRTOULL +_GL_WARN_ON_USE (strtoull, "strtoull is unportable - " + "use gnulib module strtoull for portability"); +# endif +#endif + +#if @GNULIB_UNLOCKPT@ +/* Unlock the slave side of the pseudo-terminal whose master side is specified + by FD, so that it can be opened. */ +# if !@HAVE_UNLOCKPT@ +_GL_FUNCDECL_SYS (unlockpt, int, (int fd)); +# endif +_GL_CXXALIAS_SYS (unlockpt, int, (int fd)); +_GL_CXXALIASWARN (unlockpt); +#elif defined GNULIB_POSIXCHECK +# undef unlockpt +# if HAVE_RAW_DECL_UNLOCKPT +_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " + "use gnulib module unlockpt for portability"); +# endif +#endif + +#if @GNULIB_UNSETENV@ +/* Remove the variable NAME from the environment. */ +# if @REPLACE_UNSETENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unsetenv +# define unsetenv rpl_unsetenv +# endif +_GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); +# else +# if !@HAVE_DECL_UNSETENV@ +_GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); +# endif +# if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) +_GL_CXXALIASWARN (unsetenv); +# endif +#elif defined GNULIB_POSIXCHECK +# undef unsetenv +# if HAVE_RAW_DECL_UNSETENV +_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " + "use gnulib module unsetenv for portability"); +# endif +#endif + +/* Convert a wide character to a multibyte character. */ +#if @GNULIB_WCTOMB@ +# if @REPLACE_WCTOMB@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wctomb +# define wctomb rpl_wctomb +# endif +_GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); +_GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); +# else +_GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wctomb); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_STDLIB_H */ +#endif /* _@GUARD_PREFIX@_STDLIB_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/streq.h b/3rdPartner/libiconv/srclib/streq.h new file mode 100644 index 0000000..49f73c1 --- /dev/null +++ b/3rdPartner/libiconv/srclib/streq.h @@ -0,0 +1,176 @@ +/* Optimized string comparison. + Copyright (C) 2001-2002, 2007, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Bruno Haible . */ + +#ifndef _GL_STREQ_H +#define _GL_STREQ_H + +#include + +/* STREQ_OPT allows to optimize string comparison with a small literal string. + STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + is semantically equivalent to + strcmp (s, "EUC-KR") == 0 + just faster. */ + +/* Help GCC to generate good code for string comparisons with + immediate strings. */ +#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ + +static inline int +streq9 (const char *s1, const char *s2) +{ + return strcmp (s1 + 9, s2 + 9) == 0; +} + +static inline int +streq8 (const char *s1, const char *s2, char s28) +{ + if (s1[8] == s28) + { + if (s28 == 0) + return 1; + else + return streq9 (s1, s2); + } + else + return 0; +} + +static inline int +streq7 (const char *s1, const char *s2, char s27, char s28) +{ + if (s1[7] == s27) + { + if (s27 == 0) + return 1; + else + return streq8 (s1, s2, s28); + } + else + return 0; +} + +static inline int +streq6 (const char *s1, const char *s2, char s26, char s27, char s28) +{ + if (s1[6] == s26) + { + if (s26 == 0) + return 1; + else + return streq7 (s1, s2, s27, s28); + } + else + return 0; +} + +static inline int +streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) +{ + if (s1[5] == s25) + { + if (s25 == 0) + return 1; + else + return streq6 (s1, s2, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[4] == s24) + { + if (s24 == 0) + return 1; + else + return streq5 (s1, s2, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[3] == s23) + { + if (s23 == 0) + return 1; + else + return streq4 (s1, s2, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[2] == s22) + { + if (s22 == 0) + return 1; + else + return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[1] == s21) + { + if (s21 == 0) + return 1; + else + return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[0] == s20) + { + if (s20 == 0) + return 1; + else + return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ + streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) + +#else + +#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ + (strcmp (s1, s2) == 0) + +#endif + +#endif /* _GL_STREQ_H */ diff --git a/3rdPartner/libiconv/srclib/strerror-override.c b/3rdPartner/libiconv/srclib/strerror-override.c new file mode 100644 index 0000000..6be1afd --- /dev/null +++ b/3rdPartner/libiconv/srclib/strerror-override.c @@ -0,0 +1,306 @@ +/* strerror-override.c --- POSIX compatible system error routine + + Copyright (C) 2010-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Bruno Haible , 2010. */ + +#include + +#include "strerror-override.h" + +#include + +#if GNULIB_defined_EWINSOCK /* native Windows platforms */ +# if HAVE_WINSOCK2_H +# include +# endif +#endif + +#if !GNULIB_defined_strerror_override_macro + +/* If ERRNUM maps to an errno value defined by gnulib, return a string + describing the error. Otherwise return NULL. */ +const char * +strerror_override (int errnum) +{ + /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ + switch (errnum) + { +# if REPLACE_STRERROR_0 + case 0: + return "Success"; +# endif + +# if GNULIB_defined_ESOCK /* native Windows platforms with older */ + case EINPROGRESS: + return "Operation now in progress"; + case EALREADY: + return "Operation already in progress"; + case ENOTSOCK: + return "Socket operation on non-socket"; + case EDESTADDRREQ: + return "Destination address required"; + case EMSGSIZE: + return "Message too long"; + case EPROTOTYPE: + return "Protocol wrong type for socket"; + case ENOPROTOOPT: + return "Protocol not available"; + case EPROTONOSUPPORT: + return "Protocol not supported"; + case EOPNOTSUPP: + return "Operation not supported"; + case EAFNOSUPPORT: + return "Address family not supported by protocol"; + case EADDRINUSE: + return "Address already in use"; + case EADDRNOTAVAIL: + return "Cannot assign requested address"; + case ENETDOWN: + return "Network is down"; + case ENETUNREACH: + return "Network is unreachable"; + case ECONNRESET: + return "Connection reset by peer"; + case ENOBUFS: + return "No buffer space available"; + case EISCONN: + return "Transport endpoint is already connected"; + case ENOTCONN: + return "Transport endpoint is not connected"; + case ETIMEDOUT: + return "Connection timed out"; + case ECONNREFUSED: + return "Connection refused"; + case ELOOP: + return "Too many levels of symbolic links"; + case EHOSTUNREACH: + return "No route to host"; + case EWOULDBLOCK: + return "Operation would block"; +# endif +# if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ + case ETXTBSY: + return "Text file busy"; + case ENODATA: + return "No data available"; + case ENOSR: + return "Out of streams resources"; + case ENOSTR: + return "Device not a stream"; + case ETIME: + return "Timer expired"; + case EOTHER: + return "Other error"; +# endif +# if GNULIB_defined_EWINSOCK /* native Windows platforms */ + case ESOCKTNOSUPPORT: + return "Socket type not supported"; + case EPFNOSUPPORT: + return "Protocol family not supported"; + case ESHUTDOWN: + return "Cannot send after transport endpoint shutdown"; + case ETOOMANYREFS: + return "Too many references: cannot splice"; + case EHOSTDOWN: + return "Host is down"; + case EPROCLIM: + return "Too many processes"; + case EUSERS: + return "Too many users"; + case EDQUOT: + return "Disk quota exceeded"; + case ESTALE: + return "Stale NFS file handle"; + case EREMOTE: + return "Object is remote"; +# if HAVE_WINSOCK2_H + /* WSA_INVALID_HANDLE maps to EBADF */ + /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ + /* WSA_INVALID_PARAMETER maps to EINVAL */ + case WSA_OPERATION_ABORTED: + return "Overlapped operation aborted"; + case WSA_IO_INCOMPLETE: + return "Overlapped I/O event object not in signaled state"; + case WSA_IO_PENDING: + return "Overlapped operations will complete later"; + /* WSAEINTR maps to EINTR */ + /* WSAEBADF maps to EBADF */ + /* WSAEACCES maps to EACCES */ + /* WSAEFAULT maps to EFAULT */ + /* WSAEINVAL maps to EINVAL */ + /* WSAEMFILE maps to EMFILE */ + /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ + /* WSAEINPROGRESS maps to EINPROGRESS */ + /* WSAEALREADY maps to EALREADY */ + /* WSAENOTSOCK maps to ENOTSOCK */ + /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ + /* WSAEMSGSIZE maps to EMSGSIZE */ + /* WSAEPROTOTYPE maps to EPROTOTYPE */ + /* WSAENOPROTOOPT maps to ENOPROTOOPT */ + /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ + /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ + /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ + /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ + /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ + /* WSAEADDRINUSE maps to EADDRINUSE */ + /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ + /* WSAENETDOWN maps to ENETDOWN */ + /* WSAENETUNREACH maps to ENETUNREACH */ + /* WSAENETRESET maps to ENETRESET */ + /* WSAECONNABORTED maps to ECONNABORTED */ + /* WSAECONNRESET maps to ECONNRESET */ + /* WSAENOBUFS maps to ENOBUFS */ + /* WSAEISCONN maps to EISCONN */ + /* WSAENOTCONN maps to ENOTCONN */ + /* WSAESHUTDOWN is ESHUTDOWN */ + /* WSAETOOMANYREFS is ETOOMANYREFS */ + /* WSAETIMEDOUT maps to ETIMEDOUT */ + /* WSAECONNREFUSED maps to ECONNREFUSED */ + /* WSAELOOP maps to ELOOP */ + /* WSAENAMETOOLONG maps to ENAMETOOLONG */ + /* WSAEHOSTDOWN is EHOSTDOWN */ + /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ + /* WSAENOTEMPTY maps to ENOTEMPTY */ + /* WSAEPROCLIM is EPROCLIM */ + /* WSAEUSERS is EUSERS */ + /* WSAEDQUOT is EDQUOT */ + /* WSAESTALE is ESTALE */ + /* WSAEREMOTE is EREMOTE */ + case WSASYSNOTREADY: + return "Network subsystem is unavailable"; + case WSAVERNOTSUPPORTED: + return "Winsock.dll version out of range"; + case WSANOTINITIALISED: + return "Successful WSAStartup not yet performed"; + case WSAEDISCON: + return "Graceful shutdown in progress"; + case WSAENOMORE: case WSA_E_NO_MORE: + return "No more results"; + case WSAECANCELLED: case WSA_E_CANCELLED: + return "Call was canceled"; + case WSAEINVALIDPROCTABLE: + return "Procedure call table is invalid"; + case WSAEINVALIDPROVIDER: + return "Service provider is invalid"; + case WSAEPROVIDERFAILEDINIT: + return "Service provider failed to initialize"; + case WSASYSCALLFAILURE: + return "System call failure"; + case WSASERVICE_NOT_FOUND: + return "Service not found"; + case WSATYPE_NOT_FOUND: + return "Class type not found"; + case WSAEREFUSED: + return "Database query was refused"; + case WSAHOST_NOT_FOUND: + return "Host not found"; + case WSATRY_AGAIN: + return "Nonauthoritative host not found"; + case WSANO_RECOVERY: + return "Nonrecoverable error"; + case WSANO_DATA: + return "Valid name, no data record of requested type"; + /* WSA_QOS_* omitted */ +# endif +# endif + +# if GNULIB_defined_ENOMSG + case ENOMSG: + return "No message of desired type"; +# endif + +# if GNULIB_defined_EIDRM + case EIDRM: + return "Identifier removed"; +# endif + +# if GNULIB_defined_ENOLINK + case ENOLINK: + return "Link has been severed"; +# endif + +# if GNULIB_defined_EPROTO + case EPROTO: + return "Protocol error"; +# endif + +# if GNULIB_defined_EMULTIHOP + case EMULTIHOP: + return "Multihop attempted"; +# endif + +# if GNULIB_defined_EBADMSG + case EBADMSG: + return "Bad message"; +# endif + +# if GNULIB_defined_EOVERFLOW + case EOVERFLOW: + return "Value too large for defined data type"; +# endif + +# if GNULIB_defined_ENOTSUP + case ENOTSUP: + return "Not supported"; +# endif + +# if GNULIB_defined_ENETRESET + case ENETRESET: + return "Network dropped connection on reset"; +# endif + +# if GNULIB_defined_ECONNABORTED + case ECONNABORTED: + return "Software caused connection abort"; +# endif + +# if GNULIB_defined_ESTALE + case ESTALE: + return "Stale NFS file handle"; +# endif + +# if GNULIB_defined_EDQUOT + case EDQUOT: + return "Disk quota exceeded"; +# endif + +# if GNULIB_defined_ECANCELED + case ECANCELED: + return "Operation canceled"; +# endif + +# if GNULIB_defined_EOWNERDEAD + case EOWNERDEAD: + return "Owner died"; +# endif + +# if GNULIB_defined_ENOTRECOVERABLE + case ENOTRECOVERABLE: + return "State not recoverable"; +# endif + +# if GNULIB_defined_EILSEQ + case EILSEQ: + return "Invalid or incomplete multibyte or wide character"; +# endif + + default: + return NULL; + } +} + +#endif diff --git a/3rdPartner/libiconv/srclib/strerror-override.h b/3rdPartner/libiconv/srclib/strerror-override.h new file mode 100644 index 0000000..d010d27 --- /dev/null +++ b/3rdPartner/libiconv/srclib/strerror-override.h @@ -0,0 +1,57 @@ +/* strerror-override.h --- POSIX compatible system error routine + + Copyright (C) 2010-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _GL_STRERROR_OVERRIDE_H +# define _GL_STRERROR_OVERRIDE_H + +# include +# include + +/* Reasonable buffer size that should never trigger ERANGE; if this + proves too small, we intentionally abort(), to remind us to fix + this value. */ +# define STACKBUF_LEN 256 + +/* If ERRNUM maps to an errno value defined by gnulib, return a string + describing the error. Otherwise return NULL. */ +# if REPLACE_STRERROR_0 \ + || GNULIB_defined_ESOCK \ + || GNULIB_defined_ESTREAMS \ + || GNULIB_defined_EWINSOCK \ + || GNULIB_defined_ENOMSG \ + || GNULIB_defined_EIDRM \ + || GNULIB_defined_ENOLINK \ + || GNULIB_defined_EPROTO \ + || GNULIB_defined_EMULTIHOP \ + || GNULIB_defined_EBADMSG \ + || GNULIB_defined_EOVERFLOW \ + || GNULIB_defined_ENOTSUP \ + || GNULIB_defined_ENETRESET \ + || GNULIB_defined_ECONNABORTED \ + || GNULIB_defined_ESTALE \ + || GNULIB_defined_EDQUOT \ + || GNULIB_defined_ECANCELED \ + || GNULIB_defined_EOWNERDEAD \ + || GNULIB_defined_ENOTRECOVERABLE \ + || GNULIB_defined_EILSEQ +extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; +# else +# define strerror_override(ignored) NULL +# define GNULIB_defined_strerror_override_macro 1 +# endif + +#endif /* _GL_STRERROR_OVERRIDE_H */ diff --git a/3rdPartner/libiconv/srclib/strerror.c b/3rdPartner/libiconv/srclib/strerror.c new file mode 100644 index 0000000..67c5216 --- /dev/null +++ b/3rdPartner/libiconv/srclib/strerror.c @@ -0,0 +1,71 @@ +/* strerror.c --- POSIX compatible system error routine + + Copyright (C) 2007-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include + +#include +#include +#include +#include + +#include "intprops.h" +#include "strerror-override.h" +#include "verify.h" + +/* Use the system functions, not the gnulib overrides in this file. */ +#undef sprintf + +char * +strerror (int n) +#undef strerror +{ + static char buf[STACKBUF_LEN]; + size_t len; + + /* Cast away const, due to the historical signature of strerror; + callers should not be modifying the string. */ + const char *msg = strerror_override (n); + if (msg) + return (char *) msg; + + msg = strerror (n); + + /* Our strerror_r implementation might use the system's strerror + buffer, so all other clients of strerror have to see the error + copied into a buffer that we manage. This is not thread-safe, + even if the system strerror is, but portable programs shouldn't + be using strerror if they care about thread-safety. */ + if (!msg || !*msg) + { + static char const fmt[] = "Unknown error %d"; + verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); + sprintf (buf, fmt, n); + errno = EINVAL; + return buf; + } + + /* Fix STACKBUF_LEN if this ever aborts. */ + len = strlen (msg); + if (sizeof buf <= len) + abort (); + + memcpy (buf, msg, len + 1); + return buf; +} diff --git a/3rdPartner/libiconv/srclib/string.in.h b/3rdPartner/libiconv/srclib/string.in.h new file mode 100644 index 0000000..3996da9 --- /dev/null +++ b/3rdPartner/libiconv/srclib/string.in.h @@ -0,0 +1,1296 @@ +/* A GNU-like . + + Copyright (C) 1995-1996, 2001-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined _GL_ALREADY_INCLUDING_STRING_H +/* Special invocation convention: + - On OS X/NetBSD we have a sequence of nested includes + -> -> "string.h" + In this situation system _chk variants due to -D_FORTIFY_SOURCE + might be used after any replacements defined here. */ + +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_STRING_H + +#define _GL_ALREADY_INCLUDING_STRING_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#undef _GL_ALREADY_INCLUDING_STRING_H + +#ifndef _@GUARD_PREFIX@_STRING_H +#define _@GUARD_PREFIX@_STRING_H + +/* NetBSD 5.0 mis-defines NULL. */ +#include + +/* MirBSD defines mbslen as a macro. */ +#if @GNULIB_MBSLEN@ && defined __MirBSD__ +# include +#endif + +/* NetBSD 5.0 declares strsignal in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ + && ! defined __GLIBC__ +# include +#endif + +/* AIX 7.2 declares ffsl and ffsll in , not in . */ +/* But in any case avoid namespace pollution on glibc systems. */ +#if ((@GNULIB_FFSL@ || @GNULIB_FFSLL@ || defined GNULIB_POSIXCHECK) \ + && defined _AIX) \ + && ! defined __GLIBC__ +# include +#endif + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. */ +#ifndef _GL_ATTRIBUTE_DEALLOC +# if __GNUC__ >= 11 +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +# else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +# endif +#endif + +/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#ifndef _GL_ATTRIBUTE_MALLOC +# if __GNUC__ >= 3 || defined __clang__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +# else +# define _GL_ATTRIBUTE_MALLOC +# endif +#endif + +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#ifndef _GL_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _GL_ATTRIBUTE_PURE /* empty */ +# endif +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have + been included yet. */ +#if @GNULIB_FREE_POSIX@ +# if (@REPLACE_FREE@ && !defined free \ + && !(defined __cplusplus && defined GNULIB_NAMESPACE)) +/* We can't do '#define free rpl_free' here. */ +_GL_EXTERN_C void rpl_free (void *); +# undef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) +# else +# if defined _MSC_VER && !defined free +_GL_EXTERN_C +# if defined _DLL + __declspec (dllimport) +# endif + void __cdecl free (void *); +# else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else +_GL_EXTERN_C void free (void *); +# endif +# endif +# endif +#else +# if defined _MSC_VER && !defined free +_GL_EXTERN_C +# if defined _DLL + __declspec (dllimport) +# endif + void __cdecl free (void *); +# else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else +_GL_EXTERN_C void free (void *); +# endif +# endif +#endif + +/* Clear a block of memory. The compiler will not delete a call to + this function, even if the block is dead after the call. */ +#if @GNULIB_EXPLICIT_BZERO@ +# if ! @HAVE_EXPLICIT_BZERO@ +_GL_FUNCDECL_SYS (explicit_bzero, void, + (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); +_GL_CXXALIASWARN (explicit_bzero); +#elif defined GNULIB_POSIXCHECK +# undef explicit_bzero +# if HAVE_RAW_DECL_EXPLICIT_BZERO +_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " + "use gnulib module explicit_bzero for portability"); +# endif +#endif + +/* Find the index of the least-significant set bit. */ +#if @GNULIB_FFSL@ +# if !@HAVE_FFSL@ +_GL_FUNCDECL_SYS (ffsl, int, (long int i)); +# endif +_GL_CXXALIAS_SYS (ffsl, int, (long int i)); +_GL_CXXALIASWARN (ffsl); +#elif defined GNULIB_POSIXCHECK +# undef ffsl +# if HAVE_RAW_DECL_FFSL +_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); +# endif +#endif + + +/* Find the index of the least-significant set bit. */ +#if @GNULIB_FFSLL@ +# if @REPLACE_FFSLL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define ffsll rpl_ffsll +# endif +_GL_FUNCDECL_RPL (ffsll, int, (long long int i)); +_GL_CXXALIAS_RPL (ffsll, int, (long long int i)); +# else +# if !@HAVE_FFSLL@ +_GL_FUNCDECL_SYS (ffsll, int, (long long int i)); +# endif +_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); +# endif +_GL_CXXALIASWARN (ffsll); +#elif defined GNULIB_POSIXCHECK +# undef ffsll +# if HAVE_RAW_DECL_FFSLL +_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); +# endif +#endif + + +#if @GNULIB_MDA_MEMCCPY@ +/* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::memccpy always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef memccpy +# define memccpy _memccpy +# endif +_GL_CXXALIAS_MDA (memccpy, void *, + (void *dest, const void *src, int c, size_t n)); +# else +_GL_CXXALIAS_SYS (memccpy, void *, + (void *dest, const void *src, int c, size_t n)); +# endif +_GL_CXXALIASWARN (memccpy); +#endif + + +/* Return the first instance of C within N bytes of S, or NULL. */ +#if @GNULIB_MEMCHR@ +# if @REPLACE_MEMCHR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef memchr +# define memchr rpl_memchr +# endif +_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); +# else + /* On some systems, this function is defined as an overloaded function: + extern "C" { const void * std::memchr (const void *, int, size_t); } + extern "C++" { void * std::memchr (void *, int, size_t); } */ +_GL_CXXALIAS_SYS_CAST2 (memchr, + void *, (void const *__s, int __c, size_t __n), + void const *, (void const *__s, int __c, size_t __n)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n) throw ()); +_GL_CXXALIASWARN1 (memchr, void const *, + (void const *__s, int __c, size_t __n) throw ()); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (memchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memchr +/* Assume memchr is always declared. */ +_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " + "use gnulib module memchr for portability" ); +#endif + +/* Return the first occurrence of NEEDLE in HAYSTACK. */ +#if @GNULIB_MEMMEM@ +# if @REPLACE_MEMMEM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define memmem rpl_memmem +# endif +_GL_FUNCDECL_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# else +# if ! @HAVE_DECL_MEMMEM@ +_GL_FUNCDECL_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 3))); +# endif +_GL_CXXALIAS_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# endif +_GL_CXXALIASWARN (memmem); +#elif defined GNULIB_POSIXCHECK +# undef memmem +# if HAVE_RAW_DECL_MEMMEM +_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " + "use gnulib module memmem-simple for portability, " + "and module memmem for speed" ); +# endif +#endif + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +#if @GNULIB_MEMPCPY@ +# if ! @HAVE_MEMPCPY@ +_GL_FUNCDECL_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n)); +_GL_CXXALIASWARN (mempcpy); +#elif defined GNULIB_POSIXCHECK +# undef mempcpy +# if HAVE_RAW_DECL_MEMPCPY +_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " + "use gnulib module mempcpy for portability"); +# endif +#endif + +/* Search backwards through a block for a byte (specified as an int). */ +#if @GNULIB_MEMRCHR@ +# if ! @HAVE_DECL_MEMRCHR@ +_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const void * std::memrchr (const void *, int, size_t); } + extern "C++" { void * std::memrchr (void *, int, size_t); } */ +_GL_CXXALIAS_SYS_CAST2 (memrchr, + void *, (void const *, int, size_t), + void const *, (void const *, int, size_t)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t) throw ()); +_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t) throw ()); +# else +_GL_CXXALIASWARN (memrchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef memrchr +# if HAVE_RAW_DECL_MEMRCHR +_GL_WARN_ON_USE (memrchr, "memrchr is unportable - " + "use gnulib module memrchr for portability"); +# endif +#endif + +/* Find the first occurrence of C in S. More efficient than + memchr(S,C,N), at the expense of undefined behavior if C does not + occur within N bytes. */ +#if @GNULIB_RAWMEMCHR@ +# if ! @HAVE_RAWMEMCHR@ +_GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const void * std::rawmemchr (const void *, int); } + extern "C++" { void * std::rawmemchr (void *, int); } */ +_GL_CXXALIAS_SYS_CAST2 (rawmemchr, + void *, (void const *__s, int __c_in), + void const *, (void const *__s, int __c_in)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in) throw ()); +_GL_CXXALIASWARN1 (rawmemchr, void const *, + (void const *__s, int __c_in) throw ()); +# else +_GL_CXXALIASWARN (rawmemchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef rawmemchr +# if HAVE_RAW_DECL_RAWMEMCHR +_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " + "use gnulib module rawmemchr for portability"); +# endif +#endif + +/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ +#if @GNULIB_STPCPY@ +# if ! @HAVE_STPCPY@ +_GL_FUNCDECL_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src)); +_GL_CXXALIASWARN (stpcpy); +#elif defined GNULIB_POSIXCHECK +# undef stpcpy +# if HAVE_RAW_DECL_STPCPY +_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " + "use gnulib module stpcpy for portability"); +# endif +#endif + +/* Copy no more than N bytes of SRC to DST, returning a pointer past the + last non-NUL byte written into DST. */ +#if @GNULIB_STPNCPY@ +# if @REPLACE_STPNCPY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef stpncpy +# define stpncpy rpl_stpncpy +# endif +_GL_FUNCDECL_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# else +# if ! @HAVE_STPNCPY@ +_GL_FUNCDECL_SYS (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# endif +_GL_CXXALIASWARN (stpncpy); +#elif defined GNULIB_POSIXCHECK +# undef stpncpy +# if HAVE_RAW_DECL_STPNCPY +_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " + "use gnulib module stpncpy for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strchr +/* Assume strchr is always declared. */ +_GL_WARN_ON_USE_CXX (strchr, + const char *, char *, (const char *, int), + "strchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbschr if you care about internationalization"); +#endif + +/* Find the first occurrence of C in S or the final NUL byte. */ +#if @GNULIB_STRCHRNUL@ +# if @REPLACE_STRCHRNUL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strchrnul rpl_strchrnul +# endif +_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strchrnul, char *, + (const char *str, int ch)); +# else +# if ! @HAVE_STRCHRNUL@ +_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * std::strchrnul (const char *, int); } + extern "C++" { char * std::strchrnul (char *, int); } */ +_GL_CXXALIAS_SYS_CAST2 (strchrnul, + char *, (char const *__s, int __c_in), + char const *, (char const *__s, int __c_in)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in) throw ()); +_GL_CXXALIASWARN1 (strchrnul, char const *, + (char const *__s, int __c_in) throw ()); +# else +_GL_CXXALIASWARN (strchrnul); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strchrnul +# if HAVE_RAW_DECL_STRCHRNUL +_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " + "use gnulib module strchrnul for portability"); +# endif +#endif + +/* Duplicate S, returning an identical malloc'd string. */ +#if @GNULIB_STRDUP@ +# if @REPLACE_STRDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strdup +# define strdup rpl_strdup +# endif +_GL_FUNCDECL_RPL (strdup, char *, + (char const *__s) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strdup +# define strdup _strdup +# endif +_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); +# else +# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup + /* strdup exists as a function and as a macro. Get rid of the macro. */ +# undef strdup +# endif +# if (!@HAVE_DECL_STRDUP@ || __GNUC__ >= 11) && !defined strdup +_GL_FUNCDECL_SYS (strdup, char *, + (char const *__s) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); +# endif +_GL_CXXALIASWARN (strdup); +#else +# if __GNUC__ >= 11 && !defined strdup +/* For -Wmismatched-dealloc: Associate strdup with free or rpl_free. */ +_GL_FUNCDECL_SYS (strdup, char *, + (char const *__s) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef strdup +# if HAVE_RAW_DECL_STRDUP +_GL_WARN_ON_USE (strdup, "strdup is unportable - " + "use gnulib module strdup for portability"); +# endif +# elif @GNULIB_MDA_STRDUP@ +/* On native Windows, map 'creat' to '_creat', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::strdup always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strdup +# define strdup _strdup +# endif +_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); +# else +# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup +# undef strdup +# endif +_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); +# endif +_GL_CXXALIASWARN (strdup); +# endif +#endif + +/* Append no more than N characters from SRC onto DEST. */ +#if @GNULIB_STRNCAT@ +# if @REPLACE_STRNCAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strncat +# define strncat rpl_strncat +# endif +_GL_FUNCDECL_RPL (strncat, char *, + (char *restrict dest, const char *restrict src, size_t n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strncat, char *, + (char *restrict dest, const char *restrict src, size_t n)); +# else +_GL_CXXALIAS_SYS (strncat, char *, + (char *restrict dest, const char *restrict src, size_t n)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (strncat); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strncat +# if HAVE_RAW_DECL_STRNCAT +_GL_WARN_ON_USE (strncat, "strncat is unportable - " + "use gnulib module strncat for portability"); +# endif +#endif + +/* Return a newly allocated copy of at most N bytes of STRING. */ +#if @GNULIB_STRNDUP@ +# if @REPLACE_STRNDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strndup +# define strndup rpl_strndup +# endif +_GL_FUNCDECL_RPL (strndup, char *, + (char const *__s, size_t __n) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); +# else +# if !@HAVE_DECL_STRNDUP@ || (__GNUC__ >= 11 && !defined strndup) +_GL_FUNCDECL_SYS (strndup, char *, + (char const *__s, size_t __n) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); +# endif +_GL_CXXALIASWARN (strndup); +#else +# if __GNUC__ >= 11 && !defined strndup +/* For -Wmismatched-dealloc: Associate strndup with free or rpl_free. */ +_GL_FUNCDECL_SYS (strndup, char *, + (char const *__s, size_t __n) + _GL_ARG_NONNULL ((1)) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef strndup +# if HAVE_RAW_DECL_STRNDUP +_GL_WARN_ON_USE (strndup, "strndup is unportable - " + "use gnulib module strndup for portability"); +# endif +# endif +#endif + +/* Find the length (number of bytes) of STRING, but scan at most + MAXLEN bytes. If no '\0' terminator is found in that many bytes, + return MAXLEN. */ +#if @GNULIB_STRNLEN@ +# if @REPLACE_STRNLEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strnlen +# define strnlen rpl_strnlen +# endif +_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); +# else +# if ! @HAVE_DECL_STRNLEN@ +_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); +# endif +_GL_CXXALIASWARN (strnlen); +#elif defined GNULIB_POSIXCHECK +# undef strnlen +# if HAVE_RAW_DECL_STRNLEN +_GL_WARN_ON_USE (strnlen, "strnlen is unportable - " + "use gnulib module strnlen for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strcspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strcspn +/* Assume strcspn is always declared. */ +_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbscspn if you care about internationalization"); +#endif + +/* Find the first occurrence in S of any character in ACCEPT. */ +#if @GNULIB_STRPBRK@ +# if ! @HAVE_STRPBRK@ +_GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C" { const char * strpbrk (const char *, const char *); } + extern "C++" { char * strpbrk (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strpbrk, + char *, (char const *__s, char const *__accept), + const char *, (char const *__s, char const *__accept)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept) throw ()); +_GL_CXXALIASWARN1 (strpbrk, char const *, + (char const *__s, char const *__accept) throw ()); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (strpbrk); +# endif +# if defined GNULIB_POSIXCHECK +/* strpbrk() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strpbrk +_GL_WARN_ON_USE_CXX (strpbrk, + const char *, char *, (const char *, const char *), + "strpbrk cannot work correctly on character strings " + "in multibyte locales - " + "use mbspbrk if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strpbrk +# if HAVE_RAW_DECL_STRPBRK +_GL_WARN_ON_USE_CXX (strpbrk, + const char *, char *, (const char *, const char *), + "strpbrk is unportable - " + "use gnulib module strpbrk for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it cannot work with multibyte strings. */ +# undef strspn +/* Assume strspn is always declared. */ +_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbsspn if you care about internationalization"); +#endif + +#if defined GNULIB_POSIXCHECK +/* strrchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strrchr +/* Assume strrchr is always declared. */ +_GL_WARN_ON_USE_CXX (strrchr, + const char *, char *, (const char *, int), + "strrchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbsrchr if you care about internationalization"); +#endif + +/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP + to point to the next char after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of strtok() that is multithread-safe and supports + empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strtok_r(). */ +#if @GNULIB_STRSEP@ +# if ! @HAVE_STRSEP@ +_GL_FUNCDECL_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim)); +_GL_CXXALIASWARN (strsep); +# if defined GNULIB_POSIXCHECK +# undef strsep +_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " + "in multibyte locales - " + "use mbssep if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strsep +# if HAVE_RAW_DECL_STRSEP +_GL_WARN_ON_USE (strsep, "strsep is unportable - " + "use gnulib module strsep for portability"); +# endif +#endif + +#if @GNULIB_STRSTR@ +# if @REPLACE_STRSTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strstr rpl_strstr +# endif +_GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); +# else + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * strstr (const char *, const char *); } + extern "C++" { char * strstr (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strstr, + char *, (const char *haystack, const char *needle), + const char *, (const char *haystack, const char *needle)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (strstr, char *, + (char *haystack, const char *needle) throw ()); +_GL_CXXALIASWARN1 (strstr, const char *, + (const char *haystack, const char *needle) throw ()); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (strstr); +# endif +#elif defined GNULIB_POSIXCHECK +/* strstr() does not work with multibyte strings if the locale encoding is + different from UTF-8: + POSIX says that it operates on "strings", and "string" in POSIX is defined + as a sequence of bytes, not of characters. */ +# undef strstr +/* Assume strstr is always declared. */ +_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " + "work correctly on character strings in most " + "multibyte locales - " + "use mbsstr if you care about internationalization, " + "or use strstr if you care about speed"); +#endif + +/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive + comparison. */ +#if @GNULIB_STRCASESTR@ +# if @REPLACE_STRCASESTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strcasestr rpl_strcasestr +# endif +_GL_FUNCDECL_RPL (strcasestr, char *, + (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strcasestr, char *, + (const char *haystack, const char *needle)); +# else +# if ! @HAVE_STRCASESTR@ +_GL_FUNCDECL_SYS (strcasestr, char *, + (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { const char * strcasestr (const char *, const char *); } + extern "C++" { char * strcasestr (char *, const char *); } */ +_GL_CXXALIAS_SYS_CAST2 (strcasestr, + char *, (const char *haystack, const char *needle), + const char *, (const char *haystack, const char *needle)); +# endif +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ + || defined __clang__) +_GL_CXXALIASWARN1 (strcasestr, char *, + (char *haystack, const char *needle) throw ()); +_GL_CXXALIASWARN1 (strcasestr, const char *, + (const char *haystack, const char *needle) throw ()); +# else +_GL_CXXALIASWARN (strcasestr); +# endif +#elif defined GNULIB_POSIXCHECK +/* strcasestr() does not work with multibyte strings: + It is a glibc extension, and glibc implements it only for unibyte + locales. */ +# undef strcasestr +# if HAVE_RAW_DECL_STRCASESTR +_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " + "strings in multibyte locales - " + "use mbscasestr if you care about " + "internationalization, or use c-strcasestr if you want " + "a locale independent function"); +# endif +#endif + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + This is a variant of strtok() that is multithread-safe. + + For the POSIX documentation for this function, see: + https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strsep(). */ +#if @GNULIB_STRTOK_R@ +# if @REPLACE_STRTOK_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtok_r +# define strtok_r rpl_strtok_r +# endif +_GL_FUNCDECL_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# else +# if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK +# undef strtok_r +# endif +# if ! @HAVE_DECL_STRTOK_R@ +_GL_FUNCDECL_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# endif +_GL_CXXALIASWARN (strtok_r); +# if defined GNULIB_POSIXCHECK +_GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " + "strings in multibyte locales - " + "use mbstok_r if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtok_r +# if HAVE_RAW_DECL_STRTOK_R +_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " + "use gnulib module strtok_r for portability"); +# endif +#endif + + +/* The following functions are not specified by POSIX. They are gnulib + extensions. */ + +#if @GNULIB_MBSLEN@ +/* Return the number of multibyte characters in the character string STRING. + This considers multibyte characters, unlike strlen, which counts bytes. */ +# ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ +# undef mbslen +# endif +# if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbslen rpl_mbslen +# endif +_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); +# else +_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); +# endif +_GL_CXXALIASWARN (mbslen); +#endif + +#if @GNULIB_MBSNLEN@ +/* Return the number of multibyte characters in the character string starting + at STRING and ending at STRING + LEN. */ +_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1)); +#endif + +#if @GNULIB_MBSCHR@ +/* Locate the first single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbschr); +#endif + +#if @GNULIB_MBSRCHR@ +/* Locate the last single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strrchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux || defined __INTERIX +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbsrchr rpl_mbsrchr /* avoid collision with system function */ +# endif +_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbsrchr); +#endif + +#if @GNULIB_MBSSTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. + Unlike strstr(), this function works correctly in multibyte locales with + encodings different from UTF-8. */ +_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASECMP@ +/* Compare the character strings S1 and S2, ignoring case, returning less than, + equal to or greater than zero if S1 is lexicographically less than, equal to + or greater than S2. + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! + Unlike strcasecmp(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSNCASECMP@ +/* Compare the initial segment of the character string S1 consisting of at most + N characters with the initial segment of the character string S2 consisting + of at most N characters, ignoring case, returning less than, equal to or + greater than zero if the initial segment of S1 is lexicographically less + than, equal to or greater than the initial segment of S2. + Note: This function may, in multibyte locales, return 0 for initial segments + of different lengths! + Unlike strncasecmp(), this function works correctly in multibyte locales. + But beware that N is not a byte count but a character count! */ +_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPCASECMP@ +/* Compare the initial segment of the character string STRING consisting of + at most mbslen (PREFIX) characters with the character string PREFIX, + ignoring case. If the two match, return a pointer to the first byte + after this prefix in STRING. Otherwise, return NULL. + Note: This function may, in multibyte locales, return non-NULL if STRING + is of smaller length than PREFIX! + Unlike strncasecmp(), this function works correctly in multibyte + locales. */ +_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASESTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK, using case-insensitive comparison. + Note: This function may, in multibyte locales, return success even if + strlen (haystack) < strlen (needle) ! + Unlike strcasestr(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCSPN@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strcspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPBRK@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the pointer to it, or NULL if none + exists. + Unlike strpbrk(), this function works correctly in multibyte locales. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); +# else +_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); +# endif +_GL_CXXALIASWARN (mbspbrk); +#endif + +#if @GNULIB_MBSSPN@ +/* Find the first occurrence in the character string STRING of any character + not in the character string REJECT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSSEP@ +/* Search the next delimiter (multibyte character listed in the character + string DELIM) starting at the character string *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP to point + to the next multibyte character after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of mbstok_r() that supports empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbstok_r(). */ +_GL_EXTERN_C char * mbssep (char **stringp, const char *delim) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSTOK_R@ +/* Parse the character string STRING into tokens separated by characters in + the character string DELIM. + If STRING is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = mbstok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbssep(). */ +_GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, + char **save_ptr) + _GL_ARG_NONNULL ((2, 3)); +#endif + +/* Map any int, typically from errno, into an error message. */ +#if @GNULIB_STRERROR@ +# if @REPLACE_STRERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerror +# define strerror rpl_strerror +# endif +_GL_FUNCDECL_RPL (strerror, char *, (int)); +_GL_CXXALIAS_RPL (strerror, char *, (int)); +# else +_GL_CXXALIAS_SYS (strerror, char *, (int)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (strerror); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strerror +/* Assume strerror is always declared. */ +_GL_WARN_ON_USE (strerror, "strerror is unportable - " + "use gnulib module strerror to guarantee non-NULL result"); +#endif + +/* Map any int, typically from errno, into an error message. Multithread-safe. + Uses the POSIX declaration, not the glibc declaration. */ +#if @GNULIB_STRERROR_R@ +# if @REPLACE_STRERROR_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerror_r +# define strerror_r rpl_strerror_r +# endif +_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); +# else +# if !@HAVE_DECL_STRERROR_R@ +_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); +# endif +# if @HAVE_DECL_STRERROR_R@ +_GL_CXXALIASWARN (strerror_r); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strerror_r +# if HAVE_RAW_DECL_STRERROR_R +_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " + "use gnulib module strerror_r-posix for portability"); +# endif +#endif + +/* Return the name of the system error code ERRNUM. */ +#if @GNULIB_STRERRORNAME_NP@ +# if @REPLACE_STRERRORNAME_NP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerrorname_np +# define strerrorname_np rpl_strerrorname_np +# endif +_GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); +_GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); +# else +# if !@HAVE_STRERRORNAME_NP@ +_GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); +# endif +_GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); +# endif +_GL_CXXALIASWARN (strerrorname_np); +#elif defined GNULIB_POSIXCHECK +# undef strerrorname_np +# if HAVE_RAW_DECL_STRERRORNAME_NP +_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " + "use gnulib module strerrorname_np for portability"); +# endif +#endif + +/* Return an abbreviation string for the signal number SIG. */ +#if @GNULIB_SIGABBREV_NP@ +# if ! @HAVE_SIGABBREV_NP@ +_GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); +# endif +_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); +_GL_CXXALIASWARN (sigabbrev_np); +#elif defined GNULIB_POSIXCHECK +# undef sigabbrev_np +# if HAVE_RAW_DECL_SIGABBREV_NP +_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " + "use gnulib module sigabbrev_np for portability"); +# endif +#endif + +/* Return an English description string for the signal number SIG. */ +#if @GNULIB_SIGDESCR_NP@ +# if ! @HAVE_SIGDESCR_NP@ +_GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); +# endif +_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); +_GL_CXXALIASWARN (sigdescr_np); +#elif defined GNULIB_POSIXCHECK +# undef sigdescr_np +# if HAVE_RAW_DECL_SIGDESCR_NP +_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " + "use gnulib module sigdescr_np for portability"); +# endif +#endif + +#if @GNULIB_STRSIGNAL@ +# if @REPLACE_STRSIGNAL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strsignal rpl_strsignal +# endif +_GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); +_GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); +# else +# if ! @HAVE_DECL_STRSIGNAL@ +_GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); +# endif +/* Need to cast, because on Cygwin 1.5.x systems, the return type is + 'const char *'. */ +_GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); +# endif +_GL_CXXALIASWARN (strsignal); +#elif defined GNULIB_POSIXCHECK +# undef strsignal +# if HAVE_RAW_DECL_STRSIGNAL +_GL_WARN_ON_USE (strsignal, "strsignal is unportable - " + "use gnulib module strsignal for portability"); +# endif +#endif + +#if @GNULIB_STRVERSCMP@ +# if !@HAVE_STRVERSCMP@ +_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) + _GL_ATTRIBUTE_PURE + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); +_GL_CXXALIASWARN (strverscmp); +#elif defined GNULIB_POSIXCHECK +# undef strverscmp +# if HAVE_RAW_DECL_STRVERSCMP +_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " + "use gnulib module strverscmp for portability"); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_STRING_H */ +#endif /* _@GUARD_PREFIX@_STRING_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/sys-limits.h b/3rdPartner/libiconv/srclib/sys-limits.h new file mode 100644 index 0000000..d154f0b --- /dev/null +++ b/3rdPartner/libiconv/srclib/sys-limits.h @@ -0,0 +1,42 @@ +/* System call limits + + Copyright 2018-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _GL_SYS_LIMITS_H +#define _GL_SYS_LIMITS_H + +#include + +/* Maximum number of bytes to read or write in a single system call. + This can be useful for system calls like sendfile on GNU/Linux, + which do not handle more than MAX_RW_COUNT bytes correctly. + The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20, + where the 20 comes from the Hexagon port with 1 MiB pages; use that + as an approximation, as the exact value may not be available to us. + + Using this also works around a serious Linux bug before 2.6.16; see + . + + Using this also works around a Tru64 5.1 bug, where attempting + to read INT_MAX bytes fails with errno == EINVAL. See + . + + Using this is likely to work around similar bugs in other operating + systems. */ + +enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 }; + +#endif diff --git a/3rdPartner/libiconv/srclib/sys_stat.in.h b/3rdPartner/libiconv/srclib/sys_stat.in.h new file mode 100644 index 0000000..28ddd42 --- /dev/null +++ b/3rdPartner/libiconv/srclib/sys_stat.in.h @@ -0,0 +1,928 @@ +/* Provide a more complete sys/stat.h header file. + Copyright (C) 2005-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ + +/* This file is supposed to be used on platforms where is + incomplete. It is intended to provide definitions and prototypes + needed by an application. Start with what the system provides. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined __need_system_sys_stat_h +/* Special invocation convention. */ + +#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_SYS_STAT_H + +/* Get nlink_t. + May also define off_t to a 64-bit type on native Windows. */ +#include + +/* Get struct timespec. */ +#include + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ + +#ifndef _@GUARD_PREFIX@_SYS_STAT_H +#define _@GUARD_PREFIX@_SYS_STAT_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Before doing "#define mknod rpl_mknod" below, we need to include all + headers that may declare mknod(). OS/2 kLIBC declares mknod() in + , not in . */ +#ifdef __KLIBC__ +# include +#endif + +/* Before doing "#define mkdir rpl_mkdir" below, we need to include all + headers that may declare mkdir(). Native Windows platforms declare mkdir + in and/or , not in . */ +#if defined _WIN32 && ! defined __CYGWIN__ +# include /* mingw32, mingw64 */ +# include /* mingw64, MSVC 9 */ +#endif + +/* Native Windows platforms declare umask() in . */ +#if 0 && (defined _WIN32 && ! defined __CYGWIN__) +# include +#endif + +/* Large File Support on native Windows. */ +#if @WINDOWS_64_BIT_ST_SIZE@ +# define stat _stati64 +#endif + +/* Optionally, override 'struct stat' on native Windows. */ +#if @GNULIB_OVERRIDES_STRUCT_STAT@ + +# undef stat +# if @GNULIB_STAT@ +# define stat rpl_stat +# else + /* Provoke a clear link error if stat() is used as a function and + module 'stat' is not in use. */ +# define stat stat_used_without_requesting_gnulib_module_stat +# endif + +# if !GNULIB_defined_struct_stat +struct stat +{ + dev_t st_dev; + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; +# if 0 + uid_t st_uid; +# else /* uid_t is not defined by default on native Windows. */ + short st_uid; +# endif +# if 0 + gid_t st_gid; +# else /* gid_t is not defined by default on native Windows. */ + short st_gid; +# endif + dev_t st_rdev; + off_t st_size; +# if 0 + blksize_t st_blksize; + blkcnt_t st_blocks; +# endif + +# if @WINDOWS_STAT_TIMESPEC@ + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; +# else + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +# endif +}; +# if @WINDOWS_STAT_TIMESPEC@ +# define st_atime st_atim.tv_sec +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec + /* Indicator, for gnulib internal purposes. */ +# define _GL_WINDOWS_STAT_TIMESPEC 1 +# endif +# define GNULIB_defined_struct_stat 1 +# endif + +/* Other possible values of st_mode. */ +# if 0 +# define _S_IFBLK 0x6000 +# endif +# if 0 +# define _S_IFLNK 0xA000 +# endif +# if 0 +# define _S_IFSOCK 0xC000 +# endif + +#endif + +#ifndef S_IFIFO +# ifdef _S_IFIFO +# define S_IFIFO _S_IFIFO +# endif +#endif + +#ifndef S_IFMT +# define S_IFMT 0170000 +#endif + +#if STAT_MACROS_BROKEN +# undef S_ISBLK +# undef S_ISCHR +# undef S_ISDIR +# undef S_ISFIFO +# undef S_ISLNK +# undef S_ISNAM +# undef S_ISMPB +# undef S_ISMPC +# undef S_ISNWK +# undef S_ISREG +# undef S_ISSOCK +#endif + +#ifndef S_ISBLK +# ifdef S_IFBLK +# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +# else +# define S_ISBLK(m) 0 +# endif +#endif + +#ifndef S_ISCHR +# ifdef S_IFCHR +# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +# else +# define S_ISCHR(m) 0 +# endif +#endif + +#ifndef S_ISDIR +# ifdef S_IFDIR +# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +# else +# define S_ISDIR(m) 0 +# endif +#endif + +#ifndef S_ISDOOR /* Solaris 2.5 and up */ +# define S_ISDOOR(m) 0 +#endif + +#ifndef S_ISFIFO +# ifdef S_IFIFO +# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +# else +# define S_ISFIFO(m) 0 +# endif +#endif + +#ifndef S_ISLNK +# ifdef S_IFLNK +# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +# else +# define S_ISLNK(m) 0 +# endif +#endif + +#ifndef S_ISMPB /* V7 */ +# ifdef S_IFMPB +# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) +# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) +# else +# define S_ISMPB(m) 0 +# define S_ISMPC(m) 0 +# endif +#endif + +#ifndef S_ISMPX /* AIX */ +# define S_ISMPX(m) 0 +#endif + +#ifndef S_ISNAM /* Xenix */ +# ifdef S_IFNAM +# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) +# else +# define S_ISNAM(m) 0 +# endif +#endif + +#ifndef S_ISNWK /* HP/UX */ +# ifdef S_IFNWK +# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) +# else +# define S_ISNWK(m) 0 +# endif +#endif + +#ifndef S_ISPORT /* Solaris 10 and up */ +# define S_ISPORT(m) 0 +#endif + +#ifndef S_ISREG +# ifdef S_IFREG +# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +# else +# define S_ISREG(m) 0 +# endif +#endif + +#ifndef S_ISSOCK +# ifdef S_IFSOCK +# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +# else +# define S_ISSOCK(m) 0 +# endif +#endif + + +#ifndef S_TYPEISMQ +# define S_TYPEISMQ(p) 0 +#endif + +#ifndef S_TYPEISTMO +# define S_TYPEISTMO(p) 0 +#endif + + +#ifndef S_TYPEISSEM +# ifdef S_INSEM +# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) +# else +# define S_TYPEISSEM(p) 0 +# endif +#endif + +#ifndef S_TYPEISSHM +# ifdef S_INSHD +# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) +# else +# define S_TYPEISSHM(p) 0 +# endif +#endif + +/* high performance ("contiguous data") */ +#ifndef S_ISCTG +# define S_ISCTG(p) 0 +#endif + +/* Cray DMF (data migration facility): off line, with data */ +#ifndef S_ISOFD +# define S_ISOFD(p) 0 +#endif + +/* Cray DMF (data migration facility): off line, with no data */ +#ifndef S_ISOFL +# define S_ISOFL(p) 0 +#endif + +/* 4.4BSD whiteout */ +#ifndef S_ISWHT +# define S_ISWHT(m) 0 +#endif + +/* If any of the following are undefined, + define them to their de facto standard values. */ +#if !S_ISUID +# define S_ISUID 04000 +#endif +#if !S_ISGID +# define S_ISGID 02000 +#endif + +/* S_ISVTX is a common extension to POSIX. */ +#ifndef S_ISVTX +# define S_ISVTX 01000 +#endif + +#if !S_IRUSR && S_IREAD +# define S_IRUSR S_IREAD +#endif +#if !S_IRUSR +# define S_IRUSR 00400 +#endif +#if !S_IRGRP +# define S_IRGRP (S_IRUSR >> 3) +#endif +#if !S_IROTH +# define S_IROTH (S_IRUSR >> 6) +#endif + +#if !S_IWUSR && S_IWRITE +# define S_IWUSR S_IWRITE +#endif +#if !S_IWUSR +# define S_IWUSR 00200 +#endif +#if !S_IWGRP +# define S_IWGRP (S_IWUSR >> 3) +#endif +#if !S_IWOTH +# define S_IWOTH (S_IWUSR >> 6) +#endif + +#if !S_IXUSR && S_IEXEC +# define S_IXUSR S_IEXEC +#endif +#if !S_IXUSR +# define S_IXUSR 00100 +#endif +#if !S_IXGRP +# define S_IXGRP (S_IXUSR >> 3) +#endif +#if !S_IXOTH +# define S_IXOTH (S_IXUSR >> 6) +#endif + +#if !S_IRWXU +# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) +#endif +#if !S_IRWXG +# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) +#endif +#if !S_IRWXO +# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) +#endif + +/* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are + not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ +#if !S_IXUGO +# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) +#endif +#ifndef S_IRWXUGO +# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) +#endif + +/* Macros for futimens and utimensat. */ +#ifndef UTIME_NOW +# define UTIME_NOW (-1) +# define UTIME_OMIT (-2) +#endif + + +#if @GNULIB_MDA_CHMOD@ +/* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::chmod always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef chmod +# define chmod _chmod +# endif +/* Need to cast, because in mingw the last argument is 'int mode'. */ +_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); +# else +_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); +# endif +_GL_CXXALIASWARN (chmod); +#endif + + +#if @GNULIB_FCHMODAT@ +# if @REPLACE_FCHMODAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fchmodat +# define fchmodat rpl_fchmodat +# endif +_GL_FUNCDECL_RPL (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag)); +# else +# if !@HAVE_FCHMODAT@ +_GL_FUNCDECL_SYS (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag)); +# endif +_GL_CXXALIASWARN (fchmodat); +#elif defined GNULIB_POSIXCHECK +# undef fchmodat +# if HAVE_RAW_DECL_FCHMODAT +_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_FSTAT@ +# if @REPLACE_FSTAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fstat +# define fstat rpl_fstat +# endif +_GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); +# else +_GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (fstat); +# endif +#elif @GNULIB_OVERRIDES_STRUCT_STAT@ +# undef fstat +# define fstat fstat_used_without_requesting_gnulib_module_fstat +#elif @WINDOWS_64_BIT_ST_SIZE@ +/* Above, we define stat to _stati64. */ +# define fstat _fstati64 +#elif defined GNULIB_POSIXCHECK +# undef fstat +# if HAVE_RAW_DECL_FSTAT +_GL_WARN_ON_USE (fstat, "fstat has portability problems - " + "use gnulib module fstat for portability"); +# endif +#endif + + +#if @GNULIB_FSTATAT@ +# if @REPLACE_FSTATAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fstatat +# define fstatat rpl_fstatat +# endif +_GL_FUNCDECL_RPL (fstatat, int, + (int fd, char const *restrict name, struct stat *restrict st, + int flags) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (fstatat, int, + (int fd, char const *restrict name, struct stat *restrict st, + int flags)); +# else +# if !@HAVE_FSTATAT@ +_GL_FUNCDECL_SYS (fstatat, int, + (int fd, char const *restrict name, struct stat *restrict st, + int flags) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (fstatat, int, + (int fd, char const *restrict name, struct stat *restrict st, + int flags)); +# endif +_GL_CXXALIASWARN (fstatat); +#elif @GNULIB_OVERRIDES_STRUCT_STAT@ +# undef fstatat +# define fstatat fstatat_used_without_requesting_gnulib_module_fstatat +#elif defined GNULIB_POSIXCHECK +# undef fstatat +# if HAVE_RAW_DECL_FSTATAT +_GL_WARN_ON_USE (fstatat, "fstatat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_FUTIMENS@ +/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens + implementation relies on futimesat, which on Solaris 10 makes an invocation + to futimens that is meant to invoke the libc's futimens(), not gnulib's + futimens(). */ +# if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef futimens +# define futimens rpl_futimens +# endif +_GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); +_GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); +# else +# if !@HAVE_FUTIMENS@ +_GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); +# endif +_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); +# endif +# if @HAVE_FUTIMENS@ +_GL_CXXALIASWARN (futimens); +# endif +#elif defined GNULIB_POSIXCHECK +# undef futimens +# if HAVE_RAW_DECL_FUTIMENS +_GL_WARN_ON_USE (futimens, "futimens is not portable - " + "use gnulib module futimens for portability"); +# endif +#endif + + +#if @GNULIB_GETUMASK@ +# if !@HAVE_GETUMASK@ +_GL_FUNCDECL_SYS (getumask, mode_t, (void)); +# endif +_GL_CXXALIAS_SYS (getumask, mode_t, (void)); +# if @HAVE_GETUMASK@ +_GL_CXXALIASWARN (getumask); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getumask +# if HAVE_RAW_DECL_GETUMASK +_GL_WARN_ON_USE (getumask, "getumask is not portable - " + "use gnulib module getumask for portability"); +# endif +#endif + + +#if @GNULIB_LCHMOD@ +/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME + denotes a symbolic link. */ +# if !@HAVE_LCHMOD@ || defined __hpux +_GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); +_GL_CXXALIASWARN (lchmod); +#elif defined GNULIB_POSIXCHECK +# undef lchmod +# if HAVE_RAW_DECL_LCHMOD +_GL_WARN_ON_USE (lchmod, "lchmod is unportable - " + "use gnulib module lchmod for portability"); +# endif +#endif + + +#if @GNULIB_LSTAT@ +# if ! @HAVE_LSTAT@ +/* mingw does not support symlinks, therefore it does not have lstat. But + without links, stat does just fine. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define lstat stat +# endif +_GL_CXXALIAS_RPL_1 (lstat, stat, int, + (const char *restrict name, struct stat *restrict buf)); +# elif @REPLACE_LSTAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lstat +# define lstat rpl_lstat +# endif +_GL_FUNCDECL_RPL (lstat, int, + (const char *restrict name, struct stat *restrict buf) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (lstat, int, + (const char *restrict name, struct stat *restrict buf)); +# else +_GL_CXXALIAS_SYS (lstat, int, + (const char *restrict name, struct stat *restrict buf)); +# endif +# if @HAVE_LSTAT@ +_GL_CXXALIASWARN (lstat); +# endif +#elif @GNULIB_OVERRIDES_STRUCT_STAT@ +# undef lstat +# define lstat lstat_used_without_requesting_gnulib_module_lstat +#elif defined GNULIB_POSIXCHECK +# undef lstat +# if HAVE_RAW_DECL_LSTAT +_GL_WARN_ON_USE (lstat, "lstat is unportable - " + "use gnulib module lstat for portability"); +# endif +#endif + + +#if @GNULIB_MKDIR@ +# if @REPLACE_MKDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkdir +# define mkdir rpl_mkdir +# endif +_GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); +# elif defined _WIN32 && !defined __CYGWIN__ +/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. + Additionally, it declares _mkdir (and depending on compile flags, an + alias mkdir), only in the nonstandard includes and , + which are included above. */ +# if !GNULIB_defined_rpl_mkdir +static int +rpl_mkdir (char const *name, mode_t mode) +{ + return _mkdir (name); +} +# define GNULIB_defined_rpl_mkdir 1 +# endif +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkdir +# define mkdir rpl_mkdir +# endif +_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); +# else +_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); +# endif +_GL_CXXALIASWARN (mkdir); +#elif defined GNULIB_POSIXCHECK +# undef mkdir +# if HAVE_RAW_DECL_MKDIR +_GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " + "use gnulib module mkdir for portability"); +# endif +#elif @GNULIB_MDA_MKDIR@ +/* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::mkdir always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !GNULIB_defined_rpl_mkdir +static int +rpl_mkdir (char const *name, mode_t mode) +{ + return _mkdir (name); +} +# define GNULIB_defined_rpl_mkdir 1 +# endif +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkdir +# define mkdir rpl_mkdir +# endif +_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); +# else +_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); +# endif +_GL_CXXALIASWARN (mkdir); +#endif + + +#if @GNULIB_MKDIRAT@ +# if !@HAVE_MKDIRAT@ +_GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); +_GL_CXXALIASWARN (mkdirat); +#elif defined GNULIB_POSIXCHECK +# undef mkdirat +# if HAVE_RAW_DECL_MKDIRAT +_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_MKFIFO@ +# if @REPLACE_MKFIFO@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkfifo +# define mkfifo rpl_mkfifo +# endif +_GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); +# else +# if !@HAVE_MKFIFO@ +_GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); +# endif +_GL_CXXALIASWARN (mkfifo); +#elif defined GNULIB_POSIXCHECK +# undef mkfifo +# if HAVE_RAW_DECL_MKFIFO +_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " + "use gnulib module mkfifo for portability"); +# endif +#endif + + +#if @GNULIB_MKFIFOAT@ +# if @REPLACE_MKFIFOAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkfifoat +# define mkfifoat rpl_mkfifoat +# endif +_GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); +# else +# if !@HAVE_MKFIFOAT@ +_GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); +# endif +_GL_CXXALIASWARN (mkfifoat); +#elif defined GNULIB_POSIXCHECK +# undef mkfifoat +# if HAVE_RAW_DECL_MKFIFOAT +_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " + "use gnulib module mkfifoat for portability"); +# endif +#endif + + +#if @GNULIB_MKNOD@ +# if @REPLACE_MKNOD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mknod +# define mknod rpl_mknod +# endif +_GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); +# else +# if !@HAVE_MKNOD@ +_GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ +_GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); +# endif +_GL_CXXALIASWARN (mknod); +#elif defined GNULIB_POSIXCHECK +# undef mknod +# if HAVE_RAW_DECL_MKNOD +_GL_WARN_ON_USE (mknod, "mknod is not portable - " + "use gnulib module mknod for portability"); +# endif +#endif + + +#if @GNULIB_MKNODAT@ +# if @REPLACE_MKNODAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mknodat +# define mknodat rpl_mknodat +# endif +_GL_FUNCDECL_RPL (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev)); +# else +# if !@HAVE_MKNODAT@ +_GL_FUNCDECL_SYS (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev)); +# endif +_GL_CXXALIASWARN (mknodat); +#elif defined GNULIB_POSIXCHECK +# undef mknodat +# if HAVE_RAW_DECL_MKNODAT +_GL_WARN_ON_USE (mknodat, "mknodat is not portable - " + "use gnulib module mkfifoat for portability"); +# endif +#endif + + +#if @GNULIB_STAT@ +# if @REPLACE_STAT@ +# if !@GNULIB_OVERRIDES_STRUCT_STAT@ + /* We can't use the object-like #define stat rpl_stat, because of + struct stat. This means that rpl_stat will not be used if the user + does (stat)(a,b). Oh well. */ +# if defined _AIX && defined stat && defined _LARGE_FILES + /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, + so we have to replace stat64() instead of stat(). */ +# undef stat64 +# define stat64(name, st) rpl_stat (name, st) +# elif @WINDOWS_64_BIT_ST_SIZE@ + /* Above, we define stat to _stati64. */ +# if defined __MINGW32__ && defined _stati64 +# ifndef _USE_32BIT_TIME_T + /* The system headers define _stati64 to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# elif defined _MSC_VER && defined _stati64 +# ifdef _USE_32BIT_TIME_T + /* The system headers define _stati64 to _stat32i64. */ +# undef _stat32i64 +# define _stat32i64(name, st) rpl_stat (name, st) +# else + /* The system headers define _stati64 to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# else +# undef _stati64 +# define _stati64(name, st) rpl_stat (name, st) +# endif +# elif defined __MINGW32__ && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32i64. */ +# undef _stat32i64 +# define _stat32i64(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64. */ +# undef _stat64 +# define _stat64(name, st) rpl_stat (name, st) +# endif +# elif defined _MSC_VER && defined stat +# ifdef _USE_32BIT_TIME_T + /* The system headers define stat to _stat32. */ +# undef _stat32 +# define _stat32(name, st) rpl_stat (name, st) +# else + /* The system headers define stat to _stat64i32. */ +# undef _stat64i32 +# define _stat64i32(name, st) rpl_stat (name, st) +# endif +# else /* !(_AIX || __MINGW32__ || _MSC_VER) */ +# undef stat +# define stat(name, st) rpl_stat (name, st) +# endif /* !_LARGE_FILES */ +# endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */ +_GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) + _GL_ARG_NONNULL ((1, 2)); +# endif +#elif @GNULIB_OVERRIDES_STRUCT_STAT@ +/* see above: + #define stat stat_used_without_requesting_gnulib_module_stat + */ +#elif defined GNULIB_POSIXCHECK +# undef stat +# if HAVE_RAW_DECL_STAT +_GL_WARN_ON_USE (stat, "stat is unportable - " + "use gnulib module stat for portability"); +# endif +#endif + + +#if @GNULIB_MDA_UMASK@ +/* On native Windows, map 'umask' to '_umask', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::umask always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef umask +# define umask _umask +# endif +/* Need to cast, because in mingw the last argument is 'int mode'. */ +_GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); +# else +_GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); +# endif +_GL_CXXALIASWARN (umask); +#endif + + +#if @GNULIB_UTIMENSAT@ +/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat + implementation relies on futimesat, which on Solaris 10 makes an invocation + to utimensat that is meant to invoke the libc's utimensat(), not gnulib's + utimensat(). */ +# if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef utimensat +# define utimensat rpl_utimensat +# endif +_GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag)); +# else +# if !@HAVE_UTIMENSAT@ +_GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag)); +# endif +# if @HAVE_UTIMENSAT@ +_GL_CXXALIASWARN (utimensat); +# endif +#elif defined GNULIB_POSIXCHECK +# undef utimensat +# if HAVE_RAW_DECL_UTIMENSAT +_GL_WARN_ON_USE (utimensat, "utimensat is not portable - " + "use gnulib module utimensat for portability"); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_SYS_STAT_H */ +#endif /* _@GUARD_PREFIX@_SYS_STAT_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/sys_types.in.h b/3rdPartner/libiconv/srclib/sys_types.in.h new file mode 100644 index 0000000..698e88d --- /dev/null +++ b/3rdPartner/libiconv/srclib/sys_types.in.h @@ -0,0 +1,106 @@ +/* Provide a more complete sys/types.h. + + Copyright (C) 2011-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if defined _WIN32 && !defined __CYGWIN__ \ + && (defined __need_off_t || defined __need___off64_t \ + || defined __need_ssize_t || defined __need_time_t) + +/* Special invocation convention inside mingw header files. */ + +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H + +/* The include_next requires a split double-inclusion guard. */ +# define _GL_INCLUDING_SYS_TYPES_H +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ +# undef _GL_INCLUDING_SYS_TYPES_H + +#ifndef _@GUARD_PREFIX@_SYS_TYPES_H +#define _@GUARD_PREFIX@_SYS_TYPES_H + +/* Override off_t if Large File Support is requested on native Windows. */ +#if @WINDOWS_64_BIT_OFF_T@ +/* Same as int64_t in . */ +# if defined _MSC_VER +# define off_t __int64 +# else +# define off_t long long int +# endif +/* Indicator, for gnulib internal purposes. */ +# define _GL_WINDOWS_64_BIT_OFF_T 1 +#endif + +/* Override dev_t and ino_t if distinguishable inodes support is requested + on native Windows. */ +#if @WINDOWS_STAT_INODES@ + +# if @WINDOWS_STAT_INODES@ == 2 +/* Experimental, not useful in Windows 10. */ + +/* Define dev_t to a 64-bit type. */ +# if !defined GNULIB_defined_dev_t +typedef unsigned long long int rpl_dev_t; +# undef dev_t +# define dev_t rpl_dev_t +# define GNULIB_defined_dev_t 1 +# endif + +/* Define ino_t to a 128-bit type. */ +# if !defined GNULIB_defined_ino_t +/* MSVC does not have a 128-bit integer type. + GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ +typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; +# undef ino_t +# define ino_t rpl_ino_t +# define GNULIB_defined_ino_t 1 +# endif + +# else /* @WINDOWS_STAT_INODES@ == 1 */ + +/* Define ino_t to a 64-bit type. */ +# if !defined GNULIB_defined_ino_t +typedef unsigned long long int rpl_ino_t; +# undef ino_t +# define ino_t rpl_ino_t +# define GNULIB_defined_ino_t 1 +# endif + +# endif + +/* Indicator, for gnulib internal purposes. */ +# define _GL_WINDOWS_STAT_INODES @WINDOWS_STAT_INODES@ + +#endif + +/* MSVC 9 defines size_t in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ +# include +#endif + +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* __need_XXX */ diff --git a/3rdPartner/libiconv/srclib/time.in.h b/3rdPartner/libiconv/srclib/time.in.h new file mode 100644 index 0000000..6d4c771 --- /dev/null +++ b/3rdPartner/libiconv/srclib/time.in.h @@ -0,0 +1,452 @@ +/* A more-standard . + + Copyright (C) 2007-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +/* Don't get in the way of glibc when it includes time.h merely to + declare a few standard symbols, rather than to declare all the + symbols. (However, skip this for MinGW as it treats __need_time_t + incompatibly.) Also, Solaris 8 eventually includes itself + recursively; if that is happening, just include the system + without adding our own declarations. */ +#if (((defined __need_time_t || defined __need_clock_t \ + || defined __need_timespec) \ + && !defined __MINGW32__) \ + || defined _@GUARD_PREFIX@_TIME_H) + +# @INCLUDE_NEXT@ @NEXT_TIME_H@ + +#else + +# define _@GUARD_PREFIX@_TIME_H + +/* mingw's provides the functions asctime_r, ctime_r, gmtime_r, + localtime_r only if or has been included before. */ +# if defined __MINGW32__ +# include +# endif + +# @INCLUDE_NEXT@ @NEXT_TIME_H@ + +/* NetBSD 5.0 mis-defines NULL. */ +# include + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Some systems don't define struct timespec (e.g., AIX 4.1). + Or they define it with the wrong member names or define it in + (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, + but the pthreads-win32 library defines it in . */ +# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ +# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +# include +# elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +# include +# elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +# include +# else + +# ifdef __cplusplus +extern "C" { +# endif + +# if !GNULIB_defined_struct_timespec +# undef timespec +# define timespec rpl_timespec +struct timespec +{ + time_t tv_sec; + long int tv_nsec; +}; +# define GNULIB_defined_struct_timespec 1 +# endif + +# ifdef __cplusplus +} +# endif + +# endif +# endif + +# if !GNULIB_defined_struct_time_t_must_be_integral +/* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html + requires time_t to be an integer type, even though C99 permits floating + point. We don't know of any implementation that uses floating + point, and it is much easier to write code that doesn't have to + worry about that corner case, so we force the issue. */ +struct __time_t_must_be_integral { + unsigned int __floating_time_t_unsupported : (time_t) 1; +}; +# define GNULIB_defined_struct_time_t_must_be_integral 1 +# endif + +/* Define TIME_UTC, a positive integer constant used for timespec_get(). */ +# if ! @TIME_H_DEFINES_TIME_UTC@ +# if !GNULIB_defined_TIME_UTC +# define TIME_UTC 1 +# define GNULIB_defined_TIME_UTC 1 +# endif +# endif + +/* Set *TS to the current time, and return BASE. + Upon failure, return 0. */ +# if @GNULIB_TIMESPEC_GET@ +# if ! @HAVE_TIMESPEC_GET@ +_GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); +_GL_CXXALIASWARN (timespec_get); +# endif + +/* Set *TS to the current time resolution, and return BASE. + Upon failure, return 0. */ +# if @GNULIB_TIMESPEC_GETRES@ +# if ! @HAVE_TIMESPEC_GETRES@ +_GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base)); +_GL_CXXALIASWARN (timespec_getres); +# endif + +/* Sleep for at least RQTP seconds unless interrupted, If interrupted, + return -1 and store the remaining time into RMTP. See + . */ +# if @GNULIB_NANOSLEEP@ +# if @REPLACE_NANOSLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define nanosleep rpl_nanosleep +# endif +_GL_FUNCDECL_RPL (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp)); +# else +# if ! @HAVE_NANOSLEEP@ +_GL_FUNCDECL_SYS (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp)); +# endif +_GL_CXXALIASWARN (nanosleep); +# endif + +/* Initialize time conversion information. */ +# if @GNULIB_TZSET@ +# if @REPLACE_TZSET@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef tzset +# define tzset rpl_tzset +# endif +_GL_FUNCDECL_RPL (tzset, void, (void)); +_GL_CXXALIAS_RPL (tzset, void, (void)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef tzset +# define tzset _tzset +# endif +_GL_CXXALIAS_MDA (tzset, void, (void)); +# else +_GL_CXXALIAS_SYS (tzset, void, (void)); +# endif +_GL_CXXALIASWARN (tzset); +# elif @GNULIB_MDA_TZSET@ +/* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::tzset always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef tzset +# define tzset _tzset +# endif +_GL_CXXALIAS_MDA (tzset, void, (void)); +# else +_GL_CXXALIAS_SYS (tzset, void, (void)); +# endif +_GL_CXXALIASWARN (tzset); +# endif + +/* Return the 'time_t' representation of TP and normalize TP. */ +# if @GNULIB_MKTIME@ +# if @REPLACE_MKTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mktime rpl_mktime +# endif +_GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); +# else +_GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mktime); +# endif +# endif + +/* Convert TIMER to RESULT, assuming local time and UTC respectively. See + and + . */ +# if @GNULIB_TIME_R@ +# if @REPLACE_LOCALTIME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef localtime_r +# define localtime_r rpl_localtime_r +# endif +_GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# else +# if ! @HAVE_DECL_LOCALTIME_R@ +_GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# endif +# if @HAVE_DECL_LOCALTIME_R@ +_GL_CXXALIASWARN (localtime_r); +# endif +# if @REPLACE_LOCALTIME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gmtime_r +# define gmtime_r rpl_gmtime_r +# endif +_GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# else +# if ! @HAVE_DECL_LOCALTIME_R@ +_GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# endif +# if @HAVE_DECL_LOCALTIME_R@ +_GL_CXXALIASWARN (gmtime_r); +# endif +# endif + +/* Convert TIMER to RESULT, assuming local time and UTC respectively. See + and + . */ +# if @GNULIB_LOCALTIME@ || @REPLACE_LOCALTIME@ +# if @REPLACE_LOCALTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef localtime +# define localtime rpl_localtime +# endif +_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); +# else +_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (localtime); +# endif +# endif + +# if 0 || @REPLACE_GMTIME@ +# if @REPLACE_GMTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gmtime +# define gmtime rpl_gmtime +# endif +_GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); +# else +_GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); +# endif +_GL_CXXALIASWARN (gmtime); +# endif + +/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store + the resulting broken-down time into TM. See + . */ +# if @GNULIB_STRPTIME@ +# if ! @HAVE_STRPTIME@ +_GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, + char const *restrict __format, + struct tm *restrict __tm) + _GL_ARG_NONNULL ((1, 2, 3))); +# endif +_GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, + char const *restrict __format, + struct tm *restrict __tm)); +_GL_CXXALIASWARN (strptime); +# endif + +/* Convert *TP to a date and time string. See + . */ +# if @GNULIB_CTIME@ +# if @REPLACE_CTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define ctime rpl_ctime +# endif +_GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); +# else +_GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (ctime); +# endif +# endif + +/* Convert *TP to a date and time string. See + . */ +# if @GNULIB_STRFTIME@ +# if @REPLACE_STRFTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strftime rpl_strftime +# endif +_GL_FUNCDECL_RPL (strftime, size_t, + (char *restrict __buf, size_t __bufsize, + const char *restrict __fmt, const struct tm *restrict __tp) + _GL_ARG_NONNULL ((1, 3, 4))); +_GL_CXXALIAS_RPL (strftime, size_t, + (char *restrict __buf, size_t __bufsize, + const char *restrict __fmt, const struct tm *restrict __tp)); +# else +_GL_CXXALIAS_SYS (strftime, size_t, + (char *restrict __buf, size_t __bufsize, + const char *restrict __fmt, const struct tm *restrict __tp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (strftime); +# endif +# endif + +# if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ +/* Functions that use a first-class time zone data type, instead of + relying on an implicit global time zone. + Inspired by NetBSD. */ + +/* Represents a time zone. + (timezone_t) NULL stands for UTC. */ +typedef struct tm_zone *timezone_t; + +/* tzalloc (name) + Returns a time zone object for the given time zone NAME. This object + represents the time zone that other functions would use it the TZ + environment variable was set to NAME. + If NAME is NULL, the result represents the time zone that other functions + would use it the TZ environment variable was unset. + May return NULL if NAME is invalid (this is platform dependent) or + upon memory allocation failure. */ +_GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); +_GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); + +/* tzfree (tz) + Frees a time zone object. + The argument must have been returned by tzalloc(). */ +_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); +_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); + +/* localtime_rz (tz, &t, &result) + Converts an absolute time T to a broken-down time RESULT, assuming the + time zone TZ. + This function is like 'localtime_r', but relies on the argument TZ instead + of an implicit global time zone. */ +_GL_FUNCDECL_SYS (localtime_rz, struct tm *, + (timezone_t __tz, time_t const *restrict __timer, + struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_SYS (localtime_rz, struct tm *, + (timezone_t __tz, time_t const *restrict __timer, + struct tm *restrict __result)); + +/* mktime_z (tz, &tm) + Normalizes the broken-down time TM and converts it to an absolute time, + assuming the time zone TZ. Returns the absolute time. + This function is like 'mktime', but relies on the argument TZ instead + of an implicit global time zone. */ +_GL_FUNCDECL_SYS (mktime_z, time_t, + (timezone_t __tz, struct tm *restrict __tm) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_SYS (mktime_z, time_t, + (timezone_t __tz, struct tm *restrict __tm)); + +/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' + in the 'tm_zone' member of 'struct tm') are valid as long as + - the 'struct tm' argument is not destroyed or overwritten, + and + - the 'timezone_t' argument is not freed through tzfree(). */ + +# endif + +/* Convert TM to a time_t value, assuming UTC. */ +# if @GNULIB_TIMEGM@ +# if @REPLACE_TIMEGM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef timegm +# define timegm rpl_timegm +# endif +_GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); +# else +# if ! @HAVE_TIMEGM@ +_GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); +# endif +_GL_CXXALIASWARN (timegm); +# endif + +/* Encourage applications to avoid unsafe functions that can overrun + buffers when given outlandish struct tm values. Portable + applications should use strftime (or even sprintf) instead. */ +# if defined GNULIB_POSIXCHECK +# undef asctime +_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " + "better use strftime (or even sprintf) instead"); +# endif +# if defined GNULIB_POSIXCHECK +# undef asctime_r +_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " + "better use strftime (or even sprintf) instead"); +# endif +# if defined GNULIB_POSIXCHECK +# undef ctime +_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " + "better use strftime (or even sprintf) instead"); +# endif +# if defined GNULIB_POSIXCHECK +# undef ctime_r +_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " + "better use strftime (or even sprintf) instead"); +# endif + +#endif diff --git a/3rdPartner/libiconv/srclib/unictype/bitmap.h b/3rdPartner/libiconv/srclib/unictype/bitmap.h new file mode 100644 index 0000000..5bd4636 --- /dev/null +++ b/3rdPartner/libiconv/srclib/unictype/bitmap.h @@ -0,0 +1,48 @@ +/* Three-level bitmap lookup. + Copyright (C) 2000-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2000-2002. + + This file 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 file 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 program. If not, see . */ + +static inline int bitmap_lookup (const void *table, ucs4_t uc); + +/* These values are currently hardcoded into gen-uni-tables.c, function + output_predicate(). */ +#define header_0 16 +#define header_2 9 +#define header_3 127 +#define header_4 15 + +static inline int +bitmap_lookup (const void *table, ucs4_t uc) +{ + unsigned int index1 = uc >> header_0; + if (index1 < ((const int *) table)[0]) + { + int lookup1 = ((const int *) table)[1 + index1]; + if (lookup1 >= 0) + { + unsigned int index2 = (uc >> header_2) & header_3; + int lookup2 = ((const short *) table)[lookup1 + index2]; + if (lookup2 >= 0) + { + unsigned int index3 = (uc >> 5) & header_4; + unsigned int lookup3 = ((const unsigned int *) table)[lookup2 + index3]; + + return (lookup3 >> (uc & 0x1f)) & 1; + } + } + } + return 0; +} diff --git a/3rdPartner/libiconv/srclib/unistd.c b/3rdPartner/libiconv/srclib/unistd.c new file mode 100644 index 0000000..95978e6 --- /dev/null +++ b/3rdPartner/libiconv/srclib/unistd.c @@ -0,0 +1,22 @@ +/* Inline functions for . + + Copyright (C) 2012-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#include + +#define _GL_UNISTD_INLINE _GL_EXTERN_INLINE +#include "unistd.h" +typedef int dummy; diff --git a/3rdPartner/libiconv/srclib/unistd.in.h b/3rdPartner/libiconv/srclib/unistd.in.h new file mode 100644 index 0000000..57df09e --- /dev/null +++ b/3rdPartner/libiconv/srclib/unistd.in.h @@ -0,0 +1,2327 @@ +/* Substitute for and wrapper around . + Copyright (C) 2003-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _@GUARD_PREFIX@_UNISTD_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H +/* Special invocation convention: + - On Mac OS X 10.3.9 we have a sequence of nested includes + -> -> -> + In this situation, the functions are not yet declared, therefore we cannot + provide the C++ aliases. */ + +#@INCLUDE_NEXT@ @NEXT_UNISTD_H@ + +#else +/* Normal invocation convention. */ + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_UNISTD_H@ +# define _GL_INCLUDING_UNISTD_H +# @INCLUDE_NEXT@ @NEXT_UNISTD_H@ +# undef _GL_INCLUDING_UNISTD_H +#endif + +/* Get all possible declarations of gethostname(). */ +#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ + && !defined _GL_INCLUDING_WINSOCK2_H +# define _GL_INCLUDING_WINSOCK2_H +# include +# undef _GL_INCLUDING_WINSOCK2_H +#endif + +#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H +#define _@GUARD_PREFIX@_UNISTD_H + +/* NetBSD 5.0 mis-defines NULL. Also get size_t. */ +/* But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include +#endif + +/* mingw doesn't define the SEEK_* or *_FILENO macros in . */ +/* MSVC declares 'unlink' in , not in . We must include + it before we #define unlink rpl_unlink. */ +/* Cygwin 1.7.1 declares symlinkat in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ + || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ + && (defined _WIN32 && ! defined __CYGWIN__)) \ + || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ + && defined __CYGWIN__)) \ + && ! defined __GLIBC__ +# include +#endif + +/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in + . */ +/* But avoid namespace pollution on glibc systems. */ +#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \ + && (defined __CYGWIN__ || defined __ANDROID__) \ + && ! defined __GLIBC__ +# include +#endif + +/* mingw fails to declare _exit in . */ +/* mingw, MSVC, BeOS, Haiku declare environ in , not in + . */ +/* Solaris declares getcwd not only in but also in . */ +/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is + included here. */ +/* But avoid namespace pollution on glibc systems. */ +#if !defined __GLIBC__ && !defined __osf__ +# define __need_system_stdlib_h +# include +# undef __need_system_stdlib_h +#endif + +/* Native Windows platforms declare _chdir, _getcwd, _rmdir in + and/or , not in . + They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), + _lseek(), _read(), _unlink(), _write() in . */ +#if defined _WIN32 && !defined __CYGWIN__ +# include +# include +#endif + +/* Native Windows platforms declare _execl*, _execv* in . */ +#if defined _WIN32 && !defined __CYGWIN__ +# include +#endif + +/* AIX and OSF/1 5.1 declare getdomainname in , not in . + NonStop Kernel declares gethostname in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ + || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ + && !defined __GLIBC__ +# include +#endif + +/* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in + , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \ + && ((defined __APPLE__ && defined __MACH__) || defined __sun \ + || defined __ANDROID__) \ + && @UNISTD_H_HAVE_SYS_RANDOM_H@ \ + && !defined __GLIBC__ +# include +#endif + +/* Android 4.3 declares fchownat in , not in . */ +/* But avoid namespace pollution on glibc systems. */ +#if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ + && !defined __GLIBC__ +# include +#endif + +/* MSVC defines off_t in . + May also define off_t to a 64-bit type on native Windows. */ +/* Get off_t, ssize_t, mode_t. */ +#include + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Get getopt(), optarg, optind, opterr, optopt. */ +#if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT +# include +# include +#endif + +#ifndef _GL_INLINE_HEADER_BEGIN + #error "Please include config.h first." +#endif +_GL_INLINE_HEADER_BEGIN +#ifndef _GL_UNISTD_INLINE +# define _GL_UNISTD_INLINE _GL_INLINE +#endif + +/* Hide some function declarations from . */ + +#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ +# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef socket +# define socket socket_used_without_including_sys_socket_h +# undef connect +# define connect connect_used_without_including_sys_socket_h +# undef accept +# define accept accept_used_without_including_sys_socket_h +# undef bind +# define bind bind_used_without_including_sys_socket_h +# undef getpeername +# define getpeername getpeername_used_without_including_sys_socket_h +# undef getsockname +# define getsockname getsockname_used_without_including_sys_socket_h +# undef getsockopt +# define getsockopt getsockopt_used_without_including_sys_socket_h +# undef listen +# define listen listen_used_without_including_sys_socket_h +# undef recv +# define recv recv_used_without_including_sys_socket_h +# undef send +# define send send_used_without_including_sys_socket_h +# undef recvfrom +# define recvfrom recvfrom_used_without_including_sys_socket_h +# undef sendto +# define sendto sendto_used_without_including_sys_socket_h +# undef setsockopt +# define setsockopt setsockopt_used_without_including_sys_socket_h +# undef shutdown +# define shutdown shutdown_used_without_including_sys_socket_h +# else + _GL_WARN_ON_USE (socket, + "socket() used without including "); + _GL_WARN_ON_USE (connect, + "connect() used without including "); + _GL_WARN_ON_USE (accept, + "accept() used without including "); + _GL_WARN_ON_USE (bind, + "bind() used without including "); + _GL_WARN_ON_USE (getpeername, + "getpeername() used without including "); + _GL_WARN_ON_USE (getsockname, + "getsockname() used without including "); + _GL_WARN_ON_USE (getsockopt, + "getsockopt() used without including "); + _GL_WARN_ON_USE (listen, + "listen() used without including "); + _GL_WARN_ON_USE (recv, + "recv() used without including "); + _GL_WARN_ON_USE (send, + "send() used without including "); + _GL_WARN_ON_USE (recvfrom, + "recvfrom() used without including "); + _GL_WARN_ON_USE (sendto, + "sendto() used without including "); + _GL_WARN_ON_USE (setsockopt, + "setsockopt() used without including "); + _GL_WARN_ON_USE (shutdown, + "shutdown() used without including "); +# endif +# endif +# if !defined _@GUARD_PREFIX@_SYS_SELECT_H +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef select +# define select select_used_without_including_sys_select_h +# else + _GL_WARN_ON_USE (select, + "select() used without including "); +# endif +# endif +#endif + + +/* OS/2 EMX lacks these macros. */ +#ifndef STDIN_FILENO +# define STDIN_FILENO 0 +#endif +#ifndef STDOUT_FILENO +# define STDOUT_FILENO 1 +#endif +#ifndef STDERR_FILENO +# define STDERR_FILENO 2 +#endif + +/* Ensure *_OK macros exist. */ +#ifndef F_OK +# define F_OK 0 +# define X_OK 1 +# define W_OK 2 +# define R_OK 4 +#endif + + +/* Declare overridden functions. */ + + +#if @GNULIB_ACCESS@ +# if @REPLACE_ACCESS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef access +# define access rpl_access +# endif +_GL_FUNCDECL_RPL (access, int, (const char *file, int mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef access +# define access _access +# endif +_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); +# else +_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); +# endif +_GL_CXXALIASWARN (access); +#elif defined GNULIB_POSIXCHECK +# undef access +# if HAVE_RAW_DECL_ACCESS +/* The access() function is a security risk. */ +_GL_WARN_ON_USE (access, "access does not always support X_OK - " + "use gnulib module access for portability; " + "also, this function is a security risk - " + "use the gnulib module faccessat instead"); +# endif +#elif @GNULIB_MDA_ACCESS@ +/* On native Windows, map 'access' to '_access', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::access always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef access +# define access _access +# endif +_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); +# else +_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); +# endif +_GL_CXXALIASWARN (access); +#endif + + +#if @GNULIB_CHDIR@ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef chdir +# define chdir _chdir +# endif +_GL_CXXALIAS_MDA (chdir, int, (const char *file)); +# else +_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIASWARN (chdir); +#elif defined GNULIB_POSIXCHECK +# undef chdir +# if HAVE_RAW_DECL_CHDIR +_GL_WARN_ON_USE (chown, "chdir is not always in - " + "use gnulib module chdir for portability"); +# endif +#elif @GNULIB_MDA_CHDIR@ +/* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::chdir always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef chdir +# define chdir _chdir +# endif +_GL_CXXALIAS_MDA (chdir, int, (const char *file)); +# else +_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIASWARN (chdir); +#endif + + +#if @GNULIB_CHOWN@ +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_DUP2@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dup2 rpl_dup2 +# endif +_GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); +_GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef dup2 +# define dup2 _dup2 +# endif +_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); +# else +_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); +# endif +_GL_CXXALIASWARN (dup2); +#elif defined GNULIB_POSIXCHECK +# undef dup2 +# if HAVE_RAW_DECL_DUP2 +_GL_WARN_ON_USE (dup2, "dup2 is unportable - " + "use gnulib module dup2 for portability"); +# endif +#elif @GNULIB_MDA_DUP2@ +/* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::dup2 always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef dup2 +# define dup2 _dup2 +# endif +_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); +# else +_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); +# endif +_GL_CXXALIASWARN (dup2); +#endif + + +#if @GNULIB_DUP3@ +/* Copy the file descriptor OLDFD into file descriptor NEWFD, with the + specified flags. + The flags are a bitmask, possibly including O_CLOEXEC (defined in ) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + Close NEWFD first if it is open. + Return newfd if successful, otherwise -1 and errno set. + See the Linux man page at + . */ +# if @HAVE_DUP3@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dup3 rpl_dup3 +# endif +_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); +_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); +# else +_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); +_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); +# endif +_GL_CXXALIASWARN (dup3); +#elif defined GNULIB_POSIXCHECK +# undef dup3 +# if HAVE_RAW_DECL_DUP3 +_GL_WARN_ON_USE (dup3, "dup3 is unportable - " + "use gnulib module dup3 for portability"); +# endif +#endif + + +#if @GNULIB_ENVIRON@ +# if defined __CYGWIN__ && !defined __i386__ +/* The 'environ' variable is defined in a DLL. Therefore its declaration needs + the '__declspec(dllimport)' attribute, but the system's lacks it. + This leads to a link error on 64-bit Cygwin when the option + -Wl,--disable-auto-import is in use. */ +_GL_EXTERN_C __declspec(dllimport) char **environ; +# endif +# if !@HAVE_DECL_ENVIRON@ +/* Set of environment variables and values. An array of strings of the form + "VARIABLE=VALUE", terminated with a NULL. */ +# if defined __APPLE__ && defined __MACH__ +# include +# if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR +# define _GL_USE_CRT_EXTERNS +# endif +# endif +# ifdef _GL_USE_CRT_EXTERNS +# include +# define environ (*_NSGetEnviron ()) +# else +# ifdef __cplusplus +extern "C" { +# endif +extern char **environ; +# ifdef __cplusplus +} +# endif +# endif +# endif +#elif defined GNULIB_POSIXCHECK +# if HAVE_RAW_DECL_ENVIRON +_GL_UNISTD_INLINE char *** +_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " + "use gnulib module environ for portability") +rpl_environ (void) +{ + return &environ; +} +# undef environ +# define environ (*rpl_environ ()) +# endif +#endif + + +#if @GNULIB_EUIDACCESS@ +/* Like access(), except that it uses the effective user id and group id of + the current process. */ +# if !@HAVE_EUIDACCESS@ +_GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); +_GL_CXXALIASWARN (euidaccess); +# if defined GNULIB_POSIXCHECK +/* Like access(), this function is a security risk. */ +_GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " + "use the gnulib module faccessat instead"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef euidaccess +# if HAVE_RAW_DECL_EUIDACCESS +_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " + "use gnulib module euidaccess for portability"); +# endif +#endif + + +#if @GNULIB_EXECL@ +# if @REPLACE_EXECL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execl +# define execl rpl_execl +# endif +_GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execl); +#elif defined GNULIB_POSIXCHECK +# undef execl +# if HAVE_RAW_DECL_EXECL +_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " + "use gnulib module execl for portability"); +# endif +#elif @GNULIB_MDA_EXECL@ +/* On native Windows, map 'execl' to '_execl', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execl always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execl +# define execl _execl +# endif +_GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execl); +#endif + +#if @GNULIB_EXECLE@ +# if @REPLACE_EXECLE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execle +# define execle rpl_execle +# endif +_GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execle); +#elif defined GNULIB_POSIXCHECK +# undef execle +# if HAVE_RAW_DECL_EXECLE +_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " + "use gnulib module execle for portability"); +# endif +#elif @GNULIB_MDA_EXECLE@ +/* On native Windows, map 'execle' to '_execle', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execle always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execle +# define execle _execle +# endif +_GL_CXXALIAS_MDA (execle, intptr_t, + (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execle); +#endif + +#if @GNULIB_EXECLP@ +# if @REPLACE_EXECLP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execlp +# define execlp rpl_execlp +# endif +_GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execlp); +#elif defined GNULIB_POSIXCHECK +# undef execlp +# if HAVE_RAW_DECL_EXECLP +_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " + "use gnulib module execlp for portability"); +# endif +#elif @GNULIB_MDA_EXECLP@ +/* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execlp always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execlp +# define execlp _execlp +# endif +_GL_CXXALIAS_MDA (execlp, intptr_t, + (const char *program, const char *arg, ...)); +# else +_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); +# endif +_GL_CXXALIASWARN (execlp); +#endif + + +#if @GNULIB_EXECV@ +# if @REPLACE_EXECV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execv +# define execv rpl_execv +# endif +_GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); +# else +_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); +# endif +_GL_CXXALIASWARN (execv); +#elif defined GNULIB_POSIXCHECK +# undef execv +# if HAVE_RAW_DECL_EXECV +_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " + "use gnulib module execv for portability"); +# endif +#elif @GNULIB_MDA_EXECV@ +/* On native Windows, map 'execv' to '_execv', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execv always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execv +# define execv _execv +# endif +_GL_CXXALIAS_MDA_CAST (execv, intptr_t, + (const char *program, char * const *argv)); +# else +_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); +# endif +_GL_CXXALIASWARN (execv); +#endif + +#if @GNULIB_EXECVE@ +# if @REPLACE_EXECVE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execve +# define execve rpl_execve +# endif +_GL_FUNCDECL_RPL (execve, int, + (const char *program, char * const *argv, char * const *env) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (execve, int, + (const char *program, char * const *argv, char * const *env)); +# else +_GL_CXXALIAS_SYS (execve, int, + (const char *program, char * const *argv, char * const *env)); +# endif +_GL_CXXALIASWARN (execve); +#elif defined GNULIB_POSIXCHECK +# undef execve +# if HAVE_RAW_DECL_EXECVE +_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " + "use gnulib module execve for portability"); +# endif +#elif @GNULIB_MDA_EXECVE@ +/* On native Windows, map 'execve' to '_execve', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execve always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execve +# define execve _execve +# endif +_GL_CXXALIAS_MDA_CAST (execve, intptr_t, + (const char *program, char * const *argv, + char * const *env)); +# else +_GL_CXXALIAS_SYS (execve, int, + (const char *program, char * const *argv, char * const *env)); +# endif +_GL_CXXALIASWARN (execve); +#endif + +#if @GNULIB_EXECVP@ +# if @REPLACE_EXECVP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execvp +# define execvp rpl_execvp +# endif +_GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); +# else +_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); +# endif +_GL_CXXALIASWARN (execvp); +#elif defined GNULIB_POSIXCHECK +# undef execvp +# if HAVE_RAW_DECL_EXECVP +_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " + "use gnulib module execvp for portability"); +# endif +#elif @GNULIB_MDA_EXECVP@ +/* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execvp always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execvp +# define execvp _execvp +# endif +_GL_CXXALIAS_MDA_CAST (execvp, intptr_t, + (const char *program, char * const *argv)); +# else +_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); +# endif +_GL_CXXALIASWARN (execvp); +#endif + +#if @GNULIB_EXECVPE@ +# if @REPLACE_EXECVPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execvpe +# define execvpe rpl_execvpe +# endif +_GL_FUNCDECL_RPL (execvpe, int, + (const char *program, char * const *argv, char * const *env) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (execvpe, int, + (const char *program, char * const *argv, char * const *env)); +# else +# if !@HAVE_DECL_EXECVPE@ +_GL_FUNCDECL_SYS (execvpe, int, + (const char *program, char * const *argv, char * const *env) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (execvpe, int, + (const char *program, char * const *argv, char * const *env)); +# endif +_GL_CXXALIASWARN (execvpe); +#elif defined GNULIB_POSIXCHECK +# undef execvpe +# if HAVE_RAW_DECL_EXECVPE +_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " + "use gnulib module execvpe for portability"); +# endif +#elif @GNULIB_MDA_EXECVPE@ +/* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have + it. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef execvpe +# define execvpe _execvpe +# endif +_GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, + (const char *program, char * const *argv, + char * const *env)); +# elif @HAVE_EXECVPE@ +# if !@HAVE_DECL_EXECVPE@ +_GL_FUNCDECL_SYS (execvpe, int, + (const char *program, char * const *argv, char * const *env) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (execvpe, int, + (const char *program, char * const *argv, char * const *env)); +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@ +_GL_CXXALIASWARN (execvpe); +# endif +#endif + + +#if @GNULIB_FACCESSAT@ +# if @REPLACE_FACCESSAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef faccessat +# define faccessat rpl_faccessat +# endif +_GL_FUNCDECL_RPL (faccessat, int, + (int fd, char const *name, int mode, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (faccessat, int, + (int fd, char const *name, int mode, int flag)); +# else +# if !@HAVE_FACCESSAT@ +_GL_FUNCDECL_SYS (faccessat, int, + (int fd, char const *file, int mode, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (faccessat, int, + (int fd, char const *file, int mode, int flag)); +# endif +_GL_CXXALIASWARN (faccessat); +#elif defined GNULIB_POSIXCHECK +# undef faccessat +# if HAVE_RAW_DECL_FACCESSAT +_GL_WARN_ON_USE (faccessat, "faccessat is not portable - " + "use gnulib module faccessat for portability"); +# endif +#endif + + +#if @GNULIB_FCHDIR@ +/* Change the process' current working directory to the directory on which + the given file descriptor is open. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if ! @HAVE_FCHDIR@ +_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); + +/* Gnulib internal hooks needed to maintain the fchdir metadata. */ +_GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) + _GL_ARG_NONNULL ((2)); +_GL_EXTERN_C void _gl_unregister_fd (int fd); +_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); +_GL_EXTERN_C const char *_gl_directory_name (int fd); + +# else +# if !@HAVE_DECL_FCHDIR@ +_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); +# endif +# endif +_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); +_GL_CXXALIASWARN (fchdir); +#elif defined GNULIB_POSIXCHECK +# undef fchdir +# if HAVE_RAW_DECL_FCHDIR +_GL_WARN_ON_USE (fchdir, "fchdir is unportable - " + "use gnulib module fchdir for portability"); +# endif +#endif + + +#if @GNULIB_FCHOWNAT@ +# if @REPLACE_FCHOWNAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fchownat +# define fchownat rpl_fchownat +# endif +_GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag)); +# else +# if !@HAVE_FCHOWNAT@ +_GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag)); +# endif +_GL_CXXALIASWARN (fchownat); +#elif defined GNULIB_POSIXCHECK +# undef fchownat +# if HAVE_RAW_DECL_FCHOWNAT +_GL_WARN_ON_USE (fchownat, "fchownat is not portable - " + "use gnulib module fchownat for portability"); +# endif +#endif + + +#if @GNULIB_FDATASYNC@ +/* Synchronize changes to a file. + Return 0 if successful, otherwise -1 and errno set. + See POSIX:2008 specification + . */ +# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ +_GL_FUNCDECL_SYS (fdatasync, int, (int fd)); +# endif +_GL_CXXALIAS_SYS (fdatasync, int, (int fd)); +_GL_CXXALIASWARN (fdatasync); +#elif defined GNULIB_POSIXCHECK +# undef fdatasync +# if HAVE_RAW_DECL_FDATASYNC +_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " + "use gnulib module fdatasync for portability"); +# endif +#endif + + +#if @GNULIB_FSYNC@ +/* Synchronize changes, including metadata, to a file. + Return 0 if successful, otherwise -1 and errno set. + See POSIX:2008 specification + . */ +# if !@HAVE_FSYNC@ +_GL_FUNCDECL_SYS (fsync, int, (int fd)); +# endif +_GL_CXXALIAS_SYS (fsync, int, (int fd)); +_GL_CXXALIASWARN (fsync); +#elif defined GNULIB_POSIXCHECK +# undef fsync +# if HAVE_RAW_DECL_FSYNC +_GL_WARN_ON_USE (fsync, "fsync is unportable - " + "use gnulib module fsync for portability"); +# endif +#endif + + +#if @GNULIB_FTRUNCATE@ +/* Change the size of the file to which FD is opened to become equal to LENGTH. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_FTRUNCATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftruncate +# define ftruncate rpl_ftruncate +# endif +_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); +_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); +# else +# if !@HAVE_FTRUNCATE@ +_GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); +# endif +_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); +# endif +_GL_CXXALIASWARN (ftruncate); +#elif defined GNULIB_POSIXCHECK +# undef ftruncate +# if HAVE_RAW_DECL_FTRUNCATE +_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " + "use gnulib module ftruncate for portability"); +# endif +#endif + + +#if @GNULIB_GETCWD@ +/* Get the name of the current working directory, and put it in SIZE bytes + of BUF. + Return BUF if successful, or NULL if the directory couldn't be determined + or SIZE was too small. + See the POSIX:2008 specification + . + Additionally, the gnulib module 'getcwd' guarantees the following GNU + extension: If BUF is NULL, an array is allocated with 'malloc'; the array + is SIZE bytes long, unless SIZE == 0, in which case it is as big as + necessary. */ +# if @REPLACE_GETCWD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getcwd rpl_getcwd +# endif +_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); +_GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getcwd +# define getcwd _getcwd +# endif +_GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); +# else +/* Need to cast, because on mingw, the second parameter is + int size. */ +_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); +# endif +_GL_CXXALIASWARN (getcwd); +#elif defined GNULIB_POSIXCHECK +# undef getcwd +# if HAVE_RAW_DECL_GETCWD +_GL_WARN_ON_USE (getcwd, "getcwd is unportable - " + "use gnulib module getcwd for portability"); +# endif +#elif @GNULIB_MDA_GETCWD@ +/* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::getcwd always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getcwd +# define getcwd _getcwd +# endif +/* Need to cast, because on mingw, the second parameter is either + 'int size' or 'size_t size'. */ +_GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); +# else +_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); +# endif +_GL_CXXALIASWARN (getcwd); +#endif + + +#if @GNULIB_GETDOMAINNAME@ +/* Return the NIS domain name of the machine. + WARNING! The NIS domain name is unrelated to the fully qualified host name + of the machine. It is also unrelated to email addresses. + WARNING! The NIS domain name is usually the empty string or "(none)" when + not using NIS. + + Put up to LEN bytes of the NIS domain name into NAME. + Null terminate it if the name is shorter than LEN. + If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. + Return 0 if successful, otherwise set errno and return -1. */ +# if @REPLACE_GETDOMAINNAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getdomainname +# define getdomainname rpl_getdomainname +# endif +_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); +# else +# if !@HAVE_DECL_GETDOMAINNAME@ +_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); +# endif +_GL_CXXALIASWARN (getdomainname); +#elif defined GNULIB_POSIXCHECK +# undef getdomainname +# if HAVE_RAW_DECL_GETDOMAINNAME +_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " + "use gnulib module getdomainname for portability"); +# endif +#endif + + +#if @GNULIB_GETDTABLESIZE@ +/* Return the maximum number of file descriptors in the current process. + In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ +# if @REPLACE_GETDTABLESIZE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getdtablesize +# define getdtablesize rpl_getdtablesize +# endif +_GL_FUNCDECL_RPL (getdtablesize, int, (void)); +_GL_CXXALIAS_RPL (getdtablesize, int, (void)); +# else +# if !@HAVE_GETDTABLESIZE@ +_GL_FUNCDECL_SYS (getdtablesize, int, (void)); +# endif +/* Need to cast, because on AIX, the parameter list is + (...). */ +_GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); +# endif +_GL_CXXALIASWARN (getdtablesize); +#elif defined GNULIB_POSIXCHECK +# undef getdtablesize +# if HAVE_RAW_DECL_GETDTABLESIZE +_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " + "use gnulib module getdtablesize for portability"); +# endif +#endif + + +#if @GNULIB_GETENTROPY@ +/* Fill a buffer with random bytes. */ +# if !@HAVE_GETENTROPY@ +_GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); +# endif +_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); +_GL_CXXALIASWARN (getentropy); +#elif defined GNULIB_POSIXCHECK +# undef getentropy +# if HAVE_RAW_DECL_GETENTROPY +_GL_WARN_ON_USE (getentropy, "getentropy is unportable - " + "use gnulib module getentropy for portability"); +# endif +#endif + + +#if @GNULIB_GETGROUPS@ +/* Return the supplemental groups that the current process belongs to. + It is unspecified whether the effective group id is in the list. + If N is 0, return the group count; otherwise, N describes how many + entries are available in GROUPS. Return -1 and set errno if N is + not 0 and not large enough. Fails with ENOSYS on some systems. */ +# if @REPLACE_GETGROUPS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getgroups +# define getgroups rpl_getgroups +# endif +_GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); +_GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); +# else +# if !@HAVE_GETGROUPS@ +_GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); +# endif +_GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); +# endif +_GL_CXXALIASWARN (getgroups); +#elif defined GNULIB_POSIXCHECK +# undef getgroups +# if HAVE_RAW_DECL_GETGROUPS +_GL_WARN_ON_USE (getgroups, "getgroups is unportable - " + "use gnulib module getgroups for portability"); +# endif +#endif + + +#if @GNULIB_GETHOSTNAME@ +/* Return the standard host name of the machine. + WARNING! The host name may or may not be fully qualified. + + Put up to LEN bytes of the host name into NAME. + Null terminate it if the name is shorter than LEN. + If the host name is longer than LEN, set errno = EINVAL and return -1. + Return 0 if successful, otherwise set errno and return -1. */ +# if @UNISTD_H_HAVE_WINSOCK2_H@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gethostname +# define gethostname rpl_gethostname +# endif +_GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); +# else +# if !@HAVE_GETHOSTNAME@ +_GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second + parameter is + int len. */ +_GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); +# endif +_GL_CXXALIASWARN (gethostname); +#elif @UNISTD_H_HAVE_WINSOCK2_H@ +# undef gethostname +# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname +#elif defined GNULIB_POSIXCHECK +# undef gethostname +# if HAVE_RAW_DECL_GETHOSTNAME +_GL_WARN_ON_USE (gethostname, "gethostname is unportable - " + "use gnulib module gethostname for portability"); +# endif +#endif + + +#if @GNULIB_GETLOGIN@ +/* Returns the user's login name, or NULL if it cannot be found. Upon error, + returns NULL with errno set. + + See . + + Most programs don't need to use this function, because the information is + available through environment variables: + ${LOGNAME-$USER} on Unix platforms, + $USERNAME on native Windows platforms. + */ +# if !@HAVE_DECL_GETLOGIN@ +_GL_FUNCDECL_SYS (getlogin, char *, (void)); +# endif +_GL_CXXALIAS_SYS (getlogin, char *, (void)); +_GL_CXXALIASWARN (getlogin); +#elif defined GNULIB_POSIXCHECK +# undef getlogin +# if HAVE_RAW_DECL_GETLOGIN +_GL_WARN_ON_USE (getlogin, "getlogin is unportable - " + "use gnulib module getlogin for portability"); +# endif +#endif + + +#if @GNULIB_GETLOGIN_R@ +/* Copies the user's login name to NAME. + The array pointed to by NAME has room for SIZE bytes. + + Returns 0 if successful. Upon error, an error number is returned, or -1 in + the case that the login name cannot be found but no specific error is + provided (this case is hopefully rare but is left open by the POSIX spec). + + See . + + Most programs don't need to use this function, because the information is + available through environment variables: + ${LOGNAME-$USER} on Unix platforms, + $USERNAME on native Windows platforms. + */ +# if @REPLACE_GETLOGIN_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getlogin_r rpl_getlogin_r +# endif +_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); +# else +# if !@HAVE_DECL_GETLOGIN_R@ +_GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 10 systems, the second argument is + int size. */ +_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); +# endif +_GL_CXXALIASWARN (getlogin_r); +#elif defined GNULIB_POSIXCHECK +# undef getlogin_r +# if HAVE_RAW_DECL_GETLOGIN_R +_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " + "use gnulib module getlogin_r for portability"); +# endif +#endif + + +#if @GNULIB_GETPAGESIZE@ +# if @REPLACE_GETPAGESIZE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getpagesize rpl_getpagesize +# endif +_GL_FUNCDECL_RPL (getpagesize, int, (void)); +_GL_CXXALIAS_RPL (getpagesize, int, (void)); +# else +/* On HP-UX, getpagesize exists, but it is not declared in even if + the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ +# if defined __hpux +_GL_FUNCDECL_SYS (getpagesize, int, (void)); +# endif +# if !@HAVE_GETPAGESIZE@ +# if !defined getpagesize +/* This is for POSIX systems. */ +# if !defined _gl_getpagesize && defined _SC_PAGESIZE +# if ! (defined __VMS && __VMS_VER < 70000000) +# define _gl_getpagesize() sysconf (_SC_PAGESIZE) +# endif +# endif +/* This is for older VMS. */ +# if !defined _gl_getpagesize && defined __VMS +# ifdef __ALPHA +# define _gl_getpagesize() 8192 +# else +# define _gl_getpagesize() 512 +# endif +# endif +/* This is for BeOS. */ +# if !defined _gl_getpagesize && @HAVE_OS_H@ +# include +# if defined B_PAGE_SIZE +# define _gl_getpagesize() B_PAGE_SIZE +# endif +# endif +/* This is for AmigaOS4.0. */ +# if !defined _gl_getpagesize && defined __amigaos4__ +# define _gl_getpagesize() 2048 +# endif +/* This is for older Unix systems. */ +# if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ +# include +# ifdef EXEC_PAGESIZE +# define _gl_getpagesize() EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define CLSIZE 1 +# endif +# define _gl_getpagesize() (NBPG * CLSIZE) +# else +# ifdef NBPC +# define _gl_getpagesize() NBPC +# endif +# endif +# endif +# endif +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getpagesize() _gl_getpagesize () +# else +# if !GNULIB_defined_getpagesize_function +_GL_UNISTD_INLINE int +getpagesize () +{ + return _gl_getpagesize (); +} +# define GNULIB_defined_getpagesize_function 1 +# endif +# endif +# endif +# endif +/* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ +_GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); +# endif +# if @HAVE_DECL_GETPAGESIZE@ +_GL_CXXALIASWARN (getpagesize); +# endif +#elif defined GNULIB_POSIXCHECK +# undef getpagesize +# if HAVE_RAW_DECL_GETPAGESIZE +_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " + "use gnulib module getpagesize for portability"); +# endif +#endif + + +#if @GNULIB_GETPASS@ +/* Function getpass() from module 'getpass': + Read a password from /dev/tty or stdin. + Function getpass() from module 'getpass-gnu': + Read a password of arbitrary length from /dev/tty or stdin. */ +# if (@GNULIB_GETPASS@ && @REPLACE_GETPASS@) \ + || (@GNULIB_GETPASS_GNU@ && @REPLACE_GETPASS_FOR_GETPASS_GNU@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getpass +# define getpass rpl_getpass +# endif +_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); +# else +# if !@HAVE_GETPASS@ +_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); +# endif +_GL_CXXALIASWARN (getpass); +#elif defined GNULIB_POSIXCHECK +# undef getpass +# if HAVE_RAW_DECL_GETPASS +_GL_WARN_ON_USE (getpass, "getpass is unportable - " + "use gnulib module getpass or getpass-gnu for portability"); +# endif +#endif + + +#if @GNULIB_MDA_GETPID@ +/* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::getpid always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getpid +# define getpid _getpid +# endif +_GL_CXXALIAS_MDA (getpid, int, (void)); +# else +_GL_CXXALIAS_SYS (getpid, pid_t, (void)); +# endif +_GL_CXXALIASWARN (getpid); +#endif + + +#if @GNULIB_GETUSERSHELL@ +/* Return the next valid login shell on the system, or NULL when the end of + the list has been reached. */ +# if !@HAVE_DECL_GETUSERSHELL@ +_GL_FUNCDECL_SYS (getusershell, char *, (void)); +# endif +_GL_CXXALIAS_SYS (getusershell, char *, (void)); +_GL_CXXALIASWARN (getusershell); +#elif defined GNULIB_POSIXCHECK +# undef getusershell +# if HAVE_RAW_DECL_GETUSERSHELL +_GL_WARN_ON_USE (getusershell, "getusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + +#if @GNULIB_GETUSERSHELL@ +/* Rewind to pointer that is advanced at each getusershell() call. */ +# if !@HAVE_DECL_GETUSERSHELL@ +_GL_FUNCDECL_SYS (setusershell, void, (void)); +# endif +_GL_CXXALIAS_SYS (setusershell, void, (void)); +_GL_CXXALIASWARN (setusershell); +#elif defined GNULIB_POSIXCHECK +# undef setusershell +# if HAVE_RAW_DECL_SETUSERSHELL +_GL_WARN_ON_USE (setusershell, "setusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + +#if @GNULIB_GETUSERSHELL@ +/* Free the pointer that is advanced at each getusershell() call and + associated resources. */ +# if !@HAVE_DECL_GETUSERSHELL@ +_GL_FUNCDECL_SYS (endusershell, void, (void)); +# endif +_GL_CXXALIAS_SYS (endusershell, void, (void)); +_GL_CXXALIASWARN (endusershell); +#elif defined GNULIB_POSIXCHECK +# undef endusershell +# if HAVE_RAW_DECL_ENDUSERSHELL +_GL_WARN_ON_USE (endusershell, "endusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + + +#if @GNULIB_GROUP_MEMBER@ +/* Determine whether group id is in calling user's group list. */ +# if !@HAVE_GROUP_MEMBER@ +_GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); +# endif +_GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); +_GL_CXXALIASWARN (group_member); +#elif defined GNULIB_POSIXCHECK +# undef group_member +# if HAVE_RAW_DECL_GROUP_MEMBER +_GL_WARN_ON_USE (group_member, "group_member is unportable - " + "use gnulib module group-member for portability"); +# endif +#endif + + +#if @GNULIB_ISATTY@ +# if @REPLACE_ISATTY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef isatty +# define isatty rpl_isatty +# endif +# define GNULIB_defined_isatty 1 +_GL_FUNCDECL_RPL (isatty, int, (int fd)); +_GL_CXXALIAS_RPL (isatty, int, (int fd)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef isatty +# define isatty _isatty +# endif +_GL_CXXALIAS_MDA (isatty, int, (int fd)); +# else +_GL_CXXALIAS_SYS (isatty, int, (int fd)); +# endif +_GL_CXXALIASWARN (isatty); +#elif defined GNULIB_POSIXCHECK +# undef isatty +# if HAVE_RAW_DECL_ISATTY +_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " + "use gnulib module isatty for portability"); +# endif +#elif @GNULIB_MDA_ISATTY@ +/* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::isatty always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef isatty +# define isatty _isatty +# endif +_GL_CXXALIAS_MDA (isatty, int, (int fd)); +# else +_GL_CXXALIAS_SYS (isatty, int, (int fd)); +# endif +_GL_CXXALIASWARN (isatty); +#endif + + +#if @GNULIB_LCHOWN@ +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Do not follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_LCHOWN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lchown +# define lchown rpl_lchown +# endif +_GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); +# else +# if !@HAVE_LCHOWN@ +_GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); +# endif +_GL_CXXALIASWARN (lchown); +#elif defined GNULIB_POSIXCHECK +# undef lchown +# if HAVE_RAW_DECL_LCHOWN +_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " + "use gnulib module lchown for portability"); +# endif +#endif + + +#if @GNULIB_LINK@ +/* Create a new hard link for an existing file. + Return 0 if successful, otherwise -1 and errno set. + See POSIX:2008 specification + . */ +# if @REPLACE_LINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define link rpl_link +# endif +_GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); +# else +# if !@HAVE_LINK@ +_GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); +# endif +_GL_CXXALIASWARN (link); +#elif defined GNULIB_POSIXCHECK +# undef link +# if HAVE_RAW_DECL_LINK +_GL_WARN_ON_USE (link, "link is unportable - " + "use gnulib module link for portability"); +# endif +#endif + + +#if @GNULIB_LINKAT@ +/* Create a new hard link for an existing file, relative to two + directories. FLAG controls whether symlinks are followed. + Return 0 if successful, otherwise -1 and errno set. */ +# if @REPLACE_LINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef linkat +# define linkat rpl_linkat +# endif +_GL_FUNCDECL_RPL (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag)); +# else +# if !@HAVE_LINKAT@ +_GL_FUNCDECL_SYS (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag) + _GL_ARG_NONNULL ((2, 4))); +# endif +_GL_CXXALIAS_SYS (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag)); +# endif +_GL_CXXALIASWARN (linkat); +#elif defined GNULIB_POSIXCHECK +# undef linkat +# if HAVE_RAW_DECL_LINKAT +_GL_WARN_ON_USE (linkat, "linkat is unportable - " + "use gnulib module linkat for portability"); +# endif +#endif + + +#if @GNULIB_LSEEK@ +/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. + Return the new offset if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_LSEEK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define lseek rpl_lseek +# endif +_GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); +_GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lseek +# define lseek _lseek +# endif +_GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); +# else +_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); +# endif +_GL_CXXALIASWARN (lseek); +#elif defined GNULIB_POSIXCHECK +# undef lseek +# if HAVE_RAW_DECL_LSEEK +_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " + "systems - use gnulib module lseek for portability"); +# endif +#elif @GNULIB_MDA_LSEEK@ +/* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::lseek always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lseek +# define lseek _lseek +# endif +_GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); +# else +_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); +# endif +_GL_CXXALIASWARN (lseek); +#endif + + +#if @GNULIB_PIPE@ +/* Create a pipe, defaulting to O_BINARY mode. + Store the read-end as fd[0] and the write-end as fd[1]. + Return 0 upon success, or -1 with errno set upon failure. */ +# if !@HAVE_PIPE@ +_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (pipe, int, (int fd[2])); +_GL_CXXALIASWARN (pipe); +#elif defined GNULIB_POSIXCHECK +# undef pipe +# if HAVE_RAW_DECL_PIPE +_GL_WARN_ON_USE (pipe, "pipe is unportable - " + "use gnulib module pipe-posix for portability"); +# endif +#endif + + +#if @GNULIB_PIPE2@ +/* Create a pipe, applying the given flags when opening the read-end of the + pipe and the write-end of the pipe. + The flags are a bitmask, possibly including O_CLOEXEC (defined in ) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + Store the read-end as fd[0] and the write-end as fd[1]. + Return 0 upon success, or -1 with errno set upon failure. + See also the Linux man page at + . */ +# if @HAVE_PIPE2@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define pipe2 rpl_pipe2 +# endif +_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); +# else +_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); +# endif +_GL_CXXALIASWARN (pipe2); +#elif defined GNULIB_POSIXCHECK +# undef pipe2 +# if HAVE_RAW_DECL_PIPE2 +_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " + "use gnulib module pipe2 for portability"); +# endif +#endif + + +#if @GNULIB_PREAD@ +/* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. + Return the number of bytes placed into BUF if successful, otherwise + set errno and return -1. 0 indicates EOF. + See the POSIX:2008 specification + . */ +# if @REPLACE_PREAD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef pread +# define pread rpl_pread +# endif +_GL_FUNCDECL_RPL (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset)); +# else +# if !@HAVE_PREAD@ +_GL_FUNCDECL_SYS (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset)); +# endif +_GL_CXXALIASWARN (pread); +#elif defined GNULIB_POSIXCHECK +# undef pread +# if HAVE_RAW_DECL_PREAD +_GL_WARN_ON_USE (pread, "pread is unportable - " + "use gnulib module pread for portability"); +# endif +#endif + + +#if @GNULIB_PWRITE@ +/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. + Return the number of bytes written if successful, otherwise + set errno and return -1. 0 indicates nothing written. See the + POSIX:2008 specification + . */ +# if @REPLACE_PWRITE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef pwrite +# define pwrite rpl_pwrite +# endif +_GL_FUNCDECL_RPL (pwrite, ssize_t, + (int fd, const void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (pwrite, ssize_t, + (int fd, const void *buf, size_t bufsize, off_t offset)); +# else +# if !@HAVE_PWRITE@ +_GL_FUNCDECL_SYS (pwrite, ssize_t, + (int fd, const void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (pwrite, ssize_t, + (int fd, const void *buf, size_t bufsize, off_t offset)); +# endif +_GL_CXXALIASWARN (pwrite); +#elif defined GNULIB_POSIXCHECK +# undef pwrite +# if HAVE_RAW_DECL_PWRITE +_GL_WARN_ON_USE (pwrite, "pwrite is unportable - " + "use gnulib module pwrite for portability"); +# endif +#endif + + +#if @GNULIB_READ@ +/* Read up to COUNT bytes from file descriptor FD into the buffer starting + at BUF. See the POSIX:2008 specification + . */ +# if @REPLACE_READ@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef read +# define read rpl_read +# endif +_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef read +# define read _read +# endif +_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); +# else +_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); +# endif +_GL_CXXALIASWARN (read); +#elif @GNULIB_MDA_READ@ +/* On native Windows, map 'read' to '_read', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::read always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef read +# define read _read +# endif +# ifdef __MINGW32__ +_GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); +# else +_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); +# endif +# else +_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); +# endif +_GL_CXXALIASWARN (read); +#endif + + +#if @GNULIB_READLINK@ +/* Read the contents of the symbolic link FILE and place the first BUFSIZE + bytes of it into BUF. Return the number of bytes placed into BUF if + successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_READLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define readlink rpl_readlink +# endif +_GL_FUNCDECL_RPL (readlink, ssize_t, + (const char *restrict file, + char *restrict buf, size_t bufsize) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (readlink, ssize_t, + (const char *restrict file, + char *restrict buf, size_t bufsize)); +# else +# if !@HAVE_READLINK@ +_GL_FUNCDECL_SYS (readlink, ssize_t, + (const char *restrict file, + char *restrict buf, size_t bufsize) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (readlink, ssize_t, + (const char *restrict file, + char *restrict buf, size_t bufsize)); +# endif +_GL_CXXALIASWARN (readlink); +#elif defined GNULIB_POSIXCHECK +# undef readlink +# if HAVE_RAW_DECL_READLINK +_GL_WARN_ON_USE (readlink, "readlink is unportable - " + "use gnulib module readlink for portability"); +# endif +#endif + + +#if @GNULIB_READLINKAT@ +# if @REPLACE_READLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define readlinkat rpl_readlinkat +# endif +_GL_FUNCDECL_RPL (readlinkat, ssize_t, + (int fd, char const *restrict file, + char *restrict buf, size_t len) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (readlinkat, ssize_t, + (int fd, char const *restrict file, + char *restrict buf, size_t len)); +# else +# if !@HAVE_READLINKAT@ +_GL_FUNCDECL_SYS (readlinkat, ssize_t, + (int fd, char const *restrict file, + char *restrict buf, size_t len) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (readlinkat, ssize_t, + (int fd, char const *restrict file, + char *restrict buf, size_t len)); +# endif +_GL_CXXALIASWARN (readlinkat); +#elif defined GNULIB_POSIXCHECK +# undef readlinkat +# if HAVE_RAW_DECL_READLINKAT +_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " + "use gnulib module readlinkat for portability"); +# endif +#endif + + +#if @GNULIB_RMDIR@ +/* Remove the directory DIR. */ +# if @REPLACE_RMDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define rmdir rpl_rmdir +# endif +_GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (rmdir, int, (char const *name)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef rmdir +# define rmdir _rmdir +# endif +_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); +# else +_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); +# endif +_GL_CXXALIASWARN (rmdir); +#elif defined GNULIB_POSIXCHECK +# undef rmdir +# if HAVE_RAW_DECL_RMDIR +_GL_WARN_ON_USE (rmdir, "rmdir is unportable - " + "use gnulib module rmdir for portability"); +# endif +#elif @GNULIB_MDA_RMDIR@ +/* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::rmdir always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef rmdir +# define rmdir _rmdir +# endif +_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); +# else +_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); +# endif +_GL_CXXALIASWARN (rmdir); +#endif + + +#if @GNULIB_SETHOSTNAME@ +/* Set the host name of the machine. + The host name may or may not be fully qualified. + + Put LEN bytes of NAME into the host name. + Return 0 if successful, otherwise, set errno and return -1. + + Platforms with no ability to set the hostname return -1 and set + errno = ENOSYS. */ +# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ +_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 + and FreeBSD 6.4 the second parameter is int. On Solaris 11 + 2011-10, the first parameter is not const. */ +_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); +_GL_CXXALIASWARN (sethostname); +#elif defined GNULIB_POSIXCHECK +# undef sethostname +# if HAVE_RAW_DECL_SETHOSTNAME +_GL_WARN_ON_USE (sethostname, "sethostname is unportable - " + "use gnulib module sethostname for portability"); +# endif +#endif + + +#if @GNULIB_SLEEP@ +/* Pause the execution of the current thread for N seconds. + Returns the number of seconds left to sleep. + See the POSIX:2008 specification + . */ +# if @REPLACE_SLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef sleep +# define sleep rpl_sleep +# endif +_GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); +_GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); +# else +# if !@HAVE_SLEEP@ +_GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); +# endif +_GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); +# endif +_GL_CXXALIASWARN (sleep); +#elif defined GNULIB_POSIXCHECK +# undef sleep +# if HAVE_RAW_DECL_SLEEP +_GL_WARN_ON_USE (sleep, "sleep is unportable - " + "use gnulib module sleep for portability"); +# endif +#endif + + +#if @GNULIB_MDA_SWAB@ +/* On native Windows, map 'swab' to '_swab', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::swab always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef swab +# define swab _swab +# endif +/* Need to cast, because in old mingw the arguments are + (const char *from, char *to, size_t n). */ +_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); +# else +# if defined __hpux /* HP-UX */ +_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); +# elif defined __sun && !defined _XPG4 /* Solaris */ +_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); +# else +_GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); +# endif +# endif +_GL_CXXALIASWARN (swab); +#endif + + +#if @GNULIB_SYMLINK@ +# if @REPLACE_SYMLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef symlink +# define symlink rpl_symlink +# endif +_GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); +# else +# if !@HAVE_SYMLINK@ +_GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); +# endif +_GL_CXXALIASWARN (symlink); +#elif defined GNULIB_POSIXCHECK +# undef symlink +# if HAVE_RAW_DECL_SYMLINK +_GL_WARN_ON_USE (symlink, "symlink is not portable - " + "use gnulib module symlink for portability"); +# endif +#endif + + +#if @GNULIB_SYMLINKAT@ +# if @REPLACE_SYMLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef symlinkat +# define symlinkat rpl_symlinkat +# endif +_GL_FUNCDECL_RPL (symlinkat, int, + (char const *contents, int fd, char const *file) + _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (symlinkat, int, + (char const *contents, int fd, char const *file)); +# else +# if !@HAVE_SYMLINKAT@ +_GL_FUNCDECL_SYS (symlinkat, int, + (char const *contents, int fd, char const *file) + _GL_ARG_NONNULL ((1, 3))); +# endif +_GL_CXXALIAS_SYS (symlinkat, int, + (char const *contents, int fd, char const *file)); +# endif +_GL_CXXALIASWARN (symlinkat); +#elif defined GNULIB_POSIXCHECK +# undef symlinkat +# if HAVE_RAW_DECL_SYMLINKAT +_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " + "use gnulib module symlinkat for portability"); +# endif +#endif + + +#if @GNULIB_TRUNCATE@ +/* Change the size of the file designated by FILENAME to become equal to LENGTH. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2008 specification + . */ +# if @REPLACE_TRUNCATE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef truncate +# define truncate rpl_truncate +# endif +_GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); +# else +# if !@HAVE_DECL_TRUNCATE@ +_GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); +# endif +_GL_CXXALIASWARN (truncate); +#elif defined GNULIB_POSIXCHECK +# undef truncate +# if HAVE_RAW_DECL_TRUNCATE +_GL_WARN_ON_USE (truncate, "truncate is unportable - " + "use gnulib module truncate for portability"); +# endif +#endif + + +#if @GNULIB_TTYNAME_R@ +/* Store at most BUFLEN characters of the pathname of the terminal FD is + open on in BUF. Return 0 on success, otherwise an error number. */ +# if @REPLACE_TTYNAME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ttyname_r +# define ttyname_r rpl_ttyname_r +# endif +_GL_FUNCDECL_RPL (ttyname_r, int, + (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (ttyname_r, int, + (int fd, char *buf, size_t buflen)); +# else +# if !@HAVE_DECL_TTYNAME_R@ +_GL_FUNCDECL_SYS (ttyname_r, int, + (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (ttyname_r, int, + (int fd, char *buf, size_t buflen)); +# endif +_GL_CXXALIASWARN (ttyname_r); +#elif defined GNULIB_POSIXCHECK +# undef ttyname_r +# if HAVE_RAW_DECL_TTYNAME_R +_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " + "use gnulib module ttyname_r for portability"); +# endif +#endif + + +#if @GNULIB_UNLINK@ +# if @REPLACE_UNLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlink +# define unlink rpl_unlink +# endif +_GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (unlink, int, (char const *file)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlink +# define unlink _unlink +# endif +_GL_CXXALIAS_MDA (unlink, int, (char const *file)); +# else +_GL_CXXALIAS_SYS (unlink, int, (char const *file)); +# endif +_GL_CXXALIASWARN (unlink); +#elif defined GNULIB_POSIXCHECK +# undef unlink +# if HAVE_RAW_DECL_UNLINK +_GL_WARN_ON_USE (unlink, "unlink is not portable - " + "use gnulib module unlink for portability"); +# endif +#elif @GNULIB_MDA_UNLINK@ +/* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::unlink always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlink +# define unlink _unlink +# endif +_GL_CXXALIAS_MDA (unlink, int, (char const *file)); +# else +_GL_CXXALIAS_SYS (unlink, int, (char const *file)); +# endif +_GL_CXXALIASWARN (unlink); +#endif + + +#if @GNULIB_UNLINKAT@ +# if @REPLACE_UNLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlinkat +# define unlinkat rpl_unlinkat +# endif +_GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); +# else +# if !@HAVE_UNLINKAT@ +_GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); +# endif +_GL_CXXALIASWARN (unlinkat); +#elif defined GNULIB_POSIXCHECK +# undef unlinkat +# if HAVE_RAW_DECL_UNLINKAT +_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " + "use gnulib module unlinkat for portability"); +# endif +#endif + + +#if @GNULIB_USLEEP@ +/* Pause the execution of the current thread for N microseconds. + Returns 0 on completion, or -1 on range error. + See the POSIX:2001 specification + . */ +# if @REPLACE_USLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef usleep +# define usleep rpl_usleep +# endif +_GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); +_GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); +# else +# if !@HAVE_USLEEP@ +_GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); +# endif +/* Need to cast, because on Haiku, the first parameter is + unsigned int n. */ +_GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); +# endif +_GL_CXXALIASWARN (usleep); +#elif defined GNULIB_POSIXCHECK +# undef usleep +# if HAVE_RAW_DECL_USLEEP +_GL_WARN_ON_USE (usleep, "usleep is unportable - " + "use gnulib module usleep for portability"); +# endif +#endif + + +#if @GNULIB_WRITE@ +/* Write up to COUNT bytes starting at BUF to file descriptor FD. + See the POSIX:2008 specification + . */ +# if @REPLACE_WRITE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef write +# define write rpl_write +# endif +_GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); +# elif defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef write +# define write _write +# endif +_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); +# else +_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +# endif +_GL_CXXALIASWARN (write); +#elif @GNULIB_MDA_WRITE@ +/* On native Windows, map 'write' to '_write', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::write always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef write +# define write _write +# endif +# ifdef __MINGW32__ +_GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); +# else +_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); +# endif +# else +_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +# endif +_GL_CXXALIASWARN (write); +#endif + +_GL_INLINE_HEADER_END + +#endif /* _@GUARD_PREFIX@_UNISTD_H */ +#endif /* _GL_INCLUDING_UNISTD_H */ +#endif /* _@GUARD_PREFIX@_UNISTD_H */ diff --git a/3rdPartner/libiconv/srclib/unitypes.in.h b/3rdPartner/libiconv/srclib/unitypes.in.h new file mode 100644 index 0000000..4ea83aa --- /dev/null +++ b/3rdPartner/libiconv/srclib/unitypes.in.h @@ -0,0 +1,61 @@ +/* Elementary types and macros for the GNU UniString library. + Copyright (C) 2002, 2005-2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _UNITYPES_H +#define _UNITYPES_H + +/* Get uint8_t, uint16_t, uint32_t. */ +#include + +/* Type representing a Unicode character. */ +typedef uint32_t ucs4_t; + +/* Attribute of a function whose result depends only on the arguments + (not pointers!) and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_CONST +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ +# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) +# else +# define _UC_ATTRIBUTE_CONST +# endif +#endif + +/* Attribute of a function whose result depends only on the arguments + (possibly pointers) and global memory, and which has no side effects. */ +#ifndef _UC_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ +# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _UC_ATTRIBUTE_PURE +# endif +#endif + +/* Qualifier in a function declaration, that asserts that the caller must + pass a pointer to a different object in the specified pointer argument + than in the other pointer arguments. */ +#ifndef _UC_RESTRICT +# if defined __restrict \ + || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ + || __clang_major__ >= 3 +# define _UC_RESTRICT __restrict +# elif 199901L <= __STDC_VERSION__ || defined restrict +# define _UC_RESTRICT restrict +# else +# define _UC_RESTRICT +# endif +#endif + +#endif /* _UNITYPES_H */ diff --git a/3rdPartner/libiconv/srclib/uniwidth.in.h b/3rdPartner/libiconv/srclib/uniwidth.in.h new file mode 100644 index 0000000..d5e62c4 --- /dev/null +++ b/3rdPartner/libiconv/srclib/uniwidth.in.h @@ -0,0 +1,72 @@ +/* Display width functions. + Copyright (C) 2001-2002, 2005, 2007, 2009-2022 Free Software Foundation, + Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef _UNIWIDTH_H +#define _UNIWIDTH_H + +#include "unitypes.h" + +/* Get size_t. */ +#include + +/* Get locale_charset() declaration. */ +#include "localcharset.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Display width. */ + +/* These functions are locale dependent. The encoding argument identifies + the encoding (e.g. "ISO-8859-2" for Polish). */ + +/* Determine number of column positions required for UC. */ +extern int + uc_width (ucs4_t uc, const char *encoding) + _UC_ATTRIBUTE_PURE; + +/* Determine number of column positions required for first N units + (or fewer if S ends before this) in S. */ +extern int + u8_width (const uint8_t *s, size_t n, const char *encoding) + _UC_ATTRIBUTE_PURE; +extern int + u16_width (const uint16_t *s, size_t n, const char *encoding) + _UC_ATTRIBUTE_PURE; +extern int + u32_width (const uint32_t *s, size_t n, const char *encoding) + _UC_ATTRIBUTE_PURE; + +/* Determine number of column positions required for S. */ +extern int + u8_strwidth (const uint8_t *s, const char *encoding) + _UC_ATTRIBUTE_PURE; +extern int + u16_strwidth (const uint16_t *s, const char *encoding) + _UC_ATTRIBUTE_PURE; +extern int + u32_strwidth (const uint32_t *s, const char *encoding) + _UC_ATTRIBUTE_PURE; + + +#ifdef __cplusplus +} +#endif + +#endif /* _UNIWIDTH_H */ diff --git a/3rdPartner/libiconv/srclib/uniwidth/cjk.h b/3rdPartner/libiconv/srclib/uniwidth/cjk.h new file mode 100644 index 0000000..b791ba9 --- /dev/null +++ b/3rdPartner/libiconv/srclib/uniwidth/cjk.h @@ -0,0 +1,37 @@ +/* Test for CJK encoding. + Copyright (C) 2001-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + + This file 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 file 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 program. If not, see . */ + +#include "streq.h" + +static int +is_cjk_encoding (const char *encoding) +{ + if (0 + /* Legacy Japanese encodings */ + || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0) + /* Legacy Chinese encodings */ + || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) + || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0) + || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0) + || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0) + /* Legacy Korean encodings */ + || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0) + || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0)) + return 1; + return 0; +} diff --git a/3rdPartner/libiconv/srclib/uniwidth/width.c b/3rdPartner/libiconv/srclib/uniwidth/width.c new file mode 100644 index 0000000..1c945a8 --- /dev/null +++ b/3rdPartner/libiconv/srclib/uniwidth/width.c @@ -0,0 +1,95 @@ +/* Determine display width of Unicode character. + Copyright (C) 2001-2002, 2006-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2002. + + This file 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 file 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 program. If not, see . */ + +#include + +/* Specification. */ +#include "uniwidth.h" + +#include "cjk.h" + +/* The non-spacing attribute table consists of: + * Non-spacing characters; generated from PropList.txt or + "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt" + * Format control characters; generated from + "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt" + * Zero width characters; generated from + "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" + * Hangul Jamo characters that have conjoining behaviour: + - jungseong = syllable-middle vowels + - jongseong = syllable-final consonants + Rationale: + 1) These characters act like combining characters. They have no + equivalent in legacy character sets. Therefore the EastAsianWidth.txt + file does not really matter for them; UAX #11 East Asian Width + makes it clear that it focus + is on compatibility with traditional Japanese layout. + By contrast, the same glyphs without conjoining behaviour are available + in the U+3130..U+318F block, and these characters are mapped to legacy + character sets, and traditional Japanese layout matters for them. + 2) glibc does the same thing, see + + + */ +#include "uniwidth/width0.h" + +#include "uniwidth/width2.h" +#include "unictype/bitmap.h" + +#define SIZEOF(a) (sizeof(a) / sizeof(a[0])) + + +/* Determine number of column positions required for UC. */ +int +uc_width (ucs4_t uc, const char *encoding) +{ + /* Test for non-spacing or control character. */ + if ((uc >> 9) < SIZEOF (nonspacing_table_ind)) + { + int ind = nonspacing_table_ind[uc >> 9]; + if (ind >= 0) + if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1) + { + if (uc > 0 && uc < 0xa0) + return -1; + else + return 0; + } + } + else if ((uc >> 9) == (0xe0000 >> 9)) + { + if (uc >= 0xe0100) + { + if (uc <= 0xe01ef) + return 0; + } + else + { + if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001) + return 0; + } + } + /* Test for double-width character. */ + if (bitmap_lookup (&u_width2, uc)) + return 2; + /* In ancient CJK encodings, Cyrillic and most other characters are + double-width as well. */ + if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9 + && is_cjk_encoding (encoding)) + return 2; + return 1; +} diff --git a/3rdPartner/libiconv/srclib/uniwidth/width0.h b/3rdPartner/libiconv/srclib/uniwidth/width0.h new file mode 100644 index 0000000..eda0a1d --- /dev/null +++ b/3rdPartner/libiconv/srclib/uniwidth/width0.h @@ -0,0 +1,485 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Table of non-spacing or control characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ + +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation, either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file 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 and the GNU General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see . */ + +static const unsigned char nonspacing_table_data[47*64] = { + /* 0x0000-0x01ff */ + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ + 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ + /* 0x0200-0x03ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ + /* 0x0400-0x05ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ + 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ + 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ + /* 0x0600-0x07ff */ + 0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ + 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ + 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ + 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x20, /* 0x07c0-0x07ff */ + /* 0x0800-0x09ff */ + 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ + 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ + 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ + 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, /* 0x09c0-0x09ff */ + /* 0x0a00-0x0bff */ + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ + 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ + 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xfc, /* 0x0ac0-0x0aff */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ + 0x1e, 0x20, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ + 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ + /* 0x0c00-0x0dff */ + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, /* 0x0c00-0x0c3f */ + 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ + 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x0d00-0x0d3f */ + 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ + 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ + /* 0x0e00-0x0fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ + 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, /* 0x0e80-0x0ebf */ + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ + 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ + /* 0x1000-0x11ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ + 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ + 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x1140-0x117f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1180-0x11bf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x11c0-0x11ff */ + /* 0x1200-0x13ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ + /* 0x1600-0x17ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1700-0x173f */ + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ + 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ + /* 0x1800-0x19ff */ + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ + 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ + /* 0x1a00-0x1bff */ + 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ + 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x1a80-0x1abf */ + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ + 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ + 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */ + 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ + /* 0x1c00-0x1dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ + 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1dc0-0x1dff */ + /* 0x2000-0x21ff */ + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ + 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ + /* 0x2c00-0x2dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ + /* 0x3000-0x31ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ + /* 0xa600-0xa7ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */ + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ + /* 0xa800-0xa9ff */ + 0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, /* 0xa800-0xa83f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ + 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x80, /* 0xa8c0-0xa8ff */ + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ + 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x33, /* 0xa980-0xa9bf */ + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ + /* 0xaa00-0xabff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ + 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ + 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ + /* 0xd600-0xd7ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd600-0xd63f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd640-0xd67f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd680-0xd6bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd6c0-0xd6ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd700-0xd73f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd740-0xd77f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0xd780-0xd7bf */ + 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, /* 0xd7c0-0xd7ff */ + /* 0xfa00-0xfbff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ + /* 0xfe00-0xffff */ + 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ + /* 0x10000-0x101ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ + /* 0x10200-0x103ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */ + /* 0x10a00-0x10bff */ + 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ + /* 0x10c00-0x10dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c00-0x10c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c40-0x10c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c80-0x10cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10cc0-0x10cff */ + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x10d00-0x10d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d40-0x10d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d80-0x10dbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10dc0-0x10dff */ + /* 0x10e00-0x10fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e00-0x10e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e40-0x10e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, /* 0x10e80-0x10ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ec0-0x10eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f00-0x10f3f */ + 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f40-0x10f7f */ + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f80-0x10fbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10fc0-0x10fff */ + /* 0x11000-0x111ff */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, /* 0x11040-0x1107f */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */ + 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ + 0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ + 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ + /* 0x11200-0x113ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ + 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x11300-0x1133f */ + 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ + /* 0x11400-0x115ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ + 0x5c, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */ + 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */ + /* 0x11600-0x117ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */ + 0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ + /* 0x11800-0x119ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, /* 0x11800-0x1183f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11840-0x1187f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11880-0x118bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x118c0-0x118ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x11900-0x1193f */ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11940-0x1197f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11980-0x119bf */ + 0x00, 0x00, 0xf0, 0x0c, 0x01, 0x00, 0x00, 0x00, /* 0x119c0-0x119ff */ + /* 0x11a00-0x11bff */ + 0x7e, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, /* 0x11a00-0x11a3f */ + 0x80, 0x00, 0x7e, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x11a40-0x11a7f */ + 0x00, 0xfc, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x11a80-0x11abf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11ac0-0x11aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b00-0x11b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b40-0x11b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b80-0x11bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11bc0-0x11bff */ + /* 0x11c00-0x11dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb4, /* 0x11d00-0x11d3f */ + 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ + 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ + /* 0x11e00-0x11fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e00-0x11e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e40-0x11e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e80-0x11ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, /* 0x11ec0-0x11eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f00-0x11f3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f40-0x11f7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f80-0x11fbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11fc0-0x11fff */ + /* 0x13400-0x135ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, /* 0x13400-0x1343f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13440-0x1347f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13480-0x134bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x134c0-0x134ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13500-0x1353f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13540-0x1357f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13580-0x135bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x135c0-0x135ff */ + /* 0x16a00-0x16bff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */ + /* 0x16e00-0x16fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */ + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */ + 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */ + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */ + /* 0x1bc00-0x1bdff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */ + 0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */ + /* 0x1ce00-0x1cfff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce00-0x1ce3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce40-0x1ce7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce80-0x1cebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cec0-0x1ceff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, /* 0x1cf00-0x1cf3f */ + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf40-0x1cf7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf80-0x1cfbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cfc0-0x1cfff */ + /* 0x1d000-0x1d1ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ + 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ + /* 0x1d200-0x1d3ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */ + /* 0x1da00-0x1dbff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */ + 0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ + /* 0x1e000-0x1e1ff */ + 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x1e100-0x1e13f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ + /* 0x1e200-0x1e3ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e200-0x1e23f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e240-0x1e27f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, /* 0x1e280-0x1e2bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e2c0-0x1e2ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e300-0x1e33f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e340-0x1e37f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e380-0x1e3bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e3c0-0x1e3ff */ + /* 0x1e800-0x1e9ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ + 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ + 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ +}; +static const signed char nonspacing_table_ind[248] = { + 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ + 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ + 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ + 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ + -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ + -1, -1, -1, 20, -1, -1, -1, -1, /* 0xd000-0xdfff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ + -1, -1, -1, -1, -1, 21, -1, 22, /* 0xf000-0xffff */ + 23, 24, -1, -1, -1, 25, 26, 27, /* 0x10000-0x10fff */ + 28, 29, 30, 31, 32, 33, 34, 35, /* 0x11000-0x11fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ + -1, -1, 36, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ + -1, -1, -1, -1, -1, 37, -1, 38, /* 0x16000-0x16fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ + -1, -1, -1, -1, -1, -1, 39, -1, /* 0x1b000-0x1bfff */ + -1, -1, -1, -1, -1, -1, -1, 40, /* 0x1c000-0x1cfff */ + 41, 42, -1, -1, -1, 43, -1, -1, /* 0x1d000-0x1dfff */ + 44, 45, -1, -1, 46, -1, -1, -1 /* 0x1e000-0x1efff */ +}; diff --git a/3rdPartner/libiconv/srclib/uniwidth/width2.h b/3rdPartner/libiconv/srclib/uniwidth/width2.h new file mode 100644 index 0000000..25364d3 --- /dev/null +++ b/3rdPartner/libiconv/srclib/uniwidth/width2.h @@ -0,0 +1,549 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Width 2 property of Unicode characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ + +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation, either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file 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 and the GNU General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see . */ + +#define header_0 16 +#define header_2 9 +#define header_3 127 +#define header_4 15 +static const +struct + { + int header[1]; + int level1[4]; + short level2[3 << 7]; + unsigned int level3[28 << 4]; + } +u_width2 = +{ + { 4 }, + { + 5 * sizeof (int) / sizeof (short) + 0, + 5 * sizeof (int) / sizeof (short) + 128, + 5 * sizeof (int) / sizeof (short) + 256, + 5 * sizeof (int) / sizeof (short) + 256 + }, + { + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 0, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 16, + 5 + 384 * sizeof (short) / sizeof (int) + 32, + 5 + 384 * sizeof (short) / sizeof (int) + 48, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 64, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 80, + 5 + 384 * sizeof (short) / sizeof (int) + 96, + 5 + 384 * sizeof (short) / sizeof (int) + 112, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 144, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 160, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 176, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 192, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 208, + 5 + 384 * sizeof (short) / sizeof (int) + 224, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 240, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 256, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 272, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 288, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 304, + 5 + 384 * sizeof (short) / sizeof (int) + 320, + 5 + 384 * sizeof (short) / sizeof (int) + 336, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 352, + 5 + 384 * sizeof (short) / sizeof (int) + 368, + 5 + 384 * sizeof (short) / sizeof (int) + 384, + 5 + 384 * sizeof (short) / sizeof (int) + 400, + 5 + 384 * sizeof (short) / sizeof (int) + 416, + 5 + 384 * sizeof (short) / sizeof (int) + 432, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128 + }, + { + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x0C000000U, 0x00000600U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00091E00U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x60000000U, + 0x00300000U, 0x00000000U, 0x000FFF00U, 0x80000000U, + 0x00080000U, 0x60000C02U, 0x00104030U, 0x242C0400U, + 0x00000C20U, 0x00000100U, 0x00B85000U, 0x00000000U, + 0x00E00000U, 0x80010000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x18000000U, 0x00000000U, 0x00210000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x1FFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFF0000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x0000FFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000001U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x0000007FU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x0003000FU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x00000000U, + 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x00000007U, 0x00070000U, 0xFFFF00F0U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000010U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x07FE4000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFBFE001U, 0xFFFFFFFFU, 0xDFFFFFFFU, + 0x000FFFFFU, 0xFFFFFFFFU, 0x000F87FFU, 0xFF11FFFFU, + 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFDU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU, + 0xFFFFFFFFU, 0x3FFFFFFFU, 0xFFFF7800U, 0x040000FFU, + 0x00600000U, 0x00000010U, 0x00000000U, 0xF8000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xE0E7103FU, 0x1FF01800U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00010FFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFF000U, 0xF7FFFFFFU, 0xFFFFFFBFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x1F1F0000U, + 0xFFFF007FU, 0x07FF1FFFU, 0x03FF003FU, 0x007F00FFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U + } +}; diff --git a/3rdPartner/libiconv/srclib/unlocked-io.h b/3rdPartner/libiconv/srclib/unlocked-io.h new file mode 100644 index 0000000..7461d74 --- /dev/null +++ b/3rdPartner/libiconv/srclib/unlocked-io.h @@ -0,0 +1,136 @@ +/* Prefer faster, non-thread-safe stdio functions if available. + + Copyright (C) 2001-2004, 2009-2022 Free Software Foundation, Inc. + + 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 3 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, see . */ + +/* Written by Jim Meyering. */ + +#ifndef UNLOCKED_IO_H +# define UNLOCKED_IO_H 1 + +/* These are wrappers for functions/macros from the GNU C library, and + from other C libraries supporting POSIX's optional thread-safe functions. + + The standard I/O functions are thread-safe. These *_unlocked ones are + more efficient but not thread-safe. That they're not thread-safe is + fine since all of the applications in this package are single threaded. + + Also, some code that is shared with the GNU C library may invoke + the *_unlocked functions directly. On hosts that lack those + functions, invoke the non-thread-safe versions instead. */ + +# include + +# if HAVE_DECL_CLEARERR_UNLOCKED || defined clearerr_unlocked +# undef clearerr +# define clearerr(x) clearerr_unlocked (x) +# else +# define clearerr_unlocked(x) clearerr (x) +# endif + +# if HAVE_DECL_FEOF_UNLOCKED || defined feof_unlocked +# undef feof +# define feof(x) feof_unlocked (x) +# else +# define feof_unlocked(x) feof (x) +# endif + +# if HAVE_DECL_FERROR_UNLOCKED || defined ferror_unlocked +# undef ferror +# define ferror(x) ferror_unlocked (x) +# else +# define ferror_unlocked(x) ferror (x) +# endif + +# if HAVE_DECL_FFLUSH_UNLOCKED || defined fflush_unlocked +# undef fflush +# define fflush(x) fflush_unlocked (x) +# else +# define fflush_unlocked(x) fflush (x) +# endif + +# if HAVE_DECL_FGETS_UNLOCKED || defined fgets_unlocked +# undef fgets +# define fgets(x,y,z) fgets_unlocked (x,y,z) +# else +# define fgets_unlocked(x,y,z) fgets (x,y,z) +# endif + +# if HAVE_DECL_FPUTC_UNLOCKED || defined fputc_unlocked +# undef fputc +# define fputc(x,y) fputc_unlocked (x,y) +# else +# define fputc_unlocked(x,y) fputc (x,y) +# endif + +# if HAVE_DECL_FPUTS_UNLOCKED || defined fputs_unlocked +# undef fputs +# define fputs(x,y) fputs_unlocked (x,y) +# else +# define fputs_unlocked(x,y) fputs (x,y) +# endif + +# if HAVE_DECL_FREAD_UNLOCKED || defined fread_unlocked +# undef fread +# define fread(w,x,y,z) fread_unlocked (w,x,y,z) +# else +# define fread_unlocked(w,x,y,z) fread (w,x,y,z) +# endif + +# if HAVE_DECL_FWRITE_UNLOCKED || defined fwrite_unlocked +# undef fwrite +# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) +# else +# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) +# endif + +# if HAVE_DECL_GETC_UNLOCKED || defined get_unlocked +# undef getc +# define getc(x) getc_unlocked (x) +# else +# define getc_unlocked(x) getc (x) +# endif + +# if HAVE_DECL_GETCHAR_UNLOCKED || defined getchar_unlocked +# undef getchar +# define getchar() getchar_unlocked () +# else +# define getchar_unlocked() getchar () +# endif + +# if HAVE_DECL_PUTC_UNLOCKED || defined putc_unlocked +# undef putc +# define putc(x,y) putc_unlocked (x,y) +# else +# define putc_unlocked(x,y) putc (x,y) +# endif + +# if HAVE_DECL_PUTCHAR_UNLOCKED || defined putchar_unlocked +# undef putchar +# define putchar(x) putchar_unlocked (x) +# else +# define putchar_unlocked(x) putchar (x) +# endif + +# undef flockfile +# define flockfile(x) ((void) 0) + +# undef ftrylockfile +# define ftrylockfile(x) 0 + +# undef funlockfile +# define funlockfile(x) ((void) 0) + +#endif /* UNLOCKED_IO_H */ diff --git a/3rdPartner/libiconv/srclib/verify.h b/3rdPartner/libiconv/srclib/verify.h new file mode 100644 index 0000000..c5c63ae --- /dev/null +++ b/3rdPartner/libiconv/srclib/verify.h @@ -0,0 +1,318 @@ +/* Compile-time assert-like macros. + + Copyright (C) 2005-2006, 2009-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ + +#ifndef _GL_VERIFY_H +#define _GL_VERIFY_H + + +/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) + works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. + + Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as + per C2x. This is supported by GCC 9.1+. + + Support compilers claiming conformance to the relevant standard, + and also support GCC when not pedantic. If we were willing to slow + 'configure' down we could also use it with other compilers, but + since this affects only the quality of diagnostics, why bother? */ +#ifndef __cplusplus +# if (201112L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ \ + && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__))) +# define _GL_HAVE__STATIC_ASSERT 1 +# endif +# if (202000L <= __STDC_VERSION__ \ + || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) +# define _GL_HAVE__STATIC_ASSERT1 1 +# endif +#endif + +/* FreeBSD 9.1 , included by and lots of other + system headers, defines a conflicting _Static_assert that is no + better than ours; override it. */ +#ifndef _GL_HAVE__STATIC_ASSERT +# include +# undef _Static_assert +#endif + +/* Each of these macros verifies that its argument R is nonzero. To + be portable, R should be an integer constant expression. Unlike + assert (R), there is no run-time overhead. + + If _Static_assert works, verify (R) uses it directly. Similarly, + _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct + that is an operand of sizeof. + + The code below uses several ideas for C++ compilers, and for C + compilers that do not support _Static_assert: + + * The first step is ((R) ? 1 : -1). Given an expression R, of + integral or boolean or floating-point type, this yields an + expression of integral type, whose value is later verified to be + constant and nonnegative. + + * Next this expression W is wrapped in a type + struct _gl_verify_type { + unsigned int _gl_verify_error_if_negative: W; + }. + If W is negative, this yields a compile-time error. No compiler can + deal with a bit-field of negative size. + + One might think that an array size check would have the same + effect, that is, that the type struct { unsigned int dummy[W]; } + would work as well. However, inside a function, some compilers + (such as C++ compilers and GNU C) allow local parameters and + variables inside array size expressions. With these compilers, + an array size check would not properly diagnose this misuse of + the verify macro: + + void function (int n) { verify (n < 0); } + + * For the verify macro, the struct _gl_verify_type will need to + somehow be embedded into a declaration. To be portable, this + declaration must declare an object, a constant, a function, or a + typedef name. If the declared entity uses the type directly, + such as in + + struct dummy {...}; + typedef struct {...} dummy; + extern struct {...} *dummy; + extern void dummy (struct {...} *); + extern struct {...} *dummy (void); + + two uses of the verify macro would yield colliding declarations + if the entity names are not disambiguated. A workaround is to + attach the current line number to the entity name: + + #define _GL_CONCAT0(x, y) x##y + #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) + extern struct {...} * _GL_CONCAT (dummy, __LINE__); + + But this has the problem that two invocations of verify from + within the same macro would collide, since the __LINE__ value + would be the same for both invocations. (The GCC __COUNTER__ + macro solves this problem, but is not portable.) + + A solution is to use the sizeof operator. It yields a number, + getting rid of the identity of the type. Declarations like + + extern int dummy [sizeof (struct {...})]; + extern void dummy (int [sizeof (struct {...})]); + extern int (*dummy (void)) [sizeof (struct {...})]; + + can be repeated. + + * Should the implementation use a named struct or an unnamed struct? + Which of the following alternatives can be used? + + extern int dummy [sizeof (struct {...})]; + extern int dummy [sizeof (struct _gl_verify_type {...})]; + extern void dummy (int [sizeof (struct {...})]); + extern void dummy (int [sizeof (struct _gl_verify_type {...})]); + extern int (*dummy (void)) [sizeof (struct {...})]; + extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; + + In the second and sixth case, the struct type is exported to the + outer scope; two such declarations therefore collide. GCC warns + about the first, third, and fourth cases. So the only remaining + possibility is the fifth case: + + extern int (*dummy (void)) [sizeof (struct {...})]; + + * GCC warns about duplicate declarations of the dummy function if + -Wredundant-decls is used. GCC 4.3 and later have a builtin + __COUNTER__ macro that can let us generate unique identifiers for + each dummy function, to suppress this warning. + + * This implementation exploits the fact that older versions of GCC, + which do not support _Static_assert, also do not warn about the + last declaration mentioned above. + + * GCC warns if -Wnested-externs is enabled and 'verify' is used + within a function body; but inside a function, you can always + arrange to use verify_expr instead. + + * In C++, any struct definition inside sizeof is invalid. + Use a template type to work around the problem. */ + +/* Concatenate two preprocessor tokens. */ +#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) +#define _GL_CONCAT0(x, y) x##y + +/* _GL_COUNTER is an integer, preferably one that changes each time we + use it. Use __COUNTER__ if it works, falling back on __LINE__ + otherwise. __LINE__ isn't perfect, but it's better than a + constant. */ +#if defined __COUNTER__ && __COUNTER__ != __COUNTER__ +# define _GL_COUNTER __COUNTER__ +#else +# define _GL_COUNTER __LINE__ +#endif + +/* Generate a symbol with the given prefix, making it unique if + possible. */ +#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) + +/* Verify requirement R at compile-time, as an integer constant expression + that returns 1. If R is false, fail at compile-time, preferably + with a diagnostic that includes the string-literal DIAGNOSTIC. */ + +#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ + (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) + +#ifdef __cplusplus +# if !GNULIB_defined_struct__gl_verify_type +template + struct _gl_verify_type { + unsigned int _gl_verify_error_if_negative: w; + }; +# define GNULIB_defined_struct__gl_verify_type 1 +# endif +# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ + _gl_verify_type<(R) ? 1 : -1> +#elif defined _GL_HAVE__STATIC_ASSERT +# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ + struct { \ + _Static_assert (R, DIAGNOSTIC); \ + int _gl_dummy; \ + } +#else +# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ + struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } +#endif + +/* Verify requirement R at compile-time, as a declaration without a + trailing ';'. If R is false, fail at compile-time. + + This macro requires three or more arguments but uses at most the first + two, so that the _Static_assert macro optionally defined below supports + both the C11 two-argument syntax and the C2x one-argument syntax. + + Unfortunately, unlike C11, this implementation must appear as an + ordinary declaration, and cannot appear inside struct { ... }. */ + +#if 200410 <= __cpp_static_assert +# define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) +#elif defined _GL_HAVE__STATIC_ASSERT +# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) +#else +# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ + extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ + [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] +# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# pragma GCC diagnostic ignored "-Wnested-externs" +# endif +#endif + +/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ +#ifdef _GL_STATIC_ASSERT_H +# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert +# define _Static_assert(...) \ + _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) +# endif +# if __cpp_static_assert < 201411 && !defined static_assert +# define static_assert _Static_assert /* C11 requires this #define. */ +# endif +#endif + +/* @assert.h omit start@ */ + +#if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) +# define _GL_HAS_BUILTIN_TRAP 1 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) +#else +# define _GL_HAS_BUILTIN_TRAP 0 +#endif + +#if 4 < __GNUC__ + (5 <= __GNUC_MINOR__) +# define _GL_HAS_BUILTIN_UNREACHABLE 1 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) +#else +# define _GL_HAS_BUILTIN_UNREACHABLE 0 +#endif + +/* Each of these macros verifies that its argument R is nonzero. To + be portable, R should be an integer constant expression. Unlike + assert (R), there is no run-time overhead. + + There are two macros, since no single macro can be used in all + contexts in C. verify_expr (R, E) is for scalar contexts, including + integer constant expression contexts. verify (R) is for declaration + contexts, e.g., the top level. */ + +/* Verify requirement R at compile-time. Return the value of the + expression E. */ + +#define verify_expr(R, E) \ + (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) + +/* Verify requirement R at compile-time, as a declaration without a + trailing ';'. verify (R) acts like static_assert (R) except that + it is portable to C11/C++14 and earlier, it can issue better + diagnostics, and its name is shorter and may be more convenient. */ + +#ifdef __PGI +/* PGI barfs if R is long. */ +# define verify(R) _GL_VERIFY (R, "verify (...)", -) +#else +# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) +#endif + +/* Assume that R always holds. Behavior is undefined if R is false, + fails to evaluate, or has side effects. + + 'assume (R)' is a directive from the programmer telling the + compiler that R is true so the compiler needn't generate code to + test R. This is why 'assume' is in verify.h: it's related to + static checking (in this case, static checking done by the + programmer), not dynamic checking. + + 'assume (R)' can affect compilation of all the code, not just code + that happens to be executed after the assume (R) is "executed". + For example, if the code mistakenly does 'assert (R); assume (R);' + the compiler is entitled to optimize away the 'assert (R)'. + + Although assuming R can help a compiler generate better code or + diagnostics, performance can suffer if R uses hard-to-optimize + features such as function calls not inlined by the compiler. + + Avoid Clang's __builtin_assume, as it breaks GNU Emacs master + as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see + . It's not known whether this breakage + is a Clang bug or an Emacs bug; play it safe for now. */ + +#if _GL_HAS_BUILTIN_UNREACHABLE +# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) +#elif 1200 <= _MSC_VER +# define assume(R) __assume (R) +#elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP + /* Doing it this way helps various packages when configured with + --enable-gcc-warnings, which compiles with -Dlint. It's nicer + when 'assume' silences warnings even with older GCCs. */ +# define assume(R) ((R) ? (void) 0 : __builtin_trap ()) +#else + /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ +# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) +#endif + +/* @assert.h omit end@ */ + +#endif diff --git a/3rdPartner/libiconv/srclib/warn-on-use.h b/3rdPartner/libiconv/srclib/warn-on-use.h new file mode 100644 index 0000000..94f5b92 --- /dev/null +++ b/3rdPartner/libiconv/srclib/warn-on-use.h @@ -0,0 +1,149 @@ +/* A C macro for emitting warnings if a function is used. + Copyright (C) 2010-2022 Free Software Foundation, Inc. + + This program 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 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* _GL_WARN_ON_USE (function, "literal string") issues a declaration + for FUNCTION which will then trigger a compiler warning containing + the text of "literal string" anywhere that function is called, if + supported by the compiler. If the compiler does not support this + feature, the macro expands to an unused extern declaration. + + _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the + attribute used in _GL_WARN_ON_USE. If the compiler does not support + this feature, it expands to empty. + + These macros are useful for marking a function as a potential + portability trap, with the intent that "literal string" include + instructions on the replacement function that should be used + instead. + _GL_WARN_ON_USE is for functions with 'extern' linkage. + _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' + linkage. + + However, one of the reasons that a function is a portability trap is + if it has the wrong signature. Declaring FUNCTION with a different + signature in C is a compilation error, so this macro must use the + same type as any existing declaration so that programs that avoid + the problematic FUNCTION do not fail to compile merely because they + included a header that poisoned the function. But this implies that + _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already + have a declaration. Use of this macro implies that there must not + be any other macro hiding the declaration of FUNCTION; but + undefining FUNCTION first is part of the poisoning process anyway + (although for symbols that are provided only via a macro, the result + is a compilation error rather than a warning containing + "literal string"). Also note that in C++, it is only safe to use if + FUNCTION has no overloads. + + For an example, it is possible to poison 'getline' by: + - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], + [getline]) in configure.ac, which potentially defines + HAVE_RAW_DECL_GETLINE + - adding this code to a header that wraps the system : + #undef getline + #if HAVE_RAW_DECL_GETLINE + _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" + "not universally present; use the gnulib module getline"); + #endif + + It is not possible to directly poison global variables. But it is + possible to write a wrapper accessor function, and poison that + (less common usage, like &environ, will cause a compilation error + rather than issue the nice warning, but the end result of informing + the developer about their portability problem is still achieved): + #if HAVE_RAW_DECL_ENVIRON + static char *** + rpl_environ (void) { return &environ; } + _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); + # undef environ + # define environ (*rpl_environ ()) + #endif + or better (avoiding contradictory use of 'static' and 'extern'): + #if HAVE_RAW_DECL_ENVIRON + static char *** + _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") + rpl_environ (void) { return &environ; } + # undef environ + # define environ (*rpl_environ ()) + #endif + */ +#ifndef _GL_WARN_ON_USE + +# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) +/* A compiler attribute is available in gcc versions 4.3.0 and later. */ +# define _GL_WARN_ON_USE(function, message) \ +_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) +# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ + __attribute__ ((__warning__ (message))) +# elif __clang_major__ >= 4 +/* Another compiler attribute is available in clang. */ +# define _GL_WARN_ON_USE(function, message) \ +_GL_WARN_EXTERN_C __typeof__ (function) function \ + __attribute__ ((__diagnose_if__ (1, message, "warning"))) +# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ + __attribute__ ((__diagnose_if__ (1, message, "warning"))) +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +/* Verify the existence of the function. */ +# define _GL_WARN_ON_USE(function, message) \ +_GL_WARN_EXTERN_C __typeof__ (function) function +# define _GL_WARN_ON_USE_ATTRIBUTE(message) +# else /* Unsupported. */ +# define _GL_WARN_ON_USE(function, message) \ +_GL_WARN_EXTERN_C int _gl_warn_on_use +# define _GL_WARN_ON_USE_ATTRIBUTE(message) +# endif +#endif + +/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") + is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the + function is declared with the given prototype, consisting of return type, + parameters, and attributes. + This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does + not work in this case. */ +#ifndef _GL_WARN_ON_USE_CXX +# if !defined __cplusplus +# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ + _GL_WARN_ON_USE (function, msg) +# else +# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) +/* A compiler attribute is available in gcc versions 4.3.0 and later. */ +# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ +extern rettype_gcc function parameters_and_attributes \ + __attribute__ ((__warning__ (msg))) +# elif __clang_major__ >= 4 +/* Another compiler attribute is available in clang. */ +# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ +extern rettype_clang function parameters_and_attributes \ + __attribute__ ((__diagnose_if__ (1, msg, "warning"))) +# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING +/* Verify the existence of the function. */ +# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ +extern rettype_gcc function parameters_and_attributes +# else /* Unsupported. */ +# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ +_GL_WARN_EXTERN_C int _gl_warn_on_use +# endif +# endif +#endif + +/* _GL_WARN_EXTERN_C declaration; + performs the declaration with C linkage. */ +#ifndef _GL_WARN_EXTERN_C +# if defined __cplusplus +# define _GL_WARN_EXTERN_C extern "C" +# else +# define _GL_WARN_EXTERN_C extern +# endif +#endif diff --git a/3rdPartner/libiconv/srclib/wchar.in.h b/3rdPartner/libiconv/srclib/wchar.in.h new file mode 100644 index 0000000..835ddbe --- /dev/null +++ b/3rdPartner/libiconv/srclib/wchar.in.h @@ -0,0 +1,1338 @@ +/* A substitute for ISO C99 , for platforms that have issues. + + Copyright (C) 2007-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Eric Blake. */ + +/* + * ISO C 99 for platforms that have issues. + * + * + * For now, this just ensures proper prerequisite inclusion order and + * the declaration of wcwidth(). + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#if (((defined __need_mbstate_t || defined __need_wint_t) \ + && !defined __MINGW32__) \ + || (defined __hpux \ + && ((defined _INTTYPES_INCLUDED \ + && !defined _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H) \ + || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ + || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ + || defined _GL_ALREADY_INCLUDING_WCHAR_H) +/* Special invocation convention: + - Inside glibc and uClibc header files, but not MinGW. + - On HP-UX 11.00 we have a sequence of nested includes + -> -> , and the latter includes , + once indirectly -> -> -> + and once directly. In both situations 'wint_t' is not yet defined, + therefore we cannot provide the function overrides; instead include only + the system's . + - With MinGW 3.22, when includes , only some part of + is actually processed, and that doesn't include 'mbstate_t'. + - On IRIX 6.5, similarly, we have an include -> , and + the latter includes . But here, we have no way to detect whether + is completely included or is still being included. */ + +#@INCLUDE_NEXT@ @NEXT_WCHAR_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _@GUARD_PREFIX@_WCHAR_H + +#define _GL_ALREADY_INCLUDING_WCHAR_H + +#if @HAVE_FEATURES_H@ +# include /* for __GLIBC__ */ +#endif + +/* In some builds of uClibc, is nonexistent and wchar_t is defined + by . + But avoid namespace pollution on glibc systems. */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +#endif + +/* Include the original if it exists. + Some builds of uClibc lack it. */ +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_WCHAR_H@ +# @INCLUDE_NEXT@ @NEXT_WCHAR_H@ +#endif + +#undef _GL_ALREADY_INCLUDING_WCHAR_H + +#ifndef _@GUARD_PREFIX@_WCHAR_H +#define _@GUARD_PREFIX@_WCHAR_H + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. */ +#ifndef _GL_ATTRIBUTE_DEALLOC +# if __GNUC__ >= 11 +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +# else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +# endif +#endif + +/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#ifndef _GL_ATTRIBUTE_MALLOC +# if __GNUC__ >= 3 || defined __clang__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +# else +# define _GL_ATTRIBUTE_MALLOC +# endif +#endif + +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The attribute __pure__ was added in gcc 2.96. */ +#ifndef _GL_ATTRIBUTE_PURE +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define _GL_ATTRIBUTE_PURE /* empty */ +# endif +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Define wint_t and WEOF. (Also done in wctype.in.h.) */ +#if !@HAVE_WINT_T@ && !defined wint_t +# define wint_t int +# ifndef WEOF +# define WEOF -1 +# endif +#else +/* mingw and MSVC define wint_t as 'unsigned short' in or + . This is too small: ISO C 99 section 7.24.1.(2) says that + wint_t must be "unchanged by default argument promotions". Override it. */ +# if @GNULIBHEADERS_OVERRIDE_WINT_T@ +# if !GNULIB_defined_wint_t +# if @HAVE_CRTDEFS_H@ +# include +# else +# include +# endif +typedef unsigned int rpl_wint_t; +# undef wint_t +# define wint_t rpl_wint_t +# define GNULIB_defined_wint_t 1 +# endif +# endif +# ifndef WEOF +# define WEOF ((wint_t) -1) +# endif +#endif + + +/* Override mbstate_t if it is too small. + On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for + implementing mbrtowc for encodings like UTF-8. + On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is + large enough and overriding it would cause problems in C++ mode. */ +#if !(((defined _WIN32 && !defined __CYGWIN__) || @HAVE_MBSINIT@) && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ +# if !GNULIB_defined_mbstate_t +# if !(defined _AIX || defined _MSC_VER) +typedef int rpl_mbstate_t; +# undef mbstate_t +# define mbstate_t rpl_mbstate_t +# endif +# define GNULIB_defined_mbstate_t 1 +# endif +#endif + +/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have + been included yet. */ +#if @GNULIB_FREE_POSIX@ +# if (@REPLACE_FREE@ && !defined free \ + && !(defined __cplusplus && defined GNULIB_NAMESPACE)) +/* We can't do '#define free rpl_free' here. */ +_GL_EXTERN_C void rpl_free (void *); +# undef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) +# else +# if defined _MSC_VER && !defined free +_GL_EXTERN_C +# if defined _DLL + __declspec (dllimport) +# endif + void __cdecl free (void *); +# else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else +_GL_EXTERN_C void free (void *); +# endif +# endif +# endif +#else +# if defined _MSC_VER && !defined free +_GL_EXTERN_C +# if defined _DLL + __declspec (dllimport) +# endif + void __cdecl free (void *); +# else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else +_GL_EXTERN_C void free (void *); +# endif +# endif +#endif + +/* Convert a single-byte character to a wide character. */ +#if @GNULIB_BTOWC@ +# if @REPLACE_BTOWC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef btowc +# define btowc rpl_btowc +# endif +_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); +_GL_CXXALIAS_RPL (btowc, wint_t, (int c)); +# else +# if !@HAVE_BTOWC@ +_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); +# endif +/* Need to cast, because on mingw, the return type is 'unsigned short'. */ +_GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (btowc); +# endif +#elif defined GNULIB_POSIXCHECK +# undef btowc +# if HAVE_RAW_DECL_BTOWC +_GL_WARN_ON_USE (btowc, "btowc is unportable - " + "use gnulib module btowc for portability"); +# endif +#endif + + +/* Convert a wide character to a single-byte character. */ +#if @GNULIB_WCTOB@ +# if @REPLACE_WCTOB@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wctob +# define wctob rpl_wctob +# endif +_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); +_GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); +# else +# if !defined wctob && !@HAVE_DECL_WCTOB@ +/* wctob is provided by gnulib, or wctob exists but is not declared. */ +_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wctob); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wctob +# if HAVE_RAW_DECL_WCTOB +_GL_WARN_ON_USE (wctob, "wctob is unportable - " + "use gnulib module wctob for portability"); +# endif +#endif + + +/* Test whether *PS is in the initial state. */ +#if @GNULIB_MBSINIT@ +# if @REPLACE_MBSINIT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsinit +# define mbsinit rpl_mbsinit +# endif +_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); +_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); +# else +# if !@HAVE_MBSINIT@ +_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); +# endif +_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mbsinit); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mbsinit +# if HAVE_RAW_DECL_MBSINIT +_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " + "use gnulib module mbsinit for portability"); +# endif +#endif + + +/* Convert a multibyte character to a wide character. */ +#if @GNULIB_MBRTOWC@ +# if @REPLACE_MBRTOWC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbrtowc +# define mbrtowc rpl_mbrtowc +# endif +_GL_FUNCDECL_RPL (mbrtowc, size_t, + (wchar_t *restrict pwc, const char *restrict s, size_t n, + mbstate_t *restrict ps)); +_GL_CXXALIAS_RPL (mbrtowc, size_t, + (wchar_t *restrict pwc, const char *restrict s, size_t n, + mbstate_t *restrict ps)); +# else +# if !@HAVE_MBRTOWC@ +_GL_FUNCDECL_SYS (mbrtowc, size_t, + (wchar_t *restrict pwc, const char *restrict s, size_t n, + mbstate_t *restrict ps)); +# endif +_GL_CXXALIAS_SYS (mbrtowc, size_t, + (wchar_t *restrict pwc, const char *restrict s, size_t n, + mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mbrtowc); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mbrtowc +# if HAVE_RAW_DECL_MBRTOWC +_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " + "use gnulib module mbrtowc for portability"); +# endif +#endif + + +/* Recognize a multibyte character. */ +#if @GNULIB_MBRLEN@ +# if @REPLACE_MBRLEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbrlen +# define mbrlen rpl_mbrlen +# endif +_GL_FUNCDECL_RPL (mbrlen, size_t, + (const char *restrict s, size_t n, mbstate_t *restrict ps)); +_GL_CXXALIAS_RPL (mbrlen, size_t, + (const char *restrict s, size_t n, mbstate_t *restrict ps)); +# else +# if !@HAVE_MBRLEN@ +_GL_FUNCDECL_SYS (mbrlen, size_t, + (const char *restrict s, size_t n, mbstate_t *restrict ps)); +# endif +_GL_CXXALIAS_SYS (mbrlen, size_t, + (const char *restrict s, size_t n, mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mbrlen); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mbrlen +# if HAVE_RAW_DECL_MBRLEN +_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " + "use gnulib module mbrlen for portability"); +# endif +#endif + + +/* Convert a string to a wide string. */ +#if @GNULIB_MBSRTOWCS@ +# if @REPLACE_MBSRTOWCS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsrtowcs +# define mbsrtowcs rpl_mbsrtowcs +# endif +_GL_FUNCDECL_RPL (mbsrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mbsrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t len, + mbstate_t *restrict ps)); +# else +# if !@HAVE_MBSRTOWCS@ +_GL_FUNCDECL_SYS (mbsrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mbsrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t len, + mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (mbsrtowcs); +# endif +#elif defined GNULIB_POSIXCHECK +# undef mbsrtowcs +# if HAVE_RAW_DECL_MBSRTOWCS +_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " + "use gnulib module mbsrtowcs for portability"); +# endif +#endif + + +/* Convert a string to a wide string. */ +#if @GNULIB_MBSNRTOWCS@ +# if @REPLACE_MBSNRTOWCS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsnrtowcs +# define mbsnrtowcs rpl_mbsnrtowcs +# endif +_GL_FUNCDECL_RPL (mbsnrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t srclen, size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mbsnrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t srclen, size_t len, + mbstate_t *restrict ps)); +# else +# if !@HAVE_MBSNRTOWCS@ +_GL_FUNCDECL_SYS (mbsnrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t srclen, size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mbsnrtowcs, size_t, + (wchar_t *restrict dest, + const char **restrict srcp, size_t srclen, size_t len, + mbstate_t *restrict ps)); +# endif +_GL_CXXALIASWARN (mbsnrtowcs); +#elif defined GNULIB_POSIXCHECK +# undef mbsnrtowcs +# if HAVE_RAW_DECL_MBSNRTOWCS +_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " + "use gnulib module mbsnrtowcs for portability"); +# endif +#endif + + +/* Convert a wide character to a multibyte character. */ +#if @GNULIB_WCRTOMB@ +# if @REPLACE_WCRTOMB@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcrtomb +# define wcrtomb rpl_wcrtomb +# endif +_GL_FUNCDECL_RPL (wcrtomb, size_t, + (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +_GL_CXXALIAS_RPL (wcrtomb, size_t, + (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +# else +# if !@HAVE_WCRTOMB@ +_GL_FUNCDECL_SYS (wcrtomb, size_t, + (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +# endif +_GL_CXXALIAS_SYS (wcrtomb, size_t, + (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcrtomb); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcrtomb +# if HAVE_RAW_DECL_WCRTOMB +_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " + "use gnulib module wcrtomb for portability"); +# endif +#endif + + +/* Convert a wide string to a string. */ +#if @GNULIB_WCSRTOMBS@ +# if @REPLACE_WCSRTOMBS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsrtombs +# define wcsrtombs rpl_wcsrtombs +# endif +_GL_FUNCDECL_RPL (wcsrtombs, size_t, + (char *restrict dest, const wchar_t **restrict srcp, + size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (wcsrtombs, size_t, + (char *restrict dest, const wchar_t **restrict srcp, + size_t len, + mbstate_t *restrict ps)); +# else +# if !@HAVE_WCSRTOMBS@ +_GL_FUNCDECL_SYS (wcsrtombs, size_t, + (char *restrict dest, const wchar_t **restrict srcp, + size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (wcsrtombs, size_t, + (char *restrict dest, const wchar_t **restrict srcp, + size_t len, + mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsrtombs); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsrtombs +# if HAVE_RAW_DECL_WCSRTOMBS +_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " + "use gnulib module wcsrtombs for portability"); +# endif +#endif + + +/* Convert a wide string to a string. */ +#if @GNULIB_WCSNRTOMBS@ +# if @REPLACE_WCSNRTOMBS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsnrtombs +# define wcsnrtombs rpl_wcsnrtombs +# endif +_GL_FUNCDECL_RPL (wcsnrtombs, size_t, + (char *restrict dest, + const wchar_t **restrict srcp, size_t srclen, + size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (wcsnrtombs, size_t, + (char *restrict dest, + const wchar_t **restrict srcp, size_t srclen, + size_t len, + mbstate_t *restrict ps)); +# else +# if !@HAVE_WCSNRTOMBS@ || (defined __cplusplus && defined __sun) +_GL_FUNCDECL_SYS (wcsnrtombs, size_t, + (char *restrict dest, + const wchar_t **restrict srcp, size_t srclen, + size_t len, + mbstate_t *restrict ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (wcsnrtombs, size_t, + (char *restrict dest, + const wchar_t **restrict srcp, size_t srclen, + size_t len, + mbstate_t *restrict ps)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsnrtombs); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsnrtombs +# if HAVE_RAW_DECL_WCSNRTOMBS +_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " + "use gnulib module wcsnrtombs for portability"); +# endif +#endif + + +/* Return the number of screen columns needed for WC. */ +#if @GNULIB_WCWIDTH@ +# if @REPLACE_WCWIDTH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcwidth +# define wcwidth rpl_wcwidth +# endif +_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); +_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); +# else +# if !@HAVE_DECL_WCWIDTH@ +/* wcwidth exists but is not declared. */ +_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcwidth); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcwidth +# if HAVE_RAW_DECL_WCWIDTH +_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " + "use gnulib module wcwidth for portability"); +# endif +#endif + + +/* Search N wide characters of S for C. */ +#if @GNULIB_WMEMCHR@ +# if !@HAVE_WMEMCHR@ +_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) + _GL_ATTRIBUTE_PURE); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { + const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); + wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); + } */ +_GL_CXXALIAS_SYS_CAST2 (wmemchr, + wchar_t *, (const wchar_t *, wchar_t, size_t), + const wchar_t *, (const wchar_t *, wchar_t, size_t)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); +_GL_CXXALIASWARN1 (wmemchr, const wchar_t *, + (const wchar_t *s, wchar_t c, size_t n)); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmemchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmemchr +# if HAVE_RAW_DECL_WMEMCHR +_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " + "use gnulib module wmemchr for portability"); +# endif +#endif + + +/* Compare N wide characters of S1 and S2. */ +#if @GNULIB_WMEMCMP@ +# if !@HAVE_WMEMCMP@ +_GL_FUNCDECL_SYS (wmemcmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wmemcmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmemcmp); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmemcmp +# if HAVE_RAW_DECL_WMEMCMP +_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " + "use gnulib module wmemcmp for portability"); +# endif +#endif + + +/* Copy N wide characters of SRC to DEST. */ +#if @GNULIB_WMEMCPY@ +# if !@HAVE_WMEMCPY@ +_GL_FUNCDECL_SYS (wmemcpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# endif +_GL_CXXALIAS_SYS (wmemcpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmemcpy); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmemcpy +# if HAVE_RAW_DECL_WMEMCPY +_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " + "use gnulib module wmemcpy for portability"); +# endif +#endif + + +/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for + overlapping memory areas. */ +#if @GNULIB_WMEMMOVE@ +# if !@HAVE_WMEMMOVE@ +_GL_FUNCDECL_SYS (wmemmove, wchar_t *, + (wchar_t *dest, const wchar_t *src, size_t n)); +# endif +_GL_CXXALIAS_SYS (wmemmove, wchar_t *, + (wchar_t *dest, const wchar_t *src, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmemmove); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmemmove +# if HAVE_RAW_DECL_WMEMMOVE +_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " + "use gnulib module wmemmove for portability"); +# endif +#endif + + +/* Copy N wide characters of SRC to DEST. + Return pointer to wide characters after the last written wide character. */ +#if @GNULIB_WMEMPCPY@ +# if !@HAVE_WMEMPCPY@ +_GL_FUNCDECL_SYS (wmempcpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# endif +_GL_CXXALIAS_SYS (wmempcpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmempcpy); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmempcpy +# if HAVE_RAW_DECL_WMEMPCPY +_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - " + "use gnulib module wmempcpy for portability"); +# endif +#endif + + +/* Set N wide characters of S to C. */ +#if @GNULIB_WMEMSET@ +# if !@HAVE_WMEMSET@ +_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); +# endif +_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wmemset); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wmemset +# if HAVE_RAW_DECL_WMEMSET +_GL_WARN_ON_USE (wmemset, "wmemset is unportable - " + "use gnulib module wmemset for portability"); +# endif +#endif + + +/* Return the number of wide characters in S. */ +#if @GNULIB_WCSLEN@ +# if !@HAVE_WCSLEN@ +_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcslen); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcslen +# if HAVE_RAW_DECL_WCSLEN +_GL_WARN_ON_USE (wcslen, "wcslen is unportable - " + "use gnulib module wcslen for portability"); +# endif +#endif + + +/* Return the number of wide characters in S, but at most MAXLEN. */ +#if @GNULIB_WCSNLEN@ +# if !@HAVE_WCSNLEN@ +_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); +_GL_CXXALIASWARN (wcsnlen); +#elif defined GNULIB_POSIXCHECK +# undef wcsnlen +# if HAVE_RAW_DECL_WCSNLEN +_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " + "use gnulib module wcsnlen for portability"); +# endif +#endif + + +/* Copy SRC to DEST. */ +#if @GNULIB_WCSCPY@ +# if !@HAVE_WCSCPY@ +_GL_FUNCDECL_SYS (wcscpy, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +# endif +_GL_CXXALIAS_SYS (wcscpy, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcscpy); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcscpy +# if HAVE_RAW_DECL_WCSCPY +_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " + "use gnulib module wcscpy for portability"); +# endif +#endif + + +/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ +#if @GNULIB_WCPCPY@ +# if !@HAVE_WCPCPY@ +_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +# endif +_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +_GL_CXXALIASWARN (wcpcpy); +#elif defined GNULIB_POSIXCHECK +# undef wcpcpy +# if HAVE_RAW_DECL_WCPCPY +_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " + "use gnulib module wcpcpy for portability"); +# endif +#endif + + +/* Copy no more than N wide characters of SRC to DEST. */ +#if @GNULIB_WCSNCPY@ +# if !@HAVE_WCSNCPY@ +_GL_FUNCDECL_SYS (wcsncpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# endif +_GL_CXXALIAS_SYS (wcsncpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsncpy); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsncpy +# if HAVE_RAW_DECL_WCSNCPY +_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " + "use gnulib module wcsncpy for portability"); +# endif +#endif + + +/* Copy no more than N characters of SRC to DEST, returning the address of + the last character written into DEST. */ +#if @GNULIB_WCPNCPY@ +# if !@HAVE_WCPNCPY@ +_GL_FUNCDECL_SYS (wcpncpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +# endif +_GL_CXXALIAS_SYS (wcpncpy, wchar_t *, + (wchar_t *restrict dest, + const wchar_t *restrict src, size_t n)); +_GL_CXXALIASWARN (wcpncpy); +#elif defined GNULIB_POSIXCHECK +# undef wcpncpy +# if HAVE_RAW_DECL_WCPNCPY +_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " + "use gnulib module wcpncpy for portability"); +# endif +#endif + + +/* Append SRC onto DEST. */ +#if @GNULIB_WCSCAT@ +# if !@HAVE_WCSCAT@ +_GL_FUNCDECL_SYS (wcscat, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +# endif +_GL_CXXALIAS_SYS (wcscat, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcscat); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcscat +# if HAVE_RAW_DECL_WCSCAT +_GL_WARN_ON_USE (wcscat, "wcscat is unportable - " + "use gnulib module wcscat for portability"); +# endif +#endif + + +/* Append no more than N wide characters of SRC onto DEST. */ +#if @GNULIB_WCSNCAT@ +# if !@HAVE_WCSNCAT@ +_GL_FUNCDECL_SYS (wcsncat, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src, + size_t n)); +# endif +_GL_CXXALIAS_SYS (wcsncat, wchar_t *, + (wchar_t *restrict dest, const wchar_t *restrict src, + size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsncat); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsncat +# if HAVE_RAW_DECL_WCSNCAT +_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " + "use gnulib module wcsncat for portability"); +# endif +#endif + + +/* Compare S1 and S2. */ +#if @GNULIB_WCSCMP@ +# if !@HAVE_WCSCMP@ +_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcscmp); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcscmp +# if HAVE_RAW_DECL_WCSCMP +_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " + "use gnulib module wcscmp for portability"); +# endif +#endif + + +/* Compare no more than N wide characters of S1 and S2. */ +#if @GNULIB_WCSNCMP@ +# if !@HAVE_WCSNCMP@ +_GL_FUNCDECL_SYS (wcsncmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcsncmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsncmp); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsncmp +# if HAVE_RAW_DECL_WCSNCMP +_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " + "use gnulib module wcsncmp for portability"); +# endif +#endif + + +/* Compare S1 and S2, ignoring case. */ +#if @GNULIB_WCSCASECMP@ +# if !@HAVE_WCSCASECMP@ +_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); +_GL_CXXALIASWARN (wcscasecmp); +#elif defined GNULIB_POSIXCHECK +# undef wcscasecmp +# if HAVE_RAW_DECL_WCSCASECMP +_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " + "use gnulib module wcscasecmp for portability"); +# endif +#endif + + +/* Compare no more than N chars of S1 and S2, ignoring case. */ +#if @GNULIB_WCSNCASECMP@ +# if !@HAVE_WCSNCASECMP@ +_GL_FUNCDECL_SYS (wcsncasecmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcsncasecmp, int, + (const wchar_t *s1, const wchar_t *s2, size_t n)); +_GL_CXXALIASWARN (wcsncasecmp); +#elif defined GNULIB_POSIXCHECK +# undef wcsncasecmp +# if HAVE_RAW_DECL_WCSNCASECMP +_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " + "use gnulib module wcsncasecmp for portability"); +# endif +#endif + + +/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE + category of the current locale. */ +#if @GNULIB_WCSCOLL@ +# if !@HAVE_WCSCOLL@ +_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); +# endif +_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcscoll); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcscoll +# if HAVE_RAW_DECL_WCSCOLL +_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " + "use gnulib module wcscoll for portability"); +# endif +#endif + + +/* Transform S2 into array pointed to by S1 such that if wcscmp is applied + to two transformed strings the result is the as applying 'wcscoll' to the + original strings. */ +#if @GNULIB_WCSXFRM@ +# if !@HAVE_WCSXFRM@ +_GL_FUNCDECL_SYS (wcsxfrm, size_t, + (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); +# endif +_GL_CXXALIAS_SYS (wcsxfrm, size_t, + (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsxfrm); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsxfrm +# if HAVE_RAW_DECL_WCSXFRM +_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " + "use gnulib module wcsxfrm for portability"); +# endif +#endif + + +/* Duplicate S, returning an identical malloc'd string. */ +#if @GNULIB_WCSDUP@ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsdup +# define wcsdup _wcsdup +# endif +_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); +# else +# if !@HAVE_WCSDUP@ || __GNUC__ >= 11 +_GL_FUNCDECL_SYS (wcsdup, wchar_t *, + (const wchar_t *s) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); +# endif +_GL_CXXALIASWARN (wcsdup); +#else +# if __GNUC__ >= 11 && !defined wcsdup +/* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free. */ +_GL_FUNCDECL_SYS (wcsdup, wchar_t *, + (const wchar_t *s) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# endif +# if defined GNULIB_POSIXCHECK +# undef wcsdup +# if HAVE_RAW_DECL_WCSDUP +_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " + "use gnulib module wcsdup for portability"); +# endif +# elif @GNULIB_MDA_WCSDUP@ +/* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not + required. In C++ with GNULIB_NAMESPACE, avoid differences between + platforms by defining GNULIB_NAMESPACE::wcsdup always. */ +# if defined _WIN32 && !defined __CYGWIN__ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsdup +# define wcsdup _wcsdup +# endif +_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); +# else +_GL_FUNCDECL_SYS (wcsdup, wchar_t *, + (const wchar_t *s) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); +# if @HAVE_DECL_WCSDUP@ +_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); +# endif +# endif +# if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_DECL_WCSDUP@ +_GL_CXXALIASWARN (wcsdup); +# endif +# endif +#endif + + +/* Find the first occurrence of WC in WCS. */ +#if @GNULIB_WCSCHR@ +# if !@HAVE_WCSCHR@ +_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) + _GL_ATTRIBUTE_PURE); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { + const wchar_t * std::wcschr (const wchar_t *, wchar_t); + wchar_t * std::wcschr (wchar_t *, wchar_t); + } */ +_GL_CXXALIAS_SYS_CAST2 (wcschr, + wchar_t *, (const wchar_t *, wchar_t), + const wchar_t *, (const wchar_t *, wchar_t)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); +_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcschr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcschr +# if HAVE_RAW_DECL_WCSCHR +_GL_WARN_ON_USE (wcschr, "wcschr is unportable - " + "use gnulib module wcschr for portability"); +# endif +#endif + + +/* Find the last occurrence of WC in WCS. */ +#if @GNULIB_WCSRCHR@ +# if !@HAVE_WCSRCHR@ +_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) + _GL_ATTRIBUTE_PURE); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { + const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); + wchar_t * std::wcsrchr (wchar_t *, wchar_t); + } */ +_GL_CXXALIAS_SYS_CAST2 (wcsrchr, + wchar_t *, (const wchar_t *, wchar_t), + const wchar_t *, (const wchar_t *, wchar_t)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); +_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsrchr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsrchr +# if HAVE_RAW_DECL_WCSRCHR +_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " + "use gnulib module wcsrchr for portability"); +# endif +#endif + + +/* Return the length of the initial segmet of WCS which consists entirely + of wide characters not in REJECT. */ +#if @GNULIB_WCSCSPN@ +# if !@HAVE_WCSCSPN@ +_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcscspn); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcscspn +# if HAVE_RAW_DECL_WCSCSPN +_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " + "use gnulib module wcscspn for portability"); +# endif +#endif + + +/* Return the length of the initial segmet of WCS which consists entirely + of wide characters in ACCEPT. */ +#if @GNULIB_WCSSPN@ +# if !@HAVE_WCSSPN@ +_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsspn); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsspn +# if HAVE_RAW_DECL_WCSSPN +_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " + "use gnulib module wcsspn for portability"); +# endif +#endif + + +/* Find the first occurrence in WCS of any character in ACCEPT. */ +#if @GNULIB_WCSPBRK@ +# if !@HAVE_WCSPBRK@ +_GL_FUNCDECL_SYS (wcspbrk, wchar_t *, + (const wchar_t *wcs, const wchar_t *accept) + _GL_ATTRIBUTE_PURE); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { + const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); + wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); + } */ +_GL_CXXALIAS_SYS_CAST2 (wcspbrk, + wchar_t *, (const wchar_t *, const wchar_t *), + const wchar_t *, (const wchar_t *, const wchar_t *)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (wcspbrk, wchar_t *, + (wchar_t *wcs, const wchar_t *accept)); +_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, + (const wchar_t *wcs, const wchar_t *accept)); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcspbrk); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcspbrk +# if HAVE_RAW_DECL_WCSPBRK +_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " + "use gnulib module wcspbrk for portability"); +# endif +#endif + + +/* Find the first occurrence of NEEDLE in HAYSTACK. */ +#if @GNULIB_WCSSTR@ +# if !@HAVE_WCSSTR@ +_GL_FUNCDECL_SYS (wcsstr, wchar_t *, + (const wchar_t *restrict haystack, + const wchar_t *restrict needle) + _GL_ATTRIBUTE_PURE); +# endif + /* On some systems, this function is defined as an overloaded function: + extern "C++" { + const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); + wchar_t * std::wcsstr (wchar_t *, const wchar_t *); + } */ +_GL_CXXALIAS_SYS_CAST2 (wcsstr, + wchar_t *, + (const wchar_t *restrict, const wchar_t *restrict), + const wchar_t *, + (const wchar_t *restrict, const wchar_t *restrict)); +# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ + && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) +_GL_CXXALIASWARN1 (wcsstr, wchar_t *, + (wchar_t *restrict haystack, + const wchar_t *restrict needle)); +_GL_CXXALIASWARN1 (wcsstr, const wchar_t *, + (const wchar_t *restrict haystack, + const wchar_t *restrict needle)); +# elif __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsstr); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsstr +# if HAVE_RAW_DECL_WCSSTR +_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " + "use gnulib module wcsstr for portability"); +# endif +#endif + + +/* Divide WCS into tokens separated by characters in DELIM. */ +#if @GNULIB_WCSTOK@ +# if @REPLACE_WCSTOK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcstok +# define wcstok rpl_wcstok +# endif +_GL_FUNCDECL_RPL (wcstok, wchar_t *, + (wchar_t *restrict wcs, const wchar_t *restrict delim, + wchar_t **restrict ptr)); +_GL_CXXALIAS_RPL (wcstok, wchar_t *, + (wchar_t *restrict wcs, const wchar_t *restrict delim, + wchar_t **restrict ptr)); +# else +# if !@HAVE_WCSTOK@ +_GL_FUNCDECL_SYS (wcstok, wchar_t *, + (wchar_t *restrict wcs, const wchar_t *restrict delim, + wchar_t **restrict ptr)); +# endif +_GL_CXXALIAS_SYS (wcstok, wchar_t *, + (wchar_t *restrict wcs, const wchar_t *restrict delim, + wchar_t **restrict ptr)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcstok); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcstok +# if HAVE_RAW_DECL_WCSTOK +_GL_WARN_ON_USE (wcstok, "wcstok is unportable - " + "use gnulib module wcstok for portability"); +# endif +#endif + + +/* Determine number of column positions required for first N wide + characters (or fewer if S ends before this) in S. */ +#if @GNULIB_WCSWIDTH@ +# if @REPLACE_WCSWIDTH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcswidth +# define wcswidth rpl_wcswidth +# endif +_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) + _GL_ATTRIBUTE_PURE); +_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); +# else +# if !@HAVE_WCSWIDTH@ +_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) + _GL_ATTRIBUTE_PURE); +# endif +_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcswidth); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcswidth +# if HAVE_RAW_DECL_WCSWIDTH +_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " + "use gnulib module wcswidth for portability"); +# endif +#endif + + +/* Convert *TP to a date and time wide string. See + . */ +#if @GNULIB_WCSFTIME@ +# if @REPLACE_WCSFTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsftime +# define wcsftime rpl_wcsftime +# endif +_GL_FUNCDECL_RPL (wcsftime, size_t, + (wchar_t *restrict __buf, size_t __bufsize, + const wchar_t *restrict __fmt, + const struct tm *restrict __tp) + _GL_ARG_NONNULL ((1, 3, 4))); +_GL_CXXALIAS_RPL (wcsftime, size_t, + (wchar_t *restrict __buf, size_t __bufsize, + const wchar_t *restrict __fmt, + const struct tm *restrict __tp)); +# else +# if !@HAVE_WCSFTIME@ +_GL_FUNCDECL_SYS (wcsftime, size_t, + (wchar_t *restrict __buf, size_t __bufsize, + const wchar_t *restrict __fmt, + const struct tm *restrict __tp) + _GL_ARG_NONNULL ((1, 3, 4))); +# endif +_GL_CXXALIAS_SYS (wcsftime, size_t, + (wchar_t *restrict __buf, size_t __bufsize, + const wchar_t *restrict __fmt, + const struct tm *restrict __tp)); +# endif +# if __GLIBC__ >= 2 +_GL_CXXALIASWARN (wcsftime); +# endif +#elif defined GNULIB_POSIXCHECK +# undef wcsftime +# if HAVE_RAW_DECL_WCSFTIME +_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " + "use gnulib module wcsftime for portability"); +# endif +#endif + + +#endif /* _@GUARD_PREFIX@_WCHAR_H */ +#endif /* _@GUARD_PREFIX@_WCHAR_H */ +#endif diff --git a/3rdPartner/libiconv/srclib/xalloc-oversized.h b/3rdPartner/libiconv/srclib/xalloc-oversized.h new file mode 100644 index 0000000..aefa6fd --- /dev/null +++ b/3rdPartner/libiconv/srclib/xalloc-oversized.h @@ -0,0 +1,65 @@ +/* xalloc-oversized.h -- memory allocation size checking + + Copyright (C) 1990-2000, 2003-2004, 2006-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +#ifndef XALLOC_OVERSIZED_H_ +#define XALLOC_OVERSIZED_H_ + +#include +#include + +/* True if N * S does not fit into both ptrdiff_t and size_t. + N and S should be nonnegative and free of side effects. + This expands to a constant expression if N and S are both constants. + By gnulib convention, SIZE_MAX represents overflow in size_t + calculations, so the conservative size_t-based dividend to use here + is SIZE_MAX - 1. */ +#define __xalloc_oversized(n, s) \ + ((s) != 0 \ + && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ + < (n))) + +/* Return 1 if and only if an array of N objects, each of size S, + cannot exist reliably because its total size in bytes would exceed + MIN (PTRDIFF_MAX, SIZE_MAX - 1). + + N and S should be nonnegative and free of side effects. + + Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can + misbehave if N and S are both narrower than ptrdiff_t and size_t, + and can be rewritten as (xalloc_oversized (N, S) ? NULL + : malloc (N * (size_t) S)). + + This is a macro, not a function, so that it works even if an + argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ +#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX +# define xalloc_oversized(n, s) \ + __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) +#elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ + && PTRDIFF_MAX < SIZE_MAX) +# define xalloc_oversized(n, s) \ + (__builtin_constant_p (n) && __builtin_constant_p (s) \ + ? __xalloc_oversized (n, s) \ + : ({ ptrdiff_t __xalloc_count; \ + __builtin_mul_overflow (n, s, &__xalloc_count); })) + +/* Other compilers use integer division; this may be slower but is + more portable. */ +#else +# define xalloc_oversized(n, s) __xalloc_oversized (n, s) +#endif + +#endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/3rdPartner/libiconv/srclib/xalloc.h b/3rdPartner/libiconv/srclib/xalloc.h new file mode 100644 index 0000000..c4ba23c --- /dev/null +++ b/3rdPartner/libiconv/srclib/xalloc.h @@ -0,0 +1,158 @@ +/* malloc with out of memory checking. + Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + 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 3 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, see . */ + +#ifndef _XALLOC_H +#define _XALLOC_H + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Defined in xmalloc.c. */ + +/* Allocate SIZE bytes of memory dynamically, with error checking. */ +extern void *xmalloc (size_t size); + +/* Allocate memory for NMEMB elements of SIZE bytes, with error checking. + SIZE must be > 0. */ +extern void *xnmalloc (size_t nmemb, size_t size); + +/* Allocate SIZE bytes of memory dynamically, with error checking, + and zero it. */ +extern void *xzalloc (size_t size); + +/* Allocate memory for NMEMB elements of SIZE bytes, with error checking, + and zero it. */ +extern void *xcalloc (size_t nmemb, size_t size); + +/* Change the size of an allocated block of memory PTR to SIZE bytes, + with error checking. If PTR is NULL, run xmalloc. */ +extern void *xrealloc (void *ptr, size_t size); +#ifdef __cplusplus +} +template + inline T * xrealloc (T * ptr, size_t size) + { + return (T *) xrealloc ((void *) ptr, size); + } +extern "C" { +#endif + +/* This function is always triggered when memory is exhausted. It is + in charge of honoring the three previous items. This is the + function to call when one wants the program to die because of a + memory allocation failure. */ +extern void xalloc_die (void) +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) && !__STRICT_ANSI__ + __attribute__ ((__noreturn__)) +#endif + ; + +/* In the following macros, T must be an elementary or structure/union or + typedef'ed type, or a pointer to such a type. To apply one of the + following macros to a function pointer or array type, you need to typedef + it first and use the typedef name. */ + +/* Allocate an object of type T dynamically, with error checking. */ +/* extern T *XMALLOC (typename T); */ +#define XMALLOC(T) \ + ((T *) xmalloc (sizeof (T))) + +/* Allocate memory for NMEMB elements of type T, with error checking. */ +/* extern T *XNMALLOC (size_t nmemb, typename T); */ +#if HAVE_INLINE +/* xnmalloc performs a division and multiplication by sizeof (T). Arrange to + perform the division at compile-time and the multiplication with a factor + known at compile-time. */ +# define XNMALLOC(N,T) \ + ((T *) (sizeof (T) == 1 \ + ? xmalloc (N) \ + : xnboundedmalloc(N, (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / sizeof (T), sizeof (T)))) +static inline void * +xnboundedmalloc (size_t n, size_t bound, size_t s) +{ + if (n > bound) + xalloc_die (); + return xmalloc (n * s); +} +#else +# define XNMALLOC(N,T) \ + ((T *) (sizeof (T) == 1 ? xmalloc (N) : xnmalloc (N, sizeof (T)))) +#endif + +/* Allocate an object of type T dynamically, with error checking, + and zero it. */ +/* extern T *XZALLOC (typename T); */ +#define XZALLOC(T) \ + ((T *) xzalloc (sizeof (T))) + +/* Allocate memory for NMEMB elements of type T, with error checking, + and zero it. */ +/* extern T *XCALLOC (size_t nmemb, typename T); */ +#define XCALLOC(N,T) \ + ((T *) xcalloc (N, sizeof (T))) + +/* Return a pointer to a new buffer of N bytes. This is like xmalloc, + except it returns char *. */ +#define xcharalloc(N) \ + XNMALLOC (N, char) + + +/* Defined in xstrdup.c. */ + +/* Return a newly allocated copy of the N bytes of memory starting at P. */ +extern void *xmemdup (const void *p, size_t n); +#ifdef __cplusplus +} +template + inline T * xmemdup (const T * p, size_t n) + { + return (T *) xmemdup ((const void *) p, n); + } +extern "C" { +#endif + +/* Return a newly allocated copy of STRING. */ +extern char *xstrdup (const char *string); + + +/* Return 1 if an array of N objects, each of size S, cannot exist due + to size arithmetic overflow. S must be positive and N must be + nonnegative. This is a macro, not an inline function, so that it + works correctly even when SIZE_MAX < N. + + By gnulib convention, SIZE_MAX represents overflow in size + calculations, so the conservative dividend to use here is + SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. + However, malloc (SIZE_MAX) fails on all known hosts where + sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for + exactly-SIZE_MAX allocations on such hosts; this avoids a test and + branch when S is known to be 1. */ +# define xalloc_oversized(n, s) \ + ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) + + +#ifdef __cplusplus +} +#endif + + +#endif /* _XALLOC_H */ diff --git a/3rdPartner/libiconv/srclib/xmalloc.c b/3rdPartner/libiconv/srclib/xmalloc.c new file mode 100644 index 0000000..d749a4a --- /dev/null +++ b/3rdPartner/libiconv/srclib/xmalloc.c @@ -0,0 +1,128 @@ +/* xmalloc.c -- malloc with out of memory checking + Copyright (C) 1990-1996, 2000-2003, 2005-2007 Free Software Foundation, Inc. + + 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 3 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, see . */ + +#include + +/* Specification. */ +#include "xalloc.h" + +#include + +#include "error.h" +#include "gettext.h" + +#define _(str) gettext (str) + + +/* Exit value when the requested amount of memory is not available. + The caller may set it to some other value. */ +int xmalloc_exit_failure = EXIT_FAILURE; + +void +xalloc_die () +{ + error (xmalloc_exit_failure, 0, _("memory exhausted")); + /* _Noreturn cannot be given to error, since it may return if + its first argument is 0. To help compilers understand the + xalloc_die does terminate, call exit. */ + exit (EXIT_FAILURE); +} + +static void * +fixup_null_alloc (size_t n) +{ + void *p; + + p = NULL; + if (n == 0) + p = malloc ((size_t) 1); + if (p == NULL) + xalloc_die (); + return p; +} + +/* Allocate N bytes of memory dynamically, with error checking. */ + +void * +xmalloc (size_t n) +{ + void *p; + + p = malloc (n); + if (p == NULL) + p = fixup_null_alloc (n); + return p; +} + +/* Allocate memory for NMEMB elements of SIZE bytes, with error checking. + SIZE must be > 0. */ + +void * +xnmalloc (size_t nmemb, size_t size) +{ + size_t n; + void *p; + + if (xalloc_oversized (nmemb, size)) + xalloc_die (); + n = nmemb * size; + p = malloc (n); + if (p == NULL) + p = fixup_null_alloc (n); + return p; +} + +/* Allocate SIZE bytes of memory dynamically, with error checking, + and zero it. */ + +void * +xzalloc (size_t size) +{ + void *p; + + p = xmalloc (size); + memset (p, 0, size); + return p; +} + +/* Allocate memory for N elements of S bytes, with error checking, + and zero it. */ + +void * +xcalloc (size_t n, size_t s) +{ + void *p; + + p = calloc (n, s); + if (p == NULL) + p = fixup_null_alloc (n); + return p; +} + +/* Change the size of an allocated block of memory P to N bytes, + with error checking. + If P is NULL, run xmalloc. */ + +void * +xrealloc (void *p, size_t n) +{ + if (p == NULL) + return xmalloc (n); + p = realloc (p, n); + if (p == NULL) + p = fixup_null_alloc (n); + return p; +} diff --git a/3rdPartner/libiconv/srclib/xreadlink.c b/3rdPartner/libiconv/srclib/xreadlink.c new file mode 100644 index 0000000..b496a52 --- /dev/null +++ b/3rdPartner/libiconv/srclib/xreadlink.c @@ -0,0 +1,44 @@ +/* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage + + Copyright (C) 2001, 2003-2007, 2009-2022 Free Software Foundation, Inc. + + 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 3 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, see . */ + +/* Written by Jim Meyering + and Bruno Haible . */ + +#include + +/* Specification. */ +#include "xreadlink.h" + +#include + +#include "areadlink.h" +#include "xalloc.h" + +/* Call readlink to get the symbolic link value of FILENAME. + Return a pointer to that NUL-terminated string in malloc'd storage. + If readlink fails, return NULL and set errno. + If realloc fails, or if the link value is longer than SIZE_MAX :-), + give a diagnostic and exit. */ + +char * +xreadlink (char const *filename) +{ + char *result = areadlink (filename); + if (result == NULL && errno == ENOMEM) + xalloc_die (); + return result; +} diff --git a/3rdPartner/libiconv/srclib/xreadlink.h b/3rdPartner/libiconv/srclib/xreadlink.h new file mode 100644 index 0000000..f68502f --- /dev/null +++ b/3rdPartner/libiconv/srclib/xreadlink.h @@ -0,0 +1,29 @@ +/* Reading symbolic links without size limitation. + + Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, + Inc. + + 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 3 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, see . */ + +/* Written by Jim Meyering */ + +#include + +extern char *xreadlink (char const *filename) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; + +#if GNULIB_XREADLINKAT +extern char *xreadlinkat (int fd, char const *filename) + _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; +#endif diff --git a/3rdPartner/libiconv/srclib/xstrdup.c b/3rdPartner/libiconv/srclib/xstrdup.c new file mode 100644 index 0000000..9895144 --- /dev/null +++ b/3rdPartner/libiconv/srclib/xstrdup.c @@ -0,0 +1,40 @@ +/* xstrdup.c -- copy a string with out of memory checking + Copyright (C) 1990, 1996, 2000-2003, 2005-2006 Free Software Foundation, Inc. + + 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 3 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, see . */ + +#include + +/* Specification. */ +#include "xalloc.h" + +#include + +/* Return a newly allocated copy of the N bytes of memory starting at P. */ + +void * +xmemdup (const void *p, size_t n) +{ + void *q = xmalloc (n); + memcpy (q, p, n); + return q; +} + +/* Return a newly allocated copy of STRING. */ + +char * +xstrdup (const char *string) +{ + return strcpy (XNMALLOC (strlen (string) + 1, char), string); +} diff --git a/3rdPartner/libiconv/srcm4/00gnulib.m4 b/3rdPartner/libiconv/srcm4/00gnulib.m4 new file mode 100644 index 0000000..dea34e8 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/00gnulib.m4 @@ -0,0 +1,85 @@ +# 00gnulib.m4 serial 8 +dnl Copyright (C) 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This file must be named something that sorts before all other +dnl gnulib-provided .m4 files. It is needed until the clang fix has +dnl been included in Autoconf. + +# The following definitions arrange to use a compiler option +# -Werror=implicit-function-declaration in AC_CHECK_DECL, when the +# compiler is clang. Without it, clang implicitly declares "known" +# library functions in C mode, but not in C++ mode, which would cause +# Gnulib to omit a declaration and thus later produce an error in C++ +# mode. As of clang 9.0, these "known" functions are identified through +# LIBBUILTIN invocations in the LLVM source file +# llvm/tools/clang/include/clang/Basic/Builtins.def. +# It's not possible to AC_REQUIRE the extra tests from AC_CHECK_DECL, +# because AC_CHECK_DECL, like other Autoconf built-ins, is not supposed +# to AC_REQUIRE anything: some configure.ac files have their first +# AC_CHECK_DECL executed conditionally. Therefore append the extra tests +# to AC_PROG_CC. +AC_DEFUN([gl_COMPILER_CLANG], +[ +dnl AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([whether the compiler is clang], + [gl_cv_compiler_clang], + [dnl Use _AC_COMPILE_IFELSE instead of AC_EGREP_CPP, to avoid error + dnl "circular dependency of AC_LANG_COMPILER(C)" if AC_PROG_CC has + dnl not yet been invoked. + _AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #ifdef __clang__ + barfbarf + #endif + ]],[[]]) + ], + [gl_cv_compiler_clang=no], + [gl_cv_compiler_clang=yes]) + ]) +]) +AC_DEFUN([gl_COMPILER_PREPARE_CHECK_DECL], +[ +dnl AC_REQUIRE([AC_PROG_CC]) +dnl AC_REQUIRE([gl_COMPILER_CLANG]) + AC_CACHE_CHECK([for compiler option needed when checking for declarations], + [gl_cv_compiler_check_decl_option], + [if test $gl_cv_compiler_clang = yes; then + dnl Test whether the compiler supports the option + dnl '-Werror=implicit-function-declaration'. + save_ac_compile="$ac_compile" + ac_compile="$ac_compile -Werror=implicit-function-declaration" + dnl Use _AC_COMPILE_IFELSE instead of AC_COMPILE_IFELSE, to avoid a + dnl warning "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". + _AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[]])], + [gl_cv_compiler_check_decl_option='-Werror=implicit-function-declaration'], + [gl_cv_compiler_check_decl_option=none]) + ac_compile="$save_ac_compile" + else + gl_cv_compiler_check_decl_option=none + fi + ]) + if test "x$gl_cv_compiler_check_decl_option" != xnone; then + ac_compile_for_check_decl="$ac_compile $gl_cv_compiler_check_decl_option" + else + ac_compile_for_check_decl="$ac_compile" + fi +]) +dnl Redefine _AC_CHECK_DECL_BODY so that it references ac_compile_for_check_decl +dnl instead of ac_compile. If, for whatever reason, the override of AC_PROG_CC +dnl in zzgnulib.m4 is inactive, use the original ac_compile. +m4_define([_AC_CHECK_DECL_BODY], +[ ac_save_ac_compile="$ac_compile" + if test -n "$ac_compile_for_check_decl"; then + ac_compile="$ac_compile_for_check_decl" + fi] +m4_defn([_AC_CHECK_DECL_BODY])[ ac_compile="$ac_save_ac_compile" +]) + +# gl_00GNULIB +# ----------- +# Witness macro that this file has been included. Needed to force +# Automake to include this file prior to all other gnulib .m4 files. +AC_DEFUN([gl_00GNULIB]) diff --git a/3rdPartner/libiconv/srcm4/__inline.m4 b/3rdPartner/libiconv/srcm4/__inline.m4 new file mode 100644 index 0000000..fbe2098 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/__inline.m4 @@ -0,0 +1,22 @@ +# Test for __inline keyword +dnl Copyright 2017-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl___INLINE], +[ + AC_CACHE_CHECK([whether the compiler supports the __inline keyword], + [gl_cv_c___inline], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int foo_t; + static __inline foo_t foo (void) { return 0; }]], + [[return foo ();]])], + [gl_cv_c___inline=yes], + [gl_cv_c___inline=no])]) + if test $gl_cv_c___inline = yes; then + AC_DEFINE([HAVE___INLINE], [1], + [Define to 1 if the compiler supports the keyword '__inline'.]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/absolute-header.m4 b/3rdPartner/libiconv/srcm4/absolute-header.m4 new file mode 100644 index 0000000..67d6507 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/absolute-header.m4 @@ -0,0 +1,100 @@ +# absolute-header.m4 serial 17 +dnl Copyright (C) 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Derek Price. + +# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) +# --------------------------------------- +# Find the absolute name of a header file, testing first if the header exists. +# If the header were sys/inttypes.h, this macro would define +# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h +# in config.h +# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). +# The three "///" are to pacify Sun C 5.8, which otherwise would say +# "warning: #include of /usr/include/... may be non-portable". +# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. +# Note: This macro assumes that the header file is not empty after +# preprocessing, i.e. it does not only define preprocessor macros but also +# provides some type/enum definitions or function/variable declarations. +AC_DEFUN([gl_ABSOLUTE_HEADER], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_PREPROC_REQUIRE()dnl +m4_foreach_w([gl_HEADER_NAME], [$1], + [AS_VAR_PUSHDEF([gl_absolute_header], + [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl + AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], + [gl_absolute_header], + [AS_VAR_PUSHDEF([ac_header_exists], + [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl + AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl + if test AS_VAR_GET([ac_header_exists]) = yes; then + gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) + fi + AS_VAR_POPDEF([ac_header_exists])dnl + ])dnl + AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), + ["AS_VAR_GET([gl_absolute_header])"], + [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) + AS_VAR_POPDEF([gl_absolute_header])dnl +])dnl +])# gl_ABSOLUTE_HEADER + +# gl_ABSOLUTE_HEADER_ONE(HEADER) +# ------------------------------ +# Like gl_ABSOLUTE_HEADER, except that: +# - it assumes that the header exists, +# - it uses the current CPPFLAGS, +# - it does not cache the result, +# - it is silent. +AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) + dnl AIX "xlc -E" and "cc -E" omit #line directives for header files + dnl that contain only a #include of other header files and no + dnl non-comment tokens of their own. This leads to a failure to + dnl detect the absolute name of , , + dnl and others. The workaround is to force preservation of comments + dnl through option -C. This ensures all necessary #line directives + dnl are present. GCC supports option -C as well. + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac +changequote(,) + case "$host_os" in + mingw*) + dnl For the sake of native Windows compilers (excluding gcc), + dnl treat backslash as a directory separator, like /. + dnl Actually, these compilers use a double-backslash as + dnl directory separator, inside the + dnl # line "filename" + dnl directives. + gl_dirsep_regex='[/\\]' + ;; + *) + gl_dirsep_regex='\/' + ;; + esac + dnl A sed expression that turns a string into a basic regular + dnl expression, for use within "/.../". + gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' + gl_header_literal_regex=`echo '$1' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' +changequote([,]) + dnl eval is necessary to expand gl_absname_cpp. + dnl Ultrix and Pyramid sh refuse to redirect output of eval, + dnl so use subshell. + AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), +[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | + sed -n "$gl_absolute_header_sed"`]) +]) diff --git a/3rdPartner/libiconv/srcm4/alloca.m4 b/3rdPartner/libiconv/srcm4/alloca.m4 new file mode 100644 index 0000000..a0900ca --- /dev/null +++ b/3rdPartner/libiconv/srcm4/alloca.m4 @@ -0,0 +1,34 @@ +# alloca.m4 serial 5 +dnl Copyright (C) 2002-2003, 2006, 2011, 2021-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_ALLOCA], +[ + dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. + AC_REQUIRE([AC_PROG_CPP]) + AC_REQUIRE([AC_PROG_EGREP]) + + AC_REQUIRE([AC_FUNC_ALLOCA]) + if test $ac_cv_func_alloca_works = no; then + gl_PREREQ_ALLOCA + fi + + # Define an additional variable used in the Makefile substitution. + + AC_EGREP_CPP([Need own alloca], [ +#if defined __GNUC__ || defined _MSC_VER || !HAVE_ALLOCA_H + Need own alloca +#endif + ], + [GL_GENERATE_ALLOCA_H=true], + [GL_GENERATE_ALLOCA_H=false]) +]) + +# Prerequisites of lib/alloca.c. +# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. +AC_DEFUN([gl_PREREQ_ALLOCA], [ + AC_CHECK_HEADERS_ONCE(stdlib.h string.h) + : +]) diff --git a/3rdPartner/libiconv/srcm4/asm-underscore.m4 b/3rdPartner/libiconv/srcm4/asm-underscore.m4 new file mode 100644 index 0000000..950aa8d --- /dev/null +++ b/3rdPartner/libiconv/srcm4/asm-underscore.m4 @@ -0,0 +1,83 @@ +# asm-underscore.m4 serial 5 +dnl Copyright (C) 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. + +# gl_ASM_SYMBOL_PREFIX +# Tests for the prefix of C symbols at the assembly language level and the +# linker level. This prefix is either an underscore or empty. Defines the +# C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to +# a stringified variant of this prefix. + +AC_DEFUN([gl_ASM_SYMBOL_PREFIX], +[ + AC_REQUIRE([AC_PROG_EGREP]) + dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because + dnl 1. It works only for GCC. + dnl 2. It is incorrectly defined on some platforms, in some GCC versions. + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK( + [whether C symbols are prefixed with underscore at the linker level], + [gl_cv_prog_as_underscore], + [cat > conftest.c </dev/null 2>&1 + if LC_ALL=C $EGREP '(^|[[^a-zA-Z0-9_]])_foo([[^a-zA-Z0-9_]]|$)' conftest.$gl_asmext >/dev/null; then + gl_cv_prog_as_underscore=yes + else + gl_cv_prog_as_underscore=no + fi + rm -f conftest* + ]) + if test $gl_cv_prog_as_underscore = yes; then + USER_LABEL_PREFIX=_ + else + USER_LABEL_PREFIX= + fi + AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], + [Define to the prefix of C symbols at the assembler and linker level, + either an underscore or empty.]) + ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' + AC_SUBST([ASM_SYMBOL_PREFIX]) +]) + +# gl_C_ASM +# Determines how to produce an assembly language file from C source code. +# Sets the variables: +# gl_asmext - the extension of assembly language output, +# gl_c_asm_opt - the C compiler option that produces assembly language output. + +AC_DEFUN([gl_C_ASM], +[ + AC_EGREP_CPP([MicrosoftCompiler], + [ +#ifdef _MSC_VER +MicrosoftCompiler +#endif + ], + [dnl Microsoft's 'cl' and 'clang-cl' produce an .asm file, whereas 'clang' + dnl produces a .s file. Need to distinguish 'clang' and 'clang-cl'. + rm -f conftest* + echo 'int dummy;' > conftest.c + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c) >/dev/null 2>&1 + if test -f conftest.o; then + gl_asmext='s' + gl_c_asm_opt='-S' + else + gl_asmext='asm' + gl_c_asm_opt='-c -Fa' + fi + rm -f conftest* + ], + [gl_asmext='s' + gl_c_asm_opt='-S' + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/builtin-expect.m4 b/3rdPartner/libiconv/srcm4/builtin-expect.m4 new file mode 100644 index 0000000..b1fb12a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/builtin-expect.m4 @@ -0,0 +1,49 @@ +dnl Check for __builtin_expect. + +dnl Copyright 2016-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Paul Eggert. + +AC_DEFUN([gl___BUILTIN_EXPECT], +[ + AC_CACHE_CHECK([for __builtin_expect], + [gl_cv___builtin_expect], + [AC_LINK_IFELSE( + [AC_LANG_SOURCE([[ + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + }]])], + [gl_cv___builtin_expect=yes], + [AC_LINK_IFELSE( + [AC_LANG_SOURCE([[ + #include + int + main (int argc, char **argv) + { + argc = __builtin_expect (argc, 100); + return argv[argc != 100][0]; + }]])], + [gl_cv___builtin_expect="in "], + [gl_cv___builtin_expect=no])])]) + if test "$gl_cv___builtin_expect" = yes; then + AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) + elif test "$gl_cv___builtin_expect" = "in "; then + AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) + fi + AH_VERBATIM([HAVE___BUILTIN_EXPECT], + [/* Define to 1 if the compiler supports __builtin_expect, + and to 2 if does. */ +#undef HAVE___BUILTIN_EXPECT +#ifndef HAVE___BUILTIN_EXPECT +# define __builtin_expect(e, c) (e) +#elif HAVE___BUILTIN_EXPECT == 2 +# include +#endif + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/canonicalize.m4 b/3rdPartner/libiconv/srcm4/canonicalize.m4 new file mode 100644 index 0000000..b55d5c0 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/canonicalize.m4 @@ -0,0 +1,183 @@ +# canonicalize.m4 serial 37 + +dnl Copyright (C) 2003-2007, 2009-2022 Free Software Foundation, Inc. + +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Provides canonicalize_file_name and canonicalize_filename_mode, but does +# not provide or fix realpath. +AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) + AC_CHECK_FUNCS_ONCE([canonicalize_file_name faccessat]) + AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) + AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_CANONICALIZE_FILE_NAME=1 ;; + esac + fi +]) + +# Provides canonicalize_file_name and realpath. +AC_DEFUN([gl_CANONICALIZE_LGPL], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE]) + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + if test $ac_cv_func_realpath = no; then + HAVE_REALPATH=0 + else + case "$gl_cv_func_realpath_works" in + *yes) ;; + *) REPLACE_REALPATH=1 ;; + esac + fi + else + case "$gl_cv_func_realpath_works" in + *yes) + ;; + *) + REPLACE_CANONICALIZE_FILE_NAME=1 + REPLACE_REALPATH=1 + ;; + esac + fi +]) + +# Like gl_CANONICALIZE_LGPL, except prepare for separate compilation +# (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, no AC_LIBOBJ). +AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) + AC_CHECK_FUNCS_ONCE([canonicalize_file_name faccessat]) + + dnl On native Windows, we use _getcwd(), regardless whether getcwd() is + dnl available through the linker option '-loldnames'. + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) ;; + *) AC_CHECK_FUNCS([getcwd]) ;; + esac + + AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) + AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) + AC_CHECK_HEADERS_ONCE([sys/param.h]) +]) + +# Check whether realpath works. Assume that if a platform has both +# realpath and canonicalize_file_name, but the former is broken, then +# so is the latter. +AC_DEFUN([gl_FUNC_REALPATH_WORKS], +[ + AC_CHECK_FUNCS_ONCE([realpath lstat]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [ + rm -rf conftest.a conftest.d + touch conftest.a + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.a conftest.l + fi + mkdir conftest.d + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + ]GL_NOCRASH[ + #include + #include + #include + ]], [[ + int result = 0; + /* This test fails on Solaris 10. */ + { + char *name = realpath ("conftest.a", NULL); + if (!(name && *name == '/')) + result |= 1; + free (name); + } + /* This test fails on older versions of Cygwin. */ + { + char *name = realpath ("conftest.b/../conftest.a", NULL); + if (name != NULL) + result |= 2; + free (name); + } + /* This test fails on Cygwin 2.9. */ + #if HAVE_LSTAT + { + char *name = realpath ("conftest.l/../conftest.a", NULL); + if (name != NULL || errno != ENOTDIR) + result |= 4; + free (name); + } + #endif + /* This test fails on Mac OS X 10.13, OpenBSD 6.0. */ + { + char *name = realpath ("conftest.a/", NULL); + if (name != NULL) + result |= 8; + free (name); + } + /* This test fails on AIX 7, Solaris 10. */ + { + char *name1 = realpath (".", NULL); + char *name2 = realpath ("conftest.d//./..", NULL); + if (! name1 || ! name2 || strcmp (name1, name2)) + result |= 16; + free (name1); + free (name2); + } + #ifdef __linux__ + /* On Linux, // is the same as /. See also double-slash-root.m4. + realpath() should respect this. + This test fails on musl libc 1.2.2. */ + { + char *name = realpath ("//", NULL); + if (! name || strcmp (name, "/")) + result |= 32; + free (name); + } + #endif + return result; + ]]) + ], + [gl_cv_func_realpath_works=yes], + [case $? in + 32) gl_cv_func_realpath_works=nearly ;; + *) gl_cv_func_realpath_works=no ;; + esac + ], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_realpath_works="guessing yes" ;; + # Guess 'nearly' on musl systems. + *-musl*) gl_cv_func_realpath_works="guessing nearly" ;; + # Guess no on Cygwin. + cygwin*) gl_cv_func_realpath_works="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_realpath_works="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_realpath_works="$gl_cross_guess_normal" ;; + esac + ]) + rm -rf conftest.a conftest.l conftest.d + ]) + case "$gl_cv_func_realpath_works" in + *yes) + AC_DEFINE([FUNC_REALPATH_WORKS], [1], + [Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles leading slashes and a trailing slash correctly.]) + ;; + *nearly) + AC_DEFINE([FUNC_REALPATH_NEARLY_WORKS], [1], + [Define to 1 if realpath() can malloc memory, always gives an absolute path, and handles a trailing slash correctly.]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/close.m4 b/3rdPartner/libiconv/srcm4/close.m4 new file mode 100644 index 0000000..f95dbc9 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/close.m4 @@ -0,0 +1,35 @@ +# close.m4 serial 9 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_CLOSE], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + m4_ifdef([gl_MSVC_INVAL], [ + AC_REQUIRE([gl_MSVC_INVAL]) + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_CLOSE=1 + fi + ]) + m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ + gl_PREREQ_SYS_H_WINSOCK2 + if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then + dnl Even if the 'socket' module is not used here, another part of the + dnl application may use it and pass file descriptors that refer to + dnl sockets to the close() function. So enable the support for sockets. + REPLACE_CLOSE=1 + fi + ]) + dnl Replace close() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + if test $REPLACE_CLOSE = 0; then + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + REPLACE_CLOSE=1 + fi + fi + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/codeset.m4 b/3rdPartner/libiconv/srcm4/codeset.m4 new file mode 100644 index 0000000..eb73260 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/codeset.m4 @@ -0,0 +1,24 @@ +# codeset.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2022 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[char* cs = nl_langinfo(CODESET); return !cs;]])], + [am_cv_langinfo_codeset=yes], + [am_cv_langinfo_codeset=no]) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE([HAVE_LANGINFO_CODESET], [1], + [Define if you have and nl_langinfo(CODESET).]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/double-slash-root.m4 b/3rdPartner/libiconv/srcm4/double-slash-root.m4 new file mode 100644 index 0000000..09ff5f0 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/double-slash-root.m4 @@ -0,0 +1,38 @@ +# double-slash-root.m4 serial 4 -*- Autoconf -*- +dnl Copyright (C) 2006, 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_DOUBLE_SLASH_ROOT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], + [ if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # . + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi]) + if test "$gl_cv_double_slash_root" = yes; then + AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], + [Define to 1 if // is a file system root distinct from /.]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/dup2.m4 b/3rdPartner/libiconv/srcm4/dup2.m4 new file mode 100644 index 0000000..7e777cd --- /dev/null +++ b/3rdPartner/libiconv/srcm4/dup2.m4 @@ -0,0 +1,105 @@ +#serial 27 +dnl Copyright (C) 2002, 2005, 2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_DUP2], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], + [AC_RUN_IFELSE([ + AC_LANG_PROGRAM( + [[#include + #include + #include + #include + #include + ]GL_MDA_DEFINES[ + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + ]], + [[int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + #ifdef FD_CLOEXEC + if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) + result |= 1; + #endif + if (dup2 (1, 1) != 1) + result |= 2; + #ifdef FD_CLOEXEC + if (fcntl (1, F_GETFD) != FD_CLOEXEC) + result |= 4; + #endif + close (0); + if (dup2 (0, 0) != -1) + result |= 8; + /* Many gnulib modules require POSIX conformance of EBADF. */ + if (dup2 (2, bad_fd) == -1 && errno != EBADF) + result |= 16; + /* Flush out some cygwin core dumps. */ + if (dup2 (2, -1) != -1 || errno != EBADF) + result |= 32; + dup2 (2, 255); + dup2 (2, 256); + /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ + { + int fd = open (".", O_RDONLY); + if (fd == -1) + result |= 64; + else if (dup2 (fd, fd + 1) == -1) + result |= 128; + close (fd); + } + return result;]]) + ], + [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], + [case "$host_os" in + mingw*) # on this platform, dup2 always returns 0 for success + gl_cv_func_dup2_works="guessing no" ;; + cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 + gl_cv_func_dup2_works="guessing no" ;; + aix* | freebsd*) + # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, + # not EBADF. + gl_cv_func_dup2_works="guessing no" ;; + haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. + gl_cv_func_dup2_works="guessing no" ;; + *-android*) # implemented using dup3(), which fails if oldfd == newfd + gl_cv_func_dup2_works="guessing no" ;; + os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. + gl_cv_func_dup2_works="guessing no" ;; + *) gl_cv_func_dup2_works="guessing yes" ;; + esac]) + ]) + case "$gl_cv_func_dup2_works" in + *yes) ;; + *) + REPLACE_DUP2=1 + AC_CHECK_FUNCS([setdtablesize]) + ;; + esac + dnl Replace dup2() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + REPLACE_DUP2=1 + fi + ]) +]) + +# Prerequisites of lib/dup2.c. +AC_DEFUN([gl_PREREQ_DUP2], []) diff --git a/3rdPartner/libiconv/srcm4/eealloc.m4 b/3rdPartner/libiconv/srcm4/eealloc.m4 new file mode 100644 index 0000000..a6aa2f8 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/eealloc.m4 @@ -0,0 +1,31 @@ +# eealloc.m4 serial 3 +dnl Copyright (C) 2003, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_EEALLOC], +[ + AC_REQUIRE([gl_EEMALLOC]) + AC_REQUIRE([gl_EEREALLOC]) +]) + +AC_DEFUN([gl_EEMALLOC], +[ + _AC_FUNC_MALLOC_IF( + [gl_cv_func_malloc_0_nonnull=1], + [gl_cv_func_malloc_0_nonnull=0]) + AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], + [If malloc(0) is != NULL, define this to 1. Otherwise define this + to 0.]) +]) + +AC_DEFUN([gl_EEREALLOC], +[ + _AC_FUNC_REALLOC_IF( + [gl_cv_func_realloc_0_nonnull=1], + [gl_cv_func_realloc_0_nonnull=0]) + AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], + [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this + to 0.]) +]) diff --git a/3rdPartner/libiconv/srcm4/environ.m4 b/3rdPartner/libiconv/srcm4/environ.m4 new file mode 100644 index 0000000..583dac3 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/environ.m4 @@ -0,0 +1,46 @@ +# environ.m4 serial 8 +dnl Copyright (C) 2001-2004, 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_ENVIRON], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + dnl Persuade glibc to declare environ. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_HEADERS_ONCE([unistd.h]) + gt_CHECK_VAR_DECL( + [#if HAVE_UNISTD_H + #include + #endif + /* mingw, BeOS, Haiku declare environ in , not in . */ + #include + ], + [environ]) + if test $gt_cv_var_environ_declaration != yes; then + HAVE_DECL_ENVIRON=0 + fi +]) + +# Check if a variable is properly declared. +# gt_CHECK_VAR_DECL(includes,variable) +AC_DEFUN([gt_CHECK_VAR_DECL], +[ + define([gt_cv_var], [gt_cv_var_]$2[_declaration]) + AC_CACHE_CHECK([if $2 is properly declared], [gt_cv_var], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[$1 + typedef struct { int foo; } foo_t; + extern foo_t $2;]], + [[$2.foo = 1;]])], + [gt_cv_var=no], + [gt_cv_var=yes])]) + if test $gt_cv_var = yes; then + AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, + [Define if you have the declaration of $2.]) + fi + undefine([gt_cv_var]) +]) diff --git a/3rdPartner/libiconv/srcm4/errno_h.m4 b/3rdPartner/libiconv/srcm4/errno_h.m4 new file mode 100644 index 0000000..4be9780 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/errno_h.m4 @@ -0,0 +1,131 @@ +# errno_h.m4 serial 14 +dnl Copyright (C) 2004, 2006, 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_PREREQ([2.61]) + +AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ + AC_EGREP_CPP([booboo],[ +#include +#if !defined ETXTBSY +booboo +#endif +#if !defined ENOMSG +booboo +#endif +#if !defined EIDRM +booboo +#endif +#if !defined ENOLINK +booboo +#endif +#if !defined EPROTO +booboo +#endif +#if !defined EMULTIHOP +booboo +#endif +#if !defined EBADMSG +booboo +#endif +#if !defined EOVERFLOW +booboo +#endif +#if !defined ENOTSUP +booboo +#endif +#if !defined ENETRESET +booboo +#endif +#if !defined ECONNABORTED +booboo +#endif +#if !defined ESTALE +booboo +#endif +#if !defined EDQUOT +booboo +#endif +#if !defined ECANCELED +booboo +#endif +#if !defined EOWNERDEAD +booboo +#endif +#if !defined ENOTRECOVERABLE +booboo +#endif +#if !defined EILSEQ +booboo +#endif + ], + [gl_cv_header_errno_h_complete=no], + [gl_cv_header_errno_h_complete=yes]) + ]) + if test $gl_cv_header_errno_h_complete = yes; then + GL_GENERATE_ERRNO_H=false + else + gl_NEXT_HEADERS([errno.h]) + GL_GENERATE_ERRNO_H=true + fi + gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) + gl_REPLACE_ERRNO_VALUE([ENOLINK]) + gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) +]) + +# Assuming $1 = EOVERFLOW. +# The EOVERFLOW errno value ought to be defined in , according to +# POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and +# some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. +# Check for the value of EOVERFLOW. +# Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. +AC_DEFUN([gl_REPLACE_ERRNO_VALUE], +[ + if $GL_GENERATE_ERRNO_H; then + AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ + AC_EGREP_CPP([yes],[ +#include +#ifdef ]$1[ +yes +#endif + ], + [gl_cv_header_errno_h_]$1[=yes], + [gl_cv_header_errno_h_]$1[=no]) + if test $gl_cv_header_errno_h_]$1[ = no; then + AC_EGREP_CPP([yes],[ +#define _XOPEN_SOURCE_EXTENDED 1 +#include +#ifdef ]$1[ +yes +#endif + ], [gl_cv_header_errno_h_]$1[=hidden]) + if test $gl_cv_header_errno_h_]$1[ = hidden; then + dnl The macro exists but is hidden. + dnl Define it to the same value. + AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ +#define _XOPEN_SOURCE_EXTENDED 1 +#include +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include +#include +]) + fi + fi + ]) + case $gl_cv_header_errno_h_]$1[ in + yes | no) + ]$1[_HIDDEN=0; ]$1[_VALUE= + ;; + *) + ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" + ;; + esac + AC_SUBST($1[_HIDDEN]) + AC_SUBST($1[_VALUE]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/error.m4 b/3rdPartner/libiconv/srcm4/error.m4 new file mode 100644 index 0000000..7a10344 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/error.m4 @@ -0,0 +1,31 @@ +#serial 15 + +# Copyright (C) 1996-1998, 2001-2004, 2009-2022 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_ERROR], +[ + dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer + dnl maintained in Autoconf and because it invokes AC_LIBOBJ. + AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[error_at_line (0, 0, "", 0, "an error occurred");]])], + [ac_cv_lib_error_at_line=yes], + [ac_cv_lib_error_at_line=no])]) +]) + +# Prerequisites of lib/error.c. +AC_DEFUN([gl_PREREQ_ERROR], +[ + dnl Use system extensions on Android, so that AC_FUNC_STRERROR_R + dnl discovers the GNU API for strerror_r on Android API level 23 and later. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([AC_FUNC_STRERROR_R]) + : +]) diff --git a/3rdPartner/libiconv/srcm4/extensions.m4 b/3rdPartner/libiconv/srcm4/extensions.m4 new file mode 100644 index 0000000..0b3e4b5 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/extensions.m4 @@ -0,0 +1,227 @@ +# serial 22 -*- Autoconf -*- +# Enable extensions on systems that normally disable them. + +# Copyright (C) 2003, 2006-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl Define to empty for the benefit of Autoconf 2.69 and earlier, so that +dnl AC_USE_SYSTEM_EXTENSIONS (below) can be used unchanged from Autoconf 2.70+. +m4_ifndef([AC_CHECK_INCLUDES_DEFAULT], + [AC_DEFUN([AC_CHECK_INCLUDES_DEFAULT], [])]) + +# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git +# Autoconf. Perhaps we can remove this once we can assume Autoconf +# is recent-enough everywhere, but since Autoconf mutates rapidly +# enough in this area it's likely we'll need to redefine +# AC_USE_SYSTEM_EXTENSIONS for quite some time. + +# If autoconf reports a warning +# warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS +# or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS +# the fix is +# 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked +# but always AC_REQUIREd, +# 2) to ensure that for each occurrence of +# AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) +# or +# AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) +# the corresponding gnulib module description has 'extensions' among +# its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS +# invocation occurs in gl_EARLY, not in gl_INIT. + +m4_version_prereq([2.70.1], [], [ + +# AC_USE_SYSTEM_EXTENSIONS +# ------------------------ +# Enable extensions on systems that normally disable them, +# typically due to standards-conformance issues. +# We unconditionally define as many of the known feature-enabling +# as possible, reserving conditional behavior for macros that are +# known to cause problems on some platforms (such as __EXTENSIONS__). +AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], +[AC_BEFORE([$0], [AC_PREPROC_IFELSE])dnl +AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl +AC_BEFORE([$0], [AC_LINK_IFELSE])dnl +AC_BEFORE([$0], [AC_RUN_IFELSE])dnl +AC_BEFORE([$0], [AC_CHECK_INCLUDES_DEFAULT])dnl +dnl #undef in AH_VERBATIM gets replaced with #define by AC_DEFINE. +dnl Use a different key than __EXTENSIONS__, as that name broke existing +dnl configure.ac when using autoheader 2.62. +dnl The macros below are in alphabetical order ignoring leading _ or __ +dnl prefixes. +AH_VERBATIM([USE_SYSTEM_EXTENSIONS], +[/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +# undef _MINIX +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# undef _NETBSD_SOURCE +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# undef _OPENBSD_SOURCE +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +# undef _POSIX_SOURCE +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +# undef _POSIX_1_SOURCE +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# undef __STDC_WANT_IEC_60559_BFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# undef __STDC_WANT_IEC_60559_DFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# undef __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# undef __STDC_WANT_LIB_EXT2__ +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# undef __STDC_WANT_MATH_SPEC_FUNCS__ +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif +])dnl + + AC_REQUIRE([AC_CHECK_INCLUDES_DEFAULT])dnl + _AC_CHECK_HEADER_ONCE([wchar.h]) + _AC_CHECK_HEADER_ONCE([minix/config.h]) + +dnl Defining __EXTENSIONS__ may break the system headers on some systems. +dnl (FIXME: Which ones?) + AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], + [ac_cv_safe_to_define___extensions__], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ +# define __EXTENSIONS__ 1 + ]AC_INCLUDES_DEFAULT])], + [ac_cv_safe_to_define___extensions__=yes], + [ac_cv_safe_to_define___extensions__=no])]) + +dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to +dnl 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. +dnl But defining _XOPEN_SOURCE may turn *off* extensions on platforms +dnl not covered by turn-on-extensions macros (notably Dragonfly, Free, +dnl and OpenBSD, which don't have any equivalent of _NETBSD_SOURCE) so +dnl it should only be defined when necessary. + AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], + [ac_cv_should_define__xopen_source], + [ac_cv_should_define__xopen_source=no + AS_IF([test $ac_cv_header_wchar_h = yes], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include + mbstate_t x;]])], + [], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #define _XOPEN_SOURCE 500 + #include + mbstate_t x;]])], + [ac_cv_should_define__xopen_source=yes])])])]) + + AC_DEFINE([_ALL_SOURCE]) + AC_DEFINE([_DARWIN_C_SOURCE]) + AC_DEFINE([_GNU_SOURCE]) + AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) + AC_DEFINE([_NETBSD_SOURCE]) + AC_DEFINE([_OPENBSD_SOURCE]) + AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) + AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) + AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) + AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) + AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) + AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) + AC_DEFINE([__STDC_WANT_LIB_EXT2__]) + AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) + AC_DEFINE([_TANDEM_SOURCE]) + AS_IF([test $ac_cv_header_minix_config_h = yes], + [MINIX=yes + AC_DEFINE([_MINIX]) + AC_DEFINE([_POSIX_SOURCE]) + AC_DEFINE([_POSIX_1_SOURCE], [2])], + [MINIX=]) + AS_IF([test $ac_cv_safe_to_define___extensions__ = yes], + [AC_DEFINE([__EXTENSIONS__])]) + AS_IF([test $ac_cv_should_define__xopen_source = yes], + [AC_DEFINE([_XOPEN_SOURCE], [500])]) +])# AC_USE_SYSTEM_EXTENSIONS +]) + +# gl_USE_SYSTEM_EXTENSIONS +# ------------------------ +# Enable extensions on systems that normally disable them, +# typically due to standards-conformance issues. +AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], +[ + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + dnl On OpenBSD 6.8 with GCC, the include files contain a couple of + dnl definitions that are only activated with an explicit -D_ISOC11_SOURCE. + dnl That's because this version of GCC (4.2.1) supports the option + dnl '-std=gnu99' but not the option '-std=gnu11'. + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + openbsd*) + AC_DEFINE([_ISOC11_SOURCE], [1], + [Define to enable the declarations of ISO C 11 types and functions.]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/extern-inline.m4 b/3rdPartner/libiconv/srcm4/extern-inline.m4 new file mode 100644 index 0000000..8a12bdd --- /dev/null +++ b/3rdPartner/libiconv/srcm4/extern-inline.m4 @@ -0,0 +1,130 @@ +dnl 'extern inline' a la ISO C99. + +dnl Copyright 2012-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_EXTERN_INLINE], +[ + AC_CACHE_CHECK([whether ctype.h defines __header_inline], + [gl_cv_have___header_inline], + [AC_PREPROC_IFELSE( + [AC_LANG_SOURCE([[#include + #ifndef __header_inline + #error " does not define __header_inline" + #endif + ]])], + [gl_cv_have___header_inline=yes], + [gl_cv_have___header_inline=no])]) + if test "$gl_cv_have___header_inline" = yes; then + AC_DEFINE([HAVE___HEADER_INLINE], [1], + [Define to 1 if ctype.h defines __header_inline.]) + fi + + AH_VERBATIM([HAVE___HEADER_INLINE_1], +[/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Oracle Developer Studio 12.6 + (Sun C 5.15 SunOS_sparc 2017/05/30). + + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: + + OS X 10.8 and earlier; see: + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log + + FreeBSD; see: + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html + + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ + && (defined HAVE___HEADER_INLINE \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) +# define _GL_EXTERN_INLINE_STDHEADER_BUG +#endif +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !defined __PGI \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE +#else +# define _GL_INLINE _GL_UNUSED static +# define _GL_EXTERN_INLINE _GL_UNUSED static +#endif + +/* In GCC 4.6 (inclusive) to 5.1 (exclusive), + suppress bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + and + . */ +#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif]) +]) diff --git a/3rdPartner/libiconv/srcm4/fcntl-o.m4 b/3rdPartner/libiconv/srcm4/fcntl-o.m4 new file mode 100644 index 0000000..4dcde9e --- /dev/null +++ b/3rdPartner/libiconv/srcm4/fcntl-o.m4 @@ -0,0 +1,140 @@ +# fcntl-o.m4 serial 7 +dnl Copyright (C) 2006, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Paul Eggert. + +AC_PREREQ([2.60]) + +# Test whether the flags O_NOATIME and O_NOFOLLOW actually work. +# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. +# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. +AC_DEFUN([gl_FCNTL_O_FLAGS], +[ + dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_CHECK_FUNCS_ONCE([symlink]) + AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + #if HAVE_UNISTD_H + # include + #else /* on Windows with MSVC */ + # include + # include + # defined sleep(n) _sleep ((n) * 1000) + #endif + #include + ]GL_MDA_DEFINES[ + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; + ]], + [[ + int result = !constants; + #if HAVE_SYMLINK + { + static char const sym[] = "conftest.sym"; + if (symlink ("/dev/null", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + if (unlink (sym) != 0 || symlink (".", sym) != 0) + result |= 2; + else + { + int fd = open (sym, O_RDONLY | O_NOFOLLOW); + if (fd >= 0) + { + close (fd); + result |= 4; + } + } + unlink (sym); + } + #endif + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + if (fd < 0) + result |= 8; + else + { + struct stat st0; + if (fstat (fd, &st0) != 0) + result |= 16; + else + { + char c; + sleep (1); + if (read (fd, &c, 1) != 1) + result |= 24; + else + { + if (close (fd) != 0) + result |= 32; + else + { + struct stat st1; + if (stat (file, &st1) != 0) + result |= 40; + else + if (st0.st_atime != st1.st_atime) + result |= 64; + } + } + } + } + } + return result;]])], + [gl_cv_header_working_fcntl_h=yes], + [case $? in #( + 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac], + [case "$host_os" in + # Guess 'no' on native Windows. + mingw*) gl_cv_header_working_fcntl_h='no' ;; + *) gl_cv_header_working_fcntl_h=cross-compiling ;; + esac + ]) + ]) + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], + [Define to 1 if O_NOATIME works.]) + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], + [Define to 1 if O_NOFOLLOW works.]) +]) diff --git a/3rdPartner/libiconv/srcm4/fcntl.m4 b/3rdPartner/libiconv/srcm4/fcntl.m4 new file mode 100644 index 0000000..428e570 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/fcntl.m4 @@ -0,0 +1,151 @@ +# fcntl.m4 serial 11 +dnl Copyright (C) 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# For now, this module ensures that fcntl() +# - supports F_DUPFD correctly +# - supports or emulates F_DUPFD_CLOEXEC +# - supports F_GETFD +# Still to be ported to mingw: +# - F_SETFD +# - F_GETFL, F_SETFL +# - F_GETOWN, F_SETOWN +# - F_GETLK, F_SETLK, F_SETLKW +AC_DEFUN([gl_FUNC_FCNTL], +[ + dnl Persuade glibc to expose F_DUPFD_CLOEXEC. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CHECK_FUNCS_ONCE([fcntl]) + if test $ac_cv_func_fcntl = no; then + gl_REPLACE_FCNTL + else + dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target + dnl haiku alpha 2 F_DUPFD has wrong errno + AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], + [gl_cv_func_fcntl_f_dupfd_works], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + #include + #include + #include + ]GL_MDA_DEFINES[ + #ifndef RLIM_SAVED_CUR + # define RLIM_SAVED_CUR RLIM_INFINITY + #endif + #ifndef RLIM_SAVED_MAX + # define RLIM_SAVED_MAX RLIM_INFINITY + #endif + ]], + [[int result = 0; + int bad_fd = INT_MAX; + struct rlimit rlim; + if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 + && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX + && rlim.rlim_cur != RLIM_INFINITY + && rlim.rlim_cur != RLIM_SAVED_MAX + && rlim.rlim_cur != RLIM_SAVED_CUR) + bad_fd = rlim.rlim_cur; + if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; + if (errno != EINVAL) result |= 2; + if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; + if (errno != EINVAL) result |= 8; + /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ + { + int fd; + fd = open (".", O_RDONLY); + if (fd == -1) + result |= 16; + else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) + result |= 32; + + close (fd); + } + return result;]])], + [gl_cv_func_fcntl_f_dupfd_works=yes], + [gl_cv_func_fcntl_f_dupfd_works=no], + [case $host_os in + aix* | cygwin* | haiku*) + gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; + esac])]) + case $gl_cv_func_fcntl_f_dupfd_works in + *yes) ;; + *) gl_REPLACE_FCNTL + AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD + behavior does not match POSIX]) ;; + esac + + dnl Many systems lack F_DUPFD_CLOEXEC. + dnl NetBSD 9.0 declares F_DUPFD_CLOEXEC but it works only like F_DUPFD. + AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], + [gl_cv_func_fcntl_f_dupfd_cloexec], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE( + [[#include + #include + int main (int argc, char *argv[]) + { + if (argc == 1) + /* parent process */ + { + if (fcntl (1, F_DUPFD_CLOEXEC, 10) < 0) + return 1; + return execl ("./conftest", "./conftest", "child", NULL); + } + else + /* child process */ + return (fcntl (10, F_GETFL) < 0 ? 0 : 42); + } + ]]) + ], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#ifdef __linux__ +/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace + it to support the semantics on older kernels that failed with EINVAL. */ +choke me +#endif + ]])], + [gl_cv_func_fcntl_f_dupfd_cloexec=yes], + [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"]) + ], + [gl_cv_func_fcntl_f_dupfd_cloexec=no], + [case "$host_os" in + # Guess no on NetBSD. + netbsd*) gl_cv_func_fcntl_f_dupfd_cloexec="guessing no" ;; + *) gl_cv_func_fcntl_f_dupfd_cloexec="$gl_cross_guess_normal" ;; + esac + ]) + ]) + case "$gl_cv_func_fcntl_f_dupfd_cloexec" in + *yes) ;; + *) gl_REPLACE_FCNTL + dnl No witness macro needed for this bug. + ;; + esac + fi + dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + gl_REPLACE_FCNTL + fi + ]) +]) + +AC_DEFUN([gl_REPLACE_FCNTL], +[ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([fcntl]) + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi +]) diff --git a/3rdPartner/libiconv/srcm4/fcntl_h.m4 b/3rdPartner/libiconv/srcm4/fcntl_h.m4 new file mode 100644 index 0000000..267f98b --- /dev/null +++ b/3rdPartner/libiconv/srcm4/fcntl_h.m4 @@ -0,0 +1,70 @@ +# serial 20 +# Configure fcntl.h. +dnl Copyright (C) 2006-2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Paul Eggert. + +AC_DEFUN_ONCE([gl_FCNTL_H], +[ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_REQUIRE([gl_FCNTL_O_FLAGS]) + gl_NEXT_HEADERS([fcntl.h]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + dnl Ensure the type mode_t gets defined. + AC_REQUIRE([AC_TYPE_MODE_T]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, if it is not common + dnl enough to be declared everywhere. + gl_WARN_ON_USE_PREPARE([[#include + ]], [fcntl openat]) +]) + +# gl_FCNTL_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_FCNTL_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) +]) + +AC_DEFUN([gl_FCNTL_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) + HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) + REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT]) + REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) + REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) + REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) +]) diff --git a/3rdPartner/libiconv/srcm4/free.m4 b/3rdPartner/libiconv/srcm4/free.m4 new file mode 100644 index 0000000..dfeecd2 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/free.m4 @@ -0,0 +1,52 @@ +# free.m4 serial 6 +# Copyright (C) 2003-2005, 2009-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Written by Paul Eggert and Bruno Haible. + +AC_DEFUN([gl_FUNC_FREE], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + + dnl In the next release of POSIX, free must preserve errno. + dnl https://www.austingroupbugs.net/view.php?id=385 + dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924 + dnl So far, we know of three platforms that do this: + dnl * glibc >= 2.33, thanks to the fix for this bug: + dnl + dnl * OpenBSD >= 4.5, thanks to this commit: + dnl + dnl * Solaris, because its malloc() implementation is based on brk(), + dnl not mmap(); hence its free() implementation makes no system calls. + dnl For other platforms, you can only be sure if they state it in their + dnl documentation, or by code inspection of the free() implementation in libc. + AC_CACHE_CHECK([whether free is known to preserve errno], + [gl_cv_func_free_preserves_errno], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__) + #elif defined __OpenBSD__ + #elif defined __sun + #else + #error "'free' is not known to preserve errno" + #endif + ]])], + [gl_cv_func_free_preserves_errno=yes], + [gl_cv_func_free_preserves_errno=no]) + ]) + + case $gl_cv_func_free_preserves_errno in + *yes) + AC_DEFINE([HAVE_FREE_POSIX], [1], + [Define if the 'free' function is guaranteed to preserve errno.]) + ;; + *) REPLACE_FREE=1 ;; + esac +]) + +# Prerequisites of lib/free.c. +AC_DEFUN([gl_PREREQ_FREE], [:]) diff --git a/3rdPartner/libiconv/srcm4/fstat.m4 b/3rdPartner/libiconv/srcm4/fstat.m4 new file mode 100644 index 0000000..9e61bcc --- /dev/null +++ b/3rdPartner/libiconv/srcm4/fstat.m4 @@ -0,0 +1,40 @@ +# fstat.m4 serial 8 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_FSTAT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + + case "$host_os" in + mingw* | solaris*) + dnl On MinGW, the original stat() returns st_atime, st_mtime, + dnl st_ctime values that are affected by the time zone. + dnl Solaris stat can return a negative tv_nsec. + REPLACE_FSTAT=1 + ;; + esac + + dnl Replace fstat() for supporting the gnulib-defined open() on directories. + m4_ifdef([gl_FUNC_FCHDIR], [ + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + case "$gl_cv_func_open_directory_works" in + *yes) ;; + *) + REPLACE_FSTAT=1 + ;; + esac + fi + ]) +]) + +# Prerequisites of lib/fstat.c and lib/stat-w32.c. +AC_DEFUN([gl_PREREQ_FSTAT], [ + AC_REQUIRE([gl_SYS_STAT_H]) + AC_REQUIRE([gl_PREREQ_STAT_W32]) + : +]) diff --git a/3rdPartner/libiconv/srcm4/getdtablesize.m4 b/3rdPartner/libiconv/srcm4/getdtablesize.m4 new file mode 100644 index 0000000..6134eaa --- /dev/null +++ b/3rdPartner/libiconv/srcm4/getdtablesize.m4 @@ -0,0 +1,63 @@ +# getdtablesize.m4 serial 8 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_GETDTABLESIZE], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CHECK_FUNCS_ONCE([getdtablesize]) + AC_CHECK_DECLS_ONCE([getdtablesize]) + if test $ac_cv_func_getdtablesize = yes && + test $ac_cv_have_decl_getdtablesize = yes; then + AC_CACHE_CHECK([whether getdtablesize works], + [gl_cv_func_getdtablesize_works], + [dnl There are two concepts: the "maximum possible file descriptor value + 1" + dnl and the "maximum number of open file descriptors in a process". + dnl Per SUSv2 and POSIX, getdtablesize() should return the first one. + dnl On most platforms, the first and the second concept are the same. + dnl On OpenVMS, however, they are different and getdtablesize() returns + dnl the second one; thus the test below fails. But we don't care + dnl because there's no good way to write a replacement getdtablesize(). + case "$host_os" in + vms*) gl_cv_func_getdtablesize_works="no (limitation)" ;; + *) + dnl Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft + dnl limit up to an unchangeable hard limit; all other platforms + dnl correctly require setrlimit before getdtablesize() can report + dnl a larger value. + AC_RUN_IFELSE([ + AC_LANG_PROGRAM( + [[#include ] + GL_MDA_DEFINES + ], + [[int size = getdtablesize(); + if (dup2 (0, getdtablesize()) != -1) + return 1; + if (size != getdtablesize()) + return 2; + ]])], + [gl_cv_func_getdtablesize_works=yes], + [gl_cv_func_getdtablesize_works=no], + [case "$host_os" in + cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows + gl_cv_func_getdtablesize_works="guessing no" ;; + *) gl_cv_func_getdtablesize_works="guessing yes" ;; + esac + ]) + ;; + esac + ]) + case "$gl_cv_func_getdtablesize_works" in + *yes | "no (limitation)") ;; + *) REPLACE_GETDTABLESIZE=1 ;; + esac + else + HAVE_GETDTABLESIZE=0 + fi +]) + +# Prerequisites of lib/getdtablesize.c. +AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) diff --git a/3rdPartner/libiconv/srcm4/getprogname.m4 b/3rdPartner/libiconv/srcm4/getprogname.m4 new file mode 100644 index 0000000..b26146e --- /dev/null +++ b/3rdPartner/libiconv/srcm4/getprogname.m4 @@ -0,0 +1,43 @@ +# getprogname.m4 - check for getprogname or replacements for it + +# Copyright (C) 2016-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +AC_DEFUN([gl_FUNC_GETPROGNAME], +[ + AC_CHECK_FUNCS_ONCE([getprogname getexecname]) + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + ac_found=0 + AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [], + [#include ]) + AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [], + [#include ]) + AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include ]) + + # Incur the cost of this test only if none of the above worked. + if test $ac_found = 0; then + # On OpenBSD 5.1, using the global __progname variable appears to be + # the only way to implement getprogname. + AC_CACHE_CHECK([whether __progname is defined in default libraries], + [gl_cv_var___progname], + [ + gl_cv_var___progname= + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[extern char *__progname;]], + [[return *__progname;]] + )], + [gl_cv_var___progname=yes] + ) + ] + ) + if test "$gl_cv_var___progname" = yes; then + AC_DEFINE([HAVE_VAR___PROGNAME], 1, + [Define if you have a global __progname variable]) + fi + fi +]) diff --git a/3rdPartner/libiconv/srcm4/gettext.m4 b/3rdPartner/libiconv/srcm4/gettext.m4 new file mode 100644 index 0000000..989d645 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/gettext.m4 @@ -0,0 +1,386 @@ +# gettext.m4 serial 71 (gettext-0.20.2) +dnl Copyright (C) 1995-2014, 2016, 2018-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL must be one of 'external', 'use-libtool'. +dnl INTLSYMBOL should be 'external' for packages other than GNU gettext, and +dnl 'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. +])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], [no], [yes])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes' + dnl because some of the testsuite requires it. + BUILD_INCLUDED_LIBINTL=yes + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + + +dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) diff --git a/3rdPartner/libiconv/srcm4/gnulib-cache.m4 b/3rdPartner/libiconv/srcm4/gnulib-cache.m4 new file mode 100644 index 0000000..e71478c --- /dev/null +++ b/3rdPartner/libiconv/srcm4/gnulib-cache.m4 @@ -0,0 +1,96 @@ +# Copyright (C) 2002-2022 Free Software Foundation, Inc. +# +# This file 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 3 of the License, or +# (at your option) any later version. +# +# This file 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 file. If not, see . +# +# As a special exception to the GNU General Public License, +# this file may be distributed as part of a program that +# contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# Generated by gnulib-tool. +# +# This file represents the specification of how gnulib-tool is used. +# It acts as a cache: It is written and read by gnulib-tool. +# In projects that use version control, this file is meant to be put under +# version control, like the configure.ac and various Makefile.am files. + + +# Specification in the form of a command-line invocation: +# gnulib-tool --import --local-dir=gnulib-local \ +# --lib=libicrt \ +# --source-base=srclib \ +# --m4-base=srcm4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --makefile-name=Makefile.gnulib \ +# --no-conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# --no-vc-files \ +# binary-io \ +# error \ +# gettext \ +# gettext-h \ +# lib-symbol-visibility \ +# libiconv-misc \ +# mbstate \ +# progname \ +# relocatable-prog \ +# safe-read \ +# sigpipe \ +# stdbool \ +# stdio \ +# stdlib \ +# strerror \ +# unistd \ +# uniwidth/width \ +# unlocked-io \ +# xalloc + +# Specification in the form of a few gnulib-tool.m4 macro invocations: +gl_LOCAL_DIR([gnulib-local]) +gl_MODULES([ + binary-io + error + gettext + gettext-h + lib-symbol-visibility + libiconv-misc + mbstate + progname + relocatable-prog + safe-read + sigpipe + stdbool + stdio + stdlib + strerror + unistd + uniwidth/width + unlocked-io + xalloc +]) +gl_AVOID([]) +gl_SOURCE_BASE([srclib]) +gl_M4_BASE([srcm4]) +gl_PO_BASE([]) +gl_DOC_BASE([doc]) +gl_TESTS_BASE([tests]) +gl_LIB([libicrt]) +gl_MAKEFILE_NAME([Makefile.gnulib]) +gl_MACRO_PREFIX([gl]) +gl_PO_DOMAIN([]) +gl_WITNESS_C_MACRO([]) +gl_VC_FILES([false]) diff --git a/3rdPartner/libiconv/srcm4/gnulib-common.m4 b/3rdPartner/libiconv/srcm4/gnulib-common.m4 new file mode 100644 index 0000000..30911d1 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/gnulib-common.m4 @@ -0,0 +1,1075 @@ +# gnulib-common.m4 serial 73 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_PREREQ([2.62]) + +# gl_COMMON +# is expanded unconditionally through gnulib-tool magic. +AC_DEFUN([gl_COMMON], [ + dnl Use AC_REQUIRE here, so that the code is expanded once only. + AC_REQUIRE([gl_00GNULIB]) + AC_REQUIRE([gl_COMMON_BODY]) + AC_REQUIRE([gl_ZZGNULIB]) +]) +AC_DEFUN([gl_COMMON_BODY], [ + AH_VERBATIM([_GL_GNUC_PREREQ], +[/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define _GL_GNUC_PREREQ(major, minor) \ + ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) +#else +# define _GL_GNUC_PREREQ(major, minor) 0 +#endif +]) + AH_VERBATIM([_Noreturn], +[/* The _Noreturn keyword of C11. */ +#ifndef _Noreturn +# if (defined __cplusplus \ + && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ + || (defined _MSC_VER && 1900 <= _MSC_VER)) \ + && 0) + /* [[noreturn]] is not practically usable, because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would only be valid with 'extern' + and '_Noreturn' swapped, or without the 'extern' keyword. However, some + AIX system header files and several gnulib header files use precisely + this syntax with 'extern'. */ +# define _Noreturn [[noreturn]] +# elif ((!defined __cplusplus || defined __clang__) \ + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || (!defined __STRICT_ANSI__ \ + && (_GL_GNUC_PREREQ (4, 7) \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))))) + /* _Noreturn works as-is. */ +# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif +]) + AH_VERBATIM([isoc99_inline], +[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports + the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of + earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. + __APPLE__ && __MACH__ test for Mac OS X. + __APPLE_CC__ tests for the Apple compiler and its version. + __STDC_VERSION__ tests for the C99 mode. */ +#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ +# define __GNUC_STDC_INLINE__ 1 +#endif]) + AH_VERBATIM([attribute], +[/* Attributes. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))) +# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) +#else +# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr +# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) +# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) +# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_diagnose_if 0 +# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) +# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) +# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) +# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) +# ifdef _ICC +# define _GL_ATTR_may_alias 0 +# else +# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) +# endif +# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) +# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) +# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) +# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) +# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) +#endif + +#ifdef __has_c_attribute +# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710 \ + && _GL_GNUC_PREREQ (4, 6)) +# pragma GCC diagnostic ignored "-Wpedantic" +# endif +# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__) +#else +# define _GL_HAS_C_ATTRIBUTE(attr) 0 +#endif + +]dnl There is no _GL_ATTRIBUTE_ALIGNED; use stdalign's _Alignas instead. +[ +/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function + is the size of the returned memory block. + _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied + by the Nth argument of the function is the size of the returned memory block. + */ +/* Applies to: function, pointer to function, function types. */ +#if _GL_HAS_ATTRIBUTE (alloc_size) +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) +#else +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) +#endif + +/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the + function and report an error if it cannot do so. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (always_inline) +# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#else +# define _GL_ATTRIBUTE_ALWAYS_INLINE +#endif + +/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show + in stack traces when debugging. The compiler should omit the function from + stack traces. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (artificial) +# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) +#else +# define _GL_ATTRIBUTE_ARTIFICIAL +#endif + +/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ +/* Applies to: functions. */ +/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at + . + Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ +#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ +# ifndef __SUNPRO_C +# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) +# else +# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) +# endif +#else +# define _GL_ATTRIBUTE_COLD +#endif + +/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate + calls to the function with the same arguments. + This attribute is safe for a function that neither depends on nor affects + observable state, and always returns exactly once - e.g., does not loop + forever, and does not call longjmp. + (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (const) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST +#endif + +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. + _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#if _GL_GNUC_PREREQ (11, 0) +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +#else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +#endif +/* If gnulib's or has already defined this macro, continue + to use this earlier definition, since may not have been included + yet. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. + The compiler may warn if the entity is used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: namespace, class, template specialization. */ +#if _GL_HAS_C_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] +#elif _GL_HAS_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) +#else +# define _GL_ATTRIBUTE_DEPRECATED +#endif + +/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and + the function call is not optimized away. + _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and + the function call is not optimized away. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (error) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) +#elif _GL_HAS_ATTRIBUTE (diagnose_if) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) +#else +# define _GL_ATTRIBUTE_ERROR(msg) +# define _GL_ATTRIBUTE_WARNING(msg) +#endif + +/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain + visible to debuggers etc., even with '-fwhole-program'. */ +/* Applies to: functions, variables. */ +#if _GL_HAS_ATTRIBUTE (externally_visible) +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) +#else +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE +#endif + +/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if + the control flow falls through to the immediately following 'case' or + 'default' label. The compiler should not warn in this case. */ +/* Applies to: Empty statement (;), inside a 'switch' statement. */ +/* Always expands to something. */ +#if _GL_HAS_C_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] +#elif _GL_HAS_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) +#else +# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) +#endif + +/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) + declares that the STRING-INDEXth function argument is a format string of + style ARCHETYPE, which is one of: + printf, gnu_printf + scanf, gnu_scanf, + strftime, gnu_strftime, + strfmon, + or the same thing prefixed and suffixed with '__'. + If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK + are suitable for the format string. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (format) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) +#endif + +/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other + compilation unit, it executes code from that unit only by return or by + exception handling. This declaration lets the compiler optimize that unit + more aggressively. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (leaf) +# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) +#else +# define _GL_ATTRIBUTE_LEAF +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (malloc) +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the + same storage as pointers to other types. Thus this declaration disables + strict aliasing optimization. */ +/* Applies to: types. */ +/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ +#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C +# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) +#else +# define _GL_ATTRIBUTE_MAY_ALIAS +#endif + +/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if + the entity is not used. The compiler should not warn if the entity is not + used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: class. */ +/* In C++ and C2x, this is spelled [[__maybe_unused__]]. + GCC's syntax is __attribute__ ((__unused__)). + clang supports both syntaxes. */ +#if _GL_HAS_C_ATTRIBUTE (maybe_unused) +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +#else +# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED +#endif +/* Alternative spelling of this macro, for convenience. */ +#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED +/* Earlier spellings of this macro. */ +#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED + +/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not + discard the return value. The compiler may warn if the caller does not use + the return value, unless the caller uses something like ignore_value. */ +/* Applies to: function, enumeration, class. */ +#if _GL_HAS_C_ATTRIBUTE (nodiscard) +# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] +#elif _GL_HAS_ATTRIBUTE (warn_unused_result) +# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) +#else +# define _GL_ATTRIBUTE_NODISCARD +#endif + +/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the + function. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (noinline) +# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) +#else +# define _GL_ATTRIBUTE_NOINLINE +#endif + +/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... + must not be NULL. + _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be + null. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nonnull) +# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) +#else +# define _GL_ATTRIBUTE_NONNULL(args) +#endif + +/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is + not meant to be NUL-terminated. */ +/* Applies to: struct/union members and variables that are arrays of element + type '[[un]signed] char'. */ +#if _GL_HAS_ATTRIBUTE (nonstring) +# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) +#else +# define _GL_ATTRIBUTE_NONSTRING +#endif + +/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ + +/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. + */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus +# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) +#else +# define _GL_ATTRIBUTE_NOTHROW +#endif + +/* _GL_ATTRIBUTE_PACKED declares: + For struct members: The member has the smallest possible alignment. + For struct, union, class: All members have the smallest possible alignment, + minimizing the memory required. */ +/* Applies to: struct members, struct, union, + in C++ also: class. */ +#if _GL_HAS_ATTRIBUTE (packed) +# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) +#else +# define _GL_ATTRIBUTE_PACKED +#endif + +/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate + calls to the function with the same arguments if observable state is not + changed between calls. + This attribute is safe for a function that does not affect + observable state, and always returns exactly once. + (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (pure) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +# define _GL_ATTRIBUTE_PURE +#endif + +/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is + a non-NULL pointer. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (returns_nonnull) +# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) +#else +# define _GL_ATTRIBUTE_RETURNS_NONNULL +#endif + +/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a + trailing NULL argument. + _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). + _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (sentinel) +# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) +#else +# define _GL_ATTRIBUTE_SENTINEL(pos) +#endif + +/* A helper macro. Don't use it directly. */ +#if _GL_HAS_ATTRIBUTE (unused) +# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_ATTRIBUTE_UNUSED +#endif + +]dnl There is no _GL_ATTRIBUTE_VISIBILITY; see m4/visibility.m4 instead. +[ +/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the + immediately preceding label is not used. The compiler should not warn + if the label is not used. */ +/* Applies to: label (both in C and C++). */ +/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' + syntax. But clang does. */ +#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ +# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED +#else +# define _GL_UNUSED_LABEL +#endif +]) + AH_VERBATIM([async_safe], +[/* The _GL_ASYNC_SAFE marker should be attached to functions that are + signal handlers (for signals other than SIGABRT, SIGPIPE) or can be + invoked from such signal handlers. Such functions have some restrictions: + * All functions that it calls should be marked _GL_ASYNC_SAFE as well, + or should be listed as async-signal-safe in POSIX + + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in + particular, are NOT async-signal-safe. + * All memory locations (variables and struct fields) that these functions + access must be marked 'volatile'. This holds for both read and write + accesses. Otherwise the compiler might optimize away stores to and + reads from such locations that occur in the program, depending on its + data flow analysis. For example, when the program contains a loop + that is intended to inspect a variable set from within a signal handler + while (!signal_occurred) + ; + the compiler is allowed to transform this into an endless loop if the + variable 'signal_occurred' is not declared 'volatile'. + Additionally, recall that: + * A signal handler should not modify errno (except if it is a handler + for a fatal signal and ends by raising the same signal again, thus + provoking the termination of the process). If it invokes a function + that may clobber errno, it needs to save and restore the value of + errno. */ +#define _GL_ASYNC_SAFE +]) + AH_VERBATIM([micro_optimizations], +[/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where + n1 and n2 are expressions without side effects, that evaluate to real + numbers (excluding NaN). + It returns + 1 if n1 > n2 + 0 if n1 == n2 + -1 if n1 < n2 + The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional + jump with nearly all GCC versions up to GCC 10. + This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many + GCC versions up to GCC 9. + The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 + avoids conditional jumps in all GCC versions >= 3.4. */ +#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) +]) + dnl Hint which direction to take regarding cross-compilation guesses: + dnl When a user installs a program on a platform they are not intimately + dnl familiar with, --enable-cross-guesses=conservative is the appropriate + dnl choice. It implements the "If we don't know, assume the worst" principle. + dnl However, when an operating system developer (on a platform which is not + dnl yet known to gnulib) builds packages for their platform, they want to + dnl expose, not hide, possible platform bugs; in this case, + dnl --enable-cross-guesses=risky is the appropriate choice. + dnl Sets the variables + dnl gl_cross_guess_normal (to be used when 'yes' is good and 'no' is bad), + dnl gl_cross_guess_inverted (to be used when 'no' is good and 'yes' is bad). + AC_ARG_ENABLE([cross-guesses], + [AS_HELP_STRING([--enable-cross-guesses={conservative|risky}], + [specify policy for cross-compilation guesses])], + [if test "x$enableval" != xconservative && test "x$enableval" != xrisky; then + AC_MSG_WARN([invalid argument supplied to --enable-cross-guesses]) + enableval=conservative + fi + gl_cross_guesses="$enableval"], + [gl_cross_guesses=conservative]) + if test $gl_cross_guesses = risky; then + gl_cross_guess_normal="guessing yes" + gl_cross_guess_inverted="guessing no" + else + gl_cross_guess_normal="guessing no" + gl_cross_guess_inverted="guessing yes" + fi + dnl Preparation for running test programs: + dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not + dnl to /dev/tty, so they can be redirected to log files. Such diagnostics + dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. + LIBC_FATAL_STDERR_=1 + export LIBC_FATAL_STDERR_ +]) + +# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename]) +# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue]) +# initializes the shell variable that indicates the presence of the given module +# as a C preprocessor expression. +AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE], +[ + GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2]) + AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1]) +]) + +# gl_MODULE_INDICATOR_CONDITION +# expands to a C preprocessor expression that evaluates to 1 or 0, depending +# whether a gnulib module that has been requested shall be considered present +# or not. +m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) + +# gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) +# sets the shell variable that indicates the presence of the given module to +# a C preprocessor expression that will evaluate to 1. +AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], +[ + gl_MODULE_INDICATOR_SET_VARIABLE_AUX( + [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]], + [abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], + [gl_MODULE_INDICATOR_CONDITION]) +]) + +# gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) +# modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. +# The shell variable's value is a C preprocessor expression that evaluates +# to 0 or 1. +AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], +[ + m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], + [ + dnl Simplify the expression VALUE || 1 to 1. + $1=1 + ], + [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], + [gl_MODULE_INDICATOR_CONDITION])]) +]) + +# gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) +# modifies the shell variable to include the given condition. The shell +# variable's value is a C preprocessor expression that evaluates to 0 or 1. +AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], +[ + dnl Simplify the expression 1 || CONDITION to 1. + if test "$[]$1" != 1; then + dnl Simplify the expression 0 || CONDITION to CONDITION. + if test "$[]$1" = 0; then + $1=$2 + else + $1="($[]$1 || $2)" + fi + fi +]) + +# gl_MODULE_INDICATOR([modulename]) +# defines a C macro indicating the presence of the given module +# in a location where it can be used. +# | Value | Value | +# | in lib/ | in tests/ | +# --------------------------------------------+---------+-----------+ +# Module present among main modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module present among tests-related modules: | 0 | 1 | +# --------------------------------------------+---------+-----------+ +# Module not present at all: | 0 | 0 | +# --------------------------------------------+---------+-----------+ +AC_DEFUN([gl_MODULE_INDICATOR], +[ + AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], + [abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), + [gl_MODULE_INDICATOR_CONDITION], + [Define to a C preprocessor expression that evaluates to 1 or 0, + depending whether the gnulib module $1 shall be considered present.]) +]) + +# gl_MODULE_INDICATOR_FOR_TESTS([modulename]) +# defines a C macro indicating the presence of the given module +# in lib or tests. This is useful to determine whether the module +# should be tested. +# | Value | Value | +# | in lib/ | in tests/ | +# --------------------------------------------+---------+-----------+ +# Module present among main modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module present among tests-related modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module not present at all: | 0 | 0 | +# --------------------------------------------+---------+-----------+ +AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], +[ + AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], + [abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], + [Define to 1 when the gnulib module $1 should be tested.]) +]) + +# gl_ASSERT_NO_GNULIB_POSIXCHECK +# asserts that there will never be a need to #define GNULIB_POSIXCHECK. +# and thereby enables an optimization of configure and config.h. +# Used by Emacs. +AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], +[ + dnl Override gl_WARN_ON_USE_PREPARE. + dnl But hide this definition from 'aclocal'. + AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) +]) + +# gl_ASSERT_NO_GNULIB_TESTS +# asserts that there will be no gnulib tests in the scope of the configure.ac +# and thereby enables an optimization of config.h. +# Used by Emacs. +AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], +[ + dnl Override gl_MODULE_INDICATOR_FOR_TESTS. + AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) +]) + +# Test whether exists. +# Set HAVE_FEATURES_H. +AC_DEFUN([gl_FEATURES_H], +[ + AC_CHECK_HEADERS_ONCE([features.h]) + if test $ac_cv_header_features_h = yes; then + HAVE_FEATURES_H=1 + else + HAVE_FEATURES_H=0 + fi + AC_SUBST([HAVE_FEATURES_H]) +]) + +# gl_PROG_CC_C99 +# Modifies the value of the shell variable CC in an attempt to make $CC +# understand ISO C99 source code. +AC_DEFUN([gl_PROG_CC_C99], +[ + dnl Just use AC_PROG_CC_C99. + dnl When AC_PROG_CC_C99 and AC_PROG_CC_STDC are used together, the substituted + dnl value of CC will contain the C99 enabling options twice. But this is only + dnl a cosmetic problem. + dnl With Autoconf >= 2.70, use AC_PROG_CC since it implies AC_PROG_CC_C99; + dnl this avoids a "warning: The macro `AC_PROG_CC_C99' is obsolete." + m4_version_prereq([2.70], + [AC_REQUIRE([AC_PROG_CC])], + [AC_REQUIRE([AC_PROG_CC_C99])]) +]) + +# gl_PROG_AR_RANLIB +# Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. +# The user can set the variables AR, ARFLAGS, RANLIB if he wants to override +# the values. +AC_DEFUN([gl_PROG_AR_RANLIB], +[ + dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler + dnl as "cc", and GCC as "gcc". They have different object file formats and + dnl library formats. In particular, the GNU binutils programs ar and ranlib + dnl produce libraries that work only with gcc, not with cc. + AC_REQUIRE([AC_PROG_CC]) + dnl The '][' hides this use from 'aclocal'. + AC_BEFORE([$0], [A][M_PROG_AR]) + AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], + [ + AC_EGREP_CPP([Amsterdam], + [ +#ifdef __ACK__ +Amsterdam +#endif + ], + [gl_cv_c_amsterdam_compiler=yes], + [gl_cv_c_amsterdam_compiler=no]) + ]) + + dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not + dnl building with __ACK__. + if test $gl_cv_c_amsterdam_compiler = yes; then + if test -z "$AR"; then + AR='cc -c.a' + fi + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST + dnl ARFLAGS variable (it is filed into Makefile.in directly by automake + dnl script on-demand, if not specified by ./configure of course). + dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above + dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block + dnl because AM_PROG_AR is written so it could re-set AR variable even for + dnl __ACK__. It may seem like its easier to avoid calling the macro here, + dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good + dnl default value and automake should usually know them). + dnl + dnl The '][' hides this use from 'aclocal'. + m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) + fi + + dnl In case the code above has not helped with setting AR/ARFLAGS, use + dnl Automake-documented default values for AR and ARFLAGS, but prefer + dnl ${host}-ar over ar (useful for cross-compiling). + AC_CHECK_TOOL([AR], [ar], [ar]) + if test -z "$ARFLAGS"; then + ARFLAGS='cr' + fi + + AC_SUBST([AR]) + AC_SUBST([ARFLAGS]) + if test -z "$RANLIB"; then + if test $gl_cv_c_amsterdam_compiler = yes; then + RANLIB=':' + else + dnl Use the ranlib program if it is available. + AC_PROG_RANLIB + fi + fi + AC_SUBST([RANLIB]) +]) + +# AC_C_RESTRICT +# This definition is copied from post-2.70 Autoconf and overrides the +# AC_C_RESTRICT macro from autoconf 2.60..2.70. +m4_version_prereq([2.70.1], [], [ +AC_DEFUN([AC_C_RESTRICT], +[AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], + [ac_cv_c_restrict=no + # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: + # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html + # Put 'restrict' last, because C++ lacks it. + for ac_kw in __restrict__ __restrict _Restrict restrict; do + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + ]], + [[int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + ]])], + [ac_cv_c_restrict=$ac_kw]) + test "$ac_cv_c_restrict" != no && break + done + ]) + AH_VERBATIM([restrict], +[/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported only directly. */ +#undef restrict +/* Work around a bug in older versions of Sun C++, which did not + #define __restrict__ or support _Restrict or __restrict__ + even though the corresponding Sun C compiler ended up with + "#define restrict _Restrict" or "#define restrict __restrict__" + in the previous line. This workaround can be removed once + we assume Oracle Developer Studio 12.5 (2016) or later. */ +#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ +# define _Restrict +# define __restrict__ +#endif]) + case $ac_cv_c_restrict in + restrict) ;; + no) AC_DEFINE([restrict], []) ;; + *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; + esac +])# AC_C_RESTRICT +]) + +# gl_BIGENDIAN +# is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. +# Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some +# macros invoke AC_C_BIGENDIAN with arguments. +AC_DEFUN([gl_BIGENDIAN], +[ + AC_C_BIGENDIAN +]) + +# A temporary file descriptor. +# Must be less than 10, because dash 0.5.8 does not support redirections +# with multi-digit file descriptors. +m4_define([GL_TMP_FD], 9) + +# gl_SILENT(command) +# executes command, but without the normal configure output. +# This is useful when you want to invoke AC_CACHE_CHECK (or AC_CHECK_FUNC etc.) +# inside another AC_CACHE_CHECK. +AC_DEFUN([gl_SILENT], +[ + exec GL_TMP_FD>&AS_MESSAGE_FD AS_MESSAGE_FD>/dev/null + $1 + exec AS_MESSAGE_FD>&GL_TMP_FD GL_TMP_FD>&- +]) + +# gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) +# is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not +# output a spurious "(cached)" mark in the midst of other configure output. +# This macro should be used instead of AC_CACHE_VAL when it is not surrounded +# by an AC_MSG_CHECKING/AC_MSG_RESULT pair. +AC_DEFUN([gl_CACHE_VAL_SILENT], +[ + gl_SILENT([ + AC_CACHE_VAL([$1], [$2]) + ]) +]) + +# gl_CONDITIONAL(conditional, condition) +# is like AM_CONDITIONAL(conditional, condition), except that it does not +# produce an error +# configure: error: conditional "..." was never defined. +# Usually this means the macro was only invoked conditionally. +# when only invoked conditionally. Instead, in that case, both the _TRUE +# and the _FALSE case are disabled. +AC_DEFUN([gl_CONDITIONAL], +[ + pushdef([AC_CONFIG_COMMANDS_PRE], [:])dnl + AM_CONDITIONAL([$1], [$2]) + popdef([AC_CONFIG_COMMANDS_PRE])dnl + if test -z "${[$1]_TRUE}" && test -z "${[$1]_FALSE}"; then + [$1]_TRUE='#' + [$1]_FALSE='#' + fi +]) + +# gl_CC_ALLOW_WARNINGS +# sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option +# that reverts a preceding '-Werror' option, if available. +# This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang +# and empty otherwise. +AC_DEFUN([gl_CC_ALLOW_WARNINGS], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([for C compiler option to allow warnings], + [gl_cv_cc_wallow], + [rm -f conftest* + echo 'int dummy;' > conftest.c + AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null + AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null + dnl Test the number of error output lines, because AIX xlc accepts the + dnl option '-Wno-error', just to produce a warning + dnl "Option -Wno-error was incorrectly specified. The option will be ignored." + dnl afterwards. + if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then + gl_cv_cc_wallow='-Wno-error' + else + gl_cv_cc_wallow=none + fi + rm -f conftest* + ]) + case "$gl_cv_cc_wallow" in + none) GL_CFLAG_ALLOW_WARNINGS='' ;; + *) GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;; + esac + AC_SUBST([GL_CFLAG_ALLOW_WARNINGS]) +]) + +# gl_CXX_ALLOW_WARNINGS +# sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option +# that reverts a preceding '-Werror' option, if available. +AC_DEFUN([gl_CXX_ALLOW_WARNINGS], +[ + dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX. + if test -n "$CXX" && test "$CXX" != no; then + AC_CACHE_CHECK([for C++ compiler option to allow warnings], + [gl_cv_cxx_wallow], + [rm -f conftest* + echo 'int dummy;' > conftest.cc + AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null + AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null + dnl Test the number of error output lines, because AIX xlC accepts the + dnl option '-Wno-error', just to produce a warning + dnl "Option -Wno-error was incorrectly specified. The option will be ignored." + dnl afterwards. + if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then + gl_cv_cxx_wallow='-Wno-error' + else + gl_cv_cxx_wallow=none + fi + rm -f conftest* + ]) + case "$gl_cv_cxx_wallow" in + none) GL_CXXFLAG_ALLOW_WARNINGS='' ;; + *) GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;; + esac + else + GL_CXXFLAG_ALLOW_WARNINGS='' + fi + AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS]) +]) + +# gl_CC_GNULIB_WARNINGS +# sets and substitutes a variable GL_CFLAG_GNULIB_WARNINGS, to a $(CC) option +# set that enables or disables warnings as suitable for the Gnulib coding style. +AC_DEFUN([gl_CC_GNULIB_WARNINGS], +[ + AC_REQUIRE([gl_CC_ALLOW_WARNINGS]) + dnl Assume that the compiler supports -Wno-* options only if it also supports + dnl -Wno-error. + GL_CFLAG_GNULIB_WARNINGS='' + if test -n "$GL_CFLAG_ALLOW_WARNINGS"; then + dnl Enable these warning options: + dnl + dnl GCC clang + dnl -Wno-cast-qual >= 3 >= 3.9 + dnl -Wno-conversion >= 3 >= 3.9 + dnl -Wno-float-conversion >= 4.9 >= 3.9 + dnl -Wno-float-equal >= 3 >= 3.9 + dnl -Wimplicit-fallthrough >= 7 >= 3.9 + dnl -Wno-pedantic >= 4.8 >= 3.9 + dnl -Wno-sign-compare >= 3 >= 3.9 + dnl -Wno-sign-conversion >= 4.3 >= 3.9 + dnl -Wno-type-limits >= 4.3 >= 3.9 + dnl -Wno-undef >= 3 >= 3.9 + dnl -Wno-unsuffixed-float-constants >= 4.5 + dnl -Wno-unused-function >= 3 >= 3.9 + dnl -Wno-unused-parameter >= 3 >= 3.9 + dnl + cat > conftest.c <<\EOF + #if __GNUC__ >= 3 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-cast-qual + -Wno-conversion + -Wno-float-equal + -Wno-sign-compare + -Wno-undef + -Wno-unused-function + -Wno-unused-parameter + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-float-conversion + #endif + #if __GNUC__ >= 7 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wimplicit-fallthrough + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 8) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-pedantic + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 3) > 4 || (__clang_major__ + (__clang_minor__ >= 9) > 3) + -Wno-sign-conversion + -Wno-type-limits + #endif + #if __GNUC__ + (__GNUC_MINOR__ >= 5) > 4 + -Wno-unsuffixed-float-constants + #endif +EOF + gl_command="$CC $CFLAGS $CPPFLAGS -E conftest.c > conftest.out" + if AC_TRY_EVAL([gl_command]); then + gl_options=`grep -v '#' conftest.out` + for word in $gl_options; do + GL_CFLAG_GNULIB_WARNINGS="$GL_CFLAG_GNULIB_WARNINGS $word" + done + fi + rm -f conftest.c conftest.out + fi + AC_SUBST([GL_CFLAG_GNULIB_WARNINGS]) +]) + +dnl gl_CONDITIONAL_HEADER([foo.h]) +dnl takes a shell variable GL_GENERATE_FOO_H (with value true or false) as input +dnl and produces +dnl - an AC_SUBSTed variable FOO_H that is either a file name or empty, based +dnl on whether GL_GENERATE_FOO_H is true or false, +dnl - an Automake conditional GL_GENERATE_FOO_H that evaluates to the value of +dnl the shell variable GL_GENERATE_FOO_H. +AC_DEFUN([gl_CONDITIONAL_HEADER], +[ + m4_pushdef([gl_header_name], AS_TR_SH(m4_toupper($1))) + m4_pushdef([gl_generate_var], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) + m4_pushdef([gl_generate_cond], [GL_GENERATE_]AS_TR_SH(m4_toupper($1))) + case "$gl_generate_var" in + false) gl_header_name='' ;; + true) + dnl It is OK to use a .h file in lib/ from within tests/, but not vice + dnl versa. + if test -z "$gl_header_name"; then + gl_header_name="${gl_source_base_prefix}$1" + fi + ;; + *) echo "*** gl_generate_var is not set correctly" 1>&2; exit 1 ;; + esac + AC_SUBST(gl_header_name) + gl_CONDITIONAL(gl_generate_cond, [$gl_generate_var]) + m4_popdef([gl_generate_cond]) + m4_popdef([gl_generate_var]) + m4_popdef([gl_header_name]) +]) + +dnl Expands to some code for use in .c programs that, on native Windows, defines +dnl the Microsoft deprecated alias function names to the underscore-prefixed +dnl actual function names. With this macro, these function names are available +dnl without linking with '-loldnames' and without generating warnings. +dnl Usage: Use it after all system header files are included. +dnl #include <...> +dnl #include <...> +dnl ]GL_MDA_DEFINES[ +dnl ... +AC_DEFUN([GL_MDA_DEFINES],[ +AC_REQUIRE([_GL_MDA_DEFINES]) +[$gl_mda_defines] +]) +AC_DEFUN([_GL_MDA_DEFINES], +[gl_mda_defines=' +#if defined _WIN32 && !defined __CYGWIN__ +#define access _access +#define chdir _chdir +#define chmod _chmod +#define close _close +#define creat _creat +#define dup _dup +#define dup2 _dup2 +#define ecvt _ecvt +#define execl _execl +#define execle _execle +#define execlp _execlp +#define execv _execv +#define execve _execve +#define execvp _execvp +#define execvpe _execvpe +#define fcloseall _fcloseall +#define fcvt _fcvt +#define fdopen _fdopen +#define fileno _fileno +#define gcvt _gcvt +#define getcwd _getcwd +#define getpid _getpid +#define getw _getw +#define isatty _isatty +#define j0 _j0 +#define j1 _j1 +#define jn _jn +#define lfind _lfind +#define lsearch _lsearch +#define lseek _lseek +#define memccpy _memccpy +#define mkdir _mkdir +#define mktemp _mktemp +#define open _open +#define putenv _putenv +#define putw _putw +#define read _read +#define rmdir _rmdir +#define strdup _strdup +#define swab _swab +#define tempnam _tempnam +#define tzset _tzset +#define umask _umask +#define unlink _unlink +#define utime _utime +#define wcsdup _wcsdup +#define write _write +#define y0 _y0 +#define y1 _y1 +#define yn _yn +#endif +' +]) diff --git a/3rdPartner/libiconv/srcm4/gnulib-comp.m4 b/3rdPartner/libiconv/srcm4/gnulib-comp.m4 new file mode 100644 index 0000000..b511e8a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/gnulib-comp.m4 @@ -0,0 +1,864 @@ +# DO NOT EDIT! GENERATED AUTOMATICALLY! +# Copyright (C) 2002-2022 Free Software Foundation, Inc. +# +# This file 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 3 of the License, or +# (at your option) any later version. +# +# This file 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 file. If not, see . +# +# As a special exception to the GNU General Public License, +# this file may be distributed as part of a program that +# contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# Generated by gnulib-tool. +# +# This file represents the compiled summary of the specification in +# gnulib-cache.m4. It lists the computed macro invocations that need +# to be invoked from configure.ac. +# In projects that use version control, this file can be treated like +# other built files. + + +# This macro should be invoked from ./configure.ac, in the section +# "Checks for programs", right after AC_PROG_CC, and certainly before +# any checks for libraries, header files, types and library functions. +AC_DEFUN([gl_EARLY], +[ + m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace + m4_pattern_allow([^gl_ES$])dnl a valid locale name + m4_pattern_allow([^gl_LIBOBJS$])dnl a variable + m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable + + # Pre-early section. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_PROG_AR_RANLIB]) + + # Code from module absolute-header: + # Code from module alloca-opt: + # Code from module allocator: + # Code from module areadlink: + # Code from module basename-lgpl: + # Code from module binary-io: + # Code from module builtin-expect: + # Code from module c99: + # Code from module canonicalize-lgpl: + # Code from module careadlinkat: + # Code from module cloexec: + # Code from module close: + # Code from module double-slash-root: + # Code from module dup2: + # Code from module eloop-threshold: + # Code from module environ: + # Code from module errno: + # Code from module error: + # Code from module extensions: + # Code from module extern-inline: + # Code from module fcntl: + # Code from module fcntl-h: + # Code from module fd-hook: + # Code from module filename: + # Code from module free-posix: + # Code from module fstat: + # Code from module gen-header: + # Code from module getdtablesize: + # Code from module getprogname: + # Code from module gettext: + # Code from module gettext-h: + # Code from module havelib: + # Code from module idx: + # Code from module include_next: + # Code from module intprops: + # Code from module inttypes-incomplete: + # Code from module largefile: + AC_REQUIRE([AC_SYS_LARGEFILE]) + AC_REQUIRE([gl_YEAR2038_EARLY]) + # Code from module lib-symbol-visibility: + # Code from module libc-config: + # Code from module libiconv-misc: + # Code from module limits-h: + # Code from module malloc-posix: + # Code from module malloca: + # Code from module mbstate: + # Code from module mempcpy: + # Code from module minmax: + # Code from module msvc-inval: + # Code from module msvc-nothrow: + # Code from module multiarch: + # Code from module nocrash: + # Code from module open: + # Code from module pathmax: + # Code from module progname: + # Code from module raise: + # Code from module rawmemchr: + # Code from module read: + # Code from module readlink: + # Code from module realloc-posix: + # Code from module relocatable-prog: + # Code from module relocatable-prog-wrapper: + AC_REQUIRE([AC_SYS_LARGEFILE]) + # Code from module safe-read: + # Code from module scratch_buffer: + # Code from module signal-h: + # Code from module sigpipe: + # Code from module sigprocmask: + # Code from module snippet/_Noreturn: + # Code from module snippet/arg-nonnull: + # Code from module snippet/c++defs: + # Code from module snippet/warn-on-use: + # Code from module ssize_t: + # Code from module stat: + # Code from module stat-time: + # Code from module std-gnu11: + # Code from module stdalign: + # Code from module stdbool: + # Code from module stddef: + # Code from module stdint: + # Code from module stdio: + # Code from module stdlib: + # Code from module streq: + # Code from module strerror: + # Code from module strerror-override: + # Code from module string: + # Code from module sys_stat: + # Code from module sys_types: + # Code from module time: + # Code from module unistd: + # Code from module unitypes: + # Code from module uniwidth/base: + # Code from module uniwidth/width: + # Code from module unlocked-io: + # Code from module unlocked-io-internal: + # Code from module vararrays: + # Code from module verify: + # Code from module wchar: + # Code from module xalloc: + # Code from module xalloc-oversized: + # Code from module xreadlink: +]) + +# This macro should be invoked from ./configure.ac, in the section +# "Check for header files, types and library functions". +AC_DEFUN([gl_INIT], +[ + AM_CONDITIONAL([GL_COND_LIBTOOL], [false]) + gl_cond_libtool=false + gl_libdeps= + gl_ltlibdeps= + gl_m4_base='srcm4' + m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) + m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) + m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) + m4_pushdef([gl_LIBSOURCES_LIST], []) + m4_pushdef([gl_LIBSOURCES_DIR], []) + m4_pushdef([GL_MACRO_PREFIX], [gl]) + m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) + gl_COMMON + gl_source_base='srclib' + gl_source_base_prefix= + gl_FUNC_ALLOCA + gl_CONDITIONAL_HEADER([alloca.h]) + AC_PROG_MKDIR_P + gl___BUILTIN_EXPECT + gl_CANONICALIZE_LGPL + gl_CONDITIONAL([GL_COND_OBJ_CANONICALIZE_LGPL], + [test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1]) + gl_MODULE_INDICATOR([canonicalize-lgpl]) + gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) + gl_STDLIB_MODULE_INDICATOR([realpath]) + AC_REQUIRE([AC_C_RESTRICT]) + AC_CHECK_FUNCS_ONCE([readlinkat]) + gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) + gl_FUNC_CLOSE + gl_CONDITIONAL([GL_COND_OBJ_CLOSE], [test $REPLACE_CLOSE = 1]) + gl_UNISTD_MODULE_INDICATOR([close]) + gl_DOUBLE_SLASH_ROOT + gl_FUNC_DUP2 + gl_CONDITIONAL([GL_COND_OBJ_DUP2], [test $REPLACE_DUP2 = 1]) + AM_COND_IF([GL_COND_OBJ_DUP2], [ + gl_PREREQ_DUP2 + ]) + gl_UNISTD_MODULE_INDICATOR([dup2]) + gl_ENVIRON + gl_UNISTD_MODULE_INDICATOR([environ]) + gl_HEADER_ERRNO_H + gl_CONDITIONAL_HEADER([errno.h]) + AC_PROG_MKDIR_P + gl_ERROR + gl_CONDITIONAL([GL_COND_OBJ_ERROR], [test "$ac_cv_lib_error_at_line" = no]) + AM_COND_IF([GL_COND_OBJ_ERROR], [ + gl_PREREQ_ERROR + ]) + m4_ifdef([AM_XGETTEXT_OPTION], + [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) + AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) + AC_REQUIRE([gl_EXTERN_INLINE]) + gl_FUNC_FCNTL + gl_CONDITIONAL([GL_COND_OBJ_FCNTL], + [test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1]) + gl_FCNTL_MODULE_INDICATOR([fcntl]) + gl_FCNTL_H + gl_FCNTL_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_FUNC_FREE + gl_CONDITIONAL([GL_COND_OBJ_FREE], [test $REPLACE_FREE = 1]) + AM_COND_IF([GL_COND_OBJ_FREE], [ + gl_PREREQ_FREE + ]) + gl_STDLIB_MODULE_INDICATOR([free-posix]) + gl_FUNC_FSTAT + gl_CONDITIONAL([GL_COND_OBJ_FSTAT], [test $REPLACE_FSTAT = 1]) + AM_COND_IF([GL_COND_OBJ_FSTAT], [ + case "$host_os" in + mingw*) + AC_LIBOBJ([stat-w32]) + ;; + esac + gl_PREREQ_FSTAT + ]) + gl_SYS_STAT_MODULE_INDICATOR([fstat]) + gl_FUNC_GETDTABLESIZE + gl_CONDITIONAL([GL_COND_OBJ_GETDTABLESIZE], + [test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1]) + AM_COND_IF([GL_COND_OBJ_GETDTABLESIZE], [ + gl_PREREQ_GETDTABLESIZE + ]) + gl_UNISTD_MODULE_INDICATOR([getdtablesize]) + gl_FUNC_GETPROGNAME + dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. + AM_GNU_GETTEXT_VERSION([0.20]) + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_DEFUN([gl_HAVE_MODULE_HAVELIB]) + gl_INTTYPES_INCOMPLETE + gl_INTTYPES_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + AC_REQUIRE([gl_LARGEFILE]) + gl_VISIBILITY + gl___INLINE + gl_LIMITS_H + gl_CONDITIONAL_HEADER([limits.h]) + AC_PROG_MKDIR_P + AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + AC_LIBOBJ([malloc]) + fi + gl_STDLIB_MODULE_INDICATOR([malloc-posix]) + gl_MALLOCA + AC_TYPE_MBSTATE_T + gl_FUNC_MEMPCPY + gl_CONDITIONAL([GL_COND_OBJ_MEMPCPY], [test $HAVE_MEMPCPY = 0]) + AM_COND_IF([GL_COND_OBJ_MEMPCPY], [ + gl_PREREQ_MEMPCPY + ]) + gl_STRING_MODULE_INDICATOR([mempcpy]) + gl_MINMAX + AC_REQUIRE([gl_MSVC_INVAL]) + gl_CONDITIONAL([GL_COND_OBJ_MSVC_INVAL], + [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) + AC_REQUIRE([gl_MSVC_NOTHROW]) + gl_CONDITIONAL([GL_COND_OBJ_MSVC_NOTHROW], + [test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1]) + gl_MODULE_INDICATOR([msvc-nothrow]) + gl_MULTIARCH + gl_FUNC_OPEN + gl_CONDITIONAL([GL_COND_OBJ_OPEN], [test $REPLACE_OPEN = 1]) + AM_COND_IF([GL_COND_OBJ_OPEN], [ + gl_PREREQ_OPEN + ]) + gl_FCNTL_MODULE_INDICATOR([open]) + gl_PATHMAX + AC_CHECK_DECLS([program_invocation_name], [], [], [#include ]) + AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include ]) + gl_FUNC_RAISE + gl_CONDITIONAL([GL_COND_OBJ_RAISE], + [test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1]) + AM_COND_IF([GL_COND_OBJ_RAISE], [ + gl_PREREQ_RAISE + ]) + gl_SIGNAL_MODULE_INDICATOR([raise]) + gl_FUNC_RAWMEMCHR + gl_CONDITIONAL([GL_COND_OBJ_RAWMEMCHR], [test $HAVE_RAWMEMCHR = 0]) + AM_COND_IF([GL_COND_OBJ_RAWMEMCHR], [ + gl_PREREQ_RAWMEMCHR + ]) + gl_STRING_MODULE_INDICATOR([rawmemchr]) + gl_FUNC_READ + gl_CONDITIONAL([GL_COND_OBJ_READ], [test $REPLACE_READ = 1]) + AM_COND_IF([GL_COND_OBJ_READ], [ + gl_PREREQ_READ + ]) + gl_UNISTD_MODULE_INDICATOR([read]) + gl_FUNC_READLINK + gl_CONDITIONAL([GL_COND_OBJ_READLINK], + [test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1]) + AM_COND_IF([GL_COND_OBJ_READLINK], [ + gl_PREREQ_READLINK + ]) + gl_UNISTD_MODULE_INDICATOR([readlink]) + gl_FUNC_REALLOC_POSIX + if test $REPLACE_REALLOC_FOR_REALLOC_POSIX = 1; then + AC_LIBOBJ([realloc]) + fi + gl_STDLIB_MODULE_INDICATOR([realloc-posix]) + gl_RELOCATABLE([$gl_source_base]) + gl_CONDITIONAL([GL_COND_OBJ_PROGRELOC], [test $RELOCATABLE = yes]) + AM_COND_IF([GL_COND_OBJ_PROGRELOC], [ + AC_LIBOBJ([relocatable]) + ]) + AC_REQUIRE([AC_C_RESTRICT]) + gl_FUNC_READLINK_SEPARATE + gl_CANONICALIZE_LGPL_SEPARATE + gl_FUNC_MALLOC_POSIX + gl_FUNC_REALLOC_POSIX + gl_FUNC_FREE + gl_FUNC_MEMPCPY + gl_FUNC_RAWMEMCHR + gl_MALLOCA + gl_RELOCATABLE_LIBRARY + gl_FUNC_SETENV_SEPARATE + gl_PREREQ_SAFE_READ + AC_PROG_MKDIR_P + gl_SIGNAL_H + gl_SIGNAL_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_SIGNAL_SIGPIPE + dnl Define the C macro GNULIB_SIGPIPE to 1. + gl_MODULE_INDICATOR([sigpipe]) + dnl Define the substituted variable GNULIB_SIGNAL_H_SIGPIPE to 1. + gl_SIGNAL_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNAL_H_SIGPIPE], [1]) + dnl Define the substituted variable GNULIB_STDIO_H_SIGPIPE to 1. + gl_STDIO_H_REQUIRE_DEFAULTS + AC_REQUIRE([gl_ASM_SYMBOL_PREFIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE], [1]) + dnl Define the substituted variable GNULIB_UNISTD_H_SIGPIPE to 1. + gl_UNISTD_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE], [1]) + gl_SIGNALBLOCKING + gl_CONDITIONAL([GL_COND_OBJ_SIGPROCMASK], [test $HAVE_POSIX_SIGNALBLOCKING = 0]) + AM_COND_IF([GL_COND_OBJ_SIGPROCMASK], [ + gl_PREREQ_SIGPROCMASK + ]) + gl_SIGNAL_MODULE_INDICATOR([sigprocmask]) + gt_TYPE_SSIZE_T + gl_FUNC_STAT + gl_CONDITIONAL([GL_COND_OBJ_STAT], [test $REPLACE_STAT = 1]) + AM_COND_IF([GL_COND_OBJ_STAT], [ + case "$host_os" in + mingw*) + AC_LIBOBJ([stat-w32]) + ;; + esac + gl_PREREQ_STAT + ]) + gl_SYS_STAT_MODULE_INDICATOR([stat]) + gl_STAT_TIME + gl_STAT_BIRTHTIME + gl_STDALIGN_H + gl_CONDITIONAL_HEADER([stdalign.h]) + AC_PROG_MKDIR_P + gl_STDBOOL_H + gl_CONDITIONAL_HEADER([stdbool.h]) + AC_PROG_MKDIR_P + gl_STDDEF_H + gl_STDDEF_H_REQUIRE_DEFAULTS + gl_CONDITIONAL_HEADER([stddef.h]) + AC_PROG_MKDIR_P + gl_STDINT_H + gl_CONDITIONAL_HEADER([stdint.h]) + dnl Because of gl_REPLACE_LIMITS_H: + gl_CONDITIONAL_HEADER([limits.h]) + AC_PROG_MKDIR_P + gl_STDIO_H + gl_STDIO_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_CONDITIONAL([GL_COND_OBJ_STDIO_READ], [test $REPLACE_STDIO_READ_FUNCS = 1]) + gl_CONDITIONAL([GL_COND_OBJ_STDIO_WRITE], [test $REPLACE_STDIO_WRITE_FUNCS = 1]) + dnl No need to create extra modules for these functions. Everyone who uses + dnl likely needs them. + gl_STDIO_MODULE_INDICATOR([fscanf]) + gl_MODULE_INDICATOR([fscanf]) + gl_STDIO_MODULE_INDICATOR([scanf]) + gl_MODULE_INDICATOR([scanf]) + gl_STDIO_MODULE_INDICATOR([fgetc]) + gl_STDIO_MODULE_INDICATOR([getc]) + gl_STDIO_MODULE_INDICATOR([getchar]) + gl_STDIO_MODULE_INDICATOR([fgets]) + gl_STDIO_MODULE_INDICATOR([fread]) + dnl No need to create extra modules for these functions. Everyone who uses + dnl likely needs them. + gl_STDIO_MODULE_INDICATOR([fprintf]) + gl_STDIO_MODULE_INDICATOR([printf]) + gl_STDIO_MODULE_INDICATOR([vfprintf]) + gl_STDIO_MODULE_INDICATOR([vprintf]) + gl_STDIO_MODULE_INDICATOR([fputc]) + gl_STDIO_MODULE_INDICATOR([putc]) + gl_STDIO_MODULE_INDICATOR([putchar]) + gl_STDIO_MODULE_INDICATOR([fputs]) + gl_STDIO_MODULE_INDICATOR([puts]) + gl_STDIO_MODULE_INDICATOR([fwrite]) + gl_STDLIB_H + gl_STDLIB_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_FUNC_STRERROR + gl_CONDITIONAL([GL_COND_OBJ_STRERROR], [test $REPLACE_STRERROR = 1]) + gl_MODULE_INDICATOR([strerror]) + gl_STRING_MODULE_INDICATOR([strerror]) + AC_REQUIRE([gl_HEADER_ERRNO_H]) + AC_REQUIRE([gl_FUNC_STRERROR_0]) + gl_CONDITIONAL([GL_COND_OBJ_STRERROR_OVERRIDE], + [test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1]) + AM_COND_IF([GL_COND_OBJ_STRERROR_OVERRIDE], [ + gl_PREREQ_SYS_H_WINSOCK2 + ]) + gl_STRING_H + gl_STRING_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_SYS_STAT_H + gl_SYS_STAT_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_SYS_TYPES_H + gl_SYS_TYPES_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_TIME_H + gl_TIME_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_UNISTD_H + gl_UNISTD_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h]) + AC_PROG_MKDIR_P + AH_VERBATIM([unitypes_restrict], [ + /* This definition is a duplicate of the one in unitypes.h. + It is here so that we can cope with an older version of unitypes.h + that does not contain this definition and that is pre-installed among + the public header files. */ + # if defined __restrict \ + || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ + || __clang_major__ >= 3 + # define _UC_RESTRICT __restrict + # elif 199901L <= __STDC_VERSION__ || defined restrict + # define _UC_RESTRICT restrict + # else + # define _UC_RESTRICT + # endif + ]) + gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwidth.h]) + AC_PROG_MKDIR_P + gl_LIBUNISTRING_MODULE([0.9.11], [uniwidth/width]) + AC_DEFINE([GNULIB_STDIO_SINGLE_THREAD], [1], + [Define to 1 if you want the FILE stream functions getc, putc, etc. + to use unlocked I/O if available, throughout the package. + Unlocked I/O can improve performance, sometimes dramatically. + But unlocked I/O is safe only in single-threaded programs, + as well as in multithreaded programs for which you can guarantee that + every FILE stream, including stdin, stdout, stderr, is used only + in a single thread.]) + AC_DEFINE([USE_UNLOCKED_IO], [GNULIB_STDIO_SINGLE_THREAD], + [An alias of GNULIB_STDIO_SINGLE_THREAD.]) + gl_FUNC_GLIBC_UNLOCKED_IO + AC_C_VARARRAYS + gl_WCHAR_H + gl_WCHAR_H_REQUIRE_DEFAULTS + AC_PROG_MKDIR_P + # End of code from modules + m4_ifval(gl_LIBSOURCES_LIST, [ + m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || + for gl_file in ]gl_LIBSOURCES_LIST[ ; do + if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then + echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 + exit 1 + fi + done])dnl + m4_if(m4_sysval, [0], [], + [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) + ]) + m4_popdef([GL_MODULE_INDICATOR_PREFIX]) + m4_popdef([GL_MACRO_PREFIX]) + m4_popdef([gl_LIBSOURCES_DIR]) + m4_popdef([gl_LIBSOURCES_LIST]) + m4_popdef([AC_LIBSOURCES]) + m4_popdef([AC_REPLACE_FUNCS]) + m4_popdef([AC_LIBOBJ]) + AC_CONFIG_COMMANDS_PRE([ + gl_libobjs= + gl_ltlibobjs= + gl_libobjdeps= + if test -n "$gl_LIBOBJS"; then + # Remove the extension. +changequote(,)dnl + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' +changequote([, ])dnl + for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gl_libobjs="$gl_libobjs $i.$ac_objext" + gl_ltlibobjs="$gl_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gl_libobjdeps="$gl_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" + done + fi + AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) + AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) + AC_SUBST([gl_LIBOBJDEPS], [$gl_libobjdeps]) + ]) + gltests_libdeps= + gltests_ltlibdeps= + m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) + m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) + m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) + m4_pushdef([gltests_LIBSOURCES_LIST], []) + m4_pushdef([gltests_LIBSOURCES_DIR], []) + m4_pushdef([GL_MACRO_PREFIX], [gltests]) + m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL]) + gl_COMMON + gl_source_base='tests' + gl_source_base_prefix= +changequote(,)dnl + gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS +changequote([, ])dnl + AC_SUBST([gltests_WITNESS]) + gl_module_indicator_condition=$gltests_WITNESS + m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) + m4_popdef([gl_MODULE_INDICATOR_CONDITION]) + m4_ifval(gltests_LIBSOURCES_LIST, [ + m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || + for gl_file in ]gltests_LIBSOURCES_LIST[ ; do + if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then + echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 + exit 1 + fi + done])dnl + m4_if(m4_sysval, [0], [], + [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) + ]) + m4_popdef([GL_MODULE_INDICATOR_PREFIX]) + m4_popdef([GL_MACRO_PREFIX]) + m4_popdef([gltests_LIBSOURCES_DIR]) + m4_popdef([gltests_LIBSOURCES_LIST]) + m4_popdef([AC_LIBSOURCES]) + m4_popdef([AC_REPLACE_FUNCS]) + m4_popdef([AC_LIBOBJ]) + AC_CONFIG_COMMANDS_PRE([ + gltests_libobjs= + gltests_ltlibobjs= + gltests_libobjdeps= + if test -n "$gltests_LIBOBJS"; then + # Remove the extension. +changequote(,)dnl + sed_drop_objext='s/\.o$//;s/\.obj$//' + sed_dirname1='s,//*,/,g' + sed_dirname2='s,\(.\)/$,\1,' + sed_dirname3='s,^[^/]*$,.,' + sed_dirname4='s,\(.\)/[^/]*$,\1,' + sed_basename1='s,.*/,,' +changequote([, ])dnl + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do + gltests_libobjs="$gltests_libobjs $i.$ac_objext" + gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" + i_dir=`echo "$i" | sed -e "$sed_dirname1" -e "$sed_dirname2" -e "$sed_dirname3" -e "$sed_dirname4"` + i_base=`echo "$i" | sed -e "$sed_basename1"` + gltests_libobjdeps="$gltests_libobjdeps $i_dir/\$(DEPDIR)/$i_base.Po" + done + fi + AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) + AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) + AC_SUBST([gltests_LIBOBJDEPS], [$gltests_libobjdeps]) + ]) + AC_REQUIRE([gl_CC_GNULIB_WARNINGS]) + LIBICRT_LIBDEPS="$gl_libdeps" + AC_SUBST([LIBICRT_LIBDEPS]) + LIBICRT_LTLIBDEPS="$gl_ltlibdeps" + AC_SUBST([LIBICRT_LTLIBDEPS]) +]) + +# Like AC_LIBOBJ, except that the module name goes +# into gl_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gl_LIBOBJ], [ + AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl + gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" +]) + +# Like AC_REPLACE_FUNCS, except that the module name goes +# into gl_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gl_REPLACE_FUNCS], [ + m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl + AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) +]) + +# Like AC_LIBSOURCES, except the directory where the source file is +# expected is derived from the gnulib-tool parameterization, +# and alloca is special cased (for the alloca-opt module). +# We could also entirely rely on EXTRA_lib..._SOURCES. +AC_DEFUN([gl_LIBSOURCES], [ + m4_foreach([_gl_NAME], [$1], [ + m4_if(_gl_NAME, [alloca.c], [], [ + m4_define([gl_LIBSOURCES_DIR], [srclib]) + m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) + ]) + ]) +]) + +# Like AC_LIBOBJ, except that the module name goes +# into gltests_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gltests_LIBOBJ], [ + AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl + gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" +]) + +# Like AC_REPLACE_FUNCS, except that the module name goes +# into gltests_LIBOBJS instead of into LIBOBJS. +AC_DEFUN([gltests_REPLACE_FUNCS], [ + m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl + AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) +]) + +# Like AC_LIBSOURCES, except the directory where the source file is +# expected is derived from the gnulib-tool parameterization, +# and alloca is special cased (for the alloca-opt module). +# We could also entirely rely on EXTRA_lib..._SOURCES. +AC_DEFUN([gltests_LIBSOURCES], [ + m4_foreach([_gl_NAME], [$1], [ + m4_if(_gl_NAME, [alloca.c], [], [ + m4_define([gltests_LIBSOURCES_DIR], [tests]) + m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) + ]) + ]) +]) + +# This macro records the list of files which have been installed by +# gnulib-tool and may be removed by future gnulib-tool invocations. +AC_DEFUN([gl_FILE_LIST], [ + build-aux/config.libpath + build-aux/config.rpath + build-aux/install-reloc + build-aux/libtool-reloc + build-aux/reloc-ldflags + doc/relocatable.texi + lib/_Noreturn.h + lib/alloca.in.h + lib/allocator.c + lib/allocator.h + lib/areadlink.c + lib/areadlink.h + lib/arg-nonnull.h + lib/basename-lgpl.c + lib/basename-lgpl.h + lib/binary-io.c + lib/binary-io.h + lib/c++defs.h + lib/c-ctype.c + lib/c-ctype.h + lib/canonicalize-lgpl.c + lib/careadlinkat.c + lib/careadlinkat.h + lib/cdefs.h + lib/cloexec.c + lib/cloexec.h + lib/close.c + lib/dup2.c + lib/eloop-threshold.h + lib/errno.in.h + lib/error.c + lib/error.h + lib/fcntl.c + lib/fcntl.in.h + lib/fd-hook.c + lib/fd-hook.h + lib/filename.h + lib/free.c + lib/fstat.c + lib/getdtablesize.c + lib/getprogname.c + lib/getprogname.h + lib/gettext.h + lib/idx.h + lib/intprops.h + lib/inttypes.in.h + lib/libc-config.h + lib/limits.in.h + lib/localcharset.h + lib/malloc.c + lib/malloc/scratch_buffer.h + lib/malloc/scratch_buffer_dupfree.c + lib/malloc/scratch_buffer_grow.c + lib/malloc/scratch_buffer_grow_preserve.c + lib/malloc/scratch_buffer_set_array_size.c + lib/malloca.c + lib/malloca.h + lib/mempcpy.c + lib/minmax.h + lib/msvc-inval.c + lib/msvc-inval.h + lib/msvc-nothrow.c + lib/msvc-nothrow.h + lib/open.c + lib/pathmax.h + lib/progname.c + lib/progname.h + lib/progreloc.c + lib/raise.c + lib/rawmemchr.c + lib/rawmemchr.valgrind + lib/read.c + lib/readlink.c + lib/realloc.c + lib/relocatable.c + lib/relocatable.h + lib/relocwrapper.c + lib/safe-read.c + lib/safe-read.h + lib/scratch_buffer.h + lib/setenv.c + lib/signal.in.h + lib/sigprocmask.c + lib/stat-time.c + lib/stat-time.h + lib/stat-w32.c + lib/stat-w32.h + lib/stat.c + lib/stdalign.in.h + lib/stdbool.in.h + lib/stddef.in.h + lib/stdint.in.h + lib/stdio-read.c + lib/stdio-write.c + lib/stdio.in.h + lib/stdlib.in.h + lib/streq.h + lib/strerror-override.c + lib/strerror-override.h + lib/strerror.c + lib/string.in.h + lib/sys-limits.h + lib/sys_stat.in.h + lib/sys_types.in.h + lib/time.in.h + lib/unictype/bitmap.h + lib/unistd.c + lib/unistd.in.h + lib/unitypes.in.h + lib/uniwidth.in.h + lib/uniwidth/cjk.h + lib/uniwidth/width.c + lib/uniwidth/width0.h + lib/uniwidth/width2.h + lib/unlocked-io.h + lib/verify.h + lib/warn-on-use.h + lib/wchar.in.h + lib/xalloc-oversized.h + lib/xalloc.h + lib/xmalloc.c + lib/xreadlink.c + lib/xreadlink.h + lib/xstrdup.c + m4/00gnulib.m4 + m4/__inline.m4 + m4/absolute-header.m4 + m4/alloca.m4 + m4/asm-underscore.m4 + m4/builtin-expect.m4 + m4/canonicalize.m4 + m4/close.m4 + m4/double-slash-root.m4 + m4/dup2.m4 + m4/eealloc.m4 + m4/environ.m4 + m4/errno_h.m4 + m4/error.m4 + m4/extensions.m4 + m4/extern-inline.m4 + m4/fcntl-o.m4 + m4/fcntl.m4 + m4/fcntl_h.m4 + m4/free.m4 + m4/fstat.m4 + m4/getdtablesize.m4 + m4/getprogname.m4 + m4/gettext.m4 + m4/gnulib-common.m4 + m4/host-cpu-c-abi.m4 + m4/iconv.m4 + m4/include_next.m4 + m4/intl-thread-locale.m4 + m4/intlmacosx.m4 + m4/inttypes.m4 + m4/largefile.m4 + m4/lib-ld.m4 + m4/lib-link.m4 + m4/lib-prefix.m4 + m4/libunistring-base.m4 + m4/limits-h.m4 + m4/lstat.m4 + m4/malloc.m4 + m4/malloca.m4 + m4/mbstate_t.m4 + m4/mempcpy.m4 + m4/minmax.m4 + m4/mode_t.m4 + m4/msvc-inval.m4 + m4/msvc-nothrow.m4 + m4/multiarch.m4 + m4/nls.m4 + m4/nocrash.m4 + m4/off_t.m4 + m4/open-cloexec.m4 + m4/open-slash.m4 + m4/open.m4 + m4/pathmax.m4 + m4/pid_t.m4 + m4/po.m4 + m4/progtest.m4 + m4/raise.m4 + m4/rawmemchr.m4 + m4/read.m4 + m4/readlink.m4 + m4/realloc.m4 + m4/relocatable-lib.m4 + m4/relocatable.m4 + m4/safe-read.m4 + m4/setenv.m4 + m4/signal_h.m4 + m4/signalblocking.m4 + m4/sigpipe.m4 + m4/ssize_t.m4 + m4/stat-time.m4 + m4/stat.m4 + m4/std-gnu11.m4 + m4/stdalign.m4 + m4/stdbool.m4 + m4/stddef_h.m4 + m4/stdint.m4 + m4/stdio_h.m4 + m4/stdlib_h.m4 + m4/strerror.m4 + m4/string_h.m4 + m4/sys_socket_h.m4 + m4/sys_stat_h.m4 + m4/sys_types_h.m4 + m4/time_h.m4 + m4/unistd_h.m4 + m4/unlocked-io.m4 + m4/vararrays.m4 + m4/visibility.m4 + m4/warn-on-use.m4 + m4/wchar_h.m4 + m4/wchar_t.m4 + m4/wint_t.m4 + m4/year2038.m4 + m4/zzgnulib.m4 +]) diff --git a/3rdPartner/libiconv/srcm4/gnulib-tool.m4 b/3rdPartner/libiconv/srcm4/gnulib-tool.m4 new file mode 100644 index 0000000..8428901 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/gnulib-tool.m4 @@ -0,0 +1,63 @@ +# gnulib-tool.m4 serial 4 +dnl Copyright (C) 2004-2005, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl The following macros need not be invoked explicitly. +dnl Invoking them does nothing except to declare default arguments +dnl for "gnulib-tool --import". + +dnl Usage: gl_LOCAL_DIR([DIR]) +AC_DEFUN([gl_LOCAL_DIR], []) + +dnl Usage: gl_MODULES([module1 module2 ...]) +AC_DEFUN([gl_MODULES], []) + +dnl Usage: gl_AVOID([module1 module2 ...]) +AC_DEFUN([gl_AVOID], []) + +dnl Usage: gl_SOURCE_BASE([DIR]) +AC_DEFUN([gl_SOURCE_BASE], []) + +dnl Usage: gl_M4_BASE([DIR]) +AC_DEFUN([gl_M4_BASE], []) + +dnl Usage: gl_PO_BASE([DIR]) +AC_DEFUN([gl_PO_BASE], []) + +dnl Usage: gl_DOC_BASE([DIR]) +AC_DEFUN([gl_DOC_BASE], []) + +dnl Usage: gl_TESTS_BASE([DIR]) +AC_DEFUN([gl_TESTS_BASE], []) + +dnl Usage: gl_WITH_TESTS +AC_DEFUN([gl_WITH_TESTS], []) + +dnl Usage: gl_LIB([LIBNAME]) +AC_DEFUN([gl_LIB], []) + +dnl Usage: gl_LGPL or gl_LGPL([VERSION]) +AC_DEFUN([gl_LGPL], []) + +dnl Usage: gl_MAKEFILE_NAME([FILENAME]) +AC_DEFUN([gl_MAKEFILE_NAME], []) + +dnl Usage: gl_TESTS_MAKEFILE_NAME([FILENAME]) +AC_DEFUN([gl_TESTS_MAKEFILE_NAME], []) + +dnl Usage: gl_AUTOMAKE_SUBDIR +AC_DEFUN([gl_AUTOMAKE_SUBDIR], []) + +dnl Usage: gl_LIBTOOL +AC_DEFUN([gl_LIBTOOL], []) + +dnl Usage: gl_MACRO_PREFIX([PREFIX]) +AC_DEFUN([gl_MACRO_PREFIX], []) + +dnl Usage: gl_PO_DOMAIN([DOMAIN]) +AC_DEFUN([gl_PO_DOMAIN], []) + +dnl Usage: gl_VC_FILES([BOOLEAN]) +AC_DEFUN([gl_VC_FILES], []) diff --git a/3rdPartner/libiconv/srcm4/host-cpu-c-abi.m4 b/3rdPartner/libiconv/srcm4/host-cpu-c-abi.m4 new file mode 100644 index 0000000..b922324 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/host-cpu-c-abi.m4 @@ -0,0 +1,678 @@ +# host-cpu-c-abi.m4 serial 15 +dnl Copyright (C) 2002-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible and Sam Steingold. + +dnl Sets the HOST_CPU variable to the canonical name of the CPU. +dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its +dnl C language ABI (application binary interface). +dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in +dnl config.h. +dnl +dnl This canonical name can be used to select a particular assembly language +dnl source file that will interoperate with C code on the given host. +dnl +dnl For example: +dnl * 'i386' and 'sparc' are different canonical names, because code for i386 +dnl will not run on SPARC CPUs and vice versa. They have different +dnl instruction sets. +dnl * 'sparc' and 'sparc64' are different canonical names, because code for +dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code +dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit +dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit +dnl mode, but not both. +dnl * 'mips' and 'mipsn32' are different canonical names, because they use +dnl different argument passing and return conventions for C functions, and +dnl although the instruction set of 'mips' is a large subset of the +dnl instruction set of 'mipsn32'. +dnl * 'mipsn32' and 'mips64' are different canonical names, because they use +dnl different sizes for the C types like 'int' and 'void *', and although +dnl the instruction sets of 'mipsn32' and 'mips64' are the same. +dnl * The same canonical name is used for different endiannesses. You can +dnl determine the endianness through preprocessor symbols: +dnl - 'arm': test __ARMEL__. +dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. +dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. +dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 +dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because +dnl - Instructions that do not exist on all of these CPUs (cmpxchg, +dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your +dnl assembly language source files use such instructions, you will +dnl need to make the distinction. +dnl - Speed of execution of the common instruction set is reasonable across +dnl the entire family of CPUs. If you have assembly language source files +dnl that are optimized for particular CPU types (like GNU gmp has), you +dnl will need to make the distinction. +dnl See . +AC_DEFUN([gl_HOST_CPU_C_ABI], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], + [case "$host_cpu" in + +changequote(,)dnl + i[34567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=i386 + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=x86_64-x32], + [gl_cv_host_cpu_c_abi=x86_64])], + [gl_cv_host_cpu_c_abi=i386]) + ;; + +changequote(,)dnl + alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=alpha + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __aarch64__ + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=arm64-ilp32], + [gl_cv_host_cpu_c_abi=arm64])], + [# Don't distinguish little-endian and big-endian arm, since they + # don't require different machine code for simple operations and + # since the user can distinguish them through the preprocessor + # defines __ARMEL__ vs. __ARMEB__. + # But distinguish arm which passes floating-point arguments and + # return values in integer registers (r0, r1, ...) - this is + # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which + # passes them in float registers (s0, s1, ...) and double registers + # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer + # sets the preprocessor defines __ARM_PCS (for the first case) and + # __ARM_PCS_VFP (for the second case), but older GCC does not. + echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c + # Look for a reference to the register d0 in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then + gl_cv_host_cpu_c_abi=armhf + else + gl_cv_host_cpu_c_abi=arm + fi + rm -f conftest* + ]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=hppa64], + [gl_cv_host_cpu_c_abi=hppa]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=ia64-ilp32], + [gl_cv_host_cpu_c_abi=ia64]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mips64], + [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIO32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (_MIPS_SIM == _ABIN32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mipsn32], + [gl_cv_host_cpu_c_abi=mips])]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [# On powerpc64, there are two ABIs on Linux: The AIX compatible + # one and the ELFv2 one. The latter defines _CALL_ELF=2. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _CALL_ELF && _CALL_ELF == 2 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=powerpc64-elfv2], + [gl_cv_host_cpu_c_abi=powerpc64]) + ], + [gl_cv_host_cpu_c_abi=powerpc]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi=powerpc + ;; + + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=s390x], + [gl_cv_host_cpu_c_abi=s390]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=sparc64], + [gl_cv_host_cpu_c_abi=sparc]) + ;; + + *) + gl_cv_host_cpu_c_abi="$host_cpu" + ;; + esac + ]) + + dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. + HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` + HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" + AC_SUBST([HOST_CPU]) + AC_SUBST([HOST_CPU_C_ABI]) + + # This was + # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) + # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) + # earlier, but KAI C++ 3.2d doesn't like this. + sed -e 's/-/_/g' >> confdefs.h <. +dnl Don't make changes that are incompatible with that documentation! + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from + successful returns. This is even documented in + */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +AC_DEFUN_ONCE([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], + [gl_cv_iconv_nonconst], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); + ]], + [[]])], + [gl_cv_iconv_nonconst=yes], + [gl_cv_iconv_nonconst=no]) + ]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + gl_cv_iconv_nonconst=yes + fi + if test $gl_cv_iconv_nonconst = yes; then + iconv_arg1="" + else + iconv_arg1="const" + fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test $gl_cv_iconv_nonconst != yes; then + ICONV_CONST="const" + fi + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/include_next.m4 b/3rdPartner/libiconv/srcm4/include_next.m4 new file mode 100644 index 0000000..a9247f6 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/include_next.m4 @@ -0,0 +1,224 @@ +# include_next.m4 serial 26 +dnl Copyright (C) 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert and Derek Price. + +dnl Sets INCLUDE_NEXT, INCLUDE_NEXT_AS_FIRST_DIRECTIVE, PRAGMA_SYSTEM_HEADER, +dnl and PRAGMA_COLUMNS. +dnl +dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to +dnl 'include' otherwise. +dnl +dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler +dnl supports it in the special case that it is the first include directive in +dnl the given file, or to 'include' otherwise. +dnl +dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, +dnl so as to avoid GCC warnings when the gcc option -pedantic is used. +dnl '#pragma GCC system_header' has the same effect as if the file was found +dnl through the include search path specified with '-isystem' options (as +dnl opposed to the search path specified with '-I' options). Namely, gcc +dnl does not warn about some things, and on some systems (Solaris and Interix) +dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side +dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead +dnl of plain '__STDC__'. +dnl +dnl PRAGMA_COLUMNS can be used in files that override system header files, so +dnl as to avoid compilation errors on HP NonStop systems when the gnulib file +dnl is included by a system header file that does a "#pragma COLUMNS 80" (which +dnl has the effect of truncating the lines of that file and all files that it +dnl includes to 80 columns) and the gnulib file has lines longer than 80 +dnl columns. + +AC_DEFUN([gl_INCLUDE_NEXT], +[ + AC_LANG_PREPROC_REQUIRE() + AC_CACHE_CHECK([whether the preprocessor supports include_next], + [gl_cv_have_include_next], + [rm -rf conftestd1a conftestd1b conftestd2 + mkdir conftestd1a conftestd1b conftestd2 + dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on + dnl AIX 6.1 support include_next when used as first preprocessor directive + dnl in a file, but not when preceded by another include directive. Check + dnl for this bug by including . + dnl Additionally, with this same compiler, include_next is a no-op when + dnl used in a header file that was included by specifying its absolute + dnl file name. Despite these two bugs, include_next is used in the + dnl compiler's . By virtue of the second bug, we need to use + dnl include_next as well in this case. + cat < conftestd1a/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd1b/conftest.h +#define DEFINED_IN_CONFTESTD1 +#include +#include_next +#ifdef DEFINED_IN_CONFTESTD2 +int foo; +#else +#error "include_next doesn't work" +#endif +EOF + cat < conftestd2/conftest.h +#ifndef DEFINED_IN_CONFTESTD1 +#error "include_next test doesn't work" +#endif +#define DEFINED_IN_CONFTESTD2 +EOF + gl_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" +dnl We intentionally avoid using AC_LANG_SOURCE here. + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], + [gl_cv_have_include_next=yes], + [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" + AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], + [gl_cv_have_include_next=buggy], + [gl_cv_have_include_next=no]) + ]) + CPPFLAGS="$gl_save_CPPFLAGS" + rm -rf conftestd1a conftestd1b conftestd2 + ]) + PRAGMA_SYSTEM_HEADER= + if test $gl_cv_have_include_next = yes; then + INCLUDE_NEXT=include_next + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + if test -n "$GCC"; then + PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' + fi + else + if test $gl_cv_have_include_next = buggy; then + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next + else + INCLUDE_NEXT=include + INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include + fi + fi + AC_SUBST([INCLUDE_NEXT]) + AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) + AC_SUBST([PRAGMA_SYSTEM_HEADER]) + + dnl HP NonStop systems, which define __TANDEM, limit the line length + dnl after including some system header files. + AC_CACHE_CHECK([whether source code line length is unlimited], + [gl_cv_source_line_length_unlimited], + [AC_EGREP_CPP([choke me], + [ +#ifdef __TANDEM +choke me +#endif + ], + [gl_cv_source_line_length_unlimited=no], + [gl_cv_source_line_length_unlimited=yes]) + ]) + if test $gl_cv_source_line_length_unlimited = no; then + PRAGMA_COLUMNS="#pragma COLUMNS 10000" + else + PRAGMA_COLUMNS= + fi + AC_SUBST([PRAGMA_COLUMNS]) +]) + +# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) +# ------------------------------------------ +# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be +# ''; otherwise define it to be +# '"///usr/include/foo.h"', or whatever other absolute file name is suitable. +# Also, if #include_next works as first preprocessing directive in a file, +# define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be ''; otherwise define it to +# be +# '"///usr/include/foo.h"', or whatever other absolute file name is suitable. +# That way, a header file with the following line: +# #@INCLUDE_NEXT@ @NEXT_FOO_H@ +# or +# #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ +# behaves (after sed substitution) as if it contained +# #include_next +# even if the compiler does not support include_next. +# The three "///" are to pacify Sun C 5.8, which otherwise would say +# "warning: #include of /usr/include/... may be non-portable". +# Use '""', not '<>', so that the /// cannot be confused with a C99 comment. +# Note: This macro assumes that the header file is not empty after +# preprocessing, i.e. it does not only define preprocessor macros but also +# provides some type/enum definitions or function/variable declarations. +# +# This macro also checks whether each header exists, by invoking +# AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. +AC_DEFUN([gl_CHECK_NEXT_HEADERS], +[ + gl_NEXT_HEADERS_INTERNAL([$1], [check]) +]) + +# gl_NEXT_HEADERS(HEADER1 HEADER2 ...) +# ------------------------------------ +# Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. +# This is suitable for headers like that are standardized by C89 +# and therefore can be assumed to exist. +AC_DEFUN([gl_NEXT_HEADERS], +[ + gl_NEXT_HEADERS_INTERNAL([$1], [assume]) +]) + +# The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. +AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], +[ + AC_REQUIRE([gl_INCLUDE_NEXT]) + AC_REQUIRE([AC_CANONICAL_HOST]) + + m4_if([$2], [check], + [AC_CHECK_HEADERS_ONCE([$1]) + ]) + + m4_foreach_w([gl_HEADER_NAME], [$1], + [AS_VAR_PUSHDEF([gl_next_header], + [gl_cv_next_]m4_defn([gl_HEADER_NAME])) + if test $gl_cv_have_include_next = yes; then + AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + else + AC_CACHE_CHECK( + [absolute name of <]m4_defn([gl_HEADER_NAME])[>], + [gl_next_header], + [m4_if([$2], [check], + [AS_VAR_PUSHDEF([gl_header_exists], + [ac_cv_header_]m4_defn([gl_HEADER_NAME])) + if test AS_VAR_GET([gl_header_exists]) = yes; then + AS_VAR_POPDEF([gl_header_exists]) + ]) + gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) + AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) + AS_VAR_SET([gl_next_header], ['"'$gl_header'"']) + m4_if([$2], [check], + [else + AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + fi + ]) + ]) + fi + AC_SUBST( + AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), + [AS_VAR_GET([gl_next_header])]) + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'gl_HEADER_NAME'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=AS_VAR_GET([gl_next_header]) + fi + AC_SUBST( + AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), + [$gl_next_as_first_directive]) + AS_VAR_POPDEF([gl_next_header])]) +]) + +# Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; +# this fallback is safe for all earlier autoconf versions. +m4_define_default([AC_LANG_DEFINES_PROVIDED]) diff --git a/3rdPartner/libiconv/srcm4/intl-thread-locale.m4 b/3rdPartner/libiconv/srcm4/intl-thread-locale.m4 new file mode 100644 index 0000000..d5d5b26 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/intl-thread-locale.m4 @@ -0,0 +1,219 @@ +# intl-thread-locale.m4 serial 9 +dnl Copyright (C) 2015-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Check how to retrieve the name of a per-thread locale (POSIX locale_t). +dnl Sets gt_nameless_locales. +AC_DEFUN([gt_INTL_THREAD_LOCALE_NAME], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + + dnl Persuade Solaris to define 'locale_t'. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + dnl Test whether uselocale() exists and works at all. + gt_FUNC_USELOCALE + + dnl On OpenBSD >= 6.2, the locale_t type and the uselocale(), newlocale(), + dnl duplocale(), freelocale() functions exist but are effectively useless, + dnl because the locale_t value depends only on the LC_CTYPE category of the + dnl locale and furthermore contains only one bit of information (it + dnl distinguishes the "C" locale from the *.UTF-8 locales). See + dnl . + dnl In the setlocale() implementation they have thought about the programs + dnl that use the API ("Even though only LC_CTYPE has any effect in the + dnl OpenBSD base system, store complete information about the global locale, + dnl such that third-party software can access it"), but for uselocale() + dnl they did not think about the programs. + dnl In this situation, even the HAVE_NAMELESS_LOCALES support does not work. + dnl So, define HAVE_FAKE_LOCALES and disable all locale_t support. + case "$gt_cv_func_uselocale_works" in + *yes) + AC_CHECK_HEADERS_ONCE([xlocale.h]) + AC_CACHE_CHECK([for fake locale system (OpenBSD)], + [gt_cv_locale_fake], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#if HAVE_XLOCALE_H +# include +#endif +int main () +{ + locale_t loc1, loc2; + if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) return 1; + if (setlocale (LC_ALL, "fr_FR.UTF-8") == NULL) return 1; + loc1 = newlocale (LC_ALL_MASK, "de_DE.UTF-8", (locale_t)0); + loc2 = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", (locale_t)0); + return !(loc1 == loc2); +}]])], + [gt_cv_locale_fake=yes], + [gt_cv_locale_fake=no], + [dnl Guess the locale system is fake only on OpenBSD. + case "$host_os" in + openbsd*) gt_cv_locale_fake="guessing yes" ;; + *) gt_cv_locale_fake="guessing no" ;; + esac + ]) + ]) + ;; + *) gt_cv_locale_fake=no ;; + esac + case "$gt_cv_locale_fake" in + *yes) + gt_fake_locales=yes + AC_DEFINE([HAVE_FAKE_LOCALES], [1], + [Define if the locale_t type contains insufficient information, as on OpenBSD.]) + ;; + *) + gt_fake_locales=no + ;; + esac + + case "$gt_cv_func_uselocale_works" in + *yes) + AC_CACHE_CHECK([for Solaris 11.4 locale system], + [gt_cv_locale_solaris114], + [case "$host_os" in + solaris*) + dnl Test whether defines locale_t as a typedef of + dnl 'struct _LC_locale_t **' (whereas Illumos defines it as a + dnl typedef of 'struct _locale *'). + dnl Another possible test would be to include + dnl and test whether it defines the _LC_core_data_locale_t type. + dnl This type was added in Solaris 11.4. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include + struct _LC_locale_t *x; + locale_t y; + ]], + [[*y = x;]])], + [gt_cv_locale_solaris114=yes], + [gt_cv_locale_solaris114=no]) + ;; + *) gt_cv_locale_solaris114=no ;; + esac + ]) + ;; + *) gt_cv_locale_solaris114=no ;; + esac + if test $gt_cv_locale_solaris114 = yes; then + AC_DEFINE([HAVE_SOLARIS114_LOCALES], [1], + [Define if the locale_t type is as on Solaris 11.4.]) + fi + + dnl Solaris 12 will maybe provide getlocalename_l. If it does, it will + dnl improve the implementation of gl_locale_name_thread(), by removing + dnl the use of undocumented structures. + case "$gt_cv_func_uselocale_works" in + *yes) + AC_CHECK_FUNCS([getlocalename_l]) + ;; + esac + + dnl This code is for platforms where the locale_t type does not provide access + dnl to the name of each locale category. This code has the drawback that it + dnl requires the gnulib overrides of 'newlocale', 'duplocale', 'freelocale', + dnl which is a problem for GNU libunistring. Therefore try hard to avoid + dnl enabling this code! + gt_nameless_locales=no + case "$host_os" in + dnl It's needed on AIX 7.2. + aix*) + gt_nameless_locales=yes + AC_DEFINE([HAVE_NAMELESS_LOCALES], [1], + [Define if the locale_t type does not contain the name of each locale category.]) + ;; + esac + + dnl We cannot support uselocale() on platforms where the locale_t type is + dnl fake. So, set + dnl gt_good_uselocale = gt_working_uselocale && !gt_fake_locales. + if test $gt_working_uselocale = yes && test $gt_fake_locales = no; then + gt_good_uselocale=yes + AC_DEFINE([HAVE_GOOD_USELOCALE], [1], + [Define if the uselocale exists, may be safely called, and returns sufficient information.]) + else + gt_good_uselocale=no + fi + + dnl Set gt_localename_enhances_locale_funcs to indicate whether localename.c + dnl overrides newlocale(), duplocale(), freelocale() to keep track of locale + dnl names. + if test $gt_good_uselocale = yes && test $gt_nameless_locales = yes; then + gt_localename_enhances_locale_funcs=yes + LOCALENAME_ENHANCE_LOCALE_FUNCS=1 + AC_DEFINE([LOCALENAME_ENHANCE_LOCALE_FUNCS], [1], + [Define if localename.c overrides newlocale(), duplocale(), freelocale().]) + else + gt_localename_enhances_locale_funcs=no + fi +]) + +dnl Tests whether uselocale() exists and is usable. +dnl Sets gt_working_uselocale and defines HAVE_WORKING_USELOCALE. +AC_DEFUN([gt_FUNC_USELOCALE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Persuade glibc and Solaris to define 'locale_t'. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_FUNCS_ONCE([uselocale]) + + dnl On AIX 7.2, the uselocale() function is not documented and leads to + dnl crashes in subsequent setlocale() invocations. + dnl In 2019, some versions of z/OS lack the locale_t type and have a broken + dnl uselocale function. + if test $ac_cv_func_uselocale = yes; then + AC_CHECK_HEADERS_ONCE([xlocale.h]) + AC_CACHE_CHECK([whether uselocale works], + [gt_cv_func_uselocale_works], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#if HAVE_XLOCALE_H +# include +#endif +locale_t loc1; +int main () +{ + uselocale (NULL); + setlocale (LC_ALL, "en_US.UTF-8"); + return 0; +}]])], + [gt_cv_func_uselocale_works=yes], + [gt_cv_func_uselocale_works=no], + [# Guess no on AIX and z/OS, yes otherwise. + case "$host_os" in + aix* | openedition*) gt_cv_func_uselocale_works="guessing no" ;; + *) gt_cv_func_uselocale_works="guessing yes" ;; + esac + ]) + ]) + else + gt_cv_func_uselocale_works=no + fi + case "$gt_cv_func_uselocale_works" in + *yes) + gt_working_uselocale=yes + AC_DEFINE([HAVE_WORKING_USELOCALE], [1], + [Define if the uselocale function exists and may safely be called.]) + ;; + *) + gt_working_uselocale=no + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/intlmacosx.m4 b/3rdPartner/libiconv/srcm4/intlmacosx.m4 new file mode 100644 index 0000000..ecc88d6 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/intlmacosx.m4 @@ -0,0 +1,65 @@ +# intlmacosx.m4 serial 8 (gettext-0.20.2) +dnl Copyright (C) 2004-2014, 2016, 2019-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.4. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, + dnl because in macOS 10.13.4 it has the following behaviour: + dnl When two or more languages are specified in the + dnl "System Preferences > Language & Region > Preferred Languages" panel, + dnl it returns en_CC where CC is the territory (even when English is not among + dnl the preferred languages!). What we want instead is what + dnl CFLocaleCopyCurrent returned in earlier macOS releases and what + dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the + dnl first among the preferred languages and CC is the territory. + AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyPreferredLanguages();]])], + [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], + [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/3rdPartner/libiconv/srcm4/inttypes.m4 b/3rdPartner/libiconv/srcm4/inttypes.m4 new file mode 100644 index 0000000..df25a21 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/inttypes.m4 @@ -0,0 +1,180 @@ +# inttypes.m4 serial 36 +dnl Copyright (C) 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Derek Price, Bruno Haible. +dnl Test whether is supported or must be substituted. + +AC_DEFUN_ONCE([gl_INTTYPES_H], +[ + AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) + gl_INTTYPES_PRI_SCN +]) + +AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], +[ + AC_REQUIRE([gl_STDINT_H]) + AC_CHECK_HEADERS_ONCE([inttypes.h]) + + dnl Override always, so that the portability warnings work. + AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([inttypes.h]) + + AC_REQUIRE([gl_MULTIARCH]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include + ]], [imaxabs imaxdiv strtoimax strtoumax]) + + AC_REQUIRE([AC_C_RESTRICT]) +]) + +# Ensure that the PRI* and SCN* macros are defined appropriately. +AC_DEFUN([gl_INTTYPES_PRI_SCN], +[ + PRIPTR_PREFIX= + if $GL_GENERATE_STDINT_H; then + dnl Using the gnulib . It defines intptr_t to 'long' or + dnl 'long long', depending on _WIN64. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #ifdef _WIN64 + LLP64 + #endif + ]]) + ], + [PRIPTR_PREFIX='"l"'], + [PRIPTR_PREFIX='"ll"']) + else + dnl Using the system's . + for glpfx in '' l ll I64; do + case $glpfx in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + I64) gltype1='__int64';; + esac + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include + extern intptr_t foo; + extern $gltype1 foo;]])], + [PRIPTR_PREFIX='"'$glpfx'"']) + test -n "$PRIPTR_PREFIX" && break + done + fi + AC_SUBST([PRIPTR_PREFIX]) + + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [INT32_MAX_LT_INTMAX_MAX], + [defined INT32_MAX && defined INTMAX_MAX], + [INT32_MAX < INTMAX_MAX], + [sizeof (int) < sizeof (long long int)]) + if test $APPLE_UNIVERSAL_BUILD = 0; then + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [INT64_MAX_EQ_LONG_MAX], + [defined INT64_MAX], + [INT64_MAX == LONG_MAX], + [sizeof (long long int) == sizeof (long int)]) + else + INT64_MAX_EQ_LONG_MAX=-1 + fi + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [UINT32_MAX_LT_UINTMAX_MAX], + [defined UINT32_MAX && defined UINTMAX_MAX], + [UINT32_MAX < UINTMAX_MAX], + [sizeof (unsigned int) < sizeof (unsigned long long int)]) + if test $APPLE_UNIVERSAL_BUILD = 0; then + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [UINT64_MAX_EQ_ULONG_MAX], + [defined UINT64_MAX], + [UINT64_MAX == ULONG_MAX], + [sizeof (unsigned long long int) == sizeof (unsigned long int)]) + else + UINT64_MAX_EQ_ULONG_MAX=-1 + fi +]) + +# Define the symbol $1 to be 1 if the condition is true, 0 otherwise. +# If $2 is true, the condition is $3; otherwise if long long int is supported +# approximate the condition with $4; otherwise, assume the condition is false. +# The condition should work on all C99 platforms; the approximations should be +# good enough to work on all practical pre-C99 platforms. +# $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants. +AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], +[ + AC_CACHE_CHECK([whether $3], + [gl_cv_test_$1], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + + #include + #if HAVE_STDINT_H + #include + #endif + + #if $2 + #define CONDITION ($3) + #else + #define CONDITION ($4) + #endif + int test[CONDITION ? 1 : -1];]])], + [gl_cv_test_$1=yes], + [gl_cv_test_$1=no])]) + if test $gl_cv_test_$1 = yes; then + $1=1; + else + $1=0; + fi + AC_SUBST([$1]) +]) + +# gl_INTTYPES_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_INTTYPES_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) +]) + +AC_DEFUN([gl_INTTYPES_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) + HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) + HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) + HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) + HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) + REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) + REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) + INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) + INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) + PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX]) + UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX]) + UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX]) +]) diff --git a/3rdPartner/libiconv/srcm4/largefile.m4 b/3rdPartner/libiconv/srcm4/largefile.m4 new file mode 100644 index 0000000..3e8b5e3 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/largefile.m4 @@ -0,0 +1,180 @@ +# Enable large files on systems where this is not the default. +# Enable support for files on Linux file systems with 64-bit inode numbers. + +# Copyright 1992-1996, 1998-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# The following macro works around a problem in Autoconf's AC_FUNC_FSEEKO: +# It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this +# setting of _LARGEFILE_SOURCE is needed so that declares fseeko +# and ftello in C++ mode as well. +AC_DEFUN([gl_SET_LARGEFILE_SOURCE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_FUNC_FSEEKO + case "$host_os" in + hpux*) + AC_DEFINE([_LARGEFILE_SOURCE], [1], + [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).]) + ;; + esac +]) + +# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+ +# with _TIME_BITS. Also, work around a problem in autoconf <= 2.69: +# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, +# or configures them incorrectly in some cases. +m4_version_prereq([2.70], [], [ + +# _AC_SYS_LARGEFILE_TEST_INCLUDES +# ------------------------------- +m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], +[#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]];[]dnl +]) +])# m4_version_prereq 2.70 + + +# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, +# CACHE-VAR, +# DESCRIPTION, +# PROLOGUE, [FUNCTION-BODY]) +# -------------------------------------------------------- +m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], +[AC_CACHE_CHECK([for $1 value needed for large files], [$3], +[while :; do + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([$5], [$6])], + [$3=no; break]) + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([#undef $1 +#define $1 $2 +$5], [$6])], + [$3=$2; break]) + $3=unknown + break +done]) +case $$3 in #( + no | unknown) ;; + *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; +esac +rm -rf conftest*[]dnl +])# _AC_SYS_LARGEFILE_MACRO_VALUE + + +# AC_SYS_LARGEFILE +# ---------------- +# By default, many hosts won't let programs access large files; +# one must use special compiler options to get large-file access to work. +# For more details about this brain damage please see: +# http://www.unix.org/version2/whatsnew/lfs20mar.html +# Additionally, on Linux file systems with 64-bit inodes a file that happens +# to have a 64-bit inode number cannot be accessed by 32-bit applications on +# Linux x86/x86_64. This can occur with file systems such as XFS and NFS. +AC_DEFUN([AC_SYS_LARGEFILE], +[AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) +AS_IF([test "$enable_largefile" != no], + [AC_CACHE_CHECK([for special C compiler options needed for large files], + ac_cv_sys_largefile_CC, + [ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) + AC_COMPILE_IFELSE([], [break]) + CC="$CC -n32" + AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi]) + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) + AS_CASE([$ac_cv_sys_file_offset_bits], + [unknown], + [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1], + [ac_cv_sys_large_files], + [Define for large files, on AIX-style hosts.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES])], + [64], + [gl_YEAR2038_BODY([])])]) +])# AC_SYS_LARGEFILE + +# Enable large files on systems where this is implemented by Gnulib, not by the +# system headers. +# Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib +# overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. +AC_DEFUN([gl_LARGEFILE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + dnl Native Windows. + dnl mingw64 defines off_t to a 64-bit type already, if + dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. + AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; + ]], + [[]])], + [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) + ]) + if test $gl_cv_type_off_t_64 = no; then + WINDOWS_64_BIT_OFF_T=1 + else + WINDOWS_64_BIT_OFF_T=0 + fi + dnl Some mingw versions define, if _FILE_OFFSET_BITS=64, 'struct stat' + dnl to 'struct _stat32i64' or 'struct _stat64' (depending on + dnl _USE_32BIT_TIME_T), which has a 32-bit st_size member. + AC_CACHE_CHECK([for 64-bit st_size], [gl_cv_member_st_size_64], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + struct stat buf; + int verify_st_size_size[sizeof (buf.st_size) >= 8 ? 1 : -1]; + ]], + [[]])], + [gl_cv_member_st_size_64=yes], [gl_cv_member_st_size_64=no]) + ]) + if test $gl_cv_member_st_size_64 = no; then + WINDOWS_64_BIT_ST_SIZE=1 + else + WINDOWS_64_BIT_ST_SIZE=0 + fi + ;; + *) + dnl Nothing to do on gnulib's side. + dnl A 64-bit off_t is + dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, + dnl OSF/1, Cygwin, + dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on + dnl glibc, HP-UX, Solaris, + dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, + dnl - impossible to achieve on Minix 3.1.8. + WINDOWS_64_BIT_OFF_T=0 + WINDOWS_64_BIT_ST_SIZE=0 + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/lib-ld.m4 b/3rdPartner/libiconv/srcm4/lib-ld.m4 new file mode 100644 index 0000000..934207a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/lib-ld.m4 @@ -0,0 +1,168 @@ +# lib-ld.m4 serial 10 +dnl Copyright (C) 1996-2003, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + AC_MSG_CHECKING([for ld]) +elif test "$GCC" = yes; then + AC_MSG_CHECKING([for ld used by $CC]) +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + AC_CACHE_VAL([acl_cv_path_LD], + [ + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi +]) + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + dnl But on GNU systems, ignore -lc options, because + dnl - linking with libc is the default anyway, + dnl - linking with libc.a may produce an error + dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" + dnl or may produce an executable that always crashes, see + dnl . + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/3rdPartner/libiconv/srcm4/lib-prefix.m4 b/3rdPartner/libiconv/srcm4/lib-prefix.m4 new file mode 100644 index 0000000..999f712 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/lib-prefix.m4 @@ -0,0 +1,323 @@ +# lib-prefix.m4 serial 20 +dnl Copyright (C) 2001-2005, 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a function acl_is_expected_elfclass, that tests whether standard input +dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, +dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing +dnl the basename of the libdir to try in turn, either "lib" or "lib64" or +dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib, lib32, and lib64. + dnl On most glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on + dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go + dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. + dnl We determine the compiler's default mode by looking at the compiler's + dnl library search path. If at least one of its elements ends in /lib64 or + dnl points to a directory whose absolute pathname ends in /lib64, we use that + dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, + dnl namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], + [AC_EGREP_CPP([Extensible Linking Format], + [#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + ], + [gl_cv_elf=yes], + [gl_cv_elf=no]) + ]) + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. +changequote(,)dnl + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac +changequote([,])dnl + else + acl_is_expected_elfclass () + { + : + } + fi + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [dnl Try 'lib' first, because that's the default for libdir in GNU, see + dnl . + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. + dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries + dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. + dnl Find the compiler's search path. However, non-system compilers + dnl sometimes have odd library search paths. But we can't simply invoke + dnl '/usr/bin/gcc -print-search-dirs' because that would not take into + dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + ]) + dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and + dnl acl_libdirstem3. +changequote(,)dnl + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` +changequote([,])dnl +]) diff --git a/3rdPartner/libiconv/srcm4/libunistring-base.m4 b/3rdPartner/libiconv/srcm4/libunistring-base.m4 new file mode 100644 index 0000000..a0892da --- /dev/null +++ b/3rdPartner/libiconv/srcm4/libunistring-base.m4 @@ -0,0 +1,145 @@ +# libunistring-base.m4 serial 7 +dnl Copyright (C) 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paolo Bonzini and Bruno Haible. + +dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) +dnl Declares that the source files of Module should be compiled, unless we +dnl are linking with libunistring and its version is >= the given VERSION. +dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is +dnl true if the source files of Module should be compiled. +dnl This macro is to be used for public libunistring API, not for +dnl undocumented API. +dnl +dnl You have to bump the VERSION argument to the next projected version +dnl number each time you make a change that affects the behaviour of the +dnl functions defined in Module (even if the sources of Module itself do not +dnl change). + +AC_DEFUN([gl_LIBUNISTRING_MODULE], +[ + AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) + dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from + dnl gl_LIBUNISTRING_CORE if that macro has been run. + gl_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), + [gl_LIBUNISTRING_VERSION_CMP([$1])]) +]) + +dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) +dnl Declares that HeaderFile should be created, unless we are linking +dnl with libunistring and its version is >= the given VERSION. +dnl HeaderFile should be relative to the lib directory and end in '.h'. +dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). +dnl +dnl When we are linking with the already installed libunistring and its version +dnl is < VERSION, we create HeaderFile here, because we may compile functions +dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed +dnl version. +dnl When we are linking with the already installed libunistring and its version +dnl is > VERSION, we don't create HeaderFile here: it could cause compilation +dnl errors in other libunistring header files if some types are missing. +dnl +dnl You have to bump the VERSION argument to the next projected version +dnl number each time you make a non-comment change to the HeaderFile. + +AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], +[ + AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) + dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from + dnl gl_LIBUNISTRING_CORE if that macro has been run. + if gl_LIBUNISTRING_VERSION_CMP([$1]); then + dnl It is OK to use a .h file in lib/ from within tests/, but not vice + dnl versa. + if test -z "$LIBUNISTRING_[]AS_TR_CPP([$2])"; then + LIBUNISTRING_[]AS_TR_CPP([$2])="${gl_source_base_prefix}$2" + fi + else + LIBUNISTRING_[]AS_TR_CPP([$2])= + fi + AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) +]) + +dnl Miscellaneous preparations/initializations. + +AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], +[ + dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. + m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) + + AC_REQUIRE([AC_PROG_AWK]) + +dnl Sed expressions to extract the parts of a version number. +changequote(,) +gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +changequote([,]) + + if test "$HAVE_LIBUNISTRING" = yes; then + LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` + LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` + LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` + fi +]) + +dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) +dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION +dnl is less than the VERSION argument. +AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], +[ { test "$HAVE_LIBUNISTRING" != yes \ + || { + dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. + AS_LITERAL_IF([$1], + [dnl This is the optimized variant, that assumes the argument is a literal: + m4_pushdef([requested_version_major], + [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) + m4_pushdef([requested_version_minor], + [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) + m4_pushdef([requested_version_subminor], + [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) + test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ + || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ + && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ + || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ + && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor + } + } + } + m4_popdef([requested_version_subminor]) + m4_popdef([requested_version_minor]) + m4_popdef([requested_version_major]) + ], + [dnl This is the unoptimized variant: + requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` + requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` + requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` + test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ + || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ + && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ + || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ + && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor + } + } + } + ]) + } + }]) + +dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the +dnl same as ORIG, otherwise to 0. +m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) diff --git a/3rdPartner/libiconv/srcm4/limits-h.m4 b/3rdPartner/libiconv/srcm4/limits-h.m4 new file mode 100644 index 0000000..5d5a5bf --- /dev/null +++ b/3rdPartner/libiconv/srcm4/limits-h.m4 @@ -0,0 +1,41 @@ +dnl Check whether limits.h has needed features. + +dnl Copyright 2016-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +AC_DEFUN_ONCE([gl_LIMITS_H], +[ + gl_CHECK_NEXT_HEADERS([limits.h]) + + AC_CACHE_CHECK([whether limits.h has WORD_BIT, BOOL_WIDTH etc.], + [gl_cv_header_limits_width], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + int bw = BOOL_WIDTH; + ]])], + [gl_cv_header_limits_width=yes], + [gl_cv_header_limits_width=no])]) + if test "$gl_cv_header_limits_width" = yes; then + GL_GENERATE_LIMITS_H=false + else + GL_GENERATE_LIMITS_H=true + fi +]) + +dnl Unconditionally enables the replacement of . +AC_DEFUN([gl_REPLACE_LIMITS_H], +[ + AC_REQUIRE([gl_LIMITS_H]) + GL_GENERATE_LIMITS_H=true +]) diff --git a/3rdPartner/libiconv/srcm4/lstat.m4 b/3rdPartner/libiconv/srcm4/lstat.m4 new file mode 100644 index 0000000..d987060 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/lstat.m4 @@ -0,0 +1,79 @@ +# serial 33 + +# Copyright (C) 1997-2001, 2003-2022 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl From Jim Meyering. + +AC_DEFUN([gl_FUNC_LSTAT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + dnl If lstat does not exist, the replacement does + dnl "#define lstat stat", and lstat.c is a no-op. + AC_CHECK_FUNCS_ONCE([lstat]) + if test $ac_cv_func_lstat = yes; then + AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) + case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in + solaris* | *no) + REPLACE_LSTAT=1 + ;; + esac + else + HAVE_LSTAT=0 + fi +]) + +# Prerequisites of lib/lstat.c. +AC_DEFUN([gl_PREREQ_LSTAT], [:]) + +AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], +[ + dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it + dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether lstat correctly handles trailing slash], + [gl_cv_func_lstat_dereferences_slashed_symlink], + [rm -f conftest.sym conftest.file + echo >conftest.file + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT], + [[struct stat sbuf; + if (symlink ("conftest.file", "conftest.sym") != 0) + return 1; + /* Linux will dereference the symlink and fail, as required by + POSIX. That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + ]])], + [gl_cv_func_lstat_dereferences_slashed_symlink=yes], + [gl_cv_func_lstat_dereferences_slashed_symlink=no], + [case "$host_os" in + linux-* | linux) + # Guess yes on Linux systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + *-gnu* | gnu*) + # Guess yes on glibc systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + mingw*) + # Guess no on native Windows. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; + *) + # If we don't know, obey --enable-cross-guesses. + gl_cv_func_lstat_dereferences_slashed_symlink="$gl_cross_guess_normal" ;; + esac + ]) + rm -f conftest.sym conftest.file + ]) + case "$gl_cv_func_lstat_dereferences_slashed_symlink" in + *yes) + AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], + [Define to 1 if 'lstat' dereferences a symlink specified + with a trailing slash.]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/malloc.m4 b/3rdPartner/libiconv/srcm4/malloc.m4 new file mode 100644 index 0000000..6b76c1e --- /dev/null +++ b/3rdPartner/libiconv/srcm4/malloc.m4 @@ -0,0 +1,175 @@ +# malloc.m4 serial 28 +dnl Copyright (C) 2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# This is adapted with modifications from upstream Autoconf here: +# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949 +AC_DEFUN([_AC_FUNC_MALLOC_IF], +[ + AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles + AC_CACHE_CHECK([whether malloc (0) returns nonnull], + [ac_cv_func_malloc_0_nonnull], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[void *p = malloc (0); + int result = !p; + free (p); + return result;]]) + ], + [ac_cv_func_malloc_0_nonnull=yes], + [ac_cv_func_malloc_0_nonnull=no], + [case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_malloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + ]) + ]) + AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2]) +])# _AC_FUNC_MALLOC_IF + +# gl_FUNC_MALLOC_GNU +# ------------------ +# Replace malloc if it is not compatible with GNU libc. +AC_DEFUN([gl_FUNC_MALLOC_GNU], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) + REPLACE_MALLOC_FOR_MALLOC_GNU="$REPLACE_MALLOC_FOR_MALLOC_POSIX" + if test $REPLACE_MALLOC_FOR_MALLOC_GNU = 0; then + _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC_FOR_MALLOC_GNU=1]) + fi +]) + +# gl_FUNC_MALLOC_PTRDIFF +# ---------------------- +# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX, +# and replace malloc otherwise. +AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF]) + test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC_FOR_MALLOC_POSIX=1 +]) + +# Test whether malloc, realloc, calloc refuse to create objects +# larger than what can be expressed in ptrdiff_t. +# Set gl_cv_func_malloc_gnu to yes or no accordingly. +AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF], +[ + AC_CACHE_CHECK([whether malloc is ptrdiff_t safe], + [gl_cv_malloc_ptrdiff], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[/* 64-bit ptrdiff_t is so wide that no practical platform + can exceed it. */ + #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0) + + /* On rare machines where size_t fits in ptrdiff_t there + is no problem. */ + #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX) + + /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t + bounds even on 32-bit platforms. We don't know which + non-glibc systems are safe. */ + #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__)) + + #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE + return 0; + #else + #error "malloc might not be ptrdiff_t safe" + syntax error + #endif + ]])], + [gl_cv_malloc_ptrdiff=yes], + [gl_cv_malloc_ptrdiff=no]) + ]) +]) + +# gl_FUNC_MALLOC_POSIX +# -------------------- +# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it +# fails, and doesn't mess up with ptrdiff_t overflow), and replace +# malloc if it is not. +AC_DEFUN([gl_FUNC_MALLOC_POSIX], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF]) + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test "$gl_cv_func_malloc_posix" = yes; then + AC_DEFINE([HAVE_MALLOC_POSIX], [1], + [Define if malloc, realloc, and calloc set errno on allocation failure.]) + else + REPLACE_MALLOC_FOR_MALLOC_POSIX=1 + fi +]) + +# Test whether malloc, realloc, calloc set errno to ENOMEM on failure. +# Set gl_cv_func_malloc_posix to yes or no accordingly. +AC_DEFUN([gl_CHECK_MALLOC_POSIX], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure], + [gl_cv_func_malloc_posix], + [ + dnl It is too dangerous to try to allocate a large amount of memory: + dnl some systems go to their knees when you do that. So assume that + dnl all Unix implementations of the function set errno on failure, + dnl except on those platforms where we have seen 'test-malloc-gnu', + dnl 'test-realloc-gnu', 'test-calloc-gnu' fail. + case "$host_os" in + mingw*) + gl_cv_func_malloc_posix=no ;; + irix* | solaris*) + dnl On IRIX 6.5, the three functions return NULL with errno unset + dnl when the argument is larger than PTRDIFF_MAX. + dnl On Solaris 11.3, the three functions return NULL with errno set + dnl to EAGAIN, not ENOMEM, when the argument is larger than + dnl PTRDIFF_MAX. + dnl Here is a test program: +m4_divert_push([KILL]) +#include +#include +#include +#define ptrdiff_t long +#ifndef PTRDIFF_MAX +# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1)) +#endif + +int main () +{ + void *p; + + fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX); + + errno = 0; + p = malloc ((unsigned long) PTRDIFF_MAX + 1); + fprintf (stderr, "p=%p errno=%d\n", p, errno); + + errno = 0; + p = calloc (PTRDIFF_MAX / 2 + 1, 2); + fprintf (stderr, "p=%p errno=%d\n", p, errno); + + errno = 0; + p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1); + fprintf (stderr, "p=%p errno=%d\n", p, errno); + + return 0; +} +m4_divert_pop([KILL]) + gl_cv_func_malloc_posix=no ;; + *) + gl_cv_func_malloc_posix=yes ;; + esac + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/malloca.m4 b/3rdPartner/libiconv/srcm4/malloca.m4 new file mode 100644 index 0000000..77eb96a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/malloca.m4 @@ -0,0 +1,14 @@ +# malloca.m4 serial 2 +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2022 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_MALLOCA], +[ + dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables + dnl @ALLOCA@ and @LTALLOCA@. + dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. + AC_REQUIRE([gl_EEMALLOC]) +]) diff --git a/3rdPartner/libiconv/srcm4/mbstate_t.m4 b/3rdPartner/libiconv/srcm4/mbstate_t.m4 new file mode 100644 index 0000000..a6eba1b --- /dev/null +++ b/3rdPartner/libiconv/srcm4/mbstate_t.m4 @@ -0,0 +1,34 @@ +# mbstate_t.m4 serial 14 +dnl Copyright (C) 2000-2002, 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# From Paul Eggert. + +# BeOS 5 has but does not define mbstate_t, +# so you can't declare an object of that type. +# Check for this incompatibility with Standard C. + +# AC_TYPE_MBSTATE_T +# ----------------- +AC_DEFUN([AC_TYPE_MBSTATE_T], +[ + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 + + AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT[ + #include ]], + [[mbstate_t x; return sizeof x;]])], + [ac_cv_type_mbstate_t=yes], + [ac_cv_type_mbstate_t=no])]) + if test $ac_cv_type_mbstate_t = yes; then + AC_DEFINE([HAVE_MBSTATE_T], [1], + [Define to 1 if declares mbstate_t.]) + else + AC_DEFINE([mbstate_t], [int], + [Define to a type if does not define.]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/mempcpy.m4 b/3rdPartner/libiconv/srcm4/mempcpy.m4 new file mode 100644 index 0000000..1107eb4 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/mempcpy.m4 @@ -0,0 +1,26 @@ +# mempcpy.m4 serial 12 +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2022 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_MEMPCPY], +[ + dnl Persuade glibc to declare mempcpy(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'. + AC_REQUIRE([AC_C_RESTRICT]) + + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([mempcpy]) + if test $ac_cv_func_mempcpy = no; then + HAVE_MEMPCPY=0 + fi +]) + +# Prerequisites of lib/mempcpy.c. +AC_DEFUN([gl_PREREQ_MEMPCPY], [ + : +]) diff --git a/3rdPartner/libiconv/srcm4/minmax.m4 b/3rdPartner/libiconv/srcm4/minmax.m4 new file mode 100644 index 0000000..b976739 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/minmax.m4 @@ -0,0 +1,44 @@ +# minmax.m4 serial 4 +dnl Copyright (C) 2005, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_PREREQ([2.53]) + +AC_DEFUN([gl_MINMAX], +[ + AC_REQUIRE([gl_PREREQ_MINMAX]) +]) + +# Prerequisites of lib/minmax.h. +AC_DEFUN([gl_PREREQ_MINMAX], +[ + gl_MINMAX_IN_HEADER([limits.h]) + gl_MINMAX_IN_HEADER([sys/param.h]) +]) + +dnl gl_MINMAX_IN_HEADER(HEADER) +dnl The parameter has to be a literal header name; it cannot be macro, +dnl nor a shell variable. (Because autoheader collects only AC_DEFINE +dnl invocations with a literal macro name.) +AC_DEFUN([gl_MINMAX_IN_HEADER], +[ + m4_pushdef([header], AS_TR_SH([$1])) + m4_pushdef([HEADER], AS_TR_CPP([$1])) + AC_CACHE_CHECK([whether <$1> defines MIN and MAX], + [gl_cv_minmax_in_]header, + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <$1> + int x = MIN (42, 17);]], + [[]])], + [gl_cv_minmax_in_]header[=yes], + [gl_cv_minmax_in_]header[=no])]) + if test $gl_cv_minmax_in_[]header = yes; then + AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1, + [Define to 1 if <$1> defines the MIN and MAX macros.]) + fi + m4_popdef([HEADER]) + m4_popdef([header]) +]) diff --git a/3rdPartner/libiconv/srcm4/mode_t.m4 b/3rdPartner/libiconv/srcm4/mode_t.m4 new file mode 100644 index 0000000..e08d27a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/mode_t.m4 @@ -0,0 +1,26 @@ +# mode_t.m4 serial 2 +dnl Copyright (C) 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and +# include . + +# Define PROMOTED_MODE_T to the type that is the result of "default argument +# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. +AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], +[ + AC_REQUIRE([AC_TYPE_MODE_T]) + AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ + dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', + dnl and to itself otherwise. This assumption is not guaranteed by the ISO C + dnl standard, but we don't know of any real-world counterexamples. + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], + [gl_cv_promoted_mode_t='int'], + [gl_cv_promoted_mode_t='mode_t']) + ]) + AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], + [Define to the type that is the result of default argument promotions of type mode_t.]) +]) diff --git a/3rdPartner/libiconv/srcm4/msvc-inval.m4 b/3rdPartner/libiconv/srcm4/msvc-inval.m4 new file mode 100644 index 0000000..b32cf6e --- /dev/null +++ b/3rdPartner/libiconv/srcm4/msvc-inval.m4 @@ -0,0 +1,19 @@ +# msvc-inval.m4 serial 1 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_MSVC_INVAL], +[ + AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) + if test $ac_cv_func__set_invalid_parameter_handler = yes; then + HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 + AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], + [Define to 1 on MSVC platforms that have the "invalid parameter handler" + concept.]) + else + HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 + fi + AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) +]) diff --git a/3rdPartner/libiconv/srcm4/msvc-nothrow.m4 b/3rdPartner/libiconv/srcm4/msvc-nothrow.m4 new file mode 100644 index 0000000..16ceb1f --- /dev/null +++ b/3rdPartner/libiconv/srcm4/msvc-nothrow.m4 @@ -0,0 +1,10 @@ +# msvc-nothrow.m4 serial 1 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_MSVC_NOTHROW], +[ + AC_REQUIRE([gl_MSVC_INVAL]) +]) diff --git a/3rdPartner/libiconv/srcm4/multiarch.m4 b/3rdPartner/libiconv/srcm4/multiarch.m4 new file mode 100644 index 0000000..5d94276 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/multiarch.m4 @@ -0,0 +1,65 @@ +# multiarch.m4 serial 9 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Determine whether the compiler is or may be producing universal binaries. +# +# On Mac OS X 10.5 and later systems, the user can create libraries and +# executables that work on multiple system types--known as "fat" or +# "universal" binaries--by specifying multiple '-arch' options to the +# compiler but only a single '-arch' option to the preprocessor. Like +# this: +# +# ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ +# CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ +# CPP="gcc -E" CXXCPP="g++ -E" +# +# Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. + +AC_DEFUN_ONCE([gl_MULTIARCH], +[ + dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. + AC_CACHE_CHECK([whether the compiler produces multi-arch binaries], + [gl_cv_c_multiarch], + [gl_cv_c_multiarch=no + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + ]])], + [ + dnl Check for potential -arch flags. It is not universal unless + dnl there are at least two -arch flags with different values. + arch= + prev= + for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do + if test -n "$prev"; then + case $word in + i?86 | x86_64 | ppc | ppc64 | arm | arm64) + if test -z "$arch" || test "$arch" = "$word"; then + arch="$word" + else + gl_cv_c_multiarch=yes + fi + ;; + esac + prev= + else + if test "x$word" = "x-arch"; then + prev=arch + fi + fi + done + ]) + ]) + if test $gl_cv_c_multiarch = yes; then + APPLE_UNIVERSAL_BUILD=1 + else + APPLE_UNIVERSAL_BUILD=0 + fi + AC_SUBST([APPLE_UNIVERSAL_BUILD]) +]) diff --git a/3rdPartner/libiconv/srcm4/nls.m4 b/3rdPartner/libiconv/srcm4/nls.m4 new file mode 100644 index 0000000..7c11c90 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 6 (gettext-0.20.2) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2022 Free +dnl Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/3rdPartner/libiconv/srcm4/nocrash.m4 b/3rdPartner/libiconv/srcm4/nocrash.m4 new file mode 100644 index 0000000..91f00c1 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/nocrash.m4 @@ -0,0 +1,131 @@ +# nocrash.m4 serial 5 +dnl Copyright (C) 2005, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. + +AC_PREREQ([2.13]) + +dnl Expands to some code for use in .c programs that will cause the configure +dnl test to exit instead of crashing. This is useful to avoid triggering +dnl action from a background debugger and to avoid core dumps. +dnl Usage: ... +dnl ]GL_NOCRASH[ +dnl ... +dnl int main() { nocrash_init(); ... } +AC_DEFUN([GL_NOCRASH],[[ +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on Mac OS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); + if (retval != MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self = mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. */ + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) + == KERN_SUCCESS) { + /* See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_port, + MACH_MSG_TYPE_MAKE_SEND) + == KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting + for us. */ + exception_mask_t mask = EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) == 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our own. + Note that we replace the exception port for the entire task, not only + for a particular thread. This has the effect that when our exception + port gets the message, the thread specific exception port has already + been asked, and we don't need to bother about it. + See https://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); + } + } + } +} +#elif defined _WIN32 && ! defined __CYGWIN__ +/* Avoid a crash on native Windows. */ +#define WIN32_LEAN_AND_MEAN +#include +#include +static LONG WINAPI +exception_filter (EXCEPTION_POINTERS *ExceptionInfo) +{ + switch (ExceptionInfo->ExceptionRecord->ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_IN_PAGE_ERROR: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_GUARD_PAGE: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_NONCONTINUABLE_EXCEPTION: + exit (1); + } + return EXCEPTION_CONTINUE_SEARCH; +} +static void +nocrash_init (void) +{ + SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); +} +#else +/* Avoid a crash on POSIX systems. */ +#include +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + _exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif +]]) diff --git a/3rdPartner/libiconv/srcm4/off_t.m4 b/3rdPartner/libiconv/srcm4/off_t.m4 new file mode 100644 index 0000000..0890ada --- /dev/null +++ b/3rdPartner/libiconv/srcm4/off_t.m4 @@ -0,0 +1,18 @@ +# off_t.m4 serial 1 +dnl Copyright (C) 2012-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Check whether to override the 'off_t' type. +dnl Set WINDOWS_64_BIT_OFF_T. + +AC_DEFUN([gl_TYPE_OFF_T], +[ + m4_ifdef([gl_LARGEFILE], [ + AC_REQUIRE([gl_LARGEFILE]) + ], [ + WINDOWS_64_BIT_OFF_T=0 + ]) + AC_SUBST([WINDOWS_64_BIT_OFF_T]) +]) diff --git a/3rdPartner/libiconv/srcm4/open-cloexec.m4 b/3rdPartner/libiconv/srcm4/open-cloexec.m4 new file mode 100644 index 0000000..16cd5ec --- /dev/null +++ b/3rdPartner/libiconv/srcm4/open-cloexec.m4 @@ -0,0 +1,21 @@ +# Test whether O_CLOEXEC is defined. + +dnl Copyright 2017-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_PREPROC_O_CLOEXEC], +[ + AC_CACHE_CHECK([for O_CLOEXEC], + [gl_cv_macro_O_CLOEXEC], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include + #ifndef O_CLOEXEC + choke me; + #endif + ]], + [[return O_CLOEXEC;]])], + [gl_cv_macro_O_CLOEXEC=yes], + [gl_cv_macro_O_CLOEXEC=no])]) +]) diff --git a/3rdPartner/libiconv/srcm4/open-slash.m4 b/3rdPartner/libiconv/srcm4/open-slash.m4 new file mode 100644 index 0000000..4fbf491 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/open-slash.m4 @@ -0,0 +1,60 @@ +# open-slash.m4 serial 2 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Tests whether open() and creat() recognize a trailing slash. +dnl Sets gl_cv_func_open_slash. +AC_DEFUN([gl_OPEN_TRAILING_SLASH_BUG], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + dnl open("foo/") should not create a file when the file name has a + dnl trailing slash. FreeBSD only has the problem on symlinks. + AC_CHECK_FUNCS_ONCE([lstat]) + AC_CACHE_CHECK([whether open recognizes a trailing slash], + [gl_cv_func_open_slash], + [# Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + touch conftest.tmp + ln -s conftest.tmp conftest.lnk + fi + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#if HAVE_UNISTD_H +# include +#endif +]GL_MDA_DEFINES[ +int main () +{ + int result = 0; +#if HAVE_LSTAT + if (open ("conftest.lnk/", O_RDONLY) != -1) + result |= 1; +#endif + if (open ("conftest.sl/", O_CREAT, 0600) >= 0) + result |= 2; + return result; +}]])], + [gl_cv_func_open_slash=yes], + [gl_cv_func_open_slash=no], + [ +changequote(,)dnl + case "$host_os" in + freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) + gl_cv_func_open_slash="guessing no" ;; + *) + gl_cv_func_open_slash="guessing yes" ;; + esac +changequote([,])dnl + ]) + rm -f conftest.sl conftest.tmp conftest.lnk + ]) + case "$gl_cv_func_open_slash" in + *no) + AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], + [Define to 1 if open() fails to recognize a trailing slash.]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/open.m4 b/3rdPartner/libiconv/srcm4/open.m4 new file mode 100644 index 0000000..f82fd6c --- /dev/null +++ b/3rdPartner/libiconv/srcm4/open.m4 @@ -0,0 +1,56 @@ +# open.m4 serial 15 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_OPEN], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_PREPROC_O_CLOEXEC]) + case "$host_os" in + mingw* | pw*) + REPLACE_OPEN=1 + ;; + *) + dnl open("foo/") should not create a file when the file name has a + dnl trailing slash. FreeBSD only has the problem on symlinks. + AC_CHECK_FUNCS_ONCE([lstat]) + if test "$gl_cv_macro_O_CLOEXEC" != yes; then + REPLACE_OPEN=1 + fi + gl_OPEN_TRAILING_SLASH_BUG + case "$gl_cv_func_open_slash" in + *no) + REPLACE_OPEN=1 + ;; + esac + ;; + esac + dnl Replace open() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + if test $REPLACE_OPEN = 0; then + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then + REPLACE_OPEN=1 + fi + fi + ]) + dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. + m4_ifdef([gl_NONBLOCKING_IO], [ + if test $REPLACE_OPEN = 0; then + gl_NONBLOCKING_IO + if test $gl_cv_have_open_O_NONBLOCK != yes; then + REPLACE_OPEN=1 + fi + fi + ]) +]) + +# Prerequisites of lib/open.c. +AC_DEFUN([gl_PREREQ_OPEN], +[ + AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) + : +]) diff --git a/3rdPartner/libiconv/srcm4/pathmax.m4 b/3rdPartner/libiconv/srcm4/pathmax.m4 new file mode 100644 index 0000000..44add99 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/pathmax.m4 @@ -0,0 +1,42 @@ +# pathmax.m4 serial 11 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2022 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_PATHMAX], +[ + dnl Prerequisites of lib/pathmax.h. + AC_CHECK_HEADERS_ONCE([sys/param.h]) +]) + +# Expands to a piece of C program that defines PATH_MAX in the same way as +# "pathmax.h" will do. +AC_DEFUN([gl_PATHMAX_SNIPPET], [[ +/* Arrange to define PATH_MAX, like "pathmax.h" does. */ +#if HAVE_UNISTD_H +# include +#endif +#include +#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN +# include +#endif +#if !defined PATH_MAX && defined MAXPATHLEN +# define PATH_MAX MAXPATHLEN +#endif +#ifdef __hpux +# undef PATH_MAX +# define PATH_MAX 1024 +#endif +#if defined _WIN32 && ! defined __CYGWIN__ +# undef PATH_MAX +# define PATH_MAX 260 +#endif +]]) + +# Prerequisites of gl_PATHMAX_SNIPPET. +AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], +[ + AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) +]) diff --git a/3rdPartner/libiconv/srcm4/pid_t.m4 b/3rdPartner/libiconv/srcm4/pid_t.m4 new file mode 100644 index 0000000..cb26f36 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/pid_t.m4 @@ -0,0 +1,38 @@ +# pid_t.m4 serial 4 +dnl Copyright (C) 2020-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# The following implementation works around a problem in autoconf <= 2.69. +m4_version_prereq([2.70], [], [ + +dnl Define pid_t if the headers don't define it. +AC_DEFUN([AC_TYPE_PID_T], +[ + AC_CHECK_TYPE([pid_t], + [], + [dnl On 64-bit native Windows, define it to the equivalent of 'intptr_t' + dnl (= 'long long' = '__int64'), because that is the return type + dnl of the _spawnv* functions + dnl + dnl and the argument type of the _cwait function + dnl . + dnl Otherwise (on 32-bit Windows and on old Unix platforms), define it + dnl to 'int'. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + ]]) + ], + [gl_pid_type='int'], + [gl_pid_type='__int64']) + AC_DEFINE_UNQUOTED([pid_t], [$gl_pid_type], + [Define as a signed integer type capable of holding a process identifier.]) + ], + [AC_INCLUDES_DEFAULT]) +]) + +])# m4_version_prereq 2.70 diff --git a/3rdPartner/libiconv/srcm4/po.m4 b/3rdPartner/libiconv/srcm4/po.m4 new file mode 100644 index 0000000..ace6f96 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/po.m4 @@ -0,0 +1,450 @@ +# po.m4 serial 31 (gettext-0.20.2) +dnl Copyright (C) 1995-2014, 2016, 2018-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.20]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Test whether it is GNU msgmerge >= 0.20. + if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' + else + dnl Test whether it is GNU msgmerge >= 0.12. + if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' + else + dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is + dnl slow. But this is not a big problem, as such old gettext versions are + dnl hardly in use any more. + MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' + fi + fi + AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.53]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in m4_if([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/3rdPartner/libiconv/srcm4/raise.m4 b/3rdPartner/libiconv/srcm4/raise.m4 new file mode 100644 index 0000000..0c78d09 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/raise.m4 @@ -0,0 +1,36 @@ +# raise.m4 serial 4 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_RAISE], +[ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CHECK_FUNCS([raise]) + if test $ac_cv_func_raise = no; then + HAVE_RAISE=0 + else + m4_ifdef([gl_MSVC_INVAL], [ + AC_REQUIRE([gl_MSVC_INVAL]) + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_RAISE=1 + fi + ]) + m4_ifdef([gl_SIGNALBLOCKING], [ + gl_SIGNALBLOCKING + if test $HAVE_POSIX_SIGNALBLOCKING = 0; then + m4_ifdef([gl_SIGNAL_SIGPIPE], [ + gl_SIGNAL_SIGPIPE + if test $gl_cv_header_signal_h_SIGPIPE != yes; then + REPLACE_RAISE=1 + fi + ], [:]) + fi + ]) + fi +]) + +# Prerequisites of lib/raise.c. +AC_DEFUN([gl_PREREQ_RAISE], [:]) diff --git a/3rdPartner/libiconv/srcm4/rawmemchr.m4 b/3rdPartner/libiconv/srcm4/rawmemchr.m4 new file mode 100644 index 0000000..dae4193 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/rawmemchr.m4 @@ -0,0 +1,20 @@ +# rawmemchr.m4 serial 3 +dnl Copyright (C) 2003, 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_RAWMEMCHR], +[ + dnl Persuade glibc to declare rawmemchr(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_FUNCS([rawmemchr]) + if test $ac_cv_func_rawmemchr = no; then + HAVE_RAWMEMCHR=0 + fi +]) + +# Prerequisites of lib/strchrnul.c. +AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:]) diff --git a/3rdPartner/libiconv/srcm4/read.m4 b/3rdPartner/libiconv/srcm4/read.m4 new file mode 100644 index 0000000..1c199ea --- /dev/null +++ b/3rdPartner/libiconv/srcm4/read.m4 @@ -0,0 +1,28 @@ +# read.m4 serial 5 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_READ], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + m4_ifdef([gl_MSVC_INVAL], [ + AC_REQUIRE([gl_MSVC_INVAL]) + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_READ=1 + fi + ]) + dnl This ifdef is just an optimization, to avoid performing a configure + dnl check whose result is not used. It does not make the test of + dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_READ=1 + fi + ]) +]) + +# Prerequisites of lib/read.c. +AC_DEFUN([gl_PREREQ_READ], [:]) diff --git a/3rdPartner/libiconv/srcm4/readlink.m4 b/3rdPartner/libiconv/srcm4/readlink.m4 new file mode 100644 index 0000000..d1dd521 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/readlink.m4 @@ -0,0 +1,114 @@ +# readlink.m4 serial 16 +dnl Copyright (C) 2003, 2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_READLINK], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CHECK_FUNCS_ONCE([readlink]) + if test $ac_cv_func_readlink = no; then + HAVE_READLINK=0 + else + AC_CACHE_CHECK([whether readlink signature is correct], + [gl_cv_decl_readlink_works], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + /* Cause compilation failure if original declaration has wrong type. */ + ssize_t readlink (const char *, char *, size_t);]])], + [gl_cv_decl_readlink_works=yes], [gl_cv_decl_readlink_works=no])]) + dnl Solaris 9 ignores trailing slash. + dnl FreeBSD 7.2 dereferences only one level of links with trailing slash. + AC_CACHE_CHECK([whether readlink handles trailing slash correctly], + [gl_cv_func_readlink_trailing_slash], + [# We have readlink, so assume ln -s works. + ln -s conftest.no-such conftest.link + ln -s conftest.link conftest.lnk2 + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include +]], [[char buf[20]; + return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], + [gl_cv_func_readlink_trailing_slash=yes], + [gl_cv_func_readlink_trailing_slash=no], + [case "$host_os" in + # Guess yes on Linux or glibc systems. + linux-* | linux | *-gnu* | gnu*) + gl_cv_func_readlink_trailing_slash="guessing yes" ;; + # Guess no on AIX or HP-UX. + aix* | hpux*) + gl_cv_func_readlink_trailing_slash="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_readlink_trailing_slash="$gl_cross_guess_normal" ;; + esac + ]) + rm -f conftest.link conftest.lnk2]) + case "$gl_cv_func_readlink_trailing_slash" in + *yes) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + fi + ;; + *) + AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink + fails to recognize a trailing slash.]) + REPLACE_READLINK=1 + ;; + esac + + AC_CACHE_CHECK([whether readlink truncates results correctly], + [gl_cv_func_readlink_truncate], + [# We have readlink, so assume ln -s works. + ln -s ab conftest.link + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include +]], [[char c; + return readlink ("conftest.link", &c, 1) != 1;]])], + [gl_cv_func_readlink_truncate=yes], + [gl_cv_func_readlink_truncate=no], + [case "$host_os" in + # Guess yes on Linux or glibc systems. + linux-* | linux | *-gnu* | gnu*) + gl_cv_func_readlink_truncate="guessing yes" ;; + # Guess no on AIX or HP-UX. + aix* | hpux*) + gl_cv_func_readlink_truncate="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) + gl_cv_func_readlink_truncate="$gl_cross_guess_normal" ;; + esac + ]) + rm -f conftest.link conftest.lnk2]) + case $gl_cv_func_readlink_truncate in + *yes) + if test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + fi + ;; + *) + AC_DEFINE([READLINK_TRUNCATE_BUG], [1], [Define to 1 if readlink + sets errno instead of truncating a too-long link.]) + REPLACE_READLINK=1 + ;; + esac + fi +]) + +# Like gl_FUNC_READLINK, except prepare for separate compilation +# (no REPLACE_READLINK, no AC_LIBOBJ). +AC_DEFUN([gl_FUNC_READLINK_SEPARATE], +[ + AC_CHECK_FUNCS_ONCE([readlink]) + gl_PREREQ_READLINK +]) + +# Prerequisites of lib/readlink.c. +AC_DEFUN([gl_PREREQ_READLINK], +[ + : +]) diff --git a/3rdPartner/libiconv/srcm4/realloc.m4 b/3rdPartner/libiconv/srcm4/realloc.m4 new file mode 100644 index 0000000..86e57c2 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/realloc.m4 @@ -0,0 +1,63 @@ +# realloc.m4 serial 26 +dnl Copyright (C) 2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# This is adapted with modifications from upstream Autoconf here: +# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455 +AC_DEFUN([_AC_FUNC_REALLOC_IF], +[ + AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles + AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull], + [ac_cv_func_realloc_0_nonnull], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[void *p = realloc (0, 0); + int result = !p; + free (p); + return result;]]) + ], + [ac_cv_func_realloc_0_nonnull=yes], + [ac_cv_func_realloc_0_nonnull=no], + [case "$host_os" in + # Guess yes on platforms where we know the result. + *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \ + | gnu* | *-musl* | midnightbsd* \ + | hpux* | solaris* | cygwin* | mingw* | msys* ) + ac_cv_func_realloc_0_nonnull="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;; + esac + ]) + ]) + AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2]) +])# AC_FUNC_REALLOC + +# gl_FUNC_REALLOC_GNU +# ------------------- +# Replace realloc if it is not compatible with GNU libc. +AC_DEFUN([gl_FUNC_REALLOC_GNU], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_REALLOC_POSIX]) + if test $REPLACE_REALLOC_FOR_REALLOC_GNU = 0; then + _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC_FOR_REALLOC_GNU=1]) + fi +])# gl_FUNC_REALLOC_GNU + +# gl_FUNC_REALLOC_POSIX +# --------------------- +# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it +# fails, and doesn't mess up with ptrdiff_t overflow), +# and replace realloc if it is not. +AC_DEFUN([gl_FUNC_REALLOC_POSIX], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_FUNC_MALLOC_POSIX]) + if test $REPLACE_MALLOC_FOR_MALLOC_POSIX = 1; then + REPLACE_REALLOC_FOR_REALLOC_POSIX=1 + fi +]) diff --git a/3rdPartner/libiconv/srcm4/relocatable-lib.m4 b/3rdPartner/libiconv/srcm4/relocatable-lib.m4 new file mode 100644 index 0000000..b8a33e7 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/relocatable-lib.m4 @@ -0,0 +1,47 @@ +# relocatable-lib.m4 serial 6 +dnl Copyright (C) 2003, 2005-2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Support for relocatable libraries. +AC_DEFUN([gl_RELOCATABLE_LIBRARY], +[ + AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY]) +]) +AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY], +[ + AC_REQUIRE([gl_RELOCATABLE_NOP]) + dnl Easier to put this here once, instead of into the DEFS of each Makefile. + if test "X$prefix" = "XNONE"; then + reloc_final_prefix="$ac_default_prefix" + else + reloc_final_prefix="$prefix" + fi + AC_DEFINE_UNQUOTED([INSTALLPREFIX], ["${reloc_final_prefix}"], + [Define to the value of ${prefix}, as a string.]) + if test $RELOCATABLE = yes; then + AC_DEFINE([ENABLE_RELOCATABLE], [1], + [Define to 1 if the package shall run at any location in the file + system.]) + fi +]) + +dnl Support for relocatable packages for which it is a nop. +AC_DEFUN([gl_RELOCATABLE_NOP], +[ + AC_MSG_CHECKING([whether to activate relocatable installation]) + AC_ARG_ENABLE([relocatable], + [AS_HELP_STRING([--enable-relocatable], + [install a package that can be moved in the file system])], + [if test "$enableval" != no; then + RELOCATABLE=yes + else + RELOCATABLE=no + fi + ], RELOCATABLE=no) + AC_SUBST([RELOCATABLE]) + AC_MSG_RESULT([$RELOCATABLE]) +]) diff --git a/3rdPartner/libiconv/srcm4/relocatable.m4 b/3rdPartner/libiconv/srcm4/relocatable.m4 new file mode 100644 index 0000000..e5740c5 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/relocatable.m4 @@ -0,0 +1,160 @@ +# relocatable.m4 serial 24 +dnl Copyright (C) 2003, 2005-2007, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl gl_RELOCATABLE([RELOCWRAPPER-DIR]) +dnl ---------------------------------------------------------- +dnl Support for relocatable programs. +dnl Supply RELOCWRAPPER-DIR as the directory where relocwrapper.c may be found. +AC_DEFUN([gl_RELOCATABLE], +[ + AC_REQUIRE([gl_RELOCATABLE_BODY]) + gl_RELOCATABLE_LIBRARY + : ${RELOCATABLE_CONFIG_H_DIR='$(top_builddir)'} + RELOCATABLE_SRC_DIR="\$(top_srcdir)/$gl_source_base" + RELOCATABLE_BUILD_DIR="\$(top_builddir)/$gl_source_base" +]) +dnl The guts of gl_RELOCATABLE. Needs to be expanded only once. +AC_DEFUN([gl_RELOCATABLE_BODY], +[ + AC_REQUIRE([AC_PROG_INSTALL]) + + dnl This AC_BEFORE invocation leads to unjustified autoconf warnings + dnl when gl_RELOCATABLE_BODY is invoked more than once. + dnl + dnl We need this AC_BEFORE because AC_PROG_INSTALL is documented to + dnl overwrite earlier settings of INSTALL and INSTALL_PROGRAM (even + dnl though in autoconf-2.52..2.60 it doesn't do so), but we want this + dnl macro's setting of INSTALL_PROGRAM to persist. + dnl Arghh: AC_BEFORE does not work in this setting :-( + dnl AC_BEFORE([AC_PROG_INSTALL],[gl_RELOCATABLE_BODY]) + dnl + dnl LT_INIT sets LIBTOOL, but we want this macro's setting of LIBTOOL to + dnl persist. + dnl Arghh: AC_BEFORE does not work in this setting :-( + dnl AC_BEFORE([LT_INIT],[gl_RELOCATABLE_BODY]) + + AC_REQUIRE([AC_LIB_LIBPATH]) + AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY]) + AC_REQUIRE([AC_CANONICAL_HOST]) + is_noop=no + use_elf_origin_trick=no + use_macos_tools=no + use_wrapper=no + if test $RELOCATABLE = yes; then + # --enable-relocatable implies --disable-rpath + enable_rpath=no + AC_CHECK_HEADERS([mach-o/dyld.h]) + AC_CHECK_FUNCS([_NSGetExecutablePath]) + case "$host_os" in + mingw*) is_noop=yes ;; + # For the platforms that support $ORIGIN, see + # . + # glibc systems, Linux with musl libc: yes. Android: no. + linux*-android*) ;; + linux* | kfreebsd*) use_elf_origin_trick=yes ;; + # Hurd: + # only after the glibc commit from 2018-01-08 + # + gnu*) + # Test for a glibc version >= 2.27. + AC_CHECK_FUNCS([copy_file_range]) + if test $ac_cv_func_copy_file_range = yes; then + use_elf_origin_trick=yes + fi + ;; +changequote(,)dnl + # FreeBSD >= 7.3, DragonFly >= 3.0, MidnightBSD >= 1.1: yes. + freebsd | freebsd[1-7] | freebsd[1-6].* | freebsd7.[0-2]) ;; + dragonfly | dragonfly[1-2] | dragonfly[1-2].*) ;; + midnightbsd | midnightbsd0* | midnightbsd1.0*) ;; + freebsd* | dragonfly* | midnightbsd*) use_elf_origin_trick=yes ;; + # NetBSD >= 8.0: yes. + netbsd | netbsd[1-7] | netbsd[1-7].*) ;; + netbsdelf | netbsdelf[1-7] | netbsdelf[1-7].*) ;; + netbsd*) use_elf_origin_trick=yes ;; + # OpenBSD >= 5.4: yes. + openbsd | openbsd[1-5] | openbsd[1-4].* | openbsd5.[0-3]) ;; + openbsd*) use_elf_origin_trick=yes ;; + # Solaris >= 10: yes. + solaris | solaris2.[1-9] | solaris2.[1-9].*) ;; + solaris*) use_elf_origin_trick=yes ;; + # Haiku: yes. + haiku*) use_elf_origin_trick=yes ;; + # On Mac OS X 10.4 or newer, use Mac OS X tools. See + # . + darwin | darwin[1-7].*) ;; + darwin*) use_macos_tools=yes ;; +changequote([,])dnl + esac + if test $is_noop = yes; then + RELOCATABLE_LDFLAGS=: + AC_SUBST([RELOCATABLE_LDFLAGS]) + else + if test $use_elf_origin_trick = yes || test $use_macos_tools = yes; then + dnl Use the dynamic linker's support for relocatable programs. + case "$ac_aux_dir" in + /*) reloc_ldflags="$ac_aux_dir/reloc-ldflags" ;; + *) reloc_ldflags="\$(top_builddir)/$ac_aux_dir/reloc-ldflags" ;; + esac + RELOCATABLE_LDFLAGS="\"$reloc_ldflags\" \"\$(host)\" \"\$(RELOCATABLE_LIBRARY_PATH)\"" + AC_SUBST([RELOCATABLE_LDFLAGS]) + if test $use_macos_tools = yes; then + dnl Use a libtool wrapper that uses Mac OS X tools. + case "$ac_aux_dir" in + /*) LIBTOOL="${CONFIG_SHELL-$SHELL} $ac_aux_dir/libtool-reloc $LIBTOOL" ;; + *) LIBTOOL="${CONFIG_SHELL-$SHELL} \$(top_builddir)/$ac_aux_dir/libtool-reloc $LIBTOOL" ;; + esac + fi + else + use_wrapper=yes + dnl Unfortunately we cannot define INSTALL_PROGRAM to a command + dnl consisting of more than one word - libtool doesn't support this. + dnl So we abuse the INSTALL_PROGRAM_ENV hook, originally meant for the + dnl 'install-strip' target. + INSTALL_PROGRAM_ENV="RELOC_LIBRARY_PATH_VAR=\"$shlibpath_var\" RELOC_LIBRARY_PATH_VALUE=\"\$(RELOCATABLE_LIBRARY_PATH)\" RELOC_PREFIX=\"\$(prefix)\" RELOC_DESTDIR=\"\$(DESTDIR)\" RELOC_COMPILE_COMMAND=\"\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(LDFLAGS)\" RELOC_SRCDIR=\"\$(RELOCATABLE_SRC_DIR)\" RELOC_BUILDDIR=\"\$(RELOCATABLE_BUILD_DIR)\" RELOC_CONFIG_H_DIR=\"\$(RELOCATABLE_CONFIG_H_DIR)\" RELOC_EXEEXT=\"\$(EXEEXT)\" RELOC_STRIP_PROG=\"\$(RELOCATABLE_STRIP)\" RELOC_INSTALL_PROG=\"$INSTALL_PROGRAM\"" + AC_SUBST([INSTALL_PROGRAM_ENV]) + case "$ac_aux_dir" in + /*) INSTALL_PROGRAM="$ac_aux_dir/install-reloc" ;; + *) INSTALL_PROGRAM="\$(top_builddir)/$ac_aux_dir/install-reloc" ;; + esac + fi + fi + fi + AM_CONDITIONAL([RELOCATABLE_VIA_LD], + [test $is_noop = yes || test $use_elf_origin_trick = yes || test $use_macos_tools = yes]) + AM_CONDITIONAL([RELOCATABLE_VIA_WRAPPER], [test $use_wrapper = yes]) + + dnl RELOCATABLE_LIBRARY_PATH can be set in configure.ac. Default is empty. + AC_SUBST([RELOCATABLE_LIBRARY_PATH]) + + AC_SUBST([RELOCATABLE_CONFIG_H_DIR]) + AC_SUBST([RELOCATABLE_SRC_DIR]) + AC_SUBST([RELOCATABLE_BUILD_DIR]) + + dnl Ensure RELOCATABLE_STRIP is defined in Makefiles (at least those + dnl generated by automake), with value ':'. + RELOCATABLE_STRIP=':' + AC_SUBST([RELOCATABLE_STRIP]) +]) + +dnl Determine the platform dependent parameters needed to use relocatability: +dnl shlibpath_var. +AC_DEFUN([AC_LIB_LIBPATH], +[ + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library path variable], [acl_cv_libpath], [ + LD="$LD" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.libpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_libpath=${acl_cv_shlibpath_var:-none} + ]) + shlibpath_var="$acl_cv_shlibpath_var" +]) diff --git a/3rdPartner/libiconv/srcm4/safe-read.m4 b/3rdPartner/libiconv/srcm4/safe-read.m4 new file mode 100644 index 0000000..54d4769 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/safe-read.m4 @@ -0,0 +1,12 @@ +# safe-read.m4 serial 6 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2022 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prerequisites of lib/safe-read.c. +AC_DEFUN([gl_PREREQ_SAFE_READ], +[ + AC_REQUIRE([gt_TYPE_SSIZE_T]) +]) diff --git a/3rdPartner/libiconv/srcm4/setenv.m4 b/3rdPartner/libiconv/srcm4/setenv.m4 new file mode 100644 index 0000000..2000039 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/setenv.m4 @@ -0,0 +1,166 @@ +# setenv.m4 serial 30 +dnl Copyright (C) 2001-2004, 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_SETENV], +[ + AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + if test $ac_cv_func_setenv = no; then + HAVE_SETENV=0 + else + AC_CACHE_CHECK([whether setenv validates arguments], + [gl_cv_func_setenv_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include + #include + #include + ]], [[ + int result = 0; + { + if (setenv ("", "", 0) != -1) + result |= 1; + else if (errno != EINVAL) + result |= 2; + } + { + if (setenv ("a", "=", 1) != 0) + result |= 4; + else if (strcmp (getenv ("a"), "=") != 0) + result |= 8; + } + return result; + ]])], + [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_setenv_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_setenv_works="$gl_cross_guess_normal" ;; + esac + ])]) + case "$gl_cv_func_setenv_works" in + *yes) ;; + *) + REPLACE_SETENV=1 + ;; + esac + fi +]) + +# Like gl_FUNC_SETENV, except prepare for separate compilation +# (no REPLACE_SETENV, no AC_LIBOBJ). +AC_DEFUN([gl_FUNC_SETENV_SEPARATE], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([setenv]) + if test $ac_cv_have_decl_setenv = no; then + HAVE_DECL_SETENV=0 + fi + AC_CHECK_FUNCS_ONCE([setenv]) + gl_PREREQ_SETENV +]) + +AC_DEFUN([gl_FUNC_UNSETENV], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CHECK_DECLS_ONCE([unsetenv]) + if test $ac_cv_have_decl_unsetenv = no; then + HAVE_DECL_UNSETENV=0 + fi + AC_CHECK_FUNCS([unsetenv]) + if test $ac_cv_func_unsetenv = no; then + HAVE_UNSETENV=0 + else + HAVE_UNSETENV=1 + dnl Some BSDs return void, failing to do error checking. + AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#undef _BSD +#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ +#include +extern +#ifdef __cplusplus +"C" +#endif +int unsetenv (const char *name); + ]], + [[]])], + [gt_cv_func_unsetenv_ret='int'], + [gt_cv_func_unsetenv_ret='void'])]) + if test $gt_cv_func_unsetenv_ret = 'void'; then + AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void + instead of int.]) + REPLACE_UNSETENV=1 + fi + + dnl Solaris 10 unsetenv does not remove all copies of a name. + dnl Haiku alpha 2 unsetenv gets confused by assignment to environ. + dnl OpenBSD 4.7 unsetenv("") does not fail. + AC_CACHE_CHECK([whether unsetenv obeys POSIX], + [gl_cv_func_unsetenv_works], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([[ + #include + #include + extern char **environ; + ]GL_MDA_DEFINES], + [[ + char entry1[] = "a=1"; + char entry2[] = "b=2"; + char *env[] = { entry1, entry2, NULL }; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry2)) return 2; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + if (!unsetenv ("") || errno != EINVAL) return 4; + entry2[0] = 'b'; + environ = env; + if (!getenv ("a")) return 5; + entry2[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 6; + ]])], + [gl_cv_func_unsetenv_works=yes], + [gl_cv_func_unsetenv_works=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_unsetenv_works="$gl_cross_guess_normal" ;; + esac + ]) + ]) + case "$gl_cv_func_unsetenv_works" in + *yes) ;; + *) + REPLACE_UNSETENV=1 + ;; + esac + fi +]) + +# Prerequisites of lib/setenv.c. +AC_DEFUN([gl_PREREQ_SETENV], +[ + AC_REQUIRE([AC_FUNC_ALLOCA]) + AC_REQUIRE([gl_ENVIRON]) + AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_CHECK_HEADERS([search.h]) + AC_CHECK_FUNCS([tsearch]) +]) + +# Prerequisites of lib/unsetenv.c. +AC_DEFUN([gl_PREREQ_UNSETENV], +[ + AC_REQUIRE([gl_ENVIRON]) + AC_CHECK_HEADERS_ONCE([unistd.h]) +]) diff --git a/3rdPartner/libiconv/srcm4/signal_h.m4 b/3rdPartner/libiconv/srcm4/signal_h.m4 new file mode 100644 index 0000000..4c05c62 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/signal_h.m4 @@ -0,0 +1,100 @@ +# signal_h.m4 serial 22 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_SIGNAL_H], +[ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) + gl_NEXT_HEADERS([signal.h]) + +# AIX declares sig_atomic_t to already include volatile, and C89 compilers +# then choke on 'volatile sig_atomic_t'. C99 requires that it compile. + AC_CHECK_TYPE([volatile sig_atomic_t], [], + [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[ +#include + ]]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + AC_REQUIRE([AC_TYPE_UID_T]) + + dnl Persuade glibc to define sighandler_t. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[ +#include + ]]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include + ]], [pthread_sigmask sigaction + sigaddset sigdelset sigemptyset sigfillset sigismember + sigpending sigprocmask]) + + AC_REQUIRE([AC_C_RESTRICT]) +]) + +AC_DEFUN([gl_CHECK_TYPE_SIGSET_T], +[ + AC_CHECK_TYPES([sigset_t], + [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no], + [[ + #include + /* Mingw defines sigset_t not in , but in . */ + #include + ]]) + if test $gl_cv_type_sigset_t != yes; then + HAVE_SIGSET_T=0 + fi +]) + +# gl_SIGNAL_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_SIGNAL_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_SIGNAL_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_SIGNAL_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTHREAD_SIGMASK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAISE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNAL_H_SIGPIPE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGPROCMASK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGACTION]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_SIGNAL_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) +]) + +AC_DEFUN([gl_SIGNAL_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING]) + HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK]) + HAVE_RAISE=1; AC_SUBST([HAVE_RAISE]) + HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T]) + HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T]) + HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION]) + HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; + AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION]) + HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; + AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T]) + HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T]) + REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK]) + REPLACE_RAISE=0; AC_SUBST([REPLACE_RAISE]) +]) diff --git a/3rdPartner/libiconv/srcm4/signalblocking.m4 b/3rdPartner/libiconv/srcm4/signalblocking.m4 new file mode 100644 index 0000000..b586ef5 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/signalblocking.m4 @@ -0,0 +1,23 @@ +# signalblocking.m4 serial 17 +dnl Copyright (C) 2001-2002, 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Determine available signal blocking primitives. Three different APIs exist: +# 1) POSIX: sigemptyset, sigaddset, sigprocmask +# 2) SYSV: sighold, sigrelse +# 3) BSD: sigblock, sigsetmask +# For simplicity, here we check only for the POSIX signal blocking. +AC_DEFUN([gl_SIGNALBLOCKING], +[ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) + HAVE_POSIX_SIGNALBLOCKING=0 + if test "$gl_cv_type_sigset_t" = yes; then + AC_CHECK_FUNC([sigprocmask], [HAVE_POSIX_SIGNALBLOCKING=1]) + fi +]) + +# Prerequisites of lib/sigprocmask.c. +AC_DEFUN([gl_PREREQ_SIGPROCMASK], [:]) diff --git a/3rdPartner/libiconv/srcm4/sigpipe.m4 b/3rdPartner/libiconv/srcm4/sigpipe.m4 new file mode 100644 index 0000000..e052444 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/sigpipe.m4 @@ -0,0 +1,29 @@ +# sigpipe.m4 serial 3 +dnl Copyright (C) 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Tests whether SIGPIPE is provided by . +dnl Sets gl_cv_header_signal_h_SIGPIPE. +AC_DEFUN([gl_SIGNAL_SIGPIPE], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_SIGNAL_SIGPIPE_BODY]) +]) + +AC_DEFUN([gl_SIGNAL_SIGPIPE_BODY], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_CACHE_CHECK([for SIGPIPE], [gl_cv_header_signal_h_SIGPIPE], [ + AC_EGREP_CPP([booboo],[ +#include +#if !defined SIGPIPE +booboo +#endif + ], + [gl_cv_header_signal_h_SIGPIPE=no], + [gl_cv_header_signal_h_SIGPIPE=yes]) + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/ssize_t.m4 b/3rdPartner/libiconv/srcm4/ssize_t.m4 new file mode 100644 index 0000000..03b2b89 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/ssize_t.m4 @@ -0,0 +1,23 @@ +# ssize_t.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2001-2003, 2006, 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether ssize_t is defined. + +AC_DEFUN([gt_TYPE_SSIZE_T], +[ + AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[int x = sizeof (ssize_t *) + sizeof (ssize_t); + return !x;]])], + [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) + if test $gt_cv_ssize_t = no; then + AC_DEFINE([ssize_t], [int], + [Define as a signed type of the same size as size_t.]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/stat-time.m4 b/3rdPartner/libiconv/srcm4/stat-time.m4 new file mode 100644 index 0000000..342857d --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stat-time.m4 @@ -0,0 +1,83 @@ +# Checks for stat-related time functions. + +# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2022 Free Software +# Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# st_atim.tv_nsec - Linux, Solaris, Cygwin +# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE +# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE +# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) + +# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) +# st_birthtim - Cygwin 1.7.0+ + +AC_DEFUN([gl_STAT_TIME], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_HEADERS_ONCE([sys/time.h]) + + AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], + [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], + [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[ + #include + #include + #if HAVE_SYS_TIME_H + # include + #endif + #include + struct timespec ts; + struct stat st; + ]], + [[ + st.st_atim = ts; + ]])], + [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], + [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) + if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then + AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], + [Define to 1 if the type of the st_atim member of a struct stat is + struct timespec.]) + fi], + [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], + [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], + [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], + [#include + #include ])], + [#include + #include ])], + [#include + #include ])], + [#include + #include ]) +]) + +# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) +# and NTFS (Cygwin). +# There was a time when this field was named st_createtime (21 June +# 2002 to 16 July 2002) But that window is very small and applied only +# to development code, so systems still using that configuration are +# not supported. See revisions 1.10 and 1.11 of FreeBSD's +# src/sys/ufs/ufs/dinode.h. +# +AC_DEFUN([gl_STAT_BIRTHTIME], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_HEADERS_ONCE([sys/time.h]) + AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], + [#include + #include ])], + [#include + #include ])], + [#include + #include ]) +]) diff --git a/3rdPartner/libiconv/srcm4/stat.m4 b/3rdPartner/libiconv/srcm4/stat.m4 new file mode 100644 index 0000000..916eb88 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stat.m4 @@ -0,0 +1,85 @@ +# serial 18 + +# Copyright (C) 2009-2022 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STAT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([lstat]) + case "$host_os" in + mingw*) + dnl On this platform, the original stat() returns st_atime, st_mtime, + dnl st_ctime values that are affected by the time zone. + REPLACE_STAT=1 + ;; + *) + dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). + dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) + dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). + AC_CACHE_CHECK([whether stat handles trailing slashes on files], + [gl_cv_func_stat_file_slash], + [touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include +]], [[int result = 0; + struct stat st; + if (!stat ("conftest.tmp/", &st)) + result |= 1; +#if HAVE_LSTAT + if (!stat ("conftest.lnk/", &st)) + result |= 2; +#endif + return result; + ]])], + [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], + [case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_stat_file_slash="$gl_cross_guess_normal" ;; + esac + ]) + rm -f conftest.tmp conftest.lnk]) + case $gl_cv_func_stat_file_slash in + *no) + REPLACE_STAT=1 + AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs + help when passed a file name with a trailing slash]);; + esac + case $host_os in + dnl Solaris stat can return a negative tv_nsec. + solaris*) + REPLACE_FSTAT=1 ;; + esac + ;; + esac +]) + +# Prerequisites of lib/stat.c and lib/stat-w32.c. +AC_DEFUN([gl_PREREQ_STAT], [ + AC_REQUIRE([gl_SYS_STAT_H]) + AC_REQUIRE([gl_PREREQ_STAT_W32]) + : +]) + +# Prerequisites of lib/stat-w32.c. +AC_DEFUN([gl_PREREQ_STAT_W32], [ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_CHECK_HEADERS([sdkddkver.h]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/std-gnu11.m4 b/3rdPartner/libiconv/srcm4/std-gnu11.m4 new file mode 100644 index 0000000..5ca1860 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/std-gnu11.m4 @@ -0,0 +1,829 @@ +# Prefer GNU C11 and C++11 to earlier versions. -*- coding: utf-8 -*- + +# This implementation is taken from GNU Autoconf lib/autoconf/c.m4 +# commit 017d5ddd82854911f0119691d91ea8a1438824d6 +# dated Sun Apr 3 13:57:17 2016 -0700 +# This implementation will be obsolete once we can assume Autoconf 2.70 +# or later is installed everywhere a Gnulib program might be developed. + +m4_version_prereq([2.70], [], [ + + +# Copyright (C) 2001-2022 Free Software Foundation, Inc. + +# 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 3 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, see . + +# Written by David MacKenzie, with help from +# Akim Demaille, Paul Eggert, +# François Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, +# Roland McGrath, Noah Friedman, david d zuhn, and many others. + + +# AC_PROG_CC([COMPILER ...]) +# -------------------------- +# COMPILER ... is a space separated list of C compilers to search for. +# This just gives the user an opportunity to specify an alternative +# search list for the C compiler. +AC_DEFUN_ONCE([AC_PROG_CC], +[AC_LANG_PUSH(C)dnl +AC_ARG_VAR([CC], [C compiler command])dnl +AC_ARG_VAR([CFLAGS], [C compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +_AC_ARG_VAR_LIBS()dnl +_AC_ARG_VAR_CPPFLAGS()dnl +m4_ifval([$1], + [AC_CHECK_TOOLS(CC, [$1])], +[AC_CHECK_TOOL(CC, gcc) +if test -z "$CC"; then + dnl Here we want: + dnl AC_CHECK_TOOL(CC, cc) + dnl but without the check for a tool without the prefix. + dnl Until the check is removed from there, copy the code: + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(CC, [${ac_tool_prefix}cc], [${ac_tool_prefix}cc]) + fi +fi +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) +fi +if test -z "$CC"; then + AC_CHECK_TOOLS(CC, cl.exe) +fi +if test -z "$CC"; then + AC_CHECK_TOOL(CC, clang) +fi +]) + +test -z "$CC" && AC_MSG_FAILURE([no acceptable C compiler found in \$PATH]) + +# Provide some information about the compiler. +_AS_ECHO_LOG([checking for _AC_LANG compiler version]) +set X $ac_compile +ac_compiler=$[2] +for ac_option in --version -v -V -qversion -version; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done + +m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl +m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl +_AC_LANG_COMPILER_GNU +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +_AC_PROG_CC_G +dnl +dnl Set ac_prog_cc_stdc to the supported C version. +dnl Also set the documented variable ac_cv_prog_cc_stdc; +dnl its name was chosen when it was cached, but it is no longer cached. +_AC_PROG_CC_C11([ac_prog_cc_stdc=c11 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11], + [_AC_PROG_CC_C99([ac_prog_cc_stdc=c99 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99], + [_AC_PROG_CC_C89([ac_prog_cc_stdc=c89 + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89], + [ac_prog_cc_stdc=no + ac_cv_prog_cc_stdc=no])])]) +dnl +AC_LANG_POP(C)dnl +])# AC_PROG_CC + + + +# AC_PROG_CXX([LIST-OF-COMPILERS]) +# -------------------------------- +# LIST-OF-COMPILERS is a space separated list of C++ compilers to search +# for (if not specified, a default list is used). This just gives the +# user an opportunity to specify an alternative search list for the C++ +# compiler. +# aCC HP-UX C++ compiler much better than `CC', so test before. +# FCC Fujitsu C++ compiler +# KCC KAI C++ compiler +# RCC Rational C++ +# xlC_r AIX C Set++ (with support for reentrant code) +# xlC AIX C Set++ +AC_DEFUN([AC_PROG_CXX], +[AC_LANG_PUSH(C++)dnl +AC_ARG_VAR([CXX], [C++ compiler command])dnl +AC_ARG_VAR([CXXFLAGS], [C++ compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +_AC_ARG_VAR_LIBS()dnl +_AC_ARG_VAR_CPPFLAGS()dnl +_AC_ARG_VAR_PRECIOUS([CCC])dnl +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + AC_CHECK_TOOLS(CXX, + [m4_default([$1], + [g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++])], + g++) + fi +fi +# Provide some information about the compiler. +_AS_ECHO_LOG([checking for _AC_LANG compiler version]) +set X $ac_compile +ac_compiler=$[2] +for ac_option in --version -v -V -qversion; do + _AC_DO_LIMIT([$ac_compiler $ac_option >&AS_MESSAGE_LOG_FD]) +done + +m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl +m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl +_AC_LANG_COMPILER_GNU +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +_AC_PROG_CXX_G +_AC_PROG_CXX_CXX11([ac_prog_cxx_stdcxx=cxx11 + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_cv_prog_cxx_cxx98=$ac_cv_prog_cxx_cxx11], + [_AC_PROG_CXX_CXX98([ac_prog_cxx_stdcxx=cxx98 + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98], + [ac_prog_cxx_stdcxx=no + ac_cv_prog_cxx_stdcxx=no])]) +AC_LANG_POP(C++)dnl +])# AC_PROG_CXX + + +# _AC_C_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST, +# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE) +# -------------------------------------------------------------- +# Check whether the C compiler accepts features of STANDARD (e.g `c89', `c99') +# by trying to compile a program of TEST-PROLOGUE and TEST-BODY. If this fails, +# try again with each compiler option in the space-separated OPTION-LIST; if one +# helps, append it to CC. If eventually successful, run ACTION-IF-AVAILABLE, +# else ACTION-IF-UNAVAILABLE. +AC_DEFUN([_AC_C_STD_TRY], +[AC_MSG_CHECKING([for $CC option to enable ]m4_translit($1, [c], [C])[ features]) +AC_CACHE_VAL(ac_cv_prog_cc_$1, +[ac_cv_prog_cc_$1=no +ac_save_CC=$CC +AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])]) +for ac_arg in '' $4 +do + CC="$ac_save_CC $ac_arg" + _AC_COMPILE_IFELSE([], [ac_cv_prog_cc_$1=$ac_arg]) + test "x$ac_cv_prog_cc_$1" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +])# AC_CACHE_VAL +ac_prog_cc_stdc_options= +case "x$ac_cv_prog_cc_$1" in + x) + AC_MSG_RESULT([none needed]) ;; + xno) + AC_MSG_RESULT([unsupported]) ;; + *) + ac_prog_cc_stdc_options=" $ac_cv_prog_cc_$1" + CC=$CC$ac_prog_cc_stdc_options + AC_MSG_RESULT([$ac_cv_prog_cc_$1]) ;; +esac +AS_IF([test "x$ac_cv_prog_cc_$1" != xno], [$5], [$6]) +])# _AC_C_STD_TRY + +# _AC_C_C99_TEST_HEADER +# --------------------- +# A C header suitable for testing for C99. +AC_DEFUN([_AC_C_C99_TEST_HEADER], +[[#include +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +}]])# _AC_C_C99_TEST_HEADER + +# _AC_C_C99_TEST_BODY +# ------------------- +# A C body suitable for testing for C99, assuming the corresponding header. +AC_DEFUN([_AC_C_C99_TEST_BODY], +[[ + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); +]]) + +# _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) +# ---------------------------------------------------------------- +# If the C compiler is not in ISO C99 mode by default, try to add an +# option to output variable CC to make it so. This macro tries +# various options that select ISO C99 on some system or another. It +# considers the compiler to be in ISO C99 mode if it handles _Bool, +# // comments, flexible array members, inline, long long int, mixed +# code and declarations, named initialization of structs, restrict, +# va_copy, varargs macros, variable declarations in for loops and +# variable length arrays. +AC_DEFUN([_AC_PROG_CC_C99], +[_AC_C_STD_TRY([c99], +[_AC_C_C99_TEST_HEADER], +[_AC_C_C99_TEST_BODY], +dnl Try +dnl GCC -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999) +dnl IBM XL C -qlanglvl=extc1x (V12.1; does not pass C11 test) +dnl IBM XL C -qlanglvl=extc99 +dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdc99) +dnl HP cc -AC99 +dnl Intel ICC -std=c99, -c99 (deprecated) +dnl IRIX -c99 +dnl Solaris -D_STDC_C99= +dnl cc's -xc99 option uses linker magic to define the external +dnl symbol __xpg4 as if by "int __xpg4 = 1;", which enables C99 +dnl behavior for C library functions. This is not wanted here, +dnl because it means that a single module compiled with -xc99 +dnl alters C runtime behavior for the entire program, not for +dnl just the module. Instead, define the (private) symbol +dnl _STDC_C99, which suppresses a bogus failure in . +dnl The resulting compiler passes the test case here, and that's +dnl good enough. For more, please see the thread starting at: +dnl https://lists.gnu.org/r/autoconf/2010-12/msg00059.html +dnl Tru64 -c99 +dnl with extended modes being tried first. +[[-std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99]], [$1], [$2])[]dnl +])# _AC_PROG_CC_C99 + + +# _AC_PROG_CC_C11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) +# ---------------------------------------------------------------- +# If the C compiler is not in ISO C11 mode by default, try to add an +# option to output variable CC to make it so. This macro tries +# various options that select ISO C11 on some system or another. It +# considers the compiler to be in ISO C11 mode if it handles _Alignas, +# _Alignof, _Noreturn, _Static_assert, UTF-8 string literals, +# duplicate typedefs, and anonymous structures and unions. +AC_DEFUN([_AC_PROG_CC_C11], +[_AC_C_STD_TRY([c11], +[_AC_C_C99_TEST_HEADER[ +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +]], +[_AC_C_C99_TEST_BODY[ + v1.i = 2; + v1.w.k = 5; + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); +]], +dnl Try +dnl GCC -std=gnu11 (unused restrictive mode: -std=c11) +dnl with extended modes being tried first. +dnl +dnl Do not try -qlanglvl=extc1x, because IBM XL C V12.1 (the latest version as +dnl of September 2012) does not pass the C11 test. For now, try extc1x when +dnl compiling the C99 test instead, since it enables _Static_assert and +dnl _Noreturn, which is a win. If -qlanglvl=extc11 or -qlanglvl=extc1x passes +dnl the C11 test in some future version of IBM XL C, we'll add it here, +dnl preferably extc11. +[[-std=gnu11]], [$1], [$2])[]dnl +])# _AC_PROG_CC_C11 + + +# AC_PROG_CC_C89 +# -------------- +# Do not use AU_ALIAS here and in AC_PROG_CC_C99 and AC_PROG_CC_STDC, +# as that'd be incompatible with how Automake redefines AC_PROG_CC. See +# . +AU_DEFUN([AC_PROG_CC_C89], + [AC_REQUIRE([AC_PROG_CC])], + [$0 is obsolete; use AC_PROG_CC] +) + +# AC_PROG_CC_C99 +# -------------- +AU_DEFUN([AC_PROG_CC_C99], + [AC_REQUIRE([AC_PROG_CC])], + [$0 is obsolete; use AC_PROG_CC] +) + +# AC_PROG_CC_STDC +# --------------- +AU_DEFUN([AC_PROG_CC_STDC], + [AC_REQUIRE([AC_PROG_CC])], + [$0 is obsolete; use AC_PROG_CC] +) + + +# AC_C_PROTOTYPES +# --------------- +# Check if the C compiler supports prototypes, included if it needs +# options. +AC_DEFUN([AC_C_PROTOTYPES], +[AC_REQUIRE([AC_PROG_CC])dnl +if test "$ac_prog_cc_stdc" != no; then + AC_DEFINE(PROTOTYPES, 1, + [Define to 1 if the C compiler supports function prototypes.]) + AC_DEFINE(__PROTOTYPES, 1, + [Define like PROTOTYPES; this can be used by system headers.]) +fi +])# AC_C_PROTOTYPES + + +# _AC_CXX_STD_TRY(STANDARD, TEST-PROLOGUE, TEST-BODY, OPTION-LIST, +# ACTION-IF-AVAILABLE, ACTION-IF-UNAVAILABLE) +# ---------------------------------------------------------------- +# Check whether the C++ compiler accepts features of STANDARD (e.g +# `cxx98', `cxx11') by trying to compile a program of TEST-PROLOGUE +# and TEST-BODY. If this fails, try again with each compiler option +# in the space-separated OPTION-LIST; if one helps, append it to CXX. +# If eventually successful, run ACTION-IF-AVAILABLE, else +# ACTION-IF-UNAVAILABLE. +AC_DEFUN([_AC_CXX_STD_TRY], +[AC_MSG_CHECKING([for $CXX option to enable ]m4_translit(m4_translit($1, [x], [+]), [a-z], [A-Z])[ features]) +AC_LANG_PUSH(C++)dnl +AC_CACHE_VAL(ac_cv_prog_cxx_$1, +[ac_cv_prog_cxx_$1=no +ac_save_CXX=$CXX +AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])]) +for ac_arg in '' $4 +do + CXX="$ac_save_CXX $ac_arg" + _AC_COMPILE_IFELSE([], [ac_cv_prog_cxx_$1=$ac_arg]) + test "x$ac_cv_prog_cxx_$1" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +])# AC_CACHE_VAL +ac_prog_cxx_stdcxx_options= +case "x$ac_cv_prog_cxx_$1" in + x) + AC_MSG_RESULT([none needed]) ;; + xno) + AC_MSG_RESULT([unsupported]) ;; + *) + ac_prog_cxx_stdcxx_options=" $ac_cv_prog_cxx_$1" + CXX=$CXX$ac_prog_cxx_stdcxx_options + AC_MSG_RESULT([$ac_cv_prog_cxx_$1]) ;; +esac +AC_LANG_POP(C++)dnl +AS_IF([test "x$ac_cv_prog_cxx_$1" != xno], [$5], [$6]) +])# _AC_CXX_STD_TRY + +# _AC_CXX_CXX98_TEST_HEADER +# ------------------------- +# A C++ header suitable for testing for CXX98. +AC_DEFUN([_AC_CXX_CXX98_TEST_HEADER], +[[ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace test { + typedef std::vector string_vec; + typedef std::pair map_value; + typedef std::map map_type; + typedef std::set set_type; + + template + class printer { + public: + printer(std::ostringstream& os): os(os) {} + void operator() (T elem) { os << elem << std::endl; } + private: + std::ostringstream& os; + }; +} +]])# _AC_CXX_CXX98_TEST_HEADER + +# _AC_CXX_CXX98_TEST_BODY +# ----------------------- +# A C++ body suitable for testing for CXX98, assuming the corresponding header. +AC_DEFUN([_AC_CXX_CXX98_TEST_BODY], +[[ + +try { + // Basic string. + std::string teststr("ASCII text"); + teststr += " string"; + + // Simple vector. + test::string_vec testvec; + testvec.push_back(teststr); + testvec.push_back("foo"); + testvec.push_back("bar"); + if (testvec.size() != 3) { + throw std::runtime_error("vector size is not 1"); + } + + // Dump vector into stringstream and obtain string. + std::ostringstream os; + for (test::string_vec::const_iterator i = testvec.begin(); + i != testvec.end(); ++i) { + if (i + 1 != testvec.end()) { + os << teststr << '\n'; + } + } + // Check algorithms work. + std::for_each(testvec.begin(), testvec.end(), test::printer(os)); + std::string os_out = os.str(); + + // Test pair and map. + test::map_type testmap; + testmap.insert(std::make_pair(std::string("key"), + std::make_pair(53,false))); + + // Test set. + int values[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + test::set_type testset(values, values + sizeof(values)/sizeof(values[0])); + std::list testlist(testset.begin(), testset.end()); + std::copy(testset.begin(), testset.end(), std::back_inserter(testlist)); +} catch (const std::exception& e) { + std::cerr << "Caught exception: " << e.what() << std::endl; + + // Test fstream + std::ofstream of("test.txt"); + of << "Test ASCII text\n" << std::flush; + of << "N= " << std::hex << std::setw(8) << std::left << 534 << std::endl; + of.close(); +} +std::exit(0); +]]) + +# _AC_CXX_CXX11_TEST_HEADER +# ------------------------- +# A C++ header suitable for testing for CXX11. +AC_DEFUN([_AC_CXX_CXX11_TEST_HEADER], +[[ +#include +#include +#include +#include +#include +#include +#include + +namespace cxx11test +{ + typedef std::shared_ptr sptr; + typedef std::weak_ptr wptr; + + typedef std::tuple tp; + typedef std::array int_array; + + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; +} +]])# _AC_CXX_CXX11_TEST_HEADER + +# _AC_CXX_CXX11_TEST_BODY +# ----------------------- +# A C++ body suitable for testing for CXX11, assuming the corresponding header. +AC_DEFUN([_AC_CXX_CXX11_TEST_BODY], +[[ +{ + // Test auto and decltype + std::deque d; + d.push_front(43); + d.push_front(484); + d.push_front(3); + d.push_front(844); + int total = 0; + for (auto i = d.begin(); i != d.end(); ++i) { total += *i; } + + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for and lambda + cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (int &x : array) { x += 23; } + std::for_each(array.begin(), array.end(), [](int v1){ std::cout << v1; }); +} +{ + using cxx11test::sptr; + using cxx11test::wptr; + + sptr sp(new std::string("ASCII string")); + wptr wp(sp); + sptr sp2(wp); +} +{ + cxx11test::tp tuple("test", 54, 45.53434); + double d = std::get<2>(tuple); + std::string s; + int i; + std::tie(s,i,d) = tuple; +} +{ + static std::regex filename_regex("^_?([a-z0-9_.]+-)+[a-z0-9]+$"); + std::string testmatch("Test if this string matches"); + bool match = std::regex_search(testmatch, filename_regex); +} +{ + cxx11test::int_array array = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + cxx11test::int_array::size_type size = array.size(); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + std::vector> v1; +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +]]) + +# _AC_PROG_CXX_CXX98 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) +# ------------------------------------------------------------------- + +# If the C++ compiler is not in ISO C++98 mode by default, try to add +# an option to output variable CXX to make it so. This macro tries +# various options that select ISO C++98 on some system or another. It +# considers the compiler to be in ISO C++98 mode if it handles basic +# features of the std namespace including: string, containers (list, +# map, set, vector), streams (fstreams, iostreams, stringstreams, +# iomanip), pair, exceptions and algorithms. + + +AC_DEFUN([_AC_PROG_CXX_CXX98], +[_AC_CXX_STD_TRY([cxx98], +[_AC_CXX_CXX98_TEST_HEADER], +[_AC_CXX_CXX98_TEST_BODY], +dnl Try +dnl GCC -std=gnu++98 (unused restrictive mode: -std=c++98) +dnl IBM XL C -qlanglvl=extended +dnl HP aC++ -AA +dnl Intel ICC -std=gnu++98 +dnl Solaris N/A (default) +dnl Tru64 N/A (default, but -std gnu could be used) +dnl with extended modes being tried first. +[[-std=gnu++98 -std=c++98 -qlanglvl=extended -AA]], [$1], [$2])[]dnl +])# _AC_PROG_CXX_CXX98 + +# _AC_PROG_CXX_CXX11 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE]) +# ------------------------------------------------------------------- +# If the C++ compiler is not in ISO CXX11 mode by default, try to add +# an option to output variable CXX to make it so. This macro tries +# various options that select ISO C++11 on some system or another. It +# considers the compiler to be in ISO C++11 mode if it handles all the +# tests from the C++98 checks, plus the following: Language features +# (auto, constexpr, decltype, default/deleted constructors, delegate +# constructors, final, initializer lists, lambda functions, nullptr, +# override, range-based for loops, template brackets without spaces, +# unicode literals) and library features (array, memory (shared_ptr, +# weak_ptr), regex and tuple types). +AC_DEFUN([_AC_PROG_CXX_CXX11], +[_AC_CXX_STD_TRY([cxx11], +[_AC_CXX_CXX11_TEST_HEADER +_AC_CXX_CXX98_TEST_HEADER], +[_AC_CXX_CXX11_TEST_BODY +_AC_CXX_CXX98_TEST_BODY], +dnl Try +dnl GCC -std=gnu++11 (unused restrictive mode: -std=c++11) [and 0x variants] +dnl IBM XL C -qlanglvl=extended0x +dnl (pre-V12.1; unused restrictive mode: -qlanglvl=stdcxx11) +dnl HP aC++ -AA +dnl Intel ICC -std=c++11 -std=c++0x +dnl Solaris N/A (no support) +dnl Tru64 N/A (no support) +dnl with extended modes being tried first. +[[-std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x -qlanglvl=extended0x -AA]], [$1], [$2])[]dnl +])# _AC_PROG_CXX_CXX11 + + +])# m4_version_prereq diff --git a/3rdPartner/libiconv/srcm4/stdalign.m4 b/3rdPartner/libiconv/srcm4/stdalign.m4 new file mode 100644 index 0000000..78577cb --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stdalign.m4 @@ -0,0 +1,56 @@ +# Check for stdalign.h that conforms to C11. + +dnl Copyright 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prepare for substituting if it is not supported. + +AC_DEFUN([gl_STDALIGN_H], +[ + AC_CACHE_CHECK([for working stdalign.h], + [gl_cv_header_working_stdalign_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + #include + + /* Test that alignof yields a result consistent with offsetof. + This catches GCC bug 52023 + . */ + #ifdef __cplusplus + template struct alignof_helper { char a; t b; }; + # define ao(type) offsetof (alignof_helper, b) + #else + # define ao(type) offsetof (struct { char a; type b; }, b) + #endif + char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; + char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; + char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; + + /* Test _Alignas only on platforms where gnulib can help. */ + #if \ + ((defined __cplusplus && 201103 <= __cplusplus) \ + || (__TINYC__ && defined __attribute__) \ + || (defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ + || 1300 <= _MSC_VER) + struct alignas_test { char c; char alignas (8) alignas_8; }; + char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 + ? 1 : -1]; + #endif + ]])], + [gl_cv_header_working_stdalign_h=yes], + [gl_cv_header_working_stdalign_h=no])]) + + if test $gl_cv_header_working_stdalign_h = yes; then + GL_GENERATE_STDALIGN_H=false + else + GL_GENERATE_STDALIGN_H=true + fi +]) diff --git a/3rdPartner/libiconv/srcm4/stdbool.m4 b/3rdPartner/libiconv/srcm4/stdbool.m4 new file mode 100644 index 0000000..3e6c400 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stdbool.m4 @@ -0,0 +1,117 @@ +# Check for stdbool.h that conforms to C99. + +dnl Copyright (C) 2002-2006, 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +#serial 9 + +# Prepare for substituting if it is not supported. + +AC_DEFUN([gl_STDBOOL_H], +[ + AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) + AC_REQUIRE([AC_CANONICAL_HOST]) + + dnl On some platforms, does not exist or does not conform to C99. + dnl On Solaris 10 with CC=cc CXX=CC, exists but is not usable + dnl in C++ mode (and no exists). In this case, we use our + dnl replacement, also in C mode (for binary compatibility between C and C++). + if test "$ac_cv_header_stdbool_h" = yes; then + case "$host_os" in + solaris*) + if test -z "$GCC"; then + GL_GENERATE_STDBOOL_H=true + else + GL_GENERATE_STDBOOL_H=false + fi + ;; + *) + GL_GENERATE_STDBOOL_H=false + ;; + esac + else + GL_GENERATE_STDBOOL_H=true + fi + + if test "$ac_cv_type__Bool" = yes; then + HAVE__BOOL=1 + else + HAVE__BOOL=0 + fi + AC_SUBST([HAVE__BOOL]) +]) + +# This version of the macro is needed in autoconf <= 2.68. + +AC_DEFUN([AC_CHECK_HEADER_STDBOOL], + [AC_CACHE_CHECK([for stdbool.h that conforms to C99], + [ac_cv_header_stdbool_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + #include + + #ifdef __cplusplus + typedef bool Bool; + #else + typedef _Bool Bool; + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #endif + + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html + */ + Bool q = true; + Bool *pq = &q; + bool *qq = &q; + ]], + [[ + bool e = &s; + *pq |= q; *pq |= ! q; + *qq |= q; *qq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq + !qq); + ]])], + [ac_cv_header_stdbool_h=yes], + [ac_cv_header_stdbool_h=no])]) + AC_CHECK_TYPES([_Bool]) +]) diff --git a/3rdPartner/libiconv/srcm4/stddef_h.m4 b/3rdPartner/libiconv/srcm4/stddef_h.m4 new file mode 100644 index 0000000..abfd203 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stddef_h.m4 @@ -0,0 +1,97 @@ +# stddef_h.m4 serial 12 +dnl Copyright (C) 2009-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl A placeholder for , for platforms that have issues. + +AC_DEFUN_ONCE([gl_STDDEF_H], +[ + AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) + + dnl Persuade OpenBSD to declare max_align_t. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + GL_GENERATE_STDDEF_H=false + + dnl Test whether the type max_align_t exists and whether its alignment + dnl "is as great as is supported by the implementation in all contexts". + AC_CACHE_CHECK([for good max_align_t], + [gl_cv_type_max_align_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + typedef struct { char a; max_align_t b; } max_helper; + typedef struct { char a; long b; } long_helper; + typedef struct { char a; double b; } double_helper; + typedef struct { char a; long double b; } long_double_helper; + int check3[2 * (offsetof (long_helper, b) <= offsetof (max_helper, b)) - 1]; + int check4[2 * (offsetof (double_helper, b) <= offsetof (max_helper, b)) - 1]; + int check5[2 * (offsetof (long_double_helper, b) <= offsetof (max_helper, b)) - 1]; + ]])], + [gl_cv_type_max_align_t=yes], + [gl_cv_type_max_align_t=no]) + ]) + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + GL_GENERATE_STDDEF_H=true + fi + + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + GL_GENERATE_STDDEF_H=true + fi + + AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], + [gl_cv_decl_null_works], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include + int test[2 * (sizeof NULL == sizeof (void *)) -1]; +]])], + [gl_cv_decl_null_works=yes], + [gl_cv_decl_null_works=no])]) + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + GL_GENERATE_STDDEF_H=true + fi + + if $GL_GENERATE_STDDEF_H; then + gl_NEXT_HEADERS([stddef.h]) + fi +]) + +# gl_STDDEF_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_STDDEF_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [ + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) +]) + +AC_DEFUN([gl_STDDEF_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) + HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) + HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) +]) diff --git a/3rdPartner/libiconv/srcm4/stdint.m4 b/3rdPartner/libiconv/srcm4/stdint.m4 new file mode 100644 index 0000000..c3f0894 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stdint.m4 @@ -0,0 +1,531 @@ +# stdint.m4 serial 61 +dnl Copyright (C) 2001-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert and Bruno Haible. +dnl Test whether is supported or must be substituted. + +AC_PREREQ([2.61]) + +AC_DEFUN_ONCE([gl_STDINT_H], +[ + AC_PREREQ([2.59])dnl + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + AC_REQUIRE([gl_LIMITS_H]) + AC_REQUIRE([gt_TYPE_WINT_T]) + + dnl For backward compatibility. Some packages may still be testing these + dnl macros. + AC_DEFINE([HAVE_LONG_LONG_INT], [1], + [Define to 1 if the system has the type 'long long int'.]) + AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], + [Define to 1 if the system has the type 'unsigned long long int'.]) + + dnl Check for , in the same way as gl_WCHAR_H does. + AC_CHECK_HEADERS_ONCE([wchar.h]) + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + AC_SUBST([HAVE_WCHAR_H]) + + dnl Check for . + AC_CHECK_HEADERS_ONCE([inttypes.h]) + if test $ac_cv_header_inttypes_h = yes; then + HAVE_INTTYPES_H=1 + else + HAVE_INTTYPES_H=0 + fi + AC_SUBST([HAVE_INTTYPES_H]) + + dnl Check for . + AC_CHECK_HEADERS_ONCE([sys/types.h]) + if test $ac_cv_header_sys_types_h = yes; then + HAVE_SYS_TYPES_H=1 + else + HAVE_SYS_TYPES_H=0 + fi + AC_SUBST([HAVE_SYS_TYPES_H]) + + gl_CHECK_NEXT_HEADERS([stdint.h]) + if test $ac_cv_header_stdint_h = yes; then + HAVE_STDINT_H=1 + else + HAVE_STDINT_H=0 + fi + AC_SUBST([HAVE_STDINT_H]) + + dnl Now see whether we need a substitute . + if test $ac_cv_header_stdint_h = yes; then + AC_CACHE_CHECK([whether stdint.h conforms to C99], + [gl_cv_header_working_stdint_h], + [gl_cv_header_working_stdint_h=no + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include +/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ +#if !(defined WCHAR_MIN && defined WCHAR_MAX) +#error "WCHAR_MIN, WCHAR_MAX not defined in " +#endif +] +gl_STDINT_INCLUDES +[ +#ifdef INT8_MAX +int8_t a1 = INT8_MAX; +int8_t a1min = INT8_MIN; +#endif +#ifdef INT16_MAX +int16_t a2 = INT16_MAX; +int16_t a2min = INT16_MIN; +#endif +#ifdef INT32_MAX +int32_t a3 = INT32_MAX; +int32_t a3min = INT32_MIN; +#endif +#ifdef INT64_MAX +int64_t a4 = INT64_MAX; +int64_t a4min = INT64_MIN; +#endif +#ifdef UINT8_MAX +uint8_t b1 = UINT8_MAX; +#else +typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; +#endif +#ifdef UINT16_MAX +uint16_t b2 = UINT16_MAX; +#endif +#ifdef UINT32_MAX +uint32_t b3 = UINT32_MAX; +#endif +#ifdef UINT64_MAX +uint64_t b4 = UINT64_MAX; +#endif +int_least8_t c1 = INT8_C (0x7f); +int_least8_t c1max = INT_LEAST8_MAX; +int_least8_t c1min = INT_LEAST8_MIN; +int_least16_t c2 = INT16_C (0x7fff); +int_least16_t c2max = INT_LEAST16_MAX; +int_least16_t c2min = INT_LEAST16_MIN; +int_least32_t c3 = INT32_C (0x7fffffff); +int_least32_t c3max = INT_LEAST32_MAX; +int_least32_t c3min = INT_LEAST32_MIN; +int_least64_t c4 = INT64_C (0x7fffffffffffffff); +int_least64_t c4max = INT_LEAST64_MAX; +int_least64_t c4min = INT_LEAST64_MIN; +uint_least8_t d1 = UINT8_C (0xff); +uint_least8_t d1max = UINT_LEAST8_MAX; +uint_least16_t d2 = UINT16_C (0xffff); +uint_least16_t d2max = UINT_LEAST16_MAX; +uint_least32_t d3 = UINT32_C (0xffffffff); +uint_least32_t d3max = UINT_LEAST32_MAX; +uint_least64_t d4 = UINT64_C (0xffffffffffffffff); +uint_least64_t d4max = UINT_LEAST64_MAX; +int_fast8_t e1 = INT_FAST8_MAX; +int_fast8_t e1min = INT_FAST8_MIN; +int_fast16_t e2 = INT_FAST16_MAX; +int_fast16_t e2min = INT_FAST16_MIN; +int_fast32_t e3 = INT_FAST32_MAX; +int_fast32_t e3min = INT_FAST32_MIN; +int_fast64_t e4 = INT_FAST64_MAX; +int_fast64_t e4min = INT_FAST64_MIN; +uint_fast8_t f1 = UINT_FAST8_MAX; +uint_fast16_t f2 = UINT_FAST16_MAX; +uint_fast32_t f3 = UINT_FAST32_MAX; +uint_fast64_t f4 = UINT_FAST64_MAX; +#ifdef INTPTR_MAX +intptr_t g = INTPTR_MAX; +intptr_t gmin = INTPTR_MIN; +#endif +#ifdef UINTPTR_MAX +uintptr_t h = UINTPTR_MAX; +#endif +intmax_t i = INTMAX_MAX; +uintmax_t j = UINTMAX_MAX; + +/* Check that SIZE_MAX has the correct type, if possible. */ +#if 201112 <= __STDC_VERSION__ +int k = _Generic (SIZE_MAX, size_t: 0); +#elif (2 <= __GNUC__ || 4 <= __clang_major__ || defined __IBM__TYPEOF__ \ + || (0x5110 <= __SUNPRO_C && !__STDC__)) +extern size_t k; +extern __typeof__ (SIZE_MAX) k; +#endif + +#include /* for CHAR_BIT */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 \ + ? (t) -1 \ + : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) +struct s { + int check_PTRDIFF: + PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) + && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) + ? 1 : -1; + /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64. */ + int check_SIG_ATOMIC: + SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) + && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) + ? 1 : -1; + int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; + int check_WCHAR: + WCHAR_MIN == TYPE_MINIMUM (wchar_t) + && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) + ? 1 : -1; + /* Detect bug in mingw. */ + int check_WINT: + WINT_MIN == TYPE_MINIMUM (wint_t) + && WINT_MAX == TYPE_MAXIMUM (wint_t) + ? 1 : -1; + + /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ + int check_UINT8_C: + (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; + int check_UINT16_C: + (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; + + /* Detect bugs in OpenBSD 3.9 stdint.h. */ +#ifdef UINT8_MAX + int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; +#endif +#ifdef UINT16_MAX + int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; +#endif +#ifdef UINT32_MAX + int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; +#endif +#ifdef UINT64_MAX + int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; +#endif + int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; + int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; + int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; + int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; + int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; + int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; + int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; + int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; + int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; + int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; + int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; +}; + ]])], + [dnl Determine whether the various *_MIN, *_MAX macros are usable + dnl in preprocessor expression. We could do it by compiling a test + dnl program for each of these macros. It is faster to run a program + dnl that inspects the macro expansion. + dnl This detects a bug on HP-UX 11.23/ia64. + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#include +] +gl_STDINT_INCLUDES +[ +#include +#include +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; +]], [[ + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return mv - macro_values + 1; + } + return 0; +]])], + [gl_cv_header_working_stdint_h=yes], + [], + [case "$host_os" in + # Guess yes on native Windows. + mingw*) gl_cv_header_working_stdint_h="guessing yes" ;; + # In general, assume it works. + *) gl_cv_header_working_stdint_h="guessing yes" ;; + esac + ]) + ]) + ]) + fi + + HAVE_C99_STDINT_H=0 + HAVE_SYS_BITYPES_H=0 + HAVE_SYS_INTTYPES_H=0 + GL_GENERATE_STDINT_H=true + case "$gl_cv_header_working_stdint_h" in + *yes) + HAVE_C99_STDINT_H=1 + dnl Now see whether the system works without + dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. + dnl If not, there would be problems when stdint.h is included from C++. + AC_CACHE_CHECK([whether stdint.h works without ISO C predefines], + [gl_cv_header_stdint_without_STDC_macros], + [gl_cv_header_stdint_without_STDC_macros=no + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include +] +gl_STDINT_INCLUDES +[ +intmax_t im = INTMAX_MAX; +int32_t i32 = INT32_C (0x7fffffff); + ]])], + [gl_cv_header_stdint_without_STDC_macros=yes]) + ]) + + if test $gl_cv_header_stdint_without_STDC_macros = no; then + AC_DEFINE([__STDC_CONSTANT_MACROS], [1], + [Define to 1 if the system predates C++11.]) + AC_DEFINE([__STDC_LIMIT_MACROS], [1], + [Define to 1 if the system predates C++11.]) + fi + AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.], + [gl_cv_header_stdint_width], + [gl_cv_header_stdint_width=no + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 + #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include + ]gl_STDINT_INCLUDES[ + int iw = UINTMAX_WIDTH; + ]])], + [gl_cv_header_stdint_width=yes])]) + if test "$gl_cv_header_stdint_width" = yes; then + GL_GENERATE_STDINT_H=false + fi + ;; + *) + dnl Check for , and for + dnl (used in Linux libc4 >= 4.6.7 and libc5). + AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) + if test $ac_cv_header_sys_inttypes_h = yes; then + HAVE_SYS_INTTYPES_H=1 + fi + if test $ac_cv_header_sys_bitypes_h = yes; then + HAVE_SYS_BITYPES_H=1 + fi + gl_STDINT_TYPE_PROPERTIES + ;; + esac + + dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. + gl_REPLACE_LIMITS_H + + AC_SUBST([HAVE_C99_STDINT_H]) + AC_SUBST([HAVE_SYS_BITYPES_H]) + AC_SUBST([HAVE_SYS_INTTYPES_H]) +]) + +dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) +dnl Determine the size of each of the given types in bits. +AC_DEFUN([gl_STDINT_BITSIZEOF], +[ + dnl Use a shell loop, to avoid bloating configure, and + dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into + dnl config.h.in, + dnl - extra AC_SUBST calls, so that the right substitutions are made. + m4_foreach_w([gltype], [$1], + [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), + [Define to the number of bits in type ']gltype['.])]) + for gltype in $1 ; do + AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], + [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], + [$2 +#include ], [result=unknown]) + eval gl_cv_bitsizeof_${gltype}=\$result + ]) + eval result=\$gl_cv_bitsizeof_${gltype} + if test $result = unknown; then + dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, + dnl do a syntax check even on unused #if conditions and give an error + dnl on valid C code like this: + dnl #if 0 + dnl # if > 32 + dnl # endif + dnl #endif + result=0 + fi + GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) + eval BITSIZEOF_${GLTYPE}=\$result + done + m4_foreach_w([gltype], [$1], + [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) +]) + +dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) +dnl Determine the signedness of each of the given types. +dnl Define HAVE_SIGNED_TYPE if type is signed. +AC_DEFUN([gl_CHECK_TYPES_SIGNED], +[ + dnl Use a shell loop, to avoid bloating configure, and + dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into + dnl config.h.in, + dnl - extra AC_SUBST calls, so that the right substitutions are made. + m4_foreach_w([gltype], [$1], + [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), + [Define to 1 if ']gltype[' is a signed integer type.])]) + for gltype in $1 ; do + AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([$2[ + int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], + result=yes, result=no) + eval gl_cv_type_${gltype}_signed=\$result + ]) + eval result=\$gl_cv_type_${gltype}_signed + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + if test "$result" = yes; then + AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) + eval HAVE_SIGNED_${GLTYPE}=1 + else + eval HAVE_SIGNED_${GLTYPE}=0 + fi + done + m4_foreach_w([gltype], [$1], + [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) +]) + +dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) +dnl Determine the suffix to use for integer constants of the given types. +dnl Define t_SUFFIX for each such type. +AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], +[ + dnl Use a shell loop, to avoid bloating configure, and + dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into + dnl config.h.in, + dnl - extra AC_SUBST calls, so that the right substitutions are made. + m4_foreach_w([gltype], [$1], + [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], + [Define to l, ll, u, ul, ull, etc., as suitable for + constants of type ']gltype['.])]) + for gltype in $1 ; do + AC_CACHE_CHECK([for $gltype integer literal suffix], + [gl_cv_type_${gltype}_suffix], + [eval gl_cv_type_${gltype}_suffix=no + eval result=\$gl_cv_type_${gltype}_signed + if test "$result" = yes; then + glsufu= + else + glsufu=u + fi + for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do + case $glsuf in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; + ui64)gltype1='unsigned __int64';; + esac + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([$2[ + extern $gltype foo; + extern $gltype1 foo;]])], + [eval gl_cv_type_${gltype}_suffix=\$glsuf]) + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" != no && break + done]) + GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` + eval result=\$gl_cv_type_${gltype}_suffix + test "$result" = no && result= + eval ${GLTYPE}_SUFFIX=\$result + AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) + done + m4_foreach_w([gltype], [$1], + [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) +]) + +dnl gl_STDINT_INCLUDES +AC_DEFUN([gl_STDINT_INCLUDES], +[[ + #include + #include + #if HAVE_WCHAR_H + # include + #endif +]]) + +dnl gl_STDINT_TYPE_PROPERTIES +dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t +dnl of interest to stdint.in.h. +AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], +[ + AC_REQUIRE([gl_MULTIARCH]) + if test $APPLE_UNIVERSAL_BUILD = 0; then + gl_STDINT_BITSIZEOF([ptrdiff_t size_t], + [gl_STDINT_INCLUDES]) + fi + gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], + [gl_STDINT_INCLUDES]) + gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], + [gl_STDINT_INCLUDES]) + gl_cv_type_ptrdiff_t_signed=yes + gl_cv_type_size_t_signed=no + if test $APPLE_UNIVERSAL_BUILD = 0; then + gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], + [gl_STDINT_INCLUDES]) + fi + gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], + [gl_STDINT_INCLUDES]) + + dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 + dnl requirement that wint_t is "unchanged by default argument promotions". + dnl In this case gnulib's and override wint_t. + dnl Set the variable BITSIZEOF_WINT_T accordingly. + if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then + BITSIZEOF_WINT_T=32 + fi +]) diff --git a/3rdPartner/libiconv/srcm4/stdio_h.m4 b/3rdPartner/libiconv/srcm4/stdio_h.m4 new file mode 100644 index 0000000..42e9607 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stdio_h.m4 @@ -0,0 +1,225 @@ +# stdio_h.m4 serial 59 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_STDIO_H], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AH_VERBATIM([MINGW_ANSI_STDIO], +[/* Use GNU style printf and scanf. */ +#ifndef __USE_MINGW_ANSI_STDIO +# undef __USE_MINGW_ANSI_STDIO +#endif +]) + AC_DEFINE([__USE_MINGW_ANSI_STDIO]) + gl_NEXT_HEADERS([stdio.h]) + + dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and + dnl inttypes.h behave like gnu instead of system; we must give our + dnl printf wrapper the right attribute to match. + AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], + [gl_cv_func_printf_attribute_flavor], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #define __STDC_FORMAT_MACROS 1 + #include + #include + /* For non-mingw systems, compilation will trivially succeed. + For mingw, compilation will succeed for older mingw (system + printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) + extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; + #endif + ]])], [gl_cv_func_printf_attribute_flavor=system], + [gl_cv_func_printf_attribute_flavor=gnu])]) + if test "$gl_cv_func_printf_attribute_flavor" = gnu; then + AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], + [Define to 1 if printf and friends should be labeled with + attribute "__gnu_printf__" instead of "__printf__"]) + fi + + dnl This ifdef is an optimization, to avoid performing a configure check whose + dnl result is not used. But it does not make the test of + dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_READ_FUNCS=1 + fi + ]) + + dnl This ifdef is an optimization, to avoid performing a configure check whose + dnl result is not used. But it does not make the test of + dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant. + m4_ifdef([gl_SIGNAL_SIGPIPE], [ + gl_SIGNAL_SIGPIPE + if test $gl_cv_header_signal_h_SIGPIPE != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + fi + ]) + dnl This ifdef is an optimization, to avoid performing a configure check whose + dnl result is not used. But it does not make the test of + dnl GNULIB_STDIO_H_NONBLOCKING or GNULIB_NONBLOCKING redundant. + m4_ifdef([gl_NONBLOCKING_IO], [ + gl_NONBLOCKING_IO + if test $gl_cv_have_nonblocking != yes; then + REPLACE_STDIO_WRITE_FUNCS=1 + fi + ]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by both C89 and C11. + gl_WARN_ON_USE_PREPARE([[#include + ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen + renameat snprintf tmpfile vdprintf vsnprintf]) + + AC_REQUIRE([AC_C_RESTRICT]) + + AC_CHECK_DECLS_ONCE([fcloseall]) + if test $ac_cv_have_decl_fcloseall = no; then + HAVE_DECL_FCLOSEALL=0 + fi +]) + +# gl_STDIO_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_STDIO_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_STDIO_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN_GNU]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) +]) + +AC_DEFUN([gl_STDIO_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_FCLOSEALL=1; AC_SUBST([HAVE_DECL_FCLOSEALL]) + HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) + HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) + HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) + HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) + HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) + HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) + HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) + HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) + HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) + HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) + HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) + HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) + HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) + HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) + HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) + HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) + REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) + REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) + REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) + REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) + REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) + REPLACE_FOPEN_FOR_FOPEN_GNU=0; AC_SUBST([REPLACE_FOPEN_FOR_FOPEN_GNU]) + REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) + REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) + REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) + REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) + REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) + REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) + REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) + REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) + REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) + REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) + REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) + REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) + REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) + REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) + REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) + REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) + REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) + REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) + REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) + REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) + REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) + REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) + REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) + REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) + REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) + REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) + REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) +]) diff --git a/3rdPartner/libiconv/srcm4/stdlib_h.m4 b/3rdPartner/libiconv/srcm4/stdlib_h.m4 new file mode 100644 index 0000000..9e20969 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/stdlib_h.m4 @@ -0,0 +1,200 @@ +# stdlib_h.m4 serial 66 +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_STDLIB_H], +[ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + gl_NEXT_HEADERS([stdlib.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include +#if HAVE_SYS_LOADAVG_H +/* OpenIndiana has a bug: must be included before + . */ +# include +# include +#endif +#if HAVE_RANDOM_H +# include +#endif + ]], [_Exit aligned_alloc atoll canonicalize_file_name free + getloadavg getsubopt grantpt + initstate initstate_r mbtowc mkdtemp mkostemp mkostemps mkstemp mkstemps + posix_memalign posix_openpt ptsname ptsname_r qsort_r + random random_r reallocarray realpath rpmatch secure_getenv setenv + setstate setstate_r srandom srandom_r + strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv]) + + AC_REQUIRE([AC_C_RESTRICT]) + + AC_CHECK_DECLS_ONCE([ecvt]) + if test $ac_cv_have_decl_ecvt = no; then + HAVE_DECL_ECVT=0 + fi + AC_CHECK_DECLS_ONCE([fcvt]) + if test $ac_cv_have_decl_fcvt = no; then + HAVE_DECL_FCVT=0 + fi + AC_CHECK_DECLS_ONCE([gcvt]) + if test $ac_cv_have_decl_gcvt = no; then + HAVE_DECL_GCVT=0 + fi +]) + +# gl_STDLIB_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_STDLIB_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_GNU]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_GNU]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_GNU]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) +]) + +AC_DEFUN([gl_STDLIB_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) + HAVE_ALIGNED_ALLOC=1; AC_SUBST([HAVE_ALIGNED_ALLOC]) + HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) + HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) + HAVE_DECL_ECVT=1; AC_SUBST([HAVE_DECL_ECVT]) + HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) + HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) + HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) + HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) + HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) + HAVE_INITSTATE=1; AC_SUBST([HAVE_INITSTATE]) + HAVE_DECL_INITSTATE=1; AC_SUBST([HAVE_DECL_INITSTATE]) + HAVE_MBTOWC=1; AC_SUBST([HAVE_MBTOWC]) + HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) + HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) + HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) + HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) + HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) + HAVE_POSIX_MEMALIGN=1; AC_SUBST([HAVE_POSIX_MEMALIGN]) + HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) + HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) + HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) + HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) + HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) + HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) + HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) + HAVE_REALLOCARRAY=1; AC_SUBST([HAVE_REALLOCARRAY]) + HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) + HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) + HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) + HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) + HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) + HAVE_SETSTATE=1; AC_SUBST([HAVE_SETSTATE]) + HAVE_DECL_SETSTATE=1; AC_SUBST([HAVE_DECL_SETSTATE]) + HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) + HAVE_STRTOL=1; AC_SUBST([HAVE_STRTOL]) + HAVE_STRTOLD=1; AC_SUBST([HAVE_STRTOLD]) + HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) + HAVE_STRTOUL=1; AC_SUBST([HAVE_STRTOUL]) + HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) + HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) + HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) + HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) + HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) + REPLACE_ALIGNED_ALLOC=0; AC_SUBST([REPLACE_ALIGNED_ALLOC]) + REPLACE_CALLOC_FOR_CALLOC_GNU=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_GNU]) + REPLACE_CALLOC_FOR_CALLOC_POSIX=0; AC_SUBST([REPLACE_CALLOC_FOR_CALLOC_POSIX]) + REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) + REPLACE_FREE=0; AC_SUBST([REPLACE_FREE]) + REPLACE_INITSTATE=0; AC_SUBST([REPLACE_INITSTATE]) + REPLACE_MALLOC_FOR_MALLOC_GNU=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_GNU]) + REPLACE_MALLOC_FOR_MALLOC_POSIX=0; AC_SUBST([REPLACE_MALLOC_FOR_MALLOC_POSIX]) + REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) + REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) + REPLACE_POSIX_MEMALIGN=0; AC_SUBST([REPLACE_POSIX_MEMALIGN]) + REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) + REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) + REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) + REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) + REPLACE_RANDOM=0; AC_SUBST([REPLACE_RANDOM]) + REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) + REPLACE_REALLOC_FOR_REALLOC_GNU=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_GNU]) + REPLACE_REALLOC_FOR_REALLOC_POSIX=0; AC_SUBST([REPLACE_REALLOC_FOR_REALLOC_POSIX]) + REPLACE_REALLOCARRAY=0; AC_SUBST([REPLACE_REALLOCARRAY]) + REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) + REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) + REPLACE_SETSTATE=0; AC_SUBST([REPLACE_SETSTATE]) + REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) + REPLACE_STRTOL=0; AC_SUBST([REPLACE_STRTOL]) + REPLACE_STRTOLD=0; AC_SUBST([REPLACE_STRTOLD]) + REPLACE_STRTOLL=0; AC_SUBST([REPLACE_STRTOLL]) + REPLACE_STRTOUL=0; AC_SUBST([REPLACE_STRTOUL]) + REPLACE_STRTOULL=0; AC_SUBST([REPLACE_STRTOULL]) + REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) + REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) +]) diff --git a/3rdPartner/libiconv/srcm4/strerror.m4 b/3rdPartner/libiconv/srcm4/strerror.m4 new file mode 100644 index 0000000..4716649 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/strerror.m4 @@ -0,0 +1,102 @@ +# strerror.m4 serial 23 +dnl Copyright (C) 2002, 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STRERROR], +[ + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_ERRNO_H]) + AC_REQUIRE([gl_FUNC_STRERROR_0]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ + AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) + ]) + if test "$GL_GENERATE_ERRNO_H:$REPLACE_STRERROR_0" = false:0; then + AC_CACHE_CHECK([for working strerror function], + [gl_cv_func_working_strerror], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[if (!*strerror (-2)) return 1;]])], + [gl_cv_func_working_strerror=yes], + [gl_cv_func_working_strerror=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_strerror="$gl_cross_guess_normal" ;; + esac + ]) + ]) + case "$gl_cv_func_working_strerror" in + *yes) ;; + *) + dnl The system's strerror() fails to return a string for out-of-range + dnl integers. Replace it. + REPLACE_STRERROR=1 + ;; + esac + m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ + dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's + dnl buffer, we must replace strerror. + case "$gl_cv_func_strerror_r_works" in + *no) REPLACE_STRERROR=1 ;; + esac + ]) + else + dnl The system's strerror() cannot know about the new errno values we add + dnl to , or any fix for strerror(0). Replace it. + REPLACE_STRERROR=1 + fi +]) + +dnl Detect if strerror(0) passes (that is, does not set errno, and does not +dnl return a string that matches strerror(-1)). +AC_DEFUN([gl_FUNC_STRERROR_0], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + REPLACE_STRERROR_0=0 + AC_CACHE_CHECK([whether strerror(0) succeeds], + [gl_cv_func_strerror_0_works], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + ]], + [[int result = 0; + char *str; + errno = 0; + str = strerror (0); + if (!*str) result |= 1; + if (errno) result |= 2; + if (strstr (str, "nknown") || strstr (str, "ndefined")) + result |= 4; + return result;]])], + [gl_cv_func_strerror_0_works=yes], + [gl_cv_func_strerror_0_works=no], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on musl systems. + *-musl*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_strerror_0_works="$gl_cross_guess_normal" ;; + esac + ]) + ]) + case "$gl_cv_func_strerror_0_works" in + *yes) ;; + *) + REPLACE_STRERROR_0=1 + AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) + does not return a message implying success.]) + ;; + esac +]) diff --git a/3rdPartner/libiconv/srcm4/string_h.m4 b/3rdPartner/libiconv/srcm4/string_h.m4 new file mode 100644 index 0000000..9e09b96 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/string_h.m4 @@ -0,0 +1,145 @@ +# Configure a GNU-like replacement for . + +# Copyright (C) 2007-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 34 + +# Written by Paul Eggert. + +AC_DEFUN_ONCE([gl_STRING_H], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + gl_NEXT_HEADERS([string.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include + ]], + [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul + strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r + strerror_r strerrorname_np sigabbrev_np sigdescr_np strsignal strverscmp]) + + AC_REQUIRE([AC_C_RESTRICT]) +]) + +# gl_STRING_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_STRING_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_STRING_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS]) + dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. + gl_STDLIB_H_REQUIRE_DEFAULTS + AC_REQUIRE([gl_STRING_H_DEFAULTS]) +]) + +AC_DEFUN([gl_STRING_H_DEFAULTS], +[ + HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_EXPLICIT_BZERO=1; AC_SUBST([HAVE_EXPLICIT_BZERO]) + HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) + HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) + HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) + HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) + HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) + HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) + HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) + HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) + HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) + HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) + HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) + HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) + HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) + HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) + HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) + HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) + HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) + HAVE_STRERRORNAME_NP=1; AC_SUBST([HAVE_STRERRORNAME_NP]) + HAVE_SIGABBREV_NP=1; AC_SUBST([HAVE_SIGABBREV_NP]) + HAVE_SIGDESCR_NP=1; AC_SUBST([HAVE_SIGDESCR_NP]) + HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) + HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) + REPLACE_FFSLL=0; AC_SUBST([REPLACE_FFSLL]) + REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) + REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) + REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) + REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) + REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) + REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) + REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) + REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) + REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) + REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) + REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) + REPLACE_STRERRORNAME_NP=0; AC_SUBST([REPLACE_STRERRORNAME_NP]) + REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) + UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) +]) diff --git a/3rdPartner/libiconv/srcm4/sys_socket_h.m4 b/3rdPartner/libiconv/srcm4/sys_socket_h.m4 new file mode 100644 index 0000000..ba3ae68 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/sys_socket_h.m4 @@ -0,0 +1,206 @@ +# sys_socket_h.m4 serial 29 +dnl Copyright (C) 2005-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Simon Josefsson. + +AC_DEFUN_ONCE([gl_SYS_SOCKET_H], +[ + AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + + dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have + dnl old-style declarations (with return type 'int' instead of 'ssize_t') + dnl unless _POSIX_PII_SOCKET is defined. + case "$host_os" in + osf*) + AC_DEFINE([_POSIX_PII_SOCKET], [1], + [Define to 1 in order to get the POSIX compatible declarations + of socket functions.]) + ;; + esac + + GL_GENERATE_SYS_SOCKET_H=false + AC_CACHE_CHECK([whether is self-contained], + [gl_cv_header_sys_socket_h_selfcontained], + [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], + [gl_cv_header_sys_socket_h_selfcontained=yes], + [gl_cv_header_sys_socket_h_selfcontained=no]) + ]) + if test $gl_cv_header_sys_socket_h_selfcontained = yes; then + dnl If the shutdown function exists, should define + dnl SHUT_RD, SHUT_WR, SHUT_RDWR. + AC_CHECK_FUNCS([shutdown]) + if test $ac_cv_func_shutdown = yes; then + AC_CACHE_CHECK([whether defines the SHUT_* macros], + [gl_cv_header_sys_socket_h_shut], + [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], + [gl_cv_header_sys_socket_h_shut=yes], + [gl_cv_header_sys_socket_h_shut=no]) + ]) + if test $gl_cv_header_sys_socket_h_shut = no; then + GL_GENERATE_SYS_SOCKET_H=true + fi + fi + fi + # We need to check for ws2tcpip.h now. + gl_PREREQ_SYS_H_SOCKET + AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ + /* sys/types.h is not needed according to POSIX, but the + sys/socket.h in i386-unknown-freebsd4.10 and + powerpc-apple-darwin5.5 required it. */ +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_WS2TCPIP_H +#include +#endif +]) + if test $ac_cv_type_struct_sockaddr_storage = no; then + HAVE_STRUCT_SOCKADDR_STORAGE=0 + fi + if test $ac_cv_type_sa_family_t = no; then + HAVE_SA_FAMILY_T=0 + fi + if test $ac_cv_type_struct_sockaddr_storage != no; then + AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], + [], + [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], + [#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif + ]) + fi + if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ + || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then + GL_GENERATE_SYS_SOCKET_H=true + fi + gl_PREREQ_SYS_H_WINSOCK2 + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ +/* Some systems require prerequisite headers. */ +#include +#include + ]], [socket connect accept bind getpeername getsockname getsockopt + listen recv send recvfrom sendto setsockopt shutdown accept4]) + + AC_REQUIRE([AC_C_RESTRICT]) +]) + +AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], +[ + dnl Check prerequisites of the replacement. + AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) + gl_CHECK_NEXT_HEADERS([sys/socket.h]) + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + else + HAVE_SYS_SOCKET_H=0 + fi + AC_SUBST([HAVE_SYS_SOCKET_H]) + gl_PREREQ_SYS_H_WS2TCPIP +]) + +# Common prerequisites of the replacement and of the +# replacement. +# Sets and substitutes HAVE_WINSOCK2_H. +AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], +[ + m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) + m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) + AC_CHECK_HEADERS_ONCE([sys/socket.h]) + if test $ac_cv_header_sys_socket_h != yes; then + dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make + dnl the check for those headers unconditional; yet cygwin reports + dnl that the headers are present but cannot be compiled (since on + dnl cygwin, all socket information should come from sys/socket.h). + AC_CHECK_HEADERS([winsock2.h]) + fi + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + UNISTD_H_HAVE_WINSOCK2_H=1 + SYS_IOCTL_H_HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + AC_SUBST([HAVE_WINSOCK2_H]) +]) + +# Common prerequisites of the replacement and of the +# replacement. +# Sets and substitutes HAVE_WS2TCPIP_H. +AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP], +[ + AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_WS2TCPIP_H=0 + else + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + AC_SUBST([HAVE_WS2TCPIP_H]) +]) + +# gl_SYS_SOCKET_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_SYS_SOCKET_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) +]) + +AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], +[ + HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) + HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; + AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) + HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) + HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) +]) diff --git a/3rdPartner/libiconv/srcm4/sys_stat_h.m4 b/3rdPartner/libiconv/srcm4/sys_stat_h.m4 new file mode 100644 index 0000000..b5a9789 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/sys_stat_h.m4 @@ -0,0 +1,127 @@ +# sys_stat_h.m4 serial 41 -*- Autoconf -*- +dnl Copyright (C) 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Eric Blake. +dnl Provide a GNU-like . + +AC_DEFUN_ONCE([gl_SYS_STAT_H], +[ + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + + dnl Check for broken stat macros. + AC_REQUIRE([AC_HEADER_STAT]) + + gl_CHECK_NEXT_HEADERS([sys/stat.h]) + + dnl Ensure the type mode_t gets defined. + AC_REQUIRE([AC_TYPE_MODE_T]) + + dnl Whether to enable precise timestamps in 'struct stat'. + m4_ifdef([gl_WINDOWS_STAT_TIMESPEC], [ + AC_REQUIRE([gl_WINDOWS_STAT_TIMESPEC]) + ], [ + WINDOWS_STAT_TIMESPEC=0 + ]) + AC_SUBST([WINDOWS_STAT_TIMESPEC]) + + dnl Whether to ensure that struct stat.st_size is 64-bit wide. + m4_ifdef([gl_LARGEFILE], [ + AC_REQUIRE([gl_LARGEFILE]) + ], [ + WINDOWS_64_BIT_ST_SIZE=0 + ]) + AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) + + dnl Define types that are supposed to be defined in or + dnl . + AC_CHECK_TYPE([nlink_t], [], + [AC_DEFINE([nlink_t], [int], + [Define to the type of st_nlink in struct stat, or a supertype.])], + [#include + #include ]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include + ]], [fchmodat fstat fstatat futimens getumask lchmod lstat + mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) + + AC_REQUIRE([AC_C_RESTRICT]) +]) + +# gl_SYS_STAT_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_SYS_STAT_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [ + gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) +]) + +AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) + HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) + HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) + HAVE_GETUMASK=1; AC_SUBST([HAVE_GETUMASK]) + HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) + HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) + HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) + HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) + HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) + HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) + HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) + HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) + REPLACE_FCHMODAT=0; AC_SUBST([REPLACE_FCHMODAT]) + REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) + REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) + REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) + REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) + REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) + REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) + REPLACE_MKFIFOAT=0; AC_SUBST([REPLACE_MKFIFOAT]) + REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) + REPLACE_MKNODAT=0; AC_SUBST([REPLACE_MKNODAT]) + REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) + REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) +]) diff --git a/3rdPartner/libiconv/srcm4/sys_types_h.m4 b/3rdPartner/libiconv/srcm4/sys_types_h.m4 new file mode 100644 index 0000000..a5bef22 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/sys_types_h.m4 @@ -0,0 +1,70 @@ +# sys_types_h.m4 serial 13 +dnl Copyright (C) 2011-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN_ONCE([gl_SYS_TYPES_H], +[ + AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) + + dnl Use sane struct stat types in OpenVMS 8.2 and later. + AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.]) + + gl_NEXT_HEADERS([sys/types.h]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + dnl Ensure the type mode_t gets defined. + AC_REQUIRE([AC_TYPE_MODE_T]) + + dnl Whether to override the 'off_t' type. + AC_REQUIRE([gl_TYPE_OFF_T]) + + dnl Whether to override the 'dev_t' and 'ino_t' types. + m4_ifdef([gl_WINDOWS_STAT_INODES], [ + AC_REQUIRE([gl_WINDOWS_STAT_INODES]) + ], [ + WINDOWS_STAT_INODES=0 + ]) + AC_SUBST([WINDOWS_STAT_INODES]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [ + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) +]) + +AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], +[ +]) + +# This works around a buggy version in autoconf <= 2.69. +# See +# The 2.70 version isn't quoted properly, so override it too. + +m4_version_prereq([2.70.1], [], [ + +m4_undefine([AC_HEADER_MAJOR]) +AC_DEFUN([AC_HEADER_MAJOR], +[AC_CHECK_HEADERS_ONCE([sys/types.h]) +AC_CHECK_HEADER([sys/mkdev.h], + [AC_DEFINE([MAJOR_IN_MKDEV], [1], + [Define to 1 if `major', `minor', and `makedev' are + declared in .])]) +if test $ac_cv_header_sys_mkdev_h = no; then + AC_CHECK_HEADER([sys/sysmacros.h], + [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], + [Define to 1 if `major', `minor', and `makedev' + are declared in .])]) +fi +])# AC_HEADER_MAJOR + +]) diff --git a/3rdPartner/libiconv/srcm4/time_h.m4 b/3rdPartner/libiconv/srcm4/time_h.m4 new file mode 100644 index 0000000..98d7b6e --- /dev/null +++ b/3rdPartner/libiconv/srcm4/time_h.m4 @@ -0,0 +1,177 @@ +# Configure a more-standard replacement for . + +# Copyright (C) 2000-2001, 2003-2007, 2009-2022 Free Software Foundation, Inc. + +# serial 19 + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Written by Paul Eggert and Jim Meyering. + +AC_DEFUN_ONCE([gl_TIME_H], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_TIME_H_DEFAULTS]) + + gl_NEXT_HEADERS([time.h]) + AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) + + AC_REQUIRE([AC_C_RESTRICT]) + + AC_CACHE_CHECK([for TIME_UTC in ], + [gl_cv_time_h_has_TIME_UTC], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[static int x = TIME_UTC; x++;]])], + [gl_cv_time_h_has_TIME_UTC=yes], + [gl_cv_time_h_has_TIME_UTC=no])]) + if test $gl_cv_time_h_has_TIME_UTC = yes; then + TIME_H_DEFINES_TIME_UTC=1 + else + TIME_H_DEFINES_TIME_UTC=0 + fi + AC_SUBST([TIME_H_DEFINES_TIME_UTC]) +]) + +dnl Check whether 'struct timespec' is declared +dnl in time.h, sys/time.h, pthread.h, or unistd.h. + +AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], +[ + AC_CHECK_HEADERS_ONCE([sys/time.h]) + AC_CACHE_CHECK([for struct timespec in ], + [gl_cv_sys_struct_timespec_in_time_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [gl_cv_sys_struct_timespec_in_time_h=yes], + [gl_cv_sys_struct_timespec_in_time_h=no])]) + + TIME_H_DEFINES_STRUCT_TIMESPEC=0 + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 + UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 + if test $gl_cv_sys_struct_timespec_in_time_h = yes; then + TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + AC_CACHE_CHECK([for struct timespec in ], + [gl_cv_sys_struct_timespec_in_sys_time_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [gl_cv_sys_struct_timespec_in_sys_time_h=yes], + [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) + if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then + SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 + else + AC_CACHE_CHECK([for struct timespec in ], + [gl_cv_sys_struct_timespec_in_pthread_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [gl_cv_sys_struct_timespec_in_pthread_h=yes], + [gl_cv_sys_struct_timespec_in_pthread_h=no])]) + if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then + PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 + else + AC_CACHE_CHECK([for struct timespec in ], + [gl_cv_sys_struct_timespec_in_unistd_h], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [gl_cv_sys_struct_timespec_in_unistd_h=yes], + [gl_cv_sys_struct_timespec_in_unistd_h=no])]) + if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then + UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 + fi + fi + fi + fi + AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) + AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) + AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) + AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) +]) + +# gl_TIME_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_TIME_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_TIME_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GETRES]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_TIME_H_DEFAULTS]) +]) + +AC_DEFUN([gl_TIME_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) + HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) + HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) + HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) + HAVE_TIMESPEC_GET=1; AC_SUBST([HAVE_TIMESPEC_GET]) + HAVE_TIMESPEC_GETRES=1; AC_SUBST([HAVE_TIMESPEC_GETRES]) + dnl Even GNU libc does not have timezone_t yet. + HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) + dnl If another module says to replace or to not replace, do that. + dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; + dnl this lets maintainers check for portability. + REPLACE_CTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_CTIME]) + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) + REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) + REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) + REPLACE_STRFTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRFTIME]) + REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) + REPLACE_TZSET=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TZSET]) + + dnl Hack so that the time module doesn't depend on the sys_time module. + dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. + : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) + dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME + dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier + dnl is no longer a big deal. + REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) + REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) +]) diff --git a/3rdPartner/libiconv/srcm4/unistd_h.m4 b/3rdPartner/libiconv/srcm4/unistd_h.m4 new file mode 100644 index 0000000..4c66ccc --- /dev/null +++ b/3rdPartner/libiconv/srcm4/unistd_h.m4 @@ -0,0 +1,270 @@ +# unistd_h.m4 serial 90 +dnl Copyright (C) 2006-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Simon Josefsson, Bruno Haible. + +AC_DEFUN_ONCE([gl_UNISTD_H], +[ + dnl Ensure to expand the default settings once only, before all statements + dnl that occur in other macros. + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + + gl_CHECK_NEXT_HEADERS([unistd.h]) + if test $ac_cv_header_unistd_h = yes; then + HAVE_UNISTD_H=1 + else + HAVE_UNISTD_H=0 + fi + AC_SUBST([HAVE_UNISTD_H]) + + dnl Ensure the type pid_t gets defined. + AC_REQUIRE([AC_TYPE_PID_T]) + + dnl Determine WINDOWS_64_BIT_OFF_T. + AC_REQUIRE([gl_TYPE_OFF_T]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ +#if HAVE_UNISTD_H +# include +#endif +/* Some systems declare various items in the wrong headers. */ +#if !(defined __GLIBC__ && !defined __UCLIBC__) +# include +# include +# include +# if defined _WIN32 && ! defined __CYGWIN__ +# include +# endif +#endif + ]], [access chdir chown copy_file_range dup dup2 dup3 environ euidaccess + execl execle execlp execv execve execvp execvpe + faccessat fchdir + fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize + getentropy getgroups gethostname getlogin getlogin_r getpagesize getpass + getusershell setusershell endusershell + group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite + readlink readlinkat rmdir sethostname sleep symlink symlinkat + truncate ttyname_r unlink unlinkat usleep]) + + AC_REQUIRE([AC_C_RESTRICT]) + + AC_CHECK_DECLS_ONCE([execvpe]) + if test $ac_cv_have_decl_execvpe = no; then + HAVE_DECL_EXECVPE=0 + fi +]) + +# gl_UNISTD_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_UNISTD_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS_GNU]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) +]) + +AC_DEFUN([gl_UNISTD_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) + HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE]) + HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) + HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) + HAVE_EXECVPE=1; AC_SUBST([HAVE_EXECVPE]) + HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) + HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) + HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) + HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) + HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) + HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) + HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) + HAVE_GETENTROPY=1; AC_SUBST([HAVE_GETENTROPY]) + HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) + HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) + HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) + HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) + HAVE_GETPASS=1; AC_SUBST([HAVE_GETPASS]) + HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) + HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) + HAVE_LINK=1; AC_SUBST([HAVE_LINK]) + HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) + HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) + HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) + HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) + HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) + HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) + HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) + HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) + HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) + HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) + HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) + HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) + HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) + HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) + HAVE_DECL_EXECVPE=1; AC_SUBST([HAVE_DECL_EXECVPE]) + HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) + HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) + HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) + HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) + HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) + HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) + HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) + HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) + HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) + HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) + HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) + HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) + REPLACE_ACCESS=0; AC_SUBST([REPLACE_ACCESS]) + REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) + REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) + REPLACE_COPY_FILE_RANGE=0; AC_SUBST([REPLACE_COPY_FILE_RANGE]) + REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) + REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) + REPLACE_EXECL=0; AC_SUBST([REPLACE_EXECL]) + REPLACE_EXECLE=0; AC_SUBST([REPLACE_EXECLE]) + REPLACE_EXECLP=0; AC_SUBST([REPLACE_EXECLP]) + REPLACE_EXECV=0; AC_SUBST([REPLACE_EXECV]) + REPLACE_EXECVE=0; AC_SUBST([REPLACE_EXECVE]) + REPLACE_EXECVP=0; AC_SUBST([REPLACE_EXECVP]) + REPLACE_EXECVPE=0; AC_SUBST([REPLACE_EXECVPE]) + REPLACE_FACCESSAT=0; AC_SUBST([REPLACE_FACCESSAT]) + REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) + REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) + REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) + REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) + REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) + REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) + REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) + REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) + REPLACE_GETPASS_FOR_GETPASS_GNU=0; AC_SUBST([REPLACE_GETPASS_FOR_GETPASS_GNU]) + REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) + REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) + REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) + REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) + REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) + REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) + REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) + REPLACE_READ=0; AC_SUBST([REPLACE_READ]) + REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) + REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) + REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) + REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) + REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) + REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) + REPLACE_TRUNCATE=0; AC_SUBST([REPLACE_TRUNCATE]) + REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) + REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) + REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) + REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) + REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) + UNISTD_H_HAVE_SYS_RANDOM_H=0; AC_SUBST([UNISTD_H_HAVE_SYS_RANDOM_H]) + UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) +]) diff --git a/3rdPartner/libiconv/srcm4/unlocked-io.m4 b/3rdPartner/libiconv/srcm4/unlocked-io.m4 new file mode 100644 index 0000000..d42c95c --- /dev/null +++ b/3rdPartner/libiconv/srcm4/unlocked-io.m4 @@ -0,0 +1,36 @@ +# unlocked-io.m4 serial 16 + +# Copyright (C) 1998-2006, 2009-2022 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl From Jim Meyering. +dnl +dnl See if the glibc *_unlocked I/O macros or functions are available. +dnl Use only those *_unlocked macros or functions that are declared +dnl (because some of them were declared in Solaris 2.5.1 but were removed +dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run +dnl on Solaris 2.6). + +AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO], +[ + dnl Persuade glibc and Solaris to declare + dnl fgets_unlocked(), fputs_unlocked() etc. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + AC_CHECK_DECLS_ONCE([clearerr_unlocked]) + AC_CHECK_DECLS_ONCE([feof_unlocked]) + AC_CHECK_DECLS_ONCE([ferror_unlocked]) + AC_CHECK_DECLS_ONCE([fflush_unlocked]) + AC_CHECK_DECLS_ONCE([fgets_unlocked]) + AC_CHECK_DECLS_ONCE([fputc_unlocked]) + AC_CHECK_DECLS_ONCE([fputs_unlocked]) + AC_CHECK_DECLS_ONCE([fread_unlocked]) + AC_CHECK_DECLS_ONCE([fwrite_unlocked]) + AC_CHECK_DECLS_ONCE([getc_unlocked]) + AC_CHECK_DECLS_ONCE([getchar_unlocked]) + AC_CHECK_DECLS_ONCE([putc_unlocked]) + AC_CHECK_DECLS_ONCE([putchar_unlocked]) +]) diff --git a/3rdPartner/libiconv/srcm4/vararrays.m4 b/3rdPartner/libiconv/srcm4/vararrays.m4 new file mode 100644 index 0000000..28e22a4 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/vararrays.m4 @@ -0,0 +1,72 @@ +# Check for variable-length arrays. + +# serial 6 + +# From Paul Eggert + +# Copyright (C) 2001, 2009-2022 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +m4_version_prereq([2.70], [], [ + +# AC_C_VARARRAYS +# -------------- +# Check whether the C compiler supports variable-length arrays. +AC_DEFUN([AC_C_VARARRAYS], +[ + AC_CACHE_CHECK([for variable-length arrays], + ac_cv_c_vararrays, + [AC_EGREP_CPP([defined], + [#ifdef __STDC_NO_VLA__ + defined + #endif + ], + [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[/* Test for VLA support. This test is partly inspired + from examples in the C standard. Use at least two VLA + functions to detect the GCC 3.4.3 bug described in: + https://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00014.html + */ + #ifdef __STDC_NO_VLA__ + syntax error; + #else + extern int n; + int B[100]; + int fvla (int m, int C[m][m]); + + int + simple (int count, int all[static count]) + { + return all[count - 1]; + } + + int + fvla (int m, int C[m][m]) + { + typedef int VLA[m][m]; + VLA x; + int D[m]; + static int (*q)[m] = &B; + int (*s)[n] = q; + return C && &x[0][0] == &D[0] && &D[0] == s[0]; + } + #endif + ]])], + [ac_cv_c_vararrays=yes], + [ac_cv_c_vararrays=no])])]) + if test "$ac_cv_c_vararrays" = yes; then + dnl This is for compatibility with Autoconf 2.61-2.69. + AC_DEFINE([HAVE_C_VARARRAYS], 1, + [Define to 1 if C supports variable-length arrays.]) + elif test "$ac_cv_c_vararrays" = no; then + AC_DEFINE([__STDC_NO_VLA__], 1, + [Define to 1 if C does not support variable-length arrays, and + if the compiler does not already define this.]) + fi +]) + +]) diff --git a/3rdPartner/libiconv/srcm4/visibility.m4 b/3rdPartner/libiconv/srcm4/visibility.m4 new file mode 100644 index 0000000..4a212a4 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/visibility.m4 @@ -0,0 +1,82 @@ +# visibility.m4 serial 8 +dnl Copyright (C) 2005, 2008, 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Tests whether the compiler supports the command-line option +dnl -fvisibility=hidden and the function and variable attributes +dnl __attribute__((__visibility__("hidden"))) and +dnl __attribute__((__visibility__("default"))). +dnl Does *not* test for __visibility__("protected") - which has tricky +dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on +dnl Mac OS X. +dnl Does *not* test for __visibility__("internal") - which has processor +dnl dependent semantics. +dnl Does *not* test for #pragma GCC visibility push(hidden) - which is +dnl "really only recommended for legacy code". +dnl Set the variable CFLAG_VISIBILITY. +dnl Defines and sets the variable HAVE_VISIBILITY. + +AC_DEFUN([gl_VISIBILITY], +[ + AC_REQUIRE([AC_PROG_CC]) + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + dnl First, check whether -Werror can be added to the command line, or + dnl whether it leads to an error because of some other option that the + dnl user has put into $CC $CFLAGS $CPPFLAGS. + AC_CACHE_CHECK([whether the -Werror option is usable], + [gl_cv_cc_vis_werror], + [gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [gl_cv_cc_vis_werror=yes], + [gl_cv_cc_vis_werror=no]) + CFLAGS="$gl_save_CFLAGS" + ]) + dnl Now check whether visibility declarations are supported. + AC_CACHE_CHECK([for simple visibility declarations], + [gl_cv_cc_visibility], + [gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + dnl We use the option -Werror and a function dummyfunc, because on some + dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning + dnl "visibility attribute not supported in this configuration; ignored" + dnl at the first function definition in every compilation unit, and we + dnl don't want to use the option in this case. + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + ]], + [[]])], + [gl_cv_cc_visibility=yes], + [gl_cv_cc_visibility=no]) + CFLAGS="$gl_save_CFLAGS" + ]) + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + AC_SUBST([CFLAG_VISIBILITY]) + AC_SUBST([HAVE_VISIBILITY]) + AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], + [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) +]) diff --git a/3rdPartner/libiconv/srcm4/warn-on-use.m4 b/3rdPartner/libiconv/srcm4/warn-on-use.m4 new file mode 100644 index 0000000..d43355a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/warn-on-use.m4 @@ -0,0 +1,49 @@ +# warn-on-use.m4 serial 9 +dnl Copyright (C) 2010-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) +# --------------------------------------- +# If the module 'posixcheck' is in use: +# +# For each whitespace-separated element in the list of NAMES, define +# HAVE_RAW_DECL_name if the function has a declaration among INCLUDES +# even after being undefined as a macro. +# +# See warn-on-use.h for some hints on how to poison function names, as +# well as ideas on poisoning global variables and macros. NAMES may +# include global variables, but remember that only functions work with +# _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single +# header, but if the replacement header pulls in other headers because +# some systems declare functions in the wrong header, then INCLUDES +# should do likewise. +# +# It is generally safe to assume declarations for functions declared +# in the intersection of C89 and C11 (such as printf) without +# needing gl_WARN_ON_USE_PREPARE. +AC_DEFUN([gl_WARN_ON_USE_PREPARE], +[ + m4_ifdef([gl_POSIXCHECK], + [m4_foreach_w([gl_decl], [$2], + [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), + [Define to 1 if ]m4_defn([gl_decl])[ is declared even after + undefining macros.])])dnl + for gl_func in m4_flatten([$2]); do + AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl + AC_CACHE_CHECK([whether $gl_func is declared without a macro], + [gl_Symbol], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], +[[#undef $gl_func + (void) $gl_func;]])], + [AS_VAR_SET([gl_Symbol], [yes])], [AS_VAR_SET([gl_Symbol], [no])])]) + AS_VAR_IF([gl_Symbol], [yes], + [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) + dnl shortcut - if the raw declaration exists, then set a cache + dnl variable to allow skipping any later AC_CHECK_DECL efforts + eval ac_cv_have_decl_$gl_func=yes]) + AS_VAR_POPDEF([gl_Symbol])dnl + done + ]) +]) diff --git a/3rdPartner/libiconv/srcm4/wchar_h.m4 b/3rdPartner/libiconv/srcm4/wchar_h.m4 new file mode 100644 index 0000000..4baba1a --- /dev/null +++ b/3rdPartner/libiconv/srcm4/wchar_h.m4 @@ -0,0 +1,257 @@ +dnl A placeholder for ISO C99 , for platforms that have issues. + +dnl Copyright (C) 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Eric Blake. + +# wchar_h.m4 serial 55 + +AC_DEFUN_ONCE([gl_WCHAR_H], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) + dnl Prepare for creating substitute . + dnl Check for (missing in Linux uClibc when built without wide + dnl character support). + dnl is always overridden, because of GNULIB_POSIXCHECK. + gl_CHECK_NEXT_HEADERS([wchar.h]) + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + AC_SUBST([HAVE_WCHAR_H]) + + AC_REQUIRE([gl_FEATURES_H]) + + AC_REQUIRE([gt_TYPE_WINT_T]) + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + AC_SUBST([HAVE_WINT_T]) + + AC_REQUIRE([gl_TYPE_WINT_T_PREREQ]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ + #include + ]], + [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb + wcsrtombs wcsnrtombs wcwidth + wmemchr wmemcmp wmemcpy wmemmove wmempcpy wmemset + wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp + wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr + wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth wcsftime + ]) + + AC_REQUIRE([AC_C_RESTRICT]) + + AC_CHECK_DECLS([wcsdup], [], [], [[ + #include + ]]) + if test $ac_cv_have_decl_wcsdup = no; then + HAVE_DECL_WCSDUP=0 + fi +]) + +dnl Check whether is usable at all. +AC_DEFUN([gl_WCHAR_H_INLINE_OK], +[ + dnl Test whether suffers due to the transition from '__inline' to + dnl 'gnu_inline'. See + dnl and . In summary, + dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and + dnl the option -std=c99 or -std=gnu99, leads to a broken . + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether uses 'inline' correctly], + [gl_cv_header_wchar_h_correct_inline], + [gl_cv_header_wchar_h_correct_inline=yes + case "$host_os" in + *-gnu* | gnu*) + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[ + #define wcstod renamed_wcstod + #include + extern int zero (void); + int main () { return zero(); } + ]])]) + dnl Do not rename the object file from conftest.$ac_objext to + dnl conftest1.$ac_objext, as this will cause the link to fail on + dnl z/OS when using the XPLINK object format (due to duplicate + dnl CSECT names). Instead, temporarily redefine $ac_compile so + dnl that the object file has the latter name from the start. + save_ac_compile="$ac_compile" + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` + if echo '#include "conftest.c"' >conftest1.c \ + && AC_TRY_EVAL([ac_compile]); then + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[ + #define wcstod renamed_wcstod + #include + int zero (void) { return 0; } + ]])]) + dnl See note above about renaming object files. + ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` + if echo '#include "conftest.c"' >conftest2.c \ + && AC_TRY_EVAL([ac_compile]); then + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no + fi + fi + fi + ac_compile="$save_ac_compile" + rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext + ;; + esac + ]) + if test $gl_cv_header_wchar_h_correct_inline = no; then + AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + , or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted.]) + fi +]) + +# gl_WCHAR_MODULE_INDICATOR([modulename]) +# sets the shell variable that indicates the presence of the given module +# to a C preprocessor expression that will evaluate to 1. +# This macro invocation must not occur in macros that are AC_REQUIREd. +AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], +[ + dnl Ensure to expand the default settings once only. + gl_WCHAR_H_REQUIRE_DEFAULTS + gl_MODULE_INDICATOR_SET_VARIABLE([$1]) + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR_FOR_TESTS([$1]) +]) + +# Initializes the default values for AC_SUBSTed shell variables. +# This macro must not be AC_REQUIREd. It must only be invoked, and only +# outside of macros or in macros that are not AC_REQUIREd. +AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS], +[ + m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS], [ + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOWC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOB]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSINIT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOWC]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOWCS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOWCS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCRTOMB]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRTOMBS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNRTOMBS]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCWIDTH]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMMOVE]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMPCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMSET]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNLEN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPNCPY]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCAT]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCASECMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCASECMP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCOLL]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSXFRM]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSDUP]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRCHR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCSPN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSPN]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSPBRK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSTR]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSTOK]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSWIDTH]) + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSFTIME]) + dnl Support Microsoft deprecated alias function names by default. + gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1]) + ]) + m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS]) + dnl Make sure the shell variable for GNULIB_FREE_POSIX is initialized. + gl_STDLIB_H_REQUIRE_DEFAULTS + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) +]) + +AC_DEFUN([gl_WCHAR_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) + HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) + HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) + HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) + HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) + HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) + HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) + HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) + HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) + HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) + HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) + HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) + HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) + HAVE_WMEMPCPY=1; AC_SUBST([HAVE_WMEMPCPY]) + HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) + HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) + HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) + HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) + HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) + HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) + HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) + HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) + HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) + HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) + HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) + HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) + HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) + HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) + HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) + HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) + HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) + HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) + HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) + HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) + HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) + HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) + HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) + HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) + HAVE_WCSFTIME=1; AC_SUBST([HAVE_WCSFTIME]) + HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) + HAVE_DECL_WCSDUP=1; AC_SUBST([HAVE_DECL_WCSDUP]) + HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) + REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) + REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) + REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) + REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) + REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) + REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) + REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) + REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) + REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) + REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) + REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) + REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) + REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) + REPLACE_WCSFTIME=0; AC_SUBST([REPLACE_WCSFTIME]) + REPLACE_WCSTOK=0; AC_SUBST([REPLACE_WCSTOK]) +]) diff --git a/3rdPartner/libiconv/srcm4/wchar_t.m4 b/3rdPartner/libiconv/srcm4/wchar_t.m4 new file mode 100644 index 0000000..268e3e5 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/wchar_t.m4 @@ -0,0 +1,24 @@ +# wchar_t.m4 serial 4 (gettext-0.18.2) +dnl Copyright (C) 2002-2003, 2008-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether has the 'wchar_t' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WCHAR_T], +[ + AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + wchar_t foo = (wchar_t)'\0';]], + [[]])], + [gt_cv_c_wchar_t=yes], + [gt_cv_c_wchar_t=no])]) + if test $gt_cv_c_wchar_t = yes; then + AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) + fi +]) diff --git a/3rdPartner/libiconv/srcm4/wint_t.m4 b/3rdPartner/libiconv/srcm4/wint_t.m4 new file mode 100644 index 0000000..adc5866 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/wint_t.m4 @@ -0,0 +1,57 @@ +# wint_t.m4 serial 11 +dnl Copyright (C) 2003, 2007-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether has the 'wint_t' type and whether gnulib's +dnl or would, if present, override 'wint_t'. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WINT_T], +[ + AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + wint_t foo = (wchar_t)'\0';]], + [[]])], + [gt_cv_c_wint_t=yes], + [gt_cv_c_wint_t=no])]) + if test $gt_cv_c_wint_t = yes; then + AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) + + dnl Determine whether gnulib's or would, if present, + dnl override 'wint_t'. + AC_CACHE_CHECK([whether wint_t is large enough], + [gl_cv_type_wint_t_large_enough], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; + ]])], + [gl_cv_type_wint_t_large_enough=yes], + [gl_cv_type_wint_t_large_enough=no])]) + if test $gl_cv_type_wint_t_large_enough = no; then + GNULIBHEADERS_OVERRIDE_WINT_T=1 + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + else + GNULIBHEADERS_OVERRIDE_WINT_T=0 + fi + AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T]) +]) + +dnl Prerequisites of the 'wint_t' override. +AC_DEFUN([gl_TYPE_WINT_T_PREREQ], +[ + AC_CHECK_HEADERS_ONCE([crtdefs.h]) + if test $ac_cv_header_crtdefs_h = yes; then + HAVE_CRTDEFS_H=1 + else + HAVE_CRTDEFS_H=0 + fi + AC_SUBST([HAVE_CRTDEFS_H]) +]) diff --git a/3rdPartner/libiconv/srcm4/year2038.m4 b/3rdPartner/libiconv/srcm4/year2038.m4 new file mode 100644 index 0000000..06db589 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/year2038.m4 @@ -0,0 +1,124 @@ +# year2038.m4 serial 7 +dnl Copyright (C) 2017-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Attempt to ensure that 'time_t' can go past the year 2038 and that +dnl the functions 'time', 'stat', etc. work with post-2038 timestamps. + +AC_DEFUN([gl_YEAR2038_EARLY], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + mingw*) + AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], + [For 64-bit time_t on 32-bit mingw.]) + ;; + esac +]) + +# gl_YEAR2038_TEST_INCLUDES +# ------------------------- +AC_DEFUN([gl_YEAR2038_TEST_INCLUDES], +[[ + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; +]]) + +# gl_YEAR2038_BODY(REQUIRE-YEAR2038-SAFE) +----------------------------------------- +AC_DEFUN([gl_YEAR2038_BODY], +[ + AC_ARG_ENABLE([year2038], + [ --disable-year2038 omit support for timestamps past the year 2038]) + AS_IF([test "$enable_year2038" != no], + [ + dnl On many systems, time_t is already a 64-bit type. + dnl On those systems where time_t is still 32-bit, it requires kernel + dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux, + dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM. + dnl + dnl On native Windows, the system include files define types __time32_t + dnl and __time64_t. By default, time_t is an alias of + dnl - __time32_t on 32-bit mingw, + dnl - __time64_t on 64-bit mingw and on MSVC (since MSVC 8). + dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an + dnl alias of __time64_t. + dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of + dnl __time32_t. + AC_CACHE_CHECK([for time_t past the year 2038], [gl_cv_type_time_t_y2038], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])], + [gl_cv_type_time_t_y2038=yes], [gl_cv_type_time_t_y2038=no]) + ]) + if test "$gl_cv_type_time_t_y2038" = no; then + AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64], + [gl_cv_type_time_t_bits_macro], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[#define _TIME_BITS 64 + #define _FILE_OFFSET_BITS 64 + ]gl_YEAR2038_TEST_INCLUDES])], + [gl_cv_type_time_t_bits_macro=yes], + [gl_cv_type_time_t_bits_macro=no]) + ]) + if test "$gl_cv_type_time_t_bits_macro" = yes; then + AC_DEFINE([_TIME_BITS], [64], + [Number of bits in a timestamp, on hosts where this is settable.]) + dnl AC_SYS_LARGFILE also defines this; it's OK if we do too. + AC_DEFINE([_FILE_OFFSET_BITS], [64], + [Number of bits in a file offset, on hosts where this is settable.]) + gl_cv_type_time_t_y2038=yes + fi + fi + if test $gl_cv_type_time_t_y2038 = no; then + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _USE_32BIT_TIME_T + int ok; + #else + error fail + #endif + ]])], + [AC_MSG_FAILURE( + [The 'time_t' type stops working after January 2038. + Remove _USE_32BIT_TIME_T from the compiler flags.])], + [# If not cross-compiling and $1 says we should check, + # and 'touch' works with a large timestamp, then evidently wider time_t + # is desired and supported, so fail and ask the builder to fix the + # problem. Otherwise, just warn the builder. + m4_ifval([$1], + [if test $cross_compiling = no \ + && TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null; then + case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in + *'Feb 7 2106'* | *'Feb 7 17:10'*) + AC_MSG_FAILURE( + [The 'time_t' type stops working after January 2038, + and your system appears to support a wider 'time_t'. + Try configuring with 'CC="${CC} -m64"'. + To build with a 32-bit time_t anyway (not recommended), + configure with '--disable-year2038'.]);; + esac + rm -f conftest.time + fi]) + if test "$gl_warned_about_y2038" != yes; then + AC_MSG_WARN( + [The 'time_t' type stops working after January 2038, + and this package needs a wider 'time_t' type + if there is any way to access timestamps after that. + Configure with 'CC="${CC} -m64"' perhaps?]) + gl_warned_about_y2038=yes + fi + ]) + fi]) +]) + +AC_DEFUN([gl_YEAR2038], +[ + gl_YEAR2038_BODY([require-year2038-safe]) +]) diff --git a/3rdPartner/libiconv/srcm4/zzgnulib.m4 b/3rdPartner/libiconv/srcm4/zzgnulib.m4 new file mode 100644 index 0000000..fd73a20 --- /dev/null +++ b/3rdPartner/libiconv/srcm4/zzgnulib.m4 @@ -0,0 +1,23 @@ +# zzgnulib.m4 serial 1 +dnl Copyright (C) 2020-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This file must be named something that sorts after all other +dnl package- or gnulib-provided .m4 files - at least for those packages +dnl that redefine AC_PROG_CC. + +dnl Redefine AC_PROG_CC so that it ends with invocations of gl_COMPILER_CLANG +dnl and gl_COMPILER_PREPARE_CHECK_DECL. +m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[ +gl_COMPILER_CLANG +gl_COMPILER_PREPARE_CHECK_DECL +]) + +# gl_ZZGNULIB +# ----------- +# Witness macro that this file has been included. Needed to force +# Automake to include this file after all other gnulib .m4 files. +AC_DEFUN([gl_ZZGNULIB]) diff --git a/3rdPartner/libiconv/tests/ARMSCII-8.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/ARMSCII-8.IRREVERSIBLE.TXT new file mode 100644 index 0000000..fce6be3 --- /dev/null +++ b/3rdPartner/libiconv/tests/ARMSCII-8.IRREVERSIBLE.TXT @@ -0,0 +1,5 @@ +0x28 0x0028 +0x29 0x0029 +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E diff --git a/3rdPartner/libiconv/tests/ARMSCII-8.TXT b/3rdPartner/libiconv/tests/ARMSCII-8.TXT new file mode 100644 index 0000000..4140992 --- /dev/null +++ b/3rdPartner/libiconv/tests/ARMSCII-8.TXT @@ -0,0 +1,254 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA2 0x0587 +0xA3 0x0589 +0xA4 0x0029 +0xA5 0x0028 +0xA6 0x00BB +0xA7 0x00AB +0xA8 0x2014 +0xA9 0x002E +0xAA 0x055D +0xAB 0x002C +0xAC 0x002D +0xAD 0x058A +0xAE 0x2026 +0xAF 0x055C +0xB0 0x055B +0xB1 0x055E +0xB2 0x0531 +0xB3 0x0561 +0xB4 0x0532 +0xB5 0x0562 +0xB6 0x0533 +0xB7 0x0563 +0xB8 0x0534 +0xB9 0x0564 +0xBA 0x0535 +0xBB 0x0565 +0xBC 0x0536 +0xBD 0x0566 +0xBE 0x0537 +0xBF 0x0567 +0xC0 0x0538 +0xC1 0x0568 +0xC2 0x0539 +0xC3 0x0569 +0xC4 0x053A +0xC5 0x056A +0xC6 0x053B +0xC7 0x056B +0xC8 0x053C +0xC9 0x056C +0xCA 0x053D +0xCB 0x056D +0xCC 0x053E +0xCD 0x056E +0xCE 0x053F +0xCF 0x056F +0xD0 0x0540 +0xD1 0x0570 +0xD2 0x0541 +0xD3 0x0571 +0xD4 0x0542 +0xD5 0x0572 +0xD6 0x0543 +0xD7 0x0573 +0xD8 0x0544 +0xD9 0x0574 +0xDA 0x0545 +0xDB 0x0575 +0xDC 0x0546 +0xDD 0x0576 +0xDE 0x0547 +0xDF 0x0577 +0xE0 0x0548 +0xE1 0x0578 +0xE2 0x0549 +0xE3 0x0579 +0xE4 0x054A +0xE5 0x057A +0xE6 0x054B +0xE7 0x057B +0xE8 0x054C +0xE9 0x057C +0xEA 0x054D +0xEB 0x057D +0xEC 0x054E +0xED 0x057E +0xEE 0x054F +0xEF 0x057F +0xF0 0x0550 +0xF1 0x0580 +0xF2 0x0551 +0xF3 0x0581 +0xF4 0x0552 +0xF5 0x0582 +0xF6 0x0553 +0xF7 0x0583 +0xF8 0x0554 +0xF9 0x0584 +0xFA 0x0555 +0xFB 0x0585 +0xFC 0x0556 +0xFD 0x0586 +0xFE 0x055A diff --git a/3rdPartner/libiconv/tests/ASCII.TXT b/3rdPartner/libiconv/tests/ASCII.TXT new file mode 100644 index 0000000..377e266 --- /dev/null +++ b/3rdPartner/libiconv/tests/ASCII.TXT @@ -0,0 +1,128 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F diff --git a/3rdPartner/libiconv/tests/ATARIST.TXT b/3rdPartner/libiconv/tests/ATARIST.TXT new file mode 100644 index 0000000..6d08b96 --- /dev/null +++ b/3rdPartner/libiconv/tests/ATARIST.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x00FF +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00A2 +0x9C 0x00A3 +0x9D 0x00A5 +0x9E 0x00DF +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x00E3 +0xB1 0x00F5 +0xB2 0x00D8 +0xB3 0x00F8 +0xB4 0x0153 +0xB5 0x0152 +0xB6 0x00C0 +0xB7 0x00C3 +0xB8 0x00D5 +0xB9 0x00A8 +0xBA 0x00B4 +0xBB 0x2020 +0xBC 0x00B6 +0xBD 0x00A9 +0xBE 0x00AE +0xBF 0x2122 +0xC0 0x0133 +0xC1 0x0132 +0xC2 0x05D0 +0xC3 0x05D1 +0xC4 0x05D2 +0xC5 0x05D3 +0xC6 0x05D4 +0xC7 0x05D5 +0xC8 0x05D6 +0xC9 0x05D7 +0xCA 0x05D8 +0xCB 0x05D9 +0xCC 0x05DB +0xCD 0x05DC +0xCE 0x05DE +0xCF 0x05E0 +0xD0 0x05E1 +0xD1 0x05E2 +0xD2 0x05E4 +0xD3 0x05E6 +0xD4 0x05E7 +0xD5 0x05E8 +0xD6 0x05E9 +0xD7 0x05EA +0xD8 0x05DF +0xD9 0x05DA +0xDA 0x05DD +0xDB 0x05E3 +0xDC 0x05E5 +0xDD 0x00A7 +0xDE 0x2227 +0xDF 0x221E +0xE0 0x03B1 +0xE1 0x03B2 +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x222E +0xED 0x03C6 +0xEE 0x2208 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x00B3 +0xFF 0x00AF diff --git a/3rdPartner/libiconv/tests/BIG5-2003.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/BIG5-2003.IRREVERSIBLE.TXT new file mode 100644 index 0000000..5c56fd3 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-2003.IRREVERSIBLE.TXT @@ -0,0 +1,4 @@ +0xF9FA 0x2554 +0xF9FB 0x2557 +0xF9FC 0x255A +0xF9FD 0x255D diff --git a/3rdPartner/libiconv/tests/BIG5-2003.TXT b/3rdPartner/libiconv/tests/BIG5-2003.TXT new file mode 100644 index 0000000..865fe38 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-2003.TXT @@ -0,0 +1,19710 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8140 0xEEB8 +0x8141 0xEEB9 +0x8142 0xEEBA +0x8143 0xEEBB +0x8144 0xEEBC +0x8145 0xEEBD +0x8146 0xEEBE +0x8147 0xEEBF +0x8148 0xEEC0 +0x8149 0xEEC1 +0x814A 0xEEC2 +0x814B 0xEEC3 +0x814C 0xEEC4 +0x814D 0xEEC5 +0x814E 0xEEC6 +0x814F 0xEEC7 +0x8150 0xEEC8 +0x8151 0xEEC9 +0x8152 0xEECA +0x8153 0xEECB +0x8154 0xEECC +0x8155 0xEECD +0x8156 0xEECE +0x8157 0xEECF +0x8158 0xEED0 +0x8159 0xEED1 +0x815A 0xEED2 +0x815B 0xEED3 +0x815C 0xEED4 +0x815D 0xEED5 +0x815E 0xEED6 +0x815F 0xEED7 +0x8160 0xEED8 +0x8161 0xEED9 +0x8162 0xEEDA +0x8163 0xEEDB +0x8164 0xEEDC +0x8165 0xEEDD +0x8166 0xEEDE +0x8167 0xEEDF +0x8168 0xEEE0 +0x8169 0xEEE1 +0x816A 0xEEE2 +0x816B 0xEEE3 +0x816C 0xEEE4 +0x816D 0xEEE5 +0x816E 0xEEE6 +0x816F 0xEEE7 +0x8170 0xEEE8 +0x8171 0xEEE9 +0x8172 0xEEEA +0x8173 0xEEEB +0x8174 0xEEEC +0x8175 0xEEED +0x8176 0xEEEE +0x8177 0xEEEF +0x8178 0xEEF0 +0x8179 0xEEF1 +0x817A 0xEEF2 +0x817B 0xEEF3 +0x817C 0xEEF4 +0x817D 0xEEF5 +0x817E 0xEEF6 +0x81A1 0xEEF7 +0x81A2 0xEEF8 +0x81A3 0xEEF9 +0x81A4 0xEEFA +0x81A5 0xEEFB +0x81A6 0xEEFC +0x81A7 0xEEFD +0x81A8 0xEEFE +0x81A9 0xEEFF +0x81AA 0xEF00 +0x81AB 0xEF01 +0x81AC 0xEF02 +0x81AD 0xEF03 +0x81AE 0xEF04 +0x81AF 0xEF05 +0x81B0 0xEF06 +0x81B1 0xEF07 +0x81B2 0xEF08 +0x81B3 0xEF09 +0x81B4 0xEF0A +0x81B5 0xEF0B +0x81B6 0xEF0C +0x81B7 0xEF0D +0x81B8 0xEF0E +0x81B9 0xEF0F +0x81BA 0xEF10 +0x81BB 0xEF11 +0x81BC 0xEF12 +0x81BD 0xEF13 +0x81BE 0xEF14 +0x81BF 0xEF15 +0x81C0 0xEF16 +0x81C1 0xEF17 +0x81C2 0xEF18 +0x81C3 0xEF19 +0x81C4 0xEF1A +0x81C5 0xEF1B +0x81C6 0xEF1C +0x81C7 0xEF1D +0x81C8 0xEF1E +0x81C9 0xEF1F +0x81CA 0xEF20 +0x81CB 0xEF21 +0x81CC 0xEF22 +0x81CD 0xEF23 +0x81CE 0xEF24 +0x81CF 0xEF25 +0x81D0 0xEF26 +0x81D1 0xEF27 +0x81D2 0xEF28 +0x81D3 0xEF29 +0x81D4 0xEF2A +0x81D5 0xEF2B +0x81D6 0xEF2C +0x81D7 0xEF2D +0x81D8 0xEF2E +0x81D9 0xEF2F +0x81DA 0xEF30 +0x81DB 0xEF31 +0x81DC 0xEF32 +0x81DD 0xEF33 +0x81DE 0xEF34 +0x81DF 0xEF35 +0x81E0 0xEF36 +0x81E1 0xEF37 +0x81E2 0xEF38 +0x81E3 0xEF39 +0x81E4 0xEF3A +0x81E5 0xEF3B +0x81E6 0xEF3C +0x81E7 0xEF3D +0x81E8 0xEF3E +0x81E9 0xEF3F +0x81EA 0xEF40 +0x81EB 0xEF41 +0x81EC 0xEF42 +0x81ED 0xEF43 +0x81EE 0xEF44 +0x81EF 0xEF45 +0x81F0 0xEF46 +0x81F1 0xEF47 +0x81F2 0xEF48 +0x81F3 0xEF49 +0x81F4 0xEF4A +0x81F5 0xEF4B +0x81F6 0xEF4C +0x81F7 0xEF4D +0x81F8 0xEF4E +0x81F9 0xEF4F +0x81FA 0xEF50 +0x81FB 0xEF51 +0x81FC 0xEF52 +0x81FD 0xEF53 +0x81FE 0xEF54 +0x8240 0xEF55 +0x8241 0xEF56 +0x8242 0xEF57 +0x8243 0xEF58 +0x8244 0xEF59 +0x8245 0xEF5A +0x8246 0xEF5B +0x8247 0xEF5C +0x8248 0xEF5D +0x8249 0xEF5E +0x824A 0xEF5F +0x824B 0xEF60 +0x824C 0xEF61 +0x824D 0xEF62 +0x824E 0xEF63 +0x824F 0xEF64 +0x8250 0xEF65 +0x8251 0xEF66 +0x8252 0xEF67 +0x8253 0xEF68 +0x8254 0xEF69 +0x8255 0xEF6A +0x8256 0xEF6B +0x8257 0xEF6C +0x8258 0xEF6D +0x8259 0xEF6E +0x825A 0xEF6F +0x825B 0xEF70 +0x825C 0xEF71 +0x825D 0xEF72 +0x825E 0xEF73 +0x825F 0xEF74 +0x8260 0xEF75 +0x8261 0xEF76 +0x8262 0xEF77 +0x8263 0xEF78 +0x8264 0xEF79 +0x8265 0xEF7A +0x8266 0xEF7B +0x8267 0xEF7C +0x8268 0xEF7D +0x8269 0xEF7E +0x826A 0xEF7F +0x826B 0xEF80 +0x826C 0xEF81 +0x826D 0xEF82 +0x826E 0xEF83 +0x826F 0xEF84 +0x8270 0xEF85 +0x8271 0xEF86 +0x8272 0xEF87 +0x8273 0xEF88 +0x8274 0xEF89 +0x8275 0xEF8A +0x8276 0xEF8B +0x8277 0xEF8C +0x8278 0xEF8D +0x8279 0xEF8E +0x827A 0xEF8F +0x827B 0xEF90 +0x827C 0xEF91 +0x827D 0xEF92 +0x827E 0xEF93 +0x82A1 0xEF94 +0x82A2 0xEF95 +0x82A3 0xEF96 +0x82A4 0xEF97 +0x82A5 0xEF98 +0x82A6 0xEF99 +0x82A7 0xEF9A +0x82A8 0xEF9B +0x82A9 0xEF9C +0x82AA 0xEF9D +0x82AB 0xEF9E +0x82AC 0xEF9F +0x82AD 0xEFA0 +0x82AE 0xEFA1 +0x82AF 0xEFA2 +0x82B0 0xEFA3 +0x82B1 0xEFA4 +0x82B2 0xEFA5 +0x82B3 0xEFA6 +0x82B4 0xEFA7 +0x82B5 0xEFA8 +0x82B6 0xEFA9 +0x82B7 0xEFAA +0x82B8 0xEFAB +0x82B9 0xEFAC +0x82BA 0xEFAD +0x82BB 0xEFAE +0x82BC 0xEFAF +0x82BD 0xEFB0 +0x82BE 0xEFB1 +0x82BF 0xEFB2 +0x82C0 0xEFB3 +0x82C1 0xEFB4 +0x82C2 0xEFB5 +0x82C3 0xEFB6 +0x82C4 0xEFB7 +0x82C5 0xEFB8 +0x82C6 0xEFB9 +0x82C7 0xEFBA +0x82C8 0xEFBB +0x82C9 0xEFBC +0x82CA 0xEFBD +0x82CB 0xEFBE +0x82CC 0xEFBF +0x82CD 0xEFC0 +0x82CE 0xEFC1 +0x82CF 0xEFC2 +0x82D0 0xEFC3 +0x82D1 0xEFC4 +0x82D2 0xEFC5 +0x82D3 0xEFC6 +0x82D4 0xEFC7 +0x82D5 0xEFC8 +0x82D6 0xEFC9 +0x82D7 0xEFCA +0x82D8 0xEFCB +0x82D9 0xEFCC +0x82DA 0xEFCD +0x82DB 0xEFCE +0x82DC 0xEFCF +0x82DD 0xEFD0 +0x82DE 0xEFD1 +0x82DF 0xEFD2 +0x82E0 0xEFD3 +0x82E1 0xEFD4 +0x82E2 0xEFD5 +0x82E3 0xEFD6 +0x82E4 0xEFD7 +0x82E5 0xEFD8 +0x82E6 0xEFD9 +0x82E7 0xEFDA +0x82E8 0xEFDB +0x82E9 0xEFDC +0x82EA 0xEFDD +0x82EB 0xEFDE +0x82EC 0xEFDF +0x82ED 0xEFE0 +0x82EE 0xEFE1 +0x82EF 0xEFE2 +0x82F0 0xEFE3 +0x82F1 0xEFE4 +0x82F2 0xEFE5 +0x82F3 0xEFE6 +0x82F4 0xEFE7 +0x82F5 0xEFE8 +0x82F6 0xEFE9 +0x82F7 0xEFEA +0x82F8 0xEFEB +0x82F9 0xEFEC +0x82FA 0xEFED +0x82FB 0xEFEE +0x82FC 0xEFEF +0x82FD 0xEFF0 +0x82FE 0xEFF1 +0x8340 0xEFF2 +0x8341 0xEFF3 +0x8342 0xEFF4 +0x8343 0xEFF5 +0x8344 0xEFF6 +0x8345 0xEFF7 +0x8346 0xEFF8 +0x8347 0xEFF9 +0x8348 0xEFFA +0x8349 0xEFFB +0x834A 0xEFFC +0x834B 0xEFFD +0x834C 0xEFFE +0x834D 0xEFFF +0x834E 0xF000 +0x834F 0xF001 +0x8350 0xF002 +0x8351 0xF003 +0x8352 0xF004 +0x8353 0xF005 +0x8354 0xF006 +0x8355 0xF007 +0x8356 0xF008 +0x8357 0xF009 +0x8358 0xF00A +0x8359 0xF00B +0x835A 0xF00C +0x835B 0xF00D +0x835C 0xF00E +0x835D 0xF00F +0x835E 0xF010 +0x835F 0xF011 +0x8360 0xF012 +0x8361 0xF013 +0x8362 0xF014 +0x8363 0xF015 +0x8364 0xF016 +0x8365 0xF017 +0x8366 0xF018 +0x8367 0xF019 +0x8368 0xF01A +0x8369 0xF01B +0x836A 0xF01C +0x836B 0xF01D +0x836C 0xF01E +0x836D 0xF01F +0x836E 0xF020 +0x836F 0xF021 +0x8370 0xF022 +0x8371 0xF023 +0x8372 0xF024 +0x8373 0xF025 +0x8374 0xF026 +0x8375 0xF027 +0x8376 0xF028 +0x8377 0xF029 +0x8378 0xF02A +0x8379 0xF02B +0x837A 0xF02C +0x837B 0xF02D +0x837C 0xF02E +0x837D 0xF02F +0x837E 0xF030 +0x83A1 0xF031 +0x83A2 0xF032 +0x83A3 0xF033 +0x83A4 0xF034 +0x83A5 0xF035 +0x83A6 0xF036 +0x83A7 0xF037 +0x83A8 0xF038 +0x83A9 0xF039 +0x83AA 0xF03A +0x83AB 0xF03B +0x83AC 0xF03C +0x83AD 0xF03D +0x83AE 0xF03E +0x83AF 0xF03F +0x83B0 0xF040 +0x83B1 0xF041 +0x83B2 0xF042 +0x83B3 0xF043 +0x83B4 0xF044 +0x83B5 0xF045 +0x83B6 0xF046 +0x83B7 0xF047 +0x83B8 0xF048 +0x83B9 0xF049 +0x83BA 0xF04A +0x83BB 0xF04B +0x83BC 0xF04C +0x83BD 0xF04D +0x83BE 0xF04E +0x83BF 0xF04F +0x83C0 0xF050 +0x83C1 0xF051 +0x83C2 0xF052 +0x83C3 0xF053 +0x83C4 0xF054 +0x83C5 0xF055 +0x83C6 0xF056 +0x83C7 0xF057 +0x83C8 0xF058 +0x83C9 0xF059 +0x83CA 0xF05A +0x83CB 0xF05B +0x83CC 0xF05C +0x83CD 0xF05D +0x83CE 0xF05E +0x83CF 0xF05F +0x83D0 0xF060 +0x83D1 0xF061 +0x83D2 0xF062 +0x83D3 0xF063 +0x83D4 0xF064 +0x83D5 0xF065 +0x83D6 0xF066 +0x83D7 0xF067 +0x83D8 0xF068 +0x83D9 0xF069 +0x83DA 0xF06A +0x83DB 0xF06B +0x83DC 0xF06C +0x83DD 0xF06D +0x83DE 0xF06E +0x83DF 0xF06F +0x83E0 0xF070 +0x83E1 0xF071 +0x83E2 0xF072 +0x83E3 0xF073 +0x83E4 0xF074 +0x83E5 0xF075 +0x83E6 0xF076 +0x83E7 0xF077 +0x83E8 0xF078 +0x83E9 0xF079 +0x83EA 0xF07A +0x83EB 0xF07B +0x83EC 0xF07C +0x83ED 0xF07D +0x83EE 0xF07E +0x83EF 0xF07F +0x83F0 0xF080 +0x83F1 0xF081 +0x83F2 0xF082 +0x83F3 0xF083 +0x83F4 0xF084 +0x83F5 0xF085 +0x83F6 0xF086 +0x83F7 0xF087 +0x83F8 0xF088 +0x83F9 0xF089 +0x83FA 0xF08A +0x83FB 0xF08B +0x83FC 0xF08C +0x83FD 0xF08D +0x83FE 0xF08E +0x8440 0xF08F +0x8441 0xF090 +0x8442 0xF091 +0x8443 0xF092 +0x8444 0xF093 +0x8445 0xF094 +0x8446 0xF095 +0x8447 0xF096 +0x8448 0xF097 +0x8449 0xF098 +0x844A 0xF099 +0x844B 0xF09A +0x844C 0xF09B +0x844D 0xF09C +0x844E 0xF09D +0x844F 0xF09E +0x8450 0xF09F +0x8451 0xF0A0 +0x8452 0xF0A1 +0x8453 0xF0A2 +0x8454 0xF0A3 +0x8455 0xF0A4 +0x8456 0xF0A5 +0x8457 0xF0A6 +0x8458 0xF0A7 +0x8459 0xF0A8 +0x845A 0xF0A9 +0x845B 0xF0AA +0x845C 0xF0AB +0x845D 0xF0AC +0x845E 0xF0AD +0x845F 0xF0AE +0x8460 0xF0AF +0x8461 0xF0B0 +0x8462 0xF0B1 +0x8463 0xF0B2 +0x8464 0xF0B3 +0x8465 0xF0B4 +0x8466 0xF0B5 +0x8467 0xF0B6 +0x8468 0xF0B7 +0x8469 0xF0B8 +0x846A 0xF0B9 +0x846B 0xF0BA +0x846C 0xF0BB +0x846D 0xF0BC +0x846E 0xF0BD +0x846F 0xF0BE +0x8470 0xF0BF +0x8471 0xF0C0 +0x8472 0xF0C1 +0x8473 0xF0C2 +0x8474 0xF0C3 +0x8475 0xF0C4 +0x8476 0xF0C5 +0x8477 0xF0C6 +0x8478 0xF0C7 +0x8479 0xF0C8 +0x847A 0xF0C9 +0x847B 0xF0CA +0x847C 0xF0CB +0x847D 0xF0CC +0x847E 0xF0CD +0x84A1 0xF0CE +0x84A2 0xF0CF +0x84A3 0xF0D0 +0x84A4 0xF0D1 +0x84A5 0xF0D2 +0x84A6 0xF0D3 +0x84A7 0xF0D4 +0x84A8 0xF0D5 +0x84A9 0xF0D6 +0x84AA 0xF0D7 +0x84AB 0xF0D8 +0x84AC 0xF0D9 +0x84AD 0xF0DA +0x84AE 0xF0DB +0x84AF 0xF0DC +0x84B0 0xF0DD +0x84B1 0xF0DE +0x84B2 0xF0DF +0x84B3 0xF0E0 +0x84B4 0xF0E1 +0x84B5 0xF0E2 +0x84B6 0xF0E3 +0x84B7 0xF0E4 +0x84B8 0xF0E5 +0x84B9 0xF0E6 +0x84BA 0xF0E7 +0x84BB 0xF0E8 +0x84BC 0xF0E9 +0x84BD 0xF0EA +0x84BE 0xF0EB +0x84BF 0xF0EC +0x84C0 0xF0ED +0x84C1 0xF0EE +0x84C2 0xF0EF +0x84C3 0xF0F0 +0x84C4 0xF0F1 +0x84C5 0xF0F2 +0x84C6 0xF0F3 +0x84C7 0xF0F4 +0x84C8 0xF0F5 +0x84C9 0xF0F6 +0x84CA 0xF0F7 +0x84CB 0xF0F8 +0x84CC 0xF0F9 +0x84CD 0xF0FA +0x84CE 0xF0FB +0x84CF 0xF0FC +0x84D0 0xF0FD +0x84D1 0xF0FE +0x84D2 0xF0FF +0x84D3 0xF100 +0x84D4 0xF101 +0x84D5 0xF102 +0x84D6 0xF103 +0x84D7 0xF104 +0x84D8 0xF105 +0x84D9 0xF106 +0x84DA 0xF107 +0x84DB 0xF108 +0x84DC 0xF109 +0x84DD 0xF10A +0x84DE 0xF10B +0x84DF 0xF10C +0x84E0 0xF10D +0x84E1 0xF10E +0x84E2 0xF10F +0x84E3 0xF110 +0x84E4 0xF111 +0x84E5 0xF112 +0x84E6 0xF113 +0x84E7 0xF114 +0x84E8 0xF115 +0x84E9 0xF116 +0x84EA 0xF117 +0x84EB 0xF118 +0x84EC 0xF119 +0x84ED 0xF11A +0x84EE 0xF11B +0x84EF 0xF11C +0x84F0 0xF11D +0x84F1 0xF11E +0x84F2 0xF11F +0x84F3 0xF120 +0x84F4 0xF121 +0x84F5 0xF122 +0x84F6 0xF123 +0x84F7 0xF124 +0x84F8 0xF125 +0x84F9 0xF126 +0x84FA 0xF127 +0x84FB 0xF128 +0x84FC 0xF129 +0x84FD 0xF12A +0x84FE 0xF12B +0x8540 0xF12C +0x8541 0xF12D +0x8542 0xF12E +0x8543 0xF12F +0x8544 0xF130 +0x8545 0xF131 +0x8546 0xF132 +0x8547 0xF133 +0x8548 0xF134 +0x8549 0xF135 +0x854A 0xF136 +0x854B 0xF137 +0x854C 0xF138 +0x854D 0xF139 +0x854E 0xF13A +0x854F 0xF13B +0x8550 0xF13C +0x8551 0xF13D +0x8552 0xF13E +0x8553 0xF13F +0x8554 0xF140 +0x8555 0xF141 +0x8556 0xF142 +0x8557 0xF143 +0x8558 0xF144 +0x8559 0xF145 +0x855A 0xF146 +0x855B 0xF147 +0x855C 0xF148 +0x855D 0xF149 +0x855E 0xF14A +0x855F 0xF14B +0x8560 0xF14C +0x8561 0xF14D +0x8562 0xF14E +0x8563 0xF14F +0x8564 0xF150 +0x8565 0xF151 +0x8566 0xF152 +0x8567 0xF153 +0x8568 0xF154 +0x8569 0xF155 +0x856A 0xF156 +0x856B 0xF157 +0x856C 0xF158 +0x856D 0xF159 +0x856E 0xF15A +0x856F 0xF15B +0x8570 0xF15C +0x8571 0xF15D +0x8572 0xF15E +0x8573 0xF15F +0x8574 0xF160 +0x8575 0xF161 +0x8576 0xF162 +0x8577 0xF163 +0x8578 0xF164 +0x8579 0xF165 +0x857A 0xF166 +0x857B 0xF167 +0x857C 0xF168 +0x857D 0xF169 +0x857E 0xF16A +0x85A1 0xF16B +0x85A2 0xF16C +0x85A3 0xF16D +0x85A4 0xF16E +0x85A5 0xF16F +0x85A6 0xF170 +0x85A7 0xF171 +0x85A8 0xF172 +0x85A9 0xF173 +0x85AA 0xF174 +0x85AB 0xF175 +0x85AC 0xF176 +0x85AD 0xF177 +0x85AE 0xF178 +0x85AF 0xF179 +0x85B0 0xF17A +0x85B1 0xF17B +0x85B2 0xF17C +0x85B3 0xF17D +0x85B4 0xF17E +0x85B5 0xF17F +0x85B6 0xF180 +0x85B7 0xF181 +0x85B8 0xF182 +0x85B9 0xF183 +0x85BA 0xF184 +0x85BB 0xF185 +0x85BC 0xF186 +0x85BD 0xF187 +0x85BE 0xF188 +0x85BF 0xF189 +0x85C0 0xF18A +0x85C1 0xF18B +0x85C2 0xF18C +0x85C3 0xF18D +0x85C4 0xF18E +0x85C5 0xF18F +0x85C6 0xF190 +0x85C7 0xF191 +0x85C8 0xF192 +0x85C9 0xF193 +0x85CA 0xF194 +0x85CB 0xF195 +0x85CC 0xF196 +0x85CD 0xF197 +0x85CE 0xF198 +0x85CF 0xF199 +0x85D0 0xF19A +0x85D1 0xF19B +0x85D2 0xF19C +0x85D3 0xF19D +0x85D4 0xF19E +0x85D5 0xF19F +0x85D6 0xF1A0 +0x85D7 0xF1A1 +0x85D8 0xF1A2 +0x85D9 0xF1A3 +0x85DA 0xF1A4 +0x85DB 0xF1A5 +0x85DC 0xF1A6 +0x85DD 0xF1A7 +0x85DE 0xF1A8 +0x85DF 0xF1A9 +0x85E0 0xF1AA +0x85E1 0xF1AB +0x85E2 0xF1AC +0x85E3 0xF1AD +0x85E4 0xF1AE +0x85E5 0xF1AF +0x85E6 0xF1B0 +0x85E7 0xF1B1 +0x85E8 0xF1B2 +0x85E9 0xF1B3 +0x85EA 0xF1B4 +0x85EB 0xF1B5 +0x85EC 0xF1B6 +0x85ED 0xF1B7 +0x85EE 0xF1B8 +0x85EF 0xF1B9 +0x85F0 0xF1BA +0x85F1 0xF1BB +0x85F2 0xF1BC +0x85F3 0xF1BD +0x85F4 0xF1BE +0x85F5 0xF1BF +0x85F6 0xF1C0 +0x85F7 0xF1C1 +0x85F8 0xF1C2 +0x85F9 0xF1C3 +0x85FA 0xF1C4 +0x85FB 0xF1C5 +0x85FC 0xF1C6 +0x85FD 0xF1C7 +0x85FE 0xF1C8 +0x8640 0xF1C9 +0x8641 0xF1CA +0x8642 0xF1CB +0x8643 0xF1CC +0x8644 0xF1CD +0x8645 0xF1CE +0x8646 0xF1CF +0x8647 0xF1D0 +0x8648 0xF1D1 +0x8649 0xF1D2 +0x864A 0xF1D3 +0x864B 0xF1D4 +0x864C 0xF1D5 +0x864D 0xF1D6 +0x864E 0xF1D7 +0x864F 0xF1D8 +0x8650 0xF1D9 +0x8651 0xF1DA +0x8652 0xF1DB +0x8653 0xF1DC +0x8654 0xF1DD +0x8655 0xF1DE +0x8656 0xF1DF +0x8657 0xF1E0 +0x8658 0xF1E1 +0x8659 0xF1E2 +0x865A 0xF1E3 +0x865B 0xF1E4 +0x865C 0xF1E5 +0x865D 0xF1E6 +0x865E 0xF1E7 +0x865F 0xF1E8 +0x8660 0xF1E9 +0x8661 0xF1EA +0x8662 0xF1EB +0x8663 0xF1EC +0x8664 0xF1ED +0x8665 0xF1EE +0x8666 0xF1EF +0x8667 0xF1F0 +0x8668 0xF1F1 +0x8669 0xF1F2 +0x866A 0xF1F3 +0x866B 0xF1F4 +0x866C 0xF1F5 +0x866D 0xF1F6 +0x866E 0xF1F7 +0x866F 0xF1F8 +0x8670 0xF1F9 +0x8671 0xF1FA +0x8672 0xF1FB +0x8673 0xF1FC +0x8674 0xF1FD +0x8675 0xF1FE +0x8676 0xF1FF +0x8677 0xF200 +0x8678 0xF201 +0x8679 0xF202 +0x867A 0xF203 +0x867B 0xF204 +0x867C 0xF205 +0x867D 0xF206 +0x867E 0xF207 +0x86A1 0xF208 +0x86A2 0xF209 +0x86A3 0xF20A +0x86A4 0xF20B +0x86A5 0xF20C +0x86A6 0xF20D +0x86A7 0xF20E +0x86A8 0xF20F +0x86A9 0xF210 +0x86AA 0xF211 +0x86AB 0xF212 +0x86AC 0xF213 +0x86AD 0xF214 +0x86AE 0xF215 +0x86AF 0xF216 +0x86B0 0xF217 +0x86B1 0xF218 +0x86B2 0xF219 +0x86B3 0xF21A +0x86B4 0xF21B +0x86B5 0xF21C +0x86B6 0xF21D +0x86B7 0xF21E +0x86B8 0xF21F +0x86B9 0xF220 +0x86BA 0xF221 +0x86BB 0xF222 +0x86BC 0xF223 +0x86BD 0xF224 +0x86BE 0xF225 +0x86BF 0xF226 +0x86C0 0xF227 +0x86C1 0xF228 +0x86C2 0xF229 +0x86C3 0xF22A +0x86C4 0xF22B +0x86C5 0xF22C +0x86C6 0xF22D +0x86C7 0xF22E +0x86C8 0xF22F +0x86C9 0xF230 +0x86CA 0xF231 +0x86CB 0xF232 +0x86CC 0xF233 +0x86CD 0xF234 +0x86CE 0xF235 +0x86CF 0xF236 +0x86D0 0xF237 +0x86D1 0xF238 +0x86D2 0xF239 +0x86D3 0xF23A +0x86D4 0xF23B +0x86D5 0xF23C +0x86D6 0xF23D +0x86D7 0xF23E +0x86D8 0xF23F +0x86D9 0xF240 +0x86DA 0xF241 +0x86DB 0xF242 +0x86DC 0xF243 +0x86DD 0xF244 +0x86DE 0xF245 +0x86DF 0xF246 +0x86E0 0xF247 +0x86E1 0xF248 +0x86E2 0xF249 +0x86E3 0xF24A +0x86E4 0xF24B +0x86E5 0xF24C +0x86E6 0xF24D +0x86E7 0xF24E +0x86E8 0xF24F +0x86E9 0xF250 +0x86EA 0xF251 +0x86EB 0xF252 +0x86EC 0xF253 +0x86ED 0xF254 +0x86EE 0xF255 +0x86EF 0xF256 +0x86F0 0xF257 +0x86F1 0xF258 +0x86F2 0xF259 +0x86F3 0xF25A +0x86F4 0xF25B +0x86F5 0xF25C +0x86F6 0xF25D +0x86F7 0xF25E +0x86F8 0xF25F +0x86F9 0xF260 +0x86FA 0xF261 +0x86FB 0xF262 +0x86FC 0xF263 +0x86FD 0xF264 +0x86FE 0xF265 +0x8740 0xF266 +0x8741 0xF267 +0x8742 0xF268 +0x8743 0xF269 +0x8744 0xF26A +0x8745 0xF26B +0x8746 0xF26C +0x8747 0xF26D +0x8748 0xF26E +0x8749 0xF26F +0x874A 0xF270 +0x874B 0xF271 +0x874C 0xF272 +0x874D 0xF273 +0x874E 0xF274 +0x874F 0xF275 +0x8750 0xF276 +0x8751 0xF277 +0x8752 0xF278 +0x8753 0xF279 +0x8754 0xF27A +0x8755 0xF27B +0x8756 0xF27C +0x8757 0xF27D +0x8758 0xF27E +0x8759 0xF27F +0x875A 0xF280 +0x875B 0xF281 +0x875C 0xF282 +0x875D 0xF283 +0x875E 0xF284 +0x875F 0xF285 +0x8760 0xF286 +0x8761 0xF287 +0x8762 0xF288 +0x8763 0xF289 +0x8764 0xF28A +0x8765 0xF28B +0x8766 0xF28C +0x8767 0xF28D +0x8768 0xF28E +0x8769 0xF28F +0x876A 0xF290 +0x876B 0xF291 +0x876C 0xF292 +0x876D 0xF293 +0x876E 0xF294 +0x876F 0xF295 +0x8770 0xF296 +0x8771 0xF297 +0x8772 0xF298 +0x8773 0xF299 +0x8774 0xF29A +0x8775 0xF29B +0x8776 0xF29C +0x8777 0xF29D +0x8778 0xF29E +0x8779 0xF29F +0x877A 0xF2A0 +0x877B 0xF2A1 +0x877C 0xF2A2 +0x877D 0xF2A3 +0x877E 0xF2A4 +0x87A1 0xF2A5 +0x87A2 0xF2A6 +0x87A3 0xF2A7 +0x87A4 0xF2A8 +0x87A5 0xF2A9 +0x87A6 0xF2AA +0x87A7 0xF2AB +0x87A8 0xF2AC +0x87A9 0xF2AD +0x87AA 0xF2AE +0x87AB 0xF2AF +0x87AC 0xF2B0 +0x87AD 0xF2B1 +0x87AE 0xF2B2 +0x87AF 0xF2B3 +0x87B0 0xF2B4 +0x87B1 0xF2B5 +0x87B2 0xF2B6 +0x87B3 0xF2B7 +0x87B4 0xF2B8 +0x87B5 0xF2B9 +0x87B6 0xF2BA +0x87B7 0xF2BB +0x87B8 0xF2BC +0x87B9 0xF2BD +0x87BA 0xF2BE +0x87BB 0xF2BF +0x87BC 0xF2C0 +0x87BD 0xF2C1 +0x87BE 0xF2C2 +0x87BF 0xF2C3 +0x87C0 0xF2C4 +0x87C1 0xF2C5 +0x87C2 0xF2C6 +0x87C3 0xF2C7 +0x87C4 0xF2C8 +0x87C5 0xF2C9 +0x87C6 0xF2CA +0x87C7 0xF2CB +0x87C8 0xF2CC +0x87C9 0xF2CD +0x87CA 0xF2CE +0x87CB 0xF2CF +0x87CC 0xF2D0 +0x87CD 0xF2D1 +0x87CE 0xF2D2 +0x87CF 0xF2D3 +0x87D0 0xF2D4 +0x87D1 0xF2D5 +0x87D2 0xF2D6 +0x87D3 0xF2D7 +0x87D4 0xF2D8 +0x87D5 0xF2D9 +0x87D6 0xF2DA +0x87D7 0xF2DB +0x87D8 0xF2DC +0x87D9 0xF2DD +0x87DA 0xF2DE +0x87DB 0xF2DF +0x87DC 0xF2E0 +0x87DD 0xF2E1 +0x87DE 0xF2E2 +0x87DF 0xF2E3 +0x87E0 0xF2E4 +0x87E1 0xF2E5 +0x87E2 0xF2E6 +0x87E3 0xF2E7 +0x87E4 0xF2E8 +0x87E5 0xF2E9 +0x87E6 0xF2EA +0x87E7 0xF2EB +0x87E8 0xF2EC +0x87E9 0xF2ED +0x87EA 0xF2EE +0x87EB 0xF2EF +0x87EC 0xF2F0 +0x87ED 0xF2F1 +0x87EE 0xF2F2 +0x87EF 0xF2F3 +0x87F0 0xF2F4 +0x87F1 0xF2F5 +0x87F2 0xF2F6 +0x87F3 0xF2F7 +0x87F4 0xF2F8 +0x87F5 0xF2F9 +0x87F6 0xF2FA +0x87F7 0xF2FB +0x87F8 0xF2FC +0x87F9 0xF2FD +0x87FA 0xF2FE +0x87FB 0xF2FF +0x87FC 0xF300 +0x87FD 0xF301 +0x87FE 0xF302 +0x8840 0xF303 +0x8841 0xF304 +0x8842 0xF305 +0x8843 0xF306 +0x8844 0xF307 +0x8845 0xF308 +0x8846 0xF309 +0x8847 0xF30A +0x8848 0xF30B +0x8849 0xF30C +0x884A 0xF30D +0x884B 0xF30E +0x884C 0xF30F +0x884D 0xF310 +0x884E 0xF311 +0x884F 0xF312 +0x8850 0xF313 +0x8851 0xF314 +0x8852 0xF315 +0x8853 0xF316 +0x8854 0xF317 +0x8855 0xF318 +0x8856 0xF319 +0x8857 0xF31A +0x8858 0xF31B +0x8859 0xF31C +0x885A 0xF31D +0x885B 0xF31E +0x885C 0xF31F +0x885D 0xF320 +0x885E 0xF321 +0x885F 0xF322 +0x8860 0xF323 +0x8861 0xF324 +0x8862 0xF325 +0x8863 0xF326 +0x8864 0xF327 +0x8865 0xF328 +0x8866 0xF329 +0x8867 0xF32A +0x8868 0xF32B +0x8869 0xF32C +0x886A 0xF32D +0x886B 0xF32E +0x886C 0xF32F +0x886D 0xF330 +0x886E 0xF331 +0x886F 0xF332 +0x8870 0xF333 +0x8871 0xF334 +0x8872 0xF335 +0x8873 0xF336 +0x8874 0xF337 +0x8875 0xF338 +0x8876 0xF339 +0x8877 0xF33A +0x8878 0xF33B +0x8879 0xF33C +0x887A 0xF33D +0x887B 0xF33E +0x887C 0xF33F +0x887D 0xF340 +0x887E 0xF341 +0x88A1 0xF342 +0x88A2 0xF343 +0x88A3 0xF344 +0x88A4 0xF345 +0x88A5 0xF346 +0x88A6 0xF347 +0x88A7 0xF348 +0x88A8 0xF349 +0x88A9 0xF34A +0x88AA 0xF34B +0x88AB 0xF34C +0x88AC 0xF34D +0x88AD 0xF34E +0x88AE 0xF34F +0x88AF 0xF350 +0x88B0 0xF351 +0x88B1 0xF352 +0x88B2 0xF353 +0x88B3 0xF354 +0x88B4 0xF355 +0x88B5 0xF356 +0x88B6 0xF357 +0x88B7 0xF358 +0x88B8 0xF359 +0x88B9 0xF35A +0x88BA 0xF35B +0x88BB 0xF35C +0x88BC 0xF35D +0x88BD 0xF35E +0x88BE 0xF35F +0x88BF 0xF360 +0x88C0 0xF361 +0x88C1 0xF362 +0x88C2 0xF363 +0x88C3 0xF364 +0x88C4 0xF365 +0x88C5 0xF366 +0x88C6 0xF367 +0x88C7 0xF368 +0x88C8 0xF369 +0x88C9 0xF36A +0x88CA 0xF36B +0x88CB 0xF36C +0x88CC 0xF36D +0x88CD 0xF36E +0x88CE 0xF36F +0x88CF 0xF370 +0x88D0 0xF371 +0x88D1 0xF372 +0x88D2 0xF373 +0x88D3 0xF374 +0x88D4 0xF375 +0x88D5 0xF376 +0x88D6 0xF377 +0x88D7 0xF378 +0x88D8 0xF379 +0x88D9 0xF37A +0x88DA 0xF37B +0x88DB 0xF37C +0x88DC 0xF37D +0x88DD 0xF37E +0x88DE 0xF37F +0x88DF 0xF380 +0x88E0 0xF381 +0x88E1 0xF382 +0x88E2 0xF383 +0x88E3 0xF384 +0x88E4 0xF385 +0x88E5 0xF386 +0x88E6 0xF387 +0x88E7 0xF388 +0x88E8 0xF389 +0x88E9 0xF38A +0x88EA 0xF38B +0x88EB 0xF38C +0x88EC 0xF38D +0x88ED 0xF38E +0x88EE 0xF38F +0x88EF 0xF390 +0x88F0 0xF391 +0x88F1 0xF392 +0x88F2 0xF393 +0x88F3 0xF394 +0x88F4 0xF395 +0x88F5 0xF396 +0x88F6 0xF397 +0x88F7 0xF398 +0x88F8 0xF399 +0x88F9 0xF39A +0x88FA 0xF39B +0x88FB 0xF39C +0x88FC 0xF39D +0x88FD 0xF39E +0x88FE 0xF39F +0x8940 0xF3A0 +0x8941 0xF3A1 +0x8942 0xF3A2 +0x8943 0xF3A3 +0x8944 0xF3A4 +0x8945 0xF3A5 +0x8946 0xF3A6 +0x8947 0xF3A7 +0x8948 0xF3A8 +0x8949 0xF3A9 +0x894A 0xF3AA +0x894B 0xF3AB +0x894C 0xF3AC +0x894D 0xF3AD +0x894E 0xF3AE +0x894F 0xF3AF +0x8950 0xF3B0 +0x8951 0xF3B1 +0x8952 0xF3B2 +0x8953 0xF3B3 +0x8954 0xF3B4 +0x8955 0xF3B5 +0x8956 0xF3B6 +0x8957 0xF3B7 +0x8958 0xF3B8 +0x8959 0xF3B9 +0x895A 0xF3BA +0x895B 0xF3BB +0x895C 0xF3BC +0x895D 0xF3BD +0x895E 0xF3BE +0x895F 0xF3BF +0x8960 0xF3C0 +0x8961 0xF3C1 +0x8962 0xF3C2 +0x8963 0xF3C3 +0x8964 0xF3C4 +0x8965 0xF3C5 +0x8966 0xF3C6 +0x8967 0xF3C7 +0x8968 0xF3C8 +0x8969 0xF3C9 +0x896A 0xF3CA +0x896B 0xF3CB +0x896C 0xF3CC +0x896D 0xF3CD +0x896E 0xF3CE +0x896F 0xF3CF +0x8970 0xF3D0 +0x8971 0xF3D1 +0x8972 0xF3D2 +0x8973 0xF3D3 +0x8974 0xF3D4 +0x8975 0xF3D5 +0x8976 0xF3D6 +0x8977 0xF3D7 +0x8978 0xF3D8 +0x8979 0xF3D9 +0x897A 0xF3DA +0x897B 0xF3DB +0x897C 0xF3DC +0x897D 0xF3DD +0x897E 0xF3DE +0x89A1 0xF3DF +0x89A2 0xF3E0 +0x89A3 0xF3E1 +0x89A4 0xF3E2 +0x89A5 0xF3E3 +0x89A6 0xF3E4 +0x89A7 0xF3E5 +0x89A8 0xF3E6 +0x89A9 0xF3E7 +0x89AA 0xF3E8 +0x89AB 0xF3E9 +0x89AC 0xF3EA +0x89AD 0xF3EB +0x89AE 0xF3EC +0x89AF 0xF3ED +0x89B0 0xF3EE +0x89B1 0xF3EF +0x89B2 0xF3F0 +0x89B3 0xF3F1 +0x89B4 0xF3F2 +0x89B5 0xF3F3 +0x89B6 0xF3F4 +0x89B7 0xF3F5 +0x89B8 0xF3F6 +0x89B9 0xF3F7 +0x89BA 0xF3F8 +0x89BB 0xF3F9 +0x89BC 0xF3FA +0x89BD 0xF3FB +0x89BE 0xF3FC +0x89BF 0xF3FD +0x89C0 0xF3FE +0x89C1 0xF3FF +0x89C2 0xF400 +0x89C3 0xF401 +0x89C4 0xF402 +0x89C5 0xF403 +0x89C6 0xF404 +0x89C7 0xF405 +0x89C8 0xF406 +0x89C9 0xF407 +0x89CA 0xF408 +0x89CB 0xF409 +0x89CC 0xF40A +0x89CD 0xF40B +0x89CE 0xF40C +0x89CF 0xF40D +0x89D0 0xF40E +0x89D1 0xF40F +0x89D2 0xF410 +0x89D3 0xF411 +0x89D4 0xF412 +0x89D5 0xF413 +0x89D6 0xF414 +0x89D7 0xF415 +0x89D8 0xF416 +0x89D9 0xF417 +0x89DA 0xF418 +0x89DB 0xF419 +0x89DC 0xF41A +0x89DD 0xF41B +0x89DE 0xF41C +0x89DF 0xF41D +0x89E0 0xF41E +0x89E1 0xF41F +0x89E2 0xF420 +0x89E3 0xF421 +0x89E4 0xF422 +0x89E5 0xF423 +0x89E6 0xF424 +0x89E7 0xF425 +0x89E8 0xF426 +0x89E9 0xF427 +0x89EA 0xF428 +0x89EB 0xF429 +0x89EC 0xF42A +0x89ED 0xF42B +0x89EE 0xF42C +0x89EF 0xF42D +0x89F0 0xF42E +0x89F1 0xF42F +0x89F2 0xF430 +0x89F3 0xF431 +0x89F4 0xF432 +0x89F5 0xF433 +0x89F6 0xF434 +0x89F7 0xF435 +0x89F8 0xF436 +0x89F9 0xF437 +0x89FA 0xF438 +0x89FB 0xF439 +0x89FC 0xF43A +0x89FD 0xF43B +0x89FE 0xF43C +0x8A40 0xF43D +0x8A41 0xF43E +0x8A42 0xF43F +0x8A43 0xF440 +0x8A44 0xF441 +0x8A45 0xF442 +0x8A46 0xF443 +0x8A47 0xF444 +0x8A48 0xF445 +0x8A49 0xF446 +0x8A4A 0xF447 +0x8A4B 0xF448 +0x8A4C 0xF449 +0x8A4D 0xF44A +0x8A4E 0xF44B +0x8A4F 0xF44C +0x8A50 0xF44D +0x8A51 0xF44E +0x8A52 0xF44F +0x8A53 0xF450 +0x8A54 0xF451 +0x8A55 0xF452 +0x8A56 0xF453 +0x8A57 0xF454 +0x8A58 0xF455 +0x8A59 0xF456 +0x8A5A 0xF457 +0x8A5B 0xF458 +0x8A5C 0xF459 +0x8A5D 0xF45A +0x8A5E 0xF45B +0x8A5F 0xF45C +0x8A60 0xF45D +0x8A61 0xF45E +0x8A62 0xF45F +0x8A63 0xF460 +0x8A64 0xF461 +0x8A65 0xF462 +0x8A66 0xF463 +0x8A67 0xF464 +0x8A68 0xF465 +0x8A69 0xF466 +0x8A6A 0xF467 +0x8A6B 0xF468 +0x8A6C 0xF469 +0x8A6D 0xF46A +0x8A6E 0xF46B +0x8A6F 0xF46C +0x8A70 0xF46D +0x8A71 0xF46E +0x8A72 0xF46F +0x8A73 0xF470 +0x8A74 0xF471 +0x8A75 0xF472 +0x8A76 0xF473 +0x8A77 0xF474 +0x8A78 0xF475 +0x8A79 0xF476 +0x8A7A 0xF477 +0x8A7B 0xF478 +0x8A7C 0xF479 +0x8A7D 0xF47A +0x8A7E 0xF47B +0x8AA1 0xF47C +0x8AA2 0xF47D +0x8AA3 0xF47E +0x8AA4 0xF47F +0x8AA5 0xF480 +0x8AA6 0xF481 +0x8AA7 0xF482 +0x8AA8 0xF483 +0x8AA9 0xF484 +0x8AAA 0xF485 +0x8AAB 0xF486 +0x8AAC 0xF487 +0x8AAD 0xF488 +0x8AAE 0xF489 +0x8AAF 0xF48A +0x8AB0 0xF48B +0x8AB1 0xF48C +0x8AB2 0xF48D +0x8AB3 0xF48E +0x8AB4 0xF48F +0x8AB5 0xF490 +0x8AB6 0xF491 +0x8AB7 0xF492 +0x8AB8 0xF493 +0x8AB9 0xF494 +0x8ABA 0xF495 +0x8ABB 0xF496 +0x8ABC 0xF497 +0x8ABD 0xF498 +0x8ABE 0xF499 +0x8ABF 0xF49A +0x8AC0 0xF49B +0x8AC1 0xF49C +0x8AC2 0xF49D +0x8AC3 0xF49E +0x8AC4 0xF49F +0x8AC5 0xF4A0 +0x8AC6 0xF4A1 +0x8AC7 0xF4A2 +0x8AC8 0xF4A3 +0x8AC9 0xF4A4 +0x8ACA 0xF4A5 +0x8ACB 0xF4A6 +0x8ACC 0xF4A7 +0x8ACD 0xF4A8 +0x8ACE 0xF4A9 +0x8ACF 0xF4AA +0x8AD0 0xF4AB +0x8AD1 0xF4AC +0x8AD2 0xF4AD +0x8AD3 0xF4AE +0x8AD4 0xF4AF +0x8AD5 0xF4B0 +0x8AD6 0xF4B1 +0x8AD7 0xF4B2 +0x8AD8 0xF4B3 +0x8AD9 0xF4B4 +0x8ADA 0xF4B5 +0x8ADB 0xF4B6 +0x8ADC 0xF4B7 +0x8ADD 0xF4B8 +0x8ADE 0xF4B9 +0x8ADF 0xF4BA +0x8AE0 0xF4BB +0x8AE1 0xF4BC +0x8AE2 0xF4BD +0x8AE3 0xF4BE +0x8AE4 0xF4BF +0x8AE5 0xF4C0 +0x8AE6 0xF4C1 +0x8AE7 0xF4C2 +0x8AE8 0xF4C3 +0x8AE9 0xF4C4 +0x8AEA 0xF4C5 +0x8AEB 0xF4C6 +0x8AEC 0xF4C7 +0x8AED 0xF4C8 +0x8AEE 0xF4C9 +0x8AEF 0xF4CA +0x8AF0 0xF4CB +0x8AF1 0xF4CC +0x8AF2 0xF4CD +0x8AF3 0xF4CE +0x8AF4 0xF4CF +0x8AF5 0xF4D0 +0x8AF6 0xF4D1 +0x8AF7 0xF4D2 +0x8AF8 0xF4D3 +0x8AF9 0xF4D4 +0x8AFA 0xF4D5 +0x8AFB 0xF4D6 +0x8AFC 0xF4D7 +0x8AFD 0xF4D8 +0x8AFE 0xF4D9 +0x8B40 0xF4DA +0x8B41 0xF4DB +0x8B42 0xF4DC +0x8B43 0xF4DD +0x8B44 0xF4DE +0x8B45 0xF4DF +0x8B46 0xF4E0 +0x8B47 0xF4E1 +0x8B48 0xF4E2 +0x8B49 0xF4E3 +0x8B4A 0xF4E4 +0x8B4B 0xF4E5 +0x8B4C 0xF4E6 +0x8B4D 0xF4E7 +0x8B4E 0xF4E8 +0x8B4F 0xF4E9 +0x8B50 0xF4EA +0x8B51 0xF4EB +0x8B52 0xF4EC +0x8B53 0xF4ED +0x8B54 0xF4EE +0x8B55 0xF4EF +0x8B56 0xF4F0 +0x8B57 0xF4F1 +0x8B58 0xF4F2 +0x8B59 0xF4F3 +0x8B5A 0xF4F4 +0x8B5B 0xF4F5 +0x8B5C 0xF4F6 +0x8B5D 0xF4F7 +0x8B5E 0xF4F8 +0x8B5F 0xF4F9 +0x8B60 0xF4FA +0x8B61 0xF4FB +0x8B62 0xF4FC +0x8B63 0xF4FD +0x8B64 0xF4FE +0x8B65 0xF4FF +0x8B66 0xF500 +0x8B67 0xF501 +0x8B68 0xF502 +0x8B69 0xF503 +0x8B6A 0xF504 +0x8B6B 0xF505 +0x8B6C 0xF506 +0x8B6D 0xF507 +0x8B6E 0xF508 +0x8B6F 0xF509 +0x8B70 0xF50A +0x8B71 0xF50B +0x8B72 0xF50C +0x8B73 0xF50D +0x8B74 0xF50E +0x8B75 0xF50F +0x8B76 0xF510 +0x8B77 0xF511 +0x8B78 0xF512 +0x8B79 0xF513 +0x8B7A 0xF514 +0x8B7B 0xF515 +0x8B7C 0xF516 +0x8B7D 0xF517 +0x8B7E 0xF518 +0x8BA1 0xF519 +0x8BA2 0xF51A +0x8BA3 0xF51B +0x8BA4 0xF51C +0x8BA5 0xF51D +0x8BA6 0xF51E +0x8BA7 0xF51F +0x8BA8 0xF520 +0x8BA9 0xF521 +0x8BAA 0xF522 +0x8BAB 0xF523 +0x8BAC 0xF524 +0x8BAD 0xF525 +0x8BAE 0xF526 +0x8BAF 0xF527 +0x8BB0 0xF528 +0x8BB1 0xF529 +0x8BB2 0xF52A +0x8BB3 0xF52B +0x8BB4 0xF52C +0x8BB5 0xF52D +0x8BB6 0xF52E +0x8BB7 0xF52F +0x8BB8 0xF530 +0x8BB9 0xF531 +0x8BBA 0xF532 +0x8BBB 0xF533 +0x8BBC 0xF534 +0x8BBD 0xF535 +0x8BBE 0xF536 +0x8BBF 0xF537 +0x8BC0 0xF538 +0x8BC1 0xF539 +0x8BC2 0xF53A +0x8BC3 0xF53B +0x8BC4 0xF53C +0x8BC5 0xF53D +0x8BC6 0xF53E +0x8BC7 0xF53F +0x8BC8 0xF540 +0x8BC9 0xF541 +0x8BCA 0xF542 +0x8BCB 0xF543 +0x8BCC 0xF544 +0x8BCD 0xF545 +0x8BCE 0xF546 +0x8BCF 0xF547 +0x8BD0 0xF548 +0x8BD1 0xF549 +0x8BD2 0xF54A +0x8BD3 0xF54B +0x8BD4 0xF54C +0x8BD5 0xF54D +0x8BD6 0xF54E +0x8BD7 0xF54F +0x8BD8 0xF550 +0x8BD9 0xF551 +0x8BDA 0xF552 +0x8BDB 0xF553 +0x8BDC 0xF554 +0x8BDD 0xF555 +0x8BDE 0xF556 +0x8BDF 0xF557 +0x8BE0 0xF558 +0x8BE1 0xF559 +0x8BE2 0xF55A +0x8BE3 0xF55B +0x8BE4 0xF55C +0x8BE5 0xF55D +0x8BE6 0xF55E +0x8BE7 0xF55F +0x8BE8 0xF560 +0x8BE9 0xF561 +0x8BEA 0xF562 +0x8BEB 0xF563 +0x8BEC 0xF564 +0x8BED 0xF565 +0x8BEE 0xF566 +0x8BEF 0xF567 +0x8BF0 0xF568 +0x8BF1 0xF569 +0x8BF2 0xF56A +0x8BF3 0xF56B +0x8BF4 0xF56C +0x8BF5 0xF56D +0x8BF6 0xF56E +0x8BF7 0xF56F +0x8BF8 0xF570 +0x8BF9 0xF571 +0x8BFA 0xF572 +0x8BFB 0xF573 +0x8BFC 0xF574 +0x8BFD 0xF575 +0x8BFE 0xF576 +0x8C40 0xF577 +0x8C41 0xF578 +0x8C42 0xF579 +0x8C43 0xF57A +0x8C44 0xF57B +0x8C45 0xF57C +0x8C46 0xF57D +0x8C47 0xF57E +0x8C48 0xF57F +0x8C49 0xF580 +0x8C4A 0xF581 +0x8C4B 0xF582 +0x8C4C 0xF583 +0x8C4D 0xF584 +0x8C4E 0xF585 +0x8C4F 0xF586 +0x8C50 0xF587 +0x8C51 0xF588 +0x8C52 0xF589 +0x8C53 0xF58A +0x8C54 0xF58B +0x8C55 0xF58C +0x8C56 0xF58D +0x8C57 0xF58E +0x8C58 0xF58F +0x8C59 0xF590 +0x8C5A 0xF591 +0x8C5B 0xF592 +0x8C5C 0xF593 +0x8C5D 0xF594 +0x8C5E 0xF595 +0x8C5F 0xF596 +0x8C60 0xF597 +0x8C61 0xF598 +0x8C62 0xF599 +0x8C63 0xF59A +0x8C64 0xF59B +0x8C65 0xF59C +0x8C66 0xF59D +0x8C67 0xF59E +0x8C68 0xF59F +0x8C69 0xF5A0 +0x8C6A 0xF5A1 +0x8C6B 0xF5A2 +0x8C6C 0xF5A3 +0x8C6D 0xF5A4 +0x8C6E 0xF5A5 +0x8C6F 0xF5A6 +0x8C70 0xF5A7 +0x8C71 0xF5A8 +0x8C72 0xF5A9 +0x8C73 0xF5AA +0x8C74 0xF5AB +0x8C75 0xF5AC +0x8C76 0xF5AD +0x8C77 0xF5AE +0x8C78 0xF5AF +0x8C79 0xF5B0 +0x8C7A 0xF5B1 +0x8C7B 0xF5B2 +0x8C7C 0xF5B3 +0x8C7D 0xF5B4 +0x8C7E 0xF5B5 +0x8CA1 0xF5B6 +0x8CA2 0xF5B7 +0x8CA3 0xF5B8 +0x8CA4 0xF5B9 +0x8CA5 0xF5BA +0x8CA6 0xF5BB +0x8CA7 0xF5BC +0x8CA8 0xF5BD +0x8CA9 0xF5BE +0x8CAA 0xF5BF +0x8CAB 0xF5C0 +0x8CAC 0xF5C1 +0x8CAD 0xF5C2 +0x8CAE 0xF5C3 +0x8CAF 0xF5C4 +0x8CB0 0xF5C5 +0x8CB1 0xF5C6 +0x8CB2 0xF5C7 +0x8CB3 0xF5C8 +0x8CB4 0xF5C9 +0x8CB5 0xF5CA +0x8CB6 0xF5CB +0x8CB7 0xF5CC +0x8CB8 0xF5CD +0x8CB9 0xF5CE +0x8CBA 0xF5CF +0x8CBB 0xF5D0 +0x8CBC 0xF5D1 +0x8CBD 0xF5D2 +0x8CBE 0xF5D3 +0x8CBF 0xF5D4 +0x8CC0 0xF5D5 +0x8CC1 0xF5D6 +0x8CC2 0xF5D7 +0x8CC3 0xF5D8 +0x8CC4 0xF5D9 +0x8CC5 0xF5DA +0x8CC6 0xF5DB +0x8CC7 0xF5DC +0x8CC8 0xF5DD +0x8CC9 0xF5DE +0x8CCA 0xF5DF +0x8CCB 0xF5E0 +0x8CCC 0xF5E1 +0x8CCD 0xF5E2 +0x8CCE 0xF5E3 +0x8CCF 0xF5E4 +0x8CD0 0xF5E5 +0x8CD1 0xF5E6 +0x8CD2 0xF5E7 +0x8CD3 0xF5E8 +0x8CD4 0xF5E9 +0x8CD5 0xF5EA +0x8CD6 0xF5EB +0x8CD7 0xF5EC +0x8CD8 0xF5ED +0x8CD9 0xF5EE +0x8CDA 0xF5EF +0x8CDB 0xF5F0 +0x8CDC 0xF5F1 +0x8CDD 0xF5F2 +0x8CDE 0xF5F3 +0x8CDF 0xF5F4 +0x8CE0 0xF5F5 +0x8CE1 0xF5F6 +0x8CE2 0xF5F7 +0x8CE3 0xF5F8 +0x8CE4 0xF5F9 +0x8CE5 0xF5FA +0x8CE6 0xF5FB +0x8CE7 0xF5FC +0x8CE8 0xF5FD +0x8CE9 0xF5FE +0x8CEA 0xF5FF +0x8CEB 0xF600 +0x8CEC 0xF601 +0x8CED 0xF602 +0x8CEE 0xF603 +0x8CEF 0xF604 +0x8CF0 0xF605 +0x8CF1 0xF606 +0x8CF2 0xF607 +0x8CF3 0xF608 +0x8CF4 0xF609 +0x8CF5 0xF60A +0x8CF6 0xF60B +0x8CF7 0xF60C +0x8CF8 0xF60D +0x8CF9 0xF60E +0x8CFA 0xF60F +0x8CFB 0xF610 +0x8CFC 0xF611 +0x8CFD 0xF612 +0x8CFE 0xF613 +0x8D40 0xF614 +0x8D41 0xF615 +0x8D42 0xF616 +0x8D43 0xF617 +0x8D44 0xF618 +0x8D45 0xF619 +0x8D46 0xF61A +0x8D47 0xF61B +0x8D48 0xF61C +0x8D49 0xF61D +0x8D4A 0xF61E +0x8D4B 0xF61F +0x8D4C 0xF620 +0x8D4D 0xF621 +0x8D4E 0xF622 +0x8D4F 0xF623 +0x8D50 0xF624 +0x8D51 0xF625 +0x8D52 0xF626 +0x8D53 0xF627 +0x8D54 0xF628 +0x8D55 0xF629 +0x8D56 0xF62A +0x8D57 0xF62B +0x8D58 0xF62C +0x8D59 0xF62D +0x8D5A 0xF62E +0x8D5B 0xF62F +0x8D5C 0xF630 +0x8D5D 0xF631 +0x8D5E 0xF632 +0x8D5F 0xF633 +0x8D60 0xF634 +0x8D61 0xF635 +0x8D62 0xF636 +0x8D63 0xF637 +0x8D64 0xF638 +0x8D65 0xF639 +0x8D66 0xF63A +0x8D67 0xF63B +0x8D68 0xF63C +0x8D69 0xF63D +0x8D6A 0xF63E +0x8D6B 0xF63F +0x8D6C 0xF640 +0x8D6D 0xF641 +0x8D6E 0xF642 +0x8D6F 0xF643 +0x8D70 0xF644 +0x8D71 0xF645 +0x8D72 0xF646 +0x8D73 0xF647 +0x8D74 0xF648 +0x8D75 0xF649 +0x8D76 0xF64A +0x8D77 0xF64B +0x8D78 0xF64C +0x8D79 0xF64D +0x8D7A 0xF64E +0x8D7B 0xF64F +0x8D7C 0xF650 +0x8D7D 0xF651 +0x8D7E 0xF652 +0x8DA1 0xF653 +0x8DA2 0xF654 +0x8DA3 0xF655 +0x8DA4 0xF656 +0x8DA5 0xF657 +0x8DA6 0xF658 +0x8DA7 0xF659 +0x8DA8 0xF65A +0x8DA9 0xF65B +0x8DAA 0xF65C +0x8DAB 0xF65D +0x8DAC 0xF65E +0x8DAD 0xF65F +0x8DAE 0xF660 +0x8DAF 0xF661 +0x8DB0 0xF662 +0x8DB1 0xF663 +0x8DB2 0xF664 +0x8DB3 0xF665 +0x8DB4 0xF666 +0x8DB5 0xF667 +0x8DB6 0xF668 +0x8DB7 0xF669 +0x8DB8 0xF66A +0x8DB9 0xF66B +0x8DBA 0xF66C +0x8DBB 0xF66D +0x8DBC 0xF66E +0x8DBD 0xF66F +0x8DBE 0xF670 +0x8DBF 0xF671 +0x8DC0 0xF672 +0x8DC1 0xF673 +0x8DC2 0xF674 +0x8DC3 0xF675 +0x8DC4 0xF676 +0x8DC5 0xF677 +0x8DC6 0xF678 +0x8DC7 0xF679 +0x8DC8 0xF67A +0x8DC9 0xF67B +0x8DCA 0xF67C +0x8DCB 0xF67D +0x8DCC 0xF67E +0x8DCD 0xF67F +0x8DCE 0xF680 +0x8DCF 0xF681 +0x8DD0 0xF682 +0x8DD1 0xF683 +0x8DD2 0xF684 +0x8DD3 0xF685 +0x8DD4 0xF686 +0x8DD5 0xF687 +0x8DD6 0xF688 +0x8DD7 0xF689 +0x8DD8 0xF68A +0x8DD9 0xF68B +0x8DDA 0xF68C +0x8DDB 0xF68D +0x8DDC 0xF68E +0x8DDD 0xF68F +0x8DDE 0xF690 +0x8DDF 0xF691 +0x8DE0 0xF692 +0x8DE1 0xF693 +0x8DE2 0xF694 +0x8DE3 0xF695 +0x8DE4 0xF696 +0x8DE5 0xF697 +0x8DE6 0xF698 +0x8DE7 0xF699 +0x8DE8 0xF69A +0x8DE9 0xF69B +0x8DEA 0xF69C +0x8DEB 0xF69D +0x8DEC 0xF69E +0x8DED 0xF69F +0x8DEE 0xF6A0 +0x8DEF 0xF6A1 +0x8DF0 0xF6A2 +0x8DF1 0xF6A3 +0x8DF2 0xF6A4 +0x8DF3 0xF6A5 +0x8DF4 0xF6A6 +0x8DF5 0xF6A7 +0x8DF6 0xF6A8 +0x8DF7 0xF6A9 +0x8DF8 0xF6AA +0x8DF9 0xF6AB +0x8DFA 0xF6AC +0x8DFB 0xF6AD +0x8DFC 0xF6AE +0x8DFD 0xF6AF +0x8DFE 0xF6B0 +0x8E40 0xE311 +0x8E41 0xE312 +0x8E42 0xE313 +0x8E43 0xE314 +0x8E44 0xE315 +0x8E45 0xE316 +0x8E46 0xE317 +0x8E47 0xE318 +0x8E48 0xE319 +0x8E49 0xE31A +0x8E4A 0xE31B +0x8E4B 0xE31C +0x8E4C 0xE31D +0x8E4D 0xE31E +0x8E4E 0xE31F +0x8E4F 0xE320 +0x8E50 0xE321 +0x8E51 0xE322 +0x8E52 0xE323 +0x8E53 0xE324 +0x8E54 0xE325 +0x8E55 0xE326 +0x8E56 0xE327 +0x8E57 0xE328 +0x8E58 0xE329 +0x8E59 0xE32A +0x8E5A 0xE32B +0x8E5B 0xE32C +0x8E5C 0xE32D +0x8E5D 0xE32E +0x8E5E 0xE32F +0x8E5F 0xE330 +0x8E60 0xE331 +0x8E61 0xE332 +0x8E62 0xE333 +0x8E63 0xE334 +0x8E64 0xE335 +0x8E65 0xE336 +0x8E66 0xE337 +0x8E67 0xE338 +0x8E68 0xE339 +0x8E69 0xE33A +0x8E6A 0xE33B +0x8E6B 0xE33C +0x8E6C 0xE33D +0x8E6D 0xE33E +0x8E6E 0xE33F +0x8E6F 0xE340 +0x8E70 0xE341 +0x8E71 0xE342 +0x8E72 0xE343 +0x8E73 0xE344 +0x8E74 0xE345 +0x8E75 0xE346 +0x8E76 0xE347 +0x8E77 0xE348 +0x8E78 0xE349 +0x8E79 0xE34A +0x8E7A 0xE34B +0x8E7B 0xE34C +0x8E7C 0xE34D +0x8E7D 0xE34E +0x8E7E 0xE34F +0x8EA1 0xE350 +0x8EA2 0xE351 +0x8EA3 0xE352 +0x8EA4 0xE353 +0x8EA5 0xE354 +0x8EA6 0xE355 +0x8EA7 0xE356 +0x8EA8 0xE357 +0x8EA9 0xE358 +0x8EAA 0xE359 +0x8EAB 0xE35A +0x8EAC 0xE35B +0x8EAD 0xE35C +0x8EAE 0xE35D +0x8EAF 0xE35E +0x8EB0 0xE35F +0x8EB1 0xE360 +0x8EB2 0xE361 +0x8EB3 0xE362 +0x8EB4 0xE363 +0x8EB5 0xE364 +0x8EB6 0xE365 +0x8EB7 0xE366 +0x8EB8 0xE367 +0x8EB9 0xE368 +0x8EBA 0xE369 +0x8EBB 0xE36A +0x8EBC 0xE36B +0x8EBD 0xE36C +0x8EBE 0xE36D +0x8EBF 0xE36E +0x8EC0 0xE36F +0x8EC1 0xE370 +0x8EC2 0xE371 +0x8EC3 0xE372 +0x8EC4 0xE373 +0x8EC5 0xE374 +0x8EC6 0xE375 +0x8EC7 0xE376 +0x8EC8 0xE377 +0x8EC9 0xE378 +0x8ECA 0xE379 +0x8ECB 0xE37A +0x8ECC 0xE37B +0x8ECD 0xE37C +0x8ECE 0xE37D +0x8ECF 0xE37E +0x8ED0 0xE37F +0x8ED1 0xE380 +0x8ED2 0xE381 +0x8ED3 0xE382 +0x8ED4 0xE383 +0x8ED5 0xE384 +0x8ED6 0xE385 +0x8ED7 0xE386 +0x8ED8 0xE387 +0x8ED9 0xE388 +0x8EDA 0xE389 +0x8EDB 0xE38A +0x8EDC 0xE38B +0x8EDD 0xE38C +0x8EDE 0xE38D +0x8EDF 0xE38E +0x8EE0 0xE38F +0x8EE1 0xE390 +0x8EE2 0xE391 +0x8EE3 0xE392 +0x8EE4 0xE393 +0x8EE5 0xE394 +0x8EE6 0xE395 +0x8EE7 0xE396 +0x8EE8 0xE397 +0x8EE9 0xE398 +0x8EEA 0xE399 +0x8EEB 0xE39A +0x8EEC 0xE39B +0x8EED 0xE39C +0x8EEE 0xE39D +0x8EEF 0xE39E +0x8EF0 0xE39F +0x8EF1 0xE3A0 +0x8EF2 0xE3A1 +0x8EF3 0xE3A2 +0x8EF4 0xE3A3 +0x8EF5 0xE3A4 +0x8EF6 0xE3A5 +0x8EF7 0xE3A6 +0x8EF8 0xE3A7 +0x8EF9 0xE3A8 +0x8EFA 0xE3A9 +0x8EFB 0xE3AA +0x8EFC 0xE3AB +0x8EFD 0xE3AC +0x8EFE 0xE3AD +0x8F40 0xE3AE +0x8F41 0xE3AF +0x8F42 0xE3B0 +0x8F43 0xE3B1 +0x8F44 0xE3B2 +0x8F45 0xE3B3 +0x8F46 0xE3B4 +0x8F47 0xE3B5 +0x8F48 0xE3B6 +0x8F49 0xE3B7 +0x8F4A 0xE3B8 +0x8F4B 0xE3B9 +0x8F4C 0xE3BA +0x8F4D 0xE3BB +0x8F4E 0xE3BC +0x8F4F 0xE3BD +0x8F50 0xE3BE +0x8F51 0xE3BF +0x8F52 0xE3C0 +0x8F53 0xE3C1 +0x8F54 0xE3C2 +0x8F55 0xE3C3 +0x8F56 0xE3C4 +0x8F57 0xE3C5 +0x8F58 0xE3C6 +0x8F59 0xE3C7 +0x8F5A 0xE3C8 +0x8F5B 0xE3C9 +0x8F5C 0xE3CA +0x8F5D 0xE3CB +0x8F5E 0xE3CC +0x8F5F 0xE3CD +0x8F60 0xE3CE +0x8F61 0xE3CF +0x8F62 0xE3D0 +0x8F63 0xE3D1 +0x8F64 0xE3D2 +0x8F65 0xE3D3 +0x8F66 0xE3D4 +0x8F67 0xE3D5 +0x8F68 0xE3D6 +0x8F69 0xE3D7 +0x8F6A 0xE3D8 +0x8F6B 0xE3D9 +0x8F6C 0xE3DA +0x8F6D 0xE3DB +0x8F6E 0xE3DC +0x8F6F 0xE3DD +0x8F70 0xE3DE +0x8F71 0xE3DF +0x8F72 0xE3E0 +0x8F73 0xE3E1 +0x8F74 0xE3E2 +0x8F75 0xE3E3 +0x8F76 0xE3E4 +0x8F77 0xE3E5 +0x8F78 0xE3E6 +0x8F79 0xE3E7 +0x8F7A 0xE3E8 +0x8F7B 0xE3E9 +0x8F7C 0xE3EA +0x8F7D 0xE3EB +0x8F7E 0xE3EC +0x8FA1 0xE3ED +0x8FA2 0xE3EE +0x8FA3 0xE3EF +0x8FA4 0xE3F0 +0x8FA5 0xE3F1 +0x8FA6 0xE3F2 +0x8FA7 0xE3F3 +0x8FA8 0xE3F4 +0x8FA9 0xE3F5 +0x8FAA 0xE3F6 +0x8FAB 0xE3F7 +0x8FAC 0xE3F8 +0x8FAD 0xE3F9 +0x8FAE 0xE3FA +0x8FAF 0xE3FB +0x8FB0 0xE3FC +0x8FB1 0xE3FD +0x8FB2 0xE3FE +0x8FB3 0xE3FF +0x8FB4 0xE400 +0x8FB5 0xE401 +0x8FB6 0xE402 +0x8FB7 0xE403 +0x8FB8 0xE404 +0x8FB9 0xE405 +0x8FBA 0xE406 +0x8FBB 0xE407 +0x8FBC 0xE408 +0x8FBD 0xE409 +0x8FBE 0xE40A +0x8FBF 0xE40B +0x8FC0 0xE40C +0x8FC1 0xE40D +0x8FC2 0xE40E +0x8FC3 0xE40F +0x8FC4 0xE410 +0x8FC5 0xE411 +0x8FC6 0xE412 +0x8FC7 0xE413 +0x8FC8 0xE414 +0x8FC9 0xE415 +0x8FCA 0xE416 +0x8FCB 0xE417 +0x8FCC 0xE418 +0x8FCD 0xE419 +0x8FCE 0xE41A +0x8FCF 0xE41B +0x8FD0 0xE41C +0x8FD1 0xE41D +0x8FD2 0xE41E +0x8FD3 0xE41F +0x8FD4 0xE420 +0x8FD5 0xE421 +0x8FD6 0xE422 +0x8FD7 0xE423 +0x8FD8 0xE424 +0x8FD9 0xE425 +0x8FDA 0xE426 +0x8FDB 0xE427 +0x8FDC 0xE428 +0x8FDD 0xE429 +0x8FDE 0xE42A +0x8FDF 0xE42B +0x8FE0 0xE42C +0x8FE1 0xE42D +0x8FE2 0xE42E +0x8FE3 0xE42F +0x8FE4 0xE430 +0x8FE5 0xE431 +0x8FE6 0xE432 +0x8FE7 0xE433 +0x8FE8 0xE434 +0x8FE9 0xE435 +0x8FEA 0xE436 +0x8FEB 0xE437 +0x8FEC 0xE438 +0x8FED 0xE439 +0x8FEE 0xE43A +0x8FEF 0xE43B +0x8FF0 0xE43C +0x8FF1 0xE43D +0x8FF2 0xE43E +0x8FF3 0xE43F +0x8FF4 0xE440 +0x8FF5 0xE441 +0x8FF6 0xE442 +0x8FF7 0xE443 +0x8FF8 0xE444 +0x8FF9 0xE445 +0x8FFA 0xE446 +0x8FFB 0xE447 +0x8FFC 0xE448 +0x8FFD 0xE449 +0x8FFE 0xE44A +0x9040 0xE44B +0x9041 0xE44C +0x9042 0xE44D +0x9043 0xE44E +0x9044 0xE44F +0x9045 0xE450 +0x9046 0xE451 +0x9047 0xE452 +0x9048 0xE453 +0x9049 0xE454 +0x904A 0xE455 +0x904B 0xE456 +0x904C 0xE457 +0x904D 0xE458 +0x904E 0xE459 +0x904F 0xE45A +0x9050 0xE45B +0x9051 0xE45C +0x9052 0xE45D +0x9053 0xE45E +0x9054 0xE45F +0x9055 0xE460 +0x9056 0xE461 +0x9057 0xE462 +0x9058 0xE463 +0x9059 0xE464 +0x905A 0xE465 +0x905B 0xE466 +0x905C 0xE467 +0x905D 0xE468 +0x905E 0xE469 +0x905F 0xE46A +0x9060 0xE46B +0x9061 0xE46C +0x9062 0xE46D +0x9063 0xE46E +0x9064 0xE46F +0x9065 0xE470 +0x9066 0xE471 +0x9067 0xE472 +0x9068 0xE473 +0x9069 0xE474 +0x906A 0xE475 +0x906B 0xE476 +0x906C 0xE477 +0x906D 0xE478 +0x906E 0xE479 +0x906F 0xE47A +0x9070 0xE47B +0x9071 0xE47C +0x9072 0xE47D +0x9073 0xE47E +0x9074 0xE47F +0x9075 0xE480 +0x9076 0xE481 +0x9077 0xE482 +0x9078 0xE483 +0x9079 0xE484 +0x907A 0xE485 +0x907B 0xE486 +0x907C 0xE487 +0x907D 0xE488 +0x907E 0xE489 +0x90A1 0xE48A +0x90A2 0xE48B +0x90A3 0xE48C +0x90A4 0xE48D +0x90A5 0xE48E +0x90A6 0xE48F +0x90A7 0xE490 +0x90A8 0xE491 +0x90A9 0xE492 +0x90AA 0xE493 +0x90AB 0xE494 +0x90AC 0xE495 +0x90AD 0xE496 +0x90AE 0xE497 +0x90AF 0xE498 +0x90B0 0xE499 +0x90B1 0xE49A +0x90B2 0xE49B +0x90B3 0xE49C +0x90B4 0xE49D +0x90B5 0xE49E +0x90B6 0xE49F +0x90B7 0xE4A0 +0x90B8 0xE4A1 +0x90B9 0xE4A2 +0x90BA 0xE4A3 +0x90BB 0xE4A4 +0x90BC 0xE4A5 +0x90BD 0xE4A6 +0x90BE 0xE4A7 +0x90BF 0xE4A8 +0x90C0 0xE4A9 +0x90C1 0xE4AA +0x90C2 0xE4AB +0x90C3 0xE4AC +0x90C4 0xE4AD +0x90C5 0xE4AE +0x90C6 0xE4AF +0x90C7 0xE4B0 +0x90C8 0xE4B1 +0x90C9 0xE4B2 +0x90CA 0xE4B3 +0x90CB 0xE4B4 +0x90CC 0xE4B5 +0x90CD 0xE4B6 +0x90CE 0xE4B7 +0x90CF 0xE4B8 +0x90D0 0xE4B9 +0x90D1 0xE4BA +0x90D2 0xE4BB +0x90D3 0xE4BC +0x90D4 0xE4BD +0x90D5 0xE4BE +0x90D6 0xE4BF +0x90D7 0xE4C0 +0x90D8 0xE4C1 +0x90D9 0xE4C2 +0x90DA 0xE4C3 +0x90DB 0xE4C4 +0x90DC 0xE4C5 +0x90DD 0xE4C6 +0x90DE 0xE4C7 +0x90DF 0xE4C8 +0x90E0 0xE4C9 +0x90E1 0xE4CA +0x90E2 0xE4CB +0x90E3 0xE4CC +0x90E4 0xE4CD +0x90E5 0xE4CE +0x90E6 0xE4CF +0x90E7 0xE4D0 +0x90E8 0xE4D1 +0x90E9 0xE4D2 +0x90EA 0xE4D3 +0x90EB 0xE4D4 +0x90EC 0xE4D5 +0x90ED 0xE4D6 +0x90EE 0xE4D7 +0x90EF 0xE4D8 +0x90F0 0xE4D9 +0x90F1 0xE4DA +0x90F2 0xE4DB +0x90F3 0xE4DC +0x90F4 0xE4DD +0x90F5 0xE4DE +0x90F6 0xE4DF +0x90F7 0xE4E0 +0x90F8 0xE4E1 +0x90F9 0xE4E2 +0x90FA 0xE4E3 +0x90FB 0xE4E4 +0x90FC 0xE4E5 +0x90FD 0xE4E6 +0x90FE 0xE4E7 +0x9140 0xE4E8 +0x9141 0xE4E9 +0x9142 0xE4EA +0x9143 0xE4EB +0x9144 0xE4EC +0x9145 0xE4ED +0x9146 0xE4EE +0x9147 0xE4EF +0x9148 0xE4F0 +0x9149 0xE4F1 +0x914A 0xE4F2 +0x914B 0xE4F3 +0x914C 0xE4F4 +0x914D 0xE4F5 +0x914E 0xE4F6 +0x914F 0xE4F7 +0x9150 0xE4F8 +0x9151 0xE4F9 +0x9152 0xE4FA +0x9153 0xE4FB +0x9154 0xE4FC +0x9155 0xE4FD +0x9156 0xE4FE +0x9157 0xE4FF +0x9158 0xE500 +0x9159 0xE501 +0x915A 0xE502 +0x915B 0xE503 +0x915C 0xE504 +0x915D 0xE505 +0x915E 0xE506 +0x915F 0xE507 +0x9160 0xE508 +0x9161 0xE509 +0x9162 0xE50A +0x9163 0xE50B +0x9164 0xE50C +0x9165 0xE50D +0x9166 0xE50E +0x9167 0xE50F +0x9168 0xE510 +0x9169 0xE511 +0x916A 0xE512 +0x916B 0xE513 +0x916C 0xE514 +0x916D 0xE515 +0x916E 0xE516 +0x916F 0xE517 +0x9170 0xE518 +0x9171 0xE519 +0x9172 0xE51A +0x9173 0xE51B +0x9174 0xE51C +0x9175 0xE51D +0x9176 0xE51E +0x9177 0xE51F +0x9178 0xE520 +0x9179 0xE521 +0x917A 0xE522 +0x917B 0xE523 +0x917C 0xE524 +0x917D 0xE525 +0x917E 0xE526 +0x91A1 0xE527 +0x91A2 0xE528 +0x91A3 0xE529 +0x91A4 0xE52A +0x91A5 0xE52B +0x91A6 0xE52C +0x91A7 0xE52D +0x91A8 0xE52E +0x91A9 0xE52F +0x91AA 0xE530 +0x91AB 0xE531 +0x91AC 0xE532 +0x91AD 0xE533 +0x91AE 0xE534 +0x91AF 0xE535 +0x91B0 0xE536 +0x91B1 0xE537 +0x91B2 0xE538 +0x91B3 0xE539 +0x91B4 0xE53A +0x91B5 0xE53B +0x91B6 0xE53C +0x91B7 0xE53D +0x91B8 0xE53E +0x91B9 0xE53F +0x91BA 0xE540 +0x91BB 0xE541 +0x91BC 0xE542 +0x91BD 0xE543 +0x91BE 0xE544 +0x91BF 0xE545 +0x91C0 0xE546 +0x91C1 0xE547 +0x91C2 0xE548 +0x91C3 0xE549 +0x91C4 0xE54A +0x91C5 0xE54B +0x91C6 0xE54C +0x91C7 0xE54D +0x91C8 0xE54E +0x91C9 0xE54F +0x91CA 0xE550 +0x91CB 0xE551 +0x91CC 0xE552 +0x91CD 0xE553 +0x91CE 0xE554 +0x91CF 0xE555 +0x91D0 0xE556 +0x91D1 0xE557 +0x91D2 0xE558 +0x91D3 0xE559 +0x91D4 0xE55A +0x91D5 0xE55B +0x91D6 0xE55C +0x91D7 0xE55D +0x91D8 0xE55E +0x91D9 0xE55F +0x91DA 0xE560 +0x91DB 0xE561 +0x91DC 0xE562 +0x91DD 0xE563 +0x91DE 0xE564 +0x91DF 0xE565 +0x91E0 0xE566 +0x91E1 0xE567 +0x91E2 0xE568 +0x91E3 0xE569 +0x91E4 0xE56A +0x91E5 0xE56B +0x91E6 0xE56C +0x91E7 0xE56D +0x91E8 0xE56E +0x91E9 0xE56F +0x91EA 0xE570 +0x91EB 0xE571 +0x91EC 0xE572 +0x91ED 0xE573 +0x91EE 0xE574 +0x91EF 0xE575 +0x91F0 0xE576 +0x91F1 0xE577 +0x91F2 0xE578 +0x91F3 0xE579 +0x91F4 0xE57A +0x91F5 0xE57B +0x91F6 0xE57C +0x91F7 0xE57D +0x91F8 0xE57E +0x91F9 0xE57F +0x91FA 0xE580 +0x91FB 0xE581 +0x91FC 0xE582 +0x91FD 0xE583 +0x91FE 0xE584 +0x9240 0xE585 +0x9241 0xE586 +0x9242 0xE587 +0x9243 0xE588 +0x9244 0xE589 +0x9245 0xE58A +0x9246 0xE58B +0x9247 0xE58C +0x9248 0xE58D +0x9249 0xE58E +0x924A 0xE58F +0x924B 0xE590 +0x924C 0xE591 +0x924D 0xE592 +0x924E 0xE593 +0x924F 0xE594 +0x9250 0xE595 +0x9251 0xE596 +0x9252 0xE597 +0x9253 0xE598 +0x9254 0xE599 +0x9255 0xE59A +0x9256 0xE59B +0x9257 0xE59C +0x9258 0xE59D +0x9259 0xE59E +0x925A 0xE59F +0x925B 0xE5A0 +0x925C 0xE5A1 +0x925D 0xE5A2 +0x925E 0xE5A3 +0x925F 0xE5A4 +0x9260 0xE5A5 +0x9261 0xE5A6 +0x9262 0xE5A7 +0x9263 0xE5A8 +0x9264 0xE5A9 +0x9265 0xE5AA +0x9266 0xE5AB +0x9267 0xE5AC +0x9268 0xE5AD +0x9269 0xE5AE +0x926A 0xE5AF +0x926B 0xE5B0 +0x926C 0xE5B1 +0x926D 0xE5B2 +0x926E 0xE5B3 +0x926F 0xE5B4 +0x9270 0xE5B5 +0x9271 0xE5B6 +0x9272 0xE5B7 +0x9273 0xE5B8 +0x9274 0xE5B9 +0x9275 0xE5BA +0x9276 0xE5BB +0x9277 0xE5BC +0x9278 0xE5BD +0x9279 0xE5BE +0x927A 0xE5BF +0x927B 0xE5C0 +0x927C 0xE5C1 +0x927D 0xE5C2 +0x927E 0xE5C3 +0x92A1 0xE5C4 +0x92A2 0xE5C5 +0x92A3 0xE5C6 +0x92A4 0xE5C7 +0x92A5 0xE5C8 +0x92A6 0xE5C9 +0x92A7 0xE5CA +0x92A8 0xE5CB +0x92A9 0xE5CC +0x92AA 0xE5CD +0x92AB 0xE5CE +0x92AC 0xE5CF +0x92AD 0xE5D0 +0x92AE 0xE5D1 +0x92AF 0xE5D2 +0x92B0 0xE5D3 +0x92B1 0xE5D4 +0x92B2 0xE5D5 +0x92B3 0xE5D6 +0x92B4 0xE5D7 +0x92B5 0xE5D8 +0x92B6 0xE5D9 +0x92B7 0xE5DA +0x92B8 0xE5DB +0x92B9 0xE5DC +0x92BA 0xE5DD +0x92BB 0xE5DE +0x92BC 0xE5DF +0x92BD 0xE5E0 +0x92BE 0xE5E1 +0x92BF 0xE5E2 +0x92C0 0xE5E3 +0x92C1 0xE5E4 +0x92C2 0xE5E5 +0x92C3 0xE5E6 +0x92C4 0xE5E7 +0x92C5 0xE5E8 +0x92C6 0xE5E9 +0x92C7 0xE5EA +0x92C8 0xE5EB +0x92C9 0xE5EC +0x92CA 0xE5ED +0x92CB 0xE5EE +0x92CC 0xE5EF +0x92CD 0xE5F0 +0x92CE 0xE5F1 +0x92CF 0xE5F2 +0x92D0 0xE5F3 +0x92D1 0xE5F4 +0x92D2 0xE5F5 +0x92D3 0xE5F6 +0x92D4 0xE5F7 +0x92D5 0xE5F8 +0x92D6 0xE5F9 +0x92D7 0xE5FA +0x92D8 0xE5FB +0x92D9 0xE5FC +0x92DA 0xE5FD +0x92DB 0xE5FE +0x92DC 0xE5FF +0x92DD 0xE600 +0x92DE 0xE601 +0x92DF 0xE602 +0x92E0 0xE603 +0x92E1 0xE604 +0x92E2 0xE605 +0x92E3 0xE606 +0x92E4 0xE607 +0x92E5 0xE608 +0x92E6 0xE609 +0x92E7 0xE60A +0x92E8 0xE60B +0x92E9 0xE60C +0x92EA 0xE60D +0x92EB 0xE60E +0x92EC 0xE60F +0x92ED 0xE610 +0x92EE 0xE611 +0x92EF 0xE612 +0x92F0 0xE613 +0x92F1 0xE614 +0x92F2 0xE615 +0x92F3 0xE616 +0x92F4 0xE617 +0x92F5 0xE618 +0x92F6 0xE619 +0x92F7 0xE61A +0x92F8 0xE61B +0x92F9 0xE61C +0x92FA 0xE61D +0x92FB 0xE61E +0x92FC 0xE61F +0x92FD 0xE620 +0x92FE 0xE621 +0x9340 0xE622 +0x9341 0xE623 +0x9342 0xE624 +0x9343 0xE625 +0x9344 0xE626 +0x9345 0xE627 +0x9346 0xE628 +0x9347 0xE629 +0x9348 0xE62A +0x9349 0xE62B +0x934A 0xE62C +0x934B 0xE62D +0x934C 0xE62E +0x934D 0xE62F +0x934E 0xE630 +0x934F 0xE631 +0x9350 0xE632 +0x9351 0xE633 +0x9352 0xE634 +0x9353 0xE635 +0x9354 0xE636 +0x9355 0xE637 +0x9356 0xE638 +0x9357 0xE639 +0x9358 0xE63A +0x9359 0xE63B +0x935A 0xE63C +0x935B 0xE63D +0x935C 0xE63E +0x935D 0xE63F +0x935E 0xE640 +0x935F 0xE641 +0x9360 0xE642 +0x9361 0xE643 +0x9362 0xE644 +0x9363 0xE645 +0x9364 0xE646 +0x9365 0xE647 +0x9366 0xE648 +0x9367 0xE649 +0x9368 0xE64A +0x9369 0xE64B +0x936A 0xE64C +0x936B 0xE64D +0x936C 0xE64E +0x936D 0xE64F +0x936E 0xE650 +0x936F 0xE651 +0x9370 0xE652 +0x9371 0xE653 +0x9372 0xE654 +0x9373 0xE655 +0x9374 0xE656 +0x9375 0xE657 +0x9376 0xE658 +0x9377 0xE659 +0x9378 0xE65A +0x9379 0xE65B +0x937A 0xE65C +0x937B 0xE65D +0x937C 0xE65E +0x937D 0xE65F +0x937E 0xE660 +0x93A1 0xE661 +0x93A2 0xE662 +0x93A3 0xE663 +0x93A4 0xE664 +0x93A5 0xE665 +0x93A6 0xE666 +0x93A7 0xE667 +0x93A8 0xE668 +0x93A9 0xE669 +0x93AA 0xE66A +0x93AB 0xE66B +0x93AC 0xE66C +0x93AD 0xE66D +0x93AE 0xE66E +0x93AF 0xE66F +0x93B0 0xE670 +0x93B1 0xE671 +0x93B2 0xE672 +0x93B3 0xE673 +0x93B4 0xE674 +0x93B5 0xE675 +0x93B6 0xE676 +0x93B7 0xE677 +0x93B8 0xE678 +0x93B9 0xE679 +0x93BA 0xE67A +0x93BB 0xE67B +0x93BC 0xE67C +0x93BD 0xE67D +0x93BE 0xE67E +0x93BF 0xE67F +0x93C0 0xE680 +0x93C1 0xE681 +0x93C2 0xE682 +0x93C3 0xE683 +0x93C4 0xE684 +0x93C5 0xE685 +0x93C6 0xE686 +0x93C7 0xE687 +0x93C8 0xE688 +0x93C9 0xE689 +0x93CA 0xE68A +0x93CB 0xE68B +0x93CC 0xE68C +0x93CD 0xE68D +0x93CE 0xE68E +0x93CF 0xE68F +0x93D0 0xE690 +0x93D1 0xE691 +0x93D2 0xE692 +0x93D3 0xE693 +0x93D4 0xE694 +0x93D5 0xE695 +0x93D6 0xE696 +0x93D7 0xE697 +0x93D8 0xE698 +0x93D9 0xE699 +0x93DA 0xE69A +0x93DB 0xE69B +0x93DC 0xE69C +0x93DD 0xE69D +0x93DE 0xE69E +0x93DF 0xE69F +0x93E0 0xE6A0 +0x93E1 0xE6A1 +0x93E2 0xE6A2 +0x93E3 0xE6A3 +0x93E4 0xE6A4 +0x93E5 0xE6A5 +0x93E6 0xE6A6 +0x93E7 0xE6A7 +0x93E8 0xE6A8 +0x93E9 0xE6A9 +0x93EA 0xE6AA +0x93EB 0xE6AB +0x93EC 0xE6AC +0x93ED 0xE6AD +0x93EE 0xE6AE +0x93EF 0xE6AF +0x93F0 0xE6B0 +0x93F1 0xE6B1 +0x93F2 0xE6B2 +0x93F3 0xE6B3 +0x93F4 0xE6B4 +0x93F5 0xE6B5 +0x93F6 0xE6B6 +0x93F7 0xE6B7 +0x93F8 0xE6B8 +0x93F9 0xE6B9 +0x93FA 0xE6BA +0x93FB 0xE6BB +0x93FC 0xE6BC +0x93FD 0xE6BD +0x93FE 0xE6BE +0x9440 0xE6BF +0x9441 0xE6C0 +0x9442 0xE6C1 +0x9443 0xE6C2 +0x9444 0xE6C3 +0x9445 0xE6C4 +0x9446 0xE6C5 +0x9447 0xE6C6 +0x9448 0xE6C7 +0x9449 0xE6C8 +0x944A 0xE6C9 +0x944B 0xE6CA +0x944C 0xE6CB +0x944D 0xE6CC +0x944E 0xE6CD +0x944F 0xE6CE +0x9450 0xE6CF +0x9451 0xE6D0 +0x9452 0xE6D1 +0x9453 0xE6D2 +0x9454 0xE6D3 +0x9455 0xE6D4 +0x9456 0xE6D5 +0x9457 0xE6D6 +0x9458 0xE6D7 +0x9459 0xE6D8 +0x945A 0xE6D9 +0x945B 0xE6DA +0x945C 0xE6DB +0x945D 0xE6DC +0x945E 0xE6DD +0x945F 0xE6DE +0x9460 0xE6DF +0x9461 0xE6E0 +0x9462 0xE6E1 +0x9463 0xE6E2 +0x9464 0xE6E3 +0x9465 0xE6E4 +0x9466 0xE6E5 +0x9467 0xE6E6 +0x9468 0xE6E7 +0x9469 0xE6E8 +0x946A 0xE6E9 +0x946B 0xE6EA +0x946C 0xE6EB +0x946D 0xE6EC +0x946E 0xE6ED +0x946F 0xE6EE +0x9470 0xE6EF +0x9471 0xE6F0 +0x9472 0xE6F1 +0x9473 0xE6F2 +0x9474 0xE6F3 +0x9475 0xE6F4 +0x9476 0xE6F5 +0x9477 0xE6F6 +0x9478 0xE6F7 +0x9479 0xE6F8 +0x947A 0xE6F9 +0x947B 0xE6FA +0x947C 0xE6FB +0x947D 0xE6FC +0x947E 0xE6FD +0x94A1 0xE6FE +0x94A2 0xE6FF +0x94A3 0xE700 +0x94A4 0xE701 +0x94A5 0xE702 +0x94A6 0xE703 +0x94A7 0xE704 +0x94A8 0xE705 +0x94A9 0xE706 +0x94AA 0xE707 +0x94AB 0xE708 +0x94AC 0xE709 +0x94AD 0xE70A +0x94AE 0xE70B +0x94AF 0xE70C +0x94B0 0xE70D +0x94B1 0xE70E +0x94B2 0xE70F +0x94B3 0xE710 +0x94B4 0xE711 +0x94B5 0xE712 +0x94B6 0xE713 +0x94B7 0xE714 +0x94B8 0xE715 +0x94B9 0xE716 +0x94BA 0xE717 +0x94BB 0xE718 +0x94BC 0xE719 +0x94BD 0xE71A +0x94BE 0xE71B +0x94BF 0xE71C +0x94C0 0xE71D +0x94C1 0xE71E +0x94C2 0xE71F +0x94C3 0xE720 +0x94C4 0xE721 +0x94C5 0xE722 +0x94C6 0xE723 +0x94C7 0xE724 +0x94C8 0xE725 +0x94C9 0xE726 +0x94CA 0xE727 +0x94CB 0xE728 +0x94CC 0xE729 +0x94CD 0xE72A +0x94CE 0xE72B +0x94CF 0xE72C +0x94D0 0xE72D +0x94D1 0xE72E +0x94D2 0xE72F +0x94D3 0xE730 +0x94D4 0xE731 +0x94D5 0xE732 +0x94D6 0xE733 +0x94D7 0xE734 +0x94D8 0xE735 +0x94D9 0xE736 +0x94DA 0xE737 +0x94DB 0xE738 +0x94DC 0xE739 +0x94DD 0xE73A +0x94DE 0xE73B +0x94DF 0xE73C +0x94E0 0xE73D +0x94E1 0xE73E +0x94E2 0xE73F +0x94E3 0xE740 +0x94E4 0xE741 +0x94E5 0xE742 +0x94E6 0xE743 +0x94E7 0xE744 +0x94E8 0xE745 +0x94E9 0xE746 +0x94EA 0xE747 +0x94EB 0xE748 +0x94EC 0xE749 +0x94ED 0xE74A +0x94EE 0xE74B +0x94EF 0xE74C +0x94F0 0xE74D +0x94F1 0xE74E +0x94F2 0xE74F +0x94F3 0xE750 +0x94F4 0xE751 +0x94F5 0xE752 +0x94F6 0xE753 +0x94F7 0xE754 +0x94F8 0xE755 +0x94F9 0xE756 +0x94FA 0xE757 +0x94FB 0xE758 +0x94FC 0xE759 +0x94FD 0xE75A +0x94FE 0xE75B +0x9540 0xE75C +0x9541 0xE75D +0x9542 0xE75E +0x9543 0xE75F +0x9544 0xE760 +0x9545 0xE761 +0x9546 0xE762 +0x9547 0xE763 +0x9548 0xE764 +0x9549 0xE765 +0x954A 0xE766 +0x954B 0xE767 +0x954C 0xE768 +0x954D 0xE769 +0x954E 0xE76A +0x954F 0xE76B +0x9550 0xE76C +0x9551 0xE76D +0x9552 0xE76E +0x9553 0xE76F +0x9554 0xE770 +0x9555 0xE771 +0x9556 0xE772 +0x9557 0xE773 +0x9558 0xE774 +0x9559 0xE775 +0x955A 0xE776 +0x955B 0xE777 +0x955C 0xE778 +0x955D 0xE779 +0x955E 0xE77A +0x955F 0xE77B +0x9560 0xE77C +0x9561 0xE77D +0x9562 0xE77E +0x9563 0xE77F +0x9564 0xE780 +0x9565 0xE781 +0x9566 0xE782 +0x9567 0xE783 +0x9568 0xE784 +0x9569 0xE785 +0x956A 0xE786 +0x956B 0xE787 +0x956C 0xE788 +0x956D 0xE789 +0x956E 0xE78A +0x956F 0xE78B +0x9570 0xE78C +0x9571 0xE78D +0x9572 0xE78E +0x9573 0xE78F +0x9574 0xE790 +0x9575 0xE791 +0x9576 0xE792 +0x9577 0xE793 +0x9578 0xE794 +0x9579 0xE795 +0x957A 0xE796 +0x957B 0xE797 +0x957C 0xE798 +0x957D 0xE799 +0x957E 0xE79A +0x95A1 0xE79B +0x95A2 0xE79C +0x95A3 0xE79D +0x95A4 0xE79E +0x95A5 0xE79F +0x95A6 0xE7A0 +0x95A7 0xE7A1 +0x95A8 0xE7A2 +0x95A9 0xE7A3 +0x95AA 0xE7A4 +0x95AB 0xE7A5 +0x95AC 0xE7A6 +0x95AD 0xE7A7 +0x95AE 0xE7A8 +0x95AF 0xE7A9 +0x95B0 0xE7AA +0x95B1 0xE7AB +0x95B2 0xE7AC +0x95B3 0xE7AD +0x95B4 0xE7AE +0x95B5 0xE7AF +0x95B6 0xE7B0 +0x95B7 0xE7B1 +0x95B8 0xE7B2 +0x95B9 0xE7B3 +0x95BA 0xE7B4 +0x95BB 0xE7B5 +0x95BC 0xE7B6 +0x95BD 0xE7B7 +0x95BE 0xE7B8 +0x95BF 0xE7B9 +0x95C0 0xE7BA +0x95C1 0xE7BB +0x95C2 0xE7BC +0x95C3 0xE7BD +0x95C4 0xE7BE +0x95C5 0xE7BF +0x95C6 0xE7C0 +0x95C7 0xE7C1 +0x95C8 0xE7C2 +0x95C9 0xE7C3 +0x95CA 0xE7C4 +0x95CB 0xE7C5 +0x95CC 0xE7C6 +0x95CD 0xE7C7 +0x95CE 0xE7C8 +0x95CF 0xE7C9 +0x95D0 0xE7CA +0x95D1 0xE7CB +0x95D2 0xE7CC +0x95D3 0xE7CD +0x95D4 0xE7CE +0x95D5 0xE7CF +0x95D6 0xE7D0 +0x95D7 0xE7D1 +0x95D8 0xE7D2 +0x95D9 0xE7D3 +0x95DA 0xE7D4 +0x95DB 0xE7D5 +0x95DC 0xE7D6 +0x95DD 0xE7D7 +0x95DE 0xE7D8 +0x95DF 0xE7D9 +0x95E0 0xE7DA +0x95E1 0xE7DB +0x95E2 0xE7DC +0x95E3 0xE7DD +0x95E4 0xE7DE +0x95E5 0xE7DF +0x95E6 0xE7E0 +0x95E7 0xE7E1 +0x95E8 0xE7E2 +0x95E9 0xE7E3 +0x95EA 0xE7E4 +0x95EB 0xE7E5 +0x95EC 0xE7E6 +0x95ED 0xE7E7 +0x95EE 0xE7E8 +0x95EF 0xE7E9 +0x95F0 0xE7EA +0x95F1 0xE7EB +0x95F2 0xE7EC +0x95F3 0xE7ED +0x95F4 0xE7EE +0x95F5 0xE7EF +0x95F6 0xE7F0 +0x95F7 0xE7F1 +0x95F8 0xE7F2 +0x95F9 0xE7F3 +0x95FA 0xE7F4 +0x95FB 0xE7F5 +0x95FC 0xE7F6 +0x95FD 0xE7F7 +0x95FE 0xE7F8 +0x9640 0xE7F9 +0x9641 0xE7FA +0x9642 0xE7FB +0x9643 0xE7FC +0x9644 0xE7FD +0x9645 0xE7FE +0x9646 0xE7FF +0x9647 0xE800 +0x9648 0xE801 +0x9649 0xE802 +0x964A 0xE803 +0x964B 0xE804 +0x964C 0xE805 +0x964D 0xE806 +0x964E 0xE807 +0x964F 0xE808 +0x9650 0xE809 +0x9651 0xE80A +0x9652 0xE80B +0x9653 0xE80C +0x9654 0xE80D +0x9655 0xE80E +0x9656 0xE80F +0x9657 0xE810 +0x9658 0xE811 +0x9659 0xE812 +0x965A 0xE813 +0x965B 0xE814 +0x965C 0xE815 +0x965D 0xE816 +0x965E 0xE817 +0x965F 0xE818 +0x9660 0xE819 +0x9661 0xE81A +0x9662 0xE81B +0x9663 0xE81C +0x9664 0xE81D +0x9665 0xE81E +0x9666 0xE81F +0x9667 0xE820 +0x9668 0xE821 +0x9669 0xE822 +0x966A 0xE823 +0x966B 0xE824 +0x966C 0xE825 +0x966D 0xE826 +0x966E 0xE827 +0x966F 0xE828 +0x9670 0xE829 +0x9671 0xE82A +0x9672 0xE82B +0x9673 0xE82C +0x9674 0xE82D +0x9675 0xE82E +0x9676 0xE82F +0x9677 0xE830 +0x9678 0xE831 +0x9679 0xE832 +0x967A 0xE833 +0x967B 0xE834 +0x967C 0xE835 +0x967D 0xE836 +0x967E 0xE837 +0x96A1 0xE838 +0x96A2 0xE839 +0x96A3 0xE83A +0x96A4 0xE83B +0x96A5 0xE83C +0x96A6 0xE83D +0x96A7 0xE83E +0x96A8 0xE83F +0x96A9 0xE840 +0x96AA 0xE841 +0x96AB 0xE842 +0x96AC 0xE843 +0x96AD 0xE844 +0x96AE 0xE845 +0x96AF 0xE846 +0x96B0 0xE847 +0x96B1 0xE848 +0x96B2 0xE849 +0x96B3 0xE84A +0x96B4 0xE84B +0x96B5 0xE84C +0x96B6 0xE84D +0x96B7 0xE84E +0x96B8 0xE84F +0x96B9 0xE850 +0x96BA 0xE851 +0x96BB 0xE852 +0x96BC 0xE853 +0x96BD 0xE854 +0x96BE 0xE855 +0x96BF 0xE856 +0x96C0 0xE857 +0x96C1 0xE858 +0x96C2 0xE859 +0x96C3 0xE85A +0x96C4 0xE85B +0x96C5 0xE85C +0x96C6 0xE85D +0x96C7 0xE85E +0x96C8 0xE85F +0x96C9 0xE860 +0x96CA 0xE861 +0x96CB 0xE862 +0x96CC 0xE863 +0x96CD 0xE864 +0x96CE 0xE865 +0x96CF 0xE866 +0x96D0 0xE867 +0x96D1 0xE868 +0x96D2 0xE869 +0x96D3 0xE86A +0x96D4 0xE86B +0x96D5 0xE86C +0x96D6 0xE86D +0x96D7 0xE86E +0x96D8 0xE86F +0x96D9 0xE870 +0x96DA 0xE871 +0x96DB 0xE872 +0x96DC 0xE873 +0x96DD 0xE874 +0x96DE 0xE875 +0x96DF 0xE876 +0x96E0 0xE877 +0x96E1 0xE878 +0x96E2 0xE879 +0x96E3 0xE87A +0x96E4 0xE87B +0x96E5 0xE87C +0x96E6 0xE87D +0x96E7 0xE87E +0x96E8 0xE87F +0x96E9 0xE880 +0x96EA 0xE881 +0x96EB 0xE882 +0x96EC 0xE883 +0x96ED 0xE884 +0x96EE 0xE885 +0x96EF 0xE886 +0x96F0 0xE887 +0x96F1 0xE888 +0x96F2 0xE889 +0x96F3 0xE88A +0x96F4 0xE88B +0x96F5 0xE88C +0x96F6 0xE88D +0x96F7 0xE88E +0x96F8 0xE88F +0x96F9 0xE890 +0x96FA 0xE891 +0x96FB 0xE892 +0x96FC 0xE893 +0x96FD 0xE894 +0x96FE 0xE895 +0x9740 0xE896 +0x9741 0xE897 +0x9742 0xE898 +0x9743 0xE899 +0x9744 0xE89A +0x9745 0xE89B +0x9746 0xE89C +0x9747 0xE89D +0x9748 0xE89E +0x9749 0xE89F +0x974A 0xE8A0 +0x974B 0xE8A1 +0x974C 0xE8A2 +0x974D 0xE8A3 +0x974E 0xE8A4 +0x974F 0xE8A5 +0x9750 0xE8A6 +0x9751 0xE8A7 +0x9752 0xE8A8 +0x9753 0xE8A9 +0x9754 0xE8AA +0x9755 0xE8AB +0x9756 0xE8AC +0x9757 0xE8AD +0x9758 0xE8AE +0x9759 0xE8AF +0x975A 0xE8B0 +0x975B 0xE8B1 +0x975C 0xE8B2 +0x975D 0xE8B3 +0x975E 0xE8B4 +0x975F 0xE8B5 +0x9760 0xE8B6 +0x9761 0xE8B7 +0x9762 0xE8B8 +0x9763 0xE8B9 +0x9764 0xE8BA +0x9765 0xE8BB +0x9766 0xE8BC +0x9767 0xE8BD +0x9768 0xE8BE +0x9769 0xE8BF +0x976A 0xE8C0 +0x976B 0xE8C1 +0x976C 0xE8C2 +0x976D 0xE8C3 +0x976E 0xE8C4 +0x976F 0xE8C5 +0x9770 0xE8C6 +0x9771 0xE8C7 +0x9772 0xE8C8 +0x9773 0xE8C9 +0x9774 0xE8CA +0x9775 0xE8CB +0x9776 0xE8CC +0x9777 0xE8CD +0x9778 0xE8CE +0x9779 0xE8CF +0x977A 0xE8D0 +0x977B 0xE8D1 +0x977C 0xE8D2 +0x977D 0xE8D3 +0x977E 0xE8D4 +0x97A1 0xE8D5 +0x97A2 0xE8D6 +0x97A3 0xE8D7 +0x97A4 0xE8D8 +0x97A5 0xE8D9 +0x97A6 0xE8DA +0x97A7 0xE8DB +0x97A8 0xE8DC +0x97A9 0xE8DD +0x97AA 0xE8DE +0x97AB 0xE8DF +0x97AC 0xE8E0 +0x97AD 0xE8E1 +0x97AE 0xE8E2 +0x97AF 0xE8E3 +0x97B0 0xE8E4 +0x97B1 0xE8E5 +0x97B2 0xE8E6 +0x97B3 0xE8E7 +0x97B4 0xE8E8 +0x97B5 0xE8E9 +0x97B6 0xE8EA +0x97B7 0xE8EB +0x97B8 0xE8EC +0x97B9 0xE8ED +0x97BA 0xE8EE +0x97BB 0xE8EF +0x97BC 0xE8F0 +0x97BD 0xE8F1 +0x97BE 0xE8F2 +0x97BF 0xE8F3 +0x97C0 0xE8F4 +0x97C1 0xE8F5 +0x97C2 0xE8F6 +0x97C3 0xE8F7 +0x97C4 0xE8F8 +0x97C5 0xE8F9 +0x97C6 0xE8FA +0x97C7 0xE8FB +0x97C8 0xE8FC +0x97C9 0xE8FD +0x97CA 0xE8FE +0x97CB 0xE8FF +0x97CC 0xE900 +0x97CD 0xE901 +0x97CE 0xE902 +0x97CF 0xE903 +0x97D0 0xE904 +0x97D1 0xE905 +0x97D2 0xE906 +0x97D3 0xE907 +0x97D4 0xE908 +0x97D5 0xE909 +0x97D6 0xE90A +0x97D7 0xE90B +0x97D8 0xE90C +0x97D9 0xE90D +0x97DA 0xE90E +0x97DB 0xE90F +0x97DC 0xE910 +0x97DD 0xE911 +0x97DE 0xE912 +0x97DF 0xE913 +0x97E0 0xE914 +0x97E1 0xE915 +0x97E2 0xE916 +0x97E3 0xE917 +0x97E4 0xE918 +0x97E5 0xE919 +0x97E6 0xE91A +0x97E7 0xE91B +0x97E8 0xE91C +0x97E9 0xE91D +0x97EA 0xE91E +0x97EB 0xE91F +0x97EC 0xE920 +0x97ED 0xE921 +0x97EE 0xE922 +0x97EF 0xE923 +0x97F0 0xE924 +0x97F1 0xE925 +0x97F2 0xE926 +0x97F3 0xE927 +0x97F4 0xE928 +0x97F5 0xE929 +0x97F6 0xE92A +0x97F7 0xE92B +0x97F8 0xE92C +0x97F9 0xE92D +0x97FA 0xE92E +0x97FB 0xE92F +0x97FC 0xE930 +0x97FD 0xE931 +0x97FE 0xE932 +0x9840 0xE933 +0x9841 0xE934 +0x9842 0xE935 +0x9843 0xE936 +0x9844 0xE937 +0x9845 0xE938 +0x9846 0xE939 +0x9847 0xE93A +0x9848 0xE93B +0x9849 0xE93C +0x984A 0xE93D +0x984B 0xE93E +0x984C 0xE93F +0x984D 0xE940 +0x984E 0xE941 +0x984F 0xE942 +0x9850 0xE943 +0x9851 0xE944 +0x9852 0xE945 +0x9853 0xE946 +0x9854 0xE947 +0x9855 0xE948 +0x9856 0xE949 +0x9857 0xE94A +0x9858 0xE94B +0x9859 0xE94C +0x985A 0xE94D +0x985B 0xE94E +0x985C 0xE94F +0x985D 0xE950 +0x985E 0xE951 +0x985F 0xE952 +0x9860 0xE953 +0x9861 0xE954 +0x9862 0xE955 +0x9863 0xE956 +0x9864 0xE957 +0x9865 0xE958 +0x9866 0xE959 +0x9867 0xE95A +0x9868 0xE95B +0x9869 0xE95C +0x986A 0xE95D +0x986B 0xE95E +0x986C 0xE95F +0x986D 0xE960 +0x986E 0xE961 +0x986F 0xE962 +0x9870 0xE963 +0x9871 0xE964 +0x9872 0xE965 +0x9873 0xE966 +0x9874 0xE967 +0x9875 0xE968 +0x9876 0xE969 +0x9877 0xE96A +0x9878 0xE96B +0x9879 0xE96C +0x987A 0xE96D +0x987B 0xE96E +0x987C 0xE96F +0x987D 0xE970 +0x987E 0xE971 +0x98A1 0xE972 +0x98A2 0xE973 +0x98A3 0xE974 +0x98A4 0xE975 +0x98A5 0xE976 +0x98A6 0xE977 +0x98A7 0xE978 +0x98A8 0xE979 +0x98A9 0xE97A +0x98AA 0xE97B +0x98AB 0xE97C +0x98AC 0xE97D +0x98AD 0xE97E +0x98AE 0xE97F +0x98AF 0xE980 +0x98B0 0xE981 +0x98B1 0xE982 +0x98B2 0xE983 +0x98B3 0xE984 +0x98B4 0xE985 +0x98B5 0xE986 +0x98B6 0xE987 +0x98B7 0xE988 +0x98B8 0xE989 +0x98B9 0xE98A +0x98BA 0xE98B +0x98BB 0xE98C +0x98BC 0xE98D +0x98BD 0xE98E +0x98BE 0xE98F +0x98BF 0xE990 +0x98C0 0xE991 +0x98C1 0xE992 +0x98C2 0xE993 +0x98C3 0xE994 +0x98C4 0xE995 +0x98C5 0xE996 +0x98C6 0xE997 +0x98C7 0xE998 +0x98C8 0xE999 +0x98C9 0xE99A +0x98CA 0xE99B +0x98CB 0xE99C +0x98CC 0xE99D +0x98CD 0xE99E +0x98CE 0xE99F +0x98CF 0xE9A0 +0x98D0 0xE9A1 +0x98D1 0xE9A2 +0x98D2 0xE9A3 +0x98D3 0xE9A4 +0x98D4 0xE9A5 +0x98D5 0xE9A6 +0x98D6 0xE9A7 +0x98D7 0xE9A8 +0x98D8 0xE9A9 +0x98D9 0xE9AA +0x98DA 0xE9AB +0x98DB 0xE9AC +0x98DC 0xE9AD +0x98DD 0xE9AE +0x98DE 0xE9AF +0x98DF 0xE9B0 +0x98E0 0xE9B1 +0x98E1 0xE9B2 +0x98E2 0xE9B3 +0x98E3 0xE9B4 +0x98E4 0xE9B5 +0x98E5 0xE9B6 +0x98E6 0xE9B7 +0x98E7 0xE9B8 +0x98E8 0xE9B9 +0x98E9 0xE9BA +0x98EA 0xE9BB +0x98EB 0xE9BC +0x98EC 0xE9BD +0x98ED 0xE9BE +0x98EE 0xE9BF +0x98EF 0xE9C0 +0x98F0 0xE9C1 +0x98F1 0xE9C2 +0x98F2 0xE9C3 +0x98F3 0xE9C4 +0x98F4 0xE9C5 +0x98F5 0xE9C6 +0x98F6 0xE9C7 +0x98F7 0xE9C8 +0x98F8 0xE9C9 +0x98F9 0xE9CA +0x98FA 0xE9CB +0x98FB 0xE9CC +0x98FC 0xE9CD +0x98FD 0xE9CE +0x98FE 0xE9CF +0x9940 0xE9D0 +0x9941 0xE9D1 +0x9942 0xE9D2 +0x9943 0xE9D3 +0x9944 0xE9D4 +0x9945 0xE9D5 +0x9946 0xE9D6 +0x9947 0xE9D7 +0x9948 0xE9D8 +0x9949 0xE9D9 +0x994A 0xE9DA +0x994B 0xE9DB +0x994C 0xE9DC +0x994D 0xE9DD +0x994E 0xE9DE +0x994F 0xE9DF +0x9950 0xE9E0 +0x9951 0xE9E1 +0x9952 0xE9E2 +0x9953 0xE9E3 +0x9954 0xE9E4 +0x9955 0xE9E5 +0x9956 0xE9E6 +0x9957 0xE9E7 +0x9958 0xE9E8 +0x9959 0xE9E9 +0x995A 0xE9EA +0x995B 0xE9EB +0x995C 0xE9EC +0x995D 0xE9ED +0x995E 0xE9EE +0x995F 0xE9EF +0x9960 0xE9F0 +0x9961 0xE9F1 +0x9962 0xE9F2 +0x9963 0xE9F3 +0x9964 0xE9F4 +0x9965 0xE9F5 +0x9966 0xE9F6 +0x9967 0xE9F7 +0x9968 0xE9F8 +0x9969 0xE9F9 +0x996A 0xE9FA +0x996B 0xE9FB +0x996C 0xE9FC +0x996D 0xE9FD +0x996E 0xE9FE +0x996F 0xE9FF +0x9970 0xEA00 +0x9971 0xEA01 +0x9972 0xEA02 +0x9973 0xEA03 +0x9974 0xEA04 +0x9975 0xEA05 +0x9976 0xEA06 +0x9977 0xEA07 +0x9978 0xEA08 +0x9979 0xEA09 +0x997A 0xEA0A +0x997B 0xEA0B +0x997C 0xEA0C +0x997D 0xEA0D +0x997E 0xEA0E +0x99A1 0xEA0F +0x99A2 0xEA10 +0x99A3 0xEA11 +0x99A4 0xEA12 +0x99A5 0xEA13 +0x99A6 0xEA14 +0x99A7 0xEA15 +0x99A8 0xEA16 +0x99A9 0xEA17 +0x99AA 0xEA18 +0x99AB 0xEA19 +0x99AC 0xEA1A +0x99AD 0xEA1B +0x99AE 0xEA1C +0x99AF 0xEA1D +0x99B0 0xEA1E +0x99B1 0xEA1F +0x99B2 0xEA20 +0x99B3 0xEA21 +0x99B4 0xEA22 +0x99B5 0xEA23 +0x99B6 0xEA24 +0x99B7 0xEA25 +0x99B8 0xEA26 +0x99B9 0xEA27 +0x99BA 0xEA28 +0x99BB 0xEA29 +0x99BC 0xEA2A +0x99BD 0xEA2B +0x99BE 0xEA2C +0x99BF 0xEA2D +0x99C0 0xEA2E +0x99C1 0xEA2F +0x99C2 0xEA30 +0x99C3 0xEA31 +0x99C4 0xEA32 +0x99C5 0xEA33 +0x99C6 0xEA34 +0x99C7 0xEA35 +0x99C8 0xEA36 +0x99C9 0xEA37 +0x99CA 0xEA38 +0x99CB 0xEA39 +0x99CC 0xEA3A +0x99CD 0xEA3B +0x99CE 0xEA3C +0x99CF 0xEA3D +0x99D0 0xEA3E +0x99D1 0xEA3F +0x99D2 0xEA40 +0x99D3 0xEA41 +0x99D4 0xEA42 +0x99D5 0xEA43 +0x99D6 0xEA44 +0x99D7 0xEA45 +0x99D8 0xEA46 +0x99D9 0xEA47 +0x99DA 0xEA48 +0x99DB 0xEA49 +0x99DC 0xEA4A +0x99DD 0xEA4B +0x99DE 0xEA4C +0x99DF 0xEA4D +0x99E0 0xEA4E +0x99E1 0xEA4F +0x99E2 0xEA50 +0x99E3 0xEA51 +0x99E4 0xEA52 +0x99E5 0xEA53 +0x99E6 0xEA54 +0x99E7 0xEA55 +0x99E8 0xEA56 +0x99E9 0xEA57 +0x99EA 0xEA58 +0x99EB 0xEA59 +0x99EC 0xEA5A +0x99ED 0xEA5B +0x99EE 0xEA5C +0x99EF 0xEA5D +0x99F0 0xEA5E +0x99F1 0xEA5F +0x99F2 0xEA60 +0x99F3 0xEA61 +0x99F4 0xEA62 +0x99F5 0xEA63 +0x99F6 0xEA64 +0x99F7 0xEA65 +0x99F8 0xEA66 +0x99F9 0xEA67 +0x99FA 0xEA68 +0x99FB 0xEA69 +0x99FC 0xEA6A +0x99FD 0xEA6B +0x99FE 0xEA6C +0x9A40 0xEA6D +0x9A41 0xEA6E +0x9A42 0xEA6F +0x9A43 0xEA70 +0x9A44 0xEA71 +0x9A45 0xEA72 +0x9A46 0xEA73 +0x9A47 0xEA74 +0x9A48 0xEA75 +0x9A49 0xEA76 +0x9A4A 0xEA77 +0x9A4B 0xEA78 +0x9A4C 0xEA79 +0x9A4D 0xEA7A +0x9A4E 0xEA7B +0x9A4F 0xEA7C +0x9A50 0xEA7D +0x9A51 0xEA7E +0x9A52 0xEA7F +0x9A53 0xEA80 +0x9A54 0xEA81 +0x9A55 0xEA82 +0x9A56 0xEA83 +0x9A57 0xEA84 +0x9A58 0xEA85 +0x9A59 0xEA86 +0x9A5A 0xEA87 +0x9A5B 0xEA88 +0x9A5C 0xEA89 +0x9A5D 0xEA8A +0x9A5E 0xEA8B +0x9A5F 0xEA8C +0x9A60 0xEA8D +0x9A61 0xEA8E +0x9A62 0xEA8F +0x9A63 0xEA90 +0x9A64 0xEA91 +0x9A65 0xEA92 +0x9A66 0xEA93 +0x9A67 0xEA94 +0x9A68 0xEA95 +0x9A69 0xEA96 +0x9A6A 0xEA97 +0x9A6B 0xEA98 +0x9A6C 0xEA99 +0x9A6D 0xEA9A +0x9A6E 0xEA9B +0x9A6F 0xEA9C +0x9A70 0xEA9D +0x9A71 0xEA9E +0x9A72 0xEA9F +0x9A73 0xEAA0 +0x9A74 0xEAA1 +0x9A75 0xEAA2 +0x9A76 0xEAA3 +0x9A77 0xEAA4 +0x9A78 0xEAA5 +0x9A79 0xEAA6 +0x9A7A 0xEAA7 +0x9A7B 0xEAA8 +0x9A7C 0xEAA9 +0x9A7D 0xEAAA +0x9A7E 0xEAAB +0x9AA1 0xEAAC +0x9AA2 0xEAAD +0x9AA3 0xEAAE +0x9AA4 0xEAAF +0x9AA5 0xEAB0 +0x9AA6 0xEAB1 +0x9AA7 0xEAB2 +0x9AA8 0xEAB3 +0x9AA9 0xEAB4 +0x9AAA 0xEAB5 +0x9AAB 0xEAB6 +0x9AAC 0xEAB7 +0x9AAD 0xEAB8 +0x9AAE 0xEAB9 +0x9AAF 0xEABA +0x9AB0 0xEABB +0x9AB1 0xEABC +0x9AB2 0xEABD +0x9AB3 0xEABE +0x9AB4 0xEABF +0x9AB5 0xEAC0 +0x9AB6 0xEAC1 +0x9AB7 0xEAC2 +0x9AB8 0xEAC3 +0x9AB9 0xEAC4 +0x9ABA 0xEAC5 +0x9ABB 0xEAC6 +0x9ABC 0xEAC7 +0x9ABD 0xEAC8 +0x9ABE 0xEAC9 +0x9ABF 0xEACA +0x9AC0 0xEACB +0x9AC1 0xEACC +0x9AC2 0xEACD +0x9AC3 0xEACE +0x9AC4 0xEACF +0x9AC5 0xEAD0 +0x9AC6 0xEAD1 +0x9AC7 0xEAD2 +0x9AC8 0xEAD3 +0x9AC9 0xEAD4 +0x9ACA 0xEAD5 +0x9ACB 0xEAD6 +0x9ACC 0xEAD7 +0x9ACD 0xEAD8 +0x9ACE 0xEAD9 +0x9ACF 0xEADA +0x9AD0 0xEADB +0x9AD1 0xEADC +0x9AD2 0xEADD +0x9AD3 0xEADE +0x9AD4 0xEADF +0x9AD5 0xEAE0 +0x9AD6 0xEAE1 +0x9AD7 0xEAE2 +0x9AD8 0xEAE3 +0x9AD9 0xEAE4 +0x9ADA 0xEAE5 +0x9ADB 0xEAE6 +0x9ADC 0xEAE7 +0x9ADD 0xEAE8 +0x9ADE 0xEAE9 +0x9ADF 0xEAEA +0x9AE0 0xEAEB +0x9AE1 0xEAEC +0x9AE2 0xEAED +0x9AE3 0xEAEE +0x9AE4 0xEAEF +0x9AE5 0xEAF0 +0x9AE6 0xEAF1 +0x9AE7 0xEAF2 +0x9AE8 0xEAF3 +0x9AE9 0xEAF4 +0x9AEA 0xEAF5 +0x9AEB 0xEAF6 +0x9AEC 0xEAF7 +0x9AED 0xEAF8 +0x9AEE 0xEAF9 +0x9AEF 0xEAFA +0x9AF0 0xEAFB +0x9AF1 0xEAFC +0x9AF2 0xEAFD +0x9AF3 0xEAFE +0x9AF4 0xEAFF +0x9AF5 0xEB00 +0x9AF6 0xEB01 +0x9AF7 0xEB02 +0x9AF8 0xEB03 +0x9AF9 0xEB04 +0x9AFA 0xEB05 +0x9AFB 0xEB06 +0x9AFC 0xEB07 +0x9AFD 0xEB08 +0x9AFE 0xEB09 +0x9B40 0xEB0A +0x9B41 0xEB0B +0x9B42 0xEB0C +0x9B43 0xEB0D +0x9B44 0xEB0E +0x9B45 0xEB0F +0x9B46 0xEB10 +0x9B47 0xEB11 +0x9B48 0xEB12 +0x9B49 0xEB13 +0x9B4A 0xEB14 +0x9B4B 0xEB15 +0x9B4C 0xEB16 +0x9B4D 0xEB17 +0x9B4E 0xEB18 +0x9B4F 0xEB19 +0x9B50 0xEB1A +0x9B51 0xEB1B +0x9B52 0xEB1C +0x9B53 0xEB1D +0x9B54 0xEB1E +0x9B55 0xEB1F +0x9B56 0xEB20 +0x9B57 0xEB21 +0x9B58 0xEB22 +0x9B59 0xEB23 +0x9B5A 0xEB24 +0x9B5B 0xEB25 +0x9B5C 0xEB26 +0x9B5D 0xEB27 +0x9B5E 0xEB28 +0x9B5F 0xEB29 +0x9B60 0xEB2A +0x9B61 0xEB2B +0x9B62 0xEB2C +0x9B63 0xEB2D +0x9B64 0xEB2E +0x9B65 0xEB2F +0x9B66 0xEB30 +0x9B67 0xEB31 +0x9B68 0xEB32 +0x9B69 0xEB33 +0x9B6A 0xEB34 +0x9B6B 0xEB35 +0x9B6C 0xEB36 +0x9B6D 0xEB37 +0x9B6E 0xEB38 +0x9B6F 0xEB39 +0x9B70 0xEB3A +0x9B71 0xEB3B +0x9B72 0xEB3C +0x9B73 0xEB3D +0x9B74 0xEB3E +0x9B75 0xEB3F +0x9B76 0xEB40 +0x9B77 0xEB41 +0x9B78 0xEB42 +0x9B79 0xEB43 +0x9B7A 0xEB44 +0x9B7B 0xEB45 +0x9B7C 0xEB46 +0x9B7D 0xEB47 +0x9B7E 0xEB48 +0x9BA1 0xEB49 +0x9BA2 0xEB4A +0x9BA3 0xEB4B +0x9BA4 0xEB4C +0x9BA5 0xEB4D +0x9BA6 0xEB4E +0x9BA7 0xEB4F +0x9BA8 0xEB50 +0x9BA9 0xEB51 +0x9BAA 0xEB52 +0x9BAB 0xEB53 +0x9BAC 0xEB54 +0x9BAD 0xEB55 +0x9BAE 0xEB56 +0x9BAF 0xEB57 +0x9BB0 0xEB58 +0x9BB1 0xEB59 +0x9BB2 0xEB5A +0x9BB3 0xEB5B +0x9BB4 0xEB5C +0x9BB5 0xEB5D +0x9BB6 0xEB5E +0x9BB7 0xEB5F +0x9BB8 0xEB60 +0x9BB9 0xEB61 +0x9BBA 0xEB62 +0x9BBB 0xEB63 +0x9BBC 0xEB64 +0x9BBD 0xEB65 +0x9BBE 0xEB66 +0x9BBF 0xEB67 +0x9BC0 0xEB68 +0x9BC1 0xEB69 +0x9BC2 0xEB6A +0x9BC3 0xEB6B +0x9BC4 0xEB6C +0x9BC5 0xEB6D +0x9BC6 0xEB6E +0x9BC7 0xEB6F +0x9BC8 0xEB70 +0x9BC9 0xEB71 +0x9BCA 0xEB72 +0x9BCB 0xEB73 +0x9BCC 0xEB74 +0x9BCD 0xEB75 +0x9BCE 0xEB76 +0x9BCF 0xEB77 +0x9BD0 0xEB78 +0x9BD1 0xEB79 +0x9BD2 0xEB7A +0x9BD3 0xEB7B +0x9BD4 0xEB7C +0x9BD5 0xEB7D +0x9BD6 0xEB7E +0x9BD7 0xEB7F +0x9BD8 0xEB80 +0x9BD9 0xEB81 +0x9BDA 0xEB82 +0x9BDB 0xEB83 +0x9BDC 0xEB84 +0x9BDD 0xEB85 +0x9BDE 0xEB86 +0x9BDF 0xEB87 +0x9BE0 0xEB88 +0x9BE1 0xEB89 +0x9BE2 0xEB8A +0x9BE3 0xEB8B +0x9BE4 0xEB8C +0x9BE5 0xEB8D +0x9BE6 0xEB8E +0x9BE7 0xEB8F +0x9BE8 0xEB90 +0x9BE9 0xEB91 +0x9BEA 0xEB92 +0x9BEB 0xEB93 +0x9BEC 0xEB94 +0x9BED 0xEB95 +0x9BEE 0xEB96 +0x9BEF 0xEB97 +0x9BF0 0xEB98 +0x9BF1 0xEB99 +0x9BF2 0xEB9A +0x9BF3 0xEB9B +0x9BF4 0xEB9C +0x9BF5 0xEB9D +0x9BF6 0xEB9E +0x9BF7 0xEB9F +0x9BF8 0xEBA0 +0x9BF9 0xEBA1 +0x9BFA 0xEBA2 +0x9BFB 0xEBA3 +0x9BFC 0xEBA4 +0x9BFD 0xEBA5 +0x9BFE 0xEBA6 +0x9C40 0xEBA7 +0x9C41 0xEBA8 +0x9C42 0xEBA9 +0x9C43 0xEBAA +0x9C44 0xEBAB +0x9C45 0xEBAC +0x9C46 0xEBAD +0x9C47 0xEBAE +0x9C48 0xEBAF +0x9C49 0xEBB0 +0x9C4A 0xEBB1 +0x9C4B 0xEBB2 +0x9C4C 0xEBB3 +0x9C4D 0xEBB4 +0x9C4E 0xEBB5 +0x9C4F 0xEBB6 +0x9C50 0xEBB7 +0x9C51 0xEBB8 +0x9C52 0xEBB9 +0x9C53 0xEBBA +0x9C54 0xEBBB +0x9C55 0xEBBC +0x9C56 0xEBBD +0x9C57 0xEBBE +0x9C58 0xEBBF +0x9C59 0xEBC0 +0x9C5A 0xEBC1 +0x9C5B 0xEBC2 +0x9C5C 0xEBC3 +0x9C5D 0xEBC4 +0x9C5E 0xEBC5 +0x9C5F 0xEBC6 +0x9C60 0xEBC7 +0x9C61 0xEBC8 +0x9C62 0xEBC9 +0x9C63 0xEBCA +0x9C64 0xEBCB +0x9C65 0xEBCC +0x9C66 0xEBCD +0x9C67 0xEBCE +0x9C68 0xEBCF +0x9C69 0xEBD0 +0x9C6A 0xEBD1 +0x9C6B 0xEBD2 +0x9C6C 0xEBD3 +0x9C6D 0xEBD4 +0x9C6E 0xEBD5 +0x9C6F 0xEBD6 +0x9C70 0xEBD7 +0x9C71 0xEBD8 +0x9C72 0xEBD9 +0x9C73 0xEBDA +0x9C74 0xEBDB +0x9C75 0xEBDC +0x9C76 0xEBDD +0x9C77 0xEBDE +0x9C78 0xEBDF +0x9C79 0xEBE0 +0x9C7A 0xEBE1 +0x9C7B 0xEBE2 +0x9C7C 0xEBE3 +0x9C7D 0xEBE4 +0x9C7E 0xEBE5 +0x9CA1 0xEBE6 +0x9CA2 0xEBE7 +0x9CA3 0xEBE8 +0x9CA4 0xEBE9 +0x9CA5 0xEBEA +0x9CA6 0xEBEB +0x9CA7 0xEBEC +0x9CA8 0xEBED +0x9CA9 0xEBEE +0x9CAA 0xEBEF +0x9CAB 0xEBF0 +0x9CAC 0xEBF1 +0x9CAD 0xEBF2 +0x9CAE 0xEBF3 +0x9CAF 0xEBF4 +0x9CB0 0xEBF5 +0x9CB1 0xEBF6 +0x9CB2 0xEBF7 +0x9CB3 0xEBF8 +0x9CB4 0xEBF9 +0x9CB5 0xEBFA +0x9CB6 0xEBFB +0x9CB7 0xEBFC +0x9CB8 0xEBFD +0x9CB9 0xEBFE +0x9CBA 0xEBFF +0x9CBB 0xEC00 +0x9CBC 0xEC01 +0x9CBD 0xEC02 +0x9CBE 0xEC03 +0x9CBF 0xEC04 +0x9CC0 0xEC05 +0x9CC1 0xEC06 +0x9CC2 0xEC07 +0x9CC3 0xEC08 +0x9CC4 0xEC09 +0x9CC5 0xEC0A +0x9CC6 0xEC0B +0x9CC7 0xEC0C +0x9CC8 0xEC0D +0x9CC9 0xEC0E +0x9CCA 0xEC0F +0x9CCB 0xEC10 +0x9CCC 0xEC11 +0x9CCD 0xEC12 +0x9CCE 0xEC13 +0x9CCF 0xEC14 +0x9CD0 0xEC15 +0x9CD1 0xEC16 +0x9CD2 0xEC17 +0x9CD3 0xEC18 +0x9CD4 0xEC19 +0x9CD5 0xEC1A +0x9CD6 0xEC1B +0x9CD7 0xEC1C +0x9CD8 0xEC1D +0x9CD9 0xEC1E +0x9CDA 0xEC1F +0x9CDB 0xEC20 +0x9CDC 0xEC21 +0x9CDD 0xEC22 +0x9CDE 0xEC23 +0x9CDF 0xEC24 +0x9CE0 0xEC25 +0x9CE1 0xEC26 +0x9CE2 0xEC27 +0x9CE3 0xEC28 +0x9CE4 0xEC29 +0x9CE5 0xEC2A +0x9CE6 0xEC2B +0x9CE7 0xEC2C +0x9CE8 0xEC2D +0x9CE9 0xEC2E +0x9CEA 0xEC2F +0x9CEB 0xEC30 +0x9CEC 0xEC31 +0x9CED 0xEC32 +0x9CEE 0xEC33 +0x9CEF 0xEC34 +0x9CF0 0xEC35 +0x9CF1 0xEC36 +0x9CF2 0xEC37 +0x9CF3 0xEC38 +0x9CF4 0xEC39 +0x9CF5 0xEC3A +0x9CF6 0xEC3B +0x9CF7 0xEC3C +0x9CF8 0xEC3D +0x9CF9 0xEC3E +0x9CFA 0xEC3F +0x9CFB 0xEC40 +0x9CFC 0xEC41 +0x9CFD 0xEC42 +0x9CFE 0xEC43 +0x9D40 0xEC44 +0x9D41 0xEC45 +0x9D42 0xEC46 +0x9D43 0xEC47 +0x9D44 0xEC48 +0x9D45 0xEC49 +0x9D46 0xEC4A +0x9D47 0xEC4B +0x9D48 0xEC4C +0x9D49 0xEC4D +0x9D4A 0xEC4E +0x9D4B 0xEC4F +0x9D4C 0xEC50 +0x9D4D 0xEC51 +0x9D4E 0xEC52 +0x9D4F 0xEC53 +0x9D50 0xEC54 +0x9D51 0xEC55 +0x9D52 0xEC56 +0x9D53 0xEC57 +0x9D54 0xEC58 +0x9D55 0xEC59 +0x9D56 0xEC5A +0x9D57 0xEC5B +0x9D58 0xEC5C +0x9D59 0xEC5D +0x9D5A 0xEC5E +0x9D5B 0xEC5F +0x9D5C 0xEC60 +0x9D5D 0xEC61 +0x9D5E 0xEC62 +0x9D5F 0xEC63 +0x9D60 0xEC64 +0x9D61 0xEC65 +0x9D62 0xEC66 +0x9D63 0xEC67 +0x9D64 0xEC68 +0x9D65 0xEC69 +0x9D66 0xEC6A +0x9D67 0xEC6B +0x9D68 0xEC6C +0x9D69 0xEC6D +0x9D6A 0xEC6E +0x9D6B 0xEC6F +0x9D6C 0xEC70 +0x9D6D 0xEC71 +0x9D6E 0xEC72 +0x9D6F 0xEC73 +0x9D70 0xEC74 +0x9D71 0xEC75 +0x9D72 0xEC76 +0x9D73 0xEC77 +0x9D74 0xEC78 +0x9D75 0xEC79 +0x9D76 0xEC7A +0x9D77 0xEC7B +0x9D78 0xEC7C +0x9D79 0xEC7D +0x9D7A 0xEC7E +0x9D7B 0xEC7F +0x9D7C 0xEC80 +0x9D7D 0xEC81 +0x9D7E 0xEC82 +0x9DA1 0xEC83 +0x9DA2 0xEC84 +0x9DA3 0xEC85 +0x9DA4 0xEC86 +0x9DA5 0xEC87 +0x9DA6 0xEC88 +0x9DA7 0xEC89 +0x9DA8 0xEC8A +0x9DA9 0xEC8B +0x9DAA 0xEC8C +0x9DAB 0xEC8D +0x9DAC 0xEC8E +0x9DAD 0xEC8F +0x9DAE 0xEC90 +0x9DAF 0xEC91 +0x9DB0 0xEC92 +0x9DB1 0xEC93 +0x9DB2 0xEC94 +0x9DB3 0xEC95 +0x9DB4 0xEC96 +0x9DB5 0xEC97 +0x9DB6 0xEC98 +0x9DB7 0xEC99 +0x9DB8 0xEC9A +0x9DB9 0xEC9B +0x9DBA 0xEC9C +0x9DBB 0xEC9D +0x9DBC 0xEC9E +0x9DBD 0xEC9F +0x9DBE 0xECA0 +0x9DBF 0xECA1 +0x9DC0 0xECA2 +0x9DC1 0xECA3 +0x9DC2 0xECA4 +0x9DC3 0xECA5 +0x9DC4 0xECA6 +0x9DC5 0xECA7 +0x9DC6 0xECA8 +0x9DC7 0xECA9 +0x9DC8 0xECAA +0x9DC9 0xECAB +0x9DCA 0xECAC +0x9DCB 0xECAD +0x9DCC 0xECAE +0x9DCD 0xECAF +0x9DCE 0xECB0 +0x9DCF 0xECB1 +0x9DD0 0xECB2 +0x9DD1 0xECB3 +0x9DD2 0xECB4 +0x9DD3 0xECB5 +0x9DD4 0xECB6 +0x9DD5 0xECB7 +0x9DD6 0xECB8 +0x9DD7 0xECB9 +0x9DD8 0xECBA +0x9DD9 0xECBB +0x9DDA 0xECBC +0x9DDB 0xECBD +0x9DDC 0xECBE +0x9DDD 0xECBF +0x9DDE 0xECC0 +0x9DDF 0xECC1 +0x9DE0 0xECC2 +0x9DE1 0xECC3 +0x9DE2 0xECC4 +0x9DE3 0xECC5 +0x9DE4 0xECC6 +0x9DE5 0xECC7 +0x9DE6 0xECC8 +0x9DE7 0xECC9 +0x9DE8 0xECCA +0x9DE9 0xECCB +0x9DEA 0xECCC +0x9DEB 0xECCD +0x9DEC 0xECCE +0x9DED 0xECCF +0x9DEE 0xECD0 +0x9DEF 0xECD1 +0x9DF0 0xECD2 +0x9DF1 0xECD3 +0x9DF2 0xECD4 +0x9DF3 0xECD5 +0x9DF4 0xECD6 +0x9DF5 0xECD7 +0x9DF6 0xECD8 +0x9DF7 0xECD9 +0x9DF8 0xECDA +0x9DF9 0xECDB +0x9DFA 0xECDC +0x9DFB 0xECDD +0x9DFC 0xECDE +0x9DFD 0xECDF +0x9DFE 0xECE0 +0x9E40 0xECE1 +0x9E41 0xECE2 +0x9E42 0xECE3 +0x9E43 0xECE4 +0x9E44 0xECE5 +0x9E45 0xECE6 +0x9E46 0xECE7 +0x9E47 0xECE8 +0x9E48 0xECE9 +0x9E49 0xECEA +0x9E4A 0xECEB +0x9E4B 0xECEC +0x9E4C 0xECED +0x9E4D 0xECEE +0x9E4E 0xECEF +0x9E4F 0xECF0 +0x9E50 0xECF1 +0x9E51 0xECF2 +0x9E52 0xECF3 +0x9E53 0xECF4 +0x9E54 0xECF5 +0x9E55 0xECF6 +0x9E56 0xECF7 +0x9E57 0xECF8 +0x9E58 0xECF9 +0x9E59 0xECFA +0x9E5A 0xECFB +0x9E5B 0xECFC +0x9E5C 0xECFD +0x9E5D 0xECFE +0x9E5E 0xECFF +0x9E5F 0xED00 +0x9E60 0xED01 +0x9E61 0xED02 +0x9E62 0xED03 +0x9E63 0xED04 +0x9E64 0xED05 +0x9E65 0xED06 +0x9E66 0xED07 +0x9E67 0xED08 +0x9E68 0xED09 +0x9E69 0xED0A +0x9E6A 0xED0B +0x9E6B 0xED0C +0x9E6C 0xED0D +0x9E6D 0xED0E +0x9E6E 0xED0F +0x9E6F 0xED10 +0x9E70 0xED11 +0x9E71 0xED12 +0x9E72 0xED13 +0x9E73 0xED14 +0x9E74 0xED15 +0x9E75 0xED16 +0x9E76 0xED17 +0x9E77 0xED18 +0x9E78 0xED19 +0x9E79 0xED1A +0x9E7A 0xED1B +0x9E7B 0xED1C +0x9E7C 0xED1D +0x9E7D 0xED1E +0x9E7E 0xED1F +0x9EA1 0xED20 +0x9EA2 0xED21 +0x9EA3 0xED22 +0x9EA4 0xED23 +0x9EA5 0xED24 +0x9EA6 0xED25 +0x9EA7 0xED26 +0x9EA8 0xED27 +0x9EA9 0xED28 +0x9EAA 0xED29 +0x9EAB 0xED2A +0x9EAC 0xED2B +0x9EAD 0xED2C +0x9EAE 0xED2D +0x9EAF 0xED2E +0x9EB0 0xED2F +0x9EB1 0xED30 +0x9EB2 0xED31 +0x9EB3 0xED32 +0x9EB4 0xED33 +0x9EB5 0xED34 +0x9EB6 0xED35 +0x9EB7 0xED36 +0x9EB8 0xED37 +0x9EB9 0xED38 +0x9EBA 0xED39 +0x9EBB 0xED3A +0x9EBC 0xED3B +0x9EBD 0xED3C +0x9EBE 0xED3D +0x9EBF 0xED3E +0x9EC0 0xED3F +0x9EC1 0xED40 +0x9EC2 0xED41 +0x9EC3 0xED42 +0x9EC4 0xED43 +0x9EC5 0xED44 +0x9EC6 0xED45 +0x9EC7 0xED46 +0x9EC8 0xED47 +0x9EC9 0xED48 +0x9ECA 0xED49 +0x9ECB 0xED4A +0x9ECC 0xED4B +0x9ECD 0xED4C +0x9ECE 0xED4D +0x9ECF 0xED4E +0x9ED0 0xED4F +0x9ED1 0xED50 +0x9ED2 0xED51 +0x9ED3 0xED52 +0x9ED4 0xED53 +0x9ED5 0xED54 +0x9ED6 0xED55 +0x9ED7 0xED56 +0x9ED8 0xED57 +0x9ED9 0xED58 +0x9EDA 0xED59 +0x9EDB 0xED5A +0x9EDC 0xED5B +0x9EDD 0xED5C +0x9EDE 0xED5D +0x9EDF 0xED5E +0x9EE0 0xED5F +0x9EE1 0xED60 +0x9EE2 0xED61 +0x9EE3 0xED62 +0x9EE4 0xED63 +0x9EE5 0xED64 +0x9EE6 0xED65 +0x9EE7 0xED66 +0x9EE8 0xED67 +0x9EE9 0xED68 +0x9EEA 0xED69 +0x9EEB 0xED6A +0x9EEC 0xED6B +0x9EED 0xED6C +0x9EEE 0xED6D +0x9EEF 0xED6E +0x9EF0 0xED6F +0x9EF1 0xED70 +0x9EF2 0xED71 +0x9EF3 0xED72 +0x9EF4 0xED73 +0x9EF5 0xED74 +0x9EF6 0xED75 +0x9EF7 0xED76 +0x9EF8 0xED77 +0x9EF9 0xED78 +0x9EFA 0xED79 +0x9EFB 0xED7A +0x9EFC 0xED7B +0x9EFD 0xED7C +0x9EFE 0xED7D +0x9F40 0xED7E +0x9F41 0xED7F +0x9F42 0xED80 +0x9F43 0xED81 +0x9F44 0xED82 +0x9F45 0xED83 +0x9F46 0xED84 +0x9F47 0xED85 +0x9F48 0xED86 +0x9F49 0xED87 +0x9F4A 0xED88 +0x9F4B 0xED89 +0x9F4C 0xED8A +0x9F4D 0xED8B +0x9F4E 0xED8C +0x9F4F 0xED8D +0x9F50 0xED8E +0x9F51 0xED8F +0x9F52 0xED90 +0x9F53 0xED91 +0x9F54 0xED92 +0x9F55 0xED93 +0x9F56 0xED94 +0x9F57 0xED95 +0x9F58 0xED96 +0x9F59 0xED97 +0x9F5A 0xED98 +0x9F5B 0xED99 +0x9F5C 0xED9A +0x9F5D 0xED9B +0x9F5E 0xED9C +0x9F5F 0xED9D +0x9F60 0xED9E +0x9F61 0xED9F +0x9F62 0xEDA0 +0x9F63 0xEDA1 +0x9F64 0xEDA2 +0x9F65 0xEDA3 +0x9F66 0xEDA4 +0x9F67 0xEDA5 +0x9F68 0xEDA6 +0x9F69 0xEDA7 +0x9F6A 0xEDA8 +0x9F6B 0xEDA9 +0x9F6C 0xEDAA +0x9F6D 0xEDAB +0x9F6E 0xEDAC +0x9F6F 0xEDAD +0x9F70 0xEDAE +0x9F71 0xEDAF +0x9F72 0xEDB0 +0x9F73 0xEDB1 +0x9F74 0xEDB2 +0x9F75 0xEDB3 +0x9F76 0xEDB4 +0x9F77 0xEDB5 +0x9F78 0xEDB6 +0x9F79 0xEDB7 +0x9F7A 0xEDB8 +0x9F7B 0xEDB9 +0x9F7C 0xEDBA +0x9F7D 0xEDBB +0x9F7E 0xEDBC +0x9FA1 0xEDBD +0x9FA2 0xEDBE +0x9FA3 0xEDBF +0x9FA4 0xEDC0 +0x9FA5 0xEDC1 +0x9FA6 0xEDC2 +0x9FA7 0xEDC3 +0x9FA8 0xEDC4 +0x9FA9 0xEDC5 +0x9FAA 0xEDC6 +0x9FAB 0xEDC7 +0x9FAC 0xEDC8 +0x9FAD 0xEDC9 +0x9FAE 0xEDCA +0x9FAF 0xEDCB +0x9FB0 0xEDCC +0x9FB1 0xEDCD +0x9FB2 0xEDCE +0x9FB3 0xEDCF +0x9FB4 0xEDD0 +0x9FB5 0xEDD1 +0x9FB6 0xEDD2 +0x9FB7 0xEDD3 +0x9FB8 0xEDD4 +0x9FB9 0xEDD5 +0x9FBA 0xEDD6 +0x9FBB 0xEDD7 +0x9FBC 0xEDD8 +0x9FBD 0xEDD9 +0x9FBE 0xEDDA +0x9FBF 0xEDDB +0x9FC0 0xEDDC +0x9FC1 0xEDDD +0x9FC2 0xEDDE +0x9FC3 0xEDDF +0x9FC4 0xEDE0 +0x9FC5 0xEDE1 +0x9FC6 0xEDE2 +0x9FC7 0xEDE3 +0x9FC8 0xEDE4 +0x9FC9 0xEDE5 +0x9FCA 0xEDE6 +0x9FCB 0xEDE7 +0x9FCC 0xEDE8 +0x9FCD 0xEDE9 +0x9FCE 0xEDEA +0x9FCF 0xEDEB +0x9FD0 0xEDEC +0x9FD1 0xEDED +0x9FD2 0xEDEE +0x9FD3 0xEDEF +0x9FD4 0xEDF0 +0x9FD5 0xEDF1 +0x9FD6 0xEDF2 +0x9FD7 0xEDF3 +0x9FD8 0xEDF4 +0x9FD9 0xEDF5 +0x9FDA 0xEDF6 +0x9FDB 0xEDF7 +0x9FDC 0xEDF8 +0x9FDD 0xEDF9 +0x9FDE 0xEDFA +0x9FDF 0xEDFB +0x9FE0 0xEDFC +0x9FE1 0xEDFD +0x9FE2 0xEDFE +0x9FE3 0xEDFF +0x9FE4 0xEE00 +0x9FE5 0xEE01 +0x9FE6 0xEE02 +0x9FE7 0xEE03 +0x9FE8 0xEE04 +0x9FE9 0xEE05 +0x9FEA 0xEE06 +0x9FEB 0xEE07 +0x9FEC 0xEE08 +0x9FED 0xEE09 +0x9FEE 0xEE0A +0x9FEF 0xEE0B +0x9FF0 0xEE0C +0x9FF1 0xEE0D +0x9FF2 0xEE0E +0x9FF3 0xEE0F +0x9FF4 0xEE10 +0x9FF5 0xEE11 +0x9FF6 0xEE12 +0x9FF7 0xEE13 +0x9FF8 0xEE14 +0x9FF9 0xEE15 +0x9FFA 0xEE16 +0x9FFB 0xEE17 +0x9FFC 0xEE18 +0x9FFD 0xEE19 +0x9FFE 0xEE1A +0xA040 0xEE1B +0xA041 0xEE1C +0xA042 0xEE1D +0xA043 0xEE1E +0xA044 0xEE1F +0xA045 0xEE20 +0xA046 0xEE21 +0xA047 0xEE22 +0xA048 0xEE23 +0xA049 0xEE24 +0xA04A 0xEE25 +0xA04B 0xEE26 +0xA04C 0xEE27 +0xA04D 0xEE28 +0xA04E 0xEE29 +0xA04F 0xEE2A +0xA050 0xEE2B +0xA051 0xEE2C +0xA052 0xEE2D +0xA053 0xEE2E +0xA054 0xEE2F +0xA055 0xEE30 +0xA056 0xEE31 +0xA057 0xEE32 +0xA058 0xEE33 +0xA059 0xEE34 +0xA05A 0xEE35 +0xA05B 0xEE36 +0xA05C 0xEE37 +0xA05D 0xEE38 +0xA05E 0xEE39 +0xA05F 0xEE3A +0xA060 0xEE3B +0xA061 0xEE3C +0xA062 0xEE3D +0xA063 0xEE3E +0xA064 0xEE3F +0xA065 0xEE40 +0xA066 0xEE41 +0xA067 0xEE42 +0xA068 0xEE43 +0xA069 0xEE44 +0xA06A 0xEE45 +0xA06B 0xEE46 +0xA06C 0xEE47 +0xA06D 0xEE48 +0xA06E 0xEE49 +0xA06F 0xEE4A +0xA070 0xEE4B +0xA071 0xEE4C +0xA072 0xEE4D +0xA073 0xEE4E +0xA074 0xEE4F +0xA075 0xEE50 +0xA076 0xEE51 +0xA077 0xEE52 +0xA078 0xEE53 +0xA079 0xEE54 +0xA07A 0xEE55 +0xA07B 0xEE56 +0xA07C 0xEE57 +0xA07D 0xEE58 +0xA07E 0xEE59 +0xA0A1 0xEE5A +0xA0A2 0xEE5B +0xA0A3 0xEE5C +0xA0A4 0xEE5D +0xA0A5 0xEE5E +0xA0A6 0xEE5F +0xA0A7 0xEE60 +0xA0A8 0xEE61 +0xA0A9 0xEE62 +0xA0AA 0xEE63 +0xA0AB 0xEE64 +0xA0AC 0xEE65 +0xA0AD 0xEE66 +0xA0AE 0xEE67 +0xA0AF 0xEE68 +0xA0B0 0xEE69 +0xA0B1 0xEE6A +0xA0B2 0xEE6B +0xA0B3 0xEE6C +0xA0B4 0xEE6D +0xA0B5 0xEE6E +0xA0B6 0xEE6F +0xA0B7 0xEE70 +0xA0B8 0xEE71 +0xA0B9 0xEE72 +0xA0BA 0xEE73 +0xA0BB 0xEE74 +0xA0BC 0xEE75 +0xA0BD 0xEE76 +0xA0BE 0xEE77 +0xA0BF 0xEE78 +0xA0C0 0xEE79 +0xA0C1 0xEE7A +0xA0C2 0xEE7B +0xA0C3 0xEE7C +0xA0C4 0xEE7D +0xA0C5 0xEE7E +0xA0C6 0xEE7F +0xA0C7 0xEE80 +0xA0C8 0xEE81 +0xA0C9 0xEE82 +0xA0CA 0xEE83 +0xA0CB 0xEE84 +0xA0CC 0xEE85 +0xA0CD 0xEE86 +0xA0CE 0xEE87 +0xA0CF 0xEE88 +0xA0D0 0xEE89 +0xA0D1 0xEE8A +0xA0D2 0xEE8B +0xA0D3 0xEE8C +0xA0D4 0xEE8D +0xA0D5 0xEE8E +0xA0D6 0xEE8F +0xA0D7 0xEE90 +0xA0D8 0xEE91 +0xA0D9 0xEE92 +0xA0DA 0xEE93 +0xA0DB 0xEE94 +0xA0DC 0xEE95 +0xA0DD 0xEE96 +0xA0DE 0xEE97 +0xA0DF 0xEE98 +0xA0E0 0xEE99 +0xA0E1 0xEE9A +0xA0E2 0xEE9B +0xA0E3 0xEE9C +0xA0E4 0xEE9D +0xA0E5 0xEE9E +0xA0E6 0xEE9F +0xA0E7 0xEEA0 +0xA0E8 0xEEA1 +0xA0E9 0xEEA2 +0xA0EA 0xEEA3 +0xA0EB 0xEEA4 +0xA0EC 0xEEA5 +0xA0ED 0xEEA6 +0xA0EE 0xEEA7 +0xA0EF 0xEEA8 +0xA0F0 0xEEA9 +0xA0F1 0xEEAA +0xA0F2 0xEEAB +0xA0F3 0xEEAC +0xA0F4 0xEEAD +0xA0F5 0xEEAE +0xA0F6 0xEEAF +0xA0F7 0xEEB0 +0xA0F8 0xEEB1 +0xA0F9 0xEEB2 +0xA0FA 0xEEB3 +0xA0FB 0xEEB4 +0xA0FC 0xEEB5 +0xA0FD 0xEEB6 +0xA0FE 0xEEB7 +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2027 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFE51 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2015 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15A 0x2574 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C3 0xFFE3 +0xA1C4 0xFF3F +0xA1C5 0x02CD +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0xFF5E +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2295 +0xA1F3 0x2299 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA1FE 0xFF0F +0xA240 0xFF3C +0xA241 0x2215 +0xA242 0xFE68 +0xA243 0xFF04 +0xA244 0xFFE5 +0xA245 0x3012 +0xA246 0xFFE0 +0xA247 0xFFE1 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2501 +0xA2A5 0x251D +0xA2A6 0x253F +0xA2A7 0x2525 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CC 0x3038 +0xA2CD 0x3039 +0xA2CE 0x303A +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA3C0 0x2400 +0xA3C1 0x2401 +0xA3C2 0x2402 +0xA3C3 0x2403 +0xA3C4 0x2404 +0xA3C5 0x2405 +0xA3C6 0x2406 +0xA3C7 0x2407 +0xA3C8 0x2408 +0xA3C9 0x2409 +0xA3CA 0x240A +0xA3CB 0x240B +0xA3CC 0x240C +0xA3CD 0x240D +0xA3CE 0x240E +0xA3CF 0x240F +0xA3D0 0x2410 +0xA3D1 0x2411 +0xA3D2 0x2412 +0xA3D3 0x2413 +0xA3D4 0x2414 +0xA3D5 0x2415 +0xA3D6 0x2416 +0xA3D7 0x2417 +0xA3D8 0x2418 +0xA3D9 0x2419 +0xA3DA 0x241A +0xA3DB 0x241B +0xA3DC 0x241C +0xA3DD 0x241D +0xA3DE 0x241E +0xA3DF 0x241F +0xA3E0 0x2421 +0xA3E1 0x20AC +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5E +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x2460 +0xC6A2 0x2461 +0xC6A3 0x2462 +0xC6A4 0x2463 +0xC6A5 0x2464 +0xC6A6 0x2465 +0xC6A7 0x2466 +0xC6A8 0x2467 +0xC6A9 0x2468 +0xC6AA 0x2469 +0xC6AB 0x2474 +0xC6AC 0x2475 +0xC6AD 0x2476 +0xC6AE 0x2477 +0xC6AF 0x2478 +0xC6B0 0x2479 +0xC6B1 0x247A +0xC6B2 0x247B +0xC6B3 0x247C +0xC6B4 0x247D +0xC6B5 0x2170 +0xC6B6 0x2171 +0xC6B7 0x2172 +0xC6B8 0x2173 +0xC6B9 0x2174 +0xC6BA 0x2175 +0xC6BB 0x2176 +0xC6BC 0x2177 +0xC6BD 0x2178 +0xC6BE 0x2179 +0xC6BF 0x2F02 +0xC6C0 0x2F03 +0xC6C1 0x2F05 +0xC6C2 0x2F07 +0xC6C3 0x2F0C +0xC6C4 0x2F0D +0xC6C5 0x2F0E +0xC6C6 0x2F13 +0xC6C7 0x2F16 +0xC6C8 0x2F19 +0xC6C9 0x2F1B +0xC6CA 0x2F22 +0xC6CB 0x2F27 +0xC6CC 0x2F2E +0xC6CD 0x2F33 +0xC6CE 0x2F34 +0xC6CF 0x2F35 +0xC6D0 0x2F39 +0xC6D1 0x2F3A +0xC6D2 0x2F41 +0xC6D3 0x2F46 +0xC6D4 0x2F67 +0xC6D5 0x2F68 +0xC6D6 0x2FA1 +0xC6D7 0x2FAA +0xC6D8 0x00A8 +0xC6D9 0xFF3E +0xC6DA 0x30FD +0xC6DB 0x30FE +0xC6DC 0x309D +0xC6DD 0x309E +0xC6E0 0x3005 +0xC6E1 0x3006 +0xC6E2 0x3007 +0xC6E3 0x30FC +0xC6E4 0xFF3B +0xC6E5 0xFF3D +0xC6E6 0x273D +0xC6E7 0x3041 +0xC6E8 0x3042 +0xC6E9 0x3043 +0xC6EA 0x3044 +0xC6EB 0x3045 +0xC6EC 0x3046 +0xC6ED 0x3047 +0xC6EE 0x3048 +0xC6EF 0x3049 +0xC6F0 0x304A +0xC6F1 0x304B +0xC6F2 0x304C +0xC6F3 0x304D +0xC6F4 0x304E +0xC6F5 0x304F +0xC6F6 0x3050 +0xC6F7 0x3051 +0xC6F8 0x3052 +0xC6F9 0x3053 +0xC6FA 0x3054 +0xC6FB 0x3055 +0xC6FC 0x3056 +0xC6FD 0x3057 +0xC6FE 0x3058 +0xC740 0x3059 +0xC741 0x305A +0xC742 0x305B +0xC743 0x305C +0xC744 0x305D +0xC745 0x305E +0xC746 0x305F +0xC747 0x3060 +0xC748 0x3061 +0xC749 0x3062 +0xC74A 0x3063 +0xC74B 0x3064 +0xC74C 0x3065 +0xC74D 0x3066 +0xC74E 0x3067 +0xC74F 0x3068 +0xC750 0x3069 +0xC751 0x306A +0xC752 0x306B +0xC753 0x306C +0xC754 0x306D +0xC755 0x306E +0xC756 0x306F +0xC757 0x3070 +0xC758 0x3071 +0xC759 0x3072 +0xC75A 0x3073 +0xC75B 0x3074 +0xC75C 0x3075 +0xC75D 0x3076 +0xC75E 0x3077 +0xC75F 0x3078 +0xC760 0x3079 +0xC761 0x307A +0xC762 0x307B +0xC763 0x307C +0xC764 0x307D +0xC765 0x307E +0xC766 0x307F +0xC767 0x3080 +0xC768 0x3081 +0xC769 0x3082 +0xC76A 0x3083 +0xC76B 0x3084 +0xC76C 0x3085 +0xC76D 0x3086 +0xC76E 0x3087 +0xC76F 0x3088 +0xC770 0x3089 +0xC771 0x308A +0xC772 0x308B +0xC773 0x308C +0xC774 0x308D +0xC775 0x308E +0xC776 0x308F +0xC777 0x3090 +0xC778 0x3091 +0xC779 0x3092 +0xC77A 0x3093 +0xC77B 0x30A1 +0xC77C 0x30A2 +0xC77D 0x30A3 +0xC77E 0x30A4 +0xC7A1 0x30A5 +0xC7A2 0x30A6 +0xC7A3 0x30A7 +0xC7A4 0x30A8 +0xC7A5 0x30A9 +0xC7A6 0x30AA +0xC7A7 0x30AB +0xC7A8 0x30AC +0xC7A9 0x30AD +0xC7AA 0x30AE +0xC7AB 0x30AF +0xC7AC 0x30B0 +0xC7AD 0x30B1 +0xC7AE 0x30B2 +0xC7AF 0x30B3 +0xC7B0 0x30B4 +0xC7B1 0x30B5 +0xC7B2 0x30B6 +0xC7B3 0x30B7 +0xC7B4 0x30B8 +0xC7B5 0x30B9 +0xC7B6 0x30BA +0xC7B7 0x30BB +0xC7B8 0x30BC +0xC7B9 0x30BD +0xC7BA 0x30BE +0xC7BB 0x30BF +0xC7BC 0x30C0 +0xC7BD 0x30C1 +0xC7BE 0x30C2 +0xC7BF 0x30C3 +0xC7C0 0x30C4 +0xC7C1 0x30C5 +0xC7C2 0x30C6 +0xC7C3 0x30C7 +0xC7C4 0x30C8 +0xC7C5 0x30C9 +0xC7C6 0x30CA +0xC7C7 0x30CB +0xC7C8 0x30CC +0xC7C9 0x30CD +0xC7CA 0x30CE +0xC7CB 0x30CF +0xC7CC 0x30D0 +0xC7CD 0x30D1 +0xC7CE 0x30D2 +0xC7CF 0x30D3 +0xC7D0 0x30D4 +0xC7D1 0x30D5 +0xC7D2 0x30D6 +0xC7D3 0x30D7 +0xC7D4 0x30D8 +0xC7D5 0x30D9 +0xC7D6 0x30DA +0xC7D7 0x30DB +0xC7D8 0x30DC +0xC7D9 0x30DD +0xC7DA 0x30DE +0xC7DB 0x30DF +0xC7DC 0x30E0 +0xC7DD 0x30E1 +0xC7DE 0x30E2 +0xC7DF 0x30E3 +0xC7E0 0x30E4 +0xC7E1 0x30E5 +0xC7E2 0x30E6 +0xC7E3 0x30E7 +0xC7E4 0x30E8 +0xC7E5 0x30E9 +0xC7E6 0x30EA +0xC7E7 0x30EB +0xC7E8 0x30EC +0xC7E9 0x30ED +0xC7EA 0x30EE +0xC7EB 0x30EF +0xC7EC 0x30F0 +0xC7ED 0x30F1 +0xC7EE 0x30F2 +0xC7EF 0x30F3 +0xC7F0 0x30F4 +0xC7F1 0x30F5 +0xC7F2 0x30F6 +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x2554 +0xF9FB 0x2557 +0xF9FC 0x255A +0xF9FD 0x255D +0xF9FE 0x2593 +0xFA40 0xE000 +0xFA41 0xE001 +0xFA42 0xE002 +0xFA43 0xE003 +0xFA44 0xE004 +0xFA45 0xE005 +0xFA46 0xE006 +0xFA47 0xE007 +0xFA48 0xE008 +0xFA49 0xE009 +0xFA4A 0xE00A +0xFA4B 0xE00B +0xFA4C 0xE00C +0xFA4D 0xE00D +0xFA4E 0xE00E +0xFA4F 0xE00F +0xFA50 0xE010 +0xFA51 0xE011 +0xFA52 0xE012 +0xFA53 0xE013 +0xFA54 0xE014 +0xFA55 0xE015 +0xFA56 0xE016 +0xFA57 0xE017 +0xFA58 0xE018 +0xFA59 0xE019 +0xFA5A 0xE01A +0xFA5B 0xE01B +0xFA5C 0xE01C +0xFA5D 0xE01D +0xFA5E 0xE01E +0xFA5F 0xE01F +0xFA60 0xE020 +0xFA61 0xE021 +0xFA62 0xE022 +0xFA63 0xE023 +0xFA64 0xE024 +0xFA65 0xE025 +0xFA66 0xE026 +0xFA67 0xE027 +0xFA68 0xE028 +0xFA69 0xE029 +0xFA6A 0xE02A +0xFA6B 0xE02B +0xFA6C 0xE02C +0xFA6D 0xE02D +0xFA6E 0xE02E +0xFA6F 0xE02F +0xFA70 0xE030 +0xFA71 0xE031 +0xFA72 0xE032 +0xFA73 0xE033 +0xFA74 0xE034 +0xFA75 0xE035 +0xFA76 0xE036 +0xFA77 0xE037 +0xFA78 0xE038 +0xFA79 0xE039 +0xFA7A 0xE03A +0xFA7B 0xE03B +0xFA7C 0xE03C +0xFA7D 0xE03D +0xFA7E 0xE03E +0xFAA1 0xE03F +0xFAA2 0xE040 +0xFAA3 0xE041 +0xFAA4 0xE042 +0xFAA5 0xE043 +0xFAA6 0xE044 +0xFAA7 0xE045 +0xFAA8 0xE046 +0xFAA9 0xE047 +0xFAAA 0xE048 +0xFAAB 0xE049 +0xFAAC 0xE04A +0xFAAD 0xE04B +0xFAAE 0xE04C +0xFAAF 0xE04D +0xFAB0 0xE04E +0xFAB1 0xE04F +0xFAB2 0xE050 +0xFAB3 0xE051 +0xFAB4 0xE052 +0xFAB5 0xE053 +0xFAB6 0xE054 +0xFAB7 0xE055 +0xFAB8 0xE056 +0xFAB9 0xE057 +0xFABA 0xE058 +0xFABB 0xE059 +0xFABC 0xE05A +0xFABD 0xE05B +0xFABE 0xE05C +0xFABF 0xE05D +0xFAC0 0xE05E +0xFAC1 0xE05F +0xFAC2 0xE060 +0xFAC3 0xE061 +0xFAC4 0xE062 +0xFAC5 0xE063 +0xFAC6 0xE064 +0xFAC7 0xE065 +0xFAC8 0xE066 +0xFAC9 0xE067 +0xFACA 0xE068 +0xFACB 0xE069 +0xFACC 0xE06A +0xFACD 0xE06B +0xFACE 0xE06C +0xFACF 0xE06D +0xFAD0 0xE06E +0xFAD1 0xE06F +0xFAD2 0xE070 +0xFAD3 0xE071 +0xFAD4 0xE072 +0xFAD5 0xE073 +0xFAD6 0xE074 +0xFAD7 0xE075 +0xFAD8 0xE076 +0xFAD9 0xE077 +0xFADA 0xE078 +0xFADB 0xE079 +0xFADC 0xE07A +0xFADD 0xE07B +0xFADE 0xE07C +0xFADF 0xE07D +0xFAE0 0xE07E +0xFAE1 0xE07F +0xFAE2 0xE080 +0xFAE3 0xE081 +0xFAE4 0xE082 +0xFAE5 0xE083 +0xFAE6 0xE084 +0xFAE7 0xE085 +0xFAE8 0xE086 +0xFAE9 0xE087 +0xFAEA 0xE088 +0xFAEB 0xE089 +0xFAEC 0xE08A +0xFAED 0xE08B +0xFAEE 0xE08C +0xFAEF 0xE08D +0xFAF0 0xE08E +0xFAF1 0xE08F +0xFAF2 0xE090 +0xFAF3 0xE091 +0xFAF4 0xE092 +0xFAF5 0xE093 +0xFAF6 0xE094 +0xFAF7 0xE095 +0xFAF8 0xE096 +0xFAF9 0xE097 +0xFAFA 0xE098 +0xFAFB 0xE099 +0xFAFC 0xE09A +0xFAFD 0xE09B +0xFAFE 0xE09C +0xFB40 0xE09D +0xFB41 0xE09E +0xFB42 0xE09F +0xFB43 0xE0A0 +0xFB44 0xE0A1 +0xFB45 0xE0A2 +0xFB46 0xE0A3 +0xFB47 0xE0A4 +0xFB48 0xE0A5 +0xFB49 0xE0A6 +0xFB4A 0xE0A7 +0xFB4B 0xE0A8 +0xFB4C 0xE0A9 +0xFB4D 0xE0AA +0xFB4E 0xE0AB +0xFB4F 0xE0AC +0xFB50 0xE0AD +0xFB51 0xE0AE +0xFB52 0xE0AF +0xFB53 0xE0B0 +0xFB54 0xE0B1 +0xFB55 0xE0B2 +0xFB56 0xE0B3 +0xFB57 0xE0B4 +0xFB58 0xE0B5 +0xFB59 0xE0B6 +0xFB5A 0xE0B7 +0xFB5B 0xE0B8 +0xFB5C 0xE0B9 +0xFB5D 0xE0BA +0xFB5E 0xE0BB +0xFB5F 0xE0BC +0xFB60 0xE0BD +0xFB61 0xE0BE +0xFB62 0xE0BF +0xFB63 0xE0C0 +0xFB64 0xE0C1 +0xFB65 0xE0C2 +0xFB66 0xE0C3 +0xFB67 0xE0C4 +0xFB68 0xE0C5 +0xFB69 0xE0C6 +0xFB6A 0xE0C7 +0xFB6B 0xE0C8 +0xFB6C 0xE0C9 +0xFB6D 0xE0CA +0xFB6E 0xE0CB +0xFB6F 0xE0CC +0xFB70 0xE0CD +0xFB71 0xE0CE +0xFB72 0xE0CF +0xFB73 0xE0D0 +0xFB74 0xE0D1 +0xFB75 0xE0D2 +0xFB76 0xE0D3 +0xFB77 0xE0D4 +0xFB78 0xE0D5 +0xFB79 0xE0D6 +0xFB7A 0xE0D7 +0xFB7B 0xE0D8 +0xFB7C 0xE0D9 +0xFB7D 0xE0DA +0xFB7E 0xE0DB +0xFBA1 0xE0DC +0xFBA2 0xE0DD +0xFBA3 0xE0DE +0xFBA4 0xE0DF +0xFBA5 0xE0E0 +0xFBA6 0xE0E1 +0xFBA7 0xE0E2 +0xFBA8 0xE0E3 +0xFBA9 0xE0E4 +0xFBAA 0xE0E5 +0xFBAB 0xE0E6 +0xFBAC 0xE0E7 +0xFBAD 0xE0E8 +0xFBAE 0xE0E9 +0xFBAF 0xE0EA +0xFBB0 0xE0EB +0xFBB1 0xE0EC +0xFBB2 0xE0ED +0xFBB3 0xE0EE +0xFBB4 0xE0EF +0xFBB5 0xE0F0 +0xFBB6 0xE0F1 +0xFBB7 0xE0F2 +0xFBB8 0xE0F3 +0xFBB9 0xE0F4 +0xFBBA 0xE0F5 +0xFBBB 0xE0F6 +0xFBBC 0xE0F7 +0xFBBD 0xE0F8 +0xFBBE 0xE0F9 +0xFBBF 0xE0FA +0xFBC0 0xE0FB +0xFBC1 0xE0FC +0xFBC2 0xE0FD +0xFBC3 0xE0FE +0xFBC4 0xE0FF +0xFBC5 0xE100 +0xFBC6 0xE101 +0xFBC7 0xE102 +0xFBC8 0xE103 +0xFBC9 0xE104 +0xFBCA 0xE105 +0xFBCB 0xE106 +0xFBCC 0xE107 +0xFBCD 0xE108 +0xFBCE 0xE109 +0xFBCF 0xE10A +0xFBD0 0xE10B +0xFBD1 0xE10C +0xFBD2 0xE10D +0xFBD3 0xE10E +0xFBD4 0xE10F +0xFBD5 0xE110 +0xFBD6 0xE111 +0xFBD7 0xE112 +0xFBD8 0xE113 +0xFBD9 0xE114 +0xFBDA 0xE115 +0xFBDB 0xE116 +0xFBDC 0xE117 +0xFBDD 0xE118 +0xFBDE 0xE119 +0xFBDF 0xE11A +0xFBE0 0xE11B +0xFBE1 0xE11C +0xFBE2 0xE11D +0xFBE3 0xE11E +0xFBE4 0xE11F +0xFBE5 0xE120 +0xFBE6 0xE121 +0xFBE7 0xE122 +0xFBE8 0xE123 +0xFBE9 0xE124 +0xFBEA 0xE125 +0xFBEB 0xE126 +0xFBEC 0xE127 +0xFBED 0xE128 +0xFBEE 0xE129 +0xFBEF 0xE12A +0xFBF0 0xE12B +0xFBF1 0xE12C +0xFBF2 0xE12D +0xFBF3 0xE12E +0xFBF4 0xE12F +0xFBF5 0xE130 +0xFBF6 0xE131 +0xFBF7 0xE132 +0xFBF8 0xE133 +0xFBF9 0xE134 +0xFBFA 0xE135 +0xFBFB 0xE136 +0xFBFC 0xE137 +0xFBFD 0xE138 +0xFBFE 0xE139 +0xFC40 0xE13A +0xFC41 0xE13B +0xFC42 0xE13C +0xFC43 0xE13D +0xFC44 0xE13E +0xFC45 0xE13F +0xFC46 0xE140 +0xFC47 0xE141 +0xFC48 0xE142 +0xFC49 0xE143 +0xFC4A 0xE144 +0xFC4B 0xE145 +0xFC4C 0xE146 +0xFC4D 0xE147 +0xFC4E 0xE148 +0xFC4F 0xE149 +0xFC50 0xE14A +0xFC51 0xE14B +0xFC52 0xE14C +0xFC53 0xE14D +0xFC54 0xE14E +0xFC55 0xE14F +0xFC56 0xE150 +0xFC57 0xE151 +0xFC58 0xE152 +0xFC59 0xE153 +0xFC5A 0xE154 +0xFC5B 0xE155 +0xFC5C 0xE156 +0xFC5D 0xE157 +0xFC5E 0xE158 +0xFC5F 0xE159 +0xFC60 0xE15A +0xFC61 0xE15B +0xFC62 0xE15C +0xFC63 0xE15D +0xFC64 0xE15E +0xFC65 0xE15F +0xFC66 0xE160 +0xFC67 0xE161 +0xFC68 0xE162 +0xFC69 0xE163 +0xFC6A 0xE164 +0xFC6B 0xE165 +0xFC6C 0xE166 +0xFC6D 0xE167 +0xFC6E 0xE168 +0xFC6F 0xE169 +0xFC70 0xE16A +0xFC71 0xE16B +0xFC72 0xE16C +0xFC73 0xE16D +0xFC74 0xE16E +0xFC75 0xE16F +0xFC76 0xE170 +0xFC77 0xE171 +0xFC78 0xE172 +0xFC79 0xE173 +0xFC7A 0xE174 +0xFC7B 0xE175 +0xFC7C 0xE176 +0xFC7D 0xE177 +0xFC7E 0xE178 +0xFCA1 0xE179 +0xFCA2 0xE17A +0xFCA3 0xE17B +0xFCA4 0xE17C +0xFCA5 0xE17D +0xFCA6 0xE17E +0xFCA7 0xE17F +0xFCA8 0xE180 +0xFCA9 0xE181 +0xFCAA 0xE182 +0xFCAB 0xE183 +0xFCAC 0xE184 +0xFCAD 0xE185 +0xFCAE 0xE186 +0xFCAF 0xE187 +0xFCB0 0xE188 +0xFCB1 0xE189 +0xFCB2 0xE18A +0xFCB3 0xE18B +0xFCB4 0xE18C +0xFCB5 0xE18D +0xFCB6 0xE18E +0xFCB7 0xE18F +0xFCB8 0xE190 +0xFCB9 0xE191 +0xFCBA 0xE192 +0xFCBB 0xE193 +0xFCBC 0xE194 +0xFCBD 0xE195 +0xFCBE 0xE196 +0xFCBF 0xE197 +0xFCC0 0xE198 +0xFCC1 0xE199 +0xFCC2 0xE19A +0xFCC3 0xE19B +0xFCC4 0xE19C +0xFCC5 0xE19D +0xFCC6 0xE19E +0xFCC7 0xE19F +0xFCC8 0xE1A0 +0xFCC9 0xE1A1 +0xFCCA 0xE1A2 +0xFCCB 0xE1A3 +0xFCCC 0xE1A4 +0xFCCD 0xE1A5 +0xFCCE 0xE1A6 +0xFCCF 0xE1A7 +0xFCD0 0xE1A8 +0xFCD1 0xE1A9 +0xFCD2 0xE1AA +0xFCD3 0xE1AB +0xFCD4 0xE1AC +0xFCD5 0xE1AD +0xFCD6 0xE1AE +0xFCD7 0xE1AF +0xFCD8 0xE1B0 +0xFCD9 0xE1B1 +0xFCDA 0xE1B2 +0xFCDB 0xE1B3 +0xFCDC 0xE1B4 +0xFCDD 0xE1B5 +0xFCDE 0xE1B6 +0xFCDF 0xE1B7 +0xFCE0 0xE1B8 +0xFCE1 0xE1B9 +0xFCE2 0xE1BA +0xFCE3 0xE1BB +0xFCE4 0xE1BC +0xFCE5 0xE1BD +0xFCE6 0xE1BE +0xFCE7 0xE1BF +0xFCE8 0xE1C0 +0xFCE9 0xE1C1 +0xFCEA 0xE1C2 +0xFCEB 0xE1C3 +0xFCEC 0xE1C4 +0xFCED 0xE1C5 +0xFCEE 0xE1C6 +0xFCEF 0xE1C7 +0xFCF0 0xE1C8 +0xFCF1 0xE1C9 +0xFCF2 0xE1CA +0xFCF3 0xE1CB +0xFCF4 0xE1CC +0xFCF5 0xE1CD +0xFCF6 0xE1CE +0xFCF7 0xE1CF +0xFCF8 0xE1D0 +0xFCF9 0xE1D1 +0xFCFA 0xE1D2 +0xFCFB 0xE1D3 +0xFCFC 0xE1D4 +0xFCFD 0xE1D5 +0xFCFE 0xE1D6 +0xFD40 0xE1D7 +0xFD41 0xE1D8 +0xFD42 0xE1D9 +0xFD43 0xE1DA +0xFD44 0xE1DB +0xFD45 0xE1DC +0xFD46 0xE1DD +0xFD47 0xE1DE +0xFD48 0xE1DF +0xFD49 0xE1E0 +0xFD4A 0xE1E1 +0xFD4B 0xE1E2 +0xFD4C 0xE1E3 +0xFD4D 0xE1E4 +0xFD4E 0xE1E5 +0xFD4F 0xE1E6 +0xFD50 0xE1E7 +0xFD51 0xE1E8 +0xFD52 0xE1E9 +0xFD53 0xE1EA +0xFD54 0xE1EB +0xFD55 0xE1EC +0xFD56 0xE1ED +0xFD57 0xE1EE +0xFD58 0xE1EF +0xFD59 0xE1F0 +0xFD5A 0xE1F1 +0xFD5B 0xE1F2 +0xFD5C 0xE1F3 +0xFD5D 0xE1F4 +0xFD5E 0xE1F5 +0xFD5F 0xE1F6 +0xFD60 0xE1F7 +0xFD61 0xE1F8 +0xFD62 0xE1F9 +0xFD63 0xE1FA +0xFD64 0xE1FB +0xFD65 0xE1FC +0xFD66 0xE1FD +0xFD67 0xE1FE +0xFD68 0xE1FF +0xFD69 0xE200 +0xFD6A 0xE201 +0xFD6B 0xE202 +0xFD6C 0xE203 +0xFD6D 0xE204 +0xFD6E 0xE205 +0xFD6F 0xE206 +0xFD70 0xE207 +0xFD71 0xE208 +0xFD72 0xE209 +0xFD73 0xE20A +0xFD74 0xE20B +0xFD75 0xE20C +0xFD76 0xE20D +0xFD77 0xE20E +0xFD78 0xE20F +0xFD79 0xE210 +0xFD7A 0xE211 +0xFD7B 0xE212 +0xFD7C 0xE213 +0xFD7D 0xE214 +0xFD7E 0xE215 +0xFDA1 0xE216 +0xFDA2 0xE217 +0xFDA3 0xE218 +0xFDA4 0xE219 +0xFDA5 0xE21A +0xFDA6 0xE21B +0xFDA7 0xE21C +0xFDA8 0xE21D +0xFDA9 0xE21E +0xFDAA 0xE21F +0xFDAB 0xE220 +0xFDAC 0xE221 +0xFDAD 0xE222 +0xFDAE 0xE223 +0xFDAF 0xE224 +0xFDB0 0xE225 +0xFDB1 0xE226 +0xFDB2 0xE227 +0xFDB3 0xE228 +0xFDB4 0xE229 +0xFDB5 0xE22A +0xFDB6 0xE22B +0xFDB7 0xE22C +0xFDB8 0xE22D +0xFDB9 0xE22E +0xFDBA 0xE22F +0xFDBB 0xE230 +0xFDBC 0xE231 +0xFDBD 0xE232 +0xFDBE 0xE233 +0xFDBF 0xE234 +0xFDC0 0xE235 +0xFDC1 0xE236 +0xFDC2 0xE237 +0xFDC3 0xE238 +0xFDC4 0xE239 +0xFDC5 0xE23A +0xFDC6 0xE23B +0xFDC7 0xE23C +0xFDC8 0xE23D +0xFDC9 0xE23E +0xFDCA 0xE23F +0xFDCB 0xE240 +0xFDCC 0xE241 +0xFDCD 0xE242 +0xFDCE 0xE243 +0xFDCF 0xE244 +0xFDD0 0xE245 +0xFDD1 0xE246 +0xFDD2 0xE247 +0xFDD3 0xE248 +0xFDD4 0xE249 +0xFDD5 0xE24A +0xFDD6 0xE24B +0xFDD7 0xE24C +0xFDD8 0xE24D +0xFDD9 0xE24E +0xFDDA 0xE24F +0xFDDB 0xE250 +0xFDDC 0xE251 +0xFDDD 0xE252 +0xFDDE 0xE253 +0xFDDF 0xE254 +0xFDE0 0xE255 +0xFDE1 0xE256 +0xFDE2 0xE257 +0xFDE3 0xE258 +0xFDE4 0xE259 +0xFDE5 0xE25A +0xFDE6 0xE25B +0xFDE7 0xE25C +0xFDE8 0xE25D +0xFDE9 0xE25E +0xFDEA 0xE25F +0xFDEB 0xE260 +0xFDEC 0xE261 +0xFDED 0xE262 +0xFDEE 0xE263 +0xFDEF 0xE264 +0xFDF0 0xE265 +0xFDF1 0xE266 +0xFDF2 0xE267 +0xFDF3 0xE268 +0xFDF4 0xE269 +0xFDF5 0xE26A +0xFDF6 0xE26B +0xFDF7 0xE26C +0xFDF8 0xE26D +0xFDF9 0xE26E +0xFDFA 0xE26F +0xFDFB 0xE270 +0xFDFC 0xE271 +0xFDFD 0xE272 +0xFDFE 0xE273 +0xFE40 0xE274 +0xFE41 0xE275 +0xFE42 0xE276 +0xFE43 0xE277 +0xFE44 0xE278 +0xFE45 0xE279 +0xFE46 0xE27A +0xFE47 0xE27B +0xFE48 0xE27C +0xFE49 0xE27D +0xFE4A 0xE27E +0xFE4B 0xE27F +0xFE4C 0xE280 +0xFE4D 0xE281 +0xFE4E 0xE282 +0xFE4F 0xE283 +0xFE50 0xE284 +0xFE51 0xE285 +0xFE52 0xE286 +0xFE53 0xE287 +0xFE54 0xE288 +0xFE55 0xE289 +0xFE56 0xE28A +0xFE57 0xE28B +0xFE58 0xE28C +0xFE59 0xE28D +0xFE5A 0xE28E +0xFE5B 0xE28F +0xFE5C 0xE290 +0xFE5D 0xE291 +0xFE5E 0xE292 +0xFE5F 0xE293 +0xFE60 0xE294 +0xFE61 0xE295 +0xFE62 0xE296 +0xFE63 0xE297 +0xFE64 0xE298 +0xFE65 0xE299 +0xFE66 0xE29A +0xFE67 0xE29B +0xFE68 0xE29C +0xFE69 0xE29D +0xFE6A 0xE29E +0xFE6B 0xE29F +0xFE6C 0xE2A0 +0xFE6D 0xE2A1 +0xFE6E 0xE2A2 +0xFE6F 0xE2A3 +0xFE70 0xE2A4 +0xFE71 0xE2A5 +0xFE72 0xE2A6 +0xFE73 0xE2A7 +0xFE74 0xE2A8 +0xFE75 0xE2A9 +0xFE76 0xE2AA +0xFE77 0xE2AB +0xFE78 0xE2AC +0xFE79 0xE2AD +0xFE7A 0xE2AE +0xFE7B 0xE2AF +0xFE7C 0xE2B0 +0xFE7D 0xE2B1 +0xFE7E 0xE2B2 +0xFEA1 0xE2B3 +0xFEA2 0xE2B4 +0xFEA3 0xE2B5 +0xFEA4 0xE2B6 +0xFEA5 0xE2B7 +0xFEA6 0xE2B8 +0xFEA7 0xE2B9 +0xFEA8 0xE2BA +0xFEA9 0xE2BB +0xFEAA 0xE2BC +0xFEAB 0xE2BD +0xFEAC 0xE2BE +0xFEAD 0xE2BF +0xFEAE 0xE2C0 +0xFEAF 0xE2C1 +0xFEB0 0xE2C2 +0xFEB1 0xE2C3 +0xFEB2 0xE2C4 +0xFEB3 0xE2C5 +0xFEB4 0xE2C6 +0xFEB5 0xE2C7 +0xFEB6 0xE2C8 +0xFEB7 0xE2C9 +0xFEB8 0xE2CA +0xFEB9 0xE2CB +0xFEBA 0xE2CC +0xFEBB 0xE2CD +0xFEBC 0xE2CE +0xFEBD 0xE2CF +0xFEBE 0xE2D0 +0xFEBF 0xE2D1 +0xFEC0 0xE2D2 +0xFEC1 0xE2D3 +0xFEC2 0xE2D4 +0xFEC3 0xE2D5 +0xFEC4 0xE2D6 +0xFEC5 0xE2D7 +0xFEC6 0xE2D8 +0xFEC7 0xE2D9 +0xFEC8 0xE2DA +0xFEC9 0xE2DB +0xFECA 0xE2DC +0xFECB 0xE2DD +0xFECC 0xE2DE +0xFECD 0xE2DF +0xFECE 0xE2E0 +0xFECF 0xE2E1 +0xFED0 0xE2E2 +0xFED1 0xE2E3 +0xFED2 0xE2E4 +0xFED3 0xE2E5 +0xFED4 0xE2E6 +0xFED5 0xE2E7 +0xFED6 0xE2E8 +0xFED7 0xE2E9 +0xFED8 0xE2EA +0xFED9 0xE2EB +0xFEDA 0xE2EC +0xFEDB 0xE2ED +0xFEDC 0xE2EE +0xFEDD 0xE2EF +0xFEDE 0xE2F0 +0xFEDF 0xE2F1 +0xFEE0 0xE2F2 +0xFEE1 0xE2F3 +0xFEE2 0xE2F4 +0xFEE3 0xE2F5 +0xFEE4 0xE2F6 +0xFEE5 0xE2F7 +0xFEE6 0xE2F8 +0xFEE7 0xE2F9 +0xFEE8 0xE2FA +0xFEE9 0xE2FB +0xFEEA 0xE2FC +0xFEEB 0xE2FD +0xFEEC 0xE2FE +0xFEED 0xE2FF +0xFEEE 0xE300 +0xFEEF 0xE301 +0xFEF0 0xE302 +0xFEF1 0xE303 +0xFEF2 0xE304 +0xFEF3 0xE305 +0xFEF4 0xE306 +0xFEF5 0xE307 +0xFEF6 0xE308 +0xFEF7 0xE309 +0xFEF8 0xE30A +0xFEF9 0xE30B +0xFEFA 0xE30C +0xFEFB 0xE30D +0xFEFC 0xE30E +0xFEFD 0xE30F +0xFEFE 0xE310 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet new file mode 100644 index 0000000..cdd20d8 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet @@ -0,0 +1,233 @@ +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + +@ A C F G H I L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b d e f g h i j k l m n o +p q r s t v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m n +p q r s t u v w x y z { | } + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l n o +p q r s t u v w x y { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` b c d e f g h i j k l m n o +p q r s t u w y z | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R T U V W X Y Z [ \ ] ^ _ +` a c d e f g i j l m n o +p q r s t u v x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M O +P Q R S T U V W X Y Z [ \ ] ^ _ + a b c d e g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V X Y [ \ ] ^ _ +` a d e f g h i j k l m n o +p q s t u v x y z { | } ~ + + + + + + diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet.UTF-8 b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet.UTF-8 new file mode 100644 index 0000000..b12da9e --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999-snippet.UTF-8 @@ -0,0 +1,233 @@ +㇀ ㇁ ㇂ ㇃ ㇄ 𠄌 ㇅ 𠃑 𠃍 ㇆ ㇇ 𠃋 𡿨 ㇈ 𠃊 ㇉ +㇊ ㇋ ㇌ 𠄎 ㇍ ㇎ Ā Á Ǎ À Ē É Ě È Ō Ó +Ǒ Ò Ê̄ Ế Ê̌ Ề Ê ā á ǎ à ɑ ē é ě è +ī í ǐ ì ō ó ǒ ò ū ú ǔ ù ǖ ǘ ǚ + ǜ ü ê̄ ế ê̌ ề ê ɡ ⏚ ⏛ +𪎩 𡅅 攊 丽 滝 鵎 釟 𧜵 撑 会 伨 +侨 兖 兴 农 凤 务 动 医 华 发 变 团 声 处 备 夲 +头 学 实 実 岚 庆 总 斉 柾 栄 桥 济 炼 电 纤 纬 +纺 织 经 统 缆 缷 艺 苏 药 视 设 询 车 轧 轮 + 琑 糼 緍 楆 竉 刧 醌 碸 酞 肼 +贋 胶 𠧧 肟 黇 䳍 鷉 鸌 䰾 𩷶 𧀎 鸊 𪄳 㗁 + 溚 舾 甙 䤑 马 骏 龙 禇 𨑬 𡷊 𠗐 𢫦 两 亁 +亀 亇 亿 仫 伷 㑌 侽 㹈 倃 傈 㑽 㒓 㒥 円 夅 凛 +凼 刅 争 剹 劐 匧 㗇 厩 㕑 厰 㕓 参 吣 㕭 㕲 㚁 +咓 咣 咴 咹 哐 哯 唘 唣 唨 㖘 唿 㖥 㖿 嗗 㗅 +𧶄 唥 𠱂 𠴕 𥄫 喐 𢳆 㧬 𠍁 蹆 𤶸 𩓥 䁓 𨂾 睺 +𢰸 㨴 䟕 𨅝 𦧲 𤷪 擝 𠵼 𠾴 𠳕 𡃴 撍 蹾 𠺖 𠰋 𠽤 +𢲩 𨉖 𤓓 𠵆 𩩍 𨃩 䟴 𤺧 𢳂 骲 㩧 𩗴 㿭 㔆 𥋇 +𩟔 𧣈 𢵄 鵮 頕 䏙 𦂥 撴 哣 𢵌 𢯊 𡁷 㧻 𡁯 + 𦛚 𦜖 𧦠 擪 𥁒 𠱃 蹨 𢆡 𨭌 𠜱 䠋 𠆩 㿺 塳 +𢶍 𤗈 𠓼 𦂗 𠽌 𠶖 啹 䂻 䎺 䪴 𢩦 𡂝 膪 飵 +𠶜 捹 㧾 𢝵 跀 嚡 摼 㹃 𪘁 𠸉 𢫏 𢳉 𡃈 𣧂 +㦒 㨆 𨊛 㕸 𥹉 𢃇 噒 𠼱 𢲲 𩜠 㒼 氽 𤸻 𧕴 +𢺋 𢈈 𪙛 𨳍 𠹺 𠰴 𦠜 羓 𡃏 𢠃 𢤹 㗻 𥇣 𠺌 𠾍 𠺪 +㾓 𠼰 𠵇 𡅏 𠹌 𠺫 𠮩 𠵈 𡃀 𡄽 㿹 𢚖 搲 𠾭 +𣏴 𧘹 𢯎 𠵾 𠵿 𢱑 𢱕 㨘 𠺘 𡃇 𠼮 𪘲 𦭐 𨳒 𨶙 𨳊 +閪 哌 苄 喹 𩻃 鰦 骶 𧝞 𢷮 煀 腭 胬 尜 𦕲 脴 +㞗 卟 𨂽 醶 𠻺 𠸏 𠹷 𠻻 㗝 𤷫 㘉 𠳖 嚯 𢞵 𡃉 𠸐 +𠹸 𡁸 𡅈 𨈇 𡑕 𠹹 𤹐 𢶤 婔 𡀝 𡀞 𡃵 𡃶 垜 𠸑 + 𧚔 𨋍 𠾵 𠹻 𥅾 㜃 𠾶 𡆀 𥋘 𪊽 𤧚 𡠺 𤅷 𨉼 墙 +剨 㘚 𥜽 箲 孨 䠀 䬬 鼧 䧧 鰟 鮍 𥭴 𣄽 嗻 㗲 嚉 +丨 夂 𡯁 屮 靑 𠂆 乛 亻 㔾 尣 彑 忄 㣺 扌 攵 歺 +氵 氺 灬 爫 丬 犭 𤣩 罒 礻 糹 罓 𦉪 㓁 𦍋 耂 +肀 𦘒 𦥑 卝 衤 见 𧢲 讠 贝 钅 镸 长 门 𨸏 韦 页 +风 飞 饣 𩠐 鱼 鸟 黄 歯 龜 丷 𠂇 阝 户 钢 +崾 嵈 嵖 㷼 㠏 嶤 嶹 㠠 㠸 幂 庽 弥 徃 㤈 㤔 㤿 +㥍 惗 愽 峥 㦉 憷 憹 懏 㦸 戬 抐 拥 挘 㧸 嚱 + 㨃 揢 揻 搇 摚 㩋 擀 崕 嘡 龟 㪗 斆 㪽 旿 晓 +㫲 暒 㬢 朖 㭂 枤 栀 㭘 桊 梄 㭲 㭱 㭻 椉 楃 牜 +楤 榟 榅 㮼 槖 㯝 橥 橴 橱 檂 㯬 檙 㯲 檫 檵 櫔 +櫶 殁 毁 毪 汵 沪 㳋 洂 洆 洦 涁 㳯 涤 涱 渕 渘 +温 溆 𨧀 溻 滢 滚 齿 滨 滩 漤 漴 㵆 𣽁 澁 澾 㵪 +㵵 熷 岙 㶊 瀬 㶑 灐 灔 灯 灿 炉 𠌥 䏁 㗱 𠻘 +𣻗 垾 𦻓 焾 𥟠 㙎 榢 𨯩 孴 穉 𥣡 𩓙 穥 穽 𥦬 窻 +窰 竂 竃 燑 𦒍 䇊 竚 竝 竪 䇯 咲 𥰁 笋 筕 笩 𥌎 +𥳾 箢 筯 莜 𥮴 𦱿 篐 萡 箒 𥴠 㶭 𥱥 蒒 篺 +簵 𥳁 籄 粃 𤢂 粦 晽 𤕸 糉 糇 糦 籴 糳 糵 + 繧 䔝 𦹄 絝 𦻖 璍 綉 綫 焵 綳 𤁗 𦀩 緤 㴓 +緵 𡟹 緥 𨍭 𦄡 𦅚 繮 纒 䌫 鑬 縧 罀 罁 罇 礶 +𦋐 駡 羗 𦍑 羣 𡙡 𠁨 䕜 𣝦 䔃 𨌺 翺 𦒉 耈 耝 + 耯 𪂇 𦳃 耻 耼 聡 𢜔 䦉 𦘦 𣷣 𦛨 朥 肧 𨩈 脇 +脚 墰 𢛶 汿 𦒘 𤾸 擧 𡒊 舘 𡡞 橓 𤩥 𤪕 䑺 舩 𠬍 +𦩒 𣵾 俹 𡓽 蓢 荢 𦬊 𤦧 𣔰 𡝳 𣷸 芪 椛 芳 䇛 +蕋 苐 茚 𠸖 𡞴 㛁 𣅽 𣕚 艻 苢 茘 𣺋 𦶣 𦬅 𦮗 𣗎 +㶿 茝 嗬 莅 䔋 𦶥 莬 菓 㑾 𦻔 橗 蕚 㒖 𦹂 𢻯 +葘 𥯤 葱 㷓 䓤 檧 葊 𣲵 祘 𦮖 𦹷 𦹃 蓞 莑 +䒠 蒓 蓤 𥲑 䉀 𥳀 䕃 蔴 嫲 𦺙 䔧 蕳 䔖 枿 蘖 + 𨘥 𨘻 藁 𧂈 蘂 𡖂 𧃍 䕫 䕪 蘨 㙈 𡢢 号 𧎚 虾 +蝱 𪃸 蟮 𢰧 螱 蟚 蠏 噡 虬 桖 䘏 衅 衆 𧗠 𣶹 𧗤 +衞 袜 䙛 袴 袵 揁 装 睷 𧜏 覇 覊 覧 覼 𨨥 +觧 𧤤 𧪽 誜 瞓 釾 誐 𧩙 竩 𧬺 𣾏 䜓 𧬸 煼 謌 謟 +𥐰 𥕥 謿 譌 譍 誩 𤩺 讐 讛 誯 𡛟 䘕 衏 貛 𧵔 𧶏 +貫 㜥 𧵓 賖 𧶘 𧶽 贒 贃 𡤐 賛 灜 贑 𤳉 㻐 +趩 𨀂 𡀔 𤦊 㭼 𨆼 𧄌 竧 躭 躶 軃 鋔 輙 輭 𨍥 𨐒 +辥 錃 𪊟 𠩐 辳 䤪 𨧞 𨔽 𣶻 廸 𣉢 迹 𪀔 𨚼 𨔁 𢌥 +㦀 𦻗 逷 𨔼 𧪾 遡 𨕬 𨘋 邨 𨜓 郄 𨛦 邮 酧 㫰 +醩 釄 粬 𨤳 𡺉 鈎 沟 鉁 鉢 𥖹 𨫆 𣲛 𨬌 𥗛 + 𠴱 錬 鍫 𨫡 𨯫 炏 嫃 𨫢 𨫥 䥥 鉄 𨯬 𨰹 𨯿 鍳 +鑛 躼 閅 閦 鐦 閠 濶 䊹 𢙺 𨛘 𡉼 𣸮 䧟 氜 陻 隖 +䅬 隣 𦻕 懚 隶 磵 𨫠 隽 双 䦡 𦲸 𠉴 𦐐 𩂯 𩃥 𤫑 +𡤕 𣌊 霱 虂 霶 䨏 䔽 䖅 𤫩 灵 孁 霛 𩇕 靗 孊 +𩇫 靟 鐥 僐 𣂷 𣂼 鞉 鞟 鞱 鞾 韀 韒 韠 𥑬 韮 琜 +𩐳 韵 𩐝 𧥺 䫑 頴 頳 顋 顦 㬎 𧅵 㵑 𠘰 𤅜 +𥜆 飊 颷 飈 飇 䫿 𦴧 𡛓 喰 飡 飦 飬 鍸 餹 𤨩 䭲 +𩡗 𩤅 駵 騌 騻 騐 驘 𥜥 㛄 𩂱 𩯕 髠 髢 𩬅 髴 䰎 +鬔 鬭 𨘀 倴 鬴 𦦨 㣃 𣁽 魐 魀 𩴾 婅 𡡣 鮎 𤉋 鰂 +鯿 鰌 𩹨 鷔 𩾷 𪆒 𪆫 𪃡 𪄣 𪇟 鵾 鶃 𪄴 鸎 梈 + 鷄 𢅛 𪆓 𪈠 𡤻 𪈳 鴹 𪂹 𪊴 麐 麕 麞 麢 䴴 麪 +麯 𤍤 黁 㭠 㧥 㴝 伲 㞾 𨰫 鼂 鼈 䮖 鐤 𦶢 鼗 +鼹 嚟 嚊 齅 馸 𩂋 韲 葿 齢 齩 竜 龎 爖 䮾 𤥵 𤦻 +煷 𤧸 𤍈 𤩑 玞 𨯚 𡣺 禟 𨥾 𨸶 鍩 鏳 𨩄 鋬 鎁 鏋 +𨥬 𤒹 爗 㻫 睲 穃 烐 𤑳 𤏸 煾 𡟯 炣 𡢾 𣖙 㻇 𡢅 +𥐯 𡟸 㜢 𡛻 𡠹 㛡 𡝴 𡣑 𥽋 㜣 𡛀 坛 𤨥 𡏾 𡊨 +𡏆 𡒶 蔃 𣚦 葕 𤦔 𧅥 𣸱 𥕜 𣻻 𧁒 䓴 𣛮 𩦝 𦼦 +柹 㜳 㰕 㷧 塬 𡤢 栐 䁗 𣜿 𤃡 𤂋 𤄏 𦰡 哋 嚞 𦚱 +嚒 𠿟 𠮨 𠸍 鏆 𨬓 鎜 仸 儫 㠙 𤐶 亼 𠑥 𠍿 佋 侊 +𥙑 婨 𠆫 𠏋 㦙 𠌊 𠐔 㐵 伩 𠋀 𨺳 𠉵 諚 𠈌 亘 + 働 儍 侢 伃 𤨎 𣺊 佂 倮 偬 傁 俌 俥 偘 僼 + 湶 𣖕 𣸹 𣺿 浲 𡢄 𣺉 冨 凃 𠗠 䓝 𠒣 𠒒 +𠒑 赺 𨪜 𠜎 剙 劤 𠡳 勡 䙺 熌 𤎌 𠰠 𤦬 𡃤 槑 +𠸝 㻞 璙 琔 瑖 玘 䮎 𤪼 𤂍 叐 㖄 爏 𤃉 喴 𠍅 +响 𠯆 圝 鉝 雴 鍦 埝 垍 坿 㘾 壋 媙 𨩆 𡛺 𡝯 𡜐 +娬 妸 銏 婾 嫏 娒 𥥆 𡧳 𡡡 𤊕 㛵 洅 瑃 娡 𥺃 +媁 𨯗 𠐓 鏠 璌 𡌃 焅 䥲 鐈 𨧻 鎽 㞠 尞 岞 幞 幈 +𡦖 𡥼 𣫮 廍 孏 𡤃 𡤄 㜁 𡢠 㛝 𡛾 㛓 脪 𨩇 𡶺 𣑲 +𨦨 弌 弎 𡤧 𡞫 婫 𡜻 孄 蘔 𧗽 衠 恾 𢡠 𢘫 忛 㺸 +𢖯 𢖾 𩂈 𦽳 懀 𠀾 𠁆 𢘛 憙 憘 恵 𢲛 𢴇 𤛔 𩅍 + 摱 𤙥 𢭪 㨩 𢬢 𣑐 𩣪 𢹸 挷 𪑛 撶 挱 揑 𤧣 𢵧 +护 𢲡 搻 敫 楲 㯴 𣂎 𣊭 𤦉 𣊫 唍 𣋠 𡣙 𩐿 曎 𣊉 +𣆳 㫠 䆐 𥖄 𨬢 𥖏 𡛼 𥕛 𥐥 磮 𣄃 𡠪 𣈴 㑤 𣈏 𣆂 +𤋉 暎 𦴤 晫 䮓 昰 𧡰 𡷫 晣 𣋒 𣋡 昞 𥡲 㣑 𣠺 𣞼 +㮙 𣞢 𣏾 瓐 㮖 枏 𤘪 梶 栞 㯄 檾 㡣 𣟕 𤒇 樳 橒 +櫉 欅 𡤒 攑 梘 橌 㯗 橺 歗 𣿀 𣲚 鎠 鋲 𨯪 𨫋 +銉 𨀞 𨧜 鑧 涥 漋 𤧬 𣽿 㶏 渄 𤀼 娽 渊 塇 洤 +硂 焻 𤌚 𤉶 烱 牐 犇 犔 𤞏 𤜥 兹 𤪤 𠗫 瑺 𣻸 𣙟 +𤩊 𤤗 𥿡 㼆 㺱 𤫟 𨰣 𣼵 悧 㻳 瓌 琼 鎇 琷 䒟 𦷪 +䕑 疃 㽣 𤳙 𤴆 㽘 畕 癳 𪗆 㬙 瑨 𨫌 𤦫 𤦎 㫻 + 㷍 𤩎 㻿 𤧅 𤣳 釺 圲 鍂 𨫣 𡡤 僟 𥈡 𥇧 睸 𣈲 +眎 眏 睻 𤚗 𣞁 㩞 𤣰 琸 璛 㺿 𤪺 𤫇 䃈 𤪖 𦆮 錇 +𥖁 砞 碍 碈 磒 珐 祙 𧝁 𥛣 䄎 蒖 禥 樭 𣻺 稺 +秴 䅮 𡛦 䄲 鈵 秱 𠵌 𤦌 𠊙 𣶺 𡝮 㖗 啫 㕰 㚪 𠇔 +𠰍 竢 婙 𢛵 𥪯 𥪜 娍 𠉛 磰 娪 𥯆 竾 䇹 籝 籭 䈑 +𥮳 𥺼 𥺦 糍 𤧹 𡞰 粎 籼 粮 檲 緜 縇 緓 罎 𦉡 +𦅜 𧭈 綗 𥺂 䉪 𦭵 𠤖 柖 𠁎 𣗏 埄 𦐒 𦏸 𤥢 翝 笧 +𠠬 𥫩 𥵃 笌 𥸎 駦 虅 驣 樜 𣐿 㧢 𤧷 𦖭 騟 𦖠 蒀 +𧄧 𦳑 䓪 脷 䐂 胆 脉 腂 𦞴 飃 𦩂 艢 艥 𦩑 葓 𦶧 +蘐 𧈛 媆 䅿 𡡀 嬫 𡢡 嫤 𡣘 蚠 蜨 𣶏 蠭 𧐢 娂 + 衮 佅 袇 袿 裦 襥 襍 𥚃 襔 𧞅 𧞄 𨯵 𨯙 𨮜 𨧹 +㺭 蒣 䛵 䛏 㟲 訽 訜 𩑈 彍 鈫 𤊄 旔 焩 烄 𡡅 鵭 +貟 賩 𧷜 妚 矃 姰 䍮 㛔 踪 躧 𤰉 輰 轊 䋴 汘 澻 +𢌡 䢛 潹 溋 𡟚 鯩 㚵 𤤯 邻 啱 䤆 醻 鐄 𨩋 䁢 +𨫼 鐧 𨰝 𨰻 蓥 訫 閙 閧 閗 閖 𨴴 瑅 㻂 𤣿 𤩂 𤏪 +㻧 𣈥 随 𨻧 𨹦 𨹥 㻌 𤧭 𤩸 𣿮 琒 瑫 㻼 靁 𩂰 +桇 䨝 𩂓 𥟟 鍨 𨦉 𨰦 𨬯 𦎾 銺 嬑 譩 䤼 珹 𤈛 +鞛 靱 餸 𠼦 巁 𨯅 𤪲 頟 𩓚 鋶 𩗗 釥 䓀 𨭐 𤩧 𨭤 +飜 𨩅 㼀 鈪 䤥 萔 餻 饍 𧬆 㷽 馛 䭯 馪 驜 𨭥 𥣈 +檏 騡 嫾 騯 𩣱 䮐 𩥈 馼 䮽 䮗 鍽 塲 𡌂 堢 𤦸 + 𡓨 硄 𢜟 𣶸 棅 㵽 鑘 㤧 慐 𢞁 𢥫 愇 鱏 鱓 鱻 +鰵 鰐 魿 鯏 𩸭 鮟 𪇵 𪃾 鴡 䲮 𤄄 鸘 䲰 鴌 𪆴 𪃭 +𪃳 𩤯 鶥 蒽 𦸒 𦿟 𦮂 藼 䔳 𦶤 𦺄 𦷰 萠 藮 𦸀 𣟗 +𦁤 秢 𣖜 𣙀 䤭 𤧞 㵢 鏛 銾 鍈 𠊿 碹 鉷 鑍 俤 㑀 +遤 𥕝 砽 硔 碶 硋 𡝗 𣇉 𤥁 㚚 佲 濚 濙 瀞 吔 +𤆵 垻 壳 垊 鴖 埗 焴 㒯 𤆬 燫 𦱀 𤾗 𡞵 𨩉 +愌 嫎 娋 䊼 𤒈 㜬 䭻 𨧼 鎻 鎸 𡣖 𠼝 葲 𦳀 𡐓 𤋺 +𢰦 𤏁 妔 𣶷 𦝁 綨 𦅛 𦂤 𤦹 𤦋 𨧺 鋥 珢 㻩 璴 𨭣 +𡢟 㻡 𤪳 櫘 珳 珻 㻖 𤨾 𤪔 𡟙 𤩦 𠎧 𡐤 𤧥 瑈 𤤖 +炥 𤥶 銄 珦 鍟 𠓾 錱 𨫎 𨨖 鎆 𨯧 𥗕 䤵 𨪂 煫 + 𤥃 𠳿 嚤 𠘚 𠯫 𠲸 唂 秄 𡟺 緾 𡛂 𤩐 𡡒 䔮 鐁 +㜊 𨫀 𤦭 妰 𡢿 𡢃 𧒄 媡 㛢 𣵛 㚰 鉟 婹 𨪁 𡡢 鍴 +㳍 𠪴 䪖 㦊 僴 㵩 㵌 𡎜 煵 䋻 𨈘 渏 𩃤 䓫 浗 𧹏 +灧 沯 㳖 𣿭 𣸭 渂 漌 㵯 𠏵 畑 㚼 㓈 䚀 㻚 䡱 姄 +鉮 䤾 轁 𨰜 𦯀 堒 埈 㛖 𡑒 烾 𤍢 𤩱 𢿣 𡊰 𢎽 梹 +楧 𡎘 𣓥 𧯴 𣛟 𨪃 𣟖 𣏺 𤲟 樚 𣚭 𦲷 萾 䓟 䓎 +𦴦 𦵑 𦲂 𦿞 漗 𧄉 茽 𡜺 菭 𦲀 𧁓 𡟛 妉 媂 𡞳 婡 +婱 𡤅 𤇼 㜭 姯 𡜼 㛇 熎 鎐 暚 𤊥 婮 娫 𤊓 樫 𣻹 +𧜶 𤑛 𤋊 焝 𤉙 𨧡 侰 𦴨 峂 𤓎 𧹍 𤎽 樌 𤉖 𡌄 炦 +焳 𤏩 㶥 泟 勇 𤩏 繥 姫 崯 㷳 彜 𤩝 𡟟 綤 萦 + 咅 𣫺 𣌀 𠈔 坾 𠣕 𠘙 㿥 𡾞 𪊶 瀃 𩅛 嵰 玏 糓 +𨩙 𩐠 俈 翧 狍 猐 𧫴 猸 猹 𥛶 獁 獈 㺩 𧬘 遬 燵 +𤣲 珡 臶 㻊 県 㻑 沢 国 琙 琞 琟 㻢 㻰 㻴 㻺 瓓 +㼎 㽓 畂 畭 畲 疍 㽼 痈 痜 㿀 癍 㿗 癴 㿜 発 𤽜 +熈 嘣 覀 塩 䀝 睃 䀹 条 䁅 㗛 瞘 䁪 䁯 属 瞾 矋 +売 砘 点 砜 䂨 砹 硇 硑 硦 葈 𥔵 礳 栃 礲 䄃 +䄉 禑 禙 辻 稆 込 䅧 窑 䆲 窼 艹 䇄 竏 竛 䇏 両 +筢 筬 筻 簒 簛 䉠 䉺 类 粜 䊌 粸 䊔 糭 输 烀 𠳏 +総 緔 緐 緽 羮 羴 犟 䎗 耠 耥 笹 耮 耱 联 㷌 垴 +炠 肷 胩 䏭 脌 猪 脎 脒 畠 脔 䐁 㬹 腖 腙 腚 + 䐓 堺 腼 膄 䐥 膓 䐭 膥 埯 臁 臤 艔 䒏 芦 艶 +苊 苘 苿 䒰 荗 险 榊 萅 烵 葤 惣 蒈 䔄 蒾 蓡 蓸 +蔐 蔸 蕒 䔻 蕯 蕰 藠 䕷 虲 蚒 蚲 蛯 际 螋 䘆 䘗 +袮 裿 褤 襇 覑 𧥧 訩 訸 誔 誴 豑 賔 賲 贜 䞘 塟 +跃 䟭 仮 踺 嗘 坔 蹱 嗵 躰 䠷 軎 転 軤 軭 軲 辷 +迁 迊 迌 逳 駄 䢭 飠 鈓 䤞 鈨 鉘 鉫 銱 銮 銿 +鋣 鋫 鋳 鋴 鋽 鍃 鎄 鎭 䥅 䥑 麿 鐗 匁 鐝 鐭 鐾 +䥪 鑔 鑹 锭 関 䦧 间 阳 䧥 枠 䨤 靀 䨵 鞲 韂 噔 +䫤 惨 颹 䬙 飱 塄 餎 餙 冴 餜 餷 饂 饝 饢 䭰 駅 +䮝 騼 鬏 窃 魩 鮁 鯝 鯱 鯴 䱭 鰠 㝯 𡯂 鵉 鰺 + 黾 噐 鶓 鶽 鷀 鷼 银 辶 鹻 麬 麱 麽 黆 铜 黢 +黱 黸 竈 齄 𠂔 𠊷 𠎠 椚 铃 妬 𠓗 塀 铁 㞹 𠗕 𠘕 +𠙶 𡚺 块 煳 𠫂 𠫍 𠮿 呪 吆 𠯋 咞 𠯻 𠰻 𠱓 𠱥 𠱼 +惧 𠲍 噺 𠲵 𠳝 𠳭 𠵯 𠶲 𠷈 楕 鰯 螥 𠸄 𠸎 𠻗 𠾐 +𠼭 𠹳 尠 𠾼 帋 𡁜 𡁏 𡁶 朞 𡁻 𡂈 𡂖 㙇 𡂿 𡃓 𡄯 +𡄻 卤 蒭 𡋣 𡍵 𡌶 讁 𡕷 𡘙 𡟃 𡟇 乸 炻 𡠭 𡥪 +𡨭 𡩅 𡰪 𡱰 𡲬 𡻈 拃 𡻕 𡼕 熘 桕 𢁅 槩 㛈 𢉼 𢏗 +𢏺 𢜪 𢡱 𢥏 苽 𢥧 𢦓 𢫕 覥 𢫨 辠 𢬎 鞸 𢬿 顇 骽 +𢱌 𢲈 𢲷 𥯨 𢴈 𢴒 𢶷 𢶕 𢹂 𢽴 𢿌 𣀳 𣁦 𣌟 𣏞 +徱 晈 暿 𧩹 𣕧 𣗳 𤦺 𣘚 𣜖 𠍆 墵 朎 + 椘 𣪧 𧙗 𥿢 𣸑 𣺹 𧗾 𢂚 䣐 䪸 𤄙 𨪚 𤋮 𤌍 𤀻 +𤌴 𤎖 𤩅 𠗊 凒 𠘑 妟 𡺨 㮾 𣳿 𤐄 𤓖 垈 𤙴 㦛 𤜯 +𨗨 𩧉 㝢 𢇃 譞 𨭎 𤠒 𤣻 𤨕 爉 𤫀 𠱸 奥 𤺥 𤾆 +𠝹 軚 𥀬 劏 圿 煱 𥊙 𥐙 𣽊 𤪧 喼 𥑆 𥑮 𦭒 㑳 +𥔿 𧘲 𥕞 䜘 𥕢 𥕦 𥟇 𤤿 𥡝 偦 㓻 𣏌 𥤃 䝼 𨥈 +𥪮 𥮉 𥰆 𡶐 垡 煑 𦄂 𧰒 遖 𦆲 𤾚 譢 𦐂 𦑊 +嵛 𦯷 𦒄 𡤜 諪 𤧶 𦒈 𣿯 𦔒 䯀 𦖿 𦚵 𢜛 鑥 𥟡 +憕 娧 晉 嚹 𤔡 𦛼 乪 𤤴 陖 涏 𦲽 㘘 襷 𦞙 𦡮 +𦐑 𦡞 𦣇 筂 𩃀 𠨑 𦤦 𦤹 穅 𦧺 騦 𦨭 㙟 +𦑩 𠀡 禃 𦨴 𦭛 崬 𣔙 𦮝 䛐 𦲤 画 补 𦶮 墶 + 㜜 𢖍 𧁋 𧇍 㱔 𧊀 𧊅 銁 𢅺 𧊋 錰 𧋦 𤧐 氹 钟 +𧑐 𠻸 蠧 裵 𢤦 𨑳 𡞱 溸 𤨪 𡠠 㦤 㚹 䔿 暶 +𩲭 𩢤 襃 𧟌 𧡘 囖 䃟 𡘊 㦡 𣜯 𨃨 𡏅 熭 荦 𧧝 𩆨 + 䲷 𧂯 𨦫 𧧽 𧨊 𧬋 𧵦 𤅺 筃 祾 𨀉 澵 𪋟 樃 𨌘 +厢 𦸇 鎿 栶 靝 𨅯 𨀣 𦦵 𡏭 𣈯 𨁈 嶅 𨰰 𨂃 圕 頣 +𨥉 嶫 𤦈 斾 槕 叒 𤪥 𣾁 㰑 朶 𨂐 𨃴 𨄮 𡾡 𨅏 +𨆉 𨆯 𨈚 𨌆 𨌯 𨎊 㗊 𨑨 𨚪 䣺 揦 𨥖 砈 鉕 𨦸 䏲 +𨧧 䏟 𨧨 𨭆 𨯔 姸 𨰉 𨿅 𩃬 𩄐 𩄼 㷷 𩅞 𤫊 +运 犏 嚋 𩓧 𩗩 𩖰 𩖸 𩜲 𩣑 𩥉 𩥪 𩧃 𩨨 𩬎 𩵚 𩶛 +纟 𩻸 𩼣 䲤 镇 𪊓 熢 𪋿 䶑 递 𪗋 䶜 𠲜 达 嗁 + 辺 𢒰 边 𤪓 䔉 繿 潖 檱 仪 㓤 𨬬 𧢝 㜺 躀 𡟵 +𨀤 𨭬 𨮙 𧨾 𦚯 㷫 𧙕 𣲷 𥘵 𥥖 亚 𥺁 𦉘 嚿 𠹭 踎 +孭 𣺈 𤲞 揞 𡟶 𡡻 攰 嘭 𥱊 吚 𥌑 㷆 𩶘 䱽 嘢 +嘞 罉 𥻘 奵 𣵀 蝰 东 𠿪 𠵉 𣚺 脗 鵞 贘 瘻 鱅 癎 +瞹 鍅 吲 腈 苷 嘥 脲 萘 肽 嗪 祢 噃 吖 𠺝 㗎 嘅 +嗱 曱 𨋢 㘭 甴 嗰 喺 咗 啲 𠱁 𠲖 廐 𥅈 𠹶 𢱢 +𠺢 麫 絚 嗞 𡁵 抝 靭 咔 賍 燶 酶 揼 掹 揾 啩 𢭃 +鱲 𢺳 冚 㓟 𠶧 冧 呍 唞 唓 癦 踭 𦢊 疱 肶 蠄 螆 +裇 膶 萜 𡃁 䓬 猄 𤜆 宐 茋 𦢓 噻 𢛴 𧴯 𤆣 𧵳 𦻐 +𧊶 酰 𡇙 鈈 𣳼 𪚩 𠺬 𠻹 牦 𡲢 䝎 𤿂 𧿹 𠿫 䃺 + 鱝 攟 𢶠 䣳 𤟠 𩵼 𠿬 𠸊 𧖣 𠿭 𦁈 𡆇 熣 +纎 鵐 业 丄 㕷 嬍 沲 卧 㚬 㧜 卽 㚥 𤘘 墚 𤭮 舭 +呋 垪 𥪕 𠥹 㩒 𢑥 獴 𩺬 䴉 鯭 𣳾 𩼰 䱛 𤾩 𩖞 +𩿞 葜 𣶶 𧊲 𦞳 𣜠 挮 紥 𣻷 𣸬 㨪 逈 勌 㹴 㙺 䗩 +𠒎 癀 嫰 𠺶 硺 𧼮 墧 䂿 噼 鮋 嵴 癔 𪐴 麅 䳡 +㟻 愙 𣃚 𤏲 噝 𡊩 垧 𤥣 𩸆 刴 𧂮 㖭 鵼 +籖 鬹 埞 𡝬 屓 擓 𩓐 𦌵 𧅤 蚭 𠴨 𦴢 𤫢 𠵱 凾 +𡼏 嶎 霃 𡷑 麁 遌 笟 鬂 峑 箣 扨 挵 髿 篏 鬪 籾 + 籂 粆 鰕 篼 鬉 鰛 𤤾 齚 啳 寃 俽 麘 俲 剠 +㸆 勑 坧 偖 妷 帒 韈 鶫 轜 呩 鞴 饀 鞺 匬 愰 + 椬 叚 鰊 鴂 䰻 陁 榀 傦 畆 𡝭 駚 剳 酙 隁 +酜 酑 𨺗 捿 𦴣 櫊 嘑 醎 畺 抅 𠏼 獏 籰 𥰡 𣳽 + 𤤙 盖 鮝 个 𠳔 莾 衂 届 槀 坺 刟 巵 从 +氱 𠇲 伹 咜 哚 劚 趂 㗾 㗳 歒 酼 龥 鮗 頮 +颴 骺 麨 麄 煺 笔 毺 蠘 罸 嘠 𪙊 蹷 齓 +跔 蹏 鸜 踁 抂 𨍽 踨 蹵 竓 𤩷 稾 磘 泪 詧 瘇 +𨩚 鼦 泎 蟖 痃 𪊲 硓 咢 贌 狢 獱 謭 猂 瓱 賫 𤪻 +蘯 徺 袠 䒷 𡠻 𦸅 詾 𢔛 惽 癧 髗 鵄 鍮 +鮏 蟵 賷 猬 霡 鮰 㗖 犲 䰇 籑 饊 𦅙 慙 䰄 +麖 慽 坟 慯 抦 戹 㩜 懢 厪 𣏵 捤 栂 㗒 + 嵗 𨯂 迚 𨸹 僙 𡵆 礆 匲 阸 𠼻 䁥 矾 +糂 𥼚 糚 稭 聦 聣 絍 甅 瓲 覔 舚 朌 聢 𧒆 聛 瓰 +脃 眤 覉 𦟌 畓 𦻑 螩 蟎 臈 螌 詉 貭 譃 眫 瓸 蓚 +㘵 榲 趦 覩 涹 蟁 𤀑 瓧 㷛 煶 悤 憜 㳑 +恷 罱 𨬭 惩 䭾 删 㰘 𣳇 𥻗 𧙖 𥔱 𡥄 𡋾 𩤃 +𦷜 𧂭 峁 𦆭 𨨏 𣙷 𠃮 𦡆 𤼎 䕢 嬟 𦍌 齐 麦 𦉫 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.IRREVERSIBLE.TXT new file mode 100644 index 0000000..701b01a --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.IRREVERSIBLE.TXT @@ -0,0 +1,8 @@ +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.TXT new file mode 100644 index 0000000..83bfc5a --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-1999.TXT @@ -0,0 +1,18284 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8840 0x31C0 +0x8841 0x31C1 +0x8842 0x31C2 +0x8843 0x31C3 +0x8844 0x31C4 +0x8845 0x2010C +0x8846 0x31C5 +0x8847 0x200D1 +0x8848 0x200CD +0x8849 0x31C6 +0x884A 0x31C7 +0x884B 0x200CB +0x884C 0x21FE8 +0x884D 0x31C8 +0x884E 0x200CA +0x884F 0x31C9 +0x8850 0x31CA +0x8851 0x31CB +0x8852 0x31CC +0x8853 0x2010E +0x8854 0x31CD +0x8855 0x31CE +0x8856 0x0100 +0x8857 0x00C1 +0x8858 0x01CD +0x8859 0x00C0 +0x885A 0x0112 +0x885B 0x00C9 +0x885C 0x011A +0x885D 0x00C8 +0x885E 0x014C +0x885F 0x00D3 +0x8860 0x01D1 +0x8861 0x00D2 +0x8862 0x00CA 0x0304 +0x8863 0x1EBE +0x8864 0x00CA 0x030C +0x8865 0x1EC0 +0x8866 0x00CA +0x8867 0x0101 +0x8868 0x00E1 +0x8869 0x01CE +0x886A 0x00E0 +0x886B 0x0251 +0x886C 0x0113 +0x886D 0x00E9 +0x886E 0x011B +0x886F 0x00E8 +0x8870 0x012B +0x8871 0x00ED +0x8872 0x01D0 +0x8873 0x00EC +0x8874 0x014D +0x8875 0x00F3 +0x8876 0x01D2 +0x8877 0x00F2 +0x8878 0x016B +0x8879 0x00FA +0x887A 0x01D4 +0x887B 0x00F9 +0x887C 0x01D6 +0x887D 0x01D8 +0x887E 0x01DA +0x88A1 0x01DC +0x88A2 0x00FC +0x88A3 0x00EA 0x0304 +0x88A4 0x1EBF +0x88A5 0x00EA 0x030C +0x88A6 0x1EC1 +0x88A7 0x00EA +0x88A8 0x0261 +0x88A9 0x23DA +0x88AA 0x23DB +0x8940 0x2A3A9 +0x8941 0x21145 +0x8943 0x650A +0x8946 0x4E3D +0x8947 0x6EDD +0x8948 0x9D4E +0x8949 0x91DF +0x894C 0x27735 +0x894D 0x6491 +0x894E 0x4F1A +0x894F 0x4F28 +0x8950 0x4FA8 +0x8951 0x5156 +0x8952 0x5174 +0x8953 0x519C +0x8954 0x51E4 +0x8955 0x52A1 +0x8956 0x52A8 +0x8957 0x533B +0x8958 0x534E +0x8959 0x53D1 +0x895A 0x53D8 +0x895B 0x56E2 +0x895C 0x58F0 +0x895D 0x5904 +0x895E 0x5907 +0x895F 0x5932 +0x8960 0x5934 +0x8961 0x5B66 +0x8962 0x5B9E +0x8963 0x5B9F +0x8964 0x5C9A +0x8965 0x5E86 +0x8966 0x603B +0x8967 0x6589 +0x8968 0x67FE +0x8969 0x6804 +0x896A 0x6865 +0x896B 0x6D4E +0x896C 0x70BC +0x896D 0x7535 +0x896E 0x7EA4 +0x896F 0x7EAC +0x8970 0x7EBA +0x8971 0x7EC7 +0x8972 0x7ECF +0x8973 0x7EDF +0x8974 0x7F06 +0x8975 0x7F37 +0x8976 0x827A +0x8977 0x82CF +0x8978 0x836F +0x8979 0x89C6 +0x897A 0x8BBE +0x897B 0x8BE2 +0x897C 0x8F66 +0x897D 0x8F67 +0x897E 0x8F6E +0x89A1 0x7411 +0x89A2 0x7CFC +0x89A3 0x7DCD +0x89A4 0x6946 +0x89A5 0x7AC9 +0x89A6 0x5227 +0x89AB 0x918C +0x89AC 0x78B8 +0x89AD 0x915E +0x89AE 0x80BC +0x89B0 0x8D0B +0x89B1 0x80F6 +0x89B2 0x209E7 +0x89B5 0x809F +0x89B6 0x9EC7 +0x89B7 0x4CCD +0x89B8 0x9DC9 +0x89B9 0x9E0C +0x89BA 0x4C3E +0x89BB 0x29DF6 +0x89BC 0x2700E +0x89BD 0x9E0A +0x89BE 0x2A133 +0x89BF 0x35C1 +0x89C1 0x6E9A +0x89C2 0x823E +0x89C3 0x7519 +0x89C5 0x4911 +0x89C6 0x9A6C +0x89C7 0x9A8F +0x89C8 0x9F99 +0x89C9 0x7987 +0x89CA 0x2846C +0x89CB 0x21DCA +0x89CC 0x205D0 +0x89CD 0x22AE6 +0x89CE 0x4E24 +0x89CF 0x4E81 +0x89D0 0x4E80 +0x89D1 0x4E87 +0x89D2 0x4EBF +0x89D3 0x4EEB +0x89D4 0x4F37 +0x89D5 0x344C +0x89D6 0x4FBD +0x89D7 0x3E48 +0x89D8 0x5003 +0x89D9 0x5088 +0x89DA 0x347D +0x89DB 0x3493 +0x89DC 0x34A5 +0x89DD 0x5186 +0x89DE 0x5905 +0x89DF 0x51DB +0x89E0 0x51FC +0x89E1 0x5205 +0x89E2 0x4E89 +0x89E3 0x5279 +0x89E4 0x5290 +0x89E5 0x5327 +0x89E6 0x35C7 +0x89E7 0x53A9 +0x89E8 0x3551 +0x89E9 0x53B0 +0x89EA 0x3553 +0x89EB 0x53C2 +0x89EC 0x5423 +0x89ED 0x356D +0x89EE 0x3572 +0x89EF 0x3681 +0x89F0 0x5493 +0x89F1 0x54A3 +0x89F2 0x54B4 +0x89F3 0x54B9 +0x89F4 0x54D0 +0x89F5 0x54EF +0x89F6 0x5518 +0x89F7 0x5523 +0x89F8 0x5528 +0x89F9 0x3598 +0x89FA 0x553F +0x89FB 0x35A5 +0x89FC 0x35BF +0x89FD 0x55D7 +0x89FE 0x35C5 +0x8A40 0x27D84 +0x8A41 0x5525 +0x8A43 0x20C42 +0x8A44 0x20D15 +0x8A45 0x2512B +0x8A46 0x5590 +0x8A47 0x22CC6 +0x8A48 0x39EC +0x8A49 0x20341 +0x8A4A 0x8E46 +0x8A4B 0x24DB8 +0x8A4C 0x294E5 +0x8A4D 0x4053 +0x8A4E 0x280BE +0x8A4F 0x777A +0x8A50 0x22C38 +0x8A51 0x3A34 +0x8A52 0x47D5 +0x8A53 0x2815D +0x8A54 0x269F2 +0x8A55 0x24DEA +0x8A56 0x64DD +0x8A57 0x20D7C +0x8A58 0x20FB4 +0x8A59 0x20CD5 +0x8A5A 0x210F4 +0x8A5B 0x648D +0x8A5C 0x8E7E +0x8A5D 0x20E96 +0x8A5E 0x20C0B +0x8A5F 0x20F64 +0x8A60 0x22CA9 +0x8A61 0x28256 +0x8A62 0x244D3 +0x8A64 0x20D46 +0x8A65 0x29A4D +0x8A66 0x280E9 +0x8A67 0x47F4 +0x8A68 0x24EA7 +0x8A69 0x22CC2 +0x8A6A 0x9AB2 +0x8A6B 0x3A67 +0x8A6C 0x295F4 +0x8A6D 0x3FED +0x8A6E 0x3506 +0x8A6F 0x252C7 +0x8A70 0x297D4 +0x8A71 0x278C8 +0x8A72 0x22D44 +0x8A73 0x9D6E +0x8A74 0x9815 +0x8A76 0x43D9 +0x8A77 0x260A5 +0x8A78 0x64B4 +0x8A79 0x54E3 +0x8A7A 0x22D4C +0x8A7B 0x22BCA +0x8A7C 0x21077 +0x8A7D 0x39FB +0x8A7E 0x2106F +0x8AA1 0x266DA +0x8AA2 0x26716 +0x8AA3 0x279A0 +0x8AA4 0x64EA +0x8AA5 0x25052 +0x8AA6 0x20C43 +0x8AA7 0x8E68 +0x8AA8 0x221A1 +0x8AA9 0x28B4C +0x8AAA 0x20731 +0x8AAC 0x480B +0x8AAD 0x201A9 +0x8AAE 0x3FFA +0x8AAF 0x5873 +0x8AB0 0x22D8D +0x8AB2 0x245C8 +0x8AB3 0x204FC +0x8AB4 0x26097 +0x8AB5 0x20F4C +0x8AB6 0x20D96 +0x8AB7 0x5579 +0x8AB8 0x40BB +0x8AB9 0x43BA +0x8ABB 0x4AB4 +0x8ABC 0x22A66 +0x8ABD 0x2109D +0x8ABE 0x81AA +0x8ABF 0x98F5 +0x8AC0 0x20D9C +0x8AC1 0x6379 +0x8AC2 0x39FE +0x8AC3 0x22775 +0x8AC4 0x8DC0 +0x8AC5 0x56A1 +0x8AC6 0x647C +0x8AC7 0x3E43 +0x8AC9 0x2A601 +0x8ACA 0x20E09 +0x8ACB 0x22ACF +0x8ACC 0x22CC9 +0x8ACE 0x210C8 +0x8ACF 0x239C2 +0x8AD0 0x3992 +0x8AD1 0x3A06 +0x8AD2 0x2829B +0x8AD3 0x3578 +0x8AD4 0x25E49 +0x8AD5 0x220C7 +0x8AD6 0x5652 +0x8AD7 0x20F31 +0x8AD8 0x22CB2 +0x8AD9 0x29720 +0x8ADA 0x34BC +0x8ADB 0x6C3D +0x8ADC 0x24E3B +0x8ADF 0x27574 +0x8AE0 0x22E8B +0x8AE1 0x22208 +0x8AE2 0x2A65B +0x8AE3 0x28CCD +0x8AE4 0x20E7A +0x8AE5 0x20C34 +0x8AE6 0x2681C +0x8AE7 0x7F93 +0x8AE8 0x210CF +0x8AE9 0x22803 +0x8AEA 0x22939 +0x8AEB 0x35FB +0x8AEC 0x251E3 +0x8AED 0x20E8C +0x8AEE 0x20F8D +0x8AEF 0x20EAA +0x8AF0 0x3F93 +0x8AF1 0x20F30 +0x8AF2 0x20D47 +0x8AF3 0x2114F +0x8AF4 0x20E4C +0x8AF6 0x20EAB +0x8AF7 0x20BA9 +0x8AF8 0x20D48 +0x8AF9 0x210C0 +0x8AFA 0x2113D +0x8AFB 0x3FF9 +0x8AFC 0x22696 +0x8AFD 0x6432 +0x8AFE 0x20FAD +0x8B40 0x233F4 +0x8B41 0x27639 +0x8B42 0x22BCE +0x8B43 0x20D7E +0x8B44 0x20D7F +0x8B45 0x22C51 +0x8B46 0x22C55 +0x8B47 0x3A18 +0x8B48 0x20E98 +0x8B49 0x210C7 +0x8B4A 0x20F2E +0x8B4B 0x2A632 +0x8B4C 0x26B50 +0x8B4D 0x28CD2 +0x8B4E 0x28D99 +0x8B4F 0x28CCA +0x8B50 0x95AA +0x8B51 0x54CC +0x8B52 0x82C4 +0x8B53 0x55B9 +0x8B55 0x29EC3 +0x8B56 0x9C26 +0x8B57 0x9AB6 +0x8B58 0x2775E +0x8B59 0x22DEE +0x8B5A 0x7140 +0x8B5B 0x816D +0x8B5C 0x80EC +0x8B5D 0x5C1C +0x8B5E 0x26572 +0x8B5F 0x8134 +0x8B60 0x3797 +0x8B61 0x535F +0x8B62 0x280BD +0x8B63 0x91B6 +0x8B64 0x20EFA +0x8B65 0x20E0F +0x8B66 0x20E77 +0x8B67 0x20EFB +0x8B68 0x35DD +0x8B69 0x24DEB +0x8B6A 0x3609 +0x8B6B 0x20CD6 +0x8B6C 0x56AF +0x8B6D 0x227B5 +0x8B6E 0x210C9 +0x8B6F 0x20E10 +0x8B70 0x20E78 +0x8B71 0x21078 +0x8B72 0x21148 +0x8B73 0x28207 +0x8B74 0x21455 +0x8B75 0x20E79 +0x8B76 0x24E50 +0x8B77 0x22DA4 +0x8B78 0x5A54 +0x8B79 0x2101D +0x8B7A 0x2101E +0x8B7B 0x210F5 +0x8B7C 0x210F6 +0x8B7D 0x579C +0x8B7E 0x20E11 +0x8BA1 0x27694 +0x8BA2 0x282CD +0x8BA3 0x20FB5 +0x8BA4 0x20E7B +0x8BA5 0x2517E +0x8BA6 0x3703 +0x8BA7 0x20FB6 +0x8BA8 0x21180 +0x8BA9 0x252D8 +0x8BAA 0x2A2BD +0x8BAB 0x249DA +0x8BAC 0x2183A +0x8BAD 0x24177 +0x8BAE 0x2827C +0x8BAF 0x5899 +0x8BB0 0x5268 +0x8BB1 0x361A +0x8BB2 0x2573D +0x8BB3 0x7BB2 +0x8BB4 0x5B68 +0x8BB5 0x4800 +0x8BB6 0x4B2C +0x8BB7 0x9F27 +0x8BB8 0x49E7 +0x8BB9 0x9C1F +0x8BBA 0x9B8D +0x8BBB 0x25B74 +0x8BBC 0x2313D +0x8BBD 0x55FB +0x8BBE 0x35F2 +0x8BBF 0x5689 +0x8BC0 0x4E28 +0x8BC1 0x5902 +0x8BC2 0x21BC1 +0x8BC3 0x2F878 +0x8BC4 0x9751 +0x8BC5 0x20086 +0x8BC6 0x4E5B +0x8BC7 0x4EBB +0x8BC8 0x353E +0x8BC9 0x5C23 +0x8BCA 0x5F51 +0x8BCB 0x5FC4 +0x8BCC 0x38FA +0x8BCD 0x624C +0x8BCE 0x6535 +0x8BCF 0x6B7A +0x8BD0 0x6C35 +0x8BD1 0x6C3A +0x8BD2 0x706C +0x8BD3 0x722B +0x8BD4 0x4E2C +0x8BD5 0x72AD +0x8BD6 0x248E9 +0x8BD7 0x7F52 +0x8BD8 0x793B +0x8BD9 0x7CF9 +0x8BDA 0x7F53 +0x8BDB 0x2626A +0x8BDC 0x34C1 +0x8BDE 0x2634B +0x8BDF 0x8002 +0x8BE0 0x8080 +0x8BE1 0x26612 +0x8BE2 0x26951 +0x8BE3 0x535D +0x8BE4 0x8864 +0x8BE5 0x89C1 +0x8BE6 0x278B2 +0x8BE7 0x8BA0 +0x8BE8 0x8D1D +0x8BE9 0x9485 +0x8BEA 0x9578 +0x8BEB 0x957F +0x8BEC 0x95E8 +0x8BED 0x28E0F +0x8BEE 0x97E6 +0x8BEF 0x9875 +0x8BF0 0x98CE +0x8BF1 0x98DE +0x8BF2 0x9963 +0x8BF3 0x29810 +0x8BF4 0x9C7C +0x8BF5 0x9E1F +0x8BF6 0x9EC4 +0x8BF7 0x6B6F +0x8BF8 0xF907 +0x8BF9 0x4E37 +0x8BFA 0x20087 +0x8BFB 0x961D +0x8BFC 0x6237 +0x8BFD 0x94A2 +0x8D60 0x5D3E +0x8D61 0x5D48 +0x8D62 0x5D56 +0x8D63 0x3DFC +0x8D64 0x380F +0x8D65 0x5DA4 +0x8D66 0x5DB9 +0x8D67 0x3820 +0x8D68 0x3838 +0x8D69 0x5E42 +0x8D6A 0x5EBD +0x8D6B 0x5F25 +0x8D6C 0x5F83 +0x8D6D 0x3908 +0x8D6E 0x3914 +0x8D6F 0x393F +0x8D70 0x394D +0x8D71 0x60D7 +0x8D72 0x613D +0x8D73 0x5CE5 +0x8D74 0x3989 +0x8D75 0x61B7 +0x8D76 0x61B9 +0x8D77 0x61CF +0x8D78 0x39B8 +0x8D79 0x622C +0x8D7A 0x6290 +0x8D7B 0x62E5 +0x8D7C 0x6318 +0x8D7D 0x39F8 +0x8D7E 0x56B1 +0x8DA1 0x3A03 +0x8DA2 0x63E2 +0x8DA3 0x63FB +0x8DA4 0x6407 +0x8DA5 0x645A +0x8DA6 0x3A4B +0x8DA7 0x64C0 +0x8DA8 0x5D15 +0x8DA9 0x5621 +0x8DAA 0x9F9F +0x8DAB 0x3A97 +0x8DAC 0x6586 +0x8DAD 0x3ABD +0x8DAE 0x65FF +0x8DAF 0x6653 +0x8DB0 0x3AF2 +0x8DB1 0x6692 +0x8DB2 0x3B22 +0x8DB3 0x6716 +0x8DB4 0x3B42 +0x8DB5 0x67A4 +0x8DB6 0x6800 +0x8DB7 0x3B58 +0x8DB8 0x684A +0x8DB9 0x6884 +0x8DBA 0x3B72 +0x8DBB 0x3B71 +0x8DBC 0x3B7B +0x8DBD 0x6909 +0x8DBE 0x6943 +0x8DBF 0x725C +0x8DC0 0x6964 +0x8DC1 0x699F +0x8DC2 0x6985 +0x8DC3 0x3BBC +0x8DC4 0x69D6 +0x8DC5 0x3BDD +0x8DC6 0x6A65 +0x8DC7 0x6A74 +0x8DC8 0x6A71 +0x8DC9 0x6A82 +0x8DCA 0x3BEC +0x8DCB 0x6A99 +0x8DCC 0x3BF2 +0x8DCD 0x6AAB +0x8DCE 0x6AB5 +0x8DCF 0x6AD4 +0x8DD0 0x6AF6 +0x8DD1 0x6B81 +0x8DD2 0x6BC1 +0x8DD3 0x6BEA +0x8DD4 0x6C75 +0x8DD5 0x6CAA +0x8DD6 0x3CCB +0x8DD7 0x6D02 +0x8DD8 0x6D06 +0x8DD9 0x6D26 +0x8DDA 0x6D81 +0x8DDB 0x3CEF +0x8DDC 0x6DA4 +0x8DDD 0x6DB1 +0x8DDE 0x6E15 +0x8DDF 0x6E18 +0x8DE0 0x6E29 +0x8DE1 0x6E86 +0x8DE2 0x289C0 +0x8DE3 0x6EBB +0x8DE4 0x6EE2 +0x8DE5 0x6EDA +0x8DE6 0x9F7F +0x8DE7 0x6EE8 +0x8DE8 0x6EE9 +0x8DE9 0x6F24 +0x8DEA 0x6F34 +0x8DEB 0x3D46 +0x8DEC 0x23F41 +0x8DED 0x6F81 +0x8DEE 0x6FBE +0x8DEF 0x3D6A +0x8DF0 0x3D75 +0x8DF1 0x71B7 +0x8DF2 0x5C99 +0x8DF3 0x3D8A +0x8DF4 0x702C +0x8DF5 0x3D91 +0x8DF6 0x7050 +0x8DF7 0x7054 +0x8DF8 0x706F +0x8DF9 0x707F +0x8DFA 0x7089 +0x8DFB 0x20325 +0x8DFC 0x43C1 +0x8DFD 0x35F1 +0x8DFE 0x20ED8 +0x8E40 0x23ED7 +0x8E41 0x57BE +0x8E42 0x26ED3 +0x8E43 0x713E +0x8E44 0x257E0 +0x8E45 0x364E +0x8E46 0x69A2 +0x8E47 0x28BE9 +0x8E48 0x5B74 +0x8E49 0x7A49 +0x8E4A 0x258E1 +0x8E4B 0x294D9 +0x8E4C 0x7A65 +0x8E4D 0x7A7D +0x8E4E 0x259AC +0x8E4F 0x7ABB +0x8E50 0x7AB0 +0x8E51 0x7AC2 +0x8E52 0x7AC3 +0x8E53 0x71D1 +0x8E54 0x2648D +0x8E55 0x41CA +0x8E56 0x7ADA +0x8E57 0x7ADD +0x8E58 0x7AEA +0x8E59 0x41EF +0x8E5A 0x54B2 +0x8E5B 0x25C01 +0x8E5C 0x7B0B +0x8E5D 0x7B55 +0x8E5E 0x7B29 +0x8E5F 0x2530E +0x8E60 0x25CFE +0x8E61 0x7BA2 +0x8E62 0x7B6F +0x8E63 0x839C +0x8E64 0x25BB4 +0x8E65 0x26C7F +0x8E66 0x7BD0 +0x8E67 0x8421 +0x8E68 0x7B92 +0x8E6A 0x25D20 +0x8E6B 0x3DAD +0x8E6C 0x25C65 +0x8E6D 0x8492 +0x8E6E 0x7BFA +0x8E70 0x7C35 +0x8E71 0x25CC1 +0x8E72 0x7C44 +0x8E73 0x7C83 +0x8E74 0x24882 +0x8E75 0x7CA6 +0x8E76 0x667D +0x8E77 0x24578 +0x8E78 0x7CC9 +0x8E79 0x7CC7 +0x8E7A 0x7CE6 +0x8E7B 0x7C74 +0x8E7C 0x7CF3 +0x8E7D 0x7CF5 +0x8EA1 0x7E67 +0x8EA2 0x451D +0x8EA3 0x26E44 +0x8EA4 0x7D5D +0x8EA5 0x26ED6 +0x8EA6 0x748D +0x8EA7 0x7D89 +0x8EA8 0x7DAB +0x8EA9 0x7135 +0x8EAA 0x7DB3 +0x8EAC 0x24057 +0x8EAD 0x26029 +0x8EAE 0x7DE4 +0x8EAF 0x3D13 +0x8EB0 0x7DF5 +0x8EB1 0x217F9 +0x8EB2 0x7DE5 +0x8EB3 0x2836D +0x8EB5 0x26121 +0x8EB6 0x2615A +0x8EB7 0x7E6E +0x8EB8 0x7E92 +0x8EB9 0x432B +0x8EBA 0x946C +0x8EBB 0x7E27 +0x8EBC 0x7F40 +0x8EBD 0x7F41 +0x8EBE 0x7F47 +0x8EBF 0x7936 +0x8EC0 0x262D0 +0x8EC1 0x99E1 +0x8EC2 0x7F97 +0x8EC3 0x26351 +0x8EC4 0x7FA3 +0x8EC5 0x21661 +0x8EC6 0x20068 +0x8EC7 0x455C +0x8EC8 0x23766 +0x8EC9 0x4503 +0x8ECA 0x2833A +0x8ECB 0x7FFA +0x8ECC 0x26489 +0x8ECE 0x8008 +0x8ECF 0x801D +0x8ED1 0x802F +0x8ED2 0x2A087 +0x8ED3 0x26CC3 +0x8ED4 0x803B +0x8ED5 0x803C +0x8ED6 0x8061 +0x8ED7 0x22714 +0x8ED8 0x4989 +0x8ED9 0x26626 +0x8EDA 0x23DE3 +0x8EDB 0x266E8 +0x8EDC 0x6725 +0x8EDD 0x80A7 +0x8EDE 0x28A48 +0x8EDF 0x8107 +0x8EE0 0x811A +0x8EE1 0x58B0 +0x8EE2 0x226F6 +0x8EE3 0x6C7F +0x8EE4 0x26498 +0x8EE5 0x24FB8 +0x8EE6 0x64E7 +0x8EE7 0x2148A +0x8EE8 0x8218 +0x8EE9 0x2185E +0x8EEA 0x6A53 +0x8EEB 0x24A65 +0x8EEC 0x24A95 +0x8EED 0x447A +0x8EEE 0x8229 +0x8EEF 0x20B0D +0x8EF0 0x26A52 +0x8EF1 0x23D7E +0x8EF2 0x4FF9 +0x8EF3 0x214FD +0x8EF4 0x84E2 +0x8EF5 0x8362 +0x8EF6 0x26B0A +0x8EF7 0x249A7 +0x8EF8 0x23530 +0x8EF9 0x21773 +0x8EFA 0x23DF8 +0x8EFB 0x82AA +0x8EFC 0x691B +0x8EFD 0x2F994 +0x8EFE 0x41DB +0x8F40 0x854B +0x8F41 0x82D0 +0x8F42 0x831A +0x8F43 0x20E16 +0x8F44 0x217B4 +0x8F45 0x36C1 +0x8F46 0x2317D +0x8F47 0x2355A +0x8F48 0x827B +0x8F49 0x82E2 +0x8F4A 0x8318 +0x8F4B 0x23E8B +0x8F4C 0x26DA3 +0x8F4D 0x26B05 +0x8F4E 0x26B97 +0x8F4F 0x235CE +0x8F50 0x3DBF +0x8F51 0x831D +0x8F52 0x55EC +0x8F53 0x8385 +0x8F54 0x450B +0x8F55 0x26DA5 +0x8F56 0x83AC +0x8F58 0x83D3 +0x8F59 0x347E +0x8F5A 0x26ED4 +0x8F5B 0x6A57 +0x8F5C 0x855A +0x8F5D 0x3496 +0x8F5E 0x26E42 +0x8F5F 0x22EEF +0x8F60 0x8458 +0x8F61 0x25BE4 +0x8F62 0x8471 +0x8F63 0x3DD3 +0x8F64 0x44E4 +0x8F65 0x6AA7 +0x8F66 0x844A +0x8F67 0x23CB5 +0x8F68 0x7958 +0x8F6A 0x26B96 +0x8F6B 0x26E77 +0x8F6C 0x26E43 +0x8F6D 0x84DE +0x8F6F 0x8391 +0x8F70 0x44A0 +0x8F71 0x8493 +0x8F72 0x84E4 +0x8F73 0x25C91 +0x8F74 0x4240 +0x8F75 0x25CC0 +0x8F76 0x4543 +0x8F77 0x8534 +0x8F78 0x5AF2 +0x8F79 0x26E99 +0x8F7A 0x4527 +0x8F7B 0x8573 +0x8F7C 0x4516 +0x8F7D 0x67BF +0x8F7E 0x8616 +0x8FA1 0x28625 +0x8FA2 0x2863B +0x8FA3 0x85C1 +0x8FA4 0x27088 +0x8FA5 0x8602 +0x8FA6 0x21582 +0x8FA7 0x270CD +0x8FA8 0x2F9B2 +0x8FA9 0x456A +0x8FAA 0x8628 +0x8FAB 0x3648 +0x8FAC 0x218A2 +0x8FAD 0x53F7 +0x8FAE 0x2739A +0x8FAF 0x867E +0x8FB0 0x8771 +0x8FB1 0x2A0F8 +0x8FB2 0x87EE +0x8FB3 0x22C27 +0x8FB4 0x87B1 +0x8FB5 0x87DA +0x8FB6 0x880F +0x8FB7 0x5661 +0x8FB8 0x866C +0x8FB9 0x6856 +0x8FBA 0x460F +0x8FBB 0x8845 +0x8FBC 0x8846 +0x8FBD 0x275E0 +0x8FBE 0x23DB9 +0x8FBF 0x275E4 +0x8FC0 0x885E +0x8FC1 0x889C +0x8FC2 0x465B +0x8FC3 0x88B4 +0x8FC4 0x88B5 +0x8FC5 0x63C1 +0x8FC6 0x88C5 +0x8FC7 0x7777 +0x8FC8 0x2770F +0x8FC9 0x8987 +0x8FCA 0x898A +0x8FCD 0x89A7 +0x8FCE 0x89BC +0x8FCF 0x28A25 +0x8FD0 0x89E7 +0x8FD1 0x27924 +0x8FD2 0x27ABD +0x8FD3 0x8A9C +0x8FD4 0x7793 +0x8FD5 0x91FE +0x8FD6 0x8A90 +0x8FD7 0x27A59 +0x8FD8 0x7AE9 +0x8FD9 0x27B3A +0x8FDA 0x23F8F +0x8FDB 0x4713 +0x8FDC 0x27B38 +0x8FDD 0x717C +0x8FDE 0x8B0C +0x8FDF 0x8B1F +0x8FE0 0x25430 +0x8FE1 0x25565 +0x8FE2 0x8B3F +0x8FE3 0x8B4C +0x8FE4 0x8B4D +0x8FE5 0x8AA9 +0x8FE6 0x24A7A +0x8FE7 0x8B90 +0x8FE8 0x8B9B +0x8FE9 0x8AAF +0x8FEA 0x216DF +0x8FEB 0x4615 +0x8FEC 0x884F +0x8FED 0x8C9B +0x8FEE 0x27D54 +0x8FEF 0x27D8F +0x8FF0 0x2F9D4 +0x8FF1 0x3725 +0x8FF2 0x27D53 +0x8FF3 0x8CD6 +0x8FF4 0x27D98 +0x8FF5 0x27DBD +0x8FF6 0x8D12 +0x8FF7 0x8D03 +0x8FF8 0x21910 +0x8FF9 0x8CDB +0x8FFA 0x705C +0x8FFB 0x8D11 +0x8FFC 0x24CC9 +0x8FFD 0x3ED0 +0x9040 0x8DA9 +0x9041 0x28002 +0x9042 0x21014 +0x9043 0x2498A +0x9044 0x3B7C +0x9045 0x281BC +0x9046 0x2710C +0x9047 0x7AE7 +0x9048 0x8EAD +0x9049 0x8EB6 +0x904A 0x8EC3 +0x904B 0x92D4 +0x904C 0x8F19 +0x904D 0x8F2D +0x904E 0x28365 +0x904F 0x28412 +0x9050 0x8FA5 +0x9051 0x9303 +0x9052 0x2A29F +0x9053 0x20A50 +0x9054 0x8FB3 +0x9055 0x492A +0x9056 0x289DE +0x9057 0x2853D +0x9058 0x23DBB +0x9059 0x5EF8 +0x905A 0x23262 +0x905B 0x8FF9 +0x905C 0x2A014 +0x905D 0x286BC +0x905E 0x28501 +0x905F 0x22325 +0x9060 0x3980 +0x9061 0x26ED7 +0x9062 0x9037 +0x9063 0x2853C +0x9064 0x27ABE +0x9065 0x9061 +0x9066 0x2856C +0x9067 0x2860B +0x9068 0x90A8 +0x9069 0x28713 +0x906A 0x90C4 +0x906B 0x286E6 +0x906C 0x90AE +0x906E 0x9167 +0x906F 0x3AF0 +0x9070 0x91A9 +0x9071 0x91C4 +0x9072 0x7CAC +0x9073 0x28933 +0x9074 0x21E89 +0x9075 0x920E +0x9076 0x6C9F +0x9077 0x9241 +0x9078 0x9262 +0x9079 0x255B9 +0x907B 0x28AC6 +0x907C 0x23C9B +0x907D 0x28B0C +0x907E 0x255DB +0x90A1 0x20D31 +0x90A2 0x932C +0x90A3 0x936B +0x90A4 0x28AE1 +0x90A5 0x28BEB +0x90A6 0x708F +0x90A7 0x5AC3 +0x90A8 0x28AE2 +0x90A9 0x28AE5 +0x90AA 0x4965 +0x90AB 0x9244 +0x90AC 0x28BEC +0x90AD 0x28C39 +0x90AE 0x28BFF +0x90AF 0x9373 +0x90B0 0x945B +0x90B1 0x8EBC +0x90B2 0x9585 +0x90B3 0x95A6 +0x90B4 0x9426 +0x90B5 0x95A0 +0x90B6 0x6FF6 +0x90B7 0x42B9 +0x90B8 0x2267A +0x90B9 0x286D8 +0x90BA 0x2127C +0x90BB 0x23E2E +0x90BC 0x49DF +0x90BD 0x6C1C +0x90BE 0x967B +0x90BF 0x9696 +0x90C0 0x416C +0x90C1 0x96A3 +0x90C2 0x26ED5 +0x90C3 0x61DA +0x90C4 0x96B6 +0x90C5 0x78F5 +0x90C6 0x28AE0 +0x90C7 0x96BD +0x90C8 0x53CC +0x90C9 0x49A1 +0x90CA 0x26CB8 +0x90CB 0x20274 +0x90CC 0x26410 +0x90CD 0x290AF +0x90CE 0x290E5 +0x90CF 0x24AD1 +0x90D0 0x21915 +0x90D1 0x2330A +0x90D2 0x9731 +0x90D3 0x8642 +0x90D4 0x9736 +0x90D5 0x4A0F +0x90D6 0x453D +0x90D7 0x4585 +0x90D8 0x24AE9 +0x90D9 0x7075 +0x90DA 0x5B41 +0x90DB 0x971B +0x90DD 0x291D5 +0x90DE 0x9757 +0x90DF 0x5B4A +0x90E0 0x291EB +0x90E1 0x975F +0x90E2 0x9425 +0x90E3 0x50D0 +0x90E4 0x230B7 +0x90E5 0x230BC +0x90E6 0x9789 +0x90E7 0x979F +0x90E8 0x97B1 +0x90E9 0x97BE +0x90EA 0x97C0 +0x90EB 0x97D2 +0x90EC 0x97E0 +0x90ED 0x2546C +0x90EE 0x97EE +0x90EF 0x741C +0x90F0 0x29433 +0x90F2 0x97F5 +0x90F3 0x2941D +0x90F4 0x2797A +0x90F5 0x4AD1 +0x90F6 0x9834 +0x90F7 0x9833 +0x90F8 0x984B +0x90F9 0x9866 +0x90FA 0x3B0E +0x90FB 0x27175 +0x90FC 0x3D51 +0x90FD 0x20630 +0x90FE 0x2415C +0x9140 0x25706 +0x9141 0x98CA +0x9142 0x98B7 +0x9143 0x98C8 +0x9144 0x98C7 +0x9145 0x4AFF +0x9146 0x26D27 +0x9147 0x216D3 +0x9148 0x55B0 +0x9149 0x98E1 +0x914A 0x98E6 +0x914B 0x98EC +0x914C 0x9378 +0x914D 0x9939 +0x914E 0x24A29 +0x914F 0x4B72 +0x9150 0x29857 +0x9151 0x29905 +0x9152 0x99F5 +0x9153 0x9A0C +0x9154 0x9A3B +0x9155 0x9A10 +0x9156 0x9A58 +0x9157 0x25725 +0x9158 0x36C4 +0x9159 0x290B1 +0x915A 0x29BD5 +0x915B 0x9AE0 +0x915C 0x9AE2 +0x915D 0x29B05 +0x915E 0x9AF4 +0x915F 0x4C0E +0x9160 0x9B14 +0x9161 0x9B2D +0x9162 0x28600 +0x9163 0x5034 +0x9164 0x9B34 +0x9165 0x269A8 +0x9166 0x38C3 +0x9167 0x2307D +0x9168 0x9B50 +0x9169 0x9B40 +0x916A 0x29D3E +0x916B 0x5A45 +0x916C 0x21863 +0x916D 0x9B8E +0x916E 0x2424B +0x916F 0x9C02 +0x9170 0x9BFF +0x9171 0x9C0C +0x9172 0x29E68 +0x9173 0x9DD4 +0x9174 0x29FB7 +0x9175 0x2A192 +0x9176 0x2A1AB +0x9177 0x2A0E1 +0x9178 0x2A123 +0x9179 0x2A1DF +0x917A 0x9D7E +0x917B 0x9D83 +0x917C 0x2A134 +0x917D 0x9E0E +0x917E 0x6888 +0x91A1 0x9DC4 +0x91A2 0x2215B +0x91A3 0x2A193 +0x91A4 0x2A220 +0x91A5 0x2193B +0x91A6 0x2A233 +0x91A7 0x9D39 +0x91A8 0x2A0B9 +0x91A9 0x2A2B4 +0x91AA 0x9E90 +0x91AB 0x9E95 +0x91AC 0x9E9E +0x91AD 0x9EA2 +0x91AE 0x4D34 +0x91AF 0x9EAA +0x91B0 0x9EAF +0x91B1 0x24364 +0x91B2 0x9EC1 +0x91B3 0x3B60 +0x91B4 0x39E5 +0x91B5 0x3D1D +0x91B6 0x4F32 +0x91B7 0x37BE +0x91B8 0x28C2B +0x91B9 0x9F02 +0x91BA 0x9F08 +0x91BB 0x4B96 +0x91BC 0x9424 +0x91BD 0x26DA2 +0x91BE 0x9F17 +0x91C0 0x9F39 +0x91C1 0x569F +0x91C2 0x568A +0x91C3 0x9F45 +0x91C4 0x99B8 +0x91C5 0x2908B +0x91C6 0x97F2 +0x91C7 0x847F +0x91C8 0x9F62 +0x91C9 0x9F69 +0x91CA 0x7ADC +0x91CB 0x9F8E +0x91CC 0x7216 +0x91CD 0x4BBE +0x91CE 0x24975 +0x91CF 0x249BB +0x91D0 0x7177 +0x91D1 0x249F8 +0x91D2 0x24348 +0x91D3 0x24A51 +0x91D4 0x739E +0x91D5 0x28BDA +0x91D6 0x218FA +0x91D7 0x799F +0x91D8 0x2897E +0x91D9 0x28E36 +0x91DA 0x9369 +0x91DB 0x93F3 +0x91DC 0x28A44 +0x91DD 0x92EC +0x91DE 0x9381 +0x91DF 0x93CB +0x91E0 0x2896C +0x91E1 0x244B9 +0x91E2 0x7217 +0x91E3 0x3EEB +0x91E4 0x7772 +0x91E5 0x7A43 +0x91E6 0x70D0 +0x91E7 0x24473 +0x91E8 0x243F8 +0x91E9 0x717E +0x91EA 0x217EF +0x91EB 0x70A3 +0x91EC 0x218BE +0x91ED 0x23599 +0x91EE 0x3EC7 +0x91EF 0x21885 +0x91F0 0x2542F +0x91F1 0x217F8 +0x91F2 0x3722 +0x91F3 0x216FB +0x91F4 0x21839 +0x91F5 0x36E1 +0x91F6 0x21774 +0x91F7 0x218D1 +0x91F8 0x25F4B +0x91F9 0x3723 +0x91FA 0x216C0 +0x91FB 0x575B +0x91FC 0x24A25 +0x91FD 0x213FE +0x91FE 0x212A8 +0x9240 0x213C6 +0x9241 0x214B6 +0x9242 0x8503 +0x9243 0x236A6 +0x9245 0x8455 +0x9246 0x24994 +0x9247 0x27165 +0x9248 0x23E31 +0x9249 0x2555C +0x924A 0x23EFB +0x924B 0x27052 +0x924C 0x44F4 +0x924D 0x236EE +0x924E 0x2999D +0x924F 0x26F26 +0x9250 0x67F9 +0x9251 0x3733 +0x9252 0x3C15 +0x9253 0x3DE7 +0x9254 0x586C +0x9255 0x21922 +0x9256 0x6810 +0x9257 0x4057 +0x9258 0x2373F +0x9259 0x240E1 +0x925A 0x2408B +0x925B 0x2410F +0x925C 0x26C21 +0x925D 0x54CB +0x925E 0x569E +0x925F 0x266B1 +0x9260 0x5692 +0x9261 0x20FDF +0x9262 0x20BA8 +0x9263 0x20E0D +0x9264 0x93C6 +0x9265 0x28B13 +0x9266 0x939C +0x9267 0x4EF8 +0x9268 0x512B +0x9269 0x3819 +0x926A 0x24436 +0x926B 0x4EBC +0x926C 0x20465 +0x926D 0x2037F +0x926E 0x4F4B +0x926F 0x4F8A +0x9270 0x25651 +0x9271 0x5A68 +0x9272 0x201AB +0x9273 0x203CB +0x9274 0x3999 +0x9275 0x2030A +0x9276 0x20414 +0x9277 0x3435 +0x9278 0x4F29 +0x9279 0x202C0 +0x927A 0x28EB3 +0x927B 0x20275 +0x927C 0x8ADA +0x927D 0x2020C +0x927E 0x4E98 +0x92A1 0x50CD +0x92A2 0x510D +0x92A3 0x4FA2 +0x92A4 0x4F03 +0x92A5 0x24A0E +0x92A6 0x23E8A +0x92A7 0x4F42 +0x92A8 0x502E +0x92A9 0x506C +0x92AA 0x5081 +0x92AB 0x4FCC +0x92AC 0x4FE5 +0x92AD 0x5058 +0x92AE 0x50FC +0x92B3 0x6E76 +0x92B4 0x23595 +0x92B5 0x23E39 +0x92B6 0x23EBF +0x92B7 0x6D72 +0x92B8 0x21884 +0x92B9 0x23E89 +0x92BA 0x51A8 +0x92BB 0x51C3 +0x92BC 0x205E0 +0x92BD 0x44DD +0x92BE 0x204A3 +0x92BF 0x20492 +0x92C0 0x20491 +0x92C1 0x8D7A +0x92C2 0x28A9C +0x92C3 0x2070E +0x92C4 0x5259 +0x92C5 0x52A4 +0x92C6 0x20873 +0x92C7 0x52E1 +0x92C9 0x467A +0x92CA 0x718C +0x92CB 0x2438C +0x92CC 0x20C20 +0x92CD 0x249AC +0x92CE 0x210E4 +0x92CF 0x69D1 +0x92D0 0x20E1D +0x92D2 0x3EDE +0x92D3 0x7499 +0x92D4 0x7414 +0x92D5 0x7456 +0x92D6 0x7398 +0x92D7 0x4B8E +0x92D8 0x24ABC +0x92D9 0x2408D +0x92DA 0x53D0 +0x92DB 0x3584 +0x92DC 0x720F +0x92DD 0x240C9 +0x92DE 0x55B4 +0x92DF 0x20345 +0x92E0 0x54CD +0x92E1 0x20BC6 +0x92E2 0x571D +0x92E3 0x925D +0x92E4 0x96F4 +0x92E5 0x9366 +0x92E6 0x57DD +0x92E7 0x578D +0x92E8 0x577F +0x92E9 0x363E +0x92EA 0x58CB +0x92EB 0x5A99 +0x92EC 0x28A46 +0x92ED 0x216FA +0x92EE 0x2176F +0x92EF 0x21710 +0x92F0 0x5A2C +0x92F1 0x59B8 +0x92F2 0x928F +0x92F3 0x5A7E +0x92F4 0x5ACF +0x92F5 0x5A12 +0x92F6 0x25946 +0x92F7 0x219F3 +0x92F8 0x21861 +0x92F9 0x24295 +0x92FA 0x36F5 +0x92FB 0x6D05 +0x92FC 0x7443 +0x92FD 0x5A21 +0x92FE 0x25E83 +0x9340 0x5A81 +0x9341 0x28BD7 +0x9342 0x20413 +0x9343 0x93E0 +0x9344 0x748C +0x9345 0x21303 +0x9346 0x7105 +0x9347 0x4972 +0x9348 0x9408 +0x9349 0x289FB +0x934A 0x93BD +0x934B 0x37A0 +0x934C 0x5C1E +0x934D 0x5C9E +0x934E 0x5E5E +0x934F 0x5E48 +0x9350 0x21996 +0x9351 0x2197C +0x9352 0x23AEE +0x9353 0x5ECD +0x9354 0x5B4F +0x9355 0x21903 +0x9356 0x21904 +0x9357 0x3701 +0x9358 0x218A0 +0x9359 0x36DD +0x935A 0x216FE +0x935B 0x36D3 +0x935C 0x812A +0x935D 0x28A47 +0x935E 0x21DBA +0x935F 0x23472 +0x9360 0x289A8 +0x9361 0x5F0C +0x9362 0x5F0E +0x9363 0x21927 +0x9364 0x217AB +0x9365 0x5A6B +0x9366 0x2173B +0x9367 0x5B44 +0x9368 0x8614 +0x9369 0x275FD +0x936A 0x8860 +0x936B 0x607E +0x936C 0x22860 +0x936D 0x2262B +0x936E 0x5FDB +0x936F 0x3EB8 +0x9370 0x225AF +0x9371 0x225BE +0x9372 0x29088 +0x9373 0x26F73 +0x9374 0x61C0 +0x9375 0x2003E +0x9376 0x20046 +0x9377 0x2261B +0x9378 0x6199 +0x9379 0x6198 +0x937A 0x6075 +0x937B 0x22C9B +0x937C 0x22D07 +0x937D 0x246D4 +0x937E 0x2914D +0x93A1 0x6471 +0x93A2 0x24665 +0x93A3 0x22B6A +0x93A4 0x3A29 +0x93A5 0x22B22 +0x93A6 0x23450 +0x93A7 0x298EA +0x93A8 0x22E78 +0x93A9 0x6337 +0x93AA 0x2A45B +0x93AB 0x64B6 +0x93AC 0x6331 +0x93AD 0x63D1 +0x93AE 0x249E3 +0x93AF 0x22D67 +0x93B0 0x62A4 +0x93B1 0x22CA1 +0x93B2 0x643B +0x93B3 0x656B +0x93B4 0x6972 +0x93B5 0x3BF4 +0x93B6 0x2308E +0x93B7 0x232AD +0x93B8 0x24989 +0x93B9 0x232AB +0x93BA 0x550D +0x93BB 0x232E0 +0x93BC 0x218D9 +0x93BD 0x2943F +0x93BE 0x66CE +0x93BF 0x23289 +0x93C0 0x231B3 +0x93C1 0x3AE0 +0x93C2 0x4190 +0x93C3 0x25584 +0x93C4 0x28B22 +0x93C5 0x2558F +0x93C6 0x216FC +0x93C7 0x2555B +0x93C8 0x25425 +0x93C9 0x78EE +0x93CA 0x23103 +0x93CB 0x2182A +0x93CC 0x23234 +0x93CD 0x3464 +0x93CE 0x2320F +0x93CF 0x23182 +0x93D0 0x242C9 +0x93D1 0x668E +0x93D2 0x26D24 +0x93D3 0x666B +0x93D4 0x4B93 +0x93D5 0x6630 +0x93D6 0x27870 +0x93D7 0x21DEB +0x93D8 0x6663 +0x93D9 0x232D2 +0x93DA 0x232E1 +0x93DB 0x661E +0x93DC 0x25872 +0x93DD 0x38D1 +0x93DE 0x2383A +0x93DF 0x237BC +0x93E0 0x3B99 +0x93E1 0x237A2 +0x93E2 0x233FE +0x93E3 0x74D0 +0x93E4 0x3B96 +0x93E5 0x678F +0x93E6 0x2462A +0x93E7 0x68B6 +0x93E8 0x681E +0x93E9 0x3BC4 +0x93EA 0x6ABE +0x93EB 0x3863 +0x93EC 0x237D5 +0x93ED 0x24487 +0x93EE 0x6A33 +0x93EF 0x6A52 +0x93F0 0x6AC9 +0x93F1 0x6B05 +0x93F2 0x21912 +0x93F3 0x6511 +0x93F4 0x6898 +0x93F5 0x6A4C +0x93F6 0x3BD7 +0x93F7 0x6A7A +0x93F8 0x6B57 +0x93F9 0x23FC0 +0x93FA 0x23C9A +0x93FB 0x93A0 +0x93FC 0x92F2 +0x93FD 0x28BEA +0x93FE 0x28ACB +0x9440 0x9289 +0x9441 0x2801E +0x9442 0x289DC +0x9443 0x9467 +0x9444 0x6DA5 +0x9445 0x6F0B +0x9446 0x249EC +0x9448 0x23F7F +0x9449 0x3D8F +0x944A 0x6E04 +0x944B 0x2403C +0x944C 0x5A3D +0x944D 0x6E0A +0x944E 0x5847 +0x944F 0x6D24 +0x9450 0x7842 +0x9451 0x713B +0x9452 0x2431A +0x9453 0x24276 +0x9454 0x70F1 +0x9455 0x7250 +0x9456 0x7287 +0x9457 0x7294 +0x9458 0x2478F +0x9459 0x24725 +0x945A 0x5179 +0x945B 0x24AA4 +0x945C 0x205EB +0x945D 0x747A +0x945E 0x23EF8 +0x945F 0x2365F +0x9460 0x24A4A +0x9461 0x24917 +0x9462 0x25FE1 +0x9463 0x3F06 +0x9464 0x3EB1 +0x9465 0x24ADF +0x9466 0x28C23 +0x9467 0x23F35 +0x9468 0x60A7 +0x9469 0x3EF3 +0x946A 0x74CC +0x946B 0x743C +0x946C 0x9387 +0x946D 0x7437 +0x946E 0x449F +0x946F 0x26DEA +0x9470 0x4551 +0x9471 0x7583 +0x9472 0x3F63 +0x9473 0x24CD9 +0x9474 0x24D06 +0x9475 0x3F58 +0x9476 0x7555 +0x9477 0x7673 +0x9478 0x2A5C6 +0x9479 0x3B19 +0x947A 0x7468 +0x947B 0x28ACC +0x947C 0x249AB +0x947D 0x2498E +0x947E 0x3AFB +0x94A1 0x3DCD +0x94A2 0x24A4E +0x94A3 0x3EFF +0x94A4 0x249C5 +0x94A5 0x248F3 +0x94A6 0x91FA +0x94A7 0x5732 +0x94A8 0x9342 +0x94A9 0x28AE3 +0x94AA 0x21864 +0x94AB 0x50DF +0x94AC 0x25221 +0x94AD 0x251E7 +0x94AE 0x7778 +0x94AF 0x23232 +0x94B0 0x770E +0x94B1 0x770F +0x94B2 0x777B +0x94B3 0x24697 +0x94B4 0x23781 +0x94B5 0x3A5E +0x94B6 0x248F0 +0x94B7 0x7438 +0x94B8 0x749B +0x94B9 0x3EBF +0x94BA 0x24ABA +0x94BB 0x24AC7 +0x94BC 0x40C8 +0x94BD 0x24A96 +0x94BE 0x261AE +0x94BF 0x9307 +0x94C0 0x25581 +0x94C1 0x781E +0x94C2 0x788D +0x94C3 0x7888 +0x94C4 0x78D2 +0x94C5 0x73D0 +0x94C6 0x7959 +0x94C7 0x27741 +0x94C8 0x256E3 +0x94C9 0x410E +0x94CB 0x8496 +0x94CC 0x79A5 +0x94CD 0x6A2D +0x94CE 0x23EFA +0x94CF 0x7A3A +0x94D0 0x79F4 +0x94D1 0x416E +0x94D2 0x216E6 +0x94D3 0x4132 +0x94D4 0x9235 +0x94D5 0x79F1 +0x94D6 0x20D4C +0x94D7 0x2498C +0x94D8 0x20299 +0x94D9 0x23DBA +0x94DA 0x2176E +0x94DB 0x3597 +0x94DC 0x556B +0x94DD 0x3570 +0x94DE 0x36AA +0x94DF 0x201D4 +0x94E0 0x20C0D +0x94E1 0x7AE2 +0x94E2 0x5A59 +0x94E3 0x226F5 +0x94E4 0x25AAF +0x94E5 0x25A9C +0x94E6 0x5A0D +0x94E7 0x2025B +0x94E8 0x78F0 +0x94E9 0x5A2A +0x94EA 0x25BC6 +0x94EB 0x7AFE +0x94EC 0x41F9 +0x94ED 0x7C5D +0x94EE 0x7C6D +0x94EF 0x4211 +0x94F0 0x25BB3 +0x94F1 0x25EBC +0x94F2 0x25EA6 +0x94F3 0x7CCD +0x94F4 0x249F9 +0x94F5 0x217B0 +0x94F6 0x7C8E +0x94F7 0x7C7C +0x94F8 0x7CAE +0x94F9 0x6AB2 +0x94FA 0x7DDC +0x94FB 0x7E07 +0x94FC 0x7DD3 +0x94FD 0x7F4E +0x94FE 0x26261 +0x9540 0x2615C +0x9541 0x27B48 +0x9542 0x7D97 +0x9543 0x25E82 +0x9544 0x426A +0x9545 0x26B75 +0x9546 0x20916 +0x9547 0x67D6 +0x9548 0x2004E +0x9549 0x235CF +0x954A 0x57C4 +0x954B 0x26412 +0x954C 0x263F8 +0x954D 0x24962 +0x954E 0x7FDD +0x954F 0x7B27 +0x9550 0x2082C +0x9551 0x25AE9 +0x9552 0x25D43 +0x9553 0x7B0C +0x9554 0x25E0E +0x9555 0x99E6 +0x9556 0x8645 +0x9557 0x9A63 +0x9558 0x6A1C +0x9559 0x2343F +0x955A 0x39E2 +0x955B 0x249F7 +0x955C 0x265AD +0x955D 0x9A1F +0x955E 0x265A0 +0x955F 0x8480 +0x9560 0x27127 +0x9561 0x26CD1 +0x9562 0x44EA +0x9563 0x8137 +0x9564 0x4402 +0x9565 0x80C6 +0x9566 0x8109 +0x9567 0x8142 +0x9568 0x267B4 +0x9569 0x98C3 +0x956A 0x26A42 +0x956B 0x8262 +0x956C 0x8265 +0x956D 0x26A51 +0x956E 0x8453 +0x956F 0x26DA7 +0x9570 0x8610 +0x9571 0x2721B +0x9572 0x5A86 +0x9573 0x417F +0x9574 0x21840 +0x9575 0x5B2B +0x9576 0x218A1 +0x9577 0x5AE4 +0x9578 0x218D8 +0x9579 0x86A0 +0x957A 0x2F9BC +0x957B 0x23D8F +0x957C 0x882D +0x957D 0x27422 +0x957E 0x5A02 +0x95A1 0x886E +0x95A2 0x4F45 +0x95A3 0x8887 +0x95A4 0x88BF +0x95A5 0x88E6 +0x95A6 0x8965 +0x95A7 0x894D +0x95A8 0x25683 +0x95A9 0x8954 +0x95AA 0x27785 +0x95AB 0x27784 +0x95AC 0x28BF5 +0x95AD 0x28BD9 +0x95AE 0x28B9C +0x95AF 0x289F9 +0x95B0 0x3EAD +0x95B1 0x84A3 +0x95B2 0x46F5 +0x95B3 0x46CF +0x95B4 0x37F2 +0x95B5 0x8A3D +0x95B6 0x8A1C +0x95B7 0x29448 +0x95B8 0x5F4D +0x95B9 0x922B +0x95BA 0x24284 +0x95BB 0x65D4 +0x95BC 0x7129 +0x95BD 0x70C4 +0x95BE 0x21845 +0x95BF 0x9D6D +0x95C0 0x8C9F +0x95C1 0x8CE9 +0x95C2 0x27DDC +0x95C3 0x599A +0x95C4 0x77C3 +0x95C5 0x59F0 +0x95C6 0x436E +0x95C7 0x36D4 +0x95C8 0x8E2A +0x95C9 0x8EA7 +0x95CA 0x24C09 +0x95CB 0x8F30 +0x95CC 0x8F4A +0x95CD 0x42F4 +0x95CE 0x6C58 +0x95CF 0x6FBB +0x95D0 0x22321 +0x95D1 0x489B +0x95D2 0x6F79 +0x95D3 0x6E8B +0x95D4 0x217DA +0x95D5 0x9BE9 +0x95D6 0x36B5 +0x95D7 0x2492F +0x95D8 0x90BB +0x95DA 0x5571 +0x95DB 0x4906 +0x95DC 0x91BB +0x95DD 0x9404 +0x95DE 0x28A4B +0x95DF 0x4062 +0x95E0 0x28AFC +0x95E1 0x9427 +0x95E2 0x28C1D +0x95E3 0x28C3B +0x95E4 0x84E5 +0x95E5 0x8A2B +0x95E6 0x9599 +0x95E7 0x95A7 +0x95E8 0x9597 +0x95E9 0x9596 +0x95EA 0x28D34 +0x95EB 0x7445 +0x95EC 0x3EC2 +0x95ED 0x248FF +0x95EE 0x24A42 +0x95EF 0x243EA +0x95F0 0x3EE7 +0x95F1 0x23225 +0x95F2 0x968F +0x95F3 0x28EE7 +0x95F4 0x28E66 +0x95F5 0x28E65 +0x95F6 0x3ECC +0x95F7 0x249ED +0x95F8 0x24A78 +0x95F9 0x23FEE +0x95FA 0x7412 +0x95FB 0x746B +0x95FC 0x3EFC +0x95FD 0x9741 +0x95FE 0x290B0 +0x9640 0x6847 +0x9641 0x4A1D +0x9642 0x29093 +0x9643 0x257DF +0x9645 0x9368 +0x9646 0x28989 +0x9647 0x28C26 +0x9648 0x28B2F +0x9649 0x263BE +0x964A 0x92BA +0x964B 0x5B11 +0x964C 0x8B69 +0x964D 0x493C +0x964E 0x73F9 +0x964F 0x2421B +0x9650 0x979B +0x9651 0x9771 +0x9652 0x9938 +0x9653 0x20F26 +0x9654 0x5DC1 +0x9655 0x28BC5 +0x9656 0x24AB2 +0x9657 0x981F +0x9658 0x294DA +0x9659 0x92F6 +0x965A 0x295D7 +0x965B 0x91E5 +0x965C 0x44C0 +0x965D 0x28B50 +0x965E 0x24A67 +0x965F 0x28B64 +0x9660 0x98DC +0x9661 0x28A45 +0x9662 0x3F00 +0x9663 0x922A +0x9664 0x4925 +0x9665 0x8414 +0x9666 0x993B +0x9667 0x994D +0x9668 0x27B06 +0x9669 0x3DFD +0x966A 0x999B +0x966B 0x4B6F +0x966C 0x99AA +0x966D 0x9A5C +0x966E 0x28B65 +0x966F 0x258C8 +0x9670 0x6A8F +0x9671 0x9A21 +0x9672 0x5AFE +0x9673 0x9A2F +0x9674 0x298F1 +0x9675 0x4B90 +0x9676 0x29948 +0x9677 0x99BC +0x9678 0x4BBD +0x9679 0x4B97 +0x967A 0x937D +0x967B 0x5872 +0x967C 0x21302 +0x967D 0x5822 +0x967E 0x249B8 +0x96A1 0x214E8 +0x96A2 0x7844 +0x96A3 0x2271F +0x96A4 0x23DB8 +0x96A5 0x68C5 +0x96A6 0x3D7D +0x96A7 0x9458 +0x96A8 0x3927 +0x96A9 0x6150 +0x96AA 0x22781 +0x96AB 0x2296B +0x96AC 0x6107 +0x96AD 0x9C4F +0x96AE 0x9C53 +0x96AF 0x9C7B +0x96B0 0x9C35 +0x96B1 0x9C10 +0x96B2 0x9B7F +0x96B3 0x9BCF +0x96B4 0x29E2D +0x96B5 0x9B9F +0x96B6 0x2A1F5 +0x96B7 0x2A0FE +0x96B8 0x9D21 +0x96B9 0x4CAE +0x96BA 0x24104 +0x96BB 0x9E18 +0x96BC 0x4CB0 +0x96BD 0x9D0C +0x96BE 0x2A1B4 +0x96BF 0x2A0ED +0x96C0 0x2A0F3 +0x96C1 0x2992F +0x96C2 0x9DA5 +0x96C3 0x84BD +0x96C4 0x26E12 +0x96C5 0x26FDF +0x96C6 0x26B82 +0x96C7 0x85FC +0x96C8 0x4533 +0x96C9 0x26DA4 +0x96CA 0x26E84 +0x96CB 0x26DF0 +0x96CC 0x8420 +0x96CD 0x85EE +0x96CE 0x26E00 +0x96CF 0x237D7 +0x96D0 0x26064 +0x96D1 0x79E2 +0x96D2 0x2359C +0x96D3 0x23640 +0x96D4 0x492D +0x96D5 0x249DE +0x96D6 0x3D62 +0x96D7 0x93DB +0x96D8 0x92BE +0x96D9 0x9348 +0x96DA 0x202BF +0x96DB 0x78B9 +0x96DC 0x9277 +0x96DD 0x944D +0x96DE 0x4FE4 +0x96DF 0x3440 +0x96E0 0x9064 +0x96E1 0x2555D +0x96E2 0x783D +0x96E3 0x7854 +0x96E4 0x78B6 +0x96E5 0x784B +0x96E6 0x21757 +0x96E7 0x231C9 +0x96E8 0x24941 +0x96E9 0x369A +0x96EA 0x4F72 +0x96EB 0x6FDA +0x96EC 0x6FD9 +0x96EE 0x701E +0x96EF 0x5414 +0x96F0 0x241B5 +0x96F1 0x57BB +0x96F2 0x58F3 +0x96F3 0x578A +0x96F4 0x9D16 +0x96F5 0x57D7 +0x96F6 0x7134 +0x96F7 0x34AF +0x96F8 0x241AC +0x96F9 0x71EB +0x96FA 0x26C40 +0x96FB 0x24F97 +0x96FD 0x217B5 +0x96FE 0x28A49 +0x9740 0x610C +0x9741 0x5ACE +0x9742 0x5A0B +0x9743 0x42BC +0x9744 0x24488 +0x9745 0x372C +0x9746 0x4B7B +0x9747 0x289FC +0x9748 0x93BB +0x9749 0x93B8 +0x974A 0x218D6 +0x974B 0x20F1D +0x974C 0x8472 +0x974D 0x26CC0 +0x974E 0x21413 +0x974F 0x242FA +0x9750 0x22C26 +0x9751 0x243C1 +0x9752 0x5994 +0x9753 0x23DB7 +0x9754 0x26741 +0x9755 0x7DA8 +0x9756 0x2615B +0x9757 0x260A4 +0x9758 0x249B9 +0x9759 0x2498B +0x975A 0x289FA +0x975B 0x92E5 +0x975C 0x73E2 +0x975D 0x3EE9 +0x975E 0x74B4 +0x975F 0x28B63 +0x9760 0x2189F +0x9761 0x3EE1 +0x9762 0x24AB3 +0x9763 0x6AD8 +0x9764 0x73F3 +0x9765 0x73FB +0x9766 0x3ED6 +0x9767 0x24A3E +0x9768 0x24A94 +0x9769 0x217D9 +0x976A 0x24A66 +0x976B 0x203A7 +0x976C 0x21424 +0x976D 0x249E5 +0x976E 0x7448 +0x976F 0x24916 +0x9770 0x70A5 +0x9771 0x24976 +0x9772 0x9284 +0x9773 0x73E6 +0x9774 0x935F +0x9775 0x204FE +0x9776 0x9331 +0x9777 0x28ACE +0x9778 0x28A16 +0x9779 0x9386 +0x977A 0x28BE7 +0x977B 0x255D5 +0x977C 0x4935 +0x977D 0x28A82 +0x977E 0x716B +0x97A1 0x24943 +0x97A2 0x20CFF +0x97A3 0x56A4 +0x97A4 0x2061A +0x97A5 0x20BEB +0x97A6 0x20CB8 +0x97A7 0x5502 +0x97A8 0x79C4 +0x97A9 0x217FA +0x97AA 0x7DFE +0x97AB 0x216C2 +0x97AC 0x24A50 +0x97AD 0x21852 +0x97AE 0x452E +0x97AF 0x9401 +0x97B0 0x370A +0x97B1 0x28AC0 +0x97B2 0x249AD +0x97B3 0x59B0 +0x97B4 0x218BF +0x97B5 0x21883 +0x97B6 0x27484 +0x97B7 0x5AA1 +0x97B8 0x36E2 +0x97B9 0x23D5B +0x97BA 0x36B0 +0x97BB 0x925F +0x97BC 0x5A79 +0x97BD 0x28A81 +0x97BE 0x21862 +0x97BF 0x9374 +0x97C0 0x3CCD +0x97C1 0x20AB4 +0x97C2 0x4A96 +0x97C3 0x398A +0x97C4 0x50F4 +0x97C5 0x3D69 +0x97C6 0x3D4C +0x97C7 0x2139C +0x97C8 0x7175 +0x97C9 0x42FB +0x97CA 0x28218 +0x97CB 0x6E0F +0x97CC 0x290E4 +0x97CD 0x44EB +0x97CE 0x6D57 +0x97CF 0x27E4F +0x97D0 0x7067 +0x97D1 0x6CAF +0x97D2 0x3CD6 +0x97D3 0x23FED +0x97D4 0x23E2D +0x97D5 0x6E02 +0x97D6 0x6F0C +0x97D7 0x3D6F +0x97D8 0x203F5 +0x97D9 0x7551 +0x97DA 0x36BC +0x97DB 0x34C8 +0x97DC 0x4680 +0x97DD 0x3EDA +0x97DE 0x4871 +0x97DF 0x59C4 +0x97E0 0x926E +0x97E1 0x493E +0x97E2 0x8F41 +0x97E3 0x28C1C +0x97E4 0x26BC0 +0x97E5 0x5812 +0x97E6 0x57C8 +0x97E7 0x36D6 +0x97E8 0x21452 +0x97E9 0x70FE +0x97EA 0x24362 +0x97EB 0x24A71 +0x97EC 0x22FE3 +0x97ED 0x212B0 +0x97EE 0x223BD +0x97EF 0x68B9 +0x97F0 0x6967 +0x97F1 0x21398 +0x97F2 0x234E5 +0x97F3 0x27BF4 +0x97F4 0x236DF +0x97F5 0x28A83 +0x97F6 0x237D6 +0x97F7 0x233FA +0x97F8 0x24C9F +0x97F9 0x6A1A +0x97FA 0x236AD +0x97FB 0x26CB7 +0x97FC 0x843E +0x97FD 0x44DF +0x97FE 0x44CE +0x9840 0x26D26 +0x9841 0x26D51 +0x9842 0x26C82 +0x9843 0x26FDE +0x9844 0x6F17 +0x9845 0x27109 +0x9846 0x833D +0x9847 0x2173A +0x9848 0x83ED +0x9849 0x26C80 +0x984A 0x27053 +0x984B 0x217DB +0x984C 0x5989 +0x984D 0x5A82 +0x984E 0x217B3 +0x984F 0x5A61 +0x9850 0x5A71 +0x9851 0x21905 +0x9852 0x241FC +0x9853 0x372D +0x9854 0x59EF +0x9855 0x2173C +0x9856 0x36C7 +0x9857 0x718E +0x9858 0x9390 +0x9859 0x669A +0x985A 0x242A5 +0x985B 0x5A6E +0x985C 0x5A2B +0x985D 0x24293 +0x985E 0x6A2B +0x985F 0x23EF9 +0x9860 0x27736 +0x9861 0x2445B +0x9862 0x242CA +0x9863 0x711D +0x9864 0x24259 +0x9865 0x289E1 +0x9866 0x4FB0 +0x9867 0x26D28 +0x9868 0x5CC2 +0x9869 0x244CE +0x986A 0x27E4D +0x986B 0x243BD +0x986C 0x6A0C +0x986D 0x24256 +0x986E 0x21304 +0x986F 0x70A6 +0x9870 0x7133 +0x9871 0x243E9 +0x9872 0x3DA5 +0x9873 0x6CDF +0x9874 0x2F825 +0x9875 0x24A4F +0x9876 0x7E65 +0x9877 0x59EB +0x9878 0x5D2F +0x9879 0x3DF3 +0x987A 0x5F5C +0x987B 0x24A5D +0x987C 0x217DF +0x987D 0x7DA4 +0x987E 0x8426 +0x98A1 0x5485 +0x98A2 0x23AFA +0x98A3 0x23300 +0x98A4 0x20214 +0x98A5 0x577E +0x98A6 0x208D5 +0x98A7 0x20619 +0x98A8 0x3FE5 +0x98A9 0x21F9E +0x98AA 0x2A2B6 +0x98AB 0x7003 +0x98AC 0x2915B +0x98AD 0x5D70 +0x98AE 0x738F +0x98AF 0x7CD3 +0x98B0 0x28A59 +0x98B1 0x29420 +0x98B2 0x4FC8 +0x98B3 0x7FE7 +0x98B4 0x72CD +0x98B5 0x7310 +0x98B6 0x27AF4 +0x98B7 0x7338 +0x98B8 0x7339 +0x98B9 0x256F6 +0x98BA 0x7341 +0x98BB 0x7348 +0x98BC 0x3EA9 +0x98BD 0x27B18 +0x98BE 0x906C +0x98BF 0x71F5 +0x98C0 0x248F2 +0x98C1 0x73E1 +0x98C2 0x81F6 +0x98C3 0x3ECA +0x98C4 0x770C +0x98C5 0x3ED1 +0x98C6 0x6CA2 +0x98C7 0x56FD +0x98C8 0x7419 +0x98C9 0x741E +0x98CA 0x741F +0x98CB 0x3EE2 +0x98CC 0x3EF0 +0x98CD 0x3EF4 +0x98CE 0x3EFA +0x98CF 0x74D3 +0x98D0 0x3F0E +0x98D1 0x3F53 +0x98D2 0x7542 +0x98D3 0x756D +0x98D4 0x7572 +0x98D5 0x758D +0x98D6 0x3F7C +0x98D7 0x75C8 +0x98D8 0x75DC +0x98D9 0x3FC0 +0x98DA 0x764D +0x98DB 0x3FD7 +0x98DC 0x7674 +0x98DD 0x3FDC +0x98DE 0x767A +0x98DF 0x24F5C +0x98E0 0x7188 +0x98E1 0x5623 +0x98E2 0x8980 +0x98E3 0x5869 +0x98E4 0x401D +0x98E5 0x7743 +0x98E6 0x4039 +0x98E7 0x6761 +0x98E8 0x4045 +0x98E9 0x35DB +0x98EA 0x7798 +0x98EB 0x406A +0x98EC 0x406F +0x98ED 0x5C5E +0x98EE 0x77BE +0x98EF 0x77CB +0x98F0 0x58F2 +0x98F1 0x7818 +0x98F2 0x70B9 +0x98F3 0x781C +0x98F4 0x40A8 +0x98F5 0x7839 +0x98F6 0x7847 +0x98F7 0x7851 +0x98F8 0x7866 +0x98F9 0x8448 +0x98FA 0x25535 +0x98FB 0x7933 +0x98FC 0x6803 +0x98FD 0x7932 +0x98FE 0x4103 +0x9940 0x4109 +0x9941 0x7991 +0x9942 0x7999 +0x9943 0x8FBB +0x9944 0x7A06 +0x9945 0x8FBC +0x9946 0x4167 +0x9947 0x7A91 +0x9948 0x41B2 +0x9949 0x7ABC +0x994A 0x8279 +0x994B 0x41C4 +0x994C 0x7ACF +0x994D 0x7ADB +0x994E 0x41CF +0x994F 0x4E21 +0x9950 0x7B62 +0x9951 0x7B6C +0x9952 0x7B7B +0x9953 0x7C12 +0x9954 0x7C1B +0x9955 0x4260 +0x9956 0x427A +0x9957 0x7C7B +0x9958 0x7C9C +0x9959 0x428C +0x995A 0x7CB8 +0x995B 0x4294 +0x995C 0x7CED +0x995D 0x8F93 +0x995E 0x70C0 +0x995F 0x20CCF +0x9960 0x7DCF +0x9961 0x7DD4 +0x9962 0x7DD0 +0x9963 0x7DFD +0x9964 0x7FAE +0x9965 0x7FB4 +0x9966 0x729F +0x9967 0x4397 +0x9968 0x8020 +0x9969 0x8025 +0x996A 0x7B39 +0x996B 0x802E +0x996C 0x8031 +0x996D 0x8054 +0x996E 0x3DCC +0x996F 0x57B4 +0x9970 0x70A0 +0x9971 0x80B7 +0x9972 0x80E9 +0x9973 0x43ED +0x9974 0x810C +0x9975 0x732A +0x9976 0x810E +0x9977 0x8112 +0x9978 0x7560 +0x9979 0x8114 +0x997A 0x4401 +0x997B 0x3B39 +0x997C 0x8156 +0x997D 0x8159 +0x997E 0x815A +0x99A1 0x4413 +0x99A2 0x583A +0x99A3 0x817C +0x99A4 0x8184 +0x99A5 0x4425 +0x99A6 0x8193 +0x99A7 0x442D +0x99A8 0x81A5 +0x99A9 0x57EF +0x99AA 0x81C1 +0x99AB 0x81E4 +0x99AC 0x8254 +0x99AD 0x448F +0x99AE 0x82A6 +0x99AF 0x8276 +0x99B0 0x82CA +0x99B1 0x82D8 +0x99B2 0x82FF +0x99B3 0x44B0 +0x99B4 0x8357 +0x99B5 0x9669 +0x99B6 0x698A +0x99B7 0x8405 +0x99B8 0x70F5 +0x99B9 0x8464 +0x99BA 0x60E3 +0x99BB 0x8488 +0x99BC 0x4504 +0x99BD 0x84BE +0x99BE 0x84E1 +0x99BF 0x84F8 +0x99C0 0x8510 +0x99C1 0x8538 +0x99C2 0x8552 +0x99C3 0x453B +0x99C4 0x856F +0x99C5 0x8570 +0x99C6 0x85E0 +0x99C7 0x4577 +0x99C8 0x8672 +0x99C9 0x8692 +0x99CA 0x86B2 +0x99CB 0x86EF +0x99CC 0x9645 +0x99CD 0x878B +0x99CE 0x4606 +0x99CF 0x4617 +0x99D0 0x88AE +0x99D1 0x88FF +0x99D2 0x8924 +0x99D3 0x8947 +0x99D4 0x8991 +0x99D5 0x27967 +0x99D6 0x8A29 +0x99D7 0x8A38 +0x99D8 0x8A94 +0x99D9 0x8AB4 +0x99DA 0x8C51 +0x99DB 0x8CD4 +0x99DC 0x8CF2 +0x99DD 0x8D1C +0x99DE 0x4798 +0x99DF 0x585F +0x99E0 0x8DC3 +0x99E1 0x47ED +0x99E2 0x4EEE +0x99E3 0x8E3A +0x99E4 0x55D8 +0x99E5 0x5754 +0x99E6 0x8E71 +0x99E7 0x55F5 +0x99E8 0x8EB0 +0x99E9 0x4837 +0x99EA 0x8ECE +0x99EB 0x8EE2 +0x99EC 0x8EE4 +0x99ED 0x8EED +0x99EE 0x8EF2 +0x99EF 0x8FB7 +0x99F0 0x8FC1 +0x99F1 0x8FCA +0x99F2 0x8FCC +0x99F3 0x9033 +0x99F4 0x99C4 +0x99F5 0x48AD +0x99F6 0x98E0 +0x99F7 0x9213 +0x99F8 0x491E +0x99F9 0x9228 +0x99FA 0x9258 +0x99FB 0x926B +0x99FC 0x92B1 +0x99FD 0x92AE +0x99FE 0x92BF +0x9A40 0x92E3 +0x9A41 0x92EB +0x9A42 0x92F3 +0x9A43 0x92F4 +0x9A44 0x92FD +0x9A45 0x9343 +0x9A46 0x9384 +0x9A47 0x93AD +0x9A48 0x4945 +0x9A49 0x4951 +0x9A4A 0x9EBF +0x9A4B 0x9417 +0x9A4C 0x5301 +0x9A4D 0x941D +0x9A4E 0x942D +0x9A4F 0x943E +0x9A50 0x496A +0x9A51 0x9454 +0x9A52 0x9479 +0x9A53 0x952D +0x9A54 0x95A2 +0x9A55 0x49A7 +0x9A56 0x95F4 +0x9A57 0x9633 +0x9A58 0x49E5 +0x9A59 0x67A0 +0x9A5A 0x4A24 +0x9A5B 0x9740 +0x9A5C 0x4A35 +0x9A5D 0x97B2 +0x9A5E 0x97C2 +0x9A5F 0x5654 +0x9A60 0x4AE4 +0x9A61 0x60E8 +0x9A62 0x98B9 +0x9A63 0x4B19 +0x9A64 0x98F1 +0x9A65 0x5844 +0x9A66 0x990E +0x9A67 0x9919 +0x9A68 0x51B4 +0x9A69 0x991C +0x9A6A 0x9937 +0x9A6B 0x9942 +0x9A6C 0x995D +0x9A6D 0x9962 +0x9A6E 0x4B70 +0x9A6F 0x99C5 +0x9A70 0x4B9D +0x9A71 0x9A3C +0x9A72 0x9B0F +0x9A73 0x7A83 +0x9A74 0x9B69 +0x9A75 0x9B81 +0x9A76 0x9BDD +0x9A77 0x9BF1 +0x9A78 0x9BF4 +0x9A79 0x4C6D +0x9A7A 0x9C20 +0x9A7B 0x376F +0x9A7C 0x21BC2 +0x9A7D 0x9D49 +0x9A7E 0x9C3A +0x9AA1 0x9EFE +0x9AA2 0x5650 +0x9AA3 0x9D93 +0x9AA4 0x9DBD +0x9AA5 0x9DC0 +0x9AA6 0x9DFC +0x9AA7 0x94F6 +0x9AA8 0x8FB6 +0x9AA9 0x9E7B +0x9AAA 0x9EAC +0x9AAB 0x9EB1 +0x9AAC 0x9EBD +0x9AAD 0x9EC6 +0x9AAE 0x94DC +0x9AAF 0x9EE2 +0x9AB0 0x9EF1 +0x9AB1 0x9EF8 +0x9AB2 0x7AC8 +0x9AB3 0x9F44 +0x9AB4 0x20094 +0x9AB5 0x202B7 +0x9AB6 0x203A0 +0x9AB7 0x691A +0x9AB8 0x94C3 +0x9AB9 0x59AC +0x9ABA 0x204D7 +0x9ABB 0x5840 +0x9ABC 0x94C1 +0x9ABD 0x37B9 +0x9ABE 0x205D5 +0x9ABF 0x20615 +0x9AC0 0x20676 +0x9AC1 0x216BA +0x9AC2 0x5757 +0x9AC3 0x7173 +0x9AC4 0x20AC2 +0x9AC5 0x20ACD +0x9AC6 0x20BBF +0x9AC7 0x546A +0x9AC8 0x2F83B +0x9AC9 0x20BCB +0x9ACA 0x549E +0x9ACB 0x20BFB +0x9ACC 0x20C3B +0x9ACD 0x20C53 +0x9ACE 0x20C65 +0x9ACF 0x20C7C +0x9AD0 0x60E7 +0x9AD1 0x20C8D +0x9AD2 0x567A +0x9AD3 0x20CB5 +0x9AD4 0x20CDD +0x9AD5 0x20CED +0x9AD6 0x20D6F +0x9AD7 0x20DB2 +0x9AD8 0x20DC8 +0x9AD9 0x6955 +0x9ADA 0x9C2F +0x9ADB 0x87A5 +0x9ADC 0x20E04 +0x9ADD 0x20E0E +0x9ADE 0x20ED7 +0x9ADF 0x20F90 +0x9AE0 0x20F2D +0x9AE1 0x20E73 +0x9AE2 0x5C20 +0x9AE3 0x20FBC +0x9AE4 0x5E0B +0x9AE5 0x2105C +0x9AE6 0x2104F +0x9AE7 0x21076 +0x9AE8 0x671E +0x9AE9 0x2107B +0x9AEA 0x21088 +0x9AEB 0x21096 +0x9AEC 0x3647 +0x9AED 0x210BF +0x9AEE 0x210D3 +0x9AEF 0x2112F +0x9AF0 0x2113B +0x9AF1 0x5364 +0x9AF2 0x84AD +0x9AF3 0x212E3 +0x9AF4 0x21375 +0x9AF5 0x21336 +0x9AF6 0x8B81 +0x9AF7 0x21577 +0x9AF8 0x21619 +0x9AF9 0x217C3 +0x9AFA 0x217C7 +0x9AFB 0x4E78 +0x9AFC 0x70BB +0x9AFD 0x2182D +0x9AFE 0x2196A +0x9B40 0x21A2D +0x9B41 0x21A45 +0x9B42 0x21C2A +0x9B43 0x21C70 +0x9B44 0x21CAC +0x9B45 0x21EC8 +0x9B46 0x62C3 +0x9B47 0x21ED5 +0x9B48 0x21F15 +0x9B49 0x7198 +0x9B4A 0x6855 +0x9B4B 0x22045 +0x9B4C 0x69E9 +0x9B4D 0x36C8 +0x9B4E 0x2227C +0x9B4F 0x223D7 +0x9B50 0x223FA +0x9B51 0x2272A +0x9B52 0x22871 +0x9B53 0x2294F +0x9B54 0x82FD +0x9B55 0x22967 +0x9B56 0x22993 +0x9B57 0x22AD5 +0x9B58 0x89A5 +0x9B59 0x22AE8 +0x9B5A 0x8FA0 +0x9B5B 0x22B0E +0x9B5C 0x97B8 +0x9B5D 0x22B3F +0x9B5E 0x9847 +0x9B5F 0x9ABD +0x9B60 0x22C4C +0x9B62 0x22C88 +0x9B63 0x22CB7 +0x9B64 0x25BE8 +0x9B65 0x22D08 +0x9B66 0x22D12 +0x9B67 0x22DB7 +0x9B68 0x22D95 +0x9B69 0x22E42 +0x9B6A 0x22F74 +0x9B6B 0x22FCC +0x9B6C 0x23033 +0x9B6D 0x23066 +0x9B6E 0x2331F +0x9B6F 0x233DE +0x9B70 0x5FB1 +0x9B71 0x6648 +0x9B72 0x66BF +0x9B73 0x27A79 +0x9B74 0x23567 +0x9B75 0x235F3 +0x9B77 0x249BA +0x9B79 0x2361A +0x9B7A 0x23716 +0x9B7C 0x20346 +0x9B7D 0x58B5 +0x9B7E 0x670E +0x9BA1 0x6918 +0x9BA2 0x23AA7 +0x9BA3 0x27657 +0x9BA4 0x25FE2 +0x9BA5 0x23E11 +0x9BA6 0x23EB9 +0x9BA7 0x275FE +0x9BA8 0x2209A +0x9BA9 0x48D0 +0x9BAA 0x4AB8 +0x9BAB 0x24119 +0x9BAC 0x28A9A +0x9BAD 0x242EE +0x9BAE 0x2430D +0x9BAF 0x2403B +0x9BB0 0x24334 +0x9BB1 0x24396 +0x9BB2 0x24A45 +0x9BB3 0x205CA +0x9BB4 0x51D2 +0x9BB5 0x20611 +0x9BB6 0x599F +0x9BB7 0x21EA8 +0x9BB8 0x3BBE +0x9BB9 0x23CFF +0x9BBA 0x24404 +0x9BBB 0x244D6 +0x9BBC 0x5788 +0x9BBD 0x24674 +0x9BBE 0x399B +0x9BBF 0x2472F +0x9BC0 0x285E8 +0x9BC1 0x299C9 +0x9BC2 0x3762 +0x9BC3 0x221C3 +0x9BC4 0x8B5E +0x9BC5 0x28B4E +0x9BC7 0x24812 +0x9BC8 0x248FB +0x9BC9 0x24A15 +0x9BCA 0x7209 +0x9BCB 0x24AC0 +0x9BCC 0x20C78 +0x9BCD 0x5965 +0x9BCE 0x24EA5 +0x9BCF 0x24F86 +0x9BD0 0x20779 +0x9BD1 0x8EDA +0x9BD2 0x2502C +0x9BD3 0x528F +0x9BD4 0x573F +0x9BD5 0x7171 +0x9BD6 0x25299 +0x9BD7 0x25419 +0x9BD8 0x23F4A +0x9BD9 0x24AA7 +0x9BDA 0x55BC +0x9BDB 0x25446 +0x9BDC 0x2546E +0x9BDD 0x26B52 +0x9BDF 0x3473 +0x9BE0 0x2553F +0x9BE1 0x27632 +0x9BE2 0x2555E +0x9BE3 0x4718 +0x9BE4 0x25562 +0x9BE5 0x25566 +0x9BE6 0x257C7 +0x9BE7 0x2493F +0x9BE8 0x2585D +0x9BE9 0x5066 +0x9BEA 0x34FB +0x9BEB 0x233CC +0x9BED 0x25903 +0x9BEE 0x477C +0x9BEF 0x28948 +0x9BF0 0x25AAE +0x9BF1 0x25B89 +0x9BF2 0x25C06 +0x9BF3 0x21D90 +0x9BF4 0x57A1 +0x9BF5 0x7151 +0x9BF7 0x26102 +0x9BF8 0x27C12 +0x9BF9 0x9056 +0x9BFA 0x261B2 +0x9BFB 0x24F9A +0x9BFC 0x8B62 +0x9BFD 0x26402 +0x9BFE 0x2644A +0x9C40 0x5D5B +0x9C41 0x26BF7 +0x9C43 0x26484 +0x9C44 0x2191C +0x9C45 0x8AEA +0x9C46 0x249F6 +0x9C47 0x26488 +0x9C48 0x23FEF +0x9C49 0x26512 +0x9C4A 0x4BC0 +0x9C4B 0x265BF +0x9C4C 0x266B5 +0x9C4D 0x2271B +0x9C4E 0x9465 +0x9C4F 0x257E1 +0x9C50 0x6195 +0x9C51 0x5A27 +0x9C52 0x2F8CD +0x9C54 0x56B9 +0x9C55 0x24521 +0x9C56 0x266FC +0x9C57 0x4E6A +0x9C58 0x24934 +0x9C59 0x9656 +0x9C5A 0x6D8F +0x9C5B 0x26CBD +0x9C5C 0x3618 +0x9C5D 0x8977 +0x9C5E 0x26799 +0x9C5F 0x2686E +0x9C60 0x26411 +0x9C61 0x2685E +0x9C63 0x268C7 +0x9C64 0x7B42 +0x9C65 0x290C0 +0x9C66 0x20A11 +0x9C67 0x26926 +0x9C69 0x26939 +0x9C6A 0x7A45 +0x9C6C 0x269FA +0x9C6D 0x9A26 +0x9C6E 0x26A2D +0x9C6F 0x365F +0x9C70 0x26469 +0x9C71 0x20021 +0x9C72 0x7983 +0x9C73 0x26A34 +0x9C74 0x26B5B +0x9C75 0x5D2C +0x9C76 0x23519 +0x9C78 0x26B9D +0x9C79 0x46D0 +0x9C7A 0x26CA4 +0x9C7B 0x753B +0x9C7C 0x8865 +0x9C7D 0x26DAE +0x9C7E 0x58B6 +0x9CA1 0x371C +0x9CA2 0x2258D +0x9CA3 0x2704B +0x9CA4 0x271CD +0x9CA5 0x3C54 +0x9CA6 0x27280 +0x9CA7 0x27285 +0x9CA8 0x9281 +0x9CA9 0x2217A +0x9CAA 0x2728B +0x9CAB 0x9330 +0x9CAC 0x272E6 +0x9CAD 0x249D0 +0x9CAE 0x6C39 +0x9CAF 0x949F +0x9CB0 0x27450 +0x9CB1 0x20EF8 +0x9CB2 0x8827 +0x9CB3 0x88F5 +0x9CB4 0x22926 +0x9CB5 0x28473 +0x9CB6 0x217B1 +0x9CB7 0x6EB8 +0x9CB8 0x24A2A +0x9CB9 0x21820 +0x9CBA 0x39A4 +0x9CBB 0x36B9 +0x9CBE 0x453F +0x9CBF 0x66B6 +0x9CC0 0x29CAD +0x9CC1 0x298A4 +0x9CC2 0x8943 +0x9CC3 0x277CC +0x9CC4 0x27858 +0x9CC5 0x56D6 +0x9CC6 0x40DF +0x9CC7 0x2160A +0x9CC8 0x39A1 +0x9CC9 0x2372F +0x9CCA 0x280E8 +0x9CCB 0x213C5 +0x9CCC 0x71AD +0x9CCD 0x8366 +0x9CCE 0x279DD +0x9CCF 0x291A8 +0x9CD1 0x4CB7 +0x9CD2 0x270AF +0x9CD3 0x289AB +0x9CD4 0x279FD +0x9CD5 0x27A0A +0x9CD6 0x27B0B +0x9CD7 0x27D66 +0x9CD8 0x2417A +0x9CD9 0x7B43 +0x9CDA 0x797E +0x9CDB 0x28009 +0x9CDC 0x6FB5 +0x9CDD 0x2A2DF +0x9CDE 0x6A03 +0x9CDF 0x28318 +0x9CE0 0x53A2 +0x9CE1 0x26E07 +0x9CE2 0x93BF +0x9CE3 0x6836 +0x9CE4 0x975D +0x9CE5 0x2816F +0x9CE6 0x28023 +0x9CE7 0x269B5 +0x9CE8 0x213ED +0x9CE9 0x2322F +0x9CEA 0x28048 +0x9CEB 0x5D85 +0x9CEC 0x28C30 +0x9CED 0x28083 +0x9CEE 0x5715 +0x9CEF 0x9823 +0x9CF0 0x28949 +0x9CF1 0x5DAB +0x9CF2 0x24988 +0x9CF3 0x65BE +0x9CF4 0x69D5 +0x9CF5 0x53D2 +0x9CF6 0x24AA5 +0x9CF7 0x23F81 +0x9CF8 0x3C11 +0x9CF9 0x6736 +0x9CFA 0x28090 +0x9CFB 0x280F4 +0x9CFC 0x2812E +0x9CFD 0x21FA1 +0x9CFE 0x2814F +0x9D40 0x28189 +0x9D41 0x281AF +0x9D42 0x2821A +0x9D43 0x28306 +0x9D44 0x2832F +0x9D45 0x2838A +0x9D46 0x35CA +0x9D47 0x28468 +0x9D48 0x286AA +0x9D49 0x48FA +0x9D4A 0x63E6 +0x9D4B 0x28956 +0x9D4C 0x7808 +0x9D4D 0x9255 +0x9D4E 0x289B8 +0x9D4F 0x43F2 +0x9D50 0x289E7 +0x9D51 0x43DF +0x9D52 0x289E8 +0x9D53 0x28B46 +0x9D54 0x28BD4 +0x9D55 0x59F8 +0x9D56 0x28C09 +0x9D58 0x28FC5 +0x9D59 0x290EC +0x9D5B 0x29110 +0x9D5C 0x2913C +0x9D5D 0x3DF7 +0x9D5E 0x2915E +0x9D5F 0x24ACA +0x9D60 0x8FD0 +0x9D61 0x728F +0x9D62 0x568B +0x9D63 0x294E7 +0x9D64 0x295E9 +0x9D65 0x295B0 +0x9D66 0x295B8 +0x9D67 0x29732 +0x9D68 0x298D1 +0x9D69 0x29949 +0x9D6A 0x2996A +0x9D6B 0x299C3 +0x9D6C 0x29A28 +0x9D6D 0x29B0E +0x9D6E 0x29D5A +0x9D6F 0x29D9B +0x9D70 0x7E9F +0x9D71 0x29EF8 +0x9D72 0x29F23 +0x9D73 0x4CA4 +0x9D74 0x9547 +0x9D75 0x2A293 +0x9D76 0x71A2 +0x9D77 0x2A2FF +0x9D78 0x4D91 +0x9D79 0x9012 +0x9D7A 0x2A5CB +0x9D7B 0x4D9C +0x9D7C 0x20C9C +0x9D7D 0x8FBE +0x9D7E 0x55C1 +0x9DA1 0x8FBA +0x9DA2 0x224B0 +0x9DA3 0x8FB9 +0x9DA4 0x24A93 +0x9DA5 0x4509 +0x9DA6 0x7E7F +0x9DA7 0x6F56 +0x9DA8 0x6AB1 +0x9DA9 0x4EEA +0x9DAA 0x34E4 +0x9DAB 0x28B2C +0x9DAC 0x2789D +0x9DAD 0x373A +0x9DAE 0x8E80 +0x9DAF 0x217F5 +0x9DB0 0x28024 +0x9DB1 0x28B6C +0x9DB2 0x28B99 +0x9DB3 0x27A3E +0x9DB4 0x266AF +0x9DB5 0x3DEB +0x9DB6 0x27655 +0x9DB7 0x23CB7 +0x9DB8 0x25635 +0x9DB9 0x25956 +0x9DBA 0x4E9A +0x9DBB 0x25E81 +0x9DBC 0x26258 +0x9DBD 0x56BF +0x9DBE 0x20E6D +0x9DBF 0x8E0E +0x9DC0 0x5B6D +0x9DC1 0x23E88 +0x9DC2 0x24C9E +0x9DC3 0x63DE +0x9DC5 0x217F6 +0x9DC6 0x2187B +0x9DC7 0x6530 +0x9DC8 0x562D +0x9DC9 0x25C4A +0x9DCA 0x541A +0x9DCB 0x25311 +0x9DCC 0x3DC6 +0x9DCD 0x29D98 +0x9DCE 0x4C7D +0x9DCF 0x5622 +0x9DD0 0x561E +0x9DD1 0x7F49 +0x9DD2 0x25ED8 +0x9DD3 0x5975 +0x9DD4 0x23D40 +0x9DD5 0x8770 +0x9DD6 0x4E1C +0x9DD7 0x20FEA +0x9DD8 0x20D49 +0x9DD9 0x236BA +0x9DDA 0x8117 +0x9DDB 0x9D5E +0x9DDC 0x8D18 +0x9DDD 0x763B +0x9DDE 0x9C45 +0x9DDF 0x764E +0x9DE0 0x77B9 +0x9DE1 0x9345 +0x9DE2 0x5432 +0x9DE3 0x8148 +0x9DE4 0x82F7 +0x9DE5 0x5625 +0x9DE6 0x8132 +0x9DE7 0x8418 +0x9DE8 0x80BD +0x9DE9 0x55EA +0x9DEA 0x7962 +0x9DEB 0x5643 +0x9DEC 0x5416 +0x9DED 0x20E9D +0x9DEE 0x35CE +0x9DEF 0x5605 +0x9DF0 0x55F1 +0x9DF1 0x66F1 +0x9DF2 0x282E2 +0x9DF3 0x362D +0x9DF4 0x7534 +0x9DF5 0x55F0 +0x9DF6 0x55BA +0x9DF7 0x5497 +0x9DF8 0x5572 +0x9DF9 0x20C41 +0x9DFA 0x20C96 +0x9DFB 0x5ED0 +0x9DFC 0x25148 +0x9DFD 0x20E76 +0x9DFE 0x22C62 +0x9E40 0x20EA2 +0x9E41 0x9EAB +0x9E42 0x7D5A +0x9E43 0x55DE +0x9E44 0x21075 +0x9E45 0x629D +0x9E46 0x976D +0x9E47 0x5494 +0x9E48 0x8CCD +0x9E49 0x71F6 +0x9E4A 0x9176 +0x9E4B 0x63FC +0x9E4C 0x63B9 +0x9E4D 0x63FE +0x9E4E 0x5569 +0x9E4F 0x22B43 +0x9E50 0x9C72 +0x9E51 0x22EB3 +0x9E52 0x519A +0x9E53 0x34DF +0x9E54 0x20DA7 +0x9E55 0x51A7 +0x9E56 0x544D +0x9E57 0x551E +0x9E58 0x5513 +0x9E59 0x7666 +0x9E5A 0x8E2D +0x9E5B 0x2688A +0x9E5C 0x75B1 +0x9E5D 0x80B6 +0x9E5E 0x8804 +0x9E5F 0x8786 +0x9E60 0x88C7 +0x9E61 0x81B6 +0x9E62 0x841C +0x9E63 0x210C1 +0x9E64 0x44EC +0x9E65 0x7304 +0x9E66 0x24706 +0x9E67 0x5B90 +0x9E68 0x830B +0x9E69 0x26893 +0x9E6A 0x567B +0x9E6B 0x226F4 +0x9E6C 0x27D2F +0x9E6D 0x241A3 +0x9E6E 0x27D73 +0x9E6F 0x26ED0 +0x9E70 0x272B6 +0x9E71 0x9170 +0x9E72 0x211D9 +0x9E73 0x9208 +0x9E74 0x23CFC +0x9E75 0x2A6A9 +0x9E76 0x20EAC +0x9E77 0x20EF9 +0x9E78 0x7266 +0x9E79 0x21CA2 +0x9E7A 0x474E +0x9E7B 0x24FC2 +0x9E7C 0x27FF9 +0x9E7D 0x20FEB +0x9E7E 0x40FA +0x9EA1 0x9C5D +0x9EA2 0x651F +0x9EA3 0x22DA0 +0x9EA4 0x48F3 +0x9EA5 0x247E0 +0x9EA6 0x29D7C +0x9EA7 0x20FEC +0x9EA8 0x20E0A +0x9EAA 0x275A3 +0x9EAB 0x20FED +0x9EAD 0x26048 +0x9EAE 0x21187 +0x9EAF 0x71A3 +0x9EB0 0x7E8E +0x9EB1 0x9D50 +0x9EB2 0x4E1A +0x9EB3 0x4E04 +0x9EB4 0x3577 +0x9EB5 0x5B0D +0x9EB6 0x6CB2 +0x9EB7 0x5367 +0x9EB8 0x36AC +0x9EB9 0x39DC +0x9EBA 0x537D +0x9EBB 0x36A5 +0x9EBC 0x24618 +0x9EBD 0x589A +0x9EBE 0x24B6E +0x9EBF 0x822D +0x9EC0 0x544B +0x9EC1 0x57AA +0x9EC2 0x25A95 +0x9EC3 0x20979 +0x9EC5 0x3A52 +0x9EC6 0x22465 +0x9EC7 0x7374 +0x9EC8 0x29EAC +0x9EC9 0x4D09 +0x9ECA 0x9BED +0x9ECB 0x23CFE +0x9ECC 0x29F30 +0x9ECD 0x4C5B +0x9ECE 0x24FA9 +0x9ECF 0x2959E +0x9ED0 0x29FDE +0x9ED1 0x845C +0x9ED2 0x23DB6 +0x9ED3 0x272B2 +0x9ED4 0x267B3 +0x9ED5 0x23720 +0x9ED6 0x632E +0x9ED7 0x7D25 +0x9ED8 0x23EF7 +0x9ED9 0x23E2C +0x9EDA 0x3A2A +0x9EDB 0x9008 +0x9EDC 0x52CC +0x9EDD 0x3E74 +0x9EDE 0x367A +0x9EDF 0x45E9 +0x9EE0 0x2048E +0x9EE1 0x7640 +0x9EE2 0x5AF0 +0x9EE3 0x20EB6 +0x9EE4 0x787A +0x9EE5 0x27F2E +0x9EE6 0x58A7 +0x9EE7 0x40BF +0x9EE8 0x567C +0x9EE9 0x9B8B +0x9EEA 0x5D74 +0x9EEB 0x7654 +0x9EEC 0x2A434 +0x9EED 0x9E85 +0x9EEE 0x4CE1 +0x9EF0 0x37FB +0x9EF1 0x6119 +0x9EF2 0x230DA +0x9EF3 0x243F2 +0x9EF5 0x565D +0x9EF6 0x212A9 +0x9EF7 0x57A7 +0x9EF8 0x24963 +0x9EF9 0x29E06 +0x9EFA 0x5234 +0x9EFB 0x270AE +0x9EFC 0x35AD +0x9EFE 0x9D7C +0x9F40 0x7C56 +0x9F41 0x9B39 +0x9F42 0x57DE +0x9F43 0x2176C +0x9F44 0x5C53 +0x9F45 0x64D3 +0x9F46 0x294D0 +0x9F47 0x26335 +0x9F48 0x27164 +0x9F49 0x86AD +0x9F4A 0x20D28 +0x9F4B 0x26D22 +0x9F4C 0x24AE2 +0x9F4D 0x20D71 +0x9F4F 0x51FE +0x9F50 0x21F0F +0x9F51 0x5D8E +0x9F52 0x9703 +0x9F53 0x21DD1 +0x9F54 0x9E81 +0x9F55 0x904C +0x9F56 0x7B1F +0x9F57 0x9B02 +0x9F58 0x5CD1 +0x9F59 0x7BA3 +0x9F5A 0x6268 +0x9F5B 0x6335 +0x9F5C 0x9AFF +0x9F5D 0x7BCF +0x9F5E 0x9B2A +0x9F5F 0x7C7E +0x9F61 0x7C42 +0x9F62 0x7C86 +0x9F63 0x9C15 +0x9F64 0x7BFC +0x9F65 0x9B09 +0x9F67 0x9C1B +0x9F68 0x2493E +0x9F69 0x9F5A +0x9F6A 0x5573 +0x9F6B 0x5BC3 +0x9F6C 0x4FFD +0x9F6D 0x9E98 +0x9F6E 0x4FF2 +0x9F6F 0x5260 +0x9F70 0x3E06 +0x9F71 0x52D1 +0x9F72 0x5767 +0x9F73 0x5056 +0x9F74 0x59B7 +0x9F75 0x5E12 +0x9F76 0x97C8 +0x9F77 0x9DAB +0x9F78 0x8F5C +0x9F79 0x5469 +0x9F7A 0x97B4 +0x9F7B 0x9940 +0x9F7C 0x97BA +0x9F7D 0x532C +0x9F7E 0x6130 +0x9FA1 0x692C +0x9FA2 0x53DA +0x9FA3 0x9C0A +0x9FA4 0x9D02 +0x9FA5 0x4C3B +0x9FA6 0x9641 +0x9FA7 0x6980 +0x9FA8 0x50A6 +0x9FA9 0x7546 +0x9FAA 0x2176D +0x9FAB 0x99DA +0x9FAC 0x5273 +0x9FAE 0x9159 +0x9FAF 0x9681 +0x9FB0 0x915C +0x9FB2 0x9151 +0x9FB3 0x28E97 +0x9FB4 0x637F +0x9FB5 0x26D23 +0x9FB6 0x6ACA +0x9FB7 0x5611 +0x9FB8 0x918E +0x9FB9 0x757A +0x9FBA 0x6285 +0x9FBB 0x203FC +0x9FBC 0x734F +0x9FBD 0x7C70 +0x9FBE 0x25C21 +0x9FBF 0x23CFD +0x9FC1 0x24919 +0x9FC2 0x76D6 +0x9FC3 0x9B9D +0x9FC4 0x4E2A +0x9FC5 0x20CD4 +0x9FC6 0x83BE +0x9FC7 0x8842 +0x9FC9 0x5C4A +0x9FCA 0x69C0 +0x9FCC 0x577A +0x9FCD 0x521F +0x9FCE 0x5DF5 +0x9FCF 0x4ECE +0x9FD0 0x6C31 +0x9FD1 0x201F2 +0x9FD2 0x4F39 +0x9FD3 0x549C +0x9FD4 0x54DA +0x9FD5 0x529A +0x9FD6 0x8D82 +0x9FD7 0x35FE +0x9FD9 0x35F3 +0x9FDB 0x6B52 +0x9FDC 0x917C +0x9FDD 0x9FA5 +0x9FDE 0x9B97 +0x9FDF 0x982E +0x9FE0 0x98B4 +0x9FE1 0x9ABA +0x9FE2 0x9EA8 +0x9FE3 0x9E84 +0x9FE4 0x717A +0x9FE5 0x7B14 +0x9FE7 0x6BFA +0x9FE8 0x8818 +0x9FE9 0x7F78 +0x9FEB 0x5620 +0x9FEC 0x2A64A +0x9FED 0x8E77 +0x9FEE 0x9F53 +0x9FF0 0x8DD4 +0x9FF1 0x8E4F +0x9FF2 0x9E1C +0x9FF3 0x8E01 +0x9FF4 0x6282 +0x9FF5 0x2837D +0x9FF6 0x8E28 +0x9FF7 0x8E75 +0x9FF8 0x7AD3 +0x9FF9 0x24A77 +0x9FFA 0x7A3E +0x9FFB 0x78D8 +0x9FFC 0x6CEA +0x9FFD 0x8A67 +0x9FFE 0x7607 +0xA040 0x28A5A +0xA041 0x9F26 +0xA042 0x6CCE +0xA043 0x87D6 +0xA044 0x75C3 +0xA045 0x2A2B2 +0xA046 0x7853 +0xA047 0x2F840 +0xA048 0x8D0C +0xA049 0x72E2 +0xA04A 0x7371 +0xA04B 0x8B2D +0xA04C 0x7302 +0xA04D 0x74F1 +0xA04E 0x8CEB +0xA04F 0x24ABB +0xA050 0x862F +0xA051 0x5FBA +0xA052 0x88A0 +0xA053 0x44B7 +0xA055 0x2183B +0xA056 0x26E05 +0xA058 0x8A7E +0xA059 0x2251B +0xA05B 0x60FD +0xA05C 0x7667 +0xA05D 0x9AD7 +0xA05E 0x9D44 +0xA05F 0x936E +0xA060 0x9B8F +0xA061 0x87F5 +0xA064 0x8CF7 +0xA065 0x732C +0xA066 0x9721 +0xA067 0x9BB0 +0xA068 0x35D6 +0xA069 0x72B2 +0xA06A 0x4C07 +0xA06B 0x7C51 +0xA06C 0x994A +0xA06D 0x26159 +0xA06E 0x6159 +0xA06F 0x4C04 +0xA070 0x9E96 +0xA071 0x617D +0xA073 0x575F +0xA074 0x616F +0xA075 0x62A6 +0xA076 0x6239 +0xA078 0x3A5C +0xA079 0x61E2 +0xA07A 0x53AA +0xA07B 0x233F5 +0xA07C 0x6364 +0xA07D 0x6802 +0xA07E 0x35D2 +0xA0A1 0x5D57 +0xA0A2 0x28BC2 +0xA0A3 0x8FDA +0xA0A4 0x28E39 +0xA0A6 0x50D9 +0xA0A7 0x21D46 +0xA0A8 0x7906 +0xA0A9 0x5332 +0xA0AA 0x9638 +0xA0AB 0x20F3B +0xA0AC 0x4065 +0xA0AE 0x77FE +0xA0B0 0x7CC2 +0xA0B1 0x25F1A +0xA0B2 0x7CDA +0xA0B3 0x7A2D +0xA0B4 0x8066 +0xA0B5 0x8063 +0xA0B6 0x7D4D +0xA0B7 0x7505 +0xA0B8 0x74F2 +0xA0B9 0x8994 +0xA0BA 0x821A +0xA0BB 0x670C +0xA0BC 0x8062 +0xA0BD 0x27486 +0xA0BE 0x805B +0xA0BF 0x74F0 +0xA0C0 0x8103 +0xA0C1 0x7724 +0xA0C2 0x8989 +0xA0C3 0x267CC +0xA0C4 0x7553 +0xA0C5 0x26ED1 +0xA0C6 0x87A9 +0xA0C7 0x87CE +0xA0C8 0x81C8 +0xA0C9 0x878C +0xA0CA 0x8A49 +0xA0CB 0x8CAD +0xA0CC 0x8B43 +0xA0CD 0x772B +0xA0CE 0x74F8 +0xA0CF 0x84DA +0xA0D0 0x3635 +0xA0D1 0x69B2 +0xA0D2 0x8DA6 +0xA0D4 0x89A9 +0xA0D6 0x6DB9 +0xA0D7 0x87C1 +0xA0D8 0x24011 +0xA0D9 0x74E7 +0xA0DA 0x3DDB +0xA0DB 0x7176 +0xA0DC 0x60A4 +0xA0DD 0x619C +0xA0DE 0x3CD1 +0xA0E0 0x6077 +0xA0E2 0x7F71 +0xA0E3 0x28B2D +0xA0E5 0x60E9 +0xA0E6 0x4B7E +0xA0E7 0x5220 +0xA0E8 0x3C18 +0xA0E9 0x23CC7 +0xA0EA 0x25ED7 +0xA0EB 0x27656 +0xA0EC 0x25531 +0xA0ED 0x21944 +0xA0EE 0x212FE +0xA0EF 0x29903 +0xA0F0 0x26DDC +0xA0F1 0x270AD +0xA0F2 0x5CC1 +0xA0F3 0x261AD +0xA0F4 0x28A0F +0xA0F5 0x23677 +0xA0F6 0x200EE +0xA0F7 0x26846 +0xA0F8 0x24F0E +0xA0F9 0x4562 +0xA0FA 0x5B1F +0xA0FB 0x2634C +0xA0FC 0x9F50 +0xA0FD 0x9EA6 +0xA0FE 0x2626B +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2022 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFF64 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C4 0xFF3F +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0x223C +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2641 +0xA1F3 0x2609 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA241 0xFF0F +0xA242 0xFF3C +0xA243 0xFF04 +0xA244 0x00A5 +0xA245 0x3012 +0xA246 0x00A2 +0xA247 0x00A3 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CD 0x5344 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x2460 +0xC6A2 0x2461 +0xC6A3 0x2462 +0xC6A4 0x2463 +0xC6A5 0x2464 +0xC6A6 0x2465 +0xC6A7 0x2466 +0xC6A8 0x2467 +0xC6A9 0x2468 +0xC6AA 0x2469 +0xC6AB 0x2474 +0xC6AC 0x2475 +0xC6AD 0x2476 +0xC6AE 0x2477 +0xC6AF 0x2478 +0xC6B0 0x2479 +0xC6B1 0x247A +0xC6B2 0x247B +0xC6B3 0x247C +0xC6B4 0x247D +0xC6B5 0x2170 +0xC6B6 0x2171 +0xC6B7 0x2172 +0xC6B8 0x2173 +0xC6B9 0x2174 +0xC6BA 0x2175 +0xC6BB 0x2176 +0xC6BC 0x2177 +0xC6BD 0x2178 +0xC6BE 0x2179 +0xC6BF 0x4E36 +0xC6C0 0x4E3F +0xC6C1 0x4E85 +0xC6C2 0x4EA0 +0xC6C3 0x5182 +0xC6C4 0x5196 +0xC6C5 0x51AB +0xC6C6 0x52F9 +0xC6C7 0x5338 +0xC6C8 0x5369 +0xC6C9 0x53B6 +0xC6CA 0x590A +0xC6CB 0x5B80 +0xC6CC 0x5DDB +0xC6CD 0x2F33 +0xC6CE 0x5E7F +0xC6D0 0x5F50 +0xC6D1 0x5F61 +0xC6D2 0x6534 +0xC6D4 0x7592 +0xC6D6 0x8FB5 +0xC6D8 0x00A8 +0xC6D9 0x02C6 +0xC6DA 0x30FD +0xC6DB 0x30FE +0xC6DC 0x309D +0xC6DD 0x309E +0xC6E0 0x3005 +0xC6E1 0x3006 +0xC6E2 0x3007 +0xC6E3 0x30FC +0xC6E4 0xFF3B +0xC6E5 0xFF3D +0xC6E6 0x273D +0xC6E7 0x3041 +0xC6E8 0x3042 +0xC6E9 0x3043 +0xC6EA 0x3044 +0xC6EB 0x3045 +0xC6EC 0x3046 +0xC6ED 0x3047 +0xC6EE 0x3048 +0xC6EF 0x3049 +0xC6F0 0x304A +0xC6F1 0x304B +0xC6F2 0x304C +0xC6F3 0x304D +0xC6F4 0x304E +0xC6F5 0x304F +0xC6F6 0x3050 +0xC6F7 0x3051 +0xC6F8 0x3052 +0xC6F9 0x3053 +0xC6FA 0x3054 +0xC6FB 0x3055 +0xC6FC 0x3056 +0xC6FD 0x3057 +0xC6FE 0x3058 +0xC740 0x3059 +0xC741 0x305A +0xC742 0x305B +0xC743 0x305C +0xC744 0x305D +0xC745 0x305E +0xC746 0x305F +0xC747 0x3060 +0xC748 0x3061 +0xC749 0x3062 +0xC74A 0x3063 +0xC74B 0x3064 +0xC74C 0x3065 +0xC74D 0x3066 +0xC74E 0x3067 +0xC74F 0x3068 +0xC750 0x3069 +0xC751 0x306A +0xC752 0x306B +0xC753 0x306C +0xC754 0x306D +0xC755 0x306E +0xC756 0x306F +0xC757 0x3070 +0xC758 0x3071 +0xC759 0x3072 +0xC75A 0x3073 +0xC75B 0x3074 +0xC75C 0x3075 +0xC75D 0x3076 +0xC75E 0x3077 +0xC75F 0x3078 +0xC760 0x3079 +0xC761 0x307A +0xC762 0x307B +0xC763 0x307C +0xC764 0x307D +0xC765 0x307E +0xC766 0x307F +0xC767 0x3080 +0xC768 0x3081 +0xC769 0x3082 +0xC76A 0x3083 +0xC76B 0x3084 +0xC76C 0x3085 +0xC76D 0x3086 +0xC76E 0x3087 +0xC76F 0x3088 +0xC770 0x3089 +0xC771 0x308A +0xC772 0x308B +0xC773 0x308C +0xC774 0x308D +0xC775 0x308E +0xC776 0x308F +0xC777 0x3090 +0xC778 0x3091 +0xC779 0x3092 +0xC77A 0x3093 +0xC77B 0x30A1 +0xC77C 0x30A2 +0xC77D 0x30A3 +0xC77E 0x30A4 +0xC7A1 0x30A5 +0xC7A2 0x30A6 +0xC7A3 0x30A7 +0xC7A4 0x30A8 +0xC7A5 0x30A9 +0xC7A6 0x30AA +0xC7A7 0x30AB +0xC7A8 0x30AC +0xC7A9 0x30AD +0xC7AA 0x30AE +0xC7AB 0x30AF +0xC7AC 0x30B0 +0xC7AD 0x30B1 +0xC7AE 0x30B2 +0xC7AF 0x30B3 +0xC7B0 0x30B4 +0xC7B1 0x30B5 +0xC7B2 0x30B6 +0xC7B3 0x30B7 +0xC7B4 0x30B8 +0xC7B5 0x30B9 +0xC7B6 0x30BA +0xC7B7 0x30BB +0xC7B8 0x30BC +0xC7B9 0x30BD +0xC7BA 0x30BE +0xC7BB 0x30BF +0xC7BC 0x30C0 +0xC7BD 0x30C1 +0xC7BE 0x30C2 +0xC7BF 0x30C3 +0xC7C0 0x30C4 +0xC7C1 0x30C5 +0xC7C2 0x30C6 +0xC7C3 0x30C7 +0xC7C4 0x30C8 +0xC7C5 0x30C9 +0xC7C6 0x30CA +0xC7C7 0x30CB +0xC7C8 0x30CC +0xC7C9 0x30CD +0xC7CA 0x30CE +0xC7CB 0x30CF +0xC7CC 0x30D0 +0xC7CD 0x30D1 +0xC7CE 0x30D2 +0xC7CF 0x30D3 +0xC7D0 0x30D4 +0xC7D1 0x30D5 +0xC7D2 0x30D6 +0xC7D3 0x30D7 +0xC7D4 0x30D8 +0xC7D5 0x30D9 +0xC7D6 0x30DA +0xC7D7 0x30DB +0xC7D8 0x30DC +0xC7D9 0x30DD +0xC7DA 0x30DE +0xC7DB 0x30DF +0xC7DC 0x30E0 +0xC7DD 0x30E1 +0xC7DE 0x30E2 +0xC7DF 0x30E3 +0xC7E0 0x30E4 +0xC7E1 0x30E5 +0xC7E2 0x30E6 +0xC7E3 0x30E7 +0xC7E4 0x30E8 +0xC7E5 0x30E9 +0xC7E6 0x30EA +0xC7E7 0x30EB +0xC7E8 0x30EC +0xC7E9 0x30ED +0xC7EA 0x30EE +0xC7EB 0x30EF +0xC7EC 0x30F0 +0xC7ED 0x30F1 +0xC7EE 0x30F2 +0xC7EF 0x30F3 +0xC7F0 0x30F4 +0xC7F1 0x30F5 +0xC7F2 0x30F6 +0xC7F3 0x0410 +0xC7F4 0x0411 +0xC7F5 0x0412 +0xC7F6 0x0413 +0xC7F7 0x0414 +0xC7F8 0x0415 +0xC7F9 0x0401 +0xC7FA 0x0416 +0xC7FB 0x0417 +0xC7FC 0x0418 +0xC7FD 0x0419 +0xC7FE 0x041A +0xC840 0x041B +0xC841 0x041C +0xC842 0x041D +0xC843 0x041E +0xC844 0x041F +0xC845 0x0420 +0xC846 0x0421 +0xC847 0x0422 +0xC848 0x0423 +0xC849 0x0424 +0xC84A 0x0425 +0xC84B 0x0426 +0xC84C 0x0427 +0xC84D 0x0428 +0xC84E 0x0429 +0xC84F 0x042A +0xC850 0x042B +0xC851 0x042C +0xC852 0x042D +0xC853 0x042E +0xC854 0x042F +0xC855 0x0430 +0xC856 0x0431 +0xC857 0x0432 +0xC858 0x0433 +0xC859 0x0434 +0xC85A 0x0435 +0xC85B 0x0451 +0xC85C 0x0436 +0xC85D 0x0437 +0xC85E 0x0438 +0xC85F 0x0439 +0xC860 0x043A +0xC861 0x043B +0xC862 0x043C +0xC863 0x043D +0xC864 0x043E +0xC865 0x043F +0xC866 0x0440 +0xC867 0x0441 +0xC868 0x0442 +0xC869 0x0443 +0xC86A 0x0444 +0xC86B 0x0445 +0xC86C 0x0446 +0xC86D 0x0447 +0xC86E 0x0448 +0xC86F 0x0449 +0xC870 0x044A +0xC871 0x044B +0xC872 0x044C +0xC873 0x044D +0xC874 0x044E +0xC875 0x044F +0xC876 0x21E7 +0xC877 0x21B8 +0xC878 0x21B9 +0xC879 0x31CF +0xC87A 0x200CC +0xC87B 0x4E5A +0xC87C 0x2008A +0xC87D 0x5202 +0xC87E 0x4491 +0xC8A1 0x9FB0 +0xC8A2 0x5188 +0xC8A3 0x9FB1 +0xC8A4 0x27607 +0xC8CD 0xFFE2 +0xC8CE 0xFFE4 +0xC8CF 0xFF07 +0xC8D0 0xFF02 +0xC8D1 0x3231 +0xC8D2 0x2116 +0xC8D3 0x2121 +0xC8D4 0x309B +0xC8D5 0x309C +0xC8D6 0x2E80 +0xC8D7 0x2E84 +0xC8D8 0x2E86 +0xC8D9 0x2E87 +0xC8DA 0x2E88 +0xC8DB 0x2E8A +0xC8DC 0x2E8C +0xC8DD 0x2E8D +0xC8DE 0x2E95 +0xC8DF 0x2E9C +0xC8E0 0x2E9D +0xC8E1 0x2EA5 +0xC8E2 0x2EA7 +0xC8E3 0x2EAA +0xC8E4 0x2EAC +0xC8E5 0x2EAE +0xC8E6 0x2EB6 +0xC8E7 0x2EBC +0xC8E8 0x2EBE +0xC8E9 0x2EC6 +0xC8EA 0x2ECA +0xC8EB 0x2ECC +0xC8EC 0x2ECD +0xC8ED 0x2ECF +0xC8EE 0x2ED6 +0xC8EF 0x2ED7 +0xC8F0 0x2EDE +0xC8F1 0x2EE3 +0xC8F5 0x0283 +0xC8F6 0x0250 +0xC8F7 0x025B +0xC8F8 0x0254 +0xC8F9 0x0275 +0xC8FA 0x0153 +0xC8FB 0x00F8 +0xC8FC 0x014B +0xC8FD 0x028A +0xC8FE 0x026A +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F +0xF9FE 0xFFED +0xFA40 0x20547 +0xFA41 0x92DB +0xFA42 0x205DF +0xFA43 0x23FC5 +0xFA44 0x854C +0xFA45 0x42B5 +0xFA46 0x73EF +0xFA47 0x51B5 +0xFA48 0x3649 +0xFA49 0x24942 +0xFA4A 0x289E4 +0xFA4B 0x9344 +0xFA4C 0x219DB +0xFA4D 0x82EE +0xFA4E 0x23CC8 +0xFA4F 0x783C +0xFA50 0x6744 +0xFA51 0x62DF +0xFA52 0x24933 +0xFA53 0x289AA +0xFA54 0x202A0 +0xFA55 0x26BB3 +0xFA56 0x21305 +0xFA57 0x4FAB +0xFA58 0x224ED +0xFA59 0x5008 +0xFA5A 0x26D29 +0xFA5B 0x27A84 +0xFA5C 0x23600 +0xFA5D 0x24AB1 +0xFA5E 0x22513 +0xFA60 0x2037E +0xFA61 0x5FA4 +0xFA62 0x20380 +0xFA63 0x20347 +0xFA64 0x6EDB +0xFA65 0x2041F +0xFA67 0x5101 +0xFA68 0x347A +0xFA69 0x510E +0xFA6A 0x986C +0xFA6B 0x3743 +0xFA6C 0x8416 +0xFA6D 0x249A4 +0xFA6E 0x20487 +0xFA6F 0x5160 +0xFA70 0x233B4 +0xFA71 0x516A +0xFA72 0x20BFF +0xFA73 0x220FC +0xFA74 0x202E5 +0xFA75 0x22530 +0xFA76 0x2058E +0xFA77 0x23233 +0xFA78 0x21983 +0xFA79 0x5B82 +0xFA7A 0x877D +0xFA7B 0x205B3 +0xFA7C 0x23C99 +0xFA7D 0x51B2 +0xFA7E 0x51B8 +0xFAA1 0x9D34 +0xFAA2 0x51C9 +0xFAA3 0x51CF +0xFAA4 0x51D1 +0xFAA5 0x3CDC +0xFAA6 0x51D3 +0xFAA7 0x24AA6 +0xFAA8 0x51B3 +0xFAA9 0x51E2 +0xFAAA 0x5342 +0xFAAB 0x51ED +0xFAAC 0x83CD +0xFAAD 0x693E +0xFAAE 0x2372D +0xFAAF 0x5F7B +0xFAB0 0x520B +0xFAB1 0x5226 +0xFAB2 0x523C +0xFAB3 0x52B5 +0xFAB4 0x5257 +0xFAB5 0x5294 +0xFAB6 0x52B9 +0xFAB7 0x52C5 +0xFAB8 0x7C15 +0xFAB9 0x8542 +0xFABA 0x52E0 +0xFABB 0x860D +0xFABC 0x26B13 +0xFABE 0x28ADE +0xFABF 0x5549 +0xFAC0 0x6ED9 +0xFAC1 0x23F80 +0xFAC2 0x20954 +0xFAC3 0x23FEC +0xFAC4 0x5333 +0xFAC6 0x20BE2 +0xFAC7 0x6CCB +0xFAC8 0x21726 +0xFAC9 0x681B +0xFACA 0x73D5 +0xFACB 0x604A +0xFACC 0x3EAA +0xFACD 0x38CC +0xFACE 0x216E8 +0xFACF 0x71DD +0xFAD0 0x44A2 +0xFAD1 0x536D +0xFAD2 0x5374 +0xFAD3 0x286AB +0xFAD4 0x537E +0xFAD6 0x21596 +0xFAD7 0x21613 +0xFAD8 0x77E6 +0xFAD9 0x5393 +0xFADA 0x28A9B +0xFADB 0x53A0 +0xFADC 0x53AB +0xFADD 0x53AE +0xFADE 0x73A7 +0xFADF 0x25772 +0xFAE0 0x3F59 +0xFAE1 0x739C +0xFAE2 0x53C1 +0xFAE3 0x53C5 +0xFAE4 0x6C49 +0xFAE5 0x4E49 +0xFAE6 0x57FE +0xFAE7 0x53D9 +0xFAE8 0x3AAB +0xFAE9 0x20B8F +0xFAEA 0x53E0 +0xFAEB 0x23FEB +0xFAEC 0x22DA3 +0xFAED 0x53F6 +0xFAEE 0x20C77 +0xFAEF 0x5413 +0xFAF0 0x7079 +0xFAF1 0x552B +0xFAF2 0x6657 +0xFAF3 0x6D5B +0xFAF4 0x546D +0xFAF5 0x26B53 +0xFAF6 0x20D74 +0xFAF7 0x555D +0xFAF8 0x548F +0xFAF9 0x54A4 +0xFAFA 0x47A6 +0xFAFB 0x2170D +0xFAFC 0x20EDD +0xFAFD 0x3DB4 +0xFAFE 0x20D4D +0xFB40 0x289BC +0xFB41 0x22698 +0xFB42 0x5547 +0xFB43 0x4CED +0xFB44 0x542F +0xFB45 0x7417 +0xFB46 0x5586 +0xFB47 0x55A9 +0xFB49 0x218D7 +0xFB4A 0x2403A +0xFB4B 0x4552 +0xFB4C 0x24435 +0xFB4D 0x66B3 +0xFB4E 0x210B4 +0xFB4F 0x5637 +0xFB50 0x66CD +0xFB51 0x2328A +0xFB52 0x66A4 +0xFB53 0x66AD +0xFB54 0x564D +0xFB55 0x564F +0xFB56 0x78F1 +0xFB57 0x56F1 +0xFB58 0x9787 +0xFB59 0x53FE +0xFB5A 0x5700 +0xFB5B 0x56EF +0xFB5C 0x56ED +0xFB5D 0x28B66 +0xFB5E 0x3623 +0xFB5F 0x2124F +0xFB60 0x5746 +0xFB61 0x241A5 +0xFB62 0x6C6E +0xFB63 0x708B +0xFB64 0x5742 +0xFB65 0x36B1 +0xFB66 0x26C7E +0xFB67 0x57E6 +0xFB68 0x21416 +0xFB69 0x5803 +0xFB6A 0x21454 +0xFB6B 0x24363 +0xFB6C 0x5826 +0xFB6D 0x24BF5 +0xFB6E 0x585C +0xFB6F 0x58AA +0xFB70 0x3561 +0xFB71 0x58E0 +0xFB72 0x58DC +0xFB73 0x2123C +0xFB74 0x58FB +0xFB75 0x5BFF +0xFB76 0x5743 +0xFB77 0x2A150 +0xFB78 0x24278 +0xFB79 0x93D3 +0xFB7A 0x35A1 +0xFB7B 0x591F +0xFB7C 0x68A6 +0xFB7D 0x36C3 +0xFB7E 0x6E59 +0xFBA1 0x2163E +0xFBA2 0x5A24 +0xFBA3 0x5553 +0xFBA4 0x21692 +0xFBA5 0x8505 +0xFBA6 0x59C9 +0xFBA7 0x20D4E +0xFBA8 0x26C81 +0xFBA9 0x26D2A +0xFBAA 0x217DC +0xFBAB 0x59D9 +0xFBAC 0x217FB +0xFBAD 0x217B2 +0xFBAE 0x26DA6 +0xFBAF 0x6D71 +0xFBB0 0x21828 +0xFBB1 0x216D5 +0xFBB2 0x59F9 +0xFBB3 0x26E45 +0xFBB4 0x5AAB +0xFBB5 0x5A63 +0xFBB6 0x36E6 +0xFBB7 0x249A9 +0xFBB9 0x3708 +0xFBBA 0x5A96 +0xFBBB 0x7465 +0xFBBC 0x5AD3 +0xFBBD 0x26FA1 +0xFBBE 0x22554 +0xFBBF 0x3D85 +0xFBC0 0x21911 +0xFBC1 0x3732 +0xFBC2 0x216B8 +0xFBC3 0x5E83 +0xFBC4 0x52D0 +0xFBC5 0x5B76 +0xFBC6 0x6588 +0xFBC7 0x5B7C +0xFBC8 0x27A0E +0xFBC9 0x4004 +0xFBCA 0x485D +0xFBCB 0x20204 +0xFBCC 0x5BD5 +0xFBCD 0x6160 +0xFBCE 0x21A34 +0xFBCF 0x259CC +0xFBD0 0x205A5 +0xFBD1 0x5BF3 +0xFBD2 0x5B9D +0xFBD3 0x4D10 +0xFBD4 0x5C05 +0xFBD5 0x21B44 +0xFBD6 0x5C13 +0xFBD7 0x73CE +0xFBD8 0x5C14 +0xFBD9 0x21CA5 +0xFBDA 0x26B28 +0xFBDB 0x5C49 +0xFBDC 0x48DD +0xFBDD 0x5C85 +0xFBDE 0x5CE9 +0xFBDF 0x5CEF +0xFBE0 0x5D8B +0xFBE1 0x21DF9 +0xFBE2 0x21E37 +0xFBE3 0x5D10 +0xFBE4 0x5D18 +0xFBE5 0x5D46 +0xFBE6 0x21EA4 +0xFBE7 0x5CBA +0xFBE8 0x5DD7 +0xFBE9 0x82FC +0xFBEA 0x382D +0xFBEB 0x24901 +0xFBEC 0x22049 +0xFBED 0x22173 +0xFBEE 0x8287 +0xFBEF 0x3836 +0xFBF0 0x3BC2 +0xFBF1 0x5E2E +0xFBF2 0x6A8A +0xFBF4 0x5E7A +0xFBF5 0x244BC +0xFBF6 0x20CD3 +0xFBF7 0x53A6 +0xFBF8 0x4EB7 +0xFBFA 0x53A8 +0xFBFB 0x21771 +0xFBFC 0x5E09 +0xFBFD 0x5EF4 +0xFBFE 0x28482 +0xFC40 0x5EF9 +0xFC41 0x5EFB +0xFC42 0x38A0 +0xFC43 0x5EFC +0xFC44 0x683E +0xFC45 0x941B +0xFC46 0x5F0D +0xFC47 0x201C1 +0xFC48 0x2F894 +0xFC49 0x3ADE +0xFC4A 0x48AE +0xFC4B 0x2133A +0xFC4C 0x5F3A +0xFC4D 0x26888 +0xFC4E 0x223D0 +0xFC50 0x22471 +0xFC51 0x5F63 +0xFC52 0x97BD +0xFC53 0x26E6E +0xFC54 0x5F72 +0xFC55 0x9340 +0xFC56 0x28A36 +0xFC57 0x5FA7 +0xFC58 0x5DB6 +0xFC59 0x3D5F +0xFC5A 0x25250 +0xFC5B 0x21F6A +0xFC5C 0x270F8 +0xFC5D 0x22668 +0xFC5E 0x91D6 +0xFC5F 0x2029E +0xFC60 0x28A29 +0xFC61 0x6031 +0xFC62 0x6685 +0xFC63 0x21877 +0xFC64 0x3963 +0xFC65 0x3DC7 +0xFC66 0x3639 +0xFC67 0x5790 +0xFC68 0x227B4 +0xFC69 0x7971 +0xFC6A 0x3E40 +0xFC6B 0x609E +0xFC6D 0x60B3 +0xFC6E 0x24982 +0xFC6F 0x2498F +0xFC70 0x27A53 +0xFC71 0x74A4 +0xFC72 0x50E1 +0xFC73 0x5AA0 +0xFC74 0x6164 +0xFC75 0x8424 +0xFC76 0x6142 +0xFC77 0x2F8A6 +0xFC78 0x26ED2 +0xFC79 0x6181 +0xFC7A 0x51F4 +0xFC7B 0x20656 +0xFC7C 0x6187 +0xFC7D 0x5BAA +0xFC7E 0x23FB7 +0xFCA1 0x2285F +0xFCA2 0x61D3 +0xFCA3 0x28B9D +0xFCA4 0x2995D +0xFCA5 0x61D0 +0xFCA6 0x3932 +0xFCA7 0x22980 +0xFCA8 0x228C1 +0xFCA9 0x6023 +0xFCAA 0x615C +0xFCAB 0x651E +0xFCAC 0x638B +0xFCAD 0x20118 +0xFCAE 0x62C5 +0xFCAF 0x21770 +0xFCB0 0x62D5 +0xFCB1 0x22E0D +0xFCB2 0x636C +0xFCB3 0x249DF +0xFCB4 0x3A17 +0xFCB5 0x6438 +0xFCB6 0x63F8 +0xFCB7 0x2138E +0xFCB8 0x217FC +0xFCBA 0x6F8A +0xFCBB 0x22E36 +0xFCBC 0x9814 +0xFCBD 0x2408C +0xFCBE 0x2571D +0xFCBF 0x64E1 +0xFCC0 0x64E5 +0xFCC1 0x947B +0xFCC2 0x3A66 +0xFCC3 0x643A +0xFCC4 0x3A57 +0xFCC5 0x654D +0xFCC6 0x6F16 +0xFCC7 0x24A28 +0xFCC8 0x24A23 +0xFCC9 0x6585 +0xFCCA 0x656D +0xFCCB 0x655F +0xFCCC 0x2307E +0xFCCD 0x65B5 +0xFCCE 0x24940 +0xFCCF 0x4B37 +0xFCD0 0x65D1 +0xFCD1 0x40D8 +0xFCD2 0x21829 +0xFCD3 0x65E0 +0xFCD4 0x65E3 +0xFCD5 0x5FDF +0xFCD6 0x23400 +0xFCD7 0x6618 +0xFCD8 0x231F7 +0xFCD9 0x231F8 +0xFCDA 0x6644 +0xFCDB 0x231A4 +0xFCDC 0x231A5 +0xFCDD 0x664B +0xFCDE 0x20E75 +0xFCDF 0x6667 +0xFCE0 0x251E6 +0xFCE1 0x6673 +0xFCE3 0x21E3D +0xFCE4 0x23231 +0xFCE5 0x285F4 +0xFCE6 0x231C8 +0xFCE7 0x25313 +0xFCE8 0x77C5 +0xFCE9 0x228F7 +0xFCEA 0x99A4 +0xFCEB 0x6702 +0xFCEC 0x2439C +0xFCED 0x24A21 +0xFCEE 0x3B2B +0xFCEF 0x69FA +0xFCF0 0x237C2 +0xFCF2 0x6767 +0xFCF3 0x6762 +0xFCF4 0x241CD +0xFCF5 0x290ED +0xFCF6 0x67D7 +0xFCF7 0x44E9 +0xFCF8 0x6822 +0xFCF9 0x6E50 +0xFCFA 0x923C +0xFCFB 0x6801 +0xFCFC 0x233E6 +0xFCFD 0x26DA0 +0xFCFE 0x685D +0xFD40 0x2346F +0xFD41 0x69E1 +0xFD42 0x6A0B +0xFD43 0x28ADF +0xFD44 0x6973 +0xFD45 0x68C3 +0xFD46 0x235CD +0xFD47 0x6901 +0xFD48 0x6900 +0xFD49 0x3D32 +0xFD4A 0x3A01 +0xFD4B 0x2363C +0xFD4C 0x3B80 +0xFD4D 0x67AC +0xFD4E 0x6961 +0xFD4F 0x28A4A +0xFD50 0x42FC +0xFD51 0x6936 +0xFD52 0x6998 +0xFD53 0x3BA1 +0xFD54 0x203C9 +0xFD55 0x8363 +0xFD56 0x5090 +0xFD57 0x69F9 +0xFD58 0x23659 +0xFD59 0x2212A +0xFD5A 0x6A45 +0xFD5B 0x23703 +0xFD5C 0x6A9D +0xFD5D 0x3BF3 +0xFD5E 0x67B1 +0xFD5F 0x6AC8 +0xFD60 0x2919C +0xFD61 0x3C0D +0xFD62 0x6B1D +0xFD63 0x20923 +0xFD64 0x60DE +0xFD65 0x6B35 +0xFD66 0x6B74 +0xFD67 0x227CD +0xFD68 0x6EB5 +0xFD69 0x23ADB +0xFD6A 0x203B5 +0xFD6B 0x21958 +0xFD6C 0x3740 +0xFD6D 0x5421 +0xFD6E 0x23B5A +0xFD6F 0x6BE1 +0xFD70 0x23EFC +0xFD71 0x6BDC +0xFD72 0x6C37 +0xFD73 0x2248B +0xFD74 0x248F1 +0xFD75 0x26B51 +0xFD76 0x6C5A +0xFD77 0x8226 +0xFD78 0x6C79 +0xFD79 0x23DBC +0xFD7A 0x44C5 +0xFD7B 0x23DBD +0xFD7C 0x241A4 +0xFD7D 0x2490C +0xFD7E 0x24900 +0xFDA1 0x23CC9 +0xFDA2 0x36E5 +0xFDA3 0x3CEB +0xFDA4 0x20D32 +0xFDA5 0x9B83 +0xFDA6 0x231F9 +0xFDA7 0x22491 +0xFDA8 0x7F8F +0xFDA9 0x6837 +0xFDAA 0x26D25 +0xFDAB 0x26DA1 +0xFDAC 0x26DEB +0xFDAD 0x6D96 +0xFDAE 0x6D5C +0xFDAF 0x6E7C +0xFDB0 0x6F04 +0xFDB1 0x2497F +0xFDB2 0x24085 +0xFDB3 0x26E72 +0xFDB4 0x8533 +0xFDB5 0x26F74 +0xFDB6 0x51C7 +0xFDB9 0x842E +0xFDBA 0x28B21 +0xFDBC 0x23E2F +0xFDBD 0x7453 +0xFDBE 0x23F82 +0xFDBF 0x79CC +0xFDC0 0x6E4F +0xFDC1 0x5A91 +0xFDC2 0x2304B +0xFDC3 0x6FF8 +0xFDC4 0x370D +0xFDC5 0x6F9D +0xFDC6 0x23E30 +0xFDC7 0x6EFA +0xFDC8 0x21497 +0xFDC9 0x2403D +0xFDCA 0x4555 +0xFDCB 0x93F0 +0xFDCC 0x6F44 +0xFDCD 0x6F5C +0xFDCE 0x3D4E +0xFDCF 0x6F74 +0xFDD0 0x29170 +0xFDD1 0x3D3B +0xFDD2 0x6F9F +0xFDD3 0x24144 +0xFDD4 0x6FD3 +0xFDD5 0x24091 +0xFDD6 0x24155 +0xFDD7 0x24039 +0xFDD8 0x23FF0 +0xFDD9 0x23FB4 +0xFDDA 0x2413F +0xFDDB 0x51DF +0xFDDC 0x24156 +0xFDDD 0x24157 +0xFDDE 0x24140 +0xFDDF 0x261DD +0xFDE0 0x704B +0xFDE1 0x707E +0xFDE2 0x70A7 +0xFDE3 0x7081 +0xFDE4 0x70CC +0xFDE5 0x70D5 +0xFDE6 0x70D6 +0xFDE7 0x70DF +0xFDE8 0x4104 +0xFDE9 0x3DE8 +0xFDEA 0x71B4 +0xFDEB 0x7196 +0xFDEC 0x24277 +0xFDED 0x712B +0xFDEE 0x7145 +0xFDEF 0x5A88 +0xFDF0 0x714A +0xFDF2 0x5C9C +0xFDF3 0x24365 +0xFDF4 0x714F +0xFDF5 0x9362 +0xFDF6 0x242C1 +0xFDF7 0x712C +0xFDF8 0x2445A +0xFDF9 0x24A27 +0xFDFA 0x24A22 +0xFDFB 0x71BA +0xFDFC 0x28BE8 +0xFDFD 0x70BD +0xFDFE 0x720E +0xFE40 0x9442 +0xFE41 0x7215 +0xFE42 0x5911 +0xFE43 0x9443 +0xFE44 0x7224 +0xFE45 0x9341 +0xFE46 0x25605 +0xFE47 0x722E +0xFE48 0x7240 +0xFE49 0x24974 +0xFE4A 0x68BD +0xFE4B 0x7255 +0xFE4C 0x7257 +0xFE4D 0x3E55 +0xFE4E 0x23044 +0xFE4F 0x680D +0xFE50 0x6F3D +0xFE51 0x7282 +0xFE53 0x732B +0xFE54 0x24823 +0xFE55 0x2882B +0xFE56 0x48ED +0xFE57 0x28804 +0xFE58 0x7328 +0xFE59 0x732E +0xFE5A 0x73CF +0xFE5B 0x73AA +0xFE5C 0x20C3A +0xFE5D 0x26A2E +0xFE5E 0x73C9 +0xFE5F 0x7449 +0xFE60 0x241E2 +0xFE61 0x216E7 +0xFE62 0x24A24 +0xFE63 0x6623 +0xFE64 0x36C5 +0xFE65 0x249B7 +0xFE66 0x2498D +0xFE67 0x249FB +0xFE68 0x73F7 +0xFE69 0x7415 +0xFE6A 0x6903 +0xFE6B 0x24A26 +0xFE6C 0x7439 +0xFE6D 0x205C3 +0xFE6E 0x3ED7 +0xFE70 0x228AD +0xFE71 0x7460 +0xFE72 0x28EB2 +0xFE73 0x7447 +0xFE74 0x73E4 +0xFE75 0x7476 +0xFE76 0x83B9 +0xFE77 0x746C +0xFE78 0x3730 +0xFE79 0x7474 +0xFE7A 0x93F1 +0xFE7B 0x6A2C +0xFE7C 0x7482 +0xFE7D 0x4953 +0xFE7E 0x24A8C +0xFEA1 0x2415F +0xFEA2 0x24A79 +0xFEA3 0x28B8F +0xFEA4 0x5B46 +0xFEA5 0x28C03 +0xFEA6 0x2189E +0xFEA7 0x74C8 +0xFEA8 0x21988 +0xFEA9 0x750E +0xFEAB 0x751E +0xFEAC 0x28ED9 +0xFEAD 0x21A4B +0xFEAE 0x5BD7 +0xFEAF 0x28EAC +0xFEB0 0x9385 +0xFEB1 0x754D +0xFEB2 0x754A +0xFEB3 0x7567 +0xFEB4 0x756E +0xFEB5 0x24F82 +0xFEB6 0x3F04 +0xFEB7 0x24D13 +0xFEB8 0x758E +0xFEB9 0x745D +0xFEBA 0x759E +0xFEBB 0x75B4 +0xFEBC 0x7602 +0xFEBD 0x762C +0xFEBE 0x7651 +0xFEBF 0x764F +0xFEC0 0x766F +0xFEC1 0x7676 +0xFEC2 0x263F5 +0xFEC3 0x7690 +0xFEC4 0x81EF +0xFEC5 0x37F8 +0xFEC6 0x26911 +0xFEC7 0x2690E +0xFEC8 0x76A1 +0xFEC9 0x76A5 +0xFECA 0x76B7 +0xFECB 0x76CC +0xFECC 0x26F9F +0xFECD 0x8462 +0xFECE 0x2509D +0xFECF 0x2517D +0xFED0 0x21E1C +0xFED1 0x771E +0xFED2 0x7726 +0xFED3 0x7740 +0xFED4 0x64AF +0xFED5 0x25220 +0xFED6 0x7758 +0xFED7 0x232AC +0xFED8 0x77AF +0xFED9 0x28964 +0xFEDA 0x28968 +0xFEDB 0x216C1 +0xFEDC 0x77F4 +0xFEDE 0x21376 +0xFEDF 0x24A12 +0xFEE0 0x68CA +0xFEE1 0x78AF +0xFEE2 0x78C7 +0xFEE3 0x78D3 +0xFEE4 0x96A5 +0xFEE5 0x792E +0xFEE6 0x255E0 +0xFEE7 0x78D7 +0xFEE8 0x7934 +0xFEE9 0x78B1 +0xFEEA 0x2760C +0xFEEB 0x8FB8 +0xFEEC 0x8884 +0xFEED 0x28B2B +0xFEEE 0x26083 +0xFEEF 0x2261C +0xFEF0 0x7986 +0xFEF1 0x8900 +0xFEF2 0x6902 +0xFEF3 0x7980 +0xFEF4 0x25857 +0xFEF5 0x799D +0xFEF6 0x27B39 +0xFEF7 0x793C +0xFEF8 0x79A9 +0xFEF9 0x6E2A +0xFEFA 0x27126 +0xFEFB 0x3EA8 +0xFEFC 0x79C6 +0xFEFD 0x2910D +0xFEFE 0x79D4 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet new file mode 100644 index 0000000..e1604c7 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet @@ -0,0 +1,241 @@ +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + +@ A C F G H I L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b d e f g h i j k l m n o +p q r s t v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m n +p q r s t u v w x y z { | } + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l n o +p q r s t u v w x y { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` b c d e f g h i j k l m n o +p q r s t u w y z | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R T U V W X Y Z [ \ ] ^ _ +` a c d e f g i j l m n o +p q r s t u v x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M O +P Q R S T U V W X Y Z [ \ ] ^ _ + a b c d e g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V X Y [ \ ] ^ _ +` a d e f g h i j k l m n o +p q s t u v x y z { | } ~ + + + + + + diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet.UTF-8 b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet.UTF-8 new file mode 100644 index 0000000..09e4bb9 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001-snippet.UTF-8 @@ -0,0 +1,241 @@ +㇀ ㇁ ㇂ ㇃ ㇄ 𠄌 ㇅ 𠃑 𠃍 ㇆ ㇇ 𠃋 𡿨 ㇈ 𠃊 ㇉ +㇊ ㇋ ㇌ 𠄎 ㇍ ㇎ Ā Á Ǎ À Ē É Ě È Ō Ó +Ǒ Ò Ê̄ Ế Ê̌ Ề Ê ā á ǎ à ɑ ē é ě è +ī í ǐ ì ō ó ǒ ò ū ú ǔ ù ǖ ǘ ǚ + ǜ ü ê̄ ế ê̌ ề ê ɡ ⏚ ⏛ +𪎩 𡅅 攊 丽 滝 鵎 釟 𧜵 撑 会 伨 +侨 兖 兴 农 凤 务 动 医 华 发 变 团 声 处 备 夲 +头 学 实 実 岚 庆 总 斉 柾 栄 桥 济 炼 电 纤 纬 +纺 织 经 统 缆 缷 艺 苏 药 视 设 询 车 轧 轮 + 琑 糼 緍 楆 竉 刧 醌 碸 酞 肼 +贋 胶 𠧧 肟 黇 䳍 鷉 鸌 䰾 𩷶 𧀎 鸊 𪄳 㗁 + 溚 舾 甙 䤑 马 骏 龙 禇 𨑬 𡷊 𠗐 𢫦 两 亁 +亀 亇 亿 仫 伷 㑌 侽 㹈 倃 傈 㑽 㒓 㒥 円 夅 凛 +凼 刅 争 剹 劐 匧 㗇 厩 㕑 厰 㕓 参 吣 㕭 㕲 㚁 +咓 咣 咴 咹 哐 哯 唘 唣 唨 㖘 唿 㖥 㖿 嗗 㗅 +𧶄 唥 𠱂 𠴕 𥄫 喐 𢳆 㧬 𠍁 蹆 𤶸 𩓥 䁓 𨂾 睺 +𢰸 㨴 䟕 𨅝 𦧲 𤷪 擝 𠵼 𠾴 𠳕 𡃴 撍 蹾 𠺖 𠰋 𠽤 +𢲩 𨉖 𤓓 𠵆 𩩍 𨃩 䟴 𤺧 𢳂 骲 㩧 𩗴 㿭 㔆 𥋇 +𩟔 𧣈 𢵄 鵮 頕 䏙 𦂥 撴 哣 𢵌 𢯊 𡁷 㧻 𡁯 + 𦛚 𦜖 𧦠 擪 𥁒 𠱃 蹨 𢆡 𨭌 𠜱 䠋 𠆩 㿺 塳 +𢶍 𤗈 𠓼 𦂗 𠽌 𠶖 啹 䂻 䎺 䪴 𢩦 𡂝 膪 飵 +𠶜 捹 㧾 𢝵 跀 嚡 摼 㹃 𪘁 𠸉 𢫏 𢳉 𡃈 𣧂 +㦒 㨆 𨊛 㕸 𥹉 𢃇 噒 𠼱 𢲲 𩜠 㒼 氽 𤸻 𧕴 +𢺋 𢈈 𪙛 𨳍 𠹺 𠰴 𦠜 羓 𡃏 𢠃 𢤹 㗻 𥇣 𠺌 𠾍 𠺪 +㾓 𠼰 𠵇 𡅏 𠹌 𠺫 𠮩 𠵈 𡃀 𡄽 㿹 𢚖 搲 𠾭 +𣏴 𧘹 𢯎 𠵾 𠵿 𢱑 𢱕 㨘 𠺘 𡃇 𠼮 𪘲 𦭐 𨳒 𨶙 𨳊 +閪 哌 苄 喹 𩻃 鰦 骶 𧝞 𢷮 煀 腭 胬 尜 𦕲 脴 +㞗 卟 𨂽 醶 𠻺 𠸏 𠹷 𠻻 㗝 𤷫 㘉 𠳖 嚯 𢞵 𡃉 𠸐 +𠹸 𡁸 𡅈 𨈇 𡑕 𠹹 𤹐 𢶤 婔 𡀝 𡀞 𡃵 𡃶 垜 𠸑 + 𧚔 𨋍 𠾵 𠹻 𥅾 㜃 𠾶 𡆀 𥋘 𪊽 𤧚 𡠺 𤅷 𨉼 墙 +剨 㘚 𥜽 箲 孨 䠀 䬬 鼧 䧧 鰟 鮍 𥭴 𣄽 嗻 㗲 嚉 +丨 夂 𡯁 屮 靑 𠂆 乛 亻 㔾 尣 彑 忄 㣺 扌 攵 歺 +氵 氺 灬 爫 丬 犭 𤣩 罒 礻 糹 罓 𦉪 㓁 𦍋 耂 +肀 𦘒 𦥑 卝 衤 见 𧢲 讠 贝 钅 镸 长 门 𨸏 韦 页 +风 飞 饣 𩠐 鱼 鸟 黄 歯 龜 丷 𠂇 阝 户 钢 +倻 淾 𩱳 龦 㷉 袏 𤅎 灷 峵 䬠 𥇍 㕙 𥴰 愢 𨨲 辧 +釶 熑 朙 玺 𣊁 𪄇 㲋 𡦀 䬐 磤 琂 冮 𨜏 䀉 橣 𪊺 +䈣 蘏 稪 𩥇 𨫪 靕 灍 匤 𢁾 鏴 盙 𨧣 龧 矝 亣 +俰 傼 丯 众 龨 吴 綋 墒 壐 𡶶 庒 庙 忂 𢜒 斋 + 𣏹 椙 橃 𣱣 泿 爀 𤔅 玌 㻛 𤨓 嬕 璹 讃 𥲤 +𥚕 窓 篬 糃 繬 苸 薗 龩 袐 龪 躹 龫 迏 蕟 駠 鈡 +龬 𨶹 𡐿 䁱 䊢 娚 顨 杫 䉶 圽 藖 𤥻 +芿 𧄍 䲁 𦵴 嵻 𦬕 𦾾 龭 龮 宖 龯 繛 +崾 嵈 嵖 㷼 㠏 嶤 嶹 㠠 㠸 幂 庽 弥 徃 㤈 㤔 㤿 +㥍 惗 愽 峥 㦉 憷 憹 懏 㦸 戬 抐 拥 挘 㧸 嚱 + 㨃 揢 揻 搇 摚 㩋 擀 崕 嘡 龟 㪗 斆 㪽 旿 晓 +㫲 暒 㬢 朖 㭂 枤 栀 㭘 桊 梄 㭲 㭱 㭻 椉 楃 牜 +楤 榟 榅 㮼 槖 㯝 橥 橴 橱 檂 㯬 檙 㯲 檫 檵 櫔 +櫶 殁 毁 毪 汵 沪 㳋 洂 洆 洦 涁 㳯 涤 涱 渕 渘 +温 溆 𨧀 溻 滢 滚 齿 滨 滩 漤 漴 㵆 𣽁 澁 澾 㵪 +㵵 熷 岙 㶊 瀬 㶑 灐 灔 灯 灿 炉 𠌥 䏁 㗱 𠻘 +𣻗 垾 𦻓 焾 𥟠 㙎 榢 𨯩 孴 穉 𥣡 𩓙 穥 穽 𥦬 窻 +窰 竂 竃 燑 𦒍 䇊 竚 竝 竪 䇯 咲 𥰁 笋 筕 笩 𥌎 +𥳾 箢 筯 莜 𥮴 𦱿 篐 萡 箒 𥴠 㶭 𥱥 蒒 篺 +簵 𥳁 籄 粃 𤢂 粦 晽 𤕸 糉 糇 糦 籴 糳 糵 + 繧 䔝 𦹄 絝 𦻖 璍 綉 綫 焵 綳 𤁗 𦀩 緤 㴓 +緵 𡟹 緥 𨍭 𦄡 𦅚 繮 纒 䌫 鑬 縧 罀 罁 罇 礶 +𦋐 駡 羗 𦍑 羣 𡙡 𠁨 䕜 𣝦 䔃 𨌺 翺 𦒉 耈 耝 + 耯 𪂇 𦳃 耻 耼 聡 𢜔 䦉 𦘦 𣷣 𦛨 朥 肧 𨩈 脇 +脚 墰 𢛶 汿 𦒘 𤾸 擧 𡒊 舘 𡡞 橓 𤩥 𤪕 䑺 舩 𠬍 +𦩒 𣵾 俹 𡓽 蓢 荢 𦬊 𤦧 𣔰 𡝳 𣷸 芪 椛 芳 䇛 +蕋 苐 茚 𠸖 𡞴 㛁 𣅽 𣕚 艻 苢 茘 𣺋 𦶣 𦬅 𦮗 𣗎 +㶿 茝 嗬 莅 䔋 𦶥 莬 菓 㑾 𦻔 橗 蕚 㒖 𦹂 𢻯 +葘 𥯤 葱 㷓 䓤 檧 葊 𣲵 祘 𦮖 𦹷 𦹃 蓞 莑 +䒠 蒓 蓤 𥲑 䉀 𥳀 䕃 蔴 嫲 𦺙 䔧 蕳 䔖 枿 蘖 + 𨘥 𨘻 藁 𧂈 蘂 𡖂 𧃍 䕫 䕪 蘨 㙈 𡢢 号 𧎚 虾 +蝱 𪃸 蟮 𢰧 螱 蟚 蠏 噡 虬 桖 䘏 衅 衆 𧗠 𣶹 𧗤 +衞 袜 䙛 袴 袵 揁 装 睷 𧜏 覇 覊 覧 覼 𨨥 +觧 𧤤 𧪽 誜 瞓 釾 誐 𧩙 竩 𧬺 𣾏 䜓 𧬸 煼 謌 謟 +𥐰 𥕥 謿 譌 譍 誩 𤩺 讐 讛 誯 𡛟 䘕 衏 貛 𧵔 𧶏 +貫 㜥 𧵓 賖 𧶘 𧶽 贒 贃 𡤐 賛 灜 贑 𤳉 㻐 +趩 𨀂 𡀔 𤦊 㭼 𨆼 𧄌 竧 躭 躶 軃 鋔 輙 輭 𨍥 𨐒 +辥 錃 𪊟 𠩐 辳 䤪 𨧞 𨔽 𣶻 廸 𣉢 迹 𪀔 𨚼 𨔁 𢌥 +㦀 𦻗 逷 𨔼 𧪾 遡 𨕬 𨘋 邨 𨜓 郄 𨛦 邮 酧 㫰 +醩 釄 粬 𨤳 𡺉 鈎 沟 鉁 鉢 𥖹 𨫆 𣲛 𨬌 𥗛 + 𠴱 錬 鍫 𨫡 𨯫 炏 嫃 𨫢 𨫥 䥥 鉄 𨯬 𨰹 𨯿 鍳 +鑛 躼 閅 閦 鐦 閠 濶 䊹 𢙺 𨛘 𡉼 𣸮 䧟 氜 陻 隖 +䅬 隣 𦻕 懚 隶 磵 𨫠 隽 双 䦡 𦲸 𠉴 𦐐 𩂯 𩃥 𤫑 +𡤕 𣌊 霱 虂 霶 䨏 䔽 䖅 𤫩 灵 孁 霛 𩇕 靗 孊 +𩇫 靟 鐥 僐 𣂷 𣂼 鞉 鞟 鞱 鞾 韀 韒 韠 𥑬 韮 琜 +𩐳 韵 𩐝 𧥺 䫑 頴 頳 顋 顦 㬎 𧅵 㵑 𠘰 𤅜 +𥜆 飊 颷 飈 飇 䫿 𦴧 𡛓 喰 飡 飦 飬 鍸 餹 𤨩 䭲 +𩡗 𩤅 駵 騌 騻 騐 驘 𥜥 㛄 𩂱 𩯕 髠 髢 𩬅 髴 䰎 +鬔 鬭 𨘀 倴 鬴 𦦨 㣃 𣁽 魐 魀 𩴾 婅 𡡣 鮎 𤉋 鰂 +鯿 鰌 𩹨 鷔 𩾷 𪆒 𪆫 𪃡 𪄣 𪇟 鵾 鶃 𪄴 鸎 梈 + 鷄 𢅛 𪆓 𪈠 𡤻 𪈳 鴹 𪂹 𪊴 麐 麕 麞 麢 䴴 麪 +麯 𤍤 黁 㭠 㧥 㴝 伲 㞾 𨰫 鼂 鼈 䮖 鐤 𦶢 鼗 +鼹 嚟 嚊 齅 馸 𩂋 韲 葿 齢 齩 竜 龎 爖 䮾 𤥵 𤦻 +煷 𤧸 𤍈 𤩑 玞 𨯚 𡣺 禟 𨥾 𨸶 鍩 鏳 𨩄 鋬 鎁 鏋 +𨥬 𤒹 爗 㻫 睲 穃 烐 𤑳 𤏸 煾 𡟯 炣 𡢾 𣖙 㻇 𡢅 +𥐯 𡟸 㜢 𡛻 𡠹 㛡 𡝴 𡣑 𥽋 㜣 𡛀 坛 𤨥 𡏾 𡊨 +𡏆 𡒶 蔃 𣚦 葕 𤦔 𧅥 𣸱 𥕜 𣻻 𧁒 䓴 𣛮 𩦝 𦼦 +柹 㜳 㰕 㷧 塬 𡤢 栐 䁗 𣜿 𤃡 𤂋 𤄏 𦰡 哋 嚞 𦚱 +嚒 𠿟 𠮨 𠸍 鏆 𨬓 鎜 仸 儫 㠙 𤐶 亼 𠑥 𠍿 佋 侊 +𥙑 婨 𠆫 𠏋 㦙 𠌊 𠐔 㐵 伩 𠋀 𨺳 𠉵 諚 𠈌 亘 + 働 儍 侢 伃 𤨎 𣺊 佂 倮 偬 傁 俌 俥 偘 僼 + 湶 𣖕 𣸹 𣺿 浲 𡢄 𣺉 冨 凃 𠗠 䓝 𠒣 𠒒 +𠒑 赺 𨪜 𠜎 剙 劤 𠡳 勡 䙺 熌 𤎌 𠰠 𤦬 𡃤 槑 +𠸝 㻞 璙 琔 瑖 玘 䮎 𤪼 𤂍 叐 㖄 爏 𤃉 喴 𠍅 +响 𠯆 圝 鉝 雴 鍦 埝 垍 坿 㘾 壋 媙 𨩆 𡛺 𡝯 𡜐 +娬 妸 銏 婾 嫏 娒 𥥆 𡧳 𡡡 𤊕 㛵 洅 瑃 娡 𥺃 +媁 𨯗 𠐓 鏠 璌 𡌃 焅 䥲 鐈 𨧻 鎽 㞠 尞 岞 幞 幈 +𡦖 𡥼 𣫮 廍 孏 𡤃 𡤄 㜁 𡢠 㛝 𡛾 㛓 脪 𨩇 𡶺 𣑲 +𨦨 弌 弎 𡤧 𡞫 婫 𡜻 孄 蘔 𧗽 衠 恾 𢡠 𢘫 忛 㺸 +𢖯 𢖾 𩂈 𦽳 懀 𠀾 𠁆 𢘛 憙 憘 恵 𢲛 𢴇 𤛔 𩅍 + 摱 𤙥 𢭪 㨩 𢬢 𣑐 𩣪 𢹸 挷 𪑛 撶 挱 揑 𤧣 𢵧 +护 𢲡 搻 敫 楲 㯴 𣂎 𣊭 𤦉 𣊫 唍 𣋠 𡣙 𩐿 曎 𣊉 +𣆳 㫠 䆐 𥖄 𨬢 𥖏 𡛼 𥕛 𥐥 磮 𣄃 𡠪 𣈴 㑤 𣈏 𣆂 +𤋉 暎 𦴤 晫 䮓 昰 𧡰 𡷫 晣 𣋒 𣋡 昞 𥡲 㣑 𣠺 𣞼 +㮙 𣞢 𣏾 瓐 㮖 枏 𤘪 梶 栞 㯄 檾 㡣 𣟕 𤒇 樳 橒 +櫉 欅 𡤒 攑 梘 橌 㯗 橺 歗 𣿀 𣲚 鎠 鋲 𨯪 𨫋 +銉 𨀞 𨧜 鑧 涥 漋 𤧬 𣽿 㶏 渄 𤀼 娽 渊 塇 洤 +硂 焻 𤌚 𤉶 烱 牐 犇 犔 𤞏 𤜥 兹 𤪤 𠗫 瑺 𣻸 𣙟 +𤩊 𤤗 𥿡 㼆 㺱 𤫟 𨰣 𣼵 悧 㻳 瓌 琼 鎇 琷 䒟 𦷪 +䕑 疃 㽣 𤳙 𤴆 㽘 畕 癳 𪗆 㬙 瑨 𨫌 𤦫 𤦎 㫻 + 㷍 𤩎 㻿 𤧅 𤣳 釺 圲 鍂 𨫣 𡡤 僟 𥈡 𥇧 睸 𣈲 +眎 眏 睻 𤚗 𣞁 㩞 𤣰 琸 璛 㺿 𤪺 𤫇 䃈 𤪖 𦆮 錇 +𥖁 砞 碍 碈 磒 珐 祙 𧝁 𥛣 䄎 蒖 禥 樭 𣻺 稺 +秴 䅮 𡛦 䄲 鈵 秱 𠵌 𤦌 𠊙 𣶺 𡝮 㖗 啫 㕰 㚪 𠇔 +𠰍 竢 婙 𢛵 𥪯 𥪜 娍 𠉛 磰 娪 𥯆 竾 䇹 籝 籭 䈑 +𥮳 𥺼 𥺦 糍 𤧹 𡞰 粎 籼 粮 檲 緜 縇 緓 罎 𦉡 +𦅜 𧭈 綗 𥺂 䉪 𦭵 𠤖 柖 𠁎 𣗏 埄 𦐒 𦏸 𤥢 翝 笧 +𠠬 𥫩 𥵃 笌 𥸎 駦 虅 驣 樜 𣐿 㧢 𤧷 𦖭 騟 𦖠 蒀 +𧄧 𦳑 䓪 脷 䐂 胆 脉 腂 𦞴 飃 𦩂 艢 艥 𦩑 葓 𦶧 +蘐 𧈛 媆 䅿 𡡀 嬫 𡢡 嫤 𡣘 蚠 蜨 𣶏 蠭 𧐢 娂 + 衮 佅 袇 袿 裦 襥 襍 𥚃 襔 𧞅 𧞄 𨯵 𨯙 𨮜 𨧹 +㺭 蒣 䛵 䛏 㟲 訽 訜 𩑈 彍 鈫 𤊄 旔 焩 烄 𡡅 鵭 +貟 賩 𧷜 妚 矃 姰 䍮 㛔 踪 躧 𤰉 輰 轊 䋴 汘 澻 +𢌡 䢛 潹 溋 𡟚 鯩 㚵 𤤯 邻 啱 䤆 醻 鐄 𨩋 䁢 +𨫼 鐧 𨰝 𨰻 蓥 訫 閙 閧 閗 閖 𨴴 瑅 㻂 𤣿 𤩂 𤏪 +㻧 𣈥 随 𨻧 𨹦 𨹥 㻌 𤧭 𤩸 𣿮 琒 瑫 㻼 靁 𩂰 +桇 䨝 𩂓 𥟟 鍨 𨦉 𨰦 𨬯 𦎾 銺 嬑 譩 䤼 珹 𤈛 +鞛 靱 餸 𠼦 巁 𨯅 𤪲 頟 𩓚 鋶 𩗗 釥 䓀 𨭐 𤩧 𨭤 +飜 𨩅 㼀 鈪 䤥 萔 餻 饍 𧬆 㷽 馛 䭯 馪 驜 𨭥 𥣈 +檏 騡 嫾 騯 𩣱 䮐 𩥈 馼 䮽 䮗 鍽 塲 𡌂 堢 𤦸 + 𡓨 硄 𢜟 𣶸 棅 㵽 鑘 㤧 慐 𢞁 𢥫 愇 鱏 鱓 鱻 +鰵 鰐 魿 鯏 𩸭 鮟 𪇵 𪃾 鴡 䲮 𤄄 鸘 䲰 鴌 𪆴 𪃭 +𪃳 𩤯 鶥 蒽 𦸒 𦿟 𦮂 藼 䔳 𦶤 𦺄 𦷰 萠 藮 𦸀 𣟗 +𦁤 秢 𣖜 𣙀 䤭 𤧞 㵢 鏛 銾 鍈 𠊿 碹 鉷 鑍 俤 㑀 +遤 𥕝 砽 硔 碶 硋 𡝗 𣇉 𤥁 㚚 佲 濚 濙 瀞 吔 +𤆵 垻 壳 垊 鴖 埗 焴 㒯 𤆬 燫 𦱀 𤾗 𡞵 𨩉 +愌 嫎 娋 䊼 𤒈 㜬 䭻 𨧼 鎻 鎸 𡣖 𠼝 葲 𦳀 𡐓 𤋺 +𢰦 𤏁 妔 𣶷 𦝁 綨 𦅛 𦂤 𤦹 𤦋 𨧺 鋥 珢 㻩 璴 𨭣 +𡢟 㻡 𤪳 櫘 珳 珻 㻖 𤨾 𤪔 𡟙 𤩦 𠎧 𡐤 𤧥 瑈 𤤖 +炥 𤥶 銄 珦 鍟 𠓾 錱 𨫎 𨨖 鎆 𨯧 𥗕 䤵 𨪂 煫 + 𤥃 𠳿 嚤 𠘚 𠯫 𠲸 唂 秄 𡟺 緾 𡛂 𤩐 𡡒 䔮 鐁 +㜊 𨫀 𤦭 妰 𡢿 𡢃 𧒄 媡 㛢 𣵛 㚰 鉟 婹 𨪁 𡡢 鍴 +㳍 𠪴 䪖 㦊 僴 㵩 㵌 𡎜 煵 䋻 𨈘 渏 𩃤 䓫 浗 𧹏 +灧 沯 㳖 𣿭 𣸭 渂 漌 㵯 𠏵 畑 㚼 㓈 䚀 㻚 䡱 姄 +鉮 䤾 轁 𨰜 𦯀 堒 埈 㛖 𡑒 烾 𤍢 𤩱 𢿣 𡊰 𢎽 梹 +楧 𡎘 𣓥 𧯴 𣛟 𨪃 𣟖 𣏺 𤲟 樚 𣚭 𦲷 萾 䓟 䓎 +𦴦 𦵑 𦲂 𦿞 漗 𧄉 茽 𡜺 菭 𦲀 𧁓 𡟛 妉 媂 𡞳 婡 +婱 𡤅 𤇼 㜭 姯 𡜼 㛇 熎 鎐 暚 𤊥 婮 娫 𤊓 樫 𣻹 +𧜶 𤑛 𤋊 焝 𤉙 𨧡 侰 𦴨 峂 𤓎 𧹍 𤎽 樌 𤉖 𡌄 炦 +焳 𤏩 㶥 泟 勇 𤩏 繥 姫 崯 㷳 彜 𤩝 𡟟 綤 萦 + 咅 𣫺 𣌀 𠈔 坾 𠣕 𠘙 㿥 𡾞 𪊶 瀃 𩅛 嵰 玏 糓 +𨩙 𩐠 俈 翧 狍 猐 𧫴 猸 猹 𥛶 獁 獈 㺩 𧬘 遬 燵 +𤣲 珡 臶 㻊 県 㻑 沢 国 琙 琞 琟 㻢 㻰 㻴 㻺 瓓 +㼎 㽓 畂 畭 畲 疍 㽼 痈 痜 㿀 癍 㿗 癴 㿜 発 𤽜 +熈 嘣 覀 塩 䀝 睃 䀹 条 䁅 㗛 瞘 䁪 䁯 属 瞾 矋 +売 砘 点 砜 䂨 砹 硇 硑 硦 葈 𥔵 礳 栃 礲 䄃 +䄉 禑 禙 辻 稆 込 䅧 窑 䆲 窼 艹 䇄 竏 竛 䇏 両 +筢 筬 筻 簒 簛 䉠 䉺 类 粜 䊌 粸 䊔 糭 输 烀 𠳏 +総 緔 緐 緽 羮 羴 犟 䎗 耠 耥 笹 耮 耱 联 㷌 垴 +炠 肷 胩 䏭 脌 猪 脎 脒 畠 脔 䐁 㬹 腖 腙 腚 + 䐓 堺 腼 膄 䐥 膓 䐭 膥 埯 臁 臤 艔 䒏 芦 艶 +苊 苘 苿 䒰 荗 险 榊 萅 烵 葤 惣 蒈 䔄 蒾 蓡 蓸 +蔐 蔸 蕒 䔻 蕯 蕰 藠 䕷 虲 蚒 蚲 蛯 际 螋 䘆 䘗 +袮 裿 褤 襇 覑 𧥧 訩 訸 誔 誴 豑 賔 賲 贜 䞘 塟 +跃 䟭 仮 踺 嗘 坔 蹱 嗵 躰 䠷 軎 転 軤 軭 軲 辷 +迁 迊 迌 逳 駄 䢭 飠 鈓 䤞 鈨 鉘 鉫 銱 銮 銿 +鋣 鋫 鋳 鋴 鋽 鍃 鎄 鎭 䥅 䥑 麿 鐗 匁 鐝 鐭 鐾 +䥪 鑔 鑹 锭 関 䦧 间 阳 䧥 枠 䨤 靀 䨵 鞲 韂 噔 +䫤 惨 颹 䬙 飱 塄 餎 餙 冴 餜 餷 饂 饝 饢 䭰 駅 +䮝 騼 鬏 窃 魩 鮁 鯝 鯱 鯴 䱭 鰠 㝯 𡯂 鵉 鰺 + 黾 噐 鶓 鶽 鷀 鷼 银 辶 鹻 麬 麱 麽 黆 铜 黢 +黱 黸 竈 齄 𠂔 𠊷 𠎠 椚 铃 妬 𠓗 塀 铁 㞹 𠗕 𠘕 +𠙶 𡚺 块 煳 𠫂 𠫍 𠮿 呪 吆 𠯋 咞 𠯻 𠰻 𠱓 𠱥 𠱼 +惧 𠲍 噺 𠲵 𠳝 𠳭 𠵯 𠶲 𠷈 楕 鰯 螥 𠸄 𠸎 𠻗 𠾐 +𠼭 𠹳 尠 𠾼 帋 𡁜 𡁏 𡁶 朞 𡁻 𡂈 𡂖 㙇 𡂿 𡃓 𡄯 +𡄻 卤 蒭 𡋣 𡍵 𡌶 讁 𡕷 𡘙 𡟃 𡟇 乸 炻 𡠭 𡥪 +𡨭 𡩅 𡰪 𡱰 𡲬 𡻈 拃 𡻕 𡼕 熘 桕 𢁅 槩 㛈 𢉼 𢏗 +𢏺 𢜪 𢡱 𢥏 苽 𢥧 𢦓 𢫕 覥 𢫨 辠 𢬎 鞸 𢬿 顇 骽 +𢱌 𢲈 𢲷 𥯨 𢴈 𢴒 𢶷 𢶕 𢹂 𢽴 𢿌 𣀳 𣁦 𣌟 𣏞 +徱 晈 暿 𧩹 𣕧 𣗳 𤦺 𣘚 𣜖 𠍆 墵 朎 + 椘 𣪧 𧙗 𥿢 𣸑 𣺹 𧗾 𢂚 䣐 䪸 𤄙 𨪚 𤋮 𤌍 𤀻 +𤌴 𤎖 𤩅 𠗊 凒 𠘑 妟 𡺨 㮾 𣳿 𤐄 𤓖 垈 𤙴 㦛 𤜯 +𨗨 𩧉 㝢 𢇃 譞 𨭎 𤠒 𤣻 𤨕 爉 𤫀 𠱸 奥 𤺥 𤾆 +𠝹 軚 𥀬 劏 圿 煱 𥊙 𥐙 𣽊 𤪧 喼 𥑆 𥑮 𦭒 㑳 +𥔿 𧘲 𥕞 䜘 𥕢 𥕦 𥟇 𤤿 𥡝 偦 㓻 𣏌 𥤃 䝼 𨥈 +𥪮 𥮉 𥰆 𡶐 垡 煑 𦄂 𧰒 遖 𦆲 𤾚 譢 𦐂 𦑊 +嵛 𦯷 𦒄 𡤜 諪 𤧶 𦒈 𣿯 𦔒 䯀 𦖿 𦚵 𢜛 鑥 𥟡 +憕 娧 晉 嚹 𤔡 𦛼 乪 𤤴 陖 涏 𦲽 㘘 襷 𦞙 𦡮 +𦐑 𦡞 𦣇 筂 𩃀 𠨑 𦤦 𦤹 穅 𦧺 騦 𦨭 㙟 +𦑩 𠀡 禃 𦨴 𦭛 崬 𣔙 𦮝 䛐 𦲤 画 补 𦶮 墶 + 㜜 𢖍 𧁋 𧇍 㱔 𧊀 𧊅 銁 𢅺 𧊋 錰 𧋦 𤧐 氹 钟 +𧑐 𠻸 蠧 裵 𢤦 𨑳 𡞱 溸 𤨪 𡠠 㦤 㚹 䔿 暶 +𩲭 𩢤 襃 𧟌 𧡘 囖 䃟 𡘊 㦡 𣜯 𨃨 𡏅 熭 荦 𧧝 𩆨 + 䲷 𧂯 𨦫 𧧽 𧨊 𧬋 𧵦 𤅺 筃 祾 𨀉 澵 𪋟 樃 𨌘 +厢 𦸇 鎿 栶 靝 𨅯 𨀣 𦦵 𡏭 𣈯 𨁈 嶅 𨰰 𨂃 圕 頣 +𨥉 嶫 𤦈 斾 槕 叒 𤪥 𣾁 㰑 朶 𨂐 𨃴 𨄮 𡾡 𨅏 +𨆉 𨆯 𨈚 𨌆 𨌯 𨎊 㗊 𨑨 𨚪 䣺 揦 𨥖 砈 鉕 𨦸 䏲 +𨧧 䏟 𨧨 𨭆 𨯔 姸 𨰉 𨿅 𩃬 𩄐 𩄼 㷷 𩅞 𤫊 +运 犏 嚋 𩓧 𩗩 𩖰 𩖸 𩜲 𩣑 𩥉 𩥪 𩧃 𩨨 𩬎 𩵚 𩶛 +纟 𩻸 𩼣 䲤 镇 𪊓 熢 𪋿 䶑 递 𪗋 䶜 𠲜 达 嗁 + 辺 𢒰 边 𤪓 䔉 繿 潖 檱 仪 㓤 𨬬 𧢝 㜺 躀 𡟵 +𨀤 𨭬 𨮙 𧨾 𦚯 㷫 𧙕 𣲷 𥘵 𥥖 亚 𥺁 𦉘 嚿 𠹭 踎 +孭 𣺈 𤲞 揞 𡟶 𡡻 攰 嘭 𥱊 吚 𥌑 㷆 𩶘 䱽 嘢 +嘞 罉 𥻘 奵 𣵀 蝰 东 𠿪 𠵉 𣚺 脗 鵞 贘 瘻 鱅 癎 +瞹 鍅 吲 腈 苷 嘥 脲 萘 肽 嗪 祢 噃 吖 𠺝 㗎 嘅 +嗱 曱 𨋢 㘭 甴 嗰 喺 咗 啲 𠱁 𠲖 廐 𥅈 𠹶 𢱢 +𠺢 麫 絚 嗞 𡁵 抝 靭 咔 賍 燶 酶 揼 掹 揾 啩 𢭃 +鱲 𢺳 冚 㓟 𠶧 冧 呍 唞 唓 癦 踭 𦢊 疱 肶 蠄 螆 +裇 膶 萜 𡃁 䓬 猄 𤜆 宐 茋 𦢓 噻 𢛴 𧴯 𤆣 𧵳 𦻐 +𧊶 酰 𡇙 鈈 𣳼 𪚩 𠺬 𠻹 牦 𡲢 䝎 𤿂 𧿹 𠿫 䃺 + 鱝 攟 𢶠 䣳 𤟠 𩵼 𠿬 𠸊 𧖣 𠿭 𦁈 𡆇 熣 +纎 鵐 业 丄 㕷 嬍 沲 卧 㚬 㧜 卽 㚥 𤘘 墚 𤭮 舭 +呋 垪 𥪕 𠥹 㩒 𢑥 獴 𩺬 䴉 鯭 𣳾 𩼰 䱛 𤾩 𩖞 +𩿞 葜 𣶶 𧊲 𦞳 𣜠 挮 紥 𣻷 𣸬 㨪 逈 勌 㹴 㙺 䗩 +𠒎 癀 嫰 𠺶 硺 𧼮 墧 䂿 噼 鮋 嵴 癔 𪐴 麅 䳡 +㟻 愙 𣃚 𤏲 噝 𡊩 垧 𤥣 𩸆 刴 𧂮 㖭 鵼 +籖 鬹 埞 𡝬 屓 擓 𩓐 𦌵 𧅤 蚭 𠴨 𦴢 𤫢 𠵱 凾 +𡼏 嶎 霃 𡷑 麁 遌 笟 鬂 峑 箣 扨 挵 髿 篏 鬪 籾 + 籂 粆 鰕 篼 鬉 鰛 𤤾 齚 啳 寃 俽 麘 俲 剠 +㸆 勑 坧 偖 妷 帒 韈 鶫 轜 呩 鞴 饀 鞺 匬 愰 + 椬 叚 鰊 鴂 䰻 陁 榀 傦 畆 𡝭 駚 剳 酙 隁 +酜 酑 𨺗 捿 𦴣 櫊 嘑 醎 畺 抅 𠏼 獏 籰 𥰡 𣳽 + 𤤙 盖 鮝 个 𠳔 莾 衂 届 槀 坺 刟 巵 从 +氱 𠇲 伹 咜 哚 劚 趂 㗾 㗳 歒 酼 龥 鮗 頮 +颴 骺 麨 麄 煺 笔 毺 蠘 罸 嘠 𪙊 蹷 齓 +跔 蹏 鸜 踁 抂 𨍽 踨 蹵 竓 𤩷 稾 磘 泪 詧 瘇 +𨩚 鼦 泎 蟖 痃 𪊲 硓 咢 贌 狢 獱 謭 猂 瓱 賫 𤪻 +蘯 徺 袠 䒷 𡠻 𦸅 詾 𢔛 惽 癧 髗 鵄 鍮 +鮏 蟵 賷 猬 霡 鮰 㗖 犲 䰇 籑 饊 𦅙 慙 䰄 +麖 慽 坟 慯 抦 戹 㩜 懢 厪 𣏵 捤 栂 㗒 + 嵗 𨯂 迚 𨸹 僙 𡵆 礆 匲 阸 𠼻 䁥 矾 +糂 𥼚 糚 稭 聦 聣 絍 甅 瓲 覔 舚 朌 聢 𧒆 聛 瓰 +脃 眤 覉 𦟌 畓 𦻑 螩 蟎 臈 螌 詉 貭 譃 眫 瓸 蓚 +㘵 榲 趦 覩 涹 蟁 𤀑 瓧 㷛 煶 悤 憜 㳑 +恷 罱 𨬭 惩 䭾 删 㰘 𣳇 𥻗 𧙖 𥔱 𡥄 𡋾 𩤃 +𦷜 𧂭 峁 𦆭 𨨏 𣙷 𠃮 𦡆 𤼎 䕢 嬟 𦍌 齐 麦 𦉫 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.IRREVERSIBLE.TXT new file mode 100644 index 0000000..701b01a --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.IRREVERSIBLE.TXT @@ -0,0 +1,8 @@ +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.TXT new file mode 100644 index 0000000..ff97852 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2001.TXT @@ -0,0 +1,18400 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8840 0x31C0 +0x8841 0x31C1 +0x8842 0x31C2 +0x8843 0x31C3 +0x8844 0x31C4 +0x8845 0x2010C +0x8846 0x31C5 +0x8847 0x200D1 +0x8848 0x200CD +0x8849 0x31C6 +0x884A 0x31C7 +0x884B 0x200CB +0x884C 0x21FE8 +0x884D 0x31C8 +0x884E 0x200CA +0x884F 0x31C9 +0x8850 0x31CA +0x8851 0x31CB +0x8852 0x31CC +0x8853 0x2010E +0x8854 0x31CD +0x8855 0x31CE +0x8856 0x0100 +0x8857 0x00C1 +0x8858 0x01CD +0x8859 0x00C0 +0x885A 0x0112 +0x885B 0x00C9 +0x885C 0x011A +0x885D 0x00C8 +0x885E 0x014C +0x885F 0x00D3 +0x8860 0x01D1 +0x8861 0x00D2 +0x8862 0x00CA 0x0304 +0x8863 0x1EBE +0x8864 0x00CA 0x030C +0x8865 0x1EC0 +0x8866 0x00CA +0x8867 0x0101 +0x8868 0x00E1 +0x8869 0x01CE +0x886A 0x00E0 +0x886B 0x0251 +0x886C 0x0113 +0x886D 0x00E9 +0x886E 0x011B +0x886F 0x00E8 +0x8870 0x012B +0x8871 0x00ED +0x8872 0x01D0 +0x8873 0x00EC +0x8874 0x014D +0x8875 0x00F3 +0x8876 0x01D2 +0x8877 0x00F2 +0x8878 0x016B +0x8879 0x00FA +0x887A 0x01D4 +0x887B 0x00F9 +0x887C 0x01D6 +0x887D 0x01D8 +0x887E 0x01DA +0x88A1 0x01DC +0x88A2 0x00FC +0x88A3 0x00EA 0x0304 +0x88A4 0x1EBF +0x88A5 0x00EA 0x030C +0x88A6 0x1EC1 +0x88A7 0x00EA +0x88A8 0x0261 +0x88A9 0x23DA +0x88AA 0x23DB +0x8940 0x2A3A9 +0x8941 0x21145 +0x8943 0x650A +0x8946 0x4E3D +0x8947 0x6EDD +0x8948 0x9D4E +0x8949 0x91DF +0x894C 0x27735 +0x894D 0x6491 +0x894E 0x4F1A +0x894F 0x4F28 +0x8950 0x4FA8 +0x8951 0x5156 +0x8952 0x5174 +0x8953 0x519C +0x8954 0x51E4 +0x8955 0x52A1 +0x8956 0x52A8 +0x8957 0x533B +0x8958 0x534E +0x8959 0x53D1 +0x895A 0x53D8 +0x895B 0x56E2 +0x895C 0x58F0 +0x895D 0x5904 +0x895E 0x5907 +0x895F 0x5932 +0x8960 0x5934 +0x8961 0x5B66 +0x8962 0x5B9E +0x8963 0x5B9F +0x8964 0x5C9A +0x8965 0x5E86 +0x8966 0x603B +0x8967 0x6589 +0x8968 0x67FE +0x8969 0x6804 +0x896A 0x6865 +0x896B 0x6D4E +0x896C 0x70BC +0x896D 0x7535 +0x896E 0x7EA4 +0x896F 0x7EAC +0x8970 0x7EBA +0x8971 0x7EC7 +0x8972 0x7ECF +0x8973 0x7EDF +0x8974 0x7F06 +0x8975 0x7F37 +0x8976 0x827A +0x8977 0x82CF +0x8978 0x836F +0x8979 0x89C6 +0x897A 0x8BBE +0x897B 0x8BE2 +0x897C 0x8F66 +0x897D 0x8F67 +0x897E 0x8F6E +0x89A1 0x7411 +0x89A2 0x7CFC +0x89A3 0x7DCD +0x89A4 0x6946 +0x89A5 0x7AC9 +0x89A6 0x5227 +0x89AB 0x918C +0x89AC 0x78B8 +0x89AD 0x915E +0x89AE 0x80BC +0x89B0 0x8D0B +0x89B1 0x80F6 +0x89B2 0x209E7 +0x89B5 0x809F +0x89B6 0x9EC7 +0x89B7 0x4CCD +0x89B8 0x9DC9 +0x89B9 0x9E0C +0x89BA 0x4C3E +0x89BB 0x29DF6 +0x89BC 0x2700E +0x89BD 0x9E0A +0x89BE 0x2A133 +0x89BF 0x35C1 +0x89C1 0x6E9A +0x89C2 0x823E +0x89C3 0x7519 +0x89C5 0x4911 +0x89C6 0x9A6C +0x89C7 0x9A8F +0x89C8 0x9F99 +0x89C9 0x7987 +0x89CA 0x2846C +0x89CB 0x21DCA +0x89CC 0x205D0 +0x89CD 0x22AE6 +0x89CE 0x4E24 +0x89CF 0x4E81 +0x89D0 0x4E80 +0x89D1 0x4E87 +0x89D2 0x4EBF +0x89D3 0x4EEB +0x89D4 0x4F37 +0x89D5 0x344C +0x89D6 0x4FBD +0x89D7 0x3E48 +0x89D8 0x5003 +0x89D9 0x5088 +0x89DA 0x347D +0x89DB 0x3493 +0x89DC 0x34A5 +0x89DD 0x5186 +0x89DE 0x5905 +0x89DF 0x51DB +0x89E0 0x51FC +0x89E1 0x5205 +0x89E2 0x4E89 +0x89E3 0x5279 +0x89E4 0x5290 +0x89E5 0x5327 +0x89E6 0x35C7 +0x89E7 0x53A9 +0x89E8 0x3551 +0x89E9 0x53B0 +0x89EA 0x3553 +0x89EB 0x53C2 +0x89EC 0x5423 +0x89ED 0x356D +0x89EE 0x3572 +0x89EF 0x3681 +0x89F0 0x5493 +0x89F1 0x54A3 +0x89F2 0x54B4 +0x89F3 0x54B9 +0x89F4 0x54D0 +0x89F5 0x54EF +0x89F6 0x5518 +0x89F7 0x5523 +0x89F8 0x5528 +0x89F9 0x3598 +0x89FA 0x553F +0x89FB 0x35A5 +0x89FC 0x35BF +0x89FD 0x55D7 +0x89FE 0x35C5 +0x8A40 0x27D84 +0x8A41 0x5525 +0x8A43 0x20C42 +0x8A44 0x20D15 +0x8A45 0x2512B +0x8A46 0x5590 +0x8A47 0x22CC6 +0x8A48 0x39EC +0x8A49 0x20341 +0x8A4A 0x8E46 +0x8A4B 0x24DB8 +0x8A4C 0x294E5 +0x8A4D 0x4053 +0x8A4E 0x280BE +0x8A4F 0x777A +0x8A50 0x22C38 +0x8A51 0x3A34 +0x8A52 0x47D5 +0x8A53 0x2815D +0x8A54 0x269F2 +0x8A55 0x24DEA +0x8A56 0x64DD +0x8A57 0x20D7C +0x8A58 0x20FB4 +0x8A59 0x20CD5 +0x8A5A 0x210F4 +0x8A5B 0x648D +0x8A5C 0x8E7E +0x8A5D 0x20E96 +0x8A5E 0x20C0B +0x8A5F 0x20F64 +0x8A60 0x22CA9 +0x8A61 0x28256 +0x8A62 0x244D3 +0x8A64 0x20D46 +0x8A65 0x29A4D +0x8A66 0x280E9 +0x8A67 0x47F4 +0x8A68 0x24EA7 +0x8A69 0x22CC2 +0x8A6A 0x9AB2 +0x8A6B 0x3A67 +0x8A6C 0x295F4 +0x8A6D 0x3FED +0x8A6E 0x3506 +0x8A6F 0x252C7 +0x8A70 0x297D4 +0x8A71 0x278C8 +0x8A72 0x22D44 +0x8A73 0x9D6E +0x8A74 0x9815 +0x8A76 0x43D9 +0x8A77 0x260A5 +0x8A78 0x64B4 +0x8A79 0x54E3 +0x8A7A 0x22D4C +0x8A7B 0x22BCA +0x8A7C 0x21077 +0x8A7D 0x39FB +0x8A7E 0x2106F +0x8AA1 0x266DA +0x8AA2 0x26716 +0x8AA3 0x279A0 +0x8AA4 0x64EA +0x8AA5 0x25052 +0x8AA6 0x20C43 +0x8AA7 0x8E68 +0x8AA8 0x221A1 +0x8AA9 0x28B4C +0x8AAA 0x20731 +0x8AAC 0x480B +0x8AAD 0x201A9 +0x8AAE 0x3FFA +0x8AAF 0x5873 +0x8AB0 0x22D8D +0x8AB2 0x245C8 +0x8AB3 0x204FC +0x8AB4 0x26097 +0x8AB5 0x20F4C +0x8AB6 0x20D96 +0x8AB7 0x5579 +0x8AB8 0x40BB +0x8AB9 0x43BA +0x8ABB 0x4AB4 +0x8ABC 0x22A66 +0x8ABD 0x2109D +0x8ABE 0x81AA +0x8ABF 0x98F5 +0x8AC0 0x20D9C +0x8AC1 0x6379 +0x8AC2 0x39FE +0x8AC3 0x22775 +0x8AC4 0x8DC0 +0x8AC5 0x56A1 +0x8AC6 0x647C +0x8AC7 0x3E43 +0x8AC9 0x2A601 +0x8ACA 0x20E09 +0x8ACB 0x22ACF +0x8ACC 0x22CC9 +0x8ACE 0x210C8 +0x8ACF 0x239C2 +0x8AD0 0x3992 +0x8AD1 0x3A06 +0x8AD2 0x2829B +0x8AD3 0x3578 +0x8AD4 0x25E49 +0x8AD5 0x220C7 +0x8AD6 0x5652 +0x8AD7 0x20F31 +0x8AD8 0x22CB2 +0x8AD9 0x29720 +0x8ADA 0x34BC +0x8ADB 0x6C3D +0x8ADC 0x24E3B +0x8ADF 0x27574 +0x8AE0 0x22E8B +0x8AE1 0x22208 +0x8AE2 0x2A65B +0x8AE3 0x28CCD +0x8AE4 0x20E7A +0x8AE5 0x20C34 +0x8AE6 0x2681C +0x8AE7 0x7F93 +0x8AE8 0x210CF +0x8AE9 0x22803 +0x8AEA 0x22939 +0x8AEB 0x35FB +0x8AEC 0x251E3 +0x8AED 0x20E8C +0x8AEE 0x20F8D +0x8AEF 0x20EAA +0x8AF0 0x3F93 +0x8AF1 0x20F30 +0x8AF2 0x20D47 +0x8AF3 0x2114F +0x8AF4 0x20E4C +0x8AF6 0x20EAB +0x8AF7 0x20BA9 +0x8AF8 0x20D48 +0x8AF9 0x210C0 +0x8AFA 0x2113D +0x8AFB 0x3FF9 +0x8AFC 0x22696 +0x8AFD 0x6432 +0x8AFE 0x20FAD +0x8B40 0x233F4 +0x8B41 0x27639 +0x8B42 0x22BCE +0x8B43 0x20D7E +0x8B44 0x20D7F +0x8B45 0x22C51 +0x8B46 0x22C55 +0x8B47 0x3A18 +0x8B48 0x20E98 +0x8B49 0x210C7 +0x8B4A 0x20F2E +0x8B4B 0x2A632 +0x8B4C 0x26B50 +0x8B4D 0x28CD2 +0x8B4E 0x28D99 +0x8B4F 0x28CCA +0x8B50 0x95AA +0x8B51 0x54CC +0x8B52 0x82C4 +0x8B53 0x55B9 +0x8B55 0x29EC3 +0x8B56 0x9C26 +0x8B57 0x9AB6 +0x8B58 0x2775E +0x8B59 0x22DEE +0x8B5A 0x7140 +0x8B5B 0x816D +0x8B5C 0x80EC +0x8B5D 0x5C1C +0x8B5E 0x26572 +0x8B5F 0x8134 +0x8B60 0x3797 +0x8B61 0x535F +0x8B62 0x280BD +0x8B63 0x91B6 +0x8B64 0x20EFA +0x8B65 0x20E0F +0x8B66 0x20E77 +0x8B67 0x20EFB +0x8B68 0x35DD +0x8B69 0x24DEB +0x8B6A 0x3609 +0x8B6B 0x20CD6 +0x8B6C 0x56AF +0x8B6D 0x227B5 +0x8B6E 0x210C9 +0x8B6F 0x20E10 +0x8B70 0x20E78 +0x8B71 0x21078 +0x8B72 0x21148 +0x8B73 0x28207 +0x8B74 0x21455 +0x8B75 0x20E79 +0x8B76 0x24E50 +0x8B77 0x22DA4 +0x8B78 0x5A54 +0x8B79 0x2101D +0x8B7A 0x2101E +0x8B7B 0x210F5 +0x8B7C 0x210F6 +0x8B7D 0x579C +0x8B7E 0x20E11 +0x8BA1 0x27694 +0x8BA2 0x282CD +0x8BA3 0x20FB5 +0x8BA4 0x20E7B +0x8BA5 0x2517E +0x8BA6 0x3703 +0x8BA7 0x20FB6 +0x8BA8 0x21180 +0x8BA9 0x252D8 +0x8BAA 0x2A2BD +0x8BAB 0x249DA +0x8BAC 0x2183A +0x8BAD 0x24177 +0x8BAE 0x2827C +0x8BAF 0x5899 +0x8BB0 0x5268 +0x8BB1 0x361A +0x8BB2 0x2573D +0x8BB3 0x7BB2 +0x8BB4 0x5B68 +0x8BB5 0x4800 +0x8BB6 0x4B2C +0x8BB7 0x9F27 +0x8BB8 0x49E7 +0x8BB9 0x9C1F +0x8BBA 0x9B8D +0x8BBB 0x25B74 +0x8BBC 0x2313D +0x8BBD 0x55FB +0x8BBE 0x35F2 +0x8BBF 0x5689 +0x8BC0 0x4E28 +0x8BC1 0x5902 +0x8BC2 0x21BC1 +0x8BC3 0x2F878 +0x8BC4 0x9751 +0x8BC5 0x20086 +0x8BC6 0x4E5B +0x8BC7 0x4EBB +0x8BC8 0x353E +0x8BC9 0x5C23 +0x8BCA 0x5F51 +0x8BCB 0x5FC4 +0x8BCC 0x38FA +0x8BCD 0x624C +0x8BCE 0x6535 +0x8BCF 0x6B7A +0x8BD0 0x6C35 +0x8BD1 0x6C3A +0x8BD2 0x706C +0x8BD3 0x722B +0x8BD4 0x4E2C +0x8BD5 0x72AD +0x8BD6 0x248E9 +0x8BD7 0x7F52 +0x8BD8 0x793B +0x8BD9 0x7CF9 +0x8BDA 0x7F53 +0x8BDB 0x2626A +0x8BDC 0x34C1 +0x8BDE 0x2634B +0x8BDF 0x8002 +0x8BE0 0x8080 +0x8BE1 0x26612 +0x8BE2 0x26951 +0x8BE3 0x535D +0x8BE4 0x8864 +0x8BE5 0x89C1 +0x8BE6 0x278B2 +0x8BE7 0x8BA0 +0x8BE8 0x8D1D +0x8BE9 0x9485 +0x8BEA 0x9578 +0x8BEB 0x957F +0x8BEC 0x95E8 +0x8BED 0x28E0F +0x8BEE 0x97E6 +0x8BEF 0x9875 +0x8BF0 0x98CE +0x8BF1 0x98DE +0x8BF2 0x9963 +0x8BF3 0x29810 +0x8BF4 0x9C7C +0x8BF5 0x9E1F +0x8BF6 0x9EC4 +0x8BF7 0x6B6F +0x8BF8 0xF907 +0x8BF9 0x4E37 +0x8BFA 0x20087 +0x8BFB 0x961D +0x8BFC 0x6237 +0x8BFD 0x94A2 +0x8C40 0x503B +0x8C41 0x6DFE +0x8C42 0x29C73 +0x8C43 0x9FA6 +0x8C44 0x3DC9 +0x8C45 0x888F +0x8C46 0x2414E +0x8C47 0x7077 +0x8C48 0x5CF5 +0x8C49 0x4B20 +0x8C4A 0x251CD +0x8C4B 0x3559 +0x8C4C 0x25D30 +0x8C4D 0x6122 +0x8C4E 0x28A32 +0x8C4F 0x8FA7 +0x8C50 0x91F6 +0x8C51 0x7191 +0x8C52 0x6719 +0x8C53 0x73BA +0x8C54 0x23281 +0x8C55 0x2A107 +0x8C56 0x3C8B +0x8C57 0x21980 +0x8C58 0x4B10 +0x8C59 0x78E4 +0x8C5A 0x7402 +0x8C5B 0x51AE +0x8C5C 0x2870F +0x8C5D 0x4009 +0x8C5E 0x6A63 +0x8C5F 0x2A2BA +0x8C60 0x4223 +0x8C61 0x860F +0x8C63 0x7A2A +0x8C64 0x29947 +0x8C65 0x28AEA +0x8C66 0x9755 +0x8C67 0x704D +0x8C68 0x5324 +0x8C69 0x2207E +0x8C6A 0x93F4 +0x8C6B 0x76D9 +0x8C6C 0x289E3 +0x8C6D 0x9FA7 +0x8C6E 0x77DD +0x8C6F 0x4EA3 +0x8C70 0x4FF0 +0x8C71 0x50BC +0x8C72 0x4E2F +0x8C73 0x4F17 +0x8C74 0x9FA8 +0x8C75 0x5434 +0x8C76 0x7D8B +0x8C77 0x5892 +0x8C78 0x58D0 +0x8C79 0x21DB6 +0x8C7A 0x5E92 +0x8C7B 0x5E99 +0x8C7C 0x5FC2 +0x8C7D 0x22712 +0x8C7E 0x658B +0x8CA1 0x233F9 +0x8CA2 0x6919 +0x8CA3 0x6A43 +0x8CA4 0x23C63 +0x8CA5 0x6CFF +0x8CA7 0x7200 +0x8CA8 0x24505 +0x8CA9 0x738C +0x8CAA 0x3EDB +0x8CAB 0x24A13 +0x8CAC 0x5B15 +0x8CAD 0x74B9 +0x8CAE 0x8B83 +0x8CAF 0x25CA4 +0x8CB0 0x25695 +0x8CB1 0x7A93 +0x8CB2 0x7BEC +0x8CB3 0x7CC3 +0x8CB4 0x7E6C +0x8CB5 0x82F8 +0x8CB6 0x8597 +0x8CB7 0x9FA9 +0x8CB8 0x8890 +0x8CB9 0x9FAA +0x8CBA 0x8EB9 +0x8CBB 0x9FAB +0x8CBC 0x8FCF +0x8CBD 0x855F +0x8CBE 0x99E0 +0x8CBF 0x9221 +0x8CC0 0x9FAC +0x8CC1 0x28DB9 +0x8CC2 0x2143F +0x8CC3 0x4071 +0x8CC4 0x42A2 +0x8CC5 0x5A1A +0x8CC9 0x9868 +0x8CCA 0x676B +0x8CCB 0x4276 +0x8CCC 0x573D +0x8CCE 0x85D6 +0x8CCF 0x2497B +0x8CD0 0x82BF +0x8CD1 0x2710D +0x8CD2 0x4C81 +0x8CD3 0x26D74 +0x8CD4 0x5D7B +0x8CD5 0x26B15 +0x8CD6 0x26FBE +0x8CD7 0x9FAD +0x8CD8 0x9FAE +0x8CD9 0x5B96 +0x8CDA 0x9FAF +0x8CDC 0x7E5B +0x8D60 0x5D3E +0x8D61 0x5D48 +0x8D62 0x5D56 +0x8D63 0x3DFC +0x8D64 0x380F +0x8D65 0x5DA4 +0x8D66 0x5DB9 +0x8D67 0x3820 +0x8D68 0x3838 +0x8D69 0x5E42 +0x8D6A 0x5EBD +0x8D6B 0x5F25 +0x8D6C 0x5F83 +0x8D6D 0x3908 +0x8D6E 0x3914 +0x8D6F 0x393F +0x8D70 0x394D +0x8D71 0x60D7 +0x8D72 0x613D +0x8D73 0x5CE5 +0x8D74 0x3989 +0x8D75 0x61B7 +0x8D76 0x61B9 +0x8D77 0x61CF +0x8D78 0x39B8 +0x8D79 0x622C +0x8D7A 0x6290 +0x8D7B 0x62E5 +0x8D7C 0x6318 +0x8D7D 0x39F8 +0x8D7E 0x56B1 +0x8DA1 0x3A03 +0x8DA2 0x63E2 +0x8DA3 0x63FB +0x8DA4 0x6407 +0x8DA5 0x645A +0x8DA6 0x3A4B +0x8DA7 0x64C0 +0x8DA8 0x5D15 +0x8DA9 0x5621 +0x8DAA 0x9F9F +0x8DAB 0x3A97 +0x8DAC 0x6586 +0x8DAD 0x3ABD +0x8DAE 0x65FF +0x8DAF 0x6653 +0x8DB0 0x3AF2 +0x8DB1 0x6692 +0x8DB2 0x3B22 +0x8DB3 0x6716 +0x8DB4 0x3B42 +0x8DB5 0x67A4 +0x8DB6 0x6800 +0x8DB7 0x3B58 +0x8DB8 0x684A +0x8DB9 0x6884 +0x8DBA 0x3B72 +0x8DBB 0x3B71 +0x8DBC 0x3B7B +0x8DBD 0x6909 +0x8DBE 0x6943 +0x8DBF 0x725C +0x8DC0 0x6964 +0x8DC1 0x699F +0x8DC2 0x6985 +0x8DC3 0x3BBC +0x8DC4 0x69D6 +0x8DC5 0x3BDD +0x8DC6 0x6A65 +0x8DC7 0x6A74 +0x8DC8 0x6A71 +0x8DC9 0x6A82 +0x8DCA 0x3BEC +0x8DCB 0x6A99 +0x8DCC 0x3BF2 +0x8DCD 0x6AAB +0x8DCE 0x6AB5 +0x8DCF 0x6AD4 +0x8DD0 0x6AF6 +0x8DD1 0x6B81 +0x8DD2 0x6BC1 +0x8DD3 0x6BEA +0x8DD4 0x6C75 +0x8DD5 0x6CAA +0x8DD6 0x3CCB +0x8DD7 0x6D02 +0x8DD8 0x6D06 +0x8DD9 0x6D26 +0x8DDA 0x6D81 +0x8DDB 0x3CEF +0x8DDC 0x6DA4 +0x8DDD 0x6DB1 +0x8DDE 0x6E15 +0x8DDF 0x6E18 +0x8DE0 0x6E29 +0x8DE1 0x6E86 +0x8DE2 0x289C0 +0x8DE3 0x6EBB +0x8DE4 0x6EE2 +0x8DE5 0x6EDA +0x8DE6 0x9F7F +0x8DE7 0x6EE8 +0x8DE8 0x6EE9 +0x8DE9 0x6F24 +0x8DEA 0x6F34 +0x8DEB 0x3D46 +0x8DEC 0x23F41 +0x8DED 0x6F81 +0x8DEE 0x6FBE +0x8DEF 0x3D6A +0x8DF0 0x3D75 +0x8DF1 0x71B7 +0x8DF2 0x5C99 +0x8DF3 0x3D8A +0x8DF4 0x702C +0x8DF5 0x3D91 +0x8DF6 0x7050 +0x8DF7 0x7054 +0x8DF8 0x706F +0x8DF9 0x707F +0x8DFA 0x7089 +0x8DFB 0x20325 +0x8DFC 0x43C1 +0x8DFD 0x35F1 +0x8DFE 0x20ED8 +0x8E40 0x23ED7 +0x8E41 0x57BE +0x8E42 0x26ED3 +0x8E43 0x713E +0x8E44 0x257E0 +0x8E45 0x364E +0x8E46 0x69A2 +0x8E47 0x28BE9 +0x8E48 0x5B74 +0x8E49 0x7A49 +0x8E4A 0x258E1 +0x8E4B 0x294D9 +0x8E4C 0x7A65 +0x8E4D 0x7A7D +0x8E4E 0x259AC +0x8E4F 0x7ABB +0x8E50 0x7AB0 +0x8E51 0x7AC2 +0x8E52 0x7AC3 +0x8E53 0x71D1 +0x8E54 0x2648D +0x8E55 0x41CA +0x8E56 0x7ADA +0x8E57 0x7ADD +0x8E58 0x7AEA +0x8E59 0x41EF +0x8E5A 0x54B2 +0x8E5B 0x25C01 +0x8E5C 0x7B0B +0x8E5D 0x7B55 +0x8E5E 0x7B29 +0x8E5F 0x2530E +0x8E60 0x25CFE +0x8E61 0x7BA2 +0x8E62 0x7B6F +0x8E63 0x839C +0x8E64 0x25BB4 +0x8E65 0x26C7F +0x8E66 0x7BD0 +0x8E67 0x8421 +0x8E68 0x7B92 +0x8E6A 0x25D20 +0x8E6B 0x3DAD +0x8E6C 0x25C65 +0x8E6D 0x8492 +0x8E6E 0x7BFA +0x8E70 0x7C35 +0x8E71 0x25CC1 +0x8E72 0x7C44 +0x8E73 0x7C83 +0x8E74 0x24882 +0x8E75 0x7CA6 +0x8E76 0x667D +0x8E77 0x24578 +0x8E78 0x7CC9 +0x8E79 0x7CC7 +0x8E7A 0x7CE6 +0x8E7B 0x7C74 +0x8E7C 0x7CF3 +0x8E7D 0x7CF5 +0x8EA1 0x7E67 +0x8EA2 0x451D +0x8EA3 0x26E44 +0x8EA4 0x7D5D +0x8EA5 0x26ED6 +0x8EA6 0x748D +0x8EA7 0x7D89 +0x8EA8 0x7DAB +0x8EA9 0x7135 +0x8EAA 0x7DB3 +0x8EAC 0x24057 +0x8EAD 0x26029 +0x8EAE 0x7DE4 +0x8EAF 0x3D13 +0x8EB0 0x7DF5 +0x8EB1 0x217F9 +0x8EB2 0x7DE5 +0x8EB3 0x2836D +0x8EB5 0x26121 +0x8EB6 0x2615A +0x8EB7 0x7E6E +0x8EB8 0x7E92 +0x8EB9 0x432B +0x8EBA 0x946C +0x8EBB 0x7E27 +0x8EBC 0x7F40 +0x8EBD 0x7F41 +0x8EBE 0x7F47 +0x8EBF 0x7936 +0x8EC0 0x262D0 +0x8EC1 0x99E1 +0x8EC2 0x7F97 +0x8EC3 0x26351 +0x8EC4 0x7FA3 +0x8EC5 0x21661 +0x8EC6 0x20068 +0x8EC7 0x455C +0x8EC8 0x23766 +0x8EC9 0x4503 +0x8ECA 0x2833A +0x8ECB 0x7FFA +0x8ECC 0x26489 +0x8ECE 0x8008 +0x8ECF 0x801D +0x8ED1 0x802F +0x8ED2 0x2A087 +0x8ED3 0x26CC3 +0x8ED4 0x803B +0x8ED5 0x803C +0x8ED6 0x8061 +0x8ED7 0x22714 +0x8ED8 0x4989 +0x8ED9 0x26626 +0x8EDA 0x23DE3 +0x8EDB 0x266E8 +0x8EDC 0x6725 +0x8EDD 0x80A7 +0x8EDE 0x28A48 +0x8EDF 0x8107 +0x8EE0 0x811A +0x8EE1 0x58B0 +0x8EE2 0x226F6 +0x8EE3 0x6C7F +0x8EE4 0x26498 +0x8EE5 0x24FB8 +0x8EE6 0x64E7 +0x8EE7 0x2148A +0x8EE8 0x8218 +0x8EE9 0x2185E +0x8EEA 0x6A53 +0x8EEB 0x24A65 +0x8EEC 0x24A95 +0x8EED 0x447A +0x8EEE 0x8229 +0x8EEF 0x20B0D +0x8EF0 0x26A52 +0x8EF1 0x23D7E +0x8EF2 0x4FF9 +0x8EF3 0x214FD +0x8EF4 0x84E2 +0x8EF5 0x8362 +0x8EF6 0x26B0A +0x8EF7 0x249A7 +0x8EF8 0x23530 +0x8EF9 0x21773 +0x8EFA 0x23DF8 +0x8EFB 0x82AA +0x8EFC 0x691B +0x8EFD 0x2F994 +0x8EFE 0x41DB +0x8F40 0x854B +0x8F41 0x82D0 +0x8F42 0x831A +0x8F43 0x20E16 +0x8F44 0x217B4 +0x8F45 0x36C1 +0x8F46 0x2317D +0x8F47 0x2355A +0x8F48 0x827B +0x8F49 0x82E2 +0x8F4A 0x8318 +0x8F4B 0x23E8B +0x8F4C 0x26DA3 +0x8F4D 0x26B05 +0x8F4E 0x26B97 +0x8F4F 0x235CE +0x8F50 0x3DBF +0x8F51 0x831D +0x8F52 0x55EC +0x8F53 0x8385 +0x8F54 0x450B +0x8F55 0x26DA5 +0x8F56 0x83AC +0x8F58 0x83D3 +0x8F59 0x347E +0x8F5A 0x26ED4 +0x8F5B 0x6A57 +0x8F5C 0x855A +0x8F5D 0x3496 +0x8F5E 0x26E42 +0x8F5F 0x22EEF +0x8F60 0x8458 +0x8F61 0x25BE4 +0x8F62 0x8471 +0x8F63 0x3DD3 +0x8F64 0x44E4 +0x8F65 0x6AA7 +0x8F66 0x844A +0x8F67 0x23CB5 +0x8F68 0x7958 +0x8F6A 0x26B96 +0x8F6B 0x26E77 +0x8F6C 0x26E43 +0x8F6D 0x84DE +0x8F6F 0x8391 +0x8F70 0x44A0 +0x8F71 0x8493 +0x8F72 0x84E4 +0x8F73 0x25C91 +0x8F74 0x4240 +0x8F75 0x25CC0 +0x8F76 0x4543 +0x8F77 0x8534 +0x8F78 0x5AF2 +0x8F79 0x26E99 +0x8F7A 0x4527 +0x8F7B 0x8573 +0x8F7C 0x4516 +0x8F7D 0x67BF +0x8F7E 0x8616 +0x8FA1 0x28625 +0x8FA2 0x2863B +0x8FA3 0x85C1 +0x8FA4 0x27088 +0x8FA5 0x8602 +0x8FA6 0x21582 +0x8FA7 0x270CD +0x8FA8 0x2F9B2 +0x8FA9 0x456A +0x8FAA 0x8628 +0x8FAB 0x3648 +0x8FAC 0x218A2 +0x8FAD 0x53F7 +0x8FAE 0x2739A +0x8FAF 0x867E +0x8FB0 0x8771 +0x8FB1 0x2A0F8 +0x8FB2 0x87EE +0x8FB3 0x22C27 +0x8FB4 0x87B1 +0x8FB5 0x87DA +0x8FB6 0x880F +0x8FB7 0x5661 +0x8FB8 0x866C +0x8FB9 0x6856 +0x8FBA 0x460F +0x8FBB 0x8845 +0x8FBC 0x8846 +0x8FBD 0x275E0 +0x8FBE 0x23DB9 +0x8FBF 0x275E4 +0x8FC0 0x885E +0x8FC1 0x889C +0x8FC2 0x465B +0x8FC3 0x88B4 +0x8FC4 0x88B5 +0x8FC5 0x63C1 +0x8FC6 0x88C5 +0x8FC7 0x7777 +0x8FC8 0x2770F +0x8FC9 0x8987 +0x8FCA 0x898A +0x8FCD 0x89A7 +0x8FCE 0x89BC +0x8FCF 0x28A25 +0x8FD0 0x89E7 +0x8FD1 0x27924 +0x8FD2 0x27ABD +0x8FD3 0x8A9C +0x8FD4 0x7793 +0x8FD5 0x91FE +0x8FD6 0x8A90 +0x8FD7 0x27A59 +0x8FD8 0x7AE9 +0x8FD9 0x27B3A +0x8FDA 0x23F8F +0x8FDB 0x4713 +0x8FDC 0x27B38 +0x8FDD 0x717C +0x8FDE 0x8B0C +0x8FDF 0x8B1F +0x8FE0 0x25430 +0x8FE1 0x25565 +0x8FE2 0x8B3F +0x8FE3 0x8B4C +0x8FE4 0x8B4D +0x8FE5 0x8AA9 +0x8FE6 0x24A7A +0x8FE7 0x8B90 +0x8FE8 0x8B9B +0x8FE9 0x8AAF +0x8FEA 0x216DF +0x8FEB 0x4615 +0x8FEC 0x884F +0x8FED 0x8C9B +0x8FEE 0x27D54 +0x8FEF 0x27D8F +0x8FF0 0x2F9D4 +0x8FF1 0x3725 +0x8FF2 0x27D53 +0x8FF3 0x8CD6 +0x8FF4 0x27D98 +0x8FF5 0x27DBD +0x8FF6 0x8D12 +0x8FF7 0x8D03 +0x8FF8 0x21910 +0x8FF9 0x8CDB +0x8FFA 0x705C +0x8FFB 0x8D11 +0x8FFC 0x24CC9 +0x8FFD 0x3ED0 +0x9040 0x8DA9 +0x9041 0x28002 +0x9042 0x21014 +0x9043 0x2498A +0x9044 0x3B7C +0x9045 0x281BC +0x9046 0x2710C +0x9047 0x7AE7 +0x9048 0x8EAD +0x9049 0x8EB6 +0x904A 0x8EC3 +0x904B 0x92D4 +0x904C 0x8F19 +0x904D 0x8F2D +0x904E 0x28365 +0x904F 0x28412 +0x9050 0x8FA5 +0x9051 0x9303 +0x9052 0x2A29F +0x9053 0x20A50 +0x9054 0x8FB3 +0x9055 0x492A +0x9056 0x289DE +0x9057 0x2853D +0x9058 0x23DBB +0x9059 0x5EF8 +0x905A 0x23262 +0x905B 0x8FF9 +0x905C 0x2A014 +0x905D 0x286BC +0x905E 0x28501 +0x905F 0x22325 +0x9060 0x3980 +0x9061 0x26ED7 +0x9062 0x9037 +0x9063 0x2853C +0x9064 0x27ABE +0x9065 0x9061 +0x9066 0x2856C +0x9067 0x2860B +0x9068 0x90A8 +0x9069 0x28713 +0x906A 0x90C4 +0x906B 0x286E6 +0x906C 0x90AE +0x906E 0x9167 +0x906F 0x3AF0 +0x9070 0x91A9 +0x9071 0x91C4 +0x9072 0x7CAC +0x9073 0x28933 +0x9074 0x21E89 +0x9075 0x920E +0x9076 0x6C9F +0x9077 0x9241 +0x9078 0x9262 +0x9079 0x255B9 +0x907B 0x28AC6 +0x907C 0x23C9B +0x907D 0x28B0C +0x907E 0x255DB +0x90A1 0x20D31 +0x90A2 0x932C +0x90A3 0x936B +0x90A4 0x28AE1 +0x90A5 0x28BEB +0x90A6 0x708F +0x90A7 0x5AC3 +0x90A8 0x28AE2 +0x90A9 0x28AE5 +0x90AA 0x4965 +0x90AB 0x9244 +0x90AC 0x28BEC +0x90AD 0x28C39 +0x90AE 0x28BFF +0x90AF 0x9373 +0x90B0 0x945B +0x90B1 0x8EBC +0x90B2 0x9585 +0x90B3 0x95A6 +0x90B4 0x9426 +0x90B5 0x95A0 +0x90B6 0x6FF6 +0x90B7 0x42B9 +0x90B8 0x2267A +0x90B9 0x286D8 +0x90BA 0x2127C +0x90BB 0x23E2E +0x90BC 0x49DF +0x90BD 0x6C1C +0x90BE 0x967B +0x90BF 0x9696 +0x90C0 0x416C +0x90C1 0x96A3 +0x90C2 0x26ED5 +0x90C3 0x61DA +0x90C4 0x96B6 +0x90C5 0x78F5 +0x90C6 0x28AE0 +0x90C7 0x96BD +0x90C8 0x53CC +0x90C9 0x49A1 +0x90CA 0x26CB8 +0x90CB 0x20274 +0x90CC 0x26410 +0x90CD 0x290AF +0x90CE 0x290E5 +0x90CF 0x24AD1 +0x90D0 0x21915 +0x90D1 0x2330A +0x90D2 0x9731 +0x90D3 0x8642 +0x90D4 0x9736 +0x90D5 0x4A0F +0x90D6 0x453D +0x90D7 0x4585 +0x90D8 0x24AE9 +0x90D9 0x7075 +0x90DA 0x5B41 +0x90DB 0x971B +0x90DD 0x291D5 +0x90DE 0x9757 +0x90DF 0x5B4A +0x90E0 0x291EB +0x90E1 0x975F +0x90E2 0x9425 +0x90E3 0x50D0 +0x90E4 0x230B7 +0x90E5 0x230BC +0x90E6 0x9789 +0x90E7 0x979F +0x90E8 0x97B1 +0x90E9 0x97BE +0x90EA 0x97C0 +0x90EB 0x97D2 +0x90EC 0x97E0 +0x90ED 0x2546C +0x90EE 0x97EE +0x90EF 0x741C +0x90F0 0x29433 +0x90F2 0x97F5 +0x90F3 0x2941D +0x90F4 0x2797A +0x90F5 0x4AD1 +0x90F6 0x9834 +0x90F7 0x9833 +0x90F8 0x984B +0x90F9 0x9866 +0x90FA 0x3B0E +0x90FB 0x27175 +0x90FC 0x3D51 +0x90FD 0x20630 +0x90FE 0x2415C +0x9140 0x25706 +0x9141 0x98CA +0x9142 0x98B7 +0x9143 0x98C8 +0x9144 0x98C7 +0x9145 0x4AFF +0x9146 0x26D27 +0x9147 0x216D3 +0x9148 0x55B0 +0x9149 0x98E1 +0x914A 0x98E6 +0x914B 0x98EC +0x914C 0x9378 +0x914D 0x9939 +0x914E 0x24A29 +0x914F 0x4B72 +0x9150 0x29857 +0x9151 0x29905 +0x9152 0x99F5 +0x9153 0x9A0C +0x9154 0x9A3B +0x9155 0x9A10 +0x9156 0x9A58 +0x9157 0x25725 +0x9158 0x36C4 +0x9159 0x290B1 +0x915A 0x29BD5 +0x915B 0x9AE0 +0x915C 0x9AE2 +0x915D 0x29B05 +0x915E 0x9AF4 +0x915F 0x4C0E +0x9160 0x9B14 +0x9161 0x9B2D +0x9162 0x28600 +0x9163 0x5034 +0x9164 0x9B34 +0x9165 0x269A8 +0x9166 0x38C3 +0x9167 0x2307D +0x9168 0x9B50 +0x9169 0x9B40 +0x916A 0x29D3E +0x916B 0x5A45 +0x916C 0x21863 +0x916D 0x9B8E +0x916E 0x2424B +0x916F 0x9C02 +0x9170 0x9BFF +0x9171 0x9C0C +0x9172 0x29E68 +0x9173 0x9DD4 +0x9174 0x29FB7 +0x9175 0x2A192 +0x9176 0x2A1AB +0x9177 0x2A0E1 +0x9178 0x2A123 +0x9179 0x2A1DF +0x917A 0x9D7E +0x917B 0x9D83 +0x917C 0x2A134 +0x917D 0x9E0E +0x917E 0x6888 +0x91A1 0x9DC4 +0x91A2 0x2215B +0x91A3 0x2A193 +0x91A4 0x2A220 +0x91A5 0x2193B +0x91A6 0x2A233 +0x91A7 0x9D39 +0x91A8 0x2A0B9 +0x91A9 0x2A2B4 +0x91AA 0x9E90 +0x91AB 0x9E95 +0x91AC 0x9E9E +0x91AD 0x9EA2 +0x91AE 0x4D34 +0x91AF 0x9EAA +0x91B0 0x9EAF +0x91B1 0x24364 +0x91B2 0x9EC1 +0x91B3 0x3B60 +0x91B4 0x39E5 +0x91B5 0x3D1D +0x91B6 0x4F32 +0x91B7 0x37BE +0x91B8 0x28C2B +0x91B9 0x9F02 +0x91BA 0x9F08 +0x91BB 0x4B96 +0x91BC 0x9424 +0x91BD 0x26DA2 +0x91BE 0x9F17 +0x91C0 0x9F39 +0x91C1 0x569F +0x91C2 0x568A +0x91C3 0x9F45 +0x91C4 0x99B8 +0x91C5 0x2908B +0x91C6 0x97F2 +0x91C7 0x847F +0x91C8 0x9F62 +0x91C9 0x9F69 +0x91CA 0x7ADC +0x91CB 0x9F8E +0x91CC 0x7216 +0x91CD 0x4BBE +0x91CE 0x24975 +0x91CF 0x249BB +0x91D0 0x7177 +0x91D1 0x249F8 +0x91D2 0x24348 +0x91D3 0x24A51 +0x91D4 0x739E +0x91D5 0x28BDA +0x91D6 0x218FA +0x91D7 0x799F +0x91D8 0x2897E +0x91D9 0x28E36 +0x91DA 0x9369 +0x91DB 0x93F3 +0x91DC 0x28A44 +0x91DD 0x92EC +0x91DE 0x9381 +0x91DF 0x93CB +0x91E0 0x2896C +0x91E1 0x244B9 +0x91E2 0x7217 +0x91E3 0x3EEB +0x91E4 0x7772 +0x91E5 0x7A43 +0x91E6 0x70D0 +0x91E7 0x24473 +0x91E8 0x243F8 +0x91E9 0x717E +0x91EA 0x217EF +0x91EB 0x70A3 +0x91EC 0x218BE +0x91ED 0x23599 +0x91EE 0x3EC7 +0x91EF 0x21885 +0x91F0 0x2542F +0x91F1 0x217F8 +0x91F2 0x3722 +0x91F3 0x216FB +0x91F4 0x21839 +0x91F5 0x36E1 +0x91F6 0x21774 +0x91F7 0x218D1 +0x91F8 0x25F4B +0x91F9 0x3723 +0x91FA 0x216C0 +0x91FB 0x575B +0x91FC 0x24A25 +0x91FD 0x213FE +0x91FE 0x212A8 +0x9240 0x213C6 +0x9241 0x214B6 +0x9242 0x8503 +0x9243 0x236A6 +0x9245 0x8455 +0x9246 0x24994 +0x9247 0x27165 +0x9248 0x23E31 +0x9249 0x2555C +0x924A 0x23EFB +0x924B 0x27052 +0x924C 0x44F4 +0x924D 0x236EE +0x924E 0x2999D +0x924F 0x26F26 +0x9250 0x67F9 +0x9251 0x3733 +0x9252 0x3C15 +0x9253 0x3DE7 +0x9254 0x586C +0x9255 0x21922 +0x9256 0x6810 +0x9257 0x4057 +0x9258 0x2373F +0x9259 0x240E1 +0x925A 0x2408B +0x925B 0x2410F +0x925C 0x26C21 +0x925D 0x54CB +0x925E 0x569E +0x925F 0x266B1 +0x9260 0x5692 +0x9261 0x20FDF +0x9262 0x20BA8 +0x9263 0x20E0D +0x9264 0x93C6 +0x9265 0x28B13 +0x9266 0x939C +0x9267 0x4EF8 +0x9268 0x512B +0x9269 0x3819 +0x926A 0x24436 +0x926B 0x4EBC +0x926C 0x20465 +0x926D 0x2037F +0x926E 0x4F4B +0x926F 0x4F8A +0x9270 0x25651 +0x9271 0x5A68 +0x9272 0x201AB +0x9273 0x203CB +0x9274 0x3999 +0x9275 0x2030A +0x9276 0x20414 +0x9277 0x3435 +0x9278 0x4F29 +0x9279 0x202C0 +0x927A 0x28EB3 +0x927B 0x20275 +0x927C 0x8ADA +0x927D 0x2020C +0x927E 0x4E98 +0x92A1 0x50CD +0x92A2 0x510D +0x92A3 0x4FA2 +0x92A4 0x4F03 +0x92A5 0x24A0E +0x92A6 0x23E8A +0x92A7 0x4F42 +0x92A8 0x502E +0x92A9 0x506C +0x92AA 0x5081 +0x92AB 0x4FCC +0x92AC 0x4FE5 +0x92AD 0x5058 +0x92AE 0x50FC +0x92B3 0x6E76 +0x92B4 0x23595 +0x92B5 0x23E39 +0x92B6 0x23EBF +0x92B7 0x6D72 +0x92B8 0x21884 +0x92B9 0x23E89 +0x92BA 0x51A8 +0x92BB 0x51C3 +0x92BC 0x205E0 +0x92BD 0x44DD +0x92BE 0x204A3 +0x92BF 0x20492 +0x92C0 0x20491 +0x92C1 0x8D7A +0x92C2 0x28A9C +0x92C3 0x2070E +0x92C4 0x5259 +0x92C5 0x52A4 +0x92C6 0x20873 +0x92C7 0x52E1 +0x92C9 0x467A +0x92CA 0x718C +0x92CB 0x2438C +0x92CC 0x20C20 +0x92CD 0x249AC +0x92CE 0x210E4 +0x92CF 0x69D1 +0x92D0 0x20E1D +0x92D2 0x3EDE +0x92D3 0x7499 +0x92D4 0x7414 +0x92D5 0x7456 +0x92D6 0x7398 +0x92D7 0x4B8E +0x92D8 0x24ABC +0x92D9 0x2408D +0x92DA 0x53D0 +0x92DB 0x3584 +0x92DC 0x720F +0x92DD 0x240C9 +0x92DE 0x55B4 +0x92DF 0x20345 +0x92E0 0x54CD +0x92E1 0x20BC6 +0x92E2 0x571D +0x92E3 0x925D +0x92E4 0x96F4 +0x92E5 0x9366 +0x92E6 0x57DD +0x92E7 0x578D +0x92E8 0x577F +0x92E9 0x363E +0x92EA 0x58CB +0x92EB 0x5A99 +0x92EC 0x28A46 +0x92ED 0x216FA +0x92EE 0x2176F +0x92EF 0x21710 +0x92F0 0x5A2C +0x92F1 0x59B8 +0x92F2 0x928F +0x92F3 0x5A7E +0x92F4 0x5ACF +0x92F5 0x5A12 +0x92F6 0x25946 +0x92F7 0x219F3 +0x92F8 0x21861 +0x92F9 0x24295 +0x92FA 0x36F5 +0x92FB 0x6D05 +0x92FC 0x7443 +0x92FD 0x5A21 +0x92FE 0x25E83 +0x9340 0x5A81 +0x9341 0x28BD7 +0x9342 0x20413 +0x9343 0x93E0 +0x9344 0x748C +0x9345 0x21303 +0x9346 0x7105 +0x9347 0x4972 +0x9348 0x9408 +0x9349 0x289FB +0x934A 0x93BD +0x934B 0x37A0 +0x934C 0x5C1E +0x934D 0x5C9E +0x934E 0x5E5E +0x934F 0x5E48 +0x9350 0x21996 +0x9351 0x2197C +0x9352 0x23AEE +0x9353 0x5ECD +0x9354 0x5B4F +0x9355 0x21903 +0x9356 0x21904 +0x9357 0x3701 +0x9358 0x218A0 +0x9359 0x36DD +0x935A 0x216FE +0x935B 0x36D3 +0x935C 0x812A +0x935D 0x28A47 +0x935E 0x21DBA +0x935F 0x23472 +0x9360 0x289A8 +0x9361 0x5F0C +0x9362 0x5F0E +0x9363 0x21927 +0x9364 0x217AB +0x9365 0x5A6B +0x9366 0x2173B +0x9367 0x5B44 +0x9368 0x8614 +0x9369 0x275FD +0x936A 0x8860 +0x936B 0x607E +0x936C 0x22860 +0x936D 0x2262B +0x936E 0x5FDB +0x936F 0x3EB8 +0x9370 0x225AF +0x9371 0x225BE +0x9372 0x29088 +0x9373 0x26F73 +0x9374 0x61C0 +0x9375 0x2003E +0x9376 0x20046 +0x9377 0x2261B +0x9378 0x6199 +0x9379 0x6198 +0x937A 0x6075 +0x937B 0x22C9B +0x937C 0x22D07 +0x937D 0x246D4 +0x937E 0x2914D +0x93A1 0x6471 +0x93A2 0x24665 +0x93A3 0x22B6A +0x93A4 0x3A29 +0x93A5 0x22B22 +0x93A6 0x23450 +0x93A7 0x298EA +0x93A8 0x22E78 +0x93A9 0x6337 +0x93AA 0x2A45B +0x93AB 0x64B6 +0x93AC 0x6331 +0x93AD 0x63D1 +0x93AE 0x249E3 +0x93AF 0x22D67 +0x93B0 0x62A4 +0x93B1 0x22CA1 +0x93B2 0x643B +0x93B3 0x656B +0x93B4 0x6972 +0x93B5 0x3BF4 +0x93B6 0x2308E +0x93B7 0x232AD +0x93B8 0x24989 +0x93B9 0x232AB +0x93BA 0x550D +0x93BB 0x232E0 +0x93BC 0x218D9 +0x93BD 0x2943F +0x93BE 0x66CE +0x93BF 0x23289 +0x93C0 0x231B3 +0x93C1 0x3AE0 +0x93C2 0x4190 +0x93C3 0x25584 +0x93C4 0x28B22 +0x93C5 0x2558F +0x93C6 0x216FC +0x93C7 0x2555B +0x93C8 0x25425 +0x93C9 0x78EE +0x93CA 0x23103 +0x93CB 0x2182A +0x93CC 0x23234 +0x93CD 0x3464 +0x93CE 0x2320F +0x93CF 0x23182 +0x93D0 0x242C9 +0x93D1 0x668E +0x93D2 0x26D24 +0x93D3 0x666B +0x93D4 0x4B93 +0x93D5 0x6630 +0x93D6 0x27870 +0x93D7 0x21DEB +0x93D8 0x6663 +0x93D9 0x232D2 +0x93DA 0x232E1 +0x93DB 0x661E +0x93DC 0x25872 +0x93DD 0x38D1 +0x93DE 0x2383A +0x93DF 0x237BC +0x93E0 0x3B99 +0x93E1 0x237A2 +0x93E2 0x233FE +0x93E3 0x74D0 +0x93E4 0x3B96 +0x93E5 0x678F +0x93E6 0x2462A +0x93E7 0x68B6 +0x93E8 0x681E +0x93E9 0x3BC4 +0x93EA 0x6ABE +0x93EB 0x3863 +0x93EC 0x237D5 +0x93ED 0x24487 +0x93EE 0x6A33 +0x93EF 0x6A52 +0x93F0 0x6AC9 +0x93F1 0x6B05 +0x93F2 0x21912 +0x93F3 0x6511 +0x93F4 0x6898 +0x93F5 0x6A4C +0x93F6 0x3BD7 +0x93F7 0x6A7A +0x93F8 0x6B57 +0x93F9 0x23FC0 +0x93FA 0x23C9A +0x93FB 0x93A0 +0x93FC 0x92F2 +0x93FD 0x28BEA +0x93FE 0x28ACB +0x9440 0x9289 +0x9441 0x2801E +0x9442 0x289DC +0x9443 0x9467 +0x9444 0x6DA5 +0x9445 0x6F0B +0x9446 0x249EC +0x9448 0x23F7F +0x9449 0x3D8F +0x944A 0x6E04 +0x944B 0x2403C +0x944C 0x5A3D +0x944D 0x6E0A +0x944E 0x5847 +0x944F 0x6D24 +0x9450 0x7842 +0x9451 0x713B +0x9452 0x2431A +0x9453 0x24276 +0x9454 0x70F1 +0x9455 0x7250 +0x9456 0x7287 +0x9457 0x7294 +0x9458 0x2478F +0x9459 0x24725 +0x945A 0x5179 +0x945B 0x24AA4 +0x945C 0x205EB +0x945D 0x747A +0x945E 0x23EF8 +0x945F 0x2365F +0x9460 0x24A4A +0x9461 0x24917 +0x9462 0x25FE1 +0x9463 0x3F06 +0x9464 0x3EB1 +0x9465 0x24ADF +0x9466 0x28C23 +0x9467 0x23F35 +0x9468 0x60A7 +0x9469 0x3EF3 +0x946A 0x74CC +0x946B 0x743C +0x946C 0x9387 +0x946D 0x7437 +0x946E 0x449F +0x946F 0x26DEA +0x9470 0x4551 +0x9471 0x7583 +0x9472 0x3F63 +0x9473 0x24CD9 +0x9474 0x24D06 +0x9475 0x3F58 +0x9476 0x7555 +0x9477 0x7673 +0x9478 0x2A5C6 +0x9479 0x3B19 +0x947A 0x7468 +0x947B 0x28ACC +0x947C 0x249AB +0x947D 0x2498E +0x947E 0x3AFB +0x94A1 0x3DCD +0x94A2 0x24A4E +0x94A3 0x3EFF +0x94A4 0x249C5 +0x94A5 0x248F3 +0x94A6 0x91FA +0x94A7 0x5732 +0x94A8 0x9342 +0x94A9 0x28AE3 +0x94AA 0x21864 +0x94AB 0x50DF +0x94AC 0x25221 +0x94AD 0x251E7 +0x94AE 0x7778 +0x94AF 0x23232 +0x94B0 0x770E +0x94B1 0x770F +0x94B2 0x777B +0x94B3 0x24697 +0x94B4 0x23781 +0x94B5 0x3A5E +0x94B6 0x248F0 +0x94B7 0x7438 +0x94B8 0x749B +0x94B9 0x3EBF +0x94BA 0x24ABA +0x94BB 0x24AC7 +0x94BC 0x40C8 +0x94BD 0x24A96 +0x94BE 0x261AE +0x94BF 0x9307 +0x94C0 0x25581 +0x94C1 0x781E +0x94C2 0x788D +0x94C3 0x7888 +0x94C4 0x78D2 +0x94C5 0x73D0 +0x94C6 0x7959 +0x94C7 0x27741 +0x94C8 0x256E3 +0x94C9 0x410E +0x94CB 0x8496 +0x94CC 0x79A5 +0x94CD 0x6A2D +0x94CE 0x23EFA +0x94CF 0x7A3A +0x94D0 0x79F4 +0x94D1 0x416E +0x94D2 0x216E6 +0x94D3 0x4132 +0x94D4 0x9235 +0x94D5 0x79F1 +0x94D6 0x20D4C +0x94D7 0x2498C +0x94D8 0x20299 +0x94D9 0x23DBA +0x94DA 0x2176E +0x94DB 0x3597 +0x94DC 0x556B +0x94DD 0x3570 +0x94DE 0x36AA +0x94DF 0x201D4 +0x94E0 0x20C0D +0x94E1 0x7AE2 +0x94E2 0x5A59 +0x94E3 0x226F5 +0x94E4 0x25AAF +0x94E5 0x25A9C +0x94E6 0x5A0D +0x94E7 0x2025B +0x94E8 0x78F0 +0x94E9 0x5A2A +0x94EA 0x25BC6 +0x94EB 0x7AFE +0x94EC 0x41F9 +0x94ED 0x7C5D +0x94EE 0x7C6D +0x94EF 0x4211 +0x94F0 0x25BB3 +0x94F1 0x25EBC +0x94F2 0x25EA6 +0x94F3 0x7CCD +0x94F4 0x249F9 +0x94F5 0x217B0 +0x94F6 0x7C8E +0x94F7 0x7C7C +0x94F8 0x7CAE +0x94F9 0x6AB2 +0x94FA 0x7DDC +0x94FB 0x7E07 +0x94FC 0x7DD3 +0x94FD 0x7F4E +0x94FE 0x26261 +0x9540 0x2615C +0x9541 0x27B48 +0x9542 0x7D97 +0x9543 0x25E82 +0x9544 0x426A +0x9545 0x26B75 +0x9546 0x20916 +0x9547 0x67D6 +0x9548 0x2004E +0x9549 0x235CF +0x954A 0x57C4 +0x954B 0x26412 +0x954C 0x263F8 +0x954D 0x24962 +0x954E 0x7FDD +0x954F 0x7B27 +0x9550 0x2082C +0x9551 0x25AE9 +0x9552 0x25D43 +0x9553 0x7B0C +0x9554 0x25E0E +0x9555 0x99E6 +0x9556 0x8645 +0x9557 0x9A63 +0x9558 0x6A1C +0x9559 0x2343F +0x955A 0x39E2 +0x955B 0x249F7 +0x955C 0x265AD +0x955D 0x9A1F +0x955E 0x265A0 +0x955F 0x8480 +0x9560 0x27127 +0x9561 0x26CD1 +0x9562 0x44EA +0x9563 0x8137 +0x9564 0x4402 +0x9565 0x80C6 +0x9566 0x8109 +0x9567 0x8142 +0x9568 0x267B4 +0x9569 0x98C3 +0x956A 0x26A42 +0x956B 0x8262 +0x956C 0x8265 +0x956D 0x26A51 +0x956E 0x8453 +0x956F 0x26DA7 +0x9570 0x8610 +0x9571 0x2721B +0x9572 0x5A86 +0x9573 0x417F +0x9574 0x21840 +0x9575 0x5B2B +0x9576 0x218A1 +0x9577 0x5AE4 +0x9578 0x218D8 +0x9579 0x86A0 +0x957A 0x2F9BC +0x957B 0x23D8F +0x957C 0x882D +0x957D 0x27422 +0x957E 0x5A02 +0x95A1 0x886E +0x95A2 0x4F45 +0x95A3 0x8887 +0x95A4 0x88BF +0x95A5 0x88E6 +0x95A6 0x8965 +0x95A7 0x894D +0x95A8 0x25683 +0x95A9 0x8954 +0x95AA 0x27785 +0x95AB 0x27784 +0x95AC 0x28BF5 +0x95AD 0x28BD9 +0x95AE 0x28B9C +0x95AF 0x289F9 +0x95B0 0x3EAD +0x95B1 0x84A3 +0x95B2 0x46F5 +0x95B3 0x46CF +0x95B4 0x37F2 +0x95B5 0x8A3D +0x95B6 0x8A1C +0x95B7 0x29448 +0x95B8 0x5F4D +0x95B9 0x922B +0x95BA 0x24284 +0x95BB 0x65D4 +0x95BC 0x7129 +0x95BD 0x70C4 +0x95BE 0x21845 +0x95BF 0x9D6D +0x95C0 0x8C9F +0x95C1 0x8CE9 +0x95C2 0x27DDC +0x95C3 0x599A +0x95C4 0x77C3 +0x95C5 0x59F0 +0x95C6 0x436E +0x95C7 0x36D4 +0x95C8 0x8E2A +0x95C9 0x8EA7 +0x95CA 0x24C09 +0x95CB 0x8F30 +0x95CC 0x8F4A +0x95CD 0x42F4 +0x95CE 0x6C58 +0x95CF 0x6FBB +0x95D0 0x22321 +0x95D1 0x489B +0x95D2 0x6F79 +0x95D3 0x6E8B +0x95D4 0x217DA +0x95D5 0x9BE9 +0x95D6 0x36B5 +0x95D7 0x2492F +0x95D8 0x90BB +0x95DA 0x5571 +0x95DB 0x4906 +0x95DC 0x91BB +0x95DD 0x9404 +0x95DE 0x28A4B +0x95DF 0x4062 +0x95E0 0x28AFC +0x95E1 0x9427 +0x95E2 0x28C1D +0x95E3 0x28C3B +0x95E4 0x84E5 +0x95E5 0x8A2B +0x95E6 0x9599 +0x95E7 0x95A7 +0x95E8 0x9597 +0x95E9 0x9596 +0x95EA 0x28D34 +0x95EB 0x7445 +0x95EC 0x3EC2 +0x95ED 0x248FF +0x95EE 0x24A42 +0x95EF 0x243EA +0x95F0 0x3EE7 +0x95F1 0x23225 +0x95F2 0x968F +0x95F3 0x28EE7 +0x95F4 0x28E66 +0x95F5 0x28E65 +0x95F6 0x3ECC +0x95F7 0x249ED +0x95F8 0x24A78 +0x95F9 0x23FEE +0x95FA 0x7412 +0x95FB 0x746B +0x95FC 0x3EFC +0x95FD 0x9741 +0x95FE 0x290B0 +0x9640 0x6847 +0x9641 0x4A1D +0x9642 0x29093 +0x9643 0x257DF +0x9645 0x9368 +0x9646 0x28989 +0x9647 0x28C26 +0x9648 0x28B2F +0x9649 0x263BE +0x964A 0x92BA +0x964B 0x5B11 +0x964C 0x8B69 +0x964D 0x493C +0x964E 0x73F9 +0x964F 0x2421B +0x9650 0x979B +0x9651 0x9771 +0x9652 0x9938 +0x9653 0x20F26 +0x9654 0x5DC1 +0x9655 0x28BC5 +0x9656 0x24AB2 +0x9657 0x981F +0x9658 0x294DA +0x9659 0x92F6 +0x965A 0x295D7 +0x965B 0x91E5 +0x965C 0x44C0 +0x965D 0x28B50 +0x965E 0x24A67 +0x965F 0x28B64 +0x9660 0x98DC +0x9661 0x28A45 +0x9662 0x3F00 +0x9663 0x922A +0x9664 0x4925 +0x9665 0x8414 +0x9666 0x993B +0x9667 0x994D +0x9668 0x27B06 +0x9669 0x3DFD +0x966A 0x999B +0x966B 0x4B6F +0x966C 0x99AA +0x966D 0x9A5C +0x966E 0x28B65 +0x966F 0x258C8 +0x9670 0x6A8F +0x9671 0x9A21 +0x9672 0x5AFE +0x9673 0x9A2F +0x9674 0x298F1 +0x9675 0x4B90 +0x9676 0x29948 +0x9677 0x99BC +0x9678 0x4BBD +0x9679 0x4B97 +0x967A 0x937D +0x967B 0x5872 +0x967C 0x21302 +0x967D 0x5822 +0x967E 0x249B8 +0x96A1 0x214E8 +0x96A2 0x7844 +0x96A3 0x2271F +0x96A4 0x23DB8 +0x96A5 0x68C5 +0x96A6 0x3D7D +0x96A7 0x9458 +0x96A8 0x3927 +0x96A9 0x6150 +0x96AA 0x22781 +0x96AB 0x2296B +0x96AC 0x6107 +0x96AD 0x9C4F +0x96AE 0x9C53 +0x96AF 0x9C7B +0x96B0 0x9C35 +0x96B1 0x9C10 +0x96B2 0x9B7F +0x96B3 0x9BCF +0x96B4 0x29E2D +0x96B5 0x9B9F +0x96B6 0x2A1F5 +0x96B7 0x2A0FE +0x96B8 0x9D21 +0x96B9 0x4CAE +0x96BA 0x24104 +0x96BB 0x9E18 +0x96BC 0x4CB0 +0x96BD 0x9D0C +0x96BE 0x2A1B4 +0x96BF 0x2A0ED +0x96C0 0x2A0F3 +0x96C1 0x2992F +0x96C2 0x9DA5 +0x96C3 0x84BD +0x96C4 0x26E12 +0x96C5 0x26FDF +0x96C6 0x26B82 +0x96C7 0x85FC +0x96C8 0x4533 +0x96C9 0x26DA4 +0x96CA 0x26E84 +0x96CB 0x26DF0 +0x96CC 0x8420 +0x96CD 0x85EE +0x96CE 0x26E00 +0x96CF 0x237D7 +0x96D0 0x26064 +0x96D1 0x79E2 +0x96D2 0x2359C +0x96D3 0x23640 +0x96D4 0x492D +0x96D5 0x249DE +0x96D6 0x3D62 +0x96D7 0x93DB +0x96D8 0x92BE +0x96D9 0x9348 +0x96DA 0x202BF +0x96DB 0x78B9 +0x96DC 0x9277 +0x96DD 0x944D +0x96DE 0x4FE4 +0x96DF 0x3440 +0x96E0 0x9064 +0x96E1 0x2555D +0x96E2 0x783D +0x96E3 0x7854 +0x96E4 0x78B6 +0x96E5 0x784B +0x96E6 0x21757 +0x96E7 0x231C9 +0x96E8 0x24941 +0x96E9 0x369A +0x96EA 0x4F72 +0x96EB 0x6FDA +0x96EC 0x6FD9 +0x96EE 0x701E +0x96EF 0x5414 +0x96F0 0x241B5 +0x96F1 0x57BB +0x96F2 0x58F3 +0x96F3 0x578A +0x96F4 0x9D16 +0x96F5 0x57D7 +0x96F6 0x7134 +0x96F7 0x34AF +0x96F8 0x241AC +0x96F9 0x71EB +0x96FA 0x26C40 +0x96FB 0x24F97 +0x96FD 0x217B5 +0x96FE 0x28A49 +0x9740 0x610C +0x9741 0x5ACE +0x9742 0x5A0B +0x9743 0x42BC +0x9744 0x24488 +0x9745 0x372C +0x9746 0x4B7B +0x9747 0x289FC +0x9748 0x93BB +0x9749 0x93B8 +0x974A 0x218D6 +0x974B 0x20F1D +0x974C 0x8472 +0x974D 0x26CC0 +0x974E 0x21413 +0x974F 0x242FA +0x9750 0x22C26 +0x9751 0x243C1 +0x9752 0x5994 +0x9753 0x23DB7 +0x9754 0x26741 +0x9755 0x7DA8 +0x9756 0x2615B +0x9757 0x260A4 +0x9758 0x249B9 +0x9759 0x2498B +0x975A 0x289FA +0x975B 0x92E5 +0x975C 0x73E2 +0x975D 0x3EE9 +0x975E 0x74B4 +0x975F 0x28B63 +0x9760 0x2189F +0x9761 0x3EE1 +0x9762 0x24AB3 +0x9763 0x6AD8 +0x9764 0x73F3 +0x9765 0x73FB +0x9766 0x3ED6 +0x9767 0x24A3E +0x9768 0x24A94 +0x9769 0x217D9 +0x976A 0x24A66 +0x976B 0x203A7 +0x976C 0x21424 +0x976D 0x249E5 +0x976E 0x7448 +0x976F 0x24916 +0x9770 0x70A5 +0x9771 0x24976 +0x9772 0x9284 +0x9773 0x73E6 +0x9774 0x935F +0x9775 0x204FE +0x9776 0x9331 +0x9777 0x28ACE +0x9778 0x28A16 +0x9779 0x9386 +0x977A 0x28BE7 +0x977B 0x255D5 +0x977C 0x4935 +0x977D 0x28A82 +0x977E 0x716B +0x97A1 0x24943 +0x97A2 0x20CFF +0x97A3 0x56A4 +0x97A4 0x2061A +0x97A5 0x20BEB +0x97A6 0x20CB8 +0x97A7 0x5502 +0x97A8 0x79C4 +0x97A9 0x217FA +0x97AA 0x7DFE +0x97AB 0x216C2 +0x97AC 0x24A50 +0x97AD 0x21852 +0x97AE 0x452E +0x97AF 0x9401 +0x97B0 0x370A +0x97B1 0x28AC0 +0x97B2 0x249AD +0x97B3 0x59B0 +0x97B4 0x218BF +0x97B5 0x21883 +0x97B6 0x27484 +0x97B7 0x5AA1 +0x97B8 0x36E2 +0x97B9 0x23D5B +0x97BA 0x36B0 +0x97BB 0x925F +0x97BC 0x5A79 +0x97BD 0x28A81 +0x97BE 0x21862 +0x97BF 0x9374 +0x97C0 0x3CCD +0x97C1 0x20AB4 +0x97C2 0x4A96 +0x97C3 0x398A +0x97C4 0x50F4 +0x97C5 0x3D69 +0x97C6 0x3D4C +0x97C7 0x2139C +0x97C8 0x7175 +0x97C9 0x42FB +0x97CA 0x28218 +0x97CB 0x6E0F +0x97CC 0x290E4 +0x97CD 0x44EB +0x97CE 0x6D57 +0x97CF 0x27E4F +0x97D0 0x7067 +0x97D1 0x6CAF +0x97D2 0x3CD6 +0x97D3 0x23FED +0x97D4 0x23E2D +0x97D5 0x6E02 +0x97D6 0x6F0C +0x97D7 0x3D6F +0x97D8 0x203F5 +0x97D9 0x7551 +0x97DA 0x36BC +0x97DB 0x34C8 +0x97DC 0x4680 +0x97DD 0x3EDA +0x97DE 0x4871 +0x97DF 0x59C4 +0x97E0 0x926E +0x97E1 0x493E +0x97E2 0x8F41 +0x97E3 0x28C1C +0x97E4 0x26BC0 +0x97E5 0x5812 +0x97E6 0x57C8 +0x97E7 0x36D6 +0x97E8 0x21452 +0x97E9 0x70FE +0x97EA 0x24362 +0x97EB 0x24A71 +0x97EC 0x22FE3 +0x97ED 0x212B0 +0x97EE 0x223BD +0x97EF 0x68B9 +0x97F0 0x6967 +0x97F1 0x21398 +0x97F2 0x234E5 +0x97F3 0x27BF4 +0x97F4 0x236DF +0x97F5 0x28A83 +0x97F6 0x237D6 +0x97F7 0x233FA +0x97F8 0x24C9F +0x97F9 0x6A1A +0x97FA 0x236AD +0x97FB 0x26CB7 +0x97FC 0x843E +0x97FD 0x44DF +0x97FE 0x44CE +0x9840 0x26D26 +0x9841 0x26D51 +0x9842 0x26C82 +0x9843 0x26FDE +0x9844 0x6F17 +0x9845 0x27109 +0x9846 0x833D +0x9847 0x2173A +0x9848 0x83ED +0x9849 0x26C80 +0x984A 0x27053 +0x984B 0x217DB +0x984C 0x5989 +0x984D 0x5A82 +0x984E 0x217B3 +0x984F 0x5A61 +0x9850 0x5A71 +0x9851 0x21905 +0x9852 0x241FC +0x9853 0x372D +0x9854 0x59EF +0x9855 0x2173C +0x9856 0x36C7 +0x9857 0x718E +0x9858 0x9390 +0x9859 0x669A +0x985A 0x242A5 +0x985B 0x5A6E +0x985C 0x5A2B +0x985D 0x24293 +0x985E 0x6A2B +0x985F 0x23EF9 +0x9860 0x27736 +0x9861 0x2445B +0x9862 0x242CA +0x9863 0x711D +0x9864 0x24259 +0x9865 0x289E1 +0x9866 0x4FB0 +0x9867 0x26D28 +0x9868 0x5CC2 +0x9869 0x244CE +0x986A 0x27E4D +0x986B 0x243BD +0x986C 0x6A0C +0x986D 0x24256 +0x986E 0x21304 +0x986F 0x70A6 +0x9870 0x7133 +0x9871 0x243E9 +0x9872 0x3DA5 +0x9873 0x6CDF +0x9874 0x2F825 +0x9875 0x24A4F +0x9876 0x7E65 +0x9877 0x59EB +0x9878 0x5D2F +0x9879 0x3DF3 +0x987A 0x5F5C +0x987B 0x24A5D +0x987C 0x217DF +0x987D 0x7DA4 +0x987E 0x8426 +0x98A1 0x5485 +0x98A2 0x23AFA +0x98A3 0x23300 +0x98A4 0x20214 +0x98A5 0x577E +0x98A6 0x208D5 +0x98A7 0x20619 +0x98A8 0x3FE5 +0x98A9 0x21F9E +0x98AA 0x2A2B6 +0x98AB 0x7003 +0x98AC 0x2915B +0x98AD 0x5D70 +0x98AE 0x738F +0x98AF 0x7CD3 +0x98B0 0x28A59 +0x98B1 0x29420 +0x98B2 0x4FC8 +0x98B3 0x7FE7 +0x98B4 0x72CD +0x98B5 0x7310 +0x98B6 0x27AF4 +0x98B7 0x7338 +0x98B8 0x7339 +0x98B9 0x256F6 +0x98BA 0x7341 +0x98BB 0x7348 +0x98BC 0x3EA9 +0x98BD 0x27B18 +0x98BE 0x906C +0x98BF 0x71F5 +0x98C0 0x248F2 +0x98C1 0x73E1 +0x98C2 0x81F6 +0x98C3 0x3ECA +0x98C4 0x770C +0x98C5 0x3ED1 +0x98C6 0x6CA2 +0x98C7 0x56FD +0x98C8 0x7419 +0x98C9 0x741E +0x98CA 0x741F +0x98CB 0x3EE2 +0x98CC 0x3EF0 +0x98CD 0x3EF4 +0x98CE 0x3EFA +0x98CF 0x74D3 +0x98D0 0x3F0E +0x98D1 0x3F53 +0x98D2 0x7542 +0x98D3 0x756D +0x98D4 0x7572 +0x98D5 0x758D +0x98D6 0x3F7C +0x98D7 0x75C8 +0x98D8 0x75DC +0x98D9 0x3FC0 +0x98DA 0x764D +0x98DB 0x3FD7 +0x98DC 0x7674 +0x98DD 0x3FDC +0x98DE 0x767A +0x98DF 0x24F5C +0x98E0 0x7188 +0x98E1 0x5623 +0x98E2 0x8980 +0x98E3 0x5869 +0x98E4 0x401D +0x98E5 0x7743 +0x98E6 0x4039 +0x98E7 0x6761 +0x98E8 0x4045 +0x98E9 0x35DB +0x98EA 0x7798 +0x98EB 0x406A +0x98EC 0x406F +0x98ED 0x5C5E +0x98EE 0x77BE +0x98EF 0x77CB +0x98F0 0x58F2 +0x98F1 0x7818 +0x98F2 0x70B9 +0x98F3 0x781C +0x98F4 0x40A8 +0x98F5 0x7839 +0x98F6 0x7847 +0x98F7 0x7851 +0x98F8 0x7866 +0x98F9 0x8448 +0x98FA 0x25535 +0x98FB 0x7933 +0x98FC 0x6803 +0x98FD 0x7932 +0x98FE 0x4103 +0x9940 0x4109 +0x9941 0x7991 +0x9942 0x7999 +0x9943 0x8FBB +0x9944 0x7A06 +0x9945 0x8FBC +0x9946 0x4167 +0x9947 0x7A91 +0x9948 0x41B2 +0x9949 0x7ABC +0x994A 0x8279 +0x994B 0x41C4 +0x994C 0x7ACF +0x994D 0x7ADB +0x994E 0x41CF +0x994F 0x4E21 +0x9950 0x7B62 +0x9951 0x7B6C +0x9952 0x7B7B +0x9953 0x7C12 +0x9954 0x7C1B +0x9955 0x4260 +0x9956 0x427A +0x9957 0x7C7B +0x9958 0x7C9C +0x9959 0x428C +0x995A 0x7CB8 +0x995B 0x4294 +0x995C 0x7CED +0x995D 0x8F93 +0x995E 0x70C0 +0x995F 0x20CCF +0x9960 0x7DCF +0x9961 0x7DD4 +0x9962 0x7DD0 +0x9963 0x7DFD +0x9964 0x7FAE +0x9965 0x7FB4 +0x9966 0x729F +0x9967 0x4397 +0x9968 0x8020 +0x9969 0x8025 +0x996A 0x7B39 +0x996B 0x802E +0x996C 0x8031 +0x996D 0x8054 +0x996E 0x3DCC +0x996F 0x57B4 +0x9970 0x70A0 +0x9971 0x80B7 +0x9972 0x80E9 +0x9973 0x43ED +0x9974 0x810C +0x9975 0x732A +0x9976 0x810E +0x9977 0x8112 +0x9978 0x7560 +0x9979 0x8114 +0x997A 0x4401 +0x997B 0x3B39 +0x997C 0x8156 +0x997D 0x8159 +0x997E 0x815A +0x99A1 0x4413 +0x99A2 0x583A +0x99A3 0x817C +0x99A4 0x8184 +0x99A5 0x4425 +0x99A6 0x8193 +0x99A7 0x442D +0x99A8 0x81A5 +0x99A9 0x57EF +0x99AA 0x81C1 +0x99AB 0x81E4 +0x99AC 0x8254 +0x99AD 0x448F +0x99AE 0x82A6 +0x99AF 0x8276 +0x99B0 0x82CA +0x99B1 0x82D8 +0x99B2 0x82FF +0x99B3 0x44B0 +0x99B4 0x8357 +0x99B5 0x9669 +0x99B6 0x698A +0x99B7 0x8405 +0x99B8 0x70F5 +0x99B9 0x8464 +0x99BA 0x60E3 +0x99BB 0x8488 +0x99BC 0x4504 +0x99BD 0x84BE +0x99BE 0x84E1 +0x99BF 0x84F8 +0x99C0 0x8510 +0x99C1 0x8538 +0x99C2 0x8552 +0x99C3 0x453B +0x99C4 0x856F +0x99C5 0x8570 +0x99C6 0x85E0 +0x99C7 0x4577 +0x99C8 0x8672 +0x99C9 0x8692 +0x99CA 0x86B2 +0x99CB 0x86EF +0x99CC 0x9645 +0x99CD 0x878B +0x99CE 0x4606 +0x99CF 0x4617 +0x99D0 0x88AE +0x99D1 0x88FF +0x99D2 0x8924 +0x99D3 0x8947 +0x99D4 0x8991 +0x99D5 0x27967 +0x99D6 0x8A29 +0x99D7 0x8A38 +0x99D8 0x8A94 +0x99D9 0x8AB4 +0x99DA 0x8C51 +0x99DB 0x8CD4 +0x99DC 0x8CF2 +0x99DD 0x8D1C +0x99DE 0x4798 +0x99DF 0x585F +0x99E0 0x8DC3 +0x99E1 0x47ED +0x99E2 0x4EEE +0x99E3 0x8E3A +0x99E4 0x55D8 +0x99E5 0x5754 +0x99E6 0x8E71 +0x99E7 0x55F5 +0x99E8 0x8EB0 +0x99E9 0x4837 +0x99EA 0x8ECE +0x99EB 0x8EE2 +0x99EC 0x8EE4 +0x99ED 0x8EED +0x99EE 0x8EF2 +0x99EF 0x8FB7 +0x99F0 0x8FC1 +0x99F1 0x8FCA +0x99F2 0x8FCC +0x99F3 0x9033 +0x99F4 0x99C4 +0x99F5 0x48AD +0x99F6 0x98E0 +0x99F7 0x9213 +0x99F8 0x491E +0x99F9 0x9228 +0x99FA 0x9258 +0x99FB 0x926B +0x99FC 0x92B1 +0x99FD 0x92AE +0x99FE 0x92BF +0x9A40 0x92E3 +0x9A41 0x92EB +0x9A42 0x92F3 +0x9A43 0x92F4 +0x9A44 0x92FD +0x9A45 0x9343 +0x9A46 0x9384 +0x9A47 0x93AD +0x9A48 0x4945 +0x9A49 0x4951 +0x9A4A 0x9EBF +0x9A4B 0x9417 +0x9A4C 0x5301 +0x9A4D 0x941D +0x9A4E 0x942D +0x9A4F 0x943E +0x9A50 0x496A +0x9A51 0x9454 +0x9A52 0x9479 +0x9A53 0x952D +0x9A54 0x95A2 +0x9A55 0x49A7 +0x9A56 0x95F4 +0x9A57 0x9633 +0x9A58 0x49E5 +0x9A59 0x67A0 +0x9A5A 0x4A24 +0x9A5B 0x9740 +0x9A5C 0x4A35 +0x9A5D 0x97B2 +0x9A5E 0x97C2 +0x9A5F 0x5654 +0x9A60 0x4AE4 +0x9A61 0x60E8 +0x9A62 0x98B9 +0x9A63 0x4B19 +0x9A64 0x98F1 +0x9A65 0x5844 +0x9A66 0x990E +0x9A67 0x9919 +0x9A68 0x51B4 +0x9A69 0x991C +0x9A6A 0x9937 +0x9A6B 0x9942 +0x9A6C 0x995D +0x9A6D 0x9962 +0x9A6E 0x4B70 +0x9A6F 0x99C5 +0x9A70 0x4B9D +0x9A71 0x9A3C +0x9A72 0x9B0F +0x9A73 0x7A83 +0x9A74 0x9B69 +0x9A75 0x9B81 +0x9A76 0x9BDD +0x9A77 0x9BF1 +0x9A78 0x9BF4 +0x9A79 0x4C6D +0x9A7A 0x9C20 +0x9A7B 0x376F +0x9A7C 0x21BC2 +0x9A7D 0x9D49 +0x9A7E 0x9C3A +0x9AA1 0x9EFE +0x9AA2 0x5650 +0x9AA3 0x9D93 +0x9AA4 0x9DBD +0x9AA5 0x9DC0 +0x9AA6 0x9DFC +0x9AA7 0x94F6 +0x9AA8 0x8FB6 +0x9AA9 0x9E7B +0x9AAA 0x9EAC +0x9AAB 0x9EB1 +0x9AAC 0x9EBD +0x9AAD 0x9EC6 +0x9AAE 0x94DC +0x9AAF 0x9EE2 +0x9AB0 0x9EF1 +0x9AB1 0x9EF8 +0x9AB2 0x7AC8 +0x9AB3 0x9F44 +0x9AB4 0x20094 +0x9AB5 0x202B7 +0x9AB6 0x203A0 +0x9AB7 0x691A +0x9AB8 0x94C3 +0x9AB9 0x59AC +0x9ABA 0x204D7 +0x9ABB 0x5840 +0x9ABC 0x94C1 +0x9ABD 0x37B9 +0x9ABE 0x205D5 +0x9ABF 0x20615 +0x9AC0 0x20676 +0x9AC1 0x216BA +0x9AC2 0x5757 +0x9AC3 0x7173 +0x9AC4 0x20AC2 +0x9AC5 0x20ACD +0x9AC6 0x20BBF +0x9AC7 0x546A +0x9AC8 0x2F83B +0x9AC9 0x20BCB +0x9ACA 0x549E +0x9ACB 0x20BFB +0x9ACC 0x20C3B +0x9ACD 0x20C53 +0x9ACE 0x20C65 +0x9ACF 0x20C7C +0x9AD0 0x60E7 +0x9AD1 0x20C8D +0x9AD2 0x567A +0x9AD3 0x20CB5 +0x9AD4 0x20CDD +0x9AD5 0x20CED +0x9AD6 0x20D6F +0x9AD7 0x20DB2 +0x9AD8 0x20DC8 +0x9AD9 0x6955 +0x9ADA 0x9C2F +0x9ADB 0x87A5 +0x9ADC 0x20E04 +0x9ADD 0x20E0E +0x9ADE 0x20ED7 +0x9ADF 0x20F90 +0x9AE0 0x20F2D +0x9AE1 0x20E73 +0x9AE2 0x5C20 +0x9AE3 0x20FBC +0x9AE4 0x5E0B +0x9AE5 0x2105C +0x9AE6 0x2104F +0x9AE7 0x21076 +0x9AE8 0x671E +0x9AE9 0x2107B +0x9AEA 0x21088 +0x9AEB 0x21096 +0x9AEC 0x3647 +0x9AED 0x210BF +0x9AEE 0x210D3 +0x9AEF 0x2112F +0x9AF0 0x2113B +0x9AF1 0x5364 +0x9AF2 0x84AD +0x9AF3 0x212E3 +0x9AF4 0x21375 +0x9AF5 0x21336 +0x9AF6 0x8B81 +0x9AF7 0x21577 +0x9AF8 0x21619 +0x9AF9 0x217C3 +0x9AFA 0x217C7 +0x9AFB 0x4E78 +0x9AFC 0x70BB +0x9AFD 0x2182D +0x9AFE 0x2196A +0x9B40 0x21A2D +0x9B41 0x21A45 +0x9B42 0x21C2A +0x9B43 0x21C70 +0x9B44 0x21CAC +0x9B45 0x21EC8 +0x9B46 0x62C3 +0x9B47 0x21ED5 +0x9B48 0x21F15 +0x9B49 0x7198 +0x9B4A 0x6855 +0x9B4B 0x22045 +0x9B4C 0x69E9 +0x9B4D 0x36C8 +0x9B4E 0x2227C +0x9B4F 0x223D7 +0x9B50 0x223FA +0x9B51 0x2272A +0x9B52 0x22871 +0x9B53 0x2294F +0x9B54 0x82FD +0x9B55 0x22967 +0x9B56 0x22993 +0x9B57 0x22AD5 +0x9B58 0x89A5 +0x9B59 0x22AE8 +0x9B5A 0x8FA0 +0x9B5B 0x22B0E +0x9B5C 0x97B8 +0x9B5D 0x22B3F +0x9B5E 0x9847 +0x9B5F 0x9ABD +0x9B60 0x22C4C +0x9B62 0x22C88 +0x9B63 0x22CB7 +0x9B64 0x25BE8 +0x9B65 0x22D08 +0x9B66 0x22D12 +0x9B67 0x22DB7 +0x9B68 0x22D95 +0x9B69 0x22E42 +0x9B6A 0x22F74 +0x9B6B 0x22FCC +0x9B6C 0x23033 +0x9B6D 0x23066 +0x9B6E 0x2331F +0x9B6F 0x233DE +0x9B70 0x5FB1 +0x9B71 0x6648 +0x9B72 0x66BF +0x9B73 0x27A79 +0x9B74 0x23567 +0x9B75 0x235F3 +0x9B77 0x249BA +0x9B79 0x2361A +0x9B7A 0x23716 +0x9B7C 0x20346 +0x9B7D 0x58B5 +0x9B7E 0x670E +0x9BA1 0x6918 +0x9BA2 0x23AA7 +0x9BA3 0x27657 +0x9BA4 0x25FE2 +0x9BA5 0x23E11 +0x9BA6 0x23EB9 +0x9BA7 0x275FE +0x9BA8 0x2209A +0x9BA9 0x48D0 +0x9BAA 0x4AB8 +0x9BAB 0x24119 +0x9BAC 0x28A9A +0x9BAD 0x242EE +0x9BAE 0x2430D +0x9BAF 0x2403B +0x9BB0 0x24334 +0x9BB1 0x24396 +0x9BB2 0x24A45 +0x9BB3 0x205CA +0x9BB4 0x51D2 +0x9BB5 0x20611 +0x9BB6 0x599F +0x9BB7 0x21EA8 +0x9BB8 0x3BBE +0x9BB9 0x23CFF +0x9BBA 0x24404 +0x9BBB 0x244D6 +0x9BBC 0x5788 +0x9BBD 0x24674 +0x9BBE 0x399B +0x9BBF 0x2472F +0x9BC0 0x285E8 +0x9BC1 0x299C9 +0x9BC2 0x3762 +0x9BC3 0x221C3 +0x9BC4 0x8B5E +0x9BC5 0x28B4E +0x9BC7 0x24812 +0x9BC8 0x248FB +0x9BC9 0x24A15 +0x9BCA 0x7209 +0x9BCB 0x24AC0 +0x9BCC 0x20C78 +0x9BCD 0x5965 +0x9BCE 0x24EA5 +0x9BCF 0x24F86 +0x9BD0 0x20779 +0x9BD1 0x8EDA +0x9BD2 0x2502C +0x9BD3 0x528F +0x9BD4 0x573F +0x9BD5 0x7171 +0x9BD6 0x25299 +0x9BD7 0x25419 +0x9BD8 0x23F4A +0x9BD9 0x24AA7 +0x9BDA 0x55BC +0x9BDB 0x25446 +0x9BDC 0x2546E +0x9BDD 0x26B52 +0x9BDF 0x3473 +0x9BE0 0x2553F +0x9BE1 0x27632 +0x9BE2 0x2555E +0x9BE3 0x4718 +0x9BE4 0x25562 +0x9BE5 0x25566 +0x9BE6 0x257C7 +0x9BE7 0x2493F +0x9BE8 0x2585D +0x9BE9 0x5066 +0x9BEA 0x34FB +0x9BEB 0x233CC +0x9BED 0x25903 +0x9BEE 0x477C +0x9BEF 0x28948 +0x9BF0 0x25AAE +0x9BF1 0x25B89 +0x9BF2 0x25C06 +0x9BF3 0x21D90 +0x9BF4 0x57A1 +0x9BF5 0x7151 +0x9BF7 0x26102 +0x9BF8 0x27C12 +0x9BF9 0x9056 +0x9BFA 0x261B2 +0x9BFB 0x24F9A +0x9BFC 0x8B62 +0x9BFD 0x26402 +0x9BFE 0x2644A +0x9C40 0x5D5B +0x9C41 0x26BF7 +0x9C43 0x26484 +0x9C44 0x2191C +0x9C45 0x8AEA +0x9C46 0x249F6 +0x9C47 0x26488 +0x9C48 0x23FEF +0x9C49 0x26512 +0x9C4A 0x4BC0 +0x9C4B 0x265BF +0x9C4C 0x266B5 +0x9C4D 0x2271B +0x9C4E 0x9465 +0x9C4F 0x257E1 +0x9C50 0x6195 +0x9C51 0x5A27 +0x9C52 0x2F8CD +0x9C54 0x56B9 +0x9C55 0x24521 +0x9C56 0x266FC +0x9C57 0x4E6A +0x9C58 0x24934 +0x9C59 0x9656 +0x9C5A 0x6D8F +0x9C5B 0x26CBD +0x9C5C 0x3618 +0x9C5D 0x8977 +0x9C5E 0x26799 +0x9C5F 0x2686E +0x9C60 0x26411 +0x9C61 0x2685E +0x9C63 0x268C7 +0x9C64 0x7B42 +0x9C65 0x290C0 +0x9C66 0x20A11 +0x9C67 0x26926 +0x9C69 0x26939 +0x9C6A 0x7A45 +0x9C6C 0x269FA +0x9C6D 0x9A26 +0x9C6E 0x26A2D +0x9C6F 0x365F +0x9C70 0x26469 +0x9C71 0x20021 +0x9C72 0x7983 +0x9C73 0x26A34 +0x9C74 0x26B5B +0x9C75 0x5D2C +0x9C76 0x23519 +0x9C78 0x26B9D +0x9C79 0x46D0 +0x9C7A 0x26CA4 +0x9C7B 0x753B +0x9C7C 0x8865 +0x9C7D 0x26DAE +0x9C7E 0x58B6 +0x9CA1 0x371C +0x9CA2 0x2258D +0x9CA3 0x2704B +0x9CA4 0x271CD +0x9CA5 0x3C54 +0x9CA6 0x27280 +0x9CA7 0x27285 +0x9CA8 0x9281 +0x9CA9 0x2217A +0x9CAA 0x2728B +0x9CAB 0x9330 +0x9CAC 0x272E6 +0x9CAD 0x249D0 +0x9CAE 0x6C39 +0x9CAF 0x949F +0x9CB0 0x27450 +0x9CB1 0x20EF8 +0x9CB2 0x8827 +0x9CB3 0x88F5 +0x9CB4 0x22926 +0x9CB5 0x28473 +0x9CB6 0x217B1 +0x9CB7 0x6EB8 +0x9CB8 0x24A2A +0x9CB9 0x21820 +0x9CBA 0x39A4 +0x9CBB 0x36B9 +0x9CBE 0x453F +0x9CBF 0x66B6 +0x9CC0 0x29CAD +0x9CC1 0x298A4 +0x9CC2 0x8943 +0x9CC3 0x277CC +0x9CC4 0x27858 +0x9CC5 0x56D6 +0x9CC6 0x40DF +0x9CC7 0x2160A +0x9CC8 0x39A1 +0x9CC9 0x2372F +0x9CCA 0x280E8 +0x9CCB 0x213C5 +0x9CCC 0x71AD +0x9CCD 0x8366 +0x9CCE 0x279DD +0x9CCF 0x291A8 +0x9CD1 0x4CB7 +0x9CD2 0x270AF +0x9CD3 0x289AB +0x9CD4 0x279FD +0x9CD5 0x27A0A +0x9CD6 0x27B0B +0x9CD7 0x27D66 +0x9CD8 0x2417A +0x9CD9 0x7B43 +0x9CDA 0x797E +0x9CDB 0x28009 +0x9CDC 0x6FB5 +0x9CDD 0x2A2DF +0x9CDE 0x6A03 +0x9CDF 0x28318 +0x9CE0 0x53A2 +0x9CE1 0x26E07 +0x9CE2 0x93BF +0x9CE3 0x6836 +0x9CE4 0x975D +0x9CE5 0x2816F +0x9CE6 0x28023 +0x9CE7 0x269B5 +0x9CE8 0x213ED +0x9CE9 0x2322F +0x9CEA 0x28048 +0x9CEB 0x5D85 +0x9CEC 0x28C30 +0x9CED 0x28083 +0x9CEE 0x5715 +0x9CEF 0x9823 +0x9CF0 0x28949 +0x9CF1 0x5DAB +0x9CF2 0x24988 +0x9CF3 0x65BE +0x9CF4 0x69D5 +0x9CF5 0x53D2 +0x9CF6 0x24AA5 +0x9CF7 0x23F81 +0x9CF8 0x3C11 +0x9CF9 0x6736 +0x9CFA 0x28090 +0x9CFB 0x280F4 +0x9CFC 0x2812E +0x9CFD 0x21FA1 +0x9CFE 0x2814F +0x9D40 0x28189 +0x9D41 0x281AF +0x9D42 0x2821A +0x9D43 0x28306 +0x9D44 0x2832F +0x9D45 0x2838A +0x9D46 0x35CA +0x9D47 0x28468 +0x9D48 0x286AA +0x9D49 0x48FA +0x9D4A 0x63E6 +0x9D4B 0x28956 +0x9D4C 0x7808 +0x9D4D 0x9255 +0x9D4E 0x289B8 +0x9D4F 0x43F2 +0x9D50 0x289E7 +0x9D51 0x43DF +0x9D52 0x289E8 +0x9D53 0x28B46 +0x9D54 0x28BD4 +0x9D55 0x59F8 +0x9D56 0x28C09 +0x9D58 0x28FC5 +0x9D59 0x290EC +0x9D5B 0x29110 +0x9D5C 0x2913C +0x9D5D 0x3DF7 +0x9D5E 0x2915E +0x9D5F 0x24ACA +0x9D60 0x8FD0 +0x9D61 0x728F +0x9D62 0x568B +0x9D63 0x294E7 +0x9D64 0x295E9 +0x9D65 0x295B0 +0x9D66 0x295B8 +0x9D67 0x29732 +0x9D68 0x298D1 +0x9D69 0x29949 +0x9D6A 0x2996A +0x9D6B 0x299C3 +0x9D6C 0x29A28 +0x9D6D 0x29B0E +0x9D6E 0x29D5A +0x9D6F 0x29D9B +0x9D70 0x7E9F +0x9D71 0x29EF8 +0x9D72 0x29F23 +0x9D73 0x4CA4 +0x9D74 0x9547 +0x9D75 0x2A293 +0x9D76 0x71A2 +0x9D77 0x2A2FF +0x9D78 0x4D91 +0x9D79 0x9012 +0x9D7A 0x2A5CB +0x9D7B 0x4D9C +0x9D7C 0x20C9C +0x9D7D 0x8FBE +0x9D7E 0x55C1 +0x9DA1 0x8FBA +0x9DA2 0x224B0 +0x9DA3 0x8FB9 +0x9DA4 0x24A93 +0x9DA5 0x4509 +0x9DA6 0x7E7F +0x9DA7 0x6F56 +0x9DA8 0x6AB1 +0x9DA9 0x4EEA +0x9DAA 0x34E4 +0x9DAB 0x28B2C +0x9DAC 0x2789D +0x9DAD 0x373A +0x9DAE 0x8E80 +0x9DAF 0x217F5 +0x9DB0 0x28024 +0x9DB1 0x28B6C +0x9DB2 0x28B99 +0x9DB3 0x27A3E +0x9DB4 0x266AF +0x9DB5 0x3DEB +0x9DB6 0x27655 +0x9DB7 0x23CB7 +0x9DB8 0x25635 +0x9DB9 0x25956 +0x9DBA 0x4E9A +0x9DBB 0x25E81 +0x9DBC 0x26258 +0x9DBD 0x56BF +0x9DBE 0x20E6D +0x9DBF 0x8E0E +0x9DC0 0x5B6D +0x9DC1 0x23E88 +0x9DC2 0x24C9E +0x9DC3 0x63DE +0x9DC5 0x217F6 +0x9DC6 0x2187B +0x9DC7 0x6530 +0x9DC8 0x562D +0x9DC9 0x25C4A +0x9DCA 0x541A +0x9DCB 0x25311 +0x9DCC 0x3DC6 +0x9DCD 0x29D98 +0x9DCE 0x4C7D +0x9DCF 0x5622 +0x9DD0 0x561E +0x9DD1 0x7F49 +0x9DD2 0x25ED8 +0x9DD3 0x5975 +0x9DD4 0x23D40 +0x9DD5 0x8770 +0x9DD6 0x4E1C +0x9DD7 0x20FEA +0x9DD8 0x20D49 +0x9DD9 0x236BA +0x9DDA 0x8117 +0x9DDB 0x9D5E +0x9DDC 0x8D18 +0x9DDD 0x763B +0x9DDE 0x9C45 +0x9DDF 0x764E +0x9DE0 0x77B9 +0x9DE1 0x9345 +0x9DE2 0x5432 +0x9DE3 0x8148 +0x9DE4 0x82F7 +0x9DE5 0x5625 +0x9DE6 0x8132 +0x9DE7 0x8418 +0x9DE8 0x80BD +0x9DE9 0x55EA +0x9DEA 0x7962 +0x9DEB 0x5643 +0x9DEC 0x5416 +0x9DED 0x20E9D +0x9DEE 0x35CE +0x9DEF 0x5605 +0x9DF0 0x55F1 +0x9DF1 0x66F1 +0x9DF2 0x282E2 +0x9DF3 0x362D +0x9DF4 0x7534 +0x9DF5 0x55F0 +0x9DF6 0x55BA +0x9DF7 0x5497 +0x9DF8 0x5572 +0x9DF9 0x20C41 +0x9DFA 0x20C96 +0x9DFB 0x5ED0 +0x9DFC 0x25148 +0x9DFD 0x20E76 +0x9DFE 0x22C62 +0x9E40 0x20EA2 +0x9E41 0x9EAB +0x9E42 0x7D5A +0x9E43 0x55DE +0x9E44 0x21075 +0x9E45 0x629D +0x9E46 0x976D +0x9E47 0x5494 +0x9E48 0x8CCD +0x9E49 0x71F6 +0x9E4A 0x9176 +0x9E4B 0x63FC +0x9E4C 0x63B9 +0x9E4D 0x63FE +0x9E4E 0x5569 +0x9E4F 0x22B43 +0x9E50 0x9C72 +0x9E51 0x22EB3 +0x9E52 0x519A +0x9E53 0x34DF +0x9E54 0x20DA7 +0x9E55 0x51A7 +0x9E56 0x544D +0x9E57 0x551E +0x9E58 0x5513 +0x9E59 0x7666 +0x9E5A 0x8E2D +0x9E5B 0x2688A +0x9E5C 0x75B1 +0x9E5D 0x80B6 +0x9E5E 0x8804 +0x9E5F 0x8786 +0x9E60 0x88C7 +0x9E61 0x81B6 +0x9E62 0x841C +0x9E63 0x210C1 +0x9E64 0x44EC +0x9E65 0x7304 +0x9E66 0x24706 +0x9E67 0x5B90 +0x9E68 0x830B +0x9E69 0x26893 +0x9E6A 0x567B +0x9E6B 0x226F4 +0x9E6C 0x27D2F +0x9E6D 0x241A3 +0x9E6E 0x27D73 +0x9E6F 0x26ED0 +0x9E70 0x272B6 +0x9E71 0x9170 +0x9E72 0x211D9 +0x9E73 0x9208 +0x9E74 0x23CFC +0x9E75 0x2A6A9 +0x9E76 0x20EAC +0x9E77 0x20EF9 +0x9E78 0x7266 +0x9E79 0x21CA2 +0x9E7A 0x474E +0x9E7B 0x24FC2 +0x9E7C 0x27FF9 +0x9E7D 0x20FEB +0x9E7E 0x40FA +0x9EA1 0x9C5D +0x9EA2 0x651F +0x9EA3 0x22DA0 +0x9EA4 0x48F3 +0x9EA5 0x247E0 +0x9EA6 0x29D7C +0x9EA7 0x20FEC +0x9EA8 0x20E0A +0x9EAA 0x275A3 +0x9EAB 0x20FED +0x9EAD 0x26048 +0x9EAE 0x21187 +0x9EAF 0x71A3 +0x9EB0 0x7E8E +0x9EB1 0x9D50 +0x9EB2 0x4E1A +0x9EB3 0x4E04 +0x9EB4 0x3577 +0x9EB5 0x5B0D +0x9EB6 0x6CB2 +0x9EB7 0x5367 +0x9EB8 0x36AC +0x9EB9 0x39DC +0x9EBA 0x537D +0x9EBB 0x36A5 +0x9EBC 0x24618 +0x9EBD 0x589A +0x9EBE 0x24B6E +0x9EBF 0x822D +0x9EC0 0x544B +0x9EC1 0x57AA +0x9EC2 0x25A95 +0x9EC3 0x20979 +0x9EC5 0x3A52 +0x9EC6 0x22465 +0x9EC7 0x7374 +0x9EC8 0x29EAC +0x9EC9 0x4D09 +0x9ECA 0x9BED +0x9ECB 0x23CFE +0x9ECC 0x29F30 +0x9ECD 0x4C5B +0x9ECE 0x24FA9 +0x9ECF 0x2959E +0x9ED0 0x29FDE +0x9ED1 0x845C +0x9ED2 0x23DB6 +0x9ED3 0x272B2 +0x9ED4 0x267B3 +0x9ED5 0x23720 +0x9ED6 0x632E +0x9ED7 0x7D25 +0x9ED8 0x23EF7 +0x9ED9 0x23E2C +0x9EDA 0x3A2A +0x9EDB 0x9008 +0x9EDC 0x52CC +0x9EDD 0x3E74 +0x9EDE 0x367A +0x9EDF 0x45E9 +0x9EE0 0x2048E +0x9EE1 0x7640 +0x9EE2 0x5AF0 +0x9EE3 0x20EB6 +0x9EE4 0x787A +0x9EE5 0x27F2E +0x9EE6 0x58A7 +0x9EE7 0x40BF +0x9EE8 0x567C +0x9EE9 0x9B8B +0x9EEA 0x5D74 +0x9EEB 0x7654 +0x9EEC 0x2A434 +0x9EED 0x9E85 +0x9EEE 0x4CE1 +0x9EF0 0x37FB +0x9EF1 0x6119 +0x9EF2 0x230DA +0x9EF3 0x243F2 +0x9EF5 0x565D +0x9EF6 0x212A9 +0x9EF7 0x57A7 +0x9EF8 0x24963 +0x9EF9 0x29E06 +0x9EFA 0x5234 +0x9EFB 0x270AE +0x9EFC 0x35AD +0x9EFE 0x9D7C +0x9F40 0x7C56 +0x9F41 0x9B39 +0x9F42 0x57DE +0x9F43 0x2176C +0x9F44 0x5C53 +0x9F45 0x64D3 +0x9F46 0x294D0 +0x9F47 0x26335 +0x9F48 0x27164 +0x9F49 0x86AD +0x9F4A 0x20D28 +0x9F4B 0x26D22 +0x9F4C 0x24AE2 +0x9F4D 0x20D71 +0x9F4F 0x51FE +0x9F50 0x21F0F +0x9F51 0x5D8E +0x9F52 0x9703 +0x9F53 0x21DD1 +0x9F54 0x9E81 +0x9F55 0x904C +0x9F56 0x7B1F +0x9F57 0x9B02 +0x9F58 0x5CD1 +0x9F59 0x7BA3 +0x9F5A 0x6268 +0x9F5B 0x6335 +0x9F5C 0x9AFF +0x9F5D 0x7BCF +0x9F5E 0x9B2A +0x9F5F 0x7C7E +0x9F61 0x7C42 +0x9F62 0x7C86 +0x9F63 0x9C15 +0x9F64 0x7BFC +0x9F65 0x9B09 +0x9F67 0x9C1B +0x9F68 0x2493E +0x9F69 0x9F5A +0x9F6A 0x5573 +0x9F6B 0x5BC3 +0x9F6C 0x4FFD +0x9F6D 0x9E98 +0x9F6E 0x4FF2 +0x9F6F 0x5260 +0x9F70 0x3E06 +0x9F71 0x52D1 +0x9F72 0x5767 +0x9F73 0x5056 +0x9F74 0x59B7 +0x9F75 0x5E12 +0x9F76 0x97C8 +0x9F77 0x9DAB +0x9F78 0x8F5C +0x9F79 0x5469 +0x9F7A 0x97B4 +0x9F7B 0x9940 +0x9F7C 0x97BA +0x9F7D 0x532C +0x9F7E 0x6130 +0x9FA1 0x692C +0x9FA2 0x53DA +0x9FA3 0x9C0A +0x9FA4 0x9D02 +0x9FA5 0x4C3B +0x9FA6 0x9641 +0x9FA7 0x6980 +0x9FA8 0x50A6 +0x9FA9 0x7546 +0x9FAA 0x2176D +0x9FAB 0x99DA +0x9FAC 0x5273 +0x9FAE 0x9159 +0x9FAF 0x9681 +0x9FB0 0x915C +0x9FB2 0x9151 +0x9FB3 0x28E97 +0x9FB4 0x637F +0x9FB5 0x26D23 +0x9FB6 0x6ACA +0x9FB7 0x5611 +0x9FB8 0x918E +0x9FB9 0x757A +0x9FBA 0x6285 +0x9FBB 0x203FC +0x9FBC 0x734F +0x9FBD 0x7C70 +0x9FBE 0x25C21 +0x9FBF 0x23CFD +0x9FC1 0x24919 +0x9FC2 0x76D6 +0x9FC3 0x9B9D +0x9FC4 0x4E2A +0x9FC5 0x20CD4 +0x9FC6 0x83BE +0x9FC7 0x8842 +0x9FC9 0x5C4A +0x9FCA 0x69C0 +0x9FCC 0x577A +0x9FCD 0x521F +0x9FCE 0x5DF5 +0x9FCF 0x4ECE +0x9FD0 0x6C31 +0x9FD1 0x201F2 +0x9FD2 0x4F39 +0x9FD3 0x549C +0x9FD4 0x54DA +0x9FD5 0x529A +0x9FD6 0x8D82 +0x9FD7 0x35FE +0x9FD9 0x35F3 +0x9FDB 0x6B52 +0x9FDC 0x917C +0x9FDD 0x9FA5 +0x9FDE 0x9B97 +0x9FDF 0x982E +0x9FE0 0x98B4 +0x9FE1 0x9ABA +0x9FE2 0x9EA8 +0x9FE3 0x9E84 +0x9FE4 0x717A +0x9FE5 0x7B14 +0x9FE7 0x6BFA +0x9FE8 0x8818 +0x9FE9 0x7F78 +0x9FEB 0x5620 +0x9FEC 0x2A64A +0x9FED 0x8E77 +0x9FEE 0x9F53 +0x9FF0 0x8DD4 +0x9FF1 0x8E4F +0x9FF2 0x9E1C +0x9FF3 0x8E01 +0x9FF4 0x6282 +0x9FF5 0x2837D +0x9FF6 0x8E28 +0x9FF7 0x8E75 +0x9FF8 0x7AD3 +0x9FF9 0x24A77 +0x9FFA 0x7A3E +0x9FFB 0x78D8 +0x9FFC 0x6CEA +0x9FFD 0x8A67 +0x9FFE 0x7607 +0xA040 0x28A5A +0xA041 0x9F26 +0xA042 0x6CCE +0xA043 0x87D6 +0xA044 0x75C3 +0xA045 0x2A2B2 +0xA046 0x7853 +0xA047 0x2F840 +0xA048 0x8D0C +0xA049 0x72E2 +0xA04A 0x7371 +0xA04B 0x8B2D +0xA04C 0x7302 +0xA04D 0x74F1 +0xA04E 0x8CEB +0xA04F 0x24ABB +0xA050 0x862F +0xA051 0x5FBA +0xA052 0x88A0 +0xA053 0x44B7 +0xA055 0x2183B +0xA056 0x26E05 +0xA058 0x8A7E +0xA059 0x2251B +0xA05B 0x60FD +0xA05C 0x7667 +0xA05D 0x9AD7 +0xA05E 0x9D44 +0xA05F 0x936E +0xA060 0x9B8F +0xA061 0x87F5 +0xA064 0x8CF7 +0xA065 0x732C +0xA066 0x9721 +0xA067 0x9BB0 +0xA068 0x35D6 +0xA069 0x72B2 +0xA06A 0x4C07 +0xA06B 0x7C51 +0xA06C 0x994A +0xA06D 0x26159 +0xA06E 0x6159 +0xA06F 0x4C04 +0xA070 0x9E96 +0xA071 0x617D +0xA073 0x575F +0xA074 0x616F +0xA075 0x62A6 +0xA076 0x6239 +0xA078 0x3A5C +0xA079 0x61E2 +0xA07A 0x53AA +0xA07B 0x233F5 +0xA07C 0x6364 +0xA07D 0x6802 +0xA07E 0x35D2 +0xA0A1 0x5D57 +0xA0A2 0x28BC2 +0xA0A3 0x8FDA +0xA0A4 0x28E39 +0xA0A6 0x50D9 +0xA0A7 0x21D46 +0xA0A8 0x7906 +0xA0A9 0x5332 +0xA0AA 0x9638 +0xA0AB 0x20F3B +0xA0AC 0x4065 +0xA0AE 0x77FE +0xA0B0 0x7CC2 +0xA0B1 0x25F1A +0xA0B2 0x7CDA +0xA0B3 0x7A2D +0xA0B4 0x8066 +0xA0B5 0x8063 +0xA0B6 0x7D4D +0xA0B7 0x7505 +0xA0B8 0x74F2 +0xA0B9 0x8994 +0xA0BA 0x821A +0xA0BB 0x670C +0xA0BC 0x8062 +0xA0BD 0x27486 +0xA0BE 0x805B +0xA0BF 0x74F0 +0xA0C0 0x8103 +0xA0C1 0x7724 +0xA0C2 0x8989 +0xA0C3 0x267CC +0xA0C4 0x7553 +0xA0C5 0x26ED1 +0xA0C6 0x87A9 +0xA0C7 0x87CE +0xA0C8 0x81C8 +0xA0C9 0x878C +0xA0CA 0x8A49 +0xA0CB 0x8CAD +0xA0CC 0x8B43 +0xA0CD 0x772B +0xA0CE 0x74F8 +0xA0CF 0x84DA +0xA0D0 0x3635 +0xA0D1 0x69B2 +0xA0D2 0x8DA6 +0xA0D4 0x89A9 +0xA0D6 0x6DB9 +0xA0D7 0x87C1 +0xA0D8 0x24011 +0xA0D9 0x74E7 +0xA0DA 0x3DDB +0xA0DB 0x7176 +0xA0DC 0x60A4 +0xA0DD 0x619C +0xA0DE 0x3CD1 +0xA0E0 0x6077 +0xA0E2 0x7F71 +0xA0E3 0x28B2D +0xA0E5 0x60E9 +0xA0E6 0x4B7E +0xA0E7 0x5220 +0xA0E8 0x3C18 +0xA0E9 0x23CC7 +0xA0EA 0x25ED7 +0xA0EB 0x27656 +0xA0EC 0x25531 +0xA0ED 0x21944 +0xA0EE 0x212FE +0xA0EF 0x29903 +0xA0F0 0x26DDC +0xA0F1 0x270AD +0xA0F2 0x5CC1 +0xA0F3 0x261AD +0xA0F4 0x28A0F +0xA0F5 0x23677 +0xA0F6 0x200EE +0xA0F7 0x26846 +0xA0F8 0x24F0E +0xA0F9 0x4562 +0xA0FA 0x5B1F +0xA0FB 0x2634C +0xA0FC 0x9F50 +0xA0FD 0x9EA6 +0xA0FE 0x2626B +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2022 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFF64 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C4 0xFF3F +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0x223C +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2641 +0xA1F3 0x2609 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA241 0xFF0F +0xA242 0xFF3C +0xA243 0xFF04 +0xA244 0x00A5 +0xA245 0x3012 +0xA246 0x00A2 +0xA247 0x00A3 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CD 0x5344 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x2460 +0xC6A2 0x2461 +0xC6A3 0x2462 +0xC6A4 0x2463 +0xC6A5 0x2464 +0xC6A6 0x2465 +0xC6A7 0x2466 +0xC6A8 0x2467 +0xC6A9 0x2468 +0xC6AA 0x2469 +0xC6AB 0x2474 +0xC6AC 0x2475 +0xC6AD 0x2476 +0xC6AE 0x2477 +0xC6AF 0x2478 +0xC6B0 0x2479 +0xC6B1 0x247A +0xC6B2 0x247B +0xC6B3 0x247C +0xC6B4 0x247D +0xC6B5 0x2170 +0xC6B6 0x2171 +0xC6B7 0x2172 +0xC6B8 0x2173 +0xC6B9 0x2174 +0xC6BA 0x2175 +0xC6BB 0x2176 +0xC6BC 0x2177 +0xC6BD 0x2178 +0xC6BE 0x2179 +0xC6BF 0x4E36 +0xC6C0 0x4E3F +0xC6C1 0x4E85 +0xC6C2 0x4EA0 +0xC6C3 0x5182 +0xC6C4 0x5196 +0xC6C5 0x51AB +0xC6C6 0x52F9 +0xC6C7 0x5338 +0xC6C8 0x5369 +0xC6C9 0x53B6 +0xC6CA 0x590A +0xC6CB 0x5B80 +0xC6CC 0x5DDB +0xC6CD 0x2F33 +0xC6CE 0x5E7F +0xC6D0 0x5F50 +0xC6D1 0x5F61 +0xC6D2 0x6534 +0xC6D4 0x7592 +0xC6D6 0x8FB5 +0xC6D8 0x00A8 +0xC6D9 0x02C6 +0xC6DA 0x30FD +0xC6DB 0x30FE +0xC6DC 0x309D +0xC6DD 0x309E +0xC6E0 0x3005 +0xC6E1 0x3006 +0xC6E2 0x3007 +0xC6E3 0x30FC +0xC6E4 0xFF3B +0xC6E5 0xFF3D +0xC6E6 0x273D +0xC6E7 0x3041 +0xC6E8 0x3042 +0xC6E9 0x3043 +0xC6EA 0x3044 +0xC6EB 0x3045 +0xC6EC 0x3046 +0xC6ED 0x3047 +0xC6EE 0x3048 +0xC6EF 0x3049 +0xC6F0 0x304A +0xC6F1 0x304B +0xC6F2 0x304C +0xC6F3 0x304D +0xC6F4 0x304E +0xC6F5 0x304F +0xC6F6 0x3050 +0xC6F7 0x3051 +0xC6F8 0x3052 +0xC6F9 0x3053 +0xC6FA 0x3054 +0xC6FB 0x3055 +0xC6FC 0x3056 +0xC6FD 0x3057 +0xC6FE 0x3058 +0xC740 0x3059 +0xC741 0x305A +0xC742 0x305B +0xC743 0x305C +0xC744 0x305D +0xC745 0x305E +0xC746 0x305F +0xC747 0x3060 +0xC748 0x3061 +0xC749 0x3062 +0xC74A 0x3063 +0xC74B 0x3064 +0xC74C 0x3065 +0xC74D 0x3066 +0xC74E 0x3067 +0xC74F 0x3068 +0xC750 0x3069 +0xC751 0x306A +0xC752 0x306B +0xC753 0x306C +0xC754 0x306D +0xC755 0x306E +0xC756 0x306F +0xC757 0x3070 +0xC758 0x3071 +0xC759 0x3072 +0xC75A 0x3073 +0xC75B 0x3074 +0xC75C 0x3075 +0xC75D 0x3076 +0xC75E 0x3077 +0xC75F 0x3078 +0xC760 0x3079 +0xC761 0x307A +0xC762 0x307B +0xC763 0x307C +0xC764 0x307D +0xC765 0x307E +0xC766 0x307F +0xC767 0x3080 +0xC768 0x3081 +0xC769 0x3082 +0xC76A 0x3083 +0xC76B 0x3084 +0xC76C 0x3085 +0xC76D 0x3086 +0xC76E 0x3087 +0xC76F 0x3088 +0xC770 0x3089 +0xC771 0x308A +0xC772 0x308B +0xC773 0x308C +0xC774 0x308D +0xC775 0x308E +0xC776 0x308F +0xC777 0x3090 +0xC778 0x3091 +0xC779 0x3092 +0xC77A 0x3093 +0xC77B 0x30A1 +0xC77C 0x30A2 +0xC77D 0x30A3 +0xC77E 0x30A4 +0xC7A1 0x30A5 +0xC7A2 0x30A6 +0xC7A3 0x30A7 +0xC7A4 0x30A8 +0xC7A5 0x30A9 +0xC7A6 0x30AA +0xC7A7 0x30AB +0xC7A8 0x30AC +0xC7A9 0x30AD +0xC7AA 0x30AE +0xC7AB 0x30AF +0xC7AC 0x30B0 +0xC7AD 0x30B1 +0xC7AE 0x30B2 +0xC7AF 0x30B3 +0xC7B0 0x30B4 +0xC7B1 0x30B5 +0xC7B2 0x30B6 +0xC7B3 0x30B7 +0xC7B4 0x30B8 +0xC7B5 0x30B9 +0xC7B6 0x30BA +0xC7B7 0x30BB +0xC7B8 0x30BC +0xC7B9 0x30BD +0xC7BA 0x30BE +0xC7BB 0x30BF +0xC7BC 0x30C0 +0xC7BD 0x30C1 +0xC7BE 0x30C2 +0xC7BF 0x30C3 +0xC7C0 0x30C4 +0xC7C1 0x30C5 +0xC7C2 0x30C6 +0xC7C3 0x30C7 +0xC7C4 0x30C8 +0xC7C5 0x30C9 +0xC7C6 0x30CA +0xC7C7 0x30CB +0xC7C8 0x30CC +0xC7C9 0x30CD +0xC7CA 0x30CE +0xC7CB 0x30CF +0xC7CC 0x30D0 +0xC7CD 0x30D1 +0xC7CE 0x30D2 +0xC7CF 0x30D3 +0xC7D0 0x30D4 +0xC7D1 0x30D5 +0xC7D2 0x30D6 +0xC7D3 0x30D7 +0xC7D4 0x30D8 +0xC7D5 0x30D9 +0xC7D6 0x30DA +0xC7D7 0x30DB +0xC7D8 0x30DC +0xC7D9 0x30DD +0xC7DA 0x30DE +0xC7DB 0x30DF +0xC7DC 0x30E0 +0xC7DD 0x30E1 +0xC7DE 0x30E2 +0xC7DF 0x30E3 +0xC7E0 0x30E4 +0xC7E1 0x30E5 +0xC7E2 0x30E6 +0xC7E3 0x30E7 +0xC7E4 0x30E8 +0xC7E5 0x30E9 +0xC7E6 0x30EA +0xC7E7 0x30EB +0xC7E8 0x30EC +0xC7E9 0x30ED +0xC7EA 0x30EE +0xC7EB 0x30EF +0xC7EC 0x30F0 +0xC7ED 0x30F1 +0xC7EE 0x30F2 +0xC7EF 0x30F3 +0xC7F0 0x30F4 +0xC7F1 0x30F5 +0xC7F2 0x30F6 +0xC7F3 0x0410 +0xC7F4 0x0411 +0xC7F5 0x0412 +0xC7F6 0x0413 +0xC7F7 0x0414 +0xC7F8 0x0415 +0xC7F9 0x0401 +0xC7FA 0x0416 +0xC7FB 0x0417 +0xC7FC 0x0418 +0xC7FD 0x0419 +0xC7FE 0x041A +0xC840 0x041B +0xC841 0x041C +0xC842 0x041D +0xC843 0x041E +0xC844 0x041F +0xC845 0x0420 +0xC846 0x0421 +0xC847 0x0422 +0xC848 0x0423 +0xC849 0x0424 +0xC84A 0x0425 +0xC84B 0x0426 +0xC84C 0x0427 +0xC84D 0x0428 +0xC84E 0x0429 +0xC84F 0x042A +0xC850 0x042B +0xC851 0x042C +0xC852 0x042D +0xC853 0x042E +0xC854 0x042F +0xC855 0x0430 +0xC856 0x0431 +0xC857 0x0432 +0xC858 0x0433 +0xC859 0x0434 +0xC85A 0x0435 +0xC85B 0x0451 +0xC85C 0x0436 +0xC85D 0x0437 +0xC85E 0x0438 +0xC85F 0x0439 +0xC860 0x043A +0xC861 0x043B +0xC862 0x043C +0xC863 0x043D +0xC864 0x043E +0xC865 0x043F +0xC866 0x0440 +0xC867 0x0441 +0xC868 0x0442 +0xC869 0x0443 +0xC86A 0x0444 +0xC86B 0x0445 +0xC86C 0x0446 +0xC86D 0x0447 +0xC86E 0x0448 +0xC86F 0x0449 +0xC870 0x044A +0xC871 0x044B +0xC872 0x044C +0xC873 0x044D +0xC874 0x044E +0xC875 0x044F +0xC876 0x21E7 +0xC877 0x21B8 +0xC878 0x21B9 +0xC879 0x31CF +0xC87A 0x200CC +0xC87B 0x4E5A +0xC87C 0x2008A +0xC87D 0x5202 +0xC87E 0x4491 +0xC8A1 0x9FB0 +0xC8A2 0x5188 +0xC8A3 0x9FB1 +0xC8A4 0x27607 +0xC8CD 0xFFE2 +0xC8CE 0xFFE4 +0xC8CF 0xFF07 +0xC8D0 0xFF02 +0xC8D1 0x3231 +0xC8D2 0x2116 +0xC8D3 0x2121 +0xC8D4 0x309B +0xC8D5 0x309C +0xC8D6 0x2E80 +0xC8D7 0x2E84 +0xC8D8 0x2E86 +0xC8D9 0x2E87 +0xC8DA 0x2E88 +0xC8DB 0x2E8A +0xC8DC 0x2E8C +0xC8DD 0x2E8D +0xC8DE 0x2E95 +0xC8DF 0x2E9C +0xC8E0 0x2E9D +0xC8E1 0x2EA5 +0xC8E2 0x2EA7 +0xC8E3 0x2EAA +0xC8E4 0x2EAC +0xC8E5 0x2EAE +0xC8E6 0x2EB6 +0xC8E7 0x2EBC +0xC8E8 0x2EBE +0xC8E9 0x2EC6 +0xC8EA 0x2ECA +0xC8EB 0x2ECC +0xC8EC 0x2ECD +0xC8ED 0x2ECF +0xC8EE 0x2ED6 +0xC8EF 0x2ED7 +0xC8F0 0x2EDE +0xC8F1 0x2EE3 +0xC8F5 0x0283 +0xC8F6 0x0250 +0xC8F7 0x025B +0xC8F8 0x0254 +0xC8F9 0x0275 +0xC8FA 0x0153 +0xC8FB 0x00F8 +0xC8FC 0x014B +0xC8FD 0x028A +0xC8FE 0x026A +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F +0xF9FE 0xFFED +0xFA40 0x20547 +0xFA41 0x92DB +0xFA42 0x205DF +0xFA43 0x23FC5 +0xFA44 0x854C +0xFA45 0x42B5 +0xFA46 0x73EF +0xFA47 0x51B5 +0xFA48 0x3649 +0xFA49 0x24942 +0xFA4A 0x289E4 +0xFA4B 0x9344 +0xFA4C 0x219DB +0xFA4D 0x82EE +0xFA4E 0x23CC8 +0xFA4F 0x783C +0xFA50 0x6744 +0xFA51 0x62DF +0xFA52 0x24933 +0xFA53 0x289AA +0xFA54 0x202A0 +0xFA55 0x26BB3 +0xFA56 0x21305 +0xFA57 0x4FAB +0xFA58 0x224ED +0xFA59 0x5008 +0xFA5A 0x26D29 +0xFA5B 0x27A84 +0xFA5C 0x23600 +0xFA5D 0x24AB1 +0xFA5E 0x22513 +0xFA60 0x2037E +0xFA61 0x5FA4 +0xFA62 0x20380 +0xFA63 0x20347 +0xFA64 0x6EDB +0xFA65 0x2041F +0xFA67 0x5101 +0xFA68 0x347A +0xFA69 0x510E +0xFA6A 0x986C +0xFA6B 0x3743 +0xFA6C 0x8416 +0xFA6D 0x249A4 +0xFA6E 0x20487 +0xFA6F 0x5160 +0xFA70 0x233B4 +0xFA71 0x516A +0xFA72 0x20BFF +0xFA73 0x220FC +0xFA74 0x202E5 +0xFA75 0x22530 +0xFA76 0x2058E +0xFA77 0x23233 +0xFA78 0x21983 +0xFA79 0x5B82 +0xFA7A 0x877D +0xFA7B 0x205B3 +0xFA7C 0x23C99 +0xFA7D 0x51B2 +0xFA7E 0x51B8 +0xFAA1 0x9D34 +0xFAA2 0x51C9 +0xFAA3 0x51CF +0xFAA4 0x51D1 +0xFAA5 0x3CDC +0xFAA6 0x51D3 +0xFAA7 0x24AA6 +0xFAA8 0x51B3 +0xFAA9 0x51E2 +0xFAAA 0x5342 +0xFAAB 0x51ED +0xFAAC 0x83CD +0xFAAD 0x693E +0xFAAE 0x2372D +0xFAAF 0x5F7B +0xFAB0 0x520B +0xFAB1 0x5226 +0xFAB2 0x523C +0xFAB3 0x52B5 +0xFAB4 0x5257 +0xFAB5 0x5294 +0xFAB6 0x52B9 +0xFAB7 0x52C5 +0xFAB8 0x7C15 +0xFAB9 0x8542 +0xFABA 0x52E0 +0xFABB 0x860D +0xFABC 0x26B13 +0xFABE 0x28ADE +0xFABF 0x5549 +0xFAC0 0x6ED9 +0xFAC1 0x23F80 +0xFAC2 0x20954 +0xFAC3 0x23FEC +0xFAC4 0x5333 +0xFAC6 0x20BE2 +0xFAC7 0x6CCB +0xFAC8 0x21726 +0xFAC9 0x681B +0xFACA 0x73D5 +0xFACB 0x604A +0xFACC 0x3EAA +0xFACD 0x38CC +0xFACE 0x216E8 +0xFACF 0x71DD +0xFAD0 0x44A2 +0xFAD1 0x536D +0xFAD2 0x5374 +0xFAD3 0x286AB +0xFAD4 0x537E +0xFAD6 0x21596 +0xFAD7 0x21613 +0xFAD8 0x77E6 +0xFAD9 0x5393 +0xFADA 0x28A9B +0xFADB 0x53A0 +0xFADC 0x53AB +0xFADD 0x53AE +0xFADE 0x73A7 +0xFADF 0x25772 +0xFAE0 0x3F59 +0xFAE1 0x739C +0xFAE2 0x53C1 +0xFAE3 0x53C5 +0xFAE4 0x6C49 +0xFAE5 0x4E49 +0xFAE6 0x57FE +0xFAE7 0x53D9 +0xFAE8 0x3AAB +0xFAE9 0x20B8F +0xFAEA 0x53E0 +0xFAEB 0x23FEB +0xFAEC 0x22DA3 +0xFAED 0x53F6 +0xFAEE 0x20C77 +0xFAEF 0x5413 +0xFAF0 0x7079 +0xFAF1 0x552B +0xFAF2 0x6657 +0xFAF3 0x6D5B +0xFAF4 0x546D +0xFAF5 0x26B53 +0xFAF6 0x20D74 +0xFAF7 0x555D +0xFAF8 0x548F +0xFAF9 0x54A4 +0xFAFA 0x47A6 +0xFAFB 0x2170D +0xFAFC 0x20EDD +0xFAFD 0x3DB4 +0xFAFE 0x20D4D +0xFB40 0x289BC +0xFB41 0x22698 +0xFB42 0x5547 +0xFB43 0x4CED +0xFB44 0x542F +0xFB45 0x7417 +0xFB46 0x5586 +0xFB47 0x55A9 +0xFB49 0x218D7 +0xFB4A 0x2403A +0xFB4B 0x4552 +0xFB4C 0x24435 +0xFB4D 0x66B3 +0xFB4E 0x210B4 +0xFB4F 0x5637 +0xFB50 0x66CD +0xFB51 0x2328A +0xFB52 0x66A4 +0xFB53 0x66AD +0xFB54 0x564D +0xFB55 0x564F +0xFB56 0x78F1 +0xFB57 0x56F1 +0xFB58 0x9787 +0xFB59 0x53FE +0xFB5A 0x5700 +0xFB5B 0x56EF +0xFB5C 0x56ED +0xFB5D 0x28B66 +0xFB5E 0x3623 +0xFB5F 0x2124F +0xFB60 0x5746 +0xFB61 0x241A5 +0xFB62 0x6C6E +0xFB63 0x708B +0xFB64 0x5742 +0xFB65 0x36B1 +0xFB66 0x26C7E +0xFB67 0x57E6 +0xFB68 0x21416 +0xFB69 0x5803 +0xFB6A 0x21454 +0xFB6B 0x24363 +0xFB6C 0x5826 +0xFB6D 0x24BF5 +0xFB6E 0x585C +0xFB6F 0x58AA +0xFB70 0x3561 +0xFB71 0x58E0 +0xFB72 0x58DC +0xFB73 0x2123C +0xFB74 0x58FB +0xFB75 0x5BFF +0xFB76 0x5743 +0xFB77 0x2A150 +0xFB78 0x24278 +0xFB79 0x93D3 +0xFB7A 0x35A1 +0xFB7B 0x591F +0xFB7C 0x68A6 +0xFB7D 0x36C3 +0xFB7E 0x6E59 +0xFBA1 0x2163E +0xFBA2 0x5A24 +0xFBA3 0x5553 +0xFBA4 0x21692 +0xFBA5 0x8505 +0xFBA6 0x59C9 +0xFBA7 0x20D4E +0xFBA8 0x26C81 +0xFBA9 0x26D2A +0xFBAA 0x217DC +0xFBAB 0x59D9 +0xFBAC 0x217FB +0xFBAD 0x217B2 +0xFBAE 0x26DA6 +0xFBAF 0x6D71 +0xFBB0 0x21828 +0xFBB1 0x216D5 +0xFBB2 0x59F9 +0xFBB3 0x26E45 +0xFBB4 0x5AAB +0xFBB5 0x5A63 +0xFBB6 0x36E6 +0xFBB7 0x249A9 +0xFBB9 0x3708 +0xFBBA 0x5A96 +0xFBBB 0x7465 +0xFBBC 0x5AD3 +0xFBBD 0x26FA1 +0xFBBE 0x22554 +0xFBBF 0x3D85 +0xFBC0 0x21911 +0xFBC1 0x3732 +0xFBC2 0x216B8 +0xFBC3 0x5E83 +0xFBC4 0x52D0 +0xFBC5 0x5B76 +0xFBC6 0x6588 +0xFBC7 0x5B7C +0xFBC8 0x27A0E +0xFBC9 0x4004 +0xFBCA 0x485D +0xFBCB 0x20204 +0xFBCC 0x5BD5 +0xFBCD 0x6160 +0xFBCE 0x21A34 +0xFBCF 0x259CC +0xFBD0 0x205A5 +0xFBD1 0x5BF3 +0xFBD2 0x5B9D +0xFBD3 0x4D10 +0xFBD4 0x5C05 +0xFBD5 0x21B44 +0xFBD6 0x5C13 +0xFBD7 0x73CE +0xFBD8 0x5C14 +0xFBD9 0x21CA5 +0xFBDA 0x26B28 +0xFBDB 0x5C49 +0xFBDC 0x48DD +0xFBDD 0x5C85 +0xFBDE 0x5CE9 +0xFBDF 0x5CEF +0xFBE0 0x5D8B +0xFBE1 0x21DF9 +0xFBE2 0x21E37 +0xFBE3 0x5D10 +0xFBE4 0x5D18 +0xFBE5 0x5D46 +0xFBE6 0x21EA4 +0xFBE7 0x5CBA +0xFBE8 0x5DD7 +0xFBE9 0x82FC +0xFBEA 0x382D +0xFBEB 0x24901 +0xFBEC 0x22049 +0xFBED 0x22173 +0xFBEE 0x8287 +0xFBEF 0x3836 +0xFBF0 0x3BC2 +0xFBF1 0x5E2E +0xFBF2 0x6A8A +0xFBF4 0x5E7A +0xFBF5 0x244BC +0xFBF6 0x20CD3 +0xFBF7 0x53A6 +0xFBF8 0x4EB7 +0xFBFA 0x53A8 +0xFBFB 0x21771 +0xFBFC 0x5E09 +0xFBFD 0x5EF4 +0xFBFE 0x28482 +0xFC40 0x5EF9 +0xFC41 0x5EFB +0xFC42 0x38A0 +0xFC43 0x5EFC +0xFC44 0x683E +0xFC45 0x941B +0xFC46 0x5F0D +0xFC47 0x201C1 +0xFC48 0x2F894 +0xFC49 0x3ADE +0xFC4A 0x48AE +0xFC4B 0x2133A +0xFC4C 0x5F3A +0xFC4D 0x26888 +0xFC4E 0x223D0 +0xFC50 0x22471 +0xFC51 0x5F63 +0xFC52 0x97BD +0xFC53 0x26E6E +0xFC54 0x5F72 +0xFC55 0x9340 +0xFC56 0x28A36 +0xFC57 0x5FA7 +0xFC58 0x5DB6 +0xFC59 0x3D5F +0xFC5A 0x25250 +0xFC5B 0x21F6A +0xFC5C 0x270F8 +0xFC5D 0x22668 +0xFC5E 0x91D6 +0xFC5F 0x2029E +0xFC60 0x28A29 +0xFC61 0x6031 +0xFC62 0x6685 +0xFC63 0x21877 +0xFC64 0x3963 +0xFC65 0x3DC7 +0xFC66 0x3639 +0xFC67 0x5790 +0xFC68 0x227B4 +0xFC69 0x7971 +0xFC6A 0x3E40 +0xFC6B 0x609E +0xFC6D 0x60B3 +0xFC6E 0x24982 +0xFC6F 0x2498F +0xFC70 0x27A53 +0xFC71 0x74A4 +0xFC72 0x50E1 +0xFC73 0x5AA0 +0xFC74 0x6164 +0xFC75 0x8424 +0xFC76 0x6142 +0xFC77 0x2F8A6 +0xFC78 0x26ED2 +0xFC79 0x6181 +0xFC7A 0x51F4 +0xFC7B 0x20656 +0xFC7C 0x6187 +0xFC7D 0x5BAA +0xFC7E 0x23FB7 +0xFCA1 0x2285F +0xFCA2 0x61D3 +0xFCA3 0x28B9D +0xFCA4 0x2995D +0xFCA5 0x61D0 +0xFCA6 0x3932 +0xFCA7 0x22980 +0xFCA8 0x228C1 +0xFCA9 0x6023 +0xFCAA 0x615C +0xFCAB 0x651E +0xFCAC 0x638B +0xFCAD 0x20118 +0xFCAE 0x62C5 +0xFCAF 0x21770 +0xFCB0 0x62D5 +0xFCB1 0x22E0D +0xFCB2 0x636C +0xFCB3 0x249DF +0xFCB4 0x3A17 +0xFCB5 0x6438 +0xFCB6 0x63F8 +0xFCB7 0x2138E +0xFCB8 0x217FC +0xFCBA 0x6F8A +0xFCBB 0x22E36 +0xFCBC 0x9814 +0xFCBD 0x2408C +0xFCBE 0x2571D +0xFCBF 0x64E1 +0xFCC0 0x64E5 +0xFCC1 0x947B +0xFCC2 0x3A66 +0xFCC3 0x643A +0xFCC4 0x3A57 +0xFCC5 0x654D +0xFCC6 0x6F16 +0xFCC7 0x24A28 +0xFCC8 0x24A23 +0xFCC9 0x6585 +0xFCCA 0x656D +0xFCCB 0x655F +0xFCCC 0x2307E +0xFCCD 0x65B5 +0xFCCE 0x24940 +0xFCCF 0x4B37 +0xFCD0 0x65D1 +0xFCD1 0x40D8 +0xFCD2 0x21829 +0xFCD3 0x65E0 +0xFCD4 0x65E3 +0xFCD5 0x5FDF +0xFCD6 0x23400 +0xFCD7 0x6618 +0xFCD8 0x231F7 +0xFCD9 0x231F8 +0xFCDA 0x6644 +0xFCDB 0x231A4 +0xFCDC 0x231A5 +0xFCDD 0x664B +0xFCDE 0x20E75 +0xFCDF 0x6667 +0xFCE0 0x251E6 +0xFCE1 0x6673 +0xFCE3 0x21E3D +0xFCE4 0x23231 +0xFCE5 0x285F4 +0xFCE6 0x231C8 +0xFCE7 0x25313 +0xFCE8 0x77C5 +0xFCE9 0x228F7 +0xFCEA 0x99A4 +0xFCEB 0x6702 +0xFCEC 0x2439C +0xFCED 0x24A21 +0xFCEE 0x3B2B +0xFCEF 0x69FA +0xFCF0 0x237C2 +0xFCF2 0x6767 +0xFCF3 0x6762 +0xFCF4 0x241CD +0xFCF5 0x290ED +0xFCF6 0x67D7 +0xFCF7 0x44E9 +0xFCF8 0x6822 +0xFCF9 0x6E50 +0xFCFA 0x923C +0xFCFB 0x6801 +0xFCFC 0x233E6 +0xFCFD 0x26DA0 +0xFCFE 0x685D +0xFD40 0x2346F +0xFD41 0x69E1 +0xFD42 0x6A0B +0xFD43 0x28ADF +0xFD44 0x6973 +0xFD45 0x68C3 +0xFD46 0x235CD +0xFD47 0x6901 +0xFD48 0x6900 +0xFD49 0x3D32 +0xFD4A 0x3A01 +0xFD4B 0x2363C +0xFD4C 0x3B80 +0xFD4D 0x67AC +0xFD4E 0x6961 +0xFD4F 0x28A4A +0xFD50 0x42FC +0xFD51 0x6936 +0xFD52 0x6998 +0xFD53 0x3BA1 +0xFD54 0x203C9 +0xFD55 0x8363 +0xFD56 0x5090 +0xFD57 0x69F9 +0xFD58 0x23659 +0xFD59 0x2212A +0xFD5A 0x6A45 +0xFD5B 0x23703 +0xFD5C 0x6A9D +0xFD5D 0x3BF3 +0xFD5E 0x67B1 +0xFD5F 0x6AC8 +0xFD60 0x2919C +0xFD61 0x3C0D +0xFD62 0x6B1D +0xFD63 0x20923 +0xFD64 0x60DE +0xFD65 0x6B35 +0xFD66 0x6B74 +0xFD67 0x227CD +0xFD68 0x6EB5 +0xFD69 0x23ADB +0xFD6A 0x203B5 +0xFD6B 0x21958 +0xFD6C 0x3740 +0xFD6D 0x5421 +0xFD6E 0x23B5A +0xFD6F 0x6BE1 +0xFD70 0x23EFC +0xFD71 0x6BDC +0xFD72 0x6C37 +0xFD73 0x2248B +0xFD74 0x248F1 +0xFD75 0x26B51 +0xFD76 0x6C5A +0xFD77 0x8226 +0xFD78 0x6C79 +0xFD79 0x23DBC +0xFD7A 0x44C5 +0xFD7B 0x23DBD +0xFD7C 0x241A4 +0xFD7D 0x2490C +0xFD7E 0x24900 +0xFDA1 0x23CC9 +0xFDA2 0x36E5 +0xFDA3 0x3CEB +0xFDA4 0x20D32 +0xFDA5 0x9B83 +0xFDA6 0x231F9 +0xFDA7 0x22491 +0xFDA8 0x7F8F +0xFDA9 0x6837 +0xFDAA 0x26D25 +0xFDAB 0x26DA1 +0xFDAC 0x26DEB +0xFDAD 0x6D96 +0xFDAE 0x6D5C +0xFDAF 0x6E7C +0xFDB0 0x6F04 +0xFDB1 0x2497F +0xFDB2 0x24085 +0xFDB3 0x26E72 +0xFDB4 0x8533 +0xFDB5 0x26F74 +0xFDB6 0x51C7 +0xFDB9 0x842E +0xFDBA 0x28B21 +0xFDBC 0x23E2F +0xFDBD 0x7453 +0xFDBE 0x23F82 +0xFDBF 0x79CC +0xFDC0 0x6E4F +0xFDC1 0x5A91 +0xFDC2 0x2304B +0xFDC3 0x6FF8 +0xFDC4 0x370D +0xFDC5 0x6F9D +0xFDC6 0x23E30 +0xFDC7 0x6EFA +0xFDC8 0x21497 +0xFDC9 0x2403D +0xFDCA 0x4555 +0xFDCB 0x93F0 +0xFDCC 0x6F44 +0xFDCD 0x6F5C +0xFDCE 0x3D4E +0xFDCF 0x6F74 +0xFDD0 0x29170 +0xFDD1 0x3D3B +0xFDD2 0x6F9F +0xFDD3 0x24144 +0xFDD4 0x6FD3 +0xFDD5 0x24091 +0xFDD6 0x24155 +0xFDD7 0x24039 +0xFDD8 0x23FF0 +0xFDD9 0x23FB4 +0xFDDA 0x2413F +0xFDDB 0x51DF +0xFDDC 0x24156 +0xFDDD 0x24157 +0xFDDE 0x24140 +0xFDDF 0x261DD +0xFDE0 0x704B +0xFDE1 0x707E +0xFDE2 0x70A7 +0xFDE3 0x7081 +0xFDE4 0x70CC +0xFDE5 0x70D5 +0xFDE6 0x70D6 +0xFDE7 0x70DF +0xFDE8 0x4104 +0xFDE9 0x3DE8 +0xFDEA 0x71B4 +0xFDEB 0x7196 +0xFDEC 0x24277 +0xFDED 0x712B +0xFDEE 0x7145 +0xFDEF 0x5A88 +0xFDF0 0x714A +0xFDF2 0x5C9C +0xFDF3 0x24365 +0xFDF4 0x714F +0xFDF5 0x9362 +0xFDF6 0x242C1 +0xFDF7 0x712C +0xFDF8 0x2445A +0xFDF9 0x24A27 +0xFDFA 0x24A22 +0xFDFB 0x71BA +0xFDFC 0x28BE8 +0xFDFD 0x70BD +0xFDFE 0x720E +0xFE40 0x9442 +0xFE41 0x7215 +0xFE42 0x5911 +0xFE43 0x9443 +0xFE44 0x7224 +0xFE45 0x9341 +0xFE46 0x25605 +0xFE47 0x722E +0xFE48 0x7240 +0xFE49 0x24974 +0xFE4A 0x68BD +0xFE4B 0x7255 +0xFE4C 0x7257 +0xFE4D 0x3E55 +0xFE4E 0x23044 +0xFE4F 0x680D +0xFE50 0x6F3D +0xFE51 0x7282 +0xFE53 0x732B +0xFE54 0x24823 +0xFE55 0x2882B +0xFE56 0x48ED +0xFE57 0x28804 +0xFE58 0x7328 +0xFE59 0x732E +0xFE5A 0x73CF +0xFE5B 0x73AA +0xFE5C 0x20C3A +0xFE5D 0x26A2E +0xFE5E 0x73C9 +0xFE5F 0x7449 +0xFE60 0x241E2 +0xFE61 0x216E7 +0xFE62 0x24A24 +0xFE63 0x6623 +0xFE64 0x36C5 +0xFE65 0x249B7 +0xFE66 0x2498D +0xFE67 0x249FB +0xFE68 0x73F7 +0xFE69 0x7415 +0xFE6A 0x6903 +0xFE6B 0x24A26 +0xFE6C 0x7439 +0xFE6D 0x205C3 +0xFE6E 0x3ED7 +0xFE70 0x228AD +0xFE71 0x7460 +0xFE72 0x28EB2 +0xFE73 0x7447 +0xFE74 0x73E4 +0xFE75 0x7476 +0xFE76 0x83B9 +0xFE77 0x746C +0xFE78 0x3730 +0xFE79 0x7474 +0xFE7A 0x93F1 +0xFE7B 0x6A2C +0xFE7C 0x7482 +0xFE7D 0x4953 +0xFE7E 0x24A8C +0xFEA1 0x2415F +0xFEA2 0x24A79 +0xFEA3 0x28B8F +0xFEA4 0x5B46 +0xFEA5 0x28C03 +0xFEA6 0x2189E +0xFEA7 0x74C8 +0xFEA8 0x21988 +0xFEA9 0x750E +0xFEAB 0x751E +0xFEAC 0x28ED9 +0xFEAD 0x21A4B +0xFEAE 0x5BD7 +0xFEAF 0x28EAC +0xFEB0 0x9385 +0xFEB1 0x754D +0xFEB2 0x754A +0xFEB3 0x7567 +0xFEB4 0x756E +0xFEB5 0x24F82 +0xFEB6 0x3F04 +0xFEB7 0x24D13 +0xFEB8 0x758E +0xFEB9 0x745D +0xFEBA 0x759E +0xFEBB 0x75B4 +0xFEBC 0x7602 +0xFEBD 0x762C +0xFEBE 0x7651 +0xFEBF 0x764F +0xFEC0 0x766F +0xFEC1 0x7676 +0xFEC2 0x263F5 +0xFEC3 0x7690 +0xFEC4 0x81EF +0xFEC5 0x37F8 +0xFEC6 0x26911 +0xFEC7 0x2690E +0xFEC8 0x76A1 +0xFEC9 0x76A5 +0xFECA 0x76B7 +0xFECB 0x76CC +0xFECC 0x26F9F +0xFECD 0x8462 +0xFECE 0x2509D +0xFECF 0x2517D +0xFED0 0x21E1C +0xFED1 0x771E +0xFED2 0x7726 +0xFED3 0x7740 +0xFED4 0x64AF +0xFED5 0x25220 +0xFED6 0x7758 +0xFED7 0x232AC +0xFED8 0x77AF +0xFED9 0x28964 +0xFEDA 0x28968 +0xFEDB 0x216C1 +0xFEDC 0x77F4 +0xFEDE 0x21376 +0xFEDF 0x24A12 +0xFEE0 0x68CA +0xFEE1 0x78AF +0xFEE2 0x78C7 +0xFEE3 0x78D3 +0xFEE4 0x96A5 +0xFEE5 0x792E +0xFEE6 0x255E0 +0xFEE7 0x78D7 +0xFEE8 0x7934 +0xFEE9 0x78B1 +0xFEEA 0x2760C +0xFEEB 0x8FB8 +0xFEEC 0x8884 +0xFEED 0x28B2B +0xFEEE 0x26083 +0xFEEF 0x2261C +0xFEF0 0x7986 +0xFEF1 0x8900 +0xFEF2 0x6902 +0xFEF3 0x7980 +0xFEF4 0x25857 +0xFEF5 0x799D +0xFEF6 0x27B39 +0xFEF7 0x793C +0xFEF8 0x79A9 +0xFEF9 0x6E2A +0xFEFA 0x27126 +0xFEFB 0x3EA8 +0xFEFC 0x79C6 +0xFEFD 0x2910D +0xFEFE 0x79D4 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet new file mode 100644 index 0000000..9759f4f --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet @@ -0,0 +1,249 @@ +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e g h i j k l m n o +p q r s t u v w x y +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + +@ A C F G H I L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b d e f g h i j k l m n o +p q r s t v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m n +p q r s t u v w x y z { | } + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l n o +p q r s t u v w x y { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` b c d e f g h i j k l m n o +p q r s t u w y z | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R T U V W X Y Z [ \ ] ^ _ +` a c d e f g i j l m n o +p q r s t u v x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M O +P Q R S T U V W X Y Z [ \ ] ^ _ + a b c d e g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V X Y [ \ ] ^ _ +` a d e f g h i j k l m n o +p q s t u v x y z { | } ~ + + + + + + diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet.UTF-8 b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet.UTF-8 new file mode 100644 index 0000000..7a44df2 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004-snippet.UTF-8 @@ -0,0 +1,249 @@ +䏰 䰲 䘃 䖦 䕸 𧉧 䵷 䖳 𧲱 䳢 𧳅 㮕 䜶 䝄 䱇 䱀 +𤊿 𣘗 𧍒 𦺋 𧃒 䱗 𪍑 䝏 䗚 䲅 𧱬 䴇 䪤 䚡 𦬣 爥 +𥩔 𡩣 𣸆 𣽡 晍 囻 綕 夝 𨮹 㷴 霴 𧯯 寛 𡵞 媤 +㘥 𩺰 嫑 宷 峼 杮 薓 𩥅 瑡 璝 +㇀ ㇁ ㇂ ㇃ ㇄ 𠄌 ㇅ 𠃑 𠃍 ㇆ ㇇ 𠃋 𡿨 ㇈ 𠃊 ㇉ +㇊ ㇋ ㇌ 𠄎 ㇍ ㇎ Ā Á Ǎ À Ē É Ě È Ō Ó +Ǒ Ò Ê̄ Ế Ê̌ Ề Ê ā á ǎ à ɑ ē é ě è +ī í ǐ ì ō ó ǒ ò ū ú ǔ ù ǖ ǘ ǚ + ǜ ü ê̄ ế ê̌ ề ê ɡ ⏚ ⏛ +𪎩 𡅅 攊 丽 滝 鵎 釟 𧜵 撑 会 伨 +侨 兖 兴 农 凤 务 动 医 华 发 变 团 声 处 备 夲 +头 学 实 実 岚 庆 总 斉 柾 栄 桥 济 炼 电 纤 纬 +纺 织 经 统 缆 缷 艺 苏 药 视 设 询 车 轧 轮 + 琑 糼 緍 楆 竉 刧 醌 碸 酞 肼 +贋 胶 𠧧 肟 黇 䳍 鷉 鸌 䰾 𩷶 𧀎 鸊 𪄳 㗁 + 溚 舾 甙 䤑 马 骏 龙 禇 𨑬 𡷊 𠗐 𢫦 两 亁 +亀 亇 亿 仫 伷 㑌 侽 㹈 倃 傈 㑽 㒓 㒥 円 夅 凛 +凼 刅 争 剹 劐 匧 㗇 厩 㕑 厰 㕓 参 吣 㕭 㕲 㚁 +咓 咣 咴 咹 哐 哯 唘 唣 唨 㖘 唿 㖥 㖿 嗗 㗅 +𧶄 唥 𠱂 𠴕 𥄫 喐 𢳆 㧬 𠍁 蹆 𤶸 𩓥 䁓 𨂾 睺 +𢰸 㨴 䟕 𨅝 𦧲 𤷪 擝 𠵼 𠾴 𠳕 𡃴 撍 蹾 𠺖 𠰋 𠽤 +𢲩 𨉖 𤓓 𠵆 𩩍 𨃩 䟴 𤺧 𢳂 骲 㩧 𩗴 㿭 㔆 𥋇 +𩟔 𧣈 𢵄 鵮 頕 䏙 𦂥 撴 哣 𢵌 𢯊 𡁷 㧻 𡁯 + 𦛚 𦜖 𧦠 擪 𥁒 𠱃 蹨 𢆡 𨭌 𠜱 䠋 𠆩 㿺 塳 +𢶍 𤗈 𠓼 𦂗 𠽌 𠶖 啹 䂻 䎺 䪴 𢩦 𡂝 膪 飵 +𠶜 捹 㧾 𢝵 跀 嚡 摼 㹃 𪘁 𠸉 𢫏 𢳉 𡃈 𣧂 +㦒 㨆 𨊛 㕸 𥹉 𢃇 噒 𠼱 𢲲 𩜠 㒼 氽 𤸻 𧕴 +𢺋 𢈈 𪙛 𨳍 𠹺 𠰴 𦠜 羓 𡃏 𢠃 𢤹 㗻 𥇣 𠺌 𠾍 𠺪 +㾓 𠼰 𠵇 𡅏 𠹌 𠺫 𠮩 𠵈 𡃀 𡄽 㿹 𢚖 搲 𠾭 +𣏴 𧘹 𢯎 𠵾 𠵿 𢱑 𢱕 㨘 𠺘 𡃇 𠼮 𪘲 𦭐 𨳒 𨶙 𨳊 +閪 哌 苄 喹 𩻃 鰦 骶 𧝞 𢷮 煀 腭 胬 尜 𦕲 脴 +㞗 卟 𨂽 醶 𠻺 𠸏 𠹷 𠻻 㗝 𤷫 㘉 𠳖 嚯 𢞵 𡃉 𠸐 +𠹸 𡁸 𡅈 𨈇 𡑕 𠹹 𤹐 𢶤 婔 𡀝 𡀞 𡃵 𡃶 垜 𠸑 + 𧚔 𨋍 𠾵 𠹻 𥅾 㜃 𠾶 𡆀 𥋘 𪊽 𤧚 𡠺 𤅷 𨉼 墙 +剨 㘚 𥜽 箲 孨 䠀 䬬 鼧 䧧 鰟 鮍 𥭴 𣄽 嗻 㗲 嚉 +丨 夂 𡯁 屮 靑 𠂆 乛 亻 㔾 尣 彑 忄 㣺 扌 攵 歺 +氵 氺 灬 爫 丬 犭 𤣩 罒 礻 糹 罓 𦉪 㓁 𦍋 耂 +肀 𦘒 𦥑 卝 衤 见 𧢲 讠 贝 钅 镸 长 门 𨸏 韦 页 +风 飞 饣 𩠐 鱼 鸟 黄 歯 龜 丷 𠂇 阝 户 钢 +倻 淾 𩱳 龦 㷉 袏 𤅎 灷 峵 䬠 𥇍 㕙 𥴰 愢 𨨲 辧 +釶 熑 朙 玺 𣊁 𪄇 㲋 𡦀 䬐 磤 琂 冮 𨜏 䀉 橣 𪊺 +䈣 蘏 𠩯 稪 𩥇 𨫪 靕 灍 匤 𢁾 鏴 盙 𨧣 龧 矝 亣 +俰 傼 丯 众 龨 吴 綋 墒 壐 𡶶 庒 庙 忂 𢜒 斋 + 𣏹 椙 橃 𣱣 泿 爀 𤔅 玌 㻛 𤨓 嬕 璹 讃 𥲤 +𥚕 窓 篬 糃 繬 苸 薗 龩 袐 龪 躹 龫 迏 蕟 駠 鈡 +龬 𨶹 𡐿 䁱 䊢 娚 顨 杫 䉶 圽 藖 𤥻 +芿 𧄍 䲁 𦵴 嵻 𦬕 𦾾 龭 龮 宖 龯 曧 繛 湗 秊 㶈 +䓃 𣉖 𢞖 䎚 䔶 峕 𣬚 諹 屸 㴒 𣕑 嵸 龲 煗 䕘 +𤃬 𡸣 䱷 㥸 㑊 𠆤 𦱁 諌 侴 𠈹 妿 腬 顖 𩣺 弻 +𠮟 𢇁 𨥭 䄂 䚻 𩁹 㼇 龳 𪆵 䃸 㟖 䛷 𦱆 䅼 𨚲 +𧏿 䕭 㣔 𥒚 䕡 䔛 䶉 䱻 䵶 䗪 㿈 𤬏 㙡 䓞 䒽 䇭 +崾 嵈 嵖 㷼 㠏 嶤 嶹 㠠 㠸 幂 庽 弥 徃 㤈 㤔 㤿 +㥍 惗 愽 峥 㦉 憷 憹 懏 㦸 戬 抐 拥 挘 㧸 嚱 + 㨃 揢 揻 搇 摚 㩋 擀 崕 嘡 龟 㪗 斆 㪽 旿 晓 +㫲 暒 㬢 朖 㭂 枤 栀 㭘 桊 梄 㭲 㭱 㭻 椉 楃 牜 +楤 榟 榅 㮼 槖 㯝 橥 橴 橱 檂 㯬 檙 㯲 檫 檵 櫔 +櫶 殁 毁 毪 汵 沪 㳋 洂 洆 洦 涁 㳯 涤 涱 渕 渘 +温 溆 𨧀 溻 滢 滚 齿 滨 滩 漤 漴 㵆 𣽁 澁 澾 㵪 +㵵 熷 岙 㶊 瀬 㶑 灐 灔 灯 灿 炉 𠌥 䏁 㗱 𠻘 +𣻗 垾 𦻓 焾 𥟠 㙎 榢 𨯩 孴 穉 𥣡 𩓙 穥 穽 𥦬 窻 +窰 竂 竃 燑 𦒍 䇊 竚 竝 竪 䇯 咲 𥰁 笋 筕 笩 𥌎 +𥳾 箢 筯 莜 𥮴 𦱿 篐 萡 箒 𥴠 㶭 𥱥 蒒 篺 +簵 𥳁 籄 粃 𤢂 粦 晽 𤕸 糉 糇 糦 籴 糳 糵 + 繧 䔝 𦹄 絝 𦻖 璍 綉 綫 焵 綳 𤁗 𦀩 緤 㴓 +緵 𡟹 緥 𨍭 𦄡 𦅚 繮 纒 䌫 鑬 縧 罀 罁 罇 礶 +𦋐 駡 羗 𦍑 羣 𡙡 𠁨 䕜 𣝦 䔃 𨌺 翺 𦒉 耈 耝 + 耯 𪂇 𦳃 耻 耼 聡 𢜔 䦉 𦘦 𣷣 𦛨 朥 肧 𨩈 脇 +脚 墰 𢛶 汿 𦒘 𤾸 擧 𡒊 舘 𡡞 橓 𤩥 𤪕 䑺 舩 𠬍 +𦩒 𣵾 俹 𡓽 蓢 荢 𦬊 𤦧 𣔰 𡝳 𣷸 芪 椛 芳 䇛 +蕋 苐 茚 𠸖 𡞴 㛁 𣅽 𣕚 艻 苢 茘 𣺋 𦶣 𦬅 𦮗 𣗎 +㶿 茝 嗬 莅 䔋 𦶥 莬 菓 㑾 𦻔 橗 蕚 㒖 𦹂 𢻯 +葘 𥯤 葱 㷓 䓤 檧 葊 𣲵 祘 𦮖 𦹷 𦹃 蓞 莑 +䒠 蒓 蓤 𥲑 䉀 𥳀 䕃 蔴 嫲 𦺙 䔧 蕳 䔖 枿 蘖 + 𨘥 𨘻 藁 𧂈 蘂 𡖂 𧃍 䕫 䕪 蘨 㙈 𡢢 号 𧎚 虾 +蝱 𪃸 蟮 𢰧 螱 蟚 蠏 噡 虬 桖 䘏 衅 衆 𧗠 𣶹 𧗤 +衞 袜 䙛 袴 袵 揁 装 睷 𧜏 覇 覊 覧 覼 𨨥 +觧 𧤤 𧪽 誜 瞓 釾 誐 𧩙 竩 𧬺 𣾏 䜓 𧬸 煼 謌 謟 +𥐰 𥕥 謿 譌 譍 誩 𤩺 讐 讛 誯 𡛟 䘕 衏 貛 𧵔 𧶏 +貫 㜥 𧵓 賖 𧶘 𧶽 贒 贃 𡤐 賛 灜 贑 𤳉 㻐 +趩 𨀂 𡀔 𤦊 㭼 𨆼 𧄌 竧 躭 躶 軃 鋔 輙 輭 𨍥 𨐒 +辥 錃 𪊟 𠩐 辳 䤪 𨧞 𨔽 𣶻 廸 𣉢 迹 𪀔 𨚼 𨔁 𢌥 +㦀 𦻗 逷 𨔼 𧪾 遡 𨕬 𨘋 邨 𨜓 郄 𨛦 邮 酧 㫰 +醩 釄 粬 𨤳 𡺉 鈎 沟 鉁 鉢 𥖹 𨫆 𣲛 𨬌 𥗛 + 𠴱 錬 鍫 𨫡 𨯫 炏 嫃 𨫢 𨫥 䥥 鉄 𨯬 𨰹 𨯿 鍳 +鑛 躼 閅 閦 鐦 閠 濶 䊹 𢙺 𨛘 𡉼 𣸮 䧟 氜 陻 隖 +䅬 隣 𦻕 懚 隶 磵 𨫠 隽 双 䦡 𦲸 𠉴 𦐐 𩂯 𩃥 𤫑 +𡤕 𣌊 霱 虂 霶 䨏 䔽 䖅 𤫩 灵 孁 霛 𩇕 靗 孊 +𩇫 靟 鐥 僐 𣂷 𣂼 鞉 鞟 鞱 鞾 韀 韒 韠 𥑬 韮 琜 +𩐳 韵 𩐝 𧥺 䫑 頴 頳 顋 顦 㬎 𧅵 㵑 𠘰 𤅜 +𥜆 飊 颷 飈 飇 䫿 𦴧 𡛓 喰 飡 飦 飬 鍸 餹 𤨩 䭲 +𩡗 𩤅 駵 騌 騻 騐 驘 𥜥 㛄 𩂱 𩯕 髠 髢 𩬅 髴 䰎 +鬔 鬭 𨘀 倴 鬴 𦦨 㣃 𣁽 魐 魀 𩴾 婅 𡡣 鮎 𤉋 鰂 +鯿 鰌 𩹨 鷔 𩾷 𪆒 𪆫 𪃡 𪄣 𪇟 鵾 鶃 𪄴 鸎 梈 + 鷄 𢅛 𪆓 𪈠 𡤻 𪈳 鴹 𪂹 𪊴 麐 麕 麞 麢 䴴 麪 +麯 𤍤 黁 㭠 㧥 㴝 伲 㞾 𨰫 鼂 鼈 䮖 鐤 𦶢 鼗 +鼹 嚟 嚊 齅 馸 𩂋 韲 葿 齢 齩 竜 龎 爖 䮾 𤥵 𤦻 +煷 𤧸 𤍈 𤩑 玞 𨯚 𡣺 禟 𨥾 𨸶 鍩 鏳 𨩄 鋬 鎁 鏋 +𨥬 𤒹 爗 㻫 睲 穃 烐 𤑳 𤏸 煾 𡟯 炣 𡢾 𣖙 㻇 𡢅 +𥐯 𡟸 㜢 𡛻 𡠹 㛡 𡝴 𡣑 𥽋 㜣 𡛀 坛 𤨥 𡏾 𡊨 +𡏆 𡒶 蔃 𣚦 葕 𤦔 𧅥 𣸱 𥕜 𣻻 𧁒 䓴 𣛮 𩦝 𦼦 +柹 㜳 㰕 㷧 塬 𡤢 栐 䁗 𣜿 𤃡 𤂋 𤄏 𦰡 哋 嚞 𦚱 +嚒 𠿟 𠮨 𠸍 鏆 𨬓 鎜 仸 儫 㠙 𤐶 亼 𠑥 𠍿 佋 侊 +𥙑 婨 𠆫 𠏋 㦙 𠌊 𠐔 㐵 伩 𠋀 𨺳 𠉵 諚 𠈌 亘 + 働 儍 侢 伃 𤨎 𣺊 佂 倮 偬 傁 俌 俥 偘 僼 + 湶 𣖕 𣸹 𣺿 浲 𡢄 𣺉 冨 凃 𠗠 䓝 𠒣 𠒒 +𠒑 赺 𨪜 𠜎 剙 劤 𠡳 勡 䙺 熌 𤎌 𠰠 𤦬 𡃤 槑 +𠸝 㻞 璙 琔 瑖 玘 䮎 𤪼 𤂍 叐 㖄 爏 𤃉 喴 𠍅 +响 𠯆 圝 鉝 雴 鍦 埝 垍 坿 㘾 壋 媙 𨩆 𡛺 𡝯 𡜐 +娬 妸 銏 婾 嫏 娒 𥥆 𡧳 𡡡 𤊕 㛵 洅 瑃 娡 𥺃 +媁 𨯗 𠐓 鏠 璌 𡌃 焅 䥲 鐈 𨧻 鎽 㞠 尞 岞 幞 幈 +𡦖 𡥼 𣫮 廍 孏 𡤃 𡤄 㜁 𡢠 㛝 𡛾 㛓 脪 𨩇 𡶺 𣑲 +𨦨 弌 弎 𡤧 𡞫 婫 𡜻 孄 蘔 𧗽 衠 恾 𢡠 𢘫 忛 㺸 +𢖯 𢖾 𩂈 𦽳 懀 𠀾 𠁆 𢘛 憙 憘 恵 𢲛 𢴇 𤛔 𩅍 + 摱 𤙥 𢭪 㨩 𢬢 𣑐 𩣪 𢹸 挷 𪑛 撶 挱 揑 𤧣 𢵧 +护 𢲡 搻 敫 楲 㯴 𣂎 𣊭 𤦉 𣊫 唍 𣋠 𡣙 𩐿 曎 𣊉 +𣆳 㫠 䆐 𥖄 𨬢 𥖏 𡛼 𥕛 𥐥 磮 𣄃 𡠪 𣈴 㑤 𣈏 𣆂 +𤋉 暎 𦴤 晫 䮓 昰 𧡰 𡷫 晣 𣋒 𣋡 昞 𥡲 㣑 𣠺 𣞼 +㮙 𣞢 𣏾 瓐 㮖 枏 𤘪 梶 栞 㯄 檾 㡣 𣟕 𤒇 樳 橒 +櫉 欅 𡤒 攑 梘 橌 㯗 橺 歗 𣿀 𣲚 鎠 鋲 𨯪 𨫋 +銉 𨀞 𨧜 鑧 涥 漋 𤧬 𣽿 㶏 渄 𤀼 娽 渊 塇 洤 +硂 焻 𤌚 𤉶 烱 牐 犇 犔 𤞏 𤜥 兹 𤪤 𠗫 瑺 𣻸 𣙟 +𤩊 𤤗 𥿡 㼆 㺱 𤫟 𨰣 𣼵 悧 㻳 瓌 琼 鎇 琷 䒟 𦷪 +䕑 疃 㽣 𤳙 𤴆 㽘 畕 癳 𪗆 㬙 瑨 𨫌 𤦫 𤦎 㫻 + 㷍 𤩎 㻿 𤧅 𤣳 釺 圲 鍂 𨫣 𡡤 僟 𥈡 𥇧 睸 𣈲 +眎 眏 睻 𤚗 𣞁 㩞 𤣰 琸 璛 㺿 𤪺 𤫇 䃈 𤪖 𦆮 錇 +𥖁 砞 碍 碈 磒 珐 祙 𧝁 𥛣 䄎 蒖 禥 樭 𣻺 稺 +秴 䅮 𡛦 䄲 鈵 秱 𠵌 𤦌 𠊙 𣶺 𡝮 㖗 啫 㕰 㚪 𠇔 +𠰍 竢 婙 𢛵 𥪯 𥪜 娍 𠉛 磰 娪 𥯆 竾 䇹 籝 籭 䈑 +𥮳 𥺼 𥺦 糍 𤧹 𡞰 粎 籼 粮 檲 緜 縇 緓 罎 𦉡 +𦅜 𧭈 綗 𥺂 䉪 𦭵 𠤖 柖 𠁎 𣗏 埄 𦐒 𦏸 𤥢 翝 笧 +𠠬 𥫩 𥵃 笌 𥸎 駦 虅 驣 樜 𣐿 㧢 𤧷 𦖭 騟 𦖠 蒀 +𧄧 𦳑 䓪 脷 䐂 胆 脉 腂 𦞴 飃 𦩂 艢 艥 𦩑 葓 𦶧 +蘐 𧈛 媆 䅿 𡡀 嬫 𡢡 嫤 𡣘 蚠 蜨 𣶏 蠭 𧐢 娂 + 衮 佅 袇 袿 裦 襥 襍 𥚃 襔 𧞅 𧞄 𨯵 𨯙 𨮜 𨧹 +㺭 蒣 䛵 䛏 㟲 訽 訜 𩑈 彍 鈫 𤊄 旔 焩 烄 𡡅 鵭 +貟 賩 𧷜 妚 矃 姰 䍮 㛔 踪 躧 𤰉 輰 轊 䋴 汘 澻 +𢌡 䢛 潹 溋 𡟚 鯩 㚵 𤤯 邻 啱 䤆 醻 鐄 𨩋 䁢 +𨫼 鐧 𨰝 𨰻 蓥 訫 閙 閧 閗 閖 𨴴 瑅 㻂 𤣿 𤩂 𤏪 +㻧 𣈥 随 𨻧 𨹦 𨹥 㻌 𤧭 𤩸 𣿮 琒 瑫 㻼 靁 𩂰 +桇 䨝 𩂓 𥟟 鍨 𨦉 𨰦 𨬯 𦎾 銺 嬑 譩 䤼 珹 𤈛 +鞛 靱 餸 𠼦 巁 𨯅 𤪲 頟 𩓚 鋶 𩗗 釥 䓀 𨭐 𤩧 𨭤 +飜 𨩅 㼀 鈪 䤥 萔 餻 饍 𧬆 㷽 馛 䭯 馪 驜 𨭥 𥣈 +檏 騡 嫾 騯 𩣱 䮐 𩥈 馼 䮽 䮗 鍽 塲 𡌂 堢 𤦸 + 𡓨 硄 𢜟 𣶸 棅 㵽 鑘 㤧 慐 𢞁 𢥫 愇 鱏 鱓 鱻 +鰵 鰐 魿 鯏 𩸭 鮟 𪇵 𪃾 鴡 䲮 𤄄 鸘 䲰 鴌 𪆴 𪃭 +𪃳 𩤯 鶥 蒽 𦸒 𦿟 𦮂 藼 䔳 𦶤 𦺄 𦷰 萠 藮 𦸀 𣟗 +𦁤 秢 𣖜 𣙀 䤭 𤧞 㵢 鏛 銾 鍈 𠊿 碹 鉷 鑍 俤 㑀 +遤 𥕝 砽 硔 碶 硋 𡝗 𣇉 𤥁 㚚 佲 濚 濙 瀞 吔 +𤆵 垻 壳 垊 鴖 埗 焴 㒯 𤆬 燫 𦱀 𤾗 𡞵 𨩉 +愌 嫎 娋 䊼 𤒈 㜬 䭻 𨧼 鎻 鎸 𡣖 𠼝 葲 𦳀 𡐓 𤋺 +𢰦 𤏁 妔 𣶷 𦝁 綨 𦅛 𦂤 𤦹 𤦋 𨧺 鋥 珢 㻩 璴 𨭣 +𡢟 㻡 𤪳 櫘 珳 珻 㻖 𤨾 𤪔 𡟙 𤩦 𠎧 𡐤 𤧥 瑈 𤤖 +炥 𤥶 銄 珦 鍟 𠓾 錱 𨫎 𨨖 鎆 𨯧 𥗕 䤵 𨪂 煫 + 𤥃 𠳿 嚤 𠘚 𠯫 𠲸 唂 秄 𡟺 緾 𡛂 𤩐 𡡒 䔮 鐁 +㜊 𨫀 𤦭 妰 𡢿 𡢃 𧒄 媡 㛢 𣵛 㚰 鉟 婹 𨪁 𡡢 鍴 +㳍 𠪴 䪖 㦊 僴 㵩 㵌 𡎜 煵 䋻 𨈘 渏 𩃤 䓫 浗 𧹏 +灧 沯 㳖 𣿭 𣸭 渂 漌 㵯 𠏵 畑 㚼 㓈 䚀 㻚 䡱 姄 +鉮 䤾 轁 𨰜 𦯀 堒 埈 㛖 𡑒 烾 𤍢 𤩱 𢿣 𡊰 𢎽 梹 +楧 𡎘 𣓥 𧯴 𣛟 𨪃 𣟖 𣏺 𤲟 樚 𣚭 𦲷 萾 䓟 䓎 +𦴦 𦵑 𦲂 𦿞 漗 𧄉 茽 𡜺 菭 𦲀 𧁓 𡟛 妉 媂 𡞳 婡 +婱 𡤅 𤇼 㜭 姯 𡜼 㛇 熎 鎐 暚 𤊥 婮 娫 𤊓 樫 𣻹 +𧜶 𤑛 𤋊 焝 𤉙 𨧡 侰 𦴨 峂 𤓎 𧹍 𤎽 樌 𤉖 𡌄 炦 +焳 𤏩 㶥 泟 勇 𤩏 繥 姫 崯 㷳 彜 𤩝 𡟟 綤 萦 + 咅 𣫺 𣌀 𠈔 坾 𠣕 𠘙 㿥 𡾞 𪊶 瀃 𩅛 嵰 玏 糓 +𨩙 𩐠 俈 翧 狍 猐 𧫴 猸 猹 𥛶 獁 獈 㺩 𧬘 遬 燵 +𤣲 珡 臶 㻊 県 㻑 沢 国 琙 琞 琟 㻢 㻰 㻴 㻺 瓓 +㼎 㽓 畂 畭 畲 疍 㽼 痈 痜 㿀 癍 㿗 癴 㿜 発 𤽜 +熈 嘣 覀 塩 䀝 睃 䀹 条 䁅 㗛 瞘 䁪 䁯 属 瞾 矋 +売 砘 点 砜 䂨 砹 硇 硑 硦 葈 𥔵 礳 栃 礲 䄃 +䄉 禑 禙 辻 稆 込 䅧 窑 䆲 窼 艹 䇄 竏 竛 䇏 両 +筢 筬 筻 簒 簛 䉠 䉺 类 粜 䊌 粸 䊔 糭 输 烀 𠳏 +総 緔 緐 緽 羮 羴 犟 䎗 耠 耥 笹 耮 耱 联 㷌 垴 +炠 肷 胩 䏭 脌 猪 脎 脒 畠 脔 䐁 㬹 腖 腙 腚 + 䐓 堺 腼 膄 䐥 膓 䐭 膥 埯 臁 臤 艔 䒏 芦 艶 +苊 苘 苿 䒰 荗 险 榊 萅 烵 葤 惣 蒈 䔄 蒾 蓡 蓸 +蔐 蔸 蕒 䔻 蕯 蕰 藠 䕷 虲 蚒 蚲 蛯 际 螋 䘆 䘗 +袮 裿 褤 襇 覑 𧥧 訩 訸 誔 誴 豑 賔 賲 贜 䞘 塟 +跃 䟭 仮 踺 嗘 坔 蹱 嗵 躰 䠷 軎 転 軤 軭 軲 辷 +迁 迊 迌 逳 駄 䢭 飠 鈓 䤞 鈨 鉘 鉫 銱 銮 銿 +鋣 鋫 鋳 鋴 鋽 鍃 鎄 鎭 䥅 䥑 麿 鐗 匁 鐝 鐭 鐾 +䥪 鑔 鑹 锭 関 䦧 间 阳 䧥 枠 䨤 靀 䨵 鞲 韂 噔 +䫤 惨 颹 䬙 飱 塄 餎 餙 冴 餜 餷 饂 饝 饢 䭰 駅 +䮝 騼 鬏 窃 魩 鮁 鯝 鯱 鯴 䱭 鰠 㝯 𡯂 鵉 鰺 + 黾 噐 鶓 鶽 鷀 鷼 银 辶 鹻 麬 麱 麽 黆 铜 黢 +黱 黸 竈 齄 𠂔 𠊷 𠎠 椚 铃 妬 𠓗 塀 铁 㞹 𠗕 𠘕 +𠙶 𡚺 块 煳 𠫂 𠫍 𠮿 呪 吆 𠯋 咞 𠯻 𠰻 𠱓 𠱥 𠱼 +惧 𠲍 噺 𠲵 𠳝 𠳭 𠵯 𠶲 𠷈 楕 鰯 螥 𠸄 𠸎 𠻗 𠾐 +𠼭 𠹳 尠 𠾼 帋 𡁜 𡁏 𡁶 朞 𡁻 𡂈 𡂖 㙇 𡂿 𡃓 𡄯 +𡄻 卤 蒭 𡋣 𡍵 𡌶 讁 𡕷 𡘙 𡟃 𡟇 乸 炻 𡠭 𡥪 +𡨭 𡩅 𡰪 𡱰 𡲬 𡻈 拃 𡻕 𡼕 熘 桕 𢁅 槩 㛈 𢉼 𢏗 +𢏺 𢜪 𢡱 𢥏 苽 𢥧 𢦓 𢫕 覥 𢫨 辠 𢬎 鞸 𢬿 顇 骽 +𢱌 𢲈 𢲷 𥯨 𢴈 𢴒 𢶷 𢶕 𢹂 𢽴 𢿌 𣀳 𣁦 𣌟 𣏞 +徱 晈 暿 𧩹 𣕧 𣗳 𤦺 𣘚 𣜖 𠍆 墵 朎 + 椘 𣪧 𧙗 𥿢 𣸑 𣺹 𧗾 𢂚 䣐 䪸 𤄙 𨪚 𤋮 𤌍 𤀻 +𤌴 𤎖 𤩅 𠗊 凒 𠘑 妟 𡺨 㮾 𣳿 𤐄 𤓖 垈 𤙴 㦛 𤜯 +𨗨 𩧉 㝢 𢇃 譞 𨭎 𤠒 𤣻 𤨕 爉 𤫀 𠱸 奥 𤺥 𤾆 +𠝹 軚 𥀬 劏 圿 煱 𥊙 𥐙 𣽊 𤪧 喼 𥑆 𥑮 𦭒 㑳 +𥔿 𧘲 𥕞 䜘 𥕢 𥕦 𥟇 𤤿 𥡝 偦 㓻 𣏌 𥤃 䝼 𨥈 +𥪮 𥮉 𥰆 𡶐 垡 煑 𦄂 𧰒 遖 𦆲 𤾚 譢 𦐂 𦑊 +嵛 𦯷 𦒄 𡤜 諪 𤧶 𦒈 𣿯 𦔒 䯀 𦖿 𦚵 𢜛 鑥 𥟡 +憕 娧 晉 嚹 𤔡 𦛼 乪 𤤴 陖 涏 𦲽 㘘 襷 𦞙 𦡮 +𦐑 𦡞 𦣇 筂 𩃀 𠨑 𦤦 𦤹 穅 𦧺 騦 𦨭 㙟 +𦑩 𠀡 禃 𦨴 𦭛 崬 𣔙 𦮝 䛐 𦲤 画 补 𦶮 墶 + 㜜 𢖍 𧁋 𧇍 㱔 𧊀 𧊅 銁 𢅺 𧊋 錰 𧋦 𤧐 氹 钟 +𧑐 𠻸 蠧 裵 𢤦 𨑳 𡞱 溸 𤨪 𡠠 㦤 㚹 䔿 暶 +𩲭 𩢤 襃 𧟌 𧡘 囖 䃟 𡘊 㦡 𣜯 𨃨 𡏅 熭 荦 𧧝 𩆨 + 䲷 𧂯 𨦫 𧧽 𧨊 𧬋 𧵦 𤅺 筃 祾 𨀉 澵 𪋟 樃 𨌘 +厢 𦸇 鎿 栶 靝 𨅯 𨀣 𦦵 𡏭 𣈯 𨁈 嶅 𨰰 𨂃 圕 頣 +𨥉 嶫 𤦈 斾 槕 叒 𤪥 𣾁 㰑 朶 𨂐 𨃴 𨄮 𡾡 𨅏 +𨆉 𨆯 𨈚 𨌆 𨌯 𨎊 㗊 𨑨 𨚪 䣺 揦 𨥖 砈 鉕 𨦸 䏲 +𨧧 䏟 𨧨 𨭆 𨯔 姸 𨰉 𨿅 𩃬 𩄐 𩄼 㷷 𩅞 𤫊 +运 犏 嚋 𩓧 𩗩 𩖰 𩖸 𩜲 𩣑 𩥉 𩥪 𩧃 𩨨 𩬎 𩵚 𩶛 +纟 𩻸 𩼣 䲤 镇 𪊓 熢 𪋿 䶑 递 𪗋 䶜 𠲜 达 嗁 + 辺 𢒰 边 𤪓 䔉 繿 潖 檱 仪 㓤 𨬬 𧢝 㜺 躀 𡟵 +𨀤 𨭬 𨮙 𧨾 𦚯 㷫 𧙕 𣲷 𥘵 𥥖 亚 𥺁 𦉘 嚿 𠹭 踎 +孭 𣺈 𤲞 揞 𡟶 𡡻 攰 嘭 𥱊 吚 𥌑 㷆 𩶘 䱽 嘢 +嘞 罉 𥻘 奵 𣵀 蝰 东 𠿪 𠵉 𣚺 脗 鵞 贘 瘻 鱅 癎 +瞹 鍅 吲 腈 苷 嘥 脲 萘 肽 嗪 祢 噃 吖 𠺝 㗎 嘅 +嗱 曱 𨋢 㘭 甴 嗰 喺 咗 啲 𠱁 𠲖 廐 𥅈 𠹶 𢱢 +𠺢 麫 絚 嗞 𡁵 抝 靭 咔 賍 燶 酶 揼 掹 揾 啩 𢭃 +鱲 𢺳 冚 㓟 𠶧 冧 呍 唞 唓 癦 踭 𦢊 疱 肶 蠄 螆 +裇 膶 萜 𡃁 䓬 猄 𤜆 宐 茋 𦢓 噻 𢛴 𧴯 𤆣 𧵳 𦻐 +𧊶 酰 𡇙 鈈 𣳼 𪚩 𠺬 𠻹 牦 𡲢 䝎 𤿂 𧿹 𠿫 䃺 + 鱝 攟 𢶠 䣳 𤟠 𩵼 𠿬 𠸊 𧖣 𠿭 𦁈 𡆇 熣 +纎 鵐 业 丄 㕷 嬍 沲 卧 㚬 㧜 卽 㚥 𤘘 墚 𤭮 舭 +呋 垪 𥪕 𠥹 㩒 𢑥 獴 𩺬 䴉 鯭 𣳾 𩼰 䱛 𤾩 𩖞 +𩿞 葜 𣶶 𧊲 𦞳 𣜠 挮 紥 𣻷 𣸬 㨪 逈 勌 㹴 㙺 䗩 +𠒎 癀 嫰 𠺶 硺 𧼮 墧 䂿 噼 鮋 嵴 癔 𪐴 麅 䳡 +㟻 愙 𣃚 𤏲 噝 𡊩 垧 𤥣 𩸆 刴 𧂮 㖭 鵼 +籖 鬹 埞 𡝬 屓 擓 𩓐 𦌵 𧅤 蚭 𠴨 𦴢 𤫢 𠵱 凾 +𡼏 嶎 霃 𡷑 麁 遌 笟 鬂 峑 箣 扨 挵 髿 篏 鬪 籾 + 籂 粆 鰕 篼 鬉 鰛 𤤾 齚 啳 寃 俽 麘 俲 剠 +㸆 勑 坧 偖 妷 帒 韈 鶫 轜 呩 鞴 饀 鞺 匬 愰 + 椬 叚 鰊 鴂 䰻 陁 榀 傦 畆 𡝭 駚 剳 酙 隁 +酜 酑 𨺗 捿 𦴣 櫊 嘑 醎 畺 抅 𠏼 獏 籰 𥰡 𣳽 + 𤤙 盖 鮝 个 𠳔 莾 衂 届 槀 坺 刟 巵 从 +氱 𠇲 伹 咜 哚 劚 趂 㗾 㗳 歒 酼 龥 鮗 頮 +颴 骺 麨 麄 煺 笔 毺 蠘 罸 嘠 𪙊 蹷 齓 +跔 蹏 鸜 踁 抂 𨍽 踨 蹵 竓 𤩷 稾 磘 泪 詧 瘇 +𨩚 鼦 泎 蟖 痃 𪊲 硓 咢 贌 狢 獱 謭 猂 瓱 賫 𤪻 +蘯 徺 袠 䒷 𡠻 𦸅 詾 𢔛 惽 癧 髗 鵄 鍮 +鮏 蟵 賷 猬 霡 鮰 㗖 犲 䰇 籑 饊 𦅙 慙 䰄 +麖 慽 坟 慯 抦 戹 㩜 懢 厪 𣏵 捤 栂 㗒 + 嵗 𨯂 迚 𨸹 僙 𡵆 礆 匲 阸 𠼻 䁥 矾 +糂 𥼚 糚 稭 聦 聣 絍 甅 瓲 覔 舚 朌 聢 𧒆 聛 瓰 +脃 眤 覉 𦟌 畓 𦻑 螩 蟎 臈 螌 詉 貭 譃 眫 瓸 蓚 +㘵 榲 趦 覩 涹 蟁 𤀑 瓧 㷛 煶 悤 憜 㳑 +恷 罱 𨬭 惩 䭾 删 㰘 𣳇 𥻗 𧙖 𥔱 𡥄 𡋾 𩤃 +𦷜 𧂭 峁 𦆭 𨨏 𣙷 𠃮 𦡆 𤼎 䕢 嬟 𦍌 齐 麦 𦉫 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT new file mode 100644 index 0000000..701b01a --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT @@ -0,0 +1,8 @@ +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.TXT new file mode 100644 index 0000000..cbe21b0 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2004.TXT @@ -0,0 +1,18523 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8740 0x43F0 +0x8741 0x4C32 +0x8742 0x4603 +0x8743 0x45A6 +0x8744 0x4578 +0x8745 0x27267 +0x8746 0x4D77 +0x8747 0x45B3 +0x8748 0x27CB1 +0x8749 0x4CE2 +0x874A 0x27CC5 +0x874B 0x3B95 +0x874C 0x4736 +0x874D 0x4744 +0x874E 0x4C47 +0x874F 0x4C40 +0x8750 0x242BF +0x8751 0x23617 +0x8752 0x27352 +0x8753 0x26E8B +0x8754 0x270D2 +0x8755 0x4C57 +0x8756 0x2A351 +0x8757 0x474F +0x8758 0x45DA +0x8759 0x4C85 +0x875A 0x27C6C +0x875B 0x4D07 +0x875C 0x4AA4 +0x875D 0x46A1 +0x875E 0x26B23 +0x875F 0x7225 +0x8760 0x25A54 +0x8761 0x21A63 +0x8762 0x23E06 +0x8763 0x23F61 +0x8764 0x664D +0x8765 0x56FB +0x8767 0x7D95 +0x8768 0x591D +0x8769 0x28BB9 +0x876A 0x3DF4 +0x876B 0x9734 +0x876C 0x27BEF +0x876D 0x5BDB +0x876E 0x21D5E +0x876F 0x5AA4 +0x8770 0x3625 +0x8771 0x29EB0 +0x8772 0x5AD1 +0x8773 0x5BB7 +0x8774 0x5CFC +0x8775 0x676E +0x8776 0x8593 +0x8777 0x29945 +0x8778 0x7461 +0x8779 0x749D +0x8840 0x31C0 +0x8841 0x31C1 +0x8842 0x31C2 +0x8843 0x31C3 +0x8844 0x31C4 +0x8845 0x2010C +0x8846 0x31C5 +0x8847 0x200D1 +0x8848 0x200CD +0x8849 0x31C6 +0x884A 0x31C7 +0x884B 0x200CB +0x884C 0x21FE8 +0x884D 0x31C8 +0x884E 0x200CA +0x884F 0x31C9 +0x8850 0x31CA +0x8851 0x31CB +0x8852 0x31CC +0x8853 0x2010E +0x8854 0x31CD +0x8855 0x31CE +0x8856 0x0100 +0x8857 0x00C1 +0x8858 0x01CD +0x8859 0x00C0 +0x885A 0x0112 +0x885B 0x00C9 +0x885C 0x011A +0x885D 0x00C8 +0x885E 0x014C +0x885F 0x00D3 +0x8860 0x01D1 +0x8861 0x00D2 +0x8862 0x00CA 0x0304 +0x8863 0x1EBE +0x8864 0x00CA 0x030C +0x8865 0x1EC0 +0x8866 0x00CA +0x8867 0x0101 +0x8868 0x00E1 +0x8869 0x01CE +0x886A 0x00E0 +0x886B 0x0251 +0x886C 0x0113 +0x886D 0x00E9 +0x886E 0x011B +0x886F 0x00E8 +0x8870 0x012B +0x8871 0x00ED +0x8872 0x01D0 +0x8873 0x00EC +0x8874 0x014D +0x8875 0x00F3 +0x8876 0x01D2 +0x8877 0x00F2 +0x8878 0x016B +0x8879 0x00FA +0x887A 0x01D4 +0x887B 0x00F9 +0x887C 0x01D6 +0x887D 0x01D8 +0x887E 0x01DA +0x88A1 0x01DC +0x88A2 0x00FC +0x88A3 0x00EA 0x0304 +0x88A4 0x1EBF +0x88A5 0x00EA 0x030C +0x88A6 0x1EC1 +0x88A7 0x00EA +0x88A8 0x0261 +0x88A9 0x23DA +0x88AA 0x23DB +0x8940 0x2A3A9 +0x8941 0x21145 +0x8943 0x650A +0x8946 0x4E3D +0x8947 0x6EDD +0x8948 0x9D4E +0x8949 0x91DF +0x894C 0x27735 +0x894D 0x6491 +0x894E 0x4F1A +0x894F 0x4F28 +0x8950 0x4FA8 +0x8951 0x5156 +0x8952 0x5174 +0x8953 0x519C +0x8954 0x51E4 +0x8955 0x52A1 +0x8956 0x52A8 +0x8957 0x533B +0x8958 0x534E +0x8959 0x53D1 +0x895A 0x53D8 +0x895B 0x56E2 +0x895C 0x58F0 +0x895D 0x5904 +0x895E 0x5907 +0x895F 0x5932 +0x8960 0x5934 +0x8961 0x5B66 +0x8962 0x5B9E +0x8963 0x5B9F +0x8964 0x5C9A +0x8965 0x5E86 +0x8966 0x603B +0x8967 0x6589 +0x8968 0x67FE +0x8969 0x6804 +0x896A 0x6865 +0x896B 0x6D4E +0x896C 0x70BC +0x896D 0x7535 +0x896E 0x7EA4 +0x896F 0x7EAC +0x8970 0x7EBA +0x8971 0x7EC7 +0x8972 0x7ECF +0x8973 0x7EDF +0x8974 0x7F06 +0x8975 0x7F37 +0x8976 0x827A +0x8977 0x82CF +0x8978 0x836F +0x8979 0x89C6 +0x897A 0x8BBE +0x897B 0x8BE2 +0x897C 0x8F66 +0x897D 0x8F67 +0x897E 0x8F6E +0x89A1 0x7411 +0x89A2 0x7CFC +0x89A3 0x7DCD +0x89A4 0x6946 +0x89A5 0x7AC9 +0x89A6 0x5227 +0x89AB 0x918C +0x89AC 0x78B8 +0x89AD 0x915E +0x89AE 0x80BC +0x89B0 0x8D0B +0x89B1 0x80F6 +0x89B2 0x209E7 +0x89B5 0x809F +0x89B6 0x9EC7 +0x89B7 0x4CCD +0x89B8 0x9DC9 +0x89B9 0x9E0C +0x89BA 0x4C3E +0x89BB 0x29DF6 +0x89BC 0x2700E +0x89BD 0x9E0A +0x89BE 0x2A133 +0x89BF 0x35C1 +0x89C1 0x6E9A +0x89C2 0x823E +0x89C3 0x7519 +0x89C5 0x4911 +0x89C6 0x9A6C +0x89C7 0x9A8F +0x89C8 0x9F99 +0x89C9 0x7987 +0x89CA 0x2846C +0x89CB 0x21DCA +0x89CC 0x205D0 +0x89CD 0x22AE6 +0x89CE 0x4E24 +0x89CF 0x4E81 +0x89D0 0x4E80 +0x89D1 0x4E87 +0x89D2 0x4EBF +0x89D3 0x4EEB +0x89D4 0x4F37 +0x89D5 0x344C +0x89D6 0x4FBD +0x89D7 0x3E48 +0x89D8 0x5003 +0x89D9 0x5088 +0x89DA 0x347D +0x89DB 0x3493 +0x89DC 0x34A5 +0x89DD 0x5186 +0x89DE 0x5905 +0x89DF 0x51DB +0x89E0 0x51FC +0x89E1 0x5205 +0x89E2 0x4E89 +0x89E3 0x5279 +0x89E4 0x5290 +0x89E5 0x5327 +0x89E6 0x35C7 +0x89E7 0x53A9 +0x89E8 0x3551 +0x89E9 0x53B0 +0x89EA 0x3553 +0x89EB 0x53C2 +0x89EC 0x5423 +0x89ED 0x356D +0x89EE 0x3572 +0x89EF 0x3681 +0x89F0 0x5493 +0x89F1 0x54A3 +0x89F2 0x54B4 +0x89F3 0x54B9 +0x89F4 0x54D0 +0x89F5 0x54EF +0x89F6 0x5518 +0x89F7 0x5523 +0x89F8 0x5528 +0x89F9 0x3598 +0x89FA 0x553F +0x89FB 0x35A5 +0x89FC 0x35BF +0x89FD 0x55D7 +0x89FE 0x35C5 +0x8A40 0x27D84 +0x8A41 0x5525 +0x8A43 0x20C42 +0x8A44 0x20D15 +0x8A45 0x2512B +0x8A46 0x5590 +0x8A47 0x22CC6 +0x8A48 0x39EC +0x8A49 0x20341 +0x8A4A 0x8E46 +0x8A4B 0x24DB8 +0x8A4C 0x294E5 +0x8A4D 0x4053 +0x8A4E 0x280BE +0x8A4F 0x777A +0x8A50 0x22C38 +0x8A51 0x3A34 +0x8A52 0x47D5 +0x8A53 0x2815D +0x8A54 0x269F2 +0x8A55 0x24DEA +0x8A56 0x64DD +0x8A57 0x20D7C +0x8A58 0x20FB4 +0x8A59 0x20CD5 +0x8A5A 0x210F4 +0x8A5B 0x648D +0x8A5C 0x8E7E +0x8A5D 0x20E96 +0x8A5E 0x20C0B +0x8A5F 0x20F64 +0x8A60 0x22CA9 +0x8A61 0x28256 +0x8A62 0x244D3 +0x8A64 0x20D46 +0x8A65 0x29A4D +0x8A66 0x280E9 +0x8A67 0x47F4 +0x8A68 0x24EA7 +0x8A69 0x22CC2 +0x8A6A 0x9AB2 +0x8A6B 0x3A67 +0x8A6C 0x295F4 +0x8A6D 0x3FED +0x8A6E 0x3506 +0x8A6F 0x252C7 +0x8A70 0x297D4 +0x8A71 0x278C8 +0x8A72 0x22D44 +0x8A73 0x9D6E +0x8A74 0x9815 +0x8A76 0x43D9 +0x8A77 0x260A5 +0x8A78 0x64B4 +0x8A79 0x54E3 +0x8A7A 0x22D4C +0x8A7B 0x22BCA +0x8A7C 0x21077 +0x8A7D 0x39FB +0x8A7E 0x2106F +0x8AA1 0x266DA +0x8AA2 0x26716 +0x8AA3 0x279A0 +0x8AA4 0x64EA +0x8AA5 0x25052 +0x8AA6 0x20C43 +0x8AA7 0x8E68 +0x8AA8 0x221A1 +0x8AA9 0x28B4C +0x8AAA 0x20731 +0x8AAC 0x480B +0x8AAD 0x201A9 +0x8AAE 0x3FFA +0x8AAF 0x5873 +0x8AB0 0x22D8D +0x8AB2 0x245C8 +0x8AB3 0x204FC +0x8AB4 0x26097 +0x8AB5 0x20F4C +0x8AB6 0x20D96 +0x8AB7 0x5579 +0x8AB8 0x40BB +0x8AB9 0x43BA +0x8ABB 0x4AB4 +0x8ABC 0x22A66 +0x8ABD 0x2109D +0x8ABE 0x81AA +0x8ABF 0x98F5 +0x8AC0 0x20D9C +0x8AC1 0x6379 +0x8AC2 0x39FE +0x8AC3 0x22775 +0x8AC4 0x8DC0 +0x8AC5 0x56A1 +0x8AC6 0x647C +0x8AC7 0x3E43 +0x8AC9 0x2A601 +0x8ACA 0x20E09 +0x8ACB 0x22ACF +0x8ACC 0x22CC9 +0x8ACE 0x210C8 +0x8ACF 0x239C2 +0x8AD0 0x3992 +0x8AD1 0x3A06 +0x8AD2 0x2829B +0x8AD3 0x3578 +0x8AD4 0x25E49 +0x8AD5 0x220C7 +0x8AD6 0x5652 +0x8AD7 0x20F31 +0x8AD8 0x22CB2 +0x8AD9 0x29720 +0x8ADA 0x34BC +0x8ADB 0x6C3D +0x8ADC 0x24E3B +0x8ADF 0x27574 +0x8AE0 0x22E8B +0x8AE1 0x22208 +0x8AE2 0x2A65B +0x8AE3 0x28CCD +0x8AE4 0x20E7A +0x8AE5 0x20C34 +0x8AE6 0x2681C +0x8AE7 0x7F93 +0x8AE8 0x210CF +0x8AE9 0x22803 +0x8AEA 0x22939 +0x8AEB 0x35FB +0x8AEC 0x251E3 +0x8AED 0x20E8C +0x8AEE 0x20F8D +0x8AEF 0x20EAA +0x8AF0 0x3F93 +0x8AF1 0x20F30 +0x8AF2 0x20D47 +0x8AF3 0x2114F +0x8AF4 0x20E4C +0x8AF6 0x20EAB +0x8AF7 0x20BA9 +0x8AF8 0x20D48 +0x8AF9 0x210C0 +0x8AFA 0x2113D +0x8AFB 0x3FF9 +0x8AFC 0x22696 +0x8AFD 0x6432 +0x8AFE 0x20FAD +0x8B40 0x233F4 +0x8B41 0x27639 +0x8B42 0x22BCE +0x8B43 0x20D7E +0x8B44 0x20D7F +0x8B45 0x22C51 +0x8B46 0x22C55 +0x8B47 0x3A18 +0x8B48 0x20E98 +0x8B49 0x210C7 +0x8B4A 0x20F2E +0x8B4B 0x2A632 +0x8B4C 0x26B50 +0x8B4D 0x28CD2 +0x8B4E 0x28D99 +0x8B4F 0x28CCA +0x8B50 0x95AA +0x8B51 0x54CC +0x8B52 0x82C4 +0x8B53 0x55B9 +0x8B55 0x29EC3 +0x8B56 0x9C26 +0x8B57 0x9AB6 +0x8B58 0x2775E +0x8B59 0x22DEE +0x8B5A 0x7140 +0x8B5B 0x816D +0x8B5C 0x80EC +0x8B5D 0x5C1C +0x8B5E 0x26572 +0x8B5F 0x8134 +0x8B60 0x3797 +0x8B61 0x535F +0x8B62 0x280BD +0x8B63 0x91B6 +0x8B64 0x20EFA +0x8B65 0x20E0F +0x8B66 0x20E77 +0x8B67 0x20EFB +0x8B68 0x35DD +0x8B69 0x24DEB +0x8B6A 0x3609 +0x8B6B 0x20CD6 +0x8B6C 0x56AF +0x8B6D 0x227B5 +0x8B6E 0x210C9 +0x8B6F 0x20E10 +0x8B70 0x20E78 +0x8B71 0x21078 +0x8B72 0x21148 +0x8B73 0x28207 +0x8B74 0x21455 +0x8B75 0x20E79 +0x8B76 0x24E50 +0x8B77 0x22DA4 +0x8B78 0x5A54 +0x8B79 0x2101D +0x8B7A 0x2101E +0x8B7B 0x210F5 +0x8B7C 0x210F6 +0x8B7D 0x579C +0x8B7E 0x20E11 +0x8BA1 0x27694 +0x8BA2 0x282CD +0x8BA3 0x20FB5 +0x8BA4 0x20E7B +0x8BA5 0x2517E +0x8BA6 0x3703 +0x8BA7 0x20FB6 +0x8BA8 0x21180 +0x8BA9 0x252D8 +0x8BAA 0x2A2BD +0x8BAB 0x249DA +0x8BAC 0x2183A +0x8BAD 0x24177 +0x8BAE 0x2827C +0x8BAF 0x5899 +0x8BB0 0x5268 +0x8BB1 0x361A +0x8BB2 0x2573D +0x8BB3 0x7BB2 +0x8BB4 0x5B68 +0x8BB5 0x4800 +0x8BB6 0x4B2C +0x8BB7 0x9F27 +0x8BB8 0x49E7 +0x8BB9 0x9C1F +0x8BBA 0x9B8D +0x8BBB 0x25B74 +0x8BBC 0x2313D +0x8BBD 0x55FB +0x8BBE 0x35F2 +0x8BBF 0x5689 +0x8BC0 0x4E28 +0x8BC1 0x5902 +0x8BC2 0x21BC1 +0x8BC3 0x2F878 +0x8BC4 0x9751 +0x8BC5 0x20086 +0x8BC6 0x4E5B +0x8BC7 0x4EBB +0x8BC8 0x353E +0x8BC9 0x5C23 +0x8BCA 0x5F51 +0x8BCB 0x5FC4 +0x8BCC 0x38FA +0x8BCD 0x624C +0x8BCE 0x6535 +0x8BCF 0x6B7A +0x8BD0 0x6C35 +0x8BD1 0x6C3A +0x8BD2 0x706C +0x8BD3 0x722B +0x8BD4 0x4E2C +0x8BD5 0x72AD +0x8BD6 0x248E9 +0x8BD7 0x7F52 +0x8BD8 0x793B +0x8BD9 0x7CF9 +0x8BDA 0x7F53 +0x8BDB 0x2626A +0x8BDC 0x34C1 +0x8BDE 0x2634B +0x8BDF 0x8002 +0x8BE0 0x8080 +0x8BE1 0x26612 +0x8BE2 0x26951 +0x8BE3 0x535D +0x8BE4 0x8864 +0x8BE5 0x89C1 +0x8BE6 0x278B2 +0x8BE7 0x8BA0 +0x8BE8 0x8D1D +0x8BE9 0x9485 +0x8BEA 0x9578 +0x8BEB 0x957F +0x8BEC 0x95E8 +0x8BED 0x28E0F +0x8BEE 0x97E6 +0x8BEF 0x9875 +0x8BF0 0x98CE +0x8BF1 0x98DE +0x8BF2 0x9963 +0x8BF3 0x29810 +0x8BF4 0x9C7C +0x8BF5 0x9E1F +0x8BF6 0x9EC4 +0x8BF7 0x6B6F +0x8BF8 0xF907 +0x8BF9 0x4E37 +0x8BFA 0x20087 +0x8BFB 0x961D +0x8BFC 0x6237 +0x8BFD 0x94A2 +0x8C40 0x503B +0x8C41 0x6DFE +0x8C42 0x29C73 +0x8C43 0x9FA6 +0x8C44 0x3DC9 +0x8C45 0x888F +0x8C46 0x2414E +0x8C47 0x7077 +0x8C48 0x5CF5 +0x8C49 0x4B20 +0x8C4A 0x251CD +0x8C4B 0x3559 +0x8C4C 0x25D30 +0x8C4D 0x6122 +0x8C4E 0x28A32 +0x8C4F 0x8FA7 +0x8C50 0x91F6 +0x8C51 0x7191 +0x8C52 0x6719 +0x8C53 0x73BA +0x8C54 0x23281 +0x8C55 0x2A107 +0x8C56 0x3C8B +0x8C57 0x21980 +0x8C58 0x4B10 +0x8C59 0x78E4 +0x8C5A 0x7402 +0x8C5B 0x51AE +0x8C5C 0x2870F +0x8C5D 0x4009 +0x8C5E 0x6A63 +0x8C5F 0x2A2BA +0x8C60 0x4223 +0x8C61 0x860F +0x8C62 0x20A6F +0x8C63 0x7A2A +0x8C64 0x29947 +0x8C65 0x28AEA +0x8C66 0x9755 +0x8C67 0x704D +0x8C68 0x5324 +0x8C69 0x2207E +0x8C6A 0x93F4 +0x8C6B 0x76D9 +0x8C6C 0x289E3 +0x8C6D 0x9FA7 +0x8C6E 0x77DD +0x8C6F 0x4EA3 +0x8C70 0x4FF0 +0x8C71 0x50BC +0x8C72 0x4E2F +0x8C73 0x4F17 +0x8C74 0x9FA8 +0x8C75 0x5434 +0x8C76 0x7D8B +0x8C77 0x5892 +0x8C78 0x58D0 +0x8C79 0x21DB6 +0x8C7A 0x5E92 +0x8C7B 0x5E99 +0x8C7C 0x5FC2 +0x8C7D 0x22712 +0x8C7E 0x658B +0x8CA1 0x233F9 +0x8CA2 0x6919 +0x8CA3 0x6A43 +0x8CA4 0x23C63 +0x8CA5 0x6CFF +0x8CA7 0x7200 +0x8CA8 0x24505 +0x8CA9 0x738C +0x8CAA 0x3EDB +0x8CAB 0x24A13 +0x8CAC 0x5B15 +0x8CAD 0x74B9 +0x8CAE 0x8B83 +0x8CAF 0x25CA4 +0x8CB0 0x25695 +0x8CB1 0x7A93 +0x8CB2 0x7BEC +0x8CB3 0x7CC3 +0x8CB4 0x7E6C +0x8CB5 0x82F8 +0x8CB6 0x8597 +0x8CB7 0x9FA9 +0x8CB8 0x8890 +0x8CB9 0x9FAA +0x8CBA 0x8EB9 +0x8CBB 0x9FAB +0x8CBC 0x8FCF +0x8CBD 0x855F +0x8CBE 0x99E0 +0x8CBF 0x9221 +0x8CC0 0x9FAC +0x8CC1 0x28DB9 +0x8CC2 0x2143F +0x8CC3 0x4071 +0x8CC4 0x42A2 +0x8CC5 0x5A1A +0x8CC9 0x9868 +0x8CCA 0x676B +0x8CCB 0x4276 +0x8CCC 0x573D +0x8CCE 0x85D6 +0x8CCF 0x2497B +0x8CD0 0x82BF +0x8CD1 0x2710D +0x8CD2 0x4C81 +0x8CD3 0x26D74 +0x8CD4 0x5D7B +0x8CD5 0x26B15 +0x8CD6 0x26FBE +0x8CD7 0x9FAD +0x8CD8 0x9FAE +0x8CD9 0x5B96 +0x8CDA 0x9FAF +0x8CDB 0x66E7 +0x8CDC 0x7E5B +0x8CDD 0x6E57 +0x8CDE 0x79CA +0x8CDF 0x3D88 +0x8CE0 0x44C3 +0x8CE1 0x23256 +0x8CE2 0x22796 +0x8CE3 0x439A +0x8CE4 0x4536 +0x8CE6 0x5CD5 +0x8CE7 0x23B1A +0x8CE8 0x8AF9 +0x8CE9 0x5C78 +0x8CEA 0x3D12 +0x8CEB 0x23551 +0x8CEC 0x5D78 +0x8CED 0x9FB2 +0x8CEE 0x7157 +0x8CEF 0x4558 +0x8CF0 0x240EC +0x8CF1 0x21E23 +0x8CF2 0x4C77 +0x8CF3 0x3978 +0x8CF4 0x344A +0x8CF5 0x201A4 +0x8CF6 0x26C41 +0x8CF7 0x8ACC +0x8CF8 0x4FB4 +0x8CF9 0x20239 +0x8CFA 0x59BF +0x8CFB 0x816C +0x8CFC 0x9856 +0x8CFD 0x298FA +0x8CFE 0x5F3B +0x8D40 0x20B9F +0x8D42 0x221C1 +0x8D43 0x2896D +0x8D44 0x4102 +0x8D45 0x46BB +0x8D46 0x29079 +0x8D47 0x3F07 +0x8D48 0x9FB3 +0x8D49 0x2A1B5 +0x8D4A 0x40F8 +0x8D4B 0x37D6 +0x8D4C 0x46F7 +0x8D4D 0x26C46 +0x8D4E 0x417C +0x8D4F 0x286B2 +0x8D50 0x273FF +0x8D51 0x456D +0x8D52 0x38D4 +0x8D53 0x2549A +0x8D54 0x4561 +0x8D55 0x451B +0x8D56 0x4D89 +0x8D57 0x4C7B +0x8D58 0x4D76 +0x8D59 0x45EA +0x8D5A 0x3FC8 +0x8D5B 0x24B0F +0x8D5C 0x3661 +0x8D5D 0x44DE +0x8D5E 0x44BD +0x8D5F 0x41ED +0x8D60 0x5D3E +0x8D61 0x5D48 +0x8D62 0x5D56 +0x8D63 0x3DFC +0x8D64 0x380F +0x8D65 0x5DA4 +0x8D66 0x5DB9 +0x8D67 0x3820 +0x8D68 0x3838 +0x8D69 0x5E42 +0x8D6A 0x5EBD +0x8D6B 0x5F25 +0x8D6C 0x5F83 +0x8D6D 0x3908 +0x8D6E 0x3914 +0x8D6F 0x393F +0x8D70 0x394D +0x8D71 0x60D7 +0x8D72 0x613D +0x8D73 0x5CE5 +0x8D74 0x3989 +0x8D75 0x61B7 +0x8D76 0x61B9 +0x8D77 0x61CF +0x8D78 0x39B8 +0x8D79 0x622C +0x8D7A 0x6290 +0x8D7B 0x62E5 +0x8D7C 0x6318 +0x8D7D 0x39F8 +0x8D7E 0x56B1 +0x8DA1 0x3A03 +0x8DA2 0x63E2 +0x8DA3 0x63FB +0x8DA4 0x6407 +0x8DA5 0x645A +0x8DA6 0x3A4B +0x8DA7 0x64C0 +0x8DA8 0x5D15 +0x8DA9 0x5621 +0x8DAA 0x9F9F +0x8DAB 0x3A97 +0x8DAC 0x6586 +0x8DAD 0x3ABD +0x8DAE 0x65FF +0x8DAF 0x6653 +0x8DB0 0x3AF2 +0x8DB1 0x6692 +0x8DB2 0x3B22 +0x8DB3 0x6716 +0x8DB4 0x3B42 +0x8DB5 0x67A4 +0x8DB6 0x6800 +0x8DB7 0x3B58 +0x8DB8 0x684A +0x8DB9 0x6884 +0x8DBA 0x3B72 +0x8DBB 0x3B71 +0x8DBC 0x3B7B +0x8DBD 0x6909 +0x8DBE 0x6943 +0x8DBF 0x725C +0x8DC0 0x6964 +0x8DC1 0x699F +0x8DC2 0x6985 +0x8DC3 0x3BBC +0x8DC4 0x69D6 +0x8DC5 0x3BDD +0x8DC6 0x6A65 +0x8DC7 0x6A74 +0x8DC8 0x6A71 +0x8DC9 0x6A82 +0x8DCA 0x3BEC +0x8DCB 0x6A99 +0x8DCC 0x3BF2 +0x8DCD 0x6AAB +0x8DCE 0x6AB5 +0x8DCF 0x6AD4 +0x8DD0 0x6AF6 +0x8DD1 0x6B81 +0x8DD2 0x6BC1 +0x8DD3 0x6BEA +0x8DD4 0x6C75 +0x8DD5 0x6CAA +0x8DD6 0x3CCB +0x8DD7 0x6D02 +0x8DD8 0x6D06 +0x8DD9 0x6D26 +0x8DDA 0x6D81 +0x8DDB 0x3CEF +0x8DDC 0x6DA4 +0x8DDD 0x6DB1 +0x8DDE 0x6E15 +0x8DDF 0x6E18 +0x8DE0 0x6E29 +0x8DE1 0x6E86 +0x8DE2 0x289C0 +0x8DE3 0x6EBB +0x8DE4 0x6EE2 +0x8DE5 0x6EDA +0x8DE6 0x9F7F +0x8DE7 0x6EE8 +0x8DE8 0x6EE9 +0x8DE9 0x6F24 +0x8DEA 0x6F34 +0x8DEB 0x3D46 +0x8DEC 0x23F41 +0x8DED 0x6F81 +0x8DEE 0x6FBE +0x8DEF 0x3D6A +0x8DF0 0x3D75 +0x8DF1 0x71B7 +0x8DF2 0x5C99 +0x8DF3 0x3D8A +0x8DF4 0x702C +0x8DF5 0x3D91 +0x8DF6 0x7050 +0x8DF7 0x7054 +0x8DF8 0x706F +0x8DF9 0x707F +0x8DFA 0x7089 +0x8DFB 0x20325 +0x8DFC 0x43C1 +0x8DFD 0x35F1 +0x8DFE 0x20ED8 +0x8E40 0x23ED7 +0x8E41 0x57BE +0x8E42 0x26ED3 +0x8E43 0x713E +0x8E44 0x257E0 +0x8E45 0x364E +0x8E46 0x69A2 +0x8E47 0x28BE9 +0x8E48 0x5B74 +0x8E49 0x7A49 +0x8E4A 0x258E1 +0x8E4B 0x294D9 +0x8E4C 0x7A65 +0x8E4D 0x7A7D +0x8E4E 0x259AC +0x8E4F 0x7ABB +0x8E50 0x7AB0 +0x8E51 0x7AC2 +0x8E52 0x7AC3 +0x8E53 0x71D1 +0x8E54 0x2648D +0x8E55 0x41CA +0x8E56 0x7ADA +0x8E57 0x7ADD +0x8E58 0x7AEA +0x8E59 0x41EF +0x8E5A 0x54B2 +0x8E5B 0x25C01 +0x8E5C 0x7B0B +0x8E5D 0x7B55 +0x8E5E 0x7B29 +0x8E5F 0x2530E +0x8E60 0x25CFE +0x8E61 0x7BA2 +0x8E62 0x7B6F +0x8E63 0x839C +0x8E64 0x25BB4 +0x8E65 0x26C7F +0x8E66 0x7BD0 +0x8E67 0x8421 +0x8E68 0x7B92 +0x8E6A 0x25D20 +0x8E6B 0x3DAD +0x8E6C 0x25C65 +0x8E6D 0x8492 +0x8E6E 0x7BFA +0x8E70 0x7C35 +0x8E71 0x25CC1 +0x8E72 0x7C44 +0x8E73 0x7C83 +0x8E74 0x24882 +0x8E75 0x7CA6 +0x8E76 0x667D +0x8E77 0x24578 +0x8E78 0x7CC9 +0x8E79 0x7CC7 +0x8E7A 0x7CE6 +0x8E7B 0x7C74 +0x8E7C 0x7CF3 +0x8E7D 0x7CF5 +0x8EA1 0x7E67 +0x8EA2 0x451D +0x8EA3 0x26E44 +0x8EA4 0x7D5D +0x8EA5 0x26ED6 +0x8EA6 0x748D +0x8EA7 0x7D89 +0x8EA8 0x7DAB +0x8EA9 0x7135 +0x8EAA 0x7DB3 +0x8EAC 0x24057 +0x8EAD 0x26029 +0x8EAE 0x7DE4 +0x8EAF 0x3D13 +0x8EB0 0x7DF5 +0x8EB1 0x217F9 +0x8EB2 0x7DE5 +0x8EB3 0x2836D +0x8EB5 0x26121 +0x8EB6 0x2615A +0x8EB7 0x7E6E +0x8EB8 0x7E92 +0x8EB9 0x432B +0x8EBA 0x946C +0x8EBB 0x7E27 +0x8EBC 0x7F40 +0x8EBD 0x7F41 +0x8EBE 0x7F47 +0x8EBF 0x7936 +0x8EC0 0x262D0 +0x8EC1 0x99E1 +0x8EC2 0x7F97 +0x8EC3 0x26351 +0x8EC4 0x7FA3 +0x8EC5 0x21661 +0x8EC6 0x20068 +0x8EC7 0x455C +0x8EC8 0x23766 +0x8EC9 0x4503 +0x8ECA 0x2833A +0x8ECB 0x7FFA +0x8ECC 0x26489 +0x8ECE 0x8008 +0x8ECF 0x801D +0x8ED1 0x802F +0x8ED2 0x2A087 +0x8ED3 0x26CC3 +0x8ED4 0x803B +0x8ED5 0x803C +0x8ED6 0x8061 +0x8ED7 0x22714 +0x8ED8 0x4989 +0x8ED9 0x26626 +0x8EDA 0x23DE3 +0x8EDB 0x266E8 +0x8EDC 0x6725 +0x8EDD 0x80A7 +0x8EDE 0x28A48 +0x8EDF 0x8107 +0x8EE0 0x811A +0x8EE1 0x58B0 +0x8EE2 0x226F6 +0x8EE3 0x6C7F +0x8EE4 0x26498 +0x8EE5 0x24FB8 +0x8EE6 0x64E7 +0x8EE7 0x2148A +0x8EE8 0x8218 +0x8EE9 0x2185E +0x8EEA 0x6A53 +0x8EEB 0x24A65 +0x8EEC 0x24A95 +0x8EED 0x447A +0x8EEE 0x8229 +0x8EEF 0x20B0D +0x8EF0 0x26A52 +0x8EF1 0x23D7E +0x8EF2 0x4FF9 +0x8EF3 0x214FD +0x8EF4 0x84E2 +0x8EF5 0x8362 +0x8EF6 0x26B0A +0x8EF7 0x249A7 +0x8EF8 0x23530 +0x8EF9 0x21773 +0x8EFA 0x23DF8 +0x8EFB 0x82AA +0x8EFC 0x691B +0x8EFD 0x2F994 +0x8EFE 0x41DB +0x8F40 0x854B +0x8F41 0x82D0 +0x8F42 0x831A +0x8F43 0x20E16 +0x8F44 0x217B4 +0x8F45 0x36C1 +0x8F46 0x2317D +0x8F47 0x2355A +0x8F48 0x827B +0x8F49 0x82E2 +0x8F4A 0x8318 +0x8F4B 0x23E8B +0x8F4C 0x26DA3 +0x8F4D 0x26B05 +0x8F4E 0x26B97 +0x8F4F 0x235CE +0x8F50 0x3DBF +0x8F51 0x831D +0x8F52 0x55EC +0x8F53 0x8385 +0x8F54 0x450B +0x8F55 0x26DA5 +0x8F56 0x83AC +0x8F58 0x83D3 +0x8F59 0x347E +0x8F5A 0x26ED4 +0x8F5B 0x6A57 +0x8F5C 0x855A +0x8F5D 0x3496 +0x8F5E 0x26E42 +0x8F5F 0x22EEF +0x8F60 0x8458 +0x8F61 0x25BE4 +0x8F62 0x8471 +0x8F63 0x3DD3 +0x8F64 0x44E4 +0x8F65 0x6AA7 +0x8F66 0x844A +0x8F67 0x23CB5 +0x8F68 0x7958 +0x8F6A 0x26B96 +0x8F6B 0x26E77 +0x8F6C 0x26E43 +0x8F6D 0x84DE +0x8F6F 0x8391 +0x8F70 0x44A0 +0x8F71 0x8493 +0x8F72 0x84E4 +0x8F73 0x25C91 +0x8F74 0x4240 +0x8F75 0x25CC0 +0x8F76 0x4543 +0x8F77 0x8534 +0x8F78 0x5AF2 +0x8F79 0x26E99 +0x8F7A 0x4527 +0x8F7B 0x8573 +0x8F7C 0x4516 +0x8F7D 0x67BF +0x8F7E 0x8616 +0x8FA1 0x28625 +0x8FA2 0x2863B +0x8FA3 0x85C1 +0x8FA4 0x27088 +0x8FA5 0x8602 +0x8FA6 0x21582 +0x8FA7 0x270CD +0x8FA8 0x2F9B2 +0x8FA9 0x456A +0x8FAA 0x8628 +0x8FAB 0x3648 +0x8FAC 0x218A2 +0x8FAD 0x53F7 +0x8FAE 0x2739A +0x8FAF 0x867E +0x8FB0 0x8771 +0x8FB1 0x2A0F8 +0x8FB2 0x87EE +0x8FB3 0x22C27 +0x8FB4 0x87B1 +0x8FB5 0x87DA +0x8FB6 0x880F +0x8FB7 0x5661 +0x8FB8 0x866C +0x8FB9 0x6856 +0x8FBA 0x460F +0x8FBB 0x8845 +0x8FBC 0x8846 +0x8FBD 0x275E0 +0x8FBE 0x23DB9 +0x8FBF 0x275E4 +0x8FC0 0x885E +0x8FC1 0x889C +0x8FC2 0x465B +0x8FC3 0x88B4 +0x8FC4 0x88B5 +0x8FC5 0x63C1 +0x8FC6 0x88C5 +0x8FC7 0x7777 +0x8FC8 0x2770F +0x8FC9 0x8987 +0x8FCA 0x898A +0x8FCD 0x89A7 +0x8FCE 0x89BC +0x8FCF 0x28A25 +0x8FD0 0x89E7 +0x8FD1 0x27924 +0x8FD2 0x27ABD +0x8FD3 0x8A9C +0x8FD4 0x7793 +0x8FD5 0x91FE +0x8FD6 0x8A90 +0x8FD7 0x27A59 +0x8FD8 0x7AE9 +0x8FD9 0x27B3A +0x8FDA 0x23F8F +0x8FDB 0x4713 +0x8FDC 0x27B38 +0x8FDD 0x717C +0x8FDE 0x8B0C +0x8FDF 0x8B1F +0x8FE0 0x25430 +0x8FE1 0x25565 +0x8FE2 0x8B3F +0x8FE3 0x8B4C +0x8FE4 0x8B4D +0x8FE5 0x8AA9 +0x8FE6 0x24A7A +0x8FE7 0x8B90 +0x8FE8 0x8B9B +0x8FE9 0x8AAF +0x8FEA 0x216DF +0x8FEB 0x4615 +0x8FEC 0x884F +0x8FED 0x8C9B +0x8FEE 0x27D54 +0x8FEF 0x27D8F +0x8FF0 0x2F9D4 +0x8FF1 0x3725 +0x8FF2 0x27D53 +0x8FF3 0x8CD6 +0x8FF4 0x27D98 +0x8FF5 0x27DBD +0x8FF6 0x8D12 +0x8FF7 0x8D03 +0x8FF8 0x21910 +0x8FF9 0x8CDB +0x8FFA 0x705C +0x8FFB 0x8D11 +0x8FFC 0x24CC9 +0x8FFD 0x3ED0 +0x9040 0x8DA9 +0x9041 0x28002 +0x9042 0x21014 +0x9043 0x2498A +0x9044 0x3B7C +0x9045 0x281BC +0x9046 0x2710C +0x9047 0x7AE7 +0x9048 0x8EAD +0x9049 0x8EB6 +0x904A 0x8EC3 +0x904B 0x92D4 +0x904C 0x8F19 +0x904D 0x8F2D +0x904E 0x28365 +0x904F 0x28412 +0x9050 0x8FA5 +0x9051 0x9303 +0x9052 0x2A29F +0x9053 0x20A50 +0x9054 0x8FB3 +0x9055 0x492A +0x9056 0x289DE +0x9057 0x2853D +0x9058 0x23DBB +0x9059 0x5EF8 +0x905A 0x23262 +0x905B 0x8FF9 +0x905C 0x2A014 +0x905D 0x286BC +0x905E 0x28501 +0x905F 0x22325 +0x9060 0x3980 +0x9061 0x26ED7 +0x9062 0x9037 +0x9063 0x2853C +0x9064 0x27ABE +0x9065 0x9061 +0x9066 0x2856C +0x9067 0x2860B +0x9068 0x90A8 +0x9069 0x28713 +0x906A 0x90C4 +0x906B 0x286E6 +0x906C 0x90AE +0x906E 0x9167 +0x906F 0x3AF0 +0x9070 0x91A9 +0x9071 0x91C4 +0x9072 0x7CAC +0x9073 0x28933 +0x9074 0x21E89 +0x9075 0x920E +0x9076 0x6C9F +0x9077 0x9241 +0x9078 0x9262 +0x9079 0x255B9 +0x907B 0x28AC6 +0x907C 0x23C9B +0x907D 0x28B0C +0x907E 0x255DB +0x90A1 0x20D31 +0x90A2 0x932C +0x90A3 0x936B +0x90A4 0x28AE1 +0x90A5 0x28BEB +0x90A6 0x708F +0x90A7 0x5AC3 +0x90A8 0x28AE2 +0x90A9 0x28AE5 +0x90AA 0x4965 +0x90AB 0x9244 +0x90AC 0x28BEC +0x90AD 0x28C39 +0x90AE 0x28BFF +0x90AF 0x9373 +0x90B0 0x945B +0x90B1 0x8EBC +0x90B2 0x9585 +0x90B3 0x95A6 +0x90B4 0x9426 +0x90B5 0x95A0 +0x90B6 0x6FF6 +0x90B7 0x42B9 +0x90B8 0x2267A +0x90B9 0x286D8 +0x90BA 0x2127C +0x90BB 0x23E2E +0x90BC 0x49DF +0x90BD 0x6C1C +0x90BE 0x967B +0x90BF 0x9696 +0x90C0 0x416C +0x90C1 0x96A3 +0x90C2 0x26ED5 +0x90C3 0x61DA +0x90C4 0x96B6 +0x90C5 0x78F5 +0x90C6 0x28AE0 +0x90C7 0x96BD +0x90C8 0x53CC +0x90C9 0x49A1 +0x90CA 0x26CB8 +0x90CB 0x20274 +0x90CC 0x26410 +0x90CD 0x290AF +0x90CE 0x290E5 +0x90CF 0x24AD1 +0x90D0 0x21915 +0x90D1 0x2330A +0x90D2 0x9731 +0x90D3 0x8642 +0x90D4 0x9736 +0x90D5 0x4A0F +0x90D6 0x453D +0x90D7 0x4585 +0x90D8 0x24AE9 +0x90D9 0x7075 +0x90DA 0x5B41 +0x90DB 0x971B +0x90DD 0x291D5 +0x90DE 0x9757 +0x90DF 0x5B4A +0x90E0 0x291EB +0x90E1 0x975F +0x90E2 0x9425 +0x90E3 0x50D0 +0x90E4 0x230B7 +0x90E5 0x230BC +0x90E6 0x9789 +0x90E7 0x979F +0x90E8 0x97B1 +0x90E9 0x97BE +0x90EA 0x97C0 +0x90EB 0x97D2 +0x90EC 0x97E0 +0x90ED 0x2546C +0x90EE 0x97EE +0x90EF 0x741C +0x90F0 0x29433 +0x90F2 0x97F5 +0x90F3 0x2941D +0x90F4 0x2797A +0x90F5 0x4AD1 +0x90F6 0x9834 +0x90F7 0x9833 +0x90F8 0x984B +0x90F9 0x9866 +0x90FA 0x3B0E +0x90FB 0x27175 +0x90FC 0x3D51 +0x90FD 0x20630 +0x90FE 0x2415C +0x9140 0x25706 +0x9141 0x98CA +0x9142 0x98B7 +0x9143 0x98C8 +0x9144 0x98C7 +0x9145 0x4AFF +0x9146 0x26D27 +0x9147 0x216D3 +0x9148 0x55B0 +0x9149 0x98E1 +0x914A 0x98E6 +0x914B 0x98EC +0x914C 0x9378 +0x914D 0x9939 +0x914E 0x24A29 +0x914F 0x4B72 +0x9150 0x29857 +0x9151 0x29905 +0x9152 0x99F5 +0x9153 0x9A0C +0x9154 0x9A3B +0x9155 0x9A10 +0x9156 0x9A58 +0x9157 0x25725 +0x9158 0x36C4 +0x9159 0x290B1 +0x915A 0x29BD5 +0x915B 0x9AE0 +0x915C 0x9AE2 +0x915D 0x29B05 +0x915E 0x9AF4 +0x915F 0x4C0E +0x9160 0x9B14 +0x9161 0x9B2D +0x9162 0x28600 +0x9163 0x5034 +0x9164 0x9B34 +0x9165 0x269A8 +0x9166 0x38C3 +0x9167 0x2307D +0x9168 0x9B50 +0x9169 0x9B40 +0x916A 0x29D3E +0x916B 0x5A45 +0x916C 0x21863 +0x916D 0x9B8E +0x916E 0x2424B +0x916F 0x9C02 +0x9170 0x9BFF +0x9171 0x9C0C +0x9172 0x29E68 +0x9173 0x9DD4 +0x9174 0x29FB7 +0x9175 0x2A192 +0x9176 0x2A1AB +0x9177 0x2A0E1 +0x9178 0x2A123 +0x9179 0x2A1DF +0x917A 0x9D7E +0x917B 0x9D83 +0x917C 0x2A134 +0x917D 0x9E0E +0x917E 0x6888 +0x91A1 0x9DC4 +0x91A2 0x2215B +0x91A3 0x2A193 +0x91A4 0x2A220 +0x91A5 0x2193B +0x91A6 0x2A233 +0x91A7 0x9D39 +0x91A8 0x2A0B9 +0x91A9 0x2A2B4 +0x91AA 0x9E90 +0x91AB 0x9E95 +0x91AC 0x9E9E +0x91AD 0x9EA2 +0x91AE 0x4D34 +0x91AF 0x9EAA +0x91B0 0x9EAF +0x91B1 0x24364 +0x91B2 0x9EC1 +0x91B3 0x3B60 +0x91B4 0x39E5 +0x91B5 0x3D1D +0x91B6 0x4F32 +0x91B7 0x37BE +0x91B8 0x28C2B +0x91B9 0x9F02 +0x91BA 0x9F08 +0x91BB 0x4B96 +0x91BC 0x9424 +0x91BD 0x26DA2 +0x91BE 0x9F17 +0x91C0 0x9F39 +0x91C1 0x569F +0x91C2 0x568A +0x91C3 0x9F45 +0x91C4 0x99B8 +0x91C5 0x2908B +0x91C6 0x97F2 +0x91C7 0x847F +0x91C8 0x9F62 +0x91C9 0x9F69 +0x91CA 0x7ADC +0x91CB 0x9F8E +0x91CC 0x7216 +0x91CD 0x4BBE +0x91CE 0x24975 +0x91CF 0x249BB +0x91D0 0x7177 +0x91D1 0x249F8 +0x91D2 0x24348 +0x91D3 0x24A51 +0x91D4 0x739E +0x91D5 0x28BDA +0x91D6 0x218FA +0x91D7 0x799F +0x91D8 0x2897E +0x91D9 0x28E36 +0x91DA 0x9369 +0x91DB 0x93F3 +0x91DC 0x28A44 +0x91DD 0x92EC +0x91DE 0x9381 +0x91DF 0x93CB +0x91E0 0x2896C +0x91E1 0x244B9 +0x91E2 0x7217 +0x91E3 0x3EEB +0x91E4 0x7772 +0x91E5 0x7A43 +0x91E6 0x70D0 +0x91E7 0x24473 +0x91E8 0x243F8 +0x91E9 0x717E +0x91EA 0x217EF +0x91EB 0x70A3 +0x91EC 0x218BE +0x91ED 0x23599 +0x91EE 0x3EC7 +0x91EF 0x21885 +0x91F0 0x2542F +0x91F1 0x217F8 +0x91F2 0x3722 +0x91F3 0x216FB +0x91F4 0x21839 +0x91F5 0x36E1 +0x91F6 0x21774 +0x91F7 0x218D1 +0x91F8 0x25F4B +0x91F9 0x3723 +0x91FA 0x216C0 +0x91FB 0x575B +0x91FC 0x24A25 +0x91FD 0x213FE +0x91FE 0x212A8 +0x9240 0x213C6 +0x9241 0x214B6 +0x9242 0x8503 +0x9243 0x236A6 +0x9245 0x8455 +0x9246 0x24994 +0x9247 0x27165 +0x9248 0x23E31 +0x9249 0x2555C +0x924A 0x23EFB +0x924B 0x27052 +0x924C 0x44F4 +0x924D 0x236EE +0x924E 0x2999D +0x924F 0x26F26 +0x9250 0x67F9 +0x9251 0x3733 +0x9252 0x3C15 +0x9253 0x3DE7 +0x9254 0x586C +0x9255 0x21922 +0x9256 0x6810 +0x9257 0x4057 +0x9258 0x2373F +0x9259 0x240E1 +0x925A 0x2408B +0x925B 0x2410F +0x925C 0x26C21 +0x925D 0x54CB +0x925E 0x569E +0x925F 0x266B1 +0x9260 0x5692 +0x9261 0x20FDF +0x9262 0x20BA8 +0x9263 0x20E0D +0x9264 0x93C6 +0x9265 0x28B13 +0x9266 0x939C +0x9267 0x4EF8 +0x9268 0x512B +0x9269 0x3819 +0x926A 0x24436 +0x926B 0x4EBC +0x926C 0x20465 +0x926D 0x2037F +0x926E 0x4F4B +0x926F 0x4F8A +0x9270 0x25651 +0x9271 0x5A68 +0x9272 0x201AB +0x9273 0x203CB +0x9274 0x3999 +0x9275 0x2030A +0x9276 0x20414 +0x9277 0x3435 +0x9278 0x4F29 +0x9279 0x202C0 +0x927A 0x28EB3 +0x927B 0x20275 +0x927C 0x8ADA +0x927D 0x2020C +0x927E 0x4E98 +0x92A1 0x50CD +0x92A2 0x510D +0x92A3 0x4FA2 +0x92A4 0x4F03 +0x92A5 0x24A0E +0x92A6 0x23E8A +0x92A7 0x4F42 +0x92A8 0x502E +0x92A9 0x506C +0x92AA 0x5081 +0x92AB 0x4FCC +0x92AC 0x4FE5 +0x92AD 0x5058 +0x92AE 0x50FC +0x92B3 0x6E76 +0x92B4 0x23595 +0x92B5 0x23E39 +0x92B6 0x23EBF +0x92B7 0x6D72 +0x92B8 0x21884 +0x92B9 0x23E89 +0x92BA 0x51A8 +0x92BB 0x51C3 +0x92BC 0x205E0 +0x92BD 0x44DD +0x92BE 0x204A3 +0x92BF 0x20492 +0x92C0 0x20491 +0x92C1 0x8D7A +0x92C2 0x28A9C +0x92C3 0x2070E +0x92C4 0x5259 +0x92C5 0x52A4 +0x92C6 0x20873 +0x92C7 0x52E1 +0x92C9 0x467A +0x92CA 0x718C +0x92CB 0x2438C +0x92CC 0x20C20 +0x92CD 0x249AC +0x92CE 0x210E4 +0x92CF 0x69D1 +0x92D0 0x20E1D +0x92D2 0x3EDE +0x92D3 0x7499 +0x92D4 0x7414 +0x92D5 0x7456 +0x92D6 0x7398 +0x92D7 0x4B8E +0x92D8 0x24ABC +0x92D9 0x2408D +0x92DA 0x53D0 +0x92DB 0x3584 +0x92DC 0x720F +0x92DD 0x240C9 +0x92DE 0x55B4 +0x92DF 0x20345 +0x92E0 0x54CD +0x92E1 0x20BC6 +0x92E2 0x571D +0x92E3 0x925D +0x92E4 0x96F4 +0x92E5 0x9366 +0x92E6 0x57DD +0x92E7 0x578D +0x92E8 0x577F +0x92E9 0x363E +0x92EA 0x58CB +0x92EB 0x5A99 +0x92EC 0x28A46 +0x92ED 0x216FA +0x92EE 0x2176F +0x92EF 0x21710 +0x92F0 0x5A2C +0x92F1 0x59B8 +0x92F2 0x928F +0x92F3 0x5A7E +0x92F4 0x5ACF +0x92F5 0x5A12 +0x92F6 0x25946 +0x92F7 0x219F3 +0x92F8 0x21861 +0x92F9 0x24295 +0x92FA 0x36F5 +0x92FB 0x6D05 +0x92FC 0x7443 +0x92FD 0x5A21 +0x92FE 0x25E83 +0x9340 0x5A81 +0x9341 0x28BD7 +0x9342 0x20413 +0x9343 0x93E0 +0x9344 0x748C +0x9345 0x21303 +0x9346 0x7105 +0x9347 0x4972 +0x9348 0x9408 +0x9349 0x289FB +0x934A 0x93BD +0x934B 0x37A0 +0x934C 0x5C1E +0x934D 0x5C9E +0x934E 0x5E5E +0x934F 0x5E48 +0x9350 0x21996 +0x9351 0x2197C +0x9352 0x23AEE +0x9353 0x5ECD +0x9354 0x5B4F +0x9355 0x21903 +0x9356 0x21904 +0x9357 0x3701 +0x9358 0x218A0 +0x9359 0x36DD +0x935A 0x216FE +0x935B 0x36D3 +0x935C 0x812A +0x935D 0x28A47 +0x935E 0x21DBA +0x935F 0x23472 +0x9360 0x289A8 +0x9361 0x5F0C +0x9362 0x5F0E +0x9363 0x21927 +0x9364 0x217AB +0x9365 0x5A6B +0x9366 0x2173B +0x9367 0x5B44 +0x9368 0x8614 +0x9369 0x275FD +0x936A 0x8860 +0x936B 0x607E +0x936C 0x22860 +0x936D 0x2262B +0x936E 0x5FDB +0x936F 0x3EB8 +0x9370 0x225AF +0x9371 0x225BE +0x9372 0x29088 +0x9373 0x26F73 +0x9374 0x61C0 +0x9375 0x2003E +0x9376 0x20046 +0x9377 0x2261B +0x9378 0x6199 +0x9379 0x6198 +0x937A 0x6075 +0x937B 0x22C9B +0x937C 0x22D07 +0x937D 0x246D4 +0x937E 0x2914D +0x93A1 0x6471 +0x93A2 0x24665 +0x93A3 0x22B6A +0x93A4 0x3A29 +0x93A5 0x22B22 +0x93A6 0x23450 +0x93A7 0x298EA +0x93A8 0x22E78 +0x93A9 0x6337 +0x93AA 0x2A45B +0x93AB 0x64B6 +0x93AC 0x6331 +0x93AD 0x63D1 +0x93AE 0x249E3 +0x93AF 0x22D67 +0x93B0 0x62A4 +0x93B1 0x22CA1 +0x93B2 0x643B +0x93B3 0x656B +0x93B4 0x6972 +0x93B5 0x3BF4 +0x93B6 0x2308E +0x93B7 0x232AD +0x93B8 0x24989 +0x93B9 0x232AB +0x93BA 0x550D +0x93BB 0x232E0 +0x93BC 0x218D9 +0x93BD 0x2943F +0x93BE 0x66CE +0x93BF 0x23289 +0x93C0 0x231B3 +0x93C1 0x3AE0 +0x93C2 0x4190 +0x93C3 0x25584 +0x93C4 0x28B22 +0x93C5 0x2558F +0x93C6 0x216FC +0x93C7 0x2555B +0x93C8 0x25425 +0x93C9 0x78EE +0x93CA 0x23103 +0x93CB 0x2182A +0x93CC 0x23234 +0x93CD 0x3464 +0x93CE 0x2320F +0x93CF 0x23182 +0x93D0 0x242C9 +0x93D1 0x668E +0x93D2 0x26D24 +0x93D3 0x666B +0x93D4 0x4B93 +0x93D5 0x6630 +0x93D6 0x27870 +0x93D7 0x21DEB +0x93D8 0x6663 +0x93D9 0x232D2 +0x93DA 0x232E1 +0x93DB 0x661E +0x93DC 0x25872 +0x93DD 0x38D1 +0x93DE 0x2383A +0x93DF 0x237BC +0x93E0 0x3B99 +0x93E1 0x237A2 +0x93E2 0x233FE +0x93E3 0x74D0 +0x93E4 0x3B96 +0x93E5 0x678F +0x93E6 0x2462A +0x93E7 0x68B6 +0x93E8 0x681E +0x93E9 0x3BC4 +0x93EA 0x6ABE +0x93EB 0x3863 +0x93EC 0x237D5 +0x93ED 0x24487 +0x93EE 0x6A33 +0x93EF 0x6A52 +0x93F0 0x6AC9 +0x93F1 0x6B05 +0x93F2 0x21912 +0x93F3 0x6511 +0x93F4 0x6898 +0x93F5 0x6A4C +0x93F6 0x3BD7 +0x93F7 0x6A7A +0x93F8 0x6B57 +0x93F9 0x23FC0 +0x93FA 0x23C9A +0x93FB 0x93A0 +0x93FC 0x92F2 +0x93FD 0x28BEA +0x93FE 0x28ACB +0x9440 0x9289 +0x9441 0x2801E +0x9442 0x289DC +0x9443 0x9467 +0x9444 0x6DA5 +0x9445 0x6F0B +0x9446 0x249EC +0x9448 0x23F7F +0x9449 0x3D8F +0x944A 0x6E04 +0x944B 0x2403C +0x944C 0x5A3D +0x944D 0x6E0A +0x944E 0x5847 +0x944F 0x6D24 +0x9450 0x7842 +0x9451 0x713B +0x9452 0x2431A +0x9453 0x24276 +0x9454 0x70F1 +0x9455 0x7250 +0x9456 0x7287 +0x9457 0x7294 +0x9458 0x2478F +0x9459 0x24725 +0x945A 0x5179 +0x945B 0x24AA4 +0x945C 0x205EB +0x945D 0x747A +0x945E 0x23EF8 +0x945F 0x2365F +0x9460 0x24A4A +0x9461 0x24917 +0x9462 0x25FE1 +0x9463 0x3F06 +0x9464 0x3EB1 +0x9465 0x24ADF +0x9466 0x28C23 +0x9467 0x23F35 +0x9468 0x60A7 +0x9469 0x3EF3 +0x946A 0x74CC +0x946B 0x743C +0x946C 0x9387 +0x946D 0x7437 +0x946E 0x449F +0x946F 0x26DEA +0x9470 0x4551 +0x9471 0x7583 +0x9472 0x3F63 +0x9473 0x24CD9 +0x9474 0x24D06 +0x9475 0x3F58 +0x9476 0x7555 +0x9477 0x7673 +0x9478 0x2A5C6 +0x9479 0x3B19 +0x947A 0x7468 +0x947B 0x28ACC +0x947C 0x249AB +0x947D 0x2498E +0x947E 0x3AFB +0x94A1 0x3DCD +0x94A2 0x24A4E +0x94A3 0x3EFF +0x94A4 0x249C5 +0x94A5 0x248F3 +0x94A6 0x91FA +0x94A7 0x5732 +0x94A8 0x9342 +0x94A9 0x28AE3 +0x94AA 0x21864 +0x94AB 0x50DF +0x94AC 0x25221 +0x94AD 0x251E7 +0x94AE 0x7778 +0x94AF 0x23232 +0x94B0 0x770E +0x94B1 0x770F +0x94B2 0x777B +0x94B3 0x24697 +0x94B4 0x23781 +0x94B5 0x3A5E +0x94B6 0x248F0 +0x94B7 0x7438 +0x94B8 0x749B +0x94B9 0x3EBF +0x94BA 0x24ABA +0x94BB 0x24AC7 +0x94BC 0x40C8 +0x94BD 0x24A96 +0x94BE 0x261AE +0x94BF 0x9307 +0x94C0 0x25581 +0x94C1 0x781E +0x94C2 0x788D +0x94C3 0x7888 +0x94C4 0x78D2 +0x94C5 0x73D0 +0x94C6 0x7959 +0x94C7 0x27741 +0x94C8 0x256E3 +0x94C9 0x410E +0x94CB 0x8496 +0x94CC 0x79A5 +0x94CD 0x6A2D +0x94CE 0x23EFA +0x94CF 0x7A3A +0x94D0 0x79F4 +0x94D1 0x416E +0x94D2 0x216E6 +0x94D3 0x4132 +0x94D4 0x9235 +0x94D5 0x79F1 +0x94D6 0x20D4C +0x94D7 0x2498C +0x94D8 0x20299 +0x94D9 0x23DBA +0x94DA 0x2176E +0x94DB 0x3597 +0x94DC 0x556B +0x94DD 0x3570 +0x94DE 0x36AA +0x94DF 0x201D4 +0x94E0 0x20C0D +0x94E1 0x7AE2 +0x94E2 0x5A59 +0x94E3 0x226F5 +0x94E4 0x25AAF +0x94E5 0x25A9C +0x94E6 0x5A0D +0x94E7 0x2025B +0x94E8 0x78F0 +0x94E9 0x5A2A +0x94EA 0x25BC6 +0x94EB 0x7AFE +0x94EC 0x41F9 +0x94ED 0x7C5D +0x94EE 0x7C6D +0x94EF 0x4211 +0x94F0 0x25BB3 +0x94F1 0x25EBC +0x94F2 0x25EA6 +0x94F3 0x7CCD +0x94F4 0x249F9 +0x94F5 0x217B0 +0x94F6 0x7C8E +0x94F7 0x7C7C +0x94F8 0x7CAE +0x94F9 0x6AB2 +0x94FA 0x7DDC +0x94FB 0x7E07 +0x94FC 0x7DD3 +0x94FD 0x7F4E +0x94FE 0x26261 +0x9540 0x2615C +0x9541 0x27B48 +0x9542 0x7D97 +0x9543 0x25E82 +0x9544 0x426A +0x9545 0x26B75 +0x9546 0x20916 +0x9547 0x67D6 +0x9548 0x2004E +0x9549 0x235CF +0x954A 0x57C4 +0x954B 0x26412 +0x954C 0x263F8 +0x954D 0x24962 +0x954E 0x7FDD +0x954F 0x7B27 +0x9550 0x2082C +0x9551 0x25AE9 +0x9552 0x25D43 +0x9553 0x7B0C +0x9554 0x25E0E +0x9555 0x99E6 +0x9556 0x8645 +0x9557 0x9A63 +0x9558 0x6A1C +0x9559 0x2343F +0x955A 0x39E2 +0x955B 0x249F7 +0x955C 0x265AD +0x955D 0x9A1F +0x955E 0x265A0 +0x955F 0x8480 +0x9560 0x27127 +0x9561 0x26CD1 +0x9562 0x44EA +0x9563 0x8137 +0x9564 0x4402 +0x9565 0x80C6 +0x9566 0x8109 +0x9567 0x8142 +0x9568 0x267B4 +0x9569 0x98C3 +0x956A 0x26A42 +0x956B 0x8262 +0x956C 0x8265 +0x956D 0x26A51 +0x956E 0x8453 +0x956F 0x26DA7 +0x9570 0x8610 +0x9571 0x2721B +0x9572 0x5A86 +0x9573 0x417F +0x9574 0x21840 +0x9575 0x5B2B +0x9576 0x218A1 +0x9577 0x5AE4 +0x9578 0x218D8 +0x9579 0x86A0 +0x957A 0x2F9BC +0x957B 0x23D8F +0x957C 0x882D +0x957D 0x27422 +0x957E 0x5A02 +0x95A1 0x886E +0x95A2 0x4F45 +0x95A3 0x8887 +0x95A4 0x88BF +0x95A5 0x88E6 +0x95A6 0x8965 +0x95A7 0x894D +0x95A8 0x25683 +0x95A9 0x8954 +0x95AA 0x27785 +0x95AB 0x27784 +0x95AC 0x28BF5 +0x95AD 0x28BD9 +0x95AE 0x28B9C +0x95AF 0x289F9 +0x95B0 0x3EAD +0x95B1 0x84A3 +0x95B2 0x46F5 +0x95B3 0x46CF +0x95B4 0x37F2 +0x95B5 0x8A3D +0x95B6 0x8A1C +0x95B7 0x29448 +0x95B8 0x5F4D +0x95B9 0x922B +0x95BA 0x24284 +0x95BB 0x65D4 +0x95BC 0x7129 +0x95BD 0x70C4 +0x95BE 0x21845 +0x95BF 0x9D6D +0x95C0 0x8C9F +0x95C1 0x8CE9 +0x95C2 0x27DDC +0x95C3 0x599A +0x95C4 0x77C3 +0x95C5 0x59F0 +0x95C6 0x436E +0x95C7 0x36D4 +0x95C8 0x8E2A +0x95C9 0x8EA7 +0x95CA 0x24C09 +0x95CB 0x8F30 +0x95CC 0x8F4A +0x95CD 0x42F4 +0x95CE 0x6C58 +0x95CF 0x6FBB +0x95D0 0x22321 +0x95D1 0x489B +0x95D2 0x6F79 +0x95D3 0x6E8B +0x95D4 0x217DA +0x95D5 0x9BE9 +0x95D6 0x36B5 +0x95D7 0x2492F +0x95D8 0x90BB +0x95DA 0x5571 +0x95DB 0x4906 +0x95DC 0x91BB +0x95DD 0x9404 +0x95DE 0x28A4B +0x95DF 0x4062 +0x95E0 0x28AFC +0x95E1 0x9427 +0x95E2 0x28C1D +0x95E3 0x28C3B +0x95E4 0x84E5 +0x95E5 0x8A2B +0x95E6 0x9599 +0x95E7 0x95A7 +0x95E8 0x9597 +0x95E9 0x9596 +0x95EA 0x28D34 +0x95EB 0x7445 +0x95EC 0x3EC2 +0x95ED 0x248FF +0x95EE 0x24A42 +0x95EF 0x243EA +0x95F0 0x3EE7 +0x95F1 0x23225 +0x95F2 0x968F +0x95F3 0x28EE7 +0x95F4 0x28E66 +0x95F5 0x28E65 +0x95F6 0x3ECC +0x95F7 0x249ED +0x95F8 0x24A78 +0x95F9 0x23FEE +0x95FA 0x7412 +0x95FB 0x746B +0x95FC 0x3EFC +0x95FD 0x9741 +0x95FE 0x290B0 +0x9640 0x6847 +0x9641 0x4A1D +0x9642 0x29093 +0x9643 0x257DF +0x9645 0x9368 +0x9646 0x28989 +0x9647 0x28C26 +0x9648 0x28B2F +0x9649 0x263BE +0x964A 0x92BA +0x964B 0x5B11 +0x964C 0x8B69 +0x964D 0x493C +0x964E 0x73F9 +0x964F 0x2421B +0x9650 0x979B +0x9651 0x9771 +0x9652 0x9938 +0x9653 0x20F26 +0x9654 0x5DC1 +0x9655 0x28BC5 +0x9656 0x24AB2 +0x9657 0x981F +0x9658 0x294DA +0x9659 0x92F6 +0x965A 0x295D7 +0x965B 0x91E5 +0x965C 0x44C0 +0x965D 0x28B50 +0x965E 0x24A67 +0x965F 0x28B64 +0x9660 0x98DC +0x9661 0x28A45 +0x9662 0x3F00 +0x9663 0x922A +0x9664 0x4925 +0x9665 0x8414 +0x9666 0x993B +0x9667 0x994D +0x9668 0x27B06 +0x9669 0x3DFD +0x966A 0x999B +0x966B 0x4B6F +0x966C 0x99AA +0x966D 0x9A5C +0x966E 0x28B65 +0x966F 0x258C8 +0x9670 0x6A8F +0x9671 0x9A21 +0x9672 0x5AFE +0x9673 0x9A2F +0x9674 0x298F1 +0x9675 0x4B90 +0x9676 0x29948 +0x9677 0x99BC +0x9678 0x4BBD +0x9679 0x4B97 +0x967A 0x937D +0x967B 0x5872 +0x967C 0x21302 +0x967D 0x5822 +0x967E 0x249B8 +0x96A1 0x214E8 +0x96A2 0x7844 +0x96A3 0x2271F +0x96A4 0x23DB8 +0x96A5 0x68C5 +0x96A6 0x3D7D +0x96A7 0x9458 +0x96A8 0x3927 +0x96A9 0x6150 +0x96AA 0x22781 +0x96AB 0x2296B +0x96AC 0x6107 +0x96AD 0x9C4F +0x96AE 0x9C53 +0x96AF 0x9C7B +0x96B0 0x9C35 +0x96B1 0x9C10 +0x96B2 0x9B7F +0x96B3 0x9BCF +0x96B4 0x29E2D +0x96B5 0x9B9F +0x96B6 0x2A1F5 +0x96B7 0x2A0FE +0x96B8 0x9D21 +0x96B9 0x4CAE +0x96BA 0x24104 +0x96BB 0x9E18 +0x96BC 0x4CB0 +0x96BD 0x9D0C +0x96BE 0x2A1B4 +0x96BF 0x2A0ED +0x96C0 0x2A0F3 +0x96C1 0x2992F +0x96C2 0x9DA5 +0x96C3 0x84BD +0x96C4 0x26E12 +0x96C5 0x26FDF +0x96C6 0x26B82 +0x96C7 0x85FC +0x96C8 0x4533 +0x96C9 0x26DA4 +0x96CA 0x26E84 +0x96CB 0x26DF0 +0x96CC 0x8420 +0x96CD 0x85EE +0x96CE 0x26E00 +0x96CF 0x237D7 +0x96D0 0x26064 +0x96D1 0x79E2 +0x96D2 0x2359C +0x96D3 0x23640 +0x96D4 0x492D +0x96D5 0x249DE +0x96D6 0x3D62 +0x96D7 0x93DB +0x96D8 0x92BE +0x96D9 0x9348 +0x96DA 0x202BF +0x96DB 0x78B9 +0x96DC 0x9277 +0x96DD 0x944D +0x96DE 0x4FE4 +0x96DF 0x3440 +0x96E0 0x9064 +0x96E1 0x2555D +0x96E2 0x783D +0x96E3 0x7854 +0x96E4 0x78B6 +0x96E5 0x784B +0x96E6 0x21757 +0x96E7 0x231C9 +0x96E8 0x24941 +0x96E9 0x369A +0x96EA 0x4F72 +0x96EB 0x6FDA +0x96EC 0x6FD9 +0x96EE 0x701E +0x96EF 0x5414 +0x96F0 0x241B5 +0x96F1 0x57BB +0x96F2 0x58F3 +0x96F3 0x578A +0x96F4 0x9D16 +0x96F5 0x57D7 +0x96F6 0x7134 +0x96F7 0x34AF +0x96F8 0x241AC +0x96F9 0x71EB +0x96FA 0x26C40 +0x96FB 0x24F97 +0x96FD 0x217B5 +0x96FE 0x28A49 +0x9740 0x610C +0x9741 0x5ACE +0x9742 0x5A0B +0x9743 0x42BC +0x9744 0x24488 +0x9745 0x372C +0x9746 0x4B7B +0x9747 0x289FC +0x9748 0x93BB +0x9749 0x93B8 +0x974A 0x218D6 +0x974B 0x20F1D +0x974C 0x8472 +0x974D 0x26CC0 +0x974E 0x21413 +0x974F 0x242FA +0x9750 0x22C26 +0x9751 0x243C1 +0x9752 0x5994 +0x9753 0x23DB7 +0x9754 0x26741 +0x9755 0x7DA8 +0x9756 0x2615B +0x9757 0x260A4 +0x9758 0x249B9 +0x9759 0x2498B +0x975A 0x289FA +0x975B 0x92E5 +0x975C 0x73E2 +0x975D 0x3EE9 +0x975E 0x74B4 +0x975F 0x28B63 +0x9760 0x2189F +0x9761 0x3EE1 +0x9762 0x24AB3 +0x9763 0x6AD8 +0x9764 0x73F3 +0x9765 0x73FB +0x9766 0x3ED6 +0x9767 0x24A3E +0x9768 0x24A94 +0x9769 0x217D9 +0x976A 0x24A66 +0x976B 0x203A7 +0x976C 0x21424 +0x976D 0x249E5 +0x976E 0x7448 +0x976F 0x24916 +0x9770 0x70A5 +0x9771 0x24976 +0x9772 0x9284 +0x9773 0x73E6 +0x9774 0x935F +0x9775 0x204FE +0x9776 0x9331 +0x9777 0x28ACE +0x9778 0x28A16 +0x9779 0x9386 +0x977A 0x28BE7 +0x977B 0x255D5 +0x977C 0x4935 +0x977D 0x28A82 +0x977E 0x716B +0x97A1 0x24943 +0x97A2 0x20CFF +0x97A3 0x56A4 +0x97A4 0x2061A +0x97A5 0x20BEB +0x97A6 0x20CB8 +0x97A7 0x5502 +0x97A8 0x79C4 +0x97A9 0x217FA +0x97AA 0x7DFE +0x97AB 0x216C2 +0x97AC 0x24A50 +0x97AD 0x21852 +0x97AE 0x452E +0x97AF 0x9401 +0x97B0 0x370A +0x97B1 0x28AC0 +0x97B2 0x249AD +0x97B3 0x59B0 +0x97B4 0x218BF +0x97B5 0x21883 +0x97B6 0x27484 +0x97B7 0x5AA1 +0x97B8 0x36E2 +0x97B9 0x23D5B +0x97BA 0x36B0 +0x97BB 0x925F +0x97BC 0x5A79 +0x97BD 0x28A81 +0x97BE 0x21862 +0x97BF 0x9374 +0x97C0 0x3CCD +0x97C1 0x20AB4 +0x97C2 0x4A96 +0x97C3 0x398A +0x97C4 0x50F4 +0x97C5 0x3D69 +0x97C6 0x3D4C +0x97C7 0x2139C +0x97C8 0x7175 +0x97C9 0x42FB +0x97CA 0x28218 +0x97CB 0x6E0F +0x97CC 0x290E4 +0x97CD 0x44EB +0x97CE 0x6D57 +0x97CF 0x27E4F +0x97D0 0x7067 +0x97D1 0x6CAF +0x97D2 0x3CD6 +0x97D3 0x23FED +0x97D4 0x23E2D +0x97D5 0x6E02 +0x97D6 0x6F0C +0x97D7 0x3D6F +0x97D8 0x203F5 +0x97D9 0x7551 +0x97DA 0x36BC +0x97DB 0x34C8 +0x97DC 0x4680 +0x97DD 0x3EDA +0x97DE 0x4871 +0x97DF 0x59C4 +0x97E0 0x926E +0x97E1 0x493E +0x97E2 0x8F41 +0x97E3 0x28C1C +0x97E4 0x26BC0 +0x97E5 0x5812 +0x97E6 0x57C8 +0x97E7 0x36D6 +0x97E8 0x21452 +0x97E9 0x70FE +0x97EA 0x24362 +0x97EB 0x24A71 +0x97EC 0x22FE3 +0x97ED 0x212B0 +0x97EE 0x223BD +0x97EF 0x68B9 +0x97F0 0x6967 +0x97F1 0x21398 +0x97F2 0x234E5 +0x97F3 0x27BF4 +0x97F4 0x236DF +0x97F5 0x28A83 +0x97F6 0x237D6 +0x97F7 0x233FA +0x97F8 0x24C9F +0x97F9 0x6A1A +0x97FA 0x236AD +0x97FB 0x26CB7 +0x97FC 0x843E +0x97FD 0x44DF +0x97FE 0x44CE +0x9840 0x26D26 +0x9841 0x26D51 +0x9842 0x26C82 +0x9843 0x26FDE +0x9844 0x6F17 +0x9845 0x27109 +0x9846 0x833D +0x9847 0x2173A +0x9848 0x83ED +0x9849 0x26C80 +0x984A 0x27053 +0x984B 0x217DB +0x984C 0x5989 +0x984D 0x5A82 +0x984E 0x217B3 +0x984F 0x5A61 +0x9850 0x5A71 +0x9851 0x21905 +0x9852 0x241FC +0x9853 0x372D +0x9854 0x59EF +0x9855 0x2173C +0x9856 0x36C7 +0x9857 0x718E +0x9858 0x9390 +0x9859 0x669A +0x985A 0x242A5 +0x985B 0x5A6E +0x985C 0x5A2B +0x985D 0x24293 +0x985E 0x6A2B +0x985F 0x23EF9 +0x9860 0x27736 +0x9861 0x2445B +0x9862 0x242CA +0x9863 0x711D +0x9864 0x24259 +0x9865 0x289E1 +0x9866 0x4FB0 +0x9867 0x26D28 +0x9868 0x5CC2 +0x9869 0x244CE +0x986A 0x27E4D +0x986B 0x243BD +0x986C 0x6A0C +0x986D 0x24256 +0x986E 0x21304 +0x986F 0x70A6 +0x9870 0x7133 +0x9871 0x243E9 +0x9872 0x3DA5 +0x9873 0x6CDF +0x9874 0x2F825 +0x9875 0x24A4F +0x9876 0x7E65 +0x9877 0x59EB +0x9878 0x5D2F +0x9879 0x3DF3 +0x987A 0x5F5C +0x987B 0x24A5D +0x987C 0x217DF +0x987D 0x7DA4 +0x987E 0x8426 +0x98A1 0x5485 +0x98A2 0x23AFA +0x98A3 0x23300 +0x98A4 0x20214 +0x98A5 0x577E +0x98A6 0x208D5 +0x98A7 0x20619 +0x98A8 0x3FE5 +0x98A9 0x21F9E +0x98AA 0x2A2B6 +0x98AB 0x7003 +0x98AC 0x2915B +0x98AD 0x5D70 +0x98AE 0x738F +0x98AF 0x7CD3 +0x98B0 0x28A59 +0x98B1 0x29420 +0x98B2 0x4FC8 +0x98B3 0x7FE7 +0x98B4 0x72CD +0x98B5 0x7310 +0x98B6 0x27AF4 +0x98B7 0x7338 +0x98B8 0x7339 +0x98B9 0x256F6 +0x98BA 0x7341 +0x98BB 0x7348 +0x98BC 0x3EA9 +0x98BD 0x27B18 +0x98BE 0x906C +0x98BF 0x71F5 +0x98C0 0x248F2 +0x98C1 0x73E1 +0x98C2 0x81F6 +0x98C3 0x3ECA +0x98C4 0x770C +0x98C5 0x3ED1 +0x98C6 0x6CA2 +0x98C7 0x56FD +0x98C8 0x7419 +0x98C9 0x741E +0x98CA 0x741F +0x98CB 0x3EE2 +0x98CC 0x3EF0 +0x98CD 0x3EF4 +0x98CE 0x3EFA +0x98CF 0x74D3 +0x98D0 0x3F0E +0x98D1 0x3F53 +0x98D2 0x7542 +0x98D3 0x756D +0x98D4 0x7572 +0x98D5 0x758D +0x98D6 0x3F7C +0x98D7 0x75C8 +0x98D8 0x75DC +0x98D9 0x3FC0 +0x98DA 0x764D +0x98DB 0x3FD7 +0x98DC 0x7674 +0x98DD 0x3FDC +0x98DE 0x767A +0x98DF 0x24F5C +0x98E0 0x7188 +0x98E1 0x5623 +0x98E2 0x8980 +0x98E3 0x5869 +0x98E4 0x401D +0x98E5 0x7743 +0x98E6 0x4039 +0x98E7 0x6761 +0x98E8 0x4045 +0x98E9 0x35DB +0x98EA 0x7798 +0x98EB 0x406A +0x98EC 0x406F +0x98ED 0x5C5E +0x98EE 0x77BE +0x98EF 0x77CB +0x98F0 0x58F2 +0x98F1 0x7818 +0x98F2 0x70B9 +0x98F3 0x781C +0x98F4 0x40A8 +0x98F5 0x7839 +0x98F6 0x7847 +0x98F7 0x7851 +0x98F8 0x7866 +0x98F9 0x8448 +0x98FA 0x25535 +0x98FB 0x7933 +0x98FC 0x6803 +0x98FD 0x7932 +0x98FE 0x4103 +0x9940 0x4109 +0x9941 0x7991 +0x9942 0x7999 +0x9943 0x8FBB +0x9944 0x7A06 +0x9945 0x8FBC +0x9946 0x4167 +0x9947 0x7A91 +0x9948 0x41B2 +0x9949 0x7ABC +0x994A 0x8279 +0x994B 0x41C4 +0x994C 0x7ACF +0x994D 0x7ADB +0x994E 0x41CF +0x994F 0x4E21 +0x9950 0x7B62 +0x9951 0x7B6C +0x9952 0x7B7B +0x9953 0x7C12 +0x9954 0x7C1B +0x9955 0x4260 +0x9956 0x427A +0x9957 0x7C7B +0x9958 0x7C9C +0x9959 0x428C +0x995A 0x7CB8 +0x995B 0x4294 +0x995C 0x7CED +0x995D 0x8F93 +0x995E 0x70C0 +0x995F 0x20CCF +0x9960 0x7DCF +0x9961 0x7DD4 +0x9962 0x7DD0 +0x9963 0x7DFD +0x9964 0x7FAE +0x9965 0x7FB4 +0x9966 0x729F +0x9967 0x4397 +0x9968 0x8020 +0x9969 0x8025 +0x996A 0x7B39 +0x996B 0x802E +0x996C 0x8031 +0x996D 0x8054 +0x996E 0x3DCC +0x996F 0x57B4 +0x9970 0x70A0 +0x9971 0x80B7 +0x9972 0x80E9 +0x9973 0x43ED +0x9974 0x810C +0x9975 0x732A +0x9976 0x810E +0x9977 0x8112 +0x9978 0x7560 +0x9979 0x8114 +0x997A 0x4401 +0x997B 0x3B39 +0x997C 0x8156 +0x997D 0x8159 +0x997E 0x815A +0x99A1 0x4413 +0x99A2 0x583A +0x99A3 0x817C +0x99A4 0x8184 +0x99A5 0x4425 +0x99A6 0x8193 +0x99A7 0x442D +0x99A8 0x81A5 +0x99A9 0x57EF +0x99AA 0x81C1 +0x99AB 0x81E4 +0x99AC 0x8254 +0x99AD 0x448F +0x99AE 0x82A6 +0x99AF 0x8276 +0x99B0 0x82CA +0x99B1 0x82D8 +0x99B2 0x82FF +0x99B3 0x44B0 +0x99B4 0x8357 +0x99B5 0x9669 +0x99B6 0x698A +0x99B7 0x8405 +0x99B8 0x70F5 +0x99B9 0x8464 +0x99BA 0x60E3 +0x99BB 0x8488 +0x99BC 0x4504 +0x99BD 0x84BE +0x99BE 0x84E1 +0x99BF 0x84F8 +0x99C0 0x8510 +0x99C1 0x8538 +0x99C2 0x8552 +0x99C3 0x453B +0x99C4 0x856F +0x99C5 0x8570 +0x99C6 0x85E0 +0x99C7 0x4577 +0x99C8 0x8672 +0x99C9 0x8692 +0x99CA 0x86B2 +0x99CB 0x86EF +0x99CC 0x9645 +0x99CD 0x878B +0x99CE 0x4606 +0x99CF 0x4617 +0x99D0 0x88AE +0x99D1 0x88FF +0x99D2 0x8924 +0x99D3 0x8947 +0x99D4 0x8991 +0x99D5 0x27967 +0x99D6 0x8A29 +0x99D7 0x8A38 +0x99D8 0x8A94 +0x99D9 0x8AB4 +0x99DA 0x8C51 +0x99DB 0x8CD4 +0x99DC 0x8CF2 +0x99DD 0x8D1C +0x99DE 0x4798 +0x99DF 0x585F +0x99E0 0x8DC3 +0x99E1 0x47ED +0x99E2 0x4EEE +0x99E3 0x8E3A +0x99E4 0x55D8 +0x99E5 0x5754 +0x99E6 0x8E71 +0x99E7 0x55F5 +0x99E8 0x8EB0 +0x99E9 0x4837 +0x99EA 0x8ECE +0x99EB 0x8EE2 +0x99EC 0x8EE4 +0x99ED 0x8EED +0x99EE 0x8EF2 +0x99EF 0x8FB7 +0x99F0 0x8FC1 +0x99F1 0x8FCA +0x99F2 0x8FCC +0x99F3 0x9033 +0x99F4 0x99C4 +0x99F5 0x48AD +0x99F6 0x98E0 +0x99F7 0x9213 +0x99F8 0x491E +0x99F9 0x9228 +0x99FA 0x9258 +0x99FB 0x926B +0x99FC 0x92B1 +0x99FD 0x92AE +0x99FE 0x92BF +0x9A40 0x92E3 +0x9A41 0x92EB +0x9A42 0x92F3 +0x9A43 0x92F4 +0x9A44 0x92FD +0x9A45 0x9343 +0x9A46 0x9384 +0x9A47 0x93AD +0x9A48 0x4945 +0x9A49 0x4951 +0x9A4A 0x9EBF +0x9A4B 0x9417 +0x9A4C 0x5301 +0x9A4D 0x941D +0x9A4E 0x942D +0x9A4F 0x943E +0x9A50 0x496A +0x9A51 0x9454 +0x9A52 0x9479 +0x9A53 0x952D +0x9A54 0x95A2 +0x9A55 0x49A7 +0x9A56 0x95F4 +0x9A57 0x9633 +0x9A58 0x49E5 +0x9A59 0x67A0 +0x9A5A 0x4A24 +0x9A5B 0x9740 +0x9A5C 0x4A35 +0x9A5D 0x97B2 +0x9A5E 0x97C2 +0x9A5F 0x5654 +0x9A60 0x4AE4 +0x9A61 0x60E8 +0x9A62 0x98B9 +0x9A63 0x4B19 +0x9A64 0x98F1 +0x9A65 0x5844 +0x9A66 0x990E +0x9A67 0x9919 +0x9A68 0x51B4 +0x9A69 0x991C +0x9A6A 0x9937 +0x9A6B 0x9942 +0x9A6C 0x995D +0x9A6D 0x9962 +0x9A6E 0x4B70 +0x9A6F 0x99C5 +0x9A70 0x4B9D +0x9A71 0x9A3C +0x9A72 0x9B0F +0x9A73 0x7A83 +0x9A74 0x9B69 +0x9A75 0x9B81 +0x9A76 0x9BDD +0x9A77 0x9BF1 +0x9A78 0x9BF4 +0x9A79 0x4C6D +0x9A7A 0x9C20 +0x9A7B 0x376F +0x9A7C 0x21BC2 +0x9A7D 0x9D49 +0x9A7E 0x9C3A +0x9AA1 0x9EFE +0x9AA2 0x5650 +0x9AA3 0x9D93 +0x9AA4 0x9DBD +0x9AA5 0x9DC0 +0x9AA6 0x9DFC +0x9AA7 0x94F6 +0x9AA8 0x8FB6 +0x9AA9 0x9E7B +0x9AAA 0x9EAC +0x9AAB 0x9EB1 +0x9AAC 0x9EBD +0x9AAD 0x9EC6 +0x9AAE 0x94DC +0x9AAF 0x9EE2 +0x9AB0 0x9EF1 +0x9AB1 0x9EF8 +0x9AB2 0x7AC8 +0x9AB3 0x9F44 +0x9AB4 0x20094 +0x9AB5 0x202B7 +0x9AB6 0x203A0 +0x9AB7 0x691A +0x9AB8 0x94C3 +0x9AB9 0x59AC +0x9ABA 0x204D7 +0x9ABB 0x5840 +0x9ABC 0x94C1 +0x9ABD 0x37B9 +0x9ABE 0x205D5 +0x9ABF 0x20615 +0x9AC0 0x20676 +0x9AC1 0x216BA +0x9AC2 0x5757 +0x9AC3 0x7173 +0x9AC4 0x20AC2 +0x9AC5 0x20ACD +0x9AC6 0x20BBF +0x9AC7 0x546A +0x9AC8 0x2F83B +0x9AC9 0x20BCB +0x9ACA 0x549E +0x9ACB 0x20BFB +0x9ACC 0x20C3B +0x9ACD 0x20C53 +0x9ACE 0x20C65 +0x9ACF 0x20C7C +0x9AD0 0x60E7 +0x9AD1 0x20C8D +0x9AD2 0x567A +0x9AD3 0x20CB5 +0x9AD4 0x20CDD +0x9AD5 0x20CED +0x9AD6 0x20D6F +0x9AD7 0x20DB2 +0x9AD8 0x20DC8 +0x9AD9 0x6955 +0x9ADA 0x9C2F +0x9ADB 0x87A5 +0x9ADC 0x20E04 +0x9ADD 0x20E0E +0x9ADE 0x20ED7 +0x9ADF 0x20F90 +0x9AE0 0x20F2D +0x9AE1 0x20E73 +0x9AE2 0x5C20 +0x9AE3 0x20FBC +0x9AE4 0x5E0B +0x9AE5 0x2105C +0x9AE6 0x2104F +0x9AE7 0x21076 +0x9AE8 0x671E +0x9AE9 0x2107B +0x9AEA 0x21088 +0x9AEB 0x21096 +0x9AEC 0x3647 +0x9AED 0x210BF +0x9AEE 0x210D3 +0x9AEF 0x2112F +0x9AF0 0x2113B +0x9AF1 0x5364 +0x9AF2 0x84AD +0x9AF3 0x212E3 +0x9AF4 0x21375 +0x9AF5 0x21336 +0x9AF6 0x8B81 +0x9AF7 0x21577 +0x9AF8 0x21619 +0x9AF9 0x217C3 +0x9AFA 0x217C7 +0x9AFB 0x4E78 +0x9AFC 0x70BB +0x9AFD 0x2182D +0x9AFE 0x2196A +0x9B40 0x21A2D +0x9B41 0x21A45 +0x9B42 0x21C2A +0x9B43 0x21C70 +0x9B44 0x21CAC +0x9B45 0x21EC8 +0x9B46 0x62C3 +0x9B47 0x21ED5 +0x9B48 0x21F15 +0x9B49 0x7198 +0x9B4A 0x6855 +0x9B4B 0x22045 +0x9B4C 0x69E9 +0x9B4D 0x36C8 +0x9B4E 0x2227C +0x9B4F 0x223D7 +0x9B50 0x223FA +0x9B51 0x2272A +0x9B52 0x22871 +0x9B53 0x2294F +0x9B54 0x82FD +0x9B55 0x22967 +0x9B56 0x22993 +0x9B57 0x22AD5 +0x9B58 0x89A5 +0x9B59 0x22AE8 +0x9B5A 0x8FA0 +0x9B5B 0x22B0E +0x9B5C 0x97B8 +0x9B5D 0x22B3F +0x9B5E 0x9847 +0x9B5F 0x9ABD +0x9B60 0x22C4C +0x9B62 0x22C88 +0x9B63 0x22CB7 +0x9B64 0x25BE8 +0x9B65 0x22D08 +0x9B66 0x22D12 +0x9B67 0x22DB7 +0x9B68 0x22D95 +0x9B69 0x22E42 +0x9B6A 0x22F74 +0x9B6B 0x22FCC +0x9B6C 0x23033 +0x9B6D 0x23066 +0x9B6E 0x2331F +0x9B6F 0x233DE +0x9B70 0x5FB1 +0x9B71 0x6648 +0x9B72 0x66BF +0x9B73 0x27A79 +0x9B74 0x23567 +0x9B75 0x235F3 +0x9B77 0x249BA +0x9B79 0x2361A +0x9B7A 0x23716 +0x9B7C 0x20346 +0x9B7D 0x58B5 +0x9B7E 0x670E +0x9BA1 0x6918 +0x9BA2 0x23AA7 +0x9BA3 0x27657 +0x9BA4 0x25FE2 +0x9BA5 0x23E11 +0x9BA6 0x23EB9 +0x9BA7 0x275FE +0x9BA8 0x2209A +0x9BA9 0x48D0 +0x9BAA 0x4AB8 +0x9BAB 0x24119 +0x9BAC 0x28A9A +0x9BAD 0x242EE +0x9BAE 0x2430D +0x9BAF 0x2403B +0x9BB0 0x24334 +0x9BB1 0x24396 +0x9BB2 0x24A45 +0x9BB3 0x205CA +0x9BB4 0x51D2 +0x9BB5 0x20611 +0x9BB6 0x599F +0x9BB7 0x21EA8 +0x9BB8 0x3BBE +0x9BB9 0x23CFF +0x9BBA 0x24404 +0x9BBB 0x244D6 +0x9BBC 0x5788 +0x9BBD 0x24674 +0x9BBE 0x399B +0x9BBF 0x2472F +0x9BC0 0x285E8 +0x9BC1 0x299C9 +0x9BC2 0x3762 +0x9BC3 0x221C3 +0x9BC4 0x8B5E +0x9BC5 0x28B4E +0x9BC7 0x24812 +0x9BC8 0x248FB +0x9BC9 0x24A15 +0x9BCA 0x7209 +0x9BCB 0x24AC0 +0x9BCC 0x20C78 +0x9BCD 0x5965 +0x9BCE 0x24EA5 +0x9BCF 0x24F86 +0x9BD0 0x20779 +0x9BD1 0x8EDA +0x9BD2 0x2502C +0x9BD3 0x528F +0x9BD4 0x573F +0x9BD5 0x7171 +0x9BD6 0x25299 +0x9BD7 0x25419 +0x9BD8 0x23F4A +0x9BD9 0x24AA7 +0x9BDA 0x55BC +0x9BDB 0x25446 +0x9BDC 0x2546E +0x9BDD 0x26B52 +0x9BDF 0x3473 +0x9BE0 0x2553F +0x9BE1 0x27632 +0x9BE2 0x2555E +0x9BE3 0x4718 +0x9BE4 0x25562 +0x9BE5 0x25566 +0x9BE6 0x257C7 +0x9BE7 0x2493F +0x9BE8 0x2585D +0x9BE9 0x5066 +0x9BEA 0x34FB +0x9BEB 0x233CC +0x9BED 0x25903 +0x9BEE 0x477C +0x9BEF 0x28948 +0x9BF0 0x25AAE +0x9BF1 0x25B89 +0x9BF2 0x25C06 +0x9BF3 0x21D90 +0x9BF4 0x57A1 +0x9BF5 0x7151 +0x9BF7 0x26102 +0x9BF8 0x27C12 +0x9BF9 0x9056 +0x9BFA 0x261B2 +0x9BFB 0x24F9A +0x9BFC 0x8B62 +0x9BFD 0x26402 +0x9BFE 0x2644A +0x9C40 0x5D5B +0x9C41 0x26BF7 +0x9C43 0x26484 +0x9C44 0x2191C +0x9C45 0x8AEA +0x9C46 0x249F6 +0x9C47 0x26488 +0x9C48 0x23FEF +0x9C49 0x26512 +0x9C4A 0x4BC0 +0x9C4B 0x265BF +0x9C4C 0x266B5 +0x9C4D 0x2271B +0x9C4E 0x9465 +0x9C4F 0x257E1 +0x9C50 0x6195 +0x9C51 0x5A27 +0x9C52 0x2F8CD +0x9C54 0x56B9 +0x9C55 0x24521 +0x9C56 0x266FC +0x9C57 0x4E6A +0x9C58 0x24934 +0x9C59 0x9656 +0x9C5A 0x6D8F +0x9C5B 0x26CBD +0x9C5C 0x3618 +0x9C5D 0x8977 +0x9C5E 0x26799 +0x9C5F 0x2686E +0x9C60 0x26411 +0x9C61 0x2685E +0x9C63 0x268C7 +0x9C64 0x7B42 +0x9C65 0x290C0 +0x9C66 0x20A11 +0x9C67 0x26926 +0x9C69 0x26939 +0x9C6A 0x7A45 +0x9C6C 0x269FA +0x9C6D 0x9A26 +0x9C6E 0x26A2D +0x9C6F 0x365F +0x9C70 0x26469 +0x9C71 0x20021 +0x9C72 0x7983 +0x9C73 0x26A34 +0x9C74 0x26B5B +0x9C75 0x5D2C +0x9C76 0x23519 +0x9C78 0x26B9D +0x9C79 0x46D0 +0x9C7A 0x26CA4 +0x9C7B 0x753B +0x9C7C 0x8865 +0x9C7D 0x26DAE +0x9C7E 0x58B6 +0x9CA1 0x371C +0x9CA2 0x2258D +0x9CA3 0x2704B +0x9CA4 0x271CD +0x9CA5 0x3C54 +0x9CA6 0x27280 +0x9CA7 0x27285 +0x9CA8 0x9281 +0x9CA9 0x2217A +0x9CAA 0x2728B +0x9CAB 0x9330 +0x9CAC 0x272E6 +0x9CAD 0x249D0 +0x9CAE 0x6C39 +0x9CAF 0x949F +0x9CB0 0x27450 +0x9CB1 0x20EF8 +0x9CB2 0x8827 +0x9CB3 0x88F5 +0x9CB4 0x22926 +0x9CB5 0x28473 +0x9CB6 0x217B1 +0x9CB7 0x6EB8 +0x9CB8 0x24A2A +0x9CB9 0x21820 +0x9CBA 0x39A4 +0x9CBB 0x36B9 +0x9CBE 0x453F +0x9CBF 0x66B6 +0x9CC0 0x29CAD +0x9CC1 0x298A4 +0x9CC2 0x8943 +0x9CC3 0x277CC +0x9CC4 0x27858 +0x9CC5 0x56D6 +0x9CC6 0x40DF +0x9CC7 0x2160A +0x9CC8 0x39A1 +0x9CC9 0x2372F +0x9CCA 0x280E8 +0x9CCB 0x213C5 +0x9CCC 0x71AD +0x9CCD 0x8366 +0x9CCE 0x279DD +0x9CCF 0x291A8 +0x9CD1 0x4CB7 +0x9CD2 0x270AF +0x9CD3 0x289AB +0x9CD4 0x279FD +0x9CD5 0x27A0A +0x9CD6 0x27B0B +0x9CD7 0x27D66 +0x9CD8 0x2417A +0x9CD9 0x7B43 +0x9CDA 0x797E +0x9CDB 0x28009 +0x9CDC 0x6FB5 +0x9CDD 0x2A2DF +0x9CDE 0x6A03 +0x9CDF 0x28318 +0x9CE0 0x53A2 +0x9CE1 0x26E07 +0x9CE2 0x93BF +0x9CE3 0x6836 +0x9CE4 0x975D +0x9CE5 0x2816F +0x9CE6 0x28023 +0x9CE7 0x269B5 +0x9CE8 0x213ED +0x9CE9 0x2322F +0x9CEA 0x28048 +0x9CEB 0x5D85 +0x9CEC 0x28C30 +0x9CED 0x28083 +0x9CEE 0x5715 +0x9CEF 0x9823 +0x9CF0 0x28949 +0x9CF1 0x5DAB +0x9CF2 0x24988 +0x9CF3 0x65BE +0x9CF4 0x69D5 +0x9CF5 0x53D2 +0x9CF6 0x24AA5 +0x9CF7 0x23F81 +0x9CF8 0x3C11 +0x9CF9 0x6736 +0x9CFA 0x28090 +0x9CFB 0x280F4 +0x9CFC 0x2812E +0x9CFD 0x21FA1 +0x9CFE 0x2814F +0x9D40 0x28189 +0x9D41 0x281AF +0x9D42 0x2821A +0x9D43 0x28306 +0x9D44 0x2832F +0x9D45 0x2838A +0x9D46 0x35CA +0x9D47 0x28468 +0x9D48 0x286AA +0x9D49 0x48FA +0x9D4A 0x63E6 +0x9D4B 0x28956 +0x9D4C 0x7808 +0x9D4D 0x9255 +0x9D4E 0x289B8 +0x9D4F 0x43F2 +0x9D50 0x289E7 +0x9D51 0x43DF +0x9D52 0x289E8 +0x9D53 0x28B46 +0x9D54 0x28BD4 +0x9D55 0x59F8 +0x9D56 0x28C09 +0x9D58 0x28FC5 +0x9D59 0x290EC +0x9D5B 0x29110 +0x9D5C 0x2913C +0x9D5D 0x3DF7 +0x9D5E 0x2915E +0x9D5F 0x24ACA +0x9D60 0x8FD0 +0x9D61 0x728F +0x9D62 0x568B +0x9D63 0x294E7 +0x9D64 0x295E9 +0x9D65 0x295B0 +0x9D66 0x295B8 +0x9D67 0x29732 +0x9D68 0x298D1 +0x9D69 0x29949 +0x9D6A 0x2996A +0x9D6B 0x299C3 +0x9D6C 0x29A28 +0x9D6D 0x29B0E +0x9D6E 0x29D5A +0x9D6F 0x29D9B +0x9D70 0x7E9F +0x9D71 0x29EF8 +0x9D72 0x29F23 +0x9D73 0x4CA4 +0x9D74 0x9547 +0x9D75 0x2A293 +0x9D76 0x71A2 +0x9D77 0x2A2FF +0x9D78 0x4D91 +0x9D79 0x9012 +0x9D7A 0x2A5CB +0x9D7B 0x4D9C +0x9D7C 0x20C9C +0x9D7D 0x8FBE +0x9D7E 0x55C1 +0x9DA1 0x8FBA +0x9DA2 0x224B0 +0x9DA3 0x8FB9 +0x9DA4 0x24A93 +0x9DA5 0x4509 +0x9DA6 0x7E7F +0x9DA7 0x6F56 +0x9DA8 0x6AB1 +0x9DA9 0x4EEA +0x9DAA 0x34E4 +0x9DAB 0x28B2C +0x9DAC 0x2789D +0x9DAD 0x373A +0x9DAE 0x8E80 +0x9DAF 0x217F5 +0x9DB0 0x28024 +0x9DB1 0x28B6C +0x9DB2 0x28B99 +0x9DB3 0x27A3E +0x9DB4 0x266AF +0x9DB5 0x3DEB +0x9DB6 0x27655 +0x9DB7 0x23CB7 +0x9DB8 0x25635 +0x9DB9 0x25956 +0x9DBA 0x4E9A +0x9DBB 0x25E81 +0x9DBC 0x26258 +0x9DBD 0x56BF +0x9DBE 0x20E6D +0x9DBF 0x8E0E +0x9DC0 0x5B6D +0x9DC1 0x23E88 +0x9DC2 0x24C9E +0x9DC3 0x63DE +0x9DC5 0x217F6 +0x9DC6 0x2187B +0x9DC7 0x6530 +0x9DC8 0x562D +0x9DC9 0x25C4A +0x9DCA 0x541A +0x9DCB 0x25311 +0x9DCC 0x3DC6 +0x9DCD 0x29D98 +0x9DCE 0x4C7D +0x9DCF 0x5622 +0x9DD0 0x561E +0x9DD1 0x7F49 +0x9DD2 0x25ED8 +0x9DD3 0x5975 +0x9DD4 0x23D40 +0x9DD5 0x8770 +0x9DD6 0x4E1C +0x9DD7 0x20FEA +0x9DD8 0x20D49 +0x9DD9 0x236BA +0x9DDA 0x8117 +0x9DDB 0x9D5E +0x9DDC 0x8D18 +0x9DDD 0x763B +0x9DDE 0x9C45 +0x9DDF 0x764E +0x9DE0 0x77B9 +0x9DE1 0x9345 +0x9DE2 0x5432 +0x9DE3 0x8148 +0x9DE4 0x82F7 +0x9DE5 0x5625 +0x9DE6 0x8132 +0x9DE7 0x8418 +0x9DE8 0x80BD +0x9DE9 0x55EA +0x9DEA 0x7962 +0x9DEB 0x5643 +0x9DEC 0x5416 +0x9DED 0x20E9D +0x9DEE 0x35CE +0x9DEF 0x5605 +0x9DF0 0x55F1 +0x9DF1 0x66F1 +0x9DF2 0x282E2 +0x9DF3 0x362D +0x9DF4 0x7534 +0x9DF5 0x55F0 +0x9DF6 0x55BA +0x9DF7 0x5497 +0x9DF8 0x5572 +0x9DF9 0x20C41 +0x9DFA 0x20C96 +0x9DFB 0x5ED0 +0x9DFC 0x25148 +0x9DFD 0x20E76 +0x9DFE 0x22C62 +0x9E40 0x20EA2 +0x9E41 0x9EAB +0x9E42 0x7D5A +0x9E43 0x55DE +0x9E44 0x21075 +0x9E45 0x629D +0x9E46 0x976D +0x9E47 0x5494 +0x9E48 0x8CCD +0x9E49 0x71F6 +0x9E4A 0x9176 +0x9E4B 0x63FC +0x9E4C 0x63B9 +0x9E4D 0x63FE +0x9E4E 0x5569 +0x9E4F 0x22B43 +0x9E50 0x9C72 +0x9E51 0x22EB3 +0x9E52 0x519A +0x9E53 0x34DF +0x9E54 0x20DA7 +0x9E55 0x51A7 +0x9E56 0x544D +0x9E57 0x551E +0x9E58 0x5513 +0x9E59 0x7666 +0x9E5A 0x8E2D +0x9E5B 0x2688A +0x9E5C 0x75B1 +0x9E5D 0x80B6 +0x9E5E 0x8804 +0x9E5F 0x8786 +0x9E60 0x88C7 +0x9E61 0x81B6 +0x9E62 0x841C +0x9E63 0x210C1 +0x9E64 0x44EC +0x9E65 0x7304 +0x9E66 0x24706 +0x9E67 0x5B90 +0x9E68 0x830B +0x9E69 0x26893 +0x9E6A 0x567B +0x9E6B 0x226F4 +0x9E6C 0x27D2F +0x9E6D 0x241A3 +0x9E6E 0x27D73 +0x9E6F 0x26ED0 +0x9E70 0x272B6 +0x9E71 0x9170 +0x9E72 0x211D9 +0x9E73 0x9208 +0x9E74 0x23CFC +0x9E75 0x2A6A9 +0x9E76 0x20EAC +0x9E77 0x20EF9 +0x9E78 0x7266 +0x9E79 0x21CA2 +0x9E7A 0x474E +0x9E7B 0x24FC2 +0x9E7C 0x27FF9 +0x9E7D 0x20FEB +0x9E7E 0x40FA +0x9EA1 0x9C5D +0x9EA2 0x651F +0x9EA3 0x22DA0 +0x9EA4 0x48F3 +0x9EA5 0x247E0 +0x9EA6 0x29D7C +0x9EA7 0x20FEC +0x9EA8 0x20E0A +0x9EAA 0x275A3 +0x9EAB 0x20FED +0x9EAD 0x26048 +0x9EAE 0x21187 +0x9EAF 0x71A3 +0x9EB0 0x7E8E +0x9EB1 0x9D50 +0x9EB2 0x4E1A +0x9EB3 0x4E04 +0x9EB4 0x3577 +0x9EB5 0x5B0D +0x9EB6 0x6CB2 +0x9EB7 0x5367 +0x9EB8 0x36AC +0x9EB9 0x39DC +0x9EBA 0x537D +0x9EBB 0x36A5 +0x9EBC 0x24618 +0x9EBD 0x589A +0x9EBE 0x24B6E +0x9EBF 0x822D +0x9EC0 0x544B +0x9EC1 0x57AA +0x9EC2 0x25A95 +0x9EC3 0x20979 +0x9EC5 0x3A52 +0x9EC6 0x22465 +0x9EC7 0x7374 +0x9EC8 0x29EAC +0x9EC9 0x4D09 +0x9ECA 0x9BED +0x9ECB 0x23CFE +0x9ECC 0x29F30 +0x9ECD 0x4C5B +0x9ECE 0x24FA9 +0x9ECF 0x2959E +0x9ED0 0x29FDE +0x9ED1 0x845C +0x9ED2 0x23DB6 +0x9ED3 0x272B2 +0x9ED4 0x267B3 +0x9ED5 0x23720 +0x9ED6 0x632E +0x9ED7 0x7D25 +0x9ED8 0x23EF7 +0x9ED9 0x23E2C +0x9EDA 0x3A2A +0x9EDB 0x9008 +0x9EDC 0x52CC +0x9EDD 0x3E74 +0x9EDE 0x367A +0x9EDF 0x45E9 +0x9EE0 0x2048E +0x9EE1 0x7640 +0x9EE2 0x5AF0 +0x9EE3 0x20EB6 +0x9EE4 0x787A +0x9EE5 0x27F2E +0x9EE6 0x58A7 +0x9EE7 0x40BF +0x9EE8 0x567C +0x9EE9 0x9B8B +0x9EEA 0x5D74 +0x9EEB 0x7654 +0x9EEC 0x2A434 +0x9EED 0x9E85 +0x9EEE 0x4CE1 +0x9EF0 0x37FB +0x9EF1 0x6119 +0x9EF2 0x230DA +0x9EF3 0x243F2 +0x9EF5 0x565D +0x9EF6 0x212A9 +0x9EF7 0x57A7 +0x9EF8 0x24963 +0x9EF9 0x29E06 +0x9EFA 0x5234 +0x9EFB 0x270AE +0x9EFC 0x35AD +0x9EFE 0x9D7C +0x9F40 0x7C56 +0x9F41 0x9B39 +0x9F42 0x57DE +0x9F43 0x2176C +0x9F44 0x5C53 +0x9F45 0x64D3 +0x9F46 0x294D0 +0x9F47 0x26335 +0x9F48 0x27164 +0x9F49 0x86AD +0x9F4A 0x20D28 +0x9F4B 0x26D22 +0x9F4C 0x24AE2 +0x9F4D 0x20D71 +0x9F4F 0x51FE +0x9F50 0x21F0F +0x9F51 0x5D8E +0x9F52 0x9703 +0x9F53 0x21DD1 +0x9F54 0x9E81 +0x9F55 0x904C +0x9F56 0x7B1F +0x9F57 0x9B02 +0x9F58 0x5CD1 +0x9F59 0x7BA3 +0x9F5A 0x6268 +0x9F5B 0x6335 +0x9F5C 0x9AFF +0x9F5D 0x7BCF +0x9F5E 0x9B2A +0x9F5F 0x7C7E +0x9F61 0x7C42 +0x9F62 0x7C86 +0x9F63 0x9C15 +0x9F64 0x7BFC +0x9F65 0x9B09 +0x9F67 0x9C1B +0x9F68 0x2493E +0x9F69 0x9F5A +0x9F6A 0x5573 +0x9F6B 0x5BC3 +0x9F6C 0x4FFD +0x9F6D 0x9E98 +0x9F6E 0x4FF2 +0x9F6F 0x5260 +0x9F70 0x3E06 +0x9F71 0x52D1 +0x9F72 0x5767 +0x9F73 0x5056 +0x9F74 0x59B7 +0x9F75 0x5E12 +0x9F76 0x97C8 +0x9F77 0x9DAB +0x9F78 0x8F5C +0x9F79 0x5469 +0x9F7A 0x97B4 +0x9F7B 0x9940 +0x9F7C 0x97BA +0x9F7D 0x532C +0x9F7E 0x6130 +0x9FA1 0x692C +0x9FA2 0x53DA +0x9FA3 0x9C0A +0x9FA4 0x9D02 +0x9FA5 0x4C3B +0x9FA6 0x9641 +0x9FA7 0x6980 +0x9FA8 0x50A6 +0x9FA9 0x7546 +0x9FAA 0x2176D +0x9FAB 0x99DA +0x9FAC 0x5273 +0x9FAE 0x9159 +0x9FAF 0x9681 +0x9FB0 0x915C +0x9FB2 0x9151 +0x9FB3 0x28E97 +0x9FB4 0x637F +0x9FB5 0x26D23 +0x9FB6 0x6ACA +0x9FB7 0x5611 +0x9FB8 0x918E +0x9FB9 0x757A +0x9FBA 0x6285 +0x9FBB 0x203FC +0x9FBC 0x734F +0x9FBD 0x7C70 +0x9FBE 0x25C21 +0x9FBF 0x23CFD +0x9FC1 0x24919 +0x9FC2 0x76D6 +0x9FC3 0x9B9D +0x9FC4 0x4E2A +0x9FC5 0x20CD4 +0x9FC6 0x83BE +0x9FC7 0x8842 +0x9FC9 0x5C4A +0x9FCA 0x69C0 +0x9FCC 0x577A +0x9FCD 0x521F +0x9FCE 0x5DF5 +0x9FCF 0x4ECE +0x9FD0 0x6C31 +0x9FD1 0x201F2 +0x9FD2 0x4F39 +0x9FD3 0x549C +0x9FD4 0x54DA +0x9FD5 0x529A +0x9FD6 0x8D82 +0x9FD7 0x35FE +0x9FD9 0x35F3 +0x9FDB 0x6B52 +0x9FDC 0x917C +0x9FDD 0x9FA5 +0x9FDE 0x9B97 +0x9FDF 0x982E +0x9FE0 0x98B4 +0x9FE1 0x9ABA +0x9FE2 0x9EA8 +0x9FE3 0x9E84 +0x9FE4 0x717A +0x9FE5 0x7B14 +0x9FE7 0x6BFA +0x9FE8 0x8818 +0x9FE9 0x7F78 +0x9FEB 0x5620 +0x9FEC 0x2A64A +0x9FED 0x8E77 +0x9FEE 0x9F53 +0x9FF0 0x8DD4 +0x9FF1 0x8E4F +0x9FF2 0x9E1C +0x9FF3 0x8E01 +0x9FF4 0x6282 +0x9FF5 0x2837D +0x9FF6 0x8E28 +0x9FF7 0x8E75 +0x9FF8 0x7AD3 +0x9FF9 0x24A77 +0x9FFA 0x7A3E +0x9FFB 0x78D8 +0x9FFC 0x6CEA +0x9FFD 0x8A67 +0x9FFE 0x7607 +0xA040 0x28A5A +0xA041 0x9F26 +0xA042 0x6CCE +0xA043 0x87D6 +0xA044 0x75C3 +0xA045 0x2A2B2 +0xA046 0x7853 +0xA047 0x2F840 +0xA048 0x8D0C +0xA049 0x72E2 +0xA04A 0x7371 +0xA04B 0x8B2D +0xA04C 0x7302 +0xA04D 0x74F1 +0xA04E 0x8CEB +0xA04F 0x24ABB +0xA050 0x862F +0xA051 0x5FBA +0xA052 0x88A0 +0xA053 0x44B7 +0xA055 0x2183B +0xA056 0x26E05 +0xA058 0x8A7E +0xA059 0x2251B +0xA05B 0x60FD +0xA05C 0x7667 +0xA05D 0x9AD7 +0xA05E 0x9D44 +0xA05F 0x936E +0xA060 0x9B8F +0xA061 0x87F5 +0xA064 0x8CF7 +0xA065 0x732C +0xA066 0x9721 +0xA067 0x9BB0 +0xA068 0x35D6 +0xA069 0x72B2 +0xA06A 0x4C07 +0xA06B 0x7C51 +0xA06C 0x994A +0xA06D 0x26159 +0xA06E 0x6159 +0xA06F 0x4C04 +0xA070 0x9E96 +0xA071 0x617D +0xA073 0x575F +0xA074 0x616F +0xA075 0x62A6 +0xA076 0x6239 +0xA078 0x3A5C +0xA079 0x61E2 +0xA07A 0x53AA +0xA07B 0x233F5 +0xA07C 0x6364 +0xA07D 0x6802 +0xA07E 0x35D2 +0xA0A1 0x5D57 +0xA0A2 0x28BC2 +0xA0A3 0x8FDA +0xA0A4 0x28E39 +0xA0A6 0x50D9 +0xA0A7 0x21D46 +0xA0A8 0x7906 +0xA0A9 0x5332 +0xA0AA 0x9638 +0xA0AB 0x20F3B +0xA0AC 0x4065 +0xA0AE 0x77FE +0xA0B0 0x7CC2 +0xA0B1 0x25F1A +0xA0B2 0x7CDA +0xA0B3 0x7A2D +0xA0B4 0x8066 +0xA0B5 0x8063 +0xA0B6 0x7D4D +0xA0B7 0x7505 +0xA0B8 0x74F2 +0xA0B9 0x8994 +0xA0BA 0x821A +0xA0BB 0x670C +0xA0BC 0x8062 +0xA0BD 0x27486 +0xA0BE 0x805B +0xA0BF 0x74F0 +0xA0C0 0x8103 +0xA0C1 0x7724 +0xA0C2 0x8989 +0xA0C3 0x267CC +0xA0C4 0x7553 +0xA0C5 0x26ED1 +0xA0C6 0x87A9 +0xA0C7 0x87CE +0xA0C8 0x81C8 +0xA0C9 0x878C +0xA0CA 0x8A49 +0xA0CB 0x8CAD +0xA0CC 0x8B43 +0xA0CD 0x772B +0xA0CE 0x74F8 +0xA0CF 0x84DA +0xA0D0 0x3635 +0xA0D1 0x69B2 +0xA0D2 0x8DA6 +0xA0D4 0x89A9 +0xA0D6 0x6DB9 +0xA0D7 0x87C1 +0xA0D8 0x24011 +0xA0D9 0x74E7 +0xA0DA 0x3DDB +0xA0DB 0x7176 +0xA0DC 0x60A4 +0xA0DD 0x619C +0xA0DE 0x3CD1 +0xA0E0 0x6077 +0xA0E2 0x7F71 +0xA0E3 0x28B2D +0xA0E5 0x60E9 +0xA0E6 0x4B7E +0xA0E7 0x5220 +0xA0E8 0x3C18 +0xA0E9 0x23CC7 +0xA0EA 0x25ED7 +0xA0EB 0x27656 +0xA0EC 0x25531 +0xA0ED 0x21944 +0xA0EE 0x212FE +0xA0EF 0x29903 +0xA0F0 0x26DDC +0xA0F1 0x270AD +0xA0F2 0x5CC1 +0xA0F3 0x261AD +0xA0F4 0x28A0F +0xA0F5 0x23677 +0xA0F6 0x200EE +0xA0F7 0x26846 +0xA0F8 0x24F0E +0xA0F9 0x4562 +0xA0FA 0x5B1F +0xA0FB 0x2634C +0xA0FC 0x9F50 +0xA0FD 0x9EA6 +0xA0FE 0x2626B +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2022 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFF64 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C4 0xFF3F +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0x223C +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2641 +0xA1F3 0x2609 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA241 0xFF0F +0xA242 0xFF3C +0xA243 0xFF04 +0xA244 0x00A5 +0xA245 0x3012 +0xA246 0x00A2 +0xA247 0x00A3 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CD 0x5344 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x2460 +0xC6A2 0x2461 +0xC6A3 0x2462 +0xC6A4 0x2463 +0xC6A5 0x2464 +0xC6A6 0x2465 +0xC6A7 0x2466 +0xC6A8 0x2467 +0xC6A9 0x2468 +0xC6AA 0x2469 +0xC6AB 0x2474 +0xC6AC 0x2475 +0xC6AD 0x2476 +0xC6AE 0x2477 +0xC6AF 0x2478 +0xC6B0 0x2479 +0xC6B1 0x247A +0xC6B2 0x247B +0xC6B3 0x247C +0xC6B4 0x247D +0xC6B5 0x2170 +0xC6B6 0x2171 +0xC6B7 0x2172 +0xC6B8 0x2173 +0xC6B9 0x2174 +0xC6BA 0x2175 +0xC6BB 0x2176 +0xC6BC 0x2177 +0xC6BD 0x2178 +0xC6BE 0x2179 +0xC6BF 0x4E36 +0xC6C0 0x4E3F +0xC6C1 0x4E85 +0xC6C2 0x4EA0 +0xC6C3 0x5182 +0xC6C4 0x5196 +0xC6C5 0x51AB +0xC6C6 0x52F9 +0xC6C7 0x5338 +0xC6C8 0x5369 +0xC6C9 0x53B6 +0xC6CA 0x590A +0xC6CB 0x5B80 +0xC6CC 0x5DDB +0xC6CD 0x2F33 +0xC6CE 0x5E7F +0xC6D0 0x5F50 +0xC6D1 0x5F61 +0xC6D2 0x6534 +0xC6D4 0x7592 +0xC6D6 0x8FB5 +0xC6D8 0x00A8 +0xC6D9 0x02C6 +0xC6DA 0x30FD +0xC6DB 0x30FE +0xC6DC 0x309D +0xC6DD 0x309E +0xC6E0 0x3005 +0xC6E1 0x3006 +0xC6E2 0x3007 +0xC6E3 0x30FC +0xC6E4 0xFF3B +0xC6E5 0xFF3D +0xC6E6 0x273D +0xC6E7 0x3041 +0xC6E8 0x3042 +0xC6E9 0x3043 +0xC6EA 0x3044 +0xC6EB 0x3045 +0xC6EC 0x3046 +0xC6ED 0x3047 +0xC6EE 0x3048 +0xC6EF 0x3049 +0xC6F0 0x304A +0xC6F1 0x304B +0xC6F2 0x304C +0xC6F3 0x304D +0xC6F4 0x304E +0xC6F5 0x304F +0xC6F6 0x3050 +0xC6F7 0x3051 +0xC6F8 0x3052 +0xC6F9 0x3053 +0xC6FA 0x3054 +0xC6FB 0x3055 +0xC6FC 0x3056 +0xC6FD 0x3057 +0xC6FE 0x3058 +0xC740 0x3059 +0xC741 0x305A +0xC742 0x305B +0xC743 0x305C +0xC744 0x305D +0xC745 0x305E +0xC746 0x305F +0xC747 0x3060 +0xC748 0x3061 +0xC749 0x3062 +0xC74A 0x3063 +0xC74B 0x3064 +0xC74C 0x3065 +0xC74D 0x3066 +0xC74E 0x3067 +0xC74F 0x3068 +0xC750 0x3069 +0xC751 0x306A +0xC752 0x306B +0xC753 0x306C +0xC754 0x306D +0xC755 0x306E +0xC756 0x306F +0xC757 0x3070 +0xC758 0x3071 +0xC759 0x3072 +0xC75A 0x3073 +0xC75B 0x3074 +0xC75C 0x3075 +0xC75D 0x3076 +0xC75E 0x3077 +0xC75F 0x3078 +0xC760 0x3079 +0xC761 0x307A +0xC762 0x307B +0xC763 0x307C +0xC764 0x307D +0xC765 0x307E +0xC766 0x307F +0xC767 0x3080 +0xC768 0x3081 +0xC769 0x3082 +0xC76A 0x3083 +0xC76B 0x3084 +0xC76C 0x3085 +0xC76D 0x3086 +0xC76E 0x3087 +0xC76F 0x3088 +0xC770 0x3089 +0xC771 0x308A +0xC772 0x308B +0xC773 0x308C +0xC774 0x308D +0xC775 0x308E +0xC776 0x308F +0xC777 0x3090 +0xC778 0x3091 +0xC779 0x3092 +0xC77A 0x3093 +0xC77B 0x30A1 +0xC77C 0x30A2 +0xC77D 0x30A3 +0xC77E 0x30A4 +0xC7A1 0x30A5 +0xC7A2 0x30A6 +0xC7A3 0x30A7 +0xC7A4 0x30A8 +0xC7A5 0x30A9 +0xC7A6 0x30AA +0xC7A7 0x30AB +0xC7A8 0x30AC +0xC7A9 0x30AD +0xC7AA 0x30AE +0xC7AB 0x30AF +0xC7AC 0x30B0 +0xC7AD 0x30B1 +0xC7AE 0x30B2 +0xC7AF 0x30B3 +0xC7B0 0x30B4 +0xC7B1 0x30B5 +0xC7B2 0x30B6 +0xC7B3 0x30B7 +0xC7B4 0x30B8 +0xC7B5 0x30B9 +0xC7B6 0x30BA +0xC7B7 0x30BB +0xC7B8 0x30BC +0xC7B9 0x30BD +0xC7BA 0x30BE +0xC7BB 0x30BF +0xC7BC 0x30C0 +0xC7BD 0x30C1 +0xC7BE 0x30C2 +0xC7BF 0x30C3 +0xC7C0 0x30C4 +0xC7C1 0x30C5 +0xC7C2 0x30C6 +0xC7C3 0x30C7 +0xC7C4 0x30C8 +0xC7C5 0x30C9 +0xC7C6 0x30CA +0xC7C7 0x30CB +0xC7C8 0x30CC +0xC7C9 0x30CD +0xC7CA 0x30CE +0xC7CB 0x30CF +0xC7CC 0x30D0 +0xC7CD 0x30D1 +0xC7CE 0x30D2 +0xC7CF 0x30D3 +0xC7D0 0x30D4 +0xC7D1 0x30D5 +0xC7D2 0x30D6 +0xC7D3 0x30D7 +0xC7D4 0x30D8 +0xC7D5 0x30D9 +0xC7D6 0x30DA +0xC7D7 0x30DB +0xC7D8 0x30DC +0xC7D9 0x30DD +0xC7DA 0x30DE +0xC7DB 0x30DF +0xC7DC 0x30E0 +0xC7DD 0x30E1 +0xC7DE 0x30E2 +0xC7DF 0x30E3 +0xC7E0 0x30E4 +0xC7E1 0x30E5 +0xC7E2 0x30E6 +0xC7E3 0x30E7 +0xC7E4 0x30E8 +0xC7E5 0x30E9 +0xC7E6 0x30EA +0xC7E7 0x30EB +0xC7E8 0x30EC +0xC7E9 0x30ED +0xC7EA 0x30EE +0xC7EB 0x30EF +0xC7EC 0x30F0 +0xC7ED 0x30F1 +0xC7EE 0x30F2 +0xC7EF 0x30F3 +0xC7F0 0x30F4 +0xC7F1 0x30F5 +0xC7F2 0x30F6 +0xC7F3 0x0410 +0xC7F4 0x0411 +0xC7F5 0x0412 +0xC7F6 0x0413 +0xC7F7 0x0414 +0xC7F8 0x0415 +0xC7F9 0x0401 +0xC7FA 0x0416 +0xC7FB 0x0417 +0xC7FC 0x0418 +0xC7FD 0x0419 +0xC7FE 0x041A +0xC840 0x041B +0xC841 0x041C +0xC842 0x041D +0xC843 0x041E +0xC844 0x041F +0xC845 0x0420 +0xC846 0x0421 +0xC847 0x0422 +0xC848 0x0423 +0xC849 0x0424 +0xC84A 0x0425 +0xC84B 0x0426 +0xC84C 0x0427 +0xC84D 0x0428 +0xC84E 0x0429 +0xC84F 0x042A +0xC850 0x042B +0xC851 0x042C +0xC852 0x042D +0xC853 0x042E +0xC854 0x042F +0xC855 0x0430 +0xC856 0x0431 +0xC857 0x0432 +0xC858 0x0433 +0xC859 0x0434 +0xC85A 0x0435 +0xC85B 0x0451 +0xC85C 0x0436 +0xC85D 0x0437 +0xC85E 0x0438 +0xC85F 0x0439 +0xC860 0x043A +0xC861 0x043B +0xC862 0x043C +0xC863 0x043D +0xC864 0x043E +0xC865 0x043F +0xC866 0x0440 +0xC867 0x0441 +0xC868 0x0442 +0xC869 0x0443 +0xC86A 0x0444 +0xC86B 0x0445 +0xC86C 0x0446 +0xC86D 0x0447 +0xC86E 0x0448 +0xC86F 0x0449 +0xC870 0x044A +0xC871 0x044B +0xC872 0x044C +0xC873 0x044D +0xC874 0x044E +0xC875 0x044F +0xC876 0x21E7 +0xC877 0x21B8 +0xC878 0x21B9 +0xC879 0x31CF +0xC87A 0x200CC +0xC87B 0x4E5A +0xC87C 0x2008A +0xC87D 0x5202 +0xC87E 0x4491 +0xC8A1 0x9FB0 +0xC8A2 0x5188 +0xC8A3 0x9FB1 +0xC8A4 0x27607 +0xC8CD 0xFFE2 +0xC8CE 0xFFE4 +0xC8CF 0xFF07 +0xC8D0 0xFF02 +0xC8D1 0x3231 +0xC8D2 0x2116 +0xC8D3 0x2121 +0xC8D4 0x309B +0xC8D5 0x309C +0xC8D6 0x2E80 +0xC8D7 0x2E84 +0xC8D8 0x2E86 +0xC8D9 0x2E87 +0xC8DA 0x2E88 +0xC8DB 0x2E8A +0xC8DC 0x2E8C +0xC8DD 0x2E8D +0xC8DE 0x2E95 +0xC8DF 0x2E9C +0xC8E0 0x2E9D +0xC8E1 0x2EA5 +0xC8E2 0x2EA7 +0xC8E3 0x2EAA +0xC8E4 0x2EAC +0xC8E5 0x2EAE +0xC8E6 0x2EB6 +0xC8E7 0x2EBC +0xC8E8 0x2EBE +0xC8E9 0x2EC6 +0xC8EA 0x2ECA +0xC8EB 0x2ECC +0xC8EC 0x2ECD +0xC8ED 0x2ECF +0xC8EE 0x2ED6 +0xC8EF 0x2ED7 +0xC8F0 0x2EDE +0xC8F1 0x2EE3 +0xC8F5 0x0283 +0xC8F6 0x0250 +0xC8F7 0x025B +0xC8F8 0x0254 +0xC8F9 0x0275 +0xC8FA 0x0153 +0xC8FB 0x00F8 +0xC8FC 0x014B +0xC8FD 0x028A +0xC8FE 0x026A +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F +0xF9FE 0xFFED +0xFA40 0x20547 +0xFA41 0x92DB +0xFA42 0x205DF +0xFA43 0x23FC5 +0xFA44 0x854C +0xFA45 0x42B5 +0xFA46 0x73EF +0xFA47 0x51B5 +0xFA48 0x3649 +0xFA49 0x24942 +0xFA4A 0x289E4 +0xFA4B 0x9344 +0xFA4C 0x219DB +0xFA4D 0x82EE +0xFA4E 0x23CC8 +0xFA4F 0x783C +0xFA50 0x6744 +0xFA51 0x62DF +0xFA52 0x24933 +0xFA53 0x289AA +0xFA54 0x202A0 +0xFA55 0x26BB3 +0xFA56 0x21305 +0xFA57 0x4FAB +0xFA58 0x224ED +0xFA59 0x5008 +0xFA5A 0x26D29 +0xFA5B 0x27A84 +0xFA5C 0x23600 +0xFA5D 0x24AB1 +0xFA5E 0x22513 +0xFA60 0x2037E +0xFA61 0x5FA4 +0xFA62 0x20380 +0xFA63 0x20347 +0xFA64 0x6EDB +0xFA65 0x2041F +0xFA67 0x5101 +0xFA68 0x347A +0xFA69 0x510E +0xFA6A 0x986C +0xFA6B 0x3743 +0xFA6C 0x8416 +0xFA6D 0x249A4 +0xFA6E 0x20487 +0xFA6F 0x5160 +0xFA70 0x233B4 +0xFA71 0x516A +0xFA72 0x20BFF +0xFA73 0x220FC +0xFA74 0x202E5 +0xFA75 0x22530 +0xFA76 0x2058E +0xFA77 0x23233 +0xFA78 0x21983 +0xFA79 0x5B82 +0xFA7A 0x877D +0xFA7B 0x205B3 +0xFA7C 0x23C99 +0xFA7D 0x51B2 +0xFA7E 0x51B8 +0xFAA1 0x9D34 +0xFAA2 0x51C9 +0xFAA3 0x51CF +0xFAA4 0x51D1 +0xFAA5 0x3CDC +0xFAA6 0x51D3 +0xFAA7 0x24AA6 +0xFAA8 0x51B3 +0xFAA9 0x51E2 +0xFAAA 0x5342 +0xFAAB 0x51ED +0xFAAC 0x83CD +0xFAAD 0x693E +0xFAAE 0x2372D +0xFAAF 0x5F7B +0xFAB0 0x520B +0xFAB1 0x5226 +0xFAB2 0x523C +0xFAB3 0x52B5 +0xFAB4 0x5257 +0xFAB5 0x5294 +0xFAB6 0x52B9 +0xFAB7 0x52C5 +0xFAB8 0x7C15 +0xFAB9 0x8542 +0xFABA 0x52E0 +0xFABB 0x860D +0xFABC 0x26B13 +0xFABE 0x28ADE +0xFABF 0x5549 +0xFAC0 0x6ED9 +0xFAC1 0x23F80 +0xFAC2 0x20954 +0xFAC3 0x23FEC +0xFAC4 0x5333 +0xFAC6 0x20BE2 +0xFAC7 0x6CCB +0xFAC8 0x21726 +0xFAC9 0x681B +0xFACA 0x73D5 +0xFACB 0x604A +0xFACC 0x3EAA +0xFACD 0x38CC +0xFACE 0x216E8 +0xFACF 0x71DD +0xFAD0 0x44A2 +0xFAD1 0x536D +0xFAD2 0x5374 +0xFAD3 0x286AB +0xFAD4 0x537E +0xFAD6 0x21596 +0xFAD7 0x21613 +0xFAD8 0x77E6 +0xFAD9 0x5393 +0xFADA 0x28A9B +0xFADB 0x53A0 +0xFADC 0x53AB +0xFADD 0x53AE +0xFADE 0x73A7 +0xFADF 0x25772 +0xFAE0 0x3F59 +0xFAE1 0x739C +0xFAE2 0x53C1 +0xFAE3 0x53C5 +0xFAE4 0x6C49 +0xFAE5 0x4E49 +0xFAE6 0x57FE +0xFAE7 0x53D9 +0xFAE8 0x3AAB +0xFAE9 0x20B8F +0xFAEA 0x53E0 +0xFAEB 0x23FEB +0xFAEC 0x22DA3 +0xFAED 0x53F6 +0xFAEE 0x20C77 +0xFAEF 0x5413 +0xFAF0 0x7079 +0xFAF1 0x552B +0xFAF2 0x6657 +0xFAF3 0x6D5B +0xFAF4 0x546D +0xFAF5 0x26B53 +0xFAF6 0x20D74 +0xFAF7 0x555D +0xFAF8 0x548F +0xFAF9 0x54A4 +0xFAFA 0x47A6 +0xFAFB 0x2170D +0xFAFC 0x20EDD +0xFAFD 0x3DB4 +0xFAFE 0x20D4D +0xFB40 0x289BC +0xFB41 0x22698 +0xFB42 0x5547 +0xFB43 0x4CED +0xFB44 0x542F +0xFB45 0x7417 +0xFB46 0x5586 +0xFB47 0x55A9 +0xFB49 0x218D7 +0xFB4A 0x2403A +0xFB4B 0x4552 +0xFB4C 0x24435 +0xFB4D 0x66B3 +0xFB4E 0x210B4 +0xFB4F 0x5637 +0xFB50 0x66CD +0xFB51 0x2328A +0xFB52 0x66A4 +0xFB53 0x66AD +0xFB54 0x564D +0xFB55 0x564F +0xFB56 0x78F1 +0xFB57 0x56F1 +0xFB58 0x9787 +0xFB59 0x53FE +0xFB5A 0x5700 +0xFB5B 0x56EF +0xFB5C 0x56ED +0xFB5D 0x28B66 +0xFB5E 0x3623 +0xFB5F 0x2124F +0xFB60 0x5746 +0xFB61 0x241A5 +0xFB62 0x6C6E +0xFB63 0x708B +0xFB64 0x5742 +0xFB65 0x36B1 +0xFB66 0x26C7E +0xFB67 0x57E6 +0xFB68 0x21416 +0xFB69 0x5803 +0xFB6A 0x21454 +0xFB6B 0x24363 +0xFB6C 0x5826 +0xFB6D 0x24BF5 +0xFB6E 0x585C +0xFB6F 0x58AA +0xFB70 0x3561 +0xFB71 0x58E0 +0xFB72 0x58DC +0xFB73 0x2123C +0xFB74 0x58FB +0xFB75 0x5BFF +0xFB76 0x5743 +0xFB77 0x2A150 +0xFB78 0x24278 +0xFB79 0x93D3 +0xFB7A 0x35A1 +0xFB7B 0x591F +0xFB7C 0x68A6 +0xFB7D 0x36C3 +0xFB7E 0x6E59 +0xFBA1 0x2163E +0xFBA2 0x5A24 +0xFBA3 0x5553 +0xFBA4 0x21692 +0xFBA5 0x8505 +0xFBA6 0x59C9 +0xFBA7 0x20D4E +0xFBA8 0x26C81 +0xFBA9 0x26D2A +0xFBAA 0x217DC +0xFBAB 0x59D9 +0xFBAC 0x217FB +0xFBAD 0x217B2 +0xFBAE 0x26DA6 +0xFBAF 0x6D71 +0xFBB0 0x21828 +0xFBB1 0x216D5 +0xFBB2 0x59F9 +0xFBB3 0x26E45 +0xFBB4 0x5AAB +0xFBB5 0x5A63 +0xFBB6 0x36E6 +0xFBB7 0x249A9 +0xFBB9 0x3708 +0xFBBA 0x5A96 +0xFBBB 0x7465 +0xFBBC 0x5AD3 +0xFBBD 0x26FA1 +0xFBBE 0x22554 +0xFBBF 0x3D85 +0xFBC0 0x21911 +0xFBC1 0x3732 +0xFBC2 0x216B8 +0xFBC3 0x5E83 +0xFBC4 0x52D0 +0xFBC5 0x5B76 +0xFBC6 0x6588 +0xFBC7 0x5B7C +0xFBC8 0x27A0E +0xFBC9 0x4004 +0xFBCA 0x485D +0xFBCB 0x20204 +0xFBCC 0x5BD5 +0xFBCD 0x6160 +0xFBCE 0x21A34 +0xFBCF 0x259CC +0xFBD0 0x205A5 +0xFBD1 0x5BF3 +0xFBD2 0x5B9D +0xFBD3 0x4D10 +0xFBD4 0x5C05 +0xFBD5 0x21B44 +0xFBD6 0x5C13 +0xFBD7 0x73CE +0xFBD8 0x5C14 +0xFBD9 0x21CA5 +0xFBDA 0x26B28 +0xFBDB 0x5C49 +0xFBDC 0x48DD +0xFBDD 0x5C85 +0xFBDE 0x5CE9 +0xFBDF 0x5CEF +0xFBE0 0x5D8B +0xFBE1 0x21DF9 +0xFBE2 0x21E37 +0xFBE3 0x5D10 +0xFBE4 0x5D18 +0xFBE5 0x5D46 +0xFBE6 0x21EA4 +0xFBE7 0x5CBA +0xFBE8 0x5DD7 +0xFBE9 0x82FC +0xFBEA 0x382D +0xFBEB 0x24901 +0xFBEC 0x22049 +0xFBED 0x22173 +0xFBEE 0x8287 +0xFBEF 0x3836 +0xFBF0 0x3BC2 +0xFBF1 0x5E2E +0xFBF2 0x6A8A +0xFBF4 0x5E7A +0xFBF5 0x244BC +0xFBF6 0x20CD3 +0xFBF7 0x53A6 +0xFBF8 0x4EB7 +0xFBFA 0x53A8 +0xFBFB 0x21771 +0xFBFC 0x5E09 +0xFBFD 0x5EF4 +0xFBFE 0x28482 +0xFC40 0x5EF9 +0xFC41 0x5EFB +0xFC42 0x38A0 +0xFC43 0x5EFC +0xFC44 0x683E +0xFC45 0x941B +0xFC46 0x5F0D +0xFC47 0x201C1 +0xFC48 0x2F894 +0xFC49 0x3ADE +0xFC4A 0x48AE +0xFC4B 0x2133A +0xFC4C 0x5F3A +0xFC4D 0x26888 +0xFC4E 0x223D0 +0xFC50 0x22471 +0xFC51 0x5F63 +0xFC52 0x97BD +0xFC53 0x26E6E +0xFC54 0x5F72 +0xFC55 0x9340 +0xFC56 0x28A36 +0xFC57 0x5FA7 +0xFC58 0x5DB6 +0xFC59 0x3D5F +0xFC5A 0x25250 +0xFC5B 0x21F6A +0xFC5C 0x270F8 +0xFC5D 0x22668 +0xFC5E 0x91D6 +0xFC5F 0x2029E +0xFC60 0x28A29 +0xFC61 0x6031 +0xFC62 0x6685 +0xFC63 0x21877 +0xFC64 0x3963 +0xFC65 0x3DC7 +0xFC66 0x3639 +0xFC67 0x5790 +0xFC68 0x227B4 +0xFC69 0x7971 +0xFC6A 0x3E40 +0xFC6B 0x609E +0xFC6D 0x60B3 +0xFC6E 0x24982 +0xFC6F 0x2498F +0xFC70 0x27A53 +0xFC71 0x74A4 +0xFC72 0x50E1 +0xFC73 0x5AA0 +0xFC74 0x6164 +0xFC75 0x8424 +0xFC76 0x6142 +0xFC77 0x2F8A6 +0xFC78 0x26ED2 +0xFC79 0x6181 +0xFC7A 0x51F4 +0xFC7B 0x20656 +0xFC7C 0x6187 +0xFC7D 0x5BAA +0xFC7E 0x23FB7 +0xFCA1 0x2285F +0xFCA2 0x61D3 +0xFCA3 0x28B9D +0xFCA4 0x2995D +0xFCA5 0x61D0 +0xFCA6 0x3932 +0xFCA7 0x22980 +0xFCA8 0x228C1 +0xFCA9 0x6023 +0xFCAA 0x615C +0xFCAB 0x651E +0xFCAC 0x638B +0xFCAD 0x20118 +0xFCAE 0x62C5 +0xFCAF 0x21770 +0xFCB0 0x62D5 +0xFCB1 0x22E0D +0xFCB2 0x636C +0xFCB3 0x249DF +0xFCB4 0x3A17 +0xFCB5 0x6438 +0xFCB6 0x63F8 +0xFCB7 0x2138E +0xFCB8 0x217FC +0xFCBA 0x6F8A +0xFCBB 0x22E36 +0xFCBC 0x9814 +0xFCBD 0x2408C +0xFCBE 0x2571D +0xFCBF 0x64E1 +0xFCC0 0x64E5 +0xFCC1 0x947B +0xFCC2 0x3A66 +0xFCC3 0x643A +0xFCC4 0x3A57 +0xFCC5 0x654D +0xFCC6 0x6F16 +0xFCC7 0x24A28 +0xFCC8 0x24A23 +0xFCC9 0x6585 +0xFCCA 0x656D +0xFCCB 0x655F +0xFCCC 0x2307E +0xFCCD 0x65B5 +0xFCCE 0x24940 +0xFCCF 0x4B37 +0xFCD0 0x65D1 +0xFCD1 0x40D8 +0xFCD2 0x21829 +0xFCD3 0x65E0 +0xFCD4 0x65E3 +0xFCD5 0x5FDF +0xFCD6 0x23400 +0xFCD7 0x6618 +0xFCD8 0x231F7 +0xFCD9 0x231F8 +0xFCDA 0x6644 +0xFCDB 0x231A4 +0xFCDC 0x231A5 +0xFCDD 0x664B +0xFCDE 0x20E75 +0xFCDF 0x6667 +0xFCE0 0x251E6 +0xFCE1 0x6673 +0xFCE3 0x21E3D +0xFCE4 0x23231 +0xFCE5 0x285F4 +0xFCE6 0x231C8 +0xFCE7 0x25313 +0xFCE8 0x77C5 +0xFCE9 0x228F7 +0xFCEA 0x99A4 +0xFCEB 0x6702 +0xFCEC 0x2439C +0xFCED 0x24A21 +0xFCEE 0x3B2B +0xFCEF 0x69FA +0xFCF0 0x237C2 +0xFCF2 0x6767 +0xFCF3 0x6762 +0xFCF4 0x241CD +0xFCF5 0x290ED +0xFCF6 0x67D7 +0xFCF7 0x44E9 +0xFCF8 0x6822 +0xFCF9 0x6E50 +0xFCFA 0x923C +0xFCFB 0x6801 +0xFCFC 0x233E6 +0xFCFD 0x26DA0 +0xFCFE 0x685D +0xFD40 0x2346F +0xFD41 0x69E1 +0xFD42 0x6A0B +0xFD43 0x28ADF +0xFD44 0x6973 +0xFD45 0x68C3 +0xFD46 0x235CD +0xFD47 0x6901 +0xFD48 0x6900 +0xFD49 0x3D32 +0xFD4A 0x3A01 +0xFD4B 0x2363C +0xFD4C 0x3B80 +0xFD4D 0x67AC +0xFD4E 0x6961 +0xFD4F 0x28A4A +0xFD50 0x42FC +0xFD51 0x6936 +0xFD52 0x6998 +0xFD53 0x3BA1 +0xFD54 0x203C9 +0xFD55 0x8363 +0xFD56 0x5090 +0xFD57 0x69F9 +0xFD58 0x23659 +0xFD59 0x2212A +0xFD5A 0x6A45 +0xFD5B 0x23703 +0xFD5C 0x6A9D +0xFD5D 0x3BF3 +0xFD5E 0x67B1 +0xFD5F 0x6AC8 +0xFD60 0x2919C +0xFD61 0x3C0D +0xFD62 0x6B1D +0xFD63 0x20923 +0xFD64 0x60DE +0xFD65 0x6B35 +0xFD66 0x6B74 +0xFD67 0x227CD +0xFD68 0x6EB5 +0xFD69 0x23ADB +0xFD6A 0x203B5 +0xFD6B 0x21958 +0xFD6C 0x3740 +0xFD6D 0x5421 +0xFD6E 0x23B5A +0xFD6F 0x6BE1 +0xFD70 0x23EFC +0xFD71 0x6BDC +0xFD72 0x6C37 +0xFD73 0x2248B +0xFD74 0x248F1 +0xFD75 0x26B51 +0xFD76 0x6C5A +0xFD77 0x8226 +0xFD78 0x6C79 +0xFD79 0x23DBC +0xFD7A 0x44C5 +0xFD7B 0x23DBD +0xFD7C 0x241A4 +0xFD7D 0x2490C +0xFD7E 0x24900 +0xFDA1 0x23CC9 +0xFDA2 0x36E5 +0xFDA3 0x3CEB +0xFDA4 0x20D32 +0xFDA5 0x9B83 +0xFDA6 0x231F9 +0xFDA7 0x22491 +0xFDA8 0x7F8F +0xFDA9 0x6837 +0xFDAA 0x26D25 +0xFDAB 0x26DA1 +0xFDAC 0x26DEB +0xFDAD 0x6D96 +0xFDAE 0x6D5C +0xFDAF 0x6E7C +0xFDB0 0x6F04 +0xFDB1 0x2497F +0xFDB2 0x24085 +0xFDB3 0x26E72 +0xFDB4 0x8533 +0xFDB5 0x26F74 +0xFDB6 0x51C7 +0xFDB9 0x842E +0xFDBA 0x28B21 +0xFDBC 0x23E2F +0xFDBD 0x7453 +0xFDBE 0x23F82 +0xFDBF 0x79CC +0xFDC0 0x6E4F +0xFDC1 0x5A91 +0xFDC2 0x2304B +0xFDC3 0x6FF8 +0xFDC4 0x370D +0xFDC5 0x6F9D +0xFDC6 0x23E30 +0xFDC7 0x6EFA +0xFDC8 0x21497 +0xFDC9 0x2403D +0xFDCA 0x4555 +0xFDCB 0x93F0 +0xFDCC 0x6F44 +0xFDCD 0x6F5C +0xFDCE 0x3D4E +0xFDCF 0x6F74 +0xFDD0 0x29170 +0xFDD1 0x3D3B +0xFDD2 0x6F9F +0xFDD3 0x24144 +0xFDD4 0x6FD3 +0xFDD5 0x24091 +0xFDD6 0x24155 +0xFDD7 0x24039 +0xFDD8 0x23FF0 +0xFDD9 0x23FB4 +0xFDDA 0x2413F +0xFDDB 0x51DF +0xFDDC 0x24156 +0xFDDD 0x24157 +0xFDDE 0x24140 +0xFDDF 0x261DD +0xFDE0 0x704B +0xFDE1 0x707E +0xFDE2 0x70A7 +0xFDE3 0x7081 +0xFDE4 0x70CC +0xFDE5 0x70D5 +0xFDE6 0x70D6 +0xFDE7 0x70DF +0xFDE8 0x4104 +0xFDE9 0x3DE8 +0xFDEA 0x71B4 +0xFDEB 0x7196 +0xFDEC 0x24277 +0xFDED 0x712B +0xFDEE 0x7145 +0xFDEF 0x5A88 +0xFDF0 0x714A +0xFDF2 0x5C9C +0xFDF3 0x24365 +0xFDF4 0x714F +0xFDF5 0x9362 +0xFDF6 0x242C1 +0xFDF7 0x712C +0xFDF8 0x2445A +0xFDF9 0x24A27 +0xFDFA 0x24A22 +0xFDFB 0x71BA +0xFDFC 0x28BE8 +0xFDFD 0x70BD +0xFDFE 0x720E +0xFE40 0x9442 +0xFE41 0x7215 +0xFE42 0x5911 +0xFE43 0x9443 +0xFE44 0x7224 +0xFE45 0x9341 +0xFE46 0x25605 +0xFE47 0x722E +0xFE48 0x7240 +0xFE49 0x24974 +0xFE4A 0x68BD +0xFE4B 0x7255 +0xFE4C 0x7257 +0xFE4D 0x3E55 +0xFE4E 0x23044 +0xFE4F 0x680D +0xFE50 0x6F3D +0xFE51 0x7282 +0xFE53 0x732B +0xFE54 0x24823 +0xFE55 0x2882B +0xFE56 0x48ED +0xFE57 0x28804 +0xFE58 0x7328 +0xFE59 0x732E +0xFE5A 0x73CF +0xFE5B 0x73AA +0xFE5C 0x20C3A +0xFE5D 0x26A2E +0xFE5E 0x73C9 +0xFE5F 0x7449 +0xFE60 0x241E2 +0xFE61 0x216E7 +0xFE62 0x24A24 +0xFE63 0x6623 +0xFE64 0x36C5 +0xFE65 0x249B7 +0xFE66 0x2498D +0xFE67 0x249FB +0xFE68 0x73F7 +0xFE69 0x7415 +0xFE6A 0x6903 +0xFE6B 0x24A26 +0xFE6C 0x7439 +0xFE6D 0x205C3 +0xFE6E 0x3ED7 +0xFE70 0x228AD +0xFE71 0x7460 +0xFE72 0x28EB2 +0xFE73 0x7447 +0xFE74 0x73E4 +0xFE75 0x7476 +0xFE76 0x83B9 +0xFE77 0x746C +0xFE78 0x3730 +0xFE79 0x7474 +0xFE7A 0x93F1 +0xFE7B 0x6A2C +0xFE7C 0x7482 +0xFE7D 0x4953 +0xFE7E 0x24A8C +0xFEA1 0x2415F +0xFEA2 0x24A79 +0xFEA3 0x28B8F +0xFEA4 0x5B46 +0xFEA5 0x28C03 +0xFEA6 0x2189E +0xFEA7 0x74C8 +0xFEA8 0x21988 +0xFEA9 0x750E +0xFEAB 0x751E +0xFEAC 0x28ED9 +0xFEAD 0x21A4B +0xFEAE 0x5BD7 +0xFEAF 0x28EAC +0xFEB0 0x9385 +0xFEB1 0x754D +0xFEB2 0x754A +0xFEB3 0x7567 +0xFEB4 0x756E +0xFEB5 0x24F82 +0xFEB6 0x3F04 +0xFEB7 0x24D13 +0xFEB8 0x758E +0xFEB9 0x745D +0xFEBA 0x759E +0xFEBB 0x75B4 +0xFEBC 0x7602 +0xFEBD 0x762C +0xFEBE 0x7651 +0xFEBF 0x764F +0xFEC0 0x766F +0xFEC1 0x7676 +0xFEC2 0x263F5 +0xFEC3 0x7690 +0xFEC4 0x81EF +0xFEC5 0x37F8 +0xFEC6 0x26911 +0xFEC7 0x2690E +0xFEC8 0x76A1 +0xFEC9 0x76A5 +0xFECA 0x76B7 +0xFECB 0x76CC +0xFECC 0x26F9F +0xFECD 0x8462 +0xFECE 0x2509D +0xFECF 0x2517D +0xFED0 0x21E1C +0xFED1 0x771E +0xFED2 0x7726 +0xFED3 0x7740 +0xFED4 0x64AF +0xFED5 0x25220 +0xFED6 0x7758 +0xFED7 0x232AC +0xFED8 0x77AF +0xFED9 0x28964 +0xFEDA 0x28968 +0xFEDB 0x216C1 +0xFEDC 0x77F4 +0xFEDE 0x21376 +0xFEDF 0x24A12 +0xFEE0 0x68CA +0xFEE1 0x78AF +0xFEE2 0x78C7 +0xFEE3 0x78D3 +0xFEE4 0x96A5 +0xFEE5 0x792E +0xFEE6 0x255E0 +0xFEE7 0x78D7 +0xFEE8 0x7934 +0xFEE9 0x78B1 +0xFEEA 0x2760C +0xFEEB 0x8FB8 +0xFEEC 0x8884 +0xFEED 0x28B2B +0xFEEE 0x26083 +0xFEEF 0x2261C +0xFEF0 0x7986 +0xFEF1 0x8900 +0xFEF2 0x6902 +0xFEF3 0x7980 +0xFEF4 0x25857 +0xFEF5 0x799D +0xFEF6 0x27B39 +0xFEF7 0x793C +0xFEF8 0x79A9 +0xFEF9 0x6E2A +0xFEFA 0x27126 +0xFEFB 0x3EA8 +0xFEFC 0x79C6 +0xFEFD 0x2910D +0xFEFE 0x79D4 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet new file mode 100644 index 0000000..c16210e --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet @@ -0,0 +1,253 @@ +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + +@ A C F G H I L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b d e f g h i j k l m n o +p q r s t v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m n +p q r s t u v w x y z { | } + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y Z [ \ ] ^ _ +` a b c d e f g h j k l m o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l n o +p q r s t u v w x y { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` b c d e f g h i j k l m n o +p q r s t u w y z | } ~ + + + + + + +@ A C D E F G H I J K L M N O +P Q R T U V W X Y Z [ \ ] ^ _ +` a c d e f g i j l m n o +p q r s t u v x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V X Y [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M O +P Q R S T U V W X Y Z [ \ ] ^ _ + a b c d e g h i j k l m n o +p q r s t u v w x y z { | } ~ + + + + + + +@ A B C D E F G H I J K L M N O +P Q R S U V X Y [ \ ] ^ _ +` a d e f g h i j k l m n o +p q s t u v x y z { | } ~ + + + + + + diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet.UTF-8 b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet.UTF-8 new file mode 100644 index 0000000..023fc35 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008-snippet.UTF-8 @@ -0,0 +1,253 @@ +䏰 䰲 䘃 䖦 䕸 𧉧 䵷 䖳 𧲱 䳢 𧳅 㮕 䜶 䝄 䱇 䱀 +𤊿 𣘗 𧍒 𦺋 𧃒 䱗 𪍑 䝏 䗚 䲅 𧱬 䴇 䪤 䚡 𦬣 爥 +𥩔 𡩣 𣸆 𣽡 晍 囻 綕 夝 𨮹 㷴 霴 𧯯 寛 𡵞 媤 +㘥 𩺰 嫑 宷 峼 杮 薓 𩥅 瑡 璝 㡵 𡵓 𣚞 𦀡 㻬 + 𥣞 㫵 竼 龗 𤅡 𨤍 𣇪 𠪊 𣉞 䌊 蒄 龖 鐯 䤰 蘓 +墖 靊 鈘 秐 稲 晠 権 袝 瑌 篅 枂 稬 剏 遆 㓦 珄 +𥶹 瓆 鿇 垳 䤯 呌 䄱 𣚎 堘 穲 𧭥 讏 䚮 𦺈 䆁 𥶙 +箮 𢒼 鿈 𢓁 𢓉 𢓌 鿉 蔄 𣖻 䂴 鿊 䓡 𪷿 拁 灮 鿋 +㇀ ㇁ ㇂ ㇃ ㇄ 𠄌 ㇅ 𠃑 𠃍 ㇆ ㇇ 𠃋 𡿨 ㇈ 𠃊 ㇉ +㇊ ㇋ ㇌ 𠄎 ㇍ ㇎ Ā Á Ǎ À Ē É Ě È Ō Ó +Ǒ Ò Ê̄ Ế Ê̌ Ề Ê ā á ǎ à ɑ ē é ě è +ī í ǐ ì ō ó ǒ ò ū ú ǔ ù ǖ ǘ ǚ + ǜ ü ê̄ ế ê̌ ề ê ɡ ⏚ ⏛ +𪎩 𡅅 攊 丽 滝 鵎 釟 𧜵 撑 会 伨 +侨 兖 兴 农 凤 务 动 医 华 发 变 团 声 处 备 夲 +头 学 实 実 岚 庆 总 斉 柾 栄 桥 济 炼 电 纤 纬 +纺 织 经 统 缆 缷 艺 苏 药 视 设 询 车 轧 轮 + 琑 糼 緍 楆 竉 刧 醌 碸 酞 肼 +贋 胶 𠧧 肟 黇 䳍 鷉 鸌 䰾 𩷶 𧀎 鸊 𪄳 㗁 + 溚 舾 甙 䤑 马 骏 龙 禇 𨑬 𡷊 𠗐 𢫦 两 亁 +亀 亇 亿 仫 伷 㑌 侽 㹈 倃 傈 㑽 㒓 㒥 円 夅 凛 +凼 刅 争 剹 劐 匧 㗇 厩 㕑 厰 㕓 参 吣 㕭 㕲 㚁 +咓 咣 咴 咹 哐 哯 唘 唣 唨 㖘 唿 㖥 㖿 嗗 㗅 +𧶄 唥 𠱂 𠴕 𥄫 喐 𢳆 㧬 𠍁 蹆 𤶸 𩓥 䁓 𨂾 睺 +𢰸 㨴 䟕 𨅝 𦧲 𤷪 擝 𠵼 𠾴 𠳕 𡃴 撍 蹾 𠺖 𠰋 𠽤 +𢲩 𨉖 𤓓 𠵆 𩩍 𨃩 䟴 𤺧 𢳂 骲 㩧 𩗴 㿭 㔆 𥋇 +𩟔 𧣈 𢵄 鵮 頕 䏙 𦂥 撴 哣 𢵌 𢯊 𡁷 㧻 𡁯 + 𦛚 𦜖 𧦠 擪 𥁒 𠱃 蹨 𢆡 𨭌 𠜱 䠋 𠆩 㿺 塳 +𢶍 𤗈 𠓼 𦂗 𠽌 𠶖 啹 䂻 䎺 䪴 𢩦 𡂝 膪 飵 +𠶜 捹 㧾 𢝵 跀 嚡 摼 㹃 𪘁 𠸉 𢫏 𢳉 𡃈 𣧂 +㦒 㨆 𨊛 㕸 𥹉 𢃇 噒 𠼱 𢲲 𩜠 㒼 氽 𤸻 𧕴 +𢺋 𢈈 𪙛 𨳍 𠹺 𠰴 𦠜 羓 𡃏 𢠃 𢤹 㗻 𥇣 𠺌 𠾍 𠺪 +㾓 𠼰 𠵇 𡅏 𠹌 𠺫 𠮩 𠵈 𡃀 𡄽 㿹 𢚖 搲 𠾭 +𣏴 𧘹 𢯎 𠵾 𠵿 𢱑 𢱕 㨘 𠺘 𡃇 𠼮 𪘲 𦭐 𨳒 𨶙 𨳊 +閪 哌 苄 喹 𩻃 鰦 骶 𧝞 𢷮 煀 腭 胬 尜 𦕲 脴 +㞗 卟 𨂽 醶 𠻺 𠸏 𠹷 𠻻 㗝 𤷫 㘉 𠳖 嚯 𢞵 𡃉 𠸐 +𠹸 𡁸 𡅈 𨈇 𡑕 𠹹 𤹐 𢶤 婔 𡀝 𡀞 𡃵 𡃶 垜 𠸑 + 𧚔 𨋍 𠾵 𠹻 𥅾 㜃 𠾶 𡆀 𥋘 𪊽 𤧚 𡠺 𤅷 𨉼 墙 +剨 㘚 𥜽 箲 孨 䠀 䬬 鼧 䧧 鰟 鮍 𥭴 𣄽 嗻 㗲 嚉 +丨 夂 𡯁 屮 靑 𠂆 乛 亻 㔾 尣 彑 忄 㣺 扌 攵 歺 +氵 氺 灬 爫 丬 犭 𤣩 罒 礻 糹 罓 𦉪 㓁 𦍋 耂 +肀 𦘒 𦥑 卝 衤 见 𧢲 讠 贝 钅 镸 长 门 𨸏 韦 页 +风 飞 饣 𩠐 鱼 鸟 黄 歯 龜 丷 𠂇 阝 户 钢 +倻 淾 𩱳 龦 㷉 袏 𤅎 灷 峵 䬠 𥇍 㕙 𥴰 愢 𨨲 辧 +釶 熑 朙 玺 𣊁 𪄇 㲋 𡦀 䬐 磤 琂 冮 𨜏 䀉 橣 𪊺 +䈣 蘏 𠩯 稪 𩥇 𨫪 靕 灍 匤 𢁾 鏴 盙 𨧣 龧 矝 亣 +俰 傼 丯 众 龨 吴 綋 墒 壐 𡶶 庒 庙 忂 𢜒 斋 + 𣏹 椙 橃 𣱣 泿 爀 𤔅 玌 㻛 𤨓 嬕 璹 讃 𥲤 +𥚕 窓 篬 糃 繬 苸 薗 龩 袐 龪 躹 龫 迏 蕟 駠 鈡 +龬 𨶹 𡐿 䁱 䊢 娚 顨 杫 䉶 圽 藖 𤥻 +芿 𧄍 䲁 𦵴 嵻 𦬕 𦾾 龭 龮 宖 龯 曧 繛 湗 秊 㶈 +䓃 𣉖 𢞖 䎚 䔶 峕 𣬚 諹 屸 㴒 𣕑 嵸 龲 煗 䕘 +𤃬 𡸣 䱷 㥸 㑊 𠆤 𦱁 諌 侴 𠈹 妿 腬 顖 𩣺 弻 +𠮟 𢇁 𨥭 䄂 䚻 𩁹 㼇 龳 𪆵 䃸 㟖 䛷 𦱆 䅼 𨚲 +𧏿 䕭 㣔 𥒚 䕡 䔛 䶉 䱻 䵶 䗪 㿈 𤬏 㙡 䓞 䒽 䇭 +崾 嵈 嵖 㷼 㠏 嶤 嶹 㠠 㠸 幂 庽 弥 徃 㤈 㤔 㤿 +㥍 惗 愽 峥 㦉 憷 憹 懏 㦸 戬 抐 拥 挘 㧸 嚱 + 㨃 揢 揻 搇 摚 㩋 擀 崕 嘡 龟 㪗 斆 㪽 旿 晓 +㫲 暒 㬢 朖 㭂 枤 栀 㭘 桊 梄 㭲 㭱 㭻 椉 楃 牜 +楤 榟 榅 㮼 槖 㯝 橥 橴 橱 檂 㯬 檙 㯲 檫 檵 櫔 +櫶 殁 毁 毪 汵 沪 㳋 洂 洆 洦 涁 㳯 涤 涱 渕 渘 +温 溆 𨧀 溻 滢 滚 齿 滨 滩 漤 漴 㵆 𣽁 澁 澾 㵪 +㵵 熷 岙 㶊 瀬 㶑 灐 灔 灯 灿 炉 𠌥 䏁 㗱 𠻘 +𣻗 垾 𦻓 焾 𥟠 㙎 榢 𨯩 孴 穉 𥣡 𩓙 穥 穽 𥦬 窻 +窰 竂 竃 燑 𦒍 䇊 竚 竝 竪 䇯 咲 𥰁 笋 筕 笩 𥌎 +𥳾 箢 筯 莜 𥮴 𦱿 篐 萡 箒 𥴠 㶭 𥱥 蒒 篺 +簵 𥳁 籄 粃 𤢂 粦 晽 𤕸 糉 糇 糦 籴 糳 糵 + 繧 䔝 𦹄 絝 𦻖 璍 綉 綫 焵 綳 𤁗 𦀩 緤 㴓 +緵 𡟹 緥 𨍭 𦄡 𦅚 繮 纒 䌫 鑬 縧 罀 罁 罇 礶 +𦋐 駡 羗 𦍑 羣 𡙡 𠁨 䕜 𣝦 䔃 𨌺 翺 𦒉 耈 耝 + 耯 𪂇 𦳃 耻 耼 聡 𢜔 䦉 𦘦 𣷣 𦛨 朥 肧 𨩈 脇 +脚 墰 𢛶 汿 𦒘 𤾸 擧 𡒊 舘 𡡞 橓 𤩥 𤪕 䑺 舩 𠬍 +𦩒 𣵾 俹 𡓽 蓢 荢 𦬊 𤦧 𣔰 𡝳 𣷸 芪 椛 芳 䇛 +蕋 苐 茚 𠸖 𡞴 㛁 𣅽 𣕚 艻 苢 茘 𣺋 𦶣 𦬅 𦮗 𣗎 +㶿 茝 嗬 莅 䔋 𦶥 莬 菓 㑾 𦻔 橗 蕚 㒖 𦹂 𢻯 +葘 𥯤 葱 㷓 䓤 檧 葊 𣲵 祘 𦮖 𦹷 𦹃 蓞 莑 +䒠 蒓 蓤 𥲑 䉀 𥳀 䕃 蔴 嫲 𦺙 䔧 蕳 䔖 枿 蘖 + 𨘥 𨘻 藁 𧂈 蘂 𡖂 𧃍 䕫 䕪 蘨 㙈 𡢢 号 𧎚 虾 +蝱 𪃸 蟮 𢰧 螱 蟚 蠏 噡 虬 桖 䘏 衅 衆 𧗠 𣶹 𧗤 +衞 袜 䙛 袴 袵 揁 装 睷 𧜏 覇 覊 覧 覼 𨨥 +觧 𧤤 𧪽 誜 瞓 釾 誐 𧩙 竩 𧬺 𣾏 䜓 𧬸 煼 謌 謟 +𥐰 𥕥 謿 譌 譍 誩 𤩺 讐 讛 誯 𡛟 䘕 衏 貛 𧵔 𧶏 +貫 㜥 𧵓 賖 𧶘 𧶽 贒 贃 𡤐 賛 灜 贑 𤳉 㻐 +趩 𨀂 𡀔 𤦊 㭼 𨆼 𧄌 竧 躭 躶 軃 鋔 輙 輭 𨍥 𨐒 +辥 錃 𪊟 𠩐 辳 䤪 𨧞 𨔽 𣶻 廸 𣉢 迹 𪀔 𨚼 𨔁 𢌥 +㦀 𦻗 逷 𨔼 𧪾 遡 𨕬 𨘋 邨 𨜓 郄 𨛦 邮 酧 㫰 +醩 釄 粬 𨤳 𡺉 鈎 沟 鉁 鉢 𥖹 𨫆 𣲛 𨬌 𥗛 + 𠴱 錬 鍫 𨫡 𨯫 炏 嫃 𨫢 𨫥 䥥 鉄 𨯬 𨰹 𨯿 鍳 +鑛 躼 閅 閦 鐦 閠 濶 䊹 𢙺 𨛘 𡉼 𣸮 䧟 氜 陻 隖 +䅬 隣 𦻕 懚 隶 磵 𨫠 隽 双 䦡 𦲸 𠉴 𦐐 𩂯 𩃥 𤫑 +𡤕 𣌊 霱 虂 霶 䨏 䔽 䖅 𤫩 灵 孁 霛 𩇕 靗 孊 +𩇫 靟 鐥 僐 𣂷 𣂼 鞉 鞟 鞱 鞾 韀 韒 韠 𥑬 韮 琜 +𩐳 韵 𩐝 𧥺 䫑 頴 頳 顋 顦 㬎 𧅵 㵑 𠘰 𤅜 +𥜆 飊 颷 飈 飇 䫿 𦴧 𡛓 喰 飡 飦 飬 鍸 餹 𤨩 䭲 +𩡗 𩤅 駵 騌 騻 騐 驘 𥜥 㛄 𩂱 𩯕 髠 髢 𩬅 髴 䰎 +鬔 鬭 𨘀 倴 鬴 𦦨 㣃 𣁽 魐 魀 𩴾 婅 𡡣 鮎 𤉋 鰂 +鯿 鰌 𩹨 鷔 𩾷 𪆒 𪆫 𪃡 𪄣 𪇟 鵾 鶃 𪄴 鸎 梈 + 鷄 𢅛 𪆓 𪈠 𡤻 𪈳 鴹 𪂹 𪊴 麐 麕 麞 麢 䴴 麪 +麯 𤍤 黁 㭠 㧥 㴝 伲 㞾 𨰫 鼂 鼈 䮖 鐤 𦶢 鼗 +鼹 嚟 嚊 齅 馸 𩂋 韲 葿 齢 齩 竜 龎 爖 䮾 𤥵 𤦻 +煷 𤧸 𤍈 𤩑 玞 𨯚 𡣺 禟 𨥾 𨸶 鍩 鏳 𨩄 鋬 鎁 鏋 +𨥬 𤒹 爗 㻫 睲 穃 烐 𤑳 𤏸 煾 𡟯 炣 𡢾 𣖙 㻇 𡢅 +𥐯 𡟸 㜢 𡛻 𡠹 㛡 𡝴 𡣑 𥽋 㜣 𡛀 坛 𤨥 𡏾 𡊨 +𡏆 𡒶 蔃 𣚦 葕 𤦔 𧅥 𣸱 𥕜 𣻻 𧁒 䓴 𣛮 𩦝 𦼦 +柹 㜳 㰕 㷧 塬 𡤢 栐 䁗 𣜿 𤃡 𤂋 𤄏 𦰡 哋 嚞 𦚱 +嚒 𠿟 𠮨 𠸍 鏆 𨬓 鎜 仸 儫 㠙 𤐶 亼 𠑥 𠍿 佋 侊 +𥙑 婨 𠆫 𠏋 㦙 𠌊 𠐔 㐵 伩 𠋀 𨺳 𠉵 諚 𠈌 亘 + 働 儍 侢 伃 𤨎 𣺊 佂 倮 偬 傁 俌 俥 偘 僼 + 湶 𣖕 𣸹 𣺿 浲 𡢄 𣺉 冨 凃 𠗠 䓝 𠒣 𠒒 +𠒑 赺 𨪜 𠜎 剙 劤 𠡳 勡 䙺 熌 𤎌 𠰠 𤦬 𡃤 槑 +𠸝 㻞 璙 琔 瑖 玘 䮎 𤪼 𤂍 叐 㖄 爏 𤃉 喴 𠍅 +响 𠯆 圝 鉝 雴 鍦 埝 垍 坿 㘾 壋 媙 𨩆 𡛺 𡝯 𡜐 +娬 妸 銏 婾 嫏 娒 𥥆 𡧳 𡡡 𤊕 㛵 洅 瑃 娡 𥺃 +媁 𨯗 𠐓 鏠 璌 𡌃 焅 䥲 鐈 𨧻 鎽 㞠 尞 岞 幞 幈 +𡦖 𡥼 𣫮 廍 孏 𡤃 𡤄 㜁 𡢠 㛝 𡛾 㛓 脪 𨩇 𡶺 𣑲 +𨦨 弌 弎 𡤧 𡞫 婫 𡜻 孄 蘔 𧗽 衠 恾 𢡠 𢘫 忛 㺸 +𢖯 𢖾 𩂈 𦽳 懀 𠀾 𠁆 𢘛 憙 憘 恵 𢲛 𢴇 𤛔 𩅍 + 摱 𤙥 𢭪 㨩 𢬢 𣑐 𩣪 𢹸 挷 𪑛 撶 挱 揑 𤧣 𢵧 +护 𢲡 搻 敫 楲 㯴 𣂎 𣊭 𤦉 𣊫 唍 𣋠 𡣙 𩐿 曎 𣊉 +𣆳 㫠 䆐 𥖄 𨬢 𥖏 𡛼 𥕛 𥐥 磮 𣄃 𡠪 𣈴 㑤 𣈏 𣆂 +𤋉 暎 𦴤 晫 䮓 昰 𧡰 𡷫 晣 𣋒 𣋡 昞 𥡲 㣑 𣠺 𣞼 +㮙 𣞢 𣏾 瓐 㮖 枏 𤘪 梶 栞 㯄 檾 㡣 𣟕 𤒇 樳 橒 +櫉 欅 𡤒 攑 梘 橌 㯗 橺 歗 𣿀 𣲚 鎠 鋲 𨯪 𨫋 +銉 𨀞 𨧜 鑧 涥 漋 𤧬 𣽿 㶏 渄 𤀼 娽 渊 塇 洤 +硂 焻 𤌚 𤉶 烱 牐 犇 犔 𤞏 𤜥 兹 𤪤 𠗫 瑺 𣻸 𣙟 +𤩊 𤤗 𥿡 㼆 㺱 𤫟 𨰣 𣼵 悧 㻳 瓌 琼 鎇 琷 䒟 𦷪 +䕑 疃 㽣 𤳙 𤴆 㽘 畕 癳 𪗆 㬙 瑨 𨫌 𤦫 𤦎 㫻 + 㷍 𤩎 㻿 𤧅 𤣳 釺 圲 鍂 𨫣 𡡤 僟 𥈡 𥇧 睸 𣈲 +眎 眏 睻 𤚗 𣞁 㩞 𤣰 琸 璛 㺿 𤪺 𤫇 䃈 𤪖 𦆮 錇 +𥖁 砞 碍 碈 磒 珐 祙 𧝁 𥛣 䄎 蒖 禥 樭 𣻺 稺 +秴 䅮 𡛦 䄲 鈵 秱 𠵌 𤦌 𠊙 𣶺 𡝮 㖗 啫 㕰 㚪 𠇔 +𠰍 竢 婙 𢛵 𥪯 𥪜 娍 𠉛 磰 娪 𥯆 竾 䇹 籝 籭 䈑 +𥮳 𥺼 𥺦 糍 𤧹 𡞰 粎 籼 粮 檲 緜 縇 緓 罎 𦉡 +𦅜 𧭈 綗 𥺂 䉪 𦭵 𠤖 柖 𠁎 𣗏 埄 𦐒 𦏸 𤥢 翝 笧 +𠠬 𥫩 𥵃 笌 𥸎 駦 虅 驣 樜 𣐿 㧢 𤧷 𦖭 騟 𦖠 蒀 +𧄧 𦳑 䓪 脷 䐂 胆 脉 腂 𦞴 飃 𦩂 艢 艥 𦩑 葓 𦶧 +蘐 𧈛 媆 䅿 𡡀 嬫 𡢡 嫤 𡣘 蚠 蜨 𣶏 蠭 𧐢 娂 + 衮 佅 袇 袿 裦 襥 襍 𥚃 襔 𧞅 𧞄 𨯵 𨯙 𨮜 𨧹 +㺭 蒣 䛵 䛏 㟲 訽 訜 𩑈 彍 鈫 𤊄 旔 焩 烄 𡡅 鵭 +貟 賩 𧷜 妚 矃 姰 䍮 㛔 踪 躧 𤰉 輰 轊 䋴 汘 澻 +𢌡 䢛 潹 溋 𡟚 鯩 㚵 𤤯 邻 啱 䤆 醻 鐄 𨩋 䁢 +𨫼 鐧 𨰝 𨰻 蓥 訫 閙 閧 閗 閖 𨴴 瑅 㻂 𤣿 𤩂 𤏪 +㻧 𣈥 随 𨻧 𨹦 𨹥 㻌 𤧭 𤩸 𣿮 琒 瑫 㻼 靁 𩂰 +桇 䨝 𩂓 𥟟 鍨 𨦉 𨰦 𨬯 𦎾 銺 嬑 譩 䤼 珹 𤈛 +鞛 靱 餸 𠼦 巁 𨯅 𤪲 頟 𩓚 鋶 𩗗 釥 䓀 𨭐 𤩧 𨭤 +飜 𨩅 㼀 鈪 䤥 萔 餻 饍 𧬆 㷽 馛 䭯 馪 驜 𨭥 𥣈 +檏 騡 嫾 騯 𩣱 䮐 𩥈 馼 䮽 䮗 鍽 塲 𡌂 堢 𤦸 + 𡓨 硄 𢜟 𣶸 棅 㵽 鑘 㤧 慐 𢞁 𢥫 愇 鱏 鱓 鱻 +鰵 鰐 魿 鯏 𩸭 鮟 𪇵 𪃾 鴡 䲮 𤄄 鸘 䲰 鴌 𪆴 𪃭 +𪃳 𩤯 鶥 蒽 𦸒 𦿟 𦮂 藼 䔳 𦶤 𦺄 𦷰 萠 藮 𦸀 𣟗 +𦁤 秢 𣖜 𣙀 䤭 𤧞 㵢 鏛 銾 鍈 𠊿 碹 鉷 鑍 俤 㑀 +遤 𥕝 砽 硔 碶 硋 𡝗 𣇉 𤥁 㚚 佲 濚 濙 瀞 吔 +𤆵 垻 壳 垊 鴖 埗 焴 㒯 𤆬 燫 𦱀 𤾗 𡞵 𨩉 +愌 嫎 娋 䊼 𤒈 㜬 䭻 𨧼 鎻 鎸 𡣖 𠼝 葲 𦳀 𡐓 𤋺 +𢰦 𤏁 妔 𣶷 𦝁 綨 𦅛 𦂤 𤦹 𤦋 𨧺 鋥 珢 㻩 璴 𨭣 +𡢟 㻡 𤪳 櫘 珳 珻 㻖 𤨾 𤪔 𡟙 𤩦 𠎧 𡐤 𤧥 瑈 𤤖 +炥 𤥶 銄 珦 鍟 𠓾 錱 𨫎 𨨖 鎆 𨯧 𥗕 䤵 𨪂 煫 + 𤥃 𠳿 嚤 𠘚 𠯫 𠲸 唂 秄 𡟺 緾 𡛂 𤩐 𡡒 䔮 鐁 +㜊 𨫀 𤦭 妰 𡢿 𡢃 𧒄 媡 㛢 𣵛 㚰 鉟 婹 𨪁 𡡢 鍴 +㳍 𠪴 䪖 㦊 僴 㵩 㵌 𡎜 煵 䋻 𨈘 渏 𩃤 䓫 浗 𧹏 +灧 沯 㳖 𣿭 𣸭 渂 漌 㵯 𠏵 畑 㚼 㓈 䚀 㻚 䡱 姄 +鉮 䤾 轁 𨰜 𦯀 堒 埈 㛖 𡑒 烾 𤍢 𤩱 𢿣 𡊰 𢎽 梹 +楧 𡎘 𣓥 𧯴 𣛟 𨪃 𣟖 𣏺 𤲟 樚 𣚭 𦲷 萾 䓟 䓎 +𦴦 𦵑 𦲂 𦿞 漗 𧄉 茽 𡜺 菭 𦲀 𧁓 𡟛 妉 媂 𡞳 婡 +婱 𡤅 𤇼 㜭 姯 𡜼 㛇 熎 鎐 暚 𤊥 婮 娫 𤊓 樫 𣻹 +𧜶 𤑛 𤋊 焝 𤉙 𨧡 侰 𦴨 峂 𤓎 𧹍 𤎽 樌 𤉖 𡌄 炦 +焳 𤏩 㶥 泟 勇 𤩏 繥 姫 崯 㷳 彜 𤩝 𡟟 綤 萦 + 咅 𣫺 𣌀 𠈔 坾 𠣕 𠘙 㿥 𡾞 𪊶 瀃 𩅛 嵰 玏 糓 +𨩙 𩐠 俈 翧 狍 猐 𧫴 猸 猹 𥛶 獁 獈 㺩 𧬘 遬 燵 +𤣲 珡 臶 㻊 県 㻑 沢 国 琙 琞 琟 㻢 㻰 㻴 㻺 瓓 +㼎 㽓 畂 畭 畲 疍 㽼 痈 痜 㿀 癍 㿗 癴 㿜 発 𤽜 +熈 嘣 覀 塩 䀝 睃 䀹 条 䁅 㗛 瞘 䁪 䁯 属 瞾 矋 +売 砘 点 砜 䂨 砹 硇 硑 硦 葈 𥔵 礳 栃 礲 䄃 +䄉 禑 禙 辻 稆 込 䅧 窑 䆲 窼 艹 䇄 竏 竛 䇏 両 +筢 筬 筻 簒 簛 䉠 䉺 类 粜 䊌 粸 䊔 糭 输 烀 𠳏 +総 緔 緐 緽 羮 羴 犟 䎗 耠 耥 笹 耮 耱 联 㷌 垴 +炠 肷 胩 䏭 脌 猪 脎 脒 畠 脔 䐁 㬹 腖 腙 腚 + 䐓 堺 腼 膄 䐥 膓 䐭 膥 埯 臁 臤 艔 䒏 芦 艶 +苊 苘 苿 䒰 荗 险 榊 萅 烵 葤 惣 蒈 䔄 蒾 蓡 蓸 +蔐 蔸 蕒 䔻 蕯 蕰 藠 䕷 虲 蚒 蚲 蛯 际 螋 䘆 䘗 +袮 裿 褤 襇 覑 𧥧 訩 訸 誔 誴 豑 賔 賲 贜 䞘 塟 +跃 䟭 仮 踺 嗘 坔 蹱 嗵 躰 䠷 軎 転 軤 軭 軲 辷 +迁 迊 迌 逳 駄 䢭 飠 鈓 䤞 鈨 鉘 鉫 銱 銮 銿 +鋣 鋫 鋳 鋴 鋽 鍃 鎄 鎭 䥅 䥑 麿 鐗 匁 鐝 鐭 鐾 +䥪 鑔 鑹 锭 関 䦧 间 阳 䧥 枠 䨤 靀 䨵 鞲 韂 噔 +䫤 惨 颹 䬙 飱 塄 餎 餙 冴 餜 餷 饂 饝 饢 䭰 駅 +䮝 騼 鬏 窃 魩 鮁 鯝 鯱 鯴 䱭 鰠 㝯 𡯂 鵉 鰺 + 黾 噐 鶓 鶽 鷀 鷼 银 辶 鹻 麬 麱 麽 黆 铜 黢 +黱 黸 竈 齄 𠂔 𠊷 𠎠 椚 铃 妬 𠓗 塀 铁 㞹 𠗕 𠘕 +𠙶 𡚺 块 煳 𠫂 𠫍 𠮿 呪 吆 𠯋 咞 𠯻 𠰻 𠱓 𠱥 𠱼 +惧 𠲍 噺 𠲵 𠳝 𠳭 𠵯 𠶲 𠷈 楕 鰯 螥 𠸄 𠸎 𠻗 𠾐 +𠼭 𠹳 尠 𠾼 帋 𡁜 𡁏 𡁶 朞 𡁻 𡂈 𡂖 㙇 𡂿 𡃓 𡄯 +𡄻 卤 蒭 𡋣 𡍵 𡌶 讁 𡕷 𡘙 𡟃 𡟇 乸 炻 𡠭 𡥪 +𡨭 𡩅 𡰪 𡱰 𡲬 𡻈 拃 𡻕 𡼕 熘 桕 𢁅 槩 㛈 𢉼 𢏗 +𢏺 𢜪 𢡱 𢥏 苽 𢥧 𢦓 𢫕 覥 𢫨 辠 𢬎 鞸 𢬿 顇 骽 +𢱌 𢲈 𢲷 𥯨 𢴈 𢴒 𢶷 𢶕 𢹂 𢽴 𢿌 𣀳 𣁦 𣌟 𣏞 +徱 晈 暿 𧩹 𣕧 𣗳 𤦺 𣘚 𣜖 𠍆 墵 朎 + 椘 𣪧 𧙗 𥿢 𣸑 𣺹 𧗾 𢂚 䣐 䪸 𤄙 𨪚 𤋮 𤌍 𤀻 +𤌴 𤎖 𤩅 𠗊 凒 𠘑 妟 𡺨 㮾 𣳿 𤐄 𤓖 垈 𤙴 㦛 𤜯 +𨗨 𩧉 㝢 𢇃 譞 𨭎 𤠒 𤣻 𤨕 爉 𤫀 𠱸 奥 𤺥 𤾆 +𠝹 軚 𥀬 劏 圿 煱 𥊙 𥐙 𣽊 𤪧 喼 𥑆 𥑮 𦭒 㑳 +𥔿 𧘲 𥕞 䜘 𥕢 𥕦 𥟇 𤤿 𥡝 偦 㓻 𣏌 𥤃 䝼 𨥈 +𥪮 𥮉 𥰆 𡶐 垡 煑 𦄂 𧰒 遖 𦆲 𤾚 譢 𦐂 𦑊 +嵛 𦯷 𦒄 𡤜 諪 𤧶 𦒈 𣿯 𦔒 䯀 𦖿 𦚵 𢜛 鑥 𥟡 +憕 娧 晉 嚹 𤔡 𦛼 乪 𤤴 陖 涏 𦲽 㘘 襷 𦞙 𦡮 +𦐑 𦡞 𦣇 筂 𩃀 𠨑 𦤦 𦤹 穅 𦧺 騦 𦨭 㙟 +𦑩 𠀡 禃 𦨴 𦭛 崬 𣔙 𦮝 䛐 𦲤 画 补 𦶮 墶 + 㜜 𢖍 𧁋 𧇍 㱔 𧊀 𧊅 銁 𢅺 𧊋 錰 𧋦 𤧐 氹 钟 +𧑐 𠻸 蠧 裵 𢤦 𨑳 𡞱 溸 𤨪 𡠠 㦤 㚹 䔿 暶 +𩲭 𩢤 襃 𧟌 𧡘 囖 䃟 𡘊 㦡 𣜯 𨃨 𡏅 熭 荦 𧧝 𩆨 + 䲷 𧂯 𨦫 𧧽 𧨊 𧬋 𧵦 𤅺 筃 祾 𨀉 澵 𪋟 樃 𨌘 +厢 𦸇 鎿 栶 靝 𨅯 𨀣 𦦵 𡏭 𣈯 𨁈 嶅 𨰰 𨂃 圕 頣 +𨥉 嶫 𤦈 斾 槕 叒 𤪥 𣾁 㰑 朶 𨂐 𨃴 𨄮 𡾡 𨅏 +𨆉 𨆯 𨈚 𨌆 𨌯 𨎊 㗊 𨑨 𨚪 䣺 揦 𨥖 砈 鉕 𨦸 䏲 +𨧧 䏟 𨧨 𨭆 𨯔 姸 𨰉 𨿅 𩃬 𩄐 𩄼 㷷 𩅞 𤫊 +运 犏 嚋 𩓧 𩗩 𩖰 𩖸 𩜲 𩣑 𩥉 𩥪 𩧃 𩨨 𩬎 𩵚 𩶛 +纟 𩻸 𩼣 䲤 镇 𪊓 熢 𪋿 䶑 递 𪗋 䶜 𠲜 达 嗁 + 辺 𢒰 边 𤪓 䔉 繿 潖 檱 仪 㓤 𨬬 𧢝 㜺 躀 𡟵 +𨀤 𨭬 𨮙 𧨾 𦚯 㷫 𧙕 𣲷 𥘵 𥥖 亚 𥺁 𦉘 嚿 𠹭 踎 +孭 𣺈 𤲞 揞 𡟶 𡡻 攰 嘭 𥱊 吚 𥌑 㷆 𩶘 䱽 嘢 +嘞 罉 𥻘 奵 𣵀 蝰 东 𠿪 𠵉 𣚺 脗 鵞 贘 瘻 鱅 癎 +瞹 鍅 吲 腈 苷 嘥 脲 萘 肽 嗪 祢 噃 吖 𠺝 㗎 嘅 +嗱 曱 𨋢 㘭 甴 嗰 喺 咗 啲 𠱁 𠲖 廐 𥅈 𠹶 𢱢 +𠺢 麫 絚 嗞 𡁵 抝 靭 咔 賍 燶 酶 揼 掹 揾 啩 𢭃 +鱲 𢺳 冚 㓟 𠶧 冧 呍 唞 唓 癦 踭 𦢊 疱 肶 蠄 螆 +裇 膶 萜 𡃁 䓬 猄 𤜆 宐 茋 𦢓 噻 𢛴 𧴯 𤆣 𧵳 𦻐 +𧊶 酰 𡇙 鈈 𣳼 𪚩 𠺬 𠻹 牦 𡲢 䝎 𤿂 𧿹 𠿫 䃺 + 鱝 攟 𢶠 䣳 𤟠 𩵼 𠿬 𠸊 𧖣 𠿭 𦁈 𡆇 熣 +纎 鵐 业 丄 㕷 嬍 沲 卧 㚬 㧜 卽 㚥 𤘘 墚 𤭮 舭 +呋 垪 𥪕 𠥹 㩒 𢑥 獴 𩺬 䴉 鯭 𣳾 𩼰 䱛 𤾩 𩖞 +𩿞 葜 𣶶 𧊲 𦞳 𣜠 挮 紥 𣻷 𣸬 㨪 逈 勌 㹴 㙺 䗩 +𠒎 癀 嫰 𠺶 硺 𧼮 墧 䂿 噼 鮋 嵴 癔 𪐴 麅 䳡 +㟻 愙 𣃚 𤏲 噝 𡊩 垧 𤥣 𩸆 刴 𧂮 㖭 鵼 +籖 鬹 埞 𡝬 屓 擓 𩓐 𦌵 𧅤 蚭 𠴨 𦴢 𤫢 𠵱 凾 +𡼏 嶎 霃 𡷑 麁 遌 笟 鬂 峑 箣 扨 挵 髿 篏 鬪 籾 + 籂 粆 鰕 篼 鬉 鰛 𤤾 齚 啳 寃 俽 麘 俲 剠 +㸆 勑 坧 偖 妷 帒 韈 鶫 轜 呩 鞴 饀 鞺 匬 愰 + 椬 叚 鰊 鴂 䰻 陁 榀 傦 畆 𡝭 駚 剳 酙 隁 +酜 酑 𨺗 捿 𦴣 櫊 嘑 醎 畺 抅 𠏼 獏 籰 𥰡 𣳽 + 𤤙 盖 鮝 个 𠳔 莾 衂 届 槀 坺 刟 巵 从 +氱 𠇲 伹 咜 哚 劚 趂 㗾 㗳 歒 酼 龥 鮗 頮 +颴 骺 麨 麄 煺 笔 毺 蠘 罸 嘠 𪙊 蹷 齓 +跔 蹏 鸜 踁 抂 𨍽 踨 蹵 竓 𤩷 稾 磘 泪 詧 瘇 +𨩚 鼦 泎 蟖 痃 𪊲 硓 咢 贌 狢 獱 謭 猂 瓱 賫 𤪻 +蘯 徺 袠 䒷 𡠻 𦸅 詾 𢔛 惽 癧 髗 鵄 鍮 +鮏 蟵 賷 猬 霡 鮰 㗖 犲 䰇 籑 饊 𦅙 慙 䰄 +麖 慽 坟 慯 抦 戹 㩜 懢 厪 𣏵 捤 栂 㗒 + 嵗 𨯂 迚 𨸹 僙 𡵆 礆 匲 阸 𠼻 䁥 矾 +糂 𥼚 糚 稭 聦 聣 絍 甅 瓲 覔 舚 朌 聢 𧒆 聛 瓰 +脃 眤 覉 𦟌 畓 𦻑 螩 蟎 臈 螌 詉 貭 譃 眫 瓸 蓚 +㘵 榲 趦 覩 涹 蟁 𤀑 瓧 㷛 煶 悤 憜 㳑 +恷 罱 𨬭 惩 䭾 删 㰘 𣳇 𥻗 𧙖 𥔱 𡥄 𡋾 𩤃 +𦷜 𧂭 峁 𦆭 𨨏 𣙷 𠃮 𦡆 𤼎 䕢 嬟 𦍌 齐 麦 𦉫 diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT new file mode 100644 index 0000000..701b01a --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT @@ -0,0 +1,8 @@ +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F diff --git a/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.TXT b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.TXT new file mode 100644 index 0000000..5ee058e --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5-HKSCS-2008.TXT @@ -0,0 +1,18591 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8740 0x43F0 +0x8741 0x4C32 +0x8742 0x4603 +0x8743 0x45A6 +0x8744 0x4578 +0x8745 0x27267 +0x8746 0x4D77 +0x8747 0x45B3 +0x8748 0x27CB1 +0x8749 0x4CE2 +0x874A 0x27CC5 +0x874B 0x3B95 +0x874C 0x4736 +0x874D 0x4744 +0x874E 0x4C47 +0x874F 0x4C40 +0x8750 0x242BF +0x8751 0x23617 +0x8752 0x27352 +0x8753 0x26E8B +0x8754 0x270D2 +0x8755 0x4C57 +0x8756 0x2A351 +0x8757 0x474F +0x8758 0x45DA +0x8759 0x4C85 +0x875A 0x27C6C +0x875B 0x4D07 +0x875C 0x4AA4 +0x875D 0x46A1 +0x875E 0x26B23 +0x875F 0x7225 +0x8760 0x25A54 +0x8761 0x21A63 +0x8762 0x23E06 +0x8763 0x23F61 +0x8764 0x664D +0x8765 0x56FB +0x8767 0x7D95 +0x8768 0x591D +0x8769 0x28BB9 +0x876A 0x3DF4 +0x876B 0x9734 +0x876C 0x27BEF +0x876D 0x5BDB +0x876E 0x21D5E +0x876F 0x5AA4 +0x8770 0x3625 +0x8771 0x29EB0 +0x8772 0x5AD1 +0x8773 0x5BB7 +0x8774 0x5CFC +0x8775 0x676E +0x8776 0x8593 +0x8777 0x29945 +0x8778 0x7461 +0x8779 0x749D +0x877A 0x3875 +0x877B 0x21D53 +0x877C 0x2369E +0x877D 0x26021 +0x877E 0x3EEC +0x87A1 0x258DE +0x87A2 0x3AF5 +0x87A3 0x7AFC +0x87A4 0x9F97 +0x87A5 0x24161 +0x87A6 0x2890D +0x87A7 0x231EA +0x87A8 0x20A8A +0x87A9 0x2325E +0x87AA 0x430A +0x87AB 0x8484 +0x87AC 0x9F96 +0x87AD 0x942F +0x87AE 0x4930 +0x87AF 0x8613 +0x87B0 0x5896 +0x87B1 0x974A +0x87B2 0x9218 +0x87B3 0x79D0 +0x87B4 0x7A32 +0x87B5 0x6660 +0x87B6 0x6A29 +0x87B7 0x889D +0x87B8 0x744C +0x87B9 0x7BC5 +0x87BA 0x6782 +0x87BB 0x7A2C +0x87BC 0x524F +0x87BD 0x9046 +0x87BE 0x34E6 +0x87BF 0x73C4 +0x87C0 0x25DB9 +0x87C1 0x74C6 +0x87C2 0x9FC7 +0x87C3 0x57B3 +0x87C4 0x492F +0x87C5 0x544C +0x87C6 0x4131 +0x87C7 0x2368E +0x87C8 0x5818 +0x87C9 0x7A72 +0x87CA 0x27B65 +0x87CB 0x8B8F +0x87CC 0x46AE +0x87CD 0x26E88 +0x87CE 0x4181 +0x87CF 0x25D99 +0x87D0 0x7BAE +0x87D1 0x224BC +0x87D2 0x9FC8 +0x87D3 0x224C1 +0x87D4 0x224C9 +0x87D5 0x224CC +0x87D6 0x9FC9 +0x87D7 0x8504 +0x87D8 0x235BB +0x87D9 0x40B4 +0x87DA 0x9FCA +0x87DB 0x44E1 +0x87DC 0x2ADFF +0x87DD 0x62C1 +0x87DE 0x706E +0x87DF 0x9FCB +0x8840 0x31C0 +0x8841 0x31C1 +0x8842 0x31C2 +0x8843 0x31C3 +0x8844 0x31C4 +0x8845 0x2010C +0x8846 0x31C5 +0x8847 0x200D1 +0x8848 0x200CD +0x8849 0x31C6 +0x884A 0x31C7 +0x884B 0x200CB +0x884C 0x21FE8 +0x884D 0x31C8 +0x884E 0x200CA +0x884F 0x31C9 +0x8850 0x31CA +0x8851 0x31CB +0x8852 0x31CC +0x8853 0x2010E +0x8854 0x31CD +0x8855 0x31CE +0x8856 0x0100 +0x8857 0x00C1 +0x8858 0x01CD +0x8859 0x00C0 +0x885A 0x0112 +0x885B 0x00C9 +0x885C 0x011A +0x885D 0x00C8 +0x885E 0x014C +0x885F 0x00D3 +0x8860 0x01D1 +0x8861 0x00D2 +0x8862 0x00CA 0x0304 +0x8863 0x1EBE +0x8864 0x00CA 0x030C +0x8865 0x1EC0 +0x8866 0x00CA +0x8867 0x0101 +0x8868 0x00E1 +0x8869 0x01CE +0x886A 0x00E0 +0x886B 0x0251 +0x886C 0x0113 +0x886D 0x00E9 +0x886E 0x011B +0x886F 0x00E8 +0x8870 0x012B +0x8871 0x00ED +0x8872 0x01D0 +0x8873 0x00EC +0x8874 0x014D +0x8875 0x00F3 +0x8876 0x01D2 +0x8877 0x00F2 +0x8878 0x016B +0x8879 0x00FA +0x887A 0x01D4 +0x887B 0x00F9 +0x887C 0x01D6 +0x887D 0x01D8 +0x887E 0x01DA +0x88A1 0x01DC +0x88A2 0x00FC +0x88A3 0x00EA 0x0304 +0x88A4 0x1EBF +0x88A5 0x00EA 0x030C +0x88A6 0x1EC1 +0x88A7 0x00EA +0x88A8 0x0261 +0x88A9 0x23DA +0x88AA 0x23DB +0x8940 0x2A3A9 +0x8941 0x21145 +0x8943 0x650A +0x8946 0x4E3D +0x8947 0x6EDD +0x8948 0x9D4E +0x8949 0x91DF +0x894C 0x27735 +0x894D 0x6491 +0x894E 0x4F1A +0x894F 0x4F28 +0x8950 0x4FA8 +0x8951 0x5156 +0x8952 0x5174 +0x8953 0x519C +0x8954 0x51E4 +0x8955 0x52A1 +0x8956 0x52A8 +0x8957 0x533B +0x8958 0x534E +0x8959 0x53D1 +0x895A 0x53D8 +0x895B 0x56E2 +0x895C 0x58F0 +0x895D 0x5904 +0x895E 0x5907 +0x895F 0x5932 +0x8960 0x5934 +0x8961 0x5B66 +0x8962 0x5B9E +0x8963 0x5B9F +0x8964 0x5C9A +0x8965 0x5E86 +0x8966 0x603B +0x8967 0x6589 +0x8968 0x67FE +0x8969 0x6804 +0x896A 0x6865 +0x896B 0x6D4E +0x896C 0x70BC +0x896D 0x7535 +0x896E 0x7EA4 +0x896F 0x7EAC +0x8970 0x7EBA +0x8971 0x7EC7 +0x8972 0x7ECF +0x8973 0x7EDF +0x8974 0x7F06 +0x8975 0x7F37 +0x8976 0x827A +0x8977 0x82CF +0x8978 0x836F +0x8979 0x89C6 +0x897A 0x8BBE +0x897B 0x8BE2 +0x897C 0x8F66 +0x897D 0x8F67 +0x897E 0x8F6E +0x89A1 0x7411 +0x89A2 0x7CFC +0x89A3 0x7DCD +0x89A4 0x6946 +0x89A5 0x7AC9 +0x89A6 0x5227 +0x89AB 0x918C +0x89AC 0x78B8 +0x89AD 0x915E +0x89AE 0x80BC +0x89B0 0x8D0B +0x89B1 0x80F6 +0x89B2 0x209E7 +0x89B5 0x809F +0x89B6 0x9EC7 +0x89B7 0x4CCD +0x89B8 0x9DC9 +0x89B9 0x9E0C +0x89BA 0x4C3E +0x89BB 0x29DF6 +0x89BC 0x2700E +0x89BD 0x9E0A +0x89BE 0x2A133 +0x89BF 0x35C1 +0x89C1 0x6E9A +0x89C2 0x823E +0x89C3 0x7519 +0x89C5 0x4911 +0x89C6 0x9A6C +0x89C7 0x9A8F +0x89C8 0x9F99 +0x89C9 0x7987 +0x89CA 0x2846C +0x89CB 0x21DCA +0x89CC 0x205D0 +0x89CD 0x22AE6 +0x89CE 0x4E24 +0x89CF 0x4E81 +0x89D0 0x4E80 +0x89D1 0x4E87 +0x89D2 0x4EBF +0x89D3 0x4EEB +0x89D4 0x4F37 +0x89D5 0x344C +0x89D6 0x4FBD +0x89D7 0x3E48 +0x89D8 0x5003 +0x89D9 0x5088 +0x89DA 0x347D +0x89DB 0x3493 +0x89DC 0x34A5 +0x89DD 0x5186 +0x89DE 0x5905 +0x89DF 0x51DB +0x89E0 0x51FC +0x89E1 0x5205 +0x89E2 0x4E89 +0x89E3 0x5279 +0x89E4 0x5290 +0x89E5 0x5327 +0x89E6 0x35C7 +0x89E7 0x53A9 +0x89E8 0x3551 +0x89E9 0x53B0 +0x89EA 0x3553 +0x89EB 0x53C2 +0x89EC 0x5423 +0x89ED 0x356D +0x89EE 0x3572 +0x89EF 0x3681 +0x89F0 0x5493 +0x89F1 0x54A3 +0x89F2 0x54B4 +0x89F3 0x54B9 +0x89F4 0x54D0 +0x89F5 0x54EF +0x89F6 0x5518 +0x89F7 0x5523 +0x89F8 0x5528 +0x89F9 0x3598 +0x89FA 0x553F +0x89FB 0x35A5 +0x89FC 0x35BF +0x89FD 0x55D7 +0x89FE 0x35C5 +0x8A40 0x27D84 +0x8A41 0x5525 +0x8A43 0x20C42 +0x8A44 0x20D15 +0x8A45 0x2512B +0x8A46 0x5590 +0x8A47 0x22CC6 +0x8A48 0x39EC +0x8A49 0x20341 +0x8A4A 0x8E46 +0x8A4B 0x24DB8 +0x8A4C 0x294E5 +0x8A4D 0x4053 +0x8A4E 0x280BE +0x8A4F 0x777A +0x8A50 0x22C38 +0x8A51 0x3A34 +0x8A52 0x47D5 +0x8A53 0x2815D +0x8A54 0x269F2 +0x8A55 0x24DEA +0x8A56 0x64DD +0x8A57 0x20D7C +0x8A58 0x20FB4 +0x8A59 0x20CD5 +0x8A5A 0x210F4 +0x8A5B 0x648D +0x8A5C 0x8E7E +0x8A5D 0x20E96 +0x8A5E 0x20C0B +0x8A5F 0x20F64 +0x8A60 0x22CA9 +0x8A61 0x28256 +0x8A62 0x244D3 +0x8A64 0x20D46 +0x8A65 0x29A4D +0x8A66 0x280E9 +0x8A67 0x47F4 +0x8A68 0x24EA7 +0x8A69 0x22CC2 +0x8A6A 0x9AB2 +0x8A6B 0x3A67 +0x8A6C 0x295F4 +0x8A6D 0x3FED +0x8A6E 0x3506 +0x8A6F 0x252C7 +0x8A70 0x297D4 +0x8A71 0x278C8 +0x8A72 0x22D44 +0x8A73 0x9D6E +0x8A74 0x9815 +0x8A76 0x43D9 +0x8A77 0x260A5 +0x8A78 0x64B4 +0x8A79 0x54E3 +0x8A7A 0x22D4C +0x8A7B 0x22BCA +0x8A7C 0x21077 +0x8A7D 0x39FB +0x8A7E 0x2106F +0x8AA1 0x266DA +0x8AA2 0x26716 +0x8AA3 0x279A0 +0x8AA4 0x64EA +0x8AA5 0x25052 +0x8AA6 0x20C43 +0x8AA7 0x8E68 +0x8AA8 0x221A1 +0x8AA9 0x28B4C +0x8AAA 0x20731 +0x8AAC 0x480B +0x8AAD 0x201A9 +0x8AAE 0x3FFA +0x8AAF 0x5873 +0x8AB0 0x22D8D +0x8AB2 0x245C8 +0x8AB3 0x204FC +0x8AB4 0x26097 +0x8AB5 0x20F4C +0x8AB6 0x20D96 +0x8AB7 0x5579 +0x8AB8 0x40BB +0x8AB9 0x43BA +0x8ABB 0x4AB4 +0x8ABC 0x22A66 +0x8ABD 0x2109D +0x8ABE 0x81AA +0x8ABF 0x98F5 +0x8AC0 0x20D9C +0x8AC1 0x6379 +0x8AC2 0x39FE +0x8AC3 0x22775 +0x8AC4 0x8DC0 +0x8AC5 0x56A1 +0x8AC6 0x647C +0x8AC7 0x3E43 +0x8AC9 0x2A601 +0x8ACA 0x20E09 +0x8ACB 0x22ACF +0x8ACC 0x22CC9 +0x8ACE 0x210C8 +0x8ACF 0x239C2 +0x8AD0 0x3992 +0x8AD1 0x3A06 +0x8AD2 0x2829B +0x8AD3 0x3578 +0x8AD4 0x25E49 +0x8AD5 0x220C7 +0x8AD6 0x5652 +0x8AD7 0x20F31 +0x8AD8 0x22CB2 +0x8AD9 0x29720 +0x8ADA 0x34BC +0x8ADB 0x6C3D +0x8ADC 0x24E3B +0x8ADF 0x27574 +0x8AE0 0x22E8B +0x8AE1 0x22208 +0x8AE2 0x2A65B +0x8AE3 0x28CCD +0x8AE4 0x20E7A +0x8AE5 0x20C34 +0x8AE6 0x2681C +0x8AE7 0x7F93 +0x8AE8 0x210CF +0x8AE9 0x22803 +0x8AEA 0x22939 +0x8AEB 0x35FB +0x8AEC 0x251E3 +0x8AED 0x20E8C +0x8AEE 0x20F8D +0x8AEF 0x20EAA +0x8AF0 0x3F93 +0x8AF1 0x20F30 +0x8AF2 0x20D47 +0x8AF3 0x2114F +0x8AF4 0x20E4C +0x8AF6 0x20EAB +0x8AF7 0x20BA9 +0x8AF8 0x20D48 +0x8AF9 0x210C0 +0x8AFA 0x2113D +0x8AFB 0x3FF9 +0x8AFC 0x22696 +0x8AFD 0x6432 +0x8AFE 0x20FAD +0x8B40 0x233F4 +0x8B41 0x27639 +0x8B42 0x22BCE +0x8B43 0x20D7E +0x8B44 0x20D7F +0x8B45 0x22C51 +0x8B46 0x22C55 +0x8B47 0x3A18 +0x8B48 0x20E98 +0x8B49 0x210C7 +0x8B4A 0x20F2E +0x8B4B 0x2A632 +0x8B4C 0x26B50 +0x8B4D 0x28CD2 +0x8B4E 0x28D99 +0x8B4F 0x28CCA +0x8B50 0x95AA +0x8B51 0x54CC +0x8B52 0x82C4 +0x8B53 0x55B9 +0x8B55 0x29EC3 +0x8B56 0x9C26 +0x8B57 0x9AB6 +0x8B58 0x2775E +0x8B59 0x22DEE +0x8B5A 0x7140 +0x8B5B 0x816D +0x8B5C 0x80EC +0x8B5D 0x5C1C +0x8B5E 0x26572 +0x8B5F 0x8134 +0x8B60 0x3797 +0x8B61 0x535F +0x8B62 0x280BD +0x8B63 0x91B6 +0x8B64 0x20EFA +0x8B65 0x20E0F +0x8B66 0x20E77 +0x8B67 0x20EFB +0x8B68 0x35DD +0x8B69 0x24DEB +0x8B6A 0x3609 +0x8B6B 0x20CD6 +0x8B6C 0x56AF +0x8B6D 0x227B5 +0x8B6E 0x210C9 +0x8B6F 0x20E10 +0x8B70 0x20E78 +0x8B71 0x21078 +0x8B72 0x21148 +0x8B73 0x28207 +0x8B74 0x21455 +0x8B75 0x20E79 +0x8B76 0x24E50 +0x8B77 0x22DA4 +0x8B78 0x5A54 +0x8B79 0x2101D +0x8B7A 0x2101E +0x8B7B 0x210F5 +0x8B7C 0x210F6 +0x8B7D 0x579C +0x8B7E 0x20E11 +0x8BA1 0x27694 +0x8BA2 0x282CD +0x8BA3 0x20FB5 +0x8BA4 0x20E7B +0x8BA5 0x2517E +0x8BA6 0x3703 +0x8BA7 0x20FB6 +0x8BA8 0x21180 +0x8BA9 0x252D8 +0x8BAA 0x2A2BD +0x8BAB 0x249DA +0x8BAC 0x2183A +0x8BAD 0x24177 +0x8BAE 0x2827C +0x8BAF 0x5899 +0x8BB0 0x5268 +0x8BB1 0x361A +0x8BB2 0x2573D +0x8BB3 0x7BB2 +0x8BB4 0x5B68 +0x8BB5 0x4800 +0x8BB6 0x4B2C +0x8BB7 0x9F27 +0x8BB8 0x49E7 +0x8BB9 0x9C1F +0x8BBA 0x9B8D +0x8BBB 0x25B74 +0x8BBC 0x2313D +0x8BBD 0x55FB +0x8BBE 0x35F2 +0x8BBF 0x5689 +0x8BC0 0x4E28 +0x8BC1 0x5902 +0x8BC2 0x21BC1 +0x8BC3 0x2F878 +0x8BC4 0x9751 +0x8BC5 0x20086 +0x8BC6 0x4E5B +0x8BC7 0x4EBB +0x8BC8 0x353E +0x8BC9 0x5C23 +0x8BCA 0x5F51 +0x8BCB 0x5FC4 +0x8BCC 0x38FA +0x8BCD 0x624C +0x8BCE 0x6535 +0x8BCF 0x6B7A +0x8BD0 0x6C35 +0x8BD1 0x6C3A +0x8BD2 0x706C +0x8BD3 0x722B +0x8BD4 0x4E2C +0x8BD5 0x72AD +0x8BD6 0x248E9 +0x8BD7 0x7F52 +0x8BD8 0x793B +0x8BD9 0x7CF9 +0x8BDA 0x7F53 +0x8BDB 0x2626A +0x8BDC 0x34C1 +0x8BDE 0x2634B +0x8BDF 0x8002 +0x8BE0 0x8080 +0x8BE1 0x26612 +0x8BE2 0x26951 +0x8BE3 0x535D +0x8BE4 0x8864 +0x8BE5 0x89C1 +0x8BE6 0x278B2 +0x8BE7 0x8BA0 +0x8BE8 0x8D1D +0x8BE9 0x9485 +0x8BEA 0x9578 +0x8BEB 0x957F +0x8BEC 0x95E8 +0x8BED 0x28E0F +0x8BEE 0x97E6 +0x8BEF 0x9875 +0x8BF0 0x98CE +0x8BF1 0x98DE +0x8BF2 0x9963 +0x8BF3 0x29810 +0x8BF4 0x9C7C +0x8BF5 0x9E1F +0x8BF6 0x9EC4 +0x8BF7 0x6B6F +0x8BF8 0xF907 +0x8BF9 0x4E37 +0x8BFA 0x20087 +0x8BFB 0x961D +0x8BFC 0x6237 +0x8BFD 0x94A2 +0x8C40 0x503B +0x8C41 0x6DFE +0x8C42 0x29C73 +0x8C43 0x9FA6 +0x8C44 0x3DC9 +0x8C45 0x888F +0x8C46 0x2414E +0x8C47 0x7077 +0x8C48 0x5CF5 +0x8C49 0x4B20 +0x8C4A 0x251CD +0x8C4B 0x3559 +0x8C4C 0x25D30 +0x8C4D 0x6122 +0x8C4E 0x28A32 +0x8C4F 0x8FA7 +0x8C50 0x91F6 +0x8C51 0x7191 +0x8C52 0x6719 +0x8C53 0x73BA +0x8C54 0x23281 +0x8C55 0x2A107 +0x8C56 0x3C8B +0x8C57 0x21980 +0x8C58 0x4B10 +0x8C59 0x78E4 +0x8C5A 0x7402 +0x8C5B 0x51AE +0x8C5C 0x2870F +0x8C5D 0x4009 +0x8C5E 0x6A63 +0x8C5F 0x2A2BA +0x8C60 0x4223 +0x8C61 0x860F +0x8C62 0x20A6F +0x8C63 0x7A2A +0x8C64 0x29947 +0x8C65 0x28AEA +0x8C66 0x9755 +0x8C67 0x704D +0x8C68 0x5324 +0x8C69 0x2207E +0x8C6A 0x93F4 +0x8C6B 0x76D9 +0x8C6C 0x289E3 +0x8C6D 0x9FA7 +0x8C6E 0x77DD +0x8C6F 0x4EA3 +0x8C70 0x4FF0 +0x8C71 0x50BC +0x8C72 0x4E2F +0x8C73 0x4F17 +0x8C74 0x9FA8 +0x8C75 0x5434 +0x8C76 0x7D8B +0x8C77 0x5892 +0x8C78 0x58D0 +0x8C79 0x21DB6 +0x8C7A 0x5E92 +0x8C7B 0x5E99 +0x8C7C 0x5FC2 +0x8C7D 0x22712 +0x8C7E 0x658B +0x8CA1 0x233F9 +0x8CA2 0x6919 +0x8CA3 0x6A43 +0x8CA4 0x23C63 +0x8CA5 0x6CFF +0x8CA7 0x7200 +0x8CA8 0x24505 +0x8CA9 0x738C +0x8CAA 0x3EDB +0x8CAB 0x24A13 +0x8CAC 0x5B15 +0x8CAD 0x74B9 +0x8CAE 0x8B83 +0x8CAF 0x25CA4 +0x8CB0 0x25695 +0x8CB1 0x7A93 +0x8CB2 0x7BEC +0x8CB3 0x7CC3 +0x8CB4 0x7E6C +0x8CB5 0x82F8 +0x8CB6 0x8597 +0x8CB7 0x9FA9 +0x8CB8 0x8890 +0x8CB9 0x9FAA +0x8CBA 0x8EB9 +0x8CBB 0x9FAB +0x8CBC 0x8FCF +0x8CBD 0x855F +0x8CBE 0x99E0 +0x8CBF 0x9221 +0x8CC0 0x9FAC +0x8CC1 0x28DB9 +0x8CC2 0x2143F +0x8CC3 0x4071 +0x8CC4 0x42A2 +0x8CC5 0x5A1A +0x8CC9 0x9868 +0x8CCA 0x676B +0x8CCB 0x4276 +0x8CCC 0x573D +0x8CCE 0x85D6 +0x8CCF 0x2497B +0x8CD0 0x82BF +0x8CD1 0x2710D +0x8CD2 0x4C81 +0x8CD3 0x26D74 +0x8CD4 0x5D7B +0x8CD5 0x26B15 +0x8CD6 0x26FBE +0x8CD7 0x9FAD +0x8CD8 0x9FAE +0x8CD9 0x5B96 +0x8CDA 0x9FAF +0x8CDB 0x66E7 +0x8CDC 0x7E5B +0x8CDD 0x6E57 +0x8CDE 0x79CA +0x8CDF 0x3D88 +0x8CE0 0x44C3 +0x8CE1 0x23256 +0x8CE2 0x22796 +0x8CE3 0x439A +0x8CE4 0x4536 +0x8CE6 0x5CD5 +0x8CE7 0x23B1A +0x8CE8 0x8AF9 +0x8CE9 0x5C78 +0x8CEA 0x3D12 +0x8CEB 0x23551 +0x8CEC 0x5D78 +0x8CED 0x9FB2 +0x8CEE 0x7157 +0x8CEF 0x4558 +0x8CF0 0x240EC +0x8CF1 0x21E23 +0x8CF2 0x4C77 +0x8CF3 0x3978 +0x8CF4 0x344A +0x8CF5 0x201A4 +0x8CF6 0x26C41 +0x8CF7 0x8ACC +0x8CF8 0x4FB4 +0x8CF9 0x20239 +0x8CFA 0x59BF +0x8CFB 0x816C +0x8CFC 0x9856 +0x8CFD 0x298FA +0x8CFE 0x5F3B +0x8D40 0x20B9F +0x8D42 0x221C1 +0x8D43 0x2896D +0x8D44 0x4102 +0x8D45 0x46BB +0x8D46 0x29079 +0x8D47 0x3F07 +0x8D48 0x9FB3 +0x8D49 0x2A1B5 +0x8D4A 0x40F8 +0x8D4B 0x37D6 +0x8D4C 0x46F7 +0x8D4D 0x26C46 +0x8D4E 0x417C +0x8D4F 0x286B2 +0x8D50 0x273FF +0x8D51 0x456D +0x8D52 0x38D4 +0x8D53 0x2549A +0x8D54 0x4561 +0x8D55 0x451B +0x8D56 0x4D89 +0x8D57 0x4C7B +0x8D58 0x4D76 +0x8D59 0x45EA +0x8D5A 0x3FC8 +0x8D5B 0x24B0F +0x8D5C 0x3661 +0x8D5D 0x44DE +0x8D5E 0x44BD +0x8D5F 0x41ED +0x8D60 0x5D3E +0x8D61 0x5D48 +0x8D62 0x5D56 +0x8D63 0x3DFC +0x8D64 0x380F +0x8D65 0x5DA4 +0x8D66 0x5DB9 +0x8D67 0x3820 +0x8D68 0x3838 +0x8D69 0x5E42 +0x8D6A 0x5EBD +0x8D6B 0x5F25 +0x8D6C 0x5F83 +0x8D6D 0x3908 +0x8D6E 0x3914 +0x8D6F 0x393F +0x8D70 0x394D +0x8D71 0x60D7 +0x8D72 0x613D +0x8D73 0x5CE5 +0x8D74 0x3989 +0x8D75 0x61B7 +0x8D76 0x61B9 +0x8D77 0x61CF +0x8D78 0x39B8 +0x8D79 0x622C +0x8D7A 0x6290 +0x8D7B 0x62E5 +0x8D7C 0x6318 +0x8D7D 0x39F8 +0x8D7E 0x56B1 +0x8DA1 0x3A03 +0x8DA2 0x63E2 +0x8DA3 0x63FB +0x8DA4 0x6407 +0x8DA5 0x645A +0x8DA6 0x3A4B +0x8DA7 0x64C0 +0x8DA8 0x5D15 +0x8DA9 0x5621 +0x8DAA 0x9F9F +0x8DAB 0x3A97 +0x8DAC 0x6586 +0x8DAD 0x3ABD +0x8DAE 0x65FF +0x8DAF 0x6653 +0x8DB0 0x3AF2 +0x8DB1 0x6692 +0x8DB2 0x3B22 +0x8DB3 0x6716 +0x8DB4 0x3B42 +0x8DB5 0x67A4 +0x8DB6 0x6800 +0x8DB7 0x3B58 +0x8DB8 0x684A +0x8DB9 0x6884 +0x8DBA 0x3B72 +0x8DBB 0x3B71 +0x8DBC 0x3B7B +0x8DBD 0x6909 +0x8DBE 0x6943 +0x8DBF 0x725C +0x8DC0 0x6964 +0x8DC1 0x699F +0x8DC2 0x6985 +0x8DC3 0x3BBC +0x8DC4 0x69D6 +0x8DC5 0x3BDD +0x8DC6 0x6A65 +0x8DC7 0x6A74 +0x8DC8 0x6A71 +0x8DC9 0x6A82 +0x8DCA 0x3BEC +0x8DCB 0x6A99 +0x8DCC 0x3BF2 +0x8DCD 0x6AAB +0x8DCE 0x6AB5 +0x8DCF 0x6AD4 +0x8DD0 0x6AF6 +0x8DD1 0x6B81 +0x8DD2 0x6BC1 +0x8DD3 0x6BEA +0x8DD4 0x6C75 +0x8DD5 0x6CAA +0x8DD6 0x3CCB +0x8DD7 0x6D02 +0x8DD8 0x6D06 +0x8DD9 0x6D26 +0x8DDA 0x6D81 +0x8DDB 0x3CEF +0x8DDC 0x6DA4 +0x8DDD 0x6DB1 +0x8DDE 0x6E15 +0x8DDF 0x6E18 +0x8DE0 0x6E29 +0x8DE1 0x6E86 +0x8DE2 0x289C0 +0x8DE3 0x6EBB +0x8DE4 0x6EE2 +0x8DE5 0x6EDA +0x8DE6 0x9F7F +0x8DE7 0x6EE8 +0x8DE8 0x6EE9 +0x8DE9 0x6F24 +0x8DEA 0x6F34 +0x8DEB 0x3D46 +0x8DEC 0x23F41 +0x8DED 0x6F81 +0x8DEE 0x6FBE +0x8DEF 0x3D6A +0x8DF0 0x3D75 +0x8DF1 0x71B7 +0x8DF2 0x5C99 +0x8DF3 0x3D8A +0x8DF4 0x702C +0x8DF5 0x3D91 +0x8DF6 0x7050 +0x8DF7 0x7054 +0x8DF8 0x706F +0x8DF9 0x707F +0x8DFA 0x7089 +0x8DFB 0x20325 +0x8DFC 0x43C1 +0x8DFD 0x35F1 +0x8DFE 0x20ED8 +0x8E40 0x23ED7 +0x8E41 0x57BE +0x8E42 0x26ED3 +0x8E43 0x713E +0x8E44 0x257E0 +0x8E45 0x364E +0x8E46 0x69A2 +0x8E47 0x28BE9 +0x8E48 0x5B74 +0x8E49 0x7A49 +0x8E4A 0x258E1 +0x8E4B 0x294D9 +0x8E4C 0x7A65 +0x8E4D 0x7A7D +0x8E4E 0x259AC +0x8E4F 0x7ABB +0x8E50 0x7AB0 +0x8E51 0x7AC2 +0x8E52 0x7AC3 +0x8E53 0x71D1 +0x8E54 0x2648D +0x8E55 0x41CA +0x8E56 0x7ADA +0x8E57 0x7ADD +0x8E58 0x7AEA +0x8E59 0x41EF +0x8E5A 0x54B2 +0x8E5B 0x25C01 +0x8E5C 0x7B0B +0x8E5D 0x7B55 +0x8E5E 0x7B29 +0x8E5F 0x2530E +0x8E60 0x25CFE +0x8E61 0x7BA2 +0x8E62 0x7B6F +0x8E63 0x839C +0x8E64 0x25BB4 +0x8E65 0x26C7F +0x8E66 0x7BD0 +0x8E67 0x8421 +0x8E68 0x7B92 +0x8E6A 0x25D20 +0x8E6B 0x3DAD +0x8E6C 0x25C65 +0x8E6D 0x8492 +0x8E6E 0x7BFA +0x8E70 0x7C35 +0x8E71 0x25CC1 +0x8E72 0x7C44 +0x8E73 0x7C83 +0x8E74 0x24882 +0x8E75 0x7CA6 +0x8E76 0x667D +0x8E77 0x24578 +0x8E78 0x7CC9 +0x8E79 0x7CC7 +0x8E7A 0x7CE6 +0x8E7B 0x7C74 +0x8E7C 0x7CF3 +0x8E7D 0x7CF5 +0x8EA1 0x7E67 +0x8EA2 0x451D +0x8EA3 0x26E44 +0x8EA4 0x7D5D +0x8EA5 0x26ED6 +0x8EA6 0x748D +0x8EA7 0x7D89 +0x8EA8 0x7DAB +0x8EA9 0x7135 +0x8EAA 0x7DB3 +0x8EAC 0x24057 +0x8EAD 0x26029 +0x8EAE 0x7DE4 +0x8EAF 0x3D13 +0x8EB0 0x7DF5 +0x8EB1 0x217F9 +0x8EB2 0x7DE5 +0x8EB3 0x2836D +0x8EB5 0x26121 +0x8EB6 0x2615A +0x8EB7 0x7E6E +0x8EB8 0x7E92 +0x8EB9 0x432B +0x8EBA 0x946C +0x8EBB 0x7E27 +0x8EBC 0x7F40 +0x8EBD 0x7F41 +0x8EBE 0x7F47 +0x8EBF 0x7936 +0x8EC0 0x262D0 +0x8EC1 0x99E1 +0x8EC2 0x7F97 +0x8EC3 0x26351 +0x8EC4 0x7FA3 +0x8EC5 0x21661 +0x8EC6 0x20068 +0x8EC7 0x455C +0x8EC8 0x23766 +0x8EC9 0x4503 +0x8ECA 0x2833A +0x8ECB 0x7FFA +0x8ECC 0x26489 +0x8ECE 0x8008 +0x8ECF 0x801D +0x8ED1 0x802F +0x8ED2 0x2A087 +0x8ED3 0x26CC3 +0x8ED4 0x803B +0x8ED5 0x803C +0x8ED6 0x8061 +0x8ED7 0x22714 +0x8ED8 0x4989 +0x8ED9 0x26626 +0x8EDA 0x23DE3 +0x8EDB 0x266E8 +0x8EDC 0x6725 +0x8EDD 0x80A7 +0x8EDE 0x28A48 +0x8EDF 0x8107 +0x8EE0 0x811A +0x8EE1 0x58B0 +0x8EE2 0x226F6 +0x8EE3 0x6C7F +0x8EE4 0x26498 +0x8EE5 0x24FB8 +0x8EE6 0x64E7 +0x8EE7 0x2148A +0x8EE8 0x8218 +0x8EE9 0x2185E +0x8EEA 0x6A53 +0x8EEB 0x24A65 +0x8EEC 0x24A95 +0x8EED 0x447A +0x8EEE 0x8229 +0x8EEF 0x20B0D +0x8EF0 0x26A52 +0x8EF1 0x23D7E +0x8EF2 0x4FF9 +0x8EF3 0x214FD +0x8EF4 0x84E2 +0x8EF5 0x8362 +0x8EF6 0x26B0A +0x8EF7 0x249A7 +0x8EF8 0x23530 +0x8EF9 0x21773 +0x8EFA 0x23DF8 +0x8EFB 0x82AA +0x8EFC 0x691B +0x8EFD 0x2F994 +0x8EFE 0x41DB +0x8F40 0x854B +0x8F41 0x82D0 +0x8F42 0x831A +0x8F43 0x20E16 +0x8F44 0x217B4 +0x8F45 0x36C1 +0x8F46 0x2317D +0x8F47 0x2355A +0x8F48 0x827B +0x8F49 0x82E2 +0x8F4A 0x8318 +0x8F4B 0x23E8B +0x8F4C 0x26DA3 +0x8F4D 0x26B05 +0x8F4E 0x26B97 +0x8F4F 0x235CE +0x8F50 0x3DBF +0x8F51 0x831D +0x8F52 0x55EC +0x8F53 0x8385 +0x8F54 0x450B +0x8F55 0x26DA5 +0x8F56 0x83AC +0x8F58 0x83D3 +0x8F59 0x347E +0x8F5A 0x26ED4 +0x8F5B 0x6A57 +0x8F5C 0x855A +0x8F5D 0x3496 +0x8F5E 0x26E42 +0x8F5F 0x22EEF +0x8F60 0x8458 +0x8F61 0x25BE4 +0x8F62 0x8471 +0x8F63 0x3DD3 +0x8F64 0x44E4 +0x8F65 0x6AA7 +0x8F66 0x844A +0x8F67 0x23CB5 +0x8F68 0x7958 +0x8F6A 0x26B96 +0x8F6B 0x26E77 +0x8F6C 0x26E43 +0x8F6D 0x84DE +0x8F6F 0x8391 +0x8F70 0x44A0 +0x8F71 0x8493 +0x8F72 0x84E4 +0x8F73 0x25C91 +0x8F74 0x4240 +0x8F75 0x25CC0 +0x8F76 0x4543 +0x8F77 0x8534 +0x8F78 0x5AF2 +0x8F79 0x26E99 +0x8F7A 0x4527 +0x8F7B 0x8573 +0x8F7C 0x4516 +0x8F7D 0x67BF +0x8F7E 0x8616 +0x8FA1 0x28625 +0x8FA2 0x2863B +0x8FA3 0x85C1 +0x8FA4 0x27088 +0x8FA5 0x8602 +0x8FA6 0x21582 +0x8FA7 0x270CD +0x8FA8 0x2F9B2 +0x8FA9 0x456A +0x8FAA 0x8628 +0x8FAB 0x3648 +0x8FAC 0x218A2 +0x8FAD 0x53F7 +0x8FAE 0x2739A +0x8FAF 0x867E +0x8FB0 0x8771 +0x8FB1 0x2A0F8 +0x8FB2 0x87EE +0x8FB3 0x22C27 +0x8FB4 0x87B1 +0x8FB5 0x87DA +0x8FB6 0x880F +0x8FB7 0x5661 +0x8FB8 0x866C +0x8FB9 0x6856 +0x8FBA 0x460F +0x8FBB 0x8845 +0x8FBC 0x8846 +0x8FBD 0x275E0 +0x8FBE 0x23DB9 +0x8FBF 0x275E4 +0x8FC0 0x885E +0x8FC1 0x889C +0x8FC2 0x465B +0x8FC3 0x88B4 +0x8FC4 0x88B5 +0x8FC5 0x63C1 +0x8FC6 0x88C5 +0x8FC7 0x7777 +0x8FC8 0x2770F +0x8FC9 0x8987 +0x8FCA 0x898A +0x8FCD 0x89A7 +0x8FCE 0x89BC +0x8FCF 0x28A25 +0x8FD0 0x89E7 +0x8FD1 0x27924 +0x8FD2 0x27ABD +0x8FD3 0x8A9C +0x8FD4 0x7793 +0x8FD5 0x91FE +0x8FD6 0x8A90 +0x8FD7 0x27A59 +0x8FD8 0x7AE9 +0x8FD9 0x27B3A +0x8FDA 0x23F8F +0x8FDB 0x4713 +0x8FDC 0x27B38 +0x8FDD 0x717C +0x8FDE 0x8B0C +0x8FDF 0x8B1F +0x8FE0 0x25430 +0x8FE1 0x25565 +0x8FE2 0x8B3F +0x8FE3 0x8B4C +0x8FE4 0x8B4D +0x8FE5 0x8AA9 +0x8FE6 0x24A7A +0x8FE7 0x8B90 +0x8FE8 0x8B9B +0x8FE9 0x8AAF +0x8FEA 0x216DF +0x8FEB 0x4615 +0x8FEC 0x884F +0x8FED 0x8C9B +0x8FEE 0x27D54 +0x8FEF 0x27D8F +0x8FF0 0x2F9D4 +0x8FF1 0x3725 +0x8FF2 0x27D53 +0x8FF3 0x8CD6 +0x8FF4 0x27D98 +0x8FF5 0x27DBD +0x8FF6 0x8D12 +0x8FF7 0x8D03 +0x8FF8 0x21910 +0x8FF9 0x8CDB +0x8FFA 0x705C +0x8FFB 0x8D11 +0x8FFC 0x24CC9 +0x8FFD 0x3ED0 +0x9040 0x8DA9 +0x9041 0x28002 +0x9042 0x21014 +0x9043 0x2498A +0x9044 0x3B7C +0x9045 0x281BC +0x9046 0x2710C +0x9047 0x7AE7 +0x9048 0x8EAD +0x9049 0x8EB6 +0x904A 0x8EC3 +0x904B 0x92D4 +0x904C 0x8F19 +0x904D 0x8F2D +0x904E 0x28365 +0x904F 0x28412 +0x9050 0x8FA5 +0x9051 0x9303 +0x9052 0x2A29F +0x9053 0x20A50 +0x9054 0x8FB3 +0x9055 0x492A +0x9056 0x289DE +0x9057 0x2853D +0x9058 0x23DBB +0x9059 0x5EF8 +0x905A 0x23262 +0x905B 0x8FF9 +0x905C 0x2A014 +0x905D 0x286BC +0x905E 0x28501 +0x905F 0x22325 +0x9060 0x3980 +0x9061 0x26ED7 +0x9062 0x9037 +0x9063 0x2853C +0x9064 0x27ABE +0x9065 0x9061 +0x9066 0x2856C +0x9067 0x2860B +0x9068 0x90A8 +0x9069 0x28713 +0x906A 0x90C4 +0x906B 0x286E6 +0x906C 0x90AE +0x906E 0x9167 +0x906F 0x3AF0 +0x9070 0x91A9 +0x9071 0x91C4 +0x9072 0x7CAC +0x9073 0x28933 +0x9074 0x21E89 +0x9075 0x920E +0x9076 0x6C9F +0x9077 0x9241 +0x9078 0x9262 +0x9079 0x255B9 +0x907B 0x28AC6 +0x907C 0x23C9B +0x907D 0x28B0C +0x907E 0x255DB +0x90A1 0x20D31 +0x90A2 0x932C +0x90A3 0x936B +0x90A4 0x28AE1 +0x90A5 0x28BEB +0x90A6 0x708F +0x90A7 0x5AC3 +0x90A8 0x28AE2 +0x90A9 0x28AE5 +0x90AA 0x4965 +0x90AB 0x9244 +0x90AC 0x28BEC +0x90AD 0x28C39 +0x90AE 0x28BFF +0x90AF 0x9373 +0x90B0 0x945B +0x90B1 0x8EBC +0x90B2 0x9585 +0x90B3 0x95A6 +0x90B4 0x9426 +0x90B5 0x95A0 +0x90B6 0x6FF6 +0x90B7 0x42B9 +0x90B8 0x2267A +0x90B9 0x286D8 +0x90BA 0x2127C +0x90BB 0x23E2E +0x90BC 0x49DF +0x90BD 0x6C1C +0x90BE 0x967B +0x90BF 0x9696 +0x90C0 0x416C +0x90C1 0x96A3 +0x90C2 0x26ED5 +0x90C3 0x61DA +0x90C4 0x96B6 +0x90C5 0x78F5 +0x90C6 0x28AE0 +0x90C7 0x96BD +0x90C8 0x53CC +0x90C9 0x49A1 +0x90CA 0x26CB8 +0x90CB 0x20274 +0x90CC 0x26410 +0x90CD 0x290AF +0x90CE 0x290E5 +0x90CF 0x24AD1 +0x90D0 0x21915 +0x90D1 0x2330A +0x90D2 0x9731 +0x90D3 0x8642 +0x90D4 0x9736 +0x90D5 0x4A0F +0x90D6 0x453D +0x90D7 0x4585 +0x90D8 0x24AE9 +0x90D9 0x7075 +0x90DA 0x5B41 +0x90DB 0x971B +0x90DD 0x291D5 +0x90DE 0x9757 +0x90DF 0x5B4A +0x90E0 0x291EB +0x90E1 0x975F +0x90E2 0x9425 +0x90E3 0x50D0 +0x90E4 0x230B7 +0x90E5 0x230BC +0x90E6 0x9789 +0x90E7 0x979F +0x90E8 0x97B1 +0x90E9 0x97BE +0x90EA 0x97C0 +0x90EB 0x97D2 +0x90EC 0x97E0 +0x90ED 0x2546C +0x90EE 0x97EE +0x90EF 0x741C +0x90F0 0x29433 +0x90F2 0x97F5 +0x90F3 0x2941D +0x90F4 0x2797A +0x90F5 0x4AD1 +0x90F6 0x9834 +0x90F7 0x9833 +0x90F8 0x984B +0x90F9 0x9866 +0x90FA 0x3B0E +0x90FB 0x27175 +0x90FC 0x3D51 +0x90FD 0x20630 +0x90FE 0x2415C +0x9140 0x25706 +0x9141 0x98CA +0x9142 0x98B7 +0x9143 0x98C8 +0x9144 0x98C7 +0x9145 0x4AFF +0x9146 0x26D27 +0x9147 0x216D3 +0x9148 0x55B0 +0x9149 0x98E1 +0x914A 0x98E6 +0x914B 0x98EC +0x914C 0x9378 +0x914D 0x9939 +0x914E 0x24A29 +0x914F 0x4B72 +0x9150 0x29857 +0x9151 0x29905 +0x9152 0x99F5 +0x9153 0x9A0C +0x9154 0x9A3B +0x9155 0x9A10 +0x9156 0x9A58 +0x9157 0x25725 +0x9158 0x36C4 +0x9159 0x290B1 +0x915A 0x29BD5 +0x915B 0x9AE0 +0x915C 0x9AE2 +0x915D 0x29B05 +0x915E 0x9AF4 +0x915F 0x4C0E +0x9160 0x9B14 +0x9161 0x9B2D +0x9162 0x28600 +0x9163 0x5034 +0x9164 0x9B34 +0x9165 0x269A8 +0x9166 0x38C3 +0x9167 0x2307D +0x9168 0x9B50 +0x9169 0x9B40 +0x916A 0x29D3E +0x916B 0x5A45 +0x916C 0x21863 +0x916D 0x9B8E +0x916E 0x2424B +0x916F 0x9C02 +0x9170 0x9BFF +0x9171 0x9C0C +0x9172 0x29E68 +0x9173 0x9DD4 +0x9174 0x29FB7 +0x9175 0x2A192 +0x9176 0x2A1AB +0x9177 0x2A0E1 +0x9178 0x2A123 +0x9179 0x2A1DF +0x917A 0x9D7E +0x917B 0x9D83 +0x917C 0x2A134 +0x917D 0x9E0E +0x917E 0x6888 +0x91A1 0x9DC4 +0x91A2 0x2215B +0x91A3 0x2A193 +0x91A4 0x2A220 +0x91A5 0x2193B +0x91A6 0x2A233 +0x91A7 0x9D39 +0x91A8 0x2A0B9 +0x91A9 0x2A2B4 +0x91AA 0x9E90 +0x91AB 0x9E95 +0x91AC 0x9E9E +0x91AD 0x9EA2 +0x91AE 0x4D34 +0x91AF 0x9EAA +0x91B0 0x9EAF +0x91B1 0x24364 +0x91B2 0x9EC1 +0x91B3 0x3B60 +0x91B4 0x39E5 +0x91B5 0x3D1D +0x91B6 0x4F32 +0x91B7 0x37BE +0x91B8 0x28C2B +0x91B9 0x9F02 +0x91BA 0x9F08 +0x91BB 0x4B96 +0x91BC 0x9424 +0x91BD 0x26DA2 +0x91BE 0x9F17 +0x91C0 0x9F39 +0x91C1 0x569F +0x91C2 0x568A +0x91C3 0x9F45 +0x91C4 0x99B8 +0x91C5 0x2908B +0x91C6 0x97F2 +0x91C7 0x847F +0x91C8 0x9F62 +0x91C9 0x9F69 +0x91CA 0x7ADC +0x91CB 0x9F8E +0x91CC 0x7216 +0x91CD 0x4BBE +0x91CE 0x24975 +0x91CF 0x249BB +0x91D0 0x7177 +0x91D1 0x249F8 +0x91D2 0x24348 +0x91D3 0x24A51 +0x91D4 0x739E +0x91D5 0x28BDA +0x91D6 0x218FA +0x91D7 0x799F +0x91D8 0x2897E +0x91D9 0x28E36 +0x91DA 0x9369 +0x91DB 0x93F3 +0x91DC 0x28A44 +0x91DD 0x92EC +0x91DE 0x9381 +0x91DF 0x93CB +0x91E0 0x2896C +0x91E1 0x244B9 +0x91E2 0x7217 +0x91E3 0x3EEB +0x91E4 0x7772 +0x91E5 0x7A43 +0x91E6 0x70D0 +0x91E7 0x24473 +0x91E8 0x243F8 +0x91E9 0x717E +0x91EA 0x217EF +0x91EB 0x70A3 +0x91EC 0x218BE +0x91ED 0x23599 +0x91EE 0x3EC7 +0x91EF 0x21885 +0x91F0 0x2542F +0x91F1 0x217F8 +0x91F2 0x3722 +0x91F3 0x216FB +0x91F4 0x21839 +0x91F5 0x36E1 +0x91F6 0x21774 +0x91F7 0x218D1 +0x91F8 0x25F4B +0x91F9 0x3723 +0x91FA 0x216C0 +0x91FB 0x575B +0x91FC 0x24A25 +0x91FD 0x213FE +0x91FE 0x212A8 +0x9240 0x213C6 +0x9241 0x214B6 +0x9242 0x8503 +0x9243 0x236A6 +0x9245 0x8455 +0x9246 0x24994 +0x9247 0x27165 +0x9248 0x23E31 +0x9249 0x2555C +0x924A 0x23EFB +0x924B 0x27052 +0x924C 0x44F4 +0x924D 0x236EE +0x924E 0x2999D +0x924F 0x26F26 +0x9250 0x67F9 +0x9251 0x3733 +0x9252 0x3C15 +0x9253 0x3DE7 +0x9254 0x586C +0x9255 0x21922 +0x9256 0x6810 +0x9257 0x4057 +0x9258 0x2373F +0x9259 0x240E1 +0x925A 0x2408B +0x925B 0x2410F +0x925C 0x26C21 +0x925D 0x54CB +0x925E 0x569E +0x925F 0x266B1 +0x9260 0x5692 +0x9261 0x20FDF +0x9262 0x20BA8 +0x9263 0x20E0D +0x9264 0x93C6 +0x9265 0x28B13 +0x9266 0x939C +0x9267 0x4EF8 +0x9268 0x512B +0x9269 0x3819 +0x926A 0x24436 +0x926B 0x4EBC +0x926C 0x20465 +0x926D 0x2037F +0x926E 0x4F4B +0x926F 0x4F8A +0x9270 0x25651 +0x9271 0x5A68 +0x9272 0x201AB +0x9273 0x203CB +0x9274 0x3999 +0x9275 0x2030A +0x9276 0x20414 +0x9277 0x3435 +0x9278 0x4F29 +0x9279 0x202C0 +0x927A 0x28EB3 +0x927B 0x20275 +0x927C 0x8ADA +0x927D 0x2020C +0x927E 0x4E98 +0x92A1 0x50CD +0x92A2 0x510D +0x92A3 0x4FA2 +0x92A4 0x4F03 +0x92A5 0x24A0E +0x92A6 0x23E8A +0x92A7 0x4F42 +0x92A8 0x502E +0x92A9 0x506C +0x92AA 0x5081 +0x92AB 0x4FCC +0x92AC 0x4FE5 +0x92AD 0x5058 +0x92AE 0x50FC +0x92B3 0x6E76 +0x92B4 0x23595 +0x92B5 0x23E39 +0x92B6 0x23EBF +0x92B7 0x6D72 +0x92B8 0x21884 +0x92B9 0x23E89 +0x92BA 0x51A8 +0x92BB 0x51C3 +0x92BC 0x205E0 +0x92BD 0x44DD +0x92BE 0x204A3 +0x92BF 0x20492 +0x92C0 0x20491 +0x92C1 0x8D7A +0x92C2 0x28A9C +0x92C3 0x2070E +0x92C4 0x5259 +0x92C5 0x52A4 +0x92C6 0x20873 +0x92C7 0x52E1 +0x92C9 0x467A +0x92CA 0x718C +0x92CB 0x2438C +0x92CC 0x20C20 +0x92CD 0x249AC +0x92CE 0x210E4 +0x92CF 0x69D1 +0x92D0 0x20E1D +0x92D2 0x3EDE +0x92D3 0x7499 +0x92D4 0x7414 +0x92D5 0x7456 +0x92D6 0x7398 +0x92D7 0x4B8E +0x92D8 0x24ABC +0x92D9 0x2408D +0x92DA 0x53D0 +0x92DB 0x3584 +0x92DC 0x720F +0x92DD 0x240C9 +0x92DE 0x55B4 +0x92DF 0x20345 +0x92E0 0x54CD +0x92E1 0x20BC6 +0x92E2 0x571D +0x92E3 0x925D +0x92E4 0x96F4 +0x92E5 0x9366 +0x92E6 0x57DD +0x92E7 0x578D +0x92E8 0x577F +0x92E9 0x363E +0x92EA 0x58CB +0x92EB 0x5A99 +0x92EC 0x28A46 +0x92ED 0x216FA +0x92EE 0x2176F +0x92EF 0x21710 +0x92F0 0x5A2C +0x92F1 0x59B8 +0x92F2 0x928F +0x92F3 0x5A7E +0x92F4 0x5ACF +0x92F5 0x5A12 +0x92F6 0x25946 +0x92F7 0x219F3 +0x92F8 0x21861 +0x92F9 0x24295 +0x92FA 0x36F5 +0x92FB 0x6D05 +0x92FC 0x7443 +0x92FD 0x5A21 +0x92FE 0x25E83 +0x9340 0x5A81 +0x9341 0x28BD7 +0x9342 0x20413 +0x9343 0x93E0 +0x9344 0x748C +0x9345 0x21303 +0x9346 0x7105 +0x9347 0x4972 +0x9348 0x9408 +0x9349 0x289FB +0x934A 0x93BD +0x934B 0x37A0 +0x934C 0x5C1E +0x934D 0x5C9E +0x934E 0x5E5E +0x934F 0x5E48 +0x9350 0x21996 +0x9351 0x2197C +0x9352 0x23AEE +0x9353 0x5ECD +0x9354 0x5B4F +0x9355 0x21903 +0x9356 0x21904 +0x9357 0x3701 +0x9358 0x218A0 +0x9359 0x36DD +0x935A 0x216FE +0x935B 0x36D3 +0x935C 0x812A +0x935D 0x28A47 +0x935E 0x21DBA +0x935F 0x23472 +0x9360 0x289A8 +0x9361 0x5F0C +0x9362 0x5F0E +0x9363 0x21927 +0x9364 0x217AB +0x9365 0x5A6B +0x9366 0x2173B +0x9367 0x5B44 +0x9368 0x8614 +0x9369 0x275FD +0x936A 0x8860 +0x936B 0x607E +0x936C 0x22860 +0x936D 0x2262B +0x936E 0x5FDB +0x936F 0x3EB8 +0x9370 0x225AF +0x9371 0x225BE +0x9372 0x29088 +0x9373 0x26F73 +0x9374 0x61C0 +0x9375 0x2003E +0x9376 0x20046 +0x9377 0x2261B +0x9378 0x6199 +0x9379 0x6198 +0x937A 0x6075 +0x937B 0x22C9B +0x937C 0x22D07 +0x937D 0x246D4 +0x937E 0x2914D +0x93A1 0x6471 +0x93A2 0x24665 +0x93A3 0x22B6A +0x93A4 0x3A29 +0x93A5 0x22B22 +0x93A6 0x23450 +0x93A7 0x298EA +0x93A8 0x22E78 +0x93A9 0x6337 +0x93AA 0x2A45B +0x93AB 0x64B6 +0x93AC 0x6331 +0x93AD 0x63D1 +0x93AE 0x249E3 +0x93AF 0x22D67 +0x93B0 0x62A4 +0x93B1 0x22CA1 +0x93B2 0x643B +0x93B3 0x656B +0x93B4 0x6972 +0x93B5 0x3BF4 +0x93B6 0x2308E +0x93B7 0x232AD +0x93B8 0x24989 +0x93B9 0x232AB +0x93BA 0x550D +0x93BB 0x232E0 +0x93BC 0x218D9 +0x93BD 0x2943F +0x93BE 0x66CE +0x93BF 0x23289 +0x93C0 0x231B3 +0x93C1 0x3AE0 +0x93C2 0x4190 +0x93C3 0x25584 +0x93C4 0x28B22 +0x93C5 0x2558F +0x93C6 0x216FC +0x93C7 0x2555B +0x93C8 0x25425 +0x93C9 0x78EE +0x93CA 0x23103 +0x93CB 0x2182A +0x93CC 0x23234 +0x93CD 0x3464 +0x93CE 0x2320F +0x93CF 0x23182 +0x93D0 0x242C9 +0x93D1 0x668E +0x93D2 0x26D24 +0x93D3 0x666B +0x93D4 0x4B93 +0x93D5 0x6630 +0x93D6 0x27870 +0x93D7 0x21DEB +0x93D8 0x6663 +0x93D9 0x232D2 +0x93DA 0x232E1 +0x93DB 0x661E +0x93DC 0x25872 +0x93DD 0x38D1 +0x93DE 0x2383A +0x93DF 0x237BC +0x93E0 0x3B99 +0x93E1 0x237A2 +0x93E2 0x233FE +0x93E3 0x74D0 +0x93E4 0x3B96 +0x93E5 0x678F +0x93E6 0x2462A +0x93E7 0x68B6 +0x93E8 0x681E +0x93E9 0x3BC4 +0x93EA 0x6ABE +0x93EB 0x3863 +0x93EC 0x237D5 +0x93ED 0x24487 +0x93EE 0x6A33 +0x93EF 0x6A52 +0x93F0 0x6AC9 +0x93F1 0x6B05 +0x93F2 0x21912 +0x93F3 0x6511 +0x93F4 0x6898 +0x93F5 0x6A4C +0x93F6 0x3BD7 +0x93F7 0x6A7A +0x93F8 0x6B57 +0x93F9 0x23FC0 +0x93FA 0x23C9A +0x93FB 0x93A0 +0x93FC 0x92F2 +0x93FD 0x28BEA +0x93FE 0x28ACB +0x9440 0x9289 +0x9441 0x2801E +0x9442 0x289DC +0x9443 0x9467 +0x9444 0x6DA5 +0x9445 0x6F0B +0x9446 0x249EC +0x9448 0x23F7F +0x9449 0x3D8F +0x944A 0x6E04 +0x944B 0x2403C +0x944C 0x5A3D +0x944D 0x6E0A +0x944E 0x5847 +0x944F 0x6D24 +0x9450 0x7842 +0x9451 0x713B +0x9452 0x2431A +0x9453 0x24276 +0x9454 0x70F1 +0x9455 0x7250 +0x9456 0x7287 +0x9457 0x7294 +0x9458 0x2478F +0x9459 0x24725 +0x945A 0x5179 +0x945B 0x24AA4 +0x945C 0x205EB +0x945D 0x747A +0x945E 0x23EF8 +0x945F 0x2365F +0x9460 0x24A4A +0x9461 0x24917 +0x9462 0x25FE1 +0x9463 0x3F06 +0x9464 0x3EB1 +0x9465 0x24ADF +0x9466 0x28C23 +0x9467 0x23F35 +0x9468 0x60A7 +0x9469 0x3EF3 +0x946A 0x74CC +0x946B 0x743C +0x946C 0x9387 +0x946D 0x7437 +0x946E 0x449F +0x946F 0x26DEA +0x9470 0x4551 +0x9471 0x7583 +0x9472 0x3F63 +0x9473 0x24CD9 +0x9474 0x24D06 +0x9475 0x3F58 +0x9476 0x7555 +0x9477 0x7673 +0x9478 0x2A5C6 +0x9479 0x3B19 +0x947A 0x7468 +0x947B 0x28ACC +0x947C 0x249AB +0x947D 0x2498E +0x947E 0x3AFB +0x94A1 0x3DCD +0x94A2 0x24A4E +0x94A3 0x3EFF +0x94A4 0x249C5 +0x94A5 0x248F3 +0x94A6 0x91FA +0x94A7 0x5732 +0x94A8 0x9342 +0x94A9 0x28AE3 +0x94AA 0x21864 +0x94AB 0x50DF +0x94AC 0x25221 +0x94AD 0x251E7 +0x94AE 0x7778 +0x94AF 0x23232 +0x94B0 0x770E +0x94B1 0x770F +0x94B2 0x777B +0x94B3 0x24697 +0x94B4 0x23781 +0x94B5 0x3A5E +0x94B6 0x248F0 +0x94B7 0x7438 +0x94B8 0x749B +0x94B9 0x3EBF +0x94BA 0x24ABA +0x94BB 0x24AC7 +0x94BC 0x40C8 +0x94BD 0x24A96 +0x94BE 0x261AE +0x94BF 0x9307 +0x94C0 0x25581 +0x94C1 0x781E +0x94C2 0x788D +0x94C3 0x7888 +0x94C4 0x78D2 +0x94C5 0x73D0 +0x94C6 0x7959 +0x94C7 0x27741 +0x94C8 0x256E3 +0x94C9 0x410E +0x94CB 0x8496 +0x94CC 0x79A5 +0x94CD 0x6A2D +0x94CE 0x23EFA +0x94CF 0x7A3A +0x94D0 0x79F4 +0x94D1 0x416E +0x94D2 0x216E6 +0x94D3 0x4132 +0x94D4 0x9235 +0x94D5 0x79F1 +0x94D6 0x20D4C +0x94D7 0x2498C +0x94D8 0x20299 +0x94D9 0x23DBA +0x94DA 0x2176E +0x94DB 0x3597 +0x94DC 0x556B +0x94DD 0x3570 +0x94DE 0x36AA +0x94DF 0x201D4 +0x94E0 0x20C0D +0x94E1 0x7AE2 +0x94E2 0x5A59 +0x94E3 0x226F5 +0x94E4 0x25AAF +0x94E5 0x25A9C +0x94E6 0x5A0D +0x94E7 0x2025B +0x94E8 0x78F0 +0x94E9 0x5A2A +0x94EA 0x25BC6 +0x94EB 0x7AFE +0x94EC 0x41F9 +0x94ED 0x7C5D +0x94EE 0x7C6D +0x94EF 0x4211 +0x94F0 0x25BB3 +0x94F1 0x25EBC +0x94F2 0x25EA6 +0x94F3 0x7CCD +0x94F4 0x249F9 +0x94F5 0x217B0 +0x94F6 0x7C8E +0x94F7 0x7C7C +0x94F8 0x7CAE +0x94F9 0x6AB2 +0x94FA 0x7DDC +0x94FB 0x7E07 +0x94FC 0x7DD3 +0x94FD 0x7F4E +0x94FE 0x26261 +0x9540 0x2615C +0x9541 0x27B48 +0x9542 0x7D97 +0x9543 0x25E82 +0x9544 0x426A +0x9545 0x26B75 +0x9546 0x20916 +0x9547 0x67D6 +0x9548 0x2004E +0x9549 0x235CF +0x954A 0x57C4 +0x954B 0x26412 +0x954C 0x263F8 +0x954D 0x24962 +0x954E 0x7FDD +0x954F 0x7B27 +0x9550 0x2082C +0x9551 0x25AE9 +0x9552 0x25D43 +0x9553 0x7B0C +0x9554 0x25E0E +0x9555 0x99E6 +0x9556 0x8645 +0x9557 0x9A63 +0x9558 0x6A1C +0x9559 0x2343F +0x955A 0x39E2 +0x955B 0x249F7 +0x955C 0x265AD +0x955D 0x9A1F +0x955E 0x265A0 +0x955F 0x8480 +0x9560 0x27127 +0x9561 0x26CD1 +0x9562 0x44EA +0x9563 0x8137 +0x9564 0x4402 +0x9565 0x80C6 +0x9566 0x8109 +0x9567 0x8142 +0x9568 0x267B4 +0x9569 0x98C3 +0x956A 0x26A42 +0x956B 0x8262 +0x956C 0x8265 +0x956D 0x26A51 +0x956E 0x8453 +0x956F 0x26DA7 +0x9570 0x8610 +0x9571 0x2721B +0x9572 0x5A86 +0x9573 0x417F +0x9574 0x21840 +0x9575 0x5B2B +0x9576 0x218A1 +0x9577 0x5AE4 +0x9578 0x218D8 +0x9579 0x86A0 +0x957A 0x2F9BC +0x957B 0x23D8F +0x957C 0x882D +0x957D 0x27422 +0x957E 0x5A02 +0x95A1 0x886E +0x95A2 0x4F45 +0x95A3 0x8887 +0x95A4 0x88BF +0x95A5 0x88E6 +0x95A6 0x8965 +0x95A7 0x894D +0x95A8 0x25683 +0x95A9 0x8954 +0x95AA 0x27785 +0x95AB 0x27784 +0x95AC 0x28BF5 +0x95AD 0x28BD9 +0x95AE 0x28B9C +0x95AF 0x289F9 +0x95B0 0x3EAD +0x95B1 0x84A3 +0x95B2 0x46F5 +0x95B3 0x46CF +0x95B4 0x37F2 +0x95B5 0x8A3D +0x95B6 0x8A1C +0x95B7 0x29448 +0x95B8 0x5F4D +0x95B9 0x922B +0x95BA 0x24284 +0x95BB 0x65D4 +0x95BC 0x7129 +0x95BD 0x70C4 +0x95BE 0x21845 +0x95BF 0x9D6D +0x95C0 0x8C9F +0x95C1 0x8CE9 +0x95C2 0x27DDC +0x95C3 0x599A +0x95C4 0x77C3 +0x95C5 0x59F0 +0x95C6 0x436E +0x95C7 0x36D4 +0x95C8 0x8E2A +0x95C9 0x8EA7 +0x95CA 0x24C09 +0x95CB 0x8F30 +0x95CC 0x8F4A +0x95CD 0x42F4 +0x95CE 0x6C58 +0x95CF 0x6FBB +0x95D0 0x22321 +0x95D1 0x489B +0x95D2 0x6F79 +0x95D3 0x6E8B +0x95D4 0x217DA +0x95D5 0x9BE9 +0x95D6 0x36B5 +0x95D7 0x2492F +0x95D8 0x90BB +0x95DA 0x5571 +0x95DB 0x4906 +0x95DC 0x91BB +0x95DD 0x9404 +0x95DE 0x28A4B +0x95DF 0x4062 +0x95E0 0x28AFC +0x95E1 0x9427 +0x95E2 0x28C1D +0x95E3 0x28C3B +0x95E4 0x84E5 +0x95E5 0x8A2B +0x95E6 0x9599 +0x95E7 0x95A7 +0x95E8 0x9597 +0x95E9 0x9596 +0x95EA 0x28D34 +0x95EB 0x7445 +0x95EC 0x3EC2 +0x95ED 0x248FF +0x95EE 0x24A42 +0x95EF 0x243EA +0x95F0 0x3EE7 +0x95F1 0x23225 +0x95F2 0x968F +0x95F3 0x28EE7 +0x95F4 0x28E66 +0x95F5 0x28E65 +0x95F6 0x3ECC +0x95F7 0x249ED +0x95F8 0x24A78 +0x95F9 0x23FEE +0x95FA 0x7412 +0x95FB 0x746B +0x95FC 0x3EFC +0x95FD 0x9741 +0x95FE 0x290B0 +0x9640 0x6847 +0x9641 0x4A1D +0x9642 0x29093 +0x9643 0x257DF +0x9645 0x9368 +0x9646 0x28989 +0x9647 0x28C26 +0x9648 0x28B2F +0x9649 0x263BE +0x964A 0x92BA +0x964B 0x5B11 +0x964C 0x8B69 +0x964D 0x493C +0x964E 0x73F9 +0x964F 0x2421B +0x9650 0x979B +0x9651 0x9771 +0x9652 0x9938 +0x9653 0x20F26 +0x9654 0x5DC1 +0x9655 0x28BC5 +0x9656 0x24AB2 +0x9657 0x981F +0x9658 0x294DA +0x9659 0x92F6 +0x965A 0x295D7 +0x965B 0x91E5 +0x965C 0x44C0 +0x965D 0x28B50 +0x965E 0x24A67 +0x965F 0x28B64 +0x9660 0x98DC +0x9661 0x28A45 +0x9662 0x3F00 +0x9663 0x922A +0x9664 0x4925 +0x9665 0x8414 +0x9666 0x993B +0x9667 0x994D +0x9668 0x27B06 +0x9669 0x3DFD +0x966A 0x999B +0x966B 0x4B6F +0x966C 0x99AA +0x966D 0x9A5C +0x966E 0x28B65 +0x966F 0x258C8 +0x9670 0x6A8F +0x9671 0x9A21 +0x9672 0x5AFE +0x9673 0x9A2F +0x9674 0x298F1 +0x9675 0x4B90 +0x9676 0x29948 +0x9677 0x99BC +0x9678 0x4BBD +0x9679 0x4B97 +0x967A 0x937D +0x967B 0x5872 +0x967C 0x21302 +0x967D 0x5822 +0x967E 0x249B8 +0x96A1 0x214E8 +0x96A2 0x7844 +0x96A3 0x2271F +0x96A4 0x23DB8 +0x96A5 0x68C5 +0x96A6 0x3D7D +0x96A7 0x9458 +0x96A8 0x3927 +0x96A9 0x6150 +0x96AA 0x22781 +0x96AB 0x2296B +0x96AC 0x6107 +0x96AD 0x9C4F +0x96AE 0x9C53 +0x96AF 0x9C7B +0x96B0 0x9C35 +0x96B1 0x9C10 +0x96B2 0x9B7F +0x96B3 0x9BCF +0x96B4 0x29E2D +0x96B5 0x9B9F +0x96B6 0x2A1F5 +0x96B7 0x2A0FE +0x96B8 0x9D21 +0x96B9 0x4CAE +0x96BA 0x24104 +0x96BB 0x9E18 +0x96BC 0x4CB0 +0x96BD 0x9D0C +0x96BE 0x2A1B4 +0x96BF 0x2A0ED +0x96C0 0x2A0F3 +0x96C1 0x2992F +0x96C2 0x9DA5 +0x96C3 0x84BD +0x96C4 0x26E12 +0x96C5 0x26FDF +0x96C6 0x26B82 +0x96C7 0x85FC +0x96C8 0x4533 +0x96C9 0x26DA4 +0x96CA 0x26E84 +0x96CB 0x26DF0 +0x96CC 0x8420 +0x96CD 0x85EE +0x96CE 0x26E00 +0x96CF 0x237D7 +0x96D0 0x26064 +0x96D1 0x79E2 +0x96D2 0x2359C +0x96D3 0x23640 +0x96D4 0x492D +0x96D5 0x249DE +0x96D6 0x3D62 +0x96D7 0x93DB +0x96D8 0x92BE +0x96D9 0x9348 +0x96DA 0x202BF +0x96DB 0x78B9 +0x96DC 0x9277 +0x96DD 0x944D +0x96DE 0x4FE4 +0x96DF 0x3440 +0x96E0 0x9064 +0x96E1 0x2555D +0x96E2 0x783D +0x96E3 0x7854 +0x96E4 0x78B6 +0x96E5 0x784B +0x96E6 0x21757 +0x96E7 0x231C9 +0x96E8 0x24941 +0x96E9 0x369A +0x96EA 0x4F72 +0x96EB 0x6FDA +0x96EC 0x6FD9 +0x96EE 0x701E +0x96EF 0x5414 +0x96F0 0x241B5 +0x96F1 0x57BB +0x96F2 0x58F3 +0x96F3 0x578A +0x96F4 0x9D16 +0x96F5 0x57D7 +0x96F6 0x7134 +0x96F7 0x34AF +0x96F8 0x241AC +0x96F9 0x71EB +0x96FA 0x26C40 +0x96FB 0x24F97 +0x96FD 0x217B5 +0x96FE 0x28A49 +0x9740 0x610C +0x9741 0x5ACE +0x9742 0x5A0B +0x9743 0x42BC +0x9744 0x24488 +0x9745 0x372C +0x9746 0x4B7B +0x9747 0x289FC +0x9748 0x93BB +0x9749 0x93B8 +0x974A 0x218D6 +0x974B 0x20F1D +0x974C 0x8472 +0x974D 0x26CC0 +0x974E 0x21413 +0x974F 0x242FA +0x9750 0x22C26 +0x9751 0x243C1 +0x9752 0x5994 +0x9753 0x23DB7 +0x9754 0x26741 +0x9755 0x7DA8 +0x9756 0x2615B +0x9757 0x260A4 +0x9758 0x249B9 +0x9759 0x2498B +0x975A 0x289FA +0x975B 0x92E5 +0x975C 0x73E2 +0x975D 0x3EE9 +0x975E 0x74B4 +0x975F 0x28B63 +0x9760 0x2189F +0x9761 0x3EE1 +0x9762 0x24AB3 +0x9763 0x6AD8 +0x9764 0x73F3 +0x9765 0x73FB +0x9766 0x3ED6 +0x9767 0x24A3E +0x9768 0x24A94 +0x9769 0x217D9 +0x976A 0x24A66 +0x976B 0x203A7 +0x976C 0x21424 +0x976D 0x249E5 +0x976E 0x7448 +0x976F 0x24916 +0x9770 0x70A5 +0x9771 0x24976 +0x9772 0x9284 +0x9773 0x73E6 +0x9774 0x935F +0x9775 0x204FE +0x9776 0x9331 +0x9777 0x28ACE +0x9778 0x28A16 +0x9779 0x9386 +0x977A 0x28BE7 +0x977B 0x255D5 +0x977C 0x4935 +0x977D 0x28A82 +0x977E 0x716B +0x97A1 0x24943 +0x97A2 0x20CFF +0x97A3 0x56A4 +0x97A4 0x2061A +0x97A5 0x20BEB +0x97A6 0x20CB8 +0x97A7 0x5502 +0x97A8 0x79C4 +0x97A9 0x217FA +0x97AA 0x7DFE +0x97AB 0x216C2 +0x97AC 0x24A50 +0x97AD 0x21852 +0x97AE 0x452E +0x97AF 0x9401 +0x97B0 0x370A +0x97B1 0x28AC0 +0x97B2 0x249AD +0x97B3 0x59B0 +0x97B4 0x218BF +0x97B5 0x21883 +0x97B6 0x27484 +0x97B7 0x5AA1 +0x97B8 0x36E2 +0x97B9 0x23D5B +0x97BA 0x36B0 +0x97BB 0x925F +0x97BC 0x5A79 +0x97BD 0x28A81 +0x97BE 0x21862 +0x97BF 0x9374 +0x97C0 0x3CCD +0x97C1 0x20AB4 +0x97C2 0x4A96 +0x97C3 0x398A +0x97C4 0x50F4 +0x97C5 0x3D69 +0x97C6 0x3D4C +0x97C7 0x2139C +0x97C8 0x7175 +0x97C9 0x42FB +0x97CA 0x28218 +0x97CB 0x6E0F +0x97CC 0x290E4 +0x97CD 0x44EB +0x97CE 0x6D57 +0x97CF 0x27E4F +0x97D0 0x7067 +0x97D1 0x6CAF +0x97D2 0x3CD6 +0x97D3 0x23FED +0x97D4 0x23E2D +0x97D5 0x6E02 +0x97D6 0x6F0C +0x97D7 0x3D6F +0x97D8 0x203F5 +0x97D9 0x7551 +0x97DA 0x36BC +0x97DB 0x34C8 +0x97DC 0x4680 +0x97DD 0x3EDA +0x97DE 0x4871 +0x97DF 0x59C4 +0x97E0 0x926E +0x97E1 0x493E +0x97E2 0x8F41 +0x97E3 0x28C1C +0x97E4 0x26BC0 +0x97E5 0x5812 +0x97E6 0x57C8 +0x97E7 0x36D6 +0x97E8 0x21452 +0x97E9 0x70FE +0x97EA 0x24362 +0x97EB 0x24A71 +0x97EC 0x22FE3 +0x97ED 0x212B0 +0x97EE 0x223BD +0x97EF 0x68B9 +0x97F0 0x6967 +0x97F1 0x21398 +0x97F2 0x234E5 +0x97F3 0x27BF4 +0x97F4 0x236DF +0x97F5 0x28A83 +0x97F6 0x237D6 +0x97F7 0x233FA +0x97F8 0x24C9F +0x97F9 0x6A1A +0x97FA 0x236AD +0x97FB 0x26CB7 +0x97FC 0x843E +0x97FD 0x44DF +0x97FE 0x44CE +0x9840 0x26D26 +0x9841 0x26D51 +0x9842 0x26C82 +0x9843 0x26FDE +0x9844 0x6F17 +0x9845 0x27109 +0x9846 0x833D +0x9847 0x2173A +0x9848 0x83ED +0x9849 0x26C80 +0x984A 0x27053 +0x984B 0x217DB +0x984C 0x5989 +0x984D 0x5A82 +0x984E 0x217B3 +0x984F 0x5A61 +0x9850 0x5A71 +0x9851 0x21905 +0x9852 0x241FC +0x9853 0x372D +0x9854 0x59EF +0x9855 0x2173C +0x9856 0x36C7 +0x9857 0x718E +0x9858 0x9390 +0x9859 0x669A +0x985A 0x242A5 +0x985B 0x5A6E +0x985C 0x5A2B +0x985D 0x24293 +0x985E 0x6A2B +0x985F 0x23EF9 +0x9860 0x27736 +0x9861 0x2445B +0x9862 0x242CA +0x9863 0x711D +0x9864 0x24259 +0x9865 0x289E1 +0x9866 0x4FB0 +0x9867 0x26D28 +0x9868 0x5CC2 +0x9869 0x244CE +0x986A 0x27E4D +0x986B 0x243BD +0x986C 0x6A0C +0x986D 0x24256 +0x986E 0x21304 +0x986F 0x70A6 +0x9870 0x7133 +0x9871 0x243E9 +0x9872 0x3DA5 +0x9873 0x6CDF +0x9874 0x2F825 +0x9875 0x24A4F +0x9876 0x7E65 +0x9877 0x59EB +0x9878 0x5D2F +0x9879 0x3DF3 +0x987A 0x5F5C +0x987B 0x24A5D +0x987C 0x217DF +0x987D 0x7DA4 +0x987E 0x8426 +0x98A1 0x5485 +0x98A2 0x23AFA +0x98A3 0x23300 +0x98A4 0x20214 +0x98A5 0x577E +0x98A6 0x208D5 +0x98A7 0x20619 +0x98A8 0x3FE5 +0x98A9 0x21F9E +0x98AA 0x2A2B6 +0x98AB 0x7003 +0x98AC 0x2915B +0x98AD 0x5D70 +0x98AE 0x738F +0x98AF 0x7CD3 +0x98B0 0x28A59 +0x98B1 0x29420 +0x98B2 0x4FC8 +0x98B3 0x7FE7 +0x98B4 0x72CD +0x98B5 0x7310 +0x98B6 0x27AF4 +0x98B7 0x7338 +0x98B8 0x7339 +0x98B9 0x256F6 +0x98BA 0x7341 +0x98BB 0x7348 +0x98BC 0x3EA9 +0x98BD 0x27B18 +0x98BE 0x906C +0x98BF 0x71F5 +0x98C0 0x248F2 +0x98C1 0x73E1 +0x98C2 0x81F6 +0x98C3 0x3ECA +0x98C4 0x770C +0x98C5 0x3ED1 +0x98C6 0x6CA2 +0x98C7 0x56FD +0x98C8 0x7419 +0x98C9 0x741E +0x98CA 0x741F +0x98CB 0x3EE2 +0x98CC 0x3EF0 +0x98CD 0x3EF4 +0x98CE 0x3EFA +0x98CF 0x74D3 +0x98D0 0x3F0E +0x98D1 0x3F53 +0x98D2 0x7542 +0x98D3 0x756D +0x98D4 0x7572 +0x98D5 0x758D +0x98D6 0x3F7C +0x98D7 0x75C8 +0x98D8 0x75DC +0x98D9 0x3FC0 +0x98DA 0x764D +0x98DB 0x3FD7 +0x98DC 0x7674 +0x98DD 0x3FDC +0x98DE 0x767A +0x98DF 0x24F5C +0x98E0 0x7188 +0x98E1 0x5623 +0x98E2 0x8980 +0x98E3 0x5869 +0x98E4 0x401D +0x98E5 0x7743 +0x98E6 0x4039 +0x98E7 0x6761 +0x98E8 0x4045 +0x98E9 0x35DB +0x98EA 0x7798 +0x98EB 0x406A +0x98EC 0x406F +0x98ED 0x5C5E +0x98EE 0x77BE +0x98EF 0x77CB +0x98F0 0x58F2 +0x98F1 0x7818 +0x98F2 0x70B9 +0x98F3 0x781C +0x98F4 0x40A8 +0x98F5 0x7839 +0x98F6 0x7847 +0x98F7 0x7851 +0x98F8 0x7866 +0x98F9 0x8448 +0x98FA 0x25535 +0x98FB 0x7933 +0x98FC 0x6803 +0x98FD 0x7932 +0x98FE 0x4103 +0x9940 0x4109 +0x9941 0x7991 +0x9942 0x7999 +0x9943 0x8FBB +0x9944 0x7A06 +0x9945 0x8FBC +0x9946 0x4167 +0x9947 0x7A91 +0x9948 0x41B2 +0x9949 0x7ABC +0x994A 0x8279 +0x994B 0x41C4 +0x994C 0x7ACF +0x994D 0x7ADB +0x994E 0x41CF +0x994F 0x4E21 +0x9950 0x7B62 +0x9951 0x7B6C +0x9952 0x7B7B +0x9953 0x7C12 +0x9954 0x7C1B +0x9955 0x4260 +0x9956 0x427A +0x9957 0x7C7B +0x9958 0x7C9C +0x9959 0x428C +0x995A 0x7CB8 +0x995B 0x4294 +0x995C 0x7CED +0x995D 0x8F93 +0x995E 0x70C0 +0x995F 0x20CCF +0x9960 0x7DCF +0x9961 0x7DD4 +0x9962 0x7DD0 +0x9963 0x7DFD +0x9964 0x7FAE +0x9965 0x7FB4 +0x9966 0x729F +0x9967 0x4397 +0x9968 0x8020 +0x9969 0x8025 +0x996A 0x7B39 +0x996B 0x802E +0x996C 0x8031 +0x996D 0x8054 +0x996E 0x3DCC +0x996F 0x57B4 +0x9970 0x70A0 +0x9971 0x80B7 +0x9972 0x80E9 +0x9973 0x43ED +0x9974 0x810C +0x9975 0x732A +0x9976 0x810E +0x9977 0x8112 +0x9978 0x7560 +0x9979 0x8114 +0x997A 0x4401 +0x997B 0x3B39 +0x997C 0x8156 +0x997D 0x8159 +0x997E 0x815A +0x99A1 0x4413 +0x99A2 0x583A +0x99A3 0x817C +0x99A4 0x8184 +0x99A5 0x4425 +0x99A6 0x8193 +0x99A7 0x442D +0x99A8 0x81A5 +0x99A9 0x57EF +0x99AA 0x81C1 +0x99AB 0x81E4 +0x99AC 0x8254 +0x99AD 0x448F +0x99AE 0x82A6 +0x99AF 0x8276 +0x99B0 0x82CA +0x99B1 0x82D8 +0x99B2 0x82FF +0x99B3 0x44B0 +0x99B4 0x8357 +0x99B5 0x9669 +0x99B6 0x698A +0x99B7 0x8405 +0x99B8 0x70F5 +0x99B9 0x8464 +0x99BA 0x60E3 +0x99BB 0x8488 +0x99BC 0x4504 +0x99BD 0x84BE +0x99BE 0x84E1 +0x99BF 0x84F8 +0x99C0 0x8510 +0x99C1 0x8538 +0x99C2 0x8552 +0x99C3 0x453B +0x99C4 0x856F +0x99C5 0x8570 +0x99C6 0x85E0 +0x99C7 0x4577 +0x99C8 0x8672 +0x99C9 0x8692 +0x99CA 0x86B2 +0x99CB 0x86EF +0x99CC 0x9645 +0x99CD 0x878B +0x99CE 0x4606 +0x99CF 0x4617 +0x99D0 0x88AE +0x99D1 0x88FF +0x99D2 0x8924 +0x99D3 0x8947 +0x99D4 0x8991 +0x99D5 0x27967 +0x99D6 0x8A29 +0x99D7 0x8A38 +0x99D8 0x8A94 +0x99D9 0x8AB4 +0x99DA 0x8C51 +0x99DB 0x8CD4 +0x99DC 0x8CF2 +0x99DD 0x8D1C +0x99DE 0x4798 +0x99DF 0x585F +0x99E0 0x8DC3 +0x99E1 0x47ED +0x99E2 0x4EEE +0x99E3 0x8E3A +0x99E4 0x55D8 +0x99E5 0x5754 +0x99E6 0x8E71 +0x99E7 0x55F5 +0x99E8 0x8EB0 +0x99E9 0x4837 +0x99EA 0x8ECE +0x99EB 0x8EE2 +0x99EC 0x8EE4 +0x99ED 0x8EED +0x99EE 0x8EF2 +0x99EF 0x8FB7 +0x99F0 0x8FC1 +0x99F1 0x8FCA +0x99F2 0x8FCC +0x99F3 0x9033 +0x99F4 0x99C4 +0x99F5 0x48AD +0x99F6 0x98E0 +0x99F7 0x9213 +0x99F8 0x491E +0x99F9 0x9228 +0x99FA 0x9258 +0x99FB 0x926B +0x99FC 0x92B1 +0x99FD 0x92AE +0x99FE 0x92BF +0x9A40 0x92E3 +0x9A41 0x92EB +0x9A42 0x92F3 +0x9A43 0x92F4 +0x9A44 0x92FD +0x9A45 0x9343 +0x9A46 0x9384 +0x9A47 0x93AD +0x9A48 0x4945 +0x9A49 0x4951 +0x9A4A 0x9EBF +0x9A4B 0x9417 +0x9A4C 0x5301 +0x9A4D 0x941D +0x9A4E 0x942D +0x9A4F 0x943E +0x9A50 0x496A +0x9A51 0x9454 +0x9A52 0x9479 +0x9A53 0x952D +0x9A54 0x95A2 +0x9A55 0x49A7 +0x9A56 0x95F4 +0x9A57 0x9633 +0x9A58 0x49E5 +0x9A59 0x67A0 +0x9A5A 0x4A24 +0x9A5B 0x9740 +0x9A5C 0x4A35 +0x9A5D 0x97B2 +0x9A5E 0x97C2 +0x9A5F 0x5654 +0x9A60 0x4AE4 +0x9A61 0x60E8 +0x9A62 0x98B9 +0x9A63 0x4B19 +0x9A64 0x98F1 +0x9A65 0x5844 +0x9A66 0x990E +0x9A67 0x9919 +0x9A68 0x51B4 +0x9A69 0x991C +0x9A6A 0x9937 +0x9A6B 0x9942 +0x9A6C 0x995D +0x9A6D 0x9962 +0x9A6E 0x4B70 +0x9A6F 0x99C5 +0x9A70 0x4B9D +0x9A71 0x9A3C +0x9A72 0x9B0F +0x9A73 0x7A83 +0x9A74 0x9B69 +0x9A75 0x9B81 +0x9A76 0x9BDD +0x9A77 0x9BF1 +0x9A78 0x9BF4 +0x9A79 0x4C6D +0x9A7A 0x9C20 +0x9A7B 0x376F +0x9A7C 0x21BC2 +0x9A7D 0x9D49 +0x9A7E 0x9C3A +0x9AA1 0x9EFE +0x9AA2 0x5650 +0x9AA3 0x9D93 +0x9AA4 0x9DBD +0x9AA5 0x9DC0 +0x9AA6 0x9DFC +0x9AA7 0x94F6 +0x9AA8 0x8FB6 +0x9AA9 0x9E7B +0x9AAA 0x9EAC +0x9AAB 0x9EB1 +0x9AAC 0x9EBD +0x9AAD 0x9EC6 +0x9AAE 0x94DC +0x9AAF 0x9EE2 +0x9AB0 0x9EF1 +0x9AB1 0x9EF8 +0x9AB2 0x7AC8 +0x9AB3 0x9F44 +0x9AB4 0x20094 +0x9AB5 0x202B7 +0x9AB6 0x203A0 +0x9AB7 0x691A +0x9AB8 0x94C3 +0x9AB9 0x59AC +0x9ABA 0x204D7 +0x9ABB 0x5840 +0x9ABC 0x94C1 +0x9ABD 0x37B9 +0x9ABE 0x205D5 +0x9ABF 0x20615 +0x9AC0 0x20676 +0x9AC1 0x216BA +0x9AC2 0x5757 +0x9AC3 0x7173 +0x9AC4 0x20AC2 +0x9AC5 0x20ACD +0x9AC6 0x20BBF +0x9AC7 0x546A +0x9AC8 0x2F83B +0x9AC9 0x20BCB +0x9ACA 0x549E +0x9ACB 0x20BFB +0x9ACC 0x20C3B +0x9ACD 0x20C53 +0x9ACE 0x20C65 +0x9ACF 0x20C7C +0x9AD0 0x60E7 +0x9AD1 0x20C8D +0x9AD2 0x567A +0x9AD3 0x20CB5 +0x9AD4 0x20CDD +0x9AD5 0x20CED +0x9AD6 0x20D6F +0x9AD7 0x20DB2 +0x9AD8 0x20DC8 +0x9AD9 0x6955 +0x9ADA 0x9C2F +0x9ADB 0x87A5 +0x9ADC 0x20E04 +0x9ADD 0x20E0E +0x9ADE 0x20ED7 +0x9ADF 0x20F90 +0x9AE0 0x20F2D +0x9AE1 0x20E73 +0x9AE2 0x5C20 +0x9AE3 0x20FBC +0x9AE4 0x5E0B +0x9AE5 0x2105C +0x9AE6 0x2104F +0x9AE7 0x21076 +0x9AE8 0x671E +0x9AE9 0x2107B +0x9AEA 0x21088 +0x9AEB 0x21096 +0x9AEC 0x3647 +0x9AED 0x210BF +0x9AEE 0x210D3 +0x9AEF 0x2112F +0x9AF0 0x2113B +0x9AF1 0x5364 +0x9AF2 0x84AD +0x9AF3 0x212E3 +0x9AF4 0x21375 +0x9AF5 0x21336 +0x9AF6 0x8B81 +0x9AF7 0x21577 +0x9AF8 0x21619 +0x9AF9 0x217C3 +0x9AFA 0x217C7 +0x9AFB 0x4E78 +0x9AFC 0x70BB +0x9AFD 0x2182D +0x9AFE 0x2196A +0x9B40 0x21A2D +0x9B41 0x21A45 +0x9B42 0x21C2A +0x9B43 0x21C70 +0x9B44 0x21CAC +0x9B45 0x21EC8 +0x9B46 0x62C3 +0x9B47 0x21ED5 +0x9B48 0x21F15 +0x9B49 0x7198 +0x9B4A 0x6855 +0x9B4B 0x22045 +0x9B4C 0x69E9 +0x9B4D 0x36C8 +0x9B4E 0x2227C +0x9B4F 0x223D7 +0x9B50 0x223FA +0x9B51 0x2272A +0x9B52 0x22871 +0x9B53 0x2294F +0x9B54 0x82FD +0x9B55 0x22967 +0x9B56 0x22993 +0x9B57 0x22AD5 +0x9B58 0x89A5 +0x9B59 0x22AE8 +0x9B5A 0x8FA0 +0x9B5B 0x22B0E +0x9B5C 0x97B8 +0x9B5D 0x22B3F +0x9B5E 0x9847 +0x9B5F 0x9ABD +0x9B60 0x22C4C +0x9B62 0x22C88 +0x9B63 0x22CB7 +0x9B64 0x25BE8 +0x9B65 0x22D08 +0x9B66 0x22D12 +0x9B67 0x22DB7 +0x9B68 0x22D95 +0x9B69 0x22E42 +0x9B6A 0x22F74 +0x9B6B 0x22FCC +0x9B6C 0x23033 +0x9B6D 0x23066 +0x9B6E 0x2331F +0x9B6F 0x233DE +0x9B70 0x5FB1 +0x9B71 0x6648 +0x9B72 0x66BF +0x9B73 0x27A79 +0x9B74 0x23567 +0x9B75 0x235F3 +0x9B77 0x249BA +0x9B79 0x2361A +0x9B7A 0x23716 +0x9B7C 0x20346 +0x9B7D 0x58B5 +0x9B7E 0x670E +0x9BA1 0x6918 +0x9BA2 0x23AA7 +0x9BA3 0x27657 +0x9BA4 0x25FE2 +0x9BA5 0x23E11 +0x9BA6 0x23EB9 +0x9BA7 0x275FE +0x9BA8 0x2209A +0x9BA9 0x48D0 +0x9BAA 0x4AB8 +0x9BAB 0x24119 +0x9BAC 0x28A9A +0x9BAD 0x242EE +0x9BAE 0x2430D +0x9BAF 0x2403B +0x9BB0 0x24334 +0x9BB1 0x24396 +0x9BB2 0x24A45 +0x9BB3 0x205CA +0x9BB4 0x51D2 +0x9BB5 0x20611 +0x9BB6 0x599F +0x9BB7 0x21EA8 +0x9BB8 0x3BBE +0x9BB9 0x23CFF +0x9BBA 0x24404 +0x9BBB 0x244D6 +0x9BBC 0x5788 +0x9BBD 0x24674 +0x9BBE 0x399B +0x9BBF 0x2472F +0x9BC0 0x285E8 +0x9BC1 0x299C9 +0x9BC2 0x3762 +0x9BC3 0x221C3 +0x9BC4 0x8B5E +0x9BC5 0x28B4E +0x9BC7 0x24812 +0x9BC8 0x248FB +0x9BC9 0x24A15 +0x9BCA 0x7209 +0x9BCB 0x24AC0 +0x9BCC 0x20C78 +0x9BCD 0x5965 +0x9BCE 0x24EA5 +0x9BCF 0x24F86 +0x9BD0 0x20779 +0x9BD1 0x8EDA +0x9BD2 0x2502C +0x9BD3 0x528F +0x9BD4 0x573F +0x9BD5 0x7171 +0x9BD6 0x25299 +0x9BD7 0x25419 +0x9BD8 0x23F4A +0x9BD9 0x24AA7 +0x9BDA 0x55BC +0x9BDB 0x25446 +0x9BDC 0x2546E +0x9BDD 0x26B52 +0x9BDF 0x3473 +0x9BE0 0x2553F +0x9BE1 0x27632 +0x9BE2 0x2555E +0x9BE3 0x4718 +0x9BE4 0x25562 +0x9BE5 0x25566 +0x9BE6 0x257C7 +0x9BE7 0x2493F +0x9BE8 0x2585D +0x9BE9 0x5066 +0x9BEA 0x34FB +0x9BEB 0x233CC +0x9BED 0x25903 +0x9BEE 0x477C +0x9BEF 0x28948 +0x9BF0 0x25AAE +0x9BF1 0x25B89 +0x9BF2 0x25C06 +0x9BF3 0x21D90 +0x9BF4 0x57A1 +0x9BF5 0x7151 +0x9BF7 0x26102 +0x9BF8 0x27C12 +0x9BF9 0x9056 +0x9BFA 0x261B2 +0x9BFB 0x24F9A +0x9BFC 0x8B62 +0x9BFD 0x26402 +0x9BFE 0x2644A +0x9C40 0x5D5B +0x9C41 0x26BF7 +0x9C43 0x26484 +0x9C44 0x2191C +0x9C45 0x8AEA +0x9C46 0x249F6 +0x9C47 0x26488 +0x9C48 0x23FEF +0x9C49 0x26512 +0x9C4A 0x4BC0 +0x9C4B 0x265BF +0x9C4C 0x266B5 +0x9C4D 0x2271B +0x9C4E 0x9465 +0x9C4F 0x257E1 +0x9C50 0x6195 +0x9C51 0x5A27 +0x9C52 0x2F8CD +0x9C54 0x56B9 +0x9C55 0x24521 +0x9C56 0x266FC +0x9C57 0x4E6A +0x9C58 0x24934 +0x9C59 0x9656 +0x9C5A 0x6D8F +0x9C5B 0x26CBD +0x9C5C 0x3618 +0x9C5D 0x8977 +0x9C5E 0x26799 +0x9C5F 0x2686E +0x9C60 0x26411 +0x9C61 0x2685E +0x9C63 0x268C7 +0x9C64 0x7B42 +0x9C65 0x290C0 +0x9C66 0x20A11 +0x9C67 0x26926 +0x9C69 0x26939 +0x9C6A 0x7A45 +0x9C6C 0x269FA +0x9C6D 0x9A26 +0x9C6E 0x26A2D +0x9C6F 0x365F +0x9C70 0x26469 +0x9C71 0x20021 +0x9C72 0x7983 +0x9C73 0x26A34 +0x9C74 0x26B5B +0x9C75 0x5D2C +0x9C76 0x23519 +0x9C78 0x26B9D +0x9C79 0x46D0 +0x9C7A 0x26CA4 +0x9C7B 0x753B +0x9C7C 0x8865 +0x9C7D 0x26DAE +0x9C7E 0x58B6 +0x9CA1 0x371C +0x9CA2 0x2258D +0x9CA3 0x2704B +0x9CA4 0x271CD +0x9CA5 0x3C54 +0x9CA6 0x27280 +0x9CA7 0x27285 +0x9CA8 0x9281 +0x9CA9 0x2217A +0x9CAA 0x2728B +0x9CAB 0x9330 +0x9CAC 0x272E6 +0x9CAD 0x249D0 +0x9CAE 0x6C39 +0x9CAF 0x949F +0x9CB0 0x27450 +0x9CB1 0x20EF8 +0x9CB2 0x8827 +0x9CB3 0x88F5 +0x9CB4 0x22926 +0x9CB5 0x28473 +0x9CB6 0x217B1 +0x9CB7 0x6EB8 +0x9CB8 0x24A2A +0x9CB9 0x21820 +0x9CBA 0x39A4 +0x9CBB 0x36B9 +0x9CBE 0x453F +0x9CBF 0x66B6 +0x9CC0 0x29CAD +0x9CC1 0x298A4 +0x9CC2 0x8943 +0x9CC3 0x277CC +0x9CC4 0x27858 +0x9CC5 0x56D6 +0x9CC6 0x40DF +0x9CC7 0x2160A +0x9CC8 0x39A1 +0x9CC9 0x2372F +0x9CCA 0x280E8 +0x9CCB 0x213C5 +0x9CCC 0x71AD +0x9CCD 0x8366 +0x9CCE 0x279DD +0x9CCF 0x291A8 +0x9CD1 0x4CB7 +0x9CD2 0x270AF +0x9CD3 0x289AB +0x9CD4 0x279FD +0x9CD5 0x27A0A +0x9CD6 0x27B0B +0x9CD7 0x27D66 +0x9CD8 0x2417A +0x9CD9 0x7B43 +0x9CDA 0x797E +0x9CDB 0x28009 +0x9CDC 0x6FB5 +0x9CDD 0x2A2DF +0x9CDE 0x6A03 +0x9CDF 0x28318 +0x9CE0 0x53A2 +0x9CE1 0x26E07 +0x9CE2 0x93BF +0x9CE3 0x6836 +0x9CE4 0x975D +0x9CE5 0x2816F +0x9CE6 0x28023 +0x9CE7 0x269B5 +0x9CE8 0x213ED +0x9CE9 0x2322F +0x9CEA 0x28048 +0x9CEB 0x5D85 +0x9CEC 0x28C30 +0x9CED 0x28083 +0x9CEE 0x5715 +0x9CEF 0x9823 +0x9CF0 0x28949 +0x9CF1 0x5DAB +0x9CF2 0x24988 +0x9CF3 0x65BE +0x9CF4 0x69D5 +0x9CF5 0x53D2 +0x9CF6 0x24AA5 +0x9CF7 0x23F81 +0x9CF8 0x3C11 +0x9CF9 0x6736 +0x9CFA 0x28090 +0x9CFB 0x280F4 +0x9CFC 0x2812E +0x9CFD 0x21FA1 +0x9CFE 0x2814F +0x9D40 0x28189 +0x9D41 0x281AF +0x9D42 0x2821A +0x9D43 0x28306 +0x9D44 0x2832F +0x9D45 0x2838A +0x9D46 0x35CA +0x9D47 0x28468 +0x9D48 0x286AA +0x9D49 0x48FA +0x9D4A 0x63E6 +0x9D4B 0x28956 +0x9D4C 0x7808 +0x9D4D 0x9255 +0x9D4E 0x289B8 +0x9D4F 0x43F2 +0x9D50 0x289E7 +0x9D51 0x43DF +0x9D52 0x289E8 +0x9D53 0x28B46 +0x9D54 0x28BD4 +0x9D55 0x59F8 +0x9D56 0x28C09 +0x9D58 0x28FC5 +0x9D59 0x290EC +0x9D5B 0x29110 +0x9D5C 0x2913C +0x9D5D 0x3DF7 +0x9D5E 0x2915E +0x9D5F 0x24ACA +0x9D60 0x8FD0 +0x9D61 0x728F +0x9D62 0x568B +0x9D63 0x294E7 +0x9D64 0x295E9 +0x9D65 0x295B0 +0x9D66 0x295B8 +0x9D67 0x29732 +0x9D68 0x298D1 +0x9D69 0x29949 +0x9D6A 0x2996A +0x9D6B 0x299C3 +0x9D6C 0x29A28 +0x9D6D 0x29B0E +0x9D6E 0x29D5A +0x9D6F 0x29D9B +0x9D70 0x7E9F +0x9D71 0x29EF8 +0x9D72 0x29F23 +0x9D73 0x4CA4 +0x9D74 0x9547 +0x9D75 0x2A293 +0x9D76 0x71A2 +0x9D77 0x2A2FF +0x9D78 0x4D91 +0x9D79 0x9012 +0x9D7A 0x2A5CB +0x9D7B 0x4D9C +0x9D7C 0x20C9C +0x9D7D 0x8FBE +0x9D7E 0x55C1 +0x9DA1 0x8FBA +0x9DA2 0x224B0 +0x9DA3 0x8FB9 +0x9DA4 0x24A93 +0x9DA5 0x4509 +0x9DA6 0x7E7F +0x9DA7 0x6F56 +0x9DA8 0x6AB1 +0x9DA9 0x4EEA +0x9DAA 0x34E4 +0x9DAB 0x28B2C +0x9DAC 0x2789D +0x9DAD 0x373A +0x9DAE 0x8E80 +0x9DAF 0x217F5 +0x9DB0 0x28024 +0x9DB1 0x28B6C +0x9DB2 0x28B99 +0x9DB3 0x27A3E +0x9DB4 0x266AF +0x9DB5 0x3DEB +0x9DB6 0x27655 +0x9DB7 0x23CB7 +0x9DB8 0x25635 +0x9DB9 0x25956 +0x9DBA 0x4E9A +0x9DBB 0x25E81 +0x9DBC 0x26258 +0x9DBD 0x56BF +0x9DBE 0x20E6D +0x9DBF 0x8E0E +0x9DC0 0x5B6D +0x9DC1 0x23E88 +0x9DC2 0x24C9E +0x9DC3 0x63DE +0x9DC5 0x217F6 +0x9DC6 0x2187B +0x9DC7 0x6530 +0x9DC8 0x562D +0x9DC9 0x25C4A +0x9DCA 0x541A +0x9DCB 0x25311 +0x9DCC 0x3DC6 +0x9DCD 0x29D98 +0x9DCE 0x4C7D +0x9DCF 0x5622 +0x9DD0 0x561E +0x9DD1 0x7F49 +0x9DD2 0x25ED8 +0x9DD3 0x5975 +0x9DD4 0x23D40 +0x9DD5 0x8770 +0x9DD6 0x4E1C +0x9DD7 0x20FEA +0x9DD8 0x20D49 +0x9DD9 0x236BA +0x9DDA 0x8117 +0x9DDB 0x9D5E +0x9DDC 0x8D18 +0x9DDD 0x763B +0x9DDE 0x9C45 +0x9DDF 0x764E +0x9DE0 0x77B9 +0x9DE1 0x9345 +0x9DE2 0x5432 +0x9DE3 0x8148 +0x9DE4 0x82F7 +0x9DE5 0x5625 +0x9DE6 0x8132 +0x9DE7 0x8418 +0x9DE8 0x80BD +0x9DE9 0x55EA +0x9DEA 0x7962 +0x9DEB 0x5643 +0x9DEC 0x5416 +0x9DED 0x20E9D +0x9DEE 0x35CE +0x9DEF 0x5605 +0x9DF0 0x55F1 +0x9DF1 0x66F1 +0x9DF2 0x282E2 +0x9DF3 0x362D +0x9DF4 0x7534 +0x9DF5 0x55F0 +0x9DF6 0x55BA +0x9DF7 0x5497 +0x9DF8 0x5572 +0x9DF9 0x20C41 +0x9DFA 0x20C96 +0x9DFB 0x5ED0 +0x9DFC 0x25148 +0x9DFD 0x20E76 +0x9DFE 0x22C62 +0x9E40 0x20EA2 +0x9E41 0x9EAB +0x9E42 0x7D5A +0x9E43 0x55DE +0x9E44 0x21075 +0x9E45 0x629D +0x9E46 0x976D +0x9E47 0x5494 +0x9E48 0x8CCD +0x9E49 0x71F6 +0x9E4A 0x9176 +0x9E4B 0x63FC +0x9E4C 0x63B9 +0x9E4D 0x63FE +0x9E4E 0x5569 +0x9E4F 0x22B43 +0x9E50 0x9C72 +0x9E51 0x22EB3 +0x9E52 0x519A +0x9E53 0x34DF +0x9E54 0x20DA7 +0x9E55 0x51A7 +0x9E56 0x544D +0x9E57 0x551E +0x9E58 0x5513 +0x9E59 0x7666 +0x9E5A 0x8E2D +0x9E5B 0x2688A +0x9E5C 0x75B1 +0x9E5D 0x80B6 +0x9E5E 0x8804 +0x9E5F 0x8786 +0x9E60 0x88C7 +0x9E61 0x81B6 +0x9E62 0x841C +0x9E63 0x210C1 +0x9E64 0x44EC +0x9E65 0x7304 +0x9E66 0x24706 +0x9E67 0x5B90 +0x9E68 0x830B +0x9E69 0x26893 +0x9E6A 0x567B +0x9E6B 0x226F4 +0x9E6C 0x27D2F +0x9E6D 0x241A3 +0x9E6E 0x27D73 +0x9E6F 0x26ED0 +0x9E70 0x272B6 +0x9E71 0x9170 +0x9E72 0x211D9 +0x9E73 0x9208 +0x9E74 0x23CFC +0x9E75 0x2A6A9 +0x9E76 0x20EAC +0x9E77 0x20EF9 +0x9E78 0x7266 +0x9E79 0x21CA2 +0x9E7A 0x474E +0x9E7B 0x24FC2 +0x9E7C 0x27FF9 +0x9E7D 0x20FEB +0x9E7E 0x40FA +0x9EA1 0x9C5D +0x9EA2 0x651F +0x9EA3 0x22DA0 +0x9EA4 0x48F3 +0x9EA5 0x247E0 +0x9EA6 0x29D7C +0x9EA7 0x20FEC +0x9EA8 0x20E0A +0x9EAA 0x275A3 +0x9EAB 0x20FED +0x9EAD 0x26048 +0x9EAE 0x21187 +0x9EAF 0x71A3 +0x9EB0 0x7E8E +0x9EB1 0x9D50 +0x9EB2 0x4E1A +0x9EB3 0x4E04 +0x9EB4 0x3577 +0x9EB5 0x5B0D +0x9EB6 0x6CB2 +0x9EB7 0x5367 +0x9EB8 0x36AC +0x9EB9 0x39DC +0x9EBA 0x537D +0x9EBB 0x36A5 +0x9EBC 0x24618 +0x9EBD 0x589A +0x9EBE 0x24B6E +0x9EBF 0x822D +0x9EC0 0x544B +0x9EC1 0x57AA +0x9EC2 0x25A95 +0x9EC3 0x20979 +0x9EC5 0x3A52 +0x9EC6 0x22465 +0x9EC7 0x7374 +0x9EC8 0x29EAC +0x9EC9 0x4D09 +0x9ECA 0x9BED +0x9ECB 0x23CFE +0x9ECC 0x29F30 +0x9ECD 0x4C5B +0x9ECE 0x24FA9 +0x9ECF 0x2959E +0x9ED0 0x29FDE +0x9ED1 0x845C +0x9ED2 0x23DB6 +0x9ED3 0x272B2 +0x9ED4 0x267B3 +0x9ED5 0x23720 +0x9ED6 0x632E +0x9ED7 0x7D25 +0x9ED8 0x23EF7 +0x9ED9 0x23E2C +0x9EDA 0x3A2A +0x9EDB 0x9008 +0x9EDC 0x52CC +0x9EDD 0x3E74 +0x9EDE 0x367A +0x9EDF 0x45E9 +0x9EE0 0x2048E +0x9EE1 0x7640 +0x9EE2 0x5AF0 +0x9EE3 0x20EB6 +0x9EE4 0x787A +0x9EE5 0x27F2E +0x9EE6 0x58A7 +0x9EE7 0x40BF +0x9EE8 0x567C +0x9EE9 0x9B8B +0x9EEA 0x5D74 +0x9EEB 0x7654 +0x9EEC 0x2A434 +0x9EED 0x9E85 +0x9EEE 0x4CE1 +0x9EF0 0x37FB +0x9EF1 0x6119 +0x9EF2 0x230DA +0x9EF3 0x243F2 +0x9EF5 0x565D +0x9EF6 0x212A9 +0x9EF7 0x57A7 +0x9EF8 0x24963 +0x9EF9 0x29E06 +0x9EFA 0x5234 +0x9EFB 0x270AE +0x9EFC 0x35AD +0x9EFE 0x9D7C +0x9F40 0x7C56 +0x9F41 0x9B39 +0x9F42 0x57DE +0x9F43 0x2176C +0x9F44 0x5C53 +0x9F45 0x64D3 +0x9F46 0x294D0 +0x9F47 0x26335 +0x9F48 0x27164 +0x9F49 0x86AD +0x9F4A 0x20D28 +0x9F4B 0x26D22 +0x9F4C 0x24AE2 +0x9F4D 0x20D71 +0x9F4F 0x51FE +0x9F50 0x21F0F +0x9F51 0x5D8E +0x9F52 0x9703 +0x9F53 0x21DD1 +0x9F54 0x9E81 +0x9F55 0x904C +0x9F56 0x7B1F +0x9F57 0x9B02 +0x9F58 0x5CD1 +0x9F59 0x7BA3 +0x9F5A 0x6268 +0x9F5B 0x6335 +0x9F5C 0x9AFF +0x9F5D 0x7BCF +0x9F5E 0x9B2A +0x9F5F 0x7C7E +0x9F61 0x7C42 +0x9F62 0x7C86 +0x9F63 0x9C15 +0x9F64 0x7BFC +0x9F65 0x9B09 +0x9F67 0x9C1B +0x9F68 0x2493E +0x9F69 0x9F5A +0x9F6A 0x5573 +0x9F6B 0x5BC3 +0x9F6C 0x4FFD +0x9F6D 0x9E98 +0x9F6E 0x4FF2 +0x9F6F 0x5260 +0x9F70 0x3E06 +0x9F71 0x52D1 +0x9F72 0x5767 +0x9F73 0x5056 +0x9F74 0x59B7 +0x9F75 0x5E12 +0x9F76 0x97C8 +0x9F77 0x9DAB +0x9F78 0x8F5C +0x9F79 0x5469 +0x9F7A 0x97B4 +0x9F7B 0x9940 +0x9F7C 0x97BA +0x9F7D 0x532C +0x9F7E 0x6130 +0x9FA1 0x692C +0x9FA2 0x53DA +0x9FA3 0x9C0A +0x9FA4 0x9D02 +0x9FA5 0x4C3B +0x9FA6 0x9641 +0x9FA7 0x6980 +0x9FA8 0x50A6 +0x9FA9 0x7546 +0x9FAA 0x2176D +0x9FAB 0x99DA +0x9FAC 0x5273 +0x9FAE 0x9159 +0x9FAF 0x9681 +0x9FB0 0x915C +0x9FB2 0x9151 +0x9FB3 0x28E97 +0x9FB4 0x637F +0x9FB5 0x26D23 +0x9FB6 0x6ACA +0x9FB7 0x5611 +0x9FB8 0x918E +0x9FB9 0x757A +0x9FBA 0x6285 +0x9FBB 0x203FC +0x9FBC 0x734F +0x9FBD 0x7C70 +0x9FBE 0x25C21 +0x9FBF 0x23CFD +0x9FC1 0x24919 +0x9FC2 0x76D6 +0x9FC3 0x9B9D +0x9FC4 0x4E2A +0x9FC5 0x20CD4 +0x9FC6 0x83BE +0x9FC7 0x8842 +0x9FC9 0x5C4A +0x9FCA 0x69C0 +0x9FCC 0x577A +0x9FCD 0x521F +0x9FCE 0x5DF5 +0x9FCF 0x4ECE +0x9FD0 0x6C31 +0x9FD1 0x201F2 +0x9FD2 0x4F39 +0x9FD3 0x549C +0x9FD4 0x54DA +0x9FD5 0x529A +0x9FD6 0x8D82 +0x9FD7 0x35FE +0x9FD9 0x35F3 +0x9FDB 0x6B52 +0x9FDC 0x917C +0x9FDD 0x9FA5 +0x9FDE 0x9B97 +0x9FDF 0x982E +0x9FE0 0x98B4 +0x9FE1 0x9ABA +0x9FE2 0x9EA8 +0x9FE3 0x9E84 +0x9FE4 0x717A +0x9FE5 0x7B14 +0x9FE7 0x6BFA +0x9FE8 0x8818 +0x9FE9 0x7F78 +0x9FEB 0x5620 +0x9FEC 0x2A64A +0x9FED 0x8E77 +0x9FEE 0x9F53 +0x9FF0 0x8DD4 +0x9FF1 0x8E4F +0x9FF2 0x9E1C +0x9FF3 0x8E01 +0x9FF4 0x6282 +0x9FF5 0x2837D +0x9FF6 0x8E28 +0x9FF7 0x8E75 +0x9FF8 0x7AD3 +0x9FF9 0x24A77 +0x9FFA 0x7A3E +0x9FFB 0x78D8 +0x9FFC 0x6CEA +0x9FFD 0x8A67 +0x9FFE 0x7607 +0xA040 0x28A5A +0xA041 0x9F26 +0xA042 0x6CCE +0xA043 0x87D6 +0xA044 0x75C3 +0xA045 0x2A2B2 +0xA046 0x7853 +0xA047 0x2F840 +0xA048 0x8D0C +0xA049 0x72E2 +0xA04A 0x7371 +0xA04B 0x8B2D +0xA04C 0x7302 +0xA04D 0x74F1 +0xA04E 0x8CEB +0xA04F 0x24ABB +0xA050 0x862F +0xA051 0x5FBA +0xA052 0x88A0 +0xA053 0x44B7 +0xA055 0x2183B +0xA056 0x26E05 +0xA058 0x8A7E +0xA059 0x2251B +0xA05B 0x60FD +0xA05C 0x7667 +0xA05D 0x9AD7 +0xA05E 0x9D44 +0xA05F 0x936E +0xA060 0x9B8F +0xA061 0x87F5 +0xA064 0x8CF7 +0xA065 0x732C +0xA066 0x9721 +0xA067 0x9BB0 +0xA068 0x35D6 +0xA069 0x72B2 +0xA06A 0x4C07 +0xA06B 0x7C51 +0xA06C 0x994A +0xA06D 0x26159 +0xA06E 0x6159 +0xA06F 0x4C04 +0xA070 0x9E96 +0xA071 0x617D +0xA073 0x575F +0xA074 0x616F +0xA075 0x62A6 +0xA076 0x6239 +0xA078 0x3A5C +0xA079 0x61E2 +0xA07A 0x53AA +0xA07B 0x233F5 +0xA07C 0x6364 +0xA07D 0x6802 +0xA07E 0x35D2 +0xA0A1 0x5D57 +0xA0A2 0x28BC2 +0xA0A3 0x8FDA +0xA0A4 0x28E39 +0xA0A6 0x50D9 +0xA0A7 0x21D46 +0xA0A8 0x7906 +0xA0A9 0x5332 +0xA0AA 0x9638 +0xA0AB 0x20F3B +0xA0AC 0x4065 +0xA0AE 0x77FE +0xA0B0 0x7CC2 +0xA0B1 0x25F1A +0xA0B2 0x7CDA +0xA0B3 0x7A2D +0xA0B4 0x8066 +0xA0B5 0x8063 +0xA0B6 0x7D4D +0xA0B7 0x7505 +0xA0B8 0x74F2 +0xA0B9 0x8994 +0xA0BA 0x821A +0xA0BB 0x670C +0xA0BC 0x8062 +0xA0BD 0x27486 +0xA0BE 0x805B +0xA0BF 0x74F0 +0xA0C0 0x8103 +0xA0C1 0x7724 +0xA0C2 0x8989 +0xA0C3 0x267CC +0xA0C4 0x7553 +0xA0C5 0x26ED1 +0xA0C6 0x87A9 +0xA0C7 0x87CE +0xA0C8 0x81C8 +0xA0C9 0x878C +0xA0CA 0x8A49 +0xA0CB 0x8CAD +0xA0CC 0x8B43 +0xA0CD 0x772B +0xA0CE 0x74F8 +0xA0CF 0x84DA +0xA0D0 0x3635 +0xA0D1 0x69B2 +0xA0D2 0x8DA6 +0xA0D4 0x89A9 +0xA0D6 0x6DB9 +0xA0D7 0x87C1 +0xA0D8 0x24011 +0xA0D9 0x74E7 +0xA0DA 0x3DDB +0xA0DB 0x7176 +0xA0DC 0x60A4 +0xA0DD 0x619C +0xA0DE 0x3CD1 +0xA0E0 0x6077 +0xA0E2 0x7F71 +0xA0E3 0x28B2D +0xA0E5 0x60E9 +0xA0E6 0x4B7E +0xA0E7 0x5220 +0xA0E8 0x3C18 +0xA0E9 0x23CC7 +0xA0EA 0x25ED7 +0xA0EB 0x27656 +0xA0EC 0x25531 +0xA0ED 0x21944 +0xA0EE 0x212FE +0xA0EF 0x29903 +0xA0F0 0x26DDC +0xA0F1 0x270AD +0xA0F2 0x5CC1 +0xA0F3 0x261AD +0xA0F4 0x28A0F +0xA0F5 0x23677 +0xA0F6 0x200EE +0xA0F7 0x26846 +0xA0F8 0x24F0E +0xA0F9 0x4562 +0xA0FA 0x5B1F +0xA0FB 0x2634C +0xA0FC 0x9F50 +0xA0FD 0x9EA6 +0xA0FE 0x2626B +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2022 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFF64 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C4 0xFF3F +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0x223C +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2641 +0xA1F3 0x2609 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA241 0xFF0F +0xA242 0xFF3C +0xA243 0xFF04 +0xA244 0x00A5 +0xA245 0x3012 +0xA246 0x00A2 +0xA247 0x00A3 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CD 0x5344 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x2460 +0xC6A2 0x2461 +0xC6A3 0x2462 +0xC6A4 0x2463 +0xC6A5 0x2464 +0xC6A6 0x2465 +0xC6A7 0x2466 +0xC6A8 0x2467 +0xC6A9 0x2468 +0xC6AA 0x2469 +0xC6AB 0x2474 +0xC6AC 0x2475 +0xC6AD 0x2476 +0xC6AE 0x2477 +0xC6AF 0x2478 +0xC6B0 0x2479 +0xC6B1 0x247A +0xC6B2 0x247B +0xC6B3 0x247C +0xC6B4 0x247D +0xC6B5 0x2170 +0xC6B6 0x2171 +0xC6B7 0x2172 +0xC6B8 0x2173 +0xC6B9 0x2174 +0xC6BA 0x2175 +0xC6BB 0x2176 +0xC6BC 0x2177 +0xC6BD 0x2178 +0xC6BE 0x2179 +0xC6BF 0x4E36 +0xC6C0 0x4E3F +0xC6C1 0x4E85 +0xC6C2 0x4EA0 +0xC6C3 0x5182 +0xC6C4 0x5196 +0xC6C5 0x51AB +0xC6C6 0x52F9 +0xC6C7 0x5338 +0xC6C8 0x5369 +0xC6C9 0x53B6 +0xC6CA 0x590A +0xC6CB 0x5B80 +0xC6CC 0x5DDB +0xC6CD 0x2F33 +0xC6CE 0x5E7F +0xC6D0 0x5F50 +0xC6D1 0x5F61 +0xC6D2 0x6534 +0xC6D4 0x7592 +0xC6D6 0x8FB5 +0xC6D8 0x00A8 +0xC6D9 0x02C6 +0xC6DA 0x30FD +0xC6DB 0x30FE +0xC6DC 0x309D +0xC6DD 0x309E +0xC6E0 0x3005 +0xC6E1 0x3006 +0xC6E2 0x3007 +0xC6E3 0x30FC +0xC6E4 0xFF3B +0xC6E5 0xFF3D +0xC6E6 0x273D +0xC6E7 0x3041 +0xC6E8 0x3042 +0xC6E9 0x3043 +0xC6EA 0x3044 +0xC6EB 0x3045 +0xC6EC 0x3046 +0xC6ED 0x3047 +0xC6EE 0x3048 +0xC6EF 0x3049 +0xC6F0 0x304A +0xC6F1 0x304B +0xC6F2 0x304C +0xC6F3 0x304D +0xC6F4 0x304E +0xC6F5 0x304F +0xC6F6 0x3050 +0xC6F7 0x3051 +0xC6F8 0x3052 +0xC6F9 0x3053 +0xC6FA 0x3054 +0xC6FB 0x3055 +0xC6FC 0x3056 +0xC6FD 0x3057 +0xC6FE 0x3058 +0xC740 0x3059 +0xC741 0x305A +0xC742 0x305B +0xC743 0x305C +0xC744 0x305D +0xC745 0x305E +0xC746 0x305F +0xC747 0x3060 +0xC748 0x3061 +0xC749 0x3062 +0xC74A 0x3063 +0xC74B 0x3064 +0xC74C 0x3065 +0xC74D 0x3066 +0xC74E 0x3067 +0xC74F 0x3068 +0xC750 0x3069 +0xC751 0x306A +0xC752 0x306B +0xC753 0x306C +0xC754 0x306D +0xC755 0x306E +0xC756 0x306F +0xC757 0x3070 +0xC758 0x3071 +0xC759 0x3072 +0xC75A 0x3073 +0xC75B 0x3074 +0xC75C 0x3075 +0xC75D 0x3076 +0xC75E 0x3077 +0xC75F 0x3078 +0xC760 0x3079 +0xC761 0x307A +0xC762 0x307B +0xC763 0x307C +0xC764 0x307D +0xC765 0x307E +0xC766 0x307F +0xC767 0x3080 +0xC768 0x3081 +0xC769 0x3082 +0xC76A 0x3083 +0xC76B 0x3084 +0xC76C 0x3085 +0xC76D 0x3086 +0xC76E 0x3087 +0xC76F 0x3088 +0xC770 0x3089 +0xC771 0x308A +0xC772 0x308B +0xC773 0x308C +0xC774 0x308D +0xC775 0x308E +0xC776 0x308F +0xC777 0x3090 +0xC778 0x3091 +0xC779 0x3092 +0xC77A 0x3093 +0xC77B 0x30A1 +0xC77C 0x30A2 +0xC77D 0x30A3 +0xC77E 0x30A4 +0xC7A1 0x30A5 +0xC7A2 0x30A6 +0xC7A3 0x30A7 +0xC7A4 0x30A8 +0xC7A5 0x30A9 +0xC7A6 0x30AA +0xC7A7 0x30AB +0xC7A8 0x30AC +0xC7A9 0x30AD +0xC7AA 0x30AE +0xC7AB 0x30AF +0xC7AC 0x30B0 +0xC7AD 0x30B1 +0xC7AE 0x30B2 +0xC7AF 0x30B3 +0xC7B0 0x30B4 +0xC7B1 0x30B5 +0xC7B2 0x30B6 +0xC7B3 0x30B7 +0xC7B4 0x30B8 +0xC7B5 0x30B9 +0xC7B6 0x30BA +0xC7B7 0x30BB +0xC7B8 0x30BC +0xC7B9 0x30BD +0xC7BA 0x30BE +0xC7BB 0x30BF +0xC7BC 0x30C0 +0xC7BD 0x30C1 +0xC7BE 0x30C2 +0xC7BF 0x30C3 +0xC7C0 0x30C4 +0xC7C1 0x30C5 +0xC7C2 0x30C6 +0xC7C3 0x30C7 +0xC7C4 0x30C8 +0xC7C5 0x30C9 +0xC7C6 0x30CA +0xC7C7 0x30CB +0xC7C8 0x30CC +0xC7C9 0x30CD +0xC7CA 0x30CE +0xC7CB 0x30CF +0xC7CC 0x30D0 +0xC7CD 0x30D1 +0xC7CE 0x30D2 +0xC7CF 0x30D3 +0xC7D0 0x30D4 +0xC7D1 0x30D5 +0xC7D2 0x30D6 +0xC7D3 0x30D7 +0xC7D4 0x30D8 +0xC7D5 0x30D9 +0xC7D6 0x30DA +0xC7D7 0x30DB +0xC7D8 0x30DC +0xC7D9 0x30DD +0xC7DA 0x30DE +0xC7DB 0x30DF +0xC7DC 0x30E0 +0xC7DD 0x30E1 +0xC7DE 0x30E2 +0xC7DF 0x30E3 +0xC7E0 0x30E4 +0xC7E1 0x30E5 +0xC7E2 0x30E6 +0xC7E3 0x30E7 +0xC7E4 0x30E8 +0xC7E5 0x30E9 +0xC7E6 0x30EA +0xC7E7 0x30EB +0xC7E8 0x30EC +0xC7E9 0x30ED +0xC7EA 0x30EE +0xC7EB 0x30EF +0xC7EC 0x30F0 +0xC7ED 0x30F1 +0xC7EE 0x30F2 +0xC7EF 0x30F3 +0xC7F0 0x30F4 +0xC7F1 0x30F5 +0xC7F2 0x30F6 +0xC7F3 0x0410 +0xC7F4 0x0411 +0xC7F5 0x0412 +0xC7F6 0x0413 +0xC7F7 0x0414 +0xC7F8 0x0415 +0xC7F9 0x0401 +0xC7FA 0x0416 +0xC7FB 0x0417 +0xC7FC 0x0418 +0xC7FD 0x0419 +0xC7FE 0x041A +0xC840 0x041B +0xC841 0x041C +0xC842 0x041D +0xC843 0x041E +0xC844 0x041F +0xC845 0x0420 +0xC846 0x0421 +0xC847 0x0422 +0xC848 0x0423 +0xC849 0x0424 +0xC84A 0x0425 +0xC84B 0x0426 +0xC84C 0x0427 +0xC84D 0x0428 +0xC84E 0x0429 +0xC84F 0x042A +0xC850 0x042B +0xC851 0x042C +0xC852 0x042D +0xC853 0x042E +0xC854 0x042F +0xC855 0x0430 +0xC856 0x0431 +0xC857 0x0432 +0xC858 0x0433 +0xC859 0x0434 +0xC85A 0x0435 +0xC85B 0x0451 +0xC85C 0x0436 +0xC85D 0x0437 +0xC85E 0x0438 +0xC85F 0x0439 +0xC860 0x043A +0xC861 0x043B +0xC862 0x043C +0xC863 0x043D +0xC864 0x043E +0xC865 0x043F +0xC866 0x0440 +0xC867 0x0441 +0xC868 0x0442 +0xC869 0x0443 +0xC86A 0x0444 +0xC86B 0x0445 +0xC86C 0x0446 +0xC86D 0x0447 +0xC86E 0x0448 +0xC86F 0x0449 +0xC870 0x044A +0xC871 0x044B +0xC872 0x044C +0xC873 0x044D +0xC874 0x044E +0xC875 0x044F +0xC876 0x21E7 +0xC877 0x21B8 +0xC878 0x21B9 +0xC879 0x31CF +0xC87A 0x200CC +0xC87B 0x4E5A +0xC87C 0x2008A +0xC87D 0x5202 +0xC87E 0x4491 +0xC8A1 0x9FB0 +0xC8A2 0x5188 +0xC8A3 0x9FB1 +0xC8A4 0x27607 +0xC8CD 0xFFE2 +0xC8CE 0xFFE4 +0xC8CF 0xFF07 +0xC8D0 0xFF02 +0xC8D1 0x3231 +0xC8D2 0x2116 +0xC8D3 0x2121 +0xC8D4 0x309B +0xC8D5 0x309C +0xC8D6 0x2E80 +0xC8D7 0x2E84 +0xC8D8 0x2E86 +0xC8D9 0x2E87 +0xC8DA 0x2E88 +0xC8DB 0x2E8A +0xC8DC 0x2E8C +0xC8DD 0x2E8D +0xC8DE 0x2E95 +0xC8DF 0x2E9C +0xC8E0 0x2E9D +0xC8E1 0x2EA5 +0xC8E2 0x2EA7 +0xC8E3 0x2EAA +0xC8E4 0x2EAC +0xC8E5 0x2EAE +0xC8E6 0x2EB6 +0xC8E7 0x2EBC +0xC8E8 0x2EBE +0xC8E9 0x2EC6 +0xC8EA 0x2ECA +0xC8EB 0x2ECC +0xC8EC 0x2ECD +0xC8ED 0x2ECF +0xC8EE 0x2ED6 +0xC8EF 0x2ED7 +0xC8F0 0x2EDE +0xC8F1 0x2EE3 +0xC8F5 0x0283 +0xC8F6 0x0250 +0xC8F7 0x025B +0xC8F8 0x0254 +0xC8F9 0x0275 +0xC8FA 0x0153 +0xC8FB 0x00F8 +0xC8FC 0x014B +0xC8FD 0x028A +0xC8FE 0x026A +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F +0xF9FE 0xFFED +0xFA40 0x20547 +0xFA41 0x92DB +0xFA42 0x205DF +0xFA43 0x23FC5 +0xFA44 0x854C +0xFA45 0x42B5 +0xFA46 0x73EF +0xFA47 0x51B5 +0xFA48 0x3649 +0xFA49 0x24942 +0xFA4A 0x289E4 +0xFA4B 0x9344 +0xFA4C 0x219DB +0xFA4D 0x82EE +0xFA4E 0x23CC8 +0xFA4F 0x783C +0xFA50 0x6744 +0xFA51 0x62DF +0xFA52 0x24933 +0xFA53 0x289AA +0xFA54 0x202A0 +0xFA55 0x26BB3 +0xFA56 0x21305 +0xFA57 0x4FAB +0xFA58 0x224ED +0xFA59 0x5008 +0xFA5A 0x26D29 +0xFA5B 0x27A84 +0xFA5C 0x23600 +0xFA5D 0x24AB1 +0xFA5E 0x22513 +0xFA60 0x2037E +0xFA61 0x5FA4 +0xFA62 0x20380 +0xFA63 0x20347 +0xFA64 0x6EDB +0xFA65 0x2041F +0xFA67 0x5101 +0xFA68 0x347A +0xFA69 0x510E +0xFA6A 0x986C +0xFA6B 0x3743 +0xFA6C 0x8416 +0xFA6D 0x249A4 +0xFA6E 0x20487 +0xFA6F 0x5160 +0xFA70 0x233B4 +0xFA71 0x516A +0xFA72 0x20BFF +0xFA73 0x220FC +0xFA74 0x202E5 +0xFA75 0x22530 +0xFA76 0x2058E +0xFA77 0x23233 +0xFA78 0x21983 +0xFA79 0x5B82 +0xFA7A 0x877D +0xFA7B 0x205B3 +0xFA7C 0x23C99 +0xFA7D 0x51B2 +0xFA7E 0x51B8 +0xFAA1 0x9D34 +0xFAA2 0x51C9 +0xFAA3 0x51CF +0xFAA4 0x51D1 +0xFAA5 0x3CDC +0xFAA6 0x51D3 +0xFAA7 0x24AA6 +0xFAA8 0x51B3 +0xFAA9 0x51E2 +0xFAAA 0x5342 +0xFAAB 0x51ED +0xFAAC 0x83CD +0xFAAD 0x693E +0xFAAE 0x2372D +0xFAAF 0x5F7B +0xFAB0 0x520B +0xFAB1 0x5226 +0xFAB2 0x523C +0xFAB3 0x52B5 +0xFAB4 0x5257 +0xFAB5 0x5294 +0xFAB6 0x52B9 +0xFAB7 0x52C5 +0xFAB8 0x7C15 +0xFAB9 0x8542 +0xFABA 0x52E0 +0xFABB 0x860D +0xFABC 0x26B13 +0xFABE 0x28ADE +0xFABF 0x5549 +0xFAC0 0x6ED9 +0xFAC1 0x23F80 +0xFAC2 0x20954 +0xFAC3 0x23FEC +0xFAC4 0x5333 +0xFAC6 0x20BE2 +0xFAC7 0x6CCB +0xFAC8 0x21726 +0xFAC9 0x681B +0xFACA 0x73D5 +0xFACB 0x604A +0xFACC 0x3EAA +0xFACD 0x38CC +0xFACE 0x216E8 +0xFACF 0x71DD +0xFAD0 0x44A2 +0xFAD1 0x536D +0xFAD2 0x5374 +0xFAD3 0x286AB +0xFAD4 0x537E +0xFAD6 0x21596 +0xFAD7 0x21613 +0xFAD8 0x77E6 +0xFAD9 0x5393 +0xFADA 0x28A9B +0xFADB 0x53A0 +0xFADC 0x53AB +0xFADD 0x53AE +0xFADE 0x73A7 +0xFADF 0x25772 +0xFAE0 0x3F59 +0xFAE1 0x739C +0xFAE2 0x53C1 +0xFAE3 0x53C5 +0xFAE4 0x6C49 +0xFAE5 0x4E49 +0xFAE6 0x57FE +0xFAE7 0x53D9 +0xFAE8 0x3AAB +0xFAE9 0x20B8F +0xFAEA 0x53E0 +0xFAEB 0x23FEB +0xFAEC 0x22DA3 +0xFAED 0x53F6 +0xFAEE 0x20C77 +0xFAEF 0x5413 +0xFAF0 0x7079 +0xFAF1 0x552B +0xFAF2 0x6657 +0xFAF3 0x6D5B +0xFAF4 0x546D +0xFAF5 0x26B53 +0xFAF6 0x20D74 +0xFAF7 0x555D +0xFAF8 0x548F +0xFAF9 0x54A4 +0xFAFA 0x47A6 +0xFAFB 0x2170D +0xFAFC 0x20EDD +0xFAFD 0x3DB4 +0xFAFE 0x20D4D +0xFB40 0x289BC +0xFB41 0x22698 +0xFB42 0x5547 +0xFB43 0x4CED +0xFB44 0x542F +0xFB45 0x7417 +0xFB46 0x5586 +0xFB47 0x55A9 +0xFB49 0x218D7 +0xFB4A 0x2403A +0xFB4B 0x4552 +0xFB4C 0x24435 +0xFB4D 0x66B3 +0xFB4E 0x210B4 +0xFB4F 0x5637 +0xFB50 0x66CD +0xFB51 0x2328A +0xFB52 0x66A4 +0xFB53 0x66AD +0xFB54 0x564D +0xFB55 0x564F +0xFB56 0x78F1 +0xFB57 0x56F1 +0xFB58 0x9787 +0xFB59 0x53FE +0xFB5A 0x5700 +0xFB5B 0x56EF +0xFB5C 0x56ED +0xFB5D 0x28B66 +0xFB5E 0x3623 +0xFB5F 0x2124F +0xFB60 0x5746 +0xFB61 0x241A5 +0xFB62 0x6C6E +0xFB63 0x708B +0xFB64 0x5742 +0xFB65 0x36B1 +0xFB66 0x26C7E +0xFB67 0x57E6 +0xFB68 0x21416 +0xFB69 0x5803 +0xFB6A 0x21454 +0xFB6B 0x24363 +0xFB6C 0x5826 +0xFB6D 0x24BF5 +0xFB6E 0x585C +0xFB6F 0x58AA +0xFB70 0x3561 +0xFB71 0x58E0 +0xFB72 0x58DC +0xFB73 0x2123C +0xFB74 0x58FB +0xFB75 0x5BFF +0xFB76 0x5743 +0xFB77 0x2A150 +0xFB78 0x24278 +0xFB79 0x93D3 +0xFB7A 0x35A1 +0xFB7B 0x591F +0xFB7C 0x68A6 +0xFB7D 0x36C3 +0xFB7E 0x6E59 +0xFBA1 0x2163E +0xFBA2 0x5A24 +0xFBA3 0x5553 +0xFBA4 0x21692 +0xFBA5 0x8505 +0xFBA6 0x59C9 +0xFBA7 0x20D4E +0xFBA8 0x26C81 +0xFBA9 0x26D2A +0xFBAA 0x217DC +0xFBAB 0x59D9 +0xFBAC 0x217FB +0xFBAD 0x217B2 +0xFBAE 0x26DA6 +0xFBAF 0x6D71 +0xFBB0 0x21828 +0xFBB1 0x216D5 +0xFBB2 0x59F9 +0xFBB3 0x26E45 +0xFBB4 0x5AAB +0xFBB5 0x5A63 +0xFBB6 0x36E6 +0xFBB7 0x249A9 +0xFBB9 0x3708 +0xFBBA 0x5A96 +0xFBBB 0x7465 +0xFBBC 0x5AD3 +0xFBBD 0x26FA1 +0xFBBE 0x22554 +0xFBBF 0x3D85 +0xFBC0 0x21911 +0xFBC1 0x3732 +0xFBC2 0x216B8 +0xFBC3 0x5E83 +0xFBC4 0x52D0 +0xFBC5 0x5B76 +0xFBC6 0x6588 +0xFBC7 0x5B7C +0xFBC8 0x27A0E +0xFBC9 0x4004 +0xFBCA 0x485D +0xFBCB 0x20204 +0xFBCC 0x5BD5 +0xFBCD 0x6160 +0xFBCE 0x21A34 +0xFBCF 0x259CC +0xFBD0 0x205A5 +0xFBD1 0x5BF3 +0xFBD2 0x5B9D +0xFBD3 0x4D10 +0xFBD4 0x5C05 +0xFBD5 0x21B44 +0xFBD6 0x5C13 +0xFBD7 0x73CE +0xFBD8 0x5C14 +0xFBD9 0x21CA5 +0xFBDA 0x26B28 +0xFBDB 0x5C49 +0xFBDC 0x48DD +0xFBDD 0x5C85 +0xFBDE 0x5CE9 +0xFBDF 0x5CEF +0xFBE0 0x5D8B +0xFBE1 0x21DF9 +0xFBE2 0x21E37 +0xFBE3 0x5D10 +0xFBE4 0x5D18 +0xFBE5 0x5D46 +0xFBE6 0x21EA4 +0xFBE7 0x5CBA +0xFBE8 0x5DD7 +0xFBE9 0x82FC +0xFBEA 0x382D +0xFBEB 0x24901 +0xFBEC 0x22049 +0xFBED 0x22173 +0xFBEE 0x8287 +0xFBEF 0x3836 +0xFBF0 0x3BC2 +0xFBF1 0x5E2E +0xFBF2 0x6A8A +0xFBF4 0x5E7A +0xFBF5 0x244BC +0xFBF6 0x20CD3 +0xFBF7 0x53A6 +0xFBF8 0x4EB7 +0xFBFA 0x53A8 +0xFBFB 0x21771 +0xFBFC 0x5E09 +0xFBFD 0x5EF4 +0xFBFE 0x28482 +0xFC40 0x5EF9 +0xFC41 0x5EFB +0xFC42 0x38A0 +0xFC43 0x5EFC +0xFC44 0x683E +0xFC45 0x941B +0xFC46 0x5F0D +0xFC47 0x201C1 +0xFC48 0x2F894 +0xFC49 0x3ADE +0xFC4A 0x48AE +0xFC4B 0x2133A +0xFC4C 0x5F3A +0xFC4D 0x26888 +0xFC4E 0x223D0 +0xFC50 0x22471 +0xFC51 0x5F63 +0xFC52 0x97BD +0xFC53 0x26E6E +0xFC54 0x5F72 +0xFC55 0x9340 +0xFC56 0x28A36 +0xFC57 0x5FA7 +0xFC58 0x5DB6 +0xFC59 0x3D5F +0xFC5A 0x25250 +0xFC5B 0x21F6A +0xFC5C 0x270F8 +0xFC5D 0x22668 +0xFC5E 0x91D6 +0xFC5F 0x2029E +0xFC60 0x28A29 +0xFC61 0x6031 +0xFC62 0x6685 +0xFC63 0x21877 +0xFC64 0x3963 +0xFC65 0x3DC7 +0xFC66 0x3639 +0xFC67 0x5790 +0xFC68 0x227B4 +0xFC69 0x7971 +0xFC6A 0x3E40 +0xFC6B 0x609E +0xFC6D 0x60B3 +0xFC6E 0x24982 +0xFC6F 0x2498F +0xFC70 0x27A53 +0xFC71 0x74A4 +0xFC72 0x50E1 +0xFC73 0x5AA0 +0xFC74 0x6164 +0xFC75 0x8424 +0xFC76 0x6142 +0xFC77 0x2F8A6 +0xFC78 0x26ED2 +0xFC79 0x6181 +0xFC7A 0x51F4 +0xFC7B 0x20656 +0xFC7C 0x6187 +0xFC7D 0x5BAA +0xFC7E 0x23FB7 +0xFCA1 0x2285F +0xFCA2 0x61D3 +0xFCA3 0x28B9D +0xFCA4 0x2995D +0xFCA5 0x61D0 +0xFCA6 0x3932 +0xFCA7 0x22980 +0xFCA8 0x228C1 +0xFCA9 0x6023 +0xFCAA 0x615C +0xFCAB 0x651E +0xFCAC 0x638B +0xFCAD 0x20118 +0xFCAE 0x62C5 +0xFCAF 0x21770 +0xFCB0 0x62D5 +0xFCB1 0x22E0D +0xFCB2 0x636C +0xFCB3 0x249DF +0xFCB4 0x3A17 +0xFCB5 0x6438 +0xFCB6 0x63F8 +0xFCB7 0x2138E +0xFCB8 0x217FC +0xFCBA 0x6F8A +0xFCBB 0x22E36 +0xFCBC 0x9814 +0xFCBD 0x2408C +0xFCBE 0x2571D +0xFCBF 0x64E1 +0xFCC0 0x64E5 +0xFCC1 0x947B +0xFCC2 0x3A66 +0xFCC3 0x643A +0xFCC4 0x3A57 +0xFCC5 0x654D +0xFCC6 0x6F16 +0xFCC7 0x24A28 +0xFCC8 0x24A23 +0xFCC9 0x6585 +0xFCCA 0x656D +0xFCCB 0x655F +0xFCCC 0x2307E +0xFCCD 0x65B5 +0xFCCE 0x24940 +0xFCCF 0x4B37 +0xFCD0 0x65D1 +0xFCD1 0x40D8 +0xFCD2 0x21829 +0xFCD3 0x65E0 +0xFCD4 0x65E3 +0xFCD5 0x5FDF +0xFCD6 0x23400 +0xFCD7 0x6618 +0xFCD8 0x231F7 +0xFCD9 0x231F8 +0xFCDA 0x6644 +0xFCDB 0x231A4 +0xFCDC 0x231A5 +0xFCDD 0x664B +0xFCDE 0x20E75 +0xFCDF 0x6667 +0xFCE0 0x251E6 +0xFCE1 0x6673 +0xFCE3 0x21E3D +0xFCE4 0x23231 +0xFCE5 0x285F4 +0xFCE6 0x231C8 +0xFCE7 0x25313 +0xFCE8 0x77C5 +0xFCE9 0x228F7 +0xFCEA 0x99A4 +0xFCEB 0x6702 +0xFCEC 0x2439C +0xFCED 0x24A21 +0xFCEE 0x3B2B +0xFCEF 0x69FA +0xFCF0 0x237C2 +0xFCF2 0x6767 +0xFCF3 0x6762 +0xFCF4 0x241CD +0xFCF5 0x290ED +0xFCF6 0x67D7 +0xFCF7 0x44E9 +0xFCF8 0x6822 +0xFCF9 0x6E50 +0xFCFA 0x923C +0xFCFB 0x6801 +0xFCFC 0x233E6 +0xFCFD 0x26DA0 +0xFCFE 0x685D +0xFD40 0x2346F +0xFD41 0x69E1 +0xFD42 0x6A0B +0xFD43 0x28ADF +0xFD44 0x6973 +0xFD45 0x68C3 +0xFD46 0x235CD +0xFD47 0x6901 +0xFD48 0x6900 +0xFD49 0x3D32 +0xFD4A 0x3A01 +0xFD4B 0x2363C +0xFD4C 0x3B80 +0xFD4D 0x67AC +0xFD4E 0x6961 +0xFD4F 0x28A4A +0xFD50 0x42FC +0xFD51 0x6936 +0xFD52 0x6998 +0xFD53 0x3BA1 +0xFD54 0x203C9 +0xFD55 0x8363 +0xFD56 0x5090 +0xFD57 0x69F9 +0xFD58 0x23659 +0xFD59 0x2212A +0xFD5A 0x6A45 +0xFD5B 0x23703 +0xFD5C 0x6A9D +0xFD5D 0x3BF3 +0xFD5E 0x67B1 +0xFD5F 0x6AC8 +0xFD60 0x2919C +0xFD61 0x3C0D +0xFD62 0x6B1D +0xFD63 0x20923 +0xFD64 0x60DE +0xFD65 0x6B35 +0xFD66 0x6B74 +0xFD67 0x227CD +0xFD68 0x6EB5 +0xFD69 0x23ADB +0xFD6A 0x203B5 +0xFD6B 0x21958 +0xFD6C 0x3740 +0xFD6D 0x5421 +0xFD6E 0x23B5A +0xFD6F 0x6BE1 +0xFD70 0x23EFC +0xFD71 0x6BDC +0xFD72 0x6C37 +0xFD73 0x2248B +0xFD74 0x248F1 +0xFD75 0x26B51 +0xFD76 0x6C5A +0xFD77 0x8226 +0xFD78 0x6C79 +0xFD79 0x23DBC +0xFD7A 0x44C5 +0xFD7B 0x23DBD +0xFD7C 0x241A4 +0xFD7D 0x2490C +0xFD7E 0x24900 +0xFDA1 0x23CC9 +0xFDA2 0x36E5 +0xFDA3 0x3CEB +0xFDA4 0x20D32 +0xFDA5 0x9B83 +0xFDA6 0x231F9 +0xFDA7 0x22491 +0xFDA8 0x7F8F +0xFDA9 0x6837 +0xFDAA 0x26D25 +0xFDAB 0x26DA1 +0xFDAC 0x26DEB +0xFDAD 0x6D96 +0xFDAE 0x6D5C +0xFDAF 0x6E7C +0xFDB0 0x6F04 +0xFDB1 0x2497F +0xFDB2 0x24085 +0xFDB3 0x26E72 +0xFDB4 0x8533 +0xFDB5 0x26F74 +0xFDB6 0x51C7 +0xFDB9 0x842E +0xFDBA 0x28B21 +0xFDBC 0x23E2F +0xFDBD 0x7453 +0xFDBE 0x23F82 +0xFDBF 0x79CC +0xFDC0 0x6E4F +0xFDC1 0x5A91 +0xFDC2 0x2304B +0xFDC3 0x6FF8 +0xFDC4 0x370D +0xFDC5 0x6F9D +0xFDC6 0x23E30 +0xFDC7 0x6EFA +0xFDC8 0x21497 +0xFDC9 0x2403D +0xFDCA 0x4555 +0xFDCB 0x93F0 +0xFDCC 0x6F44 +0xFDCD 0x6F5C +0xFDCE 0x3D4E +0xFDCF 0x6F74 +0xFDD0 0x29170 +0xFDD1 0x3D3B +0xFDD2 0x6F9F +0xFDD3 0x24144 +0xFDD4 0x6FD3 +0xFDD5 0x24091 +0xFDD6 0x24155 +0xFDD7 0x24039 +0xFDD8 0x23FF0 +0xFDD9 0x23FB4 +0xFDDA 0x2413F +0xFDDB 0x51DF +0xFDDC 0x24156 +0xFDDD 0x24157 +0xFDDE 0x24140 +0xFDDF 0x261DD +0xFDE0 0x704B +0xFDE1 0x707E +0xFDE2 0x70A7 +0xFDE3 0x7081 +0xFDE4 0x70CC +0xFDE5 0x70D5 +0xFDE6 0x70D6 +0xFDE7 0x70DF +0xFDE8 0x4104 +0xFDE9 0x3DE8 +0xFDEA 0x71B4 +0xFDEB 0x7196 +0xFDEC 0x24277 +0xFDED 0x712B +0xFDEE 0x7145 +0xFDEF 0x5A88 +0xFDF0 0x714A +0xFDF2 0x5C9C +0xFDF3 0x24365 +0xFDF4 0x714F +0xFDF5 0x9362 +0xFDF6 0x242C1 +0xFDF7 0x712C +0xFDF8 0x2445A +0xFDF9 0x24A27 +0xFDFA 0x24A22 +0xFDFB 0x71BA +0xFDFC 0x28BE8 +0xFDFD 0x70BD +0xFDFE 0x720E +0xFE40 0x9442 +0xFE41 0x7215 +0xFE42 0x5911 +0xFE43 0x9443 +0xFE44 0x7224 +0xFE45 0x9341 +0xFE46 0x25605 +0xFE47 0x722E +0xFE48 0x7240 +0xFE49 0x24974 +0xFE4A 0x68BD +0xFE4B 0x7255 +0xFE4C 0x7257 +0xFE4D 0x3E55 +0xFE4E 0x23044 +0xFE4F 0x680D +0xFE50 0x6F3D +0xFE51 0x7282 +0xFE53 0x732B +0xFE54 0x24823 +0xFE55 0x2882B +0xFE56 0x48ED +0xFE57 0x28804 +0xFE58 0x7328 +0xFE59 0x732E +0xFE5A 0x73CF +0xFE5B 0x73AA +0xFE5C 0x20C3A +0xFE5D 0x26A2E +0xFE5E 0x73C9 +0xFE5F 0x7449 +0xFE60 0x241E2 +0xFE61 0x216E7 +0xFE62 0x24A24 +0xFE63 0x6623 +0xFE64 0x36C5 +0xFE65 0x249B7 +0xFE66 0x2498D +0xFE67 0x249FB +0xFE68 0x73F7 +0xFE69 0x7415 +0xFE6A 0x6903 +0xFE6B 0x24A26 +0xFE6C 0x7439 +0xFE6D 0x205C3 +0xFE6E 0x3ED7 +0xFE70 0x228AD +0xFE71 0x7460 +0xFE72 0x28EB2 +0xFE73 0x7447 +0xFE74 0x73E4 +0xFE75 0x7476 +0xFE76 0x83B9 +0xFE77 0x746C +0xFE78 0x3730 +0xFE79 0x7474 +0xFE7A 0x93F1 +0xFE7B 0x6A2C +0xFE7C 0x7482 +0xFE7D 0x4953 +0xFE7E 0x24A8C +0xFEA1 0x2415F +0xFEA2 0x24A79 +0xFEA3 0x28B8F +0xFEA4 0x5B46 +0xFEA5 0x28C03 +0xFEA6 0x2189E +0xFEA7 0x74C8 +0xFEA8 0x21988 +0xFEA9 0x750E +0xFEAB 0x751E +0xFEAC 0x28ED9 +0xFEAD 0x21A4B +0xFEAE 0x5BD7 +0xFEAF 0x28EAC +0xFEB0 0x9385 +0xFEB1 0x754D +0xFEB2 0x754A +0xFEB3 0x7567 +0xFEB4 0x756E +0xFEB5 0x24F82 +0xFEB6 0x3F04 +0xFEB7 0x24D13 +0xFEB8 0x758E +0xFEB9 0x745D +0xFEBA 0x759E +0xFEBB 0x75B4 +0xFEBC 0x7602 +0xFEBD 0x762C +0xFEBE 0x7651 +0xFEBF 0x764F +0xFEC0 0x766F +0xFEC1 0x7676 +0xFEC2 0x263F5 +0xFEC3 0x7690 +0xFEC4 0x81EF +0xFEC5 0x37F8 +0xFEC6 0x26911 +0xFEC7 0x2690E +0xFEC8 0x76A1 +0xFEC9 0x76A5 +0xFECA 0x76B7 +0xFECB 0x76CC +0xFECC 0x26F9F +0xFECD 0x8462 +0xFECE 0x2509D +0xFECF 0x2517D +0xFED0 0x21E1C +0xFED1 0x771E +0xFED2 0x7726 +0xFED3 0x7740 +0xFED4 0x64AF +0xFED5 0x25220 +0xFED6 0x7758 +0xFED7 0x232AC +0xFED8 0x77AF +0xFED9 0x28964 +0xFEDA 0x28968 +0xFEDB 0x216C1 +0xFEDC 0x77F4 +0xFEDE 0x21376 +0xFEDF 0x24A12 +0xFEE0 0x68CA +0xFEE1 0x78AF +0xFEE2 0x78C7 +0xFEE3 0x78D3 +0xFEE4 0x96A5 +0xFEE5 0x792E +0xFEE6 0x255E0 +0xFEE7 0x78D7 +0xFEE8 0x7934 +0xFEE9 0x78B1 +0xFEEA 0x2760C +0xFEEB 0x8FB8 +0xFEEC 0x8884 +0xFEED 0x28B2B +0xFEEE 0x26083 +0xFEEF 0x2261C +0xFEF0 0x7986 +0xFEF1 0x8900 +0xFEF2 0x6902 +0xFEF3 0x7980 +0xFEF4 0x25857 +0xFEF5 0x799D +0xFEF6 0x27B39 +0xFEF7 0x793C +0xFEF8 0x79A9 +0xFEF9 0x6E2A +0xFEFA 0x27126 +0xFEFB 0x3EA8 +0xFEFC 0x79C6 +0xFEFD 0x2910D +0xFEFE 0x79D4 diff --git a/3rdPartner/libiconv/tests/BIG5.TXT b/3rdPartner/libiconv/tests/BIG5.TXT new file mode 100644 index 0000000..14613c2 --- /dev/null +++ b/3rdPartner/libiconv/tests/BIG5.TXT @@ -0,0 +1,13831 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2022 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFF64 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x203E +0xA1C4 0xFF3F +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0x223C +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2641 +0xA1F3 0x2609 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA241 0xFF0F +0xA242 0xFF3C +0xA243 0xFF04 +0xA244 0x00A5 +0xA245 0x3012 +0xA246 0x00A2 +0xA247 0x00A3 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CD 0x5344 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC6A1 0x30FE +0xC6A2 0x309D +0xC6A3 0x309E +0xC6A4 0x3005 +0xC6A5 0x3041 +0xC6A6 0x3042 +0xC6A7 0x3043 +0xC6A8 0x3044 +0xC6A9 0x3045 +0xC6AA 0x3046 +0xC6AB 0x3047 +0xC6AC 0x3048 +0xC6AD 0x3049 +0xC6AE 0x304A +0xC6AF 0x304B +0xC6B0 0x304C +0xC6B1 0x304D +0xC6B2 0x304E +0xC6B3 0x304F +0xC6B4 0x3050 +0xC6B5 0x3051 +0xC6B6 0x3052 +0xC6B7 0x3053 +0xC6B8 0x3054 +0xC6B9 0x3055 +0xC6BA 0x3056 +0xC6BB 0x3057 +0xC6BC 0x3058 +0xC6BD 0x3059 +0xC6BE 0x305A +0xC6BF 0x305B +0xC6C0 0x305C +0xC6C1 0x305D +0xC6C2 0x305E +0xC6C3 0x305F +0xC6C4 0x3060 +0xC6C5 0x3061 +0xC6C6 0x3062 +0xC6C7 0x3063 +0xC6C8 0x3064 +0xC6C9 0x3065 +0xC6CA 0x3066 +0xC6CB 0x3067 +0xC6CC 0x3068 +0xC6CD 0x3069 +0xC6CE 0x306A +0xC6CF 0x306B +0xC6D0 0x306C +0xC6D1 0x306D +0xC6D2 0x306E +0xC6D3 0x306F +0xC6D4 0x3070 +0xC6D5 0x3071 +0xC6D6 0x3072 +0xC6D7 0x3073 +0xC6D8 0x3074 +0xC6D9 0x3075 +0xC6DA 0x3076 +0xC6DB 0x3077 +0xC6DC 0x3078 +0xC6DD 0x3079 +0xC6DE 0x307A +0xC6DF 0x307B +0xC6E0 0x307C +0xC6E1 0x307D +0xC6E2 0x307E +0xC6E3 0x307F +0xC6E4 0x3080 +0xC6E5 0x3081 +0xC6E6 0x3082 +0xC6E7 0x3083 +0xC6E8 0x3084 +0xC6E9 0x3085 +0xC6EA 0x3086 +0xC6EB 0x3087 +0xC6EC 0x3088 +0xC6ED 0x3089 +0xC6EE 0x308A +0xC6EF 0x308B +0xC6F0 0x308C +0xC6F1 0x308D +0xC6F2 0x308E +0xC6F3 0x308F +0xC6F4 0x3090 +0xC6F5 0x3091 +0xC6F6 0x3092 +0xC6F7 0x3093 +0xC6F8 0x30A1 +0xC6F9 0x30A2 +0xC6FA 0x30A3 +0xC6FB 0x30A4 +0xC6FC 0x30A5 +0xC6FD 0x30A6 +0xC6FE 0x30A7 +0xC740 0x30A8 +0xC741 0x30A9 +0xC742 0x30AA +0xC743 0x30AB +0xC744 0x30AC +0xC745 0x30AD +0xC746 0x30AE +0xC747 0x30AF +0xC748 0x30B0 +0xC749 0x30B1 +0xC74A 0x30B2 +0xC74B 0x30B3 +0xC74C 0x30B4 +0xC74D 0x30B5 +0xC74E 0x30B6 +0xC74F 0x30B7 +0xC750 0x30B8 +0xC751 0x30B9 +0xC752 0x30BA +0xC753 0x30BB +0xC754 0x30BC +0xC755 0x30BD +0xC756 0x30BE +0xC757 0x30BF +0xC758 0x30C0 +0xC759 0x30C1 +0xC75A 0x30C2 +0xC75B 0x30C3 +0xC75C 0x30C4 +0xC75D 0x30C5 +0xC75E 0x30C6 +0xC75F 0x30C7 +0xC760 0x30C8 +0xC761 0x30C9 +0xC762 0x30CA +0xC763 0x30CB +0xC764 0x30CC +0xC765 0x30CD +0xC766 0x30CE +0xC767 0x30CF +0xC768 0x30D0 +0xC769 0x30D1 +0xC76A 0x30D2 +0xC76B 0x30D3 +0xC76C 0x30D4 +0xC76D 0x30D5 +0xC76E 0x30D6 +0xC76F 0x30D7 +0xC770 0x30D8 +0xC771 0x30D9 +0xC772 0x30DA +0xC773 0x30DB +0xC774 0x30DC +0xC775 0x30DD +0xC776 0x30DE +0xC777 0x30DF +0xC778 0x30E0 +0xC779 0x30E1 +0xC77A 0x30E2 +0xC77B 0x30E3 +0xC77C 0x30E4 +0xC77D 0x30E5 +0xC77E 0x30E6 +0xC7A1 0x30E7 +0xC7A2 0x30E8 +0xC7A3 0x30E9 +0xC7A4 0x30EA +0xC7A5 0x30EB +0xC7A6 0x30EC +0xC7A7 0x30ED +0xC7A8 0x30EE +0xC7A9 0x30EF +0xC7AA 0x30F0 +0xC7AB 0x30F1 +0xC7AC 0x30F2 +0xC7AD 0x30F3 +0xC7AE 0x30F4 +0xC7AF 0x30F5 +0xC7B0 0x30F6 +0xC7B1 0x0414 +0xC7B2 0x0415 +0xC7B3 0x0401 +0xC7B4 0x0416 +0xC7B5 0x0417 +0xC7B6 0x0418 +0xC7B7 0x0419 +0xC7B8 0x041A +0xC7B9 0x041B +0xC7BA 0x041C +0xC7BB 0x0423 +0xC7BC 0x0424 +0xC7BD 0x0425 +0xC7BE 0x0426 +0xC7BF 0x0427 +0xC7C0 0x0428 +0xC7C1 0x0429 +0xC7C2 0x042A +0xC7C3 0x042B +0xC7C4 0x042C +0xC7C5 0x042D +0xC7C6 0x042E +0xC7C7 0x042F +0xC7C8 0x0430 +0xC7C9 0x0431 +0xC7CA 0x0432 +0xC7CB 0x0433 +0xC7CC 0x0434 +0xC7CD 0x0435 +0xC7CE 0x0451 +0xC7CF 0x0436 +0xC7D0 0x0437 +0xC7D1 0x0438 +0xC7D2 0x0439 +0xC7D3 0x043A +0xC7D4 0x043B +0xC7D5 0x043C +0xC7D6 0x043D +0xC7D7 0x043E +0xC7D8 0x043F +0xC7D9 0x0440 +0xC7DA 0x0441 +0xC7DB 0x0442 +0xC7DC 0x0443 +0xC7DD 0x0444 +0xC7DE 0x0445 +0xC7DF 0x0446 +0xC7E0 0x0447 +0xC7E1 0x0448 +0xC7E2 0x0449 +0xC7E3 0x044A +0xC7E4 0x044B +0xC7E5 0x044C +0xC7E6 0x044D +0xC7E7 0x044E +0xC7E8 0x044F +0xC7E9 0x2460 +0xC7EA 0x2461 +0xC7EB 0x2462 +0xC7EC 0x2463 +0xC7ED 0x2464 +0xC7EE 0x2465 +0xC7EF 0x2466 +0xC7F0 0x2467 +0xC7F1 0x2468 +0xC7F2 0x2469 +0xC7F3 0x2474 +0xC7F4 0x2475 +0xC7F5 0x2476 +0xC7F6 0x2477 +0xC7F7 0x2478 +0xC7F8 0x2479 +0xC7F9 0x247A +0xC7FA 0x247B +0xC7FB 0x247C +0xC7FC 0x247D +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 diff --git a/3rdPartner/libiconv/tests/CP1046.TXT b/3rdPartner/libiconv/tests/CP1046.TXT new file mode 100644 index 0000000..206168c --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1046.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0xFE88 +0x81 0x00D7 +0x82 0x00F7 +0x83 0xF8F6 +0x84 0xF8F5 +0x85 0xF8F4 +0x86 0xF8F7 +0x87 0xFE71 +0x88 0x0088 +0x89 0x25A0 +0x8A 0x2502 +0x8B 0x2500 +0x8C 0x2510 +0x8D 0x250C +0x8E 0x2514 +0x8F 0x2518 +0x90 0xFE79 +0x91 0xFE7B +0x92 0xFE7D +0x93 0xFE7F +0x94 0xFE77 +0x95 0xFE8A +0x96 0xFEF0 +0x97 0xFEF3 +0x98 0xFEF2 +0x99 0xFECE +0x9A 0xFECF +0x9B 0xFED0 +0x9C 0xFEF6 +0x9D 0xFEF8 +0x9E 0xFEFA +0x9F 0xFEFC +0xA0 0x00A0 +0xA1 0xF8FA +0xA2 0xF8F9 +0xA3 0xF8F8 +0xA4 0x00A4 +0xA5 0xF8FB +0xA6 0xFE8B +0xA7 0xFE91 +0xA8 0xFE97 +0xA9 0xFE9B +0xAA 0xFE9F +0xAB 0xFEA3 +0xAC 0x060C +0xAD 0x00AD +0xAE 0xFEA7 +0xAF 0xFEB3 +0xB0 0x0660 +0xB1 0x0661 +0xB2 0x0662 +0xB3 0x0663 +0xB4 0x0664 +0xB5 0x0665 +0xB6 0x0666 +0xB7 0x0667 +0xB8 0x0668 +0xB9 0x0669 +0xBA 0xFEB7 +0xBB 0x061B +0xBC 0xFEBB +0xBD 0xFEBF +0xBE 0xFECA +0xBF 0x061F +0xC0 0xFECB +0xC1 0x0621 +0xC2 0x0622 +0xC3 0x0623 +0xC4 0x0624 +0xC5 0x0625 +0xC6 0x0626 +0xC7 0x0627 +0xC8 0x0628 +0xC9 0x0629 +0xCA 0x062A +0xCB 0x062B +0xCC 0x062C +0xCD 0x062D +0xCE 0x062E +0xCF 0x062F +0xD0 0x0630 +0xD1 0x0631 +0xD2 0x0632 +0xD3 0x0633 +0xD4 0x0634 +0xD5 0x0635 +0xD6 0x0636 +0xD7 0x0637 +0xD8 0xFEC7 +0xD9 0x0639 +0xDA 0x063A +0xDB 0xFECC +0xDC 0xFE82 +0xDD 0xFE84 +0xDE 0xFE8E +0xDF 0xFED3 +0xE0 0x0640 +0xE1 0x0641 +0xE2 0x0642 +0xE3 0x0643 +0xE4 0x0644 +0xE5 0x0645 +0xE6 0x0646 +0xE7 0x0647 +0xE8 0x0648 +0xE9 0x0649 +0xEA 0x064A +0xEB 0x064B +0xEC 0x064C +0xED 0x064D +0xEE 0x064E +0xEF 0x064F +0xF0 0x0650 +0xF1 0x0651 +0xF2 0x0652 +0xF3 0xFED7 +0xF4 0xFEDB +0xF5 0xFEDF +0xF6 0xF8FC +0xF7 0xFEF5 +0xF8 0xFEF7 +0xF9 0xFEF9 +0xFA 0xFEFB +0xFB 0xFEE3 +0xFC 0xFEE7 +0xFD 0xFEEC +0xFE 0xFEE9 diff --git a/3rdPartner/libiconv/tests/CP1124.TXT b/3rdPartner/libiconv/tests/CP1124.TXT new file mode 100644 index 0000000..b0b8518 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1124.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0401 +0xA2 0x0402 +0xA3 0x0490 +0xA4 0x0404 +0xA5 0x0405 +0xA6 0x0406 +0xA7 0x0407 +0xA8 0x0408 +0xA9 0x0409 +0xAA 0x040A +0xAB 0x040B +0xAC 0x040C +0xAD 0x00AD +0xAE 0x040E +0xAF 0x040F +0xB0 0x0410 +0xB1 0x0411 +0xB2 0x0412 +0xB3 0x0413 +0xB4 0x0414 +0xB5 0x0415 +0xB6 0x0416 +0xB7 0x0417 +0xB8 0x0418 +0xB9 0x0419 +0xBA 0x041A +0xBB 0x041B +0xBC 0x041C +0xBD 0x041D +0xBE 0x041E +0xBF 0x041F +0xC0 0x0420 +0xC1 0x0421 +0xC2 0x0422 +0xC3 0x0423 +0xC4 0x0424 +0xC5 0x0425 +0xC6 0x0426 +0xC7 0x0427 +0xC8 0x0428 +0xC9 0x0429 +0xCA 0x042A +0xCB 0x042B +0xCC 0x042C +0xCD 0x042D +0xCE 0x042E +0xCF 0x042F +0xD0 0x0430 +0xD1 0x0431 +0xD2 0x0432 +0xD3 0x0433 +0xD4 0x0434 +0xD5 0x0435 +0xD6 0x0436 +0xD7 0x0437 +0xD8 0x0438 +0xD9 0x0439 +0xDA 0x043A +0xDB 0x043B +0xDC 0x043C +0xDD 0x043D +0xDE 0x043E +0xDF 0x043F +0xE0 0x0440 +0xE1 0x0441 +0xE2 0x0442 +0xE3 0x0443 +0xE4 0x0444 +0xE5 0x0445 +0xE6 0x0446 +0xE7 0x0447 +0xE8 0x0448 +0xE9 0x0449 +0xEA 0x044A +0xEB 0x044B +0xEC 0x044C +0xED 0x044D +0xEE 0x044E +0xEF 0x044F +0xF0 0x2116 +0xF1 0x0451 +0xF2 0x0452 +0xF3 0x0491 +0xF4 0x0454 +0xF5 0x0455 +0xF6 0x0456 +0xF7 0x0457 +0xF8 0x0458 +0xF9 0x0459 +0xFA 0x045A +0xFB 0x045B +0xFC 0x045C +0xFD 0x00A7 +0xFE 0x045E +0xFF 0x045F diff --git a/3rdPartner/libiconv/tests/CP1125.TXT b/3rdPartner/libiconv/tests/CP1125.TXT new file mode 100644 index 0000000..de76962 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1125.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0410 +0x81 0x0411 +0x82 0x0412 +0x83 0x0413 +0x84 0x0414 +0x85 0x0415 +0x86 0x0416 +0x87 0x0417 +0x88 0x0418 +0x89 0x0419 +0x8A 0x041A +0x8B 0x041B +0x8C 0x041C +0x8D 0x041D +0x8E 0x041E +0x8F 0x041F +0x90 0x0420 +0x91 0x0421 +0x92 0x0422 +0x93 0x0423 +0x94 0x0424 +0x95 0x0425 +0x96 0x0426 +0x97 0x0427 +0x98 0x0428 +0x99 0x0429 +0x9A 0x042A +0x9B 0x042B +0x9C 0x042C +0x9D 0x042D +0x9E 0x042E +0x9F 0x042F +0xA0 0x0430 +0xA1 0x0431 +0xA2 0x0432 +0xA3 0x0433 +0xA4 0x0434 +0xA5 0x0435 +0xA6 0x0436 +0xA7 0x0437 +0xA8 0x0438 +0xA9 0x0439 +0xAA 0x043A +0xAB 0x043B +0xAC 0x043C +0xAD 0x043D +0xAE 0x043E +0xAF 0x043F +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x0440 +0xE1 0x0441 +0xE2 0x0442 +0xE3 0x0443 +0xE4 0x0444 +0xE5 0x0445 +0xE6 0x0446 +0xE7 0x0447 +0xE8 0x0448 +0xE9 0x0449 +0xEA 0x044A +0xEB 0x044B +0xEC 0x044C +0xED 0x044D +0xEE 0x044E +0xEF 0x044F +0xF0 0x0401 +0xF1 0x0451 +0xF2 0x0490 +0xF3 0x0491 +0xF4 0x0404 +0xF5 0x0454 +0xF6 0x0406 +0xF7 0x0456 +0xF8 0x0407 +0xF9 0x0457 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x2116 +0xFD 0x00A4 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP1129.TXT b/3rdPartner/libiconv/tests/CP1129.TXT new file mode 100644 index 0000000..c2e7546 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1129.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x0153 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x0178 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0152 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x0300 +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0110 +0xD1 0x00D1 +0xD2 0x0309 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x01A0 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x01AF +0xDE 0x0303 +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x0301 +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0111 +0xF1 0x00F1 +0xF2 0x0323 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x01A1 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x01B0 +0xFE 0x20AB +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP1131.TXT b/3rdPartner/libiconv/tests/CP1131.TXT new file mode 100644 index 0000000..ad9c77a --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1131.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0410 +0x81 0x0411 +0x82 0x0412 +0x83 0x0413 +0x84 0x0414 +0x85 0x0415 +0x86 0x0416 +0x87 0x0417 +0x88 0x0418 +0x89 0x0419 +0x8A 0x041A +0x8B 0x041B +0x8C 0x041C +0x8D 0x041D +0x8E 0x041E +0x8F 0x041F +0x90 0x0420 +0x91 0x0421 +0x92 0x0422 +0x93 0x0423 +0x94 0x0424 +0x95 0x0425 +0x96 0x0426 +0x97 0x0427 +0x98 0x0428 +0x99 0x0429 +0x9A 0x042A +0x9B 0x042B +0x9C 0x042C +0x9D 0x042D +0x9E 0x042E +0x9F 0x042F +0xA0 0x0430 +0xA1 0x0431 +0xA2 0x0432 +0xA3 0x0433 +0xA4 0x0434 +0xA5 0x0435 +0xA6 0x0436 +0xA7 0x0437 +0xA8 0x0438 +0xA9 0x0439 +0xAA 0x043A +0xAB 0x043B +0xAC 0x043C +0xAD 0x043D +0xAE 0x043E +0xAF 0x043F +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x0440 +0xE1 0x0441 +0xE2 0x0442 +0xE3 0x0443 +0xE4 0x0444 +0xE5 0x0445 +0xE6 0x0446 +0xE7 0x0447 +0xE8 0x0448 +0xE9 0x0449 +0xEA 0x044A +0xEB 0x044B +0xEC 0x044C +0xED 0x044D +0xEE 0x044E +0xEF 0x044F +0xF0 0x0401 +0xF1 0x0451 +0xF2 0x0404 +0xF3 0x0454 +0xF4 0x0407 +0xF5 0x0457 +0xF6 0x040E +0xF7 0x045E +0xF8 0x0406 +0xF9 0x0456 +0xFA 0x00B7 +0xFB 0x00A4 +0xFC 0x0490 +0xFD 0x0491 +0xFE 0x2219 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP1133.TXT b/3rdPartner/libiconv/tests/CP1133.TXT new file mode 100644 index 0000000..e3bee84 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1133.TXT @@ -0,0 +1,230 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0E81 +0xA2 0x0E82 +0xA3 0x0E84 +0xA4 0x0E87 +0xA5 0x0E88 +0xA6 0x0EAA +0xA7 0x0E8A +0xA8 0x0E8D +0xA9 0x0E94 +0xAA 0x0E95 +0xAB 0x0E96 +0xAC 0x0E97 +0xAD 0x0E99 +0xAE 0x0E9A +0xAF 0x0E9B +0xB0 0x0E9C +0xB1 0x0E9D +0xB2 0x0E9E +0xB3 0x0E9F +0xB4 0x0EA1 +0xB5 0x0EA2 +0xB6 0x0EA3 +0xB7 0x0EA5 +0xB8 0x0EA7 +0xB9 0x0EAB +0xBA 0x0EAD +0xBB 0x0EAE +0xBF 0x0EAF +0xC0 0x0EB0 +0xC1 0x0EB2 +0xC2 0x0EB3 +0xC3 0x0EB4 +0xC4 0x0EB5 +0xC5 0x0EB6 +0xC6 0x0EB7 +0xC7 0x0EB8 +0xC8 0x0EB9 +0xC9 0x0EBC +0xCA 0x0EB1 +0xCB 0x0EBB +0xCC 0x0EBD +0xD0 0x0EC0 +0xD1 0x0EC1 +0xD2 0x0EC2 +0xD3 0x0EC3 +0xD4 0x0EC4 +0xD5 0x0EC8 +0xD6 0x0EC9 +0xD7 0x0ECA +0xD8 0x0ECB +0xD9 0x0ECC +0xDA 0x0ECD +0xDB 0x0EC6 +0xDD 0x0EDC +0xDE 0x0EDD +0xDF 0x20AD +0xF0 0x0ED0 +0xF1 0x0ED1 +0xF2 0x0ED2 +0xF3 0x0ED3 +0xF4 0x0ED4 +0xF5 0x0ED5 +0xF6 0x0ED6 +0xF7 0x0ED7 +0xF8 0x0ED8 +0xF9 0x0ED9 +0xFC 0x00A2 +0xFD 0x00AC +0xFE 0x00A6 diff --git a/3rdPartner/libiconv/tests/CP1161.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP1161.IRREVERSIBLE.TXT new file mode 100644 index 0000000..07150ab --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1161.IRREVERSIBLE.TXT @@ -0,0 +1,4 @@ +0xA0 0x0E48 +0xDB 0x0E49 +0xDC 0x0E4A +0xDD 0x0E4B diff --git a/3rdPartner/libiconv/tests/CP1161.TXT b/3rdPartner/libiconv/tests/CP1161.TXT new file mode 100644 index 0000000..27407fa --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1161.TXT @@ -0,0 +1,224 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA0 0x0E48 +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDB 0x0E49 +0xDC 0x0E4A +0xDD 0x0E4B +0xDE 0x20AC +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x0E4E +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x0E5A +0xFB 0x0E5B +0xFC 0x00A2 +0xFD 0x00AC +0xFE 0x00A6 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP1162.TXT b/3rdPartner/libiconv/tests/CP1162.TXT new file mode 100644 index 0000000..59ca7c3 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1162.TXT @@ -0,0 +1,248 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x2026 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x0E4E +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x0E5A +0xFB 0x0E5B diff --git a/3rdPartner/libiconv/tests/CP1163.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP1163.IRREVERSIBLE.TXT new file mode 100644 index 0000000..1d052b3 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1163.IRREVERSIBLE.TXT @@ -0,0 +1,2 @@ +0xAF 0x203E +0xD0 0x00D0 diff --git a/3rdPartner/libiconv/tests/CP1163.TXT b/3rdPartner/libiconv/tests/CP1163.TXT new file mode 100644 index 0000000..34d42b8 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1163.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x20AC +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x0153 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x0178 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0152 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x0300 +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0110 +0xD1 0x00D1 +0xD2 0x0309 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x01A0 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x01AF +0xDE 0x0303 +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x0301 +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0111 +0xF1 0x00F1 +0xF2 0x0323 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x01A1 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x01B0 +0xFE 0x20AB +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP1250.TXT b/3rdPartner/libiconv/tests/CP1250.TXT new file mode 100644 index 0000000..2256be9 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1250.TXT @@ -0,0 +1,251 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x89 0x2030 +0x8A 0x0160 +0x8B 0x2039 +0x8C 0x015A +0x8D 0x0164 +0x8E 0x017D +0x8F 0x0179 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9A 0x0161 +0x9B 0x203A +0x9C 0x015B +0x9D 0x0165 +0x9E 0x017E +0x9F 0x017A +0xA0 0x00A0 +0xA1 0x02C7 +0xA2 0x02D8 +0xA3 0x0141 +0xA4 0x00A4 +0xA5 0x0104 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x015E +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x017B +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x02DB +0xB3 0x0142 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x0105 +0xBA 0x015F +0xBB 0x00BB +0xBC 0x013D +0xBD 0x02DD +0xBE 0x013E +0xBF 0x017C +0xC0 0x0154 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x0139 +0xC6 0x0106 +0xC7 0x00C7 +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0118 +0xCB 0x00CB +0xCC 0x011A +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x010E +0xD0 0x0110 +0xD1 0x0143 +0xD2 0x0147 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x0150 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x0158 +0xD9 0x016E +0xDA 0x00DA +0xDB 0x0170 +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x0162 +0xDF 0x00DF +0xE0 0x0155 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x013A +0xE6 0x0107 +0xE7 0x00E7 +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x0119 +0xEB 0x00EB +0xEC 0x011B +0xED 0x00ED +0xEE 0x00EE +0xEF 0x010F +0xF0 0x0111 +0xF1 0x0144 +0xF2 0x0148 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x0151 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x0159 +0xF9 0x016F +0xFA 0x00FA +0xFB 0x0171 +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x0163 +0xFF 0x02D9 diff --git a/3rdPartner/libiconv/tests/CP1251.TXT b/3rdPartner/libiconv/tests/CP1251.TXT new file mode 100644 index 0000000..4e48bfb --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1251.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0402 +0x81 0x0403 +0x82 0x201A +0x83 0x0453 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x20AC +0x89 0x2030 +0x8A 0x0409 +0x8B 0x2039 +0x8C 0x040A +0x8D 0x040C +0x8E 0x040B +0x8F 0x040F +0x90 0x0452 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9A 0x0459 +0x9B 0x203A +0x9C 0x045A +0x9D 0x045C +0x9E 0x045B +0x9F 0x045F +0xA0 0x00A0 +0xA1 0x040E +0xA2 0x045E +0xA3 0x0408 +0xA4 0x00A4 +0xA5 0x0490 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x0401 +0xA9 0x00A9 +0xAA 0x0404 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x0407 +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x0406 +0xB3 0x0456 +0xB4 0x0491 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0451 +0xB9 0x2116 +0xBA 0x0454 +0xBB 0x00BB +0xBC 0x0458 +0xBD 0x0405 +0xBE 0x0455 +0xBF 0x0457 +0xC0 0x0410 +0xC1 0x0411 +0xC2 0x0412 +0xC3 0x0413 +0xC4 0x0414 +0xC5 0x0415 +0xC6 0x0416 +0xC7 0x0417 +0xC8 0x0418 +0xC9 0x0419 +0xCA 0x041A +0xCB 0x041B +0xCC 0x041C +0xCD 0x041D +0xCE 0x041E +0xCF 0x041F +0xD0 0x0420 +0xD1 0x0421 +0xD2 0x0422 +0xD3 0x0423 +0xD4 0x0424 +0xD5 0x0425 +0xD6 0x0426 +0xD7 0x0427 +0xD8 0x0428 +0xD9 0x0429 +0xDA 0x042A +0xDB 0x042B +0xDC 0x042C +0xDD 0x042D +0xDE 0x042E +0xDF 0x042F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x044F diff --git a/3rdPartner/libiconv/tests/CP1252.TXT b/3rdPartner/libiconv/tests/CP1252.TXT new file mode 100644 index 0000000..cd4d981 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1252.TXT @@ -0,0 +1,251 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8A 0x0160 +0x8B 0x2039 +0x8C 0x0152 +0x8E 0x017D +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9A 0x0161 +0x9B 0x203A +0x9C 0x0153 +0x9E 0x017E +0x9F 0x0178 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x00D0 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x00DE +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP1253.TXT b/3rdPartner/libiconv/tests/CP1253.TXT new file mode 100644 index 0000000..20e6af3 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1253.TXT @@ -0,0 +1,239 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x89 0x2030 +0x8B 0x2039 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9B 0x203A +0xA0 0x00A0 +0xA1 0x0385 +0xA2 0x0386 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x2015 +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x0384 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0388 +0xB9 0x0389 +0xBA 0x038A +0xBB 0x00BB +0xBC 0x038C +0xBD 0x00BD +0xBE 0x038E +0xBF 0x038F +0xC0 0x0390 +0xC1 0x0391 +0xC2 0x0392 +0xC3 0x0393 +0xC4 0x0394 +0xC5 0x0395 +0xC6 0x0396 +0xC7 0x0397 +0xC8 0x0398 +0xC9 0x0399 +0xCA 0x039A +0xCB 0x039B +0xCC 0x039C +0xCD 0x039D +0xCE 0x039E +0xCF 0x039F +0xD0 0x03A0 +0xD1 0x03A1 +0xD3 0x03A3 +0xD4 0x03A4 +0xD5 0x03A5 +0xD6 0x03A6 +0xD7 0x03A7 +0xD8 0x03A8 +0xD9 0x03A9 +0xDA 0x03AA +0xDB 0x03AB +0xDC 0x03AC +0xDD 0x03AD +0xDE 0x03AE +0xDF 0x03AF +0xE0 0x03B0 +0xE1 0x03B1 +0xE2 0x03B2 +0xE3 0x03B3 +0xE4 0x03B4 +0xE5 0x03B5 +0xE6 0x03B6 +0xE7 0x03B7 +0xE8 0x03B8 +0xE9 0x03B9 +0xEA 0x03BA +0xEB 0x03BB +0xEC 0x03BC +0xED 0x03BD +0xEE 0x03BE +0xEF 0x03BF +0xF0 0x03C0 +0xF1 0x03C1 +0xF2 0x03C2 +0xF3 0x03C3 +0xF4 0x03C4 +0xF5 0x03C5 +0xF6 0x03C6 +0xF7 0x03C7 +0xF8 0x03C8 +0xF9 0x03C9 +0xFA 0x03CA +0xFB 0x03CB +0xFC 0x03CC +0xFD 0x03CD +0xFE 0x03CE diff --git a/3rdPartner/libiconv/tests/CP1254.TXT b/3rdPartner/libiconv/tests/CP1254.TXT new file mode 100644 index 0000000..efee954 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1254.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8A 0x0160 +0x8B 0x2039 +0x8C 0x0152 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9A 0x0161 +0x9B 0x203A +0x9C 0x0153 +0x9F 0x0178 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x011E +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x0130 +0xDE 0x015E +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x011F +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x0131 +0xFE 0x015F +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP1255-snippet b/3rdPartner/libiconv/tests/CP1255-snippet new file mode 100644 index 0000000..9fce6cd --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1255-snippet @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3rdPartner/libiconv/tests/CP1255-snippet.UTF-8 b/3rdPartner/libiconv/tests/CP1255-snippet.UTF-8 new file mode 100644 index 0000000..c17f227 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1255-snippet.UTF-8 @@ -0,0 +1,320 @@ +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת +דָּם +צִפַרְדֵּעַ +כִּנִּים +עָרוֹב +דֶּבֶר +שְׁחִין +בָּרָד +אַרְבֶּה +חֹשֶׁךְ +מַכַּת בְּכוֹרוֹת diff --git a/3rdPartner/libiconv/tests/CP1255.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP1255.IRREVERSIBLE.TXT new file mode 100644 index 0000000..a67efff --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1255.IRREVERSIBLE.TXT @@ -0,0 +1,34 @@ +0xD6C7 0xFB1F +0xE0C7 0xFB2E +0xE0C8 0xFB2F +0xE0CC 0xFB30 +0xE1CC 0xFB31 +0xE1CF 0xFB4C +0xE2CC 0xFB32 +0xE3CC 0xFB33 +0xE4CC 0xFB34 +0xE5C9 0xFB4B +0xE5CC 0xFB35 +0xE6CC 0xFB36 +0xE8CC 0xFB38 +0xE9C4 0xFB1D +0xE9CC 0xFB39 +0xEACC 0xFB3A +0xEBCC 0xFB3B +0xEBCF 0xFB4D +0xECCC 0xFB3C +0xEECC 0xFB3E +0xF0CC 0xFB40 +0xF1CC 0xFB41 +0xF3CC 0xFB43 +0xF4CC 0xFB44 +0xF4CF 0xFB4E +0xF6CC 0xFB46 +0xF7CC 0xFB47 +0xF8CC 0xFB48 +0xF9CC 0xFB49 +0xF9CCD1 0xFB2C +0xF9CCD2 0xFB2D +0xF9D1 0xFB2A +0xF9D2 0xFB2B +0xFACC 0xFB4A diff --git a/3rdPartner/libiconv/tests/CP1255.TXT b/3rdPartner/libiconv/tests/CP1255.TXT new file mode 100644 index 0000000..505adad --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1255.TXT @@ -0,0 +1,234 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8B 0x2039 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9B 0x203A +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x20AA +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00D7 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00F7 +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x05B0 +0xC1 0x05B1 +0xC2 0x05B2 +0xC3 0x05B3 +0xC4 0x05B4 +0xC5 0x05B5 +0xC6 0x05B6 +0xC7 0x05B7 +0xC8 0x05B8 +0xC9 0x05B9 +0xCA 0x05BA +0xCB 0x05BB +0xCC 0x05BC +0xCD 0x05BD +0xCE 0x05BE +0xCF 0x05BF +0xD0 0x05C0 +0xD1 0x05C1 +0xD2 0x05C2 +0xD3 0x05C3 +0xD4 0x05F0 +0xD5 0x05F1 +0xD6 0x05F2 +0xD7 0x05F3 +0xD8 0x05F4 +0xE0 0x05D0 +0xE1 0x05D1 +0xE2 0x05D2 +0xE3 0x05D3 +0xE4 0x05D4 +0xE5 0x05D5 +0xE6 0x05D6 +0xE7 0x05D7 +0xE8 0x05D8 +0xE9 0x05D9 +0xEA 0x05DA +0xEB 0x05DB +0xEC 0x05DC +0xED 0x05DD +0xEE 0x05DE +0xEF 0x05DF +0xF0 0x05E0 +0xF1 0x05E1 +0xF2 0x05E2 +0xF3 0x05E3 +0xF4 0x05E4 +0xF5 0x05E5 +0xF6 0x05E6 +0xF7 0x05E7 +0xF8 0x05E8 +0xF9 0x05E9 +0xFA 0x05EA +0xFD 0x200E +0xFE 0x200F diff --git a/3rdPartner/libiconv/tests/CP1256.TXT b/3rdPartner/libiconv/tests/CP1256.TXT new file mode 100644 index 0000000..b83a10b --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1256.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x81 0x067E +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8A 0x0679 +0x8B 0x2039 +0x8C 0x0152 +0x8D 0x0686 +0x8E 0x0698 +0x8F 0x0688 +0x90 0x06AF +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x06A9 +0x99 0x2122 +0x9A 0x0691 +0x9B 0x203A +0x9C 0x0153 +0x9D 0x200C +0x9E 0x200D +0x9F 0x06BA +0xA0 0x00A0 +0xA1 0x060C +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x06BE +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x061B +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x061F +0xC0 0x06C1 +0xC1 0x0621 +0xC2 0x0622 +0xC3 0x0623 +0xC4 0x0624 +0xC5 0x0625 +0xC6 0x0626 +0xC7 0x0627 +0xC8 0x0628 +0xC9 0x0629 +0xCA 0x062A +0xCB 0x062B +0xCC 0x062C +0xCD 0x062D +0xCE 0x062E +0xCF 0x062F +0xD0 0x0630 +0xD1 0x0631 +0xD2 0x0632 +0xD3 0x0633 +0xD4 0x0634 +0xD5 0x0635 +0xD6 0x0636 +0xD7 0x00D7 +0xD8 0x0637 +0xD9 0x0638 +0xDA 0x0639 +0xDB 0x063A +0xDC 0x0640 +0xDD 0x0641 +0xDE 0x0642 +0xDF 0x0643 +0xE0 0x00E0 +0xE1 0x0644 +0xE2 0x00E2 +0xE3 0x0645 +0xE4 0x0646 +0xE5 0x0647 +0xE6 0x0648 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x0649 +0xED 0x064A +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x064B +0xF1 0x064C +0xF2 0x064D +0xF3 0x064E +0xF4 0x00F4 +0xF5 0x064F +0xF6 0x0650 +0xF7 0x00F7 +0xF8 0x0651 +0xF9 0x00F9 +0xFA 0x0652 +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x200E +0xFE 0x200F +0xFF 0x06D2 diff --git a/3rdPartner/libiconv/tests/CP1257.TXT b/3rdPartner/libiconv/tests/CP1257.TXT new file mode 100644 index 0000000..d22e845 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1257.TXT @@ -0,0 +1,244 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x89 0x2030 +0x8B 0x2039 +0x8D 0x00A8 +0x8E 0x02C7 +0x8F 0x00B8 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9B 0x203A +0x9D 0x00AF +0x9E 0x02DB +0xA0 0x00A0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00D8 +0xA9 0x00A9 +0xAA 0x0156 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00C6 +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00F8 +0xB9 0x00B9 +0xBA 0x0157 +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00E6 +0xC0 0x0104 +0xC1 0x012E +0xC2 0x0100 +0xC3 0x0106 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x0118 +0xC7 0x0112 +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0179 +0xCB 0x0116 +0xCC 0x0122 +0xCD 0x0136 +0xCE 0x012A +0xCF 0x013B +0xD0 0x0160 +0xD1 0x0143 +0xD2 0x0145 +0xD3 0x00D3 +0xD4 0x014C +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x0172 +0xD9 0x0141 +0xDA 0x015A +0xDB 0x016A +0xDC 0x00DC +0xDD 0x017B +0xDE 0x017D +0xDF 0x00DF +0xE0 0x0105 +0xE1 0x012F +0xE2 0x0101 +0xE3 0x0107 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x0119 +0xE7 0x0113 +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x017A +0xEB 0x0117 +0xEC 0x0123 +0xED 0x0137 +0xEE 0x012B +0xEF 0x013C +0xF0 0x0161 +0xF1 0x0144 +0xF2 0x0146 +0xF3 0x00F3 +0xF4 0x014D +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x0173 +0xF9 0x0142 +0xFA 0x015B +0xFB 0x016B +0xFC 0x00FC +0xFD 0x017C +0xFE 0x017E +0xFF 0x02D9 diff --git a/3rdPartner/libiconv/tests/CP1258-snippet b/3rdPartner/libiconv/tests/CP1258-snippet new file mode 100644 index 0000000..b096089 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1258-snippet @@ -0,0 +1,131 @@ +// The last line of this file is missing the end-of-line terminator +// on purpose, in order to test that the conversion empties the bit buffer +// and shifts back to the initial state at the end of the conversion. +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban +Vietnamese (Ting Vit) Cho ban \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/CP1258-snippet.UTF-8 b/3rdPartner/libiconv/tests/CP1258-snippet.UTF-8 new file mode 100644 index 0000000..c6f3d16 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1258-snippet.UTF-8 @@ -0,0 +1,131 @@ +// The last line of this file is missing the end-of-line terminator +// on purpose, in order to test that the conversion empties the bit buffer +// and shifts back to the initial state at the end of the conversion. +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/CP1258.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP1258.IRREVERSIBLE.TXT new file mode 100644 index 0000000..cec1382 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1258.IRREVERSIBLE.TXT @@ -0,0 +1,183 @@ +0x41D2 0x1EA2 +0x41DE 0x00C3 +0x41F2 0x1EA0 +0x42F2 0x1E04 +0x43EC 0x0106 +0x44F2 0x1E0C +0x45D2 0x1EBA +0x45DE 0x1EBC +0x45F2 0x1EB8 +0x47EC 0x01F4 +0x48F2 0x1E24 +0x49CC 0x00CC +0x49D2 0x1EC8 +0x49DE 0x0128 +0x49F2 0x1ECA +0x4BEC 0x1E30 +0x4BF2 0x1E32 +0x4CEC 0x0139 +0x4CF2 0x1E36 +0x4DEC 0x1E3E +0x4DF2 0x1E42 +0x4ECC 0x01F8 +0x4EEC 0x0143 +0x4EF2 0x1E46 +0x4FCC 0x00D2 +0x4FD2 0x1ECE +0x4FDE 0x00D5 +0x4FF2 0x1ECC +0x50EC 0x1E54 +0x52EC 0x0154 +0x52F2 0x1E5A +0x53EC 0x015A +0x53F2 0x1E62 +0x54F2 0x1E6C +0x55D2 0x1EE6 +0x55DE 0x0168 +0x55F2 0x1EE4 +0x56DE 0x1E7C +0x56F2 0x1E7E +0x57CC 0x1E80 +0x57EC 0x1E82 +0x57F2 0x1E88 +0x59CC 0x1EF2 +0x59D2 0x1EF6 +0x59DE 0x1EF8 +0x59EC 0x00DD +0x59F2 0x1EF4 +0x5AEC 0x0179 +0x5AF2 0x1E92 +0x61D2 0x1EA3 +0x61DE 0x00E3 +0x61F2 0x1EA1 +0x62F2 0x1E05 +0x63EC 0x0107 +0x64F2 0x1E0D +0x65D2 0x1EBB +0x65DE 0x1EBD +0x65F2 0x1EB9 +0x67EC 0x01F5 +0x68F2 0x1E25 +0x69CC 0x00EC +0x69D2 0x1EC9 +0x69DE 0x0129 +0x69F2 0x1ECB +0x6BEC 0x1E31 +0x6BF2 0x1E33 +0x6CEC 0x013A +0x6CF2 0x1E37 +0x6DEC 0x1E3F +0x6DF2 0x1E43 +0x6ECC 0x01F9 +0x6EEC 0x0144 +0x6EF2 0x1E47 +0x6FCC 0x00F2 +0x6FD2 0x1ECF +0x6FDE 0x00F5 +0x6FF2 0x1ECD +0x70EC 0x1E55 +0x72EC 0x0155 +0x72F2 0x1E5B +0x73EC 0x015B +0x73F2 0x1E63 +0x74F2 0x1E6D +0x75D2 0x1EE7 +0x75DE 0x0169 +0x75F2 0x1EE5 +0x76DE 0x1E7D +0x76F2 0x1E7F +0x77CC 0x1E81 +0x77EC 0x1E83 +0x77F2 0x1E89 +0x79CC 0x1EF3 +0x79D2 0x1EF7 +0x79DE 0x1EF9 +0x79EC 0x00FD +0x79F2 0x1EF5 +0x7AEC 0x017A +0x7AF2 0x1E93 +0xA8CC 0x1FED +0xA8EC 0x0385 +0xA8EC 0x1FEE +0xC2CC 0x1EA6 +0xC2D2 0x1EA8 +0xC2DE 0x1EAA +0xC2EC 0x1EA4 +0xC2F2 0x1EAC +0xC3CC 0x1EB0 +0xC3D2 0x1EB2 +0xC3DE 0x1EB4 +0xC3EC 0x1EAE +0xC3F2 0x1EB6 +0xC5EC 0x01FA +0xC6EC 0x01FC +0xC7EC 0x1E08 +0xCACC 0x1EC0 +0xCAD2 0x1EC2 +0xCADE 0x1EC4 +0xCAEC 0x1EBE +0xCAF2 0x1EC6 +0xCC 0x0340 +0xCFEC 0x1E2E +0xD3DE 0x1E4C +0xD4CC 0x1ED2 +0xD4D2 0x1ED4 +0xD4DE 0x1ED6 +0xD4EC 0x1ED0 +0xD4F2 0x1ED8 +0xD5CC 0x1EDC +0xD5D2 0x1EDE +0xD5DE 0x1EE0 +0xD5EC 0x1EDA +0xD5F2 0x1EE2 +0xD6DE 0x1E4E +0xD8EC 0x01FE +0xDADE 0x1E78 +0xDCCC 0x01DB +0xDCEC 0x01D7 +0xDDCC 0x1EEA +0xDDD2 0x1EEC +0xDDDE 0x1EEE +0xDDEC 0x1EE8 +0xDDF2 0x1EF0 +0xE2CC 0x1EA7 +0xE2D2 0x1EA9 +0xE2DE 0x1EAB +0xE2EC 0x1EA5 +0xE2F2 0x1EAD +0xE3CC 0x1EB1 +0xE3D2 0x1EB3 +0xE3DE 0x1EB5 +0xE3EC 0x1EAF +0xE3F2 0x1EB7 +0xE5EC 0x01FB +0xE6EC 0x01FD +0xE7EC 0x1E09 +0xEACC 0x1EC1 +0xEAD2 0x1EC3 +0xEADE 0x1EC5 +0xEAEC 0x1EBF +0xEAF2 0x1EC7 +0xEC 0x0341 +0xEFEC 0x1E2F +0xF3DE 0x1E4D +0xF4CC 0x1ED3 +0xF4D2 0x1ED5 +0xF4DE 0x1ED7 +0xF4EC 0x1ED1 +0xF4F2 0x1ED9 +0xF5CC 0x1EDD +0xF5D2 0x1EDF +0xF5DE 0x1EE1 +0xF5EC 0x1EDB +0xF5F2 0x1EE3 +0xF6DE 0x1E4F +0xF8EC 0x01FF +0xFADE 0x1E79 +0xFCCC 0x01DC +0xFCEC 0x01D8 +0xFDCC 0x1EEB +0xFDD2 0x1EED +0xFDDE 0x1EEF +0xFDEC 0x1EE9 +0xFDF2 0x1EF1 diff --git a/3rdPartner/libiconv/tests/CP1258.TXT b/3rdPartner/libiconv/tests/CP1258.TXT new file mode 100644 index 0000000..f9a2528 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP1258.TXT @@ -0,0 +1,247 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8B 0x2039 +0x8C 0x0152 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9B 0x203A +0x9C 0x0153 +0x9F 0x0178 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x0300 +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0110 +0xD1 0x00D1 +0xD2 0x0309 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x01A0 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x01AF +0xDE 0x0303 +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x0301 +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0111 +0xF1 0x00F1 +0xF2 0x0323 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x01A1 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x01B0 +0xFE 0x20AB +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP437.TXT b/3rdPartner/libiconv/tests/CP437.TXT new file mode 100644 index 0000000..2cad168 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP437.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x00FF +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00A2 +0x9C 0x00A3 +0x9D 0x00A5 +0x9E 0x20A7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP737.TXT b/3rdPartner/libiconv/tests/CP737.TXT new file mode 100644 index 0000000..71ce015 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP737.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0391 +0x81 0x0392 +0x82 0x0393 +0x83 0x0394 +0x84 0x0395 +0x85 0x0396 +0x86 0x0397 +0x87 0x0398 +0x88 0x0399 +0x89 0x039A +0x8A 0x039B +0x8B 0x039C +0x8C 0x039D +0x8D 0x039E +0x8E 0x039F +0x8F 0x03A0 +0x90 0x03A1 +0x91 0x03A3 +0x92 0x03A4 +0x93 0x03A5 +0x94 0x03A6 +0x95 0x03A7 +0x96 0x03A8 +0x97 0x03A9 +0x98 0x03B1 +0x99 0x03B2 +0x9A 0x03B3 +0x9B 0x03B4 +0x9C 0x03B5 +0x9D 0x03B6 +0x9E 0x03B7 +0x9F 0x03B8 +0xA0 0x03B9 +0xA1 0x03BA +0xA2 0x03BB +0xA3 0x03BC +0xA4 0x03BD +0xA5 0x03BE +0xA6 0x03BF +0xA7 0x03C0 +0xA8 0x03C1 +0xA9 0x03C3 +0xAA 0x03C2 +0xAB 0x03C4 +0xAC 0x03C5 +0xAD 0x03C6 +0xAE 0x03C7 +0xAF 0x03C8 +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03C9 +0xE1 0x03AC +0xE2 0x03AD +0xE3 0x03AE +0xE4 0x03CA +0xE5 0x03AF +0xE6 0x03CC +0xE7 0x03CD +0xE8 0x03CB +0xE9 0x03CE +0xEA 0x0386 +0xEB 0x0388 +0xEC 0x0389 +0xED 0x038A +0xEE 0x038C +0xEF 0x038E +0xF0 0x038F +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x03AA +0xF5 0x03AB +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP775.TXT b/3rdPartner/libiconv/tests/CP775.TXT new file mode 100644 index 0000000..6d54bdc --- /dev/null +++ b/3rdPartner/libiconv/tests/CP775.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0106 +0x81 0x00FC +0x82 0x00E9 +0x83 0x0101 +0x84 0x00E4 +0x85 0x0123 +0x86 0x00E5 +0x87 0x0107 +0x88 0x0142 +0x89 0x0113 +0x8A 0x0156 +0x8B 0x0157 +0x8C 0x012B +0x8D 0x0179 +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x014D +0x94 0x00F6 +0x95 0x0122 +0x96 0x00A2 +0x97 0x015A +0x98 0x015B +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x00D7 +0x9F 0x00A4 +0xA0 0x0100 +0xA1 0x012A +0xA2 0x00F3 +0xA3 0x017B +0xA4 0x017C +0xA5 0x017A +0xA6 0x201D +0xA7 0x00A6 +0xA8 0x00A9 +0xA9 0x00AE +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x0141 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x0104 +0xB6 0x010C +0xB7 0x0118 +0xB8 0x0116 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x012E +0xBE 0x0160 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x0172 +0xC7 0x016A +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x017D +0xD0 0x0105 +0xD1 0x010D +0xD2 0x0119 +0xD3 0x0117 +0xD4 0x012F +0xD5 0x0161 +0xD6 0x0173 +0xD7 0x016B +0xD8 0x017E +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x014C +0xE3 0x0143 +0xE4 0x00F5 +0xE5 0x00D5 +0xE6 0x00B5 +0xE7 0x0144 +0xE8 0x0136 +0xE9 0x0137 +0xEA 0x013B +0xEB 0x013C +0xEC 0x0146 +0xED 0x0112 +0xEE 0x0145 +0xEF 0x2019 +0xF0 0x00AD +0xF1 0x00B1 +0xF2 0x201C +0xF3 0x00BE +0xF4 0x00B6 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x201E +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x00B9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP850.TXT b/3rdPartner/libiconv/tests/CP850.TXT new file mode 100644 index 0000000..56b9908 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP850.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x00FF +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x00D7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x00AE +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x00C1 +0xB6 0x00C2 +0xB7 0x00C0 +0xB8 0x00A9 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x00A2 +0xBE 0x00A5 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x00E3 +0xC7 0x00C3 +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD0 0x00F0 +0xD1 0x00D0 +0xD2 0x00CA +0xD3 0x00CB +0xD4 0x00C8 +0xD5 0x0131 +0xD6 0x00CD +0xD7 0x00CE +0xD8 0x00CF +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x00A6 +0xDE 0x00CC +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x00D4 +0xE3 0x00D2 +0xE4 0x00F5 +0xE5 0x00D5 +0xE6 0x00B5 +0xE7 0x00FE +0xE8 0x00DE +0xE9 0x00DA +0xEA 0x00DB +0xEB 0x00D9 +0xEC 0x00FD +0xED 0x00DD +0xEE 0x00AF +0xEF 0x00B4 +0xF0 0x00AD +0xF1 0x00B1 +0xF2 0x2017 +0xF3 0x00BE +0xF4 0x00B6 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x00B7 +0xFB 0x00B9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP852.TXT b/3rdPartner/libiconv/tests/CP852.TXT new file mode 100644 index 0000000..8da14b5 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP852.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x016F +0x86 0x0107 +0x87 0x00E7 +0x88 0x0142 +0x89 0x00EB +0x8A 0x0150 +0x8B 0x0151 +0x8C 0x00EE +0x8D 0x0179 +0x8E 0x00C4 +0x8F 0x0106 +0x90 0x00C9 +0x91 0x0139 +0x92 0x013A +0x93 0x00F4 +0x94 0x00F6 +0x95 0x013D +0x96 0x013E +0x97 0x015A +0x98 0x015B +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x0164 +0x9C 0x0165 +0x9D 0x0141 +0x9E 0x00D7 +0x9F 0x010D +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x0104 +0xA5 0x0105 +0xA6 0x017D +0xA7 0x017E +0xA8 0x0118 +0xA9 0x0119 +0xAA 0x00AC +0xAB 0x017A +0xAC 0x010C +0xAD 0x015F +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x00C1 +0xB6 0x00C2 +0xB7 0x011A +0xB8 0x015E +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x017B +0xBE 0x017C +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x0102 +0xC7 0x0103 +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD0 0x0111 +0xD1 0x0110 +0xD2 0x010E +0xD3 0x00CB +0xD4 0x010F +0xD5 0x0147 +0xD6 0x00CD +0xD7 0x00CE +0xD8 0x011B +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x0162 +0xDE 0x016E +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x00D4 +0xE3 0x0143 +0xE4 0x0144 +0xE5 0x0148 +0xE6 0x0160 +0xE7 0x0161 +0xE8 0x0154 +0xE9 0x00DA +0xEA 0x0155 +0xEB 0x0170 +0xEC 0x00FD +0xED 0x00DD +0xEE 0x0163 +0xEF 0x00B4 +0xF0 0x00AD +0xF1 0x02DD +0xF2 0x02DB +0xF3 0x02C7 +0xF4 0x02D8 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x02D9 +0xFB 0x0171 +0xFC 0x0158 +0xFD 0x0159 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP853.TXT b/3rdPartner/libiconv/tests/CP853.TXT new file mode 100644 index 0000000..9fa04a8 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP853.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x0109 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x0108 +0x90 0x00C9 +0x91 0x010B +0x92 0x010A +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x0130 +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x011D +0x9C 0x00A3 +0x9D 0x011C +0x9E 0x00D7 +0x9F 0x0135 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x011E +0xA7 0x011F +0xA8 0x0124 +0xA9 0x0125 +0xAB 0x00BD +0xAC 0x0134 +0xAD 0x015F +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x00C1 +0xB6 0x00C2 +0xB7 0x00C0 +0xB8 0x015E +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x017B +0xBE 0x017C +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x015C +0xC7 0x015D +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD2 0x00CA +0xD3 0x00CB +0xD4 0x00C8 +0xD5 0x0131 +0xD6 0x00CD +0xD7 0x00CE +0xD8 0x00CF +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDE 0x00CC +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x00D4 +0xE3 0x00D2 +0xE4 0x0120 +0xE5 0x0121 +0xE6 0x00B5 +0xE7 0x0126 +0xE8 0x0127 +0xE9 0x00DA +0xEA 0x00DB +0xEB 0x00D9 +0xEC 0x016C +0xED 0x016D +0xEF 0x00B4 +0xF0 0x00AD +0xF2 0x2113 +0xF3 0x0149 +0xF4 0x02D8 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x02D9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP855.TXT b/3rdPartner/libiconv/tests/CP855.TXT new file mode 100644 index 0000000..aa7d918 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP855.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0452 +0x81 0x0402 +0x82 0x0453 +0x83 0x0403 +0x84 0x0451 +0x85 0x0401 +0x86 0x0454 +0x87 0x0404 +0x88 0x0455 +0x89 0x0405 +0x8A 0x0456 +0x8B 0x0406 +0x8C 0x0457 +0x8D 0x0407 +0x8E 0x0458 +0x8F 0x0408 +0x90 0x0459 +0x91 0x0409 +0x92 0x045A +0x93 0x040A +0x94 0x045B +0x95 0x040B +0x96 0x045C +0x97 0x040C +0x98 0x045E +0x99 0x040E +0x9A 0x045F +0x9B 0x040F +0x9C 0x044E +0x9D 0x042E +0x9E 0x044A +0x9F 0x042A +0xA0 0x0430 +0xA1 0x0410 +0xA2 0x0431 +0xA3 0x0411 +0xA4 0x0446 +0xA5 0x0426 +0xA6 0x0434 +0xA7 0x0414 +0xA8 0x0435 +0xA9 0x0415 +0xAA 0x0444 +0xAB 0x0424 +0xAC 0x0433 +0xAD 0x0413 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x0445 +0xB6 0x0425 +0xB7 0x0438 +0xB8 0x0418 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x0439 +0xBE 0x0419 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x043A +0xC7 0x041A +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD0 0x043B +0xD1 0x041B +0xD2 0x043C +0xD3 0x041C +0xD4 0x043D +0xD5 0x041D +0xD6 0x043E +0xD7 0x041E +0xD8 0x043F +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x041F +0xDE 0x044F +0xDF 0x2580 +0xE0 0x042F +0xE1 0x0440 +0xE2 0x0420 +0xE3 0x0441 +0xE4 0x0421 +0xE5 0x0442 +0xE6 0x0422 +0xE7 0x0443 +0xE8 0x0423 +0xE9 0x0436 +0xEA 0x0416 +0xEB 0x0432 +0xEC 0x0412 +0xED 0x044C +0xEE 0x042C +0xEF 0x2116 +0xF0 0x00AD +0xF1 0x044B +0xF2 0x042B +0xF3 0x0437 +0xF4 0x0417 +0xF5 0x0448 +0xF6 0x0428 +0xF7 0x044D +0xF8 0x042D +0xF9 0x0449 +0xFA 0x0429 +0xFB 0x0447 +0xFC 0x0427 +0xFD 0x00A7 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP856.TXT b/3rdPartner/libiconv/tests/CP856.TXT new file mode 100644 index 0000000..53ef92a --- /dev/null +++ b/3rdPartner/libiconv/tests/CP856.TXT @@ -0,0 +1,215 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x05D0 +0x81 0x05D1 +0x82 0x05D2 +0x83 0x05D3 +0x84 0x05D4 +0x85 0x05D5 +0x86 0x05D6 +0x87 0x05D7 +0x88 0x05D8 +0x89 0x05D9 +0x8A 0x05DA +0x8B 0x05DB +0x8C 0x05DC +0x8D 0x05DD +0x8E 0x05DE +0x8F 0x05DF +0x90 0x05E0 +0x91 0x05E1 +0x92 0x05E2 +0x93 0x05E3 +0x94 0x05E4 +0x95 0x05E5 +0x96 0x05E6 +0x97 0x05E7 +0x98 0x05E8 +0x99 0x05E9 +0x9A 0x05EA +0x9C 0x00A3 +0x9E 0x00D7 +0xA9 0x00AE +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB8 0x00A9 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x00A2 +0xBE 0x00A5 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x00A6 +0xDF 0x2580 +0xE6 0x00B5 +0xEE 0x00AF +0xEF 0x00B4 +0xF0 0x00AD +0xF1 0x00B1 +0xF2 0x2017 +0xF3 0x00BE +0xF4 0x00B6 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x00B7 +0xFB 0x00B9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP857.TXT b/3rdPartner/libiconv/tests/CP857.TXT new file mode 100644 index 0000000..15819ed --- /dev/null +++ b/3rdPartner/libiconv/tests/CP857.TXT @@ -0,0 +1,253 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x0131 +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x0130 +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x015E +0x9F 0x015F +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x011E +0xA7 0x011F +0xA8 0x00BF +0xA9 0x00AE +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x00C1 +0xB6 0x00C2 +0xB7 0x00C0 +0xB8 0x00A9 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x00A2 +0xBE 0x00A5 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x00E3 +0xC7 0x00C3 +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD0 0x00BA +0xD1 0x00AA +0xD2 0x00CA +0xD3 0x00CB +0xD4 0x00C8 +0xD6 0x00CD +0xD7 0x00CE +0xD8 0x00CF +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x00A6 +0xDE 0x00CC +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x00D4 +0xE3 0x00D2 +0xE4 0x00F5 +0xE5 0x00D5 +0xE6 0x00B5 +0xE8 0x00D7 +0xE9 0x00DA +0xEA 0x00DB +0xEB 0x00D9 +0xEC 0x00EC +0xED 0x00FF +0xEE 0x00AF +0xEF 0x00B4 +0xF0 0x00AD +0xF1 0x00B1 +0xF3 0x00BE +0xF4 0x00B6 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x00B7 +0xFB 0x00B9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP858.TXT b/3rdPartner/libiconv/tests/CP858.TXT new file mode 100644 index 0000000..c454c7e --- /dev/null +++ b/3rdPartner/libiconv/tests/CP858.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x00FF +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x00D7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x00AE +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x00C1 +0xB6 0x00C2 +0xB7 0x00C0 +0xB8 0x00A9 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x00A2 +0xBE 0x00A5 +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x00E3 +0xC7 0x00C3 +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x00A4 +0xD0 0x00F0 +0xD1 0x00D0 +0xD2 0x00CA +0xD3 0x00CB +0xD4 0x00C8 +0xD5 0x20AC +0xD6 0x00CD +0xD7 0x00CE +0xD8 0x00CF +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x00A6 +0xDE 0x00CC +0xDF 0x2580 +0xE0 0x00D3 +0xE1 0x00DF +0xE2 0x00D4 +0xE3 0x00D2 +0xE4 0x00F5 +0xE5 0x00D5 +0xE6 0x00B5 +0xE7 0x00FE +0xE8 0x00DE +0xE9 0x00DA +0xEA 0x00DB +0xEB 0x00D9 +0xEC 0x00FD +0xED 0x00DD +0xEE 0x00AF +0xEF 0x00B4 +0xF0 0x00AD +0xF1 0x00B1 +0xF2 0x2017 +0xF3 0x00BE +0xF4 0x00B6 +0xF5 0x00A7 +0xF6 0x00F7 +0xF7 0x00B8 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x00B7 +0xFB 0x00B9 +0xFC 0x00B3 +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP860.TXT b/3rdPartner/libiconv/tests/CP860.TXT new file mode 100644 index 0000000..d88fbf2 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP860.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E3 +0x85 0x00E0 +0x86 0x00C1 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00CA +0x8A 0x00E8 +0x8B 0x00CD +0x8C 0x00D4 +0x8D 0x00EC +0x8E 0x00C3 +0x8F 0x00C2 +0x90 0x00C9 +0x91 0x00C0 +0x92 0x00C8 +0x93 0x00F4 +0x94 0x00F5 +0x95 0x00F2 +0x96 0x00DA +0x97 0x00F9 +0x98 0x00CC +0x99 0x00D5 +0x9A 0x00DC +0x9B 0x00A2 +0x9C 0x00A3 +0x9D 0x00D9 +0x9E 0x20A7 +0x9F 0x00D3 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x00D2 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP861.TXT b/3rdPartner/libiconv/tests/CP861.TXT new file mode 100644 index 0000000..33ae5d5 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP861.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00D0 +0x8C 0x00F0 +0x8D 0x00DE +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00FE +0x96 0x00FB +0x97 0x00DD +0x98 0x00FD +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x20A7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00C1 +0xA5 0x00CD +0xA6 0x00D3 +0xA7 0x00DA +0xA8 0x00BF +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP862.TXT b/3rdPartner/libiconv/tests/CP862.TXT new file mode 100644 index 0000000..f94c35b --- /dev/null +++ b/3rdPartner/libiconv/tests/CP862.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x05D0 +0x81 0x05D1 +0x82 0x05D2 +0x83 0x05D3 +0x84 0x05D4 +0x85 0x05D5 +0x86 0x05D6 +0x87 0x05D7 +0x88 0x05D8 +0x89 0x05D9 +0x8A 0x05DA +0x8B 0x05DB +0x8C 0x05DC +0x8D 0x05DD +0x8E 0x05DE +0x8F 0x05DF +0x90 0x05E0 +0x91 0x05E1 +0x92 0x05E2 +0x93 0x05E3 +0x94 0x05E4 +0x95 0x05E5 +0x96 0x05E6 +0x97 0x05E7 +0x98 0x05E8 +0x99 0x05E9 +0x9A 0x05EA +0x9B 0x00A2 +0x9C 0x00A3 +0x9D 0x00A5 +0x9E 0x20A7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP863.TXT b/3rdPartner/libiconv/tests/CP863.TXT new file mode 100644 index 0000000..07ad6c1 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP863.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00C2 +0x85 0x00E0 +0x86 0x00B6 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x2017 +0x8E 0x00C0 +0x8F 0x00A7 +0x90 0x00C9 +0x91 0x00C8 +0x92 0x00CA +0x93 0x00F4 +0x94 0x00CB +0x95 0x00CF +0x96 0x00FB +0x97 0x00F9 +0x98 0x00A4 +0x99 0x00D4 +0x9A 0x00DC +0x9B 0x00A2 +0x9C 0x00A3 +0x9D 0x00D9 +0x9E 0x00DB +0x9F 0x0192 +0xA0 0x00A6 +0xA1 0x00B4 +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00A8 +0xA5 0x00B8 +0xA6 0x00B3 +0xA7 0x00AF +0xA8 0x00CE +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00BE +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP864.TXT b/3rdPartner/libiconv/tests/CP864.TXT new file mode 100644 index 0000000..a028b4a --- /dev/null +++ b/3rdPartner/libiconv/tests/CP864.TXT @@ -0,0 +1,250 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x066A +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00B0 +0x81 0x00B7 +0x82 0x2219 +0x83 0x221A +0x84 0x2592 +0x85 0x2500 +0x86 0x2502 +0x87 0x253C +0x88 0x2524 +0x89 0x252C +0x8A 0x251C +0x8B 0x2534 +0x8C 0x2510 +0x8D 0x250C +0x8E 0x2514 +0x8F 0x2518 +0x90 0x03B2 +0x91 0x221E +0x92 0x03C6 +0x93 0x00B1 +0x94 0x00BD +0x95 0x00BC +0x96 0x2248 +0x97 0x00AB +0x98 0x00BB +0x99 0xFEF7 +0x9A 0xFEF8 +0x9D 0xFEFB +0x9E 0xFEFC +0xA0 0x00A0 +0xA1 0x00AD +0xA2 0xFE82 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0xFE84 +0xA8 0xFE8E +0xA9 0xFE8F +0xAA 0xFE95 +0xAB 0xFE99 +0xAC 0x060C +0xAD 0xFE9D +0xAE 0xFEA1 +0xAF 0xFEA5 +0xB0 0x0660 +0xB1 0x0661 +0xB2 0x0662 +0xB3 0x0663 +0xB4 0x0664 +0xB5 0x0665 +0xB6 0x0666 +0xB7 0x0667 +0xB8 0x0668 +0xB9 0x0669 +0xBA 0xFED1 +0xBB 0x061B +0xBC 0xFEB1 +0xBD 0xFEB5 +0xBE 0xFEB9 +0xBF 0x061F +0xC0 0x00A2 +0xC1 0xFE80 +0xC2 0xFE81 +0xC3 0xFE83 +0xC4 0xFE85 +0xC5 0xFECA +0xC6 0xFE8B +0xC7 0xFE8D +0xC8 0xFE91 +0xC9 0xFE93 +0xCA 0xFE97 +0xCB 0xFE9B +0xCC 0xFE9F +0xCD 0xFEA3 +0xCE 0xFEA7 +0xCF 0xFEA9 +0xD0 0xFEAB +0xD1 0xFEAD +0xD2 0xFEAF +0xD3 0xFEB3 +0xD4 0xFEB7 +0xD5 0xFEBB +0xD6 0xFEBF +0xD7 0xFEC1 +0xD8 0xFEC5 +0xD9 0xFECB +0xDA 0xFECF +0xDB 0x00A6 +0xDC 0x00AC +0xDD 0x00F7 +0xDE 0x00D7 +0xDF 0xFEC9 +0xE0 0x0640 +0xE1 0xFED3 +0xE2 0xFED7 +0xE3 0xFEDB +0xE4 0xFEDF +0xE5 0xFEE3 +0xE6 0xFEE7 +0xE7 0xFEEB +0xE8 0xFEED +0xE9 0xFEEF +0xEA 0xFEF3 +0xEB 0xFEBD +0xEC 0xFECC +0xED 0xFECE +0xEE 0xFECD +0xEF 0xFEE1 +0xF0 0xFE7D +0xF1 0x0651 +0xF2 0xFEE5 +0xF3 0xFEE9 +0xF4 0xFEEC +0xF5 0xFEF0 +0xF6 0xFEF2 +0xF7 0xFED0 +0xF8 0xFED5 +0xF9 0xFEF5 +0xFA 0xFEF6 +0xFB 0xFEDD +0xFC 0xFED9 +0xFD 0xFEF1 +0xFE 0x25A0 diff --git a/3rdPartner/libiconv/tests/CP865.TXT b/3rdPartner/libiconv/tests/CP865.TXT new file mode 100644 index 0000000..489785a --- /dev/null +++ b/3rdPartner/libiconv/tests/CP865.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C7 +0x81 0x00FC +0x82 0x00E9 +0x83 0x00E2 +0x84 0x00E4 +0x85 0x00E0 +0x86 0x00E5 +0x87 0x00E7 +0x88 0x00EA +0x89 0x00EB +0x8A 0x00E8 +0x8B 0x00EF +0x8C 0x00EE +0x8D 0x00EC +0x8E 0x00C4 +0x8F 0x00C5 +0x90 0x00C9 +0x91 0x00E6 +0x92 0x00C6 +0x93 0x00F4 +0x94 0x00F6 +0x95 0x00F2 +0x96 0x00FB +0x97 0x00F9 +0x98 0x00FF +0x99 0x00D6 +0x9A 0x00DC +0x9B 0x00F8 +0x9C 0x00A3 +0x9D 0x00D8 +0x9E 0x20A7 +0x9F 0x0192 +0xA0 0x00E1 +0xA1 0x00ED +0xA2 0x00F3 +0xA3 0x00FA +0xA4 0x00F1 +0xA5 0x00D1 +0xA6 0x00AA +0xA7 0x00BA +0xA8 0x00BF +0xA9 0x2310 +0xAA 0x00AC +0xAB 0x00BD +0xAC 0x00BC +0xAD 0x00A1 +0xAE 0x00AB +0xAF 0x00A4 +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x03B1 +0xE1 0x00DF +0xE2 0x0393 +0xE3 0x03C0 +0xE4 0x03A3 +0xE5 0x03C3 +0xE6 0x00B5 +0xE7 0x03C4 +0xE8 0x03A6 +0xE9 0x0398 +0xEA 0x03A9 +0xEB 0x03B4 +0xEC 0x221E +0xED 0x03C6 +0xEE 0x03B5 +0xEF 0x2229 +0xF0 0x2261 +0xF1 0x00B1 +0xF2 0x2265 +0xF3 0x2264 +0xF4 0x2320 +0xF5 0x2321 +0xF6 0x00F7 +0xF7 0x2248 +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x207F +0xFD 0x00B2 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP866.TXT b/3rdPartner/libiconv/tests/CP866.TXT new file mode 100644 index 0000000..12995e0 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP866.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0410 +0x81 0x0411 +0x82 0x0412 +0x83 0x0413 +0x84 0x0414 +0x85 0x0415 +0x86 0x0416 +0x87 0x0417 +0x88 0x0418 +0x89 0x0419 +0x8A 0x041A +0x8B 0x041B +0x8C 0x041C +0x8D 0x041D +0x8E 0x041E +0x8F 0x041F +0x90 0x0420 +0x91 0x0421 +0x92 0x0422 +0x93 0x0423 +0x94 0x0424 +0x95 0x0425 +0x96 0x0426 +0x97 0x0427 +0x98 0x0428 +0x99 0x0429 +0x9A 0x042A +0x9B 0x042B +0x9C 0x042C +0x9D 0x042D +0x9E 0x042E +0x9F 0x042F +0xA0 0x0430 +0xA1 0x0431 +0xA2 0x0432 +0xA3 0x0433 +0xA4 0x0434 +0xA5 0x0435 +0xA6 0x0436 +0xA7 0x0437 +0xA8 0x0438 +0xA9 0x0439 +0xAA 0x043A +0xAB 0x043B +0xAC 0x043C +0xAD 0x043D +0xAE 0x043E +0xAF 0x043F +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x2561 +0xB6 0x2562 +0xB7 0x2556 +0xB8 0x2555 +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x255C +0xBE 0x255B +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x255E +0xC7 0x255F +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x2567 +0xD0 0x2568 +0xD1 0x2564 +0xD2 0x2565 +0xD3 0x2559 +0xD4 0x2558 +0xD5 0x2552 +0xD6 0x2553 +0xD7 0x256B +0xD8 0x256A +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x258C +0xDE 0x2590 +0xDF 0x2580 +0xE0 0x0440 +0xE1 0x0441 +0xE2 0x0442 +0xE3 0x0443 +0xE4 0x0444 +0xE5 0x0445 +0xE6 0x0446 +0xE7 0x0447 +0xE8 0x0448 +0xE9 0x0449 +0xEA 0x044A +0xEB 0x044B +0xEC 0x044C +0xED 0x044D +0xEE 0x044E +0xEF 0x044F +0xF0 0x0401 +0xF1 0x0451 +0xF2 0x0404 +0xF3 0x0454 +0xF4 0x0407 +0xF5 0x0457 +0xF6 0x040E +0xF7 0x045E +0xF8 0x00B0 +0xF9 0x2219 +0xFA 0x00B7 +0xFB 0x221A +0xFC 0x2116 +0xFD 0x00A4 +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP869.TXT b/3rdPartner/libiconv/tests/CP869.TXT new file mode 100644 index 0000000..443f1ab --- /dev/null +++ b/3rdPartner/libiconv/tests/CP869.TXT @@ -0,0 +1,247 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x86 0x0386 +0x88 0x00B7 +0x89 0x00AC +0x8A 0x00A6 +0x8B 0x2018 +0x8C 0x2019 +0x8D 0x0388 +0x8E 0x2015 +0x8F 0x0389 +0x90 0x038A +0x91 0x03AA +0x92 0x038C +0x95 0x038E +0x96 0x03AB +0x97 0x00A9 +0x98 0x038F +0x99 0x00B2 +0x9A 0x00B3 +0x9B 0x03AC +0x9C 0x00A3 +0x9D 0x03AD +0x9E 0x03AE +0x9F 0x03AF +0xA0 0x03CA +0xA1 0x0390 +0xA2 0x03CC +0xA3 0x03CD +0xA4 0x0391 +0xA5 0x0392 +0xA6 0x0393 +0xA7 0x0394 +0xA8 0x0395 +0xA9 0x0396 +0xAA 0x0397 +0xAB 0x00BD +0xAC 0x0398 +0xAD 0x0399 +0xAE 0x00AB +0xAF 0x00BB +0xB0 0x2591 +0xB1 0x2592 +0xB2 0x2593 +0xB3 0x2502 +0xB4 0x2524 +0xB5 0x039A +0xB6 0x039B +0xB7 0x039C +0xB8 0x039D +0xB9 0x2563 +0xBA 0x2551 +0xBB 0x2557 +0xBC 0x255D +0xBD 0x039E +0xBE 0x039F +0xBF 0x2510 +0xC0 0x2514 +0xC1 0x2534 +0xC2 0x252C +0xC3 0x251C +0xC4 0x2500 +0xC5 0x253C +0xC6 0x03A0 +0xC7 0x03A1 +0xC8 0x255A +0xC9 0x2554 +0xCA 0x2569 +0xCB 0x2566 +0xCC 0x2560 +0xCD 0x2550 +0xCE 0x256C +0xCF 0x03A3 +0xD0 0x03A4 +0xD1 0x03A5 +0xD2 0x03A6 +0xD3 0x03A7 +0xD4 0x03A8 +0xD5 0x03A9 +0xD6 0x03B1 +0xD7 0x03B2 +0xD8 0x03B3 +0xD9 0x2518 +0xDA 0x250C +0xDB 0x2588 +0xDC 0x2584 +0xDD 0x03B4 +0xDE 0x03B5 +0xDF 0x2580 +0xE0 0x03B6 +0xE1 0x03B7 +0xE2 0x03B8 +0xE3 0x03B9 +0xE4 0x03BA +0xE5 0x03BB +0xE6 0x03BC +0xE7 0x03BD +0xE8 0x03BE +0xE9 0x03BF +0xEA 0x03C0 +0xEB 0x03C1 +0xEC 0x03C3 +0xED 0x03C2 +0xEE 0x03C4 +0xEF 0x0384 +0xF0 0x00AD +0xF1 0x00B1 +0xF2 0x03C5 +0xF3 0x03C6 +0xF4 0x03C7 +0xF5 0x00A7 +0xF6 0x03C8 +0xF7 0x0385 +0xF8 0x00B0 +0xF9 0x00A8 +0xFA 0x03C9 +0xFB 0x03CB +0xFC 0x03B0 +0xFD 0x03CE +0xFE 0x25A0 +0xFF 0x00A0 diff --git a/3rdPartner/libiconv/tests/CP874.TXT b/3rdPartner/libiconv/tests/CP874.TXT new file mode 100644 index 0000000..85d2aea --- /dev/null +++ b/3rdPartner/libiconv/tests/CP874.TXT @@ -0,0 +1,225 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x85 0x2026 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0xA0 0x00A0 +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x0E4E +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x0E5A +0xFB 0x0E5B diff --git a/3rdPartner/libiconv/tests/CP922.TXT b/3rdPartner/libiconv/tests/CP922.TXT new file mode 100644 index 0000000..3f93579 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP922.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x203E +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0160 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x017D +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0161 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x017E +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/CP932.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP932.IRREVERSIBLE.TXT new file mode 100644 index 0000000..a749260 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP932.IRREVERSIBLE.TXT @@ -0,0 +1,402 @@ +0x8160 0xFF5E +0x8161 0x2225 +0x817C 0xFF0D +0x8191 0xFFE0 +0x8192 0xFFE1 +0x8754 0x2160 +0x8755 0x2161 +0x8756 0x2162 +0x8757 0x2163 +0x8758 0x2164 +0x8759 0x2165 +0x875A 0x2166 +0x875B 0x2167 +0x875C 0x2168 +0x875D 0x2169 +0x8782 0x2116 +0x8784 0x2121 +0x878A 0x3231 +0x8790 0x2252 +0x8791 0x2261 +0x8792 0x222B +0x8795 0x221A +0x8796 0x22A5 +0x8797 0x2220 +0x879A 0x2235 +0x879B 0x2229 +0x879C 0x222A +0xED40 0x7E8A +0xED41 0x891C +0xED42 0x9348 +0xED43 0x9288 +0xED44 0x84DC +0xED45 0x4FC9 +0xED46 0x70BB +0xED47 0x6631 +0xED48 0x68C8 +0xED49 0x92F9 +0xED4A 0x66FB +0xED4B 0x5F45 +0xED4C 0x4E28 +0xED4D 0x4EE1 +0xED4E 0x4EFC +0xED4F 0x4F00 +0xED50 0x4F03 +0xED51 0x4F39 +0xED52 0x4F56 +0xED53 0x4F92 +0xED54 0x4F8A +0xED55 0x4F9A +0xED56 0x4F94 +0xED57 0x4FCD +0xED58 0x5040 +0xED59 0x5022 +0xED5A 0x4FFF +0xED5B 0x501E +0xED5C 0x5046 +0xED5D 0x5070 +0xED5E 0x5042 +0xED5F 0x5094 +0xED60 0x50F4 +0xED61 0x50D8 +0xED62 0x514A +0xED63 0x5164 +0xED64 0x519D +0xED65 0x51BE +0xED66 0x51EC +0xED67 0x5215 +0xED68 0x529C +0xED69 0x52A6 +0xED6A 0x52C0 +0xED6B 0x52DB +0xED6C 0x5300 +0xED6D 0x5307 +0xED6E 0x5324 +0xED6F 0x5372 +0xED70 0x5393 +0xED71 0x53B2 +0xED72 0x53DD +0xED73 0xFA0E +0xED74 0x549C +0xED75 0x548A +0xED76 0x54A9 +0xED77 0x54FF +0xED78 0x5586 +0xED79 0x5759 +0xED7A 0x5765 +0xED7B 0x57AC +0xED7C 0x57C8 +0xED7D 0x57C7 +0xED7E 0xFA0F +0xED80 0xFA10 +0xED81 0x589E +0xED82 0x58B2 +0xED83 0x590B +0xED84 0x5953 +0xED85 0x595B +0xED86 0x595D +0xED87 0x5963 +0xED88 0x59A4 +0xED89 0x59BA +0xED8A 0x5B56 +0xED8B 0x5BC0 +0xED8C 0x752F +0xED8D 0x5BD8 +0xED8E 0x5BEC +0xED8F 0x5C1E +0xED90 0x5CA6 +0xED91 0x5CBA +0xED92 0x5CF5 +0xED93 0x5D27 +0xED94 0x5D53 +0xED95 0xFA11 +0xED96 0x5D42 +0xED97 0x5D6D +0xED98 0x5DB8 +0xED99 0x5DB9 +0xED9A 0x5DD0 +0xED9B 0x5F21 +0xED9C 0x5F34 +0xED9D 0x5F67 +0xED9E 0x5FB7 +0xED9F 0x5FDE +0xEDA0 0x605D +0xEDA1 0x6085 +0xEDA2 0x608A +0xEDA3 0x60DE +0xEDA4 0x60D5 +0xEDA5 0x6120 +0xEDA6 0x60F2 +0xEDA7 0x6111 +0xEDA8 0x6137 +0xEDA9 0x6130 +0xEDAA 0x6198 +0xEDAB 0x6213 +0xEDAC 0x62A6 +0xEDAD 0x63F5 +0xEDAE 0x6460 +0xEDAF 0x649D +0xEDB0 0x64CE +0xEDB1 0x654E +0xEDB2 0x6600 +0xEDB3 0x6615 +0xEDB4 0x663B +0xEDB5 0x6609 +0xEDB6 0x662E +0xEDB7 0x661E +0xEDB8 0x6624 +0xEDB9 0x6665 +0xEDBA 0x6657 +0xEDBB 0x6659 +0xEDBC 0xFA12 +0xEDBD 0x6673 +0xEDBE 0x6699 +0xEDBF 0x66A0 +0xEDC0 0x66B2 +0xEDC1 0x66BF +0xEDC2 0x66FA +0xEDC3 0x670E +0xEDC4 0xF929 +0xEDC5 0x6766 +0xEDC6 0x67BB +0xEDC7 0x6852 +0xEDC8 0x67C0 +0xEDC9 0x6801 +0xEDCA 0x6844 +0xEDCB 0x68CF +0xEDCC 0xFA13 +0xEDCD 0x6968 +0xEDCE 0xFA14 +0xEDCF 0x6998 +0xEDD0 0x69E2 +0xEDD1 0x6A30 +0xEDD2 0x6A6B +0xEDD3 0x6A46 +0xEDD4 0x6A73 +0xEDD5 0x6A7E +0xEDD6 0x6AE2 +0xEDD7 0x6AE4 +0xEDD8 0x6BD6 +0xEDD9 0x6C3F +0xEDDA 0x6C5C +0xEDDB 0x6C86 +0xEDDC 0x6C6F +0xEDDD 0x6CDA +0xEDDE 0x6D04 +0xEDDF 0x6D87 +0xEDE0 0x6D6F +0xEDE1 0x6D96 +0xEDE2 0x6DAC +0xEDE3 0x6DCF +0xEDE4 0x6DF8 +0xEDE5 0x6DF2 +0xEDE6 0x6DFC +0xEDE7 0x6E39 +0xEDE8 0x6E5C +0xEDE9 0x6E27 +0xEDEA 0x6E3C +0xEDEB 0x6EBF +0xEDEC 0x6F88 +0xEDED 0x6FB5 +0xEDEE 0x6FF5 +0xEDEF 0x7005 +0xEDF0 0x7007 +0xEDF1 0x7028 +0xEDF2 0x7085 +0xEDF3 0x70AB +0xEDF4 0x710F +0xEDF5 0x7104 +0xEDF6 0x715C +0xEDF7 0x7146 +0xEDF8 0x7147 +0xEDF9 0xFA15 +0xEDFA 0x71C1 +0xEDFB 0x71FE +0xEDFC 0x72B1 +0xEE40 0x72BE +0xEE41 0x7324 +0xEE42 0xFA16 +0xEE43 0x7377 +0xEE44 0x73BD +0xEE45 0x73C9 +0xEE46 0x73D6 +0xEE47 0x73E3 +0xEE48 0x73D2 +0xEE49 0x7407 +0xEE4A 0x73F5 +0xEE4B 0x7426 +0xEE4C 0x742A +0xEE4D 0x7429 +0xEE4E 0x742E +0xEE4F 0x7462 +0xEE50 0x7489 +0xEE51 0x749F +0xEE52 0x7501 +0xEE53 0x756F +0xEE54 0x7682 +0xEE55 0x769C +0xEE56 0x769E +0xEE57 0x769B +0xEE58 0x76A6 +0xEE59 0xFA17 +0xEE5A 0x7746 +0xEE5B 0x52AF +0xEE5C 0x7821 +0xEE5D 0x784E +0xEE5E 0x7864 +0xEE5F 0x787A +0xEE60 0x7930 +0xEE61 0xFA18 +0xEE62 0xFA19 +0xEE63 0xFA1A +0xEE64 0x7994 +0xEE65 0xFA1B +0xEE66 0x799B +0xEE67 0x7AD1 +0xEE68 0x7AE7 +0xEE69 0xFA1C +0xEE6A 0x7AEB +0xEE6B 0x7B9E +0xEE6C 0xFA1D +0xEE6D 0x7D48 +0xEE6E 0x7D5C +0xEE6F 0x7DB7 +0xEE70 0x7DA0 +0xEE71 0x7DD6 +0xEE72 0x7E52 +0xEE73 0x7F47 +0xEE74 0x7FA1 +0xEE75 0xFA1E +0xEE76 0x8301 +0xEE77 0x8362 +0xEE78 0x837F +0xEE79 0x83C7 +0xEE7A 0x83F6 +0xEE7B 0x8448 +0xEE7C 0x84B4 +0xEE7D 0x8553 +0xEE7E 0x8559 +0xEE80 0x856B +0xEE81 0xFA1F +0xEE82 0x85B0 +0xEE83 0xFA20 +0xEE84 0xFA21 +0xEE85 0x8807 +0xEE86 0x88F5 +0xEE87 0x8A12 +0xEE88 0x8A37 +0xEE89 0x8A79 +0xEE8A 0x8AA7 +0xEE8B 0x8ABE +0xEE8C 0x8ADF +0xEE8D 0xFA22 +0xEE8E 0x8AF6 +0xEE8F 0x8B53 +0xEE90 0x8B7F +0xEE91 0x8CF0 +0xEE92 0x8CF4 +0xEE93 0x8D12 +0xEE94 0x8D76 +0xEE95 0xFA23 +0xEE96 0x8ECF +0xEE97 0xFA24 +0xEE98 0xFA25 +0xEE99 0x9067 +0xEE9A 0x90DE +0xEE9B 0xFA26 +0xEE9C 0x9115 +0xEE9D 0x9127 +0xEE9E 0x91DA +0xEE9F 0x91D7 +0xEEA0 0x91DE +0xEEA1 0x91ED +0xEEA2 0x91EE +0xEEA3 0x91E4 +0xEEA4 0x91E5 +0xEEA5 0x9206 +0xEEA6 0x9210 +0xEEA7 0x920A +0xEEA8 0x923A +0xEEA9 0x9240 +0xEEAA 0x923C +0xEEAB 0x924E +0xEEAC 0x9259 +0xEEAD 0x9251 +0xEEAE 0x9239 +0xEEAF 0x9267 +0xEEB0 0x92A7 +0xEEB1 0x9277 +0xEEB2 0x9278 +0xEEB3 0x92E7 +0xEEB4 0x92D7 +0xEEB5 0x92D9 +0xEEB6 0x92D0 +0xEEB7 0xFA27 +0xEEB8 0x92D5 +0xEEB9 0x92E0 +0xEEBA 0x92D3 +0xEEBB 0x9325 +0xEEBC 0x9321 +0xEEBD 0x92FB +0xEEBE 0xFA28 +0xEEBF 0x931E +0xEEC0 0x92FF +0xEEC1 0x931D +0xEEC2 0x9302 +0xEEC3 0x9370 +0xEEC4 0x9357 +0xEEC5 0x93A4 +0xEEC6 0x93C6 +0xEEC7 0x93DE +0xEEC8 0x93F8 +0xEEC9 0x9431 +0xEECA 0x9445 +0xEECB 0x9448 +0xEECC 0x9592 +0xEECD 0xF9DC +0xEECE 0xFA29 +0xEECF 0x969D +0xEED0 0x96AF +0xEED1 0x9733 +0xEED2 0x973B +0xEED3 0x9743 +0xEED4 0x974D +0xEED5 0x974F +0xEED6 0x9751 +0xEED7 0x9755 +0xEED8 0x9857 +0xEED9 0x9865 +0xEEDA 0xFA2A +0xEEDB 0xFA2B +0xEEDC 0x9927 +0xEEDD 0xFA2C +0xEEDE 0x999E +0xEEDF 0x9A4E +0xEEE0 0x9AD9 +0xEEE1 0x9ADC +0xEEE2 0x9B75 +0xEEE3 0x9B72 +0xEEE4 0x9B8F +0xEEE5 0x9BB1 +0xEEE6 0x9BBB +0xEEE7 0x9C00 +0xEEE8 0x9D70 +0xEEE9 0x9D6B +0xEEEA 0xFA2D +0xEEEB 0x9E19 +0xEEEC 0x9ED1 +0xEEEF 0x2170 +0xEEF0 0x2171 +0xEEF1 0x2172 +0xEEF2 0x2173 +0xEEF3 0x2174 +0xEEF4 0x2175 +0xEEF5 0x2176 +0xEEF6 0x2177 +0xEEF7 0x2178 +0xEEF8 0x2179 +0xEEF9 0xFFE2 +0xEEFA 0xFFE4 +0xEEFB 0xFF07 +0xEEFC 0xFF02 +0xFA5B 0x2235 diff --git a/3rdPartner/libiconv/tests/CP932.TXT b/3rdPartner/libiconv/tests/CP932.TXT new file mode 100644 index 0000000..99b15bd --- /dev/null +++ b/3rdPartner/libiconv/tests/CP932.TXT @@ -0,0 +1,9795 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8140 0x3000 +0x8141 0x3001 +0x8142 0x3002 +0x8143 0xFF0C +0x8144 0xFF0E +0x8145 0x30FB +0x8146 0xFF1A +0x8147 0xFF1B +0x8148 0xFF1F +0x8149 0xFF01 +0x814A 0x309B +0x814B 0x309C +0x814C 0x00B4 +0x814D 0xFF40 +0x814E 0x00A8 +0x814F 0xFF3E +0x8150 0xFFE3 +0x8151 0xFF3F +0x8152 0x30FD +0x8153 0x30FE +0x8154 0x309D +0x8155 0x309E +0x8156 0x3003 +0x8157 0x4EDD +0x8158 0x3005 +0x8159 0x3006 +0x815A 0x3007 +0x815B 0x30FC +0x815C 0x2015 +0x815D 0x2010 +0x815E 0xFF0F +0x815F 0xFF3C +0x8160 0x301C +0x8161 0x2016 +0x8162 0xFF5C +0x8163 0x2026 +0x8164 0x2025 +0x8165 0x2018 +0x8166 0x2019 +0x8167 0x201C +0x8168 0x201D +0x8169 0xFF08 +0x816A 0xFF09 +0x816B 0x3014 +0x816C 0x3015 +0x816D 0xFF3B +0x816E 0xFF3D +0x816F 0xFF5B +0x8170 0xFF5D +0x8171 0x3008 +0x8172 0x3009 +0x8173 0x300A +0x8174 0x300B +0x8175 0x300C +0x8176 0x300D +0x8177 0x300E +0x8178 0x300F +0x8179 0x3010 +0x817A 0x3011 +0x817B 0xFF0B +0x817C 0x2212 +0x817D 0x00B1 +0x817E 0x00D7 +0x8180 0x00F7 +0x8181 0xFF1D +0x8182 0x2260 +0x8183 0xFF1C +0x8184 0xFF1E +0x8185 0x2266 +0x8186 0x2267 +0x8187 0x221E +0x8188 0x2234 +0x8189 0x2642 +0x818A 0x2640 +0x818B 0x00B0 +0x818C 0x2032 +0x818D 0x2033 +0x818E 0x2103 +0x818F 0xFFE5 +0x8190 0xFF04 +0x8191 0x00A2 +0x8192 0x00A3 +0x8193 0xFF05 +0x8194 0xFF03 +0x8195 0xFF06 +0x8196 0xFF0A +0x8197 0xFF20 +0x8198 0x00A7 +0x8199 0x2606 +0x819A 0x2605 +0x819B 0x25CB +0x819C 0x25CF +0x819D 0x25CE +0x819E 0x25C7 +0x819F 0x25C6 +0x81A0 0x25A1 +0x81A1 0x25A0 +0x81A2 0x25B3 +0x81A3 0x25B2 +0x81A4 0x25BD +0x81A5 0x25BC +0x81A6 0x203B +0x81A7 0x3012 +0x81A8 0x2192 +0x81A9 0x2190 +0x81AA 0x2191 +0x81AB 0x2193 +0x81AC 0x3013 +0x81B8 0x2208 +0x81B9 0x220B +0x81BA 0x2286 +0x81BB 0x2287 +0x81BC 0x2282 +0x81BD 0x2283 +0x81BE 0x222A +0x81BF 0x2229 +0x81C8 0x2227 +0x81C9 0x2228 +0x81CA 0x00AC +0x81CB 0x21D2 +0x81CC 0x21D4 +0x81CD 0x2200 +0x81CE 0x2203 +0x81DA 0x2220 +0x81DB 0x22A5 +0x81DC 0x2312 +0x81DD 0x2202 +0x81DE 0x2207 +0x81DF 0x2261 +0x81E0 0x2252 +0x81E1 0x226A +0x81E2 0x226B +0x81E3 0x221A +0x81E4 0x223D +0x81E5 0x221D +0x81E6 0x2235 +0x81E7 0x222B +0x81E8 0x222C +0x81F0 0x212B +0x81F1 0x2030 +0x81F2 0x266F +0x81F3 0x266D +0x81F4 0x266A +0x81F5 0x2020 +0x81F6 0x2021 +0x81F7 0x00B6 +0x81FC 0x25EF +0x824F 0xFF10 +0x8250 0xFF11 +0x8251 0xFF12 +0x8252 0xFF13 +0x8253 0xFF14 +0x8254 0xFF15 +0x8255 0xFF16 +0x8256 0xFF17 +0x8257 0xFF18 +0x8258 0xFF19 +0x8260 0xFF21 +0x8261 0xFF22 +0x8262 0xFF23 +0x8263 0xFF24 +0x8264 0xFF25 +0x8265 0xFF26 +0x8266 0xFF27 +0x8267 0xFF28 +0x8268 0xFF29 +0x8269 0xFF2A +0x826A 0xFF2B +0x826B 0xFF2C +0x826C 0xFF2D +0x826D 0xFF2E +0x826E 0xFF2F +0x826F 0xFF30 +0x8270 0xFF31 +0x8271 0xFF32 +0x8272 0xFF33 +0x8273 0xFF34 +0x8274 0xFF35 +0x8275 0xFF36 +0x8276 0xFF37 +0x8277 0xFF38 +0x8278 0xFF39 +0x8279 0xFF3A +0x8281 0xFF41 +0x8282 0xFF42 +0x8283 0xFF43 +0x8284 0xFF44 +0x8285 0xFF45 +0x8286 0xFF46 +0x8287 0xFF47 +0x8288 0xFF48 +0x8289 0xFF49 +0x828A 0xFF4A +0x828B 0xFF4B +0x828C 0xFF4C +0x828D 0xFF4D +0x828E 0xFF4E +0x828F 0xFF4F +0x8290 0xFF50 +0x8291 0xFF51 +0x8292 0xFF52 +0x8293 0xFF53 +0x8294 0xFF54 +0x8295 0xFF55 +0x8296 0xFF56 +0x8297 0xFF57 +0x8298 0xFF58 +0x8299 0xFF59 +0x829A 0xFF5A +0x829F 0x3041 +0x82A0 0x3042 +0x82A1 0x3043 +0x82A2 0x3044 +0x82A3 0x3045 +0x82A4 0x3046 +0x82A5 0x3047 +0x82A6 0x3048 +0x82A7 0x3049 +0x82A8 0x304A +0x82A9 0x304B +0x82AA 0x304C +0x82AB 0x304D +0x82AC 0x304E +0x82AD 0x304F +0x82AE 0x3050 +0x82AF 0x3051 +0x82B0 0x3052 +0x82B1 0x3053 +0x82B2 0x3054 +0x82B3 0x3055 +0x82B4 0x3056 +0x82B5 0x3057 +0x82B6 0x3058 +0x82B7 0x3059 +0x82B8 0x305A +0x82B9 0x305B +0x82BA 0x305C +0x82BB 0x305D +0x82BC 0x305E +0x82BD 0x305F +0x82BE 0x3060 +0x82BF 0x3061 +0x82C0 0x3062 +0x82C1 0x3063 +0x82C2 0x3064 +0x82C3 0x3065 +0x82C4 0x3066 +0x82C5 0x3067 +0x82C6 0x3068 +0x82C7 0x3069 +0x82C8 0x306A +0x82C9 0x306B +0x82CA 0x306C +0x82CB 0x306D +0x82CC 0x306E +0x82CD 0x306F +0x82CE 0x3070 +0x82CF 0x3071 +0x82D0 0x3072 +0x82D1 0x3073 +0x82D2 0x3074 +0x82D3 0x3075 +0x82D4 0x3076 +0x82D5 0x3077 +0x82D6 0x3078 +0x82D7 0x3079 +0x82D8 0x307A +0x82D9 0x307B +0x82DA 0x307C +0x82DB 0x307D +0x82DC 0x307E +0x82DD 0x307F +0x82DE 0x3080 +0x82DF 0x3081 +0x82E0 0x3082 +0x82E1 0x3083 +0x82E2 0x3084 +0x82E3 0x3085 +0x82E4 0x3086 +0x82E5 0x3087 +0x82E6 0x3088 +0x82E7 0x3089 +0x82E8 0x308A +0x82E9 0x308B +0x82EA 0x308C +0x82EB 0x308D +0x82EC 0x308E +0x82ED 0x308F +0x82EE 0x3090 +0x82EF 0x3091 +0x82F0 0x3092 +0x82F1 0x3093 +0x8340 0x30A1 +0x8341 0x30A2 +0x8342 0x30A3 +0x8343 0x30A4 +0x8344 0x30A5 +0x8345 0x30A6 +0x8346 0x30A7 +0x8347 0x30A8 +0x8348 0x30A9 +0x8349 0x30AA +0x834A 0x30AB +0x834B 0x30AC +0x834C 0x30AD +0x834D 0x30AE +0x834E 0x30AF +0x834F 0x30B0 +0x8350 0x30B1 +0x8351 0x30B2 +0x8352 0x30B3 +0x8353 0x30B4 +0x8354 0x30B5 +0x8355 0x30B6 +0x8356 0x30B7 +0x8357 0x30B8 +0x8358 0x30B9 +0x8359 0x30BA +0x835A 0x30BB +0x835B 0x30BC +0x835C 0x30BD +0x835D 0x30BE +0x835E 0x30BF +0x835F 0x30C0 +0x8360 0x30C1 +0x8361 0x30C2 +0x8362 0x30C3 +0x8363 0x30C4 +0x8364 0x30C5 +0x8365 0x30C6 +0x8366 0x30C7 +0x8367 0x30C8 +0x8368 0x30C9 +0x8369 0x30CA +0x836A 0x30CB +0x836B 0x30CC +0x836C 0x30CD +0x836D 0x30CE +0x836E 0x30CF +0x836F 0x30D0 +0x8370 0x30D1 +0x8371 0x30D2 +0x8372 0x30D3 +0x8373 0x30D4 +0x8374 0x30D5 +0x8375 0x30D6 +0x8376 0x30D7 +0x8377 0x30D8 +0x8378 0x30D9 +0x8379 0x30DA +0x837A 0x30DB +0x837B 0x30DC +0x837C 0x30DD +0x837D 0x30DE +0x837E 0x30DF +0x8380 0x30E0 +0x8381 0x30E1 +0x8382 0x30E2 +0x8383 0x30E3 +0x8384 0x30E4 +0x8385 0x30E5 +0x8386 0x30E6 +0x8387 0x30E7 +0x8388 0x30E8 +0x8389 0x30E9 +0x838A 0x30EA +0x838B 0x30EB +0x838C 0x30EC +0x838D 0x30ED +0x838E 0x30EE +0x838F 0x30EF +0x8390 0x30F0 +0x8391 0x30F1 +0x8392 0x30F2 +0x8393 0x30F3 +0x8394 0x30F4 +0x8395 0x30F5 +0x8396 0x30F6 +0x839F 0x0391 +0x83A0 0x0392 +0x83A1 0x0393 +0x83A2 0x0394 +0x83A3 0x0395 +0x83A4 0x0396 +0x83A5 0x0397 +0x83A6 0x0398 +0x83A7 0x0399 +0x83A8 0x039A +0x83A9 0x039B +0x83AA 0x039C +0x83AB 0x039D +0x83AC 0x039E +0x83AD 0x039F +0x83AE 0x03A0 +0x83AF 0x03A1 +0x83B0 0x03A3 +0x83B1 0x03A4 +0x83B2 0x03A5 +0x83B3 0x03A6 +0x83B4 0x03A7 +0x83B5 0x03A8 +0x83B6 0x03A9 +0x83BF 0x03B1 +0x83C0 0x03B2 +0x83C1 0x03B3 +0x83C2 0x03B4 +0x83C3 0x03B5 +0x83C4 0x03B6 +0x83C5 0x03B7 +0x83C6 0x03B8 +0x83C7 0x03B9 +0x83C8 0x03BA +0x83C9 0x03BB +0x83CA 0x03BC +0x83CB 0x03BD +0x83CC 0x03BE +0x83CD 0x03BF +0x83CE 0x03C0 +0x83CF 0x03C1 +0x83D0 0x03C3 +0x83D1 0x03C4 +0x83D2 0x03C5 +0x83D3 0x03C6 +0x83D4 0x03C7 +0x83D5 0x03C8 +0x83D6 0x03C9 +0x8440 0x0410 +0x8441 0x0411 +0x8442 0x0412 +0x8443 0x0413 +0x8444 0x0414 +0x8445 0x0415 +0x8446 0x0401 +0x8447 0x0416 +0x8448 0x0417 +0x8449 0x0418 +0x844A 0x0419 +0x844B 0x041A +0x844C 0x041B +0x844D 0x041C +0x844E 0x041D +0x844F 0x041E +0x8450 0x041F +0x8451 0x0420 +0x8452 0x0421 +0x8453 0x0422 +0x8454 0x0423 +0x8455 0x0424 +0x8456 0x0425 +0x8457 0x0426 +0x8458 0x0427 +0x8459 0x0428 +0x845A 0x0429 +0x845B 0x042A +0x845C 0x042B +0x845D 0x042C +0x845E 0x042D +0x845F 0x042E +0x8460 0x042F +0x8470 0x0430 +0x8471 0x0431 +0x8472 0x0432 +0x8473 0x0433 +0x8474 0x0434 +0x8475 0x0435 +0x8476 0x0451 +0x8477 0x0436 +0x8478 0x0437 +0x8479 0x0438 +0x847A 0x0439 +0x847B 0x043A +0x847C 0x043B +0x847D 0x043C +0x847E 0x043D +0x8480 0x043E +0x8481 0x043F +0x8482 0x0440 +0x8483 0x0441 +0x8484 0x0442 +0x8485 0x0443 +0x8486 0x0444 +0x8487 0x0445 +0x8488 0x0446 +0x8489 0x0447 +0x848A 0x0448 +0x848B 0x0449 +0x848C 0x044A +0x848D 0x044B +0x848E 0x044C +0x848F 0x044D +0x8490 0x044E +0x8491 0x044F +0x849F 0x2500 +0x84A0 0x2502 +0x84A1 0x250C +0x84A2 0x2510 +0x84A3 0x2518 +0x84A4 0x2514 +0x84A5 0x251C +0x84A6 0x252C +0x84A7 0x2524 +0x84A8 0x2534 +0x84A9 0x253C +0x84AA 0x2501 +0x84AB 0x2503 +0x84AC 0x250F +0x84AD 0x2513 +0x84AE 0x251B +0x84AF 0x2517 +0x84B0 0x2523 +0x84B1 0x2533 +0x84B2 0x252B +0x84B3 0x253B +0x84B4 0x254B +0x84B5 0x2520 +0x84B6 0x252F +0x84B7 0x2528 +0x84B8 0x2537 +0x84B9 0x253F +0x84BA 0x251D +0x84BB 0x2530 +0x84BC 0x2525 +0x84BD 0x2538 +0x84BE 0x2542 +0x8740 0x2460 +0x8741 0x2461 +0x8742 0x2462 +0x8743 0x2463 +0x8744 0x2464 +0x8745 0x2465 +0x8746 0x2466 +0x8747 0x2467 +0x8748 0x2468 +0x8749 0x2469 +0x874A 0x246A +0x874B 0x246B +0x874C 0x246C +0x874D 0x246D +0x874E 0x246E +0x874F 0x246F +0x8750 0x2470 +0x8751 0x2471 +0x8752 0x2472 +0x8753 0x2473 +0x8754 0x2160 +0x8755 0x2161 +0x8756 0x2162 +0x8757 0x2163 +0x8758 0x2164 +0x8759 0x2165 +0x875A 0x2166 +0x875B 0x2167 +0x875C 0x2168 +0x875D 0x2169 +0x875F 0x3349 +0x8760 0x3314 +0x8761 0x3322 +0x8762 0x334D +0x8763 0x3318 +0x8764 0x3327 +0x8765 0x3303 +0x8766 0x3336 +0x8767 0x3351 +0x8768 0x3357 +0x8769 0x330D +0x876A 0x3326 +0x876B 0x3323 +0x876C 0x332B +0x876D 0x334A +0x876E 0x333B +0x876F 0x339C +0x8770 0x339D +0x8771 0x339E +0x8772 0x338E +0x8773 0x338F +0x8774 0x33C4 +0x8775 0x33A1 +0x877E 0x337B +0x8780 0x301D +0x8781 0x301F +0x8782 0x2116 +0x8783 0x33CD +0x8784 0x2121 +0x8785 0x32A4 +0x8786 0x32A5 +0x8787 0x32A6 +0x8788 0x32A7 +0x8789 0x32A8 +0x878A 0x3231 +0x878B 0x3232 +0x878C 0x3239 +0x878D 0x337E +0x878E 0x337D +0x878F 0x337C +0x8790 0x2252 +0x8791 0x2261 +0x8792 0x222B +0x8793 0x222E +0x8794 0x2211 +0x8795 0x221A +0x8796 0x22A5 +0x8797 0x2220 +0x8798 0x221F +0x8799 0x22BF +0x879A 0x2235 +0x879B 0x2229 +0x879C 0x222A +0x889F 0x4E9C +0x88A0 0x5516 +0x88A1 0x5A03 +0x88A2 0x963F +0x88A3 0x54C0 +0x88A4 0x611B +0x88A5 0x6328 +0x88A6 0x59F6 +0x88A7 0x9022 +0x88A8 0x8475 +0x88A9 0x831C +0x88AA 0x7A50 +0x88AB 0x60AA +0x88AC 0x63E1 +0x88AD 0x6E25 +0x88AE 0x65ED +0x88AF 0x8466 +0x88B0 0x82A6 +0x88B1 0x9BF5 +0x88B2 0x6893 +0x88B3 0x5727 +0x88B4 0x65A1 +0x88B5 0x6271 +0x88B6 0x5B9B +0x88B7 0x59D0 +0x88B8 0x867B +0x88B9 0x98F4 +0x88BA 0x7D62 +0x88BB 0x7DBE +0x88BC 0x9B8E +0x88BD 0x6216 +0x88BE 0x7C9F +0x88BF 0x88B7 +0x88C0 0x5B89 +0x88C1 0x5EB5 +0x88C2 0x6309 +0x88C3 0x6697 +0x88C4 0x6848 +0x88C5 0x95C7 +0x88C6 0x978D +0x88C7 0x674F +0x88C8 0x4EE5 +0x88C9 0x4F0A +0x88CA 0x4F4D +0x88CB 0x4F9D +0x88CC 0x5049 +0x88CD 0x56F2 +0x88CE 0x5937 +0x88CF 0x59D4 +0x88D0 0x5A01 +0x88D1 0x5C09 +0x88D2 0x60DF +0x88D3 0x610F +0x88D4 0x6170 +0x88D5 0x6613 +0x88D6 0x6905 +0x88D7 0x70BA +0x88D8 0x754F +0x88D9 0x7570 +0x88DA 0x79FB +0x88DB 0x7DAD +0x88DC 0x7DEF +0x88DD 0x80C3 +0x88DE 0x840E +0x88DF 0x8863 +0x88E0 0x8B02 +0x88E1 0x9055 +0x88E2 0x907A +0x88E3 0x533B +0x88E4 0x4E95 +0x88E5 0x4EA5 +0x88E6 0x57DF +0x88E7 0x80B2 +0x88E8 0x90C1 +0x88E9 0x78EF +0x88EA 0x4E00 +0x88EB 0x58F1 +0x88EC 0x6EA2 +0x88ED 0x9038 +0x88EE 0x7A32 +0x88EF 0x8328 +0x88F0 0x828B +0x88F1 0x9C2F +0x88F2 0x5141 +0x88F3 0x5370 +0x88F4 0x54BD +0x88F5 0x54E1 +0x88F6 0x56E0 +0x88F7 0x59FB +0x88F8 0x5F15 +0x88F9 0x98F2 +0x88FA 0x6DEB +0x88FB 0x80E4 +0x88FC 0x852D +0x8940 0x9662 +0x8941 0x9670 +0x8942 0x96A0 +0x8943 0x97FB +0x8944 0x540B +0x8945 0x53F3 +0x8946 0x5B87 +0x8947 0x70CF +0x8948 0x7FBD +0x8949 0x8FC2 +0x894A 0x96E8 +0x894B 0x536F +0x894C 0x9D5C +0x894D 0x7ABA +0x894E 0x4E11 +0x894F 0x7893 +0x8950 0x81FC +0x8951 0x6E26 +0x8952 0x5618 +0x8953 0x5504 +0x8954 0x6B1D +0x8955 0x851A +0x8956 0x9C3B +0x8957 0x59E5 +0x8958 0x53A9 +0x8959 0x6D66 +0x895A 0x74DC +0x895B 0x958F +0x895C 0x5642 +0x895D 0x4E91 +0x895E 0x904B +0x895F 0x96F2 +0x8960 0x834F +0x8961 0x990C +0x8962 0x53E1 +0x8963 0x55B6 +0x8964 0x5B30 +0x8965 0x5F71 +0x8966 0x6620 +0x8967 0x66F3 +0x8968 0x6804 +0x8969 0x6C38 +0x896A 0x6CF3 +0x896B 0x6D29 +0x896C 0x745B +0x896D 0x76C8 +0x896E 0x7A4E +0x896F 0x9834 +0x8970 0x82F1 +0x8971 0x885B +0x8972 0x8A60 +0x8973 0x92ED +0x8974 0x6DB2 +0x8975 0x75AB +0x8976 0x76CA +0x8977 0x99C5 +0x8978 0x60A6 +0x8979 0x8B01 +0x897A 0x8D8A +0x897B 0x95B2 +0x897C 0x698E +0x897D 0x53AD +0x897E 0x5186 +0x8980 0x5712 +0x8981 0x5830 +0x8982 0x5944 +0x8983 0x5BB4 +0x8984 0x5EF6 +0x8985 0x6028 +0x8986 0x63A9 +0x8987 0x63F4 +0x8988 0x6CBF +0x8989 0x6F14 +0x898A 0x708E +0x898B 0x7114 +0x898C 0x7159 +0x898D 0x71D5 +0x898E 0x733F +0x898F 0x7E01 +0x8990 0x8276 +0x8991 0x82D1 +0x8992 0x8597 +0x8993 0x9060 +0x8994 0x925B +0x8995 0x9D1B +0x8996 0x5869 +0x8997 0x65BC +0x8998 0x6C5A +0x8999 0x7525 +0x899A 0x51F9 +0x899B 0x592E +0x899C 0x5965 +0x899D 0x5F80 +0x899E 0x5FDC +0x899F 0x62BC +0x89A0 0x65FA +0x89A1 0x6A2A +0x89A2 0x6B27 +0x89A3 0x6BB4 +0x89A4 0x738B +0x89A5 0x7FC1 +0x89A6 0x8956 +0x89A7 0x9D2C +0x89A8 0x9D0E +0x89A9 0x9EC4 +0x89AA 0x5CA1 +0x89AB 0x6C96 +0x89AC 0x837B +0x89AD 0x5104 +0x89AE 0x5C4B +0x89AF 0x61B6 +0x89B0 0x81C6 +0x89B1 0x6876 +0x89B2 0x7261 +0x89B3 0x4E59 +0x89B4 0x4FFA +0x89B5 0x5378 +0x89B6 0x6069 +0x89B7 0x6E29 +0x89B8 0x7A4F +0x89B9 0x97F3 +0x89BA 0x4E0B +0x89BB 0x5316 +0x89BC 0x4EEE +0x89BD 0x4F55 +0x89BE 0x4F3D +0x89BF 0x4FA1 +0x89C0 0x4F73 +0x89C1 0x52A0 +0x89C2 0x53EF +0x89C3 0x5609 +0x89C4 0x590F +0x89C5 0x5AC1 +0x89C6 0x5BB6 +0x89C7 0x5BE1 +0x89C8 0x79D1 +0x89C9 0x6687 +0x89CA 0x679C +0x89CB 0x67B6 +0x89CC 0x6B4C +0x89CD 0x6CB3 +0x89CE 0x706B +0x89CF 0x73C2 +0x89D0 0x798D +0x89D1 0x79BE +0x89D2 0x7A3C +0x89D3 0x7B87 +0x89D4 0x82B1 +0x89D5 0x82DB +0x89D6 0x8304 +0x89D7 0x8377 +0x89D8 0x83EF +0x89D9 0x83D3 +0x89DA 0x8766 +0x89DB 0x8AB2 +0x89DC 0x5629 +0x89DD 0x8CA8 +0x89DE 0x8FE6 +0x89DF 0x904E +0x89E0 0x971E +0x89E1 0x868A +0x89E2 0x4FC4 +0x89E3 0x5CE8 +0x89E4 0x6211 +0x89E5 0x7259 +0x89E6 0x753B +0x89E7 0x81E5 +0x89E8 0x82BD +0x89E9 0x86FE +0x89EA 0x8CC0 +0x89EB 0x96C5 +0x89EC 0x9913 +0x89ED 0x99D5 +0x89EE 0x4ECB +0x89EF 0x4F1A +0x89F0 0x89E3 +0x89F1 0x56DE +0x89F2 0x584A +0x89F3 0x58CA +0x89F4 0x5EFB +0x89F5 0x5FEB +0x89F6 0x602A +0x89F7 0x6094 +0x89F8 0x6062 +0x89F9 0x61D0 +0x89FA 0x6212 +0x89FB 0x62D0 +0x89FC 0x6539 +0x8A40 0x9B41 +0x8A41 0x6666 +0x8A42 0x68B0 +0x8A43 0x6D77 +0x8A44 0x7070 +0x8A45 0x754C +0x8A46 0x7686 +0x8A47 0x7D75 +0x8A48 0x82A5 +0x8A49 0x87F9 +0x8A4A 0x958B +0x8A4B 0x968E +0x8A4C 0x8C9D +0x8A4D 0x51F1 +0x8A4E 0x52BE +0x8A4F 0x5916 +0x8A50 0x54B3 +0x8A51 0x5BB3 +0x8A52 0x5D16 +0x8A53 0x6168 +0x8A54 0x6982 +0x8A55 0x6DAF +0x8A56 0x788D +0x8A57 0x84CB +0x8A58 0x8857 +0x8A59 0x8A72 +0x8A5A 0x93A7 +0x8A5B 0x9AB8 +0x8A5C 0x6D6C +0x8A5D 0x99A8 +0x8A5E 0x86D9 +0x8A5F 0x57A3 +0x8A60 0x67FF +0x8A61 0x86CE +0x8A62 0x920E +0x8A63 0x5283 +0x8A64 0x5687 +0x8A65 0x5404 +0x8A66 0x5ED3 +0x8A67 0x62E1 +0x8A68 0x64B9 +0x8A69 0x683C +0x8A6A 0x6838 +0x8A6B 0x6BBB +0x8A6C 0x7372 +0x8A6D 0x78BA +0x8A6E 0x7A6B +0x8A6F 0x899A +0x8A70 0x89D2 +0x8A71 0x8D6B +0x8A72 0x8F03 +0x8A73 0x90ED +0x8A74 0x95A3 +0x8A75 0x9694 +0x8A76 0x9769 +0x8A77 0x5B66 +0x8A78 0x5CB3 +0x8A79 0x697D +0x8A7A 0x984D +0x8A7B 0x984E +0x8A7C 0x639B +0x8A7D 0x7B20 +0x8A7E 0x6A2B +0x8A80 0x6A7F +0x8A81 0x68B6 +0x8A82 0x9C0D +0x8A83 0x6F5F +0x8A84 0x5272 +0x8A85 0x559D +0x8A86 0x6070 +0x8A87 0x62EC +0x8A88 0x6D3B +0x8A89 0x6E07 +0x8A8A 0x6ED1 +0x8A8B 0x845B +0x8A8C 0x8910 +0x8A8D 0x8F44 +0x8A8E 0x4E14 +0x8A8F 0x9C39 +0x8A90 0x53F6 +0x8A91 0x691B +0x8A92 0x6A3A +0x8A93 0x9784 +0x8A94 0x682A +0x8A95 0x515C +0x8A96 0x7AC3 +0x8A97 0x84B2 +0x8A98 0x91DC +0x8A99 0x938C +0x8A9A 0x565B +0x8A9B 0x9D28 +0x8A9C 0x6822 +0x8A9D 0x8305 +0x8A9E 0x8431 +0x8A9F 0x7CA5 +0x8AA0 0x5208 +0x8AA1 0x82C5 +0x8AA2 0x74E6 +0x8AA3 0x4E7E +0x8AA4 0x4F83 +0x8AA5 0x51A0 +0x8AA6 0x5BD2 +0x8AA7 0x520A +0x8AA8 0x52D8 +0x8AA9 0x52E7 +0x8AAA 0x5DFB +0x8AAB 0x559A +0x8AAC 0x582A +0x8AAD 0x59E6 +0x8AAE 0x5B8C +0x8AAF 0x5B98 +0x8AB0 0x5BDB +0x8AB1 0x5E72 +0x8AB2 0x5E79 +0x8AB3 0x60A3 +0x8AB4 0x611F +0x8AB5 0x6163 +0x8AB6 0x61BE +0x8AB7 0x63DB +0x8AB8 0x6562 +0x8AB9 0x67D1 +0x8ABA 0x6853 +0x8ABB 0x68FA +0x8ABC 0x6B3E +0x8ABD 0x6B53 +0x8ABE 0x6C57 +0x8ABF 0x6F22 +0x8AC0 0x6F97 +0x8AC1 0x6F45 +0x8AC2 0x74B0 +0x8AC3 0x7518 +0x8AC4 0x76E3 +0x8AC5 0x770B +0x8AC6 0x7AFF +0x8AC7 0x7BA1 +0x8AC8 0x7C21 +0x8AC9 0x7DE9 +0x8ACA 0x7F36 +0x8ACB 0x7FF0 +0x8ACC 0x809D +0x8ACD 0x8266 +0x8ACE 0x839E +0x8ACF 0x89B3 +0x8AD0 0x8ACC +0x8AD1 0x8CAB +0x8AD2 0x9084 +0x8AD3 0x9451 +0x8AD4 0x9593 +0x8AD5 0x9591 +0x8AD6 0x95A2 +0x8AD7 0x9665 +0x8AD8 0x97D3 +0x8AD9 0x9928 +0x8ADA 0x8218 +0x8ADB 0x4E38 +0x8ADC 0x542B +0x8ADD 0x5CB8 +0x8ADE 0x5DCC +0x8ADF 0x73A9 +0x8AE0 0x764C +0x8AE1 0x773C +0x8AE2 0x5CA9 +0x8AE3 0x7FEB +0x8AE4 0x8D0B +0x8AE5 0x96C1 +0x8AE6 0x9811 +0x8AE7 0x9854 +0x8AE8 0x9858 +0x8AE9 0x4F01 +0x8AEA 0x4F0E +0x8AEB 0x5371 +0x8AEC 0x559C +0x8AED 0x5668 +0x8AEE 0x57FA +0x8AEF 0x5947 +0x8AF0 0x5B09 +0x8AF1 0x5BC4 +0x8AF2 0x5C90 +0x8AF3 0x5E0C +0x8AF4 0x5E7E +0x8AF5 0x5FCC +0x8AF6 0x63EE +0x8AF7 0x673A +0x8AF8 0x65D7 +0x8AF9 0x65E2 +0x8AFA 0x671F +0x8AFB 0x68CB +0x8AFC 0x68C4 +0x8B40 0x6A5F +0x8B41 0x5E30 +0x8B42 0x6BC5 +0x8B43 0x6C17 +0x8B44 0x6C7D +0x8B45 0x757F +0x8B46 0x7948 +0x8B47 0x5B63 +0x8B48 0x7A00 +0x8B49 0x7D00 +0x8B4A 0x5FBD +0x8B4B 0x898F +0x8B4C 0x8A18 +0x8B4D 0x8CB4 +0x8B4E 0x8D77 +0x8B4F 0x8ECC +0x8B50 0x8F1D +0x8B51 0x98E2 +0x8B52 0x9A0E +0x8B53 0x9B3C +0x8B54 0x4E80 +0x8B55 0x507D +0x8B56 0x5100 +0x8B57 0x5993 +0x8B58 0x5B9C +0x8B59 0x622F +0x8B5A 0x6280 +0x8B5B 0x64EC +0x8B5C 0x6B3A +0x8B5D 0x72A0 +0x8B5E 0x7591 +0x8B5F 0x7947 +0x8B60 0x7FA9 +0x8B61 0x87FB +0x8B62 0x8ABC +0x8B63 0x8B70 +0x8B64 0x63AC +0x8B65 0x83CA +0x8B66 0x97A0 +0x8B67 0x5409 +0x8B68 0x5403 +0x8B69 0x55AB +0x8B6A 0x6854 +0x8B6B 0x6A58 +0x8B6C 0x8A70 +0x8B6D 0x7827 +0x8B6E 0x6775 +0x8B6F 0x9ECD +0x8B70 0x5374 +0x8B71 0x5BA2 +0x8B72 0x811A +0x8B73 0x8650 +0x8B74 0x9006 +0x8B75 0x4E18 +0x8B76 0x4E45 +0x8B77 0x4EC7 +0x8B78 0x4F11 +0x8B79 0x53CA +0x8B7A 0x5438 +0x8B7B 0x5BAE +0x8B7C 0x5F13 +0x8B7D 0x6025 +0x8B7E 0x6551 +0x8B80 0x673D +0x8B81 0x6C42 +0x8B82 0x6C72 +0x8B83 0x6CE3 +0x8B84 0x7078 +0x8B85 0x7403 +0x8B86 0x7A76 +0x8B87 0x7AAE +0x8B88 0x7B08 +0x8B89 0x7D1A +0x8B8A 0x7CFE +0x8B8B 0x7D66 +0x8B8C 0x65E7 +0x8B8D 0x725B +0x8B8E 0x53BB +0x8B8F 0x5C45 +0x8B90 0x5DE8 +0x8B91 0x62D2 +0x8B92 0x62E0 +0x8B93 0x6319 +0x8B94 0x6E20 +0x8B95 0x865A +0x8B96 0x8A31 +0x8B97 0x8DDD +0x8B98 0x92F8 +0x8B99 0x6F01 +0x8B9A 0x79A6 +0x8B9B 0x9B5A +0x8B9C 0x4EA8 +0x8B9D 0x4EAB +0x8B9E 0x4EAC +0x8B9F 0x4F9B +0x8BA0 0x4FA0 +0x8BA1 0x50D1 +0x8BA2 0x5147 +0x8BA3 0x7AF6 +0x8BA4 0x5171 +0x8BA5 0x51F6 +0x8BA6 0x5354 +0x8BA7 0x5321 +0x8BA8 0x537F +0x8BA9 0x53EB +0x8BAA 0x55AC +0x8BAB 0x5883 +0x8BAC 0x5CE1 +0x8BAD 0x5F37 +0x8BAE 0x5F4A +0x8BAF 0x602F +0x8BB0 0x6050 +0x8BB1 0x606D +0x8BB2 0x631F +0x8BB3 0x6559 +0x8BB4 0x6A4B +0x8BB5 0x6CC1 +0x8BB6 0x72C2 +0x8BB7 0x72ED +0x8BB8 0x77EF +0x8BB9 0x80F8 +0x8BBA 0x8105 +0x8BBB 0x8208 +0x8BBC 0x854E +0x8BBD 0x90F7 +0x8BBE 0x93E1 +0x8BBF 0x97FF +0x8BC0 0x9957 +0x8BC1 0x9A5A +0x8BC2 0x4EF0 +0x8BC3 0x51DD +0x8BC4 0x5C2D +0x8BC5 0x6681 +0x8BC6 0x696D +0x8BC7 0x5C40 +0x8BC8 0x66F2 +0x8BC9 0x6975 +0x8BCA 0x7389 +0x8BCB 0x6850 +0x8BCC 0x7C81 +0x8BCD 0x50C5 +0x8BCE 0x52E4 +0x8BCF 0x5747 +0x8BD0 0x5DFE +0x8BD1 0x9326 +0x8BD2 0x65A4 +0x8BD3 0x6B23 +0x8BD4 0x6B3D +0x8BD5 0x7434 +0x8BD6 0x7981 +0x8BD7 0x79BD +0x8BD8 0x7B4B +0x8BD9 0x7DCA +0x8BDA 0x82B9 +0x8BDB 0x83CC +0x8BDC 0x887F +0x8BDD 0x895F +0x8BDE 0x8B39 +0x8BDF 0x8FD1 +0x8BE0 0x91D1 +0x8BE1 0x541F +0x8BE2 0x9280 +0x8BE3 0x4E5D +0x8BE4 0x5036 +0x8BE5 0x53E5 +0x8BE6 0x533A +0x8BE7 0x72D7 +0x8BE8 0x7396 +0x8BE9 0x77E9 +0x8BEA 0x82E6 +0x8BEB 0x8EAF +0x8BEC 0x99C6 +0x8BED 0x99C8 +0x8BEE 0x99D2 +0x8BEF 0x5177 +0x8BF0 0x611A +0x8BF1 0x865E +0x8BF2 0x55B0 +0x8BF3 0x7A7A +0x8BF4 0x5076 +0x8BF5 0x5BD3 +0x8BF6 0x9047 +0x8BF7 0x9685 +0x8BF8 0x4E32 +0x8BF9 0x6ADB +0x8BFA 0x91E7 +0x8BFB 0x5C51 +0x8BFC 0x5C48 +0x8C40 0x6398 +0x8C41 0x7A9F +0x8C42 0x6C93 +0x8C43 0x9774 +0x8C44 0x8F61 +0x8C45 0x7AAA +0x8C46 0x718A +0x8C47 0x9688 +0x8C48 0x7C82 +0x8C49 0x6817 +0x8C4A 0x7E70 +0x8C4B 0x6851 +0x8C4C 0x936C +0x8C4D 0x52F2 +0x8C4E 0x541B +0x8C4F 0x85AB +0x8C50 0x8A13 +0x8C51 0x7FA4 +0x8C52 0x8ECD +0x8C53 0x90E1 +0x8C54 0x5366 +0x8C55 0x8888 +0x8C56 0x7941 +0x8C57 0x4FC2 +0x8C58 0x50BE +0x8C59 0x5211 +0x8C5A 0x5144 +0x8C5B 0x5553 +0x8C5C 0x572D +0x8C5D 0x73EA +0x8C5E 0x578B +0x8C5F 0x5951 +0x8C60 0x5F62 +0x8C61 0x5F84 +0x8C62 0x6075 +0x8C63 0x6176 +0x8C64 0x6167 +0x8C65 0x61A9 +0x8C66 0x63B2 +0x8C67 0x643A +0x8C68 0x656C +0x8C69 0x666F +0x8C6A 0x6842 +0x8C6B 0x6E13 +0x8C6C 0x7566 +0x8C6D 0x7A3D +0x8C6E 0x7CFB +0x8C6F 0x7D4C +0x8C70 0x7D99 +0x8C71 0x7E4B +0x8C72 0x7F6B +0x8C73 0x830E +0x8C74 0x834A +0x8C75 0x86CD +0x8C76 0x8A08 +0x8C77 0x8A63 +0x8C78 0x8B66 +0x8C79 0x8EFD +0x8C7A 0x981A +0x8C7B 0x9D8F +0x8C7C 0x82B8 +0x8C7D 0x8FCE +0x8C7E 0x9BE8 +0x8C80 0x5287 +0x8C81 0x621F +0x8C82 0x6483 +0x8C83 0x6FC0 +0x8C84 0x9699 +0x8C85 0x6841 +0x8C86 0x5091 +0x8C87 0x6B20 +0x8C88 0x6C7A +0x8C89 0x6F54 +0x8C8A 0x7A74 +0x8C8B 0x7D50 +0x8C8C 0x8840 +0x8C8D 0x8A23 +0x8C8E 0x6708 +0x8C8F 0x4EF6 +0x8C90 0x5039 +0x8C91 0x5026 +0x8C92 0x5065 +0x8C93 0x517C +0x8C94 0x5238 +0x8C95 0x5263 +0x8C96 0x55A7 +0x8C97 0x570F +0x8C98 0x5805 +0x8C99 0x5ACC +0x8C9A 0x5EFA +0x8C9B 0x61B2 +0x8C9C 0x61F8 +0x8C9D 0x62F3 +0x8C9E 0x6372 +0x8C9F 0x691C +0x8CA0 0x6A29 +0x8CA1 0x727D +0x8CA2 0x72AC +0x8CA3 0x732E +0x8CA4 0x7814 +0x8CA5 0x786F +0x8CA6 0x7D79 +0x8CA7 0x770C +0x8CA8 0x80A9 +0x8CA9 0x898B +0x8CAA 0x8B19 +0x8CAB 0x8CE2 +0x8CAC 0x8ED2 +0x8CAD 0x9063 +0x8CAE 0x9375 +0x8CAF 0x967A +0x8CB0 0x9855 +0x8CB1 0x9A13 +0x8CB2 0x9E78 +0x8CB3 0x5143 +0x8CB4 0x539F +0x8CB5 0x53B3 +0x8CB6 0x5E7B +0x8CB7 0x5F26 +0x8CB8 0x6E1B +0x8CB9 0x6E90 +0x8CBA 0x7384 +0x8CBB 0x73FE +0x8CBC 0x7D43 +0x8CBD 0x8237 +0x8CBE 0x8A00 +0x8CBF 0x8AFA +0x8CC0 0x9650 +0x8CC1 0x4E4E +0x8CC2 0x500B +0x8CC3 0x53E4 +0x8CC4 0x547C +0x8CC5 0x56FA +0x8CC6 0x59D1 +0x8CC7 0x5B64 +0x8CC8 0x5DF1 +0x8CC9 0x5EAB +0x8CCA 0x5F27 +0x8CCB 0x6238 +0x8CCC 0x6545 +0x8CCD 0x67AF +0x8CCE 0x6E56 +0x8CCF 0x72D0 +0x8CD0 0x7CCA +0x8CD1 0x88B4 +0x8CD2 0x80A1 +0x8CD3 0x80E1 +0x8CD4 0x83F0 +0x8CD5 0x864E +0x8CD6 0x8A87 +0x8CD7 0x8DE8 +0x8CD8 0x9237 +0x8CD9 0x96C7 +0x8CDA 0x9867 +0x8CDB 0x9F13 +0x8CDC 0x4E94 +0x8CDD 0x4E92 +0x8CDE 0x4F0D +0x8CDF 0x5348 +0x8CE0 0x5449 +0x8CE1 0x543E +0x8CE2 0x5A2F +0x8CE3 0x5F8C +0x8CE4 0x5FA1 +0x8CE5 0x609F +0x8CE6 0x68A7 +0x8CE7 0x6A8E +0x8CE8 0x745A +0x8CE9 0x7881 +0x8CEA 0x8A9E +0x8CEB 0x8AA4 +0x8CEC 0x8B77 +0x8CED 0x9190 +0x8CEE 0x4E5E +0x8CEF 0x9BC9 +0x8CF0 0x4EA4 +0x8CF1 0x4F7C +0x8CF2 0x4FAF +0x8CF3 0x5019 +0x8CF4 0x5016 +0x8CF5 0x5149 +0x8CF6 0x516C +0x8CF7 0x529F +0x8CF8 0x52B9 +0x8CF9 0x52FE +0x8CFA 0x539A +0x8CFB 0x53E3 +0x8CFC 0x5411 +0x8D40 0x540E +0x8D41 0x5589 +0x8D42 0x5751 +0x8D43 0x57A2 +0x8D44 0x597D +0x8D45 0x5B54 +0x8D46 0x5B5D +0x8D47 0x5B8F +0x8D48 0x5DE5 +0x8D49 0x5DE7 +0x8D4A 0x5DF7 +0x8D4B 0x5E78 +0x8D4C 0x5E83 +0x8D4D 0x5E9A +0x8D4E 0x5EB7 +0x8D4F 0x5F18 +0x8D50 0x6052 +0x8D51 0x614C +0x8D52 0x6297 +0x8D53 0x62D8 +0x8D54 0x63A7 +0x8D55 0x653B +0x8D56 0x6602 +0x8D57 0x6643 +0x8D58 0x66F4 +0x8D59 0x676D +0x8D5A 0x6821 +0x8D5B 0x6897 +0x8D5C 0x69CB +0x8D5D 0x6C5F +0x8D5E 0x6D2A +0x8D5F 0x6D69 +0x8D60 0x6E2F +0x8D61 0x6E9D +0x8D62 0x7532 +0x8D63 0x7687 +0x8D64 0x786C +0x8D65 0x7A3F +0x8D66 0x7CE0 +0x8D67 0x7D05 +0x8D68 0x7D18 +0x8D69 0x7D5E +0x8D6A 0x7DB1 +0x8D6B 0x8015 +0x8D6C 0x8003 +0x8D6D 0x80AF +0x8D6E 0x80B1 +0x8D6F 0x8154 +0x8D70 0x818F +0x8D71 0x822A +0x8D72 0x8352 +0x8D73 0x884C +0x8D74 0x8861 +0x8D75 0x8B1B +0x8D76 0x8CA2 +0x8D77 0x8CFC +0x8D78 0x90CA +0x8D79 0x9175 +0x8D7A 0x9271 +0x8D7B 0x783F +0x8D7C 0x92FC +0x8D7D 0x95A4 +0x8D7E 0x964D +0x8D80 0x9805 +0x8D81 0x9999 +0x8D82 0x9AD8 +0x8D83 0x9D3B +0x8D84 0x525B +0x8D85 0x52AB +0x8D86 0x53F7 +0x8D87 0x5408 +0x8D88 0x58D5 +0x8D89 0x62F7 +0x8D8A 0x6FE0 +0x8D8B 0x8C6A +0x8D8C 0x8F5F +0x8D8D 0x9EB9 +0x8D8E 0x514B +0x8D8F 0x523B +0x8D90 0x544A +0x8D91 0x56FD +0x8D92 0x7A40 +0x8D93 0x9177 +0x8D94 0x9D60 +0x8D95 0x9ED2 +0x8D96 0x7344 +0x8D97 0x6F09 +0x8D98 0x8170 +0x8D99 0x7511 +0x8D9A 0x5FFD +0x8D9B 0x60DA +0x8D9C 0x9AA8 +0x8D9D 0x72DB +0x8D9E 0x8FBC +0x8D9F 0x6B64 +0x8DA0 0x9803 +0x8DA1 0x4ECA +0x8DA2 0x56F0 +0x8DA3 0x5764 +0x8DA4 0x58BE +0x8DA5 0x5A5A +0x8DA6 0x6068 +0x8DA7 0x61C7 +0x8DA8 0x660F +0x8DA9 0x6606 +0x8DAA 0x6839 +0x8DAB 0x68B1 +0x8DAC 0x6DF7 +0x8DAD 0x75D5 +0x8DAE 0x7D3A +0x8DAF 0x826E +0x8DB0 0x9B42 +0x8DB1 0x4E9B +0x8DB2 0x4F50 +0x8DB3 0x53C9 +0x8DB4 0x5506 +0x8DB5 0x5D6F +0x8DB6 0x5DE6 +0x8DB7 0x5DEE +0x8DB8 0x67FB +0x8DB9 0x6C99 +0x8DBA 0x7473 +0x8DBB 0x7802 +0x8DBC 0x8A50 +0x8DBD 0x9396 +0x8DBE 0x88DF +0x8DBF 0x5750 +0x8DC0 0x5EA7 +0x8DC1 0x632B +0x8DC2 0x50B5 +0x8DC3 0x50AC +0x8DC4 0x518D +0x8DC5 0x6700 +0x8DC6 0x54C9 +0x8DC7 0x585E +0x8DC8 0x59BB +0x8DC9 0x5BB0 +0x8DCA 0x5F69 +0x8DCB 0x624D +0x8DCC 0x63A1 +0x8DCD 0x683D +0x8DCE 0x6B73 +0x8DCF 0x6E08 +0x8DD0 0x707D +0x8DD1 0x91C7 +0x8DD2 0x7280 +0x8DD3 0x7815 +0x8DD4 0x7826 +0x8DD5 0x796D +0x8DD6 0x658E +0x8DD7 0x7D30 +0x8DD8 0x83DC +0x8DD9 0x88C1 +0x8DDA 0x8F09 +0x8DDB 0x969B +0x8DDC 0x5264 +0x8DDD 0x5728 +0x8DDE 0x6750 +0x8DDF 0x7F6A +0x8DE0 0x8CA1 +0x8DE1 0x51B4 +0x8DE2 0x5742 +0x8DE3 0x962A +0x8DE4 0x583A +0x8DE5 0x698A +0x8DE6 0x80B4 +0x8DE7 0x54B2 +0x8DE8 0x5D0E +0x8DE9 0x57FC +0x8DEA 0x7895 +0x8DEB 0x9DFA +0x8DEC 0x4F5C +0x8DED 0x524A +0x8DEE 0x548B +0x8DEF 0x643E +0x8DF0 0x6628 +0x8DF1 0x6714 +0x8DF2 0x67F5 +0x8DF3 0x7A84 +0x8DF4 0x7B56 +0x8DF5 0x7D22 +0x8DF6 0x932F +0x8DF7 0x685C +0x8DF8 0x9BAD +0x8DF9 0x7B39 +0x8DFA 0x5319 +0x8DFB 0x518A +0x8DFC 0x5237 +0x8E40 0x5BDF +0x8E41 0x62F6 +0x8E42 0x64AE +0x8E43 0x64E6 +0x8E44 0x672D +0x8E45 0x6BBA +0x8E46 0x85A9 +0x8E47 0x96D1 +0x8E48 0x7690 +0x8E49 0x9BD6 +0x8E4A 0x634C +0x8E4B 0x9306 +0x8E4C 0x9BAB +0x8E4D 0x76BF +0x8E4E 0x6652 +0x8E4F 0x4E09 +0x8E50 0x5098 +0x8E51 0x53C2 +0x8E52 0x5C71 +0x8E53 0x60E8 +0x8E54 0x6492 +0x8E55 0x6563 +0x8E56 0x685F +0x8E57 0x71E6 +0x8E58 0x73CA +0x8E59 0x7523 +0x8E5A 0x7B97 +0x8E5B 0x7E82 +0x8E5C 0x8695 +0x8E5D 0x8B83 +0x8E5E 0x8CDB +0x8E5F 0x9178 +0x8E60 0x9910 +0x8E61 0x65AC +0x8E62 0x66AB +0x8E63 0x6B8B +0x8E64 0x4ED5 +0x8E65 0x4ED4 +0x8E66 0x4F3A +0x8E67 0x4F7F +0x8E68 0x523A +0x8E69 0x53F8 +0x8E6A 0x53F2 +0x8E6B 0x55E3 +0x8E6C 0x56DB +0x8E6D 0x58EB +0x8E6E 0x59CB +0x8E6F 0x59C9 +0x8E70 0x59FF +0x8E71 0x5B50 +0x8E72 0x5C4D +0x8E73 0x5E02 +0x8E74 0x5E2B +0x8E75 0x5FD7 +0x8E76 0x601D +0x8E77 0x6307 +0x8E78 0x652F +0x8E79 0x5B5C +0x8E7A 0x65AF +0x8E7B 0x65BD +0x8E7C 0x65E8 +0x8E7D 0x679D +0x8E7E 0x6B62 +0x8E80 0x6B7B +0x8E81 0x6C0F +0x8E82 0x7345 +0x8E83 0x7949 +0x8E84 0x79C1 +0x8E85 0x7CF8 +0x8E86 0x7D19 +0x8E87 0x7D2B +0x8E88 0x80A2 +0x8E89 0x8102 +0x8E8A 0x81F3 +0x8E8B 0x8996 +0x8E8C 0x8A5E +0x8E8D 0x8A69 +0x8E8E 0x8A66 +0x8E8F 0x8A8C +0x8E90 0x8AEE +0x8E91 0x8CC7 +0x8E92 0x8CDC +0x8E93 0x96CC +0x8E94 0x98FC +0x8E95 0x6B6F +0x8E96 0x4E8B +0x8E97 0x4F3C +0x8E98 0x4F8D +0x8E99 0x5150 +0x8E9A 0x5B57 +0x8E9B 0x5BFA +0x8E9C 0x6148 +0x8E9D 0x6301 +0x8E9E 0x6642 +0x8E9F 0x6B21 +0x8EA0 0x6ECB +0x8EA1 0x6CBB +0x8EA2 0x723E +0x8EA3 0x74BD +0x8EA4 0x75D4 +0x8EA5 0x78C1 +0x8EA6 0x793A +0x8EA7 0x800C +0x8EA8 0x8033 +0x8EA9 0x81EA +0x8EAA 0x8494 +0x8EAB 0x8F9E +0x8EAC 0x6C50 +0x8EAD 0x9E7F +0x8EAE 0x5F0F +0x8EAF 0x8B58 +0x8EB0 0x9D2B +0x8EB1 0x7AFA +0x8EB2 0x8EF8 +0x8EB3 0x5B8D +0x8EB4 0x96EB +0x8EB5 0x4E03 +0x8EB6 0x53F1 +0x8EB7 0x57F7 +0x8EB8 0x5931 +0x8EB9 0x5AC9 +0x8EBA 0x5BA4 +0x8EBB 0x6089 +0x8EBC 0x6E7F +0x8EBD 0x6F06 +0x8EBE 0x75BE +0x8EBF 0x8CEA +0x8EC0 0x5B9F +0x8EC1 0x8500 +0x8EC2 0x7BE0 +0x8EC3 0x5072 +0x8EC4 0x67F4 +0x8EC5 0x829D +0x8EC6 0x5C61 +0x8EC7 0x854A +0x8EC8 0x7E1E +0x8EC9 0x820E +0x8ECA 0x5199 +0x8ECB 0x5C04 +0x8ECC 0x6368 +0x8ECD 0x8D66 +0x8ECE 0x659C +0x8ECF 0x716E +0x8ED0 0x793E +0x8ED1 0x7D17 +0x8ED2 0x8005 +0x8ED3 0x8B1D +0x8ED4 0x8ECA +0x8ED5 0x906E +0x8ED6 0x86C7 +0x8ED7 0x90AA +0x8ED8 0x501F +0x8ED9 0x52FA +0x8EDA 0x5C3A +0x8EDB 0x6753 +0x8EDC 0x707C +0x8EDD 0x7235 +0x8EDE 0x914C +0x8EDF 0x91C8 +0x8EE0 0x932B +0x8EE1 0x82E5 +0x8EE2 0x5BC2 +0x8EE3 0x5F31 +0x8EE4 0x60F9 +0x8EE5 0x4E3B +0x8EE6 0x53D6 +0x8EE7 0x5B88 +0x8EE8 0x624B +0x8EE9 0x6731 +0x8EEA 0x6B8A +0x8EEB 0x72E9 +0x8EEC 0x73E0 +0x8EED 0x7A2E +0x8EEE 0x816B +0x8EEF 0x8DA3 +0x8EF0 0x9152 +0x8EF1 0x9996 +0x8EF2 0x5112 +0x8EF3 0x53D7 +0x8EF4 0x546A +0x8EF5 0x5BFF +0x8EF6 0x6388 +0x8EF7 0x6A39 +0x8EF8 0x7DAC +0x8EF9 0x9700 +0x8EFA 0x56DA +0x8EFB 0x53CE +0x8EFC 0x5468 +0x8F40 0x5B97 +0x8F41 0x5C31 +0x8F42 0x5DDE +0x8F43 0x4FEE +0x8F44 0x6101 +0x8F45 0x62FE +0x8F46 0x6D32 +0x8F47 0x79C0 +0x8F48 0x79CB +0x8F49 0x7D42 +0x8F4A 0x7E4D +0x8F4B 0x7FD2 +0x8F4C 0x81ED +0x8F4D 0x821F +0x8F4E 0x8490 +0x8F4F 0x8846 +0x8F50 0x8972 +0x8F51 0x8B90 +0x8F52 0x8E74 +0x8F53 0x8F2F +0x8F54 0x9031 +0x8F55 0x914B +0x8F56 0x916C +0x8F57 0x96C6 +0x8F58 0x919C +0x8F59 0x4EC0 +0x8F5A 0x4F4F +0x8F5B 0x5145 +0x8F5C 0x5341 +0x8F5D 0x5F93 +0x8F5E 0x620E +0x8F5F 0x67D4 +0x8F60 0x6C41 +0x8F61 0x6E0B +0x8F62 0x7363 +0x8F63 0x7E26 +0x8F64 0x91CD +0x8F65 0x9283 +0x8F66 0x53D4 +0x8F67 0x5919 +0x8F68 0x5BBF +0x8F69 0x6DD1 +0x8F6A 0x795D +0x8F6B 0x7E2E +0x8F6C 0x7C9B +0x8F6D 0x587E +0x8F6E 0x719F +0x8F6F 0x51FA +0x8F70 0x8853 +0x8F71 0x8FF0 +0x8F72 0x4FCA +0x8F73 0x5CFB +0x8F74 0x6625 +0x8F75 0x77AC +0x8F76 0x7AE3 +0x8F77 0x821C +0x8F78 0x99FF +0x8F79 0x51C6 +0x8F7A 0x5FAA +0x8F7B 0x65EC +0x8F7C 0x696F +0x8F7D 0x6B89 +0x8F7E 0x6DF3 +0x8F80 0x6E96 +0x8F81 0x6F64 +0x8F82 0x76FE +0x8F83 0x7D14 +0x8F84 0x5DE1 +0x8F85 0x9075 +0x8F86 0x9187 +0x8F87 0x9806 +0x8F88 0x51E6 +0x8F89 0x521D +0x8F8A 0x6240 +0x8F8B 0x6691 +0x8F8C 0x66D9 +0x8F8D 0x6E1A +0x8F8E 0x5EB6 +0x8F8F 0x7DD2 +0x8F90 0x7F72 +0x8F91 0x66F8 +0x8F92 0x85AF +0x8F93 0x85F7 +0x8F94 0x8AF8 +0x8F95 0x52A9 +0x8F96 0x53D9 +0x8F97 0x5973 +0x8F98 0x5E8F +0x8F99 0x5F90 +0x8F9A 0x6055 +0x8F9B 0x92E4 +0x8F9C 0x9664 +0x8F9D 0x50B7 +0x8F9E 0x511F +0x8F9F 0x52DD +0x8FA0 0x5320 +0x8FA1 0x5347 +0x8FA2 0x53EC +0x8FA3 0x54E8 +0x8FA4 0x5546 +0x8FA5 0x5531 +0x8FA6 0x5617 +0x8FA7 0x5968 +0x8FA8 0x59BE +0x8FA9 0x5A3C +0x8FAA 0x5BB5 +0x8FAB 0x5C06 +0x8FAC 0x5C0F +0x8FAD 0x5C11 +0x8FAE 0x5C1A +0x8FAF 0x5E84 +0x8FB0 0x5E8A +0x8FB1 0x5EE0 +0x8FB2 0x5F70 +0x8FB3 0x627F +0x8FB4 0x6284 +0x8FB5 0x62DB +0x8FB6 0x638C +0x8FB7 0x6377 +0x8FB8 0x6607 +0x8FB9 0x660C +0x8FBA 0x662D +0x8FBB 0x6676 +0x8FBC 0x677E +0x8FBD 0x68A2 +0x8FBE 0x6A1F +0x8FBF 0x6A35 +0x8FC0 0x6CBC +0x8FC1 0x6D88 +0x8FC2 0x6E09 +0x8FC3 0x6E58 +0x8FC4 0x713C +0x8FC5 0x7126 +0x8FC6 0x7167 +0x8FC7 0x75C7 +0x8FC8 0x7701 +0x8FC9 0x785D +0x8FCA 0x7901 +0x8FCB 0x7965 +0x8FCC 0x79F0 +0x8FCD 0x7AE0 +0x8FCE 0x7B11 +0x8FCF 0x7CA7 +0x8FD0 0x7D39 +0x8FD1 0x8096 +0x8FD2 0x83D6 +0x8FD3 0x848B +0x8FD4 0x8549 +0x8FD5 0x885D +0x8FD6 0x88F3 +0x8FD7 0x8A1F +0x8FD8 0x8A3C +0x8FD9 0x8A54 +0x8FDA 0x8A73 +0x8FDB 0x8C61 +0x8FDC 0x8CDE +0x8FDD 0x91A4 +0x8FDE 0x9266 +0x8FDF 0x937E +0x8FE0 0x9418 +0x8FE1 0x969C +0x8FE2 0x9798 +0x8FE3 0x4E0A +0x8FE4 0x4E08 +0x8FE5 0x4E1E +0x8FE6 0x4E57 +0x8FE7 0x5197 +0x8FE8 0x5270 +0x8FE9 0x57CE +0x8FEA 0x5834 +0x8FEB 0x58CC +0x8FEC 0x5B22 +0x8FED 0x5E38 +0x8FEE 0x60C5 +0x8FEF 0x64FE +0x8FF0 0x6761 +0x8FF1 0x6756 +0x8FF2 0x6D44 +0x8FF3 0x72B6 +0x8FF4 0x7573 +0x8FF5 0x7A63 +0x8FF6 0x84B8 +0x8FF7 0x8B72 +0x8FF8 0x91B8 +0x8FF9 0x9320 +0x8FFA 0x5631 +0x8FFB 0x57F4 +0x8FFC 0x98FE +0x9040 0x62ED +0x9041 0x690D +0x9042 0x6B96 +0x9043 0x71ED +0x9044 0x7E54 +0x9045 0x8077 +0x9046 0x8272 +0x9047 0x89E6 +0x9048 0x98DF +0x9049 0x8755 +0x904A 0x8FB1 +0x904B 0x5C3B +0x904C 0x4F38 +0x904D 0x4FE1 +0x904E 0x4FB5 +0x904F 0x5507 +0x9050 0x5A20 +0x9051 0x5BDD +0x9052 0x5BE9 +0x9053 0x5FC3 +0x9054 0x614E +0x9055 0x632F +0x9056 0x65B0 +0x9057 0x664B +0x9058 0x68EE +0x9059 0x699B +0x905A 0x6D78 +0x905B 0x6DF1 +0x905C 0x7533 +0x905D 0x75B9 +0x905E 0x771F +0x905F 0x795E +0x9060 0x79E6 +0x9061 0x7D33 +0x9062 0x81E3 +0x9063 0x82AF +0x9064 0x85AA +0x9065 0x89AA +0x9066 0x8A3A +0x9067 0x8EAB +0x9068 0x8F9B +0x9069 0x9032 +0x906A 0x91DD +0x906B 0x9707 +0x906C 0x4EBA +0x906D 0x4EC1 +0x906E 0x5203 +0x906F 0x5875 +0x9070 0x58EC +0x9071 0x5C0B +0x9072 0x751A +0x9073 0x5C3D +0x9074 0x814E +0x9075 0x8A0A +0x9076 0x8FC5 +0x9077 0x9663 +0x9078 0x976D +0x9079 0x7B25 +0x907A 0x8ACF +0x907B 0x9808 +0x907C 0x9162 +0x907D 0x56F3 +0x907E 0x53A8 +0x9080 0x9017 +0x9081 0x5439 +0x9082 0x5782 +0x9083 0x5E25 +0x9084 0x63A8 +0x9085 0x6C34 +0x9086 0x708A +0x9087 0x7761 +0x9088 0x7C8B +0x9089 0x7FE0 +0x908A 0x8870 +0x908B 0x9042 +0x908C 0x9154 +0x908D 0x9310 +0x908E 0x9318 +0x908F 0x968F +0x9090 0x745E +0x9091 0x9AC4 +0x9092 0x5D07 +0x9093 0x5D69 +0x9094 0x6570 +0x9095 0x67A2 +0x9096 0x8DA8 +0x9097 0x96DB +0x9098 0x636E +0x9099 0x6749 +0x909A 0x6919 +0x909B 0x83C5 +0x909C 0x9817 +0x909D 0x96C0 +0x909E 0x88FE +0x909F 0x6F84 +0x90A0 0x647A +0x90A1 0x5BF8 +0x90A2 0x4E16 +0x90A3 0x702C +0x90A4 0x755D +0x90A5 0x662F +0x90A6 0x51C4 +0x90A7 0x5236 +0x90A8 0x52E2 +0x90A9 0x59D3 +0x90AA 0x5F81 +0x90AB 0x6027 +0x90AC 0x6210 +0x90AD 0x653F +0x90AE 0x6574 +0x90AF 0x661F +0x90B0 0x6674 +0x90B1 0x68F2 +0x90B2 0x6816 +0x90B3 0x6B63 +0x90B4 0x6E05 +0x90B5 0x7272 +0x90B6 0x751F +0x90B7 0x76DB +0x90B8 0x7CBE +0x90B9 0x8056 +0x90BA 0x58F0 +0x90BB 0x88FD +0x90BC 0x897F +0x90BD 0x8AA0 +0x90BE 0x8A93 +0x90BF 0x8ACB +0x90C0 0x901D +0x90C1 0x9192 +0x90C2 0x9752 +0x90C3 0x9759 +0x90C4 0x6589 +0x90C5 0x7A0E +0x90C6 0x8106 +0x90C7 0x96BB +0x90C8 0x5E2D +0x90C9 0x60DC +0x90CA 0x621A +0x90CB 0x65A5 +0x90CC 0x6614 +0x90CD 0x6790 +0x90CE 0x77F3 +0x90CF 0x7A4D +0x90D0 0x7C4D +0x90D1 0x7E3E +0x90D2 0x810A +0x90D3 0x8CAC +0x90D4 0x8D64 +0x90D5 0x8DE1 +0x90D6 0x8E5F +0x90D7 0x78A9 +0x90D8 0x5207 +0x90D9 0x62D9 +0x90DA 0x63A5 +0x90DB 0x6442 +0x90DC 0x6298 +0x90DD 0x8A2D +0x90DE 0x7A83 +0x90DF 0x7BC0 +0x90E0 0x8AAC +0x90E1 0x96EA +0x90E2 0x7D76 +0x90E3 0x820C +0x90E4 0x8749 +0x90E5 0x4ED9 +0x90E6 0x5148 +0x90E7 0x5343 +0x90E8 0x5360 +0x90E9 0x5BA3 +0x90EA 0x5C02 +0x90EB 0x5C16 +0x90EC 0x5DDD +0x90ED 0x6226 +0x90EE 0x6247 +0x90EF 0x64B0 +0x90F0 0x6813 +0x90F1 0x6834 +0x90F2 0x6CC9 +0x90F3 0x6D45 +0x90F4 0x6D17 +0x90F5 0x67D3 +0x90F6 0x6F5C +0x90F7 0x714E +0x90F8 0x717D +0x90F9 0x65CB +0x90FA 0x7A7F +0x90FB 0x7BAD +0x90FC 0x7DDA +0x9140 0x7E4A +0x9141 0x7FA8 +0x9142 0x817A +0x9143 0x821B +0x9144 0x8239 +0x9145 0x85A6 +0x9146 0x8A6E +0x9147 0x8CCE +0x9148 0x8DF5 +0x9149 0x9078 +0x914A 0x9077 +0x914B 0x92AD +0x914C 0x9291 +0x914D 0x9583 +0x914E 0x9BAE +0x914F 0x524D +0x9150 0x5584 +0x9151 0x6F38 +0x9152 0x7136 +0x9153 0x5168 +0x9154 0x7985 +0x9155 0x7E55 +0x9156 0x81B3 +0x9157 0x7CCE +0x9158 0x564C +0x9159 0x5851 +0x915A 0x5CA8 +0x915B 0x63AA +0x915C 0x66FE +0x915D 0x66FD +0x915E 0x695A +0x915F 0x72D9 +0x9160 0x758F +0x9161 0x758E +0x9162 0x790E +0x9163 0x7956 +0x9164 0x79DF +0x9165 0x7C97 +0x9166 0x7D20 +0x9167 0x7D44 +0x9168 0x8607 +0x9169 0x8A34 +0x916A 0x963B +0x916B 0x9061 +0x916C 0x9F20 +0x916D 0x50E7 +0x916E 0x5275 +0x916F 0x53CC +0x9170 0x53E2 +0x9171 0x5009 +0x9172 0x55AA +0x9173 0x58EE +0x9174 0x594F +0x9175 0x723D +0x9176 0x5B8B +0x9177 0x5C64 +0x9178 0x531D +0x9179 0x60E3 +0x917A 0x60F3 +0x917B 0x635C +0x917C 0x6383 +0x917D 0x633F +0x917E 0x63BB +0x9180 0x64CD +0x9181 0x65E9 +0x9182 0x66F9 +0x9183 0x5DE3 +0x9184 0x69CD +0x9185 0x69FD +0x9186 0x6F15 +0x9187 0x71E5 +0x9188 0x4E89 +0x9189 0x75E9 +0x918A 0x76F8 +0x918B 0x7A93 +0x918C 0x7CDF +0x918D 0x7DCF +0x918E 0x7D9C +0x918F 0x8061 +0x9190 0x8349 +0x9191 0x8358 +0x9192 0x846C +0x9193 0x84BC +0x9194 0x85FB +0x9195 0x88C5 +0x9196 0x8D70 +0x9197 0x9001 +0x9198 0x906D +0x9199 0x9397 +0x919A 0x971C +0x919B 0x9A12 +0x919C 0x50CF +0x919D 0x5897 +0x919E 0x618E +0x919F 0x81D3 +0x91A0 0x8535 +0x91A1 0x8D08 +0x91A2 0x9020 +0x91A3 0x4FC3 +0x91A4 0x5074 +0x91A5 0x5247 +0x91A6 0x5373 +0x91A7 0x606F +0x91A8 0x6349 +0x91A9 0x675F +0x91AA 0x6E2C +0x91AB 0x8DB3 +0x91AC 0x901F +0x91AD 0x4FD7 +0x91AE 0x5C5E +0x91AF 0x8CCA +0x91B0 0x65CF +0x91B1 0x7D9A +0x91B2 0x5352 +0x91B3 0x8896 +0x91B4 0x5176 +0x91B5 0x63C3 +0x91B6 0x5B58 +0x91B7 0x5B6B +0x91B8 0x5C0A +0x91B9 0x640D +0x91BA 0x6751 +0x91BB 0x905C +0x91BC 0x4ED6 +0x91BD 0x591A +0x91BE 0x592A +0x91BF 0x6C70 +0x91C0 0x8A51 +0x91C1 0x553E +0x91C2 0x5815 +0x91C3 0x59A5 +0x91C4 0x60F0 +0x91C5 0x6253 +0x91C6 0x67C1 +0x91C7 0x8235 +0x91C8 0x6955 +0x91C9 0x9640 +0x91CA 0x99C4 +0x91CB 0x9A28 +0x91CC 0x4F53 +0x91CD 0x5806 +0x91CE 0x5BFE +0x91CF 0x8010 +0x91D0 0x5CB1 +0x91D1 0x5E2F +0x91D2 0x5F85 +0x91D3 0x6020 +0x91D4 0x614B +0x91D5 0x6234 +0x91D6 0x66FF +0x91D7 0x6CF0 +0x91D8 0x6EDE +0x91D9 0x80CE +0x91DA 0x817F +0x91DB 0x82D4 +0x91DC 0x888B +0x91DD 0x8CB8 +0x91DE 0x9000 +0x91DF 0x902E +0x91E0 0x968A +0x91E1 0x9EDB +0x91E2 0x9BDB +0x91E3 0x4EE3 +0x91E4 0x53F0 +0x91E5 0x5927 +0x91E6 0x7B2C +0x91E7 0x918D +0x91E8 0x984C +0x91E9 0x9DF9 +0x91EA 0x6EDD +0x91EB 0x7027 +0x91EC 0x5353 +0x91ED 0x5544 +0x91EE 0x5B85 +0x91EF 0x6258 +0x91F0 0x629E +0x91F1 0x62D3 +0x91F2 0x6CA2 +0x91F3 0x6FEF +0x91F4 0x7422 +0x91F5 0x8A17 +0x91F6 0x9438 +0x91F7 0x6FC1 +0x91F8 0x8AFE +0x91F9 0x8338 +0x91FA 0x51E7 +0x91FB 0x86F8 +0x91FC 0x53EA +0x9240 0x53E9 +0x9241 0x4F46 +0x9242 0x9054 +0x9243 0x8FB0 +0x9244 0x596A +0x9245 0x8131 +0x9246 0x5DFD +0x9247 0x7AEA +0x9248 0x8FBF +0x9249 0x68DA +0x924A 0x8C37 +0x924B 0x72F8 +0x924C 0x9C48 +0x924D 0x6A3D +0x924E 0x8AB0 +0x924F 0x4E39 +0x9250 0x5358 +0x9251 0x5606 +0x9252 0x5766 +0x9253 0x62C5 +0x9254 0x63A2 +0x9255 0x65E6 +0x9256 0x6B4E +0x9257 0x6DE1 +0x9258 0x6E5B +0x9259 0x70AD +0x925A 0x77ED +0x925B 0x7AEF +0x925C 0x7BAA +0x925D 0x7DBB +0x925E 0x803D +0x925F 0x80C6 +0x9260 0x86CB +0x9261 0x8A95 +0x9262 0x935B +0x9263 0x56E3 +0x9264 0x58C7 +0x9265 0x5F3E +0x9266 0x65AD +0x9267 0x6696 +0x9268 0x6A80 +0x9269 0x6BB5 +0x926A 0x7537 +0x926B 0x8AC7 +0x926C 0x5024 +0x926D 0x77E5 +0x926E 0x5730 +0x926F 0x5F1B +0x9270 0x6065 +0x9271 0x667A +0x9272 0x6C60 +0x9273 0x75F4 +0x9274 0x7A1A +0x9275 0x7F6E +0x9276 0x81F4 +0x9277 0x8718 +0x9278 0x9045 +0x9279 0x99B3 +0x927A 0x7BC9 +0x927B 0x755C +0x927C 0x7AF9 +0x927D 0x7B51 +0x927E 0x84C4 +0x9280 0x9010 +0x9281 0x79E9 +0x9282 0x7A92 +0x9283 0x8336 +0x9284 0x5AE1 +0x9285 0x7740 +0x9286 0x4E2D +0x9287 0x4EF2 +0x9288 0x5B99 +0x9289 0x5FE0 +0x928A 0x62BD +0x928B 0x663C +0x928C 0x67F1 +0x928D 0x6CE8 +0x928E 0x866B +0x928F 0x8877 +0x9290 0x8A3B +0x9291 0x914E +0x9292 0x92F3 +0x9293 0x99D0 +0x9294 0x6A17 +0x9295 0x7026 +0x9296 0x732A +0x9297 0x82E7 +0x9298 0x8457 +0x9299 0x8CAF +0x929A 0x4E01 +0x929B 0x5146 +0x929C 0x51CB +0x929D 0x558B +0x929E 0x5BF5 +0x929F 0x5E16 +0x92A0 0x5E33 +0x92A1 0x5E81 +0x92A2 0x5F14 +0x92A3 0x5F35 +0x92A4 0x5F6B +0x92A5 0x5FB4 +0x92A6 0x61F2 +0x92A7 0x6311 +0x92A8 0x66A2 +0x92A9 0x671D +0x92AA 0x6F6E +0x92AB 0x7252 +0x92AC 0x753A +0x92AD 0x773A +0x92AE 0x8074 +0x92AF 0x8139 +0x92B0 0x8178 +0x92B1 0x8776 +0x92B2 0x8ABF +0x92B3 0x8ADC +0x92B4 0x8D85 +0x92B5 0x8DF3 +0x92B6 0x929A +0x92B7 0x9577 +0x92B8 0x9802 +0x92B9 0x9CE5 +0x92BA 0x52C5 +0x92BB 0x6357 +0x92BC 0x76F4 +0x92BD 0x6715 +0x92BE 0x6C88 +0x92BF 0x73CD +0x92C0 0x8CC3 +0x92C1 0x93AE +0x92C2 0x9673 +0x92C3 0x6D25 +0x92C4 0x589C +0x92C5 0x690E +0x92C6 0x69CC +0x92C7 0x8FFD +0x92C8 0x939A +0x92C9 0x75DB +0x92CA 0x901A +0x92CB 0x585A +0x92CC 0x6802 +0x92CD 0x63B4 +0x92CE 0x69FB +0x92CF 0x4F43 +0x92D0 0x6F2C +0x92D1 0x67D8 +0x92D2 0x8FBB +0x92D3 0x8526 +0x92D4 0x7DB4 +0x92D5 0x9354 +0x92D6 0x693F +0x92D7 0x6F70 +0x92D8 0x576A +0x92D9 0x58F7 +0x92DA 0x5B2C +0x92DB 0x7D2C +0x92DC 0x722A +0x92DD 0x540A +0x92DE 0x91E3 +0x92DF 0x9DB4 +0x92E0 0x4EAD +0x92E1 0x4F4E +0x92E2 0x505C +0x92E3 0x5075 +0x92E4 0x5243 +0x92E5 0x8C9E +0x92E6 0x5448 +0x92E7 0x5824 +0x92E8 0x5B9A +0x92E9 0x5E1D +0x92EA 0x5E95 +0x92EB 0x5EAD +0x92EC 0x5EF7 +0x92ED 0x5F1F +0x92EE 0x608C +0x92EF 0x62B5 +0x92F0 0x633A +0x92F1 0x63D0 +0x92F2 0x68AF +0x92F3 0x6C40 +0x92F4 0x7887 +0x92F5 0x798E +0x92F6 0x7A0B +0x92F7 0x7DE0 +0x92F8 0x8247 +0x92F9 0x8A02 +0x92FA 0x8AE6 +0x92FB 0x8E44 +0x92FC 0x9013 +0x9340 0x90B8 +0x9341 0x912D +0x9342 0x91D8 +0x9343 0x9F0E +0x9344 0x6CE5 +0x9345 0x6458 +0x9346 0x64E2 +0x9347 0x6575 +0x9348 0x6EF4 +0x9349 0x7684 +0x934A 0x7B1B +0x934B 0x9069 +0x934C 0x93D1 +0x934D 0x6EBA +0x934E 0x54F2 +0x934F 0x5FB9 +0x9350 0x64A4 +0x9351 0x8F4D +0x9352 0x8FED +0x9353 0x9244 +0x9354 0x5178 +0x9355 0x586B +0x9356 0x5929 +0x9357 0x5C55 +0x9358 0x5E97 +0x9359 0x6DFB +0x935A 0x7E8F +0x935B 0x751C +0x935C 0x8CBC +0x935D 0x8EE2 +0x935E 0x985B +0x935F 0x70B9 +0x9360 0x4F1D +0x9361 0x6BBF +0x9362 0x6FB1 +0x9363 0x7530 +0x9364 0x96FB +0x9365 0x514E +0x9366 0x5410 +0x9367 0x5835 +0x9368 0x5857 +0x9369 0x59AC +0x936A 0x5C60 +0x936B 0x5F92 +0x936C 0x6597 +0x936D 0x675C +0x936E 0x6E21 +0x936F 0x767B +0x9370 0x83DF +0x9371 0x8CED +0x9372 0x9014 +0x9373 0x90FD +0x9374 0x934D +0x9375 0x7825 +0x9376 0x783A +0x9377 0x52AA +0x9378 0x5EA6 +0x9379 0x571F +0x937A 0x5974 +0x937B 0x6012 +0x937C 0x5012 +0x937D 0x515A +0x937E 0x51AC +0x9380 0x51CD +0x9381 0x5200 +0x9382 0x5510 +0x9383 0x5854 +0x9384 0x5858 +0x9385 0x5957 +0x9386 0x5B95 +0x9387 0x5CF6 +0x9388 0x5D8B +0x9389 0x60BC +0x938A 0x6295 +0x938B 0x642D +0x938C 0x6771 +0x938D 0x6843 +0x938E 0x68BC +0x938F 0x68DF +0x9390 0x76D7 +0x9391 0x6DD8 +0x9392 0x6E6F +0x9393 0x6D9B +0x9394 0x706F +0x9395 0x71C8 +0x9396 0x5F53 +0x9397 0x75D8 +0x9398 0x7977 +0x9399 0x7B49 +0x939A 0x7B54 +0x939B 0x7B52 +0x939C 0x7CD6 +0x939D 0x7D71 +0x939E 0x5230 +0x939F 0x8463 +0x93A0 0x8569 +0x93A1 0x85E4 +0x93A2 0x8A0E +0x93A3 0x8B04 +0x93A4 0x8C46 +0x93A5 0x8E0F +0x93A6 0x9003 +0x93A7 0x900F +0x93A8 0x9419 +0x93A9 0x9676 +0x93AA 0x982D +0x93AB 0x9A30 +0x93AC 0x95D8 +0x93AD 0x50CD +0x93AE 0x52D5 +0x93AF 0x540C +0x93B0 0x5802 +0x93B1 0x5C0E +0x93B2 0x61A7 +0x93B3 0x649E +0x93B4 0x6D1E +0x93B5 0x77B3 +0x93B6 0x7AE5 +0x93B7 0x80F4 +0x93B8 0x8404 +0x93B9 0x9053 +0x93BA 0x9285 +0x93BB 0x5CE0 +0x93BC 0x9D07 +0x93BD 0x533F +0x93BE 0x5F97 +0x93BF 0x5FB3 +0x93C0 0x6D9C +0x93C1 0x7279 +0x93C2 0x7763 +0x93C3 0x79BF +0x93C4 0x7BE4 +0x93C5 0x6BD2 +0x93C6 0x72EC +0x93C7 0x8AAD +0x93C8 0x6803 +0x93C9 0x6A61 +0x93CA 0x51F8 +0x93CB 0x7A81 +0x93CC 0x6934 +0x93CD 0x5C4A +0x93CE 0x9CF6 +0x93CF 0x82EB +0x93D0 0x5BC5 +0x93D1 0x9149 +0x93D2 0x701E +0x93D3 0x5678 +0x93D4 0x5C6F +0x93D5 0x60C7 +0x93D6 0x6566 +0x93D7 0x6C8C +0x93D8 0x8C5A +0x93D9 0x9041 +0x93DA 0x9813 +0x93DB 0x5451 +0x93DC 0x66C7 +0x93DD 0x920D +0x93DE 0x5948 +0x93DF 0x90A3 +0x93E0 0x5185 +0x93E1 0x4E4D +0x93E2 0x51EA +0x93E3 0x8599 +0x93E4 0x8B0E +0x93E5 0x7058 +0x93E6 0x637A +0x93E7 0x934B +0x93E8 0x6962 +0x93E9 0x99B4 +0x93EA 0x7E04 +0x93EB 0x7577 +0x93EC 0x5357 +0x93ED 0x6960 +0x93EE 0x8EDF +0x93EF 0x96E3 +0x93F0 0x6C5D +0x93F1 0x4E8C +0x93F2 0x5C3C +0x93F3 0x5F10 +0x93F4 0x8FE9 +0x93F5 0x5302 +0x93F6 0x8CD1 +0x93F7 0x8089 +0x93F8 0x8679 +0x93F9 0x5EFF +0x93FA 0x65E5 +0x93FB 0x4E73 +0x93FC 0x5165 +0x9440 0x5982 +0x9441 0x5C3F +0x9442 0x97EE +0x9443 0x4EFB +0x9444 0x598A +0x9445 0x5FCD +0x9446 0x8A8D +0x9447 0x6FE1 +0x9448 0x79B0 +0x9449 0x7962 +0x944A 0x5BE7 +0x944B 0x8471 +0x944C 0x732B +0x944D 0x71B1 +0x944E 0x5E74 +0x944F 0x5FF5 +0x9450 0x637B +0x9451 0x649A +0x9452 0x71C3 +0x9453 0x7C98 +0x9454 0x4E43 +0x9455 0x5EFC +0x9456 0x4E4B +0x9457 0x57DC +0x9458 0x56A2 +0x9459 0x60A9 +0x945A 0x6FC3 +0x945B 0x7D0D +0x945C 0x80FD +0x945D 0x8133 +0x945E 0x81BF +0x945F 0x8FB2 +0x9460 0x8997 +0x9461 0x86A4 +0x9462 0x5DF4 +0x9463 0x628A +0x9464 0x64AD +0x9465 0x8987 +0x9466 0x6777 +0x9467 0x6CE2 +0x9468 0x6D3E +0x9469 0x7436 +0x946A 0x7834 +0x946B 0x5A46 +0x946C 0x7F75 +0x946D 0x82AD +0x946E 0x99AC +0x946F 0x4FF3 +0x9470 0x5EC3 +0x9471 0x62DD +0x9472 0x6392 +0x9473 0x6557 +0x9474 0x676F +0x9475 0x76C3 +0x9476 0x724C +0x9477 0x80CC +0x9478 0x80BA +0x9479 0x8F29 +0x947A 0x914D +0x947B 0x500D +0x947C 0x57F9 +0x947D 0x5A92 +0x947E 0x6885 +0x9480 0x6973 +0x9481 0x7164 +0x9482 0x72FD +0x9483 0x8CB7 +0x9484 0x58F2 +0x9485 0x8CE0 +0x9486 0x966A +0x9487 0x9019 +0x9488 0x877F +0x9489 0x79E4 +0x948A 0x77E7 +0x948B 0x8429 +0x948C 0x4F2F +0x948D 0x5265 +0x948E 0x535A +0x948F 0x62CD +0x9490 0x67CF +0x9491 0x6CCA +0x9492 0x767D +0x9493 0x7B94 +0x9494 0x7C95 +0x9495 0x8236 +0x9496 0x8584 +0x9497 0x8FEB +0x9498 0x66DD +0x9499 0x6F20 +0x949A 0x7206 +0x949B 0x7E1B +0x949C 0x83AB +0x949D 0x99C1 +0x949E 0x9EA6 +0x949F 0x51FD +0x94A0 0x7BB1 +0x94A1 0x7872 +0x94A2 0x7BB8 +0x94A3 0x8087 +0x94A4 0x7B48 +0x94A5 0x6AE8 +0x94A6 0x5E61 +0x94A7 0x808C +0x94A8 0x7551 +0x94A9 0x7560 +0x94AA 0x516B +0x94AB 0x9262 +0x94AC 0x6E8C +0x94AD 0x767A +0x94AE 0x9197 +0x94AF 0x9AEA +0x94B0 0x4F10 +0x94B1 0x7F70 +0x94B2 0x629C +0x94B3 0x7B4F +0x94B4 0x95A5 +0x94B5 0x9CE9 +0x94B6 0x567A +0x94B7 0x5859 +0x94B8 0x86E4 +0x94B9 0x96BC +0x94BA 0x4F34 +0x94BB 0x5224 +0x94BC 0x534A +0x94BD 0x53CD +0x94BE 0x53DB +0x94BF 0x5E06 +0x94C0 0x642C +0x94C1 0x6591 +0x94C2 0x677F +0x94C3 0x6C3E +0x94C4 0x6C4E +0x94C5 0x7248 +0x94C6 0x72AF +0x94C7 0x73ED +0x94C8 0x7554 +0x94C9 0x7E41 +0x94CA 0x822C +0x94CB 0x85E9 +0x94CC 0x8CA9 +0x94CD 0x7BC4 +0x94CE 0x91C6 +0x94CF 0x7169 +0x94D0 0x9812 +0x94D1 0x98EF +0x94D2 0x633D +0x94D3 0x6669 +0x94D4 0x756A +0x94D5 0x76E4 +0x94D6 0x78D0 +0x94D7 0x8543 +0x94D8 0x86EE +0x94D9 0x532A +0x94DA 0x5351 +0x94DB 0x5426 +0x94DC 0x5983 +0x94DD 0x5E87 +0x94DE 0x5F7C +0x94DF 0x60B2 +0x94E0 0x6249 +0x94E1 0x6279 +0x94E2 0x62AB +0x94E3 0x6590 +0x94E4 0x6BD4 +0x94E5 0x6CCC +0x94E6 0x75B2 +0x94E7 0x76AE +0x94E8 0x7891 +0x94E9 0x79D8 +0x94EA 0x7DCB +0x94EB 0x7F77 +0x94EC 0x80A5 +0x94ED 0x88AB +0x94EE 0x8AB9 +0x94EF 0x8CBB +0x94F0 0x907F +0x94F1 0x975E +0x94F2 0x98DB +0x94F3 0x6A0B +0x94F4 0x7C38 +0x94F5 0x5099 +0x94F6 0x5C3E +0x94F7 0x5FAE +0x94F8 0x6787 +0x94F9 0x6BD8 +0x94FA 0x7435 +0x94FB 0x7709 +0x94FC 0x7F8E +0x9540 0x9F3B +0x9541 0x67CA +0x9542 0x7A17 +0x9543 0x5339 +0x9544 0x758B +0x9545 0x9AED +0x9546 0x5F66 +0x9547 0x819D +0x9548 0x83F1 +0x9549 0x8098 +0x954A 0x5F3C +0x954B 0x5FC5 +0x954C 0x7562 +0x954D 0x7B46 +0x954E 0x903C +0x954F 0x6867 +0x9550 0x59EB +0x9551 0x5A9B +0x9552 0x7D10 +0x9553 0x767E +0x9554 0x8B2C +0x9555 0x4FF5 +0x9556 0x5F6A +0x9557 0x6A19 +0x9558 0x6C37 +0x9559 0x6F02 +0x955A 0x74E2 +0x955B 0x7968 +0x955C 0x8868 +0x955D 0x8A55 +0x955E 0x8C79 +0x955F 0x5EDF +0x9560 0x63CF +0x9561 0x75C5 +0x9562 0x79D2 +0x9563 0x82D7 +0x9564 0x9328 +0x9565 0x92F2 +0x9566 0x849C +0x9567 0x86ED +0x9568 0x9C2D +0x9569 0x54C1 +0x956A 0x5F6C +0x956B 0x658C +0x956C 0x6D5C +0x956D 0x7015 +0x956E 0x8CA7 +0x956F 0x8CD3 +0x9570 0x983B +0x9571 0x654F +0x9572 0x74F6 +0x9573 0x4E0D +0x9574 0x4ED8 +0x9575 0x57E0 +0x9576 0x592B +0x9577 0x5A66 +0x9578 0x5BCC +0x9579 0x51A8 +0x957A 0x5E03 +0x957B 0x5E9C +0x957C 0x6016 +0x957D 0x6276 +0x957E 0x6577 +0x9580 0x65A7 +0x9581 0x666E +0x9582 0x6D6E +0x9583 0x7236 +0x9584 0x7B26 +0x9585 0x8150 +0x9586 0x819A +0x9587 0x8299 +0x9588 0x8B5C +0x9589 0x8CA0 +0x958A 0x8CE6 +0x958B 0x8D74 +0x958C 0x961C +0x958D 0x9644 +0x958E 0x4FAE +0x958F 0x64AB +0x9590 0x6B66 +0x9591 0x821E +0x9592 0x8461 +0x9593 0x856A +0x9594 0x90E8 +0x9595 0x5C01 +0x9596 0x6953 +0x9597 0x98A8 +0x9598 0x847A +0x9599 0x8557 +0x959A 0x4F0F +0x959B 0x526F +0x959C 0x5FA9 +0x959D 0x5E45 +0x959E 0x670D +0x959F 0x798F +0x95A0 0x8179 +0x95A1 0x8907 +0x95A2 0x8986 +0x95A3 0x6DF5 +0x95A4 0x5F17 +0x95A5 0x6255 +0x95A6 0x6CB8 +0x95A7 0x4ECF +0x95A8 0x7269 +0x95A9 0x9B92 +0x95AA 0x5206 +0x95AB 0x543B +0x95AC 0x5674 +0x95AD 0x58B3 +0x95AE 0x61A4 +0x95AF 0x626E +0x95B0 0x711A +0x95B1 0x596E +0x95B2 0x7C89 +0x95B3 0x7CDE +0x95B4 0x7D1B +0x95B5 0x96F0 +0x95B6 0x6587 +0x95B7 0x805E +0x95B8 0x4E19 +0x95B9 0x4F75 +0x95BA 0x5175 +0x95BB 0x5840 +0x95BC 0x5E63 +0x95BD 0x5E73 +0x95BE 0x5F0A +0x95BF 0x67C4 +0x95C0 0x4E26 +0x95C1 0x853D +0x95C2 0x9589 +0x95C3 0x965B +0x95C4 0x7C73 +0x95C5 0x9801 +0x95C6 0x50FB +0x95C7 0x58C1 +0x95C8 0x7656 +0x95C9 0x78A7 +0x95CA 0x5225 +0x95CB 0x77A5 +0x95CC 0x8511 +0x95CD 0x7B86 +0x95CE 0x504F +0x95CF 0x5909 +0x95D0 0x7247 +0x95D1 0x7BC7 +0x95D2 0x7DE8 +0x95D3 0x8FBA +0x95D4 0x8FD4 +0x95D5 0x904D +0x95D6 0x4FBF +0x95D7 0x52C9 +0x95D8 0x5A29 +0x95D9 0x5F01 +0x95DA 0x97AD +0x95DB 0x4FDD +0x95DC 0x8217 +0x95DD 0x92EA +0x95DE 0x5703 +0x95DF 0x6355 +0x95E0 0x6B69 +0x95E1 0x752B +0x95E2 0x88DC +0x95E3 0x8F14 +0x95E4 0x7A42 +0x95E5 0x52DF +0x95E6 0x5893 +0x95E7 0x6155 +0x95E8 0x620A +0x95E9 0x66AE +0x95EA 0x6BCD +0x95EB 0x7C3F +0x95EC 0x83E9 +0x95ED 0x5023 +0x95EE 0x4FF8 +0x95EF 0x5305 +0x95F0 0x5446 +0x95F1 0x5831 +0x95F2 0x5949 +0x95F3 0x5B9D +0x95F4 0x5CF0 +0x95F5 0x5CEF +0x95F6 0x5D29 +0x95F7 0x5E96 +0x95F8 0x62B1 +0x95F9 0x6367 +0x95FA 0x653E +0x95FB 0x65B9 +0x95FC 0x670B +0x9640 0x6CD5 +0x9641 0x6CE1 +0x9642 0x70F9 +0x9643 0x7832 +0x9644 0x7E2B +0x9645 0x80DE +0x9646 0x82B3 +0x9647 0x840C +0x9648 0x84EC +0x9649 0x8702 +0x964A 0x8912 +0x964B 0x8A2A +0x964C 0x8C4A +0x964D 0x90A6 +0x964E 0x92D2 +0x964F 0x98FD +0x9650 0x9CF3 +0x9651 0x9D6C +0x9652 0x4E4F +0x9653 0x4EA1 +0x9654 0x508D +0x9655 0x5256 +0x9656 0x574A +0x9657 0x59A8 +0x9658 0x5E3D +0x9659 0x5FD8 +0x965A 0x5FD9 +0x965B 0x623F +0x965C 0x66B4 +0x965D 0x671B +0x965E 0x67D0 +0x965F 0x68D2 +0x9660 0x5192 +0x9661 0x7D21 +0x9662 0x80AA +0x9663 0x81A8 +0x9664 0x8B00 +0x9665 0x8C8C +0x9666 0x8CBF +0x9667 0x927E +0x9668 0x9632 +0x9669 0x5420 +0x966A 0x982C +0x966B 0x5317 +0x966C 0x50D5 +0x966D 0x535C +0x966E 0x58A8 +0x966F 0x64B2 +0x9670 0x6734 +0x9671 0x7267 +0x9672 0x7766 +0x9673 0x7A46 +0x9674 0x91E6 +0x9675 0x52C3 +0x9676 0x6CA1 +0x9677 0x6B86 +0x9678 0x5800 +0x9679 0x5E4C +0x967A 0x5954 +0x967B 0x672C +0x967C 0x7FFB +0x967D 0x51E1 +0x967E 0x76C6 +0x9680 0x6469 +0x9681 0x78E8 +0x9682 0x9B54 +0x9683 0x9EBB +0x9684 0x57CB +0x9685 0x59B9 +0x9686 0x6627 +0x9687 0x679A +0x9688 0x6BCE +0x9689 0x54E9 +0x968A 0x69D9 +0x968B 0x5E55 +0x968C 0x819C +0x968D 0x6795 +0x968E 0x9BAA +0x968F 0x67FE +0x9690 0x9C52 +0x9691 0x685D +0x9692 0x4EA6 +0x9693 0x4FE3 +0x9694 0x53C8 +0x9695 0x62B9 +0x9696 0x672B +0x9697 0x6CAB +0x9698 0x8FC4 +0x9699 0x4FAD +0x969A 0x7E6D +0x969B 0x9EBF +0x969C 0x4E07 +0x969D 0x6162 +0x969E 0x6E80 +0x969F 0x6F2B +0x96A0 0x8513 +0x96A1 0x5473 +0x96A2 0x672A +0x96A3 0x9B45 +0x96A4 0x5DF3 +0x96A5 0x7B95 +0x96A6 0x5CAC +0x96A7 0x5BC6 +0x96A8 0x871C +0x96A9 0x6E4A +0x96AA 0x84D1 +0x96AB 0x7A14 +0x96AC 0x8108 +0x96AD 0x5999 +0x96AE 0x7C8D +0x96AF 0x6C11 +0x96B0 0x7720 +0x96B1 0x52D9 +0x96B2 0x5922 +0x96B3 0x7121 +0x96B4 0x725F +0x96B5 0x77DB +0x96B6 0x9727 +0x96B7 0x9D61 +0x96B8 0x690B +0x96B9 0x5A7F +0x96BA 0x5A18 +0x96BB 0x51A5 +0x96BC 0x540D +0x96BD 0x547D +0x96BE 0x660E +0x96BF 0x76DF +0x96C0 0x8FF7 +0x96C1 0x9298 +0x96C2 0x9CF4 +0x96C3 0x59EA +0x96C4 0x725D +0x96C5 0x6EC5 +0x96C6 0x514D +0x96C7 0x68C9 +0x96C8 0x7DBF +0x96C9 0x7DEC +0x96CA 0x9762 +0x96CB 0x9EBA +0x96CC 0x6478 +0x96CD 0x6A21 +0x96CE 0x8302 +0x96CF 0x5984 +0x96D0 0x5B5F +0x96D1 0x6BDB +0x96D2 0x731B +0x96D3 0x76F2 +0x96D4 0x7DB2 +0x96D5 0x8017 +0x96D6 0x8499 +0x96D7 0x5132 +0x96D8 0x6728 +0x96D9 0x9ED9 +0x96DA 0x76EE +0x96DB 0x6762 +0x96DC 0x52FF +0x96DD 0x9905 +0x96DE 0x5C24 +0x96DF 0x623B +0x96E0 0x7C7E +0x96E1 0x8CB0 +0x96E2 0x554F +0x96E3 0x60B6 +0x96E4 0x7D0B +0x96E5 0x9580 +0x96E6 0x5301 +0x96E7 0x4E5F +0x96E8 0x51B6 +0x96E9 0x591C +0x96EA 0x723A +0x96EB 0x8036 +0x96EC 0x91CE +0x96ED 0x5F25 +0x96EE 0x77E2 +0x96EF 0x5384 +0x96F0 0x5F79 +0x96F1 0x7D04 +0x96F2 0x85AC +0x96F3 0x8A33 +0x96F4 0x8E8D +0x96F5 0x9756 +0x96F6 0x67F3 +0x96F7 0x85AE +0x96F8 0x9453 +0x96F9 0x6109 +0x96FA 0x6108 +0x96FB 0x6CB9 +0x96FC 0x7652 +0x9740 0x8AED +0x9741 0x8F38 +0x9742 0x552F +0x9743 0x4F51 +0x9744 0x512A +0x9745 0x52C7 +0x9746 0x53CB +0x9747 0x5BA5 +0x9748 0x5E7D +0x9749 0x60A0 +0x974A 0x6182 +0x974B 0x63D6 +0x974C 0x6709 +0x974D 0x67DA +0x974E 0x6E67 +0x974F 0x6D8C +0x9750 0x7336 +0x9751 0x7337 +0x9752 0x7531 +0x9753 0x7950 +0x9754 0x88D5 +0x9755 0x8A98 +0x9756 0x904A +0x9757 0x9091 +0x9758 0x90F5 +0x9759 0x96C4 +0x975A 0x878D +0x975B 0x5915 +0x975C 0x4E88 +0x975D 0x4F59 +0x975E 0x4E0E +0x975F 0x8A89 +0x9760 0x8F3F +0x9761 0x9810 +0x9762 0x50AD +0x9763 0x5E7C +0x9764 0x5996 +0x9765 0x5BB9 +0x9766 0x5EB8 +0x9767 0x63DA +0x9768 0x63FA +0x9769 0x64C1 +0x976A 0x66DC +0x976B 0x694A +0x976C 0x69D8 +0x976D 0x6D0B +0x976E 0x6EB6 +0x976F 0x7194 +0x9770 0x7528 +0x9771 0x7AAF +0x9772 0x7F8A +0x9773 0x8000 +0x9774 0x8449 +0x9775 0x84C9 +0x9776 0x8981 +0x9777 0x8B21 +0x9778 0x8E0A +0x9779 0x9065 +0x977A 0x967D +0x977B 0x990A +0x977C 0x617E +0x977D 0x6291 +0x977E 0x6B32 +0x9780 0x6C83 +0x9781 0x6D74 +0x9782 0x7FCC +0x9783 0x7FFC +0x9784 0x6DC0 +0x9785 0x7F85 +0x9786 0x87BA +0x9787 0x88F8 +0x9788 0x6765 +0x9789 0x83B1 +0x978A 0x983C +0x978B 0x96F7 +0x978C 0x6D1B +0x978D 0x7D61 +0x978E 0x843D +0x978F 0x916A +0x9790 0x4E71 +0x9791 0x5375 +0x9792 0x5D50 +0x9793 0x6B04 +0x9794 0x6FEB +0x9795 0x85CD +0x9796 0x862D +0x9797 0x89A7 +0x9798 0x5229 +0x9799 0x540F +0x979A 0x5C65 +0x979B 0x674E +0x979C 0x68A8 +0x979D 0x7406 +0x979E 0x7483 +0x979F 0x75E2 +0x97A0 0x88CF +0x97A1 0x88E1 +0x97A2 0x91CC +0x97A3 0x96E2 +0x97A4 0x9678 +0x97A5 0x5F8B +0x97A6 0x7387 +0x97A7 0x7ACB +0x97A8 0x844E +0x97A9 0x63A0 +0x97AA 0x7565 +0x97AB 0x5289 +0x97AC 0x6D41 +0x97AD 0x6E9C +0x97AE 0x7409 +0x97AF 0x7559 +0x97B0 0x786B +0x97B1 0x7C92 +0x97B2 0x9686 +0x97B3 0x7ADC +0x97B4 0x9F8D +0x97B5 0x4FB6 +0x97B6 0x616E +0x97B7 0x65C5 +0x97B8 0x865C +0x97B9 0x4E86 +0x97BA 0x4EAE +0x97BB 0x50DA +0x97BC 0x4E21 +0x97BD 0x51CC +0x97BE 0x5BEE +0x97BF 0x6599 +0x97C0 0x6881 +0x97C1 0x6DBC +0x97C2 0x731F +0x97C3 0x7642 +0x97C4 0x77AD +0x97C5 0x7A1C +0x97C6 0x7CE7 +0x97C7 0x826F +0x97C8 0x8AD2 +0x97C9 0x907C +0x97CA 0x91CF +0x97CB 0x9675 +0x97CC 0x9818 +0x97CD 0x529B +0x97CE 0x7DD1 +0x97CF 0x502B +0x97D0 0x5398 +0x97D1 0x6797 +0x97D2 0x6DCB +0x97D3 0x71D0 +0x97D4 0x7433 +0x97D5 0x81E8 +0x97D6 0x8F2A +0x97D7 0x96A3 +0x97D8 0x9C57 +0x97D9 0x9E9F +0x97DA 0x7460 +0x97DB 0x5841 +0x97DC 0x6D99 +0x97DD 0x7D2F +0x97DE 0x985E +0x97DF 0x4EE4 +0x97E0 0x4F36 +0x97E1 0x4F8B +0x97E2 0x51B7 +0x97E3 0x52B1 +0x97E4 0x5DBA +0x97E5 0x601C +0x97E6 0x73B2 +0x97E7 0x793C +0x97E8 0x82D3 +0x97E9 0x9234 +0x97EA 0x96B7 +0x97EB 0x96F6 +0x97EC 0x970A +0x97ED 0x9E97 +0x97EE 0x9F62 +0x97EF 0x66A6 +0x97F0 0x6B74 +0x97F1 0x5217 +0x97F2 0x52A3 +0x97F3 0x70C8 +0x97F4 0x88C2 +0x97F5 0x5EC9 +0x97F6 0x604B +0x97F7 0x6190 +0x97F8 0x6F23 +0x97F9 0x7149 +0x97FA 0x7C3E +0x97FB 0x7DF4 +0x97FC 0x806F +0x9840 0x84EE +0x9841 0x9023 +0x9842 0x932C +0x9843 0x5442 +0x9844 0x9B6F +0x9845 0x6AD3 +0x9846 0x7089 +0x9847 0x8CC2 +0x9848 0x8DEF +0x9849 0x9732 +0x984A 0x52B4 +0x984B 0x5A41 +0x984C 0x5ECA +0x984D 0x5F04 +0x984E 0x6717 +0x984F 0x697C +0x9850 0x6994 +0x9851 0x6D6A +0x9852 0x6F0F +0x9853 0x7262 +0x9854 0x72FC +0x9855 0x7BED +0x9856 0x8001 +0x9857 0x807E +0x9858 0x874B +0x9859 0x90CE +0x985A 0x516D +0x985B 0x9E93 +0x985C 0x7984 +0x985D 0x808B +0x985E 0x9332 +0x985F 0x8AD6 +0x9860 0x502D +0x9861 0x548C +0x9862 0x8A71 +0x9863 0x6B6A +0x9864 0x8CC4 +0x9865 0x8107 +0x9866 0x60D1 +0x9867 0x67A0 +0x9868 0x9DF2 +0x9869 0x4E99 +0x986A 0x4E98 +0x986B 0x9C10 +0x986C 0x8A6B +0x986D 0x85C1 +0x986E 0x8568 +0x986F 0x6900 +0x9870 0x6E7E +0x9871 0x7897 +0x9872 0x8155 +0x989F 0x5F0C +0x98A0 0x4E10 +0x98A1 0x4E15 +0x98A2 0x4E2A +0x98A3 0x4E31 +0x98A4 0x4E36 +0x98A5 0x4E3C +0x98A6 0x4E3F +0x98A7 0x4E42 +0x98A8 0x4E56 +0x98A9 0x4E58 +0x98AA 0x4E82 +0x98AB 0x4E85 +0x98AC 0x8C6B +0x98AD 0x4E8A +0x98AE 0x8212 +0x98AF 0x5F0D +0x98B0 0x4E8E +0x98B1 0x4E9E +0x98B2 0x4E9F +0x98B3 0x4EA0 +0x98B4 0x4EA2 +0x98B5 0x4EB0 +0x98B6 0x4EB3 +0x98B7 0x4EB6 +0x98B8 0x4ECE +0x98B9 0x4ECD +0x98BA 0x4EC4 +0x98BB 0x4EC6 +0x98BC 0x4EC2 +0x98BD 0x4ED7 +0x98BE 0x4EDE +0x98BF 0x4EED +0x98C0 0x4EDF +0x98C1 0x4EF7 +0x98C2 0x4F09 +0x98C3 0x4F5A +0x98C4 0x4F30 +0x98C5 0x4F5B +0x98C6 0x4F5D +0x98C7 0x4F57 +0x98C8 0x4F47 +0x98C9 0x4F76 +0x98CA 0x4F88 +0x98CB 0x4F8F +0x98CC 0x4F98 +0x98CD 0x4F7B +0x98CE 0x4F69 +0x98CF 0x4F70 +0x98D0 0x4F91 +0x98D1 0x4F6F +0x98D2 0x4F86 +0x98D3 0x4F96 +0x98D4 0x5118 +0x98D5 0x4FD4 +0x98D6 0x4FDF +0x98D7 0x4FCE +0x98D8 0x4FD8 +0x98D9 0x4FDB +0x98DA 0x4FD1 +0x98DB 0x4FDA +0x98DC 0x4FD0 +0x98DD 0x4FE4 +0x98DE 0x4FE5 +0x98DF 0x501A +0x98E0 0x5028 +0x98E1 0x5014 +0x98E2 0x502A +0x98E3 0x5025 +0x98E4 0x5005 +0x98E5 0x4F1C +0x98E6 0x4FF6 +0x98E7 0x5021 +0x98E8 0x5029 +0x98E9 0x502C +0x98EA 0x4FFE +0x98EB 0x4FEF +0x98EC 0x5011 +0x98ED 0x5006 +0x98EE 0x5043 +0x98EF 0x5047 +0x98F0 0x6703 +0x98F1 0x5055 +0x98F2 0x5050 +0x98F3 0x5048 +0x98F4 0x505A +0x98F5 0x5056 +0x98F6 0x506C +0x98F7 0x5078 +0x98F8 0x5080 +0x98F9 0x509A +0x98FA 0x5085 +0x98FB 0x50B4 +0x98FC 0x50B2 +0x9940 0x50C9 +0x9941 0x50CA +0x9942 0x50B3 +0x9943 0x50C2 +0x9944 0x50D6 +0x9945 0x50DE +0x9946 0x50E5 +0x9947 0x50ED +0x9948 0x50E3 +0x9949 0x50EE +0x994A 0x50F9 +0x994B 0x50F5 +0x994C 0x5109 +0x994D 0x5101 +0x994E 0x5102 +0x994F 0x5116 +0x9950 0x5115 +0x9951 0x5114 +0x9952 0x511A +0x9953 0x5121 +0x9954 0x513A +0x9955 0x5137 +0x9956 0x513C +0x9957 0x513B +0x9958 0x513F +0x9959 0x5140 +0x995A 0x5152 +0x995B 0x514C +0x995C 0x5154 +0x995D 0x5162 +0x995E 0x7AF8 +0x995F 0x5169 +0x9960 0x516A +0x9961 0x516E +0x9962 0x5180 +0x9963 0x5182 +0x9964 0x56D8 +0x9965 0x518C +0x9966 0x5189 +0x9967 0x518F +0x9968 0x5191 +0x9969 0x5193 +0x996A 0x5195 +0x996B 0x5196 +0x996C 0x51A4 +0x996D 0x51A6 +0x996E 0x51A2 +0x996F 0x51A9 +0x9970 0x51AA +0x9971 0x51AB +0x9972 0x51B3 +0x9973 0x51B1 +0x9974 0x51B2 +0x9975 0x51B0 +0x9976 0x51B5 +0x9977 0x51BD +0x9978 0x51C5 +0x9979 0x51C9 +0x997A 0x51DB +0x997B 0x51E0 +0x997C 0x8655 +0x997D 0x51E9 +0x997E 0x51ED +0x9980 0x51F0 +0x9981 0x51F5 +0x9982 0x51FE +0x9983 0x5204 +0x9984 0x520B +0x9985 0x5214 +0x9986 0x520E +0x9987 0x5227 +0x9988 0x522A +0x9989 0x522E +0x998A 0x5233 +0x998B 0x5239 +0x998C 0x524F +0x998D 0x5244 +0x998E 0x524B +0x998F 0x524C +0x9990 0x525E +0x9991 0x5254 +0x9992 0x526A +0x9993 0x5274 +0x9994 0x5269 +0x9995 0x5273 +0x9996 0x527F +0x9997 0x527D +0x9998 0x528D +0x9999 0x5294 +0x999A 0x5292 +0x999B 0x5271 +0x999C 0x5288 +0x999D 0x5291 +0x999E 0x8FA8 +0x999F 0x8FA7 +0x99A0 0x52AC +0x99A1 0x52AD +0x99A2 0x52BC +0x99A3 0x52B5 +0x99A4 0x52C1 +0x99A5 0x52CD +0x99A6 0x52D7 +0x99A7 0x52DE +0x99A8 0x52E3 +0x99A9 0x52E6 +0x99AA 0x98ED +0x99AB 0x52E0 +0x99AC 0x52F3 +0x99AD 0x52F5 +0x99AE 0x52F8 +0x99AF 0x52F9 +0x99B0 0x5306 +0x99B1 0x5308 +0x99B2 0x7538 +0x99B3 0x530D +0x99B4 0x5310 +0x99B5 0x530F +0x99B6 0x5315 +0x99B7 0x531A +0x99B8 0x5323 +0x99B9 0x532F +0x99BA 0x5331 +0x99BB 0x5333 +0x99BC 0x5338 +0x99BD 0x5340 +0x99BE 0x5346 +0x99BF 0x5345 +0x99C0 0x4E17 +0x99C1 0x5349 +0x99C2 0x534D +0x99C3 0x51D6 +0x99C4 0x535E +0x99C5 0x5369 +0x99C6 0x536E +0x99C7 0x5918 +0x99C8 0x537B +0x99C9 0x5377 +0x99CA 0x5382 +0x99CB 0x5396 +0x99CC 0x53A0 +0x99CD 0x53A6 +0x99CE 0x53A5 +0x99CF 0x53AE +0x99D0 0x53B0 +0x99D1 0x53B6 +0x99D2 0x53C3 +0x99D3 0x7C12 +0x99D4 0x96D9 +0x99D5 0x53DF +0x99D6 0x66FC +0x99D7 0x71EE +0x99D8 0x53EE +0x99D9 0x53E8 +0x99DA 0x53ED +0x99DB 0x53FA +0x99DC 0x5401 +0x99DD 0x543D +0x99DE 0x5440 +0x99DF 0x542C +0x99E0 0x542D +0x99E1 0x543C +0x99E2 0x542E +0x99E3 0x5436 +0x99E4 0x5429 +0x99E5 0x541D +0x99E6 0x544E +0x99E7 0x548F +0x99E8 0x5475 +0x99E9 0x548E +0x99EA 0x545F +0x99EB 0x5471 +0x99EC 0x5477 +0x99ED 0x5470 +0x99EE 0x5492 +0x99EF 0x547B +0x99F0 0x5480 +0x99F1 0x5476 +0x99F2 0x5484 +0x99F3 0x5490 +0x99F4 0x5486 +0x99F5 0x54C7 +0x99F6 0x54A2 +0x99F7 0x54B8 +0x99F8 0x54A5 +0x99F9 0x54AC +0x99FA 0x54C4 +0x99FB 0x54C8 +0x99FC 0x54A8 +0x9A40 0x54AB +0x9A41 0x54C2 +0x9A42 0x54A4 +0x9A43 0x54BE +0x9A44 0x54BC +0x9A45 0x54D8 +0x9A46 0x54E5 +0x9A47 0x54E6 +0x9A48 0x550F +0x9A49 0x5514 +0x9A4A 0x54FD +0x9A4B 0x54EE +0x9A4C 0x54ED +0x9A4D 0x54FA +0x9A4E 0x54E2 +0x9A4F 0x5539 +0x9A50 0x5540 +0x9A51 0x5563 +0x9A52 0x554C +0x9A53 0x552E +0x9A54 0x555C +0x9A55 0x5545 +0x9A56 0x5556 +0x9A57 0x5557 +0x9A58 0x5538 +0x9A59 0x5533 +0x9A5A 0x555D +0x9A5B 0x5599 +0x9A5C 0x5580 +0x9A5D 0x54AF +0x9A5E 0x558A +0x9A5F 0x559F +0x9A60 0x557B +0x9A61 0x557E +0x9A62 0x5598 +0x9A63 0x559E +0x9A64 0x55AE +0x9A65 0x557C +0x9A66 0x5583 +0x9A67 0x55A9 +0x9A68 0x5587 +0x9A69 0x55A8 +0x9A6A 0x55DA +0x9A6B 0x55C5 +0x9A6C 0x55DF +0x9A6D 0x55C4 +0x9A6E 0x55DC +0x9A6F 0x55E4 +0x9A70 0x55D4 +0x9A71 0x5614 +0x9A72 0x55F7 +0x9A73 0x5616 +0x9A74 0x55FE +0x9A75 0x55FD +0x9A76 0x561B +0x9A77 0x55F9 +0x9A78 0x564E +0x9A79 0x5650 +0x9A7A 0x71DF +0x9A7B 0x5634 +0x9A7C 0x5636 +0x9A7D 0x5632 +0x9A7E 0x5638 +0x9A80 0x566B +0x9A81 0x5664 +0x9A82 0x562F +0x9A83 0x566C +0x9A84 0x566A +0x9A85 0x5686 +0x9A86 0x5680 +0x9A87 0x568A +0x9A88 0x56A0 +0x9A89 0x5694 +0x9A8A 0x568F +0x9A8B 0x56A5 +0x9A8C 0x56AE +0x9A8D 0x56B6 +0x9A8E 0x56B4 +0x9A8F 0x56C2 +0x9A90 0x56BC +0x9A91 0x56C1 +0x9A92 0x56C3 +0x9A93 0x56C0 +0x9A94 0x56C8 +0x9A95 0x56CE +0x9A96 0x56D1 +0x9A97 0x56D3 +0x9A98 0x56D7 +0x9A99 0x56EE +0x9A9A 0x56F9 +0x9A9B 0x5700 +0x9A9C 0x56FF +0x9A9D 0x5704 +0x9A9E 0x5709 +0x9A9F 0x5708 +0x9AA0 0x570B +0x9AA1 0x570D +0x9AA2 0x5713 +0x9AA3 0x5718 +0x9AA4 0x5716 +0x9AA5 0x55C7 +0x9AA6 0x571C +0x9AA7 0x5726 +0x9AA8 0x5737 +0x9AA9 0x5738 +0x9AAA 0x574E +0x9AAB 0x573B +0x9AAC 0x5740 +0x9AAD 0x574F +0x9AAE 0x5769 +0x9AAF 0x57C0 +0x9AB0 0x5788 +0x9AB1 0x5761 +0x9AB2 0x577F +0x9AB3 0x5789 +0x9AB4 0x5793 +0x9AB5 0x57A0 +0x9AB6 0x57B3 +0x9AB7 0x57A4 +0x9AB8 0x57AA +0x9AB9 0x57B0 +0x9ABA 0x57C3 +0x9ABB 0x57C6 +0x9ABC 0x57D4 +0x9ABD 0x57D2 +0x9ABE 0x57D3 +0x9ABF 0x580A +0x9AC0 0x57D6 +0x9AC1 0x57E3 +0x9AC2 0x580B +0x9AC3 0x5819 +0x9AC4 0x581D +0x9AC5 0x5872 +0x9AC6 0x5821 +0x9AC7 0x5862 +0x9AC8 0x584B +0x9AC9 0x5870 +0x9ACA 0x6BC0 +0x9ACB 0x5852 +0x9ACC 0x583D +0x9ACD 0x5879 +0x9ACE 0x5885 +0x9ACF 0x58B9 +0x9AD0 0x589F +0x9AD1 0x58AB +0x9AD2 0x58BA +0x9AD3 0x58DE +0x9AD4 0x58BB +0x9AD5 0x58B8 +0x9AD6 0x58AE +0x9AD7 0x58C5 +0x9AD8 0x58D3 +0x9AD9 0x58D1 +0x9ADA 0x58D7 +0x9ADB 0x58D9 +0x9ADC 0x58D8 +0x9ADD 0x58E5 +0x9ADE 0x58DC +0x9ADF 0x58E4 +0x9AE0 0x58DF +0x9AE1 0x58EF +0x9AE2 0x58FA +0x9AE3 0x58F9 +0x9AE4 0x58FB +0x9AE5 0x58FC +0x9AE6 0x58FD +0x9AE7 0x5902 +0x9AE8 0x590A +0x9AE9 0x5910 +0x9AEA 0x591B +0x9AEB 0x68A6 +0x9AEC 0x5925 +0x9AED 0x592C +0x9AEE 0x592D +0x9AEF 0x5932 +0x9AF0 0x5938 +0x9AF1 0x593E +0x9AF2 0x7AD2 +0x9AF3 0x5955 +0x9AF4 0x5950 +0x9AF5 0x594E +0x9AF6 0x595A +0x9AF7 0x5958 +0x9AF8 0x5962 +0x9AF9 0x5960 +0x9AFA 0x5967 +0x9AFB 0x596C +0x9AFC 0x5969 +0x9B40 0x5978 +0x9B41 0x5981 +0x9B42 0x599D +0x9B43 0x4F5E +0x9B44 0x4FAB +0x9B45 0x59A3 +0x9B46 0x59B2 +0x9B47 0x59C6 +0x9B48 0x59E8 +0x9B49 0x59DC +0x9B4A 0x598D +0x9B4B 0x59D9 +0x9B4C 0x59DA +0x9B4D 0x5A25 +0x9B4E 0x5A1F +0x9B4F 0x5A11 +0x9B50 0x5A1C +0x9B51 0x5A09 +0x9B52 0x5A1A +0x9B53 0x5A40 +0x9B54 0x5A6C +0x9B55 0x5A49 +0x9B56 0x5A35 +0x9B57 0x5A36 +0x9B58 0x5A62 +0x9B59 0x5A6A +0x9B5A 0x5A9A +0x9B5B 0x5ABC +0x9B5C 0x5ABE +0x9B5D 0x5ACB +0x9B5E 0x5AC2 +0x9B5F 0x5ABD +0x9B60 0x5AE3 +0x9B61 0x5AD7 +0x9B62 0x5AE6 +0x9B63 0x5AE9 +0x9B64 0x5AD6 +0x9B65 0x5AFA +0x9B66 0x5AFB +0x9B67 0x5B0C +0x9B68 0x5B0B +0x9B69 0x5B16 +0x9B6A 0x5B32 +0x9B6B 0x5AD0 +0x9B6C 0x5B2A +0x9B6D 0x5B36 +0x9B6E 0x5B3E +0x9B6F 0x5B43 +0x9B70 0x5B45 +0x9B71 0x5B40 +0x9B72 0x5B51 +0x9B73 0x5B55 +0x9B74 0x5B5A +0x9B75 0x5B5B +0x9B76 0x5B65 +0x9B77 0x5B69 +0x9B78 0x5B70 +0x9B79 0x5B73 +0x9B7A 0x5B75 +0x9B7B 0x5B78 +0x9B7C 0x6588 +0x9B7D 0x5B7A +0x9B7E 0x5B80 +0x9B80 0x5B83 +0x9B81 0x5BA6 +0x9B82 0x5BB8 +0x9B83 0x5BC3 +0x9B84 0x5BC7 +0x9B85 0x5BC9 +0x9B86 0x5BD4 +0x9B87 0x5BD0 +0x9B88 0x5BE4 +0x9B89 0x5BE6 +0x9B8A 0x5BE2 +0x9B8B 0x5BDE +0x9B8C 0x5BE5 +0x9B8D 0x5BEB +0x9B8E 0x5BF0 +0x9B8F 0x5BF6 +0x9B90 0x5BF3 +0x9B91 0x5C05 +0x9B92 0x5C07 +0x9B93 0x5C08 +0x9B94 0x5C0D +0x9B95 0x5C13 +0x9B96 0x5C20 +0x9B97 0x5C22 +0x9B98 0x5C28 +0x9B99 0x5C38 +0x9B9A 0x5C39 +0x9B9B 0x5C41 +0x9B9C 0x5C46 +0x9B9D 0x5C4E +0x9B9E 0x5C53 +0x9B9F 0x5C50 +0x9BA0 0x5C4F +0x9BA1 0x5B71 +0x9BA2 0x5C6C +0x9BA3 0x5C6E +0x9BA4 0x4E62 +0x9BA5 0x5C76 +0x9BA6 0x5C79 +0x9BA7 0x5C8C +0x9BA8 0x5C91 +0x9BA9 0x5C94 +0x9BAA 0x599B +0x9BAB 0x5CAB +0x9BAC 0x5CBB +0x9BAD 0x5CB6 +0x9BAE 0x5CBC +0x9BAF 0x5CB7 +0x9BB0 0x5CC5 +0x9BB1 0x5CBE +0x9BB2 0x5CC7 +0x9BB3 0x5CD9 +0x9BB4 0x5CE9 +0x9BB5 0x5CFD +0x9BB6 0x5CFA +0x9BB7 0x5CED +0x9BB8 0x5D8C +0x9BB9 0x5CEA +0x9BBA 0x5D0B +0x9BBB 0x5D15 +0x9BBC 0x5D17 +0x9BBD 0x5D5C +0x9BBE 0x5D1F +0x9BBF 0x5D1B +0x9BC0 0x5D11 +0x9BC1 0x5D14 +0x9BC2 0x5D22 +0x9BC3 0x5D1A +0x9BC4 0x5D19 +0x9BC5 0x5D18 +0x9BC6 0x5D4C +0x9BC7 0x5D52 +0x9BC8 0x5D4E +0x9BC9 0x5D4B +0x9BCA 0x5D6C +0x9BCB 0x5D73 +0x9BCC 0x5D76 +0x9BCD 0x5D87 +0x9BCE 0x5D84 +0x9BCF 0x5D82 +0x9BD0 0x5DA2 +0x9BD1 0x5D9D +0x9BD2 0x5DAC +0x9BD3 0x5DAE +0x9BD4 0x5DBD +0x9BD5 0x5D90 +0x9BD6 0x5DB7 +0x9BD7 0x5DBC +0x9BD8 0x5DC9 +0x9BD9 0x5DCD +0x9BDA 0x5DD3 +0x9BDB 0x5DD2 +0x9BDC 0x5DD6 +0x9BDD 0x5DDB +0x9BDE 0x5DEB +0x9BDF 0x5DF2 +0x9BE0 0x5DF5 +0x9BE1 0x5E0B +0x9BE2 0x5E1A +0x9BE3 0x5E19 +0x9BE4 0x5E11 +0x9BE5 0x5E1B +0x9BE6 0x5E36 +0x9BE7 0x5E37 +0x9BE8 0x5E44 +0x9BE9 0x5E43 +0x9BEA 0x5E40 +0x9BEB 0x5E4E +0x9BEC 0x5E57 +0x9BED 0x5E54 +0x9BEE 0x5E5F +0x9BEF 0x5E62 +0x9BF0 0x5E64 +0x9BF1 0x5E47 +0x9BF2 0x5E75 +0x9BF3 0x5E76 +0x9BF4 0x5E7A +0x9BF5 0x9EBC +0x9BF6 0x5E7F +0x9BF7 0x5EA0 +0x9BF8 0x5EC1 +0x9BF9 0x5EC2 +0x9BFA 0x5EC8 +0x9BFB 0x5ED0 +0x9BFC 0x5ECF +0x9C40 0x5ED6 +0x9C41 0x5EE3 +0x9C42 0x5EDD +0x9C43 0x5EDA +0x9C44 0x5EDB +0x9C45 0x5EE2 +0x9C46 0x5EE1 +0x9C47 0x5EE8 +0x9C48 0x5EE9 +0x9C49 0x5EEC +0x9C4A 0x5EF1 +0x9C4B 0x5EF3 +0x9C4C 0x5EF0 +0x9C4D 0x5EF4 +0x9C4E 0x5EF8 +0x9C4F 0x5EFE +0x9C50 0x5F03 +0x9C51 0x5F09 +0x9C52 0x5F5D +0x9C53 0x5F5C +0x9C54 0x5F0B +0x9C55 0x5F11 +0x9C56 0x5F16 +0x9C57 0x5F29 +0x9C58 0x5F2D +0x9C59 0x5F38 +0x9C5A 0x5F41 +0x9C5B 0x5F48 +0x9C5C 0x5F4C +0x9C5D 0x5F4E +0x9C5E 0x5F2F +0x9C5F 0x5F51 +0x9C60 0x5F56 +0x9C61 0x5F57 +0x9C62 0x5F59 +0x9C63 0x5F61 +0x9C64 0x5F6D +0x9C65 0x5F73 +0x9C66 0x5F77 +0x9C67 0x5F83 +0x9C68 0x5F82 +0x9C69 0x5F7F +0x9C6A 0x5F8A +0x9C6B 0x5F88 +0x9C6C 0x5F91 +0x9C6D 0x5F87 +0x9C6E 0x5F9E +0x9C6F 0x5F99 +0x9C70 0x5F98 +0x9C71 0x5FA0 +0x9C72 0x5FA8 +0x9C73 0x5FAD +0x9C74 0x5FBC +0x9C75 0x5FD6 +0x9C76 0x5FFB +0x9C77 0x5FE4 +0x9C78 0x5FF8 +0x9C79 0x5FF1 +0x9C7A 0x5FDD +0x9C7B 0x60B3 +0x9C7C 0x5FFF +0x9C7D 0x6021 +0x9C7E 0x6060 +0x9C80 0x6019 +0x9C81 0x6010 +0x9C82 0x6029 +0x9C83 0x600E +0x9C84 0x6031 +0x9C85 0x601B +0x9C86 0x6015 +0x9C87 0x602B +0x9C88 0x6026 +0x9C89 0x600F +0x9C8A 0x603A +0x9C8B 0x605A +0x9C8C 0x6041 +0x9C8D 0x606A +0x9C8E 0x6077 +0x9C8F 0x605F +0x9C90 0x604A +0x9C91 0x6046 +0x9C92 0x604D +0x9C93 0x6063 +0x9C94 0x6043 +0x9C95 0x6064 +0x9C96 0x6042 +0x9C97 0x606C +0x9C98 0x606B +0x9C99 0x6059 +0x9C9A 0x6081 +0x9C9B 0x608D +0x9C9C 0x60E7 +0x9C9D 0x6083 +0x9C9E 0x609A +0x9C9F 0x6084 +0x9CA0 0x609B +0x9CA1 0x6096 +0x9CA2 0x6097 +0x9CA3 0x6092 +0x9CA4 0x60A7 +0x9CA5 0x608B +0x9CA6 0x60E1 +0x9CA7 0x60B8 +0x9CA8 0x60E0 +0x9CA9 0x60D3 +0x9CAA 0x60B4 +0x9CAB 0x5FF0 +0x9CAC 0x60BD +0x9CAD 0x60C6 +0x9CAE 0x60B5 +0x9CAF 0x60D8 +0x9CB0 0x614D +0x9CB1 0x6115 +0x9CB2 0x6106 +0x9CB3 0x60F6 +0x9CB4 0x60F7 +0x9CB5 0x6100 +0x9CB6 0x60F4 +0x9CB7 0x60FA +0x9CB8 0x6103 +0x9CB9 0x6121 +0x9CBA 0x60FB +0x9CBB 0x60F1 +0x9CBC 0x610D +0x9CBD 0x610E +0x9CBE 0x6147 +0x9CBF 0x613E +0x9CC0 0x6128 +0x9CC1 0x6127 +0x9CC2 0x614A +0x9CC3 0x613F +0x9CC4 0x613C +0x9CC5 0x612C +0x9CC6 0x6134 +0x9CC7 0x613D +0x9CC8 0x6142 +0x9CC9 0x6144 +0x9CCA 0x6173 +0x9CCB 0x6177 +0x9CCC 0x6158 +0x9CCD 0x6159 +0x9CCE 0x615A +0x9CCF 0x616B +0x9CD0 0x6174 +0x9CD1 0x616F +0x9CD2 0x6165 +0x9CD3 0x6171 +0x9CD4 0x615F +0x9CD5 0x615D +0x9CD6 0x6153 +0x9CD7 0x6175 +0x9CD8 0x6199 +0x9CD9 0x6196 +0x9CDA 0x6187 +0x9CDB 0x61AC +0x9CDC 0x6194 +0x9CDD 0x619A +0x9CDE 0x618A +0x9CDF 0x6191 +0x9CE0 0x61AB +0x9CE1 0x61AE +0x9CE2 0x61CC +0x9CE3 0x61CA +0x9CE4 0x61C9 +0x9CE5 0x61F7 +0x9CE6 0x61C8 +0x9CE7 0x61C3 +0x9CE8 0x61C6 +0x9CE9 0x61BA +0x9CEA 0x61CB +0x9CEB 0x7F79 +0x9CEC 0x61CD +0x9CED 0x61E6 +0x9CEE 0x61E3 +0x9CEF 0x61F6 +0x9CF0 0x61FA +0x9CF1 0x61F4 +0x9CF2 0x61FF +0x9CF3 0x61FD +0x9CF4 0x61FC +0x9CF5 0x61FE +0x9CF6 0x6200 +0x9CF7 0x6208 +0x9CF8 0x6209 +0x9CF9 0x620D +0x9CFA 0x620C +0x9CFB 0x6214 +0x9CFC 0x621B +0x9D40 0x621E +0x9D41 0x6221 +0x9D42 0x622A +0x9D43 0x622E +0x9D44 0x6230 +0x9D45 0x6232 +0x9D46 0x6233 +0x9D47 0x6241 +0x9D48 0x624E +0x9D49 0x625E +0x9D4A 0x6263 +0x9D4B 0x625B +0x9D4C 0x6260 +0x9D4D 0x6268 +0x9D4E 0x627C +0x9D4F 0x6282 +0x9D50 0x6289 +0x9D51 0x627E +0x9D52 0x6292 +0x9D53 0x6293 +0x9D54 0x6296 +0x9D55 0x62D4 +0x9D56 0x6283 +0x9D57 0x6294 +0x9D58 0x62D7 +0x9D59 0x62D1 +0x9D5A 0x62BB +0x9D5B 0x62CF +0x9D5C 0x62FF +0x9D5D 0x62C6 +0x9D5E 0x64D4 +0x9D5F 0x62C8 +0x9D60 0x62DC +0x9D61 0x62CC +0x9D62 0x62CA +0x9D63 0x62C2 +0x9D64 0x62C7 +0x9D65 0x629B +0x9D66 0x62C9 +0x9D67 0x630C +0x9D68 0x62EE +0x9D69 0x62F1 +0x9D6A 0x6327 +0x9D6B 0x6302 +0x9D6C 0x6308 +0x9D6D 0x62EF +0x9D6E 0x62F5 +0x9D6F 0x6350 +0x9D70 0x633E +0x9D71 0x634D +0x9D72 0x641C +0x9D73 0x634F +0x9D74 0x6396 +0x9D75 0x638E +0x9D76 0x6380 +0x9D77 0x63AB +0x9D78 0x6376 +0x9D79 0x63A3 +0x9D7A 0x638F +0x9D7B 0x6389 +0x9D7C 0x639F +0x9D7D 0x63B5 +0x9D7E 0x636B +0x9D80 0x6369 +0x9D81 0x63BE +0x9D82 0x63E9 +0x9D83 0x63C0 +0x9D84 0x63C6 +0x9D85 0x63E3 +0x9D86 0x63C9 +0x9D87 0x63D2 +0x9D88 0x63F6 +0x9D89 0x63C4 +0x9D8A 0x6416 +0x9D8B 0x6434 +0x9D8C 0x6406 +0x9D8D 0x6413 +0x9D8E 0x6426 +0x9D8F 0x6436 +0x9D90 0x651D +0x9D91 0x6417 +0x9D92 0x6428 +0x9D93 0x640F +0x9D94 0x6467 +0x9D95 0x646F +0x9D96 0x6476 +0x9D97 0x644E +0x9D98 0x652A +0x9D99 0x6495 +0x9D9A 0x6493 +0x9D9B 0x64A5 +0x9D9C 0x64A9 +0x9D9D 0x6488 +0x9D9E 0x64BC +0x9D9F 0x64DA +0x9DA0 0x64D2 +0x9DA1 0x64C5 +0x9DA2 0x64C7 +0x9DA3 0x64BB +0x9DA4 0x64D8 +0x9DA5 0x64C2 +0x9DA6 0x64F1 +0x9DA7 0x64E7 +0x9DA8 0x8209 +0x9DA9 0x64E0 +0x9DAA 0x64E1 +0x9DAB 0x62AC +0x9DAC 0x64E3 +0x9DAD 0x64EF +0x9DAE 0x652C +0x9DAF 0x64F6 +0x9DB0 0x64F4 +0x9DB1 0x64F2 +0x9DB2 0x64FA +0x9DB3 0x6500 +0x9DB4 0x64FD +0x9DB5 0x6518 +0x9DB6 0x651C +0x9DB7 0x6505 +0x9DB8 0x6524 +0x9DB9 0x6523 +0x9DBA 0x652B +0x9DBB 0x6534 +0x9DBC 0x6535 +0x9DBD 0x6537 +0x9DBE 0x6536 +0x9DBF 0x6538 +0x9DC0 0x754B +0x9DC1 0x6548 +0x9DC2 0x6556 +0x9DC3 0x6555 +0x9DC4 0x654D +0x9DC5 0x6558 +0x9DC6 0x655E +0x9DC7 0x655D +0x9DC8 0x6572 +0x9DC9 0x6578 +0x9DCA 0x6582 +0x9DCB 0x6583 +0x9DCC 0x8B8A +0x9DCD 0x659B +0x9DCE 0x659F +0x9DCF 0x65AB +0x9DD0 0x65B7 +0x9DD1 0x65C3 +0x9DD2 0x65C6 +0x9DD3 0x65C1 +0x9DD4 0x65C4 +0x9DD5 0x65CC +0x9DD6 0x65D2 +0x9DD7 0x65DB +0x9DD8 0x65D9 +0x9DD9 0x65E0 +0x9DDA 0x65E1 +0x9DDB 0x65F1 +0x9DDC 0x6772 +0x9DDD 0x660A +0x9DDE 0x6603 +0x9DDF 0x65FB +0x9DE0 0x6773 +0x9DE1 0x6635 +0x9DE2 0x6636 +0x9DE3 0x6634 +0x9DE4 0x661C +0x9DE5 0x664F +0x9DE6 0x6644 +0x9DE7 0x6649 +0x9DE8 0x6641 +0x9DE9 0x665E +0x9DEA 0x665D +0x9DEB 0x6664 +0x9DEC 0x6667 +0x9DED 0x6668 +0x9DEE 0x665F +0x9DEF 0x6662 +0x9DF0 0x6670 +0x9DF1 0x6683 +0x9DF2 0x6688 +0x9DF3 0x668E +0x9DF4 0x6689 +0x9DF5 0x6684 +0x9DF6 0x6698 +0x9DF7 0x669D +0x9DF8 0x66C1 +0x9DF9 0x66B9 +0x9DFA 0x66C9 +0x9DFB 0x66BE +0x9DFC 0x66BC +0x9E40 0x66C4 +0x9E41 0x66B8 +0x9E42 0x66D6 +0x9E43 0x66DA +0x9E44 0x66E0 +0x9E45 0x663F +0x9E46 0x66E6 +0x9E47 0x66E9 +0x9E48 0x66F0 +0x9E49 0x66F5 +0x9E4A 0x66F7 +0x9E4B 0x670F +0x9E4C 0x6716 +0x9E4D 0x671E +0x9E4E 0x6726 +0x9E4F 0x6727 +0x9E50 0x9738 +0x9E51 0x672E +0x9E52 0x673F +0x9E53 0x6736 +0x9E54 0x6741 +0x9E55 0x6738 +0x9E56 0x6737 +0x9E57 0x6746 +0x9E58 0x675E +0x9E59 0x6760 +0x9E5A 0x6759 +0x9E5B 0x6763 +0x9E5C 0x6764 +0x9E5D 0x6789 +0x9E5E 0x6770 +0x9E5F 0x67A9 +0x9E60 0x677C +0x9E61 0x676A +0x9E62 0x678C +0x9E63 0x678B +0x9E64 0x67A6 +0x9E65 0x67A1 +0x9E66 0x6785 +0x9E67 0x67B7 +0x9E68 0x67EF +0x9E69 0x67B4 +0x9E6A 0x67EC +0x9E6B 0x67B3 +0x9E6C 0x67E9 +0x9E6D 0x67B8 +0x9E6E 0x67E4 +0x9E6F 0x67DE +0x9E70 0x67DD +0x9E71 0x67E2 +0x9E72 0x67EE +0x9E73 0x67B9 +0x9E74 0x67CE +0x9E75 0x67C6 +0x9E76 0x67E7 +0x9E77 0x6A9C +0x9E78 0x681E +0x9E79 0x6846 +0x9E7A 0x6829 +0x9E7B 0x6840 +0x9E7C 0x684D +0x9E7D 0x6832 +0x9E7E 0x684E +0x9E80 0x68B3 +0x9E81 0x682B +0x9E82 0x6859 +0x9E83 0x6863 +0x9E84 0x6877 +0x9E85 0x687F +0x9E86 0x689F +0x9E87 0x688F +0x9E88 0x68AD +0x9E89 0x6894 +0x9E8A 0x689D +0x9E8B 0x689B +0x9E8C 0x6883 +0x9E8D 0x6AAE +0x9E8E 0x68B9 +0x9E8F 0x6874 +0x9E90 0x68B5 +0x9E91 0x68A0 +0x9E92 0x68BA +0x9E93 0x690F +0x9E94 0x688D +0x9E95 0x687E +0x9E96 0x6901 +0x9E97 0x68CA +0x9E98 0x6908 +0x9E99 0x68D8 +0x9E9A 0x6922 +0x9E9B 0x6926 +0x9E9C 0x68E1 +0x9E9D 0x690C +0x9E9E 0x68CD +0x9E9F 0x68D4 +0x9EA0 0x68E7 +0x9EA1 0x68D5 +0x9EA2 0x6936 +0x9EA3 0x6912 +0x9EA4 0x6904 +0x9EA5 0x68D7 +0x9EA6 0x68E3 +0x9EA7 0x6925 +0x9EA8 0x68F9 +0x9EA9 0x68E0 +0x9EAA 0x68EF +0x9EAB 0x6928 +0x9EAC 0x692A +0x9EAD 0x691A +0x9EAE 0x6923 +0x9EAF 0x6921 +0x9EB0 0x68C6 +0x9EB1 0x6979 +0x9EB2 0x6977 +0x9EB3 0x695C +0x9EB4 0x6978 +0x9EB5 0x696B +0x9EB6 0x6954 +0x9EB7 0x697E +0x9EB8 0x696E +0x9EB9 0x6939 +0x9EBA 0x6974 +0x9EBB 0x693D +0x9EBC 0x6959 +0x9EBD 0x6930 +0x9EBE 0x6961 +0x9EBF 0x695E +0x9EC0 0x695D +0x9EC1 0x6981 +0x9EC2 0x696A +0x9EC3 0x69B2 +0x9EC4 0x69AE +0x9EC5 0x69D0 +0x9EC6 0x69BF +0x9EC7 0x69C1 +0x9EC8 0x69D3 +0x9EC9 0x69BE +0x9ECA 0x69CE +0x9ECB 0x5BE8 +0x9ECC 0x69CA +0x9ECD 0x69DD +0x9ECE 0x69BB +0x9ECF 0x69C3 +0x9ED0 0x69A7 +0x9ED1 0x6A2E +0x9ED2 0x6991 +0x9ED3 0x69A0 +0x9ED4 0x699C +0x9ED5 0x6995 +0x9ED6 0x69B4 +0x9ED7 0x69DE +0x9ED8 0x69E8 +0x9ED9 0x6A02 +0x9EDA 0x6A1B +0x9EDB 0x69FF +0x9EDC 0x6B0A +0x9EDD 0x69F9 +0x9EDE 0x69F2 +0x9EDF 0x69E7 +0x9EE0 0x6A05 +0x9EE1 0x69B1 +0x9EE2 0x6A1E +0x9EE3 0x69ED +0x9EE4 0x6A14 +0x9EE5 0x69EB +0x9EE6 0x6A0A +0x9EE7 0x6A12 +0x9EE8 0x6AC1 +0x9EE9 0x6A23 +0x9EEA 0x6A13 +0x9EEB 0x6A44 +0x9EEC 0x6A0C +0x9EED 0x6A72 +0x9EEE 0x6A36 +0x9EEF 0x6A78 +0x9EF0 0x6A47 +0x9EF1 0x6A62 +0x9EF2 0x6A59 +0x9EF3 0x6A66 +0x9EF4 0x6A48 +0x9EF5 0x6A38 +0x9EF6 0x6A22 +0x9EF7 0x6A90 +0x9EF8 0x6A8D +0x9EF9 0x6AA0 +0x9EFA 0x6A84 +0x9EFB 0x6AA2 +0x9EFC 0x6AA3 +0x9F40 0x6A97 +0x9F41 0x8617 +0x9F42 0x6ABB +0x9F43 0x6AC3 +0x9F44 0x6AC2 +0x9F45 0x6AB8 +0x9F46 0x6AB3 +0x9F47 0x6AAC +0x9F48 0x6ADE +0x9F49 0x6AD1 +0x9F4A 0x6ADF +0x9F4B 0x6AAA +0x9F4C 0x6ADA +0x9F4D 0x6AEA +0x9F4E 0x6AFB +0x9F4F 0x6B05 +0x9F50 0x8616 +0x9F51 0x6AFA +0x9F52 0x6B12 +0x9F53 0x6B16 +0x9F54 0x9B31 +0x9F55 0x6B1F +0x9F56 0x6B38 +0x9F57 0x6B37 +0x9F58 0x76DC +0x9F59 0x6B39 +0x9F5A 0x98EE +0x9F5B 0x6B47 +0x9F5C 0x6B43 +0x9F5D 0x6B49 +0x9F5E 0x6B50 +0x9F5F 0x6B59 +0x9F60 0x6B54 +0x9F61 0x6B5B +0x9F62 0x6B5F +0x9F63 0x6B61 +0x9F64 0x6B78 +0x9F65 0x6B79 +0x9F66 0x6B7F +0x9F67 0x6B80 +0x9F68 0x6B84 +0x9F69 0x6B83 +0x9F6A 0x6B8D +0x9F6B 0x6B98 +0x9F6C 0x6B95 +0x9F6D 0x6B9E +0x9F6E 0x6BA4 +0x9F6F 0x6BAA +0x9F70 0x6BAB +0x9F71 0x6BAF +0x9F72 0x6BB2 +0x9F73 0x6BB1 +0x9F74 0x6BB3 +0x9F75 0x6BB7 +0x9F76 0x6BBC +0x9F77 0x6BC6 +0x9F78 0x6BCB +0x9F79 0x6BD3 +0x9F7A 0x6BDF +0x9F7B 0x6BEC +0x9F7C 0x6BEB +0x9F7D 0x6BF3 +0x9F7E 0x6BEF +0x9F80 0x9EBE +0x9F81 0x6C08 +0x9F82 0x6C13 +0x9F83 0x6C14 +0x9F84 0x6C1B +0x9F85 0x6C24 +0x9F86 0x6C23 +0x9F87 0x6C5E +0x9F88 0x6C55 +0x9F89 0x6C62 +0x9F8A 0x6C6A +0x9F8B 0x6C82 +0x9F8C 0x6C8D +0x9F8D 0x6C9A +0x9F8E 0x6C81 +0x9F8F 0x6C9B +0x9F90 0x6C7E +0x9F91 0x6C68 +0x9F92 0x6C73 +0x9F93 0x6C92 +0x9F94 0x6C90 +0x9F95 0x6CC4 +0x9F96 0x6CF1 +0x9F97 0x6CD3 +0x9F98 0x6CBD +0x9F99 0x6CD7 +0x9F9A 0x6CC5 +0x9F9B 0x6CDD +0x9F9C 0x6CAE +0x9F9D 0x6CB1 +0x9F9E 0x6CBE +0x9F9F 0x6CBA +0x9FA0 0x6CDB +0x9FA1 0x6CEF +0x9FA2 0x6CD9 +0x9FA3 0x6CEA +0x9FA4 0x6D1F +0x9FA5 0x884D +0x9FA6 0x6D36 +0x9FA7 0x6D2B +0x9FA8 0x6D3D +0x9FA9 0x6D38 +0x9FAA 0x6D19 +0x9FAB 0x6D35 +0x9FAC 0x6D33 +0x9FAD 0x6D12 +0x9FAE 0x6D0C +0x9FAF 0x6D63 +0x9FB0 0x6D93 +0x9FB1 0x6D64 +0x9FB2 0x6D5A +0x9FB3 0x6D79 +0x9FB4 0x6D59 +0x9FB5 0x6D8E +0x9FB6 0x6D95 +0x9FB7 0x6FE4 +0x9FB8 0x6D85 +0x9FB9 0x6DF9 +0x9FBA 0x6E15 +0x9FBB 0x6E0A +0x9FBC 0x6DB5 +0x9FBD 0x6DC7 +0x9FBE 0x6DE6 +0x9FBF 0x6DB8 +0x9FC0 0x6DC6 +0x9FC1 0x6DEC +0x9FC2 0x6DDE +0x9FC3 0x6DCC +0x9FC4 0x6DE8 +0x9FC5 0x6DD2 +0x9FC6 0x6DC5 +0x9FC7 0x6DFA +0x9FC8 0x6DD9 +0x9FC9 0x6DE4 +0x9FCA 0x6DD5 +0x9FCB 0x6DEA +0x9FCC 0x6DEE +0x9FCD 0x6E2D +0x9FCE 0x6E6E +0x9FCF 0x6E2E +0x9FD0 0x6E19 +0x9FD1 0x6E72 +0x9FD2 0x6E5F +0x9FD3 0x6E3E +0x9FD4 0x6E23 +0x9FD5 0x6E6B +0x9FD6 0x6E2B +0x9FD7 0x6E76 +0x9FD8 0x6E4D +0x9FD9 0x6E1F +0x9FDA 0x6E43 +0x9FDB 0x6E3A +0x9FDC 0x6E4E +0x9FDD 0x6E24 +0x9FDE 0x6EFF +0x9FDF 0x6E1D +0x9FE0 0x6E38 +0x9FE1 0x6E82 +0x9FE2 0x6EAA +0x9FE3 0x6E98 +0x9FE4 0x6EC9 +0x9FE5 0x6EB7 +0x9FE6 0x6ED3 +0x9FE7 0x6EBD +0x9FE8 0x6EAF +0x9FE9 0x6EC4 +0x9FEA 0x6EB2 +0x9FEB 0x6ED4 +0x9FEC 0x6ED5 +0x9FED 0x6E8F +0x9FEE 0x6EA5 +0x9FEF 0x6EC2 +0x9FF0 0x6E9F +0x9FF1 0x6F41 +0x9FF2 0x6F11 +0x9FF3 0x704C +0x9FF4 0x6EEC +0x9FF5 0x6EF8 +0x9FF6 0x6EFE +0x9FF7 0x6F3F +0x9FF8 0x6EF2 +0x9FF9 0x6F31 +0x9FFA 0x6EEF +0x9FFB 0x6F32 +0x9FFC 0x6ECC +0xA1 0xFF61 +0xA2 0xFF62 +0xA3 0xFF63 +0xA4 0xFF64 +0xA5 0xFF65 +0xA6 0xFF66 +0xA7 0xFF67 +0xA8 0xFF68 +0xA9 0xFF69 +0xAA 0xFF6A +0xAB 0xFF6B +0xAC 0xFF6C +0xAD 0xFF6D +0xAE 0xFF6E +0xAF 0xFF6F +0xB0 0xFF70 +0xB1 0xFF71 +0xB2 0xFF72 +0xB3 0xFF73 +0xB4 0xFF74 +0xB5 0xFF75 +0xB6 0xFF76 +0xB7 0xFF77 +0xB8 0xFF78 +0xB9 0xFF79 +0xBA 0xFF7A +0xBB 0xFF7B +0xBC 0xFF7C +0xBD 0xFF7D +0xBE 0xFF7E +0xBF 0xFF7F +0xC0 0xFF80 +0xC1 0xFF81 +0xC2 0xFF82 +0xC3 0xFF83 +0xC4 0xFF84 +0xC5 0xFF85 +0xC6 0xFF86 +0xC7 0xFF87 +0xC8 0xFF88 +0xC9 0xFF89 +0xCA 0xFF8A +0xCB 0xFF8B +0xCC 0xFF8C +0xCD 0xFF8D +0xCE 0xFF8E +0xCF 0xFF8F +0xD0 0xFF90 +0xD1 0xFF91 +0xD2 0xFF92 +0xD3 0xFF93 +0xD4 0xFF94 +0xD5 0xFF95 +0xD6 0xFF96 +0xD7 0xFF97 +0xD8 0xFF98 +0xD9 0xFF99 +0xDA 0xFF9A +0xDB 0xFF9B +0xDC 0xFF9C +0xDD 0xFF9D +0xDE 0xFF9E +0xDF 0xFF9F +0xE040 0x6F3E +0xE041 0x6F13 +0xE042 0x6EF7 +0xE043 0x6F86 +0xE044 0x6F7A +0xE045 0x6F78 +0xE046 0x6F81 +0xE047 0x6F80 +0xE048 0x6F6F +0xE049 0x6F5B +0xE04A 0x6FF3 +0xE04B 0x6F6D +0xE04C 0x6F82 +0xE04D 0x6F7C +0xE04E 0x6F58 +0xE04F 0x6F8E +0xE050 0x6F91 +0xE051 0x6FC2 +0xE052 0x6F66 +0xE053 0x6FB3 +0xE054 0x6FA3 +0xE055 0x6FA1 +0xE056 0x6FA4 +0xE057 0x6FB9 +0xE058 0x6FC6 +0xE059 0x6FAA +0xE05A 0x6FDF +0xE05B 0x6FD5 +0xE05C 0x6FEC +0xE05D 0x6FD4 +0xE05E 0x6FD8 +0xE05F 0x6FF1 +0xE060 0x6FEE +0xE061 0x6FDB +0xE062 0x7009 +0xE063 0x700B +0xE064 0x6FFA +0xE065 0x7011 +0xE066 0x7001 +0xE067 0x700F +0xE068 0x6FFE +0xE069 0x701B +0xE06A 0x701A +0xE06B 0x6F74 +0xE06C 0x701D +0xE06D 0x7018 +0xE06E 0x701F +0xE06F 0x7030 +0xE070 0x703E +0xE071 0x7032 +0xE072 0x7051 +0xE073 0x7063 +0xE074 0x7099 +0xE075 0x7092 +0xE076 0x70AF +0xE077 0x70F1 +0xE078 0x70AC +0xE079 0x70B8 +0xE07A 0x70B3 +0xE07B 0x70AE +0xE07C 0x70DF +0xE07D 0x70CB +0xE07E 0x70DD +0xE080 0x70D9 +0xE081 0x7109 +0xE082 0x70FD +0xE083 0x711C +0xE084 0x7119 +0xE085 0x7165 +0xE086 0x7155 +0xE087 0x7188 +0xE088 0x7166 +0xE089 0x7162 +0xE08A 0x714C +0xE08B 0x7156 +0xE08C 0x716C +0xE08D 0x718F +0xE08E 0x71FB +0xE08F 0x7184 +0xE090 0x7195 +0xE091 0x71A8 +0xE092 0x71AC +0xE093 0x71D7 +0xE094 0x71B9 +0xE095 0x71BE +0xE096 0x71D2 +0xE097 0x71C9 +0xE098 0x71D4 +0xE099 0x71CE +0xE09A 0x71E0 +0xE09B 0x71EC +0xE09C 0x71E7 +0xE09D 0x71F5 +0xE09E 0x71FC +0xE09F 0x71F9 +0xE0A0 0x71FF +0xE0A1 0x720D +0xE0A2 0x7210 +0xE0A3 0x721B +0xE0A4 0x7228 +0xE0A5 0x722D +0xE0A6 0x722C +0xE0A7 0x7230 +0xE0A8 0x7232 +0xE0A9 0x723B +0xE0AA 0x723C +0xE0AB 0x723F +0xE0AC 0x7240 +0xE0AD 0x7246 +0xE0AE 0x724B +0xE0AF 0x7258 +0xE0B0 0x7274 +0xE0B1 0x727E +0xE0B2 0x7282 +0xE0B3 0x7281 +0xE0B4 0x7287 +0xE0B5 0x7292 +0xE0B6 0x7296 +0xE0B7 0x72A2 +0xE0B8 0x72A7 +0xE0B9 0x72B9 +0xE0BA 0x72B2 +0xE0BB 0x72C3 +0xE0BC 0x72C6 +0xE0BD 0x72C4 +0xE0BE 0x72CE +0xE0BF 0x72D2 +0xE0C0 0x72E2 +0xE0C1 0x72E0 +0xE0C2 0x72E1 +0xE0C3 0x72F9 +0xE0C4 0x72F7 +0xE0C5 0x500F +0xE0C6 0x7317 +0xE0C7 0x730A +0xE0C8 0x731C +0xE0C9 0x7316 +0xE0CA 0x731D +0xE0CB 0x7334 +0xE0CC 0x732F +0xE0CD 0x7329 +0xE0CE 0x7325 +0xE0CF 0x733E +0xE0D0 0x734E +0xE0D1 0x734F +0xE0D2 0x9ED8 +0xE0D3 0x7357 +0xE0D4 0x736A +0xE0D5 0x7368 +0xE0D6 0x7370 +0xE0D7 0x7378 +0xE0D8 0x7375 +0xE0D9 0x737B +0xE0DA 0x737A +0xE0DB 0x73C8 +0xE0DC 0x73B3 +0xE0DD 0x73CE +0xE0DE 0x73BB +0xE0DF 0x73C0 +0xE0E0 0x73E5 +0xE0E1 0x73EE +0xE0E2 0x73DE +0xE0E3 0x74A2 +0xE0E4 0x7405 +0xE0E5 0x746F +0xE0E6 0x7425 +0xE0E7 0x73F8 +0xE0E8 0x7432 +0xE0E9 0x743A +0xE0EA 0x7455 +0xE0EB 0x743F +0xE0EC 0x745F +0xE0ED 0x7459 +0xE0EE 0x7441 +0xE0EF 0x745C +0xE0F0 0x7469 +0xE0F1 0x7470 +0xE0F2 0x7463 +0xE0F3 0x746A +0xE0F4 0x7476 +0xE0F5 0x747E +0xE0F6 0x748B +0xE0F7 0x749E +0xE0F8 0x74A7 +0xE0F9 0x74CA +0xE0FA 0x74CF +0xE0FB 0x74D4 +0xE0FC 0x73F1 +0xE140 0x74E0 +0xE141 0x74E3 +0xE142 0x74E7 +0xE143 0x74E9 +0xE144 0x74EE +0xE145 0x74F2 +0xE146 0x74F0 +0xE147 0x74F1 +0xE148 0x74F8 +0xE149 0x74F7 +0xE14A 0x7504 +0xE14B 0x7503 +0xE14C 0x7505 +0xE14D 0x750C +0xE14E 0x750E +0xE14F 0x750D +0xE150 0x7515 +0xE151 0x7513 +0xE152 0x751E +0xE153 0x7526 +0xE154 0x752C +0xE155 0x753C +0xE156 0x7544 +0xE157 0x754D +0xE158 0x754A +0xE159 0x7549 +0xE15A 0x755B +0xE15B 0x7546 +0xE15C 0x755A +0xE15D 0x7569 +0xE15E 0x7564 +0xE15F 0x7567 +0xE160 0x756B +0xE161 0x756D +0xE162 0x7578 +0xE163 0x7576 +0xE164 0x7586 +0xE165 0x7587 +0xE166 0x7574 +0xE167 0x758A +0xE168 0x7589 +0xE169 0x7582 +0xE16A 0x7594 +0xE16B 0x759A +0xE16C 0x759D +0xE16D 0x75A5 +0xE16E 0x75A3 +0xE16F 0x75C2 +0xE170 0x75B3 +0xE171 0x75C3 +0xE172 0x75B5 +0xE173 0x75BD +0xE174 0x75B8 +0xE175 0x75BC +0xE176 0x75B1 +0xE177 0x75CD +0xE178 0x75CA +0xE179 0x75D2 +0xE17A 0x75D9 +0xE17B 0x75E3 +0xE17C 0x75DE +0xE17D 0x75FE +0xE17E 0x75FF +0xE180 0x75FC +0xE181 0x7601 +0xE182 0x75F0 +0xE183 0x75FA +0xE184 0x75F2 +0xE185 0x75F3 +0xE186 0x760B +0xE187 0x760D +0xE188 0x7609 +0xE189 0x761F +0xE18A 0x7627 +0xE18B 0x7620 +0xE18C 0x7621 +0xE18D 0x7622 +0xE18E 0x7624 +0xE18F 0x7634 +0xE190 0x7630 +0xE191 0x763B +0xE192 0x7647 +0xE193 0x7648 +0xE194 0x7646 +0xE195 0x765C +0xE196 0x7658 +0xE197 0x7661 +0xE198 0x7662 +0xE199 0x7668 +0xE19A 0x7669 +0xE19B 0x766A +0xE19C 0x7667 +0xE19D 0x766C +0xE19E 0x7670 +0xE19F 0x7672 +0xE1A0 0x7676 +0xE1A1 0x7678 +0xE1A2 0x767C +0xE1A3 0x7680 +0xE1A4 0x7683 +0xE1A5 0x7688 +0xE1A6 0x768B +0xE1A7 0x768E +0xE1A8 0x7696 +0xE1A9 0x7693 +0xE1AA 0x7699 +0xE1AB 0x769A +0xE1AC 0x76B0 +0xE1AD 0x76B4 +0xE1AE 0x76B8 +0xE1AF 0x76B9 +0xE1B0 0x76BA +0xE1B1 0x76C2 +0xE1B2 0x76CD +0xE1B3 0x76D6 +0xE1B4 0x76D2 +0xE1B5 0x76DE +0xE1B6 0x76E1 +0xE1B7 0x76E5 +0xE1B8 0x76E7 +0xE1B9 0x76EA +0xE1BA 0x862F +0xE1BB 0x76FB +0xE1BC 0x7708 +0xE1BD 0x7707 +0xE1BE 0x7704 +0xE1BF 0x7729 +0xE1C0 0x7724 +0xE1C1 0x771E +0xE1C2 0x7725 +0xE1C3 0x7726 +0xE1C4 0x771B +0xE1C5 0x7737 +0xE1C6 0x7738 +0xE1C7 0x7747 +0xE1C8 0x775A +0xE1C9 0x7768 +0xE1CA 0x776B +0xE1CB 0x775B +0xE1CC 0x7765 +0xE1CD 0x777F +0xE1CE 0x777E +0xE1CF 0x7779 +0xE1D0 0x778E +0xE1D1 0x778B +0xE1D2 0x7791 +0xE1D3 0x77A0 +0xE1D4 0x779E +0xE1D5 0x77B0 +0xE1D6 0x77B6 +0xE1D7 0x77B9 +0xE1D8 0x77BF +0xE1D9 0x77BC +0xE1DA 0x77BD +0xE1DB 0x77BB +0xE1DC 0x77C7 +0xE1DD 0x77CD +0xE1DE 0x77D7 +0xE1DF 0x77DA +0xE1E0 0x77DC +0xE1E1 0x77E3 +0xE1E2 0x77EE +0xE1E3 0x77FC +0xE1E4 0x780C +0xE1E5 0x7812 +0xE1E6 0x7926 +0xE1E7 0x7820 +0xE1E8 0x792A +0xE1E9 0x7845 +0xE1EA 0x788E +0xE1EB 0x7874 +0xE1EC 0x7886 +0xE1ED 0x787C +0xE1EE 0x789A +0xE1EF 0x788C +0xE1F0 0x78A3 +0xE1F1 0x78B5 +0xE1F2 0x78AA +0xE1F3 0x78AF +0xE1F4 0x78D1 +0xE1F5 0x78C6 +0xE1F6 0x78CB +0xE1F7 0x78D4 +0xE1F8 0x78BE +0xE1F9 0x78BC +0xE1FA 0x78C5 +0xE1FB 0x78CA +0xE1FC 0x78EC +0xE240 0x78E7 +0xE241 0x78DA +0xE242 0x78FD +0xE243 0x78F4 +0xE244 0x7907 +0xE245 0x7912 +0xE246 0x7911 +0xE247 0x7919 +0xE248 0x792C +0xE249 0x792B +0xE24A 0x7940 +0xE24B 0x7960 +0xE24C 0x7957 +0xE24D 0x795F +0xE24E 0x795A +0xE24F 0x7955 +0xE250 0x7953 +0xE251 0x797A +0xE252 0x797F +0xE253 0x798A +0xE254 0x799D +0xE255 0x79A7 +0xE256 0x9F4B +0xE257 0x79AA +0xE258 0x79AE +0xE259 0x79B3 +0xE25A 0x79B9 +0xE25B 0x79BA +0xE25C 0x79C9 +0xE25D 0x79D5 +0xE25E 0x79E7 +0xE25F 0x79EC +0xE260 0x79E1 +0xE261 0x79E3 +0xE262 0x7A08 +0xE263 0x7A0D +0xE264 0x7A18 +0xE265 0x7A19 +0xE266 0x7A20 +0xE267 0x7A1F +0xE268 0x7980 +0xE269 0x7A31 +0xE26A 0x7A3B +0xE26B 0x7A3E +0xE26C 0x7A37 +0xE26D 0x7A43 +0xE26E 0x7A57 +0xE26F 0x7A49 +0xE270 0x7A61 +0xE271 0x7A62 +0xE272 0x7A69 +0xE273 0x9F9D +0xE274 0x7A70 +0xE275 0x7A79 +0xE276 0x7A7D +0xE277 0x7A88 +0xE278 0x7A97 +0xE279 0x7A95 +0xE27A 0x7A98 +0xE27B 0x7A96 +0xE27C 0x7AA9 +0xE27D 0x7AC8 +0xE27E 0x7AB0 +0xE280 0x7AB6 +0xE281 0x7AC5 +0xE282 0x7AC4 +0xE283 0x7ABF +0xE284 0x9083 +0xE285 0x7AC7 +0xE286 0x7ACA +0xE287 0x7ACD +0xE288 0x7ACF +0xE289 0x7AD5 +0xE28A 0x7AD3 +0xE28B 0x7AD9 +0xE28C 0x7ADA +0xE28D 0x7ADD +0xE28E 0x7AE1 +0xE28F 0x7AE2 +0xE290 0x7AE6 +0xE291 0x7AED +0xE292 0x7AF0 +0xE293 0x7B02 +0xE294 0x7B0F +0xE295 0x7B0A +0xE296 0x7B06 +0xE297 0x7B33 +0xE298 0x7B18 +0xE299 0x7B19 +0xE29A 0x7B1E +0xE29B 0x7B35 +0xE29C 0x7B28 +0xE29D 0x7B36 +0xE29E 0x7B50 +0xE29F 0x7B7A +0xE2A0 0x7B04 +0xE2A1 0x7B4D +0xE2A2 0x7B0B +0xE2A3 0x7B4C +0xE2A4 0x7B45 +0xE2A5 0x7B75 +0xE2A6 0x7B65 +0xE2A7 0x7B74 +0xE2A8 0x7B67 +0xE2A9 0x7B70 +0xE2AA 0x7B71 +0xE2AB 0x7B6C +0xE2AC 0x7B6E +0xE2AD 0x7B9D +0xE2AE 0x7B98 +0xE2AF 0x7B9F +0xE2B0 0x7B8D +0xE2B1 0x7B9C +0xE2B2 0x7B9A +0xE2B3 0x7B8B +0xE2B4 0x7B92 +0xE2B5 0x7B8F +0xE2B6 0x7B5D +0xE2B7 0x7B99 +0xE2B8 0x7BCB +0xE2B9 0x7BC1 +0xE2BA 0x7BCC +0xE2BB 0x7BCF +0xE2BC 0x7BB4 +0xE2BD 0x7BC6 +0xE2BE 0x7BDD +0xE2BF 0x7BE9 +0xE2C0 0x7C11 +0xE2C1 0x7C14 +0xE2C2 0x7BE6 +0xE2C3 0x7BE5 +0xE2C4 0x7C60 +0xE2C5 0x7C00 +0xE2C6 0x7C07 +0xE2C7 0x7C13 +0xE2C8 0x7BF3 +0xE2C9 0x7BF7 +0xE2CA 0x7C17 +0xE2CB 0x7C0D +0xE2CC 0x7BF6 +0xE2CD 0x7C23 +0xE2CE 0x7C27 +0xE2CF 0x7C2A +0xE2D0 0x7C1F +0xE2D1 0x7C37 +0xE2D2 0x7C2B +0xE2D3 0x7C3D +0xE2D4 0x7C4C +0xE2D5 0x7C43 +0xE2D6 0x7C54 +0xE2D7 0x7C4F +0xE2D8 0x7C40 +0xE2D9 0x7C50 +0xE2DA 0x7C58 +0xE2DB 0x7C5F +0xE2DC 0x7C64 +0xE2DD 0x7C56 +0xE2DE 0x7C65 +0xE2DF 0x7C6C +0xE2E0 0x7C75 +0xE2E1 0x7C83 +0xE2E2 0x7C90 +0xE2E3 0x7CA4 +0xE2E4 0x7CAD +0xE2E5 0x7CA2 +0xE2E6 0x7CAB +0xE2E7 0x7CA1 +0xE2E8 0x7CA8 +0xE2E9 0x7CB3 +0xE2EA 0x7CB2 +0xE2EB 0x7CB1 +0xE2EC 0x7CAE +0xE2ED 0x7CB9 +0xE2EE 0x7CBD +0xE2EF 0x7CC0 +0xE2F0 0x7CC5 +0xE2F1 0x7CC2 +0xE2F2 0x7CD8 +0xE2F3 0x7CD2 +0xE2F4 0x7CDC +0xE2F5 0x7CE2 +0xE2F6 0x9B3B +0xE2F7 0x7CEF +0xE2F8 0x7CF2 +0xE2F9 0x7CF4 +0xE2FA 0x7CF6 +0xE2FB 0x7CFA +0xE2FC 0x7D06 +0xE340 0x7D02 +0xE341 0x7D1C +0xE342 0x7D15 +0xE343 0x7D0A +0xE344 0x7D45 +0xE345 0x7D4B +0xE346 0x7D2E +0xE347 0x7D32 +0xE348 0x7D3F +0xE349 0x7D35 +0xE34A 0x7D46 +0xE34B 0x7D73 +0xE34C 0x7D56 +0xE34D 0x7D4E +0xE34E 0x7D72 +0xE34F 0x7D68 +0xE350 0x7D6E +0xE351 0x7D4F +0xE352 0x7D63 +0xE353 0x7D93 +0xE354 0x7D89 +0xE355 0x7D5B +0xE356 0x7D8F +0xE357 0x7D7D +0xE358 0x7D9B +0xE359 0x7DBA +0xE35A 0x7DAE +0xE35B 0x7DA3 +0xE35C 0x7DB5 +0xE35D 0x7DC7 +0xE35E 0x7DBD +0xE35F 0x7DAB +0xE360 0x7E3D +0xE361 0x7DA2 +0xE362 0x7DAF +0xE363 0x7DDC +0xE364 0x7DB8 +0xE365 0x7D9F +0xE366 0x7DB0 +0xE367 0x7DD8 +0xE368 0x7DDD +0xE369 0x7DE4 +0xE36A 0x7DDE +0xE36B 0x7DFB +0xE36C 0x7DF2 +0xE36D 0x7DE1 +0xE36E 0x7E05 +0xE36F 0x7E0A +0xE370 0x7E23 +0xE371 0x7E21 +0xE372 0x7E12 +0xE373 0x7E31 +0xE374 0x7E1F +0xE375 0x7E09 +0xE376 0x7E0B +0xE377 0x7E22 +0xE378 0x7E46 +0xE379 0x7E66 +0xE37A 0x7E3B +0xE37B 0x7E35 +0xE37C 0x7E39 +0xE37D 0x7E43 +0xE37E 0x7E37 +0xE380 0x7E32 +0xE381 0x7E3A +0xE382 0x7E67 +0xE383 0x7E5D +0xE384 0x7E56 +0xE385 0x7E5E +0xE386 0x7E59 +0xE387 0x7E5A +0xE388 0x7E79 +0xE389 0x7E6A +0xE38A 0x7E69 +0xE38B 0x7E7C +0xE38C 0x7E7B +0xE38D 0x7E83 +0xE38E 0x7DD5 +0xE38F 0x7E7D +0xE390 0x8FAE +0xE391 0x7E7F +0xE392 0x7E88 +0xE393 0x7E89 +0xE394 0x7E8C +0xE395 0x7E92 +0xE396 0x7E90 +0xE397 0x7E93 +0xE398 0x7E94 +0xE399 0x7E96 +0xE39A 0x7E8E +0xE39B 0x7E9B +0xE39C 0x7E9C +0xE39D 0x7F38 +0xE39E 0x7F3A +0xE39F 0x7F45 +0xE3A0 0x7F4C +0xE3A1 0x7F4D +0xE3A2 0x7F4E +0xE3A3 0x7F50 +0xE3A4 0x7F51 +0xE3A5 0x7F55 +0xE3A6 0x7F54 +0xE3A7 0x7F58 +0xE3A8 0x7F5F +0xE3A9 0x7F60 +0xE3AA 0x7F68 +0xE3AB 0x7F69 +0xE3AC 0x7F67 +0xE3AD 0x7F78 +0xE3AE 0x7F82 +0xE3AF 0x7F86 +0xE3B0 0x7F83 +0xE3B1 0x7F88 +0xE3B2 0x7F87 +0xE3B3 0x7F8C +0xE3B4 0x7F94 +0xE3B5 0x7F9E +0xE3B6 0x7F9D +0xE3B7 0x7F9A +0xE3B8 0x7FA3 +0xE3B9 0x7FAF +0xE3BA 0x7FB2 +0xE3BB 0x7FB9 +0xE3BC 0x7FAE +0xE3BD 0x7FB6 +0xE3BE 0x7FB8 +0xE3BF 0x8B71 +0xE3C0 0x7FC5 +0xE3C1 0x7FC6 +0xE3C2 0x7FCA +0xE3C3 0x7FD5 +0xE3C4 0x7FD4 +0xE3C5 0x7FE1 +0xE3C6 0x7FE6 +0xE3C7 0x7FE9 +0xE3C8 0x7FF3 +0xE3C9 0x7FF9 +0xE3CA 0x98DC +0xE3CB 0x8006 +0xE3CC 0x8004 +0xE3CD 0x800B +0xE3CE 0x8012 +0xE3CF 0x8018 +0xE3D0 0x8019 +0xE3D1 0x801C +0xE3D2 0x8021 +0xE3D3 0x8028 +0xE3D4 0x803F +0xE3D5 0x803B +0xE3D6 0x804A +0xE3D7 0x8046 +0xE3D8 0x8052 +0xE3D9 0x8058 +0xE3DA 0x805A +0xE3DB 0x805F +0xE3DC 0x8062 +0xE3DD 0x8068 +0xE3DE 0x8073 +0xE3DF 0x8072 +0xE3E0 0x8070 +0xE3E1 0x8076 +0xE3E2 0x8079 +0xE3E3 0x807D +0xE3E4 0x807F +0xE3E5 0x8084 +0xE3E6 0x8086 +0xE3E7 0x8085 +0xE3E8 0x809B +0xE3E9 0x8093 +0xE3EA 0x809A +0xE3EB 0x80AD +0xE3EC 0x5190 +0xE3ED 0x80AC +0xE3EE 0x80DB +0xE3EF 0x80E5 +0xE3F0 0x80D9 +0xE3F1 0x80DD +0xE3F2 0x80C4 +0xE3F3 0x80DA +0xE3F4 0x80D6 +0xE3F5 0x8109 +0xE3F6 0x80EF +0xE3F7 0x80F1 +0xE3F8 0x811B +0xE3F9 0x8129 +0xE3FA 0x8123 +0xE3FB 0x812F +0xE3FC 0x814B +0xE440 0x968B +0xE441 0x8146 +0xE442 0x813E +0xE443 0x8153 +0xE444 0x8151 +0xE445 0x80FC +0xE446 0x8171 +0xE447 0x816E +0xE448 0x8165 +0xE449 0x8166 +0xE44A 0x8174 +0xE44B 0x8183 +0xE44C 0x8188 +0xE44D 0x818A +0xE44E 0x8180 +0xE44F 0x8182 +0xE450 0x81A0 +0xE451 0x8195 +0xE452 0x81A4 +0xE453 0x81A3 +0xE454 0x815F +0xE455 0x8193 +0xE456 0x81A9 +0xE457 0x81B0 +0xE458 0x81B5 +0xE459 0x81BE +0xE45A 0x81B8 +0xE45B 0x81BD +0xE45C 0x81C0 +0xE45D 0x81C2 +0xE45E 0x81BA +0xE45F 0x81C9 +0xE460 0x81CD +0xE461 0x81D1 +0xE462 0x81D9 +0xE463 0x81D8 +0xE464 0x81C8 +0xE465 0x81DA +0xE466 0x81DF +0xE467 0x81E0 +0xE468 0x81E7 +0xE469 0x81FA +0xE46A 0x81FB +0xE46B 0x81FE +0xE46C 0x8201 +0xE46D 0x8202 +0xE46E 0x8205 +0xE46F 0x8207 +0xE470 0x820A +0xE471 0x820D +0xE472 0x8210 +0xE473 0x8216 +0xE474 0x8229 +0xE475 0x822B +0xE476 0x8238 +0xE477 0x8233 +0xE478 0x8240 +0xE479 0x8259 +0xE47A 0x8258 +0xE47B 0x825D +0xE47C 0x825A +0xE47D 0x825F +0xE47E 0x8264 +0xE480 0x8262 +0xE481 0x8268 +0xE482 0x826A +0xE483 0x826B +0xE484 0x822E +0xE485 0x8271 +0xE486 0x8277 +0xE487 0x8278 +0xE488 0x827E +0xE489 0x828D +0xE48A 0x8292 +0xE48B 0x82AB +0xE48C 0x829F +0xE48D 0x82BB +0xE48E 0x82AC +0xE48F 0x82E1 +0xE490 0x82E3 +0xE491 0x82DF +0xE492 0x82D2 +0xE493 0x82F4 +0xE494 0x82F3 +0xE495 0x82FA +0xE496 0x8393 +0xE497 0x8303 +0xE498 0x82FB +0xE499 0x82F9 +0xE49A 0x82DE +0xE49B 0x8306 +0xE49C 0x82DC +0xE49D 0x8309 +0xE49E 0x82D9 +0xE49F 0x8335 +0xE4A0 0x8334 +0xE4A1 0x8316 +0xE4A2 0x8332 +0xE4A3 0x8331 +0xE4A4 0x8340 +0xE4A5 0x8339 +0xE4A6 0x8350 +0xE4A7 0x8345 +0xE4A8 0x832F +0xE4A9 0x832B +0xE4AA 0x8317 +0xE4AB 0x8318 +0xE4AC 0x8385 +0xE4AD 0x839A +0xE4AE 0x83AA +0xE4AF 0x839F +0xE4B0 0x83A2 +0xE4B1 0x8396 +0xE4B2 0x8323 +0xE4B3 0x838E +0xE4B4 0x8387 +0xE4B5 0x838A +0xE4B6 0x837C +0xE4B7 0x83B5 +0xE4B8 0x8373 +0xE4B9 0x8375 +0xE4BA 0x83A0 +0xE4BB 0x8389 +0xE4BC 0x83A8 +0xE4BD 0x83F4 +0xE4BE 0x8413 +0xE4BF 0x83EB +0xE4C0 0x83CE +0xE4C1 0x83FD +0xE4C2 0x8403 +0xE4C3 0x83D8 +0xE4C4 0x840B +0xE4C5 0x83C1 +0xE4C6 0x83F7 +0xE4C7 0x8407 +0xE4C8 0x83E0 +0xE4C9 0x83F2 +0xE4CA 0x840D +0xE4CB 0x8422 +0xE4CC 0x8420 +0xE4CD 0x83BD +0xE4CE 0x8438 +0xE4CF 0x8506 +0xE4D0 0x83FB +0xE4D1 0x846D +0xE4D2 0x842A +0xE4D3 0x843C +0xE4D4 0x855A +0xE4D5 0x8484 +0xE4D6 0x8477 +0xE4D7 0x846B +0xE4D8 0x84AD +0xE4D9 0x846E +0xE4DA 0x8482 +0xE4DB 0x8469 +0xE4DC 0x8446 +0xE4DD 0x842C +0xE4DE 0x846F +0xE4DF 0x8479 +0xE4E0 0x8435 +0xE4E1 0x84CA +0xE4E2 0x8462 +0xE4E3 0x84B9 +0xE4E4 0x84BF +0xE4E5 0x849F +0xE4E6 0x84D9 +0xE4E7 0x84CD +0xE4E8 0x84BB +0xE4E9 0x84DA +0xE4EA 0x84D0 +0xE4EB 0x84C1 +0xE4EC 0x84C6 +0xE4ED 0x84D6 +0xE4EE 0x84A1 +0xE4EF 0x8521 +0xE4F0 0x84FF +0xE4F1 0x84F4 +0xE4F2 0x8517 +0xE4F3 0x8518 +0xE4F4 0x852C +0xE4F5 0x851F +0xE4F6 0x8515 +0xE4F7 0x8514 +0xE4F8 0x84FC +0xE4F9 0x8540 +0xE4FA 0x8563 +0xE4FB 0x8558 +0xE4FC 0x8548 +0xE540 0x8541 +0xE541 0x8602 +0xE542 0x854B +0xE543 0x8555 +0xE544 0x8580 +0xE545 0x85A4 +0xE546 0x8588 +0xE547 0x8591 +0xE548 0x858A +0xE549 0x85A8 +0xE54A 0x856D +0xE54B 0x8594 +0xE54C 0x859B +0xE54D 0x85EA +0xE54E 0x8587 +0xE54F 0x859C +0xE550 0x8577 +0xE551 0x857E +0xE552 0x8590 +0xE553 0x85C9 +0xE554 0x85BA +0xE555 0x85CF +0xE556 0x85B9 +0xE557 0x85D0 +0xE558 0x85D5 +0xE559 0x85DD +0xE55A 0x85E5 +0xE55B 0x85DC +0xE55C 0x85F9 +0xE55D 0x860A +0xE55E 0x8613 +0xE55F 0x860B +0xE560 0x85FE +0xE561 0x85FA +0xE562 0x8606 +0xE563 0x8622 +0xE564 0x861A +0xE565 0x8630 +0xE566 0x863F +0xE567 0x864D +0xE568 0x4E55 +0xE569 0x8654 +0xE56A 0x865F +0xE56B 0x8667 +0xE56C 0x8671 +0xE56D 0x8693 +0xE56E 0x86A3 +0xE56F 0x86A9 +0xE570 0x86AA +0xE571 0x868B +0xE572 0x868C +0xE573 0x86B6 +0xE574 0x86AF +0xE575 0x86C4 +0xE576 0x86C6 +0xE577 0x86B0 +0xE578 0x86C9 +0xE579 0x8823 +0xE57A 0x86AB +0xE57B 0x86D4 +0xE57C 0x86DE +0xE57D 0x86E9 +0xE57E 0x86EC +0xE580 0x86DF +0xE581 0x86DB +0xE582 0x86EF +0xE583 0x8712 +0xE584 0x8706 +0xE585 0x8708 +0xE586 0x8700 +0xE587 0x8703 +0xE588 0x86FB +0xE589 0x8711 +0xE58A 0x8709 +0xE58B 0x870D +0xE58C 0x86F9 +0xE58D 0x870A +0xE58E 0x8734 +0xE58F 0x873F +0xE590 0x8737 +0xE591 0x873B +0xE592 0x8725 +0xE593 0x8729 +0xE594 0x871A +0xE595 0x8760 +0xE596 0x875F +0xE597 0x8778 +0xE598 0x874C +0xE599 0x874E +0xE59A 0x8774 +0xE59B 0x8757 +0xE59C 0x8768 +0xE59D 0x876E +0xE59E 0x8759 +0xE59F 0x8753 +0xE5A0 0x8763 +0xE5A1 0x876A +0xE5A2 0x8805 +0xE5A3 0x87A2 +0xE5A4 0x879F +0xE5A5 0x8782 +0xE5A6 0x87AF +0xE5A7 0x87CB +0xE5A8 0x87BD +0xE5A9 0x87C0 +0xE5AA 0x87D0 +0xE5AB 0x96D6 +0xE5AC 0x87AB +0xE5AD 0x87C4 +0xE5AE 0x87B3 +0xE5AF 0x87C7 +0xE5B0 0x87C6 +0xE5B1 0x87BB +0xE5B2 0x87EF +0xE5B3 0x87F2 +0xE5B4 0x87E0 +0xE5B5 0x880F +0xE5B6 0x880D +0xE5B7 0x87FE +0xE5B8 0x87F6 +0xE5B9 0x87F7 +0xE5BA 0x880E +0xE5BB 0x87D2 +0xE5BC 0x8811 +0xE5BD 0x8816 +0xE5BE 0x8815 +0xE5BF 0x8822 +0xE5C0 0x8821 +0xE5C1 0x8831 +0xE5C2 0x8836 +0xE5C3 0x8839 +0xE5C4 0x8827 +0xE5C5 0x883B +0xE5C6 0x8844 +0xE5C7 0x8842 +0xE5C8 0x8852 +0xE5C9 0x8859 +0xE5CA 0x885E +0xE5CB 0x8862 +0xE5CC 0x886B +0xE5CD 0x8881 +0xE5CE 0x887E +0xE5CF 0x889E +0xE5D0 0x8875 +0xE5D1 0x887D +0xE5D2 0x88B5 +0xE5D3 0x8872 +0xE5D4 0x8882 +0xE5D5 0x8897 +0xE5D6 0x8892 +0xE5D7 0x88AE +0xE5D8 0x8899 +0xE5D9 0x88A2 +0xE5DA 0x888D +0xE5DB 0x88A4 +0xE5DC 0x88B0 +0xE5DD 0x88BF +0xE5DE 0x88B1 +0xE5DF 0x88C3 +0xE5E0 0x88C4 +0xE5E1 0x88D4 +0xE5E2 0x88D8 +0xE5E3 0x88D9 +0xE5E4 0x88DD +0xE5E5 0x88F9 +0xE5E6 0x8902 +0xE5E7 0x88FC +0xE5E8 0x88F4 +0xE5E9 0x88E8 +0xE5EA 0x88F2 +0xE5EB 0x8904 +0xE5EC 0x890C +0xE5ED 0x890A +0xE5EE 0x8913 +0xE5EF 0x8943 +0xE5F0 0x891E +0xE5F1 0x8925 +0xE5F2 0x892A +0xE5F3 0x892B +0xE5F4 0x8941 +0xE5F5 0x8944 +0xE5F6 0x893B +0xE5F7 0x8936 +0xE5F8 0x8938 +0xE5F9 0x894C +0xE5FA 0x891D +0xE5FB 0x8960 +0xE5FC 0x895E +0xE640 0x8966 +0xE641 0x8964 +0xE642 0x896D +0xE643 0x896A +0xE644 0x896F +0xE645 0x8974 +0xE646 0x8977 +0xE647 0x897E +0xE648 0x8983 +0xE649 0x8988 +0xE64A 0x898A +0xE64B 0x8993 +0xE64C 0x8998 +0xE64D 0x89A1 +0xE64E 0x89A9 +0xE64F 0x89A6 +0xE650 0x89AC +0xE651 0x89AF +0xE652 0x89B2 +0xE653 0x89BA +0xE654 0x89BD +0xE655 0x89BF +0xE656 0x89C0 +0xE657 0x89DA +0xE658 0x89DC +0xE659 0x89DD +0xE65A 0x89E7 +0xE65B 0x89F4 +0xE65C 0x89F8 +0xE65D 0x8A03 +0xE65E 0x8A16 +0xE65F 0x8A10 +0xE660 0x8A0C +0xE661 0x8A1B +0xE662 0x8A1D +0xE663 0x8A25 +0xE664 0x8A36 +0xE665 0x8A41 +0xE666 0x8A5B +0xE667 0x8A52 +0xE668 0x8A46 +0xE669 0x8A48 +0xE66A 0x8A7C +0xE66B 0x8A6D +0xE66C 0x8A6C +0xE66D 0x8A62 +0xE66E 0x8A85 +0xE66F 0x8A82 +0xE670 0x8A84 +0xE671 0x8AA8 +0xE672 0x8AA1 +0xE673 0x8A91 +0xE674 0x8AA5 +0xE675 0x8AA6 +0xE676 0x8A9A +0xE677 0x8AA3 +0xE678 0x8AC4 +0xE679 0x8ACD +0xE67A 0x8AC2 +0xE67B 0x8ADA +0xE67C 0x8AEB +0xE67D 0x8AF3 +0xE67E 0x8AE7 +0xE680 0x8AE4 +0xE681 0x8AF1 +0xE682 0x8B14 +0xE683 0x8AE0 +0xE684 0x8AE2 +0xE685 0x8AF7 +0xE686 0x8ADE +0xE687 0x8ADB +0xE688 0x8B0C +0xE689 0x8B07 +0xE68A 0x8B1A +0xE68B 0x8AE1 +0xE68C 0x8B16 +0xE68D 0x8B10 +0xE68E 0x8B17 +0xE68F 0x8B20 +0xE690 0x8B33 +0xE691 0x97AB +0xE692 0x8B26 +0xE693 0x8B2B +0xE694 0x8B3E +0xE695 0x8B28 +0xE696 0x8B41 +0xE697 0x8B4C +0xE698 0x8B4F +0xE699 0x8B4E +0xE69A 0x8B49 +0xE69B 0x8B56 +0xE69C 0x8B5B +0xE69D 0x8B5A +0xE69E 0x8B6B +0xE69F 0x8B5F +0xE6A0 0x8B6C +0xE6A1 0x8B6F +0xE6A2 0x8B74 +0xE6A3 0x8B7D +0xE6A4 0x8B80 +0xE6A5 0x8B8C +0xE6A6 0x8B8E +0xE6A7 0x8B92 +0xE6A8 0x8B93 +0xE6A9 0x8B96 +0xE6AA 0x8B99 +0xE6AB 0x8B9A +0xE6AC 0x8C3A +0xE6AD 0x8C41 +0xE6AE 0x8C3F +0xE6AF 0x8C48 +0xE6B0 0x8C4C +0xE6B1 0x8C4E +0xE6B2 0x8C50 +0xE6B3 0x8C55 +0xE6B4 0x8C62 +0xE6B5 0x8C6C +0xE6B6 0x8C78 +0xE6B7 0x8C7A +0xE6B8 0x8C82 +0xE6B9 0x8C89 +0xE6BA 0x8C85 +0xE6BB 0x8C8A +0xE6BC 0x8C8D +0xE6BD 0x8C8E +0xE6BE 0x8C94 +0xE6BF 0x8C7C +0xE6C0 0x8C98 +0xE6C1 0x621D +0xE6C2 0x8CAD +0xE6C3 0x8CAA +0xE6C4 0x8CBD +0xE6C5 0x8CB2 +0xE6C6 0x8CB3 +0xE6C7 0x8CAE +0xE6C8 0x8CB6 +0xE6C9 0x8CC8 +0xE6CA 0x8CC1 +0xE6CB 0x8CE4 +0xE6CC 0x8CE3 +0xE6CD 0x8CDA +0xE6CE 0x8CFD +0xE6CF 0x8CFA +0xE6D0 0x8CFB +0xE6D1 0x8D04 +0xE6D2 0x8D05 +0xE6D3 0x8D0A +0xE6D4 0x8D07 +0xE6D5 0x8D0F +0xE6D6 0x8D0D +0xE6D7 0x8D10 +0xE6D8 0x9F4E +0xE6D9 0x8D13 +0xE6DA 0x8CCD +0xE6DB 0x8D14 +0xE6DC 0x8D16 +0xE6DD 0x8D67 +0xE6DE 0x8D6D +0xE6DF 0x8D71 +0xE6E0 0x8D73 +0xE6E1 0x8D81 +0xE6E2 0x8D99 +0xE6E3 0x8DC2 +0xE6E4 0x8DBE +0xE6E5 0x8DBA +0xE6E6 0x8DCF +0xE6E7 0x8DDA +0xE6E8 0x8DD6 +0xE6E9 0x8DCC +0xE6EA 0x8DDB +0xE6EB 0x8DCB +0xE6EC 0x8DEA +0xE6ED 0x8DEB +0xE6EE 0x8DDF +0xE6EF 0x8DE3 +0xE6F0 0x8DFC +0xE6F1 0x8E08 +0xE6F2 0x8E09 +0xE6F3 0x8DFF +0xE6F4 0x8E1D +0xE6F5 0x8E1E +0xE6F6 0x8E10 +0xE6F7 0x8E1F +0xE6F8 0x8E42 +0xE6F9 0x8E35 +0xE6FA 0x8E30 +0xE6FB 0x8E34 +0xE6FC 0x8E4A +0xE740 0x8E47 +0xE741 0x8E49 +0xE742 0x8E4C +0xE743 0x8E50 +0xE744 0x8E48 +0xE745 0x8E59 +0xE746 0x8E64 +0xE747 0x8E60 +0xE748 0x8E2A +0xE749 0x8E63 +0xE74A 0x8E55 +0xE74B 0x8E76 +0xE74C 0x8E72 +0xE74D 0x8E7C +0xE74E 0x8E81 +0xE74F 0x8E87 +0xE750 0x8E85 +0xE751 0x8E84 +0xE752 0x8E8B +0xE753 0x8E8A +0xE754 0x8E93 +0xE755 0x8E91 +0xE756 0x8E94 +0xE757 0x8E99 +0xE758 0x8EAA +0xE759 0x8EA1 +0xE75A 0x8EAC +0xE75B 0x8EB0 +0xE75C 0x8EC6 +0xE75D 0x8EB1 +0xE75E 0x8EBE +0xE75F 0x8EC5 +0xE760 0x8EC8 +0xE761 0x8ECB +0xE762 0x8EDB +0xE763 0x8EE3 +0xE764 0x8EFC +0xE765 0x8EFB +0xE766 0x8EEB +0xE767 0x8EFE +0xE768 0x8F0A +0xE769 0x8F05 +0xE76A 0x8F15 +0xE76B 0x8F12 +0xE76C 0x8F19 +0xE76D 0x8F13 +0xE76E 0x8F1C +0xE76F 0x8F1F +0xE770 0x8F1B +0xE771 0x8F0C +0xE772 0x8F26 +0xE773 0x8F33 +0xE774 0x8F3B +0xE775 0x8F39 +0xE776 0x8F45 +0xE777 0x8F42 +0xE778 0x8F3E +0xE779 0x8F4C +0xE77A 0x8F49 +0xE77B 0x8F46 +0xE77C 0x8F4E +0xE77D 0x8F57 +0xE77E 0x8F5C +0xE780 0x8F62 +0xE781 0x8F63 +0xE782 0x8F64 +0xE783 0x8F9C +0xE784 0x8F9F +0xE785 0x8FA3 +0xE786 0x8FAD +0xE787 0x8FAF +0xE788 0x8FB7 +0xE789 0x8FDA +0xE78A 0x8FE5 +0xE78B 0x8FE2 +0xE78C 0x8FEA +0xE78D 0x8FEF +0xE78E 0x9087 +0xE78F 0x8FF4 +0xE790 0x9005 +0xE791 0x8FF9 +0xE792 0x8FFA +0xE793 0x9011 +0xE794 0x9015 +0xE795 0x9021 +0xE796 0x900D +0xE797 0x901E +0xE798 0x9016 +0xE799 0x900B +0xE79A 0x9027 +0xE79B 0x9036 +0xE79C 0x9035 +0xE79D 0x9039 +0xE79E 0x8FF8 +0xE79F 0x904F +0xE7A0 0x9050 +0xE7A1 0x9051 +0xE7A2 0x9052 +0xE7A3 0x900E +0xE7A4 0x9049 +0xE7A5 0x903E +0xE7A6 0x9056 +0xE7A7 0x9058 +0xE7A8 0x905E +0xE7A9 0x9068 +0xE7AA 0x906F +0xE7AB 0x9076 +0xE7AC 0x96A8 +0xE7AD 0x9072 +0xE7AE 0x9082 +0xE7AF 0x907D +0xE7B0 0x9081 +0xE7B1 0x9080 +0xE7B2 0x908A +0xE7B3 0x9089 +0xE7B4 0x908F +0xE7B5 0x90A8 +0xE7B6 0x90AF +0xE7B7 0x90B1 +0xE7B8 0x90B5 +0xE7B9 0x90E2 +0xE7BA 0x90E4 +0xE7BB 0x6248 +0xE7BC 0x90DB +0xE7BD 0x9102 +0xE7BE 0x9112 +0xE7BF 0x9119 +0xE7C0 0x9132 +0xE7C1 0x9130 +0xE7C2 0x914A +0xE7C3 0x9156 +0xE7C4 0x9158 +0xE7C5 0x9163 +0xE7C6 0x9165 +0xE7C7 0x9169 +0xE7C8 0x9173 +0xE7C9 0x9172 +0xE7CA 0x918B +0xE7CB 0x9189 +0xE7CC 0x9182 +0xE7CD 0x91A2 +0xE7CE 0x91AB +0xE7CF 0x91AF +0xE7D0 0x91AA +0xE7D1 0x91B5 +0xE7D2 0x91B4 +0xE7D3 0x91BA +0xE7D4 0x91C0 +0xE7D5 0x91C1 +0xE7D6 0x91C9 +0xE7D7 0x91CB +0xE7D8 0x91D0 +0xE7D9 0x91D6 +0xE7DA 0x91DF +0xE7DB 0x91E1 +0xE7DC 0x91DB +0xE7DD 0x91FC +0xE7DE 0x91F5 +0xE7DF 0x91F6 +0xE7E0 0x921E +0xE7E1 0x91FF +0xE7E2 0x9214 +0xE7E3 0x922C +0xE7E4 0x9215 +0xE7E5 0x9211 +0xE7E6 0x925E +0xE7E7 0x9257 +0xE7E8 0x9245 +0xE7E9 0x9249 +0xE7EA 0x9264 +0xE7EB 0x9248 +0xE7EC 0x9295 +0xE7ED 0x923F +0xE7EE 0x924B +0xE7EF 0x9250 +0xE7F0 0x929C +0xE7F1 0x9296 +0xE7F2 0x9293 +0xE7F3 0x929B +0xE7F4 0x925A +0xE7F5 0x92CF +0xE7F6 0x92B9 +0xE7F7 0x92B7 +0xE7F8 0x92E9 +0xE7F9 0x930F +0xE7FA 0x92FA +0xE7FB 0x9344 +0xE7FC 0x932E +0xE840 0x9319 +0xE841 0x9322 +0xE842 0x931A +0xE843 0x9323 +0xE844 0x933A +0xE845 0x9335 +0xE846 0x933B +0xE847 0x935C +0xE848 0x9360 +0xE849 0x937C +0xE84A 0x936E +0xE84B 0x9356 +0xE84C 0x93B0 +0xE84D 0x93AC +0xE84E 0x93AD +0xE84F 0x9394 +0xE850 0x93B9 +0xE851 0x93D6 +0xE852 0x93D7 +0xE853 0x93E8 +0xE854 0x93E5 +0xE855 0x93D8 +0xE856 0x93C3 +0xE857 0x93DD +0xE858 0x93D0 +0xE859 0x93C8 +0xE85A 0x93E4 +0xE85B 0x941A +0xE85C 0x9414 +0xE85D 0x9413 +0xE85E 0x9403 +0xE85F 0x9407 +0xE860 0x9410 +0xE861 0x9436 +0xE862 0x942B +0xE863 0x9435 +0xE864 0x9421 +0xE865 0x943A +0xE866 0x9441 +0xE867 0x9452 +0xE868 0x9444 +0xE869 0x945B +0xE86A 0x9460 +0xE86B 0x9462 +0xE86C 0x945E +0xE86D 0x946A +0xE86E 0x9229 +0xE86F 0x9470 +0xE870 0x9475 +0xE871 0x9477 +0xE872 0x947D +0xE873 0x945A +0xE874 0x947C +0xE875 0x947E +0xE876 0x9481 +0xE877 0x947F +0xE878 0x9582 +0xE879 0x9587 +0xE87A 0x958A +0xE87B 0x9594 +0xE87C 0x9596 +0xE87D 0x9598 +0xE87E 0x9599 +0xE880 0x95A0 +0xE881 0x95A8 +0xE882 0x95A7 +0xE883 0x95AD +0xE884 0x95BC +0xE885 0x95BB +0xE886 0x95B9 +0xE887 0x95BE +0xE888 0x95CA +0xE889 0x6FF6 +0xE88A 0x95C3 +0xE88B 0x95CD +0xE88C 0x95CC +0xE88D 0x95D5 +0xE88E 0x95D4 +0xE88F 0x95D6 +0xE890 0x95DC +0xE891 0x95E1 +0xE892 0x95E5 +0xE893 0x95E2 +0xE894 0x9621 +0xE895 0x9628 +0xE896 0x962E +0xE897 0x962F +0xE898 0x9642 +0xE899 0x964C +0xE89A 0x964F +0xE89B 0x964B +0xE89C 0x9677 +0xE89D 0x965C +0xE89E 0x965E +0xE89F 0x965D +0xE8A0 0x965F +0xE8A1 0x9666 +0xE8A2 0x9672 +0xE8A3 0x966C +0xE8A4 0x968D +0xE8A5 0x9698 +0xE8A6 0x9695 +0xE8A7 0x9697 +0xE8A8 0x96AA +0xE8A9 0x96A7 +0xE8AA 0x96B1 +0xE8AB 0x96B2 +0xE8AC 0x96B0 +0xE8AD 0x96B4 +0xE8AE 0x96B6 +0xE8AF 0x96B8 +0xE8B0 0x96B9 +0xE8B1 0x96CE +0xE8B2 0x96CB +0xE8B3 0x96C9 +0xE8B4 0x96CD +0xE8B5 0x894D +0xE8B6 0x96DC +0xE8B7 0x970D +0xE8B8 0x96D5 +0xE8B9 0x96F9 +0xE8BA 0x9704 +0xE8BB 0x9706 +0xE8BC 0x9708 +0xE8BD 0x9713 +0xE8BE 0x970E +0xE8BF 0x9711 +0xE8C0 0x970F +0xE8C1 0x9716 +0xE8C2 0x9719 +0xE8C3 0x9724 +0xE8C4 0x972A +0xE8C5 0x9730 +0xE8C6 0x9739 +0xE8C7 0x973D +0xE8C8 0x973E +0xE8C9 0x9744 +0xE8CA 0x9746 +0xE8CB 0x9748 +0xE8CC 0x9742 +0xE8CD 0x9749 +0xE8CE 0x975C +0xE8CF 0x9760 +0xE8D0 0x9764 +0xE8D1 0x9766 +0xE8D2 0x9768 +0xE8D3 0x52D2 +0xE8D4 0x976B +0xE8D5 0x9771 +0xE8D6 0x9779 +0xE8D7 0x9785 +0xE8D8 0x977C +0xE8D9 0x9781 +0xE8DA 0x977A +0xE8DB 0x9786 +0xE8DC 0x978B +0xE8DD 0x978F +0xE8DE 0x9790 +0xE8DF 0x979C +0xE8E0 0x97A8 +0xE8E1 0x97A6 +0xE8E2 0x97A3 +0xE8E3 0x97B3 +0xE8E4 0x97B4 +0xE8E5 0x97C3 +0xE8E6 0x97C6 +0xE8E7 0x97C8 +0xE8E8 0x97CB +0xE8E9 0x97DC +0xE8EA 0x97ED +0xE8EB 0x9F4F +0xE8EC 0x97F2 +0xE8ED 0x7ADF +0xE8EE 0x97F6 +0xE8EF 0x97F5 +0xE8F0 0x980F +0xE8F1 0x980C +0xE8F2 0x9838 +0xE8F3 0x9824 +0xE8F4 0x9821 +0xE8F5 0x9837 +0xE8F6 0x983D +0xE8F7 0x9846 +0xE8F8 0x984F +0xE8F9 0x984B +0xE8FA 0x986B +0xE8FB 0x986F +0xE8FC 0x9870 +0xE940 0x9871 +0xE941 0x9874 +0xE942 0x9873 +0xE943 0x98AA +0xE944 0x98AF +0xE945 0x98B1 +0xE946 0x98B6 +0xE947 0x98C4 +0xE948 0x98C3 +0xE949 0x98C6 +0xE94A 0x98E9 +0xE94B 0x98EB +0xE94C 0x9903 +0xE94D 0x9909 +0xE94E 0x9912 +0xE94F 0x9914 +0xE950 0x9918 +0xE951 0x9921 +0xE952 0x991D +0xE953 0x991E +0xE954 0x9924 +0xE955 0x9920 +0xE956 0x992C +0xE957 0x992E +0xE958 0x993D +0xE959 0x993E +0xE95A 0x9942 +0xE95B 0x9949 +0xE95C 0x9945 +0xE95D 0x9950 +0xE95E 0x994B +0xE95F 0x9951 +0xE960 0x9952 +0xE961 0x994C +0xE962 0x9955 +0xE963 0x9997 +0xE964 0x9998 +0xE965 0x99A5 +0xE966 0x99AD +0xE967 0x99AE +0xE968 0x99BC +0xE969 0x99DF +0xE96A 0x99DB +0xE96B 0x99DD +0xE96C 0x99D8 +0xE96D 0x99D1 +0xE96E 0x99ED +0xE96F 0x99EE +0xE970 0x99F1 +0xE971 0x99F2 +0xE972 0x99FB +0xE973 0x99F8 +0xE974 0x9A01 +0xE975 0x9A0F +0xE976 0x9A05 +0xE977 0x99E2 +0xE978 0x9A19 +0xE979 0x9A2B +0xE97A 0x9A37 +0xE97B 0x9A45 +0xE97C 0x9A42 +0xE97D 0x9A40 +0xE97E 0x9A43 +0xE980 0x9A3E +0xE981 0x9A55 +0xE982 0x9A4D +0xE983 0x9A5B +0xE984 0x9A57 +0xE985 0x9A5F +0xE986 0x9A62 +0xE987 0x9A65 +0xE988 0x9A64 +0xE989 0x9A69 +0xE98A 0x9A6B +0xE98B 0x9A6A +0xE98C 0x9AAD +0xE98D 0x9AB0 +0xE98E 0x9ABC +0xE98F 0x9AC0 +0xE990 0x9ACF +0xE991 0x9AD1 +0xE992 0x9AD3 +0xE993 0x9AD4 +0xE994 0x9ADE +0xE995 0x9ADF +0xE996 0x9AE2 +0xE997 0x9AE3 +0xE998 0x9AE6 +0xE999 0x9AEF +0xE99A 0x9AEB +0xE99B 0x9AEE +0xE99C 0x9AF4 +0xE99D 0x9AF1 +0xE99E 0x9AF7 +0xE99F 0x9AFB +0xE9A0 0x9B06 +0xE9A1 0x9B18 +0xE9A2 0x9B1A +0xE9A3 0x9B1F +0xE9A4 0x9B22 +0xE9A5 0x9B23 +0xE9A6 0x9B25 +0xE9A7 0x9B27 +0xE9A8 0x9B28 +0xE9A9 0x9B29 +0xE9AA 0x9B2A +0xE9AB 0x9B2E +0xE9AC 0x9B2F +0xE9AD 0x9B32 +0xE9AE 0x9B44 +0xE9AF 0x9B43 +0xE9B0 0x9B4F +0xE9B1 0x9B4D +0xE9B2 0x9B4E +0xE9B3 0x9B51 +0xE9B4 0x9B58 +0xE9B5 0x9B74 +0xE9B6 0x9B93 +0xE9B7 0x9B83 +0xE9B8 0x9B91 +0xE9B9 0x9B96 +0xE9BA 0x9B97 +0xE9BB 0x9B9F +0xE9BC 0x9BA0 +0xE9BD 0x9BA8 +0xE9BE 0x9BB4 +0xE9BF 0x9BC0 +0xE9C0 0x9BCA +0xE9C1 0x9BB9 +0xE9C2 0x9BC6 +0xE9C3 0x9BCF +0xE9C4 0x9BD1 +0xE9C5 0x9BD2 +0xE9C6 0x9BE3 +0xE9C7 0x9BE2 +0xE9C8 0x9BE4 +0xE9C9 0x9BD4 +0xE9CA 0x9BE1 +0xE9CB 0x9C3A +0xE9CC 0x9BF2 +0xE9CD 0x9BF1 +0xE9CE 0x9BF0 +0xE9CF 0x9C15 +0xE9D0 0x9C14 +0xE9D1 0x9C09 +0xE9D2 0x9C13 +0xE9D3 0x9C0C +0xE9D4 0x9C06 +0xE9D5 0x9C08 +0xE9D6 0x9C12 +0xE9D7 0x9C0A +0xE9D8 0x9C04 +0xE9D9 0x9C2E +0xE9DA 0x9C1B +0xE9DB 0x9C25 +0xE9DC 0x9C24 +0xE9DD 0x9C21 +0xE9DE 0x9C30 +0xE9DF 0x9C47 +0xE9E0 0x9C32 +0xE9E1 0x9C46 +0xE9E2 0x9C3E +0xE9E3 0x9C5A +0xE9E4 0x9C60 +0xE9E5 0x9C67 +0xE9E6 0x9C76 +0xE9E7 0x9C78 +0xE9E8 0x9CE7 +0xE9E9 0x9CEC +0xE9EA 0x9CF0 +0xE9EB 0x9D09 +0xE9EC 0x9D08 +0xE9ED 0x9CEB +0xE9EE 0x9D03 +0xE9EF 0x9D06 +0xE9F0 0x9D2A +0xE9F1 0x9D26 +0xE9F2 0x9DAF +0xE9F3 0x9D23 +0xE9F4 0x9D1F +0xE9F5 0x9D44 +0xE9F6 0x9D15 +0xE9F7 0x9D12 +0xE9F8 0x9D41 +0xE9F9 0x9D3F +0xE9FA 0x9D3E +0xE9FB 0x9D46 +0xE9FC 0x9D48 +0xEA40 0x9D5D +0xEA41 0x9D5E +0xEA42 0x9D64 +0xEA43 0x9D51 +0xEA44 0x9D50 +0xEA45 0x9D59 +0xEA46 0x9D72 +0xEA47 0x9D89 +0xEA48 0x9D87 +0xEA49 0x9DAB +0xEA4A 0x9D6F +0xEA4B 0x9D7A +0xEA4C 0x9D9A +0xEA4D 0x9DA4 +0xEA4E 0x9DA9 +0xEA4F 0x9DB2 +0xEA50 0x9DC4 +0xEA51 0x9DC1 +0xEA52 0x9DBB +0xEA53 0x9DB8 +0xEA54 0x9DBA +0xEA55 0x9DC6 +0xEA56 0x9DCF +0xEA57 0x9DC2 +0xEA58 0x9DD9 +0xEA59 0x9DD3 +0xEA5A 0x9DF8 +0xEA5B 0x9DE6 +0xEA5C 0x9DED +0xEA5D 0x9DEF +0xEA5E 0x9DFD +0xEA5F 0x9E1A +0xEA60 0x9E1B +0xEA61 0x9E1E +0xEA62 0x9E75 +0xEA63 0x9E79 +0xEA64 0x9E7D +0xEA65 0x9E81 +0xEA66 0x9E88 +0xEA67 0x9E8B +0xEA68 0x9E8C +0xEA69 0x9E92 +0xEA6A 0x9E95 +0xEA6B 0x9E91 +0xEA6C 0x9E9D +0xEA6D 0x9EA5 +0xEA6E 0x9EA9 +0xEA6F 0x9EB8 +0xEA70 0x9EAA +0xEA71 0x9EAD +0xEA72 0x9761 +0xEA73 0x9ECC +0xEA74 0x9ECE +0xEA75 0x9ECF +0xEA76 0x9ED0 +0xEA77 0x9ED4 +0xEA78 0x9EDC +0xEA79 0x9EDE +0xEA7A 0x9EDD +0xEA7B 0x9EE0 +0xEA7C 0x9EE5 +0xEA7D 0x9EE8 +0xEA7E 0x9EEF +0xEA80 0x9EF4 +0xEA81 0x9EF6 +0xEA82 0x9EF7 +0xEA83 0x9EF9 +0xEA84 0x9EFB +0xEA85 0x9EFC +0xEA86 0x9EFD +0xEA87 0x9F07 +0xEA88 0x9F08 +0xEA89 0x76B7 +0xEA8A 0x9F15 +0xEA8B 0x9F21 +0xEA8C 0x9F2C +0xEA8D 0x9F3E +0xEA8E 0x9F4A +0xEA8F 0x9F52 +0xEA90 0x9F54 +0xEA91 0x9F63 +0xEA92 0x9F5F +0xEA93 0x9F60 +0xEA94 0x9F61 +0xEA95 0x9F66 +0xEA96 0x9F67 +0xEA97 0x9F6C +0xEA98 0x9F6A +0xEA99 0x9F77 +0xEA9A 0x9F72 +0xEA9B 0x9F76 +0xEA9C 0x9F95 +0xEA9D 0x9F9C +0xEA9E 0x9FA0 +0xEA9F 0x582F +0xEAA0 0x69C7 +0xEAA1 0x9059 +0xEAA2 0x7464 +0xEAA3 0x51DC +0xEAA4 0x7199 +0xED40 0x7E8A +0xED41 0x891C +0xED42 0x9348 +0xED43 0x9288 +0xED44 0x84DC +0xED45 0x4FC9 +0xED46 0x70BB +0xED47 0x6631 +0xED48 0x68C8 +0xED49 0x92F9 +0xED4A 0x66FB +0xED4B 0x5F45 +0xED4C 0x4E28 +0xED4D 0x4EE1 +0xED4E 0x4EFC +0xED4F 0x4F00 +0xED50 0x4F03 +0xED51 0x4F39 +0xED52 0x4F56 +0xED53 0x4F92 +0xED54 0x4F8A +0xED55 0x4F9A +0xED56 0x4F94 +0xED57 0x4FCD +0xED58 0x5040 +0xED59 0x5022 +0xED5A 0x4FFF +0xED5B 0x501E +0xED5C 0x5046 +0xED5D 0x5070 +0xED5E 0x5042 +0xED5F 0x5094 +0xED60 0x50F4 +0xED61 0x50D8 +0xED62 0x514A +0xED63 0x5164 +0xED64 0x519D +0xED65 0x51BE +0xED66 0x51EC +0xED67 0x5215 +0xED68 0x529C +0xED69 0x52A6 +0xED6A 0x52C0 +0xED6B 0x52DB +0xED6C 0x5300 +0xED6D 0x5307 +0xED6E 0x5324 +0xED6F 0x5372 +0xED70 0x5393 +0xED71 0x53B2 +0xED72 0x53DD +0xED73 0xFA0E +0xED74 0x549C +0xED75 0x548A +0xED76 0x54A9 +0xED77 0x54FF +0xED78 0x5586 +0xED79 0x5759 +0xED7A 0x5765 +0xED7B 0x57AC +0xED7C 0x57C8 +0xED7D 0x57C7 +0xED7E 0xFA0F +0xED80 0xFA10 +0xED81 0x589E +0xED82 0x58B2 +0xED83 0x590B +0xED84 0x5953 +0xED85 0x595B +0xED86 0x595D +0xED87 0x5963 +0xED88 0x59A4 +0xED89 0x59BA +0xED8A 0x5B56 +0xED8B 0x5BC0 +0xED8C 0x752F +0xED8D 0x5BD8 +0xED8E 0x5BEC +0xED8F 0x5C1E +0xED90 0x5CA6 +0xED91 0x5CBA +0xED92 0x5CF5 +0xED93 0x5D27 +0xED94 0x5D53 +0xED95 0xFA11 +0xED96 0x5D42 +0xED97 0x5D6D +0xED98 0x5DB8 +0xED99 0x5DB9 +0xED9A 0x5DD0 +0xED9B 0x5F21 +0xED9C 0x5F34 +0xED9D 0x5F67 +0xED9E 0x5FB7 +0xED9F 0x5FDE +0xEDA0 0x605D +0xEDA1 0x6085 +0xEDA2 0x608A +0xEDA3 0x60DE +0xEDA4 0x60D5 +0xEDA5 0x6120 +0xEDA6 0x60F2 +0xEDA7 0x6111 +0xEDA8 0x6137 +0xEDA9 0x6130 +0xEDAA 0x6198 +0xEDAB 0x6213 +0xEDAC 0x62A6 +0xEDAD 0x63F5 +0xEDAE 0x6460 +0xEDAF 0x649D +0xEDB0 0x64CE +0xEDB1 0x654E +0xEDB2 0x6600 +0xEDB3 0x6615 +0xEDB4 0x663B +0xEDB5 0x6609 +0xEDB6 0x662E +0xEDB7 0x661E +0xEDB8 0x6624 +0xEDB9 0x6665 +0xEDBA 0x6657 +0xEDBB 0x6659 +0xEDBC 0xFA12 +0xEDBD 0x6673 +0xEDBE 0x6699 +0xEDBF 0x66A0 +0xEDC0 0x66B2 +0xEDC1 0x66BF +0xEDC2 0x66FA +0xEDC3 0x670E +0xEDC4 0xF929 +0xEDC5 0x6766 +0xEDC6 0x67BB +0xEDC7 0x6852 +0xEDC8 0x67C0 +0xEDC9 0x6801 +0xEDCA 0x6844 +0xEDCB 0x68CF +0xEDCC 0xFA13 +0xEDCD 0x6968 +0xEDCE 0xFA14 +0xEDCF 0x6998 +0xEDD0 0x69E2 +0xEDD1 0x6A30 +0xEDD2 0x6A6B +0xEDD3 0x6A46 +0xEDD4 0x6A73 +0xEDD5 0x6A7E +0xEDD6 0x6AE2 +0xEDD7 0x6AE4 +0xEDD8 0x6BD6 +0xEDD9 0x6C3F +0xEDDA 0x6C5C +0xEDDB 0x6C86 +0xEDDC 0x6C6F +0xEDDD 0x6CDA +0xEDDE 0x6D04 +0xEDDF 0x6D87 +0xEDE0 0x6D6F +0xEDE1 0x6D96 +0xEDE2 0x6DAC +0xEDE3 0x6DCF +0xEDE4 0x6DF8 +0xEDE5 0x6DF2 +0xEDE6 0x6DFC +0xEDE7 0x6E39 +0xEDE8 0x6E5C +0xEDE9 0x6E27 +0xEDEA 0x6E3C +0xEDEB 0x6EBF +0xEDEC 0x6F88 +0xEDED 0x6FB5 +0xEDEE 0x6FF5 +0xEDEF 0x7005 +0xEDF0 0x7007 +0xEDF1 0x7028 +0xEDF2 0x7085 +0xEDF3 0x70AB +0xEDF4 0x710F +0xEDF5 0x7104 +0xEDF6 0x715C +0xEDF7 0x7146 +0xEDF8 0x7147 +0xEDF9 0xFA15 +0xEDFA 0x71C1 +0xEDFB 0x71FE +0xEDFC 0x72B1 +0xEE40 0x72BE +0xEE41 0x7324 +0xEE42 0xFA16 +0xEE43 0x7377 +0xEE44 0x73BD +0xEE45 0x73C9 +0xEE46 0x73D6 +0xEE47 0x73E3 +0xEE48 0x73D2 +0xEE49 0x7407 +0xEE4A 0x73F5 +0xEE4B 0x7426 +0xEE4C 0x742A +0xEE4D 0x7429 +0xEE4E 0x742E +0xEE4F 0x7462 +0xEE50 0x7489 +0xEE51 0x749F +0xEE52 0x7501 +0xEE53 0x756F +0xEE54 0x7682 +0xEE55 0x769C +0xEE56 0x769E +0xEE57 0x769B +0xEE58 0x76A6 +0xEE59 0xFA17 +0xEE5A 0x7746 +0xEE5B 0x52AF +0xEE5C 0x7821 +0xEE5D 0x784E +0xEE5E 0x7864 +0xEE5F 0x787A +0xEE60 0x7930 +0xEE61 0xFA18 +0xEE62 0xFA19 +0xEE63 0xFA1A +0xEE64 0x7994 +0xEE65 0xFA1B +0xEE66 0x799B +0xEE67 0x7AD1 +0xEE68 0x7AE7 +0xEE69 0xFA1C +0xEE6A 0x7AEB +0xEE6B 0x7B9E +0xEE6C 0xFA1D +0xEE6D 0x7D48 +0xEE6E 0x7D5C +0xEE6F 0x7DB7 +0xEE70 0x7DA0 +0xEE71 0x7DD6 +0xEE72 0x7E52 +0xEE73 0x7F47 +0xEE74 0x7FA1 +0xEE75 0xFA1E +0xEE76 0x8301 +0xEE77 0x8362 +0xEE78 0x837F +0xEE79 0x83C7 +0xEE7A 0x83F6 +0xEE7B 0x8448 +0xEE7C 0x84B4 +0xEE7D 0x8553 +0xEE7E 0x8559 +0xEE80 0x856B +0xEE81 0xFA1F +0xEE82 0x85B0 +0xEE83 0xFA20 +0xEE84 0xFA21 +0xEE85 0x8807 +0xEE86 0x88F5 +0xEE87 0x8A12 +0xEE88 0x8A37 +0xEE89 0x8A79 +0xEE8A 0x8AA7 +0xEE8B 0x8ABE +0xEE8C 0x8ADF +0xEE8D 0xFA22 +0xEE8E 0x8AF6 +0xEE8F 0x8B53 +0xEE90 0x8B7F +0xEE91 0x8CF0 +0xEE92 0x8CF4 +0xEE93 0x8D12 +0xEE94 0x8D76 +0xEE95 0xFA23 +0xEE96 0x8ECF +0xEE97 0xFA24 +0xEE98 0xFA25 +0xEE99 0x9067 +0xEE9A 0x90DE +0xEE9B 0xFA26 +0xEE9C 0x9115 +0xEE9D 0x9127 +0xEE9E 0x91DA +0xEE9F 0x91D7 +0xEEA0 0x91DE +0xEEA1 0x91ED +0xEEA2 0x91EE +0xEEA3 0x91E4 +0xEEA4 0x91E5 +0xEEA5 0x9206 +0xEEA6 0x9210 +0xEEA7 0x920A +0xEEA8 0x923A +0xEEA9 0x9240 +0xEEAA 0x923C +0xEEAB 0x924E +0xEEAC 0x9259 +0xEEAD 0x9251 +0xEEAE 0x9239 +0xEEAF 0x9267 +0xEEB0 0x92A7 +0xEEB1 0x9277 +0xEEB2 0x9278 +0xEEB3 0x92E7 +0xEEB4 0x92D7 +0xEEB5 0x92D9 +0xEEB6 0x92D0 +0xEEB7 0xFA27 +0xEEB8 0x92D5 +0xEEB9 0x92E0 +0xEEBA 0x92D3 +0xEEBB 0x9325 +0xEEBC 0x9321 +0xEEBD 0x92FB +0xEEBE 0xFA28 +0xEEBF 0x931E +0xEEC0 0x92FF +0xEEC1 0x931D +0xEEC2 0x9302 +0xEEC3 0x9370 +0xEEC4 0x9357 +0xEEC5 0x93A4 +0xEEC6 0x93C6 +0xEEC7 0x93DE +0xEEC8 0x93F8 +0xEEC9 0x9431 +0xEECA 0x9445 +0xEECB 0x9448 +0xEECC 0x9592 +0xEECD 0xF9DC +0xEECE 0xFA29 +0xEECF 0x969D +0xEED0 0x96AF +0xEED1 0x9733 +0xEED2 0x973B +0xEED3 0x9743 +0xEED4 0x974D +0xEED5 0x974F +0xEED6 0x9751 +0xEED7 0x9755 +0xEED8 0x9857 +0xEED9 0x9865 +0xEEDA 0xFA2A +0xEEDB 0xFA2B +0xEEDC 0x9927 +0xEEDD 0xFA2C +0xEEDE 0x999E +0xEEDF 0x9A4E +0xEEE0 0x9AD9 +0xEEE1 0x9ADC +0xEEE2 0x9B75 +0xEEE3 0x9B72 +0xEEE4 0x9B8F +0xEEE5 0x9BB1 +0xEEE6 0x9BBB +0xEEE7 0x9C00 +0xEEE8 0x9D70 +0xEEE9 0x9D6B +0xEEEA 0xFA2D +0xEEEB 0x9E19 +0xEEEC 0x9ED1 +0xEEEF 0x2170 +0xEEF0 0x2171 +0xEEF1 0x2172 +0xEEF2 0x2173 +0xEEF3 0x2174 +0xEEF4 0x2175 +0xEEF5 0x2176 +0xEEF6 0x2177 +0xEEF7 0x2178 +0xEEF8 0x2179 +0xEEF9 0xFFE2 +0xEEFA 0xFFE4 +0xEEFB 0xFF07 +0xEEFC 0xFF02 +0xF040 0xE000 +0xF041 0xE001 +0xF042 0xE002 +0xF043 0xE003 +0xF044 0xE004 +0xF045 0xE005 +0xF046 0xE006 +0xF047 0xE007 +0xF048 0xE008 +0xF049 0xE009 +0xF04A 0xE00A +0xF04B 0xE00B +0xF04C 0xE00C +0xF04D 0xE00D +0xF04E 0xE00E +0xF04F 0xE00F +0xF050 0xE010 +0xF051 0xE011 +0xF052 0xE012 +0xF053 0xE013 +0xF054 0xE014 +0xF055 0xE015 +0xF056 0xE016 +0xF057 0xE017 +0xF058 0xE018 +0xF059 0xE019 +0xF05A 0xE01A +0xF05B 0xE01B +0xF05C 0xE01C +0xF05D 0xE01D +0xF05E 0xE01E +0xF05F 0xE01F +0xF060 0xE020 +0xF061 0xE021 +0xF062 0xE022 +0xF063 0xE023 +0xF064 0xE024 +0xF065 0xE025 +0xF066 0xE026 +0xF067 0xE027 +0xF068 0xE028 +0xF069 0xE029 +0xF06A 0xE02A +0xF06B 0xE02B +0xF06C 0xE02C +0xF06D 0xE02D +0xF06E 0xE02E +0xF06F 0xE02F +0xF070 0xE030 +0xF071 0xE031 +0xF072 0xE032 +0xF073 0xE033 +0xF074 0xE034 +0xF075 0xE035 +0xF076 0xE036 +0xF077 0xE037 +0xF078 0xE038 +0xF079 0xE039 +0xF07A 0xE03A +0xF07B 0xE03B +0xF07C 0xE03C +0xF07D 0xE03D +0xF07E 0xE03E +0xF080 0xE03F +0xF081 0xE040 +0xF082 0xE041 +0xF083 0xE042 +0xF084 0xE043 +0xF085 0xE044 +0xF086 0xE045 +0xF087 0xE046 +0xF088 0xE047 +0xF089 0xE048 +0xF08A 0xE049 +0xF08B 0xE04A +0xF08C 0xE04B +0xF08D 0xE04C +0xF08E 0xE04D +0xF08F 0xE04E +0xF090 0xE04F +0xF091 0xE050 +0xF092 0xE051 +0xF093 0xE052 +0xF094 0xE053 +0xF095 0xE054 +0xF096 0xE055 +0xF097 0xE056 +0xF098 0xE057 +0xF099 0xE058 +0xF09A 0xE059 +0xF09B 0xE05A +0xF09C 0xE05B +0xF09D 0xE05C +0xF09E 0xE05D +0xF09F 0xE05E +0xF0A0 0xE05F +0xF0A1 0xE060 +0xF0A2 0xE061 +0xF0A3 0xE062 +0xF0A4 0xE063 +0xF0A5 0xE064 +0xF0A6 0xE065 +0xF0A7 0xE066 +0xF0A8 0xE067 +0xF0A9 0xE068 +0xF0AA 0xE069 +0xF0AB 0xE06A +0xF0AC 0xE06B +0xF0AD 0xE06C +0xF0AE 0xE06D +0xF0AF 0xE06E +0xF0B0 0xE06F +0xF0B1 0xE070 +0xF0B2 0xE071 +0xF0B3 0xE072 +0xF0B4 0xE073 +0xF0B5 0xE074 +0xF0B6 0xE075 +0xF0B7 0xE076 +0xF0B8 0xE077 +0xF0B9 0xE078 +0xF0BA 0xE079 +0xF0BB 0xE07A +0xF0BC 0xE07B +0xF0BD 0xE07C +0xF0BE 0xE07D +0xF0BF 0xE07E +0xF0C0 0xE07F +0xF0C1 0xE080 +0xF0C2 0xE081 +0xF0C3 0xE082 +0xF0C4 0xE083 +0xF0C5 0xE084 +0xF0C6 0xE085 +0xF0C7 0xE086 +0xF0C8 0xE087 +0xF0C9 0xE088 +0xF0CA 0xE089 +0xF0CB 0xE08A +0xF0CC 0xE08B +0xF0CD 0xE08C +0xF0CE 0xE08D +0xF0CF 0xE08E +0xF0D0 0xE08F +0xF0D1 0xE090 +0xF0D2 0xE091 +0xF0D3 0xE092 +0xF0D4 0xE093 +0xF0D5 0xE094 +0xF0D6 0xE095 +0xF0D7 0xE096 +0xF0D8 0xE097 +0xF0D9 0xE098 +0xF0DA 0xE099 +0xF0DB 0xE09A +0xF0DC 0xE09B +0xF0DD 0xE09C +0xF0DE 0xE09D +0xF0DF 0xE09E +0xF0E0 0xE09F +0xF0E1 0xE0A0 +0xF0E2 0xE0A1 +0xF0E3 0xE0A2 +0xF0E4 0xE0A3 +0xF0E5 0xE0A4 +0xF0E6 0xE0A5 +0xF0E7 0xE0A6 +0xF0E8 0xE0A7 +0xF0E9 0xE0A8 +0xF0EA 0xE0A9 +0xF0EB 0xE0AA +0xF0EC 0xE0AB +0xF0ED 0xE0AC +0xF0EE 0xE0AD +0xF0EF 0xE0AE +0xF0F0 0xE0AF +0xF0F1 0xE0B0 +0xF0F2 0xE0B1 +0xF0F3 0xE0B2 +0xF0F4 0xE0B3 +0xF0F5 0xE0B4 +0xF0F6 0xE0B5 +0xF0F7 0xE0B6 +0xF0F8 0xE0B7 +0xF0F9 0xE0B8 +0xF0FA 0xE0B9 +0xF0FB 0xE0BA +0xF0FC 0xE0BB +0xF140 0xE0BC +0xF141 0xE0BD +0xF142 0xE0BE +0xF143 0xE0BF +0xF144 0xE0C0 +0xF145 0xE0C1 +0xF146 0xE0C2 +0xF147 0xE0C3 +0xF148 0xE0C4 +0xF149 0xE0C5 +0xF14A 0xE0C6 +0xF14B 0xE0C7 +0xF14C 0xE0C8 +0xF14D 0xE0C9 +0xF14E 0xE0CA +0xF14F 0xE0CB +0xF150 0xE0CC +0xF151 0xE0CD +0xF152 0xE0CE +0xF153 0xE0CF +0xF154 0xE0D0 +0xF155 0xE0D1 +0xF156 0xE0D2 +0xF157 0xE0D3 +0xF158 0xE0D4 +0xF159 0xE0D5 +0xF15A 0xE0D6 +0xF15B 0xE0D7 +0xF15C 0xE0D8 +0xF15D 0xE0D9 +0xF15E 0xE0DA +0xF15F 0xE0DB +0xF160 0xE0DC +0xF161 0xE0DD +0xF162 0xE0DE +0xF163 0xE0DF +0xF164 0xE0E0 +0xF165 0xE0E1 +0xF166 0xE0E2 +0xF167 0xE0E3 +0xF168 0xE0E4 +0xF169 0xE0E5 +0xF16A 0xE0E6 +0xF16B 0xE0E7 +0xF16C 0xE0E8 +0xF16D 0xE0E9 +0xF16E 0xE0EA +0xF16F 0xE0EB +0xF170 0xE0EC +0xF171 0xE0ED +0xF172 0xE0EE +0xF173 0xE0EF +0xF174 0xE0F0 +0xF175 0xE0F1 +0xF176 0xE0F2 +0xF177 0xE0F3 +0xF178 0xE0F4 +0xF179 0xE0F5 +0xF17A 0xE0F6 +0xF17B 0xE0F7 +0xF17C 0xE0F8 +0xF17D 0xE0F9 +0xF17E 0xE0FA +0xF180 0xE0FB +0xF181 0xE0FC +0xF182 0xE0FD +0xF183 0xE0FE +0xF184 0xE0FF +0xF185 0xE100 +0xF186 0xE101 +0xF187 0xE102 +0xF188 0xE103 +0xF189 0xE104 +0xF18A 0xE105 +0xF18B 0xE106 +0xF18C 0xE107 +0xF18D 0xE108 +0xF18E 0xE109 +0xF18F 0xE10A +0xF190 0xE10B +0xF191 0xE10C +0xF192 0xE10D +0xF193 0xE10E +0xF194 0xE10F +0xF195 0xE110 +0xF196 0xE111 +0xF197 0xE112 +0xF198 0xE113 +0xF199 0xE114 +0xF19A 0xE115 +0xF19B 0xE116 +0xF19C 0xE117 +0xF19D 0xE118 +0xF19E 0xE119 +0xF19F 0xE11A +0xF1A0 0xE11B +0xF1A1 0xE11C +0xF1A2 0xE11D +0xF1A3 0xE11E +0xF1A4 0xE11F +0xF1A5 0xE120 +0xF1A6 0xE121 +0xF1A7 0xE122 +0xF1A8 0xE123 +0xF1A9 0xE124 +0xF1AA 0xE125 +0xF1AB 0xE126 +0xF1AC 0xE127 +0xF1AD 0xE128 +0xF1AE 0xE129 +0xF1AF 0xE12A +0xF1B0 0xE12B +0xF1B1 0xE12C +0xF1B2 0xE12D +0xF1B3 0xE12E +0xF1B4 0xE12F +0xF1B5 0xE130 +0xF1B6 0xE131 +0xF1B7 0xE132 +0xF1B8 0xE133 +0xF1B9 0xE134 +0xF1BA 0xE135 +0xF1BB 0xE136 +0xF1BC 0xE137 +0xF1BD 0xE138 +0xF1BE 0xE139 +0xF1BF 0xE13A +0xF1C0 0xE13B +0xF1C1 0xE13C +0xF1C2 0xE13D +0xF1C3 0xE13E +0xF1C4 0xE13F +0xF1C5 0xE140 +0xF1C6 0xE141 +0xF1C7 0xE142 +0xF1C8 0xE143 +0xF1C9 0xE144 +0xF1CA 0xE145 +0xF1CB 0xE146 +0xF1CC 0xE147 +0xF1CD 0xE148 +0xF1CE 0xE149 +0xF1CF 0xE14A +0xF1D0 0xE14B +0xF1D1 0xE14C +0xF1D2 0xE14D +0xF1D3 0xE14E +0xF1D4 0xE14F +0xF1D5 0xE150 +0xF1D6 0xE151 +0xF1D7 0xE152 +0xF1D8 0xE153 +0xF1D9 0xE154 +0xF1DA 0xE155 +0xF1DB 0xE156 +0xF1DC 0xE157 +0xF1DD 0xE158 +0xF1DE 0xE159 +0xF1DF 0xE15A +0xF1E0 0xE15B +0xF1E1 0xE15C +0xF1E2 0xE15D +0xF1E3 0xE15E +0xF1E4 0xE15F +0xF1E5 0xE160 +0xF1E6 0xE161 +0xF1E7 0xE162 +0xF1E8 0xE163 +0xF1E9 0xE164 +0xF1EA 0xE165 +0xF1EB 0xE166 +0xF1EC 0xE167 +0xF1ED 0xE168 +0xF1EE 0xE169 +0xF1EF 0xE16A +0xF1F0 0xE16B +0xF1F1 0xE16C +0xF1F2 0xE16D +0xF1F3 0xE16E +0xF1F4 0xE16F +0xF1F5 0xE170 +0xF1F6 0xE171 +0xF1F7 0xE172 +0xF1F8 0xE173 +0xF1F9 0xE174 +0xF1FA 0xE175 +0xF1FB 0xE176 +0xF1FC 0xE177 +0xF240 0xE178 +0xF241 0xE179 +0xF242 0xE17A +0xF243 0xE17B +0xF244 0xE17C +0xF245 0xE17D +0xF246 0xE17E +0xF247 0xE17F +0xF248 0xE180 +0xF249 0xE181 +0xF24A 0xE182 +0xF24B 0xE183 +0xF24C 0xE184 +0xF24D 0xE185 +0xF24E 0xE186 +0xF24F 0xE187 +0xF250 0xE188 +0xF251 0xE189 +0xF252 0xE18A +0xF253 0xE18B +0xF254 0xE18C +0xF255 0xE18D +0xF256 0xE18E +0xF257 0xE18F +0xF258 0xE190 +0xF259 0xE191 +0xF25A 0xE192 +0xF25B 0xE193 +0xF25C 0xE194 +0xF25D 0xE195 +0xF25E 0xE196 +0xF25F 0xE197 +0xF260 0xE198 +0xF261 0xE199 +0xF262 0xE19A +0xF263 0xE19B +0xF264 0xE19C +0xF265 0xE19D +0xF266 0xE19E +0xF267 0xE19F +0xF268 0xE1A0 +0xF269 0xE1A1 +0xF26A 0xE1A2 +0xF26B 0xE1A3 +0xF26C 0xE1A4 +0xF26D 0xE1A5 +0xF26E 0xE1A6 +0xF26F 0xE1A7 +0xF270 0xE1A8 +0xF271 0xE1A9 +0xF272 0xE1AA +0xF273 0xE1AB +0xF274 0xE1AC +0xF275 0xE1AD +0xF276 0xE1AE +0xF277 0xE1AF +0xF278 0xE1B0 +0xF279 0xE1B1 +0xF27A 0xE1B2 +0xF27B 0xE1B3 +0xF27C 0xE1B4 +0xF27D 0xE1B5 +0xF27E 0xE1B6 +0xF280 0xE1B7 +0xF281 0xE1B8 +0xF282 0xE1B9 +0xF283 0xE1BA +0xF284 0xE1BB +0xF285 0xE1BC +0xF286 0xE1BD +0xF287 0xE1BE +0xF288 0xE1BF +0xF289 0xE1C0 +0xF28A 0xE1C1 +0xF28B 0xE1C2 +0xF28C 0xE1C3 +0xF28D 0xE1C4 +0xF28E 0xE1C5 +0xF28F 0xE1C6 +0xF290 0xE1C7 +0xF291 0xE1C8 +0xF292 0xE1C9 +0xF293 0xE1CA +0xF294 0xE1CB +0xF295 0xE1CC +0xF296 0xE1CD +0xF297 0xE1CE +0xF298 0xE1CF +0xF299 0xE1D0 +0xF29A 0xE1D1 +0xF29B 0xE1D2 +0xF29C 0xE1D3 +0xF29D 0xE1D4 +0xF29E 0xE1D5 +0xF29F 0xE1D6 +0xF2A0 0xE1D7 +0xF2A1 0xE1D8 +0xF2A2 0xE1D9 +0xF2A3 0xE1DA +0xF2A4 0xE1DB +0xF2A5 0xE1DC +0xF2A6 0xE1DD +0xF2A7 0xE1DE +0xF2A8 0xE1DF +0xF2A9 0xE1E0 +0xF2AA 0xE1E1 +0xF2AB 0xE1E2 +0xF2AC 0xE1E3 +0xF2AD 0xE1E4 +0xF2AE 0xE1E5 +0xF2AF 0xE1E6 +0xF2B0 0xE1E7 +0xF2B1 0xE1E8 +0xF2B2 0xE1E9 +0xF2B3 0xE1EA +0xF2B4 0xE1EB +0xF2B5 0xE1EC +0xF2B6 0xE1ED +0xF2B7 0xE1EE +0xF2B8 0xE1EF +0xF2B9 0xE1F0 +0xF2BA 0xE1F1 +0xF2BB 0xE1F2 +0xF2BC 0xE1F3 +0xF2BD 0xE1F4 +0xF2BE 0xE1F5 +0xF2BF 0xE1F6 +0xF2C0 0xE1F7 +0xF2C1 0xE1F8 +0xF2C2 0xE1F9 +0xF2C3 0xE1FA +0xF2C4 0xE1FB +0xF2C5 0xE1FC +0xF2C6 0xE1FD +0xF2C7 0xE1FE +0xF2C8 0xE1FF +0xF2C9 0xE200 +0xF2CA 0xE201 +0xF2CB 0xE202 +0xF2CC 0xE203 +0xF2CD 0xE204 +0xF2CE 0xE205 +0xF2CF 0xE206 +0xF2D0 0xE207 +0xF2D1 0xE208 +0xF2D2 0xE209 +0xF2D3 0xE20A +0xF2D4 0xE20B +0xF2D5 0xE20C +0xF2D6 0xE20D +0xF2D7 0xE20E +0xF2D8 0xE20F +0xF2D9 0xE210 +0xF2DA 0xE211 +0xF2DB 0xE212 +0xF2DC 0xE213 +0xF2DD 0xE214 +0xF2DE 0xE215 +0xF2DF 0xE216 +0xF2E0 0xE217 +0xF2E1 0xE218 +0xF2E2 0xE219 +0xF2E3 0xE21A +0xF2E4 0xE21B +0xF2E5 0xE21C +0xF2E6 0xE21D +0xF2E7 0xE21E +0xF2E8 0xE21F +0xF2E9 0xE220 +0xF2EA 0xE221 +0xF2EB 0xE222 +0xF2EC 0xE223 +0xF2ED 0xE224 +0xF2EE 0xE225 +0xF2EF 0xE226 +0xF2F0 0xE227 +0xF2F1 0xE228 +0xF2F2 0xE229 +0xF2F3 0xE22A +0xF2F4 0xE22B +0xF2F5 0xE22C +0xF2F6 0xE22D +0xF2F7 0xE22E +0xF2F8 0xE22F +0xF2F9 0xE230 +0xF2FA 0xE231 +0xF2FB 0xE232 +0xF2FC 0xE233 +0xF340 0xE234 +0xF341 0xE235 +0xF342 0xE236 +0xF343 0xE237 +0xF344 0xE238 +0xF345 0xE239 +0xF346 0xE23A +0xF347 0xE23B +0xF348 0xE23C +0xF349 0xE23D +0xF34A 0xE23E +0xF34B 0xE23F +0xF34C 0xE240 +0xF34D 0xE241 +0xF34E 0xE242 +0xF34F 0xE243 +0xF350 0xE244 +0xF351 0xE245 +0xF352 0xE246 +0xF353 0xE247 +0xF354 0xE248 +0xF355 0xE249 +0xF356 0xE24A +0xF357 0xE24B +0xF358 0xE24C +0xF359 0xE24D +0xF35A 0xE24E +0xF35B 0xE24F +0xF35C 0xE250 +0xF35D 0xE251 +0xF35E 0xE252 +0xF35F 0xE253 +0xF360 0xE254 +0xF361 0xE255 +0xF362 0xE256 +0xF363 0xE257 +0xF364 0xE258 +0xF365 0xE259 +0xF366 0xE25A +0xF367 0xE25B +0xF368 0xE25C +0xF369 0xE25D +0xF36A 0xE25E +0xF36B 0xE25F +0xF36C 0xE260 +0xF36D 0xE261 +0xF36E 0xE262 +0xF36F 0xE263 +0xF370 0xE264 +0xF371 0xE265 +0xF372 0xE266 +0xF373 0xE267 +0xF374 0xE268 +0xF375 0xE269 +0xF376 0xE26A +0xF377 0xE26B +0xF378 0xE26C +0xF379 0xE26D +0xF37A 0xE26E +0xF37B 0xE26F +0xF37C 0xE270 +0xF37D 0xE271 +0xF37E 0xE272 +0xF380 0xE273 +0xF381 0xE274 +0xF382 0xE275 +0xF383 0xE276 +0xF384 0xE277 +0xF385 0xE278 +0xF386 0xE279 +0xF387 0xE27A +0xF388 0xE27B +0xF389 0xE27C +0xF38A 0xE27D +0xF38B 0xE27E +0xF38C 0xE27F +0xF38D 0xE280 +0xF38E 0xE281 +0xF38F 0xE282 +0xF390 0xE283 +0xF391 0xE284 +0xF392 0xE285 +0xF393 0xE286 +0xF394 0xE287 +0xF395 0xE288 +0xF396 0xE289 +0xF397 0xE28A +0xF398 0xE28B +0xF399 0xE28C +0xF39A 0xE28D +0xF39B 0xE28E +0xF39C 0xE28F +0xF39D 0xE290 +0xF39E 0xE291 +0xF39F 0xE292 +0xF3A0 0xE293 +0xF3A1 0xE294 +0xF3A2 0xE295 +0xF3A3 0xE296 +0xF3A4 0xE297 +0xF3A5 0xE298 +0xF3A6 0xE299 +0xF3A7 0xE29A +0xF3A8 0xE29B +0xF3A9 0xE29C +0xF3AA 0xE29D +0xF3AB 0xE29E +0xF3AC 0xE29F +0xF3AD 0xE2A0 +0xF3AE 0xE2A1 +0xF3AF 0xE2A2 +0xF3B0 0xE2A3 +0xF3B1 0xE2A4 +0xF3B2 0xE2A5 +0xF3B3 0xE2A6 +0xF3B4 0xE2A7 +0xF3B5 0xE2A8 +0xF3B6 0xE2A9 +0xF3B7 0xE2AA +0xF3B8 0xE2AB +0xF3B9 0xE2AC +0xF3BA 0xE2AD +0xF3BB 0xE2AE +0xF3BC 0xE2AF +0xF3BD 0xE2B0 +0xF3BE 0xE2B1 +0xF3BF 0xE2B2 +0xF3C0 0xE2B3 +0xF3C1 0xE2B4 +0xF3C2 0xE2B5 +0xF3C3 0xE2B6 +0xF3C4 0xE2B7 +0xF3C5 0xE2B8 +0xF3C6 0xE2B9 +0xF3C7 0xE2BA +0xF3C8 0xE2BB +0xF3C9 0xE2BC +0xF3CA 0xE2BD +0xF3CB 0xE2BE +0xF3CC 0xE2BF +0xF3CD 0xE2C0 +0xF3CE 0xE2C1 +0xF3CF 0xE2C2 +0xF3D0 0xE2C3 +0xF3D1 0xE2C4 +0xF3D2 0xE2C5 +0xF3D3 0xE2C6 +0xF3D4 0xE2C7 +0xF3D5 0xE2C8 +0xF3D6 0xE2C9 +0xF3D7 0xE2CA +0xF3D8 0xE2CB +0xF3D9 0xE2CC +0xF3DA 0xE2CD +0xF3DB 0xE2CE +0xF3DC 0xE2CF +0xF3DD 0xE2D0 +0xF3DE 0xE2D1 +0xF3DF 0xE2D2 +0xF3E0 0xE2D3 +0xF3E1 0xE2D4 +0xF3E2 0xE2D5 +0xF3E3 0xE2D6 +0xF3E4 0xE2D7 +0xF3E5 0xE2D8 +0xF3E6 0xE2D9 +0xF3E7 0xE2DA +0xF3E8 0xE2DB +0xF3E9 0xE2DC +0xF3EA 0xE2DD +0xF3EB 0xE2DE +0xF3EC 0xE2DF +0xF3ED 0xE2E0 +0xF3EE 0xE2E1 +0xF3EF 0xE2E2 +0xF3F0 0xE2E3 +0xF3F1 0xE2E4 +0xF3F2 0xE2E5 +0xF3F3 0xE2E6 +0xF3F4 0xE2E7 +0xF3F5 0xE2E8 +0xF3F6 0xE2E9 +0xF3F7 0xE2EA +0xF3F8 0xE2EB +0xF3F9 0xE2EC +0xF3FA 0xE2ED +0xF3FB 0xE2EE +0xF3FC 0xE2EF +0xF440 0xE2F0 +0xF441 0xE2F1 +0xF442 0xE2F2 +0xF443 0xE2F3 +0xF444 0xE2F4 +0xF445 0xE2F5 +0xF446 0xE2F6 +0xF447 0xE2F7 +0xF448 0xE2F8 +0xF449 0xE2F9 +0xF44A 0xE2FA +0xF44B 0xE2FB +0xF44C 0xE2FC +0xF44D 0xE2FD +0xF44E 0xE2FE +0xF44F 0xE2FF +0xF450 0xE300 +0xF451 0xE301 +0xF452 0xE302 +0xF453 0xE303 +0xF454 0xE304 +0xF455 0xE305 +0xF456 0xE306 +0xF457 0xE307 +0xF458 0xE308 +0xF459 0xE309 +0xF45A 0xE30A +0xF45B 0xE30B +0xF45C 0xE30C +0xF45D 0xE30D +0xF45E 0xE30E +0xF45F 0xE30F +0xF460 0xE310 +0xF461 0xE311 +0xF462 0xE312 +0xF463 0xE313 +0xF464 0xE314 +0xF465 0xE315 +0xF466 0xE316 +0xF467 0xE317 +0xF468 0xE318 +0xF469 0xE319 +0xF46A 0xE31A +0xF46B 0xE31B +0xF46C 0xE31C +0xF46D 0xE31D +0xF46E 0xE31E +0xF46F 0xE31F +0xF470 0xE320 +0xF471 0xE321 +0xF472 0xE322 +0xF473 0xE323 +0xF474 0xE324 +0xF475 0xE325 +0xF476 0xE326 +0xF477 0xE327 +0xF478 0xE328 +0xF479 0xE329 +0xF47A 0xE32A +0xF47B 0xE32B +0xF47C 0xE32C +0xF47D 0xE32D +0xF47E 0xE32E +0xF480 0xE32F +0xF481 0xE330 +0xF482 0xE331 +0xF483 0xE332 +0xF484 0xE333 +0xF485 0xE334 +0xF486 0xE335 +0xF487 0xE336 +0xF488 0xE337 +0xF489 0xE338 +0xF48A 0xE339 +0xF48B 0xE33A +0xF48C 0xE33B +0xF48D 0xE33C +0xF48E 0xE33D +0xF48F 0xE33E +0xF490 0xE33F +0xF491 0xE340 +0xF492 0xE341 +0xF493 0xE342 +0xF494 0xE343 +0xF495 0xE344 +0xF496 0xE345 +0xF497 0xE346 +0xF498 0xE347 +0xF499 0xE348 +0xF49A 0xE349 +0xF49B 0xE34A +0xF49C 0xE34B +0xF49D 0xE34C +0xF49E 0xE34D +0xF49F 0xE34E +0xF4A0 0xE34F +0xF4A1 0xE350 +0xF4A2 0xE351 +0xF4A3 0xE352 +0xF4A4 0xE353 +0xF4A5 0xE354 +0xF4A6 0xE355 +0xF4A7 0xE356 +0xF4A8 0xE357 +0xF4A9 0xE358 +0xF4AA 0xE359 +0xF4AB 0xE35A +0xF4AC 0xE35B +0xF4AD 0xE35C +0xF4AE 0xE35D +0xF4AF 0xE35E +0xF4B0 0xE35F +0xF4B1 0xE360 +0xF4B2 0xE361 +0xF4B3 0xE362 +0xF4B4 0xE363 +0xF4B5 0xE364 +0xF4B6 0xE365 +0xF4B7 0xE366 +0xF4B8 0xE367 +0xF4B9 0xE368 +0xF4BA 0xE369 +0xF4BB 0xE36A +0xF4BC 0xE36B +0xF4BD 0xE36C +0xF4BE 0xE36D +0xF4BF 0xE36E +0xF4C0 0xE36F +0xF4C1 0xE370 +0xF4C2 0xE371 +0xF4C3 0xE372 +0xF4C4 0xE373 +0xF4C5 0xE374 +0xF4C6 0xE375 +0xF4C7 0xE376 +0xF4C8 0xE377 +0xF4C9 0xE378 +0xF4CA 0xE379 +0xF4CB 0xE37A +0xF4CC 0xE37B +0xF4CD 0xE37C +0xF4CE 0xE37D +0xF4CF 0xE37E +0xF4D0 0xE37F +0xF4D1 0xE380 +0xF4D2 0xE381 +0xF4D3 0xE382 +0xF4D4 0xE383 +0xF4D5 0xE384 +0xF4D6 0xE385 +0xF4D7 0xE386 +0xF4D8 0xE387 +0xF4D9 0xE388 +0xF4DA 0xE389 +0xF4DB 0xE38A +0xF4DC 0xE38B +0xF4DD 0xE38C +0xF4DE 0xE38D +0xF4DF 0xE38E +0xF4E0 0xE38F +0xF4E1 0xE390 +0xF4E2 0xE391 +0xF4E3 0xE392 +0xF4E4 0xE393 +0xF4E5 0xE394 +0xF4E6 0xE395 +0xF4E7 0xE396 +0xF4E8 0xE397 +0xF4E9 0xE398 +0xF4EA 0xE399 +0xF4EB 0xE39A +0xF4EC 0xE39B +0xF4ED 0xE39C +0xF4EE 0xE39D +0xF4EF 0xE39E +0xF4F0 0xE39F +0xF4F1 0xE3A0 +0xF4F2 0xE3A1 +0xF4F3 0xE3A2 +0xF4F4 0xE3A3 +0xF4F5 0xE3A4 +0xF4F6 0xE3A5 +0xF4F7 0xE3A6 +0xF4F8 0xE3A7 +0xF4F9 0xE3A8 +0xF4FA 0xE3A9 +0xF4FB 0xE3AA +0xF4FC 0xE3AB +0xF540 0xE3AC +0xF541 0xE3AD +0xF542 0xE3AE +0xF543 0xE3AF +0xF544 0xE3B0 +0xF545 0xE3B1 +0xF546 0xE3B2 +0xF547 0xE3B3 +0xF548 0xE3B4 +0xF549 0xE3B5 +0xF54A 0xE3B6 +0xF54B 0xE3B7 +0xF54C 0xE3B8 +0xF54D 0xE3B9 +0xF54E 0xE3BA +0xF54F 0xE3BB +0xF550 0xE3BC +0xF551 0xE3BD +0xF552 0xE3BE +0xF553 0xE3BF +0xF554 0xE3C0 +0xF555 0xE3C1 +0xF556 0xE3C2 +0xF557 0xE3C3 +0xF558 0xE3C4 +0xF559 0xE3C5 +0xF55A 0xE3C6 +0xF55B 0xE3C7 +0xF55C 0xE3C8 +0xF55D 0xE3C9 +0xF55E 0xE3CA +0xF55F 0xE3CB +0xF560 0xE3CC +0xF561 0xE3CD +0xF562 0xE3CE +0xF563 0xE3CF +0xF564 0xE3D0 +0xF565 0xE3D1 +0xF566 0xE3D2 +0xF567 0xE3D3 +0xF568 0xE3D4 +0xF569 0xE3D5 +0xF56A 0xE3D6 +0xF56B 0xE3D7 +0xF56C 0xE3D8 +0xF56D 0xE3D9 +0xF56E 0xE3DA +0xF56F 0xE3DB +0xF570 0xE3DC +0xF571 0xE3DD +0xF572 0xE3DE +0xF573 0xE3DF +0xF574 0xE3E0 +0xF575 0xE3E1 +0xF576 0xE3E2 +0xF577 0xE3E3 +0xF578 0xE3E4 +0xF579 0xE3E5 +0xF57A 0xE3E6 +0xF57B 0xE3E7 +0xF57C 0xE3E8 +0xF57D 0xE3E9 +0xF57E 0xE3EA +0xF580 0xE3EB +0xF581 0xE3EC +0xF582 0xE3ED +0xF583 0xE3EE +0xF584 0xE3EF +0xF585 0xE3F0 +0xF586 0xE3F1 +0xF587 0xE3F2 +0xF588 0xE3F3 +0xF589 0xE3F4 +0xF58A 0xE3F5 +0xF58B 0xE3F6 +0xF58C 0xE3F7 +0xF58D 0xE3F8 +0xF58E 0xE3F9 +0xF58F 0xE3FA +0xF590 0xE3FB +0xF591 0xE3FC +0xF592 0xE3FD +0xF593 0xE3FE +0xF594 0xE3FF +0xF595 0xE400 +0xF596 0xE401 +0xF597 0xE402 +0xF598 0xE403 +0xF599 0xE404 +0xF59A 0xE405 +0xF59B 0xE406 +0xF59C 0xE407 +0xF59D 0xE408 +0xF59E 0xE409 +0xF59F 0xE40A +0xF5A0 0xE40B +0xF5A1 0xE40C +0xF5A2 0xE40D +0xF5A3 0xE40E +0xF5A4 0xE40F +0xF5A5 0xE410 +0xF5A6 0xE411 +0xF5A7 0xE412 +0xF5A8 0xE413 +0xF5A9 0xE414 +0xF5AA 0xE415 +0xF5AB 0xE416 +0xF5AC 0xE417 +0xF5AD 0xE418 +0xF5AE 0xE419 +0xF5AF 0xE41A +0xF5B0 0xE41B +0xF5B1 0xE41C +0xF5B2 0xE41D +0xF5B3 0xE41E +0xF5B4 0xE41F +0xF5B5 0xE420 +0xF5B6 0xE421 +0xF5B7 0xE422 +0xF5B8 0xE423 +0xF5B9 0xE424 +0xF5BA 0xE425 +0xF5BB 0xE426 +0xF5BC 0xE427 +0xF5BD 0xE428 +0xF5BE 0xE429 +0xF5BF 0xE42A +0xF5C0 0xE42B +0xF5C1 0xE42C +0xF5C2 0xE42D +0xF5C3 0xE42E +0xF5C4 0xE42F +0xF5C5 0xE430 +0xF5C6 0xE431 +0xF5C7 0xE432 +0xF5C8 0xE433 +0xF5C9 0xE434 +0xF5CA 0xE435 +0xF5CB 0xE436 +0xF5CC 0xE437 +0xF5CD 0xE438 +0xF5CE 0xE439 +0xF5CF 0xE43A +0xF5D0 0xE43B +0xF5D1 0xE43C +0xF5D2 0xE43D +0xF5D3 0xE43E +0xF5D4 0xE43F +0xF5D5 0xE440 +0xF5D6 0xE441 +0xF5D7 0xE442 +0xF5D8 0xE443 +0xF5D9 0xE444 +0xF5DA 0xE445 +0xF5DB 0xE446 +0xF5DC 0xE447 +0xF5DD 0xE448 +0xF5DE 0xE449 +0xF5DF 0xE44A +0xF5E0 0xE44B +0xF5E1 0xE44C +0xF5E2 0xE44D +0xF5E3 0xE44E +0xF5E4 0xE44F +0xF5E5 0xE450 +0xF5E6 0xE451 +0xF5E7 0xE452 +0xF5E8 0xE453 +0xF5E9 0xE454 +0xF5EA 0xE455 +0xF5EB 0xE456 +0xF5EC 0xE457 +0xF5ED 0xE458 +0xF5EE 0xE459 +0xF5EF 0xE45A +0xF5F0 0xE45B +0xF5F1 0xE45C +0xF5F2 0xE45D +0xF5F3 0xE45E +0xF5F4 0xE45F +0xF5F5 0xE460 +0xF5F6 0xE461 +0xF5F7 0xE462 +0xF5F8 0xE463 +0xF5F9 0xE464 +0xF5FA 0xE465 +0xF5FB 0xE466 +0xF5FC 0xE467 +0xF640 0xE468 +0xF641 0xE469 +0xF642 0xE46A +0xF643 0xE46B +0xF644 0xE46C +0xF645 0xE46D +0xF646 0xE46E +0xF647 0xE46F +0xF648 0xE470 +0xF649 0xE471 +0xF64A 0xE472 +0xF64B 0xE473 +0xF64C 0xE474 +0xF64D 0xE475 +0xF64E 0xE476 +0xF64F 0xE477 +0xF650 0xE478 +0xF651 0xE479 +0xF652 0xE47A +0xF653 0xE47B +0xF654 0xE47C +0xF655 0xE47D +0xF656 0xE47E +0xF657 0xE47F +0xF658 0xE480 +0xF659 0xE481 +0xF65A 0xE482 +0xF65B 0xE483 +0xF65C 0xE484 +0xF65D 0xE485 +0xF65E 0xE486 +0xF65F 0xE487 +0xF660 0xE488 +0xF661 0xE489 +0xF662 0xE48A +0xF663 0xE48B +0xF664 0xE48C +0xF665 0xE48D +0xF666 0xE48E +0xF667 0xE48F +0xF668 0xE490 +0xF669 0xE491 +0xF66A 0xE492 +0xF66B 0xE493 +0xF66C 0xE494 +0xF66D 0xE495 +0xF66E 0xE496 +0xF66F 0xE497 +0xF670 0xE498 +0xF671 0xE499 +0xF672 0xE49A +0xF673 0xE49B +0xF674 0xE49C +0xF675 0xE49D +0xF676 0xE49E +0xF677 0xE49F +0xF678 0xE4A0 +0xF679 0xE4A1 +0xF67A 0xE4A2 +0xF67B 0xE4A3 +0xF67C 0xE4A4 +0xF67D 0xE4A5 +0xF67E 0xE4A6 +0xF680 0xE4A7 +0xF681 0xE4A8 +0xF682 0xE4A9 +0xF683 0xE4AA +0xF684 0xE4AB +0xF685 0xE4AC +0xF686 0xE4AD +0xF687 0xE4AE +0xF688 0xE4AF +0xF689 0xE4B0 +0xF68A 0xE4B1 +0xF68B 0xE4B2 +0xF68C 0xE4B3 +0xF68D 0xE4B4 +0xF68E 0xE4B5 +0xF68F 0xE4B6 +0xF690 0xE4B7 +0xF691 0xE4B8 +0xF692 0xE4B9 +0xF693 0xE4BA +0xF694 0xE4BB +0xF695 0xE4BC +0xF696 0xE4BD +0xF697 0xE4BE +0xF698 0xE4BF +0xF699 0xE4C0 +0xF69A 0xE4C1 +0xF69B 0xE4C2 +0xF69C 0xE4C3 +0xF69D 0xE4C4 +0xF69E 0xE4C5 +0xF69F 0xE4C6 +0xF6A0 0xE4C7 +0xF6A1 0xE4C8 +0xF6A2 0xE4C9 +0xF6A3 0xE4CA +0xF6A4 0xE4CB +0xF6A5 0xE4CC +0xF6A6 0xE4CD +0xF6A7 0xE4CE +0xF6A8 0xE4CF +0xF6A9 0xE4D0 +0xF6AA 0xE4D1 +0xF6AB 0xE4D2 +0xF6AC 0xE4D3 +0xF6AD 0xE4D4 +0xF6AE 0xE4D5 +0xF6AF 0xE4D6 +0xF6B0 0xE4D7 +0xF6B1 0xE4D8 +0xF6B2 0xE4D9 +0xF6B3 0xE4DA +0xF6B4 0xE4DB +0xF6B5 0xE4DC +0xF6B6 0xE4DD +0xF6B7 0xE4DE +0xF6B8 0xE4DF +0xF6B9 0xE4E0 +0xF6BA 0xE4E1 +0xF6BB 0xE4E2 +0xF6BC 0xE4E3 +0xF6BD 0xE4E4 +0xF6BE 0xE4E5 +0xF6BF 0xE4E6 +0xF6C0 0xE4E7 +0xF6C1 0xE4E8 +0xF6C2 0xE4E9 +0xF6C3 0xE4EA +0xF6C4 0xE4EB +0xF6C5 0xE4EC +0xF6C6 0xE4ED +0xF6C7 0xE4EE +0xF6C8 0xE4EF +0xF6C9 0xE4F0 +0xF6CA 0xE4F1 +0xF6CB 0xE4F2 +0xF6CC 0xE4F3 +0xF6CD 0xE4F4 +0xF6CE 0xE4F5 +0xF6CF 0xE4F6 +0xF6D0 0xE4F7 +0xF6D1 0xE4F8 +0xF6D2 0xE4F9 +0xF6D3 0xE4FA +0xF6D4 0xE4FB +0xF6D5 0xE4FC +0xF6D6 0xE4FD +0xF6D7 0xE4FE +0xF6D8 0xE4FF +0xF6D9 0xE500 +0xF6DA 0xE501 +0xF6DB 0xE502 +0xF6DC 0xE503 +0xF6DD 0xE504 +0xF6DE 0xE505 +0xF6DF 0xE506 +0xF6E0 0xE507 +0xF6E1 0xE508 +0xF6E2 0xE509 +0xF6E3 0xE50A +0xF6E4 0xE50B +0xF6E5 0xE50C +0xF6E6 0xE50D +0xF6E7 0xE50E +0xF6E8 0xE50F +0xF6E9 0xE510 +0xF6EA 0xE511 +0xF6EB 0xE512 +0xF6EC 0xE513 +0xF6ED 0xE514 +0xF6EE 0xE515 +0xF6EF 0xE516 +0xF6F0 0xE517 +0xF6F1 0xE518 +0xF6F2 0xE519 +0xF6F3 0xE51A +0xF6F4 0xE51B +0xF6F5 0xE51C +0xF6F6 0xE51D +0xF6F7 0xE51E +0xF6F8 0xE51F +0xF6F9 0xE520 +0xF6FA 0xE521 +0xF6FB 0xE522 +0xF6FC 0xE523 +0xF740 0xE524 +0xF741 0xE525 +0xF742 0xE526 +0xF743 0xE527 +0xF744 0xE528 +0xF745 0xE529 +0xF746 0xE52A +0xF747 0xE52B +0xF748 0xE52C +0xF749 0xE52D +0xF74A 0xE52E +0xF74B 0xE52F +0xF74C 0xE530 +0xF74D 0xE531 +0xF74E 0xE532 +0xF74F 0xE533 +0xF750 0xE534 +0xF751 0xE535 +0xF752 0xE536 +0xF753 0xE537 +0xF754 0xE538 +0xF755 0xE539 +0xF756 0xE53A +0xF757 0xE53B +0xF758 0xE53C +0xF759 0xE53D +0xF75A 0xE53E +0xF75B 0xE53F +0xF75C 0xE540 +0xF75D 0xE541 +0xF75E 0xE542 +0xF75F 0xE543 +0xF760 0xE544 +0xF761 0xE545 +0xF762 0xE546 +0xF763 0xE547 +0xF764 0xE548 +0xF765 0xE549 +0xF766 0xE54A +0xF767 0xE54B +0xF768 0xE54C +0xF769 0xE54D +0xF76A 0xE54E +0xF76B 0xE54F +0xF76C 0xE550 +0xF76D 0xE551 +0xF76E 0xE552 +0xF76F 0xE553 +0xF770 0xE554 +0xF771 0xE555 +0xF772 0xE556 +0xF773 0xE557 +0xF774 0xE558 +0xF775 0xE559 +0xF776 0xE55A +0xF777 0xE55B +0xF778 0xE55C +0xF779 0xE55D +0xF77A 0xE55E +0xF77B 0xE55F +0xF77C 0xE560 +0xF77D 0xE561 +0xF77E 0xE562 +0xF780 0xE563 +0xF781 0xE564 +0xF782 0xE565 +0xF783 0xE566 +0xF784 0xE567 +0xF785 0xE568 +0xF786 0xE569 +0xF787 0xE56A +0xF788 0xE56B +0xF789 0xE56C +0xF78A 0xE56D +0xF78B 0xE56E +0xF78C 0xE56F +0xF78D 0xE570 +0xF78E 0xE571 +0xF78F 0xE572 +0xF790 0xE573 +0xF791 0xE574 +0xF792 0xE575 +0xF793 0xE576 +0xF794 0xE577 +0xF795 0xE578 +0xF796 0xE579 +0xF797 0xE57A +0xF798 0xE57B +0xF799 0xE57C +0xF79A 0xE57D +0xF79B 0xE57E +0xF79C 0xE57F +0xF79D 0xE580 +0xF79E 0xE581 +0xF79F 0xE582 +0xF7A0 0xE583 +0xF7A1 0xE584 +0xF7A2 0xE585 +0xF7A3 0xE586 +0xF7A4 0xE587 +0xF7A5 0xE588 +0xF7A6 0xE589 +0xF7A7 0xE58A +0xF7A8 0xE58B +0xF7A9 0xE58C +0xF7AA 0xE58D +0xF7AB 0xE58E +0xF7AC 0xE58F +0xF7AD 0xE590 +0xF7AE 0xE591 +0xF7AF 0xE592 +0xF7B0 0xE593 +0xF7B1 0xE594 +0xF7B2 0xE595 +0xF7B3 0xE596 +0xF7B4 0xE597 +0xF7B5 0xE598 +0xF7B6 0xE599 +0xF7B7 0xE59A +0xF7B8 0xE59B +0xF7B9 0xE59C +0xF7BA 0xE59D +0xF7BB 0xE59E +0xF7BC 0xE59F +0xF7BD 0xE5A0 +0xF7BE 0xE5A1 +0xF7BF 0xE5A2 +0xF7C0 0xE5A3 +0xF7C1 0xE5A4 +0xF7C2 0xE5A5 +0xF7C3 0xE5A6 +0xF7C4 0xE5A7 +0xF7C5 0xE5A8 +0xF7C6 0xE5A9 +0xF7C7 0xE5AA +0xF7C8 0xE5AB +0xF7C9 0xE5AC +0xF7CA 0xE5AD +0xF7CB 0xE5AE +0xF7CC 0xE5AF +0xF7CD 0xE5B0 +0xF7CE 0xE5B1 +0xF7CF 0xE5B2 +0xF7D0 0xE5B3 +0xF7D1 0xE5B4 +0xF7D2 0xE5B5 +0xF7D3 0xE5B6 +0xF7D4 0xE5B7 +0xF7D5 0xE5B8 +0xF7D6 0xE5B9 +0xF7D7 0xE5BA +0xF7D8 0xE5BB +0xF7D9 0xE5BC +0xF7DA 0xE5BD +0xF7DB 0xE5BE +0xF7DC 0xE5BF +0xF7DD 0xE5C0 +0xF7DE 0xE5C1 +0xF7DF 0xE5C2 +0xF7E0 0xE5C3 +0xF7E1 0xE5C4 +0xF7E2 0xE5C5 +0xF7E3 0xE5C6 +0xF7E4 0xE5C7 +0xF7E5 0xE5C8 +0xF7E6 0xE5C9 +0xF7E7 0xE5CA +0xF7E8 0xE5CB +0xF7E9 0xE5CC +0xF7EA 0xE5CD +0xF7EB 0xE5CE +0xF7EC 0xE5CF +0xF7ED 0xE5D0 +0xF7EE 0xE5D1 +0xF7EF 0xE5D2 +0xF7F0 0xE5D3 +0xF7F1 0xE5D4 +0xF7F2 0xE5D5 +0xF7F3 0xE5D6 +0xF7F4 0xE5D7 +0xF7F5 0xE5D8 +0xF7F6 0xE5D9 +0xF7F7 0xE5DA +0xF7F8 0xE5DB +0xF7F9 0xE5DC +0xF7FA 0xE5DD +0xF7FB 0xE5DE +0xF7FC 0xE5DF +0xF840 0xE5E0 +0xF841 0xE5E1 +0xF842 0xE5E2 +0xF843 0xE5E3 +0xF844 0xE5E4 +0xF845 0xE5E5 +0xF846 0xE5E6 +0xF847 0xE5E7 +0xF848 0xE5E8 +0xF849 0xE5E9 +0xF84A 0xE5EA +0xF84B 0xE5EB +0xF84C 0xE5EC +0xF84D 0xE5ED +0xF84E 0xE5EE +0xF84F 0xE5EF +0xF850 0xE5F0 +0xF851 0xE5F1 +0xF852 0xE5F2 +0xF853 0xE5F3 +0xF854 0xE5F4 +0xF855 0xE5F5 +0xF856 0xE5F6 +0xF857 0xE5F7 +0xF858 0xE5F8 +0xF859 0xE5F9 +0xF85A 0xE5FA +0xF85B 0xE5FB +0xF85C 0xE5FC +0xF85D 0xE5FD +0xF85E 0xE5FE +0xF85F 0xE5FF +0xF860 0xE600 +0xF861 0xE601 +0xF862 0xE602 +0xF863 0xE603 +0xF864 0xE604 +0xF865 0xE605 +0xF866 0xE606 +0xF867 0xE607 +0xF868 0xE608 +0xF869 0xE609 +0xF86A 0xE60A +0xF86B 0xE60B +0xF86C 0xE60C +0xF86D 0xE60D +0xF86E 0xE60E +0xF86F 0xE60F +0xF870 0xE610 +0xF871 0xE611 +0xF872 0xE612 +0xF873 0xE613 +0xF874 0xE614 +0xF875 0xE615 +0xF876 0xE616 +0xF877 0xE617 +0xF878 0xE618 +0xF879 0xE619 +0xF87A 0xE61A +0xF87B 0xE61B +0xF87C 0xE61C +0xF87D 0xE61D +0xF87E 0xE61E +0xF880 0xE61F +0xF881 0xE620 +0xF882 0xE621 +0xF883 0xE622 +0xF884 0xE623 +0xF885 0xE624 +0xF886 0xE625 +0xF887 0xE626 +0xF888 0xE627 +0xF889 0xE628 +0xF88A 0xE629 +0xF88B 0xE62A +0xF88C 0xE62B +0xF88D 0xE62C +0xF88E 0xE62D +0xF88F 0xE62E +0xF890 0xE62F +0xF891 0xE630 +0xF892 0xE631 +0xF893 0xE632 +0xF894 0xE633 +0xF895 0xE634 +0xF896 0xE635 +0xF897 0xE636 +0xF898 0xE637 +0xF899 0xE638 +0xF89A 0xE639 +0xF89B 0xE63A +0xF89C 0xE63B +0xF89D 0xE63C +0xF89E 0xE63D +0xF89F 0xE63E +0xF8A0 0xE63F +0xF8A1 0xE640 +0xF8A2 0xE641 +0xF8A3 0xE642 +0xF8A4 0xE643 +0xF8A5 0xE644 +0xF8A6 0xE645 +0xF8A7 0xE646 +0xF8A8 0xE647 +0xF8A9 0xE648 +0xF8AA 0xE649 +0xF8AB 0xE64A +0xF8AC 0xE64B +0xF8AD 0xE64C +0xF8AE 0xE64D +0xF8AF 0xE64E +0xF8B0 0xE64F +0xF8B1 0xE650 +0xF8B2 0xE651 +0xF8B3 0xE652 +0xF8B4 0xE653 +0xF8B5 0xE654 +0xF8B6 0xE655 +0xF8B7 0xE656 +0xF8B8 0xE657 +0xF8B9 0xE658 +0xF8BA 0xE659 +0xF8BB 0xE65A +0xF8BC 0xE65B +0xF8BD 0xE65C +0xF8BE 0xE65D +0xF8BF 0xE65E +0xF8C0 0xE65F +0xF8C1 0xE660 +0xF8C2 0xE661 +0xF8C3 0xE662 +0xF8C4 0xE663 +0xF8C5 0xE664 +0xF8C6 0xE665 +0xF8C7 0xE666 +0xF8C8 0xE667 +0xF8C9 0xE668 +0xF8CA 0xE669 +0xF8CB 0xE66A +0xF8CC 0xE66B +0xF8CD 0xE66C +0xF8CE 0xE66D +0xF8CF 0xE66E +0xF8D0 0xE66F +0xF8D1 0xE670 +0xF8D2 0xE671 +0xF8D3 0xE672 +0xF8D4 0xE673 +0xF8D5 0xE674 +0xF8D6 0xE675 +0xF8D7 0xE676 +0xF8D8 0xE677 +0xF8D9 0xE678 +0xF8DA 0xE679 +0xF8DB 0xE67A +0xF8DC 0xE67B +0xF8DD 0xE67C +0xF8DE 0xE67D +0xF8DF 0xE67E +0xF8E0 0xE67F +0xF8E1 0xE680 +0xF8E2 0xE681 +0xF8E3 0xE682 +0xF8E4 0xE683 +0xF8E5 0xE684 +0xF8E6 0xE685 +0xF8E7 0xE686 +0xF8E8 0xE687 +0xF8E9 0xE688 +0xF8EA 0xE689 +0xF8EB 0xE68A +0xF8EC 0xE68B +0xF8ED 0xE68C +0xF8EE 0xE68D +0xF8EF 0xE68E +0xF8F0 0xE68F +0xF8F1 0xE690 +0xF8F2 0xE691 +0xF8F3 0xE692 +0xF8F4 0xE693 +0xF8F5 0xE694 +0xF8F6 0xE695 +0xF8F7 0xE696 +0xF8F8 0xE697 +0xF8F9 0xE698 +0xF8FA 0xE699 +0xF8FB 0xE69A +0xF8FC 0xE69B +0xF940 0xE69C +0xF941 0xE69D +0xF942 0xE69E +0xF943 0xE69F +0xF944 0xE6A0 +0xF945 0xE6A1 +0xF946 0xE6A2 +0xF947 0xE6A3 +0xF948 0xE6A4 +0xF949 0xE6A5 +0xF94A 0xE6A6 +0xF94B 0xE6A7 +0xF94C 0xE6A8 +0xF94D 0xE6A9 +0xF94E 0xE6AA +0xF94F 0xE6AB +0xF950 0xE6AC +0xF951 0xE6AD +0xF952 0xE6AE +0xF953 0xE6AF +0xF954 0xE6B0 +0xF955 0xE6B1 +0xF956 0xE6B2 +0xF957 0xE6B3 +0xF958 0xE6B4 +0xF959 0xE6B5 +0xF95A 0xE6B6 +0xF95B 0xE6B7 +0xF95C 0xE6B8 +0xF95D 0xE6B9 +0xF95E 0xE6BA +0xF95F 0xE6BB +0xF960 0xE6BC +0xF961 0xE6BD +0xF962 0xE6BE +0xF963 0xE6BF +0xF964 0xE6C0 +0xF965 0xE6C1 +0xF966 0xE6C2 +0xF967 0xE6C3 +0xF968 0xE6C4 +0xF969 0xE6C5 +0xF96A 0xE6C6 +0xF96B 0xE6C7 +0xF96C 0xE6C8 +0xF96D 0xE6C9 +0xF96E 0xE6CA +0xF96F 0xE6CB +0xF970 0xE6CC +0xF971 0xE6CD +0xF972 0xE6CE +0xF973 0xE6CF +0xF974 0xE6D0 +0xF975 0xE6D1 +0xF976 0xE6D2 +0xF977 0xE6D3 +0xF978 0xE6D4 +0xF979 0xE6D5 +0xF97A 0xE6D6 +0xF97B 0xE6D7 +0xF97C 0xE6D8 +0xF97D 0xE6D9 +0xF97E 0xE6DA +0xF980 0xE6DB +0xF981 0xE6DC +0xF982 0xE6DD +0xF983 0xE6DE +0xF984 0xE6DF +0xF985 0xE6E0 +0xF986 0xE6E1 +0xF987 0xE6E2 +0xF988 0xE6E3 +0xF989 0xE6E4 +0xF98A 0xE6E5 +0xF98B 0xE6E6 +0xF98C 0xE6E7 +0xF98D 0xE6E8 +0xF98E 0xE6E9 +0xF98F 0xE6EA +0xF990 0xE6EB +0xF991 0xE6EC +0xF992 0xE6ED +0xF993 0xE6EE +0xF994 0xE6EF +0xF995 0xE6F0 +0xF996 0xE6F1 +0xF997 0xE6F2 +0xF998 0xE6F3 +0xF999 0xE6F4 +0xF99A 0xE6F5 +0xF99B 0xE6F6 +0xF99C 0xE6F7 +0xF99D 0xE6F8 +0xF99E 0xE6F9 +0xF99F 0xE6FA +0xF9A0 0xE6FB +0xF9A1 0xE6FC +0xF9A2 0xE6FD +0xF9A3 0xE6FE +0xF9A4 0xE6FF +0xF9A5 0xE700 +0xF9A6 0xE701 +0xF9A7 0xE702 +0xF9A8 0xE703 +0xF9A9 0xE704 +0xF9AA 0xE705 +0xF9AB 0xE706 +0xF9AC 0xE707 +0xF9AD 0xE708 +0xF9AE 0xE709 +0xF9AF 0xE70A +0xF9B0 0xE70B +0xF9B1 0xE70C +0xF9B2 0xE70D +0xF9B3 0xE70E +0xF9B4 0xE70F +0xF9B5 0xE710 +0xF9B6 0xE711 +0xF9B7 0xE712 +0xF9B8 0xE713 +0xF9B9 0xE714 +0xF9BA 0xE715 +0xF9BB 0xE716 +0xF9BC 0xE717 +0xF9BD 0xE718 +0xF9BE 0xE719 +0xF9BF 0xE71A +0xF9C0 0xE71B +0xF9C1 0xE71C +0xF9C2 0xE71D +0xF9C3 0xE71E +0xF9C4 0xE71F +0xF9C5 0xE720 +0xF9C6 0xE721 +0xF9C7 0xE722 +0xF9C8 0xE723 +0xF9C9 0xE724 +0xF9CA 0xE725 +0xF9CB 0xE726 +0xF9CC 0xE727 +0xF9CD 0xE728 +0xF9CE 0xE729 +0xF9CF 0xE72A +0xF9D0 0xE72B +0xF9D1 0xE72C +0xF9D2 0xE72D +0xF9D3 0xE72E +0xF9D4 0xE72F +0xF9D5 0xE730 +0xF9D6 0xE731 +0xF9D7 0xE732 +0xF9D8 0xE733 +0xF9D9 0xE734 +0xF9DA 0xE735 +0xF9DB 0xE736 +0xF9DC 0xE737 +0xF9DD 0xE738 +0xF9DE 0xE739 +0xF9DF 0xE73A +0xF9E0 0xE73B +0xF9E1 0xE73C +0xF9E2 0xE73D +0xF9E3 0xE73E +0xF9E4 0xE73F +0xF9E5 0xE740 +0xF9E6 0xE741 +0xF9E7 0xE742 +0xF9E8 0xE743 +0xF9E9 0xE744 +0xF9EA 0xE745 +0xF9EB 0xE746 +0xF9EC 0xE747 +0xF9ED 0xE748 +0xF9EE 0xE749 +0xF9EF 0xE74A +0xF9F0 0xE74B +0xF9F1 0xE74C +0xF9F2 0xE74D +0xF9F3 0xE74E +0xF9F4 0xE74F +0xF9F5 0xE750 +0xF9F6 0xE751 +0xF9F7 0xE752 +0xF9F8 0xE753 +0xF9F9 0xE754 +0xF9FA 0xE755 +0xF9FB 0xE756 +0xF9FC 0xE757 +0xFA40 0x2170 +0xFA41 0x2171 +0xFA42 0x2172 +0xFA43 0x2173 +0xFA44 0x2174 +0xFA45 0x2175 +0xFA46 0x2176 +0xFA47 0x2177 +0xFA48 0x2178 +0xFA49 0x2179 +0xFA4A 0x2160 +0xFA4B 0x2161 +0xFA4C 0x2162 +0xFA4D 0x2163 +0xFA4E 0x2164 +0xFA4F 0x2165 +0xFA50 0x2166 +0xFA51 0x2167 +0xFA52 0x2168 +0xFA53 0x2169 +0xFA54 0xFFE2 +0xFA55 0xFFE4 +0xFA56 0xFF07 +0xFA57 0xFF02 +0xFA58 0x3231 +0xFA59 0x2116 +0xFA5A 0x2121 +0xFA5B 0x2235 +0xFA5C 0x7E8A +0xFA5D 0x891C +0xFA5E 0x9348 +0xFA5F 0x9288 +0xFA60 0x84DC +0xFA61 0x4FC9 +0xFA62 0x70BB +0xFA63 0x6631 +0xFA64 0x68C8 +0xFA65 0x92F9 +0xFA66 0x66FB +0xFA67 0x5F45 +0xFA68 0x4E28 +0xFA69 0x4EE1 +0xFA6A 0x4EFC +0xFA6B 0x4F00 +0xFA6C 0x4F03 +0xFA6D 0x4F39 +0xFA6E 0x4F56 +0xFA6F 0x4F92 +0xFA70 0x4F8A +0xFA71 0x4F9A +0xFA72 0x4F94 +0xFA73 0x4FCD +0xFA74 0x5040 +0xFA75 0x5022 +0xFA76 0x4FFF +0xFA77 0x501E +0xFA78 0x5046 +0xFA79 0x5070 +0xFA7A 0x5042 +0xFA7B 0x5094 +0xFA7C 0x50F4 +0xFA7D 0x50D8 +0xFA7E 0x514A +0xFA80 0x5164 +0xFA81 0x519D +0xFA82 0x51BE +0xFA83 0x51EC +0xFA84 0x5215 +0xFA85 0x529C +0xFA86 0x52A6 +0xFA87 0x52C0 +0xFA88 0x52DB +0xFA89 0x5300 +0xFA8A 0x5307 +0xFA8B 0x5324 +0xFA8C 0x5372 +0xFA8D 0x5393 +0xFA8E 0x53B2 +0xFA8F 0x53DD +0xFA90 0xFA0E +0xFA91 0x549C +0xFA92 0x548A +0xFA93 0x54A9 +0xFA94 0x54FF +0xFA95 0x5586 +0xFA96 0x5759 +0xFA97 0x5765 +0xFA98 0x57AC +0xFA99 0x57C8 +0xFA9A 0x57C7 +0xFA9B 0xFA0F +0xFA9C 0xFA10 +0xFA9D 0x589E +0xFA9E 0x58B2 +0xFA9F 0x590B +0xFAA0 0x5953 +0xFAA1 0x595B +0xFAA2 0x595D +0xFAA3 0x5963 +0xFAA4 0x59A4 +0xFAA5 0x59BA +0xFAA6 0x5B56 +0xFAA7 0x5BC0 +0xFAA8 0x752F +0xFAA9 0x5BD8 +0xFAAA 0x5BEC +0xFAAB 0x5C1E +0xFAAC 0x5CA6 +0xFAAD 0x5CBA +0xFAAE 0x5CF5 +0xFAAF 0x5D27 +0xFAB0 0x5D53 +0xFAB1 0xFA11 +0xFAB2 0x5D42 +0xFAB3 0x5D6D +0xFAB4 0x5DB8 +0xFAB5 0x5DB9 +0xFAB6 0x5DD0 +0xFAB7 0x5F21 +0xFAB8 0x5F34 +0xFAB9 0x5F67 +0xFABA 0x5FB7 +0xFABB 0x5FDE +0xFABC 0x605D +0xFABD 0x6085 +0xFABE 0x608A +0xFABF 0x60DE +0xFAC0 0x60D5 +0xFAC1 0x6120 +0xFAC2 0x60F2 +0xFAC3 0x6111 +0xFAC4 0x6137 +0xFAC5 0x6130 +0xFAC6 0x6198 +0xFAC7 0x6213 +0xFAC8 0x62A6 +0xFAC9 0x63F5 +0xFACA 0x6460 +0xFACB 0x649D +0xFACC 0x64CE +0xFACD 0x654E +0xFACE 0x6600 +0xFACF 0x6615 +0xFAD0 0x663B +0xFAD1 0x6609 +0xFAD2 0x662E +0xFAD3 0x661E +0xFAD4 0x6624 +0xFAD5 0x6665 +0xFAD6 0x6657 +0xFAD7 0x6659 +0xFAD8 0xFA12 +0xFAD9 0x6673 +0xFADA 0x6699 +0xFADB 0x66A0 +0xFADC 0x66B2 +0xFADD 0x66BF +0xFADE 0x66FA +0xFADF 0x670E +0xFAE0 0xF929 +0xFAE1 0x6766 +0xFAE2 0x67BB +0xFAE3 0x6852 +0xFAE4 0x67C0 +0xFAE5 0x6801 +0xFAE6 0x6844 +0xFAE7 0x68CF +0xFAE8 0xFA13 +0xFAE9 0x6968 +0xFAEA 0xFA14 +0xFAEB 0x6998 +0xFAEC 0x69E2 +0xFAED 0x6A30 +0xFAEE 0x6A6B +0xFAEF 0x6A46 +0xFAF0 0x6A73 +0xFAF1 0x6A7E +0xFAF2 0x6AE2 +0xFAF3 0x6AE4 +0xFAF4 0x6BD6 +0xFAF5 0x6C3F +0xFAF6 0x6C5C +0xFAF7 0x6C86 +0xFAF8 0x6C6F +0xFAF9 0x6CDA +0xFAFA 0x6D04 +0xFAFB 0x6D87 +0xFAFC 0x6D6F +0xFB40 0x6D96 +0xFB41 0x6DAC +0xFB42 0x6DCF +0xFB43 0x6DF8 +0xFB44 0x6DF2 +0xFB45 0x6DFC +0xFB46 0x6E39 +0xFB47 0x6E5C +0xFB48 0x6E27 +0xFB49 0x6E3C +0xFB4A 0x6EBF +0xFB4B 0x6F88 +0xFB4C 0x6FB5 +0xFB4D 0x6FF5 +0xFB4E 0x7005 +0xFB4F 0x7007 +0xFB50 0x7028 +0xFB51 0x7085 +0xFB52 0x70AB +0xFB53 0x710F +0xFB54 0x7104 +0xFB55 0x715C +0xFB56 0x7146 +0xFB57 0x7147 +0xFB58 0xFA15 +0xFB59 0x71C1 +0xFB5A 0x71FE +0xFB5B 0x72B1 +0xFB5C 0x72BE +0xFB5D 0x7324 +0xFB5E 0xFA16 +0xFB5F 0x7377 +0xFB60 0x73BD +0xFB61 0x73C9 +0xFB62 0x73D6 +0xFB63 0x73E3 +0xFB64 0x73D2 +0xFB65 0x7407 +0xFB66 0x73F5 +0xFB67 0x7426 +0xFB68 0x742A +0xFB69 0x7429 +0xFB6A 0x742E +0xFB6B 0x7462 +0xFB6C 0x7489 +0xFB6D 0x749F +0xFB6E 0x7501 +0xFB6F 0x756F +0xFB70 0x7682 +0xFB71 0x769C +0xFB72 0x769E +0xFB73 0x769B +0xFB74 0x76A6 +0xFB75 0xFA17 +0xFB76 0x7746 +0xFB77 0x52AF +0xFB78 0x7821 +0xFB79 0x784E +0xFB7A 0x7864 +0xFB7B 0x787A +0xFB7C 0x7930 +0xFB7D 0xFA18 +0xFB7E 0xFA19 +0xFB80 0xFA1A +0xFB81 0x7994 +0xFB82 0xFA1B +0xFB83 0x799B +0xFB84 0x7AD1 +0xFB85 0x7AE7 +0xFB86 0xFA1C +0xFB87 0x7AEB +0xFB88 0x7B9E +0xFB89 0xFA1D +0xFB8A 0x7D48 +0xFB8B 0x7D5C +0xFB8C 0x7DB7 +0xFB8D 0x7DA0 +0xFB8E 0x7DD6 +0xFB8F 0x7E52 +0xFB90 0x7F47 +0xFB91 0x7FA1 +0xFB92 0xFA1E +0xFB93 0x8301 +0xFB94 0x8362 +0xFB95 0x837F +0xFB96 0x83C7 +0xFB97 0x83F6 +0xFB98 0x8448 +0xFB99 0x84B4 +0xFB9A 0x8553 +0xFB9B 0x8559 +0xFB9C 0x856B +0xFB9D 0xFA1F +0xFB9E 0x85B0 +0xFB9F 0xFA20 +0xFBA0 0xFA21 +0xFBA1 0x8807 +0xFBA2 0x88F5 +0xFBA3 0x8A12 +0xFBA4 0x8A37 +0xFBA5 0x8A79 +0xFBA6 0x8AA7 +0xFBA7 0x8ABE +0xFBA8 0x8ADF +0xFBA9 0xFA22 +0xFBAA 0x8AF6 +0xFBAB 0x8B53 +0xFBAC 0x8B7F +0xFBAD 0x8CF0 +0xFBAE 0x8CF4 +0xFBAF 0x8D12 +0xFBB0 0x8D76 +0xFBB1 0xFA23 +0xFBB2 0x8ECF +0xFBB3 0xFA24 +0xFBB4 0xFA25 +0xFBB5 0x9067 +0xFBB6 0x90DE +0xFBB7 0xFA26 +0xFBB8 0x9115 +0xFBB9 0x9127 +0xFBBA 0x91DA +0xFBBB 0x91D7 +0xFBBC 0x91DE +0xFBBD 0x91ED +0xFBBE 0x91EE +0xFBBF 0x91E4 +0xFBC0 0x91E5 +0xFBC1 0x9206 +0xFBC2 0x9210 +0xFBC3 0x920A +0xFBC4 0x923A +0xFBC5 0x9240 +0xFBC6 0x923C +0xFBC7 0x924E +0xFBC8 0x9259 +0xFBC9 0x9251 +0xFBCA 0x9239 +0xFBCB 0x9267 +0xFBCC 0x92A7 +0xFBCD 0x9277 +0xFBCE 0x9278 +0xFBCF 0x92E7 +0xFBD0 0x92D7 +0xFBD1 0x92D9 +0xFBD2 0x92D0 +0xFBD3 0xFA27 +0xFBD4 0x92D5 +0xFBD5 0x92E0 +0xFBD6 0x92D3 +0xFBD7 0x9325 +0xFBD8 0x9321 +0xFBD9 0x92FB +0xFBDA 0xFA28 +0xFBDB 0x931E +0xFBDC 0x92FF +0xFBDD 0x931D +0xFBDE 0x9302 +0xFBDF 0x9370 +0xFBE0 0x9357 +0xFBE1 0x93A4 +0xFBE2 0x93C6 +0xFBE3 0x93DE +0xFBE4 0x93F8 +0xFBE5 0x9431 +0xFBE6 0x9445 +0xFBE7 0x9448 +0xFBE8 0x9592 +0xFBE9 0xF9DC +0xFBEA 0xFA29 +0xFBEB 0x969D +0xFBEC 0x96AF +0xFBED 0x9733 +0xFBEE 0x973B +0xFBEF 0x9743 +0xFBF0 0x974D +0xFBF1 0x974F +0xFBF2 0x9751 +0xFBF3 0x9755 +0xFBF4 0x9857 +0xFBF5 0x9865 +0xFBF6 0xFA2A +0xFBF7 0xFA2B +0xFBF8 0x9927 +0xFBF9 0xFA2C +0xFBFA 0x999E +0xFBFB 0x9A4E +0xFBFC 0x9AD9 +0xFC40 0x9ADC +0xFC41 0x9B75 +0xFC42 0x9B72 +0xFC43 0x9B8F +0xFC44 0x9BB1 +0xFC45 0x9BBB +0xFC46 0x9C00 +0xFC47 0x9D70 +0xFC48 0x9D6B +0xFC49 0xFA2D +0xFC4A 0x9E19 +0xFC4B 0x9ED1 diff --git a/3rdPartner/libiconv/tests/CP936.TXT b/3rdPartner/libiconv/tests/CP936.TXT new file mode 100644 index 0000000..9c11aee --- /dev/null +++ b/3rdPartner/libiconv/tests/CP936.TXT @@ -0,0 +1,23334 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x20AC +0x8140 0x4E02 +0x8141 0x4E04 +0x8142 0x4E05 +0x8143 0x4E06 +0x8144 0x4E0F +0x8145 0x4E12 +0x8146 0x4E17 +0x8147 0x4E1F +0x8148 0x4E20 +0x8149 0x4E21 +0x814A 0x4E23 +0x814B 0x4E26 +0x814C 0x4E29 +0x814D 0x4E2E +0x814E 0x4E2F +0x814F 0x4E31 +0x8150 0x4E33 +0x8151 0x4E35 +0x8152 0x4E37 +0x8153 0x4E3C +0x8154 0x4E40 +0x8155 0x4E41 +0x8156 0x4E42 +0x8157 0x4E44 +0x8158 0x4E46 +0x8159 0x4E4A +0x815A 0x4E51 +0x815B 0x4E55 +0x815C 0x4E57 +0x815D 0x4E5A +0x815E 0x4E5B +0x815F 0x4E62 +0x8160 0x4E63 +0x8161 0x4E64 +0x8162 0x4E65 +0x8163 0x4E67 +0x8164 0x4E68 +0x8165 0x4E6A +0x8166 0x4E6B +0x8167 0x4E6C +0x8168 0x4E6D +0x8169 0x4E6E +0x816A 0x4E6F +0x816B 0x4E72 +0x816C 0x4E74 +0x816D 0x4E75 +0x816E 0x4E76 +0x816F 0x4E77 +0x8170 0x4E78 +0x8171 0x4E79 +0x8172 0x4E7A +0x8173 0x4E7B +0x8174 0x4E7C +0x8175 0x4E7D +0x8176 0x4E7F +0x8177 0x4E80 +0x8178 0x4E81 +0x8179 0x4E82 +0x817A 0x4E83 +0x817B 0x4E84 +0x817C 0x4E85 +0x817D 0x4E87 +0x817E 0x4E8A +0x8180 0x4E90 +0x8181 0x4E96 +0x8182 0x4E97 +0x8183 0x4E99 +0x8184 0x4E9C +0x8185 0x4E9D +0x8186 0x4E9E +0x8187 0x4EA3 +0x8188 0x4EAA +0x8189 0x4EAF +0x818A 0x4EB0 +0x818B 0x4EB1 +0x818C 0x4EB4 +0x818D 0x4EB6 +0x818E 0x4EB7 +0x818F 0x4EB8 +0x8190 0x4EB9 +0x8191 0x4EBC +0x8192 0x4EBD +0x8193 0x4EBE +0x8194 0x4EC8 +0x8195 0x4ECC +0x8196 0x4ECF +0x8197 0x4ED0 +0x8198 0x4ED2 +0x8199 0x4EDA +0x819A 0x4EDB +0x819B 0x4EDC +0x819C 0x4EE0 +0x819D 0x4EE2 +0x819E 0x4EE6 +0x819F 0x4EE7 +0x81A0 0x4EE9 +0x81A1 0x4EED +0x81A2 0x4EEE +0x81A3 0x4EEF +0x81A4 0x4EF1 +0x81A5 0x4EF4 +0x81A6 0x4EF8 +0x81A7 0x4EF9 +0x81A8 0x4EFA +0x81A9 0x4EFC +0x81AA 0x4EFE +0x81AB 0x4F00 +0x81AC 0x4F02 +0x81AD 0x4F03 +0x81AE 0x4F04 +0x81AF 0x4F05 +0x81B0 0x4F06 +0x81B1 0x4F07 +0x81B2 0x4F08 +0x81B3 0x4F0B +0x81B4 0x4F0C +0x81B5 0x4F12 +0x81B6 0x4F13 +0x81B7 0x4F14 +0x81B8 0x4F15 +0x81B9 0x4F16 +0x81BA 0x4F1C +0x81BB 0x4F1D +0x81BC 0x4F21 +0x81BD 0x4F23 +0x81BE 0x4F28 +0x81BF 0x4F29 +0x81C0 0x4F2C +0x81C1 0x4F2D +0x81C2 0x4F2E +0x81C3 0x4F31 +0x81C4 0x4F33 +0x81C5 0x4F35 +0x81C6 0x4F37 +0x81C7 0x4F39 +0x81C8 0x4F3B +0x81C9 0x4F3E +0x81CA 0x4F3F +0x81CB 0x4F40 +0x81CC 0x4F41 +0x81CD 0x4F42 +0x81CE 0x4F44 +0x81CF 0x4F45 +0x81D0 0x4F47 +0x81D1 0x4F48 +0x81D2 0x4F49 +0x81D3 0x4F4A +0x81D4 0x4F4B +0x81D5 0x4F4C +0x81D6 0x4F52 +0x81D7 0x4F54 +0x81D8 0x4F56 +0x81D9 0x4F61 +0x81DA 0x4F62 +0x81DB 0x4F66 +0x81DC 0x4F68 +0x81DD 0x4F6A +0x81DE 0x4F6B +0x81DF 0x4F6D +0x81E0 0x4F6E +0x81E1 0x4F71 +0x81E2 0x4F72 +0x81E3 0x4F75 +0x81E4 0x4F77 +0x81E5 0x4F78 +0x81E6 0x4F79 +0x81E7 0x4F7A +0x81E8 0x4F7D +0x81E9 0x4F80 +0x81EA 0x4F81 +0x81EB 0x4F82 +0x81EC 0x4F85 +0x81ED 0x4F86 +0x81EE 0x4F87 +0x81EF 0x4F8A +0x81F0 0x4F8C +0x81F1 0x4F8E +0x81F2 0x4F90 +0x81F3 0x4F92 +0x81F4 0x4F93 +0x81F5 0x4F95 +0x81F6 0x4F96 +0x81F7 0x4F98 +0x81F8 0x4F99 +0x81F9 0x4F9A +0x81FA 0x4F9C +0x81FB 0x4F9E +0x81FC 0x4F9F +0x81FD 0x4FA1 +0x81FE 0x4FA2 +0x8240 0x4FA4 +0x8241 0x4FAB +0x8242 0x4FAD +0x8243 0x4FB0 +0x8244 0x4FB1 +0x8245 0x4FB2 +0x8246 0x4FB3 +0x8247 0x4FB4 +0x8248 0x4FB6 +0x8249 0x4FB7 +0x824A 0x4FB8 +0x824B 0x4FB9 +0x824C 0x4FBA +0x824D 0x4FBB +0x824E 0x4FBC +0x824F 0x4FBD +0x8250 0x4FBE +0x8251 0x4FC0 +0x8252 0x4FC1 +0x8253 0x4FC2 +0x8254 0x4FC6 +0x8255 0x4FC7 +0x8256 0x4FC8 +0x8257 0x4FC9 +0x8258 0x4FCB +0x8259 0x4FCC +0x825A 0x4FCD +0x825B 0x4FD2 +0x825C 0x4FD3 +0x825D 0x4FD4 +0x825E 0x4FD5 +0x825F 0x4FD6 +0x8260 0x4FD9 +0x8261 0x4FDB +0x8262 0x4FE0 +0x8263 0x4FE2 +0x8264 0x4FE4 +0x8265 0x4FE5 +0x8266 0x4FE7 +0x8267 0x4FEB +0x8268 0x4FEC +0x8269 0x4FF0 +0x826A 0x4FF2 +0x826B 0x4FF4 +0x826C 0x4FF5 +0x826D 0x4FF6 +0x826E 0x4FF7 +0x826F 0x4FF9 +0x8270 0x4FFB +0x8271 0x4FFC +0x8272 0x4FFD +0x8273 0x4FFF +0x8274 0x5000 +0x8275 0x5001 +0x8276 0x5002 +0x8277 0x5003 +0x8278 0x5004 +0x8279 0x5005 +0x827A 0x5006 +0x827B 0x5007 +0x827C 0x5008 +0x827D 0x5009 +0x827E 0x500A +0x8280 0x500B +0x8281 0x500E +0x8282 0x5010 +0x8283 0x5011 +0x8284 0x5013 +0x8285 0x5015 +0x8286 0x5016 +0x8287 0x5017 +0x8288 0x501B +0x8289 0x501D +0x828A 0x501E +0x828B 0x5020 +0x828C 0x5022 +0x828D 0x5023 +0x828E 0x5024 +0x828F 0x5027 +0x8290 0x502B +0x8291 0x502F +0x8292 0x5030 +0x8293 0x5031 +0x8294 0x5032 +0x8295 0x5033 +0x8296 0x5034 +0x8297 0x5035 +0x8298 0x5036 +0x8299 0x5037 +0x829A 0x5038 +0x829B 0x5039 +0x829C 0x503B +0x829D 0x503D +0x829E 0x503F +0x829F 0x5040 +0x82A0 0x5041 +0x82A1 0x5042 +0x82A2 0x5044 +0x82A3 0x5045 +0x82A4 0x5046 +0x82A5 0x5049 +0x82A6 0x504A +0x82A7 0x504B +0x82A8 0x504D +0x82A9 0x5050 +0x82AA 0x5051 +0x82AB 0x5052 +0x82AC 0x5053 +0x82AD 0x5054 +0x82AE 0x5056 +0x82AF 0x5057 +0x82B0 0x5058 +0x82B1 0x5059 +0x82B2 0x505B +0x82B3 0x505D +0x82B4 0x505E +0x82B5 0x505F +0x82B6 0x5060 +0x82B7 0x5061 +0x82B8 0x5062 +0x82B9 0x5063 +0x82BA 0x5064 +0x82BB 0x5066 +0x82BC 0x5067 +0x82BD 0x5068 +0x82BE 0x5069 +0x82BF 0x506A +0x82C0 0x506B +0x82C1 0x506D +0x82C2 0x506E +0x82C3 0x506F +0x82C4 0x5070 +0x82C5 0x5071 +0x82C6 0x5072 +0x82C7 0x5073 +0x82C8 0x5074 +0x82C9 0x5075 +0x82CA 0x5078 +0x82CB 0x5079 +0x82CC 0x507A +0x82CD 0x507C +0x82CE 0x507D +0x82CF 0x5081 +0x82D0 0x5082 +0x82D1 0x5083 +0x82D2 0x5084 +0x82D3 0x5086 +0x82D4 0x5087 +0x82D5 0x5089 +0x82D6 0x508A +0x82D7 0x508B +0x82D8 0x508C +0x82D9 0x508E +0x82DA 0x508F +0x82DB 0x5090 +0x82DC 0x5091 +0x82DD 0x5092 +0x82DE 0x5093 +0x82DF 0x5094 +0x82E0 0x5095 +0x82E1 0x5096 +0x82E2 0x5097 +0x82E3 0x5098 +0x82E4 0x5099 +0x82E5 0x509A +0x82E6 0x509B +0x82E7 0x509C +0x82E8 0x509D +0x82E9 0x509E +0x82EA 0x509F +0x82EB 0x50A0 +0x82EC 0x50A1 +0x82ED 0x50A2 +0x82EE 0x50A4 +0x82EF 0x50A6 +0x82F0 0x50AA +0x82F1 0x50AB +0x82F2 0x50AD +0x82F3 0x50AE +0x82F4 0x50AF +0x82F5 0x50B0 +0x82F6 0x50B1 +0x82F7 0x50B3 +0x82F8 0x50B4 +0x82F9 0x50B5 +0x82FA 0x50B6 +0x82FB 0x50B7 +0x82FC 0x50B8 +0x82FD 0x50B9 +0x82FE 0x50BC +0x8340 0x50BD +0x8341 0x50BE +0x8342 0x50BF +0x8343 0x50C0 +0x8344 0x50C1 +0x8345 0x50C2 +0x8346 0x50C3 +0x8347 0x50C4 +0x8348 0x50C5 +0x8349 0x50C6 +0x834A 0x50C7 +0x834B 0x50C8 +0x834C 0x50C9 +0x834D 0x50CA +0x834E 0x50CB +0x834F 0x50CC +0x8350 0x50CD +0x8351 0x50CE +0x8352 0x50D0 +0x8353 0x50D1 +0x8354 0x50D2 +0x8355 0x50D3 +0x8356 0x50D4 +0x8357 0x50D5 +0x8358 0x50D7 +0x8359 0x50D8 +0x835A 0x50D9 +0x835B 0x50DB +0x835C 0x50DC +0x835D 0x50DD +0x835E 0x50DE +0x835F 0x50DF +0x8360 0x50E0 +0x8361 0x50E1 +0x8362 0x50E2 +0x8363 0x50E3 +0x8364 0x50E4 +0x8365 0x50E5 +0x8366 0x50E8 +0x8367 0x50E9 +0x8368 0x50EA +0x8369 0x50EB +0x836A 0x50EF +0x836B 0x50F0 +0x836C 0x50F1 +0x836D 0x50F2 +0x836E 0x50F4 +0x836F 0x50F6 +0x8370 0x50F7 +0x8371 0x50F8 +0x8372 0x50F9 +0x8373 0x50FA +0x8374 0x50FC +0x8375 0x50FD +0x8376 0x50FE +0x8377 0x50FF +0x8378 0x5100 +0x8379 0x5101 +0x837A 0x5102 +0x837B 0x5103 +0x837C 0x5104 +0x837D 0x5105 +0x837E 0x5108 +0x8380 0x5109 +0x8381 0x510A +0x8382 0x510C +0x8383 0x510D +0x8384 0x510E +0x8385 0x510F +0x8386 0x5110 +0x8387 0x5111 +0x8388 0x5113 +0x8389 0x5114 +0x838A 0x5115 +0x838B 0x5116 +0x838C 0x5117 +0x838D 0x5118 +0x838E 0x5119 +0x838F 0x511A +0x8390 0x511B +0x8391 0x511C +0x8392 0x511D +0x8393 0x511E +0x8394 0x511F +0x8395 0x5120 +0x8396 0x5122 +0x8397 0x5123 +0x8398 0x5124 +0x8399 0x5125 +0x839A 0x5126 +0x839B 0x5127 +0x839C 0x5128 +0x839D 0x5129 +0x839E 0x512A +0x839F 0x512B +0x83A0 0x512C +0x83A1 0x512D +0x83A2 0x512E +0x83A3 0x512F +0x83A4 0x5130 +0x83A5 0x5131 +0x83A6 0x5132 +0x83A7 0x5133 +0x83A8 0x5134 +0x83A9 0x5135 +0x83AA 0x5136 +0x83AB 0x5137 +0x83AC 0x5138 +0x83AD 0x5139 +0x83AE 0x513A +0x83AF 0x513B +0x83B0 0x513C +0x83B1 0x513D +0x83B2 0x513E +0x83B3 0x5142 +0x83B4 0x5147 +0x83B5 0x514A +0x83B6 0x514C +0x83B7 0x514E +0x83B8 0x514F +0x83B9 0x5150 +0x83BA 0x5152 +0x83BB 0x5153 +0x83BC 0x5157 +0x83BD 0x5158 +0x83BE 0x5159 +0x83BF 0x515B +0x83C0 0x515D +0x83C1 0x515E +0x83C2 0x515F +0x83C3 0x5160 +0x83C4 0x5161 +0x83C5 0x5163 +0x83C6 0x5164 +0x83C7 0x5166 +0x83C8 0x5167 +0x83C9 0x5169 +0x83CA 0x516A +0x83CB 0x516F +0x83CC 0x5172 +0x83CD 0x517A +0x83CE 0x517E +0x83CF 0x517F +0x83D0 0x5183 +0x83D1 0x5184 +0x83D2 0x5186 +0x83D3 0x5187 +0x83D4 0x518A +0x83D5 0x518B +0x83D6 0x518E +0x83D7 0x518F +0x83D8 0x5190 +0x83D9 0x5191 +0x83DA 0x5193 +0x83DB 0x5194 +0x83DC 0x5198 +0x83DD 0x519A +0x83DE 0x519D +0x83DF 0x519E +0x83E0 0x519F +0x83E1 0x51A1 +0x83E2 0x51A3 +0x83E3 0x51A6 +0x83E4 0x51A7 +0x83E5 0x51A8 +0x83E6 0x51A9 +0x83E7 0x51AA +0x83E8 0x51AD +0x83E9 0x51AE +0x83EA 0x51B4 +0x83EB 0x51B8 +0x83EC 0x51B9 +0x83ED 0x51BA +0x83EE 0x51BE +0x83EF 0x51BF +0x83F0 0x51C1 +0x83F1 0x51C2 +0x83F2 0x51C3 +0x83F3 0x51C5 +0x83F4 0x51C8 +0x83F5 0x51CA +0x83F6 0x51CD +0x83F7 0x51CE +0x83F8 0x51D0 +0x83F9 0x51D2 +0x83FA 0x51D3 +0x83FB 0x51D4 +0x83FC 0x51D5 +0x83FD 0x51D6 +0x83FE 0x51D7 +0x8440 0x51D8 +0x8441 0x51D9 +0x8442 0x51DA +0x8443 0x51DC +0x8444 0x51DE +0x8445 0x51DF +0x8446 0x51E2 +0x8447 0x51E3 +0x8448 0x51E5 +0x8449 0x51E6 +0x844A 0x51E7 +0x844B 0x51E8 +0x844C 0x51E9 +0x844D 0x51EA +0x844E 0x51EC +0x844F 0x51EE +0x8450 0x51F1 +0x8451 0x51F2 +0x8452 0x51F4 +0x8453 0x51F7 +0x8454 0x51FE +0x8455 0x5204 +0x8456 0x5205 +0x8457 0x5209 +0x8458 0x520B +0x8459 0x520C +0x845A 0x520F +0x845B 0x5210 +0x845C 0x5213 +0x845D 0x5214 +0x845E 0x5215 +0x845F 0x521C +0x8460 0x521E +0x8461 0x521F +0x8462 0x5221 +0x8463 0x5222 +0x8464 0x5223 +0x8465 0x5225 +0x8466 0x5226 +0x8467 0x5227 +0x8468 0x522A +0x8469 0x522C +0x846A 0x522F +0x846B 0x5231 +0x846C 0x5232 +0x846D 0x5234 +0x846E 0x5235 +0x846F 0x523C +0x8470 0x523E +0x8471 0x5244 +0x8472 0x5245 +0x8473 0x5246 +0x8474 0x5247 +0x8475 0x5248 +0x8476 0x5249 +0x8477 0x524B +0x8478 0x524E +0x8479 0x524F +0x847A 0x5252 +0x847B 0x5253 +0x847C 0x5255 +0x847D 0x5257 +0x847E 0x5258 +0x8480 0x5259 +0x8481 0x525A +0x8482 0x525B +0x8483 0x525D +0x8484 0x525F +0x8485 0x5260 +0x8486 0x5262 +0x8487 0x5263 +0x8488 0x5264 +0x8489 0x5266 +0x848A 0x5268 +0x848B 0x526B +0x848C 0x526C +0x848D 0x526D +0x848E 0x526E +0x848F 0x5270 +0x8490 0x5271 +0x8491 0x5273 +0x8492 0x5274 +0x8493 0x5275 +0x8494 0x5276 +0x8495 0x5277 +0x8496 0x5278 +0x8497 0x5279 +0x8498 0x527A +0x8499 0x527B +0x849A 0x527C +0x849B 0x527E +0x849C 0x5280 +0x849D 0x5283 +0x849E 0x5284 +0x849F 0x5285 +0x84A0 0x5286 +0x84A1 0x5287 +0x84A2 0x5289 +0x84A3 0x528A +0x84A4 0x528B +0x84A5 0x528C +0x84A6 0x528D +0x84A7 0x528E +0x84A8 0x528F +0x84A9 0x5291 +0x84AA 0x5292 +0x84AB 0x5294 +0x84AC 0x5295 +0x84AD 0x5296 +0x84AE 0x5297 +0x84AF 0x5298 +0x84B0 0x5299 +0x84B1 0x529A +0x84B2 0x529C +0x84B3 0x52A4 +0x84B4 0x52A5 +0x84B5 0x52A6 +0x84B6 0x52A7 +0x84B7 0x52AE +0x84B8 0x52AF +0x84B9 0x52B0 +0x84BA 0x52B4 +0x84BB 0x52B5 +0x84BC 0x52B6 +0x84BD 0x52B7 +0x84BE 0x52B8 +0x84BF 0x52B9 +0x84C0 0x52BA +0x84C1 0x52BB +0x84C2 0x52BC +0x84C3 0x52BD +0x84C4 0x52C0 +0x84C5 0x52C1 +0x84C6 0x52C2 +0x84C7 0x52C4 +0x84C8 0x52C5 +0x84C9 0x52C6 +0x84CA 0x52C8 +0x84CB 0x52CA +0x84CC 0x52CC +0x84CD 0x52CD +0x84CE 0x52CE +0x84CF 0x52CF +0x84D0 0x52D1 +0x84D1 0x52D3 +0x84D2 0x52D4 +0x84D3 0x52D5 +0x84D4 0x52D7 +0x84D5 0x52D9 +0x84D6 0x52DA +0x84D7 0x52DB +0x84D8 0x52DC +0x84D9 0x52DD +0x84DA 0x52DE +0x84DB 0x52E0 +0x84DC 0x52E1 +0x84DD 0x52E2 +0x84DE 0x52E3 +0x84DF 0x52E5 +0x84E0 0x52E6 +0x84E1 0x52E7 +0x84E2 0x52E8 +0x84E3 0x52E9 +0x84E4 0x52EA +0x84E5 0x52EB +0x84E6 0x52EC +0x84E7 0x52ED +0x84E8 0x52EE +0x84E9 0x52EF +0x84EA 0x52F1 +0x84EB 0x52F2 +0x84EC 0x52F3 +0x84ED 0x52F4 +0x84EE 0x52F5 +0x84EF 0x52F6 +0x84F0 0x52F7 +0x84F1 0x52F8 +0x84F2 0x52FB +0x84F3 0x52FC +0x84F4 0x52FD +0x84F5 0x5301 +0x84F6 0x5302 +0x84F7 0x5303 +0x84F8 0x5304 +0x84F9 0x5307 +0x84FA 0x5309 +0x84FB 0x530A +0x84FC 0x530B +0x84FD 0x530C +0x84FE 0x530E +0x8540 0x5311 +0x8541 0x5312 +0x8542 0x5313 +0x8543 0x5314 +0x8544 0x5318 +0x8545 0x531B +0x8546 0x531C +0x8547 0x531E +0x8548 0x531F +0x8549 0x5322 +0x854A 0x5324 +0x854B 0x5325 +0x854C 0x5327 +0x854D 0x5328 +0x854E 0x5329 +0x854F 0x532B +0x8550 0x532C +0x8551 0x532D +0x8552 0x532F +0x8553 0x5330 +0x8554 0x5331 +0x8555 0x5332 +0x8556 0x5333 +0x8557 0x5334 +0x8558 0x5335 +0x8559 0x5336 +0x855A 0x5337 +0x855B 0x5338 +0x855C 0x533C +0x855D 0x533D +0x855E 0x5340 +0x855F 0x5342 +0x8560 0x5344 +0x8561 0x5346 +0x8562 0x534B +0x8563 0x534C +0x8564 0x534D +0x8565 0x5350 +0x8566 0x5354 +0x8567 0x5358 +0x8568 0x5359 +0x8569 0x535B +0x856A 0x535D +0x856B 0x5365 +0x856C 0x5368 +0x856D 0x536A +0x856E 0x536C +0x856F 0x536D +0x8570 0x5372 +0x8571 0x5376 +0x8572 0x5379 +0x8573 0x537B +0x8574 0x537C +0x8575 0x537D +0x8576 0x537E +0x8577 0x5380 +0x8578 0x5381 +0x8579 0x5383 +0x857A 0x5387 +0x857B 0x5388 +0x857C 0x538A +0x857D 0x538E +0x857E 0x538F +0x8580 0x5390 +0x8581 0x5391 +0x8582 0x5392 +0x8583 0x5393 +0x8584 0x5394 +0x8585 0x5396 +0x8586 0x5397 +0x8587 0x5399 +0x8588 0x539B +0x8589 0x539C +0x858A 0x539E +0x858B 0x53A0 +0x858C 0x53A1 +0x858D 0x53A4 +0x858E 0x53A7 +0x858F 0x53AA +0x8590 0x53AB +0x8591 0x53AC +0x8592 0x53AD +0x8593 0x53AF +0x8594 0x53B0 +0x8595 0x53B1 +0x8596 0x53B2 +0x8597 0x53B3 +0x8598 0x53B4 +0x8599 0x53B5 +0x859A 0x53B7 +0x859B 0x53B8 +0x859C 0x53B9 +0x859D 0x53BA +0x859E 0x53BC +0x859F 0x53BD +0x85A0 0x53BE +0x85A1 0x53C0 +0x85A2 0x53C3 +0x85A3 0x53C4 +0x85A4 0x53C5 +0x85A5 0x53C6 +0x85A6 0x53C7 +0x85A7 0x53CE +0x85A8 0x53CF +0x85A9 0x53D0 +0x85AA 0x53D2 +0x85AB 0x53D3 +0x85AC 0x53D5 +0x85AD 0x53DA +0x85AE 0x53DC +0x85AF 0x53DD +0x85B0 0x53DE +0x85B1 0x53E1 +0x85B2 0x53E2 +0x85B3 0x53E7 +0x85B4 0x53F4 +0x85B5 0x53FA +0x85B6 0x53FE +0x85B7 0x53FF +0x85B8 0x5400 +0x85B9 0x5402 +0x85BA 0x5405 +0x85BB 0x5407 +0x85BC 0x540B +0x85BD 0x5414 +0x85BE 0x5418 +0x85BF 0x5419 +0x85C0 0x541A +0x85C1 0x541C +0x85C2 0x5422 +0x85C3 0x5424 +0x85C4 0x5425 +0x85C5 0x542A +0x85C6 0x5430 +0x85C7 0x5433 +0x85C8 0x5436 +0x85C9 0x5437 +0x85CA 0x543A +0x85CB 0x543D +0x85CC 0x543F +0x85CD 0x5441 +0x85CE 0x5442 +0x85CF 0x5444 +0x85D0 0x5445 +0x85D1 0x5447 +0x85D2 0x5449 +0x85D3 0x544C +0x85D4 0x544D +0x85D5 0x544E +0x85D6 0x544F +0x85D7 0x5451 +0x85D8 0x545A +0x85D9 0x545D +0x85DA 0x545E +0x85DB 0x545F +0x85DC 0x5460 +0x85DD 0x5461 +0x85DE 0x5463 +0x85DF 0x5465 +0x85E0 0x5467 +0x85E1 0x5469 +0x85E2 0x546A +0x85E3 0x546B +0x85E4 0x546C +0x85E5 0x546D +0x85E6 0x546E +0x85E7 0x546F +0x85E8 0x5470 +0x85E9 0x5474 +0x85EA 0x5479 +0x85EB 0x547A +0x85EC 0x547E +0x85ED 0x547F +0x85EE 0x5481 +0x85EF 0x5483 +0x85F0 0x5485 +0x85F1 0x5487 +0x85F2 0x5488 +0x85F3 0x5489 +0x85F4 0x548A +0x85F5 0x548D +0x85F6 0x5491 +0x85F7 0x5493 +0x85F8 0x5497 +0x85F9 0x5498 +0x85FA 0x549C +0x85FB 0x549E +0x85FC 0x549F +0x85FD 0x54A0 +0x85FE 0x54A1 +0x8640 0x54A2 +0x8641 0x54A5 +0x8642 0x54AE +0x8643 0x54B0 +0x8644 0x54B2 +0x8645 0x54B5 +0x8646 0x54B6 +0x8647 0x54B7 +0x8648 0x54B9 +0x8649 0x54BA +0x864A 0x54BC +0x864B 0x54BE +0x864C 0x54C3 +0x864D 0x54C5 +0x864E 0x54CA +0x864F 0x54CB +0x8650 0x54D6 +0x8651 0x54D8 +0x8652 0x54DB +0x8653 0x54E0 +0x8654 0x54E1 +0x8655 0x54E2 +0x8656 0x54E3 +0x8657 0x54E4 +0x8658 0x54EB +0x8659 0x54EC +0x865A 0x54EF +0x865B 0x54F0 +0x865C 0x54F1 +0x865D 0x54F4 +0x865E 0x54F5 +0x865F 0x54F6 +0x8660 0x54F7 +0x8661 0x54F8 +0x8662 0x54F9 +0x8663 0x54FB +0x8664 0x54FE +0x8665 0x5500 +0x8666 0x5502 +0x8667 0x5503 +0x8668 0x5504 +0x8669 0x5505 +0x866A 0x5508 +0x866B 0x550A +0x866C 0x550B +0x866D 0x550C +0x866E 0x550D +0x866F 0x550E +0x8670 0x5512 +0x8671 0x5513 +0x8672 0x5515 +0x8673 0x5516 +0x8674 0x5517 +0x8675 0x5518 +0x8676 0x5519 +0x8677 0x551A +0x8678 0x551C +0x8679 0x551D +0x867A 0x551E +0x867B 0x551F +0x867C 0x5521 +0x867D 0x5525 +0x867E 0x5526 +0x8680 0x5528 +0x8681 0x5529 +0x8682 0x552B +0x8683 0x552D +0x8684 0x5532 +0x8685 0x5534 +0x8686 0x5535 +0x8687 0x5536 +0x8688 0x5538 +0x8689 0x5539 +0x868A 0x553A +0x868B 0x553B +0x868C 0x553D +0x868D 0x5540 +0x868E 0x5542 +0x868F 0x5545 +0x8690 0x5547 +0x8691 0x5548 +0x8692 0x554B +0x8693 0x554C +0x8694 0x554D +0x8695 0x554E +0x8696 0x554F +0x8697 0x5551 +0x8698 0x5552 +0x8699 0x5553 +0x869A 0x5554 +0x869B 0x5557 +0x869C 0x5558 +0x869D 0x5559 +0x869E 0x555A +0x869F 0x555B +0x86A0 0x555D +0x86A1 0x555E +0x86A2 0x555F +0x86A3 0x5560 +0x86A4 0x5562 +0x86A5 0x5563 +0x86A6 0x5568 +0x86A7 0x5569 +0x86A8 0x556B +0x86A9 0x556F +0x86AA 0x5570 +0x86AB 0x5571 +0x86AC 0x5572 +0x86AD 0x5573 +0x86AE 0x5574 +0x86AF 0x5579 +0x86B0 0x557A +0x86B1 0x557D +0x86B2 0x557F +0x86B3 0x5585 +0x86B4 0x5586 +0x86B5 0x558C +0x86B6 0x558D +0x86B7 0x558E +0x86B8 0x5590 +0x86B9 0x5592 +0x86BA 0x5593 +0x86BB 0x5595 +0x86BC 0x5596 +0x86BD 0x5597 +0x86BE 0x559A +0x86BF 0x559B +0x86C0 0x559E +0x86C1 0x55A0 +0x86C2 0x55A1 +0x86C3 0x55A2 +0x86C4 0x55A3 +0x86C5 0x55A4 +0x86C6 0x55A5 +0x86C7 0x55A6 +0x86C8 0x55A8 +0x86C9 0x55A9 +0x86CA 0x55AA +0x86CB 0x55AB +0x86CC 0x55AC +0x86CD 0x55AD +0x86CE 0x55AE +0x86CF 0x55AF +0x86D0 0x55B0 +0x86D1 0x55B2 +0x86D2 0x55B4 +0x86D3 0x55B6 +0x86D4 0x55B8 +0x86D5 0x55BA +0x86D6 0x55BC +0x86D7 0x55BF +0x86D8 0x55C0 +0x86D9 0x55C1 +0x86DA 0x55C2 +0x86DB 0x55C3 +0x86DC 0x55C6 +0x86DD 0x55C7 +0x86DE 0x55C8 +0x86DF 0x55CA +0x86E0 0x55CB +0x86E1 0x55CE +0x86E2 0x55CF +0x86E3 0x55D0 +0x86E4 0x55D5 +0x86E5 0x55D7 +0x86E6 0x55D8 +0x86E7 0x55D9 +0x86E8 0x55DA +0x86E9 0x55DB +0x86EA 0x55DE +0x86EB 0x55E0 +0x86EC 0x55E2 +0x86ED 0x55E7 +0x86EE 0x55E9 +0x86EF 0x55ED +0x86F0 0x55EE +0x86F1 0x55F0 +0x86F2 0x55F1 +0x86F3 0x55F4 +0x86F4 0x55F6 +0x86F5 0x55F8 +0x86F6 0x55F9 +0x86F7 0x55FA +0x86F8 0x55FB +0x86F9 0x55FC +0x86FA 0x55FF +0x86FB 0x5602 +0x86FC 0x5603 +0x86FD 0x5604 +0x86FE 0x5605 +0x8740 0x5606 +0x8741 0x5607 +0x8742 0x560A +0x8743 0x560B +0x8744 0x560D +0x8745 0x5610 +0x8746 0x5611 +0x8747 0x5612 +0x8748 0x5613 +0x8749 0x5614 +0x874A 0x5615 +0x874B 0x5616 +0x874C 0x5617 +0x874D 0x5619 +0x874E 0x561A +0x874F 0x561C +0x8750 0x561D +0x8751 0x5620 +0x8752 0x5621 +0x8753 0x5622 +0x8754 0x5625 +0x8755 0x5626 +0x8756 0x5628 +0x8757 0x5629 +0x8758 0x562A +0x8759 0x562B +0x875A 0x562E +0x875B 0x562F +0x875C 0x5630 +0x875D 0x5633 +0x875E 0x5635 +0x875F 0x5637 +0x8760 0x5638 +0x8761 0x563A +0x8762 0x563C +0x8763 0x563D +0x8764 0x563E +0x8765 0x5640 +0x8766 0x5641 +0x8767 0x5642 +0x8768 0x5643 +0x8769 0x5644 +0x876A 0x5645 +0x876B 0x5646 +0x876C 0x5647 +0x876D 0x5648 +0x876E 0x5649 +0x876F 0x564A +0x8770 0x564B +0x8771 0x564F +0x8772 0x5650 +0x8773 0x5651 +0x8774 0x5652 +0x8775 0x5653 +0x8776 0x5655 +0x8777 0x5656 +0x8778 0x565A +0x8779 0x565B +0x877A 0x565D +0x877B 0x565E +0x877C 0x565F +0x877D 0x5660 +0x877E 0x5661 +0x8780 0x5663 +0x8781 0x5665 +0x8782 0x5666 +0x8783 0x5667 +0x8784 0x566D +0x8785 0x566E +0x8786 0x566F +0x8787 0x5670 +0x8788 0x5672 +0x8789 0x5673 +0x878A 0x5674 +0x878B 0x5675 +0x878C 0x5677 +0x878D 0x5678 +0x878E 0x5679 +0x878F 0x567A +0x8790 0x567D +0x8791 0x567E +0x8792 0x567F +0x8793 0x5680 +0x8794 0x5681 +0x8795 0x5682 +0x8796 0x5683 +0x8797 0x5684 +0x8798 0x5687 +0x8799 0x5688 +0x879A 0x5689 +0x879B 0x568A +0x879C 0x568B +0x879D 0x568C +0x879E 0x568D +0x879F 0x5690 +0x87A0 0x5691 +0x87A1 0x5692 +0x87A2 0x5694 +0x87A3 0x5695 +0x87A4 0x5696 +0x87A5 0x5697 +0x87A6 0x5698 +0x87A7 0x5699 +0x87A8 0x569A +0x87A9 0x569B +0x87AA 0x569C +0x87AB 0x569D +0x87AC 0x569E +0x87AD 0x569F +0x87AE 0x56A0 +0x87AF 0x56A1 +0x87B0 0x56A2 +0x87B1 0x56A4 +0x87B2 0x56A5 +0x87B3 0x56A6 +0x87B4 0x56A7 +0x87B5 0x56A8 +0x87B6 0x56A9 +0x87B7 0x56AA +0x87B8 0x56AB +0x87B9 0x56AC +0x87BA 0x56AD +0x87BB 0x56AE +0x87BC 0x56B0 +0x87BD 0x56B1 +0x87BE 0x56B2 +0x87BF 0x56B3 +0x87C0 0x56B4 +0x87C1 0x56B5 +0x87C2 0x56B6 +0x87C3 0x56B8 +0x87C4 0x56B9 +0x87C5 0x56BA +0x87C6 0x56BB +0x87C7 0x56BD +0x87C8 0x56BE +0x87C9 0x56BF +0x87CA 0x56C0 +0x87CB 0x56C1 +0x87CC 0x56C2 +0x87CD 0x56C3 +0x87CE 0x56C4 +0x87CF 0x56C5 +0x87D0 0x56C6 +0x87D1 0x56C7 +0x87D2 0x56C8 +0x87D3 0x56C9 +0x87D4 0x56CB +0x87D5 0x56CC +0x87D6 0x56CD +0x87D7 0x56CE +0x87D8 0x56CF +0x87D9 0x56D0 +0x87DA 0x56D1 +0x87DB 0x56D2 +0x87DC 0x56D3 +0x87DD 0x56D5 +0x87DE 0x56D6 +0x87DF 0x56D8 +0x87E0 0x56D9 +0x87E1 0x56DC +0x87E2 0x56E3 +0x87E3 0x56E5 +0x87E4 0x56E6 +0x87E5 0x56E7 +0x87E6 0x56E8 +0x87E7 0x56E9 +0x87E8 0x56EA +0x87E9 0x56EC +0x87EA 0x56EE +0x87EB 0x56EF +0x87EC 0x56F2 +0x87ED 0x56F3 +0x87EE 0x56F6 +0x87EF 0x56F7 +0x87F0 0x56F8 +0x87F1 0x56FB +0x87F2 0x56FC +0x87F3 0x5700 +0x87F4 0x5701 +0x87F5 0x5702 +0x87F6 0x5705 +0x87F7 0x5707 +0x87F8 0x570B +0x87F9 0x570C +0x87FA 0x570D +0x87FB 0x570E +0x87FC 0x570F +0x87FD 0x5710 +0x87FE 0x5711 +0x8840 0x5712 +0x8841 0x5713 +0x8842 0x5714 +0x8843 0x5715 +0x8844 0x5716 +0x8845 0x5717 +0x8846 0x5718 +0x8847 0x5719 +0x8848 0x571A +0x8849 0x571B +0x884A 0x571D +0x884B 0x571E +0x884C 0x5720 +0x884D 0x5721 +0x884E 0x5722 +0x884F 0x5724 +0x8850 0x5725 +0x8851 0x5726 +0x8852 0x5727 +0x8853 0x572B +0x8854 0x5731 +0x8855 0x5732 +0x8856 0x5734 +0x8857 0x5735 +0x8858 0x5736 +0x8859 0x5737 +0x885A 0x5738 +0x885B 0x573C +0x885C 0x573D +0x885D 0x573F +0x885E 0x5741 +0x885F 0x5743 +0x8860 0x5744 +0x8861 0x5745 +0x8862 0x5746 +0x8863 0x5748 +0x8864 0x5749 +0x8865 0x574B +0x8866 0x5752 +0x8867 0x5753 +0x8868 0x5754 +0x8869 0x5755 +0x886A 0x5756 +0x886B 0x5758 +0x886C 0x5759 +0x886D 0x5762 +0x886E 0x5763 +0x886F 0x5765 +0x8870 0x5767 +0x8871 0x576C +0x8872 0x576E +0x8873 0x5770 +0x8874 0x5771 +0x8875 0x5772 +0x8876 0x5774 +0x8877 0x5775 +0x8878 0x5778 +0x8879 0x5779 +0x887A 0x577A +0x887B 0x577D +0x887C 0x577E +0x887D 0x577F +0x887E 0x5780 +0x8880 0x5781 +0x8881 0x5787 +0x8882 0x5788 +0x8883 0x5789 +0x8884 0x578A +0x8885 0x578D +0x8886 0x578E +0x8887 0x578F +0x8888 0x5790 +0x8889 0x5791 +0x888A 0x5794 +0x888B 0x5795 +0x888C 0x5796 +0x888D 0x5797 +0x888E 0x5798 +0x888F 0x5799 +0x8890 0x579A +0x8891 0x579C +0x8892 0x579D +0x8893 0x579E +0x8894 0x579F +0x8895 0x57A5 +0x8896 0x57A8 +0x8897 0x57AA +0x8898 0x57AC +0x8899 0x57AF +0x889A 0x57B0 +0x889B 0x57B1 +0x889C 0x57B3 +0x889D 0x57B5 +0x889E 0x57B6 +0x889F 0x57B7 +0x88A0 0x57B9 +0x88A1 0x57BA +0x88A2 0x57BB +0x88A3 0x57BC +0x88A4 0x57BD +0x88A5 0x57BE +0x88A6 0x57BF +0x88A7 0x57C0 +0x88A8 0x57C1 +0x88A9 0x57C4 +0x88AA 0x57C5 +0x88AB 0x57C6 +0x88AC 0x57C7 +0x88AD 0x57C8 +0x88AE 0x57C9 +0x88AF 0x57CA +0x88B0 0x57CC +0x88B1 0x57CD +0x88B2 0x57D0 +0x88B3 0x57D1 +0x88B4 0x57D3 +0x88B5 0x57D6 +0x88B6 0x57D7 +0x88B7 0x57DB +0x88B8 0x57DC +0x88B9 0x57DE +0x88BA 0x57E1 +0x88BB 0x57E2 +0x88BC 0x57E3 +0x88BD 0x57E5 +0x88BE 0x57E6 +0x88BF 0x57E7 +0x88C0 0x57E8 +0x88C1 0x57E9 +0x88C2 0x57EA +0x88C3 0x57EB +0x88C4 0x57EC +0x88C5 0x57EE +0x88C6 0x57F0 +0x88C7 0x57F1 +0x88C8 0x57F2 +0x88C9 0x57F3 +0x88CA 0x57F5 +0x88CB 0x57F6 +0x88CC 0x57F7 +0x88CD 0x57FB +0x88CE 0x57FC +0x88CF 0x57FE +0x88D0 0x57FF +0x88D1 0x5801 +0x88D2 0x5803 +0x88D3 0x5804 +0x88D4 0x5805 +0x88D5 0x5808 +0x88D6 0x5809 +0x88D7 0x580A +0x88D8 0x580C +0x88D9 0x580E +0x88DA 0x580F +0x88DB 0x5810 +0x88DC 0x5812 +0x88DD 0x5813 +0x88DE 0x5814 +0x88DF 0x5816 +0x88E0 0x5817 +0x88E1 0x5818 +0x88E2 0x581A +0x88E3 0x581B +0x88E4 0x581C +0x88E5 0x581D +0x88E6 0x581F +0x88E7 0x5822 +0x88E8 0x5823 +0x88E9 0x5825 +0x88EA 0x5826 +0x88EB 0x5827 +0x88EC 0x5828 +0x88ED 0x5829 +0x88EE 0x582B +0x88EF 0x582C +0x88F0 0x582D +0x88F1 0x582E +0x88F2 0x582F +0x88F3 0x5831 +0x88F4 0x5832 +0x88F5 0x5833 +0x88F6 0x5834 +0x88F7 0x5836 +0x88F8 0x5837 +0x88F9 0x5838 +0x88FA 0x5839 +0x88FB 0x583A +0x88FC 0x583B +0x88FD 0x583C +0x88FE 0x583D +0x8940 0x583E +0x8941 0x583F +0x8942 0x5840 +0x8943 0x5841 +0x8944 0x5842 +0x8945 0x5843 +0x8946 0x5845 +0x8947 0x5846 +0x8948 0x5847 +0x8949 0x5848 +0x894A 0x5849 +0x894B 0x584A +0x894C 0x584B +0x894D 0x584E +0x894E 0x584F +0x894F 0x5850 +0x8950 0x5852 +0x8951 0x5853 +0x8952 0x5855 +0x8953 0x5856 +0x8954 0x5857 +0x8955 0x5859 +0x8956 0x585A +0x8957 0x585B +0x8958 0x585C +0x8959 0x585D +0x895A 0x585F +0x895B 0x5860 +0x895C 0x5861 +0x895D 0x5862 +0x895E 0x5863 +0x895F 0x5864 +0x8960 0x5866 +0x8961 0x5867 +0x8962 0x5868 +0x8963 0x5869 +0x8964 0x586A +0x8965 0x586D +0x8966 0x586E +0x8967 0x586F +0x8968 0x5870 +0x8969 0x5871 +0x896A 0x5872 +0x896B 0x5873 +0x896C 0x5874 +0x896D 0x5875 +0x896E 0x5876 +0x896F 0x5877 +0x8970 0x5878 +0x8971 0x5879 +0x8972 0x587A +0x8973 0x587B +0x8974 0x587C +0x8975 0x587D +0x8976 0x587F +0x8977 0x5882 +0x8978 0x5884 +0x8979 0x5886 +0x897A 0x5887 +0x897B 0x5888 +0x897C 0x588A +0x897D 0x588B +0x897E 0x588C +0x8980 0x588D +0x8981 0x588E +0x8982 0x588F +0x8983 0x5890 +0x8984 0x5891 +0x8985 0x5894 +0x8986 0x5895 +0x8987 0x5896 +0x8988 0x5897 +0x8989 0x5898 +0x898A 0x589B +0x898B 0x589C +0x898C 0x589D +0x898D 0x58A0 +0x898E 0x58A1 +0x898F 0x58A2 +0x8990 0x58A3 +0x8991 0x58A4 +0x8992 0x58A5 +0x8993 0x58A6 +0x8994 0x58A7 +0x8995 0x58AA +0x8996 0x58AB +0x8997 0x58AC +0x8998 0x58AD +0x8999 0x58AE +0x899A 0x58AF +0x899B 0x58B0 +0x899C 0x58B1 +0x899D 0x58B2 +0x899E 0x58B3 +0x899F 0x58B4 +0x89A0 0x58B5 +0x89A1 0x58B6 +0x89A2 0x58B7 +0x89A3 0x58B8 +0x89A4 0x58B9 +0x89A5 0x58BA +0x89A6 0x58BB +0x89A7 0x58BD +0x89A8 0x58BE +0x89A9 0x58BF +0x89AA 0x58C0 +0x89AB 0x58C2 +0x89AC 0x58C3 +0x89AD 0x58C4 +0x89AE 0x58C6 +0x89AF 0x58C7 +0x89B0 0x58C8 +0x89B1 0x58C9 +0x89B2 0x58CA +0x89B3 0x58CB +0x89B4 0x58CC +0x89B5 0x58CD +0x89B6 0x58CE +0x89B7 0x58CF +0x89B8 0x58D0 +0x89B9 0x58D2 +0x89BA 0x58D3 +0x89BB 0x58D4 +0x89BC 0x58D6 +0x89BD 0x58D7 +0x89BE 0x58D8 +0x89BF 0x58D9 +0x89C0 0x58DA +0x89C1 0x58DB +0x89C2 0x58DC +0x89C3 0x58DD +0x89C4 0x58DE +0x89C5 0x58DF +0x89C6 0x58E0 +0x89C7 0x58E1 +0x89C8 0x58E2 +0x89C9 0x58E3 +0x89CA 0x58E5 +0x89CB 0x58E6 +0x89CC 0x58E7 +0x89CD 0x58E8 +0x89CE 0x58E9 +0x89CF 0x58EA +0x89D0 0x58ED +0x89D1 0x58EF +0x89D2 0x58F1 +0x89D3 0x58F2 +0x89D4 0x58F4 +0x89D5 0x58F5 +0x89D6 0x58F7 +0x89D7 0x58F8 +0x89D8 0x58FA +0x89D9 0x58FB +0x89DA 0x58FC +0x89DB 0x58FD +0x89DC 0x58FE +0x89DD 0x58FF +0x89DE 0x5900 +0x89DF 0x5901 +0x89E0 0x5903 +0x89E1 0x5905 +0x89E2 0x5906 +0x89E3 0x5908 +0x89E4 0x5909 +0x89E5 0x590A +0x89E6 0x590B +0x89E7 0x590C +0x89E8 0x590E +0x89E9 0x5910 +0x89EA 0x5911 +0x89EB 0x5912 +0x89EC 0x5913 +0x89ED 0x5917 +0x89EE 0x5918 +0x89EF 0x591B +0x89F0 0x591D +0x89F1 0x591E +0x89F2 0x5920 +0x89F3 0x5921 +0x89F4 0x5922 +0x89F5 0x5923 +0x89F6 0x5926 +0x89F7 0x5928 +0x89F8 0x592C +0x89F9 0x5930 +0x89FA 0x5932 +0x89FB 0x5933 +0x89FC 0x5935 +0x89FD 0x5936 +0x89FE 0x593B +0x8A40 0x593D +0x8A41 0x593E +0x8A42 0x593F +0x8A43 0x5940 +0x8A44 0x5943 +0x8A45 0x5945 +0x8A46 0x5946 +0x8A47 0x594A +0x8A48 0x594C +0x8A49 0x594D +0x8A4A 0x5950 +0x8A4B 0x5952 +0x8A4C 0x5953 +0x8A4D 0x5959 +0x8A4E 0x595B +0x8A4F 0x595C +0x8A50 0x595D +0x8A51 0x595E +0x8A52 0x595F +0x8A53 0x5961 +0x8A54 0x5963 +0x8A55 0x5964 +0x8A56 0x5966 +0x8A57 0x5967 +0x8A58 0x5968 +0x8A59 0x5969 +0x8A5A 0x596A +0x8A5B 0x596B +0x8A5C 0x596C +0x8A5D 0x596D +0x8A5E 0x596E +0x8A5F 0x596F +0x8A60 0x5970 +0x8A61 0x5971 +0x8A62 0x5972 +0x8A63 0x5975 +0x8A64 0x5977 +0x8A65 0x597A +0x8A66 0x597B +0x8A67 0x597C +0x8A68 0x597E +0x8A69 0x597F +0x8A6A 0x5980 +0x8A6B 0x5985 +0x8A6C 0x5989 +0x8A6D 0x598B +0x8A6E 0x598C +0x8A6F 0x598E +0x8A70 0x598F +0x8A71 0x5990 +0x8A72 0x5991 +0x8A73 0x5994 +0x8A74 0x5995 +0x8A75 0x5998 +0x8A76 0x599A +0x8A77 0x599B +0x8A78 0x599C +0x8A79 0x599D +0x8A7A 0x599F +0x8A7B 0x59A0 +0x8A7C 0x59A1 +0x8A7D 0x59A2 +0x8A7E 0x59A6 +0x8A80 0x59A7 +0x8A81 0x59AC +0x8A82 0x59AD +0x8A83 0x59B0 +0x8A84 0x59B1 +0x8A85 0x59B3 +0x8A86 0x59B4 +0x8A87 0x59B5 +0x8A88 0x59B6 +0x8A89 0x59B7 +0x8A8A 0x59B8 +0x8A8B 0x59BA +0x8A8C 0x59BC +0x8A8D 0x59BD +0x8A8E 0x59BF +0x8A8F 0x59C0 +0x8A90 0x59C1 +0x8A91 0x59C2 +0x8A92 0x59C3 +0x8A93 0x59C4 +0x8A94 0x59C5 +0x8A95 0x59C7 +0x8A96 0x59C8 +0x8A97 0x59C9 +0x8A98 0x59CC +0x8A99 0x59CD +0x8A9A 0x59CE +0x8A9B 0x59CF +0x8A9C 0x59D5 +0x8A9D 0x59D6 +0x8A9E 0x59D9 +0x8A9F 0x59DB +0x8AA0 0x59DE +0x8AA1 0x59DF +0x8AA2 0x59E0 +0x8AA3 0x59E1 +0x8AA4 0x59E2 +0x8AA5 0x59E4 +0x8AA6 0x59E6 +0x8AA7 0x59E7 +0x8AA8 0x59E9 +0x8AA9 0x59EA +0x8AAA 0x59EB +0x8AAB 0x59ED +0x8AAC 0x59EE +0x8AAD 0x59EF +0x8AAE 0x59F0 +0x8AAF 0x59F1 +0x8AB0 0x59F2 +0x8AB1 0x59F3 +0x8AB2 0x59F4 +0x8AB3 0x59F5 +0x8AB4 0x59F6 +0x8AB5 0x59F7 +0x8AB6 0x59F8 +0x8AB7 0x59FA +0x8AB8 0x59FC +0x8AB9 0x59FD +0x8ABA 0x59FE +0x8ABB 0x5A00 +0x8ABC 0x5A02 +0x8ABD 0x5A0A +0x8ABE 0x5A0B +0x8ABF 0x5A0D +0x8AC0 0x5A0E +0x8AC1 0x5A0F +0x8AC2 0x5A10 +0x8AC3 0x5A12 +0x8AC4 0x5A14 +0x8AC5 0x5A15 +0x8AC6 0x5A16 +0x8AC7 0x5A17 +0x8AC8 0x5A19 +0x8AC9 0x5A1A +0x8ACA 0x5A1B +0x8ACB 0x5A1D +0x8ACC 0x5A1E +0x8ACD 0x5A21 +0x8ACE 0x5A22 +0x8ACF 0x5A24 +0x8AD0 0x5A26 +0x8AD1 0x5A27 +0x8AD2 0x5A28 +0x8AD3 0x5A2A +0x8AD4 0x5A2B +0x8AD5 0x5A2C +0x8AD6 0x5A2D +0x8AD7 0x5A2E +0x8AD8 0x5A2F +0x8AD9 0x5A30 +0x8ADA 0x5A33 +0x8ADB 0x5A35 +0x8ADC 0x5A37 +0x8ADD 0x5A38 +0x8ADE 0x5A39 +0x8ADF 0x5A3A +0x8AE0 0x5A3B +0x8AE1 0x5A3D +0x8AE2 0x5A3E +0x8AE3 0x5A3F +0x8AE4 0x5A41 +0x8AE5 0x5A42 +0x8AE6 0x5A43 +0x8AE7 0x5A44 +0x8AE8 0x5A45 +0x8AE9 0x5A47 +0x8AEA 0x5A48 +0x8AEB 0x5A4B +0x8AEC 0x5A4C +0x8AED 0x5A4D +0x8AEE 0x5A4E +0x8AEF 0x5A4F +0x8AF0 0x5A50 +0x8AF1 0x5A51 +0x8AF2 0x5A52 +0x8AF3 0x5A53 +0x8AF4 0x5A54 +0x8AF5 0x5A56 +0x8AF6 0x5A57 +0x8AF7 0x5A58 +0x8AF8 0x5A59 +0x8AF9 0x5A5B +0x8AFA 0x5A5C +0x8AFB 0x5A5D +0x8AFC 0x5A5E +0x8AFD 0x5A5F +0x8AFE 0x5A60 +0x8B40 0x5A61 +0x8B41 0x5A63 +0x8B42 0x5A64 +0x8B43 0x5A65 +0x8B44 0x5A66 +0x8B45 0x5A68 +0x8B46 0x5A69 +0x8B47 0x5A6B +0x8B48 0x5A6C +0x8B49 0x5A6D +0x8B4A 0x5A6E +0x8B4B 0x5A6F +0x8B4C 0x5A70 +0x8B4D 0x5A71 +0x8B4E 0x5A72 +0x8B4F 0x5A73 +0x8B50 0x5A78 +0x8B51 0x5A79 +0x8B52 0x5A7B +0x8B53 0x5A7C +0x8B54 0x5A7D +0x8B55 0x5A7E +0x8B56 0x5A80 +0x8B57 0x5A81 +0x8B58 0x5A82 +0x8B59 0x5A83 +0x8B5A 0x5A84 +0x8B5B 0x5A85 +0x8B5C 0x5A86 +0x8B5D 0x5A87 +0x8B5E 0x5A88 +0x8B5F 0x5A89 +0x8B60 0x5A8A +0x8B61 0x5A8B +0x8B62 0x5A8C +0x8B63 0x5A8D +0x8B64 0x5A8E +0x8B65 0x5A8F +0x8B66 0x5A90 +0x8B67 0x5A91 +0x8B68 0x5A93 +0x8B69 0x5A94 +0x8B6A 0x5A95 +0x8B6B 0x5A96 +0x8B6C 0x5A97 +0x8B6D 0x5A98 +0x8B6E 0x5A99 +0x8B6F 0x5A9C +0x8B70 0x5A9D +0x8B71 0x5A9E +0x8B72 0x5A9F +0x8B73 0x5AA0 +0x8B74 0x5AA1 +0x8B75 0x5AA2 +0x8B76 0x5AA3 +0x8B77 0x5AA4 +0x8B78 0x5AA5 +0x8B79 0x5AA6 +0x8B7A 0x5AA7 +0x8B7B 0x5AA8 +0x8B7C 0x5AA9 +0x8B7D 0x5AAB +0x8B7E 0x5AAC +0x8B80 0x5AAD +0x8B81 0x5AAE +0x8B82 0x5AAF +0x8B83 0x5AB0 +0x8B84 0x5AB1 +0x8B85 0x5AB4 +0x8B86 0x5AB6 +0x8B87 0x5AB7 +0x8B88 0x5AB9 +0x8B89 0x5ABA +0x8B8A 0x5ABB +0x8B8B 0x5ABC +0x8B8C 0x5ABD +0x8B8D 0x5ABF +0x8B8E 0x5AC0 +0x8B8F 0x5AC3 +0x8B90 0x5AC4 +0x8B91 0x5AC5 +0x8B92 0x5AC6 +0x8B93 0x5AC7 +0x8B94 0x5AC8 +0x8B95 0x5ACA +0x8B96 0x5ACB +0x8B97 0x5ACD +0x8B98 0x5ACE +0x8B99 0x5ACF +0x8B9A 0x5AD0 +0x8B9B 0x5AD1 +0x8B9C 0x5AD3 +0x8B9D 0x5AD5 +0x8B9E 0x5AD7 +0x8B9F 0x5AD9 +0x8BA0 0x5ADA +0x8BA1 0x5ADB +0x8BA2 0x5ADD +0x8BA3 0x5ADE +0x8BA4 0x5ADF +0x8BA5 0x5AE2 +0x8BA6 0x5AE4 +0x8BA7 0x5AE5 +0x8BA8 0x5AE7 +0x8BA9 0x5AE8 +0x8BAA 0x5AEA +0x8BAB 0x5AEC +0x8BAC 0x5AED +0x8BAD 0x5AEE +0x8BAE 0x5AEF +0x8BAF 0x5AF0 +0x8BB0 0x5AF2 +0x8BB1 0x5AF3 +0x8BB2 0x5AF4 +0x8BB3 0x5AF5 +0x8BB4 0x5AF6 +0x8BB5 0x5AF7 +0x8BB6 0x5AF8 +0x8BB7 0x5AF9 +0x8BB8 0x5AFA +0x8BB9 0x5AFB +0x8BBA 0x5AFC +0x8BBB 0x5AFD +0x8BBC 0x5AFE +0x8BBD 0x5AFF +0x8BBE 0x5B00 +0x8BBF 0x5B01 +0x8BC0 0x5B02 +0x8BC1 0x5B03 +0x8BC2 0x5B04 +0x8BC3 0x5B05 +0x8BC4 0x5B06 +0x8BC5 0x5B07 +0x8BC6 0x5B08 +0x8BC7 0x5B0A +0x8BC8 0x5B0B +0x8BC9 0x5B0C +0x8BCA 0x5B0D +0x8BCB 0x5B0E +0x8BCC 0x5B0F +0x8BCD 0x5B10 +0x8BCE 0x5B11 +0x8BCF 0x5B12 +0x8BD0 0x5B13 +0x8BD1 0x5B14 +0x8BD2 0x5B15 +0x8BD3 0x5B18 +0x8BD4 0x5B19 +0x8BD5 0x5B1A +0x8BD6 0x5B1B +0x8BD7 0x5B1C +0x8BD8 0x5B1D +0x8BD9 0x5B1E +0x8BDA 0x5B1F +0x8BDB 0x5B20 +0x8BDC 0x5B21 +0x8BDD 0x5B22 +0x8BDE 0x5B23 +0x8BDF 0x5B24 +0x8BE0 0x5B25 +0x8BE1 0x5B26 +0x8BE2 0x5B27 +0x8BE3 0x5B28 +0x8BE4 0x5B29 +0x8BE5 0x5B2A +0x8BE6 0x5B2B +0x8BE7 0x5B2C +0x8BE8 0x5B2D +0x8BE9 0x5B2E +0x8BEA 0x5B2F +0x8BEB 0x5B30 +0x8BEC 0x5B31 +0x8BED 0x5B33 +0x8BEE 0x5B35 +0x8BEF 0x5B36 +0x8BF0 0x5B38 +0x8BF1 0x5B39 +0x8BF2 0x5B3A +0x8BF3 0x5B3B +0x8BF4 0x5B3C +0x8BF5 0x5B3D +0x8BF6 0x5B3E +0x8BF7 0x5B3F +0x8BF8 0x5B41 +0x8BF9 0x5B42 +0x8BFA 0x5B43 +0x8BFB 0x5B44 +0x8BFC 0x5B45 +0x8BFD 0x5B46 +0x8BFE 0x5B47 +0x8C40 0x5B48 +0x8C41 0x5B49 +0x8C42 0x5B4A +0x8C43 0x5B4B +0x8C44 0x5B4C +0x8C45 0x5B4D +0x8C46 0x5B4E +0x8C47 0x5B4F +0x8C48 0x5B52 +0x8C49 0x5B56 +0x8C4A 0x5B5E +0x8C4B 0x5B60 +0x8C4C 0x5B61 +0x8C4D 0x5B67 +0x8C4E 0x5B68 +0x8C4F 0x5B6B +0x8C50 0x5B6D +0x8C51 0x5B6E +0x8C52 0x5B6F +0x8C53 0x5B72 +0x8C54 0x5B74 +0x8C55 0x5B76 +0x8C56 0x5B77 +0x8C57 0x5B78 +0x8C58 0x5B79 +0x8C59 0x5B7B +0x8C5A 0x5B7C +0x8C5B 0x5B7E +0x8C5C 0x5B7F +0x8C5D 0x5B82 +0x8C5E 0x5B86 +0x8C5F 0x5B8A +0x8C60 0x5B8D +0x8C61 0x5B8E +0x8C62 0x5B90 +0x8C63 0x5B91 +0x8C64 0x5B92 +0x8C65 0x5B94 +0x8C66 0x5B96 +0x8C67 0x5B9F +0x8C68 0x5BA7 +0x8C69 0x5BA8 +0x8C6A 0x5BA9 +0x8C6B 0x5BAC +0x8C6C 0x5BAD +0x8C6D 0x5BAE +0x8C6E 0x5BAF +0x8C6F 0x5BB1 +0x8C70 0x5BB2 +0x8C71 0x5BB7 +0x8C72 0x5BBA +0x8C73 0x5BBB +0x8C74 0x5BBC +0x8C75 0x5BC0 +0x8C76 0x5BC1 +0x8C77 0x5BC3 +0x8C78 0x5BC8 +0x8C79 0x5BC9 +0x8C7A 0x5BCA +0x8C7B 0x5BCB +0x8C7C 0x5BCD +0x8C7D 0x5BCE +0x8C7E 0x5BCF +0x8C80 0x5BD1 +0x8C81 0x5BD4 +0x8C82 0x5BD5 +0x8C83 0x5BD6 +0x8C84 0x5BD7 +0x8C85 0x5BD8 +0x8C86 0x5BD9 +0x8C87 0x5BDA +0x8C88 0x5BDB +0x8C89 0x5BDC +0x8C8A 0x5BE0 +0x8C8B 0x5BE2 +0x8C8C 0x5BE3 +0x8C8D 0x5BE6 +0x8C8E 0x5BE7 +0x8C8F 0x5BE9 +0x8C90 0x5BEA +0x8C91 0x5BEB +0x8C92 0x5BEC +0x8C93 0x5BED +0x8C94 0x5BEF +0x8C95 0x5BF1 +0x8C96 0x5BF2 +0x8C97 0x5BF3 +0x8C98 0x5BF4 +0x8C99 0x5BF5 +0x8C9A 0x5BF6 +0x8C9B 0x5BF7 +0x8C9C 0x5BFD +0x8C9D 0x5BFE +0x8C9E 0x5C00 +0x8C9F 0x5C02 +0x8CA0 0x5C03 +0x8CA1 0x5C05 +0x8CA2 0x5C07 +0x8CA3 0x5C08 +0x8CA4 0x5C0B +0x8CA5 0x5C0C +0x8CA6 0x5C0D +0x8CA7 0x5C0E +0x8CA8 0x5C10 +0x8CA9 0x5C12 +0x8CAA 0x5C13 +0x8CAB 0x5C17 +0x8CAC 0x5C19 +0x8CAD 0x5C1B +0x8CAE 0x5C1E +0x8CAF 0x5C1F +0x8CB0 0x5C20 +0x8CB1 0x5C21 +0x8CB2 0x5C23 +0x8CB3 0x5C26 +0x8CB4 0x5C28 +0x8CB5 0x5C29 +0x8CB6 0x5C2A +0x8CB7 0x5C2B +0x8CB8 0x5C2D +0x8CB9 0x5C2E +0x8CBA 0x5C2F +0x8CBB 0x5C30 +0x8CBC 0x5C32 +0x8CBD 0x5C33 +0x8CBE 0x5C35 +0x8CBF 0x5C36 +0x8CC0 0x5C37 +0x8CC1 0x5C43 +0x8CC2 0x5C44 +0x8CC3 0x5C46 +0x8CC4 0x5C47 +0x8CC5 0x5C4C +0x8CC6 0x5C4D +0x8CC7 0x5C52 +0x8CC8 0x5C53 +0x8CC9 0x5C54 +0x8CCA 0x5C56 +0x8CCB 0x5C57 +0x8CCC 0x5C58 +0x8CCD 0x5C5A +0x8CCE 0x5C5B +0x8CCF 0x5C5C +0x8CD0 0x5C5D +0x8CD1 0x5C5F +0x8CD2 0x5C62 +0x8CD3 0x5C64 +0x8CD4 0x5C67 +0x8CD5 0x5C68 +0x8CD6 0x5C69 +0x8CD7 0x5C6A +0x8CD8 0x5C6B +0x8CD9 0x5C6C +0x8CDA 0x5C6D +0x8CDB 0x5C70 +0x8CDC 0x5C72 +0x8CDD 0x5C73 +0x8CDE 0x5C74 +0x8CDF 0x5C75 +0x8CE0 0x5C76 +0x8CE1 0x5C77 +0x8CE2 0x5C78 +0x8CE3 0x5C7B +0x8CE4 0x5C7C +0x8CE5 0x5C7D +0x8CE6 0x5C7E +0x8CE7 0x5C80 +0x8CE8 0x5C83 +0x8CE9 0x5C84 +0x8CEA 0x5C85 +0x8CEB 0x5C86 +0x8CEC 0x5C87 +0x8CED 0x5C89 +0x8CEE 0x5C8A +0x8CEF 0x5C8B +0x8CF0 0x5C8E +0x8CF1 0x5C8F +0x8CF2 0x5C92 +0x8CF3 0x5C93 +0x8CF4 0x5C95 +0x8CF5 0x5C9D +0x8CF6 0x5C9E +0x8CF7 0x5C9F +0x8CF8 0x5CA0 +0x8CF9 0x5CA1 +0x8CFA 0x5CA4 +0x8CFB 0x5CA5 +0x8CFC 0x5CA6 +0x8CFD 0x5CA7 +0x8CFE 0x5CA8 +0x8D40 0x5CAA +0x8D41 0x5CAE +0x8D42 0x5CAF +0x8D43 0x5CB0 +0x8D44 0x5CB2 +0x8D45 0x5CB4 +0x8D46 0x5CB6 +0x8D47 0x5CB9 +0x8D48 0x5CBA +0x8D49 0x5CBB +0x8D4A 0x5CBC +0x8D4B 0x5CBE +0x8D4C 0x5CC0 +0x8D4D 0x5CC2 +0x8D4E 0x5CC3 +0x8D4F 0x5CC5 +0x8D50 0x5CC6 +0x8D51 0x5CC7 +0x8D52 0x5CC8 +0x8D53 0x5CC9 +0x8D54 0x5CCA +0x8D55 0x5CCC +0x8D56 0x5CCD +0x8D57 0x5CCE +0x8D58 0x5CCF +0x8D59 0x5CD0 +0x8D5A 0x5CD1 +0x8D5B 0x5CD3 +0x8D5C 0x5CD4 +0x8D5D 0x5CD5 +0x8D5E 0x5CD6 +0x8D5F 0x5CD7 +0x8D60 0x5CD8 +0x8D61 0x5CDA +0x8D62 0x5CDB +0x8D63 0x5CDC +0x8D64 0x5CDD +0x8D65 0x5CDE +0x8D66 0x5CDF +0x8D67 0x5CE0 +0x8D68 0x5CE2 +0x8D69 0x5CE3 +0x8D6A 0x5CE7 +0x8D6B 0x5CE9 +0x8D6C 0x5CEB +0x8D6D 0x5CEC +0x8D6E 0x5CEE +0x8D6F 0x5CEF +0x8D70 0x5CF1 +0x8D71 0x5CF2 +0x8D72 0x5CF3 +0x8D73 0x5CF4 +0x8D74 0x5CF5 +0x8D75 0x5CF6 +0x8D76 0x5CF7 +0x8D77 0x5CF8 +0x8D78 0x5CF9 +0x8D79 0x5CFA +0x8D7A 0x5CFC +0x8D7B 0x5CFD +0x8D7C 0x5CFE +0x8D7D 0x5CFF +0x8D7E 0x5D00 +0x8D80 0x5D01 +0x8D81 0x5D04 +0x8D82 0x5D05 +0x8D83 0x5D08 +0x8D84 0x5D09 +0x8D85 0x5D0A +0x8D86 0x5D0B +0x8D87 0x5D0C +0x8D88 0x5D0D +0x8D89 0x5D0F +0x8D8A 0x5D10 +0x8D8B 0x5D11 +0x8D8C 0x5D12 +0x8D8D 0x5D13 +0x8D8E 0x5D15 +0x8D8F 0x5D17 +0x8D90 0x5D18 +0x8D91 0x5D19 +0x8D92 0x5D1A +0x8D93 0x5D1C +0x8D94 0x5D1D +0x8D95 0x5D1F +0x8D96 0x5D20 +0x8D97 0x5D21 +0x8D98 0x5D22 +0x8D99 0x5D23 +0x8D9A 0x5D25 +0x8D9B 0x5D28 +0x8D9C 0x5D2A +0x8D9D 0x5D2B +0x8D9E 0x5D2C +0x8D9F 0x5D2F +0x8DA0 0x5D30 +0x8DA1 0x5D31 +0x8DA2 0x5D32 +0x8DA3 0x5D33 +0x8DA4 0x5D35 +0x8DA5 0x5D36 +0x8DA6 0x5D37 +0x8DA7 0x5D38 +0x8DA8 0x5D39 +0x8DA9 0x5D3A +0x8DAA 0x5D3B +0x8DAB 0x5D3C +0x8DAC 0x5D3F +0x8DAD 0x5D40 +0x8DAE 0x5D41 +0x8DAF 0x5D42 +0x8DB0 0x5D43 +0x8DB1 0x5D44 +0x8DB2 0x5D45 +0x8DB3 0x5D46 +0x8DB4 0x5D48 +0x8DB5 0x5D49 +0x8DB6 0x5D4D +0x8DB7 0x5D4E +0x8DB8 0x5D4F +0x8DB9 0x5D50 +0x8DBA 0x5D51 +0x8DBB 0x5D52 +0x8DBC 0x5D53 +0x8DBD 0x5D54 +0x8DBE 0x5D55 +0x8DBF 0x5D56 +0x8DC0 0x5D57 +0x8DC1 0x5D59 +0x8DC2 0x5D5A +0x8DC3 0x5D5C +0x8DC4 0x5D5E +0x8DC5 0x5D5F +0x8DC6 0x5D60 +0x8DC7 0x5D61 +0x8DC8 0x5D62 +0x8DC9 0x5D63 +0x8DCA 0x5D64 +0x8DCB 0x5D65 +0x8DCC 0x5D66 +0x8DCD 0x5D67 +0x8DCE 0x5D68 +0x8DCF 0x5D6A +0x8DD0 0x5D6D +0x8DD1 0x5D6E +0x8DD2 0x5D70 +0x8DD3 0x5D71 +0x8DD4 0x5D72 +0x8DD5 0x5D73 +0x8DD6 0x5D75 +0x8DD7 0x5D76 +0x8DD8 0x5D77 +0x8DD9 0x5D78 +0x8DDA 0x5D79 +0x8DDB 0x5D7A +0x8DDC 0x5D7B +0x8DDD 0x5D7C +0x8DDE 0x5D7D +0x8DDF 0x5D7E +0x8DE0 0x5D7F +0x8DE1 0x5D80 +0x8DE2 0x5D81 +0x8DE3 0x5D83 +0x8DE4 0x5D84 +0x8DE5 0x5D85 +0x8DE6 0x5D86 +0x8DE7 0x5D87 +0x8DE8 0x5D88 +0x8DE9 0x5D89 +0x8DEA 0x5D8A +0x8DEB 0x5D8B +0x8DEC 0x5D8C +0x8DED 0x5D8D +0x8DEE 0x5D8E +0x8DEF 0x5D8F +0x8DF0 0x5D90 +0x8DF1 0x5D91 +0x8DF2 0x5D92 +0x8DF3 0x5D93 +0x8DF4 0x5D94 +0x8DF5 0x5D95 +0x8DF6 0x5D96 +0x8DF7 0x5D97 +0x8DF8 0x5D98 +0x8DF9 0x5D9A +0x8DFA 0x5D9B +0x8DFB 0x5D9C +0x8DFC 0x5D9E +0x8DFD 0x5D9F +0x8DFE 0x5DA0 +0x8E40 0x5DA1 +0x8E41 0x5DA2 +0x8E42 0x5DA3 +0x8E43 0x5DA4 +0x8E44 0x5DA5 +0x8E45 0x5DA6 +0x8E46 0x5DA7 +0x8E47 0x5DA8 +0x8E48 0x5DA9 +0x8E49 0x5DAA +0x8E4A 0x5DAB +0x8E4B 0x5DAC +0x8E4C 0x5DAD +0x8E4D 0x5DAE +0x8E4E 0x5DAF +0x8E4F 0x5DB0 +0x8E50 0x5DB1 +0x8E51 0x5DB2 +0x8E52 0x5DB3 +0x8E53 0x5DB4 +0x8E54 0x5DB5 +0x8E55 0x5DB6 +0x8E56 0x5DB8 +0x8E57 0x5DB9 +0x8E58 0x5DBA +0x8E59 0x5DBB +0x8E5A 0x5DBC +0x8E5B 0x5DBD +0x8E5C 0x5DBE +0x8E5D 0x5DBF +0x8E5E 0x5DC0 +0x8E5F 0x5DC1 +0x8E60 0x5DC2 +0x8E61 0x5DC3 +0x8E62 0x5DC4 +0x8E63 0x5DC6 +0x8E64 0x5DC7 +0x8E65 0x5DC8 +0x8E66 0x5DC9 +0x8E67 0x5DCA +0x8E68 0x5DCB +0x8E69 0x5DCC +0x8E6A 0x5DCE +0x8E6B 0x5DCF +0x8E6C 0x5DD0 +0x8E6D 0x5DD1 +0x8E6E 0x5DD2 +0x8E6F 0x5DD3 +0x8E70 0x5DD4 +0x8E71 0x5DD5 +0x8E72 0x5DD6 +0x8E73 0x5DD7 +0x8E74 0x5DD8 +0x8E75 0x5DD9 +0x8E76 0x5DDA +0x8E77 0x5DDC +0x8E78 0x5DDF +0x8E79 0x5DE0 +0x8E7A 0x5DE3 +0x8E7B 0x5DE4 +0x8E7C 0x5DEA +0x8E7D 0x5DEC +0x8E7E 0x5DED +0x8E80 0x5DF0 +0x8E81 0x5DF5 +0x8E82 0x5DF6 +0x8E83 0x5DF8 +0x8E84 0x5DF9 +0x8E85 0x5DFA +0x8E86 0x5DFB +0x8E87 0x5DFC +0x8E88 0x5DFF +0x8E89 0x5E00 +0x8E8A 0x5E04 +0x8E8B 0x5E07 +0x8E8C 0x5E09 +0x8E8D 0x5E0A +0x8E8E 0x5E0B +0x8E8F 0x5E0D +0x8E90 0x5E0E +0x8E91 0x5E12 +0x8E92 0x5E13 +0x8E93 0x5E17 +0x8E94 0x5E1E +0x8E95 0x5E1F +0x8E96 0x5E20 +0x8E97 0x5E21 +0x8E98 0x5E22 +0x8E99 0x5E23 +0x8E9A 0x5E24 +0x8E9B 0x5E25 +0x8E9C 0x5E28 +0x8E9D 0x5E29 +0x8E9E 0x5E2A +0x8E9F 0x5E2B +0x8EA0 0x5E2C +0x8EA1 0x5E2F +0x8EA2 0x5E30 +0x8EA3 0x5E32 +0x8EA4 0x5E33 +0x8EA5 0x5E34 +0x8EA6 0x5E35 +0x8EA7 0x5E36 +0x8EA8 0x5E39 +0x8EA9 0x5E3A +0x8EAA 0x5E3E +0x8EAB 0x5E3F +0x8EAC 0x5E40 +0x8EAD 0x5E41 +0x8EAE 0x5E43 +0x8EAF 0x5E46 +0x8EB0 0x5E47 +0x8EB1 0x5E48 +0x8EB2 0x5E49 +0x8EB3 0x5E4A +0x8EB4 0x5E4B +0x8EB5 0x5E4D +0x8EB6 0x5E4E +0x8EB7 0x5E4F +0x8EB8 0x5E50 +0x8EB9 0x5E51 +0x8EBA 0x5E52 +0x8EBB 0x5E53 +0x8EBC 0x5E56 +0x8EBD 0x5E57 +0x8EBE 0x5E58 +0x8EBF 0x5E59 +0x8EC0 0x5E5A +0x8EC1 0x5E5C +0x8EC2 0x5E5D +0x8EC3 0x5E5F +0x8EC4 0x5E60 +0x8EC5 0x5E63 +0x8EC6 0x5E64 +0x8EC7 0x5E65 +0x8EC8 0x5E66 +0x8EC9 0x5E67 +0x8ECA 0x5E68 +0x8ECB 0x5E69 +0x8ECC 0x5E6A +0x8ECD 0x5E6B +0x8ECE 0x5E6C +0x8ECF 0x5E6D +0x8ED0 0x5E6E +0x8ED1 0x5E6F +0x8ED2 0x5E70 +0x8ED3 0x5E71 +0x8ED4 0x5E75 +0x8ED5 0x5E77 +0x8ED6 0x5E79 +0x8ED7 0x5E7E +0x8ED8 0x5E81 +0x8ED9 0x5E82 +0x8EDA 0x5E83 +0x8EDB 0x5E85 +0x8EDC 0x5E88 +0x8EDD 0x5E89 +0x8EDE 0x5E8C +0x8EDF 0x5E8D +0x8EE0 0x5E8E +0x8EE1 0x5E92 +0x8EE2 0x5E98 +0x8EE3 0x5E9B +0x8EE4 0x5E9D +0x8EE5 0x5EA1 +0x8EE6 0x5EA2 +0x8EE7 0x5EA3 +0x8EE8 0x5EA4 +0x8EE9 0x5EA8 +0x8EEA 0x5EA9 +0x8EEB 0x5EAA +0x8EEC 0x5EAB +0x8EED 0x5EAC +0x8EEE 0x5EAE +0x8EEF 0x5EAF +0x8EF0 0x5EB0 +0x8EF1 0x5EB1 +0x8EF2 0x5EB2 +0x8EF3 0x5EB4 +0x8EF4 0x5EBA +0x8EF5 0x5EBB +0x8EF6 0x5EBC +0x8EF7 0x5EBD +0x8EF8 0x5EBF +0x8EF9 0x5EC0 +0x8EFA 0x5EC1 +0x8EFB 0x5EC2 +0x8EFC 0x5EC3 +0x8EFD 0x5EC4 +0x8EFE 0x5EC5 +0x8F40 0x5EC6 +0x8F41 0x5EC7 +0x8F42 0x5EC8 +0x8F43 0x5ECB +0x8F44 0x5ECC +0x8F45 0x5ECD +0x8F46 0x5ECE +0x8F47 0x5ECF +0x8F48 0x5ED0 +0x8F49 0x5ED4 +0x8F4A 0x5ED5 +0x8F4B 0x5ED7 +0x8F4C 0x5ED8 +0x8F4D 0x5ED9 +0x8F4E 0x5EDA +0x8F4F 0x5EDC +0x8F50 0x5EDD +0x8F51 0x5EDE +0x8F52 0x5EDF +0x8F53 0x5EE0 +0x8F54 0x5EE1 +0x8F55 0x5EE2 +0x8F56 0x5EE3 +0x8F57 0x5EE4 +0x8F58 0x5EE5 +0x8F59 0x5EE6 +0x8F5A 0x5EE7 +0x8F5B 0x5EE9 +0x8F5C 0x5EEB +0x8F5D 0x5EEC +0x8F5E 0x5EED +0x8F5F 0x5EEE +0x8F60 0x5EEF +0x8F61 0x5EF0 +0x8F62 0x5EF1 +0x8F63 0x5EF2 +0x8F64 0x5EF3 +0x8F65 0x5EF5 +0x8F66 0x5EF8 +0x8F67 0x5EF9 +0x8F68 0x5EFB +0x8F69 0x5EFC +0x8F6A 0x5EFD +0x8F6B 0x5F05 +0x8F6C 0x5F06 +0x8F6D 0x5F07 +0x8F6E 0x5F09 +0x8F6F 0x5F0C +0x8F70 0x5F0D +0x8F71 0x5F0E +0x8F72 0x5F10 +0x8F73 0x5F12 +0x8F74 0x5F14 +0x8F75 0x5F16 +0x8F76 0x5F19 +0x8F77 0x5F1A +0x8F78 0x5F1C +0x8F79 0x5F1D +0x8F7A 0x5F1E +0x8F7B 0x5F21 +0x8F7C 0x5F22 +0x8F7D 0x5F23 +0x8F7E 0x5F24 +0x8F80 0x5F28 +0x8F81 0x5F2B +0x8F82 0x5F2C +0x8F83 0x5F2E +0x8F84 0x5F30 +0x8F85 0x5F32 +0x8F86 0x5F33 +0x8F87 0x5F34 +0x8F88 0x5F35 +0x8F89 0x5F36 +0x8F8A 0x5F37 +0x8F8B 0x5F38 +0x8F8C 0x5F3B +0x8F8D 0x5F3D +0x8F8E 0x5F3E +0x8F8F 0x5F3F +0x8F90 0x5F41 +0x8F91 0x5F42 +0x8F92 0x5F43 +0x8F93 0x5F44 +0x8F94 0x5F45 +0x8F95 0x5F46 +0x8F96 0x5F47 +0x8F97 0x5F48 +0x8F98 0x5F49 +0x8F99 0x5F4A +0x8F9A 0x5F4B +0x8F9B 0x5F4C +0x8F9C 0x5F4D +0x8F9D 0x5F4E +0x8F9E 0x5F4F +0x8F9F 0x5F51 +0x8FA0 0x5F54 +0x8FA1 0x5F59 +0x8FA2 0x5F5A +0x8FA3 0x5F5B +0x8FA4 0x5F5C +0x8FA5 0x5F5E +0x8FA6 0x5F5F +0x8FA7 0x5F60 +0x8FA8 0x5F63 +0x8FA9 0x5F65 +0x8FAA 0x5F67 +0x8FAB 0x5F68 +0x8FAC 0x5F6B +0x8FAD 0x5F6E +0x8FAE 0x5F6F +0x8FAF 0x5F72 +0x8FB0 0x5F74 +0x8FB1 0x5F75 +0x8FB2 0x5F76 +0x8FB3 0x5F78 +0x8FB4 0x5F7A +0x8FB5 0x5F7D +0x8FB6 0x5F7E +0x8FB7 0x5F7F +0x8FB8 0x5F83 +0x8FB9 0x5F86 +0x8FBA 0x5F8D +0x8FBB 0x5F8E +0x8FBC 0x5F8F +0x8FBD 0x5F91 +0x8FBE 0x5F93 +0x8FBF 0x5F94 +0x8FC0 0x5F96 +0x8FC1 0x5F9A +0x8FC2 0x5F9B +0x8FC3 0x5F9D +0x8FC4 0x5F9E +0x8FC5 0x5F9F +0x8FC6 0x5FA0 +0x8FC7 0x5FA2 +0x8FC8 0x5FA3 +0x8FC9 0x5FA4 +0x8FCA 0x5FA5 +0x8FCB 0x5FA6 +0x8FCC 0x5FA7 +0x8FCD 0x5FA9 +0x8FCE 0x5FAB +0x8FCF 0x5FAC +0x8FD0 0x5FAF +0x8FD1 0x5FB0 +0x8FD2 0x5FB1 +0x8FD3 0x5FB2 +0x8FD4 0x5FB3 +0x8FD5 0x5FB4 +0x8FD6 0x5FB6 +0x8FD7 0x5FB8 +0x8FD8 0x5FB9 +0x8FD9 0x5FBA +0x8FDA 0x5FBB +0x8FDB 0x5FBE +0x8FDC 0x5FBF +0x8FDD 0x5FC0 +0x8FDE 0x5FC1 +0x8FDF 0x5FC2 +0x8FE0 0x5FC7 +0x8FE1 0x5FC8 +0x8FE2 0x5FCA +0x8FE3 0x5FCB +0x8FE4 0x5FCE +0x8FE5 0x5FD3 +0x8FE6 0x5FD4 +0x8FE7 0x5FD5 +0x8FE8 0x5FDA +0x8FE9 0x5FDB +0x8FEA 0x5FDC +0x8FEB 0x5FDE +0x8FEC 0x5FDF +0x8FED 0x5FE2 +0x8FEE 0x5FE3 +0x8FEF 0x5FE5 +0x8FF0 0x5FE6 +0x8FF1 0x5FE8 +0x8FF2 0x5FE9 +0x8FF3 0x5FEC +0x8FF4 0x5FEF +0x8FF5 0x5FF0 +0x8FF6 0x5FF2 +0x8FF7 0x5FF3 +0x8FF8 0x5FF4 +0x8FF9 0x5FF6 +0x8FFA 0x5FF7 +0x8FFB 0x5FF9 +0x8FFC 0x5FFA +0x8FFD 0x5FFC +0x8FFE 0x6007 +0x9040 0x6008 +0x9041 0x6009 +0x9042 0x600B +0x9043 0x600C +0x9044 0x6010 +0x9045 0x6011 +0x9046 0x6013 +0x9047 0x6017 +0x9048 0x6018 +0x9049 0x601A +0x904A 0x601E +0x904B 0x601F +0x904C 0x6022 +0x904D 0x6023 +0x904E 0x6024 +0x904F 0x602C +0x9050 0x602D +0x9051 0x602E +0x9052 0x6030 +0x9053 0x6031 +0x9054 0x6032 +0x9055 0x6033 +0x9056 0x6034 +0x9057 0x6036 +0x9058 0x6037 +0x9059 0x6038 +0x905A 0x6039 +0x905B 0x603A +0x905C 0x603D +0x905D 0x603E +0x905E 0x6040 +0x905F 0x6044 +0x9060 0x6045 +0x9061 0x6046 +0x9062 0x6047 +0x9063 0x6048 +0x9064 0x6049 +0x9065 0x604A +0x9066 0x604C +0x9067 0x604E +0x9068 0x604F +0x9069 0x6051 +0x906A 0x6053 +0x906B 0x6054 +0x906C 0x6056 +0x906D 0x6057 +0x906E 0x6058 +0x906F 0x605B +0x9070 0x605C +0x9071 0x605E +0x9072 0x605F +0x9073 0x6060 +0x9074 0x6061 +0x9075 0x6065 +0x9076 0x6066 +0x9077 0x606E +0x9078 0x6071 +0x9079 0x6072 +0x907A 0x6074 +0x907B 0x6075 +0x907C 0x6077 +0x907D 0x607E +0x907E 0x6080 +0x9080 0x6081 +0x9081 0x6082 +0x9082 0x6085 +0x9083 0x6086 +0x9084 0x6087 +0x9085 0x6088 +0x9086 0x608A +0x9087 0x608B +0x9088 0x608E +0x9089 0x608F +0x908A 0x6090 +0x908B 0x6091 +0x908C 0x6093 +0x908D 0x6095 +0x908E 0x6097 +0x908F 0x6098 +0x9090 0x6099 +0x9091 0x609C +0x9092 0x609E +0x9093 0x60A1 +0x9094 0x60A2 +0x9095 0x60A4 +0x9096 0x60A5 +0x9097 0x60A7 +0x9098 0x60A9 +0x9099 0x60AA +0x909A 0x60AE +0x909B 0x60B0 +0x909C 0x60B3 +0x909D 0x60B5 +0x909E 0x60B6 +0x909F 0x60B7 +0x90A0 0x60B9 +0x90A1 0x60BA +0x90A2 0x60BD +0x90A3 0x60BE +0x90A4 0x60BF +0x90A5 0x60C0 +0x90A6 0x60C1 +0x90A7 0x60C2 +0x90A8 0x60C3 +0x90A9 0x60C4 +0x90AA 0x60C7 +0x90AB 0x60C8 +0x90AC 0x60C9 +0x90AD 0x60CC +0x90AE 0x60CD +0x90AF 0x60CE +0x90B0 0x60CF +0x90B1 0x60D0 +0x90B2 0x60D2 +0x90B3 0x60D3 +0x90B4 0x60D4 +0x90B5 0x60D6 +0x90B6 0x60D7 +0x90B7 0x60D9 +0x90B8 0x60DB +0x90B9 0x60DE +0x90BA 0x60E1 +0x90BB 0x60E2 +0x90BC 0x60E3 +0x90BD 0x60E4 +0x90BE 0x60E5 +0x90BF 0x60EA +0x90C0 0x60F1 +0x90C1 0x60F2 +0x90C2 0x60F5 +0x90C3 0x60F7 +0x90C4 0x60F8 +0x90C5 0x60FB +0x90C6 0x60FC +0x90C7 0x60FD +0x90C8 0x60FE +0x90C9 0x60FF +0x90CA 0x6102 +0x90CB 0x6103 +0x90CC 0x6104 +0x90CD 0x6105 +0x90CE 0x6107 +0x90CF 0x610A +0x90D0 0x610B +0x90D1 0x610C +0x90D2 0x6110 +0x90D3 0x6111 +0x90D4 0x6112 +0x90D5 0x6113 +0x90D6 0x6114 +0x90D7 0x6116 +0x90D8 0x6117 +0x90D9 0x6118 +0x90DA 0x6119 +0x90DB 0x611B +0x90DC 0x611C +0x90DD 0x611D +0x90DE 0x611E +0x90DF 0x6121 +0x90E0 0x6122 +0x90E1 0x6125 +0x90E2 0x6128 +0x90E3 0x6129 +0x90E4 0x612A +0x90E5 0x612C +0x90E6 0x612D +0x90E7 0x612E +0x90E8 0x612F +0x90E9 0x6130 +0x90EA 0x6131 +0x90EB 0x6132 +0x90EC 0x6133 +0x90ED 0x6134 +0x90EE 0x6135 +0x90EF 0x6136 +0x90F0 0x6137 +0x90F1 0x6138 +0x90F2 0x6139 +0x90F3 0x613A +0x90F4 0x613B +0x90F5 0x613C +0x90F6 0x613D +0x90F7 0x613E +0x90F8 0x6140 +0x90F9 0x6141 +0x90FA 0x6142 +0x90FB 0x6143 +0x90FC 0x6144 +0x90FD 0x6145 +0x90FE 0x6146 +0x9140 0x6147 +0x9141 0x6149 +0x9142 0x614B +0x9143 0x614D +0x9144 0x614F +0x9145 0x6150 +0x9146 0x6152 +0x9147 0x6153 +0x9148 0x6154 +0x9149 0x6156 +0x914A 0x6157 +0x914B 0x6158 +0x914C 0x6159 +0x914D 0x615A +0x914E 0x615B +0x914F 0x615C +0x9150 0x615E +0x9151 0x615F +0x9152 0x6160 +0x9153 0x6161 +0x9154 0x6163 +0x9155 0x6164 +0x9156 0x6165 +0x9157 0x6166 +0x9158 0x6169 +0x9159 0x616A +0x915A 0x616B +0x915B 0x616C +0x915C 0x616D +0x915D 0x616E +0x915E 0x616F +0x915F 0x6171 +0x9160 0x6172 +0x9161 0x6173 +0x9162 0x6174 +0x9163 0x6176 +0x9164 0x6178 +0x9165 0x6179 +0x9166 0x617A +0x9167 0x617B +0x9168 0x617C +0x9169 0x617D +0x916A 0x617E +0x916B 0x617F +0x916C 0x6180 +0x916D 0x6181 +0x916E 0x6182 +0x916F 0x6183 +0x9170 0x6184 +0x9171 0x6185 +0x9172 0x6186 +0x9173 0x6187 +0x9174 0x6188 +0x9175 0x6189 +0x9176 0x618A +0x9177 0x618C +0x9178 0x618D +0x9179 0x618F +0x917A 0x6190 +0x917B 0x6191 +0x917C 0x6192 +0x917D 0x6193 +0x917E 0x6195 +0x9180 0x6196 +0x9181 0x6197 +0x9182 0x6198 +0x9183 0x6199 +0x9184 0x619A +0x9185 0x619B +0x9186 0x619C +0x9187 0x619E +0x9188 0x619F +0x9189 0x61A0 +0x918A 0x61A1 +0x918B 0x61A2 +0x918C 0x61A3 +0x918D 0x61A4 +0x918E 0x61A5 +0x918F 0x61A6 +0x9190 0x61AA +0x9191 0x61AB +0x9192 0x61AD +0x9193 0x61AE +0x9194 0x61AF +0x9195 0x61B0 +0x9196 0x61B1 +0x9197 0x61B2 +0x9198 0x61B3 +0x9199 0x61B4 +0x919A 0x61B5 +0x919B 0x61B6 +0x919C 0x61B8 +0x919D 0x61B9 +0x919E 0x61BA +0x919F 0x61BB +0x91A0 0x61BC +0x91A1 0x61BD +0x91A2 0x61BF +0x91A3 0x61C0 +0x91A4 0x61C1 +0x91A5 0x61C3 +0x91A6 0x61C4 +0x91A7 0x61C5 +0x91A8 0x61C6 +0x91A9 0x61C7 +0x91AA 0x61C9 +0x91AB 0x61CC +0x91AC 0x61CD +0x91AD 0x61CE +0x91AE 0x61CF +0x91AF 0x61D0 +0x91B0 0x61D3 +0x91B1 0x61D5 +0x91B2 0x61D6 +0x91B3 0x61D7 +0x91B4 0x61D8 +0x91B5 0x61D9 +0x91B6 0x61DA +0x91B7 0x61DB +0x91B8 0x61DC +0x91B9 0x61DD +0x91BA 0x61DE +0x91BB 0x61DF +0x91BC 0x61E0 +0x91BD 0x61E1 +0x91BE 0x61E2 +0x91BF 0x61E3 +0x91C0 0x61E4 +0x91C1 0x61E5 +0x91C2 0x61E7 +0x91C3 0x61E8 +0x91C4 0x61E9 +0x91C5 0x61EA +0x91C6 0x61EB +0x91C7 0x61EC +0x91C8 0x61ED +0x91C9 0x61EE +0x91CA 0x61EF +0x91CB 0x61F0 +0x91CC 0x61F1 +0x91CD 0x61F2 +0x91CE 0x61F3 +0x91CF 0x61F4 +0x91D0 0x61F6 +0x91D1 0x61F7 +0x91D2 0x61F8 +0x91D3 0x61F9 +0x91D4 0x61FA +0x91D5 0x61FB +0x91D6 0x61FC +0x91D7 0x61FD +0x91D8 0x61FE +0x91D9 0x6200 +0x91DA 0x6201 +0x91DB 0x6202 +0x91DC 0x6203 +0x91DD 0x6204 +0x91DE 0x6205 +0x91DF 0x6207 +0x91E0 0x6209 +0x91E1 0x6213 +0x91E2 0x6214 +0x91E3 0x6219 +0x91E4 0x621C +0x91E5 0x621D +0x91E6 0x621E +0x91E7 0x6220 +0x91E8 0x6223 +0x91E9 0x6226 +0x91EA 0x6227 +0x91EB 0x6228 +0x91EC 0x6229 +0x91ED 0x622B +0x91EE 0x622D +0x91EF 0x622F +0x91F0 0x6230 +0x91F1 0x6231 +0x91F2 0x6232 +0x91F3 0x6235 +0x91F4 0x6236 +0x91F5 0x6238 +0x91F6 0x6239 +0x91F7 0x623A +0x91F8 0x623B +0x91F9 0x623C +0x91FA 0x6242 +0x91FB 0x6244 +0x91FC 0x6245 +0x91FD 0x6246 +0x91FE 0x624A +0x9240 0x624F +0x9241 0x6250 +0x9242 0x6255 +0x9243 0x6256 +0x9244 0x6257 +0x9245 0x6259 +0x9246 0x625A +0x9247 0x625C +0x9248 0x625D +0x9249 0x625E +0x924A 0x625F +0x924B 0x6260 +0x924C 0x6261 +0x924D 0x6262 +0x924E 0x6264 +0x924F 0x6265 +0x9250 0x6268 +0x9251 0x6271 +0x9252 0x6272 +0x9253 0x6274 +0x9254 0x6275 +0x9255 0x6277 +0x9256 0x6278 +0x9257 0x627A +0x9258 0x627B +0x9259 0x627D +0x925A 0x6281 +0x925B 0x6282 +0x925C 0x6283 +0x925D 0x6285 +0x925E 0x6286 +0x925F 0x6287 +0x9260 0x6288 +0x9261 0x628B +0x9262 0x628C +0x9263 0x628D +0x9264 0x628E +0x9265 0x628F +0x9266 0x6290 +0x9267 0x6294 +0x9268 0x6299 +0x9269 0x629C +0x926A 0x629D +0x926B 0x629E +0x926C 0x62A3 +0x926D 0x62A6 +0x926E 0x62A7 +0x926F 0x62A9 +0x9270 0x62AA +0x9271 0x62AD +0x9272 0x62AE +0x9273 0x62AF +0x9274 0x62B0 +0x9275 0x62B2 +0x9276 0x62B3 +0x9277 0x62B4 +0x9278 0x62B6 +0x9279 0x62B7 +0x927A 0x62B8 +0x927B 0x62BA +0x927C 0x62BE +0x927D 0x62C0 +0x927E 0x62C1 +0x9280 0x62C3 +0x9281 0x62CB +0x9282 0x62CF +0x9283 0x62D1 +0x9284 0x62D5 +0x9285 0x62DD +0x9286 0x62DE +0x9287 0x62E0 +0x9288 0x62E1 +0x9289 0x62E4 +0x928A 0x62EA +0x928B 0x62EB +0x928C 0x62F0 +0x928D 0x62F2 +0x928E 0x62F5 +0x928F 0x62F8 +0x9290 0x62F9 +0x9291 0x62FA +0x9292 0x62FB +0x9293 0x6300 +0x9294 0x6303 +0x9295 0x6304 +0x9296 0x6305 +0x9297 0x6306 +0x9298 0x630A +0x9299 0x630B +0x929A 0x630C +0x929B 0x630D +0x929C 0x630F +0x929D 0x6310 +0x929E 0x6312 +0x929F 0x6313 +0x92A0 0x6314 +0x92A1 0x6315 +0x92A2 0x6317 +0x92A3 0x6318 +0x92A4 0x6319 +0x92A5 0x631C +0x92A6 0x6326 +0x92A7 0x6327 +0x92A8 0x6329 +0x92A9 0x632C +0x92AA 0x632D +0x92AB 0x632E +0x92AC 0x6330 +0x92AD 0x6331 +0x92AE 0x6333 +0x92AF 0x6334 +0x92B0 0x6335 +0x92B1 0x6336 +0x92B2 0x6337 +0x92B3 0x6338 +0x92B4 0x633B +0x92B5 0x633C +0x92B6 0x633E +0x92B7 0x633F +0x92B8 0x6340 +0x92B9 0x6341 +0x92BA 0x6344 +0x92BB 0x6347 +0x92BC 0x6348 +0x92BD 0x634A +0x92BE 0x6351 +0x92BF 0x6352 +0x92C0 0x6353 +0x92C1 0x6354 +0x92C2 0x6356 +0x92C3 0x6357 +0x92C4 0x6358 +0x92C5 0x6359 +0x92C6 0x635A +0x92C7 0x635B +0x92C8 0x635C +0x92C9 0x635D +0x92CA 0x6360 +0x92CB 0x6364 +0x92CC 0x6365 +0x92CD 0x6366 +0x92CE 0x6368 +0x92CF 0x636A +0x92D0 0x636B +0x92D1 0x636C +0x92D2 0x636F +0x92D3 0x6370 +0x92D4 0x6372 +0x92D5 0x6373 +0x92D6 0x6374 +0x92D7 0x6375 +0x92D8 0x6378 +0x92D9 0x6379 +0x92DA 0x637C +0x92DB 0x637D +0x92DC 0x637E +0x92DD 0x637F +0x92DE 0x6381 +0x92DF 0x6383 +0x92E0 0x6384 +0x92E1 0x6385 +0x92E2 0x6386 +0x92E3 0x638B +0x92E4 0x638D +0x92E5 0x6391 +0x92E6 0x6393 +0x92E7 0x6394 +0x92E8 0x6395 +0x92E9 0x6397 +0x92EA 0x6399 +0x92EB 0x639A +0x92EC 0x639B +0x92ED 0x639C +0x92EE 0x639D +0x92EF 0x639E +0x92F0 0x639F +0x92F1 0x63A1 +0x92F2 0x63A4 +0x92F3 0x63A6 +0x92F4 0x63AB +0x92F5 0x63AF +0x92F6 0x63B1 +0x92F7 0x63B2 +0x92F8 0x63B5 +0x92F9 0x63B6 +0x92FA 0x63B9 +0x92FB 0x63BB +0x92FC 0x63BD +0x92FD 0x63BF +0x92FE 0x63C0 +0x9340 0x63C1 +0x9341 0x63C2 +0x9342 0x63C3 +0x9343 0x63C5 +0x9344 0x63C7 +0x9345 0x63C8 +0x9346 0x63CA +0x9347 0x63CB +0x9348 0x63CC +0x9349 0x63D1 +0x934A 0x63D3 +0x934B 0x63D4 +0x934C 0x63D5 +0x934D 0x63D7 +0x934E 0x63D8 +0x934F 0x63D9 +0x9350 0x63DA +0x9351 0x63DB +0x9352 0x63DC +0x9353 0x63DD +0x9354 0x63DF +0x9355 0x63E2 +0x9356 0x63E4 +0x9357 0x63E5 +0x9358 0x63E6 +0x9359 0x63E7 +0x935A 0x63E8 +0x935B 0x63EB +0x935C 0x63EC +0x935D 0x63EE +0x935E 0x63EF +0x935F 0x63F0 +0x9360 0x63F1 +0x9361 0x63F3 +0x9362 0x63F5 +0x9363 0x63F7 +0x9364 0x63F9 +0x9365 0x63FA +0x9366 0x63FB +0x9367 0x63FC +0x9368 0x63FE +0x9369 0x6403 +0x936A 0x6404 +0x936B 0x6406 +0x936C 0x6407 +0x936D 0x6408 +0x936E 0x6409 +0x936F 0x640A +0x9370 0x640D +0x9371 0x640E +0x9372 0x6411 +0x9373 0x6412 +0x9374 0x6415 +0x9375 0x6416 +0x9376 0x6417 +0x9377 0x6418 +0x9378 0x6419 +0x9379 0x641A +0x937A 0x641D +0x937B 0x641F +0x937C 0x6422 +0x937D 0x6423 +0x937E 0x6424 +0x9380 0x6425 +0x9381 0x6427 +0x9382 0x6428 +0x9383 0x6429 +0x9384 0x642B +0x9385 0x642E +0x9386 0x642F +0x9387 0x6430 +0x9388 0x6431 +0x9389 0x6432 +0x938A 0x6433 +0x938B 0x6435 +0x938C 0x6436 +0x938D 0x6437 +0x938E 0x6438 +0x938F 0x6439 +0x9390 0x643B +0x9391 0x643C +0x9392 0x643E +0x9393 0x6440 +0x9394 0x6442 +0x9395 0x6443 +0x9396 0x6449 +0x9397 0x644B +0x9398 0x644C +0x9399 0x644D +0x939A 0x644E +0x939B 0x644F +0x939C 0x6450 +0x939D 0x6451 +0x939E 0x6453 +0x939F 0x6455 +0x93A0 0x6456 +0x93A1 0x6457 +0x93A2 0x6459 +0x93A3 0x645A +0x93A4 0x645B +0x93A5 0x645C +0x93A6 0x645D +0x93A7 0x645F +0x93A8 0x6460 +0x93A9 0x6461 +0x93AA 0x6462 +0x93AB 0x6463 +0x93AC 0x6464 +0x93AD 0x6465 +0x93AE 0x6466 +0x93AF 0x6468 +0x93B0 0x646A +0x93B1 0x646B +0x93B2 0x646C +0x93B3 0x646E +0x93B4 0x646F +0x93B5 0x6470 +0x93B6 0x6471 +0x93B7 0x6472 +0x93B8 0x6473 +0x93B9 0x6474 +0x93BA 0x6475 +0x93BB 0x6476 +0x93BC 0x6477 +0x93BD 0x647B +0x93BE 0x647C +0x93BF 0x647D +0x93C0 0x647E +0x93C1 0x647F +0x93C2 0x6480 +0x93C3 0x6481 +0x93C4 0x6483 +0x93C5 0x6486 +0x93C6 0x6488 +0x93C7 0x6489 +0x93C8 0x648A +0x93C9 0x648B +0x93CA 0x648C +0x93CB 0x648D +0x93CC 0x648E +0x93CD 0x648F +0x93CE 0x6490 +0x93CF 0x6493 +0x93D0 0x6494 +0x93D1 0x6497 +0x93D2 0x6498 +0x93D3 0x649A +0x93D4 0x649B +0x93D5 0x649C +0x93D6 0x649D +0x93D7 0x649F +0x93D8 0x64A0 +0x93D9 0x64A1 +0x93DA 0x64A2 +0x93DB 0x64A3 +0x93DC 0x64A5 +0x93DD 0x64A6 +0x93DE 0x64A7 +0x93DF 0x64A8 +0x93E0 0x64AA +0x93E1 0x64AB +0x93E2 0x64AF +0x93E3 0x64B1 +0x93E4 0x64B2 +0x93E5 0x64B3 +0x93E6 0x64B4 +0x93E7 0x64B6 +0x93E8 0x64B9 +0x93E9 0x64BB +0x93EA 0x64BD +0x93EB 0x64BE +0x93EC 0x64BF +0x93ED 0x64C1 +0x93EE 0x64C3 +0x93EF 0x64C4 +0x93F0 0x64C6 +0x93F1 0x64C7 +0x93F2 0x64C8 +0x93F3 0x64C9 +0x93F4 0x64CA +0x93F5 0x64CB +0x93F6 0x64CC +0x93F7 0x64CF +0x93F8 0x64D1 +0x93F9 0x64D3 +0x93FA 0x64D4 +0x93FB 0x64D5 +0x93FC 0x64D6 +0x93FD 0x64D9 +0x93FE 0x64DA +0x9440 0x64DB +0x9441 0x64DC +0x9442 0x64DD +0x9443 0x64DF +0x9444 0x64E0 +0x9445 0x64E1 +0x9446 0x64E3 +0x9447 0x64E5 +0x9448 0x64E7 +0x9449 0x64E8 +0x944A 0x64E9 +0x944B 0x64EA +0x944C 0x64EB +0x944D 0x64EC +0x944E 0x64ED +0x944F 0x64EE +0x9450 0x64EF +0x9451 0x64F0 +0x9452 0x64F1 +0x9453 0x64F2 +0x9454 0x64F3 +0x9455 0x64F4 +0x9456 0x64F5 +0x9457 0x64F6 +0x9458 0x64F7 +0x9459 0x64F8 +0x945A 0x64F9 +0x945B 0x64FA +0x945C 0x64FB +0x945D 0x64FC +0x945E 0x64FD +0x945F 0x64FE +0x9460 0x64FF +0x9461 0x6501 +0x9462 0x6502 +0x9463 0x6503 +0x9464 0x6504 +0x9465 0x6505 +0x9466 0x6506 +0x9467 0x6507 +0x9468 0x6508 +0x9469 0x650A +0x946A 0x650B +0x946B 0x650C +0x946C 0x650D +0x946D 0x650E +0x946E 0x650F +0x946F 0x6510 +0x9470 0x6511 +0x9471 0x6513 +0x9472 0x6514 +0x9473 0x6515 +0x9474 0x6516 +0x9475 0x6517 +0x9476 0x6519 +0x9477 0x651A +0x9478 0x651B +0x9479 0x651C +0x947A 0x651D +0x947B 0x651E +0x947C 0x651F +0x947D 0x6520 +0x947E 0x6521 +0x9480 0x6522 +0x9481 0x6523 +0x9482 0x6524 +0x9483 0x6526 +0x9484 0x6527 +0x9485 0x6528 +0x9486 0x6529 +0x9487 0x652A +0x9488 0x652C +0x9489 0x652D +0x948A 0x6530 +0x948B 0x6531 +0x948C 0x6532 +0x948D 0x6533 +0x948E 0x6537 +0x948F 0x653A +0x9490 0x653C +0x9491 0x653D +0x9492 0x6540 +0x9493 0x6541 +0x9494 0x6542 +0x9495 0x6543 +0x9496 0x6544 +0x9497 0x6546 +0x9498 0x6547 +0x9499 0x654A +0x949A 0x654B +0x949B 0x654D +0x949C 0x654E +0x949D 0x6550 +0x949E 0x6552 +0x949F 0x6553 +0x94A0 0x6554 +0x94A1 0x6557 +0x94A2 0x6558 +0x94A3 0x655A +0x94A4 0x655C +0x94A5 0x655F +0x94A6 0x6560 +0x94A7 0x6561 +0x94A8 0x6564 +0x94A9 0x6565 +0x94AA 0x6567 +0x94AB 0x6568 +0x94AC 0x6569 +0x94AD 0x656A +0x94AE 0x656D +0x94AF 0x656E +0x94B0 0x656F +0x94B1 0x6571 +0x94B2 0x6573 +0x94B3 0x6575 +0x94B4 0x6576 +0x94B5 0x6578 +0x94B6 0x6579 +0x94B7 0x657A +0x94B8 0x657B +0x94B9 0x657C +0x94BA 0x657D +0x94BB 0x657E +0x94BC 0x657F +0x94BD 0x6580 +0x94BE 0x6581 +0x94BF 0x6582 +0x94C0 0x6583 +0x94C1 0x6584 +0x94C2 0x6585 +0x94C3 0x6586 +0x94C4 0x6588 +0x94C5 0x6589 +0x94C6 0x658A +0x94C7 0x658D +0x94C8 0x658E +0x94C9 0x658F +0x94CA 0x6592 +0x94CB 0x6594 +0x94CC 0x6595 +0x94CD 0x6596 +0x94CE 0x6598 +0x94CF 0x659A +0x94D0 0x659D +0x94D1 0x659E +0x94D2 0x65A0 +0x94D3 0x65A2 +0x94D4 0x65A3 +0x94D5 0x65A6 +0x94D6 0x65A8 +0x94D7 0x65AA +0x94D8 0x65AC +0x94D9 0x65AE +0x94DA 0x65B1 +0x94DB 0x65B2 +0x94DC 0x65B3 +0x94DD 0x65B4 +0x94DE 0x65B5 +0x94DF 0x65B6 +0x94E0 0x65B7 +0x94E1 0x65B8 +0x94E2 0x65BA +0x94E3 0x65BB +0x94E4 0x65BE +0x94E5 0x65BF +0x94E6 0x65C0 +0x94E7 0x65C2 +0x94E8 0x65C7 +0x94E9 0x65C8 +0x94EA 0x65C9 +0x94EB 0x65CA +0x94EC 0x65CD +0x94ED 0x65D0 +0x94EE 0x65D1 +0x94EF 0x65D3 +0x94F0 0x65D4 +0x94F1 0x65D5 +0x94F2 0x65D8 +0x94F3 0x65D9 +0x94F4 0x65DA +0x94F5 0x65DB +0x94F6 0x65DC +0x94F7 0x65DD +0x94F8 0x65DE +0x94F9 0x65DF +0x94FA 0x65E1 +0x94FB 0x65E3 +0x94FC 0x65E4 +0x94FD 0x65EA +0x94FE 0x65EB +0x9540 0x65F2 +0x9541 0x65F3 +0x9542 0x65F4 +0x9543 0x65F5 +0x9544 0x65F8 +0x9545 0x65F9 +0x9546 0x65FB +0x9547 0x65FC +0x9548 0x65FD +0x9549 0x65FE +0x954A 0x65FF +0x954B 0x6601 +0x954C 0x6604 +0x954D 0x6605 +0x954E 0x6607 +0x954F 0x6608 +0x9550 0x6609 +0x9551 0x660B +0x9552 0x660D +0x9553 0x6610 +0x9554 0x6611 +0x9555 0x6612 +0x9556 0x6616 +0x9557 0x6617 +0x9558 0x6618 +0x9559 0x661A +0x955A 0x661B +0x955B 0x661C +0x955C 0x661E +0x955D 0x6621 +0x955E 0x6622 +0x955F 0x6623 +0x9560 0x6624 +0x9561 0x6626 +0x9562 0x6629 +0x9563 0x662A +0x9564 0x662B +0x9565 0x662C +0x9566 0x662E +0x9567 0x6630 +0x9568 0x6632 +0x9569 0x6633 +0x956A 0x6637 +0x956B 0x6638 +0x956C 0x6639 +0x956D 0x663A +0x956E 0x663B +0x956F 0x663D +0x9570 0x663F +0x9571 0x6640 +0x9572 0x6642 +0x9573 0x6644 +0x9574 0x6645 +0x9575 0x6646 +0x9576 0x6647 +0x9577 0x6648 +0x9578 0x6649 +0x9579 0x664A +0x957A 0x664D +0x957B 0x664E +0x957C 0x6650 +0x957D 0x6651 +0x957E 0x6658 +0x9580 0x6659 +0x9581 0x665B +0x9582 0x665C +0x9583 0x665D +0x9584 0x665E +0x9585 0x6660 +0x9586 0x6662 +0x9587 0x6663 +0x9588 0x6665 +0x9589 0x6667 +0x958A 0x6669 +0x958B 0x666A +0x958C 0x666B +0x958D 0x666C +0x958E 0x666D +0x958F 0x6671 +0x9590 0x6672 +0x9591 0x6673 +0x9592 0x6675 +0x9593 0x6678 +0x9594 0x6679 +0x9595 0x667B +0x9596 0x667C +0x9597 0x667D +0x9598 0x667F +0x9599 0x6680 +0x959A 0x6681 +0x959B 0x6683 +0x959C 0x6685 +0x959D 0x6686 +0x959E 0x6688 +0x959F 0x6689 +0x95A0 0x668A +0x95A1 0x668B +0x95A2 0x668D +0x95A3 0x668E +0x95A4 0x668F +0x95A5 0x6690 +0x95A6 0x6692 +0x95A7 0x6693 +0x95A8 0x6694 +0x95A9 0x6695 +0x95AA 0x6698 +0x95AB 0x6699 +0x95AC 0x669A +0x95AD 0x669B +0x95AE 0x669C +0x95AF 0x669E +0x95B0 0x669F +0x95B1 0x66A0 +0x95B2 0x66A1 +0x95B3 0x66A2 +0x95B4 0x66A3 +0x95B5 0x66A4 +0x95B6 0x66A5 +0x95B7 0x66A6 +0x95B8 0x66A9 +0x95B9 0x66AA +0x95BA 0x66AB +0x95BB 0x66AC +0x95BC 0x66AD +0x95BD 0x66AF +0x95BE 0x66B0 +0x95BF 0x66B1 +0x95C0 0x66B2 +0x95C1 0x66B3 +0x95C2 0x66B5 +0x95C3 0x66B6 +0x95C4 0x66B7 +0x95C5 0x66B8 +0x95C6 0x66BA +0x95C7 0x66BB +0x95C8 0x66BC +0x95C9 0x66BD +0x95CA 0x66BF +0x95CB 0x66C0 +0x95CC 0x66C1 +0x95CD 0x66C2 +0x95CE 0x66C3 +0x95CF 0x66C4 +0x95D0 0x66C5 +0x95D1 0x66C6 +0x95D2 0x66C7 +0x95D3 0x66C8 +0x95D4 0x66C9 +0x95D5 0x66CA +0x95D6 0x66CB +0x95D7 0x66CC +0x95D8 0x66CD +0x95D9 0x66CE +0x95DA 0x66CF +0x95DB 0x66D0 +0x95DC 0x66D1 +0x95DD 0x66D2 +0x95DE 0x66D3 +0x95DF 0x66D4 +0x95E0 0x66D5 +0x95E1 0x66D6 +0x95E2 0x66D7 +0x95E3 0x66D8 +0x95E4 0x66DA +0x95E5 0x66DE +0x95E6 0x66DF +0x95E7 0x66E0 +0x95E8 0x66E1 +0x95E9 0x66E2 +0x95EA 0x66E3 +0x95EB 0x66E4 +0x95EC 0x66E5 +0x95ED 0x66E7 +0x95EE 0x66E8 +0x95EF 0x66EA +0x95F0 0x66EB +0x95F1 0x66EC +0x95F2 0x66ED +0x95F3 0x66EE +0x95F4 0x66EF +0x95F5 0x66F1 +0x95F6 0x66F5 +0x95F7 0x66F6 +0x95F8 0x66F8 +0x95F9 0x66FA +0x95FA 0x66FB +0x95FB 0x66FD +0x95FC 0x6701 +0x95FD 0x6702 +0x95FE 0x6703 +0x9640 0x6704 +0x9641 0x6705 +0x9642 0x6706 +0x9643 0x6707 +0x9644 0x670C +0x9645 0x670E +0x9646 0x670F +0x9647 0x6711 +0x9648 0x6712 +0x9649 0x6713 +0x964A 0x6716 +0x964B 0x6718 +0x964C 0x6719 +0x964D 0x671A +0x964E 0x671C +0x964F 0x671E +0x9650 0x6720 +0x9651 0x6721 +0x9652 0x6722 +0x9653 0x6723 +0x9654 0x6724 +0x9655 0x6725 +0x9656 0x6727 +0x9657 0x6729 +0x9658 0x672E +0x9659 0x6730 +0x965A 0x6732 +0x965B 0x6733 +0x965C 0x6736 +0x965D 0x6737 +0x965E 0x6738 +0x965F 0x6739 +0x9660 0x673B +0x9661 0x673C +0x9662 0x673E +0x9663 0x673F +0x9664 0x6741 +0x9665 0x6744 +0x9666 0x6745 +0x9667 0x6747 +0x9668 0x674A +0x9669 0x674B +0x966A 0x674D +0x966B 0x6752 +0x966C 0x6754 +0x966D 0x6755 +0x966E 0x6757 +0x966F 0x6758 +0x9670 0x6759 +0x9671 0x675A +0x9672 0x675B +0x9673 0x675D +0x9674 0x6762 +0x9675 0x6763 +0x9676 0x6764 +0x9677 0x6766 +0x9678 0x6767 +0x9679 0x676B +0x967A 0x676C +0x967B 0x676E +0x967C 0x6771 +0x967D 0x6774 +0x967E 0x6776 +0x9680 0x6778 +0x9681 0x6779 +0x9682 0x677A +0x9683 0x677B +0x9684 0x677D +0x9685 0x6780 +0x9686 0x6782 +0x9687 0x6783 +0x9688 0x6785 +0x9689 0x6786 +0x968A 0x6788 +0x968B 0x678A +0x968C 0x678C +0x968D 0x678D +0x968E 0x678E +0x968F 0x678F +0x9690 0x6791 +0x9691 0x6792 +0x9692 0x6793 +0x9693 0x6794 +0x9694 0x6796 +0x9695 0x6799 +0x9696 0x679B +0x9697 0x679F +0x9698 0x67A0 +0x9699 0x67A1 +0x969A 0x67A4 +0x969B 0x67A6 +0x969C 0x67A9 +0x969D 0x67AC +0x969E 0x67AE +0x969F 0x67B1 +0x96A0 0x67B2 +0x96A1 0x67B4 +0x96A2 0x67B9 +0x96A3 0x67BA +0x96A4 0x67BB +0x96A5 0x67BC +0x96A6 0x67BD +0x96A7 0x67BE +0x96A8 0x67BF +0x96A9 0x67C0 +0x96AA 0x67C2 +0x96AB 0x67C5 +0x96AC 0x67C6 +0x96AD 0x67C7 +0x96AE 0x67C8 +0x96AF 0x67C9 +0x96B0 0x67CA +0x96B1 0x67CB +0x96B2 0x67CC +0x96B3 0x67CD +0x96B4 0x67CE +0x96B5 0x67D5 +0x96B6 0x67D6 +0x96B7 0x67D7 +0x96B8 0x67DB +0x96B9 0x67DF +0x96BA 0x67E1 +0x96BB 0x67E3 +0x96BC 0x67E4 +0x96BD 0x67E6 +0x96BE 0x67E7 +0x96BF 0x67E8 +0x96C0 0x67EA +0x96C1 0x67EB +0x96C2 0x67ED +0x96C3 0x67EE +0x96C4 0x67F2 +0x96C5 0x67F5 +0x96C6 0x67F6 +0x96C7 0x67F7 +0x96C8 0x67F8 +0x96C9 0x67F9 +0x96CA 0x67FA +0x96CB 0x67FB +0x96CC 0x67FC +0x96CD 0x67FE +0x96CE 0x6801 +0x96CF 0x6802 +0x96D0 0x6803 +0x96D1 0x6804 +0x96D2 0x6806 +0x96D3 0x680D +0x96D4 0x6810 +0x96D5 0x6812 +0x96D6 0x6814 +0x96D7 0x6815 +0x96D8 0x6818 +0x96D9 0x6819 +0x96DA 0x681A +0x96DB 0x681B +0x96DC 0x681C +0x96DD 0x681E +0x96DE 0x681F +0x96DF 0x6820 +0x96E0 0x6822 +0x96E1 0x6823 +0x96E2 0x6824 +0x96E3 0x6825 +0x96E4 0x6826 +0x96E5 0x6827 +0x96E6 0x6828 +0x96E7 0x682B +0x96E8 0x682C +0x96E9 0x682D +0x96EA 0x682E +0x96EB 0x682F +0x96EC 0x6830 +0x96ED 0x6831 +0x96EE 0x6834 +0x96EF 0x6835 +0x96F0 0x6836 +0x96F1 0x683A +0x96F2 0x683B +0x96F3 0x683F +0x96F4 0x6847 +0x96F5 0x684B +0x96F6 0x684D +0x96F7 0x684F +0x96F8 0x6852 +0x96F9 0x6856 +0x96FA 0x6857 +0x96FB 0x6858 +0x96FC 0x6859 +0x96FD 0x685A +0x96FE 0x685B +0x9740 0x685C +0x9741 0x685D +0x9742 0x685E +0x9743 0x685F +0x9744 0x686A +0x9745 0x686C +0x9746 0x686D +0x9747 0x686E +0x9748 0x686F +0x9749 0x6870 +0x974A 0x6871 +0x974B 0x6872 +0x974C 0x6873 +0x974D 0x6875 +0x974E 0x6878 +0x974F 0x6879 +0x9750 0x687A +0x9751 0x687B +0x9752 0x687C +0x9753 0x687D +0x9754 0x687E +0x9755 0x687F +0x9756 0x6880 +0x9757 0x6882 +0x9758 0x6884 +0x9759 0x6887 +0x975A 0x6888 +0x975B 0x6889 +0x975C 0x688A +0x975D 0x688B +0x975E 0x688C +0x975F 0x688D +0x9760 0x688E +0x9761 0x6890 +0x9762 0x6891 +0x9763 0x6892 +0x9764 0x6894 +0x9765 0x6895 +0x9766 0x6896 +0x9767 0x6898 +0x9768 0x6899 +0x9769 0x689A +0x976A 0x689B +0x976B 0x689C +0x976C 0x689D +0x976D 0x689E +0x976E 0x689F +0x976F 0x68A0 +0x9770 0x68A1 +0x9771 0x68A3 +0x9772 0x68A4 +0x9773 0x68A5 +0x9774 0x68A9 +0x9775 0x68AA +0x9776 0x68AB +0x9777 0x68AC +0x9778 0x68AE +0x9779 0x68B1 +0x977A 0x68B2 +0x977B 0x68B4 +0x977C 0x68B6 +0x977D 0x68B7 +0x977E 0x68B8 +0x9780 0x68B9 +0x9781 0x68BA +0x9782 0x68BB +0x9783 0x68BC +0x9784 0x68BD +0x9785 0x68BE +0x9786 0x68BF +0x9787 0x68C1 +0x9788 0x68C3 +0x9789 0x68C4 +0x978A 0x68C5 +0x978B 0x68C6 +0x978C 0x68C7 +0x978D 0x68C8 +0x978E 0x68CA +0x978F 0x68CC +0x9790 0x68CE +0x9791 0x68CF +0x9792 0x68D0 +0x9793 0x68D1 +0x9794 0x68D3 +0x9795 0x68D4 +0x9796 0x68D6 +0x9797 0x68D7 +0x9798 0x68D9 +0x9799 0x68DB +0x979A 0x68DC +0x979B 0x68DD +0x979C 0x68DE +0x979D 0x68DF +0x979E 0x68E1 +0x979F 0x68E2 +0x97A0 0x68E4 +0x97A1 0x68E5 +0x97A2 0x68E6 +0x97A3 0x68E7 +0x97A4 0x68E8 +0x97A5 0x68E9 +0x97A6 0x68EA +0x97A7 0x68EB +0x97A8 0x68EC +0x97A9 0x68ED +0x97AA 0x68EF +0x97AB 0x68F2 +0x97AC 0x68F3 +0x97AD 0x68F4 +0x97AE 0x68F6 +0x97AF 0x68F7 +0x97B0 0x68F8 +0x97B1 0x68FB +0x97B2 0x68FD +0x97B3 0x68FE +0x97B4 0x68FF +0x97B5 0x6900 +0x97B6 0x6902 +0x97B7 0x6903 +0x97B8 0x6904 +0x97B9 0x6906 +0x97BA 0x6907 +0x97BB 0x6908 +0x97BC 0x6909 +0x97BD 0x690A +0x97BE 0x690C +0x97BF 0x690F +0x97C0 0x6911 +0x97C1 0x6913 +0x97C2 0x6914 +0x97C3 0x6915 +0x97C4 0x6916 +0x97C5 0x6917 +0x97C6 0x6918 +0x97C7 0x6919 +0x97C8 0x691A +0x97C9 0x691B +0x97CA 0x691C +0x97CB 0x691D +0x97CC 0x691E +0x97CD 0x6921 +0x97CE 0x6922 +0x97CF 0x6923 +0x97D0 0x6925 +0x97D1 0x6926 +0x97D2 0x6927 +0x97D3 0x6928 +0x97D4 0x6929 +0x97D5 0x692A +0x97D6 0x692B +0x97D7 0x692C +0x97D8 0x692E +0x97D9 0x692F +0x97DA 0x6931 +0x97DB 0x6932 +0x97DC 0x6933 +0x97DD 0x6935 +0x97DE 0x6936 +0x97DF 0x6937 +0x97E0 0x6938 +0x97E1 0x693A +0x97E2 0x693B +0x97E3 0x693C +0x97E4 0x693E +0x97E5 0x6940 +0x97E6 0x6941 +0x97E7 0x6943 +0x97E8 0x6944 +0x97E9 0x6945 +0x97EA 0x6946 +0x97EB 0x6947 +0x97EC 0x6948 +0x97ED 0x6949 +0x97EE 0x694A +0x97EF 0x694B +0x97F0 0x694C +0x97F1 0x694D +0x97F2 0x694E +0x97F3 0x694F +0x97F4 0x6950 +0x97F5 0x6951 +0x97F6 0x6952 +0x97F7 0x6953 +0x97F8 0x6955 +0x97F9 0x6956 +0x97FA 0x6958 +0x97FB 0x6959 +0x97FC 0x695B +0x97FD 0x695C +0x97FE 0x695F +0x9840 0x6961 +0x9841 0x6962 +0x9842 0x6964 +0x9843 0x6965 +0x9844 0x6967 +0x9845 0x6968 +0x9846 0x6969 +0x9847 0x696A +0x9848 0x696C +0x9849 0x696D +0x984A 0x696F +0x984B 0x6970 +0x984C 0x6972 +0x984D 0x6973 +0x984E 0x6974 +0x984F 0x6975 +0x9850 0x6976 +0x9851 0x697A +0x9852 0x697B +0x9853 0x697D +0x9854 0x697E +0x9855 0x697F +0x9856 0x6981 +0x9857 0x6983 +0x9858 0x6985 +0x9859 0x698A +0x985A 0x698B +0x985B 0x698C +0x985C 0x698E +0x985D 0x698F +0x985E 0x6990 +0x985F 0x6991 +0x9860 0x6992 +0x9861 0x6993 +0x9862 0x6996 +0x9863 0x6997 +0x9864 0x6999 +0x9865 0x699A +0x9866 0x699D +0x9867 0x699E +0x9868 0x699F +0x9869 0x69A0 +0x986A 0x69A1 +0x986B 0x69A2 +0x986C 0x69A3 +0x986D 0x69A4 +0x986E 0x69A5 +0x986F 0x69A6 +0x9870 0x69A9 +0x9871 0x69AA +0x9872 0x69AC +0x9873 0x69AE +0x9874 0x69AF +0x9875 0x69B0 +0x9876 0x69B2 +0x9877 0x69B3 +0x9878 0x69B5 +0x9879 0x69B6 +0x987A 0x69B8 +0x987B 0x69B9 +0x987C 0x69BA +0x987D 0x69BC +0x987E 0x69BD +0x9880 0x69BE +0x9881 0x69BF +0x9882 0x69C0 +0x9883 0x69C2 +0x9884 0x69C3 +0x9885 0x69C4 +0x9886 0x69C5 +0x9887 0x69C6 +0x9888 0x69C7 +0x9889 0x69C8 +0x988A 0x69C9 +0x988B 0x69CB +0x988C 0x69CD +0x988D 0x69CF +0x988E 0x69D1 +0x988F 0x69D2 +0x9890 0x69D3 +0x9891 0x69D5 +0x9892 0x69D6 +0x9893 0x69D7 +0x9894 0x69D8 +0x9895 0x69D9 +0x9896 0x69DA +0x9897 0x69DC +0x9898 0x69DD +0x9899 0x69DE +0x989A 0x69E1 +0x989B 0x69E2 +0x989C 0x69E3 +0x989D 0x69E4 +0x989E 0x69E5 +0x989F 0x69E6 +0x98A0 0x69E7 +0x98A1 0x69E8 +0x98A2 0x69E9 +0x98A3 0x69EA +0x98A4 0x69EB +0x98A5 0x69EC +0x98A6 0x69EE +0x98A7 0x69EF +0x98A8 0x69F0 +0x98A9 0x69F1 +0x98AA 0x69F3 +0x98AB 0x69F4 +0x98AC 0x69F5 +0x98AD 0x69F6 +0x98AE 0x69F7 +0x98AF 0x69F8 +0x98B0 0x69F9 +0x98B1 0x69FA +0x98B2 0x69FB +0x98B3 0x69FC +0x98B4 0x69FE +0x98B5 0x6A00 +0x98B6 0x6A01 +0x98B7 0x6A02 +0x98B8 0x6A03 +0x98B9 0x6A04 +0x98BA 0x6A05 +0x98BB 0x6A06 +0x98BC 0x6A07 +0x98BD 0x6A08 +0x98BE 0x6A09 +0x98BF 0x6A0B +0x98C0 0x6A0C +0x98C1 0x6A0D +0x98C2 0x6A0E +0x98C3 0x6A0F +0x98C4 0x6A10 +0x98C5 0x6A11 +0x98C6 0x6A12 +0x98C7 0x6A13 +0x98C8 0x6A14 +0x98C9 0x6A15 +0x98CA 0x6A16 +0x98CB 0x6A19 +0x98CC 0x6A1A +0x98CD 0x6A1B +0x98CE 0x6A1C +0x98CF 0x6A1D +0x98D0 0x6A1E +0x98D1 0x6A20 +0x98D2 0x6A22 +0x98D3 0x6A23 +0x98D4 0x6A24 +0x98D5 0x6A25 +0x98D6 0x6A26 +0x98D7 0x6A27 +0x98D8 0x6A29 +0x98D9 0x6A2B +0x98DA 0x6A2C +0x98DB 0x6A2D +0x98DC 0x6A2E +0x98DD 0x6A30 +0x98DE 0x6A32 +0x98DF 0x6A33 +0x98E0 0x6A34 +0x98E1 0x6A36 +0x98E2 0x6A37 +0x98E3 0x6A38 +0x98E4 0x6A39 +0x98E5 0x6A3A +0x98E6 0x6A3B +0x98E7 0x6A3C +0x98E8 0x6A3F +0x98E9 0x6A40 +0x98EA 0x6A41 +0x98EB 0x6A42 +0x98EC 0x6A43 +0x98ED 0x6A45 +0x98EE 0x6A46 +0x98EF 0x6A48 +0x98F0 0x6A49 +0x98F1 0x6A4A +0x98F2 0x6A4B +0x98F3 0x6A4C +0x98F4 0x6A4D +0x98F5 0x6A4E +0x98F6 0x6A4F +0x98F7 0x6A51 +0x98F8 0x6A52 +0x98F9 0x6A53 +0x98FA 0x6A54 +0x98FB 0x6A55 +0x98FC 0x6A56 +0x98FD 0x6A57 +0x98FE 0x6A5A +0x9940 0x6A5C +0x9941 0x6A5D +0x9942 0x6A5E +0x9943 0x6A5F +0x9944 0x6A60 +0x9945 0x6A62 +0x9946 0x6A63 +0x9947 0x6A64 +0x9948 0x6A66 +0x9949 0x6A67 +0x994A 0x6A68 +0x994B 0x6A69 +0x994C 0x6A6A +0x994D 0x6A6B +0x994E 0x6A6C +0x994F 0x6A6D +0x9950 0x6A6E +0x9951 0x6A6F +0x9952 0x6A70 +0x9953 0x6A72 +0x9954 0x6A73 +0x9955 0x6A74 +0x9956 0x6A75 +0x9957 0x6A76 +0x9958 0x6A77 +0x9959 0x6A78 +0x995A 0x6A7A +0x995B 0x6A7B +0x995C 0x6A7D +0x995D 0x6A7E +0x995E 0x6A7F +0x995F 0x6A81 +0x9960 0x6A82 +0x9961 0x6A83 +0x9962 0x6A85 +0x9963 0x6A86 +0x9964 0x6A87 +0x9965 0x6A88 +0x9966 0x6A89 +0x9967 0x6A8A +0x9968 0x6A8B +0x9969 0x6A8C +0x996A 0x6A8D +0x996B 0x6A8F +0x996C 0x6A92 +0x996D 0x6A93 +0x996E 0x6A94 +0x996F 0x6A95 +0x9970 0x6A96 +0x9971 0x6A98 +0x9972 0x6A99 +0x9973 0x6A9A +0x9974 0x6A9B +0x9975 0x6A9C +0x9976 0x6A9D +0x9977 0x6A9E +0x9978 0x6A9F +0x9979 0x6AA1 +0x997A 0x6AA2 +0x997B 0x6AA3 +0x997C 0x6AA4 +0x997D 0x6AA5 +0x997E 0x6AA6 +0x9980 0x6AA7 +0x9981 0x6AA8 +0x9982 0x6AAA +0x9983 0x6AAD +0x9984 0x6AAE +0x9985 0x6AAF +0x9986 0x6AB0 +0x9987 0x6AB1 +0x9988 0x6AB2 +0x9989 0x6AB3 +0x998A 0x6AB4 +0x998B 0x6AB5 +0x998C 0x6AB6 +0x998D 0x6AB7 +0x998E 0x6AB8 +0x998F 0x6AB9 +0x9990 0x6ABA +0x9991 0x6ABB +0x9992 0x6ABC +0x9993 0x6ABD +0x9994 0x6ABE +0x9995 0x6ABF +0x9996 0x6AC0 +0x9997 0x6AC1 +0x9998 0x6AC2 +0x9999 0x6AC3 +0x999A 0x6AC4 +0x999B 0x6AC5 +0x999C 0x6AC6 +0x999D 0x6AC7 +0x999E 0x6AC8 +0x999F 0x6AC9 +0x99A0 0x6ACA +0x99A1 0x6ACB +0x99A2 0x6ACC +0x99A3 0x6ACD +0x99A4 0x6ACE +0x99A5 0x6ACF +0x99A6 0x6AD0 +0x99A7 0x6AD1 +0x99A8 0x6AD2 +0x99A9 0x6AD3 +0x99AA 0x6AD4 +0x99AB 0x6AD5 +0x99AC 0x6AD6 +0x99AD 0x6AD7 +0x99AE 0x6AD8 +0x99AF 0x6AD9 +0x99B0 0x6ADA +0x99B1 0x6ADB +0x99B2 0x6ADC +0x99B3 0x6ADD +0x99B4 0x6ADE +0x99B5 0x6ADF +0x99B6 0x6AE0 +0x99B7 0x6AE1 +0x99B8 0x6AE2 +0x99B9 0x6AE3 +0x99BA 0x6AE4 +0x99BB 0x6AE5 +0x99BC 0x6AE6 +0x99BD 0x6AE7 +0x99BE 0x6AE8 +0x99BF 0x6AE9 +0x99C0 0x6AEA +0x99C1 0x6AEB +0x99C2 0x6AEC +0x99C3 0x6AED +0x99C4 0x6AEE +0x99C5 0x6AEF +0x99C6 0x6AF0 +0x99C7 0x6AF1 +0x99C8 0x6AF2 +0x99C9 0x6AF3 +0x99CA 0x6AF4 +0x99CB 0x6AF5 +0x99CC 0x6AF6 +0x99CD 0x6AF7 +0x99CE 0x6AF8 +0x99CF 0x6AF9 +0x99D0 0x6AFA +0x99D1 0x6AFB +0x99D2 0x6AFC +0x99D3 0x6AFD +0x99D4 0x6AFE +0x99D5 0x6AFF +0x99D6 0x6B00 +0x99D7 0x6B01 +0x99D8 0x6B02 +0x99D9 0x6B03 +0x99DA 0x6B04 +0x99DB 0x6B05 +0x99DC 0x6B06 +0x99DD 0x6B07 +0x99DE 0x6B08 +0x99DF 0x6B09 +0x99E0 0x6B0A +0x99E1 0x6B0B +0x99E2 0x6B0C +0x99E3 0x6B0D +0x99E4 0x6B0E +0x99E5 0x6B0F +0x99E6 0x6B10 +0x99E7 0x6B11 +0x99E8 0x6B12 +0x99E9 0x6B13 +0x99EA 0x6B14 +0x99EB 0x6B15 +0x99EC 0x6B16 +0x99ED 0x6B17 +0x99EE 0x6B18 +0x99EF 0x6B19 +0x99F0 0x6B1A +0x99F1 0x6B1B +0x99F2 0x6B1C +0x99F3 0x6B1D +0x99F4 0x6B1E +0x99F5 0x6B1F +0x99F6 0x6B25 +0x99F7 0x6B26 +0x99F8 0x6B28 +0x99F9 0x6B29 +0x99FA 0x6B2A +0x99FB 0x6B2B +0x99FC 0x6B2C +0x99FD 0x6B2D +0x99FE 0x6B2E +0x9A40 0x6B2F +0x9A41 0x6B30 +0x9A42 0x6B31 +0x9A43 0x6B33 +0x9A44 0x6B34 +0x9A45 0x6B35 +0x9A46 0x6B36 +0x9A47 0x6B38 +0x9A48 0x6B3B +0x9A49 0x6B3C +0x9A4A 0x6B3D +0x9A4B 0x6B3F +0x9A4C 0x6B40 +0x9A4D 0x6B41 +0x9A4E 0x6B42 +0x9A4F 0x6B44 +0x9A50 0x6B45 +0x9A51 0x6B48 +0x9A52 0x6B4A +0x9A53 0x6B4B +0x9A54 0x6B4D +0x9A55 0x6B4E +0x9A56 0x6B4F +0x9A57 0x6B50 +0x9A58 0x6B51 +0x9A59 0x6B52 +0x9A5A 0x6B53 +0x9A5B 0x6B54 +0x9A5C 0x6B55 +0x9A5D 0x6B56 +0x9A5E 0x6B57 +0x9A5F 0x6B58 +0x9A60 0x6B5A +0x9A61 0x6B5B +0x9A62 0x6B5C +0x9A63 0x6B5D +0x9A64 0x6B5E +0x9A65 0x6B5F +0x9A66 0x6B60 +0x9A67 0x6B61 +0x9A68 0x6B68 +0x9A69 0x6B69 +0x9A6A 0x6B6B +0x9A6B 0x6B6C +0x9A6C 0x6B6D +0x9A6D 0x6B6E +0x9A6E 0x6B6F +0x9A6F 0x6B70 +0x9A70 0x6B71 +0x9A71 0x6B72 +0x9A72 0x6B73 +0x9A73 0x6B74 +0x9A74 0x6B75 +0x9A75 0x6B76 +0x9A76 0x6B77 +0x9A77 0x6B78 +0x9A78 0x6B7A +0x9A79 0x6B7D +0x9A7A 0x6B7E +0x9A7B 0x6B7F +0x9A7C 0x6B80 +0x9A7D 0x6B85 +0x9A7E 0x6B88 +0x9A80 0x6B8C +0x9A81 0x6B8E +0x9A82 0x6B8F +0x9A83 0x6B90 +0x9A84 0x6B91 +0x9A85 0x6B94 +0x9A86 0x6B95 +0x9A87 0x6B97 +0x9A88 0x6B98 +0x9A89 0x6B99 +0x9A8A 0x6B9C +0x9A8B 0x6B9D +0x9A8C 0x6B9E +0x9A8D 0x6B9F +0x9A8E 0x6BA0 +0x9A8F 0x6BA2 +0x9A90 0x6BA3 +0x9A91 0x6BA4 +0x9A92 0x6BA5 +0x9A93 0x6BA6 +0x9A94 0x6BA7 +0x9A95 0x6BA8 +0x9A96 0x6BA9 +0x9A97 0x6BAB +0x9A98 0x6BAC +0x9A99 0x6BAD +0x9A9A 0x6BAE +0x9A9B 0x6BAF +0x9A9C 0x6BB0 +0x9A9D 0x6BB1 +0x9A9E 0x6BB2 +0x9A9F 0x6BB6 +0x9AA0 0x6BB8 +0x9AA1 0x6BB9 +0x9AA2 0x6BBA +0x9AA3 0x6BBB +0x9AA4 0x6BBC +0x9AA5 0x6BBD +0x9AA6 0x6BBE +0x9AA7 0x6BC0 +0x9AA8 0x6BC3 +0x9AA9 0x6BC4 +0x9AAA 0x6BC6 +0x9AAB 0x6BC7 +0x9AAC 0x6BC8 +0x9AAD 0x6BC9 +0x9AAE 0x6BCA +0x9AAF 0x6BCC +0x9AB0 0x6BCE +0x9AB1 0x6BD0 +0x9AB2 0x6BD1 +0x9AB3 0x6BD8 +0x9AB4 0x6BDA +0x9AB5 0x6BDC +0x9AB6 0x6BDD +0x9AB7 0x6BDE +0x9AB8 0x6BDF +0x9AB9 0x6BE0 +0x9ABA 0x6BE2 +0x9ABB 0x6BE3 +0x9ABC 0x6BE4 +0x9ABD 0x6BE5 +0x9ABE 0x6BE6 +0x9ABF 0x6BE7 +0x9AC0 0x6BE8 +0x9AC1 0x6BE9 +0x9AC2 0x6BEC +0x9AC3 0x6BED +0x9AC4 0x6BEE +0x9AC5 0x6BF0 +0x9AC6 0x6BF1 +0x9AC7 0x6BF2 +0x9AC8 0x6BF4 +0x9AC9 0x6BF6 +0x9ACA 0x6BF7 +0x9ACB 0x6BF8 +0x9ACC 0x6BFA +0x9ACD 0x6BFB +0x9ACE 0x6BFC +0x9ACF 0x6BFE +0x9AD0 0x6BFF +0x9AD1 0x6C00 +0x9AD2 0x6C01 +0x9AD3 0x6C02 +0x9AD4 0x6C03 +0x9AD5 0x6C04 +0x9AD6 0x6C08 +0x9AD7 0x6C09 +0x9AD8 0x6C0A +0x9AD9 0x6C0B +0x9ADA 0x6C0C +0x9ADB 0x6C0E +0x9ADC 0x6C12 +0x9ADD 0x6C17 +0x9ADE 0x6C1C +0x9ADF 0x6C1D +0x9AE0 0x6C1E +0x9AE1 0x6C20 +0x9AE2 0x6C23 +0x9AE3 0x6C25 +0x9AE4 0x6C2B +0x9AE5 0x6C2C +0x9AE6 0x6C2D +0x9AE7 0x6C31 +0x9AE8 0x6C33 +0x9AE9 0x6C36 +0x9AEA 0x6C37 +0x9AEB 0x6C39 +0x9AEC 0x6C3A +0x9AED 0x6C3B +0x9AEE 0x6C3C +0x9AEF 0x6C3E +0x9AF0 0x6C3F +0x9AF1 0x6C43 +0x9AF2 0x6C44 +0x9AF3 0x6C45 +0x9AF4 0x6C48 +0x9AF5 0x6C4B +0x9AF6 0x6C4C +0x9AF7 0x6C4D +0x9AF8 0x6C4E +0x9AF9 0x6C4F +0x9AFA 0x6C51 +0x9AFB 0x6C52 +0x9AFC 0x6C53 +0x9AFD 0x6C56 +0x9AFE 0x6C58 +0x9B40 0x6C59 +0x9B41 0x6C5A +0x9B42 0x6C62 +0x9B43 0x6C63 +0x9B44 0x6C65 +0x9B45 0x6C66 +0x9B46 0x6C67 +0x9B47 0x6C6B +0x9B48 0x6C6C +0x9B49 0x6C6D +0x9B4A 0x6C6E +0x9B4B 0x6C6F +0x9B4C 0x6C71 +0x9B4D 0x6C73 +0x9B4E 0x6C75 +0x9B4F 0x6C77 +0x9B50 0x6C78 +0x9B51 0x6C7A +0x9B52 0x6C7B +0x9B53 0x6C7C +0x9B54 0x6C7F +0x9B55 0x6C80 +0x9B56 0x6C84 +0x9B57 0x6C87 +0x9B58 0x6C8A +0x9B59 0x6C8B +0x9B5A 0x6C8D +0x9B5B 0x6C8E +0x9B5C 0x6C91 +0x9B5D 0x6C92 +0x9B5E 0x6C95 +0x9B5F 0x6C96 +0x9B60 0x6C97 +0x9B61 0x6C98 +0x9B62 0x6C9A +0x9B63 0x6C9C +0x9B64 0x6C9D +0x9B65 0x6C9E +0x9B66 0x6CA0 +0x9B67 0x6CA2 +0x9B68 0x6CA8 +0x9B69 0x6CAC +0x9B6A 0x6CAF +0x9B6B 0x6CB0 +0x9B6C 0x6CB4 +0x9B6D 0x6CB5 +0x9B6E 0x6CB6 +0x9B6F 0x6CB7 +0x9B70 0x6CBA +0x9B71 0x6CC0 +0x9B72 0x6CC1 +0x9B73 0x6CC2 +0x9B74 0x6CC3 +0x9B75 0x6CC6 +0x9B76 0x6CC7 +0x9B77 0x6CC8 +0x9B78 0x6CCB +0x9B79 0x6CCD +0x9B7A 0x6CCE +0x9B7B 0x6CCF +0x9B7C 0x6CD1 +0x9B7D 0x6CD2 +0x9B7E 0x6CD8 +0x9B80 0x6CD9 +0x9B81 0x6CDA +0x9B82 0x6CDC +0x9B83 0x6CDD +0x9B84 0x6CDF +0x9B85 0x6CE4 +0x9B86 0x6CE6 +0x9B87 0x6CE7 +0x9B88 0x6CE9 +0x9B89 0x6CEC +0x9B8A 0x6CED +0x9B8B 0x6CF2 +0x9B8C 0x6CF4 +0x9B8D 0x6CF9 +0x9B8E 0x6CFF +0x9B8F 0x6D00 +0x9B90 0x6D02 +0x9B91 0x6D03 +0x9B92 0x6D05 +0x9B93 0x6D06 +0x9B94 0x6D08 +0x9B95 0x6D09 +0x9B96 0x6D0A +0x9B97 0x6D0D +0x9B98 0x6D0F +0x9B99 0x6D10 +0x9B9A 0x6D11 +0x9B9B 0x6D13 +0x9B9C 0x6D14 +0x9B9D 0x6D15 +0x9B9E 0x6D16 +0x9B9F 0x6D18 +0x9BA0 0x6D1C +0x9BA1 0x6D1D +0x9BA2 0x6D1F +0x9BA3 0x6D20 +0x9BA4 0x6D21 +0x9BA5 0x6D22 +0x9BA6 0x6D23 +0x9BA7 0x6D24 +0x9BA8 0x6D26 +0x9BA9 0x6D28 +0x9BAA 0x6D29 +0x9BAB 0x6D2C +0x9BAC 0x6D2D +0x9BAD 0x6D2F +0x9BAE 0x6D30 +0x9BAF 0x6D34 +0x9BB0 0x6D36 +0x9BB1 0x6D37 +0x9BB2 0x6D38 +0x9BB3 0x6D3A +0x9BB4 0x6D3F +0x9BB5 0x6D40 +0x9BB6 0x6D42 +0x9BB7 0x6D44 +0x9BB8 0x6D49 +0x9BB9 0x6D4C +0x9BBA 0x6D50 +0x9BBB 0x6D55 +0x9BBC 0x6D56 +0x9BBD 0x6D57 +0x9BBE 0x6D58 +0x9BBF 0x6D5B +0x9BC0 0x6D5D +0x9BC1 0x6D5F +0x9BC2 0x6D61 +0x9BC3 0x6D62 +0x9BC4 0x6D64 +0x9BC5 0x6D65 +0x9BC6 0x6D67 +0x9BC7 0x6D68 +0x9BC8 0x6D6B +0x9BC9 0x6D6C +0x9BCA 0x6D6D +0x9BCB 0x6D70 +0x9BCC 0x6D71 +0x9BCD 0x6D72 +0x9BCE 0x6D73 +0x9BCF 0x6D75 +0x9BD0 0x6D76 +0x9BD1 0x6D79 +0x9BD2 0x6D7A +0x9BD3 0x6D7B +0x9BD4 0x6D7D +0x9BD5 0x6D7E +0x9BD6 0x6D7F +0x9BD7 0x6D80 +0x9BD8 0x6D81 +0x9BD9 0x6D83 +0x9BDA 0x6D84 +0x9BDB 0x6D86 +0x9BDC 0x6D87 +0x9BDD 0x6D8A +0x9BDE 0x6D8B +0x9BDF 0x6D8D +0x9BE0 0x6D8F +0x9BE1 0x6D90 +0x9BE2 0x6D92 +0x9BE3 0x6D96 +0x9BE4 0x6D97 +0x9BE5 0x6D98 +0x9BE6 0x6D99 +0x9BE7 0x6D9A +0x9BE8 0x6D9C +0x9BE9 0x6DA2 +0x9BEA 0x6DA5 +0x9BEB 0x6DAC +0x9BEC 0x6DAD +0x9BED 0x6DB0 +0x9BEE 0x6DB1 +0x9BEF 0x6DB3 +0x9BF0 0x6DB4 +0x9BF1 0x6DB6 +0x9BF2 0x6DB7 +0x9BF3 0x6DB9 +0x9BF4 0x6DBA +0x9BF5 0x6DBB +0x9BF6 0x6DBC +0x9BF7 0x6DBD +0x9BF8 0x6DBE +0x9BF9 0x6DC1 +0x9BFA 0x6DC2 +0x9BFB 0x6DC3 +0x9BFC 0x6DC8 +0x9BFD 0x6DC9 +0x9BFE 0x6DCA +0x9C40 0x6DCD +0x9C41 0x6DCE +0x9C42 0x6DCF +0x9C43 0x6DD0 +0x9C44 0x6DD2 +0x9C45 0x6DD3 +0x9C46 0x6DD4 +0x9C47 0x6DD5 +0x9C48 0x6DD7 +0x9C49 0x6DDA +0x9C4A 0x6DDB +0x9C4B 0x6DDC +0x9C4C 0x6DDF +0x9C4D 0x6DE2 +0x9C4E 0x6DE3 +0x9C4F 0x6DE5 +0x9C50 0x6DE7 +0x9C51 0x6DE8 +0x9C52 0x6DE9 +0x9C53 0x6DEA +0x9C54 0x6DED +0x9C55 0x6DEF +0x9C56 0x6DF0 +0x9C57 0x6DF2 +0x9C58 0x6DF4 +0x9C59 0x6DF5 +0x9C5A 0x6DF6 +0x9C5B 0x6DF8 +0x9C5C 0x6DFA +0x9C5D 0x6DFD +0x9C5E 0x6DFE +0x9C5F 0x6DFF +0x9C60 0x6E00 +0x9C61 0x6E01 +0x9C62 0x6E02 +0x9C63 0x6E03 +0x9C64 0x6E04 +0x9C65 0x6E06 +0x9C66 0x6E07 +0x9C67 0x6E08 +0x9C68 0x6E09 +0x9C69 0x6E0B +0x9C6A 0x6E0F +0x9C6B 0x6E12 +0x9C6C 0x6E13 +0x9C6D 0x6E15 +0x9C6E 0x6E18 +0x9C6F 0x6E19 +0x9C70 0x6E1B +0x9C71 0x6E1C +0x9C72 0x6E1E +0x9C73 0x6E1F +0x9C74 0x6E22 +0x9C75 0x6E26 +0x9C76 0x6E27 +0x9C77 0x6E28 +0x9C78 0x6E2A +0x9C79 0x6E2C +0x9C7A 0x6E2E +0x9C7B 0x6E30 +0x9C7C 0x6E31 +0x9C7D 0x6E33 +0x9C7E 0x6E35 +0x9C80 0x6E36 +0x9C81 0x6E37 +0x9C82 0x6E39 +0x9C83 0x6E3B +0x9C84 0x6E3C +0x9C85 0x6E3D +0x9C86 0x6E3E +0x9C87 0x6E3F +0x9C88 0x6E40 +0x9C89 0x6E41 +0x9C8A 0x6E42 +0x9C8B 0x6E45 +0x9C8C 0x6E46 +0x9C8D 0x6E47 +0x9C8E 0x6E48 +0x9C8F 0x6E49 +0x9C90 0x6E4A +0x9C91 0x6E4B +0x9C92 0x6E4C +0x9C93 0x6E4F +0x9C94 0x6E50 +0x9C95 0x6E51 +0x9C96 0x6E52 +0x9C97 0x6E55 +0x9C98 0x6E57 +0x9C99 0x6E59 +0x9C9A 0x6E5A +0x9C9B 0x6E5C +0x9C9C 0x6E5D +0x9C9D 0x6E5E +0x9C9E 0x6E60 +0x9C9F 0x6E61 +0x9CA0 0x6E62 +0x9CA1 0x6E63 +0x9CA2 0x6E64 +0x9CA3 0x6E65 +0x9CA4 0x6E66 +0x9CA5 0x6E67 +0x9CA6 0x6E68 +0x9CA7 0x6E69 +0x9CA8 0x6E6A +0x9CA9 0x6E6C +0x9CAA 0x6E6D +0x9CAB 0x6E6F +0x9CAC 0x6E70 +0x9CAD 0x6E71 +0x9CAE 0x6E72 +0x9CAF 0x6E73 +0x9CB0 0x6E74 +0x9CB1 0x6E75 +0x9CB2 0x6E76 +0x9CB3 0x6E77 +0x9CB4 0x6E78 +0x9CB5 0x6E79 +0x9CB6 0x6E7A +0x9CB7 0x6E7B +0x9CB8 0x6E7C +0x9CB9 0x6E7D +0x9CBA 0x6E80 +0x9CBB 0x6E81 +0x9CBC 0x6E82 +0x9CBD 0x6E84 +0x9CBE 0x6E87 +0x9CBF 0x6E88 +0x9CC0 0x6E8A +0x9CC1 0x6E8B +0x9CC2 0x6E8C +0x9CC3 0x6E8D +0x9CC4 0x6E8E +0x9CC5 0x6E91 +0x9CC6 0x6E92 +0x9CC7 0x6E93 +0x9CC8 0x6E94 +0x9CC9 0x6E95 +0x9CCA 0x6E96 +0x9CCB 0x6E97 +0x9CCC 0x6E99 +0x9CCD 0x6E9A +0x9CCE 0x6E9B +0x9CCF 0x6E9D +0x9CD0 0x6E9E +0x9CD1 0x6EA0 +0x9CD2 0x6EA1 +0x9CD3 0x6EA3 +0x9CD4 0x6EA4 +0x9CD5 0x6EA6 +0x9CD6 0x6EA8 +0x9CD7 0x6EA9 +0x9CD8 0x6EAB +0x9CD9 0x6EAC +0x9CDA 0x6EAD +0x9CDB 0x6EAE +0x9CDC 0x6EB0 +0x9CDD 0x6EB3 +0x9CDE 0x6EB5 +0x9CDF 0x6EB8 +0x9CE0 0x6EB9 +0x9CE1 0x6EBC +0x9CE2 0x6EBE +0x9CE3 0x6EBF +0x9CE4 0x6EC0 +0x9CE5 0x6EC3 +0x9CE6 0x6EC4 +0x9CE7 0x6EC5 +0x9CE8 0x6EC6 +0x9CE9 0x6EC8 +0x9CEA 0x6EC9 +0x9CEB 0x6ECA +0x9CEC 0x6ECC +0x9CED 0x6ECD +0x9CEE 0x6ECE +0x9CEF 0x6ED0 +0x9CF0 0x6ED2 +0x9CF1 0x6ED6 +0x9CF2 0x6ED8 +0x9CF3 0x6ED9 +0x9CF4 0x6EDB +0x9CF5 0x6EDC +0x9CF6 0x6EDD +0x9CF7 0x6EE3 +0x9CF8 0x6EE7 +0x9CF9 0x6EEA +0x9CFA 0x6EEB +0x9CFB 0x6EEC +0x9CFC 0x6EED +0x9CFD 0x6EEE +0x9CFE 0x6EEF +0x9D40 0x6EF0 +0x9D41 0x6EF1 +0x9D42 0x6EF2 +0x9D43 0x6EF3 +0x9D44 0x6EF5 +0x9D45 0x6EF6 +0x9D46 0x6EF7 +0x9D47 0x6EF8 +0x9D48 0x6EFA +0x9D49 0x6EFB +0x9D4A 0x6EFC +0x9D4B 0x6EFD +0x9D4C 0x6EFE +0x9D4D 0x6EFF +0x9D4E 0x6F00 +0x9D4F 0x6F01 +0x9D50 0x6F03 +0x9D51 0x6F04 +0x9D52 0x6F05 +0x9D53 0x6F07 +0x9D54 0x6F08 +0x9D55 0x6F0A +0x9D56 0x6F0B +0x9D57 0x6F0C +0x9D58 0x6F0D +0x9D59 0x6F0E +0x9D5A 0x6F10 +0x9D5B 0x6F11 +0x9D5C 0x6F12 +0x9D5D 0x6F16 +0x9D5E 0x6F17 +0x9D5F 0x6F18 +0x9D60 0x6F19 +0x9D61 0x6F1A +0x9D62 0x6F1B +0x9D63 0x6F1C +0x9D64 0x6F1D +0x9D65 0x6F1E +0x9D66 0x6F1F +0x9D67 0x6F21 +0x9D68 0x6F22 +0x9D69 0x6F23 +0x9D6A 0x6F25 +0x9D6B 0x6F26 +0x9D6C 0x6F27 +0x9D6D 0x6F28 +0x9D6E 0x6F2C +0x9D6F 0x6F2E +0x9D70 0x6F30 +0x9D71 0x6F32 +0x9D72 0x6F34 +0x9D73 0x6F35 +0x9D74 0x6F37 +0x9D75 0x6F38 +0x9D76 0x6F39 +0x9D77 0x6F3A +0x9D78 0x6F3B +0x9D79 0x6F3C +0x9D7A 0x6F3D +0x9D7B 0x6F3F +0x9D7C 0x6F40 +0x9D7D 0x6F41 +0x9D7E 0x6F42 +0x9D80 0x6F43 +0x9D81 0x6F44 +0x9D82 0x6F45 +0x9D83 0x6F48 +0x9D84 0x6F49 +0x9D85 0x6F4A +0x9D86 0x6F4C +0x9D87 0x6F4E +0x9D88 0x6F4F +0x9D89 0x6F50 +0x9D8A 0x6F51 +0x9D8B 0x6F52 +0x9D8C 0x6F53 +0x9D8D 0x6F54 +0x9D8E 0x6F55 +0x9D8F 0x6F56 +0x9D90 0x6F57 +0x9D91 0x6F59 +0x9D92 0x6F5A +0x9D93 0x6F5B +0x9D94 0x6F5D +0x9D95 0x6F5F +0x9D96 0x6F60 +0x9D97 0x6F61 +0x9D98 0x6F63 +0x9D99 0x6F64 +0x9D9A 0x6F65 +0x9D9B 0x6F67 +0x9D9C 0x6F68 +0x9D9D 0x6F69 +0x9D9E 0x6F6A +0x9D9F 0x6F6B +0x9DA0 0x6F6C +0x9DA1 0x6F6F +0x9DA2 0x6F70 +0x9DA3 0x6F71 +0x9DA4 0x6F73 +0x9DA5 0x6F75 +0x9DA6 0x6F76 +0x9DA7 0x6F77 +0x9DA8 0x6F79 +0x9DA9 0x6F7B +0x9DAA 0x6F7D +0x9DAB 0x6F7E +0x9DAC 0x6F7F +0x9DAD 0x6F80 +0x9DAE 0x6F81 +0x9DAF 0x6F82 +0x9DB0 0x6F83 +0x9DB1 0x6F85 +0x9DB2 0x6F86 +0x9DB3 0x6F87 +0x9DB4 0x6F8A +0x9DB5 0x6F8B +0x9DB6 0x6F8F +0x9DB7 0x6F90 +0x9DB8 0x6F91 +0x9DB9 0x6F92 +0x9DBA 0x6F93 +0x9DBB 0x6F94 +0x9DBC 0x6F95 +0x9DBD 0x6F96 +0x9DBE 0x6F97 +0x9DBF 0x6F98 +0x9DC0 0x6F99 +0x9DC1 0x6F9A +0x9DC2 0x6F9B +0x9DC3 0x6F9D +0x9DC4 0x6F9E +0x9DC5 0x6F9F +0x9DC6 0x6FA0 +0x9DC7 0x6FA2 +0x9DC8 0x6FA3 +0x9DC9 0x6FA4 +0x9DCA 0x6FA5 +0x9DCB 0x6FA6 +0x9DCC 0x6FA8 +0x9DCD 0x6FA9 +0x9DCE 0x6FAA +0x9DCF 0x6FAB +0x9DD0 0x6FAC +0x9DD1 0x6FAD +0x9DD2 0x6FAE +0x9DD3 0x6FAF +0x9DD4 0x6FB0 +0x9DD5 0x6FB1 +0x9DD6 0x6FB2 +0x9DD7 0x6FB4 +0x9DD8 0x6FB5 +0x9DD9 0x6FB7 +0x9DDA 0x6FB8 +0x9DDB 0x6FBA +0x9DDC 0x6FBB +0x9DDD 0x6FBC +0x9DDE 0x6FBD +0x9DDF 0x6FBE +0x9DE0 0x6FBF +0x9DE1 0x6FC1 +0x9DE2 0x6FC3 +0x9DE3 0x6FC4 +0x9DE4 0x6FC5 +0x9DE5 0x6FC6 +0x9DE6 0x6FC7 +0x9DE7 0x6FC8 +0x9DE8 0x6FCA +0x9DE9 0x6FCB +0x9DEA 0x6FCC +0x9DEB 0x6FCD +0x9DEC 0x6FCE +0x9DED 0x6FCF +0x9DEE 0x6FD0 +0x9DEF 0x6FD3 +0x9DF0 0x6FD4 +0x9DF1 0x6FD5 +0x9DF2 0x6FD6 +0x9DF3 0x6FD7 +0x9DF4 0x6FD8 +0x9DF5 0x6FD9 +0x9DF6 0x6FDA +0x9DF7 0x6FDB +0x9DF8 0x6FDC +0x9DF9 0x6FDD +0x9DFA 0x6FDF +0x9DFB 0x6FE2 +0x9DFC 0x6FE3 +0x9DFD 0x6FE4 +0x9DFE 0x6FE5 +0x9E40 0x6FE6 +0x9E41 0x6FE7 +0x9E42 0x6FE8 +0x9E43 0x6FE9 +0x9E44 0x6FEA +0x9E45 0x6FEB +0x9E46 0x6FEC +0x9E47 0x6FED +0x9E48 0x6FF0 +0x9E49 0x6FF1 +0x9E4A 0x6FF2 +0x9E4B 0x6FF3 +0x9E4C 0x6FF4 +0x9E4D 0x6FF5 +0x9E4E 0x6FF6 +0x9E4F 0x6FF7 +0x9E50 0x6FF8 +0x9E51 0x6FF9 +0x9E52 0x6FFA +0x9E53 0x6FFB +0x9E54 0x6FFC +0x9E55 0x6FFD +0x9E56 0x6FFE +0x9E57 0x6FFF +0x9E58 0x7000 +0x9E59 0x7001 +0x9E5A 0x7002 +0x9E5B 0x7003 +0x9E5C 0x7004 +0x9E5D 0x7005 +0x9E5E 0x7006 +0x9E5F 0x7007 +0x9E60 0x7008 +0x9E61 0x7009 +0x9E62 0x700A +0x9E63 0x700B +0x9E64 0x700C +0x9E65 0x700D +0x9E66 0x700E +0x9E67 0x700F +0x9E68 0x7010 +0x9E69 0x7012 +0x9E6A 0x7013 +0x9E6B 0x7014 +0x9E6C 0x7015 +0x9E6D 0x7016 +0x9E6E 0x7017 +0x9E6F 0x7018 +0x9E70 0x7019 +0x9E71 0x701C +0x9E72 0x701D +0x9E73 0x701E +0x9E74 0x701F +0x9E75 0x7020 +0x9E76 0x7021 +0x9E77 0x7022 +0x9E78 0x7024 +0x9E79 0x7025 +0x9E7A 0x7026 +0x9E7B 0x7027 +0x9E7C 0x7028 +0x9E7D 0x7029 +0x9E7E 0x702A +0x9E80 0x702B +0x9E81 0x702C +0x9E82 0x702D +0x9E83 0x702E +0x9E84 0x702F +0x9E85 0x7030 +0x9E86 0x7031 +0x9E87 0x7032 +0x9E88 0x7033 +0x9E89 0x7034 +0x9E8A 0x7036 +0x9E8B 0x7037 +0x9E8C 0x7038 +0x9E8D 0x703A +0x9E8E 0x703B +0x9E8F 0x703C +0x9E90 0x703D +0x9E91 0x703E +0x9E92 0x703F +0x9E93 0x7040 +0x9E94 0x7041 +0x9E95 0x7042 +0x9E96 0x7043 +0x9E97 0x7044 +0x9E98 0x7045 +0x9E99 0x7046 +0x9E9A 0x7047 +0x9E9B 0x7048 +0x9E9C 0x7049 +0x9E9D 0x704A +0x9E9E 0x704B +0x9E9F 0x704D +0x9EA0 0x704E +0x9EA1 0x7050 +0x9EA2 0x7051 +0x9EA3 0x7052 +0x9EA4 0x7053 +0x9EA5 0x7054 +0x9EA6 0x7055 +0x9EA7 0x7056 +0x9EA8 0x7057 +0x9EA9 0x7058 +0x9EAA 0x7059 +0x9EAB 0x705A +0x9EAC 0x705B +0x9EAD 0x705C +0x9EAE 0x705D +0x9EAF 0x705F +0x9EB0 0x7060 +0x9EB1 0x7061 +0x9EB2 0x7062 +0x9EB3 0x7063 +0x9EB4 0x7064 +0x9EB5 0x7065 +0x9EB6 0x7066 +0x9EB7 0x7067 +0x9EB8 0x7068 +0x9EB9 0x7069 +0x9EBA 0x706A +0x9EBB 0x706E +0x9EBC 0x7071 +0x9EBD 0x7072 +0x9EBE 0x7073 +0x9EBF 0x7074 +0x9EC0 0x7077 +0x9EC1 0x7079 +0x9EC2 0x707A +0x9EC3 0x707B +0x9EC4 0x707D +0x9EC5 0x7081 +0x9EC6 0x7082 +0x9EC7 0x7083 +0x9EC8 0x7084 +0x9EC9 0x7086 +0x9ECA 0x7087 +0x9ECB 0x7088 +0x9ECC 0x708B +0x9ECD 0x708C +0x9ECE 0x708D +0x9ECF 0x708F +0x9ED0 0x7090 +0x9ED1 0x7091 +0x9ED2 0x7093 +0x9ED3 0x7097 +0x9ED4 0x7098 +0x9ED5 0x709A +0x9ED6 0x709B +0x9ED7 0x709E +0x9ED8 0x709F +0x9ED9 0x70A0 +0x9EDA 0x70A1 +0x9EDB 0x70A2 +0x9EDC 0x70A3 +0x9EDD 0x70A4 +0x9EDE 0x70A5 +0x9EDF 0x70A6 +0x9EE0 0x70A7 +0x9EE1 0x70A8 +0x9EE2 0x70A9 +0x9EE3 0x70AA +0x9EE4 0x70B0 +0x9EE5 0x70B2 +0x9EE6 0x70B4 +0x9EE7 0x70B5 +0x9EE8 0x70B6 +0x9EE9 0x70BA +0x9EEA 0x70BE +0x9EEB 0x70BF +0x9EEC 0x70C4 +0x9EED 0x70C5 +0x9EEE 0x70C6 +0x9EEF 0x70C7 +0x9EF0 0x70C9 +0x9EF1 0x70CB +0x9EF2 0x70CC +0x9EF3 0x70CD +0x9EF4 0x70CE +0x9EF5 0x70CF +0x9EF6 0x70D0 +0x9EF7 0x70D1 +0x9EF8 0x70D2 +0x9EF9 0x70D3 +0x9EFA 0x70D4 +0x9EFB 0x70D5 +0x9EFC 0x70D6 +0x9EFD 0x70D7 +0x9EFE 0x70DA +0x9F40 0x70DC +0x9F41 0x70DD +0x9F42 0x70DE +0x9F43 0x70E0 +0x9F44 0x70E1 +0x9F45 0x70E2 +0x9F46 0x70E3 +0x9F47 0x70E5 +0x9F48 0x70EA +0x9F49 0x70EE +0x9F4A 0x70F0 +0x9F4B 0x70F1 +0x9F4C 0x70F2 +0x9F4D 0x70F3 +0x9F4E 0x70F4 +0x9F4F 0x70F5 +0x9F50 0x70F6 +0x9F51 0x70F8 +0x9F52 0x70FA +0x9F53 0x70FB +0x9F54 0x70FC +0x9F55 0x70FE +0x9F56 0x70FF +0x9F57 0x7100 +0x9F58 0x7101 +0x9F59 0x7102 +0x9F5A 0x7103 +0x9F5B 0x7104 +0x9F5C 0x7105 +0x9F5D 0x7106 +0x9F5E 0x7107 +0x9F5F 0x7108 +0x9F60 0x710B +0x9F61 0x710C +0x9F62 0x710D +0x9F63 0x710E +0x9F64 0x710F +0x9F65 0x7111 +0x9F66 0x7112 +0x9F67 0x7114 +0x9F68 0x7117 +0x9F69 0x711B +0x9F6A 0x711C +0x9F6B 0x711D +0x9F6C 0x711E +0x9F6D 0x711F +0x9F6E 0x7120 +0x9F6F 0x7121 +0x9F70 0x7122 +0x9F71 0x7123 +0x9F72 0x7124 +0x9F73 0x7125 +0x9F74 0x7127 +0x9F75 0x7128 +0x9F76 0x7129 +0x9F77 0x712A +0x9F78 0x712B +0x9F79 0x712C +0x9F7A 0x712D +0x9F7B 0x712E +0x9F7C 0x7132 +0x9F7D 0x7133 +0x9F7E 0x7134 +0x9F80 0x7135 +0x9F81 0x7137 +0x9F82 0x7138 +0x9F83 0x7139 +0x9F84 0x713A +0x9F85 0x713B +0x9F86 0x713C +0x9F87 0x713D +0x9F88 0x713E +0x9F89 0x713F +0x9F8A 0x7140 +0x9F8B 0x7141 +0x9F8C 0x7142 +0x9F8D 0x7143 +0x9F8E 0x7144 +0x9F8F 0x7146 +0x9F90 0x7147 +0x9F91 0x7148 +0x9F92 0x7149 +0x9F93 0x714B +0x9F94 0x714D +0x9F95 0x714F +0x9F96 0x7150 +0x9F97 0x7151 +0x9F98 0x7152 +0x9F99 0x7153 +0x9F9A 0x7154 +0x9F9B 0x7155 +0x9F9C 0x7156 +0x9F9D 0x7157 +0x9F9E 0x7158 +0x9F9F 0x7159 +0x9FA0 0x715A +0x9FA1 0x715B +0x9FA2 0x715D +0x9FA3 0x715F +0x9FA4 0x7160 +0x9FA5 0x7161 +0x9FA6 0x7162 +0x9FA7 0x7163 +0x9FA8 0x7165 +0x9FA9 0x7169 +0x9FAA 0x716A +0x9FAB 0x716B +0x9FAC 0x716C +0x9FAD 0x716D +0x9FAE 0x716F +0x9FAF 0x7170 +0x9FB0 0x7171 +0x9FB1 0x7174 +0x9FB2 0x7175 +0x9FB3 0x7176 +0x9FB4 0x7177 +0x9FB5 0x7179 +0x9FB6 0x717B +0x9FB7 0x717C +0x9FB8 0x717E +0x9FB9 0x717F +0x9FBA 0x7180 +0x9FBB 0x7181 +0x9FBC 0x7182 +0x9FBD 0x7183 +0x9FBE 0x7185 +0x9FBF 0x7186 +0x9FC0 0x7187 +0x9FC1 0x7188 +0x9FC2 0x7189 +0x9FC3 0x718B +0x9FC4 0x718C +0x9FC5 0x718D +0x9FC6 0x718E +0x9FC7 0x7190 +0x9FC8 0x7191 +0x9FC9 0x7192 +0x9FCA 0x7193 +0x9FCB 0x7195 +0x9FCC 0x7196 +0x9FCD 0x7197 +0x9FCE 0x719A +0x9FCF 0x719B +0x9FD0 0x719C +0x9FD1 0x719D +0x9FD2 0x719E +0x9FD3 0x71A1 +0x9FD4 0x71A2 +0x9FD5 0x71A3 +0x9FD6 0x71A4 +0x9FD7 0x71A5 +0x9FD8 0x71A6 +0x9FD9 0x71A7 +0x9FDA 0x71A9 +0x9FDB 0x71AA +0x9FDC 0x71AB +0x9FDD 0x71AD +0x9FDE 0x71AE +0x9FDF 0x71AF +0x9FE0 0x71B0 +0x9FE1 0x71B1 +0x9FE2 0x71B2 +0x9FE3 0x71B4 +0x9FE4 0x71B6 +0x9FE5 0x71B7 +0x9FE6 0x71B8 +0x9FE7 0x71BA +0x9FE8 0x71BB +0x9FE9 0x71BC +0x9FEA 0x71BD +0x9FEB 0x71BE +0x9FEC 0x71BF +0x9FED 0x71C0 +0x9FEE 0x71C1 +0x9FEF 0x71C2 +0x9FF0 0x71C4 +0x9FF1 0x71C5 +0x9FF2 0x71C6 +0x9FF3 0x71C7 +0x9FF4 0x71C8 +0x9FF5 0x71C9 +0x9FF6 0x71CA +0x9FF7 0x71CB +0x9FF8 0x71CC +0x9FF9 0x71CD +0x9FFA 0x71CF +0x9FFB 0x71D0 +0x9FFC 0x71D1 +0x9FFD 0x71D2 +0x9FFE 0x71D3 +0xA040 0x71D6 +0xA041 0x71D7 +0xA042 0x71D8 +0xA043 0x71D9 +0xA044 0x71DA +0xA045 0x71DB +0xA046 0x71DC +0xA047 0x71DD +0xA048 0x71DE +0xA049 0x71DF +0xA04A 0x71E1 +0xA04B 0x71E2 +0xA04C 0x71E3 +0xA04D 0x71E4 +0xA04E 0x71E6 +0xA04F 0x71E8 +0xA050 0x71E9 +0xA051 0x71EA +0xA052 0x71EB +0xA053 0x71EC +0xA054 0x71ED +0xA055 0x71EF +0xA056 0x71F0 +0xA057 0x71F1 +0xA058 0x71F2 +0xA059 0x71F3 +0xA05A 0x71F4 +0xA05B 0x71F5 +0xA05C 0x71F6 +0xA05D 0x71F7 +0xA05E 0x71F8 +0xA05F 0x71FA +0xA060 0x71FB +0xA061 0x71FC +0xA062 0x71FD +0xA063 0x71FE +0xA064 0x71FF +0xA065 0x7200 +0xA066 0x7201 +0xA067 0x7202 +0xA068 0x7203 +0xA069 0x7204 +0xA06A 0x7205 +0xA06B 0x7207 +0xA06C 0x7208 +0xA06D 0x7209 +0xA06E 0x720A +0xA06F 0x720B +0xA070 0x720C +0xA071 0x720D +0xA072 0x720E +0xA073 0x720F +0xA074 0x7210 +0xA075 0x7211 +0xA076 0x7212 +0xA077 0x7213 +0xA078 0x7214 +0xA079 0x7215 +0xA07A 0x7216 +0xA07B 0x7217 +0xA07C 0x7218 +0xA07D 0x7219 +0xA07E 0x721A +0xA080 0x721B +0xA081 0x721C +0xA082 0x721E +0xA083 0x721F +0xA084 0x7220 +0xA085 0x7221 +0xA086 0x7222 +0xA087 0x7223 +0xA088 0x7224 +0xA089 0x7225 +0xA08A 0x7226 +0xA08B 0x7227 +0xA08C 0x7229 +0xA08D 0x722B +0xA08E 0x722D +0xA08F 0x722E +0xA090 0x722F +0xA091 0x7232 +0xA092 0x7233 +0xA093 0x7234 +0xA094 0x723A +0xA095 0x723C +0xA096 0x723E +0xA097 0x7240 +0xA098 0x7241 +0xA099 0x7242 +0xA09A 0x7243 +0xA09B 0x7244 +0xA09C 0x7245 +0xA09D 0x7246 +0xA09E 0x7249 +0xA09F 0x724A +0xA0A0 0x724B +0xA0A1 0x724E +0xA0A2 0x724F +0xA0A3 0x7250 +0xA0A4 0x7251 +0xA0A5 0x7253 +0xA0A6 0x7254 +0xA0A7 0x7255 +0xA0A8 0x7257 +0xA0A9 0x7258 +0xA0AA 0x725A +0xA0AB 0x725C +0xA0AC 0x725E +0xA0AD 0x7260 +0xA0AE 0x7263 +0xA0AF 0x7264 +0xA0B0 0x7265 +0xA0B1 0x7268 +0xA0B2 0x726A +0xA0B3 0x726B +0xA0B4 0x726C +0xA0B5 0x726D +0xA0B6 0x7270 +0xA0B7 0x7271 +0xA0B8 0x7273 +0xA0B9 0x7274 +0xA0BA 0x7276 +0xA0BB 0x7277 +0xA0BC 0x7278 +0xA0BD 0x727B +0xA0BE 0x727C +0xA0BF 0x727D +0xA0C0 0x7282 +0xA0C1 0x7283 +0xA0C2 0x7285 +0xA0C3 0x7286 +0xA0C4 0x7287 +0xA0C5 0x7288 +0xA0C6 0x7289 +0xA0C7 0x728C +0xA0C8 0x728E +0xA0C9 0x7290 +0xA0CA 0x7291 +0xA0CB 0x7293 +0xA0CC 0x7294 +0xA0CD 0x7295 +0xA0CE 0x7296 +0xA0CF 0x7297 +0xA0D0 0x7298 +0xA0D1 0x7299 +0xA0D2 0x729A +0xA0D3 0x729B +0xA0D4 0x729C +0xA0D5 0x729D +0xA0D6 0x729E +0xA0D7 0x72A0 +0xA0D8 0x72A1 +0xA0D9 0x72A2 +0xA0DA 0x72A3 +0xA0DB 0x72A4 +0xA0DC 0x72A5 +0xA0DD 0x72A6 +0xA0DE 0x72A7 +0xA0DF 0x72A8 +0xA0E0 0x72A9 +0xA0E1 0x72AA +0xA0E2 0x72AB +0xA0E3 0x72AE +0xA0E4 0x72B1 +0xA0E5 0x72B2 +0xA0E6 0x72B3 +0xA0E7 0x72B5 +0xA0E8 0x72BA +0xA0E9 0x72BB +0xA0EA 0x72BC +0xA0EB 0x72BD +0xA0EC 0x72BE +0xA0ED 0x72BF +0xA0EE 0x72C0 +0xA0EF 0x72C5 +0xA0F0 0x72C6 +0xA0F1 0x72C7 +0xA0F2 0x72C9 +0xA0F3 0x72CA +0xA0F4 0x72CB +0xA0F5 0x72CC +0xA0F6 0x72CF +0xA0F7 0x72D1 +0xA0F8 0x72D3 +0xA0F9 0x72D4 +0xA0FA 0x72D5 +0xA0FB 0x72D6 +0xA0FC 0x72D8 +0xA0FD 0x72DA +0xA0FE 0x72DB +0xA140 0xE4C6 +0xA141 0xE4C7 +0xA142 0xE4C8 +0xA143 0xE4C9 +0xA144 0xE4CA +0xA145 0xE4CB +0xA146 0xE4CC +0xA147 0xE4CD +0xA148 0xE4CE +0xA149 0xE4CF +0xA14A 0xE4D0 +0xA14B 0xE4D1 +0xA14C 0xE4D2 +0xA14D 0xE4D3 +0xA14E 0xE4D4 +0xA14F 0xE4D5 +0xA150 0xE4D6 +0xA151 0xE4D7 +0xA152 0xE4D8 +0xA153 0xE4D9 +0xA154 0xE4DA +0xA155 0xE4DB +0xA156 0xE4DC +0xA157 0xE4DD +0xA158 0xE4DE +0xA159 0xE4DF +0xA15A 0xE4E0 +0xA15B 0xE4E1 +0xA15C 0xE4E2 +0xA15D 0xE4E3 +0xA15E 0xE4E4 +0xA15F 0xE4E5 +0xA160 0xE4E6 +0xA161 0xE4E7 +0xA162 0xE4E8 +0xA163 0xE4E9 +0xA164 0xE4EA +0xA165 0xE4EB +0xA166 0xE4EC +0xA167 0xE4ED +0xA168 0xE4EE +0xA169 0xE4EF +0xA16A 0xE4F0 +0xA16B 0xE4F1 +0xA16C 0xE4F2 +0xA16D 0xE4F3 +0xA16E 0xE4F4 +0xA16F 0xE4F5 +0xA170 0xE4F6 +0xA171 0xE4F7 +0xA172 0xE4F8 +0xA173 0xE4F9 +0xA174 0xE4FA +0xA175 0xE4FB +0xA176 0xE4FC +0xA177 0xE4FD +0xA178 0xE4FE +0xA179 0xE4FF +0xA17A 0xE500 +0xA17B 0xE501 +0xA17C 0xE502 +0xA17D 0xE503 +0xA17E 0xE504 +0xA180 0xE505 +0xA181 0xE506 +0xA182 0xE507 +0xA183 0xE508 +0xA184 0xE509 +0xA185 0xE50A +0xA186 0xE50B +0xA187 0xE50C +0xA188 0xE50D +0xA189 0xE50E +0xA18A 0xE50F +0xA18B 0xE510 +0xA18C 0xE511 +0xA18D 0xE512 +0xA18E 0xE513 +0xA18F 0xE514 +0xA190 0xE515 +0xA191 0xE516 +0xA192 0xE517 +0xA193 0xE518 +0xA194 0xE519 +0xA195 0xE51A +0xA196 0xE51B +0xA197 0xE51C +0xA198 0xE51D +0xA199 0xE51E +0xA19A 0xE51F +0xA19B 0xE520 +0xA19C 0xE521 +0xA19D 0xE522 +0xA19E 0xE523 +0xA19F 0xE524 +0xA1A0 0xE525 +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x00B7 +0xA1A5 0x02C9 +0xA1A6 0x02C7 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x3005 +0xA1AA 0x2014 +0xA1AB 0xFF5E +0xA1AC 0x2016 +0xA1AD 0x2026 +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3016 +0xA1BD 0x3017 +0xA1BE 0x3010 +0xA1BF 0x3011 +0xA1C0 0x00B1 +0xA1C1 0x00D7 +0xA1C2 0x00F7 +0xA1C3 0x2236 +0xA1C4 0x2227 +0xA1C5 0x2228 +0xA1C6 0x2211 +0xA1C7 0x220F +0xA1C8 0x222A +0xA1C9 0x2229 +0xA1CA 0x2208 +0xA1CB 0x2237 +0xA1CC 0x221A +0xA1CD 0x22A5 +0xA1CE 0x2225 +0xA1CF 0x2220 +0xA1D0 0x2312 +0xA1D1 0x2299 +0xA1D2 0x222B +0xA1D3 0x222E +0xA1D4 0x2261 +0xA1D5 0x224C +0xA1D6 0x2248 +0xA1D7 0x223D +0xA1D8 0x221D +0xA1D9 0x2260 +0xA1DA 0x226E +0xA1DB 0x226F +0xA1DC 0x2264 +0xA1DD 0x2265 +0xA1DE 0x221E +0xA1DF 0x2235 +0xA1E0 0x2234 +0xA1E1 0x2642 +0xA1E2 0x2640 +0xA1E3 0x00B0 +0xA1E4 0x2032 +0xA1E5 0x2033 +0xA1E6 0x2103 +0xA1E7 0xFF04 +0xA1E8 0x00A4 +0xA1E9 0xFFE0 +0xA1EA 0xFFE1 +0xA1EB 0x2030 +0xA1EC 0x00A7 +0xA1ED 0x2116 +0xA1EE 0x2606 +0xA1EF 0x2605 +0xA1F0 0x25CB +0xA1F1 0x25CF +0xA1F2 0x25CE +0xA1F3 0x25C7 +0xA1F4 0x25C6 +0xA1F5 0x25A1 +0xA1F6 0x25A0 +0xA1F7 0x25B3 +0xA1F8 0x25B2 +0xA1F9 0x203B +0xA1FA 0x2192 +0xA1FB 0x2190 +0xA1FC 0x2191 +0xA1FD 0x2193 +0xA1FE 0x3013 +0xA240 0xE526 +0xA241 0xE527 +0xA242 0xE528 +0xA243 0xE529 +0xA244 0xE52A +0xA245 0xE52B +0xA246 0xE52C +0xA247 0xE52D +0xA248 0xE52E +0xA249 0xE52F +0xA24A 0xE530 +0xA24B 0xE531 +0xA24C 0xE532 +0xA24D 0xE533 +0xA24E 0xE534 +0xA24F 0xE535 +0xA250 0xE536 +0xA251 0xE537 +0xA252 0xE538 +0xA253 0xE539 +0xA254 0xE53A +0xA255 0xE53B +0xA256 0xE53C +0xA257 0xE53D +0xA258 0xE53E +0xA259 0xE53F +0xA25A 0xE540 +0xA25B 0xE541 +0xA25C 0xE542 +0xA25D 0xE543 +0xA25E 0xE544 +0xA25F 0xE545 +0xA260 0xE546 +0xA261 0xE547 +0xA262 0xE548 +0xA263 0xE549 +0xA264 0xE54A +0xA265 0xE54B +0xA266 0xE54C +0xA267 0xE54D +0xA268 0xE54E +0xA269 0xE54F +0xA26A 0xE550 +0xA26B 0xE551 +0xA26C 0xE552 +0xA26D 0xE553 +0xA26E 0xE554 +0xA26F 0xE555 +0xA270 0xE556 +0xA271 0xE557 +0xA272 0xE558 +0xA273 0xE559 +0xA274 0xE55A +0xA275 0xE55B +0xA276 0xE55C +0xA277 0xE55D +0xA278 0xE55E +0xA279 0xE55F +0xA27A 0xE560 +0xA27B 0xE561 +0xA27C 0xE562 +0xA27D 0xE563 +0xA27E 0xE564 +0xA280 0xE565 +0xA281 0xE566 +0xA282 0xE567 +0xA283 0xE568 +0xA284 0xE569 +0xA285 0xE56A +0xA286 0xE56B +0xA287 0xE56C +0xA288 0xE56D +0xA289 0xE56E +0xA28A 0xE56F +0xA28B 0xE570 +0xA28C 0xE571 +0xA28D 0xE572 +0xA28E 0xE573 +0xA28F 0xE574 +0xA290 0xE575 +0xA291 0xE576 +0xA292 0xE577 +0xA293 0xE578 +0xA294 0xE579 +0xA295 0xE57A +0xA296 0xE57B +0xA297 0xE57C +0xA298 0xE57D +0xA299 0xE57E +0xA29A 0xE57F +0xA29B 0xE580 +0xA29C 0xE581 +0xA29D 0xE582 +0xA29E 0xE583 +0xA29F 0xE584 +0xA2A0 0xE585 +0xA2A1 0x2170 +0xA2A2 0x2171 +0xA2A3 0x2172 +0xA2A4 0x2173 +0xA2A5 0x2174 +0xA2A6 0x2175 +0xA2A7 0x2176 +0xA2A8 0x2177 +0xA2A9 0x2178 +0xA2AA 0x2179 +0xA2B1 0x2488 +0xA2B2 0x2489 +0xA2B3 0x248A +0xA2B4 0x248B +0xA2B5 0x248C +0xA2B6 0x248D +0xA2B7 0x248E +0xA2B8 0x248F +0xA2B9 0x2490 +0xA2BA 0x2491 +0xA2BB 0x2492 +0xA2BC 0x2493 +0xA2BD 0x2494 +0xA2BE 0x2495 +0xA2BF 0x2496 +0xA2C0 0x2497 +0xA2C1 0x2498 +0xA2C2 0x2499 +0xA2C3 0x249A +0xA2C4 0x249B +0xA2C5 0x2474 +0xA2C6 0x2475 +0xA2C7 0x2476 +0xA2C8 0x2477 +0xA2C9 0x2478 +0xA2CA 0x2479 +0xA2CB 0x247A +0xA2CC 0x247B +0xA2CD 0x247C +0xA2CE 0x247D +0xA2CF 0x247E +0xA2D0 0x247F +0xA2D1 0x2480 +0xA2D2 0x2481 +0xA2D3 0x2482 +0xA2D4 0x2483 +0xA2D5 0x2484 +0xA2D6 0x2485 +0xA2D7 0x2486 +0xA2D8 0x2487 +0xA2D9 0x2460 +0xA2DA 0x2461 +0xA2DB 0x2462 +0xA2DC 0x2463 +0xA2DD 0x2464 +0xA2DE 0x2465 +0xA2DF 0x2466 +0xA2E0 0x2467 +0xA2E1 0x2468 +0xA2E2 0x2469 +0xA2E5 0x3220 +0xA2E6 0x3221 +0xA2E7 0x3222 +0xA2E8 0x3223 +0xA2E9 0x3224 +0xA2EA 0x3225 +0xA2EB 0x3226 +0xA2EC 0x3227 +0xA2ED 0x3228 +0xA2EE 0x3229 +0xA2F1 0x2160 +0xA2F2 0x2161 +0xA2F3 0x2162 +0xA2F4 0x2163 +0xA2F5 0x2164 +0xA2F6 0x2165 +0xA2F7 0x2166 +0xA2F8 0x2167 +0xA2F9 0x2168 +0xA2FA 0x2169 +0xA2FB 0x216A +0xA2FC 0x216B +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFFE5 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFF3C +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA6E0 0xFE35 +0xA6E1 0xFE36 +0xA6E2 0xFE39 +0xA6E3 0xFE3A +0xA6E4 0xFE3F +0xA6E5 0xFE40 +0xA6E6 0xFE3D +0xA6E7 0xFE3E +0xA6E8 0xFE41 +0xA6E9 0xFE42 +0xA6EA 0xFE43 +0xA6EB 0xFE44 +0xA6EE 0xFE3B +0xA6EF 0xFE3C +0xA6F0 0xFE37 +0xA6F1 0xFE38 +0xA6F2 0xFE31 +0xA6F4 0xFE33 +0xA6F5 0xFE34 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA840 0x02CA +0xA841 0x02CB +0xA842 0x02D9 +0xA843 0x2013 +0xA844 0x2015 +0xA845 0x2025 +0xA846 0x2035 +0xA847 0x2105 +0xA848 0x2109 +0xA849 0x2196 +0xA84A 0x2197 +0xA84B 0x2198 +0xA84C 0x2199 +0xA84D 0x2215 +0xA84E 0x221F +0xA84F 0x2223 +0xA850 0x2252 +0xA851 0x2266 +0xA852 0x2267 +0xA853 0x22BF +0xA854 0x2550 +0xA855 0x2551 +0xA856 0x2552 +0xA857 0x2553 +0xA858 0x2554 +0xA859 0x2555 +0xA85A 0x2556 +0xA85B 0x2557 +0xA85C 0x2558 +0xA85D 0x2559 +0xA85E 0x255A +0xA85F 0x255B +0xA860 0x255C +0xA861 0x255D +0xA862 0x255E +0xA863 0x255F +0xA864 0x2560 +0xA865 0x2561 +0xA866 0x2562 +0xA867 0x2563 +0xA868 0x2564 +0xA869 0x2565 +0xA86A 0x2566 +0xA86B 0x2567 +0xA86C 0x2568 +0xA86D 0x2569 +0xA86E 0x256A +0xA86F 0x256B +0xA870 0x256C +0xA871 0x256D +0xA872 0x256E +0xA873 0x256F +0xA874 0x2570 +0xA875 0x2571 +0xA876 0x2572 +0xA877 0x2573 +0xA878 0x2581 +0xA879 0x2582 +0xA87A 0x2583 +0xA87B 0x2584 +0xA87C 0x2585 +0xA87D 0x2586 +0xA87E 0x2587 +0xA880 0x2588 +0xA881 0x2589 +0xA882 0x258A +0xA883 0x258B +0xA884 0x258C +0xA885 0x258D +0xA886 0x258E +0xA887 0x258F +0xA888 0x2593 +0xA889 0x2594 +0xA88A 0x2595 +0xA88B 0x25BC +0xA88C 0x25BD +0xA88D 0x25E2 +0xA88E 0x25E3 +0xA88F 0x25E4 +0xA890 0x25E5 +0xA891 0x2609 +0xA892 0x2295 +0xA893 0x3012 +0xA894 0x301D +0xA895 0x301E +0xA8A1 0x0101 +0xA8A2 0x00E1 +0xA8A3 0x01CE +0xA8A4 0x00E0 +0xA8A5 0x0113 +0xA8A6 0x00E9 +0xA8A7 0x011B +0xA8A8 0x00E8 +0xA8A9 0x012B +0xA8AA 0x00ED +0xA8AB 0x01D0 +0xA8AC 0x00EC +0xA8AD 0x014D +0xA8AE 0x00F3 +0xA8AF 0x01D2 +0xA8B0 0x00F2 +0xA8B1 0x016B +0xA8B2 0x00FA +0xA8B3 0x01D4 +0xA8B4 0x00F9 +0xA8B5 0x01D6 +0xA8B6 0x01D8 +0xA8B7 0x01DA +0xA8B8 0x01DC +0xA8B9 0x00FC +0xA8BA 0x00EA +0xA8BB 0x0251 +0xA8BD 0x0144 +0xA8BE 0x0148 +0xA8C0 0x0261 +0xA8C5 0x3105 +0xA8C6 0x3106 +0xA8C7 0x3107 +0xA8C8 0x3108 +0xA8C9 0x3109 +0xA8CA 0x310A +0xA8CB 0x310B +0xA8CC 0x310C +0xA8CD 0x310D +0xA8CE 0x310E +0xA8CF 0x310F +0xA8D0 0x3110 +0xA8D1 0x3111 +0xA8D2 0x3112 +0xA8D3 0x3113 +0xA8D4 0x3114 +0xA8D5 0x3115 +0xA8D6 0x3116 +0xA8D7 0x3117 +0xA8D8 0x3118 +0xA8D9 0x3119 +0xA8DA 0x311A +0xA8DB 0x311B +0xA8DC 0x311C +0xA8DD 0x311D +0xA8DE 0x311E +0xA8DF 0x311F +0xA8E0 0x3120 +0xA8E1 0x3121 +0xA8E2 0x3122 +0xA8E3 0x3123 +0xA8E4 0x3124 +0xA8E5 0x3125 +0xA8E6 0x3126 +0xA8E7 0x3127 +0xA8E8 0x3128 +0xA8E9 0x3129 +0xA940 0x3021 +0xA941 0x3022 +0xA942 0x3023 +0xA943 0x3024 +0xA944 0x3025 +0xA945 0x3026 +0xA946 0x3027 +0xA947 0x3028 +0xA948 0x3029 +0xA949 0x32A3 +0xA94A 0x338E +0xA94B 0x338F +0xA94C 0x339C +0xA94D 0x339D +0xA94E 0x339E +0xA94F 0x33A1 +0xA950 0x33C4 +0xA951 0x33CE +0xA952 0x33D1 +0xA953 0x33D2 +0xA954 0x33D5 +0xA955 0xFE30 +0xA956 0xFFE2 +0xA957 0xFFE4 +0xA959 0x2121 +0xA95A 0x3231 +0xA95C 0x2010 +0xA960 0x30FC +0xA961 0x309B +0xA962 0x309C +0xA963 0x30FD +0xA964 0x30FE +0xA965 0x3006 +0xA966 0x309D +0xA967 0x309E +0xA968 0xFE49 +0xA969 0xFE4A +0xA96A 0xFE4B +0xA96B 0xFE4C +0xA96C 0xFE4D +0xA96D 0xFE4E +0xA96E 0xFE4F +0xA96F 0xFE50 +0xA970 0xFE51 +0xA971 0xFE52 +0xA972 0xFE54 +0xA973 0xFE55 +0xA974 0xFE56 +0xA975 0xFE57 +0xA976 0xFE59 +0xA977 0xFE5A +0xA978 0xFE5B +0xA979 0xFE5C +0xA97A 0xFE5D +0xA97B 0xFE5E +0xA97C 0xFE5F +0xA97D 0xFE60 +0xA97E 0xFE61 +0xA980 0xFE62 +0xA981 0xFE63 +0xA982 0xFE64 +0xA983 0xFE65 +0xA984 0xFE66 +0xA985 0xFE68 +0xA986 0xFE69 +0xA987 0xFE6A +0xA988 0xFE6B +0xA996 0x3007 +0xA9A4 0x2500 +0xA9A5 0x2501 +0xA9A6 0x2502 +0xA9A7 0x2503 +0xA9A8 0x2504 +0xA9A9 0x2505 +0xA9AA 0x2506 +0xA9AB 0x2507 +0xA9AC 0x2508 +0xA9AD 0x2509 +0xA9AE 0x250A +0xA9AF 0x250B +0xA9B0 0x250C +0xA9B1 0x250D +0xA9B2 0x250E +0xA9B3 0x250F +0xA9B4 0x2510 +0xA9B5 0x2511 +0xA9B6 0x2512 +0xA9B7 0x2513 +0xA9B8 0x2514 +0xA9B9 0x2515 +0xA9BA 0x2516 +0xA9BB 0x2517 +0xA9BC 0x2518 +0xA9BD 0x2519 +0xA9BE 0x251A +0xA9BF 0x251B +0xA9C0 0x251C +0xA9C1 0x251D +0xA9C2 0x251E +0xA9C3 0x251F +0xA9C4 0x2520 +0xA9C5 0x2521 +0xA9C6 0x2522 +0xA9C7 0x2523 +0xA9C8 0x2524 +0xA9C9 0x2525 +0xA9CA 0x2526 +0xA9CB 0x2527 +0xA9CC 0x2528 +0xA9CD 0x2529 +0xA9CE 0x252A +0xA9CF 0x252B +0xA9D0 0x252C +0xA9D1 0x252D +0xA9D2 0x252E +0xA9D3 0x252F +0xA9D4 0x2530 +0xA9D5 0x2531 +0xA9D6 0x2532 +0xA9D7 0x2533 +0xA9D8 0x2534 +0xA9D9 0x2535 +0xA9DA 0x2536 +0xA9DB 0x2537 +0xA9DC 0x2538 +0xA9DD 0x2539 +0xA9DE 0x253A +0xA9DF 0x253B +0xA9E0 0x253C +0xA9E1 0x253D +0xA9E2 0x253E +0xA9E3 0x253F +0xA9E4 0x2540 +0xA9E5 0x2541 +0xA9E6 0x2542 +0xA9E7 0x2543 +0xA9E8 0x2544 +0xA9E9 0x2545 +0xA9EA 0x2546 +0xA9EB 0x2547 +0xA9EC 0x2548 +0xA9ED 0x2549 +0xA9EE 0x254A +0xA9EF 0x254B +0xAA40 0x72DC +0xAA41 0x72DD +0xAA42 0x72DF +0xAA43 0x72E2 +0xAA44 0x72E3 +0xAA45 0x72E4 +0xAA46 0x72E5 +0xAA47 0x72E6 +0xAA48 0x72E7 +0xAA49 0x72EA +0xAA4A 0x72EB +0xAA4B 0x72F5 +0xAA4C 0x72F6 +0xAA4D 0x72F9 +0xAA4E 0x72FD +0xAA4F 0x72FE +0xAA50 0x72FF +0xAA51 0x7300 +0xAA52 0x7302 +0xAA53 0x7304 +0xAA54 0x7305 +0xAA55 0x7306 +0xAA56 0x7307 +0xAA57 0x7308 +0xAA58 0x7309 +0xAA59 0x730B +0xAA5A 0x730C +0xAA5B 0x730D +0xAA5C 0x730F +0xAA5D 0x7310 +0xAA5E 0x7311 +0xAA5F 0x7312 +0xAA60 0x7314 +0xAA61 0x7318 +0xAA62 0x7319 +0xAA63 0x731A +0xAA64 0x731F +0xAA65 0x7320 +0xAA66 0x7323 +0xAA67 0x7324 +0xAA68 0x7326 +0xAA69 0x7327 +0xAA6A 0x7328 +0xAA6B 0x732D +0xAA6C 0x732F +0xAA6D 0x7330 +0xAA6E 0x7332 +0xAA6F 0x7333 +0xAA70 0x7335 +0xAA71 0x7336 +0xAA72 0x733A +0xAA73 0x733B +0xAA74 0x733C +0xAA75 0x733D +0xAA76 0x7340 +0xAA77 0x7341 +0xAA78 0x7342 +0xAA79 0x7343 +0xAA7A 0x7344 +0xAA7B 0x7345 +0xAA7C 0x7346 +0xAA7D 0x7347 +0xAA7E 0x7348 +0xAA80 0x7349 +0xAA81 0x734A +0xAA82 0x734B +0xAA83 0x734C +0xAA84 0x734E +0xAA85 0x734F +0xAA86 0x7351 +0xAA87 0x7353 +0xAA88 0x7354 +0xAA89 0x7355 +0xAA8A 0x7356 +0xAA8B 0x7358 +0xAA8C 0x7359 +0xAA8D 0x735A +0xAA8E 0x735B +0xAA8F 0x735C +0xAA90 0x735D +0xAA91 0x735E +0xAA92 0x735F +0xAA93 0x7361 +0xAA94 0x7362 +0xAA95 0x7363 +0xAA96 0x7364 +0xAA97 0x7365 +0xAA98 0x7366 +0xAA99 0x7367 +0xAA9A 0x7368 +0xAA9B 0x7369 +0xAA9C 0x736A +0xAA9D 0x736B +0xAA9E 0x736E +0xAA9F 0x7370 +0xAAA0 0x7371 +0xAAA1 0xE000 +0xAAA2 0xE001 +0xAAA3 0xE002 +0xAAA4 0xE003 +0xAAA5 0xE004 +0xAAA6 0xE005 +0xAAA7 0xE006 +0xAAA8 0xE007 +0xAAA9 0xE008 +0xAAAA 0xE009 +0xAAAB 0xE00A +0xAAAC 0xE00B +0xAAAD 0xE00C +0xAAAE 0xE00D +0xAAAF 0xE00E +0xAAB0 0xE00F +0xAAB1 0xE010 +0xAAB2 0xE011 +0xAAB3 0xE012 +0xAAB4 0xE013 +0xAAB5 0xE014 +0xAAB6 0xE015 +0xAAB7 0xE016 +0xAAB8 0xE017 +0xAAB9 0xE018 +0xAABA 0xE019 +0xAABB 0xE01A +0xAABC 0xE01B +0xAABD 0xE01C +0xAABE 0xE01D +0xAABF 0xE01E +0xAAC0 0xE01F +0xAAC1 0xE020 +0xAAC2 0xE021 +0xAAC3 0xE022 +0xAAC4 0xE023 +0xAAC5 0xE024 +0xAAC6 0xE025 +0xAAC7 0xE026 +0xAAC8 0xE027 +0xAAC9 0xE028 +0xAACA 0xE029 +0xAACB 0xE02A +0xAACC 0xE02B +0xAACD 0xE02C +0xAACE 0xE02D +0xAACF 0xE02E +0xAAD0 0xE02F +0xAAD1 0xE030 +0xAAD2 0xE031 +0xAAD3 0xE032 +0xAAD4 0xE033 +0xAAD5 0xE034 +0xAAD6 0xE035 +0xAAD7 0xE036 +0xAAD8 0xE037 +0xAAD9 0xE038 +0xAADA 0xE039 +0xAADB 0xE03A +0xAADC 0xE03B +0xAADD 0xE03C +0xAADE 0xE03D +0xAADF 0xE03E +0xAAE0 0xE03F +0xAAE1 0xE040 +0xAAE2 0xE041 +0xAAE3 0xE042 +0xAAE4 0xE043 +0xAAE5 0xE044 +0xAAE6 0xE045 +0xAAE7 0xE046 +0xAAE8 0xE047 +0xAAE9 0xE048 +0xAAEA 0xE049 +0xAAEB 0xE04A +0xAAEC 0xE04B +0xAAED 0xE04C +0xAAEE 0xE04D +0xAAEF 0xE04E +0xAAF0 0xE04F +0xAAF1 0xE050 +0xAAF2 0xE051 +0xAAF3 0xE052 +0xAAF4 0xE053 +0xAAF5 0xE054 +0xAAF6 0xE055 +0xAAF7 0xE056 +0xAAF8 0xE057 +0xAAF9 0xE058 +0xAAFA 0xE059 +0xAAFB 0xE05A +0xAAFC 0xE05B +0xAAFD 0xE05C +0xAAFE 0xE05D +0xAB40 0x7372 +0xAB41 0x7373 +0xAB42 0x7374 +0xAB43 0x7375 +0xAB44 0x7376 +0xAB45 0x7377 +0xAB46 0x7378 +0xAB47 0x7379 +0xAB48 0x737A +0xAB49 0x737B +0xAB4A 0x737C +0xAB4B 0x737D +0xAB4C 0x737F +0xAB4D 0x7380 +0xAB4E 0x7381 +0xAB4F 0x7382 +0xAB50 0x7383 +0xAB51 0x7385 +0xAB52 0x7386 +0xAB53 0x7388 +0xAB54 0x738A +0xAB55 0x738C +0xAB56 0x738D +0xAB57 0x738F +0xAB58 0x7390 +0xAB59 0x7392 +0xAB5A 0x7393 +0xAB5B 0x7394 +0xAB5C 0x7395 +0xAB5D 0x7397 +0xAB5E 0x7398 +0xAB5F 0x7399 +0xAB60 0x739A +0xAB61 0x739C +0xAB62 0x739D +0xAB63 0x739E +0xAB64 0x73A0 +0xAB65 0x73A1 +0xAB66 0x73A3 +0xAB67 0x73A4 +0xAB68 0x73A5 +0xAB69 0x73A6 +0xAB6A 0x73A7 +0xAB6B 0x73A8 +0xAB6C 0x73AA +0xAB6D 0x73AC +0xAB6E 0x73AD +0xAB6F 0x73B1 +0xAB70 0x73B4 +0xAB71 0x73B5 +0xAB72 0x73B6 +0xAB73 0x73B8 +0xAB74 0x73B9 +0xAB75 0x73BC +0xAB76 0x73BD +0xAB77 0x73BE +0xAB78 0x73BF +0xAB79 0x73C1 +0xAB7A 0x73C3 +0xAB7B 0x73C4 +0xAB7C 0x73C5 +0xAB7D 0x73C6 +0xAB7E 0x73C7 +0xAB80 0x73CB +0xAB81 0x73CC +0xAB82 0x73CE +0xAB83 0x73D2 +0xAB84 0x73D3 +0xAB85 0x73D4 +0xAB86 0x73D5 +0xAB87 0x73D6 +0xAB88 0x73D7 +0xAB89 0x73D8 +0xAB8A 0x73DA +0xAB8B 0x73DB +0xAB8C 0x73DC +0xAB8D 0x73DD +0xAB8E 0x73DF +0xAB8F 0x73E1 +0xAB90 0x73E2 +0xAB91 0x73E3 +0xAB92 0x73E4 +0xAB93 0x73E6 +0xAB94 0x73E8 +0xAB95 0x73EA +0xAB96 0x73EB +0xAB97 0x73EC +0xAB98 0x73EE +0xAB99 0x73EF +0xAB9A 0x73F0 +0xAB9B 0x73F1 +0xAB9C 0x73F3 +0xAB9D 0x73F4 +0xAB9E 0x73F5 +0xAB9F 0x73F6 +0xABA0 0x73F7 +0xABA1 0xE05E +0xABA2 0xE05F +0xABA3 0xE060 +0xABA4 0xE061 +0xABA5 0xE062 +0xABA6 0xE063 +0xABA7 0xE064 +0xABA8 0xE065 +0xABA9 0xE066 +0xABAA 0xE067 +0xABAB 0xE068 +0xABAC 0xE069 +0xABAD 0xE06A +0xABAE 0xE06B +0xABAF 0xE06C +0xABB0 0xE06D +0xABB1 0xE06E +0xABB2 0xE06F +0xABB3 0xE070 +0xABB4 0xE071 +0xABB5 0xE072 +0xABB6 0xE073 +0xABB7 0xE074 +0xABB8 0xE075 +0xABB9 0xE076 +0xABBA 0xE077 +0xABBB 0xE078 +0xABBC 0xE079 +0xABBD 0xE07A +0xABBE 0xE07B +0xABBF 0xE07C +0xABC0 0xE07D +0xABC1 0xE07E +0xABC2 0xE07F +0xABC3 0xE080 +0xABC4 0xE081 +0xABC5 0xE082 +0xABC6 0xE083 +0xABC7 0xE084 +0xABC8 0xE085 +0xABC9 0xE086 +0xABCA 0xE087 +0xABCB 0xE088 +0xABCC 0xE089 +0xABCD 0xE08A +0xABCE 0xE08B +0xABCF 0xE08C +0xABD0 0xE08D +0xABD1 0xE08E +0xABD2 0xE08F +0xABD3 0xE090 +0xABD4 0xE091 +0xABD5 0xE092 +0xABD6 0xE093 +0xABD7 0xE094 +0xABD8 0xE095 +0xABD9 0xE096 +0xABDA 0xE097 +0xABDB 0xE098 +0xABDC 0xE099 +0xABDD 0xE09A +0xABDE 0xE09B +0xABDF 0xE09C +0xABE0 0xE09D +0xABE1 0xE09E +0xABE2 0xE09F +0xABE3 0xE0A0 +0xABE4 0xE0A1 +0xABE5 0xE0A2 +0xABE6 0xE0A3 +0xABE7 0xE0A4 +0xABE8 0xE0A5 +0xABE9 0xE0A6 +0xABEA 0xE0A7 +0xABEB 0xE0A8 +0xABEC 0xE0A9 +0xABED 0xE0AA +0xABEE 0xE0AB +0xABEF 0xE0AC +0xABF0 0xE0AD +0xABF1 0xE0AE +0xABF2 0xE0AF +0xABF3 0xE0B0 +0xABF4 0xE0B1 +0xABF5 0xE0B2 +0xABF6 0xE0B3 +0xABF7 0xE0B4 +0xABF8 0xE0B5 +0xABF9 0xE0B6 +0xABFA 0xE0B7 +0xABFB 0xE0B8 +0xABFC 0xE0B9 +0xABFD 0xE0BA +0xABFE 0xE0BB +0xAC40 0x73F8 +0xAC41 0x73F9 +0xAC42 0x73FA +0xAC43 0x73FB +0xAC44 0x73FC +0xAC45 0x73FD +0xAC46 0x73FE +0xAC47 0x73FF +0xAC48 0x7400 +0xAC49 0x7401 +0xAC4A 0x7402 +0xAC4B 0x7404 +0xAC4C 0x7407 +0xAC4D 0x7408 +0xAC4E 0x740B +0xAC4F 0x740C +0xAC50 0x740D +0xAC51 0x740E +0xAC52 0x7411 +0xAC53 0x7412 +0xAC54 0x7413 +0xAC55 0x7414 +0xAC56 0x7415 +0xAC57 0x7416 +0xAC58 0x7417 +0xAC59 0x7418 +0xAC5A 0x7419 +0xAC5B 0x741C +0xAC5C 0x741D +0xAC5D 0x741E +0xAC5E 0x741F +0xAC5F 0x7420 +0xAC60 0x7421 +0xAC61 0x7423 +0xAC62 0x7424 +0xAC63 0x7427 +0xAC64 0x7429 +0xAC65 0x742B +0xAC66 0x742D +0xAC67 0x742F +0xAC68 0x7431 +0xAC69 0x7432 +0xAC6A 0x7437 +0xAC6B 0x7438 +0xAC6C 0x7439 +0xAC6D 0x743A +0xAC6E 0x743B +0xAC6F 0x743D +0xAC70 0x743E +0xAC71 0x743F +0xAC72 0x7440 +0xAC73 0x7442 +0xAC74 0x7443 +0xAC75 0x7444 +0xAC76 0x7445 +0xAC77 0x7446 +0xAC78 0x7447 +0xAC79 0x7448 +0xAC7A 0x7449 +0xAC7B 0x744A +0xAC7C 0x744B +0xAC7D 0x744C +0xAC7E 0x744D +0xAC80 0x744E +0xAC81 0x744F +0xAC82 0x7450 +0xAC83 0x7451 +0xAC84 0x7452 +0xAC85 0x7453 +0xAC86 0x7454 +0xAC87 0x7456 +0xAC88 0x7458 +0xAC89 0x745D +0xAC8A 0x7460 +0xAC8B 0x7461 +0xAC8C 0x7462 +0xAC8D 0x7463 +0xAC8E 0x7464 +0xAC8F 0x7465 +0xAC90 0x7466 +0xAC91 0x7467 +0xAC92 0x7468 +0xAC93 0x7469 +0xAC94 0x746A +0xAC95 0x746B +0xAC96 0x746C +0xAC97 0x746E +0xAC98 0x746F +0xAC99 0x7471 +0xAC9A 0x7472 +0xAC9B 0x7473 +0xAC9C 0x7474 +0xAC9D 0x7475 +0xAC9E 0x7478 +0xAC9F 0x7479 +0xACA0 0x747A +0xACA1 0xE0BC +0xACA2 0xE0BD +0xACA3 0xE0BE +0xACA4 0xE0BF +0xACA5 0xE0C0 +0xACA6 0xE0C1 +0xACA7 0xE0C2 +0xACA8 0xE0C3 +0xACA9 0xE0C4 +0xACAA 0xE0C5 +0xACAB 0xE0C6 +0xACAC 0xE0C7 +0xACAD 0xE0C8 +0xACAE 0xE0C9 +0xACAF 0xE0CA +0xACB0 0xE0CB +0xACB1 0xE0CC +0xACB2 0xE0CD +0xACB3 0xE0CE +0xACB4 0xE0CF +0xACB5 0xE0D0 +0xACB6 0xE0D1 +0xACB7 0xE0D2 +0xACB8 0xE0D3 +0xACB9 0xE0D4 +0xACBA 0xE0D5 +0xACBB 0xE0D6 +0xACBC 0xE0D7 +0xACBD 0xE0D8 +0xACBE 0xE0D9 +0xACBF 0xE0DA +0xACC0 0xE0DB +0xACC1 0xE0DC +0xACC2 0xE0DD +0xACC3 0xE0DE +0xACC4 0xE0DF +0xACC5 0xE0E0 +0xACC6 0xE0E1 +0xACC7 0xE0E2 +0xACC8 0xE0E3 +0xACC9 0xE0E4 +0xACCA 0xE0E5 +0xACCB 0xE0E6 +0xACCC 0xE0E7 +0xACCD 0xE0E8 +0xACCE 0xE0E9 +0xACCF 0xE0EA +0xACD0 0xE0EB +0xACD1 0xE0EC +0xACD2 0xE0ED +0xACD3 0xE0EE +0xACD4 0xE0EF +0xACD5 0xE0F0 +0xACD6 0xE0F1 +0xACD7 0xE0F2 +0xACD8 0xE0F3 +0xACD9 0xE0F4 +0xACDA 0xE0F5 +0xACDB 0xE0F6 +0xACDC 0xE0F7 +0xACDD 0xE0F8 +0xACDE 0xE0F9 +0xACDF 0xE0FA +0xACE0 0xE0FB +0xACE1 0xE0FC +0xACE2 0xE0FD +0xACE3 0xE0FE +0xACE4 0xE0FF +0xACE5 0xE100 +0xACE6 0xE101 +0xACE7 0xE102 +0xACE8 0xE103 +0xACE9 0xE104 +0xACEA 0xE105 +0xACEB 0xE106 +0xACEC 0xE107 +0xACED 0xE108 +0xACEE 0xE109 +0xACEF 0xE10A +0xACF0 0xE10B +0xACF1 0xE10C +0xACF2 0xE10D +0xACF3 0xE10E +0xACF4 0xE10F +0xACF5 0xE110 +0xACF6 0xE111 +0xACF7 0xE112 +0xACF8 0xE113 +0xACF9 0xE114 +0xACFA 0xE115 +0xACFB 0xE116 +0xACFC 0xE117 +0xACFD 0xE118 +0xACFE 0xE119 +0xAD40 0x747B +0xAD41 0x747C +0xAD42 0x747D +0xAD43 0x747F +0xAD44 0x7482 +0xAD45 0x7484 +0xAD46 0x7485 +0xAD47 0x7486 +0xAD48 0x7488 +0xAD49 0x7489 +0xAD4A 0x748A +0xAD4B 0x748C +0xAD4C 0x748D +0xAD4D 0x748F +0xAD4E 0x7491 +0xAD4F 0x7492 +0xAD50 0x7493 +0xAD51 0x7494 +0xAD52 0x7495 +0xAD53 0x7496 +0xAD54 0x7497 +0xAD55 0x7498 +0xAD56 0x7499 +0xAD57 0x749A +0xAD58 0x749B +0xAD59 0x749D +0xAD5A 0x749F +0xAD5B 0x74A0 +0xAD5C 0x74A1 +0xAD5D 0x74A2 +0xAD5E 0x74A3 +0xAD5F 0x74A4 +0xAD60 0x74A5 +0xAD61 0x74A6 +0xAD62 0x74AA +0xAD63 0x74AB +0xAD64 0x74AC +0xAD65 0x74AD +0xAD66 0x74AE +0xAD67 0x74AF +0xAD68 0x74B0 +0xAD69 0x74B1 +0xAD6A 0x74B2 +0xAD6B 0x74B3 +0xAD6C 0x74B4 +0xAD6D 0x74B5 +0xAD6E 0x74B6 +0xAD6F 0x74B7 +0xAD70 0x74B8 +0xAD71 0x74B9 +0xAD72 0x74BB +0xAD73 0x74BC +0xAD74 0x74BD +0xAD75 0x74BE +0xAD76 0x74BF +0xAD77 0x74C0 +0xAD78 0x74C1 +0xAD79 0x74C2 +0xAD7A 0x74C3 +0xAD7B 0x74C4 +0xAD7C 0x74C5 +0xAD7D 0x74C6 +0xAD7E 0x74C7 +0xAD80 0x74C8 +0xAD81 0x74C9 +0xAD82 0x74CA +0xAD83 0x74CB +0xAD84 0x74CC +0xAD85 0x74CD +0xAD86 0x74CE +0xAD87 0x74CF +0xAD88 0x74D0 +0xAD89 0x74D1 +0xAD8A 0x74D3 +0xAD8B 0x74D4 +0xAD8C 0x74D5 +0xAD8D 0x74D6 +0xAD8E 0x74D7 +0xAD8F 0x74D8 +0xAD90 0x74D9 +0xAD91 0x74DA +0xAD92 0x74DB +0xAD93 0x74DD +0xAD94 0x74DF +0xAD95 0x74E1 +0xAD96 0x74E5 +0xAD97 0x74E7 +0xAD98 0x74E8 +0xAD99 0x74E9 +0xAD9A 0x74EA +0xAD9B 0x74EB +0xAD9C 0x74EC +0xAD9D 0x74ED +0xAD9E 0x74F0 +0xAD9F 0x74F1 +0xADA0 0x74F2 +0xADA1 0xE11A +0xADA2 0xE11B +0xADA3 0xE11C +0xADA4 0xE11D +0xADA5 0xE11E +0xADA6 0xE11F +0xADA7 0xE120 +0xADA8 0xE121 +0xADA9 0xE122 +0xADAA 0xE123 +0xADAB 0xE124 +0xADAC 0xE125 +0xADAD 0xE126 +0xADAE 0xE127 +0xADAF 0xE128 +0xADB0 0xE129 +0xADB1 0xE12A +0xADB2 0xE12B +0xADB3 0xE12C +0xADB4 0xE12D +0xADB5 0xE12E +0xADB6 0xE12F +0xADB7 0xE130 +0xADB8 0xE131 +0xADB9 0xE132 +0xADBA 0xE133 +0xADBB 0xE134 +0xADBC 0xE135 +0xADBD 0xE136 +0xADBE 0xE137 +0xADBF 0xE138 +0xADC0 0xE139 +0xADC1 0xE13A +0xADC2 0xE13B +0xADC3 0xE13C +0xADC4 0xE13D +0xADC5 0xE13E +0xADC6 0xE13F +0xADC7 0xE140 +0xADC8 0xE141 +0xADC9 0xE142 +0xADCA 0xE143 +0xADCB 0xE144 +0xADCC 0xE145 +0xADCD 0xE146 +0xADCE 0xE147 +0xADCF 0xE148 +0xADD0 0xE149 +0xADD1 0xE14A +0xADD2 0xE14B +0xADD3 0xE14C +0xADD4 0xE14D +0xADD5 0xE14E +0xADD6 0xE14F +0xADD7 0xE150 +0xADD8 0xE151 +0xADD9 0xE152 +0xADDA 0xE153 +0xADDB 0xE154 +0xADDC 0xE155 +0xADDD 0xE156 +0xADDE 0xE157 +0xADDF 0xE158 +0xADE0 0xE159 +0xADE1 0xE15A +0xADE2 0xE15B +0xADE3 0xE15C +0xADE4 0xE15D +0xADE5 0xE15E +0xADE6 0xE15F +0xADE7 0xE160 +0xADE8 0xE161 +0xADE9 0xE162 +0xADEA 0xE163 +0xADEB 0xE164 +0xADEC 0xE165 +0xADED 0xE166 +0xADEE 0xE167 +0xADEF 0xE168 +0xADF0 0xE169 +0xADF1 0xE16A +0xADF2 0xE16B +0xADF3 0xE16C +0xADF4 0xE16D +0xADF5 0xE16E +0xADF6 0xE16F +0xADF7 0xE170 +0xADF8 0xE171 +0xADF9 0xE172 +0xADFA 0xE173 +0xADFB 0xE174 +0xADFC 0xE175 +0xADFD 0xE176 +0xADFE 0xE177 +0xAE40 0x74F3 +0xAE41 0x74F5 +0xAE42 0x74F8 +0xAE43 0x74F9 +0xAE44 0x74FA +0xAE45 0x74FB +0xAE46 0x74FC +0xAE47 0x74FD +0xAE48 0x74FE +0xAE49 0x7500 +0xAE4A 0x7501 +0xAE4B 0x7502 +0xAE4C 0x7503 +0xAE4D 0x7505 +0xAE4E 0x7506 +0xAE4F 0x7507 +0xAE50 0x7508 +0xAE51 0x7509 +0xAE52 0x750A +0xAE53 0x750B +0xAE54 0x750C +0xAE55 0x750E +0xAE56 0x7510 +0xAE57 0x7512 +0xAE58 0x7514 +0xAE59 0x7515 +0xAE5A 0x7516 +0xAE5B 0x7517 +0xAE5C 0x751B +0xAE5D 0x751D +0xAE5E 0x751E +0xAE5F 0x7520 +0xAE60 0x7521 +0xAE61 0x7522 +0xAE62 0x7523 +0xAE63 0x7524 +0xAE64 0x7526 +0xAE65 0x7527 +0xAE66 0x752A +0xAE67 0x752E +0xAE68 0x7534 +0xAE69 0x7536 +0xAE6A 0x7539 +0xAE6B 0x753C +0xAE6C 0x753D +0xAE6D 0x753F +0xAE6E 0x7541 +0xAE6F 0x7542 +0xAE70 0x7543 +0xAE71 0x7544 +0xAE72 0x7546 +0xAE73 0x7547 +0xAE74 0x7549 +0xAE75 0x754A +0xAE76 0x754D +0xAE77 0x7550 +0xAE78 0x7551 +0xAE79 0x7552 +0xAE7A 0x7553 +0xAE7B 0x7555 +0xAE7C 0x7556 +0xAE7D 0x7557 +0xAE7E 0x7558 +0xAE80 0x755D +0xAE81 0x755E +0xAE82 0x755F +0xAE83 0x7560 +0xAE84 0x7561 +0xAE85 0x7562 +0xAE86 0x7563 +0xAE87 0x7564 +0xAE88 0x7567 +0xAE89 0x7568 +0xAE8A 0x7569 +0xAE8B 0x756B +0xAE8C 0x756C +0xAE8D 0x756D +0xAE8E 0x756E +0xAE8F 0x756F +0xAE90 0x7570 +0xAE91 0x7571 +0xAE92 0x7573 +0xAE93 0x7575 +0xAE94 0x7576 +0xAE95 0x7577 +0xAE96 0x757A +0xAE97 0x757B +0xAE98 0x757C +0xAE99 0x757D +0xAE9A 0x757E +0xAE9B 0x7580 +0xAE9C 0x7581 +0xAE9D 0x7582 +0xAE9E 0x7584 +0xAE9F 0x7585 +0xAEA0 0x7587 +0xAEA1 0xE178 +0xAEA2 0xE179 +0xAEA3 0xE17A +0xAEA4 0xE17B +0xAEA5 0xE17C +0xAEA6 0xE17D +0xAEA7 0xE17E +0xAEA8 0xE17F +0xAEA9 0xE180 +0xAEAA 0xE181 +0xAEAB 0xE182 +0xAEAC 0xE183 +0xAEAD 0xE184 +0xAEAE 0xE185 +0xAEAF 0xE186 +0xAEB0 0xE187 +0xAEB1 0xE188 +0xAEB2 0xE189 +0xAEB3 0xE18A +0xAEB4 0xE18B +0xAEB5 0xE18C +0xAEB6 0xE18D +0xAEB7 0xE18E +0xAEB8 0xE18F +0xAEB9 0xE190 +0xAEBA 0xE191 +0xAEBB 0xE192 +0xAEBC 0xE193 +0xAEBD 0xE194 +0xAEBE 0xE195 +0xAEBF 0xE196 +0xAEC0 0xE197 +0xAEC1 0xE198 +0xAEC2 0xE199 +0xAEC3 0xE19A +0xAEC4 0xE19B +0xAEC5 0xE19C +0xAEC6 0xE19D +0xAEC7 0xE19E +0xAEC8 0xE19F +0xAEC9 0xE1A0 +0xAECA 0xE1A1 +0xAECB 0xE1A2 +0xAECC 0xE1A3 +0xAECD 0xE1A4 +0xAECE 0xE1A5 +0xAECF 0xE1A6 +0xAED0 0xE1A7 +0xAED1 0xE1A8 +0xAED2 0xE1A9 +0xAED3 0xE1AA +0xAED4 0xE1AB +0xAED5 0xE1AC +0xAED6 0xE1AD +0xAED7 0xE1AE +0xAED8 0xE1AF +0xAED9 0xE1B0 +0xAEDA 0xE1B1 +0xAEDB 0xE1B2 +0xAEDC 0xE1B3 +0xAEDD 0xE1B4 +0xAEDE 0xE1B5 +0xAEDF 0xE1B6 +0xAEE0 0xE1B7 +0xAEE1 0xE1B8 +0xAEE2 0xE1B9 +0xAEE3 0xE1BA +0xAEE4 0xE1BB +0xAEE5 0xE1BC +0xAEE6 0xE1BD +0xAEE7 0xE1BE +0xAEE8 0xE1BF +0xAEE9 0xE1C0 +0xAEEA 0xE1C1 +0xAEEB 0xE1C2 +0xAEEC 0xE1C3 +0xAEED 0xE1C4 +0xAEEE 0xE1C5 +0xAEEF 0xE1C6 +0xAEF0 0xE1C7 +0xAEF1 0xE1C8 +0xAEF2 0xE1C9 +0xAEF3 0xE1CA +0xAEF4 0xE1CB +0xAEF5 0xE1CC +0xAEF6 0xE1CD +0xAEF7 0xE1CE +0xAEF8 0xE1CF +0xAEF9 0xE1D0 +0xAEFA 0xE1D1 +0xAEFB 0xE1D2 +0xAEFC 0xE1D3 +0xAEFD 0xE1D4 +0xAEFE 0xE1D5 +0xAF40 0x7588 +0xAF41 0x7589 +0xAF42 0x758A +0xAF43 0x758C +0xAF44 0x758D +0xAF45 0x758E +0xAF46 0x7590 +0xAF47 0x7593 +0xAF48 0x7595 +0xAF49 0x7598 +0xAF4A 0x759B +0xAF4B 0x759C +0xAF4C 0x759E +0xAF4D 0x75A2 +0xAF4E 0x75A6 +0xAF4F 0x75A7 +0xAF50 0x75A8 +0xAF51 0x75A9 +0xAF52 0x75AA +0xAF53 0x75AD +0xAF54 0x75B6 +0xAF55 0x75B7 +0xAF56 0x75BA +0xAF57 0x75BB +0xAF58 0x75BF +0xAF59 0x75C0 +0xAF5A 0x75C1 +0xAF5B 0x75C6 +0xAF5C 0x75CB +0xAF5D 0x75CC +0xAF5E 0x75CE +0xAF5F 0x75CF +0xAF60 0x75D0 +0xAF61 0x75D1 +0xAF62 0x75D3 +0xAF63 0x75D7 +0xAF64 0x75D9 +0xAF65 0x75DA +0xAF66 0x75DC +0xAF67 0x75DD +0xAF68 0x75DF +0xAF69 0x75E0 +0xAF6A 0x75E1 +0xAF6B 0x75E5 +0xAF6C 0x75E9 +0xAF6D 0x75EC +0xAF6E 0x75ED +0xAF6F 0x75EE +0xAF70 0x75EF +0xAF71 0x75F2 +0xAF72 0x75F3 +0xAF73 0x75F5 +0xAF74 0x75F6 +0xAF75 0x75F7 +0xAF76 0x75F8 +0xAF77 0x75FA +0xAF78 0x75FB +0xAF79 0x75FD +0xAF7A 0x75FE +0xAF7B 0x7602 +0xAF7C 0x7604 +0xAF7D 0x7606 +0xAF7E 0x7607 +0xAF80 0x7608 +0xAF81 0x7609 +0xAF82 0x760B +0xAF83 0x760D +0xAF84 0x760E +0xAF85 0x760F +0xAF86 0x7611 +0xAF87 0x7612 +0xAF88 0x7613 +0xAF89 0x7614 +0xAF8A 0x7616 +0xAF8B 0x761A +0xAF8C 0x761C +0xAF8D 0x761D +0xAF8E 0x761E +0xAF8F 0x7621 +0xAF90 0x7623 +0xAF91 0x7627 +0xAF92 0x7628 +0xAF93 0x762C +0xAF94 0x762E +0xAF95 0x762F +0xAF96 0x7631 +0xAF97 0x7632 +0xAF98 0x7636 +0xAF99 0x7637 +0xAF9A 0x7639 +0xAF9B 0x763A +0xAF9C 0x763B +0xAF9D 0x763D +0xAF9E 0x7641 +0xAF9F 0x7642 +0xAFA0 0x7644 +0xAFA1 0xE1D6 +0xAFA2 0xE1D7 +0xAFA3 0xE1D8 +0xAFA4 0xE1D9 +0xAFA5 0xE1DA +0xAFA6 0xE1DB +0xAFA7 0xE1DC +0xAFA8 0xE1DD +0xAFA9 0xE1DE +0xAFAA 0xE1DF +0xAFAB 0xE1E0 +0xAFAC 0xE1E1 +0xAFAD 0xE1E2 +0xAFAE 0xE1E3 +0xAFAF 0xE1E4 +0xAFB0 0xE1E5 +0xAFB1 0xE1E6 +0xAFB2 0xE1E7 +0xAFB3 0xE1E8 +0xAFB4 0xE1E9 +0xAFB5 0xE1EA +0xAFB6 0xE1EB +0xAFB7 0xE1EC +0xAFB8 0xE1ED +0xAFB9 0xE1EE +0xAFBA 0xE1EF +0xAFBB 0xE1F0 +0xAFBC 0xE1F1 +0xAFBD 0xE1F2 +0xAFBE 0xE1F3 +0xAFBF 0xE1F4 +0xAFC0 0xE1F5 +0xAFC1 0xE1F6 +0xAFC2 0xE1F7 +0xAFC3 0xE1F8 +0xAFC4 0xE1F9 +0xAFC5 0xE1FA +0xAFC6 0xE1FB +0xAFC7 0xE1FC +0xAFC8 0xE1FD +0xAFC9 0xE1FE +0xAFCA 0xE1FF +0xAFCB 0xE200 +0xAFCC 0xE201 +0xAFCD 0xE202 +0xAFCE 0xE203 +0xAFCF 0xE204 +0xAFD0 0xE205 +0xAFD1 0xE206 +0xAFD2 0xE207 +0xAFD3 0xE208 +0xAFD4 0xE209 +0xAFD5 0xE20A +0xAFD6 0xE20B +0xAFD7 0xE20C +0xAFD8 0xE20D +0xAFD9 0xE20E +0xAFDA 0xE20F +0xAFDB 0xE210 +0xAFDC 0xE211 +0xAFDD 0xE212 +0xAFDE 0xE213 +0xAFDF 0xE214 +0xAFE0 0xE215 +0xAFE1 0xE216 +0xAFE2 0xE217 +0xAFE3 0xE218 +0xAFE4 0xE219 +0xAFE5 0xE21A +0xAFE6 0xE21B +0xAFE7 0xE21C +0xAFE8 0xE21D +0xAFE9 0xE21E +0xAFEA 0xE21F +0xAFEB 0xE220 +0xAFEC 0xE221 +0xAFED 0xE222 +0xAFEE 0xE223 +0xAFEF 0xE224 +0xAFF0 0xE225 +0xAFF1 0xE226 +0xAFF2 0xE227 +0xAFF3 0xE228 +0xAFF4 0xE229 +0xAFF5 0xE22A +0xAFF6 0xE22B +0xAFF7 0xE22C +0xAFF8 0xE22D +0xAFF9 0xE22E +0xAFFA 0xE22F +0xAFFB 0xE230 +0xAFFC 0xE231 +0xAFFD 0xE232 +0xAFFE 0xE233 +0xB040 0x7645 +0xB041 0x7646 +0xB042 0x7647 +0xB043 0x7648 +0xB044 0x7649 +0xB045 0x764A +0xB046 0x764B +0xB047 0x764E +0xB048 0x764F +0xB049 0x7650 +0xB04A 0x7651 +0xB04B 0x7652 +0xB04C 0x7653 +0xB04D 0x7655 +0xB04E 0x7657 +0xB04F 0x7658 +0xB050 0x7659 +0xB051 0x765A +0xB052 0x765B +0xB053 0x765D +0xB054 0x765F +0xB055 0x7660 +0xB056 0x7661 +0xB057 0x7662 +0xB058 0x7664 +0xB059 0x7665 +0xB05A 0x7666 +0xB05B 0x7667 +0xB05C 0x7668 +0xB05D 0x7669 +0xB05E 0x766A +0xB05F 0x766C +0xB060 0x766D +0xB061 0x766E +0xB062 0x7670 +0xB063 0x7671 +0xB064 0x7672 +0xB065 0x7673 +0xB066 0x7674 +0xB067 0x7675 +0xB068 0x7676 +0xB069 0x7677 +0xB06A 0x7679 +0xB06B 0x767A +0xB06C 0x767C +0xB06D 0x767F +0xB06E 0x7680 +0xB06F 0x7681 +0xB070 0x7683 +0xB071 0x7685 +0xB072 0x7689 +0xB073 0x768A +0xB074 0x768C +0xB075 0x768D +0xB076 0x768F +0xB077 0x7690 +0xB078 0x7692 +0xB079 0x7694 +0xB07A 0x7695 +0xB07B 0x7697 +0xB07C 0x7698 +0xB07D 0x769A +0xB07E 0x769B +0xB080 0x769C +0xB081 0x769D +0xB082 0x769E +0xB083 0x769F +0xB084 0x76A0 +0xB085 0x76A1 +0xB086 0x76A2 +0xB087 0x76A3 +0xB088 0x76A5 +0xB089 0x76A6 +0xB08A 0x76A7 +0xB08B 0x76A8 +0xB08C 0x76A9 +0xB08D 0x76AA +0xB08E 0x76AB +0xB08F 0x76AC +0xB090 0x76AD +0xB091 0x76AF +0xB092 0x76B0 +0xB093 0x76B3 +0xB094 0x76B5 +0xB095 0x76B6 +0xB096 0x76B7 +0xB097 0x76B8 +0xB098 0x76B9 +0xB099 0x76BA +0xB09A 0x76BB +0xB09B 0x76BC +0xB09C 0x76BD +0xB09D 0x76BE +0xB09E 0x76C0 +0xB09F 0x76C1 +0xB0A0 0x76C3 +0xB0A1 0x554A +0xB0A2 0x963F +0xB0A3 0x57C3 +0xB0A4 0x6328 +0xB0A5 0x54CE +0xB0A6 0x5509 +0xB0A7 0x54C0 +0xB0A8 0x7691 +0xB0A9 0x764C +0xB0AA 0x853C +0xB0AB 0x77EE +0xB0AC 0x827E +0xB0AD 0x788D +0xB0AE 0x7231 +0xB0AF 0x9698 +0xB0B0 0x978D +0xB0B1 0x6C28 +0xB0B2 0x5B89 +0xB0B3 0x4FFA +0xB0B4 0x6309 +0xB0B5 0x6697 +0xB0B6 0x5CB8 +0xB0B7 0x80FA +0xB0B8 0x6848 +0xB0B9 0x80AE +0xB0BA 0x6602 +0xB0BB 0x76CE +0xB0BC 0x51F9 +0xB0BD 0x6556 +0xB0BE 0x71AC +0xB0BF 0x7FF1 +0xB0C0 0x8884 +0xB0C1 0x50B2 +0xB0C2 0x5965 +0xB0C3 0x61CA +0xB0C4 0x6FB3 +0xB0C5 0x82AD +0xB0C6 0x634C +0xB0C7 0x6252 +0xB0C8 0x53ED +0xB0C9 0x5427 +0xB0CA 0x7B06 +0xB0CB 0x516B +0xB0CC 0x75A4 +0xB0CD 0x5DF4 +0xB0CE 0x62D4 +0xB0CF 0x8DCB +0xB0D0 0x9776 +0xB0D1 0x628A +0xB0D2 0x8019 +0xB0D3 0x575D +0xB0D4 0x9738 +0xB0D5 0x7F62 +0xB0D6 0x7238 +0xB0D7 0x767D +0xB0D8 0x67CF +0xB0D9 0x767E +0xB0DA 0x6446 +0xB0DB 0x4F70 +0xB0DC 0x8D25 +0xB0DD 0x62DC +0xB0DE 0x7A17 +0xB0DF 0x6591 +0xB0E0 0x73ED +0xB0E1 0x642C +0xB0E2 0x6273 +0xB0E3 0x822C +0xB0E4 0x9881 +0xB0E5 0x677F +0xB0E6 0x7248 +0xB0E7 0x626E +0xB0E8 0x62CC +0xB0E9 0x4F34 +0xB0EA 0x74E3 +0xB0EB 0x534A +0xB0EC 0x529E +0xB0ED 0x7ECA +0xB0EE 0x90A6 +0xB0EF 0x5E2E +0xB0F0 0x6886 +0xB0F1 0x699C +0xB0F2 0x8180 +0xB0F3 0x7ED1 +0xB0F4 0x68D2 +0xB0F5 0x78C5 +0xB0F6 0x868C +0xB0F7 0x9551 +0xB0F8 0x508D +0xB0F9 0x8C24 +0xB0FA 0x82DE +0xB0FB 0x80DE +0xB0FC 0x5305 +0xB0FD 0x8912 +0xB0FE 0x5265 +0xB140 0x76C4 +0xB141 0x76C7 +0xB142 0x76C9 +0xB143 0x76CB +0xB144 0x76CC +0xB145 0x76D3 +0xB146 0x76D5 +0xB147 0x76D9 +0xB148 0x76DA +0xB149 0x76DC +0xB14A 0x76DD +0xB14B 0x76DE +0xB14C 0x76E0 +0xB14D 0x76E1 +0xB14E 0x76E2 +0xB14F 0x76E3 +0xB150 0x76E4 +0xB151 0x76E6 +0xB152 0x76E7 +0xB153 0x76E8 +0xB154 0x76E9 +0xB155 0x76EA +0xB156 0x76EB +0xB157 0x76EC +0xB158 0x76ED +0xB159 0x76F0 +0xB15A 0x76F3 +0xB15B 0x76F5 +0xB15C 0x76F6 +0xB15D 0x76F7 +0xB15E 0x76FA +0xB15F 0x76FB +0xB160 0x76FD +0xB161 0x76FF +0xB162 0x7700 +0xB163 0x7702 +0xB164 0x7703 +0xB165 0x7705 +0xB166 0x7706 +0xB167 0x770A +0xB168 0x770C +0xB169 0x770E +0xB16A 0x770F +0xB16B 0x7710 +0xB16C 0x7711 +0xB16D 0x7712 +0xB16E 0x7713 +0xB16F 0x7714 +0xB170 0x7715 +0xB171 0x7716 +0xB172 0x7717 +0xB173 0x7718 +0xB174 0x771B +0xB175 0x771C +0xB176 0x771D +0xB177 0x771E +0xB178 0x7721 +0xB179 0x7723 +0xB17A 0x7724 +0xB17B 0x7725 +0xB17C 0x7727 +0xB17D 0x772A +0xB17E 0x772B +0xB180 0x772C +0xB181 0x772E +0xB182 0x7730 +0xB183 0x7731 +0xB184 0x7732 +0xB185 0x7733 +0xB186 0x7734 +0xB187 0x7739 +0xB188 0x773B +0xB189 0x773D +0xB18A 0x773E +0xB18B 0x773F +0xB18C 0x7742 +0xB18D 0x7744 +0xB18E 0x7745 +0xB18F 0x7746 +0xB190 0x7748 +0xB191 0x7749 +0xB192 0x774A +0xB193 0x774B +0xB194 0x774C +0xB195 0x774D +0xB196 0x774E +0xB197 0x774F +0xB198 0x7752 +0xB199 0x7753 +0xB19A 0x7754 +0xB19B 0x7755 +0xB19C 0x7756 +0xB19D 0x7757 +0xB19E 0x7758 +0xB19F 0x7759 +0xB1A0 0x775C +0xB1A1 0x8584 +0xB1A2 0x96F9 +0xB1A3 0x4FDD +0xB1A4 0x5821 +0xB1A5 0x9971 +0xB1A6 0x5B9D +0xB1A7 0x62B1 +0xB1A8 0x62A5 +0xB1A9 0x66B4 +0xB1AA 0x8C79 +0xB1AB 0x9C8D +0xB1AC 0x7206 +0xB1AD 0x676F +0xB1AE 0x7891 +0xB1AF 0x60B2 +0xB1B0 0x5351 +0xB1B1 0x5317 +0xB1B2 0x8F88 +0xB1B3 0x80CC +0xB1B4 0x8D1D +0xB1B5 0x94A1 +0xB1B6 0x500D +0xB1B7 0x72C8 +0xB1B8 0x5907 +0xB1B9 0x60EB +0xB1BA 0x7119 +0xB1BB 0x88AB +0xB1BC 0x5954 +0xB1BD 0x82EF +0xB1BE 0x672C +0xB1BF 0x7B28 +0xB1C0 0x5D29 +0xB1C1 0x7EF7 +0xB1C2 0x752D +0xB1C3 0x6CF5 +0xB1C4 0x8E66 +0xB1C5 0x8FF8 +0xB1C6 0x903C +0xB1C7 0x9F3B +0xB1C8 0x6BD4 +0xB1C9 0x9119 +0xB1CA 0x7B14 +0xB1CB 0x5F7C +0xB1CC 0x78A7 +0xB1CD 0x84D6 +0xB1CE 0x853D +0xB1CF 0x6BD5 +0xB1D0 0x6BD9 +0xB1D1 0x6BD6 +0xB1D2 0x5E01 +0xB1D3 0x5E87 +0xB1D4 0x75F9 +0xB1D5 0x95ED +0xB1D6 0x655D +0xB1D7 0x5F0A +0xB1D8 0x5FC5 +0xB1D9 0x8F9F +0xB1DA 0x58C1 +0xB1DB 0x81C2 +0xB1DC 0x907F +0xB1DD 0x965B +0xB1DE 0x97AD +0xB1DF 0x8FB9 +0xB1E0 0x7F16 +0xB1E1 0x8D2C +0xB1E2 0x6241 +0xB1E3 0x4FBF +0xB1E4 0x53D8 +0xB1E5 0x535E +0xB1E6 0x8FA8 +0xB1E7 0x8FA9 +0xB1E8 0x8FAB +0xB1E9 0x904D +0xB1EA 0x6807 +0xB1EB 0x5F6A +0xB1EC 0x8198 +0xB1ED 0x8868 +0xB1EE 0x9CD6 +0xB1EF 0x618B +0xB1F0 0x522B +0xB1F1 0x762A +0xB1F2 0x5F6C +0xB1F3 0x658C +0xB1F4 0x6FD2 +0xB1F5 0x6EE8 +0xB1F6 0x5BBE +0xB1F7 0x6448 +0xB1F8 0x5175 +0xB1F9 0x51B0 +0xB1FA 0x67C4 +0xB1FB 0x4E19 +0xB1FC 0x79C9 +0xB1FD 0x997C +0xB1FE 0x70B3 +0xB240 0x775D +0xB241 0x775E +0xB242 0x775F +0xB243 0x7760 +0xB244 0x7764 +0xB245 0x7767 +0xB246 0x7769 +0xB247 0x776A +0xB248 0x776D +0xB249 0x776E +0xB24A 0x776F +0xB24B 0x7770 +0xB24C 0x7771 +0xB24D 0x7772 +0xB24E 0x7773 +0xB24F 0x7774 +0xB250 0x7775 +0xB251 0x7776 +0xB252 0x7777 +0xB253 0x7778 +0xB254 0x777A +0xB255 0x777B +0xB256 0x777C +0xB257 0x7781 +0xB258 0x7782 +0xB259 0x7783 +0xB25A 0x7786 +0xB25B 0x7787 +0xB25C 0x7788 +0xB25D 0x7789 +0xB25E 0x778A +0xB25F 0x778B +0xB260 0x778F +0xB261 0x7790 +0xB262 0x7793 +0xB263 0x7794 +0xB264 0x7795 +0xB265 0x7796 +0xB266 0x7797 +0xB267 0x7798 +0xB268 0x7799 +0xB269 0x779A +0xB26A 0x779B +0xB26B 0x779C +0xB26C 0x779D +0xB26D 0x779E +0xB26E 0x77A1 +0xB26F 0x77A3 +0xB270 0x77A4 +0xB271 0x77A6 +0xB272 0x77A8 +0xB273 0x77AB +0xB274 0x77AD +0xB275 0x77AE +0xB276 0x77AF +0xB277 0x77B1 +0xB278 0x77B2 +0xB279 0x77B4 +0xB27A 0x77B6 +0xB27B 0x77B7 +0xB27C 0x77B8 +0xB27D 0x77B9 +0xB27E 0x77BA +0xB280 0x77BC +0xB281 0x77BE +0xB282 0x77C0 +0xB283 0x77C1 +0xB284 0x77C2 +0xB285 0x77C3 +0xB286 0x77C4 +0xB287 0x77C5 +0xB288 0x77C6 +0xB289 0x77C7 +0xB28A 0x77C8 +0xB28B 0x77C9 +0xB28C 0x77CA +0xB28D 0x77CB +0xB28E 0x77CC +0xB28F 0x77CE +0xB290 0x77CF +0xB291 0x77D0 +0xB292 0x77D1 +0xB293 0x77D2 +0xB294 0x77D3 +0xB295 0x77D4 +0xB296 0x77D5 +0xB297 0x77D6 +0xB298 0x77D8 +0xB299 0x77D9 +0xB29A 0x77DA +0xB29B 0x77DD +0xB29C 0x77DE +0xB29D 0x77DF +0xB29E 0x77E0 +0xB29F 0x77E1 +0xB2A0 0x77E4 +0xB2A1 0x75C5 +0xB2A2 0x5E76 +0xB2A3 0x73BB +0xB2A4 0x83E0 +0xB2A5 0x64AD +0xB2A6 0x62E8 +0xB2A7 0x94B5 +0xB2A8 0x6CE2 +0xB2A9 0x535A +0xB2AA 0x52C3 +0xB2AB 0x640F +0xB2AC 0x94C2 +0xB2AD 0x7B94 +0xB2AE 0x4F2F +0xB2AF 0x5E1B +0xB2B0 0x8236 +0xB2B1 0x8116 +0xB2B2 0x818A +0xB2B3 0x6E24 +0xB2B4 0x6CCA +0xB2B5 0x9A73 +0xB2B6 0x6355 +0xB2B7 0x535C +0xB2B8 0x54FA +0xB2B9 0x8865 +0xB2BA 0x57E0 +0xB2BB 0x4E0D +0xB2BC 0x5E03 +0xB2BD 0x6B65 +0xB2BE 0x7C3F +0xB2BF 0x90E8 +0xB2C0 0x6016 +0xB2C1 0x64E6 +0xB2C2 0x731C +0xB2C3 0x88C1 +0xB2C4 0x6750 +0xB2C5 0x624D +0xB2C6 0x8D22 +0xB2C7 0x776C +0xB2C8 0x8E29 +0xB2C9 0x91C7 +0xB2CA 0x5F69 +0xB2CB 0x83DC +0xB2CC 0x8521 +0xB2CD 0x9910 +0xB2CE 0x53C2 +0xB2CF 0x8695 +0xB2D0 0x6B8B +0xB2D1 0x60ED +0xB2D2 0x60E8 +0xB2D3 0x707F +0xB2D4 0x82CD +0xB2D5 0x8231 +0xB2D6 0x4ED3 +0xB2D7 0x6CA7 +0xB2D8 0x85CF +0xB2D9 0x64CD +0xB2DA 0x7CD9 +0xB2DB 0x69FD +0xB2DC 0x66F9 +0xB2DD 0x8349 +0xB2DE 0x5395 +0xB2DF 0x7B56 +0xB2E0 0x4FA7 +0xB2E1 0x518C +0xB2E2 0x6D4B +0xB2E3 0x5C42 +0xB2E4 0x8E6D +0xB2E5 0x63D2 +0xB2E6 0x53C9 +0xB2E7 0x832C +0xB2E8 0x8336 +0xB2E9 0x67E5 +0xB2EA 0x78B4 +0xB2EB 0x643D +0xB2EC 0x5BDF +0xB2ED 0x5C94 +0xB2EE 0x5DEE +0xB2EF 0x8BE7 +0xB2F0 0x62C6 +0xB2F1 0x67F4 +0xB2F2 0x8C7A +0xB2F3 0x6400 +0xB2F4 0x63BA +0xB2F5 0x8749 +0xB2F6 0x998B +0xB2F7 0x8C17 +0xB2F8 0x7F20 +0xB2F9 0x94F2 +0xB2FA 0x4EA7 +0xB2FB 0x9610 +0xB2FC 0x98A4 +0xB2FD 0x660C +0xB2FE 0x7316 +0xB340 0x77E6 +0xB341 0x77E8 +0xB342 0x77EA +0xB343 0x77EF +0xB344 0x77F0 +0xB345 0x77F1 +0xB346 0x77F2 +0xB347 0x77F4 +0xB348 0x77F5 +0xB349 0x77F7 +0xB34A 0x77F9 +0xB34B 0x77FA +0xB34C 0x77FB +0xB34D 0x77FC +0xB34E 0x7803 +0xB34F 0x7804 +0xB350 0x7805 +0xB351 0x7806 +0xB352 0x7807 +0xB353 0x7808 +0xB354 0x780A +0xB355 0x780B +0xB356 0x780E +0xB357 0x780F +0xB358 0x7810 +0xB359 0x7813 +0xB35A 0x7815 +0xB35B 0x7819 +0xB35C 0x781B +0xB35D 0x781E +0xB35E 0x7820 +0xB35F 0x7821 +0xB360 0x7822 +0xB361 0x7824 +0xB362 0x7828 +0xB363 0x782A +0xB364 0x782B +0xB365 0x782E +0xB366 0x782F +0xB367 0x7831 +0xB368 0x7832 +0xB369 0x7833 +0xB36A 0x7835 +0xB36B 0x7836 +0xB36C 0x783D +0xB36D 0x783F +0xB36E 0x7841 +0xB36F 0x7842 +0xB370 0x7843 +0xB371 0x7844 +0xB372 0x7846 +0xB373 0x7848 +0xB374 0x7849 +0xB375 0x784A +0xB376 0x784B +0xB377 0x784D +0xB378 0x784F +0xB379 0x7851 +0xB37A 0x7853 +0xB37B 0x7854 +0xB37C 0x7858 +0xB37D 0x7859 +0xB37E 0x785A +0xB380 0x785B +0xB381 0x785C +0xB382 0x785E +0xB383 0x785F +0xB384 0x7860 +0xB385 0x7861 +0xB386 0x7862 +0xB387 0x7863 +0xB388 0x7864 +0xB389 0x7865 +0xB38A 0x7866 +0xB38B 0x7867 +0xB38C 0x7868 +0xB38D 0x7869 +0xB38E 0x786F +0xB38F 0x7870 +0xB390 0x7871 +0xB391 0x7872 +0xB392 0x7873 +0xB393 0x7874 +0xB394 0x7875 +0xB395 0x7876 +0xB396 0x7878 +0xB397 0x7879 +0xB398 0x787A +0xB399 0x787B +0xB39A 0x787D +0xB39B 0x787E +0xB39C 0x787F +0xB39D 0x7880 +0xB39E 0x7881 +0xB39F 0x7882 +0xB3A0 0x7883 +0xB3A1 0x573A +0xB3A2 0x5C1D +0xB3A3 0x5E38 +0xB3A4 0x957F +0xB3A5 0x507F +0xB3A6 0x80A0 +0xB3A7 0x5382 +0xB3A8 0x655E +0xB3A9 0x7545 +0xB3AA 0x5531 +0xB3AB 0x5021 +0xB3AC 0x8D85 +0xB3AD 0x6284 +0xB3AE 0x949E +0xB3AF 0x671D +0xB3B0 0x5632 +0xB3B1 0x6F6E +0xB3B2 0x5DE2 +0xB3B3 0x5435 +0xB3B4 0x7092 +0xB3B5 0x8F66 +0xB3B6 0x626F +0xB3B7 0x64A4 +0xB3B8 0x63A3 +0xB3B9 0x5F7B +0xB3BA 0x6F88 +0xB3BB 0x90F4 +0xB3BC 0x81E3 +0xB3BD 0x8FB0 +0xB3BE 0x5C18 +0xB3BF 0x6668 +0xB3C0 0x5FF1 +0xB3C1 0x6C89 +0xB3C2 0x9648 +0xB3C3 0x8D81 +0xB3C4 0x886C +0xB3C5 0x6491 +0xB3C6 0x79F0 +0xB3C7 0x57CE +0xB3C8 0x6A59 +0xB3C9 0x6210 +0xB3CA 0x5448 +0xB3CB 0x4E58 +0xB3CC 0x7A0B +0xB3CD 0x60E9 +0xB3CE 0x6F84 +0xB3CF 0x8BDA +0xB3D0 0x627F +0xB3D1 0x901E +0xB3D2 0x9A8B +0xB3D3 0x79E4 +0xB3D4 0x5403 +0xB3D5 0x75F4 +0xB3D6 0x6301 +0xB3D7 0x5319 +0xB3D8 0x6C60 +0xB3D9 0x8FDF +0xB3DA 0x5F1B +0xB3DB 0x9A70 +0xB3DC 0x803B +0xB3DD 0x9F7F +0xB3DE 0x4F88 +0xB3DF 0x5C3A +0xB3E0 0x8D64 +0xB3E1 0x7FC5 +0xB3E2 0x65A5 +0xB3E3 0x70BD +0xB3E4 0x5145 +0xB3E5 0x51B2 +0xB3E6 0x866B +0xB3E7 0x5D07 +0xB3E8 0x5BA0 +0xB3E9 0x62BD +0xB3EA 0x916C +0xB3EB 0x7574 +0xB3EC 0x8E0C +0xB3ED 0x7A20 +0xB3EE 0x6101 +0xB3EF 0x7B79 +0xB3F0 0x4EC7 +0xB3F1 0x7EF8 +0xB3F2 0x7785 +0xB3F3 0x4E11 +0xB3F4 0x81ED +0xB3F5 0x521D +0xB3F6 0x51FA +0xB3F7 0x6A71 +0xB3F8 0x53A8 +0xB3F9 0x8E87 +0xB3FA 0x9504 +0xB3FB 0x96CF +0xB3FC 0x6EC1 +0xB3FD 0x9664 +0xB3FE 0x695A +0xB440 0x7884 +0xB441 0x7885 +0xB442 0x7886 +0xB443 0x7888 +0xB444 0x788A +0xB445 0x788B +0xB446 0x788F +0xB447 0x7890 +0xB448 0x7892 +0xB449 0x7894 +0xB44A 0x7895 +0xB44B 0x7896 +0xB44C 0x7899 +0xB44D 0x789D +0xB44E 0x789E +0xB44F 0x78A0 +0xB450 0x78A2 +0xB451 0x78A4 +0xB452 0x78A6 +0xB453 0x78A8 +0xB454 0x78A9 +0xB455 0x78AA +0xB456 0x78AB +0xB457 0x78AC +0xB458 0x78AD +0xB459 0x78AE +0xB45A 0x78AF +0xB45B 0x78B5 +0xB45C 0x78B6 +0xB45D 0x78B7 +0xB45E 0x78B8 +0xB45F 0x78BA +0xB460 0x78BB +0xB461 0x78BC +0xB462 0x78BD +0xB463 0x78BF +0xB464 0x78C0 +0xB465 0x78C2 +0xB466 0x78C3 +0xB467 0x78C4 +0xB468 0x78C6 +0xB469 0x78C7 +0xB46A 0x78C8 +0xB46B 0x78CC +0xB46C 0x78CD +0xB46D 0x78CE +0xB46E 0x78CF +0xB46F 0x78D1 +0xB470 0x78D2 +0xB471 0x78D3 +0xB472 0x78D6 +0xB473 0x78D7 +0xB474 0x78D8 +0xB475 0x78DA +0xB476 0x78DB +0xB477 0x78DC +0xB478 0x78DD +0xB479 0x78DE +0xB47A 0x78DF +0xB47B 0x78E0 +0xB47C 0x78E1 +0xB47D 0x78E2 +0xB47E 0x78E3 +0xB480 0x78E4 +0xB481 0x78E5 +0xB482 0x78E6 +0xB483 0x78E7 +0xB484 0x78E9 +0xB485 0x78EA +0xB486 0x78EB +0xB487 0x78ED +0xB488 0x78EE +0xB489 0x78EF +0xB48A 0x78F0 +0xB48B 0x78F1 +0xB48C 0x78F3 +0xB48D 0x78F5 +0xB48E 0x78F6 +0xB48F 0x78F8 +0xB490 0x78F9 +0xB491 0x78FB +0xB492 0x78FC +0xB493 0x78FD +0xB494 0x78FE +0xB495 0x78FF +0xB496 0x7900 +0xB497 0x7902 +0xB498 0x7903 +0xB499 0x7904 +0xB49A 0x7906 +0xB49B 0x7907 +0xB49C 0x7908 +0xB49D 0x7909 +0xB49E 0x790A +0xB49F 0x790B +0xB4A0 0x790C +0xB4A1 0x7840 +0xB4A2 0x50A8 +0xB4A3 0x77D7 +0xB4A4 0x6410 +0xB4A5 0x89E6 +0xB4A6 0x5904 +0xB4A7 0x63E3 +0xB4A8 0x5DDD +0xB4A9 0x7A7F +0xB4AA 0x693D +0xB4AB 0x4F20 +0xB4AC 0x8239 +0xB4AD 0x5598 +0xB4AE 0x4E32 +0xB4AF 0x75AE +0xB4B0 0x7A97 +0xB4B1 0x5E62 +0xB4B2 0x5E8A +0xB4B3 0x95EF +0xB4B4 0x521B +0xB4B5 0x5439 +0xB4B6 0x708A +0xB4B7 0x6376 +0xB4B8 0x9524 +0xB4B9 0x5782 +0xB4BA 0x6625 +0xB4BB 0x693F +0xB4BC 0x9187 +0xB4BD 0x5507 +0xB4BE 0x6DF3 +0xB4BF 0x7EAF +0xB4C0 0x8822 +0xB4C1 0x6233 +0xB4C2 0x7EF0 +0xB4C3 0x75B5 +0xB4C4 0x8328 +0xB4C5 0x78C1 +0xB4C6 0x96CC +0xB4C7 0x8F9E +0xB4C8 0x6148 +0xB4C9 0x74F7 +0xB4CA 0x8BCD +0xB4CB 0x6B64 +0xB4CC 0x523A +0xB4CD 0x8D50 +0xB4CE 0x6B21 +0xB4CF 0x806A +0xB4D0 0x8471 +0xB4D1 0x56F1 +0xB4D2 0x5306 +0xB4D3 0x4ECE +0xB4D4 0x4E1B +0xB4D5 0x51D1 +0xB4D6 0x7C97 +0xB4D7 0x918B +0xB4D8 0x7C07 +0xB4D9 0x4FC3 +0xB4DA 0x8E7F +0xB4DB 0x7BE1 +0xB4DC 0x7A9C +0xB4DD 0x6467 +0xB4DE 0x5D14 +0xB4DF 0x50AC +0xB4E0 0x8106 +0xB4E1 0x7601 +0xB4E2 0x7CB9 +0xB4E3 0x6DEC +0xB4E4 0x7FE0 +0xB4E5 0x6751 +0xB4E6 0x5B58 +0xB4E7 0x5BF8 +0xB4E8 0x78CB +0xB4E9 0x64AE +0xB4EA 0x6413 +0xB4EB 0x63AA +0xB4EC 0x632B +0xB4ED 0x9519 +0xB4EE 0x642D +0xB4EF 0x8FBE +0xB4F0 0x7B54 +0xB4F1 0x7629 +0xB4F2 0x6253 +0xB4F3 0x5927 +0xB4F4 0x5446 +0xB4F5 0x6B79 +0xB4F6 0x50A3 +0xB4F7 0x6234 +0xB4F8 0x5E26 +0xB4F9 0x6B86 +0xB4FA 0x4EE3 +0xB4FB 0x8D37 +0xB4FC 0x888B +0xB4FD 0x5F85 +0xB4FE 0x902E +0xB540 0x790D +0xB541 0x790E +0xB542 0x790F +0xB543 0x7910 +0xB544 0x7911 +0xB545 0x7912 +0xB546 0x7914 +0xB547 0x7915 +0xB548 0x7916 +0xB549 0x7917 +0xB54A 0x7918 +0xB54B 0x7919 +0xB54C 0x791A +0xB54D 0x791B +0xB54E 0x791C +0xB54F 0x791D +0xB550 0x791F +0xB551 0x7920 +0xB552 0x7921 +0xB553 0x7922 +0xB554 0x7923 +0xB555 0x7925 +0xB556 0x7926 +0xB557 0x7927 +0xB558 0x7928 +0xB559 0x7929 +0xB55A 0x792A +0xB55B 0x792B +0xB55C 0x792C +0xB55D 0x792D +0xB55E 0x792E +0xB55F 0x792F +0xB560 0x7930 +0xB561 0x7931 +0xB562 0x7932 +0xB563 0x7933 +0xB564 0x7935 +0xB565 0x7936 +0xB566 0x7937 +0xB567 0x7938 +0xB568 0x7939 +0xB569 0x793D +0xB56A 0x793F +0xB56B 0x7942 +0xB56C 0x7943 +0xB56D 0x7944 +0xB56E 0x7945 +0xB56F 0x7947 +0xB570 0x794A +0xB571 0x794B +0xB572 0x794C +0xB573 0x794D +0xB574 0x794E +0xB575 0x794F +0xB576 0x7950 +0xB577 0x7951 +0xB578 0x7952 +0xB579 0x7954 +0xB57A 0x7955 +0xB57B 0x7958 +0xB57C 0x7959 +0xB57D 0x7961 +0xB57E 0x7963 +0xB580 0x7964 +0xB581 0x7966 +0xB582 0x7969 +0xB583 0x796A +0xB584 0x796B +0xB585 0x796C +0xB586 0x796E +0xB587 0x7970 +0xB588 0x7971 +0xB589 0x7972 +0xB58A 0x7973 +0xB58B 0x7974 +0xB58C 0x7975 +0xB58D 0x7976 +0xB58E 0x7979 +0xB58F 0x797B +0xB590 0x797C +0xB591 0x797D +0xB592 0x797E +0xB593 0x797F +0xB594 0x7982 +0xB595 0x7983 +0xB596 0x7986 +0xB597 0x7987 +0xB598 0x7988 +0xB599 0x7989 +0xB59A 0x798B +0xB59B 0x798C +0xB59C 0x798D +0xB59D 0x798E +0xB59E 0x7990 +0xB59F 0x7991 +0xB5A0 0x7992 +0xB5A1 0x6020 +0xB5A2 0x803D +0xB5A3 0x62C5 +0xB5A4 0x4E39 +0xB5A5 0x5355 +0xB5A6 0x90F8 +0xB5A7 0x63B8 +0xB5A8 0x80C6 +0xB5A9 0x65E6 +0xB5AA 0x6C2E +0xB5AB 0x4F46 +0xB5AC 0x60EE +0xB5AD 0x6DE1 +0xB5AE 0x8BDE +0xB5AF 0x5F39 +0xB5B0 0x86CB +0xB5B1 0x5F53 +0xB5B2 0x6321 +0xB5B3 0x515A +0xB5B4 0x8361 +0xB5B5 0x6863 +0xB5B6 0x5200 +0xB5B7 0x6363 +0xB5B8 0x8E48 +0xB5B9 0x5012 +0xB5BA 0x5C9B +0xB5BB 0x7977 +0xB5BC 0x5BFC +0xB5BD 0x5230 +0xB5BE 0x7A3B +0xB5BF 0x60BC +0xB5C0 0x9053 +0xB5C1 0x76D7 +0xB5C2 0x5FB7 +0xB5C3 0x5F97 +0xB5C4 0x7684 +0xB5C5 0x8E6C +0xB5C6 0x706F +0xB5C7 0x767B +0xB5C8 0x7B49 +0xB5C9 0x77AA +0xB5CA 0x51F3 +0xB5CB 0x9093 +0xB5CC 0x5824 +0xB5CD 0x4F4E +0xB5CE 0x6EF4 +0xB5CF 0x8FEA +0xB5D0 0x654C +0xB5D1 0x7B1B +0xB5D2 0x72C4 +0xB5D3 0x6DA4 +0xB5D4 0x7FDF +0xB5D5 0x5AE1 +0xB5D6 0x62B5 +0xB5D7 0x5E95 +0xB5D8 0x5730 +0xB5D9 0x8482 +0xB5DA 0x7B2C +0xB5DB 0x5E1D +0xB5DC 0x5F1F +0xB5DD 0x9012 +0xB5DE 0x7F14 +0xB5DF 0x98A0 +0xB5E0 0x6382 +0xB5E1 0x6EC7 +0xB5E2 0x7898 +0xB5E3 0x70B9 +0xB5E4 0x5178 +0xB5E5 0x975B +0xB5E6 0x57AB +0xB5E7 0x7535 +0xB5E8 0x4F43 +0xB5E9 0x7538 +0xB5EA 0x5E97 +0xB5EB 0x60E6 +0xB5EC 0x5960 +0xB5ED 0x6DC0 +0xB5EE 0x6BBF +0xB5EF 0x7889 +0xB5F0 0x53FC +0xB5F1 0x96D5 +0xB5F2 0x51CB +0xB5F3 0x5201 +0xB5F4 0x6389 +0xB5F5 0x540A +0xB5F6 0x9493 +0xB5F7 0x8C03 +0xB5F8 0x8DCC +0xB5F9 0x7239 +0xB5FA 0x789F +0xB5FB 0x8776 +0xB5FC 0x8FED +0xB5FD 0x8C0D +0xB5FE 0x53E0 +0xB640 0x7993 +0xB641 0x7994 +0xB642 0x7995 +0xB643 0x7996 +0xB644 0x7997 +0xB645 0x7998 +0xB646 0x7999 +0xB647 0x799B +0xB648 0x799C +0xB649 0x799D +0xB64A 0x799E +0xB64B 0x799F +0xB64C 0x79A0 +0xB64D 0x79A1 +0xB64E 0x79A2 +0xB64F 0x79A3 +0xB650 0x79A4 +0xB651 0x79A5 +0xB652 0x79A6 +0xB653 0x79A8 +0xB654 0x79A9 +0xB655 0x79AA +0xB656 0x79AB +0xB657 0x79AC +0xB658 0x79AD +0xB659 0x79AE +0xB65A 0x79AF +0xB65B 0x79B0 +0xB65C 0x79B1 +0xB65D 0x79B2 +0xB65E 0x79B4 +0xB65F 0x79B5 +0xB660 0x79B6 +0xB661 0x79B7 +0xB662 0x79B8 +0xB663 0x79BC +0xB664 0x79BF +0xB665 0x79C2 +0xB666 0x79C4 +0xB667 0x79C5 +0xB668 0x79C7 +0xB669 0x79C8 +0xB66A 0x79CA +0xB66B 0x79CC +0xB66C 0x79CE +0xB66D 0x79CF +0xB66E 0x79D0 +0xB66F 0x79D3 +0xB670 0x79D4 +0xB671 0x79D6 +0xB672 0x79D7 +0xB673 0x79D9 +0xB674 0x79DA +0xB675 0x79DB +0xB676 0x79DC +0xB677 0x79DD +0xB678 0x79DE +0xB679 0x79E0 +0xB67A 0x79E1 +0xB67B 0x79E2 +0xB67C 0x79E5 +0xB67D 0x79E8 +0xB67E 0x79EA +0xB680 0x79EC +0xB681 0x79EE +0xB682 0x79F1 +0xB683 0x79F2 +0xB684 0x79F3 +0xB685 0x79F4 +0xB686 0x79F5 +0xB687 0x79F6 +0xB688 0x79F7 +0xB689 0x79F9 +0xB68A 0x79FA +0xB68B 0x79FC +0xB68C 0x79FE +0xB68D 0x79FF +0xB68E 0x7A01 +0xB68F 0x7A04 +0xB690 0x7A05 +0xB691 0x7A07 +0xB692 0x7A08 +0xB693 0x7A09 +0xB694 0x7A0A +0xB695 0x7A0C +0xB696 0x7A0F +0xB697 0x7A10 +0xB698 0x7A11 +0xB699 0x7A12 +0xB69A 0x7A13 +0xB69B 0x7A15 +0xB69C 0x7A16 +0xB69D 0x7A18 +0xB69E 0x7A19 +0xB69F 0x7A1B +0xB6A0 0x7A1C +0xB6A1 0x4E01 +0xB6A2 0x76EF +0xB6A3 0x53EE +0xB6A4 0x9489 +0xB6A5 0x9876 +0xB6A6 0x9F0E +0xB6A7 0x952D +0xB6A8 0x5B9A +0xB6A9 0x8BA2 +0xB6AA 0x4E22 +0xB6AB 0x4E1C +0xB6AC 0x51AC +0xB6AD 0x8463 +0xB6AE 0x61C2 +0xB6AF 0x52A8 +0xB6B0 0x680B +0xB6B1 0x4F97 +0xB6B2 0x606B +0xB6B3 0x51BB +0xB6B4 0x6D1E +0xB6B5 0x515C +0xB6B6 0x6296 +0xB6B7 0x6597 +0xB6B8 0x9661 +0xB6B9 0x8C46 +0xB6BA 0x9017 +0xB6BB 0x75D8 +0xB6BC 0x90FD +0xB6BD 0x7763 +0xB6BE 0x6BD2 +0xB6BF 0x728A +0xB6C0 0x72EC +0xB6C1 0x8BFB +0xB6C2 0x5835 +0xB6C3 0x7779 +0xB6C4 0x8D4C +0xB6C5 0x675C +0xB6C6 0x9540 +0xB6C7 0x809A +0xB6C8 0x5EA6 +0xB6C9 0x6E21 +0xB6CA 0x5992 +0xB6CB 0x7AEF +0xB6CC 0x77ED +0xB6CD 0x953B +0xB6CE 0x6BB5 +0xB6CF 0x65AD +0xB6D0 0x7F0E +0xB6D1 0x5806 +0xB6D2 0x5151 +0xB6D3 0x961F +0xB6D4 0x5BF9 +0xB6D5 0x58A9 +0xB6D6 0x5428 +0xB6D7 0x8E72 +0xB6D8 0x6566 +0xB6D9 0x987F +0xB6DA 0x56E4 +0xB6DB 0x949D +0xB6DC 0x76FE +0xB6DD 0x9041 +0xB6DE 0x6387 +0xB6DF 0x54C6 +0xB6E0 0x591A +0xB6E1 0x593A +0xB6E2 0x579B +0xB6E3 0x8EB2 +0xB6E4 0x6735 +0xB6E5 0x8DFA +0xB6E6 0x8235 +0xB6E7 0x5241 +0xB6E8 0x60F0 +0xB6E9 0x5815 +0xB6EA 0x86FE +0xB6EB 0x5CE8 +0xB6EC 0x9E45 +0xB6ED 0x4FC4 +0xB6EE 0x989D +0xB6EF 0x8BB9 +0xB6F0 0x5A25 +0xB6F1 0x6076 +0xB6F2 0x5384 +0xB6F3 0x627C +0xB6F4 0x904F +0xB6F5 0x9102 +0xB6F6 0x997F +0xB6F7 0x6069 +0xB6F8 0x800C +0xB6F9 0x513F +0xB6FA 0x8033 +0xB6FB 0x5C14 +0xB6FC 0x9975 +0xB6FD 0x6D31 +0xB6FE 0x4E8C +0xB740 0x7A1D +0xB741 0x7A1F +0xB742 0x7A21 +0xB743 0x7A22 +0xB744 0x7A24 +0xB745 0x7A25 +0xB746 0x7A26 +0xB747 0x7A27 +0xB748 0x7A28 +0xB749 0x7A29 +0xB74A 0x7A2A +0xB74B 0x7A2B +0xB74C 0x7A2C +0xB74D 0x7A2D +0xB74E 0x7A2E +0xB74F 0x7A2F +0xB750 0x7A30 +0xB751 0x7A31 +0xB752 0x7A32 +0xB753 0x7A34 +0xB754 0x7A35 +0xB755 0x7A36 +0xB756 0x7A38 +0xB757 0x7A3A +0xB758 0x7A3E +0xB759 0x7A40 +0xB75A 0x7A41 +0xB75B 0x7A42 +0xB75C 0x7A43 +0xB75D 0x7A44 +0xB75E 0x7A45 +0xB75F 0x7A47 +0xB760 0x7A48 +0xB761 0x7A49 +0xB762 0x7A4A +0xB763 0x7A4B +0xB764 0x7A4C +0xB765 0x7A4D +0xB766 0x7A4E +0xB767 0x7A4F +0xB768 0x7A50 +0xB769 0x7A52 +0xB76A 0x7A53 +0xB76B 0x7A54 +0xB76C 0x7A55 +0xB76D 0x7A56 +0xB76E 0x7A58 +0xB76F 0x7A59 +0xB770 0x7A5A +0xB771 0x7A5B +0xB772 0x7A5C +0xB773 0x7A5D +0xB774 0x7A5E +0xB775 0x7A5F +0xB776 0x7A60 +0xB777 0x7A61 +0xB778 0x7A62 +0xB779 0x7A63 +0xB77A 0x7A64 +0xB77B 0x7A65 +0xB77C 0x7A66 +0xB77D 0x7A67 +0xB77E 0x7A68 +0xB780 0x7A69 +0xB781 0x7A6A +0xB782 0x7A6B +0xB783 0x7A6C +0xB784 0x7A6D +0xB785 0x7A6E +0xB786 0x7A6F +0xB787 0x7A71 +0xB788 0x7A72 +0xB789 0x7A73 +0xB78A 0x7A75 +0xB78B 0x7A7B +0xB78C 0x7A7C +0xB78D 0x7A7D +0xB78E 0x7A7E +0xB78F 0x7A82 +0xB790 0x7A85 +0xB791 0x7A87 +0xB792 0x7A89 +0xB793 0x7A8A +0xB794 0x7A8B +0xB795 0x7A8C +0xB796 0x7A8E +0xB797 0x7A8F +0xB798 0x7A90 +0xB799 0x7A93 +0xB79A 0x7A94 +0xB79B 0x7A99 +0xB79C 0x7A9A +0xB79D 0x7A9B +0xB79E 0x7A9E +0xB79F 0x7AA1 +0xB7A0 0x7AA2 +0xB7A1 0x8D30 +0xB7A2 0x53D1 +0xB7A3 0x7F5A +0xB7A4 0x7B4F +0xB7A5 0x4F10 +0xB7A6 0x4E4F +0xB7A7 0x9600 +0xB7A8 0x6CD5 +0xB7A9 0x73D0 +0xB7AA 0x85E9 +0xB7AB 0x5E06 +0xB7AC 0x756A +0xB7AD 0x7FFB +0xB7AE 0x6A0A +0xB7AF 0x77FE +0xB7B0 0x9492 +0xB7B1 0x7E41 +0xB7B2 0x51E1 +0xB7B3 0x70E6 +0xB7B4 0x53CD +0xB7B5 0x8FD4 +0xB7B6 0x8303 +0xB7B7 0x8D29 +0xB7B8 0x72AF +0xB7B9 0x996D +0xB7BA 0x6CDB +0xB7BB 0x574A +0xB7BC 0x82B3 +0xB7BD 0x65B9 +0xB7BE 0x80AA +0xB7BF 0x623F +0xB7C0 0x9632 +0xB7C1 0x59A8 +0xB7C2 0x4EFF +0xB7C3 0x8BBF +0xB7C4 0x7EBA +0xB7C5 0x653E +0xB7C6 0x83F2 +0xB7C7 0x975E +0xB7C8 0x5561 +0xB7C9 0x98DE +0xB7CA 0x80A5 +0xB7CB 0x532A +0xB7CC 0x8BFD +0xB7CD 0x5420 +0xB7CE 0x80BA +0xB7CF 0x5E9F +0xB7D0 0x6CB8 +0xB7D1 0x8D39 +0xB7D2 0x82AC +0xB7D3 0x915A +0xB7D4 0x5429 +0xB7D5 0x6C1B +0xB7D6 0x5206 +0xB7D7 0x7EB7 +0xB7D8 0x575F +0xB7D9 0x711A +0xB7DA 0x6C7E +0xB7DB 0x7C89 +0xB7DC 0x594B +0xB7DD 0x4EFD +0xB7DE 0x5FFF +0xB7DF 0x6124 +0xB7E0 0x7CAA +0xB7E1 0x4E30 +0xB7E2 0x5C01 +0xB7E3 0x67AB +0xB7E4 0x8702 +0xB7E5 0x5CF0 +0xB7E6 0x950B +0xB7E7 0x98CE +0xB7E8 0x75AF +0xB7E9 0x70FD +0xB7EA 0x9022 +0xB7EB 0x51AF +0xB7EC 0x7F1D +0xB7ED 0x8BBD +0xB7EE 0x5949 +0xB7EF 0x51E4 +0xB7F0 0x4F5B +0xB7F1 0x5426 +0xB7F2 0x592B +0xB7F3 0x6577 +0xB7F4 0x80A4 +0xB7F5 0x5B75 +0xB7F6 0x6276 +0xB7F7 0x62C2 +0xB7F8 0x8F90 +0xB7F9 0x5E45 +0xB7FA 0x6C1F +0xB7FB 0x7B26 +0xB7FC 0x4F0F +0xB7FD 0x4FD8 +0xB7FE 0x670D +0xB840 0x7AA3 +0xB841 0x7AA4 +0xB842 0x7AA7 +0xB843 0x7AA9 +0xB844 0x7AAA +0xB845 0x7AAB +0xB846 0x7AAE +0xB847 0x7AAF +0xB848 0x7AB0 +0xB849 0x7AB1 +0xB84A 0x7AB2 +0xB84B 0x7AB4 +0xB84C 0x7AB5 +0xB84D 0x7AB6 +0xB84E 0x7AB7 +0xB84F 0x7AB8 +0xB850 0x7AB9 +0xB851 0x7ABA +0xB852 0x7ABB +0xB853 0x7ABC +0xB854 0x7ABD +0xB855 0x7ABE +0xB856 0x7AC0 +0xB857 0x7AC1 +0xB858 0x7AC2 +0xB859 0x7AC3 +0xB85A 0x7AC4 +0xB85B 0x7AC5 +0xB85C 0x7AC6 +0xB85D 0x7AC7 +0xB85E 0x7AC8 +0xB85F 0x7AC9 +0xB860 0x7ACA +0xB861 0x7ACC +0xB862 0x7ACD +0xB863 0x7ACE +0xB864 0x7ACF +0xB865 0x7AD0 +0xB866 0x7AD1 +0xB867 0x7AD2 +0xB868 0x7AD3 +0xB869 0x7AD4 +0xB86A 0x7AD5 +0xB86B 0x7AD7 +0xB86C 0x7AD8 +0xB86D 0x7ADA +0xB86E 0x7ADB +0xB86F 0x7ADC +0xB870 0x7ADD +0xB871 0x7AE1 +0xB872 0x7AE2 +0xB873 0x7AE4 +0xB874 0x7AE7 +0xB875 0x7AE8 +0xB876 0x7AE9 +0xB877 0x7AEA +0xB878 0x7AEB +0xB879 0x7AEC +0xB87A 0x7AEE +0xB87B 0x7AF0 +0xB87C 0x7AF1 +0xB87D 0x7AF2 +0xB87E 0x7AF3 +0xB880 0x7AF4 +0xB881 0x7AF5 +0xB882 0x7AF6 +0xB883 0x7AF7 +0xB884 0x7AF8 +0xB885 0x7AFB +0xB886 0x7AFC +0xB887 0x7AFE +0xB888 0x7B00 +0xB889 0x7B01 +0xB88A 0x7B02 +0xB88B 0x7B05 +0xB88C 0x7B07 +0xB88D 0x7B09 +0xB88E 0x7B0C +0xB88F 0x7B0D +0xB890 0x7B0E +0xB891 0x7B10 +0xB892 0x7B12 +0xB893 0x7B13 +0xB894 0x7B16 +0xB895 0x7B17 +0xB896 0x7B18 +0xB897 0x7B1A +0xB898 0x7B1C +0xB899 0x7B1D +0xB89A 0x7B1F +0xB89B 0x7B21 +0xB89C 0x7B22 +0xB89D 0x7B23 +0xB89E 0x7B27 +0xB89F 0x7B29 +0xB8A0 0x7B2D +0xB8A1 0x6D6E +0xB8A2 0x6DAA +0xB8A3 0x798F +0xB8A4 0x88B1 +0xB8A5 0x5F17 +0xB8A6 0x752B +0xB8A7 0x629A +0xB8A8 0x8F85 +0xB8A9 0x4FEF +0xB8AA 0x91DC +0xB8AB 0x65A7 +0xB8AC 0x812F +0xB8AD 0x8151 +0xB8AE 0x5E9C +0xB8AF 0x8150 +0xB8B0 0x8D74 +0xB8B1 0x526F +0xB8B2 0x8986 +0xB8B3 0x8D4B +0xB8B4 0x590D +0xB8B5 0x5085 +0xB8B6 0x4ED8 +0xB8B7 0x961C +0xB8B8 0x7236 +0xB8B9 0x8179 +0xB8BA 0x8D1F +0xB8BB 0x5BCC +0xB8BC 0x8BA3 +0xB8BD 0x9644 +0xB8BE 0x5987 +0xB8BF 0x7F1A +0xB8C0 0x5490 +0xB8C1 0x5676 +0xB8C2 0x560E +0xB8C3 0x8BE5 +0xB8C4 0x6539 +0xB8C5 0x6982 +0xB8C6 0x9499 +0xB8C7 0x76D6 +0xB8C8 0x6E89 +0xB8C9 0x5E72 +0xB8CA 0x7518 +0xB8CB 0x6746 +0xB8CC 0x67D1 +0xB8CD 0x7AFF +0xB8CE 0x809D +0xB8CF 0x8D76 +0xB8D0 0x611F +0xB8D1 0x79C6 +0xB8D2 0x6562 +0xB8D3 0x8D63 +0xB8D4 0x5188 +0xB8D5 0x521A +0xB8D6 0x94A2 +0xB8D7 0x7F38 +0xB8D8 0x809B +0xB8D9 0x7EB2 +0xB8DA 0x5C97 +0xB8DB 0x6E2F +0xB8DC 0x6760 +0xB8DD 0x7BD9 +0xB8DE 0x768B +0xB8DF 0x9AD8 +0xB8E0 0x818F +0xB8E1 0x7F94 +0xB8E2 0x7CD5 +0xB8E3 0x641E +0xB8E4 0x9550 +0xB8E5 0x7A3F +0xB8E6 0x544A +0xB8E7 0x54E5 +0xB8E8 0x6B4C +0xB8E9 0x6401 +0xB8EA 0x6208 +0xB8EB 0x9E3D +0xB8EC 0x80F3 +0xB8ED 0x7599 +0xB8EE 0x5272 +0xB8EF 0x9769 +0xB8F0 0x845B +0xB8F1 0x683C +0xB8F2 0x86E4 +0xB8F3 0x9601 +0xB8F4 0x9694 +0xB8F5 0x94EC +0xB8F6 0x4E2A +0xB8F7 0x5404 +0xB8F8 0x7ED9 +0xB8F9 0x6839 +0xB8FA 0x8DDF +0xB8FB 0x8015 +0xB8FC 0x66F4 +0xB8FD 0x5E9A +0xB8FE 0x7FB9 +0xB940 0x7B2F +0xB941 0x7B30 +0xB942 0x7B32 +0xB943 0x7B34 +0xB944 0x7B35 +0xB945 0x7B36 +0xB946 0x7B37 +0xB947 0x7B39 +0xB948 0x7B3B +0xB949 0x7B3D +0xB94A 0x7B3F +0xB94B 0x7B40 +0xB94C 0x7B41 +0xB94D 0x7B42 +0xB94E 0x7B43 +0xB94F 0x7B44 +0xB950 0x7B46 +0xB951 0x7B48 +0xB952 0x7B4A +0xB953 0x7B4D +0xB954 0x7B4E +0xB955 0x7B53 +0xB956 0x7B55 +0xB957 0x7B57 +0xB958 0x7B59 +0xB959 0x7B5C +0xB95A 0x7B5E +0xB95B 0x7B5F +0xB95C 0x7B61 +0xB95D 0x7B63 +0xB95E 0x7B64 +0xB95F 0x7B65 +0xB960 0x7B66 +0xB961 0x7B67 +0xB962 0x7B68 +0xB963 0x7B69 +0xB964 0x7B6A +0xB965 0x7B6B +0xB966 0x7B6C +0xB967 0x7B6D +0xB968 0x7B6F +0xB969 0x7B70 +0xB96A 0x7B73 +0xB96B 0x7B74 +0xB96C 0x7B76 +0xB96D 0x7B78 +0xB96E 0x7B7A +0xB96F 0x7B7C +0xB970 0x7B7D +0xB971 0x7B7F +0xB972 0x7B81 +0xB973 0x7B82 +0xB974 0x7B83 +0xB975 0x7B84 +0xB976 0x7B86 +0xB977 0x7B87 +0xB978 0x7B88 +0xB979 0x7B89 +0xB97A 0x7B8A +0xB97B 0x7B8B +0xB97C 0x7B8C +0xB97D 0x7B8E +0xB97E 0x7B8F +0xB980 0x7B91 +0xB981 0x7B92 +0xB982 0x7B93 +0xB983 0x7B96 +0xB984 0x7B98 +0xB985 0x7B99 +0xB986 0x7B9A +0xB987 0x7B9B +0xB988 0x7B9E +0xB989 0x7B9F +0xB98A 0x7BA0 +0xB98B 0x7BA3 +0xB98C 0x7BA4 +0xB98D 0x7BA5 +0xB98E 0x7BAE +0xB98F 0x7BAF +0xB990 0x7BB0 +0xB991 0x7BB2 +0xB992 0x7BB3 +0xB993 0x7BB5 +0xB994 0x7BB6 +0xB995 0x7BB7 +0xB996 0x7BB9 +0xB997 0x7BBA +0xB998 0x7BBB +0xB999 0x7BBC +0xB99A 0x7BBD +0xB99B 0x7BBE +0xB99C 0x7BBF +0xB99D 0x7BC0 +0xB99E 0x7BC2 +0xB99F 0x7BC3 +0xB9A0 0x7BC4 +0xB9A1 0x57C2 +0xB9A2 0x803F +0xB9A3 0x6897 +0xB9A4 0x5DE5 +0xB9A5 0x653B +0xB9A6 0x529F +0xB9A7 0x606D +0xB9A8 0x9F9A +0xB9A9 0x4F9B +0xB9AA 0x8EAC +0xB9AB 0x516C +0xB9AC 0x5BAB +0xB9AD 0x5F13 +0xB9AE 0x5DE9 +0xB9AF 0x6C5E +0xB9B0 0x62F1 +0xB9B1 0x8D21 +0xB9B2 0x5171 +0xB9B3 0x94A9 +0xB9B4 0x52FE +0xB9B5 0x6C9F +0xB9B6 0x82DF +0xB9B7 0x72D7 +0xB9B8 0x57A2 +0xB9B9 0x6784 +0xB9BA 0x8D2D +0xB9BB 0x591F +0xB9BC 0x8F9C +0xB9BD 0x83C7 +0xB9BE 0x5495 +0xB9BF 0x7B8D +0xB9C0 0x4F30 +0xB9C1 0x6CBD +0xB9C2 0x5B64 +0xB9C3 0x59D1 +0xB9C4 0x9F13 +0xB9C5 0x53E4 +0xB9C6 0x86CA +0xB9C7 0x9AA8 +0xB9C8 0x8C37 +0xB9C9 0x80A1 +0xB9CA 0x6545 +0xB9CB 0x987E +0xB9CC 0x56FA +0xB9CD 0x96C7 +0xB9CE 0x522E +0xB9CF 0x74DC +0xB9D0 0x5250 +0xB9D1 0x5BE1 +0xB9D2 0x6302 +0xB9D3 0x8902 +0xB9D4 0x4E56 +0xB9D5 0x62D0 +0xB9D6 0x602A +0xB9D7 0x68FA +0xB9D8 0x5173 +0xB9D9 0x5B98 +0xB9DA 0x51A0 +0xB9DB 0x89C2 +0xB9DC 0x7BA1 +0xB9DD 0x9986 +0xB9DE 0x7F50 +0xB9DF 0x60EF +0xB9E0 0x704C +0xB9E1 0x8D2F +0xB9E2 0x5149 +0xB9E3 0x5E7F +0xB9E4 0x901B +0xB9E5 0x7470 +0xB9E6 0x89C4 +0xB9E7 0x572D +0xB9E8 0x7845 +0xB9E9 0x5F52 +0xB9EA 0x9F9F +0xB9EB 0x95FA +0xB9EC 0x8F68 +0xB9ED 0x9B3C +0xB9EE 0x8BE1 +0xB9EF 0x7678 +0xB9F0 0x6842 +0xB9F1 0x67DC +0xB9F2 0x8DEA +0xB9F3 0x8D35 +0xB9F4 0x523D +0xB9F5 0x8F8A +0xB9F6 0x6EDA +0xB9F7 0x68CD +0xB9F8 0x9505 +0xB9F9 0x90ED +0xB9FA 0x56FD +0xB9FB 0x679C +0xB9FC 0x88F9 +0xB9FD 0x8FC7 +0xB9FE 0x54C8 +0xBA40 0x7BC5 +0xBA41 0x7BC8 +0xBA42 0x7BC9 +0xBA43 0x7BCA +0xBA44 0x7BCB +0xBA45 0x7BCD +0xBA46 0x7BCE +0xBA47 0x7BCF +0xBA48 0x7BD0 +0xBA49 0x7BD2 +0xBA4A 0x7BD4 +0xBA4B 0x7BD5 +0xBA4C 0x7BD6 +0xBA4D 0x7BD7 +0xBA4E 0x7BD8 +0xBA4F 0x7BDB +0xBA50 0x7BDC +0xBA51 0x7BDE +0xBA52 0x7BDF +0xBA53 0x7BE0 +0xBA54 0x7BE2 +0xBA55 0x7BE3 +0xBA56 0x7BE4 +0xBA57 0x7BE7 +0xBA58 0x7BE8 +0xBA59 0x7BE9 +0xBA5A 0x7BEB +0xBA5B 0x7BEC +0xBA5C 0x7BED +0xBA5D 0x7BEF +0xBA5E 0x7BF0 +0xBA5F 0x7BF2 +0xBA60 0x7BF3 +0xBA61 0x7BF4 +0xBA62 0x7BF5 +0xBA63 0x7BF6 +0xBA64 0x7BF8 +0xBA65 0x7BF9 +0xBA66 0x7BFA +0xBA67 0x7BFB +0xBA68 0x7BFD +0xBA69 0x7BFF +0xBA6A 0x7C00 +0xBA6B 0x7C01 +0xBA6C 0x7C02 +0xBA6D 0x7C03 +0xBA6E 0x7C04 +0xBA6F 0x7C05 +0xBA70 0x7C06 +0xBA71 0x7C08 +0xBA72 0x7C09 +0xBA73 0x7C0A +0xBA74 0x7C0D +0xBA75 0x7C0E +0xBA76 0x7C10 +0xBA77 0x7C11 +0xBA78 0x7C12 +0xBA79 0x7C13 +0xBA7A 0x7C14 +0xBA7B 0x7C15 +0xBA7C 0x7C17 +0xBA7D 0x7C18 +0xBA7E 0x7C19 +0xBA80 0x7C1A +0xBA81 0x7C1B +0xBA82 0x7C1C +0xBA83 0x7C1D +0xBA84 0x7C1E +0xBA85 0x7C20 +0xBA86 0x7C21 +0xBA87 0x7C22 +0xBA88 0x7C23 +0xBA89 0x7C24 +0xBA8A 0x7C25 +0xBA8B 0x7C28 +0xBA8C 0x7C29 +0xBA8D 0x7C2B +0xBA8E 0x7C2C +0xBA8F 0x7C2D +0xBA90 0x7C2E +0xBA91 0x7C2F +0xBA92 0x7C30 +0xBA93 0x7C31 +0xBA94 0x7C32 +0xBA95 0x7C33 +0xBA96 0x7C34 +0xBA97 0x7C35 +0xBA98 0x7C36 +0xBA99 0x7C37 +0xBA9A 0x7C39 +0xBA9B 0x7C3A +0xBA9C 0x7C3B +0xBA9D 0x7C3C +0xBA9E 0x7C3D +0xBA9F 0x7C3E +0xBAA0 0x7C42 +0xBAA1 0x9AB8 +0xBAA2 0x5B69 +0xBAA3 0x6D77 +0xBAA4 0x6C26 +0xBAA5 0x4EA5 +0xBAA6 0x5BB3 +0xBAA7 0x9A87 +0xBAA8 0x9163 +0xBAA9 0x61A8 +0xBAAA 0x90AF +0xBAAB 0x97E9 +0xBAAC 0x542B +0xBAAD 0x6DB5 +0xBAAE 0x5BD2 +0xBAAF 0x51FD +0xBAB0 0x558A +0xBAB1 0x7F55 +0xBAB2 0x7FF0 +0xBAB3 0x64BC +0xBAB4 0x634D +0xBAB5 0x65F1 +0xBAB6 0x61BE +0xBAB7 0x608D +0xBAB8 0x710A +0xBAB9 0x6C57 +0xBABA 0x6C49 +0xBABB 0x592F +0xBABC 0x676D +0xBABD 0x822A +0xBABE 0x58D5 +0xBABF 0x568E +0xBAC0 0x8C6A +0xBAC1 0x6BEB +0xBAC2 0x90DD +0xBAC3 0x597D +0xBAC4 0x8017 +0xBAC5 0x53F7 +0xBAC6 0x6D69 +0xBAC7 0x5475 +0xBAC8 0x559D +0xBAC9 0x8377 +0xBACA 0x83CF +0xBACB 0x6838 +0xBACC 0x79BE +0xBACD 0x548C +0xBACE 0x4F55 +0xBACF 0x5408 +0xBAD0 0x76D2 +0xBAD1 0x8C89 +0xBAD2 0x9602 +0xBAD3 0x6CB3 +0xBAD4 0x6DB8 +0xBAD5 0x8D6B +0xBAD6 0x8910 +0xBAD7 0x9E64 +0xBAD8 0x8D3A +0xBAD9 0x563F +0xBADA 0x9ED1 +0xBADB 0x75D5 +0xBADC 0x5F88 +0xBADD 0x72E0 +0xBADE 0x6068 +0xBADF 0x54FC +0xBAE0 0x4EA8 +0xBAE1 0x6A2A +0xBAE2 0x8861 +0xBAE3 0x6052 +0xBAE4 0x8F70 +0xBAE5 0x54C4 +0xBAE6 0x70D8 +0xBAE7 0x8679 +0xBAE8 0x9E3F +0xBAE9 0x6D2A +0xBAEA 0x5B8F +0xBAEB 0x5F18 +0xBAEC 0x7EA2 +0xBAED 0x5589 +0xBAEE 0x4FAF +0xBAEF 0x7334 +0xBAF0 0x543C +0xBAF1 0x539A +0xBAF2 0x5019 +0xBAF3 0x540E +0xBAF4 0x547C +0xBAF5 0x4E4E +0xBAF6 0x5FFD +0xBAF7 0x745A +0xBAF8 0x58F6 +0xBAF9 0x846B +0xBAFA 0x80E1 +0xBAFB 0x8774 +0xBAFC 0x72D0 +0xBAFD 0x7CCA +0xBAFE 0x6E56 +0xBB40 0x7C43 +0xBB41 0x7C44 +0xBB42 0x7C45 +0xBB43 0x7C46 +0xBB44 0x7C47 +0xBB45 0x7C48 +0xBB46 0x7C49 +0xBB47 0x7C4A +0xBB48 0x7C4B +0xBB49 0x7C4C +0xBB4A 0x7C4E +0xBB4B 0x7C4F +0xBB4C 0x7C50 +0xBB4D 0x7C51 +0xBB4E 0x7C52 +0xBB4F 0x7C53 +0xBB50 0x7C54 +0xBB51 0x7C55 +0xBB52 0x7C56 +0xBB53 0x7C57 +0xBB54 0x7C58 +0xBB55 0x7C59 +0xBB56 0x7C5A +0xBB57 0x7C5B +0xBB58 0x7C5C +0xBB59 0x7C5D +0xBB5A 0x7C5E +0xBB5B 0x7C5F +0xBB5C 0x7C60 +0xBB5D 0x7C61 +0xBB5E 0x7C62 +0xBB5F 0x7C63 +0xBB60 0x7C64 +0xBB61 0x7C65 +0xBB62 0x7C66 +0xBB63 0x7C67 +0xBB64 0x7C68 +0xBB65 0x7C69 +0xBB66 0x7C6A +0xBB67 0x7C6B +0xBB68 0x7C6C +0xBB69 0x7C6D +0xBB6A 0x7C6E +0xBB6B 0x7C6F +0xBB6C 0x7C70 +0xBB6D 0x7C71 +0xBB6E 0x7C72 +0xBB6F 0x7C75 +0xBB70 0x7C76 +0xBB71 0x7C77 +0xBB72 0x7C78 +0xBB73 0x7C79 +0xBB74 0x7C7A +0xBB75 0x7C7E +0xBB76 0x7C7F +0xBB77 0x7C80 +0xBB78 0x7C81 +0xBB79 0x7C82 +0xBB7A 0x7C83 +0xBB7B 0x7C84 +0xBB7C 0x7C85 +0xBB7D 0x7C86 +0xBB7E 0x7C87 +0xBB80 0x7C88 +0xBB81 0x7C8A +0xBB82 0x7C8B +0xBB83 0x7C8C +0xBB84 0x7C8D +0xBB85 0x7C8E +0xBB86 0x7C8F +0xBB87 0x7C90 +0xBB88 0x7C93 +0xBB89 0x7C94 +0xBB8A 0x7C96 +0xBB8B 0x7C99 +0xBB8C 0x7C9A +0xBB8D 0x7C9B +0xBB8E 0x7CA0 +0xBB8F 0x7CA1 +0xBB90 0x7CA3 +0xBB91 0x7CA6 +0xBB92 0x7CA7 +0xBB93 0x7CA8 +0xBB94 0x7CA9 +0xBB95 0x7CAB +0xBB96 0x7CAC +0xBB97 0x7CAD +0xBB98 0x7CAF +0xBB99 0x7CB0 +0xBB9A 0x7CB4 +0xBB9B 0x7CB5 +0xBB9C 0x7CB6 +0xBB9D 0x7CB7 +0xBB9E 0x7CB8 +0xBB9F 0x7CBA +0xBBA0 0x7CBB +0xBBA1 0x5F27 +0xBBA2 0x864E +0xBBA3 0x552C +0xBBA4 0x62A4 +0xBBA5 0x4E92 +0xBBA6 0x6CAA +0xBBA7 0x6237 +0xBBA8 0x82B1 +0xBBA9 0x54D7 +0xBBAA 0x534E +0xBBAB 0x733E +0xBBAC 0x6ED1 +0xBBAD 0x753B +0xBBAE 0x5212 +0xBBAF 0x5316 +0xBBB0 0x8BDD +0xBBB1 0x69D0 +0xBBB2 0x5F8A +0xBBB3 0x6000 +0xBBB4 0x6DEE +0xBBB5 0x574F +0xBBB6 0x6B22 +0xBBB7 0x73AF +0xBBB8 0x6853 +0xBBB9 0x8FD8 +0xBBBA 0x7F13 +0xBBBB 0x6362 +0xBBBC 0x60A3 +0xBBBD 0x5524 +0xBBBE 0x75EA +0xBBBF 0x8C62 +0xBBC0 0x7115 +0xBBC1 0x6DA3 +0xBBC2 0x5BA6 +0xBBC3 0x5E7B +0xBBC4 0x8352 +0xBBC5 0x614C +0xBBC6 0x9EC4 +0xBBC7 0x78FA +0xBBC8 0x8757 +0xBBC9 0x7C27 +0xBBCA 0x7687 +0xBBCB 0x51F0 +0xBBCC 0x60F6 +0xBBCD 0x714C +0xBBCE 0x6643 +0xBBCF 0x5E4C +0xBBD0 0x604D +0xBBD1 0x8C0E +0xBBD2 0x7070 +0xBBD3 0x6325 +0xBBD4 0x8F89 +0xBBD5 0x5FBD +0xBBD6 0x6062 +0xBBD7 0x86D4 +0xBBD8 0x56DE +0xBBD9 0x6BC1 +0xBBDA 0x6094 +0xBBDB 0x6167 +0xBBDC 0x5349 +0xBBDD 0x60E0 +0xBBDE 0x6666 +0xBBDF 0x8D3F +0xBBE0 0x79FD +0xBBE1 0x4F1A +0xBBE2 0x70E9 +0xBBE3 0x6C47 +0xBBE4 0x8BB3 +0xBBE5 0x8BF2 +0xBBE6 0x7ED8 +0xBBE7 0x8364 +0xBBE8 0x660F +0xBBE9 0x5A5A +0xBBEA 0x9B42 +0xBBEB 0x6D51 +0xBBEC 0x6DF7 +0xBBED 0x8C41 +0xBBEE 0x6D3B +0xBBEF 0x4F19 +0xBBF0 0x706B +0xBBF1 0x83B7 +0xBBF2 0x6216 +0xBBF3 0x60D1 +0xBBF4 0x970D +0xBBF5 0x8D27 +0xBBF6 0x7978 +0xBBF7 0x51FB +0xBBF8 0x573E +0xBBF9 0x57FA +0xBBFA 0x673A +0xBBFB 0x7578 +0xBBFC 0x7A3D +0xBBFD 0x79EF +0xBBFE 0x7B95 +0xBC40 0x7CBF +0xBC41 0x7CC0 +0xBC42 0x7CC2 +0xBC43 0x7CC3 +0xBC44 0x7CC4 +0xBC45 0x7CC6 +0xBC46 0x7CC9 +0xBC47 0x7CCB +0xBC48 0x7CCE +0xBC49 0x7CCF +0xBC4A 0x7CD0 +0xBC4B 0x7CD1 +0xBC4C 0x7CD2 +0xBC4D 0x7CD3 +0xBC4E 0x7CD4 +0xBC4F 0x7CD8 +0xBC50 0x7CDA +0xBC51 0x7CDB +0xBC52 0x7CDD +0xBC53 0x7CDE +0xBC54 0x7CE1 +0xBC55 0x7CE2 +0xBC56 0x7CE3 +0xBC57 0x7CE4 +0xBC58 0x7CE5 +0xBC59 0x7CE6 +0xBC5A 0x7CE7 +0xBC5B 0x7CE9 +0xBC5C 0x7CEA +0xBC5D 0x7CEB +0xBC5E 0x7CEC +0xBC5F 0x7CED +0xBC60 0x7CEE +0xBC61 0x7CF0 +0xBC62 0x7CF1 +0xBC63 0x7CF2 +0xBC64 0x7CF3 +0xBC65 0x7CF4 +0xBC66 0x7CF5 +0xBC67 0x7CF6 +0xBC68 0x7CF7 +0xBC69 0x7CF9 +0xBC6A 0x7CFA +0xBC6B 0x7CFC +0xBC6C 0x7CFD +0xBC6D 0x7CFE +0xBC6E 0x7CFF +0xBC6F 0x7D00 +0xBC70 0x7D01 +0xBC71 0x7D02 +0xBC72 0x7D03 +0xBC73 0x7D04 +0xBC74 0x7D05 +0xBC75 0x7D06 +0xBC76 0x7D07 +0xBC77 0x7D08 +0xBC78 0x7D09 +0xBC79 0x7D0B +0xBC7A 0x7D0C +0xBC7B 0x7D0D +0xBC7C 0x7D0E +0xBC7D 0x7D0F +0xBC7E 0x7D10 +0xBC80 0x7D11 +0xBC81 0x7D12 +0xBC82 0x7D13 +0xBC83 0x7D14 +0xBC84 0x7D15 +0xBC85 0x7D16 +0xBC86 0x7D17 +0xBC87 0x7D18 +0xBC88 0x7D19 +0xBC89 0x7D1A +0xBC8A 0x7D1B +0xBC8B 0x7D1C +0xBC8C 0x7D1D +0xBC8D 0x7D1E +0xBC8E 0x7D1F +0xBC8F 0x7D21 +0xBC90 0x7D23 +0xBC91 0x7D24 +0xBC92 0x7D25 +0xBC93 0x7D26 +0xBC94 0x7D28 +0xBC95 0x7D29 +0xBC96 0x7D2A +0xBC97 0x7D2C +0xBC98 0x7D2D +0xBC99 0x7D2E +0xBC9A 0x7D30 +0xBC9B 0x7D31 +0xBC9C 0x7D32 +0xBC9D 0x7D33 +0xBC9E 0x7D34 +0xBC9F 0x7D35 +0xBCA0 0x7D36 +0xBCA1 0x808C +0xBCA2 0x9965 +0xBCA3 0x8FF9 +0xBCA4 0x6FC0 +0xBCA5 0x8BA5 +0xBCA6 0x9E21 +0xBCA7 0x59EC +0xBCA8 0x7EE9 +0xBCA9 0x7F09 +0xBCAA 0x5409 +0xBCAB 0x6781 +0xBCAC 0x68D8 +0xBCAD 0x8F91 +0xBCAE 0x7C4D +0xBCAF 0x96C6 +0xBCB0 0x53CA +0xBCB1 0x6025 +0xBCB2 0x75BE +0xBCB3 0x6C72 +0xBCB4 0x5373 +0xBCB5 0x5AC9 +0xBCB6 0x7EA7 +0xBCB7 0x6324 +0xBCB8 0x51E0 +0xBCB9 0x810A +0xBCBA 0x5DF1 +0xBCBB 0x84DF +0xBCBC 0x6280 +0xBCBD 0x5180 +0xBCBE 0x5B63 +0xBCBF 0x4F0E +0xBCC0 0x796D +0xBCC1 0x5242 +0xBCC2 0x60B8 +0xBCC3 0x6D4E +0xBCC4 0x5BC4 +0xBCC5 0x5BC2 +0xBCC6 0x8BA1 +0xBCC7 0x8BB0 +0xBCC8 0x65E2 +0xBCC9 0x5FCC +0xBCCA 0x9645 +0xBCCB 0x5993 +0xBCCC 0x7EE7 +0xBCCD 0x7EAA +0xBCCE 0x5609 +0xBCCF 0x67B7 +0xBCD0 0x5939 +0xBCD1 0x4F73 +0xBCD2 0x5BB6 +0xBCD3 0x52A0 +0xBCD4 0x835A +0xBCD5 0x988A +0xBCD6 0x8D3E +0xBCD7 0x7532 +0xBCD8 0x94BE +0xBCD9 0x5047 +0xBCDA 0x7A3C +0xBCDB 0x4EF7 +0xBCDC 0x67B6 +0xBCDD 0x9A7E +0xBCDE 0x5AC1 +0xBCDF 0x6B7C +0xBCE0 0x76D1 +0xBCE1 0x575A +0xBCE2 0x5C16 +0xBCE3 0x7B3A +0xBCE4 0x95F4 +0xBCE5 0x714E +0xBCE6 0x517C +0xBCE7 0x80A9 +0xBCE8 0x8270 +0xBCE9 0x5978 +0xBCEA 0x7F04 +0xBCEB 0x8327 +0xBCEC 0x68C0 +0xBCED 0x67EC +0xBCEE 0x78B1 +0xBCEF 0x7877 +0xBCF0 0x62E3 +0xBCF1 0x6361 +0xBCF2 0x7B80 +0xBCF3 0x4FED +0xBCF4 0x526A +0xBCF5 0x51CF +0xBCF6 0x8350 +0xBCF7 0x69DB +0xBCF8 0x9274 +0xBCF9 0x8DF5 +0xBCFA 0x8D31 +0xBCFB 0x89C1 +0xBCFC 0x952E +0xBCFD 0x7BAD +0xBCFE 0x4EF6 +0xBD40 0x7D37 +0xBD41 0x7D38 +0xBD42 0x7D39 +0xBD43 0x7D3A +0xBD44 0x7D3B +0xBD45 0x7D3C +0xBD46 0x7D3D +0xBD47 0x7D3E +0xBD48 0x7D3F +0xBD49 0x7D40 +0xBD4A 0x7D41 +0xBD4B 0x7D42 +0xBD4C 0x7D43 +0xBD4D 0x7D44 +0xBD4E 0x7D45 +0xBD4F 0x7D46 +0xBD50 0x7D47 +0xBD51 0x7D48 +0xBD52 0x7D49 +0xBD53 0x7D4A +0xBD54 0x7D4B +0xBD55 0x7D4C +0xBD56 0x7D4D +0xBD57 0x7D4E +0xBD58 0x7D4F +0xBD59 0x7D50 +0xBD5A 0x7D51 +0xBD5B 0x7D52 +0xBD5C 0x7D53 +0xBD5D 0x7D54 +0xBD5E 0x7D55 +0xBD5F 0x7D56 +0xBD60 0x7D57 +0xBD61 0x7D58 +0xBD62 0x7D59 +0xBD63 0x7D5A +0xBD64 0x7D5B +0xBD65 0x7D5C +0xBD66 0x7D5D +0xBD67 0x7D5E +0xBD68 0x7D5F +0xBD69 0x7D60 +0xBD6A 0x7D61 +0xBD6B 0x7D62 +0xBD6C 0x7D63 +0xBD6D 0x7D64 +0xBD6E 0x7D65 +0xBD6F 0x7D66 +0xBD70 0x7D67 +0xBD71 0x7D68 +0xBD72 0x7D69 +0xBD73 0x7D6A +0xBD74 0x7D6B +0xBD75 0x7D6C +0xBD76 0x7D6D +0xBD77 0x7D6F +0xBD78 0x7D70 +0xBD79 0x7D71 +0xBD7A 0x7D72 +0xBD7B 0x7D73 +0xBD7C 0x7D74 +0xBD7D 0x7D75 +0xBD7E 0x7D76 +0xBD80 0x7D78 +0xBD81 0x7D79 +0xBD82 0x7D7A +0xBD83 0x7D7B +0xBD84 0x7D7C +0xBD85 0x7D7D +0xBD86 0x7D7E +0xBD87 0x7D7F +0xBD88 0x7D80 +0xBD89 0x7D81 +0xBD8A 0x7D82 +0xBD8B 0x7D83 +0xBD8C 0x7D84 +0xBD8D 0x7D85 +0xBD8E 0x7D86 +0xBD8F 0x7D87 +0xBD90 0x7D88 +0xBD91 0x7D89 +0xBD92 0x7D8A +0xBD93 0x7D8B +0xBD94 0x7D8C +0xBD95 0x7D8D +0xBD96 0x7D8E +0xBD97 0x7D8F +0xBD98 0x7D90 +0xBD99 0x7D91 +0xBD9A 0x7D92 +0xBD9B 0x7D93 +0xBD9C 0x7D94 +0xBD9D 0x7D95 +0xBD9E 0x7D96 +0xBD9F 0x7D97 +0xBDA0 0x7D98 +0xBDA1 0x5065 +0xBDA2 0x8230 +0xBDA3 0x5251 +0xBDA4 0x996F +0xBDA5 0x6E10 +0xBDA6 0x6E85 +0xBDA7 0x6DA7 +0xBDA8 0x5EFA +0xBDA9 0x50F5 +0xBDAA 0x59DC +0xBDAB 0x5C06 +0xBDAC 0x6D46 +0xBDAD 0x6C5F +0xBDAE 0x7586 +0xBDAF 0x848B +0xBDB0 0x6868 +0xBDB1 0x5956 +0xBDB2 0x8BB2 +0xBDB3 0x5320 +0xBDB4 0x9171 +0xBDB5 0x964D +0xBDB6 0x8549 +0xBDB7 0x6912 +0xBDB8 0x7901 +0xBDB9 0x7126 +0xBDBA 0x80F6 +0xBDBB 0x4EA4 +0xBDBC 0x90CA +0xBDBD 0x6D47 +0xBDBE 0x9A84 +0xBDBF 0x5A07 +0xBDC0 0x56BC +0xBDC1 0x6405 +0xBDC2 0x94F0 +0xBDC3 0x77EB +0xBDC4 0x4FA5 +0xBDC5 0x811A +0xBDC6 0x72E1 +0xBDC7 0x89D2 +0xBDC8 0x997A +0xBDC9 0x7F34 +0xBDCA 0x7EDE +0xBDCB 0x527F +0xBDCC 0x6559 +0xBDCD 0x9175 +0xBDCE 0x8F7F +0xBDCF 0x8F83 +0xBDD0 0x53EB +0xBDD1 0x7A96 +0xBDD2 0x63ED +0xBDD3 0x63A5 +0xBDD4 0x7686 +0xBDD5 0x79F8 +0xBDD6 0x8857 +0xBDD7 0x9636 +0xBDD8 0x622A +0xBDD9 0x52AB +0xBDDA 0x8282 +0xBDDB 0x6854 +0xBDDC 0x6770 +0xBDDD 0x6377 +0xBDDE 0x776B +0xBDDF 0x7AED +0xBDE0 0x6D01 +0xBDE1 0x7ED3 +0xBDE2 0x89E3 +0xBDE3 0x59D0 +0xBDE4 0x6212 +0xBDE5 0x85C9 +0xBDE6 0x82A5 +0xBDE7 0x754C +0xBDE8 0x501F +0xBDE9 0x4ECB +0xBDEA 0x75A5 +0xBDEB 0x8BEB +0xBDEC 0x5C4A +0xBDED 0x5DFE +0xBDEE 0x7B4B +0xBDEF 0x65A4 +0xBDF0 0x91D1 +0xBDF1 0x4ECA +0xBDF2 0x6D25 +0xBDF3 0x895F +0xBDF4 0x7D27 +0xBDF5 0x9526 +0xBDF6 0x4EC5 +0xBDF7 0x8C28 +0xBDF8 0x8FDB +0xBDF9 0x9773 +0xBDFA 0x664B +0xBDFB 0x7981 +0xBDFC 0x8FD1 +0xBDFD 0x70EC +0xBDFE 0x6D78 +0xBE40 0x7D99 +0xBE41 0x7D9A +0xBE42 0x7D9B +0xBE43 0x7D9C +0xBE44 0x7D9D +0xBE45 0x7D9E +0xBE46 0x7D9F +0xBE47 0x7DA0 +0xBE48 0x7DA1 +0xBE49 0x7DA2 +0xBE4A 0x7DA3 +0xBE4B 0x7DA4 +0xBE4C 0x7DA5 +0xBE4D 0x7DA7 +0xBE4E 0x7DA8 +0xBE4F 0x7DA9 +0xBE50 0x7DAA +0xBE51 0x7DAB +0xBE52 0x7DAC +0xBE53 0x7DAD +0xBE54 0x7DAF +0xBE55 0x7DB0 +0xBE56 0x7DB1 +0xBE57 0x7DB2 +0xBE58 0x7DB3 +0xBE59 0x7DB4 +0xBE5A 0x7DB5 +0xBE5B 0x7DB6 +0xBE5C 0x7DB7 +0xBE5D 0x7DB8 +0xBE5E 0x7DB9 +0xBE5F 0x7DBA +0xBE60 0x7DBB +0xBE61 0x7DBC +0xBE62 0x7DBD +0xBE63 0x7DBE +0xBE64 0x7DBF +0xBE65 0x7DC0 +0xBE66 0x7DC1 +0xBE67 0x7DC2 +0xBE68 0x7DC3 +0xBE69 0x7DC4 +0xBE6A 0x7DC5 +0xBE6B 0x7DC6 +0xBE6C 0x7DC7 +0xBE6D 0x7DC8 +0xBE6E 0x7DC9 +0xBE6F 0x7DCA +0xBE70 0x7DCB +0xBE71 0x7DCC +0xBE72 0x7DCD +0xBE73 0x7DCE +0xBE74 0x7DCF +0xBE75 0x7DD0 +0xBE76 0x7DD1 +0xBE77 0x7DD2 +0xBE78 0x7DD3 +0xBE79 0x7DD4 +0xBE7A 0x7DD5 +0xBE7B 0x7DD6 +0xBE7C 0x7DD7 +0xBE7D 0x7DD8 +0xBE7E 0x7DD9 +0xBE80 0x7DDA +0xBE81 0x7DDB +0xBE82 0x7DDC +0xBE83 0x7DDD +0xBE84 0x7DDE +0xBE85 0x7DDF +0xBE86 0x7DE0 +0xBE87 0x7DE1 +0xBE88 0x7DE2 +0xBE89 0x7DE3 +0xBE8A 0x7DE4 +0xBE8B 0x7DE5 +0xBE8C 0x7DE6 +0xBE8D 0x7DE7 +0xBE8E 0x7DE8 +0xBE8F 0x7DE9 +0xBE90 0x7DEA +0xBE91 0x7DEB +0xBE92 0x7DEC +0xBE93 0x7DED +0xBE94 0x7DEE +0xBE95 0x7DEF +0xBE96 0x7DF0 +0xBE97 0x7DF1 +0xBE98 0x7DF2 +0xBE99 0x7DF3 +0xBE9A 0x7DF4 +0xBE9B 0x7DF5 +0xBE9C 0x7DF6 +0xBE9D 0x7DF7 +0xBE9E 0x7DF8 +0xBE9F 0x7DF9 +0xBEA0 0x7DFA +0xBEA1 0x5C3D +0xBEA2 0x52B2 +0xBEA3 0x8346 +0xBEA4 0x5162 +0xBEA5 0x830E +0xBEA6 0x775B +0xBEA7 0x6676 +0xBEA8 0x9CB8 +0xBEA9 0x4EAC +0xBEAA 0x60CA +0xBEAB 0x7CBE +0xBEAC 0x7CB3 +0xBEAD 0x7ECF +0xBEAE 0x4E95 +0xBEAF 0x8B66 +0xBEB0 0x666F +0xBEB1 0x9888 +0xBEB2 0x9759 +0xBEB3 0x5883 +0xBEB4 0x656C +0xBEB5 0x955C +0xBEB6 0x5F84 +0xBEB7 0x75C9 +0xBEB8 0x9756 +0xBEB9 0x7ADF +0xBEBA 0x7ADE +0xBEBB 0x51C0 +0xBEBC 0x70AF +0xBEBD 0x7A98 +0xBEBE 0x63EA +0xBEBF 0x7A76 +0xBEC0 0x7EA0 +0xBEC1 0x7396 +0xBEC2 0x97ED +0xBEC3 0x4E45 +0xBEC4 0x7078 +0xBEC5 0x4E5D +0xBEC6 0x9152 +0xBEC7 0x53A9 +0xBEC8 0x6551 +0xBEC9 0x65E7 +0xBECA 0x81FC +0xBECB 0x8205 +0xBECC 0x548E +0xBECD 0x5C31 +0xBECE 0x759A +0xBECF 0x97A0 +0xBED0 0x62D8 +0xBED1 0x72D9 +0xBED2 0x75BD +0xBED3 0x5C45 +0xBED4 0x9A79 +0xBED5 0x83CA +0xBED6 0x5C40 +0xBED7 0x5480 +0xBED8 0x77E9 +0xBED9 0x4E3E +0xBEDA 0x6CAE +0xBEDB 0x805A +0xBEDC 0x62D2 +0xBEDD 0x636E +0xBEDE 0x5DE8 +0xBEDF 0x5177 +0xBEE0 0x8DDD +0xBEE1 0x8E1E +0xBEE2 0x952F +0xBEE3 0x4FF1 +0xBEE4 0x53E5 +0xBEE5 0x60E7 +0xBEE6 0x70AC +0xBEE7 0x5267 +0xBEE8 0x6350 +0xBEE9 0x9E43 +0xBEEA 0x5A1F +0xBEEB 0x5026 +0xBEEC 0x7737 +0xBEED 0x5377 +0xBEEE 0x7EE2 +0xBEEF 0x6485 +0xBEF0 0x652B +0xBEF1 0x6289 +0xBEF2 0x6398 +0xBEF3 0x5014 +0xBEF4 0x7235 +0xBEF5 0x89C9 +0xBEF6 0x51B3 +0xBEF7 0x8BC0 +0xBEF8 0x7EDD +0xBEF9 0x5747 +0xBEFA 0x83CC +0xBEFB 0x94A7 +0xBEFC 0x519B +0xBEFD 0x541B +0xBEFE 0x5CFB +0xBF40 0x7DFB +0xBF41 0x7DFC +0xBF42 0x7DFD +0xBF43 0x7DFE +0xBF44 0x7DFF +0xBF45 0x7E00 +0xBF46 0x7E01 +0xBF47 0x7E02 +0xBF48 0x7E03 +0xBF49 0x7E04 +0xBF4A 0x7E05 +0xBF4B 0x7E06 +0xBF4C 0x7E07 +0xBF4D 0x7E08 +0xBF4E 0x7E09 +0xBF4F 0x7E0A +0xBF50 0x7E0B +0xBF51 0x7E0C +0xBF52 0x7E0D +0xBF53 0x7E0E +0xBF54 0x7E0F +0xBF55 0x7E10 +0xBF56 0x7E11 +0xBF57 0x7E12 +0xBF58 0x7E13 +0xBF59 0x7E14 +0xBF5A 0x7E15 +0xBF5B 0x7E16 +0xBF5C 0x7E17 +0xBF5D 0x7E18 +0xBF5E 0x7E19 +0xBF5F 0x7E1A +0xBF60 0x7E1B +0xBF61 0x7E1C +0xBF62 0x7E1D +0xBF63 0x7E1E +0xBF64 0x7E1F +0xBF65 0x7E20 +0xBF66 0x7E21 +0xBF67 0x7E22 +0xBF68 0x7E23 +0xBF69 0x7E24 +0xBF6A 0x7E25 +0xBF6B 0x7E26 +0xBF6C 0x7E27 +0xBF6D 0x7E28 +0xBF6E 0x7E29 +0xBF6F 0x7E2A +0xBF70 0x7E2B +0xBF71 0x7E2C +0xBF72 0x7E2D +0xBF73 0x7E2E +0xBF74 0x7E2F +0xBF75 0x7E30 +0xBF76 0x7E31 +0xBF77 0x7E32 +0xBF78 0x7E33 +0xBF79 0x7E34 +0xBF7A 0x7E35 +0xBF7B 0x7E36 +0xBF7C 0x7E37 +0xBF7D 0x7E38 +0xBF7E 0x7E39 +0xBF80 0x7E3A +0xBF81 0x7E3C +0xBF82 0x7E3D +0xBF83 0x7E3E +0xBF84 0x7E3F +0xBF85 0x7E40 +0xBF86 0x7E42 +0xBF87 0x7E43 +0xBF88 0x7E44 +0xBF89 0x7E45 +0xBF8A 0x7E46 +0xBF8B 0x7E48 +0xBF8C 0x7E49 +0xBF8D 0x7E4A +0xBF8E 0x7E4B +0xBF8F 0x7E4C +0xBF90 0x7E4D +0xBF91 0x7E4E +0xBF92 0x7E4F +0xBF93 0x7E50 +0xBF94 0x7E51 +0xBF95 0x7E52 +0xBF96 0x7E53 +0xBF97 0x7E54 +0xBF98 0x7E55 +0xBF99 0x7E56 +0xBF9A 0x7E57 +0xBF9B 0x7E58 +0xBF9C 0x7E59 +0xBF9D 0x7E5A +0xBF9E 0x7E5B +0xBF9F 0x7E5C +0xBFA0 0x7E5D +0xBFA1 0x4FCA +0xBFA2 0x7AE3 +0xBFA3 0x6D5A +0xBFA4 0x90E1 +0xBFA5 0x9A8F +0xBFA6 0x5580 +0xBFA7 0x5496 +0xBFA8 0x5361 +0xBFA9 0x54AF +0xBFAA 0x5F00 +0xBFAB 0x63E9 +0xBFAC 0x6977 +0xBFAD 0x51EF +0xBFAE 0x6168 +0xBFAF 0x520A +0xBFB0 0x582A +0xBFB1 0x52D8 +0xBFB2 0x574E +0xBFB3 0x780D +0xBFB4 0x770B +0xBFB5 0x5EB7 +0xBFB6 0x6177 +0xBFB7 0x7CE0 +0xBFB8 0x625B +0xBFB9 0x6297 +0xBFBA 0x4EA2 +0xBFBB 0x7095 +0xBFBC 0x8003 +0xBFBD 0x62F7 +0xBFBE 0x70E4 +0xBFBF 0x9760 +0xBFC0 0x5777 +0xBFC1 0x82DB +0xBFC2 0x67EF +0xBFC3 0x68F5 +0xBFC4 0x78D5 +0xBFC5 0x9897 +0xBFC6 0x79D1 +0xBFC7 0x58F3 +0xBFC8 0x54B3 +0xBFC9 0x53EF +0xBFCA 0x6E34 +0xBFCB 0x514B +0xBFCC 0x523B +0xBFCD 0x5BA2 +0xBFCE 0x8BFE +0xBFCF 0x80AF +0xBFD0 0x5543 +0xBFD1 0x57A6 +0xBFD2 0x6073 +0xBFD3 0x5751 +0xBFD4 0x542D +0xBFD5 0x7A7A +0xBFD6 0x6050 +0xBFD7 0x5B54 +0xBFD8 0x63A7 +0xBFD9 0x62A0 +0xBFDA 0x53E3 +0xBFDB 0x6263 +0xBFDC 0x5BC7 +0xBFDD 0x67AF +0xBFDE 0x54ED +0xBFDF 0x7A9F +0xBFE0 0x82E6 +0xBFE1 0x9177 +0xBFE2 0x5E93 +0xBFE3 0x88E4 +0xBFE4 0x5938 +0xBFE5 0x57AE +0xBFE6 0x630E +0xBFE7 0x8DE8 +0xBFE8 0x80EF +0xBFE9 0x5757 +0xBFEA 0x7B77 +0xBFEB 0x4FA9 +0xBFEC 0x5FEB +0xBFED 0x5BBD +0xBFEE 0x6B3E +0xBFEF 0x5321 +0xBFF0 0x7B50 +0xBFF1 0x72C2 +0xBFF2 0x6846 +0xBFF3 0x77FF +0xBFF4 0x7736 +0xBFF5 0x65F7 +0xBFF6 0x51B5 +0xBFF7 0x4E8F +0xBFF8 0x76D4 +0xBFF9 0x5CBF +0xBFFA 0x7AA5 +0xBFFB 0x8475 +0xBFFC 0x594E +0xBFFD 0x9B41 +0xBFFE 0x5080 +0xC040 0x7E5E +0xC041 0x7E5F +0xC042 0x7E60 +0xC043 0x7E61 +0xC044 0x7E62 +0xC045 0x7E63 +0xC046 0x7E64 +0xC047 0x7E65 +0xC048 0x7E66 +0xC049 0x7E67 +0xC04A 0x7E68 +0xC04B 0x7E69 +0xC04C 0x7E6A +0xC04D 0x7E6B +0xC04E 0x7E6C +0xC04F 0x7E6D +0xC050 0x7E6E +0xC051 0x7E6F +0xC052 0x7E70 +0xC053 0x7E71 +0xC054 0x7E72 +0xC055 0x7E73 +0xC056 0x7E74 +0xC057 0x7E75 +0xC058 0x7E76 +0xC059 0x7E77 +0xC05A 0x7E78 +0xC05B 0x7E79 +0xC05C 0x7E7A +0xC05D 0x7E7B +0xC05E 0x7E7C +0xC05F 0x7E7D +0xC060 0x7E7E +0xC061 0x7E7F +0xC062 0x7E80 +0xC063 0x7E81 +0xC064 0x7E83 +0xC065 0x7E84 +0xC066 0x7E85 +0xC067 0x7E86 +0xC068 0x7E87 +0xC069 0x7E88 +0xC06A 0x7E89 +0xC06B 0x7E8A +0xC06C 0x7E8B +0xC06D 0x7E8C +0xC06E 0x7E8D +0xC06F 0x7E8E +0xC070 0x7E8F +0xC071 0x7E90 +0xC072 0x7E91 +0xC073 0x7E92 +0xC074 0x7E93 +0xC075 0x7E94 +0xC076 0x7E95 +0xC077 0x7E96 +0xC078 0x7E97 +0xC079 0x7E98 +0xC07A 0x7E99 +0xC07B 0x7E9A +0xC07C 0x7E9C +0xC07D 0x7E9D +0xC07E 0x7E9E +0xC080 0x7EAE +0xC081 0x7EB4 +0xC082 0x7EBB +0xC083 0x7EBC +0xC084 0x7ED6 +0xC085 0x7EE4 +0xC086 0x7EEC +0xC087 0x7EF9 +0xC088 0x7F0A +0xC089 0x7F10 +0xC08A 0x7F1E +0xC08B 0x7F37 +0xC08C 0x7F39 +0xC08D 0x7F3B +0xC08E 0x7F3C +0xC08F 0x7F3D +0xC090 0x7F3E +0xC091 0x7F3F +0xC092 0x7F40 +0xC093 0x7F41 +0xC094 0x7F43 +0xC095 0x7F46 +0xC096 0x7F47 +0xC097 0x7F48 +0xC098 0x7F49 +0xC099 0x7F4A +0xC09A 0x7F4B +0xC09B 0x7F4C +0xC09C 0x7F4D +0xC09D 0x7F4E +0xC09E 0x7F4F +0xC09F 0x7F52 +0xC0A0 0x7F53 +0xC0A1 0x9988 +0xC0A2 0x6127 +0xC0A3 0x6E83 +0xC0A4 0x5764 +0xC0A5 0x6606 +0xC0A6 0x6346 +0xC0A7 0x56F0 +0xC0A8 0x62EC +0xC0A9 0x6269 +0xC0AA 0x5ED3 +0xC0AB 0x9614 +0xC0AC 0x5783 +0xC0AD 0x62C9 +0xC0AE 0x5587 +0xC0AF 0x8721 +0xC0B0 0x814A +0xC0B1 0x8FA3 +0xC0B2 0x5566 +0xC0B3 0x83B1 +0xC0B4 0x6765 +0xC0B5 0x8D56 +0xC0B6 0x84DD +0xC0B7 0x5A6A +0xC0B8 0x680F +0xC0B9 0x62E6 +0xC0BA 0x7BEE +0xC0BB 0x9611 +0xC0BC 0x5170 +0xC0BD 0x6F9C +0xC0BE 0x8C30 +0xC0BF 0x63FD +0xC0C0 0x89C8 +0xC0C1 0x61D2 +0xC0C2 0x7F06 +0xC0C3 0x70C2 +0xC0C4 0x6EE5 +0xC0C5 0x7405 +0xC0C6 0x6994 +0xC0C7 0x72FC +0xC0C8 0x5ECA +0xC0C9 0x90CE +0xC0CA 0x6717 +0xC0CB 0x6D6A +0xC0CC 0x635E +0xC0CD 0x52B3 +0xC0CE 0x7262 +0xC0CF 0x8001 +0xC0D0 0x4F6C +0xC0D1 0x59E5 +0xC0D2 0x916A +0xC0D3 0x70D9 +0xC0D4 0x6D9D +0xC0D5 0x52D2 +0xC0D6 0x4E50 +0xC0D7 0x96F7 +0xC0D8 0x956D +0xC0D9 0x857E +0xC0DA 0x78CA +0xC0DB 0x7D2F +0xC0DC 0x5121 +0xC0DD 0x5792 +0xC0DE 0x64C2 +0xC0DF 0x808B +0xC0E0 0x7C7B +0xC0E1 0x6CEA +0xC0E2 0x68F1 +0xC0E3 0x695E +0xC0E4 0x51B7 +0xC0E5 0x5398 +0xC0E6 0x68A8 +0xC0E7 0x7281 +0xC0E8 0x9ECE +0xC0E9 0x7BF1 +0xC0EA 0x72F8 +0xC0EB 0x79BB +0xC0EC 0x6F13 +0xC0ED 0x7406 +0xC0EE 0x674E +0xC0EF 0x91CC +0xC0F0 0x9CA4 +0xC0F1 0x793C +0xC0F2 0x8389 +0xC0F3 0x8354 +0xC0F4 0x540F +0xC0F5 0x6817 +0xC0F6 0x4E3D +0xC0F7 0x5389 +0xC0F8 0x52B1 +0xC0F9 0x783E +0xC0FA 0x5386 +0xC0FB 0x5229 +0xC0FC 0x5088 +0xC0FD 0x4F8B +0xC0FE 0x4FD0 +0xC140 0x7F56 +0xC141 0x7F59 +0xC142 0x7F5B +0xC143 0x7F5C +0xC144 0x7F5D +0xC145 0x7F5E +0xC146 0x7F60 +0xC147 0x7F63 +0xC148 0x7F64 +0xC149 0x7F65 +0xC14A 0x7F66 +0xC14B 0x7F67 +0xC14C 0x7F6B +0xC14D 0x7F6C +0xC14E 0x7F6D +0xC14F 0x7F6F +0xC150 0x7F70 +0xC151 0x7F73 +0xC152 0x7F75 +0xC153 0x7F76 +0xC154 0x7F77 +0xC155 0x7F78 +0xC156 0x7F7A +0xC157 0x7F7B +0xC158 0x7F7C +0xC159 0x7F7D +0xC15A 0x7F7F +0xC15B 0x7F80 +0xC15C 0x7F82 +0xC15D 0x7F83 +0xC15E 0x7F84 +0xC15F 0x7F85 +0xC160 0x7F86 +0xC161 0x7F87 +0xC162 0x7F88 +0xC163 0x7F89 +0xC164 0x7F8B +0xC165 0x7F8D +0xC166 0x7F8F +0xC167 0x7F90 +0xC168 0x7F91 +0xC169 0x7F92 +0xC16A 0x7F93 +0xC16B 0x7F95 +0xC16C 0x7F96 +0xC16D 0x7F97 +0xC16E 0x7F98 +0xC16F 0x7F99 +0xC170 0x7F9B +0xC171 0x7F9C +0xC172 0x7FA0 +0xC173 0x7FA2 +0xC174 0x7FA3 +0xC175 0x7FA5 +0xC176 0x7FA6 +0xC177 0x7FA8 +0xC178 0x7FA9 +0xC179 0x7FAA +0xC17A 0x7FAB +0xC17B 0x7FAC +0xC17C 0x7FAD +0xC17D 0x7FAE +0xC17E 0x7FB1 +0xC180 0x7FB3 +0xC181 0x7FB4 +0xC182 0x7FB5 +0xC183 0x7FB6 +0xC184 0x7FB7 +0xC185 0x7FBA +0xC186 0x7FBB +0xC187 0x7FBE +0xC188 0x7FC0 +0xC189 0x7FC2 +0xC18A 0x7FC3 +0xC18B 0x7FC4 +0xC18C 0x7FC6 +0xC18D 0x7FC7 +0xC18E 0x7FC8 +0xC18F 0x7FC9 +0xC190 0x7FCB +0xC191 0x7FCD +0xC192 0x7FCF +0xC193 0x7FD0 +0xC194 0x7FD1 +0xC195 0x7FD2 +0xC196 0x7FD3 +0xC197 0x7FD6 +0xC198 0x7FD7 +0xC199 0x7FD9 +0xC19A 0x7FDA +0xC19B 0x7FDB +0xC19C 0x7FDC +0xC19D 0x7FDD +0xC19E 0x7FDE +0xC19F 0x7FE2 +0xC1A0 0x7FE3 +0xC1A1 0x75E2 +0xC1A2 0x7ACB +0xC1A3 0x7C92 +0xC1A4 0x6CA5 +0xC1A5 0x96B6 +0xC1A6 0x529B +0xC1A7 0x7483 +0xC1A8 0x54E9 +0xC1A9 0x4FE9 +0xC1AA 0x8054 +0xC1AB 0x83B2 +0xC1AC 0x8FDE +0xC1AD 0x9570 +0xC1AE 0x5EC9 +0xC1AF 0x601C +0xC1B0 0x6D9F +0xC1B1 0x5E18 +0xC1B2 0x655B +0xC1B3 0x8138 +0xC1B4 0x94FE +0xC1B5 0x604B +0xC1B6 0x70BC +0xC1B7 0x7EC3 +0xC1B8 0x7CAE +0xC1B9 0x51C9 +0xC1BA 0x6881 +0xC1BB 0x7CB1 +0xC1BC 0x826F +0xC1BD 0x4E24 +0xC1BE 0x8F86 +0xC1BF 0x91CF +0xC1C0 0x667E +0xC1C1 0x4EAE +0xC1C2 0x8C05 +0xC1C3 0x64A9 +0xC1C4 0x804A +0xC1C5 0x50DA +0xC1C6 0x7597 +0xC1C7 0x71CE +0xC1C8 0x5BE5 +0xC1C9 0x8FBD +0xC1CA 0x6F66 +0xC1CB 0x4E86 +0xC1CC 0x6482 +0xC1CD 0x9563 +0xC1CE 0x5ED6 +0xC1CF 0x6599 +0xC1D0 0x5217 +0xC1D1 0x88C2 +0xC1D2 0x70C8 +0xC1D3 0x52A3 +0xC1D4 0x730E +0xC1D5 0x7433 +0xC1D6 0x6797 +0xC1D7 0x78F7 +0xC1D8 0x9716 +0xC1D9 0x4E34 +0xC1DA 0x90BB +0xC1DB 0x9CDE +0xC1DC 0x6DCB +0xC1DD 0x51DB +0xC1DE 0x8D41 +0xC1DF 0x541D +0xC1E0 0x62CE +0xC1E1 0x73B2 +0xC1E2 0x83F1 +0xC1E3 0x96F6 +0xC1E4 0x9F84 +0xC1E5 0x94C3 +0xC1E6 0x4F36 +0xC1E7 0x7F9A +0xC1E8 0x51CC +0xC1E9 0x7075 +0xC1EA 0x9675 +0xC1EB 0x5CAD +0xC1EC 0x9886 +0xC1ED 0x53E6 +0xC1EE 0x4EE4 +0xC1EF 0x6E9C +0xC1F0 0x7409 +0xC1F1 0x69B4 +0xC1F2 0x786B +0xC1F3 0x998F +0xC1F4 0x7559 +0xC1F5 0x5218 +0xC1F6 0x7624 +0xC1F7 0x6D41 +0xC1F8 0x67F3 +0xC1F9 0x516D +0xC1FA 0x9F99 +0xC1FB 0x804B +0xC1FC 0x5499 +0xC1FD 0x7B3C +0xC1FE 0x7ABF +0xC240 0x7FE4 +0xC241 0x7FE7 +0xC242 0x7FE8 +0xC243 0x7FEA +0xC244 0x7FEB +0xC245 0x7FEC +0xC246 0x7FED +0xC247 0x7FEF +0xC248 0x7FF2 +0xC249 0x7FF4 +0xC24A 0x7FF5 +0xC24B 0x7FF6 +0xC24C 0x7FF7 +0xC24D 0x7FF8 +0xC24E 0x7FF9 +0xC24F 0x7FFA +0xC250 0x7FFD +0xC251 0x7FFE +0xC252 0x7FFF +0xC253 0x8002 +0xC254 0x8007 +0xC255 0x8008 +0xC256 0x8009 +0xC257 0x800A +0xC258 0x800E +0xC259 0x800F +0xC25A 0x8011 +0xC25B 0x8013 +0xC25C 0x801A +0xC25D 0x801B +0xC25E 0x801D +0xC25F 0x801E +0xC260 0x801F +0xC261 0x8021 +0xC262 0x8023 +0xC263 0x8024 +0xC264 0x802B +0xC265 0x802C +0xC266 0x802D +0xC267 0x802E +0xC268 0x802F +0xC269 0x8030 +0xC26A 0x8032 +0xC26B 0x8034 +0xC26C 0x8039 +0xC26D 0x803A +0xC26E 0x803C +0xC26F 0x803E +0xC270 0x8040 +0xC271 0x8041 +0xC272 0x8044 +0xC273 0x8045 +0xC274 0x8047 +0xC275 0x8048 +0xC276 0x8049 +0xC277 0x804E +0xC278 0x804F +0xC279 0x8050 +0xC27A 0x8051 +0xC27B 0x8053 +0xC27C 0x8055 +0xC27D 0x8056 +0xC27E 0x8057 +0xC280 0x8059 +0xC281 0x805B +0xC282 0x805C +0xC283 0x805D +0xC284 0x805E +0xC285 0x805F +0xC286 0x8060 +0xC287 0x8061 +0xC288 0x8062 +0xC289 0x8063 +0xC28A 0x8064 +0xC28B 0x8065 +0xC28C 0x8066 +0xC28D 0x8067 +0xC28E 0x8068 +0xC28F 0x806B +0xC290 0x806C +0xC291 0x806D +0xC292 0x806E +0xC293 0x806F +0xC294 0x8070 +0xC295 0x8072 +0xC296 0x8073 +0xC297 0x8074 +0xC298 0x8075 +0xC299 0x8076 +0xC29A 0x8077 +0xC29B 0x8078 +0xC29C 0x8079 +0xC29D 0x807A +0xC29E 0x807B +0xC29F 0x807C +0xC2A0 0x807D +0xC2A1 0x9686 +0xC2A2 0x5784 +0xC2A3 0x62E2 +0xC2A4 0x9647 +0xC2A5 0x697C +0xC2A6 0x5A04 +0xC2A7 0x6402 +0xC2A8 0x7BD3 +0xC2A9 0x6F0F +0xC2AA 0x964B +0xC2AB 0x82A6 +0xC2AC 0x5362 +0xC2AD 0x9885 +0xC2AE 0x5E90 +0xC2AF 0x7089 +0xC2B0 0x63B3 +0xC2B1 0x5364 +0xC2B2 0x864F +0xC2B3 0x9C81 +0xC2B4 0x9E93 +0xC2B5 0x788C +0xC2B6 0x9732 +0xC2B7 0x8DEF +0xC2B8 0x8D42 +0xC2B9 0x9E7F +0xC2BA 0x6F5E +0xC2BB 0x7984 +0xC2BC 0x5F55 +0xC2BD 0x9646 +0xC2BE 0x622E +0xC2BF 0x9A74 +0xC2C0 0x5415 +0xC2C1 0x94DD +0xC2C2 0x4FA3 +0xC2C3 0x65C5 +0xC2C4 0x5C65 +0xC2C5 0x5C61 +0xC2C6 0x7F15 +0xC2C7 0x8651 +0xC2C8 0x6C2F +0xC2C9 0x5F8B +0xC2CA 0x7387 +0xC2CB 0x6EE4 +0xC2CC 0x7EFF +0xC2CD 0x5CE6 +0xC2CE 0x631B +0xC2CF 0x5B6A +0xC2D0 0x6EE6 +0xC2D1 0x5375 +0xC2D2 0x4E71 +0xC2D3 0x63A0 +0xC2D4 0x7565 +0xC2D5 0x62A1 +0xC2D6 0x8F6E +0xC2D7 0x4F26 +0xC2D8 0x4ED1 +0xC2D9 0x6CA6 +0xC2DA 0x7EB6 +0xC2DB 0x8BBA +0xC2DC 0x841D +0xC2DD 0x87BA +0xC2DE 0x7F57 +0xC2DF 0x903B +0xC2E0 0x9523 +0xC2E1 0x7BA9 +0xC2E2 0x9AA1 +0xC2E3 0x88F8 +0xC2E4 0x843D +0xC2E5 0x6D1B +0xC2E6 0x9A86 +0xC2E7 0x7EDC +0xC2E8 0x5988 +0xC2E9 0x9EBB +0xC2EA 0x739B +0xC2EB 0x7801 +0xC2EC 0x8682 +0xC2ED 0x9A6C +0xC2EE 0x9A82 +0xC2EF 0x561B +0xC2F0 0x5417 +0xC2F1 0x57CB +0xC2F2 0x4E70 +0xC2F3 0x9EA6 +0xC2F4 0x5356 +0xC2F5 0x8FC8 +0xC2F6 0x8109 +0xC2F7 0x7792 +0xC2F8 0x9992 +0xC2F9 0x86EE +0xC2FA 0x6EE1 +0xC2FB 0x8513 +0xC2FC 0x66FC +0xC2FD 0x6162 +0xC2FE 0x6F2B +0xC340 0x807E +0xC341 0x8081 +0xC342 0x8082 +0xC343 0x8085 +0xC344 0x8088 +0xC345 0x808A +0xC346 0x808D +0xC347 0x808E +0xC348 0x808F +0xC349 0x8090 +0xC34A 0x8091 +0xC34B 0x8092 +0xC34C 0x8094 +0xC34D 0x8095 +0xC34E 0x8097 +0xC34F 0x8099 +0xC350 0x809E +0xC351 0x80A3 +0xC352 0x80A6 +0xC353 0x80A7 +0xC354 0x80A8 +0xC355 0x80AC +0xC356 0x80B0 +0xC357 0x80B3 +0xC358 0x80B5 +0xC359 0x80B6 +0xC35A 0x80B8 +0xC35B 0x80B9 +0xC35C 0x80BB +0xC35D 0x80C5 +0xC35E 0x80C7 +0xC35F 0x80C8 +0xC360 0x80C9 +0xC361 0x80CA +0xC362 0x80CB +0xC363 0x80CF +0xC364 0x80D0 +0xC365 0x80D1 +0xC366 0x80D2 +0xC367 0x80D3 +0xC368 0x80D4 +0xC369 0x80D5 +0xC36A 0x80D8 +0xC36B 0x80DF +0xC36C 0x80E0 +0xC36D 0x80E2 +0xC36E 0x80E3 +0xC36F 0x80E6 +0xC370 0x80EE +0xC371 0x80F5 +0xC372 0x80F7 +0xC373 0x80F9 +0xC374 0x80FB +0xC375 0x80FE +0xC376 0x80FF +0xC377 0x8100 +0xC378 0x8101 +0xC379 0x8103 +0xC37A 0x8104 +0xC37B 0x8105 +0xC37C 0x8107 +0xC37D 0x8108 +0xC37E 0x810B +0xC380 0x810C +0xC381 0x8115 +0xC382 0x8117 +0xC383 0x8119 +0xC384 0x811B +0xC385 0x811C +0xC386 0x811D +0xC387 0x811F +0xC388 0x8120 +0xC389 0x8121 +0xC38A 0x8122 +0xC38B 0x8123 +0xC38C 0x8124 +0xC38D 0x8125 +0xC38E 0x8126 +0xC38F 0x8127 +0xC390 0x8128 +0xC391 0x8129 +0xC392 0x812A +0xC393 0x812B +0xC394 0x812D +0xC395 0x812E +0xC396 0x8130 +0xC397 0x8133 +0xC398 0x8134 +0xC399 0x8135 +0xC39A 0x8137 +0xC39B 0x8139 +0xC39C 0x813A +0xC39D 0x813B +0xC39E 0x813C +0xC39F 0x813D +0xC3A0 0x813F +0xC3A1 0x8C29 +0xC3A2 0x8292 +0xC3A3 0x832B +0xC3A4 0x76F2 +0xC3A5 0x6C13 +0xC3A6 0x5FD9 +0xC3A7 0x83BD +0xC3A8 0x732B +0xC3A9 0x8305 +0xC3AA 0x951A +0xC3AB 0x6BDB +0xC3AC 0x77DB +0xC3AD 0x94C6 +0xC3AE 0x536F +0xC3AF 0x8302 +0xC3B0 0x5192 +0xC3B1 0x5E3D +0xC3B2 0x8C8C +0xC3B3 0x8D38 +0xC3B4 0x4E48 +0xC3B5 0x73AB +0xC3B6 0x679A +0xC3B7 0x6885 +0xC3B8 0x9176 +0xC3B9 0x9709 +0xC3BA 0x7164 +0xC3BB 0x6CA1 +0xC3BC 0x7709 +0xC3BD 0x5A92 +0xC3BE 0x9541 +0xC3BF 0x6BCF +0xC3C0 0x7F8E +0xC3C1 0x6627 +0xC3C2 0x5BD0 +0xC3C3 0x59B9 +0xC3C4 0x5A9A +0xC3C5 0x95E8 +0xC3C6 0x95F7 +0xC3C7 0x4EEC +0xC3C8 0x840C +0xC3C9 0x8499 +0xC3CA 0x6AAC +0xC3CB 0x76DF +0xC3CC 0x9530 +0xC3CD 0x731B +0xC3CE 0x68A6 +0xC3CF 0x5B5F +0xC3D0 0x772F +0xC3D1 0x919A +0xC3D2 0x9761 +0xC3D3 0x7CDC +0xC3D4 0x8FF7 +0xC3D5 0x8C1C +0xC3D6 0x5F25 +0xC3D7 0x7C73 +0xC3D8 0x79D8 +0xC3D9 0x89C5 +0xC3DA 0x6CCC +0xC3DB 0x871C +0xC3DC 0x5BC6 +0xC3DD 0x5E42 +0xC3DE 0x68C9 +0xC3DF 0x7720 +0xC3E0 0x7EF5 +0xC3E1 0x5195 +0xC3E2 0x514D +0xC3E3 0x52C9 +0xC3E4 0x5A29 +0xC3E5 0x7F05 +0xC3E6 0x9762 +0xC3E7 0x82D7 +0xC3E8 0x63CF +0xC3E9 0x7784 +0xC3EA 0x85D0 +0xC3EB 0x79D2 +0xC3EC 0x6E3A +0xC3ED 0x5E99 +0xC3EE 0x5999 +0xC3EF 0x8511 +0xC3F0 0x706D +0xC3F1 0x6C11 +0xC3F2 0x62BF +0xC3F3 0x76BF +0xC3F4 0x654F +0xC3F5 0x60AF +0xC3F6 0x95FD +0xC3F7 0x660E +0xC3F8 0x879F +0xC3F9 0x9E23 +0xC3FA 0x94ED +0xC3FB 0x540D +0xC3FC 0x547D +0xC3FD 0x8C2C +0xC3FE 0x6478 +0xC440 0x8140 +0xC441 0x8141 +0xC442 0x8142 +0xC443 0x8143 +0xC444 0x8144 +0xC445 0x8145 +0xC446 0x8147 +0xC447 0x8149 +0xC448 0x814D +0xC449 0x814E +0xC44A 0x814F +0xC44B 0x8152 +0xC44C 0x8156 +0xC44D 0x8157 +0xC44E 0x8158 +0xC44F 0x815B +0xC450 0x815C +0xC451 0x815D +0xC452 0x815E +0xC453 0x815F +0xC454 0x8161 +0xC455 0x8162 +0xC456 0x8163 +0xC457 0x8164 +0xC458 0x8166 +0xC459 0x8168 +0xC45A 0x816A +0xC45B 0x816B +0xC45C 0x816C +0xC45D 0x816F +0xC45E 0x8172 +0xC45F 0x8173 +0xC460 0x8175 +0xC461 0x8176 +0xC462 0x8177 +0xC463 0x8178 +0xC464 0x8181 +0xC465 0x8183 +0xC466 0x8184 +0xC467 0x8185 +0xC468 0x8186 +0xC469 0x8187 +0xC46A 0x8189 +0xC46B 0x818B +0xC46C 0x818C +0xC46D 0x818D +0xC46E 0x818E +0xC46F 0x8190 +0xC470 0x8192 +0xC471 0x8193 +0xC472 0x8194 +0xC473 0x8195 +0xC474 0x8196 +0xC475 0x8197 +0xC476 0x8199 +0xC477 0x819A +0xC478 0x819E +0xC479 0x819F +0xC47A 0x81A0 +0xC47B 0x81A1 +0xC47C 0x81A2 +0xC47D 0x81A4 +0xC47E 0x81A5 +0xC480 0x81A7 +0xC481 0x81A9 +0xC482 0x81AB +0xC483 0x81AC +0xC484 0x81AD +0xC485 0x81AE +0xC486 0x81AF +0xC487 0x81B0 +0xC488 0x81B1 +0xC489 0x81B2 +0xC48A 0x81B4 +0xC48B 0x81B5 +0xC48C 0x81B6 +0xC48D 0x81B7 +0xC48E 0x81B8 +0xC48F 0x81B9 +0xC490 0x81BC +0xC491 0x81BD +0xC492 0x81BE +0xC493 0x81BF +0xC494 0x81C4 +0xC495 0x81C5 +0xC496 0x81C7 +0xC497 0x81C8 +0xC498 0x81C9 +0xC499 0x81CB +0xC49A 0x81CD +0xC49B 0x81CE +0xC49C 0x81CF +0xC49D 0x81D0 +0xC49E 0x81D1 +0xC49F 0x81D2 +0xC4A0 0x81D3 +0xC4A1 0x6479 +0xC4A2 0x8611 +0xC4A3 0x6A21 +0xC4A4 0x819C +0xC4A5 0x78E8 +0xC4A6 0x6469 +0xC4A7 0x9B54 +0xC4A8 0x62B9 +0xC4A9 0x672B +0xC4AA 0x83AB +0xC4AB 0x58A8 +0xC4AC 0x9ED8 +0xC4AD 0x6CAB +0xC4AE 0x6F20 +0xC4AF 0x5BDE +0xC4B0 0x964C +0xC4B1 0x8C0B +0xC4B2 0x725F +0xC4B3 0x67D0 +0xC4B4 0x62C7 +0xC4B5 0x7261 +0xC4B6 0x4EA9 +0xC4B7 0x59C6 +0xC4B8 0x6BCD +0xC4B9 0x5893 +0xC4BA 0x66AE +0xC4BB 0x5E55 +0xC4BC 0x52DF +0xC4BD 0x6155 +0xC4BE 0x6728 +0xC4BF 0x76EE +0xC4C0 0x7766 +0xC4C1 0x7267 +0xC4C2 0x7A46 +0xC4C3 0x62FF +0xC4C4 0x54EA +0xC4C5 0x5450 +0xC4C6 0x94A0 +0xC4C7 0x90A3 +0xC4C8 0x5A1C +0xC4C9 0x7EB3 +0xC4CA 0x6C16 +0xC4CB 0x4E43 +0xC4CC 0x5976 +0xC4CD 0x8010 +0xC4CE 0x5948 +0xC4CF 0x5357 +0xC4D0 0x7537 +0xC4D1 0x96BE +0xC4D2 0x56CA +0xC4D3 0x6320 +0xC4D4 0x8111 +0xC4D5 0x607C +0xC4D6 0x95F9 +0xC4D7 0x6DD6 +0xC4D8 0x5462 +0xC4D9 0x9981 +0xC4DA 0x5185 +0xC4DB 0x5AE9 +0xC4DC 0x80FD +0xC4DD 0x59AE +0xC4DE 0x9713 +0xC4DF 0x502A +0xC4E0 0x6CE5 +0xC4E1 0x5C3C +0xC4E2 0x62DF +0xC4E3 0x4F60 +0xC4E4 0x533F +0xC4E5 0x817B +0xC4E6 0x9006 +0xC4E7 0x6EBA +0xC4E8 0x852B +0xC4E9 0x62C8 +0xC4EA 0x5E74 +0xC4EB 0x78BE +0xC4EC 0x64B5 +0xC4ED 0x637B +0xC4EE 0x5FF5 +0xC4EF 0x5A18 +0xC4F0 0x917F +0xC4F1 0x9E1F +0xC4F2 0x5C3F +0xC4F3 0x634F +0xC4F4 0x8042 +0xC4F5 0x5B7D +0xC4F6 0x556E +0xC4F7 0x954A +0xC4F8 0x954D +0xC4F9 0x6D85 +0xC4FA 0x60A8 +0xC4FB 0x67E0 +0xC4FC 0x72DE +0xC4FD 0x51DD +0xC4FE 0x5B81 +0xC540 0x81D4 +0xC541 0x81D5 +0xC542 0x81D6 +0xC543 0x81D7 +0xC544 0x81D8 +0xC545 0x81D9 +0xC546 0x81DA +0xC547 0x81DB +0xC548 0x81DC +0xC549 0x81DD +0xC54A 0x81DE +0xC54B 0x81DF +0xC54C 0x81E0 +0xC54D 0x81E1 +0xC54E 0x81E2 +0xC54F 0x81E4 +0xC550 0x81E5 +0xC551 0x81E6 +0xC552 0x81E8 +0xC553 0x81E9 +0xC554 0x81EB +0xC555 0x81EE +0xC556 0x81EF +0xC557 0x81F0 +0xC558 0x81F1 +0xC559 0x81F2 +0xC55A 0x81F5 +0xC55B 0x81F6 +0xC55C 0x81F7 +0xC55D 0x81F8 +0xC55E 0x81F9 +0xC55F 0x81FA +0xC560 0x81FD +0xC561 0x81FF +0xC562 0x8203 +0xC563 0x8207 +0xC564 0x8208 +0xC565 0x8209 +0xC566 0x820A +0xC567 0x820B +0xC568 0x820E +0xC569 0x820F +0xC56A 0x8211 +0xC56B 0x8213 +0xC56C 0x8215 +0xC56D 0x8216 +0xC56E 0x8217 +0xC56F 0x8218 +0xC570 0x8219 +0xC571 0x821A +0xC572 0x821D +0xC573 0x8220 +0xC574 0x8224 +0xC575 0x8225 +0xC576 0x8226 +0xC577 0x8227 +0xC578 0x8229 +0xC579 0x822E +0xC57A 0x8232 +0xC57B 0x823A +0xC57C 0x823C +0xC57D 0x823D +0xC57E 0x823F +0xC580 0x8240 +0xC581 0x8241 +0xC582 0x8242 +0xC583 0x8243 +0xC584 0x8245 +0xC585 0x8246 +0xC586 0x8248 +0xC587 0x824A +0xC588 0x824C +0xC589 0x824D +0xC58A 0x824E +0xC58B 0x8250 +0xC58C 0x8251 +0xC58D 0x8252 +0xC58E 0x8253 +0xC58F 0x8254 +0xC590 0x8255 +0xC591 0x8256 +0xC592 0x8257 +0xC593 0x8259 +0xC594 0x825B +0xC595 0x825C +0xC596 0x825D +0xC597 0x825E +0xC598 0x8260 +0xC599 0x8261 +0xC59A 0x8262 +0xC59B 0x8263 +0xC59C 0x8264 +0xC59D 0x8265 +0xC59E 0x8266 +0xC59F 0x8267 +0xC5A0 0x8269 +0xC5A1 0x62E7 +0xC5A2 0x6CDE +0xC5A3 0x725B +0xC5A4 0x626D +0xC5A5 0x94AE +0xC5A6 0x7EBD +0xC5A7 0x8113 +0xC5A8 0x6D53 +0xC5A9 0x519C +0xC5AA 0x5F04 +0xC5AB 0x5974 +0xC5AC 0x52AA +0xC5AD 0x6012 +0xC5AE 0x5973 +0xC5AF 0x6696 +0xC5B0 0x8650 +0xC5B1 0x759F +0xC5B2 0x632A +0xC5B3 0x61E6 +0xC5B4 0x7CEF +0xC5B5 0x8BFA +0xC5B6 0x54E6 +0xC5B7 0x6B27 +0xC5B8 0x9E25 +0xC5B9 0x6BB4 +0xC5BA 0x85D5 +0xC5BB 0x5455 +0xC5BC 0x5076 +0xC5BD 0x6CA4 +0xC5BE 0x556A +0xC5BF 0x8DB4 +0xC5C0 0x722C +0xC5C1 0x5E15 +0xC5C2 0x6015 +0xC5C3 0x7436 +0xC5C4 0x62CD +0xC5C5 0x6392 +0xC5C6 0x724C +0xC5C7 0x5F98 +0xC5C8 0x6E43 +0xC5C9 0x6D3E +0xC5CA 0x6500 +0xC5CB 0x6F58 +0xC5CC 0x76D8 +0xC5CD 0x78D0 +0xC5CE 0x76FC +0xC5CF 0x7554 +0xC5D0 0x5224 +0xC5D1 0x53DB +0xC5D2 0x4E53 +0xC5D3 0x5E9E +0xC5D4 0x65C1 +0xC5D5 0x802A +0xC5D6 0x80D6 +0xC5D7 0x629B +0xC5D8 0x5486 +0xC5D9 0x5228 +0xC5DA 0x70AE +0xC5DB 0x888D +0xC5DC 0x8DD1 +0xC5DD 0x6CE1 +0xC5DE 0x5478 +0xC5DF 0x80DA +0xC5E0 0x57F9 +0xC5E1 0x88F4 +0xC5E2 0x8D54 +0xC5E3 0x966A +0xC5E4 0x914D +0xC5E5 0x4F69 +0xC5E6 0x6C9B +0xC5E7 0x55B7 +0xC5E8 0x76C6 +0xC5E9 0x7830 +0xC5EA 0x62A8 +0xC5EB 0x70F9 +0xC5EC 0x6F8E +0xC5ED 0x5F6D +0xC5EE 0x84EC +0xC5EF 0x68DA +0xC5F0 0x787C +0xC5F1 0x7BF7 +0xC5F2 0x81A8 +0xC5F3 0x670B +0xC5F4 0x9E4F +0xC5F5 0x6367 +0xC5F6 0x78B0 +0xC5F7 0x576F +0xC5F8 0x7812 +0xC5F9 0x9739 +0xC5FA 0x6279 +0xC5FB 0x62AB +0xC5FC 0x5288 +0xC5FD 0x7435 +0xC5FE 0x6BD7 +0xC640 0x826A +0xC641 0x826B +0xC642 0x826C +0xC643 0x826D +0xC644 0x8271 +0xC645 0x8275 +0xC646 0x8276 +0xC647 0x8277 +0xC648 0x8278 +0xC649 0x827B +0xC64A 0x827C +0xC64B 0x8280 +0xC64C 0x8281 +0xC64D 0x8283 +0xC64E 0x8285 +0xC64F 0x8286 +0xC650 0x8287 +0xC651 0x8289 +0xC652 0x828C +0xC653 0x8290 +0xC654 0x8293 +0xC655 0x8294 +0xC656 0x8295 +0xC657 0x8296 +0xC658 0x829A +0xC659 0x829B +0xC65A 0x829E +0xC65B 0x82A0 +0xC65C 0x82A2 +0xC65D 0x82A3 +0xC65E 0x82A7 +0xC65F 0x82B2 +0xC660 0x82B5 +0xC661 0x82B6 +0xC662 0x82BA +0xC663 0x82BB +0xC664 0x82BC +0xC665 0x82BF +0xC666 0x82C0 +0xC667 0x82C2 +0xC668 0x82C3 +0xC669 0x82C5 +0xC66A 0x82C6 +0xC66B 0x82C9 +0xC66C 0x82D0 +0xC66D 0x82D6 +0xC66E 0x82D9 +0xC66F 0x82DA +0xC670 0x82DD +0xC671 0x82E2 +0xC672 0x82E7 +0xC673 0x82E8 +0xC674 0x82E9 +0xC675 0x82EA +0xC676 0x82EC +0xC677 0x82ED +0xC678 0x82EE +0xC679 0x82F0 +0xC67A 0x82F2 +0xC67B 0x82F3 +0xC67C 0x82F5 +0xC67D 0x82F6 +0xC67E 0x82F8 +0xC680 0x82FA +0xC681 0x82FC +0xC682 0x82FD +0xC683 0x82FE +0xC684 0x82FF +0xC685 0x8300 +0xC686 0x830A +0xC687 0x830B +0xC688 0x830D +0xC689 0x8310 +0xC68A 0x8312 +0xC68B 0x8313 +0xC68C 0x8316 +0xC68D 0x8318 +0xC68E 0x8319 +0xC68F 0x831D +0xC690 0x831E +0xC691 0x831F +0xC692 0x8320 +0xC693 0x8321 +0xC694 0x8322 +0xC695 0x8323 +0xC696 0x8324 +0xC697 0x8325 +0xC698 0x8326 +0xC699 0x8329 +0xC69A 0x832A +0xC69B 0x832E +0xC69C 0x8330 +0xC69D 0x8332 +0xC69E 0x8337 +0xC69F 0x833B +0xC6A0 0x833D +0xC6A1 0x5564 +0xC6A2 0x813E +0xC6A3 0x75B2 +0xC6A4 0x76AE +0xC6A5 0x5339 +0xC6A6 0x75DE +0xC6A7 0x50FB +0xC6A8 0x5C41 +0xC6A9 0x8B6C +0xC6AA 0x7BC7 +0xC6AB 0x504F +0xC6AC 0x7247 +0xC6AD 0x9A97 +0xC6AE 0x98D8 +0xC6AF 0x6F02 +0xC6B0 0x74E2 +0xC6B1 0x7968 +0xC6B2 0x6487 +0xC6B3 0x77A5 +0xC6B4 0x62FC +0xC6B5 0x9891 +0xC6B6 0x8D2B +0xC6B7 0x54C1 +0xC6B8 0x8058 +0xC6B9 0x4E52 +0xC6BA 0x576A +0xC6BB 0x82F9 +0xC6BC 0x840D +0xC6BD 0x5E73 +0xC6BE 0x51ED +0xC6BF 0x74F6 +0xC6C0 0x8BC4 +0xC6C1 0x5C4F +0xC6C2 0x5761 +0xC6C3 0x6CFC +0xC6C4 0x9887 +0xC6C5 0x5A46 +0xC6C6 0x7834 +0xC6C7 0x9B44 +0xC6C8 0x8FEB +0xC6C9 0x7C95 +0xC6CA 0x5256 +0xC6CB 0x6251 +0xC6CC 0x94FA +0xC6CD 0x4EC6 +0xC6CE 0x8386 +0xC6CF 0x8461 +0xC6D0 0x83E9 +0xC6D1 0x84B2 +0xC6D2 0x57D4 +0xC6D3 0x6734 +0xC6D4 0x5703 +0xC6D5 0x666E +0xC6D6 0x6D66 +0xC6D7 0x8C31 +0xC6D8 0x66DD +0xC6D9 0x7011 +0xC6DA 0x671F +0xC6DB 0x6B3A +0xC6DC 0x6816 +0xC6DD 0x621A +0xC6DE 0x59BB +0xC6DF 0x4E03 +0xC6E0 0x51C4 +0xC6E1 0x6F06 +0xC6E2 0x67D2 +0xC6E3 0x6C8F +0xC6E4 0x5176 +0xC6E5 0x68CB +0xC6E6 0x5947 +0xC6E7 0x6B67 +0xC6E8 0x7566 +0xC6E9 0x5D0E +0xC6EA 0x8110 +0xC6EB 0x9F50 +0xC6EC 0x65D7 +0xC6ED 0x7948 +0xC6EE 0x7941 +0xC6EF 0x9A91 +0xC6F0 0x8D77 +0xC6F1 0x5C82 +0xC6F2 0x4E5E +0xC6F3 0x4F01 +0xC6F4 0x542F +0xC6F5 0x5951 +0xC6F6 0x780C +0xC6F7 0x5668 +0xC6F8 0x6C14 +0xC6F9 0x8FC4 +0xC6FA 0x5F03 +0xC6FB 0x6C7D +0xC6FC 0x6CE3 +0xC6FD 0x8BAB +0xC6FE 0x6390 +0xC740 0x833E +0xC741 0x833F +0xC742 0x8341 +0xC743 0x8342 +0xC744 0x8344 +0xC745 0x8345 +0xC746 0x8348 +0xC747 0x834A +0xC748 0x834B +0xC749 0x834C +0xC74A 0x834D +0xC74B 0x834E +0xC74C 0x8353 +0xC74D 0x8355 +0xC74E 0x8356 +0xC74F 0x8357 +0xC750 0x8358 +0xC751 0x8359 +0xC752 0x835D +0xC753 0x8362 +0xC754 0x8370 +0xC755 0x8371 +0xC756 0x8372 +0xC757 0x8373 +0xC758 0x8374 +0xC759 0x8375 +0xC75A 0x8376 +0xC75B 0x8379 +0xC75C 0x837A +0xC75D 0x837E +0xC75E 0x837F +0xC75F 0x8380 +0xC760 0x8381 +0xC761 0x8382 +0xC762 0x8383 +0xC763 0x8384 +0xC764 0x8387 +0xC765 0x8388 +0xC766 0x838A +0xC767 0x838B +0xC768 0x838C +0xC769 0x838D +0xC76A 0x838F +0xC76B 0x8390 +0xC76C 0x8391 +0xC76D 0x8394 +0xC76E 0x8395 +0xC76F 0x8396 +0xC770 0x8397 +0xC771 0x8399 +0xC772 0x839A +0xC773 0x839D +0xC774 0x839F +0xC775 0x83A1 +0xC776 0x83A2 +0xC777 0x83A3 +0xC778 0x83A4 +0xC779 0x83A5 +0xC77A 0x83A6 +0xC77B 0x83A7 +0xC77C 0x83AC +0xC77D 0x83AD +0xC77E 0x83AE +0xC780 0x83AF +0xC781 0x83B5 +0xC782 0x83BB +0xC783 0x83BE +0xC784 0x83BF +0xC785 0x83C2 +0xC786 0x83C3 +0xC787 0x83C4 +0xC788 0x83C6 +0xC789 0x83C8 +0xC78A 0x83C9 +0xC78B 0x83CB +0xC78C 0x83CD +0xC78D 0x83CE +0xC78E 0x83D0 +0xC78F 0x83D1 +0xC790 0x83D2 +0xC791 0x83D3 +0xC792 0x83D5 +0xC793 0x83D7 +0xC794 0x83D9 +0xC795 0x83DA +0xC796 0x83DB +0xC797 0x83DE +0xC798 0x83E2 +0xC799 0x83E3 +0xC79A 0x83E4 +0xC79B 0x83E6 +0xC79C 0x83E7 +0xC79D 0x83E8 +0xC79E 0x83EB +0xC79F 0x83EC +0xC7A0 0x83ED +0xC7A1 0x6070 +0xC7A2 0x6D3D +0xC7A3 0x7275 +0xC7A4 0x6266 +0xC7A5 0x948E +0xC7A6 0x94C5 +0xC7A7 0x5343 +0xC7A8 0x8FC1 +0xC7A9 0x7B7E +0xC7AA 0x4EDF +0xC7AB 0x8C26 +0xC7AC 0x4E7E +0xC7AD 0x9ED4 +0xC7AE 0x94B1 +0xC7AF 0x94B3 +0xC7B0 0x524D +0xC7B1 0x6F5C +0xC7B2 0x9063 +0xC7B3 0x6D45 +0xC7B4 0x8C34 +0xC7B5 0x5811 +0xC7B6 0x5D4C +0xC7B7 0x6B20 +0xC7B8 0x6B49 +0xC7B9 0x67AA +0xC7BA 0x545B +0xC7BB 0x8154 +0xC7BC 0x7F8C +0xC7BD 0x5899 +0xC7BE 0x8537 +0xC7BF 0x5F3A +0xC7C0 0x62A2 +0xC7C1 0x6A47 +0xC7C2 0x9539 +0xC7C3 0x6572 +0xC7C4 0x6084 +0xC7C5 0x6865 +0xC7C6 0x77A7 +0xC7C7 0x4E54 +0xC7C8 0x4FA8 +0xC7C9 0x5DE7 +0xC7CA 0x9798 +0xC7CB 0x64AC +0xC7CC 0x7FD8 +0xC7CD 0x5CED +0xC7CE 0x4FCF +0xC7CF 0x7A8D +0xC7D0 0x5207 +0xC7D1 0x8304 +0xC7D2 0x4E14 +0xC7D3 0x602F +0xC7D4 0x7A83 +0xC7D5 0x94A6 +0xC7D6 0x4FB5 +0xC7D7 0x4EB2 +0xC7D8 0x79E6 +0xC7D9 0x7434 +0xC7DA 0x52E4 +0xC7DB 0x82B9 +0xC7DC 0x64D2 +0xC7DD 0x79BD +0xC7DE 0x5BDD +0xC7DF 0x6C81 +0xC7E0 0x9752 +0xC7E1 0x8F7B +0xC7E2 0x6C22 +0xC7E3 0x503E +0xC7E4 0x537F +0xC7E5 0x6E05 +0xC7E6 0x64CE +0xC7E7 0x6674 +0xC7E8 0x6C30 +0xC7E9 0x60C5 +0xC7EA 0x9877 +0xC7EB 0x8BF7 +0xC7EC 0x5E86 +0xC7ED 0x743C +0xC7EE 0x7A77 +0xC7EF 0x79CB +0xC7F0 0x4E18 +0xC7F1 0x90B1 +0xC7F2 0x7403 +0xC7F3 0x6C42 +0xC7F4 0x56DA +0xC7F5 0x914B +0xC7F6 0x6CC5 +0xC7F7 0x8D8B +0xC7F8 0x533A +0xC7F9 0x86C6 +0xC7FA 0x66F2 +0xC7FB 0x8EAF +0xC7FC 0x5C48 +0xC7FD 0x9A71 +0xC7FE 0x6E20 +0xC840 0x83EE +0xC841 0x83EF +0xC842 0x83F3 +0xC843 0x83F4 +0xC844 0x83F5 +0xC845 0x83F6 +0xC846 0x83F7 +0xC847 0x83FA +0xC848 0x83FB +0xC849 0x83FC +0xC84A 0x83FE +0xC84B 0x83FF +0xC84C 0x8400 +0xC84D 0x8402 +0xC84E 0x8405 +0xC84F 0x8407 +0xC850 0x8408 +0xC851 0x8409 +0xC852 0x840A +0xC853 0x8410 +0xC854 0x8412 +0xC855 0x8413 +0xC856 0x8414 +0xC857 0x8415 +0xC858 0x8416 +0xC859 0x8417 +0xC85A 0x8419 +0xC85B 0x841A +0xC85C 0x841B +0xC85D 0x841E +0xC85E 0x841F +0xC85F 0x8420 +0xC860 0x8421 +0xC861 0x8422 +0xC862 0x8423 +0xC863 0x8429 +0xC864 0x842A +0xC865 0x842B +0xC866 0x842C +0xC867 0x842D +0xC868 0x842E +0xC869 0x842F +0xC86A 0x8430 +0xC86B 0x8432 +0xC86C 0x8433 +0xC86D 0x8434 +0xC86E 0x8435 +0xC86F 0x8436 +0xC870 0x8437 +0xC871 0x8439 +0xC872 0x843A +0xC873 0x843B +0xC874 0x843E +0xC875 0x843F +0xC876 0x8440 +0xC877 0x8441 +0xC878 0x8442 +0xC879 0x8443 +0xC87A 0x8444 +0xC87B 0x8445 +0xC87C 0x8447 +0xC87D 0x8448 +0xC87E 0x8449 +0xC880 0x844A +0xC881 0x844B +0xC882 0x844C +0xC883 0x844D +0xC884 0x844E +0xC885 0x844F +0xC886 0x8450 +0xC887 0x8452 +0xC888 0x8453 +0xC889 0x8454 +0xC88A 0x8455 +0xC88B 0x8456 +0xC88C 0x8458 +0xC88D 0x845D +0xC88E 0x845E +0xC88F 0x845F +0xC890 0x8460 +0xC891 0x8462 +0xC892 0x8464 +0xC893 0x8465 +0xC894 0x8466 +0xC895 0x8467 +0xC896 0x8468 +0xC897 0x846A +0xC898 0x846E +0xC899 0x846F +0xC89A 0x8470 +0xC89B 0x8472 +0xC89C 0x8474 +0xC89D 0x8477 +0xC89E 0x8479 +0xC89F 0x847B +0xC8A0 0x847C +0xC8A1 0x53D6 +0xC8A2 0x5A36 +0xC8A3 0x9F8B +0xC8A4 0x8DA3 +0xC8A5 0x53BB +0xC8A6 0x5708 +0xC8A7 0x98A7 +0xC8A8 0x6743 +0xC8A9 0x919B +0xC8AA 0x6CC9 +0xC8AB 0x5168 +0xC8AC 0x75CA +0xC8AD 0x62F3 +0xC8AE 0x72AC +0xC8AF 0x5238 +0xC8B0 0x529D +0xC8B1 0x7F3A +0xC8B2 0x7094 +0xC8B3 0x7638 +0xC8B4 0x5374 +0xC8B5 0x9E4A +0xC8B6 0x69B7 +0xC8B7 0x786E +0xC8B8 0x96C0 +0xC8B9 0x88D9 +0xC8BA 0x7FA4 +0xC8BB 0x7136 +0xC8BC 0x71C3 +0xC8BD 0x5189 +0xC8BE 0x67D3 +0xC8BF 0x74E4 +0xC8C0 0x58E4 +0xC8C1 0x6518 +0xC8C2 0x56B7 +0xC8C3 0x8BA9 +0xC8C4 0x9976 +0xC8C5 0x6270 +0xC8C6 0x7ED5 +0xC8C7 0x60F9 +0xC8C8 0x70ED +0xC8C9 0x58EC +0xC8CA 0x4EC1 +0xC8CB 0x4EBA +0xC8CC 0x5FCD +0xC8CD 0x97E7 +0xC8CE 0x4EFB +0xC8CF 0x8BA4 +0xC8D0 0x5203 +0xC8D1 0x598A +0xC8D2 0x7EAB +0xC8D3 0x6254 +0xC8D4 0x4ECD +0xC8D5 0x65E5 +0xC8D6 0x620E +0xC8D7 0x8338 +0xC8D8 0x84C9 +0xC8D9 0x8363 +0xC8DA 0x878D +0xC8DB 0x7194 +0xC8DC 0x6EB6 +0xC8DD 0x5BB9 +0xC8DE 0x7ED2 +0xC8DF 0x5197 +0xC8E0 0x63C9 +0xC8E1 0x67D4 +0xC8E2 0x8089 +0xC8E3 0x8339 +0xC8E4 0x8815 +0xC8E5 0x5112 +0xC8E6 0x5B7A +0xC8E7 0x5982 +0xC8E8 0x8FB1 +0xC8E9 0x4E73 +0xC8EA 0x6C5D +0xC8EB 0x5165 +0xC8EC 0x8925 +0xC8ED 0x8F6F +0xC8EE 0x962E +0xC8EF 0x854A +0xC8F0 0x745E +0xC8F1 0x9510 +0xC8F2 0x95F0 +0xC8F3 0x6DA6 +0xC8F4 0x82E5 +0xC8F5 0x5F31 +0xC8F6 0x6492 +0xC8F7 0x6D12 +0xC8F8 0x8428 +0xC8F9 0x816E +0xC8FA 0x9CC3 +0xC8FB 0x585E +0xC8FC 0x8D5B +0xC8FD 0x4E09 +0xC8FE 0x53C1 +0xC940 0x847D +0xC941 0x847E +0xC942 0x847F +0xC943 0x8480 +0xC944 0x8481 +0xC945 0x8483 +0xC946 0x8484 +0xC947 0x8485 +0xC948 0x8486 +0xC949 0x848A +0xC94A 0x848D +0xC94B 0x848F +0xC94C 0x8490 +0xC94D 0x8491 +0xC94E 0x8492 +0xC94F 0x8493 +0xC950 0x8494 +0xC951 0x8495 +0xC952 0x8496 +0xC953 0x8498 +0xC954 0x849A +0xC955 0x849B +0xC956 0x849D +0xC957 0x849E +0xC958 0x849F +0xC959 0x84A0 +0xC95A 0x84A2 +0xC95B 0x84A3 +0xC95C 0x84A4 +0xC95D 0x84A5 +0xC95E 0x84A6 +0xC95F 0x84A7 +0xC960 0x84A8 +0xC961 0x84A9 +0xC962 0x84AA +0xC963 0x84AB +0xC964 0x84AC +0xC965 0x84AD +0xC966 0x84AE +0xC967 0x84B0 +0xC968 0x84B1 +0xC969 0x84B3 +0xC96A 0x84B5 +0xC96B 0x84B6 +0xC96C 0x84B7 +0xC96D 0x84BB +0xC96E 0x84BC +0xC96F 0x84BE +0xC970 0x84C0 +0xC971 0x84C2 +0xC972 0x84C3 +0xC973 0x84C5 +0xC974 0x84C6 +0xC975 0x84C7 +0xC976 0x84C8 +0xC977 0x84CB +0xC978 0x84CC +0xC979 0x84CE +0xC97A 0x84CF +0xC97B 0x84D2 +0xC97C 0x84D4 +0xC97D 0x84D5 +0xC97E 0x84D7 +0xC980 0x84D8 +0xC981 0x84D9 +0xC982 0x84DA +0xC983 0x84DB +0xC984 0x84DC +0xC985 0x84DE +0xC986 0x84E1 +0xC987 0x84E2 +0xC988 0x84E4 +0xC989 0x84E7 +0xC98A 0x84E8 +0xC98B 0x84E9 +0xC98C 0x84EA +0xC98D 0x84EB +0xC98E 0x84ED +0xC98F 0x84EE +0xC990 0x84EF +0xC991 0x84F1 +0xC992 0x84F2 +0xC993 0x84F3 +0xC994 0x84F4 +0xC995 0x84F5 +0xC996 0x84F6 +0xC997 0x84F7 +0xC998 0x84F8 +0xC999 0x84F9 +0xC99A 0x84FA +0xC99B 0x84FB +0xC99C 0x84FD +0xC99D 0x84FE +0xC99E 0x8500 +0xC99F 0x8501 +0xC9A0 0x8502 +0xC9A1 0x4F1E +0xC9A2 0x6563 +0xC9A3 0x6851 +0xC9A4 0x55D3 +0xC9A5 0x4E27 +0xC9A6 0x6414 +0xC9A7 0x9A9A +0xC9A8 0x626B +0xC9A9 0x5AC2 +0xC9AA 0x745F +0xC9AB 0x8272 +0xC9AC 0x6DA9 +0xC9AD 0x68EE +0xC9AE 0x50E7 +0xC9AF 0x838E +0xC9B0 0x7802 +0xC9B1 0x6740 +0xC9B2 0x5239 +0xC9B3 0x6C99 +0xC9B4 0x7EB1 +0xC9B5 0x50BB +0xC9B6 0x5565 +0xC9B7 0x715E +0xC9B8 0x7B5B +0xC9B9 0x6652 +0xC9BA 0x73CA +0xC9BB 0x82EB +0xC9BC 0x6749 +0xC9BD 0x5C71 +0xC9BE 0x5220 +0xC9BF 0x717D +0xC9C0 0x886B +0xC9C1 0x95EA +0xC9C2 0x9655 +0xC9C3 0x64C5 +0xC9C4 0x8D61 +0xC9C5 0x81B3 +0xC9C6 0x5584 +0xC9C7 0x6C55 +0xC9C8 0x6247 +0xC9C9 0x7F2E +0xC9CA 0x5892 +0xC9CB 0x4F24 +0xC9CC 0x5546 +0xC9CD 0x8D4F +0xC9CE 0x664C +0xC9CF 0x4E0A +0xC9D0 0x5C1A +0xC9D1 0x88F3 +0xC9D2 0x68A2 +0xC9D3 0x634E +0xC9D4 0x7A0D +0xC9D5 0x70E7 +0xC9D6 0x828D +0xC9D7 0x52FA +0xC9D8 0x97F6 +0xC9D9 0x5C11 +0xC9DA 0x54E8 +0xC9DB 0x90B5 +0xC9DC 0x7ECD +0xC9DD 0x5962 +0xC9DE 0x8D4A +0xC9DF 0x86C7 +0xC9E0 0x820C +0xC9E1 0x820D +0xC9E2 0x8D66 +0xC9E3 0x6444 +0xC9E4 0x5C04 +0xC9E5 0x6151 +0xC9E6 0x6D89 +0xC9E7 0x793E +0xC9E8 0x8BBE +0xC9E9 0x7837 +0xC9EA 0x7533 +0xC9EB 0x547B +0xC9EC 0x4F38 +0xC9ED 0x8EAB +0xC9EE 0x6DF1 +0xC9EF 0x5A20 +0xC9F0 0x7EC5 +0xC9F1 0x795E +0xC9F2 0x6C88 +0xC9F3 0x5BA1 +0xC9F4 0x5A76 +0xC9F5 0x751A +0xC9F6 0x80BE +0xC9F7 0x614E +0xC9F8 0x6E17 +0xC9F9 0x58F0 +0xC9FA 0x751F +0xC9FB 0x7525 +0xC9FC 0x7272 +0xC9FD 0x5347 +0xC9FE 0x7EF3 +0xCA40 0x8503 +0xCA41 0x8504 +0xCA42 0x8505 +0xCA43 0x8506 +0xCA44 0x8507 +0xCA45 0x8508 +0xCA46 0x8509 +0xCA47 0x850A +0xCA48 0x850B +0xCA49 0x850D +0xCA4A 0x850E +0xCA4B 0x850F +0xCA4C 0x8510 +0xCA4D 0x8512 +0xCA4E 0x8514 +0xCA4F 0x8515 +0xCA50 0x8516 +0xCA51 0x8518 +0xCA52 0x8519 +0xCA53 0x851B +0xCA54 0x851C +0xCA55 0x851D +0xCA56 0x851E +0xCA57 0x8520 +0xCA58 0x8522 +0xCA59 0x8523 +0xCA5A 0x8524 +0xCA5B 0x8525 +0xCA5C 0x8526 +0xCA5D 0x8527 +0xCA5E 0x8528 +0xCA5F 0x8529 +0xCA60 0x852A +0xCA61 0x852D +0xCA62 0x852E +0xCA63 0x852F +0xCA64 0x8530 +0xCA65 0x8531 +0xCA66 0x8532 +0xCA67 0x8533 +0xCA68 0x8534 +0xCA69 0x8535 +0xCA6A 0x8536 +0xCA6B 0x853E +0xCA6C 0x853F +0xCA6D 0x8540 +0xCA6E 0x8541 +0xCA6F 0x8542 +0xCA70 0x8544 +0xCA71 0x8545 +0xCA72 0x8546 +0xCA73 0x8547 +0xCA74 0x854B +0xCA75 0x854C +0xCA76 0x854D +0xCA77 0x854E +0xCA78 0x854F +0xCA79 0x8550 +0xCA7A 0x8551 +0xCA7B 0x8552 +0xCA7C 0x8553 +0xCA7D 0x8554 +0xCA7E 0x8555 +0xCA80 0x8557 +0xCA81 0x8558 +0xCA82 0x855A +0xCA83 0x855B +0xCA84 0x855C +0xCA85 0x855D +0xCA86 0x855F +0xCA87 0x8560 +0xCA88 0x8561 +0xCA89 0x8562 +0xCA8A 0x8563 +0xCA8B 0x8565 +0xCA8C 0x8566 +0xCA8D 0x8567 +0xCA8E 0x8569 +0xCA8F 0x856A +0xCA90 0x856B +0xCA91 0x856C +0xCA92 0x856D +0xCA93 0x856E +0xCA94 0x856F +0xCA95 0x8570 +0xCA96 0x8571 +0xCA97 0x8573 +0xCA98 0x8575 +0xCA99 0x8576 +0xCA9A 0x8577 +0xCA9B 0x8578 +0xCA9C 0x857C +0xCA9D 0x857D +0xCA9E 0x857F +0xCA9F 0x8580 +0xCAA0 0x8581 +0xCAA1 0x7701 +0xCAA2 0x76DB +0xCAA3 0x5269 +0xCAA4 0x80DC +0xCAA5 0x5723 +0xCAA6 0x5E08 +0xCAA7 0x5931 +0xCAA8 0x72EE +0xCAA9 0x65BD +0xCAAA 0x6E7F +0xCAAB 0x8BD7 +0xCAAC 0x5C38 +0xCAAD 0x8671 +0xCAAE 0x5341 +0xCAAF 0x77F3 +0xCAB0 0x62FE +0xCAB1 0x65F6 +0xCAB2 0x4EC0 +0xCAB3 0x98DF +0xCAB4 0x8680 +0xCAB5 0x5B9E +0xCAB6 0x8BC6 +0xCAB7 0x53F2 +0xCAB8 0x77E2 +0xCAB9 0x4F7F +0xCABA 0x5C4E +0xCABB 0x9A76 +0xCABC 0x59CB +0xCABD 0x5F0F +0xCABE 0x793A +0xCABF 0x58EB +0xCAC0 0x4E16 +0xCAC1 0x67FF +0xCAC2 0x4E8B +0xCAC3 0x62ED +0xCAC4 0x8A93 +0xCAC5 0x901D +0xCAC6 0x52BF +0xCAC7 0x662F +0xCAC8 0x55DC +0xCAC9 0x566C +0xCACA 0x9002 +0xCACB 0x4ED5 +0xCACC 0x4F8D +0xCACD 0x91CA +0xCACE 0x9970 +0xCACF 0x6C0F +0xCAD0 0x5E02 +0xCAD1 0x6043 +0xCAD2 0x5BA4 +0xCAD3 0x89C6 +0xCAD4 0x8BD5 +0xCAD5 0x6536 +0xCAD6 0x624B +0xCAD7 0x9996 +0xCAD8 0x5B88 +0xCAD9 0x5BFF +0xCADA 0x6388 +0xCADB 0x552E +0xCADC 0x53D7 +0xCADD 0x7626 +0xCADE 0x517D +0xCADF 0x852C +0xCAE0 0x67A2 +0xCAE1 0x68B3 +0xCAE2 0x6B8A +0xCAE3 0x6292 +0xCAE4 0x8F93 +0xCAE5 0x53D4 +0xCAE6 0x8212 +0xCAE7 0x6DD1 +0xCAE8 0x758F +0xCAE9 0x4E66 +0xCAEA 0x8D4E +0xCAEB 0x5B70 +0xCAEC 0x719F +0xCAED 0x85AF +0xCAEE 0x6691 +0xCAEF 0x66D9 +0xCAF0 0x7F72 +0xCAF1 0x8700 +0xCAF2 0x9ECD +0xCAF3 0x9F20 +0xCAF4 0x5C5E +0xCAF5 0x672F +0xCAF6 0x8FF0 +0xCAF7 0x6811 +0xCAF8 0x675F +0xCAF9 0x620D +0xCAFA 0x7AD6 +0xCAFB 0x5885 +0xCAFC 0x5EB6 +0xCAFD 0x6570 +0xCAFE 0x6F31 +0xCB40 0x8582 +0xCB41 0x8583 +0xCB42 0x8586 +0xCB43 0x8588 +0xCB44 0x8589 +0xCB45 0x858A +0xCB46 0x858B +0xCB47 0x858C +0xCB48 0x858D +0xCB49 0x858E +0xCB4A 0x8590 +0xCB4B 0x8591 +0xCB4C 0x8592 +0xCB4D 0x8593 +0xCB4E 0x8594 +0xCB4F 0x8595 +0xCB50 0x8596 +0xCB51 0x8597 +0xCB52 0x8598 +0xCB53 0x8599 +0xCB54 0x859A +0xCB55 0x859D +0xCB56 0x859E +0xCB57 0x859F +0xCB58 0x85A0 +0xCB59 0x85A1 +0xCB5A 0x85A2 +0xCB5B 0x85A3 +0xCB5C 0x85A5 +0xCB5D 0x85A6 +0xCB5E 0x85A7 +0xCB5F 0x85A9 +0xCB60 0x85AB +0xCB61 0x85AC +0xCB62 0x85AD +0xCB63 0x85B1 +0xCB64 0x85B2 +0xCB65 0x85B3 +0xCB66 0x85B4 +0xCB67 0x85B5 +0xCB68 0x85B6 +0xCB69 0x85B8 +0xCB6A 0x85BA +0xCB6B 0x85BB +0xCB6C 0x85BC +0xCB6D 0x85BD +0xCB6E 0x85BE +0xCB6F 0x85BF +0xCB70 0x85C0 +0xCB71 0x85C2 +0xCB72 0x85C3 +0xCB73 0x85C4 +0xCB74 0x85C5 +0xCB75 0x85C6 +0xCB76 0x85C7 +0xCB77 0x85C8 +0xCB78 0x85CA +0xCB79 0x85CB +0xCB7A 0x85CC +0xCB7B 0x85CD +0xCB7C 0x85CE +0xCB7D 0x85D1 +0xCB7E 0x85D2 +0xCB80 0x85D4 +0xCB81 0x85D6 +0xCB82 0x85D7 +0xCB83 0x85D8 +0xCB84 0x85D9 +0xCB85 0x85DA +0xCB86 0x85DB +0xCB87 0x85DD +0xCB88 0x85DE +0xCB89 0x85DF +0xCB8A 0x85E0 +0xCB8B 0x85E1 +0xCB8C 0x85E2 +0xCB8D 0x85E3 +0xCB8E 0x85E5 +0xCB8F 0x85E6 +0xCB90 0x85E7 +0xCB91 0x85E8 +0xCB92 0x85EA +0xCB93 0x85EB +0xCB94 0x85EC +0xCB95 0x85ED +0xCB96 0x85EE +0xCB97 0x85EF +0xCB98 0x85F0 +0xCB99 0x85F1 +0xCB9A 0x85F2 +0xCB9B 0x85F3 +0xCB9C 0x85F4 +0xCB9D 0x85F5 +0xCB9E 0x85F6 +0xCB9F 0x85F7 +0xCBA0 0x85F8 +0xCBA1 0x6055 +0xCBA2 0x5237 +0xCBA3 0x800D +0xCBA4 0x6454 +0xCBA5 0x8870 +0xCBA6 0x7529 +0xCBA7 0x5E05 +0xCBA8 0x6813 +0xCBA9 0x62F4 +0xCBAA 0x971C +0xCBAB 0x53CC +0xCBAC 0x723D +0xCBAD 0x8C01 +0xCBAE 0x6C34 +0xCBAF 0x7761 +0xCBB0 0x7A0E +0xCBB1 0x542E +0xCBB2 0x77AC +0xCBB3 0x987A +0xCBB4 0x821C +0xCBB5 0x8BF4 +0xCBB6 0x7855 +0xCBB7 0x6714 +0xCBB8 0x70C1 +0xCBB9 0x65AF +0xCBBA 0x6495 +0xCBBB 0x5636 +0xCBBC 0x601D +0xCBBD 0x79C1 +0xCBBE 0x53F8 +0xCBBF 0x4E1D +0xCBC0 0x6B7B +0xCBC1 0x8086 +0xCBC2 0x5BFA +0xCBC3 0x55E3 +0xCBC4 0x56DB +0xCBC5 0x4F3A +0xCBC6 0x4F3C +0xCBC7 0x9972 +0xCBC8 0x5DF3 +0xCBC9 0x677E +0xCBCA 0x8038 +0xCBCB 0x6002 +0xCBCC 0x9882 +0xCBCD 0x9001 +0xCBCE 0x5B8B +0xCBCF 0x8BBC +0xCBD0 0x8BF5 +0xCBD1 0x641C +0xCBD2 0x8258 +0xCBD3 0x64DE +0xCBD4 0x55FD +0xCBD5 0x82CF +0xCBD6 0x9165 +0xCBD7 0x4FD7 +0xCBD8 0x7D20 +0xCBD9 0x901F +0xCBDA 0x7C9F +0xCBDB 0x50F3 +0xCBDC 0x5851 +0xCBDD 0x6EAF +0xCBDE 0x5BBF +0xCBDF 0x8BC9 +0xCBE0 0x8083 +0xCBE1 0x9178 +0xCBE2 0x849C +0xCBE3 0x7B97 +0xCBE4 0x867D +0xCBE5 0x968B +0xCBE6 0x968F +0xCBE7 0x7EE5 +0xCBE8 0x9AD3 +0xCBE9 0x788E +0xCBEA 0x5C81 +0xCBEB 0x7A57 +0xCBEC 0x9042 +0xCBED 0x96A7 +0xCBEE 0x795F +0xCBEF 0x5B59 +0xCBF0 0x635F +0xCBF1 0x7B0B +0xCBF2 0x84D1 +0xCBF3 0x68AD +0xCBF4 0x5506 +0xCBF5 0x7F29 +0xCBF6 0x7410 +0xCBF7 0x7D22 +0xCBF8 0x9501 +0xCBF9 0x6240 +0xCBFA 0x584C +0xCBFB 0x4ED6 +0xCBFC 0x5B83 +0xCBFD 0x5979 +0xCBFE 0x5854 +0xCC40 0x85F9 +0xCC41 0x85FA +0xCC42 0x85FC +0xCC43 0x85FD +0xCC44 0x85FE +0xCC45 0x8600 +0xCC46 0x8601 +0xCC47 0x8602 +0xCC48 0x8603 +0xCC49 0x8604 +0xCC4A 0x8606 +0xCC4B 0x8607 +0xCC4C 0x8608 +0xCC4D 0x8609 +0xCC4E 0x860A +0xCC4F 0x860B +0xCC50 0x860C +0xCC51 0x860D +0xCC52 0x860E +0xCC53 0x860F +0xCC54 0x8610 +0xCC55 0x8612 +0xCC56 0x8613 +0xCC57 0x8614 +0xCC58 0x8615 +0xCC59 0x8617 +0xCC5A 0x8618 +0xCC5B 0x8619 +0xCC5C 0x861A +0xCC5D 0x861B +0xCC5E 0x861C +0xCC5F 0x861D +0xCC60 0x861E +0xCC61 0x861F +0xCC62 0x8620 +0xCC63 0x8621 +0xCC64 0x8622 +0xCC65 0x8623 +0xCC66 0x8624 +0xCC67 0x8625 +0xCC68 0x8626 +0xCC69 0x8628 +0xCC6A 0x862A +0xCC6B 0x862B +0xCC6C 0x862C +0xCC6D 0x862D +0xCC6E 0x862E +0xCC6F 0x862F +0xCC70 0x8630 +0xCC71 0x8631 +0xCC72 0x8632 +0xCC73 0x8633 +0xCC74 0x8634 +0xCC75 0x8635 +0xCC76 0x8636 +0xCC77 0x8637 +0xCC78 0x8639 +0xCC79 0x863A +0xCC7A 0x863B +0xCC7B 0x863D +0xCC7C 0x863E +0xCC7D 0x863F +0xCC7E 0x8640 +0xCC80 0x8641 +0xCC81 0x8642 +0xCC82 0x8643 +0xCC83 0x8644 +0xCC84 0x8645 +0xCC85 0x8646 +0xCC86 0x8647 +0xCC87 0x8648 +0xCC88 0x8649 +0xCC89 0x864A +0xCC8A 0x864B +0xCC8B 0x864C +0xCC8C 0x8652 +0xCC8D 0x8653 +0xCC8E 0x8655 +0xCC8F 0x8656 +0xCC90 0x8657 +0xCC91 0x8658 +0xCC92 0x8659 +0xCC93 0x865B +0xCC94 0x865C +0xCC95 0x865D +0xCC96 0x865F +0xCC97 0x8660 +0xCC98 0x8661 +0xCC99 0x8663 +0xCC9A 0x8664 +0xCC9B 0x8665 +0xCC9C 0x8666 +0xCC9D 0x8667 +0xCC9E 0x8668 +0xCC9F 0x8669 +0xCCA0 0x866A +0xCCA1 0x736D +0xCCA2 0x631E +0xCCA3 0x8E4B +0xCCA4 0x8E0F +0xCCA5 0x80CE +0xCCA6 0x82D4 +0xCCA7 0x62AC +0xCCA8 0x53F0 +0xCCA9 0x6CF0 +0xCCAA 0x915E +0xCCAB 0x592A +0xCCAC 0x6001 +0xCCAD 0x6C70 +0xCCAE 0x574D +0xCCAF 0x644A +0xCCB0 0x8D2A +0xCCB1 0x762B +0xCCB2 0x6EE9 +0xCCB3 0x575B +0xCCB4 0x6A80 +0xCCB5 0x75F0 +0xCCB6 0x6F6D +0xCCB7 0x8C2D +0xCCB8 0x8C08 +0xCCB9 0x5766 +0xCCBA 0x6BEF +0xCCBB 0x8892 +0xCCBC 0x78B3 +0xCCBD 0x63A2 +0xCCBE 0x53F9 +0xCCBF 0x70AD +0xCCC0 0x6C64 +0xCCC1 0x5858 +0xCCC2 0x642A +0xCCC3 0x5802 +0xCCC4 0x68E0 +0xCCC5 0x819B +0xCCC6 0x5510 +0xCCC7 0x7CD6 +0xCCC8 0x5018 +0xCCC9 0x8EBA +0xCCCA 0x6DCC +0xCCCB 0x8D9F +0xCCCC 0x70EB +0xCCCD 0x638F +0xCCCE 0x6D9B +0xCCCF 0x6ED4 +0xCCD0 0x7EE6 +0xCCD1 0x8404 +0xCCD2 0x6843 +0xCCD3 0x9003 +0xCCD4 0x6DD8 +0xCCD5 0x9676 +0xCCD6 0x8BA8 +0xCCD7 0x5957 +0xCCD8 0x7279 +0xCCD9 0x85E4 +0xCCDA 0x817E +0xCCDB 0x75BC +0xCCDC 0x8A8A +0xCCDD 0x68AF +0xCCDE 0x5254 +0xCCDF 0x8E22 +0xCCE0 0x9511 +0xCCE1 0x63D0 +0xCCE2 0x9898 +0xCCE3 0x8E44 +0xCCE4 0x557C +0xCCE5 0x4F53 +0xCCE6 0x66FF +0xCCE7 0x568F +0xCCE8 0x60D5 +0xCCE9 0x6D95 +0xCCEA 0x5243 +0xCCEB 0x5C49 +0xCCEC 0x5929 +0xCCED 0x6DFB +0xCCEE 0x586B +0xCCEF 0x7530 +0xCCF0 0x751C +0xCCF1 0x606C +0xCCF2 0x8214 +0xCCF3 0x8146 +0xCCF4 0x6311 +0xCCF5 0x6761 +0xCCF6 0x8FE2 +0xCCF7 0x773A +0xCCF8 0x8DF3 +0xCCF9 0x8D34 +0xCCFA 0x94C1 +0xCCFB 0x5E16 +0xCCFC 0x5385 +0xCCFD 0x542C +0xCCFE 0x70C3 +0xCD40 0x866D +0xCD41 0x866F +0xCD42 0x8670 +0xCD43 0x8672 +0xCD44 0x8673 +0xCD45 0x8674 +0xCD46 0x8675 +0xCD47 0x8676 +0xCD48 0x8677 +0xCD49 0x8678 +0xCD4A 0x8683 +0xCD4B 0x8684 +0xCD4C 0x8685 +0xCD4D 0x8686 +0xCD4E 0x8687 +0xCD4F 0x8688 +0xCD50 0x8689 +0xCD51 0x868E +0xCD52 0x868F +0xCD53 0x8690 +0xCD54 0x8691 +0xCD55 0x8692 +0xCD56 0x8694 +0xCD57 0x8696 +0xCD58 0x8697 +0xCD59 0x8698 +0xCD5A 0x8699 +0xCD5B 0x869A +0xCD5C 0x869B +0xCD5D 0x869E +0xCD5E 0x869F +0xCD5F 0x86A0 +0xCD60 0x86A1 +0xCD61 0x86A2 +0xCD62 0x86A5 +0xCD63 0x86A6 +0xCD64 0x86AB +0xCD65 0x86AD +0xCD66 0x86AE +0xCD67 0x86B2 +0xCD68 0x86B3 +0xCD69 0x86B7 +0xCD6A 0x86B8 +0xCD6B 0x86B9 +0xCD6C 0x86BB +0xCD6D 0x86BC +0xCD6E 0x86BD +0xCD6F 0x86BE +0xCD70 0x86BF +0xCD71 0x86C1 +0xCD72 0x86C2 +0xCD73 0x86C3 +0xCD74 0x86C5 +0xCD75 0x86C8 +0xCD76 0x86CC +0xCD77 0x86CD +0xCD78 0x86D2 +0xCD79 0x86D3 +0xCD7A 0x86D5 +0xCD7B 0x86D6 +0xCD7C 0x86D7 +0xCD7D 0x86DA +0xCD7E 0x86DC +0xCD80 0x86DD +0xCD81 0x86E0 +0xCD82 0x86E1 +0xCD83 0x86E2 +0xCD84 0x86E3 +0xCD85 0x86E5 +0xCD86 0x86E6 +0xCD87 0x86E7 +0xCD88 0x86E8 +0xCD89 0x86EA +0xCD8A 0x86EB +0xCD8B 0x86EC +0xCD8C 0x86EF +0xCD8D 0x86F5 +0xCD8E 0x86F6 +0xCD8F 0x86F7 +0xCD90 0x86FA +0xCD91 0x86FB +0xCD92 0x86FC +0xCD93 0x86FD +0xCD94 0x86FF +0xCD95 0x8701 +0xCD96 0x8704 +0xCD97 0x8705 +0xCD98 0x8706 +0xCD99 0x870B +0xCD9A 0x870C +0xCD9B 0x870E +0xCD9C 0x870F +0xCD9D 0x8710 +0xCD9E 0x8711 +0xCD9F 0x8714 +0xCDA0 0x8716 +0xCDA1 0x6C40 +0xCDA2 0x5EF7 +0xCDA3 0x505C +0xCDA4 0x4EAD +0xCDA5 0x5EAD +0xCDA6 0x633A +0xCDA7 0x8247 +0xCDA8 0x901A +0xCDA9 0x6850 +0xCDAA 0x916E +0xCDAB 0x77B3 +0xCDAC 0x540C +0xCDAD 0x94DC +0xCDAE 0x5F64 +0xCDAF 0x7AE5 +0xCDB0 0x6876 +0xCDB1 0x6345 +0xCDB2 0x7B52 +0xCDB3 0x7EDF +0xCDB4 0x75DB +0xCDB5 0x5077 +0xCDB6 0x6295 +0xCDB7 0x5934 +0xCDB8 0x900F +0xCDB9 0x51F8 +0xCDBA 0x79C3 +0xCDBB 0x7A81 +0xCDBC 0x56FE +0xCDBD 0x5F92 +0xCDBE 0x9014 +0xCDBF 0x6D82 +0xCDC0 0x5C60 +0xCDC1 0x571F +0xCDC2 0x5410 +0xCDC3 0x5154 +0xCDC4 0x6E4D +0xCDC5 0x56E2 +0xCDC6 0x63A8 +0xCDC7 0x9893 +0xCDC8 0x817F +0xCDC9 0x8715 +0xCDCA 0x892A +0xCDCB 0x9000 +0xCDCC 0x541E +0xCDCD 0x5C6F +0xCDCE 0x81C0 +0xCDCF 0x62D6 +0xCDD0 0x6258 +0xCDD1 0x8131 +0xCDD2 0x9E35 +0xCDD3 0x9640 +0xCDD4 0x9A6E +0xCDD5 0x9A7C +0xCDD6 0x692D +0xCDD7 0x59A5 +0xCDD8 0x62D3 +0xCDD9 0x553E +0xCDDA 0x6316 +0xCDDB 0x54C7 +0xCDDC 0x86D9 +0xCDDD 0x6D3C +0xCDDE 0x5A03 +0xCDDF 0x74E6 +0xCDE0 0x889C +0xCDE1 0x6B6A +0xCDE2 0x5916 +0xCDE3 0x8C4C +0xCDE4 0x5F2F +0xCDE5 0x6E7E +0xCDE6 0x73A9 +0xCDE7 0x987D +0xCDE8 0x4E38 +0xCDE9 0x70F7 +0xCDEA 0x5B8C +0xCDEB 0x7897 +0xCDEC 0x633D +0xCDED 0x665A +0xCDEE 0x7696 +0xCDEF 0x60CB +0xCDF0 0x5B9B +0xCDF1 0x5A49 +0xCDF2 0x4E07 +0xCDF3 0x8155 +0xCDF4 0x6C6A +0xCDF5 0x738B +0xCDF6 0x4EA1 +0xCDF7 0x6789 +0xCDF8 0x7F51 +0xCDF9 0x5F80 +0xCDFA 0x65FA +0xCDFB 0x671B +0xCDFC 0x5FD8 +0xCDFD 0x5984 +0xCDFE 0x5A01 +0xCE40 0x8719 +0xCE41 0x871B +0xCE42 0x871D +0xCE43 0x871F +0xCE44 0x8720 +0xCE45 0x8724 +0xCE46 0x8726 +0xCE47 0x8727 +0xCE48 0x8728 +0xCE49 0x872A +0xCE4A 0x872B +0xCE4B 0x872C +0xCE4C 0x872D +0xCE4D 0x872F +0xCE4E 0x8730 +0xCE4F 0x8732 +0xCE50 0x8733 +0xCE51 0x8735 +0xCE52 0x8736 +0xCE53 0x8738 +0xCE54 0x8739 +0xCE55 0x873A +0xCE56 0x873C +0xCE57 0x873D +0xCE58 0x8740 +0xCE59 0x8741 +0xCE5A 0x8742 +0xCE5B 0x8743 +0xCE5C 0x8744 +0xCE5D 0x8745 +0xCE5E 0x8746 +0xCE5F 0x874A +0xCE60 0x874B +0xCE61 0x874D +0xCE62 0x874F +0xCE63 0x8750 +0xCE64 0x8751 +0xCE65 0x8752 +0xCE66 0x8754 +0xCE67 0x8755 +0xCE68 0x8756 +0xCE69 0x8758 +0xCE6A 0x875A +0xCE6B 0x875B +0xCE6C 0x875C +0xCE6D 0x875D +0xCE6E 0x875E +0xCE6F 0x875F +0xCE70 0x8761 +0xCE71 0x8762 +0xCE72 0x8766 +0xCE73 0x8767 +0xCE74 0x8768 +0xCE75 0x8769 +0xCE76 0x876A +0xCE77 0x876B +0xCE78 0x876C +0xCE79 0x876D +0xCE7A 0x876F +0xCE7B 0x8771 +0xCE7C 0x8772 +0xCE7D 0x8773 +0xCE7E 0x8775 +0xCE80 0x8777 +0xCE81 0x8778 +0xCE82 0x8779 +0xCE83 0x877A +0xCE84 0x877F +0xCE85 0x8780 +0xCE86 0x8781 +0xCE87 0x8784 +0xCE88 0x8786 +0xCE89 0x8787 +0xCE8A 0x8789 +0xCE8B 0x878A +0xCE8C 0x878C +0xCE8D 0x878E +0xCE8E 0x878F +0xCE8F 0x8790 +0xCE90 0x8791 +0xCE91 0x8792 +0xCE92 0x8794 +0xCE93 0x8795 +0xCE94 0x8796 +0xCE95 0x8798 +0xCE96 0x8799 +0xCE97 0x879A +0xCE98 0x879B +0xCE99 0x879C +0xCE9A 0x879D +0xCE9B 0x879E +0xCE9C 0x87A0 +0xCE9D 0x87A1 +0xCE9E 0x87A2 +0xCE9F 0x87A3 +0xCEA0 0x87A4 +0xCEA1 0x5DCD +0xCEA2 0x5FAE +0xCEA3 0x5371 +0xCEA4 0x97E6 +0xCEA5 0x8FDD +0xCEA6 0x6845 +0xCEA7 0x56F4 +0xCEA8 0x552F +0xCEA9 0x60DF +0xCEAA 0x4E3A +0xCEAB 0x6F4D +0xCEAC 0x7EF4 +0xCEAD 0x82C7 +0xCEAE 0x840E +0xCEAF 0x59D4 +0xCEB0 0x4F1F +0xCEB1 0x4F2A +0xCEB2 0x5C3E +0xCEB3 0x7EAC +0xCEB4 0x672A +0xCEB5 0x851A +0xCEB6 0x5473 +0xCEB7 0x754F +0xCEB8 0x80C3 +0xCEB9 0x5582 +0xCEBA 0x9B4F +0xCEBB 0x4F4D +0xCEBC 0x6E2D +0xCEBD 0x8C13 +0xCEBE 0x5C09 +0xCEBF 0x6170 +0xCEC0 0x536B +0xCEC1 0x761F +0xCEC2 0x6E29 +0xCEC3 0x868A +0xCEC4 0x6587 +0xCEC5 0x95FB +0xCEC6 0x7EB9 +0xCEC7 0x543B +0xCEC8 0x7A33 +0xCEC9 0x7D0A +0xCECA 0x95EE +0xCECB 0x55E1 +0xCECC 0x7FC1 +0xCECD 0x74EE +0xCECE 0x631D +0xCECF 0x8717 +0xCED0 0x6DA1 +0xCED1 0x7A9D +0xCED2 0x6211 +0xCED3 0x65A1 +0xCED4 0x5367 +0xCED5 0x63E1 +0xCED6 0x6C83 +0xCED7 0x5DEB +0xCED8 0x545C +0xCED9 0x94A8 +0xCEDA 0x4E4C +0xCEDB 0x6C61 +0xCEDC 0x8BEC +0xCEDD 0x5C4B +0xCEDE 0x65E0 +0xCEDF 0x829C +0xCEE0 0x68A7 +0xCEE1 0x543E +0xCEE2 0x5434 +0xCEE3 0x6BCB +0xCEE4 0x6B66 +0xCEE5 0x4E94 +0xCEE6 0x6342 +0xCEE7 0x5348 +0xCEE8 0x821E +0xCEE9 0x4F0D +0xCEEA 0x4FAE +0xCEEB 0x575E +0xCEEC 0x620A +0xCEED 0x96FE +0xCEEE 0x6664 +0xCEEF 0x7269 +0xCEF0 0x52FF +0xCEF1 0x52A1 +0xCEF2 0x609F +0xCEF3 0x8BEF +0xCEF4 0x6614 +0xCEF5 0x7199 +0xCEF6 0x6790 +0xCEF7 0x897F +0xCEF8 0x7852 +0xCEF9 0x77FD +0xCEFA 0x6670 +0xCEFB 0x563B +0xCEFC 0x5438 +0xCEFD 0x9521 +0xCEFE 0x727A +0xCF40 0x87A5 +0xCF41 0x87A6 +0xCF42 0x87A7 +0xCF43 0x87A9 +0xCF44 0x87AA +0xCF45 0x87AE +0xCF46 0x87B0 +0xCF47 0x87B1 +0xCF48 0x87B2 +0xCF49 0x87B4 +0xCF4A 0x87B6 +0xCF4B 0x87B7 +0xCF4C 0x87B8 +0xCF4D 0x87B9 +0xCF4E 0x87BB +0xCF4F 0x87BC +0xCF50 0x87BE +0xCF51 0x87BF +0xCF52 0x87C1 +0xCF53 0x87C2 +0xCF54 0x87C3 +0xCF55 0x87C4 +0xCF56 0x87C5 +0xCF57 0x87C7 +0xCF58 0x87C8 +0xCF59 0x87C9 +0xCF5A 0x87CC +0xCF5B 0x87CD +0xCF5C 0x87CE +0xCF5D 0x87CF +0xCF5E 0x87D0 +0xCF5F 0x87D4 +0xCF60 0x87D5 +0xCF61 0x87D6 +0xCF62 0x87D7 +0xCF63 0x87D8 +0xCF64 0x87D9 +0xCF65 0x87DA +0xCF66 0x87DC +0xCF67 0x87DD +0xCF68 0x87DE +0xCF69 0x87DF +0xCF6A 0x87E1 +0xCF6B 0x87E2 +0xCF6C 0x87E3 +0xCF6D 0x87E4 +0xCF6E 0x87E6 +0xCF6F 0x87E7 +0xCF70 0x87E8 +0xCF71 0x87E9 +0xCF72 0x87EB +0xCF73 0x87EC +0xCF74 0x87ED +0xCF75 0x87EF +0xCF76 0x87F0 +0xCF77 0x87F1 +0xCF78 0x87F2 +0xCF79 0x87F3 +0xCF7A 0x87F4 +0xCF7B 0x87F5 +0xCF7C 0x87F6 +0xCF7D 0x87F7 +0xCF7E 0x87F8 +0xCF80 0x87FA +0xCF81 0x87FB +0xCF82 0x87FC +0xCF83 0x87FD +0xCF84 0x87FF +0xCF85 0x8800 +0xCF86 0x8801 +0xCF87 0x8802 +0xCF88 0x8804 +0xCF89 0x8805 +0xCF8A 0x8806 +0xCF8B 0x8807 +0xCF8C 0x8808 +0xCF8D 0x8809 +0xCF8E 0x880B +0xCF8F 0x880C +0xCF90 0x880D +0xCF91 0x880E +0xCF92 0x880F +0xCF93 0x8810 +0xCF94 0x8811 +0xCF95 0x8812 +0xCF96 0x8814 +0xCF97 0x8817 +0xCF98 0x8818 +0xCF99 0x8819 +0xCF9A 0x881A +0xCF9B 0x881C +0xCF9C 0x881D +0xCF9D 0x881E +0xCF9E 0x881F +0xCF9F 0x8820 +0xCFA0 0x8823 +0xCFA1 0x7A00 +0xCFA2 0x606F +0xCFA3 0x5E0C +0xCFA4 0x6089 +0xCFA5 0x819D +0xCFA6 0x5915 +0xCFA7 0x60DC +0xCFA8 0x7184 +0xCFA9 0x70EF +0xCFAA 0x6EAA +0xCFAB 0x6C50 +0xCFAC 0x7280 +0xCFAD 0x6A84 +0xCFAE 0x88AD +0xCFAF 0x5E2D +0xCFB0 0x4E60 +0xCFB1 0x5AB3 +0xCFB2 0x559C +0xCFB3 0x94E3 +0xCFB4 0x6D17 +0xCFB5 0x7CFB +0xCFB6 0x9699 +0xCFB7 0x620F +0xCFB8 0x7EC6 +0xCFB9 0x778E +0xCFBA 0x867E +0xCFBB 0x5323 +0xCFBC 0x971E +0xCFBD 0x8F96 +0xCFBE 0x6687 +0xCFBF 0x5CE1 +0xCFC0 0x4FA0 +0xCFC1 0x72ED +0xCFC2 0x4E0B +0xCFC3 0x53A6 +0xCFC4 0x590F +0xCFC5 0x5413 +0xCFC6 0x6380 +0xCFC7 0x9528 +0xCFC8 0x5148 +0xCFC9 0x4ED9 +0xCFCA 0x9C9C +0xCFCB 0x7EA4 +0xCFCC 0x54B8 +0xCFCD 0x8D24 +0xCFCE 0x8854 +0xCFCF 0x8237 +0xCFD0 0x95F2 +0xCFD1 0x6D8E +0xCFD2 0x5F26 +0xCFD3 0x5ACC +0xCFD4 0x663E +0xCFD5 0x9669 +0xCFD6 0x73B0 +0xCFD7 0x732E +0xCFD8 0x53BF +0xCFD9 0x817A +0xCFDA 0x9985 +0xCFDB 0x7FA1 +0xCFDC 0x5BAA +0xCFDD 0x9677 +0xCFDE 0x9650 +0xCFDF 0x7EBF +0xCFE0 0x76F8 +0xCFE1 0x53A2 +0xCFE2 0x9576 +0xCFE3 0x9999 +0xCFE4 0x7BB1 +0xCFE5 0x8944 +0xCFE6 0x6E58 +0xCFE7 0x4E61 +0xCFE8 0x7FD4 +0xCFE9 0x7965 +0xCFEA 0x8BE6 +0xCFEB 0x60F3 +0xCFEC 0x54CD +0xCFED 0x4EAB +0xCFEE 0x9879 +0xCFEF 0x5DF7 +0xCFF0 0x6A61 +0xCFF1 0x50CF +0xCFF2 0x5411 +0xCFF3 0x8C61 +0xCFF4 0x8427 +0xCFF5 0x785D +0xCFF6 0x9704 +0xCFF7 0x524A +0xCFF8 0x54EE +0xCFF9 0x56A3 +0xCFFA 0x9500 +0xCFFB 0x6D88 +0xCFFC 0x5BB5 +0xCFFD 0x6DC6 +0xCFFE 0x6653 +0xD040 0x8824 +0xD041 0x8825 +0xD042 0x8826 +0xD043 0x8827 +0xD044 0x8828 +0xD045 0x8829 +0xD046 0x882A +0xD047 0x882B +0xD048 0x882C +0xD049 0x882D +0xD04A 0x882E +0xD04B 0x882F +0xD04C 0x8830 +0xD04D 0x8831 +0xD04E 0x8833 +0xD04F 0x8834 +0xD050 0x8835 +0xD051 0x8836 +0xD052 0x8837 +0xD053 0x8838 +0xD054 0x883A +0xD055 0x883B +0xD056 0x883D +0xD057 0x883E +0xD058 0x883F +0xD059 0x8841 +0xD05A 0x8842 +0xD05B 0x8843 +0xD05C 0x8846 +0xD05D 0x8847 +0xD05E 0x8848 +0xD05F 0x8849 +0xD060 0x884A +0xD061 0x884B +0xD062 0x884E +0xD063 0x884F +0xD064 0x8850 +0xD065 0x8851 +0xD066 0x8852 +0xD067 0x8853 +0xD068 0x8855 +0xD069 0x8856 +0xD06A 0x8858 +0xD06B 0x885A +0xD06C 0x885B +0xD06D 0x885C +0xD06E 0x885D +0xD06F 0x885E +0xD070 0x885F +0xD071 0x8860 +0xD072 0x8866 +0xD073 0x8867 +0xD074 0x886A +0xD075 0x886D +0xD076 0x886F +0xD077 0x8871 +0xD078 0x8873 +0xD079 0x8874 +0xD07A 0x8875 +0xD07B 0x8876 +0xD07C 0x8878 +0xD07D 0x8879 +0xD07E 0x887A +0xD080 0x887B +0xD081 0x887C +0xD082 0x8880 +0xD083 0x8883 +0xD084 0x8886 +0xD085 0x8887 +0xD086 0x8889 +0xD087 0x888A +0xD088 0x888C +0xD089 0x888E +0xD08A 0x888F +0xD08B 0x8890 +0xD08C 0x8891 +0xD08D 0x8893 +0xD08E 0x8894 +0xD08F 0x8895 +0xD090 0x8897 +0xD091 0x8898 +0xD092 0x8899 +0xD093 0x889A +0xD094 0x889B +0xD095 0x889D +0xD096 0x889E +0xD097 0x889F +0xD098 0x88A0 +0xD099 0x88A1 +0xD09A 0x88A3 +0xD09B 0x88A5 +0xD09C 0x88A6 +0xD09D 0x88A7 +0xD09E 0x88A8 +0xD09F 0x88A9 +0xD0A0 0x88AA +0xD0A1 0x5C0F +0xD0A2 0x5B5D +0xD0A3 0x6821 +0xD0A4 0x8096 +0xD0A5 0x5578 +0xD0A6 0x7B11 +0xD0A7 0x6548 +0xD0A8 0x6954 +0xD0A9 0x4E9B +0xD0AA 0x6B47 +0xD0AB 0x874E +0xD0AC 0x978B +0xD0AD 0x534F +0xD0AE 0x631F +0xD0AF 0x643A +0xD0B0 0x90AA +0xD0B1 0x659C +0xD0B2 0x80C1 +0xD0B3 0x8C10 +0xD0B4 0x5199 +0xD0B5 0x68B0 +0xD0B6 0x5378 +0xD0B7 0x87F9 +0xD0B8 0x61C8 +0xD0B9 0x6CC4 +0xD0BA 0x6CFB +0xD0BB 0x8C22 +0xD0BC 0x5C51 +0xD0BD 0x85AA +0xD0BE 0x82AF +0xD0BF 0x950C +0xD0C0 0x6B23 +0xD0C1 0x8F9B +0xD0C2 0x65B0 +0xD0C3 0x5FFB +0xD0C4 0x5FC3 +0xD0C5 0x4FE1 +0xD0C6 0x8845 +0xD0C7 0x661F +0xD0C8 0x8165 +0xD0C9 0x7329 +0xD0CA 0x60FA +0xD0CB 0x5174 +0xD0CC 0x5211 +0xD0CD 0x578B +0xD0CE 0x5F62 +0xD0CF 0x90A2 +0xD0D0 0x884C +0xD0D1 0x9192 +0xD0D2 0x5E78 +0xD0D3 0x674F +0xD0D4 0x6027 +0xD0D5 0x59D3 +0xD0D6 0x5144 +0xD0D7 0x51F6 +0xD0D8 0x80F8 +0xD0D9 0x5308 +0xD0DA 0x6C79 +0xD0DB 0x96C4 +0xD0DC 0x718A +0xD0DD 0x4F11 +0xD0DE 0x4FEE +0xD0DF 0x7F9E +0xD0E0 0x673D +0xD0E1 0x55C5 +0xD0E2 0x9508 +0xD0E3 0x79C0 +0xD0E4 0x8896 +0xD0E5 0x7EE3 +0xD0E6 0x589F +0xD0E7 0x620C +0xD0E8 0x9700 +0xD0E9 0x865A +0xD0EA 0x5618 +0xD0EB 0x987B +0xD0EC 0x5F90 +0xD0ED 0x8BB8 +0xD0EE 0x84C4 +0xD0EF 0x9157 +0xD0F0 0x53D9 +0xD0F1 0x65ED +0xD0F2 0x5E8F +0xD0F3 0x755C +0xD0F4 0x6064 +0xD0F5 0x7D6E +0xD0F6 0x5A7F +0xD0F7 0x7EEA +0xD0F8 0x7EED +0xD0F9 0x8F69 +0xD0FA 0x55A7 +0xD0FB 0x5BA3 +0xD0FC 0x60AC +0xD0FD 0x65CB +0xD0FE 0x7384 +0xD140 0x88AC +0xD141 0x88AE +0xD142 0x88AF +0xD143 0x88B0 +0xD144 0x88B2 +0xD145 0x88B3 +0xD146 0x88B4 +0xD147 0x88B5 +0xD148 0x88B6 +0xD149 0x88B8 +0xD14A 0x88B9 +0xD14B 0x88BA +0xD14C 0x88BB +0xD14D 0x88BD +0xD14E 0x88BE +0xD14F 0x88BF +0xD150 0x88C0 +0xD151 0x88C3 +0xD152 0x88C4 +0xD153 0x88C7 +0xD154 0x88C8 +0xD155 0x88CA +0xD156 0x88CB +0xD157 0x88CC +0xD158 0x88CD +0xD159 0x88CF +0xD15A 0x88D0 +0xD15B 0x88D1 +0xD15C 0x88D3 +0xD15D 0x88D6 +0xD15E 0x88D7 +0xD15F 0x88DA +0xD160 0x88DB +0xD161 0x88DC +0xD162 0x88DD +0xD163 0x88DE +0xD164 0x88E0 +0xD165 0x88E1 +0xD166 0x88E6 +0xD167 0x88E7 +0xD168 0x88E9 +0xD169 0x88EA +0xD16A 0x88EB +0xD16B 0x88EC +0xD16C 0x88ED +0xD16D 0x88EE +0xD16E 0x88EF +0xD16F 0x88F2 +0xD170 0x88F5 +0xD171 0x88F6 +0xD172 0x88F7 +0xD173 0x88FA +0xD174 0x88FB +0xD175 0x88FD +0xD176 0x88FF +0xD177 0x8900 +0xD178 0x8901 +0xD179 0x8903 +0xD17A 0x8904 +0xD17B 0x8905 +0xD17C 0x8906 +0xD17D 0x8907 +0xD17E 0x8908 +0xD180 0x8909 +0xD181 0x890B +0xD182 0x890C +0xD183 0x890D +0xD184 0x890E +0xD185 0x890F +0xD186 0x8911 +0xD187 0x8914 +0xD188 0x8915 +0xD189 0x8916 +0xD18A 0x8917 +0xD18B 0x8918 +0xD18C 0x891C +0xD18D 0x891D +0xD18E 0x891E +0xD18F 0x891F +0xD190 0x8920 +0xD191 0x8922 +0xD192 0x8923 +0xD193 0x8924 +0xD194 0x8926 +0xD195 0x8927 +0xD196 0x8928 +0xD197 0x8929 +0xD198 0x892C +0xD199 0x892D +0xD19A 0x892E +0xD19B 0x892F +0xD19C 0x8931 +0xD19D 0x8932 +0xD19E 0x8933 +0xD19F 0x8935 +0xD1A0 0x8937 +0xD1A1 0x9009 +0xD1A2 0x7663 +0xD1A3 0x7729 +0xD1A4 0x7EDA +0xD1A5 0x9774 +0xD1A6 0x859B +0xD1A7 0x5B66 +0xD1A8 0x7A74 +0xD1A9 0x96EA +0xD1AA 0x8840 +0xD1AB 0x52CB +0xD1AC 0x718F +0xD1AD 0x5FAA +0xD1AE 0x65EC +0xD1AF 0x8BE2 +0xD1B0 0x5BFB +0xD1B1 0x9A6F +0xD1B2 0x5DE1 +0xD1B3 0x6B89 +0xD1B4 0x6C5B +0xD1B5 0x8BAD +0xD1B6 0x8BAF +0xD1B7 0x900A +0xD1B8 0x8FC5 +0xD1B9 0x538B +0xD1BA 0x62BC +0xD1BB 0x9E26 +0xD1BC 0x9E2D +0xD1BD 0x5440 +0xD1BE 0x4E2B +0xD1BF 0x82BD +0xD1C0 0x7259 +0xD1C1 0x869C +0xD1C2 0x5D16 +0xD1C3 0x8859 +0xD1C4 0x6DAF +0xD1C5 0x96C5 +0xD1C6 0x54D1 +0xD1C7 0x4E9A +0xD1C8 0x8BB6 +0xD1C9 0x7109 +0xD1CA 0x54BD +0xD1CB 0x9609 +0xD1CC 0x70DF +0xD1CD 0x6DF9 +0xD1CE 0x76D0 +0xD1CF 0x4E25 +0xD1D0 0x7814 +0xD1D1 0x8712 +0xD1D2 0x5CA9 +0xD1D3 0x5EF6 +0xD1D4 0x8A00 +0xD1D5 0x989C +0xD1D6 0x960E +0xD1D7 0x708E +0xD1D8 0x6CBF +0xD1D9 0x5944 +0xD1DA 0x63A9 +0xD1DB 0x773C +0xD1DC 0x884D +0xD1DD 0x6F14 +0xD1DE 0x8273 +0xD1DF 0x5830 +0xD1E0 0x71D5 +0xD1E1 0x538C +0xD1E2 0x781A +0xD1E3 0x96C1 +0xD1E4 0x5501 +0xD1E5 0x5F66 +0xD1E6 0x7130 +0xD1E7 0x5BB4 +0xD1E8 0x8C1A +0xD1E9 0x9A8C +0xD1EA 0x6B83 +0xD1EB 0x592E +0xD1EC 0x9E2F +0xD1ED 0x79E7 +0xD1EE 0x6768 +0xD1EF 0x626C +0xD1F0 0x4F6F +0xD1F1 0x75A1 +0xD1F2 0x7F8A +0xD1F3 0x6D0B +0xD1F4 0x9633 +0xD1F5 0x6C27 +0xD1F6 0x4EF0 +0xD1F7 0x75D2 +0xD1F8 0x517B +0xD1F9 0x6837 +0xD1FA 0x6F3E +0xD1FB 0x9080 +0xD1FC 0x8170 +0xD1FD 0x5996 +0xD1FE 0x7476 +0xD240 0x8938 +0xD241 0x8939 +0xD242 0x893A +0xD243 0x893B +0xD244 0x893C +0xD245 0x893D +0xD246 0x893E +0xD247 0x893F +0xD248 0x8940 +0xD249 0x8942 +0xD24A 0x8943 +0xD24B 0x8945 +0xD24C 0x8946 +0xD24D 0x8947 +0xD24E 0x8948 +0xD24F 0x8949 +0xD250 0x894A +0xD251 0x894B +0xD252 0x894C +0xD253 0x894D +0xD254 0x894E +0xD255 0x894F +0xD256 0x8950 +0xD257 0x8951 +0xD258 0x8952 +0xD259 0x8953 +0xD25A 0x8954 +0xD25B 0x8955 +0xD25C 0x8956 +0xD25D 0x8957 +0xD25E 0x8958 +0xD25F 0x8959 +0xD260 0x895A +0xD261 0x895B +0xD262 0x895C +0xD263 0x895D +0xD264 0x8960 +0xD265 0x8961 +0xD266 0x8962 +0xD267 0x8963 +0xD268 0x8964 +0xD269 0x8965 +0xD26A 0x8967 +0xD26B 0x8968 +0xD26C 0x8969 +0xD26D 0x896A +0xD26E 0x896B +0xD26F 0x896C +0xD270 0x896D +0xD271 0x896E +0xD272 0x896F +0xD273 0x8970 +0xD274 0x8971 +0xD275 0x8972 +0xD276 0x8973 +0xD277 0x8974 +0xD278 0x8975 +0xD279 0x8976 +0xD27A 0x8977 +0xD27B 0x8978 +0xD27C 0x8979 +0xD27D 0x897A +0xD27E 0x897C +0xD280 0x897D +0xD281 0x897E +0xD282 0x8980 +0xD283 0x8982 +0xD284 0x8984 +0xD285 0x8985 +0xD286 0x8987 +0xD287 0x8988 +0xD288 0x8989 +0xD289 0x898A +0xD28A 0x898B +0xD28B 0x898C +0xD28C 0x898D +0xD28D 0x898E +0xD28E 0x898F +0xD28F 0x8990 +0xD290 0x8991 +0xD291 0x8992 +0xD292 0x8993 +0xD293 0x8994 +0xD294 0x8995 +0xD295 0x8996 +0xD296 0x8997 +0xD297 0x8998 +0xD298 0x8999 +0xD299 0x899A +0xD29A 0x899B +0xD29B 0x899C +0xD29C 0x899D +0xD29D 0x899E +0xD29E 0x899F +0xD29F 0x89A0 +0xD2A0 0x89A1 +0xD2A1 0x6447 +0xD2A2 0x5C27 +0xD2A3 0x9065 +0xD2A4 0x7A91 +0xD2A5 0x8C23 +0xD2A6 0x59DA +0xD2A7 0x54AC +0xD2A8 0x8200 +0xD2A9 0x836F +0xD2AA 0x8981 +0xD2AB 0x8000 +0xD2AC 0x6930 +0xD2AD 0x564E +0xD2AE 0x8036 +0xD2AF 0x7237 +0xD2B0 0x91CE +0xD2B1 0x51B6 +0xD2B2 0x4E5F +0xD2B3 0x9875 +0xD2B4 0x6396 +0xD2B5 0x4E1A +0xD2B6 0x53F6 +0xD2B7 0x66F3 +0xD2B8 0x814B +0xD2B9 0x591C +0xD2BA 0x6DB2 +0xD2BB 0x4E00 +0xD2BC 0x58F9 +0xD2BD 0x533B +0xD2BE 0x63D6 +0xD2BF 0x94F1 +0xD2C0 0x4F9D +0xD2C1 0x4F0A +0xD2C2 0x8863 +0xD2C3 0x9890 +0xD2C4 0x5937 +0xD2C5 0x9057 +0xD2C6 0x79FB +0xD2C7 0x4EEA +0xD2C8 0x80F0 +0xD2C9 0x7591 +0xD2CA 0x6C82 +0xD2CB 0x5B9C +0xD2CC 0x59E8 +0xD2CD 0x5F5D +0xD2CE 0x6905 +0xD2CF 0x8681 +0xD2D0 0x501A +0xD2D1 0x5DF2 +0xD2D2 0x4E59 +0xD2D3 0x77E3 +0xD2D4 0x4EE5 +0xD2D5 0x827A +0xD2D6 0x6291 +0xD2D7 0x6613 +0xD2D8 0x9091 +0xD2D9 0x5C79 +0xD2DA 0x4EBF +0xD2DB 0x5F79 +0xD2DC 0x81C6 +0xD2DD 0x9038 +0xD2DE 0x8084 +0xD2DF 0x75AB +0xD2E0 0x4EA6 +0xD2E1 0x88D4 +0xD2E2 0x610F +0xD2E3 0x6BC5 +0xD2E4 0x5FC6 +0xD2E5 0x4E49 +0xD2E6 0x76CA +0xD2E7 0x6EA2 +0xD2E8 0x8BE3 +0xD2E9 0x8BAE +0xD2EA 0x8C0A +0xD2EB 0x8BD1 +0xD2EC 0x5F02 +0xD2ED 0x7FFC +0xD2EE 0x7FCC +0xD2EF 0x7ECE +0xD2F0 0x8335 +0xD2F1 0x836B +0xD2F2 0x56E0 +0xD2F3 0x6BB7 +0xD2F4 0x97F3 +0xD2F5 0x9634 +0xD2F6 0x59FB +0xD2F7 0x541F +0xD2F8 0x94F6 +0xD2F9 0x6DEB +0xD2FA 0x5BC5 +0xD2FB 0x996E +0xD2FC 0x5C39 +0xD2FD 0x5F15 +0xD2FE 0x9690 +0xD340 0x89A2 +0xD341 0x89A3 +0xD342 0x89A4 +0xD343 0x89A5 +0xD344 0x89A6 +0xD345 0x89A7 +0xD346 0x89A8 +0xD347 0x89A9 +0xD348 0x89AA +0xD349 0x89AB +0xD34A 0x89AC +0xD34B 0x89AD +0xD34C 0x89AE +0xD34D 0x89AF +0xD34E 0x89B0 +0xD34F 0x89B1 +0xD350 0x89B2 +0xD351 0x89B3 +0xD352 0x89B4 +0xD353 0x89B5 +0xD354 0x89B6 +0xD355 0x89B7 +0xD356 0x89B8 +0xD357 0x89B9 +0xD358 0x89BA +0xD359 0x89BB +0xD35A 0x89BC +0xD35B 0x89BD +0xD35C 0x89BE +0xD35D 0x89BF +0xD35E 0x89C0 +0xD35F 0x89C3 +0xD360 0x89CD +0xD361 0x89D3 +0xD362 0x89D4 +0xD363 0x89D5 +0xD364 0x89D7 +0xD365 0x89D8 +0xD366 0x89D9 +0xD367 0x89DB +0xD368 0x89DD +0xD369 0x89DF +0xD36A 0x89E0 +0xD36B 0x89E1 +0xD36C 0x89E2 +0xD36D 0x89E4 +0xD36E 0x89E7 +0xD36F 0x89E8 +0xD370 0x89E9 +0xD371 0x89EA +0xD372 0x89EC +0xD373 0x89ED +0xD374 0x89EE +0xD375 0x89F0 +0xD376 0x89F1 +0xD377 0x89F2 +0xD378 0x89F4 +0xD379 0x89F5 +0xD37A 0x89F6 +0xD37B 0x89F7 +0xD37C 0x89F8 +0xD37D 0x89F9 +0xD37E 0x89FA +0xD380 0x89FB +0xD381 0x89FC +0xD382 0x89FD +0xD383 0x89FE +0xD384 0x89FF +0xD385 0x8A01 +0xD386 0x8A02 +0xD387 0x8A03 +0xD388 0x8A04 +0xD389 0x8A05 +0xD38A 0x8A06 +0xD38B 0x8A08 +0xD38C 0x8A09 +0xD38D 0x8A0A +0xD38E 0x8A0B +0xD38F 0x8A0C +0xD390 0x8A0D +0xD391 0x8A0E +0xD392 0x8A0F +0xD393 0x8A10 +0xD394 0x8A11 +0xD395 0x8A12 +0xD396 0x8A13 +0xD397 0x8A14 +0xD398 0x8A15 +0xD399 0x8A16 +0xD39A 0x8A17 +0xD39B 0x8A18 +0xD39C 0x8A19 +0xD39D 0x8A1A +0xD39E 0x8A1B +0xD39F 0x8A1C +0xD3A0 0x8A1D +0xD3A1 0x5370 +0xD3A2 0x82F1 +0xD3A3 0x6A31 +0xD3A4 0x5A74 +0xD3A5 0x9E70 +0xD3A6 0x5E94 +0xD3A7 0x7F28 +0xD3A8 0x83B9 +0xD3A9 0x8424 +0xD3AA 0x8425 +0xD3AB 0x8367 +0xD3AC 0x8747 +0xD3AD 0x8FCE +0xD3AE 0x8D62 +0xD3AF 0x76C8 +0xD3B0 0x5F71 +0xD3B1 0x9896 +0xD3B2 0x786C +0xD3B3 0x6620 +0xD3B4 0x54DF +0xD3B5 0x62E5 +0xD3B6 0x4F63 +0xD3B7 0x81C3 +0xD3B8 0x75C8 +0xD3B9 0x5EB8 +0xD3BA 0x96CD +0xD3BB 0x8E0A +0xD3BC 0x86F9 +0xD3BD 0x548F +0xD3BE 0x6CF3 +0xD3BF 0x6D8C +0xD3C0 0x6C38 +0xD3C1 0x607F +0xD3C2 0x52C7 +0xD3C3 0x7528 +0xD3C4 0x5E7D +0xD3C5 0x4F18 +0xD3C6 0x60A0 +0xD3C7 0x5FE7 +0xD3C8 0x5C24 +0xD3C9 0x7531 +0xD3CA 0x90AE +0xD3CB 0x94C0 +0xD3CC 0x72B9 +0xD3CD 0x6CB9 +0xD3CE 0x6E38 +0xD3CF 0x9149 +0xD3D0 0x6709 +0xD3D1 0x53CB +0xD3D2 0x53F3 +0xD3D3 0x4F51 +0xD3D4 0x91C9 +0xD3D5 0x8BF1 +0xD3D6 0x53C8 +0xD3D7 0x5E7C +0xD3D8 0x8FC2 +0xD3D9 0x6DE4 +0xD3DA 0x4E8E +0xD3DB 0x76C2 +0xD3DC 0x6986 +0xD3DD 0x865E +0xD3DE 0x611A +0xD3DF 0x8206 +0xD3E0 0x4F59 +0xD3E1 0x4FDE +0xD3E2 0x903E +0xD3E3 0x9C7C +0xD3E4 0x6109 +0xD3E5 0x6E1D +0xD3E6 0x6E14 +0xD3E7 0x9685 +0xD3E8 0x4E88 +0xD3E9 0x5A31 +0xD3EA 0x96E8 +0xD3EB 0x4E0E +0xD3EC 0x5C7F +0xD3ED 0x79B9 +0xD3EE 0x5B87 +0xD3EF 0x8BED +0xD3F0 0x7FBD +0xD3F1 0x7389 +0xD3F2 0x57DF +0xD3F3 0x828B +0xD3F4 0x90C1 +0xD3F5 0x5401 +0xD3F6 0x9047 +0xD3F7 0x55BB +0xD3F8 0x5CEA +0xD3F9 0x5FA1 +0xD3FA 0x6108 +0xD3FB 0x6B32 +0xD3FC 0x72F1 +0xD3FD 0x80B2 +0xD3FE 0x8A89 +0xD440 0x8A1E +0xD441 0x8A1F +0xD442 0x8A20 +0xD443 0x8A21 +0xD444 0x8A22 +0xD445 0x8A23 +0xD446 0x8A24 +0xD447 0x8A25 +0xD448 0x8A26 +0xD449 0x8A27 +0xD44A 0x8A28 +0xD44B 0x8A29 +0xD44C 0x8A2A +0xD44D 0x8A2B +0xD44E 0x8A2C +0xD44F 0x8A2D +0xD450 0x8A2E +0xD451 0x8A2F +0xD452 0x8A30 +0xD453 0x8A31 +0xD454 0x8A32 +0xD455 0x8A33 +0xD456 0x8A34 +0xD457 0x8A35 +0xD458 0x8A36 +0xD459 0x8A37 +0xD45A 0x8A38 +0xD45B 0x8A39 +0xD45C 0x8A3A +0xD45D 0x8A3B +0xD45E 0x8A3C +0xD45F 0x8A3D +0xD460 0x8A3F +0xD461 0x8A40 +0xD462 0x8A41 +0xD463 0x8A42 +0xD464 0x8A43 +0xD465 0x8A44 +0xD466 0x8A45 +0xD467 0x8A46 +0xD468 0x8A47 +0xD469 0x8A49 +0xD46A 0x8A4A +0xD46B 0x8A4B +0xD46C 0x8A4C +0xD46D 0x8A4D +0xD46E 0x8A4E +0xD46F 0x8A4F +0xD470 0x8A50 +0xD471 0x8A51 +0xD472 0x8A52 +0xD473 0x8A53 +0xD474 0x8A54 +0xD475 0x8A55 +0xD476 0x8A56 +0xD477 0x8A57 +0xD478 0x8A58 +0xD479 0x8A59 +0xD47A 0x8A5A +0xD47B 0x8A5B +0xD47C 0x8A5C +0xD47D 0x8A5D +0xD47E 0x8A5E +0xD480 0x8A5F +0xD481 0x8A60 +0xD482 0x8A61 +0xD483 0x8A62 +0xD484 0x8A63 +0xD485 0x8A64 +0xD486 0x8A65 +0xD487 0x8A66 +0xD488 0x8A67 +0xD489 0x8A68 +0xD48A 0x8A69 +0xD48B 0x8A6A +0xD48C 0x8A6B +0xD48D 0x8A6C +0xD48E 0x8A6D +0xD48F 0x8A6E +0xD490 0x8A6F +0xD491 0x8A70 +0xD492 0x8A71 +0xD493 0x8A72 +0xD494 0x8A73 +0xD495 0x8A74 +0xD496 0x8A75 +0xD497 0x8A76 +0xD498 0x8A77 +0xD499 0x8A78 +0xD49A 0x8A7A +0xD49B 0x8A7B +0xD49C 0x8A7C +0xD49D 0x8A7D +0xD49E 0x8A7E +0xD49F 0x8A7F +0xD4A0 0x8A80 +0xD4A1 0x6D74 +0xD4A2 0x5BD3 +0xD4A3 0x88D5 +0xD4A4 0x9884 +0xD4A5 0x8C6B +0xD4A6 0x9A6D +0xD4A7 0x9E33 +0xD4A8 0x6E0A +0xD4A9 0x51A4 +0xD4AA 0x5143 +0xD4AB 0x57A3 +0xD4AC 0x8881 +0xD4AD 0x539F +0xD4AE 0x63F4 +0xD4AF 0x8F95 +0xD4B0 0x56ED +0xD4B1 0x5458 +0xD4B2 0x5706 +0xD4B3 0x733F +0xD4B4 0x6E90 +0xD4B5 0x7F18 +0xD4B6 0x8FDC +0xD4B7 0x82D1 +0xD4B8 0x613F +0xD4B9 0x6028 +0xD4BA 0x9662 +0xD4BB 0x66F0 +0xD4BC 0x7EA6 +0xD4BD 0x8D8A +0xD4BE 0x8DC3 +0xD4BF 0x94A5 +0xD4C0 0x5CB3 +0xD4C1 0x7CA4 +0xD4C2 0x6708 +0xD4C3 0x60A6 +0xD4C4 0x9605 +0xD4C5 0x8018 +0xD4C6 0x4E91 +0xD4C7 0x90E7 +0xD4C8 0x5300 +0xD4C9 0x9668 +0xD4CA 0x5141 +0xD4CB 0x8FD0 +0xD4CC 0x8574 +0xD4CD 0x915D +0xD4CE 0x6655 +0xD4CF 0x97F5 +0xD4D0 0x5B55 +0xD4D1 0x531D +0xD4D2 0x7838 +0xD4D3 0x6742 +0xD4D4 0x683D +0xD4D5 0x54C9 +0xD4D6 0x707E +0xD4D7 0x5BB0 +0xD4D8 0x8F7D +0xD4D9 0x518D +0xD4DA 0x5728 +0xD4DB 0x54B1 +0xD4DC 0x6512 +0xD4DD 0x6682 +0xD4DE 0x8D5E +0xD4DF 0x8D43 +0xD4E0 0x810F +0xD4E1 0x846C +0xD4E2 0x906D +0xD4E3 0x7CDF +0xD4E4 0x51FF +0xD4E5 0x85FB +0xD4E6 0x67A3 +0xD4E7 0x65E9 +0xD4E8 0x6FA1 +0xD4E9 0x86A4 +0xD4EA 0x8E81 +0xD4EB 0x566A +0xD4EC 0x9020 +0xD4ED 0x7682 +0xD4EE 0x7076 +0xD4EF 0x71E5 +0xD4F0 0x8D23 +0xD4F1 0x62E9 +0xD4F2 0x5219 +0xD4F3 0x6CFD +0xD4F4 0x8D3C +0xD4F5 0x600E +0xD4F6 0x589E +0xD4F7 0x618E +0xD4F8 0x66FE +0xD4F9 0x8D60 +0xD4FA 0x624E +0xD4FB 0x55B3 +0xD4FC 0x6E23 +0xD4FD 0x672D +0xD4FE 0x8F67 +0xD540 0x8A81 +0xD541 0x8A82 +0xD542 0x8A83 +0xD543 0x8A84 +0xD544 0x8A85 +0xD545 0x8A86 +0xD546 0x8A87 +0xD547 0x8A88 +0xD548 0x8A8B +0xD549 0x8A8C +0xD54A 0x8A8D +0xD54B 0x8A8E +0xD54C 0x8A8F +0xD54D 0x8A90 +0xD54E 0x8A91 +0xD54F 0x8A92 +0xD550 0x8A94 +0xD551 0x8A95 +0xD552 0x8A96 +0xD553 0x8A97 +0xD554 0x8A98 +0xD555 0x8A99 +0xD556 0x8A9A +0xD557 0x8A9B +0xD558 0x8A9C +0xD559 0x8A9D +0xD55A 0x8A9E +0xD55B 0x8A9F +0xD55C 0x8AA0 +0xD55D 0x8AA1 +0xD55E 0x8AA2 +0xD55F 0x8AA3 +0xD560 0x8AA4 +0xD561 0x8AA5 +0xD562 0x8AA6 +0xD563 0x8AA7 +0xD564 0x8AA8 +0xD565 0x8AA9 +0xD566 0x8AAA +0xD567 0x8AAB +0xD568 0x8AAC +0xD569 0x8AAD +0xD56A 0x8AAE +0xD56B 0x8AAF +0xD56C 0x8AB0 +0xD56D 0x8AB1 +0xD56E 0x8AB2 +0xD56F 0x8AB3 +0xD570 0x8AB4 +0xD571 0x8AB5 +0xD572 0x8AB6 +0xD573 0x8AB7 +0xD574 0x8AB8 +0xD575 0x8AB9 +0xD576 0x8ABA +0xD577 0x8ABB +0xD578 0x8ABC +0xD579 0x8ABD +0xD57A 0x8ABE +0xD57B 0x8ABF +0xD57C 0x8AC0 +0xD57D 0x8AC1 +0xD57E 0x8AC2 +0xD580 0x8AC3 +0xD581 0x8AC4 +0xD582 0x8AC5 +0xD583 0x8AC6 +0xD584 0x8AC7 +0xD585 0x8AC8 +0xD586 0x8AC9 +0xD587 0x8ACA +0xD588 0x8ACB +0xD589 0x8ACC +0xD58A 0x8ACD +0xD58B 0x8ACE +0xD58C 0x8ACF +0xD58D 0x8AD0 +0xD58E 0x8AD1 +0xD58F 0x8AD2 +0xD590 0x8AD3 +0xD591 0x8AD4 +0xD592 0x8AD5 +0xD593 0x8AD6 +0xD594 0x8AD7 +0xD595 0x8AD8 +0xD596 0x8AD9 +0xD597 0x8ADA +0xD598 0x8ADB +0xD599 0x8ADC +0xD59A 0x8ADD +0xD59B 0x8ADE +0xD59C 0x8ADF +0xD59D 0x8AE0 +0xD59E 0x8AE1 +0xD59F 0x8AE2 +0xD5A0 0x8AE3 +0xD5A1 0x94E1 +0xD5A2 0x95F8 +0xD5A3 0x7728 +0xD5A4 0x6805 +0xD5A5 0x69A8 +0xD5A6 0x548B +0xD5A7 0x4E4D +0xD5A8 0x70B8 +0xD5A9 0x8BC8 +0xD5AA 0x6458 +0xD5AB 0x658B +0xD5AC 0x5B85 +0xD5AD 0x7A84 +0xD5AE 0x503A +0xD5AF 0x5BE8 +0xD5B0 0x77BB +0xD5B1 0x6BE1 +0xD5B2 0x8A79 +0xD5B3 0x7C98 +0xD5B4 0x6CBE +0xD5B5 0x76CF +0xD5B6 0x65A9 +0xD5B7 0x8F97 +0xD5B8 0x5D2D +0xD5B9 0x5C55 +0xD5BA 0x8638 +0xD5BB 0x6808 +0xD5BC 0x5360 +0xD5BD 0x6218 +0xD5BE 0x7AD9 +0xD5BF 0x6E5B +0xD5C0 0x7EFD +0xD5C1 0x6A1F +0xD5C2 0x7AE0 +0xD5C3 0x5F70 +0xD5C4 0x6F33 +0xD5C5 0x5F20 +0xD5C6 0x638C +0xD5C7 0x6DA8 +0xD5C8 0x6756 +0xD5C9 0x4E08 +0xD5CA 0x5E10 +0xD5CB 0x8D26 +0xD5CC 0x4ED7 +0xD5CD 0x80C0 +0xD5CE 0x7634 +0xD5CF 0x969C +0xD5D0 0x62DB +0xD5D1 0x662D +0xD5D2 0x627E +0xD5D3 0x6CBC +0xD5D4 0x8D75 +0xD5D5 0x7167 +0xD5D6 0x7F69 +0xD5D7 0x5146 +0xD5D8 0x8087 +0xD5D9 0x53EC +0xD5DA 0x906E +0xD5DB 0x6298 +0xD5DC 0x54F2 +0xD5DD 0x86F0 +0xD5DE 0x8F99 +0xD5DF 0x8005 +0xD5E0 0x9517 +0xD5E1 0x8517 +0xD5E2 0x8FD9 +0xD5E3 0x6D59 +0xD5E4 0x73CD +0xD5E5 0x659F +0xD5E6 0x771F +0xD5E7 0x7504 +0xD5E8 0x7827 +0xD5E9 0x81FB +0xD5EA 0x8D1E +0xD5EB 0x9488 +0xD5EC 0x4FA6 +0xD5ED 0x6795 +0xD5EE 0x75B9 +0xD5EF 0x8BCA +0xD5F0 0x9707 +0xD5F1 0x632F +0xD5F2 0x9547 +0xD5F3 0x9635 +0xD5F4 0x84B8 +0xD5F5 0x6323 +0xD5F6 0x7741 +0xD5F7 0x5F81 +0xD5F8 0x72F0 +0xD5F9 0x4E89 +0xD5FA 0x6014 +0xD5FB 0x6574 +0xD5FC 0x62EF +0xD5FD 0x6B63 +0xD5FE 0x653F +0xD640 0x8AE4 +0xD641 0x8AE5 +0xD642 0x8AE6 +0xD643 0x8AE7 +0xD644 0x8AE8 +0xD645 0x8AE9 +0xD646 0x8AEA +0xD647 0x8AEB +0xD648 0x8AEC +0xD649 0x8AED +0xD64A 0x8AEE +0xD64B 0x8AEF +0xD64C 0x8AF0 +0xD64D 0x8AF1 +0xD64E 0x8AF2 +0xD64F 0x8AF3 +0xD650 0x8AF4 +0xD651 0x8AF5 +0xD652 0x8AF6 +0xD653 0x8AF7 +0xD654 0x8AF8 +0xD655 0x8AF9 +0xD656 0x8AFA +0xD657 0x8AFB +0xD658 0x8AFC +0xD659 0x8AFD +0xD65A 0x8AFE +0xD65B 0x8AFF +0xD65C 0x8B00 +0xD65D 0x8B01 +0xD65E 0x8B02 +0xD65F 0x8B03 +0xD660 0x8B04 +0xD661 0x8B05 +0xD662 0x8B06 +0xD663 0x8B08 +0xD664 0x8B09 +0xD665 0x8B0A +0xD666 0x8B0B +0xD667 0x8B0C +0xD668 0x8B0D +0xD669 0x8B0E +0xD66A 0x8B0F +0xD66B 0x8B10 +0xD66C 0x8B11 +0xD66D 0x8B12 +0xD66E 0x8B13 +0xD66F 0x8B14 +0xD670 0x8B15 +0xD671 0x8B16 +0xD672 0x8B17 +0xD673 0x8B18 +0xD674 0x8B19 +0xD675 0x8B1A +0xD676 0x8B1B +0xD677 0x8B1C +0xD678 0x8B1D +0xD679 0x8B1E +0xD67A 0x8B1F +0xD67B 0x8B20 +0xD67C 0x8B21 +0xD67D 0x8B22 +0xD67E 0x8B23 +0xD680 0x8B24 +0xD681 0x8B25 +0xD682 0x8B27 +0xD683 0x8B28 +0xD684 0x8B29 +0xD685 0x8B2A +0xD686 0x8B2B +0xD687 0x8B2C +0xD688 0x8B2D +0xD689 0x8B2E +0xD68A 0x8B2F +0xD68B 0x8B30 +0xD68C 0x8B31 +0xD68D 0x8B32 +0xD68E 0x8B33 +0xD68F 0x8B34 +0xD690 0x8B35 +0xD691 0x8B36 +0xD692 0x8B37 +0xD693 0x8B38 +0xD694 0x8B39 +0xD695 0x8B3A +0xD696 0x8B3B +0xD697 0x8B3C +0xD698 0x8B3D +0xD699 0x8B3E +0xD69A 0x8B3F +0xD69B 0x8B40 +0xD69C 0x8B41 +0xD69D 0x8B42 +0xD69E 0x8B43 +0xD69F 0x8B44 +0xD6A0 0x8B45 +0xD6A1 0x5E27 +0xD6A2 0x75C7 +0xD6A3 0x90D1 +0xD6A4 0x8BC1 +0xD6A5 0x829D +0xD6A6 0x679D +0xD6A7 0x652F +0xD6A8 0x5431 +0xD6A9 0x8718 +0xD6AA 0x77E5 +0xD6AB 0x80A2 +0xD6AC 0x8102 +0xD6AD 0x6C41 +0xD6AE 0x4E4B +0xD6AF 0x7EC7 +0xD6B0 0x804C +0xD6B1 0x76F4 +0xD6B2 0x690D +0xD6B3 0x6B96 +0xD6B4 0x6267 +0xD6B5 0x503C +0xD6B6 0x4F84 +0xD6B7 0x5740 +0xD6B8 0x6307 +0xD6B9 0x6B62 +0xD6BA 0x8DBE +0xD6BB 0x53EA +0xD6BC 0x65E8 +0xD6BD 0x7EB8 +0xD6BE 0x5FD7 +0xD6BF 0x631A +0xD6C0 0x63B7 +0xD6C1 0x81F3 +0xD6C2 0x81F4 +0xD6C3 0x7F6E +0xD6C4 0x5E1C +0xD6C5 0x5CD9 +0xD6C6 0x5236 +0xD6C7 0x667A +0xD6C8 0x79E9 +0xD6C9 0x7A1A +0xD6CA 0x8D28 +0xD6CB 0x7099 +0xD6CC 0x75D4 +0xD6CD 0x6EDE +0xD6CE 0x6CBB +0xD6CF 0x7A92 +0xD6D0 0x4E2D +0xD6D1 0x76C5 +0xD6D2 0x5FE0 +0xD6D3 0x949F +0xD6D4 0x8877 +0xD6D5 0x7EC8 +0xD6D6 0x79CD +0xD6D7 0x80BF +0xD6D8 0x91CD +0xD6D9 0x4EF2 +0xD6DA 0x4F17 +0xD6DB 0x821F +0xD6DC 0x5468 +0xD6DD 0x5DDE +0xD6DE 0x6D32 +0xD6DF 0x8BCC +0xD6E0 0x7CA5 +0xD6E1 0x8F74 +0xD6E2 0x8098 +0xD6E3 0x5E1A +0xD6E4 0x5492 +0xD6E5 0x76B1 +0xD6E6 0x5B99 +0xD6E7 0x663C +0xD6E8 0x9AA4 +0xD6E9 0x73E0 +0xD6EA 0x682A +0xD6EB 0x86DB +0xD6EC 0x6731 +0xD6ED 0x732A +0xD6EE 0x8BF8 +0xD6EF 0x8BDB +0xD6F0 0x9010 +0xD6F1 0x7AF9 +0xD6F2 0x70DB +0xD6F3 0x716E +0xD6F4 0x62C4 +0xD6F5 0x77A9 +0xD6F6 0x5631 +0xD6F7 0x4E3B +0xD6F8 0x8457 +0xD6F9 0x67F1 +0xD6FA 0x52A9 +0xD6FB 0x86C0 +0xD6FC 0x8D2E +0xD6FD 0x94F8 +0xD6FE 0x7B51 +0xD740 0x8B46 +0xD741 0x8B47 +0xD742 0x8B48 +0xD743 0x8B49 +0xD744 0x8B4A +0xD745 0x8B4B +0xD746 0x8B4C +0xD747 0x8B4D +0xD748 0x8B4E +0xD749 0x8B4F +0xD74A 0x8B50 +0xD74B 0x8B51 +0xD74C 0x8B52 +0xD74D 0x8B53 +0xD74E 0x8B54 +0xD74F 0x8B55 +0xD750 0x8B56 +0xD751 0x8B57 +0xD752 0x8B58 +0xD753 0x8B59 +0xD754 0x8B5A +0xD755 0x8B5B +0xD756 0x8B5C +0xD757 0x8B5D +0xD758 0x8B5E +0xD759 0x8B5F +0xD75A 0x8B60 +0xD75B 0x8B61 +0xD75C 0x8B62 +0xD75D 0x8B63 +0xD75E 0x8B64 +0xD75F 0x8B65 +0xD760 0x8B67 +0xD761 0x8B68 +0xD762 0x8B69 +0xD763 0x8B6A +0xD764 0x8B6B +0xD765 0x8B6D +0xD766 0x8B6E +0xD767 0x8B6F +0xD768 0x8B70 +0xD769 0x8B71 +0xD76A 0x8B72 +0xD76B 0x8B73 +0xD76C 0x8B74 +0xD76D 0x8B75 +0xD76E 0x8B76 +0xD76F 0x8B77 +0xD770 0x8B78 +0xD771 0x8B79 +0xD772 0x8B7A +0xD773 0x8B7B +0xD774 0x8B7C +0xD775 0x8B7D +0xD776 0x8B7E +0xD777 0x8B7F +0xD778 0x8B80 +0xD779 0x8B81 +0xD77A 0x8B82 +0xD77B 0x8B83 +0xD77C 0x8B84 +0xD77D 0x8B85 +0xD77E 0x8B86 +0xD780 0x8B87 +0xD781 0x8B88 +0xD782 0x8B89 +0xD783 0x8B8A +0xD784 0x8B8B +0xD785 0x8B8C +0xD786 0x8B8D +0xD787 0x8B8E +0xD788 0x8B8F +0xD789 0x8B90 +0xD78A 0x8B91 +0xD78B 0x8B92 +0xD78C 0x8B93 +0xD78D 0x8B94 +0xD78E 0x8B95 +0xD78F 0x8B96 +0xD790 0x8B97 +0xD791 0x8B98 +0xD792 0x8B99 +0xD793 0x8B9A +0xD794 0x8B9B +0xD795 0x8B9C +0xD796 0x8B9D +0xD797 0x8B9E +0xD798 0x8B9F +0xD799 0x8BAC +0xD79A 0x8BB1 +0xD79B 0x8BBB +0xD79C 0x8BC7 +0xD79D 0x8BD0 +0xD79E 0x8BEA +0xD79F 0x8C09 +0xD7A0 0x8C1E +0xD7A1 0x4F4F +0xD7A2 0x6CE8 +0xD7A3 0x795D +0xD7A4 0x9A7B +0xD7A5 0x6293 +0xD7A6 0x722A +0xD7A7 0x62FD +0xD7A8 0x4E13 +0xD7A9 0x7816 +0xD7AA 0x8F6C +0xD7AB 0x64B0 +0xD7AC 0x8D5A +0xD7AD 0x7BC6 +0xD7AE 0x6869 +0xD7AF 0x5E84 +0xD7B0 0x88C5 +0xD7B1 0x5986 +0xD7B2 0x649E +0xD7B3 0x58EE +0xD7B4 0x72B6 +0xD7B5 0x690E +0xD7B6 0x9525 +0xD7B7 0x8FFD +0xD7B8 0x8D58 +0xD7B9 0x5760 +0xD7BA 0x7F00 +0xD7BB 0x8C06 +0xD7BC 0x51C6 +0xD7BD 0x6349 +0xD7BE 0x62D9 +0xD7BF 0x5353 +0xD7C0 0x684C +0xD7C1 0x7422 +0xD7C2 0x8301 +0xD7C3 0x914C +0xD7C4 0x5544 +0xD7C5 0x7740 +0xD7C6 0x707C +0xD7C7 0x6D4A +0xD7C8 0x5179 +0xD7C9 0x54A8 +0xD7CA 0x8D44 +0xD7CB 0x59FF +0xD7CC 0x6ECB +0xD7CD 0x6DC4 +0xD7CE 0x5B5C +0xD7CF 0x7D2B +0xD7D0 0x4ED4 +0xD7D1 0x7C7D +0xD7D2 0x6ED3 +0xD7D3 0x5B50 +0xD7D4 0x81EA +0xD7D5 0x6E0D +0xD7D6 0x5B57 +0xD7D7 0x9B03 +0xD7D8 0x68D5 +0xD7D9 0x8E2A +0xD7DA 0x5B97 +0xD7DB 0x7EFC +0xD7DC 0x603B +0xD7DD 0x7EB5 +0xD7DE 0x90B9 +0xD7DF 0x8D70 +0xD7E0 0x594F +0xD7E1 0x63CD +0xD7E2 0x79DF +0xD7E3 0x8DB3 +0xD7E4 0x5352 +0xD7E5 0x65CF +0xD7E6 0x7956 +0xD7E7 0x8BC5 +0xD7E8 0x963B +0xD7E9 0x7EC4 +0xD7EA 0x94BB +0xD7EB 0x7E82 +0xD7EC 0x5634 +0xD7ED 0x9189 +0xD7EE 0x6700 +0xD7EF 0x7F6A +0xD7F0 0x5C0A +0xD7F1 0x9075 +0xD7F2 0x6628 +0xD7F3 0x5DE6 +0xD7F4 0x4F50 +0xD7F5 0x67DE +0xD7F6 0x505A +0xD7F7 0x4F5C +0xD7F8 0x5750 +0xD7F9 0x5EA7 +0xD840 0x8C38 +0xD841 0x8C39 +0xD842 0x8C3A +0xD843 0x8C3B +0xD844 0x8C3C +0xD845 0x8C3D +0xD846 0x8C3E +0xD847 0x8C3F +0xD848 0x8C40 +0xD849 0x8C42 +0xD84A 0x8C43 +0xD84B 0x8C44 +0xD84C 0x8C45 +0xD84D 0x8C48 +0xD84E 0x8C4A +0xD84F 0x8C4B +0xD850 0x8C4D +0xD851 0x8C4E +0xD852 0x8C4F +0xD853 0x8C50 +0xD854 0x8C51 +0xD855 0x8C52 +0xD856 0x8C53 +0xD857 0x8C54 +0xD858 0x8C56 +0xD859 0x8C57 +0xD85A 0x8C58 +0xD85B 0x8C59 +0xD85C 0x8C5B +0xD85D 0x8C5C +0xD85E 0x8C5D +0xD85F 0x8C5E +0xD860 0x8C5F +0xD861 0x8C60 +0xD862 0x8C63 +0xD863 0x8C64 +0xD864 0x8C65 +0xD865 0x8C66 +0xD866 0x8C67 +0xD867 0x8C68 +0xD868 0x8C69 +0xD869 0x8C6C +0xD86A 0x8C6D +0xD86B 0x8C6E +0xD86C 0x8C6F +0xD86D 0x8C70 +0xD86E 0x8C71 +0xD86F 0x8C72 +0xD870 0x8C74 +0xD871 0x8C75 +0xD872 0x8C76 +0xD873 0x8C77 +0xD874 0x8C7B +0xD875 0x8C7C +0xD876 0x8C7D +0xD877 0x8C7E +0xD878 0x8C7F +0xD879 0x8C80 +0xD87A 0x8C81 +0xD87B 0x8C83 +0xD87C 0x8C84 +0xD87D 0x8C86 +0xD87E 0x8C87 +0xD880 0x8C88 +0xD881 0x8C8B +0xD882 0x8C8D +0xD883 0x8C8E +0xD884 0x8C8F +0xD885 0x8C90 +0xD886 0x8C91 +0xD887 0x8C92 +0xD888 0x8C93 +0xD889 0x8C95 +0xD88A 0x8C96 +0xD88B 0x8C97 +0xD88C 0x8C99 +0xD88D 0x8C9A +0xD88E 0x8C9B +0xD88F 0x8C9C +0xD890 0x8C9D +0xD891 0x8C9E +0xD892 0x8C9F +0xD893 0x8CA0 +0xD894 0x8CA1 +0xD895 0x8CA2 +0xD896 0x8CA3 +0xD897 0x8CA4 +0xD898 0x8CA5 +0xD899 0x8CA6 +0xD89A 0x8CA7 +0xD89B 0x8CA8 +0xD89C 0x8CA9 +0xD89D 0x8CAA +0xD89E 0x8CAB +0xD89F 0x8CAC +0xD8A0 0x8CAD +0xD8A1 0x4E8D +0xD8A2 0x4E0C +0xD8A3 0x5140 +0xD8A4 0x4E10 +0xD8A5 0x5EFF +0xD8A6 0x5345 +0xD8A7 0x4E15 +0xD8A8 0x4E98 +0xD8A9 0x4E1E +0xD8AA 0x9B32 +0xD8AB 0x5B6C +0xD8AC 0x5669 +0xD8AD 0x4E28 +0xD8AE 0x79BA +0xD8AF 0x4E3F +0xD8B0 0x5315 +0xD8B1 0x4E47 +0xD8B2 0x592D +0xD8B3 0x723B +0xD8B4 0x536E +0xD8B5 0x6C10 +0xD8B6 0x56DF +0xD8B7 0x80E4 +0xD8B8 0x9997 +0xD8B9 0x6BD3 +0xD8BA 0x777E +0xD8BB 0x9F17 +0xD8BC 0x4E36 +0xD8BD 0x4E9F +0xD8BE 0x9F10 +0xD8BF 0x4E5C +0xD8C0 0x4E69 +0xD8C1 0x4E93 +0xD8C2 0x8288 +0xD8C3 0x5B5B +0xD8C4 0x556C +0xD8C5 0x560F +0xD8C6 0x4EC4 +0xD8C7 0x538D +0xD8C8 0x539D +0xD8C9 0x53A3 +0xD8CA 0x53A5 +0xD8CB 0x53AE +0xD8CC 0x9765 +0xD8CD 0x8D5D +0xD8CE 0x531A +0xD8CF 0x53F5 +0xD8D0 0x5326 +0xD8D1 0x532E +0xD8D2 0x533E +0xD8D3 0x8D5C +0xD8D4 0x5366 +0xD8D5 0x5363 +0xD8D6 0x5202 +0xD8D7 0x5208 +0xD8D8 0x520E +0xD8D9 0x522D +0xD8DA 0x5233 +0xD8DB 0x523F +0xD8DC 0x5240 +0xD8DD 0x524C +0xD8DE 0x525E +0xD8DF 0x5261 +0xD8E0 0x525C +0xD8E1 0x84AF +0xD8E2 0x527D +0xD8E3 0x5282 +0xD8E4 0x5281 +0xD8E5 0x5290 +0xD8E6 0x5293 +0xD8E7 0x5182 +0xD8E8 0x7F54 +0xD8E9 0x4EBB +0xD8EA 0x4EC3 +0xD8EB 0x4EC9 +0xD8EC 0x4EC2 +0xD8ED 0x4EE8 +0xD8EE 0x4EE1 +0xD8EF 0x4EEB +0xD8F0 0x4EDE +0xD8F1 0x4F1B +0xD8F2 0x4EF3 +0xD8F3 0x4F22 +0xD8F4 0x4F64 +0xD8F5 0x4EF5 +0xD8F6 0x4F25 +0xD8F7 0x4F27 +0xD8F8 0x4F09 +0xD8F9 0x4F2B +0xD8FA 0x4F5E +0xD8FB 0x4F67 +0xD8FC 0x6538 +0xD8FD 0x4F5A +0xD8FE 0x4F5D +0xD940 0x8CAE +0xD941 0x8CAF +0xD942 0x8CB0 +0xD943 0x8CB1 +0xD944 0x8CB2 +0xD945 0x8CB3 +0xD946 0x8CB4 +0xD947 0x8CB5 +0xD948 0x8CB6 +0xD949 0x8CB7 +0xD94A 0x8CB8 +0xD94B 0x8CB9 +0xD94C 0x8CBA +0xD94D 0x8CBB +0xD94E 0x8CBC +0xD94F 0x8CBD +0xD950 0x8CBE +0xD951 0x8CBF +0xD952 0x8CC0 +0xD953 0x8CC1 +0xD954 0x8CC2 +0xD955 0x8CC3 +0xD956 0x8CC4 +0xD957 0x8CC5 +0xD958 0x8CC6 +0xD959 0x8CC7 +0xD95A 0x8CC8 +0xD95B 0x8CC9 +0xD95C 0x8CCA +0xD95D 0x8CCB +0xD95E 0x8CCC +0xD95F 0x8CCD +0xD960 0x8CCE +0xD961 0x8CCF +0xD962 0x8CD0 +0xD963 0x8CD1 +0xD964 0x8CD2 +0xD965 0x8CD3 +0xD966 0x8CD4 +0xD967 0x8CD5 +0xD968 0x8CD6 +0xD969 0x8CD7 +0xD96A 0x8CD8 +0xD96B 0x8CD9 +0xD96C 0x8CDA +0xD96D 0x8CDB +0xD96E 0x8CDC +0xD96F 0x8CDD +0xD970 0x8CDE +0xD971 0x8CDF +0xD972 0x8CE0 +0xD973 0x8CE1 +0xD974 0x8CE2 +0xD975 0x8CE3 +0xD976 0x8CE4 +0xD977 0x8CE5 +0xD978 0x8CE6 +0xD979 0x8CE7 +0xD97A 0x8CE8 +0xD97B 0x8CE9 +0xD97C 0x8CEA +0xD97D 0x8CEB +0xD97E 0x8CEC +0xD980 0x8CED +0xD981 0x8CEE +0xD982 0x8CEF +0xD983 0x8CF0 +0xD984 0x8CF1 +0xD985 0x8CF2 +0xD986 0x8CF3 +0xD987 0x8CF4 +0xD988 0x8CF5 +0xD989 0x8CF6 +0xD98A 0x8CF7 +0xD98B 0x8CF8 +0xD98C 0x8CF9 +0xD98D 0x8CFA +0xD98E 0x8CFB +0xD98F 0x8CFC +0xD990 0x8CFD +0xD991 0x8CFE +0xD992 0x8CFF +0xD993 0x8D00 +0xD994 0x8D01 +0xD995 0x8D02 +0xD996 0x8D03 +0xD997 0x8D04 +0xD998 0x8D05 +0xD999 0x8D06 +0xD99A 0x8D07 +0xD99B 0x8D08 +0xD99C 0x8D09 +0xD99D 0x8D0A +0xD99E 0x8D0B +0xD99F 0x8D0C +0xD9A0 0x8D0D +0xD9A1 0x4F5F +0xD9A2 0x4F57 +0xD9A3 0x4F32 +0xD9A4 0x4F3D +0xD9A5 0x4F76 +0xD9A6 0x4F74 +0xD9A7 0x4F91 +0xD9A8 0x4F89 +0xD9A9 0x4F83 +0xD9AA 0x4F8F +0xD9AB 0x4F7E +0xD9AC 0x4F7B +0xD9AD 0x4FAA +0xD9AE 0x4F7C +0xD9AF 0x4FAC +0xD9B0 0x4F94 +0xD9B1 0x4FE6 +0xD9B2 0x4FE8 +0xD9B3 0x4FEA +0xD9B4 0x4FC5 +0xD9B5 0x4FDA +0xD9B6 0x4FE3 +0xD9B7 0x4FDC +0xD9B8 0x4FD1 +0xD9B9 0x4FDF +0xD9BA 0x4FF8 +0xD9BB 0x5029 +0xD9BC 0x504C +0xD9BD 0x4FF3 +0xD9BE 0x502C +0xD9BF 0x500F +0xD9C0 0x502E +0xD9C1 0x502D +0xD9C2 0x4FFE +0xD9C3 0x501C +0xD9C4 0x500C +0xD9C5 0x5025 +0xD9C6 0x5028 +0xD9C7 0x507E +0xD9C8 0x5043 +0xD9C9 0x5055 +0xD9CA 0x5048 +0xD9CB 0x504E +0xD9CC 0x506C +0xD9CD 0x507B +0xD9CE 0x50A5 +0xD9CF 0x50A7 +0xD9D0 0x50A9 +0xD9D1 0x50BA +0xD9D2 0x50D6 +0xD9D3 0x5106 +0xD9D4 0x50ED +0xD9D5 0x50EC +0xD9D6 0x50E6 +0xD9D7 0x50EE +0xD9D8 0x5107 +0xD9D9 0x510B +0xD9DA 0x4EDD +0xD9DB 0x6C3D +0xD9DC 0x4F58 +0xD9DD 0x4F65 +0xD9DE 0x4FCE +0xD9DF 0x9FA0 +0xD9E0 0x6C46 +0xD9E1 0x7C74 +0xD9E2 0x516E +0xD9E3 0x5DFD +0xD9E4 0x9EC9 +0xD9E5 0x9998 +0xD9E6 0x5181 +0xD9E7 0x5914 +0xD9E8 0x52F9 +0xD9E9 0x530D +0xD9EA 0x8A07 +0xD9EB 0x5310 +0xD9EC 0x51EB +0xD9ED 0x5919 +0xD9EE 0x5155 +0xD9EF 0x4EA0 +0xD9F0 0x5156 +0xD9F1 0x4EB3 +0xD9F2 0x886E +0xD9F3 0x88A4 +0xD9F4 0x4EB5 +0xD9F5 0x8114 +0xD9F6 0x88D2 +0xD9F7 0x7980 +0xD9F8 0x5B34 +0xD9F9 0x8803 +0xD9FA 0x7FB8 +0xD9FB 0x51AB +0xD9FC 0x51B1 +0xD9FD 0x51BD +0xD9FE 0x51BC +0xDA40 0x8D0E +0xDA41 0x8D0F +0xDA42 0x8D10 +0xDA43 0x8D11 +0xDA44 0x8D12 +0xDA45 0x8D13 +0xDA46 0x8D14 +0xDA47 0x8D15 +0xDA48 0x8D16 +0xDA49 0x8D17 +0xDA4A 0x8D18 +0xDA4B 0x8D19 +0xDA4C 0x8D1A +0xDA4D 0x8D1B +0xDA4E 0x8D1C +0xDA4F 0x8D20 +0xDA50 0x8D51 +0xDA51 0x8D52 +0xDA52 0x8D57 +0xDA53 0x8D5F +0xDA54 0x8D65 +0xDA55 0x8D68 +0xDA56 0x8D69 +0xDA57 0x8D6A +0xDA58 0x8D6C +0xDA59 0x8D6E +0xDA5A 0x8D6F +0xDA5B 0x8D71 +0xDA5C 0x8D72 +0xDA5D 0x8D78 +0xDA5E 0x8D79 +0xDA5F 0x8D7A +0xDA60 0x8D7B +0xDA61 0x8D7C +0xDA62 0x8D7D +0xDA63 0x8D7E +0xDA64 0x8D7F +0xDA65 0x8D80 +0xDA66 0x8D82 +0xDA67 0x8D83 +0xDA68 0x8D86 +0xDA69 0x8D87 +0xDA6A 0x8D88 +0xDA6B 0x8D89 +0xDA6C 0x8D8C +0xDA6D 0x8D8D +0xDA6E 0x8D8E +0xDA6F 0x8D8F +0xDA70 0x8D90 +0xDA71 0x8D92 +0xDA72 0x8D93 +0xDA73 0x8D95 +0xDA74 0x8D96 +0xDA75 0x8D97 +0xDA76 0x8D98 +0xDA77 0x8D99 +0xDA78 0x8D9A +0xDA79 0x8D9B +0xDA7A 0x8D9C +0xDA7B 0x8D9D +0xDA7C 0x8D9E +0xDA7D 0x8DA0 +0xDA7E 0x8DA1 +0xDA80 0x8DA2 +0xDA81 0x8DA4 +0xDA82 0x8DA5 +0xDA83 0x8DA6 +0xDA84 0x8DA7 +0xDA85 0x8DA8 +0xDA86 0x8DA9 +0xDA87 0x8DAA +0xDA88 0x8DAB +0xDA89 0x8DAC +0xDA8A 0x8DAD +0xDA8B 0x8DAE +0xDA8C 0x8DAF +0xDA8D 0x8DB0 +0xDA8E 0x8DB2 +0xDA8F 0x8DB6 +0xDA90 0x8DB7 +0xDA91 0x8DB9 +0xDA92 0x8DBB +0xDA93 0x8DBD +0xDA94 0x8DC0 +0xDA95 0x8DC1 +0xDA96 0x8DC2 +0xDA97 0x8DC5 +0xDA98 0x8DC7 +0xDA99 0x8DC8 +0xDA9A 0x8DC9 +0xDA9B 0x8DCA +0xDA9C 0x8DCD +0xDA9D 0x8DD0 +0xDA9E 0x8DD2 +0xDA9F 0x8DD3 +0xDAA0 0x8DD4 +0xDAA1 0x51C7 +0xDAA2 0x5196 +0xDAA3 0x51A2 +0xDAA4 0x51A5 +0xDAA5 0x8BA0 +0xDAA6 0x8BA6 +0xDAA7 0x8BA7 +0xDAA8 0x8BAA +0xDAA9 0x8BB4 +0xDAAA 0x8BB5 +0xDAAB 0x8BB7 +0xDAAC 0x8BC2 +0xDAAD 0x8BC3 +0xDAAE 0x8BCB +0xDAAF 0x8BCF +0xDAB0 0x8BCE +0xDAB1 0x8BD2 +0xDAB2 0x8BD3 +0xDAB3 0x8BD4 +0xDAB4 0x8BD6 +0xDAB5 0x8BD8 +0xDAB6 0x8BD9 +0xDAB7 0x8BDC +0xDAB8 0x8BDF +0xDAB9 0x8BE0 +0xDABA 0x8BE4 +0xDABB 0x8BE8 +0xDABC 0x8BE9 +0xDABD 0x8BEE +0xDABE 0x8BF0 +0xDABF 0x8BF3 +0xDAC0 0x8BF6 +0xDAC1 0x8BF9 +0xDAC2 0x8BFC +0xDAC3 0x8BFF +0xDAC4 0x8C00 +0xDAC5 0x8C02 +0xDAC6 0x8C04 +0xDAC7 0x8C07 +0xDAC8 0x8C0C +0xDAC9 0x8C0F +0xDACA 0x8C11 +0xDACB 0x8C12 +0xDACC 0x8C14 +0xDACD 0x8C15 +0xDACE 0x8C16 +0xDACF 0x8C19 +0xDAD0 0x8C1B +0xDAD1 0x8C18 +0xDAD2 0x8C1D +0xDAD3 0x8C1F +0xDAD4 0x8C20 +0xDAD5 0x8C21 +0xDAD6 0x8C25 +0xDAD7 0x8C27 +0xDAD8 0x8C2A +0xDAD9 0x8C2B +0xDADA 0x8C2E +0xDADB 0x8C2F +0xDADC 0x8C32 +0xDADD 0x8C33 +0xDADE 0x8C35 +0xDADF 0x8C36 +0xDAE0 0x5369 +0xDAE1 0x537A +0xDAE2 0x961D +0xDAE3 0x9622 +0xDAE4 0x9621 +0xDAE5 0x9631 +0xDAE6 0x962A +0xDAE7 0x963D +0xDAE8 0x963C +0xDAE9 0x9642 +0xDAEA 0x9649 +0xDAEB 0x9654 +0xDAEC 0x965F +0xDAED 0x9667 +0xDAEE 0x966C +0xDAEF 0x9672 +0xDAF0 0x9674 +0xDAF1 0x9688 +0xDAF2 0x968D +0xDAF3 0x9697 +0xDAF4 0x96B0 +0xDAF5 0x9097 +0xDAF6 0x909B +0xDAF7 0x909D +0xDAF8 0x9099 +0xDAF9 0x90AC +0xDAFA 0x90A1 +0xDAFB 0x90B4 +0xDAFC 0x90B3 +0xDAFD 0x90B6 +0xDAFE 0x90BA +0xDB40 0x8DD5 +0xDB41 0x8DD8 +0xDB42 0x8DD9 +0xDB43 0x8DDC +0xDB44 0x8DE0 +0xDB45 0x8DE1 +0xDB46 0x8DE2 +0xDB47 0x8DE5 +0xDB48 0x8DE6 +0xDB49 0x8DE7 +0xDB4A 0x8DE9 +0xDB4B 0x8DED +0xDB4C 0x8DEE +0xDB4D 0x8DF0 +0xDB4E 0x8DF1 +0xDB4F 0x8DF2 +0xDB50 0x8DF4 +0xDB51 0x8DF6 +0xDB52 0x8DFC +0xDB53 0x8DFE +0xDB54 0x8DFF +0xDB55 0x8E00 +0xDB56 0x8E01 +0xDB57 0x8E02 +0xDB58 0x8E03 +0xDB59 0x8E04 +0xDB5A 0x8E06 +0xDB5B 0x8E07 +0xDB5C 0x8E08 +0xDB5D 0x8E0B +0xDB5E 0x8E0D +0xDB5F 0x8E0E +0xDB60 0x8E10 +0xDB61 0x8E11 +0xDB62 0x8E12 +0xDB63 0x8E13 +0xDB64 0x8E15 +0xDB65 0x8E16 +0xDB66 0x8E17 +0xDB67 0x8E18 +0xDB68 0x8E19 +0xDB69 0x8E1A +0xDB6A 0x8E1B +0xDB6B 0x8E1C +0xDB6C 0x8E20 +0xDB6D 0x8E21 +0xDB6E 0x8E24 +0xDB6F 0x8E25 +0xDB70 0x8E26 +0xDB71 0x8E27 +0xDB72 0x8E28 +0xDB73 0x8E2B +0xDB74 0x8E2D +0xDB75 0x8E30 +0xDB76 0x8E32 +0xDB77 0x8E33 +0xDB78 0x8E34 +0xDB79 0x8E36 +0xDB7A 0x8E37 +0xDB7B 0x8E38 +0xDB7C 0x8E3B +0xDB7D 0x8E3C +0xDB7E 0x8E3E +0xDB80 0x8E3F +0xDB81 0x8E43 +0xDB82 0x8E45 +0xDB83 0x8E46 +0xDB84 0x8E4C +0xDB85 0x8E4D +0xDB86 0x8E4E +0xDB87 0x8E4F +0xDB88 0x8E50 +0xDB89 0x8E53 +0xDB8A 0x8E54 +0xDB8B 0x8E55 +0xDB8C 0x8E56 +0xDB8D 0x8E57 +0xDB8E 0x8E58 +0xDB8F 0x8E5A +0xDB90 0x8E5B +0xDB91 0x8E5C +0xDB92 0x8E5D +0xDB93 0x8E5E +0xDB94 0x8E5F +0xDB95 0x8E60 +0xDB96 0x8E61 +0xDB97 0x8E62 +0xDB98 0x8E63 +0xDB99 0x8E64 +0xDB9A 0x8E65 +0xDB9B 0x8E67 +0xDB9C 0x8E68 +0xDB9D 0x8E6A +0xDB9E 0x8E6B +0xDB9F 0x8E6E +0xDBA0 0x8E71 +0xDBA1 0x90B8 +0xDBA2 0x90B0 +0xDBA3 0x90CF +0xDBA4 0x90C5 +0xDBA5 0x90BE +0xDBA6 0x90D0 +0xDBA7 0x90C4 +0xDBA8 0x90C7 +0xDBA9 0x90D3 +0xDBAA 0x90E6 +0xDBAB 0x90E2 +0xDBAC 0x90DC +0xDBAD 0x90D7 +0xDBAE 0x90DB +0xDBAF 0x90EB +0xDBB0 0x90EF +0xDBB1 0x90FE +0xDBB2 0x9104 +0xDBB3 0x9122 +0xDBB4 0x911E +0xDBB5 0x9123 +0xDBB6 0x9131 +0xDBB7 0x912F +0xDBB8 0x9139 +0xDBB9 0x9143 +0xDBBA 0x9146 +0xDBBB 0x520D +0xDBBC 0x5942 +0xDBBD 0x52A2 +0xDBBE 0x52AC +0xDBBF 0x52AD +0xDBC0 0x52BE +0xDBC1 0x54FF +0xDBC2 0x52D0 +0xDBC3 0x52D6 +0xDBC4 0x52F0 +0xDBC5 0x53DF +0xDBC6 0x71EE +0xDBC7 0x77CD +0xDBC8 0x5EF4 +0xDBC9 0x51F5 +0xDBCA 0x51FC +0xDBCB 0x9B2F +0xDBCC 0x53B6 +0xDBCD 0x5F01 +0xDBCE 0x755A +0xDBCF 0x5DEF +0xDBD0 0x574C +0xDBD1 0x57A9 +0xDBD2 0x57A1 +0xDBD3 0x587E +0xDBD4 0x58BC +0xDBD5 0x58C5 +0xDBD6 0x58D1 +0xDBD7 0x5729 +0xDBD8 0x572C +0xDBD9 0x572A +0xDBDA 0x5733 +0xDBDB 0x5739 +0xDBDC 0x572E +0xDBDD 0x572F +0xDBDE 0x575C +0xDBDF 0x573B +0xDBE0 0x5742 +0xDBE1 0x5769 +0xDBE2 0x5785 +0xDBE3 0x576B +0xDBE4 0x5786 +0xDBE5 0x577C +0xDBE6 0x577B +0xDBE7 0x5768 +0xDBE8 0x576D +0xDBE9 0x5776 +0xDBEA 0x5773 +0xDBEB 0x57AD +0xDBEC 0x57A4 +0xDBED 0x578C +0xDBEE 0x57B2 +0xDBEF 0x57CF +0xDBF0 0x57A7 +0xDBF1 0x57B4 +0xDBF2 0x5793 +0xDBF3 0x57A0 +0xDBF4 0x57D5 +0xDBF5 0x57D8 +0xDBF6 0x57DA +0xDBF7 0x57D9 +0xDBF8 0x57D2 +0xDBF9 0x57B8 +0xDBFA 0x57F4 +0xDBFB 0x57EF +0xDBFC 0x57F8 +0xDBFD 0x57E4 +0xDBFE 0x57DD +0xDC40 0x8E73 +0xDC41 0x8E75 +0xDC42 0x8E77 +0xDC43 0x8E78 +0xDC44 0x8E79 +0xDC45 0x8E7A +0xDC46 0x8E7B +0xDC47 0x8E7D +0xDC48 0x8E7E +0xDC49 0x8E80 +0xDC4A 0x8E82 +0xDC4B 0x8E83 +0xDC4C 0x8E84 +0xDC4D 0x8E86 +0xDC4E 0x8E88 +0xDC4F 0x8E89 +0xDC50 0x8E8A +0xDC51 0x8E8B +0xDC52 0x8E8C +0xDC53 0x8E8D +0xDC54 0x8E8E +0xDC55 0x8E91 +0xDC56 0x8E92 +0xDC57 0x8E93 +0xDC58 0x8E95 +0xDC59 0x8E96 +0xDC5A 0x8E97 +0xDC5B 0x8E98 +0xDC5C 0x8E99 +0xDC5D 0x8E9A +0xDC5E 0x8E9B +0xDC5F 0x8E9D +0xDC60 0x8E9F +0xDC61 0x8EA0 +0xDC62 0x8EA1 +0xDC63 0x8EA2 +0xDC64 0x8EA3 +0xDC65 0x8EA4 +0xDC66 0x8EA5 +0xDC67 0x8EA6 +0xDC68 0x8EA7 +0xDC69 0x8EA8 +0xDC6A 0x8EA9 +0xDC6B 0x8EAA +0xDC6C 0x8EAD +0xDC6D 0x8EAE +0xDC6E 0x8EB0 +0xDC6F 0x8EB1 +0xDC70 0x8EB3 +0xDC71 0x8EB4 +0xDC72 0x8EB5 +0xDC73 0x8EB6 +0xDC74 0x8EB7 +0xDC75 0x8EB8 +0xDC76 0x8EB9 +0xDC77 0x8EBB +0xDC78 0x8EBC +0xDC79 0x8EBD +0xDC7A 0x8EBE +0xDC7B 0x8EBF +0xDC7C 0x8EC0 +0xDC7D 0x8EC1 +0xDC7E 0x8EC2 +0xDC80 0x8EC3 +0xDC81 0x8EC4 +0xDC82 0x8EC5 +0xDC83 0x8EC6 +0xDC84 0x8EC7 +0xDC85 0x8EC8 +0xDC86 0x8EC9 +0xDC87 0x8ECA +0xDC88 0x8ECB +0xDC89 0x8ECC +0xDC8A 0x8ECD +0xDC8B 0x8ECF +0xDC8C 0x8ED0 +0xDC8D 0x8ED1 +0xDC8E 0x8ED2 +0xDC8F 0x8ED3 +0xDC90 0x8ED4 +0xDC91 0x8ED5 +0xDC92 0x8ED6 +0xDC93 0x8ED7 +0xDC94 0x8ED8 +0xDC95 0x8ED9 +0xDC96 0x8EDA +0xDC97 0x8EDB +0xDC98 0x8EDC +0xDC99 0x8EDD +0xDC9A 0x8EDE +0xDC9B 0x8EDF +0xDC9C 0x8EE0 +0xDC9D 0x8EE1 +0xDC9E 0x8EE2 +0xDC9F 0x8EE3 +0xDCA0 0x8EE4 +0xDCA1 0x580B +0xDCA2 0x580D +0xDCA3 0x57FD +0xDCA4 0x57ED +0xDCA5 0x5800 +0xDCA6 0x581E +0xDCA7 0x5819 +0xDCA8 0x5844 +0xDCA9 0x5820 +0xDCAA 0x5865 +0xDCAB 0x586C +0xDCAC 0x5881 +0xDCAD 0x5889 +0xDCAE 0x589A +0xDCAF 0x5880 +0xDCB0 0x99A8 +0xDCB1 0x9F19 +0xDCB2 0x61FF +0xDCB3 0x8279 +0xDCB4 0x827D +0xDCB5 0x827F +0xDCB6 0x828F +0xDCB7 0x828A +0xDCB8 0x82A8 +0xDCB9 0x8284 +0xDCBA 0x828E +0xDCBB 0x8291 +0xDCBC 0x8297 +0xDCBD 0x8299 +0xDCBE 0x82AB +0xDCBF 0x82B8 +0xDCC0 0x82BE +0xDCC1 0x82B0 +0xDCC2 0x82C8 +0xDCC3 0x82CA +0xDCC4 0x82E3 +0xDCC5 0x8298 +0xDCC6 0x82B7 +0xDCC7 0x82AE +0xDCC8 0x82CB +0xDCC9 0x82CC +0xDCCA 0x82C1 +0xDCCB 0x82A9 +0xDCCC 0x82B4 +0xDCCD 0x82A1 +0xDCCE 0x82AA +0xDCCF 0x829F +0xDCD0 0x82C4 +0xDCD1 0x82CE +0xDCD2 0x82A4 +0xDCD3 0x82E1 +0xDCD4 0x8309 +0xDCD5 0x82F7 +0xDCD6 0x82E4 +0xDCD7 0x830F +0xDCD8 0x8307 +0xDCD9 0x82DC +0xDCDA 0x82F4 +0xDCDB 0x82D2 +0xDCDC 0x82D8 +0xDCDD 0x830C +0xDCDE 0x82FB +0xDCDF 0x82D3 +0xDCE0 0x8311 +0xDCE1 0x831A +0xDCE2 0x8306 +0xDCE3 0x8314 +0xDCE4 0x8315 +0xDCE5 0x82E0 +0xDCE6 0x82D5 +0xDCE7 0x831C +0xDCE8 0x8351 +0xDCE9 0x835B +0xDCEA 0x835C +0xDCEB 0x8308 +0xDCEC 0x8392 +0xDCED 0x833C +0xDCEE 0x8334 +0xDCEF 0x8331 +0xDCF0 0x839B +0xDCF1 0x835E +0xDCF2 0x832F +0xDCF3 0x834F +0xDCF4 0x8347 +0xDCF5 0x8343 +0xDCF6 0x835F +0xDCF7 0x8340 +0xDCF8 0x8317 +0xDCF9 0x8360 +0xDCFA 0x832D +0xDCFB 0x833A +0xDCFC 0x8333 +0xDCFD 0x8366 +0xDCFE 0x8365 +0xDD40 0x8EE5 +0xDD41 0x8EE6 +0xDD42 0x8EE7 +0xDD43 0x8EE8 +0xDD44 0x8EE9 +0xDD45 0x8EEA +0xDD46 0x8EEB +0xDD47 0x8EEC +0xDD48 0x8EED +0xDD49 0x8EEE +0xDD4A 0x8EEF +0xDD4B 0x8EF0 +0xDD4C 0x8EF1 +0xDD4D 0x8EF2 +0xDD4E 0x8EF3 +0xDD4F 0x8EF4 +0xDD50 0x8EF5 +0xDD51 0x8EF6 +0xDD52 0x8EF7 +0xDD53 0x8EF8 +0xDD54 0x8EF9 +0xDD55 0x8EFA +0xDD56 0x8EFB +0xDD57 0x8EFC +0xDD58 0x8EFD +0xDD59 0x8EFE +0xDD5A 0x8EFF +0xDD5B 0x8F00 +0xDD5C 0x8F01 +0xDD5D 0x8F02 +0xDD5E 0x8F03 +0xDD5F 0x8F04 +0xDD60 0x8F05 +0xDD61 0x8F06 +0xDD62 0x8F07 +0xDD63 0x8F08 +0xDD64 0x8F09 +0xDD65 0x8F0A +0xDD66 0x8F0B +0xDD67 0x8F0C +0xDD68 0x8F0D +0xDD69 0x8F0E +0xDD6A 0x8F0F +0xDD6B 0x8F10 +0xDD6C 0x8F11 +0xDD6D 0x8F12 +0xDD6E 0x8F13 +0xDD6F 0x8F14 +0xDD70 0x8F15 +0xDD71 0x8F16 +0xDD72 0x8F17 +0xDD73 0x8F18 +0xDD74 0x8F19 +0xDD75 0x8F1A +0xDD76 0x8F1B +0xDD77 0x8F1C +0xDD78 0x8F1D +0xDD79 0x8F1E +0xDD7A 0x8F1F +0xDD7B 0x8F20 +0xDD7C 0x8F21 +0xDD7D 0x8F22 +0xDD7E 0x8F23 +0xDD80 0x8F24 +0xDD81 0x8F25 +0xDD82 0x8F26 +0xDD83 0x8F27 +0xDD84 0x8F28 +0xDD85 0x8F29 +0xDD86 0x8F2A +0xDD87 0x8F2B +0xDD88 0x8F2C +0xDD89 0x8F2D +0xDD8A 0x8F2E +0xDD8B 0x8F2F +0xDD8C 0x8F30 +0xDD8D 0x8F31 +0xDD8E 0x8F32 +0xDD8F 0x8F33 +0xDD90 0x8F34 +0xDD91 0x8F35 +0xDD92 0x8F36 +0xDD93 0x8F37 +0xDD94 0x8F38 +0xDD95 0x8F39 +0xDD96 0x8F3A +0xDD97 0x8F3B +0xDD98 0x8F3C +0xDD99 0x8F3D +0xDD9A 0x8F3E +0xDD9B 0x8F3F +0xDD9C 0x8F40 +0xDD9D 0x8F41 +0xDD9E 0x8F42 +0xDD9F 0x8F43 +0xDDA0 0x8F44 +0xDDA1 0x8368 +0xDDA2 0x831B +0xDDA3 0x8369 +0xDDA4 0x836C +0xDDA5 0x836A +0xDDA6 0x836D +0xDDA7 0x836E +0xDDA8 0x83B0 +0xDDA9 0x8378 +0xDDAA 0x83B3 +0xDDAB 0x83B4 +0xDDAC 0x83A0 +0xDDAD 0x83AA +0xDDAE 0x8393 +0xDDAF 0x839C +0xDDB0 0x8385 +0xDDB1 0x837C +0xDDB2 0x83B6 +0xDDB3 0x83A9 +0xDDB4 0x837D +0xDDB5 0x83B8 +0xDDB6 0x837B +0xDDB7 0x8398 +0xDDB8 0x839E +0xDDB9 0x83A8 +0xDDBA 0x83BA +0xDDBB 0x83BC +0xDDBC 0x83C1 +0xDDBD 0x8401 +0xDDBE 0x83E5 +0xDDBF 0x83D8 +0xDDC0 0x5807 +0xDDC1 0x8418 +0xDDC2 0x840B +0xDDC3 0x83DD +0xDDC4 0x83FD +0xDDC5 0x83D6 +0xDDC6 0x841C +0xDDC7 0x8438 +0xDDC8 0x8411 +0xDDC9 0x8406 +0xDDCA 0x83D4 +0xDDCB 0x83DF +0xDDCC 0x840F +0xDDCD 0x8403 +0xDDCE 0x83F8 +0xDDCF 0x83F9 +0xDDD0 0x83EA +0xDDD1 0x83C5 +0xDDD2 0x83C0 +0xDDD3 0x8426 +0xDDD4 0x83F0 +0xDDD5 0x83E1 +0xDDD6 0x845C +0xDDD7 0x8451 +0xDDD8 0x845A +0xDDD9 0x8459 +0xDDDA 0x8473 +0xDDDB 0x8487 +0xDDDC 0x8488 +0xDDDD 0x847A +0xDDDE 0x8489 +0xDDDF 0x8478 +0xDDE0 0x843C +0xDDE1 0x8446 +0xDDE2 0x8469 +0xDDE3 0x8476 +0xDDE4 0x848C +0xDDE5 0x848E +0xDDE6 0x8431 +0xDDE7 0x846D +0xDDE8 0x84C1 +0xDDE9 0x84CD +0xDDEA 0x84D0 +0xDDEB 0x84E6 +0xDDEC 0x84BD +0xDDED 0x84D3 +0xDDEE 0x84CA +0xDDEF 0x84BF +0xDDF0 0x84BA +0xDDF1 0x84E0 +0xDDF2 0x84A1 +0xDDF3 0x84B9 +0xDDF4 0x84B4 +0xDDF5 0x8497 +0xDDF6 0x84E5 +0xDDF7 0x84E3 +0xDDF8 0x850C +0xDDF9 0x750D +0xDDFA 0x8538 +0xDDFB 0x84F0 +0xDDFC 0x8539 +0xDDFD 0x851F +0xDDFE 0x853A +0xDE40 0x8F45 +0xDE41 0x8F46 +0xDE42 0x8F47 +0xDE43 0x8F48 +0xDE44 0x8F49 +0xDE45 0x8F4A +0xDE46 0x8F4B +0xDE47 0x8F4C +0xDE48 0x8F4D +0xDE49 0x8F4E +0xDE4A 0x8F4F +0xDE4B 0x8F50 +0xDE4C 0x8F51 +0xDE4D 0x8F52 +0xDE4E 0x8F53 +0xDE4F 0x8F54 +0xDE50 0x8F55 +0xDE51 0x8F56 +0xDE52 0x8F57 +0xDE53 0x8F58 +0xDE54 0x8F59 +0xDE55 0x8F5A +0xDE56 0x8F5B +0xDE57 0x8F5C +0xDE58 0x8F5D +0xDE59 0x8F5E +0xDE5A 0x8F5F +0xDE5B 0x8F60 +0xDE5C 0x8F61 +0xDE5D 0x8F62 +0xDE5E 0x8F63 +0xDE5F 0x8F64 +0xDE60 0x8F65 +0xDE61 0x8F6A +0xDE62 0x8F80 +0xDE63 0x8F8C +0xDE64 0x8F92 +0xDE65 0x8F9D +0xDE66 0x8FA0 +0xDE67 0x8FA1 +0xDE68 0x8FA2 +0xDE69 0x8FA4 +0xDE6A 0x8FA5 +0xDE6B 0x8FA6 +0xDE6C 0x8FA7 +0xDE6D 0x8FAA +0xDE6E 0x8FAC +0xDE6F 0x8FAD +0xDE70 0x8FAE +0xDE71 0x8FAF +0xDE72 0x8FB2 +0xDE73 0x8FB3 +0xDE74 0x8FB4 +0xDE75 0x8FB5 +0xDE76 0x8FB7 +0xDE77 0x8FB8 +0xDE78 0x8FBA +0xDE79 0x8FBB +0xDE7A 0x8FBC +0xDE7B 0x8FBF +0xDE7C 0x8FC0 +0xDE7D 0x8FC3 +0xDE7E 0x8FC6 +0xDE80 0x8FC9 +0xDE81 0x8FCA +0xDE82 0x8FCB +0xDE83 0x8FCC +0xDE84 0x8FCD +0xDE85 0x8FCF +0xDE86 0x8FD2 +0xDE87 0x8FD6 +0xDE88 0x8FD7 +0xDE89 0x8FDA +0xDE8A 0x8FE0 +0xDE8B 0x8FE1 +0xDE8C 0x8FE3 +0xDE8D 0x8FE7 +0xDE8E 0x8FEC +0xDE8F 0x8FEF +0xDE90 0x8FF1 +0xDE91 0x8FF2 +0xDE92 0x8FF4 +0xDE93 0x8FF5 +0xDE94 0x8FF6 +0xDE95 0x8FFA +0xDE96 0x8FFB +0xDE97 0x8FFC +0xDE98 0x8FFE +0xDE99 0x8FFF +0xDE9A 0x9007 +0xDE9B 0x9008 +0xDE9C 0x900C +0xDE9D 0x900E +0xDE9E 0x9013 +0xDE9F 0x9015 +0xDEA0 0x9018 +0xDEA1 0x8556 +0xDEA2 0x853B +0xDEA3 0x84FF +0xDEA4 0x84FC +0xDEA5 0x8559 +0xDEA6 0x8548 +0xDEA7 0x8568 +0xDEA8 0x8564 +0xDEA9 0x855E +0xDEAA 0x857A +0xDEAB 0x77A2 +0xDEAC 0x8543 +0xDEAD 0x8572 +0xDEAE 0x857B +0xDEAF 0x85A4 +0xDEB0 0x85A8 +0xDEB1 0x8587 +0xDEB2 0x858F +0xDEB3 0x8579 +0xDEB4 0x85AE +0xDEB5 0x859C +0xDEB6 0x8585 +0xDEB7 0x85B9 +0xDEB8 0x85B7 +0xDEB9 0x85B0 +0xDEBA 0x85D3 +0xDEBB 0x85C1 +0xDEBC 0x85DC +0xDEBD 0x85FF +0xDEBE 0x8627 +0xDEBF 0x8605 +0xDEC0 0x8629 +0xDEC1 0x8616 +0xDEC2 0x863C +0xDEC3 0x5EFE +0xDEC4 0x5F08 +0xDEC5 0x593C +0xDEC6 0x5941 +0xDEC7 0x8037 +0xDEC8 0x5955 +0xDEC9 0x595A +0xDECA 0x5958 +0xDECB 0x530F +0xDECC 0x5C22 +0xDECD 0x5C25 +0xDECE 0x5C2C +0xDECF 0x5C34 +0xDED0 0x624C +0xDED1 0x626A +0xDED2 0x629F +0xDED3 0x62BB +0xDED4 0x62CA +0xDED5 0x62DA +0xDED6 0x62D7 +0xDED7 0x62EE +0xDED8 0x6322 +0xDED9 0x62F6 +0xDEDA 0x6339 +0xDEDB 0x634B +0xDEDC 0x6343 +0xDEDD 0x63AD +0xDEDE 0x63F6 +0xDEDF 0x6371 +0xDEE0 0x637A +0xDEE1 0x638E +0xDEE2 0x63B4 +0xDEE3 0x636D +0xDEE4 0x63AC +0xDEE5 0x638A +0xDEE6 0x6369 +0xDEE7 0x63AE +0xDEE8 0x63BC +0xDEE9 0x63F2 +0xDEEA 0x63F8 +0xDEEB 0x63E0 +0xDEEC 0x63FF +0xDEED 0x63C4 +0xDEEE 0x63DE +0xDEEF 0x63CE +0xDEF0 0x6452 +0xDEF1 0x63C6 +0xDEF2 0x63BE +0xDEF3 0x6445 +0xDEF4 0x6441 +0xDEF5 0x640B +0xDEF6 0x641B +0xDEF7 0x6420 +0xDEF8 0x640C +0xDEF9 0x6426 +0xDEFA 0x6421 +0xDEFB 0x645E +0xDEFC 0x6484 +0xDEFD 0x646D +0xDEFE 0x6496 +0xDF40 0x9019 +0xDF41 0x901C +0xDF42 0x9023 +0xDF43 0x9024 +0xDF44 0x9025 +0xDF45 0x9027 +0xDF46 0x9028 +0xDF47 0x9029 +0xDF48 0x902A +0xDF49 0x902B +0xDF4A 0x902C +0xDF4B 0x9030 +0xDF4C 0x9031 +0xDF4D 0x9032 +0xDF4E 0x9033 +0xDF4F 0x9034 +0xDF50 0x9037 +0xDF51 0x9039 +0xDF52 0x903A +0xDF53 0x903D +0xDF54 0x903F +0xDF55 0x9040 +0xDF56 0x9043 +0xDF57 0x9045 +0xDF58 0x9046 +0xDF59 0x9048 +0xDF5A 0x9049 +0xDF5B 0x904A +0xDF5C 0x904B +0xDF5D 0x904C +0xDF5E 0x904E +0xDF5F 0x9054 +0xDF60 0x9055 +0xDF61 0x9056 +0xDF62 0x9059 +0xDF63 0x905A +0xDF64 0x905C +0xDF65 0x905D +0xDF66 0x905E +0xDF67 0x905F +0xDF68 0x9060 +0xDF69 0x9061 +0xDF6A 0x9064 +0xDF6B 0x9066 +0xDF6C 0x9067 +0xDF6D 0x9069 +0xDF6E 0x906A +0xDF6F 0x906B +0xDF70 0x906C +0xDF71 0x906F +0xDF72 0x9070 +0xDF73 0x9071 +0xDF74 0x9072 +0xDF75 0x9073 +0xDF76 0x9076 +0xDF77 0x9077 +0xDF78 0x9078 +0xDF79 0x9079 +0xDF7A 0x907A +0xDF7B 0x907B +0xDF7C 0x907C +0xDF7D 0x907E +0xDF7E 0x9081 +0xDF80 0x9084 +0xDF81 0x9085 +0xDF82 0x9086 +0xDF83 0x9087 +0xDF84 0x9089 +0xDF85 0x908A +0xDF86 0x908C +0xDF87 0x908D +0xDF88 0x908E +0xDF89 0x908F +0xDF8A 0x9090 +0xDF8B 0x9092 +0xDF8C 0x9094 +0xDF8D 0x9096 +0xDF8E 0x9098 +0xDF8F 0x909A +0xDF90 0x909C +0xDF91 0x909E +0xDF92 0x909F +0xDF93 0x90A0 +0xDF94 0x90A4 +0xDF95 0x90A5 +0xDF96 0x90A7 +0xDF97 0x90A8 +0xDF98 0x90A9 +0xDF99 0x90AB +0xDF9A 0x90AD +0xDF9B 0x90B2 +0xDF9C 0x90B7 +0xDF9D 0x90BC +0xDF9E 0x90BD +0xDF9F 0x90BF +0xDFA0 0x90C0 +0xDFA1 0x647A +0xDFA2 0x64B7 +0xDFA3 0x64B8 +0xDFA4 0x6499 +0xDFA5 0x64BA +0xDFA6 0x64C0 +0xDFA7 0x64D0 +0xDFA8 0x64D7 +0xDFA9 0x64E4 +0xDFAA 0x64E2 +0xDFAB 0x6509 +0xDFAC 0x6525 +0xDFAD 0x652E +0xDFAE 0x5F0B +0xDFAF 0x5FD2 +0xDFB0 0x7519 +0xDFB1 0x5F11 +0xDFB2 0x535F +0xDFB3 0x53F1 +0xDFB4 0x53FD +0xDFB5 0x53E9 +0xDFB6 0x53E8 +0xDFB7 0x53FB +0xDFB8 0x5412 +0xDFB9 0x5416 +0xDFBA 0x5406 +0xDFBB 0x544B +0xDFBC 0x5452 +0xDFBD 0x5453 +0xDFBE 0x5454 +0xDFBF 0x5456 +0xDFC0 0x5443 +0xDFC1 0x5421 +0xDFC2 0x5457 +0xDFC3 0x5459 +0xDFC4 0x5423 +0xDFC5 0x5432 +0xDFC6 0x5482 +0xDFC7 0x5494 +0xDFC8 0x5477 +0xDFC9 0x5471 +0xDFCA 0x5464 +0xDFCB 0x549A +0xDFCC 0x549B +0xDFCD 0x5484 +0xDFCE 0x5476 +0xDFCF 0x5466 +0xDFD0 0x549D +0xDFD1 0x54D0 +0xDFD2 0x54AD +0xDFD3 0x54C2 +0xDFD4 0x54B4 +0xDFD5 0x54D2 +0xDFD6 0x54A7 +0xDFD7 0x54A6 +0xDFD8 0x54D3 +0xDFD9 0x54D4 +0xDFDA 0x5472 +0xDFDB 0x54A3 +0xDFDC 0x54D5 +0xDFDD 0x54BB +0xDFDE 0x54BF +0xDFDF 0x54CC +0xDFE0 0x54D9 +0xDFE1 0x54DA +0xDFE2 0x54DC +0xDFE3 0x54A9 +0xDFE4 0x54AA +0xDFE5 0x54A4 +0xDFE6 0x54DD +0xDFE7 0x54CF +0xDFE8 0x54DE +0xDFE9 0x551B +0xDFEA 0x54E7 +0xDFEB 0x5520 +0xDFEC 0x54FD +0xDFED 0x5514 +0xDFEE 0x54F3 +0xDFEF 0x5522 +0xDFF0 0x5523 +0xDFF1 0x550F +0xDFF2 0x5511 +0xDFF3 0x5527 +0xDFF4 0x552A +0xDFF5 0x5567 +0xDFF6 0x558F +0xDFF7 0x55B5 +0xDFF8 0x5549 +0xDFF9 0x556D +0xDFFA 0x5541 +0xDFFB 0x5555 +0xDFFC 0x553F +0xDFFD 0x5550 +0xDFFE 0x553C +0xE040 0x90C2 +0xE041 0x90C3 +0xE042 0x90C6 +0xE043 0x90C8 +0xE044 0x90C9 +0xE045 0x90CB +0xE046 0x90CC +0xE047 0x90CD +0xE048 0x90D2 +0xE049 0x90D4 +0xE04A 0x90D5 +0xE04B 0x90D6 +0xE04C 0x90D8 +0xE04D 0x90D9 +0xE04E 0x90DA +0xE04F 0x90DE +0xE050 0x90DF +0xE051 0x90E0 +0xE052 0x90E3 +0xE053 0x90E4 +0xE054 0x90E5 +0xE055 0x90E9 +0xE056 0x90EA +0xE057 0x90EC +0xE058 0x90EE +0xE059 0x90F0 +0xE05A 0x90F1 +0xE05B 0x90F2 +0xE05C 0x90F3 +0xE05D 0x90F5 +0xE05E 0x90F6 +0xE05F 0x90F7 +0xE060 0x90F9 +0xE061 0x90FA +0xE062 0x90FB +0xE063 0x90FC +0xE064 0x90FF +0xE065 0x9100 +0xE066 0x9101 +0xE067 0x9103 +0xE068 0x9105 +0xE069 0x9106 +0xE06A 0x9107 +0xE06B 0x9108 +0xE06C 0x9109 +0xE06D 0x910A +0xE06E 0x910B +0xE06F 0x910C +0xE070 0x910D +0xE071 0x910E +0xE072 0x910F +0xE073 0x9110 +0xE074 0x9111 +0xE075 0x9112 +0xE076 0x9113 +0xE077 0x9114 +0xE078 0x9115 +0xE079 0x9116 +0xE07A 0x9117 +0xE07B 0x9118 +0xE07C 0x911A +0xE07D 0x911B +0xE07E 0x911C +0xE080 0x911D +0xE081 0x911F +0xE082 0x9120 +0xE083 0x9121 +0xE084 0x9124 +0xE085 0x9125 +0xE086 0x9126 +0xE087 0x9127 +0xE088 0x9128 +0xE089 0x9129 +0xE08A 0x912A +0xE08B 0x912B +0xE08C 0x912C +0xE08D 0x912D +0xE08E 0x912E +0xE08F 0x9130 +0xE090 0x9132 +0xE091 0x9133 +0xE092 0x9134 +0xE093 0x9135 +0xE094 0x9136 +0xE095 0x9137 +0xE096 0x9138 +0xE097 0x913A +0xE098 0x913B +0xE099 0x913C +0xE09A 0x913D +0xE09B 0x913E +0xE09C 0x913F +0xE09D 0x9140 +0xE09E 0x9141 +0xE09F 0x9142 +0xE0A0 0x9144 +0xE0A1 0x5537 +0xE0A2 0x5556 +0xE0A3 0x5575 +0xE0A4 0x5576 +0xE0A5 0x5577 +0xE0A6 0x5533 +0xE0A7 0x5530 +0xE0A8 0x555C +0xE0A9 0x558B +0xE0AA 0x55D2 +0xE0AB 0x5583 +0xE0AC 0x55B1 +0xE0AD 0x55B9 +0xE0AE 0x5588 +0xE0AF 0x5581 +0xE0B0 0x559F +0xE0B1 0x557E +0xE0B2 0x55D6 +0xE0B3 0x5591 +0xE0B4 0x557B +0xE0B5 0x55DF +0xE0B6 0x55BD +0xE0B7 0x55BE +0xE0B8 0x5594 +0xE0B9 0x5599 +0xE0BA 0x55EA +0xE0BB 0x55F7 +0xE0BC 0x55C9 +0xE0BD 0x561F +0xE0BE 0x55D1 +0xE0BF 0x55EB +0xE0C0 0x55EC +0xE0C1 0x55D4 +0xE0C2 0x55E6 +0xE0C3 0x55DD +0xE0C4 0x55C4 +0xE0C5 0x55EF +0xE0C6 0x55E5 +0xE0C7 0x55F2 +0xE0C8 0x55F3 +0xE0C9 0x55CC +0xE0CA 0x55CD +0xE0CB 0x55E8 +0xE0CC 0x55F5 +0xE0CD 0x55E4 +0xE0CE 0x8F94 +0xE0CF 0x561E +0xE0D0 0x5608 +0xE0D1 0x560C +0xE0D2 0x5601 +0xE0D3 0x5624 +0xE0D4 0x5623 +0xE0D5 0x55FE +0xE0D6 0x5600 +0xE0D7 0x5627 +0xE0D8 0x562D +0xE0D9 0x5658 +0xE0DA 0x5639 +0xE0DB 0x5657 +0xE0DC 0x562C +0xE0DD 0x564D +0xE0DE 0x5662 +0xE0DF 0x5659 +0xE0E0 0x565C +0xE0E1 0x564C +0xE0E2 0x5654 +0xE0E3 0x5686 +0xE0E4 0x5664 +0xE0E5 0x5671 +0xE0E6 0x566B +0xE0E7 0x567B +0xE0E8 0x567C +0xE0E9 0x5685 +0xE0EA 0x5693 +0xE0EB 0x56AF +0xE0EC 0x56D4 +0xE0ED 0x56D7 +0xE0EE 0x56DD +0xE0EF 0x56E1 +0xE0F0 0x56F5 +0xE0F1 0x56EB +0xE0F2 0x56F9 +0xE0F3 0x56FF +0xE0F4 0x5704 +0xE0F5 0x570A +0xE0F6 0x5709 +0xE0F7 0x571C +0xE0F8 0x5E0F +0xE0F9 0x5E19 +0xE0FA 0x5E14 +0xE0FB 0x5E11 +0xE0FC 0x5E31 +0xE0FD 0x5E3B +0xE0FE 0x5E3C +0xE140 0x9145 +0xE141 0x9147 +0xE142 0x9148 +0xE143 0x9151 +0xE144 0x9153 +0xE145 0x9154 +0xE146 0x9155 +0xE147 0x9156 +0xE148 0x9158 +0xE149 0x9159 +0xE14A 0x915B +0xE14B 0x915C +0xE14C 0x915F +0xE14D 0x9160 +0xE14E 0x9166 +0xE14F 0x9167 +0xE150 0x9168 +0xE151 0x916B +0xE152 0x916D +0xE153 0x9173 +0xE154 0x917A +0xE155 0x917B +0xE156 0x917C +0xE157 0x9180 +0xE158 0x9181 +0xE159 0x9182 +0xE15A 0x9183 +0xE15B 0x9184 +0xE15C 0x9186 +0xE15D 0x9188 +0xE15E 0x918A +0xE15F 0x918E +0xE160 0x918F +0xE161 0x9193 +0xE162 0x9194 +0xE163 0x9195 +0xE164 0x9196 +0xE165 0x9197 +0xE166 0x9198 +0xE167 0x9199 +0xE168 0x919C +0xE169 0x919D +0xE16A 0x919E +0xE16B 0x919F +0xE16C 0x91A0 +0xE16D 0x91A1 +0xE16E 0x91A4 +0xE16F 0x91A5 +0xE170 0x91A6 +0xE171 0x91A7 +0xE172 0x91A8 +0xE173 0x91A9 +0xE174 0x91AB +0xE175 0x91AC +0xE176 0x91B0 +0xE177 0x91B1 +0xE178 0x91B2 +0xE179 0x91B3 +0xE17A 0x91B6 +0xE17B 0x91B7 +0xE17C 0x91B8 +0xE17D 0x91B9 +0xE17E 0x91BB +0xE180 0x91BC +0xE181 0x91BD +0xE182 0x91BE +0xE183 0x91BF +0xE184 0x91C0 +0xE185 0x91C1 +0xE186 0x91C2 +0xE187 0x91C3 +0xE188 0x91C4 +0xE189 0x91C5 +0xE18A 0x91C6 +0xE18B 0x91C8 +0xE18C 0x91CB +0xE18D 0x91D0 +0xE18E 0x91D2 +0xE18F 0x91D3 +0xE190 0x91D4 +0xE191 0x91D5 +0xE192 0x91D6 +0xE193 0x91D7 +0xE194 0x91D8 +0xE195 0x91D9 +0xE196 0x91DA +0xE197 0x91DB +0xE198 0x91DD +0xE199 0x91DE +0xE19A 0x91DF +0xE19B 0x91E0 +0xE19C 0x91E1 +0xE19D 0x91E2 +0xE19E 0x91E3 +0xE19F 0x91E4 +0xE1A0 0x91E5 +0xE1A1 0x5E37 +0xE1A2 0x5E44 +0xE1A3 0x5E54 +0xE1A4 0x5E5B +0xE1A5 0x5E5E +0xE1A6 0x5E61 +0xE1A7 0x5C8C +0xE1A8 0x5C7A +0xE1A9 0x5C8D +0xE1AA 0x5C90 +0xE1AB 0x5C96 +0xE1AC 0x5C88 +0xE1AD 0x5C98 +0xE1AE 0x5C99 +0xE1AF 0x5C91 +0xE1B0 0x5C9A +0xE1B1 0x5C9C +0xE1B2 0x5CB5 +0xE1B3 0x5CA2 +0xE1B4 0x5CBD +0xE1B5 0x5CAC +0xE1B6 0x5CAB +0xE1B7 0x5CB1 +0xE1B8 0x5CA3 +0xE1B9 0x5CC1 +0xE1BA 0x5CB7 +0xE1BB 0x5CC4 +0xE1BC 0x5CD2 +0xE1BD 0x5CE4 +0xE1BE 0x5CCB +0xE1BF 0x5CE5 +0xE1C0 0x5D02 +0xE1C1 0x5D03 +0xE1C2 0x5D27 +0xE1C3 0x5D26 +0xE1C4 0x5D2E +0xE1C5 0x5D24 +0xE1C6 0x5D1E +0xE1C7 0x5D06 +0xE1C8 0x5D1B +0xE1C9 0x5D58 +0xE1CA 0x5D3E +0xE1CB 0x5D34 +0xE1CC 0x5D3D +0xE1CD 0x5D6C +0xE1CE 0x5D5B +0xE1CF 0x5D6F +0xE1D0 0x5D5D +0xE1D1 0x5D6B +0xE1D2 0x5D4B +0xE1D3 0x5D4A +0xE1D4 0x5D69 +0xE1D5 0x5D74 +0xE1D6 0x5D82 +0xE1D7 0x5D99 +0xE1D8 0x5D9D +0xE1D9 0x8C73 +0xE1DA 0x5DB7 +0xE1DB 0x5DC5 +0xE1DC 0x5F73 +0xE1DD 0x5F77 +0xE1DE 0x5F82 +0xE1DF 0x5F87 +0xE1E0 0x5F89 +0xE1E1 0x5F8C +0xE1E2 0x5F95 +0xE1E3 0x5F99 +0xE1E4 0x5F9C +0xE1E5 0x5FA8 +0xE1E6 0x5FAD +0xE1E7 0x5FB5 +0xE1E8 0x5FBC +0xE1E9 0x8862 +0xE1EA 0x5F61 +0xE1EB 0x72AD +0xE1EC 0x72B0 +0xE1ED 0x72B4 +0xE1EE 0x72B7 +0xE1EF 0x72B8 +0xE1F0 0x72C3 +0xE1F1 0x72C1 +0xE1F2 0x72CE +0xE1F3 0x72CD +0xE1F4 0x72D2 +0xE1F5 0x72E8 +0xE1F6 0x72EF +0xE1F7 0x72E9 +0xE1F8 0x72F2 +0xE1F9 0x72F4 +0xE1FA 0x72F7 +0xE1FB 0x7301 +0xE1FC 0x72F3 +0xE1FD 0x7303 +0xE1FE 0x72FA +0xE240 0x91E6 +0xE241 0x91E7 +0xE242 0x91E8 +0xE243 0x91E9 +0xE244 0x91EA +0xE245 0x91EB +0xE246 0x91EC +0xE247 0x91ED +0xE248 0x91EE +0xE249 0x91EF +0xE24A 0x91F0 +0xE24B 0x91F1 +0xE24C 0x91F2 +0xE24D 0x91F3 +0xE24E 0x91F4 +0xE24F 0x91F5 +0xE250 0x91F6 +0xE251 0x91F7 +0xE252 0x91F8 +0xE253 0x91F9 +0xE254 0x91FA +0xE255 0x91FB +0xE256 0x91FC +0xE257 0x91FD +0xE258 0x91FE +0xE259 0x91FF +0xE25A 0x9200 +0xE25B 0x9201 +0xE25C 0x9202 +0xE25D 0x9203 +0xE25E 0x9204 +0xE25F 0x9205 +0xE260 0x9206 +0xE261 0x9207 +0xE262 0x9208 +0xE263 0x9209 +0xE264 0x920A +0xE265 0x920B +0xE266 0x920C +0xE267 0x920D +0xE268 0x920E +0xE269 0x920F +0xE26A 0x9210 +0xE26B 0x9211 +0xE26C 0x9212 +0xE26D 0x9213 +0xE26E 0x9214 +0xE26F 0x9215 +0xE270 0x9216 +0xE271 0x9217 +0xE272 0x9218 +0xE273 0x9219 +0xE274 0x921A +0xE275 0x921B +0xE276 0x921C +0xE277 0x921D +0xE278 0x921E +0xE279 0x921F +0xE27A 0x9220 +0xE27B 0x9221 +0xE27C 0x9222 +0xE27D 0x9223 +0xE27E 0x9224 +0xE280 0x9225 +0xE281 0x9226 +0xE282 0x9227 +0xE283 0x9228 +0xE284 0x9229 +0xE285 0x922A +0xE286 0x922B +0xE287 0x922C +0xE288 0x922D +0xE289 0x922E +0xE28A 0x922F +0xE28B 0x9230 +0xE28C 0x9231 +0xE28D 0x9232 +0xE28E 0x9233 +0xE28F 0x9234 +0xE290 0x9235 +0xE291 0x9236 +0xE292 0x9237 +0xE293 0x9238 +0xE294 0x9239 +0xE295 0x923A +0xE296 0x923B +0xE297 0x923C +0xE298 0x923D +0xE299 0x923E +0xE29A 0x923F +0xE29B 0x9240 +0xE29C 0x9241 +0xE29D 0x9242 +0xE29E 0x9243 +0xE29F 0x9244 +0xE2A0 0x9245 +0xE2A1 0x72FB +0xE2A2 0x7317 +0xE2A3 0x7313 +0xE2A4 0x7321 +0xE2A5 0x730A +0xE2A6 0x731E +0xE2A7 0x731D +0xE2A8 0x7315 +0xE2A9 0x7322 +0xE2AA 0x7339 +0xE2AB 0x7325 +0xE2AC 0x732C +0xE2AD 0x7338 +0xE2AE 0x7331 +0xE2AF 0x7350 +0xE2B0 0x734D +0xE2B1 0x7357 +0xE2B2 0x7360 +0xE2B3 0x736C +0xE2B4 0x736F +0xE2B5 0x737E +0xE2B6 0x821B +0xE2B7 0x5925 +0xE2B8 0x98E7 +0xE2B9 0x5924 +0xE2BA 0x5902 +0xE2BB 0x9963 +0xE2BC 0x9967 +0xE2BD 0x9968 +0xE2BE 0x9969 +0xE2BF 0x996A +0xE2C0 0x996B +0xE2C1 0x996C +0xE2C2 0x9974 +0xE2C3 0x9977 +0xE2C4 0x997D +0xE2C5 0x9980 +0xE2C6 0x9984 +0xE2C7 0x9987 +0xE2C8 0x998A +0xE2C9 0x998D +0xE2CA 0x9990 +0xE2CB 0x9991 +0xE2CC 0x9993 +0xE2CD 0x9994 +0xE2CE 0x9995 +0xE2CF 0x5E80 +0xE2D0 0x5E91 +0xE2D1 0x5E8B +0xE2D2 0x5E96 +0xE2D3 0x5EA5 +0xE2D4 0x5EA0 +0xE2D5 0x5EB9 +0xE2D6 0x5EB5 +0xE2D7 0x5EBE +0xE2D8 0x5EB3 +0xE2D9 0x8D53 +0xE2DA 0x5ED2 +0xE2DB 0x5ED1 +0xE2DC 0x5EDB +0xE2DD 0x5EE8 +0xE2DE 0x5EEA +0xE2DF 0x81BA +0xE2E0 0x5FC4 +0xE2E1 0x5FC9 +0xE2E2 0x5FD6 +0xE2E3 0x5FCF +0xE2E4 0x6003 +0xE2E5 0x5FEE +0xE2E6 0x6004 +0xE2E7 0x5FE1 +0xE2E8 0x5FE4 +0xE2E9 0x5FFE +0xE2EA 0x6005 +0xE2EB 0x6006 +0xE2EC 0x5FEA +0xE2ED 0x5FED +0xE2EE 0x5FF8 +0xE2EF 0x6019 +0xE2F0 0x6035 +0xE2F1 0x6026 +0xE2F2 0x601B +0xE2F3 0x600F +0xE2F4 0x600D +0xE2F5 0x6029 +0xE2F6 0x602B +0xE2F7 0x600A +0xE2F8 0x603F +0xE2F9 0x6021 +0xE2FA 0x6078 +0xE2FB 0x6079 +0xE2FC 0x607B +0xE2FD 0x607A +0xE2FE 0x6042 +0xE340 0x9246 +0xE341 0x9247 +0xE342 0x9248 +0xE343 0x9249 +0xE344 0x924A +0xE345 0x924B +0xE346 0x924C +0xE347 0x924D +0xE348 0x924E +0xE349 0x924F +0xE34A 0x9250 +0xE34B 0x9251 +0xE34C 0x9252 +0xE34D 0x9253 +0xE34E 0x9254 +0xE34F 0x9255 +0xE350 0x9256 +0xE351 0x9257 +0xE352 0x9258 +0xE353 0x9259 +0xE354 0x925A +0xE355 0x925B +0xE356 0x925C +0xE357 0x925D +0xE358 0x925E +0xE359 0x925F +0xE35A 0x9260 +0xE35B 0x9261 +0xE35C 0x9262 +0xE35D 0x9263 +0xE35E 0x9264 +0xE35F 0x9265 +0xE360 0x9266 +0xE361 0x9267 +0xE362 0x9268 +0xE363 0x9269 +0xE364 0x926A +0xE365 0x926B +0xE366 0x926C +0xE367 0x926D +0xE368 0x926E +0xE369 0x926F +0xE36A 0x9270 +0xE36B 0x9271 +0xE36C 0x9272 +0xE36D 0x9273 +0xE36E 0x9275 +0xE36F 0x9276 +0xE370 0x9277 +0xE371 0x9278 +0xE372 0x9279 +0xE373 0x927A +0xE374 0x927B +0xE375 0x927C +0xE376 0x927D +0xE377 0x927E +0xE378 0x927F +0xE379 0x9280 +0xE37A 0x9281 +0xE37B 0x9282 +0xE37C 0x9283 +0xE37D 0x9284 +0xE37E 0x9285 +0xE380 0x9286 +0xE381 0x9287 +0xE382 0x9288 +0xE383 0x9289 +0xE384 0x928A +0xE385 0x928B +0xE386 0x928C +0xE387 0x928D +0xE388 0x928F +0xE389 0x9290 +0xE38A 0x9291 +0xE38B 0x9292 +0xE38C 0x9293 +0xE38D 0x9294 +0xE38E 0x9295 +0xE38F 0x9296 +0xE390 0x9297 +0xE391 0x9298 +0xE392 0x9299 +0xE393 0x929A +0xE394 0x929B +0xE395 0x929C +0xE396 0x929D +0xE397 0x929E +0xE398 0x929F +0xE399 0x92A0 +0xE39A 0x92A1 +0xE39B 0x92A2 +0xE39C 0x92A3 +0xE39D 0x92A4 +0xE39E 0x92A5 +0xE39F 0x92A6 +0xE3A0 0x92A7 +0xE3A1 0x606A +0xE3A2 0x607D +0xE3A3 0x6096 +0xE3A4 0x609A +0xE3A5 0x60AD +0xE3A6 0x609D +0xE3A7 0x6083 +0xE3A8 0x6092 +0xE3A9 0x608C +0xE3AA 0x609B +0xE3AB 0x60EC +0xE3AC 0x60BB +0xE3AD 0x60B1 +0xE3AE 0x60DD +0xE3AF 0x60D8 +0xE3B0 0x60C6 +0xE3B1 0x60DA +0xE3B2 0x60B4 +0xE3B3 0x6120 +0xE3B4 0x6126 +0xE3B5 0x6115 +0xE3B6 0x6123 +0xE3B7 0x60F4 +0xE3B8 0x6100 +0xE3B9 0x610E +0xE3BA 0x612B +0xE3BB 0x614A +0xE3BC 0x6175 +0xE3BD 0x61AC +0xE3BE 0x6194 +0xE3BF 0x61A7 +0xE3C0 0x61B7 +0xE3C1 0x61D4 +0xE3C2 0x61F5 +0xE3C3 0x5FDD +0xE3C4 0x96B3 +0xE3C5 0x95E9 +0xE3C6 0x95EB +0xE3C7 0x95F1 +0xE3C8 0x95F3 +0xE3C9 0x95F5 +0xE3CA 0x95F6 +0xE3CB 0x95FC +0xE3CC 0x95FE +0xE3CD 0x9603 +0xE3CE 0x9604 +0xE3CF 0x9606 +0xE3D0 0x9608 +0xE3D1 0x960A +0xE3D2 0x960B +0xE3D3 0x960C +0xE3D4 0x960D +0xE3D5 0x960F +0xE3D6 0x9612 +0xE3D7 0x9615 +0xE3D8 0x9616 +0xE3D9 0x9617 +0xE3DA 0x9619 +0xE3DB 0x961A +0xE3DC 0x4E2C +0xE3DD 0x723F +0xE3DE 0x6215 +0xE3DF 0x6C35 +0xE3E0 0x6C54 +0xE3E1 0x6C5C +0xE3E2 0x6C4A +0xE3E3 0x6CA3 +0xE3E4 0x6C85 +0xE3E5 0x6C90 +0xE3E6 0x6C94 +0xE3E7 0x6C8C +0xE3E8 0x6C68 +0xE3E9 0x6C69 +0xE3EA 0x6C74 +0xE3EB 0x6C76 +0xE3EC 0x6C86 +0xE3ED 0x6CA9 +0xE3EE 0x6CD0 +0xE3EF 0x6CD4 +0xE3F0 0x6CAD +0xE3F1 0x6CF7 +0xE3F2 0x6CF8 +0xE3F3 0x6CF1 +0xE3F4 0x6CD7 +0xE3F5 0x6CB2 +0xE3F6 0x6CE0 +0xE3F7 0x6CD6 +0xE3F8 0x6CFA +0xE3F9 0x6CEB +0xE3FA 0x6CEE +0xE3FB 0x6CB1 +0xE3FC 0x6CD3 +0xE3FD 0x6CEF +0xE3FE 0x6CFE +0xE440 0x92A8 +0xE441 0x92A9 +0xE442 0x92AA +0xE443 0x92AB +0xE444 0x92AC +0xE445 0x92AD +0xE446 0x92AF +0xE447 0x92B0 +0xE448 0x92B1 +0xE449 0x92B2 +0xE44A 0x92B3 +0xE44B 0x92B4 +0xE44C 0x92B5 +0xE44D 0x92B6 +0xE44E 0x92B7 +0xE44F 0x92B8 +0xE450 0x92B9 +0xE451 0x92BA +0xE452 0x92BB +0xE453 0x92BC +0xE454 0x92BD +0xE455 0x92BE +0xE456 0x92BF +0xE457 0x92C0 +0xE458 0x92C1 +0xE459 0x92C2 +0xE45A 0x92C3 +0xE45B 0x92C4 +0xE45C 0x92C5 +0xE45D 0x92C6 +0xE45E 0x92C7 +0xE45F 0x92C9 +0xE460 0x92CA +0xE461 0x92CB +0xE462 0x92CC +0xE463 0x92CD +0xE464 0x92CE +0xE465 0x92CF +0xE466 0x92D0 +0xE467 0x92D1 +0xE468 0x92D2 +0xE469 0x92D3 +0xE46A 0x92D4 +0xE46B 0x92D5 +0xE46C 0x92D6 +0xE46D 0x92D7 +0xE46E 0x92D8 +0xE46F 0x92D9 +0xE470 0x92DA +0xE471 0x92DB +0xE472 0x92DC +0xE473 0x92DD +0xE474 0x92DE +0xE475 0x92DF +0xE476 0x92E0 +0xE477 0x92E1 +0xE478 0x92E2 +0xE479 0x92E3 +0xE47A 0x92E4 +0xE47B 0x92E5 +0xE47C 0x92E6 +0xE47D 0x92E7 +0xE47E 0x92E8 +0xE480 0x92E9 +0xE481 0x92EA +0xE482 0x92EB +0xE483 0x92EC +0xE484 0x92ED +0xE485 0x92EE +0xE486 0x92EF +0xE487 0x92F0 +0xE488 0x92F1 +0xE489 0x92F2 +0xE48A 0x92F3 +0xE48B 0x92F4 +0xE48C 0x92F5 +0xE48D 0x92F6 +0xE48E 0x92F7 +0xE48F 0x92F8 +0xE490 0x92F9 +0xE491 0x92FA +0xE492 0x92FB +0xE493 0x92FC +0xE494 0x92FD +0xE495 0x92FE +0xE496 0x92FF +0xE497 0x9300 +0xE498 0x9301 +0xE499 0x9302 +0xE49A 0x9303 +0xE49B 0x9304 +0xE49C 0x9305 +0xE49D 0x9306 +0xE49E 0x9307 +0xE49F 0x9308 +0xE4A0 0x9309 +0xE4A1 0x6D39 +0xE4A2 0x6D27 +0xE4A3 0x6D0C +0xE4A4 0x6D43 +0xE4A5 0x6D48 +0xE4A6 0x6D07 +0xE4A7 0x6D04 +0xE4A8 0x6D19 +0xE4A9 0x6D0E +0xE4AA 0x6D2B +0xE4AB 0x6D4D +0xE4AC 0x6D2E +0xE4AD 0x6D35 +0xE4AE 0x6D1A +0xE4AF 0x6D4F +0xE4B0 0x6D52 +0xE4B1 0x6D54 +0xE4B2 0x6D33 +0xE4B3 0x6D91 +0xE4B4 0x6D6F +0xE4B5 0x6D9E +0xE4B6 0x6DA0 +0xE4B7 0x6D5E +0xE4B8 0x6D93 +0xE4B9 0x6D94 +0xE4BA 0x6D5C +0xE4BB 0x6D60 +0xE4BC 0x6D7C +0xE4BD 0x6D63 +0xE4BE 0x6E1A +0xE4BF 0x6DC7 +0xE4C0 0x6DC5 +0xE4C1 0x6DDE +0xE4C2 0x6E0E +0xE4C3 0x6DBF +0xE4C4 0x6DE0 +0xE4C5 0x6E11 +0xE4C6 0x6DE6 +0xE4C7 0x6DDD +0xE4C8 0x6DD9 +0xE4C9 0x6E16 +0xE4CA 0x6DAB +0xE4CB 0x6E0C +0xE4CC 0x6DAE +0xE4CD 0x6E2B +0xE4CE 0x6E6E +0xE4CF 0x6E4E +0xE4D0 0x6E6B +0xE4D1 0x6EB2 +0xE4D2 0x6E5F +0xE4D3 0x6E86 +0xE4D4 0x6E53 +0xE4D5 0x6E54 +0xE4D6 0x6E32 +0xE4D7 0x6E25 +0xE4D8 0x6E44 +0xE4D9 0x6EDF +0xE4DA 0x6EB1 +0xE4DB 0x6E98 +0xE4DC 0x6EE0 +0xE4DD 0x6F2D +0xE4DE 0x6EE2 +0xE4DF 0x6EA5 +0xE4E0 0x6EA7 +0xE4E1 0x6EBD +0xE4E2 0x6EBB +0xE4E3 0x6EB7 +0xE4E4 0x6ED7 +0xE4E5 0x6EB4 +0xE4E6 0x6ECF +0xE4E7 0x6E8F +0xE4E8 0x6EC2 +0xE4E9 0x6E9F +0xE4EA 0x6F62 +0xE4EB 0x6F46 +0xE4EC 0x6F47 +0xE4ED 0x6F24 +0xE4EE 0x6F15 +0xE4EF 0x6EF9 +0xE4F0 0x6F2F +0xE4F1 0x6F36 +0xE4F2 0x6F4B +0xE4F3 0x6F74 +0xE4F4 0x6F2A +0xE4F5 0x6F09 +0xE4F6 0x6F29 +0xE4F7 0x6F89 +0xE4F8 0x6F8D +0xE4F9 0x6F8C +0xE4FA 0x6F78 +0xE4FB 0x6F72 +0xE4FC 0x6F7C +0xE4FD 0x6F7A +0xE4FE 0x6FD1 +0xE540 0x930A +0xE541 0x930B +0xE542 0x930C +0xE543 0x930D +0xE544 0x930E +0xE545 0x930F +0xE546 0x9310 +0xE547 0x9311 +0xE548 0x9312 +0xE549 0x9313 +0xE54A 0x9314 +0xE54B 0x9315 +0xE54C 0x9316 +0xE54D 0x9317 +0xE54E 0x9318 +0xE54F 0x9319 +0xE550 0x931A +0xE551 0x931B +0xE552 0x931C +0xE553 0x931D +0xE554 0x931E +0xE555 0x931F +0xE556 0x9320 +0xE557 0x9321 +0xE558 0x9322 +0xE559 0x9323 +0xE55A 0x9324 +0xE55B 0x9325 +0xE55C 0x9326 +0xE55D 0x9327 +0xE55E 0x9328 +0xE55F 0x9329 +0xE560 0x932A +0xE561 0x932B +0xE562 0x932C +0xE563 0x932D +0xE564 0x932E +0xE565 0x932F +0xE566 0x9330 +0xE567 0x9331 +0xE568 0x9332 +0xE569 0x9333 +0xE56A 0x9334 +0xE56B 0x9335 +0xE56C 0x9336 +0xE56D 0x9337 +0xE56E 0x9338 +0xE56F 0x9339 +0xE570 0x933A +0xE571 0x933B +0xE572 0x933C +0xE573 0x933D +0xE574 0x933F +0xE575 0x9340 +0xE576 0x9341 +0xE577 0x9342 +0xE578 0x9343 +0xE579 0x9344 +0xE57A 0x9345 +0xE57B 0x9346 +0xE57C 0x9347 +0xE57D 0x9348 +0xE57E 0x9349 +0xE580 0x934A +0xE581 0x934B +0xE582 0x934C +0xE583 0x934D +0xE584 0x934E +0xE585 0x934F +0xE586 0x9350 +0xE587 0x9351 +0xE588 0x9352 +0xE589 0x9353 +0xE58A 0x9354 +0xE58B 0x9355 +0xE58C 0x9356 +0xE58D 0x9357 +0xE58E 0x9358 +0xE58F 0x9359 +0xE590 0x935A +0xE591 0x935B +0xE592 0x935C +0xE593 0x935D +0xE594 0x935E +0xE595 0x935F +0xE596 0x9360 +0xE597 0x9361 +0xE598 0x9362 +0xE599 0x9363 +0xE59A 0x9364 +0xE59B 0x9365 +0xE59C 0x9366 +0xE59D 0x9367 +0xE59E 0x9368 +0xE59F 0x9369 +0xE5A0 0x936B +0xE5A1 0x6FC9 +0xE5A2 0x6FA7 +0xE5A3 0x6FB9 +0xE5A4 0x6FB6 +0xE5A5 0x6FC2 +0xE5A6 0x6FE1 +0xE5A7 0x6FEE +0xE5A8 0x6FDE +0xE5A9 0x6FE0 +0xE5AA 0x6FEF +0xE5AB 0x701A +0xE5AC 0x7023 +0xE5AD 0x701B +0xE5AE 0x7039 +0xE5AF 0x7035 +0xE5B0 0x704F +0xE5B1 0x705E +0xE5B2 0x5B80 +0xE5B3 0x5B84 +0xE5B4 0x5B95 +0xE5B5 0x5B93 +0xE5B6 0x5BA5 +0xE5B7 0x5BB8 +0xE5B8 0x752F +0xE5B9 0x9A9E +0xE5BA 0x6434 +0xE5BB 0x5BE4 +0xE5BC 0x5BEE +0xE5BD 0x8930 +0xE5BE 0x5BF0 +0xE5BF 0x8E47 +0xE5C0 0x8B07 +0xE5C1 0x8FB6 +0xE5C2 0x8FD3 +0xE5C3 0x8FD5 +0xE5C4 0x8FE5 +0xE5C5 0x8FEE +0xE5C6 0x8FE4 +0xE5C7 0x8FE9 +0xE5C8 0x8FE6 +0xE5C9 0x8FF3 +0xE5CA 0x8FE8 +0xE5CB 0x9005 +0xE5CC 0x9004 +0xE5CD 0x900B +0xE5CE 0x9026 +0xE5CF 0x9011 +0xE5D0 0x900D +0xE5D1 0x9016 +0xE5D2 0x9021 +0xE5D3 0x9035 +0xE5D4 0x9036 +0xE5D5 0x902D +0xE5D6 0x902F +0xE5D7 0x9044 +0xE5D8 0x9051 +0xE5D9 0x9052 +0xE5DA 0x9050 +0xE5DB 0x9068 +0xE5DC 0x9058 +0xE5DD 0x9062 +0xE5DE 0x905B +0xE5DF 0x66B9 +0xE5E0 0x9074 +0xE5E1 0x907D +0xE5E2 0x9082 +0xE5E3 0x9088 +0xE5E4 0x9083 +0xE5E5 0x908B +0xE5E6 0x5F50 +0xE5E7 0x5F57 +0xE5E8 0x5F56 +0xE5E9 0x5F58 +0xE5EA 0x5C3B +0xE5EB 0x54AB +0xE5EC 0x5C50 +0xE5ED 0x5C59 +0xE5EE 0x5B71 +0xE5EF 0x5C63 +0xE5F0 0x5C66 +0xE5F1 0x7FBC +0xE5F2 0x5F2A +0xE5F3 0x5F29 +0xE5F4 0x5F2D +0xE5F5 0x8274 +0xE5F6 0x5F3C +0xE5F7 0x9B3B +0xE5F8 0x5C6E +0xE5F9 0x5981 +0xE5FA 0x5983 +0xE5FB 0x598D +0xE5FC 0x59A9 +0xE5FD 0x59AA +0xE5FE 0x59A3 +0xE640 0x936C +0xE641 0x936D +0xE642 0x936E +0xE643 0x936F +0xE644 0x9370 +0xE645 0x9371 +0xE646 0x9372 +0xE647 0x9373 +0xE648 0x9374 +0xE649 0x9375 +0xE64A 0x9376 +0xE64B 0x9377 +0xE64C 0x9378 +0xE64D 0x9379 +0xE64E 0x937A +0xE64F 0x937B +0xE650 0x937C +0xE651 0x937D +0xE652 0x937E +0xE653 0x937F +0xE654 0x9380 +0xE655 0x9381 +0xE656 0x9382 +0xE657 0x9383 +0xE658 0x9384 +0xE659 0x9385 +0xE65A 0x9386 +0xE65B 0x9387 +0xE65C 0x9388 +0xE65D 0x9389 +0xE65E 0x938A +0xE65F 0x938B +0xE660 0x938C +0xE661 0x938D +0xE662 0x938E +0xE663 0x9390 +0xE664 0x9391 +0xE665 0x9392 +0xE666 0x9393 +0xE667 0x9394 +0xE668 0x9395 +0xE669 0x9396 +0xE66A 0x9397 +0xE66B 0x9398 +0xE66C 0x9399 +0xE66D 0x939A +0xE66E 0x939B +0xE66F 0x939C +0xE670 0x939D +0xE671 0x939E +0xE672 0x939F +0xE673 0x93A0 +0xE674 0x93A1 +0xE675 0x93A2 +0xE676 0x93A3 +0xE677 0x93A4 +0xE678 0x93A5 +0xE679 0x93A6 +0xE67A 0x93A7 +0xE67B 0x93A8 +0xE67C 0x93A9 +0xE67D 0x93AA +0xE67E 0x93AB +0xE680 0x93AC +0xE681 0x93AD +0xE682 0x93AE +0xE683 0x93AF +0xE684 0x93B0 +0xE685 0x93B1 +0xE686 0x93B2 +0xE687 0x93B3 +0xE688 0x93B4 +0xE689 0x93B5 +0xE68A 0x93B6 +0xE68B 0x93B7 +0xE68C 0x93B8 +0xE68D 0x93B9 +0xE68E 0x93BA +0xE68F 0x93BB +0xE690 0x93BC +0xE691 0x93BD +0xE692 0x93BE +0xE693 0x93BF +0xE694 0x93C0 +0xE695 0x93C1 +0xE696 0x93C2 +0xE697 0x93C3 +0xE698 0x93C4 +0xE699 0x93C5 +0xE69A 0x93C6 +0xE69B 0x93C7 +0xE69C 0x93C8 +0xE69D 0x93C9 +0xE69E 0x93CB +0xE69F 0x93CC +0xE6A0 0x93CD +0xE6A1 0x5997 +0xE6A2 0x59CA +0xE6A3 0x59AB +0xE6A4 0x599E +0xE6A5 0x59A4 +0xE6A6 0x59D2 +0xE6A7 0x59B2 +0xE6A8 0x59AF +0xE6A9 0x59D7 +0xE6AA 0x59BE +0xE6AB 0x5A05 +0xE6AC 0x5A06 +0xE6AD 0x59DD +0xE6AE 0x5A08 +0xE6AF 0x59E3 +0xE6B0 0x59D8 +0xE6B1 0x59F9 +0xE6B2 0x5A0C +0xE6B3 0x5A09 +0xE6B4 0x5A32 +0xE6B5 0x5A34 +0xE6B6 0x5A11 +0xE6B7 0x5A23 +0xE6B8 0x5A13 +0xE6B9 0x5A40 +0xE6BA 0x5A67 +0xE6BB 0x5A4A +0xE6BC 0x5A55 +0xE6BD 0x5A3C +0xE6BE 0x5A62 +0xE6BF 0x5A75 +0xE6C0 0x80EC +0xE6C1 0x5AAA +0xE6C2 0x5A9B +0xE6C3 0x5A77 +0xE6C4 0x5A7A +0xE6C5 0x5ABE +0xE6C6 0x5AEB +0xE6C7 0x5AB2 +0xE6C8 0x5AD2 +0xE6C9 0x5AD4 +0xE6CA 0x5AB8 +0xE6CB 0x5AE0 +0xE6CC 0x5AE3 +0xE6CD 0x5AF1 +0xE6CE 0x5AD6 +0xE6CF 0x5AE6 +0xE6D0 0x5AD8 +0xE6D1 0x5ADC +0xE6D2 0x5B09 +0xE6D3 0x5B17 +0xE6D4 0x5B16 +0xE6D5 0x5B32 +0xE6D6 0x5B37 +0xE6D7 0x5B40 +0xE6D8 0x5C15 +0xE6D9 0x5C1C +0xE6DA 0x5B5A +0xE6DB 0x5B65 +0xE6DC 0x5B73 +0xE6DD 0x5B51 +0xE6DE 0x5B53 +0xE6DF 0x5B62 +0xE6E0 0x9A75 +0xE6E1 0x9A77 +0xE6E2 0x9A78 +0xE6E3 0x9A7A +0xE6E4 0x9A7F +0xE6E5 0x9A7D +0xE6E6 0x9A80 +0xE6E7 0x9A81 +0xE6E8 0x9A85 +0xE6E9 0x9A88 +0xE6EA 0x9A8A +0xE6EB 0x9A90 +0xE6EC 0x9A92 +0xE6ED 0x9A93 +0xE6EE 0x9A96 +0xE6EF 0x9A98 +0xE6F0 0x9A9B +0xE6F1 0x9A9C +0xE6F2 0x9A9D +0xE6F3 0x9A9F +0xE6F4 0x9AA0 +0xE6F5 0x9AA2 +0xE6F6 0x9AA3 +0xE6F7 0x9AA5 +0xE6F8 0x9AA7 +0xE6F9 0x7E9F +0xE6FA 0x7EA1 +0xE6FB 0x7EA3 +0xE6FC 0x7EA5 +0xE6FD 0x7EA8 +0xE6FE 0x7EA9 +0xE740 0x93CE +0xE741 0x93CF +0xE742 0x93D0 +0xE743 0x93D1 +0xE744 0x93D2 +0xE745 0x93D3 +0xE746 0x93D4 +0xE747 0x93D5 +0xE748 0x93D7 +0xE749 0x93D8 +0xE74A 0x93D9 +0xE74B 0x93DA +0xE74C 0x93DB +0xE74D 0x93DC +0xE74E 0x93DD +0xE74F 0x93DE +0xE750 0x93DF +0xE751 0x93E0 +0xE752 0x93E1 +0xE753 0x93E2 +0xE754 0x93E3 +0xE755 0x93E4 +0xE756 0x93E5 +0xE757 0x93E6 +0xE758 0x93E7 +0xE759 0x93E8 +0xE75A 0x93E9 +0xE75B 0x93EA +0xE75C 0x93EB +0xE75D 0x93EC +0xE75E 0x93ED +0xE75F 0x93EE +0xE760 0x93EF +0xE761 0x93F0 +0xE762 0x93F1 +0xE763 0x93F2 +0xE764 0x93F3 +0xE765 0x93F4 +0xE766 0x93F5 +0xE767 0x93F6 +0xE768 0x93F7 +0xE769 0x93F8 +0xE76A 0x93F9 +0xE76B 0x93FA +0xE76C 0x93FB +0xE76D 0x93FC +0xE76E 0x93FD +0xE76F 0x93FE +0xE770 0x93FF +0xE771 0x9400 +0xE772 0x9401 +0xE773 0x9402 +0xE774 0x9403 +0xE775 0x9404 +0xE776 0x9405 +0xE777 0x9406 +0xE778 0x9407 +0xE779 0x9408 +0xE77A 0x9409 +0xE77B 0x940A +0xE77C 0x940B +0xE77D 0x940C +0xE77E 0x940D +0xE780 0x940E +0xE781 0x940F +0xE782 0x9410 +0xE783 0x9411 +0xE784 0x9412 +0xE785 0x9413 +0xE786 0x9414 +0xE787 0x9415 +0xE788 0x9416 +0xE789 0x9417 +0xE78A 0x9418 +0xE78B 0x9419 +0xE78C 0x941A +0xE78D 0x941B +0xE78E 0x941C +0xE78F 0x941D +0xE790 0x941E +0xE791 0x941F +0xE792 0x9420 +0xE793 0x9421 +0xE794 0x9422 +0xE795 0x9423 +0xE796 0x9424 +0xE797 0x9425 +0xE798 0x9426 +0xE799 0x9427 +0xE79A 0x9428 +0xE79B 0x9429 +0xE79C 0x942A +0xE79D 0x942B +0xE79E 0x942C +0xE79F 0x942D +0xE7A0 0x942E +0xE7A1 0x7EAD +0xE7A2 0x7EB0 +0xE7A3 0x7EBE +0xE7A4 0x7EC0 +0xE7A5 0x7EC1 +0xE7A6 0x7EC2 +0xE7A7 0x7EC9 +0xE7A8 0x7ECB +0xE7A9 0x7ECC +0xE7AA 0x7ED0 +0xE7AB 0x7ED4 +0xE7AC 0x7ED7 +0xE7AD 0x7EDB +0xE7AE 0x7EE0 +0xE7AF 0x7EE1 +0xE7B0 0x7EE8 +0xE7B1 0x7EEB +0xE7B2 0x7EEE +0xE7B3 0x7EEF +0xE7B4 0x7EF1 +0xE7B5 0x7EF2 +0xE7B6 0x7F0D +0xE7B7 0x7EF6 +0xE7B8 0x7EFA +0xE7B9 0x7EFB +0xE7BA 0x7EFE +0xE7BB 0x7F01 +0xE7BC 0x7F02 +0xE7BD 0x7F03 +0xE7BE 0x7F07 +0xE7BF 0x7F08 +0xE7C0 0x7F0B +0xE7C1 0x7F0C +0xE7C2 0x7F0F +0xE7C3 0x7F11 +0xE7C4 0x7F12 +0xE7C5 0x7F17 +0xE7C6 0x7F19 +0xE7C7 0x7F1C +0xE7C8 0x7F1B +0xE7C9 0x7F1F +0xE7CA 0x7F21 +0xE7CB 0x7F22 +0xE7CC 0x7F23 +0xE7CD 0x7F24 +0xE7CE 0x7F25 +0xE7CF 0x7F26 +0xE7D0 0x7F27 +0xE7D1 0x7F2A +0xE7D2 0x7F2B +0xE7D3 0x7F2C +0xE7D4 0x7F2D +0xE7D5 0x7F2F +0xE7D6 0x7F30 +0xE7D7 0x7F31 +0xE7D8 0x7F32 +0xE7D9 0x7F33 +0xE7DA 0x7F35 +0xE7DB 0x5E7A +0xE7DC 0x757F +0xE7DD 0x5DDB +0xE7DE 0x753E +0xE7DF 0x9095 +0xE7E0 0x738E +0xE7E1 0x7391 +0xE7E2 0x73AE +0xE7E3 0x73A2 +0xE7E4 0x739F +0xE7E5 0x73CF +0xE7E6 0x73C2 +0xE7E7 0x73D1 +0xE7E8 0x73B7 +0xE7E9 0x73B3 +0xE7EA 0x73C0 +0xE7EB 0x73C9 +0xE7EC 0x73C8 +0xE7ED 0x73E5 +0xE7EE 0x73D9 +0xE7EF 0x987C +0xE7F0 0x740A +0xE7F1 0x73E9 +0xE7F2 0x73E7 +0xE7F3 0x73DE +0xE7F4 0x73BA +0xE7F5 0x73F2 +0xE7F6 0x740F +0xE7F7 0x742A +0xE7F8 0x745B +0xE7F9 0x7426 +0xE7FA 0x7425 +0xE7FB 0x7428 +0xE7FC 0x7430 +0xE7FD 0x742E +0xE7FE 0x742C +0xE840 0x942F +0xE841 0x9430 +0xE842 0x9431 +0xE843 0x9432 +0xE844 0x9433 +0xE845 0x9434 +0xE846 0x9435 +0xE847 0x9436 +0xE848 0x9437 +0xE849 0x9438 +0xE84A 0x9439 +0xE84B 0x943A +0xE84C 0x943B +0xE84D 0x943C +0xE84E 0x943D +0xE84F 0x943F +0xE850 0x9440 +0xE851 0x9441 +0xE852 0x9442 +0xE853 0x9443 +0xE854 0x9444 +0xE855 0x9445 +0xE856 0x9446 +0xE857 0x9447 +0xE858 0x9448 +0xE859 0x9449 +0xE85A 0x944A +0xE85B 0x944B +0xE85C 0x944C +0xE85D 0x944D +0xE85E 0x944E +0xE85F 0x944F +0xE860 0x9450 +0xE861 0x9451 +0xE862 0x9452 +0xE863 0x9453 +0xE864 0x9454 +0xE865 0x9455 +0xE866 0x9456 +0xE867 0x9457 +0xE868 0x9458 +0xE869 0x9459 +0xE86A 0x945A +0xE86B 0x945B +0xE86C 0x945C +0xE86D 0x945D +0xE86E 0x945E +0xE86F 0x945F +0xE870 0x9460 +0xE871 0x9461 +0xE872 0x9462 +0xE873 0x9463 +0xE874 0x9464 +0xE875 0x9465 +0xE876 0x9466 +0xE877 0x9467 +0xE878 0x9468 +0xE879 0x9469 +0xE87A 0x946A +0xE87B 0x946C +0xE87C 0x946D +0xE87D 0x946E +0xE87E 0x946F +0xE880 0x9470 +0xE881 0x9471 +0xE882 0x9472 +0xE883 0x9473 +0xE884 0x9474 +0xE885 0x9475 +0xE886 0x9476 +0xE887 0x9477 +0xE888 0x9478 +0xE889 0x9479 +0xE88A 0x947A +0xE88B 0x947B +0xE88C 0x947C +0xE88D 0x947D +0xE88E 0x947E +0xE88F 0x947F +0xE890 0x9480 +0xE891 0x9481 +0xE892 0x9482 +0xE893 0x9483 +0xE894 0x9484 +0xE895 0x9491 +0xE896 0x9496 +0xE897 0x9498 +0xE898 0x94C7 +0xE899 0x94CF +0xE89A 0x94D3 +0xE89B 0x94D4 +0xE89C 0x94DA +0xE89D 0x94E6 +0xE89E 0x94FB +0xE89F 0x951C +0xE8A0 0x9520 +0xE8A1 0x741B +0xE8A2 0x741A +0xE8A3 0x7441 +0xE8A4 0x745C +0xE8A5 0x7457 +0xE8A6 0x7455 +0xE8A7 0x7459 +0xE8A8 0x7477 +0xE8A9 0x746D +0xE8AA 0x747E +0xE8AB 0x749C +0xE8AC 0x748E +0xE8AD 0x7480 +0xE8AE 0x7481 +0xE8AF 0x7487 +0xE8B0 0x748B +0xE8B1 0x749E +0xE8B2 0x74A8 +0xE8B3 0x74A9 +0xE8B4 0x7490 +0xE8B5 0x74A7 +0xE8B6 0x74D2 +0xE8B7 0x74BA +0xE8B8 0x97EA +0xE8B9 0x97EB +0xE8BA 0x97EC +0xE8BB 0x674C +0xE8BC 0x6753 +0xE8BD 0x675E +0xE8BE 0x6748 +0xE8BF 0x6769 +0xE8C0 0x67A5 +0xE8C1 0x6787 +0xE8C2 0x676A +0xE8C3 0x6773 +0xE8C4 0x6798 +0xE8C5 0x67A7 +0xE8C6 0x6775 +0xE8C7 0x67A8 +0xE8C8 0x679E +0xE8C9 0x67AD +0xE8CA 0x678B +0xE8CB 0x6777 +0xE8CC 0x677C +0xE8CD 0x67F0 +0xE8CE 0x6809 +0xE8CF 0x67D8 +0xE8D0 0x680A +0xE8D1 0x67E9 +0xE8D2 0x67B0 +0xE8D3 0x680C +0xE8D4 0x67D9 +0xE8D5 0x67B5 +0xE8D6 0x67DA +0xE8D7 0x67B3 +0xE8D8 0x67DD +0xE8D9 0x6800 +0xE8DA 0x67C3 +0xE8DB 0x67B8 +0xE8DC 0x67E2 +0xE8DD 0x680E +0xE8DE 0x67C1 +0xE8DF 0x67FD +0xE8E0 0x6832 +0xE8E1 0x6833 +0xE8E2 0x6860 +0xE8E3 0x6861 +0xE8E4 0x684E +0xE8E5 0x6862 +0xE8E6 0x6844 +0xE8E7 0x6864 +0xE8E8 0x6883 +0xE8E9 0x681D +0xE8EA 0x6855 +0xE8EB 0x6866 +0xE8EC 0x6841 +0xE8ED 0x6867 +0xE8EE 0x6840 +0xE8EF 0x683E +0xE8F0 0x684A +0xE8F1 0x6849 +0xE8F2 0x6829 +0xE8F3 0x68B5 +0xE8F4 0x688F +0xE8F5 0x6874 +0xE8F6 0x6877 +0xE8F7 0x6893 +0xE8F8 0x686B +0xE8F9 0x68C2 +0xE8FA 0x696E +0xE8FB 0x68FC +0xE8FC 0x691F +0xE8FD 0x6920 +0xE8FE 0x68F9 +0xE940 0x9527 +0xE941 0x9533 +0xE942 0x953D +0xE943 0x9543 +0xE944 0x9548 +0xE945 0x954B +0xE946 0x9555 +0xE947 0x955A +0xE948 0x9560 +0xE949 0x956E +0xE94A 0x9574 +0xE94B 0x9575 +0xE94C 0x9577 +0xE94D 0x9578 +0xE94E 0x9579 +0xE94F 0x957A +0xE950 0x957B +0xE951 0x957C +0xE952 0x957D +0xE953 0x957E +0xE954 0x9580 +0xE955 0x9581 +0xE956 0x9582 +0xE957 0x9583 +0xE958 0x9584 +0xE959 0x9585 +0xE95A 0x9586 +0xE95B 0x9587 +0xE95C 0x9588 +0xE95D 0x9589 +0xE95E 0x958A +0xE95F 0x958B +0xE960 0x958C +0xE961 0x958D +0xE962 0x958E +0xE963 0x958F +0xE964 0x9590 +0xE965 0x9591 +0xE966 0x9592 +0xE967 0x9593 +0xE968 0x9594 +0xE969 0x9595 +0xE96A 0x9596 +0xE96B 0x9597 +0xE96C 0x9598 +0xE96D 0x9599 +0xE96E 0x959A +0xE96F 0x959B +0xE970 0x959C +0xE971 0x959D +0xE972 0x959E +0xE973 0x959F +0xE974 0x95A0 +0xE975 0x95A1 +0xE976 0x95A2 +0xE977 0x95A3 +0xE978 0x95A4 +0xE979 0x95A5 +0xE97A 0x95A6 +0xE97B 0x95A7 +0xE97C 0x95A8 +0xE97D 0x95A9 +0xE97E 0x95AA +0xE980 0x95AB +0xE981 0x95AC +0xE982 0x95AD +0xE983 0x95AE +0xE984 0x95AF +0xE985 0x95B0 +0xE986 0x95B1 +0xE987 0x95B2 +0xE988 0x95B3 +0xE989 0x95B4 +0xE98A 0x95B5 +0xE98B 0x95B6 +0xE98C 0x95B7 +0xE98D 0x95B8 +0xE98E 0x95B9 +0xE98F 0x95BA +0xE990 0x95BB +0xE991 0x95BC +0xE992 0x95BD +0xE993 0x95BE +0xE994 0x95BF +0xE995 0x95C0 +0xE996 0x95C1 +0xE997 0x95C2 +0xE998 0x95C3 +0xE999 0x95C4 +0xE99A 0x95C5 +0xE99B 0x95C6 +0xE99C 0x95C7 +0xE99D 0x95C8 +0xE99E 0x95C9 +0xE99F 0x95CA +0xE9A0 0x95CB +0xE9A1 0x6924 +0xE9A2 0x68F0 +0xE9A3 0x690B +0xE9A4 0x6901 +0xE9A5 0x6957 +0xE9A6 0x68E3 +0xE9A7 0x6910 +0xE9A8 0x6971 +0xE9A9 0x6939 +0xE9AA 0x6960 +0xE9AB 0x6942 +0xE9AC 0x695D +0xE9AD 0x6984 +0xE9AE 0x696B +0xE9AF 0x6980 +0xE9B0 0x6998 +0xE9B1 0x6978 +0xE9B2 0x6934 +0xE9B3 0x69CC +0xE9B4 0x6987 +0xE9B5 0x6988 +0xE9B6 0x69CE +0xE9B7 0x6989 +0xE9B8 0x6966 +0xE9B9 0x6963 +0xE9BA 0x6979 +0xE9BB 0x699B +0xE9BC 0x69A7 +0xE9BD 0x69BB +0xE9BE 0x69AB +0xE9BF 0x69AD +0xE9C0 0x69D4 +0xE9C1 0x69B1 +0xE9C2 0x69C1 +0xE9C3 0x69CA +0xE9C4 0x69DF +0xE9C5 0x6995 +0xE9C6 0x69E0 +0xE9C7 0x698D +0xE9C8 0x69FF +0xE9C9 0x6A2F +0xE9CA 0x69ED +0xE9CB 0x6A17 +0xE9CC 0x6A18 +0xE9CD 0x6A65 +0xE9CE 0x69F2 +0xE9CF 0x6A44 +0xE9D0 0x6A3E +0xE9D1 0x6AA0 +0xE9D2 0x6A50 +0xE9D3 0x6A5B +0xE9D4 0x6A35 +0xE9D5 0x6A8E +0xE9D6 0x6A79 +0xE9D7 0x6A3D +0xE9D8 0x6A28 +0xE9D9 0x6A58 +0xE9DA 0x6A7C +0xE9DB 0x6A91 +0xE9DC 0x6A90 +0xE9DD 0x6AA9 +0xE9DE 0x6A97 +0xE9DF 0x6AAB +0xE9E0 0x7337 +0xE9E1 0x7352 +0xE9E2 0x6B81 +0xE9E3 0x6B82 +0xE9E4 0x6B87 +0xE9E5 0x6B84 +0xE9E6 0x6B92 +0xE9E7 0x6B93 +0xE9E8 0x6B8D +0xE9E9 0x6B9A +0xE9EA 0x6B9B +0xE9EB 0x6BA1 +0xE9EC 0x6BAA +0xE9ED 0x8F6B +0xE9EE 0x8F6D +0xE9EF 0x8F71 +0xE9F0 0x8F72 +0xE9F1 0x8F73 +0xE9F2 0x8F75 +0xE9F3 0x8F76 +0xE9F4 0x8F78 +0xE9F5 0x8F77 +0xE9F6 0x8F79 +0xE9F7 0x8F7A +0xE9F8 0x8F7C +0xE9F9 0x8F7E +0xE9FA 0x8F81 +0xE9FB 0x8F82 +0xE9FC 0x8F84 +0xE9FD 0x8F87 +0xE9FE 0x8F8B +0xEA40 0x95CC +0xEA41 0x95CD +0xEA42 0x95CE +0xEA43 0x95CF +0xEA44 0x95D0 +0xEA45 0x95D1 +0xEA46 0x95D2 +0xEA47 0x95D3 +0xEA48 0x95D4 +0xEA49 0x95D5 +0xEA4A 0x95D6 +0xEA4B 0x95D7 +0xEA4C 0x95D8 +0xEA4D 0x95D9 +0xEA4E 0x95DA +0xEA4F 0x95DB +0xEA50 0x95DC +0xEA51 0x95DD +0xEA52 0x95DE +0xEA53 0x95DF +0xEA54 0x95E0 +0xEA55 0x95E1 +0xEA56 0x95E2 +0xEA57 0x95E3 +0xEA58 0x95E4 +0xEA59 0x95E5 +0xEA5A 0x95E6 +0xEA5B 0x95E7 +0xEA5C 0x95EC +0xEA5D 0x95FF +0xEA5E 0x9607 +0xEA5F 0x9613 +0xEA60 0x9618 +0xEA61 0x961B +0xEA62 0x961E +0xEA63 0x9620 +0xEA64 0x9623 +0xEA65 0x9624 +0xEA66 0x9625 +0xEA67 0x9626 +0xEA68 0x9627 +0xEA69 0x9628 +0xEA6A 0x9629 +0xEA6B 0x962B +0xEA6C 0x962C +0xEA6D 0x962D +0xEA6E 0x962F +0xEA6F 0x9630 +0xEA70 0x9637 +0xEA71 0x9638 +0xEA72 0x9639 +0xEA73 0x963A +0xEA74 0x963E +0xEA75 0x9641 +0xEA76 0x9643 +0xEA77 0x964A +0xEA78 0x964E +0xEA79 0x964F +0xEA7A 0x9651 +0xEA7B 0x9652 +0xEA7C 0x9653 +0xEA7D 0x9656 +0xEA7E 0x9657 +0xEA80 0x9658 +0xEA81 0x9659 +0xEA82 0x965A +0xEA83 0x965C +0xEA84 0x965D +0xEA85 0x965E +0xEA86 0x9660 +0xEA87 0x9663 +0xEA88 0x9665 +0xEA89 0x9666 +0xEA8A 0x966B +0xEA8B 0x966D +0xEA8C 0x966E +0xEA8D 0x966F +0xEA8E 0x9670 +0xEA8F 0x9671 +0xEA90 0x9673 +0xEA91 0x9678 +0xEA92 0x9679 +0xEA93 0x967A +0xEA94 0x967B +0xEA95 0x967C +0xEA96 0x967D +0xEA97 0x967E +0xEA98 0x967F +0xEA99 0x9680 +0xEA9A 0x9681 +0xEA9B 0x9682 +0xEA9C 0x9683 +0xEA9D 0x9684 +0xEA9E 0x9687 +0xEA9F 0x9689 +0xEAA0 0x968A +0xEAA1 0x8F8D +0xEAA2 0x8F8E +0xEAA3 0x8F8F +0xEAA4 0x8F98 +0xEAA5 0x8F9A +0xEAA6 0x8ECE +0xEAA7 0x620B +0xEAA8 0x6217 +0xEAA9 0x621B +0xEAAA 0x621F +0xEAAB 0x6222 +0xEAAC 0x6221 +0xEAAD 0x6225 +0xEAAE 0x6224 +0xEAAF 0x622C +0xEAB0 0x81E7 +0xEAB1 0x74EF +0xEAB2 0x74F4 +0xEAB3 0x74FF +0xEAB4 0x750F +0xEAB5 0x7511 +0xEAB6 0x7513 +0xEAB7 0x6534 +0xEAB8 0x65EE +0xEAB9 0x65EF +0xEABA 0x65F0 +0xEABB 0x660A +0xEABC 0x6619 +0xEABD 0x6772 +0xEABE 0x6603 +0xEABF 0x6615 +0xEAC0 0x6600 +0xEAC1 0x7085 +0xEAC2 0x66F7 +0xEAC3 0x661D +0xEAC4 0x6634 +0xEAC5 0x6631 +0xEAC6 0x6636 +0xEAC7 0x6635 +0xEAC8 0x8006 +0xEAC9 0x665F +0xEACA 0x6654 +0xEACB 0x6641 +0xEACC 0x664F +0xEACD 0x6656 +0xEACE 0x6661 +0xEACF 0x6657 +0xEAD0 0x6677 +0xEAD1 0x6684 +0xEAD2 0x668C +0xEAD3 0x66A7 +0xEAD4 0x669D +0xEAD5 0x66BE +0xEAD6 0x66DB +0xEAD7 0x66DC +0xEAD8 0x66E6 +0xEAD9 0x66E9 +0xEADA 0x8D32 +0xEADB 0x8D33 +0xEADC 0x8D36 +0xEADD 0x8D3B +0xEADE 0x8D3D +0xEADF 0x8D40 +0xEAE0 0x8D45 +0xEAE1 0x8D46 +0xEAE2 0x8D48 +0xEAE3 0x8D49 +0xEAE4 0x8D47 +0xEAE5 0x8D4D +0xEAE6 0x8D55 +0xEAE7 0x8D59 +0xEAE8 0x89C7 +0xEAE9 0x89CA +0xEAEA 0x89CB +0xEAEB 0x89CC +0xEAEC 0x89CE +0xEAED 0x89CF +0xEAEE 0x89D0 +0xEAEF 0x89D1 +0xEAF0 0x726E +0xEAF1 0x729F +0xEAF2 0x725D +0xEAF3 0x7266 +0xEAF4 0x726F +0xEAF5 0x727E +0xEAF6 0x727F +0xEAF7 0x7284 +0xEAF8 0x728B +0xEAF9 0x728D +0xEAFA 0x728F +0xEAFB 0x7292 +0xEAFC 0x6308 +0xEAFD 0x6332 +0xEAFE 0x63B0 +0xEB40 0x968C +0xEB41 0x968E +0xEB42 0x9691 +0xEB43 0x9692 +0xEB44 0x9693 +0xEB45 0x9695 +0xEB46 0x9696 +0xEB47 0x969A +0xEB48 0x969B +0xEB49 0x969D +0xEB4A 0x969E +0xEB4B 0x969F +0xEB4C 0x96A0 +0xEB4D 0x96A1 +0xEB4E 0x96A2 +0xEB4F 0x96A3 +0xEB50 0x96A4 +0xEB51 0x96A5 +0xEB52 0x96A6 +0xEB53 0x96A8 +0xEB54 0x96A9 +0xEB55 0x96AA +0xEB56 0x96AB +0xEB57 0x96AC +0xEB58 0x96AD +0xEB59 0x96AE +0xEB5A 0x96AF +0xEB5B 0x96B1 +0xEB5C 0x96B2 +0xEB5D 0x96B4 +0xEB5E 0x96B5 +0xEB5F 0x96B7 +0xEB60 0x96B8 +0xEB61 0x96BA +0xEB62 0x96BB +0xEB63 0x96BF +0xEB64 0x96C2 +0xEB65 0x96C3 +0xEB66 0x96C8 +0xEB67 0x96CA +0xEB68 0x96CB +0xEB69 0x96D0 +0xEB6A 0x96D1 +0xEB6B 0x96D3 +0xEB6C 0x96D4 +0xEB6D 0x96D6 +0xEB6E 0x96D7 +0xEB6F 0x96D8 +0xEB70 0x96D9 +0xEB71 0x96DA +0xEB72 0x96DB +0xEB73 0x96DC +0xEB74 0x96DD +0xEB75 0x96DE +0xEB76 0x96DF +0xEB77 0x96E1 +0xEB78 0x96E2 +0xEB79 0x96E3 +0xEB7A 0x96E4 +0xEB7B 0x96E5 +0xEB7C 0x96E6 +0xEB7D 0x96E7 +0xEB7E 0x96EB +0xEB80 0x96EC +0xEB81 0x96ED +0xEB82 0x96EE +0xEB83 0x96F0 +0xEB84 0x96F1 +0xEB85 0x96F2 +0xEB86 0x96F4 +0xEB87 0x96F5 +0xEB88 0x96F8 +0xEB89 0x96FA +0xEB8A 0x96FB +0xEB8B 0x96FC +0xEB8C 0x96FD +0xEB8D 0x96FF +0xEB8E 0x9702 +0xEB8F 0x9703 +0xEB90 0x9705 +0xEB91 0x970A +0xEB92 0x970B +0xEB93 0x970C +0xEB94 0x9710 +0xEB95 0x9711 +0xEB96 0x9712 +0xEB97 0x9714 +0xEB98 0x9715 +0xEB99 0x9717 +0xEB9A 0x9718 +0xEB9B 0x9719 +0xEB9C 0x971A +0xEB9D 0x971B +0xEB9E 0x971D +0xEB9F 0x971F +0xEBA0 0x9720 +0xEBA1 0x643F +0xEBA2 0x64D8 +0xEBA3 0x8004 +0xEBA4 0x6BEA +0xEBA5 0x6BF3 +0xEBA6 0x6BFD +0xEBA7 0x6BF5 +0xEBA8 0x6BF9 +0xEBA9 0x6C05 +0xEBAA 0x6C07 +0xEBAB 0x6C06 +0xEBAC 0x6C0D +0xEBAD 0x6C15 +0xEBAE 0x6C18 +0xEBAF 0x6C19 +0xEBB0 0x6C1A +0xEBB1 0x6C21 +0xEBB2 0x6C29 +0xEBB3 0x6C24 +0xEBB4 0x6C2A +0xEBB5 0x6C32 +0xEBB6 0x6535 +0xEBB7 0x6555 +0xEBB8 0x656B +0xEBB9 0x724D +0xEBBA 0x7252 +0xEBBB 0x7256 +0xEBBC 0x7230 +0xEBBD 0x8662 +0xEBBE 0x5216 +0xEBBF 0x809F +0xEBC0 0x809C +0xEBC1 0x8093 +0xEBC2 0x80BC +0xEBC3 0x670A +0xEBC4 0x80BD +0xEBC5 0x80B1 +0xEBC6 0x80AB +0xEBC7 0x80AD +0xEBC8 0x80B4 +0xEBC9 0x80B7 +0xEBCA 0x80E7 +0xEBCB 0x80E8 +0xEBCC 0x80E9 +0xEBCD 0x80EA +0xEBCE 0x80DB +0xEBCF 0x80C2 +0xEBD0 0x80C4 +0xEBD1 0x80D9 +0xEBD2 0x80CD +0xEBD3 0x80D7 +0xEBD4 0x6710 +0xEBD5 0x80DD +0xEBD6 0x80EB +0xEBD7 0x80F1 +0xEBD8 0x80F4 +0xEBD9 0x80ED +0xEBDA 0x810D +0xEBDB 0x810E +0xEBDC 0x80F2 +0xEBDD 0x80FC +0xEBDE 0x6715 +0xEBDF 0x8112 +0xEBE0 0x8C5A +0xEBE1 0x8136 +0xEBE2 0x811E +0xEBE3 0x812C +0xEBE4 0x8118 +0xEBE5 0x8132 +0xEBE6 0x8148 +0xEBE7 0x814C +0xEBE8 0x8153 +0xEBE9 0x8174 +0xEBEA 0x8159 +0xEBEB 0x815A +0xEBEC 0x8171 +0xEBED 0x8160 +0xEBEE 0x8169 +0xEBEF 0x817C +0xEBF0 0x817D +0xEBF1 0x816D +0xEBF2 0x8167 +0xEBF3 0x584D +0xEBF4 0x5AB5 +0xEBF5 0x8188 +0xEBF6 0x8182 +0xEBF7 0x8191 +0xEBF8 0x6ED5 +0xEBF9 0x81A3 +0xEBFA 0x81AA +0xEBFB 0x81CC +0xEBFC 0x6726 +0xEBFD 0x81CA +0xEBFE 0x81BB +0xEC40 0x9721 +0xEC41 0x9722 +0xEC42 0x9723 +0xEC43 0x9724 +0xEC44 0x9725 +0xEC45 0x9726 +0xEC46 0x9727 +0xEC47 0x9728 +0xEC48 0x9729 +0xEC49 0x972B +0xEC4A 0x972C +0xEC4B 0x972E +0xEC4C 0x972F +0xEC4D 0x9731 +0xEC4E 0x9733 +0xEC4F 0x9734 +0xEC50 0x9735 +0xEC51 0x9736 +0xEC52 0x9737 +0xEC53 0x973A +0xEC54 0x973B +0xEC55 0x973C +0xEC56 0x973D +0xEC57 0x973F +0xEC58 0x9740 +0xEC59 0x9741 +0xEC5A 0x9742 +0xEC5B 0x9743 +0xEC5C 0x9744 +0xEC5D 0x9745 +0xEC5E 0x9746 +0xEC5F 0x9747 +0xEC60 0x9748 +0xEC61 0x9749 +0xEC62 0x974A +0xEC63 0x974B +0xEC64 0x974C +0xEC65 0x974D +0xEC66 0x974E +0xEC67 0x974F +0xEC68 0x9750 +0xEC69 0x9751 +0xEC6A 0x9754 +0xEC6B 0x9755 +0xEC6C 0x9757 +0xEC6D 0x9758 +0xEC6E 0x975A +0xEC6F 0x975C +0xEC70 0x975D +0xEC71 0x975F +0xEC72 0x9763 +0xEC73 0x9764 +0xEC74 0x9766 +0xEC75 0x9767 +0xEC76 0x9768 +0xEC77 0x976A +0xEC78 0x976B +0xEC79 0x976C +0xEC7A 0x976D +0xEC7B 0x976E +0xEC7C 0x976F +0xEC7D 0x9770 +0xEC7E 0x9771 +0xEC80 0x9772 +0xEC81 0x9775 +0xEC82 0x9777 +0xEC83 0x9778 +0xEC84 0x9779 +0xEC85 0x977A +0xEC86 0x977B +0xEC87 0x977D +0xEC88 0x977E +0xEC89 0x977F +0xEC8A 0x9780 +0xEC8B 0x9781 +0xEC8C 0x9782 +0xEC8D 0x9783 +0xEC8E 0x9784 +0xEC8F 0x9786 +0xEC90 0x9787 +0xEC91 0x9788 +0xEC92 0x9789 +0xEC93 0x978A +0xEC94 0x978C +0xEC95 0x978E +0xEC96 0x978F +0xEC97 0x9790 +0xEC98 0x9793 +0xEC99 0x9795 +0xEC9A 0x9796 +0xEC9B 0x9797 +0xEC9C 0x9799 +0xEC9D 0x979A +0xEC9E 0x979B +0xEC9F 0x979C +0xECA0 0x979D +0xECA1 0x81C1 +0xECA2 0x81A6 +0xECA3 0x6B24 +0xECA4 0x6B37 +0xECA5 0x6B39 +0xECA6 0x6B43 +0xECA7 0x6B46 +0xECA8 0x6B59 +0xECA9 0x98D1 +0xECAA 0x98D2 +0xECAB 0x98D3 +0xECAC 0x98D5 +0xECAD 0x98D9 +0xECAE 0x98DA +0xECAF 0x6BB3 +0xECB0 0x5F40 +0xECB1 0x6BC2 +0xECB2 0x89F3 +0xECB3 0x6590 +0xECB4 0x9F51 +0xECB5 0x6593 +0xECB6 0x65BC +0xECB7 0x65C6 +0xECB8 0x65C4 +0xECB9 0x65C3 +0xECBA 0x65CC +0xECBB 0x65CE +0xECBC 0x65D2 +0xECBD 0x65D6 +0xECBE 0x7080 +0xECBF 0x709C +0xECC0 0x7096 +0xECC1 0x709D +0xECC2 0x70BB +0xECC3 0x70C0 +0xECC4 0x70B7 +0xECC5 0x70AB +0xECC6 0x70B1 +0xECC7 0x70E8 +0xECC8 0x70CA +0xECC9 0x7110 +0xECCA 0x7113 +0xECCB 0x7116 +0xECCC 0x712F +0xECCD 0x7131 +0xECCE 0x7173 +0xECCF 0x715C +0xECD0 0x7168 +0xECD1 0x7145 +0xECD2 0x7172 +0xECD3 0x714A +0xECD4 0x7178 +0xECD5 0x717A +0xECD6 0x7198 +0xECD7 0x71B3 +0xECD8 0x71B5 +0xECD9 0x71A8 +0xECDA 0x71A0 +0xECDB 0x71E0 +0xECDC 0x71D4 +0xECDD 0x71E7 +0xECDE 0x71F9 +0xECDF 0x721D +0xECE0 0x7228 +0xECE1 0x706C +0xECE2 0x7118 +0xECE3 0x7166 +0xECE4 0x71B9 +0xECE5 0x623E +0xECE6 0x623D +0xECE7 0x6243 +0xECE8 0x6248 +0xECE9 0x6249 +0xECEA 0x793B +0xECEB 0x7940 +0xECEC 0x7946 +0xECED 0x7949 +0xECEE 0x795B +0xECEF 0x795C +0xECF0 0x7953 +0xECF1 0x795A +0xECF2 0x7962 +0xECF3 0x7957 +0xECF4 0x7960 +0xECF5 0x796F +0xECF6 0x7967 +0xECF7 0x797A +0xECF8 0x7985 +0xECF9 0x798A +0xECFA 0x799A +0xECFB 0x79A7 +0xECFC 0x79B3 +0xECFD 0x5FD1 +0xECFE 0x5FD0 +0xED40 0x979E +0xED41 0x979F +0xED42 0x97A1 +0xED43 0x97A2 +0xED44 0x97A4 +0xED45 0x97A5 +0xED46 0x97A6 +0xED47 0x97A7 +0xED48 0x97A8 +0xED49 0x97A9 +0xED4A 0x97AA +0xED4B 0x97AC +0xED4C 0x97AE +0xED4D 0x97B0 +0xED4E 0x97B1 +0xED4F 0x97B3 +0xED50 0x97B5 +0xED51 0x97B6 +0xED52 0x97B7 +0xED53 0x97B8 +0xED54 0x97B9 +0xED55 0x97BA +0xED56 0x97BB +0xED57 0x97BC +0xED58 0x97BD +0xED59 0x97BE +0xED5A 0x97BF +0xED5B 0x97C0 +0xED5C 0x97C1 +0xED5D 0x97C2 +0xED5E 0x97C3 +0xED5F 0x97C4 +0xED60 0x97C5 +0xED61 0x97C6 +0xED62 0x97C7 +0xED63 0x97C8 +0xED64 0x97C9 +0xED65 0x97CA +0xED66 0x97CB +0xED67 0x97CC +0xED68 0x97CD +0xED69 0x97CE +0xED6A 0x97CF +0xED6B 0x97D0 +0xED6C 0x97D1 +0xED6D 0x97D2 +0xED6E 0x97D3 +0xED6F 0x97D4 +0xED70 0x97D5 +0xED71 0x97D6 +0xED72 0x97D7 +0xED73 0x97D8 +0xED74 0x97D9 +0xED75 0x97DA +0xED76 0x97DB +0xED77 0x97DC +0xED78 0x97DD +0xED79 0x97DE +0xED7A 0x97DF +0xED7B 0x97E0 +0xED7C 0x97E1 +0xED7D 0x97E2 +0xED7E 0x97E3 +0xED80 0x97E4 +0xED81 0x97E5 +0xED82 0x97E8 +0xED83 0x97EE +0xED84 0x97EF +0xED85 0x97F0 +0xED86 0x97F1 +0xED87 0x97F2 +0xED88 0x97F4 +0xED89 0x97F7 +0xED8A 0x97F8 +0xED8B 0x97F9 +0xED8C 0x97FA +0xED8D 0x97FB +0xED8E 0x97FC +0xED8F 0x97FD +0xED90 0x97FE +0xED91 0x97FF +0xED92 0x9800 +0xED93 0x9801 +0xED94 0x9802 +0xED95 0x9803 +0xED96 0x9804 +0xED97 0x9805 +0xED98 0x9806 +0xED99 0x9807 +0xED9A 0x9808 +0xED9B 0x9809 +0xED9C 0x980A +0xED9D 0x980B +0xED9E 0x980C +0xED9F 0x980D +0xEDA0 0x980E +0xEDA1 0x603C +0xEDA2 0x605D +0xEDA3 0x605A +0xEDA4 0x6067 +0xEDA5 0x6041 +0xEDA6 0x6059 +0xEDA7 0x6063 +0xEDA8 0x60AB +0xEDA9 0x6106 +0xEDAA 0x610D +0xEDAB 0x615D +0xEDAC 0x61A9 +0xEDAD 0x619D +0xEDAE 0x61CB +0xEDAF 0x61D1 +0xEDB0 0x6206 +0xEDB1 0x8080 +0xEDB2 0x807F +0xEDB3 0x6C93 +0xEDB4 0x6CF6 +0xEDB5 0x6DFC +0xEDB6 0x77F6 +0xEDB7 0x77F8 +0xEDB8 0x7800 +0xEDB9 0x7809 +0xEDBA 0x7817 +0xEDBB 0x7818 +0xEDBC 0x7811 +0xEDBD 0x65AB +0xEDBE 0x782D +0xEDBF 0x781C +0xEDC0 0x781D +0xEDC1 0x7839 +0xEDC2 0x783A +0xEDC3 0x783B +0xEDC4 0x781F +0xEDC5 0x783C +0xEDC6 0x7825 +0xEDC7 0x782C +0xEDC8 0x7823 +0xEDC9 0x7829 +0xEDCA 0x784E +0xEDCB 0x786D +0xEDCC 0x7856 +0xEDCD 0x7857 +0xEDCE 0x7826 +0xEDCF 0x7850 +0xEDD0 0x7847 +0xEDD1 0x784C +0xEDD2 0x786A +0xEDD3 0x789B +0xEDD4 0x7893 +0xEDD5 0x789A +0xEDD6 0x7887 +0xEDD7 0x789C +0xEDD8 0x78A1 +0xEDD9 0x78A3 +0xEDDA 0x78B2 +0xEDDB 0x78B9 +0xEDDC 0x78A5 +0xEDDD 0x78D4 +0xEDDE 0x78D9 +0xEDDF 0x78C9 +0xEDE0 0x78EC +0xEDE1 0x78F2 +0xEDE2 0x7905 +0xEDE3 0x78F4 +0xEDE4 0x7913 +0xEDE5 0x7924 +0xEDE6 0x791E +0xEDE7 0x7934 +0xEDE8 0x9F9B +0xEDE9 0x9EF9 +0xEDEA 0x9EFB +0xEDEB 0x9EFC +0xEDEC 0x76F1 +0xEDED 0x7704 +0xEDEE 0x770D +0xEDEF 0x76F9 +0xEDF0 0x7707 +0xEDF1 0x7708 +0xEDF2 0x771A +0xEDF3 0x7722 +0xEDF4 0x7719 +0xEDF5 0x772D +0xEDF6 0x7726 +0xEDF7 0x7735 +0xEDF8 0x7738 +0xEDF9 0x7750 +0xEDFA 0x7751 +0xEDFB 0x7747 +0xEDFC 0x7743 +0xEDFD 0x775A +0xEDFE 0x7768 +0xEE40 0x980F +0xEE41 0x9810 +0xEE42 0x9811 +0xEE43 0x9812 +0xEE44 0x9813 +0xEE45 0x9814 +0xEE46 0x9815 +0xEE47 0x9816 +0xEE48 0x9817 +0xEE49 0x9818 +0xEE4A 0x9819 +0xEE4B 0x981A +0xEE4C 0x981B +0xEE4D 0x981C +0xEE4E 0x981D +0xEE4F 0x981E +0xEE50 0x981F +0xEE51 0x9820 +0xEE52 0x9821 +0xEE53 0x9822 +0xEE54 0x9823 +0xEE55 0x9824 +0xEE56 0x9825 +0xEE57 0x9826 +0xEE58 0x9827 +0xEE59 0x9828 +0xEE5A 0x9829 +0xEE5B 0x982A +0xEE5C 0x982B +0xEE5D 0x982C +0xEE5E 0x982D +0xEE5F 0x982E +0xEE60 0x982F +0xEE61 0x9830 +0xEE62 0x9831 +0xEE63 0x9832 +0xEE64 0x9833 +0xEE65 0x9834 +0xEE66 0x9835 +0xEE67 0x9836 +0xEE68 0x9837 +0xEE69 0x9838 +0xEE6A 0x9839 +0xEE6B 0x983A +0xEE6C 0x983B +0xEE6D 0x983C +0xEE6E 0x983D +0xEE6F 0x983E +0xEE70 0x983F +0xEE71 0x9840 +0xEE72 0x9841 +0xEE73 0x9842 +0xEE74 0x9843 +0xEE75 0x9844 +0xEE76 0x9845 +0xEE77 0x9846 +0xEE78 0x9847 +0xEE79 0x9848 +0xEE7A 0x9849 +0xEE7B 0x984A +0xEE7C 0x984B +0xEE7D 0x984C +0xEE7E 0x984D +0xEE80 0x984E +0xEE81 0x984F +0xEE82 0x9850 +0xEE83 0x9851 +0xEE84 0x9852 +0xEE85 0x9853 +0xEE86 0x9854 +0xEE87 0x9855 +0xEE88 0x9856 +0xEE89 0x9857 +0xEE8A 0x9858 +0xEE8B 0x9859 +0xEE8C 0x985A +0xEE8D 0x985B +0xEE8E 0x985C +0xEE8F 0x985D +0xEE90 0x985E +0xEE91 0x985F +0xEE92 0x9860 +0xEE93 0x9861 +0xEE94 0x9862 +0xEE95 0x9863 +0xEE96 0x9864 +0xEE97 0x9865 +0xEE98 0x9866 +0xEE99 0x9867 +0xEE9A 0x9868 +0xEE9B 0x9869 +0xEE9C 0x986A +0xEE9D 0x986B +0xEE9E 0x986C +0xEE9F 0x986D +0xEEA0 0x986E +0xEEA1 0x7762 +0xEEA2 0x7765 +0xEEA3 0x777F +0xEEA4 0x778D +0xEEA5 0x777D +0xEEA6 0x7780 +0xEEA7 0x778C +0xEEA8 0x7791 +0xEEA9 0x779F +0xEEAA 0x77A0 +0xEEAB 0x77B0 +0xEEAC 0x77B5 +0xEEAD 0x77BD +0xEEAE 0x753A +0xEEAF 0x7540 +0xEEB0 0x754E +0xEEB1 0x754B +0xEEB2 0x7548 +0xEEB3 0x755B +0xEEB4 0x7572 +0xEEB5 0x7579 +0xEEB6 0x7583 +0xEEB7 0x7F58 +0xEEB8 0x7F61 +0xEEB9 0x7F5F +0xEEBA 0x8A48 +0xEEBB 0x7F68 +0xEEBC 0x7F74 +0xEEBD 0x7F71 +0xEEBE 0x7F79 +0xEEBF 0x7F81 +0xEEC0 0x7F7E +0xEEC1 0x76CD +0xEEC2 0x76E5 +0xEEC3 0x8832 +0xEEC4 0x9485 +0xEEC5 0x9486 +0xEEC6 0x9487 +0xEEC7 0x948B +0xEEC8 0x948A +0xEEC9 0x948C +0xEECA 0x948D +0xEECB 0x948F +0xEECC 0x9490 +0xEECD 0x9494 +0xEECE 0x9497 +0xEECF 0x9495 +0xEED0 0x949A +0xEED1 0x949B +0xEED2 0x949C +0xEED3 0x94A3 +0xEED4 0x94A4 +0xEED5 0x94AB +0xEED6 0x94AA +0xEED7 0x94AD +0xEED8 0x94AC +0xEED9 0x94AF +0xEEDA 0x94B0 +0xEEDB 0x94B2 +0xEEDC 0x94B4 +0xEEDD 0x94B6 +0xEEDE 0x94B7 +0xEEDF 0x94B8 +0xEEE0 0x94B9 +0xEEE1 0x94BA +0xEEE2 0x94BC +0xEEE3 0x94BD +0xEEE4 0x94BF +0xEEE5 0x94C4 +0xEEE6 0x94C8 +0xEEE7 0x94C9 +0xEEE8 0x94CA +0xEEE9 0x94CB +0xEEEA 0x94CC +0xEEEB 0x94CD +0xEEEC 0x94CE +0xEEED 0x94D0 +0xEEEE 0x94D1 +0xEEEF 0x94D2 +0xEEF0 0x94D5 +0xEEF1 0x94D6 +0xEEF2 0x94D7 +0xEEF3 0x94D9 +0xEEF4 0x94D8 +0xEEF5 0x94DB +0xEEF6 0x94DE +0xEEF7 0x94DF +0xEEF8 0x94E0 +0xEEF9 0x94E2 +0xEEFA 0x94E4 +0xEEFB 0x94E5 +0xEEFC 0x94E7 +0xEEFD 0x94E8 +0xEEFE 0x94EA +0xEF40 0x986F +0xEF41 0x9870 +0xEF42 0x9871 +0xEF43 0x9872 +0xEF44 0x9873 +0xEF45 0x9874 +0xEF46 0x988B +0xEF47 0x988E +0xEF48 0x9892 +0xEF49 0x9895 +0xEF4A 0x9899 +0xEF4B 0x98A3 +0xEF4C 0x98A8 +0xEF4D 0x98A9 +0xEF4E 0x98AA +0xEF4F 0x98AB +0xEF50 0x98AC +0xEF51 0x98AD +0xEF52 0x98AE +0xEF53 0x98AF +0xEF54 0x98B0 +0xEF55 0x98B1 +0xEF56 0x98B2 +0xEF57 0x98B3 +0xEF58 0x98B4 +0xEF59 0x98B5 +0xEF5A 0x98B6 +0xEF5B 0x98B7 +0xEF5C 0x98B8 +0xEF5D 0x98B9 +0xEF5E 0x98BA +0xEF5F 0x98BB +0xEF60 0x98BC +0xEF61 0x98BD +0xEF62 0x98BE +0xEF63 0x98BF +0xEF64 0x98C0 +0xEF65 0x98C1 +0xEF66 0x98C2 +0xEF67 0x98C3 +0xEF68 0x98C4 +0xEF69 0x98C5 +0xEF6A 0x98C6 +0xEF6B 0x98C7 +0xEF6C 0x98C8 +0xEF6D 0x98C9 +0xEF6E 0x98CA +0xEF6F 0x98CB +0xEF70 0x98CC +0xEF71 0x98CD +0xEF72 0x98CF +0xEF73 0x98D0 +0xEF74 0x98D4 +0xEF75 0x98D6 +0xEF76 0x98D7 +0xEF77 0x98DB +0xEF78 0x98DC +0xEF79 0x98DD +0xEF7A 0x98E0 +0xEF7B 0x98E1 +0xEF7C 0x98E2 +0xEF7D 0x98E3 +0xEF7E 0x98E4 +0xEF80 0x98E5 +0xEF81 0x98E6 +0xEF82 0x98E9 +0xEF83 0x98EA +0xEF84 0x98EB +0xEF85 0x98EC +0xEF86 0x98ED +0xEF87 0x98EE +0xEF88 0x98EF +0xEF89 0x98F0 +0xEF8A 0x98F1 +0xEF8B 0x98F2 +0xEF8C 0x98F3 +0xEF8D 0x98F4 +0xEF8E 0x98F5 +0xEF8F 0x98F6 +0xEF90 0x98F7 +0xEF91 0x98F8 +0xEF92 0x98F9 +0xEF93 0x98FA +0xEF94 0x98FB +0xEF95 0x98FC +0xEF96 0x98FD +0xEF97 0x98FE +0xEF98 0x98FF +0xEF99 0x9900 +0xEF9A 0x9901 +0xEF9B 0x9902 +0xEF9C 0x9903 +0xEF9D 0x9904 +0xEF9E 0x9905 +0xEF9F 0x9906 +0xEFA0 0x9907 +0xEFA1 0x94E9 +0xEFA2 0x94EB +0xEFA3 0x94EE +0xEFA4 0x94EF +0xEFA5 0x94F3 +0xEFA6 0x94F4 +0xEFA7 0x94F5 +0xEFA8 0x94F7 +0xEFA9 0x94F9 +0xEFAA 0x94FC +0xEFAB 0x94FD +0xEFAC 0x94FF +0xEFAD 0x9503 +0xEFAE 0x9502 +0xEFAF 0x9506 +0xEFB0 0x9507 +0xEFB1 0x9509 +0xEFB2 0x950A +0xEFB3 0x950D +0xEFB4 0x950E +0xEFB5 0x950F +0xEFB6 0x9512 +0xEFB7 0x9513 +0xEFB8 0x9514 +0xEFB9 0x9515 +0xEFBA 0x9516 +0xEFBB 0x9518 +0xEFBC 0x951B +0xEFBD 0x951D +0xEFBE 0x951E +0xEFBF 0x951F +0xEFC0 0x9522 +0xEFC1 0x952A +0xEFC2 0x952B +0xEFC3 0x9529 +0xEFC4 0x952C +0xEFC5 0x9531 +0xEFC6 0x9532 +0xEFC7 0x9534 +0xEFC8 0x9536 +0xEFC9 0x9537 +0xEFCA 0x9538 +0xEFCB 0x953C +0xEFCC 0x953E +0xEFCD 0x953F +0xEFCE 0x9542 +0xEFCF 0x9535 +0xEFD0 0x9544 +0xEFD1 0x9545 +0xEFD2 0x9546 +0xEFD3 0x9549 +0xEFD4 0x954C +0xEFD5 0x954E +0xEFD6 0x954F +0xEFD7 0x9552 +0xEFD8 0x9553 +0xEFD9 0x9554 +0xEFDA 0x9556 +0xEFDB 0x9557 +0xEFDC 0x9558 +0xEFDD 0x9559 +0xEFDE 0x955B +0xEFDF 0x955E +0xEFE0 0x955F +0xEFE1 0x955D +0xEFE2 0x9561 +0xEFE3 0x9562 +0xEFE4 0x9564 +0xEFE5 0x9565 +0xEFE6 0x9566 +0xEFE7 0x9567 +0xEFE8 0x9568 +0xEFE9 0x9569 +0xEFEA 0x956A +0xEFEB 0x956B +0xEFEC 0x956C +0xEFED 0x956F +0xEFEE 0x9571 +0xEFEF 0x9572 +0xEFF0 0x9573 +0xEFF1 0x953A +0xEFF2 0x77E7 +0xEFF3 0x77EC +0xEFF4 0x96C9 +0xEFF5 0x79D5 +0xEFF6 0x79ED +0xEFF7 0x79E3 +0xEFF8 0x79EB +0xEFF9 0x7A06 +0xEFFA 0x5D47 +0xEFFB 0x7A03 +0xEFFC 0x7A02 +0xEFFD 0x7A1E +0xEFFE 0x7A14 +0xF040 0x9908 +0xF041 0x9909 +0xF042 0x990A +0xF043 0x990B +0xF044 0x990C +0xF045 0x990E +0xF046 0x990F +0xF047 0x9911 +0xF048 0x9912 +0xF049 0x9913 +0xF04A 0x9914 +0xF04B 0x9915 +0xF04C 0x9916 +0xF04D 0x9917 +0xF04E 0x9918 +0xF04F 0x9919 +0xF050 0x991A +0xF051 0x991B +0xF052 0x991C +0xF053 0x991D +0xF054 0x991E +0xF055 0x991F +0xF056 0x9920 +0xF057 0x9921 +0xF058 0x9922 +0xF059 0x9923 +0xF05A 0x9924 +0xF05B 0x9925 +0xF05C 0x9926 +0xF05D 0x9927 +0xF05E 0x9928 +0xF05F 0x9929 +0xF060 0x992A +0xF061 0x992B +0xF062 0x992C +0xF063 0x992D +0xF064 0x992F +0xF065 0x9930 +0xF066 0x9931 +0xF067 0x9932 +0xF068 0x9933 +0xF069 0x9934 +0xF06A 0x9935 +0xF06B 0x9936 +0xF06C 0x9937 +0xF06D 0x9938 +0xF06E 0x9939 +0xF06F 0x993A +0xF070 0x993B +0xF071 0x993C +0xF072 0x993D +0xF073 0x993E +0xF074 0x993F +0xF075 0x9940 +0xF076 0x9941 +0xF077 0x9942 +0xF078 0x9943 +0xF079 0x9944 +0xF07A 0x9945 +0xF07B 0x9946 +0xF07C 0x9947 +0xF07D 0x9948 +0xF07E 0x9949 +0xF080 0x994A +0xF081 0x994B +0xF082 0x994C +0xF083 0x994D +0xF084 0x994E +0xF085 0x994F +0xF086 0x9950 +0xF087 0x9951 +0xF088 0x9952 +0xF089 0x9953 +0xF08A 0x9956 +0xF08B 0x9957 +0xF08C 0x9958 +0xF08D 0x9959 +0xF08E 0x995A +0xF08F 0x995B +0xF090 0x995C +0xF091 0x995D +0xF092 0x995E +0xF093 0x995F +0xF094 0x9960 +0xF095 0x9961 +0xF096 0x9962 +0xF097 0x9964 +0xF098 0x9966 +0xF099 0x9973 +0xF09A 0x9978 +0xF09B 0x9979 +0xF09C 0x997B +0xF09D 0x997E +0xF09E 0x9982 +0xF09F 0x9983 +0xF0A0 0x9989 +0xF0A1 0x7A39 +0xF0A2 0x7A37 +0xF0A3 0x7A51 +0xF0A4 0x9ECF +0xF0A5 0x99A5 +0xF0A6 0x7A70 +0xF0A7 0x7688 +0xF0A8 0x768E +0xF0A9 0x7693 +0xF0AA 0x7699 +0xF0AB 0x76A4 +0xF0AC 0x74DE +0xF0AD 0x74E0 +0xF0AE 0x752C +0xF0AF 0x9E20 +0xF0B0 0x9E22 +0xF0B1 0x9E28 +0xF0B2 0x9E29 +0xF0B3 0x9E2A +0xF0B4 0x9E2B +0xF0B5 0x9E2C +0xF0B6 0x9E32 +0xF0B7 0x9E31 +0xF0B8 0x9E36 +0xF0B9 0x9E38 +0xF0BA 0x9E37 +0xF0BB 0x9E39 +0xF0BC 0x9E3A +0xF0BD 0x9E3E +0xF0BE 0x9E41 +0xF0BF 0x9E42 +0xF0C0 0x9E44 +0xF0C1 0x9E46 +0xF0C2 0x9E47 +0xF0C3 0x9E48 +0xF0C4 0x9E49 +0xF0C5 0x9E4B +0xF0C6 0x9E4C +0xF0C7 0x9E4E +0xF0C8 0x9E51 +0xF0C9 0x9E55 +0xF0CA 0x9E57 +0xF0CB 0x9E5A +0xF0CC 0x9E5B +0xF0CD 0x9E5C +0xF0CE 0x9E5E +0xF0CF 0x9E63 +0xF0D0 0x9E66 +0xF0D1 0x9E67 +0xF0D2 0x9E68 +0xF0D3 0x9E69 +0xF0D4 0x9E6A +0xF0D5 0x9E6B +0xF0D6 0x9E6C +0xF0D7 0x9E71 +0xF0D8 0x9E6D +0xF0D9 0x9E73 +0xF0DA 0x7592 +0xF0DB 0x7594 +0xF0DC 0x7596 +0xF0DD 0x75A0 +0xF0DE 0x759D +0xF0DF 0x75AC +0xF0E0 0x75A3 +0xF0E1 0x75B3 +0xF0E2 0x75B4 +0xF0E3 0x75B8 +0xF0E4 0x75C4 +0xF0E5 0x75B1 +0xF0E6 0x75B0 +0xF0E7 0x75C3 +0xF0E8 0x75C2 +0xF0E9 0x75D6 +0xF0EA 0x75CD +0xF0EB 0x75E3 +0xF0EC 0x75E8 +0xF0ED 0x75E6 +0xF0EE 0x75E4 +0xF0EF 0x75EB +0xF0F0 0x75E7 +0xF0F1 0x7603 +0xF0F2 0x75F1 +0xF0F3 0x75FC +0xF0F4 0x75FF +0xF0F5 0x7610 +0xF0F6 0x7600 +0xF0F7 0x7605 +0xF0F8 0x760C +0xF0F9 0x7617 +0xF0FA 0x760A +0xF0FB 0x7625 +0xF0FC 0x7618 +0xF0FD 0x7615 +0xF0FE 0x7619 +0xF140 0x998C +0xF141 0x998E +0xF142 0x999A +0xF143 0x999B +0xF144 0x999C +0xF145 0x999D +0xF146 0x999E +0xF147 0x999F +0xF148 0x99A0 +0xF149 0x99A1 +0xF14A 0x99A2 +0xF14B 0x99A3 +0xF14C 0x99A4 +0xF14D 0x99A6 +0xF14E 0x99A7 +0xF14F 0x99A9 +0xF150 0x99AA +0xF151 0x99AB +0xF152 0x99AC +0xF153 0x99AD +0xF154 0x99AE +0xF155 0x99AF +0xF156 0x99B0 +0xF157 0x99B1 +0xF158 0x99B2 +0xF159 0x99B3 +0xF15A 0x99B4 +0xF15B 0x99B5 +0xF15C 0x99B6 +0xF15D 0x99B7 +0xF15E 0x99B8 +0xF15F 0x99B9 +0xF160 0x99BA +0xF161 0x99BB +0xF162 0x99BC +0xF163 0x99BD +0xF164 0x99BE +0xF165 0x99BF +0xF166 0x99C0 +0xF167 0x99C1 +0xF168 0x99C2 +0xF169 0x99C3 +0xF16A 0x99C4 +0xF16B 0x99C5 +0xF16C 0x99C6 +0xF16D 0x99C7 +0xF16E 0x99C8 +0xF16F 0x99C9 +0xF170 0x99CA +0xF171 0x99CB +0xF172 0x99CC +0xF173 0x99CD +0xF174 0x99CE +0xF175 0x99CF +0xF176 0x99D0 +0xF177 0x99D1 +0xF178 0x99D2 +0xF179 0x99D3 +0xF17A 0x99D4 +0xF17B 0x99D5 +0xF17C 0x99D6 +0xF17D 0x99D7 +0xF17E 0x99D8 +0xF180 0x99D9 +0xF181 0x99DA +0xF182 0x99DB +0xF183 0x99DC +0xF184 0x99DD +0xF185 0x99DE +0xF186 0x99DF +0xF187 0x99E0 +0xF188 0x99E1 +0xF189 0x99E2 +0xF18A 0x99E3 +0xF18B 0x99E4 +0xF18C 0x99E5 +0xF18D 0x99E6 +0xF18E 0x99E7 +0xF18F 0x99E8 +0xF190 0x99E9 +0xF191 0x99EA +0xF192 0x99EB +0xF193 0x99EC +0xF194 0x99ED +0xF195 0x99EE +0xF196 0x99EF +0xF197 0x99F0 +0xF198 0x99F1 +0xF199 0x99F2 +0xF19A 0x99F3 +0xF19B 0x99F4 +0xF19C 0x99F5 +0xF19D 0x99F6 +0xF19E 0x99F7 +0xF19F 0x99F8 +0xF1A0 0x99F9 +0xF1A1 0x761B +0xF1A2 0x763C +0xF1A3 0x7622 +0xF1A4 0x7620 +0xF1A5 0x7640 +0xF1A6 0x762D +0xF1A7 0x7630 +0xF1A8 0x763F +0xF1A9 0x7635 +0xF1AA 0x7643 +0xF1AB 0x763E +0xF1AC 0x7633 +0xF1AD 0x764D +0xF1AE 0x765E +0xF1AF 0x7654 +0xF1B0 0x765C +0xF1B1 0x7656 +0xF1B2 0x766B +0xF1B3 0x766F +0xF1B4 0x7FCA +0xF1B5 0x7AE6 +0xF1B6 0x7A78 +0xF1B7 0x7A79 +0xF1B8 0x7A80 +0xF1B9 0x7A86 +0xF1BA 0x7A88 +0xF1BB 0x7A95 +0xF1BC 0x7AA6 +0xF1BD 0x7AA0 +0xF1BE 0x7AAC +0xF1BF 0x7AA8 +0xF1C0 0x7AAD +0xF1C1 0x7AB3 +0xF1C2 0x8864 +0xF1C3 0x8869 +0xF1C4 0x8872 +0xF1C5 0x887D +0xF1C6 0x887F +0xF1C7 0x8882 +0xF1C8 0x88A2 +0xF1C9 0x88C6 +0xF1CA 0x88B7 +0xF1CB 0x88BC +0xF1CC 0x88C9 +0xF1CD 0x88E2 +0xF1CE 0x88CE +0xF1CF 0x88E3 +0xF1D0 0x88E5 +0xF1D1 0x88F1 +0xF1D2 0x891A +0xF1D3 0x88FC +0xF1D4 0x88E8 +0xF1D5 0x88FE +0xF1D6 0x88F0 +0xF1D7 0x8921 +0xF1D8 0x8919 +0xF1D9 0x8913 +0xF1DA 0x891B +0xF1DB 0x890A +0xF1DC 0x8934 +0xF1DD 0x892B +0xF1DE 0x8936 +0xF1DF 0x8941 +0xF1E0 0x8966 +0xF1E1 0x897B +0xF1E2 0x758B +0xF1E3 0x80E5 +0xF1E4 0x76B2 +0xF1E5 0x76B4 +0xF1E6 0x77DC +0xF1E7 0x8012 +0xF1E8 0x8014 +0xF1E9 0x8016 +0xF1EA 0x801C +0xF1EB 0x8020 +0xF1EC 0x8022 +0xF1ED 0x8025 +0xF1EE 0x8026 +0xF1EF 0x8027 +0xF1F0 0x8029 +0xF1F1 0x8028 +0xF1F2 0x8031 +0xF1F3 0x800B +0xF1F4 0x8035 +0xF1F5 0x8043 +0xF1F6 0x8046 +0xF1F7 0x804D +0xF1F8 0x8052 +0xF1F9 0x8069 +0xF1FA 0x8071 +0xF1FB 0x8983 +0xF1FC 0x9878 +0xF1FD 0x9880 +0xF1FE 0x9883 +0xF240 0x99FA +0xF241 0x99FB +0xF242 0x99FC +0xF243 0x99FD +0xF244 0x99FE +0xF245 0x99FF +0xF246 0x9A00 +0xF247 0x9A01 +0xF248 0x9A02 +0xF249 0x9A03 +0xF24A 0x9A04 +0xF24B 0x9A05 +0xF24C 0x9A06 +0xF24D 0x9A07 +0xF24E 0x9A08 +0xF24F 0x9A09 +0xF250 0x9A0A +0xF251 0x9A0B +0xF252 0x9A0C +0xF253 0x9A0D +0xF254 0x9A0E +0xF255 0x9A0F +0xF256 0x9A10 +0xF257 0x9A11 +0xF258 0x9A12 +0xF259 0x9A13 +0xF25A 0x9A14 +0xF25B 0x9A15 +0xF25C 0x9A16 +0xF25D 0x9A17 +0xF25E 0x9A18 +0xF25F 0x9A19 +0xF260 0x9A1A +0xF261 0x9A1B +0xF262 0x9A1C +0xF263 0x9A1D +0xF264 0x9A1E +0xF265 0x9A1F +0xF266 0x9A20 +0xF267 0x9A21 +0xF268 0x9A22 +0xF269 0x9A23 +0xF26A 0x9A24 +0xF26B 0x9A25 +0xF26C 0x9A26 +0xF26D 0x9A27 +0xF26E 0x9A28 +0xF26F 0x9A29 +0xF270 0x9A2A +0xF271 0x9A2B +0xF272 0x9A2C +0xF273 0x9A2D +0xF274 0x9A2E +0xF275 0x9A2F +0xF276 0x9A30 +0xF277 0x9A31 +0xF278 0x9A32 +0xF279 0x9A33 +0xF27A 0x9A34 +0xF27B 0x9A35 +0xF27C 0x9A36 +0xF27D 0x9A37 +0xF27E 0x9A38 +0xF280 0x9A39 +0xF281 0x9A3A +0xF282 0x9A3B +0xF283 0x9A3C +0xF284 0x9A3D +0xF285 0x9A3E +0xF286 0x9A3F +0xF287 0x9A40 +0xF288 0x9A41 +0xF289 0x9A42 +0xF28A 0x9A43 +0xF28B 0x9A44 +0xF28C 0x9A45 +0xF28D 0x9A46 +0xF28E 0x9A47 +0xF28F 0x9A48 +0xF290 0x9A49 +0xF291 0x9A4A +0xF292 0x9A4B +0xF293 0x9A4C +0xF294 0x9A4D +0xF295 0x9A4E +0xF296 0x9A4F +0xF297 0x9A50 +0xF298 0x9A51 +0xF299 0x9A52 +0xF29A 0x9A53 +0xF29B 0x9A54 +0xF29C 0x9A55 +0xF29D 0x9A56 +0xF29E 0x9A57 +0xF29F 0x9A58 +0xF2A0 0x9A59 +0xF2A1 0x9889 +0xF2A2 0x988C +0xF2A3 0x988D +0xF2A4 0x988F +0xF2A5 0x9894 +0xF2A6 0x989A +0xF2A7 0x989B +0xF2A8 0x989E +0xF2A9 0x989F +0xF2AA 0x98A1 +0xF2AB 0x98A2 +0xF2AC 0x98A5 +0xF2AD 0x98A6 +0xF2AE 0x864D +0xF2AF 0x8654 +0xF2B0 0x866C +0xF2B1 0x866E +0xF2B2 0x867F +0xF2B3 0x867A +0xF2B4 0x867C +0xF2B5 0x867B +0xF2B6 0x86A8 +0xF2B7 0x868D +0xF2B8 0x868B +0xF2B9 0x86AC +0xF2BA 0x869D +0xF2BB 0x86A7 +0xF2BC 0x86A3 +0xF2BD 0x86AA +0xF2BE 0x8693 +0xF2BF 0x86A9 +0xF2C0 0x86B6 +0xF2C1 0x86C4 +0xF2C2 0x86B5 +0xF2C3 0x86CE +0xF2C4 0x86B0 +0xF2C5 0x86BA +0xF2C6 0x86B1 +0xF2C7 0x86AF +0xF2C8 0x86C9 +0xF2C9 0x86CF +0xF2CA 0x86B4 +0xF2CB 0x86E9 +0xF2CC 0x86F1 +0xF2CD 0x86F2 +0xF2CE 0x86ED +0xF2CF 0x86F3 +0xF2D0 0x86D0 +0xF2D1 0x8713 +0xF2D2 0x86DE +0xF2D3 0x86F4 +0xF2D4 0x86DF +0xF2D5 0x86D8 +0xF2D6 0x86D1 +0xF2D7 0x8703 +0xF2D8 0x8707 +0xF2D9 0x86F8 +0xF2DA 0x8708 +0xF2DB 0x870A +0xF2DC 0x870D +0xF2DD 0x8709 +0xF2DE 0x8723 +0xF2DF 0x873B +0xF2E0 0x871E +0xF2E1 0x8725 +0xF2E2 0x872E +0xF2E3 0x871A +0xF2E4 0x873E +0xF2E5 0x8748 +0xF2E6 0x8734 +0xF2E7 0x8731 +0xF2E8 0x8729 +0xF2E9 0x8737 +0xF2EA 0x873F +0xF2EB 0x8782 +0xF2EC 0x8722 +0xF2ED 0x877D +0xF2EE 0x877E +0xF2EF 0x877B +0xF2F0 0x8760 +0xF2F1 0x8770 +0xF2F2 0x874C +0xF2F3 0x876E +0xF2F4 0x878B +0xF2F5 0x8753 +0xF2F6 0x8763 +0xF2F7 0x877C +0xF2F8 0x8764 +0xF2F9 0x8759 +0xF2FA 0x8765 +0xF2FB 0x8793 +0xF2FC 0x87AF +0xF2FD 0x87A8 +0xF2FE 0x87D2 +0xF340 0x9A5A +0xF341 0x9A5B +0xF342 0x9A5C +0xF343 0x9A5D +0xF344 0x9A5E +0xF345 0x9A5F +0xF346 0x9A60 +0xF347 0x9A61 +0xF348 0x9A62 +0xF349 0x9A63 +0xF34A 0x9A64 +0xF34B 0x9A65 +0xF34C 0x9A66 +0xF34D 0x9A67 +0xF34E 0x9A68 +0xF34F 0x9A69 +0xF350 0x9A6A +0xF351 0x9A6B +0xF352 0x9A72 +0xF353 0x9A83 +0xF354 0x9A89 +0xF355 0x9A8D +0xF356 0x9A8E +0xF357 0x9A94 +0xF358 0x9A95 +0xF359 0x9A99 +0xF35A 0x9AA6 +0xF35B 0x9AA9 +0xF35C 0x9AAA +0xF35D 0x9AAB +0xF35E 0x9AAC +0xF35F 0x9AAD +0xF360 0x9AAE +0xF361 0x9AAF +0xF362 0x9AB2 +0xF363 0x9AB3 +0xF364 0x9AB4 +0xF365 0x9AB5 +0xF366 0x9AB9 +0xF367 0x9ABB +0xF368 0x9ABD +0xF369 0x9ABE +0xF36A 0x9ABF +0xF36B 0x9AC3 +0xF36C 0x9AC4 +0xF36D 0x9AC6 +0xF36E 0x9AC7 +0xF36F 0x9AC8 +0xF370 0x9AC9 +0xF371 0x9ACA +0xF372 0x9ACD +0xF373 0x9ACE +0xF374 0x9ACF +0xF375 0x9AD0 +0xF376 0x9AD2 +0xF377 0x9AD4 +0xF378 0x9AD5 +0xF379 0x9AD6 +0xF37A 0x9AD7 +0xF37B 0x9AD9 +0xF37C 0x9ADA +0xF37D 0x9ADB +0xF37E 0x9ADC +0xF380 0x9ADD +0xF381 0x9ADE +0xF382 0x9AE0 +0xF383 0x9AE2 +0xF384 0x9AE3 +0xF385 0x9AE4 +0xF386 0x9AE5 +0xF387 0x9AE7 +0xF388 0x9AE8 +0xF389 0x9AE9 +0xF38A 0x9AEA +0xF38B 0x9AEC +0xF38C 0x9AEE +0xF38D 0x9AF0 +0xF38E 0x9AF1 +0xF38F 0x9AF2 +0xF390 0x9AF3 +0xF391 0x9AF4 +0xF392 0x9AF5 +0xF393 0x9AF6 +0xF394 0x9AF7 +0xF395 0x9AF8 +0xF396 0x9AFA +0xF397 0x9AFC +0xF398 0x9AFD +0xF399 0x9AFE +0xF39A 0x9AFF +0xF39B 0x9B00 +0xF39C 0x9B01 +0xF39D 0x9B02 +0xF39E 0x9B04 +0xF39F 0x9B05 +0xF3A0 0x9B06 +0xF3A1 0x87C6 +0xF3A2 0x8788 +0xF3A3 0x8785 +0xF3A4 0x87AD +0xF3A5 0x8797 +0xF3A6 0x8783 +0xF3A7 0x87AB +0xF3A8 0x87E5 +0xF3A9 0x87AC +0xF3AA 0x87B5 +0xF3AB 0x87B3 +0xF3AC 0x87CB +0xF3AD 0x87D3 +0xF3AE 0x87BD +0xF3AF 0x87D1 +0xF3B0 0x87C0 +0xF3B1 0x87CA +0xF3B2 0x87DB +0xF3B3 0x87EA +0xF3B4 0x87E0 +0xF3B5 0x87EE +0xF3B6 0x8816 +0xF3B7 0x8813 +0xF3B8 0x87FE +0xF3B9 0x880A +0xF3BA 0x881B +0xF3BB 0x8821 +0xF3BC 0x8839 +0xF3BD 0x883C +0xF3BE 0x7F36 +0xF3BF 0x7F42 +0xF3C0 0x7F44 +0xF3C1 0x7F45 +0xF3C2 0x8210 +0xF3C3 0x7AFA +0xF3C4 0x7AFD +0xF3C5 0x7B08 +0xF3C6 0x7B03 +0xF3C7 0x7B04 +0xF3C8 0x7B15 +0xF3C9 0x7B0A +0xF3CA 0x7B2B +0xF3CB 0x7B0F +0xF3CC 0x7B47 +0xF3CD 0x7B38 +0xF3CE 0x7B2A +0xF3CF 0x7B19 +0xF3D0 0x7B2E +0xF3D1 0x7B31 +0xF3D2 0x7B20 +0xF3D3 0x7B25 +0xF3D4 0x7B24 +0xF3D5 0x7B33 +0xF3D6 0x7B3E +0xF3D7 0x7B1E +0xF3D8 0x7B58 +0xF3D9 0x7B5A +0xF3DA 0x7B45 +0xF3DB 0x7B75 +0xF3DC 0x7B4C +0xF3DD 0x7B5D +0xF3DE 0x7B60 +0xF3DF 0x7B6E +0xF3E0 0x7B7B +0xF3E1 0x7B62 +0xF3E2 0x7B72 +0xF3E3 0x7B71 +0xF3E4 0x7B90 +0xF3E5 0x7BA6 +0xF3E6 0x7BA7 +0xF3E7 0x7BB8 +0xF3E8 0x7BAC +0xF3E9 0x7B9D +0xF3EA 0x7BA8 +0xF3EB 0x7B85 +0xF3EC 0x7BAA +0xF3ED 0x7B9C +0xF3EE 0x7BA2 +0xF3EF 0x7BAB +0xF3F0 0x7BB4 +0xF3F1 0x7BD1 +0xF3F2 0x7BC1 +0xF3F3 0x7BCC +0xF3F4 0x7BDD +0xF3F5 0x7BDA +0xF3F6 0x7BE5 +0xF3F7 0x7BE6 +0xF3F8 0x7BEA +0xF3F9 0x7C0C +0xF3FA 0x7BFE +0xF3FB 0x7BFC +0xF3FC 0x7C0F +0xF3FD 0x7C16 +0xF3FE 0x7C0B +0xF440 0x9B07 +0xF441 0x9B09 +0xF442 0x9B0A +0xF443 0x9B0B +0xF444 0x9B0C +0xF445 0x9B0D +0xF446 0x9B0E +0xF447 0x9B10 +0xF448 0x9B11 +0xF449 0x9B12 +0xF44A 0x9B14 +0xF44B 0x9B15 +0xF44C 0x9B16 +0xF44D 0x9B17 +0xF44E 0x9B18 +0xF44F 0x9B19 +0xF450 0x9B1A +0xF451 0x9B1B +0xF452 0x9B1C +0xF453 0x9B1D +0xF454 0x9B1E +0xF455 0x9B20 +0xF456 0x9B21 +0xF457 0x9B22 +0xF458 0x9B24 +0xF459 0x9B25 +0xF45A 0x9B26 +0xF45B 0x9B27 +0xF45C 0x9B28 +0xF45D 0x9B29 +0xF45E 0x9B2A +0xF45F 0x9B2B +0xF460 0x9B2C +0xF461 0x9B2D +0xF462 0x9B2E +0xF463 0x9B30 +0xF464 0x9B31 +0xF465 0x9B33 +0xF466 0x9B34 +0xF467 0x9B35 +0xF468 0x9B36 +0xF469 0x9B37 +0xF46A 0x9B38 +0xF46B 0x9B39 +0xF46C 0x9B3A +0xF46D 0x9B3D +0xF46E 0x9B3E +0xF46F 0x9B3F +0xF470 0x9B40 +0xF471 0x9B46 +0xF472 0x9B4A +0xF473 0x9B4B +0xF474 0x9B4C +0xF475 0x9B4E +0xF476 0x9B50 +0xF477 0x9B52 +0xF478 0x9B53 +0xF479 0x9B55 +0xF47A 0x9B56 +0xF47B 0x9B57 +0xF47C 0x9B58 +0xF47D 0x9B59 +0xF47E 0x9B5A +0xF480 0x9B5B +0xF481 0x9B5C +0xF482 0x9B5D +0xF483 0x9B5E +0xF484 0x9B5F +0xF485 0x9B60 +0xF486 0x9B61 +0xF487 0x9B62 +0xF488 0x9B63 +0xF489 0x9B64 +0xF48A 0x9B65 +0xF48B 0x9B66 +0xF48C 0x9B67 +0xF48D 0x9B68 +0xF48E 0x9B69 +0xF48F 0x9B6A +0xF490 0x9B6B +0xF491 0x9B6C +0xF492 0x9B6D +0xF493 0x9B6E +0xF494 0x9B6F +0xF495 0x9B70 +0xF496 0x9B71 +0xF497 0x9B72 +0xF498 0x9B73 +0xF499 0x9B74 +0xF49A 0x9B75 +0xF49B 0x9B76 +0xF49C 0x9B77 +0xF49D 0x9B78 +0xF49E 0x9B79 +0xF49F 0x9B7A +0xF4A0 0x9B7B +0xF4A1 0x7C1F +0xF4A2 0x7C2A +0xF4A3 0x7C26 +0xF4A4 0x7C38 +0xF4A5 0x7C41 +0xF4A6 0x7C40 +0xF4A7 0x81FE +0xF4A8 0x8201 +0xF4A9 0x8202 +0xF4AA 0x8204 +0xF4AB 0x81EC +0xF4AC 0x8844 +0xF4AD 0x8221 +0xF4AE 0x8222 +0xF4AF 0x8223 +0xF4B0 0x822D +0xF4B1 0x822F +0xF4B2 0x8228 +0xF4B3 0x822B +0xF4B4 0x8238 +0xF4B5 0x823B +0xF4B6 0x8233 +0xF4B7 0x8234 +0xF4B8 0x823E +0xF4B9 0x8244 +0xF4BA 0x8249 +0xF4BB 0x824B +0xF4BC 0x824F +0xF4BD 0x825A +0xF4BE 0x825F +0xF4BF 0x8268 +0xF4C0 0x887E +0xF4C1 0x8885 +0xF4C2 0x8888 +0xF4C3 0x88D8 +0xF4C4 0x88DF +0xF4C5 0x895E +0xF4C6 0x7F9D +0xF4C7 0x7F9F +0xF4C8 0x7FA7 +0xF4C9 0x7FAF +0xF4CA 0x7FB0 +0xF4CB 0x7FB2 +0xF4CC 0x7C7C +0xF4CD 0x6549 +0xF4CE 0x7C91 +0xF4CF 0x7C9D +0xF4D0 0x7C9C +0xF4D1 0x7C9E +0xF4D2 0x7CA2 +0xF4D3 0x7CB2 +0xF4D4 0x7CBC +0xF4D5 0x7CBD +0xF4D6 0x7CC1 +0xF4D7 0x7CC7 +0xF4D8 0x7CCC +0xF4D9 0x7CCD +0xF4DA 0x7CC8 +0xF4DB 0x7CC5 +0xF4DC 0x7CD7 +0xF4DD 0x7CE8 +0xF4DE 0x826E +0xF4DF 0x66A8 +0xF4E0 0x7FBF +0xF4E1 0x7FCE +0xF4E2 0x7FD5 +0xF4E3 0x7FE5 +0xF4E4 0x7FE1 +0xF4E5 0x7FE6 +0xF4E6 0x7FE9 +0xF4E7 0x7FEE +0xF4E8 0x7FF3 +0xF4E9 0x7CF8 +0xF4EA 0x7D77 +0xF4EB 0x7DA6 +0xF4EC 0x7DAE +0xF4ED 0x7E47 +0xF4EE 0x7E9B +0xF4EF 0x9EB8 +0xF4F0 0x9EB4 +0xF4F1 0x8D73 +0xF4F2 0x8D84 +0xF4F3 0x8D94 +0xF4F4 0x8D91 +0xF4F5 0x8DB1 +0xF4F6 0x8D67 +0xF4F7 0x8D6D +0xF4F8 0x8C47 +0xF4F9 0x8C49 +0xF4FA 0x914A +0xF4FB 0x9150 +0xF4FC 0x914E +0xF4FD 0x914F +0xF4FE 0x9164 +0xF540 0x9B7C +0xF541 0x9B7D +0xF542 0x9B7E +0xF543 0x9B7F +0xF544 0x9B80 +0xF545 0x9B81 +0xF546 0x9B82 +0xF547 0x9B83 +0xF548 0x9B84 +0xF549 0x9B85 +0xF54A 0x9B86 +0xF54B 0x9B87 +0xF54C 0x9B88 +0xF54D 0x9B89 +0xF54E 0x9B8A +0xF54F 0x9B8B +0xF550 0x9B8C +0xF551 0x9B8D +0xF552 0x9B8E +0xF553 0x9B8F +0xF554 0x9B90 +0xF555 0x9B91 +0xF556 0x9B92 +0xF557 0x9B93 +0xF558 0x9B94 +0xF559 0x9B95 +0xF55A 0x9B96 +0xF55B 0x9B97 +0xF55C 0x9B98 +0xF55D 0x9B99 +0xF55E 0x9B9A +0xF55F 0x9B9B +0xF560 0x9B9C +0xF561 0x9B9D +0xF562 0x9B9E +0xF563 0x9B9F +0xF564 0x9BA0 +0xF565 0x9BA1 +0xF566 0x9BA2 +0xF567 0x9BA3 +0xF568 0x9BA4 +0xF569 0x9BA5 +0xF56A 0x9BA6 +0xF56B 0x9BA7 +0xF56C 0x9BA8 +0xF56D 0x9BA9 +0xF56E 0x9BAA +0xF56F 0x9BAB +0xF570 0x9BAC +0xF571 0x9BAD +0xF572 0x9BAE +0xF573 0x9BAF +0xF574 0x9BB0 +0xF575 0x9BB1 +0xF576 0x9BB2 +0xF577 0x9BB3 +0xF578 0x9BB4 +0xF579 0x9BB5 +0xF57A 0x9BB6 +0xF57B 0x9BB7 +0xF57C 0x9BB8 +0xF57D 0x9BB9 +0xF57E 0x9BBA +0xF580 0x9BBB +0xF581 0x9BBC +0xF582 0x9BBD +0xF583 0x9BBE +0xF584 0x9BBF +0xF585 0x9BC0 +0xF586 0x9BC1 +0xF587 0x9BC2 +0xF588 0x9BC3 +0xF589 0x9BC4 +0xF58A 0x9BC5 +0xF58B 0x9BC6 +0xF58C 0x9BC7 +0xF58D 0x9BC8 +0xF58E 0x9BC9 +0xF58F 0x9BCA +0xF590 0x9BCB +0xF591 0x9BCC +0xF592 0x9BCD +0xF593 0x9BCE +0xF594 0x9BCF +0xF595 0x9BD0 +0xF596 0x9BD1 +0xF597 0x9BD2 +0xF598 0x9BD3 +0xF599 0x9BD4 +0xF59A 0x9BD5 +0xF59B 0x9BD6 +0xF59C 0x9BD7 +0xF59D 0x9BD8 +0xF59E 0x9BD9 +0xF59F 0x9BDA +0xF5A0 0x9BDB +0xF5A1 0x9162 +0xF5A2 0x9161 +0xF5A3 0x9170 +0xF5A4 0x9169 +0xF5A5 0x916F +0xF5A6 0x917D +0xF5A7 0x917E +0xF5A8 0x9172 +0xF5A9 0x9174 +0xF5AA 0x9179 +0xF5AB 0x918C +0xF5AC 0x9185 +0xF5AD 0x9190 +0xF5AE 0x918D +0xF5AF 0x9191 +0xF5B0 0x91A2 +0xF5B1 0x91A3 +0xF5B2 0x91AA +0xF5B3 0x91AD +0xF5B4 0x91AE +0xF5B5 0x91AF +0xF5B6 0x91B5 +0xF5B7 0x91B4 +0xF5B8 0x91BA +0xF5B9 0x8C55 +0xF5BA 0x9E7E +0xF5BB 0x8DB8 +0xF5BC 0x8DEB +0xF5BD 0x8E05 +0xF5BE 0x8E59 +0xF5BF 0x8E69 +0xF5C0 0x8DB5 +0xF5C1 0x8DBF +0xF5C2 0x8DBC +0xF5C3 0x8DBA +0xF5C4 0x8DC4 +0xF5C5 0x8DD6 +0xF5C6 0x8DD7 +0xF5C7 0x8DDA +0xF5C8 0x8DDE +0xF5C9 0x8DCE +0xF5CA 0x8DCF +0xF5CB 0x8DDB +0xF5CC 0x8DC6 +0xF5CD 0x8DEC +0xF5CE 0x8DF7 +0xF5CF 0x8DF8 +0xF5D0 0x8DE3 +0xF5D1 0x8DF9 +0xF5D2 0x8DFB +0xF5D3 0x8DE4 +0xF5D4 0x8E09 +0xF5D5 0x8DFD +0xF5D6 0x8E14 +0xF5D7 0x8E1D +0xF5D8 0x8E1F +0xF5D9 0x8E2C +0xF5DA 0x8E2E +0xF5DB 0x8E23 +0xF5DC 0x8E2F +0xF5DD 0x8E3A +0xF5DE 0x8E40 +0xF5DF 0x8E39 +0xF5E0 0x8E35 +0xF5E1 0x8E3D +0xF5E2 0x8E31 +0xF5E3 0x8E49 +0xF5E4 0x8E41 +0xF5E5 0x8E42 +0xF5E6 0x8E51 +0xF5E7 0x8E52 +0xF5E8 0x8E4A +0xF5E9 0x8E70 +0xF5EA 0x8E76 +0xF5EB 0x8E7C +0xF5EC 0x8E6F +0xF5ED 0x8E74 +0xF5EE 0x8E85 +0xF5EF 0x8E8F +0xF5F0 0x8E94 +0xF5F1 0x8E90 +0xF5F2 0x8E9C +0xF5F3 0x8E9E +0xF5F4 0x8C78 +0xF5F5 0x8C82 +0xF5F6 0x8C8A +0xF5F7 0x8C85 +0xF5F8 0x8C98 +0xF5F9 0x8C94 +0xF5FA 0x659B +0xF5FB 0x89D6 +0xF5FC 0x89DE +0xF5FD 0x89DA +0xF5FE 0x89DC +0xF640 0x9BDC +0xF641 0x9BDD +0xF642 0x9BDE +0xF643 0x9BDF +0xF644 0x9BE0 +0xF645 0x9BE1 +0xF646 0x9BE2 +0xF647 0x9BE3 +0xF648 0x9BE4 +0xF649 0x9BE5 +0xF64A 0x9BE6 +0xF64B 0x9BE7 +0xF64C 0x9BE8 +0xF64D 0x9BE9 +0xF64E 0x9BEA +0xF64F 0x9BEB +0xF650 0x9BEC +0xF651 0x9BED +0xF652 0x9BEE +0xF653 0x9BEF +0xF654 0x9BF0 +0xF655 0x9BF1 +0xF656 0x9BF2 +0xF657 0x9BF3 +0xF658 0x9BF4 +0xF659 0x9BF5 +0xF65A 0x9BF6 +0xF65B 0x9BF7 +0xF65C 0x9BF8 +0xF65D 0x9BF9 +0xF65E 0x9BFA +0xF65F 0x9BFB +0xF660 0x9BFC +0xF661 0x9BFD +0xF662 0x9BFE +0xF663 0x9BFF +0xF664 0x9C00 +0xF665 0x9C01 +0xF666 0x9C02 +0xF667 0x9C03 +0xF668 0x9C04 +0xF669 0x9C05 +0xF66A 0x9C06 +0xF66B 0x9C07 +0xF66C 0x9C08 +0xF66D 0x9C09 +0xF66E 0x9C0A +0xF66F 0x9C0B +0xF670 0x9C0C +0xF671 0x9C0D +0xF672 0x9C0E +0xF673 0x9C0F +0xF674 0x9C10 +0xF675 0x9C11 +0xF676 0x9C12 +0xF677 0x9C13 +0xF678 0x9C14 +0xF679 0x9C15 +0xF67A 0x9C16 +0xF67B 0x9C17 +0xF67C 0x9C18 +0xF67D 0x9C19 +0xF67E 0x9C1A +0xF680 0x9C1B +0xF681 0x9C1C +0xF682 0x9C1D +0xF683 0x9C1E +0xF684 0x9C1F +0xF685 0x9C20 +0xF686 0x9C21 +0xF687 0x9C22 +0xF688 0x9C23 +0xF689 0x9C24 +0xF68A 0x9C25 +0xF68B 0x9C26 +0xF68C 0x9C27 +0xF68D 0x9C28 +0xF68E 0x9C29 +0xF68F 0x9C2A +0xF690 0x9C2B +0xF691 0x9C2C +0xF692 0x9C2D +0xF693 0x9C2E +0xF694 0x9C2F +0xF695 0x9C30 +0xF696 0x9C31 +0xF697 0x9C32 +0xF698 0x9C33 +0xF699 0x9C34 +0xF69A 0x9C35 +0xF69B 0x9C36 +0xF69C 0x9C37 +0xF69D 0x9C38 +0xF69E 0x9C39 +0xF69F 0x9C3A +0xF6A0 0x9C3B +0xF6A1 0x89E5 +0xF6A2 0x89EB +0xF6A3 0x89EF +0xF6A4 0x8A3E +0xF6A5 0x8B26 +0xF6A6 0x9753 +0xF6A7 0x96E9 +0xF6A8 0x96F3 +0xF6A9 0x96EF +0xF6AA 0x9706 +0xF6AB 0x9701 +0xF6AC 0x9708 +0xF6AD 0x970F +0xF6AE 0x970E +0xF6AF 0x972A +0xF6B0 0x972D +0xF6B1 0x9730 +0xF6B2 0x973E +0xF6B3 0x9F80 +0xF6B4 0x9F83 +0xF6B5 0x9F85 +0xF6B6 0x9F86 +0xF6B7 0x9F87 +0xF6B8 0x9F88 +0xF6B9 0x9F89 +0xF6BA 0x9F8A +0xF6BB 0x9F8C +0xF6BC 0x9EFE +0xF6BD 0x9F0B +0xF6BE 0x9F0D +0xF6BF 0x96B9 +0xF6C0 0x96BC +0xF6C1 0x96BD +0xF6C2 0x96CE +0xF6C3 0x96D2 +0xF6C4 0x77BF +0xF6C5 0x96E0 +0xF6C6 0x928E +0xF6C7 0x92AE +0xF6C8 0x92C8 +0xF6C9 0x933E +0xF6CA 0x936A +0xF6CB 0x93CA +0xF6CC 0x938F +0xF6CD 0x943E +0xF6CE 0x946B +0xF6CF 0x9C7F +0xF6D0 0x9C82 +0xF6D1 0x9C85 +0xF6D2 0x9C86 +0xF6D3 0x9C87 +0xF6D4 0x9C88 +0xF6D5 0x7A23 +0xF6D6 0x9C8B +0xF6D7 0x9C8E +0xF6D8 0x9C90 +0xF6D9 0x9C91 +0xF6DA 0x9C92 +0xF6DB 0x9C94 +0xF6DC 0x9C95 +0xF6DD 0x9C9A +0xF6DE 0x9C9B +0xF6DF 0x9C9E +0xF6E0 0x9C9F +0xF6E1 0x9CA0 +0xF6E2 0x9CA1 +0xF6E3 0x9CA2 +0xF6E4 0x9CA3 +0xF6E5 0x9CA5 +0xF6E6 0x9CA6 +0xF6E7 0x9CA7 +0xF6E8 0x9CA8 +0xF6E9 0x9CA9 +0xF6EA 0x9CAB +0xF6EB 0x9CAD +0xF6EC 0x9CAE +0xF6ED 0x9CB0 +0xF6EE 0x9CB1 +0xF6EF 0x9CB2 +0xF6F0 0x9CB3 +0xF6F1 0x9CB4 +0xF6F2 0x9CB5 +0xF6F3 0x9CB6 +0xF6F4 0x9CB7 +0xF6F5 0x9CBA +0xF6F6 0x9CBB +0xF6F7 0x9CBC +0xF6F8 0x9CBD +0xF6F9 0x9CC4 +0xF6FA 0x9CC5 +0xF6FB 0x9CC6 +0xF6FC 0x9CC7 +0xF6FD 0x9CCA +0xF6FE 0x9CCB +0xF740 0x9C3C +0xF741 0x9C3D +0xF742 0x9C3E +0xF743 0x9C3F +0xF744 0x9C40 +0xF745 0x9C41 +0xF746 0x9C42 +0xF747 0x9C43 +0xF748 0x9C44 +0xF749 0x9C45 +0xF74A 0x9C46 +0xF74B 0x9C47 +0xF74C 0x9C48 +0xF74D 0x9C49 +0xF74E 0x9C4A +0xF74F 0x9C4B +0xF750 0x9C4C +0xF751 0x9C4D +0xF752 0x9C4E +0xF753 0x9C4F +0xF754 0x9C50 +0xF755 0x9C51 +0xF756 0x9C52 +0xF757 0x9C53 +0xF758 0x9C54 +0xF759 0x9C55 +0xF75A 0x9C56 +0xF75B 0x9C57 +0xF75C 0x9C58 +0xF75D 0x9C59 +0xF75E 0x9C5A +0xF75F 0x9C5B +0xF760 0x9C5C +0xF761 0x9C5D +0xF762 0x9C5E +0xF763 0x9C5F +0xF764 0x9C60 +0xF765 0x9C61 +0xF766 0x9C62 +0xF767 0x9C63 +0xF768 0x9C64 +0xF769 0x9C65 +0xF76A 0x9C66 +0xF76B 0x9C67 +0xF76C 0x9C68 +0xF76D 0x9C69 +0xF76E 0x9C6A +0xF76F 0x9C6B +0xF770 0x9C6C +0xF771 0x9C6D +0xF772 0x9C6E +0xF773 0x9C6F +0xF774 0x9C70 +0xF775 0x9C71 +0xF776 0x9C72 +0xF777 0x9C73 +0xF778 0x9C74 +0xF779 0x9C75 +0xF77A 0x9C76 +0xF77B 0x9C77 +0xF77C 0x9C78 +0xF77D 0x9C79 +0xF77E 0x9C7A +0xF780 0x9C7B +0xF781 0x9C7D +0xF782 0x9C7E +0xF783 0x9C80 +0xF784 0x9C83 +0xF785 0x9C84 +0xF786 0x9C89 +0xF787 0x9C8A +0xF788 0x9C8C +0xF789 0x9C8F +0xF78A 0x9C93 +0xF78B 0x9C96 +0xF78C 0x9C97 +0xF78D 0x9C98 +0xF78E 0x9C99 +0xF78F 0x9C9D +0xF790 0x9CAA +0xF791 0x9CAC +0xF792 0x9CAF +0xF793 0x9CB9 +0xF794 0x9CBE +0xF795 0x9CBF +0xF796 0x9CC0 +0xF797 0x9CC1 +0xF798 0x9CC2 +0xF799 0x9CC8 +0xF79A 0x9CC9 +0xF79B 0x9CD1 +0xF79C 0x9CD2 +0xF79D 0x9CDA +0xF79E 0x9CDB +0xF79F 0x9CE0 +0xF7A0 0x9CE1 +0xF7A1 0x9CCC +0xF7A2 0x9CCD +0xF7A3 0x9CCE +0xF7A4 0x9CCF +0xF7A5 0x9CD0 +0xF7A6 0x9CD3 +0xF7A7 0x9CD4 +0xF7A8 0x9CD5 +0xF7A9 0x9CD7 +0xF7AA 0x9CD8 +0xF7AB 0x9CD9 +0xF7AC 0x9CDC +0xF7AD 0x9CDD +0xF7AE 0x9CDF +0xF7AF 0x9CE2 +0xF7B0 0x977C +0xF7B1 0x9785 +0xF7B2 0x9791 +0xF7B3 0x9792 +0xF7B4 0x9794 +0xF7B5 0x97AF +0xF7B6 0x97AB +0xF7B7 0x97A3 +0xF7B8 0x97B2 +0xF7B9 0x97B4 +0xF7BA 0x9AB1 +0xF7BB 0x9AB0 +0xF7BC 0x9AB7 +0xF7BD 0x9E58 +0xF7BE 0x9AB6 +0xF7BF 0x9ABA +0xF7C0 0x9ABC +0xF7C1 0x9AC1 +0xF7C2 0x9AC0 +0xF7C3 0x9AC5 +0xF7C4 0x9AC2 +0xF7C5 0x9ACB +0xF7C6 0x9ACC +0xF7C7 0x9AD1 +0xF7C8 0x9B45 +0xF7C9 0x9B43 +0xF7CA 0x9B47 +0xF7CB 0x9B49 +0xF7CC 0x9B48 +0xF7CD 0x9B4D +0xF7CE 0x9B51 +0xF7CF 0x98E8 +0xF7D0 0x990D +0xF7D1 0x992E +0xF7D2 0x9955 +0xF7D3 0x9954 +0xF7D4 0x9ADF +0xF7D5 0x9AE1 +0xF7D6 0x9AE6 +0xF7D7 0x9AEF +0xF7D8 0x9AEB +0xF7D9 0x9AFB +0xF7DA 0x9AED +0xF7DB 0x9AF9 +0xF7DC 0x9B08 +0xF7DD 0x9B0F +0xF7DE 0x9B13 +0xF7DF 0x9B1F +0xF7E0 0x9B23 +0xF7E1 0x9EBD +0xF7E2 0x9EBE +0xF7E3 0x7E3B +0xF7E4 0x9E82 +0xF7E5 0x9E87 +0xF7E6 0x9E88 +0xF7E7 0x9E8B +0xF7E8 0x9E92 +0xF7E9 0x93D6 +0xF7EA 0x9E9D +0xF7EB 0x9E9F +0xF7EC 0x9EDB +0xF7ED 0x9EDC +0xF7EE 0x9EDD +0xF7EF 0x9EE0 +0xF7F0 0x9EDF +0xF7F1 0x9EE2 +0xF7F2 0x9EE9 +0xF7F3 0x9EE7 +0xF7F4 0x9EE5 +0xF7F5 0x9EEA +0xF7F6 0x9EEF +0xF7F7 0x9F22 +0xF7F8 0x9F2C +0xF7F9 0x9F2F +0xF7FA 0x9F39 +0xF7FB 0x9F37 +0xF7FC 0x9F3D +0xF7FD 0x9F3E +0xF7FE 0x9F44 +0xF840 0x9CE3 +0xF841 0x9CE4 +0xF842 0x9CE5 +0xF843 0x9CE6 +0xF844 0x9CE7 +0xF845 0x9CE8 +0xF846 0x9CE9 +0xF847 0x9CEA +0xF848 0x9CEB +0xF849 0x9CEC +0xF84A 0x9CED +0xF84B 0x9CEE +0xF84C 0x9CEF +0xF84D 0x9CF0 +0xF84E 0x9CF1 +0xF84F 0x9CF2 +0xF850 0x9CF3 +0xF851 0x9CF4 +0xF852 0x9CF5 +0xF853 0x9CF6 +0xF854 0x9CF7 +0xF855 0x9CF8 +0xF856 0x9CF9 +0xF857 0x9CFA +0xF858 0x9CFB +0xF859 0x9CFC +0xF85A 0x9CFD +0xF85B 0x9CFE +0xF85C 0x9CFF +0xF85D 0x9D00 +0xF85E 0x9D01 +0xF85F 0x9D02 +0xF860 0x9D03 +0xF861 0x9D04 +0xF862 0x9D05 +0xF863 0x9D06 +0xF864 0x9D07 +0xF865 0x9D08 +0xF866 0x9D09 +0xF867 0x9D0A +0xF868 0x9D0B +0xF869 0x9D0C +0xF86A 0x9D0D +0xF86B 0x9D0E +0xF86C 0x9D0F +0xF86D 0x9D10 +0xF86E 0x9D11 +0xF86F 0x9D12 +0xF870 0x9D13 +0xF871 0x9D14 +0xF872 0x9D15 +0xF873 0x9D16 +0xF874 0x9D17 +0xF875 0x9D18 +0xF876 0x9D19 +0xF877 0x9D1A +0xF878 0x9D1B +0xF879 0x9D1C +0xF87A 0x9D1D +0xF87B 0x9D1E +0xF87C 0x9D1F +0xF87D 0x9D20 +0xF87E 0x9D21 +0xF880 0x9D22 +0xF881 0x9D23 +0xF882 0x9D24 +0xF883 0x9D25 +0xF884 0x9D26 +0xF885 0x9D27 +0xF886 0x9D28 +0xF887 0x9D29 +0xF888 0x9D2A +0xF889 0x9D2B +0xF88A 0x9D2C +0xF88B 0x9D2D +0xF88C 0x9D2E +0xF88D 0x9D2F +0xF88E 0x9D30 +0xF88F 0x9D31 +0xF890 0x9D32 +0xF891 0x9D33 +0xF892 0x9D34 +0xF893 0x9D35 +0xF894 0x9D36 +0xF895 0x9D37 +0xF896 0x9D38 +0xF897 0x9D39 +0xF898 0x9D3A +0xF899 0x9D3B +0xF89A 0x9D3C +0xF89B 0x9D3D +0xF89C 0x9D3E +0xF89D 0x9D3F +0xF89E 0x9D40 +0xF89F 0x9D41 +0xF8A0 0x9D42 +0xF8A1 0xE234 +0xF8A2 0xE235 +0xF8A3 0xE236 +0xF8A4 0xE237 +0xF8A5 0xE238 +0xF8A6 0xE239 +0xF8A7 0xE23A +0xF8A8 0xE23B +0xF8A9 0xE23C +0xF8AA 0xE23D +0xF8AB 0xE23E +0xF8AC 0xE23F +0xF8AD 0xE240 +0xF8AE 0xE241 +0xF8AF 0xE242 +0xF8B0 0xE243 +0xF8B1 0xE244 +0xF8B2 0xE245 +0xF8B3 0xE246 +0xF8B4 0xE247 +0xF8B5 0xE248 +0xF8B6 0xE249 +0xF8B7 0xE24A +0xF8B8 0xE24B +0xF8B9 0xE24C +0xF8BA 0xE24D +0xF8BB 0xE24E +0xF8BC 0xE24F +0xF8BD 0xE250 +0xF8BE 0xE251 +0xF8BF 0xE252 +0xF8C0 0xE253 +0xF8C1 0xE254 +0xF8C2 0xE255 +0xF8C3 0xE256 +0xF8C4 0xE257 +0xF8C5 0xE258 +0xF8C6 0xE259 +0xF8C7 0xE25A +0xF8C8 0xE25B +0xF8C9 0xE25C +0xF8CA 0xE25D +0xF8CB 0xE25E +0xF8CC 0xE25F +0xF8CD 0xE260 +0xF8CE 0xE261 +0xF8CF 0xE262 +0xF8D0 0xE263 +0xF8D1 0xE264 +0xF8D2 0xE265 +0xF8D3 0xE266 +0xF8D4 0xE267 +0xF8D5 0xE268 +0xF8D6 0xE269 +0xF8D7 0xE26A +0xF8D8 0xE26B +0xF8D9 0xE26C +0xF8DA 0xE26D +0xF8DB 0xE26E +0xF8DC 0xE26F +0xF8DD 0xE270 +0xF8DE 0xE271 +0xF8DF 0xE272 +0xF8E0 0xE273 +0xF8E1 0xE274 +0xF8E2 0xE275 +0xF8E3 0xE276 +0xF8E4 0xE277 +0xF8E5 0xE278 +0xF8E6 0xE279 +0xF8E7 0xE27A +0xF8E8 0xE27B +0xF8E9 0xE27C +0xF8EA 0xE27D +0xF8EB 0xE27E +0xF8EC 0xE27F +0xF8ED 0xE280 +0xF8EE 0xE281 +0xF8EF 0xE282 +0xF8F0 0xE283 +0xF8F1 0xE284 +0xF8F2 0xE285 +0xF8F3 0xE286 +0xF8F4 0xE287 +0xF8F5 0xE288 +0xF8F6 0xE289 +0xF8F7 0xE28A +0xF8F8 0xE28B +0xF8F9 0xE28C +0xF8FA 0xE28D +0xF8FB 0xE28E +0xF8FC 0xE28F +0xF8FD 0xE290 +0xF8FE 0xE291 +0xF940 0x9D43 +0xF941 0x9D44 +0xF942 0x9D45 +0xF943 0x9D46 +0xF944 0x9D47 +0xF945 0x9D48 +0xF946 0x9D49 +0xF947 0x9D4A +0xF948 0x9D4B +0xF949 0x9D4C +0xF94A 0x9D4D +0xF94B 0x9D4E +0xF94C 0x9D4F +0xF94D 0x9D50 +0xF94E 0x9D51 +0xF94F 0x9D52 +0xF950 0x9D53 +0xF951 0x9D54 +0xF952 0x9D55 +0xF953 0x9D56 +0xF954 0x9D57 +0xF955 0x9D58 +0xF956 0x9D59 +0xF957 0x9D5A +0xF958 0x9D5B +0xF959 0x9D5C +0xF95A 0x9D5D +0xF95B 0x9D5E +0xF95C 0x9D5F +0xF95D 0x9D60 +0xF95E 0x9D61 +0xF95F 0x9D62 +0xF960 0x9D63 +0xF961 0x9D64 +0xF962 0x9D65 +0xF963 0x9D66 +0xF964 0x9D67 +0xF965 0x9D68 +0xF966 0x9D69 +0xF967 0x9D6A +0xF968 0x9D6B +0xF969 0x9D6C +0xF96A 0x9D6D +0xF96B 0x9D6E +0xF96C 0x9D6F +0xF96D 0x9D70 +0xF96E 0x9D71 +0xF96F 0x9D72 +0xF970 0x9D73 +0xF971 0x9D74 +0xF972 0x9D75 +0xF973 0x9D76 +0xF974 0x9D77 +0xF975 0x9D78 +0xF976 0x9D79 +0xF977 0x9D7A +0xF978 0x9D7B +0xF979 0x9D7C +0xF97A 0x9D7D +0xF97B 0x9D7E +0xF97C 0x9D7F +0xF97D 0x9D80 +0xF97E 0x9D81 +0xF980 0x9D82 +0xF981 0x9D83 +0xF982 0x9D84 +0xF983 0x9D85 +0xF984 0x9D86 +0xF985 0x9D87 +0xF986 0x9D88 +0xF987 0x9D89 +0xF988 0x9D8A +0xF989 0x9D8B +0xF98A 0x9D8C +0xF98B 0x9D8D +0xF98C 0x9D8E +0xF98D 0x9D8F +0xF98E 0x9D90 +0xF98F 0x9D91 +0xF990 0x9D92 +0xF991 0x9D93 +0xF992 0x9D94 +0xF993 0x9D95 +0xF994 0x9D96 +0xF995 0x9D97 +0xF996 0x9D98 +0xF997 0x9D99 +0xF998 0x9D9A +0xF999 0x9D9B +0xF99A 0x9D9C +0xF99B 0x9D9D +0xF99C 0x9D9E +0xF99D 0x9D9F +0xF99E 0x9DA0 +0xF99F 0x9DA1 +0xF9A0 0x9DA2 +0xF9A1 0xE292 +0xF9A2 0xE293 +0xF9A3 0xE294 +0xF9A4 0xE295 +0xF9A5 0xE296 +0xF9A6 0xE297 +0xF9A7 0xE298 +0xF9A8 0xE299 +0xF9A9 0xE29A +0xF9AA 0xE29B +0xF9AB 0xE29C +0xF9AC 0xE29D +0xF9AD 0xE29E +0xF9AE 0xE29F +0xF9AF 0xE2A0 +0xF9B0 0xE2A1 +0xF9B1 0xE2A2 +0xF9B2 0xE2A3 +0xF9B3 0xE2A4 +0xF9B4 0xE2A5 +0xF9B5 0xE2A6 +0xF9B6 0xE2A7 +0xF9B7 0xE2A8 +0xF9B8 0xE2A9 +0xF9B9 0xE2AA +0xF9BA 0xE2AB +0xF9BB 0xE2AC +0xF9BC 0xE2AD +0xF9BD 0xE2AE +0xF9BE 0xE2AF +0xF9BF 0xE2B0 +0xF9C0 0xE2B1 +0xF9C1 0xE2B2 +0xF9C2 0xE2B3 +0xF9C3 0xE2B4 +0xF9C4 0xE2B5 +0xF9C5 0xE2B6 +0xF9C6 0xE2B7 +0xF9C7 0xE2B8 +0xF9C8 0xE2B9 +0xF9C9 0xE2BA +0xF9CA 0xE2BB +0xF9CB 0xE2BC +0xF9CC 0xE2BD +0xF9CD 0xE2BE +0xF9CE 0xE2BF +0xF9CF 0xE2C0 +0xF9D0 0xE2C1 +0xF9D1 0xE2C2 +0xF9D2 0xE2C3 +0xF9D3 0xE2C4 +0xF9D4 0xE2C5 +0xF9D5 0xE2C6 +0xF9D6 0xE2C7 +0xF9D7 0xE2C8 +0xF9D8 0xE2C9 +0xF9D9 0xE2CA +0xF9DA 0xE2CB +0xF9DB 0xE2CC +0xF9DC 0xE2CD +0xF9DD 0xE2CE +0xF9DE 0xE2CF +0xF9DF 0xE2D0 +0xF9E0 0xE2D1 +0xF9E1 0xE2D2 +0xF9E2 0xE2D3 +0xF9E3 0xE2D4 +0xF9E4 0xE2D5 +0xF9E5 0xE2D6 +0xF9E6 0xE2D7 +0xF9E7 0xE2D8 +0xF9E8 0xE2D9 +0xF9E9 0xE2DA +0xF9EA 0xE2DB +0xF9EB 0xE2DC +0xF9EC 0xE2DD +0xF9ED 0xE2DE +0xF9EE 0xE2DF +0xF9EF 0xE2E0 +0xF9F0 0xE2E1 +0xF9F1 0xE2E2 +0xF9F2 0xE2E3 +0xF9F3 0xE2E4 +0xF9F4 0xE2E5 +0xF9F5 0xE2E6 +0xF9F6 0xE2E7 +0xF9F7 0xE2E8 +0xF9F8 0xE2E9 +0xF9F9 0xE2EA +0xF9FA 0xE2EB +0xF9FB 0xE2EC +0xF9FC 0xE2ED +0xF9FD 0xE2EE +0xF9FE 0xE2EF +0xFA40 0x9DA3 +0xFA41 0x9DA4 +0xFA42 0x9DA5 +0xFA43 0x9DA6 +0xFA44 0x9DA7 +0xFA45 0x9DA8 +0xFA46 0x9DA9 +0xFA47 0x9DAA +0xFA48 0x9DAB +0xFA49 0x9DAC +0xFA4A 0x9DAD +0xFA4B 0x9DAE +0xFA4C 0x9DAF +0xFA4D 0x9DB0 +0xFA4E 0x9DB1 +0xFA4F 0x9DB2 +0xFA50 0x9DB3 +0xFA51 0x9DB4 +0xFA52 0x9DB5 +0xFA53 0x9DB6 +0xFA54 0x9DB7 +0xFA55 0x9DB8 +0xFA56 0x9DB9 +0xFA57 0x9DBA +0xFA58 0x9DBB +0xFA59 0x9DBC +0xFA5A 0x9DBD +0xFA5B 0x9DBE +0xFA5C 0x9DBF +0xFA5D 0x9DC0 +0xFA5E 0x9DC1 +0xFA5F 0x9DC2 +0xFA60 0x9DC3 +0xFA61 0x9DC4 +0xFA62 0x9DC5 +0xFA63 0x9DC6 +0xFA64 0x9DC7 +0xFA65 0x9DC8 +0xFA66 0x9DC9 +0xFA67 0x9DCA +0xFA68 0x9DCB +0xFA69 0x9DCC +0xFA6A 0x9DCD +0xFA6B 0x9DCE +0xFA6C 0x9DCF +0xFA6D 0x9DD0 +0xFA6E 0x9DD1 +0xFA6F 0x9DD2 +0xFA70 0x9DD3 +0xFA71 0x9DD4 +0xFA72 0x9DD5 +0xFA73 0x9DD6 +0xFA74 0x9DD7 +0xFA75 0x9DD8 +0xFA76 0x9DD9 +0xFA77 0x9DDA +0xFA78 0x9DDB +0xFA79 0x9DDC +0xFA7A 0x9DDD +0xFA7B 0x9DDE +0xFA7C 0x9DDF +0xFA7D 0x9DE0 +0xFA7E 0x9DE1 +0xFA80 0x9DE2 +0xFA81 0x9DE3 +0xFA82 0x9DE4 +0xFA83 0x9DE5 +0xFA84 0x9DE6 +0xFA85 0x9DE7 +0xFA86 0x9DE8 +0xFA87 0x9DE9 +0xFA88 0x9DEA +0xFA89 0x9DEB +0xFA8A 0x9DEC +0xFA8B 0x9DED +0xFA8C 0x9DEE +0xFA8D 0x9DEF +0xFA8E 0x9DF0 +0xFA8F 0x9DF1 +0xFA90 0x9DF2 +0xFA91 0x9DF3 +0xFA92 0x9DF4 +0xFA93 0x9DF5 +0xFA94 0x9DF6 +0xFA95 0x9DF7 +0xFA96 0x9DF8 +0xFA97 0x9DF9 +0xFA98 0x9DFA +0xFA99 0x9DFB +0xFA9A 0x9DFC +0xFA9B 0x9DFD +0xFA9C 0x9DFE +0xFA9D 0x9DFF +0xFA9E 0x9E00 +0xFA9F 0x9E01 +0xFAA0 0x9E02 +0xFAA1 0xE2F0 +0xFAA2 0xE2F1 +0xFAA3 0xE2F2 +0xFAA4 0xE2F3 +0xFAA5 0xE2F4 +0xFAA6 0xE2F5 +0xFAA7 0xE2F6 +0xFAA8 0xE2F7 +0xFAA9 0xE2F8 +0xFAAA 0xE2F9 +0xFAAB 0xE2FA +0xFAAC 0xE2FB +0xFAAD 0xE2FC +0xFAAE 0xE2FD +0xFAAF 0xE2FE +0xFAB0 0xE2FF +0xFAB1 0xE300 +0xFAB2 0xE301 +0xFAB3 0xE302 +0xFAB4 0xE303 +0xFAB5 0xE304 +0xFAB6 0xE305 +0xFAB7 0xE306 +0xFAB8 0xE307 +0xFAB9 0xE308 +0xFABA 0xE309 +0xFABB 0xE30A +0xFABC 0xE30B +0xFABD 0xE30C +0xFABE 0xE30D +0xFABF 0xE30E +0xFAC0 0xE30F +0xFAC1 0xE310 +0xFAC2 0xE311 +0xFAC3 0xE312 +0xFAC4 0xE313 +0xFAC5 0xE314 +0xFAC6 0xE315 +0xFAC7 0xE316 +0xFAC8 0xE317 +0xFAC9 0xE318 +0xFACA 0xE319 +0xFACB 0xE31A +0xFACC 0xE31B +0xFACD 0xE31C +0xFACE 0xE31D +0xFACF 0xE31E +0xFAD0 0xE31F +0xFAD1 0xE320 +0xFAD2 0xE321 +0xFAD3 0xE322 +0xFAD4 0xE323 +0xFAD5 0xE324 +0xFAD6 0xE325 +0xFAD7 0xE326 +0xFAD8 0xE327 +0xFAD9 0xE328 +0xFADA 0xE329 +0xFADB 0xE32A +0xFADC 0xE32B +0xFADD 0xE32C +0xFADE 0xE32D +0xFADF 0xE32E +0xFAE0 0xE32F +0xFAE1 0xE330 +0xFAE2 0xE331 +0xFAE3 0xE332 +0xFAE4 0xE333 +0xFAE5 0xE334 +0xFAE6 0xE335 +0xFAE7 0xE336 +0xFAE8 0xE337 +0xFAE9 0xE338 +0xFAEA 0xE339 +0xFAEB 0xE33A +0xFAEC 0xE33B +0xFAED 0xE33C +0xFAEE 0xE33D +0xFAEF 0xE33E +0xFAF0 0xE33F +0xFAF1 0xE340 +0xFAF2 0xE341 +0xFAF3 0xE342 +0xFAF4 0xE343 +0xFAF5 0xE344 +0xFAF6 0xE345 +0xFAF7 0xE346 +0xFAF8 0xE347 +0xFAF9 0xE348 +0xFAFA 0xE349 +0xFAFB 0xE34A +0xFAFC 0xE34B +0xFAFD 0xE34C +0xFAFE 0xE34D +0xFB40 0x9E03 +0xFB41 0x9E04 +0xFB42 0x9E05 +0xFB43 0x9E06 +0xFB44 0x9E07 +0xFB45 0x9E08 +0xFB46 0x9E09 +0xFB47 0x9E0A +0xFB48 0x9E0B +0xFB49 0x9E0C +0xFB4A 0x9E0D +0xFB4B 0x9E0E +0xFB4C 0x9E0F +0xFB4D 0x9E10 +0xFB4E 0x9E11 +0xFB4F 0x9E12 +0xFB50 0x9E13 +0xFB51 0x9E14 +0xFB52 0x9E15 +0xFB53 0x9E16 +0xFB54 0x9E17 +0xFB55 0x9E18 +0xFB56 0x9E19 +0xFB57 0x9E1A +0xFB58 0x9E1B +0xFB59 0x9E1C +0xFB5A 0x9E1D +0xFB5B 0x9E1E +0xFB5C 0x9E24 +0xFB5D 0x9E27 +0xFB5E 0x9E2E +0xFB5F 0x9E30 +0xFB60 0x9E34 +0xFB61 0x9E3B +0xFB62 0x9E3C +0xFB63 0x9E40 +0xFB64 0x9E4D +0xFB65 0x9E50 +0xFB66 0x9E52 +0xFB67 0x9E53 +0xFB68 0x9E54 +0xFB69 0x9E56 +0xFB6A 0x9E59 +0xFB6B 0x9E5D +0xFB6C 0x9E5F +0xFB6D 0x9E60 +0xFB6E 0x9E61 +0xFB6F 0x9E62 +0xFB70 0x9E65 +0xFB71 0x9E6E +0xFB72 0x9E6F +0xFB73 0x9E72 +0xFB74 0x9E74 +0xFB75 0x9E75 +0xFB76 0x9E76 +0xFB77 0x9E77 +0xFB78 0x9E78 +0xFB79 0x9E79 +0xFB7A 0x9E7A +0xFB7B 0x9E7B +0xFB7C 0x9E7C +0xFB7D 0x9E7D +0xFB7E 0x9E80 +0xFB80 0x9E81 +0xFB81 0x9E83 +0xFB82 0x9E84 +0xFB83 0x9E85 +0xFB84 0x9E86 +0xFB85 0x9E89 +0xFB86 0x9E8A +0xFB87 0x9E8C +0xFB88 0x9E8D +0xFB89 0x9E8E +0xFB8A 0x9E8F +0xFB8B 0x9E90 +0xFB8C 0x9E91 +0xFB8D 0x9E94 +0xFB8E 0x9E95 +0xFB8F 0x9E96 +0xFB90 0x9E97 +0xFB91 0x9E98 +0xFB92 0x9E99 +0xFB93 0x9E9A +0xFB94 0x9E9B +0xFB95 0x9E9C +0xFB96 0x9E9E +0xFB97 0x9EA0 +0xFB98 0x9EA1 +0xFB99 0x9EA2 +0xFB9A 0x9EA3 +0xFB9B 0x9EA4 +0xFB9C 0x9EA5 +0xFB9D 0x9EA7 +0xFB9E 0x9EA8 +0xFB9F 0x9EA9 +0xFBA0 0x9EAA +0xFBA1 0xE34E +0xFBA2 0xE34F +0xFBA3 0xE350 +0xFBA4 0xE351 +0xFBA5 0xE352 +0xFBA6 0xE353 +0xFBA7 0xE354 +0xFBA8 0xE355 +0xFBA9 0xE356 +0xFBAA 0xE357 +0xFBAB 0xE358 +0xFBAC 0xE359 +0xFBAD 0xE35A +0xFBAE 0xE35B +0xFBAF 0xE35C +0xFBB0 0xE35D +0xFBB1 0xE35E +0xFBB2 0xE35F +0xFBB3 0xE360 +0xFBB4 0xE361 +0xFBB5 0xE362 +0xFBB6 0xE363 +0xFBB7 0xE364 +0xFBB8 0xE365 +0xFBB9 0xE366 +0xFBBA 0xE367 +0xFBBB 0xE368 +0xFBBC 0xE369 +0xFBBD 0xE36A +0xFBBE 0xE36B +0xFBBF 0xE36C +0xFBC0 0xE36D +0xFBC1 0xE36E +0xFBC2 0xE36F +0xFBC3 0xE370 +0xFBC4 0xE371 +0xFBC5 0xE372 +0xFBC6 0xE373 +0xFBC7 0xE374 +0xFBC8 0xE375 +0xFBC9 0xE376 +0xFBCA 0xE377 +0xFBCB 0xE378 +0xFBCC 0xE379 +0xFBCD 0xE37A +0xFBCE 0xE37B +0xFBCF 0xE37C +0xFBD0 0xE37D +0xFBD1 0xE37E +0xFBD2 0xE37F +0xFBD3 0xE380 +0xFBD4 0xE381 +0xFBD5 0xE382 +0xFBD6 0xE383 +0xFBD7 0xE384 +0xFBD8 0xE385 +0xFBD9 0xE386 +0xFBDA 0xE387 +0xFBDB 0xE388 +0xFBDC 0xE389 +0xFBDD 0xE38A +0xFBDE 0xE38B +0xFBDF 0xE38C +0xFBE0 0xE38D +0xFBE1 0xE38E +0xFBE2 0xE38F +0xFBE3 0xE390 +0xFBE4 0xE391 +0xFBE5 0xE392 +0xFBE6 0xE393 +0xFBE7 0xE394 +0xFBE8 0xE395 +0xFBE9 0xE396 +0xFBEA 0xE397 +0xFBEB 0xE398 +0xFBEC 0xE399 +0xFBED 0xE39A +0xFBEE 0xE39B +0xFBEF 0xE39C +0xFBF0 0xE39D +0xFBF1 0xE39E +0xFBF2 0xE39F +0xFBF3 0xE3A0 +0xFBF4 0xE3A1 +0xFBF5 0xE3A2 +0xFBF6 0xE3A3 +0xFBF7 0xE3A4 +0xFBF8 0xE3A5 +0xFBF9 0xE3A6 +0xFBFA 0xE3A7 +0xFBFB 0xE3A8 +0xFBFC 0xE3A9 +0xFBFD 0xE3AA +0xFBFE 0xE3AB +0xFC40 0x9EAB +0xFC41 0x9EAC +0xFC42 0x9EAD +0xFC43 0x9EAE +0xFC44 0x9EAF +0xFC45 0x9EB0 +0xFC46 0x9EB1 +0xFC47 0x9EB2 +0xFC48 0x9EB3 +0xFC49 0x9EB5 +0xFC4A 0x9EB6 +0xFC4B 0x9EB7 +0xFC4C 0x9EB9 +0xFC4D 0x9EBA +0xFC4E 0x9EBC +0xFC4F 0x9EBF +0xFC50 0x9EC0 +0xFC51 0x9EC1 +0xFC52 0x9EC2 +0xFC53 0x9EC3 +0xFC54 0x9EC5 +0xFC55 0x9EC6 +0xFC56 0x9EC7 +0xFC57 0x9EC8 +0xFC58 0x9ECA +0xFC59 0x9ECB +0xFC5A 0x9ECC +0xFC5B 0x9ED0 +0xFC5C 0x9ED2 +0xFC5D 0x9ED3 +0xFC5E 0x9ED5 +0xFC5F 0x9ED6 +0xFC60 0x9ED7 +0xFC61 0x9ED9 +0xFC62 0x9EDA +0xFC63 0x9EDE +0xFC64 0x9EE1 +0xFC65 0x9EE3 +0xFC66 0x9EE4 +0xFC67 0x9EE6 +0xFC68 0x9EE8 +0xFC69 0x9EEB +0xFC6A 0x9EEC +0xFC6B 0x9EED +0xFC6C 0x9EEE +0xFC6D 0x9EF0 +0xFC6E 0x9EF1 +0xFC6F 0x9EF2 +0xFC70 0x9EF3 +0xFC71 0x9EF4 +0xFC72 0x9EF5 +0xFC73 0x9EF6 +0xFC74 0x9EF7 +0xFC75 0x9EF8 +0xFC76 0x9EFA +0xFC77 0x9EFD +0xFC78 0x9EFF +0xFC79 0x9F00 +0xFC7A 0x9F01 +0xFC7B 0x9F02 +0xFC7C 0x9F03 +0xFC7D 0x9F04 +0xFC7E 0x9F05 +0xFC80 0x9F06 +0xFC81 0x9F07 +0xFC82 0x9F08 +0xFC83 0x9F09 +0xFC84 0x9F0A +0xFC85 0x9F0C +0xFC86 0x9F0F +0xFC87 0x9F11 +0xFC88 0x9F12 +0xFC89 0x9F14 +0xFC8A 0x9F15 +0xFC8B 0x9F16 +0xFC8C 0x9F18 +0xFC8D 0x9F1A +0xFC8E 0x9F1B +0xFC8F 0x9F1C +0xFC90 0x9F1D +0xFC91 0x9F1E +0xFC92 0x9F1F +0xFC93 0x9F21 +0xFC94 0x9F23 +0xFC95 0x9F24 +0xFC96 0x9F25 +0xFC97 0x9F26 +0xFC98 0x9F27 +0xFC99 0x9F28 +0xFC9A 0x9F29 +0xFC9B 0x9F2A +0xFC9C 0x9F2B +0xFC9D 0x9F2D +0xFC9E 0x9F2E +0xFC9F 0x9F30 +0xFCA0 0x9F31 +0xFCA1 0xE3AC +0xFCA2 0xE3AD +0xFCA3 0xE3AE +0xFCA4 0xE3AF +0xFCA5 0xE3B0 +0xFCA6 0xE3B1 +0xFCA7 0xE3B2 +0xFCA8 0xE3B3 +0xFCA9 0xE3B4 +0xFCAA 0xE3B5 +0xFCAB 0xE3B6 +0xFCAC 0xE3B7 +0xFCAD 0xE3B8 +0xFCAE 0xE3B9 +0xFCAF 0xE3BA +0xFCB0 0xE3BB +0xFCB1 0xE3BC +0xFCB2 0xE3BD +0xFCB3 0xE3BE +0xFCB4 0xE3BF +0xFCB5 0xE3C0 +0xFCB6 0xE3C1 +0xFCB7 0xE3C2 +0xFCB8 0xE3C3 +0xFCB9 0xE3C4 +0xFCBA 0xE3C5 +0xFCBB 0xE3C6 +0xFCBC 0xE3C7 +0xFCBD 0xE3C8 +0xFCBE 0xE3C9 +0xFCBF 0xE3CA +0xFCC0 0xE3CB +0xFCC1 0xE3CC +0xFCC2 0xE3CD +0xFCC3 0xE3CE +0xFCC4 0xE3CF +0xFCC5 0xE3D0 +0xFCC6 0xE3D1 +0xFCC7 0xE3D2 +0xFCC8 0xE3D3 +0xFCC9 0xE3D4 +0xFCCA 0xE3D5 +0xFCCB 0xE3D6 +0xFCCC 0xE3D7 +0xFCCD 0xE3D8 +0xFCCE 0xE3D9 +0xFCCF 0xE3DA +0xFCD0 0xE3DB +0xFCD1 0xE3DC +0xFCD2 0xE3DD +0xFCD3 0xE3DE +0xFCD4 0xE3DF +0xFCD5 0xE3E0 +0xFCD6 0xE3E1 +0xFCD7 0xE3E2 +0xFCD8 0xE3E3 +0xFCD9 0xE3E4 +0xFCDA 0xE3E5 +0xFCDB 0xE3E6 +0xFCDC 0xE3E7 +0xFCDD 0xE3E8 +0xFCDE 0xE3E9 +0xFCDF 0xE3EA +0xFCE0 0xE3EB +0xFCE1 0xE3EC +0xFCE2 0xE3ED +0xFCE3 0xE3EE +0xFCE4 0xE3EF +0xFCE5 0xE3F0 +0xFCE6 0xE3F1 +0xFCE7 0xE3F2 +0xFCE8 0xE3F3 +0xFCE9 0xE3F4 +0xFCEA 0xE3F5 +0xFCEB 0xE3F6 +0xFCEC 0xE3F7 +0xFCED 0xE3F8 +0xFCEE 0xE3F9 +0xFCEF 0xE3FA +0xFCF0 0xE3FB +0xFCF1 0xE3FC +0xFCF2 0xE3FD +0xFCF3 0xE3FE +0xFCF4 0xE3FF +0xFCF5 0xE400 +0xFCF6 0xE401 +0xFCF7 0xE402 +0xFCF8 0xE403 +0xFCF9 0xE404 +0xFCFA 0xE405 +0xFCFB 0xE406 +0xFCFC 0xE407 +0xFCFD 0xE408 +0xFCFE 0xE409 +0xFD40 0x9F32 +0xFD41 0x9F33 +0xFD42 0x9F34 +0xFD43 0x9F35 +0xFD44 0x9F36 +0xFD45 0x9F38 +0xFD46 0x9F3A +0xFD47 0x9F3C +0xFD48 0x9F3F +0xFD49 0x9F40 +0xFD4A 0x9F41 +0xFD4B 0x9F42 +0xFD4C 0x9F43 +0xFD4D 0x9F45 +0xFD4E 0x9F46 +0xFD4F 0x9F47 +0xFD50 0x9F48 +0xFD51 0x9F49 +0xFD52 0x9F4A +0xFD53 0x9F4B +0xFD54 0x9F4C +0xFD55 0x9F4D +0xFD56 0x9F4E +0xFD57 0x9F4F +0xFD58 0x9F52 +0xFD59 0x9F53 +0xFD5A 0x9F54 +0xFD5B 0x9F55 +0xFD5C 0x9F56 +0xFD5D 0x9F57 +0xFD5E 0x9F58 +0xFD5F 0x9F59 +0xFD60 0x9F5A +0xFD61 0x9F5B +0xFD62 0x9F5C +0xFD63 0x9F5D +0xFD64 0x9F5E +0xFD65 0x9F5F +0xFD66 0x9F60 +0xFD67 0x9F61 +0xFD68 0x9F62 +0xFD69 0x9F63 +0xFD6A 0x9F64 +0xFD6B 0x9F65 +0xFD6C 0x9F66 +0xFD6D 0x9F67 +0xFD6E 0x9F68 +0xFD6F 0x9F69 +0xFD70 0x9F6A +0xFD71 0x9F6B +0xFD72 0x9F6C +0xFD73 0x9F6D +0xFD74 0x9F6E +0xFD75 0x9F6F +0xFD76 0x9F70 +0xFD77 0x9F71 +0xFD78 0x9F72 +0xFD79 0x9F73 +0xFD7A 0x9F74 +0xFD7B 0x9F75 +0xFD7C 0x9F76 +0xFD7D 0x9F77 +0xFD7E 0x9F78 +0xFD80 0x9F79 +0xFD81 0x9F7A +0xFD82 0x9F7B +0xFD83 0x9F7C +0xFD84 0x9F7D +0xFD85 0x9F7E +0xFD86 0x9F81 +0xFD87 0x9F82 +0xFD88 0x9F8D +0xFD89 0x9F8E +0xFD8A 0x9F8F +0xFD8B 0x9F90 +0xFD8C 0x9F91 +0xFD8D 0x9F92 +0xFD8E 0x9F93 +0xFD8F 0x9F94 +0xFD90 0x9F95 +0xFD91 0x9F96 +0xFD92 0x9F97 +0xFD93 0x9F98 +0xFD94 0x9F9C +0xFD95 0x9F9D +0xFD96 0x9F9E +0xFD97 0x9FA1 +0xFD98 0x9FA2 +0xFD99 0x9FA3 +0xFD9A 0x9FA4 +0xFD9B 0x9FA5 +0xFD9C 0xF92C +0xFD9D 0xF979 +0xFD9E 0xF995 +0xFD9F 0xF9E7 +0xFDA0 0xF9F1 +0xFDA1 0xE40A +0xFDA2 0xE40B +0xFDA3 0xE40C +0xFDA4 0xE40D +0xFDA5 0xE40E +0xFDA6 0xE40F +0xFDA7 0xE410 +0xFDA8 0xE411 +0xFDA9 0xE412 +0xFDAA 0xE413 +0xFDAB 0xE414 +0xFDAC 0xE415 +0xFDAD 0xE416 +0xFDAE 0xE417 +0xFDAF 0xE418 +0xFDB0 0xE419 +0xFDB1 0xE41A +0xFDB2 0xE41B +0xFDB3 0xE41C +0xFDB4 0xE41D +0xFDB5 0xE41E +0xFDB6 0xE41F +0xFDB7 0xE420 +0xFDB8 0xE421 +0xFDB9 0xE422 +0xFDBA 0xE423 +0xFDBB 0xE424 +0xFDBC 0xE425 +0xFDBD 0xE426 +0xFDBE 0xE427 +0xFDBF 0xE428 +0xFDC0 0xE429 +0xFDC1 0xE42A +0xFDC2 0xE42B +0xFDC3 0xE42C +0xFDC4 0xE42D +0xFDC5 0xE42E +0xFDC6 0xE42F +0xFDC7 0xE430 +0xFDC8 0xE431 +0xFDC9 0xE432 +0xFDCA 0xE433 +0xFDCB 0xE434 +0xFDCC 0xE435 +0xFDCD 0xE436 +0xFDCE 0xE437 +0xFDCF 0xE438 +0xFDD0 0xE439 +0xFDD1 0xE43A +0xFDD2 0xE43B +0xFDD3 0xE43C +0xFDD4 0xE43D +0xFDD5 0xE43E +0xFDD6 0xE43F +0xFDD7 0xE440 +0xFDD8 0xE441 +0xFDD9 0xE442 +0xFDDA 0xE443 +0xFDDB 0xE444 +0xFDDC 0xE445 +0xFDDD 0xE446 +0xFDDE 0xE447 +0xFDDF 0xE448 +0xFDE0 0xE449 +0xFDE1 0xE44A +0xFDE2 0xE44B +0xFDE3 0xE44C +0xFDE4 0xE44D +0xFDE5 0xE44E +0xFDE6 0xE44F +0xFDE7 0xE450 +0xFDE8 0xE451 +0xFDE9 0xE452 +0xFDEA 0xE453 +0xFDEB 0xE454 +0xFDEC 0xE455 +0xFDED 0xE456 +0xFDEE 0xE457 +0xFDEF 0xE458 +0xFDF0 0xE459 +0xFDF1 0xE45A +0xFDF2 0xE45B +0xFDF3 0xE45C +0xFDF4 0xE45D +0xFDF5 0xE45E +0xFDF6 0xE45F +0xFDF7 0xE460 +0xFDF8 0xE461 +0xFDF9 0xE462 +0xFDFA 0xE463 +0xFDFB 0xE464 +0xFDFC 0xE465 +0xFDFD 0xE466 +0xFDFE 0xE467 +0xFE40 0xFA0C +0xFE41 0xFA0D +0xFE42 0xFA0E +0xFE43 0xFA0F +0xFE44 0xFA11 +0xFE45 0xFA13 +0xFE46 0xFA14 +0xFE47 0xFA18 +0xFE48 0xFA1F +0xFE49 0xFA20 +0xFE4A 0xFA21 +0xFE4B 0xFA23 +0xFE4C 0xFA24 +0xFE4D 0xFA27 +0xFE4E 0xFA28 +0xFE4F 0xFA29 +0xFEA1 0xE468 +0xFEA2 0xE469 +0xFEA3 0xE46A +0xFEA4 0xE46B +0xFEA5 0xE46C +0xFEA6 0xE46D +0xFEA7 0xE46E +0xFEA8 0xE46F +0xFEA9 0xE470 +0xFEAA 0xE471 +0xFEAB 0xE472 +0xFEAC 0xE473 +0xFEAD 0xE474 +0xFEAE 0xE475 +0xFEAF 0xE476 +0xFEB0 0xE477 +0xFEB1 0xE478 +0xFEB2 0xE479 +0xFEB3 0xE47A +0xFEB4 0xE47B +0xFEB5 0xE47C +0xFEB6 0xE47D +0xFEB7 0xE47E +0xFEB8 0xE47F +0xFEB9 0xE480 +0xFEBA 0xE481 +0xFEBB 0xE482 +0xFEBC 0xE483 +0xFEBD 0xE484 +0xFEBE 0xE485 +0xFEBF 0xE486 +0xFEC0 0xE487 +0xFEC1 0xE488 +0xFEC2 0xE489 +0xFEC3 0xE48A +0xFEC4 0xE48B +0xFEC5 0xE48C +0xFEC6 0xE48D +0xFEC7 0xE48E +0xFEC8 0xE48F +0xFEC9 0xE490 +0xFECA 0xE491 +0xFECB 0xE492 +0xFECC 0xE493 +0xFECD 0xE494 +0xFECE 0xE495 +0xFECF 0xE496 +0xFED0 0xE497 +0xFED1 0xE498 +0xFED2 0xE499 +0xFED3 0xE49A +0xFED4 0xE49B +0xFED5 0xE49C +0xFED6 0xE49D +0xFED7 0xE49E +0xFED8 0xE49F +0xFED9 0xE4A0 +0xFEDA 0xE4A1 +0xFEDB 0xE4A2 +0xFEDC 0xE4A3 +0xFEDD 0xE4A4 +0xFEDE 0xE4A5 +0xFEDF 0xE4A6 +0xFEE0 0xE4A7 +0xFEE1 0xE4A8 +0xFEE2 0xE4A9 +0xFEE3 0xE4AA +0xFEE4 0xE4AB +0xFEE5 0xE4AC +0xFEE6 0xE4AD +0xFEE7 0xE4AE +0xFEE8 0xE4AF +0xFEE9 0xE4B0 +0xFEEA 0xE4B1 +0xFEEB 0xE4B2 +0xFEEC 0xE4B3 +0xFEED 0xE4B4 +0xFEEE 0xE4B5 +0xFEEF 0xE4B6 +0xFEF0 0xE4B7 +0xFEF1 0xE4B8 +0xFEF2 0xE4B9 +0xFEF3 0xE4BA +0xFEF4 0xE4BB +0xFEF5 0xE4BC +0xFEF6 0xE4BD +0xFEF7 0xE4BE +0xFEF8 0xE4BF +0xFEF9 0xE4C0 +0xFEFA 0xE4C1 +0xFEFB 0xE4C2 +0xFEFC 0xE4C3 +0xFEFD 0xE4C4 +0xFEFE 0xE4C5 diff --git a/3rdPartner/libiconv/tests/CP949.TXT b/3rdPartner/libiconv/tests/CP949.TXT new file mode 100644 index 0000000..ad74954 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP949.TXT @@ -0,0 +1,17364 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8141 0xAC02 +0x8142 0xAC03 +0x8143 0xAC05 +0x8144 0xAC06 +0x8145 0xAC0B +0x8146 0xAC0C +0x8147 0xAC0D +0x8148 0xAC0E +0x8149 0xAC0F +0x814A 0xAC18 +0x814B 0xAC1E +0x814C 0xAC1F +0x814D 0xAC21 +0x814E 0xAC22 +0x814F 0xAC23 +0x8150 0xAC25 +0x8151 0xAC26 +0x8152 0xAC27 +0x8153 0xAC28 +0x8154 0xAC29 +0x8155 0xAC2A +0x8156 0xAC2B +0x8157 0xAC2E +0x8158 0xAC32 +0x8159 0xAC33 +0x815A 0xAC34 +0x8161 0xAC35 +0x8162 0xAC36 +0x8163 0xAC37 +0x8164 0xAC3A +0x8165 0xAC3B +0x8166 0xAC3D +0x8167 0xAC3E +0x8168 0xAC3F +0x8169 0xAC41 +0x816A 0xAC42 +0x816B 0xAC43 +0x816C 0xAC44 +0x816D 0xAC45 +0x816E 0xAC46 +0x816F 0xAC47 +0x8170 0xAC48 +0x8171 0xAC49 +0x8172 0xAC4A +0x8173 0xAC4C +0x8174 0xAC4E +0x8175 0xAC4F +0x8176 0xAC50 +0x8177 0xAC51 +0x8178 0xAC52 +0x8179 0xAC53 +0x817A 0xAC55 +0x8181 0xAC56 +0x8182 0xAC57 +0x8183 0xAC59 +0x8184 0xAC5A +0x8185 0xAC5B +0x8186 0xAC5D +0x8187 0xAC5E +0x8188 0xAC5F +0x8189 0xAC60 +0x818A 0xAC61 +0x818B 0xAC62 +0x818C 0xAC63 +0x818D 0xAC64 +0x818E 0xAC65 +0x818F 0xAC66 +0x8190 0xAC67 +0x8191 0xAC68 +0x8192 0xAC69 +0x8193 0xAC6A +0x8194 0xAC6B +0x8195 0xAC6C +0x8196 0xAC6D +0x8197 0xAC6E +0x8198 0xAC6F +0x8199 0xAC72 +0x819A 0xAC73 +0x819B 0xAC75 +0x819C 0xAC76 +0x819D 0xAC79 +0x819E 0xAC7B +0x819F 0xAC7C +0x81A0 0xAC7D +0x81A1 0xAC7E +0x81A2 0xAC7F +0x81A3 0xAC82 +0x81A4 0xAC87 +0x81A5 0xAC88 +0x81A6 0xAC8D +0x81A7 0xAC8E +0x81A8 0xAC8F +0x81A9 0xAC91 +0x81AA 0xAC92 +0x81AB 0xAC93 +0x81AC 0xAC95 +0x81AD 0xAC96 +0x81AE 0xAC97 +0x81AF 0xAC98 +0x81B0 0xAC99 +0x81B1 0xAC9A +0x81B2 0xAC9B +0x81B3 0xAC9E +0x81B4 0xACA2 +0x81B5 0xACA3 +0x81B6 0xACA4 +0x81B7 0xACA5 +0x81B8 0xACA6 +0x81B9 0xACA7 +0x81BA 0xACAB +0x81BB 0xACAD +0x81BC 0xACAE +0x81BD 0xACB1 +0x81BE 0xACB2 +0x81BF 0xACB3 +0x81C0 0xACB4 +0x81C1 0xACB5 +0x81C2 0xACB6 +0x81C3 0xACB7 +0x81C4 0xACBA +0x81C5 0xACBE +0x81C6 0xACBF +0x81C7 0xACC0 +0x81C8 0xACC2 +0x81C9 0xACC3 +0x81CA 0xACC5 +0x81CB 0xACC6 +0x81CC 0xACC7 +0x81CD 0xACC9 +0x81CE 0xACCA +0x81CF 0xACCB +0x81D0 0xACCD +0x81D1 0xACCE +0x81D2 0xACCF +0x81D3 0xACD0 +0x81D4 0xACD1 +0x81D5 0xACD2 +0x81D6 0xACD3 +0x81D7 0xACD4 +0x81D8 0xACD6 +0x81D9 0xACD8 +0x81DA 0xACD9 +0x81DB 0xACDA +0x81DC 0xACDB +0x81DD 0xACDC +0x81DE 0xACDD +0x81DF 0xACDE +0x81E0 0xACDF +0x81E1 0xACE2 +0x81E2 0xACE3 +0x81E3 0xACE5 +0x81E4 0xACE6 +0x81E5 0xACE9 +0x81E6 0xACEB +0x81E7 0xACED +0x81E8 0xACEE +0x81E9 0xACF2 +0x81EA 0xACF4 +0x81EB 0xACF7 +0x81EC 0xACF8 +0x81ED 0xACF9 +0x81EE 0xACFA +0x81EF 0xACFB +0x81F0 0xACFE +0x81F1 0xACFF +0x81F2 0xAD01 +0x81F3 0xAD02 +0x81F4 0xAD03 +0x81F5 0xAD05 +0x81F6 0xAD07 +0x81F7 0xAD08 +0x81F8 0xAD09 +0x81F9 0xAD0A +0x81FA 0xAD0B +0x81FB 0xAD0E +0x81FC 0xAD10 +0x81FD 0xAD12 +0x81FE 0xAD13 +0x8241 0xAD14 +0x8242 0xAD15 +0x8243 0xAD16 +0x8244 0xAD17 +0x8245 0xAD19 +0x8246 0xAD1A +0x8247 0xAD1B +0x8248 0xAD1D +0x8249 0xAD1E +0x824A 0xAD1F +0x824B 0xAD21 +0x824C 0xAD22 +0x824D 0xAD23 +0x824E 0xAD24 +0x824F 0xAD25 +0x8250 0xAD26 +0x8251 0xAD27 +0x8252 0xAD28 +0x8253 0xAD2A +0x8254 0xAD2B +0x8255 0xAD2E +0x8256 0xAD2F +0x8257 0xAD30 +0x8258 0xAD31 +0x8259 0xAD32 +0x825A 0xAD33 +0x8261 0xAD36 +0x8262 0xAD37 +0x8263 0xAD39 +0x8264 0xAD3A +0x8265 0xAD3B +0x8266 0xAD3D +0x8267 0xAD3E +0x8268 0xAD3F +0x8269 0xAD40 +0x826A 0xAD41 +0x826B 0xAD42 +0x826C 0xAD43 +0x826D 0xAD46 +0x826E 0xAD48 +0x826F 0xAD4A +0x8270 0xAD4B +0x8271 0xAD4C +0x8272 0xAD4D +0x8273 0xAD4E +0x8274 0xAD4F +0x8275 0xAD51 +0x8276 0xAD52 +0x8277 0xAD53 +0x8278 0xAD55 +0x8279 0xAD56 +0x827A 0xAD57 +0x8281 0xAD59 +0x8282 0xAD5A +0x8283 0xAD5B +0x8284 0xAD5C +0x8285 0xAD5D +0x8286 0xAD5E +0x8287 0xAD5F +0x8288 0xAD60 +0x8289 0xAD62 +0x828A 0xAD64 +0x828B 0xAD65 +0x828C 0xAD66 +0x828D 0xAD67 +0x828E 0xAD68 +0x828F 0xAD69 +0x8290 0xAD6A +0x8291 0xAD6B +0x8292 0xAD6E +0x8293 0xAD6F +0x8294 0xAD71 +0x8295 0xAD72 +0x8296 0xAD77 +0x8297 0xAD78 +0x8298 0xAD79 +0x8299 0xAD7A +0x829A 0xAD7E +0x829B 0xAD80 +0x829C 0xAD83 +0x829D 0xAD84 +0x829E 0xAD85 +0x829F 0xAD86 +0x82A0 0xAD87 +0x82A1 0xAD8A +0x82A2 0xAD8B +0x82A3 0xAD8D +0x82A4 0xAD8E +0x82A5 0xAD8F +0x82A6 0xAD91 +0x82A7 0xAD92 +0x82A8 0xAD93 +0x82A9 0xAD94 +0x82AA 0xAD95 +0x82AB 0xAD96 +0x82AC 0xAD97 +0x82AD 0xAD98 +0x82AE 0xAD99 +0x82AF 0xAD9A +0x82B0 0xAD9B +0x82B1 0xAD9E +0x82B2 0xAD9F +0x82B3 0xADA0 +0x82B4 0xADA1 +0x82B5 0xADA2 +0x82B6 0xADA3 +0x82B7 0xADA5 +0x82B8 0xADA6 +0x82B9 0xADA7 +0x82BA 0xADA8 +0x82BB 0xADA9 +0x82BC 0xADAA +0x82BD 0xADAB +0x82BE 0xADAC +0x82BF 0xADAD +0x82C0 0xADAE +0x82C1 0xADAF +0x82C2 0xADB0 +0x82C3 0xADB1 +0x82C4 0xADB2 +0x82C5 0xADB3 +0x82C6 0xADB4 +0x82C7 0xADB5 +0x82C8 0xADB6 +0x82C9 0xADB8 +0x82CA 0xADB9 +0x82CB 0xADBA +0x82CC 0xADBB +0x82CD 0xADBC +0x82CE 0xADBD +0x82CF 0xADBE +0x82D0 0xADBF +0x82D1 0xADC2 +0x82D2 0xADC3 +0x82D3 0xADC5 +0x82D4 0xADC6 +0x82D5 0xADC7 +0x82D6 0xADC9 +0x82D7 0xADCA +0x82D8 0xADCB +0x82D9 0xADCC +0x82DA 0xADCD +0x82DB 0xADCE +0x82DC 0xADCF +0x82DD 0xADD2 +0x82DE 0xADD4 +0x82DF 0xADD5 +0x82E0 0xADD6 +0x82E1 0xADD7 +0x82E2 0xADD8 +0x82E3 0xADD9 +0x82E4 0xADDA +0x82E5 0xADDB +0x82E6 0xADDD +0x82E7 0xADDE +0x82E8 0xADDF +0x82E9 0xADE1 +0x82EA 0xADE2 +0x82EB 0xADE3 +0x82EC 0xADE5 +0x82ED 0xADE6 +0x82EE 0xADE7 +0x82EF 0xADE8 +0x82F0 0xADE9 +0x82F1 0xADEA +0x82F2 0xADEB +0x82F3 0xADEC +0x82F4 0xADED +0x82F5 0xADEE +0x82F6 0xADEF +0x82F7 0xADF0 +0x82F8 0xADF1 +0x82F9 0xADF2 +0x82FA 0xADF3 +0x82FB 0xADF4 +0x82FC 0xADF5 +0x82FD 0xADF6 +0x82FE 0xADF7 +0x8341 0xADFA +0x8342 0xADFB +0x8343 0xADFD +0x8344 0xADFE +0x8345 0xAE02 +0x8346 0xAE03 +0x8347 0xAE04 +0x8348 0xAE05 +0x8349 0xAE06 +0x834A 0xAE07 +0x834B 0xAE0A +0x834C 0xAE0C +0x834D 0xAE0E +0x834E 0xAE0F +0x834F 0xAE10 +0x8350 0xAE11 +0x8351 0xAE12 +0x8352 0xAE13 +0x8353 0xAE15 +0x8354 0xAE16 +0x8355 0xAE17 +0x8356 0xAE18 +0x8357 0xAE19 +0x8358 0xAE1A +0x8359 0xAE1B +0x835A 0xAE1C +0x8361 0xAE1D +0x8362 0xAE1E +0x8363 0xAE1F +0x8364 0xAE20 +0x8365 0xAE21 +0x8366 0xAE22 +0x8367 0xAE23 +0x8368 0xAE24 +0x8369 0xAE25 +0x836A 0xAE26 +0x836B 0xAE27 +0x836C 0xAE28 +0x836D 0xAE29 +0x836E 0xAE2A +0x836F 0xAE2B +0x8370 0xAE2C +0x8371 0xAE2D +0x8372 0xAE2E +0x8373 0xAE2F +0x8374 0xAE32 +0x8375 0xAE33 +0x8376 0xAE35 +0x8377 0xAE36 +0x8378 0xAE39 +0x8379 0xAE3B +0x837A 0xAE3C +0x8381 0xAE3D +0x8382 0xAE3E +0x8383 0xAE3F +0x8384 0xAE42 +0x8385 0xAE44 +0x8386 0xAE47 +0x8387 0xAE48 +0x8388 0xAE49 +0x8389 0xAE4B +0x838A 0xAE4F +0x838B 0xAE51 +0x838C 0xAE52 +0x838D 0xAE53 +0x838E 0xAE55 +0x838F 0xAE57 +0x8390 0xAE58 +0x8391 0xAE59 +0x8392 0xAE5A +0x8393 0xAE5B +0x8394 0xAE5E +0x8395 0xAE62 +0x8396 0xAE63 +0x8397 0xAE64 +0x8398 0xAE66 +0x8399 0xAE67 +0x839A 0xAE6A +0x839B 0xAE6B +0x839C 0xAE6D +0x839D 0xAE6E +0x839E 0xAE6F +0x839F 0xAE71 +0x83A0 0xAE72 +0x83A1 0xAE73 +0x83A2 0xAE74 +0x83A3 0xAE75 +0x83A4 0xAE76 +0x83A5 0xAE77 +0x83A6 0xAE7A +0x83A7 0xAE7E +0x83A8 0xAE7F +0x83A9 0xAE80 +0x83AA 0xAE81 +0x83AB 0xAE82 +0x83AC 0xAE83 +0x83AD 0xAE86 +0x83AE 0xAE87 +0x83AF 0xAE88 +0x83B0 0xAE89 +0x83B1 0xAE8A +0x83B2 0xAE8B +0x83B3 0xAE8D +0x83B4 0xAE8E +0x83B5 0xAE8F +0x83B6 0xAE90 +0x83B7 0xAE91 +0x83B8 0xAE92 +0x83B9 0xAE93 +0x83BA 0xAE94 +0x83BB 0xAE95 +0x83BC 0xAE96 +0x83BD 0xAE97 +0x83BE 0xAE98 +0x83BF 0xAE99 +0x83C0 0xAE9A +0x83C1 0xAE9B +0x83C2 0xAE9C +0x83C3 0xAE9D +0x83C4 0xAE9E +0x83C5 0xAE9F +0x83C6 0xAEA0 +0x83C7 0xAEA1 +0x83C8 0xAEA2 +0x83C9 0xAEA3 +0x83CA 0xAEA4 +0x83CB 0xAEA5 +0x83CC 0xAEA6 +0x83CD 0xAEA7 +0x83CE 0xAEA8 +0x83CF 0xAEA9 +0x83D0 0xAEAA +0x83D1 0xAEAB +0x83D2 0xAEAC +0x83D3 0xAEAD +0x83D4 0xAEAE +0x83D5 0xAEAF +0x83D6 0xAEB0 +0x83D7 0xAEB1 +0x83D8 0xAEB2 +0x83D9 0xAEB3 +0x83DA 0xAEB4 +0x83DB 0xAEB5 +0x83DC 0xAEB6 +0x83DD 0xAEB7 +0x83DE 0xAEB8 +0x83DF 0xAEB9 +0x83E0 0xAEBA +0x83E1 0xAEBB +0x83E2 0xAEBF +0x83E3 0xAEC1 +0x83E4 0xAEC2 +0x83E5 0xAEC3 +0x83E6 0xAEC5 +0x83E7 0xAEC6 +0x83E8 0xAEC7 +0x83E9 0xAEC8 +0x83EA 0xAEC9 +0x83EB 0xAECA +0x83EC 0xAECB +0x83ED 0xAECE +0x83EE 0xAED2 +0x83EF 0xAED3 +0x83F0 0xAED4 +0x83F1 0xAED5 +0x83F2 0xAED6 +0x83F3 0xAED7 +0x83F4 0xAEDA +0x83F5 0xAEDB +0x83F6 0xAEDD +0x83F7 0xAEDE +0x83F8 0xAEDF +0x83F9 0xAEE0 +0x83FA 0xAEE1 +0x83FB 0xAEE2 +0x83FC 0xAEE3 +0x83FD 0xAEE4 +0x83FE 0xAEE5 +0x8441 0xAEE6 +0x8442 0xAEE7 +0x8443 0xAEE9 +0x8444 0xAEEA +0x8445 0xAEEC +0x8446 0xAEEE +0x8447 0xAEEF +0x8448 0xAEF0 +0x8449 0xAEF1 +0x844A 0xAEF2 +0x844B 0xAEF3 +0x844C 0xAEF5 +0x844D 0xAEF6 +0x844E 0xAEF7 +0x844F 0xAEF9 +0x8450 0xAEFA +0x8451 0xAEFB +0x8452 0xAEFD +0x8453 0xAEFE +0x8454 0xAEFF +0x8455 0xAF00 +0x8456 0xAF01 +0x8457 0xAF02 +0x8458 0xAF03 +0x8459 0xAF04 +0x845A 0xAF05 +0x8461 0xAF06 +0x8462 0xAF09 +0x8463 0xAF0A +0x8464 0xAF0B +0x8465 0xAF0C +0x8466 0xAF0E +0x8467 0xAF0F +0x8468 0xAF11 +0x8469 0xAF12 +0x846A 0xAF13 +0x846B 0xAF14 +0x846C 0xAF15 +0x846D 0xAF16 +0x846E 0xAF17 +0x846F 0xAF18 +0x8470 0xAF19 +0x8471 0xAF1A +0x8472 0xAF1B +0x8473 0xAF1C +0x8474 0xAF1D +0x8475 0xAF1E +0x8476 0xAF1F +0x8477 0xAF20 +0x8478 0xAF21 +0x8479 0xAF22 +0x847A 0xAF23 +0x8481 0xAF24 +0x8482 0xAF25 +0x8483 0xAF26 +0x8484 0xAF27 +0x8485 0xAF28 +0x8486 0xAF29 +0x8487 0xAF2A +0x8488 0xAF2B +0x8489 0xAF2E +0x848A 0xAF2F +0x848B 0xAF31 +0x848C 0xAF33 +0x848D 0xAF35 +0x848E 0xAF36 +0x848F 0xAF37 +0x8490 0xAF38 +0x8491 0xAF39 +0x8492 0xAF3A +0x8493 0xAF3B +0x8494 0xAF3E +0x8495 0xAF40 +0x8496 0xAF44 +0x8497 0xAF45 +0x8498 0xAF46 +0x8499 0xAF47 +0x849A 0xAF4A +0x849B 0xAF4B +0x849C 0xAF4C +0x849D 0xAF4D +0x849E 0xAF4E +0x849F 0xAF4F +0x84A0 0xAF51 +0x84A1 0xAF52 +0x84A2 0xAF53 +0x84A3 0xAF54 +0x84A4 0xAF55 +0x84A5 0xAF56 +0x84A6 0xAF57 +0x84A7 0xAF58 +0x84A8 0xAF59 +0x84A9 0xAF5A +0x84AA 0xAF5B +0x84AB 0xAF5E +0x84AC 0xAF5F +0x84AD 0xAF60 +0x84AE 0xAF61 +0x84AF 0xAF62 +0x84B0 0xAF63 +0x84B1 0xAF66 +0x84B2 0xAF67 +0x84B3 0xAF68 +0x84B4 0xAF69 +0x84B5 0xAF6A +0x84B6 0xAF6B +0x84B7 0xAF6C +0x84B8 0xAF6D +0x84B9 0xAF6E +0x84BA 0xAF6F +0x84BB 0xAF70 +0x84BC 0xAF71 +0x84BD 0xAF72 +0x84BE 0xAF73 +0x84BF 0xAF74 +0x84C0 0xAF75 +0x84C1 0xAF76 +0x84C2 0xAF77 +0x84C3 0xAF78 +0x84C4 0xAF7A +0x84C5 0xAF7B +0x84C6 0xAF7C +0x84C7 0xAF7D +0x84C8 0xAF7E +0x84C9 0xAF7F +0x84CA 0xAF81 +0x84CB 0xAF82 +0x84CC 0xAF83 +0x84CD 0xAF85 +0x84CE 0xAF86 +0x84CF 0xAF87 +0x84D0 0xAF89 +0x84D1 0xAF8A +0x84D2 0xAF8B +0x84D3 0xAF8C +0x84D4 0xAF8D +0x84D5 0xAF8E +0x84D6 0xAF8F +0x84D7 0xAF92 +0x84D8 0xAF93 +0x84D9 0xAF94 +0x84DA 0xAF96 +0x84DB 0xAF97 +0x84DC 0xAF98 +0x84DD 0xAF99 +0x84DE 0xAF9A +0x84DF 0xAF9B +0x84E0 0xAF9D +0x84E1 0xAF9E +0x84E2 0xAF9F +0x84E3 0xAFA0 +0x84E4 0xAFA1 +0x84E5 0xAFA2 +0x84E6 0xAFA3 +0x84E7 0xAFA4 +0x84E8 0xAFA5 +0x84E9 0xAFA6 +0x84EA 0xAFA7 +0x84EB 0xAFA8 +0x84EC 0xAFA9 +0x84ED 0xAFAA +0x84EE 0xAFAB +0x84EF 0xAFAC +0x84F0 0xAFAD +0x84F1 0xAFAE +0x84F2 0xAFAF +0x84F3 0xAFB0 +0x84F4 0xAFB1 +0x84F5 0xAFB2 +0x84F6 0xAFB3 +0x84F7 0xAFB4 +0x84F8 0xAFB5 +0x84F9 0xAFB6 +0x84FA 0xAFB7 +0x84FB 0xAFBA +0x84FC 0xAFBB +0x84FD 0xAFBD +0x84FE 0xAFBE +0x8541 0xAFBF +0x8542 0xAFC1 +0x8543 0xAFC2 +0x8544 0xAFC3 +0x8545 0xAFC4 +0x8546 0xAFC5 +0x8547 0xAFC6 +0x8548 0xAFCA +0x8549 0xAFCC +0x854A 0xAFCF +0x854B 0xAFD0 +0x854C 0xAFD1 +0x854D 0xAFD2 +0x854E 0xAFD3 +0x854F 0xAFD5 +0x8550 0xAFD6 +0x8551 0xAFD7 +0x8552 0xAFD8 +0x8553 0xAFD9 +0x8554 0xAFDA +0x8555 0xAFDB +0x8556 0xAFDD +0x8557 0xAFDE +0x8558 0xAFDF +0x8559 0xAFE0 +0x855A 0xAFE1 +0x8561 0xAFE2 +0x8562 0xAFE3 +0x8563 0xAFE4 +0x8564 0xAFE5 +0x8565 0xAFE6 +0x8566 0xAFE7 +0x8567 0xAFEA +0x8568 0xAFEB +0x8569 0xAFEC +0x856A 0xAFED +0x856B 0xAFEE +0x856C 0xAFEF +0x856D 0xAFF2 +0x856E 0xAFF3 +0x856F 0xAFF5 +0x8570 0xAFF6 +0x8571 0xAFF7 +0x8572 0xAFF9 +0x8573 0xAFFA +0x8574 0xAFFB +0x8575 0xAFFC +0x8576 0xAFFD +0x8577 0xAFFE +0x8578 0xAFFF +0x8579 0xB002 +0x857A 0xB003 +0x8581 0xB005 +0x8582 0xB006 +0x8583 0xB007 +0x8584 0xB008 +0x8585 0xB009 +0x8586 0xB00A +0x8587 0xB00B +0x8588 0xB00D +0x8589 0xB00E +0x858A 0xB00F +0x858B 0xB011 +0x858C 0xB012 +0x858D 0xB013 +0x858E 0xB015 +0x858F 0xB016 +0x8590 0xB017 +0x8591 0xB018 +0x8592 0xB019 +0x8593 0xB01A +0x8594 0xB01B +0x8595 0xB01E +0x8596 0xB01F +0x8597 0xB020 +0x8598 0xB021 +0x8599 0xB022 +0x859A 0xB023 +0x859B 0xB024 +0x859C 0xB025 +0x859D 0xB026 +0x859E 0xB027 +0x859F 0xB029 +0x85A0 0xB02A +0x85A1 0xB02B +0x85A2 0xB02C +0x85A3 0xB02D +0x85A4 0xB02E +0x85A5 0xB02F +0x85A6 0xB030 +0x85A7 0xB031 +0x85A8 0xB032 +0x85A9 0xB033 +0x85AA 0xB034 +0x85AB 0xB035 +0x85AC 0xB036 +0x85AD 0xB037 +0x85AE 0xB038 +0x85AF 0xB039 +0x85B0 0xB03A +0x85B1 0xB03B +0x85B2 0xB03C +0x85B3 0xB03D +0x85B4 0xB03E +0x85B5 0xB03F +0x85B6 0xB040 +0x85B7 0xB041 +0x85B8 0xB042 +0x85B9 0xB043 +0x85BA 0xB046 +0x85BB 0xB047 +0x85BC 0xB049 +0x85BD 0xB04B +0x85BE 0xB04D +0x85BF 0xB04F +0x85C0 0xB050 +0x85C1 0xB051 +0x85C2 0xB052 +0x85C3 0xB056 +0x85C4 0xB058 +0x85C5 0xB05A +0x85C6 0xB05B +0x85C7 0xB05C +0x85C8 0xB05E +0x85C9 0xB05F +0x85CA 0xB060 +0x85CB 0xB061 +0x85CC 0xB062 +0x85CD 0xB063 +0x85CE 0xB064 +0x85CF 0xB065 +0x85D0 0xB066 +0x85D1 0xB067 +0x85D2 0xB068 +0x85D3 0xB069 +0x85D4 0xB06A +0x85D5 0xB06B +0x85D6 0xB06C +0x85D7 0xB06D +0x85D8 0xB06E +0x85D9 0xB06F +0x85DA 0xB070 +0x85DB 0xB071 +0x85DC 0xB072 +0x85DD 0xB073 +0x85DE 0xB074 +0x85DF 0xB075 +0x85E0 0xB076 +0x85E1 0xB077 +0x85E2 0xB078 +0x85E3 0xB079 +0x85E4 0xB07A +0x85E5 0xB07B +0x85E6 0xB07E +0x85E7 0xB07F +0x85E8 0xB081 +0x85E9 0xB082 +0x85EA 0xB083 +0x85EB 0xB085 +0x85EC 0xB086 +0x85ED 0xB087 +0x85EE 0xB088 +0x85EF 0xB089 +0x85F0 0xB08A +0x85F1 0xB08B +0x85F2 0xB08E +0x85F3 0xB090 +0x85F4 0xB092 +0x85F5 0xB093 +0x85F6 0xB094 +0x85F7 0xB095 +0x85F8 0xB096 +0x85F9 0xB097 +0x85FA 0xB09B +0x85FB 0xB09D +0x85FC 0xB09E +0x85FD 0xB0A3 +0x85FE 0xB0A4 +0x8641 0xB0A5 +0x8642 0xB0A6 +0x8643 0xB0A7 +0x8644 0xB0AA +0x8645 0xB0B0 +0x8646 0xB0B2 +0x8647 0xB0B6 +0x8648 0xB0B7 +0x8649 0xB0B9 +0x864A 0xB0BA +0x864B 0xB0BB +0x864C 0xB0BD +0x864D 0xB0BE +0x864E 0xB0BF +0x864F 0xB0C0 +0x8650 0xB0C1 +0x8651 0xB0C2 +0x8652 0xB0C3 +0x8653 0xB0C6 +0x8654 0xB0CA +0x8655 0xB0CB +0x8656 0xB0CC +0x8657 0xB0CD +0x8658 0xB0CE +0x8659 0xB0CF +0x865A 0xB0D2 +0x8661 0xB0D3 +0x8662 0xB0D5 +0x8663 0xB0D6 +0x8664 0xB0D7 +0x8665 0xB0D9 +0x8666 0xB0DA +0x8667 0xB0DB +0x8668 0xB0DC +0x8669 0xB0DD +0x866A 0xB0DE +0x866B 0xB0DF +0x866C 0xB0E1 +0x866D 0xB0E2 +0x866E 0xB0E3 +0x866F 0xB0E4 +0x8670 0xB0E6 +0x8671 0xB0E7 +0x8672 0xB0E8 +0x8673 0xB0E9 +0x8674 0xB0EA +0x8675 0xB0EB +0x8676 0xB0EC +0x8677 0xB0ED +0x8678 0xB0EE +0x8679 0xB0EF +0x867A 0xB0F0 +0x8681 0xB0F1 +0x8682 0xB0F2 +0x8683 0xB0F3 +0x8684 0xB0F4 +0x8685 0xB0F5 +0x8686 0xB0F6 +0x8687 0xB0F7 +0x8688 0xB0F8 +0x8689 0xB0F9 +0x868A 0xB0FA +0x868B 0xB0FB +0x868C 0xB0FC +0x868D 0xB0FD +0x868E 0xB0FE +0x868F 0xB0FF +0x8690 0xB100 +0x8691 0xB101 +0x8692 0xB102 +0x8693 0xB103 +0x8694 0xB104 +0x8695 0xB105 +0x8696 0xB106 +0x8697 0xB107 +0x8698 0xB10A +0x8699 0xB10D +0x869A 0xB10E +0x869B 0xB10F +0x869C 0xB111 +0x869D 0xB114 +0x869E 0xB115 +0x869F 0xB116 +0x86A0 0xB117 +0x86A1 0xB11A +0x86A2 0xB11E +0x86A3 0xB11F +0x86A4 0xB120 +0x86A5 0xB121 +0x86A6 0xB122 +0x86A7 0xB126 +0x86A8 0xB127 +0x86A9 0xB129 +0x86AA 0xB12A +0x86AB 0xB12B +0x86AC 0xB12D +0x86AD 0xB12E +0x86AE 0xB12F +0x86AF 0xB130 +0x86B0 0xB131 +0x86B1 0xB132 +0x86B2 0xB133 +0x86B3 0xB136 +0x86B4 0xB13A +0x86B5 0xB13B +0x86B6 0xB13C +0x86B7 0xB13D +0x86B8 0xB13E +0x86B9 0xB13F +0x86BA 0xB142 +0x86BB 0xB143 +0x86BC 0xB145 +0x86BD 0xB146 +0x86BE 0xB147 +0x86BF 0xB149 +0x86C0 0xB14A +0x86C1 0xB14B +0x86C2 0xB14C +0x86C3 0xB14D +0x86C4 0xB14E +0x86C5 0xB14F +0x86C6 0xB152 +0x86C7 0xB153 +0x86C8 0xB156 +0x86C9 0xB157 +0x86CA 0xB159 +0x86CB 0xB15A +0x86CC 0xB15B +0x86CD 0xB15D +0x86CE 0xB15E +0x86CF 0xB15F +0x86D0 0xB161 +0x86D1 0xB162 +0x86D2 0xB163 +0x86D3 0xB164 +0x86D4 0xB165 +0x86D5 0xB166 +0x86D6 0xB167 +0x86D7 0xB168 +0x86D8 0xB169 +0x86D9 0xB16A +0x86DA 0xB16B +0x86DB 0xB16C +0x86DC 0xB16D +0x86DD 0xB16E +0x86DE 0xB16F +0x86DF 0xB170 +0x86E0 0xB171 +0x86E1 0xB172 +0x86E2 0xB173 +0x86E3 0xB174 +0x86E4 0xB175 +0x86E5 0xB176 +0x86E6 0xB177 +0x86E7 0xB17A +0x86E8 0xB17B +0x86E9 0xB17D +0x86EA 0xB17E +0x86EB 0xB17F +0x86EC 0xB181 +0x86ED 0xB183 +0x86EE 0xB184 +0x86EF 0xB185 +0x86F0 0xB186 +0x86F1 0xB187 +0x86F2 0xB18A +0x86F3 0xB18C +0x86F4 0xB18E +0x86F5 0xB18F +0x86F6 0xB190 +0x86F7 0xB191 +0x86F8 0xB195 +0x86F9 0xB196 +0x86FA 0xB197 +0x86FB 0xB199 +0x86FC 0xB19A +0x86FD 0xB19B +0x86FE 0xB19D +0x8741 0xB19E +0x8742 0xB19F +0x8743 0xB1A0 +0x8744 0xB1A1 +0x8745 0xB1A2 +0x8746 0xB1A3 +0x8747 0xB1A4 +0x8748 0xB1A5 +0x8749 0xB1A6 +0x874A 0xB1A7 +0x874B 0xB1A9 +0x874C 0xB1AA +0x874D 0xB1AB +0x874E 0xB1AC +0x874F 0xB1AD +0x8750 0xB1AE +0x8751 0xB1AF +0x8752 0xB1B0 +0x8753 0xB1B1 +0x8754 0xB1B2 +0x8755 0xB1B3 +0x8756 0xB1B4 +0x8757 0xB1B5 +0x8758 0xB1B6 +0x8759 0xB1B7 +0x875A 0xB1B8 +0x8761 0xB1B9 +0x8762 0xB1BA +0x8763 0xB1BB +0x8764 0xB1BC +0x8765 0xB1BD +0x8766 0xB1BE +0x8767 0xB1BF +0x8768 0xB1C0 +0x8769 0xB1C1 +0x876A 0xB1C2 +0x876B 0xB1C3 +0x876C 0xB1C4 +0x876D 0xB1C5 +0x876E 0xB1C6 +0x876F 0xB1C7 +0x8770 0xB1C8 +0x8771 0xB1C9 +0x8772 0xB1CA +0x8773 0xB1CB +0x8774 0xB1CD +0x8775 0xB1CE +0x8776 0xB1CF +0x8777 0xB1D1 +0x8778 0xB1D2 +0x8779 0xB1D3 +0x877A 0xB1D5 +0x8781 0xB1D6 +0x8782 0xB1D7 +0x8783 0xB1D8 +0x8784 0xB1D9 +0x8785 0xB1DA +0x8786 0xB1DB +0x8787 0xB1DE +0x8788 0xB1E0 +0x8789 0xB1E1 +0x878A 0xB1E2 +0x878B 0xB1E3 +0x878C 0xB1E4 +0x878D 0xB1E5 +0x878E 0xB1E6 +0x878F 0xB1E7 +0x8790 0xB1EA +0x8791 0xB1EB +0x8792 0xB1ED +0x8793 0xB1EE +0x8794 0xB1EF +0x8795 0xB1F1 +0x8796 0xB1F2 +0x8797 0xB1F3 +0x8798 0xB1F4 +0x8799 0xB1F5 +0x879A 0xB1F6 +0x879B 0xB1F7 +0x879C 0xB1F8 +0x879D 0xB1FA +0x879E 0xB1FC +0x879F 0xB1FE +0x87A0 0xB1FF +0x87A1 0xB200 +0x87A2 0xB201 +0x87A3 0xB202 +0x87A4 0xB203 +0x87A5 0xB206 +0x87A6 0xB207 +0x87A7 0xB209 +0x87A8 0xB20A +0x87A9 0xB20D +0x87AA 0xB20E +0x87AB 0xB20F +0x87AC 0xB210 +0x87AD 0xB211 +0x87AE 0xB212 +0x87AF 0xB213 +0x87B0 0xB216 +0x87B1 0xB218 +0x87B2 0xB21A +0x87B3 0xB21B +0x87B4 0xB21C +0x87B5 0xB21D +0x87B6 0xB21E +0x87B7 0xB21F +0x87B8 0xB221 +0x87B9 0xB222 +0x87BA 0xB223 +0x87BB 0xB224 +0x87BC 0xB225 +0x87BD 0xB226 +0x87BE 0xB227 +0x87BF 0xB228 +0x87C0 0xB229 +0x87C1 0xB22A +0x87C2 0xB22B +0x87C3 0xB22C +0x87C4 0xB22D +0x87C5 0xB22E +0x87C6 0xB22F +0x87C7 0xB230 +0x87C8 0xB231 +0x87C9 0xB232 +0x87CA 0xB233 +0x87CB 0xB235 +0x87CC 0xB236 +0x87CD 0xB237 +0x87CE 0xB238 +0x87CF 0xB239 +0x87D0 0xB23A +0x87D1 0xB23B +0x87D2 0xB23D +0x87D3 0xB23E +0x87D4 0xB23F +0x87D5 0xB240 +0x87D6 0xB241 +0x87D7 0xB242 +0x87D8 0xB243 +0x87D9 0xB244 +0x87DA 0xB245 +0x87DB 0xB246 +0x87DC 0xB247 +0x87DD 0xB248 +0x87DE 0xB249 +0x87DF 0xB24A +0x87E0 0xB24B +0x87E1 0xB24C +0x87E2 0xB24D +0x87E3 0xB24E +0x87E4 0xB24F +0x87E5 0xB250 +0x87E6 0xB251 +0x87E7 0xB252 +0x87E8 0xB253 +0x87E9 0xB254 +0x87EA 0xB255 +0x87EB 0xB256 +0x87EC 0xB257 +0x87ED 0xB259 +0x87EE 0xB25A +0x87EF 0xB25B +0x87F0 0xB25D +0x87F1 0xB25E +0x87F2 0xB25F +0x87F3 0xB261 +0x87F4 0xB262 +0x87F5 0xB263 +0x87F6 0xB264 +0x87F7 0xB265 +0x87F8 0xB266 +0x87F9 0xB267 +0x87FA 0xB26A +0x87FB 0xB26B +0x87FC 0xB26C +0x87FD 0xB26D +0x87FE 0xB26E +0x8841 0xB26F +0x8842 0xB270 +0x8843 0xB271 +0x8844 0xB272 +0x8845 0xB273 +0x8846 0xB276 +0x8847 0xB277 +0x8848 0xB278 +0x8849 0xB279 +0x884A 0xB27A +0x884B 0xB27B +0x884C 0xB27D +0x884D 0xB27E +0x884E 0xB27F +0x884F 0xB280 +0x8850 0xB281 +0x8851 0xB282 +0x8852 0xB283 +0x8853 0xB286 +0x8854 0xB287 +0x8855 0xB288 +0x8856 0xB28A +0x8857 0xB28B +0x8858 0xB28C +0x8859 0xB28D +0x885A 0xB28E +0x8861 0xB28F +0x8862 0xB292 +0x8863 0xB293 +0x8864 0xB295 +0x8865 0xB296 +0x8866 0xB297 +0x8867 0xB29B +0x8868 0xB29C +0x8869 0xB29D +0x886A 0xB29E +0x886B 0xB29F +0x886C 0xB2A2 +0x886D 0xB2A4 +0x886E 0xB2A7 +0x886F 0xB2A8 +0x8870 0xB2A9 +0x8871 0xB2AB +0x8872 0xB2AD +0x8873 0xB2AE +0x8874 0xB2AF +0x8875 0xB2B1 +0x8876 0xB2B2 +0x8877 0xB2B3 +0x8878 0xB2B5 +0x8879 0xB2B6 +0x887A 0xB2B7 +0x8881 0xB2B8 +0x8882 0xB2B9 +0x8883 0xB2BA +0x8884 0xB2BB +0x8885 0xB2BC +0x8886 0xB2BD +0x8887 0xB2BE +0x8888 0xB2BF +0x8889 0xB2C0 +0x888A 0xB2C1 +0x888B 0xB2C2 +0x888C 0xB2C3 +0x888D 0xB2C4 +0x888E 0xB2C5 +0x888F 0xB2C6 +0x8890 0xB2C7 +0x8891 0xB2CA +0x8892 0xB2CB +0x8893 0xB2CD +0x8894 0xB2CE +0x8895 0xB2CF +0x8896 0xB2D1 +0x8897 0xB2D3 +0x8898 0xB2D4 +0x8899 0xB2D5 +0x889A 0xB2D6 +0x889B 0xB2D7 +0x889C 0xB2DA +0x889D 0xB2DC +0x889E 0xB2DE +0x889F 0xB2DF +0x88A0 0xB2E0 +0x88A1 0xB2E1 +0x88A2 0xB2E3 +0x88A3 0xB2E7 +0x88A4 0xB2E9 +0x88A5 0xB2EA +0x88A6 0xB2F0 +0x88A7 0xB2F1 +0x88A8 0xB2F2 +0x88A9 0xB2F6 +0x88AA 0xB2FC +0x88AB 0xB2FD +0x88AC 0xB2FE +0x88AD 0xB302 +0x88AE 0xB303 +0x88AF 0xB305 +0x88B0 0xB306 +0x88B1 0xB307 +0x88B2 0xB309 +0x88B3 0xB30A +0x88B4 0xB30B +0x88B5 0xB30C +0x88B6 0xB30D +0x88B7 0xB30E +0x88B8 0xB30F +0x88B9 0xB312 +0x88BA 0xB316 +0x88BB 0xB317 +0x88BC 0xB318 +0x88BD 0xB319 +0x88BE 0xB31A +0x88BF 0xB31B +0x88C0 0xB31D +0x88C1 0xB31E +0x88C2 0xB31F +0x88C3 0xB320 +0x88C4 0xB321 +0x88C5 0xB322 +0x88C6 0xB323 +0x88C7 0xB324 +0x88C8 0xB325 +0x88C9 0xB326 +0x88CA 0xB327 +0x88CB 0xB328 +0x88CC 0xB329 +0x88CD 0xB32A +0x88CE 0xB32B +0x88CF 0xB32C +0x88D0 0xB32D +0x88D1 0xB32E +0x88D2 0xB32F +0x88D3 0xB330 +0x88D4 0xB331 +0x88D5 0xB332 +0x88D6 0xB333 +0x88D7 0xB334 +0x88D8 0xB335 +0x88D9 0xB336 +0x88DA 0xB337 +0x88DB 0xB338 +0x88DC 0xB339 +0x88DD 0xB33A +0x88DE 0xB33B +0x88DF 0xB33C +0x88E0 0xB33D +0x88E1 0xB33E +0x88E2 0xB33F +0x88E3 0xB340 +0x88E4 0xB341 +0x88E5 0xB342 +0x88E6 0xB343 +0x88E7 0xB344 +0x88E8 0xB345 +0x88E9 0xB346 +0x88EA 0xB347 +0x88EB 0xB348 +0x88EC 0xB349 +0x88ED 0xB34A +0x88EE 0xB34B +0x88EF 0xB34C +0x88F0 0xB34D +0x88F1 0xB34E +0x88F2 0xB34F +0x88F3 0xB350 +0x88F4 0xB351 +0x88F5 0xB352 +0x88F6 0xB353 +0x88F7 0xB357 +0x88F8 0xB359 +0x88F9 0xB35A +0x88FA 0xB35D +0x88FB 0xB360 +0x88FC 0xB361 +0x88FD 0xB362 +0x88FE 0xB363 +0x8941 0xB366 +0x8942 0xB368 +0x8943 0xB36A +0x8944 0xB36C +0x8945 0xB36D +0x8946 0xB36F +0x8947 0xB372 +0x8948 0xB373 +0x8949 0xB375 +0x894A 0xB376 +0x894B 0xB377 +0x894C 0xB379 +0x894D 0xB37A +0x894E 0xB37B +0x894F 0xB37C +0x8950 0xB37D +0x8951 0xB37E +0x8952 0xB37F +0x8953 0xB382 +0x8954 0xB386 +0x8955 0xB387 +0x8956 0xB388 +0x8957 0xB389 +0x8958 0xB38A +0x8959 0xB38B +0x895A 0xB38D +0x8961 0xB38E +0x8962 0xB38F +0x8963 0xB391 +0x8964 0xB392 +0x8965 0xB393 +0x8966 0xB395 +0x8967 0xB396 +0x8968 0xB397 +0x8969 0xB398 +0x896A 0xB399 +0x896B 0xB39A +0x896C 0xB39B +0x896D 0xB39C +0x896E 0xB39D +0x896F 0xB39E +0x8970 0xB39F +0x8971 0xB3A2 +0x8972 0xB3A3 +0x8973 0xB3A4 +0x8974 0xB3A5 +0x8975 0xB3A6 +0x8976 0xB3A7 +0x8977 0xB3A9 +0x8978 0xB3AA +0x8979 0xB3AB +0x897A 0xB3AD +0x8981 0xB3AE +0x8982 0xB3AF +0x8983 0xB3B0 +0x8984 0xB3B1 +0x8985 0xB3B2 +0x8986 0xB3B3 +0x8987 0xB3B4 +0x8988 0xB3B5 +0x8989 0xB3B6 +0x898A 0xB3B7 +0x898B 0xB3B8 +0x898C 0xB3B9 +0x898D 0xB3BA +0x898E 0xB3BB +0x898F 0xB3BC +0x8990 0xB3BD +0x8991 0xB3BE +0x8992 0xB3BF +0x8993 0xB3C0 +0x8994 0xB3C1 +0x8995 0xB3C2 +0x8996 0xB3C3 +0x8997 0xB3C6 +0x8998 0xB3C7 +0x8999 0xB3C9 +0x899A 0xB3CA +0x899B 0xB3CD +0x899C 0xB3CF +0x899D 0xB3D1 +0x899E 0xB3D2 +0x899F 0xB3D3 +0x89A0 0xB3D6 +0x89A1 0xB3D8 +0x89A2 0xB3DA +0x89A3 0xB3DC +0x89A4 0xB3DE +0x89A5 0xB3DF +0x89A6 0xB3E1 +0x89A7 0xB3E2 +0x89A8 0xB3E3 +0x89A9 0xB3E5 +0x89AA 0xB3E6 +0x89AB 0xB3E7 +0x89AC 0xB3E9 +0x89AD 0xB3EA +0x89AE 0xB3EB +0x89AF 0xB3EC +0x89B0 0xB3ED +0x89B1 0xB3EE +0x89B2 0xB3EF +0x89B3 0xB3F0 +0x89B4 0xB3F1 +0x89B5 0xB3F2 +0x89B6 0xB3F3 +0x89B7 0xB3F4 +0x89B8 0xB3F5 +0x89B9 0xB3F6 +0x89BA 0xB3F7 +0x89BB 0xB3F8 +0x89BC 0xB3F9 +0x89BD 0xB3FA +0x89BE 0xB3FB +0x89BF 0xB3FD +0x89C0 0xB3FE +0x89C1 0xB3FF +0x89C2 0xB400 +0x89C3 0xB401 +0x89C4 0xB402 +0x89C5 0xB403 +0x89C6 0xB404 +0x89C7 0xB405 +0x89C8 0xB406 +0x89C9 0xB407 +0x89CA 0xB408 +0x89CB 0xB409 +0x89CC 0xB40A +0x89CD 0xB40B +0x89CE 0xB40C +0x89CF 0xB40D +0x89D0 0xB40E +0x89D1 0xB40F +0x89D2 0xB411 +0x89D3 0xB412 +0x89D4 0xB413 +0x89D5 0xB414 +0x89D6 0xB415 +0x89D7 0xB416 +0x89D8 0xB417 +0x89D9 0xB419 +0x89DA 0xB41A +0x89DB 0xB41B +0x89DC 0xB41D +0x89DD 0xB41E +0x89DE 0xB41F +0x89DF 0xB421 +0x89E0 0xB422 +0x89E1 0xB423 +0x89E2 0xB424 +0x89E3 0xB425 +0x89E4 0xB426 +0x89E5 0xB427 +0x89E6 0xB42A +0x89E7 0xB42C +0x89E8 0xB42D +0x89E9 0xB42E +0x89EA 0xB42F +0x89EB 0xB430 +0x89EC 0xB431 +0x89ED 0xB432 +0x89EE 0xB433 +0x89EF 0xB435 +0x89F0 0xB436 +0x89F1 0xB437 +0x89F2 0xB438 +0x89F3 0xB439 +0x89F4 0xB43A +0x89F5 0xB43B +0x89F6 0xB43C +0x89F7 0xB43D +0x89F8 0xB43E +0x89F9 0xB43F +0x89FA 0xB440 +0x89FB 0xB441 +0x89FC 0xB442 +0x89FD 0xB443 +0x89FE 0xB444 +0x8A41 0xB445 +0x8A42 0xB446 +0x8A43 0xB447 +0x8A44 0xB448 +0x8A45 0xB449 +0x8A46 0xB44A +0x8A47 0xB44B +0x8A48 0xB44C +0x8A49 0xB44D +0x8A4A 0xB44E +0x8A4B 0xB44F +0x8A4C 0xB452 +0x8A4D 0xB453 +0x8A4E 0xB455 +0x8A4F 0xB456 +0x8A50 0xB457 +0x8A51 0xB459 +0x8A52 0xB45A +0x8A53 0xB45B +0x8A54 0xB45C +0x8A55 0xB45D +0x8A56 0xB45E +0x8A57 0xB45F +0x8A58 0xB462 +0x8A59 0xB464 +0x8A5A 0xB466 +0x8A61 0xB467 +0x8A62 0xB468 +0x8A63 0xB469 +0x8A64 0xB46A +0x8A65 0xB46B +0x8A66 0xB46D +0x8A67 0xB46E +0x8A68 0xB46F +0x8A69 0xB470 +0x8A6A 0xB471 +0x8A6B 0xB472 +0x8A6C 0xB473 +0x8A6D 0xB474 +0x8A6E 0xB475 +0x8A6F 0xB476 +0x8A70 0xB477 +0x8A71 0xB478 +0x8A72 0xB479 +0x8A73 0xB47A +0x8A74 0xB47B +0x8A75 0xB47C +0x8A76 0xB47D +0x8A77 0xB47E +0x8A78 0xB47F +0x8A79 0xB481 +0x8A7A 0xB482 +0x8A81 0xB483 +0x8A82 0xB484 +0x8A83 0xB485 +0x8A84 0xB486 +0x8A85 0xB487 +0x8A86 0xB489 +0x8A87 0xB48A +0x8A88 0xB48B +0x8A89 0xB48C +0x8A8A 0xB48D +0x8A8B 0xB48E +0x8A8C 0xB48F +0x8A8D 0xB490 +0x8A8E 0xB491 +0x8A8F 0xB492 +0x8A90 0xB493 +0x8A91 0xB494 +0x8A92 0xB495 +0x8A93 0xB496 +0x8A94 0xB497 +0x8A95 0xB498 +0x8A96 0xB499 +0x8A97 0xB49A +0x8A98 0xB49B +0x8A99 0xB49C +0x8A9A 0xB49E +0x8A9B 0xB49F +0x8A9C 0xB4A0 +0x8A9D 0xB4A1 +0x8A9E 0xB4A2 +0x8A9F 0xB4A3 +0x8AA0 0xB4A5 +0x8AA1 0xB4A6 +0x8AA2 0xB4A7 +0x8AA3 0xB4A9 +0x8AA4 0xB4AA +0x8AA5 0xB4AB +0x8AA6 0xB4AD +0x8AA7 0xB4AE +0x8AA8 0xB4AF +0x8AA9 0xB4B0 +0x8AAA 0xB4B1 +0x8AAB 0xB4B2 +0x8AAC 0xB4B3 +0x8AAD 0xB4B4 +0x8AAE 0xB4B6 +0x8AAF 0xB4B8 +0x8AB0 0xB4BA +0x8AB1 0xB4BB +0x8AB2 0xB4BC +0x8AB3 0xB4BD +0x8AB4 0xB4BE +0x8AB5 0xB4BF +0x8AB6 0xB4C1 +0x8AB7 0xB4C2 +0x8AB8 0xB4C3 +0x8AB9 0xB4C5 +0x8ABA 0xB4C6 +0x8ABB 0xB4C7 +0x8ABC 0xB4C9 +0x8ABD 0xB4CA +0x8ABE 0xB4CB +0x8ABF 0xB4CC +0x8AC0 0xB4CD +0x8AC1 0xB4CE +0x8AC2 0xB4CF +0x8AC3 0xB4D1 +0x8AC4 0xB4D2 +0x8AC5 0xB4D3 +0x8AC6 0xB4D4 +0x8AC7 0xB4D6 +0x8AC8 0xB4D7 +0x8AC9 0xB4D8 +0x8ACA 0xB4D9 +0x8ACB 0xB4DA +0x8ACC 0xB4DB +0x8ACD 0xB4DE +0x8ACE 0xB4DF +0x8ACF 0xB4E1 +0x8AD0 0xB4E2 +0x8AD1 0xB4E5 +0x8AD2 0xB4E7 +0x8AD3 0xB4E8 +0x8AD4 0xB4E9 +0x8AD5 0xB4EA +0x8AD6 0xB4EB +0x8AD7 0xB4EE +0x8AD8 0xB4F0 +0x8AD9 0xB4F2 +0x8ADA 0xB4F3 +0x8ADB 0xB4F4 +0x8ADC 0xB4F5 +0x8ADD 0xB4F6 +0x8ADE 0xB4F7 +0x8ADF 0xB4F9 +0x8AE0 0xB4FA +0x8AE1 0xB4FB +0x8AE2 0xB4FC +0x8AE3 0xB4FD +0x8AE4 0xB4FE +0x8AE5 0xB4FF +0x8AE6 0xB500 +0x8AE7 0xB501 +0x8AE8 0xB502 +0x8AE9 0xB503 +0x8AEA 0xB504 +0x8AEB 0xB505 +0x8AEC 0xB506 +0x8AED 0xB507 +0x8AEE 0xB508 +0x8AEF 0xB509 +0x8AF0 0xB50A +0x8AF1 0xB50B +0x8AF2 0xB50C +0x8AF3 0xB50D +0x8AF4 0xB50E +0x8AF5 0xB50F +0x8AF6 0xB510 +0x8AF7 0xB511 +0x8AF8 0xB512 +0x8AF9 0xB513 +0x8AFA 0xB516 +0x8AFB 0xB517 +0x8AFC 0xB519 +0x8AFD 0xB51A +0x8AFE 0xB51D +0x8B41 0xB51E +0x8B42 0xB51F +0x8B43 0xB520 +0x8B44 0xB521 +0x8B45 0xB522 +0x8B46 0xB523 +0x8B47 0xB526 +0x8B48 0xB52B +0x8B49 0xB52C +0x8B4A 0xB52D +0x8B4B 0xB52E +0x8B4C 0xB52F +0x8B4D 0xB532 +0x8B4E 0xB533 +0x8B4F 0xB535 +0x8B50 0xB536 +0x8B51 0xB537 +0x8B52 0xB539 +0x8B53 0xB53A +0x8B54 0xB53B +0x8B55 0xB53C +0x8B56 0xB53D +0x8B57 0xB53E +0x8B58 0xB53F +0x8B59 0xB542 +0x8B5A 0xB546 +0x8B61 0xB547 +0x8B62 0xB548 +0x8B63 0xB549 +0x8B64 0xB54A +0x8B65 0xB54E +0x8B66 0xB54F +0x8B67 0xB551 +0x8B68 0xB552 +0x8B69 0xB553 +0x8B6A 0xB555 +0x8B6B 0xB556 +0x8B6C 0xB557 +0x8B6D 0xB558 +0x8B6E 0xB559 +0x8B6F 0xB55A +0x8B70 0xB55B +0x8B71 0xB55E +0x8B72 0xB562 +0x8B73 0xB563 +0x8B74 0xB564 +0x8B75 0xB565 +0x8B76 0xB566 +0x8B77 0xB567 +0x8B78 0xB568 +0x8B79 0xB569 +0x8B7A 0xB56A +0x8B81 0xB56B +0x8B82 0xB56C +0x8B83 0xB56D +0x8B84 0xB56E +0x8B85 0xB56F +0x8B86 0xB570 +0x8B87 0xB571 +0x8B88 0xB572 +0x8B89 0xB573 +0x8B8A 0xB574 +0x8B8B 0xB575 +0x8B8C 0xB576 +0x8B8D 0xB577 +0x8B8E 0xB578 +0x8B8F 0xB579 +0x8B90 0xB57A +0x8B91 0xB57B +0x8B92 0xB57C +0x8B93 0xB57D +0x8B94 0xB57E +0x8B95 0xB57F +0x8B96 0xB580 +0x8B97 0xB581 +0x8B98 0xB582 +0x8B99 0xB583 +0x8B9A 0xB584 +0x8B9B 0xB585 +0x8B9C 0xB586 +0x8B9D 0xB587 +0x8B9E 0xB588 +0x8B9F 0xB589 +0x8BA0 0xB58A +0x8BA1 0xB58B +0x8BA2 0xB58C +0x8BA3 0xB58D +0x8BA4 0xB58E +0x8BA5 0xB58F +0x8BA6 0xB590 +0x8BA7 0xB591 +0x8BA8 0xB592 +0x8BA9 0xB593 +0x8BAA 0xB594 +0x8BAB 0xB595 +0x8BAC 0xB596 +0x8BAD 0xB597 +0x8BAE 0xB598 +0x8BAF 0xB599 +0x8BB0 0xB59A +0x8BB1 0xB59B +0x8BB2 0xB59C +0x8BB3 0xB59D +0x8BB4 0xB59E +0x8BB5 0xB59F +0x8BB6 0xB5A2 +0x8BB7 0xB5A3 +0x8BB8 0xB5A5 +0x8BB9 0xB5A6 +0x8BBA 0xB5A7 +0x8BBB 0xB5A9 +0x8BBC 0xB5AC +0x8BBD 0xB5AD +0x8BBE 0xB5AE +0x8BBF 0xB5AF +0x8BC0 0xB5B2 +0x8BC1 0xB5B6 +0x8BC2 0xB5B7 +0x8BC3 0xB5B8 +0x8BC4 0xB5B9 +0x8BC5 0xB5BA +0x8BC6 0xB5BE +0x8BC7 0xB5BF +0x8BC8 0xB5C1 +0x8BC9 0xB5C2 +0x8BCA 0xB5C3 +0x8BCB 0xB5C5 +0x8BCC 0xB5C6 +0x8BCD 0xB5C7 +0x8BCE 0xB5C8 +0x8BCF 0xB5C9 +0x8BD0 0xB5CA +0x8BD1 0xB5CB +0x8BD2 0xB5CE +0x8BD3 0xB5D2 +0x8BD4 0xB5D3 +0x8BD5 0xB5D4 +0x8BD6 0xB5D5 +0x8BD7 0xB5D6 +0x8BD8 0xB5D7 +0x8BD9 0xB5D9 +0x8BDA 0xB5DA +0x8BDB 0xB5DB +0x8BDC 0xB5DC +0x8BDD 0xB5DD +0x8BDE 0xB5DE +0x8BDF 0xB5DF +0x8BE0 0xB5E0 +0x8BE1 0xB5E1 +0x8BE2 0xB5E2 +0x8BE3 0xB5E3 +0x8BE4 0xB5E4 +0x8BE5 0xB5E5 +0x8BE6 0xB5E6 +0x8BE7 0xB5E7 +0x8BE8 0xB5E8 +0x8BE9 0xB5E9 +0x8BEA 0xB5EA +0x8BEB 0xB5EB +0x8BEC 0xB5ED +0x8BED 0xB5EE +0x8BEE 0xB5EF +0x8BEF 0xB5F0 +0x8BF0 0xB5F1 +0x8BF1 0xB5F2 +0x8BF2 0xB5F3 +0x8BF3 0xB5F4 +0x8BF4 0xB5F5 +0x8BF5 0xB5F6 +0x8BF6 0xB5F7 +0x8BF7 0xB5F8 +0x8BF8 0xB5F9 +0x8BF9 0xB5FA +0x8BFA 0xB5FB +0x8BFB 0xB5FC +0x8BFC 0xB5FD +0x8BFD 0xB5FE +0x8BFE 0xB5FF +0x8C41 0xB600 +0x8C42 0xB601 +0x8C43 0xB602 +0x8C44 0xB603 +0x8C45 0xB604 +0x8C46 0xB605 +0x8C47 0xB606 +0x8C48 0xB607 +0x8C49 0xB608 +0x8C4A 0xB609 +0x8C4B 0xB60A +0x8C4C 0xB60B +0x8C4D 0xB60C +0x8C4E 0xB60D +0x8C4F 0xB60E +0x8C50 0xB60F +0x8C51 0xB612 +0x8C52 0xB613 +0x8C53 0xB615 +0x8C54 0xB616 +0x8C55 0xB617 +0x8C56 0xB619 +0x8C57 0xB61A +0x8C58 0xB61B +0x8C59 0xB61C +0x8C5A 0xB61D +0x8C61 0xB61E +0x8C62 0xB61F +0x8C63 0xB620 +0x8C64 0xB621 +0x8C65 0xB622 +0x8C66 0xB623 +0x8C67 0xB624 +0x8C68 0xB626 +0x8C69 0xB627 +0x8C6A 0xB628 +0x8C6B 0xB629 +0x8C6C 0xB62A +0x8C6D 0xB62B +0x8C6E 0xB62D +0x8C6F 0xB62E +0x8C70 0xB62F +0x8C71 0xB630 +0x8C72 0xB631 +0x8C73 0xB632 +0x8C74 0xB633 +0x8C75 0xB635 +0x8C76 0xB636 +0x8C77 0xB637 +0x8C78 0xB638 +0x8C79 0xB639 +0x8C7A 0xB63A +0x8C81 0xB63B +0x8C82 0xB63C +0x8C83 0xB63D +0x8C84 0xB63E +0x8C85 0xB63F +0x8C86 0xB640 +0x8C87 0xB641 +0x8C88 0xB642 +0x8C89 0xB643 +0x8C8A 0xB644 +0x8C8B 0xB645 +0x8C8C 0xB646 +0x8C8D 0xB647 +0x8C8E 0xB649 +0x8C8F 0xB64A +0x8C90 0xB64B +0x8C91 0xB64C +0x8C92 0xB64D +0x8C93 0xB64E +0x8C94 0xB64F +0x8C95 0xB650 +0x8C96 0xB651 +0x8C97 0xB652 +0x8C98 0xB653 +0x8C99 0xB654 +0x8C9A 0xB655 +0x8C9B 0xB656 +0x8C9C 0xB657 +0x8C9D 0xB658 +0x8C9E 0xB659 +0x8C9F 0xB65A +0x8CA0 0xB65B +0x8CA1 0xB65C +0x8CA2 0xB65D +0x8CA3 0xB65E +0x8CA4 0xB65F +0x8CA5 0xB660 +0x8CA6 0xB661 +0x8CA7 0xB662 +0x8CA8 0xB663 +0x8CA9 0xB665 +0x8CAA 0xB666 +0x8CAB 0xB667 +0x8CAC 0xB669 +0x8CAD 0xB66A +0x8CAE 0xB66B +0x8CAF 0xB66C +0x8CB0 0xB66D +0x8CB1 0xB66E +0x8CB2 0xB66F +0x8CB3 0xB670 +0x8CB4 0xB671 +0x8CB5 0xB672 +0x8CB6 0xB673 +0x8CB7 0xB674 +0x8CB8 0xB675 +0x8CB9 0xB676 +0x8CBA 0xB677 +0x8CBB 0xB678 +0x8CBC 0xB679 +0x8CBD 0xB67A +0x8CBE 0xB67B +0x8CBF 0xB67C +0x8CC0 0xB67D +0x8CC1 0xB67E +0x8CC2 0xB67F +0x8CC3 0xB680 +0x8CC4 0xB681 +0x8CC5 0xB682 +0x8CC6 0xB683 +0x8CC7 0xB684 +0x8CC8 0xB685 +0x8CC9 0xB686 +0x8CCA 0xB687 +0x8CCB 0xB688 +0x8CCC 0xB689 +0x8CCD 0xB68A +0x8CCE 0xB68B +0x8CCF 0xB68C +0x8CD0 0xB68D +0x8CD1 0xB68E +0x8CD2 0xB68F +0x8CD3 0xB690 +0x8CD4 0xB691 +0x8CD5 0xB692 +0x8CD6 0xB693 +0x8CD7 0xB694 +0x8CD8 0xB695 +0x8CD9 0xB696 +0x8CDA 0xB697 +0x8CDB 0xB698 +0x8CDC 0xB699 +0x8CDD 0xB69A +0x8CDE 0xB69B +0x8CDF 0xB69E +0x8CE0 0xB69F +0x8CE1 0xB6A1 +0x8CE2 0xB6A2 +0x8CE3 0xB6A3 +0x8CE4 0xB6A5 +0x8CE5 0xB6A6 +0x8CE6 0xB6A7 +0x8CE7 0xB6A8 +0x8CE8 0xB6A9 +0x8CE9 0xB6AA +0x8CEA 0xB6AD +0x8CEB 0xB6AE +0x8CEC 0xB6AF +0x8CED 0xB6B0 +0x8CEE 0xB6B2 +0x8CEF 0xB6B3 +0x8CF0 0xB6B4 +0x8CF1 0xB6B5 +0x8CF2 0xB6B6 +0x8CF3 0xB6B7 +0x8CF4 0xB6B8 +0x8CF5 0xB6B9 +0x8CF6 0xB6BA +0x8CF7 0xB6BB +0x8CF8 0xB6BC +0x8CF9 0xB6BD +0x8CFA 0xB6BE +0x8CFB 0xB6BF +0x8CFC 0xB6C0 +0x8CFD 0xB6C1 +0x8CFE 0xB6C2 +0x8D41 0xB6C3 +0x8D42 0xB6C4 +0x8D43 0xB6C5 +0x8D44 0xB6C6 +0x8D45 0xB6C7 +0x8D46 0xB6C8 +0x8D47 0xB6C9 +0x8D48 0xB6CA +0x8D49 0xB6CB +0x8D4A 0xB6CC +0x8D4B 0xB6CD +0x8D4C 0xB6CE +0x8D4D 0xB6CF +0x8D4E 0xB6D0 +0x8D4F 0xB6D1 +0x8D50 0xB6D2 +0x8D51 0xB6D3 +0x8D52 0xB6D5 +0x8D53 0xB6D6 +0x8D54 0xB6D7 +0x8D55 0xB6D8 +0x8D56 0xB6D9 +0x8D57 0xB6DA +0x8D58 0xB6DB +0x8D59 0xB6DC +0x8D5A 0xB6DD +0x8D61 0xB6DE +0x8D62 0xB6DF +0x8D63 0xB6E0 +0x8D64 0xB6E1 +0x8D65 0xB6E2 +0x8D66 0xB6E3 +0x8D67 0xB6E4 +0x8D68 0xB6E5 +0x8D69 0xB6E6 +0x8D6A 0xB6E7 +0x8D6B 0xB6E8 +0x8D6C 0xB6E9 +0x8D6D 0xB6EA +0x8D6E 0xB6EB +0x8D6F 0xB6EC +0x8D70 0xB6ED +0x8D71 0xB6EE +0x8D72 0xB6EF +0x8D73 0xB6F1 +0x8D74 0xB6F2 +0x8D75 0xB6F3 +0x8D76 0xB6F5 +0x8D77 0xB6F6 +0x8D78 0xB6F7 +0x8D79 0xB6F9 +0x8D7A 0xB6FA +0x8D81 0xB6FB +0x8D82 0xB6FC +0x8D83 0xB6FD +0x8D84 0xB6FE +0x8D85 0xB6FF +0x8D86 0xB702 +0x8D87 0xB703 +0x8D88 0xB704 +0x8D89 0xB706 +0x8D8A 0xB707 +0x8D8B 0xB708 +0x8D8C 0xB709 +0x8D8D 0xB70A +0x8D8E 0xB70B +0x8D8F 0xB70C +0x8D90 0xB70D +0x8D91 0xB70E +0x8D92 0xB70F +0x8D93 0xB710 +0x8D94 0xB711 +0x8D95 0xB712 +0x8D96 0xB713 +0x8D97 0xB714 +0x8D98 0xB715 +0x8D99 0xB716 +0x8D9A 0xB717 +0x8D9B 0xB718 +0x8D9C 0xB719 +0x8D9D 0xB71A +0x8D9E 0xB71B +0x8D9F 0xB71C +0x8DA0 0xB71D +0x8DA1 0xB71E +0x8DA2 0xB71F +0x8DA3 0xB720 +0x8DA4 0xB721 +0x8DA5 0xB722 +0x8DA6 0xB723 +0x8DA7 0xB724 +0x8DA8 0xB725 +0x8DA9 0xB726 +0x8DAA 0xB727 +0x8DAB 0xB72A +0x8DAC 0xB72B +0x8DAD 0xB72D +0x8DAE 0xB72E +0x8DAF 0xB731 +0x8DB0 0xB732 +0x8DB1 0xB733 +0x8DB2 0xB734 +0x8DB3 0xB735 +0x8DB4 0xB736 +0x8DB5 0xB737 +0x8DB6 0xB73A +0x8DB7 0xB73C +0x8DB8 0xB73D +0x8DB9 0xB73E +0x8DBA 0xB73F +0x8DBB 0xB740 +0x8DBC 0xB741 +0x8DBD 0xB742 +0x8DBE 0xB743 +0x8DBF 0xB745 +0x8DC0 0xB746 +0x8DC1 0xB747 +0x8DC2 0xB749 +0x8DC3 0xB74A +0x8DC4 0xB74B +0x8DC5 0xB74D +0x8DC6 0xB74E +0x8DC7 0xB74F +0x8DC8 0xB750 +0x8DC9 0xB751 +0x8DCA 0xB752 +0x8DCB 0xB753 +0x8DCC 0xB756 +0x8DCD 0xB757 +0x8DCE 0xB758 +0x8DCF 0xB759 +0x8DD0 0xB75A +0x8DD1 0xB75B +0x8DD2 0xB75C +0x8DD3 0xB75D +0x8DD4 0xB75E +0x8DD5 0xB75F +0x8DD6 0xB761 +0x8DD7 0xB762 +0x8DD8 0xB763 +0x8DD9 0xB765 +0x8DDA 0xB766 +0x8DDB 0xB767 +0x8DDC 0xB769 +0x8DDD 0xB76A +0x8DDE 0xB76B +0x8DDF 0xB76C +0x8DE0 0xB76D +0x8DE1 0xB76E +0x8DE2 0xB76F +0x8DE3 0xB772 +0x8DE4 0xB774 +0x8DE5 0xB776 +0x8DE6 0xB777 +0x8DE7 0xB778 +0x8DE8 0xB779 +0x8DE9 0xB77A +0x8DEA 0xB77B +0x8DEB 0xB77E +0x8DEC 0xB77F +0x8DED 0xB781 +0x8DEE 0xB782 +0x8DEF 0xB783 +0x8DF0 0xB785 +0x8DF1 0xB786 +0x8DF2 0xB787 +0x8DF3 0xB788 +0x8DF4 0xB789 +0x8DF5 0xB78A +0x8DF6 0xB78B +0x8DF7 0xB78E +0x8DF8 0xB793 +0x8DF9 0xB794 +0x8DFA 0xB795 +0x8DFB 0xB79A +0x8DFC 0xB79B +0x8DFD 0xB79D +0x8DFE 0xB79E +0x8E41 0xB79F +0x8E42 0xB7A1 +0x8E43 0xB7A2 +0x8E44 0xB7A3 +0x8E45 0xB7A4 +0x8E46 0xB7A5 +0x8E47 0xB7A6 +0x8E48 0xB7A7 +0x8E49 0xB7AA +0x8E4A 0xB7AE +0x8E4B 0xB7AF +0x8E4C 0xB7B0 +0x8E4D 0xB7B1 +0x8E4E 0xB7B2 +0x8E4F 0xB7B3 +0x8E50 0xB7B6 +0x8E51 0xB7B7 +0x8E52 0xB7B9 +0x8E53 0xB7BA +0x8E54 0xB7BB +0x8E55 0xB7BC +0x8E56 0xB7BD +0x8E57 0xB7BE +0x8E58 0xB7BF +0x8E59 0xB7C0 +0x8E5A 0xB7C1 +0x8E61 0xB7C2 +0x8E62 0xB7C3 +0x8E63 0xB7C4 +0x8E64 0xB7C5 +0x8E65 0xB7C6 +0x8E66 0xB7C8 +0x8E67 0xB7CA +0x8E68 0xB7CB +0x8E69 0xB7CC +0x8E6A 0xB7CD +0x8E6B 0xB7CE +0x8E6C 0xB7CF +0x8E6D 0xB7D0 +0x8E6E 0xB7D1 +0x8E6F 0xB7D2 +0x8E70 0xB7D3 +0x8E71 0xB7D4 +0x8E72 0xB7D5 +0x8E73 0xB7D6 +0x8E74 0xB7D7 +0x8E75 0xB7D8 +0x8E76 0xB7D9 +0x8E77 0xB7DA +0x8E78 0xB7DB +0x8E79 0xB7DC +0x8E7A 0xB7DD +0x8E81 0xB7DE +0x8E82 0xB7DF +0x8E83 0xB7E0 +0x8E84 0xB7E1 +0x8E85 0xB7E2 +0x8E86 0xB7E3 +0x8E87 0xB7E4 +0x8E88 0xB7E5 +0x8E89 0xB7E6 +0x8E8A 0xB7E7 +0x8E8B 0xB7E8 +0x8E8C 0xB7E9 +0x8E8D 0xB7EA +0x8E8E 0xB7EB +0x8E8F 0xB7EE +0x8E90 0xB7EF +0x8E91 0xB7F1 +0x8E92 0xB7F2 +0x8E93 0xB7F3 +0x8E94 0xB7F5 +0x8E95 0xB7F6 +0x8E96 0xB7F7 +0x8E97 0xB7F8 +0x8E98 0xB7F9 +0x8E99 0xB7FA +0x8E9A 0xB7FB +0x8E9B 0xB7FE +0x8E9C 0xB802 +0x8E9D 0xB803 +0x8E9E 0xB804 +0x8E9F 0xB805 +0x8EA0 0xB806 +0x8EA1 0xB80A +0x8EA2 0xB80B +0x8EA3 0xB80D +0x8EA4 0xB80E +0x8EA5 0xB80F +0x8EA6 0xB811 +0x8EA7 0xB812 +0x8EA8 0xB813 +0x8EA9 0xB814 +0x8EAA 0xB815 +0x8EAB 0xB816 +0x8EAC 0xB817 +0x8EAD 0xB81A +0x8EAE 0xB81C +0x8EAF 0xB81E +0x8EB0 0xB81F +0x8EB1 0xB820 +0x8EB2 0xB821 +0x8EB3 0xB822 +0x8EB4 0xB823 +0x8EB5 0xB826 +0x8EB6 0xB827 +0x8EB7 0xB829 +0x8EB8 0xB82A +0x8EB9 0xB82B +0x8EBA 0xB82D +0x8EBB 0xB82E +0x8EBC 0xB82F +0x8EBD 0xB830 +0x8EBE 0xB831 +0x8EBF 0xB832 +0x8EC0 0xB833 +0x8EC1 0xB836 +0x8EC2 0xB83A +0x8EC3 0xB83B +0x8EC4 0xB83C +0x8EC5 0xB83D +0x8EC6 0xB83E +0x8EC7 0xB83F +0x8EC8 0xB841 +0x8EC9 0xB842 +0x8ECA 0xB843 +0x8ECB 0xB845 +0x8ECC 0xB846 +0x8ECD 0xB847 +0x8ECE 0xB848 +0x8ECF 0xB849 +0x8ED0 0xB84A +0x8ED1 0xB84B +0x8ED2 0xB84C +0x8ED3 0xB84D +0x8ED4 0xB84E +0x8ED5 0xB84F +0x8ED6 0xB850 +0x8ED7 0xB852 +0x8ED8 0xB854 +0x8ED9 0xB855 +0x8EDA 0xB856 +0x8EDB 0xB857 +0x8EDC 0xB858 +0x8EDD 0xB859 +0x8EDE 0xB85A +0x8EDF 0xB85B +0x8EE0 0xB85E +0x8EE1 0xB85F +0x8EE2 0xB861 +0x8EE3 0xB862 +0x8EE4 0xB863 +0x8EE5 0xB865 +0x8EE6 0xB866 +0x8EE7 0xB867 +0x8EE8 0xB868 +0x8EE9 0xB869 +0x8EEA 0xB86A +0x8EEB 0xB86B +0x8EEC 0xB86E +0x8EED 0xB870 +0x8EEE 0xB872 +0x8EEF 0xB873 +0x8EF0 0xB874 +0x8EF1 0xB875 +0x8EF2 0xB876 +0x8EF3 0xB877 +0x8EF4 0xB879 +0x8EF5 0xB87A +0x8EF6 0xB87B +0x8EF7 0xB87D +0x8EF8 0xB87E +0x8EF9 0xB87F +0x8EFA 0xB880 +0x8EFB 0xB881 +0x8EFC 0xB882 +0x8EFD 0xB883 +0x8EFE 0xB884 +0x8F41 0xB885 +0x8F42 0xB886 +0x8F43 0xB887 +0x8F44 0xB888 +0x8F45 0xB889 +0x8F46 0xB88A +0x8F47 0xB88B +0x8F48 0xB88C +0x8F49 0xB88E +0x8F4A 0xB88F +0x8F4B 0xB890 +0x8F4C 0xB891 +0x8F4D 0xB892 +0x8F4E 0xB893 +0x8F4F 0xB894 +0x8F50 0xB895 +0x8F51 0xB896 +0x8F52 0xB897 +0x8F53 0xB898 +0x8F54 0xB899 +0x8F55 0xB89A +0x8F56 0xB89B +0x8F57 0xB89C +0x8F58 0xB89D +0x8F59 0xB89E +0x8F5A 0xB89F +0x8F61 0xB8A0 +0x8F62 0xB8A1 +0x8F63 0xB8A2 +0x8F64 0xB8A3 +0x8F65 0xB8A4 +0x8F66 0xB8A5 +0x8F67 0xB8A6 +0x8F68 0xB8A7 +0x8F69 0xB8A9 +0x8F6A 0xB8AA +0x8F6B 0xB8AB +0x8F6C 0xB8AC +0x8F6D 0xB8AD +0x8F6E 0xB8AE +0x8F6F 0xB8AF +0x8F70 0xB8B1 +0x8F71 0xB8B2 +0x8F72 0xB8B3 +0x8F73 0xB8B5 +0x8F74 0xB8B6 +0x8F75 0xB8B7 +0x8F76 0xB8B9 +0x8F77 0xB8BA +0x8F78 0xB8BB +0x8F79 0xB8BC +0x8F7A 0xB8BD +0x8F81 0xB8BE +0x8F82 0xB8BF +0x8F83 0xB8C2 +0x8F84 0xB8C4 +0x8F85 0xB8C6 +0x8F86 0xB8C7 +0x8F87 0xB8C8 +0x8F88 0xB8C9 +0x8F89 0xB8CA +0x8F8A 0xB8CB +0x8F8B 0xB8CD +0x8F8C 0xB8CE +0x8F8D 0xB8CF +0x8F8E 0xB8D1 +0x8F8F 0xB8D2 +0x8F90 0xB8D3 +0x8F91 0xB8D5 +0x8F92 0xB8D6 +0x8F93 0xB8D7 +0x8F94 0xB8D8 +0x8F95 0xB8D9 +0x8F96 0xB8DA +0x8F97 0xB8DB +0x8F98 0xB8DC +0x8F99 0xB8DE +0x8F9A 0xB8E0 +0x8F9B 0xB8E2 +0x8F9C 0xB8E3 +0x8F9D 0xB8E4 +0x8F9E 0xB8E5 +0x8F9F 0xB8E6 +0x8FA0 0xB8E7 +0x8FA1 0xB8EA +0x8FA2 0xB8EB +0x8FA3 0xB8ED +0x8FA4 0xB8EE +0x8FA5 0xB8EF +0x8FA6 0xB8F1 +0x8FA7 0xB8F2 +0x8FA8 0xB8F3 +0x8FA9 0xB8F4 +0x8FAA 0xB8F5 +0x8FAB 0xB8F6 +0x8FAC 0xB8F7 +0x8FAD 0xB8FA +0x8FAE 0xB8FC +0x8FAF 0xB8FE +0x8FB0 0xB8FF +0x8FB1 0xB900 +0x8FB2 0xB901 +0x8FB3 0xB902 +0x8FB4 0xB903 +0x8FB5 0xB905 +0x8FB6 0xB906 +0x8FB7 0xB907 +0x8FB8 0xB908 +0x8FB9 0xB909 +0x8FBA 0xB90A +0x8FBB 0xB90B +0x8FBC 0xB90C +0x8FBD 0xB90D +0x8FBE 0xB90E +0x8FBF 0xB90F +0x8FC0 0xB910 +0x8FC1 0xB911 +0x8FC2 0xB912 +0x8FC3 0xB913 +0x8FC4 0xB914 +0x8FC5 0xB915 +0x8FC6 0xB916 +0x8FC7 0xB917 +0x8FC8 0xB919 +0x8FC9 0xB91A +0x8FCA 0xB91B +0x8FCB 0xB91C +0x8FCC 0xB91D +0x8FCD 0xB91E +0x8FCE 0xB91F +0x8FCF 0xB921 +0x8FD0 0xB922 +0x8FD1 0xB923 +0x8FD2 0xB924 +0x8FD3 0xB925 +0x8FD4 0xB926 +0x8FD5 0xB927 +0x8FD6 0xB928 +0x8FD7 0xB929 +0x8FD8 0xB92A +0x8FD9 0xB92B +0x8FDA 0xB92C +0x8FDB 0xB92D +0x8FDC 0xB92E +0x8FDD 0xB92F +0x8FDE 0xB930 +0x8FDF 0xB931 +0x8FE0 0xB932 +0x8FE1 0xB933 +0x8FE2 0xB934 +0x8FE3 0xB935 +0x8FE4 0xB936 +0x8FE5 0xB937 +0x8FE6 0xB938 +0x8FE7 0xB939 +0x8FE8 0xB93A +0x8FE9 0xB93B +0x8FEA 0xB93E +0x8FEB 0xB93F +0x8FEC 0xB941 +0x8FED 0xB942 +0x8FEE 0xB943 +0x8FEF 0xB945 +0x8FF0 0xB946 +0x8FF1 0xB947 +0x8FF2 0xB948 +0x8FF3 0xB949 +0x8FF4 0xB94A +0x8FF5 0xB94B +0x8FF6 0xB94D +0x8FF7 0xB94E +0x8FF8 0xB950 +0x8FF9 0xB952 +0x8FFA 0xB953 +0x8FFB 0xB954 +0x8FFC 0xB955 +0x8FFD 0xB956 +0x8FFE 0xB957 +0x9041 0xB95A +0x9042 0xB95B +0x9043 0xB95D +0x9044 0xB95E +0x9045 0xB95F +0x9046 0xB961 +0x9047 0xB962 +0x9048 0xB963 +0x9049 0xB964 +0x904A 0xB965 +0x904B 0xB966 +0x904C 0xB967 +0x904D 0xB96A +0x904E 0xB96C +0x904F 0xB96E +0x9050 0xB96F +0x9051 0xB970 +0x9052 0xB971 +0x9053 0xB972 +0x9054 0xB973 +0x9055 0xB976 +0x9056 0xB977 +0x9057 0xB979 +0x9058 0xB97A +0x9059 0xB97B +0x905A 0xB97D +0x9061 0xB97E +0x9062 0xB97F +0x9063 0xB980 +0x9064 0xB981 +0x9065 0xB982 +0x9066 0xB983 +0x9067 0xB986 +0x9068 0xB988 +0x9069 0xB98B +0x906A 0xB98C +0x906B 0xB98F +0x906C 0xB990 +0x906D 0xB991 +0x906E 0xB992 +0x906F 0xB993 +0x9070 0xB994 +0x9071 0xB995 +0x9072 0xB996 +0x9073 0xB997 +0x9074 0xB998 +0x9075 0xB999 +0x9076 0xB99A +0x9077 0xB99B +0x9078 0xB99C +0x9079 0xB99D +0x907A 0xB99E +0x9081 0xB99F +0x9082 0xB9A0 +0x9083 0xB9A1 +0x9084 0xB9A2 +0x9085 0xB9A3 +0x9086 0xB9A4 +0x9087 0xB9A5 +0x9088 0xB9A6 +0x9089 0xB9A7 +0x908A 0xB9A8 +0x908B 0xB9A9 +0x908C 0xB9AA +0x908D 0xB9AB +0x908E 0xB9AE +0x908F 0xB9AF +0x9090 0xB9B1 +0x9091 0xB9B2 +0x9092 0xB9B3 +0x9093 0xB9B5 +0x9094 0xB9B6 +0x9095 0xB9B7 +0x9096 0xB9B8 +0x9097 0xB9B9 +0x9098 0xB9BA +0x9099 0xB9BB +0x909A 0xB9BE +0x909B 0xB9C0 +0x909C 0xB9C2 +0x909D 0xB9C3 +0x909E 0xB9C4 +0x909F 0xB9C5 +0x90A0 0xB9C6 +0x90A1 0xB9C7 +0x90A2 0xB9CA +0x90A3 0xB9CB +0x90A4 0xB9CD +0x90A5 0xB9D3 +0x90A6 0xB9D4 +0x90A7 0xB9D5 +0x90A8 0xB9D6 +0x90A9 0xB9D7 +0x90AA 0xB9DA +0x90AB 0xB9DC +0x90AC 0xB9DF +0x90AD 0xB9E0 +0x90AE 0xB9E2 +0x90AF 0xB9E6 +0x90B0 0xB9E7 +0x90B1 0xB9E9 +0x90B2 0xB9EA +0x90B3 0xB9EB +0x90B4 0xB9ED +0x90B5 0xB9EE +0x90B6 0xB9EF +0x90B7 0xB9F0 +0x90B8 0xB9F1 +0x90B9 0xB9F2 +0x90BA 0xB9F3 +0x90BB 0xB9F6 +0x90BC 0xB9FB +0x90BD 0xB9FC +0x90BE 0xB9FD +0x90BF 0xB9FE +0x90C0 0xB9FF +0x90C1 0xBA02 +0x90C2 0xBA03 +0x90C3 0xBA04 +0x90C4 0xBA05 +0x90C5 0xBA06 +0x90C6 0xBA07 +0x90C7 0xBA09 +0x90C8 0xBA0A +0x90C9 0xBA0B +0x90CA 0xBA0C +0x90CB 0xBA0D +0x90CC 0xBA0E +0x90CD 0xBA0F +0x90CE 0xBA10 +0x90CF 0xBA11 +0x90D0 0xBA12 +0x90D1 0xBA13 +0x90D2 0xBA14 +0x90D3 0xBA16 +0x90D4 0xBA17 +0x90D5 0xBA18 +0x90D6 0xBA19 +0x90D7 0xBA1A +0x90D8 0xBA1B +0x90D9 0xBA1C +0x90DA 0xBA1D +0x90DB 0xBA1E +0x90DC 0xBA1F +0x90DD 0xBA20 +0x90DE 0xBA21 +0x90DF 0xBA22 +0x90E0 0xBA23 +0x90E1 0xBA24 +0x90E2 0xBA25 +0x90E3 0xBA26 +0x90E4 0xBA27 +0x90E5 0xBA28 +0x90E6 0xBA29 +0x90E7 0xBA2A +0x90E8 0xBA2B +0x90E9 0xBA2C +0x90EA 0xBA2D +0x90EB 0xBA2E +0x90EC 0xBA2F +0x90ED 0xBA30 +0x90EE 0xBA31 +0x90EF 0xBA32 +0x90F0 0xBA33 +0x90F1 0xBA34 +0x90F2 0xBA35 +0x90F3 0xBA36 +0x90F4 0xBA37 +0x90F5 0xBA3A +0x90F6 0xBA3B +0x90F7 0xBA3D +0x90F8 0xBA3E +0x90F9 0xBA3F +0x90FA 0xBA41 +0x90FB 0xBA43 +0x90FC 0xBA44 +0x90FD 0xBA45 +0x90FE 0xBA46 +0x9141 0xBA47 +0x9142 0xBA4A +0x9143 0xBA4C +0x9144 0xBA4F +0x9145 0xBA50 +0x9146 0xBA51 +0x9147 0xBA52 +0x9148 0xBA56 +0x9149 0xBA57 +0x914A 0xBA59 +0x914B 0xBA5A +0x914C 0xBA5B +0x914D 0xBA5D +0x914E 0xBA5E +0x914F 0xBA5F +0x9150 0xBA60 +0x9151 0xBA61 +0x9152 0xBA62 +0x9153 0xBA63 +0x9154 0xBA66 +0x9155 0xBA6A +0x9156 0xBA6B +0x9157 0xBA6C +0x9158 0xBA6D +0x9159 0xBA6E +0x915A 0xBA6F +0x9161 0xBA72 +0x9162 0xBA73 +0x9163 0xBA75 +0x9164 0xBA76 +0x9165 0xBA77 +0x9166 0xBA79 +0x9167 0xBA7A +0x9168 0xBA7B +0x9169 0xBA7C +0x916A 0xBA7D +0x916B 0xBA7E +0x916C 0xBA7F +0x916D 0xBA80 +0x916E 0xBA81 +0x916F 0xBA82 +0x9170 0xBA86 +0x9171 0xBA88 +0x9172 0xBA89 +0x9173 0xBA8A +0x9174 0xBA8B +0x9175 0xBA8D +0x9176 0xBA8E +0x9177 0xBA8F +0x9178 0xBA90 +0x9179 0xBA91 +0x917A 0xBA92 +0x9181 0xBA93 +0x9182 0xBA94 +0x9183 0xBA95 +0x9184 0xBA96 +0x9185 0xBA97 +0x9186 0xBA98 +0x9187 0xBA99 +0x9188 0xBA9A +0x9189 0xBA9B +0x918A 0xBA9C +0x918B 0xBA9D +0x918C 0xBA9E +0x918D 0xBA9F +0x918E 0xBAA0 +0x918F 0xBAA1 +0x9190 0xBAA2 +0x9191 0xBAA3 +0x9192 0xBAA4 +0x9193 0xBAA5 +0x9194 0xBAA6 +0x9195 0xBAA7 +0x9196 0xBAAA +0x9197 0xBAAD +0x9198 0xBAAE +0x9199 0xBAAF +0x919A 0xBAB1 +0x919B 0xBAB3 +0x919C 0xBAB4 +0x919D 0xBAB5 +0x919E 0xBAB6 +0x919F 0xBAB7 +0x91A0 0xBABA +0x91A1 0xBABC +0x91A2 0xBABE +0x91A3 0xBABF +0x91A4 0xBAC0 +0x91A5 0xBAC1 +0x91A6 0xBAC2 +0x91A7 0xBAC3 +0x91A8 0xBAC5 +0x91A9 0xBAC6 +0x91AA 0xBAC7 +0x91AB 0xBAC9 +0x91AC 0xBACA +0x91AD 0xBACB +0x91AE 0xBACC +0x91AF 0xBACD +0x91B0 0xBACE +0x91B1 0xBACF +0x91B2 0xBAD0 +0x91B3 0xBAD1 +0x91B4 0xBAD2 +0x91B5 0xBAD3 +0x91B6 0xBAD4 +0x91B7 0xBAD5 +0x91B8 0xBAD6 +0x91B9 0xBAD7 +0x91BA 0xBADA +0x91BB 0xBADB +0x91BC 0xBADC +0x91BD 0xBADD +0x91BE 0xBADE +0x91BF 0xBADF +0x91C0 0xBAE0 +0x91C1 0xBAE1 +0x91C2 0xBAE2 +0x91C3 0xBAE3 +0x91C4 0xBAE4 +0x91C5 0xBAE5 +0x91C6 0xBAE6 +0x91C7 0xBAE7 +0x91C8 0xBAE8 +0x91C9 0xBAE9 +0x91CA 0xBAEA +0x91CB 0xBAEB +0x91CC 0xBAEC +0x91CD 0xBAED +0x91CE 0xBAEE +0x91CF 0xBAEF +0x91D0 0xBAF0 +0x91D1 0xBAF1 +0x91D2 0xBAF2 +0x91D3 0xBAF3 +0x91D4 0xBAF4 +0x91D5 0xBAF5 +0x91D6 0xBAF6 +0x91D7 0xBAF7 +0x91D8 0xBAF8 +0x91D9 0xBAF9 +0x91DA 0xBAFA +0x91DB 0xBAFB +0x91DC 0xBAFD +0x91DD 0xBAFE +0x91DE 0xBAFF +0x91DF 0xBB01 +0x91E0 0xBB02 +0x91E1 0xBB03 +0x91E2 0xBB05 +0x91E3 0xBB06 +0x91E4 0xBB07 +0x91E5 0xBB08 +0x91E6 0xBB09 +0x91E7 0xBB0A +0x91E8 0xBB0B +0x91E9 0xBB0C +0x91EA 0xBB0E +0x91EB 0xBB10 +0x91EC 0xBB12 +0x91ED 0xBB13 +0x91EE 0xBB14 +0x91EF 0xBB15 +0x91F0 0xBB16 +0x91F1 0xBB17 +0x91F2 0xBB19 +0x91F3 0xBB1A +0x91F4 0xBB1B +0x91F5 0xBB1D +0x91F6 0xBB1E +0x91F7 0xBB1F +0x91F8 0xBB21 +0x91F9 0xBB22 +0x91FA 0xBB23 +0x91FB 0xBB24 +0x91FC 0xBB25 +0x91FD 0xBB26 +0x91FE 0xBB27 +0x9241 0xBB28 +0x9242 0xBB2A +0x9243 0xBB2C +0x9244 0xBB2D +0x9245 0xBB2E +0x9246 0xBB2F +0x9247 0xBB30 +0x9248 0xBB31 +0x9249 0xBB32 +0x924A 0xBB33 +0x924B 0xBB37 +0x924C 0xBB39 +0x924D 0xBB3A +0x924E 0xBB3F +0x924F 0xBB40 +0x9250 0xBB41 +0x9251 0xBB42 +0x9252 0xBB43 +0x9253 0xBB46 +0x9254 0xBB48 +0x9255 0xBB4A +0x9256 0xBB4B +0x9257 0xBB4C +0x9258 0xBB4E +0x9259 0xBB51 +0x925A 0xBB52 +0x9261 0xBB53 +0x9262 0xBB55 +0x9263 0xBB56 +0x9264 0xBB57 +0x9265 0xBB59 +0x9266 0xBB5A +0x9267 0xBB5B +0x9268 0xBB5C +0x9269 0xBB5D +0x926A 0xBB5E +0x926B 0xBB5F +0x926C 0xBB60 +0x926D 0xBB62 +0x926E 0xBB64 +0x926F 0xBB65 +0x9270 0xBB66 +0x9271 0xBB67 +0x9272 0xBB68 +0x9273 0xBB69 +0x9274 0xBB6A +0x9275 0xBB6B +0x9276 0xBB6D +0x9277 0xBB6E +0x9278 0xBB6F +0x9279 0xBB70 +0x927A 0xBB71 +0x9281 0xBB72 +0x9282 0xBB73 +0x9283 0xBB74 +0x9284 0xBB75 +0x9285 0xBB76 +0x9286 0xBB77 +0x9287 0xBB78 +0x9288 0xBB79 +0x9289 0xBB7A +0x928A 0xBB7B +0x928B 0xBB7C +0x928C 0xBB7D +0x928D 0xBB7E +0x928E 0xBB7F +0x928F 0xBB80 +0x9290 0xBB81 +0x9291 0xBB82 +0x9292 0xBB83 +0x9293 0xBB84 +0x9294 0xBB85 +0x9295 0xBB86 +0x9296 0xBB87 +0x9297 0xBB89 +0x9298 0xBB8A +0x9299 0xBB8B +0x929A 0xBB8D +0x929B 0xBB8E +0x929C 0xBB8F +0x929D 0xBB91 +0x929E 0xBB92 +0x929F 0xBB93 +0x92A0 0xBB94 +0x92A1 0xBB95 +0x92A2 0xBB96 +0x92A3 0xBB97 +0x92A4 0xBB98 +0x92A5 0xBB99 +0x92A6 0xBB9A +0x92A7 0xBB9B +0x92A8 0xBB9C +0x92A9 0xBB9D +0x92AA 0xBB9E +0x92AB 0xBB9F +0x92AC 0xBBA0 +0x92AD 0xBBA1 +0x92AE 0xBBA2 +0x92AF 0xBBA3 +0x92B0 0xBBA5 +0x92B1 0xBBA6 +0x92B2 0xBBA7 +0x92B3 0xBBA9 +0x92B4 0xBBAA +0x92B5 0xBBAB +0x92B6 0xBBAD +0x92B7 0xBBAE +0x92B8 0xBBAF +0x92B9 0xBBB0 +0x92BA 0xBBB1 +0x92BB 0xBBB2 +0x92BC 0xBBB3 +0x92BD 0xBBB5 +0x92BE 0xBBB6 +0x92BF 0xBBB8 +0x92C0 0xBBB9 +0x92C1 0xBBBA +0x92C2 0xBBBB +0x92C3 0xBBBC +0x92C4 0xBBBD +0x92C5 0xBBBE +0x92C6 0xBBBF +0x92C7 0xBBC1 +0x92C8 0xBBC2 +0x92C9 0xBBC3 +0x92CA 0xBBC5 +0x92CB 0xBBC6 +0x92CC 0xBBC7 +0x92CD 0xBBC9 +0x92CE 0xBBCA +0x92CF 0xBBCB +0x92D0 0xBBCC +0x92D1 0xBBCD +0x92D2 0xBBCE +0x92D3 0xBBCF +0x92D4 0xBBD1 +0x92D5 0xBBD2 +0x92D6 0xBBD4 +0x92D7 0xBBD5 +0x92D8 0xBBD6 +0x92D9 0xBBD7 +0x92DA 0xBBD8 +0x92DB 0xBBD9 +0x92DC 0xBBDA +0x92DD 0xBBDB +0x92DE 0xBBDC +0x92DF 0xBBDD +0x92E0 0xBBDE +0x92E1 0xBBDF +0x92E2 0xBBE0 +0x92E3 0xBBE1 +0x92E4 0xBBE2 +0x92E5 0xBBE3 +0x92E6 0xBBE4 +0x92E7 0xBBE5 +0x92E8 0xBBE6 +0x92E9 0xBBE7 +0x92EA 0xBBE8 +0x92EB 0xBBE9 +0x92EC 0xBBEA +0x92ED 0xBBEB +0x92EE 0xBBEC +0x92EF 0xBBED +0x92F0 0xBBEE +0x92F1 0xBBEF +0x92F2 0xBBF0 +0x92F3 0xBBF1 +0x92F4 0xBBF2 +0x92F5 0xBBF3 +0x92F6 0xBBF4 +0x92F7 0xBBF5 +0x92F8 0xBBF6 +0x92F9 0xBBF7 +0x92FA 0xBBFA +0x92FB 0xBBFB +0x92FC 0xBBFD +0x92FD 0xBBFE +0x92FE 0xBC01 +0x9341 0xBC03 +0x9342 0xBC04 +0x9343 0xBC05 +0x9344 0xBC06 +0x9345 0xBC07 +0x9346 0xBC0A +0x9347 0xBC0E +0x9348 0xBC10 +0x9349 0xBC12 +0x934A 0xBC13 +0x934B 0xBC19 +0x934C 0xBC1A +0x934D 0xBC20 +0x934E 0xBC21 +0x934F 0xBC22 +0x9350 0xBC23 +0x9351 0xBC26 +0x9352 0xBC28 +0x9353 0xBC2A +0x9354 0xBC2B +0x9355 0xBC2C +0x9356 0xBC2E +0x9357 0xBC2F +0x9358 0xBC32 +0x9359 0xBC33 +0x935A 0xBC35 +0x9361 0xBC36 +0x9362 0xBC37 +0x9363 0xBC39 +0x9364 0xBC3A +0x9365 0xBC3B +0x9366 0xBC3C +0x9367 0xBC3D +0x9368 0xBC3E +0x9369 0xBC3F +0x936A 0xBC42 +0x936B 0xBC46 +0x936C 0xBC47 +0x936D 0xBC48 +0x936E 0xBC4A +0x936F 0xBC4B +0x9370 0xBC4E +0x9371 0xBC4F +0x9372 0xBC51 +0x9373 0xBC52 +0x9374 0xBC53 +0x9375 0xBC54 +0x9376 0xBC55 +0x9377 0xBC56 +0x9378 0xBC57 +0x9379 0xBC58 +0x937A 0xBC59 +0x9381 0xBC5A +0x9382 0xBC5B +0x9383 0xBC5C +0x9384 0xBC5E +0x9385 0xBC5F +0x9386 0xBC60 +0x9387 0xBC61 +0x9388 0xBC62 +0x9389 0xBC63 +0x938A 0xBC64 +0x938B 0xBC65 +0x938C 0xBC66 +0x938D 0xBC67 +0x938E 0xBC68 +0x938F 0xBC69 +0x9390 0xBC6A +0x9391 0xBC6B +0x9392 0xBC6C +0x9393 0xBC6D +0x9394 0xBC6E +0x9395 0xBC6F +0x9396 0xBC70 +0x9397 0xBC71 +0x9398 0xBC72 +0x9399 0xBC73 +0x939A 0xBC74 +0x939B 0xBC75 +0x939C 0xBC76 +0x939D 0xBC77 +0x939E 0xBC78 +0x939F 0xBC79 +0x93A0 0xBC7A +0x93A1 0xBC7B +0x93A2 0xBC7C +0x93A3 0xBC7D +0x93A4 0xBC7E +0x93A5 0xBC7F +0x93A6 0xBC80 +0x93A7 0xBC81 +0x93A8 0xBC82 +0x93A9 0xBC83 +0x93AA 0xBC86 +0x93AB 0xBC87 +0x93AC 0xBC89 +0x93AD 0xBC8A +0x93AE 0xBC8D +0x93AF 0xBC8F +0x93B0 0xBC90 +0x93B1 0xBC91 +0x93B2 0xBC92 +0x93B3 0xBC93 +0x93B4 0xBC96 +0x93B5 0xBC98 +0x93B6 0xBC9B +0x93B7 0xBC9C +0x93B8 0xBC9D +0x93B9 0xBC9E +0x93BA 0xBC9F +0x93BB 0xBCA2 +0x93BC 0xBCA3 +0x93BD 0xBCA5 +0x93BE 0xBCA6 +0x93BF 0xBCA9 +0x93C0 0xBCAA +0x93C1 0xBCAB +0x93C2 0xBCAC +0x93C3 0xBCAD +0x93C4 0xBCAE +0x93C5 0xBCAF +0x93C6 0xBCB2 +0x93C7 0xBCB6 +0x93C8 0xBCB7 +0x93C9 0xBCB8 +0x93CA 0xBCB9 +0x93CB 0xBCBA +0x93CC 0xBCBB +0x93CD 0xBCBE +0x93CE 0xBCBF +0x93CF 0xBCC1 +0x93D0 0xBCC2 +0x93D1 0xBCC3 +0x93D2 0xBCC5 +0x93D3 0xBCC6 +0x93D4 0xBCC7 +0x93D5 0xBCC8 +0x93D6 0xBCC9 +0x93D7 0xBCCA +0x93D8 0xBCCB +0x93D9 0xBCCC +0x93DA 0xBCCE +0x93DB 0xBCD2 +0x93DC 0xBCD3 +0x93DD 0xBCD4 +0x93DE 0xBCD6 +0x93DF 0xBCD7 +0x93E0 0xBCD9 +0x93E1 0xBCDA +0x93E2 0xBCDB +0x93E3 0xBCDD +0x93E4 0xBCDE +0x93E5 0xBCDF +0x93E6 0xBCE0 +0x93E7 0xBCE1 +0x93E8 0xBCE2 +0x93E9 0xBCE3 +0x93EA 0xBCE4 +0x93EB 0xBCE5 +0x93EC 0xBCE6 +0x93ED 0xBCE7 +0x93EE 0xBCE8 +0x93EF 0xBCE9 +0x93F0 0xBCEA +0x93F1 0xBCEB +0x93F2 0xBCEC +0x93F3 0xBCED +0x93F4 0xBCEE +0x93F5 0xBCEF +0x93F6 0xBCF0 +0x93F7 0xBCF1 +0x93F8 0xBCF2 +0x93F9 0xBCF3 +0x93FA 0xBCF7 +0x93FB 0xBCF9 +0x93FC 0xBCFA +0x93FD 0xBCFB +0x93FE 0xBCFD +0x9441 0xBCFE +0x9442 0xBCFF +0x9443 0xBD00 +0x9444 0xBD01 +0x9445 0xBD02 +0x9446 0xBD03 +0x9447 0xBD06 +0x9448 0xBD08 +0x9449 0xBD0A +0x944A 0xBD0B +0x944B 0xBD0C +0x944C 0xBD0D +0x944D 0xBD0E +0x944E 0xBD0F +0x944F 0xBD11 +0x9450 0xBD12 +0x9451 0xBD13 +0x9452 0xBD15 +0x9453 0xBD16 +0x9454 0xBD17 +0x9455 0xBD18 +0x9456 0xBD19 +0x9457 0xBD1A +0x9458 0xBD1B +0x9459 0xBD1C +0x945A 0xBD1D +0x9461 0xBD1E +0x9462 0xBD1F +0x9463 0xBD20 +0x9464 0xBD21 +0x9465 0xBD22 +0x9466 0xBD23 +0x9467 0xBD25 +0x9468 0xBD26 +0x9469 0xBD27 +0x946A 0xBD28 +0x946B 0xBD29 +0x946C 0xBD2A +0x946D 0xBD2B +0x946E 0xBD2D +0x946F 0xBD2E +0x9470 0xBD2F +0x9471 0xBD30 +0x9472 0xBD31 +0x9473 0xBD32 +0x9474 0xBD33 +0x9475 0xBD34 +0x9476 0xBD35 +0x9477 0xBD36 +0x9478 0xBD37 +0x9479 0xBD38 +0x947A 0xBD39 +0x9481 0xBD3A +0x9482 0xBD3B +0x9483 0xBD3C +0x9484 0xBD3D +0x9485 0xBD3E +0x9486 0xBD3F +0x9487 0xBD41 +0x9488 0xBD42 +0x9489 0xBD43 +0x948A 0xBD44 +0x948B 0xBD45 +0x948C 0xBD46 +0x948D 0xBD47 +0x948E 0xBD4A +0x948F 0xBD4B +0x9490 0xBD4D +0x9491 0xBD4E +0x9492 0xBD4F +0x9493 0xBD51 +0x9494 0xBD52 +0x9495 0xBD53 +0x9496 0xBD54 +0x9497 0xBD55 +0x9498 0xBD56 +0x9499 0xBD57 +0x949A 0xBD5A +0x949B 0xBD5B +0x949C 0xBD5C +0x949D 0xBD5D +0x949E 0xBD5E +0x949F 0xBD5F +0x94A0 0xBD60 +0x94A1 0xBD61 +0x94A2 0xBD62 +0x94A3 0xBD63 +0x94A4 0xBD65 +0x94A5 0xBD66 +0x94A6 0xBD67 +0x94A7 0xBD69 +0x94A8 0xBD6A +0x94A9 0xBD6B +0x94AA 0xBD6C +0x94AB 0xBD6D +0x94AC 0xBD6E +0x94AD 0xBD6F +0x94AE 0xBD70 +0x94AF 0xBD71 +0x94B0 0xBD72 +0x94B1 0xBD73 +0x94B2 0xBD74 +0x94B3 0xBD75 +0x94B4 0xBD76 +0x94B5 0xBD77 +0x94B6 0xBD78 +0x94B7 0xBD79 +0x94B8 0xBD7A +0x94B9 0xBD7B +0x94BA 0xBD7C +0x94BB 0xBD7D +0x94BC 0xBD7E +0x94BD 0xBD7F +0x94BE 0xBD82 +0x94BF 0xBD83 +0x94C0 0xBD85 +0x94C1 0xBD86 +0x94C2 0xBD8B +0x94C3 0xBD8C +0x94C4 0xBD8D +0x94C5 0xBD8E +0x94C6 0xBD8F +0x94C7 0xBD92 +0x94C8 0xBD94 +0x94C9 0xBD96 +0x94CA 0xBD97 +0x94CB 0xBD98 +0x94CC 0xBD9B +0x94CD 0xBD9D +0x94CE 0xBD9E +0x94CF 0xBD9F +0x94D0 0xBDA0 +0x94D1 0xBDA1 +0x94D2 0xBDA2 +0x94D3 0xBDA3 +0x94D4 0xBDA5 +0x94D5 0xBDA6 +0x94D6 0xBDA7 +0x94D7 0xBDA8 +0x94D8 0xBDA9 +0x94D9 0xBDAA +0x94DA 0xBDAB +0x94DB 0xBDAC +0x94DC 0xBDAD +0x94DD 0xBDAE +0x94DE 0xBDAF +0x94DF 0xBDB1 +0x94E0 0xBDB2 +0x94E1 0xBDB3 +0x94E2 0xBDB4 +0x94E3 0xBDB5 +0x94E4 0xBDB6 +0x94E5 0xBDB7 +0x94E6 0xBDB9 +0x94E7 0xBDBA +0x94E8 0xBDBB +0x94E9 0xBDBC +0x94EA 0xBDBD +0x94EB 0xBDBE +0x94EC 0xBDBF +0x94ED 0xBDC0 +0x94EE 0xBDC1 +0x94EF 0xBDC2 +0x94F0 0xBDC3 +0x94F1 0xBDC4 +0x94F2 0xBDC5 +0x94F3 0xBDC6 +0x94F4 0xBDC7 +0x94F5 0xBDC8 +0x94F6 0xBDC9 +0x94F7 0xBDCA +0x94F8 0xBDCB +0x94F9 0xBDCC +0x94FA 0xBDCD +0x94FB 0xBDCE +0x94FC 0xBDCF +0x94FD 0xBDD0 +0x94FE 0xBDD1 +0x9541 0xBDD2 +0x9542 0xBDD3 +0x9543 0xBDD6 +0x9544 0xBDD7 +0x9545 0xBDD9 +0x9546 0xBDDA +0x9547 0xBDDB +0x9548 0xBDDD +0x9549 0xBDDE +0x954A 0xBDDF +0x954B 0xBDE0 +0x954C 0xBDE1 +0x954D 0xBDE2 +0x954E 0xBDE3 +0x954F 0xBDE4 +0x9550 0xBDE5 +0x9551 0xBDE6 +0x9552 0xBDE7 +0x9553 0xBDE8 +0x9554 0xBDEA +0x9555 0xBDEB +0x9556 0xBDEC +0x9557 0xBDED +0x9558 0xBDEE +0x9559 0xBDEF +0x955A 0xBDF1 +0x9561 0xBDF2 +0x9562 0xBDF3 +0x9563 0xBDF5 +0x9564 0xBDF6 +0x9565 0xBDF7 +0x9566 0xBDF9 +0x9567 0xBDFA +0x9568 0xBDFB +0x9569 0xBDFC +0x956A 0xBDFD +0x956B 0xBDFE +0x956C 0xBDFF +0x956D 0xBE01 +0x956E 0xBE02 +0x956F 0xBE04 +0x9570 0xBE06 +0x9571 0xBE07 +0x9572 0xBE08 +0x9573 0xBE09 +0x9574 0xBE0A +0x9575 0xBE0B +0x9576 0xBE0E +0x9577 0xBE0F +0x9578 0xBE11 +0x9579 0xBE12 +0x957A 0xBE13 +0x9581 0xBE15 +0x9582 0xBE16 +0x9583 0xBE17 +0x9584 0xBE18 +0x9585 0xBE19 +0x9586 0xBE1A +0x9587 0xBE1B +0x9588 0xBE1E +0x9589 0xBE20 +0x958A 0xBE21 +0x958B 0xBE22 +0x958C 0xBE23 +0x958D 0xBE24 +0x958E 0xBE25 +0x958F 0xBE26 +0x9590 0xBE27 +0x9591 0xBE28 +0x9592 0xBE29 +0x9593 0xBE2A +0x9594 0xBE2B +0x9595 0xBE2C +0x9596 0xBE2D +0x9597 0xBE2E +0x9598 0xBE2F +0x9599 0xBE30 +0x959A 0xBE31 +0x959B 0xBE32 +0x959C 0xBE33 +0x959D 0xBE34 +0x959E 0xBE35 +0x959F 0xBE36 +0x95A0 0xBE37 +0x95A1 0xBE38 +0x95A2 0xBE39 +0x95A3 0xBE3A +0x95A4 0xBE3B +0x95A5 0xBE3C +0x95A6 0xBE3D +0x95A7 0xBE3E +0x95A8 0xBE3F +0x95A9 0xBE40 +0x95AA 0xBE41 +0x95AB 0xBE42 +0x95AC 0xBE43 +0x95AD 0xBE46 +0x95AE 0xBE47 +0x95AF 0xBE49 +0x95B0 0xBE4A +0x95B1 0xBE4B +0x95B2 0xBE4D +0x95B3 0xBE4F +0x95B4 0xBE50 +0x95B5 0xBE51 +0x95B6 0xBE52 +0x95B7 0xBE53 +0x95B8 0xBE56 +0x95B9 0xBE58 +0x95BA 0xBE5C +0x95BB 0xBE5D +0x95BC 0xBE5E +0x95BD 0xBE5F +0x95BE 0xBE62 +0x95BF 0xBE63 +0x95C0 0xBE65 +0x95C1 0xBE66 +0x95C2 0xBE67 +0x95C3 0xBE69 +0x95C4 0xBE6B +0x95C5 0xBE6C +0x95C6 0xBE6D +0x95C7 0xBE6E +0x95C8 0xBE6F +0x95C9 0xBE72 +0x95CA 0xBE76 +0x95CB 0xBE77 +0x95CC 0xBE78 +0x95CD 0xBE79 +0x95CE 0xBE7A +0x95CF 0xBE7E +0x95D0 0xBE7F +0x95D1 0xBE81 +0x95D2 0xBE82 +0x95D3 0xBE83 +0x95D4 0xBE85 +0x95D5 0xBE86 +0x95D6 0xBE87 +0x95D7 0xBE88 +0x95D8 0xBE89 +0x95D9 0xBE8A +0x95DA 0xBE8B +0x95DB 0xBE8E +0x95DC 0xBE92 +0x95DD 0xBE93 +0x95DE 0xBE94 +0x95DF 0xBE95 +0x95E0 0xBE96 +0x95E1 0xBE97 +0x95E2 0xBE9A +0x95E3 0xBE9B +0x95E4 0xBE9C +0x95E5 0xBE9D +0x95E6 0xBE9E +0x95E7 0xBE9F +0x95E8 0xBEA0 +0x95E9 0xBEA1 +0x95EA 0xBEA2 +0x95EB 0xBEA3 +0x95EC 0xBEA4 +0x95ED 0xBEA5 +0x95EE 0xBEA6 +0x95EF 0xBEA7 +0x95F0 0xBEA9 +0x95F1 0xBEAA +0x95F2 0xBEAB +0x95F3 0xBEAC +0x95F4 0xBEAD +0x95F5 0xBEAE +0x95F6 0xBEAF +0x95F7 0xBEB0 +0x95F8 0xBEB1 +0x95F9 0xBEB2 +0x95FA 0xBEB3 +0x95FB 0xBEB4 +0x95FC 0xBEB5 +0x95FD 0xBEB6 +0x95FE 0xBEB7 +0x9641 0xBEB8 +0x9642 0xBEB9 +0x9643 0xBEBA +0x9644 0xBEBB +0x9645 0xBEBC +0x9646 0xBEBD +0x9647 0xBEBE +0x9648 0xBEBF +0x9649 0xBEC0 +0x964A 0xBEC1 +0x964B 0xBEC2 +0x964C 0xBEC3 +0x964D 0xBEC4 +0x964E 0xBEC5 +0x964F 0xBEC6 +0x9650 0xBEC7 +0x9651 0xBEC8 +0x9652 0xBEC9 +0x9653 0xBECA +0x9654 0xBECB +0x9655 0xBECC +0x9656 0xBECD +0x9657 0xBECE +0x9658 0xBECF +0x9659 0xBED2 +0x965A 0xBED3 +0x9661 0xBED5 +0x9662 0xBED6 +0x9663 0xBED9 +0x9664 0xBEDA +0x9665 0xBEDB +0x9666 0xBEDC +0x9667 0xBEDD +0x9668 0xBEDE +0x9669 0xBEDF +0x966A 0xBEE1 +0x966B 0xBEE2 +0x966C 0xBEE6 +0x966D 0xBEE7 +0x966E 0xBEE8 +0x966F 0xBEE9 +0x9670 0xBEEA +0x9671 0xBEEB +0x9672 0xBEED +0x9673 0xBEEE +0x9674 0xBEEF +0x9675 0xBEF0 +0x9676 0xBEF1 +0x9677 0xBEF2 +0x9678 0xBEF3 +0x9679 0xBEF4 +0x967A 0xBEF5 +0x9681 0xBEF6 +0x9682 0xBEF7 +0x9683 0xBEF8 +0x9684 0xBEF9 +0x9685 0xBEFA +0x9686 0xBEFB +0x9687 0xBEFC +0x9688 0xBEFD +0x9689 0xBEFE +0x968A 0xBEFF +0x968B 0xBF00 +0x968C 0xBF02 +0x968D 0xBF03 +0x968E 0xBF04 +0x968F 0xBF05 +0x9690 0xBF06 +0x9691 0xBF07 +0x9692 0xBF0A +0x9693 0xBF0B +0x9694 0xBF0C +0x9695 0xBF0D +0x9696 0xBF0E +0x9697 0xBF0F +0x9698 0xBF10 +0x9699 0xBF11 +0x969A 0xBF12 +0x969B 0xBF13 +0x969C 0xBF14 +0x969D 0xBF15 +0x969E 0xBF16 +0x969F 0xBF17 +0x96A0 0xBF1A +0x96A1 0xBF1E +0x96A2 0xBF1F +0x96A3 0xBF20 +0x96A4 0xBF21 +0x96A5 0xBF22 +0x96A6 0xBF23 +0x96A7 0xBF24 +0x96A8 0xBF25 +0x96A9 0xBF26 +0x96AA 0xBF27 +0x96AB 0xBF28 +0x96AC 0xBF29 +0x96AD 0xBF2A +0x96AE 0xBF2B +0x96AF 0xBF2C +0x96B0 0xBF2D +0x96B1 0xBF2E +0x96B2 0xBF2F +0x96B3 0xBF30 +0x96B4 0xBF31 +0x96B5 0xBF32 +0x96B6 0xBF33 +0x96B7 0xBF34 +0x96B8 0xBF35 +0x96B9 0xBF36 +0x96BA 0xBF37 +0x96BB 0xBF38 +0x96BC 0xBF39 +0x96BD 0xBF3A +0x96BE 0xBF3B +0x96BF 0xBF3C +0x96C0 0xBF3D +0x96C1 0xBF3E +0x96C2 0xBF3F +0x96C3 0xBF42 +0x96C4 0xBF43 +0x96C5 0xBF45 +0x96C6 0xBF46 +0x96C7 0xBF47 +0x96C8 0xBF49 +0x96C9 0xBF4A +0x96CA 0xBF4B +0x96CB 0xBF4C +0x96CC 0xBF4D +0x96CD 0xBF4E +0x96CE 0xBF4F +0x96CF 0xBF52 +0x96D0 0xBF53 +0x96D1 0xBF54 +0x96D2 0xBF56 +0x96D3 0xBF57 +0x96D4 0xBF58 +0x96D5 0xBF59 +0x96D6 0xBF5A +0x96D7 0xBF5B +0x96D8 0xBF5C +0x96D9 0xBF5D +0x96DA 0xBF5E +0x96DB 0xBF5F +0x96DC 0xBF60 +0x96DD 0xBF61 +0x96DE 0xBF62 +0x96DF 0xBF63 +0x96E0 0xBF64 +0x96E1 0xBF65 +0x96E2 0xBF66 +0x96E3 0xBF67 +0x96E4 0xBF68 +0x96E5 0xBF69 +0x96E6 0xBF6A +0x96E7 0xBF6B +0x96E8 0xBF6C +0x96E9 0xBF6D +0x96EA 0xBF6E +0x96EB 0xBF6F +0x96EC 0xBF70 +0x96ED 0xBF71 +0x96EE 0xBF72 +0x96EF 0xBF73 +0x96F0 0xBF74 +0x96F1 0xBF75 +0x96F2 0xBF76 +0x96F3 0xBF77 +0x96F4 0xBF78 +0x96F5 0xBF79 +0x96F6 0xBF7A +0x96F7 0xBF7B +0x96F8 0xBF7C +0x96F9 0xBF7D +0x96FA 0xBF7E +0x96FB 0xBF7F +0x96FC 0xBF80 +0x96FD 0xBF81 +0x96FE 0xBF82 +0x9741 0xBF83 +0x9742 0xBF84 +0x9743 0xBF85 +0x9744 0xBF86 +0x9745 0xBF87 +0x9746 0xBF88 +0x9747 0xBF89 +0x9748 0xBF8A +0x9749 0xBF8B +0x974A 0xBF8C +0x974B 0xBF8D +0x974C 0xBF8E +0x974D 0xBF8F +0x974E 0xBF90 +0x974F 0xBF91 +0x9750 0xBF92 +0x9751 0xBF93 +0x9752 0xBF95 +0x9753 0xBF96 +0x9754 0xBF97 +0x9755 0xBF98 +0x9756 0xBF99 +0x9757 0xBF9A +0x9758 0xBF9B +0x9759 0xBF9C +0x975A 0xBF9D +0x9761 0xBF9E +0x9762 0xBF9F +0x9763 0xBFA0 +0x9764 0xBFA1 +0x9765 0xBFA2 +0x9766 0xBFA3 +0x9767 0xBFA4 +0x9768 0xBFA5 +0x9769 0xBFA6 +0x976A 0xBFA7 +0x976B 0xBFA8 +0x976C 0xBFA9 +0x976D 0xBFAA +0x976E 0xBFAB +0x976F 0xBFAC +0x9770 0xBFAD +0x9771 0xBFAE +0x9772 0xBFAF +0x9773 0xBFB1 +0x9774 0xBFB2 +0x9775 0xBFB3 +0x9776 0xBFB4 +0x9777 0xBFB5 +0x9778 0xBFB6 +0x9779 0xBFB7 +0x977A 0xBFB8 +0x9781 0xBFB9 +0x9782 0xBFBA +0x9783 0xBFBB +0x9784 0xBFBC +0x9785 0xBFBD +0x9786 0xBFBE +0x9787 0xBFBF +0x9788 0xBFC0 +0x9789 0xBFC1 +0x978A 0xBFC2 +0x978B 0xBFC3 +0x978C 0xBFC4 +0x978D 0xBFC6 +0x978E 0xBFC7 +0x978F 0xBFC8 +0x9790 0xBFC9 +0x9791 0xBFCA +0x9792 0xBFCB +0x9793 0xBFCE +0x9794 0xBFCF +0x9795 0xBFD1 +0x9796 0xBFD2 +0x9797 0xBFD3 +0x9798 0xBFD5 +0x9799 0xBFD6 +0x979A 0xBFD7 +0x979B 0xBFD8 +0x979C 0xBFD9 +0x979D 0xBFDA +0x979E 0xBFDB +0x979F 0xBFDD +0x97A0 0xBFDE +0x97A1 0xBFE0 +0x97A2 0xBFE2 +0x97A3 0xBFE3 +0x97A4 0xBFE4 +0x97A5 0xBFE5 +0x97A6 0xBFE6 +0x97A7 0xBFE7 +0x97A8 0xBFE8 +0x97A9 0xBFE9 +0x97AA 0xBFEA +0x97AB 0xBFEB +0x97AC 0xBFEC +0x97AD 0xBFED +0x97AE 0xBFEE +0x97AF 0xBFEF +0x97B0 0xBFF0 +0x97B1 0xBFF1 +0x97B2 0xBFF2 +0x97B3 0xBFF3 +0x97B4 0xBFF4 +0x97B5 0xBFF5 +0x97B6 0xBFF6 +0x97B7 0xBFF7 +0x97B8 0xBFF8 +0x97B9 0xBFF9 +0x97BA 0xBFFA +0x97BB 0xBFFB +0x97BC 0xBFFC +0x97BD 0xBFFD +0x97BE 0xBFFE +0x97BF 0xBFFF +0x97C0 0xC000 +0x97C1 0xC001 +0x97C2 0xC002 +0x97C3 0xC003 +0x97C4 0xC004 +0x97C5 0xC005 +0x97C6 0xC006 +0x97C7 0xC007 +0x97C8 0xC008 +0x97C9 0xC009 +0x97CA 0xC00A +0x97CB 0xC00B +0x97CC 0xC00C +0x97CD 0xC00D +0x97CE 0xC00E +0x97CF 0xC00F +0x97D0 0xC010 +0x97D1 0xC011 +0x97D2 0xC012 +0x97D3 0xC013 +0x97D4 0xC014 +0x97D5 0xC015 +0x97D6 0xC016 +0x97D7 0xC017 +0x97D8 0xC018 +0x97D9 0xC019 +0x97DA 0xC01A +0x97DB 0xC01B +0x97DC 0xC01C +0x97DD 0xC01D +0x97DE 0xC01E +0x97DF 0xC01F +0x97E0 0xC020 +0x97E1 0xC021 +0x97E2 0xC022 +0x97E3 0xC023 +0x97E4 0xC024 +0x97E5 0xC025 +0x97E6 0xC026 +0x97E7 0xC027 +0x97E8 0xC028 +0x97E9 0xC029 +0x97EA 0xC02A +0x97EB 0xC02B +0x97EC 0xC02C +0x97ED 0xC02D +0x97EE 0xC02E +0x97EF 0xC02F +0x97F0 0xC030 +0x97F1 0xC031 +0x97F2 0xC032 +0x97F3 0xC033 +0x97F4 0xC034 +0x97F5 0xC035 +0x97F6 0xC036 +0x97F7 0xC037 +0x97F8 0xC038 +0x97F9 0xC039 +0x97FA 0xC03A +0x97FB 0xC03B +0x97FC 0xC03D +0x97FD 0xC03E +0x97FE 0xC03F +0x9841 0xC040 +0x9842 0xC041 +0x9843 0xC042 +0x9844 0xC043 +0x9845 0xC044 +0x9846 0xC045 +0x9847 0xC046 +0x9848 0xC047 +0x9849 0xC048 +0x984A 0xC049 +0x984B 0xC04A +0x984C 0xC04B +0x984D 0xC04C +0x984E 0xC04D +0x984F 0xC04E +0x9850 0xC04F +0x9851 0xC050 +0x9852 0xC052 +0x9853 0xC053 +0x9854 0xC054 +0x9855 0xC055 +0x9856 0xC056 +0x9857 0xC057 +0x9858 0xC059 +0x9859 0xC05A +0x985A 0xC05B +0x9861 0xC05D +0x9862 0xC05E +0x9863 0xC05F +0x9864 0xC061 +0x9865 0xC062 +0x9866 0xC063 +0x9867 0xC064 +0x9868 0xC065 +0x9869 0xC066 +0x986A 0xC067 +0x986B 0xC06A +0x986C 0xC06B +0x986D 0xC06C +0x986E 0xC06D +0x986F 0xC06E +0x9870 0xC06F +0x9871 0xC070 +0x9872 0xC071 +0x9873 0xC072 +0x9874 0xC073 +0x9875 0xC074 +0x9876 0xC075 +0x9877 0xC076 +0x9878 0xC077 +0x9879 0xC078 +0x987A 0xC079 +0x9881 0xC07A +0x9882 0xC07B +0x9883 0xC07C +0x9884 0xC07D +0x9885 0xC07E +0x9886 0xC07F +0x9887 0xC080 +0x9888 0xC081 +0x9889 0xC082 +0x988A 0xC083 +0x988B 0xC084 +0x988C 0xC085 +0x988D 0xC086 +0x988E 0xC087 +0x988F 0xC088 +0x9890 0xC089 +0x9891 0xC08A +0x9892 0xC08B +0x9893 0xC08C +0x9894 0xC08D +0x9895 0xC08E +0x9896 0xC08F +0x9897 0xC092 +0x9898 0xC093 +0x9899 0xC095 +0x989A 0xC096 +0x989B 0xC097 +0x989C 0xC099 +0x989D 0xC09A +0x989E 0xC09B +0x989F 0xC09C +0x98A0 0xC09D +0x98A1 0xC09E +0x98A2 0xC09F +0x98A3 0xC0A2 +0x98A4 0xC0A4 +0x98A5 0xC0A6 +0x98A6 0xC0A7 +0x98A7 0xC0A8 +0x98A8 0xC0A9 +0x98A9 0xC0AA +0x98AA 0xC0AB +0x98AB 0xC0AE +0x98AC 0xC0B1 +0x98AD 0xC0B2 +0x98AE 0xC0B7 +0x98AF 0xC0B8 +0x98B0 0xC0B9 +0x98B1 0xC0BA +0x98B2 0xC0BB +0x98B3 0xC0BE +0x98B4 0xC0C2 +0x98B5 0xC0C3 +0x98B6 0xC0C4 +0x98B7 0xC0C6 +0x98B8 0xC0C7 +0x98B9 0xC0CA +0x98BA 0xC0CB +0x98BB 0xC0CD +0x98BC 0xC0CE +0x98BD 0xC0CF +0x98BE 0xC0D1 +0x98BF 0xC0D2 +0x98C0 0xC0D3 +0x98C1 0xC0D4 +0x98C2 0xC0D5 +0x98C3 0xC0D6 +0x98C4 0xC0D7 +0x98C5 0xC0DA +0x98C6 0xC0DE +0x98C7 0xC0DF +0x98C8 0xC0E0 +0x98C9 0xC0E1 +0x98CA 0xC0E2 +0x98CB 0xC0E3 +0x98CC 0xC0E6 +0x98CD 0xC0E7 +0x98CE 0xC0E9 +0x98CF 0xC0EA +0x98D0 0xC0EB +0x98D1 0xC0ED +0x98D2 0xC0EE +0x98D3 0xC0EF +0x98D4 0xC0F0 +0x98D5 0xC0F1 +0x98D6 0xC0F2 +0x98D7 0xC0F3 +0x98D8 0xC0F6 +0x98D9 0xC0F8 +0x98DA 0xC0FA +0x98DB 0xC0FB +0x98DC 0xC0FC +0x98DD 0xC0FD +0x98DE 0xC0FE +0x98DF 0xC0FF +0x98E0 0xC101 +0x98E1 0xC102 +0x98E2 0xC103 +0x98E3 0xC105 +0x98E4 0xC106 +0x98E5 0xC107 +0x98E6 0xC109 +0x98E7 0xC10A +0x98E8 0xC10B +0x98E9 0xC10C +0x98EA 0xC10D +0x98EB 0xC10E +0x98EC 0xC10F +0x98ED 0xC111 +0x98EE 0xC112 +0x98EF 0xC113 +0x98F0 0xC114 +0x98F1 0xC116 +0x98F2 0xC117 +0x98F3 0xC118 +0x98F4 0xC119 +0x98F5 0xC11A +0x98F6 0xC11B +0x98F7 0xC121 +0x98F8 0xC122 +0x98F9 0xC125 +0x98FA 0xC128 +0x98FB 0xC129 +0x98FC 0xC12A +0x98FD 0xC12B +0x98FE 0xC12E +0x9941 0xC132 +0x9942 0xC133 +0x9943 0xC134 +0x9944 0xC135 +0x9945 0xC137 +0x9946 0xC13A +0x9947 0xC13B +0x9948 0xC13D +0x9949 0xC13E +0x994A 0xC13F +0x994B 0xC141 +0x994C 0xC142 +0x994D 0xC143 +0x994E 0xC144 +0x994F 0xC145 +0x9950 0xC146 +0x9951 0xC147 +0x9952 0xC14A +0x9953 0xC14E +0x9954 0xC14F +0x9955 0xC150 +0x9956 0xC151 +0x9957 0xC152 +0x9958 0xC153 +0x9959 0xC156 +0x995A 0xC157 +0x9961 0xC159 +0x9962 0xC15A +0x9963 0xC15B +0x9964 0xC15D +0x9965 0xC15E +0x9966 0xC15F +0x9967 0xC160 +0x9968 0xC161 +0x9969 0xC162 +0x996A 0xC163 +0x996B 0xC166 +0x996C 0xC16A +0x996D 0xC16B +0x996E 0xC16C +0x996F 0xC16D +0x9970 0xC16E +0x9971 0xC16F +0x9972 0xC171 +0x9973 0xC172 +0x9974 0xC173 +0x9975 0xC175 +0x9976 0xC176 +0x9977 0xC177 +0x9978 0xC179 +0x9979 0xC17A +0x997A 0xC17B +0x9981 0xC17C +0x9982 0xC17D +0x9983 0xC17E +0x9984 0xC17F +0x9985 0xC180 +0x9986 0xC181 +0x9987 0xC182 +0x9988 0xC183 +0x9989 0xC184 +0x998A 0xC186 +0x998B 0xC187 +0x998C 0xC188 +0x998D 0xC189 +0x998E 0xC18A +0x998F 0xC18B +0x9990 0xC18F +0x9991 0xC191 +0x9992 0xC192 +0x9993 0xC193 +0x9994 0xC195 +0x9995 0xC197 +0x9996 0xC198 +0x9997 0xC199 +0x9998 0xC19A +0x9999 0xC19B +0x999A 0xC19E +0x999B 0xC1A0 +0x999C 0xC1A2 +0x999D 0xC1A3 +0x999E 0xC1A4 +0x999F 0xC1A6 +0x99A0 0xC1A7 +0x99A1 0xC1AA +0x99A2 0xC1AB +0x99A3 0xC1AD +0x99A4 0xC1AE +0x99A5 0xC1AF +0x99A6 0xC1B1 +0x99A7 0xC1B2 +0x99A8 0xC1B3 +0x99A9 0xC1B4 +0x99AA 0xC1B5 +0x99AB 0xC1B6 +0x99AC 0xC1B7 +0x99AD 0xC1B8 +0x99AE 0xC1B9 +0x99AF 0xC1BA +0x99B0 0xC1BB +0x99B1 0xC1BC +0x99B2 0xC1BE +0x99B3 0xC1BF +0x99B4 0xC1C0 +0x99B5 0xC1C1 +0x99B6 0xC1C2 +0x99B7 0xC1C3 +0x99B8 0xC1C5 +0x99B9 0xC1C6 +0x99BA 0xC1C7 +0x99BB 0xC1C9 +0x99BC 0xC1CA +0x99BD 0xC1CB +0x99BE 0xC1CD +0x99BF 0xC1CE +0x99C0 0xC1CF +0x99C1 0xC1D0 +0x99C2 0xC1D1 +0x99C3 0xC1D2 +0x99C4 0xC1D3 +0x99C5 0xC1D5 +0x99C6 0xC1D6 +0x99C7 0xC1D9 +0x99C8 0xC1DA +0x99C9 0xC1DB +0x99CA 0xC1DC +0x99CB 0xC1DD +0x99CC 0xC1DE +0x99CD 0xC1DF +0x99CE 0xC1E1 +0x99CF 0xC1E2 +0x99D0 0xC1E3 +0x99D1 0xC1E5 +0x99D2 0xC1E6 +0x99D3 0xC1E7 +0x99D4 0xC1E9 +0x99D5 0xC1EA +0x99D6 0xC1EB +0x99D7 0xC1EC +0x99D8 0xC1ED +0x99D9 0xC1EE +0x99DA 0xC1EF +0x99DB 0xC1F2 +0x99DC 0xC1F4 +0x99DD 0xC1F5 +0x99DE 0xC1F6 +0x99DF 0xC1F7 +0x99E0 0xC1F8 +0x99E1 0xC1F9 +0x99E2 0xC1FA +0x99E3 0xC1FB +0x99E4 0xC1FE +0x99E5 0xC1FF +0x99E6 0xC201 +0x99E7 0xC202 +0x99E8 0xC203 +0x99E9 0xC205 +0x99EA 0xC206 +0x99EB 0xC207 +0x99EC 0xC208 +0x99ED 0xC209 +0x99EE 0xC20A +0x99EF 0xC20B +0x99F0 0xC20E +0x99F1 0xC210 +0x99F2 0xC212 +0x99F3 0xC213 +0x99F4 0xC214 +0x99F5 0xC215 +0x99F6 0xC216 +0x99F7 0xC217 +0x99F8 0xC21A +0x99F9 0xC21B +0x99FA 0xC21D +0x99FB 0xC21E +0x99FC 0xC221 +0x99FD 0xC222 +0x99FE 0xC223 +0x9A41 0xC224 +0x9A42 0xC225 +0x9A43 0xC226 +0x9A44 0xC227 +0x9A45 0xC22A +0x9A46 0xC22C +0x9A47 0xC22E +0x9A48 0xC230 +0x9A49 0xC233 +0x9A4A 0xC235 +0x9A4B 0xC236 +0x9A4C 0xC237 +0x9A4D 0xC238 +0x9A4E 0xC239 +0x9A4F 0xC23A +0x9A50 0xC23B +0x9A51 0xC23C +0x9A52 0xC23D +0x9A53 0xC23E +0x9A54 0xC23F +0x9A55 0xC240 +0x9A56 0xC241 +0x9A57 0xC242 +0x9A58 0xC243 +0x9A59 0xC244 +0x9A5A 0xC245 +0x9A61 0xC246 +0x9A62 0xC247 +0x9A63 0xC249 +0x9A64 0xC24A +0x9A65 0xC24B +0x9A66 0xC24C +0x9A67 0xC24D +0x9A68 0xC24E +0x9A69 0xC24F +0x9A6A 0xC252 +0x9A6B 0xC253 +0x9A6C 0xC255 +0x9A6D 0xC256 +0x9A6E 0xC257 +0x9A6F 0xC259 +0x9A70 0xC25A +0x9A71 0xC25B +0x9A72 0xC25C +0x9A73 0xC25D +0x9A74 0xC25E +0x9A75 0xC25F +0x9A76 0xC261 +0x9A77 0xC262 +0x9A78 0xC263 +0x9A79 0xC264 +0x9A7A 0xC266 +0x9A81 0xC267 +0x9A82 0xC268 +0x9A83 0xC269 +0x9A84 0xC26A +0x9A85 0xC26B +0x9A86 0xC26E +0x9A87 0xC26F +0x9A88 0xC271 +0x9A89 0xC272 +0x9A8A 0xC273 +0x9A8B 0xC275 +0x9A8C 0xC276 +0x9A8D 0xC277 +0x9A8E 0xC278 +0x9A8F 0xC279 +0x9A90 0xC27A +0x9A91 0xC27B +0x9A92 0xC27E +0x9A93 0xC280 +0x9A94 0xC282 +0x9A95 0xC283 +0x9A96 0xC284 +0x9A97 0xC285 +0x9A98 0xC286 +0x9A99 0xC287 +0x9A9A 0xC28A +0x9A9B 0xC28B +0x9A9C 0xC28C +0x9A9D 0xC28D +0x9A9E 0xC28E +0x9A9F 0xC28F +0x9AA0 0xC291 +0x9AA1 0xC292 +0x9AA2 0xC293 +0x9AA3 0xC294 +0x9AA4 0xC295 +0x9AA5 0xC296 +0x9AA6 0xC297 +0x9AA7 0xC299 +0x9AA8 0xC29A +0x9AA9 0xC29C +0x9AAA 0xC29E +0x9AAB 0xC29F +0x9AAC 0xC2A0 +0x9AAD 0xC2A1 +0x9AAE 0xC2A2 +0x9AAF 0xC2A3 +0x9AB0 0xC2A6 +0x9AB1 0xC2A7 +0x9AB2 0xC2A9 +0x9AB3 0xC2AA +0x9AB4 0xC2AB +0x9AB5 0xC2AE +0x9AB6 0xC2AF +0x9AB7 0xC2B0 +0x9AB8 0xC2B1 +0x9AB9 0xC2B2 +0x9ABA 0xC2B3 +0x9ABB 0xC2B6 +0x9ABC 0xC2B8 +0x9ABD 0xC2BA +0x9ABE 0xC2BB +0x9ABF 0xC2BC +0x9AC0 0xC2BD +0x9AC1 0xC2BE +0x9AC2 0xC2BF +0x9AC3 0xC2C0 +0x9AC4 0xC2C1 +0x9AC5 0xC2C2 +0x9AC6 0xC2C3 +0x9AC7 0xC2C4 +0x9AC8 0xC2C5 +0x9AC9 0xC2C6 +0x9ACA 0xC2C7 +0x9ACB 0xC2C8 +0x9ACC 0xC2C9 +0x9ACD 0xC2CA +0x9ACE 0xC2CB +0x9ACF 0xC2CC +0x9AD0 0xC2CD +0x9AD1 0xC2CE +0x9AD2 0xC2CF +0x9AD3 0xC2D0 +0x9AD4 0xC2D1 +0x9AD5 0xC2D2 +0x9AD6 0xC2D3 +0x9AD7 0xC2D4 +0x9AD8 0xC2D5 +0x9AD9 0xC2D6 +0x9ADA 0xC2D7 +0x9ADB 0xC2D8 +0x9ADC 0xC2D9 +0x9ADD 0xC2DA +0x9ADE 0xC2DB +0x9ADF 0xC2DE +0x9AE0 0xC2DF +0x9AE1 0xC2E1 +0x9AE2 0xC2E2 +0x9AE3 0xC2E5 +0x9AE4 0xC2E6 +0x9AE5 0xC2E7 +0x9AE6 0xC2E8 +0x9AE7 0xC2E9 +0x9AE8 0xC2EA +0x9AE9 0xC2EE +0x9AEA 0xC2F0 +0x9AEB 0xC2F2 +0x9AEC 0xC2F3 +0x9AED 0xC2F4 +0x9AEE 0xC2F5 +0x9AEF 0xC2F7 +0x9AF0 0xC2FA +0x9AF1 0xC2FD +0x9AF2 0xC2FE +0x9AF3 0xC2FF +0x9AF4 0xC301 +0x9AF5 0xC302 +0x9AF6 0xC303 +0x9AF7 0xC304 +0x9AF8 0xC305 +0x9AF9 0xC306 +0x9AFA 0xC307 +0x9AFB 0xC30A +0x9AFC 0xC30B +0x9AFD 0xC30E +0x9AFE 0xC30F +0x9B41 0xC310 +0x9B42 0xC311 +0x9B43 0xC312 +0x9B44 0xC316 +0x9B45 0xC317 +0x9B46 0xC319 +0x9B47 0xC31A +0x9B48 0xC31B +0x9B49 0xC31D +0x9B4A 0xC31E +0x9B4B 0xC31F +0x9B4C 0xC320 +0x9B4D 0xC321 +0x9B4E 0xC322 +0x9B4F 0xC323 +0x9B50 0xC326 +0x9B51 0xC327 +0x9B52 0xC32A +0x9B53 0xC32B +0x9B54 0xC32C +0x9B55 0xC32D +0x9B56 0xC32E +0x9B57 0xC32F +0x9B58 0xC330 +0x9B59 0xC331 +0x9B5A 0xC332 +0x9B61 0xC333 +0x9B62 0xC334 +0x9B63 0xC335 +0x9B64 0xC336 +0x9B65 0xC337 +0x9B66 0xC338 +0x9B67 0xC339 +0x9B68 0xC33A +0x9B69 0xC33B +0x9B6A 0xC33C +0x9B6B 0xC33D +0x9B6C 0xC33E +0x9B6D 0xC33F +0x9B6E 0xC340 +0x9B6F 0xC341 +0x9B70 0xC342 +0x9B71 0xC343 +0x9B72 0xC344 +0x9B73 0xC346 +0x9B74 0xC347 +0x9B75 0xC348 +0x9B76 0xC349 +0x9B77 0xC34A +0x9B78 0xC34B +0x9B79 0xC34C +0x9B7A 0xC34D +0x9B81 0xC34E +0x9B82 0xC34F +0x9B83 0xC350 +0x9B84 0xC351 +0x9B85 0xC352 +0x9B86 0xC353 +0x9B87 0xC354 +0x9B88 0xC355 +0x9B89 0xC356 +0x9B8A 0xC357 +0x9B8B 0xC358 +0x9B8C 0xC359 +0x9B8D 0xC35A +0x9B8E 0xC35B +0x9B8F 0xC35C +0x9B90 0xC35D +0x9B91 0xC35E +0x9B92 0xC35F +0x9B93 0xC360 +0x9B94 0xC361 +0x9B95 0xC362 +0x9B96 0xC363 +0x9B97 0xC364 +0x9B98 0xC365 +0x9B99 0xC366 +0x9B9A 0xC367 +0x9B9B 0xC36A +0x9B9C 0xC36B +0x9B9D 0xC36D +0x9B9E 0xC36E +0x9B9F 0xC36F +0x9BA0 0xC371 +0x9BA1 0xC373 +0x9BA2 0xC374 +0x9BA3 0xC375 +0x9BA4 0xC376 +0x9BA5 0xC377 +0x9BA6 0xC37A +0x9BA7 0xC37B +0x9BA8 0xC37E +0x9BA9 0xC37F +0x9BAA 0xC380 +0x9BAB 0xC381 +0x9BAC 0xC382 +0x9BAD 0xC383 +0x9BAE 0xC385 +0x9BAF 0xC386 +0x9BB0 0xC387 +0x9BB1 0xC389 +0x9BB2 0xC38A +0x9BB3 0xC38B +0x9BB4 0xC38D +0x9BB5 0xC38E +0x9BB6 0xC38F +0x9BB7 0xC390 +0x9BB8 0xC391 +0x9BB9 0xC392 +0x9BBA 0xC393 +0x9BBB 0xC394 +0x9BBC 0xC395 +0x9BBD 0xC396 +0x9BBE 0xC397 +0x9BBF 0xC398 +0x9BC0 0xC399 +0x9BC1 0xC39A +0x9BC2 0xC39B +0x9BC3 0xC39C +0x9BC4 0xC39D +0x9BC5 0xC39E +0x9BC6 0xC39F +0x9BC7 0xC3A0 +0x9BC8 0xC3A1 +0x9BC9 0xC3A2 +0x9BCA 0xC3A3 +0x9BCB 0xC3A4 +0x9BCC 0xC3A5 +0x9BCD 0xC3A6 +0x9BCE 0xC3A7 +0x9BCF 0xC3A8 +0x9BD0 0xC3A9 +0x9BD1 0xC3AA +0x9BD2 0xC3AB +0x9BD3 0xC3AC +0x9BD4 0xC3AD +0x9BD5 0xC3AE +0x9BD6 0xC3AF +0x9BD7 0xC3B0 +0x9BD8 0xC3B1 +0x9BD9 0xC3B2 +0x9BDA 0xC3B3 +0x9BDB 0xC3B4 +0x9BDC 0xC3B5 +0x9BDD 0xC3B6 +0x9BDE 0xC3B7 +0x9BDF 0xC3B8 +0x9BE0 0xC3B9 +0x9BE1 0xC3BA +0x9BE2 0xC3BB +0x9BE3 0xC3BC +0x9BE4 0xC3BD +0x9BE5 0xC3BE +0x9BE6 0xC3BF +0x9BE7 0xC3C1 +0x9BE8 0xC3C2 +0x9BE9 0xC3C3 +0x9BEA 0xC3C4 +0x9BEB 0xC3C5 +0x9BEC 0xC3C6 +0x9BED 0xC3C7 +0x9BEE 0xC3C8 +0x9BEF 0xC3C9 +0x9BF0 0xC3CA +0x9BF1 0xC3CB +0x9BF2 0xC3CC +0x9BF3 0xC3CD +0x9BF4 0xC3CE +0x9BF5 0xC3CF +0x9BF6 0xC3D0 +0x9BF7 0xC3D1 +0x9BF8 0xC3D2 +0x9BF9 0xC3D3 +0x9BFA 0xC3D4 +0x9BFB 0xC3D5 +0x9BFC 0xC3D6 +0x9BFD 0xC3D7 +0x9BFE 0xC3DA +0x9C41 0xC3DB +0x9C42 0xC3DD +0x9C43 0xC3DE +0x9C44 0xC3E1 +0x9C45 0xC3E3 +0x9C46 0xC3E4 +0x9C47 0xC3E5 +0x9C48 0xC3E6 +0x9C49 0xC3E7 +0x9C4A 0xC3EA +0x9C4B 0xC3EB +0x9C4C 0xC3EC +0x9C4D 0xC3EE +0x9C4E 0xC3EF +0x9C4F 0xC3F0 +0x9C50 0xC3F1 +0x9C51 0xC3F2 +0x9C52 0xC3F3 +0x9C53 0xC3F6 +0x9C54 0xC3F7 +0x9C55 0xC3F9 +0x9C56 0xC3FA +0x9C57 0xC3FB +0x9C58 0xC3FC +0x9C59 0xC3FD +0x9C5A 0xC3FE +0x9C61 0xC3FF +0x9C62 0xC400 +0x9C63 0xC401 +0x9C64 0xC402 +0x9C65 0xC403 +0x9C66 0xC404 +0x9C67 0xC405 +0x9C68 0xC406 +0x9C69 0xC407 +0x9C6A 0xC409 +0x9C6B 0xC40A +0x9C6C 0xC40B +0x9C6D 0xC40C +0x9C6E 0xC40D +0x9C6F 0xC40E +0x9C70 0xC40F +0x9C71 0xC411 +0x9C72 0xC412 +0x9C73 0xC413 +0x9C74 0xC414 +0x9C75 0xC415 +0x9C76 0xC416 +0x9C77 0xC417 +0x9C78 0xC418 +0x9C79 0xC419 +0x9C7A 0xC41A +0x9C81 0xC41B +0x9C82 0xC41C +0x9C83 0xC41D +0x9C84 0xC41E +0x9C85 0xC41F +0x9C86 0xC420 +0x9C87 0xC421 +0x9C88 0xC422 +0x9C89 0xC423 +0x9C8A 0xC425 +0x9C8B 0xC426 +0x9C8C 0xC427 +0x9C8D 0xC428 +0x9C8E 0xC429 +0x9C8F 0xC42A +0x9C90 0xC42B +0x9C91 0xC42D +0x9C92 0xC42E +0x9C93 0xC42F +0x9C94 0xC431 +0x9C95 0xC432 +0x9C96 0xC433 +0x9C97 0xC435 +0x9C98 0xC436 +0x9C99 0xC437 +0x9C9A 0xC438 +0x9C9B 0xC439 +0x9C9C 0xC43A +0x9C9D 0xC43B +0x9C9E 0xC43E +0x9C9F 0xC43F +0x9CA0 0xC440 +0x9CA1 0xC441 +0x9CA2 0xC442 +0x9CA3 0xC443 +0x9CA4 0xC444 +0x9CA5 0xC445 +0x9CA6 0xC446 +0x9CA7 0xC447 +0x9CA8 0xC449 +0x9CA9 0xC44A +0x9CAA 0xC44B +0x9CAB 0xC44C +0x9CAC 0xC44D +0x9CAD 0xC44E +0x9CAE 0xC44F +0x9CAF 0xC450 +0x9CB0 0xC451 +0x9CB1 0xC452 +0x9CB2 0xC453 +0x9CB3 0xC454 +0x9CB4 0xC455 +0x9CB5 0xC456 +0x9CB6 0xC457 +0x9CB7 0xC458 +0x9CB8 0xC459 +0x9CB9 0xC45A +0x9CBA 0xC45B +0x9CBB 0xC45C +0x9CBC 0xC45D +0x9CBD 0xC45E +0x9CBE 0xC45F +0x9CBF 0xC460 +0x9CC0 0xC461 +0x9CC1 0xC462 +0x9CC2 0xC463 +0x9CC3 0xC466 +0x9CC4 0xC467 +0x9CC5 0xC469 +0x9CC6 0xC46A +0x9CC7 0xC46B +0x9CC8 0xC46D +0x9CC9 0xC46E +0x9CCA 0xC46F +0x9CCB 0xC470 +0x9CCC 0xC471 +0x9CCD 0xC472 +0x9CCE 0xC473 +0x9CCF 0xC476 +0x9CD0 0xC477 +0x9CD1 0xC478 +0x9CD2 0xC47A +0x9CD3 0xC47B +0x9CD4 0xC47C +0x9CD5 0xC47D +0x9CD6 0xC47E +0x9CD7 0xC47F +0x9CD8 0xC481 +0x9CD9 0xC482 +0x9CDA 0xC483 +0x9CDB 0xC484 +0x9CDC 0xC485 +0x9CDD 0xC486 +0x9CDE 0xC487 +0x9CDF 0xC488 +0x9CE0 0xC489 +0x9CE1 0xC48A +0x9CE2 0xC48B +0x9CE3 0xC48C +0x9CE4 0xC48D +0x9CE5 0xC48E +0x9CE6 0xC48F +0x9CE7 0xC490 +0x9CE8 0xC491 +0x9CE9 0xC492 +0x9CEA 0xC493 +0x9CEB 0xC495 +0x9CEC 0xC496 +0x9CED 0xC497 +0x9CEE 0xC498 +0x9CEF 0xC499 +0x9CF0 0xC49A +0x9CF1 0xC49B +0x9CF2 0xC49D +0x9CF3 0xC49E +0x9CF4 0xC49F +0x9CF5 0xC4A0 +0x9CF6 0xC4A1 +0x9CF7 0xC4A2 +0x9CF8 0xC4A3 +0x9CF9 0xC4A4 +0x9CFA 0xC4A5 +0x9CFB 0xC4A6 +0x9CFC 0xC4A7 +0x9CFD 0xC4A8 +0x9CFE 0xC4A9 +0x9D41 0xC4AA +0x9D42 0xC4AB +0x9D43 0xC4AC +0x9D44 0xC4AD +0x9D45 0xC4AE +0x9D46 0xC4AF +0x9D47 0xC4B0 +0x9D48 0xC4B1 +0x9D49 0xC4B2 +0x9D4A 0xC4B3 +0x9D4B 0xC4B4 +0x9D4C 0xC4B5 +0x9D4D 0xC4B6 +0x9D4E 0xC4B7 +0x9D4F 0xC4B9 +0x9D50 0xC4BA +0x9D51 0xC4BB +0x9D52 0xC4BD +0x9D53 0xC4BE +0x9D54 0xC4BF +0x9D55 0xC4C0 +0x9D56 0xC4C1 +0x9D57 0xC4C2 +0x9D58 0xC4C3 +0x9D59 0xC4C4 +0x9D5A 0xC4C5 +0x9D61 0xC4C6 +0x9D62 0xC4C7 +0x9D63 0xC4C8 +0x9D64 0xC4C9 +0x9D65 0xC4CA +0x9D66 0xC4CB +0x9D67 0xC4CC +0x9D68 0xC4CD +0x9D69 0xC4CE +0x9D6A 0xC4CF +0x9D6B 0xC4D0 +0x9D6C 0xC4D1 +0x9D6D 0xC4D2 +0x9D6E 0xC4D3 +0x9D6F 0xC4D4 +0x9D70 0xC4D5 +0x9D71 0xC4D6 +0x9D72 0xC4D7 +0x9D73 0xC4D8 +0x9D74 0xC4D9 +0x9D75 0xC4DA +0x9D76 0xC4DB +0x9D77 0xC4DC +0x9D78 0xC4DD +0x9D79 0xC4DE +0x9D7A 0xC4DF +0x9D81 0xC4E0 +0x9D82 0xC4E1 +0x9D83 0xC4E2 +0x9D84 0xC4E3 +0x9D85 0xC4E4 +0x9D86 0xC4E5 +0x9D87 0xC4E6 +0x9D88 0xC4E7 +0x9D89 0xC4E8 +0x9D8A 0xC4EA +0x9D8B 0xC4EB +0x9D8C 0xC4EC +0x9D8D 0xC4ED +0x9D8E 0xC4EE +0x9D8F 0xC4EF +0x9D90 0xC4F2 +0x9D91 0xC4F3 +0x9D92 0xC4F5 +0x9D93 0xC4F6 +0x9D94 0xC4F7 +0x9D95 0xC4F9 +0x9D96 0xC4FB +0x9D97 0xC4FC +0x9D98 0xC4FD +0x9D99 0xC4FE +0x9D9A 0xC502 +0x9D9B 0xC503 +0x9D9C 0xC504 +0x9D9D 0xC505 +0x9D9E 0xC506 +0x9D9F 0xC507 +0x9DA0 0xC508 +0x9DA1 0xC509 +0x9DA2 0xC50A +0x9DA3 0xC50B +0x9DA4 0xC50D +0x9DA5 0xC50E +0x9DA6 0xC50F +0x9DA7 0xC511 +0x9DA8 0xC512 +0x9DA9 0xC513 +0x9DAA 0xC515 +0x9DAB 0xC516 +0x9DAC 0xC517 +0x9DAD 0xC518 +0x9DAE 0xC519 +0x9DAF 0xC51A +0x9DB0 0xC51B +0x9DB1 0xC51D +0x9DB2 0xC51E +0x9DB3 0xC51F +0x9DB4 0xC520 +0x9DB5 0xC521 +0x9DB6 0xC522 +0x9DB7 0xC523 +0x9DB8 0xC524 +0x9DB9 0xC525 +0x9DBA 0xC526 +0x9DBB 0xC527 +0x9DBC 0xC52A +0x9DBD 0xC52B +0x9DBE 0xC52D +0x9DBF 0xC52E +0x9DC0 0xC52F +0x9DC1 0xC531 +0x9DC2 0xC532 +0x9DC3 0xC533 +0x9DC4 0xC534 +0x9DC5 0xC535 +0x9DC6 0xC536 +0x9DC7 0xC537 +0x9DC8 0xC53A +0x9DC9 0xC53C +0x9DCA 0xC53E +0x9DCB 0xC53F +0x9DCC 0xC540 +0x9DCD 0xC541 +0x9DCE 0xC542 +0x9DCF 0xC543 +0x9DD0 0xC546 +0x9DD1 0xC547 +0x9DD2 0xC54B +0x9DD3 0xC54F +0x9DD4 0xC550 +0x9DD5 0xC551 +0x9DD6 0xC552 +0x9DD7 0xC556 +0x9DD8 0xC55A +0x9DD9 0xC55B +0x9DDA 0xC55C +0x9DDB 0xC55F +0x9DDC 0xC562 +0x9DDD 0xC563 +0x9DDE 0xC565 +0x9DDF 0xC566 +0x9DE0 0xC567 +0x9DE1 0xC569 +0x9DE2 0xC56A +0x9DE3 0xC56B +0x9DE4 0xC56C +0x9DE5 0xC56D +0x9DE6 0xC56E +0x9DE7 0xC56F +0x9DE8 0xC572 +0x9DE9 0xC576 +0x9DEA 0xC577 +0x9DEB 0xC578 +0x9DEC 0xC579 +0x9DED 0xC57A +0x9DEE 0xC57B +0x9DEF 0xC57E +0x9DF0 0xC57F +0x9DF1 0xC581 +0x9DF2 0xC582 +0x9DF3 0xC583 +0x9DF4 0xC585 +0x9DF5 0xC586 +0x9DF6 0xC588 +0x9DF7 0xC589 +0x9DF8 0xC58A +0x9DF9 0xC58B +0x9DFA 0xC58E +0x9DFB 0xC590 +0x9DFC 0xC592 +0x9DFD 0xC593 +0x9DFE 0xC594 +0x9E41 0xC596 +0x9E42 0xC599 +0x9E43 0xC59A +0x9E44 0xC59B +0x9E45 0xC59D +0x9E46 0xC59E +0x9E47 0xC59F +0x9E48 0xC5A1 +0x9E49 0xC5A2 +0x9E4A 0xC5A3 +0x9E4B 0xC5A4 +0x9E4C 0xC5A5 +0x9E4D 0xC5A6 +0x9E4E 0xC5A7 +0x9E4F 0xC5A8 +0x9E50 0xC5AA +0x9E51 0xC5AB +0x9E52 0xC5AC +0x9E53 0xC5AD +0x9E54 0xC5AE +0x9E55 0xC5AF +0x9E56 0xC5B0 +0x9E57 0xC5B1 +0x9E58 0xC5B2 +0x9E59 0xC5B3 +0x9E5A 0xC5B6 +0x9E61 0xC5B7 +0x9E62 0xC5BA +0x9E63 0xC5BF +0x9E64 0xC5C0 +0x9E65 0xC5C1 +0x9E66 0xC5C2 +0x9E67 0xC5C3 +0x9E68 0xC5CB +0x9E69 0xC5CD +0x9E6A 0xC5CF +0x9E6B 0xC5D2 +0x9E6C 0xC5D3 +0x9E6D 0xC5D5 +0x9E6E 0xC5D6 +0x9E6F 0xC5D7 +0x9E70 0xC5D9 +0x9E71 0xC5DA +0x9E72 0xC5DB +0x9E73 0xC5DC +0x9E74 0xC5DD +0x9E75 0xC5DE +0x9E76 0xC5DF +0x9E77 0xC5E2 +0x9E78 0xC5E4 +0x9E79 0xC5E6 +0x9E7A 0xC5E7 +0x9E81 0xC5E8 +0x9E82 0xC5E9 +0x9E83 0xC5EA +0x9E84 0xC5EB +0x9E85 0xC5EF +0x9E86 0xC5F1 +0x9E87 0xC5F2 +0x9E88 0xC5F3 +0x9E89 0xC5F5 +0x9E8A 0xC5F8 +0x9E8B 0xC5F9 +0x9E8C 0xC5FA +0x9E8D 0xC5FB +0x9E8E 0xC602 +0x9E8F 0xC603 +0x9E90 0xC604 +0x9E91 0xC609 +0x9E92 0xC60A +0x9E93 0xC60B +0x9E94 0xC60D +0x9E95 0xC60E +0x9E96 0xC60F +0x9E97 0xC611 +0x9E98 0xC612 +0x9E99 0xC613 +0x9E9A 0xC614 +0x9E9B 0xC615 +0x9E9C 0xC616 +0x9E9D 0xC617 +0x9E9E 0xC61A +0x9E9F 0xC61D +0x9EA0 0xC61E +0x9EA1 0xC61F +0x9EA2 0xC620 +0x9EA3 0xC621 +0x9EA4 0xC622 +0x9EA5 0xC623 +0x9EA6 0xC626 +0x9EA7 0xC627 +0x9EA8 0xC629 +0x9EA9 0xC62A +0x9EAA 0xC62B +0x9EAB 0xC62F +0x9EAC 0xC631 +0x9EAD 0xC632 +0x9EAE 0xC636 +0x9EAF 0xC638 +0x9EB0 0xC63A +0x9EB1 0xC63C +0x9EB2 0xC63D +0x9EB3 0xC63E +0x9EB4 0xC63F +0x9EB5 0xC642 +0x9EB6 0xC643 +0x9EB7 0xC645 +0x9EB8 0xC646 +0x9EB9 0xC647 +0x9EBA 0xC649 +0x9EBB 0xC64A +0x9EBC 0xC64B +0x9EBD 0xC64C +0x9EBE 0xC64D +0x9EBF 0xC64E +0x9EC0 0xC64F +0x9EC1 0xC652 +0x9EC2 0xC656 +0x9EC3 0xC657 +0x9EC4 0xC658 +0x9EC5 0xC659 +0x9EC6 0xC65A +0x9EC7 0xC65B +0x9EC8 0xC65E +0x9EC9 0xC65F +0x9ECA 0xC661 +0x9ECB 0xC662 +0x9ECC 0xC663 +0x9ECD 0xC664 +0x9ECE 0xC665 +0x9ECF 0xC666 +0x9ED0 0xC667 +0x9ED1 0xC668 +0x9ED2 0xC669 +0x9ED3 0xC66A +0x9ED4 0xC66B +0x9ED5 0xC66D +0x9ED6 0xC66E +0x9ED7 0xC670 +0x9ED8 0xC672 +0x9ED9 0xC673 +0x9EDA 0xC674 +0x9EDB 0xC675 +0x9EDC 0xC676 +0x9EDD 0xC677 +0x9EDE 0xC67A +0x9EDF 0xC67B +0x9EE0 0xC67D +0x9EE1 0xC67E +0x9EE2 0xC67F +0x9EE3 0xC681 +0x9EE4 0xC682 +0x9EE5 0xC683 +0x9EE6 0xC684 +0x9EE7 0xC685 +0x9EE8 0xC686 +0x9EE9 0xC687 +0x9EEA 0xC68A +0x9EEB 0xC68C +0x9EEC 0xC68E +0x9EED 0xC68F +0x9EEE 0xC690 +0x9EEF 0xC691 +0x9EF0 0xC692 +0x9EF1 0xC693 +0x9EF2 0xC696 +0x9EF3 0xC697 +0x9EF4 0xC699 +0x9EF5 0xC69A +0x9EF6 0xC69B +0x9EF7 0xC69D +0x9EF8 0xC69E +0x9EF9 0xC69F +0x9EFA 0xC6A0 +0x9EFB 0xC6A1 +0x9EFC 0xC6A2 +0x9EFD 0xC6A3 +0x9EFE 0xC6A6 +0x9F41 0xC6A8 +0x9F42 0xC6AA +0x9F43 0xC6AB +0x9F44 0xC6AC +0x9F45 0xC6AD +0x9F46 0xC6AE +0x9F47 0xC6AF +0x9F48 0xC6B2 +0x9F49 0xC6B3 +0x9F4A 0xC6B5 +0x9F4B 0xC6B6 +0x9F4C 0xC6B7 +0x9F4D 0xC6BB +0x9F4E 0xC6BC +0x9F4F 0xC6BD +0x9F50 0xC6BE +0x9F51 0xC6BF +0x9F52 0xC6C2 +0x9F53 0xC6C4 +0x9F54 0xC6C6 +0x9F55 0xC6C7 +0x9F56 0xC6C8 +0x9F57 0xC6C9 +0x9F58 0xC6CA +0x9F59 0xC6CB +0x9F5A 0xC6CE +0x9F61 0xC6CF +0x9F62 0xC6D1 +0x9F63 0xC6D2 +0x9F64 0xC6D3 +0x9F65 0xC6D5 +0x9F66 0xC6D6 +0x9F67 0xC6D7 +0x9F68 0xC6D8 +0x9F69 0xC6D9 +0x9F6A 0xC6DA +0x9F6B 0xC6DB +0x9F6C 0xC6DE +0x9F6D 0xC6DF +0x9F6E 0xC6E2 +0x9F6F 0xC6E3 +0x9F70 0xC6E4 +0x9F71 0xC6E5 +0x9F72 0xC6E6 +0x9F73 0xC6E7 +0x9F74 0xC6EA +0x9F75 0xC6EB +0x9F76 0xC6ED +0x9F77 0xC6EE +0x9F78 0xC6EF +0x9F79 0xC6F1 +0x9F7A 0xC6F2 +0x9F81 0xC6F3 +0x9F82 0xC6F4 +0x9F83 0xC6F5 +0x9F84 0xC6F6 +0x9F85 0xC6F7 +0x9F86 0xC6FA +0x9F87 0xC6FB +0x9F88 0xC6FC +0x9F89 0xC6FE +0x9F8A 0xC6FF +0x9F8B 0xC700 +0x9F8C 0xC701 +0x9F8D 0xC702 +0x9F8E 0xC703 +0x9F8F 0xC706 +0x9F90 0xC707 +0x9F91 0xC709 +0x9F92 0xC70A +0x9F93 0xC70B +0x9F94 0xC70D +0x9F95 0xC70E +0x9F96 0xC70F +0x9F97 0xC710 +0x9F98 0xC711 +0x9F99 0xC712 +0x9F9A 0xC713 +0x9F9B 0xC716 +0x9F9C 0xC718 +0x9F9D 0xC71A +0x9F9E 0xC71B +0x9F9F 0xC71C +0x9FA0 0xC71D +0x9FA1 0xC71E +0x9FA2 0xC71F +0x9FA3 0xC722 +0x9FA4 0xC723 +0x9FA5 0xC725 +0x9FA6 0xC726 +0x9FA7 0xC727 +0x9FA8 0xC729 +0x9FA9 0xC72A +0x9FAA 0xC72B +0x9FAB 0xC72C +0x9FAC 0xC72D +0x9FAD 0xC72E +0x9FAE 0xC72F +0x9FAF 0xC732 +0x9FB0 0xC734 +0x9FB1 0xC736 +0x9FB2 0xC738 +0x9FB3 0xC739 +0x9FB4 0xC73A +0x9FB5 0xC73B +0x9FB6 0xC73E +0x9FB7 0xC73F +0x9FB8 0xC741 +0x9FB9 0xC742 +0x9FBA 0xC743 +0x9FBB 0xC745 +0x9FBC 0xC746 +0x9FBD 0xC747 +0x9FBE 0xC748 +0x9FBF 0xC749 +0x9FC0 0xC74B +0x9FC1 0xC74E +0x9FC2 0xC750 +0x9FC3 0xC759 +0x9FC4 0xC75A +0x9FC5 0xC75B +0x9FC6 0xC75D +0x9FC7 0xC75E +0x9FC8 0xC75F +0x9FC9 0xC761 +0x9FCA 0xC762 +0x9FCB 0xC763 +0x9FCC 0xC764 +0x9FCD 0xC765 +0x9FCE 0xC766 +0x9FCF 0xC767 +0x9FD0 0xC769 +0x9FD1 0xC76A +0x9FD2 0xC76C +0x9FD3 0xC76D +0x9FD4 0xC76E +0x9FD5 0xC76F +0x9FD6 0xC770 +0x9FD7 0xC771 +0x9FD8 0xC772 +0x9FD9 0xC773 +0x9FDA 0xC776 +0x9FDB 0xC777 +0x9FDC 0xC779 +0x9FDD 0xC77A +0x9FDE 0xC77B +0x9FDF 0xC77F +0x9FE0 0xC780 +0x9FE1 0xC781 +0x9FE2 0xC782 +0x9FE3 0xC786 +0x9FE4 0xC78B +0x9FE5 0xC78C +0x9FE6 0xC78D +0x9FE7 0xC78F +0x9FE8 0xC792 +0x9FE9 0xC793 +0x9FEA 0xC795 +0x9FEB 0xC799 +0x9FEC 0xC79B +0x9FED 0xC79C +0x9FEE 0xC79D +0x9FEF 0xC79E +0x9FF0 0xC79F +0x9FF1 0xC7A2 +0x9FF2 0xC7A7 +0x9FF3 0xC7A8 +0x9FF4 0xC7A9 +0x9FF5 0xC7AA +0x9FF6 0xC7AB +0x9FF7 0xC7AE +0x9FF8 0xC7AF +0x9FF9 0xC7B1 +0x9FFA 0xC7B2 +0x9FFB 0xC7B3 +0x9FFC 0xC7B5 +0x9FFD 0xC7B6 +0x9FFE 0xC7B7 +0xA041 0xC7B8 +0xA042 0xC7B9 +0xA043 0xC7BA +0xA044 0xC7BB +0xA045 0xC7BE +0xA046 0xC7C2 +0xA047 0xC7C3 +0xA048 0xC7C4 +0xA049 0xC7C5 +0xA04A 0xC7C6 +0xA04B 0xC7C7 +0xA04C 0xC7CA +0xA04D 0xC7CB +0xA04E 0xC7CD +0xA04F 0xC7CF +0xA050 0xC7D1 +0xA051 0xC7D2 +0xA052 0xC7D3 +0xA053 0xC7D4 +0xA054 0xC7D5 +0xA055 0xC7D6 +0xA056 0xC7D7 +0xA057 0xC7D9 +0xA058 0xC7DA +0xA059 0xC7DB +0xA05A 0xC7DC +0xA061 0xC7DE +0xA062 0xC7DF +0xA063 0xC7E0 +0xA064 0xC7E1 +0xA065 0xC7E2 +0xA066 0xC7E3 +0xA067 0xC7E5 +0xA068 0xC7E6 +0xA069 0xC7E7 +0xA06A 0xC7E9 +0xA06B 0xC7EA +0xA06C 0xC7EB +0xA06D 0xC7ED +0xA06E 0xC7EE +0xA06F 0xC7EF +0xA070 0xC7F0 +0xA071 0xC7F1 +0xA072 0xC7F2 +0xA073 0xC7F3 +0xA074 0xC7F4 +0xA075 0xC7F5 +0xA076 0xC7F6 +0xA077 0xC7F7 +0xA078 0xC7F8 +0xA079 0xC7F9 +0xA07A 0xC7FA +0xA081 0xC7FB +0xA082 0xC7FC +0xA083 0xC7FD +0xA084 0xC7FE +0xA085 0xC7FF +0xA086 0xC802 +0xA087 0xC803 +0xA088 0xC805 +0xA089 0xC806 +0xA08A 0xC807 +0xA08B 0xC809 +0xA08C 0xC80B +0xA08D 0xC80C +0xA08E 0xC80D +0xA08F 0xC80E +0xA090 0xC80F +0xA091 0xC812 +0xA092 0xC814 +0xA093 0xC817 +0xA094 0xC818 +0xA095 0xC819 +0xA096 0xC81A +0xA097 0xC81B +0xA098 0xC81E +0xA099 0xC81F +0xA09A 0xC821 +0xA09B 0xC822 +0xA09C 0xC823 +0xA09D 0xC825 +0xA09E 0xC826 +0xA09F 0xC827 +0xA0A0 0xC828 +0xA0A1 0xC829 +0xA0A2 0xC82A +0xA0A3 0xC82B +0xA0A4 0xC82E +0xA0A5 0xC830 +0xA0A6 0xC832 +0xA0A7 0xC833 +0xA0A8 0xC834 +0xA0A9 0xC835 +0xA0AA 0xC836 +0xA0AB 0xC837 +0xA0AC 0xC839 +0xA0AD 0xC83A +0xA0AE 0xC83B +0xA0AF 0xC83D +0xA0B0 0xC83E +0xA0B1 0xC83F +0xA0B2 0xC841 +0xA0B3 0xC842 +0xA0B4 0xC843 +0xA0B5 0xC844 +0xA0B6 0xC845 +0xA0B7 0xC846 +0xA0B8 0xC847 +0xA0B9 0xC84A +0xA0BA 0xC84B +0xA0BB 0xC84E +0xA0BC 0xC84F +0xA0BD 0xC850 +0xA0BE 0xC851 +0xA0BF 0xC852 +0xA0C0 0xC853 +0xA0C1 0xC855 +0xA0C2 0xC856 +0xA0C3 0xC857 +0xA0C4 0xC858 +0xA0C5 0xC859 +0xA0C6 0xC85A +0xA0C7 0xC85B +0xA0C8 0xC85C +0xA0C9 0xC85D +0xA0CA 0xC85E +0xA0CB 0xC85F +0xA0CC 0xC860 +0xA0CD 0xC861 +0xA0CE 0xC862 +0xA0CF 0xC863 +0xA0D0 0xC864 +0xA0D1 0xC865 +0xA0D2 0xC866 +0xA0D3 0xC867 +0xA0D4 0xC868 +0xA0D5 0xC869 +0xA0D6 0xC86A +0xA0D7 0xC86B +0xA0D8 0xC86C +0xA0D9 0xC86D +0xA0DA 0xC86E +0xA0DB 0xC86F +0xA0DC 0xC872 +0xA0DD 0xC873 +0xA0DE 0xC875 +0xA0DF 0xC876 +0xA0E0 0xC877 +0xA0E1 0xC879 +0xA0E2 0xC87B +0xA0E3 0xC87C +0xA0E4 0xC87D +0xA0E5 0xC87E +0xA0E6 0xC87F +0xA0E7 0xC882 +0xA0E8 0xC884 +0xA0E9 0xC888 +0xA0EA 0xC889 +0xA0EB 0xC88A +0xA0EC 0xC88E +0xA0ED 0xC88F +0xA0EE 0xC890 +0xA0EF 0xC891 +0xA0F0 0xC892 +0xA0F1 0xC893 +0xA0F2 0xC895 +0xA0F3 0xC896 +0xA0F4 0xC897 +0xA0F5 0xC898 +0xA0F6 0xC899 +0xA0F7 0xC89A +0xA0F8 0xC89B +0xA0F9 0xC89C +0xA0FA 0xC89E +0xA0FB 0xC8A0 +0xA0FC 0xC8A2 +0xA0FD 0xC8A3 +0xA0FE 0xC8A4 +0xA141 0xC8A5 +0xA142 0xC8A6 +0xA143 0xC8A7 +0xA144 0xC8A9 +0xA145 0xC8AA +0xA146 0xC8AB +0xA147 0xC8AC +0xA148 0xC8AD +0xA149 0xC8AE +0xA14A 0xC8AF +0xA14B 0xC8B0 +0xA14C 0xC8B1 +0xA14D 0xC8B2 +0xA14E 0xC8B3 +0xA14F 0xC8B4 +0xA150 0xC8B5 +0xA151 0xC8B6 +0xA152 0xC8B7 +0xA153 0xC8B8 +0xA154 0xC8B9 +0xA155 0xC8BA +0xA156 0xC8BB +0xA157 0xC8BE +0xA158 0xC8BF +0xA159 0xC8C0 +0xA15A 0xC8C1 +0xA161 0xC8C2 +0xA162 0xC8C3 +0xA163 0xC8C5 +0xA164 0xC8C6 +0xA165 0xC8C7 +0xA166 0xC8C9 +0xA167 0xC8CA +0xA168 0xC8CB +0xA169 0xC8CD +0xA16A 0xC8CE +0xA16B 0xC8CF +0xA16C 0xC8D0 +0xA16D 0xC8D1 +0xA16E 0xC8D2 +0xA16F 0xC8D3 +0xA170 0xC8D6 +0xA171 0xC8D8 +0xA172 0xC8DA +0xA173 0xC8DB +0xA174 0xC8DC +0xA175 0xC8DD +0xA176 0xC8DE +0xA177 0xC8DF +0xA178 0xC8E2 +0xA179 0xC8E3 +0xA17A 0xC8E5 +0xA181 0xC8E6 +0xA182 0xC8E7 +0xA183 0xC8E8 +0xA184 0xC8E9 +0xA185 0xC8EA +0xA186 0xC8EB +0xA187 0xC8EC +0xA188 0xC8ED +0xA189 0xC8EE +0xA18A 0xC8EF +0xA18B 0xC8F0 +0xA18C 0xC8F1 +0xA18D 0xC8F2 +0xA18E 0xC8F3 +0xA18F 0xC8F4 +0xA190 0xC8F6 +0xA191 0xC8F7 +0xA192 0xC8F8 +0xA193 0xC8F9 +0xA194 0xC8FA +0xA195 0xC8FB +0xA196 0xC8FE +0xA197 0xC8FF +0xA198 0xC901 +0xA199 0xC902 +0xA19A 0xC903 +0xA19B 0xC907 +0xA19C 0xC908 +0xA19D 0xC909 +0xA19E 0xC90A +0xA19F 0xC90B +0xA1A0 0xC90E +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x00B7 +0xA1A5 0x2025 +0xA1A6 0x2026 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x00AD +0xA1AA 0x2015 +0xA1AB 0x2225 +0xA1AC 0xFF3C +0xA1AD 0x223C +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3010 +0xA1BD 0x3011 +0xA1BE 0x00B1 +0xA1BF 0x00D7 +0xA1C0 0x00F7 +0xA1C1 0x2260 +0xA1C2 0x2264 +0xA1C3 0x2265 +0xA1C4 0x221E +0xA1C5 0x2234 +0xA1C6 0x00B0 +0xA1C7 0x2032 +0xA1C8 0x2033 +0xA1C9 0x2103 +0xA1CA 0x212B +0xA1CB 0xFFE0 +0xA1CC 0xFFE1 +0xA1CD 0xFFE5 +0xA1CE 0x2642 +0xA1CF 0x2640 +0xA1D0 0x2220 +0xA1D1 0x22A5 +0xA1D2 0x2312 +0xA1D3 0x2202 +0xA1D4 0x2207 +0xA1D5 0x2261 +0xA1D6 0x2252 +0xA1D7 0x00A7 +0xA1D8 0x203B +0xA1D9 0x2606 +0xA1DA 0x2605 +0xA1DB 0x25CB +0xA1DC 0x25CF +0xA1DD 0x25CE +0xA1DE 0x25C7 +0xA1DF 0x25C6 +0xA1E0 0x25A1 +0xA1E1 0x25A0 +0xA1E2 0x25B3 +0xA1E3 0x25B2 +0xA1E4 0x25BD +0xA1E5 0x25BC +0xA1E6 0x2192 +0xA1E7 0x2190 +0xA1E8 0x2191 +0xA1E9 0x2193 +0xA1EA 0x2194 +0xA1EB 0x3013 +0xA1EC 0x226A +0xA1ED 0x226B +0xA1EE 0x221A +0xA1EF 0x223D +0xA1F0 0x221D +0xA1F1 0x2235 +0xA1F2 0x222B +0xA1F3 0x222C +0xA1F4 0x2208 +0xA1F5 0x220B +0xA1F6 0x2286 +0xA1F7 0x2287 +0xA1F8 0x2282 +0xA1F9 0x2283 +0xA1FA 0x222A +0xA1FB 0x2229 +0xA1FC 0x2227 +0xA1FD 0x2228 +0xA1FE 0xFFE2 +0xA241 0xC910 +0xA242 0xC912 +0xA243 0xC913 +0xA244 0xC914 +0xA245 0xC915 +0xA246 0xC916 +0xA247 0xC917 +0xA248 0xC919 +0xA249 0xC91A +0xA24A 0xC91B +0xA24B 0xC91C +0xA24C 0xC91D +0xA24D 0xC91E +0xA24E 0xC91F +0xA24F 0xC920 +0xA250 0xC921 +0xA251 0xC922 +0xA252 0xC923 +0xA253 0xC924 +0xA254 0xC925 +0xA255 0xC926 +0xA256 0xC927 +0xA257 0xC928 +0xA258 0xC929 +0xA259 0xC92A +0xA25A 0xC92B +0xA261 0xC92D +0xA262 0xC92E +0xA263 0xC92F +0xA264 0xC930 +0xA265 0xC931 +0xA266 0xC932 +0xA267 0xC933 +0xA268 0xC935 +0xA269 0xC936 +0xA26A 0xC937 +0xA26B 0xC938 +0xA26C 0xC939 +0xA26D 0xC93A +0xA26E 0xC93B +0xA26F 0xC93C +0xA270 0xC93D +0xA271 0xC93E +0xA272 0xC93F +0xA273 0xC940 +0xA274 0xC941 +0xA275 0xC942 +0xA276 0xC943 +0xA277 0xC944 +0xA278 0xC945 +0xA279 0xC946 +0xA27A 0xC947 +0xA281 0xC948 +0xA282 0xC949 +0xA283 0xC94A +0xA284 0xC94B +0xA285 0xC94C +0xA286 0xC94D +0xA287 0xC94E +0xA288 0xC94F +0xA289 0xC952 +0xA28A 0xC953 +0xA28B 0xC955 +0xA28C 0xC956 +0xA28D 0xC957 +0xA28E 0xC959 +0xA28F 0xC95A +0xA290 0xC95B +0xA291 0xC95C +0xA292 0xC95D +0xA293 0xC95E +0xA294 0xC95F +0xA295 0xC962 +0xA296 0xC964 +0xA297 0xC965 +0xA298 0xC966 +0xA299 0xC967 +0xA29A 0xC968 +0xA29B 0xC969 +0xA29C 0xC96A +0xA29D 0xC96B +0xA29E 0xC96D +0xA29F 0xC96E +0xA2A0 0xC96F +0xA2A1 0x21D2 +0xA2A2 0x21D4 +0xA2A3 0x2200 +0xA2A4 0x2203 +0xA2A5 0x00B4 +0xA2A6 0xFF5E +0xA2A7 0x02C7 +0xA2A8 0x02D8 +0xA2A9 0x02DD +0xA2AA 0x02DA +0xA2AB 0x02D9 +0xA2AC 0x00B8 +0xA2AD 0x02DB +0xA2AE 0x00A1 +0xA2AF 0x00BF +0xA2B0 0x02D0 +0xA2B1 0x222E +0xA2B2 0x2211 +0xA2B3 0x220F +0xA2B4 0x00A4 +0xA2B5 0x2109 +0xA2B6 0x2030 +0xA2B7 0x25C1 +0xA2B8 0x25C0 +0xA2B9 0x25B7 +0xA2BA 0x25B6 +0xA2BB 0x2664 +0xA2BC 0x2660 +0xA2BD 0x2661 +0xA2BE 0x2665 +0xA2BF 0x2667 +0xA2C0 0x2663 +0xA2C1 0x2299 +0xA2C2 0x25C8 +0xA2C3 0x25A3 +0xA2C4 0x25D0 +0xA2C5 0x25D1 +0xA2C6 0x2592 +0xA2C7 0x25A4 +0xA2C8 0x25A5 +0xA2C9 0x25A8 +0xA2CA 0x25A7 +0xA2CB 0x25A6 +0xA2CC 0x25A9 +0xA2CD 0x2668 +0xA2CE 0x260F +0xA2CF 0x260E +0xA2D0 0x261C +0xA2D1 0x261E +0xA2D2 0x00B6 +0xA2D3 0x2020 +0xA2D4 0x2021 +0xA2D5 0x2195 +0xA2D6 0x2197 +0xA2D7 0x2199 +0xA2D8 0x2196 +0xA2D9 0x2198 +0xA2DA 0x266D +0xA2DB 0x2669 +0xA2DC 0x266A +0xA2DD 0x266C +0xA2DE 0x327F +0xA2DF 0x321C +0xA2E0 0x2116 +0xA2E1 0x33C7 +0xA2E2 0x2122 +0xA2E3 0x33C2 +0xA2E4 0x33D8 +0xA2E5 0x2121 +0xA2E6 0x20AC +0xA2E7 0x00AE +0xA341 0xC971 +0xA342 0xC972 +0xA343 0xC973 +0xA344 0xC975 +0xA345 0xC976 +0xA346 0xC977 +0xA347 0xC978 +0xA348 0xC979 +0xA349 0xC97A +0xA34A 0xC97B +0xA34B 0xC97D +0xA34C 0xC97E +0xA34D 0xC97F +0xA34E 0xC980 +0xA34F 0xC981 +0xA350 0xC982 +0xA351 0xC983 +0xA352 0xC984 +0xA353 0xC985 +0xA354 0xC986 +0xA355 0xC987 +0xA356 0xC98A +0xA357 0xC98B +0xA358 0xC98D +0xA359 0xC98E +0xA35A 0xC98F +0xA361 0xC991 +0xA362 0xC992 +0xA363 0xC993 +0xA364 0xC994 +0xA365 0xC995 +0xA366 0xC996 +0xA367 0xC997 +0xA368 0xC99A +0xA369 0xC99C +0xA36A 0xC99E +0xA36B 0xC99F +0xA36C 0xC9A0 +0xA36D 0xC9A1 +0xA36E 0xC9A2 +0xA36F 0xC9A3 +0xA370 0xC9A4 +0xA371 0xC9A5 +0xA372 0xC9A6 +0xA373 0xC9A7 +0xA374 0xC9A8 +0xA375 0xC9A9 +0xA376 0xC9AA +0xA377 0xC9AB +0xA378 0xC9AC +0xA379 0xC9AD +0xA37A 0xC9AE +0xA381 0xC9AF +0xA382 0xC9B0 +0xA383 0xC9B1 +0xA384 0xC9B2 +0xA385 0xC9B3 +0xA386 0xC9B4 +0xA387 0xC9B5 +0xA388 0xC9B6 +0xA389 0xC9B7 +0xA38A 0xC9B8 +0xA38B 0xC9B9 +0xA38C 0xC9BA +0xA38D 0xC9BB +0xA38E 0xC9BC +0xA38F 0xC9BD +0xA390 0xC9BE +0xA391 0xC9BF +0xA392 0xC9C2 +0xA393 0xC9C3 +0xA394 0xC9C5 +0xA395 0xC9C6 +0xA396 0xC9C9 +0xA397 0xC9CB +0xA398 0xC9CC +0xA399 0xC9CD +0xA39A 0xC9CE +0xA39B 0xC9CF +0xA39C 0xC9D2 +0xA39D 0xC9D4 +0xA39E 0xC9D7 +0xA39F 0xC9D8 +0xA3A0 0xC9DB +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFF04 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFFE6 +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA441 0xC9DE +0xA442 0xC9DF +0xA443 0xC9E1 +0xA444 0xC9E3 +0xA445 0xC9E5 +0xA446 0xC9E6 +0xA447 0xC9E8 +0xA448 0xC9E9 +0xA449 0xC9EA +0xA44A 0xC9EB +0xA44B 0xC9EE +0xA44C 0xC9F2 +0xA44D 0xC9F3 +0xA44E 0xC9F4 +0xA44F 0xC9F5 +0xA450 0xC9F6 +0xA451 0xC9F7 +0xA452 0xC9FA +0xA453 0xC9FB +0xA454 0xC9FD +0xA455 0xC9FE +0xA456 0xC9FF +0xA457 0xCA01 +0xA458 0xCA02 +0xA459 0xCA03 +0xA45A 0xCA04 +0xA461 0xCA05 +0xA462 0xCA06 +0xA463 0xCA07 +0xA464 0xCA0A +0xA465 0xCA0E +0xA466 0xCA0F +0xA467 0xCA10 +0xA468 0xCA11 +0xA469 0xCA12 +0xA46A 0xCA13 +0xA46B 0xCA15 +0xA46C 0xCA16 +0xA46D 0xCA17 +0xA46E 0xCA19 +0xA46F 0xCA1A +0xA470 0xCA1B +0xA471 0xCA1C +0xA472 0xCA1D +0xA473 0xCA1E +0xA474 0xCA1F +0xA475 0xCA20 +0xA476 0xCA21 +0xA477 0xCA22 +0xA478 0xCA23 +0xA479 0xCA24 +0xA47A 0xCA25 +0xA481 0xCA26 +0xA482 0xCA27 +0xA483 0xCA28 +0xA484 0xCA2A +0xA485 0xCA2B +0xA486 0xCA2C +0xA487 0xCA2D +0xA488 0xCA2E +0xA489 0xCA2F +0xA48A 0xCA30 +0xA48B 0xCA31 +0xA48C 0xCA32 +0xA48D 0xCA33 +0xA48E 0xCA34 +0xA48F 0xCA35 +0xA490 0xCA36 +0xA491 0xCA37 +0xA492 0xCA38 +0xA493 0xCA39 +0xA494 0xCA3A +0xA495 0xCA3B +0xA496 0xCA3C +0xA497 0xCA3D +0xA498 0xCA3E +0xA499 0xCA3F +0xA49A 0xCA40 +0xA49B 0xCA41 +0xA49C 0xCA42 +0xA49D 0xCA43 +0xA49E 0xCA44 +0xA49F 0xCA45 +0xA4A0 0xCA46 +0xA4A1 0x3131 +0xA4A2 0x3132 +0xA4A3 0x3133 +0xA4A4 0x3134 +0xA4A5 0x3135 +0xA4A6 0x3136 +0xA4A7 0x3137 +0xA4A8 0x3138 +0xA4A9 0x3139 +0xA4AA 0x313A +0xA4AB 0x313B +0xA4AC 0x313C +0xA4AD 0x313D +0xA4AE 0x313E +0xA4AF 0x313F +0xA4B0 0x3140 +0xA4B1 0x3141 +0xA4B2 0x3142 +0xA4B3 0x3143 +0xA4B4 0x3144 +0xA4B5 0x3145 +0xA4B6 0x3146 +0xA4B7 0x3147 +0xA4B8 0x3148 +0xA4B9 0x3149 +0xA4BA 0x314A +0xA4BB 0x314B +0xA4BC 0x314C +0xA4BD 0x314D +0xA4BE 0x314E +0xA4BF 0x314F +0xA4C0 0x3150 +0xA4C1 0x3151 +0xA4C2 0x3152 +0xA4C3 0x3153 +0xA4C4 0x3154 +0xA4C5 0x3155 +0xA4C6 0x3156 +0xA4C7 0x3157 +0xA4C8 0x3158 +0xA4C9 0x3159 +0xA4CA 0x315A +0xA4CB 0x315B +0xA4CC 0x315C +0xA4CD 0x315D +0xA4CE 0x315E +0xA4CF 0x315F +0xA4D0 0x3160 +0xA4D1 0x3161 +0xA4D2 0x3162 +0xA4D3 0x3163 +0xA4D4 0x3164 +0xA4D5 0x3165 +0xA4D6 0x3166 +0xA4D7 0x3167 +0xA4D8 0x3168 +0xA4D9 0x3169 +0xA4DA 0x316A +0xA4DB 0x316B +0xA4DC 0x316C +0xA4DD 0x316D +0xA4DE 0x316E +0xA4DF 0x316F +0xA4E0 0x3170 +0xA4E1 0x3171 +0xA4E2 0x3172 +0xA4E3 0x3173 +0xA4E4 0x3174 +0xA4E5 0x3175 +0xA4E6 0x3176 +0xA4E7 0x3177 +0xA4E8 0x3178 +0xA4E9 0x3179 +0xA4EA 0x317A +0xA4EB 0x317B +0xA4EC 0x317C +0xA4ED 0x317D +0xA4EE 0x317E +0xA4EF 0x317F +0xA4F0 0x3180 +0xA4F1 0x3181 +0xA4F2 0x3182 +0xA4F3 0x3183 +0xA4F4 0x3184 +0xA4F5 0x3185 +0xA4F6 0x3186 +0xA4F7 0x3187 +0xA4F8 0x3188 +0xA4F9 0x3189 +0xA4FA 0x318A +0xA4FB 0x318B +0xA4FC 0x318C +0xA4FD 0x318D +0xA4FE 0x318E +0xA541 0xCA47 +0xA542 0xCA48 +0xA543 0xCA49 +0xA544 0xCA4A +0xA545 0xCA4B +0xA546 0xCA4E +0xA547 0xCA4F +0xA548 0xCA51 +0xA549 0xCA52 +0xA54A 0xCA53 +0xA54B 0xCA55 +0xA54C 0xCA56 +0xA54D 0xCA57 +0xA54E 0xCA58 +0xA54F 0xCA59 +0xA550 0xCA5A +0xA551 0xCA5B +0xA552 0xCA5E +0xA553 0xCA62 +0xA554 0xCA63 +0xA555 0xCA64 +0xA556 0xCA65 +0xA557 0xCA66 +0xA558 0xCA67 +0xA559 0xCA69 +0xA55A 0xCA6A +0xA561 0xCA6B +0xA562 0xCA6C +0xA563 0xCA6D +0xA564 0xCA6E +0xA565 0xCA6F +0xA566 0xCA70 +0xA567 0xCA71 +0xA568 0xCA72 +0xA569 0xCA73 +0xA56A 0xCA74 +0xA56B 0xCA75 +0xA56C 0xCA76 +0xA56D 0xCA77 +0xA56E 0xCA78 +0xA56F 0xCA79 +0xA570 0xCA7A +0xA571 0xCA7B +0xA572 0xCA7C +0xA573 0xCA7E +0xA574 0xCA7F +0xA575 0xCA80 +0xA576 0xCA81 +0xA577 0xCA82 +0xA578 0xCA83 +0xA579 0xCA85 +0xA57A 0xCA86 +0xA581 0xCA87 +0xA582 0xCA88 +0xA583 0xCA89 +0xA584 0xCA8A +0xA585 0xCA8B +0xA586 0xCA8C +0xA587 0xCA8D +0xA588 0xCA8E +0xA589 0xCA8F +0xA58A 0xCA90 +0xA58B 0xCA91 +0xA58C 0xCA92 +0xA58D 0xCA93 +0xA58E 0xCA94 +0xA58F 0xCA95 +0xA590 0xCA96 +0xA591 0xCA97 +0xA592 0xCA99 +0xA593 0xCA9A +0xA594 0xCA9B +0xA595 0xCA9C +0xA596 0xCA9D +0xA597 0xCA9E +0xA598 0xCA9F +0xA599 0xCAA0 +0xA59A 0xCAA1 +0xA59B 0xCAA2 +0xA59C 0xCAA3 +0xA59D 0xCAA4 +0xA59E 0xCAA5 +0xA59F 0xCAA6 +0xA5A0 0xCAA7 +0xA5A1 0x2170 +0xA5A2 0x2171 +0xA5A3 0x2172 +0xA5A4 0x2173 +0xA5A5 0x2174 +0xA5A6 0x2175 +0xA5A7 0x2176 +0xA5A8 0x2177 +0xA5A9 0x2178 +0xA5AA 0x2179 +0xA5B0 0x2160 +0xA5B1 0x2161 +0xA5B2 0x2162 +0xA5B3 0x2163 +0xA5B4 0x2164 +0xA5B5 0x2165 +0xA5B6 0x2166 +0xA5B7 0x2167 +0xA5B8 0x2168 +0xA5B9 0x2169 +0xA5C1 0x0391 +0xA5C2 0x0392 +0xA5C3 0x0393 +0xA5C4 0x0394 +0xA5C5 0x0395 +0xA5C6 0x0396 +0xA5C7 0x0397 +0xA5C8 0x0398 +0xA5C9 0x0399 +0xA5CA 0x039A +0xA5CB 0x039B +0xA5CC 0x039C +0xA5CD 0x039D +0xA5CE 0x039E +0xA5CF 0x039F +0xA5D0 0x03A0 +0xA5D1 0x03A1 +0xA5D2 0x03A3 +0xA5D3 0x03A4 +0xA5D4 0x03A5 +0xA5D5 0x03A6 +0xA5D6 0x03A7 +0xA5D7 0x03A8 +0xA5D8 0x03A9 +0xA5E1 0x03B1 +0xA5E2 0x03B2 +0xA5E3 0x03B3 +0xA5E4 0x03B4 +0xA5E5 0x03B5 +0xA5E6 0x03B6 +0xA5E7 0x03B7 +0xA5E8 0x03B8 +0xA5E9 0x03B9 +0xA5EA 0x03BA +0xA5EB 0x03BB +0xA5EC 0x03BC +0xA5ED 0x03BD +0xA5EE 0x03BE +0xA5EF 0x03BF +0xA5F0 0x03C0 +0xA5F1 0x03C1 +0xA5F2 0x03C3 +0xA5F3 0x03C4 +0xA5F4 0x03C5 +0xA5F5 0x03C6 +0xA5F6 0x03C7 +0xA5F7 0x03C8 +0xA5F8 0x03C9 +0xA641 0xCAA8 +0xA642 0xCAA9 +0xA643 0xCAAA +0xA644 0xCAAB +0xA645 0xCAAC +0xA646 0xCAAD +0xA647 0xCAAE +0xA648 0xCAAF +0xA649 0xCAB0 +0xA64A 0xCAB1 +0xA64B 0xCAB2 +0xA64C 0xCAB3 +0xA64D 0xCAB4 +0xA64E 0xCAB5 +0xA64F 0xCAB6 +0xA650 0xCAB7 +0xA651 0xCAB8 +0xA652 0xCAB9 +0xA653 0xCABA +0xA654 0xCABB +0xA655 0xCABE +0xA656 0xCABF +0xA657 0xCAC1 +0xA658 0xCAC2 +0xA659 0xCAC3 +0xA65A 0xCAC5 +0xA661 0xCAC6 +0xA662 0xCAC7 +0xA663 0xCAC8 +0xA664 0xCAC9 +0xA665 0xCACA +0xA666 0xCACB +0xA667 0xCACE +0xA668 0xCAD0 +0xA669 0xCAD2 +0xA66A 0xCAD4 +0xA66B 0xCAD5 +0xA66C 0xCAD6 +0xA66D 0xCAD7 +0xA66E 0xCADA +0xA66F 0xCADB +0xA670 0xCADC +0xA671 0xCADD +0xA672 0xCADE +0xA673 0xCADF +0xA674 0xCAE1 +0xA675 0xCAE2 +0xA676 0xCAE3 +0xA677 0xCAE4 +0xA678 0xCAE5 +0xA679 0xCAE6 +0xA67A 0xCAE7 +0xA681 0xCAE8 +0xA682 0xCAE9 +0xA683 0xCAEA +0xA684 0xCAEB +0xA685 0xCAED +0xA686 0xCAEE +0xA687 0xCAEF +0xA688 0xCAF0 +0xA689 0xCAF1 +0xA68A 0xCAF2 +0xA68B 0xCAF3 +0xA68C 0xCAF5 +0xA68D 0xCAF6 +0xA68E 0xCAF7 +0xA68F 0xCAF8 +0xA690 0xCAF9 +0xA691 0xCAFA +0xA692 0xCAFB +0xA693 0xCAFC +0xA694 0xCAFD +0xA695 0xCAFE +0xA696 0xCAFF +0xA697 0xCB00 +0xA698 0xCB01 +0xA699 0xCB02 +0xA69A 0xCB03 +0xA69B 0xCB04 +0xA69C 0xCB05 +0xA69D 0xCB06 +0xA69E 0xCB07 +0xA69F 0xCB09 +0xA6A0 0xCB0A +0xA6A1 0x2500 +0xA6A2 0x2502 +0xA6A3 0x250C +0xA6A4 0x2510 +0xA6A5 0x2518 +0xA6A6 0x2514 +0xA6A7 0x251C +0xA6A8 0x252C +0xA6A9 0x2524 +0xA6AA 0x2534 +0xA6AB 0x253C +0xA6AC 0x2501 +0xA6AD 0x2503 +0xA6AE 0x250F +0xA6AF 0x2513 +0xA6B0 0x251B +0xA6B1 0x2517 +0xA6B2 0x2523 +0xA6B3 0x2533 +0xA6B4 0x252B +0xA6B5 0x253B +0xA6B6 0x254B +0xA6B7 0x2520 +0xA6B8 0x252F +0xA6B9 0x2528 +0xA6BA 0x2537 +0xA6BB 0x253F +0xA6BC 0x251D +0xA6BD 0x2530 +0xA6BE 0x2525 +0xA6BF 0x2538 +0xA6C0 0x2542 +0xA6C1 0x2512 +0xA6C2 0x2511 +0xA6C3 0x251A +0xA6C4 0x2519 +0xA6C5 0x2516 +0xA6C6 0x2515 +0xA6C7 0x250E +0xA6C8 0x250D +0xA6C9 0x251E +0xA6CA 0x251F +0xA6CB 0x2521 +0xA6CC 0x2522 +0xA6CD 0x2526 +0xA6CE 0x2527 +0xA6CF 0x2529 +0xA6D0 0x252A +0xA6D1 0x252D +0xA6D2 0x252E +0xA6D3 0x2531 +0xA6D4 0x2532 +0xA6D5 0x2535 +0xA6D6 0x2536 +0xA6D7 0x2539 +0xA6D8 0x253A +0xA6D9 0x253D +0xA6DA 0x253E +0xA6DB 0x2540 +0xA6DC 0x2541 +0xA6DD 0x2543 +0xA6DE 0x2544 +0xA6DF 0x2545 +0xA6E0 0x2546 +0xA6E1 0x2547 +0xA6E2 0x2548 +0xA6E3 0x2549 +0xA6E4 0x254A +0xA741 0xCB0B +0xA742 0xCB0C +0xA743 0xCB0D +0xA744 0xCB0E +0xA745 0xCB0F +0xA746 0xCB11 +0xA747 0xCB12 +0xA748 0xCB13 +0xA749 0xCB15 +0xA74A 0xCB16 +0xA74B 0xCB17 +0xA74C 0xCB19 +0xA74D 0xCB1A +0xA74E 0xCB1B +0xA74F 0xCB1C +0xA750 0xCB1D +0xA751 0xCB1E +0xA752 0xCB1F +0xA753 0xCB22 +0xA754 0xCB23 +0xA755 0xCB24 +0xA756 0xCB25 +0xA757 0xCB26 +0xA758 0xCB27 +0xA759 0xCB28 +0xA75A 0xCB29 +0xA761 0xCB2A +0xA762 0xCB2B +0xA763 0xCB2C +0xA764 0xCB2D +0xA765 0xCB2E +0xA766 0xCB2F +0xA767 0xCB30 +0xA768 0xCB31 +0xA769 0xCB32 +0xA76A 0xCB33 +0xA76B 0xCB34 +0xA76C 0xCB35 +0xA76D 0xCB36 +0xA76E 0xCB37 +0xA76F 0xCB38 +0xA770 0xCB39 +0xA771 0xCB3A +0xA772 0xCB3B +0xA773 0xCB3C +0xA774 0xCB3D +0xA775 0xCB3E +0xA776 0xCB3F +0xA777 0xCB40 +0xA778 0xCB42 +0xA779 0xCB43 +0xA77A 0xCB44 +0xA781 0xCB45 +0xA782 0xCB46 +0xA783 0xCB47 +0xA784 0xCB4A +0xA785 0xCB4B +0xA786 0xCB4D +0xA787 0xCB4E +0xA788 0xCB4F +0xA789 0xCB51 +0xA78A 0xCB52 +0xA78B 0xCB53 +0xA78C 0xCB54 +0xA78D 0xCB55 +0xA78E 0xCB56 +0xA78F 0xCB57 +0xA790 0xCB5A +0xA791 0xCB5B +0xA792 0xCB5C +0xA793 0xCB5E +0xA794 0xCB5F +0xA795 0xCB60 +0xA796 0xCB61 +0xA797 0xCB62 +0xA798 0xCB63 +0xA799 0xCB65 +0xA79A 0xCB66 +0xA79B 0xCB67 +0xA79C 0xCB68 +0xA79D 0xCB69 +0xA79E 0xCB6A +0xA79F 0xCB6B +0xA7A0 0xCB6C +0xA7A1 0x3395 +0xA7A2 0x3396 +0xA7A3 0x3397 +0xA7A4 0x2113 +0xA7A5 0x3398 +0xA7A6 0x33C4 +0xA7A7 0x33A3 +0xA7A8 0x33A4 +0xA7A9 0x33A5 +0xA7AA 0x33A6 +0xA7AB 0x3399 +0xA7AC 0x339A +0xA7AD 0x339B +0xA7AE 0x339C +0xA7AF 0x339D +0xA7B0 0x339E +0xA7B1 0x339F +0xA7B2 0x33A0 +0xA7B3 0x33A1 +0xA7B4 0x33A2 +0xA7B5 0x33CA +0xA7B6 0x338D +0xA7B7 0x338E +0xA7B8 0x338F +0xA7B9 0x33CF +0xA7BA 0x3388 +0xA7BB 0x3389 +0xA7BC 0x33C8 +0xA7BD 0x33A7 +0xA7BE 0x33A8 +0xA7BF 0x33B0 +0xA7C0 0x33B1 +0xA7C1 0x33B2 +0xA7C2 0x33B3 +0xA7C3 0x33B4 +0xA7C4 0x33B5 +0xA7C5 0x33B6 +0xA7C6 0x33B7 +0xA7C7 0x33B8 +0xA7C8 0x33B9 +0xA7C9 0x3380 +0xA7CA 0x3381 +0xA7CB 0x3382 +0xA7CC 0x3383 +0xA7CD 0x3384 +0xA7CE 0x33BA +0xA7CF 0x33BB +0xA7D0 0x33BC +0xA7D1 0x33BD +0xA7D2 0x33BE +0xA7D3 0x33BF +0xA7D4 0x3390 +0xA7D5 0x3391 +0xA7D6 0x3392 +0xA7D7 0x3393 +0xA7D8 0x3394 +0xA7D9 0x2126 +0xA7DA 0x33C0 +0xA7DB 0x33C1 +0xA7DC 0x338A +0xA7DD 0x338B +0xA7DE 0x338C +0xA7DF 0x33D6 +0xA7E0 0x33C5 +0xA7E1 0x33AD +0xA7E2 0x33AE +0xA7E3 0x33AF +0xA7E4 0x33DB +0xA7E5 0x33A9 +0xA7E6 0x33AA +0xA7E7 0x33AB +0xA7E8 0x33AC +0xA7E9 0x33DD +0xA7EA 0x33D0 +0xA7EB 0x33D3 +0xA7EC 0x33C3 +0xA7ED 0x33C9 +0xA7EE 0x33DC +0xA7EF 0x33C6 +0xA841 0xCB6D +0xA842 0xCB6E +0xA843 0xCB6F +0xA844 0xCB70 +0xA845 0xCB71 +0xA846 0xCB72 +0xA847 0xCB73 +0xA848 0xCB74 +0xA849 0xCB75 +0xA84A 0xCB76 +0xA84B 0xCB77 +0xA84C 0xCB7A +0xA84D 0xCB7B +0xA84E 0xCB7C +0xA84F 0xCB7D +0xA850 0xCB7E +0xA851 0xCB7F +0xA852 0xCB80 +0xA853 0xCB81 +0xA854 0xCB82 +0xA855 0xCB83 +0xA856 0xCB84 +0xA857 0xCB85 +0xA858 0xCB86 +0xA859 0xCB87 +0xA85A 0xCB88 +0xA861 0xCB89 +0xA862 0xCB8A +0xA863 0xCB8B +0xA864 0xCB8C +0xA865 0xCB8D +0xA866 0xCB8E +0xA867 0xCB8F +0xA868 0xCB90 +0xA869 0xCB91 +0xA86A 0xCB92 +0xA86B 0xCB93 +0xA86C 0xCB94 +0xA86D 0xCB95 +0xA86E 0xCB96 +0xA86F 0xCB97 +0xA870 0xCB98 +0xA871 0xCB99 +0xA872 0xCB9A +0xA873 0xCB9B +0xA874 0xCB9D +0xA875 0xCB9E +0xA876 0xCB9F +0xA877 0xCBA0 +0xA878 0xCBA1 +0xA879 0xCBA2 +0xA87A 0xCBA3 +0xA881 0xCBA4 +0xA882 0xCBA5 +0xA883 0xCBA6 +0xA884 0xCBA7 +0xA885 0xCBA8 +0xA886 0xCBA9 +0xA887 0xCBAA +0xA888 0xCBAB +0xA889 0xCBAC +0xA88A 0xCBAD +0xA88B 0xCBAE +0xA88C 0xCBAF +0xA88D 0xCBB0 +0xA88E 0xCBB1 +0xA88F 0xCBB2 +0xA890 0xCBB3 +0xA891 0xCBB4 +0xA892 0xCBB5 +0xA893 0xCBB6 +0xA894 0xCBB7 +0xA895 0xCBB9 +0xA896 0xCBBA +0xA897 0xCBBB +0xA898 0xCBBC +0xA899 0xCBBD +0xA89A 0xCBBE +0xA89B 0xCBBF +0xA89C 0xCBC0 +0xA89D 0xCBC1 +0xA89E 0xCBC2 +0xA89F 0xCBC3 +0xA8A0 0xCBC4 +0xA8A1 0x00C6 +0xA8A2 0x00D0 +0xA8A3 0x00AA +0xA8A4 0x0126 +0xA8A6 0x0132 +0xA8A8 0x013F +0xA8A9 0x0141 +0xA8AA 0x00D8 +0xA8AB 0x0152 +0xA8AC 0x00BA +0xA8AD 0x00DE +0xA8AE 0x0166 +0xA8AF 0x014A +0xA8B1 0x3260 +0xA8B2 0x3261 +0xA8B3 0x3262 +0xA8B4 0x3263 +0xA8B5 0x3264 +0xA8B6 0x3265 +0xA8B7 0x3266 +0xA8B8 0x3267 +0xA8B9 0x3268 +0xA8BA 0x3269 +0xA8BB 0x326A +0xA8BC 0x326B +0xA8BD 0x326C +0xA8BE 0x326D +0xA8BF 0x326E +0xA8C0 0x326F +0xA8C1 0x3270 +0xA8C2 0x3271 +0xA8C3 0x3272 +0xA8C4 0x3273 +0xA8C5 0x3274 +0xA8C6 0x3275 +0xA8C7 0x3276 +0xA8C8 0x3277 +0xA8C9 0x3278 +0xA8CA 0x3279 +0xA8CB 0x327A +0xA8CC 0x327B +0xA8CD 0x24D0 +0xA8CE 0x24D1 +0xA8CF 0x24D2 +0xA8D0 0x24D3 +0xA8D1 0x24D4 +0xA8D2 0x24D5 +0xA8D3 0x24D6 +0xA8D4 0x24D7 +0xA8D5 0x24D8 +0xA8D6 0x24D9 +0xA8D7 0x24DA +0xA8D8 0x24DB +0xA8D9 0x24DC +0xA8DA 0x24DD +0xA8DB 0x24DE +0xA8DC 0x24DF +0xA8DD 0x24E0 +0xA8DE 0x24E1 +0xA8DF 0x24E2 +0xA8E0 0x24E3 +0xA8E1 0x24E4 +0xA8E2 0x24E5 +0xA8E3 0x24E6 +0xA8E4 0x24E7 +0xA8E5 0x24E8 +0xA8E6 0x24E9 +0xA8E7 0x2460 +0xA8E8 0x2461 +0xA8E9 0x2462 +0xA8EA 0x2463 +0xA8EB 0x2464 +0xA8EC 0x2465 +0xA8ED 0x2466 +0xA8EE 0x2467 +0xA8EF 0x2468 +0xA8F0 0x2469 +0xA8F1 0x246A +0xA8F2 0x246B +0xA8F3 0x246C +0xA8F4 0x246D +0xA8F5 0x246E +0xA8F6 0x00BD +0xA8F7 0x2153 +0xA8F8 0x2154 +0xA8F9 0x00BC +0xA8FA 0x00BE +0xA8FB 0x215B +0xA8FC 0x215C +0xA8FD 0x215D +0xA8FE 0x215E +0xA941 0xCBC5 +0xA942 0xCBC6 +0xA943 0xCBC7 +0xA944 0xCBC8 +0xA945 0xCBC9 +0xA946 0xCBCA +0xA947 0xCBCB +0xA948 0xCBCC +0xA949 0xCBCD +0xA94A 0xCBCE +0xA94B 0xCBCF +0xA94C 0xCBD0 +0xA94D 0xCBD1 +0xA94E 0xCBD2 +0xA94F 0xCBD3 +0xA950 0xCBD5 +0xA951 0xCBD6 +0xA952 0xCBD7 +0xA953 0xCBD8 +0xA954 0xCBD9 +0xA955 0xCBDA +0xA956 0xCBDB +0xA957 0xCBDC +0xA958 0xCBDD +0xA959 0xCBDE +0xA95A 0xCBDF +0xA961 0xCBE0 +0xA962 0xCBE1 +0xA963 0xCBE2 +0xA964 0xCBE3 +0xA965 0xCBE5 +0xA966 0xCBE6 +0xA967 0xCBE8 +0xA968 0xCBEA +0xA969 0xCBEB +0xA96A 0xCBEC +0xA96B 0xCBED +0xA96C 0xCBEE +0xA96D 0xCBEF +0xA96E 0xCBF0 +0xA96F 0xCBF1 +0xA970 0xCBF2 +0xA971 0xCBF3 +0xA972 0xCBF4 +0xA973 0xCBF5 +0xA974 0xCBF6 +0xA975 0xCBF7 +0xA976 0xCBF8 +0xA977 0xCBF9 +0xA978 0xCBFA +0xA979 0xCBFB +0xA97A 0xCBFC +0xA981 0xCBFD +0xA982 0xCBFE +0xA983 0xCBFF +0xA984 0xCC00 +0xA985 0xCC01 +0xA986 0xCC02 +0xA987 0xCC03 +0xA988 0xCC04 +0xA989 0xCC05 +0xA98A 0xCC06 +0xA98B 0xCC07 +0xA98C 0xCC08 +0xA98D 0xCC09 +0xA98E 0xCC0A +0xA98F 0xCC0B +0xA990 0xCC0E +0xA991 0xCC0F +0xA992 0xCC11 +0xA993 0xCC12 +0xA994 0xCC13 +0xA995 0xCC15 +0xA996 0xCC16 +0xA997 0xCC17 +0xA998 0xCC18 +0xA999 0xCC19 +0xA99A 0xCC1A +0xA99B 0xCC1B +0xA99C 0xCC1E +0xA99D 0xCC1F +0xA99E 0xCC20 +0xA99F 0xCC23 +0xA9A0 0xCC24 +0xA9A1 0x00E6 +0xA9A2 0x0111 +0xA9A3 0x00F0 +0xA9A4 0x0127 +0xA9A5 0x0131 +0xA9A6 0x0133 +0xA9A7 0x0138 +0xA9A8 0x0140 +0xA9A9 0x0142 +0xA9AA 0x00F8 +0xA9AB 0x0153 +0xA9AC 0x00DF +0xA9AD 0x00FE +0xA9AE 0x0167 +0xA9AF 0x014B +0xA9B0 0x0149 +0xA9B1 0x3200 +0xA9B2 0x3201 +0xA9B3 0x3202 +0xA9B4 0x3203 +0xA9B5 0x3204 +0xA9B6 0x3205 +0xA9B7 0x3206 +0xA9B8 0x3207 +0xA9B9 0x3208 +0xA9BA 0x3209 +0xA9BB 0x320A +0xA9BC 0x320B +0xA9BD 0x320C +0xA9BE 0x320D +0xA9BF 0x320E +0xA9C0 0x320F +0xA9C1 0x3210 +0xA9C2 0x3211 +0xA9C3 0x3212 +0xA9C4 0x3213 +0xA9C5 0x3214 +0xA9C6 0x3215 +0xA9C7 0x3216 +0xA9C8 0x3217 +0xA9C9 0x3218 +0xA9CA 0x3219 +0xA9CB 0x321A +0xA9CC 0x321B +0xA9CD 0x249C +0xA9CE 0x249D +0xA9CF 0x249E +0xA9D0 0x249F +0xA9D1 0x24A0 +0xA9D2 0x24A1 +0xA9D3 0x24A2 +0xA9D4 0x24A3 +0xA9D5 0x24A4 +0xA9D6 0x24A5 +0xA9D7 0x24A6 +0xA9D8 0x24A7 +0xA9D9 0x24A8 +0xA9DA 0x24A9 +0xA9DB 0x24AA +0xA9DC 0x24AB +0xA9DD 0x24AC +0xA9DE 0x24AD +0xA9DF 0x24AE +0xA9E0 0x24AF +0xA9E1 0x24B0 +0xA9E2 0x24B1 +0xA9E3 0x24B2 +0xA9E4 0x24B3 +0xA9E5 0x24B4 +0xA9E6 0x24B5 +0xA9E7 0x2474 +0xA9E8 0x2475 +0xA9E9 0x2476 +0xA9EA 0x2477 +0xA9EB 0x2478 +0xA9EC 0x2479 +0xA9ED 0x247A +0xA9EE 0x247B +0xA9EF 0x247C +0xA9F0 0x247D +0xA9F1 0x247E +0xA9F2 0x247F +0xA9F3 0x2480 +0xA9F4 0x2481 +0xA9F5 0x2482 +0xA9F6 0x00B9 +0xA9F7 0x00B2 +0xA9F8 0x00B3 +0xA9F9 0x2074 +0xA9FA 0x207F +0xA9FB 0x2081 +0xA9FC 0x2082 +0xA9FD 0x2083 +0xA9FE 0x2084 +0xAA41 0xCC25 +0xAA42 0xCC26 +0xAA43 0xCC2A +0xAA44 0xCC2B +0xAA45 0xCC2D +0xAA46 0xCC2F +0xAA47 0xCC31 +0xAA48 0xCC32 +0xAA49 0xCC33 +0xAA4A 0xCC34 +0xAA4B 0xCC35 +0xAA4C 0xCC36 +0xAA4D 0xCC37 +0xAA4E 0xCC3A +0xAA4F 0xCC3F +0xAA50 0xCC40 +0xAA51 0xCC41 +0xAA52 0xCC42 +0xAA53 0xCC43 +0xAA54 0xCC46 +0xAA55 0xCC47 +0xAA56 0xCC49 +0xAA57 0xCC4A +0xAA58 0xCC4B +0xAA59 0xCC4D +0xAA5A 0xCC4E +0xAA61 0xCC4F +0xAA62 0xCC50 +0xAA63 0xCC51 +0xAA64 0xCC52 +0xAA65 0xCC53 +0xAA66 0xCC56 +0xAA67 0xCC5A +0xAA68 0xCC5B +0xAA69 0xCC5C +0xAA6A 0xCC5D +0xAA6B 0xCC5E +0xAA6C 0xCC5F +0xAA6D 0xCC61 +0xAA6E 0xCC62 +0xAA6F 0xCC63 +0xAA70 0xCC65 +0xAA71 0xCC67 +0xAA72 0xCC69 +0xAA73 0xCC6A +0xAA74 0xCC6B +0xAA75 0xCC6C +0xAA76 0xCC6D +0xAA77 0xCC6E +0xAA78 0xCC6F +0xAA79 0xCC71 +0xAA7A 0xCC72 +0xAA81 0xCC73 +0xAA82 0xCC74 +0xAA83 0xCC76 +0xAA84 0xCC77 +0xAA85 0xCC78 +0xAA86 0xCC79 +0xAA87 0xCC7A +0xAA88 0xCC7B +0xAA89 0xCC7C +0xAA8A 0xCC7D +0xAA8B 0xCC7E +0xAA8C 0xCC7F +0xAA8D 0xCC80 +0xAA8E 0xCC81 +0xAA8F 0xCC82 +0xAA90 0xCC83 +0xAA91 0xCC84 +0xAA92 0xCC85 +0xAA93 0xCC86 +0xAA94 0xCC87 +0xAA95 0xCC88 +0xAA96 0xCC89 +0xAA97 0xCC8A +0xAA98 0xCC8B +0xAA99 0xCC8C +0xAA9A 0xCC8D +0xAA9B 0xCC8E +0xAA9C 0xCC8F +0xAA9D 0xCC90 +0xAA9E 0xCC91 +0xAA9F 0xCC92 +0xAAA0 0xCC93 +0xAAA1 0x3041 +0xAAA2 0x3042 +0xAAA3 0x3043 +0xAAA4 0x3044 +0xAAA5 0x3045 +0xAAA6 0x3046 +0xAAA7 0x3047 +0xAAA8 0x3048 +0xAAA9 0x3049 +0xAAAA 0x304A +0xAAAB 0x304B +0xAAAC 0x304C +0xAAAD 0x304D +0xAAAE 0x304E +0xAAAF 0x304F +0xAAB0 0x3050 +0xAAB1 0x3051 +0xAAB2 0x3052 +0xAAB3 0x3053 +0xAAB4 0x3054 +0xAAB5 0x3055 +0xAAB6 0x3056 +0xAAB7 0x3057 +0xAAB8 0x3058 +0xAAB9 0x3059 +0xAABA 0x305A +0xAABB 0x305B +0xAABC 0x305C +0xAABD 0x305D +0xAABE 0x305E +0xAABF 0x305F +0xAAC0 0x3060 +0xAAC1 0x3061 +0xAAC2 0x3062 +0xAAC3 0x3063 +0xAAC4 0x3064 +0xAAC5 0x3065 +0xAAC6 0x3066 +0xAAC7 0x3067 +0xAAC8 0x3068 +0xAAC9 0x3069 +0xAACA 0x306A +0xAACB 0x306B +0xAACC 0x306C +0xAACD 0x306D +0xAACE 0x306E +0xAACF 0x306F +0xAAD0 0x3070 +0xAAD1 0x3071 +0xAAD2 0x3072 +0xAAD3 0x3073 +0xAAD4 0x3074 +0xAAD5 0x3075 +0xAAD6 0x3076 +0xAAD7 0x3077 +0xAAD8 0x3078 +0xAAD9 0x3079 +0xAADA 0x307A +0xAADB 0x307B +0xAADC 0x307C +0xAADD 0x307D +0xAADE 0x307E +0xAADF 0x307F +0xAAE0 0x3080 +0xAAE1 0x3081 +0xAAE2 0x3082 +0xAAE3 0x3083 +0xAAE4 0x3084 +0xAAE5 0x3085 +0xAAE6 0x3086 +0xAAE7 0x3087 +0xAAE8 0x3088 +0xAAE9 0x3089 +0xAAEA 0x308A +0xAAEB 0x308B +0xAAEC 0x308C +0xAAED 0x308D +0xAAEE 0x308E +0xAAEF 0x308F +0xAAF0 0x3090 +0xAAF1 0x3091 +0xAAF2 0x3092 +0xAAF3 0x3093 +0xAB41 0xCC94 +0xAB42 0xCC95 +0xAB43 0xCC96 +0xAB44 0xCC97 +0xAB45 0xCC9A +0xAB46 0xCC9B +0xAB47 0xCC9D +0xAB48 0xCC9E +0xAB49 0xCC9F +0xAB4A 0xCCA1 +0xAB4B 0xCCA2 +0xAB4C 0xCCA3 +0xAB4D 0xCCA4 +0xAB4E 0xCCA5 +0xAB4F 0xCCA6 +0xAB50 0xCCA7 +0xAB51 0xCCAA +0xAB52 0xCCAE +0xAB53 0xCCAF +0xAB54 0xCCB0 +0xAB55 0xCCB1 +0xAB56 0xCCB2 +0xAB57 0xCCB3 +0xAB58 0xCCB6 +0xAB59 0xCCB7 +0xAB5A 0xCCB9 +0xAB61 0xCCBA +0xAB62 0xCCBB +0xAB63 0xCCBD +0xAB64 0xCCBE +0xAB65 0xCCBF +0xAB66 0xCCC0 +0xAB67 0xCCC1 +0xAB68 0xCCC2 +0xAB69 0xCCC3 +0xAB6A 0xCCC6 +0xAB6B 0xCCC8 +0xAB6C 0xCCCA +0xAB6D 0xCCCB +0xAB6E 0xCCCC +0xAB6F 0xCCCD +0xAB70 0xCCCE +0xAB71 0xCCCF +0xAB72 0xCCD1 +0xAB73 0xCCD2 +0xAB74 0xCCD3 +0xAB75 0xCCD5 +0xAB76 0xCCD6 +0xAB77 0xCCD7 +0xAB78 0xCCD8 +0xAB79 0xCCD9 +0xAB7A 0xCCDA +0xAB81 0xCCDB +0xAB82 0xCCDC +0xAB83 0xCCDD +0xAB84 0xCCDE +0xAB85 0xCCDF +0xAB86 0xCCE0 +0xAB87 0xCCE1 +0xAB88 0xCCE2 +0xAB89 0xCCE3 +0xAB8A 0xCCE5 +0xAB8B 0xCCE6 +0xAB8C 0xCCE7 +0xAB8D 0xCCE8 +0xAB8E 0xCCE9 +0xAB8F 0xCCEA +0xAB90 0xCCEB +0xAB91 0xCCED +0xAB92 0xCCEE +0xAB93 0xCCEF +0xAB94 0xCCF1 +0xAB95 0xCCF2 +0xAB96 0xCCF3 +0xAB97 0xCCF4 +0xAB98 0xCCF5 +0xAB99 0xCCF6 +0xAB9A 0xCCF7 +0xAB9B 0xCCF8 +0xAB9C 0xCCF9 +0xAB9D 0xCCFA +0xAB9E 0xCCFB +0xAB9F 0xCCFC +0xABA0 0xCCFD +0xABA1 0x30A1 +0xABA2 0x30A2 +0xABA3 0x30A3 +0xABA4 0x30A4 +0xABA5 0x30A5 +0xABA6 0x30A6 +0xABA7 0x30A7 +0xABA8 0x30A8 +0xABA9 0x30A9 +0xABAA 0x30AA +0xABAB 0x30AB +0xABAC 0x30AC +0xABAD 0x30AD +0xABAE 0x30AE +0xABAF 0x30AF +0xABB0 0x30B0 +0xABB1 0x30B1 +0xABB2 0x30B2 +0xABB3 0x30B3 +0xABB4 0x30B4 +0xABB5 0x30B5 +0xABB6 0x30B6 +0xABB7 0x30B7 +0xABB8 0x30B8 +0xABB9 0x30B9 +0xABBA 0x30BA +0xABBB 0x30BB +0xABBC 0x30BC +0xABBD 0x30BD +0xABBE 0x30BE +0xABBF 0x30BF +0xABC0 0x30C0 +0xABC1 0x30C1 +0xABC2 0x30C2 +0xABC3 0x30C3 +0xABC4 0x30C4 +0xABC5 0x30C5 +0xABC6 0x30C6 +0xABC7 0x30C7 +0xABC8 0x30C8 +0xABC9 0x30C9 +0xABCA 0x30CA +0xABCB 0x30CB +0xABCC 0x30CC +0xABCD 0x30CD +0xABCE 0x30CE +0xABCF 0x30CF +0xABD0 0x30D0 +0xABD1 0x30D1 +0xABD2 0x30D2 +0xABD3 0x30D3 +0xABD4 0x30D4 +0xABD5 0x30D5 +0xABD6 0x30D6 +0xABD7 0x30D7 +0xABD8 0x30D8 +0xABD9 0x30D9 +0xABDA 0x30DA +0xABDB 0x30DB +0xABDC 0x30DC +0xABDD 0x30DD +0xABDE 0x30DE +0xABDF 0x30DF +0xABE0 0x30E0 +0xABE1 0x30E1 +0xABE2 0x30E2 +0xABE3 0x30E3 +0xABE4 0x30E4 +0xABE5 0x30E5 +0xABE6 0x30E6 +0xABE7 0x30E7 +0xABE8 0x30E8 +0xABE9 0x30E9 +0xABEA 0x30EA +0xABEB 0x30EB +0xABEC 0x30EC +0xABED 0x30ED +0xABEE 0x30EE +0xABEF 0x30EF +0xABF0 0x30F0 +0xABF1 0x30F1 +0xABF2 0x30F2 +0xABF3 0x30F3 +0xABF4 0x30F4 +0xABF5 0x30F5 +0xABF6 0x30F6 +0xAC41 0xCCFE +0xAC42 0xCCFF +0xAC43 0xCD00 +0xAC44 0xCD02 +0xAC45 0xCD03 +0xAC46 0xCD04 +0xAC47 0xCD05 +0xAC48 0xCD06 +0xAC49 0xCD07 +0xAC4A 0xCD0A +0xAC4B 0xCD0B +0xAC4C 0xCD0D +0xAC4D 0xCD0E +0xAC4E 0xCD0F +0xAC4F 0xCD11 +0xAC50 0xCD12 +0xAC51 0xCD13 +0xAC52 0xCD14 +0xAC53 0xCD15 +0xAC54 0xCD16 +0xAC55 0xCD17 +0xAC56 0xCD1A +0xAC57 0xCD1C +0xAC58 0xCD1E +0xAC59 0xCD1F +0xAC5A 0xCD20 +0xAC61 0xCD21 +0xAC62 0xCD22 +0xAC63 0xCD23 +0xAC64 0xCD25 +0xAC65 0xCD26 +0xAC66 0xCD27 +0xAC67 0xCD29 +0xAC68 0xCD2A +0xAC69 0xCD2B +0xAC6A 0xCD2D +0xAC6B 0xCD2E +0xAC6C 0xCD2F +0xAC6D 0xCD30 +0xAC6E 0xCD31 +0xAC6F 0xCD32 +0xAC70 0xCD33 +0xAC71 0xCD34 +0xAC72 0xCD35 +0xAC73 0xCD36 +0xAC74 0xCD37 +0xAC75 0xCD38 +0xAC76 0xCD3A +0xAC77 0xCD3B +0xAC78 0xCD3C +0xAC79 0xCD3D +0xAC7A 0xCD3E +0xAC81 0xCD3F +0xAC82 0xCD40 +0xAC83 0xCD41 +0xAC84 0xCD42 +0xAC85 0xCD43 +0xAC86 0xCD44 +0xAC87 0xCD45 +0xAC88 0xCD46 +0xAC89 0xCD47 +0xAC8A 0xCD48 +0xAC8B 0xCD49 +0xAC8C 0xCD4A +0xAC8D 0xCD4B +0xAC8E 0xCD4C +0xAC8F 0xCD4D +0xAC90 0xCD4E +0xAC91 0xCD4F +0xAC92 0xCD50 +0xAC93 0xCD51 +0xAC94 0xCD52 +0xAC95 0xCD53 +0xAC96 0xCD54 +0xAC97 0xCD55 +0xAC98 0xCD56 +0xAC99 0xCD57 +0xAC9A 0xCD58 +0xAC9B 0xCD59 +0xAC9C 0xCD5A +0xAC9D 0xCD5B +0xAC9E 0xCD5D +0xAC9F 0xCD5E +0xACA0 0xCD5F +0xACA1 0x0410 +0xACA2 0x0411 +0xACA3 0x0412 +0xACA4 0x0413 +0xACA5 0x0414 +0xACA6 0x0415 +0xACA7 0x0401 +0xACA8 0x0416 +0xACA9 0x0417 +0xACAA 0x0418 +0xACAB 0x0419 +0xACAC 0x041A +0xACAD 0x041B +0xACAE 0x041C +0xACAF 0x041D +0xACB0 0x041E +0xACB1 0x041F +0xACB2 0x0420 +0xACB3 0x0421 +0xACB4 0x0422 +0xACB5 0x0423 +0xACB6 0x0424 +0xACB7 0x0425 +0xACB8 0x0426 +0xACB9 0x0427 +0xACBA 0x0428 +0xACBB 0x0429 +0xACBC 0x042A +0xACBD 0x042B +0xACBE 0x042C +0xACBF 0x042D +0xACC0 0x042E +0xACC1 0x042F +0xACD1 0x0430 +0xACD2 0x0431 +0xACD3 0x0432 +0xACD4 0x0433 +0xACD5 0x0434 +0xACD6 0x0435 +0xACD7 0x0451 +0xACD8 0x0436 +0xACD9 0x0437 +0xACDA 0x0438 +0xACDB 0x0439 +0xACDC 0x043A +0xACDD 0x043B +0xACDE 0x043C +0xACDF 0x043D +0xACE0 0x043E +0xACE1 0x043F +0xACE2 0x0440 +0xACE3 0x0441 +0xACE4 0x0442 +0xACE5 0x0443 +0xACE6 0x0444 +0xACE7 0x0445 +0xACE8 0x0446 +0xACE9 0x0447 +0xACEA 0x0448 +0xACEB 0x0449 +0xACEC 0x044A +0xACED 0x044B +0xACEE 0x044C +0xACEF 0x044D +0xACF0 0x044E +0xACF1 0x044F +0xAD41 0xCD61 +0xAD42 0xCD62 +0xAD43 0xCD63 +0xAD44 0xCD65 +0xAD45 0xCD66 +0xAD46 0xCD67 +0xAD47 0xCD68 +0xAD48 0xCD69 +0xAD49 0xCD6A +0xAD4A 0xCD6B +0xAD4B 0xCD6E +0xAD4C 0xCD70 +0xAD4D 0xCD72 +0xAD4E 0xCD73 +0xAD4F 0xCD74 +0xAD50 0xCD75 +0xAD51 0xCD76 +0xAD52 0xCD77 +0xAD53 0xCD79 +0xAD54 0xCD7A +0xAD55 0xCD7B +0xAD56 0xCD7C +0xAD57 0xCD7D +0xAD58 0xCD7E +0xAD59 0xCD7F +0xAD5A 0xCD80 +0xAD61 0xCD81 +0xAD62 0xCD82 +0xAD63 0xCD83 +0xAD64 0xCD84 +0xAD65 0xCD85 +0xAD66 0xCD86 +0xAD67 0xCD87 +0xAD68 0xCD89 +0xAD69 0xCD8A +0xAD6A 0xCD8B +0xAD6B 0xCD8C +0xAD6C 0xCD8D +0xAD6D 0xCD8E +0xAD6E 0xCD8F +0xAD6F 0xCD90 +0xAD70 0xCD91 +0xAD71 0xCD92 +0xAD72 0xCD93 +0xAD73 0xCD96 +0xAD74 0xCD97 +0xAD75 0xCD99 +0xAD76 0xCD9A +0xAD77 0xCD9B +0xAD78 0xCD9D +0xAD79 0xCD9E +0xAD7A 0xCD9F +0xAD81 0xCDA0 +0xAD82 0xCDA1 +0xAD83 0xCDA2 +0xAD84 0xCDA3 +0xAD85 0xCDA6 +0xAD86 0xCDA8 +0xAD87 0xCDAA +0xAD88 0xCDAB +0xAD89 0xCDAC +0xAD8A 0xCDAD +0xAD8B 0xCDAE +0xAD8C 0xCDAF +0xAD8D 0xCDB1 +0xAD8E 0xCDB2 +0xAD8F 0xCDB3 +0xAD90 0xCDB4 +0xAD91 0xCDB5 +0xAD92 0xCDB6 +0xAD93 0xCDB7 +0xAD94 0xCDB8 +0xAD95 0xCDB9 +0xAD96 0xCDBA +0xAD97 0xCDBB +0xAD98 0xCDBC +0xAD99 0xCDBD +0xAD9A 0xCDBE +0xAD9B 0xCDBF +0xAD9C 0xCDC0 +0xAD9D 0xCDC1 +0xAD9E 0xCDC2 +0xAD9F 0xCDC3 +0xADA0 0xCDC5 +0xAE41 0xCDC6 +0xAE42 0xCDC7 +0xAE43 0xCDC8 +0xAE44 0xCDC9 +0xAE45 0xCDCA +0xAE46 0xCDCB +0xAE47 0xCDCD +0xAE48 0xCDCE +0xAE49 0xCDCF +0xAE4A 0xCDD1 +0xAE4B 0xCDD2 +0xAE4C 0xCDD3 +0xAE4D 0xCDD4 +0xAE4E 0xCDD5 +0xAE4F 0xCDD6 +0xAE50 0xCDD7 +0xAE51 0xCDD8 +0xAE52 0xCDD9 +0xAE53 0xCDDA +0xAE54 0xCDDB +0xAE55 0xCDDC +0xAE56 0xCDDD +0xAE57 0xCDDE +0xAE58 0xCDDF +0xAE59 0xCDE0 +0xAE5A 0xCDE1 +0xAE61 0xCDE2 +0xAE62 0xCDE3 +0xAE63 0xCDE4 +0xAE64 0xCDE5 +0xAE65 0xCDE6 +0xAE66 0xCDE7 +0xAE67 0xCDE9 +0xAE68 0xCDEA +0xAE69 0xCDEB +0xAE6A 0xCDED +0xAE6B 0xCDEE +0xAE6C 0xCDEF +0xAE6D 0xCDF1 +0xAE6E 0xCDF2 +0xAE6F 0xCDF3 +0xAE70 0xCDF4 +0xAE71 0xCDF5 +0xAE72 0xCDF6 +0xAE73 0xCDF7 +0xAE74 0xCDFA +0xAE75 0xCDFC +0xAE76 0xCDFE +0xAE77 0xCDFF +0xAE78 0xCE00 +0xAE79 0xCE01 +0xAE7A 0xCE02 +0xAE81 0xCE03 +0xAE82 0xCE05 +0xAE83 0xCE06 +0xAE84 0xCE07 +0xAE85 0xCE09 +0xAE86 0xCE0A +0xAE87 0xCE0B +0xAE88 0xCE0D +0xAE89 0xCE0E +0xAE8A 0xCE0F +0xAE8B 0xCE10 +0xAE8C 0xCE11 +0xAE8D 0xCE12 +0xAE8E 0xCE13 +0xAE8F 0xCE15 +0xAE90 0xCE16 +0xAE91 0xCE17 +0xAE92 0xCE18 +0xAE93 0xCE1A +0xAE94 0xCE1B +0xAE95 0xCE1C +0xAE96 0xCE1D +0xAE97 0xCE1E +0xAE98 0xCE1F +0xAE99 0xCE22 +0xAE9A 0xCE23 +0xAE9B 0xCE25 +0xAE9C 0xCE26 +0xAE9D 0xCE27 +0xAE9E 0xCE29 +0xAE9F 0xCE2A +0xAEA0 0xCE2B +0xAF41 0xCE2C +0xAF42 0xCE2D +0xAF43 0xCE2E +0xAF44 0xCE2F +0xAF45 0xCE32 +0xAF46 0xCE34 +0xAF47 0xCE36 +0xAF48 0xCE37 +0xAF49 0xCE38 +0xAF4A 0xCE39 +0xAF4B 0xCE3A +0xAF4C 0xCE3B +0xAF4D 0xCE3C +0xAF4E 0xCE3D +0xAF4F 0xCE3E +0xAF50 0xCE3F +0xAF51 0xCE40 +0xAF52 0xCE41 +0xAF53 0xCE42 +0xAF54 0xCE43 +0xAF55 0xCE44 +0xAF56 0xCE45 +0xAF57 0xCE46 +0xAF58 0xCE47 +0xAF59 0xCE48 +0xAF5A 0xCE49 +0xAF61 0xCE4A +0xAF62 0xCE4B +0xAF63 0xCE4C +0xAF64 0xCE4D +0xAF65 0xCE4E +0xAF66 0xCE4F +0xAF67 0xCE50 +0xAF68 0xCE51 +0xAF69 0xCE52 +0xAF6A 0xCE53 +0xAF6B 0xCE54 +0xAF6C 0xCE55 +0xAF6D 0xCE56 +0xAF6E 0xCE57 +0xAF6F 0xCE5A +0xAF70 0xCE5B +0xAF71 0xCE5D +0xAF72 0xCE5E +0xAF73 0xCE62 +0xAF74 0xCE63 +0xAF75 0xCE64 +0xAF76 0xCE65 +0xAF77 0xCE66 +0xAF78 0xCE67 +0xAF79 0xCE6A +0xAF7A 0xCE6C +0xAF81 0xCE6E +0xAF82 0xCE6F +0xAF83 0xCE70 +0xAF84 0xCE71 +0xAF85 0xCE72 +0xAF86 0xCE73 +0xAF87 0xCE76 +0xAF88 0xCE77 +0xAF89 0xCE79 +0xAF8A 0xCE7A +0xAF8B 0xCE7B +0xAF8C 0xCE7D +0xAF8D 0xCE7E +0xAF8E 0xCE7F +0xAF8F 0xCE80 +0xAF90 0xCE81 +0xAF91 0xCE82 +0xAF92 0xCE83 +0xAF93 0xCE86 +0xAF94 0xCE88 +0xAF95 0xCE8A +0xAF96 0xCE8B +0xAF97 0xCE8C +0xAF98 0xCE8D +0xAF99 0xCE8E +0xAF9A 0xCE8F +0xAF9B 0xCE92 +0xAF9C 0xCE93 +0xAF9D 0xCE95 +0xAF9E 0xCE96 +0xAF9F 0xCE97 +0xAFA0 0xCE99 +0xB041 0xCE9A +0xB042 0xCE9B +0xB043 0xCE9C +0xB044 0xCE9D +0xB045 0xCE9E +0xB046 0xCE9F +0xB047 0xCEA2 +0xB048 0xCEA6 +0xB049 0xCEA7 +0xB04A 0xCEA8 +0xB04B 0xCEA9 +0xB04C 0xCEAA +0xB04D 0xCEAB +0xB04E 0xCEAE +0xB04F 0xCEAF +0xB050 0xCEB0 +0xB051 0xCEB1 +0xB052 0xCEB2 +0xB053 0xCEB3 +0xB054 0xCEB4 +0xB055 0xCEB5 +0xB056 0xCEB6 +0xB057 0xCEB7 +0xB058 0xCEB8 +0xB059 0xCEB9 +0xB05A 0xCEBA +0xB061 0xCEBB +0xB062 0xCEBC +0xB063 0xCEBD +0xB064 0xCEBE +0xB065 0xCEBF +0xB066 0xCEC0 +0xB067 0xCEC2 +0xB068 0xCEC3 +0xB069 0xCEC4 +0xB06A 0xCEC5 +0xB06B 0xCEC6 +0xB06C 0xCEC7 +0xB06D 0xCEC8 +0xB06E 0xCEC9 +0xB06F 0xCECA +0xB070 0xCECB +0xB071 0xCECC +0xB072 0xCECD +0xB073 0xCECE +0xB074 0xCECF +0xB075 0xCED0 +0xB076 0xCED1 +0xB077 0xCED2 +0xB078 0xCED3 +0xB079 0xCED4 +0xB07A 0xCED5 +0xB081 0xCED6 +0xB082 0xCED7 +0xB083 0xCED8 +0xB084 0xCED9 +0xB085 0xCEDA +0xB086 0xCEDB +0xB087 0xCEDC +0xB088 0xCEDD +0xB089 0xCEDE +0xB08A 0xCEDF +0xB08B 0xCEE0 +0xB08C 0xCEE1 +0xB08D 0xCEE2 +0xB08E 0xCEE3 +0xB08F 0xCEE6 +0xB090 0xCEE7 +0xB091 0xCEE9 +0xB092 0xCEEA +0xB093 0xCEED +0xB094 0xCEEE +0xB095 0xCEEF +0xB096 0xCEF0 +0xB097 0xCEF1 +0xB098 0xCEF2 +0xB099 0xCEF3 +0xB09A 0xCEF6 +0xB09B 0xCEFA +0xB09C 0xCEFB +0xB09D 0xCEFC +0xB09E 0xCEFD +0xB09F 0xCEFE +0xB0A0 0xCEFF +0xB0A1 0xAC00 +0xB0A2 0xAC01 +0xB0A3 0xAC04 +0xB0A4 0xAC07 +0xB0A5 0xAC08 +0xB0A6 0xAC09 +0xB0A7 0xAC0A +0xB0A8 0xAC10 +0xB0A9 0xAC11 +0xB0AA 0xAC12 +0xB0AB 0xAC13 +0xB0AC 0xAC14 +0xB0AD 0xAC15 +0xB0AE 0xAC16 +0xB0AF 0xAC17 +0xB0B0 0xAC19 +0xB0B1 0xAC1A +0xB0B2 0xAC1B +0xB0B3 0xAC1C +0xB0B4 0xAC1D +0xB0B5 0xAC20 +0xB0B6 0xAC24 +0xB0B7 0xAC2C +0xB0B8 0xAC2D +0xB0B9 0xAC2F +0xB0BA 0xAC30 +0xB0BB 0xAC31 +0xB0BC 0xAC38 +0xB0BD 0xAC39 +0xB0BE 0xAC3C +0xB0BF 0xAC40 +0xB0C0 0xAC4B +0xB0C1 0xAC4D +0xB0C2 0xAC54 +0xB0C3 0xAC58 +0xB0C4 0xAC5C +0xB0C5 0xAC70 +0xB0C6 0xAC71 +0xB0C7 0xAC74 +0xB0C8 0xAC77 +0xB0C9 0xAC78 +0xB0CA 0xAC7A +0xB0CB 0xAC80 +0xB0CC 0xAC81 +0xB0CD 0xAC83 +0xB0CE 0xAC84 +0xB0CF 0xAC85 +0xB0D0 0xAC86 +0xB0D1 0xAC89 +0xB0D2 0xAC8A +0xB0D3 0xAC8B +0xB0D4 0xAC8C +0xB0D5 0xAC90 +0xB0D6 0xAC94 +0xB0D7 0xAC9C +0xB0D8 0xAC9D +0xB0D9 0xAC9F +0xB0DA 0xACA0 +0xB0DB 0xACA1 +0xB0DC 0xACA8 +0xB0DD 0xACA9 +0xB0DE 0xACAA +0xB0DF 0xACAC +0xB0E0 0xACAF +0xB0E1 0xACB0 +0xB0E2 0xACB8 +0xB0E3 0xACB9 +0xB0E4 0xACBB +0xB0E5 0xACBC +0xB0E6 0xACBD +0xB0E7 0xACC1 +0xB0E8 0xACC4 +0xB0E9 0xACC8 +0xB0EA 0xACCC +0xB0EB 0xACD5 +0xB0EC 0xACD7 +0xB0ED 0xACE0 +0xB0EE 0xACE1 +0xB0EF 0xACE4 +0xB0F0 0xACE7 +0xB0F1 0xACE8 +0xB0F2 0xACEA +0xB0F3 0xACEC +0xB0F4 0xACEF +0xB0F5 0xACF0 +0xB0F6 0xACF1 +0xB0F7 0xACF3 +0xB0F8 0xACF5 +0xB0F9 0xACF6 +0xB0FA 0xACFC +0xB0FB 0xACFD +0xB0FC 0xAD00 +0xB0FD 0xAD04 +0xB0FE 0xAD06 +0xB141 0xCF02 +0xB142 0xCF03 +0xB143 0xCF05 +0xB144 0xCF06 +0xB145 0xCF07 +0xB146 0xCF09 +0xB147 0xCF0A +0xB148 0xCF0B +0xB149 0xCF0C +0xB14A 0xCF0D +0xB14B 0xCF0E +0xB14C 0xCF0F +0xB14D 0xCF12 +0xB14E 0xCF14 +0xB14F 0xCF16 +0xB150 0xCF17 +0xB151 0xCF18 +0xB152 0xCF19 +0xB153 0xCF1A +0xB154 0xCF1B +0xB155 0xCF1D +0xB156 0xCF1E +0xB157 0xCF1F +0xB158 0xCF21 +0xB159 0xCF22 +0xB15A 0xCF23 +0xB161 0xCF25 +0xB162 0xCF26 +0xB163 0xCF27 +0xB164 0xCF28 +0xB165 0xCF29 +0xB166 0xCF2A +0xB167 0xCF2B +0xB168 0xCF2E +0xB169 0xCF32 +0xB16A 0xCF33 +0xB16B 0xCF34 +0xB16C 0xCF35 +0xB16D 0xCF36 +0xB16E 0xCF37 +0xB16F 0xCF39 +0xB170 0xCF3A +0xB171 0xCF3B +0xB172 0xCF3C +0xB173 0xCF3D +0xB174 0xCF3E +0xB175 0xCF3F +0xB176 0xCF40 +0xB177 0xCF41 +0xB178 0xCF42 +0xB179 0xCF43 +0xB17A 0xCF44 +0xB181 0xCF45 +0xB182 0xCF46 +0xB183 0xCF47 +0xB184 0xCF48 +0xB185 0xCF49 +0xB186 0xCF4A +0xB187 0xCF4B +0xB188 0xCF4C +0xB189 0xCF4D +0xB18A 0xCF4E +0xB18B 0xCF4F +0xB18C 0xCF50 +0xB18D 0xCF51 +0xB18E 0xCF52 +0xB18F 0xCF53 +0xB190 0xCF56 +0xB191 0xCF57 +0xB192 0xCF59 +0xB193 0xCF5A +0xB194 0xCF5B +0xB195 0xCF5D +0xB196 0xCF5E +0xB197 0xCF5F +0xB198 0xCF60 +0xB199 0xCF61 +0xB19A 0xCF62 +0xB19B 0xCF63 +0xB19C 0xCF66 +0xB19D 0xCF68 +0xB19E 0xCF6A +0xB19F 0xCF6B +0xB1A0 0xCF6C +0xB1A1 0xAD0C +0xB1A2 0xAD0D +0xB1A3 0xAD0F +0xB1A4 0xAD11 +0xB1A5 0xAD18 +0xB1A6 0xAD1C +0xB1A7 0xAD20 +0xB1A8 0xAD29 +0xB1A9 0xAD2C +0xB1AA 0xAD2D +0xB1AB 0xAD34 +0xB1AC 0xAD35 +0xB1AD 0xAD38 +0xB1AE 0xAD3C +0xB1AF 0xAD44 +0xB1B0 0xAD45 +0xB1B1 0xAD47 +0xB1B2 0xAD49 +0xB1B3 0xAD50 +0xB1B4 0xAD54 +0xB1B5 0xAD58 +0xB1B6 0xAD61 +0xB1B7 0xAD63 +0xB1B8 0xAD6C +0xB1B9 0xAD6D +0xB1BA 0xAD70 +0xB1BB 0xAD73 +0xB1BC 0xAD74 +0xB1BD 0xAD75 +0xB1BE 0xAD76 +0xB1BF 0xAD7B +0xB1C0 0xAD7C +0xB1C1 0xAD7D +0xB1C2 0xAD7F +0xB1C3 0xAD81 +0xB1C4 0xAD82 +0xB1C5 0xAD88 +0xB1C6 0xAD89 +0xB1C7 0xAD8C +0xB1C8 0xAD90 +0xB1C9 0xAD9C +0xB1CA 0xAD9D +0xB1CB 0xADA4 +0xB1CC 0xADB7 +0xB1CD 0xADC0 +0xB1CE 0xADC1 +0xB1CF 0xADC4 +0xB1D0 0xADC8 +0xB1D1 0xADD0 +0xB1D2 0xADD1 +0xB1D3 0xADD3 +0xB1D4 0xADDC +0xB1D5 0xADE0 +0xB1D6 0xADE4 +0xB1D7 0xADF8 +0xB1D8 0xADF9 +0xB1D9 0xADFC +0xB1DA 0xADFF +0xB1DB 0xAE00 +0xB1DC 0xAE01 +0xB1DD 0xAE08 +0xB1DE 0xAE09 +0xB1DF 0xAE0B +0xB1E0 0xAE0D +0xB1E1 0xAE14 +0xB1E2 0xAE30 +0xB1E3 0xAE31 +0xB1E4 0xAE34 +0xB1E5 0xAE37 +0xB1E6 0xAE38 +0xB1E7 0xAE3A +0xB1E8 0xAE40 +0xB1E9 0xAE41 +0xB1EA 0xAE43 +0xB1EB 0xAE45 +0xB1EC 0xAE46 +0xB1ED 0xAE4A +0xB1EE 0xAE4C +0xB1EF 0xAE4D +0xB1F0 0xAE4E +0xB1F1 0xAE50 +0xB1F2 0xAE54 +0xB1F3 0xAE56 +0xB1F4 0xAE5C +0xB1F5 0xAE5D +0xB1F6 0xAE5F +0xB1F7 0xAE60 +0xB1F8 0xAE61 +0xB1F9 0xAE65 +0xB1FA 0xAE68 +0xB1FB 0xAE69 +0xB1FC 0xAE6C +0xB1FD 0xAE70 +0xB1FE 0xAE78 +0xB241 0xCF6D +0xB242 0xCF6E +0xB243 0xCF6F +0xB244 0xCF72 +0xB245 0xCF73 +0xB246 0xCF75 +0xB247 0xCF76 +0xB248 0xCF77 +0xB249 0xCF79 +0xB24A 0xCF7A +0xB24B 0xCF7B +0xB24C 0xCF7C +0xB24D 0xCF7D +0xB24E 0xCF7E +0xB24F 0xCF7F +0xB250 0xCF81 +0xB251 0xCF82 +0xB252 0xCF83 +0xB253 0xCF84 +0xB254 0xCF86 +0xB255 0xCF87 +0xB256 0xCF88 +0xB257 0xCF89 +0xB258 0xCF8A +0xB259 0xCF8B +0xB25A 0xCF8D +0xB261 0xCF8E +0xB262 0xCF8F +0xB263 0xCF90 +0xB264 0xCF91 +0xB265 0xCF92 +0xB266 0xCF93 +0xB267 0xCF94 +0xB268 0xCF95 +0xB269 0xCF96 +0xB26A 0xCF97 +0xB26B 0xCF98 +0xB26C 0xCF99 +0xB26D 0xCF9A +0xB26E 0xCF9B +0xB26F 0xCF9C +0xB270 0xCF9D +0xB271 0xCF9E +0xB272 0xCF9F +0xB273 0xCFA0 +0xB274 0xCFA2 +0xB275 0xCFA3 +0xB276 0xCFA4 +0xB277 0xCFA5 +0xB278 0xCFA6 +0xB279 0xCFA7 +0xB27A 0xCFA9 +0xB281 0xCFAA +0xB282 0xCFAB +0xB283 0xCFAC +0xB284 0xCFAD +0xB285 0xCFAE +0xB286 0xCFAF +0xB287 0xCFB1 +0xB288 0xCFB2 +0xB289 0xCFB3 +0xB28A 0xCFB4 +0xB28B 0xCFB5 +0xB28C 0xCFB6 +0xB28D 0xCFB7 +0xB28E 0xCFB8 +0xB28F 0xCFB9 +0xB290 0xCFBA +0xB291 0xCFBB +0xB292 0xCFBC +0xB293 0xCFBD +0xB294 0xCFBE +0xB295 0xCFBF +0xB296 0xCFC0 +0xB297 0xCFC1 +0xB298 0xCFC2 +0xB299 0xCFC3 +0xB29A 0xCFC5 +0xB29B 0xCFC6 +0xB29C 0xCFC7 +0xB29D 0xCFC8 +0xB29E 0xCFC9 +0xB29F 0xCFCA +0xB2A0 0xCFCB +0xB2A1 0xAE79 +0xB2A2 0xAE7B +0xB2A3 0xAE7C +0xB2A4 0xAE7D +0xB2A5 0xAE84 +0xB2A6 0xAE85 +0xB2A7 0xAE8C +0xB2A8 0xAEBC +0xB2A9 0xAEBD +0xB2AA 0xAEBE +0xB2AB 0xAEC0 +0xB2AC 0xAEC4 +0xB2AD 0xAECC +0xB2AE 0xAECD +0xB2AF 0xAECF +0xB2B0 0xAED0 +0xB2B1 0xAED1 +0xB2B2 0xAED8 +0xB2B3 0xAED9 +0xB2B4 0xAEDC +0xB2B5 0xAEE8 +0xB2B6 0xAEEB +0xB2B7 0xAEED +0xB2B8 0xAEF4 +0xB2B9 0xAEF8 +0xB2BA 0xAEFC +0xB2BB 0xAF07 +0xB2BC 0xAF08 +0xB2BD 0xAF0D +0xB2BE 0xAF10 +0xB2BF 0xAF2C +0xB2C0 0xAF2D +0xB2C1 0xAF30 +0xB2C2 0xAF32 +0xB2C3 0xAF34 +0xB2C4 0xAF3C +0xB2C5 0xAF3D +0xB2C6 0xAF3F +0xB2C7 0xAF41 +0xB2C8 0xAF42 +0xB2C9 0xAF43 +0xB2CA 0xAF48 +0xB2CB 0xAF49 +0xB2CC 0xAF50 +0xB2CD 0xAF5C +0xB2CE 0xAF5D +0xB2CF 0xAF64 +0xB2D0 0xAF65 +0xB2D1 0xAF79 +0xB2D2 0xAF80 +0xB2D3 0xAF84 +0xB2D4 0xAF88 +0xB2D5 0xAF90 +0xB2D6 0xAF91 +0xB2D7 0xAF95 +0xB2D8 0xAF9C +0xB2D9 0xAFB8 +0xB2DA 0xAFB9 +0xB2DB 0xAFBC +0xB2DC 0xAFC0 +0xB2DD 0xAFC7 +0xB2DE 0xAFC8 +0xB2DF 0xAFC9 +0xB2E0 0xAFCB +0xB2E1 0xAFCD +0xB2E2 0xAFCE +0xB2E3 0xAFD4 +0xB2E4 0xAFDC +0xB2E5 0xAFE8 +0xB2E6 0xAFE9 +0xB2E7 0xAFF0 +0xB2E8 0xAFF1 +0xB2E9 0xAFF4 +0xB2EA 0xAFF8 +0xB2EB 0xB000 +0xB2EC 0xB001 +0xB2ED 0xB004 +0xB2EE 0xB00C +0xB2EF 0xB010 +0xB2F0 0xB014 +0xB2F1 0xB01C +0xB2F2 0xB01D +0xB2F3 0xB028 +0xB2F4 0xB044 +0xB2F5 0xB045 +0xB2F6 0xB048 +0xB2F7 0xB04A +0xB2F8 0xB04C +0xB2F9 0xB04E +0xB2FA 0xB053 +0xB2FB 0xB054 +0xB2FC 0xB055 +0xB2FD 0xB057 +0xB2FE 0xB059 +0xB341 0xCFCC +0xB342 0xCFCD +0xB343 0xCFCE +0xB344 0xCFCF +0xB345 0xCFD0 +0xB346 0xCFD1 +0xB347 0xCFD2 +0xB348 0xCFD3 +0xB349 0xCFD4 +0xB34A 0xCFD5 +0xB34B 0xCFD6 +0xB34C 0xCFD7 +0xB34D 0xCFD8 +0xB34E 0xCFD9 +0xB34F 0xCFDA +0xB350 0xCFDB +0xB351 0xCFDC +0xB352 0xCFDD +0xB353 0xCFDE +0xB354 0xCFDF +0xB355 0xCFE2 +0xB356 0xCFE3 +0xB357 0xCFE5 +0xB358 0xCFE6 +0xB359 0xCFE7 +0xB35A 0xCFE9 +0xB361 0xCFEA +0xB362 0xCFEB +0xB363 0xCFEC +0xB364 0xCFED +0xB365 0xCFEE +0xB366 0xCFEF +0xB367 0xCFF2 +0xB368 0xCFF4 +0xB369 0xCFF6 +0xB36A 0xCFF7 +0xB36B 0xCFF8 +0xB36C 0xCFF9 +0xB36D 0xCFFA +0xB36E 0xCFFB +0xB36F 0xCFFD +0xB370 0xCFFE +0xB371 0xCFFF +0xB372 0xD001 +0xB373 0xD002 +0xB374 0xD003 +0xB375 0xD005 +0xB376 0xD006 +0xB377 0xD007 +0xB378 0xD008 +0xB379 0xD009 +0xB37A 0xD00A +0xB381 0xD00B +0xB382 0xD00C +0xB383 0xD00D +0xB384 0xD00E +0xB385 0xD00F +0xB386 0xD010 +0xB387 0xD012 +0xB388 0xD013 +0xB389 0xD014 +0xB38A 0xD015 +0xB38B 0xD016 +0xB38C 0xD017 +0xB38D 0xD019 +0xB38E 0xD01A +0xB38F 0xD01B +0xB390 0xD01C +0xB391 0xD01D +0xB392 0xD01E +0xB393 0xD01F +0xB394 0xD020 +0xB395 0xD021 +0xB396 0xD022 +0xB397 0xD023 +0xB398 0xD024 +0xB399 0xD025 +0xB39A 0xD026 +0xB39B 0xD027 +0xB39C 0xD028 +0xB39D 0xD029 +0xB39E 0xD02A +0xB39F 0xD02B +0xB3A0 0xD02C +0xB3A1 0xB05D +0xB3A2 0xB07C +0xB3A3 0xB07D +0xB3A4 0xB080 +0xB3A5 0xB084 +0xB3A6 0xB08C +0xB3A7 0xB08D +0xB3A8 0xB08F +0xB3A9 0xB091 +0xB3AA 0xB098 +0xB3AB 0xB099 +0xB3AC 0xB09A +0xB3AD 0xB09C +0xB3AE 0xB09F +0xB3AF 0xB0A0 +0xB3B0 0xB0A1 +0xB3B1 0xB0A2 +0xB3B2 0xB0A8 +0xB3B3 0xB0A9 +0xB3B4 0xB0AB +0xB3B5 0xB0AC +0xB3B6 0xB0AD +0xB3B7 0xB0AE +0xB3B8 0xB0AF +0xB3B9 0xB0B1 +0xB3BA 0xB0B3 +0xB3BB 0xB0B4 +0xB3BC 0xB0B5 +0xB3BD 0xB0B8 +0xB3BE 0xB0BC +0xB3BF 0xB0C4 +0xB3C0 0xB0C5 +0xB3C1 0xB0C7 +0xB3C2 0xB0C8 +0xB3C3 0xB0C9 +0xB3C4 0xB0D0 +0xB3C5 0xB0D1 +0xB3C6 0xB0D4 +0xB3C7 0xB0D8 +0xB3C8 0xB0E0 +0xB3C9 0xB0E5 +0xB3CA 0xB108 +0xB3CB 0xB109 +0xB3CC 0xB10B +0xB3CD 0xB10C +0xB3CE 0xB110 +0xB3CF 0xB112 +0xB3D0 0xB113 +0xB3D1 0xB118 +0xB3D2 0xB119 +0xB3D3 0xB11B +0xB3D4 0xB11C +0xB3D5 0xB11D +0xB3D6 0xB123 +0xB3D7 0xB124 +0xB3D8 0xB125 +0xB3D9 0xB128 +0xB3DA 0xB12C +0xB3DB 0xB134 +0xB3DC 0xB135 +0xB3DD 0xB137 +0xB3DE 0xB138 +0xB3DF 0xB139 +0xB3E0 0xB140 +0xB3E1 0xB141 +0xB3E2 0xB144 +0xB3E3 0xB148 +0xB3E4 0xB150 +0xB3E5 0xB151 +0xB3E6 0xB154 +0xB3E7 0xB155 +0xB3E8 0xB158 +0xB3E9 0xB15C +0xB3EA 0xB160 +0xB3EB 0xB178 +0xB3EC 0xB179 +0xB3ED 0xB17C +0xB3EE 0xB180 +0xB3EF 0xB182 +0xB3F0 0xB188 +0xB3F1 0xB189 +0xB3F2 0xB18B +0xB3F3 0xB18D +0xB3F4 0xB192 +0xB3F5 0xB193 +0xB3F6 0xB194 +0xB3F7 0xB198 +0xB3F8 0xB19C +0xB3F9 0xB1A8 +0xB3FA 0xB1CC +0xB3FB 0xB1D0 +0xB3FC 0xB1D4 +0xB3FD 0xB1DC +0xB3FE 0xB1DD +0xB441 0xD02E +0xB442 0xD02F +0xB443 0xD030 +0xB444 0xD031 +0xB445 0xD032 +0xB446 0xD033 +0xB447 0xD036 +0xB448 0xD037 +0xB449 0xD039 +0xB44A 0xD03A +0xB44B 0xD03B +0xB44C 0xD03D +0xB44D 0xD03E +0xB44E 0xD03F +0xB44F 0xD040 +0xB450 0xD041 +0xB451 0xD042 +0xB452 0xD043 +0xB453 0xD046 +0xB454 0xD048 +0xB455 0xD04A +0xB456 0xD04B +0xB457 0xD04C +0xB458 0xD04D +0xB459 0xD04E +0xB45A 0xD04F +0xB461 0xD051 +0xB462 0xD052 +0xB463 0xD053 +0xB464 0xD055 +0xB465 0xD056 +0xB466 0xD057 +0xB467 0xD059 +0xB468 0xD05A +0xB469 0xD05B +0xB46A 0xD05C +0xB46B 0xD05D +0xB46C 0xD05E +0xB46D 0xD05F +0xB46E 0xD061 +0xB46F 0xD062 +0xB470 0xD063 +0xB471 0xD064 +0xB472 0xD065 +0xB473 0xD066 +0xB474 0xD067 +0xB475 0xD068 +0xB476 0xD069 +0xB477 0xD06A +0xB478 0xD06B +0xB479 0xD06E +0xB47A 0xD06F +0xB481 0xD071 +0xB482 0xD072 +0xB483 0xD073 +0xB484 0xD075 +0xB485 0xD076 +0xB486 0xD077 +0xB487 0xD078 +0xB488 0xD079 +0xB489 0xD07A +0xB48A 0xD07B +0xB48B 0xD07E +0xB48C 0xD07F +0xB48D 0xD080 +0xB48E 0xD082 +0xB48F 0xD083 +0xB490 0xD084 +0xB491 0xD085 +0xB492 0xD086 +0xB493 0xD087 +0xB494 0xD088 +0xB495 0xD089 +0xB496 0xD08A +0xB497 0xD08B +0xB498 0xD08C +0xB499 0xD08D +0xB49A 0xD08E +0xB49B 0xD08F +0xB49C 0xD090 +0xB49D 0xD091 +0xB49E 0xD092 +0xB49F 0xD093 +0xB4A0 0xD094 +0xB4A1 0xB1DF +0xB4A2 0xB1E8 +0xB4A3 0xB1E9 +0xB4A4 0xB1EC +0xB4A5 0xB1F0 +0xB4A6 0xB1F9 +0xB4A7 0xB1FB +0xB4A8 0xB1FD +0xB4A9 0xB204 +0xB4AA 0xB205 +0xB4AB 0xB208 +0xB4AC 0xB20B +0xB4AD 0xB20C +0xB4AE 0xB214 +0xB4AF 0xB215 +0xB4B0 0xB217 +0xB4B1 0xB219 +0xB4B2 0xB220 +0xB4B3 0xB234 +0xB4B4 0xB23C +0xB4B5 0xB258 +0xB4B6 0xB25C +0xB4B7 0xB260 +0xB4B8 0xB268 +0xB4B9 0xB269 +0xB4BA 0xB274 +0xB4BB 0xB275 +0xB4BC 0xB27C +0xB4BD 0xB284 +0xB4BE 0xB285 +0xB4BF 0xB289 +0xB4C0 0xB290 +0xB4C1 0xB291 +0xB4C2 0xB294 +0xB4C3 0xB298 +0xB4C4 0xB299 +0xB4C5 0xB29A +0xB4C6 0xB2A0 +0xB4C7 0xB2A1 +0xB4C8 0xB2A3 +0xB4C9 0xB2A5 +0xB4CA 0xB2A6 +0xB4CB 0xB2AA +0xB4CC 0xB2AC +0xB4CD 0xB2B0 +0xB4CE 0xB2B4 +0xB4CF 0xB2C8 +0xB4D0 0xB2C9 +0xB4D1 0xB2CC +0xB4D2 0xB2D0 +0xB4D3 0xB2D2 +0xB4D4 0xB2D8 +0xB4D5 0xB2D9 +0xB4D6 0xB2DB +0xB4D7 0xB2DD +0xB4D8 0xB2E2 +0xB4D9 0xB2E4 +0xB4DA 0xB2E5 +0xB4DB 0xB2E6 +0xB4DC 0xB2E8 +0xB4DD 0xB2EB +0xB4DE 0xB2EC +0xB4DF 0xB2ED +0xB4E0 0xB2EE +0xB4E1 0xB2EF +0xB4E2 0xB2F3 +0xB4E3 0xB2F4 +0xB4E4 0xB2F5 +0xB4E5 0xB2F7 +0xB4E6 0xB2F8 +0xB4E7 0xB2F9 +0xB4E8 0xB2FA +0xB4E9 0xB2FB +0xB4EA 0xB2FF +0xB4EB 0xB300 +0xB4EC 0xB301 +0xB4ED 0xB304 +0xB4EE 0xB308 +0xB4EF 0xB310 +0xB4F0 0xB311 +0xB4F1 0xB313 +0xB4F2 0xB314 +0xB4F3 0xB315 +0xB4F4 0xB31C +0xB4F5 0xB354 +0xB4F6 0xB355 +0xB4F7 0xB356 +0xB4F8 0xB358 +0xB4F9 0xB35B +0xB4FA 0xB35C +0xB4FB 0xB35E +0xB4FC 0xB35F +0xB4FD 0xB364 +0xB4FE 0xB365 +0xB541 0xD095 +0xB542 0xD096 +0xB543 0xD097 +0xB544 0xD098 +0xB545 0xD099 +0xB546 0xD09A +0xB547 0xD09B +0xB548 0xD09C +0xB549 0xD09D +0xB54A 0xD09E +0xB54B 0xD09F +0xB54C 0xD0A0 +0xB54D 0xD0A1 +0xB54E 0xD0A2 +0xB54F 0xD0A3 +0xB550 0xD0A6 +0xB551 0xD0A7 +0xB552 0xD0A9 +0xB553 0xD0AA +0xB554 0xD0AB +0xB555 0xD0AD +0xB556 0xD0AE +0xB557 0xD0AF +0xB558 0xD0B0 +0xB559 0xD0B1 +0xB55A 0xD0B2 +0xB561 0xD0B3 +0xB562 0xD0B6 +0xB563 0xD0B8 +0xB564 0xD0BA +0xB565 0xD0BB +0xB566 0xD0BC +0xB567 0xD0BD +0xB568 0xD0BE +0xB569 0xD0BF +0xB56A 0xD0C2 +0xB56B 0xD0C3 +0xB56C 0xD0C5 +0xB56D 0xD0C6 +0xB56E 0xD0C7 +0xB56F 0xD0CA +0xB570 0xD0CB +0xB571 0xD0CC +0xB572 0xD0CD +0xB573 0xD0CE +0xB574 0xD0CF +0xB575 0xD0D2 +0xB576 0xD0D6 +0xB577 0xD0D7 +0xB578 0xD0D8 +0xB579 0xD0D9 +0xB57A 0xD0DA +0xB581 0xD0DB +0xB582 0xD0DE +0xB583 0xD0DF +0xB584 0xD0E1 +0xB585 0xD0E2 +0xB586 0xD0E3 +0xB587 0xD0E5 +0xB588 0xD0E6 +0xB589 0xD0E7 +0xB58A 0xD0E8 +0xB58B 0xD0E9 +0xB58C 0xD0EA +0xB58D 0xD0EB +0xB58E 0xD0EE +0xB58F 0xD0F2 +0xB590 0xD0F3 +0xB591 0xD0F4 +0xB592 0xD0F5 +0xB593 0xD0F6 +0xB594 0xD0F7 +0xB595 0xD0F9 +0xB596 0xD0FA +0xB597 0xD0FB +0xB598 0xD0FC +0xB599 0xD0FD +0xB59A 0xD0FE +0xB59B 0xD0FF +0xB59C 0xD100 +0xB59D 0xD101 +0xB59E 0xD102 +0xB59F 0xD103 +0xB5A0 0xD104 +0xB5A1 0xB367 +0xB5A2 0xB369 +0xB5A3 0xB36B +0xB5A4 0xB36E +0xB5A5 0xB370 +0xB5A6 0xB371 +0xB5A7 0xB374 +0xB5A8 0xB378 +0xB5A9 0xB380 +0xB5AA 0xB381 +0xB5AB 0xB383 +0xB5AC 0xB384 +0xB5AD 0xB385 +0xB5AE 0xB38C +0xB5AF 0xB390 +0xB5B0 0xB394 +0xB5B1 0xB3A0 +0xB5B2 0xB3A1 +0xB5B3 0xB3A8 +0xB5B4 0xB3AC +0xB5B5 0xB3C4 +0xB5B6 0xB3C5 +0xB5B7 0xB3C8 +0xB5B8 0xB3CB +0xB5B9 0xB3CC +0xB5BA 0xB3CE +0xB5BB 0xB3D0 +0xB5BC 0xB3D4 +0xB5BD 0xB3D5 +0xB5BE 0xB3D7 +0xB5BF 0xB3D9 +0xB5C0 0xB3DB +0xB5C1 0xB3DD +0xB5C2 0xB3E0 +0xB5C3 0xB3E4 +0xB5C4 0xB3E8 +0xB5C5 0xB3FC +0xB5C6 0xB410 +0xB5C7 0xB418 +0xB5C8 0xB41C +0xB5C9 0xB420 +0xB5CA 0xB428 +0xB5CB 0xB429 +0xB5CC 0xB42B +0xB5CD 0xB434 +0xB5CE 0xB450 +0xB5CF 0xB451 +0xB5D0 0xB454 +0xB5D1 0xB458 +0xB5D2 0xB460 +0xB5D3 0xB461 +0xB5D4 0xB463 +0xB5D5 0xB465 +0xB5D6 0xB46C +0xB5D7 0xB480 +0xB5D8 0xB488 +0xB5D9 0xB49D +0xB5DA 0xB4A4 +0xB5DB 0xB4A8 +0xB5DC 0xB4AC +0xB5DD 0xB4B5 +0xB5DE 0xB4B7 +0xB5DF 0xB4B9 +0xB5E0 0xB4C0 +0xB5E1 0xB4C4 +0xB5E2 0xB4C8 +0xB5E3 0xB4D0 +0xB5E4 0xB4D5 +0xB5E5 0xB4DC +0xB5E6 0xB4DD +0xB5E7 0xB4E0 +0xB5E8 0xB4E3 +0xB5E9 0xB4E4 +0xB5EA 0xB4E6 +0xB5EB 0xB4EC +0xB5EC 0xB4ED +0xB5ED 0xB4EF +0xB5EE 0xB4F1 +0xB5EF 0xB4F8 +0xB5F0 0xB514 +0xB5F1 0xB515 +0xB5F2 0xB518 +0xB5F3 0xB51B +0xB5F4 0xB51C +0xB5F5 0xB524 +0xB5F6 0xB525 +0xB5F7 0xB527 +0xB5F8 0xB528 +0xB5F9 0xB529 +0xB5FA 0xB52A +0xB5FB 0xB530 +0xB5FC 0xB531 +0xB5FD 0xB534 +0xB5FE 0xB538 +0xB641 0xD105 +0xB642 0xD106 +0xB643 0xD107 +0xB644 0xD108 +0xB645 0xD109 +0xB646 0xD10A +0xB647 0xD10B +0xB648 0xD10C +0xB649 0xD10E +0xB64A 0xD10F +0xB64B 0xD110 +0xB64C 0xD111 +0xB64D 0xD112 +0xB64E 0xD113 +0xB64F 0xD114 +0xB650 0xD115 +0xB651 0xD116 +0xB652 0xD117 +0xB653 0xD118 +0xB654 0xD119 +0xB655 0xD11A +0xB656 0xD11B +0xB657 0xD11C +0xB658 0xD11D +0xB659 0xD11E +0xB65A 0xD11F +0xB661 0xD120 +0xB662 0xD121 +0xB663 0xD122 +0xB664 0xD123 +0xB665 0xD124 +0xB666 0xD125 +0xB667 0xD126 +0xB668 0xD127 +0xB669 0xD128 +0xB66A 0xD129 +0xB66B 0xD12A +0xB66C 0xD12B +0xB66D 0xD12C +0xB66E 0xD12D +0xB66F 0xD12E +0xB670 0xD12F +0xB671 0xD132 +0xB672 0xD133 +0xB673 0xD135 +0xB674 0xD136 +0xB675 0xD137 +0xB676 0xD139 +0xB677 0xD13B +0xB678 0xD13C +0xB679 0xD13D +0xB67A 0xD13E +0xB681 0xD13F +0xB682 0xD142 +0xB683 0xD146 +0xB684 0xD147 +0xB685 0xD148 +0xB686 0xD149 +0xB687 0xD14A +0xB688 0xD14B +0xB689 0xD14E +0xB68A 0xD14F +0xB68B 0xD151 +0xB68C 0xD152 +0xB68D 0xD153 +0xB68E 0xD155 +0xB68F 0xD156 +0xB690 0xD157 +0xB691 0xD158 +0xB692 0xD159 +0xB693 0xD15A +0xB694 0xD15B +0xB695 0xD15E +0xB696 0xD160 +0xB697 0xD162 +0xB698 0xD163 +0xB699 0xD164 +0xB69A 0xD165 +0xB69B 0xD166 +0xB69C 0xD167 +0xB69D 0xD169 +0xB69E 0xD16A +0xB69F 0xD16B +0xB6A0 0xD16D +0xB6A1 0xB540 +0xB6A2 0xB541 +0xB6A3 0xB543 +0xB6A4 0xB544 +0xB6A5 0xB545 +0xB6A6 0xB54B +0xB6A7 0xB54C +0xB6A8 0xB54D +0xB6A9 0xB550 +0xB6AA 0xB554 +0xB6AB 0xB55C +0xB6AC 0xB55D +0xB6AD 0xB55F +0xB6AE 0xB560 +0xB6AF 0xB561 +0xB6B0 0xB5A0 +0xB6B1 0xB5A1 +0xB6B2 0xB5A4 +0xB6B3 0xB5A8 +0xB6B4 0xB5AA +0xB6B5 0xB5AB +0xB6B6 0xB5B0 +0xB6B7 0xB5B1 +0xB6B8 0xB5B3 +0xB6B9 0xB5B4 +0xB6BA 0xB5B5 +0xB6BB 0xB5BB +0xB6BC 0xB5BC +0xB6BD 0xB5BD +0xB6BE 0xB5C0 +0xB6BF 0xB5C4 +0xB6C0 0xB5CC +0xB6C1 0xB5CD +0xB6C2 0xB5CF +0xB6C3 0xB5D0 +0xB6C4 0xB5D1 +0xB6C5 0xB5D8 +0xB6C6 0xB5EC +0xB6C7 0xB610 +0xB6C8 0xB611 +0xB6C9 0xB614 +0xB6CA 0xB618 +0xB6CB 0xB625 +0xB6CC 0xB62C +0xB6CD 0xB634 +0xB6CE 0xB648 +0xB6CF 0xB664 +0xB6D0 0xB668 +0xB6D1 0xB69C +0xB6D2 0xB69D +0xB6D3 0xB6A0 +0xB6D4 0xB6A4 +0xB6D5 0xB6AB +0xB6D6 0xB6AC +0xB6D7 0xB6B1 +0xB6D8 0xB6D4 +0xB6D9 0xB6F0 +0xB6DA 0xB6F4 +0xB6DB 0xB6F8 +0xB6DC 0xB700 +0xB6DD 0xB701 +0xB6DE 0xB705 +0xB6DF 0xB728 +0xB6E0 0xB729 +0xB6E1 0xB72C +0xB6E2 0xB72F +0xB6E3 0xB730 +0xB6E4 0xB738 +0xB6E5 0xB739 +0xB6E6 0xB73B +0xB6E7 0xB744 +0xB6E8 0xB748 +0xB6E9 0xB74C +0xB6EA 0xB754 +0xB6EB 0xB755 +0xB6EC 0xB760 +0xB6ED 0xB764 +0xB6EE 0xB768 +0xB6EF 0xB770 +0xB6F0 0xB771 +0xB6F1 0xB773 +0xB6F2 0xB775 +0xB6F3 0xB77C +0xB6F4 0xB77D +0xB6F5 0xB780 +0xB6F6 0xB784 +0xB6F7 0xB78C +0xB6F8 0xB78D +0xB6F9 0xB78F +0xB6FA 0xB790 +0xB6FB 0xB791 +0xB6FC 0xB792 +0xB6FD 0xB796 +0xB6FE 0xB797 +0xB741 0xD16E +0xB742 0xD16F +0xB743 0xD170 +0xB744 0xD171 +0xB745 0xD172 +0xB746 0xD173 +0xB747 0xD174 +0xB748 0xD175 +0xB749 0xD176 +0xB74A 0xD177 +0xB74B 0xD178 +0xB74C 0xD179 +0xB74D 0xD17A +0xB74E 0xD17B +0xB74F 0xD17D +0xB750 0xD17E +0xB751 0xD17F +0xB752 0xD180 +0xB753 0xD181 +0xB754 0xD182 +0xB755 0xD183 +0xB756 0xD185 +0xB757 0xD186 +0xB758 0xD187 +0xB759 0xD189 +0xB75A 0xD18A +0xB761 0xD18B +0xB762 0xD18C +0xB763 0xD18D +0xB764 0xD18E +0xB765 0xD18F +0xB766 0xD190 +0xB767 0xD191 +0xB768 0xD192 +0xB769 0xD193 +0xB76A 0xD194 +0xB76B 0xD195 +0xB76C 0xD196 +0xB76D 0xD197 +0xB76E 0xD198 +0xB76F 0xD199 +0xB770 0xD19A +0xB771 0xD19B +0xB772 0xD19C +0xB773 0xD19D +0xB774 0xD19E +0xB775 0xD19F +0xB776 0xD1A2 +0xB777 0xD1A3 +0xB778 0xD1A5 +0xB779 0xD1A6 +0xB77A 0xD1A7 +0xB781 0xD1A9 +0xB782 0xD1AA +0xB783 0xD1AB +0xB784 0xD1AC +0xB785 0xD1AD +0xB786 0xD1AE +0xB787 0xD1AF +0xB788 0xD1B2 +0xB789 0xD1B4 +0xB78A 0xD1B6 +0xB78B 0xD1B7 +0xB78C 0xD1B8 +0xB78D 0xD1B9 +0xB78E 0xD1BB +0xB78F 0xD1BD +0xB790 0xD1BE +0xB791 0xD1BF +0xB792 0xD1C1 +0xB793 0xD1C2 +0xB794 0xD1C3 +0xB795 0xD1C4 +0xB796 0xD1C5 +0xB797 0xD1C6 +0xB798 0xD1C7 +0xB799 0xD1C8 +0xB79A 0xD1C9 +0xB79B 0xD1CA +0xB79C 0xD1CB +0xB79D 0xD1CC +0xB79E 0xD1CD +0xB79F 0xD1CE +0xB7A0 0xD1CF +0xB7A1 0xB798 +0xB7A2 0xB799 +0xB7A3 0xB79C +0xB7A4 0xB7A0 +0xB7A5 0xB7A8 +0xB7A6 0xB7A9 +0xB7A7 0xB7AB +0xB7A8 0xB7AC +0xB7A9 0xB7AD +0xB7AA 0xB7B4 +0xB7AB 0xB7B5 +0xB7AC 0xB7B8 +0xB7AD 0xB7C7 +0xB7AE 0xB7C9 +0xB7AF 0xB7EC +0xB7B0 0xB7ED +0xB7B1 0xB7F0 +0xB7B2 0xB7F4 +0xB7B3 0xB7FC +0xB7B4 0xB7FD +0xB7B5 0xB7FF +0xB7B6 0xB800 +0xB7B7 0xB801 +0xB7B8 0xB807 +0xB7B9 0xB808 +0xB7BA 0xB809 +0xB7BB 0xB80C +0xB7BC 0xB810 +0xB7BD 0xB818 +0xB7BE 0xB819 +0xB7BF 0xB81B +0xB7C0 0xB81D +0xB7C1 0xB824 +0xB7C2 0xB825 +0xB7C3 0xB828 +0xB7C4 0xB82C +0xB7C5 0xB834 +0xB7C6 0xB835 +0xB7C7 0xB837 +0xB7C8 0xB838 +0xB7C9 0xB839 +0xB7CA 0xB840 +0xB7CB 0xB844 +0xB7CC 0xB851 +0xB7CD 0xB853 +0xB7CE 0xB85C +0xB7CF 0xB85D +0xB7D0 0xB860 +0xB7D1 0xB864 +0xB7D2 0xB86C +0xB7D3 0xB86D +0xB7D4 0xB86F +0xB7D5 0xB871 +0xB7D6 0xB878 +0xB7D7 0xB87C +0xB7D8 0xB88D +0xB7D9 0xB8A8 +0xB7DA 0xB8B0 +0xB7DB 0xB8B4 +0xB7DC 0xB8B8 +0xB7DD 0xB8C0 +0xB7DE 0xB8C1 +0xB7DF 0xB8C3 +0xB7E0 0xB8C5 +0xB7E1 0xB8CC +0xB7E2 0xB8D0 +0xB7E3 0xB8D4 +0xB7E4 0xB8DD +0xB7E5 0xB8DF +0xB7E6 0xB8E1 +0xB7E7 0xB8E8 +0xB7E8 0xB8E9 +0xB7E9 0xB8EC +0xB7EA 0xB8F0 +0xB7EB 0xB8F8 +0xB7EC 0xB8F9 +0xB7ED 0xB8FB +0xB7EE 0xB8FD +0xB7EF 0xB904 +0xB7F0 0xB918 +0xB7F1 0xB920 +0xB7F2 0xB93C +0xB7F3 0xB93D +0xB7F4 0xB940 +0xB7F5 0xB944 +0xB7F6 0xB94C +0xB7F7 0xB94F +0xB7F8 0xB951 +0xB7F9 0xB958 +0xB7FA 0xB959 +0xB7FB 0xB95C +0xB7FC 0xB960 +0xB7FD 0xB968 +0xB7FE 0xB969 +0xB841 0xD1D0 +0xB842 0xD1D1 +0xB843 0xD1D2 +0xB844 0xD1D3 +0xB845 0xD1D4 +0xB846 0xD1D5 +0xB847 0xD1D6 +0xB848 0xD1D7 +0xB849 0xD1D9 +0xB84A 0xD1DA +0xB84B 0xD1DB +0xB84C 0xD1DC +0xB84D 0xD1DD +0xB84E 0xD1DE +0xB84F 0xD1DF +0xB850 0xD1E0 +0xB851 0xD1E1 +0xB852 0xD1E2 +0xB853 0xD1E3 +0xB854 0xD1E4 +0xB855 0xD1E5 +0xB856 0xD1E6 +0xB857 0xD1E7 +0xB858 0xD1E8 +0xB859 0xD1E9 +0xB85A 0xD1EA +0xB861 0xD1EB +0xB862 0xD1EC +0xB863 0xD1ED +0xB864 0xD1EE +0xB865 0xD1EF +0xB866 0xD1F0 +0xB867 0xD1F1 +0xB868 0xD1F2 +0xB869 0xD1F3 +0xB86A 0xD1F5 +0xB86B 0xD1F6 +0xB86C 0xD1F7 +0xB86D 0xD1F9 +0xB86E 0xD1FA +0xB86F 0xD1FB +0xB870 0xD1FC +0xB871 0xD1FD +0xB872 0xD1FE +0xB873 0xD1FF +0xB874 0xD200 +0xB875 0xD201 +0xB876 0xD202 +0xB877 0xD203 +0xB878 0xD204 +0xB879 0xD205 +0xB87A 0xD206 +0xB881 0xD208 +0xB882 0xD20A +0xB883 0xD20B +0xB884 0xD20C +0xB885 0xD20D +0xB886 0xD20E +0xB887 0xD20F +0xB888 0xD211 +0xB889 0xD212 +0xB88A 0xD213 +0xB88B 0xD214 +0xB88C 0xD215 +0xB88D 0xD216 +0xB88E 0xD217 +0xB88F 0xD218 +0xB890 0xD219 +0xB891 0xD21A +0xB892 0xD21B +0xB893 0xD21C +0xB894 0xD21D +0xB895 0xD21E +0xB896 0xD21F +0xB897 0xD220 +0xB898 0xD221 +0xB899 0xD222 +0xB89A 0xD223 +0xB89B 0xD224 +0xB89C 0xD225 +0xB89D 0xD226 +0xB89E 0xD227 +0xB89F 0xD228 +0xB8A0 0xD229 +0xB8A1 0xB96B +0xB8A2 0xB96D +0xB8A3 0xB974 +0xB8A4 0xB975 +0xB8A5 0xB978 +0xB8A6 0xB97C +0xB8A7 0xB984 +0xB8A8 0xB985 +0xB8A9 0xB987 +0xB8AA 0xB989 +0xB8AB 0xB98A +0xB8AC 0xB98D +0xB8AD 0xB98E +0xB8AE 0xB9AC +0xB8AF 0xB9AD +0xB8B0 0xB9B0 +0xB8B1 0xB9B4 +0xB8B2 0xB9BC +0xB8B3 0xB9BD +0xB8B4 0xB9BF +0xB8B5 0xB9C1 +0xB8B6 0xB9C8 +0xB8B7 0xB9C9 +0xB8B8 0xB9CC +0xB8B9 0xB9CE +0xB8BA 0xB9CF +0xB8BB 0xB9D0 +0xB8BC 0xB9D1 +0xB8BD 0xB9D2 +0xB8BE 0xB9D8 +0xB8BF 0xB9D9 +0xB8C0 0xB9DB +0xB8C1 0xB9DD +0xB8C2 0xB9DE +0xB8C3 0xB9E1 +0xB8C4 0xB9E3 +0xB8C5 0xB9E4 +0xB8C6 0xB9E5 +0xB8C7 0xB9E8 +0xB8C8 0xB9EC +0xB8C9 0xB9F4 +0xB8CA 0xB9F5 +0xB8CB 0xB9F7 +0xB8CC 0xB9F8 +0xB8CD 0xB9F9 +0xB8CE 0xB9FA +0xB8CF 0xBA00 +0xB8D0 0xBA01 +0xB8D1 0xBA08 +0xB8D2 0xBA15 +0xB8D3 0xBA38 +0xB8D4 0xBA39 +0xB8D5 0xBA3C +0xB8D6 0xBA40 +0xB8D7 0xBA42 +0xB8D8 0xBA48 +0xB8D9 0xBA49 +0xB8DA 0xBA4B +0xB8DB 0xBA4D +0xB8DC 0xBA4E +0xB8DD 0xBA53 +0xB8DE 0xBA54 +0xB8DF 0xBA55 +0xB8E0 0xBA58 +0xB8E1 0xBA5C +0xB8E2 0xBA64 +0xB8E3 0xBA65 +0xB8E4 0xBA67 +0xB8E5 0xBA68 +0xB8E6 0xBA69 +0xB8E7 0xBA70 +0xB8E8 0xBA71 +0xB8E9 0xBA74 +0xB8EA 0xBA78 +0xB8EB 0xBA83 +0xB8EC 0xBA84 +0xB8ED 0xBA85 +0xB8EE 0xBA87 +0xB8EF 0xBA8C +0xB8F0 0xBAA8 +0xB8F1 0xBAA9 +0xB8F2 0xBAAB +0xB8F3 0xBAAC +0xB8F4 0xBAB0 +0xB8F5 0xBAB2 +0xB8F6 0xBAB8 +0xB8F7 0xBAB9 +0xB8F8 0xBABB +0xB8F9 0xBABD +0xB8FA 0xBAC4 +0xB8FB 0xBAC8 +0xB8FC 0xBAD8 +0xB8FD 0xBAD9 +0xB8FE 0xBAFC +0xB941 0xD22A +0xB942 0xD22B +0xB943 0xD22E +0xB944 0xD22F +0xB945 0xD231 +0xB946 0xD232 +0xB947 0xD233 +0xB948 0xD235 +0xB949 0xD236 +0xB94A 0xD237 +0xB94B 0xD238 +0xB94C 0xD239 +0xB94D 0xD23A +0xB94E 0xD23B +0xB94F 0xD23E +0xB950 0xD240 +0xB951 0xD242 +0xB952 0xD243 +0xB953 0xD244 +0xB954 0xD245 +0xB955 0xD246 +0xB956 0xD247 +0xB957 0xD249 +0xB958 0xD24A +0xB959 0xD24B +0xB95A 0xD24C +0xB961 0xD24D +0xB962 0xD24E +0xB963 0xD24F +0xB964 0xD250 +0xB965 0xD251 +0xB966 0xD252 +0xB967 0xD253 +0xB968 0xD254 +0xB969 0xD255 +0xB96A 0xD256 +0xB96B 0xD257 +0xB96C 0xD258 +0xB96D 0xD259 +0xB96E 0xD25A +0xB96F 0xD25B +0xB970 0xD25D +0xB971 0xD25E +0xB972 0xD25F +0xB973 0xD260 +0xB974 0xD261 +0xB975 0xD262 +0xB976 0xD263 +0xB977 0xD265 +0xB978 0xD266 +0xB979 0xD267 +0xB97A 0xD268 +0xB981 0xD269 +0xB982 0xD26A +0xB983 0xD26B +0xB984 0xD26C +0xB985 0xD26D +0xB986 0xD26E +0xB987 0xD26F +0xB988 0xD270 +0xB989 0xD271 +0xB98A 0xD272 +0xB98B 0xD273 +0xB98C 0xD274 +0xB98D 0xD275 +0xB98E 0xD276 +0xB98F 0xD277 +0xB990 0xD278 +0xB991 0xD279 +0xB992 0xD27A +0xB993 0xD27B +0xB994 0xD27C +0xB995 0xD27D +0xB996 0xD27E +0xB997 0xD27F +0xB998 0xD282 +0xB999 0xD283 +0xB99A 0xD285 +0xB99B 0xD286 +0xB99C 0xD287 +0xB99D 0xD289 +0xB99E 0xD28A +0xB99F 0xD28B +0xB9A0 0xD28C +0xB9A1 0xBB00 +0xB9A2 0xBB04 +0xB9A3 0xBB0D +0xB9A4 0xBB0F +0xB9A5 0xBB11 +0xB9A6 0xBB18 +0xB9A7 0xBB1C +0xB9A8 0xBB20 +0xB9A9 0xBB29 +0xB9AA 0xBB2B +0xB9AB 0xBB34 +0xB9AC 0xBB35 +0xB9AD 0xBB36 +0xB9AE 0xBB38 +0xB9AF 0xBB3B +0xB9B0 0xBB3C +0xB9B1 0xBB3D +0xB9B2 0xBB3E +0xB9B3 0xBB44 +0xB9B4 0xBB45 +0xB9B5 0xBB47 +0xB9B6 0xBB49 +0xB9B7 0xBB4D +0xB9B8 0xBB4F +0xB9B9 0xBB50 +0xB9BA 0xBB54 +0xB9BB 0xBB58 +0xB9BC 0xBB61 +0xB9BD 0xBB63 +0xB9BE 0xBB6C +0xB9BF 0xBB88 +0xB9C0 0xBB8C +0xB9C1 0xBB90 +0xB9C2 0xBBA4 +0xB9C3 0xBBA8 +0xB9C4 0xBBAC +0xB9C5 0xBBB4 +0xB9C6 0xBBB7 +0xB9C7 0xBBC0 +0xB9C8 0xBBC4 +0xB9C9 0xBBC8 +0xB9CA 0xBBD0 +0xB9CB 0xBBD3 +0xB9CC 0xBBF8 +0xB9CD 0xBBF9 +0xB9CE 0xBBFC +0xB9CF 0xBBFF +0xB9D0 0xBC00 +0xB9D1 0xBC02 +0xB9D2 0xBC08 +0xB9D3 0xBC09 +0xB9D4 0xBC0B +0xB9D5 0xBC0C +0xB9D6 0xBC0D +0xB9D7 0xBC0F +0xB9D8 0xBC11 +0xB9D9 0xBC14 +0xB9DA 0xBC15 +0xB9DB 0xBC16 +0xB9DC 0xBC17 +0xB9DD 0xBC18 +0xB9DE 0xBC1B +0xB9DF 0xBC1C +0xB9E0 0xBC1D +0xB9E1 0xBC1E +0xB9E2 0xBC1F +0xB9E3 0xBC24 +0xB9E4 0xBC25 +0xB9E5 0xBC27 +0xB9E6 0xBC29 +0xB9E7 0xBC2D +0xB9E8 0xBC30 +0xB9E9 0xBC31 +0xB9EA 0xBC34 +0xB9EB 0xBC38 +0xB9EC 0xBC40 +0xB9ED 0xBC41 +0xB9EE 0xBC43 +0xB9EF 0xBC44 +0xB9F0 0xBC45 +0xB9F1 0xBC49 +0xB9F2 0xBC4C +0xB9F3 0xBC4D +0xB9F4 0xBC50 +0xB9F5 0xBC5D +0xB9F6 0xBC84 +0xB9F7 0xBC85 +0xB9F8 0xBC88 +0xB9F9 0xBC8B +0xB9FA 0xBC8C +0xB9FB 0xBC8E +0xB9FC 0xBC94 +0xB9FD 0xBC95 +0xB9FE 0xBC97 +0xBA41 0xD28D +0xBA42 0xD28E +0xBA43 0xD28F +0xBA44 0xD292 +0xBA45 0xD293 +0xBA46 0xD294 +0xBA47 0xD296 +0xBA48 0xD297 +0xBA49 0xD298 +0xBA4A 0xD299 +0xBA4B 0xD29A +0xBA4C 0xD29B +0xBA4D 0xD29D +0xBA4E 0xD29E +0xBA4F 0xD29F +0xBA50 0xD2A1 +0xBA51 0xD2A2 +0xBA52 0xD2A3 +0xBA53 0xD2A5 +0xBA54 0xD2A6 +0xBA55 0xD2A7 +0xBA56 0xD2A8 +0xBA57 0xD2A9 +0xBA58 0xD2AA +0xBA59 0xD2AB +0xBA5A 0xD2AD +0xBA61 0xD2AE +0xBA62 0xD2AF +0xBA63 0xD2B0 +0xBA64 0xD2B2 +0xBA65 0xD2B3 +0xBA66 0xD2B4 +0xBA67 0xD2B5 +0xBA68 0xD2B6 +0xBA69 0xD2B7 +0xBA6A 0xD2BA +0xBA6B 0xD2BB +0xBA6C 0xD2BD +0xBA6D 0xD2BE +0xBA6E 0xD2C1 +0xBA6F 0xD2C3 +0xBA70 0xD2C4 +0xBA71 0xD2C5 +0xBA72 0xD2C6 +0xBA73 0xD2C7 +0xBA74 0xD2CA +0xBA75 0xD2CC +0xBA76 0xD2CD +0xBA77 0xD2CE +0xBA78 0xD2CF +0xBA79 0xD2D0 +0xBA7A 0xD2D1 +0xBA81 0xD2D2 +0xBA82 0xD2D3 +0xBA83 0xD2D5 +0xBA84 0xD2D6 +0xBA85 0xD2D7 +0xBA86 0xD2D9 +0xBA87 0xD2DA +0xBA88 0xD2DB +0xBA89 0xD2DD +0xBA8A 0xD2DE +0xBA8B 0xD2DF +0xBA8C 0xD2E0 +0xBA8D 0xD2E1 +0xBA8E 0xD2E2 +0xBA8F 0xD2E3 +0xBA90 0xD2E6 +0xBA91 0xD2E7 +0xBA92 0xD2E8 +0xBA93 0xD2E9 +0xBA94 0xD2EA +0xBA95 0xD2EB +0xBA96 0xD2EC +0xBA97 0xD2ED +0xBA98 0xD2EE +0xBA99 0xD2EF +0xBA9A 0xD2F2 +0xBA9B 0xD2F3 +0xBA9C 0xD2F5 +0xBA9D 0xD2F6 +0xBA9E 0xD2F7 +0xBA9F 0xD2F9 +0xBAA0 0xD2FA +0xBAA1 0xBC99 +0xBAA2 0xBC9A +0xBAA3 0xBCA0 +0xBAA4 0xBCA1 +0xBAA5 0xBCA4 +0xBAA6 0xBCA7 +0xBAA7 0xBCA8 +0xBAA8 0xBCB0 +0xBAA9 0xBCB1 +0xBAAA 0xBCB3 +0xBAAB 0xBCB4 +0xBAAC 0xBCB5 +0xBAAD 0xBCBC +0xBAAE 0xBCBD +0xBAAF 0xBCC0 +0xBAB0 0xBCC4 +0xBAB1 0xBCCD +0xBAB2 0xBCCF +0xBAB3 0xBCD0 +0xBAB4 0xBCD1 +0xBAB5 0xBCD5 +0xBAB6 0xBCD8 +0xBAB7 0xBCDC +0xBAB8 0xBCF4 +0xBAB9 0xBCF5 +0xBABA 0xBCF6 +0xBABB 0xBCF8 +0xBABC 0xBCFC +0xBABD 0xBD04 +0xBABE 0xBD05 +0xBABF 0xBD07 +0xBAC0 0xBD09 +0xBAC1 0xBD10 +0xBAC2 0xBD14 +0xBAC3 0xBD24 +0xBAC4 0xBD2C +0xBAC5 0xBD40 +0xBAC6 0xBD48 +0xBAC7 0xBD49 +0xBAC8 0xBD4C +0xBAC9 0xBD50 +0xBACA 0xBD58 +0xBACB 0xBD59 +0xBACC 0xBD64 +0xBACD 0xBD68 +0xBACE 0xBD80 +0xBACF 0xBD81 +0xBAD0 0xBD84 +0xBAD1 0xBD87 +0xBAD2 0xBD88 +0xBAD3 0xBD89 +0xBAD4 0xBD8A +0xBAD5 0xBD90 +0xBAD6 0xBD91 +0xBAD7 0xBD93 +0xBAD8 0xBD95 +0xBAD9 0xBD99 +0xBADA 0xBD9A +0xBADB 0xBD9C +0xBADC 0xBDA4 +0xBADD 0xBDB0 +0xBADE 0xBDB8 +0xBADF 0xBDD4 +0xBAE0 0xBDD5 +0xBAE1 0xBDD8 +0xBAE2 0xBDDC +0xBAE3 0xBDE9 +0xBAE4 0xBDF0 +0xBAE5 0xBDF4 +0xBAE6 0xBDF8 +0xBAE7 0xBE00 +0xBAE8 0xBE03 +0xBAE9 0xBE05 +0xBAEA 0xBE0C +0xBAEB 0xBE0D +0xBAEC 0xBE10 +0xBAED 0xBE14 +0xBAEE 0xBE1C +0xBAEF 0xBE1D +0xBAF0 0xBE1F +0xBAF1 0xBE44 +0xBAF2 0xBE45 +0xBAF3 0xBE48 +0xBAF4 0xBE4C +0xBAF5 0xBE4E +0xBAF6 0xBE54 +0xBAF7 0xBE55 +0xBAF8 0xBE57 +0xBAF9 0xBE59 +0xBAFA 0xBE5A +0xBAFB 0xBE5B +0xBAFC 0xBE60 +0xBAFD 0xBE61 +0xBAFE 0xBE64 +0xBB41 0xD2FB +0xBB42 0xD2FC +0xBB43 0xD2FD +0xBB44 0xD2FE +0xBB45 0xD2FF +0xBB46 0xD302 +0xBB47 0xD304 +0xBB48 0xD306 +0xBB49 0xD307 +0xBB4A 0xD308 +0xBB4B 0xD309 +0xBB4C 0xD30A +0xBB4D 0xD30B +0xBB4E 0xD30F +0xBB4F 0xD311 +0xBB50 0xD312 +0xBB51 0xD313 +0xBB52 0xD315 +0xBB53 0xD317 +0xBB54 0xD318 +0xBB55 0xD319 +0xBB56 0xD31A +0xBB57 0xD31B +0xBB58 0xD31E +0xBB59 0xD322 +0xBB5A 0xD323 +0xBB61 0xD324 +0xBB62 0xD326 +0xBB63 0xD327 +0xBB64 0xD32A +0xBB65 0xD32B +0xBB66 0xD32D +0xBB67 0xD32E +0xBB68 0xD32F +0xBB69 0xD331 +0xBB6A 0xD332 +0xBB6B 0xD333 +0xBB6C 0xD334 +0xBB6D 0xD335 +0xBB6E 0xD336 +0xBB6F 0xD337 +0xBB70 0xD33A +0xBB71 0xD33E +0xBB72 0xD33F +0xBB73 0xD340 +0xBB74 0xD341 +0xBB75 0xD342 +0xBB76 0xD343 +0xBB77 0xD346 +0xBB78 0xD347 +0xBB79 0xD348 +0xBB7A 0xD349 +0xBB81 0xD34A +0xBB82 0xD34B +0xBB83 0xD34C +0xBB84 0xD34D +0xBB85 0xD34E +0xBB86 0xD34F +0xBB87 0xD350 +0xBB88 0xD351 +0xBB89 0xD352 +0xBB8A 0xD353 +0xBB8B 0xD354 +0xBB8C 0xD355 +0xBB8D 0xD356 +0xBB8E 0xD357 +0xBB8F 0xD358 +0xBB90 0xD359 +0xBB91 0xD35A +0xBB92 0xD35B +0xBB93 0xD35C +0xBB94 0xD35D +0xBB95 0xD35E +0xBB96 0xD35F +0xBB97 0xD360 +0xBB98 0xD361 +0xBB99 0xD362 +0xBB9A 0xD363 +0xBB9B 0xD364 +0xBB9C 0xD365 +0xBB9D 0xD366 +0xBB9E 0xD367 +0xBB9F 0xD368 +0xBBA0 0xD369 +0xBBA1 0xBE68 +0xBBA2 0xBE6A +0xBBA3 0xBE70 +0xBBA4 0xBE71 +0xBBA5 0xBE73 +0xBBA6 0xBE74 +0xBBA7 0xBE75 +0xBBA8 0xBE7B +0xBBA9 0xBE7C +0xBBAA 0xBE7D +0xBBAB 0xBE80 +0xBBAC 0xBE84 +0xBBAD 0xBE8C +0xBBAE 0xBE8D +0xBBAF 0xBE8F +0xBBB0 0xBE90 +0xBBB1 0xBE91 +0xBBB2 0xBE98 +0xBBB3 0xBE99 +0xBBB4 0xBEA8 +0xBBB5 0xBED0 +0xBBB6 0xBED1 +0xBBB7 0xBED4 +0xBBB8 0xBED7 +0xBBB9 0xBED8 +0xBBBA 0xBEE0 +0xBBBB 0xBEE3 +0xBBBC 0xBEE4 +0xBBBD 0xBEE5 +0xBBBE 0xBEEC +0xBBBF 0xBF01 +0xBBC0 0xBF08 +0xBBC1 0xBF09 +0xBBC2 0xBF18 +0xBBC3 0xBF19 +0xBBC4 0xBF1B +0xBBC5 0xBF1C +0xBBC6 0xBF1D +0xBBC7 0xBF40 +0xBBC8 0xBF41 +0xBBC9 0xBF44 +0xBBCA 0xBF48 +0xBBCB 0xBF50 +0xBBCC 0xBF51 +0xBBCD 0xBF55 +0xBBCE 0xBF94 +0xBBCF 0xBFB0 +0xBBD0 0xBFC5 +0xBBD1 0xBFCC +0xBBD2 0xBFCD +0xBBD3 0xBFD0 +0xBBD4 0xBFD4 +0xBBD5 0xBFDC +0xBBD6 0xBFDF +0xBBD7 0xBFE1 +0xBBD8 0xC03C +0xBBD9 0xC051 +0xBBDA 0xC058 +0xBBDB 0xC05C +0xBBDC 0xC060 +0xBBDD 0xC068 +0xBBDE 0xC069 +0xBBDF 0xC090 +0xBBE0 0xC091 +0xBBE1 0xC094 +0xBBE2 0xC098 +0xBBE3 0xC0A0 +0xBBE4 0xC0A1 +0xBBE5 0xC0A3 +0xBBE6 0xC0A5 +0xBBE7 0xC0AC +0xBBE8 0xC0AD +0xBBE9 0xC0AF +0xBBEA 0xC0B0 +0xBBEB 0xC0B3 +0xBBEC 0xC0B4 +0xBBED 0xC0B5 +0xBBEE 0xC0B6 +0xBBEF 0xC0BC +0xBBF0 0xC0BD +0xBBF1 0xC0BF +0xBBF2 0xC0C0 +0xBBF3 0xC0C1 +0xBBF4 0xC0C5 +0xBBF5 0xC0C8 +0xBBF6 0xC0C9 +0xBBF7 0xC0CC +0xBBF8 0xC0D0 +0xBBF9 0xC0D8 +0xBBFA 0xC0D9 +0xBBFB 0xC0DB +0xBBFC 0xC0DC +0xBBFD 0xC0DD +0xBBFE 0xC0E4 +0xBC41 0xD36A +0xBC42 0xD36B +0xBC43 0xD36C +0xBC44 0xD36D +0xBC45 0xD36E +0xBC46 0xD36F +0xBC47 0xD370 +0xBC48 0xD371 +0xBC49 0xD372 +0xBC4A 0xD373 +0xBC4B 0xD374 +0xBC4C 0xD375 +0xBC4D 0xD376 +0xBC4E 0xD377 +0xBC4F 0xD378 +0xBC50 0xD379 +0xBC51 0xD37A +0xBC52 0xD37B +0xBC53 0xD37E +0xBC54 0xD37F +0xBC55 0xD381 +0xBC56 0xD382 +0xBC57 0xD383 +0xBC58 0xD385 +0xBC59 0xD386 +0xBC5A 0xD387 +0xBC61 0xD388 +0xBC62 0xD389 +0xBC63 0xD38A +0xBC64 0xD38B +0xBC65 0xD38E +0xBC66 0xD392 +0xBC67 0xD393 +0xBC68 0xD394 +0xBC69 0xD395 +0xBC6A 0xD396 +0xBC6B 0xD397 +0xBC6C 0xD39A +0xBC6D 0xD39B +0xBC6E 0xD39D +0xBC6F 0xD39E +0xBC70 0xD39F +0xBC71 0xD3A1 +0xBC72 0xD3A2 +0xBC73 0xD3A3 +0xBC74 0xD3A4 +0xBC75 0xD3A5 +0xBC76 0xD3A6 +0xBC77 0xD3A7 +0xBC78 0xD3AA +0xBC79 0xD3AC +0xBC7A 0xD3AE +0xBC81 0xD3AF +0xBC82 0xD3B0 +0xBC83 0xD3B1 +0xBC84 0xD3B2 +0xBC85 0xD3B3 +0xBC86 0xD3B5 +0xBC87 0xD3B6 +0xBC88 0xD3B7 +0xBC89 0xD3B9 +0xBC8A 0xD3BA +0xBC8B 0xD3BB +0xBC8C 0xD3BD +0xBC8D 0xD3BE +0xBC8E 0xD3BF +0xBC8F 0xD3C0 +0xBC90 0xD3C1 +0xBC91 0xD3C2 +0xBC92 0xD3C3 +0xBC93 0xD3C6 +0xBC94 0xD3C7 +0xBC95 0xD3CA +0xBC96 0xD3CB +0xBC97 0xD3CC +0xBC98 0xD3CD +0xBC99 0xD3CE +0xBC9A 0xD3CF +0xBC9B 0xD3D1 +0xBC9C 0xD3D2 +0xBC9D 0xD3D3 +0xBC9E 0xD3D4 +0xBC9F 0xD3D5 +0xBCA0 0xD3D6 +0xBCA1 0xC0E5 +0xBCA2 0xC0E8 +0xBCA3 0xC0EC +0xBCA4 0xC0F4 +0xBCA5 0xC0F5 +0xBCA6 0xC0F7 +0xBCA7 0xC0F9 +0xBCA8 0xC100 +0xBCA9 0xC104 +0xBCAA 0xC108 +0xBCAB 0xC110 +0xBCAC 0xC115 +0xBCAD 0xC11C +0xBCAE 0xC11D +0xBCAF 0xC11E +0xBCB0 0xC11F +0xBCB1 0xC120 +0xBCB2 0xC123 +0xBCB3 0xC124 +0xBCB4 0xC126 +0xBCB5 0xC127 +0xBCB6 0xC12C +0xBCB7 0xC12D +0xBCB8 0xC12F +0xBCB9 0xC130 +0xBCBA 0xC131 +0xBCBB 0xC136 +0xBCBC 0xC138 +0xBCBD 0xC139 +0xBCBE 0xC13C +0xBCBF 0xC140 +0xBCC0 0xC148 +0xBCC1 0xC149 +0xBCC2 0xC14B +0xBCC3 0xC14C +0xBCC4 0xC14D +0xBCC5 0xC154 +0xBCC6 0xC155 +0xBCC7 0xC158 +0xBCC8 0xC15C +0xBCC9 0xC164 +0xBCCA 0xC165 +0xBCCB 0xC167 +0xBCCC 0xC168 +0xBCCD 0xC169 +0xBCCE 0xC170 +0xBCCF 0xC174 +0xBCD0 0xC178 +0xBCD1 0xC185 +0xBCD2 0xC18C +0xBCD3 0xC18D +0xBCD4 0xC18E +0xBCD5 0xC190 +0xBCD6 0xC194 +0xBCD7 0xC196 +0xBCD8 0xC19C +0xBCD9 0xC19D +0xBCDA 0xC19F +0xBCDB 0xC1A1 +0xBCDC 0xC1A5 +0xBCDD 0xC1A8 +0xBCDE 0xC1A9 +0xBCDF 0xC1AC +0xBCE0 0xC1B0 +0xBCE1 0xC1BD +0xBCE2 0xC1C4 +0xBCE3 0xC1C8 +0xBCE4 0xC1CC +0xBCE5 0xC1D4 +0xBCE6 0xC1D7 +0xBCE7 0xC1D8 +0xBCE8 0xC1E0 +0xBCE9 0xC1E4 +0xBCEA 0xC1E8 +0xBCEB 0xC1F0 +0xBCEC 0xC1F1 +0xBCED 0xC1F3 +0xBCEE 0xC1FC +0xBCEF 0xC1FD +0xBCF0 0xC200 +0xBCF1 0xC204 +0xBCF2 0xC20C +0xBCF3 0xC20D +0xBCF4 0xC20F +0xBCF5 0xC211 +0xBCF6 0xC218 +0xBCF7 0xC219 +0xBCF8 0xC21C +0xBCF9 0xC21F +0xBCFA 0xC220 +0xBCFB 0xC228 +0xBCFC 0xC229 +0xBCFD 0xC22B +0xBCFE 0xC22D +0xBD41 0xD3D7 +0xBD42 0xD3D9 +0xBD43 0xD3DA +0xBD44 0xD3DB +0xBD45 0xD3DC +0xBD46 0xD3DD +0xBD47 0xD3DE +0xBD48 0xD3DF +0xBD49 0xD3E0 +0xBD4A 0xD3E2 +0xBD4B 0xD3E4 +0xBD4C 0xD3E5 +0xBD4D 0xD3E6 +0xBD4E 0xD3E7 +0xBD4F 0xD3E8 +0xBD50 0xD3E9 +0xBD51 0xD3EA +0xBD52 0xD3EB +0xBD53 0xD3EE +0xBD54 0xD3EF +0xBD55 0xD3F1 +0xBD56 0xD3F2 +0xBD57 0xD3F3 +0xBD58 0xD3F5 +0xBD59 0xD3F6 +0xBD5A 0xD3F7 +0xBD61 0xD3F8 +0xBD62 0xD3F9 +0xBD63 0xD3FA +0xBD64 0xD3FB +0xBD65 0xD3FE +0xBD66 0xD400 +0xBD67 0xD402 +0xBD68 0xD403 +0xBD69 0xD404 +0xBD6A 0xD405 +0xBD6B 0xD406 +0xBD6C 0xD407 +0xBD6D 0xD409 +0xBD6E 0xD40A +0xBD6F 0xD40B +0xBD70 0xD40C +0xBD71 0xD40D +0xBD72 0xD40E +0xBD73 0xD40F +0xBD74 0xD410 +0xBD75 0xD411 +0xBD76 0xD412 +0xBD77 0xD413 +0xBD78 0xD414 +0xBD79 0xD415 +0xBD7A 0xD416 +0xBD81 0xD417 +0xBD82 0xD418 +0xBD83 0xD419 +0xBD84 0xD41A +0xBD85 0xD41B +0xBD86 0xD41C +0xBD87 0xD41E +0xBD88 0xD41F +0xBD89 0xD420 +0xBD8A 0xD421 +0xBD8B 0xD422 +0xBD8C 0xD423 +0xBD8D 0xD424 +0xBD8E 0xD425 +0xBD8F 0xD426 +0xBD90 0xD427 +0xBD91 0xD428 +0xBD92 0xD429 +0xBD93 0xD42A +0xBD94 0xD42B +0xBD95 0xD42C +0xBD96 0xD42D +0xBD97 0xD42E +0xBD98 0xD42F +0xBD99 0xD430 +0xBD9A 0xD431 +0xBD9B 0xD432 +0xBD9C 0xD433 +0xBD9D 0xD434 +0xBD9E 0xD435 +0xBD9F 0xD436 +0xBDA0 0xD437 +0xBDA1 0xC22F +0xBDA2 0xC231 +0xBDA3 0xC232 +0xBDA4 0xC234 +0xBDA5 0xC248 +0xBDA6 0xC250 +0xBDA7 0xC251 +0xBDA8 0xC254 +0xBDA9 0xC258 +0xBDAA 0xC260 +0xBDAB 0xC265 +0xBDAC 0xC26C +0xBDAD 0xC26D +0xBDAE 0xC270 +0xBDAF 0xC274 +0xBDB0 0xC27C +0xBDB1 0xC27D +0xBDB2 0xC27F +0xBDB3 0xC281 +0xBDB4 0xC288 +0xBDB5 0xC289 +0xBDB6 0xC290 +0xBDB7 0xC298 +0xBDB8 0xC29B +0xBDB9 0xC29D +0xBDBA 0xC2A4 +0xBDBB 0xC2A5 +0xBDBC 0xC2A8 +0xBDBD 0xC2AC +0xBDBE 0xC2AD +0xBDBF 0xC2B4 +0xBDC0 0xC2B5 +0xBDC1 0xC2B7 +0xBDC2 0xC2B9 +0xBDC3 0xC2DC +0xBDC4 0xC2DD +0xBDC5 0xC2E0 +0xBDC6 0xC2E3 +0xBDC7 0xC2E4 +0xBDC8 0xC2EB +0xBDC9 0xC2EC +0xBDCA 0xC2ED +0xBDCB 0xC2EF +0xBDCC 0xC2F1 +0xBDCD 0xC2F6 +0xBDCE 0xC2F8 +0xBDCF 0xC2F9 +0xBDD0 0xC2FB +0xBDD1 0xC2FC +0xBDD2 0xC300 +0xBDD3 0xC308 +0xBDD4 0xC309 +0xBDD5 0xC30C +0xBDD6 0xC30D +0xBDD7 0xC313 +0xBDD8 0xC314 +0xBDD9 0xC315 +0xBDDA 0xC318 +0xBDDB 0xC31C +0xBDDC 0xC324 +0xBDDD 0xC325 +0xBDDE 0xC328 +0xBDDF 0xC329 +0xBDE0 0xC345 +0xBDE1 0xC368 +0xBDE2 0xC369 +0xBDE3 0xC36C +0xBDE4 0xC370 +0xBDE5 0xC372 +0xBDE6 0xC378 +0xBDE7 0xC379 +0xBDE8 0xC37C +0xBDE9 0xC37D +0xBDEA 0xC384 +0xBDEB 0xC388 +0xBDEC 0xC38C +0xBDED 0xC3C0 +0xBDEE 0xC3D8 +0xBDEF 0xC3D9 +0xBDF0 0xC3DC +0xBDF1 0xC3DF +0xBDF2 0xC3E0 +0xBDF3 0xC3E2 +0xBDF4 0xC3E8 +0xBDF5 0xC3E9 +0xBDF6 0xC3ED +0xBDF7 0xC3F4 +0xBDF8 0xC3F5 +0xBDF9 0xC3F8 +0xBDFA 0xC408 +0xBDFB 0xC410 +0xBDFC 0xC424 +0xBDFD 0xC42C +0xBDFE 0xC430 +0xBE41 0xD438 +0xBE42 0xD439 +0xBE43 0xD43A +0xBE44 0xD43B +0xBE45 0xD43C +0xBE46 0xD43D +0xBE47 0xD43E +0xBE48 0xD43F +0xBE49 0xD441 +0xBE4A 0xD442 +0xBE4B 0xD443 +0xBE4C 0xD445 +0xBE4D 0xD446 +0xBE4E 0xD447 +0xBE4F 0xD448 +0xBE50 0xD449 +0xBE51 0xD44A +0xBE52 0xD44B +0xBE53 0xD44C +0xBE54 0xD44D +0xBE55 0xD44E +0xBE56 0xD44F +0xBE57 0xD450 +0xBE58 0xD451 +0xBE59 0xD452 +0xBE5A 0xD453 +0xBE61 0xD454 +0xBE62 0xD455 +0xBE63 0xD456 +0xBE64 0xD457 +0xBE65 0xD458 +0xBE66 0xD459 +0xBE67 0xD45A +0xBE68 0xD45B +0xBE69 0xD45D +0xBE6A 0xD45E +0xBE6B 0xD45F +0xBE6C 0xD461 +0xBE6D 0xD462 +0xBE6E 0xD463 +0xBE6F 0xD465 +0xBE70 0xD466 +0xBE71 0xD467 +0xBE72 0xD468 +0xBE73 0xD469 +0xBE74 0xD46A +0xBE75 0xD46B +0xBE76 0xD46C +0xBE77 0xD46E +0xBE78 0xD470 +0xBE79 0xD471 +0xBE7A 0xD472 +0xBE81 0xD473 +0xBE82 0xD474 +0xBE83 0xD475 +0xBE84 0xD476 +0xBE85 0xD477 +0xBE86 0xD47A +0xBE87 0xD47B +0xBE88 0xD47D +0xBE89 0xD47E +0xBE8A 0xD481 +0xBE8B 0xD483 +0xBE8C 0xD484 +0xBE8D 0xD485 +0xBE8E 0xD486 +0xBE8F 0xD487 +0xBE90 0xD48A +0xBE91 0xD48C +0xBE92 0xD48E +0xBE93 0xD48F +0xBE94 0xD490 +0xBE95 0xD491 +0xBE96 0xD492 +0xBE97 0xD493 +0xBE98 0xD495 +0xBE99 0xD496 +0xBE9A 0xD497 +0xBE9B 0xD498 +0xBE9C 0xD499 +0xBE9D 0xD49A +0xBE9E 0xD49B +0xBE9F 0xD49C +0xBEA0 0xD49D +0xBEA1 0xC434 +0xBEA2 0xC43C +0xBEA3 0xC43D +0xBEA4 0xC448 +0xBEA5 0xC464 +0xBEA6 0xC465 +0xBEA7 0xC468 +0xBEA8 0xC46C +0xBEA9 0xC474 +0xBEAA 0xC475 +0xBEAB 0xC479 +0xBEAC 0xC480 +0xBEAD 0xC494 +0xBEAE 0xC49C +0xBEAF 0xC4B8 +0xBEB0 0xC4BC +0xBEB1 0xC4E9 +0xBEB2 0xC4F0 +0xBEB3 0xC4F1 +0xBEB4 0xC4F4 +0xBEB5 0xC4F8 +0xBEB6 0xC4FA +0xBEB7 0xC4FF +0xBEB8 0xC500 +0xBEB9 0xC501 +0xBEBA 0xC50C +0xBEBB 0xC510 +0xBEBC 0xC514 +0xBEBD 0xC51C +0xBEBE 0xC528 +0xBEBF 0xC529 +0xBEC0 0xC52C +0xBEC1 0xC530 +0xBEC2 0xC538 +0xBEC3 0xC539 +0xBEC4 0xC53B +0xBEC5 0xC53D +0xBEC6 0xC544 +0xBEC7 0xC545 +0xBEC8 0xC548 +0xBEC9 0xC549 +0xBECA 0xC54A +0xBECB 0xC54C +0xBECC 0xC54D +0xBECD 0xC54E +0xBECE 0xC553 +0xBECF 0xC554 +0xBED0 0xC555 +0xBED1 0xC557 +0xBED2 0xC558 +0xBED3 0xC559 +0xBED4 0xC55D +0xBED5 0xC55E +0xBED6 0xC560 +0xBED7 0xC561 +0xBED8 0xC564 +0xBED9 0xC568 +0xBEDA 0xC570 +0xBEDB 0xC571 +0xBEDC 0xC573 +0xBEDD 0xC574 +0xBEDE 0xC575 +0xBEDF 0xC57C +0xBEE0 0xC57D +0xBEE1 0xC580 +0xBEE2 0xC584 +0xBEE3 0xC587 +0xBEE4 0xC58C +0xBEE5 0xC58D +0xBEE6 0xC58F +0xBEE7 0xC591 +0xBEE8 0xC595 +0xBEE9 0xC597 +0xBEEA 0xC598 +0xBEEB 0xC59C +0xBEEC 0xC5A0 +0xBEED 0xC5A9 +0xBEEE 0xC5B4 +0xBEEF 0xC5B5 +0xBEF0 0xC5B8 +0xBEF1 0xC5B9 +0xBEF2 0xC5BB +0xBEF3 0xC5BC +0xBEF4 0xC5BD +0xBEF5 0xC5BE +0xBEF6 0xC5C4 +0xBEF7 0xC5C5 +0xBEF8 0xC5C6 +0xBEF9 0xC5C7 +0xBEFA 0xC5C8 +0xBEFB 0xC5C9 +0xBEFC 0xC5CA +0xBEFD 0xC5CC +0xBEFE 0xC5CE +0xBF41 0xD49E +0xBF42 0xD49F +0xBF43 0xD4A0 +0xBF44 0xD4A1 +0xBF45 0xD4A2 +0xBF46 0xD4A3 +0xBF47 0xD4A4 +0xBF48 0xD4A5 +0xBF49 0xD4A6 +0xBF4A 0xD4A7 +0xBF4B 0xD4A8 +0xBF4C 0xD4AA +0xBF4D 0xD4AB +0xBF4E 0xD4AC +0xBF4F 0xD4AD +0xBF50 0xD4AE +0xBF51 0xD4AF +0xBF52 0xD4B0 +0xBF53 0xD4B1 +0xBF54 0xD4B2 +0xBF55 0xD4B3 +0xBF56 0xD4B4 +0xBF57 0xD4B5 +0xBF58 0xD4B6 +0xBF59 0xD4B7 +0xBF5A 0xD4B8 +0xBF61 0xD4B9 +0xBF62 0xD4BA +0xBF63 0xD4BB +0xBF64 0xD4BC +0xBF65 0xD4BD +0xBF66 0xD4BE +0xBF67 0xD4BF +0xBF68 0xD4C0 +0xBF69 0xD4C1 +0xBF6A 0xD4C2 +0xBF6B 0xD4C3 +0xBF6C 0xD4C4 +0xBF6D 0xD4C5 +0xBF6E 0xD4C6 +0xBF6F 0xD4C7 +0xBF70 0xD4C8 +0xBF71 0xD4C9 +0xBF72 0xD4CA +0xBF73 0xD4CB +0xBF74 0xD4CD +0xBF75 0xD4CE +0xBF76 0xD4CF +0xBF77 0xD4D1 +0xBF78 0xD4D2 +0xBF79 0xD4D3 +0xBF7A 0xD4D5 +0xBF81 0xD4D6 +0xBF82 0xD4D7 +0xBF83 0xD4D8 +0xBF84 0xD4D9 +0xBF85 0xD4DA +0xBF86 0xD4DB +0xBF87 0xD4DD +0xBF88 0xD4DE +0xBF89 0xD4E0 +0xBF8A 0xD4E1 +0xBF8B 0xD4E2 +0xBF8C 0xD4E3 +0xBF8D 0xD4E4 +0xBF8E 0xD4E5 +0xBF8F 0xD4E6 +0xBF90 0xD4E7 +0xBF91 0xD4E9 +0xBF92 0xD4EA +0xBF93 0xD4EB +0xBF94 0xD4ED +0xBF95 0xD4EE +0xBF96 0xD4EF +0xBF97 0xD4F1 +0xBF98 0xD4F2 +0xBF99 0xD4F3 +0xBF9A 0xD4F4 +0xBF9B 0xD4F5 +0xBF9C 0xD4F6 +0xBF9D 0xD4F7 +0xBF9E 0xD4F9 +0xBF9F 0xD4FA +0xBFA0 0xD4FC +0xBFA1 0xC5D0 +0xBFA2 0xC5D1 +0xBFA3 0xC5D4 +0xBFA4 0xC5D8 +0xBFA5 0xC5E0 +0xBFA6 0xC5E1 +0xBFA7 0xC5E3 +0xBFA8 0xC5E5 +0xBFA9 0xC5EC +0xBFAA 0xC5ED +0xBFAB 0xC5EE +0xBFAC 0xC5F0 +0xBFAD 0xC5F4 +0xBFAE 0xC5F6 +0xBFAF 0xC5F7 +0xBFB0 0xC5FC +0xBFB1 0xC5FD +0xBFB2 0xC5FE +0xBFB3 0xC5FF +0xBFB4 0xC600 +0xBFB5 0xC601 +0xBFB6 0xC605 +0xBFB7 0xC606 +0xBFB8 0xC607 +0xBFB9 0xC608 +0xBFBA 0xC60C +0xBFBB 0xC610 +0xBFBC 0xC618 +0xBFBD 0xC619 +0xBFBE 0xC61B +0xBFBF 0xC61C +0xBFC0 0xC624 +0xBFC1 0xC625 +0xBFC2 0xC628 +0xBFC3 0xC62C +0xBFC4 0xC62D +0xBFC5 0xC62E +0xBFC6 0xC630 +0xBFC7 0xC633 +0xBFC8 0xC634 +0xBFC9 0xC635 +0xBFCA 0xC637 +0xBFCB 0xC639 +0xBFCC 0xC63B +0xBFCD 0xC640 +0xBFCE 0xC641 +0xBFCF 0xC644 +0xBFD0 0xC648 +0xBFD1 0xC650 +0xBFD2 0xC651 +0xBFD3 0xC653 +0xBFD4 0xC654 +0xBFD5 0xC655 +0xBFD6 0xC65C +0xBFD7 0xC65D +0xBFD8 0xC660 +0xBFD9 0xC66C +0xBFDA 0xC66F +0xBFDB 0xC671 +0xBFDC 0xC678 +0xBFDD 0xC679 +0xBFDE 0xC67C +0xBFDF 0xC680 +0xBFE0 0xC688 +0xBFE1 0xC689 +0xBFE2 0xC68B +0xBFE3 0xC68D +0xBFE4 0xC694 +0xBFE5 0xC695 +0xBFE6 0xC698 +0xBFE7 0xC69C +0xBFE8 0xC6A4 +0xBFE9 0xC6A5 +0xBFEA 0xC6A7 +0xBFEB 0xC6A9 +0xBFEC 0xC6B0 +0xBFED 0xC6B1 +0xBFEE 0xC6B4 +0xBFEF 0xC6B8 +0xBFF0 0xC6B9 +0xBFF1 0xC6BA +0xBFF2 0xC6C0 +0xBFF3 0xC6C1 +0xBFF4 0xC6C3 +0xBFF5 0xC6C5 +0xBFF6 0xC6CC +0xBFF7 0xC6CD +0xBFF8 0xC6D0 +0xBFF9 0xC6D4 +0xBFFA 0xC6DC +0xBFFB 0xC6DD +0xBFFC 0xC6E0 +0xBFFD 0xC6E1 +0xBFFE 0xC6E8 +0xC041 0xD4FE +0xC042 0xD4FF +0xC043 0xD500 +0xC044 0xD501 +0xC045 0xD502 +0xC046 0xD503 +0xC047 0xD505 +0xC048 0xD506 +0xC049 0xD507 +0xC04A 0xD509 +0xC04B 0xD50A +0xC04C 0xD50B +0xC04D 0xD50D +0xC04E 0xD50E +0xC04F 0xD50F +0xC050 0xD510 +0xC051 0xD511 +0xC052 0xD512 +0xC053 0xD513 +0xC054 0xD516 +0xC055 0xD518 +0xC056 0xD519 +0xC057 0xD51A +0xC058 0xD51B +0xC059 0xD51C +0xC05A 0xD51D +0xC061 0xD51E +0xC062 0xD51F +0xC063 0xD520 +0xC064 0xD521 +0xC065 0xD522 +0xC066 0xD523 +0xC067 0xD524 +0xC068 0xD525 +0xC069 0xD526 +0xC06A 0xD527 +0xC06B 0xD528 +0xC06C 0xD529 +0xC06D 0xD52A +0xC06E 0xD52B +0xC06F 0xD52C +0xC070 0xD52D +0xC071 0xD52E +0xC072 0xD52F +0xC073 0xD530 +0xC074 0xD531 +0xC075 0xD532 +0xC076 0xD533 +0xC077 0xD534 +0xC078 0xD535 +0xC079 0xD536 +0xC07A 0xD537 +0xC081 0xD538 +0xC082 0xD539 +0xC083 0xD53A +0xC084 0xD53B +0xC085 0xD53E +0xC086 0xD53F +0xC087 0xD541 +0xC088 0xD542 +0xC089 0xD543 +0xC08A 0xD545 +0xC08B 0xD546 +0xC08C 0xD547 +0xC08D 0xD548 +0xC08E 0xD549 +0xC08F 0xD54A +0xC090 0xD54B +0xC091 0xD54E +0xC092 0xD550 +0xC093 0xD552 +0xC094 0xD553 +0xC095 0xD554 +0xC096 0xD555 +0xC097 0xD556 +0xC098 0xD557 +0xC099 0xD55A +0xC09A 0xD55B +0xC09B 0xD55D +0xC09C 0xD55E +0xC09D 0xD55F +0xC09E 0xD561 +0xC09F 0xD562 +0xC0A0 0xD563 +0xC0A1 0xC6E9 +0xC0A2 0xC6EC +0xC0A3 0xC6F0 +0xC0A4 0xC6F8 +0xC0A5 0xC6F9 +0xC0A6 0xC6FD +0xC0A7 0xC704 +0xC0A8 0xC705 +0xC0A9 0xC708 +0xC0AA 0xC70C +0xC0AB 0xC714 +0xC0AC 0xC715 +0xC0AD 0xC717 +0xC0AE 0xC719 +0xC0AF 0xC720 +0xC0B0 0xC721 +0xC0B1 0xC724 +0xC0B2 0xC728 +0xC0B3 0xC730 +0xC0B4 0xC731 +0xC0B5 0xC733 +0xC0B6 0xC735 +0xC0B7 0xC737 +0xC0B8 0xC73C +0xC0B9 0xC73D +0xC0BA 0xC740 +0xC0BB 0xC744 +0xC0BC 0xC74A +0xC0BD 0xC74C +0xC0BE 0xC74D +0xC0BF 0xC74F +0xC0C0 0xC751 +0xC0C1 0xC752 +0xC0C2 0xC753 +0xC0C3 0xC754 +0xC0C4 0xC755 +0xC0C5 0xC756 +0xC0C6 0xC757 +0xC0C7 0xC758 +0xC0C8 0xC75C +0xC0C9 0xC760 +0xC0CA 0xC768 +0xC0CB 0xC76B +0xC0CC 0xC774 +0xC0CD 0xC775 +0xC0CE 0xC778 +0xC0CF 0xC77C +0xC0D0 0xC77D +0xC0D1 0xC77E +0xC0D2 0xC783 +0xC0D3 0xC784 +0xC0D4 0xC785 +0xC0D5 0xC787 +0xC0D6 0xC788 +0xC0D7 0xC789 +0xC0D8 0xC78A +0xC0D9 0xC78E +0xC0DA 0xC790 +0xC0DB 0xC791 +0xC0DC 0xC794 +0xC0DD 0xC796 +0xC0DE 0xC797 +0xC0DF 0xC798 +0xC0E0 0xC79A +0xC0E1 0xC7A0 +0xC0E2 0xC7A1 +0xC0E3 0xC7A3 +0xC0E4 0xC7A4 +0xC0E5 0xC7A5 +0xC0E6 0xC7A6 +0xC0E7 0xC7AC +0xC0E8 0xC7AD +0xC0E9 0xC7B0 +0xC0EA 0xC7B4 +0xC0EB 0xC7BC +0xC0EC 0xC7BD +0xC0ED 0xC7BF +0xC0EE 0xC7C0 +0xC0EF 0xC7C1 +0xC0F0 0xC7C8 +0xC0F1 0xC7C9 +0xC0F2 0xC7CC +0xC0F3 0xC7CE +0xC0F4 0xC7D0 +0xC0F5 0xC7D8 +0xC0F6 0xC7DD +0xC0F7 0xC7E4 +0xC0F8 0xC7E8 +0xC0F9 0xC7EC +0xC0FA 0xC800 +0xC0FB 0xC801 +0xC0FC 0xC804 +0xC0FD 0xC808 +0xC0FE 0xC80A +0xC141 0xD564 +0xC142 0xD566 +0xC143 0xD567 +0xC144 0xD56A +0xC145 0xD56C +0xC146 0xD56E +0xC147 0xD56F +0xC148 0xD570 +0xC149 0xD571 +0xC14A 0xD572 +0xC14B 0xD573 +0xC14C 0xD576 +0xC14D 0xD577 +0xC14E 0xD579 +0xC14F 0xD57A +0xC150 0xD57B +0xC151 0xD57D +0xC152 0xD57E +0xC153 0xD57F +0xC154 0xD580 +0xC155 0xD581 +0xC156 0xD582 +0xC157 0xD583 +0xC158 0xD586 +0xC159 0xD58A +0xC15A 0xD58B +0xC161 0xD58C +0xC162 0xD58D +0xC163 0xD58E +0xC164 0xD58F +0xC165 0xD591 +0xC166 0xD592 +0xC167 0xD593 +0xC168 0xD594 +0xC169 0xD595 +0xC16A 0xD596 +0xC16B 0xD597 +0xC16C 0xD598 +0xC16D 0xD599 +0xC16E 0xD59A +0xC16F 0xD59B +0xC170 0xD59C +0xC171 0xD59D +0xC172 0xD59E +0xC173 0xD59F +0xC174 0xD5A0 +0xC175 0xD5A1 +0xC176 0xD5A2 +0xC177 0xD5A3 +0xC178 0xD5A4 +0xC179 0xD5A6 +0xC17A 0xD5A7 +0xC181 0xD5A8 +0xC182 0xD5A9 +0xC183 0xD5AA +0xC184 0xD5AB +0xC185 0xD5AC +0xC186 0xD5AD +0xC187 0xD5AE +0xC188 0xD5AF +0xC189 0xD5B0 +0xC18A 0xD5B1 +0xC18B 0xD5B2 +0xC18C 0xD5B3 +0xC18D 0xD5B4 +0xC18E 0xD5B5 +0xC18F 0xD5B6 +0xC190 0xD5B7 +0xC191 0xD5B8 +0xC192 0xD5B9 +0xC193 0xD5BA +0xC194 0xD5BB +0xC195 0xD5BC +0xC196 0xD5BD +0xC197 0xD5BE +0xC198 0xD5BF +0xC199 0xD5C0 +0xC19A 0xD5C1 +0xC19B 0xD5C2 +0xC19C 0xD5C3 +0xC19D 0xD5C4 +0xC19E 0xD5C5 +0xC19F 0xD5C6 +0xC1A0 0xD5C7 +0xC1A1 0xC810 +0xC1A2 0xC811 +0xC1A3 0xC813 +0xC1A4 0xC815 +0xC1A5 0xC816 +0xC1A6 0xC81C +0xC1A7 0xC81D +0xC1A8 0xC820 +0xC1A9 0xC824 +0xC1AA 0xC82C +0xC1AB 0xC82D +0xC1AC 0xC82F +0xC1AD 0xC831 +0xC1AE 0xC838 +0xC1AF 0xC83C +0xC1B0 0xC840 +0xC1B1 0xC848 +0xC1B2 0xC849 +0xC1B3 0xC84C +0xC1B4 0xC84D +0xC1B5 0xC854 +0xC1B6 0xC870 +0xC1B7 0xC871 +0xC1B8 0xC874 +0xC1B9 0xC878 +0xC1BA 0xC87A +0xC1BB 0xC880 +0xC1BC 0xC881 +0xC1BD 0xC883 +0xC1BE 0xC885 +0xC1BF 0xC886 +0xC1C0 0xC887 +0xC1C1 0xC88B +0xC1C2 0xC88C +0xC1C3 0xC88D +0xC1C4 0xC894 +0xC1C5 0xC89D +0xC1C6 0xC89F +0xC1C7 0xC8A1 +0xC1C8 0xC8A8 +0xC1C9 0xC8BC +0xC1CA 0xC8BD +0xC1CB 0xC8C4 +0xC1CC 0xC8C8 +0xC1CD 0xC8CC +0xC1CE 0xC8D4 +0xC1CF 0xC8D5 +0xC1D0 0xC8D7 +0xC1D1 0xC8D9 +0xC1D2 0xC8E0 +0xC1D3 0xC8E1 +0xC1D4 0xC8E4 +0xC1D5 0xC8F5 +0xC1D6 0xC8FC +0xC1D7 0xC8FD +0xC1D8 0xC900 +0xC1D9 0xC904 +0xC1DA 0xC905 +0xC1DB 0xC906 +0xC1DC 0xC90C +0xC1DD 0xC90D +0xC1DE 0xC90F +0xC1DF 0xC911 +0xC1E0 0xC918 +0xC1E1 0xC92C +0xC1E2 0xC934 +0xC1E3 0xC950 +0xC1E4 0xC951 +0xC1E5 0xC954 +0xC1E6 0xC958 +0xC1E7 0xC960 +0xC1E8 0xC961 +0xC1E9 0xC963 +0xC1EA 0xC96C +0xC1EB 0xC970 +0xC1EC 0xC974 +0xC1ED 0xC97C +0xC1EE 0xC988 +0xC1EF 0xC989 +0xC1F0 0xC98C +0xC1F1 0xC990 +0xC1F2 0xC998 +0xC1F3 0xC999 +0xC1F4 0xC99B +0xC1F5 0xC99D +0xC1F6 0xC9C0 +0xC1F7 0xC9C1 +0xC1F8 0xC9C4 +0xC1F9 0xC9C7 +0xC1FA 0xC9C8 +0xC1FB 0xC9CA +0xC1FC 0xC9D0 +0xC1FD 0xC9D1 +0xC1FE 0xC9D3 +0xC241 0xD5CA +0xC242 0xD5CB +0xC243 0xD5CD +0xC244 0xD5CE +0xC245 0xD5CF +0xC246 0xD5D1 +0xC247 0xD5D3 +0xC248 0xD5D4 +0xC249 0xD5D5 +0xC24A 0xD5D6 +0xC24B 0xD5D7 +0xC24C 0xD5DA +0xC24D 0xD5DC +0xC24E 0xD5DE +0xC24F 0xD5DF +0xC250 0xD5E0 +0xC251 0xD5E1 +0xC252 0xD5E2 +0xC253 0xD5E3 +0xC254 0xD5E6 +0xC255 0xD5E7 +0xC256 0xD5E9 +0xC257 0xD5EA +0xC258 0xD5EB +0xC259 0xD5ED +0xC25A 0xD5EE +0xC261 0xD5EF +0xC262 0xD5F0 +0xC263 0xD5F1 +0xC264 0xD5F2 +0xC265 0xD5F3 +0xC266 0xD5F6 +0xC267 0xD5F8 +0xC268 0xD5FA +0xC269 0xD5FB +0xC26A 0xD5FC +0xC26B 0xD5FD +0xC26C 0xD5FE +0xC26D 0xD5FF +0xC26E 0xD602 +0xC26F 0xD603 +0xC270 0xD605 +0xC271 0xD606 +0xC272 0xD607 +0xC273 0xD609 +0xC274 0xD60A +0xC275 0xD60B +0xC276 0xD60C +0xC277 0xD60D +0xC278 0xD60E +0xC279 0xD60F +0xC27A 0xD612 +0xC281 0xD616 +0xC282 0xD617 +0xC283 0xD618 +0xC284 0xD619 +0xC285 0xD61A +0xC286 0xD61B +0xC287 0xD61D +0xC288 0xD61E +0xC289 0xD61F +0xC28A 0xD621 +0xC28B 0xD622 +0xC28C 0xD623 +0xC28D 0xD625 +0xC28E 0xD626 +0xC28F 0xD627 +0xC290 0xD628 +0xC291 0xD629 +0xC292 0xD62A +0xC293 0xD62B +0xC294 0xD62C +0xC295 0xD62E +0xC296 0xD62F +0xC297 0xD630 +0xC298 0xD631 +0xC299 0xD632 +0xC29A 0xD633 +0xC29B 0xD634 +0xC29C 0xD635 +0xC29D 0xD636 +0xC29E 0xD637 +0xC29F 0xD63A +0xC2A0 0xD63B +0xC2A1 0xC9D5 +0xC2A2 0xC9D6 +0xC2A3 0xC9D9 +0xC2A4 0xC9DA +0xC2A5 0xC9DC +0xC2A6 0xC9DD +0xC2A7 0xC9E0 +0xC2A8 0xC9E2 +0xC2A9 0xC9E4 +0xC2AA 0xC9E7 +0xC2AB 0xC9EC +0xC2AC 0xC9ED +0xC2AD 0xC9EF +0xC2AE 0xC9F0 +0xC2AF 0xC9F1 +0xC2B0 0xC9F8 +0xC2B1 0xC9F9 +0xC2B2 0xC9FC +0xC2B3 0xCA00 +0xC2B4 0xCA08 +0xC2B5 0xCA09 +0xC2B6 0xCA0B +0xC2B7 0xCA0C +0xC2B8 0xCA0D +0xC2B9 0xCA14 +0xC2BA 0xCA18 +0xC2BB 0xCA29 +0xC2BC 0xCA4C +0xC2BD 0xCA4D +0xC2BE 0xCA50 +0xC2BF 0xCA54 +0xC2C0 0xCA5C +0xC2C1 0xCA5D +0xC2C2 0xCA5F +0xC2C3 0xCA60 +0xC2C4 0xCA61 +0xC2C5 0xCA68 +0xC2C6 0xCA7D +0xC2C7 0xCA84 +0xC2C8 0xCA98 +0xC2C9 0xCABC +0xC2CA 0xCABD +0xC2CB 0xCAC0 +0xC2CC 0xCAC4 +0xC2CD 0xCACC +0xC2CE 0xCACD +0xC2CF 0xCACF +0xC2D0 0xCAD1 +0xC2D1 0xCAD3 +0xC2D2 0xCAD8 +0xC2D3 0xCAD9 +0xC2D4 0xCAE0 +0xC2D5 0xCAEC +0xC2D6 0xCAF4 +0xC2D7 0xCB08 +0xC2D8 0xCB10 +0xC2D9 0xCB14 +0xC2DA 0xCB18 +0xC2DB 0xCB20 +0xC2DC 0xCB21 +0xC2DD 0xCB41 +0xC2DE 0xCB48 +0xC2DF 0xCB49 +0xC2E0 0xCB4C +0xC2E1 0xCB50 +0xC2E2 0xCB58 +0xC2E3 0xCB59 +0xC2E4 0xCB5D +0xC2E5 0xCB64 +0xC2E6 0xCB78 +0xC2E7 0xCB79 +0xC2E8 0xCB9C +0xC2E9 0xCBB8 +0xC2EA 0xCBD4 +0xC2EB 0xCBE4 +0xC2EC 0xCBE7 +0xC2ED 0xCBE9 +0xC2EE 0xCC0C +0xC2EF 0xCC0D +0xC2F0 0xCC10 +0xC2F1 0xCC14 +0xC2F2 0xCC1C +0xC2F3 0xCC1D +0xC2F4 0xCC21 +0xC2F5 0xCC22 +0xC2F6 0xCC27 +0xC2F7 0xCC28 +0xC2F8 0xCC29 +0xC2F9 0xCC2C +0xC2FA 0xCC2E +0xC2FB 0xCC30 +0xC2FC 0xCC38 +0xC2FD 0xCC39 +0xC2FE 0xCC3B +0xC341 0xD63D +0xC342 0xD63E +0xC343 0xD63F +0xC344 0xD641 +0xC345 0xD642 +0xC346 0xD643 +0xC347 0xD644 +0xC348 0xD646 +0xC349 0xD647 +0xC34A 0xD64A +0xC34B 0xD64C +0xC34C 0xD64E +0xC34D 0xD64F +0xC34E 0xD650 +0xC34F 0xD652 +0xC350 0xD653 +0xC351 0xD656 +0xC352 0xD657 +0xC353 0xD659 +0xC354 0xD65A +0xC355 0xD65B +0xC356 0xD65D +0xC357 0xD65E +0xC358 0xD65F +0xC359 0xD660 +0xC35A 0xD661 +0xC361 0xD662 +0xC362 0xD663 +0xC363 0xD664 +0xC364 0xD665 +0xC365 0xD666 +0xC366 0xD668 +0xC367 0xD66A +0xC368 0xD66B +0xC369 0xD66C +0xC36A 0xD66D +0xC36B 0xD66E +0xC36C 0xD66F +0xC36D 0xD672 +0xC36E 0xD673 +0xC36F 0xD675 +0xC370 0xD676 +0xC371 0xD677 +0xC372 0xD678 +0xC373 0xD679 +0xC374 0xD67A +0xC375 0xD67B +0xC376 0xD67C +0xC377 0xD67D +0xC378 0xD67E +0xC379 0xD67F +0xC37A 0xD680 +0xC381 0xD681 +0xC382 0xD682 +0xC383 0xD684 +0xC384 0xD686 +0xC385 0xD687 +0xC386 0xD688 +0xC387 0xD689 +0xC388 0xD68A +0xC389 0xD68B +0xC38A 0xD68E +0xC38B 0xD68F +0xC38C 0xD691 +0xC38D 0xD692 +0xC38E 0xD693 +0xC38F 0xD695 +0xC390 0xD696 +0xC391 0xD697 +0xC392 0xD698 +0xC393 0xD699 +0xC394 0xD69A +0xC395 0xD69B +0xC396 0xD69C +0xC397 0xD69E +0xC398 0xD6A0 +0xC399 0xD6A2 +0xC39A 0xD6A3 +0xC39B 0xD6A4 +0xC39C 0xD6A5 +0xC39D 0xD6A6 +0xC39E 0xD6A7 +0xC39F 0xD6A9 +0xC3A0 0xD6AA +0xC3A1 0xCC3C +0xC3A2 0xCC3D +0xC3A3 0xCC3E +0xC3A4 0xCC44 +0xC3A5 0xCC45 +0xC3A6 0xCC48 +0xC3A7 0xCC4C +0xC3A8 0xCC54 +0xC3A9 0xCC55 +0xC3AA 0xCC57 +0xC3AB 0xCC58 +0xC3AC 0xCC59 +0xC3AD 0xCC60 +0xC3AE 0xCC64 +0xC3AF 0xCC66 +0xC3B0 0xCC68 +0xC3B1 0xCC70 +0xC3B2 0xCC75 +0xC3B3 0xCC98 +0xC3B4 0xCC99 +0xC3B5 0xCC9C +0xC3B6 0xCCA0 +0xC3B7 0xCCA8 +0xC3B8 0xCCA9 +0xC3B9 0xCCAB +0xC3BA 0xCCAC +0xC3BB 0xCCAD +0xC3BC 0xCCB4 +0xC3BD 0xCCB5 +0xC3BE 0xCCB8 +0xC3BF 0xCCBC +0xC3C0 0xCCC4 +0xC3C1 0xCCC5 +0xC3C2 0xCCC7 +0xC3C3 0xCCC9 +0xC3C4 0xCCD0 +0xC3C5 0xCCD4 +0xC3C6 0xCCE4 +0xC3C7 0xCCEC +0xC3C8 0xCCF0 +0xC3C9 0xCD01 +0xC3CA 0xCD08 +0xC3CB 0xCD09 +0xC3CC 0xCD0C +0xC3CD 0xCD10 +0xC3CE 0xCD18 +0xC3CF 0xCD19 +0xC3D0 0xCD1B +0xC3D1 0xCD1D +0xC3D2 0xCD24 +0xC3D3 0xCD28 +0xC3D4 0xCD2C +0xC3D5 0xCD39 +0xC3D6 0xCD5C +0xC3D7 0xCD60 +0xC3D8 0xCD64 +0xC3D9 0xCD6C +0xC3DA 0xCD6D +0xC3DB 0xCD6F +0xC3DC 0xCD71 +0xC3DD 0xCD78 +0xC3DE 0xCD88 +0xC3DF 0xCD94 +0xC3E0 0xCD95 +0xC3E1 0xCD98 +0xC3E2 0xCD9C +0xC3E3 0xCDA4 +0xC3E4 0xCDA5 +0xC3E5 0xCDA7 +0xC3E6 0xCDA9 +0xC3E7 0xCDB0 +0xC3E8 0xCDC4 +0xC3E9 0xCDCC +0xC3EA 0xCDD0 +0xC3EB 0xCDE8 +0xC3EC 0xCDEC +0xC3ED 0xCDF0 +0xC3EE 0xCDF8 +0xC3EF 0xCDF9 +0xC3F0 0xCDFB +0xC3F1 0xCDFD +0xC3F2 0xCE04 +0xC3F3 0xCE08 +0xC3F4 0xCE0C +0xC3F5 0xCE14 +0xC3F6 0xCE19 +0xC3F7 0xCE20 +0xC3F8 0xCE21 +0xC3F9 0xCE24 +0xC3FA 0xCE28 +0xC3FB 0xCE30 +0xC3FC 0xCE31 +0xC3FD 0xCE33 +0xC3FE 0xCE35 +0xC441 0xD6AB +0xC442 0xD6AD +0xC443 0xD6AE +0xC444 0xD6AF +0xC445 0xD6B1 +0xC446 0xD6B2 +0xC447 0xD6B3 +0xC448 0xD6B4 +0xC449 0xD6B5 +0xC44A 0xD6B6 +0xC44B 0xD6B7 +0xC44C 0xD6B8 +0xC44D 0xD6BA +0xC44E 0xD6BC +0xC44F 0xD6BD +0xC450 0xD6BE +0xC451 0xD6BF +0xC452 0xD6C0 +0xC453 0xD6C1 +0xC454 0xD6C2 +0xC455 0xD6C3 +0xC456 0xD6C6 +0xC457 0xD6C7 +0xC458 0xD6C9 +0xC459 0xD6CA +0xC45A 0xD6CB +0xC461 0xD6CD +0xC462 0xD6CE +0xC463 0xD6CF +0xC464 0xD6D0 +0xC465 0xD6D2 +0xC466 0xD6D3 +0xC467 0xD6D5 +0xC468 0xD6D6 +0xC469 0xD6D8 +0xC46A 0xD6DA +0xC46B 0xD6DB +0xC46C 0xD6DC +0xC46D 0xD6DD +0xC46E 0xD6DE +0xC46F 0xD6DF +0xC470 0xD6E1 +0xC471 0xD6E2 +0xC472 0xD6E3 +0xC473 0xD6E5 +0xC474 0xD6E6 +0xC475 0xD6E7 +0xC476 0xD6E9 +0xC477 0xD6EA +0xC478 0xD6EB +0xC479 0xD6EC +0xC47A 0xD6ED +0xC481 0xD6EE +0xC482 0xD6EF +0xC483 0xD6F1 +0xC484 0xD6F2 +0xC485 0xD6F3 +0xC486 0xD6F4 +0xC487 0xD6F6 +0xC488 0xD6F7 +0xC489 0xD6F8 +0xC48A 0xD6F9 +0xC48B 0xD6FA +0xC48C 0xD6FB +0xC48D 0xD6FE +0xC48E 0xD6FF +0xC48F 0xD701 +0xC490 0xD702 +0xC491 0xD703 +0xC492 0xD705 +0xC493 0xD706 +0xC494 0xD707 +0xC495 0xD708 +0xC496 0xD709 +0xC497 0xD70A +0xC498 0xD70B +0xC499 0xD70C +0xC49A 0xD70D +0xC49B 0xD70E +0xC49C 0xD70F +0xC49D 0xD710 +0xC49E 0xD712 +0xC49F 0xD713 +0xC4A0 0xD714 +0xC4A1 0xCE58 +0xC4A2 0xCE59 +0xC4A3 0xCE5C +0xC4A4 0xCE5F +0xC4A5 0xCE60 +0xC4A6 0xCE61 +0xC4A7 0xCE68 +0xC4A8 0xCE69 +0xC4A9 0xCE6B +0xC4AA 0xCE6D +0xC4AB 0xCE74 +0xC4AC 0xCE75 +0xC4AD 0xCE78 +0xC4AE 0xCE7C +0xC4AF 0xCE84 +0xC4B0 0xCE85 +0xC4B1 0xCE87 +0xC4B2 0xCE89 +0xC4B3 0xCE90 +0xC4B4 0xCE91 +0xC4B5 0xCE94 +0xC4B6 0xCE98 +0xC4B7 0xCEA0 +0xC4B8 0xCEA1 +0xC4B9 0xCEA3 +0xC4BA 0xCEA4 +0xC4BB 0xCEA5 +0xC4BC 0xCEAC +0xC4BD 0xCEAD +0xC4BE 0xCEC1 +0xC4BF 0xCEE4 +0xC4C0 0xCEE5 +0xC4C1 0xCEE8 +0xC4C2 0xCEEB +0xC4C3 0xCEEC +0xC4C4 0xCEF4 +0xC4C5 0xCEF5 +0xC4C6 0xCEF7 +0xC4C7 0xCEF8 +0xC4C8 0xCEF9 +0xC4C9 0xCF00 +0xC4CA 0xCF01 +0xC4CB 0xCF04 +0xC4CC 0xCF08 +0xC4CD 0xCF10 +0xC4CE 0xCF11 +0xC4CF 0xCF13 +0xC4D0 0xCF15 +0xC4D1 0xCF1C +0xC4D2 0xCF20 +0xC4D3 0xCF24 +0xC4D4 0xCF2C +0xC4D5 0xCF2D +0xC4D6 0xCF2F +0xC4D7 0xCF30 +0xC4D8 0xCF31 +0xC4D9 0xCF38 +0xC4DA 0xCF54 +0xC4DB 0xCF55 +0xC4DC 0xCF58 +0xC4DD 0xCF5C +0xC4DE 0xCF64 +0xC4DF 0xCF65 +0xC4E0 0xCF67 +0xC4E1 0xCF69 +0xC4E2 0xCF70 +0xC4E3 0xCF71 +0xC4E4 0xCF74 +0xC4E5 0xCF78 +0xC4E6 0xCF80 +0xC4E7 0xCF85 +0xC4E8 0xCF8C +0xC4E9 0xCFA1 +0xC4EA 0xCFA8 +0xC4EB 0xCFB0 +0xC4EC 0xCFC4 +0xC4ED 0xCFE0 +0xC4EE 0xCFE1 +0xC4EF 0xCFE4 +0xC4F0 0xCFE8 +0xC4F1 0xCFF0 +0xC4F2 0xCFF1 +0xC4F3 0xCFF3 +0xC4F4 0xCFF5 +0xC4F5 0xCFFC +0xC4F6 0xD000 +0xC4F7 0xD004 +0xC4F8 0xD011 +0xC4F9 0xD018 +0xC4FA 0xD02D +0xC4FB 0xD034 +0xC4FC 0xD035 +0xC4FD 0xD038 +0xC4FE 0xD03C +0xC541 0xD715 +0xC542 0xD716 +0xC543 0xD717 +0xC544 0xD71A +0xC545 0xD71B +0xC546 0xD71D +0xC547 0xD71E +0xC548 0xD71F +0xC549 0xD721 +0xC54A 0xD722 +0xC54B 0xD723 +0xC54C 0xD724 +0xC54D 0xD725 +0xC54E 0xD726 +0xC54F 0xD727 +0xC550 0xD72A +0xC551 0xD72C +0xC552 0xD72E +0xC553 0xD72F +0xC554 0xD730 +0xC555 0xD731 +0xC556 0xD732 +0xC557 0xD733 +0xC558 0xD736 +0xC559 0xD737 +0xC55A 0xD739 +0xC561 0xD73A +0xC562 0xD73B +0xC563 0xD73D +0xC564 0xD73E +0xC565 0xD73F +0xC566 0xD740 +0xC567 0xD741 +0xC568 0xD742 +0xC569 0xD743 +0xC56A 0xD745 +0xC56B 0xD746 +0xC56C 0xD748 +0xC56D 0xD74A +0xC56E 0xD74B +0xC56F 0xD74C +0xC570 0xD74D +0xC571 0xD74E +0xC572 0xD74F +0xC573 0xD752 +0xC574 0xD753 +0xC575 0xD755 +0xC576 0xD75A +0xC577 0xD75B +0xC578 0xD75C +0xC579 0xD75D +0xC57A 0xD75E +0xC581 0xD75F +0xC582 0xD762 +0xC583 0xD764 +0xC584 0xD766 +0xC585 0xD767 +0xC586 0xD768 +0xC587 0xD76A +0xC588 0xD76B +0xC589 0xD76D +0xC58A 0xD76E +0xC58B 0xD76F +0xC58C 0xD771 +0xC58D 0xD772 +0xC58E 0xD773 +0xC58F 0xD775 +0xC590 0xD776 +0xC591 0xD777 +0xC592 0xD778 +0xC593 0xD779 +0xC594 0xD77A +0xC595 0xD77B +0xC596 0xD77E +0xC597 0xD77F +0xC598 0xD780 +0xC599 0xD782 +0xC59A 0xD783 +0xC59B 0xD784 +0xC59C 0xD785 +0xC59D 0xD786 +0xC59E 0xD787 +0xC59F 0xD78A +0xC5A0 0xD78B +0xC5A1 0xD044 +0xC5A2 0xD045 +0xC5A3 0xD047 +0xC5A4 0xD049 +0xC5A5 0xD050 +0xC5A6 0xD054 +0xC5A7 0xD058 +0xC5A8 0xD060 +0xC5A9 0xD06C +0xC5AA 0xD06D +0xC5AB 0xD070 +0xC5AC 0xD074 +0xC5AD 0xD07C +0xC5AE 0xD07D +0xC5AF 0xD081 +0xC5B0 0xD0A4 +0xC5B1 0xD0A5 +0xC5B2 0xD0A8 +0xC5B3 0xD0AC +0xC5B4 0xD0B4 +0xC5B5 0xD0B5 +0xC5B6 0xD0B7 +0xC5B7 0xD0B9 +0xC5B8 0xD0C0 +0xC5B9 0xD0C1 +0xC5BA 0xD0C4 +0xC5BB 0xD0C8 +0xC5BC 0xD0C9 +0xC5BD 0xD0D0 +0xC5BE 0xD0D1 +0xC5BF 0xD0D3 +0xC5C0 0xD0D4 +0xC5C1 0xD0D5 +0xC5C2 0xD0DC +0xC5C3 0xD0DD +0xC5C4 0xD0E0 +0xC5C5 0xD0E4 +0xC5C6 0xD0EC +0xC5C7 0xD0ED +0xC5C8 0xD0EF +0xC5C9 0xD0F0 +0xC5CA 0xD0F1 +0xC5CB 0xD0F8 +0xC5CC 0xD10D +0xC5CD 0xD130 +0xC5CE 0xD131 +0xC5CF 0xD134 +0xC5D0 0xD138 +0xC5D1 0xD13A +0xC5D2 0xD140 +0xC5D3 0xD141 +0xC5D4 0xD143 +0xC5D5 0xD144 +0xC5D6 0xD145 +0xC5D7 0xD14C +0xC5D8 0xD14D +0xC5D9 0xD150 +0xC5DA 0xD154 +0xC5DB 0xD15C +0xC5DC 0xD15D +0xC5DD 0xD15F +0xC5DE 0xD161 +0xC5DF 0xD168 +0xC5E0 0xD16C +0xC5E1 0xD17C +0xC5E2 0xD184 +0xC5E3 0xD188 +0xC5E4 0xD1A0 +0xC5E5 0xD1A1 +0xC5E6 0xD1A4 +0xC5E7 0xD1A8 +0xC5E8 0xD1B0 +0xC5E9 0xD1B1 +0xC5EA 0xD1B3 +0xC5EB 0xD1B5 +0xC5EC 0xD1BA +0xC5ED 0xD1BC +0xC5EE 0xD1C0 +0xC5EF 0xD1D8 +0xC5F0 0xD1F4 +0xC5F1 0xD1F8 +0xC5F2 0xD207 +0xC5F3 0xD209 +0xC5F4 0xD210 +0xC5F5 0xD22C +0xC5F6 0xD22D +0xC5F7 0xD230 +0xC5F8 0xD234 +0xC5F9 0xD23C +0xC5FA 0xD23D +0xC5FB 0xD23F +0xC5FC 0xD241 +0xC5FD 0xD248 +0xC5FE 0xD25C +0xC641 0xD78D +0xC642 0xD78E +0xC643 0xD78F +0xC644 0xD791 +0xC645 0xD792 +0xC646 0xD793 +0xC647 0xD794 +0xC648 0xD795 +0xC649 0xD796 +0xC64A 0xD797 +0xC64B 0xD79A +0xC64C 0xD79C +0xC64D 0xD79E +0xC64E 0xD79F +0xC64F 0xD7A0 +0xC650 0xD7A1 +0xC651 0xD7A2 +0xC652 0xD7A3 +0xC6A1 0xD264 +0xC6A2 0xD280 +0xC6A3 0xD281 +0xC6A4 0xD284 +0xC6A5 0xD288 +0xC6A6 0xD290 +0xC6A7 0xD291 +0xC6A8 0xD295 +0xC6A9 0xD29C +0xC6AA 0xD2A0 +0xC6AB 0xD2A4 +0xC6AC 0xD2AC +0xC6AD 0xD2B1 +0xC6AE 0xD2B8 +0xC6AF 0xD2B9 +0xC6B0 0xD2BC +0xC6B1 0xD2BF +0xC6B2 0xD2C0 +0xC6B3 0xD2C2 +0xC6B4 0xD2C8 +0xC6B5 0xD2C9 +0xC6B6 0xD2CB +0xC6B7 0xD2D4 +0xC6B8 0xD2D8 +0xC6B9 0xD2DC +0xC6BA 0xD2E4 +0xC6BB 0xD2E5 +0xC6BC 0xD2F0 +0xC6BD 0xD2F1 +0xC6BE 0xD2F4 +0xC6BF 0xD2F8 +0xC6C0 0xD300 +0xC6C1 0xD301 +0xC6C2 0xD303 +0xC6C3 0xD305 +0xC6C4 0xD30C +0xC6C5 0xD30D +0xC6C6 0xD30E +0xC6C7 0xD310 +0xC6C8 0xD314 +0xC6C9 0xD316 +0xC6CA 0xD31C +0xC6CB 0xD31D +0xC6CC 0xD31F +0xC6CD 0xD320 +0xC6CE 0xD321 +0xC6CF 0xD325 +0xC6D0 0xD328 +0xC6D1 0xD329 +0xC6D2 0xD32C +0xC6D3 0xD330 +0xC6D4 0xD338 +0xC6D5 0xD339 +0xC6D6 0xD33B +0xC6D7 0xD33C +0xC6D8 0xD33D +0xC6D9 0xD344 +0xC6DA 0xD345 +0xC6DB 0xD37C +0xC6DC 0xD37D +0xC6DD 0xD380 +0xC6DE 0xD384 +0xC6DF 0xD38C +0xC6E0 0xD38D +0xC6E1 0xD38F +0xC6E2 0xD390 +0xC6E3 0xD391 +0xC6E4 0xD398 +0xC6E5 0xD399 +0xC6E6 0xD39C +0xC6E7 0xD3A0 +0xC6E8 0xD3A8 +0xC6E9 0xD3A9 +0xC6EA 0xD3AB +0xC6EB 0xD3AD +0xC6EC 0xD3B4 +0xC6ED 0xD3B8 +0xC6EE 0xD3BC +0xC6EF 0xD3C4 +0xC6F0 0xD3C5 +0xC6F1 0xD3C8 +0xC6F2 0xD3C9 +0xC6F3 0xD3D0 +0xC6F4 0xD3D8 +0xC6F5 0xD3E1 +0xC6F6 0xD3E3 +0xC6F7 0xD3EC +0xC6F8 0xD3ED +0xC6F9 0xD3F0 +0xC6FA 0xD3F4 +0xC6FB 0xD3FC +0xC6FC 0xD3FD +0xC6FD 0xD3FF +0xC6FE 0xD401 +0xC7A1 0xD408 +0xC7A2 0xD41D +0xC7A3 0xD440 +0xC7A4 0xD444 +0xC7A5 0xD45C +0xC7A6 0xD460 +0xC7A7 0xD464 +0xC7A8 0xD46D +0xC7A9 0xD46F +0xC7AA 0xD478 +0xC7AB 0xD479 +0xC7AC 0xD47C +0xC7AD 0xD47F +0xC7AE 0xD480 +0xC7AF 0xD482 +0xC7B0 0xD488 +0xC7B1 0xD489 +0xC7B2 0xD48B +0xC7B3 0xD48D +0xC7B4 0xD494 +0xC7B5 0xD4A9 +0xC7B6 0xD4CC +0xC7B7 0xD4D0 +0xC7B8 0xD4D4 +0xC7B9 0xD4DC +0xC7BA 0xD4DF +0xC7BB 0xD4E8 +0xC7BC 0xD4EC +0xC7BD 0xD4F0 +0xC7BE 0xD4F8 +0xC7BF 0xD4FB +0xC7C0 0xD4FD +0xC7C1 0xD504 +0xC7C2 0xD508 +0xC7C3 0xD50C +0xC7C4 0xD514 +0xC7C5 0xD515 +0xC7C6 0xD517 +0xC7C7 0xD53C +0xC7C8 0xD53D +0xC7C9 0xD540 +0xC7CA 0xD544 +0xC7CB 0xD54C +0xC7CC 0xD54D +0xC7CD 0xD54F +0xC7CE 0xD551 +0xC7CF 0xD558 +0xC7D0 0xD559 +0xC7D1 0xD55C +0xC7D2 0xD560 +0xC7D3 0xD565 +0xC7D4 0xD568 +0xC7D5 0xD569 +0xC7D6 0xD56B +0xC7D7 0xD56D +0xC7D8 0xD574 +0xC7D9 0xD575 +0xC7DA 0xD578 +0xC7DB 0xD57C +0xC7DC 0xD584 +0xC7DD 0xD585 +0xC7DE 0xD587 +0xC7DF 0xD588 +0xC7E0 0xD589 +0xC7E1 0xD590 +0xC7E2 0xD5A5 +0xC7E3 0xD5C8 +0xC7E4 0xD5C9 +0xC7E5 0xD5CC +0xC7E6 0xD5D0 +0xC7E7 0xD5D2 +0xC7E8 0xD5D8 +0xC7E9 0xD5D9 +0xC7EA 0xD5DB +0xC7EB 0xD5DD +0xC7EC 0xD5E4 +0xC7ED 0xD5E5 +0xC7EE 0xD5E8 +0xC7EF 0xD5EC +0xC7F0 0xD5F4 +0xC7F1 0xD5F5 +0xC7F2 0xD5F7 +0xC7F3 0xD5F9 +0xC7F4 0xD600 +0xC7F5 0xD601 +0xC7F6 0xD604 +0xC7F7 0xD608 +0xC7F8 0xD610 +0xC7F9 0xD611 +0xC7FA 0xD613 +0xC7FB 0xD614 +0xC7FC 0xD615 +0xC7FD 0xD61C +0xC7FE 0xD620 +0xC8A1 0xD624 +0xC8A2 0xD62D +0xC8A3 0xD638 +0xC8A4 0xD639 +0xC8A5 0xD63C +0xC8A6 0xD640 +0xC8A7 0xD645 +0xC8A8 0xD648 +0xC8A9 0xD649 +0xC8AA 0xD64B +0xC8AB 0xD64D +0xC8AC 0xD651 +0xC8AD 0xD654 +0xC8AE 0xD655 +0xC8AF 0xD658 +0xC8B0 0xD65C +0xC8B1 0xD667 +0xC8B2 0xD669 +0xC8B3 0xD670 +0xC8B4 0xD671 +0xC8B5 0xD674 +0xC8B6 0xD683 +0xC8B7 0xD685 +0xC8B8 0xD68C +0xC8B9 0xD68D +0xC8BA 0xD690 +0xC8BB 0xD694 +0xC8BC 0xD69D +0xC8BD 0xD69F +0xC8BE 0xD6A1 +0xC8BF 0xD6A8 +0xC8C0 0xD6AC +0xC8C1 0xD6B0 +0xC8C2 0xD6B9 +0xC8C3 0xD6BB +0xC8C4 0xD6C4 +0xC8C5 0xD6C5 +0xC8C6 0xD6C8 +0xC8C7 0xD6CC +0xC8C8 0xD6D1 +0xC8C9 0xD6D4 +0xC8CA 0xD6D7 +0xC8CB 0xD6D9 +0xC8CC 0xD6E0 +0xC8CD 0xD6E4 +0xC8CE 0xD6E8 +0xC8CF 0xD6F0 +0xC8D0 0xD6F5 +0xC8D1 0xD6FC +0xC8D2 0xD6FD +0xC8D3 0xD700 +0xC8D4 0xD704 +0xC8D5 0xD711 +0xC8D6 0xD718 +0xC8D7 0xD719 +0xC8D8 0xD71C +0xC8D9 0xD720 +0xC8DA 0xD728 +0xC8DB 0xD729 +0xC8DC 0xD72B +0xC8DD 0xD72D +0xC8DE 0xD734 +0xC8DF 0xD735 +0xC8E0 0xD738 +0xC8E1 0xD73C +0xC8E2 0xD744 +0xC8E3 0xD747 +0xC8E4 0xD749 +0xC8E5 0xD750 +0xC8E6 0xD751 +0xC8E7 0xD754 +0xC8E8 0xD756 +0xC8E9 0xD757 +0xC8EA 0xD758 +0xC8EB 0xD759 +0xC8EC 0xD760 +0xC8ED 0xD761 +0xC8EE 0xD763 +0xC8EF 0xD765 +0xC8F0 0xD769 +0xC8F1 0xD76C +0xC8F2 0xD770 +0xC8F3 0xD774 +0xC8F4 0xD77C +0xC8F5 0xD77D +0xC8F6 0xD781 +0xC8F7 0xD788 +0xC8F8 0xD789 +0xC8F9 0xD78C +0xC8FA 0xD790 +0xC8FB 0xD798 +0xC8FC 0xD799 +0xC8FD 0xD79B +0xC8FE 0xD79D +0xC9A1 0xE000 +0xC9A2 0xE001 +0xC9A3 0xE002 +0xC9A4 0xE003 +0xC9A5 0xE004 +0xC9A6 0xE005 +0xC9A7 0xE006 +0xC9A8 0xE007 +0xC9A9 0xE008 +0xC9AA 0xE009 +0xC9AB 0xE00A +0xC9AC 0xE00B +0xC9AD 0xE00C +0xC9AE 0xE00D +0xC9AF 0xE00E +0xC9B0 0xE00F +0xC9B1 0xE010 +0xC9B2 0xE011 +0xC9B3 0xE012 +0xC9B4 0xE013 +0xC9B5 0xE014 +0xC9B6 0xE015 +0xC9B7 0xE016 +0xC9B8 0xE017 +0xC9B9 0xE018 +0xC9BA 0xE019 +0xC9BB 0xE01A +0xC9BC 0xE01B +0xC9BD 0xE01C +0xC9BE 0xE01D +0xC9BF 0xE01E +0xC9C0 0xE01F +0xC9C1 0xE020 +0xC9C2 0xE021 +0xC9C3 0xE022 +0xC9C4 0xE023 +0xC9C5 0xE024 +0xC9C6 0xE025 +0xC9C7 0xE026 +0xC9C8 0xE027 +0xC9C9 0xE028 +0xC9CA 0xE029 +0xC9CB 0xE02A +0xC9CC 0xE02B +0xC9CD 0xE02C +0xC9CE 0xE02D +0xC9CF 0xE02E +0xC9D0 0xE02F +0xC9D1 0xE030 +0xC9D2 0xE031 +0xC9D3 0xE032 +0xC9D4 0xE033 +0xC9D5 0xE034 +0xC9D6 0xE035 +0xC9D7 0xE036 +0xC9D8 0xE037 +0xC9D9 0xE038 +0xC9DA 0xE039 +0xC9DB 0xE03A +0xC9DC 0xE03B +0xC9DD 0xE03C +0xC9DE 0xE03D +0xC9DF 0xE03E +0xC9E0 0xE03F +0xC9E1 0xE040 +0xC9E2 0xE041 +0xC9E3 0xE042 +0xC9E4 0xE043 +0xC9E5 0xE044 +0xC9E6 0xE045 +0xC9E7 0xE046 +0xC9E8 0xE047 +0xC9E9 0xE048 +0xC9EA 0xE049 +0xC9EB 0xE04A +0xC9EC 0xE04B +0xC9ED 0xE04C +0xC9EE 0xE04D +0xC9EF 0xE04E +0xC9F0 0xE04F +0xC9F1 0xE050 +0xC9F2 0xE051 +0xC9F3 0xE052 +0xC9F4 0xE053 +0xC9F5 0xE054 +0xC9F6 0xE055 +0xC9F7 0xE056 +0xC9F8 0xE057 +0xC9F9 0xE058 +0xC9FA 0xE059 +0xC9FB 0xE05A +0xC9FC 0xE05B +0xC9FD 0xE05C +0xC9FE 0xE05D +0xCAA1 0x4F3D +0xCAA2 0x4F73 +0xCAA3 0x5047 +0xCAA4 0x50F9 +0xCAA5 0x52A0 +0xCAA6 0x53EF +0xCAA7 0x5475 +0xCAA8 0x54E5 +0xCAA9 0x5609 +0xCAAA 0x5AC1 +0xCAAB 0x5BB6 +0xCAAC 0x6687 +0xCAAD 0x67B6 +0xCAAE 0x67B7 +0xCAAF 0x67EF +0xCAB0 0x6B4C +0xCAB1 0x73C2 +0xCAB2 0x75C2 +0xCAB3 0x7A3C +0xCAB4 0x82DB +0xCAB5 0x8304 +0xCAB6 0x8857 +0xCAB7 0x8888 +0xCAB8 0x8A36 +0xCAB9 0x8CC8 +0xCABA 0x8DCF +0xCABB 0x8EFB +0xCABC 0x8FE6 +0xCABD 0x99D5 +0xCABE 0x523B +0xCABF 0x5374 +0xCAC0 0x5404 +0xCAC1 0x606A +0xCAC2 0x6164 +0xCAC3 0x6BBC +0xCAC4 0x73CF +0xCAC5 0x811A +0xCAC6 0x89BA +0xCAC7 0x89D2 +0xCAC8 0x95A3 +0xCAC9 0x4F83 +0xCACA 0x520A +0xCACB 0x58BE +0xCACC 0x5978 +0xCACD 0x59E6 +0xCACE 0x5E72 +0xCACF 0x5E79 +0xCAD0 0x61C7 +0xCAD1 0x63C0 +0xCAD2 0x6746 +0xCAD3 0x67EC +0xCAD4 0x687F +0xCAD5 0x6F97 +0xCAD6 0x764E +0xCAD7 0x770B +0xCAD8 0x78F5 +0xCAD9 0x7A08 +0xCADA 0x7AFF +0xCADB 0x7C21 +0xCADC 0x809D +0xCADD 0x826E +0xCADE 0x8271 +0xCADF 0x8AEB +0xCAE0 0x9593 +0xCAE1 0x4E6B +0xCAE2 0x559D +0xCAE3 0x66F7 +0xCAE4 0x6E34 +0xCAE5 0x78A3 +0xCAE6 0x7AED +0xCAE7 0x845B +0xCAE8 0x8910 +0xCAE9 0x874E +0xCAEA 0x97A8 +0xCAEB 0x52D8 +0xCAEC 0x574E +0xCAED 0x582A +0xCAEE 0x5D4C +0xCAEF 0x611F +0xCAF0 0x61BE +0xCAF1 0x6221 +0xCAF2 0x6562 +0xCAF3 0x67D1 +0xCAF4 0x6A44 +0xCAF5 0x6E1B +0xCAF6 0x7518 +0xCAF7 0x75B3 +0xCAF8 0x76E3 +0xCAF9 0x77B0 +0xCAFA 0x7D3A +0xCAFB 0x90AF +0xCAFC 0x9451 +0xCAFD 0x9452 +0xCAFE 0x9F95 +0xCBA1 0x5323 +0xCBA2 0x5CAC +0xCBA3 0x7532 +0xCBA4 0x80DB +0xCBA5 0x9240 +0xCBA6 0x9598 +0xCBA7 0x525B +0xCBA8 0x5808 +0xCBA9 0x59DC +0xCBAA 0x5CA1 +0xCBAB 0x5D17 +0xCBAC 0x5EB7 +0xCBAD 0x5F3A +0xCBAE 0x5F4A +0xCBAF 0x6177 +0xCBB0 0x6C5F +0xCBB1 0x757A +0xCBB2 0x7586 +0xCBB3 0x7CE0 +0xCBB4 0x7D73 +0xCBB5 0x7DB1 +0xCBB6 0x7F8C +0xCBB7 0x8154 +0xCBB8 0x8221 +0xCBB9 0x8591 +0xCBBA 0x8941 +0xCBBB 0x8B1B +0xCBBC 0x92FC +0xCBBD 0x964D +0xCBBE 0x9C47 +0xCBBF 0x4ECB +0xCBC0 0x4EF7 +0xCBC1 0x500B +0xCBC2 0x51F1 +0xCBC3 0x584F +0xCBC4 0x6137 +0xCBC5 0x613E +0xCBC6 0x6168 +0xCBC7 0x6539 +0xCBC8 0x69EA +0xCBC9 0x6F11 +0xCBCA 0x75A5 +0xCBCB 0x7686 +0xCBCC 0x76D6 +0xCBCD 0x7B87 +0xCBCE 0x82A5 +0xCBCF 0x84CB +0xCBD0 0xF900 +0xCBD1 0x93A7 +0xCBD2 0x958B +0xCBD3 0x5580 +0xCBD4 0x5BA2 +0xCBD5 0x5751 +0xCBD6 0xF901 +0xCBD7 0x7CB3 +0xCBD8 0x7FB9 +0xCBD9 0x91B5 +0xCBDA 0x5028 +0xCBDB 0x53BB +0xCBDC 0x5C45 +0xCBDD 0x5DE8 +0xCBDE 0x62D2 +0xCBDF 0x636E +0xCBE0 0x64DA +0xCBE1 0x64E7 +0xCBE2 0x6E20 +0xCBE3 0x70AC +0xCBE4 0x795B +0xCBE5 0x8DDD +0xCBE6 0x8E1E +0xCBE7 0xF902 +0xCBE8 0x907D +0xCBE9 0x9245 +0xCBEA 0x92F8 +0xCBEB 0x4E7E +0xCBEC 0x4EF6 +0xCBED 0x5065 +0xCBEE 0x5DFE +0xCBEF 0x5EFA +0xCBF0 0x6106 +0xCBF1 0x6957 +0xCBF2 0x8171 +0xCBF3 0x8654 +0xCBF4 0x8E47 +0xCBF5 0x9375 +0xCBF6 0x9A2B +0xCBF7 0x4E5E +0xCBF8 0x5091 +0xCBF9 0x6770 +0xCBFA 0x6840 +0xCBFB 0x5109 +0xCBFC 0x528D +0xCBFD 0x5292 +0xCBFE 0x6AA2 +0xCCA1 0x77BC +0xCCA2 0x9210 +0xCCA3 0x9ED4 +0xCCA4 0x52AB +0xCCA5 0x602F +0xCCA6 0x8FF2 +0xCCA7 0x5048 +0xCCA8 0x61A9 +0xCCA9 0x63ED +0xCCAA 0x64CA +0xCCAB 0x683C +0xCCAC 0x6A84 +0xCCAD 0x6FC0 +0xCCAE 0x8188 +0xCCAF 0x89A1 +0xCCB0 0x9694 +0xCCB1 0x5805 +0xCCB2 0x727D +0xCCB3 0x72AC +0xCCB4 0x7504 +0xCCB5 0x7D79 +0xCCB6 0x7E6D +0xCCB7 0x80A9 +0xCCB8 0x898B +0xCCB9 0x8B74 +0xCCBA 0x9063 +0xCCBB 0x9D51 +0xCCBC 0x6289 +0xCCBD 0x6C7A +0xCCBE 0x6F54 +0xCCBF 0x7D50 +0xCCC0 0x7F3A +0xCCC1 0x8A23 +0xCCC2 0x517C +0xCCC3 0x614A +0xCCC4 0x7B9D +0xCCC5 0x8B19 +0xCCC6 0x9257 +0xCCC7 0x938C +0xCCC8 0x4EAC +0xCCC9 0x4FD3 +0xCCCA 0x501E +0xCCCB 0x50BE +0xCCCC 0x5106 +0xCCCD 0x52C1 +0xCCCE 0x52CD +0xCCCF 0x537F +0xCCD0 0x5770 +0xCCD1 0x5883 +0xCCD2 0x5E9A +0xCCD3 0x5F91 +0xCCD4 0x6176 +0xCCD5 0x61AC +0xCCD6 0x64CE +0xCCD7 0x656C +0xCCD8 0x666F +0xCCD9 0x66BB +0xCCDA 0x66F4 +0xCCDB 0x6897 +0xCCDC 0x6D87 +0xCCDD 0x7085 +0xCCDE 0x70F1 +0xCCDF 0x749F +0xCCE0 0x74A5 +0xCCE1 0x74CA +0xCCE2 0x75D9 +0xCCE3 0x786C +0xCCE4 0x78EC +0xCCE5 0x7ADF +0xCCE6 0x7AF6 +0xCCE7 0x7D45 +0xCCE8 0x7D93 +0xCCE9 0x8015 +0xCCEA 0x803F +0xCCEB 0x811B +0xCCEC 0x8396 +0xCCED 0x8B66 +0xCCEE 0x8F15 +0xCCEF 0x9015 +0xCCF0 0x93E1 +0xCCF1 0x9803 +0xCCF2 0x9838 +0xCCF3 0x9A5A +0xCCF4 0x9BE8 +0xCCF5 0x4FC2 +0xCCF6 0x5553 +0xCCF7 0x583A +0xCCF8 0x5951 +0xCCF9 0x5B63 +0xCCFA 0x5C46 +0xCCFB 0x60B8 +0xCCFC 0x6212 +0xCCFD 0x6842 +0xCCFE 0x68B0 +0xCDA1 0x68E8 +0xCDA2 0x6EAA +0xCDA3 0x754C +0xCDA4 0x7678 +0xCDA5 0x78CE +0xCDA6 0x7A3D +0xCDA7 0x7CFB +0xCDA8 0x7E6B +0xCDA9 0x7E7C +0xCDAA 0x8A08 +0xCDAB 0x8AA1 +0xCDAC 0x8C3F +0xCDAD 0x968E +0xCDAE 0x9DC4 +0xCDAF 0x53E4 +0xCDB0 0x53E9 +0xCDB1 0x544A +0xCDB2 0x5471 +0xCDB3 0x56FA +0xCDB4 0x59D1 +0xCDB5 0x5B64 +0xCDB6 0x5C3B +0xCDB7 0x5EAB +0xCDB8 0x62F7 +0xCDB9 0x6537 +0xCDBA 0x6545 +0xCDBB 0x6572 +0xCDBC 0x66A0 +0xCDBD 0x67AF +0xCDBE 0x69C1 +0xCDBF 0x6CBD +0xCDC0 0x75FC +0xCDC1 0x7690 +0xCDC2 0x777E +0xCDC3 0x7A3F +0xCDC4 0x7F94 +0xCDC5 0x8003 +0xCDC6 0x80A1 +0xCDC7 0x818F +0xCDC8 0x82E6 +0xCDC9 0x82FD +0xCDCA 0x83F0 +0xCDCB 0x85C1 +0xCDCC 0x8831 +0xCDCD 0x88B4 +0xCDCE 0x8AA5 +0xCDCF 0xF903 +0xCDD0 0x8F9C +0xCDD1 0x932E +0xCDD2 0x96C7 +0xCDD3 0x9867 +0xCDD4 0x9AD8 +0xCDD5 0x9F13 +0xCDD6 0x54ED +0xCDD7 0x659B +0xCDD8 0x66F2 +0xCDD9 0x688F +0xCDDA 0x7A40 +0xCDDB 0x8C37 +0xCDDC 0x9D60 +0xCDDD 0x56F0 +0xCDDE 0x5764 +0xCDDF 0x5D11 +0xCDE0 0x6606 +0xCDE1 0x68B1 +0xCDE2 0x68CD +0xCDE3 0x6EFE +0xCDE4 0x7428 +0xCDE5 0x889E +0xCDE6 0x9BE4 +0xCDE7 0x6C68 +0xCDE8 0xF904 +0xCDE9 0x9AA8 +0xCDEA 0x4F9B +0xCDEB 0x516C +0xCDEC 0x5171 +0xCDED 0x529F +0xCDEE 0x5B54 +0xCDEF 0x5DE5 +0xCDF0 0x6050 +0xCDF1 0x606D +0xCDF2 0x62F1 +0xCDF3 0x63A7 +0xCDF4 0x653B +0xCDF5 0x73D9 +0xCDF6 0x7A7A +0xCDF7 0x86A3 +0xCDF8 0x8CA2 +0xCDF9 0x978F +0xCDFA 0x4E32 +0xCDFB 0x5BE1 +0xCDFC 0x6208 +0xCDFD 0x679C +0xCDFE 0x74DC +0xCEA1 0x79D1 +0xCEA2 0x83D3 +0xCEA3 0x8A87 +0xCEA4 0x8AB2 +0xCEA5 0x8DE8 +0xCEA6 0x904E +0xCEA7 0x934B +0xCEA8 0x9846 +0xCEA9 0x5ED3 +0xCEAA 0x69E8 +0xCEAB 0x85FF +0xCEAC 0x90ED +0xCEAD 0xF905 +0xCEAE 0x51A0 +0xCEAF 0x5B98 +0xCEB0 0x5BEC +0xCEB1 0x6163 +0xCEB2 0x68FA +0xCEB3 0x6B3E +0xCEB4 0x704C +0xCEB5 0x742F +0xCEB6 0x74D8 +0xCEB7 0x7BA1 +0xCEB8 0x7F50 +0xCEB9 0x83C5 +0xCEBA 0x89C0 +0xCEBB 0x8CAB +0xCEBC 0x95DC +0xCEBD 0x9928 +0xCEBE 0x522E +0xCEBF 0x605D +0xCEC0 0x62EC +0xCEC1 0x9002 +0xCEC2 0x4F8A +0xCEC3 0x5149 +0xCEC4 0x5321 +0xCEC5 0x58D9 +0xCEC6 0x5EE3 +0xCEC7 0x66E0 +0xCEC8 0x6D38 +0xCEC9 0x709A +0xCECA 0x72C2 +0xCECB 0x73D6 +0xCECC 0x7B50 +0xCECD 0x80F1 +0xCECE 0x945B +0xCECF 0x5366 +0xCED0 0x639B +0xCED1 0x7F6B +0xCED2 0x4E56 +0xCED3 0x5080 +0xCED4 0x584A +0xCED5 0x58DE +0xCED6 0x602A +0xCED7 0x6127 +0xCED8 0x62D0 +0xCED9 0x69D0 +0xCEDA 0x9B41 +0xCEDB 0x5B8F +0xCEDC 0x7D18 +0xCEDD 0x80B1 +0xCEDE 0x8F5F +0xCEDF 0x4EA4 +0xCEE0 0x50D1 +0xCEE1 0x54AC +0xCEE2 0x55AC +0xCEE3 0x5B0C +0xCEE4 0x5DA0 +0xCEE5 0x5DE7 +0xCEE6 0x652A +0xCEE7 0x654E +0xCEE8 0x6821 +0xCEE9 0x6A4B +0xCEEA 0x72E1 +0xCEEB 0x768E +0xCEEC 0x77EF +0xCEED 0x7D5E +0xCEEE 0x7FF9 +0xCEEF 0x81A0 +0xCEF0 0x854E +0xCEF1 0x86DF +0xCEF2 0x8F03 +0xCEF3 0x8F4E +0xCEF4 0x90CA +0xCEF5 0x9903 +0xCEF6 0x9A55 +0xCEF7 0x9BAB +0xCEF8 0x4E18 +0xCEF9 0x4E45 +0xCEFA 0x4E5D +0xCEFB 0x4EC7 +0xCEFC 0x4FF1 +0xCEFD 0x5177 +0xCEFE 0x52FE +0xCFA1 0x5340 +0xCFA2 0x53E3 +0xCFA3 0x53E5 +0xCFA4 0x548E +0xCFA5 0x5614 +0xCFA6 0x5775 +0xCFA7 0x57A2 +0xCFA8 0x5BC7 +0xCFA9 0x5D87 +0xCFAA 0x5ED0 +0xCFAB 0x61FC +0xCFAC 0x62D8 +0xCFAD 0x6551 +0xCFAE 0x67B8 +0xCFAF 0x67E9 +0xCFB0 0x69CB +0xCFB1 0x6B50 +0xCFB2 0x6BC6 +0xCFB3 0x6BEC +0xCFB4 0x6C42 +0xCFB5 0x6E9D +0xCFB6 0x7078 +0xCFB7 0x72D7 +0xCFB8 0x7396 +0xCFB9 0x7403 +0xCFBA 0x77BF +0xCFBB 0x77E9 +0xCFBC 0x7A76 +0xCFBD 0x7D7F +0xCFBE 0x8009 +0xCFBF 0x81FC +0xCFC0 0x8205 +0xCFC1 0x820A +0xCFC2 0x82DF +0xCFC3 0x8862 +0xCFC4 0x8B33 +0xCFC5 0x8CFC +0xCFC6 0x8EC0 +0xCFC7 0x9011 +0xCFC8 0x90B1 +0xCFC9 0x9264 +0xCFCA 0x92B6 +0xCFCB 0x99D2 +0xCFCC 0x9A45 +0xCFCD 0x9CE9 +0xCFCE 0x9DD7 +0xCFCF 0x9F9C +0xCFD0 0x570B +0xCFD1 0x5C40 +0xCFD2 0x83CA +0xCFD3 0x97A0 +0xCFD4 0x97AB +0xCFD5 0x9EB4 +0xCFD6 0x541B +0xCFD7 0x7A98 +0xCFD8 0x7FA4 +0xCFD9 0x88D9 +0xCFDA 0x8ECD +0xCFDB 0x90E1 +0xCFDC 0x5800 +0xCFDD 0x5C48 +0xCFDE 0x6398 +0xCFDF 0x7A9F +0xCFE0 0x5BAE +0xCFE1 0x5F13 +0xCFE2 0x7A79 +0xCFE3 0x7AAE +0xCFE4 0x828E +0xCFE5 0x8EAC +0xCFE6 0x5026 +0xCFE7 0x5238 +0xCFE8 0x52F8 +0xCFE9 0x5377 +0xCFEA 0x5708 +0xCFEB 0x62F3 +0xCFEC 0x6372 +0xCFED 0x6B0A +0xCFEE 0x6DC3 +0xCFEF 0x7737 +0xCFF0 0x53A5 +0xCFF1 0x7357 +0xCFF2 0x8568 +0xCFF3 0x8E76 +0xCFF4 0x95D5 +0xCFF5 0x673A +0xCFF6 0x6AC3 +0xCFF7 0x6F70 +0xCFF8 0x8A6D +0xCFF9 0x8ECC +0xCFFA 0x994B +0xCFFB 0xF906 +0xCFFC 0x6677 +0xCFFD 0x6B78 +0xCFFE 0x8CB4 +0xD0A1 0x9B3C +0xD0A2 0xF907 +0xD0A3 0x53EB +0xD0A4 0x572D +0xD0A5 0x594E +0xD0A6 0x63C6 +0xD0A7 0x69FB +0xD0A8 0x73EA +0xD0A9 0x7845 +0xD0AA 0x7ABA +0xD0AB 0x7AC5 +0xD0AC 0x7CFE +0xD0AD 0x8475 +0xD0AE 0x898F +0xD0AF 0x8D73 +0xD0B0 0x9035 +0xD0B1 0x95A8 +0xD0B2 0x52FB +0xD0B3 0x5747 +0xD0B4 0x7547 +0xD0B5 0x7B60 +0xD0B6 0x83CC +0xD0B7 0x921E +0xD0B8 0xF908 +0xD0B9 0x6A58 +0xD0BA 0x514B +0xD0BB 0x524B +0xD0BC 0x5287 +0xD0BD 0x621F +0xD0BE 0x68D8 +0xD0BF 0x6975 +0xD0C0 0x9699 +0xD0C1 0x50C5 +0xD0C2 0x52A4 +0xD0C3 0x52E4 +0xD0C4 0x61C3 +0xD0C5 0x65A4 +0xD0C6 0x6839 +0xD0C7 0x69FF +0xD0C8 0x747E +0xD0C9 0x7B4B +0xD0CA 0x82B9 +0xD0CB 0x83EB +0xD0CC 0x89B2 +0xD0CD 0x8B39 +0xD0CE 0x8FD1 +0xD0CF 0x9949 +0xD0D0 0xF909 +0xD0D1 0x4ECA +0xD0D2 0x5997 +0xD0D3 0x64D2 +0xD0D4 0x6611 +0xD0D5 0x6A8E +0xD0D6 0x7434 +0xD0D7 0x7981 +0xD0D8 0x79BD +0xD0D9 0x82A9 +0xD0DA 0x887E +0xD0DB 0x887F +0xD0DC 0x895F +0xD0DD 0xF90A +0xD0DE 0x9326 +0xD0DF 0x4F0B +0xD0E0 0x53CA +0xD0E1 0x6025 +0xD0E2 0x6271 +0xD0E3 0x6C72 +0xD0E4 0x7D1A +0xD0E5 0x7D66 +0xD0E6 0x4E98 +0xD0E7 0x5162 +0xD0E8 0x77DC +0xD0E9 0x80AF +0xD0EA 0x4F01 +0xD0EB 0x4F0E +0xD0EC 0x5176 +0xD0ED 0x5180 +0xD0EE 0x55DC +0xD0EF 0x5668 +0xD0F0 0x573B +0xD0F1 0x57FA +0xD0F2 0x57FC +0xD0F3 0x5914 +0xD0F4 0x5947 +0xD0F5 0x5993 +0xD0F6 0x5BC4 +0xD0F7 0x5C90 +0xD0F8 0x5D0E +0xD0F9 0x5DF1 +0xD0FA 0x5E7E +0xD0FB 0x5FCC +0xD0FC 0x6280 +0xD0FD 0x65D7 +0xD0FE 0x65E3 +0xD1A1 0x671E +0xD1A2 0x671F +0xD1A3 0x675E +0xD1A4 0x68CB +0xD1A5 0x68C4 +0xD1A6 0x6A5F +0xD1A7 0x6B3A +0xD1A8 0x6C23 +0xD1A9 0x6C7D +0xD1AA 0x6C82 +0xD1AB 0x6DC7 +0xD1AC 0x7398 +0xD1AD 0x7426 +0xD1AE 0x742A +0xD1AF 0x7482 +0xD1B0 0x74A3 +0xD1B1 0x7578 +0xD1B2 0x757F +0xD1B3 0x7881 +0xD1B4 0x78EF +0xD1B5 0x7941 +0xD1B6 0x7947 +0xD1B7 0x7948 +0xD1B8 0x797A +0xD1B9 0x7B95 +0xD1BA 0x7D00 +0xD1BB 0x7DBA +0xD1BC 0x7F88 +0xD1BD 0x8006 +0xD1BE 0x802D +0xD1BF 0x808C +0xD1C0 0x8A18 +0xD1C1 0x8B4F +0xD1C2 0x8C48 +0xD1C3 0x8D77 +0xD1C4 0x9321 +0xD1C5 0x9324 +0xD1C6 0x98E2 +0xD1C7 0x9951 +0xD1C8 0x9A0E +0xD1C9 0x9A0F +0xD1CA 0x9A65 +0xD1CB 0x9E92 +0xD1CC 0x7DCA +0xD1CD 0x4F76 +0xD1CE 0x5409 +0xD1CF 0x62EE +0xD1D0 0x6854 +0xD1D1 0x91D1 +0xD1D2 0x55AB +0xD1D3 0x513A +0xD1D4 0xF90B +0xD1D5 0xF90C +0xD1D6 0x5A1C +0xD1D7 0x61E6 +0xD1D8 0xF90D +0xD1D9 0x62CF +0xD1DA 0x62FF +0xD1DB 0xF90E +0xD1DC 0xF90F +0xD1DD 0xF910 +0xD1DE 0xF911 +0xD1DF 0xF912 +0xD1E0 0xF913 +0xD1E1 0x90A3 +0xD1E2 0xF914 +0xD1E3 0xF915 +0xD1E4 0xF916 +0xD1E5 0xF917 +0xD1E6 0xF918 +0xD1E7 0x8AFE +0xD1E8 0xF919 +0xD1E9 0xF91A +0xD1EA 0xF91B +0xD1EB 0xF91C +0xD1EC 0x6696 +0xD1ED 0xF91D +0xD1EE 0x7156 +0xD1EF 0xF91E +0xD1F0 0xF91F +0xD1F1 0x96E3 +0xD1F2 0xF920 +0xD1F3 0x634F +0xD1F4 0x637A +0xD1F5 0x5357 +0xD1F6 0xF921 +0xD1F7 0x678F +0xD1F8 0x6960 +0xD1F9 0x6E73 +0xD1FA 0xF922 +0xD1FB 0x7537 +0xD1FC 0xF923 +0xD1FD 0xF924 +0xD1FE 0xF925 +0xD2A1 0x7D0D +0xD2A2 0xF926 +0xD2A3 0xF927 +0xD2A4 0x8872 +0xD2A5 0x56CA +0xD2A6 0x5A18 +0xD2A7 0xF928 +0xD2A8 0xF929 +0xD2A9 0xF92A +0xD2AA 0xF92B +0xD2AB 0xF92C +0xD2AC 0x4E43 +0xD2AD 0xF92D +0xD2AE 0x5167 +0xD2AF 0x5948 +0xD2B0 0x67F0 +0xD2B1 0x8010 +0xD2B2 0xF92E +0xD2B3 0x5973 +0xD2B4 0x5E74 +0xD2B5 0x649A +0xD2B6 0x79CA +0xD2B7 0x5FF5 +0xD2B8 0x606C +0xD2B9 0x62C8 +0xD2BA 0x637B +0xD2BB 0x5BE7 +0xD2BC 0x5BD7 +0xD2BD 0x52AA +0xD2BE 0xF92F +0xD2BF 0x5974 +0xD2C0 0x5F29 +0xD2C1 0x6012 +0xD2C2 0xF930 +0xD2C3 0xF931 +0xD2C4 0xF932 +0xD2C5 0x7459 +0xD2C6 0xF933 +0xD2C7 0xF934 +0xD2C8 0xF935 +0xD2C9 0xF936 +0xD2CA 0xF937 +0xD2CB 0xF938 +0xD2CC 0x99D1 +0xD2CD 0xF939 +0xD2CE 0xF93A +0xD2CF 0xF93B +0xD2D0 0xF93C +0xD2D1 0xF93D +0xD2D2 0xF93E +0xD2D3 0xF93F +0xD2D4 0xF940 +0xD2D5 0xF941 +0xD2D6 0xF942 +0xD2D7 0xF943 +0xD2D8 0x6FC3 +0xD2D9 0xF944 +0xD2DA 0xF945 +0xD2DB 0x81BF +0xD2DC 0x8FB2 +0xD2DD 0x60F1 +0xD2DE 0xF946 +0xD2DF 0xF947 +0xD2E0 0x8166 +0xD2E1 0xF948 +0xD2E2 0xF949 +0xD2E3 0x5C3F +0xD2E4 0xF94A +0xD2E5 0xF94B +0xD2E6 0xF94C +0xD2E7 0xF94D +0xD2E8 0xF94E +0xD2E9 0xF94F +0xD2EA 0xF950 +0xD2EB 0xF951 +0xD2EC 0x5AE9 +0xD2ED 0x8A25 +0xD2EE 0x677B +0xD2EF 0x7D10 +0xD2F0 0xF952 +0xD2F1 0xF953 +0xD2F2 0xF954 +0xD2F3 0xF955 +0xD2F4 0xF956 +0xD2F5 0xF957 +0xD2F6 0x80FD +0xD2F7 0xF958 +0xD2F8 0xF959 +0xD2F9 0x5C3C +0xD2FA 0x6CE5 +0xD2FB 0x533F +0xD2FC 0x6EBA +0xD2FD 0x591A +0xD2FE 0x8336 +0xD3A1 0x4E39 +0xD3A2 0x4EB6 +0xD3A3 0x4F46 +0xD3A4 0x55AE +0xD3A5 0x5718 +0xD3A6 0x58C7 +0xD3A7 0x5F56 +0xD3A8 0x65B7 +0xD3A9 0x65E6 +0xD3AA 0x6A80 +0xD3AB 0x6BB5 +0xD3AC 0x6E4D +0xD3AD 0x77ED +0xD3AE 0x7AEF +0xD3AF 0x7C1E +0xD3B0 0x7DDE +0xD3B1 0x86CB +0xD3B2 0x8892 +0xD3B3 0x9132 +0xD3B4 0x935B +0xD3B5 0x64BB +0xD3B6 0x6FBE +0xD3B7 0x737A +0xD3B8 0x75B8 +0xD3B9 0x9054 +0xD3BA 0x5556 +0xD3BB 0x574D +0xD3BC 0x61BA +0xD3BD 0x64D4 +0xD3BE 0x66C7 +0xD3BF 0x6DE1 +0xD3C0 0x6E5B +0xD3C1 0x6F6D +0xD3C2 0x6FB9 +0xD3C3 0x75F0 +0xD3C4 0x8043 +0xD3C5 0x81BD +0xD3C6 0x8541 +0xD3C7 0x8983 +0xD3C8 0x8AC7 +0xD3C9 0x8B5A +0xD3CA 0x931F +0xD3CB 0x6C93 +0xD3CC 0x7553 +0xD3CD 0x7B54 +0xD3CE 0x8E0F +0xD3CF 0x905D +0xD3D0 0x5510 +0xD3D1 0x5802 +0xD3D2 0x5858 +0xD3D3 0x5E62 +0xD3D4 0x6207 +0xD3D5 0x649E +0xD3D6 0x68E0 +0xD3D7 0x7576 +0xD3D8 0x7CD6 +0xD3D9 0x87B3 +0xD3DA 0x9EE8 +0xD3DB 0x4EE3 +0xD3DC 0x5788 +0xD3DD 0x576E +0xD3DE 0x5927 +0xD3DF 0x5C0D +0xD3E0 0x5CB1 +0xD3E1 0x5E36 +0xD3E2 0x5F85 +0xD3E3 0x6234 +0xD3E4 0x64E1 +0xD3E5 0x73B3 +0xD3E6 0x81FA +0xD3E7 0x888B +0xD3E8 0x8CB8 +0xD3E9 0x968A +0xD3EA 0x9EDB +0xD3EB 0x5B85 +0xD3EC 0x5FB7 +0xD3ED 0x60B3 +0xD3EE 0x5012 +0xD3EF 0x5200 +0xD3F0 0x5230 +0xD3F1 0x5716 +0xD3F2 0x5835 +0xD3F3 0x5857 +0xD3F4 0x5C0E +0xD3F5 0x5C60 +0xD3F6 0x5CF6 +0xD3F7 0x5D8B +0xD3F8 0x5EA6 +0xD3F9 0x5F92 +0xD3FA 0x60BC +0xD3FB 0x6311 +0xD3FC 0x6389 +0xD3FD 0x6417 +0xD3FE 0x6843 +0xD4A1 0x68F9 +0xD4A2 0x6AC2 +0xD4A3 0x6DD8 +0xD4A4 0x6E21 +0xD4A5 0x6ED4 +0xD4A6 0x6FE4 +0xD4A7 0x71FE +0xD4A8 0x76DC +0xD4A9 0x7779 +0xD4AA 0x79B1 +0xD4AB 0x7A3B +0xD4AC 0x8404 +0xD4AD 0x89A9 +0xD4AE 0x8CED +0xD4AF 0x8DF3 +0xD4B0 0x8E48 +0xD4B1 0x9003 +0xD4B2 0x9014 +0xD4B3 0x9053 +0xD4B4 0x90FD +0xD4B5 0x934D +0xD4B6 0x9676 +0xD4B7 0x97DC +0xD4B8 0x6BD2 +0xD4B9 0x7006 +0xD4BA 0x7258 +0xD4BB 0x72A2 +0xD4BC 0x7368 +0xD4BD 0x7763 +0xD4BE 0x79BF +0xD4BF 0x7BE4 +0xD4C0 0x7E9B +0xD4C1 0x8B80 +0xD4C2 0x58A9 +0xD4C3 0x60C7 +0xD4C4 0x6566 +0xD4C5 0x65FD +0xD4C6 0x66BE +0xD4C7 0x6C8C +0xD4C8 0x711E +0xD4C9 0x71C9 +0xD4CA 0x8C5A +0xD4CB 0x9813 +0xD4CC 0x4E6D +0xD4CD 0x7A81 +0xD4CE 0x4EDD +0xD4CF 0x51AC +0xD4D0 0x51CD +0xD4D1 0x52D5 +0xD4D2 0x540C +0xD4D3 0x61A7 +0xD4D4 0x6771 +0xD4D5 0x6850 +0xD4D6 0x68DF +0xD4D7 0x6D1E +0xD4D8 0x6F7C +0xD4D9 0x75BC +0xD4DA 0x77B3 +0xD4DB 0x7AE5 +0xD4DC 0x80F4 +0xD4DD 0x8463 +0xD4DE 0x9285 +0xD4DF 0x515C +0xD4E0 0x6597 +0xD4E1 0x675C +0xD4E2 0x6793 +0xD4E3 0x75D8 +0xD4E4 0x7AC7 +0xD4E5 0x8373 +0xD4E6 0xF95A +0xD4E7 0x8C46 +0xD4E8 0x9017 +0xD4E9 0x982D +0xD4EA 0x5C6F +0xD4EB 0x81C0 +0xD4EC 0x829A +0xD4ED 0x9041 +0xD4EE 0x906F +0xD4EF 0x920D +0xD4F0 0x5F97 +0xD4F1 0x5D9D +0xD4F2 0x6A59 +0xD4F3 0x71C8 +0xD4F4 0x767B +0xD4F5 0x7B49 +0xD4F6 0x85E4 +0xD4F7 0x8B04 +0xD4F8 0x9127 +0xD4F9 0x9A30 +0xD4FA 0x5587 +0xD4FB 0x61F6 +0xD4FC 0xF95B +0xD4FD 0x7669 +0xD4FE 0x7F85 +0xD5A1 0x863F +0xD5A2 0x87BA +0xD5A3 0x88F8 +0xD5A4 0x908F +0xD5A5 0xF95C +0xD5A6 0x6D1B +0xD5A7 0x70D9 +0xD5A8 0x73DE +0xD5A9 0x7D61 +0xD5AA 0x843D +0xD5AB 0xF95D +0xD5AC 0x916A +0xD5AD 0x99F1 +0xD5AE 0xF95E +0xD5AF 0x4E82 +0xD5B0 0x5375 +0xD5B1 0x6B04 +0xD5B2 0x6B12 +0xD5B3 0x703E +0xD5B4 0x721B +0xD5B5 0x862D +0xD5B6 0x9E1E +0xD5B7 0x524C +0xD5B8 0x8FA3 +0xD5B9 0x5D50 +0xD5BA 0x64E5 +0xD5BB 0x652C +0xD5BC 0x6B16 +0xD5BD 0x6FEB +0xD5BE 0x7C43 +0xD5BF 0x7E9C +0xD5C0 0x85CD +0xD5C1 0x8964 +0xD5C2 0x89BD +0xD5C3 0x62C9 +0xD5C4 0x81D8 +0xD5C5 0x881F +0xD5C6 0x5ECA +0xD5C7 0x6717 +0xD5C8 0x6D6A +0xD5C9 0x72FC +0xD5CA 0x7405 +0xD5CB 0x746F +0xD5CC 0x8782 +0xD5CD 0x90DE +0xD5CE 0x4F86 +0xD5CF 0x5D0D +0xD5D0 0x5FA0 +0xD5D1 0x840A +0xD5D2 0x51B7 +0xD5D3 0x63A0 +0xD5D4 0x7565 +0xD5D5 0x4EAE +0xD5D6 0x5006 +0xD5D7 0x5169 +0xD5D8 0x51C9 +0xD5D9 0x6881 +0xD5DA 0x6A11 +0xD5DB 0x7CAE +0xD5DC 0x7CB1 +0xD5DD 0x7CE7 +0xD5DE 0x826F +0xD5DF 0x8AD2 +0xD5E0 0x8F1B +0xD5E1 0x91CF +0xD5E2 0x4FB6 +0xD5E3 0x5137 +0xD5E4 0x52F5 +0xD5E5 0x5442 +0xD5E6 0x5EEC +0xD5E7 0x616E +0xD5E8 0x623E +0xD5E9 0x65C5 +0xD5EA 0x6ADA +0xD5EB 0x6FFE +0xD5EC 0x792A +0xD5ED 0x85DC +0xD5EE 0x8823 +0xD5EF 0x95AD +0xD5F0 0x9A62 +0xD5F1 0x9A6A +0xD5F2 0x9E97 +0xD5F3 0x9ECE +0xD5F4 0x529B +0xD5F5 0x66C6 +0xD5F6 0x6B77 +0xD5F7 0x701D +0xD5F8 0x792B +0xD5F9 0x8F62 +0xD5FA 0x9742 +0xD5FB 0x6190 +0xD5FC 0x6200 +0xD5FD 0x6523 +0xD5FE 0x6F23 +0xD6A1 0x7149 +0xD6A2 0x7489 +0xD6A3 0x7DF4 +0xD6A4 0x806F +0xD6A5 0x84EE +0xD6A6 0x8F26 +0xD6A7 0x9023 +0xD6A8 0x934A +0xD6A9 0x51BD +0xD6AA 0x5217 +0xD6AB 0x52A3 +0xD6AC 0x6D0C +0xD6AD 0x70C8 +0xD6AE 0x88C2 +0xD6AF 0x5EC9 +0xD6B0 0x6582 +0xD6B1 0x6BAE +0xD6B2 0x6FC2 +0xD6B3 0x7C3E +0xD6B4 0x7375 +0xD6B5 0x4EE4 +0xD6B6 0x4F36 +0xD6B7 0x56F9 +0xD6B8 0xF95F +0xD6B9 0x5CBA +0xD6BA 0x5DBA +0xD6BB 0x601C +0xD6BC 0x73B2 +0xD6BD 0x7B2D +0xD6BE 0x7F9A +0xD6BF 0x7FCE +0xD6C0 0x8046 +0xD6C1 0x901E +0xD6C2 0x9234 +0xD6C3 0x96F6 +0xD6C4 0x9748 +0xD6C5 0x9818 +0xD6C6 0x9F61 +0xD6C7 0x4F8B +0xD6C8 0x6FA7 +0xD6C9 0x79AE +0xD6CA 0x91B4 +0xD6CB 0x96B7 +0xD6CC 0x52DE +0xD6CD 0xF960 +0xD6CE 0x6488 +0xD6CF 0x64C4 +0xD6D0 0x6AD3 +0xD6D1 0x6F5E +0xD6D2 0x7018 +0xD6D3 0x7210 +0xD6D4 0x76E7 +0xD6D5 0x8001 +0xD6D6 0x8606 +0xD6D7 0x865C +0xD6D8 0x8DEF +0xD6D9 0x8F05 +0xD6DA 0x9732 +0xD6DB 0x9B6F +0xD6DC 0x9DFA +0xD6DD 0x9E75 +0xD6DE 0x788C +0xD6DF 0x797F +0xD6E0 0x7DA0 +0xD6E1 0x83C9 +0xD6E2 0x9304 +0xD6E3 0x9E7F +0xD6E4 0x9E93 +0xD6E5 0x8AD6 +0xD6E6 0x58DF +0xD6E7 0x5F04 +0xD6E8 0x6727 +0xD6E9 0x7027 +0xD6EA 0x74CF +0xD6EB 0x7C60 +0xD6EC 0x807E +0xD6ED 0x5121 +0xD6EE 0x7028 +0xD6EF 0x7262 +0xD6F0 0x78CA +0xD6F1 0x8CC2 +0xD6F2 0x8CDA +0xD6F3 0x8CF4 +0xD6F4 0x96F7 +0xD6F5 0x4E86 +0xD6F6 0x50DA +0xD6F7 0x5BEE +0xD6F8 0x5ED6 +0xD6F9 0x6599 +0xD6FA 0x71CE +0xD6FB 0x7642 +0xD6FC 0x77AD +0xD6FD 0x804A +0xD6FE 0x84FC +0xD7A1 0x907C +0xD7A2 0x9B27 +0xD7A3 0x9F8D +0xD7A4 0x58D8 +0xD7A5 0x5A41 +0xD7A6 0x5C62 +0xD7A7 0x6A13 +0xD7A8 0x6DDA +0xD7A9 0x6F0F +0xD7AA 0x763B +0xD7AB 0x7D2F +0xD7AC 0x7E37 +0xD7AD 0x851E +0xD7AE 0x8938 +0xD7AF 0x93E4 +0xD7B0 0x964B +0xD7B1 0x5289 +0xD7B2 0x65D2 +0xD7B3 0x67F3 +0xD7B4 0x69B4 +0xD7B5 0x6D41 +0xD7B6 0x6E9C +0xD7B7 0x700F +0xD7B8 0x7409 +0xD7B9 0x7460 +0xD7BA 0x7559 +0xD7BB 0x7624 +0xD7BC 0x786B +0xD7BD 0x8B2C +0xD7BE 0x985E +0xD7BF 0x516D +0xD7C0 0x622E +0xD7C1 0x9678 +0xD7C2 0x4F96 +0xD7C3 0x502B +0xD7C4 0x5D19 +0xD7C5 0x6DEA +0xD7C6 0x7DB8 +0xD7C7 0x8F2A +0xD7C8 0x5F8B +0xD7C9 0x6144 +0xD7CA 0x6817 +0xD7CB 0xF961 +0xD7CC 0x9686 +0xD7CD 0x52D2 +0xD7CE 0x808B +0xD7CF 0x51DC +0xD7D0 0x51CC +0xD7D1 0x695E +0xD7D2 0x7A1C +0xD7D3 0x7DBE +0xD7D4 0x83F1 +0xD7D5 0x9675 +0xD7D6 0x4FDA +0xD7D7 0x5229 +0xD7D8 0x5398 +0xD7D9 0x540F +0xD7DA 0x550E +0xD7DB 0x5C65 +0xD7DC 0x60A7 +0xD7DD 0x674E +0xD7DE 0x68A8 +0xD7DF 0x6D6C +0xD7E0 0x7281 +0xD7E1 0x72F8 +0xD7E2 0x7406 +0xD7E3 0x7483 +0xD7E4 0xF962 +0xD7E5 0x75E2 +0xD7E6 0x7C6C +0xD7E7 0x7F79 +0xD7E8 0x7FB8 +0xD7E9 0x8389 +0xD7EA 0x88CF +0xD7EB 0x88E1 +0xD7EC 0x91CC +0xD7ED 0x91D0 +0xD7EE 0x96E2 +0xD7EF 0x9BC9 +0xD7F0 0x541D +0xD7F1 0x6F7E +0xD7F2 0x71D0 +0xD7F3 0x7498 +0xD7F4 0x85FA +0xD7F5 0x8EAA +0xD7F6 0x96A3 +0xD7F7 0x9C57 +0xD7F8 0x9E9F +0xD7F9 0x6797 +0xD7FA 0x6DCB +0xD7FB 0x7433 +0xD7FC 0x81E8 +0xD7FD 0x9716 +0xD7FE 0x782C +0xD8A1 0x7ACB +0xD8A2 0x7B20 +0xD8A3 0x7C92 +0xD8A4 0x6469 +0xD8A5 0x746A +0xD8A6 0x75F2 +0xD8A7 0x78BC +0xD8A8 0x78E8 +0xD8A9 0x99AC +0xD8AA 0x9B54 +0xD8AB 0x9EBB +0xD8AC 0x5BDE +0xD8AD 0x5E55 +0xD8AE 0x6F20 +0xD8AF 0x819C +0xD8B0 0x83AB +0xD8B1 0x9088 +0xD8B2 0x4E07 +0xD8B3 0x534D +0xD8B4 0x5A29 +0xD8B5 0x5DD2 +0xD8B6 0x5F4E +0xD8B7 0x6162 +0xD8B8 0x633D +0xD8B9 0x6669 +0xD8BA 0x66FC +0xD8BB 0x6EFF +0xD8BC 0x6F2B +0xD8BD 0x7063 +0xD8BE 0x779E +0xD8BF 0x842C +0xD8C0 0x8513 +0xD8C1 0x883B +0xD8C2 0x8F13 +0xD8C3 0x9945 +0xD8C4 0x9C3B +0xD8C5 0x551C +0xD8C6 0x62B9 +0xD8C7 0x672B +0xD8C8 0x6CAB +0xD8C9 0x8309 +0xD8CA 0x896A +0xD8CB 0x977A +0xD8CC 0x4EA1 +0xD8CD 0x5984 +0xD8CE 0x5FD8 +0xD8CF 0x5FD9 +0xD8D0 0x671B +0xD8D1 0x7DB2 +0xD8D2 0x7F54 +0xD8D3 0x8292 +0xD8D4 0x832B +0xD8D5 0x83BD +0xD8D6 0x8F1E +0xD8D7 0x9099 +0xD8D8 0x57CB +0xD8D9 0x59B9 +0xD8DA 0x5A92 +0xD8DB 0x5BD0 +0xD8DC 0x6627 +0xD8DD 0x679A +0xD8DE 0x6885 +0xD8DF 0x6BCF +0xD8E0 0x7164 +0xD8E1 0x7F75 +0xD8E2 0x8CB7 +0xD8E3 0x8CE3 +0xD8E4 0x9081 +0xD8E5 0x9B45 +0xD8E6 0x8108 +0xD8E7 0x8C8A +0xD8E8 0x964C +0xD8E9 0x9A40 +0xD8EA 0x9EA5 +0xD8EB 0x5B5F +0xD8EC 0x6C13 +0xD8ED 0x731B +0xD8EE 0x76F2 +0xD8EF 0x76DF +0xD8F0 0x840C +0xD8F1 0x51AA +0xD8F2 0x8993 +0xD8F3 0x514D +0xD8F4 0x5195 +0xD8F5 0x52C9 +0xD8F6 0x68C9 +0xD8F7 0x6C94 +0xD8F8 0x7704 +0xD8F9 0x7720 +0xD8FA 0x7DBF +0xD8FB 0x7DEC +0xD8FC 0x9762 +0xD8FD 0x9EB5 +0xD8FE 0x6EC5 +0xD9A1 0x8511 +0xD9A2 0x51A5 +0xD9A3 0x540D +0xD9A4 0x547D +0xD9A5 0x660E +0xD9A6 0x669D +0xD9A7 0x6927 +0xD9A8 0x6E9F +0xD9A9 0x76BF +0xD9AA 0x7791 +0xD9AB 0x8317 +0xD9AC 0x84C2 +0xD9AD 0x879F +0xD9AE 0x9169 +0xD9AF 0x9298 +0xD9B0 0x9CF4 +0xD9B1 0x8882 +0xD9B2 0x4FAE +0xD9B3 0x5192 +0xD9B4 0x52DF +0xD9B5 0x59C6 +0xD9B6 0x5E3D +0xD9B7 0x6155 +0xD9B8 0x6478 +0xD9B9 0x6479 +0xD9BA 0x66AE +0xD9BB 0x67D0 +0xD9BC 0x6A21 +0xD9BD 0x6BCD +0xD9BE 0x6BDB +0xD9BF 0x725F +0xD9C0 0x7261 +0xD9C1 0x7441 +0xD9C2 0x7738 +0xD9C3 0x77DB +0xD9C4 0x8017 +0xD9C5 0x82BC +0xD9C6 0x8305 +0xD9C7 0x8B00 +0xD9C8 0x8B28 +0xD9C9 0x8C8C +0xD9CA 0x6728 +0xD9CB 0x6C90 +0xD9CC 0x7267 +0xD9CD 0x76EE +0xD9CE 0x7766 +0xD9CF 0x7A46 +0xD9D0 0x9DA9 +0xD9D1 0x6B7F +0xD9D2 0x6C92 +0xD9D3 0x5922 +0xD9D4 0x6726 +0xD9D5 0x8499 +0xD9D6 0x536F +0xD9D7 0x5893 +0xD9D8 0x5999 +0xD9D9 0x5EDF +0xD9DA 0x63CF +0xD9DB 0x6634 +0xD9DC 0x6773 +0xD9DD 0x6E3A +0xD9DE 0x732B +0xD9DF 0x7AD7 +0xD9E0 0x82D7 +0xD9E1 0x9328 +0xD9E2 0x52D9 +0xD9E3 0x5DEB +0xD9E4 0x61AE +0xD9E5 0x61CB +0xD9E6 0x620A +0xD9E7 0x62C7 +0xD9E8 0x64AB +0xD9E9 0x65E0 +0xD9EA 0x6959 +0xD9EB 0x6B66 +0xD9EC 0x6BCB +0xD9ED 0x7121 +0xD9EE 0x73F7 +0xD9EF 0x755D +0xD9F0 0x7E46 +0xD9F1 0x821E +0xD9F2 0x8302 +0xD9F3 0x856A +0xD9F4 0x8AA3 +0xD9F5 0x8CBF +0xD9F6 0x9727 +0xD9F7 0x9D61 +0xD9F8 0x58A8 +0xD9F9 0x9ED8 +0xD9FA 0x5011 +0xD9FB 0x520E +0xD9FC 0x543B +0xD9FD 0x554F +0xD9FE 0x6587 +0xDAA1 0x6C76 +0xDAA2 0x7D0A +0xDAA3 0x7D0B +0xDAA4 0x805E +0xDAA5 0x868A +0xDAA6 0x9580 +0xDAA7 0x96EF +0xDAA8 0x52FF +0xDAA9 0x6C95 +0xDAAA 0x7269 +0xDAAB 0x5473 +0xDAAC 0x5A9A +0xDAAD 0x5C3E +0xDAAE 0x5D4B +0xDAAF 0x5F4C +0xDAB0 0x5FAE +0xDAB1 0x672A +0xDAB2 0x68B6 +0xDAB3 0x6963 +0xDAB4 0x6E3C +0xDAB5 0x6E44 +0xDAB6 0x7709 +0xDAB7 0x7C73 +0xDAB8 0x7F8E +0xDAB9 0x8587 +0xDABA 0x8B0E +0xDABB 0x8FF7 +0xDABC 0x9761 +0xDABD 0x9EF4 +0xDABE 0x5CB7 +0xDABF 0x60B6 +0xDAC0 0x610D +0xDAC1 0x61AB +0xDAC2 0x654F +0xDAC3 0x65FB +0xDAC4 0x65FC +0xDAC5 0x6C11 +0xDAC6 0x6CEF +0xDAC7 0x739F +0xDAC8 0x73C9 +0xDAC9 0x7DE1 +0xDACA 0x9594 +0xDACB 0x5BC6 +0xDACC 0x871C +0xDACD 0x8B10 +0xDACE 0x525D +0xDACF 0x535A +0xDAD0 0x62CD +0xDAD1 0x640F +0xDAD2 0x64B2 +0xDAD3 0x6734 +0xDAD4 0x6A38 +0xDAD5 0x6CCA +0xDAD6 0x73C0 +0xDAD7 0x749E +0xDAD8 0x7B94 +0xDAD9 0x7C95 +0xDADA 0x7E1B +0xDADB 0x818A +0xDADC 0x8236 +0xDADD 0x8584 +0xDADE 0x8FEB +0xDADF 0x96F9 +0xDAE0 0x99C1 +0xDAE1 0x4F34 +0xDAE2 0x534A +0xDAE3 0x53CD +0xDAE4 0x53DB +0xDAE5 0x62CC +0xDAE6 0x642C +0xDAE7 0x6500 +0xDAE8 0x6591 +0xDAE9 0x69C3 +0xDAEA 0x6CEE +0xDAEB 0x6F58 +0xDAEC 0x73ED +0xDAED 0x7554 +0xDAEE 0x7622 +0xDAEF 0x76E4 +0xDAF0 0x76FC +0xDAF1 0x78D0 +0xDAF2 0x78FB +0xDAF3 0x792C +0xDAF4 0x7D46 +0xDAF5 0x822C +0xDAF6 0x87E0 +0xDAF7 0x8FD4 +0xDAF8 0x9812 +0xDAF9 0x98EF +0xDAFA 0x52C3 +0xDAFB 0x62D4 +0xDAFC 0x64A5 +0xDAFD 0x6E24 +0xDAFE 0x6F51 +0xDBA1 0x767C +0xDBA2 0x8DCB +0xDBA3 0x91B1 +0xDBA4 0x9262 +0xDBA5 0x9AEE +0xDBA6 0x9B43 +0xDBA7 0x5023 +0xDBA8 0x508D +0xDBA9 0x574A +0xDBAA 0x59A8 +0xDBAB 0x5C28 +0xDBAC 0x5E47 +0xDBAD 0x5F77 +0xDBAE 0x623F +0xDBAF 0x653E +0xDBB0 0x65B9 +0xDBB1 0x65C1 +0xDBB2 0x6609 +0xDBB3 0x678B +0xDBB4 0x699C +0xDBB5 0x6EC2 +0xDBB6 0x78C5 +0xDBB7 0x7D21 +0xDBB8 0x80AA +0xDBB9 0x8180 +0xDBBA 0x822B +0xDBBB 0x82B3 +0xDBBC 0x84A1 +0xDBBD 0x868C +0xDBBE 0x8A2A +0xDBBF 0x8B17 +0xDBC0 0x90A6 +0xDBC1 0x9632 +0xDBC2 0x9F90 +0xDBC3 0x500D +0xDBC4 0x4FF3 +0xDBC5 0xF963 +0xDBC6 0x57F9 +0xDBC7 0x5F98 +0xDBC8 0x62DC +0xDBC9 0x6392 +0xDBCA 0x676F +0xDBCB 0x6E43 +0xDBCC 0x7119 +0xDBCD 0x76C3 +0xDBCE 0x80CC +0xDBCF 0x80DA +0xDBD0 0x88F4 +0xDBD1 0x88F5 +0xDBD2 0x8919 +0xDBD3 0x8CE0 +0xDBD4 0x8F29 +0xDBD5 0x914D +0xDBD6 0x966A +0xDBD7 0x4F2F +0xDBD8 0x4F70 +0xDBD9 0x5E1B +0xDBDA 0x67CF +0xDBDB 0x6822 +0xDBDC 0x767D +0xDBDD 0x767E +0xDBDE 0x9B44 +0xDBDF 0x5E61 +0xDBE0 0x6A0A +0xDBE1 0x7169 +0xDBE2 0x71D4 +0xDBE3 0x756A +0xDBE4 0xF964 +0xDBE5 0x7E41 +0xDBE6 0x8543 +0xDBE7 0x85E9 +0xDBE8 0x98DC +0xDBE9 0x4F10 +0xDBEA 0x7B4F +0xDBEB 0x7F70 +0xDBEC 0x95A5 +0xDBED 0x51E1 +0xDBEE 0x5E06 +0xDBEF 0x68B5 +0xDBF0 0x6C3E +0xDBF1 0x6C4E +0xDBF2 0x6CDB +0xDBF3 0x72AF +0xDBF4 0x7BC4 +0xDBF5 0x8303 +0xDBF6 0x6CD5 +0xDBF7 0x743A +0xDBF8 0x50FB +0xDBF9 0x5288 +0xDBFA 0x58C1 +0xDBFB 0x64D8 +0xDBFC 0x6A97 +0xDBFD 0x74A7 +0xDBFE 0x7656 +0xDCA1 0x78A7 +0xDCA2 0x8617 +0xDCA3 0x95E2 +0xDCA4 0x9739 +0xDCA5 0xF965 +0xDCA6 0x535E +0xDCA7 0x5F01 +0xDCA8 0x8B8A +0xDCA9 0x8FA8 +0xDCAA 0x8FAF +0xDCAB 0x908A +0xDCAC 0x5225 +0xDCAD 0x77A5 +0xDCAE 0x9C49 +0xDCAF 0x9F08 +0xDCB0 0x4E19 +0xDCB1 0x5002 +0xDCB2 0x5175 +0xDCB3 0x5C5B +0xDCB4 0x5E77 +0xDCB5 0x661E +0xDCB6 0x663A +0xDCB7 0x67C4 +0xDCB8 0x68C5 +0xDCB9 0x70B3 +0xDCBA 0x7501 +0xDCBB 0x75C5 +0xDCBC 0x79C9 +0xDCBD 0x7ADD +0xDCBE 0x8F27 +0xDCBF 0x9920 +0xDCC0 0x9A08 +0xDCC1 0x4FDD +0xDCC2 0x5821 +0xDCC3 0x5831 +0xDCC4 0x5BF6 +0xDCC5 0x666E +0xDCC6 0x6B65 +0xDCC7 0x6D11 +0xDCC8 0x6E7A +0xDCC9 0x6F7D +0xDCCA 0x73E4 +0xDCCB 0x752B +0xDCCC 0x83E9 +0xDCCD 0x88DC +0xDCCE 0x8913 +0xDCCF 0x8B5C +0xDCD0 0x8F14 +0xDCD1 0x4F0F +0xDCD2 0x50D5 +0xDCD3 0x5310 +0xDCD4 0x535C +0xDCD5 0x5B93 +0xDCD6 0x5FA9 +0xDCD7 0x670D +0xDCD8 0x798F +0xDCD9 0x8179 +0xDCDA 0x832F +0xDCDB 0x8514 +0xDCDC 0x8907 +0xDCDD 0x8986 +0xDCDE 0x8F39 +0xDCDF 0x8F3B +0xDCE0 0x99A5 +0xDCE1 0x9C12 +0xDCE2 0x672C +0xDCE3 0x4E76 +0xDCE4 0x4FF8 +0xDCE5 0x5949 +0xDCE6 0x5C01 +0xDCE7 0x5CEF +0xDCE8 0x5CF0 +0xDCE9 0x6367 +0xDCEA 0x68D2 +0xDCEB 0x70FD +0xDCEC 0x71A2 +0xDCED 0x742B +0xDCEE 0x7E2B +0xDCEF 0x84EC +0xDCF0 0x8702 +0xDCF1 0x9022 +0xDCF2 0x92D2 +0xDCF3 0x9CF3 +0xDCF4 0x4E0D +0xDCF5 0x4ED8 +0xDCF6 0x4FEF +0xDCF7 0x5085 +0xDCF8 0x5256 +0xDCF9 0x526F +0xDCFA 0x5426 +0xDCFB 0x5490 +0xDCFC 0x57E0 +0xDCFD 0x592B +0xDCFE 0x5A66 +0xDDA1 0x5B5A +0xDDA2 0x5B75 +0xDDA3 0x5BCC +0xDDA4 0x5E9C +0xDDA5 0xF966 +0xDDA6 0x6276 +0xDDA7 0x6577 +0xDDA8 0x65A7 +0xDDA9 0x6D6E +0xDDAA 0x6EA5 +0xDDAB 0x7236 +0xDDAC 0x7B26 +0xDDAD 0x7C3F +0xDDAE 0x7F36 +0xDDAF 0x8150 +0xDDB0 0x8151 +0xDDB1 0x819A +0xDDB2 0x8240 +0xDDB3 0x8299 +0xDDB4 0x83A9 +0xDDB5 0x8A03 +0xDDB6 0x8CA0 +0xDDB7 0x8CE6 +0xDDB8 0x8CFB +0xDDB9 0x8D74 +0xDDBA 0x8DBA +0xDDBB 0x90E8 +0xDDBC 0x91DC +0xDDBD 0x961C +0xDDBE 0x9644 +0xDDBF 0x99D9 +0xDDC0 0x9CE7 +0xDDC1 0x5317 +0xDDC2 0x5206 +0xDDC3 0x5429 +0xDDC4 0x5674 +0xDDC5 0x58B3 +0xDDC6 0x5954 +0xDDC7 0x596E +0xDDC8 0x5FFF +0xDDC9 0x61A4 +0xDDCA 0x626E +0xDDCB 0x6610 +0xDDCC 0x6C7E +0xDDCD 0x711A +0xDDCE 0x76C6 +0xDDCF 0x7C89 +0xDDD0 0x7CDE +0xDDD1 0x7D1B +0xDDD2 0x82AC +0xDDD3 0x8CC1 +0xDDD4 0x96F0 +0xDDD5 0xF967 +0xDDD6 0x4F5B +0xDDD7 0x5F17 +0xDDD8 0x5F7F +0xDDD9 0x62C2 +0xDDDA 0x5D29 +0xDDDB 0x670B +0xDDDC 0x68DA +0xDDDD 0x787C +0xDDDE 0x7E43 +0xDDDF 0x9D6C +0xDDE0 0x4E15 +0xDDE1 0x5099 +0xDDE2 0x5315 +0xDDE3 0x532A +0xDDE4 0x5351 +0xDDE5 0x5983 +0xDDE6 0x5A62 +0xDDE7 0x5E87 +0xDDE8 0x60B2 +0xDDE9 0x618A +0xDDEA 0x6249 +0xDDEB 0x6279 +0xDDEC 0x6590 +0xDDED 0x6787 +0xDDEE 0x69A7 +0xDDEF 0x6BD4 +0xDDF0 0x6BD6 +0xDDF1 0x6BD7 +0xDDF2 0x6BD8 +0xDDF3 0x6CB8 +0xDDF4 0xF968 +0xDDF5 0x7435 +0xDDF6 0x75FA +0xDDF7 0x7812 +0xDDF8 0x7891 +0xDDF9 0x79D5 +0xDDFA 0x79D8 +0xDDFB 0x7C83 +0xDDFC 0x7DCB +0xDDFD 0x7FE1 +0xDDFE 0x80A5 +0xDEA1 0x813E +0xDEA2 0x81C2 +0xDEA3 0x83F2 +0xDEA4 0x871A +0xDEA5 0x88E8 +0xDEA6 0x8AB9 +0xDEA7 0x8B6C +0xDEA8 0x8CBB +0xDEA9 0x9119 +0xDEAA 0x975E +0xDEAB 0x98DB +0xDEAC 0x9F3B +0xDEAD 0x56AC +0xDEAE 0x5B2A +0xDEAF 0x5F6C +0xDEB0 0x658C +0xDEB1 0x6AB3 +0xDEB2 0x6BAF +0xDEB3 0x6D5C +0xDEB4 0x6FF1 +0xDEB5 0x7015 +0xDEB6 0x725D +0xDEB7 0x73AD +0xDEB8 0x8CA7 +0xDEB9 0x8CD3 +0xDEBA 0x983B +0xDEBB 0x6191 +0xDEBC 0x6C37 +0xDEBD 0x8058 +0xDEBE 0x9A01 +0xDEBF 0x4E4D +0xDEC0 0x4E8B +0xDEC1 0x4E9B +0xDEC2 0x4ED5 +0xDEC3 0x4F3A +0xDEC4 0x4F3C +0xDEC5 0x4F7F +0xDEC6 0x4FDF +0xDEC7 0x50FF +0xDEC8 0x53F2 +0xDEC9 0x53F8 +0xDECA 0x5506 +0xDECB 0x55E3 +0xDECC 0x56DB +0xDECD 0x58EB +0xDECE 0x5962 +0xDECF 0x5A11 +0xDED0 0x5BEB +0xDED1 0x5BFA +0xDED2 0x5C04 +0xDED3 0x5DF3 +0xDED4 0x5E2B +0xDED5 0x5F99 +0xDED6 0x601D +0xDED7 0x6368 +0xDED8 0x659C +0xDED9 0x65AF +0xDEDA 0x67F6 +0xDEDB 0x67FB +0xDEDC 0x68AD +0xDEDD 0x6B7B +0xDEDE 0x6C99 +0xDEDF 0x6CD7 +0xDEE0 0x6E23 +0xDEE1 0x7009 +0xDEE2 0x7345 +0xDEE3 0x7802 +0xDEE4 0x793E +0xDEE5 0x7940 +0xDEE6 0x7960 +0xDEE7 0x79C1 +0xDEE8 0x7BE9 +0xDEE9 0x7D17 +0xDEEA 0x7D72 +0xDEEB 0x8086 +0xDEEC 0x820D +0xDEED 0x838E +0xDEEE 0x84D1 +0xDEEF 0x86C7 +0xDEF0 0x88DF +0xDEF1 0x8A50 +0xDEF2 0x8A5E +0xDEF3 0x8B1D +0xDEF4 0x8CDC +0xDEF5 0x8D66 +0xDEF6 0x8FAD +0xDEF7 0x90AA +0xDEF8 0x98FC +0xDEF9 0x99DF +0xDEFA 0x9E9D +0xDEFB 0x524A +0xDEFC 0xF969 +0xDEFD 0x6714 +0xDEFE 0xF96A +0xDFA1 0x5098 +0xDFA2 0x522A +0xDFA3 0x5C71 +0xDFA4 0x6563 +0xDFA5 0x6C55 +0xDFA6 0x73CA +0xDFA7 0x7523 +0xDFA8 0x759D +0xDFA9 0x7B97 +0xDFAA 0x849C +0xDFAB 0x9178 +0xDFAC 0x9730 +0xDFAD 0x4E77 +0xDFAE 0x6492 +0xDFAF 0x6BBA +0xDFB0 0x715E +0xDFB1 0x85A9 +0xDFB2 0x4E09 +0xDFB3 0xF96B +0xDFB4 0x6749 +0xDFB5 0x68EE +0xDFB6 0x6E17 +0xDFB7 0x829F +0xDFB8 0x8518 +0xDFB9 0x886B +0xDFBA 0x63F7 +0xDFBB 0x6F81 +0xDFBC 0x9212 +0xDFBD 0x98AF +0xDFBE 0x4E0A +0xDFBF 0x50B7 +0xDFC0 0x50CF +0xDFC1 0x511F +0xDFC2 0x5546 +0xDFC3 0x55AA +0xDFC4 0x5617 +0xDFC5 0x5B40 +0xDFC6 0x5C19 +0xDFC7 0x5CE0 +0xDFC8 0x5E38 +0xDFC9 0x5E8A +0xDFCA 0x5EA0 +0xDFCB 0x5EC2 +0xDFCC 0x60F3 +0xDFCD 0x6851 +0xDFCE 0x6A61 +0xDFCF 0x6E58 +0xDFD0 0x723D +0xDFD1 0x7240 +0xDFD2 0x72C0 +0xDFD3 0x76F8 +0xDFD4 0x7965 +0xDFD5 0x7BB1 +0xDFD6 0x7FD4 +0xDFD7 0x88F3 +0xDFD8 0x89F4 +0xDFD9 0x8A73 +0xDFDA 0x8C61 +0xDFDB 0x8CDE +0xDFDC 0x971C +0xDFDD 0x585E +0xDFDE 0x74BD +0xDFDF 0x8CFD +0xDFE0 0x55C7 +0xDFE1 0xF96C +0xDFE2 0x7A61 +0xDFE3 0x7D22 +0xDFE4 0x8272 +0xDFE5 0x7272 +0xDFE6 0x751F +0xDFE7 0x7525 +0xDFE8 0xF96D +0xDFE9 0x7B19 +0xDFEA 0x5885 +0xDFEB 0x58FB +0xDFEC 0x5DBC +0xDFED 0x5E8F +0xDFEE 0x5EB6 +0xDFEF 0x5F90 +0xDFF0 0x6055 +0xDFF1 0x6292 +0xDFF2 0x637F +0xDFF3 0x654D +0xDFF4 0x6691 +0xDFF5 0x66D9 +0xDFF6 0x66F8 +0xDFF7 0x6816 +0xDFF8 0x68F2 +0xDFF9 0x7280 +0xDFFA 0x745E +0xDFFB 0x7B6E +0xDFFC 0x7D6E +0xDFFD 0x7DD6 +0xDFFE 0x7F72 +0xE0A1 0x80E5 +0xE0A2 0x8212 +0xE0A3 0x85AF +0xE0A4 0x897F +0xE0A5 0x8A93 +0xE0A6 0x901D +0xE0A7 0x92E4 +0xE0A8 0x9ECD +0xE0A9 0x9F20 +0xE0AA 0x5915 +0xE0AB 0x596D +0xE0AC 0x5E2D +0xE0AD 0x60DC +0xE0AE 0x6614 +0xE0AF 0x6673 +0xE0B0 0x6790 +0xE0B1 0x6C50 +0xE0B2 0x6DC5 +0xE0B3 0x6F5F +0xE0B4 0x77F3 +0xE0B5 0x78A9 +0xE0B6 0x84C6 +0xE0B7 0x91CB +0xE0B8 0x932B +0xE0B9 0x4ED9 +0xE0BA 0x50CA +0xE0BB 0x5148 +0xE0BC 0x5584 +0xE0BD 0x5B0B +0xE0BE 0x5BA3 +0xE0BF 0x6247 +0xE0C0 0x657E +0xE0C1 0x65CB +0xE0C2 0x6E32 +0xE0C3 0x717D +0xE0C4 0x7401 +0xE0C5 0x7444 +0xE0C6 0x7487 +0xE0C7 0x74BF +0xE0C8 0x766C +0xE0C9 0x79AA +0xE0CA 0x7DDA +0xE0CB 0x7E55 +0xE0CC 0x7FA8 +0xE0CD 0x817A +0xE0CE 0x81B3 +0xE0CF 0x8239 +0xE0D0 0x861A +0xE0D1 0x87EC +0xE0D2 0x8A75 +0xE0D3 0x8DE3 +0xE0D4 0x9078 +0xE0D5 0x9291 +0xE0D6 0x9425 +0xE0D7 0x994D +0xE0D8 0x9BAE +0xE0D9 0x5368 +0xE0DA 0x5C51 +0xE0DB 0x6954 +0xE0DC 0x6CC4 +0xE0DD 0x6D29 +0xE0DE 0x6E2B +0xE0DF 0x820C +0xE0E0 0x859B +0xE0E1 0x893B +0xE0E2 0x8A2D +0xE0E3 0x8AAA +0xE0E4 0x96EA +0xE0E5 0x9F67 +0xE0E6 0x5261 +0xE0E7 0x66B9 +0xE0E8 0x6BB2 +0xE0E9 0x7E96 +0xE0EA 0x87FE +0xE0EB 0x8D0D +0xE0EC 0x9583 +0xE0ED 0x965D +0xE0EE 0x651D +0xE0EF 0x6D89 +0xE0F0 0x71EE +0xE0F1 0xF96E +0xE0F2 0x57CE +0xE0F3 0x59D3 +0xE0F4 0x5BAC +0xE0F5 0x6027 +0xE0F6 0x60FA +0xE0F7 0x6210 +0xE0F8 0x661F +0xE0F9 0x665F +0xE0FA 0x7329 +0xE0FB 0x73F9 +0xE0FC 0x76DB +0xE0FD 0x7701 +0xE0FE 0x7B6C +0xE1A1 0x8056 +0xE1A2 0x8072 +0xE1A3 0x8165 +0xE1A4 0x8AA0 +0xE1A5 0x9192 +0xE1A6 0x4E16 +0xE1A7 0x52E2 +0xE1A8 0x6B72 +0xE1A9 0x6D17 +0xE1AA 0x7A05 +0xE1AB 0x7B39 +0xE1AC 0x7D30 +0xE1AD 0xF96F +0xE1AE 0x8CB0 +0xE1AF 0x53EC +0xE1B0 0x562F +0xE1B1 0x5851 +0xE1B2 0x5BB5 +0xE1B3 0x5C0F +0xE1B4 0x5C11 +0xE1B5 0x5DE2 +0xE1B6 0x6240 +0xE1B7 0x6383 +0xE1B8 0x6414 +0xE1B9 0x662D +0xE1BA 0x68B3 +0xE1BB 0x6CBC +0xE1BC 0x6D88 +0xE1BD 0x6EAF +0xE1BE 0x701F +0xE1BF 0x70A4 +0xE1C0 0x71D2 +0xE1C1 0x7526 +0xE1C2 0x758F +0xE1C3 0x758E +0xE1C4 0x7619 +0xE1C5 0x7B11 +0xE1C6 0x7BE0 +0xE1C7 0x7C2B +0xE1C8 0x7D20 +0xE1C9 0x7D39 +0xE1CA 0x852C +0xE1CB 0x856D +0xE1CC 0x8607 +0xE1CD 0x8A34 +0xE1CE 0x900D +0xE1CF 0x9061 +0xE1D0 0x90B5 +0xE1D1 0x92B7 +0xE1D2 0x97F6 +0xE1D3 0x9A37 +0xE1D4 0x4FD7 +0xE1D5 0x5C6C +0xE1D6 0x675F +0xE1D7 0x6D91 +0xE1D8 0x7C9F +0xE1D9 0x7E8C +0xE1DA 0x8B16 +0xE1DB 0x8D16 +0xE1DC 0x901F +0xE1DD 0x5B6B +0xE1DE 0x5DFD +0xE1DF 0x640D +0xE1E0 0x84C0 +0xE1E1 0x905C +0xE1E2 0x98E1 +0xE1E3 0x7387 +0xE1E4 0x5B8B +0xE1E5 0x609A +0xE1E6 0x677E +0xE1E7 0x6DDE +0xE1E8 0x8A1F +0xE1E9 0x8AA6 +0xE1EA 0x9001 +0xE1EB 0x980C +0xE1EC 0x5237 +0xE1ED 0xF970 +0xE1EE 0x7051 +0xE1EF 0x788E +0xE1F0 0x9396 +0xE1F1 0x8870 +0xE1F2 0x91D7 +0xE1F3 0x4FEE +0xE1F4 0x53D7 +0xE1F5 0x55FD +0xE1F6 0x56DA +0xE1F7 0x5782 +0xE1F8 0x58FD +0xE1F9 0x5AC2 +0xE1FA 0x5B88 +0xE1FB 0x5CAB +0xE1FC 0x5CC0 +0xE1FD 0x5E25 +0xE1FE 0x6101 +0xE2A1 0x620D +0xE2A2 0x624B +0xE2A3 0x6388 +0xE2A4 0x641C +0xE2A5 0x6536 +0xE2A6 0x6578 +0xE2A7 0x6A39 +0xE2A8 0x6B8A +0xE2A9 0x6C34 +0xE2AA 0x6D19 +0xE2AB 0x6F31 +0xE2AC 0x71E7 +0xE2AD 0x72E9 +0xE2AE 0x7378 +0xE2AF 0x7407 +0xE2B0 0x74B2 +0xE2B1 0x7626 +0xE2B2 0x7761 +0xE2B3 0x79C0 +0xE2B4 0x7A57 +0xE2B5 0x7AEA +0xE2B6 0x7CB9 +0xE2B7 0x7D8F +0xE2B8 0x7DAC +0xE2B9 0x7E61 +0xE2BA 0x7F9E +0xE2BB 0x8129 +0xE2BC 0x8331 +0xE2BD 0x8490 +0xE2BE 0x84DA +0xE2BF 0x85EA +0xE2C0 0x8896 +0xE2C1 0x8AB0 +0xE2C2 0x8B90 +0xE2C3 0x8F38 +0xE2C4 0x9042 +0xE2C5 0x9083 +0xE2C6 0x916C +0xE2C7 0x9296 +0xE2C8 0x92B9 +0xE2C9 0x968B +0xE2CA 0x96A7 +0xE2CB 0x96A8 +0xE2CC 0x96D6 +0xE2CD 0x9700 +0xE2CE 0x9808 +0xE2CF 0x9996 +0xE2D0 0x9AD3 +0xE2D1 0x9B1A +0xE2D2 0x53D4 +0xE2D3 0x587E +0xE2D4 0x5919 +0xE2D5 0x5B70 +0xE2D6 0x5BBF +0xE2D7 0x6DD1 +0xE2D8 0x6F5A +0xE2D9 0x719F +0xE2DA 0x7421 +0xE2DB 0x74B9 +0xE2DC 0x8085 +0xE2DD 0x83FD +0xE2DE 0x5DE1 +0xE2DF 0x5F87 +0xE2E0 0x5FAA +0xE2E1 0x6042 +0xE2E2 0x65EC +0xE2E3 0x6812 +0xE2E4 0x696F +0xE2E5 0x6A53 +0xE2E6 0x6B89 +0xE2E7 0x6D35 +0xE2E8 0x6DF3 +0xE2E9 0x73E3 +0xE2EA 0x76FE +0xE2EB 0x77AC +0xE2EC 0x7B4D +0xE2ED 0x7D14 +0xE2EE 0x8123 +0xE2EF 0x821C +0xE2F0 0x8340 +0xE2F1 0x84F4 +0xE2F2 0x8563 +0xE2F3 0x8A62 +0xE2F4 0x8AC4 +0xE2F5 0x9187 +0xE2F6 0x931E +0xE2F7 0x9806 +0xE2F8 0x99B4 +0xE2F9 0x620C +0xE2FA 0x8853 +0xE2FB 0x8FF0 +0xE2FC 0x9265 +0xE2FD 0x5D07 +0xE2FE 0x5D27 +0xE3A1 0x5D69 +0xE3A2 0x745F +0xE3A3 0x819D +0xE3A4 0x8768 +0xE3A5 0x6FD5 +0xE3A6 0x62FE +0xE3A7 0x7FD2 +0xE3A8 0x8936 +0xE3A9 0x8972 +0xE3AA 0x4E1E +0xE3AB 0x4E58 +0xE3AC 0x50E7 +0xE3AD 0x52DD +0xE3AE 0x5347 +0xE3AF 0x627F +0xE3B0 0x6607 +0xE3B1 0x7E69 +0xE3B2 0x8805 +0xE3B3 0x965E +0xE3B4 0x4F8D +0xE3B5 0x5319 +0xE3B6 0x5636 +0xE3B7 0x59CB +0xE3B8 0x5AA4 +0xE3B9 0x5C38 +0xE3BA 0x5C4E +0xE3BB 0x5C4D +0xE3BC 0x5E02 +0xE3BD 0x5F11 +0xE3BE 0x6043 +0xE3BF 0x65BD +0xE3C0 0x662F +0xE3C1 0x6642 +0xE3C2 0x67BE +0xE3C3 0x67F4 +0xE3C4 0x731C +0xE3C5 0x77E2 +0xE3C6 0x793A +0xE3C7 0x7FC5 +0xE3C8 0x8494 +0xE3C9 0x84CD +0xE3CA 0x8996 +0xE3CB 0x8A66 +0xE3CC 0x8A69 +0xE3CD 0x8AE1 +0xE3CE 0x8C55 +0xE3CF 0x8C7A +0xE3D0 0x57F4 +0xE3D1 0x5BD4 +0xE3D2 0x5F0F +0xE3D3 0x606F +0xE3D4 0x62ED +0xE3D5 0x690D +0xE3D6 0x6B96 +0xE3D7 0x6E5C +0xE3D8 0x7184 +0xE3D9 0x7BD2 +0xE3DA 0x8755 +0xE3DB 0x8B58 +0xE3DC 0x8EFE +0xE3DD 0x98DF +0xE3DE 0x98FE +0xE3DF 0x4F38 +0xE3E0 0x4F81 +0xE3E1 0x4FE1 +0xE3E2 0x547B +0xE3E3 0x5A20 +0xE3E4 0x5BB8 +0xE3E5 0x613C +0xE3E6 0x65B0 +0xE3E7 0x6668 +0xE3E8 0x71FC +0xE3E9 0x7533 +0xE3EA 0x795E +0xE3EB 0x7D33 +0xE3EC 0x814E +0xE3ED 0x81E3 +0xE3EE 0x8398 +0xE3EF 0x85AA +0xE3F0 0x85CE +0xE3F1 0x8703 +0xE3F2 0x8A0A +0xE3F3 0x8EAB +0xE3F4 0x8F9B +0xE3F5 0xF971 +0xE3F6 0x8FC5 +0xE3F7 0x5931 +0xE3F8 0x5BA4 +0xE3F9 0x5BE6 +0xE3FA 0x6089 +0xE3FB 0x5BE9 +0xE3FC 0x5C0B +0xE3FD 0x5FC3 +0xE3FE 0x6C81 +0xE4A1 0xF972 +0xE4A2 0x6DF1 +0xE4A3 0x700B +0xE4A4 0x751A +0xE4A5 0x82AF +0xE4A6 0x8AF6 +0xE4A7 0x4EC0 +0xE4A8 0x5341 +0xE4A9 0xF973 +0xE4AA 0x96D9 +0xE4AB 0x6C0F +0xE4AC 0x4E9E +0xE4AD 0x4FC4 +0xE4AE 0x5152 +0xE4AF 0x555E +0xE4B0 0x5A25 +0xE4B1 0x5CE8 +0xE4B2 0x6211 +0xE4B3 0x7259 +0xE4B4 0x82BD +0xE4B5 0x83AA +0xE4B6 0x86FE +0xE4B7 0x8859 +0xE4B8 0x8A1D +0xE4B9 0x963F +0xE4BA 0x96C5 +0xE4BB 0x9913 +0xE4BC 0x9D09 +0xE4BD 0x9D5D +0xE4BE 0x580A +0xE4BF 0x5CB3 +0xE4C0 0x5DBD +0xE4C1 0x5E44 +0xE4C2 0x60E1 +0xE4C3 0x6115 +0xE4C4 0x63E1 +0xE4C5 0x6A02 +0xE4C6 0x6E25 +0xE4C7 0x9102 +0xE4C8 0x9354 +0xE4C9 0x984E +0xE4CA 0x9C10 +0xE4CB 0x9F77 +0xE4CC 0x5B89 +0xE4CD 0x5CB8 +0xE4CE 0x6309 +0xE4CF 0x664F +0xE4D0 0x6848 +0xE4D1 0x773C +0xE4D2 0x96C1 +0xE4D3 0x978D +0xE4D4 0x9854 +0xE4D5 0x9B9F +0xE4D6 0x65A1 +0xE4D7 0x8B01 +0xE4D8 0x8ECB +0xE4D9 0x95BC +0xE4DA 0x5535 +0xE4DB 0x5CA9 +0xE4DC 0x5DD6 +0xE4DD 0x5EB5 +0xE4DE 0x6697 +0xE4DF 0x764C +0xE4E0 0x83F4 +0xE4E1 0x95C7 +0xE4E2 0x58D3 +0xE4E3 0x62BC +0xE4E4 0x72CE +0xE4E5 0x9D28 +0xE4E6 0x4EF0 +0xE4E7 0x592E +0xE4E8 0x600F +0xE4E9 0x663B +0xE4EA 0x6B83 +0xE4EB 0x79E7 +0xE4EC 0x9D26 +0xE4ED 0x5393 +0xE4EE 0x54C0 +0xE4EF 0x57C3 +0xE4F0 0x5D16 +0xE4F1 0x611B +0xE4F2 0x66D6 +0xE4F3 0x6DAF +0xE4F4 0x788D +0xE4F5 0x827E +0xE4F6 0x9698 +0xE4F7 0x9744 +0xE4F8 0x5384 +0xE4F9 0x627C +0xE4FA 0x6396 +0xE4FB 0x6DB2 +0xE4FC 0x7E0A +0xE4FD 0x814B +0xE4FE 0x984D +0xE5A1 0x6AFB +0xE5A2 0x7F4C +0xE5A3 0x9DAF +0xE5A4 0x9E1A +0xE5A5 0x4E5F +0xE5A6 0x503B +0xE5A7 0x51B6 +0xE5A8 0x591C +0xE5A9 0x60F9 +0xE5AA 0x63F6 +0xE5AB 0x6930 +0xE5AC 0x723A +0xE5AD 0x8036 +0xE5AE 0xF974 +0xE5AF 0x91CE +0xE5B0 0x5F31 +0xE5B1 0xF975 +0xE5B2 0xF976 +0xE5B3 0x7D04 +0xE5B4 0x82E5 +0xE5B5 0x846F +0xE5B6 0x84BB +0xE5B7 0x85E5 +0xE5B8 0x8E8D +0xE5B9 0xF977 +0xE5BA 0x4F6F +0xE5BB 0xF978 +0xE5BC 0xF979 +0xE5BD 0x58E4 +0xE5BE 0x5B43 +0xE5BF 0x6059 +0xE5C0 0x63DA +0xE5C1 0x6518 +0xE5C2 0x656D +0xE5C3 0x6698 +0xE5C4 0xF97A +0xE5C5 0x694A +0xE5C6 0x6A23 +0xE5C7 0x6D0B +0xE5C8 0x7001 +0xE5C9 0x716C +0xE5CA 0x75D2 +0xE5CB 0x760D +0xE5CC 0x79B3 +0xE5CD 0x7A70 +0xE5CE 0xF97B +0xE5CF 0x7F8A +0xE5D0 0xF97C +0xE5D1 0x8944 +0xE5D2 0xF97D +0xE5D3 0x8B93 +0xE5D4 0x91C0 +0xE5D5 0x967D +0xE5D6 0xF97E +0xE5D7 0x990A +0xE5D8 0x5704 +0xE5D9 0x5FA1 +0xE5DA 0x65BC +0xE5DB 0x6F01 +0xE5DC 0x7600 +0xE5DD 0x79A6 +0xE5DE 0x8A9E +0xE5DF 0x99AD +0xE5E0 0x9B5A +0xE5E1 0x9F6C +0xE5E2 0x5104 +0xE5E3 0x61B6 +0xE5E4 0x6291 +0xE5E5 0x6A8D +0xE5E6 0x81C6 +0xE5E7 0x5043 +0xE5E8 0x5830 +0xE5E9 0x5F66 +0xE5EA 0x7109 +0xE5EB 0x8A00 +0xE5EC 0x8AFA +0xE5ED 0x5B7C +0xE5EE 0x8616 +0xE5EF 0x4FFA +0xE5F0 0x513C +0xE5F1 0x56B4 +0xE5F2 0x5944 +0xE5F3 0x63A9 +0xE5F4 0x6DF9 +0xE5F5 0x5DAA +0xE5F6 0x696D +0xE5F7 0x5186 +0xE5F8 0x4E88 +0xE5F9 0x4F59 +0xE5FA 0xF97F +0xE5FB 0xF980 +0xE5FC 0xF981 +0xE5FD 0x5982 +0xE5FE 0xF982 +0xE6A1 0xF983 +0xE6A2 0x6B5F +0xE6A3 0x6C5D +0xE6A4 0xF984 +0xE6A5 0x74B5 +0xE6A6 0x7916 +0xE6A7 0xF985 +0xE6A8 0x8207 +0xE6A9 0x8245 +0xE6AA 0x8339 +0xE6AB 0x8F3F +0xE6AC 0x8F5D +0xE6AD 0xF986 +0xE6AE 0x9918 +0xE6AF 0xF987 +0xE6B0 0xF988 +0xE6B1 0xF989 +0xE6B2 0x4EA6 +0xE6B3 0xF98A +0xE6B4 0x57DF +0xE6B5 0x5F79 +0xE6B6 0x6613 +0xE6B7 0xF98B +0xE6B8 0xF98C +0xE6B9 0x75AB +0xE6BA 0x7E79 +0xE6BB 0x8B6F +0xE6BC 0xF98D +0xE6BD 0x9006 +0xE6BE 0x9A5B +0xE6BF 0x56A5 +0xE6C0 0x5827 +0xE6C1 0x59F8 +0xE6C2 0x5A1F +0xE6C3 0x5BB4 +0xE6C4 0xF98E +0xE6C5 0x5EF6 +0xE6C6 0xF98F +0xE6C7 0xF990 +0xE6C8 0x6350 +0xE6C9 0x633B +0xE6CA 0xF991 +0xE6CB 0x693D +0xE6CC 0x6C87 +0xE6CD 0x6CBF +0xE6CE 0x6D8E +0xE6CF 0x6D93 +0xE6D0 0x6DF5 +0xE6D1 0x6F14 +0xE6D2 0xF992 +0xE6D3 0x70DF +0xE6D4 0x7136 +0xE6D5 0x7159 +0xE6D6 0xF993 +0xE6D7 0x71C3 +0xE6D8 0x71D5 +0xE6D9 0xF994 +0xE6DA 0x784F +0xE6DB 0x786F +0xE6DC 0xF995 +0xE6DD 0x7B75 +0xE6DE 0x7DE3 +0xE6DF 0xF996 +0xE6E0 0x7E2F +0xE6E1 0xF997 +0xE6E2 0x884D +0xE6E3 0x8EDF +0xE6E4 0xF998 +0xE6E5 0xF999 +0xE6E6 0xF99A +0xE6E7 0x925B +0xE6E8 0xF99B +0xE6E9 0x9CF6 +0xE6EA 0xF99C +0xE6EB 0xF99D +0xE6EC 0xF99E +0xE6ED 0x6085 +0xE6EE 0x6D85 +0xE6EF 0xF99F +0xE6F0 0x71B1 +0xE6F1 0xF9A0 +0xE6F2 0xF9A1 +0xE6F3 0x95B1 +0xE6F4 0x53AD +0xE6F5 0xF9A2 +0xE6F6 0xF9A3 +0xE6F7 0xF9A4 +0xE6F8 0x67D3 +0xE6F9 0xF9A5 +0xE6FA 0x708E +0xE6FB 0x7130 +0xE6FC 0x7430 +0xE6FD 0x8276 +0xE6FE 0x82D2 +0xE7A1 0xF9A6 +0xE7A2 0x95BB +0xE7A3 0x9AE5 +0xE7A4 0x9E7D +0xE7A5 0x66C4 +0xE7A6 0xF9A7 +0xE7A7 0x71C1 +0xE7A8 0x8449 +0xE7A9 0xF9A8 +0xE7AA 0xF9A9 +0xE7AB 0x584B +0xE7AC 0xF9AA +0xE7AD 0xF9AB +0xE7AE 0x5DB8 +0xE7AF 0x5F71 +0xE7B0 0xF9AC +0xE7B1 0x6620 +0xE7B2 0x668E +0xE7B3 0x6979 +0xE7B4 0x69AE +0xE7B5 0x6C38 +0xE7B6 0x6CF3 +0xE7B7 0x6E36 +0xE7B8 0x6F41 +0xE7B9 0x6FDA +0xE7BA 0x701B +0xE7BB 0x702F +0xE7BC 0x7150 +0xE7BD 0x71DF +0xE7BE 0x7370 +0xE7BF 0xF9AD +0xE7C0 0x745B +0xE7C1 0xF9AE +0xE7C2 0x74D4 +0xE7C3 0x76C8 +0xE7C4 0x7A4E +0xE7C5 0x7E93 +0xE7C6 0xF9AF +0xE7C7 0xF9B0 +0xE7C8 0x82F1 +0xE7C9 0x8A60 +0xE7CA 0x8FCE +0xE7CB 0xF9B1 +0xE7CC 0x9348 +0xE7CD 0xF9B2 +0xE7CE 0x9719 +0xE7CF 0xF9B3 +0xE7D0 0xF9B4 +0xE7D1 0x4E42 +0xE7D2 0x502A +0xE7D3 0xF9B5 +0xE7D4 0x5208 +0xE7D5 0x53E1 +0xE7D6 0x66F3 +0xE7D7 0x6C6D +0xE7D8 0x6FCA +0xE7D9 0x730A +0xE7DA 0x777F +0xE7DB 0x7A62 +0xE7DC 0x82AE +0xE7DD 0x85DD +0xE7DE 0x8602 +0xE7DF 0xF9B6 +0xE7E0 0x88D4 +0xE7E1 0x8A63 +0xE7E2 0x8B7D +0xE7E3 0x8C6B +0xE7E4 0xF9B7 +0xE7E5 0x92B3 +0xE7E6 0xF9B8 +0xE7E7 0x9713 +0xE7E8 0x9810 +0xE7E9 0x4E94 +0xE7EA 0x4F0D +0xE7EB 0x4FC9 +0xE7EC 0x50B2 +0xE7ED 0x5348 +0xE7EE 0x543E +0xE7EF 0x5433 +0xE7F0 0x55DA +0xE7F1 0x5862 +0xE7F2 0x58BA +0xE7F3 0x5967 +0xE7F4 0x5A1B +0xE7F5 0x5BE4 +0xE7F6 0x609F +0xE7F7 0xF9B9 +0xE7F8 0x61CA +0xE7F9 0x6556 +0xE7FA 0x65FF +0xE7FB 0x6664 +0xE7FC 0x68A7 +0xE7FD 0x6C5A +0xE7FE 0x6FB3 +0xE8A1 0x70CF +0xE8A2 0x71AC +0xE8A3 0x7352 +0xE8A4 0x7B7D +0xE8A5 0x8708 +0xE8A6 0x8AA4 +0xE8A7 0x9C32 +0xE8A8 0x9F07 +0xE8A9 0x5C4B +0xE8AA 0x6C83 +0xE8AB 0x7344 +0xE8AC 0x7389 +0xE8AD 0x923A +0xE8AE 0x6EAB +0xE8AF 0x7465 +0xE8B0 0x761F +0xE8B1 0x7A69 +0xE8B2 0x7E15 +0xE8B3 0x860A +0xE8B4 0x5140 +0xE8B5 0x58C5 +0xE8B6 0x64C1 +0xE8B7 0x74EE +0xE8B8 0x7515 +0xE8B9 0x7670 +0xE8BA 0x7FC1 +0xE8BB 0x9095 +0xE8BC 0x96CD +0xE8BD 0x9954 +0xE8BE 0x6E26 +0xE8BF 0x74E6 +0xE8C0 0x7AA9 +0xE8C1 0x7AAA +0xE8C2 0x81E5 +0xE8C3 0x86D9 +0xE8C4 0x8778 +0xE8C5 0x8A1B +0xE8C6 0x5A49 +0xE8C7 0x5B8C +0xE8C8 0x5B9B +0xE8C9 0x68A1 +0xE8CA 0x6900 +0xE8CB 0x6D63 +0xE8CC 0x73A9 +0xE8CD 0x7413 +0xE8CE 0x742C +0xE8CF 0x7897 +0xE8D0 0x7DE9 +0xE8D1 0x7FEB +0xE8D2 0x8118 +0xE8D3 0x8155 +0xE8D4 0x839E +0xE8D5 0x8C4C +0xE8D6 0x962E +0xE8D7 0x9811 +0xE8D8 0x66F0 +0xE8D9 0x5F80 +0xE8DA 0x65FA +0xE8DB 0x6789 +0xE8DC 0x6C6A +0xE8DD 0x738B +0xE8DE 0x502D +0xE8DF 0x5A03 +0xE8E0 0x6B6A +0xE8E1 0x77EE +0xE8E2 0x5916 +0xE8E3 0x5D6C +0xE8E4 0x5DCD +0xE8E5 0x7325 +0xE8E6 0x754F +0xE8E7 0xF9BA +0xE8E8 0xF9BB +0xE8E9 0x50E5 +0xE8EA 0x51F9 +0xE8EB 0x582F +0xE8EC 0x592D +0xE8ED 0x5996 +0xE8EE 0x59DA +0xE8EF 0x5BE5 +0xE8F0 0xF9BC +0xE8F1 0xF9BD +0xE8F2 0x5DA2 +0xE8F3 0x62D7 +0xE8F4 0x6416 +0xE8F5 0x6493 +0xE8F6 0x64FE +0xE8F7 0xF9BE +0xE8F8 0x66DC +0xE8F9 0xF9BF +0xE8FA 0x6A48 +0xE8FB 0xF9C0 +0xE8FC 0x71FF +0xE8FD 0x7464 +0xE8FE 0xF9C1 +0xE9A1 0x7A88 +0xE9A2 0x7AAF +0xE9A3 0x7E47 +0xE9A4 0x7E5E +0xE9A5 0x8000 +0xE9A6 0x8170 +0xE9A7 0xF9C2 +0xE9A8 0x87EF +0xE9A9 0x8981 +0xE9AA 0x8B20 +0xE9AB 0x9059 +0xE9AC 0xF9C3 +0xE9AD 0x9080 +0xE9AE 0x9952 +0xE9AF 0x617E +0xE9B0 0x6B32 +0xE9B1 0x6D74 +0xE9B2 0x7E1F +0xE9B3 0x8925 +0xE9B4 0x8FB1 +0xE9B5 0x4FD1 +0xE9B6 0x50AD +0xE9B7 0x5197 +0xE9B8 0x52C7 +0xE9B9 0x57C7 +0xE9BA 0x5889 +0xE9BB 0x5BB9 +0xE9BC 0x5EB8 +0xE9BD 0x6142 +0xE9BE 0x6995 +0xE9BF 0x6D8C +0xE9C0 0x6E67 +0xE9C1 0x6EB6 +0xE9C2 0x7194 +0xE9C3 0x7462 +0xE9C4 0x7528 +0xE9C5 0x752C +0xE9C6 0x8073 +0xE9C7 0x8338 +0xE9C8 0x84C9 +0xE9C9 0x8E0A +0xE9CA 0x9394 +0xE9CB 0x93DE +0xE9CC 0xF9C4 +0xE9CD 0x4E8E +0xE9CE 0x4F51 +0xE9CF 0x5076 +0xE9D0 0x512A +0xE9D1 0x53C8 +0xE9D2 0x53CB +0xE9D3 0x53F3 +0xE9D4 0x5B87 +0xE9D5 0x5BD3 +0xE9D6 0x5C24 +0xE9D7 0x611A +0xE9D8 0x6182 +0xE9D9 0x65F4 +0xE9DA 0x725B +0xE9DB 0x7397 +0xE9DC 0x7440 +0xE9DD 0x76C2 +0xE9DE 0x7950 +0xE9DF 0x7991 +0xE9E0 0x79B9 +0xE9E1 0x7D06 +0xE9E2 0x7FBD +0xE9E3 0x828B +0xE9E4 0x85D5 +0xE9E5 0x865E +0xE9E6 0x8FC2 +0xE9E7 0x9047 +0xE9E8 0x90F5 +0xE9E9 0x91EA +0xE9EA 0x9685 +0xE9EB 0x96E8 +0xE9EC 0x96E9 +0xE9ED 0x52D6 +0xE9EE 0x5F67 +0xE9EF 0x65ED +0xE9F0 0x6631 +0xE9F1 0x682F +0xE9F2 0x715C +0xE9F3 0x7A36 +0xE9F4 0x90C1 +0xE9F5 0x980A +0xE9F6 0x4E91 +0xE9F7 0xF9C5 +0xE9F8 0x6A52 +0xE9F9 0x6B9E +0xE9FA 0x6F90 +0xE9FB 0x7189 +0xE9FC 0x8018 +0xE9FD 0x82B8 +0xE9FE 0x8553 +0xEAA1 0x904B +0xEAA2 0x9695 +0xEAA3 0x96F2 +0xEAA4 0x97FB +0xEAA5 0x851A +0xEAA6 0x9B31 +0xEAA7 0x4E90 +0xEAA8 0x718A +0xEAA9 0x96C4 +0xEAAA 0x5143 +0xEAAB 0x539F +0xEAAC 0x54E1 +0xEAAD 0x5713 +0xEAAE 0x5712 +0xEAAF 0x57A3 +0xEAB0 0x5A9B +0xEAB1 0x5AC4 +0xEAB2 0x5BC3 +0xEAB3 0x6028 +0xEAB4 0x613F +0xEAB5 0x63F4 +0xEAB6 0x6C85 +0xEAB7 0x6D39 +0xEAB8 0x6E72 +0xEAB9 0x6E90 +0xEABA 0x7230 +0xEABB 0x733F +0xEABC 0x7457 +0xEABD 0x82D1 +0xEABE 0x8881 +0xEABF 0x8F45 +0xEAC0 0x9060 +0xEAC1 0xF9C6 +0xEAC2 0x9662 +0xEAC3 0x9858 +0xEAC4 0x9D1B +0xEAC5 0x6708 +0xEAC6 0x8D8A +0xEAC7 0x925E +0xEAC8 0x4F4D +0xEAC9 0x5049 +0xEACA 0x50DE +0xEACB 0x5371 +0xEACC 0x570D +0xEACD 0x59D4 +0xEACE 0x5A01 +0xEACF 0x5C09 +0xEAD0 0x6170 +0xEAD1 0x6690 +0xEAD2 0x6E2D +0xEAD3 0x7232 +0xEAD4 0x744B +0xEAD5 0x7DEF +0xEAD6 0x80C3 +0xEAD7 0x840E +0xEAD8 0x8466 +0xEAD9 0x853F +0xEADA 0x875F +0xEADB 0x885B +0xEADC 0x8918 +0xEADD 0x8B02 +0xEADE 0x9055 +0xEADF 0x97CB +0xEAE0 0x9B4F +0xEAE1 0x4E73 +0xEAE2 0x4F91 +0xEAE3 0x5112 +0xEAE4 0x516A +0xEAE5 0xF9C7 +0xEAE6 0x552F +0xEAE7 0x55A9 +0xEAE8 0x5B7A +0xEAE9 0x5BA5 +0xEAEA 0x5E7C +0xEAEB 0x5E7D +0xEAEC 0x5EBE +0xEAED 0x60A0 +0xEAEE 0x60DF +0xEAEF 0x6108 +0xEAF0 0x6109 +0xEAF1 0x63C4 +0xEAF2 0x6538 +0xEAF3 0x6709 +0xEAF4 0xF9C8 +0xEAF5 0x67D4 +0xEAF6 0x67DA +0xEAF7 0xF9C9 +0xEAF8 0x6961 +0xEAF9 0x6962 +0xEAFA 0x6CB9 +0xEAFB 0x6D27 +0xEAFC 0xF9CA +0xEAFD 0x6E38 +0xEAFE 0xF9CB +0xEBA1 0x6FE1 +0xEBA2 0x7336 +0xEBA3 0x7337 +0xEBA4 0xF9CC +0xEBA5 0x745C +0xEBA6 0x7531 +0xEBA7 0xF9CD +0xEBA8 0x7652 +0xEBA9 0xF9CE +0xEBAA 0xF9CF +0xEBAB 0x7DAD +0xEBAC 0x81FE +0xEBAD 0x8438 +0xEBAE 0x88D5 +0xEBAF 0x8A98 +0xEBB0 0x8ADB +0xEBB1 0x8AED +0xEBB2 0x8E30 +0xEBB3 0x8E42 +0xEBB4 0x904A +0xEBB5 0x903E +0xEBB6 0x907A +0xEBB7 0x9149 +0xEBB8 0x91C9 +0xEBB9 0x936E +0xEBBA 0xF9D0 +0xEBBB 0xF9D1 +0xEBBC 0x5809 +0xEBBD 0xF9D2 +0xEBBE 0x6BD3 +0xEBBF 0x8089 +0xEBC0 0x80B2 +0xEBC1 0xF9D3 +0xEBC2 0xF9D4 +0xEBC3 0x5141 +0xEBC4 0x596B +0xEBC5 0x5C39 +0xEBC6 0xF9D5 +0xEBC7 0xF9D6 +0xEBC8 0x6F64 +0xEBC9 0x73A7 +0xEBCA 0x80E4 +0xEBCB 0x8D07 +0xEBCC 0xF9D7 +0xEBCD 0x9217 +0xEBCE 0x958F +0xEBCF 0xF9D8 +0xEBD0 0xF9D9 +0xEBD1 0xF9DA +0xEBD2 0xF9DB +0xEBD3 0x807F +0xEBD4 0x620E +0xEBD5 0x701C +0xEBD6 0x7D68 +0xEBD7 0x878D +0xEBD8 0xF9DC +0xEBD9 0x57A0 +0xEBDA 0x6069 +0xEBDB 0x6147 +0xEBDC 0x6BB7 +0xEBDD 0x8ABE +0xEBDE 0x9280 +0xEBDF 0x96B1 +0xEBE0 0x4E59 +0xEBE1 0x541F +0xEBE2 0x6DEB +0xEBE3 0x852D +0xEBE4 0x9670 +0xEBE5 0x97F3 +0xEBE6 0x98EE +0xEBE7 0x63D6 +0xEBE8 0x6CE3 +0xEBE9 0x9091 +0xEBEA 0x51DD +0xEBEB 0x61C9 +0xEBEC 0x81BA +0xEBED 0x9DF9 +0xEBEE 0x4F9D +0xEBEF 0x501A +0xEBF0 0x5100 +0xEBF1 0x5B9C +0xEBF2 0x610F +0xEBF3 0x61FF +0xEBF4 0x64EC +0xEBF5 0x6905 +0xEBF6 0x6BC5 +0xEBF7 0x7591 +0xEBF8 0x77E3 +0xEBF9 0x7FA9 +0xEBFA 0x8264 +0xEBFB 0x858F +0xEBFC 0x87FB +0xEBFD 0x8863 +0xEBFE 0x8ABC +0xECA1 0x8B70 +0xECA2 0x91AB +0xECA3 0x4E8C +0xECA4 0x4EE5 +0xECA5 0x4F0A +0xECA6 0xF9DD +0xECA7 0xF9DE +0xECA8 0x5937 +0xECA9 0x59E8 +0xECAA 0xF9DF +0xECAB 0x5DF2 +0xECAC 0x5F1B +0xECAD 0x5F5B +0xECAE 0x6021 +0xECAF 0xF9E0 +0xECB0 0xF9E1 +0xECB1 0xF9E2 +0xECB2 0xF9E3 +0xECB3 0x723E +0xECB4 0x73E5 +0xECB5 0xF9E4 +0xECB6 0x7570 +0xECB7 0x75CD +0xECB8 0xF9E5 +0xECB9 0x79FB +0xECBA 0xF9E6 +0xECBB 0x800C +0xECBC 0x8033 +0xECBD 0x8084 +0xECBE 0x82E1 +0xECBF 0x8351 +0xECC0 0xF9E7 +0xECC1 0xF9E8 +0xECC2 0x8CBD +0xECC3 0x8CB3 +0xECC4 0x9087 +0xECC5 0xF9E9 +0xECC6 0xF9EA +0xECC7 0x98F4 +0xECC8 0x990C +0xECC9 0xF9EB +0xECCA 0xF9EC +0xECCB 0x7037 +0xECCC 0x76CA +0xECCD 0x7FCA +0xECCE 0x7FCC +0xECCF 0x7FFC +0xECD0 0x8B1A +0xECD1 0x4EBA +0xECD2 0x4EC1 +0xECD3 0x5203 +0xECD4 0x5370 +0xECD5 0xF9ED +0xECD6 0x54BD +0xECD7 0x56E0 +0xECD8 0x59FB +0xECD9 0x5BC5 +0xECDA 0x5F15 +0xECDB 0x5FCD +0xECDC 0x6E6E +0xECDD 0xF9EE +0xECDE 0xF9EF +0xECDF 0x7D6A +0xECE0 0x8335 +0xECE1 0xF9F0 +0xECE2 0x8693 +0xECE3 0x8A8D +0xECE4 0xF9F1 +0xECE5 0x976D +0xECE6 0x9777 +0xECE7 0xF9F2 +0xECE8 0xF9F3 +0xECE9 0x4E00 +0xECEA 0x4F5A +0xECEB 0x4F7E +0xECEC 0x58F9 +0xECED 0x65E5 +0xECEE 0x6EA2 +0xECEF 0x9038 +0xECF0 0x93B0 +0xECF1 0x99B9 +0xECF2 0x4EFB +0xECF3 0x58EC +0xECF4 0x598A +0xECF5 0x59D9 +0xECF6 0x6041 +0xECF7 0xF9F4 +0xECF8 0xF9F5 +0xECF9 0x7A14 +0xECFA 0xF9F6 +0xECFB 0x834F +0xECFC 0x8CC3 +0xECFD 0x5165 +0xECFE 0x5344 +0xEDA1 0xF9F7 +0xEDA2 0xF9F8 +0xEDA3 0xF9F9 +0xEDA4 0x4ECD +0xEDA5 0x5269 +0xEDA6 0x5B55 +0xEDA7 0x82BF +0xEDA8 0x4ED4 +0xEDA9 0x523A +0xEDAA 0x54A8 +0xEDAB 0x59C9 +0xEDAC 0x59FF +0xEDAD 0x5B50 +0xEDAE 0x5B57 +0xEDAF 0x5B5C +0xEDB0 0x6063 +0xEDB1 0x6148 +0xEDB2 0x6ECB +0xEDB3 0x7099 +0xEDB4 0x716E +0xEDB5 0x7386 +0xEDB6 0x74F7 +0xEDB7 0x75B5 +0xEDB8 0x78C1 +0xEDB9 0x7D2B +0xEDBA 0x8005 +0xEDBB 0x81EA +0xEDBC 0x8328 +0xEDBD 0x8517 +0xEDBE 0x85C9 +0xEDBF 0x8AEE +0xEDC0 0x8CC7 +0xEDC1 0x96CC +0xEDC2 0x4F5C +0xEDC3 0x52FA +0xEDC4 0x56BC +0xEDC5 0x65AB +0xEDC6 0x6628 +0xEDC7 0x707C +0xEDC8 0x70B8 +0xEDC9 0x7235 +0xEDCA 0x7DBD +0xEDCB 0x828D +0xEDCC 0x914C +0xEDCD 0x96C0 +0xEDCE 0x9D72 +0xEDCF 0x5B71 +0xEDD0 0x68E7 +0xEDD1 0x6B98 +0xEDD2 0x6F7A +0xEDD3 0x76DE +0xEDD4 0x5C91 +0xEDD5 0x66AB +0xEDD6 0x6F5B +0xEDD7 0x7BB4 +0xEDD8 0x7C2A +0xEDD9 0x8836 +0xEDDA 0x96DC +0xEDDB 0x4E08 +0xEDDC 0x4ED7 +0xEDDD 0x5320 +0xEDDE 0x5834 +0xEDDF 0x58BB +0xEDE0 0x58EF +0xEDE1 0x596C +0xEDE2 0x5C07 +0xEDE3 0x5E33 +0xEDE4 0x5E84 +0xEDE5 0x5F35 +0xEDE6 0x638C +0xEDE7 0x66B2 +0xEDE8 0x6756 +0xEDE9 0x6A1F +0xEDEA 0x6AA3 +0xEDEB 0x6B0C +0xEDEC 0x6F3F +0xEDED 0x7246 +0xEDEE 0xF9FA +0xEDEF 0x7350 +0xEDF0 0x748B +0xEDF1 0x7AE0 +0xEDF2 0x7CA7 +0xEDF3 0x8178 +0xEDF4 0x81DF +0xEDF5 0x81E7 +0xEDF6 0x838A +0xEDF7 0x846C +0xEDF8 0x8523 +0xEDF9 0x8594 +0xEDFA 0x85CF +0xEDFB 0x88DD +0xEDFC 0x8D13 +0xEDFD 0x91AC +0xEDFE 0x9577 +0xEEA1 0x969C +0xEEA2 0x518D +0xEEA3 0x54C9 +0xEEA4 0x5728 +0xEEA5 0x5BB0 +0xEEA6 0x624D +0xEEA7 0x6750 +0xEEA8 0x683D +0xEEA9 0x6893 +0xEEAA 0x6E3D +0xEEAB 0x6ED3 +0xEEAC 0x707D +0xEEAD 0x7E21 +0xEEAE 0x88C1 +0xEEAF 0x8CA1 +0xEEB0 0x8F09 +0xEEB1 0x9F4B +0xEEB2 0x9F4E +0xEEB3 0x722D +0xEEB4 0x7B8F +0xEEB5 0x8ACD +0xEEB6 0x931A +0xEEB7 0x4F47 +0xEEB8 0x4F4E +0xEEB9 0x5132 +0xEEBA 0x5480 +0xEEBB 0x59D0 +0xEEBC 0x5E95 +0xEEBD 0x62B5 +0xEEBE 0x6775 +0xEEBF 0x696E +0xEEC0 0x6A17 +0xEEC1 0x6CAE +0xEEC2 0x6E1A +0xEEC3 0x72D9 +0xEEC4 0x732A +0xEEC5 0x75BD +0xEEC6 0x7BB8 +0xEEC7 0x7D35 +0xEEC8 0x82E7 +0xEEC9 0x83F9 +0xEECA 0x8457 +0xEECB 0x85F7 +0xEECC 0x8A5B +0xEECD 0x8CAF +0xEECE 0x8E87 +0xEECF 0x9019 +0xEED0 0x90B8 +0xEED1 0x96CE +0xEED2 0x9F5F +0xEED3 0x52E3 +0xEED4 0x540A +0xEED5 0x5AE1 +0xEED6 0x5BC2 +0xEED7 0x6458 +0xEED8 0x6575 +0xEED9 0x6EF4 +0xEEDA 0x72C4 +0xEEDB 0xF9FB +0xEEDC 0x7684 +0xEEDD 0x7A4D +0xEEDE 0x7B1B +0xEEDF 0x7C4D +0xEEE0 0x7E3E +0xEEE1 0x7FDF +0xEEE2 0x837B +0xEEE3 0x8B2B +0xEEE4 0x8CCA +0xEEE5 0x8D64 +0xEEE6 0x8DE1 +0xEEE7 0x8E5F +0xEEE8 0x8FEA +0xEEE9 0x8FF9 +0xEEEA 0x9069 +0xEEEB 0x93D1 +0xEEEC 0x4F43 +0xEEED 0x4F7A +0xEEEE 0x50B3 +0xEEEF 0x5168 +0xEEF0 0x5178 +0xEEF1 0x524D +0xEEF2 0x526A +0xEEF3 0x5861 +0xEEF4 0x587C +0xEEF5 0x5960 +0xEEF6 0x5C08 +0xEEF7 0x5C55 +0xEEF8 0x5EDB +0xEEF9 0x609B +0xEEFA 0x6230 +0xEEFB 0x6813 +0xEEFC 0x6BBF +0xEEFD 0x6C08 +0xEEFE 0x6FB1 +0xEFA1 0x714E +0xEFA2 0x7420 +0xEFA3 0x7530 +0xEFA4 0x7538 +0xEFA5 0x7551 +0xEFA6 0x7672 +0xEFA7 0x7B4C +0xEFA8 0x7B8B +0xEFA9 0x7BAD +0xEFAA 0x7BC6 +0xEFAB 0x7E8F +0xEFAC 0x8A6E +0xEFAD 0x8F3E +0xEFAE 0x8F49 +0xEFAF 0x923F +0xEFB0 0x9293 +0xEFB1 0x9322 +0xEFB2 0x942B +0xEFB3 0x96FB +0xEFB4 0x985A +0xEFB5 0x986B +0xEFB6 0x991E +0xEFB7 0x5207 +0xEFB8 0x622A +0xEFB9 0x6298 +0xEFBA 0x6D59 +0xEFBB 0x7664 +0xEFBC 0x7ACA +0xEFBD 0x7BC0 +0xEFBE 0x7D76 +0xEFBF 0x5360 +0xEFC0 0x5CBE +0xEFC1 0x5E97 +0xEFC2 0x6F38 +0xEFC3 0x70B9 +0xEFC4 0x7C98 +0xEFC5 0x9711 +0xEFC6 0x9B8E +0xEFC7 0x9EDE +0xEFC8 0x63A5 +0xEFC9 0x647A +0xEFCA 0x8776 +0xEFCB 0x4E01 +0xEFCC 0x4E95 +0xEFCD 0x4EAD +0xEFCE 0x505C +0xEFCF 0x5075 +0xEFD0 0x5448 +0xEFD1 0x59C3 +0xEFD2 0x5B9A +0xEFD3 0x5E40 +0xEFD4 0x5EAD +0xEFD5 0x5EF7 +0xEFD6 0x5F81 +0xEFD7 0x60C5 +0xEFD8 0x633A +0xEFD9 0x653F +0xEFDA 0x6574 +0xEFDB 0x65CC +0xEFDC 0x6676 +0xEFDD 0x6678 +0xEFDE 0x67FE +0xEFDF 0x6968 +0xEFE0 0x6A89 +0xEFE1 0x6B63 +0xEFE2 0x6C40 +0xEFE3 0x6DC0 +0xEFE4 0x6DE8 +0xEFE5 0x6E1F +0xEFE6 0x6E5E +0xEFE7 0x701E +0xEFE8 0x70A1 +0xEFE9 0x738E +0xEFEA 0x73FD +0xEFEB 0x753A +0xEFEC 0x775B +0xEFED 0x7887 +0xEFEE 0x798E +0xEFEF 0x7A0B +0xEFF0 0x7A7D +0xEFF1 0x7CBE +0xEFF2 0x7D8E +0xEFF3 0x8247 +0xEFF4 0x8A02 +0xEFF5 0x8AEA +0xEFF6 0x8C9E +0xEFF7 0x912D +0xEFF8 0x914A +0xEFF9 0x91D8 +0xEFFA 0x9266 +0xEFFB 0x92CC +0xEFFC 0x9320 +0xEFFD 0x9706 +0xEFFE 0x9756 +0xF0A1 0x975C +0xF0A2 0x9802 +0xF0A3 0x9F0E +0xF0A4 0x5236 +0xF0A5 0x5291 +0xF0A6 0x557C +0xF0A7 0x5824 +0xF0A8 0x5E1D +0xF0A9 0x5F1F +0xF0AA 0x608C +0xF0AB 0x63D0 +0xF0AC 0x68AF +0xF0AD 0x6FDF +0xF0AE 0x796D +0xF0AF 0x7B2C +0xF0B0 0x81CD +0xF0B1 0x85BA +0xF0B2 0x88FD +0xF0B3 0x8AF8 +0xF0B4 0x8E44 +0xF0B5 0x918D +0xF0B6 0x9664 +0xF0B7 0x969B +0xF0B8 0x973D +0xF0B9 0x984C +0xF0BA 0x9F4A +0xF0BB 0x4FCE +0xF0BC 0x5146 +0xF0BD 0x51CB +0xF0BE 0x52A9 +0xF0BF 0x5632 +0xF0C0 0x5F14 +0xF0C1 0x5F6B +0xF0C2 0x63AA +0xF0C3 0x64CD +0xF0C4 0x65E9 +0xF0C5 0x6641 +0xF0C6 0x66FA +0xF0C7 0x66F9 +0xF0C8 0x671D +0xF0C9 0x689D +0xF0CA 0x68D7 +0xF0CB 0x69FD +0xF0CC 0x6F15 +0xF0CD 0x6F6E +0xF0CE 0x7167 +0xF0CF 0x71E5 +0xF0D0 0x722A +0xF0D1 0x74AA +0xF0D2 0x773A +0xF0D3 0x7956 +0xF0D4 0x795A +0xF0D5 0x79DF +0xF0D6 0x7A20 +0xF0D7 0x7A95 +0xF0D8 0x7C97 +0xF0D9 0x7CDF +0xF0DA 0x7D44 +0xF0DB 0x7E70 +0xF0DC 0x8087 +0xF0DD 0x85FB +0xF0DE 0x86A4 +0xF0DF 0x8A54 +0xF0E0 0x8ABF +0xF0E1 0x8D99 +0xF0E2 0x8E81 +0xF0E3 0x9020 +0xF0E4 0x906D +0xF0E5 0x91E3 +0xF0E6 0x963B +0xF0E7 0x96D5 +0xF0E8 0x9CE5 +0xF0E9 0x65CF +0xF0EA 0x7C07 +0xF0EB 0x8DB3 +0xF0EC 0x93C3 +0xF0ED 0x5B58 +0xF0EE 0x5C0A +0xF0EF 0x5352 +0xF0F0 0x62D9 +0xF0F1 0x731D +0xF0F2 0x5027 +0xF0F3 0x5B97 +0xF0F4 0x5F9E +0xF0F5 0x60B0 +0xF0F6 0x616B +0xF0F7 0x68D5 +0xF0F8 0x6DD9 +0xF0F9 0x742E +0xF0FA 0x7A2E +0xF0FB 0x7D42 +0xF0FC 0x7D9C +0xF0FD 0x7E31 +0xF0FE 0x816B +0xF1A1 0x8E2A +0xF1A2 0x8E35 +0xF1A3 0x937E +0xF1A4 0x9418 +0xF1A5 0x4F50 +0xF1A6 0x5750 +0xF1A7 0x5DE6 +0xF1A8 0x5EA7 +0xF1A9 0x632B +0xF1AA 0x7F6A +0xF1AB 0x4E3B +0xF1AC 0x4F4F +0xF1AD 0x4F8F +0xF1AE 0x505A +0xF1AF 0x59DD +0xF1B0 0x80C4 +0xF1B1 0x546A +0xF1B2 0x5468 +0xF1B3 0x55FE +0xF1B4 0x594F +0xF1B5 0x5B99 +0xF1B6 0x5DDE +0xF1B7 0x5EDA +0xF1B8 0x665D +0xF1B9 0x6731 +0xF1BA 0x67F1 +0xF1BB 0x682A +0xF1BC 0x6CE8 +0xF1BD 0x6D32 +0xF1BE 0x6E4A +0xF1BF 0x6F8D +0xF1C0 0x70B7 +0xF1C1 0x73E0 +0xF1C2 0x7587 +0xF1C3 0x7C4C +0xF1C4 0x7D02 +0xF1C5 0x7D2C +0xF1C6 0x7DA2 +0xF1C7 0x821F +0xF1C8 0x86DB +0xF1C9 0x8A3B +0xF1CA 0x8A85 +0xF1CB 0x8D70 +0xF1CC 0x8E8A +0xF1CD 0x8F33 +0xF1CE 0x9031 +0xF1CF 0x914E +0xF1D0 0x9152 +0xF1D1 0x9444 +0xF1D2 0x99D0 +0xF1D3 0x7AF9 +0xF1D4 0x7CA5 +0xF1D5 0x4FCA +0xF1D6 0x5101 +0xF1D7 0x51C6 +0xF1D8 0x57C8 +0xF1D9 0x5BEF +0xF1DA 0x5CFB +0xF1DB 0x6659 +0xF1DC 0x6A3D +0xF1DD 0x6D5A +0xF1DE 0x6E96 +0xF1DF 0x6FEC +0xF1E0 0x710C +0xF1E1 0x756F +0xF1E2 0x7AE3 +0xF1E3 0x8822 +0xF1E4 0x9021 +0xF1E5 0x9075 +0xF1E6 0x96CB +0xF1E7 0x99FF +0xF1E8 0x8301 +0xF1E9 0x4E2D +0xF1EA 0x4EF2 +0xF1EB 0x8846 +0xF1EC 0x91CD +0xF1ED 0x537D +0xF1EE 0x6ADB +0xF1EF 0x696B +0xF1F0 0x6C41 +0xF1F1 0x847A +0xF1F2 0x589E +0xF1F3 0x618E +0xF1F4 0x66FE +0xF1F5 0x62EF +0xF1F6 0x70DD +0xF1F7 0x7511 +0xF1F8 0x75C7 +0xF1F9 0x7E52 +0xF1FA 0x84B8 +0xF1FB 0x8B49 +0xF1FC 0x8D08 +0xF1FD 0x4E4B +0xF1FE 0x53EA +0xF2A1 0x54AB +0xF2A2 0x5730 +0xF2A3 0x5740 +0xF2A4 0x5FD7 +0xF2A5 0x6301 +0xF2A6 0x6307 +0xF2A7 0x646F +0xF2A8 0x652F +0xF2A9 0x65E8 +0xF2AA 0x667A +0xF2AB 0x679D +0xF2AC 0x67B3 +0xF2AD 0x6B62 +0xF2AE 0x6C60 +0xF2AF 0x6C9A +0xF2B0 0x6F2C +0xF2B1 0x77E5 +0xF2B2 0x7825 +0xF2B3 0x7949 +0xF2B4 0x7957 +0xF2B5 0x7D19 +0xF2B6 0x80A2 +0xF2B7 0x8102 +0xF2B8 0x81F3 +0xF2B9 0x829D +0xF2BA 0x82B7 +0xF2BB 0x8718 +0xF2BC 0x8A8C +0xF2BD 0xF9FC +0xF2BE 0x8D04 +0xF2BF 0x8DBE +0xF2C0 0x9072 +0xF2C1 0x76F4 +0xF2C2 0x7A19 +0xF2C3 0x7A37 +0xF2C4 0x7E54 +0xF2C5 0x8077 +0xF2C6 0x5507 +0xF2C7 0x55D4 +0xF2C8 0x5875 +0xF2C9 0x632F +0xF2CA 0x6422 +0xF2CB 0x6649 +0xF2CC 0x664B +0xF2CD 0x686D +0xF2CE 0x699B +0xF2CF 0x6B84 +0xF2D0 0x6D25 +0xF2D1 0x6EB1 +0xF2D2 0x73CD +0xF2D3 0x7468 +0xF2D4 0x74A1 +0xF2D5 0x755B +0xF2D6 0x75B9 +0xF2D7 0x76E1 +0xF2D8 0x771E +0xF2D9 0x778B +0xF2DA 0x79E6 +0xF2DB 0x7E09 +0xF2DC 0x7E1D +0xF2DD 0x81FB +0xF2DE 0x852F +0xF2DF 0x8897 +0xF2E0 0x8A3A +0xF2E1 0x8CD1 +0xF2E2 0x8EEB +0xF2E3 0x8FB0 +0xF2E4 0x9032 +0xF2E5 0x93AD +0xF2E6 0x9663 +0xF2E7 0x9673 +0xF2E8 0x9707 +0xF2E9 0x4F84 +0xF2EA 0x53F1 +0xF2EB 0x59EA +0xF2EC 0x5AC9 +0xF2ED 0x5E19 +0xF2EE 0x684E +0xF2EF 0x74C6 +0xF2F0 0x75BE +0xF2F1 0x79E9 +0xF2F2 0x7A92 +0xF2F3 0x81A3 +0xF2F4 0x86ED +0xF2F5 0x8CEA +0xF2F6 0x8DCC +0xF2F7 0x8FED +0xF2F8 0x659F +0xF2F9 0x6715 +0xF2FA 0xF9FD +0xF2FB 0x57F7 +0xF2FC 0x6F57 +0xF2FD 0x7DDD +0xF2FE 0x8F2F +0xF3A1 0x93F6 +0xF3A2 0x96C6 +0xF3A3 0x5FB5 +0xF3A4 0x61F2 +0xF3A5 0x6F84 +0xF3A6 0x4E14 +0xF3A7 0x4F98 +0xF3A8 0x501F +0xF3A9 0x53C9 +0xF3AA 0x55DF +0xF3AB 0x5D6F +0xF3AC 0x5DEE +0xF3AD 0x6B21 +0xF3AE 0x6B64 +0xF3AF 0x78CB +0xF3B0 0x7B9A +0xF3B1 0xF9FE +0xF3B2 0x8E49 +0xF3B3 0x8ECA +0xF3B4 0x906E +0xF3B5 0x6349 +0xF3B6 0x643E +0xF3B7 0x7740 +0xF3B8 0x7A84 +0xF3B9 0x932F +0xF3BA 0x947F +0xF3BB 0x9F6A +0xF3BC 0x64B0 +0xF3BD 0x6FAF +0xF3BE 0x71E6 +0xF3BF 0x74A8 +0xF3C0 0x74DA +0xF3C1 0x7AC4 +0xF3C2 0x7C12 +0xF3C3 0x7E82 +0xF3C4 0x7CB2 +0xF3C5 0x7E98 +0xF3C6 0x8B9A +0xF3C7 0x8D0A +0xF3C8 0x947D +0xF3C9 0x9910 +0xF3CA 0x994C +0xF3CB 0x5239 +0xF3CC 0x5BDF +0xF3CD 0x64E6 +0xF3CE 0x672D +0xF3CF 0x7D2E +0xF3D0 0x50ED +0xF3D1 0x53C3 +0xF3D2 0x5879 +0xF3D3 0x6158 +0xF3D4 0x6159 +0xF3D5 0x61FA +0xF3D6 0x65AC +0xF3D7 0x7AD9 +0xF3D8 0x8B92 +0xF3D9 0x8B96 +0xF3DA 0x5009 +0xF3DB 0x5021 +0xF3DC 0x5275 +0xF3DD 0x5531 +0xF3DE 0x5A3C +0xF3DF 0x5EE0 +0xF3E0 0x5F70 +0xF3E1 0x6134 +0xF3E2 0x655E +0xF3E3 0x660C +0xF3E4 0x6636 +0xF3E5 0x66A2 +0xF3E6 0x69CD +0xF3E7 0x6EC4 +0xF3E8 0x6F32 +0xF3E9 0x7316 +0xF3EA 0x7621 +0xF3EB 0x7A93 +0xF3EC 0x8139 +0xF3ED 0x8259 +0xF3EE 0x83D6 +0xF3EF 0x84BC +0xF3F0 0x50B5 +0xF3F1 0x57F0 +0xF3F2 0x5BC0 +0xF3F3 0x5BE8 +0xF3F4 0x5F69 +0xF3F5 0x63A1 +0xF3F6 0x7826 +0xF3F7 0x7DB5 +0xF3F8 0x83DC +0xF3F9 0x8521 +0xF3FA 0x91C7 +0xF3FB 0x91F5 +0xF3FC 0x518A +0xF3FD 0x67F5 +0xF3FE 0x7B56 +0xF4A1 0x8CAC +0xF4A2 0x51C4 +0xF4A3 0x59BB +0xF4A4 0x60BD +0xF4A5 0x8655 +0xF4A6 0x501C +0xF4A7 0xF9FF +0xF4A8 0x5254 +0xF4A9 0x5C3A +0xF4AA 0x617D +0xF4AB 0x621A +0xF4AC 0x62D3 +0xF4AD 0x64F2 +0xF4AE 0x65A5 +0xF4AF 0x6ECC +0xF4B0 0x7620 +0xF4B1 0x810A +0xF4B2 0x8E60 +0xF4B3 0x965F +0xF4B4 0x96BB +0xF4B5 0x4EDF +0xF4B6 0x5343 +0xF4B7 0x5598 +0xF4B8 0x5929 +0xF4B9 0x5DDD +0xF4BA 0x64C5 +0xF4BB 0x6CC9 +0xF4BC 0x6DFA +0xF4BD 0x7394 +0xF4BE 0x7A7F +0xF4BF 0x821B +0xF4C0 0x85A6 +0xF4C1 0x8CE4 +0xF4C2 0x8E10 +0xF4C3 0x9077 +0xF4C4 0x91E7 +0xF4C5 0x95E1 +0xF4C6 0x9621 +0xF4C7 0x97C6 +0xF4C8 0x51F8 +0xF4C9 0x54F2 +0xF4CA 0x5586 +0xF4CB 0x5FB9 +0xF4CC 0x64A4 +0xF4CD 0x6F88 +0xF4CE 0x7DB4 +0xF4CF 0x8F1F +0xF4D0 0x8F4D +0xF4D1 0x9435 +0xF4D2 0x50C9 +0xF4D3 0x5C16 +0xF4D4 0x6CBE +0xF4D5 0x6DFB +0xF4D6 0x751B +0xF4D7 0x77BB +0xF4D8 0x7C3D +0xF4D9 0x7C64 +0xF4DA 0x8A79 +0xF4DB 0x8AC2 +0xF4DC 0x581E +0xF4DD 0x59BE +0xF4DE 0x5E16 +0xF4DF 0x6377 +0xF4E0 0x7252 +0xF4E1 0x758A +0xF4E2 0x776B +0xF4E3 0x8ADC +0xF4E4 0x8CBC +0xF4E5 0x8F12 +0xF4E6 0x5EF3 +0xF4E7 0x6674 +0xF4E8 0x6DF8 +0xF4E9 0x807D +0xF4EA 0x83C1 +0xF4EB 0x8ACB +0xF4EC 0x9751 +0xF4ED 0x9BD6 +0xF4EE 0xFA00 +0xF4EF 0x5243 +0xF4F0 0x66FF +0xF4F1 0x6D95 +0xF4F2 0x6EEF +0xF4F3 0x7DE0 +0xF4F4 0x8AE6 +0xF4F5 0x902E +0xF4F6 0x905E +0xF4F7 0x9AD4 +0xF4F8 0x521D +0xF4F9 0x527F +0xF4FA 0x54E8 +0xF4FB 0x6194 +0xF4FC 0x6284 +0xF4FD 0x62DB +0xF4FE 0x68A2 +0xF5A1 0x6912 +0xF5A2 0x695A +0xF5A3 0x6A35 +0xF5A4 0x7092 +0xF5A5 0x7126 +0xF5A6 0x785D +0xF5A7 0x7901 +0xF5A8 0x790E +0xF5A9 0x79D2 +0xF5AA 0x7A0D +0xF5AB 0x8096 +0xF5AC 0x8278 +0xF5AD 0x82D5 +0xF5AE 0x8349 +0xF5AF 0x8549 +0xF5B0 0x8C82 +0xF5B1 0x8D85 +0xF5B2 0x9162 +0xF5B3 0x918B +0xF5B4 0x91AE +0xF5B5 0x4FC3 +0xF5B6 0x56D1 +0xF5B7 0x71ED +0xF5B8 0x77D7 +0xF5B9 0x8700 +0xF5BA 0x89F8 +0xF5BB 0x5BF8 +0xF5BC 0x5FD6 +0xF5BD 0x6751 +0xF5BE 0x90A8 +0xF5BF 0x53E2 +0xF5C0 0x585A +0xF5C1 0x5BF5 +0xF5C2 0x60A4 +0xF5C3 0x6181 +0xF5C4 0x6460 +0xF5C5 0x7E3D +0xF5C6 0x8070 +0xF5C7 0x8525 +0xF5C8 0x9283 +0xF5C9 0x64AE +0xF5CA 0x50AC +0xF5CB 0x5D14 +0xF5CC 0x6700 +0xF5CD 0x589C +0xF5CE 0x62BD +0xF5CF 0x63A8 +0xF5D0 0x690E +0xF5D1 0x6978 +0xF5D2 0x6A1E +0xF5D3 0x6E6B +0xF5D4 0x76BA +0xF5D5 0x79CB +0xF5D6 0x82BB +0xF5D7 0x8429 +0xF5D8 0x8ACF +0xF5D9 0x8DA8 +0xF5DA 0x8FFD +0xF5DB 0x9112 +0xF5DC 0x914B +0xF5DD 0x919C +0xF5DE 0x9310 +0xF5DF 0x9318 +0xF5E0 0x939A +0xF5E1 0x96DB +0xF5E2 0x9A36 +0xF5E3 0x9C0D +0xF5E4 0x4E11 +0xF5E5 0x755C +0xF5E6 0x795D +0xF5E7 0x7AFA +0xF5E8 0x7B51 +0xF5E9 0x7BC9 +0xF5EA 0x7E2E +0xF5EB 0x84C4 +0xF5EC 0x8E59 +0xF5ED 0x8E74 +0xF5EE 0x8EF8 +0xF5EF 0x9010 +0xF5F0 0x6625 +0xF5F1 0x693F +0xF5F2 0x7443 +0xF5F3 0x51FA +0xF5F4 0x672E +0xF5F5 0x9EDC +0xF5F6 0x5145 +0xF5F7 0x5FE0 +0xF5F8 0x6C96 +0xF5F9 0x87F2 +0xF5FA 0x885D +0xF5FB 0x8877 +0xF5FC 0x60B4 +0xF5FD 0x81B5 +0xF5FE 0x8403 +0xF6A1 0x8D05 +0xF6A2 0x53D6 +0xF6A3 0x5439 +0xF6A4 0x5634 +0xF6A5 0x5A36 +0xF6A6 0x5C31 +0xF6A7 0x708A +0xF6A8 0x7FE0 +0xF6A9 0x805A +0xF6AA 0x8106 +0xF6AB 0x81ED +0xF6AC 0x8DA3 +0xF6AD 0x9189 +0xF6AE 0x9A5F +0xF6AF 0x9DF2 +0xF6B0 0x5074 +0xF6B1 0x4EC4 +0xF6B2 0x53A0 +0xF6B3 0x60FB +0xF6B4 0x6E2C +0xF6B5 0x5C64 +0xF6B6 0x4F88 +0xF6B7 0x5024 +0xF6B8 0x55E4 +0xF6B9 0x5CD9 +0xF6BA 0x5E5F +0xF6BB 0x6065 +0xF6BC 0x6894 +0xF6BD 0x6CBB +0xF6BE 0x6DC4 +0xF6BF 0x71BE +0xF6C0 0x75D4 +0xF6C1 0x75F4 +0xF6C2 0x7661 +0xF6C3 0x7A1A +0xF6C4 0x7A49 +0xF6C5 0x7DC7 +0xF6C6 0x7DFB +0xF6C7 0x7F6E +0xF6C8 0x81F4 +0xF6C9 0x86A9 +0xF6CA 0x8F1C +0xF6CB 0x96C9 +0xF6CC 0x99B3 +0xF6CD 0x9F52 +0xF6CE 0x5247 +0xF6CF 0x52C5 +0xF6D0 0x98ED +0xF6D1 0x89AA +0xF6D2 0x4E03 +0xF6D3 0x67D2 +0xF6D4 0x6F06 +0xF6D5 0x4FB5 +0xF6D6 0x5BE2 +0xF6D7 0x6795 +0xF6D8 0x6C88 +0xF6D9 0x6D78 +0xF6DA 0x741B +0xF6DB 0x7827 +0xF6DC 0x91DD +0xF6DD 0x937C +0xF6DE 0x87C4 +0xF6DF 0x79E4 +0xF6E0 0x7A31 +0xF6E1 0x5FEB +0xF6E2 0x4ED6 +0xF6E3 0x54A4 +0xF6E4 0x553E +0xF6E5 0x58AE +0xF6E6 0x59A5 +0xF6E7 0x60F0 +0xF6E8 0x6253 +0xF6E9 0x62D6 +0xF6EA 0x6736 +0xF6EB 0x6955 +0xF6EC 0x8235 +0xF6ED 0x9640 +0xF6EE 0x99B1 +0xF6EF 0x99DD +0xF6F0 0x502C +0xF6F1 0x5353 +0xF6F2 0x5544 +0xF6F3 0x577C +0xF6F4 0xFA01 +0xF6F5 0x6258 +0xF6F6 0xFA02 +0xF6F7 0x64E2 +0xF6F8 0x666B +0xF6F9 0x67DD +0xF6FA 0x6FC1 +0xF6FB 0x6FEF +0xF6FC 0x7422 +0xF6FD 0x7438 +0xF6FE 0x8A17 +0xF7A1 0x9438 +0xF7A2 0x5451 +0xF7A3 0x5606 +0xF7A4 0x5766 +0xF7A5 0x5F48 +0xF7A6 0x619A +0xF7A7 0x6B4E +0xF7A8 0x7058 +0xF7A9 0x70AD +0xF7AA 0x7DBB +0xF7AB 0x8A95 +0xF7AC 0x596A +0xF7AD 0x812B +0xF7AE 0x63A2 +0xF7AF 0x7708 +0xF7B0 0x803D +0xF7B1 0x8CAA +0xF7B2 0x5854 +0xF7B3 0x642D +0xF7B4 0x69BB +0xF7B5 0x5B95 +0xF7B6 0x5E11 +0xF7B7 0x6E6F +0xF7B8 0xFA03 +0xF7B9 0x8569 +0xF7BA 0x514C +0xF7BB 0x53F0 +0xF7BC 0x592A +0xF7BD 0x6020 +0xF7BE 0x614B +0xF7BF 0x6B86 +0xF7C0 0x6C70 +0xF7C1 0x6CF0 +0xF7C2 0x7B1E +0xF7C3 0x80CE +0xF7C4 0x82D4 +0xF7C5 0x8DC6 +0xF7C6 0x90B0 +0xF7C7 0x98B1 +0xF7C8 0xFA04 +0xF7C9 0x64C7 +0xF7CA 0x6FA4 +0xF7CB 0x6491 +0xF7CC 0x6504 +0xF7CD 0x514E +0xF7CE 0x5410 +0xF7CF 0x571F +0xF7D0 0x8A0E +0xF7D1 0x615F +0xF7D2 0x6876 +0xF7D3 0xFA05 +0xF7D4 0x75DB +0xF7D5 0x7B52 +0xF7D6 0x7D71 +0xF7D7 0x901A +0xF7D8 0x5806 +0xF7D9 0x69CC +0xF7DA 0x817F +0xF7DB 0x892A +0xF7DC 0x9000 +0xF7DD 0x9839 +0xF7DE 0x5078 +0xF7DF 0x5957 +0xF7E0 0x59AC +0xF7E1 0x6295 +0xF7E2 0x900F +0xF7E3 0x9B2A +0xF7E4 0x615D +0xF7E5 0x7279 +0xF7E6 0x95D6 +0xF7E7 0x5761 +0xF7E8 0x5A46 +0xF7E9 0x5DF4 +0xF7EA 0x628A +0xF7EB 0x64AD +0xF7EC 0x64FA +0xF7ED 0x6777 +0xF7EE 0x6CE2 +0xF7EF 0x6D3E +0xF7F0 0x722C +0xF7F1 0x7436 +0xF7F2 0x7834 +0xF7F3 0x7F77 +0xF7F4 0x82AD +0xF7F5 0x8DDB +0xF7F6 0x9817 +0xF7F7 0x5224 +0xF7F8 0x5742 +0xF7F9 0x677F +0xF7FA 0x7248 +0xF7FB 0x74E3 +0xF7FC 0x8CA9 +0xF7FD 0x8FA6 +0xF7FE 0x9211 +0xF8A1 0x962A +0xF8A2 0x516B +0xF8A3 0x53ED +0xF8A4 0x634C +0xF8A5 0x4F69 +0xF8A6 0x5504 +0xF8A7 0x6096 +0xF8A8 0x6557 +0xF8A9 0x6C9B +0xF8AA 0x6D7F +0xF8AB 0x724C +0xF8AC 0x72FD +0xF8AD 0x7A17 +0xF8AE 0x8987 +0xF8AF 0x8C9D +0xF8B0 0x5F6D +0xF8B1 0x6F8E +0xF8B2 0x70F9 +0xF8B3 0x81A8 +0xF8B4 0x610E +0xF8B5 0x4FBF +0xF8B6 0x504F +0xF8B7 0x6241 +0xF8B8 0x7247 +0xF8B9 0x7BC7 +0xF8BA 0x7DE8 +0xF8BB 0x7FE9 +0xF8BC 0x904D +0xF8BD 0x97AD +0xF8BE 0x9A19 +0xF8BF 0x8CB6 +0xF8C0 0x576A +0xF8C1 0x5E73 +0xF8C2 0x67B0 +0xF8C3 0x840D +0xF8C4 0x8A55 +0xF8C5 0x5420 +0xF8C6 0x5B16 +0xF8C7 0x5E63 +0xF8C8 0x5EE2 +0xF8C9 0x5F0A +0xF8CA 0x6583 +0xF8CB 0x80BA +0xF8CC 0x853D +0xF8CD 0x9589 +0xF8CE 0x965B +0xF8CF 0x4F48 +0xF8D0 0x5305 +0xF8D1 0x530D +0xF8D2 0x530F +0xF8D3 0x5486 +0xF8D4 0x54FA +0xF8D5 0x5703 +0xF8D6 0x5E03 +0xF8D7 0x6016 +0xF8D8 0x629B +0xF8D9 0x62B1 +0xF8DA 0x6355 +0xF8DB 0xFA06 +0xF8DC 0x6CE1 +0xF8DD 0x6D66 +0xF8DE 0x75B1 +0xF8DF 0x7832 +0xF8E0 0x80DE +0xF8E1 0x812F +0xF8E2 0x82DE +0xF8E3 0x8461 +0xF8E4 0x84B2 +0xF8E5 0x888D +0xF8E6 0x8912 +0xF8E7 0x900B +0xF8E8 0x92EA +0xF8E9 0x98FD +0xF8EA 0x9B91 +0xF8EB 0x5E45 +0xF8EC 0x66B4 +0xF8ED 0x66DD +0xF8EE 0x7011 +0xF8EF 0x7206 +0xF8F0 0xFA07 +0xF8F1 0x4FF5 +0xF8F2 0x527D +0xF8F3 0x5F6A +0xF8F4 0x6153 +0xF8F5 0x6753 +0xF8F6 0x6A19 +0xF8F7 0x6F02 +0xF8F8 0x74E2 +0xF8F9 0x7968 +0xF8FA 0x8868 +0xF8FB 0x8C79 +0xF8FC 0x98C7 +0xF8FD 0x98C4 +0xF8FE 0x9A43 +0xF9A1 0x54C1 +0xF9A2 0x7A1F +0xF9A3 0x6953 +0xF9A4 0x8AF7 +0xF9A5 0x8C4A +0xF9A6 0x98A8 +0xF9A7 0x99AE +0xF9A8 0x5F7C +0xF9A9 0x62AB +0xF9AA 0x75B2 +0xF9AB 0x76AE +0xF9AC 0x88AB +0xF9AD 0x907F +0xF9AE 0x9642 +0xF9AF 0x5339 +0xF9B0 0x5F3C +0xF9B1 0x5FC5 +0xF9B2 0x6CCC +0xF9B3 0x73CC +0xF9B4 0x7562 +0xF9B5 0x758B +0xF9B6 0x7B46 +0xF9B7 0x82FE +0xF9B8 0x999D +0xF9B9 0x4E4F +0xF9BA 0x903C +0xF9BB 0x4E0B +0xF9BC 0x4F55 +0xF9BD 0x53A6 +0xF9BE 0x590F +0xF9BF 0x5EC8 +0xF9C0 0x6630 +0xF9C1 0x6CB3 +0xF9C2 0x7455 +0xF9C3 0x8377 +0xF9C4 0x8766 +0xF9C5 0x8CC0 +0xF9C6 0x9050 +0xF9C7 0x971E +0xF9C8 0x9C15 +0xF9C9 0x58D1 +0xF9CA 0x5B78 +0xF9CB 0x8650 +0xF9CC 0x8B14 +0xF9CD 0x9DB4 +0xF9CE 0x5BD2 +0xF9CF 0x6068 +0xF9D0 0x608D +0xF9D1 0x65F1 +0xF9D2 0x6C57 +0xF9D3 0x6F22 +0xF9D4 0x6FA3 +0xF9D5 0x701A +0xF9D6 0x7F55 +0xF9D7 0x7FF0 +0xF9D8 0x9591 +0xF9D9 0x9592 +0xF9DA 0x9650 +0xF9DB 0x97D3 +0xF9DC 0x5272 +0xF9DD 0x8F44 +0xF9DE 0x51FD +0xF9DF 0x542B +0xF9E0 0x54B8 +0xF9E1 0x5563 +0xF9E2 0x558A +0xF9E3 0x6ABB +0xF9E4 0x6DB5 +0xF9E5 0x7DD8 +0xF9E6 0x8266 +0xF9E7 0x929C +0xF9E8 0x9677 +0xF9E9 0x9E79 +0xF9EA 0x5408 +0xF9EB 0x54C8 +0xF9EC 0x76D2 +0xF9ED 0x86E4 +0xF9EE 0x95A4 +0xF9EF 0x95D4 +0xF9F0 0x965C +0xF9F1 0x4EA2 +0xF9F2 0x4F09 +0xF9F3 0x59EE +0xF9F4 0x5AE6 +0xF9F5 0x5DF7 +0xF9F6 0x6052 +0xF9F7 0x6297 +0xF9F8 0x676D +0xF9F9 0x6841 +0xF9FA 0x6C86 +0xF9FB 0x6E2F +0xF9FC 0x7F38 +0xF9FD 0x809B +0xF9FE 0x822A +0xFAA1 0xFA08 +0xFAA2 0xFA09 +0xFAA3 0x9805 +0xFAA4 0x4EA5 +0xFAA5 0x5055 +0xFAA6 0x54B3 +0xFAA7 0x5793 +0xFAA8 0x595A +0xFAA9 0x5B69 +0xFAAA 0x5BB3 +0xFAAB 0x61C8 +0xFAAC 0x6977 +0xFAAD 0x6D77 +0xFAAE 0x7023 +0xFAAF 0x87F9 +0xFAB0 0x89E3 +0xFAB1 0x8A72 +0xFAB2 0x8AE7 +0xFAB3 0x9082 +0xFAB4 0x99ED +0xFAB5 0x9AB8 +0xFAB6 0x52BE +0xFAB7 0x6838 +0xFAB8 0x5016 +0xFAB9 0x5E78 +0xFABA 0x674F +0xFABB 0x8347 +0xFABC 0x884C +0xFABD 0x4EAB +0xFABE 0x5411 +0xFABF 0x56AE +0xFAC0 0x73E6 +0xFAC1 0x9115 +0xFAC2 0x97FF +0xFAC3 0x9909 +0xFAC4 0x9957 +0xFAC5 0x9999 +0xFAC6 0x5653 +0xFAC7 0x589F +0xFAC8 0x865B +0xFAC9 0x8A31 +0xFACA 0x61B2 +0xFACB 0x6AF6 +0xFACC 0x737B +0xFACD 0x8ED2 +0xFACE 0x6B47 +0xFACF 0x96AA +0xFAD0 0x9A57 +0xFAD1 0x5955 +0xFAD2 0x7200 +0xFAD3 0x8D6B +0xFAD4 0x9769 +0xFAD5 0x4FD4 +0xFAD6 0x5CF4 +0xFAD7 0x5F26 +0xFAD8 0x61F8 +0xFAD9 0x665B +0xFADA 0x6CEB +0xFADB 0x70AB +0xFADC 0x7384 +0xFADD 0x73B9 +0xFADE 0x73FE +0xFADF 0x7729 +0xFAE0 0x774D +0xFAE1 0x7D43 +0xFAE2 0x7D62 +0xFAE3 0x7E23 +0xFAE4 0x8237 +0xFAE5 0x8852 +0xFAE6 0xFA0A +0xFAE7 0x8CE2 +0xFAE8 0x9249 +0xFAE9 0x986F +0xFAEA 0x5B51 +0xFAEB 0x7A74 +0xFAEC 0x8840 +0xFAED 0x9801 +0xFAEE 0x5ACC +0xFAEF 0x4FE0 +0xFAF0 0x5354 +0xFAF1 0x593E +0xFAF2 0x5CFD +0xFAF3 0x633E +0xFAF4 0x6D79 +0xFAF5 0x72F9 +0xFAF6 0x8105 +0xFAF7 0x8107 +0xFAF8 0x83A2 +0xFAF9 0x92CF +0xFAFA 0x9830 +0xFAFB 0x4EA8 +0xFAFC 0x5144 +0xFAFD 0x5211 +0xFAFE 0x578B +0xFBA1 0x5F62 +0xFBA2 0x6CC2 +0xFBA3 0x6ECE +0xFBA4 0x7005 +0xFBA5 0x7050 +0xFBA6 0x70AF +0xFBA7 0x7192 +0xFBA8 0x73E9 +0xFBA9 0x7469 +0xFBAA 0x834A +0xFBAB 0x87A2 +0xFBAC 0x8861 +0xFBAD 0x9008 +0xFBAE 0x90A2 +0xFBAF 0x93A3 +0xFBB0 0x99A8 +0xFBB1 0x516E +0xFBB2 0x5F57 +0xFBB3 0x60E0 +0xFBB4 0x6167 +0xFBB5 0x66B3 +0xFBB6 0x8559 +0xFBB7 0x8E4A +0xFBB8 0x91AF +0xFBB9 0x978B +0xFBBA 0x4E4E +0xFBBB 0x4E92 +0xFBBC 0x547C +0xFBBD 0x58D5 +0xFBBE 0x58FA +0xFBBF 0x597D +0xFBC0 0x5CB5 +0xFBC1 0x5F27 +0xFBC2 0x6236 +0xFBC3 0x6248 +0xFBC4 0x660A +0xFBC5 0x6667 +0xFBC6 0x6BEB +0xFBC7 0x6D69 +0xFBC8 0x6DCF +0xFBC9 0x6E56 +0xFBCA 0x6EF8 +0xFBCB 0x6F94 +0xFBCC 0x6FE0 +0xFBCD 0x6FE9 +0xFBCE 0x705D +0xFBCF 0x72D0 +0xFBD0 0x7425 +0xFBD1 0x745A +0xFBD2 0x74E0 +0xFBD3 0x7693 +0xFBD4 0x795C +0xFBD5 0x7CCA +0xFBD6 0x7E1E +0xFBD7 0x80E1 +0xFBD8 0x82A6 +0xFBD9 0x846B +0xFBDA 0x84BF +0xFBDB 0x864E +0xFBDC 0x865F +0xFBDD 0x8774 +0xFBDE 0x8B77 +0xFBDF 0x8C6A +0xFBE0 0x93AC +0xFBE1 0x9800 +0xFBE2 0x9865 +0xFBE3 0x60D1 +0xFBE4 0x6216 +0xFBE5 0x9177 +0xFBE6 0x5A5A +0xFBE7 0x660F +0xFBE8 0x6DF7 +0xFBE9 0x6E3E +0xFBEA 0x743F +0xFBEB 0x9B42 +0xFBEC 0x5FFD +0xFBED 0x60DA +0xFBEE 0x7B0F +0xFBEF 0x54C4 +0xFBF0 0x5F18 +0xFBF1 0x6C5E +0xFBF2 0x6CD3 +0xFBF3 0x6D2A +0xFBF4 0x70D8 +0xFBF5 0x7D05 +0xFBF6 0x8679 +0xFBF7 0x8A0C +0xFBF8 0x9D3B +0xFBF9 0x5316 +0xFBFA 0x548C +0xFBFB 0x5B05 +0xFBFC 0x6A3A +0xFBFD 0x706B +0xFBFE 0x7575 +0xFCA1 0x798D +0xFCA2 0x79BE +0xFCA3 0x82B1 +0xFCA4 0x83EF +0xFCA5 0x8A71 +0xFCA6 0x8B41 +0xFCA7 0x8CA8 +0xFCA8 0x9774 +0xFCA9 0xFA0B +0xFCAA 0x64F4 +0xFCAB 0x652B +0xFCAC 0x78BA +0xFCAD 0x78BB +0xFCAE 0x7A6B +0xFCAF 0x4E38 +0xFCB0 0x559A +0xFCB1 0x5950 +0xFCB2 0x5BA6 +0xFCB3 0x5E7B +0xFCB4 0x60A3 +0xFCB5 0x63DB +0xFCB6 0x6B61 +0xFCB7 0x6665 +0xFCB8 0x6853 +0xFCB9 0x6E19 +0xFCBA 0x7165 +0xFCBB 0x74B0 +0xFCBC 0x7D08 +0xFCBD 0x9084 +0xFCBE 0x9A69 +0xFCBF 0x9C25 +0xFCC0 0x6D3B +0xFCC1 0x6ED1 +0xFCC2 0x733E +0xFCC3 0x8C41 +0xFCC4 0x95CA +0xFCC5 0x51F0 +0xFCC6 0x5E4C +0xFCC7 0x5FA8 +0xFCC8 0x604D +0xFCC9 0x60F6 +0xFCCA 0x6130 +0xFCCB 0x614C +0xFCCC 0x6643 +0xFCCD 0x6644 +0xFCCE 0x69A5 +0xFCCF 0x6CC1 +0xFCD0 0x6E5F +0xFCD1 0x6EC9 +0xFCD2 0x6F62 +0xFCD3 0x714C +0xFCD4 0x749C +0xFCD5 0x7687 +0xFCD6 0x7BC1 +0xFCD7 0x7C27 +0xFCD8 0x8352 +0xFCD9 0x8757 +0xFCDA 0x9051 +0xFCDB 0x968D +0xFCDC 0x9EC3 +0xFCDD 0x532F +0xFCDE 0x56DE +0xFCDF 0x5EFB +0xFCE0 0x5F8A +0xFCE1 0x6062 +0xFCE2 0x6094 +0xFCE3 0x61F7 +0xFCE4 0x6666 +0xFCE5 0x6703 +0xFCE6 0x6A9C +0xFCE7 0x6DEE +0xFCE8 0x6FAE +0xFCE9 0x7070 +0xFCEA 0x736A +0xFCEB 0x7E6A +0xFCEC 0x81BE +0xFCED 0x8334 +0xFCEE 0x86D4 +0xFCEF 0x8AA8 +0xFCF0 0x8CC4 +0xFCF1 0x5283 +0xFCF2 0x7372 +0xFCF3 0x5B96 +0xFCF4 0x6A6B +0xFCF5 0x9404 +0xFCF6 0x54EE +0xFCF7 0x5686 +0xFCF8 0x5B5D +0xFCF9 0x6548 +0xFCFA 0x6585 +0xFCFB 0x66C9 +0xFCFC 0x689F +0xFCFD 0x6D8D +0xFCFE 0x6DC6 +0xFDA1 0x723B +0xFDA2 0x80B4 +0xFDA3 0x9175 +0xFDA4 0x9A4D +0xFDA5 0x4FAF +0xFDA6 0x5019 +0xFDA7 0x539A +0xFDA8 0x540E +0xFDA9 0x543C +0xFDAA 0x5589 +0xFDAB 0x55C5 +0xFDAC 0x5E3F +0xFDAD 0x5F8C +0xFDAE 0x673D +0xFDAF 0x7166 +0xFDB0 0x73DD +0xFDB1 0x9005 +0xFDB2 0x52DB +0xFDB3 0x52F3 +0xFDB4 0x5864 +0xFDB5 0x58CE +0xFDB6 0x7104 +0xFDB7 0x718F +0xFDB8 0x71FB +0xFDB9 0x85B0 +0xFDBA 0x8A13 +0xFDBB 0x6688 +0xFDBC 0x85A8 +0xFDBD 0x55A7 +0xFDBE 0x6684 +0xFDBF 0x714A +0xFDC0 0x8431 +0xFDC1 0x5349 +0xFDC2 0x5599 +0xFDC3 0x6BC1 +0xFDC4 0x5F59 +0xFDC5 0x5FBD +0xFDC6 0x63EE +0xFDC7 0x6689 +0xFDC8 0x7147 +0xFDC9 0x8AF1 +0xFDCA 0x8F1D +0xFDCB 0x9EBE +0xFDCC 0x4F11 +0xFDCD 0x643A +0xFDCE 0x70CB +0xFDCF 0x7566 +0xFDD0 0x8667 +0xFDD1 0x6064 +0xFDD2 0x8B4E +0xFDD3 0x9DF8 +0xFDD4 0x5147 +0xFDD5 0x51F6 +0xFDD6 0x5308 +0xFDD7 0x6D36 +0xFDD8 0x80F8 +0xFDD9 0x9ED1 +0xFDDA 0x6615 +0xFDDB 0x6B23 +0xFDDC 0x7098 +0xFDDD 0x75D5 +0xFDDE 0x5403 +0xFDDF 0x5C79 +0xFDE0 0x7D07 +0xFDE1 0x8A16 +0xFDE2 0x6B20 +0xFDE3 0x6B3D +0xFDE4 0x6B46 +0xFDE5 0x5438 +0xFDE6 0x6070 +0xFDE7 0x6D3D +0xFDE8 0x7FD5 +0xFDE9 0x8208 +0xFDEA 0x50D6 +0xFDEB 0x51DE +0xFDEC 0x559C +0xFDED 0x566B +0xFDEE 0x56CD +0xFDEF 0x59EC +0xFDF0 0x5B09 +0xFDF1 0x5E0C +0xFDF2 0x6199 +0xFDF3 0x6198 +0xFDF4 0x6231 +0xFDF5 0x665E +0xFDF6 0x66E6 +0xFDF7 0x7199 +0xFDF8 0x71B9 +0xFDF9 0x71BA +0xFDFA 0x72A7 +0xFDFB 0x79A7 +0xFDFC 0x7A00 +0xFDFD 0x7FB2 +0xFDFE 0x8A70 +0xFEA1 0xE05E +0xFEA2 0xE05F +0xFEA3 0xE060 +0xFEA4 0xE061 +0xFEA5 0xE062 +0xFEA6 0xE063 +0xFEA7 0xE064 +0xFEA8 0xE065 +0xFEA9 0xE066 +0xFEAA 0xE067 +0xFEAB 0xE068 +0xFEAC 0xE069 +0xFEAD 0xE06A +0xFEAE 0xE06B +0xFEAF 0xE06C +0xFEB0 0xE06D +0xFEB1 0xE06E +0xFEB2 0xE06F +0xFEB3 0xE070 +0xFEB4 0xE071 +0xFEB5 0xE072 +0xFEB6 0xE073 +0xFEB7 0xE074 +0xFEB8 0xE075 +0xFEB9 0xE076 +0xFEBA 0xE077 +0xFEBB 0xE078 +0xFEBC 0xE079 +0xFEBD 0xE07A +0xFEBE 0xE07B +0xFEBF 0xE07C +0xFEC0 0xE07D +0xFEC1 0xE07E +0xFEC2 0xE07F +0xFEC3 0xE080 +0xFEC4 0xE081 +0xFEC5 0xE082 +0xFEC6 0xE083 +0xFEC7 0xE084 +0xFEC8 0xE085 +0xFEC9 0xE086 +0xFECA 0xE087 +0xFECB 0xE088 +0xFECC 0xE089 +0xFECD 0xE08A +0xFECE 0xE08B +0xFECF 0xE08C +0xFED0 0xE08D +0xFED1 0xE08E +0xFED2 0xE08F +0xFED3 0xE090 +0xFED4 0xE091 +0xFED5 0xE092 +0xFED6 0xE093 +0xFED7 0xE094 +0xFED8 0xE095 +0xFED9 0xE096 +0xFEDA 0xE097 +0xFEDB 0xE098 +0xFEDC 0xE099 +0xFEDD 0xE09A +0xFEDE 0xE09B +0xFEDF 0xE09C +0xFEE0 0xE09D +0xFEE1 0xE09E +0xFEE2 0xE09F +0xFEE3 0xE0A0 +0xFEE4 0xE0A1 +0xFEE5 0xE0A2 +0xFEE6 0xE0A3 +0xFEE7 0xE0A4 +0xFEE8 0xE0A5 +0xFEE9 0xE0A6 +0xFEEA 0xE0A7 +0xFEEB 0xE0A8 +0xFEEC 0xE0A9 +0xFEED 0xE0AA +0xFEEE 0xE0AB +0xFEEF 0xE0AC +0xFEF0 0xE0AD +0xFEF1 0xE0AE +0xFEF2 0xE0AF +0xFEF3 0xE0B0 +0xFEF4 0xE0B1 +0xFEF5 0xE0B2 +0xFEF6 0xE0B3 +0xFEF7 0xE0B4 +0xFEF8 0xE0B5 +0xFEF9 0xE0B6 +0xFEFA 0xE0B7 +0xFEFB 0xE0B8 +0xFEFC 0xE0B9 +0xFEFD 0xE0BA +0xFEFE 0xE0BB diff --git a/3rdPartner/libiconv/tests/CP950.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/CP950.IRREVERSIBLE.TXT new file mode 100644 index 0000000..e3b7c49 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP950.IRREVERSIBLE.TXT @@ -0,0 +1,11 @@ +0xA244 0x00A5 +0xA2CC 0x5341 +0xA2CE 0x5345 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F diff --git a/3rdPartner/libiconv/tests/CP950.TXT b/3rdPartner/libiconv/tests/CP950.TXT new file mode 100644 index 0000000..8e87ee0 --- /dev/null +++ b/3rdPartner/libiconv/tests/CP950.TXT @@ -0,0 +1,19440 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8140 0xEEB8 +0x8141 0xEEB9 +0x8142 0xEEBA +0x8143 0xEEBB +0x8144 0xEEBC +0x8145 0xEEBD +0x8146 0xEEBE +0x8147 0xEEBF +0x8148 0xEEC0 +0x8149 0xEEC1 +0x814A 0xEEC2 +0x814B 0xEEC3 +0x814C 0xEEC4 +0x814D 0xEEC5 +0x814E 0xEEC6 +0x814F 0xEEC7 +0x8150 0xEEC8 +0x8151 0xEEC9 +0x8152 0xEECA +0x8153 0xEECB +0x8154 0xEECC +0x8155 0xEECD +0x8156 0xEECE +0x8157 0xEECF +0x8158 0xEED0 +0x8159 0xEED1 +0x815A 0xEED2 +0x815B 0xEED3 +0x815C 0xEED4 +0x815D 0xEED5 +0x815E 0xEED6 +0x815F 0xEED7 +0x8160 0xEED8 +0x8161 0xEED9 +0x8162 0xEEDA +0x8163 0xEEDB +0x8164 0xEEDC +0x8165 0xEEDD +0x8166 0xEEDE +0x8167 0xEEDF +0x8168 0xEEE0 +0x8169 0xEEE1 +0x816A 0xEEE2 +0x816B 0xEEE3 +0x816C 0xEEE4 +0x816D 0xEEE5 +0x816E 0xEEE6 +0x816F 0xEEE7 +0x8170 0xEEE8 +0x8171 0xEEE9 +0x8172 0xEEEA +0x8173 0xEEEB +0x8174 0xEEEC +0x8175 0xEEED +0x8176 0xEEEE +0x8177 0xEEEF +0x8178 0xEEF0 +0x8179 0xEEF1 +0x817A 0xEEF2 +0x817B 0xEEF3 +0x817C 0xEEF4 +0x817D 0xEEF5 +0x817E 0xEEF6 +0x81A1 0xEEF7 +0x81A2 0xEEF8 +0x81A3 0xEEF9 +0x81A4 0xEEFA +0x81A5 0xEEFB +0x81A6 0xEEFC +0x81A7 0xEEFD +0x81A8 0xEEFE +0x81A9 0xEEFF +0x81AA 0xEF00 +0x81AB 0xEF01 +0x81AC 0xEF02 +0x81AD 0xEF03 +0x81AE 0xEF04 +0x81AF 0xEF05 +0x81B0 0xEF06 +0x81B1 0xEF07 +0x81B2 0xEF08 +0x81B3 0xEF09 +0x81B4 0xEF0A +0x81B5 0xEF0B +0x81B6 0xEF0C +0x81B7 0xEF0D +0x81B8 0xEF0E +0x81B9 0xEF0F +0x81BA 0xEF10 +0x81BB 0xEF11 +0x81BC 0xEF12 +0x81BD 0xEF13 +0x81BE 0xEF14 +0x81BF 0xEF15 +0x81C0 0xEF16 +0x81C1 0xEF17 +0x81C2 0xEF18 +0x81C3 0xEF19 +0x81C4 0xEF1A +0x81C5 0xEF1B +0x81C6 0xEF1C +0x81C7 0xEF1D +0x81C8 0xEF1E +0x81C9 0xEF1F +0x81CA 0xEF20 +0x81CB 0xEF21 +0x81CC 0xEF22 +0x81CD 0xEF23 +0x81CE 0xEF24 +0x81CF 0xEF25 +0x81D0 0xEF26 +0x81D1 0xEF27 +0x81D2 0xEF28 +0x81D3 0xEF29 +0x81D4 0xEF2A +0x81D5 0xEF2B +0x81D6 0xEF2C +0x81D7 0xEF2D +0x81D8 0xEF2E +0x81D9 0xEF2F +0x81DA 0xEF30 +0x81DB 0xEF31 +0x81DC 0xEF32 +0x81DD 0xEF33 +0x81DE 0xEF34 +0x81DF 0xEF35 +0x81E0 0xEF36 +0x81E1 0xEF37 +0x81E2 0xEF38 +0x81E3 0xEF39 +0x81E4 0xEF3A +0x81E5 0xEF3B +0x81E6 0xEF3C +0x81E7 0xEF3D +0x81E8 0xEF3E +0x81E9 0xEF3F +0x81EA 0xEF40 +0x81EB 0xEF41 +0x81EC 0xEF42 +0x81ED 0xEF43 +0x81EE 0xEF44 +0x81EF 0xEF45 +0x81F0 0xEF46 +0x81F1 0xEF47 +0x81F2 0xEF48 +0x81F3 0xEF49 +0x81F4 0xEF4A +0x81F5 0xEF4B +0x81F6 0xEF4C +0x81F7 0xEF4D +0x81F8 0xEF4E +0x81F9 0xEF4F +0x81FA 0xEF50 +0x81FB 0xEF51 +0x81FC 0xEF52 +0x81FD 0xEF53 +0x81FE 0xEF54 +0x8240 0xEF55 +0x8241 0xEF56 +0x8242 0xEF57 +0x8243 0xEF58 +0x8244 0xEF59 +0x8245 0xEF5A +0x8246 0xEF5B +0x8247 0xEF5C +0x8248 0xEF5D +0x8249 0xEF5E +0x824A 0xEF5F +0x824B 0xEF60 +0x824C 0xEF61 +0x824D 0xEF62 +0x824E 0xEF63 +0x824F 0xEF64 +0x8250 0xEF65 +0x8251 0xEF66 +0x8252 0xEF67 +0x8253 0xEF68 +0x8254 0xEF69 +0x8255 0xEF6A +0x8256 0xEF6B +0x8257 0xEF6C +0x8258 0xEF6D +0x8259 0xEF6E +0x825A 0xEF6F +0x825B 0xEF70 +0x825C 0xEF71 +0x825D 0xEF72 +0x825E 0xEF73 +0x825F 0xEF74 +0x8260 0xEF75 +0x8261 0xEF76 +0x8262 0xEF77 +0x8263 0xEF78 +0x8264 0xEF79 +0x8265 0xEF7A +0x8266 0xEF7B +0x8267 0xEF7C +0x8268 0xEF7D +0x8269 0xEF7E +0x826A 0xEF7F +0x826B 0xEF80 +0x826C 0xEF81 +0x826D 0xEF82 +0x826E 0xEF83 +0x826F 0xEF84 +0x8270 0xEF85 +0x8271 0xEF86 +0x8272 0xEF87 +0x8273 0xEF88 +0x8274 0xEF89 +0x8275 0xEF8A +0x8276 0xEF8B +0x8277 0xEF8C +0x8278 0xEF8D +0x8279 0xEF8E +0x827A 0xEF8F +0x827B 0xEF90 +0x827C 0xEF91 +0x827D 0xEF92 +0x827E 0xEF93 +0x82A1 0xEF94 +0x82A2 0xEF95 +0x82A3 0xEF96 +0x82A4 0xEF97 +0x82A5 0xEF98 +0x82A6 0xEF99 +0x82A7 0xEF9A +0x82A8 0xEF9B +0x82A9 0xEF9C +0x82AA 0xEF9D +0x82AB 0xEF9E +0x82AC 0xEF9F +0x82AD 0xEFA0 +0x82AE 0xEFA1 +0x82AF 0xEFA2 +0x82B0 0xEFA3 +0x82B1 0xEFA4 +0x82B2 0xEFA5 +0x82B3 0xEFA6 +0x82B4 0xEFA7 +0x82B5 0xEFA8 +0x82B6 0xEFA9 +0x82B7 0xEFAA +0x82B8 0xEFAB +0x82B9 0xEFAC +0x82BA 0xEFAD +0x82BB 0xEFAE +0x82BC 0xEFAF +0x82BD 0xEFB0 +0x82BE 0xEFB1 +0x82BF 0xEFB2 +0x82C0 0xEFB3 +0x82C1 0xEFB4 +0x82C2 0xEFB5 +0x82C3 0xEFB6 +0x82C4 0xEFB7 +0x82C5 0xEFB8 +0x82C6 0xEFB9 +0x82C7 0xEFBA +0x82C8 0xEFBB +0x82C9 0xEFBC +0x82CA 0xEFBD +0x82CB 0xEFBE +0x82CC 0xEFBF +0x82CD 0xEFC0 +0x82CE 0xEFC1 +0x82CF 0xEFC2 +0x82D0 0xEFC3 +0x82D1 0xEFC4 +0x82D2 0xEFC5 +0x82D3 0xEFC6 +0x82D4 0xEFC7 +0x82D5 0xEFC8 +0x82D6 0xEFC9 +0x82D7 0xEFCA +0x82D8 0xEFCB +0x82D9 0xEFCC +0x82DA 0xEFCD +0x82DB 0xEFCE +0x82DC 0xEFCF +0x82DD 0xEFD0 +0x82DE 0xEFD1 +0x82DF 0xEFD2 +0x82E0 0xEFD3 +0x82E1 0xEFD4 +0x82E2 0xEFD5 +0x82E3 0xEFD6 +0x82E4 0xEFD7 +0x82E5 0xEFD8 +0x82E6 0xEFD9 +0x82E7 0xEFDA +0x82E8 0xEFDB +0x82E9 0xEFDC +0x82EA 0xEFDD +0x82EB 0xEFDE +0x82EC 0xEFDF +0x82ED 0xEFE0 +0x82EE 0xEFE1 +0x82EF 0xEFE2 +0x82F0 0xEFE3 +0x82F1 0xEFE4 +0x82F2 0xEFE5 +0x82F3 0xEFE6 +0x82F4 0xEFE7 +0x82F5 0xEFE8 +0x82F6 0xEFE9 +0x82F7 0xEFEA +0x82F8 0xEFEB +0x82F9 0xEFEC +0x82FA 0xEFED +0x82FB 0xEFEE +0x82FC 0xEFEF +0x82FD 0xEFF0 +0x82FE 0xEFF1 +0x8340 0xEFF2 +0x8341 0xEFF3 +0x8342 0xEFF4 +0x8343 0xEFF5 +0x8344 0xEFF6 +0x8345 0xEFF7 +0x8346 0xEFF8 +0x8347 0xEFF9 +0x8348 0xEFFA +0x8349 0xEFFB +0x834A 0xEFFC +0x834B 0xEFFD +0x834C 0xEFFE +0x834D 0xEFFF +0x834E 0xF000 +0x834F 0xF001 +0x8350 0xF002 +0x8351 0xF003 +0x8352 0xF004 +0x8353 0xF005 +0x8354 0xF006 +0x8355 0xF007 +0x8356 0xF008 +0x8357 0xF009 +0x8358 0xF00A +0x8359 0xF00B +0x835A 0xF00C +0x835B 0xF00D +0x835C 0xF00E +0x835D 0xF00F +0x835E 0xF010 +0x835F 0xF011 +0x8360 0xF012 +0x8361 0xF013 +0x8362 0xF014 +0x8363 0xF015 +0x8364 0xF016 +0x8365 0xF017 +0x8366 0xF018 +0x8367 0xF019 +0x8368 0xF01A +0x8369 0xF01B +0x836A 0xF01C +0x836B 0xF01D +0x836C 0xF01E +0x836D 0xF01F +0x836E 0xF020 +0x836F 0xF021 +0x8370 0xF022 +0x8371 0xF023 +0x8372 0xF024 +0x8373 0xF025 +0x8374 0xF026 +0x8375 0xF027 +0x8376 0xF028 +0x8377 0xF029 +0x8378 0xF02A +0x8379 0xF02B +0x837A 0xF02C +0x837B 0xF02D +0x837C 0xF02E +0x837D 0xF02F +0x837E 0xF030 +0x83A1 0xF031 +0x83A2 0xF032 +0x83A3 0xF033 +0x83A4 0xF034 +0x83A5 0xF035 +0x83A6 0xF036 +0x83A7 0xF037 +0x83A8 0xF038 +0x83A9 0xF039 +0x83AA 0xF03A +0x83AB 0xF03B +0x83AC 0xF03C +0x83AD 0xF03D +0x83AE 0xF03E +0x83AF 0xF03F +0x83B0 0xF040 +0x83B1 0xF041 +0x83B2 0xF042 +0x83B3 0xF043 +0x83B4 0xF044 +0x83B5 0xF045 +0x83B6 0xF046 +0x83B7 0xF047 +0x83B8 0xF048 +0x83B9 0xF049 +0x83BA 0xF04A +0x83BB 0xF04B +0x83BC 0xF04C +0x83BD 0xF04D +0x83BE 0xF04E +0x83BF 0xF04F +0x83C0 0xF050 +0x83C1 0xF051 +0x83C2 0xF052 +0x83C3 0xF053 +0x83C4 0xF054 +0x83C5 0xF055 +0x83C6 0xF056 +0x83C7 0xF057 +0x83C8 0xF058 +0x83C9 0xF059 +0x83CA 0xF05A +0x83CB 0xF05B +0x83CC 0xF05C +0x83CD 0xF05D +0x83CE 0xF05E +0x83CF 0xF05F +0x83D0 0xF060 +0x83D1 0xF061 +0x83D2 0xF062 +0x83D3 0xF063 +0x83D4 0xF064 +0x83D5 0xF065 +0x83D6 0xF066 +0x83D7 0xF067 +0x83D8 0xF068 +0x83D9 0xF069 +0x83DA 0xF06A +0x83DB 0xF06B +0x83DC 0xF06C +0x83DD 0xF06D +0x83DE 0xF06E +0x83DF 0xF06F +0x83E0 0xF070 +0x83E1 0xF071 +0x83E2 0xF072 +0x83E3 0xF073 +0x83E4 0xF074 +0x83E5 0xF075 +0x83E6 0xF076 +0x83E7 0xF077 +0x83E8 0xF078 +0x83E9 0xF079 +0x83EA 0xF07A +0x83EB 0xF07B +0x83EC 0xF07C +0x83ED 0xF07D +0x83EE 0xF07E +0x83EF 0xF07F +0x83F0 0xF080 +0x83F1 0xF081 +0x83F2 0xF082 +0x83F3 0xF083 +0x83F4 0xF084 +0x83F5 0xF085 +0x83F6 0xF086 +0x83F7 0xF087 +0x83F8 0xF088 +0x83F9 0xF089 +0x83FA 0xF08A +0x83FB 0xF08B +0x83FC 0xF08C +0x83FD 0xF08D +0x83FE 0xF08E +0x8440 0xF08F +0x8441 0xF090 +0x8442 0xF091 +0x8443 0xF092 +0x8444 0xF093 +0x8445 0xF094 +0x8446 0xF095 +0x8447 0xF096 +0x8448 0xF097 +0x8449 0xF098 +0x844A 0xF099 +0x844B 0xF09A +0x844C 0xF09B +0x844D 0xF09C +0x844E 0xF09D +0x844F 0xF09E +0x8450 0xF09F +0x8451 0xF0A0 +0x8452 0xF0A1 +0x8453 0xF0A2 +0x8454 0xF0A3 +0x8455 0xF0A4 +0x8456 0xF0A5 +0x8457 0xF0A6 +0x8458 0xF0A7 +0x8459 0xF0A8 +0x845A 0xF0A9 +0x845B 0xF0AA +0x845C 0xF0AB +0x845D 0xF0AC +0x845E 0xF0AD +0x845F 0xF0AE +0x8460 0xF0AF +0x8461 0xF0B0 +0x8462 0xF0B1 +0x8463 0xF0B2 +0x8464 0xF0B3 +0x8465 0xF0B4 +0x8466 0xF0B5 +0x8467 0xF0B6 +0x8468 0xF0B7 +0x8469 0xF0B8 +0x846A 0xF0B9 +0x846B 0xF0BA +0x846C 0xF0BB +0x846D 0xF0BC +0x846E 0xF0BD +0x846F 0xF0BE +0x8470 0xF0BF +0x8471 0xF0C0 +0x8472 0xF0C1 +0x8473 0xF0C2 +0x8474 0xF0C3 +0x8475 0xF0C4 +0x8476 0xF0C5 +0x8477 0xF0C6 +0x8478 0xF0C7 +0x8479 0xF0C8 +0x847A 0xF0C9 +0x847B 0xF0CA +0x847C 0xF0CB +0x847D 0xF0CC +0x847E 0xF0CD +0x84A1 0xF0CE +0x84A2 0xF0CF +0x84A3 0xF0D0 +0x84A4 0xF0D1 +0x84A5 0xF0D2 +0x84A6 0xF0D3 +0x84A7 0xF0D4 +0x84A8 0xF0D5 +0x84A9 0xF0D6 +0x84AA 0xF0D7 +0x84AB 0xF0D8 +0x84AC 0xF0D9 +0x84AD 0xF0DA +0x84AE 0xF0DB +0x84AF 0xF0DC +0x84B0 0xF0DD +0x84B1 0xF0DE +0x84B2 0xF0DF +0x84B3 0xF0E0 +0x84B4 0xF0E1 +0x84B5 0xF0E2 +0x84B6 0xF0E3 +0x84B7 0xF0E4 +0x84B8 0xF0E5 +0x84B9 0xF0E6 +0x84BA 0xF0E7 +0x84BB 0xF0E8 +0x84BC 0xF0E9 +0x84BD 0xF0EA +0x84BE 0xF0EB +0x84BF 0xF0EC +0x84C0 0xF0ED +0x84C1 0xF0EE +0x84C2 0xF0EF +0x84C3 0xF0F0 +0x84C4 0xF0F1 +0x84C5 0xF0F2 +0x84C6 0xF0F3 +0x84C7 0xF0F4 +0x84C8 0xF0F5 +0x84C9 0xF0F6 +0x84CA 0xF0F7 +0x84CB 0xF0F8 +0x84CC 0xF0F9 +0x84CD 0xF0FA +0x84CE 0xF0FB +0x84CF 0xF0FC +0x84D0 0xF0FD +0x84D1 0xF0FE +0x84D2 0xF0FF +0x84D3 0xF100 +0x84D4 0xF101 +0x84D5 0xF102 +0x84D6 0xF103 +0x84D7 0xF104 +0x84D8 0xF105 +0x84D9 0xF106 +0x84DA 0xF107 +0x84DB 0xF108 +0x84DC 0xF109 +0x84DD 0xF10A +0x84DE 0xF10B +0x84DF 0xF10C +0x84E0 0xF10D +0x84E1 0xF10E +0x84E2 0xF10F +0x84E3 0xF110 +0x84E4 0xF111 +0x84E5 0xF112 +0x84E6 0xF113 +0x84E7 0xF114 +0x84E8 0xF115 +0x84E9 0xF116 +0x84EA 0xF117 +0x84EB 0xF118 +0x84EC 0xF119 +0x84ED 0xF11A +0x84EE 0xF11B +0x84EF 0xF11C +0x84F0 0xF11D +0x84F1 0xF11E +0x84F2 0xF11F +0x84F3 0xF120 +0x84F4 0xF121 +0x84F5 0xF122 +0x84F6 0xF123 +0x84F7 0xF124 +0x84F8 0xF125 +0x84F9 0xF126 +0x84FA 0xF127 +0x84FB 0xF128 +0x84FC 0xF129 +0x84FD 0xF12A +0x84FE 0xF12B +0x8540 0xF12C +0x8541 0xF12D +0x8542 0xF12E +0x8543 0xF12F +0x8544 0xF130 +0x8545 0xF131 +0x8546 0xF132 +0x8547 0xF133 +0x8548 0xF134 +0x8549 0xF135 +0x854A 0xF136 +0x854B 0xF137 +0x854C 0xF138 +0x854D 0xF139 +0x854E 0xF13A +0x854F 0xF13B +0x8550 0xF13C +0x8551 0xF13D +0x8552 0xF13E +0x8553 0xF13F +0x8554 0xF140 +0x8555 0xF141 +0x8556 0xF142 +0x8557 0xF143 +0x8558 0xF144 +0x8559 0xF145 +0x855A 0xF146 +0x855B 0xF147 +0x855C 0xF148 +0x855D 0xF149 +0x855E 0xF14A +0x855F 0xF14B +0x8560 0xF14C +0x8561 0xF14D +0x8562 0xF14E +0x8563 0xF14F +0x8564 0xF150 +0x8565 0xF151 +0x8566 0xF152 +0x8567 0xF153 +0x8568 0xF154 +0x8569 0xF155 +0x856A 0xF156 +0x856B 0xF157 +0x856C 0xF158 +0x856D 0xF159 +0x856E 0xF15A +0x856F 0xF15B +0x8570 0xF15C +0x8571 0xF15D +0x8572 0xF15E +0x8573 0xF15F +0x8574 0xF160 +0x8575 0xF161 +0x8576 0xF162 +0x8577 0xF163 +0x8578 0xF164 +0x8579 0xF165 +0x857A 0xF166 +0x857B 0xF167 +0x857C 0xF168 +0x857D 0xF169 +0x857E 0xF16A +0x85A1 0xF16B +0x85A2 0xF16C +0x85A3 0xF16D +0x85A4 0xF16E +0x85A5 0xF16F +0x85A6 0xF170 +0x85A7 0xF171 +0x85A8 0xF172 +0x85A9 0xF173 +0x85AA 0xF174 +0x85AB 0xF175 +0x85AC 0xF176 +0x85AD 0xF177 +0x85AE 0xF178 +0x85AF 0xF179 +0x85B0 0xF17A +0x85B1 0xF17B +0x85B2 0xF17C +0x85B3 0xF17D +0x85B4 0xF17E +0x85B5 0xF17F +0x85B6 0xF180 +0x85B7 0xF181 +0x85B8 0xF182 +0x85B9 0xF183 +0x85BA 0xF184 +0x85BB 0xF185 +0x85BC 0xF186 +0x85BD 0xF187 +0x85BE 0xF188 +0x85BF 0xF189 +0x85C0 0xF18A +0x85C1 0xF18B +0x85C2 0xF18C +0x85C3 0xF18D +0x85C4 0xF18E +0x85C5 0xF18F +0x85C6 0xF190 +0x85C7 0xF191 +0x85C8 0xF192 +0x85C9 0xF193 +0x85CA 0xF194 +0x85CB 0xF195 +0x85CC 0xF196 +0x85CD 0xF197 +0x85CE 0xF198 +0x85CF 0xF199 +0x85D0 0xF19A +0x85D1 0xF19B +0x85D2 0xF19C +0x85D3 0xF19D +0x85D4 0xF19E +0x85D5 0xF19F +0x85D6 0xF1A0 +0x85D7 0xF1A1 +0x85D8 0xF1A2 +0x85D9 0xF1A3 +0x85DA 0xF1A4 +0x85DB 0xF1A5 +0x85DC 0xF1A6 +0x85DD 0xF1A7 +0x85DE 0xF1A8 +0x85DF 0xF1A9 +0x85E0 0xF1AA +0x85E1 0xF1AB +0x85E2 0xF1AC +0x85E3 0xF1AD +0x85E4 0xF1AE +0x85E5 0xF1AF +0x85E6 0xF1B0 +0x85E7 0xF1B1 +0x85E8 0xF1B2 +0x85E9 0xF1B3 +0x85EA 0xF1B4 +0x85EB 0xF1B5 +0x85EC 0xF1B6 +0x85ED 0xF1B7 +0x85EE 0xF1B8 +0x85EF 0xF1B9 +0x85F0 0xF1BA +0x85F1 0xF1BB +0x85F2 0xF1BC +0x85F3 0xF1BD +0x85F4 0xF1BE +0x85F5 0xF1BF +0x85F6 0xF1C0 +0x85F7 0xF1C1 +0x85F8 0xF1C2 +0x85F9 0xF1C3 +0x85FA 0xF1C4 +0x85FB 0xF1C5 +0x85FC 0xF1C6 +0x85FD 0xF1C7 +0x85FE 0xF1C8 +0x8640 0xF1C9 +0x8641 0xF1CA +0x8642 0xF1CB +0x8643 0xF1CC +0x8644 0xF1CD +0x8645 0xF1CE +0x8646 0xF1CF +0x8647 0xF1D0 +0x8648 0xF1D1 +0x8649 0xF1D2 +0x864A 0xF1D3 +0x864B 0xF1D4 +0x864C 0xF1D5 +0x864D 0xF1D6 +0x864E 0xF1D7 +0x864F 0xF1D8 +0x8650 0xF1D9 +0x8651 0xF1DA +0x8652 0xF1DB +0x8653 0xF1DC +0x8654 0xF1DD +0x8655 0xF1DE +0x8656 0xF1DF +0x8657 0xF1E0 +0x8658 0xF1E1 +0x8659 0xF1E2 +0x865A 0xF1E3 +0x865B 0xF1E4 +0x865C 0xF1E5 +0x865D 0xF1E6 +0x865E 0xF1E7 +0x865F 0xF1E8 +0x8660 0xF1E9 +0x8661 0xF1EA +0x8662 0xF1EB +0x8663 0xF1EC +0x8664 0xF1ED +0x8665 0xF1EE +0x8666 0xF1EF +0x8667 0xF1F0 +0x8668 0xF1F1 +0x8669 0xF1F2 +0x866A 0xF1F3 +0x866B 0xF1F4 +0x866C 0xF1F5 +0x866D 0xF1F6 +0x866E 0xF1F7 +0x866F 0xF1F8 +0x8670 0xF1F9 +0x8671 0xF1FA +0x8672 0xF1FB +0x8673 0xF1FC +0x8674 0xF1FD +0x8675 0xF1FE +0x8676 0xF1FF +0x8677 0xF200 +0x8678 0xF201 +0x8679 0xF202 +0x867A 0xF203 +0x867B 0xF204 +0x867C 0xF205 +0x867D 0xF206 +0x867E 0xF207 +0x86A1 0xF208 +0x86A2 0xF209 +0x86A3 0xF20A +0x86A4 0xF20B +0x86A5 0xF20C +0x86A6 0xF20D +0x86A7 0xF20E +0x86A8 0xF20F +0x86A9 0xF210 +0x86AA 0xF211 +0x86AB 0xF212 +0x86AC 0xF213 +0x86AD 0xF214 +0x86AE 0xF215 +0x86AF 0xF216 +0x86B0 0xF217 +0x86B1 0xF218 +0x86B2 0xF219 +0x86B3 0xF21A +0x86B4 0xF21B +0x86B5 0xF21C +0x86B6 0xF21D +0x86B7 0xF21E +0x86B8 0xF21F +0x86B9 0xF220 +0x86BA 0xF221 +0x86BB 0xF222 +0x86BC 0xF223 +0x86BD 0xF224 +0x86BE 0xF225 +0x86BF 0xF226 +0x86C0 0xF227 +0x86C1 0xF228 +0x86C2 0xF229 +0x86C3 0xF22A +0x86C4 0xF22B +0x86C5 0xF22C +0x86C6 0xF22D +0x86C7 0xF22E +0x86C8 0xF22F +0x86C9 0xF230 +0x86CA 0xF231 +0x86CB 0xF232 +0x86CC 0xF233 +0x86CD 0xF234 +0x86CE 0xF235 +0x86CF 0xF236 +0x86D0 0xF237 +0x86D1 0xF238 +0x86D2 0xF239 +0x86D3 0xF23A +0x86D4 0xF23B +0x86D5 0xF23C +0x86D6 0xF23D +0x86D7 0xF23E +0x86D8 0xF23F +0x86D9 0xF240 +0x86DA 0xF241 +0x86DB 0xF242 +0x86DC 0xF243 +0x86DD 0xF244 +0x86DE 0xF245 +0x86DF 0xF246 +0x86E0 0xF247 +0x86E1 0xF248 +0x86E2 0xF249 +0x86E3 0xF24A +0x86E4 0xF24B +0x86E5 0xF24C +0x86E6 0xF24D +0x86E7 0xF24E +0x86E8 0xF24F +0x86E9 0xF250 +0x86EA 0xF251 +0x86EB 0xF252 +0x86EC 0xF253 +0x86ED 0xF254 +0x86EE 0xF255 +0x86EF 0xF256 +0x86F0 0xF257 +0x86F1 0xF258 +0x86F2 0xF259 +0x86F3 0xF25A +0x86F4 0xF25B +0x86F5 0xF25C +0x86F6 0xF25D +0x86F7 0xF25E +0x86F8 0xF25F +0x86F9 0xF260 +0x86FA 0xF261 +0x86FB 0xF262 +0x86FC 0xF263 +0x86FD 0xF264 +0x86FE 0xF265 +0x8740 0xF266 +0x8741 0xF267 +0x8742 0xF268 +0x8743 0xF269 +0x8744 0xF26A +0x8745 0xF26B +0x8746 0xF26C +0x8747 0xF26D +0x8748 0xF26E +0x8749 0xF26F +0x874A 0xF270 +0x874B 0xF271 +0x874C 0xF272 +0x874D 0xF273 +0x874E 0xF274 +0x874F 0xF275 +0x8750 0xF276 +0x8751 0xF277 +0x8752 0xF278 +0x8753 0xF279 +0x8754 0xF27A +0x8755 0xF27B +0x8756 0xF27C +0x8757 0xF27D +0x8758 0xF27E +0x8759 0xF27F +0x875A 0xF280 +0x875B 0xF281 +0x875C 0xF282 +0x875D 0xF283 +0x875E 0xF284 +0x875F 0xF285 +0x8760 0xF286 +0x8761 0xF287 +0x8762 0xF288 +0x8763 0xF289 +0x8764 0xF28A +0x8765 0xF28B +0x8766 0xF28C +0x8767 0xF28D +0x8768 0xF28E +0x8769 0xF28F +0x876A 0xF290 +0x876B 0xF291 +0x876C 0xF292 +0x876D 0xF293 +0x876E 0xF294 +0x876F 0xF295 +0x8770 0xF296 +0x8771 0xF297 +0x8772 0xF298 +0x8773 0xF299 +0x8774 0xF29A +0x8775 0xF29B +0x8776 0xF29C +0x8777 0xF29D +0x8778 0xF29E +0x8779 0xF29F +0x877A 0xF2A0 +0x877B 0xF2A1 +0x877C 0xF2A2 +0x877D 0xF2A3 +0x877E 0xF2A4 +0x87A1 0xF2A5 +0x87A2 0xF2A6 +0x87A3 0xF2A7 +0x87A4 0xF2A8 +0x87A5 0xF2A9 +0x87A6 0xF2AA +0x87A7 0xF2AB +0x87A8 0xF2AC +0x87A9 0xF2AD +0x87AA 0xF2AE +0x87AB 0xF2AF +0x87AC 0xF2B0 +0x87AD 0xF2B1 +0x87AE 0xF2B2 +0x87AF 0xF2B3 +0x87B0 0xF2B4 +0x87B1 0xF2B5 +0x87B2 0xF2B6 +0x87B3 0xF2B7 +0x87B4 0xF2B8 +0x87B5 0xF2B9 +0x87B6 0xF2BA +0x87B7 0xF2BB +0x87B8 0xF2BC +0x87B9 0xF2BD +0x87BA 0xF2BE +0x87BB 0xF2BF +0x87BC 0xF2C0 +0x87BD 0xF2C1 +0x87BE 0xF2C2 +0x87BF 0xF2C3 +0x87C0 0xF2C4 +0x87C1 0xF2C5 +0x87C2 0xF2C6 +0x87C3 0xF2C7 +0x87C4 0xF2C8 +0x87C5 0xF2C9 +0x87C6 0xF2CA +0x87C7 0xF2CB +0x87C8 0xF2CC +0x87C9 0xF2CD +0x87CA 0xF2CE +0x87CB 0xF2CF +0x87CC 0xF2D0 +0x87CD 0xF2D1 +0x87CE 0xF2D2 +0x87CF 0xF2D3 +0x87D0 0xF2D4 +0x87D1 0xF2D5 +0x87D2 0xF2D6 +0x87D3 0xF2D7 +0x87D4 0xF2D8 +0x87D5 0xF2D9 +0x87D6 0xF2DA +0x87D7 0xF2DB +0x87D8 0xF2DC +0x87D9 0xF2DD +0x87DA 0xF2DE +0x87DB 0xF2DF +0x87DC 0xF2E0 +0x87DD 0xF2E1 +0x87DE 0xF2E2 +0x87DF 0xF2E3 +0x87E0 0xF2E4 +0x87E1 0xF2E5 +0x87E2 0xF2E6 +0x87E3 0xF2E7 +0x87E4 0xF2E8 +0x87E5 0xF2E9 +0x87E6 0xF2EA +0x87E7 0xF2EB +0x87E8 0xF2EC +0x87E9 0xF2ED +0x87EA 0xF2EE +0x87EB 0xF2EF +0x87EC 0xF2F0 +0x87ED 0xF2F1 +0x87EE 0xF2F2 +0x87EF 0xF2F3 +0x87F0 0xF2F4 +0x87F1 0xF2F5 +0x87F2 0xF2F6 +0x87F3 0xF2F7 +0x87F4 0xF2F8 +0x87F5 0xF2F9 +0x87F6 0xF2FA +0x87F7 0xF2FB +0x87F8 0xF2FC +0x87F9 0xF2FD +0x87FA 0xF2FE +0x87FB 0xF2FF +0x87FC 0xF300 +0x87FD 0xF301 +0x87FE 0xF302 +0x8840 0xF303 +0x8841 0xF304 +0x8842 0xF305 +0x8843 0xF306 +0x8844 0xF307 +0x8845 0xF308 +0x8846 0xF309 +0x8847 0xF30A +0x8848 0xF30B +0x8849 0xF30C +0x884A 0xF30D +0x884B 0xF30E +0x884C 0xF30F +0x884D 0xF310 +0x884E 0xF311 +0x884F 0xF312 +0x8850 0xF313 +0x8851 0xF314 +0x8852 0xF315 +0x8853 0xF316 +0x8854 0xF317 +0x8855 0xF318 +0x8856 0xF319 +0x8857 0xF31A +0x8858 0xF31B +0x8859 0xF31C +0x885A 0xF31D +0x885B 0xF31E +0x885C 0xF31F +0x885D 0xF320 +0x885E 0xF321 +0x885F 0xF322 +0x8860 0xF323 +0x8861 0xF324 +0x8862 0xF325 +0x8863 0xF326 +0x8864 0xF327 +0x8865 0xF328 +0x8866 0xF329 +0x8867 0xF32A +0x8868 0xF32B +0x8869 0xF32C +0x886A 0xF32D +0x886B 0xF32E +0x886C 0xF32F +0x886D 0xF330 +0x886E 0xF331 +0x886F 0xF332 +0x8870 0xF333 +0x8871 0xF334 +0x8872 0xF335 +0x8873 0xF336 +0x8874 0xF337 +0x8875 0xF338 +0x8876 0xF339 +0x8877 0xF33A +0x8878 0xF33B +0x8879 0xF33C +0x887A 0xF33D +0x887B 0xF33E +0x887C 0xF33F +0x887D 0xF340 +0x887E 0xF341 +0x88A1 0xF342 +0x88A2 0xF343 +0x88A3 0xF344 +0x88A4 0xF345 +0x88A5 0xF346 +0x88A6 0xF347 +0x88A7 0xF348 +0x88A8 0xF349 +0x88A9 0xF34A +0x88AA 0xF34B +0x88AB 0xF34C +0x88AC 0xF34D +0x88AD 0xF34E +0x88AE 0xF34F +0x88AF 0xF350 +0x88B0 0xF351 +0x88B1 0xF352 +0x88B2 0xF353 +0x88B3 0xF354 +0x88B4 0xF355 +0x88B5 0xF356 +0x88B6 0xF357 +0x88B7 0xF358 +0x88B8 0xF359 +0x88B9 0xF35A +0x88BA 0xF35B +0x88BB 0xF35C +0x88BC 0xF35D +0x88BD 0xF35E +0x88BE 0xF35F +0x88BF 0xF360 +0x88C0 0xF361 +0x88C1 0xF362 +0x88C2 0xF363 +0x88C3 0xF364 +0x88C4 0xF365 +0x88C5 0xF366 +0x88C6 0xF367 +0x88C7 0xF368 +0x88C8 0xF369 +0x88C9 0xF36A +0x88CA 0xF36B +0x88CB 0xF36C +0x88CC 0xF36D +0x88CD 0xF36E +0x88CE 0xF36F +0x88CF 0xF370 +0x88D0 0xF371 +0x88D1 0xF372 +0x88D2 0xF373 +0x88D3 0xF374 +0x88D4 0xF375 +0x88D5 0xF376 +0x88D6 0xF377 +0x88D7 0xF378 +0x88D8 0xF379 +0x88D9 0xF37A +0x88DA 0xF37B +0x88DB 0xF37C +0x88DC 0xF37D +0x88DD 0xF37E +0x88DE 0xF37F +0x88DF 0xF380 +0x88E0 0xF381 +0x88E1 0xF382 +0x88E2 0xF383 +0x88E3 0xF384 +0x88E4 0xF385 +0x88E5 0xF386 +0x88E6 0xF387 +0x88E7 0xF388 +0x88E8 0xF389 +0x88E9 0xF38A +0x88EA 0xF38B +0x88EB 0xF38C +0x88EC 0xF38D +0x88ED 0xF38E +0x88EE 0xF38F +0x88EF 0xF390 +0x88F0 0xF391 +0x88F1 0xF392 +0x88F2 0xF393 +0x88F3 0xF394 +0x88F4 0xF395 +0x88F5 0xF396 +0x88F6 0xF397 +0x88F7 0xF398 +0x88F8 0xF399 +0x88F9 0xF39A +0x88FA 0xF39B +0x88FB 0xF39C +0x88FC 0xF39D +0x88FD 0xF39E +0x88FE 0xF39F +0x8940 0xF3A0 +0x8941 0xF3A1 +0x8942 0xF3A2 +0x8943 0xF3A3 +0x8944 0xF3A4 +0x8945 0xF3A5 +0x8946 0xF3A6 +0x8947 0xF3A7 +0x8948 0xF3A8 +0x8949 0xF3A9 +0x894A 0xF3AA +0x894B 0xF3AB +0x894C 0xF3AC +0x894D 0xF3AD +0x894E 0xF3AE +0x894F 0xF3AF +0x8950 0xF3B0 +0x8951 0xF3B1 +0x8952 0xF3B2 +0x8953 0xF3B3 +0x8954 0xF3B4 +0x8955 0xF3B5 +0x8956 0xF3B6 +0x8957 0xF3B7 +0x8958 0xF3B8 +0x8959 0xF3B9 +0x895A 0xF3BA +0x895B 0xF3BB +0x895C 0xF3BC +0x895D 0xF3BD +0x895E 0xF3BE +0x895F 0xF3BF +0x8960 0xF3C0 +0x8961 0xF3C1 +0x8962 0xF3C2 +0x8963 0xF3C3 +0x8964 0xF3C4 +0x8965 0xF3C5 +0x8966 0xF3C6 +0x8967 0xF3C7 +0x8968 0xF3C8 +0x8969 0xF3C9 +0x896A 0xF3CA +0x896B 0xF3CB +0x896C 0xF3CC +0x896D 0xF3CD +0x896E 0xF3CE +0x896F 0xF3CF +0x8970 0xF3D0 +0x8971 0xF3D1 +0x8972 0xF3D2 +0x8973 0xF3D3 +0x8974 0xF3D4 +0x8975 0xF3D5 +0x8976 0xF3D6 +0x8977 0xF3D7 +0x8978 0xF3D8 +0x8979 0xF3D9 +0x897A 0xF3DA +0x897B 0xF3DB +0x897C 0xF3DC +0x897D 0xF3DD +0x897E 0xF3DE +0x89A1 0xF3DF +0x89A2 0xF3E0 +0x89A3 0xF3E1 +0x89A4 0xF3E2 +0x89A5 0xF3E3 +0x89A6 0xF3E4 +0x89A7 0xF3E5 +0x89A8 0xF3E6 +0x89A9 0xF3E7 +0x89AA 0xF3E8 +0x89AB 0xF3E9 +0x89AC 0xF3EA +0x89AD 0xF3EB +0x89AE 0xF3EC +0x89AF 0xF3ED +0x89B0 0xF3EE +0x89B1 0xF3EF +0x89B2 0xF3F0 +0x89B3 0xF3F1 +0x89B4 0xF3F2 +0x89B5 0xF3F3 +0x89B6 0xF3F4 +0x89B7 0xF3F5 +0x89B8 0xF3F6 +0x89B9 0xF3F7 +0x89BA 0xF3F8 +0x89BB 0xF3F9 +0x89BC 0xF3FA +0x89BD 0xF3FB +0x89BE 0xF3FC +0x89BF 0xF3FD +0x89C0 0xF3FE +0x89C1 0xF3FF +0x89C2 0xF400 +0x89C3 0xF401 +0x89C4 0xF402 +0x89C5 0xF403 +0x89C6 0xF404 +0x89C7 0xF405 +0x89C8 0xF406 +0x89C9 0xF407 +0x89CA 0xF408 +0x89CB 0xF409 +0x89CC 0xF40A +0x89CD 0xF40B +0x89CE 0xF40C +0x89CF 0xF40D +0x89D0 0xF40E +0x89D1 0xF40F +0x89D2 0xF410 +0x89D3 0xF411 +0x89D4 0xF412 +0x89D5 0xF413 +0x89D6 0xF414 +0x89D7 0xF415 +0x89D8 0xF416 +0x89D9 0xF417 +0x89DA 0xF418 +0x89DB 0xF419 +0x89DC 0xF41A +0x89DD 0xF41B +0x89DE 0xF41C +0x89DF 0xF41D +0x89E0 0xF41E +0x89E1 0xF41F +0x89E2 0xF420 +0x89E3 0xF421 +0x89E4 0xF422 +0x89E5 0xF423 +0x89E6 0xF424 +0x89E7 0xF425 +0x89E8 0xF426 +0x89E9 0xF427 +0x89EA 0xF428 +0x89EB 0xF429 +0x89EC 0xF42A +0x89ED 0xF42B +0x89EE 0xF42C +0x89EF 0xF42D +0x89F0 0xF42E +0x89F1 0xF42F +0x89F2 0xF430 +0x89F3 0xF431 +0x89F4 0xF432 +0x89F5 0xF433 +0x89F6 0xF434 +0x89F7 0xF435 +0x89F8 0xF436 +0x89F9 0xF437 +0x89FA 0xF438 +0x89FB 0xF439 +0x89FC 0xF43A +0x89FD 0xF43B +0x89FE 0xF43C +0x8A40 0xF43D +0x8A41 0xF43E +0x8A42 0xF43F +0x8A43 0xF440 +0x8A44 0xF441 +0x8A45 0xF442 +0x8A46 0xF443 +0x8A47 0xF444 +0x8A48 0xF445 +0x8A49 0xF446 +0x8A4A 0xF447 +0x8A4B 0xF448 +0x8A4C 0xF449 +0x8A4D 0xF44A +0x8A4E 0xF44B +0x8A4F 0xF44C +0x8A50 0xF44D +0x8A51 0xF44E +0x8A52 0xF44F +0x8A53 0xF450 +0x8A54 0xF451 +0x8A55 0xF452 +0x8A56 0xF453 +0x8A57 0xF454 +0x8A58 0xF455 +0x8A59 0xF456 +0x8A5A 0xF457 +0x8A5B 0xF458 +0x8A5C 0xF459 +0x8A5D 0xF45A +0x8A5E 0xF45B +0x8A5F 0xF45C +0x8A60 0xF45D +0x8A61 0xF45E +0x8A62 0xF45F +0x8A63 0xF460 +0x8A64 0xF461 +0x8A65 0xF462 +0x8A66 0xF463 +0x8A67 0xF464 +0x8A68 0xF465 +0x8A69 0xF466 +0x8A6A 0xF467 +0x8A6B 0xF468 +0x8A6C 0xF469 +0x8A6D 0xF46A +0x8A6E 0xF46B +0x8A6F 0xF46C +0x8A70 0xF46D +0x8A71 0xF46E +0x8A72 0xF46F +0x8A73 0xF470 +0x8A74 0xF471 +0x8A75 0xF472 +0x8A76 0xF473 +0x8A77 0xF474 +0x8A78 0xF475 +0x8A79 0xF476 +0x8A7A 0xF477 +0x8A7B 0xF478 +0x8A7C 0xF479 +0x8A7D 0xF47A +0x8A7E 0xF47B +0x8AA1 0xF47C +0x8AA2 0xF47D +0x8AA3 0xF47E +0x8AA4 0xF47F +0x8AA5 0xF480 +0x8AA6 0xF481 +0x8AA7 0xF482 +0x8AA8 0xF483 +0x8AA9 0xF484 +0x8AAA 0xF485 +0x8AAB 0xF486 +0x8AAC 0xF487 +0x8AAD 0xF488 +0x8AAE 0xF489 +0x8AAF 0xF48A +0x8AB0 0xF48B +0x8AB1 0xF48C +0x8AB2 0xF48D +0x8AB3 0xF48E +0x8AB4 0xF48F +0x8AB5 0xF490 +0x8AB6 0xF491 +0x8AB7 0xF492 +0x8AB8 0xF493 +0x8AB9 0xF494 +0x8ABA 0xF495 +0x8ABB 0xF496 +0x8ABC 0xF497 +0x8ABD 0xF498 +0x8ABE 0xF499 +0x8ABF 0xF49A +0x8AC0 0xF49B +0x8AC1 0xF49C +0x8AC2 0xF49D +0x8AC3 0xF49E +0x8AC4 0xF49F +0x8AC5 0xF4A0 +0x8AC6 0xF4A1 +0x8AC7 0xF4A2 +0x8AC8 0xF4A3 +0x8AC9 0xF4A4 +0x8ACA 0xF4A5 +0x8ACB 0xF4A6 +0x8ACC 0xF4A7 +0x8ACD 0xF4A8 +0x8ACE 0xF4A9 +0x8ACF 0xF4AA +0x8AD0 0xF4AB +0x8AD1 0xF4AC +0x8AD2 0xF4AD +0x8AD3 0xF4AE +0x8AD4 0xF4AF +0x8AD5 0xF4B0 +0x8AD6 0xF4B1 +0x8AD7 0xF4B2 +0x8AD8 0xF4B3 +0x8AD9 0xF4B4 +0x8ADA 0xF4B5 +0x8ADB 0xF4B6 +0x8ADC 0xF4B7 +0x8ADD 0xF4B8 +0x8ADE 0xF4B9 +0x8ADF 0xF4BA +0x8AE0 0xF4BB +0x8AE1 0xF4BC +0x8AE2 0xF4BD +0x8AE3 0xF4BE +0x8AE4 0xF4BF +0x8AE5 0xF4C0 +0x8AE6 0xF4C1 +0x8AE7 0xF4C2 +0x8AE8 0xF4C3 +0x8AE9 0xF4C4 +0x8AEA 0xF4C5 +0x8AEB 0xF4C6 +0x8AEC 0xF4C7 +0x8AED 0xF4C8 +0x8AEE 0xF4C9 +0x8AEF 0xF4CA +0x8AF0 0xF4CB +0x8AF1 0xF4CC +0x8AF2 0xF4CD +0x8AF3 0xF4CE +0x8AF4 0xF4CF +0x8AF5 0xF4D0 +0x8AF6 0xF4D1 +0x8AF7 0xF4D2 +0x8AF8 0xF4D3 +0x8AF9 0xF4D4 +0x8AFA 0xF4D5 +0x8AFB 0xF4D6 +0x8AFC 0xF4D7 +0x8AFD 0xF4D8 +0x8AFE 0xF4D9 +0x8B40 0xF4DA +0x8B41 0xF4DB +0x8B42 0xF4DC +0x8B43 0xF4DD +0x8B44 0xF4DE +0x8B45 0xF4DF +0x8B46 0xF4E0 +0x8B47 0xF4E1 +0x8B48 0xF4E2 +0x8B49 0xF4E3 +0x8B4A 0xF4E4 +0x8B4B 0xF4E5 +0x8B4C 0xF4E6 +0x8B4D 0xF4E7 +0x8B4E 0xF4E8 +0x8B4F 0xF4E9 +0x8B50 0xF4EA +0x8B51 0xF4EB +0x8B52 0xF4EC +0x8B53 0xF4ED +0x8B54 0xF4EE +0x8B55 0xF4EF +0x8B56 0xF4F0 +0x8B57 0xF4F1 +0x8B58 0xF4F2 +0x8B59 0xF4F3 +0x8B5A 0xF4F4 +0x8B5B 0xF4F5 +0x8B5C 0xF4F6 +0x8B5D 0xF4F7 +0x8B5E 0xF4F8 +0x8B5F 0xF4F9 +0x8B60 0xF4FA +0x8B61 0xF4FB +0x8B62 0xF4FC +0x8B63 0xF4FD +0x8B64 0xF4FE +0x8B65 0xF4FF +0x8B66 0xF500 +0x8B67 0xF501 +0x8B68 0xF502 +0x8B69 0xF503 +0x8B6A 0xF504 +0x8B6B 0xF505 +0x8B6C 0xF506 +0x8B6D 0xF507 +0x8B6E 0xF508 +0x8B6F 0xF509 +0x8B70 0xF50A +0x8B71 0xF50B +0x8B72 0xF50C +0x8B73 0xF50D +0x8B74 0xF50E +0x8B75 0xF50F +0x8B76 0xF510 +0x8B77 0xF511 +0x8B78 0xF512 +0x8B79 0xF513 +0x8B7A 0xF514 +0x8B7B 0xF515 +0x8B7C 0xF516 +0x8B7D 0xF517 +0x8B7E 0xF518 +0x8BA1 0xF519 +0x8BA2 0xF51A +0x8BA3 0xF51B +0x8BA4 0xF51C +0x8BA5 0xF51D +0x8BA6 0xF51E +0x8BA7 0xF51F +0x8BA8 0xF520 +0x8BA9 0xF521 +0x8BAA 0xF522 +0x8BAB 0xF523 +0x8BAC 0xF524 +0x8BAD 0xF525 +0x8BAE 0xF526 +0x8BAF 0xF527 +0x8BB0 0xF528 +0x8BB1 0xF529 +0x8BB2 0xF52A +0x8BB3 0xF52B +0x8BB4 0xF52C +0x8BB5 0xF52D +0x8BB6 0xF52E +0x8BB7 0xF52F +0x8BB8 0xF530 +0x8BB9 0xF531 +0x8BBA 0xF532 +0x8BBB 0xF533 +0x8BBC 0xF534 +0x8BBD 0xF535 +0x8BBE 0xF536 +0x8BBF 0xF537 +0x8BC0 0xF538 +0x8BC1 0xF539 +0x8BC2 0xF53A +0x8BC3 0xF53B +0x8BC4 0xF53C +0x8BC5 0xF53D +0x8BC6 0xF53E +0x8BC7 0xF53F +0x8BC8 0xF540 +0x8BC9 0xF541 +0x8BCA 0xF542 +0x8BCB 0xF543 +0x8BCC 0xF544 +0x8BCD 0xF545 +0x8BCE 0xF546 +0x8BCF 0xF547 +0x8BD0 0xF548 +0x8BD1 0xF549 +0x8BD2 0xF54A +0x8BD3 0xF54B +0x8BD4 0xF54C +0x8BD5 0xF54D +0x8BD6 0xF54E +0x8BD7 0xF54F +0x8BD8 0xF550 +0x8BD9 0xF551 +0x8BDA 0xF552 +0x8BDB 0xF553 +0x8BDC 0xF554 +0x8BDD 0xF555 +0x8BDE 0xF556 +0x8BDF 0xF557 +0x8BE0 0xF558 +0x8BE1 0xF559 +0x8BE2 0xF55A +0x8BE3 0xF55B +0x8BE4 0xF55C +0x8BE5 0xF55D +0x8BE6 0xF55E +0x8BE7 0xF55F +0x8BE8 0xF560 +0x8BE9 0xF561 +0x8BEA 0xF562 +0x8BEB 0xF563 +0x8BEC 0xF564 +0x8BED 0xF565 +0x8BEE 0xF566 +0x8BEF 0xF567 +0x8BF0 0xF568 +0x8BF1 0xF569 +0x8BF2 0xF56A +0x8BF3 0xF56B +0x8BF4 0xF56C +0x8BF5 0xF56D +0x8BF6 0xF56E +0x8BF7 0xF56F +0x8BF8 0xF570 +0x8BF9 0xF571 +0x8BFA 0xF572 +0x8BFB 0xF573 +0x8BFC 0xF574 +0x8BFD 0xF575 +0x8BFE 0xF576 +0x8C40 0xF577 +0x8C41 0xF578 +0x8C42 0xF579 +0x8C43 0xF57A +0x8C44 0xF57B +0x8C45 0xF57C +0x8C46 0xF57D +0x8C47 0xF57E +0x8C48 0xF57F +0x8C49 0xF580 +0x8C4A 0xF581 +0x8C4B 0xF582 +0x8C4C 0xF583 +0x8C4D 0xF584 +0x8C4E 0xF585 +0x8C4F 0xF586 +0x8C50 0xF587 +0x8C51 0xF588 +0x8C52 0xF589 +0x8C53 0xF58A +0x8C54 0xF58B +0x8C55 0xF58C +0x8C56 0xF58D +0x8C57 0xF58E +0x8C58 0xF58F +0x8C59 0xF590 +0x8C5A 0xF591 +0x8C5B 0xF592 +0x8C5C 0xF593 +0x8C5D 0xF594 +0x8C5E 0xF595 +0x8C5F 0xF596 +0x8C60 0xF597 +0x8C61 0xF598 +0x8C62 0xF599 +0x8C63 0xF59A +0x8C64 0xF59B +0x8C65 0xF59C +0x8C66 0xF59D +0x8C67 0xF59E +0x8C68 0xF59F +0x8C69 0xF5A0 +0x8C6A 0xF5A1 +0x8C6B 0xF5A2 +0x8C6C 0xF5A3 +0x8C6D 0xF5A4 +0x8C6E 0xF5A5 +0x8C6F 0xF5A6 +0x8C70 0xF5A7 +0x8C71 0xF5A8 +0x8C72 0xF5A9 +0x8C73 0xF5AA +0x8C74 0xF5AB +0x8C75 0xF5AC +0x8C76 0xF5AD +0x8C77 0xF5AE +0x8C78 0xF5AF +0x8C79 0xF5B0 +0x8C7A 0xF5B1 +0x8C7B 0xF5B2 +0x8C7C 0xF5B3 +0x8C7D 0xF5B4 +0x8C7E 0xF5B5 +0x8CA1 0xF5B6 +0x8CA2 0xF5B7 +0x8CA3 0xF5B8 +0x8CA4 0xF5B9 +0x8CA5 0xF5BA +0x8CA6 0xF5BB +0x8CA7 0xF5BC +0x8CA8 0xF5BD +0x8CA9 0xF5BE +0x8CAA 0xF5BF +0x8CAB 0xF5C0 +0x8CAC 0xF5C1 +0x8CAD 0xF5C2 +0x8CAE 0xF5C3 +0x8CAF 0xF5C4 +0x8CB0 0xF5C5 +0x8CB1 0xF5C6 +0x8CB2 0xF5C7 +0x8CB3 0xF5C8 +0x8CB4 0xF5C9 +0x8CB5 0xF5CA +0x8CB6 0xF5CB +0x8CB7 0xF5CC +0x8CB8 0xF5CD +0x8CB9 0xF5CE +0x8CBA 0xF5CF +0x8CBB 0xF5D0 +0x8CBC 0xF5D1 +0x8CBD 0xF5D2 +0x8CBE 0xF5D3 +0x8CBF 0xF5D4 +0x8CC0 0xF5D5 +0x8CC1 0xF5D6 +0x8CC2 0xF5D7 +0x8CC3 0xF5D8 +0x8CC4 0xF5D9 +0x8CC5 0xF5DA +0x8CC6 0xF5DB +0x8CC7 0xF5DC +0x8CC8 0xF5DD +0x8CC9 0xF5DE +0x8CCA 0xF5DF +0x8CCB 0xF5E0 +0x8CCC 0xF5E1 +0x8CCD 0xF5E2 +0x8CCE 0xF5E3 +0x8CCF 0xF5E4 +0x8CD0 0xF5E5 +0x8CD1 0xF5E6 +0x8CD2 0xF5E7 +0x8CD3 0xF5E8 +0x8CD4 0xF5E9 +0x8CD5 0xF5EA +0x8CD6 0xF5EB +0x8CD7 0xF5EC +0x8CD8 0xF5ED +0x8CD9 0xF5EE +0x8CDA 0xF5EF +0x8CDB 0xF5F0 +0x8CDC 0xF5F1 +0x8CDD 0xF5F2 +0x8CDE 0xF5F3 +0x8CDF 0xF5F4 +0x8CE0 0xF5F5 +0x8CE1 0xF5F6 +0x8CE2 0xF5F7 +0x8CE3 0xF5F8 +0x8CE4 0xF5F9 +0x8CE5 0xF5FA +0x8CE6 0xF5FB +0x8CE7 0xF5FC +0x8CE8 0xF5FD +0x8CE9 0xF5FE +0x8CEA 0xF5FF +0x8CEB 0xF600 +0x8CEC 0xF601 +0x8CED 0xF602 +0x8CEE 0xF603 +0x8CEF 0xF604 +0x8CF0 0xF605 +0x8CF1 0xF606 +0x8CF2 0xF607 +0x8CF3 0xF608 +0x8CF4 0xF609 +0x8CF5 0xF60A +0x8CF6 0xF60B +0x8CF7 0xF60C +0x8CF8 0xF60D +0x8CF9 0xF60E +0x8CFA 0xF60F +0x8CFB 0xF610 +0x8CFC 0xF611 +0x8CFD 0xF612 +0x8CFE 0xF613 +0x8D40 0xF614 +0x8D41 0xF615 +0x8D42 0xF616 +0x8D43 0xF617 +0x8D44 0xF618 +0x8D45 0xF619 +0x8D46 0xF61A +0x8D47 0xF61B +0x8D48 0xF61C +0x8D49 0xF61D +0x8D4A 0xF61E +0x8D4B 0xF61F +0x8D4C 0xF620 +0x8D4D 0xF621 +0x8D4E 0xF622 +0x8D4F 0xF623 +0x8D50 0xF624 +0x8D51 0xF625 +0x8D52 0xF626 +0x8D53 0xF627 +0x8D54 0xF628 +0x8D55 0xF629 +0x8D56 0xF62A +0x8D57 0xF62B +0x8D58 0xF62C +0x8D59 0xF62D +0x8D5A 0xF62E +0x8D5B 0xF62F +0x8D5C 0xF630 +0x8D5D 0xF631 +0x8D5E 0xF632 +0x8D5F 0xF633 +0x8D60 0xF634 +0x8D61 0xF635 +0x8D62 0xF636 +0x8D63 0xF637 +0x8D64 0xF638 +0x8D65 0xF639 +0x8D66 0xF63A +0x8D67 0xF63B +0x8D68 0xF63C +0x8D69 0xF63D +0x8D6A 0xF63E +0x8D6B 0xF63F +0x8D6C 0xF640 +0x8D6D 0xF641 +0x8D6E 0xF642 +0x8D6F 0xF643 +0x8D70 0xF644 +0x8D71 0xF645 +0x8D72 0xF646 +0x8D73 0xF647 +0x8D74 0xF648 +0x8D75 0xF649 +0x8D76 0xF64A +0x8D77 0xF64B +0x8D78 0xF64C +0x8D79 0xF64D +0x8D7A 0xF64E +0x8D7B 0xF64F +0x8D7C 0xF650 +0x8D7D 0xF651 +0x8D7E 0xF652 +0x8DA1 0xF653 +0x8DA2 0xF654 +0x8DA3 0xF655 +0x8DA4 0xF656 +0x8DA5 0xF657 +0x8DA6 0xF658 +0x8DA7 0xF659 +0x8DA8 0xF65A +0x8DA9 0xF65B +0x8DAA 0xF65C +0x8DAB 0xF65D +0x8DAC 0xF65E +0x8DAD 0xF65F +0x8DAE 0xF660 +0x8DAF 0xF661 +0x8DB0 0xF662 +0x8DB1 0xF663 +0x8DB2 0xF664 +0x8DB3 0xF665 +0x8DB4 0xF666 +0x8DB5 0xF667 +0x8DB6 0xF668 +0x8DB7 0xF669 +0x8DB8 0xF66A +0x8DB9 0xF66B +0x8DBA 0xF66C +0x8DBB 0xF66D +0x8DBC 0xF66E +0x8DBD 0xF66F +0x8DBE 0xF670 +0x8DBF 0xF671 +0x8DC0 0xF672 +0x8DC1 0xF673 +0x8DC2 0xF674 +0x8DC3 0xF675 +0x8DC4 0xF676 +0x8DC5 0xF677 +0x8DC6 0xF678 +0x8DC7 0xF679 +0x8DC8 0xF67A +0x8DC9 0xF67B +0x8DCA 0xF67C +0x8DCB 0xF67D +0x8DCC 0xF67E +0x8DCD 0xF67F +0x8DCE 0xF680 +0x8DCF 0xF681 +0x8DD0 0xF682 +0x8DD1 0xF683 +0x8DD2 0xF684 +0x8DD3 0xF685 +0x8DD4 0xF686 +0x8DD5 0xF687 +0x8DD6 0xF688 +0x8DD7 0xF689 +0x8DD8 0xF68A +0x8DD9 0xF68B +0x8DDA 0xF68C +0x8DDB 0xF68D +0x8DDC 0xF68E +0x8DDD 0xF68F +0x8DDE 0xF690 +0x8DDF 0xF691 +0x8DE0 0xF692 +0x8DE1 0xF693 +0x8DE2 0xF694 +0x8DE3 0xF695 +0x8DE4 0xF696 +0x8DE5 0xF697 +0x8DE6 0xF698 +0x8DE7 0xF699 +0x8DE8 0xF69A +0x8DE9 0xF69B +0x8DEA 0xF69C +0x8DEB 0xF69D +0x8DEC 0xF69E +0x8DED 0xF69F +0x8DEE 0xF6A0 +0x8DEF 0xF6A1 +0x8DF0 0xF6A2 +0x8DF1 0xF6A3 +0x8DF2 0xF6A4 +0x8DF3 0xF6A5 +0x8DF4 0xF6A6 +0x8DF5 0xF6A7 +0x8DF6 0xF6A8 +0x8DF7 0xF6A9 +0x8DF8 0xF6AA +0x8DF9 0xF6AB +0x8DFA 0xF6AC +0x8DFB 0xF6AD +0x8DFC 0xF6AE +0x8DFD 0xF6AF +0x8DFE 0xF6B0 +0x8E40 0xE311 +0x8E41 0xE312 +0x8E42 0xE313 +0x8E43 0xE314 +0x8E44 0xE315 +0x8E45 0xE316 +0x8E46 0xE317 +0x8E47 0xE318 +0x8E48 0xE319 +0x8E49 0xE31A +0x8E4A 0xE31B +0x8E4B 0xE31C +0x8E4C 0xE31D +0x8E4D 0xE31E +0x8E4E 0xE31F +0x8E4F 0xE320 +0x8E50 0xE321 +0x8E51 0xE322 +0x8E52 0xE323 +0x8E53 0xE324 +0x8E54 0xE325 +0x8E55 0xE326 +0x8E56 0xE327 +0x8E57 0xE328 +0x8E58 0xE329 +0x8E59 0xE32A +0x8E5A 0xE32B +0x8E5B 0xE32C +0x8E5C 0xE32D +0x8E5D 0xE32E +0x8E5E 0xE32F +0x8E5F 0xE330 +0x8E60 0xE331 +0x8E61 0xE332 +0x8E62 0xE333 +0x8E63 0xE334 +0x8E64 0xE335 +0x8E65 0xE336 +0x8E66 0xE337 +0x8E67 0xE338 +0x8E68 0xE339 +0x8E69 0xE33A +0x8E6A 0xE33B +0x8E6B 0xE33C +0x8E6C 0xE33D +0x8E6D 0xE33E +0x8E6E 0xE33F +0x8E6F 0xE340 +0x8E70 0xE341 +0x8E71 0xE342 +0x8E72 0xE343 +0x8E73 0xE344 +0x8E74 0xE345 +0x8E75 0xE346 +0x8E76 0xE347 +0x8E77 0xE348 +0x8E78 0xE349 +0x8E79 0xE34A +0x8E7A 0xE34B +0x8E7B 0xE34C +0x8E7C 0xE34D +0x8E7D 0xE34E +0x8E7E 0xE34F +0x8EA1 0xE350 +0x8EA2 0xE351 +0x8EA3 0xE352 +0x8EA4 0xE353 +0x8EA5 0xE354 +0x8EA6 0xE355 +0x8EA7 0xE356 +0x8EA8 0xE357 +0x8EA9 0xE358 +0x8EAA 0xE359 +0x8EAB 0xE35A +0x8EAC 0xE35B +0x8EAD 0xE35C +0x8EAE 0xE35D +0x8EAF 0xE35E +0x8EB0 0xE35F +0x8EB1 0xE360 +0x8EB2 0xE361 +0x8EB3 0xE362 +0x8EB4 0xE363 +0x8EB5 0xE364 +0x8EB6 0xE365 +0x8EB7 0xE366 +0x8EB8 0xE367 +0x8EB9 0xE368 +0x8EBA 0xE369 +0x8EBB 0xE36A +0x8EBC 0xE36B +0x8EBD 0xE36C +0x8EBE 0xE36D +0x8EBF 0xE36E +0x8EC0 0xE36F +0x8EC1 0xE370 +0x8EC2 0xE371 +0x8EC3 0xE372 +0x8EC4 0xE373 +0x8EC5 0xE374 +0x8EC6 0xE375 +0x8EC7 0xE376 +0x8EC8 0xE377 +0x8EC9 0xE378 +0x8ECA 0xE379 +0x8ECB 0xE37A +0x8ECC 0xE37B +0x8ECD 0xE37C +0x8ECE 0xE37D +0x8ECF 0xE37E +0x8ED0 0xE37F +0x8ED1 0xE380 +0x8ED2 0xE381 +0x8ED3 0xE382 +0x8ED4 0xE383 +0x8ED5 0xE384 +0x8ED6 0xE385 +0x8ED7 0xE386 +0x8ED8 0xE387 +0x8ED9 0xE388 +0x8EDA 0xE389 +0x8EDB 0xE38A +0x8EDC 0xE38B +0x8EDD 0xE38C +0x8EDE 0xE38D +0x8EDF 0xE38E +0x8EE0 0xE38F +0x8EE1 0xE390 +0x8EE2 0xE391 +0x8EE3 0xE392 +0x8EE4 0xE393 +0x8EE5 0xE394 +0x8EE6 0xE395 +0x8EE7 0xE396 +0x8EE8 0xE397 +0x8EE9 0xE398 +0x8EEA 0xE399 +0x8EEB 0xE39A +0x8EEC 0xE39B +0x8EED 0xE39C +0x8EEE 0xE39D +0x8EEF 0xE39E +0x8EF0 0xE39F +0x8EF1 0xE3A0 +0x8EF2 0xE3A1 +0x8EF3 0xE3A2 +0x8EF4 0xE3A3 +0x8EF5 0xE3A4 +0x8EF6 0xE3A5 +0x8EF7 0xE3A6 +0x8EF8 0xE3A7 +0x8EF9 0xE3A8 +0x8EFA 0xE3A9 +0x8EFB 0xE3AA +0x8EFC 0xE3AB +0x8EFD 0xE3AC +0x8EFE 0xE3AD +0x8F40 0xE3AE +0x8F41 0xE3AF +0x8F42 0xE3B0 +0x8F43 0xE3B1 +0x8F44 0xE3B2 +0x8F45 0xE3B3 +0x8F46 0xE3B4 +0x8F47 0xE3B5 +0x8F48 0xE3B6 +0x8F49 0xE3B7 +0x8F4A 0xE3B8 +0x8F4B 0xE3B9 +0x8F4C 0xE3BA +0x8F4D 0xE3BB +0x8F4E 0xE3BC +0x8F4F 0xE3BD +0x8F50 0xE3BE +0x8F51 0xE3BF +0x8F52 0xE3C0 +0x8F53 0xE3C1 +0x8F54 0xE3C2 +0x8F55 0xE3C3 +0x8F56 0xE3C4 +0x8F57 0xE3C5 +0x8F58 0xE3C6 +0x8F59 0xE3C7 +0x8F5A 0xE3C8 +0x8F5B 0xE3C9 +0x8F5C 0xE3CA +0x8F5D 0xE3CB +0x8F5E 0xE3CC +0x8F5F 0xE3CD +0x8F60 0xE3CE +0x8F61 0xE3CF +0x8F62 0xE3D0 +0x8F63 0xE3D1 +0x8F64 0xE3D2 +0x8F65 0xE3D3 +0x8F66 0xE3D4 +0x8F67 0xE3D5 +0x8F68 0xE3D6 +0x8F69 0xE3D7 +0x8F6A 0xE3D8 +0x8F6B 0xE3D9 +0x8F6C 0xE3DA +0x8F6D 0xE3DB +0x8F6E 0xE3DC +0x8F6F 0xE3DD +0x8F70 0xE3DE +0x8F71 0xE3DF +0x8F72 0xE3E0 +0x8F73 0xE3E1 +0x8F74 0xE3E2 +0x8F75 0xE3E3 +0x8F76 0xE3E4 +0x8F77 0xE3E5 +0x8F78 0xE3E6 +0x8F79 0xE3E7 +0x8F7A 0xE3E8 +0x8F7B 0xE3E9 +0x8F7C 0xE3EA +0x8F7D 0xE3EB +0x8F7E 0xE3EC +0x8FA1 0xE3ED +0x8FA2 0xE3EE +0x8FA3 0xE3EF +0x8FA4 0xE3F0 +0x8FA5 0xE3F1 +0x8FA6 0xE3F2 +0x8FA7 0xE3F3 +0x8FA8 0xE3F4 +0x8FA9 0xE3F5 +0x8FAA 0xE3F6 +0x8FAB 0xE3F7 +0x8FAC 0xE3F8 +0x8FAD 0xE3F9 +0x8FAE 0xE3FA +0x8FAF 0xE3FB +0x8FB0 0xE3FC +0x8FB1 0xE3FD +0x8FB2 0xE3FE +0x8FB3 0xE3FF +0x8FB4 0xE400 +0x8FB5 0xE401 +0x8FB6 0xE402 +0x8FB7 0xE403 +0x8FB8 0xE404 +0x8FB9 0xE405 +0x8FBA 0xE406 +0x8FBB 0xE407 +0x8FBC 0xE408 +0x8FBD 0xE409 +0x8FBE 0xE40A +0x8FBF 0xE40B +0x8FC0 0xE40C +0x8FC1 0xE40D +0x8FC2 0xE40E +0x8FC3 0xE40F +0x8FC4 0xE410 +0x8FC5 0xE411 +0x8FC6 0xE412 +0x8FC7 0xE413 +0x8FC8 0xE414 +0x8FC9 0xE415 +0x8FCA 0xE416 +0x8FCB 0xE417 +0x8FCC 0xE418 +0x8FCD 0xE419 +0x8FCE 0xE41A +0x8FCF 0xE41B +0x8FD0 0xE41C +0x8FD1 0xE41D +0x8FD2 0xE41E +0x8FD3 0xE41F +0x8FD4 0xE420 +0x8FD5 0xE421 +0x8FD6 0xE422 +0x8FD7 0xE423 +0x8FD8 0xE424 +0x8FD9 0xE425 +0x8FDA 0xE426 +0x8FDB 0xE427 +0x8FDC 0xE428 +0x8FDD 0xE429 +0x8FDE 0xE42A +0x8FDF 0xE42B +0x8FE0 0xE42C +0x8FE1 0xE42D +0x8FE2 0xE42E +0x8FE3 0xE42F +0x8FE4 0xE430 +0x8FE5 0xE431 +0x8FE6 0xE432 +0x8FE7 0xE433 +0x8FE8 0xE434 +0x8FE9 0xE435 +0x8FEA 0xE436 +0x8FEB 0xE437 +0x8FEC 0xE438 +0x8FED 0xE439 +0x8FEE 0xE43A +0x8FEF 0xE43B +0x8FF0 0xE43C +0x8FF1 0xE43D +0x8FF2 0xE43E +0x8FF3 0xE43F +0x8FF4 0xE440 +0x8FF5 0xE441 +0x8FF6 0xE442 +0x8FF7 0xE443 +0x8FF8 0xE444 +0x8FF9 0xE445 +0x8FFA 0xE446 +0x8FFB 0xE447 +0x8FFC 0xE448 +0x8FFD 0xE449 +0x8FFE 0xE44A +0x9040 0xE44B +0x9041 0xE44C +0x9042 0xE44D +0x9043 0xE44E +0x9044 0xE44F +0x9045 0xE450 +0x9046 0xE451 +0x9047 0xE452 +0x9048 0xE453 +0x9049 0xE454 +0x904A 0xE455 +0x904B 0xE456 +0x904C 0xE457 +0x904D 0xE458 +0x904E 0xE459 +0x904F 0xE45A +0x9050 0xE45B +0x9051 0xE45C +0x9052 0xE45D +0x9053 0xE45E +0x9054 0xE45F +0x9055 0xE460 +0x9056 0xE461 +0x9057 0xE462 +0x9058 0xE463 +0x9059 0xE464 +0x905A 0xE465 +0x905B 0xE466 +0x905C 0xE467 +0x905D 0xE468 +0x905E 0xE469 +0x905F 0xE46A +0x9060 0xE46B +0x9061 0xE46C +0x9062 0xE46D +0x9063 0xE46E +0x9064 0xE46F +0x9065 0xE470 +0x9066 0xE471 +0x9067 0xE472 +0x9068 0xE473 +0x9069 0xE474 +0x906A 0xE475 +0x906B 0xE476 +0x906C 0xE477 +0x906D 0xE478 +0x906E 0xE479 +0x906F 0xE47A +0x9070 0xE47B +0x9071 0xE47C +0x9072 0xE47D +0x9073 0xE47E +0x9074 0xE47F +0x9075 0xE480 +0x9076 0xE481 +0x9077 0xE482 +0x9078 0xE483 +0x9079 0xE484 +0x907A 0xE485 +0x907B 0xE486 +0x907C 0xE487 +0x907D 0xE488 +0x907E 0xE489 +0x90A1 0xE48A +0x90A2 0xE48B +0x90A3 0xE48C +0x90A4 0xE48D +0x90A5 0xE48E +0x90A6 0xE48F +0x90A7 0xE490 +0x90A8 0xE491 +0x90A9 0xE492 +0x90AA 0xE493 +0x90AB 0xE494 +0x90AC 0xE495 +0x90AD 0xE496 +0x90AE 0xE497 +0x90AF 0xE498 +0x90B0 0xE499 +0x90B1 0xE49A +0x90B2 0xE49B +0x90B3 0xE49C +0x90B4 0xE49D +0x90B5 0xE49E +0x90B6 0xE49F +0x90B7 0xE4A0 +0x90B8 0xE4A1 +0x90B9 0xE4A2 +0x90BA 0xE4A3 +0x90BB 0xE4A4 +0x90BC 0xE4A5 +0x90BD 0xE4A6 +0x90BE 0xE4A7 +0x90BF 0xE4A8 +0x90C0 0xE4A9 +0x90C1 0xE4AA +0x90C2 0xE4AB +0x90C3 0xE4AC +0x90C4 0xE4AD +0x90C5 0xE4AE +0x90C6 0xE4AF +0x90C7 0xE4B0 +0x90C8 0xE4B1 +0x90C9 0xE4B2 +0x90CA 0xE4B3 +0x90CB 0xE4B4 +0x90CC 0xE4B5 +0x90CD 0xE4B6 +0x90CE 0xE4B7 +0x90CF 0xE4B8 +0x90D0 0xE4B9 +0x90D1 0xE4BA +0x90D2 0xE4BB +0x90D3 0xE4BC +0x90D4 0xE4BD +0x90D5 0xE4BE +0x90D6 0xE4BF +0x90D7 0xE4C0 +0x90D8 0xE4C1 +0x90D9 0xE4C2 +0x90DA 0xE4C3 +0x90DB 0xE4C4 +0x90DC 0xE4C5 +0x90DD 0xE4C6 +0x90DE 0xE4C7 +0x90DF 0xE4C8 +0x90E0 0xE4C9 +0x90E1 0xE4CA +0x90E2 0xE4CB +0x90E3 0xE4CC +0x90E4 0xE4CD +0x90E5 0xE4CE +0x90E6 0xE4CF +0x90E7 0xE4D0 +0x90E8 0xE4D1 +0x90E9 0xE4D2 +0x90EA 0xE4D3 +0x90EB 0xE4D4 +0x90EC 0xE4D5 +0x90ED 0xE4D6 +0x90EE 0xE4D7 +0x90EF 0xE4D8 +0x90F0 0xE4D9 +0x90F1 0xE4DA +0x90F2 0xE4DB +0x90F3 0xE4DC +0x90F4 0xE4DD +0x90F5 0xE4DE +0x90F6 0xE4DF +0x90F7 0xE4E0 +0x90F8 0xE4E1 +0x90F9 0xE4E2 +0x90FA 0xE4E3 +0x90FB 0xE4E4 +0x90FC 0xE4E5 +0x90FD 0xE4E6 +0x90FE 0xE4E7 +0x9140 0xE4E8 +0x9141 0xE4E9 +0x9142 0xE4EA +0x9143 0xE4EB +0x9144 0xE4EC +0x9145 0xE4ED +0x9146 0xE4EE +0x9147 0xE4EF +0x9148 0xE4F0 +0x9149 0xE4F1 +0x914A 0xE4F2 +0x914B 0xE4F3 +0x914C 0xE4F4 +0x914D 0xE4F5 +0x914E 0xE4F6 +0x914F 0xE4F7 +0x9150 0xE4F8 +0x9151 0xE4F9 +0x9152 0xE4FA +0x9153 0xE4FB +0x9154 0xE4FC +0x9155 0xE4FD +0x9156 0xE4FE +0x9157 0xE4FF +0x9158 0xE500 +0x9159 0xE501 +0x915A 0xE502 +0x915B 0xE503 +0x915C 0xE504 +0x915D 0xE505 +0x915E 0xE506 +0x915F 0xE507 +0x9160 0xE508 +0x9161 0xE509 +0x9162 0xE50A +0x9163 0xE50B +0x9164 0xE50C +0x9165 0xE50D +0x9166 0xE50E +0x9167 0xE50F +0x9168 0xE510 +0x9169 0xE511 +0x916A 0xE512 +0x916B 0xE513 +0x916C 0xE514 +0x916D 0xE515 +0x916E 0xE516 +0x916F 0xE517 +0x9170 0xE518 +0x9171 0xE519 +0x9172 0xE51A +0x9173 0xE51B +0x9174 0xE51C +0x9175 0xE51D +0x9176 0xE51E +0x9177 0xE51F +0x9178 0xE520 +0x9179 0xE521 +0x917A 0xE522 +0x917B 0xE523 +0x917C 0xE524 +0x917D 0xE525 +0x917E 0xE526 +0x91A1 0xE527 +0x91A2 0xE528 +0x91A3 0xE529 +0x91A4 0xE52A +0x91A5 0xE52B +0x91A6 0xE52C +0x91A7 0xE52D +0x91A8 0xE52E +0x91A9 0xE52F +0x91AA 0xE530 +0x91AB 0xE531 +0x91AC 0xE532 +0x91AD 0xE533 +0x91AE 0xE534 +0x91AF 0xE535 +0x91B0 0xE536 +0x91B1 0xE537 +0x91B2 0xE538 +0x91B3 0xE539 +0x91B4 0xE53A +0x91B5 0xE53B +0x91B6 0xE53C +0x91B7 0xE53D +0x91B8 0xE53E +0x91B9 0xE53F +0x91BA 0xE540 +0x91BB 0xE541 +0x91BC 0xE542 +0x91BD 0xE543 +0x91BE 0xE544 +0x91BF 0xE545 +0x91C0 0xE546 +0x91C1 0xE547 +0x91C2 0xE548 +0x91C3 0xE549 +0x91C4 0xE54A +0x91C5 0xE54B +0x91C6 0xE54C +0x91C7 0xE54D +0x91C8 0xE54E +0x91C9 0xE54F +0x91CA 0xE550 +0x91CB 0xE551 +0x91CC 0xE552 +0x91CD 0xE553 +0x91CE 0xE554 +0x91CF 0xE555 +0x91D0 0xE556 +0x91D1 0xE557 +0x91D2 0xE558 +0x91D3 0xE559 +0x91D4 0xE55A +0x91D5 0xE55B +0x91D6 0xE55C +0x91D7 0xE55D +0x91D8 0xE55E +0x91D9 0xE55F +0x91DA 0xE560 +0x91DB 0xE561 +0x91DC 0xE562 +0x91DD 0xE563 +0x91DE 0xE564 +0x91DF 0xE565 +0x91E0 0xE566 +0x91E1 0xE567 +0x91E2 0xE568 +0x91E3 0xE569 +0x91E4 0xE56A +0x91E5 0xE56B +0x91E6 0xE56C +0x91E7 0xE56D +0x91E8 0xE56E +0x91E9 0xE56F +0x91EA 0xE570 +0x91EB 0xE571 +0x91EC 0xE572 +0x91ED 0xE573 +0x91EE 0xE574 +0x91EF 0xE575 +0x91F0 0xE576 +0x91F1 0xE577 +0x91F2 0xE578 +0x91F3 0xE579 +0x91F4 0xE57A +0x91F5 0xE57B +0x91F6 0xE57C +0x91F7 0xE57D +0x91F8 0xE57E +0x91F9 0xE57F +0x91FA 0xE580 +0x91FB 0xE581 +0x91FC 0xE582 +0x91FD 0xE583 +0x91FE 0xE584 +0x9240 0xE585 +0x9241 0xE586 +0x9242 0xE587 +0x9243 0xE588 +0x9244 0xE589 +0x9245 0xE58A +0x9246 0xE58B +0x9247 0xE58C +0x9248 0xE58D +0x9249 0xE58E +0x924A 0xE58F +0x924B 0xE590 +0x924C 0xE591 +0x924D 0xE592 +0x924E 0xE593 +0x924F 0xE594 +0x9250 0xE595 +0x9251 0xE596 +0x9252 0xE597 +0x9253 0xE598 +0x9254 0xE599 +0x9255 0xE59A +0x9256 0xE59B +0x9257 0xE59C +0x9258 0xE59D +0x9259 0xE59E +0x925A 0xE59F +0x925B 0xE5A0 +0x925C 0xE5A1 +0x925D 0xE5A2 +0x925E 0xE5A3 +0x925F 0xE5A4 +0x9260 0xE5A5 +0x9261 0xE5A6 +0x9262 0xE5A7 +0x9263 0xE5A8 +0x9264 0xE5A9 +0x9265 0xE5AA +0x9266 0xE5AB +0x9267 0xE5AC +0x9268 0xE5AD +0x9269 0xE5AE +0x926A 0xE5AF +0x926B 0xE5B0 +0x926C 0xE5B1 +0x926D 0xE5B2 +0x926E 0xE5B3 +0x926F 0xE5B4 +0x9270 0xE5B5 +0x9271 0xE5B6 +0x9272 0xE5B7 +0x9273 0xE5B8 +0x9274 0xE5B9 +0x9275 0xE5BA +0x9276 0xE5BB +0x9277 0xE5BC +0x9278 0xE5BD +0x9279 0xE5BE +0x927A 0xE5BF +0x927B 0xE5C0 +0x927C 0xE5C1 +0x927D 0xE5C2 +0x927E 0xE5C3 +0x92A1 0xE5C4 +0x92A2 0xE5C5 +0x92A3 0xE5C6 +0x92A4 0xE5C7 +0x92A5 0xE5C8 +0x92A6 0xE5C9 +0x92A7 0xE5CA +0x92A8 0xE5CB +0x92A9 0xE5CC +0x92AA 0xE5CD +0x92AB 0xE5CE +0x92AC 0xE5CF +0x92AD 0xE5D0 +0x92AE 0xE5D1 +0x92AF 0xE5D2 +0x92B0 0xE5D3 +0x92B1 0xE5D4 +0x92B2 0xE5D5 +0x92B3 0xE5D6 +0x92B4 0xE5D7 +0x92B5 0xE5D8 +0x92B6 0xE5D9 +0x92B7 0xE5DA +0x92B8 0xE5DB +0x92B9 0xE5DC +0x92BA 0xE5DD +0x92BB 0xE5DE +0x92BC 0xE5DF +0x92BD 0xE5E0 +0x92BE 0xE5E1 +0x92BF 0xE5E2 +0x92C0 0xE5E3 +0x92C1 0xE5E4 +0x92C2 0xE5E5 +0x92C3 0xE5E6 +0x92C4 0xE5E7 +0x92C5 0xE5E8 +0x92C6 0xE5E9 +0x92C7 0xE5EA +0x92C8 0xE5EB +0x92C9 0xE5EC +0x92CA 0xE5ED +0x92CB 0xE5EE +0x92CC 0xE5EF +0x92CD 0xE5F0 +0x92CE 0xE5F1 +0x92CF 0xE5F2 +0x92D0 0xE5F3 +0x92D1 0xE5F4 +0x92D2 0xE5F5 +0x92D3 0xE5F6 +0x92D4 0xE5F7 +0x92D5 0xE5F8 +0x92D6 0xE5F9 +0x92D7 0xE5FA +0x92D8 0xE5FB +0x92D9 0xE5FC +0x92DA 0xE5FD +0x92DB 0xE5FE +0x92DC 0xE5FF +0x92DD 0xE600 +0x92DE 0xE601 +0x92DF 0xE602 +0x92E0 0xE603 +0x92E1 0xE604 +0x92E2 0xE605 +0x92E3 0xE606 +0x92E4 0xE607 +0x92E5 0xE608 +0x92E6 0xE609 +0x92E7 0xE60A +0x92E8 0xE60B +0x92E9 0xE60C +0x92EA 0xE60D +0x92EB 0xE60E +0x92EC 0xE60F +0x92ED 0xE610 +0x92EE 0xE611 +0x92EF 0xE612 +0x92F0 0xE613 +0x92F1 0xE614 +0x92F2 0xE615 +0x92F3 0xE616 +0x92F4 0xE617 +0x92F5 0xE618 +0x92F6 0xE619 +0x92F7 0xE61A +0x92F8 0xE61B +0x92F9 0xE61C +0x92FA 0xE61D +0x92FB 0xE61E +0x92FC 0xE61F +0x92FD 0xE620 +0x92FE 0xE621 +0x9340 0xE622 +0x9341 0xE623 +0x9342 0xE624 +0x9343 0xE625 +0x9344 0xE626 +0x9345 0xE627 +0x9346 0xE628 +0x9347 0xE629 +0x9348 0xE62A +0x9349 0xE62B +0x934A 0xE62C +0x934B 0xE62D +0x934C 0xE62E +0x934D 0xE62F +0x934E 0xE630 +0x934F 0xE631 +0x9350 0xE632 +0x9351 0xE633 +0x9352 0xE634 +0x9353 0xE635 +0x9354 0xE636 +0x9355 0xE637 +0x9356 0xE638 +0x9357 0xE639 +0x9358 0xE63A +0x9359 0xE63B +0x935A 0xE63C +0x935B 0xE63D +0x935C 0xE63E +0x935D 0xE63F +0x935E 0xE640 +0x935F 0xE641 +0x9360 0xE642 +0x9361 0xE643 +0x9362 0xE644 +0x9363 0xE645 +0x9364 0xE646 +0x9365 0xE647 +0x9366 0xE648 +0x9367 0xE649 +0x9368 0xE64A +0x9369 0xE64B +0x936A 0xE64C +0x936B 0xE64D +0x936C 0xE64E +0x936D 0xE64F +0x936E 0xE650 +0x936F 0xE651 +0x9370 0xE652 +0x9371 0xE653 +0x9372 0xE654 +0x9373 0xE655 +0x9374 0xE656 +0x9375 0xE657 +0x9376 0xE658 +0x9377 0xE659 +0x9378 0xE65A +0x9379 0xE65B +0x937A 0xE65C +0x937B 0xE65D +0x937C 0xE65E +0x937D 0xE65F +0x937E 0xE660 +0x93A1 0xE661 +0x93A2 0xE662 +0x93A3 0xE663 +0x93A4 0xE664 +0x93A5 0xE665 +0x93A6 0xE666 +0x93A7 0xE667 +0x93A8 0xE668 +0x93A9 0xE669 +0x93AA 0xE66A +0x93AB 0xE66B +0x93AC 0xE66C +0x93AD 0xE66D +0x93AE 0xE66E +0x93AF 0xE66F +0x93B0 0xE670 +0x93B1 0xE671 +0x93B2 0xE672 +0x93B3 0xE673 +0x93B4 0xE674 +0x93B5 0xE675 +0x93B6 0xE676 +0x93B7 0xE677 +0x93B8 0xE678 +0x93B9 0xE679 +0x93BA 0xE67A +0x93BB 0xE67B +0x93BC 0xE67C +0x93BD 0xE67D +0x93BE 0xE67E +0x93BF 0xE67F +0x93C0 0xE680 +0x93C1 0xE681 +0x93C2 0xE682 +0x93C3 0xE683 +0x93C4 0xE684 +0x93C5 0xE685 +0x93C6 0xE686 +0x93C7 0xE687 +0x93C8 0xE688 +0x93C9 0xE689 +0x93CA 0xE68A +0x93CB 0xE68B +0x93CC 0xE68C +0x93CD 0xE68D +0x93CE 0xE68E +0x93CF 0xE68F +0x93D0 0xE690 +0x93D1 0xE691 +0x93D2 0xE692 +0x93D3 0xE693 +0x93D4 0xE694 +0x93D5 0xE695 +0x93D6 0xE696 +0x93D7 0xE697 +0x93D8 0xE698 +0x93D9 0xE699 +0x93DA 0xE69A +0x93DB 0xE69B +0x93DC 0xE69C +0x93DD 0xE69D +0x93DE 0xE69E +0x93DF 0xE69F +0x93E0 0xE6A0 +0x93E1 0xE6A1 +0x93E2 0xE6A2 +0x93E3 0xE6A3 +0x93E4 0xE6A4 +0x93E5 0xE6A5 +0x93E6 0xE6A6 +0x93E7 0xE6A7 +0x93E8 0xE6A8 +0x93E9 0xE6A9 +0x93EA 0xE6AA +0x93EB 0xE6AB +0x93EC 0xE6AC +0x93ED 0xE6AD +0x93EE 0xE6AE +0x93EF 0xE6AF +0x93F0 0xE6B0 +0x93F1 0xE6B1 +0x93F2 0xE6B2 +0x93F3 0xE6B3 +0x93F4 0xE6B4 +0x93F5 0xE6B5 +0x93F6 0xE6B6 +0x93F7 0xE6B7 +0x93F8 0xE6B8 +0x93F9 0xE6B9 +0x93FA 0xE6BA +0x93FB 0xE6BB +0x93FC 0xE6BC +0x93FD 0xE6BD +0x93FE 0xE6BE +0x9440 0xE6BF +0x9441 0xE6C0 +0x9442 0xE6C1 +0x9443 0xE6C2 +0x9444 0xE6C3 +0x9445 0xE6C4 +0x9446 0xE6C5 +0x9447 0xE6C6 +0x9448 0xE6C7 +0x9449 0xE6C8 +0x944A 0xE6C9 +0x944B 0xE6CA +0x944C 0xE6CB +0x944D 0xE6CC +0x944E 0xE6CD +0x944F 0xE6CE +0x9450 0xE6CF +0x9451 0xE6D0 +0x9452 0xE6D1 +0x9453 0xE6D2 +0x9454 0xE6D3 +0x9455 0xE6D4 +0x9456 0xE6D5 +0x9457 0xE6D6 +0x9458 0xE6D7 +0x9459 0xE6D8 +0x945A 0xE6D9 +0x945B 0xE6DA +0x945C 0xE6DB +0x945D 0xE6DC +0x945E 0xE6DD +0x945F 0xE6DE +0x9460 0xE6DF +0x9461 0xE6E0 +0x9462 0xE6E1 +0x9463 0xE6E2 +0x9464 0xE6E3 +0x9465 0xE6E4 +0x9466 0xE6E5 +0x9467 0xE6E6 +0x9468 0xE6E7 +0x9469 0xE6E8 +0x946A 0xE6E9 +0x946B 0xE6EA +0x946C 0xE6EB +0x946D 0xE6EC +0x946E 0xE6ED +0x946F 0xE6EE +0x9470 0xE6EF +0x9471 0xE6F0 +0x9472 0xE6F1 +0x9473 0xE6F2 +0x9474 0xE6F3 +0x9475 0xE6F4 +0x9476 0xE6F5 +0x9477 0xE6F6 +0x9478 0xE6F7 +0x9479 0xE6F8 +0x947A 0xE6F9 +0x947B 0xE6FA +0x947C 0xE6FB +0x947D 0xE6FC +0x947E 0xE6FD +0x94A1 0xE6FE +0x94A2 0xE6FF +0x94A3 0xE700 +0x94A4 0xE701 +0x94A5 0xE702 +0x94A6 0xE703 +0x94A7 0xE704 +0x94A8 0xE705 +0x94A9 0xE706 +0x94AA 0xE707 +0x94AB 0xE708 +0x94AC 0xE709 +0x94AD 0xE70A +0x94AE 0xE70B +0x94AF 0xE70C +0x94B0 0xE70D +0x94B1 0xE70E +0x94B2 0xE70F +0x94B3 0xE710 +0x94B4 0xE711 +0x94B5 0xE712 +0x94B6 0xE713 +0x94B7 0xE714 +0x94B8 0xE715 +0x94B9 0xE716 +0x94BA 0xE717 +0x94BB 0xE718 +0x94BC 0xE719 +0x94BD 0xE71A +0x94BE 0xE71B +0x94BF 0xE71C +0x94C0 0xE71D +0x94C1 0xE71E +0x94C2 0xE71F +0x94C3 0xE720 +0x94C4 0xE721 +0x94C5 0xE722 +0x94C6 0xE723 +0x94C7 0xE724 +0x94C8 0xE725 +0x94C9 0xE726 +0x94CA 0xE727 +0x94CB 0xE728 +0x94CC 0xE729 +0x94CD 0xE72A +0x94CE 0xE72B +0x94CF 0xE72C +0x94D0 0xE72D +0x94D1 0xE72E +0x94D2 0xE72F +0x94D3 0xE730 +0x94D4 0xE731 +0x94D5 0xE732 +0x94D6 0xE733 +0x94D7 0xE734 +0x94D8 0xE735 +0x94D9 0xE736 +0x94DA 0xE737 +0x94DB 0xE738 +0x94DC 0xE739 +0x94DD 0xE73A +0x94DE 0xE73B +0x94DF 0xE73C +0x94E0 0xE73D +0x94E1 0xE73E +0x94E2 0xE73F +0x94E3 0xE740 +0x94E4 0xE741 +0x94E5 0xE742 +0x94E6 0xE743 +0x94E7 0xE744 +0x94E8 0xE745 +0x94E9 0xE746 +0x94EA 0xE747 +0x94EB 0xE748 +0x94EC 0xE749 +0x94ED 0xE74A +0x94EE 0xE74B +0x94EF 0xE74C +0x94F0 0xE74D +0x94F1 0xE74E +0x94F2 0xE74F +0x94F3 0xE750 +0x94F4 0xE751 +0x94F5 0xE752 +0x94F6 0xE753 +0x94F7 0xE754 +0x94F8 0xE755 +0x94F9 0xE756 +0x94FA 0xE757 +0x94FB 0xE758 +0x94FC 0xE759 +0x94FD 0xE75A +0x94FE 0xE75B +0x9540 0xE75C +0x9541 0xE75D +0x9542 0xE75E +0x9543 0xE75F +0x9544 0xE760 +0x9545 0xE761 +0x9546 0xE762 +0x9547 0xE763 +0x9548 0xE764 +0x9549 0xE765 +0x954A 0xE766 +0x954B 0xE767 +0x954C 0xE768 +0x954D 0xE769 +0x954E 0xE76A +0x954F 0xE76B +0x9550 0xE76C +0x9551 0xE76D +0x9552 0xE76E +0x9553 0xE76F +0x9554 0xE770 +0x9555 0xE771 +0x9556 0xE772 +0x9557 0xE773 +0x9558 0xE774 +0x9559 0xE775 +0x955A 0xE776 +0x955B 0xE777 +0x955C 0xE778 +0x955D 0xE779 +0x955E 0xE77A +0x955F 0xE77B +0x9560 0xE77C +0x9561 0xE77D +0x9562 0xE77E +0x9563 0xE77F +0x9564 0xE780 +0x9565 0xE781 +0x9566 0xE782 +0x9567 0xE783 +0x9568 0xE784 +0x9569 0xE785 +0x956A 0xE786 +0x956B 0xE787 +0x956C 0xE788 +0x956D 0xE789 +0x956E 0xE78A +0x956F 0xE78B +0x9570 0xE78C +0x9571 0xE78D +0x9572 0xE78E +0x9573 0xE78F +0x9574 0xE790 +0x9575 0xE791 +0x9576 0xE792 +0x9577 0xE793 +0x9578 0xE794 +0x9579 0xE795 +0x957A 0xE796 +0x957B 0xE797 +0x957C 0xE798 +0x957D 0xE799 +0x957E 0xE79A +0x95A1 0xE79B +0x95A2 0xE79C +0x95A3 0xE79D +0x95A4 0xE79E +0x95A5 0xE79F +0x95A6 0xE7A0 +0x95A7 0xE7A1 +0x95A8 0xE7A2 +0x95A9 0xE7A3 +0x95AA 0xE7A4 +0x95AB 0xE7A5 +0x95AC 0xE7A6 +0x95AD 0xE7A7 +0x95AE 0xE7A8 +0x95AF 0xE7A9 +0x95B0 0xE7AA +0x95B1 0xE7AB +0x95B2 0xE7AC +0x95B3 0xE7AD +0x95B4 0xE7AE +0x95B5 0xE7AF +0x95B6 0xE7B0 +0x95B7 0xE7B1 +0x95B8 0xE7B2 +0x95B9 0xE7B3 +0x95BA 0xE7B4 +0x95BB 0xE7B5 +0x95BC 0xE7B6 +0x95BD 0xE7B7 +0x95BE 0xE7B8 +0x95BF 0xE7B9 +0x95C0 0xE7BA +0x95C1 0xE7BB +0x95C2 0xE7BC +0x95C3 0xE7BD +0x95C4 0xE7BE +0x95C5 0xE7BF +0x95C6 0xE7C0 +0x95C7 0xE7C1 +0x95C8 0xE7C2 +0x95C9 0xE7C3 +0x95CA 0xE7C4 +0x95CB 0xE7C5 +0x95CC 0xE7C6 +0x95CD 0xE7C7 +0x95CE 0xE7C8 +0x95CF 0xE7C9 +0x95D0 0xE7CA +0x95D1 0xE7CB +0x95D2 0xE7CC +0x95D3 0xE7CD +0x95D4 0xE7CE +0x95D5 0xE7CF +0x95D6 0xE7D0 +0x95D7 0xE7D1 +0x95D8 0xE7D2 +0x95D9 0xE7D3 +0x95DA 0xE7D4 +0x95DB 0xE7D5 +0x95DC 0xE7D6 +0x95DD 0xE7D7 +0x95DE 0xE7D8 +0x95DF 0xE7D9 +0x95E0 0xE7DA +0x95E1 0xE7DB +0x95E2 0xE7DC +0x95E3 0xE7DD +0x95E4 0xE7DE +0x95E5 0xE7DF +0x95E6 0xE7E0 +0x95E7 0xE7E1 +0x95E8 0xE7E2 +0x95E9 0xE7E3 +0x95EA 0xE7E4 +0x95EB 0xE7E5 +0x95EC 0xE7E6 +0x95ED 0xE7E7 +0x95EE 0xE7E8 +0x95EF 0xE7E9 +0x95F0 0xE7EA +0x95F1 0xE7EB +0x95F2 0xE7EC +0x95F3 0xE7ED +0x95F4 0xE7EE +0x95F5 0xE7EF +0x95F6 0xE7F0 +0x95F7 0xE7F1 +0x95F8 0xE7F2 +0x95F9 0xE7F3 +0x95FA 0xE7F4 +0x95FB 0xE7F5 +0x95FC 0xE7F6 +0x95FD 0xE7F7 +0x95FE 0xE7F8 +0x9640 0xE7F9 +0x9641 0xE7FA +0x9642 0xE7FB +0x9643 0xE7FC +0x9644 0xE7FD +0x9645 0xE7FE +0x9646 0xE7FF +0x9647 0xE800 +0x9648 0xE801 +0x9649 0xE802 +0x964A 0xE803 +0x964B 0xE804 +0x964C 0xE805 +0x964D 0xE806 +0x964E 0xE807 +0x964F 0xE808 +0x9650 0xE809 +0x9651 0xE80A +0x9652 0xE80B +0x9653 0xE80C +0x9654 0xE80D +0x9655 0xE80E +0x9656 0xE80F +0x9657 0xE810 +0x9658 0xE811 +0x9659 0xE812 +0x965A 0xE813 +0x965B 0xE814 +0x965C 0xE815 +0x965D 0xE816 +0x965E 0xE817 +0x965F 0xE818 +0x9660 0xE819 +0x9661 0xE81A +0x9662 0xE81B +0x9663 0xE81C +0x9664 0xE81D +0x9665 0xE81E +0x9666 0xE81F +0x9667 0xE820 +0x9668 0xE821 +0x9669 0xE822 +0x966A 0xE823 +0x966B 0xE824 +0x966C 0xE825 +0x966D 0xE826 +0x966E 0xE827 +0x966F 0xE828 +0x9670 0xE829 +0x9671 0xE82A +0x9672 0xE82B +0x9673 0xE82C +0x9674 0xE82D +0x9675 0xE82E +0x9676 0xE82F +0x9677 0xE830 +0x9678 0xE831 +0x9679 0xE832 +0x967A 0xE833 +0x967B 0xE834 +0x967C 0xE835 +0x967D 0xE836 +0x967E 0xE837 +0x96A1 0xE838 +0x96A2 0xE839 +0x96A3 0xE83A +0x96A4 0xE83B +0x96A5 0xE83C +0x96A6 0xE83D +0x96A7 0xE83E +0x96A8 0xE83F +0x96A9 0xE840 +0x96AA 0xE841 +0x96AB 0xE842 +0x96AC 0xE843 +0x96AD 0xE844 +0x96AE 0xE845 +0x96AF 0xE846 +0x96B0 0xE847 +0x96B1 0xE848 +0x96B2 0xE849 +0x96B3 0xE84A +0x96B4 0xE84B +0x96B5 0xE84C +0x96B6 0xE84D +0x96B7 0xE84E +0x96B8 0xE84F +0x96B9 0xE850 +0x96BA 0xE851 +0x96BB 0xE852 +0x96BC 0xE853 +0x96BD 0xE854 +0x96BE 0xE855 +0x96BF 0xE856 +0x96C0 0xE857 +0x96C1 0xE858 +0x96C2 0xE859 +0x96C3 0xE85A +0x96C4 0xE85B +0x96C5 0xE85C +0x96C6 0xE85D +0x96C7 0xE85E +0x96C8 0xE85F +0x96C9 0xE860 +0x96CA 0xE861 +0x96CB 0xE862 +0x96CC 0xE863 +0x96CD 0xE864 +0x96CE 0xE865 +0x96CF 0xE866 +0x96D0 0xE867 +0x96D1 0xE868 +0x96D2 0xE869 +0x96D3 0xE86A +0x96D4 0xE86B +0x96D5 0xE86C +0x96D6 0xE86D +0x96D7 0xE86E +0x96D8 0xE86F +0x96D9 0xE870 +0x96DA 0xE871 +0x96DB 0xE872 +0x96DC 0xE873 +0x96DD 0xE874 +0x96DE 0xE875 +0x96DF 0xE876 +0x96E0 0xE877 +0x96E1 0xE878 +0x96E2 0xE879 +0x96E3 0xE87A +0x96E4 0xE87B +0x96E5 0xE87C +0x96E6 0xE87D +0x96E7 0xE87E +0x96E8 0xE87F +0x96E9 0xE880 +0x96EA 0xE881 +0x96EB 0xE882 +0x96EC 0xE883 +0x96ED 0xE884 +0x96EE 0xE885 +0x96EF 0xE886 +0x96F0 0xE887 +0x96F1 0xE888 +0x96F2 0xE889 +0x96F3 0xE88A +0x96F4 0xE88B +0x96F5 0xE88C +0x96F6 0xE88D +0x96F7 0xE88E +0x96F8 0xE88F +0x96F9 0xE890 +0x96FA 0xE891 +0x96FB 0xE892 +0x96FC 0xE893 +0x96FD 0xE894 +0x96FE 0xE895 +0x9740 0xE896 +0x9741 0xE897 +0x9742 0xE898 +0x9743 0xE899 +0x9744 0xE89A +0x9745 0xE89B +0x9746 0xE89C +0x9747 0xE89D +0x9748 0xE89E +0x9749 0xE89F +0x974A 0xE8A0 +0x974B 0xE8A1 +0x974C 0xE8A2 +0x974D 0xE8A3 +0x974E 0xE8A4 +0x974F 0xE8A5 +0x9750 0xE8A6 +0x9751 0xE8A7 +0x9752 0xE8A8 +0x9753 0xE8A9 +0x9754 0xE8AA +0x9755 0xE8AB +0x9756 0xE8AC +0x9757 0xE8AD +0x9758 0xE8AE +0x9759 0xE8AF +0x975A 0xE8B0 +0x975B 0xE8B1 +0x975C 0xE8B2 +0x975D 0xE8B3 +0x975E 0xE8B4 +0x975F 0xE8B5 +0x9760 0xE8B6 +0x9761 0xE8B7 +0x9762 0xE8B8 +0x9763 0xE8B9 +0x9764 0xE8BA +0x9765 0xE8BB +0x9766 0xE8BC +0x9767 0xE8BD +0x9768 0xE8BE +0x9769 0xE8BF +0x976A 0xE8C0 +0x976B 0xE8C1 +0x976C 0xE8C2 +0x976D 0xE8C3 +0x976E 0xE8C4 +0x976F 0xE8C5 +0x9770 0xE8C6 +0x9771 0xE8C7 +0x9772 0xE8C8 +0x9773 0xE8C9 +0x9774 0xE8CA +0x9775 0xE8CB +0x9776 0xE8CC +0x9777 0xE8CD +0x9778 0xE8CE +0x9779 0xE8CF +0x977A 0xE8D0 +0x977B 0xE8D1 +0x977C 0xE8D2 +0x977D 0xE8D3 +0x977E 0xE8D4 +0x97A1 0xE8D5 +0x97A2 0xE8D6 +0x97A3 0xE8D7 +0x97A4 0xE8D8 +0x97A5 0xE8D9 +0x97A6 0xE8DA +0x97A7 0xE8DB +0x97A8 0xE8DC +0x97A9 0xE8DD +0x97AA 0xE8DE +0x97AB 0xE8DF +0x97AC 0xE8E0 +0x97AD 0xE8E1 +0x97AE 0xE8E2 +0x97AF 0xE8E3 +0x97B0 0xE8E4 +0x97B1 0xE8E5 +0x97B2 0xE8E6 +0x97B3 0xE8E7 +0x97B4 0xE8E8 +0x97B5 0xE8E9 +0x97B6 0xE8EA +0x97B7 0xE8EB +0x97B8 0xE8EC +0x97B9 0xE8ED +0x97BA 0xE8EE +0x97BB 0xE8EF +0x97BC 0xE8F0 +0x97BD 0xE8F1 +0x97BE 0xE8F2 +0x97BF 0xE8F3 +0x97C0 0xE8F4 +0x97C1 0xE8F5 +0x97C2 0xE8F6 +0x97C3 0xE8F7 +0x97C4 0xE8F8 +0x97C5 0xE8F9 +0x97C6 0xE8FA +0x97C7 0xE8FB +0x97C8 0xE8FC +0x97C9 0xE8FD +0x97CA 0xE8FE +0x97CB 0xE8FF +0x97CC 0xE900 +0x97CD 0xE901 +0x97CE 0xE902 +0x97CF 0xE903 +0x97D0 0xE904 +0x97D1 0xE905 +0x97D2 0xE906 +0x97D3 0xE907 +0x97D4 0xE908 +0x97D5 0xE909 +0x97D6 0xE90A +0x97D7 0xE90B +0x97D8 0xE90C +0x97D9 0xE90D +0x97DA 0xE90E +0x97DB 0xE90F +0x97DC 0xE910 +0x97DD 0xE911 +0x97DE 0xE912 +0x97DF 0xE913 +0x97E0 0xE914 +0x97E1 0xE915 +0x97E2 0xE916 +0x97E3 0xE917 +0x97E4 0xE918 +0x97E5 0xE919 +0x97E6 0xE91A +0x97E7 0xE91B +0x97E8 0xE91C +0x97E9 0xE91D +0x97EA 0xE91E +0x97EB 0xE91F +0x97EC 0xE920 +0x97ED 0xE921 +0x97EE 0xE922 +0x97EF 0xE923 +0x97F0 0xE924 +0x97F1 0xE925 +0x97F2 0xE926 +0x97F3 0xE927 +0x97F4 0xE928 +0x97F5 0xE929 +0x97F6 0xE92A +0x97F7 0xE92B +0x97F8 0xE92C +0x97F9 0xE92D +0x97FA 0xE92E +0x97FB 0xE92F +0x97FC 0xE930 +0x97FD 0xE931 +0x97FE 0xE932 +0x9840 0xE933 +0x9841 0xE934 +0x9842 0xE935 +0x9843 0xE936 +0x9844 0xE937 +0x9845 0xE938 +0x9846 0xE939 +0x9847 0xE93A +0x9848 0xE93B +0x9849 0xE93C +0x984A 0xE93D +0x984B 0xE93E +0x984C 0xE93F +0x984D 0xE940 +0x984E 0xE941 +0x984F 0xE942 +0x9850 0xE943 +0x9851 0xE944 +0x9852 0xE945 +0x9853 0xE946 +0x9854 0xE947 +0x9855 0xE948 +0x9856 0xE949 +0x9857 0xE94A +0x9858 0xE94B +0x9859 0xE94C +0x985A 0xE94D +0x985B 0xE94E +0x985C 0xE94F +0x985D 0xE950 +0x985E 0xE951 +0x985F 0xE952 +0x9860 0xE953 +0x9861 0xE954 +0x9862 0xE955 +0x9863 0xE956 +0x9864 0xE957 +0x9865 0xE958 +0x9866 0xE959 +0x9867 0xE95A +0x9868 0xE95B +0x9869 0xE95C +0x986A 0xE95D +0x986B 0xE95E +0x986C 0xE95F +0x986D 0xE960 +0x986E 0xE961 +0x986F 0xE962 +0x9870 0xE963 +0x9871 0xE964 +0x9872 0xE965 +0x9873 0xE966 +0x9874 0xE967 +0x9875 0xE968 +0x9876 0xE969 +0x9877 0xE96A +0x9878 0xE96B +0x9879 0xE96C +0x987A 0xE96D +0x987B 0xE96E +0x987C 0xE96F +0x987D 0xE970 +0x987E 0xE971 +0x98A1 0xE972 +0x98A2 0xE973 +0x98A3 0xE974 +0x98A4 0xE975 +0x98A5 0xE976 +0x98A6 0xE977 +0x98A7 0xE978 +0x98A8 0xE979 +0x98A9 0xE97A +0x98AA 0xE97B +0x98AB 0xE97C +0x98AC 0xE97D +0x98AD 0xE97E +0x98AE 0xE97F +0x98AF 0xE980 +0x98B0 0xE981 +0x98B1 0xE982 +0x98B2 0xE983 +0x98B3 0xE984 +0x98B4 0xE985 +0x98B5 0xE986 +0x98B6 0xE987 +0x98B7 0xE988 +0x98B8 0xE989 +0x98B9 0xE98A +0x98BA 0xE98B +0x98BB 0xE98C +0x98BC 0xE98D +0x98BD 0xE98E +0x98BE 0xE98F +0x98BF 0xE990 +0x98C0 0xE991 +0x98C1 0xE992 +0x98C2 0xE993 +0x98C3 0xE994 +0x98C4 0xE995 +0x98C5 0xE996 +0x98C6 0xE997 +0x98C7 0xE998 +0x98C8 0xE999 +0x98C9 0xE99A +0x98CA 0xE99B +0x98CB 0xE99C +0x98CC 0xE99D +0x98CD 0xE99E +0x98CE 0xE99F +0x98CF 0xE9A0 +0x98D0 0xE9A1 +0x98D1 0xE9A2 +0x98D2 0xE9A3 +0x98D3 0xE9A4 +0x98D4 0xE9A5 +0x98D5 0xE9A6 +0x98D6 0xE9A7 +0x98D7 0xE9A8 +0x98D8 0xE9A9 +0x98D9 0xE9AA +0x98DA 0xE9AB +0x98DB 0xE9AC +0x98DC 0xE9AD +0x98DD 0xE9AE +0x98DE 0xE9AF +0x98DF 0xE9B0 +0x98E0 0xE9B1 +0x98E1 0xE9B2 +0x98E2 0xE9B3 +0x98E3 0xE9B4 +0x98E4 0xE9B5 +0x98E5 0xE9B6 +0x98E6 0xE9B7 +0x98E7 0xE9B8 +0x98E8 0xE9B9 +0x98E9 0xE9BA +0x98EA 0xE9BB +0x98EB 0xE9BC +0x98EC 0xE9BD +0x98ED 0xE9BE +0x98EE 0xE9BF +0x98EF 0xE9C0 +0x98F0 0xE9C1 +0x98F1 0xE9C2 +0x98F2 0xE9C3 +0x98F3 0xE9C4 +0x98F4 0xE9C5 +0x98F5 0xE9C6 +0x98F6 0xE9C7 +0x98F7 0xE9C8 +0x98F8 0xE9C9 +0x98F9 0xE9CA +0x98FA 0xE9CB +0x98FB 0xE9CC +0x98FC 0xE9CD +0x98FD 0xE9CE +0x98FE 0xE9CF +0x9940 0xE9D0 +0x9941 0xE9D1 +0x9942 0xE9D2 +0x9943 0xE9D3 +0x9944 0xE9D4 +0x9945 0xE9D5 +0x9946 0xE9D6 +0x9947 0xE9D7 +0x9948 0xE9D8 +0x9949 0xE9D9 +0x994A 0xE9DA +0x994B 0xE9DB +0x994C 0xE9DC +0x994D 0xE9DD +0x994E 0xE9DE +0x994F 0xE9DF +0x9950 0xE9E0 +0x9951 0xE9E1 +0x9952 0xE9E2 +0x9953 0xE9E3 +0x9954 0xE9E4 +0x9955 0xE9E5 +0x9956 0xE9E6 +0x9957 0xE9E7 +0x9958 0xE9E8 +0x9959 0xE9E9 +0x995A 0xE9EA +0x995B 0xE9EB +0x995C 0xE9EC +0x995D 0xE9ED +0x995E 0xE9EE +0x995F 0xE9EF +0x9960 0xE9F0 +0x9961 0xE9F1 +0x9962 0xE9F2 +0x9963 0xE9F3 +0x9964 0xE9F4 +0x9965 0xE9F5 +0x9966 0xE9F6 +0x9967 0xE9F7 +0x9968 0xE9F8 +0x9969 0xE9F9 +0x996A 0xE9FA +0x996B 0xE9FB +0x996C 0xE9FC +0x996D 0xE9FD +0x996E 0xE9FE +0x996F 0xE9FF +0x9970 0xEA00 +0x9971 0xEA01 +0x9972 0xEA02 +0x9973 0xEA03 +0x9974 0xEA04 +0x9975 0xEA05 +0x9976 0xEA06 +0x9977 0xEA07 +0x9978 0xEA08 +0x9979 0xEA09 +0x997A 0xEA0A +0x997B 0xEA0B +0x997C 0xEA0C +0x997D 0xEA0D +0x997E 0xEA0E +0x99A1 0xEA0F +0x99A2 0xEA10 +0x99A3 0xEA11 +0x99A4 0xEA12 +0x99A5 0xEA13 +0x99A6 0xEA14 +0x99A7 0xEA15 +0x99A8 0xEA16 +0x99A9 0xEA17 +0x99AA 0xEA18 +0x99AB 0xEA19 +0x99AC 0xEA1A +0x99AD 0xEA1B +0x99AE 0xEA1C +0x99AF 0xEA1D +0x99B0 0xEA1E +0x99B1 0xEA1F +0x99B2 0xEA20 +0x99B3 0xEA21 +0x99B4 0xEA22 +0x99B5 0xEA23 +0x99B6 0xEA24 +0x99B7 0xEA25 +0x99B8 0xEA26 +0x99B9 0xEA27 +0x99BA 0xEA28 +0x99BB 0xEA29 +0x99BC 0xEA2A +0x99BD 0xEA2B +0x99BE 0xEA2C +0x99BF 0xEA2D +0x99C0 0xEA2E +0x99C1 0xEA2F +0x99C2 0xEA30 +0x99C3 0xEA31 +0x99C4 0xEA32 +0x99C5 0xEA33 +0x99C6 0xEA34 +0x99C7 0xEA35 +0x99C8 0xEA36 +0x99C9 0xEA37 +0x99CA 0xEA38 +0x99CB 0xEA39 +0x99CC 0xEA3A +0x99CD 0xEA3B +0x99CE 0xEA3C +0x99CF 0xEA3D +0x99D0 0xEA3E +0x99D1 0xEA3F +0x99D2 0xEA40 +0x99D3 0xEA41 +0x99D4 0xEA42 +0x99D5 0xEA43 +0x99D6 0xEA44 +0x99D7 0xEA45 +0x99D8 0xEA46 +0x99D9 0xEA47 +0x99DA 0xEA48 +0x99DB 0xEA49 +0x99DC 0xEA4A +0x99DD 0xEA4B +0x99DE 0xEA4C +0x99DF 0xEA4D +0x99E0 0xEA4E +0x99E1 0xEA4F +0x99E2 0xEA50 +0x99E3 0xEA51 +0x99E4 0xEA52 +0x99E5 0xEA53 +0x99E6 0xEA54 +0x99E7 0xEA55 +0x99E8 0xEA56 +0x99E9 0xEA57 +0x99EA 0xEA58 +0x99EB 0xEA59 +0x99EC 0xEA5A +0x99ED 0xEA5B +0x99EE 0xEA5C +0x99EF 0xEA5D +0x99F0 0xEA5E +0x99F1 0xEA5F +0x99F2 0xEA60 +0x99F3 0xEA61 +0x99F4 0xEA62 +0x99F5 0xEA63 +0x99F6 0xEA64 +0x99F7 0xEA65 +0x99F8 0xEA66 +0x99F9 0xEA67 +0x99FA 0xEA68 +0x99FB 0xEA69 +0x99FC 0xEA6A +0x99FD 0xEA6B +0x99FE 0xEA6C +0x9A40 0xEA6D +0x9A41 0xEA6E +0x9A42 0xEA6F +0x9A43 0xEA70 +0x9A44 0xEA71 +0x9A45 0xEA72 +0x9A46 0xEA73 +0x9A47 0xEA74 +0x9A48 0xEA75 +0x9A49 0xEA76 +0x9A4A 0xEA77 +0x9A4B 0xEA78 +0x9A4C 0xEA79 +0x9A4D 0xEA7A +0x9A4E 0xEA7B +0x9A4F 0xEA7C +0x9A50 0xEA7D +0x9A51 0xEA7E +0x9A52 0xEA7F +0x9A53 0xEA80 +0x9A54 0xEA81 +0x9A55 0xEA82 +0x9A56 0xEA83 +0x9A57 0xEA84 +0x9A58 0xEA85 +0x9A59 0xEA86 +0x9A5A 0xEA87 +0x9A5B 0xEA88 +0x9A5C 0xEA89 +0x9A5D 0xEA8A +0x9A5E 0xEA8B +0x9A5F 0xEA8C +0x9A60 0xEA8D +0x9A61 0xEA8E +0x9A62 0xEA8F +0x9A63 0xEA90 +0x9A64 0xEA91 +0x9A65 0xEA92 +0x9A66 0xEA93 +0x9A67 0xEA94 +0x9A68 0xEA95 +0x9A69 0xEA96 +0x9A6A 0xEA97 +0x9A6B 0xEA98 +0x9A6C 0xEA99 +0x9A6D 0xEA9A +0x9A6E 0xEA9B +0x9A6F 0xEA9C +0x9A70 0xEA9D +0x9A71 0xEA9E +0x9A72 0xEA9F +0x9A73 0xEAA0 +0x9A74 0xEAA1 +0x9A75 0xEAA2 +0x9A76 0xEAA3 +0x9A77 0xEAA4 +0x9A78 0xEAA5 +0x9A79 0xEAA6 +0x9A7A 0xEAA7 +0x9A7B 0xEAA8 +0x9A7C 0xEAA9 +0x9A7D 0xEAAA +0x9A7E 0xEAAB +0x9AA1 0xEAAC +0x9AA2 0xEAAD +0x9AA3 0xEAAE +0x9AA4 0xEAAF +0x9AA5 0xEAB0 +0x9AA6 0xEAB1 +0x9AA7 0xEAB2 +0x9AA8 0xEAB3 +0x9AA9 0xEAB4 +0x9AAA 0xEAB5 +0x9AAB 0xEAB6 +0x9AAC 0xEAB7 +0x9AAD 0xEAB8 +0x9AAE 0xEAB9 +0x9AAF 0xEABA +0x9AB0 0xEABB +0x9AB1 0xEABC +0x9AB2 0xEABD +0x9AB3 0xEABE +0x9AB4 0xEABF +0x9AB5 0xEAC0 +0x9AB6 0xEAC1 +0x9AB7 0xEAC2 +0x9AB8 0xEAC3 +0x9AB9 0xEAC4 +0x9ABA 0xEAC5 +0x9ABB 0xEAC6 +0x9ABC 0xEAC7 +0x9ABD 0xEAC8 +0x9ABE 0xEAC9 +0x9ABF 0xEACA +0x9AC0 0xEACB +0x9AC1 0xEACC +0x9AC2 0xEACD +0x9AC3 0xEACE +0x9AC4 0xEACF +0x9AC5 0xEAD0 +0x9AC6 0xEAD1 +0x9AC7 0xEAD2 +0x9AC8 0xEAD3 +0x9AC9 0xEAD4 +0x9ACA 0xEAD5 +0x9ACB 0xEAD6 +0x9ACC 0xEAD7 +0x9ACD 0xEAD8 +0x9ACE 0xEAD9 +0x9ACF 0xEADA +0x9AD0 0xEADB +0x9AD1 0xEADC +0x9AD2 0xEADD +0x9AD3 0xEADE +0x9AD4 0xEADF +0x9AD5 0xEAE0 +0x9AD6 0xEAE1 +0x9AD7 0xEAE2 +0x9AD8 0xEAE3 +0x9AD9 0xEAE4 +0x9ADA 0xEAE5 +0x9ADB 0xEAE6 +0x9ADC 0xEAE7 +0x9ADD 0xEAE8 +0x9ADE 0xEAE9 +0x9ADF 0xEAEA +0x9AE0 0xEAEB +0x9AE1 0xEAEC +0x9AE2 0xEAED +0x9AE3 0xEAEE +0x9AE4 0xEAEF +0x9AE5 0xEAF0 +0x9AE6 0xEAF1 +0x9AE7 0xEAF2 +0x9AE8 0xEAF3 +0x9AE9 0xEAF4 +0x9AEA 0xEAF5 +0x9AEB 0xEAF6 +0x9AEC 0xEAF7 +0x9AED 0xEAF8 +0x9AEE 0xEAF9 +0x9AEF 0xEAFA +0x9AF0 0xEAFB +0x9AF1 0xEAFC +0x9AF2 0xEAFD +0x9AF3 0xEAFE +0x9AF4 0xEAFF +0x9AF5 0xEB00 +0x9AF6 0xEB01 +0x9AF7 0xEB02 +0x9AF8 0xEB03 +0x9AF9 0xEB04 +0x9AFA 0xEB05 +0x9AFB 0xEB06 +0x9AFC 0xEB07 +0x9AFD 0xEB08 +0x9AFE 0xEB09 +0x9B40 0xEB0A +0x9B41 0xEB0B +0x9B42 0xEB0C +0x9B43 0xEB0D +0x9B44 0xEB0E +0x9B45 0xEB0F +0x9B46 0xEB10 +0x9B47 0xEB11 +0x9B48 0xEB12 +0x9B49 0xEB13 +0x9B4A 0xEB14 +0x9B4B 0xEB15 +0x9B4C 0xEB16 +0x9B4D 0xEB17 +0x9B4E 0xEB18 +0x9B4F 0xEB19 +0x9B50 0xEB1A +0x9B51 0xEB1B +0x9B52 0xEB1C +0x9B53 0xEB1D +0x9B54 0xEB1E +0x9B55 0xEB1F +0x9B56 0xEB20 +0x9B57 0xEB21 +0x9B58 0xEB22 +0x9B59 0xEB23 +0x9B5A 0xEB24 +0x9B5B 0xEB25 +0x9B5C 0xEB26 +0x9B5D 0xEB27 +0x9B5E 0xEB28 +0x9B5F 0xEB29 +0x9B60 0xEB2A +0x9B61 0xEB2B +0x9B62 0xEB2C +0x9B63 0xEB2D +0x9B64 0xEB2E +0x9B65 0xEB2F +0x9B66 0xEB30 +0x9B67 0xEB31 +0x9B68 0xEB32 +0x9B69 0xEB33 +0x9B6A 0xEB34 +0x9B6B 0xEB35 +0x9B6C 0xEB36 +0x9B6D 0xEB37 +0x9B6E 0xEB38 +0x9B6F 0xEB39 +0x9B70 0xEB3A +0x9B71 0xEB3B +0x9B72 0xEB3C +0x9B73 0xEB3D +0x9B74 0xEB3E +0x9B75 0xEB3F +0x9B76 0xEB40 +0x9B77 0xEB41 +0x9B78 0xEB42 +0x9B79 0xEB43 +0x9B7A 0xEB44 +0x9B7B 0xEB45 +0x9B7C 0xEB46 +0x9B7D 0xEB47 +0x9B7E 0xEB48 +0x9BA1 0xEB49 +0x9BA2 0xEB4A +0x9BA3 0xEB4B +0x9BA4 0xEB4C +0x9BA5 0xEB4D +0x9BA6 0xEB4E +0x9BA7 0xEB4F +0x9BA8 0xEB50 +0x9BA9 0xEB51 +0x9BAA 0xEB52 +0x9BAB 0xEB53 +0x9BAC 0xEB54 +0x9BAD 0xEB55 +0x9BAE 0xEB56 +0x9BAF 0xEB57 +0x9BB0 0xEB58 +0x9BB1 0xEB59 +0x9BB2 0xEB5A +0x9BB3 0xEB5B +0x9BB4 0xEB5C +0x9BB5 0xEB5D +0x9BB6 0xEB5E +0x9BB7 0xEB5F +0x9BB8 0xEB60 +0x9BB9 0xEB61 +0x9BBA 0xEB62 +0x9BBB 0xEB63 +0x9BBC 0xEB64 +0x9BBD 0xEB65 +0x9BBE 0xEB66 +0x9BBF 0xEB67 +0x9BC0 0xEB68 +0x9BC1 0xEB69 +0x9BC2 0xEB6A +0x9BC3 0xEB6B +0x9BC4 0xEB6C +0x9BC5 0xEB6D +0x9BC6 0xEB6E +0x9BC7 0xEB6F +0x9BC8 0xEB70 +0x9BC9 0xEB71 +0x9BCA 0xEB72 +0x9BCB 0xEB73 +0x9BCC 0xEB74 +0x9BCD 0xEB75 +0x9BCE 0xEB76 +0x9BCF 0xEB77 +0x9BD0 0xEB78 +0x9BD1 0xEB79 +0x9BD2 0xEB7A +0x9BD3 0xEB7B +0x9BD4 0xEB7C +0x9BD5 0xEB7D +0x9BD6 0xEB7E +0x9BD7 0xEB7F +0x9BD8 0xEB80 +0x9BD9 0xEB81 +0x9BDA 0xEB82 +0x9BDB 0xEB83 +0x9BDC 0xEB84 +0x9BDD 0xEB85 +0x9BDE 0xEB86 +0x9BDF 0xEB87 +0x9BE0 0xEB88 +0x9BE1 0xEB89 +0x9BE2 0xEB8A +0x9BE3 0xEB8B +0x9BE4 0xEB8C +0x9BE5 0xEB8D +0x9BE6 0xEB8E +0x9BE7 0xEB8F +0x9BE8 0xEB90 +0x9BE9 0xEB91 +0x9BEA 0xEB92 +0x9BEB 0xEB93 +0x9BEC 0xEB94 +0x9BED 0xEB95 +0x9BEE 0xEB96 +0x9BEF 0xEB97 +0x9BF0 0xEB98 +0x9BF1 0xEB99 +0x9BF2 0xEB9A +0x9BF3 0xEB9B +0x9BF4 0xEB9C +0x9BF5 0xEB9D +0x9BF6 0xEB9E +0x9BF7 0xEB9F +0x9BF8 0xEBA0 +0x9BF9 0xEBA1 +0x9BFA 0xEBA2 +0x9BFB 0xEBA3 +0x9BFC 0xEBA4 +0x9BFD 0xEBA5 +0x9BFE 0xEBA6 +0x9C40 0xEBA7 +0x9C41 0xEBA8 +0x9C42 0xEBA9 +0x9C43 0xEBAA +0x9C44 0xEBAB +0x9C45 0xEBAC +0x9C46 0xEBAD +0x9C47 0xEBAE +0x9C48 0xEBAF +0x9C49 0xEBB0 +0x9C4A 0xEBB1 +0x9C4B 0xEBB2 +0x9C4C 0xEBB3 +0x9C4D 0xEBB4 +0x9C4E 0xEBB5 +0x9C4F 0xEBB6 +0x9C50 0xEBB7 +0x9C51 0xEBB8 +0x9C52 0xEBB9 +0x9C53 0xEBBA +0x9C54 0xEBBB +0x9C55 0xEBBC +0x9C56 0xEBBD +0x9C57 0xEBBE +0x9C58 0xEBBF +0x9C59 0xEBC0 +0x9C5A 0xEBC1 +0x9C5B 0xEBC2 +0x9C5C 0xEBC3 +0x9C5D 0xEBC4 +0x9C5E 0xEBC5 +0x9C5F 0xEBC6 +0x9C60 0xEBC7 +0x9C61 0xEBC8 +0x9C62 0xEBC9 +0x9C63 0xEBCA +0x9C64 0xEBCB +0x9C65 0xEBCC +0x9C66 0xEBCD +0x9C67 0xEBCE +0x9C68 0xEBCF +0x9C69 0xEBD0 +0x9C6A 0xEBD1 +0x9C6B 0xEBD2 +0x9C6C 0xEBD3 +0x9C6D 0xEBD4 +0x9C6E 0xEBD5 +0x9C6F 0xEBD6 +0x9C70 0xEBD7 +0x9C71 0xEBD8 +0x9C72 0xEBD9 +0x9C73 0xEBDA +0x9C74 0xEBDB +0x9C75 0xEBDC +0x9C76 0xEBDD +0x9C77 0xEBDE +0x9C78 0xEBDF +0x9C79 0xEBE0 +0x9C7A 0xEBE1 +0x9C7B 0xEBE2 +0x9C7C 0xEBE3 +0x9C7D 0xEBE4 +0x9C7E 0xEBE5 +0x9CA1 0xEBE6 +0x9CA2 0xEBE7 +0x9CA3 0xEBE8 +0x9CA4 0xEBE9 +0x9CA5 0xEBEA +0x9CA6 0xEBEB +0x9CA7 0xEBEC +0x9CA8 0xEBED +0x9CA9 0xEBEE +0x9CAA 0xEBEF +0x9CAB 0xEBF0 +0x9CAC 0xEBF1 +0x9CAD 0xEBF2 +0x9CAE 0xEBF3 +0x9CAF 0xEBF4 +0x9CB0 0xEBF5 +0x9CB1 0xEBF6 +0x9CB2 0xEBF7 +0x9CB3 0xEBF8 +0x9CB4 0xEBF9 +0x9CB5 0xEBFA +0x9CB6 0xEBFB +0x9CB7 0xEBFC +0x9CB8 0xEBFD +0x9CB9 0xEBFE +0x9CBA 0xEBFF +0x9CBB 0xEC00 +0x9CBC 0xEC01 +0x9CBD 0xEC02 +0x9CBE 0xEC03 +0x9CBF 0xEC04 +0x9CC0 0xEC05 +0x9CC1 0xEC06 +0x9CC2 0xEC07 +0x9CC3 0xEC08 +0x9CC4 0xEC09 +0x9CC5 0xEC0A +0x9CC6 0xEC0B +0x9CC7 0xEC0C +0x9CC8 0xEC0D +0x9CC9 0xEC0E +0x9CCA 0xEC0F +0x9CCB 0xEC10 +0x9CCC 0xEC11 +0x9CCD 0xEC12 +0x9CCE 0xEC13 +0x9CCF 0xEC14 +0x9CD0 0xEC15 +0x9CD1 0xEC16 +0x9CD2 0xEC17 +0x9CD3 0xEC18 +0x9CD4 0xEC19 +0x9CD5 0xEC1A +0x9CD6 0xEC1B +0x9CD7 0xEC1C +0x9CD8 0xEC1D +0x9CD9 0xEC1E +0x9CDA 0xEC1F +0x9CDB 0xEC20 +0x9CDC 0xEC21 +0x9CDD 0xEC22 +0x9CDE 0xEC23 +0x9CDF 0xEC24 +0x9CE0 0xEC25 +0x9CE1 0xEC26 +0x9CE2 0xEC27 +0x9CE3 0xEC28 +0x9CE4 0xEC29 +0x9CE5 0xEC2A +0x9CE6 0xEC2B +0x9CE7 0xEC2C +0x9CE8 0xEC2D +0x9CE9 0xEC2E +0x9CEA 0xEC2F +0x9CEB 0xEC30 +0x9CEC 0xEC31 +0x9CED 0xEC32 +0x9CEE 0xEC33 +0x9CEF 0xEC34 +0x9CF0 0xEC35 +0x9CF1 0xEC36 +0x9CF2 0xEC37 +0x9CF3 0xEC38 +0x9CF4 0xEC39 +0x9CF5 0xEC3A +0x9CF6 0xEC3B +0x9CF7 0xEC3C +0x9CF8 0xEC3D +0x9CF9 0xEC3E +0x9CFA 0xEC3F +0x9CFB 0xEC40 +0x9CFC 0xEC41 +0x9CFD 0xEC42 +0x9CFE 0xEC43 +0x9D40 0xEC44 +0x9D41 0xEC45 +0x9D42 0xEC46 +0x9D43 0xEC47 +0x9D44 0xEC48 +0x9D45 0xEC49 +0x9D46 0xEC4A +0x9D47 0xEC4B +0x9D48 0xEC4C +0x9D49 0xEC4D +0x9D4A 0xEC4E +0x9D4B 0xEC4F +0x9D4C 0xEC50 +0x9D4D 0xEC51 +0x9D4E 0xEC52 +0x9D4F 0xEC53 +0x9D50 0xEC54 +0x9D51 0xEC55 +0x9D52 0xEC56 +0x9D53 0xEC57 +0x9D54 0xEC58 +0x9D55 0xEC59 +0x9D56 0xEC5A +0x9D57 0xEC5B +0x9D58 0xEC5C +0x9D59 0xEC5D +0x9D5A 0xEC5E +0x9D5B 0xEC5F +0x9D5C 0xEC60 +0x9D5D 0xEC61 +0x9D5E 0xEC62 +0x9D5F 0xEC63 +0x9D60 0xEC64 +0x9D61 0xEC65 +0x9D62 0xEC66 +0x9D63 0xEC67 +0x9D64 0xEC68 +0x9D65 0xEC69 +0x9D66 0xEC6A +0x9D67 0xEC6B +0x9D68 0xEC6C +0x9D69 0xEC6D +0x9D6A 0xEC6E +0x9D6B 0xEC6F +0x9D6C 0xEC70 +0x9D6D 0xEC71 +0x9D6E 0xEC72 +0x9D6F 0xEC73 +0x9D70 0xEC74 +0x9D71 0xEC75 +0x9D72 0xEC76 +0x9D73 0xEC77 +0x9D74 0xEC78 +0x9D75 0xEC79 +0x9D76 0xEC7A +0x9D77 0xEC7B +0x9D78 0xEC7C +0x9D79 0xEC7D +0x9D7A 0xEC7E +0x9D7B 0xEC7F +0x9D7C 0xEC80 +0x9D7D 0xEC81 +0x9D7E 0xEC82 +0x9DA1 0xEC83 +0x9DA2 0xEC84 +0x9DA3 0xEC85 +0x9DA4 0xEC86 +0x9DA5 0xEC87 +0x9DA6 0xEC88 +0x9DA7 0xEC89 +0x9DA8 0xEC8A +0x9DA9 0xEC8B +0x9DAA 0xEC8C +0x9DAB 0xEC8D +0x9DAC 0xEC8E +0x9DAD 0xEC8F +0x9DAE 0xEC90 +0x9DAF 0xEC91 +0x9DB0 0xEC92 +0x9DB1 0xEC93 +0x9DB2 0xEC94 +0x9DB3 0xEC95 +0x9DB4 0xEC96 +0x9DB5 0xEC97 +0x9DB6 0xEC98 +0x9DB7 0xEC99 +0x9DB8 0xEC9A +0x9DB9 0xEC9B +0x9DBA 0xEC9C +0x9DBB 0xEC9D +0x9DBC 0xEC9E +0x9DBD 0xEC9F +0x9DBE 0xECA0 +0x9DBF 0xECA1 +0x9DC0 0xECA2 +0x9DC1 0xECA3 +0x9DC2 0xECA4 +0x9DC3 0xECA5 +0x9DC4 0xECA6 +0x9DC5 0xECA7 +0x9DC6 0xECA8 +0x9DC7 0xECA9 +0x9DC8 0xECAA +0x9DC9 0xECAB +0x9DCA 0xECAC +0x9DCB 0xECAD +0x9DCC 0xECAE +0x9DCD 0xECAF +0x9DCE 0xECB0 +0x9DCF 0xECB1 +0x9DD0 0xECB2 +0x9DD1 0xECB3 +0x9DD2 0xECB4 +0x9DD3 0xECB5 +0x9DD4 0xECB6 +0x9DD5 0xECB7 +0x9DD6 0xECB8 +0x9DD7 0xECB9 +0x9DD8 0xECBA +0x9DD9 0xECBB +0x9DDA 0xECBC +0x9DDB 0xECBD +0x9DDC 0xECBE +0x9DDD 0xECBF +0x9DDE 0xECC0 +0x9DDF 0xECC1 +0x9DE0 0xECC2 +0x9DE1 0xECC3 +0x9DE2 0xECC4 +0x9DE3 0xECC5 +0x9DE4 0xECC6 +0x9DE5 0xECC7 +0x9DE6 0xECC8 +0x9DE7 0xECC9 +0x9DE8 0xECCA +0x9DE9 0xECCB +0x9DEA 0xECCC +0x9DEB 0xECCD +0x9DEC 0xECCE +0x9DED 0xECCF +0x9DEE 0xECD0 +0x9DEF 0xECD1 +0x9DF0 0xECD2 +0x9DF1 0xECD3 +0x9DF2 0xECD4 +0x9DF3 0xECD5 +0x9DF4 0xECD6 +0x9DF5 0xECD7 +0x9DF6 0xECD8 +0x9DF7 0xECD9 +0x9DF8 0xECDA +0x9DF9 0xECDB +0x9DFA 0xECDC +0x9DFB 0xECDD +0x9DFC 0xECDE +0x9DFD 0xECDF +0x9DFE 0xECE0 +0x9E40 0xECE1 +0x9E41 0xECE2 +0x9E42 0xECE3 +0x9E43 0xECE4 +0x9E44 0xECE5 +0x9E45 0xECE6 +0x9E46 0xECE7 +0x9E47 0xECE8 +0x9E48 0xECE9 +0x9E49 0xECEA +0x9E4A 0xECEB +0x9E4B 0xECEC +0x9E4C 0xECED +0x9E4D 0xECEE +0x9E4E 0xECEF +0x9E4F 0xECF0 +0x9E50 0xECF1 +0x9E51 0xECF2 +0x9E52 0xECF3 +0x9E53 0xECF4 +0x9E54 0xECF5 +0x9E55 0xECF6 +0x9E56 0xECF7 +0x9E57 0xECF8 +0x9E58 0xECF9 +0x9E59 0xECFA +0x9E5A 0xECFB +0x9E5B 0xECFC +0x9E5C 0xECFD +0x9E5D 0xECFE +0x9E5E 0xECFF +0x9E5F 0xED00 +0x9E60 0xED01 +0x9E61 0xED02 +0x9E62 0xED03 +0x9E63 0xED04 +0x9E64 0xED05 +0x9E65 0xED06 +0x9E66 0xED07 +0x9E67 0xED08 +0x9E68 0xED09 +0x9E69 0xED0A +0x9E6A 0xED0B +0x9E6B 0xED0C +0x9E6C 0xED0D +0x9E6D 0xED0E +0x9E6E 0xED0F +0x9E6F 0xED10 +0x9E70 0xED11 +0x9E71 0xED12 +0x9E72 0xED13 +0x9E73 0xED14 +0x9E74 0xED15 +0x9E75 0xED16 +0x9E76 0xED17 +0x9E77 0xED18 +0x9E78 0xED19 +0x9E79 0xED1A +0x9E7A 0xED1B +0x9E7B 0xED1C +0x9E7C 0xED1D +0x9E7D 0xED1E +0x9E7E 0xED1F +0x9EA1 0xED20 +0x9EA2 0xED21 +0x9EA3 0xED22 +0x9EA4 0xED23 +0x9EA5 0xED24 +0x9EA6 0xED25 +0x9EA7 0xED26 +0x9EA8 0xED27 +0x9EA9 0xED28 +0x9EAA 0xED29 +0x9EAB 0xED2A +0x9EAC 0xED2B +0x9EAD 0xED2C +0x9EAE 0xED2D +0x9EAF 0xED2E +0x9EB0 0xED2F +0x9EB1 0xED30 +0x9EB2 0xED31 +0x9EB3 0xED32 +0x9EB4 0xED33 +0x9EB5 0xED34 +0x9EB6 0xED35 +0x9EB7 0xED36 +0x9EB8 0xED37 +0x9EB9 0xED38 +0x9EBA 0xED39 +0x9EBB 0xED3A +0x9EBC 0xED3B +0x9EBD 0xED3C +0x9EBE 0xED3D +0x9EBF 0xED3E +0x9EC0 0xED3F +0x9EC1 0xED40 +0x9EC2 0xED41 +0x9EC3 0xED42 +0x9EC4 0xED43 +0x9EC5 0xED44 +0x9EC6 0xED45 +0x9EC7 0xED46 +0x9EC8 0xED47 +0x9EC9 0xED48 +0x9ECA 0xED49 +0x9ECB 0xED4A +0x9ECC 0xED4B +0x9ECD 0xED4C +0x9ECE 0xED4D +0x9ECF 0xED4E +0x9ED0 0xED4F +0x9ED1 0xED50 +0x9ED2 0xED51 +0x9ED3 0xED52 +0x9ED4 0xED53 +0x9ED5 0xED54 +0x9ED6 0xED55 +0x9ED7 0xED56 +0x9ED8 0xED57 +0x9ED9 0xED58 +0x9EDA 0xED59 +0x9EDB 0xED5A +0x9EDC 0xED5B +0x9EDD 0xED5C +0x9EDE 0xED5D +0x9EDF 0xED5E +0x9EE0 0xED5F +0x9EE1 0xED60 +0x9EE2 0xED61 +0x9EE3 0xED62 +0x9EE4 0xED63 +0x9EE5 0xED64 +0x9EE6 0xED65 +0x9EE7 0xED66 +0x9EE8 0xED67 +0x9EE9 0xED68 +0x9EEA 0xED69 +0x9EEB 0xED6A +0x9EEC 0xED6B +0x9EED 0xED6C +0x9EEE 0xED6D +0x9EEF 0xED6E +0x9EF0 0xED6F +0x9EF1 0xED70 +0x9EF2 0xED71 +0x9EF3 0xED72 +0x9EF4 0xED73 +0x9EF5 0xED74 +0x9EF6 0xED75 +0x9EF7 0xED76 +0x9EF8 0xED77 +0x9EF9 0xED78 +0x9EFA 0xED79 +0x9EFB 0xED7A +0x9EFC 0xED7B +0x9EFD 0xED7C +0x9EFE 0xED7D +0x9F40 0xED7E +0x9F41 0xED7F +0x9F42 0xED80 +0x9F43 0xED81 +0x9F44 0xED82 +0x9F45 0xED83 +0x9F46 0xED84 +0x9F47 0xED85 +0x9F48 0xED86 +0x9F49 0xED87 +0x9F4A 0xED88 +0x9F4B 0xED89 +0x9F4C 0xED8A +0x9F4D 0xED8B +0x9F4E 0xED8C +0x9F4F 0xED8D +0x9F50 0xED8E +0x9F51 0xED8F +0x9F52 0xED90 +0x9F53 0xED91 +0x9F54 0xED92 +0x9F55 0xED93 +0x9F56 0xED94 +0x9F57 0xED95 +0x9F58 0xED96 +0x9F59 0xED97 +0x9F5A 0xED98 +0x9F5B 0xED99 +0x9F5C 0xED9A +0x9F5D 0xED9B +0x9F5E 0xED9C +0x9F5F 0xED9D +0x9F60 0xED9E +0x9F61 0xED9F +0x9F62 0xEDA0 +0x9F63 0xEDA1 +0x9F64 0xEDA2 +0x9F65 0xEDA3 +0x9F66 0xEDA4 +0x9F67 0xEDA5 +0x9F68 0xEDA6 +0x9F69 0xEDA7 +0x9F6A 0xEDA8 +0x9F6B 0xEDA9 +0x9F6C 0xEDAA +0x9F6D 0xEDAB +0x9F6E 0xEDAC +0x9F6F 0xEDAD +0x9F70 0xEDAE +0x9F71 0xEDAF +0x9F72 0xEDB0 +0x9F73 0xEDB1 +0x9F74 0xEDB2 +0x9F75 0xEDB3 +0x9F76 0xEDB4 +0x9F77 0xEDB5 +0x9F78 0xEDB6 +0x9F79 0xEDB7 +0x9F7A 0xEDB8 +0x9F7B 0xEDB9 +0x9F7C 0xEDBA +0x9F7D 0xEDBB +0x9F7E 0xEDBC +0x9FA1 0xEDBD +0x9FA2 0xEDBE +0x9FA3 0xEDBF +0x9FA4 0xEDC0 +0x9FA5 0xEDC1 +0x9FA6 0xEDC2 +0x9FA7 0xEDC3 +0x9FA8 0xEDC4 +0x9FA9 0xEDC5 +0x9FAA 0xEDC6 +0x9FAB 0xEDC7 +0x9FAC 0xEDC8 +0x9FAD 0xEDC9 +0x9FAE 0xEDCA +0x9FAF 0xEDCB +0x9FB0 0xEDCC +0x9FB1 0xEDCD +0x9FB2 0xEDCE +0x9FB3 0xEDCF +0x9FB4 0xEDD0 +0x9FB5 0xEDD1 +0x9FB6 0xEDD2 +0x9FB7 0xEDD3 +0x9FB8 0xEDD4 +0x9FB9 0xEDD5 +0x9FBA 0xEDD6 +0x9FBB 0xEDD7 +0x9FBC 0xEDD8 +0x9FBD 0xEDD9 +0x9FBE 0xEDDA +0x9FBF 0xEDDB +0x9FC0 0xEDDC +0x9FC1 0xEDDD +0x9FC2 0xEDDE +0x9FC3 0xEDDF +0x9FC4 0xEDE0 +0x9FC5 0xEDE1 +0x9FC6 0xEDE2 +0x9FC7 0xEDE3 +0x9FC8 0xEDE4 +0x9FC9 0xEDE5 +0x9FCA 0xEDE6 +0x9FCB 0xEDE7 +0x9FCC 0xEDE8 +0x9FCD 0xEDE9 +0x9FCE 0xEDEA +0x9FCF 0xEDEB +0x9FD0 0xEDEC +0x9FD1 0xEDED +0x9FD2 0xEDEE +0x9FD3 0xEDEF +0x9FD4 0xEDF0 +0x9FD5 0xEDF1 +0x9FD6 0xEDF2 +0x9FD7 0xEDF3 +0x9FD8 0xEDF4 +0x9FD9 0xEDF5 +0x9FDA 0xEDF6 +0x9FDB 0xEDF7 +0x9FDC 0xEDF8 +0x9FDD 0xEDF9 +0x9FDE 0xEDFA +0x9FDF 0xEDFB +0x9FE0 0xEDFC +0x9FE1 0xEDFD +0x9FE2 0xEDFE +0x9FE3 0xEDFF +0x9FE4 0xEE00 +0x9FE5 0xEE01 +0x9FE6 0xEE02 +0x9FE7 0xEE03 +0x9FE8 0xEE04 +0x9FE9 0xEE05 +0x9FEA 0xEE06 +0x9FEB 0xEE07 +0x9FEC 0xEE08 +0x9FED 0xEE09 +0x9FEE 0xEE0A +0x9FEF 0xEE0B +0x9FF0 0xEE0C +0x9FF1 0xEE0D +0x9FF2 0xEE0E +0x9FF3 0xEE0F +0x9FF4 0xEE10 +0x9FF5 0xEE11 +0x9FF6 0xEE12 +0x9FF7 0xEE13 +0x9FF8 0xEE14 +0x9FF9 0xEE15 +0x9FFA 0xEE16 +0x9FFB 0xEE17 +0x9FFC 0xEE18 +0x9FFD 0xEE19 +0x9FFE 0xEE1A +0xA040 0xEE1B +0xA041 0xEE1C +0xA042 0xEE1D +0xA043 0xEE1E +0xA044 0xEE1F +0xA045 0xEE20 +0xA046 0xEE21 +0xA047 0xEE22 +0xA048 0xEE23 +0xA049 0xEE24 +0xA04A 0xEE25 +0xA04B 0xEE26 +0xA04C 0xEE27 +0xA04D 0xEE28 +0xA04E 0xEE29 +0xA04F 0xEE2A +0xA050 0xEE2B +0xA051 0xEE2C +0xA052 0xEE2D +0xA053 0xEE2E +0xA054 0xEE2F +0xA055 0xEE30 +0xA056 0xEE31 +0xA057 0xEE32 +0xA058 0xEE33 +0xA059 0xEE34 +0xA05A 0xEE35 +0xA05B 0xEE36 +0xA05C 0xEE37 +0xA05D 0xEE38 +0xA05E 0xEE39 +0xA05F 0xEE3A +0xA060 0xEE3B +0xA061 0xEE3C +0xA062 0xEE3D +0xA063 0xEE3E +0xA064 0xEE3F +0xA065 0xEE40 +0xA066 0xEE41 +0xA067 0xEE42 +0xA068 0xEE43 +0xA069 0xEE44 +0xA06A 0xEE45 +0xA06B 0xEE46 +0xA06C 0xEE47 +0xA06D 0xEE48 +0xA06E 0xEE49 +0xA06F 0xEE4A +0xA070 0xEE4B +0xA071 0xEE4C +0xA072 0xEE4D +0xA073 0xEE4E +0xA074 0xEE4F +0xA075 0xEE50 +0xA076 0xEE51 +0xA077 0xEE52 +0xA078 0xEE53 +0xA079 0xEE54 +0xA07A 0xEE55 +0xA07B 0xEE56 +0xA07C 0xEE57 +0xA07D 0xEE58 +0xA07E 0xEE59 +0xA0A1 0xEE5A +0xA0A2 0xEE5B +0xA0A3 0xEE5C +0xA0A4 0xEE5D +0xA0A5 0xEE5E +0xA0A6 0xEE5F +0xA0A7 0xEE60 +0xA0A8 0xEE61 +0xA0A9 0xEE62 +0xA0AA 0xEE63 +0xA0AB 0xEE64 +0xA0AC 0xEE65 +0xA0AD 0xEE66 +0xA0AE 0xEE67 +0xA0AF 0xEE68 +0xA0B0 0xEE69 +0xA0B1 0xEE6A +0xA0B2 0xEE6B +0xA0B3 0xEE6C +0xA0B4 0xEE6D +0xA0B5 0xEE6E +0xA0B6 0xEE6F +0xA0B7 0xEE70 +0xA0B8 0xEE71 +0xA0B9 0xEE72 +0xA0BA 0xEE73 +0xA0BB 0xEE74 +0xA0BC 0xEE75 +0xA0BD 0xEE76 +0xA0BE 0xEE77 +0xA0BF 0xEE78 +0xA0C0 0xEE79 +0xA0C1 0xEE7A +0xA0C2 0xEE7B +0xA0C3 0xEE7C +0xA0C4 0xEE7D +0xA0C5 0xEE7E +0xA0C6 0xEE7F +0xA0C7 0xEE80 +0xA0C8 0xEE81 +0xA0C9 0xEE82 +0xA0CA 0xEE83 +0xA0CB 0xEE84 +0xA0CC 0xEE85 +0xA0CD 0xEE86 +0xA0CE 0xEE87 +0xA0CF 0xEE88 +0xA0D0 0xEE89 +0xA0D1 0xEE8A +0xA0D2 0xEE8B +0xA0D3 0xEE8C +0xA0D4 0xEE8D +0xA0D5 0xEE8E +0xA0D6 0xEE8F +0xA0D7 0xEE90 +0xA0D8 0xEE91 +0xA0D9 0xEE92 +0xA0DA 0xEE93 +0xA0DB 0xEE94 +0xA0DC 0xEE95 +0xA0DD 0xEE96 +0xA0DE 0xEE97 +0xA0DF 0xEE98 +0xA0E0 0xEE99 +0xA0E1 0xEE9A +0xA0E2 0xEE9B +0xA0E3 0xEE9C +0xA0E4 0xEE9D +0xA0E5 0xEE9E +0xA0E6 0xEE9F +0xA0E7 0xEEA0 +0xA0E8 0xEEA1 +0xA0E9 0xEEA2 +0xA0EA 0xEEA3 +0xA0EB 0xEEA4 +0xA0EC 0xEEA5 +0xA0ED 0xEEA6 +0xA0EE 0xEEA7 +0xA0EF 0xEEA8 +0xA0F0 0xEEA9 +0xA0F1 0xEEAA +0xA0F2 0xEEAB +0xA0F3 0xEEAC +0xA0F4 0xEEAD +0xA0F5 0xEEAE +0xA0F6 0xEEAF +0xA0F7 0xEEB0 +0xA0F8 0xEEB1 +0xA0F9 0xEEB2 +0xA0FA 0xEEB3 +0xA0FB 0xEEB4 +0xA0FC 0xEEB5 +0xA0FD 0xEEB6 +0xA0FE 0xEEB7 +0xA140 0x3000 +0xA141 0xFF0C +0xA142 0x3001 +0xA143 0x3002 +0xA144 0xFF0E +0xA145 0x2027 +0xA146 0xFF1B +0xA147 0xFF1A +0xA148 0xFF1F +0xA149 0xFF01 +0xA14A 0xFE30 +0xA14B 0x2026 +0xA14C 0x2025 +0xA14D 0xFE50 +0xA14E 0xFE51 +0xA14F 0xFE52 +0xA150 0x00B7 +0xA151 0xFE54 +0xA152 0xFE55 +0xA153 0xFE56 +0xA154 0xFE57 +0xA155 0xFF5C +0xA156 0x2013 +0xA157 0xFE31 +0xA158 0x2014 +0xA159 0xFE33 +0xA15A 0x2574 +0xA15B 0xFE34 +0xA15C 0xFE4F +0xA15D 0xFF08 +0xA15E 0xFF09 +0xA15F 0xFE35 +0xA160 0xFE36 +0xA161 0xFF5B +0xA162 0xFF5D +0xA163 0xFE37 +0xA164 0xFE38 +0xA165 0x3014 +0xA166 0x3015 +0xA167 0xFE39 +0xA168 0xFE3A +0xA169 0x3010 +0xA16A 0x3011 +0xA16B 0xFE3B +0xA16C 0xFE3C +0xA16D 0x300A +0xA16E 0x300B +0xA16F 0xFE3D +0xA170 0xFE3E +0xA171 0x3008 +0xA172 0x3009 +0xA173 0xFE3F +0xA174 0xFE40 +0xA175 0x300C +0xA176 0x300D +0xA177 0xFE41 +0xA178 0xFE42 +0xA179 0x300E +0xA17A 0x300F +0xA17B 0xFE43 +0xA17C 0xFE44 +0xA17D 0xFE59 +0xA17E 0xFE5A +0xA1A1 0xFE5B +0xA1A2 0xFE5C +0xA1A3 0xFE5D +0xA1A4 0xFE5E +0xA1A5 0x2018 +0xA1A6 0x2019 +0xA1A7 0x201C +0xA1A8 0x201D +0xA1A9 0x301D +0xA1AA 0x301E +0xA1AB 0x2035 +0xA1AC 0x2032 +0xA1AD 0xFF03 +0xA1AE 0xFF06 +0xA1AF 0xFF0A +0xA1B0 0x203B +0xA1B1 0x00A7 +0xA1B2 0x3003 +0xA1B3 0x25CB +0xA1B4 0x25CF +0xA1B5 0x25B3 +0xA1B6 0x25B2 +0xA1B7 0x25CE +0xA1B8 0x2606 +0xA1B9 0x2605 +0xA1BA 0x25C7 +0xA1BB 0x25C6 +0xA1BC 0x25A1 +0xA1BD 0x25A0 +0xA1BE 0x25BD +0xA1BF 0x25BC +0xA1C0 0x32A3 +0xA1C1 0x2105 +0xA1C2 0x00AF +0xA1C3 0xFFE3 +0xA1C4 0xFF3F +0xA1C5 0x02CD +0xA1C6 0xFE49 +0xA1C7 0xFE4A +0xA1C8 0xFE4D +0xA1C9 0xFE4E +0xA1CA 0xFE4B +0xA1CB 0xFE4C +0xA1CC 0xFE5F +0xA1CD 0xFE60 +0xA1CE 0xFE61 +0xA1CF 0xFF0B +0xA1D0 0xFF0D +0xA1D1 0x00D7 +0xA1D2 0x00F7 +0xA1D3 0x00B1 +0xA1D4 0x221A +0xA1D5 0xFF1C +0xA1D6 0xFF1E +0xA1D7 0xFF1D +0xA1D8 0x2266 +0xA1D9 0x2267 +0xA1DA 0x2260 +0xA1DB 0x221E +0xA1DC 0x2252 +0xA1DD 0x2261 +0xA1DE 0xFE62 +0xA1DF 0xFE63 +0xA1E0 0xFE64 +0xA1E1 0xFE65 +0xA1E2 0xFE66 +0xA1E3 0xFF5E +0xA1E4 0x2229 +0xA1E5 0x222A +0xA1E6 0x22A5 +0xA1E7 0x2220 +0xA1E8 0x221F +0xA1E9 0x22BF +0xA1EA 0x33D2 +0xA1EB 0x33D1 +0xA1EC 0x222B +0xA1ED 0x222E +0xA1EE 0x2235 +0xA1EF 0x2234 +0xA1F0 0x2640 +0xA1F1 0x2642 +0xA1F2 0x2295 +0xA1F3 0x2299 +0xA1F4 0x2191 +0xA1F5 0x2193 +0xA1F6 0x2190 +0xA1F7 0x2192 +0xA1F8 0x2196 +0xA1F9 0x2197 +0xA1FA 0x2199 +0xA1FB 0x2198 +0xA1FC 0x2225 +0xA1FD 0x2223 +0xA1FE 0xFF0F +0xA240 0xFF3C +0xA241 0x2215 +0xA242 0xFE68 +0xA243 0xFF04 +0xA244 0xFFE5 +0xA245 0x3012 +0xA246 0xFFE0 +0xA247 0xFFE1 +0xA248 0xFF05 +0xA249 0xFF20 +0xA24A 0x2103 +0xA24B 0x2109 +0xA24C 0xFE69 +0xA24D 0xFE6A +0xA24E 0xFE6B +0xA24F 0x33D5 +0xA250 0x339C +0xA251 0x339D +0xA252 0x339E +0xA253 0x33CE +0xA254 0x33A1 +0xA255 0x338E +0xA256 0x338F +0xA257 0x33C4 +0xA258 0x00B0 +0xA259 0x5159 +0xA25A 0x515B +0xA25B 0x515E +0xA25C 0x515D +0xA25D 0x5161 +0xA25E 0x5163 +0xA25F 0x55E7 +0xA260 0x74E9 +0xA261 0x7CCE +0xA262 0x2581 +0xA263 0x2582 +0xA264 0x2583 +0xA265 0x2584 +0xA266 0x2585 +0xA267 0x2586 +0xA268 0x2587 +0xA269 0x2588 +0xA26A 0x258F +0xA26B 0x258E +0xA26C 0x258D +0xA26D 0x258C +0xA26E 0x258B +0xA26F 0x258A +0xA270 0x2589 +0xA271 0x253C +0xA272 0x2534 +0xA273 0x252C +0xA274 0x2524 +0xA275 0x251C +0xA276 0x2594 +0xA277 0x2500 +0xA278 0x2502 +0xA279 0x2595 +0xA27A 0x250C +0xA27B 0x2510 +0xA27C 0x2514 +0xA27D 0x2518 +0xA27E 0x256D +0xA2A1 0x256E +0xA2A2 0x2570 +0xA2A3 0x256F +0xA2A4 0x2550 +0xA2A5 0x255E +0xA2A6 0x256A +0xA2A7 0x2561 +0xA2A8 0x25E2 +0xA2A9 0x25E3 +0xA2AA 0x25E5 +0xA2AB 0x25E4 +0xA2AC 0x2571 +0xA2AD 0x2572 +0xA2AE 0x2573 +0xA2AF 0xFF10 +0xA2B0 0xFF11 +0xA2B1 0xFF12 +0xA2B2 0xFF13 +0xA2B3 0xFF14 +0xA2B4 0xFF15 +0xA2B5 0xFF16 +0xA2B6 0xFF17 +0xA2B7 0xFF18 +0xA2B8 0xFF19 +0xA2B9 0x2160 +0xA2BA 0x2161 +0xA2BB 0x2162 +0xA2BC 0x2163 +0xA2BD 0x2164 +0xA2BE 0x2165 +0xA2BF 0x2166 +0xA2C0 0x2167 +0xA2C1 0x2168 +0xA2C2 0x2169 +0xA2C3 0x3021 +0xA2C4 0x3022 +0xA2C5 0x3023 +0xA2C6 0x3024 +0xA2C7 0x3025 +0xA2C8 0x3026 +0xA2C9 0x3027 +0xA2CA 0x3028 +0xA2CB 0x3029 +0xA2CC 0x5341 +0xA2CD 0x5344 +0xA2CE 0x5345 +0xA2CF 0xFF21 +0xA2D0 0xFF22 +0xA2D1 0xFF23 +0xA2D2 0xFF24 +0xA2D3 0xFF25 +0xA2D4 0xFF26 +0xA2D5 0xFF27 +0xA2D6 0xFF28 +0xA2D7 0xFF29 +0xA2D8 0xFF2A +0xA2D9 0xFF2B +0xA2DA 0xFF2C +0xA2DB 0xFF2D +0xA2DC 0xFF2E +0xA2DD 0xFF2F +0xA2DE 0xFF30 +0xA2DF 0xFF31 +0xA2E0 0xFF32 +0xA2E1 0xFF33 +0xA2E2 0xFF34 +0xA2E3 0xFF35 +0xA2E4 0xFF36 +0xA2E5 0xFF37 +0xA2E6 0xFF38 +0xA2E7 0xFF39 +0xA2E8 0xFF3A +0xA2E9 0xFF41 +0xA2EA 0xFF42 +0xA2EB 0xFF43 +0xA2EC 0xFF44 +0xA2ED 0xFF45 +0xA2EE 0xFF46 +0xA2EF 0xFF47 +0xA2F0 0xFF48 +0xA2F1 0xFF49 +0xA2F2 0xFF4A +0xA2F3 0xFF4B +0xA2F4 0xFF4C +0xA2F5 0xFF4D +0xA2F6 0xFF4E +0xA2F7 0xFF4F +0xA2F8 0xFF50 +0xA2F9 0xFF51 +0xA2FA 0xFF52 +0xA2FB 0xFF53 +0xA2FC 0xFF54 +0xA2FD 0xFF55 +0xA2FE 0xFF56 +0xA340 0xFF57 +0xA341 0xFF58 +0xA342 0xFF59 +0xA343 0xFF5A +0xA344 0x0391 +0xA345 0x0392 +0xA346 0x0393 +0xA347 0x0394 +0xA348 0x0395 +0xA349 0x0396 +0xA34A 0x0397 +0xA34B 0x0398 +0xA34C 0x0399 +0xA34D 0x039A +0xA34E 0x039B +0xA34F 0x039C +0xA350 0x039D +0xA351 0x039E +0xA352 0x039F +0xA353 0x03A0 +0xA354 0x03A1 +0xA355 0x03A3 +0xA356 0x03A4 +0xA357 0x03A5 +0xA358 0x03A6 +0xA359 0x03A7 +0xA35A 0x03A8 +0xA35B 0x03A9 +0xA35C 0x03B1 +0xA35D 0x03B2 +0xA35E 0x03B3 +0xA35F 0x03B4 +0xA360 0x03B5 +0xA361 0x03B6 +0xA362 0x03B7 +0xA363 0x03B8 +0xA364 0x03B9 +0xA365 0x03BA +0xA366 0x03BB +0xA367 0x03BC +0xA368 0x03BD +0xA369 0x03BE +0xA36A 0x03BF +0xA36B 0x03C0 +0xA36C 0x03C1 +0xA36D 0x03C3 +0xA36E 0x03C4 +0xA36F 0x03C5 +0xA370 0x03C6 +0xA371 0x03C7 +0xA372 0x03C8 +0xA373 0x03C9 +0xA374 0x3105 +0xA375 0x3106 +0xA376 0x3107 +0xA377 0x3108 +0xA378 0x3109 +0xA379 0x310A +0xA37A 0x310B +0xA37B 0x310C +0xA37C 0x310D +0xA37D 0x310E +0xA37E 0x310F +0xA3A1 0x3110 +0xA3A2 0x3111 +0xA3A3 0x3112 +0xA3A4 0x3113 +0xA3A5 0x3114 +0xA3A6 0x3115 +0xA3A7 0x3116 +0xA3A8 0x3117 +0xA3A9 0x3118 +0xA3AA 0x3119 +0xA3AB 0x311A +0xA3AC 0x311B +0xA3AD 0x311C +0xA3AE 0x311D +0xA3AF 0x311E +0xA3B0 0x311F +0xA3B1 0x3120 +0xA3B2 0x3121 +0xA3B3 0x3122 +0xA3B4 0x3123 +0xA3B5 0x3124 +0xA3B6 0x3125 +0xA3B7 0x3126 +0xA3B8 0x3127 +0xA3B9 0x3128 +0xA3BA 0x3129 +0xA3BB 0x02D9 +0xA3BC 0x02C9 +0xA3BD 0x02CA +0xA3BE 0x02C7 +0xA3BF 0x02CB +0xA3E1 0x20AC +0xA440 0x4E00 +0xA441 0x4E59 +0xA442 0x4E01 +0xA443 0x4E03 +0xA444 0x4E43 +0xA445 0x4E5D +0xA446 0x4E86 +0xA447 0x4E8C +0xA448 0x4EBA +0xA449 0x513F +0xA44A 0x5165 +0xA44B 0x516B +0xA44C 0x51E0 +0xA44D 0x5200 +0xA44E 0x5201 +0xA44F 0x529B +0xA450 0x5315 +0xA451 0x5341 +0xA452 0x535C +0xA453 0x53C8 +0xA454 0x4E09 +0xA455 0x4E0B +0xA456 0x4E08 +0xA457 0x4E0A +0xA458 0x4E2B +0xA459 0x4E38 +0xA45A 0x51E1 +0xA45B 0x4E45 +0xA45C 0x4E48 +0xA45D 0x4E5F +0xA45E 0x4E5E +0xA45F 0x4E8E +0xA460 0x4EA1 +0xA461 0x5140 +0xA462 0x5203 +0xA463 0x52FA +0xA464 0x5343 +0xA465 0x53C9 +0xA466 0x53E3 +0xA467 0x571F +0xA468 0x58EB +0xA469 0x5915 +0xA46A 0x5927 +0xA46B 0x5973 +0xA46C 0x5B50 +0xA46D 0x5B51 +0xA46E 0x5B53 +0xA46F 0x5BF8 +0xA470 0x5C0F +0xA471 0x5C22 +0xA472 0x5C38 +0xA473 0x5C71 +0xA474 0x5DDD +0xA475 0x5DE5 +0xA476 0x5DF1 +0xA477 0x5DF2 +0xA478 0x5DF3 +0xA479 0x5DFE +0xA47A 0x5E72 +0xA47B 0x5EFE +0xA47C 0x5F0B +0xA47D 0x5F13 +0xA47E 0x624D +0xA4A1 0x4E11 +0xA4A2 0x4E10 +0xA4A3 0x4E0D +0xA4A4 0x4E2D +0xA4A5 0x4E30 +0xA4A6 0x4E39 +0xA4A7 0x4E4B +0xA4A8 0x5C39 +0xA4A9 0x4E88 +0xA4AA 0x4E91 +0xA4AB 0x4E95 +0xA4AC 0x4E92 +0xA4AD 0x4E94 +0xA4AE 0x4EA2 +0xA4AF 0x4EC1 +0xA4B0 0x4EC0 +0xA4B1 0x4EC3 +0xA4B2 0x4EC6 +0xA4B3 0x4EC7 +0xA4B4 0x4ECD +0xA4B5 0x4ECA +0xA4B6 0x4ECB +0xA4B7 0x4EC4 +0xA4B8 0x5143 +0xA4B9 0x5141 +0xA4BA 0x5167 +0xA4BB 0x516D +0xA4BC 0x516E +0xA4BD 0x516C +0xA4BE 0x5197 +0xA4BF 0x51F6 +0xA4C0 0x5206 +0xA4C1 0x5207 +0xA4C2 0x5208 +0xA4C3 0x52FB +0xA4C4 0x52FE +0xA4C5 0x52FF +0xA4C6 0x5316 +0xA4C7 0x5339 +0xA4C8 0x5348 +0xA4C9 0x5347 +0xA4CA 0x5345 +0xA4CB 0x535E +0xA4CC 0x5384 +0xA4CD 0x53CB +0xA4CE 0x53CA +0xA4CF 0x53CD +0xA4D0 0x58EC +0xA4D1 0x5929 +0xA4D2 0x592B +0xA4D3 0x592A +0xA4D4 0x592D +0xA4D5 0x5B54 +0xA4D6 0x5C11 +0xA4D7 0x5C24 +0xA4D8 0x5C3A +0xA4D9 0x5C6F +0xA4DA 0x5DF4 +0xA4DB 0x5E7B +0xA4DC 0x5EFF +0xA4DD 0x5F14 +0xA4DE 0x5F15 +0xA4DF 0x5FC3 +0xA4E0 0x6208 +0xA4E1 0x6236 +0xA4E2 0x624B +0xA4E3 0x624E +0xA4E4 0x652F +0xA4E5 0x6587 +0xA4E6 0x6597 +0xA4E7 0x65A4 +0xA4E8 0x65B9 +0xA4E9 0x65E5 +0xA4EA 0x66F0 +0xA4EB 0x6708 +0xA4EC 0x6728 +0xA4ED 0x6B20 +0xA4EE 0x6B62 +0xA4EF 0x6B79 +0xA4F0 0x6BCB +0xA4F1 0x6BD4 +0xA4F2 0x6BDB +0xA4F3 0x6C0F +0xA4F4 0x6C34 +0xA4F5 0x706B +0xA4F6 0x722A +0xA4F7 0x7236 +0xA4F8 0x723B +0xA4F9 0x7247 +0xA4FA 0x7259 +0xA4FB 0x725B +0xA4FC 0x72AC +0xA4FD 0x738B +0xA4FE 0x4E19 +0xA540 0x4E16 +0xA541 0x4E15 +0xA542 0x4E14 +0xA543 0x4E18 +0xA544 0x4E3B +0xA545 0x4E4D +0xA546 0x4E4F +0xA547 0x4E4E +0xA548 0x4EE5 +0xA549 0x4ED8 +0xA54A 0x4ED4 +0xA54B 0x4ED5 +0xA54C 0x4ED6 +0xA54D 0x4ED7 +0xA54E 0x4EE3 +0xA54F 0x4EE4 +0xA550 0x4ED9 +0xA551 0x4EDE +0xA552 0x5145 +0xA553 0x5144 +0xA554 0x5189 +0xA555 0x518A +0xA556 0x51AC +0xA557 0x51F9 +0xA558 0x51FA +0xA559 0x51F8 +0xA55A 0x520A +0xA55B 0x52A0 +0xA55C 0x529F +0xA55D 0x5305 +0xA55E 0x5306 +0xA55F 0x5317 +0xA560 0x531D +0xA561 0x4EDF +0xA562 0x534A +0xA563 0x5349 +0xA564 0x5361 +0xA565 0x5360 +0xA566 0x536F +0xA567 0x536E +0xA568 0x53BB +0xA569 0x53EF +0xA56A 0x53E4 +0xA56B 0x53F3 +0xA56C 0x53EC +0xA56D 0x53EE +0xA56E 0x53E9 +0xA56F 0x53E8 +0xA570 0x53FC +0xA571 0x53F8 +0xA572 0x53F5 +0xA573 0x53EB +0xA574 0x53E6 +0xA575 0x53EA +0xA576 0x53F2 +0xA577 0x53F1 +0xA578 0x53F0 +0xA579 0x53E5 +0xA57A 0x53ED +0xA57B 0x53FB +0xA57C 0x56DB +0xA57D 0x56DA +0xA57E 0x5916 +0xA5A1 0x592E +0xA5A2 0x5931 +0xA5A3 0x5974 +0xA5A4 0x5976 +0xA5A5 0x5B55 +0xA5A6 0x5B83 +0xA5A7 0x5C3C +0xA5A8 0x5DE8 +0xA5A9 0x5DE7 +0xA5AA 0x5DE6 +0xA5AB 0x5E02 +0xA5AC 0x5E03 +0xA5AD 0x5E73 +0xA5AE 0x5E7C +0xA5AF 0x5F01 +0xA5B0 0x5F18 +0xA5B1 0x5F17 +0xA5B2 0x5FC5 +0xA5B3 0x620A +0xA5B4 0x6253 +0xA5B5 0x6254 +0xA5B6 0x6252 +0xA5B7 0x6251 +0xA5B8 0x65A5 +0xA5B9 0x65E6 +0xA5BA 0x672E +0xA5BB 0x672C +0xA5BC 0x672A +0xA5BD 0x672B +0xA5BE 0x672D +0xA5BF 0x6B63 +0xA5C0 0x6BCD +0xA5C1 0x6C11 +0xA5C2 0x6C10 +0xA5C3 0x6C38 +0xA5C4 0x6C41 +0xA5C5 0x6C40 +0xA5C6 0x6C3E +0xA5C7 0x72AF +0xA5C8 0x7384 +0xA5C9 0x7389 +0xA5CA 0x74DC +0xA5CB 0x74E6 +0xA5CC 0x7518 +0xA5CD 0x751F +0xA5CE 0x7528 +0xA5CF 0x7529 +0xA5D0 0x7530 +0xA5D1 0x7531 +0xA5D2 0x7532 +0xA5D3 0x7533 +0xA5D4 0x758B +0xA5D5 0x767D +0xA5D6 0x76AE +0xA5D7 0x76BF +0xA5D8 0x76EE +0xA5D9 0x77DB +0xA5DA 0x77E2 +0xA5DB 0x77F3 +0xA5DC 0x793A +0xA5DD 0x79BE +0xA5DE 0x7A74 +0xA5DF 0x7ACB +0xA5E0 0x4E1E +0xA5E1 0x4E1F +0xA5E2 0x4E52 +0xA5E3 0x4E53 +0xA5E4 0x4E69 +0xA5E5 0x4E99 +0xA5E6 0x4EA4 +0xA5E7 0x4EA6 +0xA5E8 0x4EA5 +0xA5E9 0x4EFF +0xA5EA 0x4F09 +0xA5EB 0x4F19 +0xA5EC 0x4F0A +0xA5ED 0x4F15 +0xA5EE 0x4F0D +0xA5EF 0x4F10 +0xA5F0 0x4F11 +0xA5F1 0x4F0F +0xA5F2 0x4EF2 +0xA5F3 0x4EF6 +0xA5F4 0x4EFB +0xA5F5 0x4EF0 +0xA5F6 0x4EF3 +0xA5F7 0x4EFD +0xA5F8 0x4F01 +0xA5F9 0x4F0B +0xA5FA 0x5149 +0xA5FB 0x5147 +0xA5FC 0x5146 +0xA5FD 0x5148 +0xA5FE 0x5168 +0xA640 0x5171 +0xA641 0x518D +0xA642 0x51B0 +0xA643 0x5217 +0xA644 0x5211 +0xA645 0x5212 +0xA646 0x520E +0xA647 0x5216 +0xA648 0x52A3 +0xA649 0x5308 +0xA64A 0x5321 +0xA64B 0x5320 +0xA64C 0x5370 +0xA64D 0x5371 +0xA64E 0x5409 +0xA64F 0x540F +0xA650 0x540C +0xA651 0x540A +0xA652 0x5410 +0xA653 0x5401 +0xA654 0x540B +0xA655 0x5404 +0xA656 0x5411 +0xA657 0x540D +0xA658 0x5408 +0xA659 0x5403 +0xA65A 0x540E +0xA65B 0x5406 +0xA65C 0x5412 +0xA65D 0x56E0 +0xA65E 0x56DE +0xA65F 0x56DD +0xA660 0x5733 +0xA661 0x5730 +0xA662 0x5728 +0xA663 0x572D +0xA664 0x572C +0xA665 0x572F +0xA666 0x5729 +0xA667 0x5919 +0xA668 0x591A +0xA669 0x5937 +0xA66A 0x5938 +0xA66B 0x5984 +0xA66C 0x5978 +0xA66D 0x5983 +0xA66E 0x597D +0xA66F 0x5979 +0xA670 0x5982 +0xA671 0x5981 +0xA672 0x5B57 +0xA673 0x5B58 +0xA674 0x5B87 +0xA675 0x5B88 +0xA676 0x5B85 +0xA677 0x5B89 +0xA678 0x5BFA +0xA679 0x5C16 +0xA67A 0x5C79 +0xA67B 0x5DDE +0xA67C 0x5E06 +0xA67D 0x5E76 +0xA67E 0x5E74 +0xA6A1 0x5F0F +0xA6A2 0x5F1B +0xA6A3 0x5FD9 +0xA6A4 0x5FD6 +0xA6A5 0x620E +0xA6A6 0x620C +0xA6A7 0x620D +0xA6A8 0x6210 +0xA6A9 0x6263 +0xA6AA 0x625B +0xA6AB 0x6258 +0xA6AC 0x6536 +0xA6AD 0x65E9 +0xA6AE 0x65E8 +0xA6AF 0x65EC +0xA6B0 0x65ED +0xA6B1 0x66F2 +0xA6B2 0x66F3 +0xA6B3 0x6709 +0xA6B4 0x673D +0xA6B5 0x6734 +0xA6B6 0x6731 +0xA6B7 0x6735 +0xA6B8 0x6B21 +0xA6B9 0x6B64 +0xA6BA 0x6B7B +0xA6BB 0x6C16 +0xA6BC 0x6C5D +0xA6BD 0x6C57 +0xA6BE 0x6C59 +0xA6BF 0x6C5F +0xA6C0 0x6C60 +0xA6C1 0x6C50 +0xA6C2 0x6C55 +0xA6C3 0x6C61 +0xA6C4 0x6C5B +0xA6C5 0x6C4D +0xA6C6 0x6C4E +0xA6C7 0x7070 +0xA6C8 0x725F +0xA6C9 0x725D +0xA6CA 0x767E +0xA6CB 0x7AF9 +0xA6CC 0x7C73 +0xA6CD 0x7CF8 +0xA6CE 0x7F36 +0xA6CF 0x7F8A +0xA6D0 0x7FBD +0xA6D1 0x8001 +0xA6D2 0x8003 +0xA6D3 0x800C +0xA6D4 0x8012 +0xA6D5 0x8033 +0xA6D6 0x807F +0xA6D7 0x8089 +0xA6D8 0x808B +0xA6D9 0x808C +0xA6DA 0x81E3 +0xA6DB 0x81EA +0xA6DC 0x81F3 +0xA6DD 0x81FC +0xA6DE 0x820C +0xA6DF 0x821B +0xA6E0 0x821F +0xA6E1 0x826E +0xA6E2 0x8272 +0xA6E3 0x827E +0xA6E4 0x866B +0xA6E5 0x8840 +0xA6E6 0x884C +0xA6E7 0x8863 +0xA6E8 0x897F +0xA6E9 0x9621 +0xA6EA 0x4E32 +0xA6EB 0x4EA8 +0xA6EC 0x4F4D +0xA6ED 0x4F4F +0xA6EE 0x4F47 +0xA6EF 0x4F57 +0xA6F0 0x4F5E +0xA6F1 0x4F34 +0xA6F2 0x4F5B +0xA6F3 0x4F55 +0xA6F4 0x4F30 +0xA6F5 0x4F50 +0xA6F6 0x4F51 +0xA6F7 0x4F3D +0xA6F8 0x4F3A +0xA6F9 0x4F38 +0xA6FA 0x4F43 +0xA6FB 0x4F54 +0xA6FC 0x4F3C +0xA6FD 0x4F46 +0xA6FE 0x4F63 +0xA740 0x4F5C +0xA741 0x4F60 +0xA742 0x4F2F +0xA743 0x4F4E +0xA744 0x4F36 +0xA745 0x4F59 +0xA746 0x4F5D +0xA747 0x4F48 +0xA748 0x4F5A +0xA749 0x514C +0xA74A 0x514B +0xA74B 0x514D +0xA74C 0x5175 +0xA74D 0x51B6 +0xA74E 0x51B7 +0xA74F 0x5225 +0xA750 0x5224 +0xA751 0x5229 +0xA752 0x522A +0xA753 0x5228 +0xA754 0x52AB +0xA755 0x52A9 +0xA756 0x52AA +0xA757 0x52AC +0xA758 0x5323 +0xA759 0x5373 +0xA75A 0x5375 +0xA75B 0x541D +0xA75C 0x542D +0xA75D 0x541E +0xA75E 0x543E +0xA75F 0x5426 +0xA760 0x544E +0xA761 0x5427 +0xA762 0x5446 +0xA763 0x5443 +0xA764 0x5433 +0xA765 0x5448 +0xA766 0x5442 +0xA767 0x541B +0xA768 0x5429 +0xA769 0x544A +0xA76A 0x5439 +0xA76B 0x543B +0xA76C 0x5438 +0xA76D 0x542E +0xA76E 0x5435 +0xA76F 0x5436 +0xA770 0x5420 +0xA771 0x543C +0xA772 0x5440 +0xA773 0x5431 +0xA774 0x542B +0xA775 0x541F +0xA776 0x542C +0xA777 0x56EA +0xA778 0x56F0 +0xA779 0x56E4 +0xA77A 0x56EB +0xA77B 0x574A +0xA77C 0x5751 +0xA77D 0x5740 +0xA77E 0x574D +0xA7A1 0x5747 +0xA7A2 0x574E +0xA7A3 0x573E +0xA7A4 0x5750 +0xA7A5 0x574F +0xA7A6 0x573B +0xA7A7 0x58EF +0xA7A8 0x593E +0xA7A9 0x599D +0xA7AA 0x5992 +0xA7AB 0x59A8 +0xA7AC 0x599E +0xA7AD 0x59A3 +0xA7AE 0x5999 +0xA7AF 0x5996 +0xA7B0 0x598D +0xA7B1 0x59A4 +0xA7B2 0x5993 +0xA7B3 0x598A +0xA7B4 0x59A5 +0xA7B5 0x5B5D +0xA7B6 0x5B5C +0xA7B7 0x5B5A +0xA7B8 0x5B5B +0xA7B9 0x5B8C +0xA7BA 0x5B8B +0xA7BB 0x5B8F +0xA7BC 0x5C2C +0xA7BD 0x5C40 +0xA7BE 0x5C41 +0xA7BF 0x5C3F +0xA7C0 0x5C3E +0xA7C1 0x5C90 +0xA7C2 0x5C91 +0xA7C3 0x5C94 +0xA7C4 0x5C8C +0xA7C5 0x5DEB +0xA7C6 0x5E0C +0xA7C7 0x5E8F +0xA7C8 0x5E87 +0xA7C9 0x5E8A +0xA7CA 0x5EF7 +0xA7CB 0x5F04 +0xA7CC 0x5F1F +0xA7CD 0x5F64 +0xA7CE 0x5F62 +0xA7CF 0x5F77 +0xA7D0 0x5F79 +0xA7D1 0x5FD8 +0xA7D2 0x5FCC +0xA7D3 0x5FD7 +0xA7D4 0x5FCD +0xA7D5 0x5FF1 +0xA7D6 0x5FEB +0xA7D7 0x5FF8 +0xA7D8 0x5FEA +0xA7D9 0x6212 +0xA7DA 0x6211 +0xA7DB 0x6284 +0xA7DC 0x6297 +0xA7DD 0x6296 +0xA7DE 0x6280 +0xA7DF 0x6276 +0xA7E0 0x6289 +0xA7E1 0x626D +0xA7E2 0x628A +0xA7E3 0x627C +0xA7E4 0x627E +0xA7E5 0x6279 +0xA7E6 0x6273 +0xA7E7 0x6292 +0xA7E8 0x626F +0xA7E9 0x6298 +0xA7EA 0x626E +0xA7EB 0x6295 +0xA7EC 0x6293 +0xA7ED 0x6291 +0xA7EE 0x6286 +0xA7EF 0x6539 +0xA7F0 0x653B +0xA7F1 0x6538 +0xA7F2 0x65F1 +0xA7F3 0x66F4 +0xA7F4 0x675F +0xA7F5 0x674E +0xA7F6 0x674F +0xA7F7 0x6750 +0xA7F8 0x6751 +0xA7F9 0x675C +0xA7FA 0x6756 +0xA7FB 0x675E +0xA7FC 0x6749 +0xA7FD 0x6746 +0xA7FE 0x6760 +0xA840 0x6753 +0xA841 0x6757 +0xA842 0x6B65 +0xA843 0x6BCF +0xA844 0x6C42 +0xA845 0x6C5E +0xA846 0x6C99 +0xA847 0x6C81 +0xA848 0x6C88 +0xA849 0x6C89 +0xA84A 0x6C85 +0xA84B 0x6C9B +0xA84C 0x6C6A +0xA84D 0x6C7A +0xA84E 0x6C90 +0xA84F 0x6C70 +0xA850 0x6C8C +0xA851 0x6C68 +0xA852 0x6C96 +0xA853 0x6C92 +0xA854 0x6C7D +0xA855 0x6C83 +0xA856 0x6C72 +0xA857 0x6C7E +0xA858 0x6C74 +0xA859 0x6C86 +0xA85A 0x6C76 +0xA85B 0x6C8D +0xA85C 0x6C94 +0xA85D 0x6C98 +0xA85E 0x6C82 +0xA85F 0x7076 +0xA860 0x707C +0xA861 0x707D +0xA862 0x7078 +0xA863 0x7262 +0xA864 0x7261 +0xA865 0x7260 +0xA866 0x72C4 +0xA867 0x72C2 +0xA868 0x7396 +0xA869 0x752C +0xA86A 0x752B +0xA86B 0x7537 +0xA86C 0x7538 +0xA86D 0x7682 +0xA86E 0x76EF +0xA86F 0x77E3 +0xA870 0x79C1 +0xA871 0x79C0 +0xA872 0x79BF +0xA873 0x7A76 +0xA874 0x7CFB +0xA875 0x7F55 +0xA876 0x8096 +0xA877 0x8093 +0xA878 0x809D +0xA879 0x8098 +0xA87A 0x809B +0xA87B 0x809A +0xA87C 0x80B2 +0xA87D 0x826F +0xA87E 0x8292 +0xA8A1 0x828B +0xA8A2 0x828D +0xA8A3 0x898B +0xA8A4 0x89D2 +0xA8A5 0x8A00 +0xA8A6 0x8C37 +0xA8A7 0x8C46 +0xA8A8 0x8C55 +0xA8A9 0x8C9D +0xA8AA 0x8D64 +0xA8AB 0x8D70 +0xA8AC 0x8DB3 +0xA8AD 0x8EAB +0xA8AE 0x8ECA +0xA8AF 0x8F9B +0xA8B0 0x8FB0 +0xA8B1 0x8FC2 +0xA8B2 0x8FC6 +0xA8B3 0x8FC5 +0xA8B4 0x8FC4 +0xA8B5 0x5DE1 +0xA8B6 0x9091 +0xA8B7 0x90A2 +0xA8B8 0x90AA +0xA8B9 0x90A6 +0xA8BA 0x90A3 +0xA8BB 0x9149 +0xA8BC 0x91C6 +0xA8BD 0x91CC +0xA8BE 0x9632 +0xA8BF 0x962E +0xA8C0 0x9631 +0xA8C1 0x962A +0xA8C2 0x962C +0xA8C3 0x4E26 +0xA8C4 0x4E56 +0xA8C5 0x4E73 +0xA8C6 0x4E8B +0xA8C7 0x4E9B +0xA8C8 0x4E9E +0xA8C9 0x4EAB +0xA8CA 0x4EAC +0xA8CB 0x4F6F +0xA8CC 0x4F9D +0xA8CD 0x4F8D +0xA8CE 0x4F73 +0xA8CF 0x4F7F +0xA8D0 0x4F6C +0xA8D1 0x4F9B +0xA8D2 0x4F8B +0xA8D3 0x4F86 +0xA8D4 0x4F83 +0xA8D5 0x4F70 +0xA8D6 0x4F75 +0xA8D7 0x4F88 +0xA8D8 0x4F69 +0xA8D9 0x4F7B +0xA8DA 0x4F96 +0xA8DB 0x4F7E +0xA8DC 0x4F8F +0xA8DD 0x4F91 +0xA8DE 0x4F7A +0xA8DF 0x5154 +0xA8E0 0x5152 +0xA8E1 0x5155 +0xA8E2 0x5169 +0xA8E3 0x5177 +0xA8E4 0x5176 +0xA8E5 0x5178 +0xA8E6 0x51BD +0xA8E7 0x51FD +0xA8E8 0x523B +0xA8E9 0x5238 +0xA8EA 0x5237 +0xA8EB 0x523A +0xA8EC 0x5230 +0xA8ED 0x522E +0xA8EE 0x5236 +0xA8EF 0x5241 +0xA8F0 0x52BE +0xA8F1 0x52BB +0xA8F2 0x5352 +0xA8F3 0x5354 +0xA8F4 0x5353 +0xA8F5 0x5351 +0xA8F6 0x5366 +0xA8F7 0x5377 +0xA8F8 0x5378 +0xA8F9 0x5379 +0xA8FA 0x53D6 +0xA8FB 0x53D4 +0xA8FC 0x53D7 +0xA8FD 0x5473 +0xA8FE 0x5475 +0xA940 0x5496 +0xA941 0x5478 +0xA942 0x5495 +0xA943 0x5480 +0xA944 0x547B +0xA945 0x5477 +0xA946 0x5484 +0xA947 0x5492 +0xA948 0x5486 +0xA949 0x547C +0xA94A 0x5490 +0xA94B 0x5471 +0xA94C 0x5476 +0xA94D 0x548C +0xA94E 0x549A +0xA94F 0x5462 +0xA950 0x5468 +0xA951 0x548B +0xA952 0x547D +0xA953 0x548E +0xA954 0x56FA +0xA955 0x5783 +0xA956 0x5777 +0xA957 0x576A +0xA958 0x5769 +0xA959 0x5761 +0xA95A 0x5766 +0xA95B 0x5764 +0xA95C 0x577C +0xA95D 0x591C +0xA95E 0x5949 +0xA95F 0x5947 +0xA960 0x5948 +0xA961 0x5944 +0xA962 0x5954 +0xA963 0x59BE +0xA964 0x59BB +0xA965 0x59D4 +0xA966 0x59B9 +0xA967 0x59AE +0xA968 0x59D1 +0xA969 0x59C6 +0xA96A 0x59D0 +0xA96B 0x59CD +0xA96C 0x59CB +0xA96D 0x59D3 +0xA96E 0x59CA +0xA96F 0x59AF +0xA970 0x59B3 +0xA971 0x59D2 +0xA972 0x59C5 +0xA973 0x5B5F +0xA974 0x5B64 +0xA975 0x5B63 +0xA976 0x5B97 +0xA977 0x5B9A +0xA978 0x5B98 +0xA979 0x5B9C +0xA97A 0x5B99 +0xA97B 0x5B9B +0xA97C 0x5C1A +0xA97D 0x5C48 +0xA97E 0x5C45 +0xA9A1 0x5C46 +0xA9A2 0x5CB7 +0xA9A3 0x5CA1 +0xA9A4 0x5CB8 +0xA9A5 0x5CA9 +0xA9A6 0x5CAB +0xA9A7 0x5CB1 +0xA9A8 0x5CB3 +0xA9A9 0x5E18 +0xA9AA 0x5E1A +0xA9AB 0x5E16 +0xA9AC 0x5E15 +0xA9AD 0x5E1B +0xA9AE 0x5E11 +0xA9AF 0x5E78 +0xA9B0 0x5E9A +0xA9B1 0x5E97 +0xA9B2 0x5E9C +0xA9B3 0x5E95 +0xA9B4 0x5E96 +0xA9B5 0x5EF6 +0xA9B6 0x5F26 +0xA9B7 0x5F27 +0xA9B8 0x5F29 +0xA9B9 0x5F80 +0xA9BA 0x5F81 +0xA9BB 0x5F7F +0xA9BC 0x5F7C +0xA9BD 0x5FDD +0xA9BE 0x5FE0 +0xA9BF 0x5FFD +0xA9C0 0x5FF5 +0xA9C1 0x5FFF +0xA9C2 0x600F +0xA9C3 0x6014 +0xA9C4 0x602F +0xA9C5 0x6035 +0xA9C6 0x6016 +0xA9C7 0x602A +0xA9C8 0x6015 +0xA9C9 0x6021 +0xA9CA 0x6027 +0xA9CB 0x6029 +0xA9CC 0x602B +0xA9CD 0x601B +0xA9CE 0x6216 +0xA9CF 0x6215 +0xA9D0 0x623F +0xA9D1 0x623E +0xA9D2 0x6240 +0xA9D3 0x627F +0xA9D4 0x62C9 +0xA9D5 0x62CC +0xA9D6 0x62C4 +0xA9D7 0x62BF +0xA9D8 0x62C2 +0xA9D9 0x62B9 +0xA9DA 0x62D2 +0xA9DB 0x62DB +0xA9DC 0x62AB +0xA9DD 0x62D3 +0xA9DE 0x62D4 +0xA9DF 0x62CB +0xA9E0 0x62C8 +0xA9E1 0x62A8 +0xA9E2 0x62BD +0xA9E3 0x62BC +0xA9E4 0x62D0 +0xA9E5 0x62D9 +0xA9E6 0x62C7 +0xA9E7 0x62CD +0xA9E8 0x62B5 +0xA9E9 0x62DA +0xA9EA 0x62B1 +0xA9EB 0x62D8 +0xA9EC 0x62D6 +0xA9ED 0x62D7 +0xA9EE 0x62C6 +0xA9EF 0x62AC +0xA9F0 0x62CE +0xA9F1 0x653E +0xA9F2 0x65A7 +0xA9F3 0x65BC +0xA9F4 0x65FA +0xA9F5 0x6614 +0xA9F6 0x6613 +0xA9F7 0x660C +0xA9F8 0x6606 +0xA9F9 0x6602 +0xA9FA 0x660E +0xA9FB 0x6600 +0xA9FC 0x660F +0xA9FD 0x6615 +0xA9FE 0x660A +0xAA40 0x6607 +0xAA41 0x670D +0xAA42 0x670B +0xAA43 0x676D +0xAA44 0x678B +0xAA45 0x6795 +0xAA46 0x6771 +0xAA47 0x679C +0xAA48 0x6773 +0xAA49 0x6777 +0xAA4A 0x6787 +0xAA4B 0x679D +0xAA4C 0x6797 +0xAA4D 0x676F +0xAA4E 0x6770 +0xAA4F 0x677F +0xAA50 0x6789 +0xAA51 0x677E +0xAA52 0x6790 +0xAA53 0x6775 +0xAA54 0x679A +0xAA55 0x6793 +0xAA56 0x677C +0xAA57 0x676A +0xAA58 0x6772 +0xAA59 0x6B23 +0xAA5A 0x6B66 +0xAA5B 0x6B67 +0xAA5C 0x6B7F +0xAA5D 0x6C13 +0xAA5E 0x6C1B +0xAA5F 0x6CE3 +0xAA60 0x6CE8 +0xAA61 0x6CF3 +0xAA62 0x6CB1 +0xAA63 0x6CCC +0xAA64 0x6CE5 +0xAA65 0x6CB3 +0xAA66 0x6CBD +0xAA67 0x6CBE +0xAA68 0x6CBC +0xAA69 0x6CE2 +0xAA6A 0x6CAB +0xAA6B 0x6CD5 +0xAA6C 0x6CD3 +0xAA6D 0x6CB8 +0xAA6E 0x6CC4 +0xAA6F 0x6CB9 +0xAA70 0x6CC1 +0xAA71 0x6CAE +0xAA72 0x6CD7 +0xAA73 0x6CC5 +0xAA74 0x6CF1 +0xAA75 0x6CBF +0xAA76 0x6CBB +0xAA77 0x6CE1 +0xAA78 0x6CDB +0xAA79 0x6CCA +0xAA7A 0x6CAC +0xAA7B 0x6CEF +0xAA7C 0x6CDC +0xAA7D 0x6CD6 +0xAA7E 0x6CE0 +0xAAA1 0x7095 +0xAAA2 0x708E +0xAAA3 0x7092 +0xAAA4 0x708A +0xAAA5 0x7099 +0xAAA6 0x722C +0xAAA7 0x722D +0xAAA8 0x7238 +0xAAA9 0x7248 +0xAAAA 0x7267 +0xAAAB 0x7269 +0xAAAC 0x72C0 +0xAAAD 0x72CE +0xAAAE 0x72D9 +0xAAAF 0x72D7 +0xAAB0 0x72D0 +0xAAB1 0x73A9 +0xAAB2 0x73A8 +0xAAB3 0x739F +0xAAB4 0x73AB +0xAAB5 0x73A5 +0xAAB6 0x753D +0xAAB7 0x759D +0xAAB8 0x7599 +0xAAB9 0x759A +0xAABA 0x7684 +0xAABB 0x76C2 +0xAABC 0x76F2 +0xAABD 0x76F4 +0xAABE 0x77E5 +0xAABF 0x77FD +0xAAC0 0x793E +0xAAC1 0x7940 +0xAAC2 0x7941 +0xAAC3 0x79C9 +0xAAC4 0x79C8 +0xAAC5 0x7A7A +0xAAC6 0x7A79 +0xAAC7 0x7AFA +0xAAC8 0x7CFE +0xAAC9 0x7F54 +0xAACA 0x7F8C +0xAACB 0x7F8B +0xAACC 0x8005 +0xAACD 0x80BA +0xAACE 0x80A5 +0xAACF 0x80A2 +0xAAD0 0x80B1 +0xAAD1 0x80A1 +0xAAD2 0x80AB +0xAAD3 0x80A9 +0xAAD4 0x80B4 +0xAAD5 0x80AA +0xAAD6 0x80AF +0xAAD7 0x81E5 +0xAAD8 0x81FE +0xAAD9 0x820D +0xAADA 0x82B3 +0xAADB 0x829D +0xAADC 0x8299 +0xAADD 0x82AD +0xAADE 0x82BD +0xAADF 0x829F +0xAAE0 0x82B9 +0xAAE1 0x82B1 +0xAAE2 0x82AC +0xAAE3 0x82A5 +0xAAE4 0x82AF +0xAAE5 0x82B8 +0xAAE6 0x82A3 +0xAAE7 0x82B0 +0xAAE8 0x82BE +0xAAE9 0x82B7 +0xAAEA 0x864E +0xAAEB 0x8671 +0xAAEC 0x521D +0xAAED 0x8868 +0xAAEE 0x8ECB +0xAAEF 0x8FCE +0xAAF0 0x8FD4 +0xAAF1 0x8FD1 +0xAAF2 0x90B5 +0xAAF3 0x90B8 +0xAAF4 0x90B1 +0xAAF5 0x90B6 +0xAAF6 0x91C7 +0xAAF7 0x91D1 +0xAAF8 0x9577 +0xAAF9 0x9580 +0xAAFA 0x961C +0xAAFB 0x9640 +0xAAFC 0x963F +0xAAFD 0x963B +0xAAFE 0x9644 +0xAB40 0x9642 +0xAB41 0x96B9 +0xAB42 0x96E8 +0xAB43 0x9752 +0xAB44 0x975E +0xAB45 0x4E9F +0xAB46 0x4EAD +0xAB47 0x4EAE +0xAB48 0x4FE1 +0xAB49 0x4FB5 +0xAB4A 0x4FAF +0xAB4B 0x4FBF +0xAB4C 0x4FE0 +0xAB4D 0x4FD1 +0xAB4E 0x4FCF +0xAB4F 0x4FDD +0xAB50 0x4FC3 +0xAB51 0x4FB6 +0xAB52 0x4FD8 +0xAB53 0x4FDF +0xAB54 0x4FCA +0xAB55 0x4FD7 +0xAB56 0x4FAE +0xAB57 0x4FD0 +0xAB58 0x4FC4 +0xAB59 0x4FC2 +0xAB5A 0x4FDA +0xAB5B 0x4FCE +0xAB5C 0x4FDE +0xAB5D 0x4FB7 +0xAB5E 0x5157 +0xAB5F 0x5192 +0xAB60 0x5191 +0xAB61 0x51A0 +0xAB62 0x524E +0xAB63 0x5243 +0xAB64 0x524A +0xAB65 0x524D +0xAB66 0x524C +0xAB67 0x524B +0xAB68 0x5247 +0xAB69 0x52C7 +0xAB6A 0x52C9 +0xAB6B 0x52C3 +0xAB6C 0x52C1 +0xAB6D 0x530D +0xAB6E 0x5357 +0xAB6F 0x537B +0xAB70 0x539A +0xAB71 0x53DB +0xAB72 0x54AC +0xAB73 0x54C0 +0xAB74 0x54A8 +0xAB75 0x54CE +0xAB76 0x54C9 +0xAB77 0x54B8 +0xAB78 0x54A6 +0xAB79 0x54B3 +0xAB7A 0x54C7 +0xAB7B 0x54C2 +0xAB7C 0x54BD +0xAB7D 0x54AA +0xAB7E 0x54C1 +0xABA1 0x54C4 +0xABA2 0x54C8 +0xABA3 0x54AF +0xABA4 0x54AB +0xABA5 0x54B1 +0xABA6 0x54BB +0xABA7 0x54A9 +0xABA8 0x54A7 +0xABA9 0x54BF +0xABAA 0x56FF +0xABAB 0x5782 +0xABAC 0x578B +0xABAD 0x57A0 +0xABAE 0x57A3 +0xABAF 0x57A2 +0xABB0 0x57CE +0xABB1 0x57AE +0xABB2 0x5793 +0xABB3 0x5955 +0xABB4 0x5951 +0xABB5 0x594F +0xABB6 0x594E +0xABB7 0x5950 +0xABB8 0x59DC +0xABB9 0x59D8 +0xABBA 0x59FF +0xABBB 0x59E3 +0xABBC 0x59E8 +0xABBD 0x5A03 +0xABBE 0x59E5 +0xABBF 0x59EA +0xABC0 0x59DA +0xABC1 0x59E6 +0xABC2 0x5A01 +0xABC3 0x59FB +0xABC4 0x5B69 +0xABC5 0x5BA3 +0xABC6 0x5BA6 +0xABC7 0x5BA4 +0xABC8 0x5BA2 +0xABC9 0x5BA5 +0xABCA 0x5C01 +0xABCB 0x5C4E +0xABCC 0x5C4F +0xABCD 0x5C4D +0xABCE 0x5C4B +0xABCF 0x5CD9 +0xABD0 0x5CD2 +0xABD1 0x5DF7 +0xABD2 0x5E1D +0xABD3 0x5E25 +0xABD4 0x5E1F +0xABD5 0x5E7D +0xABD6 0x5EA0 +0xABD7 0x5EA6 +0xABD8 0x5EFA +0xABD9 0x5F08 +0xABDA 0x5F2D +0xABDB 0x5F65 +0xABDC 0x5F88 +0xABDD 0x5F85 +0xABDE 0x5F8A +0xABDF 0x5F8B +0xABE0 0x5F87 +0xABE1 0x5F8C +0xABE2 0x5F89 +0xABE3 0x6012 +0xABE4 0x601D +0xABE5 0x6020 +0xABE6 0x6025 +0xABE7 0x600E +0xABE8 0x6028 +0xABE9 0x604D +0xABEA 0x6070 +0xABEB 0x6068 +0xABEC 0x6062 +0xABED 0x6046 +0xABEE 0x6043 +0xABEF 0x606C +0xABF0 0x606B +0xABF1 0x606A +0xABF2 0x6064 +0xABF3 0x6241 +0xABF4 0x62DC +0xABF5 0x6316 +0xABF6 0x6309 +0xABF7 0x62FC +0xABF8 0x62ED +0xABF9 0x6301 +0xABFA 0x62EE +0xABFB 0x62FD +0xABFC 0x6307 +0xABFD 0x62F1 +0xABFE 0x62F7 +0xAC40 0x62EF +0xAC41 0x62EC +0xAC42 0x62FE +0xAC43 0x62F4 +0xAC44 0x6311 +0xAC45 0x6302 +0xAC46 0x653F +0xAC47 0x6545 +0xAC48 0x65AB +0xAC49 0x65BD +0xAC4A 0x65E2 +0xAC4B 0x6625 +0xAC4C 0x662D +0xAC4D 0x6620 +0xAC4E 0x6627 +0xAC4F 0x662F +0xAC50 0x661F +0xAC51 0x6628 +0xAC52 0x6631 +0xAC53 0x6624 +0xAC54 0x66F7 +0xAC55 0x67FF +0xAC56 0x67D3 +0xAC57 0x67F1 +0xAC58 0x67D4 +0xAC59 0x67D0 +0xAC5A 0x67EC +0xAC5B 0x67B6 +0xAC5C 0x67AF +0xAC5D 0x67F5 +0xAC5E 0x67E9 +0xAC5F 0x67EF +0xAC60 0x67C4 +0xAC61 0x67D1 +0xAC62 0x67B4 +0xAC63 0x67DA +0xAC64 0x67E5 +0xAC65 0x67B8 +0xAC66 0x67CF +0xAC67 0x67DE +0xAC68 0x67F3 +0xAC69 0x67B0 +0xAC6A 0x67D9 +0xAC6B 0x67E2 +0xAC6C 0x67DD +0xAC6D 0x67D2 +0xAC6E 0x6B6A +0xAC6F 0x6B83 +0xAC70 0x6B86 +0xAC71 0x6BB5 +0xAC72 0x6BD2 +0xAC73 0x6BD7 +0xAC74 0x6C1F +0xAC75 0x6CC9 +0xAC76 0x6D0B +0xAC77 0x6D32 +0xAC78 0x6D2A +0xAC79 0x6D41 +0xAC7A 0x6D25 +0xAC7B 0x6D0C +0xAC7C 0x6D31 +0xAC7D 0x6D1E +0xAC7E 0x6D17 +0xACA1 0x6D3B +0xACA2 0x6D3D +0xACA3 0x6D3E +0xACA4 0x6D36 +0xACA5 0x6D1B +0xACA6 0x6CF5 +0xACA7 0x6D39 +0xACA8 0x6D27 +0xACA9 0x6D38 +0xACAA 0x6D29 +0xACAB 0x6D2E +0xACAC 0x6D35 +0xACAD 0x6D0E +0xACAE 0x6D2B +0xACAF 0x70AB +0xACB0 0x70BA +0xACB1 0x70B3 +0xACB2 0x70AC +0xACB3 0x70AF +0xACB4 0x70AD +0xACB5 0x70B8 +0xACB6 0x70AE +0xACB7 0x70A4 +0xACB8 0x7230 +0xACB9 0x7272 +0xACBA 0x726F +0xACBB 0x7274 +0xACBC 0x72E9 +0xACBD 0x72E0 +0xACBE 0x72E1 +0xACBF 0x73B7 +0xACC0 0x73CA +0xACC1 0x73BB +0xACC2 0x73B2 +0xACC3 0x73CD +0xACC4 0x73C0 +0xACC5 0x73B3 +0xACC6 0x751A +0xACC7 0x752D +0xACC8 0x754F +0xACC9 0x754C +0xACCA 0x754E +0xACCB 0x754B +0xACCC 0x75AB +0xACCD 0x75A4 +0xACCE 0x75A5 +0xACCF 0x75A2 +0xACD0 0x75A3 +0xACD1 0x7678 +0xACD2 0x7686 +0xACD3 0x7687 +0xACD4 0x7688 +0xACD5 0x76C8 +0xACD6 0x76C6 +0xACD7 0x76C3 +0xACD8 0x76C5 +0xACD9 0x7701 +0xACDA 0x76F9 +0xACDB 0x76F8 +0xACDC 0x7709 +0xACDD 0x770B +0xACDE 0x76FE +0xACDF 0x76FC +0xACE0 0x7707 +0xACE1 0x77DC +0xACE2 0x7802 +0xACE3 0x7814 +0xACE4 0x780C +0xACE5 0x780D +0xACE6 0x7946 +0xACE7 0x7949 +0xACE8 0x7948 +0xACE9 0x7947 +0xACEA 0x79B9 +0xACEB 0x79BA +0xACEC 0x79D1 +0xACED 0x79D2 +0xACEE 0x79CB +0xACEF 0x7A7F +0xACF0 0x7A81 +0xACF1 0x7AFF +0xACF2 0x7AFD +0xACF3 0x7C7D +0xACF4 0x7D02 +0xACF5 0x7D05 +0xACF6 0x7D00 +0xACF7 0x7D09 +0xACF8 0x7D07 +0xACF9 0x7D04 +0xACFA 0x7D06 +0xACFB 0x7F38 +0xACFC 0x7F8E +0xACFD 0x7FBF +0xACFE 0x8004 +0xAD40 0x8010 +0xAD41 0x800D +0xAD42 0x8011 +0xAD43 0x8036 +0xAD44 0x80D6 +0xAD45 0x80E5 +0xAD46 0x80DA +0xAD47 0x80C3 +0xAD48 0x80C4 +0xAD49 0x80CC +0xAD4A 0x80E1 +0xAD4B 0x80DB +0xAD4C 0x80CE +0xAD4D 0x80DE +0xAD4E 0x80E4 +0xAD4F 0x80DD +0xAD50 0x81F4 +0xAD51 0x8222 +0xAD52 0x82E7 +0xAD53 0x8303 +0xAD54 0x8305 +0xAD55 0x82E3 +0xAD56 0x82DB +0xAD57 0x82E6 +0xAD58 0x8304 +0xAD59 0x82E5 +0xAD5A 0x8302 +0xAD5B 0x8309 +0xAD5C 0x82D2 +0xAD5D 0x82D7 +0xAD5E 0x82F1 +0xAD5F 0x8301 +0xAD60 0x82DC +0xAD61 0x82D4 +0xAD62 0x82D1 +0xAD63 0x82DE +0xAD64 0x82D3 +0xAD65 0x82DF +0xAD66 0x82EF +0xAD67 0x8306 +0xAD68 0x8650 +0xAD69 0x8679 +0xAD6A 0x867B +0xAD6B 0x867A +0xAD6C 0x884D +0xAD6D 0x886B +0xAD6E 0x8981 +0xAD6F 0x89D4 +0xAD70 0x8A08 +0xAD71 0x8A02 +0xAD72 0x8A03 +0xAD73 0x8C9E +0xAD74 0x8CA0 +0xAD75 0x8D74 +0xAD76 0x8D73 +0xAD77 0x8DB4 +0xAD78 0x8ECD +0xAD79 0x8ECC +0xAD7A 0x8FF0 +0xAD7B 0x8FE6 +0xAD7C 0x8FE2 +0xAD7D 0x8FEA +0xAD7E 0x8FE5 +0xADA1 0x8FED +0xADA2 0x8FEB +0xADA3 0x8FE4 +0xADA4 0x8FE8 +0xADA5 0x90CA +0xADA6 0x90CE +0xADA7 0x90C1 +0xADA8 0x90C3 +0xADA9 0x914B +0xADAA 0x914A +0xADAB 0x91CD +0xADAC 0x9582 +0xADAD 0x9650 +0xADAE 0x964B +0xADAF 0x964C +0xADB0 0x964D +0xADB1 0x9762 +0xADB2 0x9769 +0xADB3 0x97CB +0xADB4 0x97ED +0xADB5 0x97F3 +0xADB6 0x9801 +0xADB7 0x98A8 +0xADB8 0x98DB +0xADB9 0x98DF +0xADBA 0x9996 +0xADBB 0x9999 +0xADBC 0x4E58 +0xADBD 0x4EB3 +0xADBE 0x500C +0xADBF 0x500D +0xADC0 0x5023 +0xADC1 0x4FEF +0xADC2 0x5026 +0xADC3 0x5025 +0xADC4 0x4FF8 +0xADC5 0x5029 +0xADC6 0x5016 +0xADC7 0x5006 +0xADC8 0x503C +0xADC9 0x501F +0xADCA 0x501A +0xADCB 0x5012 +0xADCC 0x5011 +0xADCD 0x4FFA +0xADCE 0x5000 +0xADCF 0x5014 +0xADD0 0x5028 +0xADD1 0x4FF1 +0xADD2 0x5021 +0xADD3 0x500B +0xADD4 0x5019 +0xADD5 0x5018 +0xADD6 0x4FF3 +0xADD7 0x4FEE +0xADD8 0x502D +0xADD9 0x502A +0xADDA 0x4FFE +0xADDB 0x502B +0xADDC 0x5009 +0xADDD 0x517C +0xADDE 0x51A4 +0xADDF 0x51A5 +0xADE0 0x51A2 +0xADE1 0x51CD +0xADE2 0x51CC +0xADE3 0x51C6 +0xADE4 0x51CB +0xADE5 0x5256 +0xADE6 0x525C +0xADE7 0x5254 +0xADE8 0x525B +0xADE9 0x525D +0xADEA 0x532A +0xADEB 0x537F +0xADEC 0x539F +0xADED 0x539D +0xADEE 0x53DF +0xADEF 0x54E8 +0xADF0 0x5510 +0xADF1 0x5501 +0xADF2 0x5537 +0xADF3 0x54FC +0xADF4 0x54E5 +0xADF5 0x54F2 +0xADF6 0x5506 +0xADF7 0x54FA +0xADF8 0x5514 +0xADF9 0x54E9 +0xADFA 0x54ED +0xADFB 0x54E1 +0xADFC 0x5509 +0xADFD 0x54EE +0xADFE 0x54EA +0xAE40 0x54E6 +0xAE41 0x5527 +0xAE42 0x5507 +0xAE43 0x54FD +0xAE44 0x550F +0xAE45 0x5703 +0xAE46 0x5704 +0xAE47 0x57C2 +0xAE48 0x57D4 +0xAE49 0x57CB +0xAE4A 0x57C3 +0xAE4B 0x5809 +0xAE4C 0x590F +0xAE4D 0x5957 +0xAE4E 0x5958 +0xAE4F 0x595A +0xAE50 0x5A11 +0xAE51 0x5A18 +0xAE52 0x5A1C +0xAE53 0x5A1F +0xAE54 0x5A1B +0xAE55 0x5A13 +0xAE56 0x59EC +0xAE57 0x5A20 +0xAE58 0x5A23 +0xAE59 0x5A29 +0xAE5A 0x5A25 +0xAE5B 0x5A0C +0xAE5C 0x5A09 +0xAE5D 0x5B6B +0xAE5E 0x5C58 +0xAE5F 0x5BB0 +0xAE60 0x5BB3 +0xAE61 0x5BB6 +0xAE62 0x5BB4 +0xAE63 0x5BAE +0xAE64 0x5BB5 +0xAE65 0x5BB9 +0xAE66 0x5BB8 +0xAE67 0x5C04 +0xAE68 0x5C51 +0xAE69 0x5C55 +0xAE6A 0x5C50 +0xAE6B 0x5CED +0xAE6C 0x5CFD +0xAE6D 0x5CFB +0xAE6E 0x5CEA +0xAE6F 0x5CE8 +0xAE70 0x5CF0 +0xAE71 0x5CF6 +0xAE72 0x5D01 +0xAE73 0x5CF4 +0xAE74 0x5DEE +0xAE75 0x5E2D +0xAE76 0x5E2B +0xAE77 0x5EAB +0xAE78 0x5EAD +0xAE79 0x5EA7 +0xAE7A 0x5F31 +0xAE7B 0x5F92 +0xAE7C 0x5F91 +0xAE7D 0x5F90 +0xAE7E 0x6059 +0xAEA1 0x6063 +0xAEA2 0x6065 +0xAEA3 0x6050 +0xAEA4 0x6055 +0xAEA5 0x606D +0xAEA6 0x6069 +0xAEA7 0x606F +0xAEA8 0x6084 +0xAEA9 0x609F +0xAEAA 0x609A +0xAEAB 0x608D +0xAEAC 0x6094 +0xAEAD 0x608C +0xAEAE 0x6085 +0xAEAF 0x6096 +0xAEB0 0x6247 +0xAEB1 0x62F3 +0xAEB2 0x6308 +0xAEB3 0x62FF +0xAEB4 0x634E +0xAEB5 0x633E +0xAEB6 0x632F +0xAEB7 0x6355 +0xAEB8 0x6342 +0xAEB9 0x6346 +0xAEBA 0x634F +0xAEBB 0x6349 +0xAEBC 0x633A +0xAEBD 0x6350 +0xAEBE 0x633D +0xAEBF 0x632A +0xAEC0 0x632B +0xAEC1 0x6328 +0xAEC2 0x634D +0xAEC3 0x634C +0xAEC4 0x6548 +0xAEC5 0x6549 +0xAEC6 0x6599 +0xAEC7 0x65C1 +0xAEC8 0x65C5 +0xAEC9 0x6642 +0xAECA 0x6649 +0xAECB 0x664F +0xAECC 0x6643 +0xAECD 0x6652 +0xAECE 0x664C +0xAECF 0x6645 +0xAED0 0x6641 +0xAED1 0x66F8 +0xAED2 0x6714 +0xAED3 0x6715 +0xAED4 0x6717 +0xAED5 0x6821 +0xAED6 0x6838 +0xAED7 0x6848 +0xAED8 0x6846 +0xAED9 0x6853 +0xAEDA 0x6839 +0xAEDB 0x6842 +0xAEDC 0x6854 +0xAEDD 0x6829 +0xAEDE 0x68B3 +0xAEDF 0x6817 +0xAEE0 0x684C +0xAEE1 0x6851 +0xAEE2 0x683D +0xAEE3 0x67F4 +0xAEE4 0x6850 +0xAEE5 0x6840 +0xAEE6 0x683C +0xAEE7 0x6843 +0xAEE8 0x682A +0xAEE9 0x6845 +0xAEEA 0x6813 +0xAEEB 0x6818 +0xAEEC 0x6841 +0xAEED 0x6B8A +0xAEEE 0x6B89 +0xAEEF 0x6BB7 +0xAEF0 0x6C23 +0xAEF1 0x6C27 +0xAEF2 0x6C28 +0xAEF3 0x6C26 +0xAEF4 0x6C24 +0xAEF5 0x6CF0 +0xAEF6 0x6D6A +0xAEF7 0x6D95 +0xAEF8 0x6D88 +0xAEF9 0x6D87 +0xAEFA 0x6D66 +0xAEFB 0x6D78 +0xAEFC 0x6D77 +0xAEFD 0x6D59 +0xAEFE 0x6D93 +0xAF40 0x6D6C +0xAF41 0x6D89 +0xAF42 0x6D6E +0xAF43 0x6D5A +0xAF44 0x6D74 +0xAF45 0x6D69 +0xAF46 0x6D8C +0xAF47 0x6D8A +0xAF48 0x6D79 +0xAF49 0x6D85 +0xAF4A 0x6D65 +0xAF4B 0x6D94 +0xAF4C 0x70CA +0xAF4D 0x70D8 +0xAF4E 0x70E4 +0xAF4F 0x70D9 +0xAF50 0x70C8 +0xAF51 0x70CF +0xAF52 0x7239 +0xAF53 0x7279 +0xAF54 0x72FC +0xAF55 0x72F9 +0xAF56 0x72FD +0xAF57 0x72F8 +0xAF58 0x72F7 +0xAF59 0x7386 +0xAF5A 0x73ED +0xAF5B 0x7409 +0xAF5C 0x73EE +0xAF5D 0x73E0 +0xAF5E 0x73EA +0xAF5F 0x73DE +0xAF60 0x7554 +0xAF61 0x755D +0xAF62 0x755C +0xAF63 0x755A +0xAF64 0x7559 +0xAF65 0x75BE +0xAF66 0x75C5 +0xAF67 0x75C7 +0xAF68 0x75B2 +0xAF69 0x75B3 +0xAF6A 0x75BD +0xAF6B 0x75BC +0xAF6C 0x75B9 +0xAF6D 0x75C2 +0xAF6E 0x75B8 +0xAF6F 0x768B +0xAF70 0x76B0 +0xAF71 0x76CA +0xAF72 0x76CD +0xAF73 0x76CE +0xAF74 0x7729 +0xAF75 0x771F +0xAF76 0x7720 +0xAF77 0x7728 +0xAF78 0x77E9 +0xAF79 0x7830 +0xAF7A 0x7827 +0xAF7B 0x7838 +0xAF7C 0x781D +0xAF7D 0x7834 +0xAF7E 0x7837 +0xAFA1 0x7825 +0xAFA2 0x782D +0xAFA3 0x7820 +0xAFA4 0x781F +0xAFA5 0x7832 +0xAFA6 0x7955 +0xAFA7 0x7950 +0xAFA8 0x7960 +0xAFA9 0x795F +0xAFAA 0x7956 +0xAFAB 0x795E +0xAFAC 0x795D +0xAFAD 0x7957 +0xAFAE 0x795A +0xAFAF 0x79E4 +0xAFB0 0x79E3 +0xAFB1 0x79E7 +0xAFB2 0x79DF +0xAFB3 0x79E6 +0xAFB4 0x79E9 +0xAFB5 0x79D8 +0xAFB6 0x7A84 +0xAFB7 0x7A88 +0xAFB8 0x7AD9 +0xAFB9 0x7B06 +0xAFBA 0x7B11 +0xAFBB 0x7C89 +0xAFBC 0x7D21 +0xAFBD 0x7D17 +0xAFBE 0x7D0B +0xAFBF 0x7D0A +0xAFC0 0x7D20 +0xAFC1 0x7D22 +0xAFC2 0x7D14 +0xAFC3 0x7D10 +0xAFC4 0x7D15 +0xAFC5 0x7D1A +0xAFC6 0x7D1C +0xAFC7 0x7D0D +0xAFC8 0x7D19 +0xAFC9 0x7D1B +0xAFCA 0x7F3A +0xAFCB 0x7F5F +0xAFCC 0x7F94 +0xAFCD 0x7FC5 +0xAFCE 0x7FC1 +0xAFCF 0x8006 +0xAFD0 0x8018 +0xAFD1 0x8015 +0xAFD2 0x8019 +0xAFD3 0x8017 +0xAFD4 0x803D +0xAFD5 0x803F +0xAFD6 0x80F1 +0xAFD7 0x8102 +0xAFD8 0x80F0 +0xAFD9 0x8105 +0xAFDA 0x80ED +0xAFDB 0x80F4 +0xAFDC 0x8106 +0xAFDD 0x80F8 +0xAFDE 0x80F3 +0xAFDF 0x8108 +0xAFE0 0x80FD +0xAFE1 0x810A +0xAFE2 0x80FC +0xAFE3 0x80EF +0xAFE4 0x81ED +0xAFE5 0x81EC +0xAFE6 0x8200 +0xAFE7 0x8210 +0xAFE8 0x822A +0xAFE9 0x822B +0xAFEA 0x8228 +0xAFEB 0x822C +0xAFEC 0x82BB +0xAFED 0x832B +0xAFEE 0x8352 +0xAFEF 0x8354 +0xAFF0 0x834A +0xAFF1 0x8338 +0xAFF2 0x8350 +0xAFF3 0x8349 +0xAFF4 0x8335 +0xAFF5 0x8334 +0xAFF6 0x834F +0xAFF7 0x8332 +0xAFF8 0x8339 +0xAFF9 0x8336 +0xAFFA 0x8317 +0xAFFB 0x8340 +0xAFFC 0x8331 +0xAFFD 0x8328 +0xAFFE 0x8343 +0xB040 0x8654 +0xB041 0x868A +0xB042 0x86AA +0xB043 0x8693 +0xB044 0x86A4 +0xB045 0x86A9 +0xB046 0x868C +0xB047 0x86A3 +0xB048 0x869C +0xB049 0x8870 +0xB04A 0x8877 +0xB04B 0x8881 +0xB04C 0x8882 +0xB04D 0x887D +0xB04E 0x8879 +0xB04F 0x8A18 +0xB050 0x8A10 +0xB051 0x8A0E +0xB052 0x8A0C +0xB053 0x8A15 +0xB054 0x8A0A +0xB055 0x8A17 +0xB056 0x8A13 +0xB057 0x8A16 +0xB058 0x8A0F +0xB059 0x8A11 +0xB05A 0x8C48 +0xB05B 0x8C7A +0xB05C 0x8C79 +0xB05D 0x8CA1 +0xB05E 0x8CA2 +0xB05F 0x8D77 +0xB060 0x8EAC +0xB061 0x8ED2 +0xB062 0x8ED4 +0xB063 0x8ECF +0xB064 0x8FB1 +0xB065 0x9001 +0xB066 0x9006 +0xB067 0x8FF7 +0xB068 0x9000 +0xB069 0x8FFA +0xB06A 0x8FF4 +0xB06B 0x9003 +0xB06C 0x8FFD +0xB06D 0x9005 +0xB06E 0x8FF8 +0xB06F 0x9095 +0xB070 0x90E1 +0xB071 0x90DD +0xB072 0x90E2 +0xB073 0x9152 +0xB074 0x914D +0xB075 0x914C +0xB076 0x91D8 +0xB077 0x91DD +0xB078 0x91D7 +0xB079 0x91DC +0xB07A 0x91D9 +0xB07B 0x9583 +0xB07C 0x9662 +0xB07D 0x9663 +0xB07E 0x9661 +0xB0A1 0x965B +0xB0A2 0x965D +0xB0A3 0x9664 +0xB0A4 0x9658 +0xB0A5 0x965E +0xB0A6 0x96BB +0xB0A7 0x98E2 +0xB0A8 0x99AC +0xB0A9 0x9AA8 +0xB0AA 0x9AD8 +0xB0AB 0x9B25 +0xB0AC 0x9B32 +0xB0AD 0x9B3C +0xB0AE 0x4E7E +0xB0AF 0x507A +0xB0B0 0x507D +0xB0B1 0x505C +0xB0B2 0x5047 +0xB0B3 0x5043 +0xB0B4 0x504C +0xB0B5 0x505A +0xB0B6 0x5049 +0xB0B7 0x5065 +0xB0B8 0x5076 +0xB0B9 0x504E +0xB0BA 0x5055 +0xB0BB 0x5075 +0xB0BC 0x5074 +0xB0BD 0x5077 +0xB0BE 0x504F +0xB0BF 0x500F +0xB0C0 0x506F +0xB0C1 0x506D +0xB0C2 0x515C +0xB0C3 0x5195 +0xB0C4 0x51F0 +0xB0C5 0x526A +0xB0C6 0x526F +0xB0C7 0x52D2 +0xB0C8 0x52D9 +0xB0C9 0x52D8 +0xB0CA 0x52D5 +0xB0CB 0x5310 +0xB0CC 0x530F +0xB0CD 0x5319 +0xB0CE 0x533F +0xB0CF 0x5340 +0xB0D0 0x533E +0xB0D1 0x53C3 +0xB0D2 0x66FC +0xB0D3 0x5546 +0xB0D4 0x556A +0xB0D5 0x5566 +0xB0D6 0x5544 +0xB0D7 0x555E +0xB0D8 0x5561 +0xB0D9 0x5543 +0xB0DA 0x554A +0xB0DB 0x5531 +0xB0DC 0x5556 +0xB0DD 0x554F +0xB0DE 0x5555 +0xB0DF 0x552F +0xB0E0 0x5564 +0xB0E1 0x5538 +0xB0E2 0x552E +0xB0E3 0x555C +0xB0E4 0x552C +0xB0E5 0x5563 +0xB0E6 0x5533 +0xB0E7 0x5541 +0xB0E8 0x5557 +0xB0E9 0x5708 +0xB0EA 0x570B +0xB0EB 0x5709 +0xB0EC 0x57DF +0xB0ED 0x5805 +0xB0EE 0x580A +0xB0EF 0x5806 +0xB0F0 0x57E0 +0xB0F1 0x57E4 +0xB0F2 0x57FA +0xB0F3 0x5802 +0xB0F4 0x5835 +0xB0F5 0x57F7 +0xB0F6 0x57F9 +0xB0F7 0x5920 +0xB0F8 0x5962 +0xB0F9 0x5A36 +0xB0FA 0x5A41 +0xB0FB 0x5A49 +0xB0FC 0x5A66 +0xB0FD 0x5A6A +0xB0FE 0x5A40 +0xB140 0x5A3C +0xB141 0x5A62 +0xB142 0x5A5A +0xB143 0x5A46 +0xB144 0x5A4A +0xB145 0x5B70 +0xB146 0x5BC7 +0xB147 0x5BC5 +0xB148 0x5BC4 +0xB149 0x5BC2 +0xB14A 0x5BBF +0xB14B 0x5BC6 +0xB14C 0x5C09 +0xB14D 0x5C08 +0xB14E 0x5C07 +0xB14F 0x5C60 +0xB150 0x5C5C +0xB151 0x5C5D +0xB152 0x5D07 +0xB153 0x5D06 +0xB154 0x5D0E +0xB155 0x5D1B +0xB156 0x5D16 +0xB157 0x5D22 +0xB158 0x5D11 +0xB159 0x5D29 +0xB15A 0x5D14 +0xB15B 0x5D19 +0xB15C 0x5D24 +0xB15D 0x5D27 +0xB15E 0x5D17 +0xB15F 0x5DE2 +0xB160 0x5E38 +0xB161 0x5E36 +0xB162 0x5E33 +0xB163 0x5E37 +0xB164 0x5EB7 +0xB165 0x5EB8 +0xB166 0x5EB6 +0xB167 0x5EB5 +0xB168 0x5EBE +0xB169 0x5F35 +0xB16A 0x5F37 +0xB16B 0x5F57 +0xB16C 0x5F6C +0xB16D 0x5F69 +0xB16E 0x5F6B +0xB16F 0x5F97 +0xB170 0x5F99 +0xB171 0x5F9E +0xB172 0x5F98 +0xB173 0x5FA1 +0xB174 0x5FA0 +0xB175 0x5F9C +0xB176 0x607F +0xB177 0x60A3 +0xB178 0x6089 +0xB179 0x60A0 +0xB17A 0x60A8 +0xB17B 0x60CB +0xB17C 0x60B4 +0xB17D 0x60E6 +0xB17E 0x60BD +0xB1A1 0x60C5 +0xB1A2 0x60BB +0xB1A3 0x60B5 +0xB1A4 0x60DC +0xB1A5 0x60BC +0xB1A6 0x60D8 +0xB1A7 0x60D5 +0xB1A8 0x60C6 +0xB1A9 0x60DF +0xB1AA 0x60B8 +0xB1AB 0x60DA +0xB1AC 0x60C7 +0xB1AD 0x621A +0xB1AE 0x621B +0xB1AF 0x6248 +0xB1B0 0x63A0 +0xB1B1 0x63A7 +0xB1B2 0x6372 +0xB1B3 0x6396 +0xB1B4 0x63A2 +0xB1B5 0x63A5 +0xB1B6 0x6377 +0xB1B7 0x6367 +0xB1B8 0x6398 +0xB1B9 0x63AA +0xB1BA 0x6371 +0xB1BB 0x63A9 +0xB1BC 0x6389 +0xB1BD 0x6383 +0xB1BE 0x639B +0xB1BF 0x636B +0xB1C0 0x63A8 +0xB1C1 0x6384 +0xB1C2 0x6388 +0xB1C3 0x6399 +0xB1C4 0x63A1 +0xB1C5 0x63AC +0xB1C6 0x6392 +0xB1C7 0x638F +0xB1C8 0x6380 +0xB1C9 0x637B +0xB1CA 0x6369 +0xB1CB 0x6368 +0xB1CC 0x637A +0xB1CD 0x655D +0xB1CE 0x6556 +0xB1CF 0x6551 +0xB1D0 0x6559 +0xB1D1 0x6557 +0xB1D2 0x555F +0xB1D3 0x654F +0xB1D4 0x6558 +0xB1D5 0x6555 +0xB1D6 0x6554 +0xB1D7 0x659C +0xB1D8 0x659B +0xB1D9 0x65AC +0xB1DA 0x65CF +0xB1DB 0x65CB +0xB1DC 0x65CC +0xB1DD 0x65CE +0xB1DE 0x665D +0xB1DF 0x665A +0xB1E0 0x6664 +0xB1E1 0x6668 +0xB1E2 0x6666 +0xB1E3 0x665E +0xB1E4 0x66F9 +0xB1E5 0x52D7 +0xB1E6 0x671B +0xB1E7 0x6881 +0xB1E8 0x68AF +0xB1E9 0x68A2 +0xB1EA 0x6893 +0xB1EB 0x68B5 +0xB1EC 0x687F +0xB1ED 0x6876 +0xB1EE 0x68B1 +0xB1EF 0x68A7 +0xB1F0 0x6897 +0xB1F1 0x68B0 +0xB1F2 0x6883 +0xB1F3 0x68C4 +0xB1F4 0x68AD +0xB1F5 0x6886 +0xB1F6 0x6885 +0xB1F7 0x6894 +0xB1F8 0x689D +0xB1F9 0x68A8 +0xB1FA 0x689F +0xB1FB 0x68A1 +0xB1FC 0x6882 +0xB1FD 0x6B32 +0xB1FE 0x6BBA +0xB240 0x6BEB +0xB241 0x6BEC +0xB242 0x6C2B +0xB243 0x6D8E +0xB244 0x6DBC +0xB245 0x6DF3 +0xB246 0x6DD9 +0xB247 0x6DB2 +0xB248 0x6DE1 +0xB249 0x6DCC +0xB24A 0x6DE4 +0xB24B 0x6DFB +0xB24C 0x6DFA +0xB24D 0x6E05 +0xB24E 0x6DC7 +0xB24F 0x6DCB +0xB250 0x6DAF +0xB251 0x6DD1 +0xB252 0x6DAE +0xB253 0x6DDE +0xB254 0x6DF9 +0xB255 0x6DB8 +0xB256 0x6DF7 +0xB257 0x6DF5 +0xB258 0x6DC5 +0xB259 0x6DD2 +0xB25A 0x6E1A +0xB25B 0x6DB5 +0xB25C 0x6DDA +0xB25D 0x6DEB +0xB25E 0x6DD8 +0xB25F 0x6DEA +0xB260 0x6DF1 +0xB261 0x6DEE +0xB262 0x6DE8 +0xB263 0x6DC6 +0xB264 0x6DC4 +0xB265 0x6DAA +0xB266 0x6DEC +0xB267 0x6DBF +0xB268 0x6DE6 +0xB269 0x70F9 +0xB26A 0x7109 +0xB26B 0x710A +0xB26C 0x70FD +0xB26D 0x70EF +0xB26E 0x723D +0xB26F 0x727D +0xB270 0x7281 +0xB271 0x731C +0xB272 0x731B +0xB273 0x7316 +0xB274 0x7313 +0xB275 0x7319 +0xB276 0x7387 +0xB277 0x7405 +0xB278 0x740A +0xB279 0x7403 +0xB27A 0x7406 +0xB27B 0x73FE +0xB27C 0x740D +0xB27D 0x74E0 +0xB27E 0x74F6 +0xB2A1 0x74F7 +0xB2A2 0x751C +0xB2A3 0x7522 +0xB2A4 0x7565 +0xB2A5 0x7566 +0xB2A6 0x7562 +0xB2A7 0x7570 +0xB2A8 0x758F +0xB2A9 0x75D4 +0xB2AA 0x75D5 +0xB2AB 0x75B5 +0xB2AC 0x75CA +0xB2AD 0x75CD +0xB2AE 0x768E +0xB2AF 0x76D4 +0xB2B0 0x76D2 +0xB2B1 0x76DB +0xB2B2 0x7737 +0xB2B3 0x773E +0xB2B4 0x773C +0xB2B5 0x7736 +0xB2B6 0x7738 +0xB2B7 0x773A +0xB2B8 0x786B +0xB2B9 0x7843 +0xB2BA 0x784E +0xB2BB 0x7965 +0xB2BC 0x7968 +0xB2BD 0x796D +0xB2BE 0x79FB +0xB2BF 0x7A92 +0xB2C0 0x7A95 +0xB2C1 0x7B20 +0xB2C2 0x7B28 +0xB2C3 0x7B1B +0xB2C4 0x7B2C +0xB2C5 0x7B26 +0xB2C6 0x7B19 +0xB2C7 0x7B1E +0xB2C8 0x7B2E +0xB2C9 0x7C92 +0xB2CA 0x7C97 +0xB2CB 0x7C95 +0xB2CC 0x7D46 +0xB2CD 0x7D43 +0xB2CE 0x7D71 +0xB2CF 0x7D2E +0xB2D0 0x7D39 +0xB2D1 0x7D3C +0xB2D2 0x7D40 +0xB2D3 0x7D30 +0xB2D4 0x7D33 +0xB2D5 0x7D44 +0xB2D6 0x7D2F +0xB2D7 0x7D42 +0xB2D8 0x7D32 +0xB2D9 0x7D31 +0xB2DA 0x7F3D +0xB2DB 0x7F9E +0xB2DC 0x7F9A +0xB2DD 0x7FCC +0xB2DE 0x7FCE +0xB2DF 0x7FD2 +0xB2E0 0x801C +0xB2E1 0x804A +0xB2E2 0x8046 +0xB2E3 0x812F +0xB2E4 0x8116 +0xB2E5 0x8123 +0xB2E6 0x812B +0xB2E7 0x8129 +0xB2E8 0x8130 +0xB2E9 0x8124 +0xB2EA 0x8202 +0xB2EB 0x8235 +0xB2EC 0x8237 +0xB2ED 0x8236 +0xB2EE 0x8239 +0xB2EF 0x838E +0xB2F0 0x839E +0xB2F1 0x8398 +0xB2F2 0x8378 +0xB2F3 0x83A2 +0xB2F4 0x8396 +0xB2F5 0x83BD +0xB2F6 0x83AB +0xB2F7 0x8392 +0xB2F8 0x838A +0xB2F9 0x8393 +0xB2FA 0x8389 +0xB2FB 0x83A0 +0xB2FC 0x8377 +0xB2FD 0x837B +0xB2FE 0x837C +0xB340 0x8386 +0xB341 0x83A7 +0xB342 0x8655 +0xB343 0x5F6A +0xB344 0x86C7 +0xB345 0x86C0 +0xB346 0x86B6 +0xB347 0x86C4 +0xB348 0x86B5 +0xB349 0x86C6 +0xB34A 0x86CB +0xB34B 0x86B1 +0xB34C 0x86AF +0xB34D 0x86C9 +0xB34E 0x8853 +0xB34F 0x889E +0xB350 0x8888 +0xB351 0x88AB +0xB352 0x8892 +0xB353 0x8896 +0xB354 0x888D +0xB355 0x888B +0xB356 0x8993 +0xB357 0x898F +0xB358 0x8A2A +0xB359 0x8A1D +0xB35A 0x8A23 +0xB35B 0x8A25 +0xB35C 0x8A31 +0xB35D 0x8A2D +0xB35E 0x8A1F +0xB35F 0x8A1B +0xB360 0x8A22 +0xB361 0x8C49 +0xB362 0x8C5A +0xB363 0x8CA9 +0xB364 0x8CAC +0xB365 0x8CAB +0xB366 0x8CA8 +0xB367 0x8CAA +0xB368 0x8CA7 +0xB369 0x8D67 +0xB36A 0x8D66 +0xB36B 0x8DBE +0xB36C 0x8DBA +0xB36D 0x8EDB +0xB36E 0x8EDF +0xB36F 0x9019 +0xB370 0x900D +0xB371 0x901A +0xB372 0x9017 +0xB373 0x9023 +0xB374 0x901F +0xB375 0x901D +0xB376 0x9010 +0xB377 0x9015 +0xB378 0x901E +0xB379 0x9020 +0xB37A 0x900F +0xB37B 0x9022 +0xB37C 0x9016 +0xB37D 0x901B +0xB37E 0x9014 +0xB3A1 0x90E8 +0xB3A2 0x90ED +0xB3A3 0x90FD +0xB3A4 0x9157 +0xB3A5 0x91CE +0xB3A6 0x91F5 +0xB3A7 0x91E6 +0xB3A8 0x91E3 +0xB3A9 0x91E7 +0xB3AA 0x91ED +0xB3AB 0x91E9 +0xB3AC 0x9589 +0xB3AD 0x966A +0xB3AE 0x9675 +0xB3AF 0x9673 +0xB3B0 0x9678 +0xB3B1 0x9670 +0xB3B2 0x9674 +0xB3B3 0x9676 +0xB3B4 0x9677 +0xB3B5 0x966C +0xB3B6 0x96C0 +0xB3B7 0x96EA +0xB3B8 0x96E9 +0xB3B9 0x7AE0 +0xB3BA 0x7ADF +0xB3BB 0x9802 +0xB3BC 0x9803 +0xB3BD 0x9B5A +0xB3BE 0x9CE5 +0xB3BF 0x9E75 +0xB3C0 0x9E7F +0xB3C1 0x9EA5 +0xB3C2 0x9EBB +0xB3C3 0x50A2 +0xB3C4 0x508D +0xB3C5 0x5085 +0xB3C6 0x5099 +0xB3C7 0x5091 +0xB3C8 0x5080 +0xB3C9 0x5096 +0xB3CA 0x5098 +0xB3CB 0x509A +0xB3CC 0x6700 +0xB3CD 0x51F1 +0xB3CE 0x5272 +0xB3CF 0x5274 +0xB3D0 0x5275 +0xB3D1 0x5269 +0xB3D2 0x52DE +0xB3D3 0x52DD +0xB3D4 0x52DB +0xB3D5 0x535A +0xB3D6 0x53A5 +0xB3D7 0x557B +0xB3D8 0x5580 +0xB3D9 0x55A7 +0xB3DA 0x557C +0xB3DB 0x558A +0xB3DC 0x559D +0xB3DD 0x5598 +0xB3DE 0x5582 +0xB3DF 0x559C +0xB3E0 0x55AA +0xB3E1 0x5594 +0xB3E2 0x5587 +0xB3E3 0x558B +0xB3E4 0x5583 +0xB3E5 0x55B3 +0xB3E6 0x55AE +0xB3E7 0x559F +0xB3E8 0x553E +0xB3E9 0x55B2 +0xB3EA 0x559A +0xB3EB 0x55BB +0xB3EC 0x55AC +0xB3ED 0x55B1 +0xB3EE 0x557E +0xB3EF 0x5589 +0xB3F0 0x55AB +0xB3F1 0x5599 +0xB3F2 0x570D +0xB3F3 0x582F +0xB3F4 0x582A +0xB3F5 0x5834 +0xB3F6 0x5824 +0xB3F7 0x5830 +0xB3F8 0x5831 +0xB3F9 0x5821 +0xB3FA 0x581D +0xB3FB 0x5820 +0xB3FC 0x58F9 +0xB3FD 0x58FA +0xB3FE 0x5960 +0xB440 0x5A77 +0xB441 0x5A9A +0xB442 0x5A7F +0xB443 0x5A92 +0xB444 0x5A9B +0xB445 0x5AA7 +0xB446 0x5B73 +0xB447 0x5B71 +0xB448 0x5BD2 +0xB449 0x5BCC +0xB44A 0x5BD3 +0xB44B 0x5BD0 +0xB44C 0x5C0A +0xB44D 0x5C0B +0xB44E 0x5C31 +0xB44F 0x5D4C +0xB450 0x5D50 +0xB451 0x5D34 +0xB452 0x5D47 +0xB453 0x5DFD +0xB454 0x5E45 +0xB455 0x5E3D +0xB456 0x5E40 +0xB457 0x5E43 +0xB458 0x5E7E +0xB459 0x5ECA +0xB45A 0x5EC1 +0xB45B 0x5EC2 +0xB45C 0x5EC4 +0xB45D 0x5F3C +0xB45E 0x5F6D +0xB45F 0x5FA9 +0xB460 0x5FAA +0xB461 0x5FA8 +0xB462 0x60D1 +0xB463 0x60E1 +0xB464 0x60B2 +0xB465 0x60B6 +0xB466 0x60E0 +0xB467 0x611C +0xB468 0x6123 +0xB469 0x60FA +0xB46A 0x6115 +0xB46B 0x60F0 +0xB46C 0x60FB +0xB46D 0x60F4 +0xB46E 0x6168 +0xB46F 0x60F1 +0xB470 0x610E +0xB471 0x60F6 +0xB472 0x6109 +0xB473 0x6100 +0xB474 0x6112 +0xB475 0x621F +0xB476 0x6249 +0xB477 0x63A3 +0xB478 0x638C +0xB479 0x63CF +0xB47A 0x63C0 +0xB47B 0x63E9 +0xB47C 0x63C9 +0xB47D 0x63C6 +0xB47E 0x63CD +0xB4A1 0x63D2 +0xB4A2 0x63E3 +0xB4A3 0x63D0 +0xB4A4 0x63E1 +0xB4A5 0x63D6 +0xB4A6 0x63ED +0xB4A7 0x63EE +0xB4A8 0x6376 +0xB4A9 0x63F4 +0xB4AA 0x63EA +0xB4AB 0x63DB +0xB4AC 0x6452 +0xB4AD 0x63DA +0xB4AE 0x63F9 +0xB4AF 0x655E +0xB4B0 0x6566 +0xB4B1 0x6562 +0xB4B2 0x6563 +0xB4B3 0x6591 +0xB4B4 0x6590 +0xB4B5 0x65AF +0xB4B6 0x666E +0xB4B7 0x6670 +0xB4B8 0x6674 +0xB4B9 0x6676 +0xB4BA 0x666F +0xB4BB 0x6691 +0xB4BC 0x667A +0xB4BD 0x667E +0xB4BE 0x6677 +0xB4BF 0x66FE +0xB4C0 0x66FF +0xB4C1 0x671F +0xB4C2 0x671D +0xB4C3 0x68FA +0xB4C4 0x68D5 +0xB4C5 0x68E0 +0xB4C6 0x68D8 +0xB4C7 0x68D7 +0xB4C8 0x6905 +0xB4C9 0x68DF +0xB4CA 0x68F5 +0xB4CB 0x68EE +0xB4CC 0x68E7 +0xB4CD 0x68F9 +0xB4CE 0x68D2 +0xB4CF 0x68F2 +0xB4D0 0x68E3 +0xB4D1 0x68CB +0xB4D2 0x68CD +0xB4D3 0x690D +0xB4D4 0x6912 +0xB4D5 0x690E +0xB4D6 0x68C9 +0xB4D7 0x68DA +0xB4D8 0x696E +0xB4D9 0x68FB +0xB4DA 0x6B3E +0xB4DB 0x6B3A +0xB4DC 0x6B3D +0xB4DD 0x6B98 +0xB4DE 0x6B96 +0xB4DF 0x6BBC +0xB4E0 0x6BEF +0xB4E1 0x6C2E +0xB4E2 0x6C2F +0xB4E3 0x6C2C +0xB4E4 0x6E2F +0xB4E5 0x6E38 +0xB4E6 0x6E54 +0xB4E7 0x6E21 +0xB4E8 0x6E32 +0xB4E9 0x6E67 +0xB4EA 0x6E4A +0xB4EB 0x6E20 +0xB4EC 0x6E25 +0xB4ED 0x6E23 +0xB4EE 0x6E1B +0xB4EF 0x6E5B +0xB4F0 0x6E58 +0xB4F1 0x6E24 +0xB4F2 0x6E56 +0xB4F3 0x6E6E +0xB4F4 0x6E2D +0xB4F5 0x6E26 +0xB4F6 0x6E6F +0xB4F7 0x6E34 +0xB4F8 0x6E4D +0xB4F9 0x6E3A +0xB4FA 0x6E2C +0xB4FB 0x6E43 +0xB4FC 0x6E1D +0xB4FD 0x6E3E +0xB4FE 0x6ECB +0xB540 0x6E89 +0xB541 0x6E19 +0xB542 0x6E4E +0xB543 0x6E63 +0xB544 0x6E44 +0xB545 0x6E72 +0xB546 0x6E69 +0xB547 0x6E5F +0xB548 0x7119 +0xB549 0x711A +0xB54A 0x7126 +0xB54B 0x7130 +0xB54C 0x7121 +0xB54D 0x7136 +0xB54E 0x716E +0xB54F 0x711C +0xB550 0x724C +0xB551 0x7284 +0xB552 0x7280 +0xB553 0x7336 +0xB554 0x7325 +0xB555 0x7334 +0xB556 0x7329 +0xB557 0x743A +0xB558 0x742A +0xB559 0x7433 +0xB55A 0x7422 +0xB55B 0x7425 +0xB55C 0x7435 +0xB55D 0x7436 +0xB55E 0x7434 +0xB55F 0x742F +0xB560 0x741B +0xB561 0x7426 +0xB562 0x7428 +0xB563 0x7525 +0xB564 0x7526 +0xB565 0x756B +0xB566 0x756A +0xB567 0x75E2 +0xB568 0x75DB +0xB569 0x75E3 +0xB56A 0x75D9 +0xB56B 0x75D8 +0xB56C 0x75DE +0xB56D 0x75E0 +0xB56E 0x767B +0xB56F 0x767C +0xB570 0x7696 +0xB571 0x7693 +0xB572 0x76B4 +0xB573 0x76DC +0xB574 0x774F +0xB575 0x77ED +0xB576 0x785D +0xB577 0x786C +0xB578 0x786F +0xB579 0x7A0D +0xB57A 0x7A08 +0xB57B 0x7A0B +0xB57C 0x7A05 +0xB57D 0x7A00 +0xB57E 0x7A98 +0xB5A1 0x7A97 +0xB5A2 0x7A96 +0xB5A3 0x7AE5 +0xB5A4 0x7AE3 +0xB5A5 0x7B49 +0xB5A6 0x7B56 +0xB5A7 0x7B46 +0xB5A8 0x7B50 +0xB5A9 0x7B52 +0xB5AA 0x7B54 +0xB5AB 0x7B4D +0xB5AC 0x7B4B +0xB5AD 0x7B4F +0xB5AE 0x7B51 +0xB5AF 0x7C9F +0xB5B0 0x7CA5 +0xB5B1 0x7D5E +0xB5B2 0x7D50 +0xB5B3 0x7D68 +0xB5B4 0x7D55 +0xB5B5 0x7D2B +0xB5B6 0x7D6E +0xB5B7 0x7D72 +0xB5B8 0x7D61 +0xB5B9 0x7D66 +0xB5BA 0x7D62 +0xB5BB 0x7D70 +0xB5BC 0x7D73 +0xB5BD 0x5584 +0xB5BE 0x7FD4 +0xB5BF 0x7FD5 +0xB5C0 0x800B +0xB5C1 0x8052 +0xB5C2 0x8085 +0xB5C3 0x8155 +0xB5C4 0x8154 +0xB5C5 0x814B +0xB5C6 0x8151 +0xB5C7 0x814E +0xB5C8 0x8139 +0xB5C9 0x8146 +0xB5CA 0x813E +0xB5CB 0x814C +0xB5CC 0x8153 +0xB5CD 0x8174 +0xB5CE 0x8212 +0xB5CF 0x821C +0xB5D0 0x83E9 +0xB5D1 0x8403 +0xB5D2 0x83F8 +0xB5D3 0x840D +0xB5D4 0x83E0 +0xB5D5 0x83C5 +0xB5D6 0x840B +0xB5D7 0x83C1 +0xB5D8 0x83EF +0xB5D9 0x83F1 +0xB5DA 0x83F4 +0xB5DB 0x8457 +0xB5DC 0x840A +0xB5DD 0x83F0 +0xB5DE 0x840C +0xB5DF 0x83CC +0xB5E0 0x83FD +0xB5E1 0x83F2 +0xB5E2 0x83CA +0xB5E3 0x8438 +0xB5E4 0x840E +0xB5E5 0x8404 +0xB5E6 0x83DC +0xB5E7 0x8407 +0xB5E8 0x83D4 +0xB5E9 0x83DF +0xB5EA 0x865B +0xB5EB 0x86DF +0xB5EC 0x86D9 +0xB5ED 0x86ED +0xB5EE 0x86D4 +0xB5EF 0x86DB +0xB5F0 0x86E4 +0xB5F1 0x86D0 +0xB5F2 0x86DE +0xB5F3 0x8857 +0xB5F4 0x88C1 +0xB5F5 0x88C2 +0xB5F6 0x88B1 +0xB5F7 0x8983 +0xB5F8 0x8996 +0xB5F9 0x8A3B +0xB5FA 0x8A60 +0xB5FB 0x8A55 +0xB5FC 0x8A5E +0xB5FD 0x8A3C +0xB5FE 0x8A41 +0xB640 0x8A54 +0xB641 0x8A5B +0xB642 0x8A50 +0xB643 0x8A46 +0xB644 0x8A34 +0xB645 0x8A3A +0xB646 0x8A36 +0xB647 0x8A56 +0xB648 0x8C61 +0xB649 0x8C82 +0xB64A 0x8CAF +0xB64B 0x8CBC +0xB64C 0x8CB3 +0xB64D 0x8CBD +0xB64E 0x8CC1 +0xB64F 0x8CBB +0xB650 0x8CC0 +0xB651 0x8CB4 +0xB652 0x8CB7 +0xB653 0x8CB6 +0xB654 0x8CBF +0xB655 0x8CB8 +0xB656 0x8D8A +0xB657 0x8D85 +0xB658 0x8D81 +0xB659 0x8DCE +0xB65A 0x8DDD +0xB65B 0x8DCB +0xB65C 0x8DDA +0xB65D 0x8DD1 +0xB65E 0x8DCC +0xB65F 0x8DDB +0xB660 0x8DC6 +0xB661 0x8EFB +0xB662 0x8EF8 +0xB663 0x8EFC +0xB664 0x8F9C +0xB665 0x902E +0xB666 0x9035 +0xB667 0x9031 +0xB668 0x9038 +0xB669 0x9032 +0xB66A 0x9036 +0xB66B 0x9102 +0xB66C 0x90F5 +0xB66D 0x9109 +0xB66E 0x90FE +0xB66F 0x9163 +0xB670 0x9165 +0xB671 0x91CF +0xB672 0x9214 +0xB673 0x9215 +0xB674 0x9223 +0xB675 0x9209 +0xB676 0x921E +0xB677 0x920D +0xB678 0x9210 +0xB679 0x9207 +0xB67A 0x9211 +0xB67B 0x9594 +0xB67C 0x958F +0xB67D 0x958B +0xB67E 0x9591 +0xB6A1 0x9593 +0xB6A2 0x9592 +0xB6A3 0x958E +0xB6A4 0x968A +0xB6A5 0x968E +0xB6A6 0x968B +0xB6A7 0x967D +0xB6A8 0x9685 +0xB6A9 0x9686 +0xB6AA 0x968D +0xB6AB 0x9672 +0xB6AC 0x9684 +0xB6AD 0x96C1 +0xB6AE 0x96C5 +0xB6AF 0x96C4 +0xB6B0 0x96C6 +0xB6B1 0x96C7 +0xB6B2 0x96EF +0xB6B3 0x96F2 +0xB6B4 0x97CC +0xB6B5 0x9805 +0xB6B6 0x9806 +0xB6B7 0x9808 +0xB6B8 0x98E7 +0xB6B9 0x98EA +0xB6BA 0x98EF +0xB6BB 0x98E9 +0xB6BC 0x98F2 +0xB6BD 0x98ED +0xB6BE 0x99AE +0xB6BF 0x99AD +0xB6C0 0x9EC3 +0xB6C1 0x9ECD +0xB6C2 0x9ED1 +0xB6C3 0x4E82 +0xB6C4 0x50AD +0xB6C5 0x50B5 +0xB6C6 0x50B2 +0xB6C7 0x50B3 +0xB6C8 0x50C5 +0xB6C9 0x50BE +0xB6CA 0x50AC +0xB6CB 0x50B7 +0xB6CC 0x50BB +0xB6CD 0x50AF +0xB6CE 0x50C7 +0xB6CF 0x527F +0xB6D0 0x5277 +0xB6D1 0x527D +0xB6D2 0x52DF +0xB6D3 0x52E6 +0xB6D4 0x52E4 +0xB6D5 0x52E2 +0xB6D6 0x52E3 +0xB6D7 0x532F +0xB6D8 0x55DF +0xB6D9 0x55E8 +0xB6DA 0x55D3 +0xB6DB 0x55E6 +0xB6DC 0x55CE +0xB6DD 0x55DC +0xB6DE 0x55C7 +0xB6DF 0x55D1 +0xB6E0 0x55E3 +0xB6E1 0x55E4 +0xB6E2 0x55EF +0xB6E3 0x55DA +0xB6E4 0x55E1 +0xB6E5 0x55C5 +0xB6E6 0x55C6 +0xB6E7 0x55E5 +0xB6E8 0x55C9 +0xB6E9 0x5712 +0xB6EA 0x5713 +0xB6EB 0x585E +0xB6EC 0x5851 +0xB6ED 0x5858 +0xB6EE 0x5857 +0xB6EF 0x585A +0xB6F0 0x5854 +0xB6F1 0x586B +0xB6F2 0x584C +0xB6F3 0x586D +0xB6F4 0x584A +0xB6F5 0x5862 +0xB6F6 0x5852 +0xB6F7 0x584B +0xB6F8 0x5967 +0xB6F9 0x5AC1 +0xB6FA 0x5AC9 +0xB6FB 0x5ACC +0xB6FC 0x5ABE +0xB6FD 0x5ABD +0xB6FE 0x5ABC +0xB740 0x5AB3 +0xB741 0x5AC2 +0xB742 0x5AB2 +0xB743 0x5D69 +0xB744 0x5D6F +0xB745 0x5E4C +0xB746 0x5E79 +0xB747 0x5EC9 +0xB748 0x5EC8 +0xB749 0x5F12 +0xB74A 0x5F59 +0xB74B 0x5FAC +0xB74C 0x5FAE +0xB74D 0x611A +0xB74E 0x610F +0xB74F 0x6148 +0xB750 0x611F +0xB751 0x60F3 +0xB752 0x611B +0xB753 0x60F9 +0xB754 0x6101 +0xB755 0x6108 +0xB756 0x614E +0xB757 0x614C +0xB758 0x6144 +0xB759 0x614D +0xB75A 0x613E +0xB75B 0x6134 +0xB75C 0x6127 +0xB75D 0x610D +0xB75E 0x6106 +0xB75F 0x6137 +0xB760 0x6221 +0xB761 0x6222 +0xB762 0x6413 +0xB763 0x643E +0xB764 0x641E +0xB765 0x642A +0xB766 0x642D +0xB767 0x643D +0xB768 0x642C +0xB769 0x640F +0xB76A 0x641C +0xB76B 0x6414 +0xB76C 0x640D +0xB76D 0x6436 +0xB76E 0x6416 +0xB76F 0x6417 +0xB770 0x6406 +0xB771 0x656C +0xB772 0x659F +0xB773 0x65B0 +0xB774 0x6697 +0xB775 0x6689 +0xB776 0x6687 +0xB777 0x6688 +0xB778 0x6696 +0xB779 0x6684 +0xB77A 0x6698 +0xB77B 0x668D +0xB77C 0x6703 +0xB77D 0x6994 +0xB77E 0x696D +0xB7A1 0x695A +0xB7A2 0x6977 +0xB7A3 0x6960 +0xB7A4 0x6954 +0xB7A5 0x6975 +0xB7A6 0x6930 +0xB7A7 0x6982 +0xB7A8 0x694A +0xB7A9 0x6968 +0xB7AA 0x696B +0xB7AB 0x695E +0xB7AC 0x6953 +0xB7AD 0x6979 +0xB7AE 0x6986 +0xB7AF 0x695D +0xB7B0 0x6963 +0xB7B1 0x695B +0xB7B2 0x6B47 +0xB7B3 0x6B72 +0xB7B4 0x6BC0 +0xB7B5 0x6BBF +0xB7B6 0x6BD3 +0xB7B7 0x6BFD +0xB7B8 0x6EA2 +0xB7B9 0x6EAF +0xB7BA 0x6ED3 +0xB7BB 0x6EB6 +0xB7BC 0x6EC2 +0xB7BD 0x6E90 +0xB7BE 0x6E9D +0xB7BF 0x6EC7 +0xB7C0 0x6EC5 +0xB7C1 0x6EA5 +0xB7C2 0x6E98 +0xB7C3 0x6EBC +0xB7C4 0x6EBA +0xB7C5 0x6EAB +0xB7C6 0x6ED1 +0xB7C7 0x6E96 +0xB7C8 0x6E9C +0xB7C9 0x6EC4 +0xB7CA 0x6ED4 +0xB7CB 0x6EAA +0xB7CC 0x6EA7 +0xB7CD 0x6EB4 +0xB7CE 0x714E +0xB7CF 0x7159 +0xB7D0 0x7169 +0xB7D1 0x7164 +0xB7D2 0x7149 +0xB7D3 0x7167 +0xB7D4 0x715C +0xB7D5 0x716C +0xB7D6 0x7166 +0xB7D7 0x714C +0xB7D8 0x7165 +0xB7D9 0x715E +0xB7DA 0x7146 +0xB7DB 0x7168 +0xB7DC 0x7156 +0xB7DD 0x723A +0xB7DE 0x7252 +0xB7DF 0x7337 +0xB7E0 0x7345 +0xB7E1 0x733F +0xB7E2 0x733E +0xB7E3 0x746F +0xB7E4 0x745A +0xB7E5 0x7455 +0xB7E6 0x745F +0xB7E7 0x745E +0xB7E8 0x7441 +0xB7E9 0x743F +0xB7EA 0x7459 +0xB7EB 0x745B +0xB7EC 0x745C +0xB7ED 0x7576 +0xB7EE 0x7578 +0xB7EF 0x7600 +0xB7F0 0x75F0 +0xB7F1 0x7601 +0xB7F2 0x75F2 +0xB7F3 0x75F1 +0xB7F4 0x75FA +0xB7F5 0x75FF +0xB7F6 0x75F4 +0xB7F7 0x75F3 +0xB7F8 0x76DE +0xB7F9 0x76DF +0xB7FA 0x775B +0xB7FB 0x776B +0xB7FC 0x7766 +0xB7FD 0x775E +0xB7FE 0x7763 +0xB840 0x7779 +0xB841 0x776A +0xB842 0x776C +0xB843 0x775C +0xB844 0x7765 +0xB845 0x7768 +0xB846 0x7762 +0xB847 0x77EE +0xB848 0x788E +0xB849 0x78B0 +0xB84A 0x7897 +0xB84B 0x7898 +0xB84C 0x788C +0xB84D 0x7889 +0xB84E 0x787C +0xB84F 0x7891 +0xB850 0x7893 +0xB851 0x787F +0xB852 0x797A +0xB853 0x797F +0xB854 0x7981 +0xB855 0x842C +0xB856 0x79BD +0xB857 0x7A1C +0xB858 0x7A1A +0xB859 0x7A20 +0xB85A 0x7A14 +0xB85B 0x7A1F +0xB85C 0x7A1E +0xB85D 0x7A9F +0xB85E 0x7AA0 +0xB85F 0x7B77 +0xB860 0x7BC0 +0xB861 0x7B60 +0xB862 0x7B6E +0xB863 0x7B67 +0xB864 0x7CB1 +0xB865 0x7CB3 +0xB866 0x7CB5 +0xB867 0x7D93 +0xB868 0x7D79 +0xB869 0x7D91 +0xB86A 0x7D81 +0xB86B 0x7D8F +0xB86C 0x7D5B +0xB86D 0x7F6E +0xB86E 0x7F69 +0xB86F 0x7F6A +0xB870 0x7F72 +0xB871 0x7FA9 +0xB872 0x7FA8 +0xB873 0x7FA4 +0xB874 0x8056 +0xB875 0x8058 +0xB876 0x8086 +0xB877 0x8084 +0xB878 0x8171 +0xB879 0x8170 +0xB87A 0x8178 +0xB87B 0x8165 +0xB87C 0x816E +0xB87D 0x8173 +0xB87E 0x816B +0xB8A1 0x8179 +0xB8A2 0x817A +0xB8A3 0x8166 +0xB8A4 0x8205 +0xB8A5 0x8247 +0xB8A6 0x8482 +0xB8A7 0x8477 +0xB8A8 0x843D +0xB8A9 0x8431 +0xB8AA 0x8475 +0xB8AB 0x8466 +0xB8AC 0x846B +0xB8AD 0x8449 +0xB8AE 0x846C +0xB8AF 0x845B +0xB8B0 0x843C +0xB8B1 0x8435 +0xB8B2 0x8461 +0xB8B3 0x8463 +0xB8B4 0x8469 +0xB8B5 0x846D +0xB8B6 0x8446 +0xB8B7 0x865E +0xB8B8 0x865C +0xB8B9 0x865F +0xB8BA 0x86F9 +0xB8BB 0x8713 +0xB8BC 0x8708 +0xB8BD 0x8707 +0xB8BE 0x8700 +0xB8BF 0x86FE +0xB8C0 0x86FB +0xB8C1 0x8702 +0xB8C2 0x8703 +0xB8C3 0x8706 +0xB8C4 0x870A +0xB8C5 0x8859 +0xB8C6 0x88DF +0xB8C7 0x88D4 +0xB8C8 0x88D9 +0xB8C9 0x88DC +0xB8CA 0x88D8 +0xB8CB 0x88DD +0xB8CC 0x88E1 +0xB8CD 0x88CA +0xB8CE 0x88D5 +0xB8CF 0x88D2 +0xB8D0 0x899C +0xB8D1 0x89E3 +0xB8D2 0x8A6B +0xB8D3 0x8A72 +0xB8D4 0x8A73 +0xB8D5 0x8A66 +0xB8D6 0x8A69 +0xB8D7 0x8A70 +0xB8D8 0x8A87 +0xB8D9 0x8A7C +0xB8DA 0x8A63 +0xB8DB 0x8AA0 +0xB8DC 0x8A71 +0xB8DD 0x8A85 +0xB8DE 0x8A6D +0xB8DF 0x8A62 +0xB8E0 0x8A6E +0xB8E1 0x8A6C +0xB8E2 0x8A79 +0xB8E3 0x8A7B +0xB8E4 0x8A3E +0xB8E5 0x8A68 +0xB8E6 0x8C62 +0xB8E7 0x8C8A +0xB8E8 0x8C89 +0xB8E9 0x8CCA +0xB8EA 0x8CC7 +0xB8EB 0x8CC8 +0xB8EC 0x8CC4 +0xB8ED 0x8CB2 +0xB8EE 0x8CC3 +0xB8EF 0x8CC2 +0xB8F0 0x8CC5 +0xB8F1 0x8DE1 +0xB8F2 0x8DDF +0xB8F3 0x8DE8 +0xB8F4 0x8DEF +0xB8F5 0x8DF3 +0xB8F6 0x8DFA +0xB8F7 0x8DEA +0xB8F8 0x8DE4 +0xB8F9 0x8DE6 +0xB8FA 0x8EB2 +0xB8FB 0x8F03 +0xB8FC 0x8F09 +0xB8FD 0x8EFE +0xB8FE 0x8F0A +0xB940 0x8F9F +0xB941 0x8FB2 +0xB942 0x904B +0xB943 0x904A +0xB944 0x9053 +0xB945 0x9042 +0xB946 0x9054 +0xB947 0x903C +0xB948 0x9055 +0xB949 0x9050 +0xB94A 0x9047 +0xB94B 0x904F +0xB94C 0x904E +0xB94D 0x904D +0xB94E 0x9051 +0xB94F 0x903E +0xB950 0x9041 +0xB951 0x9112 +0xB952 0x9117 +0xB953 0x916C +0xB954 0x916A +0xB955 0x9169 +0xB956 0x91C9 +0xB957 0x9237 +0xB958 0x9257 +0xB959 0x9238 +0xB95A 0x923D +0xB95B 0x9240 +0xB95C 0x923E +0xB95D 0x925B +0xB95E 0x924B +0xB95F 0x9264 +0xB960 0x9251 +0xB961 0x9234 +0xB962 0x9249 +0xB963 0x924D +0xB964 0x9245 +0xB965 0x9239 +0xB966 0x923F +0xB967 0x925A +0xB968 0x9598 +0xB969 0x9698 +0xB96A 0x9694 +0xB96B 0x9695 +0xB96C 0x96CD +0xB96D 0x96CB +0xB96E 0x96C9 +0xB96F 0x96CA +0xB970 0x96F7 +0xB971 0x96FB +0xB972 0x96F9 +0xB973 0x96F6 +0xB974 0x9756 +0xB975 0x9774 +0xB976 0x9776 +0xB977 0x9810 +0xB978 0x9811 +0xB979 0x9813 +0xB97A 0x980A +0xB97B 0x9812 +0xB97C 0x980C +0xB97D 0x98FC +0xB97E 0x98F4 +0xB9A1 0x98FD +0xB9A2 0x98FE +0xB9A3 0x99B3 +0xB9A4 0x99B1 +0xB9A5 0x99B4 +0xB9A6 0x9AE1 +0xB9A7 0x9CE9 +0xB9A8 0x9E82 +0xB9A9 0x9F0E +0xB9AA 0x9F13 +0xB9AB 0x9F20 +0xB9AC 0x50E7 +0xB9AD 0x50EE +0xB9AE 0x50E5 +0xB9AF 0x50D6 +0xB9B0 0x50ED +0xB9B1 0x50DA +0xB9B2 0x50D5 +0xB9B3 0x50CF +0xB9B4 0x50D1 +0xB9B5 0x50F1 +0xB9B6 0x50CE +0xB9B7 0x50E9 +0xB9B8 0x5162 +0xB9B9 0x51F3 +0xB9BA 0x5283 +0xB9BB 0x5282 +0xB9BC 0x5331 +0xB9BD 0x53AD +0xB9BE 0x55FE +0xB9BF 0x5600 +0xB9C0 0x561B +0xB9C1 0x5617 +0xB9C2 0x55FD +0xB9C3 0x5614 +0xB9C4 0x5606 +0xB9C5 0x5609 +0xB9C6 0x560D +0xB9C7 0x560E +0xB9C8 0x55F7 +0xB9C9 0x5616 +0xB9CA 0x561F +0xB9CB 0x5608 +0xB9CC 0x5610 +0xB9CD 0x55F6 +0xB9CE 0x5718 +0xB9CF 0x5716 +0xB9D0 0x5875 +0xB9D1 0x587E +0xB9D2 0x5883 +0xB9D3 0x5893 +0xB9D4 0x588A +0xB9D5 0x5879 +0xB9D6 0x5885 +0xB9D7 0x587D +0xB9D8 0x58FD +0xB9D9 0x5925 +0xB9DA 0x5922 +0xB9DB 0x5924 +0xB9DC 0x596A +0xB9DD 0x5969 +0xB9DE 0x5AE1 +0xB9DF 0x5AE6 +0xB9E0 0x5AE9 +0xB9E1 0x5AD7 +0xB9E2 0x5AD6 +0xB9E3 0x5AD8 +0xB9E4 0x5AE3 +0xB9E5 0x5B75 +0xB9E6 0x5BDE +0xB9E7 0x5BE7 +0xB9E8 0x5BE1 +0xB9E9 0x5BE5 +0xB9EA 0x5BE6 +0xB9EB 0x5BE8 +0xB9EC 0x5BE2 +0xB9ED 0x5BE4 +0xB9EE 0x5BDF +0xB9EF 0x5C0D +0xB9F0 0x5C62 +0xB9F1 0x5D84 +0xB9F2 0x5D87 +0xB9F3 0x5E5B +0xB9F4 0x5E63 +0xB9F5 0x5E55 +0xB9F6 0x5E57 +0xB9F7 0x5E54 +0xB9F8 0x5ED3 +0xB9F9 0x5ED6 +0xB9FA 0x5F0A +0xB9FB 0x5F46 +0xB9FC 0x5F70 +0xB9FD 0x5FB9 +0xB9FE 0x6147 +0xBA40 0x613F +0xBA41 0x614B +0xBA42 0x6177 +0xBA43 0x6162 +0xBA44 0x6163 +0xBA45 0x615F +0xBA46 0x615A +0xBA47 0x6158 +0xBA48 0x6175 +0xBA49 0x622A +0xBA4A 0x6487 +0xBA4B 0x6458 +0xBA4C 0x6454 +0xBA4D 0x64A4 +0xBA4E 0x6478 +0xBA4F 0x645F +0xBA50 0x647A +0xBA51 0x6451 +0xBA52 0x6467 +0xBA53 0x6434 +0xBA54 0x646D +0xBA55 0x647B +0xBA56 0x6572 +0xBA57 0x65A1 +0xBA58 0x65D7 +0xBA59 0x65D6 +0xBA5A 0x66A2 +0xBA5B 0x66A8 +0xBA5C 0x669D +0xBA5D 0x699C +0xBA5E 0x69A8 +0xBA5F 0x6995 +0xBA60 0x69C1 +0xBA61 0x69AE +0xBA62 0x69D3 +0xBA63 0x69CB +0xBA64 0x699B +0xBA65 0x69B7 +0xBA66 0x69BB +0xBA67 0x69AB +0xBA68 0x69B4 +0xBA69 0x69D0 +0xBA6A 0x69CD +0xBA6B 0x69AD +0xBA6C 0x69CC +0xBA6D 0x69A6 +0xBA6E 0x69C3 +0xBA6F 0x69A3 +0xBA70 0x6B49 +0xBA71 0x6B4C +0xBA72 0x6C33 +0xBA73 0x6F33 +0xBA74 0x6F14 +0xBA75 0x6EFE +0xBA76 0x6F13 +0xBA77 0x6EF4 +0xBA78 0x6F29 +0xBA79 0x6F3E +0xBA7A 0x6F20 +0xBA7B 0x6F2C +0xBA7C 0x6F0F +0xBA7D 0x6F02 +0xBA7E 0x6F22 +0xBAA1 0x6EFF +0xBAA2 0x6EEF +0xBAA3 0x6F06 +0xBAA4 0x6F31 +0xBAA5 0x6F38 +0xBAA6 0x6F32 +0xBAA7 0x6F23 +0xBAA8 0x6F15 +0xBAA9 0x6F2B +0xBAAA 0x6F2F +0xBAAB 0x6F88 +0xBAAC 0x6F2A +0xBAAD 0x6EEC +0xBAAE 0x6F01 +0xBAAF 0x6EF2 +0xBAB0 0x6ECC +0xBAB1 0x6EF7 +0xBAB2 0x7194 +0xBAB3 0x7199 +0xBAB4 0x717D +0xBAB5 0x718A +0xBAB6 0x7184 +0xBAB7 0x7192 +0xBAB8 0x723E +0xBAB9 0x7292 +0xBABA 0x7296 +0xBABB 0x7344 +0xBABC 0x7350 +0xBABD 0x7464 +0xBABE 0x7463 +0xBABF 0x746A +0xBAC0 0x7470 +0xBAC1 0x746D +0xBAC2 0x7504 +0xBAC3 0x7591 +0xBAC4 0x7627 +0xBAC5 0x760D +0xBAC6 0x760B +0xBAC7 0x7609 +0xBAC8 0x7613 +0xBAC9 0x76E1 +0xBACA 0x76E3 +0xBACB 0x7784 +0xBACC 0x777D +0xBACD 0x777F +0xBACE 0x7761 +0xBACF 0x78C1 +0xBAD0 0x789F +0xBAD1 0x78A7 +0xBAD2 0x78B3 +0xBAD3 0x78A9 +0xBAD4 0x78A3 +0xBAD5 0x798E +0xBAD6 0x798F +0xBAD7 0x798D +0xBAD8 0x7A2E +0xBAD9 0x7A31 +0xBADA 0x7AAA +0xBADB 0x7AA9 +0xBADC 0x7AED +0xBADD 0x7AEF +0xBADE 0x7BA1 +0xBADF 0x7B95 +0xBAE0 0x7B8B +0xBAE1 0x7B75 +0xBAE2 0x7B97 +0xBAE3 0x7B9D +0xBAE4 0x7B94 +0xBAE5 0x7B8F +0xBAE6 0x7BB8 +0xBAE7 0x7B87 +0xBAE8 0x7B84 +0xBAE9 0x7CB9 +0xBAEA 0x7CBD +0xBAEB 0x7CBE +0xBAEC 0x7DBB +0xBAED 0x7DB0 +0xBAEE 0x7D9C +0xBAEF 0x7DBD +0xBAF0 0x7DBE +0xBAF1 0x7DA0 +0xBAF2 0x7DCA +0xBAF3 0x7DB4 +0xBAF4 0x7DB2 +0xBAF5 0x7DB1 +0xBAF6 0x7DBA +0xBAF7 0x7DA2 +0xBAF8 0x7DBF +0xBAF9 0x7DB5 +0xBAFA 0x7DB8 +0xBAFB 0x7DAD +0xBAFC 0x7DD2 +0xBAFD 0x7DC7 +0xBAFE 0x7DAC +0xBB40 0x7F70 +0xBB41 0x7FE0 +0xBB42 0x7FE1 +0xBB43 0x7FDF +0xBB44 0x805E +0xBB45 0x805A +0xBB46 0x8087 +0xBB47 0x8150 +0xBB48 0x8180 +0xBB49 0x818F +0xBB4A 0x8188 +0xBB4B 0x818A +0xBB4C 0x817F +0xBB4D 0x8182 +0xBB4E 0x81E7 +0xBB4F 0x81FA +0xBB50 0x8207 +0xBB51 0x8214 +0xBB52 0x821E +0xBB53 0x824B +0xBB54 0x84C9 +0xBB55 0x84BF +0xBB56 0x84C6 +0xBB57 0x84C4 +0xBB58 0x8499 +0xBB59 0x849E +0xBB5A 0x84B2 +0xBB5B 0x849C +0xBB5C 0x84CB +0xBB5D 0x84B8 +0xBB5E 0x84C0 +0xBB5F 0x84D3 +0xBB60 0x8490 +0xBB61 0x84BC +0xBB62 0x84D1 +0xBB63 0x84CA +0xBB64 0x873F +0xBB65 0x871C +0xBB66 0x873B +0xBB67 0x8722 +0xBB68 0x8725 +0xBB69 0x8734 +0xBB6A 0x8718 +0xBB6B 0x8755 +0xBB6C 0x8737 +0xBB6D 0x8729 +0xBB6E 0x88F3 +0xBB6F 0x8902 +0xBB70 0x88F4 +0xBB71 0x88F9 +0xBB72 0x88F8 +0xBB73 0x88FD +0xBB74 0x88E8 +0xBB75 0x891A +0xBB76 0x88EF +0xBB77 0x8AA6 +0xBB78 0x8A8C +0xBB79 0x8A9E +0xBB7A 0x8AA3 +0xBB7B 0x8A8D +0xBB7C 0x8AA1 +0xBB7D 0x8A93 +0xBB7E 0x8AA4 +0xBBA1 0x8AAA +0xBBA2 0x8AA5 +0xBBA3 0x8AA8 +0xBBA4 0x8A98 +0xBBA5 0x8A91 +0xBBA6 0x8A9A +0xBBA7 0x8AA7 +0xBBA8 0x8C6A +0xBBA9 0x8C8D +0xBBAA 0x8C8C +0xBBAB 0x8CD3 +0xBBAC 0x8CD1 +0xBBAD 0x8CD2 +0xBBAE 0x8D6B +0xBBAF 0x8D99 +0xBBB0 0x8D95 +0xBBB1 0x8DFC +0xBBB2 0x8F14 +0xBBB3 0x8F12 +0xBBB4 0x8F15 +0xBBB5 0x8F13 +0xBBB6 0x8FA3 +0xBBB7 0x9060 +0xBBB8 0x9058 +0xBBB9 0x905C +0xBBBA 0x9063 +0xBBBB 0x9059 +0xBBBC 0x905E +0xBBBD 0x9062 +0xBBBE 0x905D +0xBBBF 0x905B +0xBBC0 0x9119 +0xBBC1 0x9118 +0xBBC2 0x911E +0xBBC3 0x9175 +0xBBC4 0x9178 +0xBBC5 0x9177 +0xBBC6 0x9174 +0xBBC7 0x9278 +0xBBC8 0x9280 +0xBBC9 0x9285 +0xBBCA 0x9298 +0xBBCB 0x9296 +0xBBCC 0x927B +0xBBCD 0x9293 +0xBBCE 0x929C +0xBBCF 0x92A8 +0xBBD0 0x927C +0xBBD1 0x9291 +0xBBD2 0x95A1 +0xBBD3 0x95A8 +0xBBD4 0x95A9 +0xBBD5 0x95A3 +0xBBD6 0x95A5 +0xBBD7 0x95A4 +0xBBD8 0x9699 +0xBBD9 0x969C +0xBBDA 0x969B +0xBBDB 0x96CC +0xBBDC 0x96D2 +0xBBDD 0x9700 +0xBBDE 0x977C +0xBBDF 0x9785 +0xBBE0 0x97F6 +0xBBE1 0x9817 +0xBBE2 0x9818 +0xBBE3 0x98AF +0xBBE4 0x98B1 +0xBBE5 0x9903 +0xBBE6 0x9905 +0xBBE7 0x990C +0xBBE8 0x9909 +0xBBE9 0x99C1 +0xBBEA 0x9AAF +0xBBEB 0x9AB0 +0xBBEC 0x9AE6 +0xBBED 0x9B41 +0xBBEE 0x9B42 +0xBBEF 0x9CF4 +0xBBF0 0x9CF6 +0xBBF1 0x9CF3 +0xBBF2 0x9EBC +0xBBF3 0x9F3B +0xBBF4 0x9F4A +0xBBF5 0x5104 +0xBBF6 0x5100 +0xBBF7 0x50FB +0xBBF8 0x50F5 +0xBBF9 0x50F9 +0xBBFA 0x5102 +0xBBFB 0x5108 +0xBBFC 0x5109 +0xBBFD 0x5105 +0xBBFE 0x51DC +0xBC40 0x5287 +0xBC41 0x5288 +0xBC42 0x5289 +0xBC43 0x528D +0xBC44 0x528A +0xBC45 0x52F0 +0xBC46 0x53B2 +0xBC47 0x562E +0xBC48 0x563B +0xBC49 0x5639 +0xBC4A 0x5632 +0xBC4B 0x563F +0xBC4C 0x5634 +0xBC4D 0x5629 +0xBC4E 0x5653 +0xBC4F 0x564E +0xBC50 0x5657 +0xBC51 0x5674 +0xBC52 0x5636 +0xBC53 0x562F +0xBC54 0x5630 +0xBC55 0x5880 +0xBC56 0x589F +0xBC57 0x589E +0xBC58 0x58B3 +0xBC59 0x589C +0xBC5A 0x58AE +0xBC5B 0x58A9 +0xBC5C 0x58A6 +0xBC5D 0x596D +0xBC5E 0x5B09 +0xBC5F 0x5AFB +0xBC60 0x5B0B +0xBC61 0x5AF5 +0xBC62 0x5B0C +0xBC63 0x5B08 +0xBC64 0x5BEE +0xBC65 0x5BEC +0xBC66 0x5BE9 +0xBC67 0x5BEB +0xBC68 0x5C64 +0xBC69 0x5C65 +0xBC6A 0x5D9D +0xBC6B 0x5D94 +0xBC6C 0x5E62 +0xBC6D 0x5E5F +0xBC6E 0x5E61 +0xBC6F 0x5EE2 +0xBC70 0x5EDA +0xBC71 0x5EDF +0xBC72 0x5EDD +0xBC73 0x5EE3 +0xBC74 0x5EE0 +0xBC75 0x5F48 +0xBC76 0x5F71 +0xBC77 0x5FB7 +0xBC78 0x5FB5 +0xBC79 0x6176 +0xBC7A 0x6167 +0xBC7B 0x616E +0xBC7C 0x615D +0xBC7D 0x6155 +0xBC7E 0x6182 +0xBCA1 0x617C +0xBCA2 0x6170 +0xBCA3 0x616B +0xBCA4 0x617E +0xBCA5 0x61A7 +0xBCA6 0x6190 +0xBCA7 0x61AB +0xBCA8 0x618E +0xBCA9 0x61AC +0xBCAA 0x619A +0xBCAB 0x61A4 +0xBCAC 0x6194 +0xBCAD 0x61AE +0xBCAE 0x622E +0xBCAF 0x6469 +0xBCB0 0x646F +0xBCB1 0x6479 +0xBCB2 0x649E +0xBCB3 0x64B2 +0xBCB4 0x6488 +0xBCB5 0x6490 +0xBCB6 0x64B0 +0xBCB7 0x64A5 +0xBCB8 0x6493 +0xBCB9 0x6495 +0xBCBA 0x64A9 +0xBCBB 0x6492 +0xBCBC 0x64AE +0xBCBD 0x64AD +0xBCBE 0x64AB +0xBCBF 0x649A +0xBCC0 0x64AC +0xBCC1 0x6499 +0xBCC2 0x64A2 +0xBCC3 0x64B3 +0xBCC4 0x6575 +0xBCC5 0x6577 +0xBCC6 0x6578 +0xBCC7 0x66AE +0xBCC8 0x66AB +0xBCC9 0x66B4 +0xBCCA 0x66B1 +0xBCCB 0x6A23 +0xBCCC 0x6A1F +0xBCCD 0x69E8 +0xBCCE 0x6A01 +0xBCCF 0x6A1E +0xBCD0 0x6A19 +0xBCD1 0x69FD +0xBCD2 0x6A21 +0xBCD3 0x6A13 +0xBCD4 0x6A0A +0xBCD5 0x69F3 +0xBCD6 0x6A02 +0xBCD7 0x6A05 +0xBCD8 0x69ED +0xBCD9 0x6A11 +0xBCDA 0x6B50 +0xBCDB 0x6B4E +0xBCDC 0x6BA4 +0xBCDD 0x6BC5 +0xBCDE 0x6BC6 +0xBCDF 0x6F3F +0xBCE0 0x6F7C +0xBCE1 0x6F84 +0xBCE2 0x6F51 +0xBCE3 0x6F66 +0xBCE4 0x6F54 +0xBCE5 0x6F86 +0xBCE6 0x6F6D +0xBCE7 0x6F5B +0xBCE8 0x6F78 +0xBCE9 0x6F6E +0xBCEA 0x6F8E +0xBCEB 0x6F7A +0xBCEC 0x6F70 +0xBCED 0x6F64 +0xBCEE 0x6F97 +0xBCEF 0x6F58 +0xBCF0 0x6ED5 +0xBCF1 0x6F6F +0xBCF2 0x6F60 +0xBCF3 0x6F5F +0xBCF4 0x719F +0xBCF5 0x71AC +0xBCF6 0x71B1 +0xBCF7 0x71A8 +0xBCF8 0x7256 +0xBCF9 0x729B +0xBCFA 0x734E +0xBCFB 0x7357 +0xBCFC 0x7469 +0xBCFD 0x748B +0xBCFE 0x7483 +0xBD40 0x747E +0xBD41 0x7480 +0xBD42 0x757F +0xBD43 0x7620 +0xBD44 0x7629 +0xBD45 0x761F +0xBD46 0x7624 +0xBD47 0x7626 +0xBD48 0x7621 +0xBD49 0x7622 +0xBD4A 0x769A +0xBD4B 0x76BA +0xBD4C 0x76E4 +0xBD4D 0x778E +0xBD4E 0x7787 +0xBD4F 0x778C +0xBD50 0x7791 +0xBD51 0x778B +0xBD52 0x78CB +0xBD53 0x78C5 +0xBD54 0x78BA +0xBD55 0x78CA +0xBD56 0x78BE +0xBD57 0x78D5 +0xBD58 0x78BC +0xBD59 0x78D0 +0xBD5A 0x7A3F +0xBD5B 0x7A3C +0xBD5C 0x7A40 +0xBD5D 0x7A3D +0xBD5E 0x7A37 +0xBD5F 0x7A3B +0xBD60 0x7AAF +0xBD61 0x7AAE +0xBD62 0x7BAD +0xBD63 0x7BB1 +0xBD64 0x7BC4 +0xBD65 0x7BB4 +0xBD66 0x7BC6 +0xBD67 0x7BC7 +0xBD68 0x7BC1 +0xBD69 0x7BA0 +0xBD6A 0x7BCC +0xBD6B 0x7CCA +0xBD6C 0x7DE0 +0xBD6D 0x7DF4 +0xBD6E 0x7DEF +0xBD6F 0x7DFB +0xBD70 0x7DD8 +0xBD71 0x7DEC +0xBD72 0x7DDD +0xBD73 0x7DE8 +0xBD74 0x7DE3 +0xBD75 0x7DDA +0xBD76 0x7DDE +0xBD77 0x7DE9 +0xBD78 0x7D9E +0xBD79 0x7DD9 +0xBD7A 0x7DF2 +0xBD7B 0x7DF9 +0xBD7C 0x7F75 +0xBD7D 0x7F77 +0xBD7E 0x7FAF +0xBDA1 0x7FE9 +0xBDA2 0x8026 +0xBDA3 0x819B +0xBDA4 0x819C +0xBDA5 0x819D +0xBDA6 0x81A0 +0xBDA7 0x819A +0xBDA8 0x8198 +0xBDA9 0x8517 +0xBDAA 0x853D +0xBDAB 0x851A +0xBDAC 0x84EE +0xBDAD 0x852C +0xBDAE 0x852D +0xBDAF 0x8513 +0xBDB0 0x8511 +0xBDB1 0x8523 +0xBDB2 0x8521 +0xBDB3 0x8514 +0xBDB4 0x84EC +0xBDB5 0x8525 +0xBDB6 0x84FF +0xBDB7 0x8506 +0xBDB8 0x8782 +0xBDB9 0x8774 +0xBDBA 0x8776 +0xBDBB 0x8760 +0xBDBC 0x8766 +0xBDBD 0x8778 +0xBDBE 0x8768 +0xBDBF 0x8759 +0xBDC0 0x8757 +0xBDC1 0x874C +0xBDC2 0x8753 +0xBDC3 0x885B +0xBDC4 0x885D +0xBDC5 0x8910 +0xBDC6 0x8907 +0xBDC7 0x8912 +0xBDC8 0x8913 +0xBDC9 0x8915 +0xBDCA 0x890A +0xBDCB 0x8ABC +0xBDCC 0x8AD2 +0xBDCD 0x8AC7 +0xBDCE 0x8AC4 +0xBDCF 0x8A95 +0xBDD0 0x8ACB +0xBDD1 0x8AF8 +0xBDD2 0x8AB2 +0xBDD3 0x8AC9 +0xBDD4 0x8AC2 +0xBDD5 0x8ABF +0xBDD6 0x8AB0 +0xBDD7 0x8AD6 +0xBDD8 0x8ACD +0xBDD9 0x8AB6 +0xBDDA 0x8AB9 +0xBDDB 0x8ADB +0xBDDC 0x8C4C +0xBDDD 0x8C4E +0xBDDE 0x8C6C +0xBDDF 0x8CE0 +0xBDE0 0x8CDE +0xBDE1 0x8CE6 +0xBDE2 0x8CE4 +0xBDE3 0x8CEC +0xBDE4 0x8CED +0xBDE5 0x8CE2 +0xBDE6 0x8CE3 +0xBDE7 0x8CDC +0xBDE8 0x8CEA +0xBDE9 0x8CE1 +0xBDEA 0x8D6D +0xBDEB 0x8D9F +0xBDEC 0x8DA3 +0xBDED 0x8E2B +0xBDEE 0x8E10 +0xBDEF 0x8E1D +0xBDF0 0x8E22 +0xBDF1 0x8E0F +0xBDF2 0x8E29 +0xBDF3 0x8E1F +0xBDF4 0x8E21 +0xBDF5 0x8E1E +0xBDF6 0x8EBA +0xBDF7 0x8F1D +0xBDF8 0x8F1B +0xBDF9 0x8F1F +0xBDFA 0x8F29 +0xBDFB 0x8F26 +0xBDFC 0x8F2A +0xBDFD 0x8F1C +0xBDFE 0x8F1E +0xBE40 0x8F25 +0xBE41 0x9069 +0xBE42 0x906E +0xBE43 0x9068 +0xBE44 0x906D +0xBE45 0x9077 +0xBE46 0x9130 +0xBE47 0x912D +0xBE48 0x9127 +0xBE49 0x9131 +0xBE4A 0x9187 +0xBE4B 0x9189 +0xBE4C 0x918B +0xBE4D 0x9183 +0xBE4E 0x92C5 +0xBE4F 0x92BB +0xBE50 0x92B7 +0xBE51 0x92EA +0xBE52 0x92AC +0xBE53 0x92E4 +0xBE54 0x92C1 +0xBE55 0x92B3 +0xBE56 0x92BC +0xBE57 0x92D2 +0xBE58 0x92C7 +0xBE59 0x92F0 +0xBE5A 0x92B2 +0xBE5B 0x95AD +0xBE5C 0x95B1 +0xBE5D 0x9704 +0xBE5E 0x9706 +0xBE5F 0x9707 +0xBE60 0x9709 +0xBE61 0x9760 +0xBE62 0x978D +0xBE63 0x978B +0xBE64 0x978F +0xBE65 0x9821 +0xBE66 0x982B +0xBE67 0x981C +0xBE68 0x98B3 +0xBE69 0x990A +0xBE6A 0x9913 +0xBE6B 0x9912 +0xBE6C 0x9918 +0xBE6D 0x99DD +0xBE6E 0x99D0 +0xBE6F 0x99DF +0xBE70 0x99DB +0xBE71 0x99D1 +0xBE72 0x99D5 +0xBE73 0x99D2 +0xBE74 0x99D9 +0xBE75 0x9AB7 +0xBE76 0x9AEE +0xBE77 0x9AEF +0xBE78 0x9B27 +0xBE79 0x9B45 +0xBE7A 0x9B44 +0xBE7B 0x9B77 +0xBE7C 0x9B6F +0xBE7D 0x9D06 +0xBE7E 0x9D09 +0xBEA1 0x9D03 +0xBEA2 0x9EA9 +0xBEA3 0x9EBE +0xBEA4 0x9ECE +0xBEA5 0x58A8 +0xBEA6 0x9F52 +0xBEA7 0x5112 +0xBEA8 0x5118 +0xBEA9 0x5114 +0xBEAA 0x5110 +0xBEAB 0x5115 +0xBEAC 0x5180 +0xBEAD 0x51AA +0xBEAE 0x51DD +0xBEAF 0x5291 +0xBEB0 0x5293 +0xBEB1 0x52F3 +0xBEB2 0x5659 +0xBEB3 0x566B +0xBEB4 0x5679 +0xBEB5 0x5669 +0xBEB6 0x5664 +0xBEB7 0x5678 +0xBEB8 0x566A +0xBEB9 0x5668 +0xBEBA 0x5665 +0xBEBB 0x5671 +0xBEBC 0x566F +0xBEBD 0x566C +0xBEBE 0x5662 +0xBEBF 0x5676 +0xBEC0 0x58C1 +0xBEC1 0x58BE +0xBEC2 0x58C7 +0xBEC3 0x58C5 +0xBEC4 0x596E +0xBEC5 0x5B1D +0xBEC6 0x5B34 +0xBEC7 0x5B78 +0xBEC8 0x5BF0 +0xBEC9 0x5C0E +0xBECA 0x5F4A +0xBECB 0x61B2 +0xBECC 0x6191 +0xBECD 0x61A9 +0xBECE 0x618A +0xBECF 0x61CD +0xBED0 0x61B6 +0xBED1 0x61BE +0xBED2 0x61CA +0xBED3 0x61C8 +0xBED4 0x6230 +0xBED5 0x64C5 +0xBED6 0x64C1 +0xBED7 0x64CB +0xBED8 0x64BB +0xBED9 0x64BC +0xBEDA 0x64DA +0xBEDB 0x64C4 +0xBEDC 0x64C7 +0xBEDD 0x64C2 +0xBEDE 0x64CD +0xBEDF 0x64BF +0xBEE0 0x64D2 +0xBEE1 0x64D4 +0xBEE2 0x64BE +0xBEE3 0x6574 +0xBEE4 0x66C6 +0xBEE5 0x66C9 +0xBEE6 0x66B9 +0xBEE7 0x66C4 +0xBEE8 0x66C7 +0xBEE9 0x66B8 +0xBEEA 0x6A3D +0xBEEB 0x6A38 +0xBEEC 0x6A3A +0xBEED 0x6A59 +0xBEEE 0x6A6B +0xBEEF 0x6A58 +0xBEF0 0x6A39 +0xBEF1 0x6A44 +0xBEF2 0x6A62 +0xBEF3 0x6A61 +0xBEF4 0x6A4B +0xBEF5 0x6A47 +0xBEF6 0x6A35 +0xBEF7 0x6A5F +0xBEF8 0x6A48 +0xBEF9 0x6B59 +0xBEFA 0x6B77 +0xBEFB 0x6C05 +0xBEFC 0x6FC2 +0xBEFD 0x6FB1 +0xBEFE 0x6FA1 +0xBF40 0x6FC3 +0xBF41 0x6FA4 +0xBF42 0x6FC1 +0xBF43 0x6FA7 +0xBF44 0x6FB3 +0xBF45 0x6FC0 +0xBF46 0x6FB9 +0xBF47 0x6FB6 +0xBF48 0x6FA6 +0xBF49 0x6FA0 +0xBF4A 0x6FB4 +0xBF4B 0x71BE +0xBF4C 0x71C9 +0xBF4D 0x71D0 +0xBF4E 0x71D2 +0xBF4F 0x71C8 +0xBF50 0x71D5 +0xBF51 0x71B9 +0xBF52 0x71CE +0xBF53 0x71D9 +0xBF54 0x71DC +0xBF55 0x71C3 +0xBF56 0x71C4 +0xBF57 0x7368 +0xBF58 0x749C +0xBF59 0x74A3 +0xBF5A 0x7498 +0xBF5B 0x749F +0xBF5C 0x749E +0xBF5D 0x74E2 +0xBF5E 0x750C +0xBF5F 0x750D +0xBF60 0x7634 +0xBF61 0x7638 +0xBF62 0x763A +0xBF63 0x76E7 +0xBF64 0x76E5 +0xBF65 0x77A0 +0xBF66 0x779E +0xBF67 0x779F +0xBF68 0x77A5 +0xBF69 0x78E8 +0xBF6A 0x78DA +0xBF6B 0x78EC +0xBF6C 0x78E7 +0xBF6D 0x79A6 +0xBF6E 0x7A4D +0xBF6F 0x7A4E +0xBF70 0x7A46 +0xBF71 0x7A4C +0xBF72 0x7A4B +0xBF73 0x7ABA +0xBF74 0x7BD9 +0xBF75 0x7C11 +0xBF76 0x7BC9 +0xBF77 0x7BE4 +0xBF78 0x7BDB +0xBF79 0x7BE1 +0xBF7A 0x7BE9 +0xBF7B 0x7BE6 +0xBF7C 0x7CD5 +0xBF7D 0x7CD6 +0xBF7E 0x7E0A +0xBFA1 0x7E11 +0xBFA2 0x7E08 +0xBFA3 0x7E1B +0xBFA4 0x7E23 +0xBFA5 0x7E1E +0xBFA6 0x7E1D +0xBFA7 0x7E09 +0xBFA8 0x7E10 +0xBFA9 0x7F79 +0xBFAA 0x7FB2 +0xBFAB 0x7FF0 +0xBFAC 0x7FF1 +0xBFAD 0x7FEE +0xBFAE 0x8028 +0xBFAF 0x81B3 +0xBFB0 0x81A9 +0xBFB1 0x81A8 +0xBFB2 0x81FB +0xBFB3 0x8208 +0xBFB4 0x8258 +0xBFB5 0x8259 +0xBFB6 0x854A +0xBFB7 0x8559 +0xBFB8 0x8548 +0xBFB9 0x8568 +0xBFBA 0x8569 +0xBFBB 0x8543 +0xBFBC 0x8549 +0xBFBD 0x856D +0xBFBE 0x856A +0xBFBF 0x855E +0xBFC0 0x8783 +0xBFC1 0x879F +0xBFC2 0x879E +0xBFC3 0x87A2 +0xBFC4 0x878D +0xBFC5 0x8861 +0xBFC6 0x892A +0xBFC7 0x8932 +0xBFC8 0x8925 +0xBFC9 0x892B +0xBFCA 0x8921 +0xBFCB 0x89AA +0xBFCC 0x89A6 +0xBFCD 0x8AE6 +0xBFCE 0x8AFA +0xBFCF 0x8AEB +0xBFD0 0x8AF1 +0xBFD1 0x8B00 +0xBFD2 0x8ADC +0xBFD3 0x8AE7 +0xBFD4 0x8AEE +0xBFD5 0x8AFE +0xBFD6 0x8B01 +0xBFD7 0x8B02 +0xBFD8 0x8AF7 +0xBFD9 0x8AED +0xBFDA 0x8AF3 +0xBFDB 0x8AF6 +0xBFDC 0x8AFC +0xBFDD 0x8C6B +0xBFDE 0x8C6D +0xBFDF 0x8C93 +0xBFE0 0x8CF4 +0xBFE1 0x8E44 +0xBFE2 0x8E31 +0xBFE3 0x8E34 +0xBFE4 0x8E42 +0xBFE5 0x8E39 +0xBFE6 0x8E35 +0xBFE7 0x8F3B +0xBFE8 0x8F2F +0xBFE9 0x8F38 +0xBFEA 0x8F33 +0xBFEB 0x8FA8 +0xBFEC 0x8FA6 +0xBFED 0x9075 +0xBFEE 0x9074 +0xBFEF 0x9078 +0xBFF0 0x9072 +0xBFF1 0x907C +0xBFF2 0x907A +0xBFF3 0x9134 +0xBFF4 0x9192 +0xBFF5 0x9320 +0xBFF6 0x9336 +0xBFF7 0x92F8 +0xBFF8 0x9333 +0xBFF9 0x932F +0xBFFA 0x9322 +0xBFFB 0x92FC +0xBFFC 0x932B +0xBFFD 0x9304 +0xBFFE 0x931A +0xC040 0x9310 +0xC041 0x9326 +0xC042 0x9321 +0xC043 0x9315 +0xC044 0x932E +0xC045 0x9319 +0xC046 0x95BB +0xC047 0x96A7 +0xC048 0x96A8 +0xC049 0x96AA +0xC04A 0x96D5 +0xC04B 0x970E +0xC04C 0x9711 +0xC04D 0x9716 +0xC04E 0x970D +0xC04F 0x9713 +0xC050 0x970F +0xC051 0x975B +0xC052 0x975C +0xC053 0x9766 +0xC054 0x9798 +0xC055 0x9830 +0xC056 0x9838 +0xC057 0x983B +0xC058 0x9837 +0xC059 0x982D +0xC05A 0x9839 +0xC05B 0x9824 +0xC05C 0x9910 +0xC05D 0x9928 +0xC05E 0x991E +0xC05F 0x991B +0xC060 0x9921 +0xC061 0x991A +0xC062 0x99ED +0xC063 0x99E2 +0xC064 0x99F1 +0xC065 0x9AB8 +0xC066 0x9ABC +0xC067 0x9AFB +0xC068 0x9AED +0xC069 0x9B28 +0xC06A 0x9B91 +0xC06B 0x9D15 +0xC06C 0x9D23 +0xC06D 0x9D26 +0xC06E 0x9D28 +0xC06F 0x9D12 +0xC070 0x9D1B +0xC071 0x9ED8 +0xC072 0x9ED4 +0xC073 0x9F8D +0xC074 0x9F9C +0xC075 0x512A +0xC076 0x511F +0xC077 0x5121 +0xC078 0x5132 +0xC079 0x52F5 +0xC07A 0x568E +0xC07B 0x5680 +0xC07C 0x5690 +0xC07D 0x5685 +0xC07E 0x5687 +0xC0A1 0x568F +0xC0A2 0x58D5 +0xC0A3 0x58D3 +0xC0A4 0x58D1 +0xC0A5 0x58CE +0xC0A6 0x5B30 +0xC0A7 0x5B2A +0xC0A8 0x5B24 +0xC0A9 0x5B7A +0xC0AA 0x5C37 +0xC0AB 0x5C68 +0xC0AC 0x5DBC +0xC0AD 0x5DBA +0xC0AE 0x5DBD +0xC0AF 0x5DB8 +0xC0B0 0x5E6B +0xC0B1 0x5F4C +0xC0B2 0x5FBD +0xC0B3 0x61C9 +0xC0B4 0x61C2 +0xC0B5 0x61C7 +0xC0B6 0x61E6 +0xC0B7 0x61CB +0xC0B8 0x6232 +0xC0B9 0x6234 +0xC0BA 0x64CE +0xC0BB 0x64CA +0xC0BC 0x64D8 +0xC0BD 0x64E0 +0xC0BE 0x64F0 +0xC0BF 0x64E6 +0xC0C0 0x64EC +0xC0C1 0x64F1 +0xC0C2 0x64E2 +0xC0C3 0x64ED +0xC0C4 0x6582 +0xC0C5 0x6583 +0xC0C6 0x66D9 +0xC0C7 0x66D6 +0xC0C8 0x6A80 +0xC0C9 0x6A94 +0xC0CA 0x6A84 +0xC0CB 0x6AA2 +0xC0CC 0x6A9C +0xC0CD 0x6ADB +0xC0CE 0x6AA3 +0xC0CF 0x6A7E +0xC0D0 0x6A97 +0xC0D1 0x6A90 +0xC0D2 0x6AA0 +0xC0D3 0x6B5C +0xC0D4 0x6BAE +0xC0D5 0x6BDA +0xC0D6 0x6C08 +0xC0D7 0x6FD8 +0xC0D8 0x6FF1 +0xC0D9 0x6FDF +0xC0DA 0x6FE0 +0xC0DB 0x6FDB +0xC0DC 0x6FE4 +0xC0DD 0x6FEB +0xC0DE 0x6FEF +0xC0DF 0x6F80 +0xC0E0 0x6FEC +0xC0E1 0x6FE1 +0xC0E2 0x6FE9 +0xC0E3 0x6FD5 +0xC0E4 0x6FEE +0xC0E5 0x6FF0 +0xC0E6 0x71E7 +0xC0E7 0x71DF +0xC0E8 0x71EE +0xC0E9 0x71E6 +0xC0EA 0x71E5 +0xC0EB 0x71ED +0xC0EC 0x71EC +0xC0ED 0x71F4 +0xC0EE 0x71E0 +0xC0EF 0x7235 +0xC0F0 0x7246 +0xC0F1 0x7370 +0xC0F2 0x7372 +0xC0F3 0x74A9 +0xC0F4 0x74B0 +0xC0F5 0x74A6 +0xC0F6 0x74A8 +0xC0F7 0x7646 +0xC0F8 0x7642 +0xC0F9 0x764C +0xC0FA 0x76EA +0xC0FB 0x77B3 +0xC0FC 0x77AA +0xC0FD 0x77B0 +0xC0FE 0x77AC +0xC140 0x77A7 +0xC141 0x77AD +0xC142 0x77EF +0xC143 0x78F7 +0xC144 0x78FA +0xC145 0x78F4 +0xC146 0x78EF +0xC147 0x7901 +0xC148 0x79A7 +0xC149 0x79AA +0xC14A 0x7A57 +0xC14B 0x7ABF +0xC14C 0x7C07 +0xC14D 0x7C0D +0xC14E 0x7BFE +0xC14F 0x7BF7 +0xC150 0x7C0C +0xC151 0x7BE0 +0xC152 0x7CE0 +0xC153 0x7CDC +0xC154 0x7CDE +0xC155 0x7CE2 +0xC156 0x7CDF +0xC157 0x7CD9 +0xC158 0x7CDD +0xC159 0x7E2E +0xC15A 0x7E3E +0xC15B 0x7E46 +0xC15C 0x7E37 +0xC15D 0x7E32 +0xC15E 0x7E43 +0xC15F 0x7E2B +0xC160 0x7E3D +0xC161 0x7E31 +0xC162 0x7E45 +0xC163 0x7E41 +0xC164 0x7E34 +0xC165 0x7E39 +0xC166 0x7E48 +0xC167 0x7E35 +0xC168 0x7E3F +0xC169 0x7E2F +0xC16A 0x7F44 +0xC16B 0x7FF3 +0xC16C 0x7FFC +0xC16D 0x8071 +0xC16E 0x8072 +0xC16F 0x8070 +0xC170 0x806F +0xC171 0x8073 +0xC172 0x81C6 +0xC173 0x81C3 +0xC174 0x81BA +0xC175 0x81C2 +0xC176 0x81C0 +0xC177 0x81BF +0xC178 0x81BD +0xC179 0x81C9 +0xC17A 0x81BE +0xC17B 0x81E8 +0xC17C 0x8209 +0xC17D 0x8271 +0xC17E 0x85AA +0xC1A1 0x8584 +0xC1A2 0x857E +0xC1A3 0x859C +0xC1A4 0x8591 +0xC1A5 0x8594 +0xC1A6 0x85AF +0xC1A7 0x859B +0xC1A8 0x8587 +0xC1A9 0x85A8 +0xC1AA 0x858A +0xC1AB 0x8667 +0xC1AC 0x87C0 +0xC1AD 0x87D1 +0xC1AE 0x87B3 +0xC1AF 0x87D2 +0xC1B0 0x87C6 +0xC1B1 0x87AB +0xC1B2 0x87BB +0xC1B3 0x87BA +0xC1B4 0x87C8 +0xC1B5 0x87CB +0xC1B6 0x893B +0xC1B7 0x8936 +0xC1B8 0x8944 +0xC1B9 0x8938 +0xC1BA 0x893D +0xC1BB 0x89AC +0xC1BC 0x8B0E +0xC1BD 0x8B17 +0xC1BE 0x8B19 +0xC1BF 0x8B1B +0xC1C0 0x8B0A +0xC1C1 0x8B20 +0xC1C2 0x8B1D +0xC1C3 0x8B04 +0xC1C4 0x8B10 +0xC1C5 0x8C41 +0xC1C6 0x8C3F +0xC1C7 0x8C73 +0xC1C8 0x8CFA +0xC1C9 0x8CFD +0xC1CA 0x8CFC +0xC1CB 0x8CF8 +0xC1CC 0x8CFB +0xC1CD 0x8DA8 +0xC1CE 0x8E49 +0xC1CF 0x8E4B +0xC1D0 0x8E48 +0xC1D1 0x8E4A +0xC1D2 0x8F44 +0xC1D3 0x8F3E +0xC1D4 0x8F42 +0xC1D5 0x8F45 +0xC1D6 0x8F3F +0xC1D7 0x907F +0xC1D8 0x907D +0xC1D9 0x9084 +0xC1DA 0x9081 +0xC1DB 0x9082 +0xC1DC 0x9080 +0xC1DD 0x9139 +0xC1DE 0x91A3 +0xC1DF 0x919E +0xC1E0 0x919C +0xC1E1 0x934D +0xC1E2 0x9382 +0xC1E3 0x9328 +0xC1E4 0x9375 +0xC1E5 0x934A +0xC1E6 0x9365 +0xC1E7 0x934B +0xC1E8 0x9318 +0xC1E9 0x937E +0xC1EA 0x936C +0xC1EB 0x935B +0xC1EC 0x9370 +0xC1ED 0x935A +0xC1EE 0x9354 +0xC1EF 0x95CA +0xC1F0 0x95CB +0xC1F1 0x95CC +0xC1F2 0x95C8 +0xC1F3 0x95C6 +0xC1F4 0x96B1 +0xC1F5 0x96B8 +0xC1F6 0x96D6 +0xC1F7 0x971C +0xC1F8 0x971E +0xC1F9 0x97A0 +0xC1FA 0x97D3 +0xC1FB 0x9846 +0xC1FC 0x98B6 +0xC1FD 0x9935 +0xC1FE 0x9A01 +0xC240 0x99FF +0xC241 0x9BAE +0xC242 0x9BAB +0xC243 0x9BAA +0xC244 0x9BAD +0xC245 0x9D3B +0xC246 0x9D3F +0xC247 0x9E8B +0xC248 0x9ECF +0xC249 0x9EDE +0xC24A 0x9EDC +0xC24B 0x9EDD +0xC24C 0x9EDB +0xC24D 0x9F3E +0xC24E 0x9F4B +0xC24F 0x53E2 +0xC250 0x5695 +0xC251 0x56AE +0xC252 0x58D9 +0xC253 0x58D8 +0xC254 0x5B38 +0xC255 0x5F5D +0xC256 0x61E3 +0xC257 0x6233 +0xC258 0x64F4 +0xC259 0x64F2 +0xC25A 0x64FE +0xC25B 0x6506 +0xC25C 0x64FA +0xC25D 0x64FB +0xC25E 0x64F7 +0xC25F 0x65B7 +0xC260 0x66DC +0xC261 0x6726 +0xC262 0x6AB3 +0xC263 0x6AAC +0xC264 0x6AC3 +0xC265 0x6ABB +0xC266 0x6AB8 +0xC267 0x6AC2 +0xC268 0x6AAE +0xC269 0x6AAF +0xC26A 0x6B5F +0xC26B 0x6B78 +0xC26C 0x6BAF +0xC26D 0x7009 +0xC26E 0x700B +0xC26F 0x6FFE +0xC270 0x7006 +0xC271 0x6FFA +0xC272 0x7011 +0xC273 0x700F +0xC274 0x71FB +0xC275 0x71FC +0xC276 0x71FE +0xC277 0x71F8 +0xC278 0x7377 +0xC279 0x7375 +0xC27A 0x74A7 +0xC27B 0x74BF +0xC27C 0x7515 +0xC27D 0x7656 +0xC27E 0x7658 +0xC2A1 0x7652 +0xC2A2 0x77BD +0xC2A3 0x77BF +0xC2A4 0x77BB +0xC2A5 0x77BC +0xC2A6 0x790E +0xC2A7 0x79AE +0xC2A8 0x7A61 +0xC2A9 0x7A62 +0xC2AA 0x7A60 +0xC2AB 0x7AC4 +0xC2AC 0x7AC5 +0xC2AD 0x7C2B +0xC2AE 0x7C27 +0xC2AF 0x7C2A +0xC2B0 0x7C1E +0xC2B1 0x7C23 +0xC2B2 0x7C21 +0xC2B3 0x7CE7 +0xC2B4 0x7E54 +0xC2B5 0x7E55 +0xC2B6 0x7E5E +0xC2B7 0x7E5A +0xC2B8 0x7E61 +0xC2B9 0x7E52 +0xC2BA 0x7E59 +0xC2BB 0x7F48 +0xC2BC 0x7FF9 +0xC2BD 0x7FFB +0xC2BE 0x8077 +0xC2BF 0x8076 +0xC2C0 0x81CD +0xC2C1 0x81CF +0xC2C2 0x820A +0xC2C3 0x85CF +0xC2C4 0x85A9 +0xC2C5 0x85CD +0xC2C6 0x85D0 +0xC2C7 0x85C9 +0xC2C8 0x85B0 +0xC2C9 0x85BA +0xC2CA 0x85B9 +0xC2CB 0x85A6 +0xC2CC 0x87EF +0xC2CD 0x87EC +0xC2CE 0x87F2 +0xC2CF 0x87E0 +0xC2D0 0x8986 +0xC2D1 0x89B2 +0xC2D2 0x89F4 +0xC2D3 0x8B28 +0xC2D4 0x8B39 +0xC2D5 0x8B2C +0xC2D6 0x8B2B +0xC2D7 0x8C50 +0xC2D8 0x8D05 +0xC2D9 0x8E59 +0xC2DA 0x8E63 +0xC2DB 0x8E66 +0xC2DC 0x8E64 +0xC2DD 0x8E5F +0xC2DE 0x8E55 +0xC2DF 0x8EC0 +0xC2E0 0x8F49 +0xC2E1 0x8F4D +0xC2E2 0x9087 +0xC2E3 0x9083 +0xC2E4 0x9088 +0xC2E5 0x91AB +0xC2E6 0x91AC +0xC2E7 0x91D0 +0xC2E8 0x9394 +0xC2E9 0x938A +0xC2EA 0x9396 +0xC2EB 0x93A2 +0xC2EC 0x93B3 +0xC2ED 0x93AE +0xC2EE 0x93AC +0xC2EF 0x93B0 +0xC2F0 0x9398 +0xC2F1 0x939A +0xC2F2 0x9397 +0xC2F3 0x95D4 +0xC2F4 0x95D6 +0xC2F5 0x95D0 +0xC2F6 0x95D5 +0xC2F7 0x96E2 +0xC2F8 0x96DC +0xC2F9 0x96D9 +0xC2FA 0x96DB +0xC2FB 0x96DE +0xC2FC 0x9724 +0xC2FD 0x97A3 +0xC2FE 0x97A6 +0xC340 0x97AD +0xC341 0x97F9 +0xC342 0x984D +0xC343 0x984F +0xC344 0x984C +0xC345 0x984E +0xC346 0x9853 +0xC347 0x98BA +0xC348 0x993E +0xC349 0x993F +0xC34A 0x993D +0xC34B 0x992E +0xC34C 0x99A5 +0xC34D 0x9A0E +0xC34E 0x9AC1 +0xC34F 0x9B03 +0xC350 0x9B06 +0xC351 0x9B4F +0xC352 0x9B4E +0xC353 0x9B4D +0xC354 0x9BCA +0xC355 0x9BC9 +0xC356 0x9BFD +0xC357 0x9BC8 +0xC358 0x9BC0 +0xC359 0x9D51 +0xC35A 0x9D5D +0xC35B 0x9D60 +0xC35C 0x9EE0 +0xC35D 0x9F15 +0xC35E 0x9F2C +0xC35F 0x5133 +0xC360 0x56A5 +0xC361 0x58DE +0xC362 0x58DF +0xC363 0x58E2 +0xC364 0x5BF5 +0xC365 0x9F90 +0xC366 0x5EEC +0xC367 0x61F2 +0xC368 0x61F7 +0xC369 0x61F6 +0xC36A 0x61F5 +0xC36B 0x6500 +0xC36C 0x650F +0xC36D 0x66E0 +0xC36E 0x66DD +0xC36F 0x6AE5 +0xC370 0x6ADD +0xC371 0x6ADA +0xC372 0x6AD3 +0xC373 0x701B +0xC374 0x701F +0xC375 0x7028 +0xC376 0x701A +0xC377 0x701D +0xC378 0x7015 +0xC379 0x7018 +0xC37A 0x7206 +0xC37B 0x720D +0xC37C 0x7258 +0xC37D 0x72A2 +0xC37E 0x7378 +0xC3A1 0x737A +0xC3A2 0x74BD +0xC3A3 0x74CA +0xC3A4 0x74E3 +0xC3A5 0x7587 +0xC3A6 0x7586 +0xC3A7 0x765F +0xC3A8 0x7661 +0xC3A9 0x77C7 +0xC3AA 0x7919 +0xC3AB 0x79B1 +0xC3AC 0x7A6B +0xC3AD 0x7A69 +0xC3AE 0x7C3E +0xC3AF 0x7C3F +0xC3B0 0x7C38 +0xC3B1 0x7C3D +0xC3B2 0x7C37 +0xC3B3 0x7C40 +0xC3B4 0x7E6B +0xC3B5 0x7E6D +0xC3B6 0x7E79 +0xC3B7 0x7E69 +0xC3B8 0x7E6A +0xC3B9 0x7F85 +0xC3BA 0x7E73 +0xC3BB 0x7FB6 +0xC3BC 0x7FB9 +0xC3BD 0x7FB8 +0xC3BE 0x81D8 +0xC3BF 0x85E9 +0xC3C0 0x85DD +0xC3C1 0x85EA +0xC3C2 0x85D5 +0xC3C3 0x85E4 +0xC3C4 0x85E5 +0xC3C5 0x85F7 +0xC3C6 0x87FB +0xC3C7 0x8805 +0xC3C8 0x880D +0xC3C9 0x87F9 +0xC3CA 0x87FE +0xC3CB 0x8960 +0xC3CC 0x895F +0xC3CD 0x8956 +0xC3CE 0x895E +0xC3CF 0x8B41 +0xC3D0 0x8B5C +0xC3D1 0x8B58 +0xC3D2 0x8B49 +0xC3D3 0x8B5A +0xC3D4 0x8B4E +0xC3D5 0x8B4F +0xC3D6 0x8B46 +0xC3D7 0x8B59 +0xC3D8 0x8D08 +0xC3D9 0x8D0A +0xC3DA 0x8E7C +0xC3DB 0x8E72 +0xC3DC 0x8E87 +0xC3DD 0x8E76 +0xC3DE 0x8E6C +0xC3DF 0x8E7A +0xC3E0 0x8E74 +0xC3E1 0x8F54 +0xC3E2 0x8F4E +0xC3E3 0x8FAD +0xC3E4 0x908A +0xC3E5 0x908B +0xC3E6 0x91B1 +0xC3E7 0x91AE +0xC3E8 0x93E1 +0xC3E9 0x93D1 +0xC3EA 0x93DF +0xC3EB 0x93C3 +0xC3EC 0x93C8 +0xC3ED 0x93DC +0xC3EE 0x93DD +0xC3EF 0x93D6 +0xC3F0 0x93E2 +0xC3F1 0x93CD +0xC3F2 0x93D8 +0xC3F3 0x93E4 +0xC3F4 0x93D7 +0xC3F5 0x93E8 +0xC3F6 0x95DC +0xC3F7 0x96B4 +0xC3F8 0x96E3 +0xC3F9 0x972A +0xC3FA 0x9727 +0xC3FB 0x9761 +0xC3FC 0x97DC +0xC3FD 0x97FB +0xC3FE 0x985E +0xC440 0x9858 +0xC441 0x985B +0xC442 0x98BC +0xC443 0x9945 +0xC444 0x9949 +0xC445 0x9A16 +0xC446 0x9A19 +0xC447 0x9B0D +0xC448 0x9BE8 +0xC449 0x9BE7 +0xC44A 0x9BD6 +0xC44B 0x9BDB +0xC44C 0x9D89 +0xC44D 0x9D61 +0xC44E 0x9D72 +0xC44F 0x9D6A +0xC450 0x9D6C +0xC451 0x9E92 +0xC452 0x9E97 +0xC453 0x9E93 +0xC454 0x9EB4 +0xC455 0x52F8 +0xC456 0x56A8 +0xC457 0x56B7 +0xC458 0x56B6 +0xC459 0x56B4 +0xC45A 0x56BC +0xC45B 0x58E4 +0xC45C 0x5B40 +0xC45D 0x5B43 +0xC45E 0x5B7D +0xC45F 0x5BF6 +0xC460 0x5DC9 +0xC461 0x61F8 +0xC462 0x61FA +0xC463 0x6518 +0xC464 0x6514 +0xC465 0x6519 +0xC466 0x66E6 +0xC467 0x6727 +0xC468 0x6AEC +0xC469 0x703E +0xC46A 0x7030 +0xC46B 0x7032 +0xC46C 0x7210 +0xC46D 0x737B +0xC46E 0x74CF +0xC46F 0x7662 +0xC470 0x7665 +0xC471 0x7926 +0xC472 0x792A +0xC473 0x792C +0xC474 0x792B +0xC475 0x7AC7 +0xC476 0x7AF6 +0xC477 0x7C4C +0xC478 0x7C43 +0xC479 0x7C4D +0xC47A 0x7CEF +0xC47B 0x7CF0 +0xC47C 0x8FAE +0xC47D 0x7E7D +0xC47E 0x7E7C +0xC4A1 0x7E82 +0xC4A2 0x7F4C +0xC4A3 0x8000 +0xC4A4 0x81DA +0xC4A5 0x8266 +0xC4A6 0x85FB +0xC4A7 0x85F9 +0xC4A8 0x8611 +0xC4A9 0x85FA +0xC4AA 0x8606 +0xC4AB 0x860B +0xC4AC 0x8607 +0xC4AD 0x860A +0xC4AE 0x8814 +0xC4AF 0x8815 +0xC4B0 0x8964 +0xC4B1 0x89BA +0xC4B2 0x89F8 +0xC4B3 0x8B70 +0xC4B4 0x8B6C +0xC4B5 0x8B66 +0xC4B6 0x8B6F +0xC4B7 0x8B5F +0xC4B8 0x8B6B +0xC4B9 0x8D0F +0xC4BA 0x8D0D +0xC4BB 0x8E89 +0xC4BC 0x8E81 +0xC4BD 0x8E85 +0xC4BE 0x8E82 +0xC4BF 0x91B4 +0xC4C0 0x91CB +0xC4C1 0x9418 +0xC4C2 0x9403 +0xC4C3 0x93FD +0xC4C4 0x95E1 +0xC4C5 0x9730 +0xC4C6 0x98C4 +0xC4C7 0x9952 +0xC4C8 0x9951 +0xC4C9 0x99A8 +0xC4CA 0x9A2B +0xC4CB 0x9A30 +0xC4CC 0x9A37 +0xC4CD 0x9A35 +0xC4CE 0x9C13 +0xC4CF 0x9C0D +0xC4D0 0x9E79 +0xC4D1 0x9EB5 +0xC4D2 0x9EE8 +0xC4D3 0x9F2F +0xC4D4 0x9F5F +0xC4D5 0x9F63 +0xC4D6 0x9F61 +0xC4D7 0x5137 +0xC4D8 0x5138 +0xC4D9 0x56C1 +0xC4DA 0x56C0 +0xC4DB 0x56C2 +0xC4DC 0x5914 +0xC4DD 0x5C6C +0xC4DE 0x5DCD +0xC4DF 0x61FC +0xC4E0 0x61FE +0xC4E1 0x651D +0xC4E2 0x651C +0xC4E3 0x6595 +0xC4E4 0x66E9 +0xC4E5 0x6AFB +0xC4E6 0x6B04 +0xC4E7 0x6AFA +0xC4E8 0x6BB2 +0xC4E9 0x704C +0xC4EA 0x721B +0xC4EB 0x72A7 +0xC4EC 0x74D6 +0xC4ED 0x74D4 +0xC4EE 0x7669 +0xC4EF 0x77D3 +0xC4F0 0x7C50 +0xC4F1 0x7E8F +0xC4F2 0x7E8C +0xC4F3 0x7FBC +0xC4F4 0x8617 +0xC4F5 0x862D +0xC4F6 0x861A +0xC4F7 0x8823 +0xC4F8 0x8822 +0xC4F9 0x8821 +0xC4FA 0x881F +0xC4FB 0x896A +0xC4FC 0x896C +0xC4FD 0x89BD +0xC4FE 0x8B74 +0xC540 0x8B77 +0xC541 0x8B7D +0xC542 0x8D13 +0xC543 0x8E8A +0xC544 0x8E8D +0xC545 0x8E8B +0xC546 0x8F5F +0xC547 0x8FAF +0xC548 0x91BA +0xC549 0x942E +0xC54A 0x9433 +0xC54B 0x9435 +0xC54C 0x943A +0xC54D 0x9438 +0xC54E 0x9432 +0xC54F 0x942B +0xC550 0x95E2 +0xC551 0x9738 +0xC552 0x9739 +0xC553 0x9732 +0xC554 0x97FF +0xC555 0x9867 +0xC556 0x9865 +0xC557 0x9957 +0xC558 0x9A45 +0xC559 0x9A43 +0xC55A 0x9A40 +0xC55B 0x9A3E +0xC55C 0x9ACF +0xC55D 0x9B54 +0xC55E 0x9B51 +0xC55F 0x9C2D +0xC560 0x9C25 +0xC561 0x9DAF +0xC562 0x9DB4 +0xC563 0x9DC2 +0xC564 0x9DB8 +0xC565 0x9E9D +0xC566 0x9EEF +0xC567 0x9F19 +0xC568 0x9F5C +0xC569 0x9F66 +0xC56A 0x9F67 +0xC56B 0x513C +0xC56C 0x513B +0xC56D 0x56C8 +0xC56E 0x56CA +0xC56F 0x56C9 +0xC570 0x5B7F +0xC571 0x5DD4 +0xC572 0x5DD2 +0xC573 0x5F4E +0xC574 0x61FF +0xC575 0x6524 +0xC576 0x6B0A +0xC577 0x6B61 +0xC578 0x7051 +0xC579 0x7058 +0xC57A 0x7380 +0xC57B 0x74E4 +0xC57C 0x758A +0xC57D 0x766E +0xC57E 0x766C +0xC5A1 0x79B3 +0xC5A2 0x7C60 +0xC5A3 0x7C5F +0xC5A4 0x807E +0xC5A5 0x807D +0xC5A6 0x81DF +0xC5A7 0x8972 +0xC5A8 0x896F +0xC5A9 0x89FC +0xC5AA 0x8B80 +0xC5AB 0x8D16 +0xC5AC 0x8D17 +0xC5AD 0x8E91 +0xC5AE 0x8E93 +0xC5AF 0x8F61 +0xC5B0 0x9148 +0xC5B1 0x9444 +0xC5B2 0x9451 +0xC5B3 0x9452 +0xC5B4 0x973D +0xC5B5 0x973E +0xC5B6 0x97C3 +0xC5B7 0x97C1 +0xC5B8 0x986B +0xC5B9 0x9955 +0xC5BA 0x9A55 +0xC5BB 0x9A4D +0xC5BC 0x9AD2 +0xC5BD 0x9B1A +0xC5BE 0x9C49 +0xC5BF 0x9C31 +0xC5C0 0x9C3E +0xC5C1 0x9C3B +0xC5C2 0x9DD3 +0xC5C3 0x9DD7 +0xC5C4 0x9F34 +0xC5C5 0x9F6C +0xC5C6 0x9F6A +0xC5C7 0x9F94 +0xC5C8 0x56CC +0xC5C9 0x5DD6 +0xC5CA 0x6200 +0xC5CB 0x6523 +0xC5CC 0x652B +0xC5CD 0x652A +0xC5CE 0x66EC +0xC5CF 0x6B10 +0xC5D0 0x74DA +0xC5D1 0x7ACA +0xC5D2 0x7C64 +0xC5D3 0x7C63 +0xC5D4 0x7C65 +0xC5D5 0x7E93 +0xC5D6 0x7E96 +0xC5D7 0x7E94 +0xC5D8 0x81E2 +0xC5D9 0x8638 +0xC5DA 0x863F +0xC5DB 0x8831 +0xC5DC 0x8B8A +0xC5DD 0x9090 +0xC5DE 0x908F +0xC5DF 0x9463 +0xC5E0 0x9460 +0xC5E1 0x9464 +0xC5E2 0x9768 +0xC5E3 0x986F +0xC5E4 0x995C +0xC5E5 0x9A5A +0xC5E6 0x9A5B +0xC5E7 0x9A57 +0xC5E8 0x9AD3 +0xC5E9 0x9AD4 +0xC5EA 0x9AD1 +0xC5EB 0x9C54 +0xC5EC 0x9C57 +0xC5ED 0x9C56 +0xC5EE 0x9DE5 +0xC5EF 0x9E9F +0xC5F0 0x9EF4 +0xC5F1 0x56D1 +0xC5F2 0x58E9 +0xC5F3 0x652C +0xC5F4 0x705E +0xC5F5 0x7671 +0xC5F6 0x7672 +0xC5F7 0x77D7 +0xC5F8 0x7F50 +0xC5F9 0x7F88 +0xC5FA 0x8836 +0xC5FB 0x8839 +0xC5FC 0x8862 +0xC5FD 0x8B93 +0xC5FE 0x8B92 +0xC640 0x8B96 +0xC641 0x8277 +0xC642 0x8D1B +0xC643 0x91C0 +0xC644 0x946A +0xC645 0x9742 +0xC646 0x9748 +0xC647 0x9744 +0xC648 0x97C6 +0xC649 0x9870 +0xC64A 0x9A5F +0xC64B 0x9B22 +0xC64C 0x9B58 +0xC64D 0x9C5F +0xC64E 0x9DF9 +0xC64F 0x9DFA +0xC650 0x9E7C +0xC651 0x9E7D +0xC652 0x9F07 +0xC653 0x9F77 +0xC654 0x9F72 +0xC655 0x5EF3 +0xC656 0x6B16 +0xC657 0x7063 +0xC658 0x7C6C +0xC659 0x7C6E +0xC65A 0x883B +0xC65B 0x89C0 +0xC65C 0x8EA1 +0xC65D 0x91C1 +0xC65E 0x9472 +0xC65F 0x9470 +0xC660 0x9871 +0xC661 0x995E +0xC662 0x9AD6 +0xC663 0x9B23 +0xC664 0x9ECC +0xC665 0x7064 +0xC666 0x77DA +0xC667 0x8B9A +0xC668 0x9477 +0xC669 0x97C9 +0xC66A 0x9A62 +0xC66B 0x9A65 +0xC66C 0x7E9C +0xC66D 0x8B9C +0xC66E 0x8EAA +0xC66F 0x91C5 +0xC670 0x947D +0xC671 0x947E +0xC672 0x947C +0xC673 0x9C77 +0xC674 0x9C78 +0xC675 0x9EF7 +0xC676 0x8C54 +0xC677 0x947F +0xC678 0x9E1A +0xC679 0x7228 +0xC67A 0x9A6A +0xC67B 0x9B31 +0xC67C 0x9E1B +0xC67D 0x9E1E +0xC67E 0x7C72 +0xC940 0x4E42 +0xC941 0x4E5C +0xC942 0x51F5 +0xC943 0x531A +0xC944 0x5382 +0xC945 0x4E07 +0xC946 0x4E0C +0xC947 0x4E47 +0xC948 0x4E8D +0xC949 0x56D7 +0xC94A 0xFA0C +0xC94B 0x5C6E +0xC94C 0x5F73 +0xC94D 0x4E0F +0xC94E 0x5187 +0xC94F 0x4E0E +0xC950 0x4E2E +0xC951 0x4E93 +0xC952 0x4EC2 +0xC953 0x4EC9 +0xC954 0x4EC8 +0xC955 0x5198 +0xC956 0x52FC +0xC957 0x536C +0xC958 0x53B9 +0xC959 0x5720 +0xC95A 0x5903 +0xC95B 0x592C +0xC95C 0x5C10 +0xC95D 0x5DFF +0xC95E 0x65E1 +0xC95F 0x6BB3 +0xC960 0x6BCC +0xC961 0x6C14 +0xC962 0x723F +0xC963 0x4E31 +0xC964 0x4E3C +0xC965 0x4EE8 +0xC966 0x4EDC +0xC967 0x4EE9 +0xC968 0x4EE1 +0xC969 0x4EDD +0xC96A 0x4EDA +0xC96B 0x520C +0xC96C 0x531C +0xC96D 0x534C +0xC96E 0x5722 +0xC96F 0x5723 +0xC970 0x5917 +0xC971 0x592F +0xC972 0x5B81 +0xC973 0x5B84 +0xC974 0x5C12 +0xC975 0x5C3B +0xC976 0x5C74 +0xC977 0x5C73 +0xC978 0x5E04 +0xC979 0x5E80 +0xC97A 0x5E82 +0xC97B 0x5FC9 +0xC97C 0x6209 +0xC97D 0x6250 +0xC97E 0x6C15 +0xC9A1 0x6C36 +0xC9A2 0x6C43 +0xC9A3 0x6C3F +0xC9A4 0x6C3B +0xC9A5 0x72AE +0xC9A6 0x72B0 +0xC9A7 0x738A +0xC9A8 0x79B8 +0xC9A9 0x808A +0xC9AA 0x961E +0xC9AB 0x4F0E +0xC9AC 0x4F18 +0xC9AD 0x4F2C +0xC9AE 0x4EF5 +0xC9AF 0x4F14 +0xC9B0 0x4EF1 +0xC9B1 0x4F00 +0xC9B2 0x4EF7 +0xC9B3 0x4F08 +0xC9B4 0x4F1D +0xC9B5 0x4F02 +0xC9B6 0x4F05 +0xC9B7 0x4F22 +0xC9B8 0x4F13 +0xC9B9 0x4F04 +0xC9BA 0x4EF4 +0xC9BB 0x4F12 +0xC9BC 0x51B1 +0xC9BD 0x5213 +0xC9BE 0x5209 +0xC9BF 0x5210 +0xC9C0 0x52A6 +0xC9C1 0x5322 +0xC9C2 0x531F +0xC9C3 0x534D +0xC9C4 0x538A +0xC9C5 0x5407 +0xC9C6 0x56E1 +0xC9C7 0x56DF +0xC9C8 0x572E +0xC9C9 0x572A +0xC9CA 0x5734 +0xC9CB 0x593C +0xC9CC 0x5980 +0xC9CD 0x597C +0xC9CE 0x5985 +0xC9CF 0x597B +0xC9D0 0x597E +0xC9D1 0x5977 +0xC9D2 0x597F +0xC9D3 0x5B56 +0xC9D4 0x5C15 +0xC9D5 0x5C25 +0xC9D6 0x5C7C +0xC9D7 0x5C7A +0xC9D8 0x5C7B +0xC9D9 0x5C7E +0xC9DA 0x5DDF +0xC9DB 0x5E75 +0xC9DC 0x5E84 +0xC9DD 0x5F02 +0xC9DE 0x5F1A +0xC9DF 0x5F74 +0xC9E0 0x5FD5 +0xC9E1 0x5FD4 +0xC9E2 0x5FCF +0xC9E3 0x625C +0xC9E4 0x625E +0xC9E5 0x6264 +0xC9E6 0x6261 +0xC9E7 0x6266 +0xC9E8 0x6262 +0xC9E9 0x6259 +0xC9EA 0x6260 +0xC9EB 0x625A +0xC9EC 0x6265 +0xC9ED 0x65EF +0xC9EE 0x65EE +0xC9EF 0x673E +0xC9F0 0x6739 +0xC9F1 0x6738 +0xC9F2 0x673B +0xC9F3 0x673A +0xC9F4 0x673F +0xC9F5 0x673C +0xC9F6 0x6733 +0xC9F7 0x6C18 +0xC9F8 0x6C46 +0xC9F9 0x6C52 +0xC9FA 0x6C5C +0xC9FB 0x6C4F +0xC9FC 0x6C4A +0xC9FD 0x6C54 +0xC9FE 0x6C4B +0xCA40 0x6C4C +0xCA41 0x7071 +0xCA42 0x725E +0xCA43 0x72B4 +0xCA44 0x72B5 +0xCA45 0x738E +0xCA46 0x752A +0xCA47 0x767F +0xCA48 0x7A75 +0xCA49 0x7F51 +0xCA4A 0x8278 +0xCA4B 0x827C +0xCA4C 0x8280 +0xCA4D 0x827D +0xCA4E 0x827F +0xCA4F 0x864D +0xCA50 0x897E +0xCA51 0x9099 +0xCA52 0x9097 +0xCA53 0x9098 +0xCA54 0x909B +0xCA55 0x9094 +0xCA56 0x9622 +0xCA57 0x9624 +0xCA58 0x9620 +0xCA59 0x9623 +0xCA5A 0x4F56 +0xCA5B 0x4F3B +0xCA5C 0x4F62 +0xCA5D 0x4F49 +0xCA5E 0x4F53 +0xCA5F 0x4F64 +0xCA60 0x4F3E +0xCA61 0x4F67 +0xCA62 0x4F52 +0xCA63 0x4F5F +0xCA64 0x4F41 +0xCA65 0x4F58 +0xCA66 0x4F2D +0xCA67 0x4F33 +0xCA68 0x4F3F +0xCA69 0x4F61 +0xCA6A 0x518F +0xCA6B 0x51B9 +0xCA6C 0x521C +0xCA6D 0x521E +0xCA6E 0x5221 +0xCA6F 0x52AD +0xCA70 0x52AE +0xCA71 0x5309 +0xCA72 0x5363 +0xCA73 0x5372 +0xCA74 0x538E +0xCA75 0x538F +0xCA76 0x5430 +0xCA77 0x5437 +0xCA78 0x542A +0xCA79 0x5454 +0xCA7A 0x5445 +0xCA7B 0x5419 +0xCA7C 0x541C +0xCA7D 0x5425 +0xCA7E 0x5418 +0xCAA1 0x543D +0xCAA2 0x544F +0xCAA3 0x5441 +0xCAA4 0x5428 +0xCAA5 0x5424 +0xCAA6 0x5447 +0xCAA7 0x56EE +0xCAA8 0x56E7 +0xCAA9 0x56E5 +0xCAAA 0x5741 +0xCAAB 0x5745 +0xCAAC 0x574C +0xCAAD 0x5749 +0xCAAE 0x574B +0xCAAF 0x5752 +0xCAB0 0x5906 +0xCAB1 0x5940 +0xCAB2 0x59A6 +0xCAB3 0x5998 +0xCAB4 0x59A0 +0xCAB5 0x5997 +0xCAB6 0x598E +0xCAB7 0x59A2 +0xCAB8 0x5990 +0xCAB9 0x598F +0xCABA 0x59A7 +0xCABB 0x59A1 +0xCABC 0x5B8E +0xCABD 0x5B92 +0xCABE 0x5C28 +0xCABF 0x5C2A +0xCAC0 0x5C8D +0xCAC1 0x5C8F +0xCAC2 0x5C88 +0xCAC3 0x5C8B +0xCAC4 0x5C89 +0xCAC5 0x5C92 +0xCAC6 0x5C8A +0xCAC7 0x5C86 +0xCAC8 0x5C93 +0xCAC9 0x5C95 +0xCACA 0x5DE0 +0xCACB 0x5E0A +0xCACC 0x5E0E +0xCACD 0x5E8B +0xCACE 0x5E89 +0xCACF 0x5E8C +0xCAD0 0x5E88 +0xCAD1 0x5E8D +0xCAD2 0x5F05 +0xCAD3 0x5F1D +0xCAD4 0x5F78 +0xCAD5 0x5F76 +0xCAD6 0x5FD2 +0xCAD7 0x5FD1 +0xCAD8 0x5FD0 +0xCAD9 0x5FED +0xCADA 0x5FE8 +0xCADB 0x5FEE +0xCADC 0x5FF3 +0xCADD 0x5FE1 +0xCADE 0x5FE4 +0xCADF 0x5FE3 +0xCAE0 0x5FFA +0xCAE1 0x5FEF +0xCAE2 0x5FF7 +0xCAE3 0x5FFB +0xCAE4 0x6000 +0xCAE5 0x5FF4 +0xCAE6 0x623A +0xCAE7 0x6283 +0xCAE8 0x628C +0xCAE9 0x628E +0xCAEA 0x628F +0xCAEB 0x6294 +0xCAEC 0x6287 +0xCAED 0x6271 +0xCAEE 0x627B +0xCAEF 0x627A +0xCAF0 0x6270 +0xCAF1 0x6281 +0xCAF2 0x6288 +0xCAF3 0x6277 +0xCAF4 0x627D +0xCAF5 0x6272 +0xCAF6 0x6274 +0xCAF7 0x6537 +0xCAF8 0x65F0 +0xCAF9 0x65F4 +0xCAFA 0x65F3 +0xCAFB 0x65F2 +0xCAFC 0x65F5 +0xCAFD 0x6745 +0xCAFE 0x6747 +0xCB40 0x6759 +0xCB41 0x6755 +0xCB42 0x674C +0xCB43 0x6748 +0xCB44 0x675D +0xCB45 0x674D +0xCB46 0x675A +0xCB47 0x674B +0xCB48 0x6BD0 +0xCB49 0x6C19 +0xCB4A 0x6C1A +0xCB4B 0x6C78 +0xCB4C 0x6C67 +0xCB4D 0x6C6B +0xCB4E 0x6C84 +0xCB4F 0x6C8B +0xCB50 0x6C8F +0xCB51 0x6C71 +0xCB52 0x6C6F +0xCB53 0x6C69 +0xCB54 0x6C9A +0xCB55 0x6C6D +0xCB56 0x6C87 +0xCB57 0x6C95 +0xCB58 0x6C9C +0xCB59 0x6C66 +0xCB5A 0x6C73 +0xCB5B 0x6C65 +0xCB5C 0x6C7B +0xCB5D 0x6C8E +0xCB5E 0x7074 +0xCB5F 0x707A +0xCB60 0x7263 +0xCB61 0x72BF +0xCB62 0x72BD +0xCB63 0x72C3 +0xCB64 0x72C6 +0xCB65 0x72C1 +0xCB66 0x72BA +0xCB67 0x72C5 +0xCB68 0x7395 +0xCB69 0x7397 +0xCB6A 0x7393 +0xCB6B 0x7394 +0xCB6C 0x7392 +0xCB6D 0x753A +0xCB6E 0x7539 +0xCB6F 0x7594 +0xCB70 0x7595 +0xCB71 0x7681 +0xCB72 0x793D +0xCB73 0x8034 +0xCB74 0x8095 +0xCB75 0x8099 +0xCB76 0x8090 +0xCB77 0x8092 +0xCB78 0x809C +0xCB79 0x8290 +0xCB7A 0x828F +0xCB7B 0x8285 +0xCB7C 0x828E +0xCB7D 0x8291 +0xCB7E 0x8293 +0xCBA1 0x828A +0xCBA2 0x8283 +0xCBA3 0x8284 +0xCBA4 0x8C78 +0xCBA5 0x8FC9 +0xCBA6 0x8FBF +0xCBA7 0x909F +0xCBA8 0x90A1 +0xCBA9 0x90A5 +0xCBAA 0x909E +0xCBAB 0x90A7 +0xCBAC 0x90A0 +0xCBAD 0x9630 +0xCBAE 0x9628 +0xCBAF 0x962F +0xCBB0 0x962D +0xCBB1 0x4E33 +0xCBB2 0x4F98 +0xCBB3 0x4F7C +0xCBB4 0x4F85 +0xCBB5 0x4F7D +0xCBB6 0x4F80 +0xCBB7 0x4F87 +0xCBB8 0x4F76 +0xCBB9 0x4F74 +0xCBBA 0x4F89 +0xCBBB 0x4F84 +0xCBBC 0x4F77 +0xCBBD 0x4F4C +0xCBBE 0x4F97 +0xCBBF 0x4F6A +0xCBC0 0x4F9A +0xCBC1 0x4F79 +0xCBC2 0x4F81 +0xCBC3 0x4F78 +0xCBC4 0x4F90 +0xCBC5 0x4F9C +0xCBC6 0x4F94 +0xCBC7 0x4F9E +0xCBC8 0x4F92 +0xCBC9 0x4F82 +0xCBCA 0x4F95 +0xCBCB 0x4F6B +0xCBCC 0x4F6E +0xCBCD 0x519E +0xCBCE 0x51BC +0xCBCF 0x51BE +0xCBD0 0x5235 +0xCBD1 0x5232 +0xCBD2 0x5233 +0xCBD3 0x5246 +0xCBD4 0x5231 +0xCBD5 0x52BC +0xCBD6 0x530A +0xCBD7 0x530B +0xCBD8 0x533C +0xCBD9 0x5392 +0xCBDA 0x5394 +0xCBDB 0x5487 +0xCBDC 0x547F +0xCBDD 0x5481 +0xCBDE 0x5491 +0xCBDF 0x5482 +0xCBE0 0x5488 +0xCBE1 0x546B +0xCBE2 0x547A +0xCBE3 0x547E +0xCBE4 0x5465 +0xCBE5 0x546C +0xCBE6 0x5474 +0xCBE7 0x5466 +0xCBE8 0x548D +0xCBE9 0x546F +0xCBEA 0x5461 +0xCBEB 0x5460 +0xCBEC 0x5498 +0xCBED 0x5463 +0xCBEE 0x5467 +0xCBEF 0x5464 +0xCBF0 0x56F7 +0xCBF1 0x56F9 +0xCBF2 0x576F +0xCBF3 0x5772 +0xCBF4 0x576D +0xCBF5 0x576B +0xCBF6 0x5771 +0xCBF7 0x5770 +0xCBF8 0x5776 +0xCBF9 0x5780 +0xCBFA 0x5775 +0xCBFB 0x577B +0xCBFC 0x5773 +0xCBFD 0x5774 +0xCBFE 0x5762 +0xCC40 0x5768 +0xCC41 0x577D +0xCC42 0x590C +0xCC43 0x5945 +0xCC44 0x59B5 +0xCC45 0x59BA +0xCC46 0x59CF +0xCC47 0x59CE +0xCC48 0x59B2 +0xCC49 0x59CC +0xCC4A 0x59C1 +0xCC4B 0x59B6 +0xCC4C 0x59BC +0xCC4D 0x59C3 +0xCC4E 0x59D6 +0xCC4F 0x59B1 +0xCC50 0x59BD +0xCC51 0x59C0 +0xCC52 0x59C8 +0xCC53 0x59B4 +0xCC54 0x59C7 +0xCC55 0x5B62 +0xCC56 0x5B65 +0xCC57 0x5B93 +0xCC58 0x5B95 +0xCC59 0x5C44 +0xCC5A 0x5C47 +0xCC5B 0x5CAE +0xCC5C 0x5CA4 +0xCC5D 0x5CA0 +0xCC5E 0x5CB5 +0xCC5F 0x5CAF +0xCC60 0x5CA8 +0xCC61 0x5CAC +0xCC62 0x5C9F +0xCC63 0x5CA3 +0xCC64 0x5CAD +0xCC65 0x5CA2 +0xCC66 0x5CAA +0xCC67 0x5CA7 +0xCC68 0x5C9D +0xCC69 0x5CA5 +0xCC6A 0x5CB6 +0xCC6B 0x5CB0 +0xCC6C 0x5CA6 +0xCC6D 0x5E17 +0xCC6E 0x5E14 +0xCC6F 0x5E19 +0xCC70 0x5F28 +0xCC71 0x5F22 +0xCC72 0x5F23 +0xCC73 0x5F24 +0xCC74 0x5F54 +0xCC75 0x5F82 +0xCC76 0x5F7E +0xCC77 0x5F7D +0xCC78 0x5FDE +0xCC79 0x5FE5 +0xCC7A 0x602D +0xCC7B 0x6026 +0xCC7C 0x6019 +0xCC7D 0x6032 +0xCC7E 0x600B +0xCCA1 0x6034 +0xCCA2 0x600A +0xCCA3 0x6017 +0xCCA4 0x6033 +0xCCA5 0x601A +0xCCA6 0x601E +0xCCA7 0x602C +0xCCA8 0x6022 +0xCCA9 0x600D +0xCCAA 0x6010 +0xCCAB 0x602E +0xCCAC 0x6013 +0xCCAD 0x6011 +0xCCAE 0x600C +0xCCAF 0x6009 +0xCCB0 0x601C +0xCCB1 0x6214 +0xCCB2 0x623D +0xCCB3 0x62AD +0xCCB4 0x62B4 +0xCCB5 0x62D1 +0xCCB6 0x62BE +0xCCB7 0x62AA +0xCCB8 0x62B6 +0xCCB9 0x62CA +0xCCBA 0x62AE +0xCCBB 0x62B3 +0xCCBC 0x62AF +0xCCBD 0x62BB +0xCCBE 0x62A9 +0xCCBF 0x62B0 +0xCCC0 0x62B8 +0xCCC1 0x653D +0xCCC2 0x65A8 +0xCCC3 0x65BB +0xCCC4 0x6609 +0xCCC5 0x65FC +0xCCC6 0x6604 +0xCCC7 0x6612 +0xCCC8 0x6608 +0xCCC9 0x65FB +0xCCCA 0x6603 +0xCCCB 0x660B +0xCCCC 0x660D +0xCCCD 0x6605 +0xCCCE 0x65FD +0xCCCF 0x6611 +0xCCD0 0x6610 +0xCCD1 0x66F6 +0xCCD2 0x670A +0xCCD3 0x6785 +0xCCD4 0x676C +0xCCD5 0x678E +0xCCD6 0x6792 +0xCCD7 0x6776 +0xCCD8 0x677B +0xCCD9 0x6798 +0xCCDA 0x6786 +0xCCDB 0x6784 +0xCCDC 0x6774 +0xCCDD 0x678D +0xCCDE 0x678C +0xCCDF 0x677A +0xCCE0 0x679F +0xCCE1 0x6791 +0xCCE2 0x6799 +0xCCE3 0x6783 +0xCCE4 0x677D +0xCCE5 0x6781 +0xCCE6 0x6778 +0xCCE7 0x6779 +0xCCE8 0x6794 +0xCCE9 0x6B25 +0xCCEA 0x6B80 +0xCCEB 0x6B7E +0xCCEC 0x6BDE +0xCCED 0x6C1D +0xCCEE 0x6C93 +0xCCEF 0x6CEC +0xCCF0 0x6CEB +0xCCF1 0x6CEE +0xCCF2 0x6CD9 +0xCCF3 0x6CB6 +0xCCF4 0x6CD4 +0xCCF5 0x6CAD +0xCCF6 0x6CE7 +0xCCF7 0x6CB7 +0xCCF8 0x6CD0 +0xCCF9 0x6CC2 +0xCCFA 0x6CBA +0xCCFB 0x6CC3 +0xCCFC 0x6CC6 +0xCCFD 0x6CED +0xCCFE 0x6CF2 +0xCD40 0x6CD2 +0xCD41 0x6CDD +0xCD42 0x6CB4 +0xCD43 0x6C8A +0xCD44 0x6C9D +0xCD45 0x6C80 +0xCD46 0x6CDE +0xCD47 0x6CC0 +0xCD48 0x6D30 +0xCD49 0x6CCD +0xCD4A 0x6CC7 +0xCD4B 0x6CB0 +0xCD4C 0x6CF9 +0xCD4D 0x6CCF +0xCD4E 0x6CE9 +0xCD4F 0x6CD1 +0xCD50 0x7094 +0xCD51 0x7098 +0xCD52 0x7085 +0xCD53 0x7093 +0xCD54 0x7086 +0xCD55 0x7084 +0xCD56 0x7091 +0xCD57 0x7096 +0xCD58 0x7082 +0xCD59 0x709A +0xCD5A 0x7083 +0xCD5B 0x726A +0xCD5C 0x72D6 +0xCD5D 0x72CB +0xCD5E 0x72D8 +0xCD5F 0x72C9 +0xCD60 0x72DC +0xCD61 0x72D2 +0xCD62 0x72D4 +0xCD63 0x72DA +0xCD64 0x72CC +0xCD65 0x72D1 +0xCD66 0x73A4 +0xCD67 0x73A1 +0xCD68 0x73AD +0xCD69 0x73A6 +0xCD6A 0x73A2 +0xCD6B 0x73A0 +0xCD6C 0x73AC +0xCD6D 0x739D +0xCD6E 0x74DD +0xCD6F 0x74E8 +0xCD70 0x753F +0xCD71 0x7540 +0xCD72 0x753E +0xCD73 0x758C +0xCD74 0x7598 +0xCD75 0x76AF +0xCD76 0x76F3 +0xCD77 0x76F1 +0xCD78 0x76F0 +0xCD79 0x76F5 +0xCD7A 0x77F8 +0xCD7B 0x77FC +0xCD7C 0x77F9 +0xCD7D 0x77FB +0xCD7E 0x77FA +0xCDA1 0x77F7 +0xCDA2 0x7942 +0xCDA3 0x793F +0xCDA4 0x79C5 +0xCDA5 0x7A78 +0xCDA6 0x7A7B +0xCDA7 0x7AFB +0xCDA8 0x7C75 +0xCDA9 0x7CFD +0xCDAA 0x8035 +0xCDAB 0x808F +0xCDAC 0x80AE +0xCDAD 0x80A3 +0xCDAE 0x80B8 +0xCDAF 0x80B5 +0xCDB0 0x80AD +0xCDB1 0x8220 +0xCDB2 0x82A0 +0xCDB3 0x82C0 +0xCDB4 0x82AB +0xCDB5 0x829A +0xCDB6 0x8298 +0xCDB7 0x829B +0xCDB8 0x82B5 +0xCDB9 0x82A7 +0xCDBA 0x82AE +0xCDBB 0x82BC +0xCDBC 0x829E +0xCDBD 0x82BA +0xCDBE 0x82B4 +0xCDBF 0x82A8 +0xCDC0 0x82A1 +0xCDC1 0x82A9 +0xCDC2 0x82C2 +0xCDC3 0x82A4 +0xCDC4 0x82C3 +0xCDC5 0x82B6 +0xCDC6 0x82A2 +0xCDC7 0x8670 +0xCDC8 0x866F +0xCDC9 0x866D +0xCDCA 0x866E +0xCDCB 0x8C56 +0xCDCC 0x8FD2 +0xCDCD 0x8FCB +0xCDCE 0x8FD3 +0xCDCF 0x8FCD +0xCDD0 0x8FD6 +0xCDD1 0x8FD5 +0xCDD2 0x8FD7 +0xCDD3 0x90B2 +0xCDD4 0x90B4 +0xCDD5 0x90AF +0xCDD6 0x90B3 +0xCDD7 0x90B0 +0xCDD8 0x9639 +0xCDD9 0x963D +0xCDDA 0x963C +0xCDDB 0x963A +0xCDDC 0x9643 +0xCDDD 0x4FCD +0xCDDE 0x4FC5 +0xCDDF 0x4FD3 +0xCDE0 0x4FB2 +0xCDE1 0x4FC9 +0xCDE2 0x4FCB +0xCDE3 0x4FC1 +0xCDE4 0x4FD4 +0xCDE5 0x4FDC +0xCDE6 0x4FD9 +0xCDE7 0x4FBB +0xCDE8 0x4FB3 +0xCDE9 0x4FDB +0xCDEA 0x4FC7 +0xCDEB 0x4FD6 +0xCDEC 0x4FBA +0xCDED 0x4FC0 +0xCDEE 0x4FB9 +0xCDEF 0x4FEC +0xCDF0 0x5244 +0xCDF1 0x5249 +0xCDF2 0x52C0 +0xCDF3 0x52C2 +0xCDF4 0x533D +0xCDF5 0x537C +0xCDF6 0x5397 +0xCDF7 0x5396 +0xCDF8 0x5399 +0xCDF9 0x5398 +0xCDFA 0x54BA +0xCDFB 0x54A1 +0xCDFC 0x54AD +0xCDFD 0x54A5 +0xCDFE 0x54CF +0xCE40 0x54C3 +0xCE41 0x830D +0xCE42 0x54B7 +0xCE43 0x54AE +0xCE44 0x54D6 +0xCE45 0x54B6 +0xCE46 0x54C5 +0xCE47 0x54C6 +0xCE48 0x54A0 +0xCE49 0x5470 +0xCE4A 0x54BC +0xCE4B 0x54A2 +0xCE4C 0x54BE +0xCE4D 0x5472 +0xCE4E 0x54DE +0xCE4F 0x54B0 +0xCE50 0x57B5 +0xCE51 0x579E +0xCE52 0x579F +0xCE53 0x57A4 +0xCE54 0x578C +0xCE55 0x5797 +0xCE56 0x579D +0xCE57 0x579B +0xCE58 0x5794 +0xCE59 0x5798 +0xCE5A 0x578F +0xCE5B 0x5799 +0xCE5C 0x57A5 +0xCE5D 0x579A +0xCE5E 0x5795 +0xCE5F 0x58F4 +0xCE60 0x590D +0xCE61 0x5953 +0xCE62 0x59E1 +0xCE63 0x59DE +0xCE64 0x59EE +0xCE65 0x5A00 +0xCE66 0x59F1 +0xCE67 0x59DD +0xCE68 0x59FA +0xCE69 0x59FD +0xCE6A 0x59FC +0xCE6B 0x59F6 +0xCE6C 0x59E4 +0xCE6D 0x59F2 +0xCE6E 0x59F7 +0xCE6F 0x59DB +0xCE70 0x59E9 +0xCE71 0x59F3 +0xCE72 0x59F5 +0xCE73 0x59E0 +0xCE74 0x59FE +0xCE75 0x59F4 +0xCE76 0x59ED +0xCE77 0x5BA8 +0xCE78 0x5C4C +0xCE79 0x5CD0 +0xCE7A 0x5CD8 +0xCE7B 0x5CCC +0xCE7C 0x5CD7 +0xCE7D 0x5CCB +0xCE7E 0x5CDB +0xCEA1 0x5CDE +0xCEA2 0x5CDA +0xCEA3 0x5CC9 +0xCEA4 0x5CC7 +0xCEA5 0x5CCA +0xCEA6 0x5CD6 +0xCEA7 0x5CD3 +0xCEA8 0x5CD4 +0xCEA9 0x5CCF +0xCEAA 0x5CC8 +0xCEAB 0x5CC6 +0xCEAC 0x5CCE +0xCEAD 0x5CDF +0xCEAE 0x5CF8 +0xCEAF 0x5DF9 +0xCEB0 0x5E21 +0xCEB1 0x5E22 +0xCEB2 0x5E23 +0xCEB3 0x5E20 +0xCEB4 0x5E24 +0xCEB5 0x5EB0 +0xCEB6 0x5EA4 +0xCEB7 0x5EA2 +0xCEB8 0x5E9B +0xCEB9 0x5EA3 +0xCEBA 0x5EA5 +0xCEBB 0x5F07 +0xCEBC 0x5F2E +0xCEBD 0x5F56 +0xCEBE 0x5F86 +0xCEBF 0x6037 +0xCEC0 0x6039 +0xCEC1 0x6054 +0xCEC2 0x6072 +0xCEC3 0x605E +0xCEC4 0x6045 +0xCEC5 0x6053 +0xCEC6 0x6047 +0xCEC7 0x6049 +0xCEC8 0x605B +0xCEC9 0x604C +0xCECA 0x6040 +0xCECB 0x6042 +0xCECC 0x605F +0xCECD 0x6024 +0xCECE 0x6044 +0xCECF 0x6058 +0xCED0 0x6066 +0xCED1 0x606E +0xCED2 0x6242 +0xCED3 0x6243 +0xCED4 0x62CF +0xCED5 0x630D +0xCED6 0x630B +0xCED7 0x62F5 +0xCED8 0x630E +0xCED9 0x6303 +0xCEDA 0x62EB +0xCEDB 0x62F9 +0xCEDC 0x630F +0xCEDD 0x630C +0xCEDE 0x62F8 +0xCEDF 0x62F6 +0xCEE0 0x6300 +0xCEE1 0x6313 +0xCEE2 0x6314 +0xCEE3 0x62FA +0xCEE4 0x6315 +0xCEE5 0x62FB +0xCEE6 0x62F0 +0xCEE7 0x6541 +0xCEE8 0x6543 +0xCEE9 0x65AA +0xCEEA 0x65BF +0xCEEB 0x6636 +0xCEEC 0x6621 +0xCEED 0x6632 +0xCEEE 0x6635 +0xCEEF 0x661C +0xCEF0 0x6626 +0xCEF1 0x6622 +0xCEF2 0x6633 +0xCEF3 0x662B +0xCEF4 0x663A +0xCEF5 0x661D +0xCEF6 0x6634 +0xCEF7 0x6639 +0xCEF8 0x662E +0xCEF9 0x670F +0xCEFA 0x6710 +0xCEFB 0x67C1 +0xCEFC 0x67F2 +0xCEFD 0x67C8 +0xCEFE 0x67BA +0xCF40 0x67DC +0xCF41 0x67BB +0xCF42 0x67F8 +0xCF43 0x67D8 +0xCF44 0x67C0 +0xCF45 0x67B7 +0xCF46 0x67C5 +0xCF47 0x67EB +0xCF48 0x67E4 +0xCF49 0x67DF +0xCF4A 0x67B5 +0xCF4B 0x67CD +0xCF4C 0x67B3 +0xCF4D 0x67F7 +0xCF4E 0x67F6 +0xCF4F 0x67EE +0xCF50 0x67E3 +0xCF51 0x67C2 +0xCF52 0x67B9 +0xCF53 0x67CE +0xCF54 0x67E7 +0xCF55 0x67F0 +0xCF56 0x67B2 +0xCF57 0x67FC +0xCF58 0x67C6 +0xCF59 0x67ED +0xCF5A 0x67CC +0xCF5B 0x67AE +0xCF5C 0x67E6 +0xCF5D 0x67DB +0xCF5E 0x67FA +0xCF5F 0x67C9 +0xCF60 0x67CA +0xCF61 0x67C3 +0xCF62 0x67EA +0xCF63 0x67CB +0xCF64 0x6B28 +0xCF65 0x6B82 +0xCF66 0x6B84 +0xCF67 0x6BB6 +0xCF68 0x6BD6 +0xCF69 0x6BD8 +0xCF6A 0x6BE0 +0xCF6B 0x6C20 +0xCF6C 0x6C21 +0xCF6D 0x6D28 +0xCF6E 0x6D34 +0xCF6F 0x6D2D +0xCF70 0x6D1F +0xCF71 0x6D3C +0xCF72 0x6D3F +0xCF73 0x6D12 +0xCF74 0x6D0A +0xCF75 0x6CDA +0xCF76 0x6D33 +0xCF77 0x6D04 +0xCF78 0x6D19 +0xCF79 0x6D3A +0xCF7A 0x6D1A +0xCF7B 0x6D11 +0xCF7C 0x6D00 +0xCF7D 0x6D1D +0xCF7E 0x6D42 +0xCFA1 0x6D01 +0xCFA2 0x6D18 +0xCFA3 0x6D37 +0xCFA4 0x6D03 +0xCFA5 0x6D0F +0xCFA6 0x6D40 +0xCFA7 0x6D07 +0xCFA8 0x6D20 +0xCFA9 0x6D2C +0xCFAA 0x6D08 +0xCFAB 0x6D22 +0xCFAC 0x6D09 +0xCFAD 0x6D10 +0xCFAE 0x70B7 +0xCFAF 0x709F +0xCFB0 0x70BE +0xCFB1 0x70B1 +0xCFB2 0x70B0 +0xCFB3 0x70A1 +0xCFB4 0x70B4 +0xCFB5 0x70B5 +0xCFB6 0x70A9 +0xCFB7 0x7241 +0xCFB8 0x7249 +0xCFB9 0x724A +0xCFBA 0x726C +0xCFBB 0x7270 +0xCFBC 0x7273 +0xCFBD 0x726E +0xCFBE 0x72CA +0xCFBF 0x72E4 +0xCFC0 0x72E8 +0xCFC1 0x72EB +0xCFC2 0x72DF +0xCFC3 0x72EA +0xCFC4 0x72E6 +0xCFC5 0x72E3 +0xCFC6 0x7385 +0xCFC7 0x73CC +0xCFC8 0x73C2 +0xCFC9 0x73C8 +0xCFCA 0x73C5 +0xCFCB 0x73B9 +0xCFCC 0x73B6 +0xCFCD 0x73B5 +0xCFCE 0x73B4 +0xCFCF 0x73EB +0xCFD0 0x73BF +0xCFD1 0x73C7 +0xCFD2 0x73BE +0xCFD3 0x73C3 +0xCFD4 0x73C6 +0xCFD5 0x73B8 +0xCFD6 0x73CB +0xCFD7 0x74EC +0xCFD8 0x74EE +0xCFD9 0x752E +0xCFDA 0x7547 +0xCFDB 0x7548 +0xCFDC 0x75A7 +0xCFDD 0x75AA +0xCFDE 0x7679 +0xCFDF 0x76C4 +0xCFE0 0x7708 +0xCFE1 0x7703 +0xCFE2 0x7704 +0xCFE3 0x7705 +0xCFE4 0x770A +0xCFE5 0x76F7 +0xCFE6 0x76FB +0xCFE7 0x76FA +0xCFE8 0x77E7 +0xCFE9 0x77E8 +0xCFEA 0x7806 +0xCFEB 0x7811 +0xCFEC 0x7812 +0xCFED 0x7805 +0xCFEE 0x7810 +0xCFEF 0x780F +0xCFF0 0x780E +0xCFF1 0x7809 +0xCFF2 0x7803 +0xCFF3 0x7813 +0xCFF4 0x794A +0xCFF5 0x794C +0xCFF6 0x794B +0xCFF7 0x7945 +0xCFF8 0x7944 +0xCFF9 0x79D5 +0xCFFA 0x79CD +0xCFFB 0x79CF +0xCFFC 0x79D6 +0xCFFD 0x79CE +0xCFFE 0x7A80 +0xD040 0x7A7E +0xD041 0x7AD1 +0xD042 0x7B00 +0xD043 0x7B01 +0xD044 0x7C7A +0xD045 0x7C78 +0xD046 0x7C79 +0xD047 0x7C7F +0xD048 0x7C80 +0xD049 0x7C81 +0xD04A 0x7D03 +0xD04B 0x7D08 +0xD04C 0x7D01 +0xD04D 0x7F58 +0xD04E 0x7F91 +0xD04F 0x7F8D +0xD050 0x7FBE +0xD051 0x8007 +0xD052 0x800E +0xD053 0x800F +0xD054 0x8014 +0xD055 0x8037 +0xD056 0x80D8 +0xD057 0x80C7 +0xD058 0x80E0 +0xD059 0x80D1 +0xD05A 0x80C8 +0xD05B 0x80C2 +0xD05C 0x80D0 +0xD05D 0x80C5 +0xD05E 0x80E3 +0xD05F 0x80D9 +0xD060 0x80DC +0xD061 0x80CA +0xD062 0x80D5 +0xD063 0x80C9 +0xD064 0x80CF +0xD065 0x80D7 +0xD066 0x80E6 +0xD067 0x80CD +0xD068 0x81FF +0xD069 0x8221 +0xD06A 0x8294 +0xD06B 0x82D9 +0xD06C 0x82FE +0xD06D 0x82F9 +0xD06E 0x8307 +0xD06F 0x82E8 +0xD070 0x8300 +0xD071 0x82D5 +0xD072 0x833A +0xD073 0x82EB +0xD074 0x82D6 +0xD075 0x82F4 +0xD076 0x82EC +0xD077 0x82E1 +0xD078 0x82F2 +0xD079 0x82F5 +0xD07A 0x830C +0xD07B 0x82FB +0xD07C 0x82F6 +0xD07D 0x82F0 +0xD07E 0x82EA +0xD0A1 0x82E4 +0xD0A2 0x82E0 +0xD0A3 0x82FA +0xD0A4 0x82F3 +0xD0A5 0x82ED +0xD0A6 0x8677 +0xD0A7 0x8674 +0xD0A8 0x867C +0xD0A9 0x8673 +0xD0AA 0x8841 +0xD0AB 0x884E +0xD0AC 0x8867 +0xD0AD 0x886A +0xD0AE 0x8869 +0xD0AF 0x89D3 +0xD0B0 0x8A04 +0xD0B1 0x8A07 +0xD0B2 0x8D72 +0xD0B3 0x8FE3 +0xD0B4 0x8FE1 +0xD0B5 0x8FEE +0xD0B6 0x8FE0 +0xD0B7 0x90F1 +0xD0B8 0x90BD +0xD0B9 0x90BF +0xD0BA 0x90D5 +0xD0BB 0x90C5 +0xD0BC 0x90BE +0xD0BD 0x90C7 +0xD0BE 0x90CB +0xD0BF 0x90C8 +0xD0C0 0x91D4 +0xD0C1 0x91D3 +0xD0C2 0x9654 +0xD0C3 0x964F +0xD0C4 0x9651 +0xD0C5 0x9653 +0xD0C6 0x964A +0xD0C7 0x964E +0xD0C8 0x501E +0xD0C9 0x5005 +0xD0CA 0x5007 +0xD0CB 0x5013 +0xD0CC 0x5022 +0xD0CD 0x5030 +0xD0CE 0x501B +0xD0CF 0x4FF5 +0xD0D0 0x4FF4 +0xD0D1 0x5033 +0xD0D2 0x5037 +0xD0D3 0x502C +0xD0D4 0x4FF6 +0xD0D5 0x4FF7 +0xD0D6 0x5017 +0xD0D7 0x501C +0xD0D8 0x5020 +0xD0D9 0x5027 +0xD0DA 0x5035 +0xD0DB 0x502F +0xD0DC 0x5031 +0xD0DD 0x500E +0xD0DE 0x515A +0xD0DF 0x5194 +0xD0E0 0x5193 +0xD0E1 0x51CA +0xD0E2 0x51C4 +0xD0E3 0x51C5 +0xD0E4 0x51C8 +0xD0E5 0x51CE +0xD0E6 0x5261 +0xD0E7 0x525A +0xD0E8 0x5252 +0xD0E9 0x525E +0xD0EA 0x525F +0xD0EB 0x5255 +0xD0EC 0x5262 +0xD0ED 0x52CD +0xD0EE 0x530E +0xD0EF 0x539E +0xD0F0 0x5526 +0xD0F1 0x54E2 +0xD0F2 0x5517 +0xD0F3 0x5512 +0xD0F4 0x54E7 +0xD0F5 0x54F3 +0xD0F6 0x54E4 +0xD0F7 0x551A +0xD0F8 0x54FF +0xD0F9 0x5504 +0xD0FA 0x5508 +0xD0FB 0x54EB +0xD0FC 0x5511 +0xD0FD 0x5505 +0xD0FE 0x54F1 +0xD140 0x550A +0xD141 0x54FB +0xD142 0x54F7 +0xD143 0x54F8 +0xD144 0x54E0 +0xD145 0x550E +0xD146 0x5503 +0xD147 0x550B +0xD148 0x5701 +0xD149 0x5702 +0xD14A 0x57CC +0xD14B 0x5832 +0xD14C 0x57D5 +0xD14D 0x57D2 +0xD14E 0x57BA +0xD14F 0x57C6 +0xD150 0x57BD +0xD151 0x57BC +0xD152 0x57B8 +0xD153 0x57B6 +0xD154 0x57BF +0xD155 0x57C7 +0xD156 0x57D0 +0xD157 0x57B9 +0xD158 0x57C1 +0xD159 0x590E +0xD15A 0x594A +0xD15B 0x5A19 +0xD15C 0x5A16 +0xD15D 0x5A2D +0xD15E 0x5A2E +0xD15F 0x5A15 +0xD160 0x5A0F +0xD161 0x5A17 +0xD162 0x5A0A +0xD163 0x5A1E +0xD164 0x5A33 +0xD165 0x5B6C +0xD166 0x5BA7 +0xD167 0x5BAD +0xD168 0x5BAC +0xD169 0x5C03 +0xD16A 0x5C56 +0xD16B 0x5C54 +0xD16C 0x5CEC +0xD16D 0x5CFF +0xD16E 0x5CEE +0xD16F 0x5CF1 +0xD170 0x5CF7 +0xD171 0x5D00 +0xD172 0x5CF9 +0xD173 0x5E29 +0xD174 0x5E28 +0xD175 0x5EA8 +0xD176 0x5EAE +0xD177 0x5EAA +0xD178 0x5EAC +0xD179 0x5F33 +0xD17A 0x5F30 +0xD17B 0x5F67 +0xD17C 0x605D +0xD17D 0x605A +0xD17E 0x6067 +0xD1A1 0x6041 +0xD1A2 0x60A2 +0xD1A3 0x6088 +0xD1A4 0x6080 +0xD1A5 0x6092 +0xD1A6 0x6081 +0xD1A7 0x609D +0xD1A8 0x6083 +0xD1A9 0x6095 +0xD1AA 0x609B +0xD1AB 0x6097 +0xD1AC 0x6087 +0xD1AD 0x609C +0xD1AE 0x608E +0xD1AF 0x6219 +0xD1B0 0x6246 +0xD1B1 0x62F2 +0xD1B2 0x6310 +0xD1B3 0x6356 +0xD1B4 0x632C +0xD1B5 0x6344 +0xD1B6 0x6345 +0xD1B7 0x6336 +0xD1B8 0x6343 +0xD1B9 0x63E4 +0xD1BA 0x6339 +0xD1BB 0x634B +0xD1BC 0x634A +0xD1BD 0x633C +0xD1BE 0x6329 +0xD1BF 0x6341 +0xD1C0 0x6334 +0xD1C1 0x6358 +0xD1C2 0x6354 +0xD1C3 0x6359 +0xD1C4 0x632D +0xD1C5 0x6347 +0xD1C6 0x6333 +0xD1C7 0x635A +0xD1C8 0x6351 +0xD1C9 0x6338 +0xD1CA 0x6357 +0xD1CB 0x6340 +0xD1CC 0x6348 +0xD1CD 0x654A +0xD1CE 0x6546 +0xD1CF 0x65C6 +0xD1D0 0x65C3 +0xD1D1 0x65C4 +0xD1D2 0x65C2 +0xD1D3 0x664A +0xD1D4 0x665F +0xD1D5 0x6647 +0xD1D6 0x6651 +0xD1D7 0x6712 +0xD1D8 0x6713 +0xD1D9 0x681F +0xD1DA 0x681A +0xD1DB 0x6849 +0xD1DC 0x6832 +0xD1DD 0x6833 +0xD1DE 0x683B +0xD1DF 0x684B +0xD1E0 0x684F +0xD1E1 0x6816 +0xD1E2 0x6831 +0xD1E3 0x681C +0xD1E4 0x6835 +0xD1E5 0x682B +0xD1E6 0x682D +0xD1E7 0x682F +0xD1E8 0x684E +0xD1E9 0x6844 +0xD1EA 0x6834 +0xD1EB 0x681D +0xD1EC 0x6812 +0xD1ED 0x6814 +0xD1EE 0x6826 +0xD1EF 0x6828 +0xD1F0 0x682E +0xD1F1 0x684D +0xD1F2 0x683A +0xD1F3 0x6825 +0xD1F4 0x6820 +0xD1F5 0x6B2C +0xD1F6 0x6B2F +0xD1F7 0x6B2D +0xD1F8 0x6B31 +0xD1F9 0x6B34 +0xD1FA 0x6B6D +0xD1FB 0x8082 +0xD1FC 0x6B88 +0xD1FD 0x6BE6 +0xD1FE 0x6BE4 +0xD240 0x6BE8 +0xD241 0x6BE3 +0xD242 0x6BE2 +0xD243 0x6BE7 +0xD244 0x6C25 +0xD245 0x6D7A +0xD246 0x6D63 +0xD247 0x6D64 +0xD248 0x6D76 +0xD249 0x6D0D +0xD24A 0x6D61 +0xD24B 0x6D92 +0xD24C 0x6D58 +0xD24D 0x6D62 +0xD24E 0x6D6D +0xD24F 0x6D6F +0xD250 0x6D91 +0xD251 0x6D8D +0xD252 0x6DEF +0xD253 0x6D7F +0xD254 0x6D86 +0xD255 0x6D5E +0xD256 0x6D67 +0xD257 0x6D60 +0xD258 0x6D97 +0xD259 0x6D70 +0xD25A 0x6D7C +0xD25B 0x6D5F +0xD25C 0x6D82 +0xD25D 0x6D98 +0xD25E 0x6D2F +0xD25F 0x6D68 +0xD260 0x6D8B +0xD261 0x6D7E +0xD262 0x6D80 +0xD263 0x6D84 +0xD264 0x6D16 +0xD265 0x6D83 +0xD266 0x6D7B +0xD267 0x6D7D +0xD268 0x6D75 +0xD269 0x6D90 +0xD26A 0x70DC +0xD26B 0x70D3 +0xD26C 0x70D1 +0xD26D 0x70DD +0xD26E 0x70CB +0xD26F 0x7F39 +0xD270 0x70E2 +0xD271 0x70D7 +0xD272 0x70D2 +0xD273 0x70DE +0xD274 0x70E0 +0xD275 0x70D4 +0xD276 0x70CD +0xD277 0x70C5 +0xD278 0x70C6 +0xD279 0x70C7 +0xD27A 0x70DA +0xD27B 0x70CE +0xD27C 0x70E1 +0xD27D 0x7242 +0xD27E 0x7278 +0xD2A1 0x7277 +0xD2A2 0x7276 +0xD2A3 0x7300 +0xD2A4 0x72FA +0xD2A5 0x72F4 +0xD2A6 0x72FE +0xD2A7 0x72F6 +0xD2A8 0x72F3 +0xD2A9 0x72FB +0xD2AA 0x7301 +0xD2AB 0x73D3 +0xD2AC 0x73D9 +0xD2AD 0x73E5 +0xD2AE 0x73D6 +0xD2AF 0x73BC +0xD2B0 0x73E7 +0xD2B1 0x73E3 +0xD2B2 0x73E9 +0xD2B3 0x73DC +0xD2B4 0x73D2 +0xD2B5 0x73DB +0xD2B6 0x73D4 +0xD2B7 0x73DD +0xD2B8 0x73DA +0xD2B9 0x73D7 +0xD2BA 0x73D8 +0xD2BB 0x73E8 +0xD2BC 0x74DE +0xD2BD 0x74DF +0xD2BE 0x74F4 +0xD2BF 0x74F5 +0xD2C0 0x7521 +0xD2C1 0x755B +0xD2C2 0x755F +0xD2C3 0x75B0 +0xD2C4 0x75C1 +0xD2C5 0x75BB +0xD2C6 0x75C4 +0xD2C7 0x75C0 +0xD2C8 0x75BF +0xD2C9 0x75B6 +0xD2CA 0x75BA +0xD2CB 0x768A +0xD2CC 0x76C9 +0xD2CD 0x771D +0xD2CE 0x771B +0xD2CF 0x7710 +0xD2D0 0x7713 +0xD2D1 0x7712 +0xD2D2 0x7723 +0xD2D3 0x7711 +0xD2D4 0x7715 +0xD2D5 0x7719 +0xD2D6 0x771A +0xD2D7 0x7722 +0xD2D8 0x7727 +0xD2D9 0x7823 +0xD2DA 0x782C +0xD2DB 0x7822 +0xD2DC 0x7835 +0xD2DD 0x782F +0xD2DE 0x7828 +0xD2DF 0x782E +0xD2E0 0x782B +0xD2E1 0x7821 +0xD2E2 0x7829 +0xD2E3 0x7833 +0xD2E4 0x782A +0xD2E5 0x7831 +0xD2E6 0x7954 +0xD2E7 0x795B +0xD2E8 0x794F +0xD2E9 0x795C +0xD2EA 0x7953 +0xD2EB 0x7952 +0xD2EC 0x7951 +0xD2ED 0x79EB +0xD2EE 0x79EC +0xD2EF 0x79E0 +0xD2F0 0x79EE +0xD2F1 0x79ED +0xD2F2 0x79EA +0xD2F3 0x79DC +0xD2F4 0x79DE +0xD2F5 0x79DD +0xD2F6 0x7A86 +0xD2F7 0x7A89 +0xD2F8 0x7A85 +0xD2F9 0x7A8B +0xD2FA 0x7A8C +0xD2FB 0x7A8A +0xD2FC 0x7A87 +0xD2FD 0x7AD8 +0xD2FE 0x7B10 +0xD340 0x7B04 +0xD341 0x7B13 +0xD342 0x7B05 +0xD343 0x7B0F +0xD344 0x7B08 +0xD345 0x7B0A +0xD346 0x7B0E +0xD347 0x7B09 +0xD348 0x7B12 +0xD349 0x7C84 +0xD34A 0x7C91 +0xD34B 0x7C8A +0xD34C 0x7C8C +0xD34D 0x7C88 +0xD34E 0x7C8D +0xD34F 0x7C85 +0xD350 0x7D1E +0xD351 0x7D1D +0xD352 0x7D11 +0xD353 0x7D0E +0xD354 0x7D18 +0xD355 0x7D16 +0xD356 0x7D13 +0xD357 0x7D1F +0xD358 0x7D12 +0xD359 0x7D0F +0xD35A 0x7D0C +0xD35B 0x7F5C +0xD35C 0x7F61 +0xD35D 0x7F5E +0xD35E 0x7F60 +0xD35F 0x7F5D +0xD360 0x7F5B +0xD361 0x7F96 +0xD362 0x7F92 +0xD363 0x7FC3 +0xD364 0x7FC2 +0xD365 0x7FC0 +0xD366 0x8016 +0xD367 0x803E +0xD368 0x8039 +0xD369 0x80FA +0xD36A 0x80F2 +0xD36B 0x80F9 +0xD36C 0x80F5 +0xD36D 0x8101 +0xD36E 0x80FB +0xD36F 0x8100 +0xD370 0x8201 +0xD371 0x822F +0xD372 0x8225 +0xD373 0x8333 +0xD374 0x832D +0xD375 0x8344 +0xD376 0x8319 +0xD377 0x8351 +0xD378 0x8325 +0xD379 0x8356 +0xD37A 0x833F +0xD37B 0x8341 +0xD37C 0x8326 +0xD37D 0x831C +0xD37E 0x8322 +0xD3A1 0x8342 +0xD3A2 0x834E +0xD3A3 0x831B +0xD3A4 0x832A +0xD3A5 0x8308 +0xD3A6 0x833C +0xD3A7 0x834D +0xD3A8 0x8316 +0xD3A9 0x8324 +0xD3AA 0x8320 +0xD3AB 0x8337 +0xD3AC 0x832F +0xD3AD 0x8329 +0xD3AE 0x8347 +0xD3AF 0x8345 +0xD3B0 0x834C +0xD3B1 0x8353 +0xD3B2 0x831E +0xD3B3 0x832C +0xD3B4 0x834B +0xD3B5 0x8327 +0xD3B6 0x8348 +0xD3B7 0x8653 +0xD3B8 0x8652 +0xD3B9 0x86A2 +0xD3BA 0x86A8 +0xD3BB 0x8696 +0xD3BC 0x868D +0xD3BD 0x8691 +0xD3BE 0x869E +0xD3BF 0x8687 +0xD3C0 0x8697 +0xD3C1 0x8686 +0xD3C2 0x868B +0xD3C3 0x869A +0xD3C4 0x8685 +0xD3C5 0x86A5 +0xD3C6 0x8699 +0xD3C7 0x86A1 +0xD3C8 0x86A7 +0xD3C9 0x8695 +0xD3CA 0x8698 +0xD3CB 0x868E +0xD3CC 0x869D +0xD3CD 0x8690 +0xD3CE 0x8694 +0xD3CF 0x8843 +0xD3D0 0x8844 +0xD3D1 0x886D +0xD3D2 0x8875 +0xD3D3 0x8876 +0xD3D4 0x8872 +0xD3D5 0x8880 +0xD3D6 0x8871 +0xD3D7 0x887F +0xD3D8 0x886F +0xD3D9 0x8883 +0xD3DA 0x887E +0xD3DB 0x8874 +0xD3DC 0x887C +0xD3DD 0x8A12 +0xD3DE 0x8C47 +0xD3DF 0x8C57 +0xD3E0 0x8C7B +0xD3E1 0x8CA4 +0xD3E2 0x8CA3 +0xD3E3 0x8D76 +0xD3E4 0x8D78 +0xD3E5 0x8DB5 +0xD3E6 0x8DB7 +0xD3E7 0x8DB6 +0xD3E8 0x8ED1 +0xD3E9 0x8ED3 +0xD3EA 0x8FFE +0xD3EB 0x8FF5 +0xD3EC 0x9002 +0xD3ED 0x8FFF +0xD3EE 0x8FFB +0xD3EF 0x9004 +0xD3F0 0x8FFC +0xD3F1 0x8FF6 +0xD3F2 0x90D6 +0xD3F3 0x90E0 +0xD3F4 0x90D9 +0xD3F5 0x90DA +0xD3F6 0x90E3 +0xD3F7 0x90DF +0xD3F8 0x90E5 +0xD3F9 0x90D8 +0xD3FA 0x90DB +0xD3FB 0x90D7 +0xD3FC 0x90DC +0xD3FD 0x90E4 +0xD3FE 0x9150 +0xD440 0x914E +0xD441 0x914F +0xD442 0x91D5 +0xD443 0x91E2 +0xD444 0x91DA +0xD445 0x965C +0xD446 0x965F +0xD447 0x96BC +0xD448 0x98E3 +0xD449 0x9ADF +0xD44A 0x9B2F +0xD44B 0x4E7F +0xD44C 0x5070 +0xD44D 0x506A +0xD44E 0x5061 +0xD44F 0x505E +0xD450 0x5060 +0xD451 0x5053 +0xD452 0x504B +0xD453 0x505D +0xD454 0x5072 +0xD455 0x5048 +0xD456 0x504D +0xD457 0x5041 +0xD458 0x505B +0xD459 0x504A +0xD45A 0x5062 +0xD45B 0x5015 +0xD45C 0x5045 +0xD45D 0x505F +0xD45E 0x5069 +0xD45F 0x506B +0xD460 0x5063 +0xD461 0x5064 +0xD462 0x5046 +0xD463 0x5040 +0xD464 0x506E +0xD465 0x5073 +0xD466 0x5057 +0xD467 0x5051 +0xD468 0x51D0 +0xD469 0x526B +0xD46A 0x526D +0xD46B 0x526C +0xD46C 0x526E +0xD46D 0x52D6 +0xD46E 0x52D3 +0xD46F 0x532D +0xD470 0x539C +0xD471 0x5575 +0xD472 0x5576 +0xD473 0x553C +0xD474 0x554D +0xD475 0x5550 +0xD476 0x5534 +0xD477 0x552A +0xD478 0x5551 +0xD479 0x5562 +0xD47A 0x5536 +0xD47B 0x5535 +0xD47C 0x5530 +0xD47D 0x5552 +0xD47E 0x5545 +0xD4A1 0x550C +0xD4A2 0x5532 +0xD4A3 0x5565 +0xD4A4 0x554E +0xD4A5 0x5539 +0xD4A6 0x5548 +0xD4A7 0x552D +0xD4A8 0x553B +0xD4A9 0x5540 +0xD4AA 0x554B +0xD4AB 0x570A +0xD4AC 0x5707 +0xD4AD 0x57FB +0xD4AE 0x5814 +0xD4AF 0x57E2 +0xD4B0 0x57F6 +0xD4B1 0x57DC +0xD4B2 0x57F4 +0xD4B3 0x5800 +0xD4B4 0x57ED +0xD4B5 0x57FD +0xD4B6 0x5808 +0xD4B7 0x57F8 +0xD4B8 0x580B +0xD4B9 0x57F3 +0xD4BA 0x57CF +0xD4BB 0x5807 +0xD4BC 0x57EE +0xD4BD 0x57E3 +0xD4BE 0x57F2 +0xD4BF 0x57E5 +0xD4C0 0x57EC +0xD4C1 0x57E1 +0xD4C2 0x580E +0xD4C3 0x57FC +0xD4C4 0x5810 +0xD4C5 0x57E7 +0xD4C6 0x5801 +0xD4C7 0x580C +0xD4C8 0x57F1 +0xD4C9 0x57E9 +0xD4CA 0x57F0 +0xD4CB 0x580D +0xD4CC 0x5804 +0xD4CD 0x595C +0xD4CE 0x5A60 +0xD4CF 0x5A58 +0xD4D0 0x5A55 +0xD4D1 0x5A67 +0xD4D2 0x5A5E +0xD4D3 0x5A38 +0xD4D4 0x5A35 +0xD4D5 0x5A6D +0xD4D6 0x5A50 +0xD4D7 0x5A5F +0xD4D8 0x5A65 +0xD4D9 0x5A6C +0xD4DA 0x5A53 +0xD4DB 0x5A64 +0xD4DC 0x5A57 +0xD4DD 0x5A43 +0xD4DE 0x5A5D +0xD4DF 0x5A52 +0xD4E0 0x5A44 +0xD4E1 0x5A5B +0xD4E2 0x5A48 +0xD4E3 0x5A8E +0xD4E4 0x5A3E +0xD4E5 0x5A4D +0xD4E6 0x5A39 +0xD4E7 0x5A4C +0xD4E8 0x5A70 +0xD4E9 0x5A69 +0xD4EA 0x5A47 +0xD4EB 0x5A51 +0xD4EC 0x5A56 +0xD4ED 0x5A42 +0xD4EE 0x5A5C +0xD4EF 0x5B72 +0xD4F0 0x5B6E +0xD4F1 0x5BC1 +0xD4F2 0x5BC0 +0xD4F3 0x5C59 +0xD4F4 0x5D1E +0xD4F5 0x5D0B +0xD4F6 0x5D1D +0xD4F7 0x5D1A +0xD4F8 0x5D20 +0xD4F9 0x5D0C +0xD4FA 0x5D28 +0xD4FB 0x5D0D +0xD4FC 0x5D26 +0xD4FD 0x5D25 +0xD4FE 0x5D0F +0xD540 0x5D30 +0xD541 0x5D12 +0xD542 0x5D23 +0xD543 0x5D1F +0xD544 0x5D2E +0xD545 0x5E3E +0xD546 0x5E34 +0xD547 0x5EB1 +0xD548 0x5EB4 +0xD549 0x5EB9 +0xD54A 0x5EB2 +0xD54B 0x5EB3 +0xD54C 0x5F36 +0xD54D 0x5F38 +0xD54E 0x5F9B +0xD54F 0x5F96 +0xD550 0x5F9F +0xD551 0x608A +0xD552 0x6090 +0xD553 0x6086 +0xD554 0x60BE +0xD555 0x60B0 +0xD556 0x60BA +0xD557 0x60D3 +0xD558 0x60D4 +0xD559 0x60CF +0xD55A 0x60E4 +0xD55B 0x60D9 +0xD55C 0x60DD +0xD55D 0x60C8 +0xD55E 0x60B1 +0xD55F 0x60DB +0xD560 0x60B7 +0xD561 0x60CA +0xD562 0x60BF +0xD563 0x60C3 +0xD564 0x60CD +0xD565 0x60C0 +0xD566 0x6332 +0xD567 0x6365 +0xD568 0x638A +0xD569 0x6382 +0xD56A 0x637D +0xD56B 0x63BD +0xD56C 0x639E +0xD56D 0x63AD +0xD56E 0x639D +0xD56F 0x6397 +0xD570 0x63AB +0xD571 0x638E +0xD572 0x636F +0xD573 0x6387 +0xD574 0x6390 +0xD575 0x636E +0xD576 0x63AF +0xD577 0x6375 +0xD578 0x639C +0xD579 0x636D +0xD57A 0x63AE +0xD57B 0x637C +0xD57C 0x63A4 +0xD57D 0x633B +0xD57E 0x639F +0xD5A1 0x6378 +0xD5A2 0x6385 +0xD5A3 0x6381 +0xD5A4 0x6391 +0xD5A5 0x638D +0xD5A6 0x6370 +0xD5A7 0x6553 +0xD5A8 0x65CD +0xD5A9 0x6665 +0xD5AA 0x6661 +0xD5AB 0x665B +0xD5AC 0x6659 +0xD5AD 0x665C +0xD5AE 0x6662 +0xD5AF 0x6718 +0xD5B0 0x6879 +0xD5B1 0x6887 +0xD5B2 0x6890 +0xD5B3 0x689C +0xD5B4 0x686D +0xD5B5 0x686E +0xD5B6 0x68AE +0xD5B7 0x68AB +0xD5B8 0x6956 +0xD5B9 0x686F +0xD5BA 0x68A3 +0xD5BB 0x68AC +0xD5BC 0x68A9 +0xD5BD 0x6875 +0xD5BE 0x6874 +0xD5BF 0x68B2 +0xD5C0 0x688F +0xD5C1 0x6877 +0xD5C2 0x6892 +0xD5C3 0x687C +0xD5C4 0x686B +0xD5C5 0x6872 +0xD5C6 0x68AA +0xD5C7 0x6880 +0xD5C8 0x6871 +0xD5C9 0x687E +0xD5CA 0x689B +0xD5CB 0x6896 +0xD5CC 0x688B +0xD5CD 0x68A0 +0xD5CE 0x6889 +0xD5CF 0x68A4 +0xD5D0 0x6878 +0xD5D1 0x687B +0xD5D2 0x6891 +0xD5D3 0x688C +0xD5D4 0x688A +0xD5D5 0x687D +0xD5D6 0x6B36 +0xD5D7 0x6B33 +0xD5D8 0x6B37 +0xD5D9 0x6B38 +0xD5DA 0x6B91 +0xD5DB 0x6B8F +0xD5DC 0x6B8D +0xD5DD 0x6B8E +0xD5DE 0x6B8C +0xD5DF 0x6C2A +0xD5E0 0x6DC0 +0xD5E1 0x6DAB +0xD5E2 0x6DB4 +0xD5E3 0x6DB3 +0xD5E4 0x6E74 +0xD5E5 0x6DAC +0xD5E6 0x6DE9 +0xD5E7 0x6DE2 +0xD5E8 0x6DB7 +0xD5E9 0x6DF6 +0xD5EA 0x6DD4 +0xD5EB 0x6E00 +0xD5EC 0x6DC8 +0xD5ED 0x6DE0 +0xD5EE 0x6DDF +0xD5EF 0x6DD6 +0xD5F0 0x6DBE +0xD5F1 0x6DE5 +0xD5F2 0x6DDC +0xD5F3 0x6DDD +0xD5F4 0x6DDB +0xD5F5 0x6DF4 +0xD5F6 0x6DCA +0xD5F7 0x6DBD +0xD5F8 0x6DED +0xD5F9 0x6DF0 +0xD5FA 0x6DBA +0xD5FB 0x6DD5 +0xD5FC 0x6DC2 +0xD5FD 0x6DCF +0xD5FE 0x6DC9 +0xD640 0x6DD0 +0xD641 0x6DF2 +0xD642 0x6DD3 +0xD643 0x6DFD +0xD644 0x6DD7 +0xD645 0x6DCD +0xD646 0x6DE3 +0xD647 0x6DBB +0xD648 0x70FA +0xD649 0x710D +0xD64A 0x70F7 +0xD64B 0x7117 +0xD64C 0x70F4 +0xD64D 0x710C +0xD64E 0x70F0 +0xD64F 0x7104 +0xD650 0x70F3 +0xD651 0x7110 +0xD652 0x70FC +0xD653 0x70FF +0xD654 0x7106 +0xD655 0x7113 +0xD656 0x7100 +0xD657 0x70F8 +0xD658 0x70F6 +0xD659 0x710B +0xD65A 0x7102 +0xD65B 0x710E +0xD65C 0x727E +0xD65D 0x727B +0xD65E 0x727C +0xD65F 0x727F +0xD660 0x731D +0xD661 0x7317 +0xD662 0x7307 +0xD663 0x7311 +0xD664 0x7318 +0xD665 0x730A +0xD666 0x7308 +0xD667 0x72FF +0xD668 0x730F +0xD669 0x731E +0xD66A 0x7388 +0xD66B 0x73F6 +0xD66C 0x73F8 +0xD66D 0x73F5 +0xD66E 0x7404 +0xD66F 0x7401 +0xD670 0x73FD +0xD671 0x7407 +0xD672 0x7400 +0xD673 0x73FA +0xD674 0x73FC +0xD675 0x73FF +0xD676 0x740C +0xD677 0x740B +0xD678 0x73F4 +0xD679 0x7408 +0xD67A 0x7564 +0xD67B 0x7563 +0xD67C 0x75CE +0xD67D 0x75D2 +0xD67E 0x75CF +0xD6A1 0x75CB +0xD6A2 0x75CC +0xD6A3 0x75D1 +0xD6A4 0x75D0 +0xD6A5 0x768F +0xD6A6 0x7689 +0xD6A7 0x76D3 +0xD6A8 0x7739 +0xD6A9 0x772F +0xD6AA 0x772D +0xD6AB 0x7731 +0xD6AC 0x7732 +0xD6AD 0x7734 +0xD6AE 0x7733 +0xD6AF 0x773D +0xD6B0 0x7725 +0xD6B1 0x773B +0xD6B2 0x7735 +0xD6B3 0x7848 +0xD6B4 0x7852 +0xD6B5 0x7849 +0xD6B6 0x784D +0xD6B7 0x784A +0xD6B8 0x784C +0xD6B9 0x7826 +0xD6BA 0x7845 +0xD6BB 0x7850 +0xD6BC 0x7964 +0xD6BD 0x7967 +0xD6BE 0x7969 +0xD6BF 0x796A +0xD6C0 0x7963 +0xD6C1 0x796B +0xD6C2 0x7961 +0xD6C3 0x79BB +0xD6C4 0x79FA +0xD6C5 0x79F8 +0xD6C6 0x79F6 +0xD6C7 0x79F7 +0xD6C8 0x7A8F +0xD6C9 0x7A94 +0xD6CA 0x7A90 +0xD6CB 0x7B35 +0xD6CC 0x7B47 +0xD6CD 0x7B34 +0xD6CE 0x7B25 +0xD6CF 0x7B30 +0xD6D0 0x7B22 +0xD6D1 0x7B24 +0xD6D2 0x7B33 +0xD6D3 0x7B18 +0xD6D4 0x7B2A +0xD6D5 0x7B1D +0xD6D6 0x7B31 +0xD6D7 0x7B2B +0xD6D8 0x7B2D +0xD6D9 0x7B2F +0xD6DA 0x7B32 +0xD6DB 0x7B38 +0xD6DC 0x7B1A +0xD6DD 0x7B23 +0xD6DE 0x7C94 +0xD6DF 0x7C98 +0xD6E0 0x7C96 +0xD6E1 0x7CA3 +0xD6E2 0x7D35 +0xD6E3 0x7D3D +0xD6E4 0x7D38 +0xD6E5 0x7D36 +0xD6E6 0x7D3A +0xD6E7 0x7D45 +0xD6E8 0x7D2C +0xD6E9 0x7D29 +0xD6EA 0x7D41 +0xD6EB 0x7D47 +0xD6EC 0x7D3E +0xD6ED 0x7D3F +0xD6EE 0x7D4A +0xD6EF 0x7D3B +0xD6F0 0x7D28 +0xD6F1 0x7F63 +0xD6F2 0x7F95 +0xD6F3 0x7F9C +0xD6F4 0x7F9D +0xD6F5 0x7F9B +0xD6F6 0x7FCA +0xD6F7 0x7FCB +0xD6F8 0x7FCD +0xD6F9 0x7FD0 +0xD6FA 0x7FD1 +0xD6FB 0x7FC7 +0xD6FC 0x7FCF +0xD6FD 0x7FC9 +0xD6FE 0x801F +0xD740 0x801E +0xD741 0x801B +0xD742 0x8047 +0xD743 0x8043 +0xD744 0x8048 +0xD745 0x8118 +0xD746 0x8125 +0xD747 0x8119 +0xD748 0x811B +0xD749 0x812D +0xD74A 0x811F +0xD74B 0x812C +0xD74C 0x811E +0xD74D 0x8121 +0xD74E 0x8115 +0xD74F 0x8127 +0xD750 0x811D +0xD751 0x8122 +0xD752 0x8211 +0xD753 0x8238 +0xD754 0x8233 +0xD755 0x823A +0xD756 0x8234 +0xD757 0x8232 +0xD758 0x8274 +0xD759 0x8390 +0xD75A 0x83A3 +0xD75B 0x83A8 +0xD75C 0x838D +0xD75D 0x837A +0xD75E 0x8373 +0xD75F 0x83A4 +0xD760 0x8374 +0xD761 0x838F +0xD762 0x8381 +0xD763 0x8395 +0xD764 0x8399 +0xD765 0x8375 +0xD766 0x8394 +0xD767 0x83A9 +0xD768 0x837D +0xD769 0x8383 +0xD76A 0x838C +0xD76B 0x839D +0xD76C 0x839B +0xD76D 0x83AA +0xD76E 0x838B +0xD76F 0x837E +0xD770 0x83A5 +0xD771 0x83AF +0xD772 0x8388 +0xD773 0x8397 +0xD774 0x83B0 +0xD775 0x837F +0xD776 0x83A6 +0xD777 0x8387 +0xD778 0x83AE +0xD779 0x8376 +0xD77A 0x839A +0xD77B 0x8659 +0xD77C 0x8656 +0xD77D 0x86BF +0xD77E 0x86B7 +0xD7A1 0x86C2 +0xD7A2 0x86C1 +0xD7A3 0x86C5 +0xD7A4 0x86BA +0xD7A5 0x86B0 +0xD7A6 0x86C8 +0xD7A7 0x86B9 +0xD7A8 0x86B3 +0xD7A9 0x86B8 +0xD7AA 0x86CC +0xD7AB 0x86B4 +0xD7AC 0x86BB +0xD7AD 0x86BC +0xD7AE 0x86C3 +0xD7AF 0x86BD +0xD7B0 0x86BE +0xD7B1 0x8852 +0xD7B2 0x8889 +0xD7B3 0x8895 +0xD7B4 0x88A8 +0xD7B5 0x88A2 +0xD7B6 0x88AA +0xD7B7 0x889A +0xD7B8 0x8891 +0xD7B9 0x88A1 +0xD7BA 0x889F +0xD7BB 0x8898 +0xD7BC 0x88A7 +0xD7BD 0x8899 +0xD7BE 0x889B +0xD7BF 0x8897 +0xD7C0 0x88A4 +0xD7C1 0x88AC +0xD7C2 0x888C +0xD7C3 0x8893 +0xD7C4 0x888E +0xD7C5 0x8982 +0xD7C6 0x89D6 +0xD7C7 0x89D9 +0xD7C8 0x89D5 +0xD7C9 0x8A30 +0xD7CA 0x8A27 +0xD7CB 0x8A2C +0xD7CC 0x8A1E +0xD7CD 0x8C39 +0xD7CE 0x8C3B +0xD7CF 0x8C5C +0xD7D0 0x8C5D +0xD7D1 0x8C7D +0xD7D2 0x8CA5 +0xD7D3 0x8D7D +0xD7D4 0x8D7B +0xD7D5 0x8D79 +0xD7D6 0x8DBC +0xD7D7 0x8DC2 +0xD7D8 0x8DB9 +0xD7D9 0x8DBF +0xD7DA 0x8DC1 +0xD7DB 0x8ED8 +0xD7DC 0x8EDE +0xD7DD 0x8EDD +0xD7DE 0x8EDC +0xD7DF 0x8ED7 +0xD7E0 0x8EE0 +0xD7E1 0x8EE1 +0xD7E2 0x9024 +0xD7E3 0x900B +0xD7E4 0x9011 +0xD7E5 0x901C +0xD7E6 0x900C +0xD7E7 0x9021 +0xD7E8 0x90EF +0xD7E9 0x90EA +0xD7EA 0x90F0 +0xD7EB 0x90F4 +0xD7EC 0x90F2 +0xD7ED 0x90F3 +0xD7EE 0x90D4 +0xD7EF 0x90EB +0xD7F0 0x90EC +0xD7F1 0x90E9 +0xD7F2 0x9156 +0xD7F3 0x9158 +0xD7F4 0x915A +0xD7F5 0x9153 +0xD7F6 0x9155 +0xD7F7 0x91EC +0xD7F8 0x91F4 +0xD7F9 0x91F1 +0xD7FA 0x91F3 +0xD7FB 0x91F8 +0xD7FC 0x91E4 +0xD7FD 0x91F9 +0xD7FE 0x91EA +0xD840 0x91EB +0xD841 0x91F7 +0xD842 0x91E8 +0xD843 0x91EE +0xD844 0x957A +0xD845 0x9586 +0xD846 0x9588 +0xD847 0x967C +0xD848 0x966D +0xD849 0x966B +0xD84A 0x9671 +0xD84B 0x966F +0xD84C 0x96BF +0xD84D 0x976A +0xD84E 0x9804 +0xD84F 0x98E5 +0xD850 0x9997 +0xD851 0x509B +0xD852 0x5095 +0xD853 0x5094 +0xD854 0x509E +0xD855 0x508B +0xD856 0x50A3 +0xD857 0x5083 +0xD858 0x508C +0xD859 0x508E +0xD85A 0x509D +0xD85B 0x5068 +0xD85C 0x509C +0xD85D 0x5092 +0xD85E 0x5082 +0xD85F 0x5087 +0xD860 0x515F +0xD861 0x51D4 +0xD862 0x5312 +0xD863 0x5311 +0xD864 0x53A4 +0xD865 0x53A7 +0xD866 0x5591 +0xD867 0x55A8 +0xD868 0x55A5 +0xD869 0x55AD +0xD86A 0x5577 +0xD86B 0x5645 +0xD86C 0x55A2 +0xD86D 0x5593 +0xD86E 0x5588 +0xD86F 0x558F +0xD870 0x55B5 +0xD871 0x5581 +0xD872 0x55A3 +0xD873 0x5592 +0xD874 0x55A4 +0xD875 0x557D +0xD876 0x558C +0xD877 0x55A6 +0xD878 0x557F +0xD879 0x5595 +0xD87A 0x55A1 +0xD87B 0x558E +0xD87C 0x570C +0xD87D 0x5829 +0xD87E 0x5837 +0xD8A1 0x5819 +0xD8A2 0x581E +0xD8A3 0x5827 +0xD8A4 0x5823 +0xD8A5 0x5828 +0xD8A6 0x57F5 +0xD8A7 0x5848 +0xD8A8 0x5825 +0xD8A9 0x581C +0xD8AA 0x581B +0xD8AB 0x5833 +0xD8AC 0x583F +0xD8AD 0x5836 +0xD8AE 0x582E +0xD8AF 0x5839 +0xD8B0 0x5838 +0xD8B1 0x582D +0xD8B2 0x582C +0xD8B3 0x583B +0xD8B4 0x5961 +0xD8B5 0x5AAF +0xD8B6 0x5A94 +0xD8B7 0x5A9F +0xD8B8 0x5A7A +0xD8B9 0x5AA2 +0xD8BA 0x5A9E +0xD8BB 0x5A78 +0xD8BC 0x5AA6 +0xD8BD 0x5A7C +0xD8BE 0x5AA5 +0xD8BF 0x5AAC +0xD8C0 0x5A95 +0xD8C1 0x5AAE +0xD8C2 0x5A37 +0xD8C3 0x5A84 +0xD8C4 0x5A8A +0xD8C5 0x5A97 +0xD8C6 0x5A83 +0xD8C7 0x5A8B +0xD8C8 0x5AA9 +0xD8C9 0x5A7B +0xD8CA 0x5A7D +0xD8CB 0x5A8C +0xD8CC 0x5A9C +0xD8CD 0x5A8F +0xD8CE 0x5A93 +0xD8CF 0x5A9D +0xD8D0 0x5BEA +0xD8D1 0x5BCD +0xD8D2 0x5BCB +0xD8D3 0x5BD4 +0xD8D4 0x5BD1 +0xD8D5 0x5BCA +0xD8D6 0x5BCE +0xD8D7 0x5C0C +0xD8D8 0x5C30 +0xD8D9 0x5D37 +0xD8DA 0x5D43 +0xD8DB 0x5D6B +0xD8DC 0x5D41 +0xD8DD 0x5D4B +0xD8DE 0x5D3F +0xD8DF 0x5D35 +0xD8E0 0x5D51 +0xD8E1 0x5D4E +0xD8E2 0x5D55 +0xD8E3 0x5D33 +0xD8E4 0x5D3A +0xD8E5 0x5D52 +0xD8E6 0x5D3D +0xD8E7 0x5D31 +0xD8E8 0x5D59 +0xD8E9 0x5D42 +0xD8EA 0x5D39 +0xD8EB 0x5D49 +0xD8EC 0x5D38 +0xD8ED 0x5D3C +0xD8EE 0x5D32 +0xD8EF 0x5D36 +0xD8F0 0x5D40 +0xD8F1 0x5D45 +0xD8F2 0x5E44 +0xD8F3 0x5E41 +0xD8F4 0x5F58 +0xD8F5 0x5FA6 +0xD8F6 0x5FA5 +0xD8F7 0x5FAB +0xD8F8 0x60C9 +0xD8F9 0x60B9 +0xD8FA 0x60CC +0xD8FB 0x60E2 +0xD8FC 0x60CE +0xD8FD 0x60C4 +0xD8FE 0x6114 +0xD940 0x60F2 +0xD941 0x610A +0xD942 0x6116 +0xD943 0x6105 +0xD944 0x60F5 +0xD945 0x6113 +0xD946 0x60F8 +0xD947 0x60FC +0xD948 0x60FE +0xD949 0x60C1 +0xD94A 0x6103 +0xD94B 0x6118 +0xD94C 0x611D +0xD94D 0x6110 +0xD94E 0x60FF +0xD94F 0x6104 +0xD950 0x610B +0xD951 0x624A +0xD952 0x6394 +0xD953 0x63B1 +0xD954 0x63B0 +0xD955 0x63CE +0xD956 0x63E5 +0xD957 0x63E8 +0xD958 0x63EF +0xD959 0x63C3 +0xD95A 0x649D +0xD95B 0x63F3 +0xD95C 0x63CA +0xD95D 0x63E0 +0xD95E 0x63F6 +0xD95F 0x63D5 +0xD960 0x63F2 +0xD961 0x63F5 +0xD962 0x6461 +0xD963 0x63DF +0xD964 0x63BE +0xD965 0x63DD +0xD966 0x63DC +0xD967 0x63C4 +0xD968 0x63D8 +0xD969 0x63D3 +0xD96A 0x63C2 +0xD96B 0x63C7 +0xD96C 0x63CC +0xD96D 0x63CB +0xD96E 0x63C8 +0xD96F 0x63F0 +0xD970 0x63D7 +0xD971 0x63D9 +0xD972 0x6532 +0xD973 0x6567 +0xD974 0x656A +0xD975 0x6564 +0xD976 0x655C +0xD977 0x6568 +0xD978 0x6565 +0xD979 0x658C +0xD97A 0x659D +0xD97B 0x659E +0xD97C 0x65AE +0xD97D 0x65D0 +0xD97E 0x65D2 +0xD9A1 0x667C +0xD9A2 0x666C +0xD9A3 0x667B +0xD9A4 0x6680 +0xD9A5 0x6671 +0xD9A6 0x6679 +0xD9A7 0x666A +0xD9A8 0x6672 +0xD9A9 0x6701 +0xD9AA 0x690C +0xD9AB 0x68D3 +0xD9AC 0x6904 +0xD9AD 0x68DC +0xD9AE 0x692A +0xD9AF 0x68EC +0xD9B0 0x68EA +0xD9B1 0x68F1 +0xD9B2 0x690F +0xD9B3 0x68D6 +0xD9B4 0x68F7 +0xD9B5 0x68EB +0xD9B6 0x68E4 +0xD9B7 0x68F6 +0xD9B8 0x6913 +0xD9B9 0x6910 +0xD9BA 0x68F3 +0xD9BB 0x68E1 +0xD9BC 0x6907 +0xD9BD 0x68CC +0xD9BE 0x6908 +0xD9BF 0x6970 +0xD9C0 0x68B4 +0xD9C1 0x6911 +0xD9C2 0x68EF +0xD9C3 0x68C6 +0xD9C4 0x6914 +0xD9C5 0x68F8 +0xD9C6 0x68D0 +0xD9C7 0x68FD +0xD9C8 0x68FC +0xD9C9 0x68E8 +0xD9CA 0x690B +0xD9CB 0x690A +0xD9CC 0x6917 +0xD9CD 0x68CE +0xD9CE 0x68C8 +0xD9CF 0x68DD +0xD9D0 0x68DE +0xD9D1 0x68E6 +0xD9D2 0x68F4 +0xD9D3 0x68D1 +0xD9D4 0x6906 +0xD9D5 0x68D4 +0xD9D6 0x68E9 +0xD9D7 0x6915 +0xD9D8 0x6925 +0xD9D9 0x68C7 +0xD9DA 0x6B39 +0xD9DB 0x6B3B +0xD9DC 0x6B3F +0xD9DD 0x6B3C +0xD9DE 0x6B94 +0xD9DF 0x6B97 +0xD9E0 0x6B99 +0xD9E1 0x6B95 +0xD9E2 0x6BBD +0xD9E3 0x6BF0 +0xD9E4 0x6BF2 +0xD9E5 0x6BF3 +0xD9E6 0x6C30 +0xD9E7 0x6DFC +0xD9E8 0x6E46 +0xD9E9 0x6E47 +0xD9EA 0x6E1F +0xD9EB 0x6E49 +0xD9EC 0x6E88 +0xD9ED 0x6E3C +0xD9EE 0x6E3D +0xD9EF 0x6E45 +0xD9F0 0x6E62 +0xD9F1 0x6E2B +0xD9F2 0x6E3F +0xD9F3 0x6E41 +0xD9F4 0x6E5D +0xD9F5 0x6E73 +0xD9F6 0x6E1C +0xD9F7 0x6E33 +0xD9F8 0x6E4B +0xD9F9 0x6E40 +0xD9FA 0x6E51 +0xD9FB 0x6E3B +0xD9FC 0x6E03 +0xD9FD 0x6E2E +0xD9FE 0x6E5E +0xDA40 0x6E68 +0xDA41 0x6E5C +0xDA42 0x6E61 +0xDA43 0x6E31 +0xDA44 0x6E28 +0xDA45 0x6E60 +0xDA46 0x6E71 +0xDA47 0x6E6B +0xDA48 0x6E39 +0xDA49 0x6E22 +0xDA4A 0x6E30 +0xDA4B 0x6E53 +0xDA4C 0x6E65 +0xDA4D 0x6E27 +0xDA4E 0x6E78 +0xDA4F 0x6E64 +0xDA50 0x6E77 +0xDA51 0x6E55 +0xDA52 0x6E79 +0xDA53 0x6E52 +0xDA54 0x6E66 +0xDA55 0x6E35 +0xDA56 0x6E36 +0xDA57 0x6E5A +0xDA58 0x7120 +0xDA59 0x711E +0xDA5A 0x712F +0xDA5B 0x70FB +0xDA5C 0x712E +0xDA5D 0x7131 +0xDA5E 0x7123 +0xDA5F 0x7125 +0xDA60 0x7122 +0xDA61 0x7132 +0xDA62 0x711F +0xDA63 0x7128 +0xDA64 0x713A +0xDA65 0x711B +0xDA66 0x724B +0xDA67 0x725A +0xDA68 0x7288 +0xDA69 0x7289 +0xDA6A 0x7286 +0xDA6B 0x7285 +0xDA6C 0x728B +0xDA6D 0x7312 +0xDA6E 0x730B +0xDA6F 0x7330 +0xDA70 0x7322 +0xDA71 0x7331 +0xDA72 0x7333 +0xDA73 0x7327 +0xDA74 0x7332 +0xDA75 0x732D +0xDA76 0x7326 +0xDA77 0x7323 +0xDA78 0x7335 +0xDA79 0x730C +0xDA7A 0x742E +0xDA7B 0x742C +0xDA7C 0x7430 +0xDA7D 0x742B +0xDA7E 0x7416 +0xDAA1 0x741A +0xDAA2 0x7421 +0xDAA3 0x742D +0xDAA4 0x7431 +0xDAA5 0x7424 +0xDAA6 0x7423 +0xDAA7 0x741D +0xDAA8 0x7429 +0xDAA9 0x7420 +0xDAAA 0x7432 +0xDAAB 0x74FB +0xDAAC 0x752F +0xDAAD 0x756F +0xDAAE 0x756C +0xDAAF 0x75E7 +0xDAB0 0x75DA +0xDAB1 0x75E1 +0xDAB2 0x75E6 +0xDAB3 0x75DD +0xDAB4 0x75DF +0xDAB5 0x75E4 +0xDAB6 0x75D7 +0xDAB7 0x7695 +0xDAB8 0x7692 +0xDAB9 0x76DA +0xDABA 0x7746 +0xDABB 0x7747 +0xDABC 0x7744 +0xDABD 0x774D +0xDABE 0x7745 +0xDABF 0x774A +0xDAC0 0x774E +0xDAC1 0x774B +0xDAC2 0x774C +0xDAC3 0x77DE +0xDAC4 0x77EC +0xDAC5 0x7860 +0xDAC6 0x7864 +0xDAC7 0x7865 +0xDAC8 0x785C +0xDAC9 0x786D +0xDACA 0x7871 +0xDACB 0x786A +0xDACC 0x786E +0xDACD 0x7870 +0xDACE 0x7869 +0xDACF 0x7868 +0xDAD0 0x785E +0xDAD1 0x7862 +0xDAD2 0x7974 +0xDAD3 0x7973 +0xDAD4 0x7972 +0xDAD5 0x7970 +0xDAD6 0x7A02 +0xDAD7 0x7A0A +0xDAD8 0x7A03 +0xDAD9 0x7A0C +0xDADA 0x7A04 +0xDADB 0x7A99 +0xDADC 0x7AE6 +0xDADD 0x7AE4 +0xDADE 0x7B4A +0xDADF 0x7B3B +0xDAE0 0x7B44 +0xDAE1 0x7B48 +0xDAE2 0x7B4C +0xDAE3 0x7B4E +0xDAE4 0x7B40 +0xDAE5 0x7B58 +0xDAE6 0x7B45 +0xDAE7 0x7CA2 +0xDAE8 0x7C9E +0xDAE9 0x7CA8 +0xDAEA 0x7CA1 +0xDAEB 0x7D58 +0xDAEC 0x7D6F +0xDAED 0x7D63 +0xDAEE 0x7D53 +0xDAEF 0x7D56 +0xDAF0 0x7D67 +0xDAF1 0x7D6A +0xDAF2 0x7D4F +0xDAF3 0x7D6D +0xDAF4 0x7D5C +0xDAF5 0x7D6B +0xDAF6 0x7D52 +0xDAF7 0x7D54 +0xDAF8 0x7D69 +0xDAF9 0x7D51 +0xDAFA 0x7D5F +0xDAFB 0x7D4E +0xDAFC 0x7F3E +0xDAFD 0x7F3F +0xDAFE 0x7F65 +0xDB40 0x7F66 +0xDB41 0x7FA2 +0xDB42 0x7FA0 +0xDB43 0x7FA1 +0xDB44 0x7FD7 +0xDB45 0x8051 +0xDB46 0x804F +0xDB47 0x8050 +0xDB48 0x80FE +0xDB49 0x80D4 +0xDB4A 0x8143 +0xDB4B 0x814A +0xDB4C 0x8152 +0xDB4D 0x814F +0xDB4E 0x8147 +0xDB4F 0x813D +0xDB50 0x814D +0xDB51 0x813A +0xDB52 0x81E6 +0xDB53 0x81EE +0xDB54 0x81F7 +0xDB55 0x81F8 +0xDB56 0x81F9 +0xDB57 0x8204 +0xDB58 0x823C +0xDB59 0x823D +0xDB5A 0x823F +0xDB5B 0x8275 +0xDB5C 0x833B +0xDB5D 0x83CF +0xDB5E 0x83F9 +0xDB5F 0x8423 +0xDB60 0x83C0 +0xDB61 0x83E8 +0xDB62 0x8412 +0xDB63 0x83E7 +0xDB64 0x83E4 +0xDB65 0x83FC +0xDB66 0x83F6 +0xDB67 0x8410 +0xDB68 0x83C6 +0xDB69 0x83C8 +0xDB6A 0x83EB +0xDB6B 0x83E3 +0xDB6C 0x83BF +0xDB6D 0x8401 +0xDB6E 0x83DD +0xDB6F 0x83E5 +0xDB70 0x83D8 +0xDB71 0x83FF +0xDB72 0x83E1 +0xDB73 0x83CB +0xDB74 0x83CE +0xDB75 0x83D6 +0xDB76 0x83F5 +0xDB77 0x83C9 +0xDB78 0x8409 +0xDB79 0x840F +0xDB7A 0x83DE +0xDB7B 0x8411 +0xDB7C 0x8406 +0xDB7D 0x83C2 +0xDB7E 0x83F3 +0xDBA1 0x83D5 +0xDBA2 0x83FA +0xDBA3 0x83C7 +0xDBA4 0x83D1 +0xDBA5 0x83EA +0xDBA6 0x8413 +0xDBA7 0x83C3 +0xDBA8 0x83EC +0xDBA9 0x83EE +0xDBAA 0x83C4 +0xDBAB 0x83FB +0xDBAC 0x83D7 +0xDBAD 0x83E2 +0xDBAE 0x841B +0xDBAF 0x83DB +0xDBB0 0x83FE +0xDBB1 0x86D8 +0xDBB2 0x86E2 +0xDBB3 0x86E6 +0xDBB4 0x86D3 +0xDBB5 0x86E3 +0xDBB6 0x86DA +0xDBB7 0x86EA +0xDBB8 0x86DD +0xDBB9 0x86EB +0xDBBA 0x86DC +0xDBBB 0x86EC +0xDBBC 0x86E9 +0xDBBD 0x86D7 +0xDBBE 0x86E8 +0xDBBF 0x86D1 +0xDBC0 0x8848 +0xDBC1 0x8856 +0xDBC2 0x8855 +0xDBC3 0x88BA +0xDBC4 0x88D7 +0xDBC5 0x88B9 +0xDBC6 0x88B8 +0xDBC7 0x88C0 +0xDBC8 0x88BE +0xDBC9 0x88B6 +0xDBCA 0x88BC +0xDBCB 0x88B7 +0xDBCC 0x88BD +0xDBCD 0x88B2 +0xDBCE 0x8901 +0xDBCF 0x88C9 +0xDBD0 0x8995 +0xDBD1 0x8998 +0xDBD2 0x8997 +0xDBD3 0x89DD +0xDBD4 0x89DA +0xDBD5 0x89DB +0xDBD6 0x8A4E +0xDBD7 0x8A4D +0xDBD8 0x8A39 +0xDBD9 0x8A59 +0xDBDA 0x8A40 +0xDBDB 0x8A57 +0xDBDC 0x8A58 +0xDBDD 0x8A44 +0xDBDE 0x8A45 +0xDBDF 0x8A52 +0xDBE0 0x8A48 +0xDBE1 0x8A51 +0xDBE2 0x8A4A +0xDBE3 0x8A4C +0xDBE4 0x8A4F +0xDBE5 0x8C5F +0xDBE6 0x8C81 +0xDBE7 0x8C80 +0xDBE8 0x8CBA +0xDBE9 0x8CBE +0xDBEA 0x8CB0 +0xDBEB 0x8CB9 +0xDBEC 0x8CB5 +0xDBED 0x8D84 +0xDBEE 0x8D80 +0xDBEF 0x8D89 +0xDBF0 0x8DD8 +0xDBF1 0x8DD3 +0xDBF2 0x8DCD +0xDBF3 0x8DC7 +0xDBF4 0x8DD6 +0xDBF5 0x8DDC +0xDBF6 0x8DCF +0xDBF7 0x8DD5 +0xDBF8 0x8DD9 +0xDBF9 0x8DC8 +0xDBFA 0x8DD7 +0xDBFB 0x8DC5 +0xDBFC 0x8EEF +0xDBFD 0x8EF7 +0xDBFE 0x8EFA +0xDC40 0x8EF9 +0xDC41 0x8EE6 +0xDC42 0x8EEE +0xDC43 0x8EE5 +0xDC44 0x8EF5 +0xDC45 0x8EE7 +0xDC46 0x8EE8 +0xDC47 0x8EF6 +0xDC48 0x8EEB +0xDC49 0x8EF1 +0xDC4A 0x8EEC +0xDC4B 0x8EF4 +0xDC4C 0x8EE9 +0xDC4D 0x902D +0xDC4E 0x9034 +0xDC4F 0x902F +0xDC50 0x9106 +0xDC51 0x912C +0xDC52 0x9104 +0xDC53 0x90FF +0xDC54 0x90FC +0xDC55 0x9108 +0xDC56 0x90F9 +0xDC57 0x90FB +0xDC58 0x9101 +0xDC59 0x9100 +0xDC5A 0x9107 +0xDC5B 0x9105 +0xDC5C 0x9103 +0xDC5D 0x9161 +0xDC5E 0x9164 +0xDC5F 0x915F +0xDC60 0x9162 +0xDC61 0x9160 +0xDC62 0x9201 +0xDC63 0x920A +0xDC64 0x9225 +0xDC65 0x9203 +0xDC66 0x921A +0xDC67 0x9226 +0xDC68 0x920F +0xDC69 0x920C +0xDC6A 0x9200 +0xDC6B 0x9212 +0xDC6C 0x91FF +0xDC6D 0x91FD +0xDC6E 0x9206 +0xDC6F 0x9204 +0xDC70 0x9227 +0xDC71 0x9202 +0xDC72 0x921C +0xDC73 0x9224 +0xDC74 0x9219 +0xDC75 0x9217 +0xDC76 0x9205 +0xDC77 0x9216 +0xDC78 0x957B +0xDC79 0x958D +0xDC7A 0x958C +0xDC7B 0x9590 +0xDC7C 0x9687 +0xDC7D 0x967E +0xDC7E 0x9688 +0xDCA1 0x9689 +0xDCA2 0x9683 +0xDCA3 0x9680 +0xDCA4 0x96C2 +0xDCA5 0x96C8 +0xDCA6 0x96C3 +0xDCA7 0x96F1 +0xDCA8 0x96F0 +0xDCA9 0x976C +0xDCAA 0x9770 +0xDCAB 0x976E +0xDCAC 0x9807 +0xDCAD 0x98A9 +0xDCAE 0x98EB +0xDCAF 0x9CE6 +0xDCB0 0x9EF9 +0xDCB1 0x4E83 +0xDCB2 0x4E84 +0xDCB3 0x4EB6 +0xDCB4 0x50BD +0xDCB5 0x50BF +0xDCB6 0x50C6 +0xDCB7 0x50AE +0xDCB8 0x50C4 +0xDCB9 0x50CA +0xDCBA 0x50B4 +0xDCBB 0x50C8 +0xDCBC 0x50C2 +0xDCBD 0x50B0 +0xDCBE 0x50C1 +0xDCBF 0x50BA +0xDCC0 0x50B1 +0xDCC1 0x50CB +0xDCC2 0x50C9 +0xDCC3 0x50B6 +0xDCC4 0x50B8 +0xDCC5 0x51D7 +0xDCC6 0x527A +0xDCC7 0x5278 +0xDCC8 0x527B +0xDCC9 0x527C +0xDCCA 0x55C3 +0xDCCB 0x55DB +0xDCCC 0x55CC +0xDCCD 0x55D0 +0xDCCE 0x55CB +0xDCCF 0x55CA +0xDCD0 0x55DD +0xDCD1 0x55C0 +0xDCD2 0x55D4 +0xDCD3 0x55C4 +0xDCD4 0x55E9 +0xDCD5 0x55BF +0xDCD6 0x55D2 +0xDCD7 0x558D +0xDCD8 0x55CF +0xDCD9 0x55D5 +0xDCDA 0x55E2 +0xDCDB 0x55D6 +0xDCDC 0x55C8 +0xDCDD 0x55F2 +0xDCDE 0x55CD +0xDCDF 0x55D9 +0xDCE0 0x55C2 +0xDCE1 0x5714 +0xDCE2 0x5853 +0xDCE3 0x5868 +0xDCE4 0x5864 +0xDCE5 0x584F +0xDCE6 0x584D +0xDCE7 0x5849 +0xDCE8 0x586F +0xDCE9 0x5855 +0xDCEA 0x584E +0xDCEB 0x585D +0xDCEC 0x5859 +0xDCED 0x5865 +0xDCEE 0x585B +0xDCEF 0x583D +0xDCF0 0x5863 +0xDCF1 0x5871 +0xDCF2 0x58FC +0xDCF3 0x5AC7 +0xDCF4 0x5AC4 +0xDCF5 0x5ACB +0xDCF6 0x5ABA +0xDCF7 0x5AB8 +0xDCF8 0x5AB1 +0xDCF9 0x5AB5 +0xDCFA 0x5AB0 +0xDCFB 0x5ABF +0xDCFC 0x5AC8 +0xDCFD 0x5ABB +0xDCFE 0x5AC6 +0xDD40 0x5AB7 +0xDD41 0x5AC0 +0xDD42 0x5ACA +0xDD43 0x5AB4 +0xDD44 0x5AB6 +0xDD45 0x5ACD +0xDD46 0x5AB9 +0xDD47 0x5A90 +0xDD48 0x5BD6 +0xDD49 0x5BD8 +0xDD4A 0x5BD9 +0xDD4B 0x5C1F +0xDD4C 0x5C33 +0xDD4D 0x5D71 +0xDD4E 0x5D63 +0xDD4F 0x5D4A +0xDD50 0x5D65 +0xDD51 0x5D72 +0xDD52 0x5D6C +0xDD53 0x5D5E +0xDD54 0x5D68 +0xDD55 0x5D67 +0xDD56 0x5D62 +0xDD57 0x5DF0 +0xDD58 0x5E4F +0xDD59 0x5E4E +0xDD5A 0x5E4A +0xDD5B 0x5E4D +0xDD5C 0x5E4B +0xDD5D 0x5EC5 +0xDD5E 0x5ECC +0xDD5F 0x5EC6 +0xDD60 0x5ECB +0xDD61 0x5EC7 +0xDD62 0x5F40 +0xDD63 0x5FAF +0xDD64 0x5FAD +0xDD65 0x60F7 +0xDD66 0x6149 +0xDD67 0x614A +0xDD68 0x612B +0xDD69 0x6145 +0xDD6A 0x6136 +0xDD6B 0x6132 +0xDD6C 0x612E +0xDD6D 0x6146 +0xDD6E 0x612F +0xDD6F 0x614F +0xDD70 0x6129 +0xDD71 0x6140 +0xDD72 0x6220 +0xDD73 0x9168 +0xDD74 0x6223 +0xDD75 0x6225 +0xDD76 0x6224 +0xDD77 0x63C5 +0xDD78 0x63F1 +0xDD79 0x63EB +0xDD7A 0x6410 +0xDD7B 0x6412 +0xDD7C 0x6409 +0xDD7D 0x6420 +0xDD7E 0x6424 +0xDDA1 0x6433 +0xDDA2 0x6443 +0xDDA3 0x641F +0xDDA4 0x6415 +0xDDA5 0x6418 +0xDDA6 0x6439 +0xDDA7 0x6437 +0xDDA8 0x6422 +0xDDA9 0x6423 +0xDDAA 0x640C +0xDDAB 0x6426 +0xDDAC 0x6430 +0xDDAD 0x6428 +0xDDAE 0x6441 +0xDDAF 0x6435 +0xDDB0 0x642F +0xDDB1 0x640A +0xDDB2 0x641A +0xDDB3 0x6440 +0xDDB4 0x6425 +0xDDB5 0x6427 +0xDDB6 0x640B +0xDDB7 0x63E7 +0xDDB8 0x641B +0xDDB9 0x642E +0xDDBA 0x6421 +0xDDBB 0x640E +0xDDBC 0x656F +0xDDBD 0x6592 +0xDDBE 0x65D3 +0xDDBF 0x6686 +0xDDC0 0x668C +0xDDC1 0x6695 +0xDDC2 0x6690 +0xDDC3 0x668B +0xDDC4 0x668A +0xDDC5 0x6699 +0xDDC6 0x6694 +0xDDC7 0x6678 +0xDDC8 0x6720 +0xDDC9 0x6966 +0xDDCA 0x695F +0xDDCB 0x6938 +0xDDCC 0x694E +0xDDCD 0x6962 +0xDDCE 0x6971 +0xDDCF 0x693F +0xDDD0 0x6945 +0xDDD1 0x696A +0xDDD2 0x6939 +0xDDD3 0x6942 +0xDDD4 0x6957 +0xDDD5 0x6959 +0xDDD6 0x697A +0xDDD7 0x6948 +0xDDD8 0x6949 +0xDDD9 0x6935 +0xDDDA 0x696C +0xDDDB 0x6933 +0xDDDC 0x693D +0xDDDD 0x6965 +0xDDDE 0x68F0 +0xDDDF 0x6978 +0xDDE0 0x6934 +0xDDE1 0x6969 +0xDDE2 0x6940 +0xDDE3 0x696F +0xDDE4 0x6944 +0xDDE5 0x6976 +0xDDE6 0x6958 +0xDDE7 0x6941 +0xDDE8 0x6974 +0xDDE9 0x694C +0xDDEA 0x693B +0xDDEB 0x694B +0xDDEC 0x6937 +0xDDED 0x695C +0xDDEE 0x694F +0xDDEF 0x6951 +0xDDF0 0x6932 +0xDDF1 0x6952 +0xDDF2 0x692F +0xDDF3 0x697B +0xDDF4 0x693C +0xDDF5 0x6B46 +0xDDF6 0x6B45 +0xDDF7 0x6B43 +0xDDF8 0x6B42 +0xDDF9 0x6B48 +0xDDFA 0x6B41 +0xDDFB 0x6B9B +0xDDFC 0xFA0D +0xDDFD 0x6BFB +0xDDFE 0x6BFC +0xDE40 0x6BF9 +0xDE41 0x6BF7 +0xDE42 0x6BF8 +0xDE43 0x6E9B +0xDE44 0x6ED6 +0xDE45 0x6EC8 +0xDE46 0x6E8F +0xDE47 0x6EC0 +0xDE48 0x6E9F +0xDE49 0x6E93 +0xDE4A 0x6E94 +0xDE4B 0x6EA0 +0xDE4C 0x6EB1 +0xDE4D 0x6EB9 +0xDE4E 0x6EC6 +0xDE4F 0x6ED2 +0xDE50 0x6EBD +0xDE51 0x6EC1 +0xDE52 0x6E9E +0xDE53 0x6EC9 +0xDE54 0x6EB7 +0xDE55 0x6EB0 +0xDE56 0x6ECD +0xDE57 0x6EA6 +0xDE58 0x6ECF +0xDE59 0x6EB2 +0xDE5A 0x6EBE +0xDE5B 0x6EC3 +0xDE5C 0x6EDC +0xDE5D 0x6ED8 +0xDE5E 0x6E99 +0xDE5F 0x6E92 +0xDE60 0x6E8E +0xDE61 0x6E8D +0xDE62 0x6EA4 +0xDE63 0x6EA1 +0xDE64 0x6EBF +0xDE65 0x6EB3 +0xDE66 0x6ED0 +0xDE67 0x6ECA +0xDE68 0x6E97 +0xDE69 0x6EAE +0xDE6A 0x6EA3 +0xDE6B 0x7147 +0xDE6C 0x7154 +0xDE6D 0x7152 +0xDE6E 0x7163 +0xDE6F 0x7160 +0xDE70 0x7141 +0xDE71 0x715D +0xDE72 0x7162 +0xDE73 0x7172 +0xDE74 0x7178 +0xDE75 0x716A +0xDE76 0x7161 +0xDE77 0x7142 +0xDE78 0x7158 +0xDE79 0x7143 +0xDE7A 0x714B +0xDE7B 0x7170 +0xDE7C 0x715F +0xDE7D 0x7150 +0xDE7E 0x7153 +0xDEA1 0x7144 +0xDEA2 0x714D +0xDEA3 0x715A +0xDEA4 0x724F +0xDEA5 0x728D +0xDEA6 0x728C +0xDEA7 0x7291 +0xDEA8 0x7290 +0xDEA9 0x728E +0xDEAA 0x733C +0xDEAB 0x7342 +0xDEAC 0x733B +0xDEAD 0x733A +0xDEAE 0x7340 +0xDEAF 0x734A +0xDEB0 0x7349 +0xDEB1 0x7444 +0xDEB2 0x744A +0xDEB3 0x744B +0xDEB4 0x7452 +0xDEB5 0x7451 +0xDEB6 0x7457 +0xDEB7 0x7440 +0xDEB8 0x744F +0xDEB9 0x7450 +0xDEBA 0x744E +0xDEBB 0x7442 +0xDEBC 0x7446 +0xDEBD 0x744D +0xDEBE 0x7454 +0xDEBF 0x74E1 +0xDEC0 0x74FF +0xDEC1 0x74FE +0xDEC2 0x74FD +0xDEC3 0x751D +0xDEC4 0x7579 +0xDEC5 0x7577 +0xDEC6 0x6983 +0xDEC7 0x75EF +0xDEC8 0x760F +0xDEC9 0x7603 +0xDECA 0x75F7 +0xDECB 0x75FE +0xDECC 0x75FC +0xDECD 0x75F9 +0xDECE 0x75F8 +0xDECF 0x7610 +0xDED0 0x75FB +0xDED1 0x75F6 +0xDED2 0x75ED +0xDED3 0x75F5 +0xDED4 0x75FD +0xDED5 0x7699 +0xDED6 0x76B5 +0xDED7 0x76DD +0xDED8 0x7755 +0xDED9 0x775F +0xDEDA 0x7760 +0xDEDB 0x7752 +0xDEDC 0x7756 +0xDEDD 0x775A +0xDEDE 0x7769 +0xDEDF 0x7767 +0xDEE0 0x7754 +0xDEE1 0x7759 +0xDEE2 0x776D +0xDEE3 0x77E0 +0xDEE4 0x7887 +0xDEE5 0x789A +0xDEE6 0x7894 +0xDEE7 0x788F +0xDEE8 0x7884 +0xDEE9 0x7895 +0xDEEA 0x7885 +0xDEEB 0x7886 +0xDEEC 0x78A1 +0xDEED 0x7883 +0xDEEE 0x7879 +0xDEEF 0x7899 +0xDEF0 0x7880 +0xDEF1 0x7896 +0xDEF2 0x787B +0xDEF3 0x797C +0xDEF4 0x7982 +0xDEF5 0x797D +0xDEF6 0x7979 +0xDEF7 0x7A11 +0xDEF8 0x7A18 +0xDEF9 0x7A19 +0xDEFA 0x7A12 +0xDEFB 0x7A17 +0xDEFC 0x7A15 +0xDEFD 0x7A22 +0xDEFE 0x7A13 +0xDF40 0x7A1B +0xDF41 0x7A10 +0xDF42 0x7AA3 +0xDF43 0x7AA2 +0xDF44 0x7A9E +0xDF45 0x7AEB +0xDF46 0x7B66 +0xDF47 0x7B64 +0xDF48 0x7B6D +0xDF49 0x7B74 +0xDF4A 0x7B69 +0xDF4B 0x7B72 +0xDF4C 0x7B65 +0xDF4D 0x7B73 +0xDF4E 0x7B71 +0xDF4F 0x7B70 +0xDF50 0x7B61 +0xDF51 0x7B78 +0xDF52 0x7B76 +0xDF53 0x7B63 +0xDF54 0x7CB2 +0xDF55 0x7CB4 +0xDF56 0x7CAF +0xDF57 0x7D88 +0xDF58 0x7D86 +0xDF59 0x7D80 +0xDF5A 0x7D8D +0xDF5B 0x7D7F +0xDF5C 0x7D85 +0xDF5D 0x7D7A +0xDF5E 0x7D8E +0xDF5F 0x7D7B +0xDF60 0x7D83 +0xDF61 0x7D7C +0xDF62 0x7D8C +0xDF63 0x7D94 +0xDF64 0x7D84 +0xDF65 0x7D7D +0xDF66 0x7D92 +0xDF67 0x7F6D +0xDF68 0x7F6B +0xDF69 0x7F67 +0xDF6A 0x7F68 +0xDF6B 0x7F6C +0xDF6C 0x7FA6 +0xDF6D 0x7FA5 +0xDF6E 0x7FA7 +0xDF6F 0x7FDB +0xDF70 0x7FDC +0xDF71 0x8021 +0xDF72 0x8164 +0xDF73 0x8160 +0xDF74 0x8177 +0xDF75 0x815C +0xDF76 0x8169 +0xDF77 0x815B +0xDF78 0x8162 +0xDF79 0x8172 +0xDF7A 0x6721 +0xDF7B 0x815E +0xDF7C 0x8176 +0xDF7D 0x8167 +0xDF7E 0x816F +0xDFA1 0x8144 +0xDFA2 0x8161 +0xDFA3 0x821D +0xDFA4 0x8249 +0xDFA5 0x8244 +0xDFA6 0x8240 +0xDFA7 0x8242 +0xDFA8 0x8245 +0xDFA9 0x84F1 +0xDFAA 0x843F +0xDFAB 0x8456 +0xDFAC 0x8476 +0xDFAD 0x8479 +0xDFAE 0x848F +0xDFAF 0x848D +0xDFB0 0x8465 +0xDFB1 0x8451 +0xDFB2 0x8440 +0xDFB3 0x8486 +0xDFB4 0x8467 +0xDFB5 0x8430 +0xDFB6 0x844D +0xDFB7 0x847D +0xDFB8 0x845A +0xDFB9 0x8459 +0xDFBA 0x8474 +0xDFBB 0x8473 +0xDFBC 0x845D +0xDFBD 0x8507 +0xDFBE 0x845E +0xDFBF 0x8437 +0xDFC0 0x843A +0xDFC1 0x8434 +0xDFC2 0x847A +0xDFC3 0x8443 +0xDFC4 0x8478 +0xDFC5 0x8432 +0xDFC6 0x8445 +0xDFC7 0x8429 +0xDFC8 0x83D9 +0xDFC9 0x844B +0xDFCA 0x842F +0xDFCB 0x8442 +0xDFCC 0x842D +0xDFCD 0x845F +0xDFCE 0x8470 +0xDFCF 0x8439 +0xDFD0 0x844E +0xDFD1 0x844C +0xDFD2 0x8452 +0xDFD3 0x846F +0xDFD4 0x84C5 +0xDFD5 0x848E +0xDFD6 0x843B +0xDFD7 0x8447 +0xDFD8 0x8436 +0xDFD9 0x8433 +0xDFDA 0x8468 +0xDFDB 0x847E +0xDFDC 0x8444 +0xDFDD 0x842B +0xDFDE 0x8460 +0xDFDF 0x8454 +0xDFE0 0x846E +0xDFE1 0x8450 +0xDFE2 0x870B +0xDFE3 0x8704 +0xDFE4 0x86F7 +0xDFE5 0x870C +0xDFE6 0x86FA +0xDFE7 0x86D6 +0xDFE8 0x86F5 +0xDFE9 0x874D +0xDFEA 0x86F8 +0xDFEB 0x870E +0xDFEC 0x8709 +0xDFED 0x8701 +0xDFEE 0x86F6 +0xDFEF 0x870D +0xDFF0 0x8705 +0xDFF1 0x88D6 +0xDFF2 0x88CB +0xDFF3 0x88CD +0xDFF4 0x88CE +0xDFF5 0x88DE +0xDFF6 0x88DB +0xDFF7 0x88DA +0xDFF8 0x88CC +0xDFF9 0x88D0 +0xDFFA 0x8985 +0xDFFB 0x899B +0xDFFC 0x89DF +0xDFFD 0x89E5 +0xDFFE 0x89E4 +0xE040 0x89E1 +0xE041 0x89E0 +0xE042 0x89E2 +0xE043 0x89DC +0xE044 0x89E6 +0xE045 0x8A76 +0xE046 0x8A86 +0xE047 0x8A7F +0xE048 0x8A61 +0xE049 0x8A3F +0xE04A 0x8A77 +0xE04B 0x8A82 +0xE04C 0x8A84 +0xE04D 0x8A75 +0xE04E 0x8A83 +0xE04F 0x8A81 +0xE050 0x8A74 +0xE051 0x8A7A +0xE052 0x8C3C +0xE053 0x8C4B +0xE054 0x8C4A +0xE055 0x8C65 +0xE056 0x8C64 +0xE057 0x8C66 +0xE058 0x8C86 +0xE059 0x8C84 +0xE05A 0x8C85 +0xE05B 0x8CCC +0xE05C 0x8D68 +0xE05D 0x8D69 +0xE05E 0x8D91 +0xE05F 0x8D8C +0xE060 0x8D8E +0xE061 0x8D8F +0xE062 0x8D8D +0xE063 0x8D93 +0xE064 0x8D94 +0xE065 0x8D90 +0xE066 0x8D92 +0xE067 0x8DF0 +0xE068 0x8DE0 +0xE069 0x8DEC +0xE06A 0x8DF1 +0xE06B 0x8DEE +0xE06C 0x8DD0 +0xE06D 0x8DE9 +0xE06E 0x8DE3 +0xE06F 0x8DE2 +0xE070 0x8DE7 +0xE071 0x8DF2 +0xE072 0x8DEB +0xE073 0x8DF4 +0xE074 0x8F06 +0xE075 0x8EFF +0xE076 0x8F01 +0xE077 0x8F00 +0xE078 0x8F05 +0xE079 0x8F07 +0xE07A 0x8F08 +0xE07B 0x8F02 +0xE07C 0x8F0B +0xE07D 0x9052 +0xE07E 0x903F +0xE0A1 0x9044 +0xE0A2 0x9049 +0xE0A3 0x903D +0xE0A4 0x9110 +0xE0A5 0x910D +0xE0A6 0x910F +0xE0A7 0x9111 +0xE0A8 0x9116 +0xE0A9 0x9114 +0xE0AA 0x910B +0xE0AB 0x910E +0xE0AC 0x916E +0xE0AD 0x916F +0xE0AE 0x9248 +0xE0AF 0x9252 +0xE0B0 0x9230 +0xE0B1 0x923A +0xE0B2 0x9266 +0xE0B3 0x9233 +0xE0B4 0x9265 +0xE0B5 0x925E +0xE0B6 0x9283 +0xE0B7 0x922E +0xE0B8 0x924A +0xE0B9 0x9246 +0xE0BA 0x926D +0xE0BB 0x926C +0xE0BC 0x924F +0xE0BD 0x9260 +0xE0BE 0x9267 +0xE0BF 0x926F +0xE0C0 0x9236 +0xE0C1 0x9261 +0xE0C2 0x9270 +0xE0C3 0x9231 +0xE0C4 0x9254 +0xE0C5 0x9263 +0xE0C6 0x9250 +0xE0C7 0x9272 +0xE0C8 0x924E +0xE0C9 0x9253 +0xE0CA 0x924C +0xE0CB 0x9256 +0xE0CC 0x9232 +0xE0CD 0x959F +0xE0CE 0x959C +0xE0CF 0x959E +0xE0D0 0x959B +0xE0D1 0x9692 +0xE0D2 0x9693 +0xE0D3 0x9691 +0xE0D4 0x9697 +0xE0D5 0x96CE +0xE0D6 0x96FA +0xE0D7 0x96FD +0xE0D8 0x96F8 +0xE0D9 0x96F5 +0xE0DA 0x9773 +0xE0DB 0x9777 +0xE0DC 0x9778 +0xE0DD 0x9772 +0xE0DE 0x980F +0xE0DF 0x980D +0xE0E0 0x980E +0xE0E1 0x98AC +0xE0E2 0x98F6 +0xE0E3 0x98F9 +0xE0E4 0x99AF +0xE0E5 0x99B2 +0xE0E6 0x99B0 +0xE0E7 0x99B5 +0xE0E8 0x9AAD +0xE0E9 0x9AAB +0xE0EA 0x9B5B +0xE0EB 0x9CEA +0xE0EC 0x9CED +0xE0ED 0x9CE7 +0xE0EE 0x9E80 +0xE0EF 0x9EFD +0xE0F0 0x50E6 +0xE0F1 0x50D4 +0xE0F2 0x50D7 +0xE0F3 0x50E8 +0xE0F4 0x50F3 +0xE0F5 0x50DB +0xE0F6 0x50EA +0xE0F7 0x50DD +0xE0F8 0x50E4 +0xE0F9 0x50D3 +0xE0FA 0x50EC +0xE0FB 0x50F0 +0xE0FC 0x50EF +0xE0FD 0x50E3 +0xE0FE 0x50E0 +0xE140 0x51D8 +0xE141 0x5280 +0xE142 0x5281 +0xE143 0x52E9 +0xE144 0x52EB +0xE145 0x5330 +0xE146 0x53AC +0xE147 0x5627 +0xE148 0x5615 +0xE149 0x560C +0xE14A 0x5612 +0xE14B 0x55FC +0xE14C 0x560F +0xE14D 0x561C +0xE14E 0x5601 +0xE14F 0x5613 +0xE150 0x5602 +0xE151 0x55FA +0xE152 0x561D +0xE153 0x5604 +0xE154 0x55FF +0xE155 0x55F9 +0xE156 0x5889 +0xE157 0x587C +0xE158 0x5890 +0xE159 0x5898 +0xE15A 0x5886 +0xE15B 0x5881 +0xE15C 0x587F +0xE15D 0x5874 +0xE15E 0x588B +0xE15F 0x587A +0xE160 0x5887 +0xE161 0x5891 +0xE162 0x588E +0xE163 0x5876 +0xE164 0x5882 +0xE165 0x5888 +0xE166 0x587B +0xE167 0x5894 +0xE168 0x588F +0xE169 0x58FE +0xE16A 0x596B +0xE16B 0x5ADC +0xE16C 0x5AEE +0xE16D 0x5AE5 +0xE16E 0x5AD5 +0xE16F 0x5AEA +0xE170 0x5ADA +0xE171 0x5AED +0xE172 0x5AEB +0xE173 0x5AF3 +0xE174 0x5AE2 +0xE175 0x5AE0 +0xE176 0x5ADB +0xE177 0x5AEC +0xE178 0x5ADE +0xE179 0x5ADD +0xE17A 0x5AD9 +0xE17B 0x5AE8 +0xE17C 0x5ADF +0xE17D 0x5B77 +0xE17E 0x5BE0 +0xE1A1 0x5BE3 +0xE1A2 0x5C63 +0xE1A3 0x5D82 +0xE1A4 0x5D80 +0xE1A5 0x5D7D +0xE1A6 0x5D86 +0xE1A7 0x5D7A +0xE1A8 0x5D81 +0xE1A9 0x5D77 +0xE1AA 0x5D8A +0xE1AB 0x5D89 +0xE1AC 0x5D88 +0xE1AD 0x5D7E +0xE1AE 0x5D7C +0xE1AF 0x5D8D +0xE1B0 0x5D79 +0xE1B1 0x5D7F +0xE1B2 0x5E58 +0xE1B3 0x5E59 +0xE1B4 0x5E53 +0xE1B5 0x5ED8 +0xE1B6 0x5ED1 +0xE1B7 0x5ED7 +0xE1B8 0x5ECE +0xE1B9 0x5EDC +0xE1BA 0x5ED5 +0xE1BB 0x5ED9 +0xE1BC 0x5ED2 +0xE1BD 0x5ED4 +0xE1BE 0x5F44 +0xE1BF 0x5F43 +0xE1C0 0x5F6F +0xE1C1 0x5FB6 +0xE1C2 0x612C +0xE1C3 0x6128 +0xE1C4 0x6141 +0xE1C5 0x615E +0xE1C6 0x6171 +0xE1C7 0x6173 +0xE1C8 0x6152 +0xE1C9 0x6153 +0xE1CA 0x6172 +0xE1CB 0x616C +0xE1CC 0x6180 +0xE1CD 0x6174 +0xE1CE 0x6154 +0xE1CF 0x617A +0xE1D0 0x615B +0xE1D1 0x6165 +0xE1D2 0x613B +0xE1D3 0x616A +0xE1D4 0x6161 +0xE1D5 0x6156 +0xE1D6 0x6229 +0xE1D7 0x6227 +0xE1D8 0x622B +0xE1D9 0x642B +0xE1DA 0x644D +0xE1DB 0x645B +0xE1DC 0x645D +0xE1DD 0x6474 +0xE1DE 0x6476 +0xE1DF 0x6472 +0xE1E0 0x6473 +0xE1E1 0x647D +0xE1E2 0x6475 +0xE1E3 0x6466 +0xE1E4 0x64A6 +0xE1E5 0x644E +0xE1E6 0x6482 +0xE1E7 0x645E +0xE1E8 0x645C +0xE1E9 0x644B +0xE1EA 0x6453 +0xE1EB 0x6460 +0xE1EC 0x6450 +0xE1ED 0x647F +0xE1EE 0x643F +0xE1EF 0x646C +0xE1F0 0x646B +0xE1F1 0x6459 +0xE1F2 0x6465 +0xE1F3 0x6477 +0xE1F4 0x6573 +0xE1F5 0x65A0 +0xE1F6 0x66A1 +0xE1F7 0x66A0 +0xE1F8 0x669F +0xE1F9 0x6705 +0xE1FA 0x6704 +0xE1FB 0x6722 +0xE1FC 0x69B1 +0xE1FD 0x69B6 +0xE1FE 0x69C9 +0xE240 0x69A0 +0xE241 0x69CE +0xE242 0x6996 +0xE243 0x69B0 +0xE244 0x69AC +0xE245 0x69BC +0xE246 0x6991 +0xE247 0x6999 +0xE248 0x698E +0xE249 0x69A7 +0xE24A 0x698D +0xE24B 0x69A9 +0xE24C 0x69BE +0xE24D 0x69AF +0xE24E 0x69BF +0xE24F 0x69C4 +0xE250 0x69BD +0xE251 0x69A4 +0xE252 0x69D4 +0xE253 0x69B9 +0xE254 0x69CA +0xE255 0x699A +0xE256 0x69CF +0xE257 0x69B3 +0xE258 0x6993 +0xE259 0x69AA +0xE25A 0x69A1 +0xE25B 0x699E +0xE25C 0x69D9 +0xE25D 0x6997 +0xE25E 0x6990 +0xE25F 0x69C2 +0xE260 0x69B5 +0xE261 0x69A5 +0xE262 0x69C6 +0xE263 0x6B4A +0xE264 0x6B4D +0xE265 0x6B4B +0xE266 0x6B9E +0xE267 0x6B9F +0xE268 0x6BA0 +0xE269 0x6BC3 +0xE26A 0x6BC4 +0xE26B 0x6BFE +0xE26C 0x6ECE +0xE26D 0x6EF5 +0xE26E 0x6EF1 +0xE26F 0x6F03 +0xE270 0x6F25 +0xE271 0x6EF8 +0xE272 0x6F37 +0xE273 0x6EFB +0xE274 0x6F2E +0xE275 0x6F09 +0xE276 0x6F4E +0xE277 0x6F19 +0xE278 0x6F1A +0xE279 0x6F27 +0xE27A 0x6F18 +0xE27B 0x6F3B +0xE27C 0x6F12 +0xE27D 0x6EED +0xE27E 0x6F0A +0xE2A1 0x6F36 +0xE2A2 0x6F73 +0xE2A3 0x6EF9 +0xE2A4 0x6EEE +0xE2A5 0x6F2D +0xE2A6 0x6F40 +0xE2A7 0x6F30 +0xE2A8 0x6F3C +0xE2A9 0x6F35 +0xE2AA 0x6EEB +0xE2AB 0x6F07 +0xE2AC 0x6F0E +0xE2AD 0x6F43 +0xE2AE 0x6F05 +0xE2AF 0x6EFD +0xE2B0 0x6EF6 +0xE2B1 0x6F39 +0xE2B2 0x6F1C +0xE2B3 0x6EFC +0xE2B4 0x6F3A +0xE2B5 0x6F1F +0xE2B6 0x6F0D +0xE2B7 0x6F1E +0xE2B8 0x6F08 +0xE2B9 0x6F21 +0xE2BA 0x7187 +0xE2BB 0x7190 +0xE2BC 0x7189 +0xE2BD 0x7180 +0xE2BE 0x7185 +0xE2BF 0x7182 +0xE2C0 0x718F +0xE2C1 0x717B +0xE2C2 0x7186 +0xE2C3 0x7181 +0xE2C4 0x7197 +0xE2C5 0x7244 +0xE2C6 0x7253 +0xE2C7 0x7297 +0xE2C8 0x7295 +0xE2C9 0x7293 +0xE2CA 0x7343 +0xE2CB 0x734D +0xE2CC 0x7351 +0xE2CD 0x734C +0xE2CE 0x7462 +0xE2CF 0x7473 +0xE2D0 0x7471 +0xE2D1 0x7475 +0xE2D2 0x7472 +0xE2D3 0x7467 +0xE2D4 0x746E +0xE2D5 0x7500 +0xE2D6 0x7502 +0xE2D7 0x7503 +0xE2D8 0x757D +0xE2D9 0x7590 +0xE2DA 0x7616 +0xE2DB 0x7608 +0xE2DC 0x760C +0xE2DD 0x7615 +0xE2DE 0x7611 +0xE2DF 0x760A +0xE2E0 0x7614 +0xE2E1 0x76B8 +0xE2E2 0x7781 +0xE2E3 0x777C +0xE2E4 0x7785 +0xE2E5 0x7782 +0xE2E6 0x776E +0xE2E7 0x7780 +0xE2E8 0x776F +0xE2E9 0x777E +0xE2EA 0x7783 +0xE2EB 0x78B2 +0xE2EC 0x78AA +0xE2ED 0x78B4 +0xE2EE 0x78AD +0xE2EF 0x78A8 +0xE2F0 0x787E +0xE2F1 0x78AB +0xE2F2 0x789E +0xE2F3 0x78A5 +0xE2F4 0x78A0 +0xE2F5 0x78AC +0xE2F6 0x78A2 +0xE2F7 0x78A4 +0xE2F8 0x7998 +0xE2F9 0x798A +0xE2FA 0x798B +0xE2FB 0x7996 +0xE2FC 0x7995 +0xE2FD 0x7994 +0xE2FE 0x7993 +0xE340 0x7997 +0xE341 0x7988 +0xE342 0x7992 +0xE343 0x7990 +0xE344 0x7A2B +0xE345 0x7A4A +0xE346 0x7A30 +0xE347 0x7A2F +0xE348 0x7A28 +0xE349 0x7A26 +0xE34A 0x7AA8 +0xE34B 0x7AAB +0xE34C 0x7AAC +0xE34D 0x7AEE +0xE34E 0x7B88 +0xE34F 0x7B9C +0xE350 0x7B8A +0xE351 0x7B91 +0xE352 0x7B90 +0xE353 0x7B96 +0xE354 0x7B8D +0xE355 0x7B8C +0xE356 0x7B9B +0xE357 0x7B8E +0xE358 0x7B85 +0xE359 0x7B98 +0xE35A 0x5284 +0xE35B 0x7B99 +0xE35C 0x7BA4 +0xE35D 0x7B82 +0xE35E 0x7CBB +0xE35F 0x7CBF +0xE360 0x7CBC +0xE361 0x7CBA +0xE362 0x7DA7 +0xE363 0x7DB7 +0xE364 0x7DC2 +0xE365 0x7DA3 +0xE366 0x7DAA +0xE367 0x7DC1 +0xE368 0x7DC0 +0xE369 0x7DC5 +0xE36A 0x7D9D +0xE36B 0x7DCE +0xE36C 0x7DC4 +0xE36D 0x7DC6 +0xE36E 0x7DCB +0xE36F 0x7DCC +0xE370 0x7DAF +0xE371 0x7DB9 +0xE372 0x7D96 +0xE373 0x7DBC +0xE374 0x7D9F +0xE375 0x7DA6 +0xE376 0x7DAE +0xE377 0x7DA9 +0xE378 0x7DA1 +0xE379 0x7DC9 +0xE37A 0x7F73 +0xE37B 0x7FE2 +0xE37C 0x7FE3 +0xE37D 0x7FE5 +0xE37E 0x7FDE +0xE3A1 0x8024 +0xE3A2 0x805D +0xE3A3 0x805C +0xE3A4 0x8189 +0xE3A5 0x8186 +0xE3A6 0x8183 +0xE3A7 0x8187 +0xE3A8 0x818D +0xE3A9 0x818C +0xE3AA 0x818B +0xE3AB 0x8215 +0xE3AC 0x8497 +0xE3AD 0x84A4 +0xE3AE 0x84A1 +0xE3AF 0x849F +0xE3B0 0x84BA +0xE3B1 0x84CE +0xE3B2 0x84C2 +0xE3B3 0x84AC +0xE3B4 0x84AE +0xE3B5 0x84AB +0xE3B6 0x84B9 +0xE3B7 0x84B4 +0xE3B8 0x84C1 +0xE3B9 0x84CD +0xE3BA 0x84AA +0xE3BB 0x849A +0xE3BC 0x84B1 +0xE3BD 0x84D0 +0xE3BE 0x849D +0xE3BF 0x84A7 +0xE3C0 0x84BB +0xE3C1 0x84A2 +0xE3C2 0x8494 +0xE3C3 0x84C7 +0xE3C4 0x84CC +0xE3C5 0x849B +0xE3C6 0x84A9 +0xE3C7 0x84AF +0xE3C8 0x84A8 +0xE3C9 0x84D6 +0xE3CA 0x8498 +0xE3CB 0x84B6 +0xE3CC 0x84CF +0xE3CD 0x84A0 +0xE3CE 0x84D7 +0xE3CF 0x84D4 +0xE3D0 0x84D2 +0xE3D1 0x84DB +0xE3D2 0x84B0 +0xE3D3 0x8491 +0xE3D4 0x8661 +0xE3D5 0x8733 +0xE3D6 0x8723 +0xE3D7 0x8728 +0xE3D8 0x876B +0xE3D9 0x8740 +0xE3DA 0x872E +0xE3DB 0x871E +0xE3DC 0x8721 +0xE3DD 0x8719 +0xE3DE 0x871B +0xE3DF 0x8743 +0xE3E0 0x872C +0xE3E1 0x8741 +0xE3E2 0x873E +0xE3E3 0x8746 +0xE3E4 0x8720 +0xE3E5 0x8732 +0xE3E6 0x872A +0xE3E7 0x872D +0xE3E8 0x873C +0xE3E9 0x8712 +0xE3EA 0x873A +0xE3EB 0x8731 +0xE3EC 0x8735 +0xE3ED 0x8742 +0xE3EE 0x8726 +0xE3EF 0x8727 +0xE3F0 0x8738 +0xE3F1 0x8724 +0xE3F2 0x871A +0xE3F3 0x8730 +0xE3F4 0x8711 +0xE3F5 0x88F7 +0xE3F6 0x88E7 +0xE3F7 0x88F1 +0xE3F8 0x88F2 +0xE3F9 0x88FA +0xE3FA 0x88FE +0xE3FB 0x88EE +0xE3FC 0x88FC +0xE3FD 0x88F6 +0xE3FE 0x88FB +0xE440 0x88F0 +0xE441 0x88EC +0xE442 0x88EB +0xE443 0x899D +0xE444 0x89A1 +0xE445 0x899F +0xE446 0x899E +0xE447 0x89E9 +0xE448 0x89EB +0xE449 0x89E8 +0xE44A 0x8AAB +0xE44B 0x8A99 +0xE44C 0x8A8B +0xE44D 0x8A92 +0xE44E 0x8A8F +0xE44F 0x8A96 +0xE450 0x8C3D +0xE451 0x8C68 +0xE452 0x8C69 +0xE453 0x8CD5 +0xE454 0x8CCF +0xE455 0x8CD7 +0xE456 0x8D96 +0xE457 0x8E09 +0xE458 0x8E02 +0xE459 0x8DFF +0xE45A 0x8E0D +0xE45B 0x8DFD +0xE45C 0x8E0A +0xE45D 0x8E03 +0xE45E 0x8E07 +0xE45F 0x8E06 +0xE460 0x8E05 +0xE461 0x8DFE +0xE462 0x8E00 +0xE463 0x8E04 +0xE464 0x8F10 +0xE465 0x8F11 +0xE466 0x8F0E +0xE467 0x8F0D +0xE468 0x9123 +0xE469 0x911C +0xE46A 0x9120 +0xE46B 0x9122 +0xE46C 0x911F +0xE46D 0x911D +0xE46E 0x911A +0xE46F 0x9124 +0xE470 0x9121 +0xE471 0x911B +0xE472 0x917A +0xE473 0x9172 +0xE474 0x9179 +0xE475 0x9173 +0xE476 0x92A5 +0xE477 0x92A4 +0xE478 0x9276 +0xE479 0x929B +0xE47A 0x927A +0xE47B 0x92A0 +0xE47C 0x9294 +0xE47D 0x92AA +0xE47E 0x928D +0xE4A1 0x92A6 +0xE4A2 0x929A +0xE4A3 0x92AB +0xE4A4 0x9279 +0xE4A5 0x9297 +0xE4A6 0x927F +0xE4A7 0x92A3 +0xE4A8 0x92EE +0xE4A9 0x928E +0xE4AA 0x9282 +0xE4AB 0x9295 +0xE4AC 0x92A2 +0xE4AD 0x927D +0xE4AE 0x9288 +0xE4AF 0x92A1 +0xE4B0 0x928A +0xE4B1 0x9286 +0xE4B2 0x928C +0xE4B3 0x9299 +0xE4B4 0x92A7 +0xE4B5 0x927E +0xE4B6 0x9287 +0xE4B7 0x92A9 +0xE4B8 0x929D +0xE4B9 0x928B +0xE4BA 0x922D +0xE4BB 0x969E +0xE4BC 0x96A1 +0xE4BD 0x96FF +0xE4BE 0x9758 +0xE4BF 0x977D +0xE4C0 0x977A +0xE4C1 0x977E +0xE4C2 0x9783 +0xE4C3 0x9780 +0xE4C4 0x9782 +0xE4C5 0x977B +0xE4C6 0x9784 +0xE4C7 0x9781 +0xE4C8 0x977F +0xE4C9 0x97CE +0xE4CA 0x97CD +0xE4CB 0x9816 +0xE4CC 0x98AD +0xE4CD 0x98AE +0xE4CE 0x9902 +0xE4CF 0x9900 +0xE4D0 0x9907 +0xE4D1 0x999D +0xE4D2 0x999C +0xE4D3 0x99C3 +0xE4D4 0x99B9 +0xE4D5 0x99BB +0xE4D6 0x99BA +0xE4D7 0x99C2 +0xE4D8 0x99BD +0xE4D9 0x99C7 +0xE4DA 0x9AB1 +0xE4DB 0x9AE3 +0xE4DC 0x9AE7 +0xE4DD 0x9B3E +0xE4DE 0x9B3F +0xE4DF 0x9B60 +0xE4E0 0x9B61 +0xE4E1 0x9B5F +0xE4E2 0x9CF1 +0xE4E3 0x9CF2 +0xE4E4 0x9CF5 +0xE4E5 0x9EA7 +0xE4E6 0x50FF +0xE4E7 0x5103 +0xE4E8 0x5130 +0xE4E9 0x50F8 +0xE4EA 0x5106 +0xE4EB 0x5107 +0xE4EC 0x50F6 +0xE4ED 0x50FE +0xE4EE 0x510B +0xE4EF 0x510C +0xE4F0 0x50FD +0xE4F1 0x510A +0xE4F2 0x528B +0xE4F3 0x528C +0xE4F4 0x52F1 +0xE4F5 0x52EF +0xE4F6 0x5648 +0xE4F7 0x5642 +0xE4F8 0x564C +0xE4F9 0x5635 +0xE4FA 0x5641 +0xE4FB 0x564A +0xE4FC 0x5649 +0xE4FD 0x5646 +0xE4FE 0x5658 +0xE540 0x565A +0xE541 0x5640 +0xE542 0x5633 +0xE543 0x563D +0xE544 0x562C +0xE545 0x563E +0xE546 0x5638 +0xE547 0x562A +0xE548 0x563A +0xE549 0x571A +0xE54A 0x58AB +0xE54B 0x589D +0xE54C 0x58B1 +0xE54D 0x58A0 +0xE54E 0x58A3 +0xE54F 0x58AF +0xE550 0x58AC +0xE551 0x58A5 +0xE552 0x58A1 +0xE553 0x58FF +0xE554 0x5AFF +0xE555 0x5AF4 +0xE556 0x5AFD +0xE557 0x5AF7 +0xE558 0x5AF6 +0xE559 0x5B03 +0xE55A 0x5AF8 +0xE55B 0x5B02 +0xE55C 0x5AF9 +0xE55D 0x5B01 +0xE55E 0x5B07 +0xE55F 0x5B05 +0xE560 0x5B0F +0xE561 0x5C67 +0xE562 0x5D99 +0xE563 0x5D97 +0xE564 0x5D9F +0xE565 0x5D92 +0xE566 0x5DA2 +0xE567 0x5D93 +0xE568 0x5D95 +0xE569 0x5DA0 +0xE56A 0x5D9C +0xE56B 0x5DA1 +0xE56C 0x5D9A +0xE56D 0x5D9E +0xE56E 0x5E69 +0xE56F 0x5E5D +0xE570 0x5E60 +0xE571 0x5E5C +0xE572 0x7DF3 +0xE573 0x5EDB +0xE574 0x5EDE +0xE575 0x5EE1 +0xE576 0x5F49 +0xE577 0x5FB2 +0xE578 0x618B +0xE579 0x6183 +0xE57A 0x6179 +0xE57B 0x61B1 +0xE57C 0x61B0 +0xE57D 0x61A2 +0xE57E 0x6189 +0xE5A1 0x619B +0xE5A2 0x6193 +0xE5A3 0x61AF +0xE5A4 0x61AD +0xE5A5 0x619F +0xE5A6 0x6192 +0xE5A7 0x61AA +0xE5A8 0x61A1 +0xE5A9 0x618D +0xE5AA 0x6166 +0xE5AB 0x61B3 +0xE5AC 0x622D +0xE5AD 0x646E +0xE5AE 0x6470 +0xE5AF 0x6496 +0xE5B0 0x64A0 +0xE5B1 0x6485 +0xE5B2 0x6497 +0xE5B3 0x649C +0xE5B4 0x648F +0xE5B5 0x648B +0xE5B6 0x648A +0xE5B7 0x648C +0xE5B8 0x64A3 +0xE5B9 0x649F +0xE5BA 0x6468 +0xE5BB 0x64B1 +0xE5BC 0x6498 +0xE5BD 0x6576 +0xE5BE 0x657A +0xE5BF 0x6579 +0xE5C0 0x657B +0xE5C1 0x65B2 +0xE5C2 0x65B3 +0xE5C3 0x66B5 +0xE5C4 0x66B0 +0xE5C5 0x66A9 +0xE5C6 0x66B2 +0xE5C7 0x66B7 +0xE5C8 0x66AA +0xE5C9 0x66AF +0xE5CA 0x6A00 +0xE5CB 0x6A06 +0xE5CC 0x6A17 +0xE5CD 0x69E5 +0xE5CE 0x69F8 +0xE5CF 0x6A15 +0xE5D0 0x69F1 +0xE5D1 0x69E4 +0xE5D2 0x6A20 +0xE5D3 0x69FF +0xE5D4 0x69EC +0xE5D5 0x69E2 +0xE5D6 0x6A1B +0xE5D7 0x6A1D +0xE5D8 0x69FE +0xE5D9 0x6A27 +0xE5DA 0x69F2 +0xE5DB 0x69EE +0xE5DC 0x6A14 +0xE5DD 0x69F7 +0xE5DE 0x69E7 +0xE5DF 0x6A40 +0xE5E0 0x6A08 +0xE5E1 0x69E6 +0xE5E2 0x69FB +0xE5E3 0x6A0D +0xE5E4 0x69FC +0xE5E5 0x69EB +0xE5E6 0x6A09 +0xE5E7 0x6A04 +0xE5E8 0x6A18 +0xE5E9 0x6A25 +0xE5EA 0x6A0F +0xE5EB 0x69F6 +0xE5EC 0x6A26 +0xE5ED 0x6A07 +0xE5EE 0x69F4 +0xE5EF 0x6A16 +0xE5F0 0x6B51 +0xE5F1 0x6BA5 +0xE5F2 0x6BA3 +0xE5F3 0x6BA2 +0xE5F4 0x6BA6 +0xE5F5 0x6C01 +0xE5F6 0x6C00 +0xE5F7 0x6BFF +0xE5F8 0x6C02 +0xE5F9 0x6F41 +0xE5FA 0x6F26 +0xE5FB 0x6F7E +0xE5FC 0x6F87 +0xE5FD 0x6FC6 +0xE5FE 0x6F92 +0xE640 0x6F8D +0xE641 0x6F89 +0xE642 0x6F8C +0xE643 0x6F62 +0xE644 0x6F4F +0xE645 0x6F85 +0xE646 0x6F5A +0xE647 0x6F96 +0xE648 0x6F76 +0xE649 0x6F6C +0xE64A 0x6F82 +0xE64B 0x6F55 +0xE64C 0x6F72 +0xE64D 0x6F52 +0xE64E 0x6F50 +0xE64F 0x6F57 +0xE650 0x6F94 +0xE651 0x6F93 +0xE652 0x6F5D +0xE653 0x6F00 +0xE654 0x6F61 +0xE655 0x6F6B +0xE656 0x6F7D +0xE657 0x6F67 +0xE658 0x6F90 +0xE659 0x6F53 +0xE65A 0x6F8B +0xE65B 0x6F69 +0xE65C 0x6F7F +0xE65D 0x6F95 +0xE65E 0x6F63 +0xE65F 0x6F77 +0xE660 0x6F6A +0xE661 0x6F7B +0xE662 0x71B2 +0xE663 0x71AF +0xE664 0x719B +0xE665 0x71B0 +0xE666 0x71A0 +0xE667 0x719A +0xE668 0x71A9 +0xE669 0x71B5 +0xE66A 0x719D +0xE66B 0x71A5 +0xE66C 0x719E +0xE66D 0x71A4 +0xE66E 0x71A1 +0xE66F 0x71AA +0xE670 0x719C +0xE671 0x71A7 +0xE672 0x71B3 +0xE673 0x7298 +0xE674 0x729A +0xE675 0x7358 +0xE676 0x7352 +0xE677 0x735E +0xE678 0x735F +0xE679 0x7360 +0xE67A 0x735D +0xE67B 0x735B +0xE67C 0x7361 +0xE67D 0x735A +0xE67E 0x7359 +0xE6A1 0x7362 +0xE6A2 0x7487 +0xE6A3 0x7489 +0xE6A4 0x748A +0xE6A5 0x7486 +0xE6A6 0x7481 +0xE6A7 0x747D +0xE6A8 0x7485 +0xE6A9 0x7488 +0xE6AA 0x747C +0xE6AB 0x7479 +0xE6AC 0x7508 +0xE6AD 0x7507 +0xE6AE 0x757E +0xE6AF 0x7625 +0xE6B0 0x761E +0xE6B1 0x7619 +0xE6B2 0x761D +0xE6B3 0x761C +0xE6B4 0x7623 +0xE6B5 0x761A +0xE6B6 0x7628 +0xE6B7 0x761B +0xE6B8 0x769C +0xE6B9 0x769D +0xE6BA 0x769E +0xE6BB 0x769B +0xE6BC 0x778D +0xE6BD 0x778F +0xE6BE 0x7789 +0xE6BF 0x7788 +0xE6C0 0x78CD +0xE6C1 0x78BB +0xE6C2 0x78CF +0xE6C3 0x78CC +0xE6C4 0x78D1 +0xE6C5 0x78CE +0xE6C6 0x78D4 +0xE6C7 0x78C8 +0xE6C8 0x78C3 +0xE6C9 0x78C4 +0xE6CA 0x78C9 +0xE6CB 0x799A +0xE6CC 0x79A1 +0xE6CD 0x79A0 +0xE6CE 0x799C +0xE6CF 0x79A2 +0xE6D0 0x799B +0xE6D1 0x6B76 +0xE6D2 0x7A39 +0xE6D3 0x7AB2 +0xE6D4 0x7AB4 +0xE6D5 0x7AB3 +0xE6D6 0x7BB7 +0xE6D7 0x7BCB +0xE6D8 0x7BBE +0xE6D9 0x7BAC +0xE6DA 0x7BCE +0xE6DB 0x7BAF +0xE6DC 0x7BB9 +0xE6DD 0x7BCA +0xE6DE 0x7BB5 +0xE6DF 0x7CC5 +0xE6E0 0x7CC8 +0xE6E1 0x7CCC +0xE6E2 0x7CCB +0xE6E3 0x7DF7 +0xE6E4 0x7DDB +0xE6E5 0x7DEA +0xE6E6 0x7DE7 +0xE6E7 0x7DD7 +0xE6E8 0x7DE1 +0xE6E9 0x7E03 +0xE6EA 0x7DFA +0xE6EB 0x7DE6 +0xE6EC 0x7DF6 +0xE6ED 0x7DF1 +0xE6EE 0x7DF0 +0xE6EF 0x7DEE +0xE6F0 0x7DDF +0xE6F1 0x7F76 +0xE6F2 0x7FAC +0xE6F3 0x7FB0 +0xE6F4 0x7FAD +0xE6F5 0x7FED +0xE6F6 0x7FEB +0xE6F7 0x7FEA +0xE6F8 0x7FEC +0xE6F9 0x7FE6 +0xE6FA 0x7FE8 +0xE6FB 0x8064 +0xE6FC 0x8067 +0xE6FD 0x81A3 +0xE6FE 0x819F +0xE740 0x819E +0xE741 0x8195 +0xE742 0x81A2 +0xE743 0x8199 +0xE744 0x8197 +0xE745 0x8216 +0xE746 0x824F +0xE747 0x8253 +0xE748 0x8252 +0xE749 0x8250 +0xE74A 0x824E +0xE74B 0x8251 +0xE74C 0x8524 +0xE74D 0x853B +0xE74E 0x850F +0xE74F 0x8500 +0xE750 0x8529 +0xE751 0x850E +0xE752 0x8509 +0xE753 0x850D +0xE754 0x851F +0xE755 0x850A +0xE756 0x8527 +0xE757 0x851C +0xE758 0x84FB +0xE759 0x852B +0xE75A 0x84FA +0xE75B 0x8508 +0xE75C 0x850C +0xE75D 0x84F4 +0xE75E 0x852A +0xE75F 0x84F2 +0xE760 0x8515 +0xE761 0x84F7 +0xE762 0x84EB +0xE763 0x84F3 +0xE764 0x84FC +0xE765 0x8512 +0xE766 0x84EA +0xE767 0x84E9 +0xE768 0x8516 +0xE769 0x84FE +0xE76A 0x8528 +0xE76B 0x851D +0xE76C 0x852E +0xE76D 0x8502 +0xE76E 0x84FD +0xE76F 0x851E +0xE770 0x84F6 +0xE771 0x8531 +0xE772 0x8526 +0xE773 0x84E7 +0xE774 0x84E8 +0xE775 0x84F0 +0xE776 0x84EF +0xE777 0x84F9 +0xE778 0x8518 +0xE779 0x8520 +0xE77A 0x8530 +0xE77B 0x850B +0xE77C 0x8519 +0xE77D 0x852F +0xE77E 0x8662 +0xE7A1 0x8756 +0xE7A2 0x8763 +0xE7A3 0x8764 +0xE7A4 0x8777 +0xE7A5 0x87E1 +0xE7A6 0x8773 +0xE7A7 0x8758 +0xE7A8 0x8754 +0xE7A9 0x875B +0xE7AA 0x8752 +0xE7AB 0x8761 +0xE7AC 0x875A +0xE7AD 0x8751 +0xE7AE 0x875E +0xE7AF 0x876D +0xE7B0 0x876A +0xE7B1 0x8750 +0xE7B2 0x874E +0xE7B3 0x875F +0xE7B4 0x875D +0xE7B5 0x876F +0xE7B6 0x876C +0xE7B7 0x877A +0xE7B8 0x876E +0xE7B9 0x875C +0xE7BA 0x8765 +0xE7BB 0x874F +0xE7BC 0x877B +0xE7BD 0x8775 +0xE7BE 0x8762 +0xE7BF 0x8767 +0xE7C0 0x8769 +0xE7C1 0x885A +0xE7C2 0x8905 +0xE7C3 0x890C +0xE7C4 0x8914 +0xE7C5 0x890B +0xE7C6 0x8917 +0xE7C7 0x8918 +0xE7C8 0x8919 +0xE7C9 0x8906 +0xE7CA 0x8916 +0xE7CB 0x8911 +0xE7CC 0x890E +0xE7CD 0x8909 +0xE7CE 0x89A2 +0xE7CF 0x89A4 +0xE7D0 0x89A3 +0xE7D1 0x89ED +0xE7D2 0x89F0 +0xE7D3 0x89EC +0xE7D4 0x8ACF +0xE7D5 0x8AC6 +0xE7D6 0x8AB8 +0xE7D7 0x8AD3 +0xE7D8 0x8AD1 +0xE7D9 0x8AD4 +0xE7DA 0x8AD5 +0xE7DB 0x8ABB +0xE7DC 0x8AD7 +0xE7DD 0x8ABE +0xE7DE 0x8AC0 +0xE7DF 0x8AC5 +0xE7E0 0x8AD8 +0xE7E1 0x8AC3 +0xE7E2 0x8ABA +0xE7E3 0x8ABD +0xE7E4 0x8AD9 +0xE7E5 0x8C3E +0xE7E6 0x8C4D +0xE7E7 0x8C8F +0xE7E8 0x8CE5 +0xE7E9 0x8CDF +0xE7EA 0x8CD9 +0xE7EB 0x8CE8 +0xE7EC 0x8CDA +0xE7ED 0x8CDD +0xE7EE 0x8CE7 +0xE7EF 0x8DA0 +0xE7F0 0x8D9C +0xE7F1 0x8DA1 +0xE7F2 0x8D9B +0xE7F3 0x8E20 +0xE7F4 0x8E23 +0xE7F5 0x8E25 +0xE7F6 0x8E24 +0xE7F7 0x8E2E +0xE7F8 0x8E15 +0xE7F9 0x8E1B +0xE7FA 0x8E16 +0xE7FB 0x8E11 +0xE7FC 0x8E19 +0xE7FD 0x8E26 +0xE7FE 0x8E27 +0xE840 0x8E14 +0xE841 0x8E12 +0xE842 0x8E18 +0xE843 0x8E13 +0xE844 0x8E1C +0xE845 0x8E17 +0xE846 0x8E1A +0xE847 0x8F2C +0xE848 0x8F24 +0xE849 0x8F18 +0xE84A 0x8F1A +0xE84B 0x8F20 +0xE84C 0x8F23 +0xE84D 0x8F16 +0xE84E 0x8F17 +0xE84F 0x9073 +0xE850 0x9070 +0xE851 0x906F +0xE852 0x9067 +0xE853 0x906B +0xE854 0x912F +0xE855 0x912B +0xE856 0x9129 +0xE857 0x912A +0xE858 0x9132 +0xE859 0x9126 +0xE85A 0x912E +0xE85B 0x9185 +0xE85C 0x9186 +0xE85D 0x918A +0xE85E 0x9181 +0xE85F 0x9182 +0xE860 0x9184 +0xE861 0x9180 +0xE862 0x92D0 +0xE863 0x92C3 +0xE864 0x92C4 +0xE865 0x92C0 +0xE866 0x92D9 +0xE867 0x92B6 +0xE868 0x92CF +0xE869 0x92F1 +0xE86A 0x92DF +0xE86B 0x92D8 +0xE86C 0x92E9 +0xE86D 0x92D7 +0xE86E 0x92DD +0xE86F 0x92CC +0xE870 0x92EF +0xE871 0x92C2 +0xE872 0x92E8 +0xE873 0x92CA +0xE874 0x92C8 +0xE875 0x92CE +0xE876 0x92E6 +0xE877 0x92CD +0xE878 0x92D5 +0xE879 0x92C9 +0xE87A 0x92E0 +0xE87B 0x92DE +0xE87C 0x92E7 +0xE87D 0x92D1 +0xE87E 0x92D3 +0xE8A1 0x92B5 +0xE8A2 0x92E1 +0xE8A3 0x92C6 +0xE8A4 0x92B4 +0xE8A5 0x957C +0xE8A6 0x95AC +0xE8A7 0x95AB +0xE8A8 0x95AE +0xE8A9 0x95B0 +0xE8AA 0x96A4 +0xE8AB 0x96A2 +0xE8AC 0x96D3 +0xE8AD 0x9705 +0xE8AE 0x9708 +0xE8AF 0x9702 +0xE8B0 0x975A +0xE8B1 0x978A +0xE8B2 0x978E +0xE8B3 0x9788 +0xE8B4 0x97D0 +0xE8B5 0x97CF +0xE8B6 0x981E +0xE8B7 0x981D +0xE8B8 0x9826 +0xE8B9 0x9829 +0xE8BA 0x9828 +0xE8BB 0x9820 +0xE8BC 0x981B +0xE8BD 0x9827 +0xE8BE 0x98B2 +0xE8BF 0x9908 +0xE8C0 0x98FA +0xE8C1 0x9911 +0xE8C2 0x9914 +0xE8C3 0x9916 +0xE8C4 0x9917 +0xE8C5 0x9915 +0xE8C6 0x99DC +0xE8C7 0x99CD +0xE8C8 0x99CF +0xE8C9 0x99D3 +0xE8CA 0x99D4 +0xE8CB 0x99CE +0xE8CC 0x99C9 +0xE8CD 0x99D6 +0xE8CE 0x99D8 +0xE8CF 0x99CB +0xE8D0 0x99D7 +0xE8D1 0x99CC +0xE8D2 0x9AB3 +0xE8D3 0x9AEC +0xE8D4 0x9AEB +0xE8D5 0x9AF3 +0xE8D6 0x9AF2 +0xE8D7 0x9AF1 +0xE8D8 0x9B46 +0xE8D9 0x9B43 +0xE8DA 0x9B67 +0xE8DB 0x9B74 +0xE8DC 0x9B71 +0xE8DD 0x9B66 +0xE8DE 0x9B76 +0xE8DF 0x9B75 +0xE8E0 0x9B70 +0xE8E1 0x9B68 +0xE8E2 0x9B64 +0xE8E3 0x9B6C +0xE8E4 0x9CFC +0xE8E5 0x9CFA +0xE8E6 0x9CFD +0xE8E7 0x9CFF +0xE8E8 0x9CF7 +0xE8E9 0x9D07 +0xE8EA 0x9D00 +0xE8EB 0x9CF9 +0xE8EC 0x9CFB +0xE8ED 0x9D08 +0xE8EE 0x9D05 +0xE8EF 0x9D04 +0xE8F0 0x9E83 +0xE8F1 0x9ED3 +0xE8F2 0x9F0F +0xE8F3 0x9F10 +0xE8F4 0x511C +0xE8F5 0x5113 +0xE8F6 0x5117 +0xE8F7 0x511A +0xE8F8 0x5111 +0xE8F9 0x51DE +0xE8FA 0x5334 +0xE8FB 0x53E1 +0xE8FC 0x5670 +0xE8FD 0x5660 +0xE8FE 0x566E +0xE940 0x5673 +0xE941 0x5666 +0xE942 0x5663 +0xE943 0x566D +0xE944 0x5672 +0xE945 0x565E +0xE946 0x5677 +0xE947 0x571C +0xE948 0x571B +0xE949 0x58C8 +0xE94A 0x58BD +0xE94B 0x58C9 +0xE94C 0x58BF +0xE94D 0x58BA +0xE94E 0x58C2 +0xE94F 0x58BC +0xE950 0x58C6 +0xE951 0x5B17 +0xE952 0x5B19 +0xE953 0x5B1B +0xE954 0x5B21 +0xE955 0x5B14 +0xE956 0x5B13 +0xE957 0x5B10 +0xE958 0x5B16 +0xE959 0x5B28 +0xE95A 0x5B1A +0xE95B 0x5B20 +0xE95C 0x5B1E +0xE95D 0x5BEF +0xE95E 0x5DAC +0xE95F 0x5DB1 +0xE960 0x5DA9 +0xE961 0x5DA7 +0xE962 0x5DB5 +0xE963 0x5DB0 +0xE964 0x5DAE +0xE965 0x5DAA +0xE966 0x5DA8 +0xE967 0x5DB2 +0xE968 0x5DAD +0xE969 0x5DAF +0xE96A 0x5DB4 +0xE96B 0x5E67 +0xE96C 0x5E68 +0xE96D 0x5E66 +0xE96E 0x5E6F +0xE96F 0x5EE9 +0xE970 0x5EE7 +0xE971 0x5EE6 +0xE972 0x5EE8 +0xE973 0x5EE5 +0xE974 0x5F4B +0xE975 0x5FBC +0xE976 0x619D +0xE977 0x61A8 +0xE978 0x6196 +0xE979 0x61C5 +0xE97A 0x61B4 +0xE97B 0x61C6 +0xE97C 0x61C1 +0xE97D 0x61CC +0xE97E 0x61BA +0xE9A1 0x61BF +0xE9A2 0x61B8 +0xE9A3 0x618C +0xE9A4 0x64D7 +0xE9A5 0x64D6 +0xE9A6 0x64D0 +0xE9A7 0x64CF +0xE9A8 0x64C9 +0xE9A9 0x64BD +0xE9AA 0x6489 +0xE9AB 0x64C3 +0xE9AC 0x64DB +0xE9AD 0x64F3 +0xE9AE 0x64D9 +0xE9AF 0x6533 +0xE9B0 0x657F +0xE9B1 0x657C +0xE9B2 0x65A2 +0xE9B3 0x66C8 +0xE9B4 0x66BE +0xE9B5 0x66C0 +0xE9B6 0x66CA +0xE9B7 0x66CB +0xE9B8 0x66CF +0xE9B9 0x66BD +0xE9BA 0x66BB +0xE9BB 0x66BA +0xE9BC 0x66CC +0xE9BD 0x6723 +0xE9BE 0x6A34 +0xE9BF 0x6A66 +0xE9C0 0x6A49 +0xE9C1 0x6A67 +0xE9C2 0x6A32 +0xE9C3 0x6A68 +0xE9C4 0x6A3E +0xE9C5 0x6A5D +0xE9C6 0x6A6D +0xE9C7 0x6A76 +0xE9C8 0x6A5B +0xE9C9 0x6A51 +0xE9CA 0x6A28 +0xE9CB 0x6A5A +0xE9CC 0x6A3B +0xE9CD 0x6A3F +0xE9CE 0x6A41 +0xE9CF 0x6A6A +0xE9D0 0x6A64 +0xE9D1 0x6A50 +0xE9D2 0x6A4F +0xE9D3 0x6A54 +0xE9D4 0x6A6F +0xE9D5 0x6A69 +0xE9D6 0x6A60 +0xE9D7 0x6A3C +0xE9D8 0x6A5E +0xE9D9 0x6A56 +0xE9DA 0x6A55 +0xE9DB 0x6A4D +0xE9DC 0x6A4E +0xE9DD 0x6A46 +0xE9DE 0x6B55 +0xE9DF 0x6B54 +0xE9E0 0x6B56 +0xE9E1 0x6BA7 +0xE9E2 0x6BAA +0xE9E3 0x6BAB +0xE9E4 0x6BC8 +0xE9E5 0x6BC7 +0xE9E6 0x6C04 +0xE9E7 0x6C03 +0xE9E8 0x6C06 +0xE9E9 0x6FAD +0xE9EA 0x6FCB +0xE9EB 0x6FA3 +0xE9EC 0x6FC7 +0xE9ED 0x6FBC +0xE9EE 0x6FCE +0xE9EF 0x6FC8 +0xE9F0 0x6F5E +0xE9F1 0x6FC4 +0xE9F2 0x6FBD +0xE9F3 0x6F9E +0xE9F4 0x6FCA +0xE9F5 0x6FA8 +0xE9F6 0x7004 +0xE9F7 0x6FA5 +0xE9F8 0x6FAE +0xE9F9 0x6FBA +0xE9FA 0x6FAC +0xE9FB 0x6FAA +0xE9FC 0x6FCF +0xE9FD 0x6FBF +0xE9FE 0x6FB8 +0xEA40 0x6FA2 +0xEA41 0x6FC9 +0xEA42 0x6FAB +0xEA43 0x6FCD +0xEA44 0x6FAF +0xEA45 0x6FB2 +0xEA46 0x6FB0 +0xEA47 0x71C5 +0xEA48 0x71C2 +0xEA49 0x71BF +0xEA4A 0x71B8 +0xEA4B 0x71D6 +0xEA4C 0x71C0 +0xEA4D 0x71C1 +0xEA4E 0x71CB +0xEA4F 0x71D4 +0xEA50 0x71CA +0xEA51 0x71C7 +0xEA52 0x71CF +0xEA53 0x71BD +0xEA54 0x71D8 +0xEA55 0x71BC +0xEA56 0x71C6 +0xEA57 0x71DA +0xEA58 0x71DB +0xEA59 0x729D +0xEA5A 0x729E +0xEA5B 0x7369 +0xEA5C 0x7366 +0xEA5D 0x7367 +0xEA5E 0x736C +0xEA5F 0x7365 +0xEA60 0x736B +0xEA61 0x736A +0xEA62 0x747F +0xEA63 0x749A +0xEA64 0x74A0 +0xEA65 0x7494 +0xEA66 0x7492 +0xEA67 0x7495 +0xEA68 0x74A1 +0xEA69 0x750B +0xEA6A 0x7580 +0xEA6B 0x762F +0xEA6C 0x762D +0xEA6D 0x7631 +0xEA6E 0x763D +0xEA6F 0x7633 +0xEA70 0x763C +0xEA71 0x7635 +0xEA72 0x7632 +0xEA73 0x7630 +0xEA74 0x76BB +0xEA75 0x76E6 +0xEA76 0x779A +0xEA77 0x779D +0xEA78 0x77A1 +0xEA79 0x779C +0xEA7A 0x779B +0xEA7B 0x77A2 +0xEA7C 0x77A3 +0xEA7D 0x7795 +0xEA7E 0x7799 +0xEAA1 0x7797 +0xEAA2 0x78DD +0xEAA3 0x78E9 +0xEAA4 0x78E5 +0xEAA5 0x78EA +0xEAA6 0x78DE +0xEAA7 0x78E3 +0xEAA8 0x78DB +0xEAA9 0x78E1 +0xEAAA 0x78E2 +0xEAAB 0x78ED +0xEAAC 0x78DF +0xEAAD 0x78E0 +0xEAAE 0x79A4 +0xEAAF 0x7A44 +0xEAB0 0x7A48 +0xEAB1 0x7A47 +0xEAB2 0x7AB6 +0xEAB3 0x7AB8 +0xEAB4 0x7AB5 +0xEAB5 0x7AB1 +0xEAB6 0x7AB7 +0xEAB7 0x7BDE +0xEAB8 0x7BE3 +0xEAB9 0x7BE7 +0xEABA 0x7BDD +0xEABB 0x7BD5 +0xEABC 0x7BE5 +0xEABD 0x7BDA +0xEABE 0x7BE8 +0xEABF 0x7BF9 +0xEAC0 0x7BD4 +0xEAC1 0x7BEA +0xEAC2 0x7BE2 +0xEAC3 0x7BDC +0xEAC4 0x7BEB +0xEAC5 0x7BD8 +0xEAC6 0x7BDF +0xEAC7 0x7CD2 +0xEAC8 0x7CD4 +0xEAC9 0x7CD7 +0xEACA 0x7CD0 +0xEACB 0x7CD1 +0xEACC 0x7E12 +0xEACD 0x7E21 +0xEACE 0x7E17 +0xEACF 0x7E0C +0xEAD0 0x7E1F +0xEAD1 0x7E20 +0xEAD2 0x7E13 +0xEAD3 0x7E0E +0xEAD4 0x7E1C +0xEAD5 0x7E15 +0xEAD6 0x7E1A +0xEAD7 0x7E22 +0xEAD8 0x7E0B +0xEAD9 0x7E0F +0xEADA 0x7E16 +0xEADB 0x7E0D +0xEADC 0x7E14 +0xEADD 0x7E25 +0xEADE 0x7E24 +0xEADF 0x7F43 +0xEAE0 0x7F7B +0xEAE1 0x7F7C +0xEAE2 0x7F7A +0xEAE3 0x7FB1 +0xEAE4 0x7FEF +0xEAE5 0x802A +0xEAE6 0x8029 +0xEAE7 0x806C +0xEAE8 0x81B1 +0xEAE9 0x81A6 +0xEAEA 0x81AE +0xEAEB 0x81B9 +0xEAEC 0x81B5 +0xEAED 0x81AB +0xEAEE 0x81B0 +0xEAEF 0x81AC +0xEAF0 0x81B4 +0xEAF1 0x81B2 +0xEAF2 0x81B7 +0xEAF3 0x81A7 +0xEAF4 0x81F2 +0xEAF5 0x8255 +0xEAF6 0x8256 +0xEAF7 0x8257 +0xEAF8 0x8556 +0xEAF9 0x8545 +0xEAFA 0x856B +0xEAFB 0x854D +0xEAFC 0x8553 +0xEAFD 0x8561 +0xEAFE 0x8558 +0xEB40 0x8540 +0xEB41 0x8546 +0xEB42 0x8564 +0xEB43 0x8541 +0xEB44 0x8562 +0xEB45 0x8544 +0xEB46 0x8551 +0xEB47 0x8547 +0xEB48 0x8563 +0xEB49 0x853E +0xEB4A 0x855B +0xEB4B 0x8571 +0xEB4C 0x854E +0xEB4D 0x856E +0xEB4E 0x8575 +0xEB4F 0x8555 +0xEB50 0x8567 +0xEB51 0x8560 +0xEB52 0x858C +0xEB53 0x8566 +0xEB54 0x855D +0xEB55 0x8554 +0xEB56 0x8565 +0xEB57 0x856C +0xEB58 0x8663 +0xEB59 0x8665 +0xEB5A 0x8664 +0xEB5B 0x879B +0xEB5C 0x878F +0xEB5D 0x8797 +0xEB5E 0x8793 +0xEB5F 0x8792 +0xEB60 0x8788 +0xEB61 0x8781 +0xEB62 0x8796 +0xEB63 0x8798 +0xEB64 0x8779 +0xEB65 0x8787 +0xEB66 0x87A3 +0xEB67 0x8785 +0xEB68 0x8790 +0xEB69 0x8791 +0xEB6A 0x879D +0xEB6B 0x8784 +0xEB6C 0x8794 +0xEB6D 0x879C +0xEB6E 0x879A +0xEB6F 0x8789 +0xEB70 0x891E +0xEB71 0x8926 +0xEB72 0x8930 +0xEB73 0x892D +0xEB74 0x892E +0xEB75 0x8927 +0xEB76 0x8931 +0xEB77 0x8922 +0xEB78 0x8929 +0xEB79 0x8923 +0xEB7A 0x892F +0xEB7B 0x892C +0xEB7C 0x891F +0xEB7D 0x89F1 +0xEB7E 0x8AE0 +0xEBA1 0x8AE2 +0xEBA2 0x8AF2 +0xEBA3 0x8AF4 +0xEBA4 0x8AF5 +0xEBA5 0x8ADD +0xEBA6 0x8B14 +0xEBA7 0x8AE4 +0xEBA8 0x8ADF +0xEBA9 0x8AF0 +0xEBAA 0x8AC8 +0xEBAB 0x8ADE +0xEBAC 0x8AE1 +0xEBAD 0x8AE8 +0xEBAE 0x8AFF +0xEBAF 0x8AEF +0xEBB0 0x8AFB +0xEBB1 0x8C91 +0xEBB2 0x8C92 +0xEBB3 0x8C90 +0xEBB4 0x8CF5 +0xEBB5 0x8CEE +0xEBB6 0x8CF1 +0xEBB7 0x8CF0 +0xEBB8 0x8CF3 +0xEBB9 0x8D6C +0xEBBA 0x8D6E +0xEBBB 0x8DA5 +0xEBBC 0x8DA7 +0xEBBD 0x8E33 +0xEBBE 0x8E3E +0xEBBF 0x8E38 +0xEBC0 0x8E40 +0xEBC1 0x8E45 +0xEBC2 0x8E36 +0xEBC3 0x8E3C +0xEBC4 0x8E3D +0xEBC5 0x8E41 +0xEBC6 0x8E30 +0xEBC7 0x8E3F +0xEBC8 0x8EBD +0xEBC9 0x8F36 +0xEBCA 0x8F2E +0xEBCB 0x8F35 +0xEBCC 0x8F32 +0xEBCD 0x8F39 +0xEBCE 0x8F37 +0xEBCF 0x8F34 +0xEBD0 0x9076 +0xEBD1 0x9079 +0xEBD2 0x907B +0xEBD3 0x9086 +0xEBD4 0x90FA +0xEBD5 0x9133 +0xEBD6 0x9135 +0xEBD7 0x9136 +0xEBD8 0x9193 +0xEBD9 0x9190 +0xEBDA 0x9191 +0xEBDB 0x918D +0xEBDC 0x918F +0xEBDD 0x9327 +0xEBDE 0x931E +0xEBDF 0x9308 +0xEBE0 0x931F +0xEBE1 0x9306 +0xEBE2 0x930F +0xEBE3 0x937A +0xEBE4 0x9338 +0xEBE5 0x933C +0xEBE6 0x931B +0xEBE7 0x9323 +0xEBE8 0x9312 +0xEBE9 0x9301 +0xEBEA 0x9346 +0xEBEB 0x932D +0xEBEC 0x930E +0xEBED 0x930D +0xEBEE 0x92CB +0xEBEF 0x931D +0xEBF0 0x92FA +0xEBF1 0x9325 +0xEBF2 0x9313 +0xEBF3 0x92F9 +0xEBF4 0x92F7 +0xEBF5 0x9334 +0xEBF6 0x9302 +0xEBF7 0x9324 +0xEBF8 0x92FF +0xEBF9 0x9329 +0xEBFA 0x9339 +0xEBFB 0x9335 +0xEBFC 0x932A +0xEBFD 0x9314 +0xEBFE 0x930C +0xEC40 0x930B +0xEC41 0x92FE +0xEC42 0x9309 +0xEC43 0x9300 +0xEC44 0x92FB +0xEC45 0x9316 +0xEC46 0x95BC +0xEC47 0x95CD +0xEC48 0x95BE +0xEC49 0x95B9 +0xEC4A 0x95BA +0xEC4B 0x95B6 +0xEC4C 0x95BF +0xEC4D 0x95B5 +0xEC4E 0x95BD +0xEC4F 0x96A9 +0xEC50 0x96D4 +0xEC51 0x970B +0xEC52 0x9712 +0xEC53 0x9710 +0xEC54 0x9799 +0xEC55 0x9797 +0xEC56 0x9794 +0xEC57 0x97F0 +0xEC58 0x97F8 +0xEC59 0x9835 +0xEC5A 0x982F +0xEC5B 0x9832 +0xEC5C 0x9924 +0xEC5D 0x991F +0xEC5E 0x9927 +0xEC5F 0x9929 +0xEC60 0x999E +0xEC61 0x99EE +0xEC62 0x99EC +0xEC63 0x99E5 +0xEC64 0x99E4 +0xEC65 0x99F0 +0xEC66 0x99E3 +0xEC67 0x99EA +0xEC68 0x99E9 +0xEC69 0x99E7 +0xEC6A 0x9AB9 +0xEC6B 0x9ABF +0xEC6C 0x9AB4 +0xEC6D 0x9ABB +0xEC6E 0x9AF6 +0xEC6F 0x9AFA +0xEC70 0x9AF9 +0xEC71 0x9AF7 +0xEC72 0x9B33 +0xEC73 0x9B80 +0xEC74 0x9B85 +0xEC75 0x9B87 +0xEC76 0x9B7C +0xEC77 0x9B7E +0xEC78 0x9B7B +0xEC79 0x9B82 +0xEC7A 0x9B93 +0xEC7B 0x9B92 +0xEC7C 0x9B90 +0xEC7D 0x9B7A +0xEC7E 0x9B95 +0xECA1 0x9B7D +0xECA2 0x9B88 +0xECA3 0x9D25 +0xECA4 0x9D17 +0xECA5 0x9D20 +0xECA6 0x9D1E +0xECA7 0x9D14 +0xECA8 0x9D29 +0xECA9 0x9D1D +0xECAA 0x9D18 +0xECAB 0x9D22 +0xECAC 0x9D10 +0xECAD 0x9D19 +0xECAE 0x9D1F +0xECAF 0x9E88 +0xECB0 0x9E86 +0xECB1 0x9E87 +0xECB2 0x9EAE +0xECB3 0x9EAD +0xECB4 0x9ED5 +0xECB5 0x9ED6 +0xECB6 0x9EFA +0xECB7 0x9F12 +0xECB8 0x9F3D +0xECB9 0x5126 +0xECBA 0x5125 +0xECBB 0x5122 +0xECBC 0x5124 +0xECBD 0x5120 +0xECBE 0x5129 +0xECBF 0x52F4 +0xECC0 0x5693 +0xECC1 0x568C +0xECC2 0x568D +0xECC3 0x5686 +0xECC4 0x5684 +0xECC5 0x5683 +0xECC6 0x567E +0xECC7 0x5682 +0xECC8 0x567F +0xECC9 0x5681 +0xECCA 0x58D6 +0xECCB 0x58D4 +0xECCC 0x58CF +0xECCD 0x58D2 +0xECCE 0x5B2D +0xECCF 0x5B25 +0xECD0 0x5B32 +0xECD1 0x5B23 +0xECD2 0x5B2C +0xECD3 0x5B27 +0xECD4 0x5B26 +0xECD5 0x5B2F +0xECD6 0x5B2E +0xECD7 0x5B7B +0xECD8 0x5BF1 +0xECD9 0x5BF2 +0xECDA 0x5DB7 +0xECDB 0x5E6C +0xECDC 0x5E6A +0xECDD 0x5FBE +0xECDE 0x5FBB +0xECDF 0x61C3 +0xECE0 0x61B5 +0xECE1 0x61BC +0xECE2 0x61E7 +0xECE3 0x61E0 +0xECE4 0x61E5 +0xECE5 0x61E4 +0xECE6 0x61E8 +0xECE7 0x61DE +0xECE8 0x64EF +0xECE9 0x64E9 +0xECEA 0x64E3 +0xECEB 0x64EB +0xECEC 0x64E4 +0xECED 0x64E8 +0xECEE 0x6581 +0xECEF 0x6580 +0xECF0 0x65B6 +0xECF1 0x65DA +0xECF2 0x66D2 +0xECF3 0x6A8D +0xECF4 0x6A96 +0xECF5 0x6A81 +0xECF6 0x6AA5 +0xECF7 0x6A89 +0xECF8 0x6A9F +0xECF9 0x6A9B +0xECFA 0x6AA1 +0xECFB 0x6A9E +0xECFC 0x6A87 +0xECFD 0x6A93 +0xECFE 0x6A8E +0xED40 0x6A95 +0xED41 0x6A83 +0xED42 0x6AA8 +0xED43 0x6AA4 +0xED44 0x6A91 +0xED45 0x6A7F +0xED46 0x6AA6 +0xED47 0x6A9A +0xED48 0x6A85 +0xED49 0x6A8C +0xED4A 0x6A92 +0xED4B 0x6B5B +0xED4C 0x6BAD +0xED4D 0x6C09 +0xED4E 0x6FCC +0xED4F 0x6FA9 +0xED50 0x6FF4 +0xED51 0x6FD4 +0xED52 0x6FE3 +0xED53 0x6FDC +0xED54 0x6FED +0xED55 0x6FE7 +0xED56 0x6FE6 +0xED57 0x6FDE +0xED58 0x6FF2 +0xED59 0x6FDD +0xED5A 0x6FE2 +0xED5B 0x6FE8 +0xED5C 0x71E1 +0xED5D 0x71F1 +0xED5E 0x71E8 +0xED5F 0x71F2 +0xED60 0x71E4 +0xED61 0x71F0 +0xED62 0x71E2 +0xED63 0x7373 +0xED64 0x736E +0xED65 0x736F +0xED66 0x7497 +0xED67 0x74B2 +0xED68 0x74AB +0xED69 0x7490 +0xED6A 0x74AA +0xED6B 0x74AD +0xED6C 0x74B1 +0xED6D 0x74A5 +0xED6E 0x74AF +0xED6F 0x7510 +0xED70 0x7511 +0xED71 0x7512 +0xED72 0x750F +0xED73 0x7584 +0xED74 0x7643 +0xED75 0x7648 +0xED76 0x7649 +0xED77 0x7647 +0xED78 0x76A4 +0xED79 0x76E9 +0xED7A 0x77B5 +0xED7B 0x77AB +0xED7C 0x77B2 +0xED7D 0x77B7 +0xED7E 0x77B6 +0xEDA1 0x77B4 +0xEDA2 0x77B1 +0xEDA3 0x77A8 +0xEDA4 0x77F0 +0xEDA5 0x78F3 +0xEDA6 0x78FD +0xEDA7 0x7902 +0xEDA8 0x78FB +0xEDA9 0x78FC +0xEDAA 0x78F2 +0xEDAB 0x7905 +0xEDAC 0x78F9 +0xEDAD 0x78FE +0xEDAE 0x7904 +0xEDAF 0x79AB +0xEDB0 0x79A8 +0xEDB1 0x7A5C +0xEDB2 0x7A5B +0xEDB3 0x7A56 +0xEDB4 0x7A58 +0xEDB5 0x7A54 +0xEDB6 0x7A5A +0xEDB7 0x7ABE +0xEDB8 0x7AC0 +0xEDB9 0x7AC1 +0xEDBA 0x7C05 +0xEDBB 0x7C0F +0xEDBC 0x7BF2 +0xEDBD 0x7C00 +0xEDBE 0x7BFF +0xEDBF 0x7BFB +0xEDC0 0x7C0E +0xEDC1 0x7BF4 +0xEDC2 0x7C0B +0xEDC3 0x7BF3 +0xEDC4 0x7C02 +0xEDC5 0x7C09 +0xEDC6 0x7C03 +0xEDC7 0x7C01 +0xEDC8 0x7BF8 +0xEDC9 0x7BFD +0xEDCA 0x7C06 +0xEDCB 0x7BF0 +0xEDCC 0x7BF1 +0xEDCD 0x7C10 +0xEDCE 0x7C0A +0xEDCF 0x7CE8 +0xEDD0 0x7E2D +0xEDD1 0x7E3C +0xEDD2 0x7E42 +0xEDD3 0x7E33 +0xEDD4 0x9848 +0xEDD5 0x7E38 +0xEDD6 0x7E2A +0xEDD7 0x7E49 +0xEDD8 0x7E40 +0xEDD9 0x7E47 +0xEDDA 0x7E29 +0xEDDB 0x7E4C +0xEDDC 0x7E30 +0xEDDD 0x7E3B +0xEDDE 0x7E36 +0xEDDF 0x7E44 +0xEDE0 0x7E3A +0xEDE1 0x7F45 +0xEDE2 0x7F7F +0xEDE3 0x7F7E +0xEDE4 0x7F7D +0xEDE5 0x7FF4 +0xEDE6 0x7FF2 +0xEDE7 0x802C +0xEDE8 0x81BB +0xEDE9 0x81C4 +0xEDEA 0x81CC +0xEDEB 0x81CA +0xEDEC 0x81C5 +0xEDED 0x81C7 +0xEDEE 0x81BC +0xEDEF 0x81E9 +0xEDF0 0x825B +0xEDF1 0x825A +0xEDF2 0x825C +0xEDF3 0x8583 +0xEDF4 0x8580 +0xEDF5 0x858F +0xEDF6 0x85A7 +0xEDF7 0x8595 +0xEDF8 0x85A0 +0xEDF9 0x858B +0xEDFA 0x85A3 +0xEDFB 0x857B +0xEDFC 0x85A4 +0xEDFD 0x859A +0xEDFE 0x859E +0xEE40 0x8577 +0xEE41 0x857C +0xEE42 0x8589 +0xEE43 0x85A1 +0xEE44 0x857A +0xEE45 0x8578 +0xEE46 0x8557 +0xEE47 0x858E +0xEE48 0x8596 +0xEE49 0x8586 +0xEE4A 0x858D +0xEE4B 0x8599 +0xEE4C 0x859D +0xEE4D 0x8581 +0xEE4E 0x85A2 +0xEE4F 0x8582 +0xEE50 0x8588 +0xEE51 0x8585 +0xEE52 0x8579 +0xEE53 0x8576 +0xEE54 0x8598 +0xEE55 0x8590 +0xEE56 0x859F +0xEE57 0x8668 +0xEE58 0x87BE +0xEE59 0x87AA +0xEE5A 0x87AD +0xEE5B 0x87C5 +0xEE5C 0x87B0 +0xEE5D 0x87AC +0xEE5E 0x87B9 +0xEE5F 0x87B5 +0xEE60 0x87BC +0xEE61 0x87AE +0xEE62 0x87C9 +0xEE63 0x87C3 +0xEE64 0x87C2 +0xEE65 0x87CC +0xEE66 0x87B7 +0xEE67 0x87AF +0xEE68 0x87C4 +0xEE69 0x87CA +0xEE6A 0x87B4 +0xEE6B 0x87B6 +0xEE6C 0x87BF +0xEE6D 0x87B8 +0xEE6E 0x87BD +0xEE6F 0x87DE +0xEE70 0x87B2 +0xEE71 0x8935 +0xEE72 0x8933 +0xEE73 0x893C +0xEE74 0x893E +0xEE75 0x8941 +0xEE76 0x8952 +0xEE77 0x8937 +0xEE78 0x8942 +0xEE79 0x89AD +0xEE7A 0x89AF +0xEE7B 0x89AE +0xEE7C 0x89F2 +0xEE7D 0x89F3 +0xEE7E 0x8B1E +0xEEA1 0x8B18 +0xEEA2 0x8B16 +0xEEA3 0x8B11 +0xEEA4 0x8B05 +0xEEA5 0x8B0B +0xEEA6 0x8B22 +0xEEA7 0x8B0F +0xEEA8 0x8B12 +0xEEA9 0x8B15 +0xEEAA 0x8B07 +0xEEAB 0x8B0D +0xEEAC 0x8B08 +0xEEAD 0x8B06 +0xEEAE 0x8B1C +0xEEAF 0x8B13 +0xEEB0 0x8B1A +0xEEB1 0x8C4F +0xEEB2 0x8C70 +0xEEB3 0x8C72 +0xEEB4 0x8C71 +0xEEB5 0x8C6F +0xEEB6 0x8C95 +0xEEB7 0x8C94 +0xEEB8 0x8CF9 +0xEEB9 0x8D6F +0xEEBA 0x8E4E +0xEEBB 0x8E4D +0xEEBC 0x8E53 +0xEEBD 0x8E50 +0xEEBE 0x8E4C +0xEEBF 0x8E47 +0xEEC0 0x8F43 +0xEEC1 0x8F40 +0xEEC2 0x9085 +0xEEC3 0x907E +0xEEC4 0x9138 +0xEEC5 0x919A +0xEEC6 0x91A2 +0xEEC7 0x919B +0xEEC8 0x9199 +0xEEC9 0x919F +0xEECA 0x91A1 +0xEECB 0x919D +0xEECC 0x91A0 +0xEECD 0x93A1 +0xEECE 0x9383 +0xEECF 0x93AF +0xEED0 0x9364 +0xEED1 0x9356 +0xEED2 0x9347 +0xEED3 0x937C +0xEED4 0x9358 +0xEED5 0x935C +0xEED6 0x9376 +0xEED7 0x9349 +0xEED8 0x9350 +0xEED9 0x9351 +0xEEDA 0x9360 +0xEEDB 0x936D +0xEEDC 0x938F +0xEEDD 0x934C +0xEEDE 0x936A +0xEEDF 0x9379 +0xEEE0 0x9357 +0xEEE1 0x9355 +0xEEE2 0x9352 +0xEEE3 0x934F +0xEEE4 0x9371 +0xEEE5 0x9377 +0xEEE6 0x937B +0xEEE7 0x9361 +0xEEE8 0x935E +0xEEE9 0x9363 +0xEEEA 0x9367 +0xEEEB 0x9380 +0xEEEC 0x934E +0xEEED 0x9359 +0xEEEE 0x95C7 +0xEEEF 0x95C0 +0xEEF0 0x95C9 +0xEEF1 0x95C3 +0xEEF2 0x95C5 +0xEEF3 0x95B7 +0xEEF4 0x96AE +0xEEF5 0x96B0 +0xEEF6 0x96AC +0xEEF7 0x9720 +0xEEF8 0x971F +0xEEF9 0x9718 +0xEEFA 0x971D +0xEEFB 0x9719 +0xEEFC 0x979A +0xEEFD 0x97A1 +0xEEFE 0x979C +0xEF40 0x979E +0xEF41 0x979D +0xEF42 0x97D5 +0xEF43 0x97D4 +0xEF44 0x97F1 +0xEF45 0x9841 +0xEF46 0x9844 +0xEF47 0x984A +0xEF48 0x9849 +0xEF49 0x9845 +0xEF4A 0x9843 +0xEF4B 0x9925 +0xEF4C 0x992B +0xEF4D 0x992C +0xEF4E 0x992A +0xEF4F 0x9933 +0xEF50 0x9932 +0xEF51 0x992F +0xEF52 0x992D +0xEF53 0x9931 +0xEF54 0x9930 +0xEF55 0x9998 +0xEF56 0x99A3 +0xEF57 0x99A1 +0xEF58 0x9A02 +0xEF59 0x99FA +0xEF5A 0x99F4 +0xEF5B 0x99F7 +0xEF5C 0x99F9 +0xEF5D 0x99F8 +0xEF5E 0x99F6 +0xEF5F 0x99FB +0xEF60 0x99FD +0xEF61 0x99FE +0xEF62 0x99FC +0xEF63 0x9A03 +0xEF64 0x9ABE +0xEF65 0x9AFE +0xEF66 0x9AFD +0xEF67 0x9B01 +0xEF68 0x9AFC +0xEF69 0x9B48 +0xEF6A 0x9B9A +0xEF6B 0x9BA8 +0xEF6C 0x9B9E +0xEF6D 0x9B9B +0xEF6E 0x9BA6 +0xEF6F 0x9BA1 +0xEF70 0x9BA5 +0xEF71 0x9BA4 +0xEF72 0x9B86 +0xEF73 0x9BA2 +0xEF74 0x9BA0 +0xEF75 0x9BAF +0xEF76 0x9D33 +0xEF77 0x9D41 +0xEF78 0x9D67 +0xEF79 0x9D36 +0xEF7A 0x9D2E +0xEF7B 0x9D2F +0xEF7C 0x9D31 +0xEF7D 0x9D38 +0xEF7E 0x9D30 +0xEFA1 0x9D45 +0xEFA2 0x9D42 +0xEFA3 0x9D43 +0xEFA4 0x9D3E +0xEFA5 0x9D37 +0xEFA6 0x9D40 +0xEFA7 0x9D3D +0xEFA8 0x7FF5 +0xEFA9 0x9D2D +0xEFAA 0x9E8A +0xEFAB 0x9E89 +0xEFAC 0x9E8D +0xEFAD 0x9EB0 +0xEFAE 0x9EC8 +0xEFAF 0x9EDA +0xEFB0 0x9EFB +0xEFB1 0x9EFF +0xEFB2 0x9F24 +0xEFB3 0x9F23 +0xEFB4 0x9F22 +0xEFB5 0x9F54 +0xEFB6 0x9FA0 +0xEFB7 0x5131 +0xEFB8 0x512D +0xEFB9 0x512E +0xEFBA 0x5698 +0xEFBB 0x569C +0xEFBC 0x5697 +0xEFBD 0x569A +0xEFBE 0x569D +0xEFBF 0x5699 +0xEFC0 0x5970 +0xEFC1 0x5B3C +0xEFC2 0x5C69 +0xEFC3 0x5C6A +0xEFC4 0x5DC0 +0xEFC5 0x5E6D +0xEFC6 0x5E6E +0xEFC7 0x61D8 +0xEFC8 0x61DF +0xEFC9 0x61ED +0xEFCA 0x61EE +0xEFCB 0x61F1 +0xEFCC 0x61EA +0xEFCD 0x61F0 +0xEFCE 0x61EB +0xEFCF 0x61D6 +0xEFD0 0x61E9 +0xEFD1 0x64FF +0xEFD2 0x6504 +0xEFD3 0x64FD +0xEFD4 0x64F8 +0xEFD5 0x6501 +0xEFD6 0x6503 +0xEFD7 0x64FC +0xEFD8 0x6594 +0xEFD9 0x65DB +0xEFDA 0x66DA +0xEFDB 0x66DB +0xEFDC 0x66D8 +0xEFDD 0x6AC5 +0xEFDE 0x6AB9 +0xEFDF 0x6ABD +0xEFE0 0x6AE1 +0xEFE1 0x6AC6 +0xEFE2 0x6ABA +0xEFE3 0x6AB6 +0xEFE4 0x6AB7 +0xEFE5 0x6AC7 +0xEFE6 0x6AB4 +0xEFE7 0x6AAD +0xEFE8 0x6B5E +0xEFE9 0x6BC9 +0xEFEA 0x6C0B +0xEFEB 0x7007 +0xEFEC 0x700C +0xEFED 0x700D +0xEFEE 0x7001 +0xEFEF 0x7005 +0xEFF0 0x7014 +0xEFF1 0x700E +0xEFF2 0x6FFF +0xEFF3 0x7000 +0xEFF4 0x6FFB +0xEFF5 0x7026 +0xEFF6 0x6FFC +0xEFF7 0x6FF7 +0xEFF8 0x700A +0xEFF9 0x7201 +0xEFFA 0x71FF +0xEFFB 0x71F9 +0xEFFC 0x7203 +0xEFFD 0x71FD +0xEFFE 0x7376 +0xF040 0x74B8 +0xF041 0x74C0 +0xF042 0x74B5 +0xF043 0x74C1 +0xF044 0x74BE +0xF045 0x74B6 +0xF046 0x74BB +0xF047 0x74C2 +0xF048 0x7514 +0xF049 0x7513 +0xF04A 0x765C +0xF04B 0x7664 +0xF04C 0x7659 +0xF04D 0x7650 +0xF04E 0x7653 +0xF04F 0x7657 +0xF050 0x765A +0xF051 0x76A6 +0xF052 0x76BD +0xF053 0x76EC +0xF054 0x77C2 +0xF055 0x77BA +0xF056 0x78FF +0xF057 0x790C +0xF058 0x7913 +0xF059 0x7914 +0xF05A 0x7909 +0xF05B 0x7910 +0xF05C 0x7912 +0xF05D 0x7911 +0xF05E 0x79AD +0xF05F 0x79AC +0xF060 0x7A5F +0xF061 0x7C1C +0xF062 0x7C29 +0xF063 0x7C19 +0xF064 0x7C20 +0xF065 0x7C1F +0xF066 0x7C2D +0xF067 0x7C1D +0xF068 0x7C26 +0xF069 0x7C28 +0xF06A 0x7C22 +0xF06B 0x7C25 +0xF06C 0x7C30 +0xF06D 0x7E5C +0xF06E 0x7E50 +0xF06F 0x7E56 +0xF070 0x7E63 +0xF071 0x7E58 +0xF072 0x7E62 +0xF073 0x7E5F +0xF074 0x7E51 +0xF075 0x7E60 +0xF076 0x7E57 +0xF077 0x7E53 +0xF078 0x7FB5 +0xF079 0x7FB3 +0xF07A 0x7FF7 +0xF07B 0x7FF8 +0xF07C 0x8075 +0xF07D 0x81D1 +0xF07E 0x81D2 +0xF0A1 0x81D0 +0xF0A2 0x825F +0xF0A3 0x825E +0xF0A4 0x85B4 +0xF0A5 0x85C6 +0xF0A6 0x85C0 +0xF0A7 0x85C3 +0xF0A8 0x85C2 +0xF0A9 0x85B3 +0xF0AA 0x85B5 +0xF0AB 0x85BD +0xF0AC 0x85C7 +0xF0AD 0x85C4 +0xF0AE 0x85BF +0xF0AF 0x85CB +0xF0B0 0x85CE +0xF0B1 0x85C8 +0xF0B2 0x85C5 +0xF0B3 0x85B1 +0xF0B4 0x85B6 +0xF0B5 0x85D2 +0xF0B6 0x8624 +0xF0B7 0x85B8 +0xF0B8 0x85B7 +0xF0B9 0x85BE +0xF0BA 0x8669 +0xF0BB 0x87E7 +0xF0BC 0x87E6 +0xF0BD 0x87E2 +0xF0BE 0x87DB +0xF0BF 0x87EB +0xF0C0 0x87EA +0xF0C1 0x87E5 +0xF0C2 0x87DF +0xF0C3 0x87F3 +0xF0C4 0x87E4 +0xF0C5 0x87D4 +0xF0C6 0x87DC +0xF0C7 0x87D3 +0xF0C8 0x87ED +0xF0C9 0x87D8 +0xF0CA 0x87E3 +0xF0CB 0x87A4 +0xF0CC 0x87D7 +0xF0CD 0x87D9 +0xF0CE 0x8801 +0xF0CF 0x87F4 +0xF0D0 0x87E8 +0xF0D1 0x87DD +0xF0D2 0x8953 +0xF0D3 0x894B +0xF0D4 0x894F +0xF0D5 0x894C +0xF0D6 0x8946 +0xF0D7 0x8950 +0xF0D8 0x8951 +0xF0D9 0x8949 +0xF0DA 0x8B2A +0xF0DB 0x8B27 +0xF0DC 0x8B23 +0xF0DD 0x8B33 +0xF0DE 0x8B30 +0xF0DF 0x8B35 +0xF0E0 0x8B47 +0xF0E1 0x8B2F +0xF0E2 0x8B3C +0xF0E3 0x8B3E +0xF0E4 0x8B31 +0xF0E5 0x8B25 +0xF0E6 0x8B37 +0xF0E7 0x8B26 +0xF0E8 0x8B36 +0xF0E9 0x8B2E +0xF0EA 0x8B24 +0xF0EB 0x8B3B +0xF0EC 0x8B3D +0xF0ED 0x8B3A +0xF0EE 0x8C42 +0xF0EF 0x8C75 +0xF0F0 0x8C99 +0xF0F1 0x8C98 +0xF0F2 0x8C97 +0xF0F3 0x8CFE +0xF0F4 0x8D04 +0xF0F5 0x8D02 +0xF0F6 0x8D00 +0xF0F7 0x8E5C +0xF0F8 0x8E62 +0xF0F9 0x8E60 +0xF0FA 0x8E57 +0xF0FB 0x8E56 +0xF0FC 0x8E5E +0xF0FD 0x8E65 +0xF0FE 0x8E67 +0xF140 0x8E5B +0xF141 0x8E5A +0xF142 0x8E61 +0xF143 0x8E5D +0xF144 0x8E69 +0xF145 0x8E54 +0xF146 0x8F46 +0xF147 0x8F47 +0xF148 0x8F48 +0xF149 0x8F4B +0xF14A 0x9128 +0xF14B 0x913A +0xF14C 0x913B +0xF14D 0x913E +0xF14E 0x91A8 +0xF14F 0x91A5 +0xF150 0x91A7 +0xF151 0x91AF +0xF152 0x91AA +0xF153 0x93B5 +0xF154 0x938C +0xF155 0x9392 +0xF156 0x93B7 +0xF157 0x939B +0xF158 0x939D +0xF159 0x9389 +0xF15A 0x93A7 +0xF15B 0x938E +0xF15C 0x93AA +0xF15D 0x939E +0xF15E 0x93A6 +0xF15F 0x9395 +0xF160 0x9388 +0xF161 0x9399 +0xF162 0x939F +0xF163 0x938D +0xF164 0x93B1 +0xF165 0x9391 +0xF166 0x93B2 +0xF167 0x93A4 +0xF168 0x93A8 +0xF169 0x93B4 +0xF16A 0x93A3 +0xF16B 0x93A5 +0xF16C 0x95D2 +0xF16D 0x95D3 +0xF16E 0x95D1 +0xF16F 0x96B3 +0xF170 0x96D7 +0xF171 0x96DA +0xF172 0x5DC2 +0xF173 0x96DF +0xF174 0x96D8 +0xF175 0x96DD +0xF176 0x9723 +0xF177 0x9722 +0xF178 0x9725 +0xF179 0x97AC +0xF17A 0x97AE +0xF17B 0x97A8 +0xF17C 0x97AB +0xF17D 0x97A4 +0xF17E 0x97AA +0xF1A1 0x97A2 +0xF1A2 0x97A5 +0xF1A3 0x97D7 +0xF1A4 0x97D9 +0xF1A5 0x97D6 +0xF1A6 0x97D8 +0xF1A7 0x97FA +0xF1A8 0x9850 +0xF1A9 0x9851 +0xF1AA 0x9852 +0xF1AB 0x98B8 +0xF1AC 0x9941 +0xF1AD 0x993C +0xF1AE 0x993A +0xF1AF 0x9A0F +0xF1B0 0x9A0B +0xF1B1 0x9A09 +0xF1B2 0x9A0D +0xF1B3 0x9A04 +0xF1B4 0x9A11 +0xF1B5 0x9A0A +0xF1B6 0x9A05 +0xF1B7 0x9A07 +0xF1B8 0x9A06 +0xF1B9 0x9AC0 +0xF1BA 0x9ADC +0xF1BB 0x9B08 +0xF1BC 0x9B04 +0xF1BD 0x9B05 +0xF1BE 0x9B29 +0xF1BF 0x9B35 +0xF1C0 0x9B4A +0xF1C1 0x9B4C +0xF1C2 0x9B4B +0xF1C3 0x9BC7 +0xF1C4 0x9BC6 +0xF1C5 0x9BC3 +0xF1C6 0x9BBF +0xF1C7 0x9BC1 +0xF1C8 0x9BB5 +0xF1C9 0x9BB8 +0xF1CA 0x9BD3 +0xF1CB 0x9BB6 +0xF1CC 0x9BC4 +0xF1CD 0x9BB9 +0xF1CE 0x9BBD +0xF1CF 0x9D5C +0xF1D0 0x9D53 +0xF1D1 0x9D4F +0xF1D2 0x9D4A +0xF1D3 0x9D5B +0xF1D4 0x9D4B +0xF1D5 0x9D59 +0xF1D6 0x9D56 +0xF1D7 0x9D4C +0xF1D8 0x9D57 +0xF1D9 0x9D52 +0xF1DA 0x9D54 +0xF1DB 0x9D5F +0xF1DC 0x9D58 +0xF1DD 0x9D5A +0xF1DE 0x9E8E +0xF1DF 0x9E8C +0xF1E0 0x9EDF +0xF1E1 0x9F01 +0xF1E2 0x9F00 +0xF1E3 0x9F16 +0xF1E4 0x9F25 +0xF1E5 0x9F2B +0xF1E6 0x9F2A +0xF1E7 0x9F29 +0xF1E8 0x9F28 +0xF1E9 0x9F4C +0xF1EA 0x9F55 +0xF1EB 0x5134 +0xF1EC 0x5135 +0xF1ED 0x5296 +0xF1EE 0x52F7 +0xF1EF 0x53B4 +0xF1F0 0x56AB +0xF1F1 0x56AD +0xF1F2 0x56A6 +0xF1F3 0x56A7 +0xF1F4 0x56AA +0xF1F5 0x56AC +0xF1F6 0x58DA +0xF1F7 0x58DD +0xF1F8 0x58DB +0xF1F9 0x5912 +0xF1FA 0x5B3D +0xF1FB 0x5B3E +0xF1FC 0x5B3F +0xF1FD 0x5DC3 +0xF1FE 0x5E70 +0xF240 0x5FBF +0xF241 0x61FB +0xF242 0x6507 +0xF243 0x6510 +0xF244 0x650D +0xF245 0x6509 +0xF246 0x650C +0xF247 0x650E +0xF248 0x6584 +0xF249 0x65DE +0xF24A 0x65DD +0xF24B 0x66DE +0xF24C 0x6AE7 +0xF24D 0x6AE0 +0xF24E 0x6ACC +0xF24F 0x6AD1 +0xF250 0x6AD9 +0xF251 0x6ACB +0xF252 0x6ADF +0xF253 0x6ADC +0xF254 0x6AD0 +0xF255 0x6AEB +0xF256 0x6ACF +0xF257 0x6ACD +0xF258 0x6ADE +0xF259 0x6B60 +0xF25A 0x6BB0 +0xF25B 0x6C0C +0xF25C 0x7019 +0xF25D 0x7027 +0xF25E 0x7020 +0xF25F 0x7016 +0xF260 0x702B +0xF261 0x7021 +0xF262 0x7022 +0xF263 0x7023 +0xF264 0x7029 +0xF265 0x7017 +0xF266 0x7024 +0xF267 0x701C +0xF268 0x702A +0xF269 0x720C +0xF26A 0x720A +0xF26B 0x7207 +0xF26C 0x7202 +0xF26D 0x7205 +0xF26E 0x72A5 +0xF26F 0x72A6 +0xF270 0x72A4 +0xF271 0x72A3 +0xF272 0x72A1 +0xF273 0x74CB +0xF274 0x74C5 +0xF275 0x74B7 +0xF276 0x74C3 +0xF277 0x7516 +0xF278 0x7660 +0xF279 0x77C9 +0xF27A 0x77CA +0xF27B 0x77C4 +0xF27C 0x77F1 +0xF27D 0x791D +0xF27E 0x791B +0xF2A1 0x7921 +0xF2A2 0x791C +0xF2A3 0x7917 +0xF2A4 0x791E +0xF2A5 0x79B0 +0xF2A6 0x7A67 +0xF2A7 0x7A68 +0xF2A8 0x7C33 +0xF2A9 0x7C3C +0xF2AA 0x7C39 +0xF2AB 0x7C2C +0xF2AC 0x7C3B +0xF2AD 0x7CEC +0xF2AE 0x7CEA +0xF2AF 0x7E76 +0xF2B0 0x7E75 +0xF2B1 0x7E78 +0xF2B2 0x7E70 +0xF2B3 0x7E77 +0xF2B4 0x7E6F +0xF2B5 0x7E7A +0xF2B6 0x7E72 +0xF2B7 0x7E74 +0xF2B8 0x7E68 +0xF2B9 0x7F4B +0xF2BA 0x7F4A +0xF2BB 0x7F83 +0xF2BC 0x7F86 +0xF2BD 0x7FB7 +0xF2BE 0x7FFD +0xF2BF 0x7FFE +0xF2C0 0x8078 +0xF2C1 0x81D7 +0xF2C2 0x81D5 +0xF2C3 0x8264 +0xF2C4 0x8261 +0xF2C5 0x8263 +0xF2C6 0x85EB +0xF2C7 0x85F1 +0xF2C8 0x85ED +0xF2C9 0x85D9 +0xF2CA 0x85E1 +0xF2CB 0x85E8 +0xF2CC 0x85DA +0xF2CD 0x85D7 +0xF2CE 0x85EC +0xF2CF 0x85F2 +0xF2D0 0x85F8 +0xF2D1 0x85D8 +0xF2D2 0x85DF +0xF2D3 0x85E3 +0xF2D4 0x85DC +0xF2D5 0x85D1 +0xF2D6 0x85F0 +0xF2D7 0x85E6 +0xF2D8 0x85EF +0xF2D9 0x85DE +0xF2DA 0x85E2 +0xF2DB 0x8800 +0xF2DC 0x87FA +0xF2DD 0x8803 +0xF2DE 0x87F6 +0xF2DF 0x87F7 +0xF2E0 0x8809 +0xF2E1 0x880C +0xF2E2 0x880B +0xF2E3 0x8806 +0xF2E4 0x87FC +0xF2E5 0x8808 +0xF2E6 0x87FF +0xF2E7 0x880A +0xF2E8 0x8802 +0xF2E9 0x8962 +0xF2EA 0x895A +0xF2EB 0x895B +0xF2EC 0x8957 +0xF2ED 0x8961 +0xF2EE 0x895C +0xF2EF 0x8958 +0xF2F0 0x895D +0xF2F1 0x8959 +0xF2F2 0x8988 +0xF2F3 0x89B7 +0xF2F4 0x89B6 +0xF2F5 0x89F6 +0xF2F6 0x8B50 +0xF2F7 0x8B48 +0xF2F8 0x8B4A +0xF2F9 0x8B40 +0xF2FA 0x8B53 +0xF2FB 0x8B56 +0xF2FC 0x8B54 +0xF2FD 0x8B4B +0xF2FE 0x8B55 +0xF340 0x8B51 +0xF341 0x8B42 +0xF342 0x8B52 +0xF343 0x8B57 +0xF344 0x8C43 +0xF345 0x8C77 +0xF346 0x8C76 +0xF347 0x8C9A +0xF348 0x8D06 +0xF349 0x8D07 +0xF34A 0x8D09 +0xF34B 0x8DAC +0xF34C 0x8DAA +0xF34D 0x8DAD +0xF34E 0x8DAB +0xF34F 0x8E6D +0xF350 0x8E78 +0xF351 0x8E73 +0xF352 0x8E6A +0xF353 0x8E6F +0xF354 0x8E7B +0xF355 0x8EC2 +0xF356 0x8F52 +0xF357 0x8F51 +0xF358 0x8F4F +0xF359 0x8F50 +0xF35A 0x8F53 +0xF35B 0x8FB4 +0xF35C 0x9140 +0xF35D 0x913F +0xF35E 0x91B0 +0xF35F 0x91AD +0xF360 0x93DE +0xF361 0x93C7 +0xF362 0x93CF +0xF363 0x93C2 +0xF364 0x93DA +0xF365 0x93D0 +0xF366 0x93F9 +0xF367 0x93EC +0xF368 0x93CC +0xF369 0x93D9 +0xF36A 0x93A9 +0xF36B 0x93E6 +0xF36C 0x93CA +0xF36D 0x93D4 +0xF36E 0x93EE +0xF36F 0x93E3 +0xF370 0x93D5 +0xF371 0x93C4 +0xF372 0x93CE +0xF373 0x93C0 +0xF374 0x93D2 +0xF375 0x93E7 +0xF376 0x957D +0xF377 0x95DA +0xF378 0x95DB +0xF379 0x96E1 +0xF37A 0x9729 +0xF37B 0x972B +0xF37C 0x972C +0xF37D 0x9728 +0xF37E 0x9726 +0xF3A1 0x97B3 +0xF3A2 0x97B7 +0xF3A3 0x97B6 +0xF3A4 0x97DD +0xF3A5 0x97DE +0xF3A6 0x97DF +0xF3A7 0x985C +0xF3A8 0x9859 +0xF3A9 0x985D +0xF3AA 0x9857 +0xF3AB 0x98BF +0xF3AC 0x98BD +0xF3AD 0x98BB +0xF3AE 0x98BE +0xF3AF 0x9948 +0xF3B0 0x9947 +0xF3B1 0x9943 +0xF3B2 0x99A6 +0xF3B3 0x99A7 +0xF3B4 0x9A1A +0xF3B5 0x9A15 +0xF3B6 0x9A25 +0xF3B7 0x9A1D +0xF3B8 0x9A24 +0xF3B9 0x9A1B +0xF3BA 0x9A22 +0xF3BB 0x9A20 +0xF3BC 0x9A27 +0xF3BD 0x9A23 +0xF3BE 0x9A1E +0xF3BF 0x9A1C +0xF3C0 0x9A14 +0xF3C1 0x9AC2 +0xF3C2 0x9B0B +0xF3C3 0x9B0A +0xF3C4 0x9B0E +0xF3C5 0x9B0C +0xF3C6 0x9B37 +0xF3C7 0x9BEA +0xF3C8 0x9BEB +0xF3C9 0x9BE0 +0xF3CA 0x9BDE +0xF3CB 0x9BE4 +0xF3CC 0x9BE6 +0xF3CD 0x9BE2 +0xF3CE 0x9BF0 +0xF3CF 0x9BD4 +0xF3D0 0x9BD7 +0xF3D1 0x9BEC +0xF3D2 0x9BDC +0xF3D3 0x9BD9 +0xF3D4 0x9BE5 +0xF3D5 0x9BD5 +0xF3D6 0x9BE1 +0xF3D7 0x9BDA +0xF3D8 0x9D77 +0xF3D9 0x9D81 +0xF3DA 0x9D8A +0xF3DB 0x9D84 +0xF3DC 0x9D88 +0xF3DD 0x9D71 +0xF3DE 0x9D80 +0xF3DF 0x9D78 +0xF3E0 0x9D86 +0xF3E1 0x9D8B +0xF3E2 0x9D8C +0xF3E3 0x9D7D +0xF3E4 0x9D6B +0xF3E5 0x9D74 +0xF3E6 0x9D75 +0xF3E7 0x9D70 +0xF3E8 0x9D69 +0xF3E9 0x9D85 +0xF3EA 0x9D73 +0xF3EB 0x9D7B +0xF3EC 0x9D82 +0xF3ED 0x9D6F +0xF3EE 0x9D79 +0xF3EF 0x9D7F +0xF3F0 0x9D87 +0xF3F1 0x9D68 +0xF3F2 0x9E94 +0xF3F3 0x9E91 +0xF3F4 0x9EC0 +0xF3F5 0x9EFC +0xF3F6 0x9F2D +0xF3F7 0x9F40 +0xF3F8 0x9F41 +0xF3F9 0x9F4D +0xF3FA 0x9F56 +0xF3FB 0x9F57 +0xF3FC 0x9F58 +0xF3FD 0x5337 +0xF3FE 0x56B2 +0xF440 0x56B5 +0xF441 0x56B3 +0xF442 0x58E3 +0xF443 0x5B45 +0xF444 0x5DC6 +0xF445 0x5DC7 +0xF446 0x5EEE +0xF447 0x5EEF +0xF448 0x5FC0 +0xF449 0x5FC1 +0xF44A 0x61F9 +0xF44B 0x6517 +0xF44C 0x6516 +0xF44D 0x6515 +0xF44E 0x6513 +0xF44F 0x65DF +0xF450 0x66E8 +0xF451 0x66E3 +0xF452 0x66E4 +0xF453 0x6AF3 +0xF454 0x6AF0 +0xF455 0x6AEA +0xF456 0x6AE8 +0xF457 0x6AF9 +0xF458 0x6AF1 +0xF459 0x6AEE +0xF45A 0x6AEF +0xF45B 0x703C +0xF45C 0x7035 +0xF45D 0x702F +0xF45E 0x7037 +0xF45F 0x7034 +0xF460 0x7031 +0xF461 0x7042 +0xF462 0x7038 +0xF463 0x703F +0xF464 0x703A +0xF465 0x7039 +0xF466 0x7040 +0xF467 0x703B +0xF468 0x7033 +0xF469 0x7041 +0xF46A 0x7213 +0xF46B 0x7214 +0xF46C 0x72A8 +0xF46D 0x737D +0xF46E 0x737C +0xF46F 0x74BA +0xF470 0x76AB +0xF471 0x76AA +0xF472 0x76BE +0xF473 0x76ED +0xF474 0x77CC +0xF475 0x77CE +0xF476 0x77CF +0xF477 0x77CD +0xF478 0x77F2 +0xF479 0x7925 +0xF47A 0x7923 +0xF47B 0x7927 +0xF47C 0x7928 +0xF47D 0x7924 +0xF47E 0x7929 +0xF4A1 0x79B2 +0xF4A2 0x7A6E +0xF4A3 0x7A6C +0xF4A4 0x7A6D +0xF4A5 0x7AF7 +0xF4A6 0x7C49 +0xF4A7 0x7C48 +0xF4A8 0x7C4A +0xF4A9 0x7C47 +0xF4AA 0x7C45 +0xF4AB 0x7CEE +0xF4AC 0x7E7B +0xF4AD 0x7E7E +0xF4AE 0x7E81 +0xF4AF 0x7E80 +0xF4B0 0x7FBA +0xF4B1 0x7FFF +0xF4B2 0x8079 +0xF4B3 0x81DB +0xF4B4 0x81D9 +0xF4B5 0x820B +0xF4B6 0x8268 +0xF4B7 0x8269 +0xF4B8 0x8622 +0xF4B9 0x85FF +0xF4BA 0x8601 +0xF4BB 0x85FE +0xF4BC 0x861B +0xF4BD 0x8600 +0xF4BE 0x85F6 +0xF4BF 0x8604 +0xF4C0 0x8609 +0xF4C1 0x8605 +0xF4C2 0x860C +0xF4C3 0x85FD +0xF4C4 0x8819 +0xF4C5 0x8810 +0xF4C6 0x8811 +0xF4C7 0x8817 +0xF4C8 0x8813 +0xF4C9 0x8816 +0xF4CA 0x8963 +0xF4CB 0x8966 +0xF4CC 0x89B9 +0xF4CD 0x89F7 +0xF4CE 0x8B60 +0xF4CF 0x8B6A +0xF4D0 0x8B5D +0xF4D1 0x8B68 +0xF4D2 0x8B63 +0xF4D3 0x8B65 +0xF4D4 0x8B67 +0xF4D5 0x8B6D +0xF4D6 0x8DAE +0xF4D7 0x8E86 +0xF4D8 0x8E88 +0xF4D9 0x8E84 +0xF4DA 0x8F59 +0xF4DB 0x8F56 +0xF4DC 0x8F57 +0xF4DD 0x8F55 +0xF4DE 0x8F58 +0xF4DF 0x8F5A +0xF4E0 0x908D +0xF4E1 0x9143 +0xF4E2 0x9141 +0xF4E3 0x91B7 +0xF4E4 0x91B5 +0xF4E5 0x91B2 +0xF4E6 0x91B3 +0xF4E7 0x940B +0xF4E8 0x9413 +0xF4E9 0x93FB +0xF4EA 0x9420 +0xF4EB 0x940F +0xF4EC 0x9414 +0xF4ED 0x93FE +0xF4EE 0x9415 +0xF4EF 0x9410 +0xF4F0 0x9428 +0xF4F1 0x9419 +0xF4F2 0x940D +0xF4F3 0x93F5 +0xF4F4 0x9400 +0xF4F5 0x93F7 +0xF4F6 0x9407 +0xF4F7 0x940E +0xF4F8 0x9416 +0xF4F9 0x9412 +0xF4FA 0x93FA +0xF4FB 0x9409 +0xF4FC 0x93F8 +0xF4FD 0x940A +0xF4FE 0x93FF +0xF540 0x93FC +0xF541 0x940C +0xF542 0x93F6 +0xF543 0x9411 +0xF544 0x9406 +0xF545 0x95DE +0xF546 0x95E0 +0xF547 0x95DF +0xF548 0x972E +0xF549 0x972F +0xF54A 0x97B9 +0xF54B 0x97BB +0xF54C 0x97FD +0xF54D 0x97FE +0xF54E 0x9860 +0xF54F 0x9862 +0xF550 0x9863 +0xF551 0x985F +0xF552 0x98C1 +0xF553 0x98C2 +0xF554 0x9950 +0xF555 0x994E +0xF556 0x9959 +0xF557 0x994C +0xF558 0x994B +0xF559 0x9953 +0xF55A 0x9A32 +0xF55B 0x9A34 +0xF55C 0x9A31 +0xF55D 0x9A2C +0xF55E 0x9A2A +0xF55F 0x9A36 +0xF560 0x9A29 +0xF561 0x9A2E +0xF562 0x9A38 +0xF563 0x9A2D +0xF564 0x9AC7 +0xF565 0x9ACA +0xF566 0x9AC6 +0xF567 0x9B10 +0xF568 0x9B12 +0xF569 0x9B11 +0xF56A 0x9C0B +0xF56B 0x9C08 +0xF56C 0x9BF7 +0xF56D 0x9C05 +0xF56E 0x9C12 +0xF56F 0x9BF8 +0xF570 0x9C40 +0xF571 0x9C07 +0xF572 0x9C0E +0xF573 0x9C06 +0xF574 0x9C17 +0xF575 0x9C14 +0xF576 0x9C09 +0xF577 0x9D9F +0xF578 0x9D99 +0xF579 0x9DA4 +0xF57A 0x9D9D +0xF57B 0x9D92 +0xF57C 0x9D98 +0xF57D 0x9D90 +0xF57E 0x9D9B +0xF5A1 0x9DA0 +0xF5A2 0x9D94 +0xF5A3 0x9D9C +0xF5A4 0x9DAA +0xF5A5 0x9D97 +0xF5A6 0x9DA1 +0xF5A7 0x9D9A +0xF5A8 0x9DA2 +0xF5A9 0x9DA8 +0xF5AA 0x9D9E +0xF5AB 0x9DA3 +0xF5AC 0x9DBF +0xF5AD 0x9DA9 +0xF5AE 0x9D96 +0xF5AF 0x9DA6 +0xF5B0 0x9DA7 +0xF5B1 0x9E99 +0xF5B2 0x9E9B +0xF5B3 0x9E9A +0xF5B4 0x9EE5 +0xF5B5 0x9EE4 +0xF5B6 0x9EE7 +0xF5B7 0x9EE6 +0xF5B8 0x9F30 +0xF5B9 0x9F2E +0xF5BA 0x9F5B +0xF5BB 0x9F60 +0xF5BC 0x9F5E +0xF5BD 0x9F5D +0xF5BE 0x9F59 +0xF5BF 0x9F91 +0xF5C0 0x513A +0xF5C1 0x5139 +0xF5C2 0x5298 +0xF5C3 0x5297 +0xF5C4 0x56C3 +0xF5C5 0x56BD +0xF5C6 0x56BE +0xF5C7 0x5B48 +0xF5C8 0x5B47 +0xF5C9 0x5DCB +0xF5CA 0x5DCF +0xF5CB 0x5EF1 +0xF5CC 0x61FD +0xF5CD 0x651B +0xF5CE 0x6B02 +0xF5CF 0x6AFC +0xF5D0 0x6B03 +0xF5D1 0x6AF8 +0xF5D2 0x6B00 +0xF5D3 0x7043 +0xF5D4 0x7044 +0xF5D5 0x704A +0xF5D6 0x7048 +0xF5D7 0x7049 +0xF5D8 0x7045 +0xF5D9 0x7046 +0xF5DA 0x721D +0xF5DB 0x721A +0xF5DC 0x7219 +0xF5DD 0x737E +0xF5DE 0x7517 +0xF5DF 0x766A +0xF5E0 0x77D0 +0xF5E1 0x792D +0xF5E2 0x7931 +0xF5E3 0x792F +0xF5E4 0x7C54 +0xF5E5 0x7C53 +0xF5E6 0x7CF2 +0xF5E7 0x7E8A +0xF5E8 0x7E87 +0xF5E9 0x7E88 +0xF5EA 0x7E8B +0xF5EB 0x7E86 +0xF5EC 0x7E8D +0xF5ED 0x7F4D +0xF5EE 0x7FBB +0xF5EF 0x8030 +0xF5F0 0x81DD +0xF5F1 0x8618 +0xF5F2 0x862A +0xF5F3 0x8626 +0xF5F4 0x861F +0xF5F5 0x8623 +0xF5F6 0x861C +0xF5F7 0x8619 +0xF5F8 0x8627 +0xF5F9 0x862E +0xF5FA 0x8621 +0xF5FB 0x8620 +0xF5FC 0x8629 +0xF5FD 0x861E +0xF5FE 0x8625 +0xF640 0x8829 +0xF641 0x881D +0xF642 0x881B +0xF643 0x8820 +0xF644 0x8824 +0xF645 0x881C +0xF646 0x882B +0xF647 0x884A +0xF648 0x896D +0xF649 0x8969 +0xF64A 0x896E +0xF64B 0x896B +0xF64C 0x89FA +0xF64D 0x8B79 +0xF64E 0x8B78 +0xF64F 0x8B45 +0xF650 0x8B7A +0xF651 0x8B7B +0xF652 0x8D10 +0xF653 0x8D14 +0xF654 0x8DAF +0xF655 0x8E8E +0xF656 0x8E8C +0xF657 0x8F5E +0xF658 0x8F5B +0xF659 0x8F5D +0xF65A 0x9146 +0xF65B 0x9144 +0xF65C 0x9145 +0xF65D 0x91B9 +0xF65E 0x943F +0xF65F 0x943B +0xF660 0x9436 +0xF661 0x9429 +0xF662 0x943D +0xF663 0x943C +0xF664 0x9430 +0xF665 0x9439 +0xF666 0x942A +0xF667 0x9437 +0xF668 0x942C +0xF669 0x9440 +0xF66A 0x9431 +0xF66B 0x95E5 +0xF66C 0x95E4 +0xF66D 0x95E3 +0xF66E 0x9735 +0xF66F 0x973A +0xF670 0x97BF +0xF671 0x97E1 +0xF672 0x9864 +0xF673 0x98C9 +0xF674 0x98C6 +0xF675 0x98C0 +0xF676 0x9958 +0xF677 0x9956 +0xF678 0x9A39 +0xF679 0x9A3D +0xF67A 0x9A46 +0xF67B 0x9A44 +0xF67C 0x9A42 +0xF67D 0x9A41 +0xF67E 0x9A3A +0xF6A1 0x9A3F +0xF6A2 0x9ACD +0xF6A3 0x9B15 +0xF6A4 0x9B17 +0xF6A5 0x9B18 +0xF6A6 0x9B16 +0xF6A7 0x9B3A +0xF6A8 0x9B52 +0xF6A9 0x9C2B +0xF6AA 0x9C1D +0xF6AB 0x9C1C +0xF6AC 0x9C2C +0xF6AD 0x9C23 +0xF6AE 0x9C28 +0xF6AF 0x9C29 +0xF6B0 0x9C24 +0xF6B1 0x9C21 +0xF6B2 0x9DB7 +0xF6B3 0x9DB6 +0xF6B4 0x9DBC +0xF6B5 0x9DC1 +0xF6B6 0x9DC7 +0xF6B7 0x9DCA +0xF6B8 0x9DCF +0xF6B9 0x9DBE +0xF6BA 0x9DC5 +0xF6BB 0x9DC3 +0xF6BC 0x9DBB +0xF6BD 0x9DB5 +0xF6BE 0x9DCE +0xF6BF 0x9DB9 +0xF6C0 0x9DBA +0xF6C1 0x9DAC +0xF6C2 0x9DC8 +0xF6C3 0x9DB1 +0xF6C4 0x9DAD +0xF6C5 0x9DCC +0xF6C6 0x9DB3 +0xF6C7 0x9DCD +0xF6C8 0x9DB2 +0xF6C9 0x9E7A +0xF6CA 0x9E9C +0xF6CB 0x9EEB +0xF6CC 0x9EEE +0xF6CD 0x9EED +0xF6CE 0x9F1B +0xF6CF 0x9F18 +0xF6D0 0x9F1A +0xF6D1 0x9F31 +0xF6D2 0x9F4E +0xF6D3 0x9F65 +0xF6D4 0x9F64 +0xF6D5 0x9F92 +0xF6D6 0x4EB9 +0xF6D7 0x56C6 +0xF6D8 0x56C5 +0xF6D9 0x56CB +0xF6DA 0x5971 +0xF6DB 0x5B4B +0xF6DC 0x5B4C +0xF6DD 0x5DD5 +0xF6DE 0x5DD1 +0xF6DF 0x5EF2 +0xF6E0 0x6521 +0xF6E1 0x6520 +0xF6E2 0x6526 +0xF6E3 0x6522 +0xF6E4 0x6B0B +0xF6E5 0x6B08 +0xF6E6 0x6B09 +0xF6E7 0x6C0D +0xF6E8 0x7055 +0xF6E9 0x7056 +0xF6EA 0x7057 +0xF6EB 0x7052 +0xF6EC 0x721E +0xF6ED 0x721F +0xF6EE 0x72A9 +0xF6EF 0x737F +0xF6F0 0x74D8 +0xF6F1 0x74D5 +0xF6F2 0x74D9 +0xF6F3 0x74D7 +0xF6F4 0x766D +0xF6F5 0x76AD +0xF6F6 0x7935 +0xF6F7 0x79B4 +0xF6F8 0x7A70 +0xF6F9 0x7A71 +0xF6FA 0x7C57 +0xF6FB 0x7C5C +0xF6FC 0x7C59 +0xF6FD 0x7C5B +0xF6FE 0x7C5A +0xF740 0x7CF4 +0xF741 0x7CF1 +0xF742 0x7E91 +0xF743 0x7F4F +0xF744 0x7F87 +0xF745 0x81DE +0xF746 0x826B +0xF747 0x8634 +0xF748 0x8635 +0xF749 0x8633 +0xF74A 0x862C +0xF74B 0x8632 +0xF74C 0x8636 +0xF74D 0x882C +0xF74E 0x8828 +0xF74F 0x8826 +0xF750 0x882A +0xF751 0x8825 +0xF752 0x8971 +0xF753 0x89BF +0xF754 0x89BE +0xF755 0x89FB +0xF756 0x8B7E +0xF757 0x8B84 +0xF758 0x8B82 +0xF759 0x8B86 +0xF75A 0x8B85 +0xF75B 0x8B7F +0xF75C 0x8D15 +0xF75D 0x8E95 +0xF75E 0x8E94 +0xF75F 0x8E9A +0xF760 0x8E92 +0xF761 0x8E90 +0xF762 0x8E96 +0xF763 0x8E97 +0xF764 0x8F60 +0xF765 0x8F62 +0xF766 0x9147 +0xF767 0x944C +0xF768 0x9450 +0xF769 0x944A +0xF76A 0x944B +0xF76B 0x944F +0xF76C 0x9447 +0xF76D 0x9445 +0xF76E 0x9448 +0xF76F 0x9449 +0xF770 0x9446 +0xF771 0x973F +0xF772 0x97E3 +0xF773 0x986A +0xF774 0x9869 +0xF775 0x98CB +0xF776 0x9954 +0xF777 0x995B +0xF778 0x9A4E +0xF779 0x9A53 +0xF77A 0x9A54 +0xF77B 0x9A4C +0xF77C 0x9A4F +0xF77D 0x9A48 +0xF77E 0x9A4A +0xF7A1 0x9A49 +0xF7A2 0x9A52 +0xF7A3 0x9A50 +0xF7A4 0x9AD0 +0xF7A5 0x9B19 +0xF7A6 0x9B2B +0xF7A7 0x9B3B +0xF7A8 0x9B56 +0xF7A9 0x9B55 +0xF7AA 0x9C46 +0xF7AB 0x9C48 +0xF7AC 0x9C3F +0xF7AD 0x9C44 +0xF7AE 0x9C39 +0xF7AF 0x9C33 +0xF7B0 0x9C41 +0xF7B1 0x9C3C +0xF7B2 0x9C37 +0xF7B3 0x9C34 +0xF7B4 0x9C32 +0xF7B5 0x9C3D +0xF7B6 0x9C36 +0xF7B7 0x9DDB +0xF7B8 0x9DD2 +0xF7B9 0x9DDE +0xF7BA 0x9DDA +0xF7BB 0x9DCB +0xF7BC 0x9DD0 +0xF7BD 0x9DDC +0xF7BE 0x9DD1 +0xF7BF 0x9DDF +0xF7C0 0x9DE9 +0xF7C1 0x9DD9 +0xF7C2 0x9DD8 +0xF7C3 0x9DD6 +0xF7C4 0x9DF5 +0xF7C5 0x9DD5 +0xF7C6 0x9DDD +0xF7C7 0x9EB6 +0xF7C8 0x9EF0 +0xF7C9 0x9F35 +0xF7CA 0x9F33 +0xF7CB 0x9F32 +0xF7CC 0x9F42 +0xF7CD 0x9F6B +0xF7CE 0x9F95 +0xF7CF 0x9FA2 +0xF7D0 0x513D +0xF7D1 0x5299 +0xF7D2 0x58E8 +0xF7D3 0x58E7 +0xF7D4 0x5972 +0xF7D5 0x5B4D +0xF7D6 0x5DD8 +0xF7D7 0x882F +0xF7D8 0x5F4F +0xF7D9 0x6201 +0xF7DA 0x6203 +0xF7DB 0x6204 +0xF7DC 0x6529 +0xF7DD 0x6525 +0xF7DE 0x6596 +0xF7DF 0x66EB +0xF7E0 0x6B11 +0xF7E1 0x6B12 +0xF7E2 0x6B0F +0xF7E3 0x6BCA +0xF7E4 0x705B +0xF7E5 0x705A +0xF7E6 0x7222 +0xF7E7 0x7382 +0xF7E8 0x7381 +0xF7E9 0x7383 +0xF7EA 0x7670 +0xF7EB 0x77D4 +0xF7EC 0x7C67 +0xF7ED 0x7C66 +0xF7EE 0x7E95 +0xF7EF 0x826C +0xF7F0 0x863A +0xF7F1 0x8640 +0xF7F2 0x8639 +0xF7F3 0x863C +0xF7F4 0x8631 +0xF7F5 0x863B +0xF7F6 0x863E +0xF7F7 0x8830 +0xF7F8 0x8832 +0xF7F9 0x882E +0xF7FA 0x8833 +0xF7FB 0x8976 +0xF7FC 0x8974 +0xF7FD 0x8973 +0xF7FE 0x89FE +0xF840 0x8B8C +0xF841 0x8B8E +0xF842 0x8B8B +0xF843 0x8B88 +0xF844 0x8C45 +0xF845 0x8D19 +0xF846 0x8E98 +0xF847 0x8F64 +0xF848 0x8F63 +0xF849 0x91BC +0xF84A 0x9462 +0xF84B 0x9455 +0xF84C 0x945D +0xF84D 0x9457 +0xF84E 0x945E +0xF84F 0x97C4 +0xF850 0x97C5 +0xF851 0x9800 +0xF852 0x9A56 +0xF853 0x9A59 +0xF854 0x9B1E +0xF855 0x9B1F +0xF856 0x9B20 +0xF857 0x9C52 +0xF858 0x9C58 +0xF859 0x9C50 +0xF85A 0x9C4A +0xF85B 0x9C4D +0xF85C 0x9C4B +0xF85D 0x9C55 +0xF85E 0x9C59 +0xF85F 0x9C4C +0xF860 0x9C4E +0xF861 0x9DFB +0xF862 0x9DF7 +0xF863 0x9DEF +0xF864 0x9DE3 +0xF865 0x9DEB +0xF866 0x9DF8 +0xF867 0x9DE4 +0xF868 0x9DF6 +0xF869 0x9DE1 +0xF86A 0x9DEE +0xF86B 0x9DE6 +0xF86C 0x9DF2 +0xF86D 0x9DF0 +0xF86E 0x9DE2 +0xF86F 0x9DEC +0xF870 0x9DF4 +0xF871 0x9DF3 +0xF872 0x9DE8 +0xF873 0x9DED +0xF874 0x9EC2 +0xF875 0x9ED0 +0xF876 0x9EF2 +0xF877 0x9EF3 +0xF878 0x9F06 +0xF879 0x9F1C +0xF87A 0x9F38 +0xF87B 0x9F37 +0xF87C 0x9F36 +0xF87D 0x9F43 +0xF87E 0x9F4F +0xF8A1 0x9F71 +0xF8A2 0x9F70 +0xF8A3 0x9F6E +0xF8A4 0x9F6F +0xF8A5 0x56D3 +0xF8A6 0x56CD +0xF8A7 0x5B4E +0xF8A8 0x5C6D +0xF8A9 0x652D +0xF8AA 0x66ED +0xF8AB 0x66EE +0xF8AC 0x6B13 +0xF8AD 0x705F +0xF8AE 0x7061 +0xF8AF 0x705D +0xF8B0 0x7060 +0xF8B1 0x7223 +0xF8B2 0x74DB +0xF8B3 0x74E5 +0xF8B4 0x77D5 +0xF8B5 0x7938 +0xF8B6 0x79B7 +0xF8B7 0x79B6 +0xF8B8 0x7C6A +0xF8B9 0x7E97 +0xF8BA 0x7F89 +0xF8BB 0x826D +0xF8BC 0x8643 +0xF8BD 0x8838 +0xF8BE 0x8837 +0xF8BF 0x8835 +0xF8C0 0x884B +0xF8C1 0x8B94 +0xF8C2 0x8B95 +0xF8C3 0x8E9E +0xF8C4 0x8E9F +0xF8C5 0x8EA0 +0xF8C6 0x8E9D +0xF8C7 0x91BE +0xF8C8 0x91BD +0xF8C9 0x91C2 +0xF8CA 0x946B +0xF8CB 0x9468 +0xF8CC 0x9469 +0xF8CD 0x96E5 +0xF8CE 0x9746 +0xF8CF 0x9743 +0xF8D0 0x9747 +0xF8D1 0x97C7 +0xF8D2 0x97E5 +0xF8D3 0x9A5E +0xF8D4 0x9AD5 +0xF8D5 0x9B59 +0xF8D6 0x9C63 +0xF8D7 0x9C67 +0xF8D8 0x9C66 +0xF8D9 0x9C62 +0xF8DA 0x9C5E +0xF8DB 0x9C60 +0xF8DC 0x9E02 +0xF8DD 0x9DFE +0xF8DE 0x9E07 +0xF8DF 0x9E03 +0xF8E0 0x9E06 +0xF8E1 0x9E05 +0xF8E2 0x9E00 +0xF8E3 0x9E01 +0xF8E4 0x9E09 +0xF8E5 0x9DFF +0xF8E6 0x9DFD +0xF8E7 0x9E04 +0xF8E8 0x9EA0 +0xF8E9 0x9F1E +0xF8EA 0x9F46 +0xF8EB 0x9F74 +0xF8EC 0x9F75 +0xF8ED 0x9F76 +0xF8EE 0x56D4 +0xF8EF 0x652E +0xF8F0 0x65B8 +0xF8F1 0x6B18 +0xF8F2 0x6B19 +0xF8F3 0x6B17 +0xF8F4 0x6B1A +0xF8F5 0x7062 +0xF8F6 0x7226 +0xF8F7 0x72AA +0xF8F8 0x77D8 +0xF8F9 0x77D9 +0xF8FA 0x7939 +0xF8FB 0x7C69 +0xF8FC 0x7C6B +0xF8FD 0x7CF6 +0xF8FE 0x7E9A +0xF940 0x7E98 +0xF941 0x7E9B +0xF942 0x7E99 +0xF943 0x81E0 +0xF944 0x81E1 +0xF945 0x8646 +0xF946 0x8647 +0xF947 0x8648 +0xF948 0x8979 +0xF949 0x897A +0xF94A 0x897C +0xF94B 0x897B +0xF94C 0x89FF +0xF94D 0x8B98 +0xF94E 0x8B99 +0xF94F 0x8EA5 +0xF950 0x8EA4 +0xF951 0x8EA3 +0xF952 0x946E +0xF953 0x946D +0xF954 0x946F +0xF955 0x9471 +0xF956 0x9473 +0xF957 0x9749 +0xF958 0x9872 +0xF959 0x995F +0xF95A 0x9C68 +0xF95B 0x9C6E +0xF95C 0x9C6D +0xF95D 0x9E0B +0xF95E 0x9E0D +0xF95F 0x9E10 +0xF960 0x9E0F +0xF961 0x9E12 +0xF962 0x9E11 +0xF963 0x9EA1 +0xF964 0x9EF5 +0xF965 0x9F09 +0xF966 0x9F47 +0xF967 0x9F78 +0xF968 0x9F7B +0xF969 0x9F7A +0xF96A 0x9F79 +0xF96B 0x571E +0xF96C 0x7066 +0xF96D 0x7C6F +0xF96E 0x883C +0xF96F 0x8DB2 +0xF970 0x8EA6 +0xF971 0x91C3 +0xF972 0x9474 +0xF973 0x9478 +0xF974 0x9476 +0xF975 0x9475 +0xF976 0x9A60 +0xF977 0x9C74 +0xF978 0x9C73 +0xF979 0x9C71 +0xF97A 0x9C75 +0xF97B 0x9E14 +0xF97C 0x9E13 +0xF97D 0x9EF6 +0xF97E 0x9F0A +0xF9A1 0x9FA4 +0xF9A2 0x7068 +0xF9A3 0x7065 +0xF9A4 0x7CF7 +0xF9A5 0x866A +0xF9A6 0x883E +0xF9A7 0x883D +0xF9A8 0x883F +0xF9A9 0x8B9E +0xF9AA 0x8C9C +0xF9AB 0x8EA9 +0xF9AC 0x8EC9 +0xF9AD 0x974B +0xF9AE 0x9873 +0xF9AF 0x9874 +0xF9B0 0x98CC +0xF9B1 0x9961 +0xF9B2 0x99AB +0xF9B3 0x9A64 +0xF9B4 0x9A66 +0xF9B5 0x9A67 +0xF9B6 0x9B24 +0xF9B7 0x9E15 +0xF9B8 0x9E17 +0xF9B9 0x9F48 +0xF9BA 0x6207 +0xF9BB 0x6B1E +0xF9BC 0x7227 +0xF9BD 0x864C +0xF9BE 0x8EA8 +0xF9BF 0x9482 +0xF9C0 0x9480 +0xF9C1 0x9481 +0xF9C2 0x9A69 +0xF9C3 0x9A68 +0xF9C4 0x9B2E +0xF9C5 0x9E19 +0xF9C6 0x7229 +0xF9C7 0x864B +0xF9C8 0x8B9F +0xF9C9 0x9483 +0xF9CA 0x9C79 +0xF9CB 0x9EB7 +0xF9CC 0x7675 +0xF9CD 0x9A6B +0xF9CE 0x9C7A +0xF9CF 0x9E1D +0xF9D0 0x7069 +0xF9D1 0x706A +0xF9D2 0x9EA4 +0xF9D3 0x9F7E +0xF9D4 0x9F49 +0xF9D5 0x9F98 +0xF9D6 0x7881 +0xF9D7 0x92B9 +0xF9D8 0x88CF +0xF9D9 0x58BB +0xF9DA 0x6052 +0xF9DB 0x7CA7 +0xF9DC 0x5AFA +0xF9DD 0x2554 +0xF9DE 0x2566 +0xF9DF 0x2557 +0xF9E0 0x2560 +0xF9E1 0x256C +0xF9E2 0x2563 +0xF9E3 0x255A +0xF9E4 0x2569 +0xF9E5 0x255D +0xF9E6 0x2552 +0xF9E7 0x2564 +0xF9E8 0x2555 +0xF9E9 0x255E +0xF9EA 0x256A +0xF9EB 0x2561 +0xF9EC 0x2558 +0xF9ED 0x2567 +0xF9EE 0x255B +0xF9EF 0x2553 +0xF9F0 0x2565 +0xF9F1 0x2556 +0xF9F2 0x255F +0xF9F3 0x256B +0xF9F4 0x2562 +0xF9F5 0x2559 +0xF9F6 0x2568 +0xF9F7 0x255C +0xF9F8 0x2551 +0xF9F9 0x2550 +0xF9FA 0x256D +0xF9FB 0x256E +0xF9FC 0x2570 +0xF9FD 0x256F +0xF9FE 0x2593 +0xFA40 0xE000 +0xFA41 0xE001 +0xFA42 0xE002 +0xFA43 0xE003 +0xFA44 0xE004 +0xFA45 0xE005 +0xFA46 0xE006 +0xFA47 0xE007 +0xFA48 0xE008 +0xFA49 0xE009 +0xFA4A 0xE00A +0xFA4B 0xE00B +0xFA4C 0xE00C +0xFA4D 0xE00D +0xFA4E 0xE00E +0xFA4F 0xE00F +0xFA50 0xE010 +0xFA51 0xE011 +0xFA52 0xE012 +0xFA53 0xE013 +0xFA54 0xE014 +0xFA55 0xE015 +0xFA56 0xE016 +0xFA57 0xE017 +0xFA58 0xE018 +0xFA59 0xE019 +0xFA5A 0xE01A +0xFA5B 0xE01B +0xFA5C 0xE01C +0xFA5D 0xE01D +0xFA5E 0xE01E +0xFA5F 0xE01F +0xFA60 0xE020 +0xFA61 0xE021 +0xFA62 0xE022 +0xFA63 0xE023 +0xFA64 0xE024 +0xFA65 0xE025 +0xFA66 0xE026 +0xFA67 0xE027 +0xFA68 0xE028 +0xFA69 0xE029 +0xFA6A 0xE02A +0xFA6B 0xE02B +0xFA6C 0xE02C +0xFA6D 0xE02D +0xFA6E 0xE02E +0xFA6F 0xE02F +0xFA70 0xE030 +0xFA71 0xE031 +0xFA72 0xE032 +0xFA73 0xE033 +0xFA74 0xE034 +0xFA75 0xE035 +0xFA76 0xE036 +0xFA77 0xE037 +0xFA78 0xE038 +0xFA79 0xE039 +0xFA7A 0xE03A +0xFA7B 0xE03B +0xFA7C 0xE03C +0xFA7D 0xE03D +0xFA7E 0xE03E +0xFAA1 0xE03F +0xFAA2 0xE040 +0xFAA3 0xE041 +0xFAA4 0xE042 +0xFAA5 0xE043 +0xFAA6 0xE044 +0xFAA7 0xE045 +0xFAA8 0xE046 +0xFAA9 0xE047 +0xFAAA 0xE048 +0xFAAB 0xE049 +0xFAAC 0xE04A +0xFAAD 0xE04B +0xFAAE 0xE04C +0xFAAF 0xE04D +0xFAB0 0xE04E +0xFAB1 0xE04F +0xFAB2 0xE050 +0xFAB3 0xE051 +0xFAB4 0xE052 +0xFAB5 0xE053 +0xFAB6 0xE054 +0xFAB7 0xE055 +0xFAB8 0xE056 +0xFAB9 0xE057 +0xFABA 0xE058 +0xFABB 0xE059 +0xFABC 0xE05A +0xFABD 0xE05B +0xFABE 0xE05C +0xFABF 0xE05D +0xFAC0 0xE05E +0xFAC1 0xE05F +0xFAC2 0xE060 +0xFAC3 0xE061 +0xFAC4 0xE062 +0xFAC5 0xE063 +0xFAC6 0xE064 +0xFAC7 0xE065 +0xFAC8 0xE066 +0xFAC9 0xE067 +0xFACA 0xE068 +0xFACB 0xE069 +0xFACC 0xE06A +0xFACD 0xE06B +0xFACE 0xE06C +0xFACF 0xE06D +0xFAD0 0xE06E +0xFAD1 0xE06F +0xFAD2 0xE070 +0xFAD3 0xE071 +0xFAD4 0xE072 +0xFAD5 0xE073 +0xFAD6 0xE074 +0xFAD7 0xE075 +0xFAD8 0xE076 +0xFAD9 0xE077 +0xFADA 0xE078 +0xFADB 0xE079 +0xFADC 0xE07A +0xFADD 0xE07B +0xFADE 0xE07C +0xFADF 0xE07D +0xFAE0 0xE07E +0xFAE1 0xE07F +0xFAE2 0xE080 +0xFAE3 0xE081 +0xFAE4 0xE082 +0xFAE5 0xE083 +0xFAE6 0xE084 +0xFAE7 0xE085 +0xFAE8 0xE086 +0xFAE9 0xE087 +0xFAEA 0xE088 +0xFAEB 0xE089 +0xFAEC 0xE08A +0xFAED 0xE08B +0xFAEE 0xE08C +0xFAEF 0xE08D +0xFAF0 0xE08E +0xFAF1 0xE08F +0xFAF2 0xE090 +0xFAF3 0xE091 +0xFAF4 0xE092 +0xFAF5 0xE093 +0xFAF6 0xE094 +0xFAF7 0xE095 +0xFAF8 0xE096 +0xFAF9 0xE097 +0xFAFA 0xE098 +0xFAFB 0xE099 +0xFAFC 0xE09A +0xFAFD 0xE09B +0xFAFE 0xE09C +0xFB40 0xE09D +0xFB41 0xE09E +0xFB42 0xE09F +0xFB43 0xE0A0 +0xFB44 0xE0A1 +0xFB45 0xE0A2 +0xFB46 0xE0A3 +0xFB47 0xE0A4 +0xFB48 0xE0A5 +0xFB49 0xE0A6 +0xFB4A 0xE0A7 +0xFB4B 0xE0A8 +0xFB4C 0xE0A9 +0xFB4D 0xE0AA +0xFB4E 0xE0AB +0xFB4F 0xE0AC +0xFB50 0xE0AD +0xFB51 0xE0AE +0xFB52 0xE0AF +0xFB53 0xE0B0 +0xFB54 0xE0B1 +0xFB55 0xE0B2 +0xFB56 0xE0B3 +0xFB57 0xE0B4 +0xFB58 0xE0B5 +0xFB59 0xE0B6 +0xFB5A 0xE0B7 +0xFB5B 0xE0B8 +0xFB5C 0xE0B9 +0xFB5D 0xE0BA +0xFB5E 0xE0BB +0xFB5F 0xE0BC +0xFB60 0xE0BD +0xFB61 0xE0BE +0xFB62 0xE0BF +0xFB63 0xE0C0 +0xFB64 0xE0C1 +0xFB65 0xE0C2 +0xFB66 0xE0C3 +0xFB67 0xE0C4 +0xFB68 0xE0C5 +0xFB69 0xE0C6 +0xFB6A 0xE0C7 +0xFB6B 0xE0C8 +0xFB6C 0xE0C9 +0xFB6D 0xE0CA +0xFB6E 0xE0CB +0xFB6F 0xE0CC +0xFB70 0xE0CD +0xFB71 0xE0CE +0xFB72 0xE0CF +0xFB73 0xE0D0 +0xFB74 0xE0D1 +0xFB75 0xE0D2 +0xFB76 0xE0D3 +0xFB77 0xE0D4 +0xFB78 0xE0D5 +0xFB79 0xE0D6 +0xFB7A 0xE0D7 +0xFB7B 0xE0D8 +0xFB7C 0xE0D9 +0xFB7D 0xE0DA +0xFB7E 0xE0DB +0xFBA1 0xE0DC +0xFBA2 0xE0DD +0xFBA3 0xE0DE +0xFBA4 0xE0DF +0xFBA5 0xE0E0 +0xFBA6 0xE0E1 +0xFBA7 0xE0E2 +0xFBA8 0xE0E3 +0xFBA9 0xE0E4 +0xFBAA 0xE0E5 +0xFBAB 0xE0E6 +0xFBAC 0xE0E7 +0xFBAD 0xE0E8 +0xFBAE 0xE0E9 +0xFBAF 0xE0EA +0xFBB0 0xE0EB +0xFBB1 0xE0EC +0xFBB2 0xE0ED +0xFBB3 0xE0EE +0xFBB4 0xE0EF +0xFBB5 0xE0F0 +0xFBB6 0xE0F1 +0xFBB7 0xE0F2 +0xFBB8 0xE0F3 +0xFBB9 0xE0F4 +0xFBBA 0xE0F5 +0xFBBB 0xE0F6 +0xFBBC 0xE0F7 +0xFBBD 0xE0F8 +0xFBBE 0xE0F9 +0xFBBF 0xE0FA +0xFBC0 0xE0FB +0xFBC1 0xE0FC +0xFBC2 0xE0FD +0xFBC3 0xE0FE +0xFBC4 0xE0FF +0xFBC5 0xE100 +0xFBC6 0xE101 +0xFBC7 0xE102 +0xFBC8 0xE103 +0xFBC9 0xE104 +0xFBCA 0xE105 +0xFBCB 0xE106 +0xFBCC 0xE107 +0xFBCD 0xE108 +0xFBCE 0xE109 +0xFBCF 0xE10A +0xFBD0 0xE10B +0xFBD1 0xE10C +0xFBD2 0xE10D +0xFBD3 0xE10E +0xFBD4 0xE10F +0xFBD5 0xE110 +0xFBD6 0xE111 +0xFBD7 0xE112 +0xFBD8 0xE113 +0xFBD9 0xE114 +0xFBDA 0xE115 +0xFBDB 0xE116 +0xFBDC 0xE117 +0xFBDD 0xE118 +0xFBDE 0xE119 +0xFBDF 0xE11A +0xFBE0 0xE11B +0xFBE1 0xE11C +0xFBE2 0xE11D +0xFBE3 0xE11E +0xFBE4 0xE11F +0xFBE5 0xE120 +0xFBE6 0xE121 +0xFBE7 0xE122 +0xFBE8 0xE123 +0xFBE9 0xE124 +0xFBEA 0xE125 +0xFBEB 0xE126 +0xFBEC 0xE127 +0xFBED 0xE128 +0xFBEE 0xE129 +0xFBEF 0xE12A +0xFBF0 0xE12B +0xFBF1 0xE12C +0xFBF2 0xE12D +0xFBF3 0xE12E +0xFBF4 0xE12F +0xFBF5 0xE130 +0xFBF6 0xE131 +0xFBF7 0xE132 +0xFBF8 0xE133 +0xFBF9 0xE134 +0xFBFA 0xE135 +0xFBFB 0xE136 +0xFBFC 0xE137 +0xFBFD 0xE138 +0xFBFE 0xE139 +0xFC40 0xE13A +0xFC41 0xE13B +0xFC42 0xE13C +0xFC43 0xE13D +0xFC44 0xE13E +0xFC45 0xE13F +0xFC46 0xE140 +0xFC47 0xE141 +0xFC48 0xE142 +0xFC49 0xE143 +0xFC4A 0xE144 +0xFC4B 0xE145 +0xFC4C 0xE146 +0xFC4D 0xE147 +0xFC4E 0xE148 +0xFC4F 0xE149 +0xFC50 0xE14A +0xFC51 0xE14B +0xFC52 0xE14C +0xFC53 0xE14D +0xFC54 0xE14E +0xFC55 0xE14F +0xFC56 0xE150 +0xFC57 0xE151 +0xFC58 0xE152 +0xFC59 0xE153 +0xFC5A 0xE154 +0xFC5B 0xE155 +0xFC5C 0xE156 +0xFC5D 0xE157 +0xFC5E 0xE158 +0xFC5F 0xE159 +0xFC60 0xE15A +0xFC61 0xE15B +0xFC62 0xE15C +0xFC63 0xE15D +0xFC64 0xE15E +0xFC65 0xE15F +0xFC66 0xE160 +0xFC67 0xE161 +0xFC68 0xE162 +0xFC69 0xE163 +0xFC6A 0xE164 +0xFC6B 0xE165 +0xFC6C 0xE166 +0xFC6D 0xE167 +0xFC6E 0xE168 +0xFC6F 0xE169 +0xFC70 0xE16A +0xFC71 0xE16B +0xFC72 0xE16C +0xFC73 0xE16D +0xFC74 0xE16E +0xFC75 0xE16F +0xFC76 0xE170 +0xFC77 0xE171 +0xFC78 0xE172 +0xFC79 0xE173 +0xFC7A 0xE174 +0xFC7B 0xE175 +0xFC7C 0xE176 +0xFC7D 0xE177 +0xFC7E 0xE178 +0xFCA1 0xE179 +0xFCA2 0xE17A +0xFCA3 0xE17B +0xFCA4 0xE17C +0xFCA5 0xE17D +0xFCA6 0xE17E +0xFCA7 0xE17F +0xFCA8 0xE180 +0xFCA9 0xE181 +0xFCAA 0xE182 +0xFCAB 0xE183 +0xFCAC 0xE184 +0xFCAD 0xE185 +0xFCAE 0xE186 +0xFCAF 0xE187 +0xFCB0 0xE188 +0xFCB1 0xE189 +0xFCB2 0xE18A +0xFCB3 0xE18B +0xFCB4 0xE18C +0xFCB5 0xE18D +0xFCB6 0xE18E +0xFCB7 0xE18F +0xFCB8 0xE190 +0xFCB9 0xE191 +0xFCBA 0xE192 +0xFCBB 0xE193 +0xFCBC 0xE194 +0xFCBD 0xE195 +0xFCBE 0xE196 +0xFCBF 0xE197 +0xFCC0 0xE198 +0xFCC1 0xE199 +0xFCC2 0xE19A +0xFCC3 0xE19B +0xFCC4 0xE19C +0xFCC5 0xE19D +0xFCC6 0xE19E +0xFCC7 0xE19F +0xFCC8 0xE1A0 +0xFCC9 0xE1A1 +0xFCCA 0xE1A2 +0xFCCB 0xE1A3 +0xFCCC 0xE1A4 +0xFCCD 0xE1A5 +0xFCCE 0xE1A6 +0xFCCF 0xE1A7 +0xFCD0 0xE1A8 +0xFCD1 0xE1A9 +0xFCD2 0xE1AA +0xFCD3 0xE1AB +0xFCD4 0xE1AC +0xFCD5 0xE1AD +0xFCD6 0xE1AE +0xFCD7 0xE1AF +0xFCD8 0xE1B0 +0xFCD9 0xE1B1 +0xFCDA 0xE1B2 +0xFCDB 0xE1B3 +0xFCDC 0xE1B4 +0xFCDD 0xE1B5 +0xFCDE 0xE1B6 +0xFCDF 0xE1B7 +0xFCE0 0xE1B8 +0xFCE1 0xE1B9 +0xFCE2 0xE1BA +0xFCE3 0xE1BB +0xFCE4 0xE1BC +0xFCE5 0xE1BD +0xFCE6 0xE1BE +0xFCE7 0xE1BF +0xFCE8 0xE1C0 +0xFCE9 0xE1C1 +0xFCEA 0xE1C2 +0xFCEB 0xE1C3 +0xFCEC 0xE1C4 +0xFCED 0xE1C5 +0xFCEE 0xE1C6 +0xFCEF 0xE1C7 +0xFCF0 0xE1C8 +0xFCF1 0xE1C9 +0xFCF2 0xE1CA +0xFCF3 0xE1CB +0xFCF4 0xE1CC +0xFCF5 0xE1CD +0xFCF6 0xE1CE +0xFCF7 0xE1CF +0xFCF8 0xE1D0 +0xFCF9 0xE1D1 +0xFCFA 0xE1D2 +0xFCFB 0xE1D3 +0xFCFC 0xE1D4 +0xFCFD 0xE1D5 +0xFCFE 0xE1D6 +0xFD40 0xE1D7 +0xFD41 0xE1D8 +0xFD42 0xE1D9 +0xFD43 0xE1DA +0xFD44 0xE1DB +0xFD45 0xE1DC +0xFD46 0xE1DD +0xFD47 0xE1DE +0xFD48 0xE1DF +0xFD49 0xE1E0 +0xFD4A 0xE1E1 +0xFD4B 0xE1E2 +0xFD4C 0xE1E3 +0xFD4D 0xE1E4 +0xFD4E 0xE1E5 +0xFD4F 0xE1E6 +0xFD50 0xE1E7 +0xFD51 0xE1E8 +0xFD52 0xE1E9 +0xFD53 0xE1EA +0xFD54 0xE1EB +0xFD55 0xE1EC +0xFD56 0xE1ED +0xFD57 0xE1EE +0xFD58 0xE1EF +0xFD59 0xE1F0 +0xFD5A 0xE1F1 +0xFD5B 0xE1F2 +0xFD5C 0xE1F3 +0xFD5D 0xE1F4 +0xFD5E 0xE1F5 +0xFD5F 0xE1F6 +0xFD60 0xE1F7 +0xFD61 0xE1F8 +0xFD62 0xE1F9 +0xFD63 0xE1FA +0xFD64 0xE1FB +0xFD65 0xE1FC +0xFD66 0xE1FD +0xFD67 0xE1FE +0xFD68 0xE1FF +0xFD69 0xE200 +0xFD6A 0xE201 +0xFD6B 0xE202 +0xFD6C 0xE203 +0xFD6D 0xE204 +0xFD6E 0xE205 +0xFD6F 0xE206 +0xFD70 0xE207 +0xFD71 0xE208 +0xFD72 0xE209 +0xFD73 0xE20A +0xFD74 0xE20B +0xFD75 0xE20C +0xFD76 0xE20D +0xFD77 0xE20E +0xFD78 0xE20F +0xFD79 0xE210 +0xFD7A 0xE211 +0xFD7B 0xE212 +0xFD7C 0xE213 +0xFD7D 0xE214 +0xFD7E 0xE215 +0xFDA1 0xE216 +0xFDA2 0xE217 +0xFDA3 0xE218 +0xFDA4 0xE219 +0xFDA5 0xE21A +0xFDA6 0xE21B +0xFDA7 0xE21C +0xFDA8 0xE21D +0xFDA9 0xE21E +0xFDAA 0xE21F +0xFDAB 0xE220 +0xFDAC 0xE221 +0xFDAD 0xE222 +0xFDAE 0xE223 +0xFDAF 0xE224 +0xFDB0 0xE225 +0xFDB1 0xE226 +0xFDB2 0xE227 +0xFDB3 0xE228 +0xFDB4 0xE229 +0xFDB5 0xE22A +0xFDB6 0xE22B +0xFDB7 0xE22C +0xFDB8 0xE22D +0xFDB9 0xE22E +0xFDBA 0xE22F +0xFDBB 0xE230 +0xFDBC 0xE231 +0xFDBD 0xE232 +0xFDBE 0xE233 +0xFDBF 0xE234 +0xFDC0 0xE235 +0xFDC1 0xE236 +0xFDC2 0xE237 +0xFDC3 0xE238 +0xFDC4 0xE239 +0xFDC5 0xE23A +0xFDC6 0xE23B +0xFDC7 0xE23C +0xFDC8 0xE23D +0xFDC9 0xE23E +0xFDCA 0xE23F +0xFDCB 0xE240 +0xFDCC 0xE241 +0xFDCD 0xE242 +0xFDCE 0xE243 +0xFDCF 0xE244 +0xFDD0 0xE245 +0xFDD1 0xE246 +0xFDD2 0xE247 +0xFDD3 0xE248 +0xFDD4 0xE249 +0xFDD5 0xE24A +0xFDD6 0xE24B +0xFDD7 0xE24C +0xFDD8 0xE24D +0xFDD9 0xE24E +0xFDDA 0xE24F +0xFDDB 0xE250 +0xFDDC 0xE251 +0xFDDD 0xE252 +0xFDDE 0xE253 +0xFDDF 0xE254 +0xFDE0 0xE255 +0xFDE1 0xE256 +0xFDE2 0xE257 +0xFDE3 0xE258 +0xFDE4 0xE259 +0xFDE5 0xE25A +0xFDE6 0xE25B +0xFDE7 0xE25C +0xFDE8 0xE25D +0xFDE9 0xE25E +0xFDEA 0xE25F +0xFDEB 0xE260 +0xFDEC 0xE261 +0xFDED 0xE262 +0xFDEE 0xE263 +0xFDEF 0xE264 +0xFDF0 0xE265 +0xFDF1 0xE266 +0xFDF2 0xE267 +0xFDF3 0xE268 +0xFDF4 0xE269 +0xFDF5 0xE26A +0xFDF6 0xE26B +0xFDF7 0xE26C +0xFDF8 0xE26D +0xFDF9 0xE26E +0xFDFA 0xE26F +0xFDFB 0xE270 +0xFDFC 0xE271 +0xFDFD 0xE272 +0xFDFE 0xE273 +0xFE40 0xE274 +0xFE41 0xE275 +0xFE42 0xE276 +0xFE43 0xE277 +0xFE44 0xE278 +0xFE45 0xE279 +0xFE46 0xE27A +0xFE47 0xE27B +0xFE48 0xE27C +0xFE49 0xE27D +0xFE4A 0xE27E +0xFE4B 0xE27F +0xFE4C 0xE280 +0xFE4D 0xE281 +0xFE4E 0xE282 +0xFE4F 0xE283 +0xFE50 0xE284 +0xFE51 0xE285 +0xFE52 0xE286 +0xFE53 0xE287 +0xFE54 0xE288 +0xFE55 0xE289 +0xFE56 0xE28A +0xFE57 0xE28B +0xFE58 0xE28C +0xFE59 0xE28D +0xFE5A 0xE28E +0xFE5B 0xE28F +0xFE5C 0xE290 +0xFE5D 0xE291 +0xFE5E 0xE292 +0xFE5F 0xE293 +0xFE60 0xE294 +0xFE61 0xE295 +0xFE62 0xE296 +0xFE63 0xE297 +0xFE64 0xE298 +0xFE65 0xE299 +0xFE66 0xE29A +0xFE67 0xE29B +0xFE68 0xE29C +0xFE69 0xE29D +0xFE6A 0xE29E +0xFE6B 0xE29F +0xFE6C 0xE2A0 +0xFE6D 0xE2A1 +0xFE6E 0xE2A2 +0xFE6F 0xE2A3 +0xFE70 0xE2A4 +0xFE71 0xE2A5 +0xFE72 0xE2A6 +0xFE73 0xE2A7 +0xFE74 0xE2A8 +0xFE75 0xE2A9 +0xFE76 0xE2AA +0xFE77 0xE2AB +0xFE78 0xE2AC +0xFE79 0xE2AD +0xFE7A 0xE2AE +0xFE7B 0xE2AF +0xFE7C 0xE2B0 +0xFE7D 0xE2B1 +0xFE7E 0xE2B2 +0xFEA1 0xE2B3 +0xFEA2 0xE2B4 +0xFEA3 0xE2B5 +0xFEA4 0xE2B6 +0xFEA5 0xE2B7 +0xFEA6 0xE2B8 +0xFEA7 0xE2B9 +0xFEA8 0xE2BA +0xFEA9 0xE2BB +0xFEAA 0xE2BC +0xFEAB 0xE2BD +0xFEAC 0xE2BE +0xFEAD 0xE2BF +0xFEAE 0xE2C0 +0xFEAF 0xE2C1 +0xFEB0 0xE2C2 +0xFEB1 0xE2C3 +0xFEB2 0xE2C4 +0xFEB3 0xE2C5 +0xFEB4 0xE2C6 +0xFEB5 0xE2C7 +0xFEB6 0xE2C8 +0xFEB7 0xE2C9 +0xFEB8 0xE2CA +0xFEB9 0xE2CB +0xFEBA 0xE2CC +0xFEBB 0xE2CD +0xFEBC 0xE2CE +0xFEBD 0xE2CF +0xFEBE 0xE2D0 +0xFEBF 0xE2D1 +0xFEC0 0xE2D2 +0xFEC1 0xE2D3 +0xFEC2 0xE2D4 +0xFEC3 0xE2D5 +0xFEC4 0xE2D6 +0xFEC5 0xE2D7 +0xFEC6 0xE2D8 +0xFEC7 0xE2D9 +0xFEC8 0xE2DA +0xFEC9 0xE2DB +0xFECA 0xE2DC +0xFECB 0xE2DD +0xFECC 0xE2DE +0xFECD 0xE2DF +0xFECE 0xE2E0 +0xFECF 0xE2E1 +0xFED0 0xE2E2 +0xFED1 0xE2E3 +0xFED2 0xE2E4 +0xFED3 0xE2E5 +0xFED4 0xE2E6 +0xFED5 0xE2E7 +0xFED6 0xE2E8 +0xFED7 0xE2E9 +0xFED8 0xE2EA +0xFED9 0xE2EB +0xFEDA 0xE2EC +0xFEDB 0xE2ED +0xFEDC 0xE2EE +0xFEDD 0xE2EF +0xFEDE 0xE2F0 +0xFEDF 0xE2F1 +0xFEE0 0xE2F2 +0xFEE1 0xE2F3 +0xFEE2 0xE2F4 +0xFEE3 0xE2F5 +0xFEE4 0xE2F6 +0xFEE5 0xE2F7 +0xFEE6 0xE2F8 +0xFEE7 0xE2F9 +0xFEE8 0xE2FA +0xFEE9 0xE2FB +0xFEEA 0xE2FC +0xFEEB 0xE2FD +0xFEEC 0xE2FE +0xFEED 0xE2FF +0xFEEE 0xE300 +0xFEEF 0xE301 +0xFEF0 0xE302 +0xFEF1 0xE303 +0xFEF2 0xE304 +0xFEF3 0xE305 +0xFEF4 0xE306 +0xFEF5 0xE307 +0xFEF6 0xE308 +0xFEF7 0xE309 +0xFEF8 0xE30A +0xFEF9 0xE30B +0xFEFA 0xE30C +0xFEFB 0xE30D +0xFEFC 0xE30E +0xFEFD 0xE30F +0xFEFE 0xE310 diff --git a/3rdPartner/libiconv/tests/DEC-HANYU.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/DEC-HANYU.IRREVERSIBLE.TXT new file mode 100644 index 0000000..34866bb --- /dev/null +++ b/3rdPartner/libiconv/tests/DEC-HANYU.IRREVERSIBLE.TXT @@ -0,0 +1 @@ +0xC2CBA1B8 0x5344 diff --git a/3rdPartner/libiconv/tests/DEC-HANYU.TXT b/3rdPartner/libiconv/tests/DEC-HANYU.TXT new file mode 100644 index 0000000..3347cae --- /dev/null +++ b/3rdPartner/libiconv/tests/DEC-HANYU.TXT @@ -0,0 +1,20039 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA121 0x4E42 +0xA122 0x4E5C +0xA123 0x51F5 +0xA124 0x531A +0xA125 0x5382 +0xA126 0x4E07 +0xA127 0x4E0C +0xA128 0x4E47 +0xA129 0x4E8D +0xA12A 0x56D7 +0xA12B 0x5C6E +0xA12C 0x5F73 +0xA12D 0x4E0F +0xA12E 0x5187 +0xA12F 0x4E0E +0xA130 0x4E2E +0xA131 0x4E93 +0xA132 0x4EC2 +0xA133 0x4EC9 +0xA134 0x4EC8 +0xA135 0x5198 +0xA136 0x52FC +0xA137 0x536C +0xA138 0x53B9 +0xA139 0x5720 +0xA13A 0x5903 +0xA13B 0x592C +0xA13C 0x5C10 +0xA13D 0x5DFF +0xA13E 0x65E1 +0xA13F 0x6BB3 +0xA140 0x6BCC +0xA141 0x6C14 +0xA142 0x723F +0xA143 0x4E31 +0xA144 0x4E3C +0xA145 0x4EE8 +0xA146 0x4EDC +0xA147 0x4EE9 +0xA148 0x4EE1 +0xA149 0x4EDD +0xA14A 0x4EDA +0xA14B 0x520C +0xA14C 0x5209 +0xA14D 0x531C +0xA14E 0x534C +0xA14F 0x5722 +0xA150 0x5723 +0xA151 0x5917 +0xA152 0x592F +0xA153 0x5B81 +0xA154 0x5B84 +0xA155 0x5C12 +0xA156 0x5C3B +0xA157 0x5C74 +0xA158 0x5C73 +0xA159 0x5E04 +0xA15A 0x5E80 +0xA15B 0x5E82 +0xA15C 0x5FC9 +0xA15D 0x6209 +0xA15E 0x6250 +0xA15F 0x6C15 +0xA160 0x6C36 +0xA161 0x6C43 +0xA162 0x6C3F +0xA163 0x6C3B +0xA164 0x72AE +0xA165 0x72B0 +0xA166 0x738A +0xA167 0x79B8 +0xA168 0x808A +0xA169 0x961E +0xA16A 0x4F0E +0xA16B 0x4F18 +0xA16C 0x4F2C +0xA16D 0x4EF5 +0xA16E 0x4F14 +0xA16F 0x4EF1 +0xA170 0x4F00 +0xA171 0x4EF7 +0xA172 0x4F08 +0xA173 0x4F1D +0xA174 0x4F02 +0xA175 0x4F05 +0xA176 0x4F22 +0xA177 0x4F13 +0xA178 0x4F04 +0xA179 0x4EF4 +0xA17A 0x4F12 +0xA17B 0x51B1 +0xA17C 0x5213 +0xA17D 0x5210 +0xA17E 0x52A6 +0xA1A1 0x3000 +0xA1A2 0xFF0C +0xA1A3 0x3001 +0xA1A4 0x3002 +0xA1A5 0xFF0E +0xA1A6 0x30FB +0xA1A7 0xFF1B +0xA1A8 0xFF1A +0xA1A9 0xFF1F +0xA1AA 0xFF01 +0xA1AB 0xFE30 +0xA1AC 0x2026 +0xA1AD 0x2025 +0xA1AE 0xFE50 +0xA1AF 0xFE51 +0xA1B0 0xFE52 +0xA1B1 0x00B7 +0xA1B2 0xFE54 +0xA1B3 0xFE55 +0xA1B4 0xFE56 +0xA1B5 0xFE57 +0xA1B6 0xFE31 +0xA1B7 0x2014 +0xA1B8 0xFE32 +0xA1B9 0x2013 +0xA1BE 0xFF08 +0xA1BF 0xFF09 +0xA1C0 0xFE35 +0xA1C1 0xFE36 +0xA1C2 0xFF5B +0xA1C3 0xFF5D +0xA1C4 0xFE37 +0xA1C5 0xFE38 +0xA1C6 0x3014 +0xA1C7 0x3015 +0xA1C8 0xFE39 +0xA1C9 0xFE3A +0xA1CA 0x3010 +0xA1CB 0x3011 +0xA1CC 0xFE3B +0xA1CD 0xFE3C +0xA1CE 0x300A +0xA1CF 0x300B +0xA1D0 0xFE3D +0xA1D1 0xFE3E +0xA1D2 0x3008 +0xA1D3 0x3009 +0xA1D4 0xFE3F +0xA1D5 0xFE40 +0xA1D6 0x300C +0xA1D7 0x300D +0xA1D8 0xFE41 +0xA1D9 0xFE42 +0xA1DA 0x300E +0xA1DB 0x300F +0xA1DC 0xFE43 +0xA1DD 0xFE44 +0xA1DE 0xFE59 +0xA1DF 0xFE5A +0xA1E0 0xFE5B +0xA1E1 0xFE5C +0xA1E2 0xFE5D +0xA1E3 0xFE5E +0xA1E4 0x2018 +0xA1E5 0x2019 +0xA1E6 0x201C +0xA1E7 0x201D +0xA1E8 0x301D +0xA1E9 0x301E +0xA1EA 0x2032 +0xA1EB 0x2035 +0xA1EC 0xFF03 +0xA1ED 0xFF06 +0xA1EE 0xFF0A +0xA1EF 0x203B +0xA1F0 0x00A7 +0xA1F1 0x3003 +0xA1F2 0x25CB +0xA1F3 0x25CF +0xA1F4 0x25B3 +0xA1F5 0x25B2 +0xA1F6 0x25CE +0xA1F7 0x2606 +0xA1F8 0x2605 +0xA1F9 0x25C7 +0xA1FA 0x25C6 +0xA1FB 0x25A1 +0xA1FC 0x25A0 +0xA1FD 0x25BD +0xA1FE 0x25BC +0xA221 0x5322 +0xA222 0x531F +0xA223 0x534D +0xA224 0x538A +0xA225 0x5407 +0xA226 0x56E1 +0xA227 0x56DF +0xA228 0x572E +0xA229 0x572A +0xA22A 0x5734 +0xA22B 0x593C +0xA22C 0x5980 +0xA22D 0x597C +0xA22E 0x5985 +0xA22F 0x597B +0xA230 0x597E +0xA231 0x5977 +0xA232 0x597F +0xA233 0x5B56 +0xA234 0x5C15 +0xA235 0x5C25 +0xA236 0x5C7C +0xA237 0x5C7A +0xA238 0x5C7B +0xA239 0x5C7E +0xA23A 0x5DDF +0xA23B 0x5E75 +0xA23C 0x5E84 +0xA23D 0x5F02 +0xA23E 0x5F1A +0xA23F 0x5F74 +0xA240 0x5FD5 +0xA241 0x5FD4 +0xA242 0x5FCF +0xA243 0x625C +0xA244 0x625E +0xA245 0x6264 +0xA246 0x6261 +0xA247 0x6266 +0xA248 0x6262 +0xA249 0x6259 +0xA24A 0x6260 +0xA24B 0x625A +0xA24C 0x6265 +0xA24D 0x6537 +0xA24E 0x65EF +0xA24F 0x65EE +0xA250 0x673E +0xA251 0x6739 +0xA252 0x6738 +0xA253 0x673B +0xA254 0x673A +0xA255 0x673F +0xA256 0x673C +0xA257 0x6733 +0xA258 0x6C18 +0xA259 0x6C46 +0xA25A 0x6C52 +0xA25B 0x6C5C +0xA25C 0x6C4F +0xA25D 0x6C4A +0xA25E 0x6C54 +0xA25F 0x6C4B +0xA260 0x6C4C +0xA261 0x7071 +0xA262 0x725E +0xA263 0x72B4 +0xA264 0x72B5 +0xA265 0x738E +0xA266 0x752A +0xA267 0x767F +0xA268 0x7A75 +0xA269 0x7F51 +0xA26A 0x8278 +0xA26B 0x827C +0xA26C 0x8280 +0xA26D 0x827D +0xA26E 0x827F +0xA26F 0x864D +0xA270 0x897E +0xA271 0x9099 +0xA272 0x9097 +0xA273 0x9098 +0xA274 0x909B +0xA275 0x9094 +0xA276 0x9622 +0xA277 0x9624 +0xA278 0x9620 +0xA279 0x9623 +0xA27A 0x4F56 +0xA27B 0x4F3B +0xA27C 0x4F62 +0xA27D 0x4F49 +0xA27E 0x4F53 +0xA2A1 0x32A3 +0xA2A2 0x2105 +0xA2A3 0x203E +0xA2A5 0xFF3F +0xA2A7 0xFE49 +0xA2A8 0xFE4A +0xA2A9 0xFE4D +0xA2AA 0xFE4E +0xA2AB 0xFE4B +0xA2AC 0xFE4C +0xA2AD 0xFE5F +0xA2AE 0xFE60 +0xA2AF 0xFE61 +0xA2B0 0xFF0B +0xA2B1 0xFF0D +0xA2B2 0x00D7 +0xA2B3 0x00F7 +0xA2B4 0x00B1 +0xA2B5 0x221A +0xA2B6 0xFF1C +0xA2B7 0xFF1E +0xA2B8 0xFF1D +0xA2B9 0x2266 +0xA2BA 0x2267 +0xA2BB 0x2260 +0xA2BC 0x221E +0xA2BD 0x2252 +0xA2BE 0x2261 +0xA2BF 0xFE62 +0xA2C0 0xFE63 +0xA2C1 0xFE64 +0xA2C2 0xFE66 +0xA2C3 0xFE65 +0xA2C4 0x223C +0xA2C5 0x2229 +0xA2C6 0x222A +0xA2C7 0x22A5 +0xA2C8 0x2220 +0xA2C9 0x221F +0xA2CA 0x22BF +0xA2CB 0x33D2 +0xA2CC 0x33D1 +0xA2CD 0x222B +0xA2CE 0x222E +0xA2CF 0x2235 +0xA2D0 0x2234 +0xA2D1 0x2640 +0xA2D2 0x2642 +0xA2D3 0x2641 +0xA2D4 0x2609 +0xA2D5 0x2191 +0xA2D6 0x2193 +0xA2D7 0x2192 +0xA2D8 0x2190 +0xA2D9 0x2196 +0xA2DA 0x2197 +0xA2DB 0x2199 +0xA2DC 0x2198 +0xA2DD 0x2016 +0xA2DE 0xFF5C +0xA2DF 0xFF0F +0xA2E0 0xFF3C +0xA2E1 0x2215 +0xA2E2 0xFE68 +0xA2E3 0xFF04 +0xA2E4 0xFFE5 +0xA2E5 0x3012 +0xA2E6 0xFFE0 +0xA2E7 0xFFE1 +0xA2E8 0xFF05 +0xA2E9 0xFF20 +0xA2EA 0x2103 +0xA2EB 0x2109 +0xA2EC 0xFE69 +0xA2ED 0xFE6A +0xA2EE 0xFE6B +0xA2EF 0x33D5 +0xA2F0 0x339C +0xA2F1 0x339D +0xA2F2 0x339E +0xA2F3 0x33CE +0xA2F4 0x33A1 +0xA2F5 0x338E +0xA2F6 0x338F +0xA2F7 0x33C4 +0xA2F8 0x00B0 +0xA2F9 0x5159 +0xA2FA 0x515B +0xA2FB 0x515E +0xA2FC 0x515D +0xA2FD 0x5161 +0xA2FE 0x5163 +0xA321 0x4F64 +0xA322 0x4F3E +0xA323 0x4F67 +0xA324 0x4F52 +0xA325 0x4F5F +0xA326 0x4F41 +0xA327 0x4F58 +0xA328 0x4F2D +0xA329 0x4F33 +0xA32A 0x4F3F +0xA32B 0x4F61 +0xA32C 0x518F +0xA32D 0x51B9 +0xA32E 0x521C +0xA32F 0x521E +0xA330 0x5221 +0xA331 0x52AD +0xA332 0x52AE +0xA333 0x5309 +0xA334 0x5363 +0xA335 0x5372 +0xA336 0x538E +0xA337 0x538F +0xA338 0x5430 +0xA339 0x5437 +0xA33A 0x542A +0xA33B 0x5454 +0xA33C 0x5445 +0xA33D 0x5419 +0xA33E 0x541C +0xA33F 0x5425 +0xA340 0x5418 +0xA341 0x543D +0xA342 0x544F +0xA343 0x5441 +0xA344 0x5428 +0xA345 0x5424 +0xA346 0x5447 +0xA347 0x56EE +0xA348 0x56E7 +0xA349 0x56E5 +0xA34A 0x5741 +0xA34B 0x5745 +0xA34C 0x574C +0xA34D 0x5749 +0xA34E 0x574B +0xA34F 0x5752 +0xA350 0x5906 +0xA351 0x5940 +0xA352 0x59A6 +0xA353 0x5998 +0xA354 0x59A0 +0xA355 0x5997 +0xA356 0x598E +0xA357 0x59A2 +0xA358 0x5990 +0xA359 0x598F +0xA35A 0x59A7 +0xA35B 0x59A1 +0xA35C 0x5B8E +0xA35D 0x5B92 +0xA35E 0x5C28 +0xA35F 0x5C2A +0xA360 0x5C8D +0xA361 0x5C8F +0xA362 0x5C88 +0xA363 0x5C8B +0xA364 0x5C89 +0xA365 0x5C92 +0xA366 0x5C8A +0xA367 0x5C86 +0xA368 0x5C93 +0xA369 0x5C95 +0xA36A 0x5DE0 +0xA36B 0x5E0A +0xA36C 0x5E0E +0xA36D 0x5E8B +0xA36E 0x5E89 +0xA36F 0x5E8C +0xA370 0x5E88 +0xA371 0x5E8D +0xA372 0x5F05 +0xA373 0x5F1D +0xA374 0x5F78 +0xA375 0x5F76 +0xA376 0x5FD2 +0xA377 0x5FD1 +0xA378 0x5FD0 +0xA379 0x5FED +0xA37A 0x5FE8 +0xA37B 0x5FEE +0xA37C 0x5FF3 +0xA37D 0x5FE1 +0xA37E 0x5FE4 +0xA3A1 0x55E7 +0xA3A2 0x74E9 +0xA3A3 0x7CCE +0xA3A4 0x2581 +0xA3A5 0x2582 +0xA3A6 0x2583 +0xA3A7 0x2584 +0xA3A8 0x2585 +0xA3A9 0x2586 +0xA3AA 0x2587 +0xA3AB 0x2588 +0xA3AC 0x258F +0xA3AD 0x258E +0xA3AE 0x258D +0xA3AF 0x258C +0xA3B0 0x258B +0xA3B1 0x258A +0xA3B2 0x2589 +0xA3B3 0x253C +0xA3B4 0x2534 +0xA3B5 0x252C +0xA3B6 0x2524 +0xA3B7 0x251C +0xA3B8 0x2594 +0xA3B9 0x2500 +0xA3BA 0x2502 +0xA3BB 0x2595 +0xA3BC 0x250C +0xA3BD 0x2510 +0xA3BE 0x2514 +0xA3BF 0x2518 +0xA3C0 0x256D +0xA3C1 0x256E +0xA3C2 0x2570 +0xA3C3 0x256F +0xA3C4 0x2550 +0xA3C5 0x255E +0xA3C6 0x256A +0xA3C7 0x2561 +0xA3C8 0x25E2 +0xA3C9 0x25E3 +0xA3CA 0x25E5 +0xA3CB 0x25E4 +0xA3CC 0x2571 +0xA3CD 0x2572 +0xA3CE 0x2573 +0xA421 0x5FE3 +0xA422 0x5FFA +0xA423 0x5FEF +0xA424 0x5FF7 +0xA425 0x5FFB +0xA426 0x6000 +0xA427 0x5FF4 +0xA428 0x623A +0xA429 0x6283 +0xA42A 0x628C +0xA42B 0x628E +0xA42C 0x628F +0xA42D 0x6294 +0xA42E 0x6287 +0xA42F 0x6271 +0xA430 0x627B +0xA431 0x627A +0xA432 0x6270 +0xA433 0x6281 +0xA434 0x6288 +0xA435 0x6277 +0xA436 0x627D +0xA437 0x6272 +0xA438 0x6274 +0xA439 0x65F0 +0xA43A 0x65F4 +0xA43B 0x65F3 +0xA43C 0x65F2 +0xA43D 0x65F5 +0xA43E 0x6745 +0xA43F 0x6747 +0xA440 0x6759 +0xA441 0x6755 +0xA442 0x674C +0xA443 0x6748 +0xA444 0x675D +0xA445 0x674D +0xA446 0x675A +0xA447 0x674B +0xA448 0x6BD0 +0xA449 0x6C19 +0xA44A 0x6C1A +0xA44B 0x6C78 +0xA44C 0x6C67 +0xA44D 0x6C6B +0xA44E 0x6C84 +0xA44F 0x6C8B +0xA450 0x6C8F +0xA451 0x6C71 +0xA452 0x6C6F +0xA453 0x6C69 +0xA454 0x6C9A +0xA455 0x6C6D +0xA456 0x6C87 +0xA457 0x6C95 +0xA458 0x6C9C +0xA459 0x6C66 +0xA45A 0x6C73 +0xA45B 0x6C65 +0xA45C 0x6C7B +0xA45D 0x6C8E +0xA45E 0x7074 +0xA45F 0x707A +0xA460 0x7263 +0xA461 0x72BF +0xA462 0x72BD +0xA463 0x72C3 +0xA464 0x72C6 +0xA465 0x72C1 +0xA466 0x72BA +0xA467 0x72C5 +0xA468 0x7395 +0xA469 0x7397 +0xA46A 0x7393 +0xA46B 0x7394 +0xA46C 0x7392 +0xA46D 0x753A +0xA46E 0x7539 +0xA46F 0x7594 +0xA470 0x7595 +0xA471 0x7681 +0xA472 0x793D +0xA473 0x8034 +0xA474 0x8095 +0xA475 0x8099 +0xA476 0x8090 +0xA477 0x8092 +0xA478 0x809C +0xA479 0x8290 +0xA47A 0x828F +0xA47B 0x8285 +0xA47C 0x828E +0xA47D 0x8291 +0xA47E 0x8293 +0xA4A1 0xFF10 +0xA4A2 0xFF11 +0xA4A3 0xFF12 +0xA4A4 0xFF13 +0xA4A5 0xFF14 +0xA4A6 0xFF15 +0xA4A7 0xFF16 +0xA4A8 0xFF17 +0xA4A9 0xFF18 +0xA4AA 0xFF19 +0xA4AB 0x2160 +0xA4AC 0x2161 +0xA4AD 0x2162 +0xA4AE 0x2163 +0xA4AF 0x2164 +0xA4B0 0x2165 +0xA4B1 0x2166 +0xA4B2 0x2167 +0xA4B3 0x2168 +0xA4B4 0x2169 +0xA4B5 0x3021 +0xA4B6 0x3022 +0xA4B7 0x3023 +0xA4B8 0x3024 +0xA4B9 0x3025 +0xA4BA 0x3026 +0xA4BB 0x3027 +0xA4BC 0x3028 +0xA4BD 0x3029 +0xA4BF 0x5344 +0xA4C1 0xFF21 +0xA4C2 0xFF22 +0xA4C3 0xFF23 +0xA4C4 0xFF24 +0xA4C5 0xFF25 +0xA4C6 0xFF26 +0xA4C7 0xFF27 +0xA4C8 0xFF28 +0xA4C9 0xFF29 +0xA4CA 0xFF2A +0xA4CB 0xFF2B +0xA4CC 0xFF2C +0xA4CD 0xFF2D +0xA4CE 0xFF2E +0xA4CF 0xFF2F +0xA4D0 0xFF30 +0xA4D1 0xFF31 +0xA4D2 0xFF32 +0xA4D3 0xFF33 +0xA4D4 0xFF34 +0xA4D5 0xFF35 +0xA4D6 0xFF36 +0xA4D7 0xFF37 +0xA4D8 0xFF38 +0xA4D9 0xFF39 +0xA4DA 0xFF3A +0xA4DB 0xFF41 +0xA4DC 0xFF42 +0xA4DD 0xFF43 +0xA4DE 0xFF44 +0xA4DF 0xFF45 +0xA4E0 0xFF46 +0xA4E1 0xFF47 +0xA4E2 0xFF48 +0xA4E3 0xFF49 +0xA4E4 0xFF4A +0xA4E5 0xFF4B +0xA4E6 0xFF4C +0xA4E7 0xFF4D +0xA4E8 0xFF4E +0xA4E9 0xFF4F +0xA4EA 0xFF50 +0xA4EB 0xFF51 +0xA4EC 0xFF52 +0xA4ED 0xFF53 +0xA4EE 0xFF54 +0xA4EF 0xFF55 +0xA4F0 0xFF56 +0xA4F1 0xFF57 +0xA4F2 0xFF58 +0xA4F3 0xFF59 +0xA4F4 0xFF5A +0xA4F5 0x0391 +0xA4F6 0x0392 +0xA4F7 0x0393 +0xA4F8 0x0394 +0xA4F9 0x0395 +0xA4FA 0x0396 +0xA4FB 0x0397 +0xA4FC 0x0398 +0xA4FD 0x0399 +0xA4FE 0x039A +0xA521 0x828A +0xA522 0x8283 +0xA523 0x8284 +0xA524 0x8C78 +0xA525 0x8FC9 +0xA526 0x8FBF +0xA527 0x909F +0xA528 0x90A1 +0xA529 0x90A5 +0xA52A 0x909E +0xA52B 0x90A7 +0xA52C 0x90A0 +0xA52D 0x9630 +0xA52E 0x9628 +0xA52F 0x962F +0xA530 0x962D +0xA531 0x4E33 +0xA532 0x4F98 +0xA533 0x4F7C +0xA534 0x4F85 +0xA535 0x4F7D +0xA536 0x4F80 +0xA537 0x4F87 +0xA538 0x4F76 +0xA539 0x4F74 +0xA53A 0x4F89 +0xA53B 0x4F84 +0xA53C 0x4F77 +0xA53D 0x4F4C +0xA53E 0x4F97 +0xA53F 0x4F6A +0xA540 0x4F9A +0xA541 0x4F79 +0xA542 0x4F81 +0xA543 0x4F78 +0xA544 0x4F90 +0xA545 0x4F9C +0xA546 0x4F94 +0xA547 0x4F9E +0xA548 0x4F92 +0xA549 0x4F82 +0xA54A 0x4F95 +0xA54B 0x4F6B +0xA54C 0x4F6E +0xA54D 0x519E +0xA54E 0x51BC +0xA54F 0x51BE +0xA550 0x5235 +0xA551 0x5232 +0xA552 0x5233 +0xA553 0x5246 +0xA554 0x5231 +0xA555 0x52BC +0xA556 0x530A +0xA557 0x530B +0xA558 0x533C +0xA559 0x5392 +0xA55A 0x5394 +0xA55B 0x5487 +0xA55C 0x547F +0xA55D 0x5481 +0xA55E 0x5491 +0xA55F 0x5482 +0xA560 0x5488 +0xA561 0x546B +0xA562 0x547A +0xA563 0x547E +0xA564 0x5465 +0xA565 0x546C +0xA566 0x5474 +0xA567 0x5466 +0xA568 0x548D +0xA569 0x546F +0xA56A 0x5461 +0xA56B 0x5460 +0xA56C 0x5498 +0xA56D 0x5463 +0xA56E 0x5467 +0xA56F 0x5464 +0xA570 0x56F7 +0xA571 0x56F9 +0xA572 0x576F +0xA573 0x5772 +0xA574 0x576D +0xA575 0x576B +0xA576 0x5771 +0xA577 0x5770 +0xA578 0x5776 +0xA579 0x5780 +0xA57A 0x5775 +0xA57B 0x577B +0xA57C 0x5773 +0xA57D 0x5774 +0xA57E 0x5762 +0xA5A1 0x039B +0xA5A2 0x039C +0xA5A3 0x039D +0xA5A4 0x039E +0xA5A5 0x039F +0xA5A6 0x03A0 +0xA5A7 0x03A1 +0xA5A8 0x03A3 +0xA5A9 0x03A4 +0xA5AA 0x03A5 +0xA5AB 0x03A6 +0xA5AC 0x03A7 +0xA5AD 0x03A8 +0xA5AE 0x03A9 +0xA5AF 0x03B1 +0xA5B0 0x03B2 +0xA5B1 0x03B3 +0xA5B2 0x03B4 +0xA5B3 0x03B5 +0xA5B4 0x03B6 +0xA5B5 0x03B7 +0xA5B6 0x03B8 +0xA5B7 0x03B9 +0xA5B8 0x03BA +0xA5B9 0x03BB +0xA5BA 0x03BC +0xA5BB 0x03BD +0xA5BC 0x03BE +0xA5BD 0x03BF +0xA5BE 0x03C0 +0xA5BF 0x03C1 +0xA5C0 0x03C3 +0xA5C1 0x03C4 +0xA5C2 0x03C5 +0xA5C3 0x03C6 +0xA5C4 0x03C7 +0xA5C5 0x03C8 +0xA5C6 0x03C9 +0xA5C7 0x3105 +0xA5C8 0x3106 +0xA5C9 0x3107 +0xA5CA 0x3108 +0xA5CB 0x3109 +0xA5CC 0x310A +0xA5CD 0x310B +0xA5CE 0x310C +0xA5CF 0x310D +0xA5D0 0x310E +0xA5D1 0x310F +0xA5D2 0x3110 +0xA5D3 0x3111 +0xA5D4 0x3112 +0xA5D5 0x3113 +0xA5D6 0x3114 +0xA5D7 0x3115 +0xA5D8 0x3116 +0xA5D9 0x3117 +0xA5DA 0x3118 +0xA5DB 0x3119 +0xA5DC 0x311A +0xA5DD 0x311B +0xA5DE 0x311C +0xA5DF 0x311D +0xA5E0 0x311E +0xA5E1 0x311F +0xA5E2 0x3120 +0xA5E3 0x3121 +0xA5E4 0x3122 +0xA5E5 0x3123 +0xA5E6 0x3124 +0xA5E7 0x3125 +0xA5E8 0x3126 +0xA5E9 0x3127 +0xA5EA 0x3128 +0xA5EB 0x3129 +0xA5EC 0x02D9 +0xA5ED 0x02C9 +0xA5EE 0x02CA +0xA5EF 0x02C7 +0xA5F0 0x02CB +0xA621 0x5768 +0xA622 0x577D +0xA623 0x590C +0xA624 0x5945 +0xA625 0x59B5 +0xA626 0x59BA +0xA627 0x59CF +0xA628 0x59CE +0xA629 0x59B2 +0xA62A 0x59CC +0xA62B 0x59C1 +0xA62C 0x59B6 +0xA62D 0x59BC +0xA62E 0x59C3 +0xA62F 0x59D6 +0xA630 0x59B1 +0xA631 0x59BD +0xA632 0x59C0 +0xA633 0x59C8 +0xA634 0x59B4 +0xA635 0x59C7 +0xA636 0x5B62 +0xA637 0x5B65 +0xA638 0x5B93 +0xA639 0x5B95 +0xA63A 0x5C44 +0xA63B 0x5C47 +0xA63C 0x5CAE +0xA63D 0x5CA4 +0xA63E 0x5CA0 +0xA63F 0x5CB5 +0xA640 0x5CAF +0xA641 0x5CA8 +0xA642 0x5CAC +0xA643 0x5C9F +0xA644 0x5CA3 +0xA645 0x5CAD +0xA646 0x5CA2 +0xA647 0x5CAA +0xA648 0x5CA7 +0xA649 0x5C9D +0xA64A 0x5CA5 +0xA64B 0x5CB6 +0xA64C 0x5CB0 +0xA64D 0x5CA6 +0xA64E 0x5E17 +0xA64F 0x5E14 +0xA650 0x5E19 +0xA651 0x5F28 +0xA652 0x5F22 +0xA653 0x5F23 +0xA654 0x5F24 +0xA655 0x5F54 +0xA656 0x5F82 +0xA657 0x5F7E +0xA658 0x5F7D +0xA659 0x5FDE +0xA65A 0x5FE5 +0xA65B 0x602D +0xA65C 0x6026 +0xA65D 0x6019 +0xA65E 0x6032 +0xA65F 0x600B +0xA660 0x6034 +0xA661 0x600A +0xA662 0x6017 +0xA663 0x6033 +0xA664 0x601A +0xA665 0x601E +0xA666 0x602C +0xA667 0x6022 +0xA668 0x600D +0xA669 0x6010 +0xA66A 0x602E +0xA66B 0x6013 +0xA66C 0x6011 +0xA66D 0x600C +0xA66E 0x6009 +0xA66F 0x601C +0xA670 0x6214 +0xA671 0x623D +0xA672 0x62AD +0xA673 0x62B4 +0xA674 0x62D1 +0xA675 0x62BE +0xA676 0x62AA +0xA677 0x62B6 +0xA678 0x62CA +0xA679 0x62AE +0xA67A 0x62B3 +0xA67B 0x62AF +0xA67C 0x62BB +0xA67D 0x62A9 +0xA67E 0x62B0 +0xA6A1 0x2460 +0xA6A2 0x2461 +0xA6A3 0x2462 +0xA6A4 0x2463 +0xA6A5 0x2464 +0xA6A6 0x2465 +0xA6A7 0x2466 +0xA6A8 0x2467 +0xA6A9 0x2468 +0xA6AA 0x2469 +0xA6AB 0x2474 +0xA6AC 0x2475 +0xA6AD 0x2476 +0xA6AE 0x2477 +0xA6AF 0x2478 +0xA6B0 0x2479 +0xA6B1 0x247A +0xA6B2 0x247B +0xA6B3 0x247C +0xA6B4 0x247D +0xA6B5 0x2170 +0xA6B6 0x2171 +0xA6B7 0x2172 +0xA6B8 0x2173 +0xA6B9 0x2174 +0xA6BA 0x2175 +0xA6BB 0x2176 +0xA6BC 0x2177 +0xA6BD 0x2178 +0xA6BE 0x2179 +0xA721 0x62B8 +0xA722 0x653D +0xA723 0x65A8 +0xA724 0x65BB +0xA725 0x6609 +0xA726 0x65FC +0xA727 0x6604 +0xA728 0x6612 +0xA729 0x6608 +0xA72A 0x65FB +0xA72B 0x6603 +0xA72C 0x660B +0xA72D 0x660D +0xA72E 0x6605 +0xA72F 0x65FD +0xA730 0x6611 +0xA731 0x6610 +0xA732 0x66F6 +0xA733 0x670A +0xA734 0x6785 +0xA735 0x676C +0xA736 0x678E +0xA737 0x6792 +0xA738 0x6776 +0xA739 0x677B +0xA73A 0x6798 +0xA73B 0x6786 +0xA73C 0x6784 +0xA73D 0x6774 +0xA73E 0x678D +0xA73F 0x678C +0xA740 0x677A +0xA741 0x679F +0xA742 0x6791 +0xA743 0x6799 +0xA744 0x6783 +0xA745 0x677D +0xA746 0x6781 +0xA747 0x6778 +0xA748 0x6779 +0xA749 0x6794 +0xA74A 0x6B25 +0xA74B 0x6B80 +0xA74C 0x6B7E +0xA74D 0x6BDE +0xA74E 0x6C1D +0xA74F 0x6C93 +0xA750 0x6CEC +0xA751 0x6CEB +0xA752 0x6CEE +0xA753 0x6CD9 +0xA754 0x6CB6 +0xA755 0x6CD4 +0xA756 0x6CAD +0xA757 0x6CE7 +0xA758 0x6CB7 +0xA759 0x6CD0 +0xA75A 0x6CC2 +0xA75B 0x6CBA +0xA75C 0x6CC3 +0xA75D 0x6CC6 +0xA75E 0x6CED +0xA75F 0x6CF2 +0xA760 0x6CD2 +0xA761 0x6CDD +0xA762 0x6CB4 +0xA763 0x6C8A +0xA764 0x6C9D +0xA765 0x6C80 +0xA766 0x6CDE +0xA767 0x6CC0 +0xA768 0x6D30 +0xA769 0x6CCD +0xA76A 0x6CC7 +0xA76B 0x6CB0 +0xA76C 0x6CF9 +0xA76D 0x6CCF +0xA76E 0x6CE9 +0xA76F 0x6CD1 +0xA770 0x7094 +0xA771 0x7098 +0xA772 0x7085 +0xA773 0x7093 +0xA774 0x7086 +0xA775 0x7084 +0xA776 0x7091 +0xA777 0x7096 +0xA778 0x7082 +0xA779 0x709A +0xA77A 0x7083 +0xA77B 0x726A +0xA77C 0x72D6 +0xA77D 0x72CB +0xA77E 0x72D8 +0xA7A8 0x4EA0 +0xA7AF 0x51AB +0xA7B4 0x52F9 +0xA821 0x72C9 +0xA822 0x72DC +0xA823 0x72D2 +0xA824 0x72D4 +0xA825 0x72DA +0xA826 0x72CC +0xA827 0x72D1 +0xA828 0x73A4 +0xA829 0x73A1 +0xA82A 0x73AD +0xA82B 0x73A6 +0xA82C 0x73A2 +0xA82D 0x73A0 +0xA82E 0x73AC +0xA82F 0x739D +0xA830 0x74DD +0xA831 0x74E8 +0xA832 0x753F +0xA833 0x7540 +0xA834 0x753E +0xA835 0x758C +0xA836 0x7598 +0xA837 0x76AF +0xA838 0x76F3 +0xA839 0x76F1 +0xA83A 0x76F0 +0xA83B 0x76F5 +0xA83C 0x77F8 +0xA83D 0x77FC +0xA83E 0x77F9 +0xA83F 0x77FB +0xA840 0x77FA +0xA841 0x77F7 +0xA842 0x7942 +0xA843 0x793F +0xA844 0x79C5 +0xA845 0x7A78 +0xA846 0x7A7B +0xA847 0x7AFB +0xA848 0x7C75 +0xA849 0x7CFD +0xA84A 0x8035 +0xA84B 0x808F +0xA84C 0x80AE +0xA84D 0x80A3 +0xA84E 0x80B8 +0xA84F 0x80B5 +0xA850 0x80AD +0xA851 0x8220 +0xA852 0x82A0 +0xA853 0x82C0 +0xA854 0x82AB +0xA855 0x829A +0xA856 0x8298 +0xA857 0x829B +0xA858 0x82B5 +0xA859 0x82A7 +0xA85A 0x82AE +0xA85B 0x82BC +0xA85C 0x829E +0xA85D 0x82BA +0xA85E 0x82B4 +0xA85F 0x82A8 +0xA860 0x82A1 +0xA861 0x82A9 +0xA862 0x82C2 +0xA863 0x82A4 +0xA864 0x82C3 +0xA865 0x82B6 +0xA866 0x82A2 +0xA867 0x8670 +0xA868 0x866F +0xA869 0x866D +0xA86A 0x866E +0xA86B 0x8C56 +0xA86C 0x8FD2 +0xA86D 0x8FCB +0xA86E 0x8FD3 +0xA86F 0x8FCD +0xA870 0x8FD6 +0xA871 0x8FD5 +0xA872 0x8FD7 +0xA873 0x90B2 +0xA874 0x90B4 +0xA875 0x90AF +0xA876 0x90B3 +0xA877 0x90B0 +0xA878 0x9639 +0xA879 0x963D +0xA87A 0x963C +0xA87B 0x963A +0xA87C 0x9643 +0xA87D 0x4FCD +0xA87E 0x4FC5 +0xA921 0x4FD3 +0xA922 0x4FB2 +0xA923 0x4FC9 +0xA924 0x4FCB +0xA925 0x4FC1 +0xA926 0x4FD4 +0xA927 0x4FDC +0xA928 0x4FD9 +0xA929 0x4FBB +0xA92A 0x4FB3 +0xA92B 0x4FDB +0xA92C 0x4FC7 +0xA92D 0x4FD6 +0xA92E 0x4FBA +0xA92F 0x4FC0 +0xA930 0x4FB9 +0xA931 0x4FEC +0xA932 0x5244 +0xA933 0x5249 +0xA934 0x52C0 +0xA935 0x52C2 +0xA936 0x533D +0xA937 0x537C +0xA938 0x5397 +0xA939 0x5396 +0xA93A 0x5399 +0xA93B 0x5398 +0xA93C 0x54BA +0xA93D 0x54A1 +0xA93E 0x54AD +0xA93F 0x54A5 +0xA940 0x54CF +0xA941 0x54C3 +0xA942 0x830D +0xA943 0x54B7 +0xA944 0x54AE +0xA945 0x54D6 +0xA946 0x54B6 +0xA947 0x54C5 +0xA948 0x54C6 +0xA949 0x54A0 +0xA94A 0x5470 +0xA94B 0x54BC +0xA94C 0x54A2 +0xA94D 0x54BE +0xA94E 0x5472 +0xA94F 0x54DE +0xA950 0x54B0 +0xA951 0x57B5 +0xA952 0x579E +0xA953 0x579F +0xA954 0x57A4 +0xA955 0x578C +0xA956 0x5797 +0xA957 0x579D +0xA958 0x579B +0xA959 0x5794 +0xA95A 0x5798 +0xA95B 0x578F +0xA95C 0x5799 +0xA95D 0x57A5 +0xA95E 0x579A +0xA95F 0x5795 +0xA960 0x58F4 +0xA961 0x590D +0xA962 0x5953 +0xA963 0x59E1 +0xA964 0x59DE +0xA965 0x59EE +0xA966 0x5A00 +0xA967 0x59F1 +0xA968 0x59DD +0xA969 0x59FA +0xA96A 0x59FD +0xA96B 0x59FC +0xA96C 0x59F6 +0xA96D 0x59E4 +0xA96E 0x59F2 +0xA96F 0x59F7 +0xA970 0x59DB +0xA971 0x59E9 +0xA972 0x59F3 +0xA973 0x59F5 +0xA974 0x59E0 +0xA975 0x59FE +0xA976 0x59F4 +0xA977 0x59ED +0xA978 0x5BA8 +0xA979 0x5C4C +0xA97A 0x5CD0 +0xA97B 0x5CD8 +0xA97C 0x5CCC +0xA97D 0x5CD7 +0xA97E 0x5CCB +0xAA21 0x5CDB +0xAA22 0x5CDE +0xAA23 0x5CDA +0xAA24 0x5CC9 +0xAA25 0x5CC7 +0xAA26 0x5CCA +0xAA27 0x5CD6 +0xAA28 0x5CD3 +0xAA29 0x5CD4 +0xAA2A 0x5CCF +0xAA2B 0x5CC8 +0xAA2C 0x5CC6 +0xAA2D 0x5CCE +0xAA2E 0x5CDF +0xAA2F 0x5CF8 +0xAA30 0x5DF9 +0xAA31 0x5E21 +0xAA32 0x5E22 +0xAA33 0x5E23 +0xAA34 0x5E20 +0xAA35 0x5E24 +0xAA36 0x5EB0 +0xAA37 0x5EA4 +0xAA38 0x5EA2 +0xAA39 0x5E9B +0xAA3A 0x5EA3 +0xAA3B 0x5EA5 +0xAA3C 0x5F07 +0xAA3D 0x5F2E +0xAA3E 0x5F56 +0xAA3F 0x5F86 +0xAA40 0x6037 +0xAA41 0x6039 +0xAA42 0x6054 +0xAA43 0x6072 +0xAA44 0x605E +0xAA45 0x6045 +0xAA46 0x6053 +0xAA47 0x6047 +0xAA48 0x6049 +0xAA49 0x605B +0xAA4A 0x604C +0xAA4B 0x6040 +0xAA4C 0x6042 +0xAA4D 0x605F +0xAA4E 0x6024 +0xAA4F 0x6044 +0xAA50 0x6058 +0xAA51 0x6066 +0xAA52 0x606E +0xAA53 0x6242 +0xAA54 0x6243 +0xAA55 0x62CF +0xAA56 0x630D +0xAA57 0x630B +0xAA58 0x62F5 +0xAA59 0x630E +0xAA5A 0x6303 +0xAA5B 0x62EB +0xAA5C 0x62F9 +0xAA5D 0x630F +0xAA5E 0x630C +0xAA5F 0x62F8 +0xAA60 0x62F6 +0xAA61 0x6300 +0xAA62 0x6313 +0xAA63 0x6314 +0xAA64 0x62FA +0xAA65 0x6315 +0xAA66 0x62FB +0xAA67 0x62F0 +0xAA68 0x6541 +0xAA69 0x6543 +0xAA6A 0x65AA +0xAA6B 0x65BF +0xAA6C 0x6636 +0xAA6D 0x6621 +0xAA6E 0x6632 +0xAA6F 0x6635 +0xAA70 0x661C +0xAA71 0x6626 +0xAA72 0x6622 +0xAA73 0x6633 +0xAA74 0x662B +0xAA75 0x663A +0xAA76 0x661D +0xAA77 0x6634 +0xAA78 0x6639 +0xAA79 0x662E +0xAA7A 0x670F +0xAA7B 0x6710 +0xAA7C 0x67C1 +0xAA7D 0x67F2 +0xAA7E 0x67C8 +0xAB21 0x67BA +0xAB22 0x67DC +0xAB23 0x67BB +0xAB24 0x67F8 +0xAB25 0x67D8 +0xAB26 0x67C0 +0xAB27 0x67B7 +0xAB28 0x67C5 +0xAB29 0x67EB +0xAB2A 0x67E4 +0xAB2B 0x67DF +0xAB2C 0x67B5 +0xAB2D 0x67CD +0xAB2E 0x67B3 +0xAB2F 0x67F7 +0xAB30 0x67F6 +0xAB31 0x67EE +0xAB32 0x67E3 +0xAB33 0x67C2 +0xAB34 0x67B9 +0xAB35 0x67CE +0xAB36 0x67E7 +0xAB37 0x67F0 +0xAB38 0x67B2 +0xAB39 0x67FC +0xAB3A 0x67C6 +0xAB3B 0x67ED +0xAB3C 0x67CC +0xAB3D 0x67AE +0xAB3E 0x67E6 +0xAB3F 0x67DB +0xAB40 0x67FA +0xAB41 0x67C9 +0xAB42 0x67CA +0xAB43 0x67C3 +0xAB44 0x67EA +0xAB45 0x67CB +0xAB46 0x6B28 +0xAB47 0x6B82 +0xAB48 0x6B84 +0xAB49 0x6BB6 +0xAB4A 0x6BD6 +0xAB4B 0x6BD8 +0xAB4C 0x6BE0 +0xAB4D 0x6C20 +0xAB4E 0x6C21 +0xAB4F 0x6D28 +0xAB50 0x6D34 +0xAB51 0x6D2D +0xAB52 0x6D1F +0xAB53 0x6D3C +0xAB54 0x6D3F +0xAB55 0x6D12 +0xAB56 0x6D0A +0xAB57 0x6CDA +0xAB58 0x6D33 +0xAB59 0x6D04 +0xAB5A 0x6D19 +0xAB5B 0x6D3A +0xAB5C 0x6D1A +0xAB5D 0x6D11 +0xAB5E 0x6D00 +0xAB5F 0x6D1D +0xAB60 0x6D42 +0xAB61 0x6D01 +0xAB62 0x6D18 +0xAB63 0x6D37 +0xAB64 0x6D03 +0xAB65 0x6D0F +0xAB66 0x6D40 +0xAB67 0x6D07 +0xAB68 0x6D20 +0xAB69 0x6D2C +0xAB6A 0x6D08 +0xAB6B 0x6D22 +0xAB6C 0x6D09 +0xAB6D 0x6D10 +0xAB6E 0x70B7 +0xAB6F 0x709F +0xAB70 0x70BE +0xAB71 0x70B1 +0xAB72 0x70B0 +0xAB73 0x70A1 +0xAB74 0x70B4 +0xAB75 0x70B5 +0xAB76 0x70A9 +0xAB77 0x7241 +0xAB78 0x7249 +0xAB79 0x724A +0xAB7A 0x726C +0xAB7B 0x7270 +0xAB7C 0x7273 +0xAB7D 0x726E +0xAB7E 0x72CA +0xAC21 0x72E4 +0xAC22 0x72E8 +0xAC23 0x72EB +0xAC24 0x72DF +0xAC25 0x72EA +0xAC26 0x72E6 +0xAC27 0x72E3 +0xAC28 0x7385 +0xAC29 0x73CC +0xAC2A 0x73C2 +0xAC2B 0x73C8 +0xAC2C 0x73C5 +0xAC2D 0x73B9 +0xAC2E 0x73B6 +0xAC2F 0x73B5 +0xAC30 0x73B4 +0xAC31 0x73EB +0xAC32 0x73BF +0xAC33 0x73C7 +0xAC34 0x73BE +0xAC35 0x73C3 +0xAC36 0x73C6 +0xAC37 0x73B8 +0xAC38 0x73CB +0xAC39 0x74EC +0xAC3A 0x74EE +0xAC3B 0x752E +0xAC3C 0x7547 +0xAC3D 0x7548 +0xAC3E 0x75A7 +0xAC3F 0x75AA +0xAC40 0x7679 +0xAC41 0x76C4 +0xAC42 0x7708 +0xAC43 0x7703 +0xAC44 0x7704 +0xAC45 0x7705 +0xAC46 0x770A +0xAC47 0x76F7 +0xAC48 0x76FB +0xAC49 0x76FA +0xAC4A 0x77E7 +0xAC4B 0x77E8 +0xAC4C 0x7806 +0xAC4D 0x7811 +0xAC4E 0x7812 +0xAC4F 0x7805 +0xAC50 0x7810 +0xAC51 0x780F +0xAC52 0x780E +0xAC53 0x7809 +0xAC54 0x7803 +0xAC55 0x7813 +0xAC56 0x794A +0xAC57 0x794C +0xAC58 0x794B +0xAC59 0x7945 +0xAC5A 0x7944 +0xAC5B 0x79D5 +0xAC5C 0x79CD +0xAC5D 0x79CF +0xAC5E 0x79D6 +0xAC5F 0x79CE +0xAC60 0x7A80 +0xAC61 0x7A7E +0xAC62 0x7AD1 +0xAC63 0x7B00 +0xAC64 0x7B01 +0xAC65 0x7C7A +0xAC66 0x7C78 +0xAC67 0x7C79 +0xAC68 0x7C7F +0xAC69 0x7C80 +0xAC6A 0x7C81 +0xAC6B 0x7D03 +0xAC6C 0x7D08 +0xAC6D 0x7D01 +0xAC6E 0x7F58 +0xAC6F 0x7F91 +0xAC70 0x7F8D +0xAC71 0x7FBE +0xAC72 0x8007 +0xAC73 0x800E +0xAC74 0x800F +0xAC75 0x8014 +0xAC76 0x8037 +0xAC77 0x80D8 +0xAC78 0x80C7 +0xAC79 0x80E0 +0xAC7A 0x80D1 +0xAC7B 0x80C8 +0xAC7C 0x80C2 +0xAC7D 0x80D0 +0xAC7E 0x80C5 +0xAD21 0x80E3 +0xAD22 0x80D9 +0xAD23 0x80DC +0xAD24 0x80CA +0xAD25 0x80D5 +0xAD26 0x80C9 +0xAD27 0x80CF +0xAD28 0x80D7 +0xAD29 0x80E6 +0xAD2A 0x80CD +0xAD2B 0x81FF +0xAD2C 0x8221 +0xAD2D 0x8294 +0xAD2E 0x82D9 +0xAD2F 0x82FE +0xAD30 0x82F9 +0xAD31 0x8307 +0xAD32 0x82E8 +0xAD33 0x8300 +0xAD34 0x82D5 +0xAD35 0x833A +0xAD36 0x82EB +0xAD37 0x82D6 +0xAD38 0x82F4 +0xAD39 0x82EC +0xAD3A 0x82E1 +0xAD3B 0x82F2 +0xAD3C 0x82F5 +0xAD3D 0x830C +0xAD3E 0x82FB +0xAD3F 0x82F6 +0xAD40 0x82F0 +0xAD41 0x82EA +0xAD42 0x82E4 +0xAD43 0x82E0 +0xAD44 0x82FA +0xAD45 0x82F3 +0xAD46 0x82ED +0xAD47 0x8677 +0xAD48 0x8674 +0xAD49 0x867C +0xAD4A 0x8673 +0xAD4B 0x8841 +0xAD4C 0x884E +0xAD4D 0x8867 +0xAD4E 0x886A +0xAD4F 0x8869 +0xAD50 0x89D3 +0xAD51 0x8A04 +0xAD52 0x8A07 +0xAD53 0x8D72 +0xAD54 0x8FE3 +0xAD55 0x8FE1 +0xAD56 0x8FEE +0xAD57 0x8FE0 +0xAD58 0x90F1 +0xAD59 0x90BD +0xAD5A 0x90BF +0xAD5B 0x90D5 +0xAD5C 0x90C5 +0xAD5D 0x90BE +0xAD5E 0x90C7 +0xAD5F 0x90CB +0xAD60 0x90C8 +0xAD61 0x91D4 +0xAD62 0x91D3 +0xAD63 0x9654 +0xAD64 0x964F +0xAD65 0x9651 +0xAD66 0x9653 +0xAD67 0x964A +0xAD68 0x964E +0xAD69 0x501E +0xAD6A 0x5005 +0xAD6B 0x5007 +0xAD6C 0x5013 +0xAD6D 0x5022 +0xAD6E 0x5030 +0xAD6F 0x501B +0xAD70 0x4FF5 +0xAD71 0x4FF4 +0xAD72 0x5033 +0xAD73 0x5037 +0xAD74 0x502C +0xAD75 0x4FF6 +0xAD76 0x4FF7 +0xAD77 0x5017 +0xAD78 0x501C +0xAD79 0x5020 +0xAD7A 0x5027 +0xAD7B 0x5035 +0xAD7C 0x502F +0xAD7D 0x5031 +0xAD7E 0x500E +0xAE21 0x515A +0xAE22 0x5194 +0xAE23 0x5193 +0xAE24 0x51CA +0xAE25 0x51C4 +0xAE26 0x51C5 +0xAE27 0x51C8 +0xAE28 0x51CE +0xAE29 0x5261 +0xAE2A 0x525A +0xAE2B 0x5252 +0xAE2C 0x525E +0xAE2D 0x525F +0xAE2E 0x5255 +0xAE2F 0x5262 +0xAE30 0x52CD +0xAE31 0x530E +0xAE32 0x539E +0xAE33 0x5526 +0xAE34 0x54E2 +0xAE35 0x5517 +0xAE36 0x5512 +0xAE37 0x54E7 +0xAE38 0x54F3 +0xAE39 0x54E4 +0xAE3A 0x551A +0xAE3B 0x54FF +0xAE3C 0x5504 +0xAE3D 0x5508 +0xAE3E 0x54EB +0xAE3F 0x5511 +0xAE40 0x5505 +0xAE41 0x54F1 +0xAE42 0x550A +0xAE43 0x54FB +0xAE44 0x54F7 +0xAE45 0x54F8 +0xAE46 0x54E0 +0xAE47 0x550E +0xAE48 0x5503 +0xAE49 0x550B +0xAE4A 0x5701 +0xAE4B 0x5702 +0xAE4C 0x57CC +0xAE4D 0x5832 +0xAE4E 0x57D5 +0xAE4F 0x57D2 +0xAE50 0x57BA +0xAE51 0x57C6 +0xAE52 0x57BD +0xAE53 0x57BC +0xAE54 0x57B8 +0xAE55 0x57B6 +0xAE56 0x57BF +0xAE57 0x57C7 +0xAE58 0x57D0 +0xAE59 0x57B9 +0xAE5A 0x57C1 +0xAE5B 0x590E +0xAE5C 0x594A +0xAE5D 0x5A19 +0xAE5E 0x5A16 +0xAE5F 0x5A2D +0xAE60 0x5A2E +0xAE61 0x5A15 +0xAE62 0x5A0F +0xAE63 0x5A17 +0xAE64 0x5A0A +0xAE65 0x5A1E +0xAE66 0x5A33 +0xAE67 0x5B6C +0xAE68 0x5BA7 +0xAE69 0x5BAD +0xAE6A 0x5BAC +0xAE6B 0x5C03 +0xAE6C 0x5C56 +0xAE6D 0x5C54 +0xAE6E 0x5CEC +0xAE6F 0x5CFF +0xAE70 0x5CEE +0xAE71 0x5CF1 +0xAE72 0x5CF7 +0xAE73 0x5D00 +0xAE74 0x5CF9 +0xAE75 0x5E29 +0xAE76 0x5E28 +0xAE77 0x5EA8 +0xAE78 0x5EAE +0xAE79 0x5EAA +0xAE7A 0x5EAC +0xAE7B 0x5F33 +0xAE7C 0x5F30 +0xAE7D 0x5F67 +0xAE7E 0x605D +0xAF21 0x605A +0xAF22 0x6067 +0xAF23 0x6041 +0xAF24 0x60A2 +0xAF25 0x6088 +0xAF26 0x6080 +0xAF27 0x6092 +0xAF28 0x6081 +0xAF29 0x609D +0xAF2A 0x6083 +0xAF2B 0x6095 +0xAF2C 0x609B +0xAF2D 0x6097 +0xAF2E 0x6087 +0xAF2F 0x609C +0xAF30 0x608E +0xAF31 0x6219 +0xAF32 0x6246 +0xAF33 0x62F2 +0xAF34 0x6310 +0xAF35 0x6356 +0xAF36 0x632C +0xAF37 0x6344 +0xAF38 0x6345 +0xAF39 0x6336 +0xAF3A 0x6343 +0xAF3B 0x63E4 +0xAF3C 0x6339 +0xAF3D 0x634B +0xAF3E 0x634A +0xAF3F 0x633C +0xAF40 0x6329 +0xAF41 0x6341 +0xAF42 0x6334 +0xAF43 0x6358 +0xAF44 0x6354 +0xAF45 0x6359 +0xAF46 0x632D +0xAF47 0x6347 +0xAF48 0x6333 +0xAF49 0x635A +0xAF4A 0x6351 +0xAF4B 0x6338 +0xAF4C 0x6357 +0xAF4D 0x6340 +0xAF4E 0x6348 +0xAF4F 0x654A +0xAF50 0x6546 +0xAF51 0x65C6 +0xAF52 0x65C3 +0xAF53 0x65C4 +0xAF54 0x65C2 +0xAF55 0x664A +0xAF56 0x665F +0xAF57 0x6647 +0xAF58 0x6651 +0xAF59 0x6712 +0xAF5A 0x6713 +0xAF5B 0x681F +0xAF5C 0x681A +0xAF5D 0x6849 +0xAF5E 0x6832 +0xAF5F 0x6833 +0xAF60 0x683B +0xAF61 0x684B +0xAF62 0x684F +0xAF63 0x6816 +0xAF64 0x6831 +0xAF65 0x681C +0xAF66 0x6835 +0xAF67 0x682B +0xAF68 0x682D +0xAF69 0x682F +0xAF6A 0x684E +0xAF6B 0x6844 +0xAF6C 0x6834 +0xAF6D 0x681D +0xAF6E 0x6812 +0xAF6F 0x6814 +0xAF70 0x6826 +0xAF71 0x6828 +0xAF72 0x682E +0xAF73 0x684D +0xAF74 0x683A +0xAF75 0x6825 +0xAF76 0x6820 +0xAF77 0x6B2C +0xAF78 0x6B2F +0xAF79 0x6B2D +0xAF7A 0x6B31 +0xAF7B 0x6B34 +0xAF7C 0x6B6D +0xAF7D 0x8082 +0xAF7E 0x6B88 +0xB021 0x6BE6 +0xB022 0x6BE4 +0xB023 0x6BE8 +0xB024 0x6BE3 +0xB025 0x6BE2 +0xB026 0x6BE7 +0xB027 0x6C25 +0xB028 0x6D7A +0xB029 0x6D63 +0xB02A 0x6D64 +0xB02B 0x6D76 +0xB02C 0x6D0D +0xB02D 0x6D61 +0xB02E 0x6D92 +0xB02F 0x6D58 +0xB030 0x6D62 +0xB031 0x6D6D +0xB032 0x6D6F +0xB033 0x6D91 +0xB034 0x6D8D +0xB035 0x6DEF +0xB036 0x6D7F +0xB037 0x6D86 +0xB038 0x6D5E +0xB039 0x6D67 +0xB03A 0x6D60 +0xB03B 0x6D97 +0xB03C 0x6D70 +0xB03D 0x6D7C +0xB03E 0x6D5F +0xB03F 0x6D82 +0xB040 0x6D98 +0xB041 0x6D2F +0xB042 0x6D68 +0xB043 0x6D8B +0xB044 0x6D7E +0xB045 0x6D80 +0xB046 0x6D84 +0xB047 0x6D16 +0xB048 0x6D83 +0xB049 0x6D7B +0xB04A 0x6D7D +0xB04B 0x6D75 +0xB04C 0x6D90 +0xB04D 0x70DC +0xB04E 0x70D3 +0xB04F 0x70D1 +0xB050 0x70DD +0xB051 0x70CB +0xB052 0x7F39 +0xB053 0x70E2 +0xB054 0x70D7 +0xB055 0x70D2 +0xB056 0x70DE +0xB057 0x70E0 +0xB058 0x70D4 +0xB059 0x70CD +0xB05A 0x70C5 +0xB05B 0x70C6 +0xB05C 0x70C7 +0xB05D 0x70DA +0xB05E 0x70CE +0xB05F 0x70E1 +0xB060 0x7242 +0xB061 0x7278 +0xB062 0x7277 +0xB063 0x7276 +0xB064 0x7300 +0xB065 0x72FA +0xB066 0x72F4 +0xB067 0x72FE +0xB068 0x72F6 +0xB069 0x72F3 +0xB06A 0x72FB +0xB06B 0x7301 +0xB06C 0x73D3 +0xB06D 0x73D9 +0xB06E 0x73E5 +0xB06F 0x73D6 +0xB070 0x73BC +0xB071 0x73E7 +0xB072 0x73E3 +0xB073 0x73E9 +0xB074 0x73DC +0xB075 0x73D2 +0xB076 0x73DB +0xB077 0x73D4 +0xB078 0x73DD +0xB079 0x73DA +0xB07A 0x73D7 +0xB07B 0x73D8 +0xB07C 0x73E8 +0xB07D 0x74DE +0xB07E 0x74DF +0xB121 0x74F4 +0xB122 0x74F5 +0xB123 0x7521 +0xB124 0x755B +0xB125 0x755F +0xB126 0x75B0 +0xB127 0x75C1 +0xB128 0x75BB +0xB129 0x75C4 +0xB12A 0x75C0 +0xB12B 0x75BF +0xB12C 0x75B6 +0xB12D 0x75BA +0xB12E 0x768A +0xB12F 0x76C9 +0xB130 0x771D +0xB131 0x771B +0xB132 0x7710 +0xB133 0x7713 +0xB134 0x7712 +0xB135 0x7723 +0xB136 0x7711 +0xB137 0x7715 +0xB138 0x7719 +0xB139 0x771A +0xB13A 0x7722 +0xB13B 0x7727 +0xB13C 0x7823 +0xB13D 0x782C +0xB13E 0x7822 +0xB13F 0x7835 +0xB140 0x782F +0xB141 0x7828 +0xB142 0x782E +0xB143 0x782B +0xB144 0x7821 +0xB145 0x7829 +0xB146 0x7833 +0xB147 0x782A +0xB148 0x7831 +0xB149 0x7954 +0xB14A 0x795B +0xB14B 0x794F +0xB14C 0x795C +0xB14D 0x7953 +0xB14E 0x7952 +0xB14F 0x7951 +0xB150 0x79EB +0xB151 0x79EC +0xB152 0x79E0 +0xB153 0x79EE +0xB154 0x79ED +0xB155 0x79EA +0xB156 0x79DC +0xB157 0x79DE +0xB158 0x79DD +0xB159 0x7A86 +0xB15A 0x7A89 +0xB15B 0x7A85 +0xB15C 0x7A8B +0xB15D 0x7A8C +0xB15E 0x7A8A +0xB15F 0x7A87 +0xB160 0x7AD8 +0xB161 0x7B10 +0xB162 0x7B04 +0xB163 0x7B13 +0xB164 0x7B05 +0xB165 0x7B0F +0xB166 0x7B08 +0xB167 0x7B0A +0xB168 0x7B0E +0xB169 0x7B09 +0xB16A 0x7B12 +0xB16B 0x7C84 +0xB16C 0x7C91 +0xB16D 0x7C8A +0xB16E 0x7C8C +0xB16F 0x7C88 +0xB170 0x7C8D +0xB171 0x7C85 +0xB172 0x7D1E +0xB173 0x7D1D +0xB174 0x7D11 +0xB175 0x7D0E +0xB176 0x7D18 +0xB177 0x7D16 +0xB178 0x7D13 +0xB179 0x7D1F +0xB17A 0x7D12 +0xB17B 0x7D0F +0xB17C 0x7D0C +0xB17D 0x7F5C +0xB17E 0x7F61 +0xB221 0x7F5E +0xB222 0x7F60 +0xB223 0x7F5D +0xB224 0x7F5B +0xB225 0x7F96 +0xB226 0x7F92 +0xB227 0x7FC3 +0xB228 0x7FC2 +0xB229 0x7FC0 +0xB22A 0x8016 +0xB22B 0x803E +0xB22C 0x8039 +0xB22D 0x80FA +0xB22E 0x80F2 +0xB22F 0x80F9 +0xB230 0x80F5 +0xB231 0x8101 +0xB232 0x80FB +0xB233 0x8100 +0xB234 0x8201 +0xB235 0x822F +0xB236 0x8225 +0xB237 0x8333 +0xB238 0x832D +0xB239 0x8344 +0xB23A 0x8319 +0xB23B 0x8351 +0xB23C 0x8325 +0xB23D 0x8356 +0xB23E 0x833F +0xB23F 0x8341 +0xB240 0x8326 +0xB241 0x831C +0xB242 0x8322 +0xB243 0x8342 +0xB244 0x834E +0xB245 0x831B +0xB246 0x832A +0xB247 0x8308 +0xB248 0x833C +0xB249 0x834D +0xB24A 0x8316 +0xB24B 0x8324 +0xB24C 0x8320 +0xB24D 0x8337 +0xB24E 0x832F +0xB24F 0x8329 +0xB250 0x8347 +0xB251 0x8345 +0xB252 0x834C +0xB253 0x8353 +0xB254 0x831E +0xB255 0x832C +0xB256 0x834B +0xB257 0x8327 +0xB258 0x8348 +0xB259 0x8653 +0xB25A 0x8652 +0xB25B 0x86A2 +0xB25C 0x86A8 +0xB25D 0x8696 +0xB25E 0x868D +0xB25F 0x8691 +0xB260 0x869E +0xB261 0x8687 +0xB262 0x8697 +0xB263 0x8686 +0xB264 0x868B +0xB265 0x869A +0xB266 0x8685 +0xB267 0x86A5 +0xB268 0x8699 +0xB269 0x86A1 +0xB26A 0x86A7 +0xB26B 0x8695 +0xB26C 0x8698 +0xB26D 0x868E +0xB26E 0x869D +0xB26F 0x8690 +0xB270 0x8694 +0xB271 0x8843 +0xB272 0x8844 +0xB273 0x886D +0xB274 0x8875 +0xB275 0x8876 +0xB276 0x8872 +0xB277 0x8880 +0xB278 0x8871 +0xB279 0x887F +0xB27A 0x886F +0xB27B 0x8883 +0xB27C 0x887E +0xB27D 0x8874 +0xB27E 0x887C +0xB321 0x8A12 +0xB322 0x8C47 +0xB323 0x8C57 +0xB324 0x8C7B +0xB325 0x8CA4 +0xB326 0x8CA3 +0xB327 0x8D76 +0xB328 0x8D78 +0xB329 0x8DB5 +0xB32A 0x8DB7 +0xB32B 0x8DB6 +0xB32C 0x8ED1 +0xB32D 0x8ED3 +0xB32E 0x8FFE +0xB32F 0x8FF5 +0xB330 0x9002 +0xB331 0x8FFF +0xB332 0x8FFB +0xB333 0x9004 +0xB334 0x8FFC +0xB335 0x8FF6 +0xB336 0x90D6 +0xB337 0x90E0 +0xB338 0x90D9 +0xB339 0x90DA +0xB33A 0x90E3 +0xB33B 0x90DF +0xB33C 0x90E5 +0xB33D 0x90D8 +0xB33E 0x90DB +0xB33F 0x90D7 +0xB340 0x90DC +0xB341 0x90E4 +0xB342 0x9150 +0xB343 0x914E +0xB344 0x914F +0xB345 0x91D5 +0xB346 0x91E2 +0xB347 0x91DA +0xB348 0x965C +0xB349 0x965F +0xB34A 0x96BC +0xB34B 0x98E3 +0xB34C 0x9ADF +0xB34D 0x9B2F +0xB34E 0x4E7F +0xB34F 0x5070 +0xB350 0x506A +0xB351 0x5061 +0xB352 0x505E +0xB353 0x5060 +0xB354 0x5053 +0xB355 0x504B +0xB356 0x505D +0xB357 0x5072 +0xB358 0x5048 +0xB359 0x504D +0xB35A 0x5041 +0xB35B 0x505B +0xB35C 0x504A +0xB35D 0x5062 +0xB35E 0x5015 +0xB35F 0x5045 +0xB360 0x505F +0xB361 0x5069 +0xB362 0x506B +0xB363 0x5063 +0xB364 0x5064 +0xB365 0x5046 +0xB366 0x5040 +0xB367 0x506E +0xB368 0x5073 +0xB369 0x5057 +0xB36A 0x5051 +0xB36B 0x51D0 +0xB36C 0x526B +0xB36D 0x526D +0xB36E 0x526C +0xB36F 0x526E +0xB370 0x52D6 +0xB371 0x52D3 +0xB372 0x532D +0xB373 0x539C +0xB374 0x5575 +0xB375 0x5576 +0xB376 0x553C +0xB377 0x554D +0xB378 0x5550 +0xB379 0x5534 +0xB37A 0x552A +0xB37B 0x5551 +0xB37C 0x5562 +0xB37D 0x5536 +0xB37E 0x5535 +0xB421 0x5530 +0xB422 0x5552 +0xB423 0x5545 +0xB424 0x550C +0xB425 0x5532 +0xB426 0x5565 +0xB427 0x554E +0xB428 0x5539 +0xB429 0x5548 +0xB42A 0x552D +0xB42B 0x553B +0xB42C 0x5540 +0xB42D 0x554B +0xB42E 0x570A +0xB42F 0x5707 +0xB430 0x57FB +0xB431 0x5814 +0xB432 0x57E2 +0xB433 0x57F6 +0xB434 0x57DC +0xB435 0x57F4 +0xB436 0x5800 +0xB437 0x57ED +0xB438 0x57FD +0xB439 0x5808 +0xB43A 0x57F8 +0xB43B 0x580B +0xB43C 0x57F3 +0xB43D 0x57CF +0xB43E 0x5807 +0xB43F 0x57EE +0xB440 0x57E3 +0xB441 0x57F2 +0xB442 0x57E5 +0xB443 0x57EC +0xB444 0x57E1 +0xB445 0x580E +0xB446 0x57FC +0xB447 0x5810 +0xB448 0x57E7 +0xB449 0x5801 +0xB44A 0x580C +0xB44B 0x57F1 +0xB44C 0x57E9 +0xB44D 0x57F0 +0xB44E 0x580D +0xB44F 0x5804 +0xB450 0x595C +0xB451 0x5A60 +0xB452 0x5A58 +0xB453 0x5A55 +0xB454 0x5A67 +0xB455 0x5A5E +0xB456 0x5A38 +0xB457 0x5A35 +0xB458 0x5A6D +0xB459 0x5A50 +0xB45A 0x5A5F +0xB45B 0x5A65 +0xB45C 0x5A6C +0xB45D 0x5A53 +0xB45E 0x5A64 +0xB45F 0x5A57 +0xB460 0x5A43 +0xB461 0x5A5D +0xB462 0x5A52 +0xB463 0x5A44 +0xB464 0x5A5B +0xB465 0x5A48 +0xB466 0x5A8E +0xB467 0x5A3E +0xB468 0x5A4D +0xB469 0x5A39 +0xB46A 0x5A4C +0xB46B 0x5A70 +0xB46C 0x5A69 +0xB46D 0x5A47 +0xB46E 0x5A51 +0xB46F 0x5A56 +0xB470 0x5A42 +0xB471 0x5A5C +0xB472 0x5B72 +0xB473 0x5B6E +0xB474 0x5BC1 +0xB475 0x5BC0 +0xB476 0x5C59 +0xB477 0x5D1E +0xB478 0x5D0B +0xB479 0x5D1D +0xB47A 0x5D1A +0xB47B 0x5D20 +0xB47C 0x5D0C +0xB47D 0x5D28 +0xB47E 0x5D0D +0xB521 0x5D26 +0xB522 0x5D25 +0xB523 0x5D0F +0xB524 0x5D30 +0xB525 0x5D12 +0xB526 0x5D23 +0xB527 0x5D1F +0xB528 0x5D2E +0xB529 0x5E3E +0xB52A 0x5E34 +0xB52B 0x5EB1 +0xB52C 0x5EB4 +0xB52D 0x5EB9 +0xB52E 0x5EB2 +0xB52F 0x5EB3 +0xB530 0x5F36 +0xB531 0x5F38 +0xB532 0x5F9B +0xB533 0x5F96 +0xB534 0x5F9F +0xB535 0x608A +0xB536 0x6090 +0xB537 0x6086 +0xB538 0x60BE +0xB539 0x60B0 +0xB53A 0x60BA +0xB53B 0x60D3 +0xB53C 0x60D4 +0xB53D 0x60CF +0xB53E 0x60E4 +0xB53F 0x60D9 +0xB540 0x60DD +0xB541 0x60C8 +0xB542 0x60B1 +0xB543 0x60DB +0xB544 0x60B7 +0xB545 0x60CA +0xB546 0x60BF +0xB547 0x60C3 +0xB548 0x60CD +0xB549 0x60C0 +0xB54A 0x6332 +0xB54B 0x6365 +0xB54C 0x638A +0xB54D 0x6382 +0xB54E 0x637D +0xB54F 0x63BD +0xB550 0x639E +0xB551 0x63AD +0xB552 0x639D +0xB553 0x6397 +0xB554 0x63AB +0xB555 0x638E +0xB556 0x636F +0xB557 0x6387 +0xB558 0x6390 +0xB559 0x636E +0xB55A 0x63AF +0xB55B 0x6375 +0xB55C 0x639C +0xB55D 0x636D +0xB55E 0x63AE +0xB55F 0x637C +0xB560 0x63A4 +0xB561 0x633B +0xB562 0x639F +0xB563 0x6378 +0xB564 0x6385 +0xB565 0x6381 +0xB566 0x6391 +0xB567 0x638D +0xB568 0x6370 +0xB569 0x6553 +0xB56A 0x65CD +0xB56B 0x6665 +0xB56C 0x6661 +0xB56D 0x665B +0xB56E 0x6659 +0xB56F 0x665C +0xB570 0x6662 +0xB571 0x6718 +0xB572 0x6879 +0xB573 0x6887 +0xB574 0x6890 +0xB575 0x689C +0xB576 0x686D +0xB577 0x686E +0xB578 0x68AE +0xB579 0x68AB +0xB57A 0x6956 +0xB57B 0x686F +0xB57C 0x68A3 +0xB57D 0x68AC +0xB57E 0x68A9 +0xB621 0x6875 +0xB622 0x6874 +0xB623 0x68B2 +0xB624 0x688F +0xB625 0x6877 +0xB626 0x6892 +0xB627 0x687C +0xB628 0x686B +0xB629 0x6872 +0xB62A 0x68AA +0xB62B 0x6880 +0xB62C 0x6871 +0xB62D 0x687E +0xB62E 0x689B +0xB62F 0x6896 +0xB630 0x688B +0xB631 0x68A0 +0xB632 0x6889 +0xB633 0x68A4 +0xB634 0x6878 +0xB635 0x687B +0xB636 0x6891 +0xB637 0x688C +0xB638 0x688A +0xB639 0x687D +0xB63A 0x6B36 +0xB63B 0x6B33 +0xB63C 0x6B37 +0xB63D 0x6B38 +0xB63E 0x6B91 +0xB63F 0x6B8F +0xB640 0x6B8D +0xB641 0x6B8E +0xB642 0x6B8C +0xB643 0x6C2A +0xB644 0x6DC0 +0xB645 0x6DAB +0xB646 0x6DB4 +0xB647 0x6DB3 +0xB648 0x6E74 +0xB649 0x6DAC +0xB64A 0x6DE9 +0xB64B 0x6DE2 +0xB64C 0x6DB7 +0xB64D 0x6DF6 +0xB64E 0x6DD4 +0xB64F 0x6E00 +0xB650 0x6DC8 +0xB651 0x6DE0 +0xB652 0x6DDF +0xB653 0x6DD6 +0xB654 0x6DBE +0xB655 0x6DE5 +0xB656 0x6DDC +0xB657 0x6DDD +0xB658 0x6DDB +0xB659 0x6DF4 +0xB65A 0x6DCA +0xB65B 0x6DBD +0xB65C 0x6DED +0xB65D 0x6DF0 +0xB65E 0x6DBA +0xB65F 0x6DD5 +0xB660 0x6DC2 +0xB661 0x6DCF +0xB662 0x6DC9 +0xB663 0x6DD0 +0xB664 0x6DF2 +0xB665 0x6DD3 +0xB666 0x6DFD +0xB667 0x6DD7 +0xB668 0x6DCD +0xB669 0x6DE3 +0xB66A 0x6DBB +0xB66B 0x70FA +0xB66C 0x710D +0xB66D 0x70F7 +0xB66E 0x7117 +0xB66F 0x70F4 +0xB670 0x710C +0xB671 0x70F0 +0xB672 0x7104 +0xB673 0x70F3 +0xB674 0x7110 +0xB675 0x70FC +0xB676 0x70FF +0xB677 0x7106 +0xB678 0x7113 +0xB679 0x7100 +0xB67A 0x70F8 +0xB67B 0x70F6 +0xB67C 0x710B +0xB67D 0x7102 +0xB67E 0x710E +0xB721 0x727E +0xB722 0x727B +0xB723 0x727C +0xB724 0x727F +0xB725 0x731D +0xB726 0x7317 +0xB727 0x7307 +0xB728 0x7311 +0xB729 0x7318 +0xB72A 0x730A +0xB72B 0x7308 +0xB72C 0x72FF +0xB72D 0x730F +0xB72E 0x731E +0xB72F 0x7388 +0xB730 0x73F6 +0xB731 0x73F8 +0xB732 0x73F5 +0xB733 0x7404 +0xB734 0x7401 +0xB735 0x73FD +0xB736 0x7407 +0xB737 0x7400 +0xB738 0x73FA +0xB739 0x73FC +0xB73A 0x73FF +0xB73B 0x740C +0xB73C 0x740B +0xB73D 0x73F4 +0xB73E 0x7408 +0xB73F 0x7564 +0xB740 0x7563 +0xB741 0x75CE +0xB742 0x75D2 +0xB743 0x75CF +0xB744 0x75CB +0xB745 0x75CC +0xB746 0x75D1 +0xB747 0x75D0 +0xB748 0x768F +0xB749 0x7689 +0xB74A 0x76D3 +0xB74B 0x7739 +0xB74C 0x772F +0xB74D 0x772D +0xB74E 0x7731 +0xB74F 0x7732 +0xB750 0x7734 +0xB751 0x7733 +0xB752 0x773D +0xB753 0x7725 +0xB754 0x773B +0xB755 0x7735 +0xB756 0x7848 +0xB757 0x7852 +0xB758 0x7849 +0xB759 0x784D +0xB75A 0x784A +0xB75B 0x784C +0xB75C 0x7826 +0xB75D 0x7845 +0xB75E 0x7850 +0xB75F 0x7964 +0xB760 0x7967 +0xB761 0x7969 +0xB762 0x796A +0xB763 0x7963 +0xB764 0x796B +0xB765 0x7961 +0xB766 0x79BB +0xB767 0x79FA +0xB768 0x79F8 +0xB769 0x79F6 +0xB76A 0x79F7 +0xB76B 0x7A8F +0xB76C 0x7A94 +0xB76D 0x7A90 +0xB76E 0x7B35 +0xB76F 0x7B3B +0xB770 0x7B34 +0xB771 0x7B25 +0xB772 0x7B30 +0xB773 0x7B22 +0xB774 0x7B24 +0xB775 0x7B33 +0xB776 0x7B18 +0xB777 0x7B2A +0xB778 0x7B1D +0xB779 0x7B31 +0xB77A 0x7B2B +0xB77B 0x7B2D +0xB77C 0x7B2F +0xB77D 0x7B32 +0xB77E 0x7B38 +0xB821 0x7B1A +0xB822 0x7B23 +0xB823 0x7C94 +0xB824 0x7C98 +0xB825 0x7C96 +0xB826 0x7CA3 +0xB827 0x7D35 +0xB828 0x7D3D +0xB829 0x7D38 +0xB82A 0x7D36 +0xB82B 0x7D3A +0xB82C 0x7D45 +0xB82D 0x7D2C +0xB82E 0x7D29 +0xB82F 0x7D41 +0xB830 0x7D47 +0xB831 0x7D3E +0xB832 0x7D3F +0xB833 0x7D4A +0xB834 0x7D3B +0xB835 0x7D28 +0xB836 0x7F63 +0xB837 0x7F95 +0xB838 0x7F9C +0xB839 0x7F9D +0xB83A 0x7F9B +0xB83B 0x7FCA +0xB83C 0x7FCB +0xB83D 0x7FCD +0xB83E 0x7FD0 +0xB83F 0x7FD1 +0xB840 0x7FC7 +0xB841 0x7FCF +0xB842 0x7FC9 +0xB843 0x801F +0xB844 0x801E +0xB845 0x801B +0xB846 0x8047 +0xB847 0x8043 +0xB848 0x8048 +0xB849 0x8118 +0xB84A 0x8125 +0xB84B 0x8119 +0xB84C 0x811B +0xB84D 0x812D +0xB84E 0x811F +0xB84F 0x812C +0xB850 0x811E +0xB851 0x8121 +0xB852 0x8115 +0xB853 0x8127 +0xB854 0x811D +0xB855 0x8122 +0xB856 0x8211 +0xB857 0x8238 +0xB858 0x8233 +0xB859 0x823A +0xB85A 0x8234 +0xB85B 0x8232 +0xB85C 0x8274 +0xB85D 0x8390 +0xB85E 0x83A3 +0xB85F 0x83A8 +0xB860 0x838D +0xB861 0x837A +0xB862 0x8373 +0xB863 0x83A4 +0xB864 0x8374 +0xB865 0x838F +0xB866 0x8381 +0xB867 0x8395 +0xB868 0x8399 +0xB869 0x8375 +0xB86A 0x8394 +0xB86B 0x83A9 +0xB86C 0x837D +0xB86D 0x8383 +0xB86E 0x838C +0xB86F 0x839D +0xB870 0x839B +0xB871 0x83AA +0xB872 0x838B +0xB873 0x837E +0xB874 0x83A5 +0xB875 0x83AF +0xB876 0x8388 +0xB877 0x8397 +0xB878 0x83B0 +0xB879 0x837F +0xB87A 0x83A6 +0xB87B 0x8387 +0xB87C 0x83AE +0xB87D 0x8376 +0xB87E 0x8659 +0xB921 0x8656 +0xB922 0x86BF +0xB923 0x86B7 +0xB924 0x86C2 +0xB925 0x86C1 +0xB926 0x86C5 +0xB927 0x86BA +0xB928 0x86B0 +0xB929 0x86C8 +0xB92A 0x86B9 +0xB92B 0x86B3 +0xB92C 0x86B8 +0xB92D 0x86CC +0xB92E 0x86B4 +0xB92F 0x86BB +0xB930 0x86BC +0xB931 0x86C3 +0xB932 0x86BD +0xB933 0x86BE +0xB934 0x8852 +0xB935 0x8889 +0xB936 0x8895 +0xB937 0x88A8 +0xB938 0x88A2 +0xB939 0x88AA +0xB93A 0x889A +0xB93B 0x8891 +0xB93C 0x88A1 +0xB93D 0x889F +0xB93E 0x8898 +0xB93F 0x88A7 +0xB940 0x8899 +0xB941 0x889B +0xB942 0x8897 +0xB943 0x88A4 +0xB944 0x88AC +0xB945 0x888C +0xB946 0x8893 +0xB947 0x888E +0xB948 0x8982 +0xB949 0x89D6 +0xB94A 0x89D9 +0xB94B 0x89D5 +0xB94C 0x8A30 +0xB94D 0x8A27 +0xB94E 0x8A2C +0xB94F 0x8A1E +0xB950 0x8C39 +0xB951 0x8C3B +0xB952 0x8C5C +0xB953 0x8C5D +0xB954 0x8C7D +0xB955 0x8CA5 +0xB956 0x8D7D +0xB957 0x8D7B +0xB958 0x8D79 +0xB959 0x8DBC +0xB95A 0x8DC2 +0xB95B 0x8DB9 +0xB95C 0x8DBF +0xB95D 0x8DC1 +0xB95E 0x8ED8 +0xB95F 0x8EDE +0xB960 0x8EDD +0xB961 0x8EDC +0xB962 0x8ED7 +0xB963 0x8EE0 +0xB964 0x8EE1 +0xB965 0x9024 +0xB966 0x900B +0xB967 0x9011 +0xB968 0x901C +0xB969 0x900C +0xB96A 0x9021 +0xB96B 0x90EF +0xB96C 0x90EA +0xB96D 0x90F0 +0xB96E 0x90F4 +0xB96F 0x90F2 +0xB970 0x90F3 +0xB971 0x90D4 +0xB972 0x90EB +0xB973 0x90EC +0xB974 0x90E9 +0xB975 0x9156 +0xB976 0x9158 +0xB977 0x915A +0xB978 0x9153 +0xB979 0x9155 +0xB97A 0x91EC +0xB97B 0x91F4 +0xB97C 0x91F1 +0xB97D 0x91F3 +0xB97E 0x91F8 +0xBA21 0x91E4 +0xBA22 0x91F9 +0xBA23 0x91EA +0xBA24 0x91EB +0xBA25 0x91F7 +0xBA26 0x91E8 +0xBA27 0x91EE +0xBA28 0x957A +0xBA29 0x9586 +0xBA2A 0x9588 +0xBA2B 0x967C +0xBA2C 0x966D +0xBA2D 0x966B +0xBA2E 0x9671 +0xBA2F 0x966F +0xBA30 0x96BF +0xBA31 0x976A +0xBA32 0x9804 +0xBA33 0x98E5 +0xBA34 0x9997 +0xBA35 0x509B +0xBA36 0x5095 +0xBA37 0x5094 +0xBA38 0x509E +0xBA39 0x508B +0xBA3A 0x50A3 +0xBA3B 0x5083 +0xBA3C 0x508C +0xBA3D 0x508E +0xBA3E 0x509D +0xBA3F 0x5068 +0xBA40 0x509C +0xBA41 0x5092 +0xBA42 0x5082 +0xBA43 0x5087 +0xBA44 0x515F +0xBA45 0x51D4 +0xBA46 0x5312 +0xBA47 0x5311 +0xBA48 0x53A4 +0xBA49 0x53A7 +0xBA4A 0x5591 +0xBA4B 0x55A8 +0xBA4C 0x55A5 +0xBA4D 0x55AD +0xBA4E 0x5577 +0xBA4F 0x5645 +0xBA50 0x55A2 +0xBA51 0x5593 +0xBA52 0x5588 +0xBA53 0x558F +0xBA54 0x55B5 +0xBA55 0x5581 +0xBA56 0x55A3 +0xBA57 0x5592 +0xBA58 0x55A4 +0xBA59 0x557D +0xBA5A 0x558C +0xBA5B 0x55A6 +0xBA5C 0x557F +0xBA5D 0x5595 +0xBA5E 0x55A1 +0xBA5F 0x558E +0xBA60 0x570C +0xBA61 0x5829 +0xBA62 0x5837 +0xBA63 0x5819 +0xBA64 0x581E +0xBA65 0x5827 +0xBA66 0x5823 +0xBA67 0x5828 +0xBA68 0x57F5 +0xBA69 0x5848 +0xBA6A 0x5825 +0xBA6B 0x581C +0xBA6C 0x581B +0xBA6D 0x5833 +0xBA6E 0x583F +0xBA6F 0x5836 +0xBA70 0x582E +0xBA71 0x5839 +0xBA72 0x5838 +0xBA73 0x582D +0xBA74 0x582C +0xBA75 0x583B +0xBA76 0x5961 +0xBA77 0x5AAF +0xBA78 0x5A94 +0xBA79 0x5A9F +0xBA7A 0x5A7A +0xBA7B 0x5AA2 +0xBA7C 0x5A9E +0xBA7D 0x5A78 +0xBA7E 0x5AA6 +0xBB21 0x5A7C +0xBB22 0x5AA5 +0xBB23 0x5AAC +0xBB24 0x5A95 +0xBB25 0x5AAE +0xBB26 0x5A37 +0xBB27 0x5A84 +0xBB28 0x5A8A +0xBB29 0x5A97 +0xBB2A 0x5A83 +0xBB2B 0x5A8B +0xBB2C 0x5AA9 +0xBB2D 0x5A7B +0xBB2E 0x5A7D +0xBB2F 0x5A8C +0xBB30 0x5A9C +0xBB31 0x5A8F +0xBB32 0x5A93 +0xBB33 0x5A9D +0xBB34 0x5BEA +0xBB35 0x5BCD +0xBB36 0x5BCB +0xBB37 0x5BD4 +0xBB38 0x5BD1 +0xBB39 0x5BCA +0xBB3A 0x5BCE +0xBB3B 0x5C0C +0xBB3C 0x5C30 +0xBB3D 0x5D37 +0xBB3E 0x5D43 +0xBB3F 0x5D6B +0xBB40 0x5D41 +0xBB41 0x5D4B +0xBB42 0x5D3F +0xBB43 0x5D35 +0xBB44 0x5D51 +0xBB45 0x5D4E +0xBB46 0x5D55 +0xBB47 0x5D33 +0xBB48 0x5D3A +0xBB49 0x5D52 +0xBB4A 0x5D3D +0xBB4B 0x5D31 +0xBB4C 0x5D59 +0xBB4D 0x5D42 +0xBB4E 0x5D39 +0xBB4F 0x5D49 +0xBB50 0x5D38 +0xBB51 0x5D3C +0xBB52 0x5D32 +0xBB53 0x5D36 +0xBB54 0x5D40 +0xBB55 0x5D45 +0xBB56 0x5E44 +0xBB57 0x5E41 +0xBB58 0x5F58 +0xBB59 0x5FA6 +0xBB5A 0x5FA5 +0xBB5B 0x5FAB +0xBB5C 0x60C9 +0xBB5D 0x60B9 +0xBB5E 0x60CC +0xBB5F 0x60E2 +0xBB60 0x60CE +0xBB61 0x60C4 +0xBB62 0x6114 +0xBB63 0x60F2 +0xBB64 0x610A +0xBB65 0x6116 +0xBB66 0x6105 +0xBB67 0x60F5 +0xBB68 0x6113 +0xBB69 0x60F8 +0xBB6A 0x60FC +0xBB6B 0x60FE +0xBB6C 0x60C1 +0xBB6D 0x6103 +0xBB6E 0x6118 +0xBB6F 0x611D +0xBB70 0x6110 +0xBB71 0x60FF +0xBB72 0x6104 +0xBB73 0x610B +0xBB74 0x624A +0xBB75 0x6394 +0xBB76 0x63B1 +0xBB77 0x63B0 +0xBB78 0x63CE +0xBB79 0x63E5 +0xBB7A 0x63E8 +0xBB7B 0x63EF +0xBB7C 0x63C3 +0xBB7D 0x649D +0xBB7E 0x63F3 +0xBC21 0x63CA +0xBC22 0x63E0 +0xBC23 0x63F6 +0xBC24 0x63D5 +0xBC25 0x63F2 +0xBC26 0x63F5 +0xBC27 0x6461 +0xBC28 0x63DF +0xBC29 0x63BE +0xBC2A 0x63DD +0xBC2B 0x63DC +0xBC2C 0x63C4 +0xBC2D 0x63D8 +0xBC2E 0x63D3 +0xBC2F 0x63C2 +0xBC30 0x63C7 +0xBC31 0x63CC +0xBC32 0x63CB +0xBC33 0x63C8 +0xBC34 0x63F0 +0xBC35 0x63D7 +0xBC36 0x63D9 +0xBC37 0x6532 +0xBC38 0x6567 +0xBC39 0x656A +0xBC3A 0x6564 +0xBC3B 0x655C +0xBC3C 0x6568 +0xBC3D 0x6565 +0xBC3E 0x658C +0xBC3F 0x659D +0xBC40 0x659E +0xBC41 0x65AE +0xBC42 0x65D0 +0xBC43 0x65D2 +0xBC44 0x667C +0xBC45 0x666C +0xBC46 0x667B +0xBC47 0x6680 +0xBC48 0x6671 +0xBC49 0x6679 +0xBC4A 0x666A +0xBC4B 0x6672 +0xBC4C 0x6701 +0xBC4D 0x690C +0xBC4E 0x68D3 +0xBC4F 0x6904 +0xBC50 0x68DC +0xBC51 0x692A +0xBC52 0x68EC +0xBC53 0x68EA +0xBC54 0x68F1 +0xBC55 0x690F +0xBC56 0x68D6 +0xBC57 0x68F7 +0xBC58 0x68EB +0xBC59 0x68E4 +0xBC5A 0x68F6 +0xBC5B 0x6913 +0xBC5C 0x6910 +0xBC5D 0x68F3 +0xBC5E 0x68E1 +0xBC5F 0x6907 +0xBC60 0x68CC +0xBC61 0x6908 +0xBC62 0x6970 +0xBC63 0x68B4 +0xBC64 0x6911 +0xBC65 0x68EF +0xBC66 0x68C6 +0xBC67 0x6914 +0xBC68 0x68F8 +0xBC69 0x68D0 +0xBC6A 0x68FD +0xBC6B 0x68FC +0xBC6C 0x68E8 +0xBC6D 0x690B +0xBC6E 0x690A +0xBC6F 0x6917 +0xBC70 0x68CE +0xBC71 0x68C8 +0xBC72 0x68DD +0xBC73 0x68DE +0xBC74 0x68E6 +0xBC75 0x68F4 +0xBC76 0x68D1 +0xBC77 0x6906 +0xBC78 0x68D4 +0xBC79 0x68E9 +0xBC7A 0x6915 +0xBC7B 0x6925 +0xBC7C 0x68C7 +0xBC7D 0x6B39 +0xBC7E 0x6B3B +0xBD21 0x6B3F +0xBD22 0x6B3C +0xBD23 0x6B94 +0xBD24 0x6B97 +0xBD25 0x6B99 +0xBD26 0x6B95 +0xBD27 0x6BBD +0xBD28 0x6BF0 +0xBD29 0x6BF2 +0xBD2A 0x6BF3 +0xBD2B 0x6C30 +0xBD2C 0x6DFC +0xBD2D 0x6E46 +0xBD2E 0x6E47 +0xBD2F 0x6E1F +0xBD30 0x6E49 +0xBD31 0x6E88 +0xBD32 0x6E3C +0xBD33 0x6E3D +0xBD34 0x6E45 +0xBD35 0x6E62 +0xBD36 0x6E2B +0xBD37 0x6E3F +0xBD38 0x6E41 +0xBD39 0x6E5D +0xBD3A 0x6E73 +0xBD3B 0x6E1C +0xBD3C 0x6E33 +0xBD3D 0x6E4B +0xBD3E 0x6E40 +0xBD3F 0x6E51 +0xBD40 0x6E3B +0xBD41 0x6E03 +0xBD42 0x6E2E +0xBD43 0x6E5E +0xBD44 0x6E68 +0xBD45 0x6E5C +0xBD46 0x6E61 +0xBD47 0x6E31 +0xBD48 0x6E28 +0xBD49 0x6E60 +0xBD4A 0x6E71 +0xBD4B 0x6E6B +0xBD4C 0x6E39 +0xBD4D 0x6E22 +0xBD4E 0x6E30 +0xBD4F 0x6E53 +0xBD50 0x6E65 +0xBD51 0x6E27 +0xBD52 0x6E78 +0xBD53 0x6E64 +0xBD54 0x6E77 +0xBD55 0x6E55 +0xBD56 0x6E79 +0xBD57 0x6E52 +0xBD58 0x6E66 +0xBD59 0x6E35 +0xBD5A 0x6E36 +0xBD5B 0x6E5A +0xBD5C 0x7120 +0xBD5D 0x711E +0xBD5E 0x712F +0xBD5F 0x70FB +0xBD60 0x712E +0xBD61 0x7131 +0xBD62 0x7123 +0xBD63 0x7125 +0xBD64 0x7122 +0xBD65 0x7132 +0xBD66 0x711F +0xBD67 0x7128 +0xBD68 0x713A +0xBD69 0x711B +0xBD6A 0x724B +0xBD6B 0x725A +0xBD6C 0x7288 +0xBD6D 0x7289 +0xBD6E 0x7286 +0xBD6F 0x7285 +0xBD70 0x728B +0xBD71 0x7312 +0xBD72 0x730B +0xBD73 0x7330 +0xBD74 0x7322 +0xBD75 0x7331 +0xBD76 0x7333 +0xBD77 0x7327 +0xBD78 0x7332 +0xBD79 0x732D +0xBD7A 0x7326 +0xBD7B 0x7323 +0xBD7C 0x7335 +0xBD7D 0x730C +0xBD7E 0x742E +0xBE21 0x742C +0xBE22 0x7430 +0xBE23 0x742B +0xBE24 0x7416 +0xBE25 0x741A +0xBE26 0x7421 +0xBE27 0x742D +0xBE28 0x7431 +0xBE29 0x7424 +0xBE2A 0x7423 +0xBE2B 0x741D +0xBE2C 0x7429 +0xBE2D 0x7420 +0xBE2E 0x7432 +0xBE2F 0x74FB +0xBE30 0x752F +0xBE31 0x756F +0xBE32 0x756C +0xBE33 0x75E7 +0xBE34 0x75DA +0xBE35 0x75E1 +0xBE36 0x75E6 +0xBE37 0x75DD +0xBE38 0x75DF +0xBE39 0x75E4 +0xBE3A 0x75D7 +0xBE3B 0x7695 +0xBE3C 0x7692 +0xBE3D 0x76DA +0xBE3E 0x7746 +0xBE3F 0x7747 +0xBE40 0x7744 +0xBE41 0x774D +0xBE42 0x7745 +0xBE43 0x774A +0xBE44 0x774E +0xBE45 0x774B +0xBE46 0x774C +0xBE47 0x77DE +0xBE48 0x77EC +0xBE49 0x7860 +0xBE4A 0x7864 +0xBE4B 0x7865 +0xBE4C 0x785C +0xBE4D 0x786D +0xBE4E 0x7871 +0xBE4F 0x786A +0xBE50 0x786E +0xBE51 0x7870 +0xBE52 0x7869 +0xBE53 0x7868 +0xBE54 0x785E +0xBE55 0x7862 +0xBE56 0x7974 +0xBE57 0x7973 +0xBE58 0x7972 +0xBE59 0x7970 +0xBE5A 0x7A02 +0xBE5B 0x7A0A +0xBE5C 0x7A03 +0xBE5D 0x7A0C +0xBE5E 0x7A04 +0xBE5F 0x7A99 +0xBE60 0x7AE6 +0xBE61 0x7AE4 +0xBE62 0x7B4A +0xBE63 0x7B47 +0xBE64 0x7B44 +0xBE65 0x7B48 +0xBE66 0x7B4C +0xBE67 0x7B4E +0xBE68 0x7B40 +0xBE69 0x7B58 +0xBE6A 0x7B45 +0xBE6B 0x7CA2 +0xBE6C 0x7C9E +0xBE6D 0x7CA8 +0xBE6E 0x7CA1 +0xBE6F 0x7D58 +0xBE70 0x7D6F +0xBE71 0x7D63 +0xBE72 0x7D53 +0xBE73 0x7D56 +0xBE74 0x7D67 +0xBE75 0x7D6A +0xBE76 0x7D4F +0xBE77 0x7D6D +0xBE78 0x7D5C +0xBE79 0x7D6B +0xBE7A 0x7D52 +0xBE7B 0x7D54 +0xBE7C 0x7D69 +0xBE7D 0x7D51 +0xBE7E 0x7D5F +0xBF21 0x7D4E +0xBF22 0x7F3E +0xBF23 0x7F3F +0xBF24 0x7F65 +0xBF25 0x7F66 +0xBF26 0x7FA2 +0xBF27 0x7FA0 +0xBF28 0x7FA1 +0xBF29 0x7FD7 +0xBF2A 0x8051 +0xBF2B 0x804F +0xBF2C 0x8050 +0xBF2D 0x80FE +0xBF2E 0x80D4 +0xBF2F 0x8143 +0xBF30 0x814A +0xBF31 0x8152 +0xBF32 0x814F +0xBF33 0x8147 +0xBF34 0x813D +0xBF35 0x814D +0xBF36 0x813A +0xBF37 0x81E6 +0xBF38 0x81EE +0xBF39 0x81F7 +0xBF3A 0x81F8 +0xBF3B 0x81F9 +0xBF3C 0x8204 +0xBF3D 0x823C +0xBF3E 0x823D +0xBF3F 0x823F +0xBF40 0x8275 +0xBF41 0x833B +0xBF42 0x83CF +0xBF43 0x83F9 +0xBF44 0x8423 +0xBF45 0x83C0 +0xBF46 0x83E8 +0xBF47 0x8412 +0xBF48 0x83E7 +0xBF49 0x83E4 +0xBF4A 0x83FC +0xBF4B 0x83F6 +0xBF4C 0x8410 +0xBF4D 0x83C6 +0xBF4E 0x83C8 +0xBF4F 0x83EB +0xBF50 0x83E3 +0xBF51 0x83BF +0xBF52 0x8401 +0xBF53 0x83DD +0xBF54 0x83E5 +0xBF55 0x83D8 +0xBF56 0x83FF +0xBF57 0x83E1 +0xBF58 0x83CB +0xBF59 0x83CE +0xBF5A 0x83D6 +0xBF5B 0x83F5 +0xBF5C 0x83C9 +0xBF5D 0x8409 +0xBF5E 0x840F +0xBF5F 0x83DE +0xBF60 0x8411 +0xBF61 0x8406 +0xBF62 0x83C2 +0xBF63 0x83F3 +0xBF64 0x83D5 +0xBF65 0x83FA +0xBF66 0x83C7 +0xBF67 0x83D1 +0xBF68 0x83EA +0xBF69 0x8413 +0xBF6A 0x839A +0xBF6B 0x83C3 +0xBF6C 0x83EC +0xBF6D 0x83EE +0xBF6E 0x83C4 +0xBF6F 0x83FB +0xBF70 0x83D7 +0xBF71 0x83E2 +0xBF72 0x841B +0xBF73 0x83DB +0xBF74 0x83FE +0xBF75 0x86D8 +0xBF76 0x86E2 +0xBF77 0x86E6 +0xBF78 0x86D3 +0xBF79 0x86E3 +0xBF7A 0x86DA +0xBF7B 0x86EA +0xBF7C 0x86DD +0xBF7D 0x86EB +0xBF7E 0x86DC +0xC021 0x86EC +0xC022 0x86E9 +0xC023 0x86D7 +0xC024 0x86E8 +0xC025 0x86D1 +0xC026 0x8848 +0xC027 0x8856 +0xC028 0x8855 +0xC029 0x88BA +0xC02A 0x88D7 +0xC02B 0x88B9 +0xC02C 0x88B8 +0xC02D 0x88C0 +0xC02E 0x88BE +0xC02F 0x88B6 +0xC030 0x88BC +0xC031 0x88B7 +0xC032 0x88BD +0xC033 0x88B2 +0xC034 0x8901 +0xC035 0x88C9 +0xC036 0x8995 +0xC037 0x8998 +0xC038 0x8997 +0xC039 0x89DD +0xC03A 0x89DA +0xC03B 0x89DB +0xC03C 0x8A4E +0xC03D 0x8A4D +0xC03E 0x8A39 +0xC03F 0x8A59 +0xC040 0x8A40 +0xC041 0x8A57 +0xC042 0x8A58 +0xC043 0x8A44 +0xC044 0x8A45 +0xC045 0x8A52 +0xC046 0x8A48 +0xC047 0x8A51 +0xC048 0x8A4A +0xC049 0x8A4C +0xC04A 0x8A4F +0xC04B 0x8C5F +0xC04C 0x8C81 +0xC04D 0x8C80 +0xC04E 0x8CBA +0xC04F 0x8CBE +0xC050 0x8CB0 +0xC051 0x8CB9 +0xC052 0x8CB5 +0xC053 0x8D84 +0xC054 0x8D80 +0xC055 0x8D89 +0xC056 0x8DD8 +0xC057 0x8DD3 +0xC058 0x8DCD +0xC059 0x8DC7 +0xC05A 0x8DD6 +0xC05B 0x8DDC +0xC05C 0x8DCF +0xC05D 0x8DD5 +0xC05E 0x8DD9 +0xC05F 0x8DC8 +0xC060 0x8DD7 +0xC061 0x8DC5 +0xC062 0x8EEF +0xC063 0x8EF7 +0xC064 0x8EFA +0xC065 0x8EF9 +0xC066 0x8EE6 +0xC067 0x8EEE +0xC068 0x8EE5 +0xC069 0x8EF5 +0xC06A 0x8EE7 +0xC06B 0x8EE8 +0xC06C 0x8EF6 +0xC06D 0x8EEB +0xC06E 0x8EF1 +0xC06F 0x8EEC +0xC070 0x8EF4 +0xC071 0x8EE9 +0xC072 0x902D +0xC073 0x9034 +0xC074 0x902F +0xC075 0x9106 +0xC076 0x912C +0xC077 0x9104 +0xC078 0x90FF +0xC079 0x90FC +0xC07A 0x9108 +0xC07B 0x90F9 +0xC07C 0x90FB +0xC07D 0x9101 +0xC07E 0x9100 +0xC121 0x9107 +0xC122 0x9105 +0xC123 0x9103 +0xC124 0x9161 +0xC125 0x9164 +0xC126 0x915F +0xC127 0x9162 +0xC128 0x9160 +0xC129 0x9201 +0xC12A 0x920A +0xC12B 0x9225 +0xC12C 0x9203 +0xC12D 0x921A +0xC12E 0x9226 +0xC12F 0x920F +0xC130 0x920C +0xC131 0x9200 +0xC132 0x9212 +0xC133 0x91FF +0xC134 0x91FD +0xC135 0x9206 +0xC136 0x9204 +0xC137 0x9227 +0xC138 0x9202 +0xC139 0x921C +0xC13A 0x9224 +0xC13B 0x9219 +0xC13C 0x9217 +0xC13D 0x9205 +0xC13E 0x9216 +0xC13F 0x957B +0xC140 0x958D +0xC141 0x958C +0xC142 0x9590 +0xC143 0x9687 +0xC144 0x967E +0xC145 0x9688 +0xC146 0x9689 +0xC147 0x9683 +0xC148 0x9680 +0xC149 0x96C2 +0xC14A 0x96C8 +0xC14B 0x96C3 +0xC14C 0x96F1 +0xC14D 0x96F0 +0xC14E 0x976C +0xC14F 0x9770 +0xC150 0x976E +0xC151 0x9807 +0xC152 0x98A9 +0xC153 0x98EB +0xC154 0x9CE6 +0xC155 0x9EF9 +0xC156 0x4E83 +0xC157 0x4E84 +0xC158 0x4EB6 +0xC159 0x50BD +0xC15A 0x50BF +0xC15B 0x50C6 +0xC15C 0x50AE +0xC15D 0x50C4 +0xC15E 0x50CA +0xC15F 0x50B4 +0xC160 0x50C8 +0xC161 0x50C2 +0xC162 0x50B0 +0xC163 0x50C1 +0xC164 0x50BA +0xC165 0x50B1 +0xC166 0x50CB +0xC167 0x50C9 +0xC168 0x50B6 +0xC169 0x50B8 +0xC16A 0x51D7 +0xC16B 0x527A +0xC16C 0x5278 +0xC16D 0x527B +0xC16E 0x527C +0xC16F 0x55C3 +0xC170 0x55DB +0xC171 0x55CC +0xC172 0x55D0 +0xC173 0x55CB +0xC174 0x55CA +0xC175 0x55DD +0xC176 0x55C0 +0xC177 0x55D4 +0xC178 0x55C4 +0xC179 0x55E9 +0xC17A 0x55BF +0xC17B 0x55D2 +0xC17C 0x558D +0xC17D 0x55CF +0xC17E 0x55D5 +0xC221 0x55E2 +0xC222 0x55D6 +0xC223 0x55C8 +0xC224 0x55F2 +0xC225 0x55CD +0xC226 0x55D9 +0xC227 0x55C2 +0xC228 0x5714 +0xC229 0x5853 +0xC22A 0x5868 +0xC22B 0x5864 +0xC22C 0x584F +0xC22D 0x584D +0xC22E 0x5849 +0xC22F 0x586F +0xC230 0x5855 +0xC231 0x584E +0xC232 0x585D +0xC233 0x5859 +0xC234 0x5865 +0xC235 0x585B +0xC236 0x583D +0xC237 0x5863 +0xC238 0x5871 +0xC239 0x58FC +0xC23A 0x5AC7 +0xC23B 0x5AC4 +0xC23C 0x5ACB +0xC23D 0x5ABA +0xC23E 0x5AB8 +0xC23F 0x5AB1 +0xC240 0x5AB5 +0xC241 0x5AB0 +0xC242 0x5ABF +0xC243 0x5AC8 +0xC244 0x5ABB +0xC245 0x5AC6 +0xC246 0x5AB7 +0xC247 0x5AC0 +0xC248 0x5ACA +0xC249 0x5AB4 +0xC24A 0x5AB6 +0xC24B 0x5ACD +0xC24C 0x5AB9 +0xC24D 0x5A90 +0xC24E 0x5BD6 +0xC24F 0x5BD8 +0xC250 0x5BD9 +0xC251 0x5C1F +0xC252 0x5C33 +0xC253 0x5D71 +0xC254 0x5D63 +0xC255 0x5D4A +0xC256 0x5D65 +0xC257 0x5D72 +0xC258 0x5D6C +0xC259 0x5D5E +0xC25A 0x5D68 +0xC25B 0x5D67 +0xC25C 0x5D62 +0xC25D 0x5DF0 +0xC25E 0x5E4F +0xC25F 0x5E4E +0xC260 0x5E4A +0xC261 0x5E4D +0xC262 0x5E4B +0xC263 0x5EC5 +0xC264 0x5ECC +0xC265 0x5EC6 +0xC266 0x5ECB +0xC267 0x5EC7 +0xC268 0x5F40 +0xC269 0x5FAF +0xC26A 0x5FAD +0xC26B 0x60F7 +0xC26C 0x6149 +0xC26D 0x614A +0xC26E 0x612B +0xC26F 0x6145 +0xC270 0x6136 +0xC271 0x6132 +0xC272 0x612E +0xC273 0x6146 +0xC274 0x612F +0xC275 0x614F +0xC276 0x6129 +0xC277 0x6140 +0xC278 0x6220 +0xC279 0x9168 +0xC27A 0x6223 +0xC27B 0x6225 +0xC27C 0x6224 +0xC27D 0x63C5 +0xC27E 0x63F1 +0xC2A1 0x2400 +0xC2A2 0x2401 +0xC2A3 0x2402 +0xC2A4 0x2403 +0xC2A5 0x2404 +0xC2A6 0x2405 +0xC2A7 0x2406 +0xC2A8 0x2407 +0xC2A9 0x2408 +0xC2AA 0x2409 +0xC2AB 0x240A +0xC2AC 0x240B +0xC2AD 0x240C +0xC2AE 0x240D +0xC2AF 0x240E +0xC2B0 0x240F +0xC2B1 0x2410 +0xC2B2 0x2411 +0xC2B3 0x2412 +0xC2B4 0x2413 +0xC2B5 0x2414 +0xC2B6 0x2415 +0xC2B7 0x2416 +0xC2B8 0x2417 +0xC2B9 0x2418 +0xC2BA 0x2419 +0xC2BB 0x241A +0xC2BC 0x241B +0xC2BD 0x241C +0xC2BE 0x241D +0xC2BF 0x241E +0xC2C0 0x241F +0xC2C1 0x2421 +0xC2CBA1A1 0x4E28 +0xC2CBA1A2 0x4E36 +0xC2CBA1A3 0x4E3F +0xC2CBA1A4 0x4E85 +0xC2CBA1A5 0x4E05 +0xC2CBA1A6 0x4E04 +0xC2CBA1A7 0x5182 +0xC2CBA1A8 0x5196 +0xC2CBA1A9 0x5338 +0xC2CBA1AA 0x5369 +0xC2CBA1AB 0x53B6 +0xC2CBA1AC 0x4E2A +0xC2CBA1AD 0x4E87 +0xC2CBA1AE 0x4E49 +0xC2CBA1AF 0x51E2 +0xC2CBA1B0 0x4E46 +0xC2CBA1B1 0x4E8F +0xC2CBA1B2 0x4EBC +0xC2CBA1B3 0x4EBE +0xC2CBA1B4 0x5166 +0xC2CBA1B5 0x51E3 +0xC2CBA1B6 0x5204 +0xC2CBA1B7 0x529C +0xC2CBA1B8 0x5344 +0xC2CBA1B9 0x5902 +0xC2CBA1BA 0x590A +0xC2CBA1BB 0x5B80 +0xC2CBA1BC 0x5DDB +0xC2CBA1BD 0x5E7A +0xC2CBA1BE 0x5E7F +0xC2CBA1BF 0x5EF4 +0xC2CBA1C0 0x5F50 +0xC2CBA1C1 0x5F51 +0xC2CBA1C2 0x5F61 +0xC2CBA1C3 0x961D +0xC2CBA1C4 0x2000B +0xC2CBA1C5 0x4E63 +0xC2CBA1C6 0x4E62 +0xC2CBA1C7 0x4EA3 +0xC2CBA1C8 0x5185 +0xC2CBA1C9 0x4EC5 +0xC2CBA1CA 0x4ECF +0xC2CBA1CB 0x4ECE +0xC2CBA1CC 0x4ECC +0xC2CBA1CD 0x5184 +0xC2CBA1CE 0x5186 +0xC2CBA1CF 0x2F817 +0xC2CBA1D0 0x34C5 +0xC2CBA1D1 0x51E4 +0xC2CBA1D2 0x5205 +0xC2CBA1D3 0x529E +0xC2CBA1D4 0x529D +0xC2CBA1D5 0x52FD +0xC2CBA1D6 0x5300 +0xC2CBA1D7 0x533A +0xC2CBA1D8 0x3539 +0xC2CBA1D9 0x5346 +0xC2CBA1DA 0x535D +0xC2CBA1DB 0x5386 +0xC2CBA1DC 0x53B7 +0xC2CBA1DD 0x3555 +0xC2CBA1DE 0x53CC +0xC2CBA1DF 0x355B +0xC2CBA1E0 0x53CE +0xC2CBA1E1 0x5721 +0xC2CBA1E2 0x37A2 +0xC2CBA1E3 0x5E00 +0xC2CBA1E4 0x5F0C +0xC2CBA1E5 0x6237 +0xC2CBA1E6 0x6238 +0xC2CBA1E7 0x6534 +0xC2CBA1E8 0x6535 +0xC2CBA1E9 0x65E0 +0xC2CBA1EA 0x3E26 +0xC2CBA1EB 0x738D +0xC2CBA1EC 0x4E97 +0xC2CBA1ED 0x4EE0 +0xC2CBA1EE 0x3432 +0xC2CBA1EF 0x201A9 +0xC2CBA1F0 0x4EE7 +0xC2CBA1F1 0x3433 +0xC2CBA1F2 0x4EE6 +0xC2CBA1F3 0x3434 +0xC2CBA1F4 0x36A2 +0xC2CBA1F5 0x3431 +0xC2CBA1F6 0x34B0 +0xC2CBA1F7 0x56D8 +0xC2CBA1F8 0x518B +0xC2CBA1F9 0x518C +0xC2CBA1FA 0x5199 +0xC2CBA1FB 0x51E5 +0xC2CBA1FC 0x2F850 +0xC2CBA1FD 0x520B +0xC2CBA1FE 0x34DC +0xC2CBA2A1 0x361E +0xC2CBA2A2 0x5304 +0xC2CBA2A3 0x5303 +0xC2CBA2A4 0x5307 +0xC2CBA2A5 0x2F82A +0xC2CBA2A6 0x531E +0xC2CBA2A7 0x535F +0xC2CBA2A8 0x536D +0xC2CBA2A9 0x5389 +0xC2CBA2AA 0x53BA +0xC2CBA2AB 0x53D0 +0xC2CBA2AC 0x3565 +0xC2CBA2AD 0x53F6 +0xC2CBA2AE 0x53F7 +0xC2CBA2AF 0x53F9 +0xC2CBA2B0 0x3564 +0xC2CBA2B1 0x53F4 +0xC2CBA2B2 0x361D +0xC2CBA2B3 0x3626 +0xC2CBA2B4 0x5724 +0xC2CBA2B5 0x5904 +0xC2CBA2B6 0x5918 +0xC2CBA2B7 0x5932 +0xC2CBA2B8 0x5930 +0xC2CBA2B9 0x5934 +0xC2CBA2BA 0x368E +0xC2CBA2BB 0x5975 +0xC2CBA2BC 0x374A +0xC2CBA2BD 0x5B82 +0xC2CBA2BE 0x5BF9 +0xC2CBA2BF 0x5C14 +0xC2CBA2C0 0x378B +0xC2CBA2C1 0x37A6 +0xC2CBA2C2 0x37A4 +0xC2CBA2C3 0x37A5 +0xC2CBA2C4 0x37A7 +0xC2CBA2C5 0x382F +0xC2CBA2C6 0x3832 +0xC2CBA2C7 0x5E81 +0xC2CBA2C8 0x5E83 +0xC2CBA2C9 0x5F0D +0xC2CBA2CA 0x5F52 +0xC2CBA2CB 0x38D4 +0xC2CBA2CC 0x5FCA +0xC2CBA2CD 0x5FC7 +0xC2CBA2CE 0x6239 +0xC2CBA2CF 0x39C5 +0xC2CBA2D0 0x624F +0xC2CBA2D1 0x65E7 +0xC2CBA2D2 0x672F +0xC2CBA2D3 0x6B7A +0xC2CBA2D4 0x6C39 +0xC2CBA2D5 0x3CBA +0xC2CBA2D6 0x3CB9 +0xC2CBA2D7 0x6C37 +0xC2CBA2D8 0x6C44 +0xC2CBA2D9 0x6C45 +0xC2CBA2DA 0x738C +0xC2CBA2DB 0x7592 +0xC2CBA2DC 0x7676 +0xC2CBA2DD 0x9093 +0xC2CBA2DE 0x9092 +0xC2CBA2DF 0x48B3 +0xC2CBA2E0 0x49BA +0xC2CBA2E1 0x4E21 +0xC2CBA2E2 0x4E20 +0xC2CBA2E3 0x4E22 +0xC2CBA2E4 0x4E68 +0xC2CBA2E5 0x4E89 +0xC2CBA2E6 0x4E98 +0xC2CBA2E7 0x4EF9 +0xC2CBA2E8 0x4EEF +0xC2CBA2E9 0x343B +0xC2CBA2EA 0x343C +0xC2CBA2EB 0x4EF8 +0xC2CBA2EC 0x4F06 +0xC2CBA2ED 0x4F03 +0xC2CBA2EE 0x4EFC +0xC2CBA2EF 0x4EEE +0xC2CBA2F0 0x4F16 +0xC2CBA2F1 0x3439 +0xC2CBA2F2 0x4F28 +0xC2CBA2F3 0x4F1C +0xC2CBA2F4 0x4F07 +0xC2CBA2F5 0x4F1A +0xC2CBA2F6 0x4EFA +0xC2CBA2F7 0x4F17 +0xC2CBA2F8 0x514A +0xC2CBA2F9 0x34B2 +0xC2CBA2FA 0x5172 +0xC2CBA2FB 0x2F815 +0xC2CBA2FC 0x51B4 +0xC2CBA2FD 0x51B3 +0xC2CBA2FE 0x51B2 +0xC2CBA3A1 0x34C7 +0xC2CBA3A2 0x51E8 +0xC2CBA3A3 0x342B +0xC2CBA3A4 0x5214 +0xC2CBA3A5 0x520F +0xC2CBA3A6 0x5215 +0xC2CBA3A7 0x5218 +0xC2CBA3A8 0x52A8 +0xC2CBA3A9 0x2F82C +0xC2CBA3AA 0x534B +0xC2CBA3AB 0x534F +0xC2CBA3AC 0x353B +0xC2CBA3AD 0x5350 +0xC2CBA3AE 0x3544 +0xC2CBA3AF 0x538B +0xC2CBA3B0 0x3542 +0xC2CBA3B1 0x53BE +0xC2CBA3B2 0x355C +0xC2CBA3B3 0x53D2 +0xC2CBA3B4 0x5416 +0xC2CBA3B5 0x53FF +0xC2CBA3B6 0x3567 +0xC2CBA3B7 0x5400 +0xC2CBA3B8 0x3566 +0xC2CBA3B9 0x5405 +0xC2CBA3BA 0x5413 +0xC2CBA3BB 0x5415 +0xC2CBA3BC 0x2F83B +0xC2CBA3BD 0x361F +0xC2CBA3BE 0x56E3 +0xC2CBA3BF 0x5735 +0xC2CBA3C0 0x5736 +0xC2CBA3C1 0x5731 +0xC2CBA3C2 0x5732 +0xC2CBA3C3 0x58EE +0xC2CBA3C4 0x5905 +0xC2CBA3C5 0x4E54 +0xC2CBA3C6 0x368F +0xC2CBA3C7 0x5936 +0xC2CBA3C8 0x3690 +0xC2CBA3C9 0x36A8 +0xC2CBA3CA 0x36A4 +0xC2CBA3CB 0x597A +0xC2CBA3CC 0x36A3 +0xC2CBA3CD 0x5986 +0xC2CBA3CE 0x373D +0xC2CBA3CF 0x374C +0xC2CBA3D0 0x5B86 +0xC2CBA3D1 0x5F53 +0xC2CBA3D2 0x5C18 +0xC2CBA3D3 0x378C +0xC2CBA3D4 0x5C3D +0xC2CBA3D5 0x5C78 +0xC2CBA3D6 0x37A8 +0xC2CBA3D7 0x37AD +0xC2CBA3D8 0x37AF +0xC2CBA3D9 0x21D46 +0xC2CBA3DA 0x5C80 +0xC2CBA3DB 0x3829 +0xC2CBA3DC 0x5E08 +0xC2CBA3DD 0x3836 +0xC2CBA3DE 0x3871 +0xC2CBA3DF 0x3870 +0xC2CBA3E0 0x386F +0xC2CBA3E1 0x5EF5 +0xC2CBA3E2 0x5F0E +0xC2CBA3E3 0x38A9 +0xC2CBA3E4 0x38AA +0xC2CBA3E5 0x38FB +0xC2CBA3E6 0x5FD3 +0xC2CBA3E7 0x5FDA +0xC2CBA3E8 0x38FC +0xC2CBA3E9 0x5FDB +0xC2CBA3EA 0x39AE +0xC2CBA3EB 0x620F +0xC2CBA3EC 0x625D +0xC2CBA3ED 0x625F +0xC2CBA3EE 0x6267 +0xC2CBA3EF 0x6257 +0xC2CBA3F0 0x9F50 +0xC2CBA3F1 0x3AC3 +0xC2CBA3F2 0x65EB +0xC2CBA3F3 0x65EA +0xC2CBA3F4 0x3B30 +0xC2CBA3F5 0x6737 +0xC2CBA3F6 0x3B41 +0xC2CBA3F7 0x6732 +0xC2CBA3F8 0x6736 +0xC2CBA3F9 0x6B22 +0xC2CBA3FA 0x6BCE +0xC2CBA3FB 0x3C8C +0xC2CBA3FC 0x6C58 +0xC2CBA3FD 0x6C51 +0xC2CBA3FE 0x6C77 +0xC2CBA4A1 0x6C3C +0xC2CBA4A2 0x3CBB +0xC2CBA4A3 0x6C5A +0xC2CBA4A4 0x23C86 +0xC2CBA4A5 0x6C53 +0xC2CBA4A6 0x706F +0xC2CBA4A7 0x7072 +0xC2CBA4A8 0x706E +0xC2CBA4A9 0x2F835 +0xC2CBA4AA 0x3DA1 +0xC2CBA4AB 0x7073 +0xC2CBA4AC 0x72B1 +0xC2CBA4AD 0x72B2 +0xC2CBA4AE 0x3EA8 +0xC2CBA4AF 0x738F +0xC2CBA4B0 0x3EAA +0xC2CBA4B1 0x3EAB +0xC2CBA4B2 0x4096 +0xC2CBA4B3 0x793C +0xC2CBA4B4 0x41C2 +0xC2CBA4B5 0x808D +0xC2CBA4B6 0x808E +0xC2CBA4B7 0x4493 +0xC2CBA4B8 0x827B +0xC2CBA4B9 0x4494 +0xC2CBA4BA 0x8D71 +0xC2CBA4BB 0x8FB9 +0xC2CBA4BC 0x9096 +0xC2CBA4BD 0x909A +0xC2CBA4BE 0x49BB +0xC2CBA4BF 0x4E24 +0xC2CBA4C0 0x4E71 +0xC2CBA4C1 0x2F81B +0xC2CBA4C2 0x4E9C +0xC2CBA4C3 0x4F45 +0xC2CBA4C4 0x4F4A +0xC2CBA4C5 0x4F39 +0xC2CBA4C6 0x4F37 +0xC2CBA4C7 0x3443 +0xC2CBA4C8 0x4F32 +0xC2CBA4C9 0x4F42 +0xC2CBA4CA 0x3442 +0xC2CBA4CB 0x4F44 +0xC2CBA4CC 0x4F4B +0xC2CBA4CD 0x3444 +0xC2CBA4CE 0x4F40 +0xC2CBA4CF 0x4F35 +0xC2CBA4D0 0x4F31 +0xC2CBA4D1 0x5151 +0xC2CBA4D2 0x2F80E +0xC2CBA4D3 0x5150 +0xC2CBA4D4 0x514E +0xC2CBA4D5 0x34B3 +0xC2CBA4D6 0x34B7 +0xC2CBA4D7 0x519D +0xC2CBA4D8 0x34C8 +0xC2CBA4D9 0x51B5 +0xC2CBA4DA 0x51B8 +0xC2CBA4DB 0x51EC +0xC2CBA4DC 0x5223 +0xC2CBA4DD 0x5227 +0xC2CBA4DE 0x5226 +0xC2CBA4DF 0x521F +0xC2CBA4E0 0x522B +0xC2CBA4E1 0x5220 +0xC2CBA4E2 0x52B4 +0xC2CBA4E3 0x52B3 +0xC2CBA4E4 0x3518 +0xC2CBA4E5 0x5325 +0xC2CBA4E6 0x533B +0xC2CBA4E7 0x5374 +0xC2CBA4E8 0x3547 +0xC2CBA4E9 0x3546 +0xC2CBA4EA 0x3545 +0xC2CBA4EB 0x356B +0xC2CBA4EC 0x3569 +0xC2CBA4ED 0x544D +0xC2CBA4EE 0x3572 +0xC2CBA4EF 0x3571 +0xC2CBA4F0 0x543A +0xC2CBA4F1 0x356C +0xC2CBA4F2 0x356F +0xC2CBA4F3 0x5444 +0xC2CBA4F4 0x544C +0xC2CBA4F5 0x5423 +0xC2CBA4F6 0x541A +0xC2CBA4F7 0x5432 +0xC2CBA4F8 0x544B +0xC2CBA4F9 0x5421 +0xC2CBA4FA 0x3573 +0xC2CBA4FB 0x5434 +0xC2CBA4FC 0x5449 +0xC2CBA4FD 0x5450 +0xC2CBA4FE 0x5422 +0xC2CBA5A1 0x543F +0xC2CBA5A2 0x5451 +0xC2CBA5A3 0x545A +0xC2CBA5A4 0x542F +0xC2CBA5A5 0x3576 +0xC2CBA5A6 0x56E9 +0xC2CBA5A7 0x56F2 +0xC2CBA5A8 0x56F3 +0xC2CBA5A9 0x56EF +0xC2CBA5AA 0x56ED +0xC2CBA5AB 0x56EC +0xC2CBA5AC 0x56E6 +0xC2CBA5AD 0x5748 +0xC2CBA5AE 0x3627 +0xC2CBA5AF 0x5744 +0xC2CBA5B0 0x573F +0xC2CBA5B1 0x573C +0xC2CBA5B2 0x5753 +0xC2CBA5B3 0x5756 +0xC2CBA5B4 0x3630 +0xC2CBA5B5 0x575F +0xC2CBA5B6 0x5743 +0xC2CBA5B7 0x5758 +0xC2CBA5B8 0x5757 +0xC2CBA5B9 0x3629 +0xC2CBA5BA 0x362A +0xC2CBA5BB 0x362F +0xC2CBA5BC 0x5746 +0xC2CBA5BD 0x362C +0xC2CBA5BE 0x573D +0xC2CBA5BF 0x362D +0xC2CBA5C0 0x5742 +0xC2CBA5C1 0x5754 +0xC2CBA5C2 0x5755 +0xC2CBA5C3 0x58F1 +0xC2CBA5C4 0x58F2 +0xC2CBA5C5 0x58F0 +0xC2CBA5C6 0x590B +0xC2CBA5C7 0x9EA6 +0xC2CBA5C8 0x56F1 +0xC2CBA5C9 0x593D +0xC2CBA5CA 0x3693 +0xC2CBA5CB 0x5994 +0xC2CBA5CC 0x598C +0xC2CBA5CD 0x36AD +0xC2CBA5CE 0x599C +0xC2CBA5CF 0x36AC +0xC2CBA5D0 0x36AB +0xC2CBA5D1 0x599F +0xC2CBA5D2 0x36A9 +0xC2CBA5D3 0x599B +0xC2CBA5D4 0x36AE +0xC2CBA5D5 0x5989 +0xC2CBA5D6 0x599A +0xC2CBA5D7 0x36AA +0xC2CBA5D8 0x6588 +0xC2CBA5D9 0x374E +0xC2CBA5DA 0x5B8D +0xC2CBA5DB 0x3750 +0xC2CBA5DC 0x5BFE +0xC2CBA5DD 0x5BFF +0xC2CBA5DE 0x5BFD +0xC2CBA5DF 0x5C2B +0xC2CBA5E0 0x37B2 +0xC2CBA5E1 0x5C84 +0xC2CBA5E2 0x5C8E +0xC2CBA5E3 0x5C9C +0xC2CBA5E4 0x37B5 +0xC2CBA5E5 0x37B6 +0xC2CBA5E6 0x5C85 +0xC2CBA5E7 0x5DF5 +0xC2CBA5E8 0x5E09 +0xC2CBA5E9 0x3839 +0xC2CBA5EA 0x383B +0xC2CBA5EB 0x5E0B +0xC2CBA5EC 0x3872 +0xC2CBA5ED 0x5E92 +0xC2CBA5EE 0x5E90 +0xC2CBA5EF 0x5F03 +0xC2CBA5F0 0x38AC +0xC2CBA5F1 0x5F1E +0xC2CBA5F2 0x5F63 +0xC2CBA5F3 0x3908 +0xC2CBA5F4 0x5FE7 +0xC2CBA5F5 0x5FFE +0xC2CBA5F6 0x5FE6 +0xC2CBA5F7 0x5FDC +0xC2CBA5F8 0x5FCE +0xC2CBA5F9 0x3903 +0xC2CBA5FA 0x5FFC +0xC2CBA5FB 0x5FDF +0xC2CBA5FC 0x5FEC +0xC2CBA5FD 0x5FF6 +0xC2CBA5FE 0x225D7 +0xC2CBA6A1 0x5FF2 +0xC2CBA6A2 0x5FF0 +0xC2CBA6A3 0x5FF9 +0xC2CBA6A4 0x390B +0xC2CBA6A5 0x6213 +0xC2CBA6A6 0x39AF +0xC2CBA6A7 0x2F8B2 +0xC2CBA6A8 0x623B +0xC2CBA6A9 0x623C +0xC2CBA6AA 0x6282 +0xC2CBA6AB 0x39CE +0xC2CBA6AC 0x39CB +0xC2CBA6AD 0x39CC +0xC2CBA6AE 0x6278 +0xC2CBA6AF 0x628B +0xC2CBA6B0 0x39CD +0xC2CBA6B1 0x629E +0xC2CBA6B2 0x62A5 +0xC2CBA6B3 0x629B +0xC2CBA6B4 0x629C +0xC2CBA6B5 0x6299 +0xC2CBA6B6 0x628D +0xC2CBA6B7 0x6285 +0xC2CBA6B8 0x629D +0xC2CBA6B9 0x6275 +0xC2CBA6BA 0x3A80 +0xC2CBA6BB 0x3AAF +0xC2CBA6BC 0x3AD3 +0xC2CBA6BD 0x65F6 +0xC2CBA6BE 0x3AD5 +0xC2CBA6BF 0x3AD4 +0xC2CBA6C0 0x3AD7 +0xC2CBA6C1 0x66F5 +0xC2CBA6C2 0x675B +0xC2CBA6C3 0x3B42 +0xC2CBA6C4 0x6754 +0xC2CBA6C5 0x6752 +0xC2CBA6C6 0x3B44 +0xC2CBA6C7 0x6758 +0xC2CBA6C8 0x6744 +0xC2CBA6C9 0x674A +0xC2CBA6CA 0x6761 +0xC2CBA6CB 0x3CC6 +0xC2CBA6CC 0x6C7F +0xC2CBA6CD 0x6C91 +0xC2CBA6CE 0x6C9E +0xC2CBA6CF 0x3CC0 +0xC2CBA6D0 0x6C6E +0xC2CBA6D1 0x6C7C +0xC2CBA6D2 0x6C9F +0xC2CBA6D3 0x6C75 +0xC2CBA6D4 0x3CBE +0xC2CBA6D5 0x6C56 +0xC2CBA6D6 0x6CA2 +0xC2CBA6D7 0x6C79 +0xC2CBA6D8 0x3CCA +0xC2CBA6D9 0x6CA1 +0xC2CBA6DA 0x3CC4 +0xC2CBA6DB 0x6CAA +0xC2CBA6DC 0x6CA0 +0xC2CBA6DD 0x3CC2 +0xC2CBA6DE 0x7079 +0xC2CBA6DF 0x7077 +0xC2CBA6E0 0x707E +0xC2CBA6E1 0x3DA4 +0xC2CBA6E2 0x7075 +0xC2CBA6E3 0x707B +0xC2CBA6E4 0x7264 +0xC2CBA6E5 0x3E29 +0xC2CBA6E6 0x72BB +0xC2CBA6E7 0x72BC +0xC2CBA6E8 0x72C7 +0xC2CBA6E9 0x72B9 +0xC2CBA6EA 0x72BE +0xC2CBA6EB 0x72B6 +0xC2CBA6EC 0x3E60 +0xC2CBA6ED 0x3E5E +0xC2CBA6EE 0x7398 +0xC2CBA6EF 0x3EAD +0xC2CBA6F0 0x3EAE +0xC2CBA6F1 0x3EAC +0xC2CBA6F2 0x3F57 +0xC2CBA6F3 0x7593 +0xC2CBA6F4 0x7680 +0xC2CBA6F5 0x3FDD +0xC2CBA6F6 0x7683 +0xC2CBA6F7 0x76C0 +0xC2CBA6F8 0x76C1 +0xC2CBA6F9 0x400E +0xC2CBA6FA 0x4097 +0xC2CBA6FB 0x77F4 +0xC2CBA6FC 0x77F5 +0xC2CBA6FD 0x4127 +0xC2CBA6FE 0x7ACC +0xC2CBA7A1 0x7ACD +0xC2CBA7A2 0x7CFA +0xC2CBA7A3 0x809F +0xC2CBA7A4 0x8091 +0xC2CBA7A5 0x8097 +0xC2CBA7A6 0x8094 +0xC2CBA7A7 0x4495 +0xC2CBA7A8 0x8286 +0xC2CBA7A9 0x828C +0xC2CBA7AA 0x2F98F +0xC2CBA7AB 0x8295 +0xC2CBA7AC 0x4498 +0xC2CBA7AD 0x866C +0xC2CBA7AE 0x459D +0xC2CBA7AF 0x8FB5 +0xC2CBA7B0 0x8FBE +0xC2CBA7B1 0x8FC7 +0xC2CBA7B2 0x488A +0xC2CBA7B3 0x8FC1 +0xC2CBA7B4 0x90A9 +0xC2CBA7B5 0x90A4 +0xC2CBA7B6 0x48B5 +0xC2CBA7B7 0x48B6 +0xC2CBA7B8 0x48B7 +0xC2CBA7B9 0x90A8 +0xC2CBA7BA 0x9627 +0xC2CBA7BB 0x9626 +0xC2CBA7BC 0x962B +0xC2CBA7BD 0x9633 +0xC2CBA7BE 0x9634 +0xC2CBA7BF 0x9629 +0xC2CBA7C0 0x4E3D +0xC2CBA7C1 0x3428 +0xC2CBA7C2 0x4E9D +0xC2CBA7C3 0x4F93 +0xC2CBA7C4 0x4F8A +0xC2CBA7C5 0x344D +0xC2CBA7C6 0x3449 +0xC2CBA7C7 0x4F6D +0xC2CBA7C8 0x4F8E +0xC2CBA7C9 0x4FA0 +0xC2CBA7CA 0x4FA2 +0xC2CBA7CB 0x4FA1 +0xC2CBA7CC 0x4F9F +0xC2CBA7CD 0x4FA3 +0xC2CBA7CE 0x20209 +0xC2CBA7CF 0x4F72 +0xC2CBA7D0 0x3451 +0xC2CBA7D1 0x4F8C +0xC2CBA7D2 0x5156 +0xC2CBA7D3 0x2F80F +0xC2CBA7D4 0x2F811 +0xC2CBA7D5 0x5190 +0xC2CBA7D6 0x34CB +0xC2CBA7D7 0x34CA +0xC2CBA7D8 0x34CC +0xC2CBA7D9 0x51ED +0xC2CBA7DA 0x51FE +0xC2CBA7DB 0x522F +0xC2CBA7DC 0x206EC +0xC2CBA7DD 0x523C +0xC2CBA7DE 0x5234 +0xC2CBA7DF 0x5239 +0xC2CBA7E0 0x52B9 +0xC2CBA7E1 0x52B5 +0xC2CBA7E2 0x52BF +0xC2CBA7E3 0x5355 +0xC2CBA7E4 0x353D +0xC2CBA7E5 0x5376 +0xC2CBA7E6 0x537A +0xC2CBA7E7 0x5393 +0xC2CBA7E8 0x3548 +0xC2CBA7E9 0x53C1 +0xC2CBA7EA 0x53C2 +0xC2CBA7EB 0x53D5 +0xC2CBA7EC 0x5485 +0xC2CBA7ED 0x3578 +0xC2CBA7EE 0x545F +0xC2CBA7EF 0x5493 +0xC2CBA7F0 0x5489 +0xC2CBA7F1 0x5479 +0xC2CBA7F2 0x9EFE +0xC2CBA7F3 0x548F +0xC2CBA7F4 0x5469 +0xC2CBA7F5 0x546D +0xC2CBA7F6 0x357A +0xC2CBA7F7 0x5494 +0xC2CBA7F8 0x546A +0xC2CBA7F9 0x548A +0xC2CBA7FA 0x3577 +0xC2CBA7FB 0x56FD +0xC2CBA7FC 0x56FB +0xC2CBA7FD 0x56F8 +0xC2CBA7FE 0x3621 +0xC2CBA8A1 0x56FC +0xC2CBA8A2 0x56F6 +0xC2CBA8A3 0x5765 +0xC2CBA8A4 0x5781 +0xC2CBA8A5 0x5763 +0xC2CBA8A6 0x5767 +0xC2CBA8A7 0x3631 +0xC2CBA8A8 0x576E +0xC2CBA8A9 0x5778 +0xC2CBA8AA 0x577F +0xC2CBA8AB 0x3633 +0xC2CBA8AC 0x3634 +0xC2CBA8AD 0x58F3 +0xC2CBA8AE 0x594B +0xC2CBA8AF 0x594C +0xC2CBA8B0 0x36C1 +0xC2CBA8B1 0x36B0 +0xC2CBA8B2 0x36B4 +0xC2CBA8B3 0x59AD +0xC2CBA8B4 0x36B8 +0xC2CBA8B5 0x59C4 +0xC2CBA8B6 0x36BC +0xC2CBA8B7 0x59C2 +0xC2CBA8B8 0x59B0 +0xC2CBA8B9 0x36BF +0xC2CBA8BA 0x36B5 +0xC2CBA8BB 0x36B1 +0xC2CBA8BC 0x36BD +0xC2CBA8BD 0x59BF +0xC2CBA8BE 0x36BB +0xC2CBA8BF 0x59C9 +0xC2CBA8C0 0x59B8 +0xC2CBA8C1 0x59AC +0xC2CBA8C2 0x36B3 +0xC2CBA8C3 0x36B6 +0xC2CBA8C4 0x36BA +0xC2CBA8C5 0x59B7 +0xC2CBA8C6 0x59D7 +0xC2CBA8C7 0x36B7 +0xC2CBA8C8 0x5B60 +0xC2CBA8C9 0x3740 +0xC2CBA8CA 0x5B96 +0xC2CBA8CB 0x5B9E +0xC2CBA8CC 0x5B94 +0xC2CBA8CD 0x5B9F +0xC2CBA8CE 0x5B9D +0xC2CBA8CF 0x3752 +0xC2CBA8D0 0x5C00 +0xC2CBA8D1 0x5C19 +0xC2CBA8D2 0x3790 +0xC2CBA8D3 0x3791 +0xC2CBA8D4 0x5C49 +0xC2CBA8D5 0x5C4A +0xC2CBA8D6 0x37BE +0xC2CBA8D7 0x5CBB +0xC2CBA8D8 0x5CC1 +0xC2CBA8D9 0x37C0 +0xC2CBA8DA 0x37C1 +0xC2CBA8DB 0x37B9 +0xC2CBA8DC 0x5CB9 +0xC2CBA8DD 0x5C9E +0xC2CBA8DE 0x5CB4 +0xC2CBA8DF 0x5CBA +0xC2CBA8E0 0x5DF6 +0xC2CBA8E1 0x5E13 +0xC2CBA8E2 0x5E12 +0xC2CBA8E3 0x5E77 +0xC2CBA8E4 0x3879 +0xC2CBA8E5 0x5E98 +0xC2CBA8E6 0x387B +0xC2CBA8E7 0x5E99 +0xC2CBA8E8 0x5E9D +0xC2CBA8E9 0x5EF8 +0xC2CBA8EA 0x38A0 +0xC2CBA8EB 0x5EF9 +0xC2CBA8EC 0x3429 +0xC2CBA8ED 0x5F06 +0xC2CBA8EE 0x5F21 +0xC2CBA8EF 0x38AE +0xC2CBA8F0 0x5F25 +0xC2CBA8F1 0x5F55 +0xC2CBA8F2 0x38CD +0xC2CBA8F3 0x38CB +0xC2CBA8F4 0x38D9 +0xC2CBA8F5 0x5F84 +0xC2CBA8F6 0x5F83 +0xC2CBA8F7 0x6030 +0xC2CBA8F8 0x6007 +0xC2CBA8F9 0x390C +0xC2CBA8FA 0x6036 +0xC2CBA8FB 0x3901 +0xC2CBA8FC 0x3905 +0xC2CBA8FD 0x3902 +0xC2CBA8FE 0x5FE9 +0xC2CBA9A1 0x603D +0xC2CBA9A2 0x6008 +0xC2CBA9A3 0x3913 +0xC2CBA9A4 0x3911 +0xC2CBA9A5 0x62BA +0xC2CBA9A6 0x62B2 +0xC2CBA9A7 0x39E4 +0xC2CBA9A8 0x62B7 +0xC2CBA9A9 0x62E4 +0xC2CBA9AA 0x62A7 +0xC2CBA9AB 0x39DA +0xC2CBA9AC 0x39D5 +0xC2CBA9AD 0x39D3 +0xC2CBA9AE 0x62D5 +0xC2CBA9AF 0x62E1 +0xC2CBA9B0 0x62DD +0xC2CBA9B1 0x62A6 +0xC2CBA9B2 0x62C1 +0xC2CBA9B3 0x62C5 +0xC2CBA9B4 0x62C0 +0xC2CBA9B5 0x62DF +0xC2CBA9B6 0x62E0 +0xC2CBA9B7 0x62DE +0xC2CBA9B8 0x39D6 +0xC2CBA9B9 0x6589 +0xC2CBA9BA 0x3AB4 +0xC2CBA9BB 0x65A6 +0xC2CBA9BC 0x65BA +0xC2CBA9BD 0x3AD9 +0xC2CBA9BE 0x65FF +0xC2CBA9BF 0x3AD8 +0xC2CBA9C0 0x6617 +0xC2CBA9C1 0x6618 +0xC2CBA9C2 0x6601 +0xC2CBA9C3 0x65FE +0xC2CBA9C4 0x3B33 +0xC2CBA9C5 0x670C +0xC2CBA9C6 0x3B48 +0xC2CBA9C7 0x676B +0xC2CBA9C8 0x6796 +0xC2CBA9C9 0x6782 +0xC2CBA9CA 0x678A +0xC2CBA9CB 0x3B47 +0xC2CBA9CC 0x67A3 +0xC2CBA9CD 0x3B4B +0xC2CBA9CE 0x67A2 +0xC2CBA9CF 0x678F +0xC2CBA9D0 0x3B4A +0xC2CBA9D1 0x67F9 +0xC2CBA9D2 0x6780 +0xC2CBA9D3 0x6B26 +0xC2CBA9D4 0x6B27 +0xC2CBA9D5 0x6B68 +0xC2CBA9D6 0x6B69 +0xC2CBA9D7 0x3C5A +0xC2CBA9D8 0x6B81 +0xC2CBA9D9 0x6BB4 +0xC2CBA9DA 0x6BD1 +0xC2CBA9DB 0x3C8E +0xC2CBA9DC 0x3CB4 +0xC2CBA9DD 0x6C1C +0xC2CBA9DE 0x3CCD +0xC2CBA9DF 0x3CCC +0xC2CBA9E0 0x3CCF +0xC2CBA9E1 0x3CCB +0xC2CBA9E2 0x3CCE +0xC2CBA9E3 0x6C97 +0xC2CBA9E4 0x6C6C +0xC2CBA9E5 0x6CDF +0xC2CBA9E6 0x3CD2 +0xC2CBA9E7 0x6CEA +0xC2CBA9E8 0x3CD1 +0xC2CBA9E9 0x6CE4 +0xC2CBA9EA 0x6CD8 +0xC2CBA9EB 0x6CB2 +0xC2CBA9EC 0x6CCE +0xC2CBA9ED 0x6CC8 +0xC2CBA9EE 0x3DA6 +0xC2CBA9EF 0x708B +0xC2CBA9F0 0x7088 +0xC2CBA9F1 0x7090 +0xC2CBA9F2 0x708F +0xC2CBA9F3 0x3DAA +0xC2CBA9F4 0x7087 +0xC2CBA9F5 0x7089 +0xC2CBA9F6 0x708D +0xC2CBA9F7 0x7081 +0xC2CBA9F8 0x3DA8 +0xC2CBA9F9 0x708C +0xC2CBA9FA 0x3E13 +0xC2CBA9FB 0x3E1A +0xC2CBA9FC 0x7240 +0xC2CBA9FD 0x3E1D +0xC2CBA9FE 0x3E1E +0xC2CBAAA1 0x7265 +0xC2CBAAA2 0x7266 +0xC2CBAAA3 0x7268 +0xC2CBAAA4 0x3E65 +0xC2CBAAA5 0x3E66 +0xC2CBAAA6 0x72CD +0xC2CBAAA7 0x72D3 +0xC2CBAAA8 0x72DB +0xC2CBAAA9 0x3E64 +0xC2CBAAAA 0x72CF +0xC2CBAAAB 0x73A7 +0xC2CBAAAC 0x73A3 +0xC2CBAAAD 0x739E +0xC2CBAAAE 0x3EB0 +0xC2CBAAAF 0x73AF +0xC2CBAAB0 0x3EB3 +0xC2CBAAB1 0x3EB5 +0xC2CBAAB2 0x73AA +0xC2CBAAB3 0x739C +0xC2CBAAB4 0x3F19 +0xC2CBAAB5 0x7542 +0xC2CBAAB6 0x7544 +0xC2CBAAB7 0x753B +0xC2CBAAB8 0x7541 +0xC2CBAAB9 0x2233F +0xC2CBAABA 0x759B +0xC2CBAABB 0x759E +0xC2CBAABC 0x3F75 +0xC2CBAABD 0x79C4 +0xC2CBAABE 0x79C3 +0xC2CBAABF 0x79C6 +0xC2CBAAC0 0x412B +0xC2CBAAC1 0x412C +0xC2CBAAC2 0x79C7 +0xC2CBAAC3 0x412D +0xC2CBAAC4 0x79CA +0xC2CBAAC5 0x2592E +0xC2CBAAC6 0x41C3 +0xC2CBAAC7 0x7ACF +0xC2CBAAC8 0x7C76 +0xC2CBAAC9 0x7C74 +0xC2CBAACA 0x7CFF +0xC2CBAACB 0x7CFC +0xC2CBAACC 0x34BA +0xC2CBAACD 0x4350 +0xC2CBAACE 0x7F59 +0xC2CBAACF 0x80A8 +0xC2CBAAD0 0x43D3 +0xC2CBAAD1 0x43D0 +0xC2CBAAD2 0x80B0 +0xC2CBAAD3 0x43DC +0xC2CBAAD4 0x80B3 +0xC2CBAAD5 0x43D2 +0xC2CBAAD6 0x80A4 +0xC2CBAAD7 0x80B6 +0xC2CBAAD8 0x80A7 +0xC2CBAAD9 0x80AC +0xC2CBAADA 0x43DB +0xC2CBAADB 0x80A6 +0xC2CBAADC 0x5367 +0xC2CBAADD 0x820E +0xC2CBAADE 0x82C4 +0xC2CBAADF 0x833E +0xC2CBAAE0 0x829C +0xC2CBAAE1 0x44A5 +0xC2CBAAE2 0x449F +0xC2CBAAE3 0x449A +0xC2CBAAE4 0x449C +0xC2CBAAE5 0x44A2 +0xC2CBAAE6 0x82AA +0xC2CBAAE7 0x449B +0xC2CBAAE8 0x82C9 +0xC2CBAAE9 0x44A3 +0xC2CBAAEA 0x449D +0xC2CBAAEB 0x82A6 +0xC2CBAAEC 0x82B2 +0xC2CBAAED 0x4588 +0xC2CBAAEE 0x461A +0xC2CBAAEF 0x488D +0xC2CBAAF0 0x8FCC +0xC2CBAAF1 0x8FD9 +0xC2CBAAF2 0x8FCA +0xC2CBAAF3 0x8FD8 +0xC2CBAAF4 0x8FCF +0xC2CBAAF5 0x90B7 +0xC2CBAAF6 0x48B8 +0xC2CBAAF7 0x90AD +0xC2CBAAF8 0x90B9 +0xC2CBAAF9 0x9637 +0xC2CBAAFA 0x49C3 +0xC2CBAAFB 0x9641 +0xC2CBAAFC 0x963E +0xC2CBAAFD 0x96B6 +0xC2CBAAFE 0x9751 +0xC2CBABA1 0x9763 +0xC2CBABA2 0x4E57 +0xC2CBABA3 0x4E79 +0xC2CBABA4 0x4EB2 +0xC2CBABA5 0x4EB0 +0xC2CBABA6 0x4EAF +0xC2CBABA7 0x4EB1 +0xC2CBABA8 0x4FD2 +0xC2CBABA9 0x4FD5 +0xC2CBABAA 0x345D +0xC2CBABAB 0x4FBE +0xC2CBABAC 0x4FB8 +0xC2CBABAD 0x4FB0 +0xC2CBABAE 0x4FB1 +0xC2CBABAF 0x4FC8 +0xC2CBABB0 0x345A +0xC2CBABB1 0x3457 +0xC2CBABB2 0x4FC6 +0xC2CBABB3 0x4FCC +0xC2CBABB4 0x4FE5 +0xC2CBABB5 0x4FE3 +0xC2CBABB6 0x4FB4 +0xC2CBABB7 0x516A +0xC2CBABB8 0x34B8 +0xC2CBABB9 0x519F +0xC2CBABBA 0x34C2 +0xC2CBABBB 0x51C1 +0xC2CBABBC 0x34CF +0xC2CBABBD 0x51C2 +0xC2CBABBE 0x51C3 +0xC2CBABBF 0x5245 +0xC2CBABC0 0x5248 +0xC2CBABC1 0x34E7 +0xC2CBABC2 0x34E9 +0xC2CBABC3 0x524F +0xC2CBABC4 0x4452 +0xC2CBABC5 0x34E8 +0xC2CBABC6 0x52C5 +0xC2CBABC7 0x52CA +0xC2CBABC8 0x52C4 +0xC2CBABC9 0x5327 +0xC2CBABCA 0x5358 +0xC2CBABCB 0x537D +0xC2CBABCC 0x354A +0xC2CBABCD 0x53DD +0xC2CBABCE 0x53DC +0xC2CBABCF 0x53DA +0xC2CBABD0 0x53D9 +0xC2CBABD1 0x54B9 +0xC2CBABD2 0x3580 +0xC2CBABD3 0x54D0 +0xC2CBABD4 0x54B4 +0xC2CBABD5 0x54CA +0xC2CBABD6 0x3587 +0xC2CBABD7 0x54A3 +0xC2CBABD8 0x54DA +0xC2CBABD9 0x54A4 +0xC2CBABDA 0x3584 +0xC2CBABDB 0x54B2 +0xC2CBABDC 0x549E +0xC2CBABDD 0x549F +0xC2CBABDE 0x54B5 +0xC2CBABDF 0x3582 +0xC2CBABE0 0x3581 +0xC2CBABE1 0x54CD +0xC2CBABE2 0x3583 +0xC2CBABE3 0x54CC +0xC2CBABE4 0x3622 +0xC2CBABE5 0x5700 +0xC2CBABE6 0x57AC +0xC2CBABE7 0x5791 +0xC2CBABE8 0x578E +0xC2CBABE9 0x578D +0xC2CBABEA 0x5792 +0xC2CBABEB 0x57A1 +0xC2CBABEC 0x5790 +0xC2CBABED 0x57A6 +0xC2CBABEE 0x57A8 +0xC2CBABEF 0x363B +0xC2CBABF0 0x579C +0xC2CBABF1 0x5796 +0xC2CBABF2 0x57A7 +0xC2CBABF3 0x363A +0xC2CBABF4 0x3638 +0xC2CBABF5 0x3639 +0xC2CBABF6 0x3636 +0xC2CBABF7 0x58F5 +0xC2CBABF8 0x3685 +0xC2CBABF9 0x5909 +0xC2CBABFA 0x5908 +0xC2CBABFB 0x3C54 +0xC2CBABFC 0x5952 +0xC2CBABFD 0x369A +0xC2CBABFE 0x36C4 +0xC2CBACA1 0x59DF +0xC2CBACA2 0x36C5 +0xC2CBACA3 0x59EB +0xC2CBACA4 0x59EF +0xC2CBACA5 0x59F0 +0xC2CBACA6 0x59D5 +0xC2CBACA7 0x5A0D +0xC2CBACA8 0x5A04 +0xC2CBACA9 0x59F9 +0xC2CBACAA 0x5A02 +0xC2CBACAB 0x59F8 +0xC2CBACAC 0x59E2 +0xC2CBACAD 0x59D9 +0xC2CBACAE 0x59E7 +0xC2CBACAF 0x5B6A +0xC2CBACB0 0x3754 +0xC2CBACB1 0x3755 +0xC2CBACB2 0x5BAB +0xC2CBACB3 0x3756 +0xC2CBACB4 0x5C1B +0xC2CBACB5 0x5C2F +0xC2CBACB6 0x3796 +0xC2CBACB7 0x663C +0xC2CBACB8 0x3795 +0xC2CBACB9 0x3794 +0xC2CBACBA 0x37C4 +0xC2CBACBB 0x5CD1 +0xC2CBACBC 0x5CDC +0xC2CBACBD 0x5CE6 +0xC2CBACBE 0x5CE1 +0xC2CBACBF 0x5CCD +0xC2CBACC0 0x2F87A +0xC2CBACC1 0x5CE2 +0xC2CBACC2 0x5CDD +0xC2CBACC3 0x5CE5 +0xC2CBACC4 0x5DFB +0xC2CBACC5 0x5DFA +0xC2CBACC6 0x5E1E +0xC2CBACC7 0x3844 +0xC2CBACC8 0x5EA1 +0xC2CBACC9 0x387D +0xC2CBACCA 0x387E +0xC2CBACCB 0x5EFC +0xC2CBACCC 0x5EFB +0xC2CBACCD 0x5F2F +0xC2CBACCE 0x38B2 +0xC2CBACCF 0x38B6 +0xC2CBACD0 0x5F66 +0xC2CBACD1 0x2F899 +0xC2CBACD2 0x38DC +0xC2CBACD3 0x38DF +0xC2CBACD4 0x605C +0xC2CBACD5 0x3928 +0xC2CBACD6 0x604E +0xC2CBACD7 0x6051 +0xC2CBACD8 0x3919 +0xC2CBACD9 0x3910 +0xC2CBACDA 0x6023 +0xC2CBACDB 0x6031 +0xC2CBACDC 0x607C +0xC2CBACDD 0x6052 +0xC2CBACDE 0x392C +0xC2CBACDF 0x6060 +0xC2CBACE0 0x604A +0xC2CBACE1 0x6061 +0xC2CBACE2 0x391B +0xC2CBACE3 0x6218 +0xC2CBACE4 0x39C2 +0xC2CBACE5 0x39EF +0xC2CBACE6 0x39E3 +0xC2CBACE7 0x39E5 +0xC2CBACE8 0x39EA +0xC2CBACE9 0x39E6 +0xC2CBACEA 0x39EE +0xC2CBACEB 0x631F +0xC2CBACEC 0x6317 +0xC2CBACED 0x62EA +0xC2CBACEE 0x6321 +0xC2CBACEF 0x6304 +0xC2CBACF0 0x6305 +0xC2CBACF1 0x39E8 +0xC2CBACF2 0x6531 +0xC2CBACF3 0x6544 +0xC2CBACF4 0x6540 +0xC2CBACF5 0x3A85 +0xC2CBACF6 0x6542 +0xC2CBACF7 0x65BE +0xC2CBACF8 0x3AE0 +0xC2CBACF9 0x6629 +0xC2CBACFA 0x661B +0xC2CBACFB 0x3ADD +0xC2CBACFC 0x6623 +0xC2CBACFD 0x662C +0xC2CBACFE 0x661A +0xC2CBADA1 0x6630 +0xC2CBADA2 0x663B +0xC2CBADA3 0x661E +0xC2CBADA4 0x6637 +0xC2CBADA5 0x6638 +0xC2CBADA6 0x3AE1 +0xC2CBADA7 0x670E +0xC2CBADA8 0x3B51 +0xC2CBADA9 0x3B55 +0xC2CBADAA 0x67E8 +0xC2CBADAB 0x67D6 +0xC2CBADAC 0x3B52 +0xC2CBADAD 0x67C7 +0xC2CBADAE 0x67BC +0xC2CBADAF 0x6852 +0xC2CBADB0 0x67BF +0xC2CBADB1 0x67D5 +0xC2CBADB2 0x67FE +0xC2CBADB3 0x8363 +0xC2CBADB4 0x67FB +0xC2CBADB5 0x2F8DF +0xC2CBADB6 0x67B1 +0xC2CBADB7 0x6801 +0xC2CBADB8 0x6805 +0xC2CBADB9 0x6800 +0xC2CBADBA 0x67D7 +0xC2CBADBB 0x409E +0xC2CBADBC 0x6B2A +0xC2CBADBD 0x6B6B +0xC2CBADBE 0x3C52 +0xC2CBADBF 0x3C5E +0xC2CBADC0 0x3C60 +0xC2CBADC1 0x3C5F +0xC2CBADC2 0x6BE1 +0xC2CBADC3 0x3C92 +0xC2CBADC4 0x3CD6 +0xC2CBADC5 0x6D23 +0xC2CBADC6 0x6CFF +0xC2CBADC7 0x6D14 +0xC2CBADC8 0x6D05 +0xC2CBADC9 0x6D13 +0xC2CBADCA 0x6D06 +0xC2CBADCB 0x6D21 +0xC2CBADCC 0x3CDE +0xC2CBADCD 0x6D15 +0xC2CBADCE 0x6CAF +0xC2CBADCF 0x6CF4 +0xC2CBADD0 0x6D02 +0xC2CBADD1 0x6D45 +0xC2CBADD2 0x2F8FE +0xC2CBADD3 0x6D26 +0xC2CBADD4 0x3CD9 +0xC2CBADD5 0x6D44 +0xC2CBADD6 0x3CDD +0xC2CBADD7 0x6D24 +0xC2CBADD8 0x70A5 +0xC2CBADD9 0x3DAC +0xC2CBADDA 0x70A3 +0xC2CBADDB 0x3DB0 +0xC2CBADDC 0x70A2 +0xC2CBADDD 0x70BB +0xC2CBADDE 0x70A0 +0xC2CBADDF 0x70AA +0xC2CBADE0 0x3DAF +0xC2CBADE1 0x3DAE +0xC2CBADE2 0x70A8 +0xC2CBADE3 0x70B6 +0xC2CBADE4 0x70B2 +0xC2CBADE5 0x70A7 +0xC2CBADE6 0x3DAD +0xC2CBADE7 0x3DAB +0xC2CBADE8 0x70B9 +0xC2CBADE9 0x722E +0xC2CBADEA 0x3E16 +0xC2CBADEB 0x723C +0xC2CBADEC 0x3E30 +0xC2CBADED 0x726D +0xC2CBADEE 0x3E33 +0xC2CBADEF 0x3E31 +0xC2CBADF0 0x72E7 +0xC2CBADF1 0x72ED +0xC2CBADF2 0x3E6E +0xC2CBADF3 0x72EC +0xC2CBADF4 0x72E5 +0xC2CBADF5 0x72E2 +0xC2CBADF6 0x3EB1 +0xC2CBADF7 0x73C4 +0xC2CBADF8 0x73BD +0xC2CBADF9 0x73CF +0xC2CBADFA 0x73C9 +0xC2CBADFB 0x73C1 +0xC2CBADFC 0x73D0 +0xC2CBADFD 0x3EB7 +0xC2CBADFE 0x73CE +0xC2CBAEA1 0x74ED +0xC2CBAEA2 0x74EB +0xC2CBAEA3 0x3F1A +0xC2CBAEA4 0x74EF +0xC2CBAEA5 0x7549 +0xC2CBAEA6 0x7550 +0xC2CBAEA7 0x7546 +0xC2CBAEA8 0x754A +0xC2CBAEA9 0x3F59 +0xC2CBAEAA 0x754D +0xC2CBAEAB 0x75A6 +0xC2CBAEAC 0x3F7A +0xC2CBAEAD 0x3F78 +0xC2CBAEAE 0x3F7B +0xC2CBAEAF 0x75A8 +0xC2CBAEB0 0x3FDE +0xC2CBAEB1 0x3FEC +0xC2CBAEB2 0x76C7 +0xC2CBAEB3 0x76FF +0xC2CBAEB4 0x401E +0xC2CBAEB5 0x76FD +0xC2CBAEB6 0x77E6 +0xC2CBAEB7 0x780A +0xC2CBAEB8 0x409B +0xC2CBAEB9 0x7804 +0xC2CBAEBA 0x780B +0xC2CBAEBB 0x7807 +0xC2CBAEBC 0x409D +0xC2CBAEBD 0x7815 +0xC2CBAEBE 0x7808 +0xC2CBAEBF 0x40FD +0xC2CBAEC0 0x79D3 +0xC2CBAEC1 0x79D4 +0xC2CBAEC2 0x79D0 +0xC2CBAEC3 0x79D7 +0xC2CBAEC4 0x7A7C +0xC2CBAEC5 0x4194 +0xC2CBAEC6 0x4193 +0xC2CBAEC7 0x7A7D +0xC2CBAEC8 0x7A83 +0xC2CBAEC9 0x7A82 +0xC2CBAECA 0x41C6 +0xC2CBAECB 0x7AD4 +0xC2CBAECC 0x7AD5 +0xC2CBAECD 0x7AD3 +0xC2CBAECE 0x7AD0 +0xC2CBAECF 0x7AD2 +0xC2CBAED0 0x7AFE +0xC2CBAED1 0x7AFC +0xC2CBAED2 0x7C77 +0xC2CBAED3 0x7C7C +0xC2CBAED4 0x7C7B +0xC2CBAED5 0x42B8 +0xC2CBAED6 0x2F96A +0xC2CBAED7 0x42B7 +0xC2CBAED8 0x42B9 +0xC2CBAED9 0x4353 +0xC2CBAEDA 0x25133 +0xC2CBAEDB 0x4352 +0xC2CBAEDC 0x4351 +0xC2CBAEDD 0x7F8F +0xC2CBAEDE 0x80D3 +0xC2CBAEDF 0x43E3 +0xC2CBAEE0 0x80CB +0xC2CBAEE1 0x80D2 +0xC2CBAEE2 0x43E2 +0xC2CBAEE3 0x8109 +0xC2CBAEE4 0x80E2 +0xC2CBAEE5 0x80DF +0xC2CBAEE6 0x80C6 +0xC2CBAEE7 0x4463 +0xC2CBAEE8 0x8224 +0xC2CBAEE9 0x82F7 +0xC2CBAEEA 0x82D8 +0xC2CBAEEB 0x82DD +0xC2CBAEEC 0x44AA +0xC2CBAEED 0x44A6 +0xC2CBAEEE 0x82F8 +0xC2CBAEEF 0x82FC +0xC2CBAEF0 0x44A8 +0xC2CBAEF1 0x44A9 +0xC2CBAEF2 0x82E9 +0xC2CBAEF3 0x44AB +0xC2CBAEF4 0x82EE +0xC2CBAEF5 0x44AC +0xC2CBAEF6 0x82D0 +0xC2CBAEF7 0x830E +0xC2CBAEF8 0x82E2 +0xC2CBAEF9 0x830B +0xC2CBAEFA 0x82FD +0xC2CBAEFB 0x5179 +0xC2CBAEFC 0x8676 +0xC2CBAEFD 0x459E +0xC2CBAEFE 0x8678 +0xC2CBAFA1 0x459F +0xC2CBAFA2 0x45A0 +0xC2CBAFA3 0x8675 +0xC2CBAFA4 0x867D +0xC2CBAFA5 0x460F +0xC2CBAFA6 0x8842 +0xC2CBAFA7 0x8866 +0xC2CBAFA8 0x461C +0xC2CBAFA9 0x898C +0xC2CBAFAA 0x8A05 +0xC2CBAFAB 0x46AE +0xC2CBAFAC 0x8A06 +0xC2CBAFAD 0x46B0 +0xC2CBAFAE 0x8C9F +0xC2CBAFAF 0x47D4 +0xC2CBAFB0 0x8FF1 +0xC2CBAFB1 0x8FE7 +0xC2CBAFB2 0x8FE9 +0xC2CBAFB3 0x8FEF +0xC2CBAFB4 0x90C2 +0xC2CBAFB5 0x90BC +0xC2CBAFB6 0x48BB +0xC2CBAFB7 0x90C6 +0xC2CBAFB8 0x90C0 +0xC2CBAFB9 0x48C1 +0xC2CBAFBA 0x48C2 +0xC2CBAFBB 0x90CD +0xC2CBAFBC 0x90C9 +0xC2CBAFBD 0x48BE +0xC2CBAFBE 0x90C4 +0xC2CBAFBF 0x48E5 +0xC2CBAFC0 0x9581 +0xC2CBAFC1 0x49C6 +0xC2CBAFC2 0x9CEC +0xC2CBAFC3 0x5032 +0xC2CBAFC4 0x4FF9 +0xC2CBAFC5 0x501D +0xC2CBAFC6 0x4FFF +0xC2CBAFC7 0x5004 +0xC2CBAFC8 0x4FF0 +0xC2CBAFC9 0x5003 +0xC2CBAFCA 0x462E +0xC2CBAFCB 0x5002 +0xC2CBAFCC 0x4FFC +0xC2CBAFCD 0x4FF2 +0xC2CBAFCE 0x5024 +0xC2CBAFCF 0x5008 +0xC2CBAFD0 0x5036 +0xC2CBAFD1 0x502E +0xC2CBAFD2 0x3465 +0xC2CBAFD3 0x5010 +0xC2CBAFD4 0x5038 +0xC2CBAFD5 0x5039 +0xC2CBAFD6 0x4FFD +0xC2CBAFD7 0x5056 +0xC2CBAFD8 0x4FFB +0xC2CBAFD9 0x51A3 +0xC2CBAFDA 0x51A6 +0xC2CBAFDB 0x51A1 +0xC2CBAFDC 0x34D1 +0xC2CBAFDD 0x34D0 +0xC2CBAFDE 0x51C7 +0xC2CBAFDF 0x51C9 +0xC2CBAFE0 0x5260 +0xC2CBAFE1 0x5264 +0xC2CBAFE2 0x5259 +0xC2CBAFE3 0x5265 +0xC2CBAFE4 0x5267 +0xC2CBAFE5 0x5257 +0xC2CBAFE6 0x5263 +0xC2CBAFE7 0x34EE +0xC2CBAFE8 0x5253 +0xC2CBAFE9 0x34EF +0xC2CBAFEA 0x52CF +0xC2CBAFEB 0x351E +0xC2CBAFEC 0x52CE +0xC2CBAFED 0x52D0 +0xC2CBAFEE 0x52D1 +0xC2CBAFEF 0x52CC +0xC2CBAFF0 0x354B +0xC2CBAFF1 0x354D +0xC2CBAFF2 0x3556 +0xC2CBAFF3 0x550D +0xC2CBAFF4 0x54F4 +0xC2CBAFF5 0x3592 +0xC2CBAFF6 0x5513 +0xC2CBAFF7 0x54EF +0xC2CBAFF8 0x54F5 +0xC2CBAFF9 0x54F9 +0xC2CBAFFA 0x5502 +0xC2CBAFFB 0x5500 +0xC2CBAFFC 0x3593 +0xC2CBAFFD 0x3590 +0xC2CBAFFE 0x5518 +0xC2CBB0A1 0x54F0 +0xC2CBB0A2 0x54F6 +0xC2CBB0A3 0x2F841 +0xC2CBB0A4 0x3597 +0xC2CBB0A5 0x5519 +0xC2CBB0A6 0x3623 +0xC2CBB0A7 0x5705 +0xC2CBB0A8 0x57C9 +0xC2CBB0A9 0x363F +0xC2CBB0AA 0x57B7 +0xC2CBB0AB 0x57CD +0xC2CBB0AC 0x3643 +0xC2CBB0AD 0x3642 +0xC2CBB0AE 0x3644 +0xC2CBB0AF 0x57BE +0xC2CBB0B0 0x57BB +0xC2CBB0B1 0x3645 +0xC2CBB0B2 0x57DB +0xC2CBB0B3 0x57C8 +0xC2CBB0B4 0x57C4 +0xC2CBB0B5 0x57C5 +0xC2CBB0B6 0x57D1 +0xC2CBB0B7 0x57CA +0xC2CBB0B8 0x57C0 +0xC2CBB0B9 0x36D9 +0xC2CBB0BA 0x36DE +0xC2CBB0BB 0x5A21 +0xC2CBB0BC 0x5A2A +0xC2CBB0BD 0x36CF +0xC2CBB0BE 0x5A1D +0xC2CBB0BF 0x36CD +0xC2CBB0C0 0x5A0B +0xC2CBB0C1 0x36DD +0xC2CBB0C2 0x36CE +0xC2CBB0C3 0x36D3 +0xC2CBB0C4 0x36D6 +0xC2CBB0C5 0x5A22 +0xC2CBB0C6 0x36DC +0xC2CBB0C7 0x36D1 +0xC2CBB0C8 0x5A24 +0xC2CBB0C9 0x36D0 +0xC2CBB0CA 0x5A14 +0xC2CBB0CB 0x5A31 +0xC2CBB0CC 0x36D5 +0xC2CBB0CD 0x5A2F +0xC2CBB0CE 0x5A1A +0xC2CBB0CF 0x5A12 +0xC2CBB0D0 0x36D4 +0xC2CBB0D1 0x36DB +0xC2CBB0D2 0x5A26 +0xC2CBB0D3 0x2172E +0xC2CBB0D4 0x3743 +0xC2CBB0D5 0x5BBC +0xC2CBB0D6 0x5BBB +0xC2CBB0D7 0x5BB7 +0xC2CBB0D8 0x5C05 +0xC2CBB0D9 0x5C06 +0xC2CBB0DA 0x5C52 +0xC2CBB0DB 0x5C53 +0xC2CBB0DC 0x37CD +0xC2CBB0DD 0x37D1 +0xC2CBB0DE 0x5CFA +0xC2CBB0DF 0x5CEB +0xC2CBB0E0 0x37CA +0xC2CBB0E1 0x5CF3 +0xC2CBB0E2 0x5CF5 +0xC2CBB0E3 0x5CE9 +0xC2CBB0E4 0x5CEF +0xC2CBB0E5 0x37D4 +0xC2CBB0E6 0x5E2A +0xC2CBB0E7 0x5E30 +0xC2CBB0E8 0x5E2E +0xC2CBB0E9 0x5E2C +0xC2CBB0EA 0x5E2F +0xC2CBB0EB 0x5EAF +0xC2CBB0EC 0x5EA9 +0xC2CBB0ED 0x3886 +0xC2CBB0EE 0x5EFD +0xC2CBB0EF 0x5F32 +0xC2CBB0F0 0x5F8E +0xC2CBB0F1 0x5F93 +0xC2CBB0F2 0x5F8F +0xC2CBB0F3 0x604F +0xC2CBB0F4 0x6099 +0xC2CBB0F5 0x3933 +0xC2CBB0F6 0x607E +0xC2CBB0F7 0x3937 +0xC2CBB0F8 0x6074 +0xC2CBB0F9 0x604B +0xC2CBB0FA 0x6073 +0xC2CBB0FB 0x6075 +0xC2CBB0FC 0x392A +0xC2CBB0FD 0x391F +0xC2CBB0FE 0x6056 +0xC2CBB1A1 0x60A9 +0xC2CBB1A2 0x608B +0xC2CBB1A3 0x60A6 +0xC2CBB1A4 0x3939 +0xC2CBB1A5 0x6093 +0xC2CBB1A6 0x60AE +0xC2CBB1A7 0x609E +0xC2CBB1A8 0x60A7 +0xC2CBB1A9 0x6245 +0xC2CBB1AA 0x39F2 +0xC2CBB1AB 0x39F8 +0xC2CBB1AC 0x632E +0xC2CBB1AD 0x39F7 +0xC2CBB1AE 0x6352 +0xC2CBB1AF 0x6330 +0xC2CBB1B0 0x635B +0xC2CBB1B1 0x39F4 +0xC2CBB1B2 0x6319 +0xC2CBB1B3 0x631B +0xC2CBB1B4 0x39F1 +0xC2CBB1B5 0x6331 +0xC2CBB1B6 0x635D +0xC2CBB1B7 0x6337 +0xC2CBB1B8 0x6335 +0xC2CBB1B9 0x6353 +0xC2CBB1BA 0x39F5 +0xC2CBB1BB 0x635C +0xC2CBB1BC 0x633F +0xC2CBB1BD 0x654B +0xC2CBB1BE 0x3A87 +0xC2CBB1BF 0x4369 +0xC2CBB1C0 0x658B +0xC2CBB1C1 0x3AB6 +0xC2CBB1C2 0x659A +0xC2CBB1C3 0x6650 +0xC2CBB1C4 0x6646 +0xC2CBB1C5 0x664E +0xC2CBB1C6 0x6640 +0xC2CBB1C7 0x3AE9 +0xC2CBB1C8 0x664B +0xC2CBB1C9 0x6648 +0xC2CBB1CA 0x3AEB +0xC2CBB1CB 0x6660 +0xC2CBB1CC 0x6644 +0xC2CBB1CD 0x664D +0xC2CBB1CE 0x3B34 +0xC2CBB1CF 0x6837 +0xC2CBB1D0 0x6824 +0xC2CBB1D1 0x3B62 +0xC2CBB1D2 0x3B5C +0xC2CBB1D3 0x681B +0xC2CBB1D4 0x6836 +0xC2CBB1D5 0x3B60 +0xC2CBB1D6 0x682C +0xC2CBB1D7 0x6819 +0xC2CBB1D8 0x6856 +0xC2CBB1D9 0x6847 +0xC2CBB1DA 0x683E +0xC2CBB1DB 0x681E +0xC2CBB1DC 0x2F8E1 +0xC2CBB1DD 0x6815 +0xC2CBB1DE 0x6822 +0xC2CBB1DF 0x6827 +0xC2CBB1E0 0x6859 +0xC2CBB1E1 0x6858 +0xC2CBB1E2 0x6855 +0xC2CBB1E3 0x6830 +0xC2CBB1E4 0x6823 +0xC2CBB1E5 0x6B2E +0xC2CBB1E6 0x6B2B +0xC2CBB1E7 0x6B30 +0xC2CBB1E8 0x6B6C +0xC2CBB1E9 0x3C61 +0xC2CBB1EA 0x6B8B +0xC2CBB1EB 0x3C7F +0xC2CBB1EC 0x6BE9 +0xC2CBB1ED 0x6BEA +0xC2CBB1EE 0x6BE5 +0xC2CBB1EF 0x6D6B +0xC2CBB1F0 0x3CE5 +0xC2CBB1F1 0x3CE6 +0xC2CBB1F2 0x6D73 +0xC2CBB1F3 0x6D57 +0xC2CBB1F4 0x3CE9 +0xC2CBB1F5 0x3CF3 +0xC2CBB1F6 0x6D5D +0xC2CBB1F7 0x6D56 +0xC2CBB1F8 0x6D8F +0xC2CBB1F9 0x6D5B +0xC2CBB1FA 0x6D1C +0xC2CBB1FB 0x6D9A +0xC2CBB1FC 0x6D9B +0xC2CBB1FD 0x6D99 +0xC2CBB1FE 0x3CEE +0xC2CBB2A1 0x6D81 +0xC2CBB2A2 0x6D71 +0xC2CBB2A3 0x3CED +0xC2CBB2A4 0x3CEC +0xC2CBB2A5 0x6D72 +0xC2CBB2A6 0x6D5C +0xC2CBB2A7 0x6D96 +0xC2CBB2A8 0x70C4 +0xC2CBB2A9 0x70DB +0xC2CBB2AA 0x70CC +0xC2CBB2AB 0x70D0 +0xC2CBB2AC 0x70E3 +0xC2CBB2AD 0x70DF +0xC2CBB2AE 0x3DB3 +0xC2CBB2AF 0x70D6 +0xC2CBB2B0 0x70EE +0xC2CBB2B1 0x70D5 +0xC2CBB2B2 0x3DB5 +0xC2CBB2B3 0x3E27 +0xC2CBB2B4 0x3E35 +0xC2CBB2B5 0x3E36 +0xC2CBB2B6 0x727A +0xC2CBB2B7 0x3E71 +0xC2CBB2B8 0x72F5 +0xC2CBB2B9 0x7302 +0xC2CBB2BA 0x3EB8 +0xC2CBB2BB 0x3EC2 +0xC2CBB2BC 0x73E2 +0xC2CBB2BD 0x73EC +0xC2CBB2BE 0x73D5 +0xC2CBB2BF 0x73F9 +0xC2CBB2C0 0x73DF +0xC2CBB2C1 0x73E6 +0xC2CBB2C2 0x3EC8 +0xC2CBB2C3 0x3EC0 +0xC2CBB2C4 0x3EC1 +0xC2CBB2C5 0x3EC4 +0xC2CBB2C6 0x73E4 +0xC2CBB2C7 0x73E1 +0xC2CBB2C8 0x74F3 +0xC2CBB2C9 0x3F1F +0xC2CBB2CA 0x3F1C +0xC2CBB2CB 0x3F1D +0xC2CBB2CC 0x3F4D +0xC2CBB2CD 0x7556 +0xC2CBB2CE 0x7555 +0xC2CBB2CF 0x7558 +0xC2CBB2D0 0x7557 +0xC2CBB2D1 0x755E +0xC2CBB2D2 0x75C3 +0xC2CBB2D3 0x3F87 +0xC2CBB2D4 0x3F82 +0xC2CBB2D5 0x75B4 +0xC2CBB2D6 0x3F7D +0xC2CBB2D7 0x75B1 +0xC2CBB2D8 0x3FDF +0xC2CBB2D9 0x4000 +0xC2CBB2DA 0x76CB +0xC2CBB2DB 0x76CC +0xC2CBB2DC 0x772A +0xC2CBB2DD 0x4020 +0xC2CBB2DE 0x7716 +0xC2CBB2DF 0x770F +0xC2CBB2E0 0x4022 +0xC2CBB2E1 0x4024 +0xC2CBB2E2 0x773F +0xC2CBB2E3 0x772B +0xC2CBB2E4 0x770E +0xC2CBB2E5 0x7724 +0xC2CBB2E6 0x4021 +0xC2CBB2E7 0x7721 +0xC2CBB2E8 0x7718 +0xC2CBB2E9 0x77DD +0xC2CBB2EA 0x40A4 +0xC2CBB2EB 0x40A5 +0xC2CBB2EC 0x7824 +0xC2CBB2ED 0x7836 +0xC2CBB2EE 0x4101 +0xC2CBB2EF 0x7958 +0xC2CBB2F0 0x7959 +0xC2CBB2F1 0x4103 +0xC2CBB2F2 0x7962 +0xC2CBB2F3 0x79DA +0xC2CBB2F4 0x79D9 +0xC2CBB2F5 0x4137 +0xC2CBB2F6 0x79E1 +0xC2CBB2F7 0x79E5 +0xC2CBB2F8 0x79E8 +0xC2CBB2F9 0x79DB +0xC2CBB2FA 0x4138 +0xC2CBB2FB 0x79E2 +0xC2CBB2FC 0x79F0 +0xC2CBB2FD 0x4199 +0xC2CBB2FE 0x4198 +0xC2CBB3A1 0x4197 +0xC2CBB3A2 0x41C9 +0xC2CBB3A3 0x7ADA +0xC2CBB3A4 0x7ADD +0xC2CBB3A5 0x41C7 +0xC2CBB3A6 0x7ADB +0xC2CBB3A7 0x7ADC +0xC2CBB3A8 0x41D9 +0xC2CBB3A9 0x41DB +0xC2CBB3AA 0x7B0D +0xC2CBB3AB 0x7B0B +0xC2CBB3AC 0x7B14 +0xC2CBB3AD 0x7C8E +0xC2CBB3AE 0x7C86 +0xC2CBB3AF 0x427B +0xC2CBB3B0 0x7C87 +0xC2CBB3B1 0x7C83 +0xC2CBB3B2 0x7C8B +0xC2CBB3B3 0x427C +0xC2CBB3B4 0x42BD +0xC2CBB3B5 0x42BC +0xC2CBB3B6 0x42C3 +0xC2CBB3B7 0x7D24 +0xC2CBB3B8 0x42C1 +0xC2CBB3B9 0x42BF +0xC2CBB3BA 0x42C4 +0xC2CBB3BB 0x7D25 +0xC2CBB3BC 0x7F62 +0xC2CBB3BD 0x7F93 +0xC2CBB3BE 0x7F99 +0xC2CBB3BF 0x7F97 +0xC2CBB3C0 0x437E +0xC2CBB3C1 0x437F +0xC2CBB3C2 0x7FC4 +0xC2CBB3C3 0x7FC6 +0xC2CBB3C4 0x800A +0xC2CBB3C5 0x43B4 +0xC2CBB3C6 0x43B3 +0xC2CBB3C7 0x8040 +0xC2CBB3C8 0x803C +0xC2CBB3C9 0x803B +0xC2CBB3CA 0x80F6 +0xC2CBB3CB 0x80FF +0xC2CBB3CC 0x80EE +0xC2CBB3CD 0x8104 +0xC2CBB3CE 0x8103 +0xC2CBB3CF 0x8107 +0xC2CBB3D0 0x2F983 +0xC2CBB3D1 0x43E6 +0xC2CBB3D2 0x80F7 +0xC2CBB3D3 0x4459 +0xC2CBB3D4 0x445A +0xC2CBB3D5 0x822D +0xC2CBB3D6 0x4464 +0xC2CBB3D7 0x8227 +0xC2CBB3D8 0x8229 +0xC2CBB3D9 0x831F +0xC2CBB3DA 0x8357 +0xC2CBB3DB 0x44B4 +0xC2CBB3DC 0x44B9 +0xC2CBB3DD 0x44B7 +0xC2CBB3DE 0x44B5 +0xC2CBB3DF 0x8321 +0xC2CBB3E0 0x44C1 +0xC2CBB3E1 0x44B1 +0xC2CBB3E2 0x8318 +0xC2CBB3E3 0x8358 +0xC2CBB3E4 0x44B3 +0xC2CBB3E5 0x44BA +0xC2CBB3E6 0x458C +0xC2CBB3E7 0x458B +0xC2CBB3E8 0x458D +0xC2CBB3E9 0x8684 +0xC2CBB3EA 0x869F +0xC2CBB3EB 0x869B +0xC2CBB3EC 0x8689 +0xC2CBB3ED 0x86A6 +0xC2CBB3EE 0x8692 +0xC2CBB3EF 0x868F +0xC2CBB3F0 0x86A0 +0xC2CBB3F1 0x884F +0xC2CBB3F2 0x8878 +0xC2CBB3F3 0x887A +0xC2CBB3F4 0x886E +0xC2CBB3F5 0x887B +0xC2CBB3F6 0x8884 +0xC2CBB3F7 0x8873 +0xC2CBB3F8 0x4678 +0xC2CBB3F9 0x4677 +0xC2CBB3FA 0x8A0D +0xC2CBB3FB 0x8A0B +0xC2CBB3FC 0x8A19 +0xC2CBB3FD 0x46B2 +0xC2CBB3FE 0x47D6 +0xC2CBB4A1 0x8ED0 +0xC2CBB4A2 0x4845 +0xC2CBB4A3 0x4892 +0xC2CBB4A4 0x4895 +0xC2CBB4A5 0x8FF9 +0xC2CBB4A6 0x9009 +0xC2CBB4A7 0x9008 +0xC2CBB4A8 0x48C6 +0xC2CBB4A9 0x90DE +0xC2CBB4AA 0x9151 +0xC2CBB4AB 0x48E7 +0xC2CBB4AC 0x48E8 +0xC2CBB4AD 0x91DB +0xC2CBB4AE 0x91DF +0xC2CBB4AF 0x91DE +0xC2CBB4B0 0x91D6 +0xC2CBB4B1 0x91E0 +0xC2CBB4B2 0x9585 +0xC2CBB4B3 0x9660 +0xC2CBB4B4 0x9659 +0xC2CBB4B5 0x49CB +0xC2CBB4B6 0x9656 +0xC2CBB4B7 0x49CD +0xC2CBB4B8 0x49F1 +0xC2CBB4B9 0x96BD +0xC2CBB4BA 0x4B22 +0xC2CBB4BB 0x3421 +0xC2CBB4BC 0x5042 +0xC2CBB4BD 0x5059 +0xC2CBB4BE 0x346F +0xC2CBB4BF 0x5044 +0xC2CBB4C0 0x5066 +0xC2CBB4C1 0x5052 +0xC2CBB4C2 0x5054 +0xC2CBB4C3 0x5071 +0xC2CBB4C4 0x5050 +0xC2CBB4C5 0x507B +0xC2CBB4C6 0x507C +0xC2CBB4C7 0x5058 +0xC2CBB4C8 0x3470 +0xC2CBB4C9 0x3464 +0xC2CBB4CA 0x5079 +0xC2CBB4CB 0x506C +0xC2CBB4CC 0x5078 +0xC2CBB4CD 0x51A8 +0xC2CBB4CE 0x51D1 +0xC2CBB4CF 0x51CF +0xC2CBB4D0 0x5268 +0xC2CBB4D1 0x5276 +0xC2CBB4D2 0x52D4 +0xC2CBB4D3 0x352D +0xC2CBB4D4 0x53A0 +0xC2CBB4D5 0x53C4 +0xC2CBB4D6 0x3558 +0xC2CBB4D7 0x5558 +0xC2CBB4D8 0x554C +0xC2CBB4D9 0x5568 +0xC2CBB4DA 0x35A6 +0xC2CBB4DB 0x5549 +0xC2CBB4DC 0x35A4 +0xC2CBB4DD 0x359F +0xC2CBB4DE 0x555D +0xC2CBB4DF 0x5529 +0xC2CBB4E0 0x20DAE +0xC2CBB4E1 0x5554 +0xC2CBB4E2 0x5553 +0xC2CBB4E3 0x35A3 +0xC2CBB4E4 0x555A +0xC2CBB4E5 0x35A0 +0xC2CBB4E6 0x553A +0xC2CBB4E7 0x553F +0xC2CBB4E8 0x552B +0xC2CBB4E9 0x57EA +0xC2CBB4EA 0x364A +0xC2CBB4EB 0x57EF +0xC2CBB4EC 0x3647 +0xC2CBB4ED 0x3648 +0xC2CBB4EE 0x57DD +0xC2CBB4EF 0x57FE +0xC2CBB4F0 0x2F855 +0xC2CBB4F1 0x57DE +0xC2CBB4F2 0x57E6 +0xC2CBB4F3 0x3649 +0xC2CBB4F4 0x57E8 +0xC2CBB4F5 0x57FF +0xC2CBB4F6 0x5803 +0xC2CBB4F7 0x58F7 +0xC2CBB4F8 0x68A6 +0xC2CBB4F9 0x591F +0xC2CBB4FA 0x369E +0xC2CBB4FB 0x595B +0xC2CBB4FC 0x595D +0xC2CBB4FD 0x595E +0xC2CBB4FE 0x21637 +0xC2CBB5A1 0x36E8 +0xC2CBB5A2 0x5A2B +0xC2CBB5A3 0x36EC +0xC2CBB5A4 0x5A3B +0xC2CBB5A5 0x36ED +0xC2CBB5A6 0x36E6 +0xC2CBB5A7 0x5A61 +0xC2CBB5A8 0x5A3A +0xC2CBB5A9 0x5A6E +0xC2CBB5AA 0x5A4B +0xC2CBB5AB 0x5A6B +0xC2CBB5AC 0x36EB +0xC2CBB5AD 0x36E7 +0xC2CBB5AE 0x5A45 +0xC2CBB5AF 0x5A4E +0xC2CBB5B0 0x5A68 +0xC2CBB5B1 0x5A3D +0xC2CBB5B2 0x5A71 +0xC2CBB5B3 0x5A3F +0xC2CBB5B4 0x5A6F +0xC2CBB5B5 0x5A75 +0xC2CBB5B6 0x36E9 +0xC2CBB5B7 0x5A73 +0xC2CBB5B8 0x5A2C +0xC2CBB5B9 0x5A59 +0xC2CBB5BA 0x5A54 +0xC2CBB5BB 0x5A4F +0xC2CBB5BC 0x5A63 +0xC2CBB5BD 0x375C +0xC2CBB5BE 0x375D +0xC2CBB5BF 0x5BC8 +0xC2CBB5C0 0x3760 +0xC2CBB5C1 0x5BC3 +0xC2CBB5C2 0x375B +0xC2CBB5C3 0x5C5B +0xC2CBB5C4 0x5C61 +0xC2CBB5C5 0x3799 +0xC2CBB5C6 0x5D21 +0xC2CBB5C7 0x5D0A +0xC2CBB5C8 0x5D09 +0xC2CBB5C9 0x37D8 +0xC2CBB5CA 0x5D2C +0xC2CBB5CB 0x5D08 +0xC2CBB5CC 0x37DA +0xC2CBB5CD 0x37DD +0xC2CBB5CE 0x5D2A +0xC2CBB5CF 0x5D15 +0xC2CBB5D0 0x37E0 +0xC2CBB5D1 0x5D10 +0xC2CBB5D2 0x5D13 +0xC2CBB5D3 0x37E5 +0xC2CBB5D4 0x5D2F +0xC2CBB5D5 0x5D18 +0xC2CBB5D6 0x37D7 +0xC2CBB5D7 0x5DE3 +0xC2CBB5D8 0x5E39 +0xC2CBB5D9 0x5E35 +0xC2CBB5DA 0x5E3A +0xC2CBB5DB 0x5E32 +0xC2CBB5DC 0x384E +0xC2CBB5DD 0x388C +0xC2CBB5DE 0x3888 +0xC2CBB5DF 0x2F88D +0xC2CBB5E0 0x5EBB +0xC2CBB5E1 0x5EBA +0xC2CBB5E2 0x5F34 +0xC2CBB5E3 0x5F39 +0xC2CBB5E4 0x38CE +0xC2CBB5E5 0x2F89C +0xC2CBB5E6 0x38E5 +0xC2CBB5E7 0x38E6 +0xC2CBB5E8 0x6098 +0xC2CBB5E9 0x3932 +0xC2CBB5EA 0x60D0 +0xC2CBB5EB 0x3940 +0xC2CBB5EC 0x3947 +0xC2CBB5ED 0x394C +0xC2CBB5EE 0x60D7 +0xC2CBB5EF 0x60AA +0xC2CBB5F0 0x3935 +0xC2CBB5F1 0x60A1 +0xC2CBB5F2 0x60A4 +0xC2CBB5F3 0x3930 +0xC2CBB5F4 0x60EE +0xC2CBB5F5 0x3943 +0xC2CBB5F6 0x60E7 +0xC2CBB5F7 0x394D +0xC2CBB5F8 0x60E8 +0xC2CBB5F9 0x60DE +0xC2CBB5FA 0x39B7 +0xC2CBB5FB 0x39F3 +0xC2CBB5FC 0x637E +0xC2CBB5FD 0x638B +0xC2CBB5FE 0x3A02 +0xC2CBB6A1 0x3A0B +0xC2CBB6A2 0x6379 +0xC2CBB6A3 0x6386 +0xC2CBB6A4 0x6393 +0xC2CBB6A5 0x3A04 +0xC2CBB6A6 0x6373 +0xC2CBB6A7 0x636A +0xC2CBB6A8 0x2F8BA +0xC2CBB6A9 0x636C +0xC2CBB6AA 0x3A08 +0xC2CBB6AB 0x637F +0xC2CBB6AC 0x39FC +0xC2CBB6AD 0x63B2 +0xC2CBB6AE 0x63BA +0xC2CBB6AF 0x39FF +0xC2CBB6B0 0x3A00 +0xC2CBB6B1 0x6366 +0xC2CBB6B2 0x6374 +0xC2CBB6B3 0x3A8B +0xC2CBB6B4 0x655A +0xC2CBB6B5 0x3A8D +0xC2CBB6B6 0x654E +0xC2CBB6B7 0x654D +0xC2CBB6B8 0x658D +0xC2CBB6B9 0x658E +0xC2CBB6BA 0x65AD +0xC2CBB6BB 0x3ACA +0xC2CBB6BC 0x65C7 +0xC2CBB6BD 0x65CA +0xC2CBB6BE 0x3ACB +0xC2CBB6BF 0x65C9 +0xC2CBB6C0 0x2F8CB +0xC2CBB6C1 0x65E3 +0xC2CBB6C2 0x6657 +0xC2CBB6C3 0x3AF3 +0xC2CBB6C4 0x6663 +0xC2CBB6C5 0x6667 +0xC2CBB6C6 0x671A +0xC2CBB6C7 0x6719 +0xC2CBB6C8 0x6716 +0xC2CBB6C9 0x3B36 +0xC2CBB6CA 0x3B6A +0xC2CBB6CB 0x689E +0xC2CBB6CC 0x68B6 +0xC2CBB6CD 0x6898 +0xC2CBB6CE 0x6873 +0xC2CBB6CF 0x3B6B +0xC2CBB6D0 0x689A +0xC2CBB6D1 0x688E +0xC2CBB6D2 0x68B7 +0xC2CBB6D3 0x68DB +0xC2CBB6D4 0x68A5 +0xC2CBB6D5 0x686C +0xC2CBB6D6 0x68C1 +0xC2CBB6D7 0x6884 +0xC2CBB6D8 0x3B71 +0xC2CBB6D9 0x3B68 +0xC2CBB6DA 0x6895 +0xC2CBB6DB 0x687A +0xC2CBB6DC 0x6899 +0xC2CBB6DD 0x3B72 +0xC2CBB6DE 0x68B8 +0xC2CBB6DF 0x68B9 +0xC2CBB6E0 0x6870 +0xC2CBB6E1 0x3C2E +0xC2CBB6E2 0x6B35 +0xC2CBB6E3 0x3C62 +0xC2CBB6E4 0x6B90 +0xC2CBB6E5 0x6BBB +0xC2CBB6E6 0x6BED +0xC2CBB6E7 0x3C98 +0xC2CBB6E8 0x3CB5 +0xC2CBB6E9 0x3CEB +0xC2CBB6EA 0x6DC1 +0xC2CBB6EB 0x6DC3 +0xC2CBB6EC 0x6DCE +0xC2CBB6ED 0x3CFB +0xC2CBB6EE 0x3CF8 +0xC2CBB6EF 0x6DAD +0xC2CBB6F0 0x6E04 +0xC2CBB6F1 0x3CF5 +0xC2CBB6F2 0x6DB9 +0xC2CBB6F3 0x3D08 +0xC2CBB6F4 0x6DE7 +0xC2CBB6F5 0x2F907 +0xC2CBB6F6 0x6E08 +0xC2CBB6F7 0x6E06 +0xC2CBB6F8 0x3D0A +0xC2CBB6F9 0x6E0A +0xC2CBB6FA 0x6DB0 +0xC2CBB6FB 0x3D06 +0xC2CBB6FC 0x6DF8 +0xC2CBB6FD 0x6E0C +0xC2CBB6FE 0x3CFD +0xC2CBB7A1 0x6DB1 +0xC2CBB7A2 0x3CFA +0xC2CBB7A3 0x6E02 +0xC2CBB7A4 0x6E07 +0xC2CBB7A5 0x6E09 +0xC2CBB7A6 0x6E01 +0xC2CBB7A7 0x6E17 +0xC2CBB7A8 0x6DFF +0xC2CBB7A9 0x6E12 +0xC2CBB7AA 0x3DBA +0xC2CBB7AB 0x3DB9 +0xC2CBB7AC 0x7103 +0xC2CBB7AD 0x7107 +0xC2CBB7AE 0x7101 +0xC2CBB7AF 0x70F5 +0xC2CBB7B0 0x70F1 +0xC2CBB7B1 0x7108 +0xC2CBB7B2 0x70F2 +0xC2CBB7B3 0x710F +0xC2CBB7B4 0x3DBB +0xC2CBB7B5 0x70FE +0xC2CBB7B6 0x3E18 +0xC2CBB7B7 0x3E40 +0xC2CBB7B8 0x3E3D +0xC2CBB7B9 0x731A +0xC2CBB7BA 0x7310 +0xC2CBB7BB 0x730E +0xC2CBB7BC 0x7402 +0xC2CBB7BD 0x73F3 +0xC2CBB7BE 0x3ECD +0xC2CBB7BF 0x3EC9 +0xC2CBB7C0 0x73FB +0xC2CBB7C1 0x3ECB +0xC2CBB7C2 0x3ECA +0xC2CBB7C3 0x3ECE +0xC2CBB7C4 0x751B +0xC2CBB7C5 0x7523 +0xC2CBB7C6 0x7561 +0xC2CBB7C7 0x7568 +0xC2CBB7C8 0x3F5E +0xC2CBB7C9 0x7567 +0xC2CBB7CA 0x75D3 +0xC2CBB7CB 0x3F91 +0xC2CBB7CC 0x3F8C +0xC2CBB7CD 0x7690 +0xC2CBB7CE 0x3FE1 +0xC2CBB7CF 0x4002 +0xC2CBB7D0 0x76D5 +0xC2CBB7D1 0x76D7 +0xC2CBB7D2 0x76D6 +0xC2CBB7D3 0x7730 +0xC2CBB7D4 0x402B +0xC2CBB7D5 0x7726 +0xC2CBB7D6 0x402A +0xC2CBB7D7 0x7740 +0xC2CBB7D8 0x3E14 +0xC2CBB7D9 0x771E +0xC2CBB7DA 0x40AD +0xC2CBB7DB 0x40A3 +0xC2CBB7DC 0x40AB +0xC2CBB7DD 0x7847 +0xC2CBB7DE 0x40AF +0xC2CBB7DF 0x784B +0xC2CBB7E0 0x7851 +0xC2CBB7E1 0x784F +0xC2CBB7E2 0x7842 +0xC2CBB7E3 0x7846 +0xC2CBB7E4 0x4104 +0xC2CBB7E5 0x796E +0xC2CBB7E6 0x796C +0xC2CBB7E7 0x79F2 +0xC2CBB7E8 0x4144 +0xC2CBB7E9 0x79F1 +0xC2CBB7EA 0x79F5 +0xC2CBB7EB 0x79F3 +0xC2CBB7EC 0x79F9 +0xC2CBB7ED 0x413D +0xC2CBB7EE 0x4147 +0xC2CBB7EF 0x419C +0xC2CBB7F0 0x7A9A +0xC2CBB7F1 0x7A93 +0xC2CBB7F2 0x7A91 +0xC2CBB7F3 0x7AE1 +0xC2CBB7F4 0x41E0 +0xC2CBB7F5 0x41E4 +0xC2CBB7F6 0x7B21 +0xC2CBB7F7 0x7B1C +0xC2CBB7F8 0x7B16 +0xC2CBB7F9 0x7B17 +0xC2CBB7FA 0x7B36 +0xC2CBB7FB 0x7B1F +0xC2CBB7FC 0x4280 +0xC2CBB7FD 0x7C93 +0xC2CBB7FE 0x7C99 +0xC2CBB8A1 0x7C9A +0xC2CBB8A2 0x7C9C +0xC2CBB8A3 0x42CA +0xC2CBB8A4 0x7D49 +0xC2CBB8A5 0x42D4 +0xC2CBB8A6 0x7D34 +0xC2CBB8A7 0x7D37 +0xC2CBB8A8 0x42D2 +0xC2CBB8A9 0x7D2D +0xC2CBB8AA 0x42CB +0xC2CBB8AB 0x7D4C +0xC2CBB8AC 0x42CE +0xC2CBB8AD 0x42D3 +0xC2CBB8AE 0x7D48 +0xC2CBB8AF 0x4344 +0xC2CBB8B0 0x4348 +0xC2CBB8B1 0x7F3B +0xC2CBB8B2 0x4345 +0xC2CBB8B3 0x4381 +0xC2CBB8B4 0x4386 +0xC2CBB8B5 0x4385 +0xC2CBB8B6 0x8008 +0xC2CBB8B7 0x801A +0xC2CBB8B8 0x43A3 +0xC2CBB8B9 0x801D +0xC2CBB8BA 0x43B5 +0xC2CBB8BB 0x8049 +0xC2CBB8BC 0x8045 +0xC2CBB8BD 0x8044 +0xC2CBB8BE 0x7C9B +0xC2CBB8BF 0x43FA +0xC2CBB8C0 0x43F9 +0xC2CBB8C1 0x812A +0xC2CBB8C2 0x812E +0xC2CBB8C3 0x43FB +0xC2CBB8C4 0x43F2 +0xC2CBB8C5 0x8131 +0xC2CBB8C6 0x43EF +0xC2CBB8C7 0x811A +0xC2CBB8C8 0x8134 +0xC2CBB8C9 0x8117 +0xC2CBB8CA 0x445B +0xC2CBB8CB 0x4466 +0xC2CBB8CC 0x44CE +0xC2CBB8CD 0x831D +0xC2CBB8CE 0x8371 +0xC2CBB8CF 0x8384 +0xC2CBB8D0 0x8380 +0xC2CBB8D1 0x8372 +0xC2CBB8D2 0x83A1 +0xC2CBB8D3 0x35B4 +0xC2CBB8D4 0x8379 +0xC2CBB8D5 0x8391 +0xC2CBB8D6 0x44C8 +0xC2CBB8D7 0x839F +0xC2CBB8D8 0x83AD +0xC2CBB8D9 0x44D1 +0xC2CBB8DA 0x44C5 +0xC2CBB8DB 0x8323 +0xC2CBB8DC 0x44D2 +0xC2CBB8DD 0x8385 +0xC2CBB8DE 0x839C +0xC2CBB8DF 0x83B7 +0xC2CBB8E0 0x8658 +0xC2CBB8E1 0x865A +0xC2CBB8E2 0x458F +0xC2CBB8E3 0x8657 +0xC2CBB8E4 0x86B2 +0xC2CBB8E5 0x45A7 +0xC2CBB8E6 0x86AE +0xC2CBB8E7 0x45A5 +0xC2CBB8E8 0x45A4 +0xC2CBB8E9 0x4611 +0xC2CBB8EA 0x8845 +0xC2CBB8EB 0x889C +0xC2CBB8EC 0x8894 +0xC2CBB8ED 0x88A3 +0xC2CBB8EE 0x888F +0xC2CBB8EF 0x88A5 +0xC2CBB8F0 0x88A9 +0xC2CBB8F1 0x88A6 +0xC2CBB8F2 0x888A +0xC2CBB8F3 0x88A0 +0xC2CBB8F4 0x8890 +0xC2CBB8F5 0x8992 +0xC2CBB8F6 0x8991 +0xC2CBB8F7 0x8994 +0xC2CBB8F8 0x46B5 +0xC2CBB8F9 0x8A26 +0xC2CBB8FA 0x8A32 +0xC2CBB8FB 0x8A28 +0xC2CBB8FC 0x46B4 +0xC2CBB8FD 0x46BD +0xC2CBB8FE 0x8A1C +0xC2CBB9A1 0x46BB +0xC2CBB9A2 0x8A2B +0xC2CBB9A3 0x8A20 +0xC2CBB9A4 0x46B9 +0xC2CBB9A5 0x8A29 +0xC2CBB9A6 0x46C2 +0xC2CBB9A7 0x46BE +0xC2CBB9A8 0x46BA +0xC2CBB9A9 0x8A21 +0xC2CBB9AA 0x8C3A +0xC2CBB9AB 0x3AB7 +0xC2CBB9AC 0x8C5B +0xC2CBB9AD 0x8C58 +0xC2CBB9AE 0x8C7C +0xC2CBB9AF 0x4758 +0xC2CBB9B0 0x8CA6 +0xC2CBB9B1 0x8CAE +0xC2CBB9B2 0x8CAD +0xC2CBB9B3 0x8D65 +0xC2CBB9B4 0x479B +0xC2CBB9B5 0x8D7E +0xC2CBB9B6 0x479C +0xC2CBB9B7 0x8D7C +0xC2CBB9B8 0x8D7F +0xC2CBB9B9 0x8D7A +0xC2CBB9BA 0x8DBD +0xC2CBB9BB 0x47DA +0xC2CBB9BC 0x47DE +0xC2CBB9BD 0x8DC0 +0xC2CBB9BE 0x8DBB +0xC2CBB9BF 0x8EAD +0xC2CBB9C0 0x8EAF +0xC2CBB9C1 0x8ED6 +0xC2CBB9C2 0x484D +0xC2CBB9C3 0x4846 +0xC2CBB9C4 0x4847 +0xC2CBB9C5 0x484B +0xC2CBB9C6 0x484C +0xC2CBB9C7 0x8ED9 +0xC2CBB9C8 0x4848 +0xC2CBB9C9 0x4899 +0xC2CBB9CA 0x9012 +0xC2CBB9CB 0x900E +0xC2CBB9CC 0x9025 +0xC2CBB9CD 0x489B +0xC2CBB9CE 0x9013 +0xC2CBB9CF 0x90EE +0xC2CBB9D0 0x48CE +0xC2CBB9D1 0x90AB +0xC2CBB9D2 0x90F7 +0xC2CBB9D3 0x48EB +0xC2CBB9D4 0x9159 +0xC2CBB9D5 0x9154 +0xC2CBB9D6 0x91F2 +0xC2CBB9D7 0x91F0 +0xC2CBB9D8 0x91E5 +0xC2CBB9D9 0x91F6 +0xC2CBB9DA 0x491C +0xC2CBB9DB 0x498C +0xC2CBB9DC 0x9587 +0xC2CBB9DD 0x49D1 +0xC2CBB9DE 0x965A +0xC2CBB9DF 0x49D6 +0xC2CBB9E0 0x49D3 +0xC2CBB9E1 0x966E +0xC2CBB9E2 0x49D4 +0xC2CBB9E3 0x49D0 +0xC2CBB9E4 0x49D5 +0xC2CBB9E5 0x9679 +0xC2CBB9E6 0x4A0B +0xC2CBB9E7 0x98E1 +0xC2CBB9E8 0x98E6 +0xC2CBB9E9 0x4BC6 +0xC2CBB9EA 0x9EC4 +0xC2CBB9EB 0x9ED2 +0xC2CBB9EC 0x4E80 +0xC2CBB9ED 0x3424 +0xC2CBB9EE 0x4E81 +0xC2CBB9EF 0x508F +0xC2CBB9F0 0x5097 +0xC2CBB9F1 0x5088 +0xC2CBB9F2 0x5089 +0xC2CBB9F3 0x3474 +0xC2CBB9F4 0x347A +0xC2CBB9F5 0x5081 +0xC2CBB9F6 0x5160 +0xC2CBB9F7 0x20564 +0xC2CBB9F8 0x34C3 +0xC2CBB9F9 0x5E42 +0xC2CBB9FA 0x51D3 +0xC2CBB9FB 0x34D4 +0xC2CBB9FC 0x34D5 +0xC2CBB9FD 0x51D2 +0xC2CBB9FE 0x51D6 +0xC2CBBAA1 0x5273 +0xC2CBBAA2 0x34FB +0xC2CBBAA3 0x5270 +0xC2CBBAA4 0x34F7 +0xC2CBBAA5 0x3532 +0xC2CBBAA6 0x2F833 +0xC2CBBAA7 0x53A8 +0xC2CBBAA8 0x53A6 +0xC2CBBAA9 0x53C5 +0xC2CBBAAA 0x5597 +0xC2CBBAAB 0x55DE +0xC2CBBAAC 0x35BA +0xC2CBBAAD 0x35BF +0xC2CBBAAE 0x5596 +0xC2CBBAAF 0x55B4 +0xC2CBBAB0 0x35C7 +0xC2CBBAB1 0x5585 +0xC2CBBAB2 0x35B7 +0xC2CBBAB3 0x559B +0xC2CBBAB4 0x55A0 +0xC2CBBAB5 0x35B9 +0xC2CBBAB6 0x5559 +0xC2CBBAB7 0x35C3 +0xC2CBBAB8 0x5586 +0xC2CBBAB9 0x35BD +0xC2CBBABA 0x35D0 +0xC2CBBABB 0x55AF +0xC2CBBABC 0x557A +0xC2CBBABD 0x35C1 +0xC2CBBABE 0x35BE +0xC2CBBABF 0x35CD +0xC2CBBAC0 0x559E +0xC2CBBAC1 0x35CB +0xC2CBBAC2 0x55A9 +0xC2CBBAC3 0x570F +0xC2CBBAC4 0x570E +0xC2CBBAC5 0x581A +0xC2CBBAC6 0x364F +0xC2CBBAC7 0x581F +0xC2CBBAC8 0x3653 +0xC2CBBAC9 0x583C +0xC2CBBACA 0x5818 +0xC2CBBACB 0x583E +0xC2CBBACC 0x5826 +0xC2CBBACD 0x3655 +0xC2CBBACE 0x583A +0xC2CBBACF 0x21364 +0xC2CBBAD0 0x5822 +0xC2CBBAD1 0x3651 +0xC2CBBAD2 0x58FB +0xC2CBBAD3 0x5963 +0xC2CBBAD4 0x5964 +0xC2CBBAD5 0x369F +0xC2CBBAD6 0x5AA8 +0xC2CBBAD7 0x5AA3 +0xC2CBBAD8 0x5A82 +0xC2CBBAD9 0x5A88 +0xC2CBBADA 0x5AA1 +0xC2CBBADB 0x5A85 +0xC2CBBADC 0x5A98 +0xC2CBBADD 0x36FE +0xC2CBBADE 0x5A99 +0xC2CBBADF 0x36FB +0xC2CBBAE0 0x5A89 +0xC2CBBAE1 0x5A81 +0xC2CBBAE2 0x5A96 +0xC2CBBAE3 0x5A80 +0xC2CBBAE4 0x36F1 +0xC2CBBAE5 0x36F5 +0xC2CBBAE6 0x5A91 +0xC2CBBAE7 0x36EF +0xC2CBBAE8 0x3704 +0xC2CBBAE9 0x3703 +0xC2CBBAEA 0x36F4 +0xC2CBBAEB 0x5ACF +0xC2CBBAEC 0x36F3 +0xC2CBBAED 0x3702 +0xC2CBBAEE 0x36F7 +0xC2CBBAEF 0x36FA +0xC2CBBAF0 0x36FD +0xC2CBBAF1 0x36EE +0xC2CBBAF2 0x5A87 +0xC2CBBAF3 0x5AA0 +0xC2CBBAF4 0x36F0 +0xC2CBBAF5 0x5A79 +0xC2CBBAF6 0x36F2 +0xC2CBBAF7 0x5A86 +0xC2CBBAF8 0x5AAB +0xC2CBBAF9 0x5AAA +0xC2CBBAFA 0x5AA4 +0xC2CBBAFB 0x5A8D +0xC2CBBAFC 0x5A7E +0xC2CBBAFD 0x3744 +0xC2CBBAFE 0x5BD5 +0xC2CBBBA1 0x3762 +0xC2CBBBA2 0x3777 +0xC2CBBBA3 0x3DC9 +0xC2CBBBA4 0x5C1E +0xC2CBBBA5 0x5C5F +0xC2CBBBA6 0x5C5E +0xC2CBBBA7 0x5D44 +0xC2CBBBA8 0x5D3E +0xC2CBBBA9 0x37E8 +0xC2CBBBAA 0x5D48 +0xC2CBBBAB 0x5D1C +0xC2CBBBAC 0x37EF +0xC2CBBBAD 0x5D5B +0xC2CBBBAE 0x5D4D +0xC2CBBBAF 0x37E6 +0xC2CBBBB0 0x37ED +0xC2CBBBB1 0x5D57 +0xC2CBBBB2 0x37E7 +0xC2CBBBB3 0x5D53 +0xC2CBBBB4 0x5D4F +0xC2CBBBB5 0x37EB +0xC2CBBBB6 0x5D3B +0xC2CBBBB7 0x5D46 +0xC2CBBBB8 0x382D +0xC2CBBBB9 0x3855 +0xC2CBBBBA 0x5E46 +0xC2CBBBBB 0x5E47 +0xC2CBBBBC 0x3853 +0xC2CBBBBD 0x5E48 +0xC2CBBBBE 0x5EC0 +0xC2CBBBBF 0x5EBD +0xC2CBBBC0 0x5EBF +0xC2CBBBC1 0x3890 +0xC2CBBBC2 0x5F11 +0xC2CBBBC3 0x38BE +0xC2CBBBC4 0x5F3E +0xC2CBBBC5 0x5F3B +0xC2CBBBC6 0x38BD +0xC2CBBBC7 0x5F3A +0xC2CBBBC8 0x38CF +0xC2CBBBC9 0x38D0 +0xC2CBBBCA 0x38EC +0xC2CBBBCB 0x5FA7 +0xC2CBBBCC 0x394B +0xC2CBBBCD 0x60EA +0xC2CBBBCE 0x3948 +0xC2CBBBCF 0x6107 +0xC2CBBBD0 0x6122 +0xC2CBBBD1 0x610C +0xC2CBBBD2 0x3955 +0xC2CBBBD3 0x3951 +0xC2CBBBD4 0x60B3 +0xC2CBBBD5 0x60D6 +0xC2CBBBD6 0x60D2 +0xC2CBBBD7 0x394E +0xC2CBBBD8 0x60E3 +0xC2CBBBD9 0x60E5 +0xC2CBBBDA 0x60E9 +0xC2CBBBDB 0x396B +0xC2CBBBDC 0x395E +0xC2CBBBDD 0x6111 +0xC2CBBBDE 0x60FD +0xC2CBBBDF 0x3960 +0xC2CBBBE0 0x3967 +0xC2CBBBE1 0x611E +0xC2CBBBE2 0x6120 +0xC2CBBBE3 0x6121 +0xC2CBBBE4 0x621E +0xC2CBBBE5 0x39B8 +0xC2CBBBE6 0x63E2 +0xC2CBBBE7 0x63DE +0xC2CBBBE8 0x63E6 +0xC2CBBBE9 0x3A14 +0xC2CBBBEA 0x3A0F +0xC2CBBBEB 0x3A07 +0xC2CBBBEC 0x3A13 +0xC2CBBBED 0x63F8 +0xC2CBBBEE 0x3A17 +0xC2CBBBEF 0x63FE +0xC2CBBBF0 0x63C1 +0xC2CBBBF1 0x63BF +0xC2CBBBF2 0x63F7 +0xC2CBBBF3 0x63D1 +0xC2CBBBF4 0x655F +0xC2CBBBF5 0x6560 +0xC2CBBBF6 0x6561 +0xC2CBBBF7 0x3A9A +0xC2CBBBF8 0x3AB8 +0xC2CBBBF9 0x65D1 +0xC2CBBBFA 0x3AF7 +0xC2CBBBFB 0x3AF8 +0xC2CBBBFC 0x667D +0xC2CBBBFD 0x666B +0xC2CBBBFE 0x667F +0xC2CBBCA1 0x3AFD +0xC2CBBCA2 0x3AF5 +0xC2CBBCA3 0x6673 +0xC2CBBCA4 0x6681 +0xC2CBBCA5 0x666D +0xC2CBBCA6 0x6669 +0xC2CBBCA7 0x3AFA +0xC2CBBCA8 0x3B38 +0xC2CBBCA9 0x671E +0xC2CBBCAA 0x68ED +0xC2CBBCAB 0x3B87 +0xC2CBBCAC 0x3B80 +0xC2CBBCAD 0x3B88 +0xC2CBBCAE 0x3B79 +0xC2CBBCAF 0x6903 +0xC2CBBCB0 0x3B7C +0xC2CBBCB1 0x68FE +0xC2CBBCB2 0x68E5 +0xC2CBBCB3 0x691E +0xC2CBBCB4 0x6902 +0xC2CBBCB5 0x3B83 +0xC2CBBCB6 0x3B85 +0xC2CBBCB7 0x6909 +0xC2CBBCB8 0x68CA +0xC2CBBCB9 0x6900 +0xC2CBBCBA 0x2F8E5 +0xC2CBBCBB 0x6901 +0xC2CBBCBC 0x6918 +0xC2CBBCBD 0x68E2 +0xC2CBBCBE 0x68CF +0xC2CBBCBF 0x3B7B +0xC2CBBCC0 0x692E +0xC2CBBCC1 0x68C5 +0xC2CBBCC2 0x68FF +0xC2CBBCC3 0x3B86 +0xC2CBBCC4 0x691C +0xC2CBBCC5 0x68C3 +0xC2CBBCC6 0x3C34 +0xC2CBBCC7 0x6B6F +0xC2CBBCC8 0x3C55 +0xC2CBBCC9 0x6B6E +0xC2CBBCCA 0x3C68 +0xC2CBBCCB 0x6BBE +0xC2CBBCCC 0x3C9C +0xC2CBBCCD 0x6BF4 +0xC2CBBCCE 0x6C2D +0xC2CBBCCF 0x3CFC +0xC2CBBCD0 0x6DB6 +0xC2CBBCD1 0x6E75 +0xC2CBBCD2 0x6E1E +0xC2CBBCD3 0x3D1A +0xC2CBBCD4 0x6E18 +0xC2CBBCD5 0x3D17 +0xC2CBBCD6 0x6E48 +0xC2CBBCD7 0x3D1B +0xC2CBBCD8 0x6E4F +0xC2CBBCD9 0x3D13 +0xC2CBBCDA 0x6E42 +0xC2CBBCDB 0x6E6A +0xC2CBBCDC 0x6E70 +0xC2CBBCDD 0x6DFE +0xC2CBBCDE 0x3D05 +0xC2CBBCDF 0x3D07 +0xC2CBBCE0 0x6E6D +0xC2CBBCE1 0x3D1C +0xC2CBBCE2 0x6E7B +0xC2CBBCE3 0x6E7E +0xC2CBBCE4 0x6E59 +0xC2CBBCE5 0x3D11 +0xC2CBBCE6 0x6E57 +0xC2CBBCE7 0x3D16 +0xC2CBBCE8 0x6E80 +0xC2CBBCE9 0x6E50 +0xC2CBBCEA 0x3D15 +0xC2CBBCEB 0x6E29 +0xC2CBBCEC 0x6E76 +0xC2CBBCED 0x6E2A +0xC2CBBCEE 0x6E4C +0xC2CBBCEF 0x712A +0xC2CBBCF0 0x3DCB +0xC2CBBCF1 0x7135 +0xC2CBBCF2 0x712C +0xC2CBBCF3 0x7137 +0xC2CBBCF4 0x711D +0xC2CBBCF5 0x3DC5 +0xC2CBBCF6 0x3DC2 +0xC2CBBCF7 0x7138 +0xC2CBBCF8 0x3DCD +0xC2CBBCF9 0x7134 +0xC2CBBCFA 0x712B +0xC2CBBCFB 0x7133 +0xC2CBBCFC 0x7127 +0xC2CBBCFD 0x7124 +0xC2CBBCFE 0x3DCA +0xC2CBBDA1 0x712D +0xC2CBBDA2 0x7232 +0xC2CBBDA3 0x7283 +0xC2CBBDA4 0x7282 +0xC2CBBDA5 0x7287 +0xC2CBBDA6 0x7306 +0xC2CBBDA7 0x7324 +0xC2CBBDA8 0x7338 +0xC2CBBDA9 0x732A +0xC2CBBDAA 0x732C +0xC2CBBDAB 0x732B +0xC2CBBDAC 0x3E83 +0xC2CBBDAD 0x732F +0xC2CBBDAE 0x7328 +0xC2CBBDAF 0x7417 +0xC2CBBDB0 0x3ED6 +0xC2CBBDB1 0x3ED5 +0xC2CBBDB2 0x7419 +0xC2CBBDB3 0x7438 +0xC2CBBDB4 0x3ED1 +0xC2CBBDB5 0x741F +0xC2CBBDB6 0x7414 +0xC2CBBDB7 0x743C +0xC2CBBDB8 0x73F7 +0xC2CBBDB9 0x741C +0xC2CBBDBA 0x7415 +0xC2CBBDBB 0x7418 +0xC2CBBDBC 0x7439 +0xC2CBBDBD 0x74F9 +0xC2CBBDBE 0x7524 +0xC2CBBDBF 0x2F934 +0xC2CBBDC0 0x3F52 +0xC2CBBDC1 0x3F5F +0xC2CBBDC2 0x756E +0xC2CBBDC3 0x756D +0xC2CBBDC4 0x7571 +0xC2CBBDC5 0x758E +0xC2CBBDC6 0x3F95 +0xC2CBBDC7 0x75E5 +0xC2CBBDC8 0x3F9D +0xC2CBBDC9 0x3F98 +0xC2CBBDCA 0x3F9E +0xC2CBBDCB 0x3F96 +0xC2CBBDCC 0x7694 +0xC2CBBDCD 0x76B3 +0xC2CBBDCE 0x4003 +0xC2CBBDCF 0x76D9 +0xC2CBBDD0 0x402F +0xC2CBBDD1 0x7748 +0xC2CBBDD2 0x7749 +0xC2CBBDD3 0x7743 +0xC2CBBDD4 0x4031 +0xC2CBBDD5 0x4033 +0xC2CBBDD6 0x7742 +0xC2CBBDD7 0x77DF +0xC2CBBDD8 0x40B4 +0xC2CBBDD9 0x7863 +0xC2CBBDDA 0x7876 +0xC2CBBDDB 0x40B0 +0xC2CBBDDC 0x785F +0xC2CBBDDD 0x7866 +0xC2CBBDDE 0x7966 +0xC2CBBDDF 0x7971 +0xC2CBBDE0 0x4108 +0xC2CBBDE1 0x4107 +0xC2CBBDE2 0x7976 +0xC2CBBDE3 0x7984 +0xC2CBBDE4 0x7975 +0xC2CBBDE5 0x79FF +0xC2CBBDE6 0x7A07 +0xC2CBBDE7 0x414E +0xC2CBBDE8 0x7A0E +0xC2CBBDE9 0x7A09 +0xC2CBBDEA 0x4150 +0xC2CBBDEB 0x4152 +0xC2CBBDEC 0x41A1 +0xC2CBBDED 0x41A3 +0xC2CBBDEE 0x41A5 +0xC2CBBDEF 0x41CC +0xC2CBBDF0 0x7AE7 +0xC2CBBDF1 0x7AE2 +0xC2CBBDF2 0x7B55 +0xC2CBBDF3 0x41EF +0xC2CBBDF4 0x41EA +0xC2CBBDF5 0x7B43 +0xC2CBBDF6 0x7B57 +0xC2CBBDF7 0x7B6C +0xC2CBBDF8 0x7B42 +0xC2CBBDF9 0x7B53 +0xC2CBBDFA 0x41ED +0xC2CBBDFB 0x7B41 +0xC2CBBDFC 0x4285 +0xC2CBBDFD 0x4284 +0xC2CBBDFE 0x7CA7 +0xC2CBBEA1 0x7CA0 +0xC2CBBEA2 0x7CA6 +0xC2CBBEA3 0x7CA4 +0xC2CBBEA4 0x7D74 +0xC2CBBEA5 0x42DB +0xC2CBBEA6 0x7D59 +0xC2CBBEA7 0x42D9 +0xC2CBBEA8 0x7D60 +0xC2CBBEA9 0x7D57 +0xC2CBBEAA 0x7D6C +0xC2CBBEAB 0x7D7E +0xC2CBBEAC 0x7D64 +0xC2CBBEAD 0x42D7 +0xC2CBBEAE 0x7D5A +0xC2CBBEAF 0x7D5D +0xC2CBBEB0 0x42DA +0xC2CBBEB1 0x42DE +0xC2CBBEB2 0x42D8 +0xC2CBBEB3 0x7D76 +0xC2CBBEB4 0x7D4D +0xC2CBBEB5 0x7D75 +0xC2CBBEB6 0x42D5 +0xC2CBBEB7 0x7FD3 +0xC2CBBEB8 0x7FD6 +0xC2CBBEB9 0x439C +0xC2CBBEBA 0x439D +0xC2CBBEBB 0x8060 +0xC2CBBEBC 0x804E +0xC2CBBEBD 0x8145 +0xC2CBBEBE 0x813B +0xC2CBBEBF 0x43FE +0xC2CBBEC0 0x8148 +0xC2CBBEC1 0x8142 +0xC2CBBEC2 0x8149 +0xC2CBBEC3 0x8140 +0xC2CBBEC4 0x8114 +0xC2CBBEC5 0x8141 +0xC2CBBEC6 0x4407 +0xC2CBBEC7 0x81EF +0xC2CBBEC8 0x81F6 +0xC2CBBEC9 0x8203 +0xC2CBBECA 0x446A +0xC2CBBECB 0x83ED +0xC2CBBECC 0x44E7 +0xC2CBBECD 0x83DA +0xC2CBBECE 0x8418 +0xC2CBBECF 0x83D2 +0xC2CBBED0 0x8408 +0xC2CBBED1 0x44E2 +0xC2CBBED2 0x8400 +0xC2CBBED3 0x44DF +0xC2CBBED4 0x44E1 +0xC2CBBED5 0x44E5 +0xC2CBBED6 0x8417 +0xC2CBBED7 0x8346 +0xC2CBBED8 0x8414 +0xC2CBBED9 0x83D3 +0xC2CBBEDA 0x8405 +0xC2CBBEDB 0x841F +0xC2CBBEDC 0x8402 +0xC2CBBEDD 0x8416 +0xC2CBBEDE 0x83CD +0xC2CBBEDF 0x83E6 +0xC2CBBEE0 0x4591 +0xC2CBBEE1 0x865D +0xC2CBBEE2 0x86D5 +0xC2CBBEE3 0x86E1 +0xC2CBBEE4 0x45B4 +0xC2CBBEE5 0x45B0 +0xC2CBBEE6 0x45B5 +0xC2CBBEE7 0x45AE +0xC2CBBEE8 0x86EE +0xC2CBBEE9 0x8847 +0xC2CBBEEA 0x8846 +0xC2CBBEEB 0x462D +0xC2CBBEEC 0x462C +0xC2CBBEED 0x88BB +0xC2CBBEEE 0x462B +0xC2CBBEEF 0x88BF +0xC2CBBEF0 0x88B4 +0xC2CBBEF1 0x4629 +0xC2CBBEF2 0x88B5 +0xC2CBBEF3 0x467F +0xC2CBBEF4 0x899A +0xC2CBBEF5 0x8A43 +0xC2CBBEF6 0x46C9 +0xC2CBBEF7 0x46CB +0xC2CBBEF8 0x8A5A +0xC2CBBEF9 0x46C5 +0xC2CBBEFA 0x46C6 +0xC2CBBEFB 0x46CA +0xC2CBBEFC 0x8A35 +0xC2CBBEFD 0x8A38 +0xC2CBBEFE 0x8A42 +0xC2CBBFA1 0x8A49 +0xC2CBBFA2 0x8A5D +0xC2CBBFA3 0x8A4B +0xC2CBBFA4 0x8A3D +0xC2CBBFA5 0x46D2 +0xC2CBBFA6 0x46D0 +0xC2CBBFA7 0x472D +0xC2CBBFA8 0x4735 +0xC2CBBFA9 0x8C60 +0xC2CBBFAA 0x8C5E +0xC2CBBFAB 0x8C7F +0xC2CBBFAC 0x8C7E +0xC2CBBFAD 0x8C83 +0xC2CBBFAE 0x476C +0xC2CBBFAF 0x8CB1 +0xC2CBBFB0 0x8D87 +0xC2CBBFB1 0x479D +0xC2CBBFB2 0x47A0 +0xC2CBBFB3 0x8D88 +0xC2CBBFB4 0x8D83 +0xC2CBBFB5 0x47A2 +0xC2CBBFB6 0x479F +0xC2CBBFB7 0x8D86 +0xC2CBBFB8 0x8D8B +0xC2CBBFB9 0x8D82 +0xC2CBBFBA 0x8DCA +0xC2CBBFBB 0x8DD2 +0xC2CBBFBC 0x47EB +0xC2CBBFBD 0x47E2 +0xC2CBBFBE 0x8DD4 +0xC2CBBFBF 0x8DC9 +0xC2CBBFC0 0x8EB0 +0xC2CBBFC1 0x4836 +0xC2CBBFC2 0x4832 +0xC2CBBFC3 0x4850 +0xC2CBBFC4 0x8EF2 +0xC2CBBFC5 0x8EE4 +0xC2CBBFC6 0x8EF3 +0xC2CBBFC7 0x8EEA +0xC2CBBFC8 0x484F +0xC2CBBFC9 0x8EFD +0xC2CBBFCA 0x4852 +0xC2CBBFCB 0x8F9D +0xC2CBBFCC 0x902B +0xC2CBBFCD 0x902A +0xC2CBBFCE 0x489E +0xC2CBBFCF 0x9028 +0xC2CBBFD0 0x9029 +0xC2CBBFD1 0x902C +0xC2CBBFD2 0x48A0 +0xC2CBBFD3 0x489C +0xC2CBBFD4 0x903A +0xC2CBBFD5 0x9030 +0xC2CBBFD6 0x9037 +0xC2CBBFD7 0x903B +0xC2CBBFD8 0x48D1 +0xC2CBBFD9 0x910A +0xC2CBBFDA 0x48EF +0xC2CBBFDB 0x48F0 +0xC2CBBFDC 0x48F1 +0xC2CBBFDD 0x91FE +0xC2CBBFDE 0x9220 +0xC2CBBFDF 0x491D +0xC2CBBFE0 0x920B +0xC2CBBFE1 0x491F +0xC2CBBFE2 0x9218 +0xC2CBBFE3 0x9222 +0xC2CBBFE4 0x491E +0xC2CBBFE5 0x921B +0xC2CBBFE6 0x9208 +0xC2CBBFE7 0x4920 +0xC2CBBFE8 0x920E +0xC2CBBFE9 0x9213 +0xC2CBBFEA 0x498E +0xC2CBBFEB 0x4991 +0xC2CBBFEC 0x9595 +0xC2CBBFED 0x28CDD +0xC2CBBFEE 0x4990 +0xC2CBBFEF 0x49D7 +0xC2CBBFF0 0x968C +0xC2CBBFF1 0x967B +0xC2CBBFF2 0x967F +0xC2CBBFF3 0x9681 +0xC2CBBFF4 0x49D9 +0xC2CBBFF5 0x9682 +0xC2CBBFF6 0x49F4 +0xC2CBBFF7 0x49F6 +0xC2CBBFF8 0x3560 +0xC2CBBFF9 0x49F5 +0xC2CBBFFA 0x49F3 +0xC2CBBFFB 0x96EE +0xC2CBBFFC 0x96ED +0xC2CBBFFD 0x4A0C +0xC2CBBFFE 0x96EC +0xC2CBC0A1 0x975F +0xC2CBC0A2 0x976F +0xC2CBC0A3 0x4A51 +0xC2CBC0A4 0x976D +0xC2CBC0A5 0x4AA6 +0xC2CBC0A6 0x4AA7 +0xC2CBC0A7 0x4AA8 +0xC2CBC0A8 0x4B27 +0xC2CBC0A9 0x4B24 +0xC2CBC0AA 0x4B25 +0xC2CBC0AB 0x98F0 +0xC2CBC0AC 0x4B2A +0xC2CBC0AD 0x4B74 +0xC2CBC0AE 0x4BC7 +0xC2CBC0AF 0x9AA9 +0xC2CBC0B0 0x4BE7 +0xC2CBC0B1 0x4BED +0xC2CBC0B2 0x9AE0 +0xC2CBC0B3 0x4EB7 +0xC2CBC0B4 0x342E +0xC2CBC0B5 0x347B +0xC2CBC0B6 0x50CC +0xC2CBC0B7 0x50BC +0xC2CBC0B8 0x347C +0xC2CBC0B9 0x50AA +0xC2CBC0BA 0x50B9 +0xC2CBC0BB 0x347D +0xC2CBC0BC 0x50AB +0xC2CBC0BD 0x50C3 +0xC2CBC0BE 0x50CD +0xC2CBC0BF 0x517E +0xC2CBC0C0 0x527E +0xC2CBC0C1 0x5279 +0xC2CBC0C2 0x34FD +0xC2CBC0C3 0x2F823 +0xC2CBC0C4 0x52E1 +0xC2CBC0C5 0x52E0 +0xC2CBC0C6 0x52E7 +0xC2CBC0C7 0x5380 +0xC2CBC0C8 0x53AB +0xC2CBC0C9 0x53AA +0xC2CBC0CA 0x53A9 +0xC2CBC0CB 0x53E0 +0xC2CBC0CC 0x55EA +0xC2CBC0CD 0x35DA +0xC2CBC0CE 0x55D7 +0xC2CBC0CF 0x35D6 +0xC2CBC0D0 0x35DB +0xC2CBC0D1 0x55C1 +0xC2CBC0D2 0x5715 +0xC2CBC0D3 0x365B +0xC2CBC0D4 0x586C +0xC2CBC0D5 0x365C +0xC2CBC0D6 0x585C +0xC2CBC0D7 0x5850 +0xC2CBC0D8 0x5861 +0xC2CBC0D9 0x586A +0xC2CBC0DA 0x5869 +0xC2CBC0DB 0x5856 +0xC2CBC0DC 0x5860 +0xC2CBC0DD 0x5866 +0xC2CBC0DE 0x585F +0xC2CBC0DF 0x5923 +0xC2CBC0E0 0x5966 +0xC2CBC0E1 0x5968 +0xC2CBC0E2 0x3706 +0xC2CBC0E3 0x370B +0xC2CBC0E4 0x5ACE +0xC2CBC0E5 0x370D +0xC2CBC0E6 0x5AC5 +0xC2CBC0E7 0x5AC3 +0xC2CBC0E8 0x370A +0xC2CBC0E9 0x3713 +0xC2CBC0EA 0x5AD0 +0xC2CBC0EB 0x3710 +0xC2CBC0EC 0x3712 +0xC2CBC0ED 0x3709 +0xC2CBC0EE 0x3708 +0xC2CBC0EF 0x3711 +0xC2CBC0F0 0x370F +0xC2CBC0F1 0x5B74 +0xC2CBC0F2 0x5B76 +0xC2CBC0F3 0x5BDC +0xC2CBC0F4 0x5BD7 +0xC2CBC0F5 0x5BDA +0xC2CBC0F6 0x5BDB +0xC2CBC0F7 0x3767 +0xC2CBC0F8 0x5C20 +0xC2CBC0F9 0x5D6D +0xC2CBC0FA 0x5D66 +0xC2CBC0FB 0x37F6 +0xC2CBC0FC 0x5D64 +0xC2CBC0FD 0x5D6E +0xC2CBC0FE 0x2F87E +0xC2CBC1A1 0x5D60 +0xC2CBC1A2 0x5F42 +0xC2CBC1A3 0x5F5A +0xC2CBC1A4 0x5F6E +0xC2CBC1A5 0x3964 +0xC2CBC1A6 0x396C +0xC2CBC1A7 0x6130 +0xC2CBC1A8 0x613A +0xC2CBC1A9 0x612A +0xC2CBC1AA 0x6143 +0xC2CBC1AB 0x6119 +0xC2CBC1AC 0x6131 +0xC2CBC1AD 0x396D +0xC2CBC1AE 0x613D +0xC2CBC1AF 0x397A +0xC2CBC1B0 0x3975 +0xC2CBC1B1 0x3A0D +0xC2CBC1B2 0x6408 +0xC2CBC1B3 0x6432 +0xC2CBC1B4 0x6438 +0xC2CBC1B5 0x3A1E +0xC2CBC1B6 0x6431 +0xC2CBC1B7 0x3A1B +0xC2CBC1B8 0x6419 +0xC2CBC1B9 0x3A2A +0xC2CBC1BA 0x6411 +0xC2CBC1BB 0x3A1F +0xC2CBC1BC 0x3A22 +0xC2CBC1BD 0x6429 +0xC2CBC1BE 0x641D +0xC2CBC1BF 0x3A25 +0xC2CBC1C0 0x3A27 +0xC2CBC1C1 0x3A29 +0xC2CBC1C2 0x643C +0xC2CBC1C3 0x3A24 +0xC2CBC1C4 0x6446 +0xC2CBC1C5 0x6447 +0xC2CBC1C6 0x3A28 +0xC2CBC1C7 0x3A26 +0xC2CBC1C8 0x643A +0xC2CBC1C9 0x6407 +0xC2CBC1CA 0x3A23 +0xC2CBC1CB 0x656B +0xC2CBC1CC 0x3A9F +0xC2CBC1CD 0x6570 +0xC2CBC1CE 0x656D +0xC2CBC1CF 0x3AB1 +0xC2CBC1D0 0x65E4 +0xC2CBC1D1 0x6693 +0xC2CBC1D2 0x3B03 +0xC2CBC1D3 0x3B07 +0xC2CBC1D4 0x3B0C +0xC2CBC1D5 0x3B06 +0xC2CBC1D6 0x668F +0xC2CBC1D7 0x3B04 +0xC2CBC1D8 0x3B09 +0xC2CBC1D9 0x6692 +0xC2CBC1DA 0x3B05 +0xC2CBC1DB 0x668E +0xC2CBC1DC 0x3B08 +0xC2CBC1DD 0x6946 +0xC2CBC1DE 0x3B96 +0xC2CBC1DF 0x3B9C +0xC2CBC1E0 0x3B9F +0xC2CBC1E1 0x3B9B +0xC2CBC1E2 0x3B98 +0xC2CBC1E3 0x3B99 +0xC2CBC1E4 0x3B94 +0xC2CBC1E5 0x6931 +0xC2CBC1E6 0x3B8D +0xC2CBC1E7 0x3BA3 +0xC2CBC1E8 0x693E +0xC2CBC1E9 0x3B93 +0xC2CBC1EA 0x697C +0xC2CBC1EB 0x6943 +0xC2CBC1EC 0x3B92 +0xC2CBC1ED 0x6973 +0xC2CBC1EE 0x2F8E8 +0xC2CBC1EF 0x6955 +0xC2CBC1F0 0x3B8E +0xC2CBC1F1 0x3B8C +0xC2CBC1F2 0x6985 +0xC2CBC1F3 0x694D +0xC2CBC1F4 0x6950 +0xC2CBC1F5 0x6947 +0xC2CBC1F6 0x6967 +0xC2CBC1F7 0x6936 +0xC2CBC1F8 0x6964 +0xC2CBC1F9 0x6961 +0xC2CBC1FA 0x3B9A +0xC2CBC1FB 0x697D +0xC2CBC1FC 0x6B44 +0xC2CBC1FD 0x6B40 +0xC2CBC1FE 0x6B71 +0xC2CBC2A1 0x6B73 +0xC2CBC2A2 0x6B9C +0xC2CBC2A3 0x3C6A +0xC2CBC2A4 0x3C6D +0xC2CBC2A5 0x3C84 +0xC2CBC2A6 0x6BC1 +0xC2CBC2A7 0x3CA0 +0xC2CBC2A8 0x6BFA +0xC2CBC2A9 0x6C31 +0xC2CBC2AA 0x6C32 +0xC2CBC2AB 0x3D1D +0xC2CBC2AC 0x3D26 +0xC2CBC2AD 0x6EB8 +0xC2CBC2AE 0x6EA8 +0xC2CBC2AF 0x3D33 +0xC2CBC2B0 0x6E91 +0xC2CBC2B1 0x6EBB +0xC2CBC2B2 0x3D38 +0xC2CBC2B3 0x6E9A +0xC2CBC2B4 0x3D30 +0xC2CBC2B5 0x3D28 +0xC2CBC2B6 0x6EA9 +0xC2CBC2B7 0x3D27 +0xC2CBC2B8 0x3D2A +0xC2CBC2B9 0x6EB5 +0xC2CBC2BA 0x6E6C +0xC2CBC2BB 0x6EE8 +0xC2CBC2BC 0x3D31 +0xC2CBC2BD 0x6EDD +0xC2CBC2BE 0x6EDA +0xC2CBC2BF 0x6EE6 +0xC2CBC2C0 0x6EAC +0xC2CBC2C1 0x3D34 +0xC2CBC2C2 0x3D2E +0xC2CBC2C3 0x3D3B +0xC2CBC2C4 0x6ED9 +0xC2CBC2C5 0x6EE3 +0xC2CBC2C6 0x6EE9 +0xC2CBC2C7 0x6EDB +0xC2CBC2C8 0x3D29 +0xC2CBC2C9 0x716F +0xC2CBC2CA 0x3DD2 +0xC2CBC2CB 0x3DD8 +0xC2CBC2CC 0x7148 +0xC2CBC2CD 0x3DCF +0xC2CBC2CE 0x714A +0xC2CBC2CF 0x716B +0xC2CBC2D0 0x3DD9 +0xC2CBC2D1 0x714F +0xC2CBC2D2 0x7157 +0xC2CBC2D3 0x7174 +0xC2CBC2D4 0x3DCE +0xC2CBC2D5 0x3DD3 +0xC2CBC2D6 0x3DD0 +0xC2CBC2D7 0x7145 +0xC2CBC2D8 0x7151 +0xC2CBC2D9 0x716D +0xC2CBC2DA 0x3BA1 +0xC2CBC2DB 0x7251 +0xC2CBC2DC 0x7250 +0xC2CBC2DD 0x724E +0xC2CBC2DE 0x3E47 +0xC2CBC2DF 0x7341 +0xC2CBC2E0 0x3E8B +0xC2CBC2E1 0x732E +0xC2CBC2E2 0x7346 +0xC2CBC2E3 0x3ED4 +0xC2CBC2E4 0x7427 +0xC2CBC2E5 0x3EDE +0xC2CBC2E6 0x7448 +0xC2CBC2E7 0x7453 +0xC2CBC2E8 0x743D +0xC2CBC2E9 0x3EDF +0xC2CBC2EA 0x745D +0xC2CBC2EB 0x7456 +0xC2CBC2EC 0x3ED7 +0xC2CBC2ED 0x741E +0xC2CBC2EE 0x7447 +0xC2CBC2EF 0x7443 +0xC2CBC2F0 0x7458 +0xC2CBC2F1 0x7449 +0xC2CBC2F2 0x3EE1 +0xC2CBC2F3 0x744C +0xC2CBC2F4 0x7445 +0xC2CBC2F5 0x743E +0xC2CBC2F6 0x3F2F +0xC2CBC2F7 0x7501 +0xC2CBC2F8 0x751E +0xC2CBC2F9 0x3F62 +0xC2CBC2FA 0x3F63 +0xC2CBC2FB 0x757A +0xC2CBC2FC 0x75EE +0xC2CBC2FD 0x7602 +0xC2CBC2FE 0x7697 +0xC2CBC3A1 0x7698 +0xC2CBC3A2 0x3FE2 +0xC2CBC3A3 0x4004 +0xC2CBC3A4 0x4043 +0xC2CBC3A5 0x775D +0xC2CBC3A6 0x7764 +0xC2CBC3A7 0x7753 +0xC2CBC3A8 0x7758 +0xC2CBC3A9 0x7882 +0xC2CBC3AA 0x7890 +0xC2CBC3AB 0x788A +0xC2CBC3AC 0x40BE +0xC2CBC3AD 0x787A +0xC2CBC3AE 0x787D +0xC2CBC3AF 0x40BA +0xC2CBC3B0 0x788B +0xC2CBC3B1 0x7878 +0xC2CBC3B2 0x40BC +0xC2CBC3B3 0x2F94E +0xC2CBC3B4 0x788D +0xC2CBC3B5 0x7888 +0xC2CBC3B6 0x7892 +0xC2CBC3B7 0x7881 +0xC2CBC3B8 0x797E +0xC2CBC3B9 0x7983 +0xC2CBC3BA 0x410D +0xC2CBC3BB 0x410E +0xC2CBC3BC 0x4111 +0xC2CBC3BD 0x7980 +0xC2CBC3BE 0x410F +0xC2CBC3BF 0x4112 +0xC2CBC3C0 0x4155 +0xC2CBC3C1 0x7A0F +0xC2CBC3C2 0x4159 +0xC2CBC3C3 0x415B +0xC2CBC3C4 0x7A1D +0xC2CBC3C5 0x4157 +0xC2CBC3C6 0x7AA1 +0xC2CBC3C7 0x7AA4 +0xC2CBC3C8 0x41CE +0xC2CBC3C9 0x7AE9 +0xC2CBC3CA 0x7AEA +0xC2CBC3CB 0x41FE +0xC2CBC3CC 0x7B62 +0xC2CBC3CD 0x7B6B +0xC2CBC3CE 0x41FC +0xC2CBC3CF 0x7B5E +0xC2CBC3D0 0x41F5 +0xC2CBC3D1 0x7B79 +0xC2CBC3D2 0x41F9 +0xC2CBC3D3 0x41FA +0xC2CBC3D4 0x7B6F +0xC2CBC3D5 0x7B68 +0xC2CBC3D6 0x4288 +0xC2CBC3D7 0x4289 +0xC2CBC3D8 0x7CAE +0xC2CBC3D9 0x428A +0xC2CBC3DA 0x4287 +0xC2CBC3DB 0x428B +0xC2CBC3DC 0x7CB0 +0xC2CBC3DD 0x42E6 +0xC2CBC3DE 0x7D90 +0xC2CBC3DF 0x42ED +0xC2CBC3E0 0x7D8A +0xC2CBC3E1 0x42E5 +0xC2CBC3E2 0x7D8B +0xC2CBC3E3 0x7D99 +0xC2CBC3E4 0x7D95 +0xC2CBC3E5 0x42E0 +0xC2CBC3E6 0x7D87 +0xC2CBC3E7 0x7D78 +0xC2CBC3E8 0x7D97 +0xC2CBC3E9 0x7D89 +0xC2CBC3EA 0x7D98 +0xC2CBC3EB 0x42E1 +0xC2CBC3EC 0x435B +0xC2CBC3ED 0x435C +0xC2CBC3EE 0x7FA3 +0xC2CBC3EF 0x438F +0xC2CBC3F0 0x438B +0xC2CBC3F1 0x438D +0xC2CBC3F2 0x7FDD +0xC2CBC3F3 0x8057 +0xC2CBC3F4 0x43B9 +0xC2CBC3F5 0x8163 +0xC2CBC3F6 0x816A +0xC2CBC3F7 0x816C +0xC2CBC3F8 0x440F +0xC2CBC3F9 0x4419 +0xC2CBC3FA 0x4413 +0xC2CBC3FB 0x815D +0xC2CBC3FC 0x8175 +0xC2CBC3FD 0x4418 +0xC2CBC3FE 0x815F +0xC2CBC4A1 0x4416 +0xC2CBC4A2 0x817D +0xC2CBC4A3 0x816D +0xC2CBC4A4 0x4453 +0xC2CBC4A5 0x2F98D +0xC2CBC4A6 0x8241 +0xC2CBC4A7 0x844F +0xC2CBC4A8 0x8484 +0xC2CBC4A9 0x44F6 +0xC2CBC4AA 0x847F +0xC2CBC4AB 0x44F5 +0xC2CBC4AC 0x8448 +0xC2CBC4AD 0x842A +0xC2CBC4AE 0x847B +0xC2CBC4AF 0x8472 +0xC2CBC4B0 0x8464 +0xC2CBC4B1 0x842E +0xC2CBC4B2 0x845C +0xC2CBC4B3 0x8453 +0xC2CBC4B4 0x44F7 +0xC2CBC4B5 0x8441 +0xC2CBC4B6 0x84C8 +0xC2CBC4B7 0x44F0 +0xC2CBC4B8 0x8462 +0xC2CBC4B9 0x8480 +0xC2CBC4BA 0x843E +0xC2CBC4BB 0x8483 +0xC2CBC4BC 0x8471 +0xC2CBC4BD 0x44F9 +0xC2CBC4BE 0x844A +0xC2CBC4BF 0x8455 +0xC2CBC4C0 0x8458 +0xC2CBC4C1 0x4592 +0xC2CBC4C2 0x4595 +0xC2CBC4C3 0x4596 +0xC2CBC4C4 0x86FC +0xC2CBC4C5 0x86FD +0xC2CBC4C6 0x8715 +0xC2CBC4C7 0x45B9 +0xC2CBC4C8 0x8716 +0xC2CBC4C9 0x86FF +0xC2CBC4CA 0x45BD +0xC2CBC4CB 0x45B8 +0xC2CBC4CC 0x4612 +0xC2CBC4CD 0x8858 +0xC2CBC4CE 0x88CF +0xC2CBC4CF 0x88E0 +0xC2CBC4D0 0x4680 +0xC2CBC4D1 0x4681 +0xC2CBC4D2 0x469A +0xC2CBC4D3 0x4698 +0xC2CBC4D4 0x89E7 +0xC2CBC4D5 0x8A6A +0xC2CBC4D6 0x8A80 +0xC2CBC4D7 0x46D4 +0xC2CBC4D8 0x8A6F +0xC2CBC4D9 0x8A65 +0xC2CBC4DA 0x46DA +0xC2CBC4DB 0x8A78 +0xC2CBC4DC 0x8A7D +0xC2CBC4DD 0x8A88 +0xC2CBC4DE 0x46D6 +0xC2CBC4DF 0x46DB +0xC2CBC4E0 0x8A64 +0xC2CBC4E1 0x8A7E +0xC2CBC4E2 0x46DC +0xC2CBC4E3 0x8A67 +0xC2CBC4E4 0x8C63 +0xC2CBC4E5 0x8C88 +0xC2CBC4E6 0x4771 +0xC2CBC4E7 0x8CCD +0xC2CBC4E8 0x4772 +0xC2CBC4E9 0x8CC9 +0xC2CBC4EA 0x47A8 +0xC2CBC4EB 0x8DED +0xC2CBC4EC 0x47F0 +0xC2CBC4ED 0x2F9DB +0xC2CBC4EE 0x47F1 +0xC2CBC4EF 0x47FD +0xC2CBC4F0 0x4838 +0xC2CBC4F1 0x4837 +0xC2CBC4F2 0x4839 +0xC2CBC4F3 0x8EB1 +0xC2CBC4F4 0x4855 +0xC2CBC4F5 0x4853 +0xC2CBC4F6 0x8F04 +0xC2CBC4F7 0x8F9E +0xC2CBC4F8 0x8FA0 +0xC2CBC4F9 0x9043 +0xC2CBC4FA 0x9046 +0xC2CBC4FB 0x9048 +0xC2CBC4FC 0x9045 +0xC2CBC4FD 0x9040 +0xC2CBC4FE 0x904C +0xC2CBC5A1 0x48D5 +0xC2CBC5A2 0x48BD +0xC2CBC5A3 0x910C +0xC2CBC5A4 0x9113 +0xC2CBC5A5 0x9115 +0xC2CBC5A6 0x48F5 +0xC2CBC5A7 0x916B +0xC2CBC5A8 0x9167 +0xC2CBC5A9 0x925D +0xC2CBC5AA 0x9255 +0xC2CBC5AB 0x9235 +0xC2CBC5AC 0x4921 +0xC2CBC5AD 0x9259 +0xC2CBC5AE 0x922F +0xC2CBC5AF 0x923C +0xC2CBC5B0 0x928F +0xC2CBC5B1 0x925C +0xC2CBC5B2 0x926A +0xC2CBC5B3 0x9262 +0xC2CBC5B4 0x925F +0xC2CBC5B5 0x926B +0xC2CBC5B6 0x926E +0xC2CBC5B7 0x923B +0xC2CBC5B8 0x9244 +0xC2CBC5B9 0x9241 +0xC2CBC5BA 0x959A +0xC2CBC5BB 0x4992 +0xC2CBC5BC 0x9599 +0xC2CBC5BD 0x49DE +0xC2CBC5BE 0x49DB +0xC2CBC5BF 0x49DA +0xC2CBC5C0 0x968F +0xC2CBC5C1 0x49DF +0xC2CBC5C2 0x9696 +0xC2CBC5C3 0x49F9 +0xC2CBC5C4 0x49F8 +0xC2CBC5C5 0x49FA +0xC2CBC5C6 0x96F4 +0xC2CBC5C7 0x96FC +0xC2CBC5C8 0x4A0E +0xC2CBC5C9 0x9755 +0xC2CBC5CA 0x4A43 +0xC2CBC5CB 0x9779 +0xC2CBC5CC 0x4A56 +0xC2CBC5CD 0x4A53 +0xC2CBC5CE 0x4A9E +0xC2CBC5CF 0x97EE +0xC2CBC5D0 0x97F5 +0xC2CBC5D1 0x4AA9 +0xC2CBC5D2 0x980B +0xC2CBC5D3 0x4AFA +0xC2CBC5D4 0x98F3 +0xC2CBC5D5 0x4B31 +0xC2CBC5D6 0x4B30 +0xC2CBC5D7 0x98F7 +0xC2CBC5D8 0x98FF +0xC2CBC5D9 0x98F5 +0xC2CBC5DA 0x4B32 +0xC2CBC5DB 0x98EC +0xC2CBC5DC 0x98F1 +0xC2CBC5DD 0x4B29 +0xC2CBC5DE 0x4B2E +0xC2CBC5DF 0x999A +0xC2CBC5E0 0x4B76 +0xC2CBC5E1 0x9AE2 +0xC2CBC5E2 0x9B3D +0xC2CBC5E3 0x9B5D +0xC2CBC5E4 0x9CE8 +0xC2CBC5E5 0x4CA5 +0xC2CBC5E6 0x9CEB +0xC2CBC5E7 0x9CEF +0xC2CBC5E8 0x9CEE +0xC2CBC5E9 0x9E81 +0xC2CBC5EA 0x9F14 +0xC2CBC5EB 0x50D0 +0xC2CBC5EC 0x50D9 +0xC2CBC5ED 0x50DC +0xC2CBC5EE 0x50D8 +0xC2CBC5EF 0x348C +0xC2CBC5F0 0x50E1 +0xC2CBC5F1 0x50EB +0xC2CBC5F2 0x348B +0xC2CBC5F3 0x3489 +0xC2CBC5F4 0x50F4 +0xC2CBC5F5 0x50E2 +0xC2CBC5F6 0x50DE +0xC2CBC5F7 0x348D +0xC2CBC5F8 0x3486 +0xC2CBC5F9 0x34D7 +0xC2CBC5FA 0x51F4 +0xC2CBC5FB 0x3504 +0xC2CBC5FC 0x3507 +0xC2CBC5FD 0x3503 +0xC2CBC5FE 0x52ED +0xC2CBC6A1 0x52EA +0xC2CBC6A2 0x3522 +0xC2CBC6A3 0x5332 +0xC2CBC6A4 0x3551 +0xC2CBC6A5 0x53AE +0xC2CBC6A6 0x53B0 +0xC2CBC6A7 0x3561 +0xC2CBC6A8 0x55FB +0xC2CBC6A9 0x5603 +0xC2CBC6AA 0x560B +0xC2CBC6AB 0x35E9 +0xC2CBC6AC 0x5607 +0xC2CBC6AD 0x35E5 +0xC2CBC6AE 0x55F8 +0xC2CBC6AF 0x35E4 +0xC2CBC6B0 0x5628 +0xC2CBC6B1 0x561E +0xC2CBC6B2 0x35E3 +0xC2CBC6B3 0x5618 +0xC2CBC6B4 0x5611 +0xC2CBC6B5 0x5651 +0xC2CBC6B6 0x5605 +0xC2CBC6B7 0x5717 +0xC2CBC6B8 0x5892 +0xC2CBC6B9 0x3665 +0xC2CBC6BA 0x588C +0xC2CBC6BB 0x3663 +0xC2CBC6BC 0x5878 +0xC2CBC6BD 0x5884 +0xC2CBC6BE 0x5873 +0xC2CBC6BF 0x58AD +0xC2CBC6C0 0x5897 +0xC2CBC6C1 0x5895 +0xC2CBC6C2 0x5877 +0xC2CBC6C3 0x5872 +0xC2CBC6C4 0x5896 +0xC2CBC6C5 0x588D +0xC2CBC6C6 0x5910 +0xC2CBC6C7 0x368C +0xC2CBC6C8 0x596C +0xC2CBC6C9 0x371A +0xC2CBC6CA 0x5AE7 +0xC2CBC6CB 0x3715 +0xC2CBC6CC 0x5AE4 +0xC2CBC6CD 0x3720 +0xC2CBC6CE 0x3721 +0xC2CBC6CF 0x5AEF +0xC2CBC6D0 0x5626 +0xC2CBC6D1 0x371C +0xC2CBC6D2 0x371B +0xC2CBC6D3 0x5AF0 +0xC2CBC6D4 0x5D7B +0xC2CBC6D5 0x37FE +0xC2CBC6D6 0x5D83 +0xC2CBC6D7 0x3804 +0xC2CBC6D8 0x3801 +0xC2CBC6D9 0x5D8B +0xC2CBC6DA 0x5D8C +0xC2CBC6DB 0x3800 +0xC2CBC6DC 0x5D78 +0xC2CBC6DD 0x5E52 +0xC2CBC6DE 0x386D +0xC2CBC6DF 0x3893 +0xC2CBC6E0 0x5ED0 +0xC2CBC6E1 0x5ECF +0xC2CBC6E2 0x38A1 +0xC2CBC6E3 0x5FB3 +0xC2CBC6E4 0x5FB4 +0xC2CBC6E5 0x3976 +0xC2CBC6E6 0x3979 +0xC2CBC6E7 0x3972 +0xC2CBC6E8 0x617B +0xC2CBC6E9 0x3983 +0xC2CBC6EA 0x616F +0xC2CBC6EB 0x6181 +0xC2CBC6EC 0x613C +0xC2CBC6ED 0x6142 +0xC2CBC6EE 0x6138 +0xC2CBC6EF 0x6133 +0xC2CBC6F0 0x2F8A6 +0xC2CBC6F1 0x6160 +0xC2CBC6F2 0x6169 +0xC2CBC6F3 0x617D +0xC2CBC6F4 0x6186 +0xC2CBC6F5 0x622C +0xC2CBC6F6 0x6228 +0xC2CBC6F7 0x3A38 +0xC2CBC6F8 0x644C +0xC2CBC6F9 0x3A30 +0xC2CBC6FA 0x6457 +0xC2CBC6FB 0x647C +0xC2CBC6FC 0x3A34 +0xC2CBC6FD 0x3A3A +0xC2CBC6FE 0x6455 +0xC2CBC7A1 0x6462 +0xC2CBC7A2 0x6471 +0xC2CBC7A3 0x646A +0xC2CBC7A4 0x6456 +0xC2CBC7A5 0x643B +0xC2CBC7A6 0x6481 +0xC2CBC7A7 0x3A35 +0xC2CBC7A8 0x644F +0xC2CBC7A9 0x647E +0xC2CBC7AA 0x6464 +0xC2CBC7AB 0x3A3F +0xC2CBC7AC 0x3A40 +0xC2CBC7AD 0x3A32 +0xC2CBC7AE 0x3A31 +0xC2CBC7AF 0x3A36 +0xC2CBC7B0 0x6571 +0xC2CBC7B1 0x230BA +0xC2CBC7B2 0x3B0F +0xC2CBC7B3 0x66A5 +0xC2CBC7B4 0x669A +0xC2CBC7B5 0x669C +0xC2CBC7B6 0x3B10 +0xC2CBC7B7 0x66A6 +0xC2CBC7B8 0x3B0D +0xC2CBC7B9 0x66A4 +0xC2CBC7BA 0x698F +0xC2CBC7BB 0x69C5 +0xC2CBC7BC 0x69C8 +0xC2CBC7BD 0x6992 +0xC2CBC7BE 0x69B2 +0xC2CBC7BF 0x3BA9 +0xC2CBC7C0 0x3BB4 +0xC2CBC7C1 0x3BAC +0xC2CBC7C2 0x69E3 +0xC2CBC7C3 0x69C0 +0xC2CBC7C4 0x69D6 +0xC2CBC7C5 0x69D1 +0xC2CBC7C6 0x699F +0xC2CBC7C7 0x69A2 +0xC2CBC7C8 0x69D2 +0xC2CBC7C9 0x3BB8 +0xC2CBC7CA 0x3BAE +0xC2CBC7CB 0x235F3 +0xC2CBC7CC 0x69E1 +0xC2CBC7CD 0x69D5 +0xC2CBC7CE 0x699D +0xC2CBC7CF 0x3BB3 +0xC2CBC7D0 0x3BBA +0xC2CBC7D1 0x6998 +0xC2CBC7D2 0x3C3F +0xC2CBC7D3 0x6B74 +0xC2CBC7D4 0x6BA1 +0xC2CBC7D5 0x3D3C +0xC2CBC7D6 0x6EF0 +0xC2CBC7D7 0x6EF3 +0xC2CBC7D8 0x3D42 +0xC2CBC7D9 0x3D40 +0xC2CBC7DA 0x6F1B +0xC2CBC7DB 0x6F0C +0xC2CBC7DC 0x6F1D +0xC2CBC7DD 0x6F34 +0xC2CBC7DE 0x6F28 +0xC2CBC7DF 0x6F17 +0xC2CBC7E0 0x3D3E +0xC2CBC7E1 0x6F44 +0xC2CBC7E2 0x6F42 +0xC2CBC7E3 0x6F04 +0xC2CBC7E4 0x6F11 +0xC2CBC7E5 0x6EFA +0xC2CBC7E6 0x6F4A +0xC2CBC7E7 0x7191 +0xC2CBC7E8 0x718E +0xC2CBC7E9 0x3DE1 +0xC2CBC7EA 0x718B +0xC2CBC7EB 0x718D +0xC2CBC7EC 0x717F +0xC2CBC7ED 0x718C +0xC2CBC7EE 0x717E +0xC2CBC7EF 0x717C +0xC2CBC7F0 0x7183 +0xC2CBC7F1 0x3DE6 +0xC2CBC7F2 0x7188 +0xC2CBC7F3 0x3DE0 +0xC2CBC7F4 0x3E15 +0xC2CBC7F5 0x7294 +0xC2CBC7F6 0x3E93 +0xC2CBC7F7 0x7355 +0xC2CBC7F8 0x7353 +0xC2CBC7F9 0x734F +0xC2CBC7FA 0x7354 +0xC2CBC7FB 0x746C +0xC2CBC7FC 0x7465 +0xC2CBC7FD 0x7466 +0xC2CBC7FE 0x7461 +0xC2CBC8A1 0x746B +0xC2CBC8A2 0x7468 +0xC2CBC8A3 0x7476 +0xC2CBC8A4 0x3EE7 +0xC2CBC8A5 0x7460 +0xC2CBC8A6 0x24A0F +0xC2CBC8A7 0x7474 +0xC2CBC8A8 0x7506 +0xC2CBC8A9 0x760E +0xC2CBC8AA 0x3FAD +0xC2CBC8AB 0x7607 +0xC2CBC8AC 0x3FAE +0xC2CBC8AD 0x3FE3 +0xC2CBC8AE 0x76B9 +0xC2CBC8AF 0x3FF5 +0xC2CBC8B0 0x76B7 +0xC2CBC8B1 0x76E2 +0xC2CBC8B2 0x4006 +0xC2CBC8B3 0x7774 +0xC2CBC8B4 0x7777 +0xC2CBC8B5 0x7776 +0xC2CBC8B6 0x7775 +0xC2CBC8B7 0x404F +0xC2CBC8B8 0x7778 +0xC2CBC8B9 0x7771 +0xC2CBC8BA 0x4054 +0xC2CBC8BB 0x777A +0xC2CBC8BC 0x715B +0xC2CBC8BD 0x777B +0xC2CBC8BE 0x78A6 +0xC2CBC8BF 0x78AE +0xC2CBC8C0 0x78B8 +0xC2CBC8C1 0x40CB +0xC2CBC8C2 0x40E3 +0xC2CBC8C3 0x40C9 +0xC2CBC8C4 0x78B1 +0xC2CBC8C5 0x78AF +0xC2CBC8C6 0x4113 +0xC2CBC8C7 0x7989 +0xC2CBC8C8 0x7987 +0xC2CBC8C9 0x4115 +0xC2CBC8CA 0x4161 +0xC2CBC8CB 0x7A29 +0xC2CBC8CC 0x4166 +0xC2CBC8CD 0x7A2A +0xC2CBC8CE 0x4164 +0xC2CBC8CF 0x7A2D +0xC2CBC8D0 0x7A2C +0xC2CBC8D1 0x4160 +0xC2CBC8D2 0x7A32 +0xC2CBC8D3 0x4163 +0xC2CBC8D4 0x7AEC +0xC2CBC8D5 0x7AF0 +0xC2CBC8D6 0x7B81 +0xC2CBC8D7 0x7B9E +0xC2CBC8D8 0x7B83 +0xC2CBC8D9 0x420A +0xC2CBC8DA 0x7B92 +0xC2CBC8DB 0x4204 +0xC2CBC8DC 0x7BA3 +0xC2CBC8DD 0x7B9F +0xC2CBC8DE 0x7B93 +0xC2CBC8DF 0x4207 +0xC2CBC8E0 0x7B86 +0xC2CBC8E1 0x7CB8 +0xC2CBC8E2 0x7CB7 +0xC2CBC8E3 0x428D +0xC2CBC8E4 0x428F +0xC2CBC8E5 0x4290 +0xC2CBC8E6 0x4292 +0xC2CBC8E7 0x42EC +0xC2CBC8E8 0x7DC8 +0xC2CBC8E9 0x7DB6 +0xC2CBC8EA 0x2F96C +0xC2CBC8EB 0x7DD1 +0xC2CBC8EC 0x42E7 +0xC2CBC8ED 0x7DA8 +0xC2CBC8EE 0x7DAB +0xC2CBC8EF 0x42F2 +0xC2CBC8F0 0x7DB3 +0xC2CBC8F1 0x7DCD +0xC2CBC8F2 0x42EE +0xC2CBC8F3 0x7DCF +0xC2CBC8F4 0x7DA4 +0xC2CBC8F5 0x42EF +0xC2CBC8F6 0x434C +0xC2CBC8F7 0x7F41 +0xC2CBC8F8 0x7F6F +0xC2CBC8F9 0x7F71 +0xC2CBC8FA 0x435E +0xC2CBC8FB 0x435F +0xC2CBC8FC 0x4376 +0xC2CBC8FD 0x4374 +0xC2CBC8FE 0x4372 +0xC2CBC9A1 0x4390 +0xC2CBC9A2 0x8023 +0xC2CBC9A3 0x805B +0xC2CBC9A4 0x43BE +0xC2CBC9A5 0x8061 +0xC2CBC9A6 0x805F +0xC2CBC9A7 0x8181 +0xC2CBC9A8 0x4426 +0xC2CBC9A9 0x4425 +0xC2CBC9AA 0x8184 +0xC2CBC9AB 0x8213 +0xC2CBC9AC 0x4474 +0xC2CBC9AD 0x824A +0xC2CBC9AE 0x824C +0xC2CBC9AF 0x44FD +0xC2CBC9B0 0x4505 +0xC2CBC9B1 0x4501 +0xC2CBC9B2 0x84BD +0xC2CBC9B3 0x8495 +0xC2CBC9B4 0x4509 +0xC2CBC9B5 0x8492 +0xC2CBC9B6 0x84C3 +0xC2CBC9B7 0x450C +0xC2CBC9B8 0x8496 +0xC2CBC9B9 0x84A5 +0xC2CBC9BA 0x84B5 +0xC2CBC9BB 0x84B3 +0xC2CBC9BC 0x84A3 +0xC2CBC9BD 0x84E4 +0xC2CBC9BE 0x84D8 +0xC2CBC9BF 0x84D5 +0xC2CBC9C0 0x450D +0xC2CBC9C1 0x84B7 +0xC2CBC9C2 0x84AD +0xC2CBC9C3 0x84DA +0xC2CBC9C4 0x8493 +0xC2CBC9C5 0x8736 +0xC2CBC9C6 0x45C0 +0xC2CBC9C7 0x45C5 +0xC2CBC9C8 0x45C9 +0xC2CBC9C9 0x873D +0xC2CBC9CA 0x872B +0xC2CBC9CB 0x8747 +0xC2CBC9CC 0x8739 +0xC2CBC9CD 0x45D5 +0xC2CBC9CE 0x8745 +0xC2CBC9CF 0x871D +0xC2CBC9D0 0x4641 +0xC2CBC9D1 0x88FF +0xC2CBC9D2 0x88EA +0xC2CBC9D3 0x4633 +0xC2CBC9D4 0x88F5 +0xC2CBC9D5 0x463A +0xC2CBC9D6 0x8900 +0xC2CBC9D7 0x88ED +0xC2CBC9D8 0x8903 +0xC2CBC9D9 0x88E9 +0xC2CBC9DA 0x4640 +0xC2CBC9DB 0x4642 +0xC2CBC9DC 0x89EA +0xC2CBC9DD 0x46E8 +0xC2CBC9DE 0x8A9B +0xC2CBC9DF 0x8A8E +0xC2CBC9E0 0x8AA2 +0xC2CBC9E1 0x46E4 +0xC2CBC9E2 0x8A9C +0xC2CBC9E3 0x8A94 +0xC2CBC9E4 0x8A90 +0xC2CBC9E5 0x8AA9 +0xC2CBC9E6 0x8AAC +0xC2CBC9E7 0x46E7 +0xC2CBC9E8 0x8A9F +0xC2CBC9E9 0x46E6 +0xC2CBC9EA 0x46E1 +0xC2CBC9EB 0x8A9D +0xC2CBC9EC 0x4739 +0xC2CBC9ED 0x8C67 +0xC2CBC9EE 0x475C +0xC2CBC9EF 0x4775 +0xC2CBC9F0 0x8CD0 +0xC2CBC9F1 0x8CD6 +0xC2CBC9F2 0x8CD4 +0xC2CBC9F3 0x8D98 +0xC2CBC9F4 0x8D9A +0xC2CBC9F5 0x8D97 +0xC2CBC9F6 0x47AE +0xC2CBC9F7 0x47B0 +0xC2CBC9F8 0x47FA +0xC2CBC9F9 0x8E0B +0xC2CBC9FA 0x8E08 +0xC2CBC9FB 0x8E01 +0xC2CBC9FC 0x8EB4 +0xC2CBC9FD 0x8EB3 +0xC2CBC9FE 0x485B +0xC2CBCAA1 0x8FA1 +0xC2CBCAA2 0x8FA2 +0xC2CBCAA3 0x48A5 +0xC2CBCAA4 0x905A +0xC2CBCAA5 0x48A2 +0xC2CBCAA6 0x9061 +0xC2CBCAA7 0x905F +0xC2CBCAA8 0x48DB +0xC2CBCAA9 0x48DA +0xC2CBCAAA 0x9125 +0xC2CBCAAB 0x917B +0xC2CBCAAC 0x9176 +0xC2CBCAAD 0x917C +0xC2CBCAAE 0x4924 +0xC2CBCAAF 0x9289 +0xC2CBCAB0 0x92F6 +0xC2CBCAB1 0x92B1 +0xC2CBCAB2 0x92AD +0xC2CBCAB3 0x9292 +0xC2CBCAB4 0x9281 +0xC2CBCAB5 0x9284 +0xC2CBCAB6 0x4926 +0xC2CBCAB7 0x92AE +0xC2CBCAB8 0x9290 +0xC2CBCAB9 0x929E +0xC2CBCABA 0x4998 +0xC2CBCABB 0x4996 +0xC2CBCABC 0x499A +0xC2CBCABD 0x95A2 +0xC2CBCABE 0x95A7 +0xC2CBCABF 0x4997 +0xC2CBCAC0 0x49E1 +0xC2CBCAC1 0x49E0 +0xC2CBCAC2 0x49E3 +0xC2CBCAC3 0x49E2 +0xC2CBCAC4 0x96A0 +0xC2CBCAC5 0x969D +0xC2CBCAC6 0x969F +0xC2CBCAC7 0x96D0 +0xC2CBCAC8 0x49FB +0xC2CBCAC9 0x96D1 +0xC2CBCACA 0x4A12 +0xC2CBCACB 0x4A14 +0xC2CBCACC 0x9759 +0xC2CBCACD 0x4A45 +0xC2CBCACE 0x9764 +0xC2CBCACF 0x4A5C +0xC2CBCAD0 0x4A5D +0xC2CBCAD1 0x4AB8 +0xC2CBCAD2 0x9819 +0xC2CBCAD3 0x4ABA +0xC2CBCAD4 0x9814 +0xC2CBCAD5 0x9815 +0xC2CBCAD6 0x981A +0xC2CBCAD7 0x4B03 +0xC2CBCAD8 0x4B35 +0xC2CBCAD9 0x4B36 +0xC2CBCADA 0x4B39 +0xC2CBCADB 0x9906 +0xC2CBCADC 0x4B2D +0xC2CBCADD 0x98F8 +0xC2CBCADE 0x9901 +0xC2CBCADF 0x4B7A +0xC2CBCAE0 0x99BE +0xC2CBCAE1 0x99BC +0xC2CBCAE2 0x99B7 +0xC2CBCAE3 0x99B6 +0xC2CBCAE4 0x99C0 +0xC2CBCAE5 0x4B78 +0xC2CBCAE6 0x99B8 +0xC2CBCAE7 0x4B7B +0xC2CBCAE8 0x4B7C +0xC2CBCAE9 0x4B7E +0xC2CBCAEA 0x99C4 +0xC2CBCAEB 0x4B7D +0xC2CBCAEC 0x99BF +0xC2CBCAED 0x4BC9 +0xC2CBCAEE 0x9ADA +0xC2CBCAEF 0x9AE4 +0xC2CBCAF0 0x9AE9 +0xC2CBCAF1 0x9AE8 +0xC2CBCAF2 0x9AEA +0xC2CBCAF3 0x9AE5 +0xC2CBCAF4 0x4BF3 +0xC2CBCAF5 0x9B26 +0xC2CBCAF6 0x4C1A +0xC2CBCAF7 0x4C19 +0xC2CBCAF8 0x9B40 +0xC2CBCAF9 0x4C1F +0xC2CBCAFA 0x4CA6 +0xC2CBCAFB 0x4CA7 +0xC2CBCAFC 0x4CA8 +0xC2CBCAFD 0x4CAB +0xC2CBCAFE 0x4CA9 +0xC2CBCBA1 0x4D2E +0xC2CBCBA2 0x9EBD +0xC2CBCBA3 0x4D5E +0xC2CBCBA4 0x3495 +0xC2CBCBA5 0x3493 +0xC2CBCBA6 0x3492 +0xC2CBCBA7 0x510E +0xC2CBCBA8 0x3496 +0xC2CBCBA9 0x50F7 +0xC2CBCBAA 0x3497 +0xC2CBCBAB 0x50FC +0xC2CBCBAC 0x510D +0xC2CBCBAD 0x5101 +0xC2CBCBAE 0x51DA +0xC2CBCBAF 0x51D9 +0xC2CBCBB0 0x51DB +0xC2CBCBB1 0x5286 +0xC2CBCBB2 0x528E +0xC2CBCBB3 0x52EE +0xC2CBCBB4 0x5333 +0xC2CBCBB5 0x53B1 +0xC2CBCBB6 0x35F5 +0xC2CBCBB7 0x5647 +0xC2CBCBB8 0x562D +0xC2CBCBB9 0x5654 +0xC2CBCBBA 0x35EA +0xC2CBCBBB 0x564B +0xC2CBCBBC 0x5652 +0xC2CBCBBD 0x5631 +0xC2CBCBBE 0x5644 +0xC2CBCBBF 0x5656 +0xC2CBCBC0 0x5650 +0xC2CBCBC1 0x562B +0xC2CBCBC2 0x35F3 +0xC2CBCBC3 0x564D +0xC2CBCBC4 0x5637 +0xC2CBCBC5 0x564F +0xC2CBCBC6 0x58A2 +0xC2CBCBC7 0x58B7 +0xC2CBCBC8 0x3669 +0xC2CBCBC9 0x58B2 +0xC2CBCBCA 0x366B +0xC2CBCBCB 0x58AA +0xC2CBCBCC 0x58B5 +0xC2CBCBCD 0x58B0 +0xC2CBCBCE 0x366C +0xC2CBCBCF 0x58B4 +0xC2CBCBD0 0x58A4 +0xC2CBCBD1 0x58A7 +0xC2CBCBD2 0x3668 +0xC2CBCBD3 0x5926 +0xC2CBCBD4 0x5AFE +0xC2CBCBD5 0x3728 +0xC2CBCBD6 0x5B04 +0xC2CBCBD7 0x3726 +0xC2CBCBD8 0x5AFC +0xC2CBCBD9 0x3725 +0xC2CBCBDA 0x5B06 +0xC2CBCBDB 0x5B0A +0xC2CBCBDC 0x5AFA +0xC2CBCBDD 0x5B0D +0xC2CBCBDE 0x5B00 +0xC2CBCBDF 0x5B0E +0xC2CBCBE0 0x376B +0xC2CBCBE1 0x380F +0xC2CBCBE2 0x3808 +0xC2CBCBE3 0x5D91 +0xC2CBCBE4 0x380C +0xC2CBCBE5 0x5D8F +0xC2CBCBE6 0x5D90 +0xC2CBCBE7 0x5D98 +0xC2CBCBE8 0x5DA4 +0xC2CBCBE9 0x5D9B +0xC2CBCBEA 0x5DA3 +0xC2CBCBEB 0x5D96 +0xC2CBCBEC 0x5DE4 +0xC2CBCBED 0x5E5A +0xC2CBCBEE 0x3860 +0xC2CBCBEF 0x3862 +0xC2CBCBF0 0x5E5E +0xC2CBCBF1 0x3898 +0xC2CBCBF2 0x5FB8 +0xC2CBCBF3 0x6157 +0xC2CBCBF4 0x615C +0xC2CBCBF5 0x61A6 +0xC2CBCBF6 0x6195 +0xC2CBCBF7 0x6188 +0xC2CBCBF8 0x398A +0xC2CBCBF9 0x61A3 +0xC2CBCBFA 0x618F +0xC2CBCBFB 0x3984 +0xC2CBCBFC 0x6164 +0xC2CBCBFD 0x397F +0xC2CBCBFE 0x6159 +0xC2CBCCA1 0x6178 +0xC2CBCCA2 0x3982 +0xC2CBCCA3 0x6185 +0xC2CBCCA4 0x6187 +0xC2CBCCA5 0x619E +0xC2CBCCA6 0x3996 +0xC2CBCCA7 0x3989 +0xC2CBCCA8 0x6198 +0xC2CBCCA9 0x619C +0xC2CBCCAA 0x398D +0xC2CBCCAB 0x39BC +0xC2CBCCAC 0x622F +0xC2CBCCAD 0x6480 +0xC2CBCCAE 0x649B +0xC2CBCCAF 0x648E +0xC2CBCCB0 0x648D +0xC2CBCCB1 0x6494 +0xC2CBCCB2 0x64C6 +0xC2CBCCB3 0x3A44 +0xC2CBCCB4 0x64A8 +0xC2CBCCB5 0x6483 +0xC2CBCCB6 0x3A3C +0xC2CBCCB7 0x64B9 +0xC2CBCCB8 0x6486 +0xC2CBCCB9 0x64B4 +0xC2CBCCBA 0x64AF +0xC2CBCCBB 0x6491 +0xC2CBCCBC 0x3A4E +0xC2CBCCBD 0x64AA +0xC2CBCCBE 0x64A1 +0xC2CBCCBF 0x64A7 +0xC2CBCCC0 0x66B6 +0xC2CBCCC1 0x66B3 +0xC2CBCCC2 0x3B14 +0xC2CBCCC3 0x66BC +0xC2CBCCC4 0x66AC +0xC2CBCCC5 0x3B15 +0xC2CBCCC6 0x66AD +0xC2CBCCC7 0x6A0E +0xC2CBCCC8 0x3BCE +0xC2CBCCC9 0x6A1C +0xC2CBCCCA 0x6A1A +0xC2CBCCCB 0x3BE0 +0xC2CBCCCC 0x3BC2 +0xC2CBCCCD 0x6A0B +0xC2CBCCCE 0x3BBF +0xC2CBCCCF 0x69EF +0xC2CBCCD0 0x6A0C +0xC2CBCCD1 0x69F0 +0xC2CBCCD2 0x6A22 +0xC2CBCCD3 0x3BC4 +0xC2CBCCD4 0x69D8 +0xC2CBCCD5 0x3BCF +0xC2CBCCD6 0x6A12 +0xC2CBCCD7 0x69FA +0xC2CBCCD8 0x3BC8 +0xC2CBCCD9 0x6A2A +0xC2CBCCDA 0x3BCC +0xC2CBCCDB 0x6A10 +0xC2CBCCDC 0x3BCD +0xC2CBCCDD 0x3BC7 +0xC2CBCCDE 0x6A29 +0xC2CBCCDF 0x69F9 +0xC2CBCCE0 0x69EA +0xC2CBCCE1 0x6A2C +0xC2CBCCE2 0x6A24 +0xC2CBCCE3 0x4CB7 +0xC2CBCCE4 0x69E9 +0xC2CBCCE5 0x6B52 +0xC2CBCCE6 0x6B4F +0xC2CBCCE7 0x6B53 +0xC2CBCCE8 0x3C43 +0xC2CBCCE9 0x3CB6 +0xC2CBCCEA 0x6F10 +0xC2CBCCEB 0x6F65 +0xC2CBCCEC 0x6F75 +0xC2CBCCED 0x3D51 +0xC2CBCCEE 0x3D4A +0xC2CBCCEF 0x3D4D +0xC2CBCCF0 0x3D56 +0xC2CBCCF1 0x6FD0 +0xC2CBCCF2 0x3D53 +0xC2CBCCF3 0x6F5C +0xC2CBCCF4 0x6F3D +0xC2CBCCF5 0x6F71 +0xC2CBCCF6 0x3D59 +0xC2CBCCF7 0x6F91 +0xC2CBCCF8 0x6F0B +0xC2CBCCF9 0x6F79 +0xC2CBCCFA 0x6F81 +0xC2CBCCFB 0x6F8F +0xC2CBCCFC 0x3D4E +0xC2CBCCFD 0x6F59 +0xC2CBCCFE 0x6F74 +0xC2CBCDA1 0x3DEE +0xC2CBCDA2 0x71AE +0xC2CBCDA3 0x3DEC +0xC2CBCDA4 0x71A3 +0xC2CBCDA5 0x71AD +0xC2CBCDA6 0x3DEB +0xC2CBCDA7 0x3DEF +0xC2CBCDA8 0x71AB +0xC2CBCDA9 0x71A6 +0xC2CBCDAA 0x71A2 +0xC2CBCDAB 0x3DED +0xC2CBCDAC 0x52F2 +0xC2CBCDAD 0x7257 +0xC2CBCDAE 0x7255 +0xC2CBCDAF 0x7299 +0xC2CBCDB0 0x734B +0xC2CBCDB1 0x747A +0xC2CBCDB2 0x3EF2 +0xC2CBCDB3 0x3EEF +0xC2CBCDB4 0x3EF1 +0xC2CBCDB5 0x748C +0xC2CBCDB6 0x7484 +0xC2CBCDB7 0x3EED +0xC2CBCDB8 0x3EF0 +0xC2CBCDB9 0x7482 +0xC2CBCDBA 0x7493 +0xC2CBCDBB 0x747B +0xC2CBCDBC 0x3EEE +0xC2CBCDBD 0x7509 +0xC2CBCDBE 0x4C1B +0xC2CBCDBF 0x3F50 +0xC2CBCDC0 0x3F66 +0xC2CBCDC1 0x3684 +0xC2CBCDC2 0x3FB8 +0xC2CBCDC3 0x3FF6 +0xC2CBCDC4 0x778A +0xC2CBCDC5 0x4057 +0xC2CBCDC6 0x7790 +0xC2CBCDC7 0x405E +0xC2CBCDC8 0x78C6 +0xC2CBCDC9 0x78D3 +0xC2CBCDCA 0x78C0 +0xC2CBCDCB 0x78D2 +0xC2CBCDCC 0x78C7 +0xC2CBCDCD 0x78C2 +0xC2CBCDCE 0x4119 +0xC2CBCDCF 0x799F +0xC2CBCDD0 0x799D +0xC2CBCDD1 0x799E +0xC2CBCDD2 0x4170 +0xC2CBCDD3 0x7A41 +0xC2CBCDD4 0x416E +0xC2CBCDD5 0x7A38 +0xC2CBCDD6 0x7A3A +0xC2CBCDD7 0x7A42 +0xC2CBCDD8 0x4172 +0xC2CBCDD9 0x4176 +0xC2CBCDDA 0x7A3E +0xC2CBCDDB 0x7AB0 +0xC2CBCDDC 0x7BAE +0xC2CBCDDD 0x7BB3 +0xC2CBCDDE 0x4212 +0xC2CBCDDF 0x421F +0xC2CBCDE0 0x7BBF +0xC2CBCDE1 0x4211 +0xC2CBCDE2 0x4216 +0xC2CBCDE3 0x7BCD +0xC2CBCDE4 0x4219 +0xC2CBCDE5 0x7BB2 +0xC2CBCDE6 0x4224 +0xC2CBCDE7 0x4214 +0xC2CBCDE8 0x4225 +0xC2CBCDE9 0x4295 +0xC2CBCDEA 0x4296 +0xC2CBCDEB 0x4293 +0xC2CBCDEC 0x4294 +0xC2CBCDED 0x7CC4 +0xC2CBCDEE 0x7CCD +0xC2CBCDEF 0x7CC2 +0xC2CBCDF0 0x7CC6 +0xC2CBCDF1 0x7CC3 +0xC2CBCDF2 0x7CC9 +0xC2CBCDF3 0x7CC7 +0xC2CBCDF4 0x42A0 +0xC2CBCDF5 0x7DF8 +0xC2CBCDF6 0x42FB +0xC2CBCDF7 0x7DED +0xC2CBCDF8 0x7DE2 +0xC2CBCDF9 0x42FC +0xC2CBCDFA 0x4300 +0xC2CBCDFB 0x42F8 +0xC2CBCDFC 0x7DDC +0xC2CBCDFD 0x7E02 +0xC2CBCDFE 0x7E01 +0xC2CBCEA1 0x42F9 +0xC2CBCEA2 0x7DD6 +0xC2CBCEA3 0x4304 +0xC2CBCEA4 0x7DE4 +0xC2CBCEA5 0x7DFE +0xC2CBCEA6 0x4303 +0xC2CBCEA7 0x7E00 +0xC2CBCEA8 0x7DFC +0xC2CBCEA9 0x7DFD +0xC2CBCEAA 0x42F3 +0xC2CBCEAB 0x7DF5 +0xC2CBCEAC 0x7DFF +0xC2CBCEAD 0x42FA +0xC2CBCEAE 0x7DEB +0xC2CBCEAF 0x7DE5 +0xC2CBCEB0 0x7F78 +0xC2CBCEB1 0x7FAE +0xC2CBCEB2 0x7FE7 +0xC2CBCEB3 0x43BF +0xC2CBCEB4 0x8065 +0xC2CBCEB5 0x806A +0xC2CBCEB6 0x8066 +0xC2CBCEB7 0x8068 +0xC2CBCEB8 0x806B +0xC2CBCEB9 0x8194 +0xC2CBCEBA 0x81A1 +0xC2CBCEBB 0x8192 +0xC2CBCEBC 0x8196 +0xC2CBCEBD 0x8193 +0xC2CBCEBE 0x4479 +0xC2CBCEBF 0x4510 +0xC2CBCEC0 0x8501 +0xC2CBCEC1 0x4514 +0xC2CBCEC2 0x84F8 +0xC2CBCEC3 0x450E +0xC2CBCEC4 0x84F5 +0xC2CBCEC5 0x451A +0xC2CBCEC6 0x8504 +0xC2CBCEC7 0x4519 +0xC2CBCEC8 0x4521 +0xC2CBCEC9 0x4523 +0xC2CBCECA 0x451F +0xC2CBCECB 0x851B +0xC2CBCECC 0x8503 +0xC2CBCECD 0x8533 +0xC2CBCECE 0x8534 +0xC2CBCECF 0x84ED +0xC2CBCED0 0x4525 +0xC2CBCED1 0x452B +0xC2CBCED2 0x8535 +0xC2CBCED3 0x4516 +0xC2CBCED4 0x8505 +0xC2CBCED5 0x4522 +0xC2CBCED6 0x451B +0xC2CBCED7 0x45CE +0xC2CBCED8 0x45CF +0xC2CBCED9 0x877D +0xC2CBCEDA 0x45CB +0xC2CBCEDB 0x45D1 +0xC2CBCEDC 0x45CC +0xC2CBCEDD 0x8771 +0xC2CBCEDE 0x4617 +0xC2CBCEDF 0x885C +0xC2CBCEE0 0x88E6 +0xC2CBCEE1 0x890F +0xC2CBCEE2 0x891B +0xC2CBCEE3 0x4651 +0xC2CBCEE4 0x89A9 +0xC2CBCEE5 0x89A5 +0xC2CBCEE6 0x89EE +0xC2CBCEE7 0x8AB1 +0xC2CBCEE8 0x46ED +0xC2CBCEE9 0x8ACC +0xC2CBCEEA 0x8ACE +0xC2CBCEEB 0x46F4 +0xC2CBCEEC 0x8AB7 +0xC2CBCEED 0x46F1 +0xC2CBCEEE 0x8AB5 +0xC2CBCEEF 0x8AE9 +0xC2CBCEF0 0x8AB4 +0xC2CBCEF1 0x46F8 +0xC2CBCEF2 0x8AB3 +0xC2CBCEF3 0x8AC1 +0xC2CBCEF4 0x8AAF +0xC2CBCEF5 0x8ACA +0xC2CBCEF6 0x8AD0 +0xC2CBCEF7 0x472F +0xC2CBCEF8 0x475E +0xC2CBCEF9 0x475D +0xC2CBCEFA 0x8C8E +0xC2CBCEFB 0x4776 +0xC2CBCEFC 0x4777 +0xC2CBCEFD 0x8CE9 +0xC2CBCEFE 0x8CDB +0xC2CBCFA1 0x477E +0xC2CBCFA2 0x8CEB +0xC2CBCFA3 0x8DA4 +0xC2CBCFA4 0x47B6 +0xC2CBCFA5 0x8DA2 +0xC2CBCFA6 0x8D9D +0xC2CBCFA7 0x47B3 +0xC2CBCFA8 0x47FC +0xC2CBCFA9 0x4803 +0xC2CBCFAA 0x4800 +0xC2CBCFAB 0x8E2A +0xC2CBCFAC 0x8E28 +0xC2CBCFAD 0x480A +0xC2CBCFAE 0x4802 +0xC2CBCFAF 0x8EB8 +0xC2CBCFB0 0x8EB6 +0xC2CBCFB1 0x8EB9 +0xC2CBCFB2 0x8EB7 +0xC2CBCFB3 0x8F22 +0xC2CBCFB4 0x8F2B +0xC2CBCFB5 0x8F27 +0xC2CBCFB6 0x8F19 +0xC2CBCFB7 0x8FA4 +0xC2CBCFB8 0x4887 +0xC2CBCFB9 0x8FB3 +0xC2CBCFBA 0x48A6 +0xC2CBCFBB 0x9071 +0xC2CBCFBC 0x906A +0xC2CBCFBD 0x48A9 +0xC2CBCFBE 0x48DE +0xC2CBCFBF 0x9188 +0xC2CBCFC0 0x918C +0xC2CBCFC1 0x92BF +0xC2CBCFC2 0x92B8 +0xC2CBCFC3 0x92BE +0xC2CBCFC4 0x92DC +0xC2CBCFC5 0x92E5 +0xC2CBCFC6 0x492E +0xC2CBCFC7 0x492D +0xC2CBCFC8 0x92D4 +0xC2CBCFC9 0x92D6 +0xC2CBCFCA 0x4930 +0xC2CBCFCB 0x92DA +0xC2CBCFCC 0x92ED +0xC2CBCFCD 0x92F3 +0xC2CBCFCE 0x92DB +0xC2CBCFCF 0x492B +0xC2CBCFD0 0x92B9 +0xC2CBCFD1 0x92E2 +0xC2CBCFD2 0x92EB +0xC2CBCFD3 0x95AF +0xC2CBCFD4 0x499E +0xC2CBCFD5 0x95B2 +0xC2CBCFD6 0x95B3 +0xC2CBCFD7 0x499F +0xC2CBCFD8 0x49E5 +0xC2CBCFD9 0x49E4 +0xC2CBCFDA 0x96A3 +0xC2CBCFDB 0x96A5 +0xC2CBCFDC 0x49FD +0xC2CBCFDD 0x49FC +0xC2CBCFDE 0x4A17 +0xC2CBCFDF 0x4A19 +0xC2CBCFE0 0x970A +0xC2CBCFE1 0x4A18 +0xC2CBCFE2 0x9787 +0xC2CBCFE3 0x9789 +0xC2CBCFE4 0x978C +0xC2CBCFE5 0x97EF +0xC2CBCFE6 0x982A +0xC2CBCFE7 0x9822 +0xC2CBCFE8 0x4ABF +0xC2CBCFE9 0x981F +0xC2CBCFEA 0x4B3C +0xC2CBCFEB 0x9919 +0xC2CBCFEC 0x4B6B +0xC2CBCFED 0x99CA +0xC2CBCFEE 0x99DA +0xC2CBCFEF 0x4B83 +0xC2CBCFF0 0x4B81 +0xC2CBCFF1 0x4B80 +0xC2CBCFF2 0x99DE +0xC2CBCFF3 0x99C8 +0xC2CBCFF4 0x99E0 +0xC2CBCFF5 0x4BCA +0xC2CBCFF6 0x9AB6 +0xC2CBCFF7 0x9AB5 +0xC2CBCFF8 0x4BCE +0xC2CBCFF9 0x9AF4 +0xC2CBCFFA 0x4BF6 +0xC2CBCFFB 0x9B6B +0xC2CBCFFC 0x9B69 +0xC2CBCFFD 0x9B72 +0xC2CBCFFE 0x9B63 +0xC2CBD0A1 0x4C39 +0xC2CBD0A2 0x9D0D +0xC2CBD0A3 0x4CAE +0xC2CBD0A4 0x9D01 +0xC2CBD0A5 0x9D0C +0xC2CBD0A6 0x4CB5 +0xC2CBD0A7 0x9CF8 +0xC2CBD0A8 0x4CB3 +0xC2CBD0A9 0x4CB4 +0xC2CBD0AA 0x9CFE +0xC2CBD0AB 0x9D02 +0xC2CBD0AC 0x9E84 +0xC2CBD0AD 0x4D22 +0xC2CBD0AE 0x9EAB +0xC2CBD0AF 0x9EAA +0xC2CBD0B0 0x511D +0xC2CBD0B1 0x5116 +0xC2CBD0B2 0x3499 +0xC2CBD0B3 0x512B +0xC2CBD0B4 0x511E +0xC2CBD0B5 0x511B +0xC2CBD0B6 0x5290 +0xC2CBD0B7 0x5294 +0xC2CBD0B8 0x5314 +0xC2CBD0B9 0x20B89 +0xC2CBD0BA 0x3602 +0xC2CBD0BB 0x5667 +0xC2CBD0BC 0x3601 +0xC2CBD0BD 0x567B +0xC2CBD0BE 0x36A1 +0xC2CBD0BF 0x565F +0xC2CBD0C0 0x5661 +0xC2CBD0C1 0x35FD +0xC2CBD0C2 0x3673 +0xC2CBD0C3 0x3674 +0xC2CBD0C4 0x3670 +0xC2CBD0C5 0x3676 +0xC2CBD0C6 0x3675 +0xC2CBD0C7 0x3672 +0xC2CBD0C8 0x58C3 +0xC2CBD0C9 0x58CA +0xC2CBD0CA 0x58BB +0xC2CBD0CB 0x58C0 +0xC2CBD0CC 0x58C4 +0xC2CBD0CD 0x5901 +0xC2CBD0CE 0x5B1F +0xC2CBD0CF 0x5B18 +0xC2CBD0D0 0x5B11 +0xC2CBD0D1 0x5B15 +0xC2CBD0D2 0x3729 +0xC2CBD0D3 0x5B12 +0xC2CBD0D4 0x5B1C +0xC2CBD0D5 0x372A +0xC2CBD0D6 0x5B22 +0xC2CBD0D7 0x5B79 +0xC2CBD0D8 0x5DA6 +0xC2CBD0D9 0x3816 +0xC2CBD0DA 0x5DB3 +0xC2CBD0DB 0x5DAB +0xC2CBD0DC 0x5EEA +0xC2CBD0DD 0x3899 +0xC2CBD0DE 0x5F5B +0xC2CBD0DF 0x38D3 +0xC2CBD0E0 0x38F5 +0xC2CBD0E1 0x61B7 +0xC2CBD0E2 0x61CE +0xC2CBD0E3 0x61B9 +0xC2CBD0E4 0x61BD +0xC2CBD0E5 0x61CF +0xC2CBD0E6 0x61C0 +0xC2CBD0E7 0x6199 +0xC2CBD0E8 0x6197 +0xC2CBD0E9 0x3994 +0xC2CBD0EA 0x61BB +0xC2CBD0EB 0x61D0 +0xC2CBD0EC 0x61C4 +0xC2CBD0ED 0x6231 +0xC2CBD0EE 0x3A56 +0xC2CBD0EF 0x64D3 +0xC2CBD0F0 0x64C0 +0xC2CBD0F1 0x3A59 +0xC2CBD0F2 0x3A58 +0xC2CBD0F3 0x3A55 +0xC2CBD0F4 0x3A52 +0xC2CBD0F5 0x64DC +0xC2CBD0F6 0x64D1 +0xC2CBD0F7 0x64C8 +0xC2CBD0F8 0x3A57 +0xC2CBD0F9 0x64D5 +0xC2CBD0FA 0x66C3 +0xC2CBD0FB 0x3B1B +0xC2CBD0FC 0x3B1C +0xC2CBD0FD 0x66BF +0xC2CBD0FE 0x66C5 +0xC2CBD1A1 0x3B19 +0xC2CBD1A2 0x66CD +0xC2CBD1A3 0x66C1 +0xC2CBD1A4 0x6706 +0xC2CBD1A5 0x3B3F +0xC2CBD1A6 0x6724 +0xC2CBD1A7 0x6A63 +0xC2CBD1A8 0x6A42 +0xC2CBD1A9 0x6A52 +0xC2CBD1AA 0x3BDB +0xC2CBD1AB 0x6A43 +0xC2CBD1AC 0x6A33 +0xC2CBD1AD 0x3BE2 +0xC2CBD1AE 0x6A6C +0xC2CBD1AF 0x6A57 +0xC2CBD1B0 0x3BD7 +0xC2CBD1B1 0x6A4C +0xC2CBD1B2 0x6A6E +0xC2CBD1B3 0x3BDE +0xC2CBD1B4 0x3BE5 +0xC2CBD1B5 0x3BE4 +0xC2CBD1B6 0x3BE6 +0xC2CBD1B7 0x3BD6 +0xC2CBD1B8 0x6A37 +0xC2CBD1B9 0x3BDF +0xC2CBD1BA 0x6A71 +0xC2CBD1BB 0x6A4A +0xC2CBD1BC 0x6A36 +0xC2CBD1BD 0x3BDC +0xC2CBD1BE 0x6A53 +0xC2CBD1BF 0x3BDA +0xC2CBD1C0 0x6A45 +0xC2CBD1C1 0x6A70 +0xC2CBD1C2 0x3BD3 +0xC2CBD1C3 0x3BD0 +0xC2CBD1C4 0x6A5C +0xC2CBD1C5 0x6B58 +0xC2CBD1C6 0x6B57 +0xC2CBD1C7 0x3C86 +0xC2CBD1C8 0x3C87 +0xC2CBD1C9 0x3CAD +0xC2CBD1CA 0x3CB7 +0xC2CBD1CB 0x3D58 +0xC2CBD1CC 0x3D6A +0xC2CBD1CD 0x6FBB +0xC2CBD1CE 0x3D62 +0xC2CBD1CF 0x3D61 +0xC2CBD1D0 0x6FBE +0xC2CBD1D1 0x3D69 +0xC2CBD1D2 0x3D6C +0xC2CBD1D3 0x3D65 +0xC2CBD1D4 0x6FB5 +0xC2CBD1D5 0x6FD3 +0xC2CBD1D6 0x6F9F +0xC2CBD1D7 0x3D66 +0xC2CBD1D8 0x6FB7 +0xC2CBD1D9 0x6FF5 +0xC2CBD1DA 0x71B7 +0xC2CBD1DB 0x3DF5 +0xC2CBD1DC 0x71BB +0xC2CBD1DD 0x3DF4 +0xC2CBD1DE 0x71D1 +0xC2CBD1DF 0x3DF7 +0xC2CBD1E0 0x71BA +0xC2CBD1E1 0x3DF8 +0xC2CBD1E2 0x71B6 +0xC2CBD1E3 0x71CC +0xC2CBD1E4 0x3DFB +0xC2CBD1E5 0x3DFC +0xC2CBD1E6 0x71D3 +0xC2CBD1E7 0x749B +0xC2CBD1E8 0x3EF5 +0xC2CBD1E9 0x3EF8 +0xC2CBD1EA 0x7496 +0xC2CBD1EB 0x74A2 +0xC2CBD1EC 0x749D +0xC2CBD1ED 0x750A +0xC2CBD1EE 0x750E +0xC2CBD1EF 0x3F3C +0xC2CBD1F0 0x7581 +0xC2CBD1F1 0x762C +0xC2CBD1F2 0x7637 +0xC2CBD1F3 0x7636 +0xC2CBD1F4 0x763B +0xC2CBD1F5 0x3FC5 +0xC2CBD1F6 0x76A1 +0xC2CBD1F7 0x4062 +0xC2CBD1F8 0x4063 +0xC2CBD1F9 0x7798 +0xC2CBD1FA 0x4067 +0xC2CBD1FB 0x7796 +0xC2CBD1FC 0x4066 +0xC2CBD1FD 0x40D9 +0xC2CBD1FE 0x40DB +0xC2CBD2A1 0x78D6 +0xC2CBD2A2 0x78EB +0xC2CBD2A3 0x40D8 +0xC2CBD2A4 0x78DC +0xC2CBD2A5 0x411B +0xC2CBD2A6 0x79A5 +0xC2CBD2A7 0x79A9 +0xC2CBD2A8 0x9834 +0xC2CBD2A9 0x7A53 +0xC2CBD2AA 0x7A45 +0xC2CBD2AB 0x4179 +0xC2CBD2AC 0x7A4F +0xC2CBD2AD 0x417D +0xC2CBD2AE 0x7ABD +0xC2CBD2AF 0x7ABB +0xC2CBD2B0 0x7AF1 +0xC2CBD2B1 0x422C +0xC2CBD2B2 0x4237 +0xC2CBD2B3 0x7BEC +0xC2CBD2B4 0x7BED +0xC2CBD2B5 0x4230 +0xC2CBD2B6 0x429A +0xC2CBD2B7 0x7CD3 +0xC2CBD2B8 0x4A00 +0xC2CBD2B9 0x7CE1 +0xC2CBD2BA 0x4305 +0xC2CBD2BB 0x7E19 +0xC2CBD2BC 0x4307 +0xC2CBD2BD 0x4309 +0xC2CBD2BE 0x430A +0xC2CBD2BF 0x7E27 +0xC2CBD2C0 0x7E26 +0xC2CBD2C1 0x4379 +0xC2CBD2C2 0x43C2 +0xC2CBD2C3 0x806E +0xC2CBD2C4 0x81AF +0xC2CBD2C5 0x4438 +0xC2CBD2C6 0x4437 +0xC2CBD2C7 0x81AD +0xC2CBD2C8 0x4421 +0xC2CBD2C9 0x81AA +0xC2CBD2CA 0x8218 +0xC2CBD2CB 0x445E +0xC2CBD2CC 0x453D +0xC2CBD2CD 0x4537 +0xC2CBD2CE 0x4540 +0xC2CBD2CF 0x856F +0xC2CBD2D0 0x854C +0xC2CBD2D1 0x451D +0xC2CBD2D2 0x8542 +0xC2CBD2D3 0x4533 +0xC2CBD2D4 0x855C +0xC2CBD2D5 0x8570 +0xC2CBD2D6 0x855F +0xC2CBD2D7 0x4535 +0xC2CBD2D8 0x855A +0xC2CBD2D9 0x854B +0xC2CBD2DA 0x853F +0xC2CBD2DB 0x878A +0xC2CBD2DC 0x45D8 +0xC2CBD2DD 0x878B +0xC2CBD2DE 0x87A1 +0xC2CBD2DF 0x878E +0xC2CBD2E0 0x45DC +0xC2CBD2E1 0x45DE +0xC2CBD2E2 0x8799 +0xC2CBD2E3 0x885E +0xC2CBD2E4 0x885F +0xC2CBD2E5 0x8924 +0xC2CBD2E6 0x89A7 +0xC2CBD2E7 0x8AEA +0xC2CBD2E8 0x8AFD +0xC2CBD2E9 0x8AF9 +0xC2CBD2EA 0x8AE3 +0xC2CBD2EB 0x8AE5 +0xC2CBD2EC 0x46FA +0xC2CBD2ED 0x46FB +0xC2CBD2EE 0x8AEC +0xC2CBD2EF 0x473D +0xC2CBD2F0 0x473B +0xC2CBD2F1 0x473F +0xC2CBD2F2 0x475F +0xC2CBD2F3 0x8CF2 +0xC2CBD2F4 0x477F +0xC2CBD2F5 0x8CEF +0xC2CBD2F6 0x4784 +0xC2CBD2F7 0x8DA6 +0xC2CBD2F8 0x47BC +0xC2CBD2F9 0x4814 +0xC2CBD2FA 0x480F +0xC2CBD2FB 0x8E3B +0xC2CBD2FC 0x8E43 +0xC2CBD2FD 0x480E +0xC2CBD2FE 0x8E32 +0xC2CBD3A1 0x8F31 +0xC2CBD3A2 0x8F30 +0xC2CBD3A3 0x4860 +0xC2CBD3A4 0x8F2D +0xC2CBD3A5 0x8F3C +0xC2CBD3A6 0x8FA7 +0xC2CBD3A7 0x8FA5 +0xC2CBD3A8 0x48AB +0xC2CBD3A9 0x48AC +0xC2CBD3AA 0x48AA +0xC2CBD3AB 0x9137 +0xC2CBD3AC 0x9195 +0xC2CBD3AD 0x918E +0xC2CBD3AE 0x4904 +0xC2CBD3AF 0x9196 +0xC2CBD3B0 0x4908 +0xC2CBD3B1 0x9345 +0xC2CBD3B2 0x930A +0xC2CBD3B3 0x4933 +0xC2CBD3B4 0x4934 +0xC2CBD3B5 0x92FD +0xC2CBD3B6 0x9317 +0xC2CBD3B7 0x931C +0xC2CBD3B8 0x9307 +0xC2CBD3B9 0x9331 +0xC2CBD3BA 0x9332 +0xC2CBD3BB 0x932C +0xC2CBD3BC 0x9330 +0xC2CBD3BD 0x9303 +0xC2CBD3BE 0x9305 +0xC2CBD3BF 0x49A2 +0xC2CBD3C0 0x95C2 +0xC2CBD3C1 0x49A4 +0xC2CBD3C2 0x95B8 +0xC2CBD3C3 0x49A5 +0xC2CBD3C4 0x95C1 +0xC2CBD3C5 0x49A7 +0xC2CBD3C6 0x49A6 +0xC2CBD3C7 0x49E7 +0xC2CBD3C8 0x96AB +0xC2CBD3C9 0x96B7 +0xC2CBD3CA 0x49FF +0xC2CBD3CB 0x49FE +0xC2CBD3CC 0x9715 +0xC2CBD3CD 0x9714 +0xC2CBD3CE 0x4A1D +0xC2CBD3CF 0x4A1C +0xC2CBD3D0 0x970C +0xC2CBD3D1 0x9717 +0xC2CBD3D2 0x4A67 +0xC2CBD3D3 0x9793 +0xC2CBD3D4 0x4A94 +0xC2CBD3D5 0x97D2 +0xC2CBD3D6 0x4AC5 +0xC2CBD3D7 0x4AC8 +0xC2CBD3D8 0x9836 +0xC2CBD3D9 0x9831 +0xC2CBD3DA 0x9833 +0xC2CBD3DB 0x983C +0xC2CBD3DC 0x982E +0xC2CBD3DD 0x983A +0xC2CBD3DE 0x4AC9 +0xC2CBD3DF 0x983D +0xC2CBD3E0 0x4AC7 +0xC2CBD3E1 0x98B5 +0xC2CBD3E2 0x9922 +0xC2CBD3E3 0x9923 +0xC2CBD3E4 0x9920 +0xC2CBD3E5 0x991C +0xC2CBD3E6 0x991D +0xC2CBD3E7 0x4B6C +0xC2CBD3E8 0x99A0 +0xC2CBD3E9 0x4B8A +0xC2CBD3EA 0x99EF +0xC2CBD3EB 0x99E8 +0xC2CBD3EC 0x99EB +0xC2CBD3ED 0x4B88 +0xC2CBD3EE 0x4B87 +0xC2CBD3EF 0x4B86 +0xC2CBD3F0 0x99E1 +0xC2CBD3F1 0x99E6 +0xC2CBD3F2 0x4BCF +0xC2CBD3F3 0x4BD0 +0xC2CBD3F4 0x9AF8 +0xC2CBD3F5 0x9AF5 +0xC2CBD3F6 0x4C1C +0xC2CBD3F7 0x4C23 +0xC2CBD3F8 0x9B83 +0xC2CBD3F9 0x9B94 +0xC2CBD3FA 0x9B84 +0xC2CBD3FB 0x4C49 +0xC2CBD3FC 0x9B8B +0xC2CBD3FD 0x9B8F +0xC2CBD3FE 0x4C43 +0xC2CBD4A1 0x9B8C +0xC2CBD4A2 0x4C48 +0xC2CBD4A3 0x9B89 +0xC2CBD4A4 0x4C47 +0xC2CBD4A5 0x9B8E +0xC2CBD4A6 0x4C46 +0xC2CBD4A7 0x4C3F +0xC2CBD4A8 0x4C44 +0xC2CBD4A9 0x9D24 +0xC2CBD4AA 0x9D0F +0xC2CBD4AB 0x4CBE +0xC2CBD4AC 0x9D13 +0xC2CBD4AD 0x9D0A +0xC2CBD4AE 0x4CC2 +0xC2CBD4AF 0x4CBA +0xC2CBD4B0 0x4CBC +0xC2CBD4B1 0x4CC6 +0xC2CBD4B2 0x9D2A +0xC2CBD4B3 0x9D1A +0xC2CBD4B4 0x4CC8 +0xC2CBD4B5 0x9D27 +0xC2CBD4B6 0x9D16 +0xC2CBD4B7 0x9D21 +0xC2CBD4B8 0x4D23 +0xC2CBD4B9 0x9E85 +0xC2CBD4BA 0x9EAC +0xC2CBD4BB 0x9EC6 +0xC2CBD4BC 0x9EC5 +0xC2CBD4BD 0x9ED7 +0xC2CBD4BE 0x9F53 +0xC2CBD4BF 0x349D +0xC2CBD4C0 0x5128 +0xC2CBD4C1 0x5127 +0xC2CBD4C2 0x51DF +0xC2CBD4C3 0x3524 +0xC2CBD4C4 0x5335 +0xC2CBD4C5 0x53B3 +0xC2CBD4C6 0x3607 +0xC2CBD4C7 0x568A +0xC2CBD4C8 0x567D +0xC2CBD4C9 0x5689 +0xC2CBD4CA 0x3679 +0xC2CBD4CB 0x58CD +0xC2CBD4CC 0x58D0 +0xC2CBD4CD 0x3678 +0xC2CBD4CE 0x5B2B +0xC2CBD4CF 0x5B33 +0xC2CBD4D0 0x5B29 +0xC2CBD4D1 0x5B35 +0xC2CBD4D2 0x5B31 +0xC2CBD4D3 0x5B37 +0xC2CBD4D4 0x5C36 +0xC2CBD4D5 0x5DBE +0xC2CBD4D6 0x3819 +0xC2CBD4D7 0x5DB9 +0xC2CBD4D8 0x381C +0xC2CBD4D9 0x5DBB +0xC2CBD4DA 0x3818 +0xC2CBD4DB 0x61E2 +0xC2CBD4DC 0x61DB +0xC2CBD4DD 0x61DD +0xC2CBD4DE 0x61DC +0xC2CBD4DF 0x61DA +0xC2CBD4E0 0x2F8AF +0xC2CBD4E1 0x61D9 +0xC2CBD4E2 0x39BD +0xC2CBD4E3 0x3A5D +0xC2CBD4E4 0x64DF +0xC2CBD4E5 0x3A5A +0xC2CBD4E6 0x3A5E +0xC2CBD4E7 0x64E1 +0xC2CBD4E8 0x3A5C +0xC2CBD4E9 0x64EE +0xC2CBD4EA 0x3A5B +0xC2CBD4EB 0x65B5 +0xC2CBD4EC 0x66D4 +0xC2CBD4ED 0x66D5 +0xC2CBD4EE 0x3B21 +0xC2CBD4EF 0x66D0 +0xC2CBD4F0 0x66D1 +0xC2CBD4F1 0x66CE +0xC2CBD4F2 0x66D7 +0xC2CBD4F3 0x3B20 +0xC2CBD4F4 0x3B32 +0xC2CBD4F5 0x6A7D +0xC2CBD4F6 0x6A8A +0xC2CBD4F7 0x3BF2 +0xC2CBD4F8 0x6AA7 +0xC2CBD4F9 0x3BF5 +0xC2CBD4FA 0x6A99 +0xC2CBD4FB 0x6A82 +0xC2CBD4FC 0x6A88 +0xC2CBD4FD 0x3BEE +0xC2CBD4FE 0x3BEC +0xC2CBD5A1 0x6A86 +0xC2CBD5A2 0x3BEA +0xC2CBD5A3 0x6A98 +0xC2CBD5A4 0x6A9D +0xC2CBD5A5 0x3BED +0xC2CBD5A6 0x3BF3 +0xC2CBD5A7 0x6A8F +0xC2CBD5A8 0x3BF6 +0xC2CBD5A9 0x6AAA +0xC2CBD5AA 0x3C48 +0xC2CBD5AB 0x6B5D +0xC2CBD5AC 0x3C49 +0xC2CBD5AD 0x6C0A +0xC2CBD5AE 0x3D75 +0xC2CBD5AF 0x6FD7 +0xC2CBD5B0 0x6FD6 +0xC2CBD5B1 0x6FE5 +0xC2CBD5B2 0x3D6F +0xC2CBD5B3 0x3D7B +0xC2CBD5B4 0x3D73 +0xC2CBD5B5 0x6FD9 +0xC2CBD5B6 0x6FDA +0xC2CBD5B7 0x6FEA +0xC2CBD5B8 0x3D70 +0xC2CBD5B9 0x6FF6 +0xC2CBD5BA 0x24039 +0xC2CBD5BB 0x3D78 +0xC2CBD5BC 0x71E3 +0xC2CBD5BD 0x3DFE +0xC2CBD5BE 0x71E9 +0xC2CBD5BF 0x3E00 +0xC2CBD5C0 0x71EB +0xC2CBD5C1 0x71EF +0xC2CBD5C2 0x71F3 +0xC2CBD5C3 0x71EA +0xC2CBD5C4 0x3E01 +0xC2CBD5C5 0x2F921 +0xC2CBD5C6 0x3E55 +0xC2CBD5C7 0x3E56 +0xC2CBD5C8 0x3E9D +0xC2CBD5C9 0x7371 +0xC2CBD5CA 0x3EF9 +0xC2CBD5CB 0x74AE +0xC2CBD5CC 0x3EFF +0xC2CBD5CD 0x74B3 +0xC2CBD5CE 0x3EFD +0xC2CBD5CF 0x74AC +0xC2CBD5D0 0x3F43 +0xC2CBD5D1 0x3F41 +0xC2CBD5D2 0x7583 +0xC2CBD5D3 0x7645 +0xC2CBD5D4 0x764E +0xC2CBD5D5 0x7644 +0xC2CBD5D6 0x76A3 +0xC2CBD5D7 0x76A5 +0xC2CBD5D8 0x77A6 +0xC2CBD5D9 0x77A4 +0xC2CBD5DA 0x406F +0xC2CBD5DB 0x77A9 +0xC2CBD5DC 0x77AF +0xC2CBD5DD 0x408A +0xC2CBD5DE 0x40E5 +0xC2CBD5DF 0x40E6 +0xC2CBD5E0 0x78F0 +0xC2CBD5E1 0x78F8 +0xC2CBD5E2 0x78F1 +0xC2CBD5E3 0x417F +0xC2CBD5E4 0x7A49 +0xC2CBD5E5 0x41B5 +0xC2CBD5E6 0x41B6 +0xC2CBD5E7 0x41BB +0xC2CBD5E8 0x7AC2 +0xC2CBD5E9 0x7AF2 +0xC2CBD5EA 0x7AF3 +0xC2CBD5EB 0x7BFA +0xC2CBD5EC 0x4240 +0xC2CBD5ED 0x7BF6 +0xC2CBD5EE 0x7BFC +0xC2CBD5EF 0x7C18 +0xC2CBD5F0 0x7C08 +0xC2CBD5F1 0x7C12 +0xC2CBD5F2 0x429D +0xC2CBD5F3 0x429C +0xC2CBD5F4 0x7CDB +0xC2CBD5F5 0x7CDA +0xC2CBD5F6 0x430F +0xC2CBD5F7 0x4311 +0xC2CBD5F8 0x430D +0xC2CBD5F9 0x7E2C +0xC2CBD5FA 0x7E4D +0xC2CBD5FB 0x4314 +0xC2CBD5FC 0x4313 +0xC2CBD5FD 0x7F46 +0xC2CBD5FE 0x7FF6 +0xC2CBD6A1 0x802B +0xC2CBD6A2 0x8074 +0xC2CBD6A3 0x81B8 +0xC2CBD6A4 0x81C8 +0xC2CBD6A5 0x4482 +0xC2CBD6A6 0x4483 +0xC2CBD6A7 0x454D +0xC2CBD6A8 0x8592 +0xC2CBD6A9 0x8593 +0xC2CBD6AA 0x454F +0xC2CBD6AB 0x857F +0xC2CBD6AC 0x85AB +0xC2CBD6AD 0x8597 +0xC2CBD6AE 0x454C +0xC2CBD6AF 0x4551 +0xC2CBD6B0 0x85AC +0xC2CBD6B1 0x45EE +0xC2CBD6B2 0x45E8 +0xC2CBD6B3 0x4CCB +0xC2CBD6B4 0x87CE +0xC2CBD6B5 0x45EB +0xC2CBD6B6 0x87CD +0xC2CBD6B7 0x45E2 +0xC2CBD6B8 0x45E6 +0xC2CBD6B9 0x87C1 +0xC2CBD6BA 0x87B1 +0xC2CBD6BB 0x87C7 +0xC2CBD6BC 0x45EC +0xC2CBD6BD 0x8940 +0xC2CBD6BE 0x4659 +0xC2CBD6BF 0x893F +0xC2CBD6C0 0x8939 +0xC2CBD6C1 0x465D +0xC2CBD6C2 0x8943 +0xC2CBD6C3 0x4657 +0xC2CBD6C4 0x465B +0xC2CBD6C5 0x4656 +0xC2CBD6C6 0x89AB +0xC2CBD6C7 0x46FE +0xC2CBD6C8 0x8B1F +0xC2CBD6C9 0x8B09 +0xC2CBD6CA 0x8B0C +0xC2CBD6CB 0x4700 +0xC2CBD6CC 0x4701 +0xC2CBD6CD 0x8C40 +0xC2CBD6CE 0x4742 +0xC2CBD6CF 0x8C96 +0xC2CBD6D0 0x4760 +0xC2CBD6D1 0x8CF6 +0xC2CBD6D2 0x8CF7 +0xC2CBD6D3 0x481D +0xC2CBD6D4 0x8E46 +0xC2CBD6D5 0x8E4F +0xC2CBD6D6 0x483E +0xC2CBD6D7 0x4869 +0xC2CBD6D8 0x4865 +0xC2CBD6D9 0x8F3D +0xC2CBD6DA 0x8F41 +0xC2CBD6DB 0x9366 +0xC2CBD6DC 0x9378 +0xC2CBD6DD 0x935D +0xC2CBD6DE 0x9369 +0xC2CBD6DF 0x9374 +0xC2CBD6E0 0x937D +0xC2CBD6E1 0x936E +0xC2CBD6E2 0x9372 +0xC2CBD6E3 0x9373 +0xC2CBD6E4 0x9362 +0xC2CBD6E5 0x9348 +0xC2CBD6E6 0x9353 +0xC2CBD6E7 0x935F +0xC2CBD6E8 0x9368 +0xC2CBD6E9 0x4938 +0xC2CBD6EA 0x937F +0xC2CBD6EB 0x936B +0xC2CBD6EC 0x49AE +0xC2CBD6ED 0x95C4 +0xC2CBD6EE 0x49AD +0xC2CBD6EF 0x96AF +0xC2CBD6F0 0x96AD +0xC2CBD6F1 0x96B2 +0xC2CBD6F2 0x4A02 +0xC2CBD6F3 0x4A1F +0xC2CBD6F4 0x971A +0xC2CBD6F5 0x971B +0xC2CBD6F6 0x4A22 +0xC2CBD6F7 0x4A20 +0xC2CBD6F8 0x2F9F5 +0xC2CBD6F9 0x4A6C +0xC2CBD6FA 0x979B +0xC2CBD6FB 0x979F +0xC2CBD6FC 0x4A68 +0xC2CBD6FD 0x4A6D +0xC2CBD6FE 0x4A6E +0xC2CBD7A1 0x4AA0 +0xC2CBD7A2 0x4ACE +0xC2CBD7A3 0x4AD0 +0xC2CBD7A4 0x4AD1 +0xC2CBD7A5 0x4ACB +0xC2CBD7A6 0x9840 +0xC2CBD7A7 0x4AD2 +0xC2CBD7A8 0x9847 +0xC2CBD7A9 0x4AD3 +0xC2CBD7AA 0x98B7 +0xC2CBD7AB 0x4B20 +0xC2CBD7AC 0x4B4E +0xC2CBD7AD 0x4B4B +0xC2CBD7AE 0x4B72 +0xC2CBD7AF 0x4B70 +0xC2CBD7B0 0x99A2 +0xC2CBD7B1 0x4B92 +0xC2CBD7B2 0x4B8F +0xC2CBD7B3 0x9A00 +0xC2CBD7B4 0x99F3 +0xC2CBD7B5 0x4B90 +0xC2CBD7B6 0x29937 +0xC2CBD7B7 0x99F5 +0xC2CBD7B8 0x4BD9 +0xC2CBD7B9 0x4BD5 +0xC2CBD7BA 0x9ABD +0xC2CBD7BB 0x9B00 +0xC2CBD7BC 0x9B02 +0xC2CBD7BD 0x4BFA +0xC2CBD7BE 0x9B34 +0xC2CBD7BF 0x9B49 +0xC2CBD7C0 0x9B9F +0xC2CBD7C1 0x4C4B +0xC2CBD7C2 0x9BA3 +0xC2CBD7C3 0x9BCD +0xC2CBD7C4 0x9B99 +0xC2CBD7C5 0x9B9D +0xC2CBD7C6 0x4CD0 +0xC2CBD7C7 0x4CCE +0xC2CBD7C8 0x9D39 +0xC2CBD7C9 0x4CCF +0xC2CBD7CA 0x9D44 +0xC2CBD7CB 0x4CC4 +0xC2CBD7CC 0x4CCC +0xC2CBD7CD 0x9D35 +0xC2CBD7CE 0x4CD2 +0xC2CBD7CF 0x4D35 +0xC2CBD7D0 0x9EAF +0xC2CBD7D1 0x3E03 +0xC2CBD7D2 0x512F +0xC2CBD7D3 0x349E +0xC2CBD7D4 0x34AF +0xC2CBD7D5 0x9F8E +0xC2CBD7D6 0x360C +0xC2CBD7D7 0x569F +0xC2CBD7D8 0x569B +0xC2CBD7D9 0x569E +0xC2CBD7DA 0x5696 +0xC2CBD7DB 0x5694 +0xC2CBD7DC 0x56A0 +0xC2CBD7DD 0x367C +0xC2CBD7DE 0x5B3B +0xC2CBD7DF 0x3730 +0xC2CBD7E0 0x3731 +0xC2CBD7E1 0x5B3A +0xC2CBD7E2 0x5DC1 +0xC2CBD7E3 0x5F4D +0xC2CBD7E4 0x5F5D +0xC2CBD7E5 0x61F3 +0xC2CBD7E6 0x39A1 +0xC2CBD7E7 0x399E +0xC2CBD7E8 0x3A68 +0xC2CBD7E9 0x3A61 +0xC2CBD7EA 0x64F6 +0xC2CBD7EB 0x64E5 +0xC2CBD7EC 0x64EA +0xC2CBD7ED 0x64E7 +0xC2CBD7EE 0x6505 +0xC2CBD7EF 0x3A65 +0xC2CBD7F0 0x64F9 +0xC2CBD7F1 0x3A66 +0xC2CBD7F2 0x3A6A +0xC2CBD7F3 0x3AAB +0xC2CBD7F4 0x6AAB +0xC2CBD7F5 0x6AED +0xC2CBD7F6 0x6AB2 +0xC2CBD7F7 0x6AB0 +0xC2CBD7F8 0x6AB5 +0xC2CBD7F9 0x6ABE +0xC2CBD7FA 0x6AC1 +0xC2CBD7FB 0x6AC8 +0xC2CBD7FC 0x3BF9 +0xC2CBD7FD 0x6AC0 +0xC2CBD7FE 0x6ABC +0xC2CBD8A1 0x6AB1 +0xC2CBD8A2 0x6AC4 +0xC2CBD8A3 0x6ABF +0xC2CBD8A4 0x3C58 +0xC2CBD8A5 0x3C8A +0xC2CBD8A6 0x7008 +0xC2CBD8A7 0x7003 +0xC2CBD8A8 0x6FFD +0xC2CBD8A9 0x7010 +0xC2CBD8AA 0x7002 +0xC2CBD8AB 0x7013 +0xC2CBD8AC 0x3E04 +0xC2CBD8AD 0x71FA +0xC2CBD8AE 0x7200 +0xC2CBD8AF 0x74B9 +0xC2CBD8B0 0x74BC +0xC2CBD8B1 0x3F02 +0xC2CBD8B2 0x765B +0xC2CBD8B3 0x7651 +0xC2CBD8B4 0x764F +0xC2CBD8B5 0x76EB +0xC2CBD8B6 0x77B8 +0xC2CBD8B7 0x4079 +0xC2CBD8B8 0x77B9 +0xC2CBD8B9 0x77C1 +0xC2CBD8BA 0x77C0 +0xC2CBD8BB 0x77BE +0xC2CBD8BC 0x790B +0xC2CBD8BD 0x40EB +0xC2CBD8BE 0x7907 +0xC2CBD8BF 0x790A +0xC2CBD8C0 0x7908 +0xC2CBD8C1 0x40E9 +0xC2CBD8C2 0x790D +0xC2CBD8C3 0x7906 +0xC2CBD8C4 0x7915 +0xC2CBD8C5 0x79AF +0xC2CBD8C6 0x4120 +0xC2CBD8C7 0x4121 +0xC2CBD8C8 0x4181 +0xC2CBD8C9 0x7AF5 +0xC2CBD8CA 0x424D +0xC2CBD8CB 0x4259 +0xC2CBD8CC 0x7C2E +0xC2CBD8CD 0x4258 +0xC2CBD8CE 0x7C1B +0xC2CBD8CF 0x25CD1 +0xC2CBD8D0 0x7C1A +0xC2CBD8D1 0x7C24 +0xC2CBD8D2 0x42A5 +0xC2CBD8D3 0x42A9 +0xC2CBD8D4 0x7CE6 +0xC2CBD8D5 0x7CE3 +0xC2CBD8D6 0x431A +0xC2CBD8D7 0x4319 +0xC2CBD8D8 0x7E5D +0xC2CBD8D9 0x7E4F +0xC2CBD8DA 0x7E66 +0xC2CBD8DB 0x7E5B +0xC2CBD8DC 0x7F47 +0xC2CBD8DD 0x7FB4 +0xC2CBD8DE 0x4396 +0xC2CBD8DF 0x4398 +0xC2CBD8E0 0x4397 +0xC2CBD8E1 0x7FFA +0xC2CBD8E2 0x802E +0xC2CBD8E3 0x265DF +0xC2CBD8E4 0x43C8 +0xC2CBD8E5 0x81CE +0xC2CBD8E6 0x4443 +0xC2CBD8E7 0x4445 +0xC2CBD8E8 0x8219 +0xC2CBD8E9 0x4552 +0xC2CBD8EA 0x4557 +0xC2CBD8EB 0x85CC +0xC2CBD8EC 0x85B2 +0xC2CBD8ED 0x4555 +0xC2CBD8EE 0x85BB +0xC2CBD8EF 0x85C1 +0xC2CBD8F0 0x4556 +0xC2CBD8F1 0x4558 +0xC2CBD8F2 0x45F2 +0xC2CBD8F3 0x87E9 +0xC2CBD8F4 0x87EE +0xC2CBD8F5 0x87F0 +0xC2CBD8F6 0x87D6 +0xC2CBD8F7 0x880E +0xC2CBD8F8 0x87DA +0xC2CBD8F9 0x8948 +0xC2CBD8FA 0x894A +0xC2CBD8FB 0x894E +0xC2CBD8FC 0x894D +0xC2CBD8FD 0x89B1 +0xC2CBD8FE 0x89B0 +0xC2CBD9A1 0x89B3 +0xC2CBD9A2 0x4707 +0xC2CBD9A3 0x8B38 +0xC2CBD9A4 0x8B32 +0xC2CBD9A5 0x4708 +0xC2CBD9A6 0x8B2D +0xC2CBD9A7 0x470A +0xC2CBD9A8 0x8B34 +0xC2CBD9A9 0x431B +0xC2CBD9AA 0x8B29 +0xC2CBD9AB 0x8C74 +0xC2CBD9AC 0x4761 +0xC2CBD9AD 0x4762 +0xC2CBD9AE 0x8D03 +0xC2CBD9AF 0x47C2 +0xC2CBD9B0 0x47C6 +0xC2CBD9B1 0x8DA9 +0xC2CBD9B2 0x8E58 +0xC2CBD9B3 0x481E +0xC2CBD9B4 0x4825 +0xC2CBD9B5 0x8EBF +0xC2CBD9B6 0x8EC1 +0xC2CBD9B7 0x8F4A +0xC2CBD9B8 0x8FAC +0xC2CBD9B9 0x48B0 +0xC2CBD9BA 0x9089 +0xC2CBD9BB 0x913D +0xC2CBD9BC 0x913C +0xC2CBD9BD 0x91A9 +0xC2CBD9BE 0x93A0 +0xC2CBD9BF 0x493D +0xC2CBD9C0 0x9390 +0xC2CBD9C1 0x493E +0xC2CBD9C2 0x9393 +0xC2CBD9C3 0x938B +0xC2CBD9C4 0x93AD +0xC2CBD9C5 0x93BB +0xC2CBD9C6 0x93B8 +0xC2CBD9C7 0x4946 +0xC2CBD9C8 0x4945 +0xC2CBD9C9 0x939C +0xC2CBD9CA 0x95D8 +0xC2CBD9CB 0x95D7 +0xC2CBD9CC 0x4A03 +0xC2CBD9CD 0x4A26 +0xC2CBD9CE 0x4A27 +0xC2CBD9CF 0x975D +0xC2CBD9D0 0x97A9 +0xC2CBD9D1 0x97DA +0xC2CBD9D2 0x4A98 +0xC2CBD9D3 0x4AAD +0xC2CBD9D4 0x4AD5 +0xC2CBD9D5 0x4ADA +0xC2CBD9D6 0x9854 +0xC2CBD9D7 0x4AD9 +0xC2CBD9D8 0x9855 +0xC2CBD9D9 0x984B +0xC2CBD9DA 0x4ADD +0xC2CBD9DB 0x983F +0xC2CBD9DC 0x98B9 +0xC2CBD9DD 0x4B15 +0xC2CBD9DE 0x4B16 +0xC2CBD9DF 0x4B17 +0xC2CBD9E0 0x4B21 +0xC2CBD9E1 0x9938 +0xC2CBD9E2 0x9936 +0xC2CBD9E3 0x9940 +0xC2CBD9E4 0x4B4C +0xC2CBD9E5 0x993B +0xC2CBD9E6 0x9939 +0xC2CBD9E7 0x99A4 +0xC2CBD9E8 0x4B96 +0xC2CBD9E9 0x4B98 +0xC2CBD9EA 0x9A08 +0xC2CBD9EB 0x9A0C +0xC2CBD9EC 0x4B9B +0xC2CBD9ED 0x9A10 +0xC2CBD9EE 0x4BFF +0xC2CBD9EF 0x9B07 +0xC2CBD9F0 0x4C25 +0xC2CBD9F1 0x9BD2 +0xC2CBD9F2 0x4C4F +0xC2CBD9F3 0x9BC2 +0xC2CBD9F4 0x9BBB +0xC2CBD9F5 0x9BCC +0xC2CBD9F6 0x9BCB +0xC2CBD9F7 0x4C56 +0xC2CBD9F8 0x4C54 +0xC2CBD9F9 0x9D4D +0xC2CBD9FA 0x9D63 +0xC2CBD9FB 0x9D4E +0xC2CBD9FC 0x4CD8 +0xC2CBD9FD 0x9D50 +0xC2CBD9FE 0x9D55 +0xC2CBDAA1 0x4CD7 +0xC2CBDAA2 0x9D5E +0xC2CBDAA3 0x4D26 +0xC2CBDAA4 0x9E90 +0xC2CBDAA5 0x9EB2 +0xC2CBDAA6 0x9EB1 +0xC2CBDAA7 0x4D38 +0xC2CBDAA8 0x9ECA +0xC2CBDAA9 0x9F02 +0xC2CBDAAA 0x9F27 +0xC2CBDAAB 0x9F26 +0xC2CBDAAC 0x4D8A +0xC2CBDAAD 0x56AF +0xC2CBDAAE 0x58E0 +0xC2CBDAAF 0x58DC +0xC2CBDAB0 0x3734 +0xC2CBDAB1 0x5B39 +0xC2CBDAB2 0x3735 +0xC2CBDAB3 0x2F86A +0xC2CBDAB4 0x5B7C +0xC2CBDAB5 0x5BF3 +0xC2CBDAB6 0x2F870 +0xC2CBDAB7 0x37A1 +0xC2CBDAB8 0x5C6B +0xC2CBDAB9 0x5DC4 +0xC2CBDABA 0x650B +0xC2CBDABB 0x6508 +0xC2CBDABC 0x650A +0xC2CBDABD 0x3A6C +0xC2CBDABE 0x3A6D +0xC2CBDABF 0x65DC +0xC2CBDAC0 0x3B29 +0xC2CBDAC1 0x3B2A +0xC2CBDAC2 0x66E1 +0xC2CBDAC3 0x66DF +0xC2CBDAC4 0x6ACE +0xC2CBDAC5 0x6AD4 +0xC2CBDAC6 0x6AE3 +0xC2CBDAC7 0x6AD7 +0xC2CBDAC8 0x6AE2 +0xC2CBDAC9 0x3C00 +0xC2CBDACA 0x3C08 +0xC2CBDACB 0x3C06 +0xC2CBDACC 0x3C05 +0xC2CBDACD 0x6AD8 +0xC2CBDACE 0x6AD5 +0xC2CBDACF 0x6AD2 +0xC2CBDAD0 0x3CB1 +0xC2CBDAD1 0x3D88 +0xC2CBDAD2 0x701E +0xC2CBDAD3 0x702C +0xC2CBDAD4 0x7025 +0xC2CBDAD5 0x6FF3 +0xC2CBDAD6 0x7204 +0xC2CBDAD7 0x7208 +0xC2CBDAD8 0x7215 +0xC2CBDAD9 0x3E09 +0xC2CBDADA 0x74C4 +0xC2CBDADB 0x74C9 +0xC2CBDADC 0x74C7 +0xC2CBDADD 0x74C8 +0xC2CBDADE 0x76A9 +0xC2CBDADF 0x77C6 +0xC2CBDAE0 0x77C5 +0xC2CBDAE1 0x7918 +0xC2CBDAE2 0x791A +0xC2CBDAE3 0x7920 +0xC2CBDAE4 0x4122 +0xC2CBDAE5 0x7A66 +0xC2CBDAE6 0x7A64 +0xC2CBDAE7 0x7A6A +0xC2CBDAE8 0x41D5 +0xC2CBDAE9 0x4261 +0xC2CBDAEA 0x425D +0xC2CBDAEB 0x4262 +0xC2CBDAEC 0x424F +0xC2CBDAED 0x4260 +0xC2CBDAEE 0x7C35 +0xC2CBDAEF 0x7C34 +0xC2CBDAF0 0x42AA +0xC2CBDAF1 0x4322 +0xC2CBDAF2 0x7E6C +0xC2CBDAF3 0x4321 +0xC2CBDAF4 0x7E6E +0xC2CBDAF5 0x7E71 +0xC2CBDAF6 0x4446 +0xC2CBDAF7 0x81D4 +0xC2CBDAF8 0x81D6 +0xC2CBDAF9 0x821A +0xC2CBDAFA 0x8262 +0xC2CBDAFB 0x8265 +0xC2CBDAFC 0x8276 +0xC2CBDAFD 0x85DB +0xC2CBDAFE 0x85D6 +0xC2CBDBA1 0x4562 +0xC2CBDBA2 0x85E7 +0xC2CBDBA3 0x4560 +0xC2CBDBA4 0x4564 +0xC2CBDBA5 0x85F4 +0xC2CBDBA6 0x2F9B6 +0xC2CBDBA7 0x87FD +0xC2CBDBA8 0x87D5 +0xC2CBDBA9 0x8807 +0xC2CBDBAA 0x45F6 +0xC2CBDBAB 0x880F +0xC2CBDBAC 0x87F8 +0xC2CBDBAD 0x2F9C1 +0xC2CBDBAE 0x4619 +0xC2CBDBAF 0x8987 +0xC2CBDBB0 0x4691 +0xC2CBDBB1 0x89B5 +0xC2CBDBB2 0x89F5 +0xC2CBDBB3 0x470D +0xC2CBDBB4 0x8B3F +0xC2CBDBB5 0x8B43 +0xC2CBDBB6 0x8B4C +0xC2CBDBB7 0x4765 +0xC2CBDBB8 0x8D0B +0xC2CBDBB9 0x8E6B +0xC2CBDBBA 0x8E68 +0xC2CBDBBB 0x8E70 +0xC2CBDBBC 0x8E75 +0xC2CBDBBD 0x8E77 +0xC2CBDBBE 0x483F +0xC2CBDBBF 0x8EC3 +0xC2CBDBC0 0x494B +0xC2CBDBC1 0x93E9 +0xC2CBDBC2 0x93EA +0xC2CBDBC3 0x93CB +0xC2CBDBC4 0x93C5 +0xC2CBDBC5 0x93C6 +0xC2CBDBC6 0x4948 +0xC2CBDBC7 0x93ED +0xC2CBDBC8 0x93D3 +0xC2CBDBC9 0x4952 +0xC2CBDBCA 0x93E5 +0xC2CBDBCB 0x494A +0xC2CBDBCC 0x4951 +0xC2CBDBCD 0x93DB +0xC2CBDBCE 0x93EB +0xC2CBDBCF 0x93E0 +0xC2CBDBD0 0x93C1 +0xC2CBDBD1 0x4950 +0xC2CBDBD2 0x494C +0xC2CBDBD3 0x95DD +0xC2CBDBD4 0x49EE +0xC2CBDBD5 0x4A04 +0xC2CBDBD6 0x4A06 +0xC2CBDBD7 0x4A2D +0xC2CBDBD8 0x4A2E +0xC2CBDBD9 0x4A2F +0xC2CBDBDA 0x4A7B +0xC2CBDBDB 0x4A78 +0xC2CBDBDC 0x4A77 +0xC2CBDBDD 0x97B2 +0xC2CBDBDE 0x97B4 +0xC2CBDBDF 0x97B1 +0xC2CBDBE0 0x97B5 +0xC2CBDBE1 0x97F2 +0xC2CBDBE2 0x4AA2 +0xC2CBDBE3 0x4AA1 +0xC2CBDBE4 0x4AE3 +0xC2CBDBE5 0x9856 +0xC2CBDBE6 0x4B1A +0xC2CBDBE7 0x4B19 +0xC2CBDBE8 0x4B57 +0xC2CBDBE9 0x9944 +0xC2CBDBEA 0x4B9E +0xC2CBDBEB 0x9A26 +0xC2CBDBEC 0x9A1F +0xC2CBDBED 0x9A18 +0xC2CBDBEE 0x9A21 +0xC2CBDBEF 0x9A17 +0xC2CBDBF0 0x4BDD +0xC2CBDBF1 0x9B09 +0xC2CBDBF2 0x4C05 +0xC2CBDBF3 0x4C28 +0xC2CBDBF4 0x9BC5 +0xC2CBDBF5 0x9BDF +0xC2CBDBF6 0x4C60 +0xC2CBDBF7 0x9BE3 +0xC2CBDBF8 0x4C66 +0xC2CBDBF9 0x9BE9 +0xC2CBDBFA 0x9BEE +0xC2CBDBFB 0x4C67 +0xC2CBDBFC 0x4C68 +0xC2CBDBFD 0x9D66 +0xC2CBDBFE 0x9D7A +0xC2CBDCA1 0x4CDE +0xC2CBDCA2 0x9D6E +0xC2CBDCA3 0x9D91 +0xC2CBDCA4 0x9D83 +0xC2CBDCA5 0x9D76 +0xC2CBDCA6 0x9D7E +0xC2CBDCA7 0x9D6D +0xC2CBDCA8 0x4CE1 +0xC2CBDCA9 0x9E95 +0xC2CBDCAA 0x9EE3 +0xC2CBDCAB 0x4D69 +0xC2CBDCAC 0x4D77 +0xC2CBDCAD 0x9F03 +0xC2CBDCAE 0x9F04 +0xC2CBDCAF 0x2FA19 +0xC2CBDCB0 0x9F17 +0xC2CBDCB1 0x34A6 +0xC2CBDCB2 0x5136 +0xC2CBDCB3 0x34A5 +0xC2CBDCB4 0x5336 +0xC2CBDCB5 0x3614 +0xC2CBDCB6 0x5B42 +0xC2CBDCB7 0x3736 +0xC2CBDCB8 0x3738 +0xC2CBDCB9 0x5B44 +0xC2CBDCBA 0x5B46 +0xC2CBDCBB 0x5B7E +0xC2CBDCBC 0x5DCA +0xC2CBDCBD 0x5DC8 +0xC2CBDCBE 0x5DCC +0xC2CBDCBF 0x5EF0 +0xC2CBDCC0 0x3A70 +0xC2CBDCC1 0x6585 +0xC2CBDCC2 0x66E5 +0xC2CBDCC3 0x66E7 +0xC2CBDCC4 0x3B2B +0xC2CBDCC5 0x3C11 +0xC2CBDCC6 0x3C0A +0xC2CBDCC7 0x6AF4 +0xC2CBDCC8 0x3C0D +0xC2CBDCC9 0x6AE9 +0xC2CBDCCA 0x3C16 +0xC2CBDCCB 0x3C10 +0xC2CBDCCC 0x3C09 +0xC2CBDCCD 0x3C0E +0xC2CBDCCE 0x3C7A +0xC2CBDCCF 0x703D +0xC2CBDCD0 0x3D8C +0xC2CBDCD1 0x7036 +0xC2CBDCD2 0x3D91 +0xC2CBDCD3 0x7216 +0xC2CBDCD4 0x3E0A +0xC2CBDCD5 0x7212 +0xC2CBDCD6 0x720F +0xC2CBDCD7 0x7217 +0xC2CBDCD8 0x7211 +0xC2CBDCD9 0x720B +0xC2CBDCDA 0x3E08 +0xC2CBDCDB 0x3E0B +0xC2CBDCDC 0x74CD +0xC2CBDCDD 0x74D0 +0xC2CBDCDE 0x74CC +0xC2CBDCDF 0x74CE +0xC2CBDCE0 0x74D1 +0xC2CBDCE1 0x3F07 +0xC2CBDCE2 0x7589 +0xC2CBDCE3 0x40F2 +0xC2CBDCE4 0x7A6F +0xC2CBDCE5 0x7C4B +0xC2CBDCE6 0x7C44 +0xC2CBDCE7 0x7C55 +0xC2CBDCE8 0x42AE +0xC2CBDCE9 0x4324 +0xC2CBDCEA 0x4326 +0xC2CBDCEB 0x4327 +0xC2CBDCEC 0x7E7F +0xC2CBDCED 0x8B71 +0xC2CBDCEE 0x4399 +0xC2CBDCEF 0x802F +0xC2CBDCF0 0x807A +0xC2CBDCF1 0x807B +0xC2CBDCF2 0x807C +0xC2CBDCF3 0x455F +0xC2CBDCF4 0x456A +0xC2CBDCF5 0x4571 +0xC2CBDCF6 0x85FC +0xC2CBDCF7 0x8610 +0xC2CBDCF8 0x8602 +0xC2CBDCF9 0x456C +0xC2CBDCFA 0x456F +0xC2CBDCFB 0x85EE +0xC2CBDCFC 0x8603 +0xC2CBDCFD 0x4568 +0xC2CBDCFE 0x860D +0xC2CBDDA1 0x8613 +0xC2CBDDA2 0x8608 +0xC2CBDDA3 0x860F +0xC2CBDDA4 0x8818 +0xC2CBDDA5 0x8812 +0xC2CBDDA6 0x4601 +0xC2CBDDA7 0x4668 +0xC2CBDDA8 0x8967 +0xC2CBDDA9 0x8965 +0xC2CBDDAA 0x89BB +0xC2CBDDAB 0x8B69 +0xC2CBDDAC 0x8B62 +0xC2CBDDAD 0x4713 +0xC2CBDDAE 0x8B6E +0xC2CBDDAF 0x4716 +0xC2CBDDB0 0x8B61 +0xC2CBDDB1 0x4718 +0xC2CBDDB2 0x8B64 +0xC2CBDDB3 0x8B4D +0xC2CBDDB4 0x8C51 +0xC2CBDDB5 0x4789 +0xC2CBDDB6 0x47C8 +0xC2CBDDB7 0x8E83 +0xC2CBDDB8 0x8EC6 +0xC2CBDDB9 0x4884 +0xC2CBDDBA 0x941F +0xC2CBDDBB 0x4954 +0xC2CBDDBC 0x9404 +0xC2CBDDBD 0x9417 +0xC2CBDDBE 0x9408 +0xC2CBDDBF 0x9405 +0xC2CBDDC0 0x4956 +0xC2CBDDC1 0x93F3 +0xC2CBDDC2 0x941E +0xC2CBDDC3 0x9402 +0xC2CBDDC4 0x941A +0xC2CBDDC5 0x941B +0xC2CBDDC6 0x9427 +0xC2CBDDC7 0x941C +0xC2CBDDC8 0x495A +0xC2CBDDC9 0x96B5 +0xC2CBDDCA 0x4A05 +0xC2CBDDCB 0x4A07 +0xC2CBDDCC 0x9733 +0xC2CBDDCD 0x4A31 +0xC2CBDDCE 0x9734 +0xC2CBDDCF 0x9731 +0xC2CBDDD0 0x97B8 +0xC2CBDDD1 0x97BA +0xC2CBDDD2 0x4AA3 +0xC2CBDDD3 0x97FC +0xC2CBDDD4 0x4AEB +0xC2CBDDD5 0x4B1C +0xC2CBDDD6 0x98C3 +0xC2CBDDD7 0x4B5A +0xC2CBDDD8 0x994D +0xC2CBDDD9 0x4B5B +0xC2CBDDDA 0x9A2F +0xC2CBDDDB 0x4BA6 +0xC2CBDDDC 0x4BAA +0xC2CBDDDD 0x4BA5 +0xC2CBDDDE 0x9AC9 +0xC2CBDDDF 0x4BE1 +0xC2CBDDE0 0x9AC8 +0xC2CBDDE1 0x9AC4 +0xC2CBDDE2 0x9B2A +0xC2CBDDE3 0x9B38 +0xC2CBDDE4 0x9B50 +0xC2CBDDE5 0x4C2A +0xC2CBDDE6 0x9C0A +0xC2CBDDE7 0x9BFB +0xC2CBDDE8 0x9C04 +0xC2CBDDE9 0x9BFC +0xC2CBDDEA 0x9BFE +0xC2CBDDEB 0x4C72 +0xC2CBDDEC 0x4C6F +0xC2CBDDED 0x4C73 +0xC2CBDDEE 0x9C02 +0xC2CBDDEF 0x9BF6 +0xC2CBDDF0 0x9C1B +0xC2CBDDF1 0x9BF9 +0xC2CBDDF2 0x9C15 +0xC2CBDDF3 0x9C10 +0xC2CBDDF4 0x9BFF +0xC2CBDDF5 0x9C00 +0xC2CBDDF6 0x9C0C +0xC2CBDDF7 0x4C6B +0xC2CBDDF8 0x4CE6 +0xC2CBDDF9 0x9D95 +0xC2CBDDFA 0x9DA5 +0xC2CBDDFB 0x4CE9 +0xC2CBDDFC 0x4CEC +0xC2CBDDFD 0x4CE8 +0xC2CBDDFE 0x4CF0 +0xC2CBDEA1 0x9E98 +0xC2CBDEA2 0x9EC1 +0xC2CBDEA3 0x4D8C +0xC2CBDEA4 0x9F5A +0xC2CBDEA5 0x5164 +0xC2CBDEA6 0x56BB +0xC2CBDEA7 0x3615 +0xC2CBDEA8 0x58E6 +0xC2CBDEA9 0x5B49 +0xC2CBDEAA 0x5BF7 +0xC2CBDEAB 0x3771 +0xC2CBDEAC 0x3826 +0xC2CBDEAD 0x5DD0 +0xC2CBDEAE 0x38C6 +0xC2CBDEAF 0x5FC2 +0xC2CBDEB0 0x39A8 +0xC2CBDEB1 0x6511 +0xC2CBDEB2 0x3A73 +0xC2CBDEB3 0x6AFF +0xC2CBDEB4 0x6AFE +0xC2CBDEB5 0x6AFD +0xC2CBDEB6 0x3C15 +0xC2CBDEB7 0x6B01 +0xC2CBDEB8 0x3D98 +0xC2CBDEB9 0x3D97 +0xC2CBDEBA 0x704B +0xC2CBDEBB 0x704D +0xC2CBDEBC 0x7047 +0xC2CBDEBD 0x74D3 +0xC2CBDEBE 0x7668 +0xC2CBDEBF 0x7667 +0xC2CBDEC0 0x3FD7 +0xC2CBDEC1 0x4080 +0xC2CBDEC2 0x77D1 +0xC2CBDEC3 0x7930 +0xC2CBDEC4 0x7932 +0xC2CBDEC5 0x792E +0xC2CBDEC6 0x4188 +0xC2CBDEC7 0x9F9D +0xC2CBDEC8 0x7AC9 +0xC2CBDEC9 0x7AC8 +0xC2CBDECA 0x4269 +0xC2CBDECB 0x7C56 +0xC2CBDECC 0x7C51 +0xC2CBDECD 0x426B +0xC2CBDECE 0x4329 +0xC2CBDECF 0x4328 +0xC2CBDED0 0x7E85 +0xC2CBDED1 0x7E89 +0xC2CBDED2 0x7E8E +0xC2CBDED3 0x7E84 +0xC2CBDED4 0x445F +0xC2CBDED5 0x826A +0xC2CBDED6 0x862B +0xC2CBDED7 0x862F +0xC2CBDED8 0x8628 +0xC2CBDED9 0x4574 +0xC2CBDEDA 0x8616 +0xC2CBDEDB 0x8615 +0xC2CBDEDC 0x861D +0xC2CBDEDD 0x881A +0xC2CBDEDE 0x4602 +0xC2CBDEDF 0x466A +0xC2CBDEE0 0x4694 +0xC2CBDEE1 0x89BC +0xC2CBDEE2 0x8B75 +0xC2CBDEE3 0x8B7C +0xC2CBDEE4 0x478A +0xC2CBDEE5 0x8D11 +0xC2CBDEE6 0x8D12 +0xC2CBDEE7 0x8F5C +0xC2CBDEE8 0x91BB +0xC2CBDEE9 0x4964 +0xC2CBDEEA 0x93F4 +0xC2CBDEEB 0x495E +0xC2CBDEEC 0x4961 +0xC2CBDEED 0x942D +0xC2CBDEEE 0x4965 +0xC2CBDEEF 0x4966 +0xC2CBDEF0 0x96E4 +0xC2CBDEF1 0x9737 +0xC2CBDEF2 0x9736 +0xC2CBDEF3 0x9767 +0xC2CBDEF4 0x97BE +0xC2CBDEF5 0x97BD +0xC2CBDEF6 0x97E2 +0xC2CBDEF7 0x9868 +0xC2CBDEF8 0x9866 +0xC2CBDEF9 0x98C8 +0xC2CBDEFA 0x98CA +0xC2CBDEFB 0x98C7 +0xC2CBDEFC 0x98DC +0xC2CBDEFD 0x4B5F +0xC2CBDEFE 0x994F +0xC2CBDFA1 0x99A9 +0xC2CBDFA2 0x9A3C +0xC2CBDFA3 0x4BAF +0xC2CBDFA4 0x9A3B +0xC2CBDFA5 0x9ACE +0xC2CBDFA6 0x4C0D +0xC2CBDFA7 0x9B14 +0xC2CBDFA8 0x9B53 +0xC2CBDFA9 0x4C7C +0xC2CBDFAA 0x9C2E +0xC2CBDFAB 0x4C7A +0xC2CBDFAC 0x9C1F +0xC2CBDFAD 0x4C76 +0xC2CBDFAE 0x4C79 +0xC2CBDFAF 0x4C7D +0xC2CBDFB0 0x4C77 +0xC2CBDFB1 0x9DB0 +0xC2CBDFB2 0x9DBD +0xC2CBDFB3 0x4CF6 +0xC2CBDFB4 0x4CF1 +0xC2CBDFB5 0x9DAE +0xC2CBDFB6 0x9DC4 +0xC2CBDFB7 0x9E7B +0xC2CBDFB8 0x400B +0xC2CBDFB9 0x4D29 +0xC2CBDFBA 0x9E9E +0xC2CBDFBB 0x4D6F +0xC2CBDFBC 0x9F05 +0xC2CBDFBD 0x4D9A +0xC2CBDFBE 0x9F69 +0xC2CBDFBF 0x9FA1 +0xC2CBDFC0 0x56C7 +0xC2CBDFC1 0x571D +0xC2CBDFC2 0x5B4A +0xC2CBDFC3 0x5DD3 +0xC2CBDFC4 0x3869 +0xC2CBDFC5 0x5F72 +0xC2CBDFC6 0x6202 +0xC2CBDFC7 0x39AB +0xC2CBDFC8 0x6235 +0xC2CBDFC9 0x6527 +0xC2CBDFCA 0x651E +0xC2CBDFCB 0x651F +0xC2CBDFCC 0x3B2C +0xC2CBDFCD 0x3B2D +0xC2CBDFCE 0x6B07 +0xC2CBDFCF 0x6B06 +0xC2CBDFD0 0x3C17 +0xC2CBDFD1 0x3D9A +0xC2CBDFD2 0x7054 +0xC2CBDFD3 0x721C +0xC2CBDFD4 0x7220 +0xC2CBDFD5 0x7AF8 +0xC2CBDFD6 0x426E +0xC2CBDFD7 0x7C5D +0xC2CBDFD8 0x7C58 +0xC2CBDFD9 0x432C +0xC2CBDFDA 0x7E92 +0xC2CBDFDB 0x7F4E +0xC2CBDFDC 0x43CA +0xC2CBDFDD 0x4578 +0xC2CBDFDE 0x4606 +0xC2CBDFDF 0x8827 +0xC2CBDFE0 0x4607 +0xC2CBDFE1 0x8B81 +0xC2CBDFE2 0x8B83 +0xC2CBDFE3 0x4720 +0xC2CBDFE4 0x8C44 +0xC2CBDFE5 0x4753 +0xC2CBDFE6 0x47CE +0xC2CBDFE7 0x487A +0xC2CBDFE8 0x4879 +0xC2CBDFE9 0x9442 +0xC2CBDFEA 0x944D +0xC2CBDFEB 0x9454 +0xC2CBDFEC 0x944E +0xC2CBDFED 0x496B +0xC2CBDFEE 0x9443 +0xC2CBDFEF 0x4967 +0xC2CBDFF0 0x496D +0xC2CBDFF1 0x973C +0xC2CBDFF2 0x9740 +0xC2CBDFF3 0x97C0 +0xC2CBDFF4 0x4A85 +0xC2CBDFF5 0x4AB0 +0xC2CBDFF6 0x4AF3 +0xC2CBDFF7 0x4B63 +0xC2CBDFF8 0x995A +0xC2CBDFF9 0x9A51 +0xC2CBDFFA 0x4BB6 +0xC2CBDFFB 0x9ADD +0xC2CBDFFC 0x4C82 +0xC2CBDFFD 0x4C7F +0xC2CBDFFE 0x9C38 +0xC2CBE0A1 0x4C86 +0xC2CBE0A2 0x9C45 +0xC2CBE0A3 0x9C3A +0xC2CBE0A4 0x4C84 +0xC2CBE0A5 0x9C35 +0xC2CBE0A6 0x4CFC +0xC2CBE0A7 0x4CFD +0xC2CBE0A8 0x4CFA +0xC2CBE0A9 0x9EF1 +0xC2CBE0AA 0x4D87 +0xC2CBE0AB 0x9F93 +0xC2CBE0AC 0x529A +0xC2CBE0AD 0x361A +0xC2CBE0AE 0x3619 +0xC2CBE0AF 0x8641 +0xC2CBE0B0 0x5DD7 +0xC2CBE0B1 0x3A75 +0xC2CBE0B2 0x6528 +0xC2CBE0B3 0x3C1A +0xC2CBE0B4 0x3C1B +0xC2CBE0B5 0x3C19 +0xC2CBE0B6 0x7053 +0xC2CBE0B7 0x7059 +0xC2CBE0B8 0x3D9C +0xC2CBE0B9 0x7221 +0xC2CBE0BA 0x3E10 +0xC2CBE0BB 0x766F +0xC2CBE0BC 0x7937 +0xC2CBE0BD 0x79B5 +0xC2CBE0BE 0x7C62 +0xC2CBE0BF 0x7C5E +0xC2CBE0C0 0x7CF5 +0xC2CBE0C1 0x457B +0xC2CBE0C2 0x457C +0xC2CBE0C3 0x863D +0xC2CBE0C4 0x4608 +0xC2CBE0C5 0x882D +0xC2CBE0C6 0x8989 +0xC2CBE0C7 0x8B8D +0xC2CBE0C8 0x8B87 +0xC2CBE0C9 0x8B90 +0xC2CBE0CA 0x8D1A +0xC2CBE0CB 0x8E99 +0xC2CBE0CC 0x4841 +0xC2CBE0CD 0x48E3 +0xC2CBE0CE 0x4972 +0xC2CBE0CF 0x945F +0xC2CBE0D0 0x4973 +0xC2CBE0D1 0x4968 +0xC2CBE0D2 0x9456 +0xC2CBE0D3 0x9461 +0xC2CBE0D4 0x945B +0xC2CBE0D5 0x945A +0xC2CBE0D6 0x945C +0xC2CBE0D7 0x9465 +0xC2CBE0D8 0x4A35 +0xC2CBE0D9 0x9741 +0xC2CBE0DA 0x4A88 +0xC2CBE0DB 0x4A9D +0xC2CBE0DC 0x986E +0xC2CBE0DD 0x986C +0xC2CBE0DE 0x986D +0xC2CBE0DF 0x4275 +0xC2CBE0E0 0x99AA +0xC2CBE0E1 0x9A5C +0xC2CBE0E2 0x9A58 +0xC2CBE0E3 0x9ADE +0xC2CBE0E4 0x4C8F +0xC2CBE0E5 0x9C4F +0xC2CBE0E6 0x9C51 +0xC2CBE0E7 0x4C8E +0xC2CBE0E8 0x9C53 +0xC2CBE0E9 0x4D05 +0xC2CBE0EA 0x4D04 +0xC2CBE0EB 0x4CFF +0xC2CBE0EC 0x9DFC +0xC2CBE0ED 0x9F39 +0xC2CBE0EE 0x4D9E +0xC2CBE0EF 0x513E +0xC2CBE0F0 0x3554 +0xC2CBE0F1 0x56D2 +0xC2CBE0F2 0x3681 +0xC2CBE0F3 0x5B4F +0xC2CBE0F4 0x6B14 +0xC2CBE0F5 0x40FA +0xC2CBE0F6 0x7A72 +0xC2CBE0F7 0x7A73 +0xC2CBE0F8 0x4332 +0xC2CBE0F9 0x4670 +0xC2CBE0FA 0x466E +0xC2CBE0FB 0x8B91 +0xC2CBE0FC 0x2F9D6 +0xC2CBE0FD 0x487C +0xC2CBE0FE 0x91BF +0xC2CBE1A1 0x4975 +0xC2CBE1A2 0x946C +0xC2CBE1A3 0x4974 +0xC2CBE1A4 0x4977 +0xC2CBE1A5 0x96E6 +0xC2CBE1A6 0x9745 +0xC2CBE1A7 0x4A37 +0xC2CBE1A8 0x97C8 +0xC2CBE1A9 0x97E4 +0xC2CBE1AA 0x995D +0xC2CBE1AB 0x4BBA +0xC2CBE1AC 0x9B21 +0xC2CBE1AD 0x4C11 +0xC2CBE1AE 0x9B2C +0xC2CBE1AF 0x9B57 +0xC2CBE1B0 0x4C92 +0xC2CBE1B1 0x4C99 +0xC2CBE1B2 0x9C5D +0xC2CBE1B3 0x9C61 +0xC2CBE1B4 0x9C65 +0xC2CBE1B5 0x9E08 +0xC2CBE1B6 0x4D0A +0xC2CBE1B7 0x4D2A +0xC2CBE1B8 0x4D2B +0xC2CBE1B9 0x4D44 +0xC2CBE1BA 0x4D79 +0xC2CBE1BB 0x9F45 +0xC2CBE1BC 0x34AA +0xC2CBE1BD 0x3748 +0xC2CBE1BE 0x6205 +0xC2CBE1BF 0x66EF +0xC2CBE1C0 0x6B1B +0xC2CBE1C1 0x6B1D +0xC2CBE1C2 0x7225 +0xC2CBE1C3 0x7224 +0xC2CBE1C4 0x7C6D +0xC2CBE1C5 0x42B4 +0xC2CBE1C6 0x8642 +0xC2CBE1C7 0x8649 +0xC2CBE1C8 0x460D +0xC2CBE1C9 0x8978 +0xC2CBE1CA 0x898A +0xC2CBE1CB 0x8B97 +0xC2CBE1CC 0x4754 +0xC2CBE1CD 0x8C9B +0xC2CBE1CE 0x8D1C +0xC2CBE1CF 0x4830 +0xC2CBE1D0 0x8EA2 +0xC2CBE1D1 0x4A09 +0xC2CBE1D2 0x4A38 +0xC2CBE1D3 0x4A36 +0xC2CBE1D4 0x4A8B +0xC2CBE1D5 0x4AF7 +0xC2CBE1D6 0x4B66 +0xC2CBE1D7 0x4BBD +0xC2CBE1D8 0x4C1E +0xC2CBE1D9 0x9C6C +0xC2CBE1DA 0x4C96 +0xC2CBE1DB 0x9C6F +0xC2CBE1DC 0x4D0D +0xC2CBE1DD 0x9E0E +0xC2CBE1DE 0x4D73 +0xC2CBE1DF 0x9F08 +0xC2CBE1E0 0x9F1D +0xC2CBE1E1 0x9FA3 +0xC2CBE1E2 0x373B +0xC2CBE1E3 0x373C +0xC2CBE1E4 0x5F60 +0xC2CBE1E5 0x6B1C +0xC2CBE1E6 0x3DA0 +0xC2CBE1E7 0x40FB +0xC2CBE1E9 0x7CF3 +0xC2CBE1EA 0x4581 +0xC2CBE1EB 0x8B9B +0xC2CBE1EC 0x8EA7 +0xC2CBE1ED 0x91C4 +0xC2CBE1EE 0x4978 +0xC2CBE1EF 0x947A +0xC2CBE1F0 0x4A8D +0xC2CBE1F1 0x4B73 +0xC2CBE1F2 0x9A61 +0xC2CBE1F3 0x9A63 +0xC2CBE1F4 0x9AD7 +0xC2CBE1F5 0x9C76 +0xC2CBE1F6 0x4DA6 +0xC2CBE1F7 0x9FA5 +0xC2CBE1F8 0x39AD +0xC2CBE1F9 0x7067 +0xC2CBE1FA 0x3E11 +0xC2CBE1FB 0x72AB +0xC2CBE1FC 0x864A +0xC2CBE1FD 0x897D +0xC2CBE1FE 0x8B9D +0xC2CBE2A1 0x8C53 +0xC2CBE2A2 0x8F65 +0xC2CBE2A3 0x947B +0xC2CBE2A4 0x4A39 +0xC2CBE2A5 0x98CD +0xC2CBE2A6 0x98DD +0xC2CBE2A7 0x4BBF +0xC2CBE2A8 0x9B30 +0xC2CBE2A9 0x9E16 +0xC2CBE2AA 0x4D0F +0xC2CBE2AB 0x4DA7 +0xC2CBE2AC 0x4DB5 +0xC2CBE2AD 0x3FDC +0xC2CBE2AE 0x4831 +0xC2CBE2AF 0x96E7 +0xC2CBE2B0 0x9E18 +0xC2CBE2B1 0x9EA2 +0xC2CBE2B2 0x4DA8 +0xC2CBE2B3 0x9F7C +0xC2CBE2B4 0x4125 +0xC2CBE2B5 0x7E9E +0xC2CBE2B6 0x9484 +0xC2CBE2B7 0x4BC1 +0xC2CBE2B8 0x9E1C +0xC2CBE2B9 0x4190 +0xC2CBE2BA 0x7C71 +0xC2CBE2BB 0x97CA +0xC2CBE2BC 0x4696 +0xC2CBE2BD 0x487F +0xC2CBE2BE 0x4D10 +0xC2CBE2BF 0x9EA3 +0xC2CBE2C0 0x4A0A +0xC2CBE2C1 0x9C7B +0xC2CBE2C2 0x9F97 +0xC2CBE2C3 0x4D12 +0xC2CBE2C4 0x4A3A +0xC2CBE2C5 0x9750 +0xC2CBE2C6 0x4A3B +0xC2CBE4C8 0x4F66 +0xC2CBE4C9 0x4F68 +0xC2CBE4CA 0x4FE7 +0xC2CBE4CB 0x503F +0xC2CBE4CD 0x50A6 +0xC2CBE4CE 0x510F +0xC2CBE4CF 0x523E +0xC2CBE4D0 0x5324 +0xC2CBE4D1 0x5365 +0xC2CBE4D2 0x539B +0xC2CBE4D3 0x517F +0xC2CBE4D4 0x54CB +0xC2CBE4D5 0x5573 +0xC2CBE4D6 0x5571 +0xC2CBE4D7 0x556B +0xC2CBE4D8 0x55F4 +0xC2CBE4D9 0x5622 +0xC2CBE4DA 0x5620 +0xC2CBE4DB 0x5692 +0xC2CBE4DC 0x56BA +0xC2CBE4DD 0x5691 +0xC2CBE4DE 0x56B0 +0xC2CBE4DF 0x5759 +0xC2CBE4E0 0x578A +0xC2CBE4E1 0x580F +0xC2CBE4E2 0x5812 +0xC2CBE4E3 0x5813 +0xC2CBE4E4 0x5847 +0xC2CBE4E5 0x589B +0xC2CBE4E6 0x5900 +0xC2CBE4E7 0x594D +0xC2CBE4E8 0x5AD1 +0xC2CBE4E9 0x5AD3 +0xC2CBE4EA 0x5B67 +0xC2CBE4EB 0x5C57 +0xC2CBE4EC 0x5C77 +0xC2CBE4ED 0x5CD5 +0xC2CBE4EE 0x5D75 +0xC2CBE4EF 0x5D8E +0xC2CBE4F0 0x5DA5 +0xC2CBE4F1 0x5DB6 +0xC2CBE4F2 0x5DBF +0xC2CBE4F3 0x5E65 +0xC2CBE4F4 0x5ECD +0xC2CBE4F5 0x5EED +0xC2CBE4F6 0x5F94 +0xC2CBE4F7 0x5F9A +0xC2CBE4F8 0x5FBA +0xC2CBE4F9 0x6125 +0xC2CBE4FA 0x6150 +0xC2CBE4FB 0x62A3 +0xC2CBE4FC 0x6360 +0xC2CBE4FD 0x6364 +0xC2CBE4FE 0x63B6 +0xC2CBE5A1 0x6403 +0xC2CBE5A2 0x64B6 +0xC2CBE5A3 0x651A +0xC2CBE5A4 0x7A25 +0xC2CBE5A5 0x5C21 +0xC2CBE5A6 0x66E2 +0xC2CBE5A7 0x6702 +0xC2CBE5A8 0x67A4 +0xC2CBE5A9 0x67AC +0xC2CBE5AA 0x6810 +0xC2CBE5AB 0x6806 +0xC2CBE5AC 0x685E +0xC2CBE5AD 0x685A +0xC2CBE5AE 0x692C +0xC2CBE5AF 0x6929 +0xC2CBE5B0 0x6A2D +0xC2CBE5B1 0x6A77 +0xC2CBE5B2 0x6A7A +0xC2CBE5B3 0x6ACA +0xC2CBE5B4 0x6AE6 +0xC2CBE5B5 0x6AF5 +0xC2CBE5B6 0x6B0D +0xC2CBE5B7 0x6B0E +0xC2CBE5B8 0x6BDC +0xC2CBE5B9 0x6BDD +0xC2CBE5BA 0x6BF6 +0xC2CBE5BB 0x6C1E +0xC2CBE5BC 0x6C63 +0xC2CBE5BD 0x6DA5 +0xC2CBE5BE 0x6E0F +0xC2CBE5BF 0x6E8A +0xC2CBE5C0 0x6E84 +0xC2CBE5C1 0x6E8B +0xC2CBE5C2 0x6E7C +0xC2CBE5C3 0x6F4C +0xC2CBE5C4 0x6F48 +0xC2CBE5C5 0x6F49 +0xC2CBE5C6 0x6F9D +0xC2CBE5C7 0x6F99 +0xC2CBE5C8 0x6FF8 +0xC2CBE5C9 0x702E +0xC2CBE5CA 0x702D +0xC2CBE5CB 0x705C +0xC2CBE5CC 0x79CC +0xC2CBE5CD 0x70BF +0xC2CBE5CE 0x70EA +0xC2CBE5CF 0x70E5 +0xC2CBE5D0 0x7111 +0xC2CBE5D1 0x7112 +0xC2CBE5D2 0x713F +0xC2CBE5D3 0x7139 +0xC2CBE5D4 0x713B +0xC2CBE5D5 0x713D +0xC2CBE5D6 0x7177 +0xC2CBE5D7 0x7175 +0xC2CBE5D8 0x7176 +0xC2CBE5D9 0x7171 +0xC2CBE5DA 0x7196 +0xC2CBE5DB 0x7193 +0xC2CBE5DC 0x71B4 +0xC2CBE5DD 0x71DD +0xC2CBE5DE 0x71DE +0xC2CBE5DF 0x720E +0xC2CBE5E0 0x5911 +0xC2CBE5E1 0x7218 +0xC2CBE5E2 0x7347 +0xC2CBE5E3 0x7348 +0xC2CBE5E4 0x73EF +0xC2CBE5E5 0x7412 +0xC2CBE5E6 0x743B +0xC2CBE5E7 0x74A4 +0xC2CBE5E8 0x748D +0xC2CBE5E9 0x74B4 +0xC2CBE5EA 0x7673 +0xC2CBE5EB 0x7677 +0xC2CBE5EC 0x76BC +0xC2CBE5ED 0x7819 +0xC2CBE5EE 0x781B +0xC2CBE5EF 0x783D +0xC2CBE5F0 0x7853 +0xC2CBE5F1 0x7854 +0xC2CBE5F2 0x7858 +0xC2CBE5F3 0x78B7 +0xC2CBE5F4 0x78D8 +0xC2CBE5F5 0x78EE +0xC2CBE5F6 0x7922 +0xC2CBE5F7 0x794D +0xC2CBE5F8 0x7986 +0xC2CBE5F9 0x7999 +0xC2CBE5FA 0x79A3 +0xC2CBE5FB 0x79BC +0xC2CBE5FC 0x7AA7 +0xC2CBE5FD 0x7B37 +0xC2CBE5FE 0x7B59 +0xC2CBE6A1 0x7BD0 +0xC2CBE6A2 0x7C2F +0xC2CBE6A3 0x7C32 +0xC2CBE6A4 0x7C42 +0xC2CBE6A5 0x7C4E +0xC2CBE6A6 0x7C68 +0xC2CBE6A7 0x7CA9 +0xC2CBE6A8 0x7CED +0xC2CBE6A9 0x7DD0 +0xC2CBE6AA 0x7E07 +0xC2CBE6AB 0x7DD3 +0xC2CBE6AC 0x7E64 +0xC2CBE6AD 0x7F40 +0xC2CBE6AF 0x8041 +0xC2CBE6B0 0x8063 +0xC2CBE6B1 0x80BB +0xC2CBE6B2 0x6711 +0xC2CBE6B3 0x6725 +0xC2CBE6B4 0x8248 +0xC2CBE6B5 0x8310 +0xC2CBE6B6 0x8362 +0xC2CBE6B7 0x8312 +0xC2CBE6B8 0x8421 +0xC2CBE6B9 0x841E +0xC2CBE6BA 0x84E2 +0xC2CBE6BB 0x84DE +0xC2CBE6BC 0x84E1 +0xC2CBE6BD 0x8573 +0xC2CBE6BE 0x85D4 +0xC2CBE6BF 0x85F5 +0xC2CBE6C0 0x8637 +0xC2CBE6C1 0x8645 +0xC2CBE6C2 0x8672 +0xC2CBE6C3 0x874A +0xC2CBE6C4 0x87A9 +0xC2CBE6C5 0x87A5 +0xC2CBE6C6 0x87F5 +0xC2CBE6C7 0x8834 +0xC2CBE6C8 0x8850 +0xC2CBE6C9 0x8887 +0xC2CBE6CA 0x8954 +0xC2CBE6CB 0x8984 +0xC2CBE6CC 0x8B03 +0xC2CBE6CD 0x8C52 +0xC2CBE6CE 0x8CD8 +0xC2CBE6CF 0x8D0C +0xC2CBE6D0 0x8D18 +0xC2CBE6D1 0x8DB0 +0xC2CBE6D2 0x8EBC +0xC2CBE6D3 0x8ED5 +0xC2CBE6D4 0x8FAA +0xC2CBE6D5 0x909C +0xC2CBE6D7 0x915C +0xC2CBE6D8 0x922B +0xC2CBE6D9 0x9221 +0xC2CBE6DA 0x9273 +0xC2CBE6DB 0x92F4 +0xC2CBE6DC 0x92F5 +0xC2CBE6DD 0x933F +0xC2CBE6DE 0x9342 +0xC2CBE6DF 0x9386 +0xC2CBE6E0 0x93BE +0xC2CBE6E1 0x93BC +0xC2CBE6E2 0x93BD +0xC2CBE6E3 0x93F1 +0xC2CBE6E4 0x93F2 +0xC2CBE6E5 0x93EF +0xC2CBE6E6 0x9422 +0xC2CBE6E7 0x9423 +0xC2CBE6E8 0x9424 +0xC2CBE6E9 0x9467 +0xC2CBE6EA 0x9466 +0xC2CBE6EB 0x9597 +0xC2CBE6EC 0x95CE +0xC2CBE6ED 0x95E7 +0xC2CBE6EE 0x973B +0xC2CBE6EF 0x974D +0xC2CBE6F0 0x98E4 +0xC2CBE6F1 0x9942 +0xC2CBE6F2 0x9B1D +0xC2CBE6F3 0x9B98 +0xC2CBE6F5 0x9D49 +0xC2CBE6F6 0x6449 +0xC2CBE6F7 0x5E71 +0xC2CBE6F8 0x5E85 +0xC2CBE6F9 0x61D3 +0xC2CBE6FA 0x990E +0xC2CBE6FB 0x8002 +0xC2CBE6FC 0x781E +0xC2CBE7A1 0x5528 +0xC2CBE7A2 0x5572 +0xC2CBE7A3 0x55BA +0xC2CBE7A4 0x55F0 +0xC2CBE7A5 0x55EE +0xC2CBE7A6 0x56B8 +0xC2CBE7A7 0x56B9 +0xC2CBE7A8 0x56C4 +0xC2CBE7A9 0x8053 +0xC2CBE7AA 0x92B0 +0xC321 0x63EB +0xC322 0x6410 +0xC323 0x6412 +0xC324 0x6409 +0xC325 0x6420 +0xC326 0x6424 +0xC327 0x6433 +0xC328 0x6443 +0xC329 0x641F +0xC32A 0x6415 +0xC32B 0x6418 +0xC32C 0x6439 +0xC32D 0x6437 +0xC32E 0x6422 +0xC32F 0x6423 +0xC330 0x640C +0xC331 0x6426 +0xC332 0x6430 +0xC333 0x6428 +0xC334 0x6441 +0xC335 0x6435 +0xC336 0x642F +0xC337 0x640A +0xC338 0x641A +0xC339 0x6440 +0xC33A 0x6425 +0xC33B 0x6427 +0xC33C 0x640B +0xC33D 0x63E7 +0xC33E 0x641B +0xC33F 0x642E +0xC340 0x6421 +0xC341 0x640E +0xC342 0x656F +0xC343 0x6592 +0xC344 0x65D3 +0xC345 0x6686 +0xC346 0x668C +0xC347 0x6695 +0xC348 0x6690 +0xC349 0x668B +0xC34A 0x668A +0xC34B 0x6699 +0xC34C 0x6694 +0xC34D 0x6678 +0xC34E 0x6720 +0xC34F 0x6966 +0xC350 0x695F +0xC351 0x6938 +0xC352 0x694E +0xC353 0x6962 +0xC354 0x6971 +0xC355 0x693F +0xC356 0x6945 +0xC357 0x696A +0xC358 0x6939 +0xC359 0x6942 +0xC35A 0x6957 +0xC35B 0x6959 +0xC35C 0x697A +0xC35D 0x6948 +0xC35E 0x6949 +0xC35F 0x6935 +0xC360 0x696C +0xC361 0x6933 +0xC362 0x693D +0xC363 0x6965 +0xC364 0x68F0 +0xC365 0x6978 +0xC366 0x6934 +0xC367 0x6969 +0xC368 0x6940 +0xC369 0x696F +0xC36A 0x6944 +0xC36B 0x6976 +0xC36C 0x6958 +0xC36D 0x6941 +0xC36E 0x6974 +0xC36F 0x694C +0xC370 0x693B +0xC371 0x694B +0xC372 0x6937 +0xC373 0x695C +0xC374 0x694F +0xC375 0x6951 +0xC376 0x6932 +0xC377 0x6952 +0xC378 0x692F +0xC379 0x697B +0xC37A 0x693C +0xC37B 0x6B46 +0xC37C 0x6B45 +0xC37D 0x6B43 +0xC37E 0x6B42 +0xC421 0x6B48 +0xC422 0x6B41 +0xC423 0x6B9B +0xC424 0x6BFB +0xC425 0x6BFC +0xC426 0x6BF9 +0xC427 0x6BF7 +0xC428 0x6BF8 +0xC429 0x6E9B +0xC42A 0x6ED6 +0xC42B 0x6EC8 +0xC42C 0x6E8F +0xC42D 0x6EC0 +0xC42E 0x6E9F +0xC42F 0x6E93 +0xC430 0x6E94 +0xC431 0x6EA0 +0xC432 0x6EB1 +0xC433 0x6EB9 +0xC434 0x6EC6 +0xC435 0x6ED2 +0xC436 0x6EBD +0xC437 0x6EC1 +0xC438 0x6E9E +0xC439 0x6EC9 +0xC43A 0x6EB7 +0xC43B 0x6EB0 +0xC43C 0x6ECD +0xC43D 0x6EA6 +0xC43E 0x6ECF +0xC43F 0x6EB2 +0xC440 0x6EBE +0xC441 0x6EC3 +0xC442 0x6EDC +0xC443 0x6ED8 +0xC444 0x6E99 +0xC445 0x6E92 +0xC446 0x6E8E +0xC447 0x6E8D +0xC448 0x6EA4 +0xC449 0x6EA1 +0xC44A 0x6EBF +0xC44B 0x6EB3 +0xC44C 0x6ED0 +0xC44D 0x6ECA +0xC44E 0x6E97 +0xC44F 0x6EAE +0xC450 0x6EA3 +0xC451 0x7147 +0xC452 0x7154 +0xC453 0x7152 +0xC454 0x7163 +0xC455 0x7160 +0xC456 0x7141 +0xC457 0x715D +0xC458 0x7162 +0xC459 0x7172 +0xC45A 0x7178 +0xC45B 0x716A +0xC45C 0x7161 +0xC45D 0x7142 +0xC45E 0x7158 +0xC45F 0x7143 +0xC460 0x714B +0xC461 0x7170 +0xC462 0x715F +0xC463 0x7150 +0xC464 0x7153 +0xC465 0x7144 +0xC466 0x714D +0xC467 0x715A +0xC468 0x724F +0xC469 0x728D +0xC46A 0x728C +0xC46B 0x7291 +0xC46C 0x7290 +0xC46D 0x728E +0xC46E 0x733C +0xC46F 0x7342 +0xC470 0x733B +0xC471 0x733A +0xC472 0x7340 +0xC473 0x734A +0xC474 0x7349 +0xC475 0x7444 +0xC476 0x744A +0xC477 0x744B +0xC478 0x7452 +0xC479 0x7451 +0xC47A 0x7457 +0xC47B 0x7440 +0xC47C 0x744F +0xC47D 0x7450 +0xC47E 0x744E +0xC4A1 0x4E00 +0xC4A2 0x4E59 +0xC4A3 0x4E01 +0xC4A4 0x4E03 +0xC4A5 0x4E43 +0xC4A6 0x4E5D +0xC4A7 0x4E86 +0xC4A8 0x4E8C +0xC4A9 0x4EBA +0xC4AA 0x513F +0xC4AB 0x5165 +0xC4AC 0x516B +0xC4AD 0x51E0 +0xC4AE 0x5200 +0xC4AF 0x5201 +0xC4B0 0x529B +0xC4B1 0x5315 +0xC4B2 0x5341 +0xC4B3 0x535C +0xC4B4 0x53C8 +0xC4B5 0x4E09 +0xC4B6 0x4E0B +0xC4B7 0x4E08 +0xC4B8 0x4E0A +0xC4B9 0x4E2B +0xC4BA 0x4E38 +0xC4BB 0x51E1 +0xC4BC 0x4E45 +0xC4BD 0x4E48 +0xC4BE 0x4E5F +0xC4BF 0x4E5E +0xC4C0 0x4E8E +0xC4C1 0x4EA1 +0xC4C2 0x5140 +0xC4C3 0x5203 +0xC4C4 0x52FA +0xC4C5 0x5343 +0xC4C6 0x53C9 +0xC4C7 0x53E3 +0xC4C8 0x571F +0xC4C9 0x58EB +0xC4CA 0x5915 +0xC4CB 0x5927 +0xC4CC 0x5973 +0xC4CD 0x5B50 +0xC4CE 0x5B51 +0xC4CF 0x5B53 +0xC4D0 0x5BF8 +0xC4D1 0x5C0F +0xC4D2 0x5C22 +0xC4D3 0x5C38 +0xC4D4 0x5C71 +0xC4D5 0x5DDD +0xC4D6 0x5DE5 +0xC4D7 0x5DF1 +0xC4D8 0x5DF2 +0xC4D9 0x5DF3 +0xC4DA 0x5DFE +0xC4DB 0x5E72 +0xC4DC 0x5EFE +0xC4DD 0x5F0B +0xC4DE 0x5F13 +0xC4DF 0x624D +0xC4E0 0x4E11 +0xC4E1 0x4E10 +0xC4E2 0x4E0D +0xC4E3 0x4E2D +0xC4E4 0x4E30 +0xC4E5 0x4E39 +0xC4E6 0x4E4B +0xC4E7 0x5C39 +0xC4E8 0x4E88 +0xC4E9 0x4E91 +0xC4EA 0x4E95 +0xC4EB 0x4E92 +0xC4EC 0x4E94 +0xC4ED 0x4EA2 +0xC4EE 0x4EC1 +0xC4EF 0x4EC0 +0xC4F0 0x4EC3 +0xC4F1 0x4EC6 +0xC4F2 0x4EC7 +0xC4F3 0x4ECD +0xC4F4 0x4ECA +0xC4F5 0x4ECB +0xC4F6 0x4EC4 +0xC4F7 0x5143 +0xC4F8 0x5141 +0xC4F9 0x5167 +0xC4FA 0x516D +0xC4FB 0x516E +0xC4FC 0x516C +0xC4FD 0x5197 +0xC4FE 0x51F6 +0xC521 0x7442 +0xC522 0x7446 +0xC523 0x744D +0xC524 0x7454 +0xC525 0x74E1 +0xC526 0x74FF +0xC527 0x74FE +0xC528 0x74FD +0xC529 0x751D +0xC52A 0x7579 +0xC52B 0x7577 +0xC52C 0x6983 +0xC52D 0x75EF +0xC52E 0x760F +0xC52F 0x7603 +0xC530 0x75F7 +0xC531 0x75FE +0xC532 0x75FC +0xC533 0x75F9 +0xC534 0x75F8 +0xC535 0x7610 +0xC536 0x75FB +0xC537 0x75F6 +0xC538 0x75ED +0xC539 0x75F5 +0xC53A 0x75FD +0xC53B 0x7699 +0xC53C 0x76B5 +0xC53D 0x76DD +0xC53E 0x7755 +0xC53F 0x775F +0xC540 0x7760 +0xC541 0x7752 +0xC542 0x7756 +0xC543 0x775A +0xC544 0x7769 +0xC545 0x7767 +0xC546 0x7754 +0xC547 0x7759 +0xC548 0x776D +0xC549 0x77E0 +0xC54A 0x7887 +0xC54B 0x789A +0xC54C 0x7894 +0xC54D 0x788F +0xC54E 0x7884 +0xC54F 0x7895 +0xC550 0x7885 +0xC551 0x7886 +0xC552 0x78A1 +0xC553 0x7883 +0xC554 0x7879 +0xC555 0x7899 +0xC556 0x7880 +0xC557 0x7896 +0xC558 0x787B +0xC559 0x797C +0xC55A 0x7982 +0xC55B 0x797D +0xC55C 0x7979 +0xC55D 0x7A11 +0xC55E 0x7A18 +0xC55F 0x7A19 +0xC560 0x7A12 +0xC561 0x7A17 +0xC562 0x7A15 +0xC563 0x7A22 +0xC564 0x7A13 +0xC565 0x7A1B +0xC566 0x7A10 +0xC567 0x7AA3 +0xC568 0x7AA2 +0xC569 0x7A9E +0xC56A 0x7AEB +0xC56B 0x7B66 +0xC56C 0x7B64 +0xC56D 0x7B6D +0xC56E 0x7B74 +0xC56F 0x7B69 +0xC570 0x7B72 +0xC571 0x7B65 +0xC572 0x7B73 +0xC573 0x7B71 +0xC574 0x7B70 +0xC575 0x7B61 +0xC576 0x7B78 +0xC577 0x7B76 +0xC578 0x7B63 +0xC579 0x7CB2 +0xC57A 0x7CB4 +0xC57B 0x7CAF +0xC57C 0x7D88 +0xC57D 0x7D86 +0xC57E 0x7D80 +0xC5A1 0x5206 +0xC5A2 0x5207 +0xC5A3 0x5208 +0xC5A4 0x52FB +0xC5A5 0x52FE +0xC5A6 0x52FF +0xC5A7 0x5316 +0xC5A8 0x5339 +0xC5A9 0x5348 +0xC5AA 0x5347 +0xC5AB 0x5345 +0xC5AC 0x535E +0xC5AD 0x5384 +0xC5AE 0x53CB +0xC5AF 0x53CA +0xC5B0 0x53CD +0xC5B1 0x58EC +0xC5B2 0x5929 +0xC5B3 0x592B +0xC5B4 0x592A +0xC5B5 0x592D +0xC5B6 0x5B54 +0xC5B7 0x5C11 +0xC5B8 0x5C24 +0xC5B9 0x5C3A +0xC5BA 0x5C6F +0xC5BB 0x5DF4 +0xC5BC 0x5E7B +0xC5BD 0x5EFF +0xC5BE 0x5F14 +0xC5BF 0x5F15 +0xC5C0 0x5FC3 +0xC5C1 0x6208 +0xC5C2 0x6236 +0xC5C3 0x624B +0xC5C4 0x624E +0xC5C5 0x652F +0xC5C6 0x6587 +0xC5C7 0x6597 +0xC5C8 0x65A4 +0xC5C9 0x65B9 +0xC5CA 0x65E5 +0xC5CB 0x66F0 +0xC5CC 0x6708 +0xC5CD 0x6728 +0xC5CE 0x6B20 +0xC5CF 0x6B62 +0xC5D0 0x6B79 +0xC5D1 0x6BCB +0xC5D2 0x6BD4 +0xC5D3 0x6BDB +0xC5D4 0x6C0F +0xC5D5 0x6C34 +0xC5D6 0x706B +0xC5D7 0x722A +0xC5D8 0x7236 +0xC5D9 0x723B +0xC5DA 0x7247 +0xC5DB 0x7259 +0xC5DC 0x725B +0xC5DD 0x72AC +0xC5DE 0x738B +0xC5DF 0x4E19 +0xC5E0 0x4E16 +0xC5E1 0x4E15 +0xC5E2 0x4E14 +0xC5E3 0x4E18 +0xC5E4 0x4E3B +0xC5E5 0x4E4D +0xC5E6 0x4E4F +0xC5E7 0x4E4E +0xC5E8 0x4EE5 +0xC5E9 0x4ED8 +0xC5EA 0x4ED4 +0xC5EB 0x4ED5 +0xC5EC 0x4ED6 +0xC5ED 0x4ED7 +0xC5EE 0x4EE3 +0xC5EF 0x4EE4 +0xC5F0 0x4ED9 +0xC5F1 0x4EDE +0xC5F2 0x5145 +0xC5F3 0x5144 +0xC5F4 0x5189 +0xC5F5 0x518A +0xC5F6 0x51AC +0xC5F7 0x51F9 +0xC5F8 0x51FA +0xC5F9 0x51F8 +0xC5FA 0x520A +0xC5FB 0x52A0 +0xC5FC 0x529F +0xC5FD 0x5305 +0xC5FE 0x5306 +0xC621 0x7D8D +0xC622 0x7D7F +0xC623 0x7D85 +0xC624 0x7D7A +0xC625 0x7D8E +0xC626 0x7D7B +0xC627 0x7D83 +0xC628 0x7D7C +0xC629 0x7D8C +0xC62A 0x7D94 +0xC62B 0x7D84 +0xC62C 0x7D7D +0xC62D 0x7D92 +0xC62E 0x7F6D +0xC62F 0x7F6B +0xC630 0x7F67 +0xC631 0x7F68 +0xC632 0x7F6C +0xC633 0x7FA6 +0xC634 0x7FA5 +0xC635 0x7FA7 +0xC636 0x7FDB +0xC637 0x7FDC +0xC638 0x8021 +0xC639 0x8164 +0xC63A 0x8160 +0xC63B 0x8177 +0xC63C 0x815C +0xC63D 0x8169 +0xC63E 0x815B +0xC63F 0x8162 +0xC640 0x8172 +0xC641 0x6721 +0xC642 0x815E +0xC643 0x8176 +0xC644 0x8167 +0xC645 0x816F +0xC646 0x8144 +0xC647 0x8161 +0xC648 0x821D +0xC649 0x8249 +0xC64A 0x8244 +0xC64B 0x8240 +0xC64C 0x8242 +0xC64D 0x8245 +0xC64E 0x84F1 +0xC64F 0x843F +0xC650 0x8456 +0xC651 0x8476 +0xC652 0x8479 +0xC653 0x848F +0xC654 0x848D +0xC655 0x8465 +0xC656 0x8451 +0xC657 0x8440 +0xC658 0x8486 +0xC659 0x8467 +0xC65A 0x8430 +0xC65B 0x844D +0xC65C 0x847D +0xC65D 0x845A +0xC65E 0x8459 +0xC65F 0x8474 +0xC660 0x8473 +0xC661 0x845D +0xC662 0x8507 +0xC663 0x845E +0xC664 0x8437 +0xC665 0x843A +0xC666 0x8434 +0xC667 0x847A +0xC668 0x8443 +0xC669 0x8478 +0xC66A 0x8432 +0xC66B 0x8445 +0xC66C 0x8429 +0xC66D 0x83D9 +0xC66E 0x844B +0xC66F 0x842F +0xC670 0x8442 +0xC671 0x842D +0xC672 0x845F +0xC673 0x8470 +0xC674 0x8439 +0xC675 0x844E +0xC676 0x844C +0xC677 0x8452 +0xC678 0x846F +0xC679 0x84C5 +0xC67A 0x848E +0xC67B 0x843B +0xC67C 0x8447 +0xC67D 0x8436 +0xC67E 0x8433 +0xC6A1 0x5317 +0xC6A2 0x531D +0xC6A3 0x4EDF +0xC6A4 0x534A +0xC6A5 0x5349 +0xC6A6 0x5361 +0xC6A7 0x5360 +0xC6A8 0x536F +0xC6A9 0x536E +0xC6AA 0x53BB +0xC6AB 0x53EF +0xC6AC 0x53E4 +0xC6AD 0x53F3 +0xC6AE 0x53EC +0xC6AF 0x53EE +0xC6B0 0x53E9 +0xC6B1 0x53E8 +0xC6B2 0x53FC +0xC6B3 0x53F8 +0xC6B4 0x53F5 +0xC6B5 0x53EB +0xC6B6 0x53E6 +0xC6B7 0x53EA +0xC6B8 0x53F2 +0xC6B9 0x53F1 +0xC6BA 0x53F0 +0xC6BB 0x53E5 +0xC6BC 0x53ED +0xC6BD 0x53FB +0xC6BE 0x56DB +0xC6BF 0x56DA +0xC6C0 0x5916 +0xC6C1 0x592E +0xC6C2 0x5931 +0xC6C3 0x5974 +0xC6C4 0x5976 +0xC6C5 0x5B55 +0xC6C6 0x5B83 +0xC6C7 0x5C3C +0xC6C8 0x5DE8 +0xC6C9 0x5DE7 +0xC6CA 0x5DE6 +0xC6CB 0x5E02 +0xC6CC 0x5E03 +0xC6CD 0x5E73 +0xC6CE 0x5E7C +0xC6CF 0x5F01 +0xC6D0 0x5F18 +0xC6D1 0x5F17 +0xC6D2 0x5FC5 +0xC6D3 0x620A +0xC6D4 0x6253 +0xC6D5 0x6254 +0xC6D6 0x6252 +0xC6D7 0x6251 +0xC6D8 0x65A5 +0xC6D9 0x65E6 +0xC6DA 0x672E +0xC6DB 0x672C +0xC6DC 0x672A +0xC6DD 0x672B +0xC6DE 0x672D +0xC6DF 0x6B63 +0xC6E0 0x6BCD +0xC6E1 0x6C11 +0xC6E2 0x6C10 +0xC6E3 0x6C38 +0xC6E4 0x6C41 +0xC6E5 0x6C40 +0xC6E6 0x6C3E +0xC6E7 0x72AF +0xC6E8 0x7384 +0xC6E9 0x7389 +0xC6EA 0x74DC +0xC6EB 0x74E6 +0xC6EC 0x7518 +0xC6ED 0x751F +0xC6EE 0x7528 +0xC6EF 0x7529 +0xC6F0 0x7530 +0xC6F1 0x7531 +0xC6F2 0x7532 +0xC6F3 0x7533 +0xC6F4 0x758B +0xC6F5 0x767D +0xC6F6 0x76AE +0xC6F7 0x76BF +0xC6F8 0x76EE +0xC6F9 0x77DB +0xC6FA 0x77E2 +0xC6FB 0x77F3 +0xC6FC 0x793A +0xC6FD 0x79BE +0xC6FE 0x7A74 +0xC721 0x8468 +0xC722 0x847E +0xC723 0x8444 +0xC724 0x842B +0xC725 0x8460 +0xC726 0x8454 +0xC727 0x846E +0xC728 0x8450 +0xC729 0x870B +0xC72A 0x8704 +0xC72B 0x86F7 +0xC72C 0x870C +0xC72D 0x86FA +0xC72E 0x86D6 +0xC72F 0x86F5 +0xC730 0x874D +0xC731 0x86F8 +0xC732 0x870E +0xC733 0x8709 +0xC734 0x8701 +0xC735 0x86F6 +0xC736 0x870D +0xC737 0x8705 +0xC738 0x88D6 +0xC739 0x88CB +0xC73A 0x88CD +0xC73B 0x88CE +0xC73C 0x88DE +0xC73D 0x88DB +0xC73E 0x88DA +0xC73F 0x88CC +0xC740 0x88D0 +0xC741 0x8985 +0xC742 0x899B +0xC743 0x89DF +0xC744 0x89E5 +0xC745 0x89E4 +0xC746 0x89E1 +0xC747 0x89E0 +0xC748 0x89E2 +0xC749 0x89DC +0xC74A 0x89E6 +0xC74B 0x8A76 +0xC74C 0x8A86 +0xC74D 0x8A7F +0xC74E 0x8A61 +0xC74F 0x8A3F +0xC750 0x8A77 +0xC751 0x8A82 +0xC752 0x8A84 +0xC753 0x8A75 +0xC754 0x8A83 +0xC755 0x8A81 +0xC756 0x8A74 +0xC757 0x8A7A +0xC758 0x8C3C +0xC759 0x8C4B +0xC75A 0x8C4A +0xC75B 0x8C65 +0xC75C 0x8C64 +0xC75D 0x8C66 +0xC75E 0x8C86 +0xC75F 0x8C84 +0xC760 0x8C85 +0xC761 0x8CCC +0xC762 0x8D68 +0xC763 0x8D69 +0xC764 0x8D91 +0xC765 0x8D8C +0xC766 0x8D8E +0xC767 0x8D8F +0xC768 0x8D8D +0xC769 0x8D93 +0xC76A 0x8D94 +0xC76B 0x8D90 +0xC76C 0x8D92 +0xC76D 0x8DF0 +0xC76E 0x8DE0 +0xC76F 0x8DEC +0xC770 0x8DF1 +0xC771 0x8DEE +0xC772 0x8DD0 +0xC773 0x8DE9 +0xC774 0x8DE3 +0xC775 0x8DE2 +0xC776 0x8DE7 +0xC777 0x8DF2 +0xC778 0x8DEB +0xC779 0x8DF4 +0xC77A 0x8F06 +0xC77B 0x8EFF +0xC77C 0x8F01 +0xC77D 0x8F00 +0xC77E 0x8F05 +0xC7A1 0x7ACB +0xC7A2 0x4E1E +0xC7A3 0x4E1F +0xC7A4 0x4E52 +0xC7A5 0x4E53 +0xC7A6 0x4E69 +0xC7A7 0x4E99 +0xC7A8 0x4EA4 +0xC7A9 0x4EA6 +0xC7AA 0x4EA5 +0xC7AB 0x4EFF +0xC7AC 0x4F09 +0xC7AD 0x4F19 +0xC7AE 0x4F0A +0xC7AF 0x4F15 +0xC7B0 0x4F0D +0xC7B1 0x4F10 +0xC7B2 0x4F11 +0xC7B3 0x4F0F +0xC7B4 0x4EF2 +0xC7B5 0x4EF6 +0xC7B6 0x4EFB +0xC7B7 0x4EF0 +0xC7B8 0x4EF3 +0xC7B9 0x4EFD +0xC7BA 0x4F01 +0xC7BB 0x4F0B +0xC7BC 0x5149 +0xC7BD 0x5147 +0xC7BE 0x5146 +0xC7BF 0x5148 +0xC7C0 0x5168 +0xC7C1 0x5171 +0xC7C2 0x518D +0xC7C3 0x51B0 +0xC7C4 0x5217 +0xC7C5 0x5211 +0xC7C6 0x5212 +0xC7C7 0x520E +0xC7C8 0x5216 +0xC7C9 0x52A3 +0xC7CA 0x5308 +0xC7CB 0x5321 +0xC7CC 0x5320 +0xC7CD 0x5370 +0xC7CE 0x5371 +0xC7CF 0x5409 +0xC7D0 0x540F +0xC7D1 0x540C +0xC7D2 0x540A +0xC7D3 0x5410 +0xC7D4 0x5401 +0xC7D5 0x540B +0xC7D6 0x5404 +0xC7D7 0x5411 +0xC7D8 0x540D +0xC7D9 0x5408 +0xC7DA 0x5403 +0xC7DB 0x540E +0xC7DC 0x5406 +0xC7DD 0x5412 +0xC7DE 0x56E0 +0xC7DF 0x56DE +0xC7E0 0x56DD +0xC7E1 0x5733 +0xC7E2 0x5730 +0xC7E3 0x5728 +0xC7E4 0x572D +0xC7E5 0x572C +0xC7E6 0x572F +0xC7E7 0x5729 +0xC7E8 0x5919 +0xC7E9 0x591A +0xC7EA 0x5937 +0xC7EB 0x5938 +0xC7EC 0x5984 +0xC7ED 0x5978 +0xC7EE 0x5983 +0xC7EF 0x597D +0xC7F0 0x5979 +0xC7F1 0x5982 +0xC7F2 0x5981 +0xC7F3 0x5B57 +0xC7F4 0x5B58 +0xC7F5 0x5B87 +0xC7F6 0x5B88 +0xC7F7 0x5B85 +0xC7F8 0x5B89 +0xC7F9 0x5BFA +0xC7FA 0x5C16 +0xC7FB 0x5C79 +0xC7FC 0x5DDE +0xC7FD 0x5E06 +0xC7FE 0x5E76 +0xC821 0x8F07 +0xC822 0x8F08 +0xC823 0x8F02 +0xC824 0x8F0B +0xC825 0x9052 +0xC826 0x903F +0xC827 0x9044 +0xC828 0x9049 +0xC829 0x903D +0xC82A 0x9110 +0xC82B 0x910D +0xC82C 0x910F +0xC82D 0x9111 +0xC82E 0x9116 +0xC82F 0x9114 +0xC830 0x910B +0xC831 0x910E +0xC832 0x916E +0xC833 0x916F +0xC834 0x9248 +0xC835 0x9252 +0xC836 0x9230 +0xC837 0x923A +0xC838 0x9266 +0xC839 0x9233 +0xC83A 0x9265 +0xC83B 0x925E +0xC83C 0x9283 +0xC83D 0x922E +0xC83E 0x924A +0xC83F 0x9246 +0xC840 0x926D +0xC841 0x926C +0xC842 0x924F +0xC843 0x9260 +0xC844 0x9267 +0xC845 0x926F +0xC846 0x9236 +0xC847 0x9261 +0xC848 0x9270 +0xC849 0x9231 +0xC84A 0x9254 +0xC84B 0x9263 +0xC84C 0x9250 +0xC84D 0x9272 +0xC84E 0x924E +0xC84F 0x9253 +0xC850 0x924C +0xC851 0x9256 +0xC852 0x9232 +0xC853 0x959F +0xC854 0x959C +0xC855 0x959E +0xC856 0x959B +0xC857 0x9692 +0xC858 0x9693 +0xC859 0x9691 +0xC85A 0x9697 +0xC85B 0x96CE +0xC85C 0x96FA +0xC85D 0x96FD +0xC85E 0x96F8 +0xC85F 0x96F5 +0xC860 0x9773 +0xC861 0x9777 +0xC862 0x9778 +0xC863 0x9772 +0xC864 0x980F +0xC865 0x980D +0xC866 0x980E +0xC867 0x98AC +0xC868 0x98F6 +0xC869 0x98F9 +0xC86A 0x99AF +0xC86B 0x99B2 +0xC86C 0x99B0 +0xC86D 0x99B5 +0xC86E 0x9AAD +0xC86F 0x9AAB +0xC870 0x9B5B +0xC871 0x9CEA +0xC872 0x9CED +0xC873 0x9CE7 +0xC874 0x9E80 +0xC875 0x9EFD +0xC876 0x50E6 +0xC877 0x50D4 +0xC878 0x50D7 +0xC879 0x50E8 +0xC87A 0x50F3 +0xC87B 0x50DB +0xC87C 0x50EA +0xC87D 0x50DD +0xC87E 0x50E4 +0xC8A1 0x5E74 +0xC8A2 0x5F0F +0xC8A3 0x5F1B +0xC8A4 0x5FD9 +0xC8A5 0x5FD6 +0xC8A6 0x620E +0xC8A7 0x620C +0xC8A8 0x620D +0xC8A9 0x6210 +0xC8AA 0x6263 +0xC8AB 0x625B +0xC8AC 0x6258 +0xC8AD 0x6536 +0xC8AE 0x65E9 +0xC8AF 0x65E8 +0xC8B0 0x65EC +0xC8B1 0x65ED +0xC8B2 0x66F2 +0xC8B3 0x66F3 +0xC8B4 0x6709 +0xC8B5 0x673D +0xC8B6 0x6734 +0xC8B7 0x6731 +0xC8B8 0x6735 +0xC8B9 0x6B21 +0xC8BA 0x6B64 +0xC8BB 0x6B7B +0xC8BC 0x6C16 +0xC8BD 0x6C5D +0xC8BE 0x6C57 +0xC8BF 0x6C59 +0xC8C0 0x6C5F +0xC8C1 0x6C60 +0xC8C2 0x6C50 +0xC8C3 0x6C55 +0xC8C4 0x6C61 +0xC8C5 0x6C5B +0xC8C6 0x6C4D +0xC8C7 0x6C4E +0xC8C8 0x7070 +0xC8C9 0x725F +0xC8CA 0x725D +0xC8CB 0x767E +0xC8CC 0x7AF9 +0xC8CD 0x7C73 +0xC8CE 0x7CF8 +0xC8CF 0x7F36 +0xC8D0 0x7F8A +0xC8D1 0x7FBD +0xC8D2 0x8001 +0xC8D3 0x8003 +0xC8D4 0x800C +0xC8D5 0x8012 +0xC8D6 0x8033 +0xC8D7 0x807F +0xC8D8 0x8089 +0xC8D9 0x808B +0xC8DA 0x808C +0xC8DB 0x81E3 +0xC8DC 0x81EA +0xC8DD 0x81F3 +0xC8DE 0x81FC +0xC8DF 0x820C +0xC8E0 0x821B +0xC8E1 0x821F +0xC8E2 0x826E +0xC8E3 0x8272 +0xC8E4 0x827E +0xC8E5 0x866B +0xC8E6 0x8840 +0xC8E7 0x884C +0xC8E8 0x8863 +0xC8E9 0x897F +0xC8EA 0x9621 +0xC8EB 0x4E32 +0xC8EC 0x4EA8 +0xC8ED 0x4F4D +0xC8EE 0x4F4F +0xC8EF 0x4F47 +0xC8F0 0x4F57 +0xC8F1 0x4F5E +0xC8F2 0x4F34 +0xC8F3 0x4F5B +0xC8F4 0x4F55 +0xC8F5 0x4F30 +0xC8F6 0x4F50 +0xC8F7 0x4F51 +0xC8F8 0x4F3D +0xC8F9 0x4F3A +0xC8FA 0x4F38 +0xC8FB 0x4F43 +0xC8FC 0x4F54 +0xC8FD 0x4F3C +0xC8FE 0x4F46 +0xC921 0x50D3 +0xC922 0x50EC +0xC923 0x50F0 +0xC924 0x50EF +0xC925 0x50E3 +0xC926 0x50E0 +0xC927 0x51D8 +0xC928 0x5280 +0xC929 0x5281 +0xC92A 0x52E9 +0xC92B 0x52EB +0xC92C 0x5330 +0xC92D 0x53AC +0xC92E 0x5627 +0xC92F 0x5615 +0xC930 0x560C +0xC931 0x5612 +0xC932 0x55FC +0xC933 0x560F +0xC934 0x561C +0xC935 0x5601 +0xC936 0x5613 +0xC937 0x5602 +0xC938 0x55FA +0xC939 0x561D +0xC93A 0x5604 +0xC93B 0x55FF +0xC93C 0x55F9 +0xC93D 0x5889 +0xC93E 0x587C +0xC93F 0x5890 +0xC940 0x5898 +0xC941 0x5886 +0xC942 0x5881 +0xC943 0x587F +0xC944 0x5874 +0xC945 0x588B +0xC946 0x587A +0xC947 0x5887 +0xC948 0x5891 +0xC949 0x588E +0xC94A 0x5876 +0xC94B 0x5882 +0xC94C 0x5888 +0xC94D 0x587B +0xC94E 0x5894 +0xC94F 0x588F +0xC950 0x58FE +0xC951 0x596B +0xC952 0x5ADC +0xC953 0x5AEE +0xC954 0x5AE5 +0xC955 0x5AD5 +0xC956 0x5AEA +0xC957 0x5ADA +0xC958 0x5AED +0xC959 0x5AEB +0xC95A 0x5AF3 +0xC95B 0x5AE2 +0xC95C 0x5AE0 +0xC95D 0x5ADB +0xC95E 0x5AEC +0xC95F 0x5ADE +0xC960 0x5ADD +0xC961 0x5AD9 +0xC962 0x5AE8 +0xC963 0x5ADF +0xC964 0x5B77 +0xC965 0x5BE0 +0xC966 0x5BE3 +0xC967 0x5C63 +0xC968 0x5D82 +0xC969 0x5D80 +0xC96A 0x5D7D +0xC96B 0x5D86 +0xC96C 0x5D7A +0xC96D 0x5D81 +0xC96E 0x5D77 +0xC96F 0x5D8A +0xC970 0x5D89 +0xC971 0x5D88 +0xC972 0x5D7E +0xC973 0x5D7C +0xC974 0x5D8D +0xC975 0x5D79 +0xC976 0x5D7F +0xC977 0x5E58 +0xC978 0x5E59 +0xC979 0x5E53 +0xC97A 0x5ED8 +0xC97B 0x5ED1 +0xC97C 0x5ED7 +0xC97D 0x5ECE +0xC97E 0x5EDC +0xC9A1 0x4F63 +0xC9A2 0x4F5C +0xC9A3 0x4F60 +0xC9A4 0x4F2F +0xC9A5 0x4F4E +0xC9A6 0x4F36 +0xC9A7 0x4F59 +0xC9A8 0x4F5D +0xC9A9 0x4F48 +0xC9AA 0x4F5A +0xC9AB 0x514C +0xC9AC 0x514B +0xC9AD 0x514D +0xC9AE 0x5175 +0xC9AF 0x51B6 +0xC9B0 0x51B7 +0xC9B1 0x5225 +0xC9B2 0x5224 +0xC9B3 0x5229 +0xC9B4 0x522A +0xC9B5 0x5228 +0xC9B6 0x52AB +0xC9B7 0x52A9 +0xC9B8 0x52AA +0xC9B9 0x52AC +0xC9BA 0x5323 +0xC9BB 0x5373 +0xC9BC 0x5375 +0xC9BD 0x541D +0xC9BE 0x542D +0xC9BF 0x541E +0xC9C0 0x543E +0xC9C1 0x5426 +0xC9C2 0x544E +0xC9C3 0x5427 +0xC9C4 0x5446 +0xC9C5 0x5443 +0xC9C6 0x5433 +0xC9C7 0x5448 +0xC9C8 0x5442 +0xC9C9 0x541B +0xC9CA 0x5429 +0xC9CB 0x544A +0xC9CC 0x5439 +0xC9CD 0x543B +0xC9CE 0x5438 +0xC9CF 0x542E +0xC9D0 0x5435 +0xC9D1 0x5436 +0xC9D2 0x5420 +0xC9D3 0x543C +0xC9D4 0x5440 +0xC9D5 0x5431 +0xC9D6 0x542B +0xC9D7 0x541F +0xC9D8 0x542C +0xC9D9 0x56EA +0xC9DA 0x56F0 +0xC9DB 0x56E4 +0xC9DC 0x56EB +0xC9DD 0x574A +0xC9DE 0x5751 +0xC9DF 0x5740 +0xC9E0 0x574D +0xC9E1 0x5747 +0xC9E2 0x574E +0xC9E3 0x573E +0xC9E4 0x5750 +0xC9E5 0x574F +0xC9E6 0x573B +0xC9E7 0x58EF +0xC9E8 0x593E +0xC9E9 0x599D +0xC9EA 0x5992 +0xC9EB 0x59A8 +0xC9EC 0x599E +0xC9ED 0x59A3 +0xC9EE 0x5999 +0xC9EF 0x5996 +0xC9F0 0x598D +0xC9F1 0x59A4 +0xC9F2 0x5993 +0xC9F3 0x598A +0xC9F4 0x59A5 +0xC9F5 0x5B5D +0xC9F6 0x5B5C +0xC9F7 0x5B5A +0xC9F8 0x5B5B +0xC9F9 0x5B8C +0xC9FA 0x5B8B +0xC9FB 0x5B8F +0xC9FC 0x5C2C +0xC9FD 0x5C40 +0xC9FE 0x5C41 +0xCA21 0x5ED5 +0xCA22 0x5ED9 +0xCA23 0x5ED2 +0xCA24 0x5ED4 +0xCA25 0x5F44 +0xCA26 0x5F43 +0xCA27 0x5F6F +0xCA28 0x5FB6 +0xCA29 0x612C +0xCA2A 0x6128 +0xCA2B 0x6141 +0xCA2C 0x615E +0xCA2D 0x6171 +0xCA2E 0x6173 +0xCA2F 0x6152 +0xCA30 0x6153 +0xCA31 0x6172 +0xCA32 0x616C +0xCA33 0x6180 +0xCA34 0x6174 +0xCA35 0x6154 +0xCA36 0x617A +0xCA37 0x615B +0xCA38 0x6165 +0xCA39 0x613B +0xCA3A 0x616A +0xCA3B 0x6161 +0xCA3C 0x6156 +0xCA3D 0x6229 +0xCA3E 0x6227 +0xCA3F 0x622B +0xCA40 0x642B +0xCA41 0x644D +0xCA42 0x645B +0xCA43 0x645D +0xCA44 0x6474 +0xCA45 0x6476 +0xCA46 0x6472 +0xCA47 0x6473 +0xCA48 0x647D +0xCA49 0x6475 +0xCA4A 0x6466 +0xCA4B 0x64A6 +0xCA4C 0x644E +0xCA4D 0x6482 +0xCA4E 0x645E +0xCA4F 0x645C +0xCA50 0x644B +0xCA51 0x6453 +0xCA52 0x6460 +0xCA53 0x6450 +0xCA54 0x647F +0xCA55 0x643F +0xCA56 0x646C +0xCA57 0x646B +0xCA58 0x6459 +0xCA59 0x6465 +0xCA5A 0x6477 +0xCA5B 0x6573 +0xCA5C 0x65A0 +0xCA5D 0x66A1 +0xCA5E 0x66A0 +0xCA5F 0x669F +0xCA60 0x6705 +0xCA61 0x6704 +0xCA62 0x6722 +0xCA63 0x69B1 +0xCA64 0x69B6 +0xCA65 0x69C9 +0xCA66 0x69A0 +0xCA67 0x69CE +0xCA68 0x6996 +0xCA69 0x69B0 +0xCA6A 0x69AC +0xCA6B 0x69BC +0xCA6C 0x6991 +0xCA6D 0x6999 +0xCA6E 0x698E +0xCA6F 0x69A7 +0xCA70 0x698D +0xCA71 0x69A9 +0xCA72 0x69BE +0xCA73 0x69AF +0xCA74 0x69BF +0xCA75 0x69C4 +0xCA76 0x69BD +0xCA77 0x69A4 +0xCA78 0x69D4 +0xCA79 0x69B9 +0xCA7A 0x69CA +0xCA7B 0x699A +0xCA7C 0x69CF +0xCA7D 0x69B3 +0xCA7E 0x6993 +0xCAA1 0x5C3F +0xCAA2 0x5C3E +0xCAA3 0x5C90 +0xCAA4 0x5C91 +0xCAA5 0x5C94 +0xCAA6 0x5C8C +0xCAA7 0x5DEB +0xCAA8 0x5E0C +0xCAA9 0x5E8F +0xCAAA 0x5E87 +0xCAAB 0x5E8A +0xCAAC 0x5EF7 +0xCAAD 0x5F04 +0xCAAE 0x5F1F +0xCAAF 0x5F64 +0xCAB0 0x5F62 +0xCAB1 0x5F77 +0xCAB2 0x5F79 +0xCAB3 0x5FD8 +0xCAB4 0x5FCC +0xCAB5 0x5FD7 +0xCAB6 0x5FCD +0xCAB7 0x5FF1 +0xCAB8 0x5FEB +0xCAB9 0x5FF8 +0xCABA 0x5FEA +0xCABB 0x6212 +0xCABC 0x6211 +0xCABD 0x6284 +0xCABE 0x6297 +0xCABF 0x6296 +0xCAC0 0x6280 +0xCAC1 0x6276 +0xCAC2 0x6289 +0xCAC3 0x626D +0xCAC4 0x628A +0xCAC5 0x627C +0xCAC6 0x627E +0xCAC7 0x6279 +0xCAC8 0x6273 +0xCAC9 0x6292 +0xCACA 0x626F +0xCACB 0x6298 +0xCACC 0x626E +0xCACD 0x6295 +0xCACE 0x6293 +0xCACF 0x6291 +0xCAD0 0x6286 +0xCAD1 0x6539 +0xCAD2 0x653B +0xCAD3 0x6538 +0xCAD4 0x65F1 +0xCAD5 0x66F4 +0xCAD6 0x675F +0xCAD7 0x674E +0xCAD8 0x674F +0xCAD9 0x6750 +0xCADA 0x6751 +0xCADB 0x675C +0xCADC 0x6756 +0xCADD 0x675E +0xCADE 0x6749 +0xCADF 0x6746 +0xCAE0 0x6760 +0xCAE1 0x6753 +0xCAE2 0x6757 +0xCAE3 0x6B65 +0xCAE4 0x6BCF +0xCAE5 0x6C42 +0xCAE6 0x6C5E +0xCAE7 0x6C99 +0xCAE8 0x6C81 +0xCAE9 0x6C88 +0xCAEA 0x6C89 +0xCAEB 0x6C85 +0xCAEC 0x6C9B +0xCAED 0x6C6A +0xCAEE 0x6C7A +0xCAEF 0x6C90 +0xCAF0 0x6C70 +0xCAF1 0x6C8C +0xCAF2 0x6C68 +0xCAF3 0x6C96 +0xCAF4 0x6C92 +0xCAF5 0x6C7D +0xCAF6 0x6C83 +0xCAF7 0x6C72 +0xCAF8 0x6C7E +0xCAF9 0x6C74 +0xCAFA 0x6C86 +0xCAFB 0x6C76 +0xCAFC 0x6C8D +0xCAFD 0x6C94 +0xCAFE 0x6C98 +0xCB21 0x69AA +0xCB22 0x69A1 +0xCB23 0x699E +0xCB24 0x69D9 +0xCB25 0x6997 +0xCB26 0x6990 +0xCB27 0x69C2 +0xCB28 0x69B5 +0xCB29 0x69A5 +0xCB2A 0x69C6 +0xCB2B 0x6B4A +0xCB2C 0x6B4D +0xCB2D 0x6B4B +0xCB2E 0x6B9E +0xCB2F 0x6B9F +0xCB30 0x6BA0 +0xCB31 0x6BC3 +0xCB32 0x6BC4 +0xCB33 0x6BFE +0xCB34 0x6ECE +0xCB35 0x6EF5 +0xCB36 0x6EF1 +0xCB37 0x6F03 +0xCB38 0x6F25 +0xCB39 0x6EF8 +0xCB3A 0x6F37 +0xCB3B 0x6EFB +0xCB3C 0x6F2E +0xCB3D 0x6F09 +0xCB3E 0x6F4E +0xCB3F 0x6F19 +0xCB40 0x6F1A +0xCB41 0x6F27 +0xCB42 0x6F18 +0xCB43 0x6F3B +0xCB44 0x6F12 +0xCB45 0x6EED +0xCB46 0x6F0A +0xCB47 0x6F36 +0xCB48 0x6F73 +0xCB49 0x6EF9 +0xCB4A 0x6EEE +0xCB4B 0x6F2D +0xCB4C 0x6F40 +0xCB4D 0x6F30 +0xCB4E 0x6F3C +0xCB4F 0x6F35 +0xCB50 0x6EEB +0xCB51 0x6F07 +0xCB52 0x6F0E +0xCB53 0x6F43 +0xCB54 0x6F05 +0xCB55 0x6EFD +0xCB56 0x6EF6 +0xCB57 0x6F39 +0xCB58 0x6F1C +0xCB59 0x6EFC +0xCB5A 0x6F3A +0xCB5B 0x6F1F +0xCB5C 0x6F0D +0xCB5D 0x6F1E +0xCB5E 0x6F08 +0xCB5F 0x6F21 +0xCB60 0x7187 +0xCB61 0x7190 +0xCB62 0x7189 +0xCB63 0x7180 +0xCB64 0x7185 +0xCB65 0x7182 +0xCB66 0x718F +0xCB67 0x717B +0xCB68 0x7186 +0xCB69 0x7181 +0xCB6A 0x7197 +0xCB6B 0x7244 +0xCB6C 0x7253 +0xCB6D 0x7297 +0xCB6E 0x7295 +0xCB6F 0x7293 +0xCB70 0x7343 +0xCB71 0x734D +0xCB72 0x7351 +0xCB73 0x734C +0xCB74 0x7462 +0xCB75 0x7473 +0xCB76 0x7471 +0xCB77 0x7475 +0xCB78 0x7472 +0xCB79 0x7467 +0xCB7A 0x746E +0xCB7B 0x7500 +0xCB7C 0x7502 +0xCB7D 0x7503 +0xCB7E 0x757D +0xCBA1 0x6C82 +0xCBA2 0x7076 +0xCBA3 0x707C +0xCBA4 0x707D +0xCBA5 0x7078 +0xCBA6 0x7262 +0xCBA7 0x7261 +0xCBA8 0x7260 +0xCBA9 0x72C4 +0xCBAA 0x72C2 +0xCBAB 0x7396 +0xCBAC 0x752C +0xCBAD 0x752B +0xCBAE 0x7537 +0xCBAF 0x7538 +0xCBB0 0x7682 +0xCBB1 0x76EF +0xCBB2 0x77E3 +0xCBB3 0x79C1 +0xCBB4 0x79C0 +0xCBB5 0x79BF +0xCBB6 0x7A76 +0xCBB7 0x7CFB +0xCBB8 0x7F55 +0xCBB9 0x8096 +0xCBBA 0x8093 +0xCBBB 0x809D +0xCBBC 0x8098 +0xCBBD 0x809B +0xCBBE 0x809A +0xCBBF 0x80B2 +0xCBC0 0x826F +0xCBC1 0x8292 +0xCBC2 0x828B +0xCBC3 0x828D +0xCBC4 0x898B +0xCBC5 0x89D2 +0xCBC6 0x8A00 +0xCBC7 0x8C37 +0xCBC8 0x8C46 +0xCBC9 0x8C55 +0xCBCA 0x8C9D +0xCBCB 0x8D64 +0xCBCC 0x8D70 +0xCBCD 0x8DB3 +0xCBCE 0x8EAB +0xCBCF 0x8ECA +0xCBD0 0x8F9B +0xCBD1 0x8FB0 +0xCBD2 0x8FC2 +0xCBD3 0x8FC6 +0xCBD4 0x8FC5 +0xCBD5 0x8FC4 +0xCBD6 0x5DE1 +0xCBD7 0x9091 +0xCBD8 0x90A2 +0xCBD9 0x90AA +0xCBDA 0x90A6 +0xCBDB 0x90A3 +0xCBDC 0x9149 +0xCBDD 0x91C6 +0xCBDE 0x91CC +0xCBDF 0x9632 +0xCBE0 0x962E +0xCBE1 0x9631 +0xCBE2 0x962A +0xCBE3 0x962C +0xCBE4 0x4E26 +0xCBE5 0x4E56 +0xCBE6 0x4E73 +0xCBE7 0x4E8B +0xCBE8 0x4E9B +0xCBE9 0x4E9E +0xCBEA 0x4EAB +0xCBEB 0x4EAC +0xCBEC 0x4F6F +0xCBED 0x4F9D +0xCBEE 0x4F8D +0xCBEF 0x4F73 +0xCBF0 0x4F7F +0xCBF1 0x4F6C +0xCBF2 0x4F9B +0xCBF3 0x4F8B +0xCBF4 0x4F86 +0xCBF5 0x4F83 +0xCBF6 0x4F70 +0xCBF7 0x4F75 +0xCBF8 0x4F88 +0xCBF9 0x4F69 +0xCBFA 0x4F7B +0xCBFB 0x4F96 +0xCBFC 0x4F7E +0xCBFD 0x4F8F +0xCBFE 0x4F91 +0xCC21 0x7590 +0xCC22 0x7616 +0xCC23 0x7608 +0xCC24 0x760C +0xCC25 0x7615 +0xCC26 0x7611 +0xCC27 0x760A +0xCC28 0x7614 +0xCC29 0x76B8 +0xCC2A 0x7781 +0xCC2B 0x777C +0xCC2C 0x7785 +0xCC2D 0x7782 +0xCC2E 0x776E +0xCC2F 0x7780 +0xCC30 0x776F +0xCC31 0x777E +0xCC32 0x7783 +0xCC33 0x78B2 +0xCC34 0x78AA +0xCC35 0x78B4 +0xCC36 0x78AD +0xCC37 0x78A8 +0xCC38 0x787E +0xCC39 0x78AB +0xCC3A 0x789E +0xCC3B 0x78A5 +0xCC3C 0x78A0 +0xCC3D 0x78AC +0xCC3E 0x78A2 +0xCC3F 0x78A4 +0xCC40 0x7998 +0xCC41 0x798A +0xCC42 0x798B +0xCC43 0x7996 +0xCC44 0x7995 +0xCC45 0x7994 +0xCC46 0x7993 +0xCC47 0x7997 +0xCC48 0x7988 +0xCC49 0x7992 +0xCC4A 0x7990 +0xCC4B 0x7A2B +0xCC4C 0x7A4A +0xCC4D 0x7A30 +0xCC4E 0x7A2F +0xCC4F 0x7A28 +0xCC50 0x7A26 +0xCC51 0x7AA8 +0xCC52 0x7AAB +0xCC53 0x7AAC +0xCC54 0x7AEE +0xCC55 0x7B88 +0xCC56 0x7B9C +0xCC57 0x7B8A +0xCC58 0x7B91 +0xCC59 0x7B90 +0xCC5A 0x7B96 +0xCC5B 0x7B8D +0xCC5C 0x7B8C +0xCC5D 0x7B9B +0xCC5E 0x7B8E +0xCC5F 0x7B85 +0xCC60 0x7B98 +0xCC61 0x5284 +0xCC62 0x7B99 +0xCC63 0x7BA4 +0xCC64 0x7B82 +0xCC65 0x7CBB +0xCC66 0x7CBF +0xCC67 0x7CBC +0xCC68 0x7CBA +0xCC69 0x7DA7 +0xCC6A 0x7DB7 +0xCC6B 0x7DC2 +0xCC6C 0x7DA3 +0xCC6D 0x7DAA +0xCC6E 0x7DC1 +0xCC6F 0x7DC0 +0xCC70 0x7DC5 +0xCC71 0x7D9D +0xCC72 0x7DCE +0xCC73 0x7DC4 +0xCC74 0x7DC6 +0xCC75 0x7DCB +0xCC76 0x7DCC +0xCC77 0x7DAF +0xCC78 0x7DB9 +0xCC79 0x7D96 +0xCC7A 0x7DBC +0xCC7B 0x7D9F +0xCC7C 0x7DA6 +0xCC7D 0x7DAE +0xCC7E 0x7DA9 +0xCCA1 0x4F7A +0xCCA2 0x5154 +0xCCA3 0x5152 +0xCCA4 0x5155 +0xCCA5 0x5169 +0xCCA6 0x5177 +0xCCA7 0x5176 +0xCCA8 0x5178 +0xCCA9 0x51BD +0xCCAA 0x51FD +0xCCAB 0x523B +0xCCAC 0x5238 +0xCCAD 0x5237 +0xCCAE 0x523A +0xCCAF 0x5230 +0xCCB0 0x522E +0xCCB1 0x5236 +0xCCB2 0x5241 +0xCCB3 0x52BE +0xCCB4 0x52BB +0xCCB5 0x5352 +0xCCB6 0x5354 +0xCCB7 0x5353 +0xCCB8 0x5351 +0xCCB9 0x5366 +0xCCBA 0x5377 +0xCCBB 0x5378 +0xCCBC 0x5379 +0xCCBD 0x53D6 +0xCCBE 0x53D4 +0xCCBF 0x53D7 +0xCCC0 0x5473 +0xCCC1 0x5475 +0xCCC2 0x5496 +0xCCC3 0x5478 +0xCCC4 0x5495 +0xCCC5 0x5480 +0xCCC6 0x547B +0xCCC7 0x5477 +0xCCC8 0x5484 +0xCCC9 0x5492 +0xCCCA 0x5486 +0xCCCB 0x547C +0xCCCC 0x5490 +0xCCCD 0x5471 +0xCCCE 0x5476 +0xCCCF 0x548C +0xCCD0 0x549A +0xCCD1 0x5462 +0xCCD2 0x5468 +0xCCD3 0x548B +0xCCD4 0x547D +0xCCD5 0x548E +0xCCD6 0x56FA +0xCCD7 0x5783 +0xCCD8 0x5777 +0xCCD9 0x576A +0xCCDA 0x5769 +0xCCDB 0x5761 +0xCCDC 0x5766 +0xCCDD 0x5764 +0xCCDE 0x577C +0xCCDF 0x591C +0xCCE0 0x5949 +0xCCE1 0x5947 +0xCCE2 0x5948 +0xCCE3 0x5944 +0xCCE4 0x5954 +0xCCE5 0x59BE +0xCCE6 0x59BB +0xCCE7 0x59D4 +0xCCE8 0x59B9 +0xCCE9 0x59AE +0xCCEA 0x59D1 +0xCCEB 0x59C6 +0xCCEC 0x59D0 +0xCCED 0x59CD +0xCCEE 0x59CB +0xCCEF 0x59D3 +0xCCF0 0x59CA +0xCCF1 0x59AF +0xCCF2 0x59B3 +0xCCF3 0x59D2 +0xCCF4 0x59C5 +0xCCF5 0x5B5F +0xCCF6 0x5B64 +0xCCF7 0x5B63 +0xCCF8 0x5B97 +0xCCF9 0x5B9A +0xCCFA 0x5B98 +0xCCFB 0x5B9C +0xCCFC 0x5B99 +0xCCFD 0x5B9B +0xCCFE 0x5C1A +0xCD21 0x7DA1 +0xCD22 0x7DC9 +0xCD23 0x7F73 +0xCD24 0x7FE2 +0xCD25 0x7FE3 +0xCD26 0x7FE5 +0xCD27 0x7FDE +0xCD28 0x8024 +0xCD29 0x805D +0xCD2A 0x805C +0xCD2B 0x8189 +0xCD2C 0x8186 +0xCD2D 0x8183 +0xCD2E 0x8187 +0xCD2F 0x818D +0xCD30 0x818C +0xCD31 0x818B +0xCD32 0x8215 +0xCD33 0x8497 +0xCD34 0x84A4 +0xCD35 0x84A1 +0xCD36 0x849F +0xCD37 0x84BA +0xCD38 0x84CE +0xCD39 0x84C2 +0xCD3A 0x84AC +0xCD3B 0x84AE +0xCD3C 0x84AB +0xCD3D 0x84B9 +0xCD3E 0x84B4 +0xCD3F 0x84C1 +0xCD40 0x84CD +0xCD41 0x84AA +0xCD42 0x849A +0xCD43 0x84B1 +0xCD44 0x84D0 +0xCD45 0x849D +0xCD46 0x84A7 +0xCD47 0x84BB +0xCD48 0x84A2 +0xCD49 0x8494 +0xCD4A 0x84C7 +0xCD4B 0x84CC +0xCD4C 0x849B +0xCD4D 0x84A9 +0xCD4E 0x84AF +0xCD4F 0x84A8 +0xCD50 0x84D6 +0xCD51 0x8498 +0xCD52 0x84B6 +0xCD53 0x84CF +0xCD54 0x84A0 +0xCD55 0x84D7 +0xCD56 0x84D4 +0xCD57 0x84D2 +0xCD58 0x84DB +0xCD59 0x84B0 +0xCD5A 0x8491 +0xCD5B 0x8661 +0xCD5C 0x8733 +0xCD5D 0x8723 +0xCD5E 0x8728 +0xCD5F 0x876B +0xCD60 0x8740 +0xCD61 0x872E +0xCD62 0x871E +0xCD63 0x8721 +0xCD64 0x8719 +0xCD65 0x871B +0xCD66 0x8743 +0xCD67 0x872C +0xCD68 0x8741 +0xCD69 0x873E +0xCD6A 0x8746 +0xCD6B 0x8720 +0xCD6C 0x8732 +0xCD6D 0x872A +0xCD6E 0x872D +0xCD6F 0x873C +0xCD70 0x8712 +0xCD71 0x873A +0xCD72 0x8731 +0xCD73 0x8735 +0xCD74 0x8742 +0xCD75 0x8726 +0xCD76 0x8727 +0xCD77 0x8738 +0xCD78 0x8724 +0xCD79 0x871A +0xCD7A 0x8730 +0xCD7B 0x8711 +0xCD7C 0x88F7 +0xCD7D 0x88E7 +0xCD7E 0x88F1 +0xCDA1 0x5C48 +0xCDA2 0x5C45 +0xCDA3 0x5C46 +0xCDA4 0x5CB7 +0xCDA5 0x5CA1 +0xCDA6 0x5CB8 +0xCDA7 0x5CA9 +0xCDA8 0x5CAB +0xCDA9 0x5CB1 +0xCDAA 0x5CB3 +0xCDAB 0x5E18 +0xCDAC 0x5E1A +0xCDAD 0x5E16 +0xCDAE 0x5E15 +0xCDAF 0x5E1B +0xCDB0 0x5E11 +0xCDB1 0x5E78 +0xCDB2 0x5E9A +0xCDB3 0x5E97 +0xCDB4 0x5E9C +0xCDB5 0x5E95 +0xCDB6 0x5E96 +0xCDB7 0x5EF6 +0xCDB8 0x5F26 +0xCDB9 0x5F27 +0xCDBA 0x5F29 +0xCDBB 0x5F80 +0xCDBC 0x5F81 +0xCDBD 0x5F7F +0xCDBE 0x5F7C +0xCDBF 0x5FDD +0xCDC0 0x5FE0 +0xCDC1 0x5FFD +0xCDC2 0x5FF5 +0xCDC3 0x5FFF +0xCDC4 0x600F +0xCDC5 0x6014 +0xCDC6 0x602F +0xCDC7 0x6035 +0xCDC8 0x6016 +0xCDC9 0x602A +0xCDCA 0x6015 +0xCDCB 0x6021 +0xCDCC 0x6027 +0xCDCD 0x6029 +0xCDCE 0x602B +0xCDCF 0x601B +0xCDD0 0x6216 +0xCDD1 0x6215 +0xCDD2 0x623F +0xCDD3 0x623E +0xCDD4 0x6240 +0xCDD5 0x627F +0xCDD6 0x62C9 +0xCDD7 0x62CC +0xCDD8 0x62C4 +0xCDD9 0x62BF +0xCDDA 0x62C2 +0xCDDB 0x62B9 +0xCDDC 0x62D2 +0xCDDD 0x62DB +0xCDDE 0x62AB +0xCDDF 0x62D3 +0xCDE0 0x62D4 +0xCDE1 0x62CB +0xCDE2 0x62C8 +0xCDE3 0x62A8 +0xCDE4 0x62BD +0xCDE5 0x62BC +0xCDE6 0x62D0 +0xCDE7 0x62D9 +0xCDE8 0x62C7 +0xCDE9 0x62CD +0xCDEA 0x62B5 +0xCDEB 0x62DA +0xCDEC 0x62B1 +0xCDED 0x62D8 +0xCDEE 0x62D6 +0xCDEF 0x62D7 +0xCDF0 0x62C6 +0xCDF1 0x62AC +0xCDF2 0x62CE +0xCDF3 0x653E +0xCDF4 0x65A7 +0xCDF5 0x65BC +0xCDF6 0x65FA +0xCDF7 0x6614 +0xCDF8 0x6613 +0xCDF9 0x660C +0xCDFA 0x6606 +0xCDFB 0x6602 +0xCDFC 0x660E +0xCDFD 0x6600 +0xCDFE 0x660F +0xCE21 0x88F2 +0xCE22 0x88FA +0xCE23 0x88FE +0xCE24 0x88EE +0xCE25 0x88FC +0xCE26 0x88F6 +0xCE27 0x88FB +0xCE28 0x88F0 +0xCE29 0x88EC +0xCE2A 0x88EB +0xCE2B 0x899D +0xCE2C 0x89A1 +0xCE2D 0x899F +0xCE2E 0x899E +0xCE2F 0x89E9 +0xCE30 0x89EB +0xCE31 0x89E8 +0xCE32 0x8AAB +0xCE33 0x8A99 +0xCE34 0x8A8B +0xCE35 0x8A92 +0xCE36 0x8A8F +0xCE37 0x8A96 +0xCE38 0x8C3D +0xCE39 0x8C68 +0xCE3A 0x8C69 +0xCE3B 0x8CD5 +0xCE3C 0x8CCF +0xCE3D 0x8CD7 +0xCE3E 0x8D96 +0xCE3F 0x8E09 +0xCE40 0x8E02 +0xCE41 0x8DFF +0xCE42 0x8E0D +0xCE43 0x8DFD +0xCE44 0x8E0A +0xCE45 0x8E03 +0xCE46 0x8E07 +0xCE47 0x8E06 +0xCE48 0x8E05 +0xCE49 0x8DFE +0xCE4A 0x8E00 +0xCE4B 0x8E04 +0xCE4C 0x8F10 +0xCE4D 0x8F11 +0xCE4E 0x8F0E +0xCE4F 0x8F0D +0xCE50 0x9123 +0xCE51 0x911C +0xCE52 0x9120 +0xCE53 0x9122 +0xCE54 0x911F +0xCE55 0x911D +0xCE56 0x911A +0xCE57 0x9124 +0xCE58 0x9121 +0xCE59 0x911B +0xCE5A 0x917A +0xCE5B 0x9172 +0xCE5C 0x9179 +0xCE5D 0x9173 +0xCE5E 0x92A5 +0xCE5F 0x92A4 +0xCE60 0x9276 +0xCE61 0x929B +0xCE62 0x927A +0xCE63 0x92A0 +0xCE64 0x9294 +0xCE65 0x92AA +0xCE66 0x928D +0xCE67 0x92A6 +0xCE68 0x929A +0xCE69 0x92AB +0xCE6A 0x9279 +0xCE6B 0x9297 +0xCE6C 0x927F +0xCE6D 0x92A3 +0xCE6E 0x92EE +0xCE6F 0x928E +0xCE70 0x9282 +0xCE71 0x9295 +0xCE72 0x92A2 +0xCE73 0x927D +0xCE74 0x9288 +0xCE75 0x92A1 +0xCE76 0x928A +0xCE77 0x9286 +0xCE78 0x928C +0xCE79 0x9299 +0xCE7A 0x92A7 +0xCE7B 0x927E +0xCE7C 0x9287 +0xCE7D 0x92A9 +0xCE7E 0x929D +0xCEA1 0x6615 +0xCEA2 0x660A +0xCEA3 0x6607 +0xCEA4 0x670D +0xCEA5 0x670B +0xCEA6 0x676D +0xCEA7 0x678B +0xCEA8 0x6795 +0xCEA9 0x6771 +0xCEAA 0x679C +0xCEAB 0x6773 +0xCEAC 0x6777 +0xCEAD 0x6787 +0xCEAE 0x679D +0xCEAF 0x6797 +0xCEB0 0x676F +0xCEB1 0x6770 +0xCEB2 0x677F +0xCEB3 0x6789 +0xCEB4 0x677E +0xCEB5 0x6790 +0xCEB6 0x6775 +0xCEB7 0x679A +0xCEB8 0x6793 +0xCEB9 0x677C +0xCEBA 0x676A +0xCEBB 0x6772 +0xCEBC 0x6B23 +0xCEBD 0x6B66 +0xCEBE 0x6B67 +0xCEBF 0x6B7F +0xCEC0 0x6C13 +0xCEC1 0x6C1B +0xCEC2 0x6CE3 +0xCEC3 0x6CE8 +0xCEC4 0x6CF3 +0xCEC5 0x6CB1 +0xCEC6 0x6CCC +0xCEC7 0x6CE5 +0xCEC8 0x6CB3 +0xCEC9 0x6CBD +0xCECA 0x6CBE +0xCECB 0x6CBC +0xCECC 0x6CE2 +0xCECD 0x6CAB +0xCECE 0x6CD5 +0xCECF 0x6CD3 +0xCED0 0x6CB8 +0xCED1 0x6CC4 +0xCED2 0x6CB9 +0xCED3 0x6CC1 +0xCED4 0x6CAE +0xCED5 0x6CD7 +0xCED6 0x6CC5 +0xCED7 0x6CF1 +0xCED8 0x6CBF +0xCED9 0x6CBB +0xCEDA 0x6CE1 +0xCEDB 0x6CDB +0xCEDC 0x6CCA +0xCEDD 0x6CAC +0xCEDE 0x6CEF +0xCEDF 0x6CDC +0xCEE0 0x6CD6 +0xCEE1 0x6CE0 +0xCEE2 0x7095 +0xCEE3 0x708E +0xCEE4 0x7092 +0xCEE5 0x708A +0xCEE6 0x7099 +0xCEE7 0x722C +0xCEE8 0x722D +0xCEE9 0x7238 +0xCEEA 0x7248 +0xCEEB 0x7267 +0xCEEC 0x7269 +0xCEED 0x72C0 +0xCEEE 0x72CE +0xCEEF 0x72D9 +0xCEF0 0x72D7 +0xCEF1 0x72D0 +0xCEF2 0x73A9 +0xCEF3 0x73A8 +0xCEF4 0x739F +0xCEF5 0x73AB +0xCEF6 0x73A5 +0xCEF7 0x753D +0xCEF8 0x759D +0xCEF9 0x7599 +0xCEFA 0x759A +0xCEFB 0x7684 +0xCEFC 0x76C2 +0xCEFD 0x76F2 +0xCEFE 0x76F4 +0xCF21 0x928B +0xCF22 0x922D +0xCF23 0x969E +0xCF24 0x96A1 +0xCF25 0x96FF +0xCF26 0x9758 +0xCF27 0x977D +0xCF28 0x977A +0xCF29 0x977E +0xCF2A 0x9783 +0xCF2B 0x9780 +0xCF2C 0x9782 +0xCF2D 0x977B +0xCF2E 0x9784 +0xCF2F 0x9781 +0xCF30 0x977F +0xCF31 0x97CE +0xCF32 0x97CD +0xCF33 0x9816 +0xCF34 0x98AD +0xCF35 0x98AE +0xCF36 0x9902 +0xCF37 0x9900 +0xCF38 0x9907 +0xCF39 0x999D +0xCF3A 0x999C +0xCF3B 0x99C3 +0xCF3C 0x99B9 +0xCF3D 0x99BB +0xCF3E 0x99BA +0xCF3F 0x99C2 +0xCF40 0x99BD +0xCF41 0x99C7 +0xCF42 0x9AB1 +0xCF43 0x9AE3 +0xCF44 0x9AE7 +0xCF45 0x9B3E +0xCF46 0x9B3F +0xCF47 0x9B60 +0xCF48 0x9B61 +0xCF49 0x9B5F +0xCF4A 0x9CF1 +0xCF4B 0x9CF2 +0xCF4C 0x9CF5 +0xCF4D 0x9EA7 +0xCF4E 0x50FF +0xCF4F 0x5103 +0xCF50 0x5130 +0xCF51 0x50F8 +0xCF52 0x5106 +0xCF53 0x5107 +0xCF54 0x50F6 +0xCF55 0x50FE +0xCF56 0x510B +0xCF57 0x510C +0xCF58 0x50FD +0xCF59 0x510A +0xCF5A 0x528B +0xCF5B 0x528C +0xCF5C 0x52F1 +0xCF5D 0x52EF +0xCF5E 0x5648 +0xCF5F 0x5642 +0xCF60 0x564C +0xCF61 0x5635 +0xCF62 0x5641 +0xCF63 0x564A +0xCF64 0x5649 +0xCF65 0x5646 +0xCF66 0x5658 +0xCF67 0x565A +0xCF68 0x5640 +0xCF69 0x5633 +0xCF6A 0x563D +0xCF6B 0x562C +0xCF6C 0x563E +0xCF6D 0x5638 +0xCF6E 0x562A +0xCF6F 0x563A +0xCF70 0x571A +0xCF71 0x58AB +0xCF72 0x589D +0xCF73 0x58B1 +0xCF74 0x58A0 +0xCF75 0x58A3 +0xCF76 0x58AF +0xCF77 0x58AC +0xCF78 0x58A5 +0xCF79 0x58A1 +0xCF7A 0x58FF +0xCF7B 0x5AFF +0xCF7C 0x5AF4 +0xCF7D 0x5AFD +0xCF7E 0x5AF7 +0xCFA1 0x77E5 +0xCFA2 0x77FD +0xCFA3 0x793E +0xCFA4 0x7940 +0xCFA5 0x7941 +0xCFA6 0x79C9 +0xCFA7 0x79C8 +0xCFA8 0x7A7A +0xCFA9 0x7A79 +0xCFAA 0x7AFA +0xCFAB 0x7CFE +0xCFAC 0x7F54 +0xCFAD 0x7F8C +0xCFAE 0x7F8B +0xCFAF 0x8005 +0xCFB0 0x80BA +0xCFB1 0x80A5 +0xCFB2 0x80A2 +0xCFB3 0x80B1 +0xCFB4 0x80A1 +0xCFB5 0x80AB +0xCFB6 0x80A9 +0xCFB7 0x80B4 +0xCFB8 0x80AA +0xCFB9 0x80AF +0xCFBA 0x81E5 +0xCFBB 0x81FE +0xCFBC 0x820D +0xCFBD 0x82B3 +0xCFBE 0x829D +0xCFBF 0x8299 +0xCFC0 0x82AD +0xCFC1 0x82BD +0xCFC2 0x829F +0xCFC3 0x82B9 +0xCFC4 0x82B1 +0xCFC5 0x82AC +0xCFC6 0x82A5 +0xCFC7 0x82AF +0xCFC8 0x82B8 +0xCFC9 0x82A3 +0xCFCA 0x82B0 +0xCFCB 0x82BE +0xCFCC 0x82B7 +0xCFCD 0x864E +0xCFCE 0x8671 +0xCFCF 0x521D +0xCFD0 0x8868 +0xCFD1 0x8ECB +0xCFD2 0x8FCE +0xCFD3 0x8FD4 +0xCFD4 0x8FD1 +0xCFD5 0x90B5 +0xCFD6 0x90B8 +0xCFD7 0x90B1 +0xCFD8 0x90B6 +0xCFD9 0x91C7 +0xCFDA 0x91D1 +0xCFDB 0x9577 +0xCFDC 0x9580 +0xCFDD 0x961C +0xCFDE 0x9640 +0xCFDF 0x963F +0xCFE0 0x963B +0xCFE1 0x9644 +0xCFE2 0x9642 +0xCFE3 0x96B9 +0xCFE4 0x96E8 +0xCFE5 0x9752 +0xCFE6 0x975E +0xCFE7 0x4E9F +0xCFE8 0x4EAD +0xCFE9 0x4EAE +0xCFEA 0x4FE1 +0xCFEB 0x4FB5 +0xCFEC 0x4FAF +0xCFED 0x4FBF +0xCFEE 0x4FE0 +0xCFEF 0x4FD1 +0xCFF0 0x4FCF +0xCFF1 0x4FDD +0xCFF2 0x4FC3 +0xCFF3 0x4FB6 +0xCFF4 0x4FD8 +0xCFF5 0x4FDF +0xCFF6 0x4FCA +0xCFF7 0x4FD7 +0xCFF8 0x4FAE +0xCFF9 0x4FD0 +0xCFFA 0x4FC4 +0xCFFB 0x4FC2 +0xCFFC 0x4FDA +0xCFFD 0x4FCE +0xCFFE 0x4FDE +0xD021 0x5AF6 +0xD022 0x5B03 +0xD023 0x5AF8 +0xD024 0x5B02 +0xD025 0x5AF9 +0xD026 0x5B01 +0xD027 0x5B07 +0xD028 0x5B05 +0xD029 0x5B0F +0xD02A 0x5C67 +0xD02B 0x5D99 +0xD02C 0x5D97 +0xD02D 0x5D9F +0xD02E 0x5D92 +0xD02F 0x5DA2 +0xD030 0x5D93 +0xD031 0x5D95 +0xD032 0x5DA0 +0xD033 0x5D9C +0xD034 0x5DA1 +0xD035 0x5D9A +0xD036 0x5D9E +0xD037 0x5E69 +0xD038 0x5E5D +0xD039 0x5E60 +0xD03A 0x5E5C +0xD03B 0x7DF3 +0xD03C 0x5EDB +0xD03D 0x5EDE +0xD03E 0x5EE1 +0xD03F 0x5F49 +0xD040 0x5FB2 +0xD041 0x618B +0xD042 0x6183 +0xD043 0x6179 +0xD044 0x61B1 +0xD045 0x61B0 +0xD046 0x61A2 +0xD047 0x6189 +0xD048 0x619B +0xD049 0x6193 +0xD04A 0x61AF +0xD04B 0x61AD +0xD04C 0x619F +0xD04D 0x6192 +0xD04E 0x61AA +0xD04F 0x61A1 +0xD050 0x618D +0xD051 0x6166 +0xD052 0x61B3 +0xD053 0x622D +0xD054 0x646E +0xD055 0x6470 +0xD056 0x6496 +0xD057 0x64A0 +0xD058 0x6485 +0xD059 0x6497 +0xD05A 0x649C +0xD05B 0x648F +0xD05C 0x648B +0xD05D 0x648A +0xD05E 0x648C +0xD05F 0x64A3 +0xD060 0x649F +0xD061 0x6468 +0xD062 0x64B1 +0xD063 0x6498 +0xD064 0x6576 +0xD065 0x657A +0xD066 0x6579 +0xD067 0x657B +0xD068 0x65B2 +0xD069 0x65B3 +0xD06A 0x66B5 +0xD06B 0x66B0 +0xD06C 0x66A9 +0xD06D 0x66B2 +0xD06E 0x66B7 +0xD06F 0x66AA +0xD070 0x66AF +0xD071 0x6A00 +0xD072 0x6A06 +0xD073 0x6A17 +0xD074 0x69E5 +0xD075 0x69F8 +0xD076 0x6A15 +0xD077 0x69F1 +0xD078 0x69E4 +0xD079 0x6A20 +0xD07A 0x69FF +0xD07B 0x69EC +0xD07C 0x69E2 +0xD07D 0x6A1B +0xD07E 0x6A1D +0xD0A1 0x4FB7 +0xD0A2 0x5157 +0xD0A3 0x5192 +0xD0A4 0x5191 +0xD0A5 0x51A0 +0xD0A6 0x524E +0xD0A7 0x5243 +0xD0A8 0x524A +0xD0A9 0x524D +0xD0AA 0x524C +0xD0AB 0x524B +0xD0AC 0x5247 +0xD0AD 0x52C7 +0xD0AE 0x52C9 +0xD0AF 0x52C3 +0xD0B0 0x52C1 +0xD0B1 0x530D +0xD0B2 0x5357 +0xD0B3 0x537B +0xD0B4 0x539A +0xD0B5 0x53DB +0xD0B6 0x54AC +0xD0B7 0x54C0 +0xD0B8 0x54A8 +0xD0B9 0x54CE +0xD0BA 0x54C9 +0xD0BB 0x54B8 +0xD0BC 0x54A6 +0xD0BD 0x54B3 +0xD0BE 0x54C7 +0xD0BF 0x54C2 +0xD0C0 0x54BD +0xD0C1 0x54AA +0xD0C2 0x54C1 +0xD0C3 0x54C4 +0xD0C4 0x54C8 +0xD0C5 0x54AF +0xD0C6 0x54AB +0xD0C7 0x54B1 +0xD0C8 0x54BB +0xD0C9 0x54A9 +0xD0CA 0x54A7 +0xD0CB 0x54BF +0xD0CC 0x56FF +0xD0CD 0x5782 +0xD0CE 0x578B +0xD0CF 0x57A0 +0xD0D0 0x57A3 +0xD0D1 0x57A2 +0xD0D2 0x57CE +0xD0D3 0x57AE +0xD0D4 0x5793 +0xD0D5 0x5955 +0xD0D6 0x5951 +0xD0D7 0x594F +0xD0D8 0x594E +0xD0D9 0x5950 +0xD0DA 0x59DC +0xD0DB 0x59D8 +0xD0DC 0x59FF +0xD0DD 0x59E3 +0xD0DE 0x59E8 +0xD0DF 0x5A03 +0xD0E0 0x59E5 +0xD0E1 0x59EA +0xD0E2 0x59DA +0xD0E3 0x59E6 +0xD0E4 0x5A01 +0xD0E5 0x59FB +0xD0E6 0x5B69 +0xD0E7 0x5BA3 +0xD0E8 0x5BA6 +0xD0E9 0x5BA4 +0xD0EA 0x5BA2 +0xD0EB 0x5BA5 +0xD0EC 0x5C01 +0xD0ED 0x5C4E +0xD0EE 0x5C4F +0xD0EF 0x5C4D +0xD0F0 0x5C4B +0xD0F1 0x5CD9 +0xD0F2 0x5CD2 +0xD0F3 0x5DF7 +0xD0F4 0x5E1D +0xD0F5 0x5E25 +0xD0F6 0x5E1F +0xD0F7 0x5E7D +0xD0F8 0x5EA0 +0xD0F9 0x5EA6 +0xD0FA 0x5EFA +0xD0FB 0x5F08 +0xD0FC 0x5F2D +0xD0FD 0x5F65 +0xD0FE 0x5F88 +0xD121 0x69FE +0xD122 0x6A27 +0xD123 0x69F2 +0xD124 0x69EE +0xD125 0x6A14 +0xD126 0x69F7 +0xD127 0x69E7 +0xD128 0x6A40 +0xD129 0x6A08 +0xD12A 0x69E6 +0xD12B 0x69FB +0xD12C 0x6A0D +0xD12D 0x69FC +0xD12E 0x69EB +0xD12F 0x6A09 +0xD130 0x6A04 +0xD131 0x6A18 +0xD132 0x6A25 +0xD133 0x6A0F +0xD134 0x69F6 +0xD135 0x6A26 +0xD136 0x6A07 +0xD137 0x69F4 +0xD138 0x6A16 +0xD139 0x6B51 +0xD13A 0x6BA5 +0xD13B 0x6BA3 +0xD13C 0x6BA2 +0xD13D 0x6BA6 +0xD13E 0x6C01 +0xD13F 0x6C00 +0xD140 0x6BFF +0xD141 0x6C02 +0xD142 0x6F41 +0xD143 0x6F26 +0xD144 0x6F7E +0xD145 0x6F87 +0xD146 0x6FC6 +0xD147 0x6F92 +0xD148 0x6F8D +0xD149 0x6F89 +0xD14A 0x6F8C +0xD14B 0x6F62 +0xD14C 0x6F4F +0xD14D 0x6F85 +0xD14E 0x6F5A +0xD14F 0x6F96 +0xD150 0x6F76 +0xD151 0x6F6C +0xD152 0x6F82 +0xD153 0x6F55 +0xD154 0x6F72 +0xD155 0x6F52 +0xD156 0x6F50 +0xD157 0x6F57 +0xD158 0x6F94 +0xD159 0x6F93 +0xD15A 0x6F5D +0xD15B 0x6F00 +0xD15C 0x6F61 +0xD15D 0x6F6B +0xD15E 0x6F7D +0xD15F 0x6F67 +0xD160 0x6F90 +0xD161 0x6F53 +0xD162 0x6F8B +0xD163 0x6F69 +0xD164 0x6F7F +0xD165 0x6F95 +0xD166 0x6F63 +0xD167 0x6F77 +0xD168 0x6F6A +0xD169 0x6F7B +0xD16A 0x71B2 +0xD16B 0x71AF +0xD16C 0x719B +0xD16D 0x71B0 +0xD16E 0x71A0 +0xD16F 0x719A +0xD170 0x71A9 +0xD171 0x71B5 +0xD172 0x719D +0xD173 0x71A5 +0xD174 0x719E +0xD175 0x71A4 +0xD176 0x71A1 +0xD177 0x71AA +0xD178 0x719C +0xD179 0x71A7 +0xD17A 0x71B3 +0xD17B 0x7298 +0xD17C 0x729A +0xD17D 0x7358 +0xD17E 0x7352 +0xD1A1 0x5F85 +0xD1A2 0x5F8A +0xD1A3 0x5F8B +0xD1A4 0x5F87 +0xD1A5 0x5F8C +0xD1A6 0x5F89 +0xD1A7 0x6012 +0xD1A8 0x601D +0xD1A9 0x6020 +0xD1AA 0x6025 +0xD1AB 0x600E +0xD1AC 0x6028 +0xD1AD 0x604D +0xD1AE 0x6070 +0xD1AF 0x6068 +0xD1B0 0x6062 +0xD1B1 0x6046 +0xD1B2 0x6043 +0xD1B3 0x606C +0xD1B4 0x606B +0xD1B5 0x606A +0xD1B6 0x6064 +0xD1B7 0x6241 +0xD1B8 0x62DC +0xD1B9 0x6316 +0xD1BA 0x6309 +0xD1BB 0x62FC +0xD1BC 0x62ED +0xD1BD 0x6301 +0xD1BE 0x62EE +0xD1BF 0x62FD +0xD1C0 0x6307 +0xD1C1 0x62F1 +0xD1C2 0x62F7 +0xD1C3 0x62EF +0xD1C4 0x62EC +0xD1C5 0x62FE +0xD1C6 0x62F4 +0xD1C7 0x6311 +0xD1C8 0x6302 +0xD1C9 0x653F +0xD1CA 0x6545 +0xD1CB 0x65AB +0xD1CC 0x65BD +0xD1CD 0x65E2 +0xD1CE 0x6625 +0xD1CF 0x662D +0xD1D0 0x6620 +0xD1D1 0x6627 +0xD1D2 0x662F +0xD1D3 0x661F +0xD1D4 0x6628 +0xD1D5 0x6631 +0xD1D6 0x6624 +0xD1D7 0x66F7 +0xD1D8 0x67FF +0xD1D9 0x67D3 +0xD1DA 0x67F1 +0xD1DB 0x67D4 +0xD1DC 0x67D0 +0xD1DD 0x67EC +0xD1DE 0x67B6 +0xD1DF 0x67AF +0xD1E0 0x67F5 +0xD1E1 0x67E9 +0xD1E2 0x67EF +0xD1E3 0x67C4 +0xD1E4 0x67D1 +0xD1E5 0x67B4 +0xD1E6 0x67DA +0xD1E7 0x67E5 +0xD1E8 0x67B8 +0xD1E9 0x67CF +0xD1EA 0x67DE +0xD1EB 0x67F3 +0xD1EC 0x67B0 +0xD1ED 0x67D9 +0xD1EE 0x67E2 +0xD1EF 0x67DD +0xD1F0 0x67D2 +0xD1F1 0x6B6A +0xD1F2 0x6B83 +0xD1F3 0x6B86 +0xD1F4 0x6BB5 +0xD1F5 0x6BD2 +0xD1F6 0x6BD7 +0xD1F7 0x6C1F +0xD1F8 0x6CC9 +0xD1F9 0x6D0B +0xD1FA 0x6D32 +0xD1FB 0x6D2A +0xD1FC 0x6D41 +0xD1FD 0x6D25 +0xD1FE 0x6D0C +0xD221 0x735E +0xD222 0x735F +0xD223 0x7360 +0xD224 0x735D +0xD225 0x735B +0xD226 0x7361 +0xD227 0x735A +0xD228 0x7359 +0xD229 0x7362 +0xD22A 0x7487 +0xD22B 0x7489 +0xD22C 0x748A +0xD22D 0x7486 +0xD22E 0x7481 +0xD22F 0x747D +0xD230 0x7485 +0xD231 0x7488 +0xD232 0x747C +0xD233 0x7479 +0xD234 0x7508 +0xD235 0x7507 +0xD236 0x757E +0xD237 0x7625 +0xD238 0x761E +0xD239 0x7619 +0xD23A 0x761D +0xD23B 0x761C +0xD23C 0x7623 +0xD23D 0x761A +0xD23E 0x7628 +0xD23F 0x761B +0xD240 0x769C +0xD241 0x769D +0xD242 0x769E +0xD243 0x769B +0xD244 0x778D +0xD245 0x778F +0xD246 0x7789 +0xD247 0x7788 +0xD248 0x78CD +0xD249 0x78BB +0xD24A 0x78CF +0xD24B 0x78CC +0xD24C 0x78D1 +0xD24D 0x78CE +0xD24E 0x78D4 +0xD24F 0x78C8 +0xD250 0x78C3 +0xD251 0x78C4 +0xD252 0x78C9 +0xD253 0x799A +0xD254 0x79A1 +0xD255 0x79A0 +0xD256 0x799C +0xD257 0x79A2 +0xD258 0x799B +0xD259 0x6B76 +0xD25A 0x7A39 +0xD25B 0x7AB2 +0xD25C 0x7AB4 +0xD25D 0x7AB3 +0xD25E 0x7BB7 +0xD25F 0x7BCB +0xD260 0x7BBE +0xD261 0x7BAC +0xD262 0x7BCE +0xD263 0x7BAF +0xD264 0x7BB9 +0xD265 0x7BCA +0xD266 0x7BB5 +0xD267 0x7CC5 +0xD268 0x7CC8 +0xD269 0x7CCC +0xD26A 0x7CCB +0xD26B 0x7DF7 +0xD26C 0x7DDB +0xD26D 0x7DEA +0xD26E 0x7DE7 +0xD26F 0x7DD7 +0xD270 0x7DE1 +0xD271 0x7E03 +0xD272 0x7DFA +0xD273 0x7DE6 +0xD274 0x7DF6 +0xD275 0x7DF1 +0xD276 0x7DF0 +0xD277 0x7DEE +0xD278 0x7DDF +0xD279 0x7F76 +0xD27A 0x7FAC +0xD27B 0x7FB0 +0xD27C 0x7FAD +0xD27D 0x7FED +0xD27E 0x7FEB +0xD2A1 0x6D31 +0xD2A2 0x6D1E +0xD2A3 0x6D17 +0xD2A4 0x6D3B +0xD2A5 0x6D3D +0xD2A6 0x6D3E +0xD2A7 0x6D36 +0xD2A8 0x6D1B +0xD2A9 0x6CF5 +0xD2AA 0x6D39 +0xD2AB 0x6D27 +0xD2AC 0x6D38 +0xD2AD 0x6D29 +0xD2AE 0x6D2E +0xD2AF 0x6D35 +0xD2B0 0x6D0E +0xD2B1 0x6D2B +0xD2B2 0x70AB +0xD2B3 0x70BA +0xD2B4 0x70B3 +0xD2B5 0x70AC +0xD2B6 0x70AF +0xD2B7 0x70AD +0xD2B8 0x70B8 +0xD2B9 0x70AE +0xD2BA 0x70A4 +0xD2BB 0x7230 +0xD2BC 0x7272 +0xD2BD 0x726F +0xD2BE 0x7274 +0xD2BF 0x72E9 +0xD2C0 0x72E0 +0xD2C1 0x72E1 +0xD2C2 0x73B7 +0xD2C3 0x73CA +0xD2C4 0x73BB +0xD2C5 0x73B2 +0xD2C6 0x73CD +0xD2C7 0x73C0 +0xD2C8 0x73B3 +0xD2C9 0x751A +0xD2CA 0x752D +0xD2CB 0x754F +0xD2CC 0x754C +0xD2CD 0x754E +0xD2CE 0x754B +0xD2CF 0x75AB +0xD2D0 0x75A4 +0xD2D1 0x75A5 +0xD2D2 0x75A2 +0xD2D3 0x75A3 +0xD2D4 0x7678 +0xD2D5 0x7686 +0xD2D6 0x7687 +0xD2D7 0x7688 +0xD2D8 0x76C8 +0xD2D9 0x76C6 +0xD2DA 0x76C3 +0xD2DB 0x76C5 +0xD2DC 0x7701 +0xD2DD 0x76F9 +0xD2DE 0x76F8 +0xD2DF 0x7709 +0xD2E0 0x770B +0xD2E1 0x76FE +0xD2E2 0x76FC +0xD2E3 0x7707 +0xD2E4 0x77DC +0xD2E5 0x7802 +0xD2E6 0x7814 +0xD2E7 0x780C +0xD2E8 0x780D +0xD2E9 0x7946 +0xD2EA 0x7949 +0xD2EB 0x7948 +0xD2EC 0x7947 +0xD2ED 0x79B9 +0xD2EE 0x79BA +0xD2EF 0x79D1 +0xD2F0 0x79D2 +0xD2F1 0x79CB +0xD2F2 0x7A7F +0xD2F3 0x7A81 +0xD2F4 0x7AFF +0xD2F5 0x7AFD +0xD2F6 0x7C7D +0xD2F7 0x7D02 +0xD2F8 0x7D05 +0xD2F9 0x7D00 +0xD2FA 0x7D09 +0xD2FB 0x7D07 +0xD2FC 0x7D04 +0xD2FD 0x7D06 +0xD2FE 0x7F38 +0xD321 0x7FEA +0xD322 0x7FEC +0xD323 0x7FE6 +0xD324 0x7FE8 +0xD325 0x8064 +0xD326 0x8067 +0xD327 0x81A3 +0xD328 0x819F +0xD329 0x819E +0xD32A 0x8195 +0xD32B 0x81A2 +0xD32C 0x8199 +0xD32D 0x8197 +0xD32E 0x8216 +0xD32F 0x824F +0xD330 0x8253 +0xD331 0x8252 +0xD332 0x8250 +0xD333 0x824E +0xD334 0x8251 +0xD335 0x8524 +0xD336 0x853B +0xD337 0x850F +0xD338 0x8500 +0xD339 0x8529 +0xD33A 0x850E +0xD33B 0x8509 +0xD33C 0x850D +0xD33D 0x851F +0xD33E 0x850A +0xD33F 0x8527 +0xD340 0x851C +0xD341 0x84FB +0xD342 0x852B +0xD343 0x84FA +0xD344 0x8508 +0xD345 0x850C +0xD346 0x84F4 +0xD347 0x852A +0xD348 0x84F2 +0xD349 0x8515 +0xD34A 0x84F7 +0xD34B 0x84EB +0xD34C 0x84F3 +0xD34D 0x84FC +0xD34E 0x8512 +0xD34F 0x84EA +0xD350 0x84E9 +0xD351 0x8516 +0xD352 0x84FE +0xD353 0x8528 +0xD354 0x851D +0xD355 0x852E +0xD356 0x8502 +0xD357 0x84FD +0xD358 0x851E +0xD359 0x84F6 +0xD35A 0x8531 +0xD35B 0x8526 +0xD35C 0x84E7 +0xD35D 0x84E8 +0xD35E 0x84F0 +0xD35F 0x84EF +0xD360 0x84F9 +0xD361 0x8518 +0xD362 0x8520 +0xD363 0x8530 +0xD364 0x850B +0xD365 0x8519 +0xD366 0x852F +0xD367 0x8662 +0xD368 0x8756 +0xD369 0x8763 +0xD36A 0x8764 +0xD36B 0x8777 +0xD36C 0x87E1 +0xD36D 0x8773 +0xD36E 0x8758 +0xD36F 0x8754 +0xD370 0x875B +0xD371 0x8752 +0xD372 0x8761 +0xD373 0x875A +0xD374 0x8751 +0xD375 0x875E +0xD376 0x876D +0xD377 0x876A +0xD378 0x8750 +0xD379 0x874E +0xD37A 0x875F +0xD37B 0x875D +0xD37C 0x876F +0xD37D 0x876C +0xD37E 0x877A +0xD3A1 0x7F8E +0xD3A2 0x7FBF +0xD3A3 0x8010 +0xD3A4 0x800D +0xD3A5 0x8011 +0xD3A6 0x8036 +0xD3A7 0x80D6 +0xD3A8 0x80E5 +0xD3A9 0x80DA +0xD3AA 0x80C3 +0xD3AB 0x80C4 +0xD3AC 0x80CC +0xD3AD 0x80E1 +0xD3AE 0x80DB +0xD3AF 0x80CE +0xD3B0 0x80DE +0xD3B1 0x80E4 +0xD3B2 0x80DD +0xD3B3 0x81F4 +0xD3B4 0x8222 +0xD3B5 0x82E7 +0xD3B6 0x8303 +0xD3B7 0x8305 +0xD3B8 0x82E3 +0xD3B9 0x82DB +0xD3BA 0x82E6 +0xD3BB 0x8304 +0xD3BC 0x82E5 +0xD3BD 0x8302 +0xD3BE 0x8309 +0xD3BF 0x82D2 +0xD3C0 0x82D7 +0xD3C1 0x82F1 +0xD3C2 0x8301 +0xD3C3 0x82DC +0xD3C4 0x82D4 +0xD3C5 0x82D1 +0xD3C6 0x82DE +0xD3C7 0x82D3 +0xD3C8 0x82DF +0xD3C9 0x82EF +0xD3CA 0x8306 +0xD3CB 0x8650 +0xD3CC 0x8679 +0xD3CD 0x867B +0xD3CE 0x867A +0xD3CF 0x884D +0xD3D0 0x886B +0xD3D1 0x8981 +0xD3D2 0x89D4 +0xD3D3 0x8A08 +0xD3D4 0x8A02 +0xD3D5 0x8A03 +0xD3D6 0x8C9E +0xD3D7 0x8CA0 +0xD3D8 0x8D74 +0xD3D9 0x8D73 +0xD3DA 0x8DB4 +0xD3DB 0x8ECD +0xD3DC 0x8ECC +0xD3DD 0x8FF0 +0xD3DE 0x8FE6 +0xD3DF 0x8FE2 +0xD3E0 0x8FEA +0xD3E1 0x8FE5 +0xD3E2 0x8FED +0xD3E3 0x8FEB +0xD3E4 0x8FE4 +0xD3E5 0x8FE8 +0xD3E6 0x90CA +0xD3E7 0x90CE +0xD3E8 0x90C1 +0xD3E9 0x90C3 +0xD3EA 0x914B +0xD3EB 0x914A +0xD3EC 0x91CD +0xD3ED 0x9582 +0xD3EE 0x9650 +0xD3EF 0x964B +0xD3F0 0x964C +0xD3F1 0x964D +0xD3F2 0x9762 +0xD3F3 0x9769 +0xD3F4 0x97CB +0xD3F5 0x97ED +0xD3F6 0x97F3 +0xD3F7 0x9801 +0xD3F8 0x98A8 +0xD3F9 0x98DB +0xD3FA 0x98DF +0xD3FB 0x9996 +0xD3FC 0x9999 +0xD3FD 0x4E58 +0xD3FE 0x4EB3 +0xD421 0x876E +0xD422 0x875C +0xD423 0x8765 +0xD424 0x874F +0xD425 0x877B +0xD426 0x8775 +0xD427 0x8762 +0xD428 0x8767 +0xD429 0x8769 +0xD42A 0x885A +0xD42B 0x8905 +0xD42C 0x890C +0xD42D 0x8914 +0xD42E 0x890B +0xD42F 0x8917 +0xD430 0x8918 +0xD431 0x8919 +0xD432 0x8906 +0xD433 0x8916 +0xD434 0x8911 +0xD435 0x890E +0xD436 0x8909 +0xD437 0x89A2 +0xD438 0x89A4 +0xD439 0x89A3 +0xD43A 0x89ED +0xD43B 0x89F0 +0xD43C 0x89EC +0xD43D 0x8ACF +0xD43E 0x8AC6 +0xD43F 0x8AB8 +0xD440 0x8AD3 +0xD441 0x8AD1 +0xD442 0x8AD4 +0xD443 0x8AD5 +0xD444 0x8ABB +0xD445 0x8AD7 +0xD446 0x8ABE +0xD447 0x8AC0 +0xD448 0x8AC5 +0xD449 0x8AD8 +0xD44A 0x8AC3 +0xD44B 0x8ABA +0xD44C 0x8ABD +0xD44D 0x8AD9 +0xD44E 0x8C3E +0xD44F 0x8C4D +0xD450 0x8C8F +0xD451 0x8CE5 +0xD452 0x8CDF +0xD453 0x8CD9 +0xD454 0x8CE8 +0xD455 0x8CDA +0xD456 0x8CDD +0xD457 0x8CE7 +0xD458 0x8DA0 +0xD459 0x8D9C +0xD45A 0x8DA1 +0xD45B 0x8D9B +0xD45C 0x8E20 +0xD45D 0x8E23 +0xD45E 0x8E25 +0xD45F 0x8E24 +0xD460 0x8E2E +0xD461 0x8E15 +0xD462 0x8E1B +0xD463 0x8E16 +0xD464 0x8E11 +0xD465 0x8E19 +0xD466 0x8E26 +0xD467 0x8E27 +0xD468 0x8E14 +0xD469 0x8E12 +0xD46A 0x8E18 +0xD46B 0x8E13 +0xD46C 0x8E1C +0xD46D 0x8E17 +0xD46E 0x8E1A +0xD46F 0x8F2C +0xD470 0x8F24 +0xD471 0x8F18 +0xD472 0x8F1A +0xD473 0x8F20 +0xD474 0x8F23 +0xD475 0x8F16 +0xD476 0x8F17 +0xD477 0x9073 +0xD478 0x9070 +0xD479 0x906F +0xD47A 0x9067 +0xD47B 0x906B +0xD47C 0x912F +0xD47D 0x912B +0xD47E 0x9129 +0xD4A1 0x500C +0xD4A2 0x500D +0xD4A3 0x5023 +0xD4A4 0x4FEF +0xD4A5 0x5026 +0xD4A6 0x5025 +0xD4A7 0x4FF8 +0xD4A8 0x5029 +0xD4A9 0x5016 +0xD4AA 0x5006 +0xD4AB 0x503C +0xD4AC 0x501F +0xD4AD 0x501A +0xD4AE 0x5012 +0xD4AF 0x5011 +0xD4B0 0x4FFA +0xD4B1 0x5000 +0xD4B2 0x5014 +0xD4B3 0x5028 +0xD4B4 0x4FF1 +0xD4B5 0x5021 +0xD4B6 0x500B +0xD4B7 0x5019 +0xD4B8 0x5018 +0xD4B9 0x4FF3 +0xD4BA 0x4FEE +0xD4BB 0x502D +0xD4BC 0x502A +0xD4BD 0x4FFE +0xD4BE 0x502B +0xD4BF 0x5009 +0xD4C0 0x517C +0xD4C1 0x51A4 +0xD4C2 0x51A5 +0xD4C3 0x51A2 +0xD4C4 0x51CD +0xD4C5 0x51CC +0xD4C6 0x51C6 +0xD4C7 0x51CB +0xD4C8 0x5256 +0xD4C9 0x525C +0xD4CA 0x5254 +0xD4CB 0x525B +0xD4CC 0x525D +0xD4CD 0x532A +0xD4CE 0x537F +0xD4CF 0x539F +0xD4D0 0x539D +0xD4D1 0x53DF +0xD4D2 0x54E8 +0xD4D3 0x5510 +0xD4D4 0x5501 +0xD4D5 0x5537 +0xD4D6 0x54FC +0xD4D7 0x54E5 +0xD4D8 0x54F2 +0xD4D9 0x5506 +0xD4DA 0x54FA +0xD4DB 0x5514 +0xD4DC 0x54E9 +0xD4DD 0x54ED +0xD4DE 0x54E1 +0xD4DF 0x5509 +0xD4E0 0x54EE +0xD4E1 0x54EA +0xD4E2 0x54E6 +0xD4E3 0x5527 +0xD4E4 0x5507 +0xD4E5 0x54FD +0xD4E6 0x550F +0xD4E7 0x5703 +0xD4E8 0x5704 +0xD4E9 0x57C2 +0xD4EA 0x57D4 +0xD4EB 0x57CB +0xD4EC 0x57C3 +0xD4ED 0x5809 +0xD4EE 0x590F +0xD4EF 0x5957 +0xD4F0 0x5958 +0xD4F1 0x595A +0xD4F2 0x5A11 +0xD4F3 0x5A18 +0xD4F4 0x5A1C +0xD4F5 0x5A1F +0xD4F6 0x5A1B +0xD4F7 0x5A13 +0xD4F8 0x59EC +0xD4F9 0x5A20 +0xD4FA 0x5A23 +0xD4FB 0x5A29 +0xD4FC 0x5A25 +0xD4FD 0x5A0C +0xD4FE 0x5A09 +0xD521 0x912A +0xD522 0x9132 +0xD523 0x9126 +0xD524 0x912E +0xD525 0x9185 +0xD526 0x9186 +0xD527 0x918A +0xD528 0x9181 +0xD529 0x9182 +0xD52A 0x9184 +0xD52B 0x9180 +0xD52C 0x92D0 +0xD52D 0x92C3 +0xD52E 0x92C4 +0xD52F 0x92C0 +0xD530 0x92D9 +0xD531 0x92B6 +0xD532 0x92CF +0xD533 0x92F1 +0xD534 0x92DF +0xD535 0x92D8 +0xD536 0x92E9 +0xD537 0x92D7 +0xD538 0x92DD +0xD539 0x92CC +0xD53A 0x92EF +0xD53B 0x92C2 +0xD53C 0x92E8 +0xD53D 0x92CA +0xD53E 0x92C8 +0xD53F 0x92CE +0xD540 0x92E6 +0xD541 0x92CD +0xD542 0x92D5 +0xD543 0x92C9 +0xD544 0x92E0 +0xD545 0x92DE +0xD546 0x92E7 +0xD547 0x92D1 +0xD548 0x92D3 +0xD549 0x92B5 +0xD54A 0x92E1 +0xD54B 0x9325 +0xD54C 0x92C6 +0xD54D 0x92B4 +0xD54E 0x957C +0xD54F 0x95AC +0xD550 0x95AB +0xD551 0x95AE +0xD552 0x95B0 +0xD553 0x96A4 +0xD554 0x96A2 +0xD555 0x96D3 +0xD556 0x9705 +0xD557 0x9708 +0xD558 0x9702 +0xD559 0x975A +0xD55A 0x978A +0xD55B 0x978E +0xD55C 0x9788 +0xD55D 0x97D0 +0xD55E 0x97CF +0xD55F 0x981E +0xD560 0x981D +0xD561 0x9826 +0xD562 0x9829 +0xD563 0x9828 +0xD564 0x9820 +0xD565 0x981B +0xD566 0x9827 +0xD567 0x98B2 +0xD568 0x9908 +0xD569 0x98FA +0xD56A 0x9911 +0xD56B 0x9914 +0xD56C 0x9916 +0xD56D 0x9917 +0xD56E 0x9915 +0xD56F 0x99DC +0xD570 0x99CD +0xD571 0x99CF +0xD572 0x99D3 +0xD573 0x99D4 +0xD574 0x99CE +0xD575 0x99C9 +0xD576 0x99D6 +0xD577 0x99D8 +0xD578 0x99CB +0xD579 0x99D7 +0xD57A 0x99CC +0xD57B 0x9AB3 +0xD57C 0x9AEC +0xD57D 0x9AEB +0xD57E 0x9AF3 +0xD5A1 0x5B6B +0xD5A2 0x5C58 +0xD5A3 0x5BB0 +0xD5A4 0x5BB3 +0xD5A5 0x5BB6 +0xD5A6 0x5BB4 +0xD5A7 0x5BAE +0xD5A8 0x5BB5 +0xD5A9 0x5BB9 +0xD5AA 0x5BB8 +0xD5AB 0x5C04 +0xD5AC 0x5C51 +0xD5AD 0x5C55 +0xD5AE 0x5C50 +0xD5AF 0x5CED +0xD5B0 0x5CFD +0xD5B1 0x5CFB +0xD5B2 0x5CEA +0xD5B3 0x5CE8 +0xD5B4 0x5CF0 +0xD5B5 0x5CF6 +0xD5B6 0x5D01 +0xD5B7 0x5CF4 +0xD5B8 0x5DEE +0xD5B9 0x5E2D +0xD5BA 0x5E2B +0xD5BB 0x5EAB +0xD5BC 0x5EAD +0xD5BD 0x5EA7 +0xD5BE 0x5F31 +0xD5BF 0x5F92 +0xD5C0 0x5F91 +0xD5C1 0x5F90 +0xD5C2 0x6059 +0xD5C3 0x6063 +0xD5C4 0x6065 +0xD5C5 0x6050 +0xD5C6 0x6055 +0xD5C7 0x606D +0xD5C8 0x6069 +0xD5C9 0x606F +0xD5CA 0x6084 +0xD5CB 0x609F +0xD5CC 0x609A +0xD5CD 0x608D +0xD5CE 0x6094 +0xD5CF 0x608C +0xD5D0 0x6085 +0xD5D1 0x6096 +0xD5D2 0x6247 +0xD5D3 0x62F3 +0xD5D4 0x6308 +0xD5D5 0x62FF +0xD5D6 0x634E +0xD5D7 0x633E +0xD5D8 0x632F +0xD5D9 0x6355 +0xD5DA 0x6342 +0xD5DB 0x6346 +0xD5DC 0x634F +0xD5DD 0x6349 +0xD5DE 0x633A +0xD5DF 0x6350 +0xD5E0 0x633D +0xD5E1 0x632A +0xD5E2 0x632B +0xD5E3 0x6328 +0xD5E4 0x634D +0xD5E5 0x634C +0xD5E6 0x6548 +0xD5E7 0x6549 +0xD5E8 0x6599 +0xD5E9 0x65C1 +0xD5EA 0x65C5 +0xD5EB 0x6642 +0xD5EC 0x6649 +0xD5ED 0x664F +0xD5EE 0x6643 +0xD5EF 0x6652 +0xD5F0 0x664C +0xD5F1 0x6645 +0xD5F2 0x6641 +0xD5F3 0x66F8 +0xD5F4 0x6714 +0xD5F5 0x6715 +0xD5F6 0x6717 +0xD5F7 0x6821 +0xD5F8 0x6838 +0xD5F9 0x6848 +0xD5FA 0x6846 +0xD5FB 0x6853 +0xD5FC 0x6839 +0xD5FD 0x6842 +0xD5FE 0x6854 +0xD621 0x9AF2 +0xD622 0x9AF1 +0xD623 0x9B46 +0xD624 0x9B43 +0xD625 0x9B67 +0xD626 0x9B74 +0xD627 0x9B71 +0xD628 0x9B66 +0xD629 0x9B76 +0xD62A 0x9B75 +0xD62B 0x9B70 +0xD62C 0x9B68 +0xD62D 0x9B64 +0xD62E 0x9B6C +0xD62F 0x9CFC +0xD630 0x9CFA +0xD631 0x9CFD +0xD632 0x9CFF +0xD633 0x9CF7 +0xD634 0x9D07 +0xD635 0x9D00 +0xD636 0x9CF9 +0xD637 0x9CFB +0xD638 0x9D08 +0xD639 0x9D05 +0xD63A 0x9D04 +0xD63B 0x9E83 +0xD63C 0x9ED3 +0xD63D 0x9F0F +0xD63E 0x9F10 +0xD63F 0x511C +0xD640 0x5113 +0xD641 0x5117 +0xD642 0x511A +0xD643 0x5111 +0xD644 0x51DE +0xD645 0x5334 +0xD646 0x53E1 +0xD647 0x5670 +0xD648 0x5660 +0xD649 0x566E +0xD64A 0x5673 +0xD64B 0x5666 +0xD64C 0x5663 +0xD64D 0x566D +0xD64E 0x5672 +0xD64F 0x565E +0xD650 0x5677 +0xD651 0x571C +0xD652 0x571B +0xD653 0x58C8 +0xD654 0x58BD +0xD655 0x58C9 +0xD656 0x58BF +0xD657 0x58BA +0xD658 0x58C2 +0xD659 0x58BC +0xD65A 0x58C6 +0xD65B 0x5B17 +0xD65C 0x5B19 +0xD65D 0x5B1B +0xD65E 0x5B21 +0xD65F 0x5B14 +0xD660 0x5B13 +0xD661 0x5B10 +0xD662 0x5B16 +0xD663 0x5B28 +0xD664 0x5B1A +0xD665 0x5B20 +0xD666 0x5B1E +0xD667 0x5BEF +0xD668 0x5DAC +0xD669 0x5DB1 +0xD66A 0x5DA9 +0xD66B 0x5DA7 +0xD66C 0x5DB5 +0xD66D 0x5DB0 +0xD66E 0x5DAE +0xD66F 0x5DAA +0xD670 0x5DA8 +0xD671 0x5DB2 +0xD672 0x5DAD +0xD673 0x5DAF +0xD674 0x5DB4 +0xD675 0x5E67 +0xD676 0x5E68 +0xD677 0x5E66 +0xD678 0x5E6F +0xD679 0x5EE9 +0xD67A 0x5EE7 +0xD67B 0x5EE6 +0xD67C 0x5EE8 +0xD67D 0x5EE5 +0xD67E 0x5F4B +0xD6A1 0x6829 +0xD6A2 0x68B3 +0xD6A3 0x6817 +0xD6A4 0x684C +0xD6A5 0x6851 +0xD6A6 0x683D +0xD6A7 0x67F4 +0xD6A8 0x6850 +0xD6A9 0x6840 +0xD6AA 0x683C +0xD6AB 0x6843 +0xD6AC 0x682A +0xD6AD 0x6845 +0xD6AE 0x6813 +0xD6AF 0x6818 +0xD6B0 0x6841 +0xD6B1 0x6B8A +0xD6B2 0x6B89 +0xD6B3 0x6BB7 +0xD6B4 0x6C23 +0xD6B5 0x6C27 +0xD6B6 0x6C28 +0xD6B7 0x6C26 +0xD6B8 0x6C24 +0xD6B9 0x6CF0 +0xD6BA 0x6D6A +0xD6BB 0x6D95 +0xD6BC 0x6D88 +0xD6BD 0x6D87 +0xD6BE 0x6D66 +0xD6BF 0x6D78 +0xD6C0 0x6D77 +0xD6C1 0x6D59 +0xD6C2 0x6D93 +0xD6C3 0x6D6C +0xD6C4 0x6D89 +0xD6C5 0x6D6E +0xD6C6 0x6D5A +0xD6C7 0x6D74 +0xD6C8 0x6D69 +0xD6C9 0x6D8C +0xD6CA 0x6D8A +0xD6CB 0x6D79 +0xD6CC 0x6D85 +0xD6CD 0x6D65 +0xD6CE 0x6D94 +0xD6CF 0x70CA +0xD6D0 0x70D8 +0xD6D1 0x70E4 +0xD6D2 0x70D9 +0xD6D3 0x70C8 +0xD6D4 0x70CF +0xD6D5 0x7239 +0xD6D6 0x7279 +0xD6D7 0x72FC +0xD6D8 0x72F9 +0xD6D9 0x72FD +0xD6DA 0x72F8 +0xD6DB 0x72F7 +0xD6DC 0x7386 +0xD6DD 0x73ED +0xD6DE 0x7409 +0xD6DF 0x73EE +0xD6E0 0x73E0 +0xD6E1 0x73EA +0xD6E2 0x73DE +0xD6E3 0x7554 +0xD6E4 0x755D +0xD6E5 0x755C +0xD6E6 0x755A +0xD6E7 0x7559 +0xD6E8 0x75BE +0xD6E9 0x75C5 +0xD6EA 0x75C7 +0xD6EB 0x75B2 +0xD6EC 0x75B3 +0xD6ED 0x75BD +0xD6EE 0x75BC +0xD6EF 0x75B9 +0xD6F0 0x75C2 +0xD6F1 0x75B8 +0xD6F2 0x768B +0xD6F3 0x76B0 +0xD6F4 0x76CA +0xD6F5 0x76CD +0xD6F6 0x76CE +0xD6F7 0x7729 +0xD6F8 0x771F +0xD6F9 0x7720 +0xD6FA 0x7728 +0xD6FB 0x77E9 +0xD6FC 0x7830 +0xD6FD 0x7827 +0xD6FE 0x7838 +0xD721 0x5FBC +0xD722 0x5FBB +0xD723 0x619D +0xD724 0x61A8 +0xD725 0x6196 +0xD726 0x61C5 +0xD727 0x61B4 +0xD728 0x61C6 +0xD729 0x61C1 +0xD72A 0x61CC +0xD72B 0x61BA +0xD72C 0x61BF +0xD72D 0x61B8 +0xD72E 0x618C +0xD72F 0x64D7 +0xD730 0x64D6 +0xD731 0x64D0 +0xD732 0x64CF +0xD733 0x64C9 +0xD734 0x64BD +0xD735 0x6489 +0xD736 0x64C3 +0xD737 0x64DB +0xD738 0x64F3 +0xD739 0x64D9 +0xD73A 0x6533 +0xD73B 0x657F +0xD73C 0x657C +0xD73D 0x65A2 +0xD73E 0x66C8 +0xD73F 0x66BE +0xD740 0x66C0 +0xD741 0x66CA +0xD742 0x66CB +0xD743 0x66CF +0xD744 0x66BD +0xD745 0x66BB +0xD746 0x66BA +0xD747 0x66CC +0xD748 0x6723 +0xD749 0x6A34 +0xD74A 0x6A66 +0xD74B 0x6A49 +0xD74C 0x6A67 +0xD74D 0x6A32 +0xD74E 0x6A68 +0xD74F 0x6A3E +0xD750 0x6A5D +0xD751 0x6A6D +0xD752 0x6A76 +0xD753 0x6A5B +0xD754 0x6A51 +0xD755 0x6A28 +0xD756 0x6A5A +0xD757 0x6A3B +0xD758 0x6A3F +0xD759 0x6A41 +0xD75A 0x6A6A +0xD75B 0x6A64 +0xD75C 0x6A50 +0xD75D 0x6A4F +0xD75E 0x6A54 +0xD75F 0x6A6F +0xD760 0x6A69 +0xD761 0x6A60 +0xD762 0x6A3C +0xD763 0x6A5E +0xD764 0x6A56 +0xD765 0x6A55 +0xD766 0x6A4D +0xD767 0x6A4E +0xD768 0x6A46 +0xD769 0x6B55 +0xD76A 0x6B54 +0xD76B 0x6B56 +0xD76C 0x6BA7 +0xD76D 0x6BAA +0xD76E 0x6BAB +0xD76F 0x6BC8 +0xD770 0x6BC7 +0xD771 0x6C04 +0xD772 0x6C03 +0xD773 0x6C06 +0xD774 0x6FAD +0xD775 0x6FCB +0xD776 0x6FA3 +0xD777 0x6FC7 +0xD778 0x6FBC +0xD779 0x6FCE +0xD77A 0x6FC8 +0xD77B 0x6F5E +0xD77C 0x6FC4 +0xD77D 0x6FBD +0xD77E 0x6F9E +0xD7A1 0x781D +0xD7A2 0x7834 +0xD7A3 0x7837 +0xD7A4 0x7825 +0xD7A5 0x782D +0xD7A6 0x7820 +0xD7A7 0x781F +0xD7A8 0x7832 +0xD7A9 0x7955 +0xD7AA 0x7950 +0xD7AB 0x7960 +0xD7AC 0x795F +0xD7AD 0x7956 +0xD7AE 0x795E +0xD7AF 0x795D +0xD7B0 0x7957 +0xD7B1 0x795A +0xD7B2 0x79E4 +0xD7B3 0x79E3 +0xD7B4 0x79E7 +0xD7B5 0x79DF +0xD7B6 0x79E6 +0xD7B7 0x79E9 +0xD7B8 0x79D8 +0xD7B9 0x7A84 +0xD7BA 0x7A88 +0xD7BB 0x7AD9 +0xD7BC 0x7B06 +0xD7BD 0x7B11 +0xD7BE 0x7C89 +0xD7BF 0x7D21 +0xD7C0 0x7D17 +0xD7C1 0x7D0B +0xD7C2 0x7D0A +0xD7C3 0x7D20 +0xD7C4 0x7D22 +0xD7C5 0x7D14 +0xD7C6 0x7D10 +0xD7C7 0x7D15 +0xD7C8 0x7D1A +0xD7C9 0x7D1C +0xD7CA 0x7D0D +0xD7CB 0x7D19 +0xD7CC 0x7D1B +0xD7CD 0x7F3A +0xD7CE 0x7F5F +0xD7CF 0x7F94 +0xD7D0 0x7FC5 +0xD7D1 0x7FC1 +0xD7D2 0x8006 +0xD7D3 0x8004 +0xD7D4 0x8018 +0xD7D5 0x8015 +0xD7D6 0x8019 +0xD7D7 0x8017 +0xD7D8 0x803D +0xD7D9 0x803F +0xD7DA 0x80F1 +0xD7DB 0x8102 +0xD7DC 0x80F0 +0xD7DD 0x8105 +0xD7DE 0x80ED +0xD7DF 0x80F4 +0xD7E0 0x8106 +0xD7E1 0x80F8 +0xD7E2 0x80F3 +0xD7E3 0x8108 +0xD7E4 0x80FD +0xD7E5 0x810A +0xD7E6 0x80FC +0xD7E7 0x80EF +0xD7E8 0x81ED +0xD7E9 0x81EC +0xD7EA 0x8200 +0xD7EB 0x8210 +0xD7EC 0x822A +0xD7ED 0x822B +0xD7EE 0x8228 +0xD7EF 0x822C +0xD7F0 0x82BB +0xD7F1 0x832B +0xD7F2 0x8352 +0xD7F3 0x8354 +0xD7F4 0x834A +0xD7F5 0x8338 +0xD7F6 0x8350 +0xD7F7 0x8349 +0xD7F8 0x8335 +0xD7F9 0x8334 +0xD7FA 0x834F +0xD7FB 0x8332 +0xD7FC 0x8339 +0xD7FD 0x8336 +0xD7FE 0x8317 +0xD821 0x6FCA +0xD822 0x6FA8 +0xD823 0x7004 +0xD824 0x6FA5 +0xD825 0x6FAE +0xD826 0x6FBA +0xD827 0x6FAC +0xD828 0x6FAA +0xD829 0x6FCF +0xD82A 0x6FBF +0xD82B 0x6FB8 +0xD82C 0x6FA2 +0xD82D 0x6FC9 +0xD82E 0x6FAB +0xD82F 0x6FCD +0xD830 0x6FAF +0xD831 0x6FB2 +0xD832 0x6FB0 +0xD833 0x71C5 +0xD834 0x71C2 +0xD835 0x71BF +0xD836 0x71B8 +0xD837 0x71D6 +0xD838 0x71C0 +0xD839 0x71C1 +0xD83A 0x71CB +0xD83B 0x71D4 +0xD83C 0x71CA +0xD83D 0x71C7 +0xD83E 0x71CF +0xD83F 0x71BD +0xD840 0x71D8 +0xD841 0x71BC +0xD842 0x71C6 +0xD843 0x71DA +0xD844 0x71DB +0xD845 0x729D +0xD846 0x729E +0xD847 0x7369 +0xD848 0x7366 +0xD849 0x7367 +0xD84A 0x736C +0xD84B 0x7365 +0xD84C 0x736B +0xD84D 0x736A +0xD84E 0x747F +0xD84F 0x749A +0xD850 0x74A0 +0xD851 0x7494 +0xD852 0x7492 +0xD853 0x7495 +0xD854 0x74A1 +0xD855 0x750B +0xD856 0x7580 +0xD857 0x762F +0xD858 0x762D +0xD859 0x7631 +0xD85A 0x763D +0xD85B 0x7633 +0xD85C 0x763C +0xD85D 0x7635 +0xD85E 0x7632 +0xD85F 0x7630 +0xD860 0x76BB +0xD861 0x76E6 +0xD862 0x779A +0xD863 0x779D +0xD864 0x77A1 +0xD865 0x779C +0xD866 0x779B +0xD867 0x77A2 +0xD868 0x77A3 +0xD869 0x7795 +0xD86A 0x7799 +0xD86B 0x7797 +0xD86C 0x78DD +0xD86D 0x78E9 +0xD86E 0x78E5 +0xD86F 0x78EA +0xD870 0x78DE +0xD871 0x78E3 +0xD872 0x78DB +0xD873 0x78E1 +0xD874 0x78E2 +0xD875 0x78ED +0xD876 0x78DF +0xD877 0x78E0 +0xD878 0x79A4 +0xD879 0x7A44 +0xD87A 0x7A48 +0xD87B 0x7A47 +0xD87C 0x7AB6 +0xD87D 0x7AB8 +0xD87E 0x7AB5 +0xD8A1 0x8340 +0xD8A2 0x8331 +0xD8A3 0x8328 +0xD8A4 0x8343 +0xD8A5 0x8654 +0xD8A6 0x868A +0xD8A7 0x86AA +0xD8A8 0x8693 +0xD8A9 0x86A4 +0xD8AA 0x86A9 +0xD8AB 0x868C +0xD8AC 0x86A3 +0xD8AD 0x869C +0xD8AE 0x8870 +0xD8AF 0x8877 +0xD8B0 0x8881 +0xD8B1 0x8882 +0xD8B2 0x887D +0xD8B3 0x8879 +0xD8B4 0x8A18 +0xD8B5 0x8A10 +0xD8B6 0x8A0E +0xD8B7 0x8A0C +0xD8B8 0x8A15 +0xD8B9 0x8A0A +0xD8BA 0x8A17 +0xD8BB 0x8A13 +0xD8BC 0x8A16 +0xD8BD 0x8A0F +0xD8BE 0x8A11 +0xD8BF 0x8C48 +0xD8C0 0x8C7A +0xD8C1 0x8C79 +0xD8C2 0x8CA1 +0xD8C3 0x8CA2 +0xD8C4 0x8D77 +0xD8C5 0x8EAC +0xD8C6 0x8ED2 +0xD8C7 0x8ED4 +0xD8C8 0x8ECF +0xD8C9 0x8FB1 +0xD8CA 0x9001 +0xD8CB 0x9006 +0xD8CC 0x8FF7 +0xD8CD 0x9000 +0xD8CE 0x8FFA +0xD8CF 0x8FF4 +0xD8D0 0x9003 +0xD8D1 0x8FFD +0xD8D2 0x9005 +0xD8D3 0x8FF8 +0xD8D4 0x9095 +0xD8D5 0x90E1 +0xD8D6 0x90DD +0xD8D7 0x90E2 +0xD8D8 0x9152 +0xD8D9 0x914D +0xD8DA 0x914C +0xD8DB 0x91D8 +0xD8DC 0x91DD +0xD8DD 0x91D7 +0xD8DE 0x91DC +0xD8DF 0x91D9 +0xD8E0 0x9583 +0xD8E1 0x9662 +0xD8E2 0x9663 +0xD8E3 0x9661 +0xD8E4 0x965B +0xD8E5 0x965D +0xD8E6 0x9664 +0xD8E7 0x9658 +0xD8E8 0x965E +0xD8E9 0x96BB +0xD8EA 0x98E2 +0xD8EB 0x99AC +0xD8EC 0x9AA8 +0xD8ED 0x9AD8 +0xD8EE 0x9B25 +0xD8EF 0x9B32 +0xD8F0 0x9B3C +0xD8F1 0x4E7E +0xD8F2 0x507A +0xD8F3 0x507D +0xD8F4 0x505C +0xD8F5 0x5047 +0xD8F6 0x5043 +0xD8F7 0x504C +0xD8F8 0x505A +0xD8F9 0x5049 +0xD8FA 0x5065 +0xD8FB 0x5076 +0xD8FC 0x504E +0xD8FD 0x5055 +0xD8FE 0x5075 +0xD921 0x7AB1 +0xD922 0x7AB7 +0xD923 0x7BDE +0xD924 0x7BE3 +0xD925 0x7BE7 +0xD926 0x7BDD +0xD927 0x7BD5 +0xD928 0x7BE5 +0xD929 0x7BDA +0xD92A 0x7BE8 +0xD92B 0x7BF9 +0xD92C 0x7BD4 +0xD92D 0x7BEA +0xD92E 0x7BE2 +0xD92F 0x7BDC +0xD930 0x7BEB +0xD931 0x7BD8 +0xD932 0x7BDF +0xD933 0x7CD2 +0xD934 0x7CD4 +0xD935 0x7CD7 +0xD936 0x7CD0 +0xD937 0x7CD1 +0xD938 0x7E12 +0xD939 0x7E21 +0xD93A 0x7E17 +0xD93B 0x7E0C +0xD93C 0x7E1F +0xD93D 0x7E20 +0xD93E 0x7E13 +0xD93F 0x7E0E +0xD940 0x7E1C +0xD941 0x7E15 +0xD942 0x7E1A +0xD943 0x7E22 +0xD944 0x7E0B +0xD945 0x7E0F +0xD946 0x7E16 +0xD947 0x7E0D +0xD948 0x7E14 +0xD949 0x7E25 +0xD94A 0x7E24 +0xD94B 0x7F43 +0xD94C 0x7F7B +0xD94D 0x7F7C +0xD94E 0x7F7A +0xD94F 0x7FB1 +0xD950 0x7FEF +0xD951 0x802A +0xD952 0x8029 +0xD953 0x806C +0xD954 0x81B1 +0xD955 0x81A6 +0xD956 0x81AE +0xD957 0x81B9 +0xD958 0x81B5 +0xD959 0x81AB +0xD95A 0x81B0 +0xD95B 0x81AC +0xD95C 0x81B4 +0xD95D 0x81B2 +0xD95E 0x81B7 +0xD95F 0x81A7 +0xD960 0x81F2 +0xD961 0x8255 +0xD962 0x8256 +0xD963 0x8257 +0xD964 0x8556 +0xD965 0x8545 +0xD966 0x856B +0xD967 0x854D +0xD968 0x8553 +0xD969 0x8561 +0xD96A 0x8558 +0xD96B 0x8540 +0xD96C 0x8546 +0xD96D 0x8564 +0xD96E 0x8541 +0xD96F 0x8562 +0xD970 0x8544 +0xD971 0x8551 +0xD972 0x8547 +0xD973 0x8563 +0xD974 0x853E +0xD975 0x855B +0xD976 0x8571 +0xD977 0x854E +0xD978 0x856E +0xD979 0x8575 +0xD97A 0x8555 +0xD97B 0x8567 +0xD97C 0x8560 +0xD97D 0x858C +0xD97E 0x8566 +0xD9A1 0x5074 +0xD9A2 0x5077 +0xD9A3 0x504F +0xD9A4 0x500F +0xD9A5 0x506F +0xD9A6 0x506D +0xD9A7 0x515C +0xD9A8 0x5195 +0xD9A9 0x51F0 +0xD9AA 0x526A +0xD9AB 0x526F +0xD9AC 0x52D2 +0xD9AD 0x52D9 +0xD9AE 0x52D8 +0xD9AF 0x52D5 +0xD9B0 0x5310 +0xD9B1 0x530F +0xD9B2 0x5319 +0xD9B3 0x533F +0xD9B4 0x5340 +0xD9B5 0x533E +0xD9B6 0x53C3 +0xD9B7 0x66FC +0xD9B8 0x5546 +0xD9B9 0x556A +0xD9BA 0x5566 +0xD9BB 0x5544 +0xD9BC 0x555E +0xD9BD 0x5561 +0xD9BE 0x5543 +0xD9BF 0x554A +0xD9C0 0x5531 +0xD9C1 0x5556 +0xD9C2 0x554F +0xD9C3 0x5555 +0xD9C4 0x552F +0xD9C5 0x5564 +0xD9C6 0x5538 +0xD9C7 0x552E +0xD9C8 0x555C +0xD9C9 0x552C +0xD9CA 0x5563 +0xD9CB 0x5533 +0xD9CC 0x5541 +0xD9CD 0x5557 +0xD9CE 0x5708 +0xD9CF 0x570B +0xD9D0 0x5709 +0xD9D1 0x57DF +0xD9D2 0x5805 +0xD9D3 0x580A +0xD9D4 0x5806 +0xD9D5 0x57E0 +0xD9D6 0x57E4 +0xD9D7 0x57FA +0xD9D8 0x5802 +0xD9D9 0x5835 +0xD9DA 0x57F7 +0xD9DB 0x57F9 +0xD9DC 0x5920 +0xD9DD 0x5962 +0xD9DE 0x5A36 +0xD9DF 0x5A41 +0xD9E0 0x5A49 +0xD9E1 0x5A66 +0xD9E2 0x5A6A +0xD9E3 0x5A40 +0xD9E4 0x5A3C +0xD9E5 0x5A62 +0xD9E6 0x5A5A +0xD9E7 0x5A46 +0xD9E8 0x5A4A +0xD9E9 0x5B70 +0xD9EA 0x5BC7 +0xD9EB 0x5BC5 +0xD9EC 0x5BC4 +0xD9ED 0x5BC2 +0xD9EE 0x5BBF +0xD9EF 0x5BC6 +0xD9F0 0x5C09 +0xD9F1 0x5C08 +0xD9F2 0x5C07 +0xD9F3 0x5C60 +0xD9F4 0x5C5C +0xD9F5 0x5C5D +0xD9F6 0x5D07 +0xD9F7 0x5D06 +0xD9F8 0x5D0E +0xD9F9 0x5D1B +0xD9FA 0x5D16 +0xD9FB 0x5D22 +0xD9FC 0x5D11 +0xD9FD 0x5D29 +0xD9FE 0x5D14 +0xDA21 0x855D +0xDA22 0x8554 +0xDA23 0x8565 +0xDA24 0x856C +0xDA25 0x8663 +0xDA26 0x8665 +0xDA27 0x8664 +0xDA28 0x87A4 +0xDA29 0x879B +0xDA2A 0x878F +0xDA2B 0x8797 +0xDA2C 0x8793 +0xDA2D 0x8792 +0xDA2E 0x8788 +0xDA2F 0x8781 +0xDA30 0x8796 +0xDA31 0x8798 +0xDA32 0x8779 +0xDA33 0x8787 +0xDA34 0x87A3 +0xDA35 0x8785 +0xDA36 0x8790 +0xDA37 0x8791 +0xDA38 0x879D +0xDA39 0x8784 +0xDA3A 0x8794 +0xDA3B 0x879C +0xDA3C 0x879A +0xDA3D 0x8789 +0xDA3E 0x891E +0xDA3F 0x8926 +0xDA40 0x8930 +0xDA41 0x892D +0xDA42 0x892E +0xDA43 0x8927 +0xDA44 0x8931 +0xDA45 0x8922 +0xDA46 0x8929 +0xDA47 0x8923 +0xDA48 0x892F +0xDA49 0x892C +0xDA4A 0x891F +0xDA4B 0x89F1 +0xDA4C 0x8AE0 +0xDA4D 0x8AE2 +0xDA4E 0x8AF2 +0xDA4F 0x8AF4 +0xDA50 0x8AF5 +0xDA51 0x8ADD +0xDA52 0x8B14 +0xDA53 0x8AE4 +0xDA54 0x8ADF +0xDA55 0x8AF0 +0xDA56 0x8AC8 +0xDA57 0x8ADE +0xDA58 0x8AE1 +0xDA59 0x8AE8 +0xDA5A 0x8AFF +0xDA5B 0x8AEF +0xDA5C 0x8AFB +0xDA5D 0x8C91 +0xDA5E 0x8C92 +0xDA5F 0x8C90 +0xDA60 0x8CF5 +0xDA61 0x8CEE +0xDA62 0x8CF1 +0xDA63 0x8CF0 +0xDA64 0x8CF3 +0xDA65 0x8D6C +0xDA66 0x8D6E +0xDA67 0x8DA5 +0xDA68 0x8DA7 +0xDA69 0x8E33 +0xDA6A 0x8E3E +0xDA6B 0x8E38 +0xDA6C 0x8E40 +0xDA6D 0x8E45 +0xDA6E 0x8E36 +0xDA6F 0x8E3C +0xDA70 0x8E3D +0xDA71 0x8E41 +0xDA72 0x8E30 +0xDA73 0x8E3F +0xDA74 0x8EBD +0xDA75 0x8F36 +0xDA76 0x8F2E +0xDA77 0x8F35 +0xDA78 0x8F32 +0xDA79 0x8F39 +0xDA7A 0x8F37 +0xDA7B 0x8F34 +0xDA7C 0x9076 +0xDA7D 0x9079 +0xDA7E 0x907B +0xDAA1 0x5D19 +0xDAA2 0x5D24 +0xDAA3 0x5D27 +0xDAA4 0x5D17 +0xDAA5 0x5DE2 +0xDAA6 0x5E38 +0xDAA7 0x5E36 +0xDAA8 0x5E33 +0xDAA9 0x5E37 +0xDAAA 0x5EB7 +0xDAAB 0x5EB8 +0xDAAC 0x5EB6 +0xDAAD 0x5EB5 +0xDAAE 0x5EBE +0xDAAF 0x5F35 +0xDAB0 0x5F37 +0xDAB1 0x5F57 +0xDAB2 0x5F6C +0xDAB3 0x5F69 +0xDAB4 0x5F6B +0xDAB5 0x5F97 +0xDAB6 0x5F99 +0xDAB7 0x5F9E +0xDAB8 0x5F98 +0xDAB9 0x5FA1 +0xDABA 0x5FA0 +0xDABB 0x5F9C +0xDABC 0x607F +0xDABD 0x60A3 +0xDABE 0x6089 +0xDABF 0x60A0 +0xDAC0 0x60A8 +0xDAC1 0x60CB +0xDAC2 0x60B4 +0xDAC3 0x60E6 +0xDAC4 0x60BD +0xDAC5 0x60C5 +0xDAC6 0x60BB +0xDAC7 0x60B5 +0xDAC8 0x60DC +0xDAC9 0x60BC +0xDACA 0x60D8 +0xDACB 0x60D5 +0xDACC 0x60C6 +0xDACD 0x60DF +0xDACE 0x60B8 +0xDACF 0x60DA +0xDAD0 0x60C7 +0xDAD1 0x621A +0xDAD2 0x621B +0xDAD3 0x6248 +0xDAD4 0x63A0 +0xDAD5 0x63A7 +0xDAD6 0x6372 +0xDAD7 0x6396 +0xDAD8 0x63A2 +0xDAD9 0x63A5 +0xDADA 0x6377 +0xDADB 0x6367 +0xDADC 0x6398 +0xDADD 0x63AA +0xDADE 0x6371 +0xDADF 0x63A9 +0xDAE0 0x6389 +0xDAE1 0x6383 +0xDAE2 0x639B +0xDAE3 0x636B +0xDAE4 0x63A8 +0xDAE5 0x6384 +0xDAE6 0x6388 +0xDAE7 0x6399 +0xDAE8 0x63A1 +0xDAE9 0x63AC +0xDAEA 0x6392 +0xDAEB 0x638F +0xDAEC 0x6380 +0xDAED 0x637B +0xDAEE 0x6369 +0xDAEF 0x6368 +0xDAF0 0x637A +0xDAF1 0x655D +0xDAF2 0x6556 +0xDAF3 0x6551 +0xDAF4 0x6559 +0xDAF5 0x6557 +0xDAF6 0x555F +0xDAF7 0x654F +0xDAF8 0x6558 +0xDAF9 0x6555 +0xDAFA 0x6554 +0xDAFB 0x659C +0xDAFC 0x659B +0xDAFD 0x65AC +0xDAFE 0x65CF +0xDB21 0x9086 +0xDB22 0x90FA +0xDB23 0x9133 +0xDB24 0x9135 +0xDB25 0x9136 +0xDB26 0x9193 +0xDB27 0x9190 +0xDB28 0x9191 +0xDB29 0x918D +0xDB2A 0x918F +0xDB2B 0x9327 +0xDB2C 0x931E +0xDB2D 0x9308 +0xDB2E 0x931F +0xDB2F 0x9306 +0xDB30 0x930F +0xDB31 0x937A +0xDB32 0x9338 +0xDB33 0x933C +0xDB34 0x931B +0xDB35 0x9323 +0xDB36 0x9312 +0xDB37 0x9301 +0xDB38 0x9346 +0xDB39 0x932D +0xDB3A 0x930E +0xDB3B 0x930D +0xDB3C 0x92CB +0xDB3D 0x931D +0xDB3E 0x92FA +0xDB3F 0x9313 +0xDB40 0x92F9 +0xDB41 0x92F7 +0xDB42 0x9334 +0xDB43 0x9302 +0xDB44 0x9324 +0xDB45 0x92FF +0xDB46 0x9329 +0xDB47 0x9339 +0xDB48 0x9335 +0xDB49 0x932A +0xDB4A 0x9314 +0xDB4B 0x930C +0xDB4C 0x930B +0xDB4D 0x92FE +0xDB4E 0x9309 +0xDB4F 0x9300 +0xDB50 0x92FB +0xDB51 0x9316 +0xDB52 0x95BC +0xDB53 0x95CD +0xDB54 0x95BE +0xDB55 0x95B9 +0xDB56 0x95BA +0xDB57 0x95B6 +0xDB58 0x95BF +0xDB59 0x95B5 +0xDB5A 0x95BD +0xDB5B 0x96A9 +0xDB5C 0x96D4 +0xDB5D 0x970B +0xDB5E 0x9712 +0xDB5F 0x9710 +0xDB60 0x9799 +0xDB61 0x9797 +0xDB62 0x9794 +0xDB63 0x97F0 +0xDB64 0x97F8 +0xDB65 0x9835 +0xDB66 0x982F +0xDB67 0x9832 +0xDB68 0x9924 +0xDB69 0x991F +0xDB6A 0x9927 +0xDB6B 0x9929 +0xDB6C 0x999E +0xDB6D 0x99EE +0xDB6E 0x99EC +0xDB6F 0x99E5 +0xDB70 0x99E4 +0xDB71 0x99F0 +0xDB72 0x99E3 +0xDB73 0x99EA +0xDB74 0x99E9 +0xDB75 0x99E7 +0xDB76 0x9AB9 +0xDB77 0x9ABF +0xDB78 0x9AB4 +0xDB79 0x9ABB +0xDB7A 0x9AF6 +0xDB7B 0x9AFA +0xDB7C 0x9AF9 +0xDB7D 0x9AF7 +0xDB7E 0x9B33 +0xDBA1 0x65CB +0xDBA2 0x65CC +0xDBA3 0x65CE +0xDBA4 0x665D +0xDBA5 0x665A +0xDBA6 0x6664 +0xDBA7 0x6668 +0xDBA8 0x6666 +0xDBA9 0x665E +0xDBAA 0x66F9 +0xDBAB 0x52D7 +0xDBAC 0x671B +0xDBAD 0x6881 +0xDBAE 0x68AF +0xDBAF 0x68A2 +0xDBB0 0x6893 +0xDBB1 0x68B5 +0xDBB2 0x687F +0xDBB3 0x6876 +0xDBB4 0x68B1 +0xDBB5 0x68A7 +0xDBB6 0x6897 +0xDBB7 0x68B0 +0xDBB8 0x6883 +0xDBB9 0x68C4 +0xDBBA 0x68AD +0xDBBB 0x6886 +0xDBBC 0x6885 +0xDBBD 0x6894 +0xDBBE 0x689D +0xDBBF 0x68A8 +0xDBC0 0x689F +0xDBC1 0x68A1 +0xDBC2 0x6882 +0xDBC3 0x6B32 +0xDBC4 0x6BBA +0xDBC5 0x6BEB +0xDBC6 0x6BEC +0xDBC7 0x6C2B +0xDBC8 0x6D8E +0xDBC9 0x6DBC +0xDBCA 0x6DF3 +0xDBCB 0x6DD9 +0xDBCC 0x6DB2 +0xDBCD 0x6DE1 +0xDBCE 0x6DCC +0xDBCF 0x6DE4 +0xDBD0 0x6DFB +0xDBD1 0x6DFA +0xDBD2 0x6E05 +0xDBD3 0x6DC7 +0xDBD4 0x6DCB +0xDBD5 0x6DAF +0xDBD6 0x6DD1 +0xDBD7 0x6DAE +0xDBD8 0x6DDE +0xDBD9 0x6DF9 +0xDBDA 0x6DB8 +0xDBDB 0x6DF7 +0xDBDC 0x6DF5 +0xDBDD 0x6DC5 +0xDBDE 0x6DD2 +0xDBDF 0x6E1A +0xDBE0 0x6DB5 +0xDBE1 0x6DDA +0xDBE2 0x6DEB +0xDBE3 0x6DD8 +0xDBE4 0x6DEA +0xDBE5 0x6DF1 +0xDBE6 0x6DEE +0xDBE7 0x6DE8 +0xDBE8 0x6DC6 +0xDBE9 0x6DC4 +0xDBEA 0x6DAA +0xDBEB 0x6DEC +0xDBEC 0x6DBF +0xDBED 0x6DE6 +0xDBEE 0x70F9 +0xDBEF 0x7109 +0xDBF0 0x710A +0xDBF1 0x70FD +0xDBF2 0x70EF +0xDBF3 0x723D +0xDBF4 0x727D +0xDBF5 0x7281 +0xDBF6 0x731C +0xDBF7 0x731B +0xDBF8 0x7316 +0xDBF9 0x7313 +0xDBFA 0x7319 +0xDBFB 0x7387 +0xDBFC 0x7405 +0xDBFD 0x740A +0xDBFE 0x7403 +0xDC21 0x9B80 +0xDC22 0x9B85 +0xDC23 0x9B87 +0xDC24 0x9B7C +0xDC25 0x9B7E +0xDC26 0x9B7B +0xDC27 0x9B82 +0xDC28 0x9B93 +0xDC29 0x9B92 +0xDC2A 0x9B90 +0xDC2B 0x9B7A +0xDC2C 0x9B95 +0xDC2D 0x9B7D +0xDC2E 0x9B88 +0xDC2F 0x9D25 +0xDC30 0x9D17 +0xDC31 0x9D20 +0xDC32 0x9D1E +0xDC33 0x9D14 +0xDC34 0x9D29 +0xDC35 0x9D1D +0xDC36 0x9D18 +0xDC37 0x9D22 +0xDC38 0x9D10 +0xDC39 0x9D19 +0xDC3A 0x9D1F +0xDC3B 0x9E88 +0xDC3C 0x9E86 +0xDC3D 0x9E87 +0xDC3E 0x9EAE +0xDC3F 0x9EAD +0xDC40 0x9ED5 +0xDC41 0x9ED6 +0xDC42 0x9EFA +0xDC43 0x9F12 +0xDC44 0x9F3D +0xDC45 0x5126 +0xDC46 0x5125 +0xDC47 0x5122 +0xDC48 0x5124 +0xDC49 0x5120 +0xDC4A 0x5129 +0xDC4B 0x52F4 +0xDC4C 0x5693 +0xDC4D 0x568C +0xDC4E 0x568D +0xDC4F 0x5686 +0xDC50 0x5684 +0xDC51 0x5683 +0xDC52 0x567E +0xDC53 0x5682 +0xDC54 0x567F +0xDC55 0x5681 +0xDC56 0x58D6 +0xDC57 0x58D4 +0xDC58 0x58CF +0xDC59 0x58D2 +0xDC5A 0x5B2D +0xDC5B 0x5B25 +0xDC5C 0x5B32 +0xDC5D 0x5B23 +0xDC5E 0x5B2C +0xDC5F 0x5B27 +0xDC60 0x5B26 +0xDC61 0x5B2F +0xDC62 0x5B2E +0xDC63 0x5B7B +0xDC64 0x5BF1 +0xDC65 0x5BF2 +0xDC66 0x5DB7 +0xDC67 0x5E6C +0xDC68 0x5E6A +0xDC69 0x5FBE +0xDC6A 0x61C3 +0xDC6B 0x61B5 +0xDC6C 0x61BC +0xDC6D 0x61E7 +0xDC6E 0x61E0 +0xDC6F 0x61E5 +0xDC70 0x61E4 +0xDC71 0x61E8 +0xDC72 0x61DE +0xDC73 0x64EF +0xDC74 0x64E9 +0xDC75 0x64E3 +0xDC76 0x64EB +0xDC77 0x64E4 +0xDC78 0x64E8 +0xDC79 0x6581 +0xDC7A 0x6580 +0xDC7B 0x65B6 +0xDC7C 0x65DA +0xDC7D 0x66D2 +0xDC7E 0x6A8D +0xDCA1 0x7406 +0xDCA2 0x73FE +0xDCA3 0x740D +0xDCA4 0x74E0 +0xDCA5 0x74F6 +0xDCA6 0x74F7 +0xDCA7 0x751C +0xDCA8 0x7522 +0xDCA9 0x7565 +0xDCAA 0x7566 +0xDCAB 0x7562 +0xDCAC 0x7570 +0xDCAD 0x758F +0xDCAE 0x75D4 +0xDCAF 0x75D5 +0xDCB0 0x75B5 +0xDCB1 0x75CA +0xDCB2 0x75CD +0xDCB3 0x768E +0xDCB4 0x76D4 +0xDCB5 0x76D2 +0xDCB6 0x76DB +0xDCB7 0x7737 +0xDCB8 0x773E +0xDCB9 0x773C +0xDCBA 0x7736 +0xDCBB 0x7738 +0xDCBC 0x773A +0xDCBD 0x786B +0xDCBE 0x7843 +0xDCBF 0x784E +0xDCC0 0x7965 +0xDCC1 0x7968 +0xDCC2 0x796D +0xDCC3 0x79FB +0xDCC4 0x7A92 +0xDCC5 0x7A95 +0xDCC6 0x7B20 +0xDCC7 0x7B28 +0xDCC8 0x7B1B +0xDCC9 0x7B2C +0xDCCA 0x7B26 +0xDCCB 0x7B19 +0xDCCC 0x7B1E +0xDCCD 0x7B2E +0xDCCE 0x7C92 +0xDCCF 0x7C97 +0xDCD0 0x7C95 +0xDCD1 0x7D46 +0xDCD2 0x7D43 +0xDCD3 0x7D71 +0xDCD4 0x7D2E +0xDCD5 0x7D39 +0xDCD6 0x7D3C +0xDCD7 0x7D40 +0xDCD8 0x7D30 +0xDCD9 0x7D33 +0xDCDA 0x7D44 +0xDCDB 0x7D2F +0xDCDC 0x7D42 +0xDCDD 0x7D32 +0xDCDE 0x7D31 +0xDCDF 0x7F3D +0xDCE0 0x7F9E +0xDCE1 0x7F9A +0xDCE2 0x7FCC +0xDCE3 0x7FCE +0xDCE4 0x7FD2 +0xDCE5 0x801C +0xDCE6 0x804A +0xDCE7 0x8046 +0xDCE8 0x812F +0xDCE9 0x8116 +0xDCEA 0x8123 +0xDCEB 0x812B +0xDCEC 0x8129 +0xDCED 0x8130 +0xDCEE 0x8124 +0xDCEF 0x8202 +0xDCF0 0x8235 +0xDCF1 0x8237 +0xDCF2 0x8236 +0xDCF3 0x8239 +0xDCF4 0x838E +0xDCF5 0x839E +0xDCF6 0x8398 +0xDCF7 0x8378 +0xDCF8 0x83A2 +0xDCF9 0x8396 +0xDCFA 0x83BD +0xDCFB 0x83AB +0xDCFC 0x8392 +0xDCFD 0x838A +0xDCFE 0x8393 +0xDD21 0x6A96 +0xDD22 0x6A81 +0xDD23 0x6AA5 +0xDD24 0x6A89 +0xDD25 0x6A9F +0xDD26 0x6A9B +0xDD27 0x6AA1 +0xDD28 0x6A9E +0xDD29 0x6A87 +0xDD2A 0x6A93 +0xDD2B 0x6A8E +0xDD2C 0x6A95 +0xDD2D 0x6A83 +0xDD2E 0x6AA8 +0xDD2F 0x6AA4 +0xDD30 0x6A91 +0xDD31 0x6A7F +0xDD32 0x6AA6 +0xDD33 0x6A9A +0xDD34 0x6A85 +0xDD35 0x6A8C +0xDD36 0x6A92 +0xDD37 0x6B5B +0xDD38 0x6BAD +0xDD39 0x6C09 +0xDD3A 0x6FCC +0xDD3B 0x6FA9 +0xDD3C 0x6FF4 +0xDD3D 0x6FD4 +0xDD3E 0x6FE3 +0xDD3F 0x6FDC +0xDD40 0x6FED +0xDD41 0x6FE7 +0xDD42 0x6FE6 +0xDD43 0x6FDE +0xDD44 0x6FF2 +0xDD45 0x6FDD +0xDD46 0x6FE2 +0xDD47 0x6FE8 +0xDD48 0x71E1 +0xDD49 0x71F1 +0xDD4A 0x71E8 +0xDD4B 0x71F2 +0xDD4C 0x71E4 +0xDD4D 0x71F0 +0xDD4E 0x71E2 +0xDD4F 0x7373 +0xDD50 0x736E +0xDD51 0x736F +0xDD52 0x7497 +0xDD53 0x74B2 +0xDD54 0x74AB +0xDD55 0x7490 +0xDD56 0x74AA +0xDD57 0x74AD +0xDD58 0x74B1 +0xDD59 0x74A5 +0xDD5A 0x74AF +0xDD5B 0x7510 +0xDD5C 0x7511 +0xDD5D 0x7512 +0xDD5E 0x750F +0xDD5F 0x7584 +0xDD60 0x7643 +0xDD61 0x7648 +0xDD62 0x7649 +0xDD63 0x7647 +0xDD64 0x76A4 +0xDD65 0x76E9 +0xDD66 0x77B5 +0xDD67 0x77AB +0xDD68 0x77B2 +0xDD69 0x77B7 +0xDD6A 0x77B6 +0xDD6B 0x77B4 +0xDD6C 0x77B1 +0xDD6D 0x77A8 +0xDD6E 0x77F0 +0xDD6F 0x78F3 +0xDD70 0x78FD +0xDD71 0x7902 +0xDD72 0x78FB +0xDD73 0x78FC +0xDD74 0x78FF +0xDD75 0x78F2 +0xDD76 0x7905 +0xDD77 0x78F9 +0xDD78 0x78FE +0xDD79 0x7904 +0xDD7A 0x79AB +0xDD7B 0x79A8 +0xDD7C 0x7A5C +0xDD7D 0x7A5B +0xDD7E 0x7A56 +0xDDA1 0x8389 +0xDDA2 0x83A0 +0xDDA3 0x8377 +0xDDA4 0x837B +0xDDA5 0x837C +0xDDA6 0x8386 +0xDDA7 0x83A7 +0xDDA8 0x8655 +0xDDA9 0x5F6A +0xDDAA 0x86C7 +0xDDAB 0x86C0 +0xDDAC 0x86B6 +0xDDAD 0x86C4 +0xDDAE 0x86B5 +0xDDAF 0x86C6 +0xDDB0 0x86CB +0xDDB1 0x86B1 +0xDDB2 0x86AF +0xDDB3 0x86C9 +0xDDB4 0x8853 +0xDDB5 0x889E +0xDDB6 0x8888 +0xDDB7 0x88AB +0xDDB8 0x8892 +0xDDB9 0x8896 +0xDDBA 0x888D +0xDDBB 0x888B +0xDDBC 0x8993 +0xDDBD 0x898F +0xDDBE 0x8A2A +0xDDBF 0x8A1D +0xDDC0 0x8A23 +0xDDC1 0x8A25 +0xDDC2 0x8A31 +0xDDC3 0x8A2D +0xDDC4 0x8A1F +0xDDC5 0x8A1B +0xDDC6 0x8A22 +0xDDC7 0x8C49 +0xDDC8 0x8C5A +0xDDC9 0x8CA9 +0xDDCA 0x8CAC +0xDDCB 0x8CAB +0xDDCC 0x8CA8 +0xDDCD 0x8CAA +0xDDCE 0x8CA7 +0xDDCF 0x8D67 +0xDDD0 0x8D66 +0xDDD1 0x8DBE +0xDDD2 0x8DBA +0xDDD3 0x8EDB +0xDDD4 0x8EDF +0xDDD5 0x9019 +0xDDD6 0x900D +0xDDD7 0x901A +0xDDD8 0x9017 +0xDDD9 0x9023 +0xDDDA 0x901F +0xDDDB 0x901D +0xDDDC 0x9010 +0xDDDD 0x9015 +0xDDDE 0x901E +0xDDDF 0x9020 +0xDDE0 0x900F +0xDDE1 0x9022 +0xDDE2 0x9016 +0xDDE3 0x901B +0xDDE4 0x9014 +0xDDE5 0x90E8 +0xDDE6 0x90ED +0xDDE7 0x90FD +0xDDE8 0x9157 +0xDDE9 0x91CE +0xDDEA 0x91F5 +0xDDEB 0x91E6 +0xDDEC 0x91E3 +0xDDED 0x91E7 +0xDDEE 0x91ED +0xDDEF 0x91E9 +0xDDF0 0x9589 +0xDDF1 0x966A +0xDDF2 0x9675 +0xDDF3 0x9673 +0xDDF4 0x9678 +0xDDF5 0x9670 +0xDDF6 0x9674 +0xDDF7 0x9676 +0xDDF8 0x9677 +0xDDF9 0x966C +0xDDFA 0x96C0 +0xDDFB 0x96EA +0xDDFC 0x96E9 +0xDDFD 0x7AE0 +0xDDFE 0x7ADF +0xDE21 0x7A58 +0xDE22 0x7A54 +0xDE23 0x7A5A +0xDE24 0x7ABE +0xDE25 0x7AC0 +0xDE26 0x7AC1 +0xDE27 0x7C05 +0xDE28 0x7C0F +0xDE29 0x7BF2 +0xDE2A 0x7C00 +0xDE2B 0x7BFF +0xDE2C 0x7BFB +0xDE2D 0x7C0E +0xDE2E 0x7BF4 +0xDE2F 0x7C0B +0xDE30 0x7BF3 +0xDE31 0x7C02 +0xDE32 0x7C09 +0xDE33 0x7C03 +0xDE34 0x7C01 +0xDE35 0x7BF8 +0xDE36 0x7BFD +0xDE37 0x7C06 +0xDE38 0x7BF0 +0xDE39 0x7BF1 +0xDE3A 0x7C10 +0xDE3B 0x7C0A +0xDE3C 0x7CE8 +0xDE3D 0x7E2D +0xDE3E 0x7E3C +0xDE3F 0x7E42 +0xDE40 0x7E33 +0xDE41 0x9848 +0xDE42 0x7E38 +0xDE43 0x7E2A +0xDE44 0x7E49 +0xDE45 0x7E40 +0xDE46 0x7E47 +0xDE47 0x7E29 +0xDE48 0x7E4C +0xDE49 0x7E30 +0xDE4A 0x7E3B +0xDE4B 0x7E36 +0xDE4C 0x7E44 +0xDE4D 0x7E3A +0xDE4E 0x7F45 +0xDE4F 0x7F7F +0xDE50 0x7F7E +0xDE51 0x7F7D +0xDE52 0x7FF4 +0xDE53 0x7FF2 +0xDE54 0x802C +0xDE55 0x81BB +0xDE56 0x81C4 +0xDE57 0x81CC +0xDE58 0x81CA +0xDE59 0x81C5 +0xDE5A 0x81C7 +0xDE5B 0x81BC +0xDE5C 0x81E9 +0xDE5D 0x825B +0xDE5E 0x825A +0xDE5F 0x825C +0xDE60 0x8583 +0xDE61 0x8580 +0xDE62 0x858F +0xDE63 0x85A7 +0xDE64 0x8595 +0xDE65 0x85A0 +0xDE66 0x858B +0xDE67 0x85A3 +0xDE68 0x857B +0xDE69 0x85A4 +0xDE6A 0x859A +0xDE6B 0x859E +0xDE6C 0x8577 +0xDE6D 0x857C +0xDE6E 0x8589 +0xDE6F 0x85A1 +0xDE70 0x857A +0xDE71 0x8578 +0xDE72 0x8557 +0xDE73 0x858E +0xDE74 0x8596 +0xDE75 0x8586 +0xDE76 0x858D +0xDE77 0x8599 +0xDE78 0x859D +0xDE79 0x8581 +0xDE7A 0x85A2 +0xDE7B 0x8582 +0xDE7C 0x8588 +0xDE7D 0x8585 +0xDE7E 0x8579 +0xDEA1 0x9802 +0xDEA2 0x9803 +0xDEA3 0x9B5A +0xDEA4 0x9CE5 +0xDEA5 0x9E75 +0xDEA6 0x9E7F +0xDEA7 0x9EA5 +0xDEA8 0x9EBB +0xDEA9 0x50A2 +0xDEAA 0x508D +0xDEAB 0x5085 +0xDEAC 0x5099 +0xDEAD 0x5091 +0xDEAE 0x5080 +0xDEAF 0x5096 +0xDEB0 0x5098 +0xDEB1 0x509A +0xDEB2 0x6700 +0xDEB3 0x51F1 +0xDEB4 0x5272 +0xDEB5 0x5274 +0xDEB6 0x5275 +0xDEB7 0x5269 +0xDEB8 0x52DE +0xDEB9 0x52DD +0xDEBA 0x52DB +0xDEBB 0x535A +0xDEBC 0x53A5 +0xDEBD 0x557B +0xDEBE 0x5580 +0xDEBF 0x55A7 +0xDEC0 0x557C +0xDEC1 0x558A +0xDEC2 0x559D +0xDEC3 0x5598 +0xDEC4 0x5582 +0xDEC5 0x559C +0xDEC6 0x55AA +0xDEC7 0x5594 +0xDEC8 0x5587 +0xDEC9 0x558B +0xDECA 0x5583 +0xDECB 0x55B3 +0xDECC 0x55AE +0xDECD 0x559F +0xDECE 0x553E +0xDECF 0x55B2 +0xDED0 0x559A +0xDED1 0x55BB +0xDED2 0x55AC +0xDED3 0x55B1 +0xDED4 0x557E +0xDED5 0x5589 +0xDED6 0x55AB +0xDED7 0x5599 +0xDED8 0x570D +0xDED9 0x582F +0xDEDA 0x582A +0xDEDB 0x5834 +0xDEDC 0x5824 +0xDEDD 0x5830 +0xDEDE 0x5831 +0xDEDF 0x5821 +0xDEE0 0x581D +0xDEE1 0x5820 +0xDEE2 0x58F9 +0xDEE3 0x58FA +0xDEE4 0x5960 +0xDEE5 0x5A77 +0xDEE6 0x5A9A +0xDEE7 0x5A7F +0xDEE8 0x5A92 +0xDEE9 0x5A9B +0xDEEA 0x5AA7 +0xDEEB 0x5B73 +0xDEEC 0x5B71 +0xDEED 0x5BD2 +0xDEEE 0x5BCC +0xDEEF 0x5BD3 +0xDEF0 0x5BD0 +0xDEF1 0x5C0A +0xDEF2 0x5C0B +0xDEF3 0x5C31 +0xDEF4 0x5D4C +0xDEF5 0x5D50 +0xDEF6 0x5D34 +0xDEF7 0x5D47 +0xDEF8 0x5DFD +0xDEF9 0x5E45 +0xDEFA 0x5E3D +0xDEFB 0x5E40 +0xDEFC 0x5E43 +0xDEFD 0x5E7E +0xDEFE 0x5ECA +0xDF21 0x8576 +0xDF22 0x8598 +0xDF23 0x8590 +0xDF24 0x859F +0xDF25 0x8668 +0xDF26 0x87BE +0xDF27 0x87AA +0xDF28 0x87AD +0xDF29 0x87C5 +0xDF2A 0x87B0 +0xDF2B 0x87AC +0xDF2C 0x87B9 +0xDF2D 0x87B5 +0xDF2E 0x87BC +0xDF2F 0x87AE +0xDF30 0x87C9 +0xDF31 0x87C3 +0xDF32 0x87C2 +0xDF33 0x87CC +0xDF34 0x87B7 +0xDF35 0x87AF +0xDF36 0x87C4 +0xDF37 0x87CA +0xDF38 0x87B4 +0xDF39 0x87B6 +0xDF3A 0x87BF +0xDF3B 0x87B8 +0xDF3C 0x87BD +0xDF3D 0x87DE +0xDF3E 0x87B2 +0xDF3F 0x8935 +0xDF40 0x8933 +0xDF41 0x893C +0xDF42 0x893E +0xDF43 0x8941 +0xDF44 0x8952 +0xDF45 0x8937 +0xDF46 0x8942 +0xDF47 0x89AD +0xDF48 0x89AF +0xDF49 0x89AE +0xDF4A 0x89F2 +0xDF4B 0x89F3 +0xDF4C 0x8B1E +0xDF4D 0x8B18 +0xDF4E 0x8B16 +0xDF4F 0x8B11 +0xDF50 0x8B05 +0xDF51 0x8B0B +0xDF52 0x8B22 +0xDF53 0x8B0F +0xDF54 0x8B12 +0xDF55 0x8B15 +0xDF56 0x8B07 +0xDF57 0x8B0D +0xDF58 0x8B08 +0xDF59 0x8B06 +0xDF5A 0x8B1C +0xDF5B 0x8B13 +0xDF5C 0x8B1A +0xDF5D 0x8C4F +0xDF5E 0x8C70 +0xDF5F 0x8C72 +0xDF60 0x8C71 +0xDF61 0x8C6F +0xDF62 0x8C95 +0xDF63 0x8C94 +0xDF64 0x8CF9 +0xDF65 0x8D6F +0xDF66 0x8E4E +0xDF67 0x8E4D +0xDF68 0x8E53 +0xDF69 0x8E50 +0xDF6A 0x8E4C +0xDF6B 0x8E47 +0xDF6C 0x8F43 +0xDF6D 0x8F40 +0xDF6E 0x9085 +0xDF6F 0x907E +0xDF70 0x9138 +0xDF71 0x919A +0xDF72 0x91A2 +0xDF73 0x919B +0xDF74 0x9199 +0xDF75 0x919F +0xDF76 0x91A1 +0xDF77 0x919D +0xDF78 0x91A0 +0xDF79 0x93A1 +0xDF7A 0x9383 +0xDF7B 0x93AF +0xDF7C 0x9364 +0xDF7D 0x9356 +0xDF7E 0x9347 +0xDFA1 0x5EC1 +0xDFA2 0x5EC2 +0xDFA3 0x5EC4 +0xDFA4 0x5F3C +0xDFA5 0x5F6D +0xDFA6 0x5FA9 +0xDFA7 0x5FAA +0xDFA8 0x5FA8 +0xDFA9 0x60D1 +0xDFAA 0x60E1 +0xDFAB 0x60B2 +0xDFAC 0x60B6 +0xDFAD 0x60E0 +0xDFAE 0x611C +0xDFAF 0x6123 +0xDFB0 0x60FA +0xDFB1 0x6115 +0xDFB2 0x60F0 +0xDFB3 0x60FB +0xDFB4 0x60F4 +0xDFB5 0x6168 +0xDFB6 0x60F1 +0xDFB7 0x610E +0xDFB8 0x60F6 +0xDFB9 0x6109 +0xDFBA 0x6100 +0xDFBB 0x6112 +0xDFBC 0x621F +0xDFBD 0x6249 +0xDFBE 0x63A3 +0xDFBF 0x638C +0xDFC0 0x63CF +0xDFC1 0x63C0 +0xDFC2 0x63E9 +0xDFC3 0x63C9 +0xDFC4 0x63C6 +0xDFC5 0x63CD +0xDFC6 0x63D2 +0xDFC7 0x63E3 +0xDFC8 0x63D0 +0xDFC9 0x63E1 +0xDFCA 0x63D6 +0xDFCB 0x63ED +0xDFCC 0x63EE +0xDFCD 0x6376 +0xDFCE 0x63F4 +0xDFCF 0x63EA +0xDFD0 0x63DB +0xDFD1 0x6452 +0xDFD2 0x63DA +0xDFD3 0x63F9 +0xDFD4 0x655E +0xDFD5 0x6566 +0xDFD6 0x6562 +0xDFD7 0x6563 +0xDFD8 0x6591 +0xDFD9 0x6590 +0xDFDA 0x65AF +0xDFDB 0x666E +0xDFDC 0x6670 +0xDFDD 0x6674 +0xDFDE 0x6676 +0xDFDF 0x666F +0xDFE0 0x6691 +0xDFE1 0x667A +0xDFE2 0x667E +0xDFE3 0x6677 +0xDFE4 0x66FE +0xDFE5 0x66FF +0xDFE6 0x671F +0xDFE7 0x671D +0xDFE8 0x68FA +0xDFE9 0x68D5 +0xDFEA 0x68E0 +0xDFEB 0x68D8 +0xDFEC 0x68D7 +0xDFED 0x6905 +0xDFEE 0x68DF +0xDFEF 0x68F5 +0xDFF0 0x68EE +0xDFF1 0x68E7 +0xDFF2 0x68F9 +0xDFF3 0x68D2 +0xDFF4 0x68F2 +0xDFF5 0x68E3 +0xDFF6 0x68CB +0xDFF7 0x68CD +0xDFF8 0x690D +0xDFF9 0x6912 +0xDFFA 0x690E +0xDFFB 0x68C9 +0xDFFC 0x68DA +0xDFFD 0x696E +0xDFFE 0x68FB +0xE021 0x937C +0xE022 0x9358 +0xE023 0x935C +0xE024 0x9376 +0xE025 0x9349 +0xE026 0x9350 +0xE027 0x9351 +0xE028 0x9360 +0xE029 0x936D +0xE02A 0x938F +0xE02B 0x934C +0xE02C 0x936A +0xE02D 0x9379 +0xE02E 0x9357 +0xE02F 0x9355 +0xE030 0x9352 +0xE031 0x934F +0xE032 0x9371 +0xE033 0x9377 +0xE034 0x937B +0xE035 0x9361 +0xE036 0x935E +0xE037 0x9363 +0xE038 0x9367 +0xE039 0x934E +0xE03A 0x9359 +0xE03B 0x95C7 +0xE03C 0x95C0 +0xE03D 0x95C9 +0xE03E 0x95C3 +0xE03F 0x95C5 +0xE040 0x95B7 +0xE041 0x96AE +0xE042 0x96B0 +0xE043 0x96AC +0xE044 0x9720 +0xE045 0x971F +0xE046 0x9718 +0xE047 0x971D +0xE048 0x9719 +0xE049 0x979A +0xE04A 0x97A1 +0xE04B 0x979C +0xE04C 0x979E +0xE04D 0x979D +0xE04E 0x97D5 +0xE04F 0x97D4 +0xE050 0x97F1 +0xE051 0x9841 +0xE052 0x9844 +0xE053 0x984A +0xE054 0x9849 +0xE055 0x9845 +0xE056 0x9843 +0xE057 0x9925 +0xE058 0x992B +0xE059 0x992C +0xE05A 0x992A +0xE05B 0x9933 +0xE05C 0x9932 +0xE05D 0x992F +0xE05E 0x992D +0xE05F 0x9931 +0xE060 0x9930 +0xE061 0x9998 +0xE062 0x99A3 +0xE063 0x99A1 +0xE064 0x9A02 +0xE065 0x99FA +0xE066 0x99F4 +0xE067 0x99F7 +0xE068 0x99F9 +0xE069 0x99F8 +0xE06A 0x99F6 +0xE06B 0x99FB +0xE06C 0x99FD +0xE06D 0x99FE +0xE06E 0x99FC +0xE06F 0x9A03 +0xE070 0x9ABE +0xE071 0x9AFE +0xE072 0x9AFD +0xE073 0x9B01 +0xE074 0x9AFC +0xE075 0x9B48 +0xE076 0x9B9A +0xE077 0x9BA8 +0xE078 0x9B9E +0xE079 0x9B9B +0xE07A 0x9BA6 +0xE07B 0x9BA1 +0xE07C 0x9BA5 +0xE07D 0x9BA4 +0xE07E 0x9B86 +0xE0A1 0x6B3E +0xE0A2 0x6B3A +0xE0A3 0x6B3D +0xE0A4 0x6B98 +0xE0A5 0x6B96 +0xE0A6 0x6BBC +0xE0A7 0x6BEF +0xE0A8 0x6C2E +0xE0A9 0x6C2F +0xE0AA 0x6C2C +0xE0AB 0x6E2F +0xE0AC 0x6E38 +0xE0AD 0x6E54 +0xE0AE 0x6E21 +0xE0AF 0x6E32 +0xE0B0 0x6E67 +0xE0B1 0x6E4A +0xE0B2 0x6E20 +0xE0B3 0x6E25 +0xE0B4 0x6E23 +0xE0B5 0x6E1B +0xE0B6 0x6E5B +0xE0B7 0x6E58 +0xE0B8 0x6E24 +0xE0B9 0x6E56 +0xE0BA 0x6E6E +0xE0BB 0x6E2D +0xE0BC 0x6E26 +0xE0BD 0x6E6F +0xE0BE 0x6E34 +0xE0BF 0x6E4D +0xE0C0 0x6E3A +0xE0C1 0x6E2C +0xE0C2 0x6E43 +0xE0C3 0x6E1D +0xE0C4 0x6E3E +0xE0C5 0x6ECB +0xE0C6 0x6E89 +0xE0C7 0x6E19 +0xE0C8 0x6E4E +0xE0C9 0x6E63 +0xE0CA 0x6E44 +0xE0CB 0x6E72 +0xE0CC 0x6E69 +0xE0CD 0x6E5F +0xE0CE 0x7119 +0xE0CF 0x711A +0xE0D0 0x7126 +0xE0D1 0x7130 +0xE0D2 0x7121 +0xE0D3 0x7136 +0xE0D4 0x716E +0xE0D5 0x711C +0xE0D6 0x724C +0xE0D7 0x7284 +0xE0D8 0x7280 +0xE0D9 0x7336 +0xE0DA 0x7325 +0xE0DB 0x7334 +0xE0DC 0x7329 +0xE0DD 0x743A +0xE0DE 0x742A +0xE0DF 0x7433 +0xE0E0 0x7422 +0xE0E1 0x7425 +0xE0E2 0x7435 +0xE0E3 0x7436 +0xE0E4 0x7434 +0xE0E5 0x742F +0xE0E6 0x741B +0xE0E7 0x7426 +0xE0E8 0x7428 +0xE0E9 0x7525 +0xE0EA 0x7526 +0xE0EB 0x756B +0xE0EC 0x756A +0xE0ED 0x75E2 +0xE0EE 0x75DB +0xE0EF 0x75E3 +0xE0F0 0x75D9 +0xE0F1 0x75D8 +0xE0F2 0x75DE +0xE0F3 0x75E0 +0xE0F4 0x767B +0xE0F5 0x767C +0xE0F6 0x7696 +0xE0F7 0x7693 +0xE0F8 0x76B4 +0xE0F9 0x76DC +0xE0FA 0x774F +0xE0FB 0x77ED +0xE0FC 0x785D +0xE0FD 0x786C +0xE0FE 0x786F +0xE121 0x9BA2 +0xE122 0x9BA0 +0xE123 0x9BAF +0xE124 0x9D33 +0xE125 0x9D41 +0xE126 0x9D67 +0xE127 0x9D36 +0xE128 0x9D2E +0xE129 0x9D2F +0xE12A 0x9D31 +0xE12B 0x9D38 +0xE12C 0x9D30 +0xE12D 0x9D45 +0xE12E 0x9D42 +0xE12F 0x9D43 +0xE130 0x9D3E +0xE131 0x9D37 +0xE132 0x9D40 +0xE133 0x9D3D +0xE134 0x7FF5 +0xE135 0x9D2D +0xE136 0x9E8A +0xE137 0x9E89 +0xE138 0x9E8D +0xE139 0x9EB0 +0xE13A 0x9EC8 +0xE13B 0x9EDA +0xE13C 0x9EFB +0xE13D 0x9EFF +0xE13E 0x9F24 +0xE13F 0x9F23 +0xE140 0x9F22 +0xE141 0x9F54 +0xE142 0x9FA0 +0xE143 0x5131 +0xE144 0x512D +0xE145 0x512E +0xE146 0x5698 +0xE147 0x569C +0xE148 0x5697 +0xE149 0x569A +0xE14A 0x569D +0xE14B 0x5699 +0xE14C 0x5970 +0xE14D 0x5B3C +0xE14E 0x5C69 +0xE14F 0x5C6A +0xE150 0x5DC0 +0xE151 0x5E6D +0xE152 0x5E6E +0xE153 0x61D8 +0xE154 0x61DF +0xE155 0x61ED +0xE156 0x61EE +0xE157 0x61F1 +0xE158 0x61EA +0xE159 0x61F0 +0xE15A 0x61EB +0xE15B 0x61D6 +0xE15C 0x61E9 +0xE15D 0x64FF +0xE15E 0x6504 +0xE15F 0x64FD +0xE160 0x64F8 +0xE161 0x6501 +0xE162 0x6503 +0xE163 0x64FC +0xE164 0x6594 +0xE165 0x65DB +0xE166 0x66DA +0xE167 0x66DB +0xE168 0x66D8 +0xE169 0x6AC5 +0xE16A 0x6AB9 +0xE16B 0x6ABD +0xE16C 0x6AE1 +0xE16D 0x6AC6 +0xE16E 0x6ABA +0xE16F 0x6AB6 +0xE170 0x6AB7 +0xE171 0x6AC7 +0xE172 0x6AB4 +0xE173 0x6AAD +0xE174 0x6B5E +0xE175 0x6BC9 +0xE176 0x6C0B +0xE177 0x7007 +0xE178 0x700C +0xE179 0x700D +0xE17A 0x7001 +0xE17B 0x7005 +0xE17C 0x7014 +0xE17D 0x700E +0xE17E 0x6FFF +0xE1A1 0x7A0D +0xE1A2 0x7A08 +0xE1A3 0x7A0B +0xE1A4 0x7A05 +0xE1A5 0x7A00 +0xE1A6 0x7A98 +0xE1A7 0x7A97 +0xE1A8 0x7A96 +0xE1A9 0x7AE5 +0xE1AA 0x7AE3 +0xE1AB 0x7B49 +0xE1AC 0x7B56 +0xE1AD 0x7B46 +0xE1AE 0x7B50 +0xE1AF 0x7B52 +0xE1B0 0x7B54 +0xE1B1 0x7B4D +0xE1B2 0x7B4B +0xE1B3 0x7B4F +0xE1B4 0x7B51 +0xE1B5 0x7C9F +0xE1B6 0x7CA5 +0xE1B7 0x7D5E +0xE1B8 0x7D50 +0xE1B9 0x7D68 +0xE1BA 0x7D55 +0xE1BB 0x7D2B +0xE1BC 0x7D6E +0xE1BD 0x7D72 +0xE1BE 0x7D61 +0xE1BF 0x7D66 +0xE1C0 0x7D62 +0xE1C1 0x7D70 +0xE1C2 0x7D73 +0xE1C3 0x5584 +0xE1C4 0x7FD4 +0xE1C5 0x7FD5 +0xE1C6 0x800B +0xE1C7 0x8052 +0xE1C8 0x8085 +0xE1C9 0x8155 +0xE1CA 0x8154 +0xE1CB 0x814B +0xE1CC 0x8151 +0xE1CD 0x814E +0xE1CE 0x8139 +0xE1CF 0x8146 +0xE1D0 0x813E +0xE1D1 0x814C +0xE1D2 0x8153 +0xE1D3 0x8174 +0xE1D4 0x8212 +0xE1D5 0x821C +0xE1D6 0x83E9 +0xE1D7 0x8403 +0xE1D8 0x83F8 +0xE1D9 0x840D +0xE1DA 0x83E0 +0xE1DB 0x83C5 +0xE1DC 0x840B +0xE1DD 0x83C1 +0xE1DE 0x83EF +0xE1DF 0x83F1 +0xE1E0 0x83F4 +0xE1E1 0x8457 +0xE1E2 0x840A +0xE1E3 0x83F0 +0xE1E4 0x840C +0xE1E5 0x83CC +0xE1E6 0x83FD +0xE1E7 0x83F2 +0xE1E8 0x83CA +0xE1E9 0x8438 +0xE1EA 0x840E +0xE1EB 0x8404 +0xE1EC 0x83DC +0xE1ED 0x8407 +0xE1EE 0x83D4 +0xE1EF 0x83DF +0xE1F0 0x865B +0xE1F1 0x86DF +0xE1F2 0x86D9 +0xE1F3 0x86ED +0xE1F4 0x86D4 +0xE1F5 0x86DB +0xE1F6 0x86E4 +0xE1F7 0x86D0 +0xE1F8 0x86DE +0xE1F9 0x8857 +0xE1FA 0x88C1 +0xE1FB 0x88C2 +0xE1FC 0x88B1 +0xE1FD 0x8983 +0xE1FE 0x8996 +0xE221 0x7000 +0xE222 0x6FFB +0xE223 0x7026 +0xE224 0x6FFC +0xE225 0x6FF7 +0xE226 0x700A +0xE227 0x7201 +0xE228 0x71FF +0xE229 0x71F9 +0xE22A 0x7203 +0xE22B 0x71FD +0xE22C 0x7376 +0xE22D 0x74B8 +0xE22E 0x74C0 +0xE22F 0x74B5 +0xE230 0x74C1 +0xE231 0x74BE +0xE232 0x74B6 +0xE233 0x74BB +0xE234 0x74C2 +0xE235 0x7514 +0xE236 0x7513 +0xE237 0x765C +0xE238 0x7664 +0xE239 0x7659 +0xE23A 0x7650 +0xE23B 0x7653 +0xE23C 0x7657 +0xE23D 0x765A +0xE23E 0x76A6 +0xE23F 0x76BD +0xE240 0x76EC +0xE241 0x77C2 +0xE242 0x77BA +0xE243 0x790C +0xE244 0x7913 +0xE245 0x7914 +0xE246 0x7909 +0xE247 0x7910 +0xE248 0x7912 +0xE249 0x7911 +0xE24A 0x79AD +0xE24B 0x79AC +0xE24C 0x7A5F +0xE24D 0x7C1C +0xE24E 0x7C29 +0xE24F 0x7C19 +0xE250 0x7C20 +0xE251 0x7C1F +0xE252 0x7C2D +0xE253 0x7C1D +0xE254 0x7C26 +0xE255 0x7C28 +0xE256 0x7C22 +0xE257 0x7C25 +0xE258 0x7C30 +0xE259 0x7E5C +0xE25A 0x7E50 +0xE25B 0x7E56 +0xE25C 0x7E63 +0xE25D 0x7E58 +0xE25E 0x7E62 +0xE25F 0x7E5F +0xE260 0x7E51 +0xE261 0x7E60 +0xE262 0x7E57 +0xE263 0x7E53 +0xE264 0x7FB5 +0xE265 0x7FB3 +0xE266 0x7FF7 +0xE267 0x7FF8 +0xE268 0x8075 +0xE269 0x81D1 +0xE26A 0x81D2 +0xE26B 0x81D0 +0xE26C 0x825F +0xE26D 0x825E +0xE26E 0x85B4 +0xE26F 0x85C6 +0xE270 0x85C0 +0xE271 0x85C3 +0xE272 0x85C2 +0xE273 0x85B3 +0xE274 0x85B5 +0xE275 0x85BD +0xE276 0x85C7 +0xE277 0x85C4 +0xE278 0x85BF +0xE279 0x85CB +0xE27A 0x85CE +0xE27B 0x85C8 +0xE27C 0x85C5 +0xE27D 0x85B1 +0xE27E 0x85B6 +0xE2A1 0x8A3B +0xE2A2 0x8A60 +0xE2A3 0x8A55 +0xE2A4 0x8A5E +0xE2A5 0x8A3C +0xE2A6 0x8A41 +0xE2A7 0x8A54 +0xE2A8 0x8A5B +0xE2A9 0x8A50 +0xE2AA 0x8A46 +0xE2AB 0x8A34 +0xE2AC 0x8A3A +0xE2AD 0x8A36 +0xE2AE 0x8A56 +0xE2AF 0x8C61 +0xE2B0 0x8C82 +0xE2B1 0x8CAF +0xE2B2 0x8CBC +0xE2B3 0x8CB3 +0xE2B4 0x8CBD +0xE2B5 0x8CC1 +0xE2B6 0x8CBB +0xE2B7 0x8CC0 +0xE2B8 0x8CB4 +0xE2B9 0x8CB7 +0xE2BA 0x8CB6 +0xE2BB 0x8CBF +0xE2BC 0x8CB8 +0xE2BD 0x8D8A +0xE2BE 0x8D85 +0xE2BF 0x8D81 +0xE2C0 0x8DCE +0xE2C1 0x8DDD +0xE2C2 0x8DCB +0xE2C3 0x8DDA +0xE2C4 0x8DD1 +0xE2C5 0x8DCC +0xE2C6 0x8DDB +0xE2C7 0x8DC6 +0xE2C8 0x8EFB +0xE2C9 0x8EF8 +0xE2CA 0x8EFC +0xE2CB 0x8F9C +0xE2CC 0x902E +0xE2CD 0x9035 +0xE2CE 0x9031 +0xE2CF 0x9038 +0xE2D0 0x9032 +0xE2D1 0x9036 +0xE2D2 0x9102 +0xE2D3 0x90F5 +0xE2D4 0x9109 +0xE2D5 0x90FE +0xE2D6 0x9163 +0xE2D7 0x9165 +0xE2D8 0x91CF +0xE2D9 0x9214 +0xE2DA 0x9215 +0xE2DB 0x9223 +0xE2DC 0x9209 +0xE2DD 0x921E +0xE2DE 0x920D +0xE2DF 0x9210 +0xE2E0 0x9207 +0xE2E1 0x9211 +0xE2E2 0x9594 +0xE2E3 0x958F +0xE2E4 0x958B +0xE2E5 0x9591 +0xE2E6 0x9593 +0xE2E7 0x9592 +0xE2E8 0x958E +0xE2E9 0x968A +0xE2EA 0x968E +0xE2EB 0x968B +0xE2EC 0x967D +0xE2ED 0x9685 +0xE2EE 0x9686 +0xE2EF 0x968D +0xE2F0 0x9672 +0xE2F1 0x9684 +0xE2F2 0x96C1 +0xE2F3 0x96C5 +0xE2F4 0x96C4 +0xE2F5 0x96C6 +0xE2F6 0x96C7 +0xE2F7 0x96EF +0xE2F8 0x96F2 +0xE2F9 0x97CC +0xE2FA 0x9805 +0xE2FB 0x9806 +0xE2FC 0x9808 +0xE2FD 0x98E7 +0xE2FE 0x98EA +0xE321 0x85D2 +0xE322 0x8624 +0xE323 0x85B8 +0xE324 0x85B7 +0xE325 0x85BE +0xE326 0x8669 +0xE327 0x87E7 +0xE328 0x87E6 +0xE329 0x87E2 +0xE32A 0x87DB +0xE32B 0x87EB +0xE32C 0x87EA +0xE32D 0x87E5 +0xE32E 0x87DF +0xE32F 0x87F3 +0xE330 0x87E4 +0xE331 0x87D4 +0xE332 0x87DC +0xE333 0x87D3 +0xE334 0x87ED +0xE335 0x87D8 +0xE336 0x87E3 +0xE337 0x87D7 +0xE338 0x87D9 +0xE339 0x8801 +0xE33A 0x87F4 +0xE33B 0x87E8 +0xE33C 0x87DD +0xE33D 0x8953 +0xE33E 0x894B +0xE33F 0x894F +0xE340 0x894C +0xE341 0x8946 +0xE342 0x8950 +0xE343 0x8951 +0xE344 0x8949 +0xE345 0x8B2A +0xE346 0x8B27 +0xE347 0x8B23 +0xE348 0x8B33 +0xE349 0x8B30 +0xE34A 0x8B35 +0xE34B 0x8B47 +0xE34C 0x8B2F +0xE34D 0x8B3C +0xE34E 0x8B3E +0xE34F 0x8B31 +0xE350 0x8B25 +0xE351 0x8B37 +0xE352 0x8B26 +0xE353 0x8B36 +0xE354 0x8B2E +0xE355 0x8B24 +0xE356 0x8B3B +0xE357 0x8B3D +0xE358 0x8B3A +0xE359 0x8C42 +0xE35A 0x8C75 +0xE35B 0x8C99 +0xE35C 0x8C98 +0xE35D 0x8C97 +0xE35E 0x8CFE +0xE35F 0x8D04 +0xE360 0x8D02 +0xE361 0x8D00 +0xE362 0x8E5C +0xE363 0x8E62 +0xE364 0x8E60 +0xE365 0x8E57 +0xE366 0x8E56 +0xE367 0x8E5E +0xE368 0x8E65 +0xE369 0x8E67 +0xE36A 0x8E5B +0xE36B 0x8E5A +0xE36C 0x8E61 +0xE36D 0x8E5D +0xE36E 0x8E69 +0xE36F 0x8E54 +0xE370 0x8F46 +0xE371 0x8F47 +0xE372 0x8F48 +0xE373 0x8F4B +0xE374 0x9128 +0xE375 0x913A +0xE376 0x913B +0xE377 0x913E +0xE378 0x91A8 +0xE379 0x91A5 +0xE37A 0x91A7 +0xE37B 0x91AF +0xE37C 0x91AA +0xE37D 0x93B5 +0xE37E 0x938C +0xE3A1 0x98EF +0xE3A2 0x98E9 +0xE3A3 0x98F2 +0xE3A4 0x98ED +0xE3A5 0x99AE +0xE3A6 0x99AD +0xE3A7 0x9EC3 +0xE3A8 0x9ECD +0xE3A9 0x9ED1 +0xE3AA 0x4E82 +0xE3AB 0x50AD +0xE3AC 0x50B5 +0xE3AD 0x50B2 +0xE3AE 0x50B3 +0xE3AF 0x50C5 +0xE3B0 0x50BE +0xE3B1 0x50AC +0xE3B2 0x50B7 +0xE3B3 0x50BB +0xE3B4 0x50AF +0xE3B5 0x50C7 +0xE3B6 0x527F +0xE3B7 0x5277 +0xE3B8 0x527D +0xE3B9 0x52DF +0xE3BA 0x52E6 +0xE3BB 0x52E4 +0xE3BC 0x52E2 +0xE3BD 0x52E3 +0xE3BE 0x532F +0xE3BF 0x55DF +0xE3C0 0x55E8 +0xE3C1 0x55D3 +0xE3C2 0x55E6 +0xE3C3 0x55CE +0xE3C4 0x55DC +0xE3C5 0x55C7 +0xE3C6 0x55D1 +0xE3C7 0x55E3 +0xE3C8 0x55E4 +0xE3C9 0x55EF +0xE3CA 0x55DA +0xE3CB 0x55E1 +0xE3CC 0x55C5 +0xE3CD 0x55C6 +0xE3CE 0x55E5 +0xE3CF 0x55C9 +0xE3D0 0x5712 +0xE3D1 0x5713 +0xE3D2 0x585E +0xE3D3 0x5851 +0xE3D4 0x5858 +0xE3D5 0x5857 +0xE3D6 0x585A +0xE3D7 0x5854 +0xE3D8 0x586B +0xE3D9 0x584C +0xE3DA 0x586D +0xE3DB 0x584A +0xE3DC 0x5862 +0xE3DD 0x5852 +0xE3DE 0x584B +0xE3DF 0x5967 +0xE3E0 0x5AC1 +0xE3E1 0x5AC9 +0xE3E2 0x5ACC +0xE3E3 0x5ABE +0xE3E4 0x5ABD +0xE3E5 0x5ABC +0xE3E6 0x5AB3 +0xE3E7 0x5AC2 +0xE3E8 0x5AB2 +0xE3E9 0x5D69 +0xE3EA 0x5D6F +0xE3EB 0x5E4C +0xE3EC 0x5E79 +0xE3ED 0x5EC9 +0xE3EE 0x5EC8 +0xE3EF 0x5F12 +0xE3F0 0x5F59 +0xE3F1 0x5FAC +0xE3F2 0x5FAE +0xE3F3 0x611A +0xE3F4 0x610F +0xE3F5 0x6148 +0xE3F6 0x611F +0xE3F7 0x60F3 +0xE3F8 0x611B +0xE3F9 0x60F9 +0xE3FA 0x6101 +0xE3FB 0x6108 +0xE3FC 0x614E +0xE3FD 0x614C +0xE3FE 0x6144 +0xE421 0x9392 +0xE422 0x93B7 +0xE423 0x939B +0xE424 0x939D +0xE425 0x9389 +0xE426 0x93A7 +0xE427 0x938E +0xE428 0x93AA +0xE429 0x939E +0xE42A 0x93A6 +0xE42B 0x9395 +0xE42C 0x9388 +0xE42D 0x9399 +0xE42E 0x939F +0xE42F 0x9380 +0xE430 0x938D +0xE431 0x93B1 +0xE432 0x9391 +0xE433 0x93B2 +0xE434 0x93A4 +0xE435 0x93A8 +0xE436 0x93B4 +0xE437 0x93A3 +0xE438 0x95D2 +0xE439 0x95D3 +0xE43A 0x95D1 +0xE43B 0x96B3 +0xE43C 0x96D7 +0xE43D 0x96DA +0xE43E 0x5DC2 +0xE43F 0x96DF +0xE440 0x96D8 +0xE441 0x96DD +0xE442 0x9723 +0xE443 0x9722 +0xE444 0x9725 +0xE445 0x97AC +0xE446 0x97AE +0xE447 0x97A8 +0xE448 0x97AB +0xE449 0x97A4 +0xE44A 0x97AA +0xE44B 0x97A2 +0xE44C 0x97A5 +0xE44D 0x97D7 +0xE44E 0x97D9 +0xE44F 0x97D6 +0xE450 0x97D8 +0xE451 0x97FA +0xE452 0x9850 +0xE453 0x9851 +0xE454 0x9852 +0xE455 0x98B8 +0xE456 0x9941 +0xE457 0x993C +0xE458 0x993A +0xE459 0x9A0F +0xE45A 0x9A0B +0xE45B 0x9A09 +0xE45C 0x9A0D +0xE45D 0x9A04 +0xE45E 0x9A11 +0xE45F 0x9A0A +0xE460 0x9A05 +0xE461 0x9A07 +0xE462 0x9A06 +0xE463 0x9AC0 +0xE464 0x9ADC +0xE465 0x9B08 +0xE466 0x9B04 +0xE467 0x9B05 +0xE468 0x9B29 +0xE469 0x9B35 +0xE46A 0x9B4A +0xE46B 0x9B4C +0xE46C 0x9B4B +0xE46D 0x9BC7 +0xE46E 0x9BC6 +0xE46F 0x9BC3 +0xE470 0x9BBF +0xE471 0x9BC1 +0xE472 0x9BB5 +0xE473 0x9BB8 +0xE474 0x9BD3 +0xE475 0x9BB6 +0xE476 0x9BC4 +0xE477 0x9BB9 +0xE478 0x9BBD +0xE479 0x9D5C +0xE47A 0x9D53 +0xE47B 0x9D4F +0xE47C 0x9D4A +0xE47D 0x9D5B +0xE47E 0x9D4B +0xE4A1 0x614D +0xE4A2 0x613E +0xE4A3 0x6134 +0xE4A4 0x6127 +0xE4A5 0x610D +0xE4A6 0x6106 +0xE4A7 0x6137 +0xE4A8 0x6221 +0xE4A9 0x6222 +0xE4AA 0x6413 +0xE4AB 0x643E +0xE4AC 0x641E +0xE4AD 0x642A +0xE4AE 0x642D +0xE4AF 0x643D +0xE4B0 0x642C +0xE4B1 0x640F +0xE4B2 0x641C +0xE4B3 0x6414 +0xE4B4 0x640D +0xE4B5 0x6436 +0xE4B6 0x6416 +0xE4B7 0x6417 +0xE4B8 0x6406 +0xE4B9 0x656C +0xE4BA 0x659F +0xE4BB 0x65B0 +0xE4BC 0x6697 +0xE4BD 0x6689 +0xE4BE 0x6687 +0xE4BF 0x6688 +0xE4C0 0x6696 +0xE4C1 0x6684 +0xE4C2 0x6698 +0xE4C3 0x668D +0xE4C4 0x6703 +0xE4C5 0x6994 +0xE4C6 0x696D +0xE4C7 0x695A +0xE4C8 0x6977 +0xE4C9 0x6960 +0xE4CA 0x6954 +0xE4CB 0x6975 +0xE4CC 0x6930 +0xE4CD 0x6982 +0xE4CE 0x694A +0xE4CF 0x6968 +0xE4D0 0x696B +0xE4D1 0x695E +0xE4D2 0x6953 +0xE4D3 0x6979 +0xE4D4 0x6986 +0xE4D5 0x695D +0xE4D6 0x6963 +0xE4D7 0x695B +0xE4D8 0x6B47 +0xE4D9 0x6B72 +0xE4DA 0x6BC0 +0xE4DB 0x6BBF +0xE4DC 0x6BD3 +0xE4DD 0x6BFD +0xE4DE 0x6EA2 +0xE4DF 0x6EAF +0xE4E0 0x6ED3 +0xE4E1 0x6EB6 +0xE4E2 0x6EC2 +0xE4E3 0x6E90 +0xE4E4 0x6E9D +0xE4E5 0x6EC7 +0xE4E6 0x6EC5 +0xE4E7 0x6EA5 +0xE4E8 0x6E98 +0xE4E9 0x6EBC +0xE4EA 0x6EBA +0xE4EB 0x6EAB +0xE4EC 0x6ED1 +0xE4ED 0x6E96 +0xE4EE 0x6E9C +0xE4EF 0x6EC4 +0xE4F0 0x6ED4 +0xE4F1 0x6EAA +0xE4F2 0x6EA7 +0xE4F3 0x6EB4 +0xE4F4 0x714E +0xE4F5 0x7159 +0xE4F6 0x7169 +0xE4F7 0x7164 +0xE4F8 0x7149 +0xE4F9 0x7167 +0xE4FA 0x715C +0xE4FB 0x716C +0xE4FC 0x7166 +0xE4FD 0x714C +0xE4FE 0x7165 +0xE521 0x9D59 +0xE522 0x9D56 +0xE523 0x9D4C +0xE524 0x9D57 +0xE525 0x9D52 +0xE526 0x9D54 +0xE527 0x9D5F +0xE528 0x9D58 +0xE529 0x9D5A +0xE52A 0x9E8E +0xE52B 0x9E8C +0xE52C 0x9EDF +0xE52D 0x9F01 +0xE52E 0x9F00 +0xE52F 0x9F16 +0xE530 0x9F25 +0xE531 0x9F2B +0xE532 0x9F2A +0xE533 0x9F29 +0xE534 0x9F28 +0xE535 0x9F4C +0xE536 0x9F55 +0xE537 0x5134 +0xE538 0x5135 +0xE539 0x5296 +0xE53A 0x52F7 +0xE53B 0x53B4 +0xE53C 0x56AB +0xE53D 0x56AD +0xE53E 0x56A6 +0xE53F 0x56A7 +0xE540 0x56AA +0xE541 0x56AC +0xE542 0x58DA +0xE543 0x58DD +0xE544 0x58DB +0xE545 0x5912 +0xE546 0x5B3D +0xE547 0x5B3E +0xE548 0x5B3F +0xE549 0x5DC3 +0xE54A 0x5E70 +0xE54B 0x5FBF +0xE54C 0x61FB +0xE54D 0x6507 +0xE54E 0x6510 +0xE54F 0x650D +0xE550 0x6509 +0xE551 0x650C +0xE552 0x650E +0xE553 0x6584 +0xE554 0x65DE +0xE555 0x65DD +0xE556 0x66DE +0xE557 0x6AE7 +0xE558 0x6AE0 +0xE559 0x6ACC +0xE55A 0x6AD1 +0xE55B 0x6AD9 +0xE55C 0x6ACB +0xE55D 0x6ADF +0xE55E 0x6ADC +0xE55F 0x6AD0 +0xE560 0x6AEB +0xE561 0x6ACF +0xE562 0x6ACD +0xE563 0x6ADE +0xE564 0x6B60 +0xE565 0x6BB0 +0xE566 0x6C0C +0xE567 0x7019 +0xE568 0x7027 +0xE569 0x7020 +0xE56A 0x7016 +0xE56B 0x702B +0xE56C 0x7021 +0xE56D 0x7022 +0xE56E 0x7023 +0xE56F 0x7029 +0xE570 0x7017 +0xE571 0x7024 +0xE572 0x701C +0xE573 0x720C +0xE574 0x720A +0xE575 0x7207 +0xE576 0x7202 +0xE577 0x7205 +0xE578 0x72A5 +0xE579 0x72A6 +0xE57A 0x72A4 +0xE57B 0x72A3 +0xE57C 0x72A1 +0xE57D 0x74CB +0xE57E 0x74C5 +0xE5A1 0x715E +0xE5A2 0x7146 +0xE5A3 0x7168 +0xE5A4 0x7156 +0xE5A5 0x723A +0xE5A6 0x7252 +0xE5A7 0x7337 +0xE5A8 0x7345 +0xE5A9 0x733F +0xE5AA 0x733E +0xE5AB 0x746F +0xE5AC 0x745A +0xE5AD 0x7455 +0xE5AE 0x745F +0xE5AF 0x745E +0xE5B0 0x7441 +0xE5B1 0x743F +0xE5B2 0x7459 +0xE5B3 0x745B +0xE5B4 0x745C +0xE5B5 0x7576 +0xE5B6 0x7578 +0xE5B7 0x7600 +0xE5B8 0x75F0 +0xE5B9 0x7601 +0xE5BA 0x75F2 +0xE5BB 0x75F1 +0xE5BC 0x75FA +0xE5BD 0x75FF +0xE5BE 0x75F4 +0xE5BF 0x75F3 +0xE5C0 0x76DE +0xE5C1 0x76DF +0xE5C2 0x775B +0xE5C3 0x776B +0xE5C4 0x7766 +0xE5C5 0x775E +0xE5C6 0x7763 +0xE5C7 0x7779 +0xE5C8 0x776A +0xE5C9 0x776C +0xE5CA 0x775C +0xE5CB 0x7765 +0xE5CC 0x7768 +0xE5CD 0x7762 +0xE5CE 0x77EE +0xE5CF 0x788E +0xE5D0 0x78B0 +0xE5D1 0x7897 +0xE5D2 0x7898 +0xE5D3 0x788C +0xE5D4 0x7889 +0xE5D5 0x787C +0xE5D6 0x7891 +0xE5D7 0x7893 +0xE5D8 0x787F +0xE5D9 0x797A +0xE5DA 0x797F +0xE5DB 0x7981 +0xE5DC 0x842C +0xE5DD 0x79BD +0xE5DE 0x7A1C +0xE5DF 0x7A1A +0xE5E0 0x7A20 +0xE5E1 0x7A14 +0xE5E2 0x7A1F +0xE5E3 0x7A1E +0xE5E4 0x7A9F +0xE5E5 0x7AA0 +0xE5E6 0x7B77 +0xE5E7 0x7BC0 +0xE5E8 0x7B60 +0xE5E9 0x7B6E +0xE5EA 0x7B67 +0xE5EB 0x7CB1 +0xE5EC 0x7CB3 +0xE5ED 0x7CB5 +0xE5EE 0x7D93 +0xE5EF 0x7D79 +0xE5F0 0x7D91 +0xE5F1 0x7D81 +0xE5F2 0x7D8F +0xE5F3 0x7D5B +0xE5F4 0x7F6E +0xE5F5 0x7F69 +0xE5F6 0x7F6A +0xE5F7 0x7F72 +0xE5F8 0x7FA9 +0xE5F9 0x7FA8 +0xE5FA 0x7FA4 +0xE5FB 0x8056 +0xE5FC 0x8058 +0xE5FD 0x8086 +0xE5FE 0x8084 +0xE621 0x74B7 +0xE622 0x74C3 +0xE623 0x7516 +0xE624 0x7660 +0xE625 0x77C9 +0xE626 0x77CA +0xE627 0x77C4 +0xE628 0x77F1 +0xE629 0x791D +0xE62A 0x791B +0xE62B 0x7921 +0xE62C 0x791C +0xE62D 0x7917 +0xE62E 0x791E +0xE62F 0x79B0 +0xE630 0x7A67 +0xE631 0x7A68 +0xE632 0x7C33 +0xE633 0x7C3C +0xE634 0x7C39 +0xE635 0x7C2C +0xE636 0x7C3B +0xE637 0x7CEC +0xE638 0x7CEA +0xE639 0x7E76 +0xE63A 0x7E75 +0xE63B 0x7E78 +0xE63C 0x7E70 +0xE63D 0x7E77 +0xE63E 0x7E6F +0xE63F 0x7E7A +0xE640 0x7E72 +0xE641 0x7E74 +0xE642 0x7E68 +0xE643 0x7F4B +0xE644 0x7F4A +0xE645 0x7F83 +0xE646 0x7F86 +0xE647 0x7FB7 +0xE648 0x7FFD +0xE649 0x7FFE +0xE64A 0x8078 +0xE64B 0x81D7 +0xE64C 0x81D5 +0xE64D 0x820B +0xE64E 0x8264 +0xE64F 0x8261 +0xE650 0x8263 +0xE651 0x85EB +0xE652 0x85F1 +0xE653 0x85ED +0xE654 0x85D9 +0xE655 0x85E1 +0xE656 0x85E8 +0xE657 0x85DA +0xE658 0x85D7 +0xE659 0x85EC +0xE65A 0x85F2 +0xE65B 0x85F8 +0xE65C 0x85D8 +0xE65D 0x85DF +0xE65E 0x85E3 +0xE65F 0x85DC +0xE660 0x85D1 +0xE661 0x85F0 +0xE662 0x85E6 +0xE663 0x85EF +0xE664 0x85DE +0xE665 0x85E2 +0xE666 0x8800 +0xE667 0x87FA +0xE668 0x8803 +0xE669 0x87F6 +0xE66A 0x87F7 +0xE66B 0x8809 +0xE66C 0x880C +0xE66D 0x880B +0xE66E 0x8806 +0xE66F 0x87FC +0xE670 0x8808 +0xE671 0x87FF +0xE672 0x880A +0xE673 0x8802 +0xE674 0x8962 +0xE675 0x895A +0xE676 0x895B +0xE677 0x8957 +0xE678 0x8961 +0xE679 0x895C +0xE67A 0x8958 +0xE67B 0x895D +0xE67C 0x8959 +0xE67D 0x8988 +0xE67E 0x89B7 +0xE6A1 0x8171 +0xE6A2 0x8170 +0xE6A3 0x8178 +0xE6A4 0x8165 +0xE6A5 0x816E +0xE6A6 0x8173 +0xE6A7 0x816B +0xE6A8 0x8179 +0xE6A9 0x817A +0xE6AA 0x8166 +0xE6AB 0x8205 +0xE6AC 0x8247 +0xE6AD 0x8482 +0xE6AE 0x8477 +0xE6AF 0x843D +0xE6B0 0x8431 +0xE6B1 0x8475 +0xE6B2 0x8466 +0xE6B3 0x846B +0xE6B4 0x8449 +0xE6B5 0x846C +0xE6B6 0x845B +0xE6B7 0x843C +0xE6B8 0x8435 +0xE6B9 0x8461 +0xE6BA 0x8463 +0xE6BB 0x8469 +0xE6BC 0x846D +0xE6BD 0x8446 +0xE6BE 0x865E +0xE6BF 0x865C +0xE6C0 0x865F +0xE6C1 0x86F9 +0xE6C2 0x8713 +0xE6C3 0x8708 +0xE6C4 0x8707 +0xE6C5 0x8700 +0xE6C6 0x86FE +0xE6C7 0x86FB +0xE6C8 0x8702 +0xE6C9 0x8703 +0xE6CA 0x8706 +0xE6CB 0x870A +0xE6CC 0x8859 +0xE6CD 0x88DF +0xE6CE 0x88D4 +0xE6CF 0x88D9 +0xE6D0 0x88DC +0xE6D1 0x88D8 +0xE6D2 0x88DD +0xE6D3 0x88E1 +0xE6D4 0x88CA +0xE6D5 0x88D5 +0xE6D6 0x88D2 +0xE6D7 0x899C +0xE6D8 0x89E3 +0xE6D9 0x8A6B +0xE6DA 0x8A72 +0xE6DB 0x8A73 +0xE6DC 0x8A66 +0xE6DD 0x8A69 +0xE6DE 0x8A70 +0xE6DF 0x8A87 +0xE6E0 0x8A7C +0xE6E1 0x8A63 +0xE6E2 0x8AA0 +0xE6E3 0x8A71 +0xE6E4 0x8A85 +0xE6E5 0x8A6D +0xE6E6 0x8A62 +0xE6E7 0x8A6E +0xE6E8 0x8A6C +0xE6E9 0x8A79 +0xE6EA 0x8A7B +0xE6EB 0x8A3E +0xE6EC 0x8A68 +0xE6ED 0x8C62 +0xE6EE 0x8C8A +0xE6EF 0x8C89 +0xE6F0 0x8CCA +0xE6F1 0x8CC7 +0xE6F2 0x8CC8 +0xE6F3 0x8CC4 +0xE6F4 0x8CB2 +0xE6F5 0x8CC3 +0xE6F6 0x8CC2 +0xE6F7 0x8CC5 +0xE6F8 0x8DE1 +0xE6F9 0x8DDF +0xE6FA 0x8DE8 +0xE6FB 0x8DEF +0xE6FC 0x8DF3 +0xE6FD 0x8DFA +0xE6FE 0x8DEA +0xE721 0x89B6 +0xE722 0x89F6 +0xE723 0x8B50 +0xE724 0x8B48 +0xE725 0x8B4A +0xE726 0x8B40 +0xE727 0x8B53 +0xE728 0x8B56 +0xE729 0x8B54 +0xE72A 0x8B4B +0xE72B 0x8B55 +0xE72C 0x8B51 +0xE72D 0x8B42 +0xE72E 0x8B52 +0xE72F 0x8B57 +0xE730 0x8C43 +0xE731 0x8C77 +0xE732 0x8C76 +0xE733 0x8C9A +0xE734 0x8D06 +0xE735 0x8D07 +0xE736 0x8D09 +0xE737 0x8DAC +0xE738 0x8DAA +0xE739 0x8DAD +0xE73A 0x8DAB +0xE73B 0x8E6D +0xE73C 0x8E78 +0xE73D 0x8E73 +0xE73E 0x8E6A +0xE73F 0x8E6F +0xE740 0x8E7B +0xE741 0x8EC2 +0xE742 0x8F52 +0xE743 0x8F51 +0xE744 0x8F4F +0xE745 0x8F50 +0xE746 0x8F53 +0xE747 0x8FB4 +0xE748 0x9140 +0xE749 0x913F +0xE74A 0x91B0 +0xE74B 0x91AD +0xE74C 0x93DE +0xE74D 0x93C7 +0xE74E 0x93CF +0xE74F 0x93C2 +0xE750 0x93DA +0xE751 0x93D0 +0xE752 0x93F9 +0xE753 0x93EC +0xE754 0x93CC +0xE755 0x93D9 +0xE756 0x93A9 +0xE757 0x93E6 +0xE758 0x93CA +0xE759 0x93D4 +0xE75A 0x93EE +0xE75B 0x93E3 +0xE75C 0x93D5 +0xE75D 0x93C4 +0xE75E 0x93CE +0xE75F 0x93C0 +0xE760 0x93D2 +0xE761 0x93A5 +0xE762 0x93E7 +0xE763 0x957D +0xE764 0x95DA +0xE765 0x95DB +0xE766 0x96E1 +0xE767 0x9729 +0xE768 0x972B +0xE769 0x972C +0xE76A 0x9728 +0xE76B 0x9726 +0xE76C 0x97B3 +0xE76D 0x97B7 +0xE76E 0x97B6 +0xE76F 0x97DD +0xE770 0x97DE +0xE771 0x97DF +0xE772 0x985C +0xE773 0x9859 +0xE774 0x985D +0xE775 0x9857 +0xE776 0x98BF +0xE777 0x98BD +0xE778 0x98BB +0xE779 0x98BE +0xE77A 0x9948 +0xE77B 0x9947 +0xE77C 0x9943 +0xE77D 0x99A6 +0xE77E 0x99A7 +0xE7A1 0x8DE4 +0xE7A2 0x8DE6 +0xE7A3 0x8EB2 +0xE7A4 0x8F03 +0xE7A5 0x8F09 +0xE7A6 0x8EFE +0xE7A7 0x8F0A +0xE7A8 0x8F9F +0xE7A9 0x8FB2 +0xE7AA 0x904B +0xE7AB 0x904A +0xE7AC 0x9053 +0xE7AD 0x9042 +0xE7AE 0x9054 +0xE7AF 0x903C +0xE7B0 0x9055 +0xE7B1 0x9050 +0xE7B2 0x9047 +0xE7B3 0x904F +0xE7B4 0x904E +0xE7B5 0x904D +0xE7B6 0x9051 +0xE7B7 0x903E +0xE7B8 0x9041 +0xE7B9 0x9112 +0xE7BA 0x9117 +0xE7BB 0x916C +0xE7BC 0x916A +0xE7BD 0x9169 +0xE7BE 0x91C9 +0xE7BF 0x9237 +0xE7C0 0x9257 +0xE7C1 0x9238 +0xE7C2 0x923D +0xE7C3 0x9240 +0xE7C4 0x923E +0xE7C5 0x925B +0xE7C6 0x924B +0xE7C7 0x9264 +0xE7C8 0x9251 +0xE7C9 0x9234 +0xE7CA 0x9249 +0xE7CB 0x924D +0xE7CC 0x9245 +0xE7CD 0x9239 +0xE7CE 0x923F +0xE7CF 0x925A +0xE7D0 0x9598 +0xE7D1 0x9698 +0xE7D2 0x9694 +0xE7D3 0x9695 +0xE7D4 0x96CD +0xE7D5 0x96CB +0xE7D6 0x96C9 +0xE7D7 0x96CA +0xE7D8 0x96F7 +0xE7D9 0x96FB +0xE7DA 0x96F9 +0xE7DB 0x96F6 +0xE7DC 0x9756 +0xE7DD 0x9774 +0xE7DE 0x9776 +0xE7DF 0x9810 +0xE7E0 0x9811 +0xE7E1 0x9813 +0xE7E2 0x980A +0xE7E3 0x9812 +0xE7E4 0x980C +0xE7E5 0x98FC +0xE7E6 0x98F4 +0xE7E7 0x98FD +0xE7E8 0x98FE +0xE7E9 0x99B3 +0xE7EA 0x99B1 +0xE7EB 0x99B4 +0xE7EC 0x9AE1 +0xE7ED 0x9CE9 +0xE7EE 0x9E82 +0xE7EF 0x9F0E +0xE7F0 0x9F13 +0xE7F1 0x9F20 +0xE7F2 0x50E7 +0xE7F3 0x50EE +0xE7F4 0x50E5 +0xE7F5 0x50D6 +0xE7F6 0x50ED +0xE7F7 0x50DA +0xE7F8 0x50D5 +0xE7F9 0x50CF +0xE7FA 0x50D1 +0xE7FB 0x50F1 +0xE7FC 0x50CE +0xE7FD 0x50E9 +0xE7FE 0x5162 +0xE821 0x9A1A +0xE822 0x9A15 +0xE823 0x9A25 +0xE824 0x9A1D +0xE825 0x9A24 +0xE826 0x9A1B +0xE827 0x9A22 +0xE828 0x9A20 +0xE829 0x9A27 +0xE82A 0x9A23 +0xE82B 0x9A1E +0xE82C 0x9A1C +0xE82D 0x9A14 +0xE82E 0x9AC2 +0xE82F 0x9B0B +0xE830 0x9B0A +0xE831 0x9B0E +0xE832 0x9B0C +0xE833 0x9B37 +0xE834 0x9BEA +0xE835 0x9BEB +0xE836 0x9BE0 +0xE837 0x9BDE +0xE838 0x9BE4 +0xE839 0x9BE6 +0xE83A 0x9BE2 +0xE83B 0x9BF0 +0xE83C 0x9BD4 +0xE83D 0x9BD7 +0xE83E 0x9BEC +0xE83F 0x9BDC +0xE840 0x9BD9 +0xE841 0x9BE5 +0xE842 0x9BD5 +0xE843 0x9BE1 +0xE844 0x9BDA +0xE845 0x9D77 +0xE846 0x9D81 +0xE847 0x9D8A +0xE848 0x9D84 +0xE849 0x9D88 +0xE84A 0x9D71 +0xE84B 0x9D80 +0xE84C 0x9D78 +0xE84D 0x9D86 +0xE84E 0x9D8B +0xE84F 0x9D8C +0xE850 0x9D7D +0xE851 0x9D6B +0xE852 0x9D74 +0xE853 0x9D75 +0xE854 0x9D70 +0xE855 0x9D69 +0xE856 0x9D85 +0xE857 0x9D73 +0xE858 0x9D7B +0xE859 0x9D82 +0xE85A 0x9D6F +0xE85B 0x9D79 +0xE85C 0x9D7F +0xE85D 0x9D87 +0xE85E 0x9D68 +0xE85F 0x9E94 +0xE860 0x9E91 +0xE861 0x9EC0 +0xE862 0x9EFC +0xE863 0x9F2D +0xE864 0x9F40 +0xE865 0x9F41 +0xE866 0x9F4D +0xE867 0x9F56 +0xE868 0x9F57 +0xE869 0x9F58 +0xE86A 0x5337 +0xE86B 0x56B2 +0xE86C 0x56B5 +0xE86D 0x56B3 +0xE86E 0x58E3 +0xE86F 0x5B45 +0xE870 0x5DC6 +0xE871 0x5DC7 +0xE872 0x5EEE +0xE873 0x5EEF +0xE874 0x5FC0 +0xE875 0x5FC1 +0xE876 0x61F9 +0xE877 0x6517 +0xE878 0x6516 +0xE879 0x6515 +0xE87A 0x6513 +0xE87B 0x65DF +0xE87C 0x66E8 +0xE87D 0x66E3 +0xE87E 0x66E4 +0xE8A1 0x51F3 +0xE8A2 0x5283 +0xE8A3 0x5282 +0xE8A4 0x5331 +0xE8A5 0x53AD +0xE8A6 0x55FE +0xE8A7 0x5600 +0xE8A8 0x561B +0xE8A9 0x5617 +0xE8AA 0x55FD +0xE8AB 0x5614 +0xE8AC 0x5606 +0xE8AD 0x5609 +0xE8AE 0x560D +0xE8AF 0x560E +0xE8B0 0x55F7 +0xE8B1 0x5616 +0xE8B2 0x561F +0xE8B3 0x5608 +0xE8B4 0x5610 +0xE8B5 0x55F6 +0xE8B6 0x5718 +0xE8B7 0x5716 +0xE8B8 0x5875 +0xE8B9 0x587E +0xE8BA 0x5883 +0xE8BB 0x5893 +0xE8BC 0x588A +0xE8BD 0x5879 +0xE8BE 0x5885 +0xE8BF 0x587D +0xE8C0 0x58FD +0xE8C1 0x5925 +0xE8C2 0x5922 +0xE8C3 0x5924 +0xE8C4 0x596A +0xE8C5 0x5969 +0xE8C6 0x5AE1 +0xE8C7 0x5AE6 +0xE8C8 0x5AE9 +0xE8C9 0x5AD7 +0xE8CA 0x5AD6 +0xE8CB 0x5AD8 +0xE8CC 0x5AE3 +0xE8CD 0x5B75 +0xE8CE 0x5BDE +0xE8CF 0x5BE7 +0xE8D0 0x5BE1 +0xE8D1 0x5BE5 +0xE8D2 0x5BE6 +0xE8D3 0x5BE8 +0xE8D4 0x5BE2 +0xE8D5 0x5BE4 +0xE8D6 0x5BDF +0xE8D7 0x5C0D +0xE8D8 0x5C62 +0xE8D9 0x5D84 +0xE8DA 0x5D87 +0xE8DB 0x5E5B +0xE8DC 0x5E63 +0xE8DD 0x5E55 +0xE8DE 0x5E57 +0xE8DF 0x5E54 +0xE8E0 0x5ED3 +0xE8E1 0x5ED6 +0xE8E2 0x5F0A +0xE8E3 0x5F46 +0xE8E4 0x5F70 +0xE8E5 0x5FB9 +0xE8E6 0x6147 +0xE8E7 0x613F +0xE8E8 0x614B +0xE8E9 0x6177 +0xE8EA 0x6162 +0xE8EB 0x6163 +0xE8EC 0x615F +0xE8ED 0x615A +0xE8EE 0x6158 +0xE8EF 0x6175 +0xE8F0 0x622A +0xE8F1 0x6487 +0xE8F2 0x6458 +0xE8F3 0x6454 +0xE8F4 0x64A4 +0xE8F5 0x6478 +0xE8F6 0x645F +0xE8F7 0x647A +0xE8F8 0x6451 +0xE8F9 0x6467 +0xE8FA 0x6434 +0xE8FB 0x646D +0xE8FC 0x647B +0xE8FD 0x6572 +0xE8FE 0x65A1 +0xE921 0x6AF3 +0xE922 0x6AF0 +0xE923 0x6AEA +0xE924 0x6AE8 +0xE925 0x6AF9 +0xE926 0x6AF1 +0xE927 0x6AEE +0xE928 0x6AEF +0xE929 0x703C +0xE92A 0x7035 +0xE92B 0x702F +0xE92C 0x7037 +0xE92D 0x7034 +0xE92E 0x7031 +0xE92F 0x7042 +0xE930 0x7038 +0xE931 0x703F +0xE932 0x703A +0xE933 0x7039 +0xE934 0x702A +0xE935 0x7040 +0xE936 0x703B +0xE937 0x7033 +0xE938 0x7041 +0xE939 0x7213 +0xE93A 0x7214 +0xE93B 0x72A8 +0xE93C 0x737D +0xE93D 0x737C +0xE93E 0x74BA +0xE93F 0x76AB +0xE940 0x76AA +0xE941 0x76BE +0xE942 0x76ED +0xE943 0x77CC +0xE944 0x77CE +0xE945 0x77CF +0xE946 0x77CD +0xE947 0x77F2 +0xE948 0x7925 +0xE949 0x7923 +0xE94A 0x7927 +0xE94B 0x7928 +0xE94C 0x7924 +0xE94D 0x7929 +0xE94E 0x79B2 +0xE94F 0x7A6E +0xE950 0x7A6C +0xE951 0x7A6D +0xE952 0x7AF7 +0xE953 0x7C49 +0xE954 0x7C48 +0xE955 0x7C4A +0xE956 0x7C47 +0xE957 0x7C45 +0xE958 0x7CEE +0xE959 0x7E7B +0xE95A 0x7E7E +0xE95B 0x7E81 +0xE95C 0x7E80 +0xE95D 0x7FBA +0xE95E 0x7FFF +0xE95F 0x8079 +0xE960 0x81DB +0xE961 0x81D9 +0xE962 0x8268 +0xE963 0x8269 +0xE964 0x8622 +0xE965 0x85FF +0xE966 0x8601 +0xE967 0x85FE +0xE968 0x861B +0xE969 0x8600 +0xE96A 0x85F6 +0xE96B 0x8604 +0xE96C 0x8609 +0xE96D 0x8605 +0xE96E 0x860C +0xE96F 0x85FD +0xE970 0x8819 +0xE971 0x8810 +0xE972 0x8811 +0xE973 0x8817 +0xE974 0x8813 +0xE975 0x8816 +0xE976 0x8963 +0xE977 0x8966 +0xE978 0x89B9 +0xE979 0x89F7 +0xE97A 0x8B60 +0xE97B 0x8B6A +0xE97C 0x8B5D +0xE97D 0x8B68 +0xE97E 0x8B63 +0xE9A1 0x65D7 +0xE9A2 0x65D6 +0xE9A3 0x66A2 +0xE9A4 0x66A8 +0xE9A5 0x669D +0xE9A6 0x699C +0xE9A7 0x69A8 +0xE9A8 0x6995 +0xE9A9 0x69C1 +0xE9AA 0x69AE +0xE9AB 0x69D3 +0xE9AC 0x69CB +0xE9AD 0x699B +0xE9AE 0x69B7 +0xE9AF 0x69BB +0xE9B0 0x69AB +0xE9B1 0x69B4 +0xE9B2 0x69D0 +0xE9B3 0x69CD +0xE9B4 0x69AD +0xE9B5 0x69CC +0xE9B6 0x69A6 +0xE9B7 0x69C3 +0xE9B8 0x69A3 +0xE9B9 0x6B49 +0xE9BA 0x6B4C +0xE9BB 0x6C33 +0xE9BC 0x6F33 +0xE9BD 0x6F14 +0xE9BE 0x6EFE +0xE9BF 0x6F13 +0xE9C0 0x6EF4 +0xE9C1 0x6F29 +0xE9C2 0x6F3E +0xE9C3 0x6F20 +0xE9C4 0x6F2C +0xE9C5 0x6F0F +0xE9C6 0x6F02 +0xE9C7 0x6F22 +0xE9C8 0x6EFF +0xE9C9 0x6EEF +0xE9CA 0x6F06 +0xE9CB 0x6F31 +0xE9CC 0x6F38 +0xE9CD 0x6F32 +0xE9CE 0x6F23 +0xE9CF 0x6F15 +0xE9D0 0x6F2B +0xE9D1 0x6F2F +0xE9D2 0x6F88 +0xE9D3 0x6F2A +0xE9D4 0x6EEC +0xE9D5 0x6F01 +0xE9D6 0x6EF2 +0xE9D7 0x6ECC +0xE9D8 0x6EF7 +0xE9D9 0x7194 +0xE9DA 0x7199 +0xE9DB 0x717D +0xE9DC 0x718A +0xE9DD 0x7184 +0xE9DE 0x7192 +0xE9DF 0x723E +0xE9E0 0x7292 +0xE9E1 0x7296 +0xE9E2 0x7344 +0xE9E3 0x7350 +0xE9E4 0x7464 +0xE9E5 0x7463 +0xE9E6 0x746A +0xE9E7 0x7470 +0xE9E8 0x746D +0xE9E9 0x7504 +0xE9EA 0x7591 +0xE9EB 0x7627 +0xE9EC 0x760D +0xE9ED 0x760B +0xE9EE 0x7609 +0xE9EF 0x7613 +0xE9F0 0x76E1 +0xE9F1 0x76E3 +0xE9F2 0x7784 +0xE9F3 0x777D +0xE9F4 0x777F +0xE9F5 0x7761 +0xE9F6 0x78C1 +0xE9F7 0x789F +0xE9F8 0x78A7 +0xE9F9 0x78B3 +0xE9FA 0x78A9 +0xE9FB 0x78A3 +0xE9FC 0x798E +0xE9FD 0x798F +0xE9FE 0x798D +0xEA21 0x8B65 +0xEA22 0x8B67 +0xEA23 0x8B6D +0xEA24 0x8DAE +0xEA25 0x8E86 +0xEA26 0x8E88 +0xEA27 0x8E84 +0xEA28 0x8F59 +0xEA29 0x8F56 +0xEA2A 0x8F57 +0xEA2B 0x8F55 +0xEA2C 0x8F58 +0xEA2D 0x8F5A +0xEA2E 0x908D +0xEA2F 0x9143 +0xEA30 0x9141 +0xEA31 0x91B7 +0xEA32 0x91B5 +0xEA33 0x91B2 +0xEA34 0x91B3 +0xEA35 0x940B +0xEA36 0x9413 +0xEA37 0x93FB +0xEA38 0x9420 +0xEA39 0x940F +0xEA3A 0x9414 +0xEA3B 0x93FE +0xEA3C 0x9415 +0xEA3D 0x9410 +0xEA3E 0x9428 +0xEA3F 0x9419 +0xEA40 0x940D +0xEA41 0x93F5 +0xEA42 0x9400 +0xEA43 0x93F7 +0xEA44 0x9407 +0xEA45 0x940E +0xEA46 0x9416 +0xEA47 0x9412 +0xEA48 0x93FA +0xEA49 0x9409 +0xEA4A 0x93F8 +0xEA4B 0x943C +0xEA4C 0x940A +0xEA4D 0x93FF +0xEA4E 0x93FC +0xEA4F 0x940C +0xEA50 0x93F6 +0xEA51 0x9411 +0xEA52 0x9406 +0xEA53 0x95DE +0xEA54 0x95E0 +0xEA55 0x95DF +0xEA56 0x972E +0xEA57 0x972F +0xEA58 0x97B9 +0xEA59 0x97BB +0xEA5A 0x97FD +0xEA5B 0x97FE +0xEA5C 0x9860 +0xEA5D 0x9862 +0xEA5E 0x9863 +0xEA5F 0x985F +0xEA60 0x98C1 +0xEA61 0x98C2 +0xEA62 0x9950 +0xEA63 0x994E +0xEA64 0x9959 +0xEA65 0x994C +0xEA66 0x994B +0xEA67 0x9953 +0xEA68 0x9A32 +0xEA69 0x9A34 +0xEA6A 0x9A31 +0xEA6B 0x9A2C +0xEA6C 0x9A2A +0xEA6D 0x9A36 +0xEA6E 0x9A29 +0xEA6F 0x9A2E +0xEA70 0x9A38 +0xEA71 0x9A2D +0xEA72 0x9AC7 +0xEA73 0x9ACA +0xEA74 0x9AC6 +0xEA75 0x9B10 +0xEA76 0x9B12 +0xEA77 0x9B11 +0xEA78 0x9C0B +0xEA79 0x9C08 +0xEA7A 0x9BF7 +0xEA7B 0x9C05 +0xEA7C 0x9C12 +0xEA7D 0x9BF8 +0xEA7E 0x9C40 +0xEAA1 0x7A2E +0xEAA2 0x7A31 +0xEAA3 0x7AAA +0xEAA4 0x7AA9 +0xEAA5 0x7AED +0xEAA6 0x7AEF +0xEAA7 0x7BA1 +0xEAA8 0x7B95 +0xEAA9 0x7B8B +0xEAAA 0x7B75 +0xEAAB 0x7B97 +0xEAAC 0x7B9D +0xEAAD 0x7B94 +0xEAAE 0x7B8F +0xEAAF 0x7BB8 +0xEAB0 0x7B87 +0xEAB1 0x7B84 +0xEAB2 0x7CB9 +0xEAB3 0x7CBD +0xEAB4 0x7CBE +0xEAB5 0x7DBB +0xEAB6 0x7DB0 +0xEAB7 0x7D9C +0xEAB8 0x7DBD +0xEAB9 0x7DBE +0xEABA 0x7DA0 +0xEABB 0x7DCA +0xEABC 0x7DB4 +0xEABD 0x7DB2 +0xEABE 0x7DB1 +0xEABF 0x7DBA +0xEAC0 0x7DA2 +0xEAC1 0x7DBF +0xEAC2 0x7DB5 +0xEAC3 0x7DB8 +0xEAC4 0x7DAD +0xEAC5 0x7DD2 +0xEAC6 0x7DC7 +0xEAC7 0x7DAC +0xEAC8 0x7F70 +0xEAC9 0x7FE0 +0xEACA 0x7FE1 +0xEACB 0x7FDF +0xEACC 0x805E +0xEACD 0x805A +0xEACE 0x8087 +0xEACF 0x8150 +0xEAD0 0x8180 +0xEAD1 0x818F +0xEAD2 0x8188 +0xEAD3 0x818A +0xEAD4 0x817F +0xEAD5 0x8182 +0xEAD6 0x81E7 +0xEAD7 0x81FA +0xEAD8 0x8207 +0xEAD9 0x8214 +0xEADA 0x821E +0xEADB 0x824B +0xEADC 0x84C9 +0xEADD 0x84BF +0xEADE 0x84C6 +0xEADF 0x84C4 +0xEAE0 0x8499 +0xEAE1 0x849E +0xEAE2 0x84B2 +0xEAE3 0x849C +0xEAE4 0x84CB +0xEAE5 0x84B8 +0xEAE6 0x84C0 +0xEAE7 0x84D3 +0xEAE8 0x8490 +0xEAE9 0x84BC +0xEAEA 0x84D1 +0xEAEB 0x84CA +0xEAEC 0x873F +0xEAED 0x871C +0xEAEE 0x873B +0xEAEF 0x8722 +0xEAF0 0x8725 +0xEAF1 0x8734 +0xEAF2 0x8718 +0xEAF3 0x8755 +0xEAF4 0x8737 +0xEAF5 0x8729 +0xEAF6 0x88F3 +0xEAF7 0x8902 +0xEAF8 0x88F4 +0xEAF9 0x88F9 +0xEAFA 0x88F8 +0xEAFB 0x88FD +0xEAFC 0x88E8 +0xEAFD 0x891A +0xEAFE 0x88EF +0xEB21 0x9C07 +0xEB22 0x9C0E +0xEB23 0x9C06 +0xEB24 0x9C17 +0xEB25 0x9C14 +0xEB26 0x9C09 +0xEB27 0x9D9F +0xEB28 0x9D99 +0xEB29 0x9DA4 +0xEB2A 0x9D9D +0xEB2B 0x9D92 +0xEB2C 0x9D98 +0xEB2D 0x9D90 +0xEB2E 0x9D9B +0xEB2F 0x9DA0 +0xEB30 0x9D94 +0xEB31 0x9D9C +0xEB32 0x9DAA +0xEB33 0x9D97 +0xEB34 0x9DA1 +0xEB35 0x9D9A +0xEB36 0x9DA2 +0xEB37 0x9DA8 +0xEB38 0x9D9E +0xEB39 0x9DA3 +0xEB3A 0x9DBF +0xEB3B 0x9DA9 +0xEB3C 0x9D96 +0xEB3D 0x9DA6 +0xEB3E 0x9DA7 +0xEB3F 0x9E99 +0xEB40 0x9E9B +0xEB41 0x9E9A +0xEB42 0x9EE5 +0xEB43 0x9EE4 +0xEB44 0x9EE7 +0xEB45 0x9EE6 +0xEB46 0x9F30 +0xEB47 0x9F2E +0xEB48 0x9F5B +0xEB49 0x9F60 +0xEB4A 0x9F5E +0xEB4B 0x9F5D +0xEB4C 0x9F59 +0xEB4D 0x9F91 +0xEB4E 0x513A +0xEB4F 0x5139 +0xEB50 0x5298 +0xEB51 0x5297 +0xEB52 0x56C3 +0xEB53 0x56BD +0xEB54 0x56BE +0xEB55 0x5B48 +0xEB56 0x5B47 +0xEB57 0x5DCB +0xEB58 0x5DCF +0xEB59 0x5EF1 +0xEB5A 0x61FD +0xEB5B 0x651B +0xEB5C 0x6B02 +0xEB5D 0x6AFC +0xEB5E 0x6B03 +0xEB5F 0x6AF8 +0xEB60 0x6B00 +0xEB61 0x7043 +0xEB62 0x7044 +0xEB63 0x704A +0xEB64 0x7048 +0xEB65 0x7049 +0xEB66 0x7045 +0xEB67 0x7046 +0xEB68 0x721D +0xEB69 0x721A +0xEB6A 0x7219 +0xEB6B 0x737E +0xEB6C 0x7517 +0xEB6D 0x766A +0xEB6E 0x77D0 +0xEB6F 0x792D +0xEB70 0x7931 +0xEB71 0x792F +0xEB72 0x7C54 +0xEB73 0x7C53 +0xEB74 0x7CF2 +0xEB75 0x7E8A +0xEB76 0x7E87 +0xEB77 0x7E88 +0xEB78 0x7E8B +0xEB79 0x7E86 +0xEB7A 0x7E8D +0xEB7B 0x7F4D +0xEB7C 0x7FBB +0xEB7D 0x8030 +0xEB7E 0x81DD +0xEBA1 0x8AA6 +0xEBA2 0x8A8C +0xEBA3 0x8A9E +0xEBA4 0x8AA3 +0xEBA5 0x8A8D +0xEBA6 0x8AA1 +0xEBA7 0x8A93 +0xEBA8 0x8AA4 +0xEBA9 0x8AAA +0xEBAA 0x8AA5 +0xEBAB 0x8AA8 +0xEBAC 0x8A98 +0xEBAD 0x8A91 +0xEBAE 0x8A9A +0xEBAF 0x8AA7 +0xEBB0 0x8C6A +0xEBB1 0x8C8D +0xEBB2 0x8C8C +0xEBB3 0x8CD3 +0xEBB4 0x8CD1 +0xEBB5 0x8CD2 +0xEBB6 0x8D6B +0xEBB7 0x8D99 +0xEBB8 0x8D95 +0xEBB9 0x8DFC +0xEBBA 0x8F14 +0xEBBB 0x8F12 +0xEBBC 0x8F15 +0xEBBD 0x8F13 +0xEBBE 0x8FA3 +0xEBBF 0x9060 +0xEBC0 0x9058 +0xEBC1 0x905C +0xEBC2 0x9063 +0xEBC3 0x9059 +0xEBC4 0x905E +0xEBC5 0x9062 +0xEBC6 0x905D +0xEBC7 0x905B +0xEBC8 0x9119 +0xEBC9 0x9118 +0xEBCA 0x911E +0xEBCB 0x9175 +0xEBCC 0x9178 +0xEBCD 0x9177 +0xEBCE 0x9174 +0xEBCF 0x9278 +0xEBD0 0x92AC +0xEBD1 0x9280 +0xEBD2 0x9285 +0xEBD3 0x9298 +0xEBD4 0x9296 +0xEBD5 0x927B +0xEBD6 0x9293 +0xEBD7 0x929C +0xEBD8 0x92A8 +0xEBD9 0x927C +0xEBDA 0x9291 +0xEBDB 0x95A1 +0xEBDC 0x95A8 +0xEBDD 0x95A9 +0xEBDE 0x95A3 +0xEBDF 0x95A5 +0xEBE0 0x95A4 +0xEBE1 0x9699 +0xEBE2 0x969C +0xEBE3 0x969B +0xEBE4 0x96CC +0xEBE5 0x96D2 +0xEBE6 0x9700 +0xEBE7 0x977C +0xEBE8 0x9785 +0xEBE9 0x97F6 +0xEBEA 0x9817 +0xEBEB 0x9818 +0xEBEC 0x98AF +0xEBED 0x98B1 +0xEBEE 0x9903 +0xEBEF 0x9905 +0xEBF0 0x990C +0xEBF1 0x9909 +0xEBF2 0x99C1 +0xEBF3 0x9AAF +0xEBF4 0x9AB0 +0xEBF5 0x9AE6 +0xEBF6 0x9B41 +0xEBF7 0x9B42 +0xEBF8 0x9CF4 +0xEBF9 0x9CF6 +0xEBFA 0x9CF3 +0xEBFB 0x9EBC +0xEBFC 0x9F3B +0xEBFD 0x9F4A +0xEBFE 0x5104 +0xEC21 0x8618 +0xEC22 0x862A +0xEC23 0x8626 +0xEC24 0x861F +0xEC25 0x8623 +0xEC26 0x861C +0xEC27 0x8619 +0xEC28 0x8627 +0xEC29 0x862E +0xEC2A 0x8621 +0xEC2B 0x8620 +0xEC2C 0x8629 +0xEC2D 0x861E +0xEC2E 0x8625 +0xEC2F 0x8829 +0xEC30 0x881D +0xEC31 0x881B +0xEC32 0x8820 +0xEC33 0x8824 +0xEC34 0x881C +0xEC35 0x882B +0xEC36 0x884A +0xEC37 0x896D +0xEC38 0x8969 +0xEC39 0x896E +0xEC3A 0x896B +0xEC3B 0x89FA +0xEC3C 0x8B79 +0xEC3D 0x8B78 +0xEC3E 0x8B45 +0xEC3F 0x8B7A +0xEC40 0x8B7B +0xEC41 0x8D10 +0xEC42 0x8D14 +0xEC43 0x8DAF +0xEC44 0x8E8E +0xEC45 0x8E8C +0xEC46 0x8F5E +0xEC47 0x8F5B +0xEC48 0x8F5D +0xEC49 0x9146 +0xEC4A 0x9144 +0xEC4B 0x9145 +0xEC4C 0x91B9 +0xEC4D 0x943F +0xEC4E 0x943B +0xEC4F 0x9436 +0xEC50 0x9429 +0xEC51 0x943D +0xEC52 0x9430 +0xEC53 0x9439 +0xEC54 0x942A +0xEC55 0x9437 +0xEC56 0x942C +0xEC57 0x9440 +0xEC58 0x9431 +0xEC59 0x95E5 +0xEC5A 0x95E4 +0xEC5B 0x95E3 +0xEC5C 0x9735 +0xEC5D 0x973A +0xEC5E 0x97BF +0xEC5F 0x97E1 +0xEC60 0x9864 +0xEC61 0x98C9 +0xEC62 0x98C6 +0xEC63 0x98C0 +0xEC64 0x9958 +0xEC65 0x9956 +0xEC66 0x9A39 +0xEC67 0x9A3D +0xEC68 0x9A46 +0xEC69 0x9A44 +0xEC6A 0x9A42 +0xEC6B 0x9A41 +0xEC6C 0x9A3A +0xEC6D 0x9A3F +0xEC6E 0x9ACD +0xEC6F 0x9B15 +0xEC70 0x9B17 +0xEC71 0x9B18 +0xEC72 0x9B16 +0xEC73 0x9B3A +0xEC74 0x9B52 +0xEC75 0x9C2B +0xEC76 0x9C1D +0xEC77 0x9C1C +0xEC78 0x9C2C +0xEC79 0x9C23 +0xEC7A 0x9C28 +0xEC7B 0x9C29 +0xEC7C 0x9C24 +0xEC7D 0x9C21 +0xEC7E 0x9DB7 +0xECA1 0x5100 +0xECA2 0x50FB +0xECA3 0x50F5 +0xECA4 0x50F9 +0xECA5 0x5102 +0xECA6 0x5108 +0xECA7 0x5109 +0xECA8 0x5105 +0xECA9 0x51DC +0xECAA 0x5287 +0xECAB 0x5288 +0xECAC 0x5289 +0xECAD 0x528D +0xECAE 0x528A +0xECAF 0x52F0 +0xECB0 0x53B2 +0xECB1 0x562E +0xECB2 0x563B +0xECB3 0x5639 +0xECB4 0x5632 +0xECB5 0x563F +0xECB6 0x5634 +0xECB7 0x5629 +0xECB8 0x5653 +0xECB9 0x564E +0xECBA 0x5657 +0xECBB 0x5674 +0xECBC 0x5636 +0xECBD 0x562F +0xECBE 0x5630 +0xECBF 0x5880 +0xECC0 0x589F +0xECC1 0x589E +0xECC2 0x58B3 +0xECC3 0x589C +0xECC4 0x58AE +0xECC5 0x58A9 +0xECC6 0x58A6 +0xECC7 0x596D +0xECC8 0x5B09 +0xECC9 0x5AFB +0xECCA 0x5B0B +0xECCB 0x5AF5 +0xECCC 0x5B0C +0xECCD 0x5B08 +0xECCE 0x5BEE +0xECCF 0x5BEC +0xECD0 0x5BE9 +0xECD1 0x5BEB +0xECD2 0x5C64 +0xECD3 0x5C65 +0xECD4 0x5D9D +0xECD5 0x5D94 +0xECD6 0x5E62 +0xECD7 0x5E5F +0xECD8 0x5E61 +0xECD9 0x5EE2 +0xECDA 0x5EDA +0xECDB 0x5EDF +0xECDC 0x5EDD +0xECDD 0x5EE3 +0xECDE 0x5EE0 +0xECDF 0x5F48 +0xECE0 0x5F71 +0xECE1 0x5FB7 +0xECE2 0x5FB5 +0xECE3 0x6176 +0xECE4 0x6167 +0xECE5 0x616E +0xECE6 0x615D +0xECE7 0x6155 +0xECE8 0x6182 +0xECE9 0x617C +0xECEA 0x6170 +0xECEB 0x616B +0xECEC 0x617E +0xECED 0x61A7 +0xECEE 0x6190 +0xECEF 0x61AB +0xECF0 0x618E +0xECF1 0x61AC +0xECF2 0x619A +0xECF3 0x61A4 +0xECF4 0x6194 +0xECF5 0x61AE +0xECF6 0x622E +0xECF7 0x6469 +0xECF8 0x646F +0xECF9 0x6479 +0xECFA 0x649E +0xECFB 0x64B2 +0xECFC 0x6488 +0xECFD 0x6490 +0xECFE 0x64B0 +0xED21 0x9DB6 +0xED22 0x9DBC +0xED23 0x9DC1 +0xED24 0x9DC7 +0xED25 0x9DCA +0xED26 0x9DCF +0xED27 0x9DBE +0xED28 0x9DC5 +0xED29 0x9DC3 +0xED2A 0x9DBB +0xED2B 0x9DB5 +0xED2C 0x9DCE +0xED2D 0x9DB9 +0xED2E 0x9DBA +0xED2F 0x9DAC +0xED30 0x9DC8 +0xED31 0x9DB1 +0xED32 0x9DAD +0xED33 0x9DCC +0xED34 0x9DB3 +0xED35 0x9DCD +0xED36 0x9DB2 +0xED37 0x9E7A +0xED38 0x9E9C +0xED39 0x9EEB +0xED3A 0x9EEE +0xED3B 0x9EED +0xED3C 0x9F1B +0xED3D 0x9F18 +0xED3E 0x9F1A +0xED3F 0x9F31 +0xED40 0x9F4E +0xED41 0x9F65 +0xED42 0x9F64 +0xED43 0x9F92 +0xED44 0x4EB9 +0xED45 0x56C6 +0xED46 0x56C5 +0xED47 0x56CB +0xED48 0x5971 +0xED49 0x5B4B +0xED4A 0x5B4C +0xED4B 0x5DD5 +0xED4C 0x5DD1 +0xED4D 0x5EF2 +0xED4E 0x6521 +0xED4F 0x6520 +0xED50 0x6526 +0xED51 0x6522 +0xED52 0x6B0B +0xED53 0x6B08 +0xED54 0x6B09 +0xED55 0x6C0D +0xED56 0x7055 +0xED57 0x7056 +0xED58 0x7057 +0xED59 0x7052 +0xED5A 0x721E +0xED5B 0x721F +0xED5C 0x72A9 +0xED5D 0x737F +0xED5E 0x74D8 +0xED5F 0x74D5 +0xED60 0x74D9 +0xED61 0x74D7 +0xED62 0x766D +0xED63 0x76AD +0xED64 0x7935 +0xED65 0x79B4 +0xED66 0x7A70 +0xED67 0x7A71 +0xED68 0x7C57 +0xED69 0x7C5C +0xED6A 0x7C59 +0xED6B 0x7C5B +0xED6C 0x7C5A +0xED6D 0x7CF4 +0xED6E 0x7CF1 +0xED6F 0x7E91 +0xED70 0x7F4F +0xED71 0x7F87 +0xED72 0x81DE +0xED73 0x826B +0xED74 0x8634 +0xED75 0x8635 +0xED76 0x8633 +0xED77 0x862C +0xED78 0x8632 +0xED79 0x8636 +0xED7A 0x882C +0xED7B 0x8828 +0xED7C 0x8826 +0xED7D 0x882A +0xED7E 0x8825 +0xEDA1 0x64A5 +0xEDA2 0x6493 +0xEDA3 0x6495 +0xEDA4 0x64A9 +0xEDA5 0x6492 +0xEDA6 0x64AE +0xEDA7 0x64AD +0xEDA8 0x64AB +0xEDA9 0x649A +0xEDAA 0x64AC +0xEDAB 0x6499 +0xEDAC 0x64A2 +0xEDAD 0x64B3 +0xEDAE 0x6575 +0xEDAF 0x6577 +0xEDB0 0x6578 +0xEDB1 0x66AE +0xEDB2 0x66AB +0xEDB3 0x66B4 +0xEDB4 0x66B1 +0xEDB5 0x6A23 +0xEDB6 0x6A1F +0xEDB7 0x69E8 +0xEDB8 0x6A01 +0xEDB9 0x6A1E +0xEDBA 0x6A19 +0xEDBB 0x69FD +0xEDBC 0x6A21 +0xEDBD 0x6A13 +0xEDBE 0x6A0A +0xEDBF 0x69F3 +0xEDC0 0x6A02 +0xEDC1 0x6A05 +0xEDC2 0x69ED +0xEDC3 0x6A11 +0xEDC4 0x6B50 +0xEDC5 0x6B4E +0xEDC6 0x6BA4 +0xEDC7 0x6BC5 +0xEDC8 0x6BC6 +0xEDC9 0x6F3F +0xEDCA 0x6F7C +0xEDCB 0x6F84 +0xEDCC 0x6F51 +0xEDCD 0x6F66 +0xEDCE 0x6F54 +0xEDCF 0x6F86 +0xEDD0 0x6F6D +0xEDD1 0x6F5B +0xEDD2 0x6F78 +0xEDD3 0x6F6E +0xEDD4 0x6F8E +0xEDD5 0x6F7A +0xEDD6 0x6F70 +0xEDD7 0x6F64 +0xEDD8 0x6F97 +0xEDD9 0x6F58 +0xEDDA 0x6ED5 +0xEDDB 0x6F6F +0xEDDC 0x6F60 +0xEDDD 0x6F5F +0xEDDE 0x719F +0xEDDF 0x71AC +0xEDE0 0x71B1 +0xEDE1 0x71A8 +0xEDE2 0x7256 +0xEDE3 0x729B +0xEDE4 0x734E +0xEDE5 0x7357 +0xEDE6 0x7469 +0xEDE7 0x748B +0xEDE8 0x7483 +0xEDE9 0x747E +0xEDEA 0x7480 +0xEDEB 0x757F +0xEDEC 0x7620 +0xEDED 0x7629 +0xEDEE 0x761F +0xEDEF 0x7624 +0xEDF0 0x7626 +0xEDF1 0x7621 +0xEDF2 0x7622 +0xEDF3 0x769A +0xEDF4 0x76BA +0xEDF5 0x76E4 +0xEDF6 0x778E +0xEDF7 0x7787 +0xEDF8 0x778C +0xEDF9 0x7791 +0xEDFA 0x778B +0xEDFB 0x78CB +0xEDFC 0x78C5 +0xEDFD 0x78BA +0xEDFE 0x78CA +0xEE21 0x8971 +0xEE22 0x89BF +0xEE23 0x89BE +0xEE24 0x89FB +0xEE25 0x8B7E +0xEE26 0x8B84 +0xEE27 0x8B82 +0xEE28 0x8B86 +0xEE29 0x8B85 +0xEE2A 0x8B7F +0xEE2B 0x8D15 +0xEE2C 0x8E95 +0xEE2D 0x8E94 +0xEE2E 0x8E9A +0xEE2F 0x8E92 +0xEE30 0x8E90 +0xEE31 0x8E96 +0xEE32 0x8E97 +0xEE33 0x8F60 +0xEE34 0x8F62 +0xEE35 0x9147 +0xEE36 0x944C +0xEE37 0x9450 +0xEE38 0x944A +0xEE39 0x944B +0xEE3A 0x944F +0xEE3B 0x9447 +0xEE3C 0x9445 +0xEE3D 0x9448 +0xEE3E 0x9449 +0xEE3F 0x9446 +0xEE40 0x973F +0xEE41 0x97E3 +0xEE42 0x986A +0xEE43 0x9869 +0xEE44 0x98CB +0xEE45 0x9954 +0xEE46 0x995B +0xEE47 0x9A4E +0xEE48 0x9A53 +0xEE49 0x9A54 +0xEE4A 0x9A4C +0xEE4B 0x9A4F +0xEE4C 0x9A48 +0xEE4D 0x9A4A +0xEE4E 0x9A49 +0xEE4F 0x9A52 +0xEE50 0x9A50 +0xEE51 0x9AD0 +0xEE52 0x9B19 +0xEE53 0x9B2B +0xEE54 0x9B3B +0xEE55 0x9B56 +0xEE56 0x9B55 +0xEE57 0x9C46 +0xEE58 0x9C48 +0xEE59 0x9C3F +0xEE5A 0x9C44 +0xEE5B 0x9C39 +0xEE5C 0x9C33 +0xEE5D 0x9C41 +0xEE5E 0x9C3C +0xEE5F 0x9C37 +0xEE60 0x9C34 +0xEE61 0x9C32 +0xEE62 0x9C3D +0xEE63 0x9C36 +0xEE64 0x9DDB +0xEE65 0x9DD2 +0xEE66 0x9DDE +0xEE67 0x9DDA +0xEE68 0x9DCB +0xEE69 0x9DD0 +0xEE6A 0x9DDC +0xEE6B 0x9DD1 +0xEE6C 0x9DDF +0xEE6D 0x9DE9 +0xEE6E 0x9DD9 +0xEE6F 0x9DD8 +0xEE70 0x9DD6 +0xEE71 0x9DF5 +0xEE72 0x9DD5 +0xEE73 0x9DDD +0xEE74 0x9EB6 +0xEE75 0x9EF0 +0xEE76 0x9F35 +0xEE77 0x9F33 +0xEE78 0x9F32 +0xEE79 0x9F42 +0xEE7A 0x9F6B +0xEE7B 0x9F95 +0xEE7C 0x9FA2 +0xEE7D 0x513D +0xEE7E 0x5299 +0xEEA1 0x78BE +0xEEA2 0x78D5 +0xEEA3 0x78BC +0xEEA4 0x78D0 +0xEEA5 0x7A3F +0xEEA6 0x7A3C +0xEEA7 0x7A40 +0xEEA8 0x7A3D +0xEEA9 0x7A37 +0xEEAA 0x7A3B +0xEEAB 0x7AAF +0xEEAC 0x7AAE +0xEEAD 0x7BAD +0xEEAE 0x7BB1 +0xEEAF 0x7BC4 +0xEEB0 0x7BB4 +0xEEB1 0x7BC6 +0xEEB2 0x7BC7 +0xEEB3 0x7BC1 +0xEEB4 0x7BA0 +0xEEB5 0x7BCC +0xEEB6 0x7CCA +0xEEB7 0x7DE0 +0xEEB8 0x7DF4 +0xEEB9 0x7DEF +0xEEBA 0x7DFB +0xEEBB 0x7DD8 +0xEEBC 0x7DEC +0xEEBD 0x7DDD +0xEEBE 0x7DE8 +0xEEBF 0x7DE3 +0xEEC0 0x7DDA +0xEEC1 0x7DDE +0xEEC2 0x7DE9 +0xEEC3 0x7D9E +0xEEC4 0x7DD9 +0xEEC5 0x7DF2 +0xEEC6 0x7DF9 +0xEEC7 0x7F75 +0xEEC8 0x7F77 +0xEEC9 0x7FAF +0xEECA 0x7FE9 +0xEECB 0x8026 +0xEECC 0x819B +0xEECD 0x819C +0xEECE 0x819D +0xEECF 0x81A0 +0xEED0 0x819A +0xEED1 0x8198 +0xEED2 0x8517 +0xEED3 0x853D +0xEED4 0x851A +0xEED5 0x84EE +0xEED6 0x852C +0xEED7 0x852D +0xEED8 0x8513 +0xEED9 0x8511 +0xEEDA 0x8523 +0xEEDB 0x8521 +0xEEDC 0x8514 +0xEEDD 0x84EC +0xEEDE 0x8525 +0xEEDF 0x84FF +0xEEE0 0x8506 +0xEEE1 0x8782 +0xEEE2 0x8774 +0xEEE3 0x8776 +0xEEE4 0x8760 +0xEEE5 0x8766 +0xEEE6 0x8778 +0xEEE7 0x8768 +0xEEE8 0x8759 +0xEEE9 0x8757 +0xEEEA 0x874C +0xEEEB 0x8753 +0xEEEC 0x885B +0xEEED 0x885D +0xEEEE 0x8910 +0xEEEF 0x8907 +0xEEF0 0x8912 +0xEEF1 0x8913 +0xEEF2 0x8915 +0xEEF3 0x890A +0xEEF4 0x8ABC +0xEEF5 0x8AD2 +0xEEF6 0x8AC7 +0xEEF7 0x8AC4 +0xEEF8 0x8A95 +0xEEF9 0x8ACB +0xEEFA 0x8AF8 +0xEEFB 0x8AB2 +0xEEFC 0x8AC9 +0xEEFD 0x8AC2 +0xEEFE 0x8ABF +0xEF21 0x58E8 +0xEF22 0x58E7 +0xEF23 0x5972 +0xEF24 0x5B4D +0xEF25 0x5DD8 +0xEF26 0x882F +0xEF27 0x5F4F +0xEF28 0x6201 +0xEF29 0x6203 +0xEF2A 0x6204 +0xEF2B 0x6529 +0xEF2C 0x6525 +0xEF2D 0x6596 +0xEF2E 0x66EB +0xEF2F 0x6B11 +0xEF30 0x6B12 +0xEF31 0x6B0F +0xEF32 0x6BCA +0xEF33 0x705B +0xEF34 0x705A +0xEF35 0x7222 +0xEF36 0x7382 +0xEF37 0x7381 +0xEF38 0x7383 +0xEF39 0x7670 +0xEF3A 0x77D4 +0xEF3B 0x7C67 +0xEF3C 0x7C66 +0xEF3D 0x7E95 +0xEF3E 0x826C +0xEF3F 0x863A +0xEF40 0x8640 +0xEF41 0x8639 +0xEF42 0x863C +0xEF43 0x8631 +0xEF44 0x863B +0xEF45 0x863E +0xEF46 0x8830 +0xEF47 0x8832 +0xEF48 0x882E +0xEF49 0x8833 +0xEF4A 0x8976 +0xEF4B 0x8974 +0xEF4C 0x8973 +0xEF4D 0x89FE +0xEF4E 0x8B8C +0xEF4F 0x8B8E +0xEF50 0x8B8B +0xEF51 0x8B88 +0xEF52 0x8C45 +0xEF53 0x8D19 +0xEF54 0x8E98 +0xEF55 0x8F64 +0xEF56 0x8F63 +0xEF57 0x91BC +0xEF58 0x9462 +0xEF59 0x9455 +0xEF5A 0x945D +0xEF5B 0x9457 +0xEF5C 0x945E +0xEF5D 0x97C4 +0xEF5E 0x97C5 +0xEF5F 0x9800 +0xEF60 0x9A56 +0xEF61 0x9A59 +0xEF62 0x9B1E +0xEF63 0x9B1F +0xEF64 0x9B20 +0xEF65 0x9C52 +0xEF66 0x9C58 +0xEF67 0x9C50 +0xEF68 0x9C4A +0xEF69 0x9C4D +0xEF6A 0x9C4B +0xEF6B 0x9C55 +0xEF6C 0x9C59 +0xEF6D 0x9C4C +0xEF6E 0x9C4E +0xEF6F 0x9DFB +0xEF70 0x9DF7 +0xEF71 0x9DEF +0xEF72 0x9DE3 +0xEF73 0x9DEB +0xEF74 0x9DF8 +0xEF75 0x9DE4 +0xEF76 0x9DF6 +0xEF77 0x9DE1 +0xEF78 0x9DEE +0xEF79 0x9DE6 +0xEF7A 0x9DF2 +0xEF7B 0x9DF0 +0xEF7C 0x9DE2 +0xEF7D 0x9DEC +0xEF7E 0x9DF4 +0xEFA1 0x8AB0 +0xEFA2 0x8AD6 +0xEFA3 0x8ACD +0xEFA4 0x8AB6 +0xEFA5 0x8AB9 +0xEFA6 0x8ADB +0xEFA7 0x8C4C +0xEFA8 0x8C4E +0xEFA9 0x8C6C +0xEFAA 0x8CE0 +0xEFAB 0x8CDE +0xEFAC 0x8CE6 +0xEFAD 0x8CE4 +0xEFAE 0x8CEC +0xEFAF 0x8CED +0xEFB0 0x8CE2 +0xEFB1 0x8CE3 +0xEFB2 0x8CDC +0xEFB3 0x8CEA +0xEFB4 0x8CE1 +0xEFB5 0x8D6D +0xEFB6 0x8D9F +0xEFB7 0x8DA3 +0xEFB8 0x8E2B +0xEFB9 0x8E10 +0xEFBA 0x8E1D +0xEFBB 0x8E22 +0xEFBC 0x8E0F +0xEFBD 0x8E29 +0xEFBE 0x8E1F +0xEFBF 0x8E21 +0xEFC0 0x8E1E +0xEFC1 0x8EBA +0xEFC2 0x8F1D +0xEFC3 0x8F1B +0xEFC4 0x8F1F +0xEFC5 0x8F29 +0xEFC6 0x8F26 +0xEFC7 0x8F2A +0xEFC8 0x8F1C +0xEFC9 0x8F1E +0xEFCA 0x8F25 +0xEFCB 0x9069 +0xEFCC 0x906E +0xEFCD 0x9068 +0xEFCE 0x906D +0xEFCF 0x9077 +0xEFD0 0x9130 +0xEFD1 0x912D +0xEFD2 0x9127 +0xEFD3 0x9131 +0xEFD4 0x9187 +0xEFD5 0x9189 +0xEFD6 0x918B +0xEFD7 0x9183 +0xEFD8 0x92C5 +0xEFD9 0x92BB +0xEFDA 0x92B7 +0xEFDB 0x92EA +0xEFDC 0x92E4 +0xEFDD 0x92C1 +0xEFDE 0x92B3 +0xEFDF 0x92BC +0xEFE0 0x92D2 +0xEFE1 0x92C7 +0xEFE2 0x92F0 +0xEFE3 0x92B2 +0xEFE4 0x95AD +0xEFE5 0x95B1 +0xEFE6 0x9704 +0xEFE7 0x9706 +0xEFE8 0x9707 +0xEFE9 0x9709 +0xEFEA 0x9760 +0xEFEB 0x978D +0xEFEC 0x978B +0xEFED 0x978F +0xEFEE 0x9821 +0xEFEF 0x982B +0xEFF0 0x981C +0xEFF1 0x98B3 +0xEFF2 0x990A +0xEFF3 0x9913 +0xEFF4 0x9912 +0xEFF5 0x9918 +0xEFF6 0x99DD +0xEFF7 0x99D0 +0xEFF8 0x99DF +0xEFF9 0x99DB +0xEFFA 0x99D1 +0xEFFB 0x99D5 +0xEFFC 0x99D2 +0xEFFD 0x99D9 +0xEFFE 0x9AB7 +0xF021 0x9DF3 +0xF022 0x9DE8 +0xF023 0x9DED +0xF024 0x9EC2 +0xF025 0x9ED0 +0xF026 0x9EF2 +0xF027 0x9EF3 +0xF028 0x9F06 +0xF029 0x9F1C +0xF02A 0x9F38 +0xF02B 0x9F37 +0xF02C 0x9F36 +0xF02D 0x9F43 +0xF02E 0x9F4F +0xF02F 0x9F71 +0xF030 0x9F70 +0xF031 0x9F6E +0xF032 0x9F6F +0xF033 0x56D3 +0xF034 0x56CD +0xF035 0x5B4E +0xF036 0x5C6D +0xF037 0x652D +0xF038 0x66ED +0xF039 0x66EE +0xF03A 0x6B13 +0xF03B 0x705F +0xF03C 0x7061 +0xF03D 0x705D +0xF03E 0x7060 +0xF03F 0x7223 +0xF040 0x74DB +0xF041 0x74E5 +0xF042 0x77D5 +0xF043 0x7938 +0xF044 0x79B7 +0xF045 0x79B6 +0xF046 0x7C6A +0xF047 0x7E97 +0xF048 0x7F89 +0xF049 0x826D +0xF04A 0x8643 +0xF04B 0x8838 +0xF04C 0x8837 +0xF04D 0x8835 +0xF04E 0x884B +0xF04F 0x8B94 +0xF050 0x8B95 +0xF051 0x8E9E +0xF052 0x8E9F +0xF053 0x8EA0 +0xF054 0x8E9D +0xF055 0x91BE +0xF056 0x91BD +0xF057 0x91C2 +0xF058 0x946B +0xF059 0x9468 +0xF05A 0x9469 +0xF05B 0x96E5 +0xF05C 0x9746 +0xF05D 0x9743 +0xF05E 0x9747 +0xF05F 0x97C7 +0xF060 0x97E5 +0xF061 0x9A5E +0xF062 0x9AD5 +0xF063 0x9B59 +0xF064 0x9C63 +0xF065 0x9C67 +0xF066 0x9C66 +0xF067 0x9C62 +0xF068 0x9C5E +0xF069 0x9C60 +0xF06A 0x9E02 +0xF06B 0x9DFE +0xF06C 0x9E07 +0xF06D 0x9E03 +0xF06E 0x9E06 +0xF06F 0x9E05 +0xF070 0x9E00 +0xF071 0x9E01 +0xF072 0x9E09 +0xF073 0x9DFF +0xF074 0x9DFD +0xF075 0x9E04 +0xF076 0x9EA0 +0xF077 0x9F1E +0xF078 0x9F46 +0xF079 0x9F74 +0xF07A 0x9F75 +0xF07B 0x9F76 +0xF07C 0x56D4 +0xF07D 0x652E +0xF07E 0x65B8 +0xF0A1 0x9AEE +0xF0A2 0x9AEF +0xF0A3 0x9B27 +0xF0A4 0x9B45 +0xF0A5 0x9B44 +0xF0A6 0x9B77 +0xF0A7 0x9B6F +0xF0A8 0x9D06 +0xF0A9 0x9D09 +0xF0AA 0x9D03 +0xF0AB 0x9EA9 +0xF0AC 0x9EBE +0xF0AD 0x9ECE +0xF0AE 0x58A8 +0xF0AF 0x9F52 +0xF0B0 0x5112 +0xF0B1 0x5118 +0xF0B2 0x5114 +0xF0B3 0x5110 +0xF0B4 0x5115 +0xF0B5 0x5180 +0xF0B6 0x51AA +0xF0B7 0x51DD +0xF0B8 0x5291 +0xF0B9 0x5293 +0xF0BA 0x52F3 +0xF0BB 0x5659 +0xF0BC 0x566B +0xF0BD 0x5679 +0xF0BE 0x5669 +0xF0BF 0x5664 +0xF0C0 0x5678 +0xF0C1 0x566A +0xF0C2 0x5668 +0xF0C3 0x5665 +0xF0C4 0x5671 +0xF0C5 0x566F +0xF0C6 0x566C +0xF0C7 0x5662 +0xF0C8 0x5676 +0xF0C9 0x58C1 +0xF0CA 0x58BE +0xF0CB 0x58C7 +0xF0CC 0x58C5 +0xF0CD 0x596E +0xF0CE 0x5B1D +0xF0CF 0x5B34 +0xF0D0 0x5B78 +0xF0D1 0x5BF0 +0xF0D2 0x5C0E +0xF0D3 0x5F4A +0xF0D4 0x61B2 +0xF0D5 0x6191 +0xF0D6 0x61A9 +0xF0D7 0x618A +0xF0D8 0x61CD +0xF0D9 0x61B6 +0xF0DA 0x61BE +0xF0DB 0x61CA +0xF0DC 0x61C8 +0xF0DD 0x6230 +0xF0DE 0x64C5 +0xF0DF 0x64C1 +0xF0E0 0x64CB +0xF0E1 0x64BB +0xF0E2 0x64BC +0xF0E3 0x64DA +0xF0E4 0x64C4 +0xF0E5 0x64C7 +0xF0E6 0x64C2 +0xF0E7 0x64CD +0xF0E8 0x64BF +0xF0E9 0x64D2 +0xF0EA 0x64D4 +0xF0EB 0x64BE +0xF0EC 0x6574 +0xF0ED 0x66C6 +0xF0EE 0x66C9 +0xF0EF 0x66B9 +0xF0F0 0x66C4 +0xF0F1 0x66C7 +0xF0F2 0x66B8 +0xF0F3 0x6A3D +0xF0F4 0x6A38 +0xF0F5 0x6A3A +0xF0F6 0x6A59 +0xF0F7 0x6A6B +0xF0F8 0x6A58 +0xF0F9 0x6A39 +0xF0FA 0x6A44 +0xF0FB 0x6A62 +0xF0FC 0x6A61 +0xF0FD 0x6A4B +0xF0FE 0x6A47 +0xF121 0x6B18 +0xF122 0x6B19 +0xF123 0x6B17 +0xF124 0x6B1A +0xF125 0x7062 +0xF126 0x7226 +0xF127 0x72AA +0xF128 0x77D8 +0xF129 0x77D9 +0xF12A 0x7939 +0xF12B 0x7C69 +0xF12C 0x7C6B +0xF12D 0x7CF6 +0xF12E 0x7E9A +0xF12F 0x7E98 +0xF130 0x7E9B +0xF131 0x7E99 +0xF132 0x81E0 +0xF133 0x81E1 +0xF134 0x8646 +0xF135 0x8647 +0xF136 0x8648 +0xF137 0x8979 +0xF138 0x897A +0xF139 0x897C +0xF13A 0x897B +0xF13B 0x89FF +0xF13C 0x8B98 +0xF13D 0x8B99 +0xF13E 0x8EA5 +0xF13F 0x8EA4 +0xF140 0x8EA3 +0xF141 0x946E +0xF142 0x946D +0xF143 0x946F +0xF144 0x9471 +0xF145 0x9473 +0xF146 0x9749 +0xF147 0x9872 +0xF148 0x995F +0xF149 0x9C68 +0xF14A 0x9C6E +0xF14B 0x9C6D +0xF14C 0x9E0B +0xF14D 0x9E0D +0xF14E 0x9E10 +0xF14F 0x9E0F +0xF150 0x9E12 +0xF151 0x9E11 +0xF152 0x9EA1 +0xF153 0x9EF5 +0xF154 0x9F09 +0xF155 0x9F47 +0xF156 0x9F78 +0xF157 0x9F7B +0xF158 0x9F7A +0xF159 0x9F79 +0xF15A 0x571E +0xF15B 0x7066 +0xF15C 0x7C6F +0xF15D 0x883C +0xF15E 0x8DB2 +0xF15F 0x8EA6 +0xF160 0x91C3 +0xF161 0x9474 +0xF162 0x9478 +0xF163 0x9476 +0xF164 0x9475 +0xF165 0x9A60 +0xF166 0x9B2E +0xF167 0x9C74 +0xF168 0x9C73 +0xF169 0x9C71 +0xF16A 0x9C75 +0xF16B 0x9E14 +0xF16C 0x9E13 +0xF16D 0x9EF6 +0xF16E 0x9F0A +0xF16F 0x9FA4 +0xF170 0x7068 +0xF171 0x7065 +0xF172 0x7CF7 +0xF173 0x866A +0xF174 0x883E +0xF175 0x883D +0xF176 0x883F +0xF177 0x8B9E +0xF178 0x8C9C +0xF179 0x8EA9 +0xF17A 0x8EC9 +0xF17B 0x974B +0xF17C 0x9873 +0xF17D 0x9874 +0xF17E 0x98CC +0xF1A1 0x6A35 +0xF1A2 0x6A5F +0xF1A3 0x6A48 +0xF1A4 0x6B59 +0xF1A5 0x6B77 +0xF1A6 0x6C05 +0xF1A7 0x6FC2 +0xF1A8 0x6FB1 +0xF1A9 0x6FA1 +0xF1AA 0x6FC3 +0xF1AB 0x6FA4 +0xF1AC 0x6FC1 +0xF1AD 0x6FA7 +0xF1AE 0x6FB3 +0xF1AF 0x6FC0 +0xF1B0 0x6FB9 +0xF1B1 0x6FB6 +0xF1B2 0x6FA6 +0xF1B3 0x6FA0 +0xF1B4 0x6FB4 +0xF1B5 0x71BE +0xF1B6 0x71C9 +0xF1B7 0x71D0 +0xF1B8 0x71D2 +0xF1B9 0x71C8 +0xF1BA 0x71D5 +0xF1BB 0x71B9 +0xF1BC 0x71CE +0xF1BD 0x71D9 +0xF1BE 0x71DC +0xF1BF 0x71C3 +0xF1C0 0x71C4 +0xF1C1 0x7368 +0xF1C2 0x749C +0xF1C3 0x74A3 +0xF1C4 0x7498 +0xF1C5 0x749F +0xF1C6 0x749E +0xF1C7 0x74E2 +0xF1C8 0x750C +0xF1C9 0x750D +0xF1CA 0x7634 +0xF1CB 0x7638 +0xF1CC 0x763A +0xF1CD 0x76E7 +0xF1CE 0x76E5 +0xF1CF 0x77A0 +0xF1D0 0x779E +0xF1D1 0x779F +0xF1D2 0x77A5 +0xF1D3 0x78E8 +0xF1D4 0x78DA +0xF1D5 0x78EC +0xF1D6 0x78E7 +0xF1D7 0x79A6 +0xF1D8 0x7A4D +0xF1D9 0x7A4E +0xF1DA 0x7A46 +0xF1DB 0x7A4C +0xF1DC 0x7A4B +0xF1DD 0x7ABA +0xF1DE 0x7BD9 +0xF1DF 0x7C11 +0xF1E0 0x7BC9 +0xF1E1 0x7BE4 +0xF1E2 0x7BDB +0xF1E3 0x7BE1 +0xF1E4 0x7BE9 +0xF1E5 0x7BE6 +0xF1E6 0x7CD5 +0xF1E7 0x7CD6 +0xF1E8 0x7E0A +0xF1E9 0x7E11 +0xF1EA 0x7E08 +0xF1EB 0x7E1B +0xF1EC 0x7E23 +0xF1ED 0x7E1E +0xF1EE 0x7E1D +0xF1EF 0x7E09 +0xF1F0 0x7E10 +0xF1F1 0x7F79 +0xF1F2 0x7FB2 +0xF1F3 0x7FF0 +0xF1F4 0x7FF1 +0xF1F5 0x7FEE +0xF1F6 0x8028 +0xF1F7 0x81B3 +0xF1F8 0x81A9 +0xF1F9 0x81A8 +0xF1FA 0x81FB +0xF1FB 0x8208 +0xF1FC 0x8258 +0xF1FD 0x8259 +0xF1FE 0x854A +0xF221 0x9961 +0xF222 0x99AB +0xF223 0x9A64 +0xF224 0x9A66 +0xF225 0x9A67 +0xF226 0x9B24 +0xF227 0x9E15 +0xF228 0x9E17 +0xF229 0x9F48 +0xF22A 0x6207 +0xF22B 0x6B1E +0xF22C 0x7227 +0xF22D 0x864C +0xF22E 0x8EA8 +0xF22F 0x9482 +0xF230 0x9480 +0xF231 0x9481 +0xF232 0x9A69 +0xF233 0x9A68 +0xF234 0x9E19 +0xF235 0x864B +0xF236 0x8B9F +0xF237 0x9483 +0xF238 0x9C79 +0xF239 0x9EB7 +0xF23A 0x7675 +0xF23B 0x9A6B +0xF23C 0x9C7A +0xF23D 0x9E1D +0xF23E 0x7069 +0xF23F 0x706A +0xF240 0x7229 +0xF241 0x9EA4 +0xF242 0x9F7E +0xF243 0x9F49 +0xF244 0x9F98 +0xF2A1 0x8559 +0xF2A2 0x8548 +0xF2A3 0x8568 +0xF2A4 0x8569 +0xF2A5 0x8543 +0xF2A6 0x8549 +0xF2A7 0x856D +0xF2A8 0x856A +0xF2A9 0x855E +0xF2AA 0x8783 +0xF2AB 0x879F +0xF2AC 0x879E +0xF2AD 0x87A2 +0xF2AE 0x878D +0xF2AF 0x8861 +0xF2B0 0x892A +0xF2B1 0x8932 +0xF2B2 0x8925 +0xF2B3 0x892B +0xF2B4 0x8921 +0xF2B5 0x89AA +0xF2B6 0x89A6 +0xF2B7 0x8AE6 +0xF2B8 0x8AFA +0xF2B9 0x8AEB +0xF2BA 0x8AF1 +0xF2BB 0x8B00 +0xF2BC 0x8ADC +0xF2BD 0x8AE7 +0xF2BE 0x8AEE +0xF2BF 0x8AFE +0xF2C0 0x8B01 +0xF2C1 0x8B02 +0xF2C2 0x8AF7 +0xF2C3 0x8AED +0xF2C4 0x8AF3 +0xF2C5 0x8AF6 +0xF2C6 0x8AFC +0xF2C7 0x8C6B +0xF2C8 0x8C6D +0xF2C9 0x8C93 +0xF2CA 0x8CF4 +0xF2CB 0x8E44 +0xF2CC 0x8E31 +0xF2CD 0x8E34 +0xF2CE 0x8E42 +0xF2CF 0x8E39 +0xF2D0 0x8E35 +0xF2D1 0x8F3B +0xF2D2 0x8F2F +0xF2D3 0x8F38 +0xF2D4 0x8F33 +0xF2D5 0x8FA8 +0xF2D6 0x8FA6 +0xF2D7 0x9075 +0xF2D8 0x9074 +0xF2D9 0x9078 +0xF2DA 0x9072 +0xF2DB 0x907C +0xF2DC 0x907A +0xF2DD 0x9134 +0xF2DE 0x9192 +0xF2DF 0x9320 +0xF2E0 0x9336 +0xF2E1 0x92F8 +0xF2E2 0x9333 +0xF2E3 0x932F +0xF2E4 0x9322 +0xF2E5 0x92FC +0xF2E6 0x932B +0xF2E7 0x9304 +0xF2E8 0x931A +0xF2E9 0x9310 +0xF2EA 0x9326 +0xF2EB 0x9321 +0xF2EC 0x9315 +0xF2ED 0x932E +0xF2EE 0x9319 +0xF2EF 0x95BB +0xF2F0 0x96A7 +0xF2F1 0x96A8 +0xF2F2 0x96AA +0xF2F3 0x96D5 +0xF2F4 0x970E +0xF2F5 0x9711 +0xF2F6 0x9716 +0xF2F7 0x970D +0xF2F8 0x9713 +0xF2F9 0x970F +0xF2FA 0x975B +0xF2FB 0x975C +0xF2FC 0x9766 +0xF2FD 0x9798 +0xF2FE 0x9830 +0xF3A1 0x9838 +0xF3A2 0x983B +0xF3A3 0x9837 +0xF3A4 0x982D +0xF3A5 0x9839 +0xF3A6 0x9824 +0xF3A7 0x9910 +0xF3A8 0x9928 +0xF3A9 0x991E +0xF3AA 0x991B +0xF3AB 0x9921 +0xF3AC 0x991A +0xF3AD 0x99ED +0xF3AE 0x99E2 +0xF3AF 0x99F1 +0xF3B0 0x9AB8 +0xF3B1 0x9ABC +0xF3B2 0x9AFB +0xF3B3 0x9AED +0xF3B4 0x9B28 +0xF3B5 0x9B91 +0xF3B6 0x9D15 +0xF3B7 0x9D23 +0xF3B8 0x9D26 +0xF3B9 0x9D28 +0xF3BA 0x9D12 +0xF3BB 0x9D1B +0xF3BC 0x9ED8 +0xF3BD 0x9ED4 +0xF3BE 0x9F8D +0xF3BF 0x9F9C +0xF3C0 0x512A +0xF3C1 0x511F +0xF3C2 0x5121 +0xF3C3 0x5132 +0xF3C4 0x52F5 +0xF3C5 0x568E +0xF3C6 0x5680 +0xF3C7 0x5690 +0xF3C8 0x5685 +0xF3C9 0x5687 +0xF3CA 0x568F +0xF3CB 0x58D5 +0xF3CC 0x58D3 +0xF3CD 0x58D1 +0xF3CE 0x58CE +0xF3CF 0x5B30 +0xF3D0 0x5B2A +0xF3D1 0x5B24 +0xF3D2 0x5B7A +0xF3D3 0x5C37 +0xF3D4 0x5C68 +0xF3D5 0x5DBC +0xF3D6 0x5DBA +0xF3D7 0x5DBD +0xF3D8 0x5DB8 +0xF3D9 0x5E6B +0xF3DA 0x5F4C +0xF3DB 0x5FBD +0xF3DC 0x61C9 +0xF3DD 0x61C2 +0xF3DE 0x61C7 +0xF3DF 0x61E6 +0xF3E0 0x61CB +0xF3E1 0x6232 +0xF3E2 0x6234 +0xF3E3 0x64CE +0xF3E4 0x64CA +0xF3E5 0x64D8 +0xF3E6 0x64E0 +0xF3E7 0x64F0 +0xF3E8 0x64E6 +0xF3E9 0x64EC +0xF3EA 0x64F1 +0xF3EB 0x64E2 +0xF3EC 0x64ED +0xF3ED 0x6582 +0xF3EE 0x6583 +0xF3EF 0x66D9 +0xF3F0 0x66D6 +0xF3F1 0x6A80 +0xF3F2 0x6A94 +0xF3F3 0x6A84 +0xF3F4 0x6AA2 +0xF3F5 0x6A9C +0xF3F6 0x6ADB +0xF3F7 0x6AA3 +0xF3F8 0x6A7E +0xF3F9 0x6A97 +0xF3FA 0x6A90 +0xF3FB 0x6AA0 +0xF3FC 0x6B5C +0xF3FD 0x6BAE +0xF3FE 0x6BDA +0xF4A1 0x6C08 +0xF4A2 0x6FD8 +0xF4A3 0x6FF1 +0xF4A4 0x6FDF +0xF4A5 0x6FE0 +0xF4A6 0x6FDB +0xF4A7 0x6FE4 +0xF4A8 0x6FEB +0xF4A9 0x6FEF +0xF4AA 0x6F80 +0xF4AB 0x6FEC +0xF4AC 0x6FE1 +0xF4AD 0x6FE9 +0xF4AE 0x6FD5 +0xF4AF 0x6FEE +0xF4B0 0x6FF0 +0xF4B1 0x71E7 +0xF4B2 0x71DF +0xF4B3 0x71EE +0xF4B4 0x71E6 +0xF4B5 0x71E5 +0xF4B6 0x71ED +0xF4B7 0x71EC +0xF4B8 0x71F4 +0xF4B9 0x71E0 +0xF4BA 0x7235 +0xF4BB 0x7246 +0xF4BC 0x7370 +0xF4BD 0x7372 +0xF4BE 0x74A9 +0xF4BF 0x74B0 +0xF4C0 0x74A6 +0xF4C1 0x74A8 +0xF4C2 0x7646 +0xF4C3 0x7642 +0xF4C4 0x764C +0xF4C5 0x76EA +0xF4C6 0x77B3 +0xF4C7 0x77AA +0xF4C8 0x77B0 +0xF4C9 0x77AC +0xF4CA 0x77A7 +0xF4CB 0x77AD +0xF4CC 0x77EF +0xF4CD 0x78F7 +0xF4CE 0x78FA +0xF4CF 0x78F4 +0xF4D0 0x78EF +0xF4D1 0x7901 +0xF4D2 0x79A7 +0xF4D3 0x79AA +0xF4D4 0x7A57 +0xF4D5 0x7ABF +0xF4D6 0x7C07 +0xF4D7 0x7C0D +0xF4D8 0x7BFE +0xF4D9 0x7BF7 +0xF4DA 0x7C0C +0xF4DB 0x7BE0 +0xF4DC 0x7CE0 +0xF4DD 0x7CDC +0xF4DE 0x7CDE +0xF4DF 0x7CE2 +0xF4E0 0x7CDF +0xF4E1 0x7CD9 +0xF4E2 0x7CDD +0xF4E3 0x7E2E +0xF4E4 0x7E3E +0xF4E5 0x7E46 +0xF4E6 0x7E37 +0xF4E7 0x7E32 +0xF4E8 0x7E43 +0xF4E9 0x7E2B +0xF4EA 0x7E3D +0xF4EB 0x7E31 +0xF4EC 0x7E45 +0xF4ED 0x7E41 +0xF4EE 0x7E34 +0xF4EF 0x7E39 +0xF4F0 0x7E48 +0xF4F1 0x7E35 +0xF4F2 0x7E3F +0xF4F3 0x7E2F +0xF4F4 0x7F44 +0xF4F5 0x7FF3 +0xF4F6 0x7FFC +0xF4F7 0x8071 +0xF4F8 0x8072 +0xF4F9 0x8070 +0xF4FA 0x806F +0xF4FB 0x8073 +0xF4FC 0x81C6 +0xF4FD 0x81C3 +0xF4FE 0x81BA +0xF5A1 0x81C2 +0xF5A2 0x81C0 +0xF5A3 0x81BF +0xF5A4 0x81BD +0xF5A5 0x81C9 +0xF5A6 0x81BE +0xF5A7 0x81E8 +0xF5A8 0x8209 +0xF5A9 0x8271 +0xF5AA 0x85AA +0xF5AB 0x8584 +0xF5AC 0x857E +0xF5AD 0x859C +0xF5AE 0x8591 +0xF5AF 0x8594 +0xF5B0 0x85AF +0xF5B1 0x859B +0xF5B2 0x8587 +0xF5B3 0x85A8 +0xF5B4 0x858A +0xF5B5 0x85A6 +0xF5B6 0x8667 +0xF5B7 0x87C0 +0xF5B8 0x87D1 +0xF5B9 0x87B3 +0xF5BA 0x87D2 +0xF5BB 0x87C6 +0xF5BC 0x87AB +0xF5BD 0x87BB +0xF5BE 0x87BA +0xF5BF 0x87C8 +0xF5C0 0x87CB +0xF5C1 0x893B +0xF5C2 0x8936 +0xF5C3 0x8944 +0xF5C4 0x8938 +0xF5C5 0x893D +0xF5C6 0x89AC +0xF5C7 0x8B0E +0xF5C8 0x8B17 +0xF5C9 0x8B19 +0xF5CA 0x8B1B +0xF5CB 0x8B0A +0xF5CC 0x8B20 +0xF5CD 0x8B1D +0xF5CE 0x8B04 +0xF5CF 0x8B10 +0xF5D0 0x8C41 +0xF5D1 0x8C3F +0xF5D2 0x8C73 +0xF5D3 0x8CFA +0xF5D4 0x8CFD +0xF5D5 0x8CFC +0xF5D6 0x8CF8 +0xF5D7 0x8CFB +0xF5D8 0x8DA8 +0xF5D9 0x8E49 +0xF5DA 0x8E4B +0xF5DB 0x8E48 +0xF5DC 0x8E4A +0xF5DD 0x8F44 +0xF5DE 0x8F3E +0xF5DF 0x8F42 +0xF5E0 0x8F45 +0xF5E1 0x8F3F +0xF5E2 0x907F +0xF5E3 0x907D +0xF5E4 0x9084 +0xF5E5 0x9081 +0xF5E6 0x9082 +0xF5E7 0x9080 +0xF5E8 0x9139 +0xF5E9 0x91A3 +0xF5EA 0x919E +0xF5EB 0x919C +0xF5EC 0x934D +0xF5ED 0x9382 +0xF5EE 0x9328 +0xF5EF 0x9375 +0xF5F0 0x934A +0xF5F1 0x9365 +0xF5F2 0x934B +0xF5F3 0x9318 +0xF5F4 0x937E +0xF5F5 0x936C +0xF5F6 0x935B +0xF5F7 0x9370 +0xF5F8 0x935A +0xF5F9 0x9354 +0xF5FA 0x95CA +0xF5FB 0x95CB +0xF5FC 0x95CC +0xF5FD 0x95C8 +0xF5FE 0x95C6 +0xF6A1 0x96B1 +0xF6A2 0x96B8 +0xF6A3 0x96D6 +0xF6A4 0x971C +0xF6A5 0x971E +0xF6A6 0x97A0 +0xF6A7 0x97D3 +0xF6A8 0x9846 +0xF6A9 0x98B6 +0xF6AA 0x9935 +0xF6AB 0x9A01 +0xF6AC 0x99FF +0xF6AD 0x9BAE +0xF6AE 0x9BAB +0xF6AF 0x9BAA +0xF6B0 0x9BAD +0xF6B1 0x9D3B +0xF6B2 0x9D3F +0xF6B3 0x9E8B +0xF6B4 0x9ECF +0xF6B5 0x9EDE +0xF6B6 0x9EDC +0xF6B7 0x9EDD +0xF6B8 0x9EDB +0xF6B9 0x9F3E +0xF6BA 0x9F4B +0xF6BB 0x53E2 +0xF6BC 0x5695 +0xF6BD 0x56AE +0xF6BE 0x58D9 +0xF6BF 0x58D8 +0xF6C0 0x5B38 +0xF6C1 0x5F5E +0xF6C2 0x61E3 +0xF6C3 0x6233 +0xF6C4 0x64F4 +0xF6C5 0x64F2 +0xF6C6 0x64FE +0xF6C7 0x6506 +0xF6C8 0x64FA +0xF6C9 0x64FB +0xF6CA 0x64F7 +0xF6CB 0x65B7 +0xF6CC 0x66DC +0xF6CD 0x6726 +0xF6CE 0x6AB3 +0xF6CF 0x6AAC +0xF6D0 0x6AC3 +0xF6D1 0x6ABB +0xF6D2 0x6AB8 +0xF6D3 0x6AC2 +0xF6D4 0x6AAE +0xF6D5 0x6AAF +0xF6D6 0x6B5F +0xF6D7 0x6B78 +0xF6D8 0x6BAF +0xF6D9 0x7009 +0xF6DA 0x700B +0xF6DB 0x6FFE +0xF6DC 0x7006 +0xF6DD 0x6FFA +0xF6DE 0x7011 +0xF6DF 0x700F +0xF6E0 0x71FB +0xF6E1 0x71FC +0xF6E2 0x71FE +0xF6E3 0x71F8 +0xF6E4 0x7377 +0xF6E5 0x7375 +0xF6E6 0x74A7 +0xF6E7 0x74BF +0xF6E8 0x7515 +0xF6E9 0x7656 +0xF6EA 0x7658 +0xF6EB 0x7652 +0xF6EC 0x77BD +0xF6ED 0x77BF +0xF6EE 0x77BB +0xF6EF 0x77BC +0xF6F0 0x790E +0xF6F1 0x79AE +0xF6F2 0x7A61 +0xF6F3 0x7A62 +0xF6F4 0x7A60 +0xF6F5 0x7AC4 +0xF6F6 0x7AC5 +0xF6F7 0x7C2B +0xF6F8 0x7C27 +0xF6F9 0x7C2A +0xF6FA 0x7C1E +0xF6FB 0x7C23 +0xF6FC 0x7C21 +0xF6FD 0x7CE7 +0xF6FE 0x7E54 +0xF7A1 0x7E55 +0xF7A2 0x7E5E +0xF7A3 0x7E5A +0xF7A4 0x7E61 +0xF7A5 0x7E52 +0xF7A6 0x7E59 +0xF7A7 0x7F48 +0xF7A8 0x7FF9 +0xF7A9 0x7FFB +0xF7AA 0x8077 +0xF7AB 0x8076 +0xF7AC 0x81CD +0xF7AD 0x81CF +0xF7AE 0x820A +0xF7AF 0x85CF +0xF7B0 0x85A9 +0xF7B1 0x85CD +0xF7B2 0x85D0 +0xF7B3 0x85C9 +0xF7B4 0x85B0 +0xF7B5 0x85BA +0xF7B6 0x85B9 +0xF7B7 0x87EF +0xF7B8 0x87EC +0xF7B9 0x87F2 +0xF7BA 0x87E0 +0xF7BB 0x8986 +0xF7BC 0x89B2 +0xF7BD 0x89F4 +0xF7BE 0x8B28 +0xF7BF 0x8B39 +0xF7C0 0x8B2C +0xF7C1 0x8B2B +0xF7C2 0x8C50 +0xF7C3 0x8D05 +0xF7C4 0x8E59 +0xF7C5 0x8E63 +0xF7C6 0x8E66 +0xF7C7 0x8E64 +0xF7C8 0x8E5F +0xF7C9 0x8E55 +0xF7CA 0x8EC0 +0xF7CB 0x8F49 +0xF7CC 0x8F4D +0xF7CD 0x9087 +0xF7CE 0x9083 +0xF7CF 0x9088 +0xF7D0 0x91AB +0xF7D1 0x91AC +0xF7D2 0x91D0 +0xF7D3 0x9394 +0xF7D4 0x938A +0xF7D5 0x9396 +0xF7D6 0x93A2 +0xF7D7 0x93B3 +0xF7D8 0x93AE +0xF7D9 0x93AC +0xF7DA 0x93B0 +0xF7DB 0x9398 +0xF7DC 0x939A +0xF7DD 0x9397 +0xF7DE 0x95D4 +0xF7DF 0x95D6 +0xF7E0 0x95D0 +0xF7E1 0x95D5 +0xF7E2 0x96E2 +0xF7E3 0x96DC +0xF7E4 0x96D9 +0xF7E5 0x96DB +0xF7E6 0x96DE +0xF7E7 0x9724 +0xF7E8 0x97A3 +0xF7E9 0x97A6 +0xF7EA 0x97AD +0xF7EB 0x97F9 +0xF7EC 0x984D +0xF7ED 0x984F +0xF7EE 0x984C +0xF7EF 0x984E +0xF7F0 0x9853 +0xF7F1 0x98BA +0xF7F2 0x993E +0xF7F3 0x993F +0xF7F4 0x993D +0xF7F5 0x992E +0xF7F6 0x99A5 +0xF7F7 0x9A0E +0xF7F8 0x9AC1 +0xF7F9 0x9B03 +0xF7FA 0x9B06 +0xF7FB 0x9B4F +0xF7FC 0x9B4E +0xF7FD 0x9B4D +0xF7FE 0x9BCA +0xF8A1 0x9BC9 +0xF8A2 0x9BFD +0xF8A3 0x9BC8 +0xF8A4 0x9BC0 +0xF8A5 0x9D51 +0xF8A6 0x9D5D +0xF8A7 0x9D60 +0xF8A8 0x9EE0 +0xF8A9 0x9F15 +0xF8AA 0x9F2C +0xF8AB 0x5133 +0xF8AC 0x56A5 +0xF8AD 0x56A8 +0xF8AE 0x58DE +0xF8AF 0x58DF +0xF8B0 0x58E2 +0xF8B1 0x5BF5 +0xF8B2 0x9F90 +0xF8B3 0x5EEC +0xF8B4 0x61F2 +0xF8B5 0x61F7 +0xF8B6 0x61F6 +0xF8B7 0x61F5 +0xF8B8 0x6500 +0xF8B9 0x650F +0xF8BA 0x66E0 +0xF8BB 0x66DD +0xF8BC 0x6AE5 +0xF8BD 0x6ADD +0xF8BE 0x6ADA +0xF8BF 0x6AD3 +0xF8C0 0x701B +0xF8C1 0x701F +0xF8C2 0x7028 +0xF8C3 0x701A +0xF8C4 0x701D +0xF8C5 0x7015 +0xF8C6 0x7018 +0xF8C7 0x7206 +0xF8C8 0x720D +0xF8C9 0x7258 +0xF8CA 0x72A2 +0xF8CB 0x7378 +0xF8CC 0x737A +0xF8CD 0x74BD +0xF8CE 0x74CA +0xF8CF 0x74E3 +0xF8D0 0x7587 +0xF8D1 0x7586 +0xF8D2 0x765F +0xF8D3 0x7661 +0xF8D4 0x77C7 +0xF8D5 0x7919 +0xF8D6 0x79B1 +0xF8D7 0x7A6B +0xF8D8 0x7A69 +0xF8D9 0x7C3E +0xF8DA 0x7C3F +0xF8DB 0x7C38 +0xF8DC 0x7C3D +0xF8DD 0x7C37 +0xF8DE 0x7C40 +0xF8DF 0x7E6B +0xF8E0 0x7E6D +0xF8E1 0x7E79 +0xF8E2 0x7E69 +0xF8E3 0x7E6A +0xF8E4 0x7E73 +0xF8E5 0x7F85 +0xF8E6 0x7FB6 +0xF8E7 0x7FB9 +0xF8E8 0x7FB8 +0xF8E9 0x81D8 +0xF8EA 0x85E9 +0xF8EB 0x85DD +0xF8EC 0x85EA +0xF8ED 0x85D5 +0xF8EE 0x85E4 +0xF8EF 0x85E5 +0xF8F0 0x85F7 +0xF8F1 0x87FB +0xF8F2 0x8805 +0xF8F3 0x880D +0xF8F4 0x87F9 +0xF8F5 0x87FE +0xF8F6 0x8960 +0xF8F7 0x895F +0xF8F8 0x8956 +0xF8F9 0x895E +0xF8FA 0x8B41 +0xF8FB 0x8B5C +0xF8FC 0x8B58 +0xF8FD 0x8B49 +0xF8FE 0x8B5A +0xF9A1 0x8B4E +0xF9A2 0x8B4F +0xF9A3 0x8B46 +0xF9A4 0x8B59 +0xF9A5 0x8D08 +0xF9A6 0x8D0A +0xF9A7 0x8E7C +0xF9A8 0x8E72 +0xF9A9 0x8E87 +0xF9AA 0x8E76 +0xF9AB 0x8E6C +0xF9AC 0x8E7A +0xF9AD 0x8E74 +0xF9AE 0x8F54 +0xF9AF 0x8F4E +0xF9B0 0x8FAD +0xF9B1 0x908A +0xF9B2 0x908B +0xF9B3 0x91B1 +0xF9B4 0x91AE +0xF9B5 0x93E1 +0xF9B6 0x93D1 +0xF9B7 0x93DF +0xF9B8 0x93C3 +0xF9B9 0x93C8 +0xF9BA 0x93DC +0xF9BB 0x93DD +0xF9BC 0x93D6 +0xF9BD 0x93E2 +0xF9BE 0x93CD +0xF9BF 0x93D8 +0xF9C0 0x93E4 +0xF9C1 0x93D7 +0xF9C2 0x93E8 +0xF9C3 0x95DC +0xF9C4 0x96B4 +0xF9C5 0x96E3 +0xF9C6 0x972A +0xF9C7 0x9727 +0xF9C8 0x9761 +0xF9C9 0x97DC +0xF9CA 0x97FB +0xF9CB 0x985E +0xF9CC 0x9858 +0xF9CD 0x985B +0xF9CE 0x98BC +0xF9CF 0x9945 +0xF9D0 0x9949 +0xF9D1 0x9A16 +0xF9D2 0x9A19 +0xF9D3 0x9B0D +0xF9D4 0x9BE8 +0xF9D5 0x9BE7 +0xF9D6 0x9BD6 +0xF9D7 0x9BDB +0xF9D8 0x9D89 +0xF9D9 0x9D61 +0xF9DA 0x9D72 +0xF9DB 0x9D6A +0xF9DC 0x9D6C +0xF9DD 0x9E92 +0xF9DE 0x9E97 +0xF9DF 0x9E93 +0xF9E0 0x9EB4 +0xF9E1 0x52F8 +0xF9E2 0x56B7 +0xF9E3 0x56B6 +0xF9E4 0x56B4 +0xF9E5 0x56BC +0xF9E6 0x58E4 +0xF9E7 0x5B40 +0xF9E8 0x5B43 +0xF9E9 0x5B7D +0xF9EA 0x5BF6 +0xF9EB 0x5DC9 +0xF9EC 0x61F8 +0xF9ED 0x61FA +0xF9EE 0x6518 +0xF9EF 0x6514 +0xF9F0 0x6519 +0xF9F1 0x66E6 +0xF9F2 0x6727 +0xF9F3 0x6AEC +0xF9F4 0x703E +0xF9F5 0x7030 +0xF9F6 0x7032 +0xF9F7 0x7210 +0xF9F8 0x737B +0xF9F9 0x74CF +0xF9FA 0x7662 +0xF9FB 0x7665 +0xF9FC 0x7926 +0xF9FD 0x792A +0xF9FE 0x792C +0xFAA1 0x792B +0xFAA2 0x7AC7 +0xFAA3 0x7AF6 +0xFAA4 0x7C4C +0xFAA5 0x7C43 +0xFAA6 0x7C4D +0xFAA7 0x7CEF +0xFAA8 0x7CF0 +0xFAA9 0x8FAE +0xFAAA 0x7E7D +0xFAAB 0x7E7C +0xFAAC 0x7E82 +0xFAAD 0x7F4C +0xFAAE 0x8000 +0xFAAF 0x81DA +0xFAB0 0x8266 +0xFAB1 0x85FB +0xFAB2 0x85F9 +0xFAB3 0x8611 +0xFAB4 0x85FA +0xFAB5 0x8606 +0xFAB6 0x860B +0xFAB7 0x8607 +0xFAB8 0x860A +0xFAB9 0x8814 +0xFABA 0x8815 +0xFABB 0x8964 +0xFABC 0x89BA +0xFABD 0x89F8 +0xFABE 0x8B70 +0xFABF 0x8B6C +0xFAC0 0x8B66 +0xFAC1 0x8B6F +0xFAC2 0x8B5F +0xFAC3 0x8B6B +0xFAC4 0x8D0F +0xFAC5 0x8D0D +0xFAC6 0x8E89 +0xFAC7 0x8E81 +0xFAC8 0x8E85 +0xFAC9 0x8E82 +0xFACA 0x91B4 +0xFACB 0x91CB +0xFACC 0x9418 +0xFACD 0x9403 +0xFACE 0x93FD +0xFACF 0x95E1 +0xFAD0 0x9730 +0xFAD1 0x98C4 +0xFAD2 0x9952 +0xFAD3 0x9951 +0xFAD4 0x99A8 +0xFAD5 0x9A2B +0xFAD6 0x9A30 +0xFAD7 0x9A37 +0xFAD8 0x9A35 +0xFAD9 0x9C13 +0xFADA 0x9C0D +0xFADB 0x9E79 +0xFADC 0x9EB5 +0xFADD 0x9EE8 +0xFADE 0x9F2F +0xFADF 0x9F5F +0xFAE0 0x9F63 +0xFAE1 0x9F61 +0xFAE2 0x5137 +0xFAE3 0x5138 +0xFAE4 0x56C1 +0xFAE5 0x56C0 +0xFAE6 0x56C2 +0xFAE7 0x5914 +0xFAE8 0x5C6C +0xFAE9 0x5DCD +0xFAEA 0x61FC +0xFAEB 0x61FE +0xFAEC 0x651D +0xFAED 0x651C +0xFAEE 0x6595 +0xFAEF 0x66E9 +0xFAF0 0x6AFB +0xFAF1 0x6B04 +0xFAF2 0x6AFA +0xFAF3 0x6BB2 +0xFAF4 0x704C +0xFAF5 0x721B +0xFAF6 0x72A7 +0xFAF7 0x74D6 +0xFAF8 0x74D4 +0xFAF9 0x7669 +0xFAFA 0x77D3 +0xFAFB 0x7C50 +0xFAFC 0x7E8F +0xFAFD 0x7E8C +0xFAFE 0x7FBC +0xFBA1 0x8617 +0xFBA2 0x862D +0xFBA3 0x861A +0xFBA4 0x8823 +0xFBA5 0x8822 +0xFBA6 0x8821 +0xFBA7 0x881F +0xFBA8 0x896A +0xFBA9 0x896C +0xFBAA 0x89BD +0xFBAB 0x8B74 +0xFBAC 0x8B77 +0xFBAD 0x8B7D +0xFBAE 0x8D13 +0xFBAF 0x8E8A +0xFBB0 0x8E8D +0xFBB1 0x8E8B +0xFBB2 0x8F5F +0xFBB3 0x8FAF +0xFBB4 0x91BA +0xFBB5 0x942E +0xFBB6 0x9433 +0xFBB7 0x9435 +0xFBB8 0x943A +0xFBB9 0x9438 +0xFBBA 0x9432 +0xFBBB 0x942B +0xFBBC 0x95E2 +0xFBBD 0x9738 +0xFBBE 0x9739 +0xFBBF 0x9732 +0xFBC0 0x97FF +0xFBC1 0x9867 +0xFBC2 0x9865 +0xFBC3 0x9957 +0xFBC4 0x9A45 +0xFBC5 0x9A43 +0xFBC6 0x9A40 +0xFBC7 0x9A3E +0xFBC8 0x9ACF +0xFBC9 0x9B54 +0xFBCA 0x9B51 +0xFBCB 0x9C2D +0xFBCC 0x9C25 +0xFBCD 0x9DAF +0xFBCE 0x9DB4 +0xFBCF 0x9DC2 +0xFBD0 0x9DB8 +0xFBD1 0x9E9D +0xFBD2 0x9EEF +0xFBD3 0x9F19 +0xFBD4 0x9F5C +0xFBD5 0x9F66 +0xFBD6 0x9F67 +0xFBD7 0x513C +0xFBD8 0x513B +0xFBD9 0x56C8 +0xFBDA 0x56CA +0xFBDB 0x56C9 +0xFBDC 0x5B7F +0xFBDD 0x5DD4 +0xFBDE 0x5DD2 +0xFBDF 0x5F4E +0xFBE0 0x61FF +0xFBE1 0x6524 +0xFBE2 0x6B0A +0xFBE3 0x6B61 +0xFBE4 0x7051 +0xFBE5 0x7058 +0xFBE6 0x7380 +0xFBE7 0x74E4 +0xFBE8 0x758A +0xFBE9 0x766E +0xFBEA 0x766C +0xFBEB 0x79B3 +0xFBEC 0x7C60 +0xFBED 0x7C5F +0xFBEE 0x807E +0xFBEF 0x807D +0xFBF0 0x81DF +0xFBF1 0x8972 +0xFBF2 0x896F +0xFBF3 0x89FC +0xFBF4 0x8B80 +0xFBF5 0x8D16 +0xFBF6 0x8D17 +0xFBF7 0x8E91 +0xFBF8 0x8E93 +0xFBF9 0x8F61 +0xFBFA 0x9148 +0xFBFB 0x9444 +0xFBFC 0x9451 +0xFBFD 0x9452 +0xFBFE 0x973D +0xFCA1 0x973E +0xFCA2 0x97C3 +0xFCA3 0x97C1 +0xFCA4 0x986B +0xFCA5 0x9955 +0xFCA6 0x9A55 +0xFCA7 0x9A4D +0xFCA8 0x9AD2 +0xFCA9 0x9B1A +0xFCAA 0x9C49 +0xFCAB 0x9C31 +0xFCAC 0x9C3E +0xFCAD 0x9C3B +0xFCAE 0x9DD3 +0xFCAF 0x9DD7 +0xFCB0 0x9F34 +0xFCB1 0x9F6C +0xFCB2 0x9F6A +0xFCB3 0x9F94 +0xFCB4 0x56CC +0xFCB5 0x5DD6 +0xFCB6 0x6200 +0xFCB7 0x6523 +0xFCB8 0x652B +0xFCB9 0x652A +0xFCBA 0x66EC +0xFCBB 0x6B10 +0xFCBC 0x74DA +0xFCBD 0x7ACA +0xFCBE 0x7C64 +0xFCBF 0x7C63 +0xFCC0 0x7C65 +0xFCC1 0x7E93 +0xFCC2 0x7E96 +0xFCC3 0x7E94 +0xFCC4 0x81E2 +0xFCC5 0x8638 +0xFCC6 0x863F +0xFCC7 0x8831 +0xFCC8 0x8B8A +0xFCC9 0x9090 +0xFCCA 0x908F +0xFCCB 0x9463 +0xFCCC 0x9460 +0xFCCD 0x9464 +0xFCCE 0x9768 +0xFCCF 0x986F +0xFCD0 0x995C +0xFCD1 0x9A5A +0xFCD2 0x9A5B +0xFCD3 0x9A57 +0xFCD4 0x9AD3 +0xFCD5 0x9AD4 +0xFCD6 0x9AD1 +0xFCD7 0x9C54 +0xFCD8 0x9C57 +0xFCD9 0x9C56 +0xFCDA 0x9DE5 +0xFCDB 0x9E9F +0xFCDC 0x9EF4 +0xFCDD 0x56D1 +0xFCDE 0x58E9 +0xFCDF 0x652C +0xFCE0 0x705E +0xFCE1 0x7671 +0xFCE2 0x7672 +0xFCE3 0x77D7 +0xFCE4 0x7F50 +0xFCE5 0x7F88 +0xFCE6 0x8836 +0xFCE7 0x8839 +0xFCE8 0x8862 +0xFCE9 0x8B93 +0xFCEA 0x8B92 +0xFCEB 0x8B96 +0xFCEC 0x8277 +0xFCED 0x8D1B +0xFCEE 0x91C0 +0xFCEF 0x946A +0xFCF0 0x9742 +0xFCF1 0x9748 +0xFCF2 0x9744 +0xFCF3 0x97C6 +0xFCF4 0x9870 +0xFCF5 0x9A5F +0xFCF6 0x9B22 +0xFCF7 0x9B58 +0xFCF8 0x9C5F +0xFCF9 0x9DF9 +0xFCFA 0x9DFA +0xFCFB 0x9E7C +0xFCFC 0x9E7D +0xFCFD 0x9F07 +0xFCFE 0x9F77 +0xFDA1 0x9F72 +0xFDA2 0x5EF3 +0xFDA3 0x6B16 +0xFDA4 0x7063 +0xFDA5 0x7C6C +0xFDA6 0x7C6E +0xFDA7 0x883B +0xFDA8 0x89C0 +0xFDA9 0x8EA1 +0xFDAA 0x91C1 +0xFDAB 0x9472 +0xFDAC 0x9470 +0xFDAD 0x9871 +0xFDAE 0x995E +0xFDAF 0x9AD6 +0xFDB0 0x9B23 +0xFDB1 0x9ECC +0xFDB2 0x7064 +0xFDB3 0x77DA +0xFDB4 0x8B9A +0xFDB5 0x9477 +0xFDB6 0x97C9 +0xFDB7 0x9A62 +0xFDB8 0x9A65 +0xFDB9 0x7E9C +0xFDBA 0x8B9C +0xFDBB 0x8EAA +0xFDBC 0x91C5 +0xFDBD 0x947D +0xFDBE 0x947E +0xFDBF 0x947C +0xFDC0 0x9C77 +0xFDC1 0x9C78 +0xFDC2 0x9EF7 +0xFDC3 0x8C54 +0xFDC4 0x947F +0xFDC5 0x9E1A +0xFDC6 0x7228 +0xFDC7 0x9A6A +0xFDC8 0x9B31 +0xFDC9 0x9E1B +0xFDCA 0x9E1E +0xFDCB 0x7C72 diff --git a/3rdPartner/libiconv/tests/DEC-KANJI.TXT b/3rdPartner/libiconv/tests/DEC-KANJI.TXT new file mode 100644 index 0000000..9c6bf99 --- /dev/null +++ b/3rdPartner/libiconv/tests/DEC-KANJI.TXT @@ -0,0 +1,7007 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0xFF0C +0xA1A5 0xFF0E +0xA1A6 0x30FB +0xA1A7 0xFF1A +0xA1A8 0xFF1B +0xA1A9 0xFF1F +0xA1AA 0xFF01 +0xA1AB 0x309B +0xA1AC 0x309C +0xA1AD 0x00B4 +0xA1AE 0xFF40 +0xA1AF 0x00A8 +0xA1B0 0xFF3E +0xA1B1 0xFFE3 +0xA1B2 0xFF3F +0xA1B3 0x30FD +0xA1B4 0x30FE +0xA1B5 0x309D +0xA1B6 0x309E +0xA1B7 0x3003 +0xA1B8 0x4EDD +0xA1B9 0x3005 +0xA1BA 0x3006 +0xA1BB 0x3007 +0xA1BC 0x30FC +0xA1BD 0x2015 +0xA1BE 0x2010 +0xA1BF 0xFF0F +0xA1C0 0xFF3C +0xA1C1 0x301C +0xA1C2 0x2016 +0xA1C3 0xFF5C +0xA1C4 0x2026 +0xA1C5 0x2025 +0xA1C6 0x2018 +0xA1C7 0x2019 +0xA1C8 0x201C +0xA1C9 0x201D +0xA1CA 0xFF08 +0xA1CB 0xFF09 +0xA1CC 0x3014 +0xA1CD 0x3015 +0xA1CE 0xFF3B +0xA1CF 0xFF3D +0xA1D0 0xFF5B +0xA1D1 0xFF5D +0xA1D2 0x3008 +0xA1D3 0x3009 +0xA1D4 0x300A +0xA1D5 0x300B +0xA1D6 0x300C +0xA1D7 0x300D +0xA1D8 0x300E +0xA1D9 0x300F +0xA1DA 0x3010 +0xA1DB 0x3011 +0xA1DC 0xFF0B +0xA1DD 0x2212 +0xA1DE 0x00B1 +0xA1DF 0x00D7 +0xA1E0 0x00F7 +0xA1E1 0xFF1D +0xA1E2 0x2260 +0xA1E3 0xFF1C +0xA1E4 0xFF1E +0xA1E5 0x2266 +0xA1E6 0x2267 +0xA1E7 0x221E +0xA1E8 0x2234 +0xA1E9 0x2642 +0xA1EA 0x2640 +0xA1EB 0x00B0 +0xA1EC 0x2032 +0xA1ED 0x2033 +0xA1EE 0x2103 +0xA1EF 0xFFE5 +0xA1F0 0xFF04 +0xA1F1 0x00A2 +0xA1F2 0x00A3 +0xA1F3 0xFF05 +0xA1F4 0xFF03 +0xA1F5 0xFF06 +0xA1F6 0xFF0A +0xA1F7 0xFF20 +0xA1F8 0x00A7 +0xA1F9 0x2606 +0xA1FA 0x2605 +0xA1FB 0x25CB +0xA1FC 0x25CF +0xA1FD 0x25CE +0xA1FE 0x25C7 +0xA2A1 0x25C6 +0xA2A2 0x25A1 +0xA2A3 0x25A0 +0xA2A4 0x25B3 +0xA2A5 0x25B2 +0xA2A6 0x25BD +0xA2A7 0x25BC +0xA2A8 0x203B +0xA2A9 0x3012 +0xA2AA 0x2192 +0xA2AB 0x2190 +0xA2AC 0x2191 +0xA2AD 0x2193 +0xA2AE 0x3013 +0xA2BA 0x2208 +0xA2BB 0x220B +0xA2BC 0x2286 +0xA2BD 0x2287 +0xA2BE 0x2282 +0xA2BF 0x2283 +0xA2C0 0x222A +0xA2C1 0x2229 +0xA2CA 0x2227 +0xA2CB 0x2228 +0xA2CC 0x00AC +0xA2CD 0x21D2 +0xA2CE 0x21D4 +0xA2CF 0x2200 +0xA2D0 0x2203 +0xA2DC 0x2220 +0xA2DD 0x22A5 +0xA2DE 0x2312 +0xA2DF 0x2202 +0xA2E0 0x2207 +0xA2E1 0x2261 +0xA2E2 0x2252 +0xA2E3 0x226A +0xA2E4 0x226B +0xA2E5 0x221A +0xA2E6 0x223D +0xA2E7 0x221D +0xA2E8 0x2235 +0xA2E9 0x222B +0xA2EA 0x222C +0xA2F2 0x212B +0xA2F3 0x2030 +0xA2F4 0x266F +0xA2F5 0x266D +0xA2F6 0x266A +0xA2F7 0x2020 +0xA2F8 0x2021 +0xA2F9 0x00B6 +0xA2FE 0x25EF +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA8A1 0x2500 +0xA8A2 0x2502 +0xA8A3 0x250C +0xA8A4 0x2510 +0xA8A5 0x2518 +0xA8A6 0x2514 +0xA8A7 0x251C +0xA8A8 0x252C +0xA8A9 0x2524 +0xA8AA 0x2534 +0xA8AB 0x253C +0xA8AC 0x2501 +0xA8AD 0x2503 +0xA8AE 0x250F +0xA8AF 0x2513 +0xA8B0 0x251B +0xA8B1 0x2517 +0xA8B2 0x2523 +0xA8B3 0x2533 +0xA8B4 0x252B +0xA8B5 0x253B +0xA8B6 0x254B +0xA8B7 0x2520 +0xA8B8 0x252F +0xA8B9 0x2528 +0xA8BA 0x2537 +0xA8BB 0x253F +0xA8BC 0x251D +0xA8BD 0x2530 +0xA8BE 0x2525 +0xA8BF 0x2538 +0xA8C0 0x2542 +0xB0A1 0x4E9C +0xB0A2 0x5516 +0xB0A3 0x5A03 +0xB0A4 0x963F +0xB0A5 0x54C0 +0xB0A6 0x611B +0xB0A7 0x6328 +0xB0A8 0x59F6 +0xB0A9 0x9022 +0xB0AA 0x8475 +0xB0AB 0x831C +0xB0AC 0x7A50 +0xB0AD 0x60AA +0xB0AE 0x63E1 +0xB0AF 0x6E25 +0xB0B0 0x65ED +0xB0B1 0x8466 +0xB0B2 0x82A6 +0xB0B3 0x9BF5 +0xB0B4 0x6893 +0xB0B5 0x5727 +0xB0B6 0x65A1 +0xB0B7 0x6271 +0xB0B8 0x5B9B +0xB0B9 0x59D0 +0xB0BA 0x867B +0xB0BB 0x98F4 +0xB0BC 0x7D62 +0xB0BD 0x7DBE +0xB0BE 0x9B8E +0xB0BF 0x6216 +0xB0C0 0x7C9F +0xB0C1 0x88B7 +0xB0C2 0x5B89 +0xB0C3 0x5EB5 +0xB0C4 0x6309 +0xB0C5 0x6697 +0xB0C6 0x6848 +0xB0C7 0x95C7 +0xB0C8 0x978D +0xB0C9 0x674F +0xB0CA 0x4EE5 +0xB0CB 0x4F0A +0xB0CC 0x4F4D +0xB0CD 0x4F9D +0xB0CE 0x5049 +0xB0CF 0x56F2 +0xB0D0 0x5937 +0xB0D1 0x59D4 +0xB0D2 0x5A01 +0xB0D3 0x5C09 +0xB0D4 0x60DF +0xB0D5 0x610F +0xB0D6 0x6170 +0xB0D7 0x6613 +0xB0D8 0x6905 +0xB0D9 0x70BA +0xB0DA 0x754F +0xB0DB 0x7570 +0xB0DC 0x79FB +0xB0DD 0x7DAD +0xB0DE 0x7DEF +0xB0DF 0x80C3 +0xB0E0 0x840E +0xB0E1 0x8863 +0xB0E2 0x8B02 +0xB0E3 0x9055 +0xB0E4 0x907A +0xB0E5 0x533B +0xB0E6 0x4E95 +0xB0E7 0x4EA5 +0xB0E8 0x57DF +0xB0E9 0x80B2 +0xB0EA 0x90C1 +0xB0EB 0x78EF +0xB0EC 0x4E00 +0xB0ED 0x58F1 +0xB0EE 0x6EA2 +0xB0EF 0x9038 +0xB0F0 0x7A32 +0xB0F1 0x8328 +0xB0F2 0x828B +0xB0F3 0x9C2F +0xB0F4 0x5141 +0xB0F5 0x5370 +0xB0F6 0x54BD +0xB0F7 0x54E1 +0xB0F8 0x56E0 +0xB0F9 0x59FB +0xB0FA 0x5F15 +0xB0FB 0x98F2 +0xB0FC 0x6DEB +0xB0FD 0x80E4 +0xB0FE 0x852D +0xB1A1 0x9662 +0xB1A2 0x9670 +0xB1A3 0x96A0 +0xB1A4 0x97FB +0xB1A5 0x540B +0xB1A6 0x53F3 +0xB1A7 0x5B87 +0xB1A8 0x70CF +0xB1A9 0x7FBD +0xB1AA 0x8FC2 +0xB1AB 0x96E8 +0xB1AC 0x536F +0xB1AD 0x9D5C +0xB1AE 0x7ABA +0xB1AF 0x4E11 +0xB1B0 0x7893 +0xB1B1 0x81FC +0xB1B2 0x6E26 +0xB1B3 0x5618 +0xB1B4 0x5504 +0xB1B5 0x6B1D +0xB1B6 0x851A +0xB1B7 0x9C3B +0xB1B8 0x59E5 +0xB1B9 0x53A9 +0xB1BA 0x6D66 +0xB1BB 0x74DC +0xB1BC 0x958F +0xB1BD 0x5642 +0xB1BE 0x4E91 +0xB1BF 0x904B +0xB1C0 0x96F2 +0xB1C1 0x834F +0xB1C2 0x990C +0xB1C3 0x53E1 +0xB1C4 0x55B6 +0xB1C5 0x5B30 +0xB1C6 0x5F71 +0xB1C7 0x6620 +0xB1C8 0x66F3 +0xB1C9 0x6804 +0xB1CA 0x6C38 +0xB1CB 0x6CF3 +0xB1CC 0x6D29 +0xB1CD 0x745B +0xB1CE 0x76C8 +0xB1CF 0x7A4E +0xB1D0 0x9834 +0xB1D1 0x82F1 +0xB1D2 0x885B +0xB1D3 0x8A60 +0xB1D4 0x92ED +0xB1D5 0x6DB2 +0xB1D6 0x75AB +0xB1D7 0x76CA +0xB1D8 0x99C5 +0xB1D9 0x60A6 +0xB1DA 0x8B01 +0xB1DB 0x8D8A +0xB1DC 0x95B2 +0xB1DD 0x698E +0xB1DE 0x53AD +0xB1DF 0x5186 +0xB1E0 0x5712 +0xB1E1 0x5830 +0xB1E2 0x5944 +0xB1E3 0x5BB4 +0xB1E4 0x5EF6 +0xB1E5 0x6028 +0xB1E6 0x63A9 +0xB1E7 0x63F4 +0xB1E8 0x6CBF +0xB1E9 0x6F14 +0xB1EA 0x708E +0xB1EB 0x7114 +0xB1EC 0x7159 +0xB1ED 0x71D5 +0xB1EE 0x733F +0xB1EF 0x7E01 +0xB1F0 0x8276 +0xB1F1 0x82D1 +0xB1F2 0x8597 +0xB1F3 0x9060 +0xB1F4 0x925B +0xB1F5 0x9D1B +0xB1F6 0x5869 +0xB1F7 0x65BC +0xB1F8 0x6C5A +0xB1F9 0x7525 +0xB1FA 0x51F9 +0xB1FB 0x592E +0xB1FC 0x5965 +0xB1FD 0x5F80 +0xB1FE 0x5FDC +0xB2A1 0x62BC +0xB2A2 0x65FA +0xB2A3 0x6A2A +0xB2A4 0x6B27 +0xB2A5 0x6BB4 +0xB2A6 0x738B +0xB2A7 0x7FC1 +0xB2A8 0x8956 +0xB2A9 0x9D2C +0xB2AA 0x9D0E +0xB2AB 0x9EC4 +0xB2AC 0x5CA1 +0xB2AD 0x6C96 +0xB2AE 0x837B +0xB2AF 0x5104 +0xB2B0 0x5C4B +0xB2B1 0x61B6 +0xB2B2 0x81C6 +0xB2B3 0x6876 +0xB2B4 0x7261 +0xB2B5 0x4E59 +0xB2B6 0x4FFA +0xB2B7 0x5378 +0xB2B8 0x6069 +0xB2B9 0x6E29 +0xB2BA 0x7A4F +0xB2BB 0x97F3 +0xB2BC 0x4E0B +0xB2BD 0x5316 +0xB2BE 0x4EEE +0xB2BF 0x4F55 +0xB2C0 0x4F3D +0xB2C1 0x4FA1 +0xB2C2 0x4F73 +0xB2C3 0x52A0 +0xB2C4 0x53EF +0xB2C5 0x5609 +0xB2C6 0x590F +0xB2C7 0x5AC1 +0xB2C8 0x5BB6 +0xB2C9 0x5BE1 +0xB2CA 0x79D1 +0xB2CB 0x6687 +0xB2CC 0x679C +0xB2CD 0x67B6 +0xB2CE 0x6B4C +0xB2CF 0x6CB3 +0xB2D0 0x706B +0xB2D1 0x73C2 +0xB2D2 0x798D +0xB2D3 0x79BE +0xB2D4 0x7A3C +0xB2D5 0x7B87 +0xB2D6 0x82B1 +0xB2D7 0x82DB +0xB2D8 0x8304 +0xB2D9 0x8377 +0xB2DA 0x83EF +0xB2DB 0x83D3 +0xB2DC 0x8766 +0xB2DD 0x8AB2 +0xB2DE 0x5629 +0xB2DF 0x8CA8 +0xB2E0 0x8FE6 +0xB2E1 0x904E +0xB2E2 0x971E +0xB2E3 0x868A +0xB2E4 0x4FC4 +0xB2E5 0x5CE8 +0xB2E6 0x6211 +0xB2E7 0x7259 +0xB2E8 0x753B +0xB2E9 0x81E5 +0xB2EA 0x82BD +0xB2EB 0x86FE +0xB2EC 0x8CC0 +0xB2ED 0x96C5 +0xB2EE 0x9913 +0xB2EF 0x99D5 +0xB2F0 0x4ECB +0xB2F1 0x4F1A +0xB2F2 0x89E3 +0xB2F3 0x56DE +0xB2F4 0x584A +0xB2F5 0x58CA +0xB2F6 0x5EFB +0xB2F7 0x5FEB +0xB2F8 0x602A +0xB2F9 0x6094 +0xB2FA 0x6062 +0xB2FB 0x61D0 +0xB2FC 0x6212 +0xB2FD 0x62D0 +0xB2FE 0x6539 +0xB3A1 0x9B41 +0xB3A2 0x6666 +0xB3A3 0x68B0 +0xB3A4 0x6D77 +0xB3A5 0x7070 +0xB3A6 0x754C +0xB3A7 0x7686 +0xB3A8 0x7D75 +0xB3A9 0x82A5 +0xB3AA 0x87F9 +0xB3AB 0x958B +0xB3AC 0x968E +0xB3AD 0x8C9D +0xB3AE 0x51F1 +0xB3AF 0x52BE +0xB3B0 0x5916 +0xB3B1 0x54B3 +0xB3B2 0x5BB3 +0xB3B3 0x5D16 +0xB3B4 0x6168 +0xB3B5 0x6982 +0xB3B6 0x6DAF +0xB3B7 0x788D +0xB3B8 0x84CB +0xB3B9 0x8857 +0xB3BA 0x8A72 +0xB3BB 0x93A7 +0xB3BC 0x9AB8 +0xB3BD 0x6D6C +0xB3BE 0x99A8 +0xB3BF 0x86D9 +0xB3C0 0x57A3 +0xB3C1 0x67FF +0xB3C2 0x86CE +0xB3C3 0x920E +0xB3C4 0x5283 +0xB3C5 0x5687 +0xB3C6 0x5404 +0xB3C7 0x5ED3 +0xB3C8 0x62E1 +0xB3C9 0x64B9 +0xB3CA 0x683C +0xB3CB 0x6838 +0xB3CC 0x6BBB +0xB3CD 0x7372 +0xB3CE 0x78BA +0xB3CF 0x7A6B +0xB3D0 0x899A +0xB3D1 0x89D2 +0xB3D2 0x8D6B +0xB3D3 0x8F03 +0xB3D4 0x90ED +0xB3D5 0x95A3 +0xB3D6 0x9694 +0xB3D7 0x9769 +0xB3D8 0x5B66 +0xB3D9 0x5CB3 +0xB3DA 0x697D +0xB3DB 0x984D +0xB3DC 0x984E +0xB3DD 0x639B +0xB3DE 0x7B20 +0xB3DF 0x6A2B +0xB3E0 0x6A7F +0xB3E1 0x68B6 +0xB3E2 0x9C0D +0xB3E3 0x6F5F +0xB3E4 0x5272 +0xB3E5 0x559D +0xB3E6 0x6070 +0xB3E7 0x62EC +0xB3E8 0x6D3B +0xB3E9 0x6E07 +0xB3EA 0x6ED1 +0xB3EB 0x845B +0xB3EC 0x8910 +0xB3ED 0x8F44 +0xB3EE 0x4E14 +0xB3EF 0x9C39 +0xB3F0 0x53F6 +0xB3F1 0x691B +0xB3F2 0x6A3A +0xB3F3 0x9784 +0xB3F4 0x682A +0xB3F5 0x515C +0xB3F6 0x7AC3 +0xB3F7 0x84B2 +0xB3F8 0x91DC +0xB3F9 0x938C +0xB3FA 0x565B +0xB3FB 0x9D28 +0xB3FC 0x6822 +0xB3FD 0x8305 +0xB3FE 0x8431 +0xB4A1 0x7CA5 +0xB4A2 0x5208 +0xB4A3 0x82C5 +0xB4A4 0x74E6 +0xB4A5 0x4E7E +0xB4A6 0x4F83 +0xB4A7 0x51A0 +0xB4A8 0x5BD2 +0xB4A9 0x520A +0xB4AA 0x52D8 +0xB4AB 0x52E7 +0xB4AC 0x5DFB +0xB4AD 0x559A +0xB4AE 0x582A +0xB4AF 0x59E6 +0xB4B0 0x5B8C +0xB4B1 0x5B98 +0xB4B2 0x5BDB +0xB4B3 0x5E72 +0xB4B4 0x5E79 +0xB4B5 0x60A3 +0xB4B6 0x611F +0xB4B7 0x6163 +0xB4B8 0x61BE +0xB4B9 0x63DB +0xB4BA 0x6562 +0xB4BB 0x67D1 +0xB4BC 0x6853 +0xB4BD 0x68FA +0xB4BE 0x6B3E +0xB4BF 0x6B53 +0xB4C0 0x6C57 +0xB4C1 0x6F22 +0xB4C2 0x6F97 +0xB4C3 0x6F45 +0xB4C4 0x74B0 +0xB4C5 0x7518 +0xB4C6 0x76E3 +0xB4C7 0x770B +0xB4C8 0x7AFF +0xB4C9 0x7BA1 +0xB4CA 0x7C21 +0xB4CB 0x7DE9 +0xB4CC 0x7F36 +0xB4CD 0x7FF0 +0xB4CE 0x809D +0xB4CF 0x8266 +0xB4D0 0x839E +0xB4D1 0x89B3 +0xB4D2 0x8ACC +0xB4D3 0x8CAB +0xB4D4 0x9084 +0xB4D5 0x9451 +0xB4D6 0x9593 +0xB4D7 0x9591 +0xB4D8 0x95A2 +0xB4D9 0x9665 +0xB4DA 0x97D3 +0xB4DB 0x9928 +0xB4DC 0x8218 +0xB4DD 0x4E38 +0xB4DE 0x542B +0xB4DF 0x5CB8 +0xB4E0 0x5DCC +0xB4E1 0x73A9 +0xB4E2 0x764C +0xB4E3 0x773C +0xB4E4 0x5CA9 +0xB4E5 0x7FEB +0xB4E6 0x8D0B +0xB4E7 0x96C1 +0xB4E8 0x9811 +0xB4E9 0x9854 +0xB4EA 0x9858 +0xB4EB 0x4F01 +0xB4EC 0x4F0E +0xB4ED 0x5371 +0xB4EE 0x559C +0xB4EF 0x5668 +0xB4F0 0x57FA +0xB4F1 0x5947 +0xB4F2 0x5B09 +0xB4F3 0x5BC4 +0xB4F4 0x5C90 +0xB4F5 0x5E0C +0xB4F6 0x5E7E +0xB4F7 0x5FCC +0xB4F8 0x63EE +0xB4F9 0x673A +0xB4FA 0x65D7 +0xB4FB 0x65E2 +0xB4FC 0x671F +0xB4FD 0x68CB +0xB4FE 0x68C4 +0xB5A1 0x6A5F +0xB5A2 0x5E30 +0xB5A3 0x6BC5 +0xB5A4 0x6C17 +0xB5A5 0x6C7D +0xB5A6 0x757F +0xB5A7 0x7948 +0xB5A8 0x5B63 +0xB5A9 0x7A00 +0xB5AA 0x7D00 +0xB5AB 0x5FBD +0xB5AC 0x898F +0xB5AD 0x8A18 +0xB5AE 0x8CB4 +0xB5AF 0x8D77 +0xB5B0 0x8ECC +0xB5B1 0x8F1D +0xB5B2 0x98E2 +0xB5B3 0x9A0E +0xB5B4 0x9B3C +0xB5B5 0x4E80 +0xB5B6 0x507D +0xB5B7 0x5100 +0xB5B8 0x5993 +0xB5B9 0x5B9C +0xB5BA 0x622F +0xB5BB 0x6280 +0xB5BC 0x64EC +0xB5BD 0x6B3A +0xB5BE 0x72A0 +0xB5BF 0x7591 +0xB5C0 0x7947 +0xB5C1 0x7FA9 +0xB5C2 0x87FB +0xB5C3 0x8ABC +0xB5C4 0x8B70 +0xB5C5 0x63AC +0xB5C6 0x83CA +0xB5C7 0x97A0 +0xB5C8 0x5409 +0xB5C9 0x5403 +0xB5CA 0x55AB +0xB5CB 0x6854 +0xB5CC 0x6A58 +0xB5CD 0x8A70 +0xB5CE 0x7827 +0xB5CF 0x6775 +0xB5D0 0x9ECD +0xB5D1 0x5374 +0xB5D2 0x5BA2 +0xB5D3 0x811A +0xB5D4 0x8650 +0xB5D5 0x9006 +0xB5D6 0x4E18 +0xB5D7 0x4E45 +0xB5D8 0x4EC7 +0xB5D9 0x4F11 +0xB5DA 0x53CA +0xB5DB 0x5438 +0xB5DC 0x5BAE +0xB5DD 0x5F13 +0xB5DE 0x6025 +0xB5DF 0x6551 +0xB5E0 0x673D +0xB5E1 0x6C42 +0xB5E2 0x6C72 +0xB5E3 0x6CE3 +0xB5E4 0x7078 +0xB5E5 0x7403 +0xB5E6 0x7A76 +0xB5E7 0x7AAE +0xB5E8 0x7B08 +0xB5E9 0x7D1A +0xB5EA 0x7CFE +0xB5EB 0x7D66 +0xB5EC 0x65E7 +0xB5ED 0x725B +0xB5EE 0x53BB +0xB5EF 0x5C45 +0xB5F0 0x5DE8 +0xB5F1 0x62D2 +0xB5F2 0x62E0 +0xB5F3 0x6319 +0xB5F4 0x6E20 +0xB5F5 0x865A +0xB5F6 0x8A31 +0xB5F7 0x8DDD +0xB5F8 0x92F8 +0xB5F9 0x6F01 +0xB5FA 0x79A6 +0xB5FB 0x9B5A +0xB5FC 0x4EA8 +0xB5FD 0x4EAB +0xB5FE 0x4EAC +0xB6A1 0x4F9B +0xB6A2 0x4FA0 +0xB6A3 0x50D1 +0xB6A4 0x5147 +0xB6A5 0x7AF6 +0xB6A6 0x5171 +0xB6A7 0x51F6 +0xB6A8 0x5354 +0xB6A9 0x5321 +0xB6AA 0x537F +0xB6AB 0x53EB +0xB6AC 0x55AC +0xB6AD 0x5883 +0xB6AE 0x5CE1 +0xB6AF 0x5F37 +0xB6B0 0x5F4A +0xB6B1 0x602F +0xB6B2 0x6050 +0xB6B3 0x606D +0xB6B4 0x631F +0xB6B5 0x6559 +0xB6B6 0x6A4B +0xB6B7 0x6CC1 +0xB6B8 0x72C2 +0xB6B9 0x72ED +0xB6BA 0x77EF +0xB6BB 0x80F8 +0xB6BC 0x8105 +0xB6BD 0x8208 +0xB6BE 0x854E +0xB6BF 0x90F7 +0xB6C0 0x93E1 +0xB6C1 0x97FF +0xB6C2 0x9957 +0xB6C3 0x9A5A +0xB6C4 0x4EF0 +0xB6C5 0x51DD +0xB6C6 0x5C2D +0xB6C7 0x6681 +0xB6C8 0x696D +0xB6C9 0x5C40 +0xB6CA 0x66F2 +0xB6CB 0x6975 +0xB6CC 0x7389 +0xB6CD 0x6850 +0xB6CE 0x7C81 +0xB6CF 0x50C5 +0xB6D0 0x52E4 +0xB6D1 0x5747 +0xB6D2 0x5DFE +0xB6D3 0x9326 +0xB6D4 0x65A4 +0xB6D5 0x6B23 +0xB6D6 0x6B3D +0xB6D7 0x7434 +0xB6D8 0x7981 +0xB6D9 0x79BD +0xB6DA 0x7B4B +0xB6DB 0x7DCA +0xB6DC 0x82B9 +0xB6DD 0x83CC +0xB6DE 0x887F +0xB6DF 0x895F +0xB6E0 0x8B39 +0xB6E1 0x8FD1 +0xB6E2 0x91D1 +0xB6E3 0x541F +0xB6E4 0x9280 +0xB6E5 0x4E5D +0xB6E6 0x5036 +0xB6E7 0x53E5 +0xB6E8 0x533A +0xB6E9 0x72D7 +0xB6EA 0x7396 +0xB6EB 0x77E9 +0xB6EC 0x82E6 +0xB6ED 0x8EAF +0xB6EE 0x99C6 +0xB6EF 0x99C8 +0xB6F0 0x99D2 +0xB6F1 0x5177 +0xB6F2 0x611A +0xB6F3 0x865E +0xB6F4 0x55B0 +0xB6F5 0x7A7A +0xB6F6 0x5076 +0xB6F7 0x5BD3 +0xB6F8 0x9047 +0xB6F9 0x9685 +0xB6FA 0x4E32 +0xB6FB 0x6ADB +0xB6FC 0x91E7 +0xB6FD 0x5C51 +0xB6FE 0x5C48 +0xB7A1 0x6398 +0xB7A2 0x7A9F +0xB7A3 0x6C93 +0xB7A4 0x9774 +0xB7A5 0x8F61 +0xB7A6 0x7AAA +0xB7A7 0x718A +0xB7A8 0x9688 +0xB7A9 0x7C82 +0xB7AA 0x6817 +0xB7AB 0x7E70 +0xB7AC 0x6851 +0xB7AD 0x936C +0xB7AE 0x52F2 +0xB7AF 0x541B +0xB7B0 0x85AB +0xB7B1 0x8A13 +0xB7B2 0x7FA4 +0xB7B3 0x8ECD +0xB7B4 0x90E1 +0xB7B5 0x5366 +0xB7B6 0x8888 +0xB7B7 0x7941 +0xB7B8 0x4FC2 +0xB7B9 0x50BE +0xB7BA 0x5211 +0xB7BB 0x5144 +0xB7BC 0x5553 +0xB7BD 0x572D +0xB7BE 0x73EA +0xB7BF 0x578B +0xB7C0 0x5951 +0xB7C1 0x5F62 +0xB7C2 0x5F84 +0xB7C3 0x6075 +0xB7C4 0x6176 +0xB7C5 0x6167 +0xB7C6 0x61A9 +0xB7C7 0x63B2 +0xB7C8 0x643A +0xB7C9 0x656C +0xB7CA 0x666F +0xB7CB 0x6842 +0xB7CC 0x6E13 +0xB7CD 0x7566 +0xB7CE 0x7A3D +0xB7CF 0x7CFB +0xB7D0 0x7D4C +0xB7D1 0x7D99 +0xB7D2 0x7E4B +0xB7D3 0x7F6B +0xB7D4 0x830E +0xB7D5 0x834A +0xB7D6 0x86CD +0xB7D7 0x8A08 +0xB7D8 0x8A63 +0xB7D9 0x8B66 +0xB7DA 0x8EFD +0xB7DB 0x981A +0xB7DC 0x9D8F +0xB7DD 0x82B8 +0xB7DE 0x8FCE +0xB7DF 0x9BE8 +0xB7E0 0x5287 +0xB7E1 0x621F +0xB7E2 0x6483 +0xB7E3 0x6FC0 +0xB7E4 0x9699 +0xB7E5 0x6841 +0xB7E6 0x5091 +0xB7E7 0x6B20 +0xB7E8 0x6C7A +0xB7E9 0x6F54 +0xB7EA 0x7A74 +0xB7EB 0x7D50 +0xB7EC 0x8840 +0xB7ED 0x8A23 +0xB7EE 0x6708 +0xB7EF 0x4EF6 +0xB7F0 0x5039 +0xB7F1 0x5026 +0xB7F2 0x5065 +0xB7F3 0x517C +0xB7F4 0x5238 +0xB7F5 0x5263 +0xB7F6 0x55A7 +0xB7F7 0x570F +0xB7F8 0x5805 +0xB7F9 0x5ACC +0xB7FA 0x5EFA +0xB7FB 0x61B2 +0xB7FC 0x61F8 +0xB7FD 0x62F3 +0xB7FE 0x6372 +0xB8A1 0x691C +0xB8A2 0x6A29 +0xB8A3 0x727D +0xB8A4 0x72AC +0xB8A5 0x732E +0xB8A6 0x7814 +0xB8A7 0x786F +0xB8A8 0x7D79 +0xB8A9 0x770C +0xB8AA 0x80A9 +0xB8AB 0x898B +0xB8AC 0x8B19 +0xB8AD 0x8CE2 +0xB8AE 0x8ED2 +0xB8AF 0x9063 +0xB8B0 0x9375 +0xB8B1 0x967A +0xB8B2 0x9855 +0xB8B3 0x9A13 +0xB8B4 0x9E78 +0xB8B5 0x5143 +0xB8B6 0x539F +0xB8B7 0x53B3 +0xB8B8 0x5E7B +0xB8B9 0x5F26 +0xB8BA 0x6E1B +0xB8BB 0x6E90 +0xB8BC 0x7384 +0xB8BD 0x73FE +0xB8BE 0x7D43 +0xB8BF 0x8237 +0xB8C0 0x8A00 +0xB8C1 0x8AFA +0xB8C2 0x9650 +0xB8C3 0x4E4E +0xB8C4 0x500B +0xB8C5 0x53E4 +0xB8C6 0x547C +0xB8C7 0x56FA +0xB8C8 0x59D1 +0xB8C9 0x5B64 +0xB8CA 0x5DF1 +0xB8CB 0x5EAB +0xB8CC 0x5F27 +0xB8CD 0x6238 +0xB8CE 0x6545 +0xB8CF 0x67AF +0xB8D0 0x6E56 +0xB8D1 0x72D0 +0xB8D2 0x7CCA +0xB8D3 0x88B4 +0xB8D4 0x80A1 +0xB8D5 0x80E1 +0xB8D6 0x83F0 +0xB8D7 0x864E +0xB8D8 0x8A87 +0xB8D9 0x8DE8 +0xB8DA 0x9237 +0xB8DB 0x96C7 +0xB8DC 0x9867 +0xB8DD 0x9F13 +0xB8DE 0x4E94 +0xB8DF 0x4E92 +0xB8E0 0x4F0D +0xB8E1 0x5348 +0xB8E2 0x5449 +0xB8E3 0x543E +0xB8E4 0x5A2F +0xB8E5 0x5F8C +0xB8E6 0x5FA1 +0xB8E7 0x609F +0xB8E8 0x68A7 +0xB8E9 0x6A8E +0xB8EA 0x745A +0xB8EB 0x7881 +0xB8EC 0x8A9E +0xB8ED 0x8AA4 +0xB8EE 0x8B77 +0xB8EF 0x9190 +0xB8F0 0x4E5E +0xB8F1 0x9BC9 +0xB8F2 0x4EA4 +0xB8F3 0x4F7C +0xB8F4 0x4FAF +0xB8F5 0x5019 +0xB8F6 0x5016 +0xB8F7 0x5149 +0xB8F8 0x516C +0xB8F9 0x529F +0xB8FA 0x52B9 +0xB8FB 0x52FE +0xB8FC 0x539A +0xB8FD 0x53E3 +0xB8FE 0x5411 +0xB9A1 0x540E +0xB9A2 0x5589 +0xB9A3 0x5751 +0xB9A4 0x57A2 +0xB9A5 0x597D +0xB9A6 0x5B54 +0xB9A7 0x5B5D +0xB9A8 0x5B8F +0xB9A9 0x5DE5 +0xB9AA 0x5DE7 +0xB9AB 0x5DF7 +0xB9AC 0x5E78 +0xB9AD 0x5E83 +0xB9AE 0x5E9A +0xB9AF 0x5EB7 +0xB9B0 0x5F18 +0xB9B1 0x6052 +0xB9B2 0x614C +0xB9B3 0x6297 +0xB9B4 0x62D8 +0xB9B5 0x63A7 +0xB9B6 0x653B +0xB9B7 0x6602 +0xB9B8 0x6643 +0xB9B9 0x66F4 +0xB9BA 0x676D +0xB9BB 0x6821 +0xB9BC 0x6897 +0xB9BD 0x69CB +0xB9BE 0x6C5F +0xB9BF 0x6D2A +0xB9C0 0x6D69 +0xB9C1 0x6E2F +0xB9C2 0x6E9D +0xB9C3 0x7532 +0xB9C4 0x7687 +0xB9C5 0x786C +0xB9C6 0x7A3F +0xB9C7 0x7CE0 +0xB9C8 0x7D05 +0xB9C9 0x7D18 +0xB9CA 0x7D5E +0xB9CB 0x7DB1 +0xB9CC 0x8015 +0xB9CD 0x8003 +0xB9CE 0x80AF +0xB9CF 0x80B1 +0xB9D0 0x8154 +0xB9D1 0x818F +0xB9D2 0x822A +0xB9D3 0x8352 +0xB9D4 0x884C +0xB9D5 0x8861 +0xB9D6 0x8B1B +0xB9D7 0x8CA2 +0xB9D8 0x8CFC +0xB9D9 0x90CA +0xB9DA 0x9175 +0xB9DB 0x9271 +0xB9DC 0x783F +0xB9DD 0x92FC +0xB9DE 0x95A4 +0xB9DF 0x964D +0xB9E0 0x9805 +0xB9E1 0x9999 +0xB9E2 0x9AD8 +0xB9E3 0x9D3B +0xB9E4 0x525B +0xB9E5 0x52AB +0xB9E6 0x53F7 +0xB9E7 0x5408 +0xB9E8 0x58D5 +0xB9E9 0x62F7 +0xB9EA 0x6FE0 +0xB9EB 0x8C6A +0xB9EC 0x8F5F +0xB9ED 0x9EB9 +0xB9EE 0x514B +0xB9EF 0x523B +0xB9F0 0x544A +0xB9F1 0x56FD +0xB9F2 0x7A40 +0xB9F3 0x9177 +0xB9F4 0x9D60 +0xB9F5 0x9ED2 +0xB9F6 0x7344 +0xB9F7 0x6F09 +0xB9F8 0x8170 +0xB9F9 0x7511 +0xB9FA 0x5FFD +0xB9FB 0x60DA +0xB9FC 0x9AA8 +0xB9FD 0x72DB +0xB9FE 0x8FBC +0xBAA1 0x6B64 +0xBAA2 0x9803 +0xBAA3 0x4ECA +0xBAA4 0x56F0 +0xBAA5 0x5764 +0xBAA6 0x58BE +0xBAA7 0x5A5A +0xBAA8 0x6068 +0xBAA9 0x61C7 +0xBAAA 0x660F +0xBAAB 0x6606 +0xBAAC 0x6839 +0xBAAD 0x68B1 +0xBAAE 0x6DF7 +0xBAAF 0x75D5 +0xBAB0 0x7D3A +0xBAB1 0x826E +0xBAB2 0x9B42 +0xBAB3 0x4E9B +0xBAB4 0x4F50 +0xBAB5 0x53C9 +0xBAB6 0x5506 +0xBAB7 0x5D6F +0xBAB8 0x5DE6 +0xBAB9 0x5DEE +0xBABA 0x67FB +0xBABB 0x6C99 +0xBABC 0x7473 +0xBABD 0x7802 +0xBABE 0x8A50 +0xBABF 0x9396 +0xBAC0 0x88DF +0xBAC1 0x5750 +0xBAC2 0x5EA7 +0xBAC3 0x632B +0xBAC4 0x50B5 +0xBAC5 0x50AC +0xBAC6 0x518D +0xBAC7 0x6700 +0xBAC8 0x54C9 +0xBAC9 0x585E +0xBACA 0x59BB +0xBACB 0x5BB0 +0xBACC 0x5F69 +0xBACD 0x624D +0xBACE 0x63A1 +0xBACF 0x683D +0xBAD0 0x6B73 +0xBAD1 0x6E08 +0xBAD2 0x707D +0xBAD3 0x91C7 +0xBAD4 0x7280 +0xBAD5 0x7815 +0xBAD6 0x7826 +0xBAD7 0x796D +0xBAD8 0x658E +0xBAD9 0x7D30 +0xBADA 0x83DC +0xBADB 0x88C1 +0xBADC 0x8F09 +0xBADD 0x969B +0xBADE 0x5264 +0xBADF 0x5728 +0xBAE0 0x6750 +0xBAE1 0x7F6A +0xBAE2 0x8CA1 +0xBAE3 0x51B4 +0xBAE4 0x5742 +0xBAE5 0x962A +0xBAE6 0x583A +0xBAE7 0x698A +0xBAE8 0x80B4 +0xBAE9 0x54B2 +0xBAEA 0x5D0E +0xBAEB 0x57FC +0xBAEC 0x7895 +0xBAED 0x9DFA +0xBAEE 0x4F5C +0xBAEF 0x524A +0xBAF0 0x548B +0xBAF1 0x643E +0xBAF2 0x6628 +0xBAF3 0x6714 +0xBAF4 0x67F5 +0xBAF5 0x7A84 +0xBAF6 0x7B56 +0xBAF7 0x7D22 +0xBAF8 0x932F +0xBAF9 0x685C +0xBAFA 0x9BAD +0xBAFB 0x7B39 +0xBAFC 0x5319 +0xBAFD 0x518A +0xBAFE 0x5237 +0xBBA1 0x5BDF +0xBBA2 0x62F6 +0xBBA3 0x64AE +0xBBA4 0x64E6 +0xBBA5 0x672D +0xBBA6 0x6BBA +0xBBA7 0x85A9 +0xBBA8 0x96D1 +0xBBA9 0x7690 +0xBBAA 0x9BD6 +0xBBAB 0x634C +0xBBAC 0x9306 +0xBBAD 0x9BAB +0xBBAE 0x76BF +0xBBAF 0x6652 +0xBBB0 0x4E09 +0xBBB1 0x5098 +0xBBB2 0x53C2 +0xBBB3 0x5C71 +0xBBB4 0x60E8 +0xBBB5 0x6492 +0xBBB6 0x6563 +0xBBB7 0x685F +0xBBB8 0x71E6 +0xBBB9 0x73CA +0xBBBA 0x7523 +0xBBBB 0x7B97 +0xBBBC 0x7E82 +0xBBBD 0x8695 +0xBBBE 0x8B83 +0xBBBF 0x8CDB +0xBBC0 0x9178 +0xBBC1 0x9910 +0xBBC2 0x65AC +0xBBC3 0x66AB +0xBBC4 0x6B8B +0xBBC5 0x4ED5 +0xBBC6 0x4ED4 +0xBBC7 0x4F3A +0xBBC8 0x4F7F +0xBBC9 0x523A +0xBBCA 0x53F8 +0xBBCB 0x53F2 +0xBBCC 0x55E3 +0xBBCD 0x56DB +0xBBCE 0x58EB +0xBBCF 0x59CB +0xBBD0 0x59C9 +0xBBD1 0x59FF +0xBBD2 0x5B50 +0xBBD3 0x5C4D +0xBBD4 0x5E02 +0xBBD5 0x5E2B +0xBBD6 0x5FD7 +0xBBD7 0x601D +0xBBD8 0x6307 +0xBBD9 0x652F +0xBBDA 0x5B5C +0xBBDB 0x65AF +0xBBDC 0x65BD +0xBBDD 0x65E8 +0xBBDE 0x679D +0xBBDF 0x6B62 +0xBBE0 0x6B7B +0xBBE1 0x6C0F +0xBBE2 0x7345 +0xBBE3 0x7949 +0xBBE4 0x79C1 +0xBBE5 0x7CF8 +0xBBE6 0x7D19 +0xBBE7 0x7D2B +0xBBE8 0x80A2 +0xBBE9 0x8102 +0xBBEA 0x81F3 +0xBBEB 0x8996 +0xBBEC 0x8A5E +0xBBED 0x8A69 +0xBBEE 0x8A66 +0xBBEF 0x8A8C +0xBBF0 0x8AEE +0xBBF1 0x8CC7 +0xBBF2 0x8CDC +0xBBF3 0x96CC +0xBBF4 0x98FC +0xBBF5 0x6B6F +0xBBF6 0x4E8B +0xBBF7 0x4F3C +0xBBF8 0x4F8D +0xBBF9 0x5150 +0xBBFA 0x5B57 +0xBBFB 0x5BFA +0xBBFC 0x6148 +0xBBFD 0x6301 +0xBBFE 0x6642 +0xBCA1 0x6B21 +0xBCA2 0x6ECB +0xBCA3 0x6CBB +0xBCA4 0x723E +0xBCA5 0x74BD +0xBCA6 0x75D4 +0xBCA7 0x78C1 +0xBCA8 0x793A +0xBCA9 0x800C +0xBCAA 0x8033 +0xBCAB 0x81EA +0xBCAC 0x8494 +0xBCAD 0x8F9E +0xBCAE 0x6C50 +0xBCAF 0x9E7F +0xBCB0 0x5F0F +0xBCB1 0x8B58 +0xBCB2 0x9D2B +0xBCB3 0x7AFA +0xBCB4 0x8EF8 +0xBCB5 0x5B8D +0xBCB6 0x96EB +0xBCB7 0x4E03 +0xBCB8 0x53F1 +0xBCB9 0x57F7 +0xBCBA 0x5931 +0xBCBB 0x5AC9 +0xBCBC 0x5BA4 +0xBCBD 0x6089 +0xBCBE 0x6E7F +0xBCBF 0x6F06 +0xBCC0 0x75BE +0xBCC1 0x8CEA +0xBCC2 0x5B9F +0xBCC3 0x8500 +0xBCC4 0x7BE0 +0xBCC5 0x5072 +0xBCC6 0x67F4 +0xBCC7 0x829D +0xBCC8 0x5C61 +0xBCC9 0x854A +0xBCCA 0x7E1E +0xBCCB 0x820E +0xBCCC 0x5199 +0xBCCD 0x5C04 +0xBCCE 0x6368 +0xBCCF 0x8D66 +0xBCD0 0x659C +0xBCD1 0x716E +0xBCD2 0x793E +0xBCD3 0x7D17 +0xBCD4 0x8005 +0xBCD5 0x8B1D +0xBCD6 0x8ECA +0xBCD7 0x906E +0xBCD8 0x86C7 +0xBCD9 0x90AA +0xBCDA 0x501F +0xBCDB 0x52FA +0xBCDC 0x5C3A +0xBCDD 0x6753 +0xBCDE 0x707C +0xBCDF 0x7235 +0xBCE0 0x914C +0xBCE1 0x91C8 +0xBCE2 0x932B +0xBCE3 0x82E5 +0xBCE4 0x5BC2 +0xBCE5 0x5F31 +0xBCE6 0x60F9 +0xBCE7 0x4E3B +0xBCE8 0x53D6 +0xBCE9 0x5B88 +0xBCEA 0x624B +0xBCEB 0x6731 +0xBCEC 0x6B8A +0xBCED 0x72E9 +0xBCEE 0x73E0 +0xBCEF 0x7A2E +0xBCF0 0x816B +0xBCF1 0x8DA3 +0xBCF2 0x9152 +0xBCF3 0x9996 +0xBCF4 0x5112 +0xBCF5 0x53D7 +0xBCF6 0x546A +0xBCF7 0x5BFF +0xBCF8 0x6388 +0xBCF9 0x6A39 +0xBCFA 0x7DAC +0xBCFB 0x9700 +0xBCFC 0x56DA +0xBCFD 0x53CE +0xBCFE 0x5468 +0xBDA1 0x5B97 +0xBDA2 0x5C31 +0xBDA3 0x5DDE +0xBDA4 0x4FEE +0xBDA5 0x6101 +0xBDA6 0x62FE +0xBDA7 0x6D32 +0xBDA8 0x79C0 +0xBDA9 0x79CB +0xBDAA 0x7D42 +0xBDAB 0x7E4D +0xBDAC 0x7FD2 +0xBDAD 0x81ED +0xBDAE 0x821F +0xBDAF 0x8490 +0xBDB0 0x8846 +0xBDB1 0x8972 +0xBDB2 0x8B90 +0xBDB3 0x8E74 +0xBDB4 0x8F2F +0xBDB5 0x9031 +0xBDB6 0x914B +0xBDB7 0x916C +0xBDB8 0x96C6 +0xBDB9 0x919C +0xBDBA 0x4EC0 +0xBDBB 0x4F4F +0xBDBC 0x5145 +0xBDBD 0x5341 +0xBDBE 0x5F93 +0xBDBF 0x620E +0xBDC0 0x67D4 +0xBDC1 0x6C41 +0xBDC2 0x6E0B +0xBDC3 0x7363 +0xBDC4 0x7E26 +0xBDC5 0x91CD +0xBDC6 0x9283 +0xBDC7 0x53D4 +0xBDC8 0x5919 +0xBDC9 0x5BBF +0xBDCA 0x6DD1 +0xBDCB 0x795D +0xBDCC 0x7E2E +0xBDCD 0x7C9B +0xBDCE 0x587E +0xBDCF 0x719F +0xBDD0 0x51FA +0xBDD1 0x8853 +0xBDD2 0x8FF0 +0xBDD3 0x4FCA +0xBDD4 0x5CFB +0xBDD5 0x6625 +0xBDD6 0x77AC +0xBDD7 0x7AE3 +0xBDD8 0x821C +0xBDD9 0x99FF +0xBDDA 0x51C6 +0xBDDB 0x5FAA +0xBDDC 0x65EC +0xBDDD 0x696F +0xBDDE 0x6B89 +0xBDDF 0x6DF3 +0xBDE0 0x6E96 +0xBDE1 0x6F64 +0xBDE2 0x76FE +0xBDE3 0x7D14 +0xBDE4 0x5DE1 +0xBDE5 0x9075 +0xBDE6 0x9187 +0xBDE7 0x9806 +0xBDE8 0x51E6 +0xBDE9 0x521D +0xBDEA 0x6240 +0xBDEB 0x6691 +0xBDEC 0x66D9 +0xBDED 0x6E1A +0xBDEE 0x5EB6 +0xBDEF 0x7DD2 +0xBDF0 0x7F72 +0xBDF1 0x66F8 +0xBDF2 0x85AF +0xBDF3 0x85F7 +0xBDF4 0x8AF8 +0xBDF5 0x52A9 +0xBDF6 0x53D9 +0xBDF7 0x5973 +0xBDF8 0x5E8F +0xBDF9 0x5F90 +0xBDFA 0x6055 +0xBDFB 0x92E4 +0xBDFC 0x9664 +0xBDFD 0x50B7 +0xBDFE 0x511F +0xBEA1 0x52DD +0xBEA2 0x5320 +0xBEA3 0x5347 +0xBEA4 0x53EC +0xBEA5 0x54E8 +0xBEA6 0x5546 +0xBEA7 0x5531 +0xBEA8 0x5617 +0xBEA9 0x5968 +0xBEAA 0x59BE +0xBEAB 0x5A3C +0xBEAC 0x5BB5 +0xBEAD 0x5C06 +0xBEAE 0x5C0F +0xBEAF 0x5C11 +0xBEB0 0x5C1A +0xBEB1 0x5E84 +0xBEB2 0x5E8A +0xBEB3 0x5EE0 +0xBEB4 0x5F70 +0xBEB5 0x627F +0xBEB6 0x6284 +0xBEB7 0x62DB +0xBEB8 0x638C +0xBEB9 0x6377 +0xBEBA 0x6607 +0xBEBB 0x660C +0xBEBC 0x662D +0xBEBD 0x6676 +0xBEBE 0x677E +0xBEBF 0x68A2 +0xBEC0 0x6A1F +0xBEC1 0x6A35 +0xBEC2 0x6CBC +0xBEC3 0x6D88 +0xBEC4 0x6E09 +0xBEC5 0x6E58 +0xBEC6 0x713C +0xBEC7 0x7126 +0xBEC8 0x7167 +0xBEC9 0x75C7 +0xBECA 0x7701 +0xBECB 0x785D +0xBECC 0x7901 +0xBECD 0x7965 +0xBECE 0x79F0 +0xBECF 0x7AE0 +0xBED0 0x7B11 +0xBED1 0x7CA7 +0xBED2 0x7D39 +0xBED3 0x8096 +0xBED4 0x83D6 +0xBED5 0x848B +0xBED6 0x8549 +0xBED7 0x885D +0xBED8 0x88F3 +0xBED9 0x8A1F +0xBEDA 0x8A3C +0xBEDB 0x8A54 +0xBEDC 0x8A73 +0xBEDD 0x8C61 +0xBEDE 0x8CDE +0xBEDF 0x91A4 +0xBEE0 0x9266 +0xBEE1 0x937E +0xBEE2 0x9418 +0xBEE3 0x969C +0xBEE4 0x9798 +0xBEE5 0x4E0A +0xBEE6 0x4E08 +0xBEE7 0x4E1E +0xBEE8 0x4E57 +0xBEE9 0x5197 +0xBEEA 0x5270 +0xBEEB 0x57CE +0xBEEC 0x5834 +0xBEED 0x58CC +0xBEEE 0x5B22 +0xBEEF 0x5E38 +0xBEF0 0x60C5 +0xBEF1 0x64FE +0xBEF2 0x6761 +0xBEF3 0x6756 +0xBEF4 0x6D44 +0xBEF5 0x72B6 +0xBEF6 0x7573 +0xBEF7 0x7A63 +0xBEF8 0x84B8 +0xBEF9 0x8B72 +0xBEFA 0x91B8 +0xBEFB 0x9320 +0xBEFC 0x5631 +0xBEFD 0x57F4 +0xBEFE 0x98FE +0xBFA1 0x62ED +0xBFA2 0x690D +0xBFA3 0x6B96 +0xBFA4 0x71ED +0xBFA5 0x7E54 +0xBFA6 0x8077 +0xBFA7 0x8272 +0xBFA8 0x89E6 +0xBFA9 0x98DF +0xBFAA 0x8755 +0xBFAB 0x8FB1 +0xBFAC 0x5C3B +0xBFAD 0x4F38 +0xBFAE 0x4FE1 +0xBFAF 0x4FB5 +0xBFB0 0x5507 +0xBFB1 0x5A20 +0xBFB2 0x5BDD +0xBFB3 0x5BE9 +0xBFB4 0x5FC3 +0xBFB5 0x614E +0xBFB6 0x632F +0xBFB7 0x65B0 +0xBFB8 0x664B +0xBFB9 0x68EE +0xBFBA 0x699B +0xBFBB 0x6D78 +0xBFBC 0x6DF1 +0xBFBD 0x7533 +0xBFBE 0x75B9 +0xBFBF 0x771F +0xBFC0 0x795E +0xBFC1 0x79E6 +0xBFC2 0x7D33 +0xBFC3 0x81E3 +0xBFC4 0x82AF +0xBFC5 0x85AA +0xBFC6 0x89AA +0xBFC7 0x8A3A +0xBFC8 0x8EAB +0xBFC9 0x8F9B +0xBFCA 0x9032 +0xBFCB 0x91DD +0xBFCC 0x9707 +0xBFCD 0x4EBA +0xBFCE 0x4EC1 +0xBFCF 0x5203 +0xBFD0 0x5875 +0xBFD1 0x58EC +0xBFD2 0x5C0B +0xBFD3 0x751A +0xBFD4 0x5C3D +0xBFD5 0x814E +0xBFD6 0x8A0A +0xBFD7 0x8FC5 +0xBFD8 0x9663 +0xBFD9 0x976D +0xBFDA 0x7B25 +0xBFDB 0x8ACF +0xBFDC 0x9808 +0xBFDD 0x9162 +0xBFDE 0x56F3 +0xBFDF 0x53A8 +0xBFE0 0x9017 +0xBFE1 0x5439 +0xBFE2 0x5782 +0xBFE3 0x5E25 +0xBFE4 0x63A8 +0xBFE5 0x6C34 +0xBFE6 0x708A +0xBFE7 0x7761 +0xBFE8 0x7C8B +0xBFE9 0x7FE0 +0xBFEA 0x8870 +0xBFEB 0x9042 +0xBFEC 0x9154 +0xBFED 0x9310 +0xBFEE 0x9318 +0xBFEF 0x968F +0xBFF0 0x745E +0xBFF1 0x9AC4 +0xBFF2 0x5D07 +0xBFF3 0x5D69 +0xBFF4 0x6570 +0xBFF5 0x67A2 +0xBFF6 0x8DA8 +0xBFF7 0x96DB +0xBFF8 0x636E +0xBFF9 0x6749 +0xBFFA 0x6919 +0xBFFB 0x83C5 +0xBFFC 0x9817 +0xBFFD 0x96C0 +0xBFFE 0x88FE +0xC0A1 0x6F84 +0xC0A2 0x647A +0xC0A3 0x5BF8 +0xC0A4 0x4E16 +0xC0A5 0x702C +0xC0A6 0x755D +0xC0A7 0x662F +0xC0A8 0x51C4 +0xC0A9 0x5236 +0xC0AA 0x52E2 +0xC0AB 0x59D3 +0xC0AC 0x5F81 +0xC0AD 0x6027 +0xC0AE 0x6210 +0xC0AF 0x653F +0xC0B0 0x6574 +0xC0B1 0x661F +0xC0B2 0x6674 +0xC0B3 0x68F2 +0xC0B4 0x6816 +0xC0B5 0x6B63 +0xC0B6 0x6E05 +0xC0B7 0x7272 +0xC0B8 0x751F +0xC0B9 0x76DB +0xC0BA 0x7CBE +0xC0BB 0x8056 +0xC0BC 0x58F0 +0xC0BD 0x88FD +0xC0BE 0x897F +0xC0BF 0x8AA0 +0xC0C0 0x8A93 +0xC0C1 0x8ACB +0xC0C2 0x901D +0xC0C3 0x9192 +0xC0C4 0x9752 +0xC0C5 0x9759 +0xC0C6 0x6589 +0xC0C7 0x7A0E +0xC0C8 0x8106 +0xC0C9 0x96BB +0xC0CA 0x5E2D +0xC0CB 0x60DC +0xC0CC 0x621A +0xC0CD 0x65A5 +0xC0CE 0x6614 +0xC0CF 0x6790 +0xC0D0 0x77F3 +0xC0D1 0x7A4D +0xC0D2 0x7C4D +0xC0D3 0x7E3E +0xC0D4 0x810A +0xC0D5 0x8CAC +0xC0D6 0x8D64 +0xC0D7 0x8DE1 +0xC0D8 0x8E5F +0xC0D9 0x78A9 +0xC0DA 0x5207 +0xC0DB 0x62D9 +0xC0DC 0x63A5 +0xC0DD 0x6442 +0xC0DE 0x6298 +0xC0DF 0x8A2D +0xC0E0 0x7A83 +0xC0E1 0x7BC0 +0xC0E2 0x8AAC +0xC0E3 0x96EA +0xC0E4 0x7D76 +0xC0E5 0x820C +0xC0E6 0x8749 +0xC0E7 0x4ED9 +0xC0E8 0x5148 +0xC0E9 0x5343 +0xC0EA 0x5360 +0xC0EB 0x5BA3 +0xC0EC 0x5C02 +0xC0ED 0x5C16 +0xC0EE 0x5DDD +0xC0EF 0x6226 +0xC0F0 0x6247 +0xC0F1 0x64B0 +0xC0F2 0x6813 +0xC0F3 0x6834 +0xC0F4 0x6CC9 +0xC0F5 0x6D45 +0xC0F6 0x6D17 +0xC0F7 0x67D3 +0xC0F8 0x6F5C +0xC0F9 0x714E +0xC0FA 0x717D +0xC0FB 0x65CB +0xC0FC 0x7A7F +0xC0FD 0x7BAD +0xC0FE 0x7DDA +0xC1A1 0x7E4A +0xC1A2 0x7FA8 +0xC1A3 0x817A +0xC1A4 0x821B +0xC1A5 0x8239 +0xC1A6 0x85A6 +0xC1A7 0x8A6E +0xC1A8 0x8CCE +0xC1A9 0x8DF5 +0xC1AA 0x9078 +0xC1AB 0x9077 +0xC1AC 0x92AD +0xC1AD 0x9291 +0xC1AE 0x9583 +0xC1AF 0x9BAE +0xC1B0 0x524D +0xC1B1 0x5584 +0xC1B2 0x6F38 +0xC1B3 0x7136 +0xC1B4 0x5168 +0xC1B5 0x7985 +0xC1B6 0x7E55 +0xC1B7 0x81B3 +0xC1B8 0x7CCE +0xC1B9 0x564C +0xC1BA 0x5851 +0xC1BB 0x5CA8 +0xC1BC 0x63AA +0xC1BD 0x66FE +0xC1BE 0x66FD +0xC1BF 0x695A +0xC1C0 0x72D9 +0xC1C1 0x758F +0xC1C2 0x758E +0xC1C3 0x790E +0xC1C4 0x7956 +0xC1C5 0x79DF +0xC1C6 0x7C97 +0xC1C7 0x7D20 +0xC1C8 0x7D44 +0xC1C9 0x8607 +0xC1CA 0x8A34 +0xC1CB 0x963B +0xC1CC 0x9061 +0xC1CD 0x9F20 +0xC1CE 0x50E7 +0xC1CF 0x5275 +0xC1D0 0x53CC +0xC1D1 0x53E2 +0xC1D2 0x5009 +0xC1D3 0x55AA +0xC1D4 0x58EE +0xC1D5 0x594F +0xC1D6 0x723D +0xC1D7 0x5B8B +0xC1D8 0x5C64 +0xC1D9 0x531D +0xC1DA 0x60E3 +0xC1DB 0x60F3 +0xC1DC 0x635C +0xC1DD 0x6383 +0xC1DE 0x633F +0xC1DF 0x63BB +0xC1E0 0x64CD +0xC1E1 0x65E9 +0xC1E2 0x66F9 +0xC1E3 0x5DE3 +0xC1E4 0x69CD +0xC1E5 0x69FD +0xC1E6 0x6F15 +0xC1E7 0x71E5 +0xC1E8 0x4E89 +0xC1E9 0x75E9 +0xC1EA 0x76F8 +0xC1EB 0x7A93 +0xC1EC 0x7CDF +0xC1ED 0x7DCF +0xC1EE 0x7D9C +0xC1EF 0x8061 +0xC1F0 0x8349 +0xC1F1 0x8358 +0xC1F2 0x846C +0xC1F3 0x84BC +0xC1F4 0x85FB +0xC1F5 0x88C5 +0xC1F6 0x8D70 +0xC1F7 0x9001 +0xC1F8 0x906D +0xC1F9 0x9397 +0xC1FA 0x971C +0xC1FB 0x9A12 +0xC1FC 0x50CF +0xC1FD 0x5897 +0xC1FE 0x618E +0xC2A1 0x81D3 +0xC2A2 0x8535 +0xC2A3 0x8D08 +0xC2A4 0x9020 +0xC2A5 0x4FC3 +0xC2A6 0x5074 +0xC2A7 0x5247 +0xC2A8 0x5373 +0xC2A9 0x606F +0xC2AA 0x6349 +0xC2AB 0x675F +0xC2AC 0x6E2C +0xC2AD 0x8DB3 +0xC2AE 0x901F +0xC2AF 0x4FD7 +0xC2B0 0x5C5E +0xC2B1 0x8CCA +0xC2B2 0x65CF +0xC2B3 0x7D9A +0xC2B4 0x5352 +0xC2B5 0x8896 +0xC2B6 0x5176 +0xC2B7 0x63C3 +0xC2B8 0x5B58 +0xC2B9 0x5B6B +0xC2BA 0x5C0A +0xC2BB 0x640D +0xC2BC 0x6751 +0xC2BD 0x905C +0xC2BE 0x4ED6 +0xC2BF 0x591A +0xC2C0 0x592A +0xC2C1 0x6C70 +0xC2C2 0x8A51 +0xC2C3 0x553E +0xC2C4 0x5815 +0xC2C5 0x59A5 +0xC2C6 0x60F0 +0xC2C7 0x6253 +0xC2C8 0x67C1 +0xC2C9 0x8235 +0xC2CA 0x6955 +0xC2CB 0x9640 +0xC2CC 0x99C4 +0xC2CD 0x9A28 +0xC2CE 0x4F53 +0xC2CF 0x5806 +0xC2D0 0x5BFE +0xC2D1 0x8010 +0xC2D2 0x5CB1 +0xC2D3 0x5E2F +0xC2D4 0x5F85 +0xC2D5 0x6020 +0xC2D6 0x614B +0xC2D7 0x6234 +0xC2D8 0x66FF +0xC2D9 0x6CF0 +0xC2DA 0x6EDE +0xC2DB 0x80CE +0xC2DC 0x817F +0xC2DD 0x82D4 +0xC2DE 0x888B +0xC2DF 0x8CB8 +0xC2E0 0x9000 +0xC2E1 0x902E +0xC2E2 0x968A +0xC2E3 0x9EDB +0xC2E4 0x9BDB +0xC2E5 0x4EE3 +0xC2E6 0x53F0 +0xC2E7 0x5927 +0xC2E8 0x7B2C +0xC2E9 0x918D +0xC2EA 0x984C +0xC2EB 0x9DF9 +0xC2EC 0x6EDD +0xC2ED 0x7027 +0xC2EE 0x5353 +0xC2EF 0x5544 +0xC2F0 0x5B85 +0xC2F1 0x6258 +0xC2F2 0x629E +0xC2F3 0x62D3 +0xC2F4 0x6CA2 +0xC2F5 0x6FEF +0xC2F6 0x7422 +0xC2F7 0x8A17 +0xC2F8 0x9438 +0xC2F9 0x6FC1 +0xC2FA 0x8AFE +0xC2FB 0x8338 +0xC2FC 0x51E7 +0xC2FD 0x86F8 +0xC2FE 0x53EA +0xC3A1 0x53E9 +0xC3A2 0x4F46 +0xC3A3 0x9054 +0xC3A4 0x8FB0 +0xC3A5 0x596A +0xC3A6 0x8131 +0xC3A7 0x5DFD +0xC3A8 0x7AEA +0xC3A9 0x8FBF +0xC3AA 0x68DA +0xC3AB 0x8C37 +0xC3AC 0x72F8 +0xC3AD 0x9C48 +0xC3AE 0x6A3D +0xC3AF 0x8AB0 +0xC3B0 0x4E39 +0xC3B1 0x5358 +0xC3B2 0x5606 +0xC3B3 0x5766 +0xC3B4 0x62C5 +0xC3B5 0x63A2 +0xC3B6 0x65E6 +0xC3B7 0x6B4E +0xC3B8 0x6DE1 +0xC3B9 0x6E5B +0xC3BA 0x70AD +0xC3BB 0x77ED +0xC3BC 0x7AEF +0xC3BD 0x7BAA +0xC3BE 0x7DBB +0xC3BF 0x803D +0xC3C0 0x80C6 +0xC3C1 0x86CB +0xC3C2 0x8A95 +0xC3C3 0x935B +0xC3C4 0x56E3 +0xC3C5 0x58C7 +0xC3C6 0x5F3E +0xC3C7 0x65AD +0xC3C8 0x6696 +0xC3C9 0x6A80 +0xC3CA 0x6BB5 +0xC3CB 0x7537 +0xC3CC 0x8AC7 +0xC3CD 0x5024 +0xC3CE 0x77E5 +0xC3CF 0x5730 +0xC3D0 0x5F1B +0xC3D1 0x6065 +0xC3D2 0x667A +0xC3D3 0x6C60 +0xC3D4 0x75F4 +0xC3D5 0x7A1A +0xC3D6 0x7F6E +0xC3D7 0x81F4 +0xC3D8 0x8718 +0xC3D9 0x9045 +0xC3DA 0x99B3 +0xC3DB 0x7BC9 +0xC3DC 0x755C +0xC3DD 0x7AF9 +0xC3DE 0x7B51 +0xC3DF 0x84C4 +0xC3E0 0x9010 +0xC3E1 0x79E9 +0xC3E2 0x7A92 +0xC3E3 0x8336 +0xC3E4 0x5AE1 +0xC3E5 0x7740 +0xC3E6 0x4E2D +0xC3E7 0x4EF2 +0xC3E8 0x5B99 +0xC3E9 0x5FE0 +0xC3EA 0x62BD +0xC3EB 0x663C +0xC3EC 0x67F1 +0xC3ED 0x6CE8 +0xC3EE 0x866B +0xC3EF 0x8877 +0xC3F0 0x8A3B +0xC3F1 0x914E +0xC3F2 0x92F3 +0xC3F3 0x99D0 +0xC3F4 0x6A17 +0xC3F5 0x7026 +0xC3F6 0x732A +0xC3F7 0x82E7 +0xC3F8 0x8457 +0xC3F9 0x8CAF +0xC3FA 0x4E01 +0xC3FB 0x5146 +0xC3FC 0x51CB +0xC3FD 0x558B +0xC3FE 0x5BF5 +0xC4A1 0x5E16 +0xC4A2 0x5E33 +0xC4A3 0x5E81 +0xC4A4 0x5F14 +0xC4A5 0x5F35 +0xC4A6 0x5F6B +0xC4A7 0x5FB4 +0xC4A8 0x61F2 +0xC4A9 0x6311 +0xC4AA 0x66A2 +0xC4AB 0x671D +0xC4AC 0x6F6E +0xC4AD 0x7252 +0xC4AE 0x753A +0xC4AF 0x773A +0xC4B0 0x8074 +0xC4B1 0x8139 +0xC4B2 0x8178 +0xC4B3 0x8776 +0xC4B4 0x8ABF +0xC4B5 0x8ADC +0xC4B6 0x8D85 +0xC4B7 0x8DF3 +0xC4B8 0x929A +0xC4B9 0x9577 +0xC4BA 0x9802 +0xC4BB 0x9CE5 +0xC4BC 0x52C5 +0xC4BD 0x6357 +0xC4BE 0x76F4 +0xC4BF 0x6715 +0xC4C0 0x6C88 +0xC4C1 0x73CD +0xC4C2 0x8CC3 +0xC4C3 0x93AE +0xC4C4 0x9673 +0xC4C5 0x6D25 +0xC4C6 0x589C +0xC4C7 0x690E +0xC4C8 0x69CC +0xC4C9 0x8FFD +0xC4CA 0x939A +0xC4CB 0x75DB +0xC4CC 0x901A +0xC4CD 0x585A +0xC4CE 0x6802 +0xC4CF 0x63B4 +0xC4D0 0x69FB +0xC4D1 0x4F43 +0xC4D2 0x6F2C +0xC4D3 0x67D8 +0xC4D4 0x8FBB +0xC4D5 0x8526 +0xC4D6 0x7DB4 +0xC4D7 0x9354 +0xC4D8 0x693F +0xC4D9 0x6F70 +0xC4DA 0x576A +0xC4DB 0x58F7 +0xC4DC 0x5B2C +0xC4DD 0x7D2C +0xC4DE 0x722A +0xC4DF 0x540A +0xC4E0 0x91E3 +0xC4E1 0x9DB4 +0xC4E2 0x4EAD +0xC4E3 0x4F4E +0xC4E4 0x505C +0xC4E5 0x5075 +0xC4E6 0x5243 +0xC4E7 0x8C9E +0xC4E8 0x5448 +0xC4E9 0x5824 +0xC4EA 0x5B9A +0xC4EB 0x5E1D +0xC4EC 0x5E95 +0xC4ED 0x5EAD +0xC4EE 0x5EF7 +0xC4EF 0x5F1F +0xC4F0 0x608C +0xC4F1 0x62B5 +0xC4F2 0x633A +0xC4F3 0x63D0 +0xC4F4 0x68AF +0xC4F5 0x6C40 +0xC4F6 0x7887 +0xC4F7 0x798E +0xC4F8 0x7A0B +0xC4F9 0x7DE0 +0xC4FA 0x8247 +0xC4FB 0x8A02 +0xC4FC 0x8AE6 +0xC4FD 0x8E44 +0xC4FE 0x9013 +0xC5A1 0x90B8 +0xC5A2 0x912D +0xC5A3 0x91D8 +0xC5A4 0x9F0E +0xC5A5 0x6CE5 +0xC5A6 0x6458 +0xC5A7 0x64E2 +0xC5A8 0x6575 +0xC5A9 0x6EF4 +0xC5AA 0x7684 +0xC5AB 0x7B1B +0xC5AC 0x9069 +0xC5AD 0x93D1 +0xC5AE 0x6EBA +0xC5AF 0x54F2 +0xC5B0 0x5FB9 +0xC5B1 0x64A4 +0xC5B2 0x8F4D +0xC5B3 0x8FED +0xC5B4 0x9244 +0xC5B5 0x5178 +0xC5B6 0x586B +0xC5B7 0x5929 +0xC5B8 0x5C55 +0xC5B9 0x5E97 +0xC5BA 0x6DFB +0xC5BB 0x7E8F +0xC5BC 0x751C +0xC5BD 0x8CBC +0xC5BE 0x8EE2 +0xC5BF 0x985B +0xC5C0 0x70B9 +0xC5C1 0x4F1D +0xC5C2 0x6BBF +0xC5C3 0x6FB1 +0xC5C4 0x7530 +0xC5C5 0x96FB +0xC5C6 0x514E +0xC5C7 0x5410 +0xC5C8 0x5835 +0xC5C9 0x5857 +0xC5CA 0x59AC +0xC5CB 0x5C60 +0xC5CC 0x5F92 +0xC5CD 0x6597 +0xC5CE 0x675C +0xC5CF 0x6E21 +0xC5D0 0x767B +0xC5D1 0x83DF +0xC5D2 0x8CED +0xC5D3 0x9014 +0xC5D4 0x90FD +0xC5D5 0x934D +0xC5D6 0x7825 +0xC5D7 0x783A +0xC5D8 0x52AA +0xC5D9 0x5EA6 +0xC5DA 0x571F +0xC5DB 0x5974 +0xC5DC 0x6012 +0xC5DD 0x5012 +0xC5DE 0x515A +0xC5DF 0x51AC +0xC5E0 0x51CD +0xC5E1 0x5200 +0xC5E2 0x5510 +0xC5E3 0x5854 +0xC5E4 0x5858 +0xC5E5 0x5957 +0xC5E6 0x5B95 +0xC5E7 0x5CF6 +0xC5E8 0x5D8B +0xC5E9 0x60BC +0xC5EA 0x6295 +0xC5EB 0x642D +0xC5EC 0x6771 +0xC5ED 0x6843 +0xC5EE 0x68BC +0xC5EF 0x68DF +0xC5F0 0x76D7 +0xC5F1 0x6DD8 +0xC5F2 0x6E6F +0xC5F3 0x6D9B +0xC5F4 0x706F +0xC5F5 0x71C8 +0xC5F6 0x5F53 +0xC5F7 0x75D8 +0xC5F8 0x7977 +0xC5F9 0x7B49 +0xC5FA 0x7B54 +0xC5FB 0x7B52 +0xC5FC 0x7CD6 +0xC5FD 0x7D71 +0xC5FE 0x5230 +0xC6A1 0x8463 +0xC6A2 0x8569 +0xC6A3 0x85E4 +0xC6A4 0x8A0E +0xC6A5 0x8B04 +0xC6A6 0x8C46 +0xC6A7 0x8E0F +0xC6A8 0x9003 +0xC6A9 0x900F +0xC6AA 0x9419 +0xC6AB 0x9676 +0xC6AC 0x982D +0xC6AD 0x9A30 +0xC6AE 0x95D8 +0xC6AF 0x50CD +0xC6B0 0x52D5 +0xC6B1 0x540C +0xC6B2 0x5802 +0xC6B3 0x5C0E +0xC6B4 0x61A7 +0xC6B5 0x649E +0xC6B6 0x6D1E +0xC6B7 0x77B3 +0xC6B8 0x7AE5 +0xC6B9 0x80F4 +0xC6BA 0x8404 +0xC6BB 0x9053 +0xC6BC 0x9285 +0xC6BD 0x5CE0 +0xC6BE 0x9D07 +0xC6BF 0x533F +0xC6C0 0x5F97 +0xC6C1 0x5FB3 +0xC6C2 0x6D9C +0xC6C3 0x7279 +0xC6C4 0x7763 +0xC6C5 0x79BF +0xC6C6 0x7BE4 +0xC6C7 0x6BD2 +0xC6C8 0x72EC +0xC6C9 0x8AAD +0xC6CA 0x6803 +0xC6CB 0x6A61 +0xC6CC 0x51F8 +0xC6CD 0x7A81 +0xC6CE 0x6934 +0xC6CF 0x5C4A +0xC6D0 0x9CF6 +0xC6D1 0x82EB +0xC6D2 0x5BC5 +0xC6D3 0x9149 +0xC6D4 0x701E +0xC6D5 0x5678 +0xC6D6 0x5C6F +0xC6D7 0x60C7 +0xC6D8 0x6566 +0xC6D9 0x6C8C +0xC6DA 0x8C5A +0xC6DB 0x9041 +0xC6DC 0x9813 +0xC6DD 0x5451 +0xC6DE 0x66C7 +0xC6DF 0x920D +0xC6E0 0x5948 +0xC6E1 0x90A3 +0xC6E2 0x5185 +0xC6E3 0x4E4D +0xC6E4 0x51EA +0xC6E5 0x8599 +0xC6E6 0x8B0E +0xC6E7 0x7058 +0xC6E8 0x637A +0xC6E9 0x934B +0xC6EA 0x6962 +0xC6EB 0x99B4 +0xC6EC 0x7E04 +0xC6ED 0x7577 +0xC6EE 0x5357 +0xC6EF 0x6960 +0xC6F0 0x8EDF +0xC6F1 0x96E3 +0xC6F2 0x6C5D +0xC6F3 0x4E8C +0xC6F4 0x5C3C +0xC6F5 0x5F10 +0xC6F6 0x8FE9 +0xC6F7 0x5302 +0xC6F8 0x8CD1 +0xC6F9 0x8089 +0xC6FA 0x8679 +0xC6FB 0x5EFF +0xC6FC 0x65E5 +0xC6FD 0x4E73 +0xC6FE 0x5165 +0xC7A1 0x5982 +0xC7A2 0x5C3F +0xC7A3 0x97EE +0xC7A4 0x4EFB +0xC7A5 0x598A +0xC7A6 0x5FCD +0xC7A7 0x8A8D +0xC7A8 0x6FE1 +0xC7A9 0x79B0 +0xC7AA 0x7962 +0xC7AB 0x5BE7 +0xC7AC 0x8471 +0xC7AD 0x732B +0xC7AE 0x71B1 +0xC7AF 0x5E74 +0xC7B0 0x5FF5 +0xC7B1 0x637B +0xC7B2 0x649A +0xC7B3 0x71C3 +0xC7B4 0x7C98 +0xC7B5 0x4E43 +0xC7B6 0x5EFC +0xC7B7 0x4E4B +0xC7B8 0x57DC +0xC7B9 0x56A2 +0xC7BA 0x60A9 +0xC7BB 0x6FC3 +0xC7BC 0x7D0D +0xC7BD 0x80FD +0xC7BE 0x8133 +0xC7BF 0x81BF +0xC7C0 0x8FB2 +0xC7C1 0x8997 +0xC7C2 0x86A4 +0xC7C3 0x5DF4 +0xC7C4 0x628A +0xC7C5 0x64AD +0xC7C6 0x8987 +0xC7C7 0x6777 +0xC7C8 0x6CE2 +0xC7C9 0x6D3E +0xC7CA 0x7436 +0xC7CB 0x7834 +0xC7CC 0x5A46 +0xC7CD 0x7F75 +0xC7CE 0x82AD +0xC7CF 0x99AC +0xC7D0 0x4FF3 +0xC7D1 0x5EC3 +0xC7D2 0x62DD +0xC7D3 0x6392 +0xC7D4 0x6557 +0xC7D5 0x676F +0xC7D6 0x76C3 +0xC7D7 0x724C +0xC7D8 0x80CC +0xC7D9 0x80BA +0xC7DA 0x8F29 +0xC7DB 0x914D +0xC7DC 0x500D +0xC7DD 0x57F9 +0xC7DE 0x5A92 +0xC7DF 0x6885 +0xC7E0 0x6973 +0xC7E1 0x7164 +0xC7E2 0x72FD +0xC7E3 0x8CB7 +0xC7E4 0x58F2 +0xC7E5 0x8CE0 +0xC7E6 0x966A +0xC7E7 0x9019 +0xC7E8 0x877F +0xC7E9 0x79E4 +0xC7EA 0x77E7 +0xC7EB 0x8429 +0xC7EC 0x4F2F +0xC7ED 0x5265 +0xC7EE 0x535A +0xC7EF 0x62CD +0xC7F0 0x67CF +0xC7F1 0x6CCA +0xC7F2 0x767D +0xC7F3 0x7B94 +0xC7F4 0x7C95 +0xC7F5 0x8236 +0xC7F6 0x8584 +0xC7F7 0x8FEB +0xC7F8 0x66DD +0xC7F9 0x6F20 +0xC7FA 0x7206 +0xC7FB 0x7E1B +0xC7FC 0x83AB +0xC7FD 0x99C1 +0xC7FE 0x9EA6 +0xC8A1 0x51FD +0xC8A2 0x7BB1 +0xC8A3 0x7872 +0xC8A4 0x7BB8 +0xC8A5 0x8087 +0xC8A6 0x7B48 +0xC8A7 0x6AE8 +0xC8A8 0x5E61 +0xC8A9 0x808C +0xC8AA 0x7551 +0xC8AB 0x7560 +0xC8AC 0x516B +0xC8AD 0x9262 +0xC8AE 0x6E8C +0xC8AF 0x767A +0xC8B0 0x9197 +0xC8B1 0x9AEA +0xC8B2 0x4F10 +0xC8B3 0x7F70 +0xC8B4 0x629C +0xC8B5 0x7B4F +0xC8B6 0x95A5 +0xC8B7 0x9CE9 +0xC8B8 0x567A +0xC8B9 0x5859 +0xC8BA 0x86E4 +0xC8BB 0x96BC +0xC8BC 0x4F34 +0xC8BD 0x5224 +0xC8BE 0x534A +0xC8BF 0x53CD +0xC8C0 0x53DB +0xC8C1 0x5E06 +0xC8C2 0x642C +0xC8C3 0x6591 +0xC8C4 0x677F +0xC8C5 0x6C3E +0xC8C6 0x6C4E +0xC8C7 0x7248 +0xC8C8 0x72AF +0xC8C9 0x73ED +0xC8CA 0x7554 +0xC8CB 0x7E41 +0xC8CC 0x822C +0xC8CD 0x85E9 +0xC8CE 0x8CA9 +0xC8CF 0x7BC4 +0xC8D0 0x91C6 +0xC8D1 0x7169 +0xC8D2 0x9812 +0xC8D3 0x98EF +0xC8D4 0x633D +0xC8D5 0x6669 +0xC8D6 0x756A +0xC8D7 0x76E4 +0xC8D8 0x78D0 +0xC8D9 0x8543 +0xC8DA 0x86EE +0xC8DB 0x532A +0xC8DC 0x5351 +0xC8DD 0x5426 +0xC8DE 0x5983 +0xC8DF 0x5E87 +0xC8E0 0x5F7C +0xC8E1 0x60B2 +0xC8E2 0x6249 +0xC8E3 0x6279 +0xC8E4 0x62AB +0xC8E5 0x6590 +0xC8E6 0x6BD4 +0xC8E7 0x6CCC +0xC8E8 0x75B2 +0xC8E9 0x76AE +0xC8EA 0x7891 +0xC8EB 0x79D8 +0xC8EC 0x7DCB +0xC8ED 0x7F77 +0xC8EE 0x80A5 +0xC8EF 0x88AB +0xC8F0 0x8AB9 +0xC8F1 0x8CBB +0xC8F2 0x907F +0xC8F3 0x975E +0xC8F4 0x98DB +0xC8F5 0x6A0B +0xC8F6 0x7C38 +0xC8F7 0x5099 +0xC8F8 0x5C3E +0xC8F9 0x5FAE +0xC8FA 0x6787 +0xC8FB 0x6BD8 +0xC8FC 0x7435 +0xC8FD 0x7709 +0xC8FE 0x7F8E +0xC9A1 0x9F3B +0xC9A2 0x67CA +0xC9A3 0x7A17 +0xC9A4 0x5339 +0xC9A5 0x758B +0xC9A6 0x9AED +0xC9A7 0x5F66 +0xC9A8 0x819D +0xC9A9 0x83F1 +0xC9AA 0x8098 +0xC9AB 0x5F3C +0xC9AC 0x5FC5 +0xC9AD 0x7562 +0xC9AE 0x7B46 +0xC9AF 0x903C +0xC9B0 0x6867 +0xC9B1 0x59EB +0xC9B2 0x5A9B +0xC9B3 0x7D10 +0xC9B4 0x767E +0xC9B5 0x8B2C +0xC9B6 0x4FF5 +0xC9B7 0x5F6A +0xC9B8 0x6A19 +0xC9B9 0x6C37 +0xC9BA 0x6F02 +0xC9BB 0x74E2 +0xC9BC 0x7968 +0xC9BD 0x8868 +0xC9BE 0x8A55 +0xC9BF 0x8C79 +0xC9C0 0x5EDF +0xC9C1 0x63CF +0xC9C2 0x75C5 +0xC9C3 0x79D2 +0xC9C4 0x82D7 +0xC9C5 0x9328 +0xC9C6 0x92F2 +0xC9C7 0x849C +0xC9C8 0x86ED +0xC9C9 0x9C2D +0xC9CA 0x54C1 +0xC9CB 0x5F6C +0xC9CC 0x658C +0xC9CD 0x6D5C +0xC9CE 0x7015 +0xC9CF 0x8CA7 +0xC9D0 0x8CD3 +0xC9D1 0x983B +0xC9D2 0x654F +0xC9D3 0x74F6 +0xC9D4 0x4E0D +0xC9D5 0x4ED8 +0xC9D6 0x57E0 +0xC9D7 0x592B +0xC9D8 0x5A66 +0xC9D9 0x5BCC +0xC9DA 0x51A8 +0xC9DB 0x5E03 +0xC9DC 0x5E9C +0xC9DD 0x6016 +0xC9DE 0x6276 +0xC9DF 0x6577 +0xC9E0 0x65A7 +0xC9E1 0x666E +0xC9E2 0x6D6E +0xC9E3 0x7236 +0xC9E4 0x7B26 +0xC9E5 0x8150 +0xC9E6 0x819A +0xC9E7 0x8299 +0xC9E8 0x8B5C +0xC9E9 0x8CA0 +0xC9EA 0x8CE6 +0xC9EB 0x8D74 +0xC9EC 0x961C +0xC9ED 0x9644 +0xC9EE 0x4FAE +0xC9EF 0x64AB +0xC9F0 0x6B66 +0xC9F1 0x821E +0xC9F2 0x8461 +0xC9F3 0x856A +0xC9F4 0x90E8 +0xC9F5 0x5C01 +0xC9F6 0x6953 +0xC9F7 0x98A8 +0xC9F8 0x847A +0xC9F9 0x8557 +0xC9FA 0x4F0F +0xC9FB 0x526F +0xC9FC 0x5FA9 +0xC9FD 0x5E45 +0xC9FE 0x670D +0xCAA1 0x798F +0xCAA2 0x8179 +0xCAA3 0x8907 +0xCAA4 0x8986 +0xCAA5 0x6DF5 +0xCAA6 0x5F17 +0xCAA7 0x6255 +0xCAA8 0x6CB8 +0xCAA9 0x4ECF +0xCAAA 0x7269 +0xCAAB 0x9B92 +0xCAAC 0x5206 +0xCAAD 0x543B +0xCAAE 0x5674 +0xCAAF 0x58B3 +0xCAB0 0x61A4 +0xCAB1 0x626E +0xCAB2 0x711A +0xCAB3 0x596E +0xCAB4 0x7C89 +0xCAB5 0x7CDE +0xCAB6 0x7D1B +0xCAB7 0x96F0 +0xCAB8 0x6587 +0xCAB9 0x805E +0xCABA 0x4E19 +0xCABB 0x4F75 +0xCABC 0x5175 +0xCABD 0x5840 +0xCABE 0x5E63 +0xCABF 0x5E73 +0xCAC0 0x5F0A +0xCAC1 0x67C4 +0xCAC2 0x4E26 +0xCAC3 0x853D +0xCAC4 0x9589 +0xCAC5 0x965B +0xCAC6 0x7C73 +0xCAC7 0x9801 +0xCAC8 0x50FB +0xCAC9 0x58C1 +0xCACA 0x7656 +0xCACB 0x78A7 +0xCACC 0x5225 +0xCACD 0x77A5 +0xCACE 0x8511 +0xCACF 0x7B86 +0xCAD0 0x504F +0xCAD1 0x5909 +0xCAD2 0x7247 +0xCAD3 0x7BC7 +0xCAD4 0x7DE8 +0xCAD5 0x8FBA +0xCAD6 0x8FD4 +0xCAD7 0x904D +0xCAD8 0x4FBF +0xCAD9 0x52C9 +0xCADA 0x5A29 +0xCADB 0x5F01 +0xCADC 0x97AD +0xCADD 0x4FDD +0xCADE 0x8217 +0xCADF 0x92EA +0xCAE0 0x5703 +0xCAE1 0x6355 +0xCAE2 0x6B69 +0xCAE3 0x752B +0xCAE4 0x88DC +0xCAE5 0x8F14 +0xCAE6 0x7A42 +0xCAE7 0x52DF +0xCAE8 0x5893 +0xCAE9 0x6155 +0xCAEA 0x620A +0xCAEB 0x66AE +0xCAEC 0x6BCD +0xCAED 0x7C3F +0xCAEE 0x83E9 +0xCAEF 0x5023 +0xCAF0 0x4FF8 +0xCAF1 0x5305 +0xCAF2 0x5446 +0xCAF3 0x5831 +0xCAF4 0x5949 +0xCAF5 0x5B9D +0xCAF6 0x5CF0 +0xCAF7 0x5CEF +0xCAF8 0x5D29 +0xCAF9 0x5E96 +0xCAFA 0x62B1 +0xCAFB 0x6367 +0xCAFC 0x653E +0xCAFD 0x65B9 +0xCAFE 0x670B +0xCBA1 0x6CD5 +0xCBA2 0x6CE1 +0xCBA3 0x70F9 +0xCBA4 0x7832 +0xCBA5 0x7E2B +0xCBA6 0x80DE +0xCBA7 0x82B3 +0xCBA8 0x840C +0xCBA9 0x84EC +0xCBAA 0x8702 +0xCBAB 0x8912 +0xCBAC 0x8A2A +0xCBAD 0x8C4A +0xCBAE 0x90A6 +0xCBAF 0x92D2 +0xCBB0 0x98FD +0xCBB1 0x9CF3 +0xCBB2 0x9D6C +0xCBB3 0x4E4F +0xCBB4 0x4EA1 +0xCBB5 0x508D +0xCBB6 0x5256 +0xCBB7 0x574A +0xCBB8 0x59A8 +0xCBB9 0x5E3D +0xCBBA 0x5FD8 +0xCBBB 0x5FD9 +0xCBBC 0x623F +0xCBBD 0x66B4 +0xCBBE 0x671B +0xCBBF 0x67D0 +0xCBC0 0x68D2 +0xCBC1 0x5192 +0xCBC2 0x7D21 +0xCBC3 0x80AA +0xCBC4 0x81A8 +0xCBC5 0x8B00 +0xCBC6 0x8C8C +0xCBC7 0x8CBF +0xCBC8 0x927E +0xCBC9 0x9632 +0xCBCA 0x5420 +0xCBCB 0x982C +0xCBCC 0x5317 +0xCBCD 0x50D5 +0xCBCE 0x535C +0xCBCF 0x58A8 +0xCBD0 0x64B2 +0xCBD1 0x6734 +0xCBD2 0x7267 +0xCBD3 0x7766 +0xCBD4 0x7A46 +0xCBD5 0x91E6 +0xCBD6 0x52C3 +0xCBD7 0x6CA1 +0xCBD8 0x6B86 +0xCBD9 0x5800 +0xCBDA 0x5E4C +0xCBDB 0x5954 +0xCBDC 0x672C +0xCBDD 0x7FFB +0xCBDE 0x51E1 +0xCBDF 0x76C6 +0xCBE0 0x6469 +0xCBE1 0x78E8 +0xCBE2 0x9B54 +0xCBE3 0x9EBB +0xCBE4 0x57CB +0xCBE5 0x59B9 +0xCBE6 0x6627 +0xCBE7 0x679A +0xCBE8 0x6BCE +0xCBE9 0x54E9 +0xCBEA 0x69D9 +0xCBEB 0x5E55 +0xCBEC 0x819C +0xCBED 0x6795 +0xCBEE 0x9BAA +0xCBEF 0x67FE +0xCBF0 0x9C52 +0xCBF1 0x685D +0xCBF2 0x4EA6 +0xCBF3 0x4FE3 +0xCBF4 0x53C8 +0xCBF5 0x62B9 +0xCBF6 0x672B +0xCBF7 0x6CAB +0xCBF8 0x8FC4 +0xCBF9 0x4FAD +0xCBFA 0x7E6D +0xCBFB 0x9EBF +0xCBFC 0x4E07 +0xCBFD 0x6162 +0xCBFE 0x6E80 +0xCCA1 0x6F2B +0xCCA2 0x8513 +0xCCA3 0x5473 +0xCCA4 0x672A +0xCCA5 0x9B45 +0xCCA6 0x5DF3 +0xCCA7 0x7B95 +0xCCA8 0x5CAC +0xCCA9 0x5BC6 +0xCCAA 0x871C +0xCCAB 0x6E4A +0xCCAC 0x84D1 +0xCCAD 0x7A14 +0xCCAE 0x8108 +0xCCAF 0x5999 +0xCCB0 0x7C8D +0xCCB1 0x6C11 +0xCCB2 0x7720 +0xCCB3 0x52D9 +0xCCB4 0x5922 +0xCCB5 0x7121 +0xCCB6 0x725F +0xCCB7 0x77DB +0xCCB8 0x9727 +0xCCB9 0x9D61 +0xCCBA 0x690B +0xCCBB 0x5A7F +0xCCBC 0x5A18 +0xCCBD 0x51A5 +0xCCBE 0x540D +0xCCBF 0x547D +0xCCC0 0x660E +0xCCC1 0x76DF +0xCCC2 0x8FF7 +0xCCC3 0x9298 +0xCCC4 0x9CF4 +0xCCC5 0x59EA +0xCCC6 0x725D +0xCCC7 0x6EC5 +0xCCC8 0x514D +0xCCC9 0x68C9 +0xCCCA 0x7DBF +0xCCCB 0x7DEC +0xCCCC 0x9762 +0xCCCD 0x9EBA +0xCCCE 0x6478 +0xCCCF 0x6A21 +0xCCD0 0x8302 +0xCCD1 0x5984 +0xCCD2 0x5B5F +0xCCD3 0x6BDB +0xCCD4 0x731B +0xCCD5 0x76F2 +0xCCD6 0x7DB2 +0xCCD7 0x8017 +0xCCD8 0x8499 +0xCCD9 0x5132 +0xCCDA 0x6728 +0xCCDB 0x9ED9 +0xCCDC 0x76EE +0xCCDD 0x6762 +0xCCDE 0x52FF +0xCCDF 0x9905 +0xCCE0 0x5C24 +0xCCE1 0x623B +0xCCE2 0x7C7E +0xCCE3 0x8CB0 +0xCCE4 0x554F +0xCCE5 0x60B6 +0xCCE6 0x7D0B +0xCCE7 0x9580 +0xCCE8 0x5301 +0xCCE9 0x4E5F +0xCCEA 0x51B6 +0xCCEB 0x591C +0xCCEC 0x723A +0xCCED 0x8036 +0xCCEE 0x91CE +0xCCEF 0x5F25 +0xCCF0 0x77E2 +0xCCF1 0x5384 +0xCCF2 0x5F79 +0xCCF3 0x7D04 +0xCCF4 0x85AC +0xCCF5 0x8A33 +0xCCF6 0x8E8D +0xCCF7 0x9756 +0xCCF8 0x67F3 +0xCCF9 0x85AE +0xCCFA 0x9453 +0xCCFB 0x6109 +0xCCFC 0x6108 +0xCCFD 0x6CB9 +0xCCFE 0x7652 +0xCDA1 0x8AED +0xCDA2 0x8F38 +0xCDA3 0x552F +0xCDA4 0x4F51 +0xCDA5 0x512A +0xCDA6 0x52C7 +0xCDA7 0x53CB +0xCDA8 0x5BA5 +0xCDA9 0x5E7D +0xCDAA 0x60A0 +0xCDAB 0x6182 +0xCDAC 0x63D6 +0xCDAD 0x6709 +0xCDAE 0x67DA +0xCDAF 0x6E67 +0xCDB0 0x6D8C +0xCDB1 0x7336 +0xCDB2 0x7337 +0xCDB3 0x7531 +0xCDB4 0x7950 +0xCDB5 0x88D5 +0xCDB6 0x8A98 +0xCDB7 0x904A +0xCDB8 0x9091 +0xCDB9 0x90F5 +0xCDBA 0x96C4 +0xCDBB 0x878D +0xCDBC 0x5915 +0xCDBD 0x4E88 +0xCDBE 0x4F59 +0xCDBF 0x4E0E +0xCDC0 0x8A89 +0xCDC1 0x8F3F +0xCDC2 0x9810 +0xCDC3 0x50AD +0xCDC4 0x5E7C +0xCDC5 0x5996 +0xCDC6 0x5BB9 +0xCDC7 0x5EB8 +0xCDC8 0x63DA +0xCDC9 0x63FA +0xCDCA 0x64C1 +0xCDCB 0x66DC +0xCDCC 0x694A +0xCDCD 0x69D8 +0xCDCE 0x6D0B +0xCDCF 0x6EB6 +0xCDD0 0x7194 +0xCDD1 0x7528 +0xCDD2 0x7AAF +0xCDD3 0x7F8A +0xCDD4 0x8000 +0xCDD5 0x8449 +0xCDD6 0x84C9 +0xCDD7 0x8981 +0xCDD8 0x8B21 +0xCDD9 0x8E0A +0xCDDA 0x9065 +0xCDDB 0x967D +0xCDDC 0x990A +0xCDDD 0x617E +0xCDDE 0x6291 +0xCDDF 0x6B32 +0xCDE0 0x6C83 +0xCDE1 0x6D74 +0xCDE2 0x7FCC +0xCDE3 0x7FFC +0xCDE4 0x6DC0 +0xCDE5 0x7F85 +0xCDE6 0x87BA +0xCDE7 0x88F8 +0xCDE8 0x6765 +0xCDE9 0x83B1 +0xCDEA 0x983C +0xCDEB 0x96F7 +0xCDEC 0x6D1B +0xCDED 0x7D61 +0xCDEE 0x843D +0xCDEF 0x916A +0xCDF0 0x4E71 +0xCDF1 0x5375 +0xCDF2 0x5D50 +0xCDF3 0x6B04 +0xCDF4 0x6FEB +0xCDF5 0x85CD +0xCDF6 0x862D +0xCDF7 0x89A7 +0xCDF8 0x5229 +0xCDF9 0x540F +0xCDFA 0x5C65 +0xCDFB 0x674E +0xCDFC 0x68A8 +0xCDFD 0x7406 +0xCDFE 0x7483 +0xCEA1 0x75E2 +0xCEA2 0x88CF +0xCEA3 0x88E1 +0xCEA4 0x91CC +0xCEA5 0x96E2 +0xCEA6 0x9678 +0xCEA7 0x5F8B +0xCEA8 0x7387 +0xCEA9 0x7ACB +0xCEAA 0x844E +0xCEAB 0x63A0 +0xCEAC 0x7565 +0xCEAD 0x5289 +0xCEAE 0x6D41 +0xCEAF 0x6E9C +0xCEB0 0x7409 +0xCEB1 0x7559 +0xCEB2 0x786B +0xCEB3 0x7C92 +0xCEB4 0x9686 +0xCEB5 0x7ADC +0xCEB6 0x9F8D +0xCEB7 0x4FB6 +0xCEB8 0x616E +0xCEB9 0x65C5 +0xCEBA 0x865C +0xCEBB 0x4E86 +0xCEBC 0x4EAE +0xCEBD 0x50DA +0xCEBE 0x4E21 +0xCEBF 0x51CC +0xCEC0 0x5BEE +0xCEC1 0x6599 +0xCEC2 0x6881 +0xCEC3 0x6DBC +0xCEC4 0x731F +0xCEC5 0x7642 +0xCEC6 0x77AD +0xCEC7 0x7A1C +0xCEC8 0x7CE7 +0xCEC9 0x826F +0xCECA 0x8AD2 +0xCECB 0x907C +0xCECC 0x91CF +0xCECD 0x9675 +0xCECE 0x9818 +0xCECF 0x529B +0xCED0 0x7DD1 +0xCED1 0x502B +0xCED2 0x5398 +0xCED3 0x6797 +0xCED4 0x6DCB +0xCED5 0x71D0 +0xCED6 0x7433 +0xCED7 0x81E8 +0xCED8 0x8F2A +0xCED9 0x96A3 +0xCEDA 0x9C57 +0xCEDB 0x9E9F +0xCEDC 0x7460 +0xCEDD 0x5841 +0xCEDE 0x6D99 +0xCEDF 0x7D2F +0xCEE0 0x985E +0xCEE1 0x4EE4 +0xCEE2 0x4F36 +0xCEE3 0x4F8B +0xCEE4 0x51B7 +0xCEE5 0x52B1 +0xCEE6 0x5DBA +0xCEE7 0x601C +0xCEE8 0x73B2 +0xCEE9 0x793C +0xCEEA 0x82D3 +0xCEEB 0x9234 +0xCEEC 0x96B7 +0xCEED 0x96F6 +0xCEEE 0x970A +0xCEEF 0x9E97 +0xCEF0 0x9F62 +0xCEF1 0x66A6 +0xCEF2 0x6B74 +0xCEF3 0x5217 +0xCEF4 0x52A3 +0xCEF5 0x70C8 +0xCEF6 0x88C2 +0xCEF7 0x5EC9 +0xCEF8 0x604B +0xCEF9 0x6190 +0xCEFA 0x6F23 +0xCEFB 0x7149 +0xCEFC 0x7C3E +0xCEFD 0x7DF4 +0xCEFE 0x806F +0xCFA1 0x84EE +0xCFA2 0x9023 +0xCFA3 0x932C +0xCFA4 0x5442 +0xCFA5 0x9B6F +0xCFA6 0x6AD3 +0xCFA7 0x7089 +0xCFA8 0x8CC2 +0xCFA9 0x8DEF +0xCFAA 0x9732 +0xCFAB 0x52B4 +0xCFAC 0x5A41 +0xCFAD 0x5ECA +0xCFAE 0x5F04 +0xCFAF 0x6717 +0xCFB0 0x697C +0xCFB1 0x6994 +0xCFB2 0x6D6A +0xCFB3 0x6F0F +0xCFB4 0x7262 +0xCFB5 0x72FC +0xCFB6 0x7BED +0xCFB7 0x8001 +0xCFB8 0x807E +0xCFB9 0x874B +0xCFBA 0x90CE +0xCFBB 0x516D +0xCFBC 0x9E93 +0xCFBD 0x7984 +0xCFBE 0x808B +0xCFBF 0x9332 +0xCFC0 0x8AD6 +0xCFC1 0x502D +0xCFC2 0x548C +0xCFC3 0x8A71 +0xCFC4 0x6B6A +0xCFC5 0x8CC4 +0xCFC6 0x8107 +0xCFC7 0x60D1 +0xCFC8 0x67A0 +0xCFC9 0x9DF2 +0xCFCA 0x4E99 +0xCFCB 0x4E98 +0xCFCC 0x9C10 +0xCFCD 0x8A6B +0xCFCE 0x85C1 +0xCFCF 0x8568 +0xCFD0 0x6900 +0xCFD1 0x6E7E +0xCFD2 0x7897 +0xCFD3 0x8155 +0xD0A1 0x5F0C +0xD0A2 0x4E10 +0xD0A3 0x4E15 +0xD0A4 0x4E2A +0xD0A5 0x4E31 +0xD0A6 0x4E36 +0xD0A7 0x4E3C +0xD0A8 0x4E3F +0xD0A9 0x4E42 +0xD0AA 0x4E56 +0xD0AB 0x4E58 +0xD0AC 0x4E82 +0xD0AD 0x4E85 +0xD0AE 0x8C6B +0xD0AF 0x4E8A +0xD0B0 0x8212 +0xD0B1 0x5F0D +0xD0B2 0x4E8E +0xD0B3 0x4E9E +0xD0B4 0x4E9F +0xD0B5 0x4EA0 +0xD0B6 0x4EA2 +0xD0B7 0x4EB0 +0xD0B8 0x4EB3 +0xD0B9 0x4EB6 +0xD0BA 0x4ECE +0xD0BB 0x4ECD +0xD0BC 0x4EC4 +0xD0BD 0x4EC6 +0xD0BE 0x4EC2 +0xD0BF 0x4ED7 +0xD0C0 0x4EDE +0xD0C1 0x4EED +0xD0C2 0x4EDF +0xD0C3 0x4EF7 +0xD0C4 0x4F09 +0xD0C5 0x4F5A +0xD0C6 0x4F30 +0xD0C7 0x4F5B +0xD0C8 0x4F5D +0xD0C9 0x4F57 +0xD0CA 0x4F47 +0xD0CB 0x4F76 +0xD0CC 0x4F88 +0xD0CD 0x4F8F +0xD0CE 0x4F98 +0xD0CF 0x4F7B +0xD0D0 0x4F69 +0xD0D1 0x4F70 +0xD0D2 0x4F91 +0xD0D3 0x4F6F +0xD0D4 0x4F86 +0xD0D5 0x4F96 +0xD0D6 0x5118 +0xD0D7 0x4FD4 +0xD0D8 0x4FDF +0xD0D9 0x4FCE +0xD0DA 0x4FD8 +0xD0DB 0x4FDB +0xD0DC 0x4FD1 +0xD0DD 0x4FDA +0xD0DE 0x4FD0 +0xD0DF 0x4FE4 +0xD0E0 0x4FE5 +0xD0E1 0x501A +0xD0E2 0x5028 +0xD0E3 0x5014 +0xD0E4 0x502A +0xD0E5 0x5025 +0xD0E6 0x5005 +0xD0E7 0x4F1C +0xD0E8 0x4FF6 +0xD0E9 0x5021 +0xD0EA 0x5029 +0xD0EB 0x502C +0xD0EC 0x4FFE +0xD0ED 0x4FEF +0xD0EE 0x5011 +0xD0EF 0x5006 +0xD0F0 0x5043 +0xD0F1 0x5047 +0xD0F2 0x6703 +0xD0F3 0x5055 +0xD0F4 0x5050 +0xD0F5 0x5048 +0xD0F6 0x505A +0xD0F7 0x5056 +0xD0F8 0x506C +0xD0F9 0x5078 +0xD0FA 0x5080 +0xD0FB 0x509A +0xD0FC 0x5085 +0xD0FD 0x50B4 +0xD0FE 0x50B2 +0xD1A1 0x50C9 +0xD1A2 0x50CA +0xD1A3 0x50B3 +0xD1A4 0x50C2 +0xD1A5 0x50D6 +0xD1A6 0x50DE +0xD1A7 0x50E5 +0xD1A8 0x50ED +0xD1A9 0x50E3 +0xD1AA 0x50EE +0xD1AB 0x50F9 +0xD1AC 0x50F5 +0xD1AD 0x5109 +0xD1AE 0x5101 +0xD1AF 0x5102 +0xD1B0 0x5116 +0xD1B1 0x5115 +0xD1B2 0x5114 +0xD1B3 0x511A +0xD1B4 0x5121 +0xD1B5 0x513A +0xD1B6 0x5137 +0xD1B7 0x513C +0xD1B8 0x513B +0xD1B9 0x513F +0xD1BA 0x5140 +0xD1BB 0x5152 +0xD1BC 0x514C +0xD1BD 0x5154 +0xD1BE 0x5162 +0xD1BF 0x7AF8 +0xD1C0 0x5169 +0xD1C1 0x516A +0xD1C2 0x516E +0xD1C3 0x5180 +0xD1C4 0x5182 +0xD1C5 0x56D8 +0xD1C6 0x518C +0xD1C7 0x5189 +0xD1C8 0x518F +0xD1C9 0x5191 +0xD1CA 0x5193 +0xD1CB 0x5195 +0xD1CC 0x5196 +0xD1CD 0x51A4 +0xD1CE 0x51A6 +0xD1CF 0x51A2 +0xD1D0 0x51A9 +0xD1D1 0x51AA +0xD1D2 0x51AB +0xD1D3 0x51B3 +0xD1D4 0x51B1 +0xD1D5 0x51B2 +0xD1D6 0x51B0 +0xD1D7 0x51B5 +0xD1D8 0x51BD +0xD1D9 0x51C5 +0xD1DA 0x51C9 +0xD1DB 0x51DB +0xD1DC 0x51E0 +0xD1DD 0x8655 +0xD1DE 0x51E9 +0xD1DF 0x51ED +0xD1E0 0x51F0 +0xD1E1 0x51F5 +0xD1E2 0x51FE +0xD1E3 0x5204 +0xD1E4 0x520B +0xD1E5 0x5214 +0xD1E6 0x520E +0xD1E7 0x5227 +0xD1E8 0x522A +0xD1E9 0x522E +0xD1EA 0x5233 +0xD1EB 0x5239 +0xD1EC 0x524F +0xD1ED 0x5244 +0xD1EE 0x524B +0xD1EF 0x524C +0xD1F0 0x525E +0xD1F1 0x5254 +0xD1F2 0x526A +0xD1F3 0x5274 +0xD1F4 0x5269 +0xD1F5 0x5273 +0xD1F6 0x527F +0xD1F7 0x527D +0xD1F8 0x528D +0xD1F9 0x5294 +0xD1FA 0x5292 +0xD1FB 0x5271 +0xD1FC 0x5288 +0xD1FD 0x5291 +0xD1FE 0x8FA8 +0xD2A1 0x8FA7 +0xD2A2 0x52AC +0xD2A3 0x52AD +0xD2A4 0x52BC +0xD2A5 0x52B5 +0xD2A6 0x52C1 +0xD2A7 0x52CD +0xD2A8 0x52D7 +0xD2A9 0x52DE +0xD2AA 0x52E3 +0xD2AB 0x52E6 +0xD2AC 0x98ED +0xD2AD 0x52E0 +0xD2AE 0x52F3 +0xD2AF 0x52F5 +0xD2B0 0x52F8 +0xD2B1 0x52F9 +0xD2B2 0x5306 +0xD2B3 0x5308 +0xD2B4 0x7538 +0xD2B5 0x530D +0xD2B6 0x5310 +0xD2B7 0x530F +0xD2B8 0x5315 +0xD2B9 0x531A +0xD2BA 0x5323 +0xD2BB 0x532F +0xD2BC 0x5331 +0xD2BD 0x5333 +0xD2BE 0x5338 +0xD2BF 0x5340 +0xD2C0 0x5346 +0xD2C1 0x5345 +0xD2C2 0x4E17 +0xD2C3 0x5349 +0xD2C4 0x534D +0xD2C5 0x51D6 +0xD2C6 0x535E +0xD2C7 0x5369 +0xD2C8 0x536E +0xD2C9 0x5918 +0xD2CA 0x537B +0xD2CB 0x5377 +0xD2CC 0x5382 +0xD2CD 0x5396 +0xD2CE 0x53A0 +0xD2CF 0x53A6 +0xD2D0 0x53A5 +0xD2D1 0x53AE +0xD2D2 0x53B0 +0xD2D3 0x53B6 +0xD2D4 0x53C3 +0xD2D5 0x7C12 +0xD2D6 0x96D9 +0xD2D7 0x53DF +0xD2D8 0x66FC +0xD2D9 0x71EE +0xD2DA 0x53EE +0xD2DB 0x53E8 +0xD2DC 0x53ED +0xD2DD 0x53FA +0xD2DE 0x5401 +0xD2DF 0x543D +0xD2E0 0x5440 +0xD2E1 0x542C +0xD2E2 0x542D +0xD2E3 0x543C +0xD2E4 0x542E +0xD2E5 0x5436 +0xD2E6 0x5429 +0xD2E7 0x541D +0xD2E8 0x544E +0xD2E9 0x548F +0xD2EA 0x5475 +0xD2EB 0x548E +0xD2EC 0x545F +0xD2ED 0x5471 +0xD2EE 0x5477 +0xD2EF 0x5470 +0xD2F0 0x5492 +0xD2F1 0x547B +0xD2F2 0x5480 +0xD2F3 0x5476 +0xD2F4 0x5484 +0xD2F5 0x5490 +0xD2F6 0x5486 +0xD2F7 0x54C7 +0xD2F8 0x54A2 +0xD2F9 0x54B8 +0xD2FA 0x54A5 +0xD2FB 0x54AC +0xD2FC 0x54C4 +0xD2FD 0x54C8 +0xD2FE 0x54A8 +0xD3A1 0x54AB +0xD3A2 0x54C2 +0xD3A3 0x54A4 +0xD3A4 0x54BE +0xD3A5 0x54BC +0xD3A6 0x54D8 +0xD3A7 0x54E5 +0xD3A8 0x54E6 +0xD3A9 0x550F +0xD3AA 0x5514 +0xD3AB 0x54FD +0xD3AC 0x54EE +0xD3AD 0x54ED +0xD3AE 0x54FA +0xD3AF 0x54E2 +0xD3B0 0x5539 +0xD3B1 0x5540 +0xD3B2 0x5563 +0xD3B3 0x554C +0xD3B4 0x552E +0xD3B5 0x555C +0xD3B6 0x5545 +0xD3B7 0x5556 +0xD3B8 0x5557 +0xD3B9 0x5538 +0xD3BA 0x5533 +0xD3BB 0x555D +0xD3BC 0x5599 +0xD3BD 0x5580 +0xD3BE 0x54AF +0xD3BF 0x558A +0xD3C0 0x559F +0xD3C1 0x557B +0xD3C2 0x557E +0xD3C3 0x5598 +0xD3C4 0x559E +0xD3C5 0x55AE +0xD3C6 0x557C +0xD3C7 0x5583 +0xD3C8 0x55A9 +0xD3C9 0x5587 +0xD3CA 0x55A8 +0xD3CB 0x55DA +0xD3CC 0x55C5 +0xD3CD 0x55DF +0xD3CE 0x55C4 +0xD3CF 0x55DC +0xD3D0 0x55E4 +0xD3D1 0x55D4 +0xD3D2 0x5614 +0xD3D3 0x55F7 +0xD3D4 0x5616 +0xD3D5 0x55FE +0xD3D6 0x55FD +0xD3D7 0x561B +0xD3D8 0x55F9 +0xD3D9 0x564E +0xD3DA 0x5650 +0xD3DB 0x71DF +0xD3DC 0x5634 +0xD3DD 0x5636 +0xD3DE 0x5632 +0xD3DF 0x5638 +0xD3E0 0x566B +0xD3E1 0x5664 +0xD3E2 0x562F +0xD3E3 0x566C +0xD3E4 0x566A +0xD3E5 0x5686 +0xD3E6 0x5680 +0xD3E7 0x568A +0xD3E8 0x56A0 +0xD3E9 0x5694 +0xD3EA 0x568F +0xD3EB 0x56A5 +0xD3EC 0x56AE +0xD3ED 0x56B6 +0xD3EE 0x56B4 +0xD3EF 0x56C2 +0xD3F0 0x56BC +0xD3F1 0x56C1 +0xD3F2 0x56C3 +0xD3F3 0x56C0 +0xD3F4 0x56C8 +0xD3F5 0x56CE +0xD3F6 0x56D1 +0xD3F7 0x56D3 +0xD3F8 0x56D7 +0xD3F9 0x56EE +0xD3FA 0x56F9 +0xD3FB 0x5700 +0xD3FC 0x56FF +0xD3FD 0x5704 +0xD3FE 0x5709 +0xD4A1 0x5708 +0xD4A2 0x570B +0xD4A3 0x570D +0xD4A4 0x5713 +0xD4A5 0x5718 +0xD4A6 0x5716 +0xD4A7 0x55C7 +0xD4A8 0x571C +0xD4A9 0x5726 +0xD4AA 0x5737 +0xD4AB 0x5738 +0xD4AC 0x574E +0xD4AD 0x573B +0xD4AE 0x5740 +0xD4AF 0x574F +0xD4B0 0x5769 +0xD4B1 0x57C0 +0xD4B2 0x5788 +0xD4B3 0x5761 +0xD4B4 0x577F +0xD4B5 0x5789 +0xD4B6 0x5793 +0xD4B7 0x57A0 +0xD4B8 0x57B3 +0xD4B9 0x57A4 +0xD4BA 0x57AA +0xD4BB 0x57B0 +0xD4BC 0x57C3 +0xD4BD 0x57C6 +0xD4BE 0x57D4 +0xD4BF 0x57D2 +0xD4C0 0x57D3 +0xD4C1 0x580A +0xD4C2 0x57D6 +0xD4C3 0x57E3 +0xD4C4 0x580B +0xD4C5 0x5819 +0xD4C6 0x581D +0xD4C7 0x5872 +0xD4C8 0x5821 +0xD4C9 0x5862 +0xD4CA 0x584B +0xD4CB 0x5870 +0xD4CC 0x6BC0 +0xD4CD 0x5852 +0xD4CE 0x583D +0xD4CF 0x5879 +0xD4D0 0x5885 +0xD4D1 0x58B9 +0xD4D2 0x589F +0xD4D3 0x58AB +0xD4D4 0x58BA +0xD4D5 0x58DE +0xD4D6 0x58BB +0xD4D7 0x58B8 +0xD4D8 0x58AE +0xD4D9 0x58C5 +0xD4DA 0x58D3 +0xD4DB 0x58D1 +0xD4DC 0x58D7 +0xD4DD 0x58D9 +0xD4DE 0x58D8 +0xD4DF 0x58E5 +0xD4E0 0x58DC +0xD4E1 0x58E4 +0xD4E2 0x58DF +0xD4E3 0x58EF +0xD4E4 0x58FA +0xD4E5 0x58F9 +0xD4E6 0x58FB +0xD4E7 0x58FC +0xD4E8 0x58FD +0xD4E9 0x5902 +0xD4EA 0x590A +0xD4EB 0x5910 +0xD4EC 0x591B +0xD4ED 0x68A6 +0xD4EE 0x5925 +0xD4EF 0x592C +0xD4F0 0x592D +0xD4F1 0x5932 +0xD4F2 0x5938 +0xD4F3 0x593E +0xD4F4 0x7AD2 +0xD4F5 0x5955 +0xD4F6 0x5950 +0xD4F7 0x594E +0xD4F8 0x595A +0xD4F9 0x5958 +0xD4FA 0x5962 +0xD4FB 0x5960 +0xD4FC 0x5967 +0xD4FD 0x596C +0xD4FE 0x5969 +0xD5A1 0x5978 +0xD5A2 0x5981 +0xD5A3 0x599D +0xD5A4 0x4F5E +0xD5A5 0x4FAB +0xD5A6 0x59A3 +0xD5A7 0x59B2 +0xD5A8 0x59C6 +0xD5A9 0x59E8 +0xD5AA 0x59DC +0xD5AB 0x598D +0xD5AC 0x59D9 +0xD5AD 0x59DA +0xD5AE 0x5A25 +0xD5AF 0x5A1F +0xD5B0 0x5A11 +0xD5B1 0x5A1C +0xD5B2 0x5A09 +0xD5B3 0x5A1A +0xD5B4 0x5A40 +0xD5B5 0x5A6C +0xD5B6 0x5A49 +0xD5B7 0x5A35 +0xD5B8 0x5A36 +0xD5B9 0x5A62 +0xD5BA 0x5A6A +0xD5BB 0x5A9A +0xD5BC 0x5ABC +0xD5BD 0x5ABE +0xD5BE 0x5ACB +0xD5BF 0x5AC2 +0xD5C0 0x5ABD +0xD5C1 0x5AE3 +0xD5C2 0x5AD7 +0xD5C3 0x5AE6 +0xD5C4 0x5AE9 +0xD5C5 0x5AD6 +0xD5C6 0x5AFA +0xD5C7 0x5AFB +0xD5C8 0x5B0C +0xD5C9 0x5B0B +0xD5CA 0x5B16 +0xD5CB 0x5B32 +0xD5CC 0x5AD0 +0xD5CD 0x5B2A +0xD5CE 0x5B36 +0xD5CF 0x5B3E +0xD5D0 0x5B43 +0xD5D1 0x5B45 +0xD5D2 0x5B40 +0xD5D3 0x5B51 +0xD5D4 0x5B55 +0xD5D5 0x5B5A +0xD5D6 0x5B5B +0xD5D7 0x5B65 +0xD5D8 0x5B69 +0xD5D9 0x5B70 +0xD5DA 0x5B73 +0xD5DB 0x5B75 +0xD5DC 0x5B78 +0xD5DD 0x6588 +0xD5DE 0x5B7A +0xD5DF 0x5B80 +0xD5E0 0x5B83 +0xD5E1 0x5BA6 +0xD5E2 0x5BB8 +0xD5E3 0x5BC3 +0xD5E4 0x5BC7 +0xD5E5 0x5BC9 +0xD5E6 0x5BD4 +0xD5E7 0x5BD0 +0xD5E8 0x5BE4 +0xD5E9 0x5BE6 +0xD5EA 0x5BE2 +0xD5EB 0x5BDE +0xD5EC 0x5BE5 +0xD5ED 0x5BEB +0xD5EE 0x5BF0 +0xD5EF 0x5BF6 +0xD5F0 0x5BF3 +0xD5F1 0x5C05 +0xD5F2 0x5C07 +0xD5F3 0x5C08 +0xD5F4 0x5C0D +0xD5F5 0x5C13 +0xD5F6 0x5C20 +0xD5F7 0x5C22 +0xD5F8 0x5C28 +0xD5F9 0x5C38 +0xD5FA 0x5C39 +0xD5FB 0x5C41 +0xD5FC 0x5C46 +0xD5FD 0x5C4E +0xD5FE 0x5C53 +0xD6A1 0x5C50 +0xD6A2 0x5C4F +0xD6A3 0x5B71 +0xD6A4 0x5C6C +0xD6A5 0x5C6E +0xD6A6 0x4E62 +0xD6A7 0x5C76 +0xD6A8 0x5C79 +0xD6A9 0x5C8C +0xD6AA 0x5C91 +0xD6AB 0x5C94 +0xD6AC 0x599B +0xD6AD 0x5CAB +0xD6AE 0x5CBB +0xD6AF 0x5CB6 +0xD6B0 0x5CBC +0xD6B1 0x5CB7 +0xD6B2 0x5CC5 +0xD6B3 0x5CBE +0xD6B4 0x5CC7 +0xD6B5 0x5CD9 +0xD6B6 0x5CE9 +0xD6B7 0x5CFD +0xD6B8 0x5CFA +0xD6B9 0x5CED +0xD6BA 0x5D8C +0xD6BB 0x5CEA +0xD6BC 0x5D0B +0xD6BD 0x5D15 +0xD6BE 0x5D17 +0xD6BF 0x5D5C +0xD6C0 0x5D1F +0xD6C1 0x5D1B +0xD6C2 0x5D11 +0xD6C3 0x5D14 +0xD6C4 0x5D22 +0xD6C5 0x5D1A +0xD6C6 0x5D19 +0xD6C7 0x5D18 +0xD6C8 0x5D4C +0xD6C9 0x5D52 +0xD6CA 0x5D4E +0xD6CB 0x5D4B +0xD6CC 0x5D6C +0xD6CD 0x5D73 +0xD6CE 0x5D76 +0xD6CF 0x5D87 +0xD6D0 0x5D84 +0xD6D1 0x5D82 +0xD6D2 0x5DA2 +0xD6D3 0x5D9D +0xD6D4 0x5DAC +0xD6D5 0x5DAE +0xD6D6 0x5DBD +0xD6D7 0x5D90 +0xD6D8 0x5DB7 +0xD6D9 0x5DBC +0xD6DA 0x5DC9 +0xD6DB 0x5DCD +0xD6DC 0x5DD3 +0xD6DD 0x5DD2 +0xD6DE 0x5DD6 +0xD6DF 0x5DDB +0xD6E0 0x5DEB +0xD6E1 0x5DF2 +0xD6E2 0x5DF5 +0xD6E3 0x5E0B +0xD6E4 0x5E1A +0xD6E5 0x5E19 +0xD6E6 0x5E11 +0xD6E7 0x5E1B +0xD6E8 0x5E36 +0xD6E9 0x5E37 +0xD6EA 0x5E44 +0xD6EB 0x5E43 +0xD6EC 0x5E40 +0xD6ED 0x5E4E +0xD6EE 0x5E57 +0xD6EF 0x5E54 +0xD6F0 0x5E5F +0xD6F1 0x5E62 +0xD6F2 0x5E64 +0xD6F3 0x5E47 +0xD6F4 0x5E75 +0xD6F5 0x5E76 +0xD6F6 0x5E7A +0xD6F7 0x9EBC +0xD6F8 0x5E7F +0xD6F9 0x5EA0 +0xD6FA 0x5EC1 +0xD6FB 0x5EC2 +0xD6FC 0x5EC8 +0xD6FD 0x5ED0 +0xD6FE 0x5ECF +0xD7A1 0x5ED6 +0xD7A2 0x5EE3 +0xD7A3 0x5EDD +0xD7A4 0x5EDA +0xD7A5 0x5EDB +0xD7A6 0x5EE2 +0xD7A7 0x5EE1 +0xD7A8 0x5EE8 +0xD7A9 0x5EE9 +0xD7AA 0x5EEC +0xD7AB 0x5EF1 +0xD7AC 0x5EF3 +0xD7AD 0x5EF0 +0xD7AE 0x5EF4 +0xD7AF 0x5EF8 +0xD7B0 0x5EFE +0xD7B1 0x5F03 +0xD7B2 0x5F09 +0xD7B3 0x5F5D +0xD7B4 0x5F5C +0xD7B5 0x5F0B +0xD7B6 0x5F11 +0xD7B7 0x5F16 +0xD7B8 0x5F29 +0xD7B9 0x5F2D +0xD7BA 0x5F38 +0xD7BB 0x5F41 +0xD7BC 0x5F48 +0xD7BD 0x5F4C +0xD7BE 0x5F4E +0xD7BF 0x5F2F +0xD7C0 0x5F51 +0xD7C1 0x5F56 +0xD7C2 0x5F57 +0xD7C3 0x5F59 +0xD7C4 0x5F61 +0xD7C5 0x5F6D +0xD7C6 0x5F73 +0xD7C7 0x5F77 +0xD7C8 0x5F83 +0xD7C9 0x5F82 +0xD7CA 0x5F7F +0xD7CB 0x5F8A +0xD7CC 0x5F88 +0xD7CD 0x5F91 +0xD7CE 0x5F87 +0xD7CF 0x5F9E +0xD7D0 0x5F99 +0xD7D1 0x5F98 +0xD7D2 0x5FA0 +0xD7D3 0x5FA8 +0xD7D4 0x5FAD +0xD7D5 0x5FBC +0xD7D6 0x5FD6 +0xD7D7 0x5FFB +0xD7D8 0x5FE4 +0xD7D9 0x5FF8 +0xD7DA 0x5FF1 +0xD7DB 0x5FDD +0xD7DC 0x60B3 +0xD7DD 0x5FFF +0xD7DE 0x6021 +0xD7DF 0x6060 +0xD7E0 0x6019 +0xD7E1 0x6010 +0xD7E2 0x6029 +0xD7E3 0x600E +0xD7E4 0x6031 +0xD7E5 0x601B +0xD7E6 0x6015 +0xD7E7 0x602B +0xD7E8 0x6026 +0xD7E9 0x600F +0xD7EA 0x603A +0xD7EB 0x605A +0xD7EC 0x6041 +0xD7ED 0x606A +0xD7EE 0x6077 +0xD7EF 0x605F +0xD7F0 0x604A +0xD7F1 0x6046 +0xD7F2 0x604D +0xD7F3 0x6063 +0xD7F4 0x6043 +0xD7F5 0x6064 +0xD7F6 0x6042 +0xD7F7 0x606C +0xD7F8 0x606B +0xD7F9 0x6059 +0xD7FA 0x6081 +0xD7FB 0x608D +0xD7FC 0x60E7 +0xD7FD 0x6083 +0xD7FE 0x609A +0xD8A1 0x6084 +0xD8A2 0x609B +0xD8A3 0x6096 +0xD8A4 0x6097 +0xD8A5 0x6092 +0xD8A6 0x60A7 +0xD8A7 0x608B +0xD8A8 0x60E1 +0xD8A9 0x60B8 +0xD8AA 0x60E0 +0xD8AB 0x60D3 +0xD8AC 0x60B4 +0xD8AD 0x5FF0 +0xD8AE 0x60BD +0xD8AF 0x60C6 +0xD8B0 0x60B5 +0xD8B1 0x60D8 +0xD8B2 0x614D +0xD8B3 0x6115 +0xD8B4 0x6106 +0xD8B5 0x60F6 +0xD8B6 0x60F7 +0xD8B7 0x6100 +0xD8B8 0x60F4 +0xD8B9 0x60FA +0xD8BA 0x6103 +0xD8BB 0x6121 +0xD8BC 0x60FB +0xD8BD 0x60F1 +0xD8BE 0x610D +0xD8BF 0x610E +0xD8C0 0x6147 +0xD8C1 0x613E +0xD8C2 0x6128 +0xD8C3 0x6127 +0xD8C4 0x614A +0xD8C5 0x613F +0xD8C6 0x613C +0xD8C7 0x612C +0xD8C8 0x6134 +0xD8C9 0x613D +0xD8CA 0x6142 +0xD8CB 0x6144 +0xD8CC 0x6173 +0xD8CD 0x6177 +0xD8CE 0x6158 +0xD8CF 0x6159 +0xD8D0 0x615A +0xD8D1 0x616B +0xD8D2 0x6174 +0xD8D3 0x616F +0xD8D4 0x6165 +0xD8D5 0x6171 +0xD8D6 0x615F +0xD8D7 0x615D +0xD8D8 0x6153 +0xD8D9 0x6175 +0xD8DA 0x6199 +0xD8DB 0x6196 +0xD8DC 0x6187 +0xD8DD 0x61AC +0xD8DE 0x6194 +0xD8DF 0x619A +0xD8E0 0x618A +0xD8E1 0x6191 +0xD8E2 0x61AB +0xD8E3 0x61AE +0xD8E4 0x61CC +0xD8E5 0x61CA +0xD8E6 0x61C9 +0xD8E7 0x61F7 +0xD8E8 0x61C8 +0xD8E9 0x61C3 +0xD8EA 0x61C6 +0xD8EB 0x61BA +0xD8EC 0x61CB +0xD8ED 0x7F79 +0xD8EE 0x61CD +0xD8EF 0x61E6 +0xD8F0 0x61E3 +0xD8F1 0x61F6 +0xD8F2 0x61FA +0xD8F3 0x61F4 +0xD8F4 0x61FF +0xD8F5 0x61FD +0xD8F6 0x61FC +0xD8F7 0x61FE +0xD8F8 0x6200 +0xD8F9 0x6208 +0xD8FA 0x6209 +0xD8FB 0x620D +0xD8FC 0x620C +0xD8FD 0x6214 +0xD8FE 0x621B +0xD9A1 0x621E +0xD9A2 0x6221 +0xD9A3 0x622A +0xD9A4 0x622E +0xD9A5 0x6230 +0xD9A6 0x6232 +0xD9A7 0x6233 +0xD9A8 0x6241 +0xD9A9 0x624E +0xD9AA 0x625E +0xD9AB 0x6263 +0xD9AC 0x625B +0xD9AD 0x6260 +0xD9AE 0x6268 +0xD9AF 0x627C +0xD9B0 0x6282 +0xD9B1 0x6289 +0xD9B2 0x627E +0xD9B3 0x6292 +0xD9B4 0x6293 +0xD9B5 0x6296 +0xD9B6 0x62D4 +0xD9B7 0x6283 +0xD9B8 0x6294 +0xD9B9 0x62D7 +0xD9BA 0x62D1 +0xD9BB 0x62BB +0xD9BC 0x62CF +0xD9BD 0x62FF +0xD9BE 0x62C6 +0xD9BF 0x64D4 +0xD9C0 0x62C8 +0xD9C1 0x62DC +0xD9C2 0x62CC +0xD9C3 0x62CA +0xD9C4 0x62C2 +0xD9C5 0x62C7 +0xD9C6 0x629B +0xD9C7 0x62C9 +0xD9C8 0x630C +0xD9C9 0x62EE +0xD9CA 0x62F1 +0xD9CB 0x6327 +0xD9CC 0x6302 +0xD9CD 0x6308 +0xD9CE 0x62EF +0xD9CF 0x62F5 +0xD9D0 0x6350 +0xD9D1 0x633E +0xD9D2 0x634D +0xD9D3 0x641C +0xD9D4 0x634F +0xD9D5 0x6396 +0xD9D6 0x638E +0xD9D7 0x6380 +0xD9D8 0x63AB +0xD9D9 0x6376 +0xD9DA 0x63A3 +0xD9DB 0x638F +0xD9DC 0x6389 +0xD9DD 0x639F +0xD9DE 0x63B5 +0xD9DF 0x636B +0xD9E0 0x6369 +0xD9E1 0x63BE +0xD9E2 0x63E9 +0xD9E3 0x63C0 +0xD9E4 0x63C6 +0xD9E5 0x63E3 +0xD9E6 0x63C9 +0xD9E7 0x63D2 +0xD9E8 0x63F6 +0xD9E9 0x63C4 +0xD9EA 0x6416 +0xD9EB 0x6434 +0xD9EC 0x6406 +0xD9ED 0x6413 +0xD9EE 0x6426 +0xD9EF 0x6436 +0xD9F0 0x651D +0xD9F1 0x6417 +0xD9F2 0x6428 +0xD9F3 0x640F +0xD9F4 0x6467 +0xD9F5 0x646F +0xD9F6 0x6476 +0xD9F7 0x644E +0xD9F8 0x652A +0xD9F9 0x6495 +0xD9FA 0x6493 +0xD9FB 0x64A5 +0xD9FC 0x64A9 +0xD9FD 0x6488 +0xD9FE 0x64BC +0xDAA1 0x64DA +0xDAA2 0x64D2 +0xDAA3 0x64C5 +0xDAA4 0x64C7 +0xDAA5 0x64BB +0xDAA6 0x64D8 +0xDAA7 0x64C2 +0xDAA8 0x64F1 +0xDAA9 0x64E7 +0xDAAA 0x8209 +0xDAAB 0x64E0 +0xDAAC 0x64E1 +0xDAAD 0x62AC +0xDAAE 0x64E3 +0xDAAF 0x64EF +0xDAB0 0x652C +0xDAB1 0x64F6 +0xDAB2 0x64F4 +0xDAB3 0x64F2 +0xDAB4 0x64FA +0xDAB5 0x6500 +0xDAB6 0x64FD +0xDAB7 0x6518 +0xDAB8 0x651C +0xDAB9 0x6505 +0xDABA 0x6524 +0xDABB 0x6523 +0xDABC 0x652B +0xDABD 0x6534 +0xDABE 0x6535 +0xDABF 0x6537 +0xDAC0 0x6536 +0xDAC1 0x6538 +0xDAC2 0x754B +0xDAC3 0x6548 +0xDAC4 0x6556 +0xDAC5 0x6555 +0xDAC6 0x654D +0xDAC7 0x6558 +0xDAC8 0x655E +0xDAC9 0x655D +0xDACA 0x6572 +0xDACB 0x6578 +0xDACC 0x6582 +0xDACD 0x6583 +0xDACE 0x8B8A +0xDACF 0x659B +0xDAD0 0x659F +0xDAD1 0x65AB +0xDAD2 0x65B7 +0xDAD3 0x65C3 +0xDAD4 0x65C6 +0xDAD5 0x65C1 +0xDAD6 0x65C4 +0xDAD7 0x65CC +0xDAD8 0x65D2 +0xDAD9 0x65DB +0xDADA 0x65D9 +0xDADB 0x65E0 +0xDADC 0x65E1 +0xDADD 0x65F1 +0xDADE 0x6772 +0xDADF 0x660A +0xDAE0 0x6603 +0xDAE1 0x65FB +0xDAE2 0x6773 +0xDAE3 0x6635 +0xDAE4 0x6636 +0xDAE5 0x6634 +0xDAE6 0x661C +0xDAE7 0x664F +0xDAE8 0x6644 +0xDAE9 0x6649 +0xDAEA 0x6641 +0xDAEB 0x665E +0xDAEC 0x665D +0xDAED 0x6664 +0xDAEE 0x6667 +0xDAEF 0x6668 +0xDAF0 0x665F +0xDAF1 0x6662 +0xDAF2 0x6670 +0xDAF3 0x6683 +0xDAF4 0x6688 +0xDAF5 0x668E +0xDAF6 0x6689 +0xDAF7 0x6684 +0xDAF8 0x6698 +0xDAF9 0x669D +0xDAFA 0x66C1 +0xDAFB 0x66B9 +0xDAFC 0x66C9 +0xDAFD 0x66BE +0xDAFE 0x66BC +0xDBA1 0x66C4 +0xDBA2 0x66B8 +0xDBA3 0x66D6 +0xDBA4 0x66DA +0xDBA5 0x66E0 +0xDBA6 0x663F +0xDBA7 0x66E6 +0xDBA8 0x66E9 +0xDBA9 0x66F0 +0xDBAA 0x66F5 +0xDBAB 0x66F7 +0xDBAC 0x670F +0xDBAD 0x6716 +0xDBAE 0x671E +0xDBAF 0x6726 +0xDBB0 0x6727 +0xDBB1 0x9738 +0xDBB2 0x672E +0xDBB3 0x673F +0xDBB4 0x6736 +0xDBB5 0x6741 +0xDBB6 0x6738 +0xDBB7 0x6737 +0xDBB8 0x6746 +0xDBB9 0x675E +0xDBBA 0x6760 +0xDBBB 0x6759 +0xDBBC 0x6763 +0xDBBD 0x6764 +0xDBBE 0x6789 +0xDBBF 0x6770 +0xDBC0 0x67A9 +0xDBC1 0x677C +0xDBC2 0x676A +0xDBC3 0x678C +0xDBC4 0x678B +0xDBC5 0x67A6 +0xDBC6 0x67A1 +0xDBC7 0x6785 +0xDBC8 0x67B7 +0xDBC9 0x67EF +0xDBCA 0x67B4 +0xDBCB 0x67EC +0xDBCC 0x67B3 +0xDBCD 0x67E9 +0xDBCE 0x67B8 +0xDBCF 0x67E4 +0xDBD0 0x67DE +0xDBD1 0x67DD +0xDBD2 0x67E2 +0xDBD3 0x67EE +0xDBD4 0x67B9 +0xDBD5 0x67CE +0xDBD6 0x67C6 +0xDBD7 0x67E7 +0xDBD8 0x6A9C +0xDBD9 0x681E +0xDBDA 0x6846 +0xDBDB 0x6829 +0xDBDC 0x6840 +0xDBDD 0x684D +0xDBDE 0x6832 +0xDBDF 0x684E +0xDBE0 0x68B3 +0xDBE1 0x682B +0xDBE2 0x6859 +0xDBE3 0x6863 +0xDBE4 0x6877 +0xDBE5 0x687F +0xDBE6 0x689F +0xDBE7 0x688F +0xDBE8 0x68AD +0xDBE9 0x6894 +0xDBEA 0x689D +0xDBEB 0x689B +0xDBEC 0x6883 +0xDBED 0x6AAE +0xDBEE 0x68B9 +0xDBEF 0x6874 +0xDBF0 0x68B5 +0xDBF1 0x68A0 +0xDBF2 0x68BA +0xDBF3 0x690F +0xDBF4 0x688D +0xDBF5 0x687E +0xDBF6 0x6901 +0xDBF7 0x68CA +0xDBF8 0x6908 +0xDBF9 0x68D8 +0xDBFA 0x6922 +0xDBFB 0x6926 +0xDBFC 0x68E1 +0xDBFD 0x690C +0xDBFE 0x68CD +0xDCA1 0x68D4 +0xDCA2 0x68E7 +0xDCA3 0x68D5 +0xDCA4 0x6936 +0xDCA5 0x6912 +0xDCA6 0x6904 +0xDCA7 0x68D7 +0xDCA8 0x68E3 +0xDCA9 0x6925 +0xDCAA 0x68F9 +0xDCAB 0x68E0 +0xDCAC 0x68EF +0xDCAD 0x6928 +0xDCAE 0x692A +0xDCAF 0x691A +0xDCB0 0x6923 +0xDCB1 0x6921 +0xDCB2 0x68C6 +0xDCB3 0x6979 +0xDCB4 0x6977 +0xDCB5 0x695C +0xDCB6 0x6978 +0xDCB7 0x696B +0xDCB8 0x6954 +0xDCB9 0x697E +0xDCBA 0x696E +0xDCBB 0x6939 +0xDCBC 0x6974 +0xDCBD 0x693D +0xDCBE 0x6959 +0xDCBF 0x6930 +0xDCC0 0x6961 +0xDCC1 0x695E +0xDCC2 0x695D +0xDCC3 0x6981 +0xDCC4 0x696A +0xDCC5 0x69B2 +0xDCC6 0x69AE +0xDCC7 0x69D0 +0xDCC8 0x69BF +0xDCC9 0x69C1 +0xDCCA 0x69D3 +0xDCCB 0x69BE +0xDCCC 0x69CE +0xDCCD 0x5BE8 +0xDCCE 0x69CA +0xDCCF 0x69DD +0xDCD0 0x69BB +0xDCD1 0x69C3 +0xDCD2 0x69A7 +0xDCD3 0x6A2E +0xDCD4 0x6991 +0xDCD5 0x69A0 +0xDCD6 0x699C +0xDCD7 0x6995 +0xDCD8 0x69B4 +0xDCD9 0x69DE +0xDCDA 0x69E8 +0xDCDB 0x6A02 +0xDCDC 0x6A1B +0xDCDD 0x69FF +0xDCDE 0x6B0A +0xDCDF 0x69F9 +0xDCE0 0x69F2 +0xDCE1 0x69E7 +0xDCE2 0x6A05 +0xDCE3 0x69B1 +0xDCE4 0x6A1E +0xDCE5 0x69ED +0xDCE6 0x6A14 +0xDCE7 0x69EB +0xDCE8 0x6A0A +0xDCE9 0x6A12 +0xDCEA 0x6AC1 +0xDCEB 0x6A23 +0xDCEC 0x6A13 +0xDCED 0x6A44 +0xDCEE 0x6A0C +0xDCEF 0x6A72 +0xDCF0 0x6A36 +0xDCF1 0x6A78 +0xDCF2 0x6A47 +0xDCF3 0x6A62 +0xDCF4 0x6A59 +0xDCF5 0x6A66 +0xDCF6 0x6A48 +0xDCF7 0x6A38 +0xDCF8 0x6A22 +0xDCF9 0x6A90 +0xDCFA 0x6A8D +0xDCFB 0x6AA0 +0xDCFC 0x6A84 +0xDCFD 0x6AA2 +0xDCFE 0x6AA3 +0xDDA1 0x6A97 +0xDDA2 0x8617 +0xDDA3 0x6ABB +0xDDA4 0x6AC3 +0xDDA5 0x6AC2 +0xDDA6 0x6AB8 +0xDDA7 0x6AB3 +0xDDA8 0x6AAC +0xDDA9 0x6ADE +0xDDAA 0x6AD1 +0xDDAB 0x6ADF +0xDDAC 0x6AAA +0xDDAD 0x6ADA +0xDDAE 0x6AEA +0xDDAF 0x6AFB +0xDDB0 0x6B05 +0xDDB1 0x8616 +0xDDB2 0x6AFA +0xDDB3 0x6B12 +0xDDB4 0x6B16 +0xDDB5 0x9B31 +0xDDB6 0x6B1F +0xDDB7 0x6B38 +0xDDB8 0x6B37 +0xDDB9 0x76DC +0xDDBA 0x6B39 +0xDDBB 0x98EE +0xDDBC 0x6B47 +0xDDBD 0x6B43 +0xDDBE 0x6B49 +0xDDBF 0x6B50 +0xDDC0 0x6B59 +0xDDC1 0x6B54 +0xDDC2 0x6B5B +0xDDC3 0x6B5F +0xDDC4 0x6B61 +0xDDC5 0x6B78 +0xDDC6 0x6B79 +0xDDC7 0x6B7F +0xDDC8 0x6B80 +0xDDC9 0x6B84 +0xDDCA 0x6B83 +0xDDCB 0x6B8D +0xDDCC 0x6B98 +0xDDCD 0x6B95 +0xDDCE 0x6B9E +0xDDCF 0x6BA4 +0xDDD0 0x6BAA +0xDDD1 0x6BAB +0xDDD2 0x6BAF +0xDDD3 0x6BB2 +0xDDD4 0x6BB1 +0xDDD5 0x6BB3 +0xDDD6 0x6BB7 +0xDDD7 0x6BBC +0xDDD8 0x6BC6 +0xDDD9 0x6BCB +0xDDDA 0x6BD3 +0xDDDB 0x6BDF +0xDDDC 0x6BEC +0xDDDD 0x6BEB +0xDDDE 0x6BF3 +0xDDDF 0x6BEF +0xDDE0 0x9EBE +0xDDE1 0x6C08 +0xDDE2 0x6C13 +0xDDE3 0x6C14 +0xDDE4 0x6C1B +0xDDE5 0x6C24 +0xDDE6 0x6C23 +0xDDE7 0x6C5E +0xDDE8 0x6C55 +0xDDE9 0x6C62 +0xDDEA 0x6C6A +0xDDEB 0x6C82 +0xDDEC 0x6C8D +0xDDED 0x6C9A +0xDDEE 0x6C81 +0xDDEF 0x6C9B +0xDDF0 0x6C7E +0xDDF1 0x6C68 +0xDDF2 0x6C73 +0xDDF3 0x6C92 +0xDDF4 0x6C90 +0xDDF5 0x6CC4 +0xDDF6 0x6CF1 +0xDDF7 0x6CD3 +0xDDF8 0x6CBD +0xDDF9 0x6CD7 +0xDDFA 0x6CC5 +0xDDFB 0x6CDD +0xDDFC 0x6CAE +0xDDFD 0x6CB1 +0xDDFE 0x6CBE +0xDEA1 0x6CBA +0xDEA2 0x6CDB +0xDEA3 0x6CEF +0xDEA4 0x6CD9 +0xDEA5 0x6CEA +0xDEA6 0x6D1F +0xDEA7 0x884D +0xDEA8 0x6D36 +0xDEA9 0x6D2B +0xDEAA 0x6D3D +0xDEAB 0x6D38 +0xDEAC 0x6D19 +0xDEAD 0x6D35 +0xDEAE 0x6D33 +0xDEAF 0x6D12 +0xDEB0 0x6D0C +0xDEB1 0x6D63 +0xDEB2 0x6D93 +0xDEB3 0x6D64 +0xDEB4 0x6D5A +0xDEB5 0x6D79 +0xDEB6 0x6D59 +0xDEB7 0x6D8E +0xDEB8 0x6D95 +0xDEB9 0x6FE4 +0xDEBA 0x6D85 +0xDEBB 0x6DF9 +0xDEBC 0x6E15 +0xDEBD 0x6E0A +0xDEBE 0x6DB5 +0xDEBF 0x6DC7 +0xDEC0 0x6DE6 +0xDEC1 0x6DB8 +0xDEC2 0x6DC6 +0xDEC3 0x6DEC +0xDEC4 0x6DDE +0xDEC5 0x6DCC +0xDEC6 0x6DE8 +0xDEC7 0x6DD2 +0xDEC8 0x6DC5 +0xDEC9 0x6DFA +0xDECA 0x6DD9 +0xDECB 0x6DE4 +0xDECC 0x6DD5 +0xDECD 0x6DEA +0xDECE 0x6DEE +0xDECF 0x6E2D +0xDED0 0x6E6E +0xDED1 0x6E2E +0xDED2 0x6E19 +0xDED3 0x6E72 +0xDED4 0x6E5F +0xDED5 0x6E3E +0xDED6 0x6E23 +0xDED7 0x6E6B +0xDED8 0x6E2B +0xDED9 0x6E76 +0xDEDA 0x6E4D +0xDEDB 0x6E1F +0xDEDC 0x6E43 +0xDEDD 0x6E3A +0xDEDE 0x6E4E +0xDEDF 0x6E24 +0xDEE0 0x6EFF +0xDEE1 0x6E1D +0xDEE2 0x6E38 +0xDEE3 0x6E82 +0xDEE4 0x6EAA +0xDEE5 0x6E98 +0xDEE6 0x6EC9 +0xDEE7 0x6EB7 +0xDEE8 0x6ED3 +0xDEE9 0x6EBD +0xDEEA 0x6EAF +0xDEEB 0x6EC4 +0xDEEC 0x6EB2 +0xDEED 0x6ED4 +0xDEEE 0x6ED5 +0xDEEF 0x6E8F +0xDEF0 0x6EA5 +0xDEF1 0x6EC2 +0xDEF2 0x6E9F +0xDEF3 0x6F41 +0xDEF4 0x6F11 +0xDEF5 0x704C +0xDEF6 0x6EEC +0xDEF7 0x6EF8 +0xDEF8 0x6EFE +0xDEF9 0x6F3F +0xDEFA 0x6EF2 +0xDEFB 0x6F31 +0xDEFC 0x6EEF +0xDEFD 0x6F32 +0xDEFE 0x6ECC +0xDFA1 0x6F3E +0xDFA2 0x6F13 +0xDFA3 0x6EF7 +0xDFA4 0x6F86 +0xDFA5 0x6F7A +0xDFA6 0x6F78 +0xDFA7 0x6F81 +0xDFA8 0x6F80 +0xDFA9 0x6F6F +0xDFAA 0x6F5B +0xDFAB 0x6FF3 +0xDFAC 0x6F6D +0xDFAD 0x6F82 +0xDFAE 0x6F7C +0xDFAF 0x6F58 +0xDFB0 0x6F8E +0xDFB1 0x6F91 +0xDFB2 0x6FC2 +0xDFB3 0x6F66 +0xDFB4 0x6FB3 +0xDFB5 0x6FA3 +0xDFB6 0x6FA1 +0xDFB7 0x6FA4 +0xDFB8 0x6FB9 +0xDFB9 0x6FC6 +0xDFBA 0x6FAA +0xDFBB 0x6FDF +0xDFBC 0x6FD5 +0xDFBD 0x6FEC +0xDFBE 0x6FD4 +0xDFBF 0x6FD8 +0xDFC0 0x6FF1 +0xDFC1 0x6FEE +0xDFC2 0x6FDB +0xDFC3 0x7009 +0xDFC4 0x700B +0xDFC5 0x6FFA +0xDFC6 0x7011 +0xDFC7 0x7001 +0xDFC8 0x700F +0xDFC9 0x6FFE +0xDFCA 0x701B +0xDFCB 0x701A +0xDFCC 0x6F74 +0xDFCD 0x701D +0xDFCE 0x7018 +0xDFCF 0x701F +0xDFD0 0x7030 +0xDFD1 0x703E +0xDFD2 0x7032 +0xDFD3 0x7051 +0xDFD4 0x7063 +0xDFD5 0x7099 +0xDFD6 0x7092 +0xDFD7 0x70AF +0xDFD8 0x70F1 +0xDFD9 0x70AC +0xDFDA 0x70B8 +0xDFDB 0x70B3 +0xDFDC 0x70AE +0xDFDD 0x70DF +0xDFDE 0x70CB +0xDFDF 0x70DD +0xDFE0 0x70D9 +0xDFE1 0x7109 +0xDFE2 0x70FD +0xDFE3 0x711C +0xDFE4 0x7119 +0xDFE5 0x7165 +0xDFE6 0x7155 +0xDFE7 0x7188 +0xDFE8 0x7166 +0xDFE9 0x7162 +0xDFEA 0x714C +0xDFEB 0x7156 +0xDFEC 0x716C +0xDFED 0x718F +0xDFEE 0x71FB +0xDFEF 0x7184 +0xDFF0 0x7195 +0xDFF1 0x71A8 +0xDFF2 0x71AC +0xDFF3 0x71D7 +0xDFF4 0x71B9 +0xDFF5 0x71BE +0xDFF6 0x71D2 +0xDFF7 0x71C9 +0xDFF8 0x71D4 +0xDFF9 0x71CE +0xDFFA 0x71E0 +0xDFFB 0x71EC +0xDFFC 0x71E7 +0xDFFD 0x71F5 +0xDFFE 0x71FC +0xE0A1 0x71F9 +0xE0A2 0x71FF +0xE0A3 0x720D +0xE0A4 0x7210 +0xE0A5 0x721B +0xE0A6 0x7228 +0xE0A7 0x722D +0xE0A8 0x722C +0xE0A9 0x7230 +0xE0AA 0x7232 +0xE0AB 0x723B +0xE0AC 0x723C +0xE0AD 0x723F +0xE0AE 0x7240 +0xE0AF 0x7246 +0xE0B0 0x724B +0xE0B1 0x7258 +0xE0B2 0x7274 +0xE0B3 0x727E +0xE0B4 0x7282 +0xE0B5 0x7281 +0xE0B6 0x7287 +0xE0B7 0x7292 +0xE0B8 0x7296 +0xE0B9 0x72A2 +0xE0BA 0x72A7 +0xE0BB 0x72B9 +0xE0BC 0x72B2 +0xE0BD 0x72C3 +0xE0BE 0x72C6 +0xE0BF 0x72C4 +0xE0C0 0x72CE +0xE0C1 0x72D2 +0xE0C2 0x72E2 +0xE0C3 0x72E0 +0xE0C4 0x72E1 +0xE0C5 0x72F9 +0xE0C6 0x72F7 +0xE0C7 0x500F +0xE0C8 0x7317 +0xE0C9 0x730A +0xE0CA 0x731C +0xE0CB 0x7316 +0xE0CC 0x731D +0xE0CD 0x7334 +0xE0CE 0x732F +0xE0CF 0x7329 +0xE0D0 0x7325 +0xE0D1 0x733E +0xE0D2 0x734E +0xE0D3 0x734F +0xE0D4 0x9ED8 +0xE0D5 0x7357 +0xE0D6 0x736A +0xE0D7 0x7368 +0xE0D8 0x7370 +0xE0D9 0x7378 +0xE0DA 0x7375 +0xE0DB 0x737B +0xE0DC 0x737A +0xE0DD 0x73C8 +0xE0DE 0x73B3 +0xE0DF 0x73CE +0xE0E0 0x73BB +0xE0E1 0x73C0 +0xE0E2 0x73E5 +0xE0E3 0x73EE +0xE0E4 0x73DE +0xE0E5 0x74A2 +0xE0E6 0x7405 +0xE0E7 0x746F +0xE0E8 0x7425 +0xE0E9 0x73F8 +0xE0EA 0x7432 +0xE0EB 0x743A +0xE0EC 0x7455 +0xE0ED 0x743F +0xE0EE 0x745F +0xE0EF 0x7459 +0xE0F0 0x7441 +0xE0F1 0x745C +0xE0F2 0x7469 +0xE0F3 0x7470 +0xE0F4 0x7463 +0xE0F5 0x746A +0xE0F6 0x7476 +0xE0F7 0x747E +0xE0F8 0x748B +0xE0F9 0x749E +0xE0FA 0x74A7 +0xE0FB 0x74CA +0xE0FC 0x74CF +0xE0FD 0x74D4 +0xE0FE 0x73F1 +0xE1A1 0x74E0 +0xE1A2 0x74E3 +0xE1A3 0x74E7 +0xE1A4 0x74E9 +0xE1A5 0x74EE +0xE1A6 0x74F2 +0xE1A7 0x74F0 +0xE1A8 0x74F1 +0xE1A9 0x74F8 +0xE1AA 0x74F7 +0xE1AB 0x7504 +0xE1AC 0x7503 +0xE1AD 0x7505 +0xE1AE 0x750C +0xE1AF 0x750E +0xE1B0 0x750D +0xE1B1 0x7515 +0xE1B2 0x7513 +0xE1B3 0x751E +0xE1B4 0x7526 +0xE1B5 0x752C +0xE1B6 0x753C +0xE1B7 0x7544 +0xE1B8 0x754D +0xE1B9 0x754A +0xE1BA 0x7549 +0xE1BB 0x755B +0xE1BC 0x7546 +0xE1BD 0x755A +0xE1BE 0x7569 +0xE1BF 0x7564 +0xE1C0 0x7567 +0xE1C1 0x756B +0xE1C2 0x756D +0xE1C3 0x7578 +0xE1C4 0x7576 +0xE1C5 0x7586 +0xE1C6 0x7587 +0xE1C7 0x7574 +0xE1C8 0x758A +0xE1C9 0x7589 +0xE1CA 0x7582 +0xE1CB 0x7594 +0xE1CC 0x759A +0xE1CD 0x759D +0xE1CE 0x75A5 +0xE1CF 0x75A3 +0xE1D0 0x75C2 +0xE1D1 0x75B3 +0xE1D2 0x75C3 +0xE1D3 0x75B5 +0xE1D4 0x75BD +0xE1D5 0x75B8 +0xE1D6 0x75BC +0xE1D7 0x75B1 +0xE1D8 0x75CD +0xE1D9 0x75CA +0xE1DA 0x75D2 +0xE1DB 0x75D9 +0xE1DC 0x75E3 +0xE1DD 0x75DE +0xE1DE 0x75FE +0xE1DF 0x75FF +0xE1E0 0x75FC +0xE1E1 0x7601 +0xE1E2 0x75F0 +0xE1E3 0x75FA +0xE1E4 0x75F2 +0xE1E5 0x75F3 +0xE1E6 0x760B +0xE1E7 0x760D +0xE1E8 0x7609 +0xE1E9 0x761F +0xE1EA 0x7627 +0xE1EB 0x7620 +0xE1EC 0x7621 +0xE1ED 0x7622 +0xE1EE 0x7624 +0xE1EF 0x7634 +0xE1F0 0x7630 +0xE1F1 0x763B +0xE1F2 0x7647 +0xE1F3 0x7648 +0xE1F4 0x7646 +0xE1F5 0x765C +0xE1F6 0x7658 +0xE1F7 0x7661 +0xE1F8 0x7662 +0xE1F9 0x7668 +0xE1FA 0x7669 +0xE1FB 0x766A +0xE1FC 0x7667 +0xE1FD 0x766C +0xE1FE 0x7670 +0xE2A1 0x7672 +0xE2A2 0x7676 +0xE2A3 0x7678 +0xE2A4 0x767C +0xE2A5 0x7680 +0xE2A6 0x7683 +0xE2A7 0x7688 +0xE2A8 0x768B +0xE2A9 0x768E +0xE2AA 0x7696 +0xE2AB 0x7693 +0xE2AC 0x7699 +0xE2AD 0x769A +0xE2AE 0x76B0 +0xE2AF 0x76B4 +0xE2B0 0x76B8 +0xE2B1 0x76B9 +0xE2B2 0x76BA +0xE2B3 0x76C2 +0xE2B4 0x76CD +0xE2B5 0x76D6 +0xE2B6 0x76D2 +0xE2B7 0x76DE +0xE2B8 0x76E1 +0xE2B9 0x76E5 +0xE2BA 0x76E7 +0xE2BB 0x76EA +0xE2BC 0x862F +0xE2BD 0x76FB +0xE2BE 0x7708 +0xE2BF 0x7707 +0xE2C0 0x7704 +0xE2C1 0x7729 +0xE2C2 0x7724 +0xE2C3 0x771E +0xE2C4 0x7725 +0xE2C5 0x7726 +0xE2C6 0x771B +0xE2C7 0x7737 +0xE2C8 0x7738 +0xE2C9 0x7747 +0xE2CA 0x775A +0xE2CB 0x7768 +0xE2CC 0x776B +0xE2CD 0x775B +0xE2CE 0x7765 +0xE2CF 0x777F +0xE2D0 0x777E +0xE2D1 0x7779 +0xE2D2 0x778E +0xE2D3 0x778B +0xE2D4 0x7791 +0xE2D5 0x77A0 +0xE2D6 0x779E +0xE2D7 0x77B0 +0xE2D8 0x77B6 +0xE2D9 0x77B9 +0xE2DA 0x77BF +0xE2DB 0x77BC +0xE2DC 0x77BD +0xE2DD 0x77BB +0xE2DE 0x77C7 +0xE2DF 0x77CD +0xE2E0 0x77D7 +0xE2E1 0x77DA +0xE2E2 0x77DC +0xE2E3 0x77E3 +0xE2E4 0x77EE +0xE2E5 0x77FC +0xE2E6 0x780C +0xE2E7 0x7812 +0xE2E8 0x7926 +0xE2E9 0x7820 +0xE2EA 0x792A +0xE2EB 0x7845 +0xE2EC 0x788E +0xE2ED 0x7874 +0xE2EE 0x7886 +0xE2EF 0x787C +0xE2F0 0x789A +0xE2F1 0x788C +0xE2F2 0x78A3 +0xE2F3 0x78B5 +0xE2F4 0x78AA +0xE2F5 0x78AF +0xE2F6 0x78D1 +0xE2F7 0x78C6 +0xE2F8 0x78CB +0xE2F9 0x78D4 +0xE2FA 0x78BE +0xE2FB 0x78BC +0xE2FC 0x78C5 +0xE2FD 0x78CA +0xE2FE 0x78EC +0xE3A1 0x78E7 +0xE3A2 0x78DA +0xE3A3 0x78FD +0xE3A4 0x78F4 +0xE3A5 0x7907 +0xE3A6 0x7912 +0xE3A7 0x7911 +0xE3A8 0x7919 +0xE3A9 0x792C +0xE3AA 0x792B +0xE3AB 0x7940 +0xE3AC 0x7960 +0xE3AD 0x7957 +0xE3AE 0x795F +0xE3AF 0x795A +0xE3B0 0x7955 +0xE3B1 0x7953 +0xE3B2 0x797A +0xE3B3 0x797F +0xE3B4 0x798A +0xE3B5 0x799D +0xE3B6 0x79A7 +0xE3B7 0x9F4B +0xE3B8 0x79AA +0xE3B9 0x79AE +0xE3BA 0x79B3 +0xE3BB 0x79B9 +0xE3BC 0x79BA +0xE3BD 0x79C9 +0xE3BE 0x79D5 +0xE3BF 0x79E7 +0xE3C0 0x79EC +0xE3C1 0x79E1 +0xE3C2 0x79E3 +0xE3C3 0x7A08 +0xE3C4 0x7A0D +0xE3C5 0x7A18 +0xE3C6 0x7A19 +0xE3C7 0x7A20 +0xE3C8 0x7A1F +0xE3C9 0x7980 +0xE3CA 0x7A31 +0xE3CB 0x7A3B +0xE3CC 0x7A3E +0xE3CD 0x7A37 +0xE3CE 0x7A43 +0xE3CF 0x7A57 +0xE3D0 0x7A49 +0xE3D1 0x7A61 +0xE3D2 0x7A62 +0xE3D3 0x7A69 +0xE3D4 0x9F9D +0xE3D5 0x7A70 +0xE3D6 0x7A79 +0xE3D7 0x7A7D +0xE3D8 0x7A88 +0xE3D9 0x7A97 +0xE3DA 0x7A95 +0xE3DB 0x7A98 +0xE3DC 0x7A96 +0xE3DD 0x7AA9 +0xE3DE 0x7AC8 +0xE3DF 0x7AB0 +0xE3E0 0x7AB6 +0xE3E1 0x7AC5 +0xE3E2 0x7AC4 +0xE3E3 0x7ABF +0xE3E4 0x9083 +0xE3E5 0x7AC7 +0xE3E6 0x7ACA +0xE3E7 0x7ACD +0xE3E8 0x7ACF +0xE3E9 0x7AD5 +0xE3EA 0x7AD3 +0xE3EB 0x7AD9 +0xE3EC 0x7ADA +0xE3ED 0x7ADD +0xE3EE 0x7AE1 +0xE3EF 0x7AE2 +0xE3F0 0x7AE6 +0xE3F1 0x7AED +0xE3F2 0x7AF0 +0xE3F3 0x7B02 +0xE3F4 0x7B0F +0xE3F5 0x7B0A +0xE3F6 0x7B06 +0xE3F7 0x7B33 +0xE3F8 0x7B18 +0xE3F9 0x7B19 +0xE3FA 0x7B1E +0xE3FB 0x7B35 +0xE3FC 0x7B28 +0xE3FD 0x7B36 +0xE3FE 0x7B50 +0xE4A1 0x7B7A +0xE4A2 0x7B04 +0xE4A3 0x7B4D +0xE4A4 0x7B0B +0xE4A5 0x7B4C +0xE4A6 0x7B45 +0xE4A7 0x7B75 +0xE4A8 0x7B65 +0xE4A9 0x7B74 +0xE4AA 0x7B67 +0xE4AB 0x7B70 +0xE4AC 0x7B71 +0xE4AD 0x7B6C +0xE4AE 0x7B6E +0xE4AF 0x7B9D +0xE4B0 0x7B98 +0xE4B1 0x7B9F +0xE4B2 0x7B8D +0xE4B3 0x7B9C +0xE4B4 0x7B9A +0xE4B5 0x7B8B +0xE4B6 0x7B92 +0xE4B7 0x7B8F +0xE4B8 0x7B5D +0xE4B9 0x7B99 +0xE4BA 0x7BCB +0xE4BB 0x7BC1 +0xE4BC 0x7BCC +0xE4BD 0x7BCF +0xE4BE 0x7BB4 +0xE4BF 0x7BC6 +0xE4C0 0x7BDD +0xE4C1 0x7BE9 +0xE4C2 0x7C11 +0xE4C3 0x7C14 +0xE4C4 0x7BE6 +0xE4C5 0x7BE5 +0xE4C6 0x7C60 +0xE4C7 0x7C00 +0xE4C8 0x7C07 +0xE4C9 0x7C13 +0xE4CA 0x7BF3 +0xE4CB 0x7BF7 +0xE4CC 0x7C17 +0xE4CD 0x7C0D +0xE4CE 0x7BF6 +0xE4CF 0x7C23 +0xE4D0 0x7C27 +0xE4D1 0x7C2A +0xE4D2 0x7C1F +0xE4D3 0x7C37 +0xE4D4 0x7C2B +0xE4D5 0x7C3D +0xE4D6 0x7C4C +0xE4D7 0x7C43 +0xE4D8 0x7C54 +0xE4D9 0x7C4F +0xE4DA 0x7C40 +0xE4DB 0x7C50 +0xE4DC 0x7C58 +0xE4DD 0x7C5F +0xE4DE 0x7C64 +0xE4DF 0x7C56 +0xE4E0 0x7C65 +0xE4E1 0x7C6C +0xE4E2 0x7C75 +0xE4E3 0x7C83 +0xE4E4 0x7C90 +0xE4E5 0x7CA4 +0xE4E6 0x7CAD +0xE4E7 0x7CA2 +0xE4E8 0x7CAB +0xE4E9 0x7CA1 +0xE4EA 0x7CA8 +0xE4EB 0x7CB3 +0xE4EC 0x7CB2 +0xE4ED 0x7CB1 +0xE4EE 0x7CAE +0xE4EF 0x7CB9 +0xE4F0 0x7CBD +0xE4F1 0x7CC0 +0xE4F2 0x7CC5 +0xE4F3 0x7CC2 +0xE4F4 0x7CD8 +0xE4F5 0x7CD2 +0xE4F6 0x7CDC +0xE4F7 0x7CE2 +0xE4F8 0x9B3B +0xE4F9 0x7CEF +0xE4FA 0x7CF2 +0xE4FB 0x7CF4 +0xE4FC 0x7CF6 +0xE4FD 0x7CFA +0xE4FE 0x7D06 +0xE5A1 0x7D02 +0xE5A2 0x7D1C +0xE5A3 0x7D15 +0xE5A4 0x7D0A +0xE5A5 0x7D45 +0xE5A6 0x7D4B +0xE5A7 0x7D2E +0xE5A8 0x7D32 +0xE5A9 0x7D3F +0xE5AA 0x7D35 +0xE5AB 0x7D46 +0xE5AC 0x7D73 +0xE5AD 0x7D56 +0xE5AE 0x7D4E +0xE5AF 0x7D72 +0xE5B0 0x7D68 +0xE5B1 0x7D6E +0xE5B2 0x7D4F +0xE5B3 0x7D63 +0xE5B4 0x7D93 +0xE5B5 0x7D89 +0xE5B6 0x7D5B +0xE5B7 0x7D8F +0xE5B8 0x7D7D +0xE5B9 0x7D9B +0xE5BA 0x7DBA +0xE5BB 0x7DAE +0xE5BC 0x7DA3 +0xE5BD 0x7DB5 +0xE5BE 0x7DC7 +0xE5BF 0x7DBD +0xE5C0 0x7DAB +0xE5C1 0x7E3D +0xE5C2 0x7DA2 +0xE5C3 0x7DAF +0xE5C4 0x7DDC +0xE5C5 0x7DB8 +0xE5C6 0x7D9F +0xE5C7 0x7DB0 +0xE5C8 0x7DD8 +0xE5C9 0x7DDD +0xE5CA 0x7DE4 +0xE5CB 0x7DDE +0xE5CC 0x7DFB +0xE5CD 0x7DF2 +0xE5CE 0x7DE1 +0xE5CF 0x7E05 +0xE5D0 0x7E0A +0xE5D1 0x7E23 +0xE5D2 0x7E21 +0xE5D3 0x7E12 +0xE5D4 0x7E31 +0xE5D5 0x7E1F +0xE5D6 0x7E09 +0xE5D7 0x7E0B +0xE5D8 0x7E22 +0xE5D9 0x7E46 +0xE5DA 0x7E66 +0xE5DB 0x7E3B +0xE5DC 0x7E35 +0xE5DD 0x7E39 +0xE5DE 0x7E43 +0xE5DF 0x7E37 +0xE5E0 0x7E32 +0xE5E1 0x7E3A +0xE5E2 0x7E67 +0xE5E3 0x7E5D +0xE5E4 0x7E56 +0xE5E5 0x7E5E +0xE5E6 0x7E59 +0xE5E7 0x7E5A +0xE5E8 0x7E79 +0xE5E9 0x7E6A +0xE5EA 0x7E69 +0xE5EB 0x7E7C +0xE5EC 0x7E7B +0xE5ED 0x7E83 +0xE5EE 0x7DD5 +0xE5EF 0x7E7D +0xE5F0 0x8FAE +0xE5F1 0x7E7F +0xE5F2 0x7E88 +0xE5F3 0x7E89 +0xE5F4 0x7E8C +0xE5F5 0x7E92 +0xE5F6 0x7E90 +0xE5F7 0x7E93 +0xE5F8 0x7E94 +0xE5F9 0x7E96 +0xE5FA 0x7E8E +0xE5FB 0x7E9B +0xE5FC 0x7E9C +0xE5FD 0x7F38 +0xE5FE 0x7F3A +0xE6A1 0x7F45 +0xE6A2 0x7F4C +0xE6A3 0x7F4D +0xE6A4 0x7F4E +0xE6A5 0x7F50 +0xE6A6 0x7F51 +0xE6A7 0x7F55 +0xE6A8 0x7F54 +0xE6A9 0x7F58 +0xE6AA 0x7F5F +0xE6AB 0x7F60 +0xE6AC 0x7F68 +0xE6AD 0x7F69 +0xE6AE 0x7F67 +0xE6AF 0x7F78 +0xE6B0 0x7F82 +0xE6B1 0x7F86 +0xE6B2 0x7F83 +0xE6B3 0x7F88 +0xE6B4 0x7F87 +0xE6B5 0x7F8C +0xE6B6 0x7F94 +0xE6B7 0x7F9E +0xE6B8 0x7F9D +0xE6B9 0x7F9A +0xE6BA 0x7FA3 +0xE6BB 0x7FAF +0xE6BC 0x7FB2 +0xE6BD 0x7FB9 +0xE6BE 0x7FAE +0xE6BF 0x7FB6 +0xE6C0 0x7FB8 +0xE6C1 0x8B71 +0xE6C2 0x7FC5 +0xE6C3 0x7FC6 +0xE6C4 0x7FCA +0xE6C5 0x7FD5 +0xE6C6 0x7FD4 +0xE6C7 0x7FE1 +0xE6C8 0x7FE6 +0xE6C9 0x7FE9 +0xE6CA 0x7FF3 +0xE6CB 0x7FF9 +0xE6CC 0x98DC +0xE6CD 0x8006 +0xE6CE 0x8004 +0xE6CF 0x800B +0xE6D0 0x8012 +0xE6D1 0x8018 +0xE6D2 0x8019 +0xE6D3 0x801C +0xE6D4 0x8021 +0xE6D5 0x8028 +0xE6D6 0x803F +0xE6D7 0x803B +0xE6D8 0x804A +0xE6D9 0x8046 +0xE6DA 0x8052 +0xE6DB 0x8058 +0xE6DC 0x805A +0xE6DD 0x805F +0xE6DE 0x8062 +0xE6DF 0x8068 +0xE6E0 0x8073 +0xE6E1 0x8072 +0xE6E2 0x8070 +0xE6E3 0x8076 +0xE6E4 0x8079 +0xE6E5 0x807D +0xE6E6 0x807F +0xE6E7 0x8084 +0xE6E8 0x8086 +0xE6E9 0x8085 +0xE6EA 0x809B +0xE6EB 0x8093 +0xE6EC 0x809A +0xE6ED 0x80AD +0xE6EE 0x5190 +0xE6EF 0x80AC +0xE6F0 0x80DB +0xE6F1 0x80E5 +0xE6F2 0x80D9 +0xE6F3 0x80DD +0xE6F4 0x80C4 +0xE6F5 0x80DA +0xE6F6 0x80D6 +0xE6F7 0x8109 +0xE6F8 0x80EF +0xE6F9 0x80F1 +0xE6FA 0x811B +0xE6FB 0x8129 +0xE6FC 0x8123 +0xE6FD 0x812F +0xE6FE 0x814B +0xE7A1 0x968B +0xE7A2 0x8146 +0xE7A3 0x813E +0xE7A4 0x8153 +0xE7A5 0x8151 +0xE7A6 0x80FC +0xE7A7 0x8171 +0xE7A8 0x816E +0xE7A9 0x8165 +0xE7AA 0x8166 +0xE7AB 0x8174 +0xE7AC 0x8183 +0xE7AD 0x8188 +0xE7AE 0x818A +0xE7AF 0x8180 +0xE7B0 0x8182 +0xE7B1 0x81A0 +0xE7B2 0x8195 +0xE7B3 0x81A4 +0xE7B4 0x81A3 +0xE7B5 0x815F +0xE7B6 0x8193 +0xE7B7 0x81A9 +0xE7B8 0x81B0 +0xE7B9 0x81B5 +0xE7BA 0x81BE +0xE7BB 0x81B8 +0xE7BC 0x81BD +0xE7BD 0x81C0 +0xE7BE 0x81C2 +0xE7BF 0x81BA +0xE7C0 0x81C9 +0xE7C1 0x81CD +0xE7C2 0x81D1 +0xE7C3 0x81D9 +0xE7C4 0x81D8 +0xE7C5 0x81C8 +0xE7C6 0x81DA +0xE7C7 0x81DF +0xE7C8 0x81E0 +0xE7C9 0x81E7 +0xE7CA 0x81FA +0xE7CB 0x81FB +0xE7CC 0x81FE +0xE7CD 0x8201 +0xE7CE 0x8202 +0xE7CF 0x8205 +0xE7D0 0x8207 +0xE7D1 0x820A +0xE7D2 0x820D +0xE7D3 0x8210 +0xE7D4 0x8216 +0xE7D5 0x8229 +0xE7D6 0x822B +0xE7D7 0x8238 +0xE7D8 0x8233 +0xE7D9 0x8240 +0xE7DA 0x8259 +0xE7DB 0x8258 +0xE7DC 0x825D +0xE7DD 0x825A +0xE7DE 0x825F +0xE7DF 0x8264 +0xE7E0 0x8262 +0xE7E1 0x8268 +0xE7E2 0x826A +0xE7E3 0x826B +0xE7E4 0x822E +0xE7E5 0x8271 +0xE7E6 0x8277 +0xE7E7 0x8278 +0xE7E8 0x827E +0xE7E9 0x828D +0xE7EA 0x8292 +0xE7EB 0x82AB +0xE7EC 0x829F +0xE7ED 0x82BB +0xE7EE 0x82AC +0xE7EF 0x82E1 +0xE7F0 0x82E3 +0xE7F1 0x82DF +0xE7F2 0x82D2 +0xE7F3 0x82F4 +0xE7F4 0x82F3 +0xE7F5 0x82FA +0xE7F6 0x8393 +0xE7F7 0x8303 +0xE7F8 0x82FB +0xE7F9 0x82F9 +0xE7FA 0x82DE +0xE7FB 0x8306 +0xE7FC 0x82DC +0xE7FD 0x8309 +0xE7FE 0x82D9 +0xE8A1 0x8335 +0xE8A2 0x8334 +0xE8A3 0x8316 +0xE8A4 0x8332 +0xE8A5 0x8331 +0xE8A6 0x8340 +0xE8A7 0x8339 +0xE8A8 0x8350 +0xE8A9 0x8345 +0xE8AA 0x832F +0xE8AB 0x832B +0xE8AC 0x8317 +0xE8AD 0x8318 +0xE8AE 0x8385 +0xE8AF 0x839A +0xE8B0 0x83AA +0xE8B1 0x839F +0xE8B2 0x83A2 +0xE8B3 0x8396 +0xE8B4 0x8323 +0xE8B5 0x838E +0xE8B6 0x8387 +0xE8B7 0x838A +0xE8B8 0x837C +0xE8B9 0x83B5 +0xE8BA 0x8373 +0xE8BB 0x8375 +0xE8BC 0x83A0 +0xE8BD 0x8389 +0xE8BE 0x83A8 +0xE8BF 0x83F4 +0xE8C0 0x8413 +0xE8C1 0x83EB +0xE8C2 0x83CE +0xE8C3 0x83FD +0xE8C4 0x8403 +0xE8C5 0x83D8 +0xE8C6 0x840B +0xE8C7 0x83C1 +0xE8C8 0x83F7 +0xE8C9 0x8407 +0xE8CA 0x83E0 +0xE8CB 0x83F2 +0xE8CC 0x840D +0xE8CD 0x8422 +0xE8CE 0x8420 +0xE8CF 0x83BD +0xE8D0 0x8438 +0xE8D1 0x8506 +0xE8D2 0x83FB +0xE8D3 0x846D +0xE8D4 0x842A +0xE8D5 0x843C +0xE8D6 0x855A +0xE8D7 0x8484 +0xE8D8 0x8477 +0xE8D9 0x846B +0xE8DA 0x84AD +0xE8DB 0x846E +0xE8DC 0x8482 +0xE8DD 0x8469 +0xE8DE 0x8446 +0xE8DF 0x842C +0xE8E0 0x846F +0xE8E1 0x8479 +0xE8E2 0x8435 +0xE8E3 0x84CA +0xE8E4 0x8462 +0xE8E5 0x84B9 +0xE8E6 0x84BF +0xE8E7 0x849F +0xE8E8 0x84D9 +0xE8E9 0x84CD +0xE8EA 0x84BB +0xE8EB 0x84DA +0xE8EC 0x84D0 +0xE8ED 0x84C1 +0xE8EE 0x84C6 +0xE8EF 0x84D6 +0xE8F0 0x84A1 +0xE8F1 0x8521 +0xE8F2 0x84FF +0xE8F3 0x84F4 +0xE8F4 0x8517 +0xE8F5 0x8518 +0xE8F6 0x852C +0xE8F7 0x851F +0xE8F8 0x8515 +0xE8F9 0x8514 +0xE8FA 0x84FC +0xE8FB 0x8540 +0xE8FC 0x8563 +0xE8FD 0x8558 +0xE8FE 0x8548 +0xE9A1 0x8541 +0xE9A2 0x8602 +0xE9A3 0x854B +0xE9A4 0x8555 +0xE9A5 0x8580 +0xE9A6 0x85A4 +0xE9A7 0x8588 +0xE9A8 0x8591 +0xE9A9 0x858A +0xE9AA 0x85A8 +0xE9AB 0x856D +0xE9AC 0x8594 +0xE9AD 0x859B +0xE9AE 0x85EA +0xE9AF 0x8587 +0xE9B0 0x859C +0xE9B1 0x8577 +0xE9B2 0x857E +0xE9B3 0x8590 +0xE9B4 0x85C9 +0xE9B5 0x85BA +0xE9B6 0x85CF +0xE9B7 0x85B9 +0xE9B8 0x85D0 +0xE9B9 0x85D5 +0xE9BA 0x85DD +0xE9BB 0x85E5 +0xE9BC 0x85DC +0xE9BD 0x85F9 +0xE9BE 0x860A +0xE9BF 0x8613 +0xE9C0 0x860B +0xE9C1 0x85FE +0xE9C2 0x85FA +0xE9C3 0x8606 +0xE9C4 0x8622 +0xE9C5 0x861A +0xE9C6 0x8630 +0xE9C7 0x863F +0xE9C8 0x864D +0xE9C9 0x4E55 +0xE9CA 0x8654 +0xE9CB 0x865F +0xE9CC 0x8667 +0xE9CD 0x8671 +0xE9CE 0x8693 +0xE9CF 0x86A3 +0xE9D0 0x86A9 +0xE9D1 0x86AA +0xE9D2 0x868B +0xE9D3 0x868C +0xE9D4 0x86B6 +0xE9D5 0x86AF +0xE9D6 0x86C4 +0xE9D7 0x86C6 +0xE9D8 0x86B0 +0xE9D9 0x86C9 +0xE9DA 0x8823 +0xE9DB 0x86AB +0xE9DC 0x86D4 +0xE9DD 0x86DE +0xE9DE 0x86E9 +0xE9DF 0x86EC +0xE9E0 0x86DF +0xE9E1 0x86DB +0xE9E2 0x86EF +0xE9E3 0x8712 +0xE9E4 0x8706 +0xE9E5 0x8708 +0xE9E6 0x8700 +0xE9E7 0x8703 +0xE9E8 0x86FB +0xE9E9 0x8711 +0xE9EA 0x8709 +0xE9EB 0x870D +0xE9EC 0x86F9 +0xE9ED 0x870A +0xE9EE 0x8734 +0xE9EF 0x873F +0xE9F0 0x8737 +0xE9F1 0x873B +0xE9F2 0x8725 +0xE9F3 0x8729 +0xE9F4 0x871A +0xE9F5 0x8760 +0xE9F6 0x875F +0xE9F7 0x8778 +0xE9F8 0x874C +0xE9F9 0x874E +0xE9FA 0x8774 +0xE9FB 0x8757 +0xE9FC 0x8768 +0xE9FD 0x876E +0xE9FE 0x8759 +0xEAA1 0x8753 +0xEAA2 0x8763 +0xEAA3 0x876A +0xEAA4 0x8805 +0xEAA5 0x87A2 +0xEAA6 0x879F +0xEAA7 0x8782 +0xEAA8 0x87AF +0xEAA9 0x87CB +0xEAAA 0x87BD +0xEAAB 0x87C0 +0xEAAC 0x87D0 +0xEAAD 0x96D6 +0xEAAE 0x87AB +0xEAAF 0x87C4 +0xEAB0 0x87B3 +0xEAB1 0x87C7 +0xEAB2 0x87C6 +0xEAB3 0x87BB +0xEAB4 0x87EF +0xEAB5 0x87F2 +0xEAB6 0x87E0 +0xEAB7 0x880F +0xEAB8 0x880D +0xEAB9 0x87FE +0xEABA 0x87F6 +0xEABB 0x87F7 +0xEABC 0x880E +0xEABD 0x87D2 +0xEABE 0x8811 +0xEABF 0x8816 +0xEAC0 0x8815 +0xEAC1 0x8822 +0xEAC2 0x8821 +0xEAC3 0x8831 +0xEAC4 0x8836 +0xEAC5 0x8839 +0xEAC6 0x8827 +0xEAC7 0x883B +0xEAC8 0x8844 +0xEAC9 0x8842 +0xEACA 0x8852 +0xEACB 0x8859 +0xEACC 0x885E +0xEACD 0x8862 +0xEACE 0x886B +0xEACF 0x8881 +0xEAD0 0x887E +0xEAD1 0x889E +0xEAD2 0x8875 +0xEAD3 0x887D +0xEAD4 0x88B5 +0xEAD5 0x8872 +0xEAD6 0x8882 +0xEAD7 0x8897 +0xEAD8 0x8892 +0xEAD9 0x88AE +0xEADA 0x8899 +0xEADB 0x88A2 +0xEADC 0x888D +0xEADD 0x88A4 +0xEADE 0x88B0 +0xEADF 0x88BF +0xEAE0 0x88B1 +0xEAE1 0x88C3 +0xEAE2 0x88C4 +0xEAE3 0x88D4 +0xEAE4 0x88D8 +0xEAE5 0x88D9 +0xEAE6 0x88DD +0xEAE7 0x88F9 +0xEAE8 0x8902 +0xEAE9 0x88FC +0xEAEA 0x88F4 +0xEAEB 0x88E8 +0xEAEC 0x88F2 +0xEAED 0x8904 +0xEAEE 0x890C +0xEAEF 0x890A +0xEAF0 0x8913 +0xEAF1 0x8943 +0xEAF2 0x891E +0xEAF3 0x8925 +0xEAF4 0x892A +0xEAF5 0x892B +0xEAF6 0x8941 +0xEAF7 0x8944 +0xEAF8 0x893B +0xEAF9 0x8936 +0xEAFA 0x8938 +0xEAFB 0x894C +0xEAFC 0x891D +0xEAFD 0x8960 +0xEAFE 0x895E +0xEBA1 0x8966 +0xEBA2 0x8964 +0xEBA3 0x896D +0xEBA4 0x896A +0xEBA5 0x896F +0xEBA6 0x8974 +0xEBA7 0x8977 +0xEBA8 0x897E +0xEBA9 0x8983 +0xEBAA 0x8988 +0xEBAB 0x898A +0xEBAC 0x8993 +0xEBAD 0x8998 +0xEBAE 0x89A1 +0xEBAF 0x89A9 +0xEBB0 0x89A6 +0xEBB1 0x89AC +0xEBB2 0x89AF +0xEBB3 0x89B2 +0xEBB4 0x89BA +0xEBB5 0x89BD +0xEBB6 0x89BF +0xEBB7 0x89C0 +0xEBB8 0x89DA +0xEBB9 0x89DC +0xEBBA 0x89DD +0xEBBB 0x89E7 +0xEBBC 0x89F4 +0xEBBD 0x89F8 +0xEBBE 0x8A03 +0xEBBF 0x8A16 +0xEBC0 0x8A10 +0xEBC1 0x8A0C +0xEBC2 0x8A1B +0xEBC3 0x8A1D +0xEBC4 0x8A25 +0xEBC5 0x8A36 +0xEBC6 0x8A41 +0xEBC7 0x8A5B +0xEBC8 0x8A52 +0xEBC9 0x8A46 +0xEBCA 0x8A48 +0xEBCB 0x8A7C +0xEBCC 0x8A6D +0xEBCD 0x8A6C +0xEBCE 0x8A62 +0xEBCF 0x8A85 +0xEBD0 0x8A82 +0xEBD1 0x8A84 +0xEBD2 0x8AA8 +0xEBD3 0x8AA1 +0xEBD4 0x8A91 +0xEBD5 0x8AA5 +0xEBD6 0x8AA6 +0xEBD7 0x8A9A +0xEBD8 0x8AA3 +0xEBD9 0x8AC4 +0xEBDA 0x8ACD +0xEBDB 0x8AC2 +0xEBDC 0x8ADA +0xEBDD 0x8AEB +0xEBDE 0x8AF3 +0xEBDF 0x8AE7 +0xEBE0 0x8AE4 +0xEBE1 0x8AF1 +0xEBE2 0x8B14 +0xEBE3 0x8AE0 +0xEBE4 0x8AE2 +0xEBE5 0x8AF7 +0xEBE6 0x8ADE +0xEBE7 0x8ADB +0xEBE8 0x8B0C +0xEBE9 0x8B07 +0xEBEA 0x8B1A +0xEBEB 0x8AE1 +0xEBEC 0x8B16 +0xEBED 0x8B10 +0xEBEE 0x8B17 +0xEBEF 0x8B20 +0xEBF0 0x8B33 +0xEBF1 0x97AB +0xEBF2 0x8B26 +0xEBF3 0x8B2B +0xEBF4 0x8B3E +0xEBF5 0x8B28 +0xEBF6 0x8B41 +0xEBF7 0x8B4C +0xEBF8 0x8B4F +0xEBF9 0x8B4E +0xEBFA 0x8B49 +0xEBFB 0x8B56 +0xEBFC 0x8B5B +0xEBFD 0x8B5A +0xEBFE 0x8B6B +0xECA1 0x8B5F +0xECA2 0x8B6C +0xECA3 0x8B6F +0xECA4 0x8B74 +0xECA5 0x8B7D +0xECA6 0x8B80 +0xECA7 0x8B8C +0xECA8 0x8B8E +0xECA9 0x8B92 +0xECAA 0x8B93 +0xECAB 0x8B96 +0xECAC 0x8B99 +0xECAD 0x8B9A +0xECAE 0x8C3A +0xECAF 0x8C41 +0xECB0 0x8C3F +0xECB1 0x8C48 +0xECB2 0x8C4C +0xECB3 0x8C4E +0xECB4 0x8C50 +0xECB5 0x8C55 +0xECB6 0x8C62 +0xECB7 0x8C6C +0xECB8 0x8C78 +0xECB9 0x8C7A +0xECBA 0x8C82 +0xECBB 0x8C89 +0xECBC 0x8C85 +0xECBD 0x8C8A +0xECBE 0x8C8D +0xECBF 0x8C8E +0xECC0 0x8C94 +0xECC1 0x8C7C +0xECC2 0x8C98 +0xECC3 0x621D +0xECC4 0x8CAD +0xECC5 0x8CAA +0xECC6 0x8CBD +0xECC7 0x8CB2 +0xECC8 0x8CB3 +0xECC9 0x8CAE +0xECCA 0x8CB6 +0xECCB 0x8CC8 +0xECCC 0x8CC1 +0xECCD 0x8CE4 +0xECCE 0x8CE3 +0xECCF 0x8CDA +0xECD0 0x8CFD +0xECD1 0x8CFA +0xECD2 0x8CFB +0xECD3 0x8D04 +0xECD4 0x8D05 +0xECD5 0x8D0A +0xECD6 0x8D07 +0xECD7 0x8D0F +0xECD8 0x8D0D +0xECD9 0x8D10 +0xECDA 0x9F4E +0xECDB 0x8D13 +0xECDC 0x8CCD +0xECDD 0x8D14 +0xECDE 0x8D16 +0xECDF 0x8D67 +0xECE0 0x8D6D +0xECE1 0x8D71 +0xECE2 0x8D73 +0xECE3 0x8D81 +0xECE4 0x8D99 +0xECE5 0x8DC2 +0xECE6 0x8DBE +0xECE7 0x8DBA +0xECE8 0x8DCF +0xECE9 0x8DDA +0xECEA 0x8DD6 +0xECEB 0x8DCC +0xECEC 0x8DDB +0xECED 0x8DCB +0xECEE 0x8DEA +0xECEF 0x8DEB +0xECF0 0x8DDF +0xECF1 0x8DE3 +0xECF2 0x8DFC +0xECF3 0x8E08 +0xECF4 0x8E09 +0xECF5 0x8DFF +0xECF6 0x8E1D +0xECF7 0x8E1E +0xECF8 0x8E10 +0xECF9 0x8E1F +0xECFA 0x8E42 +0xECFB 0x8E35 +0xECFC 0x8E30 +0xECFD 0x8E34 +0xECFE 0x8E4A +0xEDA1 0x8E47 +0xEDA2 0x8E49 +0xEDA3 0x8E4C +0xEDA4 0x8E50 +0xEDA5 0x8E48 +0xEDA6 0x8E59 +0xEDA7 0x8E64 +0xEDA8 0x8E60 +0xEDA9 0x8E2A +0xEDAA 0x8E63 +0xEDAB 0x8E55 +0xEDAC 0x8E76 +0xEDAD 0x8E72 +0xEDAE 0x8E7C +0xEDAF 0x8E81 +0xEDB0 0x8E87 +0xEDB1 0x8E85 +0xEDB2 0x8E84 +0xEDB3 0x8E8B +0xEDB4 0x8E8A +0xEDB5 0x8E93 +0xEDB6 0x8E91 +0xEDB7 0x8E94 +0xEDB8 0x8E99 +0xEDB9 0x8EAA +0xEDBA 0x8EA1 +0xEDBB 0x8EAC +0xEDBC 0x8EB0 +0xEDBD 0x8EC6 +0xEDBE 0x8EB1 +0xEDBF 0x8EBE +0xEDC0 0x8EC5 +0xEDC1 0x8EC8 +0xEDC2 0x8ECB +0xEDC3 0x8EDB +0xEDC4 0x8EE3 +0xEDC5 0x8EFC +0xEDC6 0x8EFB +0xEDC7 0x8EEB +0xEDC8 0x8EFE +0xEDC9 0x8F0A +0xEDCA 0x8F05 +0xEDCB 0x8F15 +0xEDCC 0x8F12 +0xEDCD 0x8F19 +0xEDCE 0x8F13 +0xEDCF 0x8F1C +0xEDD0 0x8F1F +0xEDD1 0x8F1B +0xEDD2 0x8F0C +0xEDD3 0x8F26 +0xEDD4 0x8F33 +0xEDD5 0x8F3B +0xEDD6 0x8F39 +0xEDD7 0x8F45 +0xEDD8 0x8F42 +0xEDD9 0x8F3E +0xEDDA 0x8F4C +0xEDDB 0x8F49 +0xEDDC 0x8F46 +0xEDDD 0x8F4E +0xEDDE 0x8F57 +0xEDDF 0x8F5C +0xEDE0 0x8F62 +0xEDE1 0x8F63 +0xEDE2 0x8F64 +0xEDE3 0x8F9C +0xEDE4 0x8F9F +0xEDE5 0x8FA3 +0xEDE6 0x8FAD +0xEDE7 0x8FAF +0xEDE8 0x8FB7 +0xEDE9 0x8FDA +0xEDEA 0x8FE5 +0xEDEB 0x8FE2 +0xEDEC 0x8FEA +0xEDED 0x8FEF +0xEDEE 0x9087 +0xEDEF 0x8FF4 +0xEDF0 0x9005 +0xEDF1 0x8FF9 +0xEDF2 0x8FFA +0xEDF3 0x9011 +0xEDF4 0x9015 +0xEDF5 0x9021 +0xEDF6 0x900D +0xEDF7 0x901E +0xEDF8 0x9016 +0xEDF9 0x900B +0xEDFA 0x9027 +0xEDFB 0x9036 +0xEDFC 0x9035 +0xEDFD 0x9039 +0xEDFE 0x8FF8 +0xEEA1 0x904F +0xEEA2 0x9050 +0xEEA3 0x9051 +0xEEA4 0x9052 +0xEEA5 0x900E +0xEEA6 0x9049 +0xEEA7 0x903E +0xEEA8 0x9056 +0xEEA9 0x9058 +0xEEAA 0x905E +0xEEAB 0x9068 +0xEEAC 0x906F +0xEEAD 0x9076 +0xEEAE 0x96A8 +0xEEAF 0x9072 +0xEEB0 0x9082 +0xEEB1 0x907D +0xEEB2 0x9081 +0xEEB3 0x9080 +0xEEB4 0x908A +0xEEB5 0x9089 +0xEEB6 0x908F +0xEEB7 0x90A8 +0xEEB8 0x90AF +0xEEB9 0x90B1 +0xEEBA 0x90B5 +0xEEBB 0x90E2 +0xEEBC 0x90E4 +0xEEBD 0x6248 +0xEEBE 0x90DB +0xEEBF 0x9102 +0xEEC0 0x9112 +0xEEC1 0x9119 +0xEEC2 0x9132 +0xEEC3 0x9130 +0xEEC4 0x914A +0xEEC5 0x9156 +0xEEC6 0x9158 +0xEEC7 0x9163 +0xEEC8 0x9165 +0xEEC9 0x9169 +0xEECA 0x9173 +0xEECB 0x9172 +0xEECC 0x918B +0xEECD 0x9189 +0xEECE 0x9182 +0xEECF 0x91A2 +0xEED0 0x91AB +0xEED1 0x91AF +0xEED2 0x91AA +0xEED3 0x91B5 +0xEED4 0x91B4 +0xEED5 0x91BA +0xEED6 0x91C0 +0xEED7 0x91C1 +0xEED8 0x91C9 +0xEED9 0x91CB +0xEEDA 0x91D0 +0xEEDB 0x91D6 +0xEEDC 0x91DF +0xEEDD 0x91E1 +0xEEDE 0x91DB +0xEEDF 0x91FC +0xEEE0 0x91F5 +0xEEE1 0x91F6 +0xEEE2 0x921E +0xEEE3 0x91FF +0xEEE4 0x9214 +0xEEE5 0x922C +0xEEE6 0x9215 +0xEEE7 0x9211 +0xEEE8 0x925E +0xEEE9 0x9257 +0xEEEA 0x9245 +0xEEEB 0x9249 +0xEEEC 0x9264 +0xEEED 0x9248 +0xEEEE 0x9295 +0xEEEF 0x923F +0xEEF0 0x924B +0xEEF1 0x9250 +0xEEF2 0x929C +0xEEF3 0x9296 +0xEEF4 0x9293 +0xEEF5 0x929B +0xEEF6 0x925A +0xEEF7 0x92CF +0xEEF8 0x92B9 +0xEEF9 0x92B7 +0xEEFA 0x92E9 +0xEEFB 0x930F +0xEEFC 0x92FA +0xEEFD 0x9344 +0xEEFE 0x932E +0xEFA1 0x9319 +0xEFA2 0x9322 +0xEFA3 0x931A +0xEFA4 0x9323 +0xEFA5 0x933A +0xEFA6 0x9335 +0xEFA7 0x933B +0xEFA8 0x935C +0xEFA9 0x9360 +0xEFAA 0x937C +0xEFAB 0x936E +0xEFAC 0x9356 +0xEFAD 0x93B0 +0xEFAE 0x93AC +0xEFAF 0x93AD +0xEFB0 0x9394 +0xEFB1 0x93B9 +0xEFB2 0x93D6 +0xEFB3 0x93D7 +0xEFB4 0x93E8 +0xEFB5 0x93E5 +0xEFB6 0x93D8 +0xEFB7 0x93C3 +0xEFB8 0x93DD +0xEFB9 0x93D0 +0xEFBA 0x93C8 +0xEFBB 0x93E4 +0xEFBC 0x941A +0xEFBD 0x9414 +0xEFBE 0x9413 +0xEFBF 0x9403 +0xEFC0 0x9407 +0xEFC1 0x9410 +0xEFC2 0x9436 +0xEFC3 0x942B +0xEFC4 0x9435 +0xEFC5 0x9421 +0xEFC6 0x943A +0xEFC7 0x9441 +0xEFC8 0x9452 +0xEFC9 0x9444 +0xEFCA 0x945B +0xEFCB 0x9460 +0xEFCC 0x9462 +0xEFCD 0x945E +0xEFCE 0x946A +0xEFCF 0x9229 +0xEFD0 0x9470 +0xEFD1 0x9475 +0xEFD2 0x9477 +0xEFD3 0x947D +0xEFD4 0x945A +0xEFD5 0x947C +0xEFD6 0x947E +0xEFD7 0x9481 +0xEFD8 0x947F +0xEFD9 0x9582 +0xEFDA 0x9587 +0xEFDB 0x958A +0xEFDC 0x9594 +0xEFDD 0x9596 +0xEFDE 0x9598 +0xEFDF 0x9599 +0xEFE0 0x95A0 +0xEFE1 0x95A8 +0xEFE2 0x95A7 +0xEFE3 0x95AD +0xEFE4 0x95BC +0xEFE5 0x95BB +0xEFE6 0x95B9 +0xEFE7 0x95BE +0xEFE8 0x95CA +0xEFE9 0x6FF6 +0xEFEA 0x95C3 +0xEFEB 0x95CD +0xEFEC 0x95CC +0xEFED 0x95D5 +0xEFEE 0x95D4 +0xEFEF 0x95D6 +0xEFF0 0x95DC +0xEFF1 0x95E1 +0xEFF2 0x95E5 +0xEFF3 0x95E2 +0xEFF4 0x9621 +0xEFF5 0x9628 +0xEFF6 0x962E +0xEFF7 0x962F +0xEFF8 0x9642 +0xEFF9 0x964C +0xEFFA 0x964F +0xEFFB 0x964B +0xEFFC 0x9677 +0xEFFD 0x965C +0xEFFE 0x965E +0xF0A1 0x965D +0xF0A2 0x965F +0xF0A3 0x9666 +0xF0A4 0x9672 +0xF0A5 0x966C +0xF0A6 0x968D +0xF0A7 0x9698 +0xF0A8 0x9695 +0xF0A9 0x9697 +0xF0AA 0x96AA +0xF0AB 0x96A7 +0xF0AC 0x96B1 +0xF0AD 0x96B2 +0xF0AE 0x96B0 +0xF0AF 0x96B4 +0xF0B0 0x96B6 +0xF0B1 0x96B8 +0xF0B2 0x96B9 +0xF0B3 0x96CE +0xF0B4 0x96CB +0xF0B5 0x96C9 +0xF0B6 0x96CD +0xF0B7 0x894D +0xF0B8 0x96DC +0xF0B9 0x970D +0xF0BA 0x96D5 +0xF0BB 0x96F9 +0xF0BC 0x9704 +0xF0BD 0x9706 +0xF0BE 0x9708 +0xF0BF 0x9713 +0xF0C0 0x970E +0xF0C1 0x9711 +0xF0C2 0x970F +0xF0C3 0x9716 +0xF0C4 0x9719 +0xF0C5 0x9724 +0xF0C6 0x972A +0xF0C7 0x9730 +0xF0C8 0x9739 +0xF0C9 0x973D +0xF0CA 0x973E +0xF0CB 0x9744 +0xF0CC 0x9746 +0xF0CD 0x9748 +0xF0CE 0x9742 +0xF0CF 0x9749 +0xF0D0 0x975C +0xF0D1 0x9760 +0xF0D2 0x9764 +0xF0D3 0x9766 +0xF0D4 0x9768 +0xF0D5 0x52D2 +0xF0D6 0x976B +0xF0D7 0x9771 +0xF0D8 0x9779 +0xF0D9 0x9785 +0xF0DA 0x977C +0xF0DB 0x9781 +0xF0DC 0x977A +0xF0DD 0x9786 +0xF0DE 0x978B +0xF0DF 0x978F +0xF0E0 0x9790 +0xF0E1 0x979C +0xF0E2 0x97A8 +0xF0E3 0x97A6 +0xF0E4 0x97A3 +0xF0E5 0x97B3 +0xF0E6 0x97B4 +0xF0E7 0x97C3 +0xF0E8 0x97C6 +0xF0E9 0x97C8 +0xF0EA 0x97CB +0xF0EB 0x97DC +0xF0EC 0x97ED +0xF0ED 0x9F4F +0xF0EE 0x97F2 +0xF0EF 0x7ADF +0xF0F0 0x97F6 +0xF0F1 0x97F5 +0xF0F2 0x980F +0xF0F3 0x980C +0xF0F4 0x9838 +0xF0F5 0x9824 +0xF0F6 0x9821 +0xF0F7 0x9837 +0xF0F8 0x983D +0xF0F9 0x9846 +0xF0FA 0x984F +0xF0FB 0x984B +0xF0FC 0x986B +0xF0FD 0x986F +0xF0FE 0x9870 +0xF1A1 0x9871 +0xF1A2 0x9874 +0xF1A3 0x9873 +0xF1A4 0x98AA +0xF1A5 0x98AF +0xF1A6 0x98B1 +0xF1A7 0x98B6 +0xF1A8 0x98C4 +0xF1A9 0x98C3 +0xF1AA 0x98C6 +0xF1AB 0x98E9 +0xF1AC 0x98EB +0xF1AD 0x9903 +0xF1AE 0x9909 +0xF1AF 0x9912 +0xF1B0 0x9914 +0xF1B1 0x9918 +0xF1B2 0x9921 +0xF1B3 0x991D +0xF1B4 0x991E +0xF1B5 0x9924 +0xF1B6 0x9920 +0xF1B7 0x992C +0xF1B8 0x992E +0xF1B9 0x993D +0xF1BA 0x993E +0xF1BB 0x9942 +0xF1BC 0x9949 +0xF1BD 0x9945 +0xF1BE 0x9950 +0xF1BF 0x994B +0xF1C0 0x9951 +0xF1C1 0x9952 +0xF1C2 0x994C +0xF1C3 0x9955 +0xF1C4 0x9997 +0xF1C5 0x9998 +0xF1C6 0x99A5 +0xF1C7 0x99AD +0xF1C8 0x99AE +0xF1C9 0x99BC +0xF1CA 0x99DF +0xF1CB 0x99DB +0xF1CC 0x99DD +0xF1CD 0x99D8 +0xF1CE 0x99D1 +0xF1CF 0x99ED +0xF1D0 0x99EE +0xF1D1 0x99F1 +0xF1D2 0x99F2 +0xF1D3 0x99FB +0xF1D4 0x99F8 +0xF1D5 0x9A01 +0xF1D6 0x9A0F +0xF1D7 0x9A05 +0xF1D8 0x99E2 +0xF1D9 0x9A19 +0xF1DA 0x9A2B +0xF1DB 0x9A37 +0xF1DC 0x9A45 +0xF1DD 0x9A42 +0xF1DE 0x9A40 +0xF1DF 0x9A43 +0xF1E0 0x9A3E +0xF1E1 0x9A55 +0xF1E2 0x9A4D +0xF1E3 0x9A5B +0xF1E4 0x9A57 +0xF1E5 0x9A5F +0xF1E6 0x9A62 +0xF1E7 0x9A65 +0xF1E8 0x9A64 +0xF1E9 0x9A69 +0xF1EA 0x9A6B +0xF1EB 0x9A6A +0xF1EC 0x9AAD +0xF1ED 0x9AB0 +0xF1EE 0x9ABC +0xF1EF 0x9AC0 +0xF1F0 0x9ACF +0xF1F1 0x9AD1 +0xF1F2 0x9AD3 +0xF1F3 0x9AD4 +0xF1F4 0x9ADE +0xF1F5 0x9ADF +0xF1F6 0x9AE2 +0xF1F7 0x9AE3 +0xF1F8 0x9AE6 +0xF1F9 0x9AEF +0xF1FA 0x9AEB +0xF1FB 0x9AEE +0xF1FC 0x9AF4 +0xF1FD 0x9AF1 +0xF1FE 0x9AF7 +0xF2A1 0x9AFB +0xF2A2 0x9B06 +0xF2A3 0x9B18 +0xF2A4 0x9B1A +0xF2A5 0x9B1F +0xF2A6 0x9B22 +0xF2A7 0x9B23 +0xF2A8 0x9B25 +0xF2A9 0x9B27 +0xF2AA 0x9B28 +0xF2AB 0x9B29 +0xF2AC 0x9B2A +0xF2AD 0x9B2E +0xF2AE 0x9B2F +0xF2AF 0x9B32 +0xF2B0 0x9B44 +0xF2B1 0x9B43 +0xF2B2 0x9B4F +0xF2B3 0x9B4D +0xF2B4 0x9B4E +0xF2B5 0x9B51 +0xF2B6 0x9B58 +0xF2B7 0x9B74 +0xF2B8 0x9B93 +0xF2B9 0x9B83 +0xF2BA 0x9B91 +0xF2BB 0x9B96 +0xF2BC 0x9B97 +0xF2BD 0x9B9F +0xF2BE 0x9BA0 +0xF2BF 0x9BA8 +0xF2C0 0x9BB4 +0xF2C1 0x9BC0 +0xF2C2 0x9BCA +0xF2C3 0x9BB9 +0xF2C4 0x9BC6 +0xF2C5 0x9BCF +0xF2C6 0x9BD1 +0xF2C7 0x9BD2 +0xF2C8 0x9BE3 +0xF2C9 0x9BE2 +0xF2CA 0x9BE4 +0xF2CB 0x9BD4 +0xF2CC 0x9BE1 +0xF2CD 0x9C3A +0xF2CE 0x9BF2 +0xF2CF 0x9BF1 +0xF2D0 0x9BF0 +0xF2D1 0x9C15 +0xF2D2 0x9C14 +0xF2D3 0x9C09 +0xF2D4 0x9C13 +0xF2D5 0x9C0C +0xF2D6 0x9C06 +0xF2D7 0x9C08 +0xF2D8 0x9C12 +0xF2D9 0x9C0A +0xF2DA 0x9C04 +0xF2DB 0x9C2E +0xF2DC 0x9C1B +0xF2DD 0x9C25 +0xF2DE 0x9C24 +0xF2DF 0x9C21 +0xF2E0 0x9C30 +0xF2E1 0x9C47 +0xF2E2 0x9C32 +0xF2E3 0x9C46 +0xF2E4 0x9C3E +0xF2E5 0x9C5A +0xF2E6 0x9C60 +0xF2E7 0x9C67 +0xF2E8 0x9C76 +0xF2E9 0x9C78 +0xF2EA 0x9CE7 +0xF2EB 0x9CEC +0xF2EC 0x9CF0 +0xF2ED 0x9D09 +0xF2EE 0x9D08 +0xF2EF 0x9CEB +0xF2F0 0x9D03 +0xF2F1 0x9D06 +0xF2F2 0x9D2A +0xF2F3 0x9D26 +0xF2F4 0x9DAF +0xF2F5 0x9D23 +0xF2F6 0x9D1F +0xF2F7 0x9D44 +0xF2F8 0x9D15 +0xF2F9 0x9D12 +0xF2FA 0x9D41 +0xF2FB 0x9D3F +0xF2FC 0x9D3E +0xF2FD 0x9D46 +0xF2FE 0x9D48 +0xF3A1 0x9D5D +0xF3A2 0x9D5E +0xF3A3 0x9D64 +0xF3A4 0x9D51 +0xF3A5 0x9D50 +0xF3A6 0x9D59 +0xF3A7 0x9D72 +0xF3A8 0x9D89 +0xF3A9 0x9D87 +0xF3AA 0x9DAB +0xF3AB 0x9D6F +0xF3AC 0x9D7A +0xF3AD 0x9D9A +0xF3AE 0x9DA4 +0xF3AF 0x9DA9 +0xF3B0 0x9DB2 +0xF3B1 0x9DC4 +0xF3B2 0x9DC1 +0xF3B3 0x9DBB +0xF3B4 0x9DB8 +0xF3B5 0x9DBA +0xF3B6 0x9DC6 +0xF3B7 0x9DCF +0xF3B8 0x9DC2 +0xF3B9 0x9DD9 +0xF3BA 0x9DD3 +0xF3BB 0x9DF8 +0xF3BC 0x9DE6 +0xF3BD 0x9DED +0xF3BE 0x9DEF +0xF3BF 0x9DFD +0xF3C0 0x9E1A +0xF3C1 0x9E1B +0xF3C2 0x9E1E +0xF3C3 0x9E75 +0xF3C4 0x9E79 +0xF3C5 0x9E7D +0xF3C6 0x9E81 +0xF3C7 0x9E88 +0xF3C8 0x9E8B +0xF3C9 0x9E8C +0xF3CA 0x9E92 +0xF3CB 0x9E95 +0xF3CC 0x9E91 +0xF3CD 0x9E9D +0xF3CE 0x9EA5 +0xF3CF 0x9EA9 +0xF3D0 0x9EB8 +0xF3D1 0x9EAA +0xF3D2 0x9EAD +0xF3D3 0x9761 +0xF3D4 0x9ECC +0xF3D5 0x9ECE +0xF3D6 0x9ECF +0xF3D7 0x9ED0 +0xF3D8 0x9ED4 +0xF3D9 0x9EDC +0xF3DA 0x9EDE +0xF3DB 0x9EDD +0xF3DC 0x9EE0 +0xF3DD 0x9EE5 +0xF3DE 0x9EE8 +0xF3DF 0x9EEF +0xF3E0 0x9EF4 +0xF3E1 0x9EF6 +0xF3E2 0x9EF7 +0xF3E3 0x9EF9 +0xF3E4 0x9EFB +0xF3E5 0x9EFC +0xF3E6 0x9EFD +0xF3E7 0x9F07 +0xF3E8 0x9F08 +0xF3E9 0x76B7 +0xF3EA 0x9F15 +0xF3EB 0x9F21 +0xF3EC 0x9F2C +0xF3ED 0x9F3E +0xF3EE 0x9F4A +0xF3EF 0x9F52 +0xF3F0 0x9F54 +0xF3F1 0x9F63 +0xF3F2 0x9F5F +0xF3F3 0x9F60 +0xF3F4 0x9F61 +0xF3F5 0x9F66 +0xF3F6 0x9F67 +0xF3F7 0x9F6C +0xF3F8 0x9F6A +0xF3F9 0x9F77 +0xF3FA 0x9F72 +0xF3FB 0x9F76 +0xF3FC 0x9F95 +0xF3FD 0x9F9C +0xF3FE 0x9FA0 +0xF4A1 0x582F +0xF4A2 0x69C7 +0xF4A3 0x9059 +0xF4A4 0x7464 +0xF4A5 0x51DC +0xF4A6 0x7199 diff --git a/3rdPartner/libiconv/tests/EUC-CN.TXT b/3rdPartner/libiconv/tests/EUC-CN.TXT new file mode 100644 index 0000000..5fea528 --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-CN.TXT @@ -0,0 +1,7573 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x30FB +0xA1A5 0x02C9 +0xA1A6 0x02C7 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x3005 +0xA1AA 0x2015 +0xA1AB 0xFF5E +0xA1AC 0x2016 +0xA1AD 0x2026 +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3016 +0xA1BD 0x3017 +0xA1BE 0x3010 +0xA1BF 0x3011 +0xA1C0 0x00B1 +0xA1C1 0x00D7 +0xA1C2 0x00F7 +0xA1C3 0x2236 +0xA1C4 0x2227 +0xA1C5 0x2228 +0xA1C6 0x2211 +0xA1C7 0x220F +0xA1C8 0x222A +0xA1C9 0x2229 +0xA1CA 0x2208 +0xA1CB 0x2237 +0xA1CC 0x221A +0xA1CD 0x22A5 +0xA1CE 0x2225 +0xA1CF 0x2220 +0xA1D0 0x2312 +0xA1D1 0x2299 +0xA1D2 0x222B +0xA1D3 0x222E +0xA1D4 0x2261 +0xA1D5 0x224C +0xA1D6 0x2248 +0xA1D7 0x223D +0xA1D8 0x221D +0xA1D9 0x2260 +0xA1DA 0x226E +0xA1DB 0x226F +0xA1DC 0x2264 +0xA1DD 0x2265 +0xA1DE 0x221E +0xA1DF 0x2235 +0xA1E0 0x2234 +0xA1E1 0x2642 +0xA1E2 0x2640 +0xA1E3 0x00B0 +0xA1E4 0x2032 +0xA1E5 0x2033 +0xA1E6 0x2103 +0xA1E7 0xFF04 +0xA1E8 0x00A4 +0xA1E9 0xFFE0 +0xA1EA 0xFFE1 +0xA1EB 0x2030 +0xA1EC 0x00A7 +0xA1ED 0x2116 +0xA1EE 0x2606 +0xA1EF 0x2605 +0xA1F0 0x25CB +0xA1F1 0x25CF +0xA1F2 0x25CE +0xA1F3 0x25C7 +0xA1F4 0x25C6 +0xA1F5 0x25A1 +0xA1F6 0x25A0 +0xA1F7 0x25B3 +0xA1F8 0x25B2 +0xA1F9 0x203B +0xA1FA 0x2192 +0xA1FB 0x2190 +0xA1FC 0x2191 +0xA1FD 0x2193 +0xA1FE 0x3013 +0xA2B1 0x2488 +0xA2B2 0x2489 +0xA2B3 0x248A +0xA2B4 0x248B +0xA2B5 0x248C +0xA2B6 0x248D +0xA2B7 0x248E +0xA2B8 0x248F +0xA2B9 0x2490 +0xA2BA 0x2491 +0xA2BB 0x2492 +0xA2BC 0x2493 +0xA2BD 0x2494 +0xA2BE 0x2495 +0xA2BF 0x2496 +0xA2C0 0x2497 +0xA2C1 0x2498 +0xA2C2 0x2499 +0xA2C3 0x249A +0xA2C4 0x249B +0xA2C5 0x2474 +0xA2C6 0x2475 +0xA2C7 0x2476 +0xA2C8 0x2477 +0xA2C9 0x2478 +0xA2CA 0x2479 +0xA2CB 0x247A +0xA2CC 0x247B +0xA2CD 0x247C +0xA2CE 0x247D +0xA2CF 0x247E +0xA2D0 0x247F +0xA2D1 0x2480 +0xA2D2 0x2481 +0xA2D3 0x2482 +0xA2D4 0x2483 +0xA2D5 0x2484 +0xA2D6 0x2485 +0xA2D7 0x2486 +0xA2D8 0x2487 +0xA2D9 0x2460 +0xA2DA 0x2461 +0xA2DB 0x2462 +0xA2DC 0x2463 +0xA2DD 0x2464 +0xA2DE 0x2465 +0xA2DF 0x2466 +0xA2E0 0x2467 +0xA2E1 0x2468 +0xA2E2 0x2469 +0xA2E5 0x3220 +0xA2E6 0x3221 +0xA2E7 0x3222 +0xA2E8 0x3223 +0xA2E9 0x3224 +0xA2EA 0x3225 +0xA2EB 0x3226 +0xA2EC 0x3227 +0xA2ED 0x3228 +0xA2EE 0x3229 +0xA2F1 0x2160 +0xA2F2 0x2161 +0xA2F3 0x2162 +0xA2F4 0x2163 +0xA2F5 0x2164 +0xA2F6 0x2165 +0xA2F7 0x2166 +0xA2F8 0x2167 +0xA2F9 0x2168 +0xA2FA 0x2169 +0xA2FB 0x216A +0xA2FC 0x216B +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFFE5 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFF3C +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA8A1 0x0101 +0xA8A2 0x00E1 +0xA8A3 0x01CE +0xA8A4 0x00E0 +0xA8A5 0x0113 +0xA8A6 0x00E9 +0xA8A7 0x011B +0xA8A8 0x00E8 +0xA8A9 0x012B +0xA8AA 0x00ED +0xA8AB 0x01D0 +0xA8AC 0x00EC +0xA8AD 0x014D +0xA8AE 0x00F3 +0xA8AF 0x01D2 +0xA8B0 0x00F2 +0xA8B1 0x016B +0xA8B2 0x00FA +0xA8B3 0x01D4 +0xA8B4 0x00F9 +0xA8B5 0x01D6 +0xA8B6 0x01D8 +0xA8B7 0x01DA +0xA8B8 0x01DC +0xA8B9 0x00FC +0xA8BA 0x00EA +0xA8C5 0x3105 +0xA8C6 0x3106 +0xA8C7 0x3107 +0xA8C8 0x3108 +0xA8C9 0x3109 +0xA8CA 0x310A +0xA8CB 0x310B +0xA8CC 0x310C +0xA8CD 0x310D +0xA8CE 0x310E +0xA8CF 0x310F +0xA8D0 0x3110 +0xA8D1 0x3111 +0xA8D2 0x3112 +0xA8D3 0x3113 +0xA8D4 0x3114 +0xA8D5 0x3115 +0xA8D6 0x3116 +0xA8D7 0x3117 +0xA8D8 0x3118 +0xA8D9 0x3119 +0xA8DA 0x311A +0xA8DB 0x311B +0xA8DC 0x311C +0xA8DD 0x311D +0xA8DE 0x311E +0xA8DF 0x311F +0xA8E0 0x3120 +0xA8E1 0x3121 +0xA8E2 0x3122 +0xA8E3 0x3123 +0xA8E4 0x3124 +0xA8E5 0x3125 +0xA8E6 0x3126 +0xA8E7 0x3127 +0xA8E8 0x3128 +0xA8E9 0x3129 +0xA9A4 0x2500 +0xA9A5 0x2501 +0xA9A6 0x2502 +0xA9A7 0x2503 +0xA9A8 0x2504 +0xA9A9 0x2505 +0xA9AA 0x2506 +0xA9AB 0x2507 +0xA9AC 0x2508 +0xA9AD 0x2509 +0xA9AE 0x250A +0xA9AF 0x250B +0xA9B0 0x250C +0xA9B1 0x250D +0xA9B2 0x250E +0xA9B3 0x250F +0xA9B4 0x2510 +0xA9B5 0x2511 +0xA9B6 0x2512 +0xA9B7 0x2513 +0xA9B8 0x2514 +0xA9B9 0x2515 +0xA9BA 0x2516 +0xA9BB 0x2517 +0xA9BC 0x2518 +0xA9BD 0x2519 +0xA9BE 0x251A +0xA9BF 0x251B +0xA9C0 0x251C +0xA9C1 0x251D +0xA9C2 0x251E +0xA9C3 0x251F +0xA9C4 0x2520 +0xA9C5 0x2521 +0xA9C6 0x2522 +0xA9C7 0x2523 +0xA9C8 0x2524 +0xA9C9 0x2525 +0xA9CA 0x2526 +0xA9CB 0x2527 +0xA9CC 0x2528 +0xA9CD 0x2529 +0xA9CE 0x252A +0xA9CF 0x252B +0xA9D0 0x252C +0xA9D1 0x252D +0xA9D2 0x252E +0xA9D3 0x252F +0xA9D4 0x2530 +0xA9D5 0x2531 +0xA9D6 0x2532 +0xA9D7 0x2533 +0xA9D8 0x2534 +0xA9D9 0x2535 +0xA9DA 0x2536 +0xA9DB 0x2537 +0xA9DC 0x2538 +0xA9DD 0x2539 +0xA9DE 0x253A +0xA9DF 0x253B +0xA9E0 0x253C +0xA9E1 0x253D +0xA9E2 0x253E +0xA9E3 0x253F +0xA9E4 0x2540 +0xA9E5 0x2541 +0xA9E6 0x2542 +0xA9E7 0x2543 +0xA9E8 0x2544 +0xA9E9 0x2545 +0xA9EA 0x2546 +0xA9EB 0x2547 +0xA9EC 0x2548 +0xA9ED 0x2549 +0xA9EE 0x254A +0xA9EF 0x254B +0xB0A1 0x554A +0xB0A2 0x963F +0xB0A3 0x57C3 +0xB0A4 0x6328 +0xB0A5 0x54CE +0xB0A6 0x5509 +0xB0A7 0x54C0 +0xB0A8 0x7691 +0xB0A9 0x764C +0xB0AA 0x853C +0xB0AB 0x77EE +0xB0AC 0x827E +0xB0AD 0x788D +0xB0AE 0x7231 +0xB0AF 0x9698 +0xB0B0 0x978D +0xB0B1 0x6C28 +0xB0B2 0x5B89 +0xB0B3 0x4FFA +0xB0B4 0x6309 +0xB0B5 0x6697 +0xB0B6 0x5CB8 +0xB0B7 0x80FA +0xB0B8 0x6848 +0xB0B9 0x80AE +0xB0BA 0x6602 +0xB0BB 0x76CE +0xB0BC 0x51F9 +0xB0BD 0x6556 +0xB0BE 0x71AC +0xB0BF 0x7FF1 +0xB0C0 0x8884 +0xB0C1 0x50B2 +0xB0C2 0x5965 +0xB0C3 0x61CA +0xB0C4 0x6FB3 +0xB0C5 0x82AD +0xB0C6 0x634C +0xB0C7 0x6252 +0xB0C8 0x53ED +0xB0C9 0x5427 +0xB0CA 0x7B06 +0xB0CB 0x516B +0xB0CC 0x75A4 +0xB0CD 0x5DF4 +0xB0CE 0x62D4 +0xB0CF 0x8DCB +0xB0D0 0x9776 +0xB0D1 0x628A +0xB0D2 0x8019 +0xB0D3 0x575D +0xB0D4 0x9738 +0xB0D5 0x7F62 +0xB0D6 0x7238 +0xB0D7 0x767D +0xB0D8 0x67CF +0xB0D9 0x767E +0xB0DA 0x6446 +0xB0DB 0x4F70 +0xB0DC 0x8D25 +0xB0DD 0x62DC +0xB0DE 0x7A17 +0xB0DF 0x6591 +0xB0E0 0x73ED +0xB0E1 0x642C +0xB0E2 0x6273 +0xB0E3 0x822C +0xB0E4 0x9881 +0xB0E5 0x677F +0xB0E6 0x7248 +0xB0E7 0x626E +0xB0E8 0x62CC +0xB0E9 0x4F34 +0xB0EA 0x74E3 +0xB0EB 0x534A +0xB0EC 0x529E +0xB0ED 0x7ECA +0xB0EE 0x90A6 +0xB0EF 0x5E2E +0xB0F0 0x6886 +0xB0F1 0x699C +0xB0F2 0x8180 +0xB0F3 0x7ED1 +0xB0F4 0x68D2 +0xB0F5 0x78C5 +0xB0F6 0x868C +0xB0F7 0x9551 +0xB0F8 0x508D +0xB0F9 0x8C24 +0xB0FA 0x82DE +0xB0FB 0x80DE +0xB0FC 0x5305 +0xB0FD 0x8912 +0xB0FE 0x5265 +0xB1A1 0x8584 +0xB1A2 0x96F9 +0xB1A3 0x4FDD +0xB1A4 0x5821 +0xB1A5 0x9971 +0xB1A6 0x5B9D +0xB1A7 0x62B1 +0xB1A8 0x62A5 +0xB1A9 0x66B4 +0xB1AA 0x8C79 +0xB1AB 0x9C8D +0xB1AC 0x7206 +0xB1AD 0x676F +0xB1AE 0x7891 +0xB1AF 0x60B2 +0xB1B0 0x5351 +0xB1B1 0x5317 +0xB1B2 0x8F88 +0xB1B3 0x80CC +0xB1B4 0x8D1D +0xB1B5 0x94A1 +0xB1B6 0x500D +0xB1B7 0x72C8 +0xB1B8 0x5907 +0xB1B9 0x60EB +0xB1BA 0x7119 +0xB1BB 0x88AB +0xB1BC 0x5954 +0xB1BD 0x82EF +0xB1BE 0x672C +0xB1BF 0x7B28 +0xB1C0 0x5D29 +0xB1C1 0x7EF7 +0xB1C2 0x752D +0xB1C3 0x6CF5 +0xB1C4 0x8E66 +0xB1C5 0x8FF8 +0xB1C6 0x903C +0xB1C7 0x9F3B +0xB1C8 0x6BD4 +0xB1C9 0x9119 +0xB1CA 0x7B14 +0xB1CB 0x5F7C +0xB1CC 0x78A7 +0xB1CD 0x84D6 +0xB1CE 0x853D +0xB1CF 0x6BD5 +0xB1D0 0x6BD9 +0xB1D1 0x6BD6 +0xB1D2 0x5E01 +0xB1D3 0x5E87 +0xB1D4 0x75F9 +0xB1D5 0x95ED +0xB1D6 0x655D +0xB1D7 0x5F0A +0xB1D8 0x5FC5 +0xB1D9 0x8F9F +0xB1DA 0x58C1 +0xB1DB 0x81C2 +0xB1DC 0x907F +0xB1DD 0x965B +0xB1DE 0x97AD +0xB1DF 0x8FB9 +0xB1E0 0x7F16 +0xB1E1 0x8D2C +0xB1E2 0x6241 +0xB1E3 0x4FBF +0xB1E4 0x53D8 +0xB1E5 0x535E +0xB1E6 0x8FA8 +0xB1E7 0x8FA9 +0xB1E8 0x8FAB +0xB1E9 0x904D +0xB1EA 0x6807 +0xB1EB 0x5F6A +0xB1EC 0x8198 +0xB1ED 0x8868 +0xB1EE 0x9CD6 +0xB1EF 0x618B +0xB1F0 0x522B +0xB1F1 0x762A +0xB1F2 0x5F6C +0xB1F3 0x658C +0xB1F4 0x6FD2 +0xB1F5 0x6EE8 +0xB1F6 0x5BBE +0xB1F7 0x6448 +0xB1F8 0x5175 +0xB1F9 0x51B0 +0xB1FA 0x67C4 +0xB1FB 0x4E19 +0xB1FC 0x79C9 +0xB1FD 0x997C +0xB1FE 0x70B3 +0xB2A1 0x75C5 +0xB2A2 0x5E76 +0xB2A3 0x73BB +0xB2A4 0x83E0 +0xB2A5 0x64AD +0xB2A6 0x62E8 +0xB2A7 0x94B5 +0xB2A8 0x6CE2 +0xB2A9 0x535A +0xB2AA 0x52C3 +0xB2AB 0x640F +0xB2AC 0x94C2 +0xB2AD 0x7B94 +0xB2AE 0x4F2F +0xB2AF 0x5E1B +0xB2B0 0x8236 +0xB2B1 0x8116 +0xB2B2 0x818A +0xB2B3 0x6E24 +0xB2B4 0x6CCA +0xB2B5 0x9A73 +0xB2B6 0x6355 +0xB2B7 0x535C +0xB2B8 0x54FA +0xB2B9 0x8865 +0xB2BA 0x57E0 +0xB2BB 0x4E0D +0xB2BC 0x5E03 +0xB2BD 0x6B65 +0xB2BE 0x7C3F +0xB2BF 0x90E8 +0xB2C0 0x6016 +0xB2C1 0x64E6 +0xB2C2 0x731C +0xB2C3 0x88C1 +0xB2C4 0x6750 +0xB2C5 0x624D +0xB2C6 0x8D22 +0xB2C7 0x776C +0xB2C8 0x8E29 +0xB2C9 0x91C7 +0xB2CA 0x5F69 +0xB2CB 0x83DC +0xB2CC 0x8521 +0xB2CD 0x9910 +0xB2CE 0x53C2 +0xB2CF 0x8695 +0xB2D0 0x6B8B +0xB2D1 0x60ED +0xB2D2 0x60E8 +0xB2D3 0x707F +0xB2D4 0x82CD +0xB2D5 0x8231 +0xB2D6 0x4ED3 +0xB2D7 0x6CA7 +0xB2D8 0x85CF +0xB2D9 0x64CD +0xB2DA 0x7CD9 +0xB2DB 0x69FD +0xB2DC 0x66F9 +0xB2DD 0x8349 +0xB2DE 0x5395 +0xB2DF 0x7B56 +0xB2E0 0x4FA7 +0xB2E1 0x518C +0xB2E2 0x6D4B +0xB2E3 0x5C42 +0xB2E4 0x8E6D +0xB2E5 0x63D2 +0xB2E6 0x53C9 +0xB2E7 0x832C +0xB2E8 0x8336 +0xB2E9 0x67E5 +0xB2EA 0x78B4 +0xB2EB 0x643D +0xB2EC 0x5BDF +0xB2ED 0x5C94 +0xB2EE 0x5DEE +0xB2EF 0x8BE7 +0xB2F0 0x62C6 +0xB2F1 0x67F4 +0xB2F2 0x8C7A +0xB2F3 0x6400 +0xB2F4 0x63BA +0xB2F5 0x8749 +0xB2F6 0x998B +0xB2F7 0x8C17 +0xB2F8 0x7F20 +0xB2F9 0x94F2 +0xB2FA 0x4EA7 +0xB2FB 0x9610 +0xB2FC 0x98A4 +0xB2FD 0x660C +0xB2FE 0x7316 +0xB3A1 0x573A +0xB3A2 0x5C1D +0xB3A3 0x5E38 +0xB3A4 0x957F +0xB3A5 0x507F +0xB3A6 0x80A0 +0xB3A7 0x5382 +0xB3A8 0x655E +0xB3A9 0x7545 +0xB3AA 0x5531 +0xB3AB 0x5021 +0xB3AC 0x8D85 +0xB3AD 0x6284 +0xB3AE 0x949E +0xB3AF 0x671D +0xB3B0 0x5632 +0xB3B1 0x6F6E +0xB3B2 0x5DE2 +0xB3B3 0x5435 +0xB3B4 0x7092 +0xB3B5 0x8F66 +0xB3B6 0x626F +0xB3B7 0x64A4 +0xB3B8 0x63A3 +0xB3B9 0x5F7B +0xB3BA 0x6F88 +0xB3BB 0x90F4 +0xB3BC 0x81E3 +0xB3BD 0x8FB0 +0xB3BE 0x5C18 +0xB3BF 0x6668 +0xB3C0 0x5FF1 +0xB3C1 0x6C89 +0xB3C2 0x9648 +0xB3C3 0x8D81 +0xB3C4 0x886C +0xB3C5 0x6491 +0xB3C6 0x79F0 +0xB3C7 0x57CE +0xB3C8 0x6A59 +0xB3C9 0x6210 +0xB3CA 0x5448 +0xB3CB 0x4E58 +0xB3CC 0x7A0B +0xB3CD 0x60E9 +0xB3CE 0x6F84 +0xB3CF 0x8BDA +0xB3D0 0x627F +0xB3D1 0x901E +0xB3D2 0x9A8B +0xB3D3 0x79E4 +0xB3D4 0x5403 +0xB3D5 0x75F4 +0xB3D6 0x6301 +0xB3D7 0x5319 +0xB3D8 0x6C60 +0xB3D9 0x8FDF +0xB3DA 0x5F1B +0xB3DB 0x9A70 +0xB3DC 0x803B +0xB3DD 0x9F7F +0xB3DE 0x4F88 +0xB3DF 0x5C3A +0xB3E0 0x8D64 +0xB3E1 0x7FC5 +0xB3E2 0x65A5 +0xB3E3 0x70BD +0xB3E4 0x5145 +0xB3E5 0x51B2 +0xB3E6 0x866B +0xB3E7 0x5D07 +0xB3E8 0x5BA0 +0xB3E9 0x62BD +0xB3EA 0x916C +0xB3EB 0x7574 +0xB3EC 0x8E0C +0xB3ED 0x7A20 +0xB3EE 0x6101 +0xB3EF 0x7B79 +0xB3F0 0x4EC7 +0xB3F1 0x7EF8 +0xB3F2 0x7785 +0xB3F3 0x4E11 +0xB3F4 0x81ED +0xB3F5 0x521D +0xB3F6 0x51FA +0xB3F7 0x6A71 +0xB3F8 0x53A8 +0xB3F9 0x8E87 +0xB3FA 0x9504 +0xB3FB 0x96CF +0xB3FC 0x6EC1 +0xB3FD 0x9664 +0xB3FE 0x695A +0xB4A1 0x7840 +0xB4A2 0x50A8 +0xB4A3 0x77D7 +0xB4A4 0x6410 +0xB4A5 0x89E6 +0xB4A6 0x5904 +0xB4A7 0x63E3 +0xB4A8 0x5DDD +0xB4A9 0x7A7F +0xB4AA 0x693D +0xB4AB 0x4F20 +0xB4AC 0x8239 +0xB4AD 0x5598 +0xB4AE 0x4E32 +0xB4AF 0x75AE +0xB4B0 0x7A97 +0xB4B1 0x5E62 +0xB4B2 0x5E8A +0xB4B3 0x95EF +0xB4B4 0x521B +0xB4B5 0x5439 +0xB4B6 0x708A +0xB4B7 0x6376 +0xB4B8 0x9524 +0xB4B9 0x5782 +0xB4BA 0x6625 +0xB4BB 0x693F +0xB4BC 0x9187 +0xB4BD 0x5507 +0xB4BE 0x6DF3 +0xB4BF 0x7EAF +0xB4C0 0x8822 +0xB4C1 0x6233 +0xB4C2 0x7EF0 +0xB4C3 0x75B5 +0xB4C4 0x8328 +0xB4C5 0x78C1 +0xB4C6 0x96CC +0xB4C7 0x8F9E +0xB4C8 0x6148 +0xB4C9 0x74F7 +0xB4CA 0x8BCD +0xB4CB 0x6B64 +0xB4CC 0x523A +0xB4CD 0x8D50 +0xB4CE 0x6B21 +0xB4CF 0x806A +0xB4D0 0x8471 +0xB4D1 0x56F1 +0xB4D2 0x5306 +0xB4D3 0x4ECE +0xB4D4 0x4E1B +0xB4D5 0x51D1 +0xB4D6 0x7C97 +0xB4D7 0x918B +0xB4D8 0x7C07 +0xB4D9 0x4FC3 +0xB4DA 0x8E7F +0xB4DB 0x7BE1 +0xB4DC 0x7A9C +0xB4DD 0x6467 +0xB4DE 0x5D14 +0xB4DF 0x50AC +0xB4E0 0x8106 +0xB4E1 0x7601 +0xB4E2 0x7CB9 +0xB4E3 0x6DEC +0xB4E4 0x7FE0 +0xB4E5 0x6751 +0xB4E6 0x5B58 +0xB4E7 0x5BF8 +0xB4E8 0x78CB +0xB4E9 0x64AE +0xB4EA 0x6413 +0xB4EB 0x63AA +0xB4EC 0x632B +0xB4ED 0x9519 +0xB4EE 0x642D +0xB4EF 0x8FBE +0xB4F0 0x7B54 +0xB4F1 0x7629 +0xB4F2 0x6253 +0xB4F3 0x5927 +0xB4F4 0x5446 +0xB4F5 0x6B79 +0xB4F6 0x50A3 +0xB4F7 0x6234 +0xB4F8 0x5E26 +0xB4F9 0x6B86 +0xB4FA 0x4EE3 +0xB4FB 0x8D37 +0xB4FC 0x888B +0xB4FD 0x5F85 +0xB4FE 0x902E +0xB5A1 0x6020 +0xB5A2 0x803D +0xB5A3 0x62C5 +0xB5A4 0x4E39 +0xB5A5 0x5355 +0xB5A6 0x90F8 +0xB5A7 0x63B8 +0xB5A8 0x80C6 +0xB5A9 0x65E6 +0xB5AA 0x6C2E +0xB5AB 0x4F46 +0xB5AC 0x60EE +0xB5AD 0x6DE1 +0xB5AE 0x8BDE +0xB5AF 0x5F39 +0xB5B0 0x86CB +0xB5B1 0x5F53 +0xB5B2 0x6321 +0xB5B3 0x515A +0xB5B4 0x8361 +0xB5B5 0x6863 +0xB5B6 0x5200 +0xB5B7 0x6363 +0xB5B8 0x8E48 +0xB5B9 0x5012 +0xB5BA 0x5C9B +0xB5BB 0x7977 +0xB5BC 0x5BFC +0xB5BD 0x5230 +0xB5BE 0x7A3B +0xB5BF 0x60BC +0xB5C0 0x9053 +0xB5C1 0x76D7 +0xB5C2 0x5FB7 +0xB5C3 0x5F97 +0xB5C4 0x7684 +0xB5C5 0x8E6C +0xB5C6 0x706F +0xB5C7 0x767B +0xB5C8 0x7B49 +0xB5C9 0x77AA +0xB5CA 0x51F3 +0xB5CB 0x9093 +0xB5CC 0x5824 +0xB5CD 0x4F4E +0xB5CE 0x6EF4 +0xB5CF 0x8FEA +0xB5D0 0x654C +0xB5D1 0x7B1B +0xB5D2 0x72C4 +0xB5D3 0x6DA4 +0xB5D4 0x7FDF +0xB5D5 0x5AE1 +0xB5D6 0x62B5 +0xB5D7 0x5E95 +0xB5D8 0x5730 +0xB5D9 0x8482 +0xB5DA 0x7B2C +0xB5DB 0x5E1D +0xB5DC 0x5F1F +0xB5DD 0x9012 +0xB5DE 0x7F14 +0xB5DF 0x98A0 +0xB5E0 0x6382 +0xB5E1 0x6EC7 +0xB5E2 0x7898 +0xB5E3 0x70B9 +0xB5E4 0x5178 +0xB5E5 0x975B +0xB5E6 0x57AB +0xB5E7 0x7535 +0xB5E8 0x4F43 +0xB5E9 0x7538 +0xB5EA 0x5E97 +0xB5EB 0x60E6 +0xB5EC 0x5960 +0xB5ED 0x6DC0 +0xB5EE 0x6BBF +0xB5EF 0x7889 +0xB5F0 0x53FC +0xB5F1 0x96D5 +0xB5F2 0x51CB +0xB5F3 0x5201 +0xB5F4 0x6389 +0xB5F5 0x540A +0xB5F6 0x9493 +0xB5F7 0x8C03 +0xB5F8 0x8DCC +0xB5F9 0x7239 +0xB5FA 0x789F +0xB5FB 0x8776 +0xB5FC 0x8FED +0xB5FD 0x8C0D +0xB5FE 0x53E0 +0xB6A1 0x4E01 +0xB6A2 0x76EF +0xB6A3 0x53EE +0xB6A4 0x9489 +0xB6A5 0x9876 +0xB6A6 0x9F0E +0xB6A7 0x952D +0xB6A8 0x5B9A +0xB6A9 0x8BA2 +0xB6AA 0x4E22 +0xB6AB 0x4E1C +0xB6AC 0x51AC +0xB6AD 0x8463 +0xB6AE 0x61C2 +0xB6AF 0x52A8 +0xB6B0 0x680B +0xB6B1 0x4F97 +0xB6B2 0x606B +0xB6B3 0x51BB +0xB6B4 0x6D1E +0xB6B5 0x515C +0xB6B6 0x6296 +0xB6B7 0x6597 +0xB6B8 0x9661 +0xB6B9 0x8C46 +0xB6BA 0x9017 +0xB6BB 0x75D8 +0xB6BC 0x90FD +0xB6BD 0x7763 +0xB6BE 0x6BD2 +0xB6BF 0x728A +0xB6C0 0x72EC +0xB6C1 0x8BFB +0xB6C2 0x5835 +0xB6C3 0x7779 +0xB6C4 0x8D4C +0xB6C5 0x675C +0xB6C6 0x9540 +0xB6C7 0x809A +0xB6C8 0x5EA6 +0xB6C9 0x6E21 +0xB6CA 0x5992 +0xB6CB 0x7AEF +0xB6CC 0x77ED +0xB6CD 0x953B +0xB6CE 0x6BB5 +0xB6CF 0x65AD +0xB6D0 0x7F0E +0xB6D1 0x5806 +0xB6D2 0x5151 +0xB6D3 0x961F +0xB6D4 0x5BF9 +0xB6D5 0x58A9 +0xB6D6 0x5428 +0xB6D7 0x8E72 +0xB6D8 0x6566 +0xB6D9 0x987F +0xB6DA 0x56E4 +0xB6DB 0x949D +0xB6DC 0x76FE +0xB6DD 0x9041 +0xB6DE 0x6387 +0xB6DF 0x54C6 +0xB6E0 0x591A +0xB6E1 0x593A +0xB6E2 0x579B +0xB6E3 0x8EB2 +0xB6E4 0x6735 +0xB6E5 0x8DFA +0xB6E6 0x8235 +0xB6E7 0x5241 +0xB6E8 0x60F0 +0xB6E9 0x5815 +0xB6EA 0x86FE +0xB6EB 0x5CE8 +0xB6EC 0x9E45 +0xB6ED 0x4FC4 +0xB6EE 0x989D +0xB6EF 0x8BB9 +0xB6F0 0x5A25 +0xB6F1 0x6076 +0xB6F2 0x5384 +0xB6F3 0x627C +0xB6F4 0x904F +0xB6F5 0x9102 +0xB6F6 0x997F +0xB6F7 0x6069 +0xB6F8 0x800C +0xB6F9 0x513F +0xB6FA 0x8033 +0xB6FB 0x5C14 +0xB6FC 0x9975 +0xB6FD 0x6D31 +0xB6FE 0x4E8C +0xB7A1 0x8D30 +0xB7A2 0x53D1 +0xB7A3 0x7F5A +0xB7A4 0x7B4F +0xB7A5 0x4F10 +0xB7A6 0x4E4F +0xB7A7 0x9600 +0xB7A8 0x6CD5 +0xB7A9 0x73D0 +0xB7AA 0x85E9 +0xB7AB 0x5E06 +0xB7AC 0x756A +0xB7AD 0x7FFB +0xB7AE 0x6A0A +0xB7AF 0x77FE +0xB7B0 0x9492 +0xB7B1 0x7E41 +0xB7B2 0x51E1 +0xB7B3 0x70E6 +0xB7B4 0x53CD +0xB7B5 0x8FD4 +0xB7B6 0x8303 +0xB7B7 0x8D29 +0xB7B8 0x72AF +0xB7B9 0x996D +0xB7BA 0x6CDB +0xB7BB 0x574A +0xB7BC 0x82B3 +0xB7BD 0x65B9 +0xB7BE 0x80AA +0xB7BF 0x623F +0xB7C0 0x9632 +0xB7C1 0x59A8 +0xB7C2 0x4EFF +0xB7C3 0x8BBF +0xB7C4 0x7EBA +0xB7C5 0x653E +0xB7C6 0x83F2 +0xB7C7 0x975E +0xB7C8 0x5561 +0xB7C9 0x98DE +0xB7CA 0x80A5 +0xB7CB 0x532A +0xB7CC 0x8BFD +0xB7CD 0x5420 +0xB7CE 0x80BA +0xB7CF 0x5E9F +0xB7D0 0x6CB8 +0xB7D1 0x8D39 +0xB7D2 0x82AC +0xB7D3 0x915A +0xB7D4 0x5429 +0xB7D5 0x6C1B +0xB7D6 0x5206 +0xB7D7 0x7EB7 +0xB7D8 0x575F +0xB7D9 0x711A +0xB7DA 0x6C7E +0xB7DB 0x7C89 +0xB7DC 0x594B +0xB7DD 0x4EFD +0xB7DE 0x5FFF +0xB7DF 0x6124 +0xB7E0 0x7CAA +0xB7E1 0x4E30 +0xB7E2 0x5C01 +0xB7E3 0x67AB +0xB7E4 0x8702 +0xB7E5 0x5CF0 +0xB7E6 0x950B +0xB7E7 0x98CE +0xB7E8 0x75AF +0xB7E9 0x70FD +0xB7EA 0x9022 +0xB7EB 0x51AF +0xB7EC 0x7F1D +0xB7ED 0x8BBD +0xB7EE 0x5949 +0xB7EF 0x51E4 +0xB7F0 0x4F5B +0xB7F1 0x5426 +0xB7F2 0x592B +0xB7F3 0x6577 +0xB7F4 0x80A4 +0xB7F5 0x5B75 +0xB7F6 0x6276 +0xB7F7 0x62C2 +0xB7F8 0x8F90 +0xB7F9 0x5E45 +0xB7FA 0x6C1F +0xB7FB 0x7B26 +0xB7FC 0x4F0F +0xB7FD 0x4FD8 +0xB7FE 0x670D +0xB8A1 0x6D6E +0xB8A2 0x6DAA +0xB8A3 0x798F +0xB8A4 0x88B1 +0xB8A5 0x5F17 +0xB8A6 0x752B +0xB8A7 0x629A +0xB8A8 0x8F85 +0xB8A9 0x4FEF +0xB8AA 0x91DC +0xB8AB 0x65A7 +0xB8AC 0x812F +0xB8AD 0x8151 +0xB8AE 0x5E9C +0xB8AF 0x8150 +0xB8B0 0x8D74 +0xB8B1 0x526F +0xB8B2 0x8986 +0xB8B3 0x8D4B +0xB8B4 0x590D +0xB8B5 0x5085 +0xB8B6 0x4ED8 +0xB8B7 0x961C +0xB8B8 0x7236 +0xB8B9 0x8179 +0xB8BA 0x8D1F +0xB8BB 0x5BCC +0xB8BC 0x8BA3 +0xB8BD 0x9644 +0xB8BE 0x5987 +0xB8BF 0x7F1A +0xB8C0 0x5490 +0xB8C1 0x5676 +0xB8C2 0x560E +0xB8C3 0x8BE5 +0xB8C4 0x6539 +0xB8C5 0x6982 +0xB8C6 0x9499 +0xB8C7 0x76D6 +0xB8C8 0x6E89 +0xB8C9 0x5E72 +0xB8CA 0x7518 +0xB8CB 0x6746 +0xB8CC 0x67D1 +0xB8CD 0x7AFF +0xB8CE 0x809D +0xB8CF 0x8D76 +0xB8D0 0x611F +0xB8D1 0x79C6 +0xB8D2 0x6562 +0xB8D3 0x8D63 +0xB8D4 0x5188 +0xB8D5 0x521A +0xB8D6 0x94A2 +0xB8D7 0x7F38 +0xB8D8 0x809B +0xB8D9 0x7EB2 +0xB8DA 0x5C97 +0xB8DB 0x6E2F +0xB8DC 0x6760 +0xB8DD 0x7BD9 +0xB8DE 0x768B +0xB8DF 0x9AD8 +0xB8E0 0x818F +0xB8E1 0x7F94 +0xB8E2 0x7CD5 +0xB8E3 0x641E +0xB8E4 0x9550 +0xB8E5 0x7A3F +0xB8E6 0x544A +0xB8E7 0x54E5 +0xB8E8 0x6B4C +0xB8E9 0x6401 +0xB8EA 0x6208 +0xB8EB 0x9E3D +0xB8EC 0x80F3 +0xB8ED 0x7599 +0xB8EE 0x5272 +0xB8EF 0x9769 +0xB8F0 0x845B +0xB8F1 0x683C +0xB8F2 0x86E4 +0xB8F3 0x9601 +0xB8F4 0x9694 +0xB8F5 0x94EC +0xB8F6 0x4E2A +0xB8F7 0x5404 +0xB8F8 0x7ED9 +0xB8F9 0x6839 +0xB8FA 0x8DDF +0xB8FB 0x8015 +0xB8FC 0x66F4 +0xB8FD 0x5E9A +0xB8FE 0x7FB9 +0xB9A1 0x57C2 +0xB9A2 0x803F +0xB9A3 0x6897 +0xB9A4 0x5DE5 +0xB9A5 0x653B +0xB9A6 0x529F +0xB9A7 0x606D +0xB9A8 0x9F9A +0xB9A9 0x4F9B +0xB9AA 0x8EAC +0xB9AB 0x516C +0xB9AC 0x5BAB +0xB9AD 0x5F13 +0xB9AE 0x5DE9 +0xB9AF 0x6C5E +0xB9B0 0x62F1 +0xB9B1 0x8D21 +0xB9B2 0x5171 +0xB9B3 0x94A9 +0xB9B4 0x52FE +0xB9B5 0x6C9F +0xB9B6 0x82DF +0xB9B7 0x72D7 +0xB9B8 0x57A2 +0xB9B9 0x6784 +0xB9BA 0x8D2D +0xB9BB 0x591F +0xB9BC 0x8F9C +0xB9BD 0x83C7 +0xB9BE 0x5495 +0xB9BF 0x7B8D +0xB9C0 0x4F30 +0xB9C1 0x6CBD +0xB9C2 0x5B64 +0xB9C3 0x59D1 +0xB9C4 0x9F13 +0xB9C5 0x53E4 +0xB9C6 0x86CA +0xB9C7 0x9AA8 +0xB9C8 0x8C37 +0xB9C9 0x80A1 +0xB9CA 0x6545 +0xB9CB 0x987E +0xB9CC 0x56FA +0xB9CD 0x96C7 +0xB9CE 0x522E +0xB9CF 0x74DC +0xB9D0 0x5250 +0xB9D1 0x5BE1 +0xB9D2 0x6302 +0xB9D3 0x8902 +0xB9D4 0x4E56 +0xB9D5 0x62D0 +0xB9D6 0x602A +0xB9D7 0x68FA +0xB9D8 0x5173 +0xB9D9 0x5B98 +0xB9DA 0x51A0 +0xB9DB 0x89C2 +0xB9DC 0x7BA1 +0xB9DD 0x9986 +0xB9DE 0x7F50 +0xB9DF 0x60EF +0xB9E0 0x704C +0xB9E1 0x8D2F +0xB9E2 0x5149 +0xB9E3 0x5E7F +0xB9E4 0x901B +0xB9E5 0x7470 +0xB9E6 0x89C4 +0xB9E7 0x572D +0xB9E8 0x7845 +0xB9E9 0x5F52 +0xB9EA 0x9F9F +0xB9EB 0x95FA +0xB9EC 0x8F68 +0xB9ED 0x9B3C +0xB9EE 0x8BE1 +0xB9EF 0x7678 +0xB9F0 0x6842 +0xB9F1 0x67DC +0xB9F2 0x8DEA +0xB9F3 0x8D35 +0xB9F4 0x523D +0xB9F5 0x8F8A +0xB9F6 0x6EDA +0xB9F7 0x68CD +0xB9F8 0x9505 +0xB9F9 0x90ED +0xB9FA 0x56FD +0xB9FB 0x679C +0xB9FC 0x88F9 +0xB9FD 0x8FC7 +0xB9FE 0x54C8 +0xBAA1 0x9AB8 +0xBAA2 0x5B69 +0xBAA3 0x6D77 +0xBAA4 0x6C26 +0xBAA5 0x4EA5 +0xBAA6 0x5BB3 +0xBAA7 0x9A87 +0xBAA8 0x9163 +0xBAA9 0x61A8 +0xBAAA 0x90AF +0xBAAB 0x97E9 +0xBAAC 0x542B +0xBAAD 0x6DB5 +0xBAAE 0x5BD2 +0xBAAF 0x51FD +0xBAB0 0x558A +0xBAB1 0x7F55 +0xBAB2 0x7FF0 +0xBAB3 0x64BC +0xBAB4 0x634D +0xBAB5 0x65F1 +0xBAB6 0x61BE +0xBAB7 0x608D +0xBAB8 0x710A +0xBAB9 0x6C57 +0xBABA 0x6C49 +0xBABB 0x592F +0xBABC 0x676D +0xBABD 0x822A +0xBABE 0x58D5 +0xBABF 0x568E +0xBAC0 0x8C6A +0xBAC1 0x6BEB +0xBAC2 0x90DD +0xBAC3 0x597D +0xBAC4 0x8017 +0xBAC5 0x53F7 +0xBAC6 0x6D69 +0xBAC7 0x5475 +0xBAC8 0x559D +0xBAC9 0x8377 +0xBACA 0x83CF +0xBACB 0x6838 +0xBACC 0x79BE +0xBACD 0x548C +0xBACE 0x4F55 +0xBACF 0x5408 +0xBAD0 0x76D2 +0xBAD1 0x8C89 +0xBAD2 0x9602 +0xBAD3 0x6CB3 +0xBAD4 0x6DB8 +0xBAD5 0x8D6B +0xBAD6 0x8910 +0xBAD7 0x9E64 +0xBAD8 0x8D3A +0xBAD9 0x563F +0xBADA 0x9ED1 +0xBADB 0x75D5 +0xBADC 0x5F88 +0xBADD 0x72E0 +0xBADE 0x6068 +0xBADF 0x54FC +0xBAE0 0x4EA8 +0xBAE1 0x6A2A +0xBAE2 0x8861 +0xBAE3 0x6052 +0xBAE4 0x8F70 +0xBAE5 0x54C4 +0xBAE6 0x70D8 +0xBAE7 0x8679 +0xBAE8 0x9E3F +0xBAE9 0x6D2A +0xBAEA 0x5B8F +0xBAEB 0x5F18 +0xBAEC 0x7EA2 +0xBAED 0x5589 +0xBAEE 0x4FAF +0xBAEF 0x7334 +0xBAF0 0x543C +0xBAF1 0x539A +0xBAF2 0x5019 +0xBAF3 0x540E +0xBAF4 0x547C +0xBAF5 0x4E4E +0xBAF6 0x5FFD +0xBAF7 0x745A +0xBAF8 0x58F6 +0xBAF9 0x846B +0xBAFA 0x80E1 +0xBAFB 0x8774 +0xBAFC 0x72D0 +0xBAFD 0x7CCA +0xBAFE 0x6E56 +0xBBA1 0x5F27 +0xBBA2 0x864E +0xBBA3 0x552C +0xBBA4 0x62A4 +0xBBA5 0x4E92 +0xBBA6 0x6CAA +0xBBA7 0x6237 +0xBBA8 0x82B1 +0xBBA9 0x54D7 +0xBBAA 0x534E +0xBBAB 0x733E +0xBBAC 0x6ED1 +0xBBAD 0x753B +0xBBAE 0x5212 +0xBBAF 0x5316 +0xBBB0 0x8BDD +0xBBB1 0x69D0 +0xBBB2 0x5F8A +0xBBB3 0x6000 +0xBBB4 0x6DEE +0xBBB5 0x574F +0xBBB6 0x6B22 +0xBBB7 0x73AF +0xBBB8 0x6853 +0xBBB9 0x8FD8 +0xBBBA 0x7F13 +0xBBBB 0x6362 +0xBBBC 0x60A3 +0xBBBD 0x5524 +0xBBBE 0x75EA +0xBBBF 0x8C62 +0xBBC0 0x7115 +0xBBC1 0x6DA3 +0xBBC2 0x5BA6 +0xBBC3 0x5E7B +0xBBC4 0x8352 +0xBBC5 0x614C +0xBBC6 0x9EC4 +0xBBC7 0x78FA +0xBBC8 0x8757 +0xBBC9 0x7C27 +0xBBCA 0x7687 +0xBBCB 0x51F0 +0xBBCC 0x60F6 +0xBBCD 0x714C +0xBBCE 0x6643 +0xBBCF 0x5E4C +0xBBD0 0x604D +0xBBD1 0x8C0E +0xBBD2 0x7070 +0xBBD3 0x6325 +0xBBD4 0x8F89 +0xBBD5 0x5FBD +0xBBD6 0x6062 +0xBBD7 0x86D4 +0xBBD8 0x56DE +0xBBD9 0x6BC1 +0xBBDA 0x6094 +0xBBDB 0x6167 +0xBBDC 0x5349 +0xBBDD 0x60E0 +0xBBDE 0x6666 +0xBBDF 0x8D3F +0xBBE0 0x79FD +0xBBE1 0x4F1A +0xBBE2 0x70E9 +0xBBE3 0x6C47 +0xBBE4 0x8BB3 +0xBBE5 0x8BF2 +0xBBE6 0x7ED8 +0xBBE7 0x8364 +0xBBE8 0x660F +0xBBE9 0x5A5A +0xBBEA 0x9B42 +0xBBEB 0x6D51 +0xBBEC 0x6DF7 +0xBBED 0x8C41 +0xBBEE 0x6D3B +0xBBEF 0x4F19 +0xBBF0 0x706B +0xBBF1 0x83B7 +0xBBF2 0x6216 +0xBBF3 0x60D1 +0xBBF4 0x970D +0xBBF5 0x8D27 +0xBBF6 0x7978 +0xBBF7 0x51FB +0xBBF8 0x573E +0xBBF9 0x57FA +0xBBFA 0x673A +0xBBFB 0x7578 +0xBBFC 0x7A3D +0xBBFD 0x79EF +0xBBFE 0x7B95 +0xBCA1 0x808C +0xBCA2 0x9965 +0xBCA3 0x8FF9 +0xBCA4 0x6FC0 +0xBCA5 0x8BA5 +0xBCA6 0x9E21 +0xBCA7 0x59EC +0xBCA8 0x7EE9 +0xBCA9 0x7F09 +0xBCAA 0x5409 +0xBCAB 0x6781 +0xBCAC 0x68D8 +0xBCAD 0x8F91 +0xBCAE 0x7C4D +0xBCAF 0x96C6 +0xBCB0 0x53CA +0xBCB1 0x6025 +0xBCB2 0x75BE +0xBCB3 0x6C72 +0xBCB4 0x5373 +0xBCB5 0x5AC9 +0xBCB6 0x7EA7 +0xBCB7 0x6324 +0xBCB8 0x51E0 +0xBCB9 0x810A +0xBCBA 0x5DF1 +0xBCBB 0x84DF +0xBCBC 0x6280 +0xBCBD 0x5180 +0xBCBE 0x5B63 +0xBCBF 0x4F0E +0xBCC0 0x796D +0xBCC1 0x5242 +0xBCC2 0x60B8 +0xBCC3 0x6D4E +0xBCC4 0x5BC4 +0xBCC5 0x5BC2 +0xBCC6 0x8BA1 +0xBCC7 0x8BB0 +0xBCC8 0x65E2 +0xBCC9 0x5FCC +0xBCCA 0x9645 +0xBCCB 0x5993 +0xBCCC 0x7EE7 +0xBCCD 0x7EAA +0xBCCE 0x5609 +0xBCCF 0x67B7 +0xBCD0 0x5939 +0xBCD1 0x4F73 +0xBCD2 0x5BB6 +0xBCD3 0x52A0 +0xBCD4 0x835A +0xBCD5 0x988A +0xBCD6 0x8D3E +0xBCD7 0x7532 +0xBCD8 0x94BE +0xBCD9 0x5047 +0xBCDA 0x7A3C +0xBCDB 0x4EF7 +0xBCDC 0x67B6 +0xBCDD 0x9A7E +0xBCDE 0x5AC1 +0xBCDF 0x6B7C +0xBCE0 0x76D1 +0xBCE1 0x575A +0xBCE2 0x5C16 +0xBCE3 0x7B3A +0xBCE4 0x95F4 +0xBCE5 0x714E +0xBCE6 0x517C +0xBCE7 0x80A9 +0xBCE8 0x8270 +0xBCE9 0x5978 +0xBCEA 0x7F04 +0xBCEB 0x8327 +0xBCEC 0x68C0 +0xBCED 0x67EC +0xBCEE 0x78B1 +0xBCEF 0x7877 +0xBCF0 0x62E3 +0xBCF1 0x6361 +0xBCF2 0x7B80 +0xBCF3 0x4FED +0xBCF4 0x526A +0xBCF5 0x51CF +0xBCF6 0x8350 +0xBCF7 0x69DB +0xBCF8 0x9274 +0xBCF9 0x8DF5 +0xBCFA 0x8D31 +0xBCFB 0x89C1 +0xBCFC 0x952E +0xBCFD 0x7BAD +0xBCFE 0x4EF6 +0xBDA1 0x5065 +0xBDA2 0x8230 +0xBDA3 0x5251 +0xBDA4 0x996F +0xBDA5 0x6E10 +0xBDA6 0x6E85 +0xBDA7 0x6DA7 +0xBDA8 0x5EFA +0xBDA9 0x50F5 +0xBDAA 0x59DC +0xBDAB 0x5C06 +0xBDAC 0x6D46 +0xBDAD 0x6C5F +0xBDAE 0x7586 +0xBDAF 0x848B +0xBDB0 0x6868 +0xBDB1 0x5956 +0xBDB2 0x8BB2 +0xBDB3 0x5320 +0xBDB4 0x9171 +0xBDB5 0x964D +0xBDB6 0x8549 +0xBDB7 0x6912 +0xBDB8 0x7901 +0xBDB9 0x7126 +0xBDBA 0x80F6 +0xBDBB 0x4EA4 +0xBDBC 0x90CA +0xBDBD 0x6D47 +0xBDBE 0x9A84 +0xBDBF 0x5A07 +0xBDC0 0x56BC +0xBDC1 0x6405 +0xBDC2 0x94F0 +0xBDC3 0x77EB +0xBDC4 0x4FA5 +0xBDC5 0x811A +0xBDC6 0x72E1 +0xBDC7 0x89D2 +0xBDC8 0x997A +0xBDC9 0x7F34 +0xBDCA 0x7EDE +0xBDCB 0x527F +0xBDCC 0x6559 +0xBDCD 0x9175 +0xBDCE 0x8F7F +0xBDCF 0x8F83 +0xBDD0 0x53EB +0xBDD1 0x7A96 +0xBDD2 0x63ED +0xBDD3 0x63A5 +0xBDD4 0x7686 +0xBDD5 0x79F8 +0xBDD6 0x8857 +0xBDD7 0x9636 +0xBDD8 0x622A +0xBDD9 0x52AB +0xBDDA 0x8282 +0xBDDB 0x6854 +0xBDDC 0x6770 +0xBDDD 0x6377 +0xBDDE 0x776B +0xBDDF 0x7AED +0xBDE0 0x6D01 +0xBDE1 0x7ED3 +0xBDE2 0x89E3 +0xBDE3 0x59D0 +0xBDE4 0x6212 +0xBDE5 0x85C9 +0xBDE6 0x82A5 +0xBDE7 0x754C +0xBDE8 0x501F +0xBDE9 0x4ECB +0xBDEA 0x75A5 +0xBDEB 0x8BEB +0xBDEC 0x5C4A +0xBDED 0x5DFE +0xBDEE 0x7B4B +0xBDEF 0x65A4 +0xBDF0 0x91D1 +0xBDF1 0x4ECA +0xBDF2 0x6D25 +0xBDF3 0x895F +0xBDF4 0x7D27 +0xBDF5 0x9526 +0xBDF6 0x4EC5 +0xBDF7 0x8C28 +0xBDF8 0x8FDB +0xBDF9 0x9773 +0xBDFA 0x664B +0xBDFB 0x7981 +0xBDFC 0x8FD1 +0xBDFD 0x70EC +0xBDFE 0x6D78 +0xBEA1 0x5C3D +0xBEA2 0x52B2 +0xBEA3 0x8346 +0xBEA4 0x5162 +0xBEA5 0x830E +0xBEA6 0x775B +0xBEA7 0x6676 +0xBEA8 0x9CB8 +0xBEA9 0x4EAC +0xBEAA 0x60CA +0xBEAB 0x7CBE +0xBEAC 0x7CB3 +0xBEAD 0x7ECF +0xBEAE 0x4E95 +0xBEAF 0x8B66 +0xBEB0 0x666F +0xBEB1 0x9888 +0xBEB2 0x9759 +0xBEB3 0x5883 +0xBEB4 0x656C +0xBEB5 0x955C +0xBEB6 0x5F84 +0xBEB7 0x75C9 +0xBEB8 0x9756 +0xBEB9 0x7ADF +0xBEBA 0x7ADE +0xBEBB 0x51C0 +0xBEBC 0x70AF +0xBEBD 0x7A98 +0xBEBE 0x63EA +0xBEBF 0x7A76 +0xBEC0 0x7EA0 +0xBEC1 0x7396 +0xBEC2 0x97ED +0xBEC3 0x4E45 +0xBEC4 0x7078 +0xBEC5 0x4E5D +0xBEC6 0x9152 +0xBEC7 0x53A9 +0xBEC8 0x6551 +0xBEC9 0x65E7 +0xBECA 0x81FC +0xBECB 0x8205 +0xBECC 0x548E +0xBECD 0x5C31 +0xBECE 0x759A +0xBECF 0x97A0 +0xBED0 0x62D8 +0xBED1 0x72D9 +0xBED2 0x75BD +0xBED3 0x5C45 +0xBED4 0x9A79 +0xBED5 0x83CA +0xBED6 0x5C40 +0xBED7 0x5480 +0xBED8 0x77E9 +0xBED9 0x4E3E +0xBEDA 0x6CAE +0xBEDB 0x805A +0xBEDC 0x62D2 +0xBEDD 0x636E +0xBEDE 0x5DE8 +0xBEDF 0x5177 +0xBEE0 0x8DDD +0xBEE1 0x8E1E +0xBEE2 0x952F +0xBEE3 0x4FF1 +0xBEE4 0x53E5 +0xBEE5 0x60E7 +0xBEE6 0x70AC +0xBEE7 0x5267 +0xBEE8 0x6350 +0xBEE9 0x9E43 +0xBEEA 0x5A1F +0xBEEB 0x5026 +0xBEEC 0x7737 +0xBEED 0x5377 +0xBEEE 0x7EE2 +0xBEEF 0x6485 +0xBEF0 0x652B +0xBEF1 0x6289 +0xBEF2 0x6398 +0xBEF3 0x5014 +0xBEF4 0x7235 +0xBEF5 0x89C9 +0xBEF6 0x51B3 +0xBEF7 0x8BC0 +0xBEF8 0x7EDD +0xBEF9 0x5747 +0xBEFA 0x83CC +0xBEFB 0x94A7 +0xBEFC 0x519B +0xBEFD 0x541B +0xBEFE 0x5CFB +0xBFA1 0x4FCA +0xBFA2 0x7AE3 +0xBFA3 0x6D5A +0xBFA4 0x90E1 +0xBFA5 0x9A8F +0xBFA6 0x5580 +0xBFA7 0x5496 +0xBFA8 0x5361 +0xBFA9 0x54AF +0xBFAA 0x5F00 +0xBFAB 0x63E9 +0xBFAC 0x6977 +0xBFAD 0x51EF +0xBFAE 0x6168 +0xBFAF 0x520A +0xBFB0 0x582A +0xBFB1 0x52D8 +0xBFB2 0x574E +0xBFB3 0x780D +0xBFB4 0x770B +0xBFB5 0x5EB7 +0xBFB6 0x6177 +0xBFB7 0x7CE0 +0xBFB8 0x625B +0xBFB9 0x6297 +0xBFBA 0x4EA2 +0xBFBB 0x7095 +0xBFBC 0x8003 +0xBFBD 0x62F7 +0xBFBE 0x70E4 +0xBFBF 0x9760 +0xBFC0 0x5777 +0xBFC1 0x82DB +0xBFC2 0x67EF +0xBFC3 0x68F5 +0xBFC4 0x78D5 +0xBFC5 0x9897 +0xBFC6 0x79D1 +0xBFC7 0x58F3 +0xBFC8 0x54B3 +0xBFC9 0x53EF +0xBFCA 0x6E34 +0xBFCB 0x514B +0xBFCC 0x523B +0xBFCD 0x5BA2 +0xBFCE 0x8BFE +0xBFCF 0x80AF +0xBFD0 0x5543 +0xBFD1 0x57A6 +0xBFD2 0x6073 +0xBFD3 0x5751 +0xBFD4 0x542D +0xBFD5 0x7A7A +0xBFD6 0x6050 +0xBFD7 0x5B54 +0xBFD8 0x63A7 +0xBFD9 0x62A0 +0xBFDA 0x53E3 +0xBFDB 0x6263 +0xBFDC 0x5BC7 +0xBFDD 0x67AF +0xBFDE 0x54ED +0xBFDF 0x7A9F +0xBFE0 0x82E6 +0xBFE1 0x9177 +0xBFE2 0x5E93 +0xBFE3 0x88E4 +0xBFE4 0x5938 +0xBFE5 0x57AE +0xBFE6 0x630E +0xBFE7 0x8DE8 +0xBFE8 0x80EF +0xBFE9 0x5757 +0xBFEA 0x7B77 +0xBFEB 0x4FA9 +0xBFEC 0x5FEB +0xBFED 0x5BBD +0xBFEE 0x6B3E +0xBFEF 0x5321 +0xBFF0 0x7B50 +0xBFF1 0x72C2 +0xBFF2 0x6846 +0xBFF3 0x77FF +0xBFF4 0x7736 +0xBFF5 0x65F7 +0xBFF6 0x51B5 +0xBFF7 0x4E8F +0xBFF8 0x76D4 +0xBFF9 0x5CBF +0xBFFA 0x7AA5 +0xBFFB 0x8475 +0xBFFC 0x594E +0xBFFD 0x9B41 +0xBFFE 0x5080 +0xC0A1 0x9988 +0xC0A2 0x6127 +0xC0A3 0x6E83 +0xC0A4 0x5764 +0xC0A5 0x6606 +0xC0A6 0x6346 +0xC0A7 0x56F0 +0xC0A8 0x62EC +0xC0A9 0x6269 +0xC0AA 0x5ED3 +0xC0AB 0x9614 +0xC0AC 0x5783 +0xC0AD 0x62C9 +0xC0AE 0x5587 +0xC0AF 0x8721 +0xC0B0 0x814A +0xC0B1 0x8FA3 +0xC0B2 0x5566 +0xC0B3 0x83B1 +0xC0B4 0x6765 +0xC0B5 0x8D56 +0xC0B6 0x84DD +0xC0B7 0x5A6A +0xC0B8 0x680F +0xC0B9 0x62E6 +0xC0BA 0x7BEE +0xC0BB 0x9611 +0xC0BC 0x5170 +0xC0BD 0x6F9C +0xC0BE 0x8C30 +0xC0BF 0x63FD +0xC0C0 0x89C8 +0xC0C1 0x61D2 +0xC0C2 0x7F06 +0xC0C3 0x70C2 +0xC0C4 0x6EE5 +0xC0C5 0x7405 +0xC0C6 0x6994 +0xC0C7 0x72FC +0xC0C8 0x5ECA +0xC0C9 0x90CE +0xC0CA 0x6717 +0xC0CB 0x6D6A +0xC0CC 0x635E +0xC0CD 0x52B3 +0xC0CE 0x7262 +0xC0CF 0x8001 +0xC0D0 0x4F6C +0xC0D1 0x59E5 +0xC0D2 0x916A +0xC0D3 0x70D9 +0xC0D4 0x6D9D +0xC0D5 0x52D2 +0xC0D6 0x4E50 +0xC0D7 0x96F7 +0xC0D8 0x956D +0xC0D9 0x857E +0xC0DA 0x78CA +0xC0DB 0x7D2F +0xC0DC 0x5121 +0xC0DD 0x5792 +0xC0DE 0x64C2 +0xC0DF 0x808B +0xC0E0 0x7C7B +0xC0E1 0x6CEA +0xC0E2 0x68F1 +0xC0E3 0x695E +0xC0E4 0x51B7 +0xC0E5 0x5398 +0xC0E6 0x68A8 +0xC0E7 0x7281 +0xC0E8 0x9ECE +0xC0E9 0x7BF1 +0xC0EA 0x72F8 +0xC0EB 0x79BB +0xC0EC 0x6F13 +0xC0ED 0x7406 +0xC0EE 0x674E +0xC0EF 0x91CC +0xC0F0 0x9CA4 +0xC0F1 0x793C +0xC0F2 0x8389 +0xC0F3 0x8354 +0xC0F4 0x540F +0xC0F5 0x6817 +0xC0F6 0x4E3D +0xC0F7 0x5389 +0xC0F8 0x52B1 +0xC0F9 0x783E +0xC0FA 0x5386 +0xC0FB 0x5229 +0xC0FC 0x5088 +0xC0FD 0x4F8B +0xC0FE 0x4FD0 +0xC1A1 0x75E2 +0xC1A2 0x7ACB +0xC1A3 0x7C92 +0xC1A4 0x6CA5 +0xC1A5 0x96B6 +0xC1A6 0x529B +0xC1A7 0x7483 +0xC1A8 0x54E9 +0xC1A9 0x4FE9 +0xC1AA 0x8054 +0xC1AB 0x83B2 +0xC1AC 0x8FDE +0xC1AD 0x9570 +0xC1AE 0x5EC9 +0xC1AF 0x601C +0xC1B0 0x6D9F +0xC1B1 0x5E18 +0xC1B2 0x655B +0xC1B3 0x8138 +0xC1B4 0x94FE +0xC1B5 0x604B +0xC1B6 0x70BC +0xC1B7 0x7EC3 +0xC1B8 0x7CAE +0xC1B9 0x51C9 +0xC1BA 0x6881 +0xC1BB 0x7CB1 +0xC1BC 0x826F +0xC1BD 0x4E24 +0xC1BE 0x8F86 +0xC1BF 0x91CF +0xC1C0 0x667E +0xC1C1 0x4EAE +0xC1C2 0x8C05 +0xC1C3 0x64A9 +0xC1C4 0x804A +0xC1C5 0x50DA +0xC1C6 0x7597 +0xC1C7 0x71CE +0xC1C8 0x5BE5 +0xC1C9 0x8FBD +0xC1CA 0x6F66 +0xC1CB 0x4E86 +0xC1CC 0x6482 +0xC1CD 0x9563 +0xC1CE 0x5ED6 +0xC1CF 0x6599 +0xC1D0 0x5217 +0xC1D1 0x88C2 +0xC1D2 0x70C8 +0xC1D3 0x52A3 +0xC1D4 0x730E +0xC1D5 0x7433 +0xC1D6 0x6797 +0xC1D7 0x78F7 +0xC1D8 0x9716 +0xC1D9 0x4E34 +0xC1DA 0x90BB +0xC1DB 0x9CDE +0xC1DC 0x6DCB +0xC1DD 0x51DB +0xC1DE 0x8D41 +0xC1DF 0x541D +0xC1E0 0x62CE +0xC1E1 0x73B2 +0xC1E2 0x83F1 +0xC1E3 0x96F6 +0xC1E4 0x9F84 +0xC1E5 0x94C3 +0xC1E6 0x4F36 +0xC1E7 0x7F9A +0xC1E8 0x51CC +0xC1E9 0x7075 +0xC1EA 0x9675 +0xC1EB 0x5CAD +0xC1EC 0x9886 +0xC1ED 0x53E6 +0xC1EE 0x4EE4 +0xC1EF 0x6E9C +0xC1F0 0x7409 +0xC1F1 0x69B4 +0xC1F2 0x786B +0xC1F3 0x998F +0xC1F4 0x7559 +0xC1F5 0x5218 +0xC1F6 0x7624 +0xC1F7 0x6D41 +0xC1F8 0x67F3 +0xC1F9 0x516D +0xC1FA 0x9F99 +0xC1FB 0x804B +0xC1FC 0x5499 +0xC1FD 0x7B3C +0xC1FE 0x7ABF +0xC2A1 0x9686 +0xC2A2 0x5784 +0xC2A3 0x62E2 +0xC2A4 0x9647 +0xC2A5 0x697C +0xC2A6 0x5A04 +0xC2A7 0x6402 +0xC2A8 0x7BD3 +0xC2A9 0x6F0F +0xC2AA 0x964B +0xC2AB 0x82A6 +0xC2AC 0x5362 +0xC2AD 0x9885 +0xC2AE 0x5E90 +0xC2AF 0x7089 +0xC2B0 0x63B3 +0xC2B1 0x5364 +0xC2B2 0x864F +0xC2B3 0x9C81 +0xC2B4 0x9E93 +0xC2B5 0x788C +0xC2B6 0x9732 +0xC2B7 0x8DEF +0xC2B8 0x8D42 +0xC2B9 0x9E7F +0xC2BA 0x6F5E +0xC2BB 0x7984 +0xC2BC 0x5F55 +0xC2BD 0x9646 +0xC2BE 0x622E +0xC2BF 0x9A74 +0xC2C0 0x5415 +0xC2C1 0x94DD +0xC2C2 0x4FA3 +0xC2C3 0x65C5 +0xC2C4 0x5C65 +0xC2C5 0x5C61 +0xC2C6 0x7F15 +0xC2C7 0x8651 +0xC2C8 0x6C2F +0xC2C9 0x5F8B +0xC2CA 0x7387 +0xC2CB 0x6EE4 +0xC2CC 0x7EFF +0xC2CD 0x5CE6 +0xC2CE 0x631B +0xC2CF 0x5B6A +0xC2D0 0x6EE6 +0xC2D1 0x5375 +0xC2D2 0x4E71 +0xC2D3 0x63A0 +0xC2D4 0x7565 +0xC2D5 0x62A1 +0xC2D6 0x8F6E +0xC2D7 0x4F26 +0xC2D8 0x4ED1 +0xC2D9 0x6CA6 +0xC2DA 0x7EB6 +0xC2DB 0x8BBA +0xC2DC 0x841D +0xC2DD 0x87BA +0xC2DE 0x7F57 +0xC2DF 0x903B +0xC2E0 0x9523 +0xC2E1 0x7BA9 +0xC2E2 0x9AA1 +0xC2E3 0x88F8 +0xC2E4 0x843D +0xC2E5 0x6D1B +0xC2E6 0x9A86 +0xC2E7 0x7EDC +0xC2E8 0x5988 +0xC2E9 0x9EBB +0xC2EA 0x739B +0xC2EB 0x7801 +0xC2EC 0x8682 +0xC2ED 0x9A6C +0xC2EE 0x9A82 +0xC2EF 0x561B +0xC2F0 0x5417 +0xC2F1 0x57CB +0xC2F2 0x4E70 +0xC2F3 0x9EA6 +0xC2F4 0x5356 +0xC2F5 0x8FC8 +0xC2F6 0x8109 +0xC2F7 0x7792 +0xC2F8 0x9992 +0xC2F9 0x86EE +0xC2FA 0x6EE1 +0xC2FB 0x8513 +0xC2FC 0x66FC +0xC2FD 0x6162 +0xC2FE 0x6F2B +0xC3A1 0x8C29 +0xC3A2 0x8292 +0xC3A3 0x832B +0xC3A4 0x76F2 +0xC3A5 0x6C13 +0xC3A6 0x5FD9 +0xC3A7 0x83BD +0xC3A8 0x732B +0xC3A9 0x8305 +0xC3AA 0x951A +0xC3AB 0x6BDB +0xC3AC 0x77DB +0xC3AD 0x94C6 +0xC3AE 0x536F +0xC3AF 0x8302 +0xC3B0 0x5192 +0xC3B1 0x5E3D +0xC3B2 0x8C8C +0xC3B3 0x8D38 +0xC3B4 0x4E48 +0xC3B5 0x73AB +0xC3B6 0x679A +0xC3B7 0x6885 +0xC3B8 0x9176 +0xC3B9 0x9709 +0xC3BA 0x7164 +0xC3BB 0x6CA1 +0xC3BC 0x7709 +0xC3BD 0x5A92 +0xC3BE 0x9541 +0xC3BF 0x6BCF +0xC3C0 0x7F8E +0xC3C1 0x6627 +0xC3C2 0x5BD0 +0xC3C3 0x59B9 +0xC3C4 0x5A9A +0xC3C5 0x95E8 +0xC3C6 0x95F7 +0xC3C7 0x4EEC +0xC3C8 0x840C +0xC3C9 0x8499 +0xC3CA 0x6AAC +0xC3CB 0x76DF +0xC3CC 0x9530 +0xC3CD 0x731B +0xC3CE 0x68A6 +0xC3CF 0x5B5F +0xC3D0 0x772F +0xC3D1 0x919A +0xC3D2 0x9761 +0xC3D3 0x7CDC +0xC3D4 0x8FF7 +0xC3D5 0x8C1C +0xC3D6 0x5F25 +0xC3D7 0x7C73 +0xC3D8 0x79D8 +0xC3D9 0x89C5 +0xC3DA 0x6CCC +0xC3DB 0x871C +0xC3DC 0x5BC6 +0xC3DD 0x5E42 +0xC3DE 0x68C9 +0xC3DF 0x7720 +0xC3E0 0x7EF5 +0xC3E1 0x5195 +0xC3E2 0x514D +0xC3E3 0x52C9 +0xC3E4 0x5A29 +0xC3E5 0x7F05 +0xC3E6 0x9762 +0xC3E7 0x82D7 +0xC3E8 0x63CF +0xC3E9 0x7784 +0xC3EA 0x85D0 +0xC3EB 0x79D2 +0xC3EC 0x6E3A +0xC3ED 0x5E99 +0xC3EE 0x5999 +0xC3EF 0x8511 +0xC3F0 0x706D +0xC3F1 0x6C11 +0xC3F2 0x62BF +0xC3F3 0x76BF +0xC3F4 0x654F +0xC3F5 0x60AF +0xC3F6 0x95FD +0xC3F7 0x660E +0xC3F8 0x879F +0xC3F9 0x9E23 +0xC3FA 0x94ED +0xC3FB 0x540D +0xC3FC 0x547D +0xC3FD 0x8C2C +0xC3FE 0x6478 +0xC4A1 0x6479 +0xC4A2 0x8611 +0xC4A3 0x6A21 +0xC4A4 0x819C +0xC4A5 0x78E8 +0xC4A6 0x6469 +0xC4A7 0x9B54 +0xC4A8 0x62B9 +0xC4A9 0x672B +0xC4AA 0x83AB +0xC4AB 0x58A8 +0xC4AC 0x9ED8 +0xC4AD 0x6CAB +0xC4AE 0x6F20 +0xC4AF 0x5BDE +0xC4B0 0x964C +0xC4B1 0x8C0B +0xC4B2 0x725F +0xC4B3 0x67D0 +0xC4B4 0x62C7 +0xC4B5 0x7261 +0xC4B6 0x4EA9 +0xC4B7 0x59C6 +0xC4B8 0x6BCD +0xC4B9 0x5893 +0xC4BA 0x66AE +0xC4BB 0x5E55 +0xC4BC 0x52DF +0xC4BD 0x6155 +0xC4BE 0x6728 +0xC4BF 0x76EE +0xC4C0 0x7766 +0xC4C1 0x7267 +0xC4C2 0x7A46 +0xC4C3 0x62FF +0xC4C4 0x54EA +0xC4C5 0x5450 +0xC4C6 0x94A0 +0xC4C7 0x90A3 +0xC4C8 0x5A1C +0xC4C9 0x7EB3 +0xC4CA 0x6C16 +0xC4CB 0x4E43 +0xC4CC 0x5976 +0xC4CD 0x8010 +0xC4CE 0x5948 +0xC4CF 0x5357 +0xC4D0 0x7537 +0xC4D1 0x96BE +0xC4D2 0x56CA +0xC4D3 0x6320 +0xC4D4 0x8111 +0xC4D5 0x607C +0xC4D6 0x95F9 +0xC4D7 0x6DD6 +0xC4D8 0x5462 +0xC4D9 0x9981 +0xC4DA 0x5185 +0xC4DB 0x5AE9 +0xC4DC 0x80FD +0xC4DD 0x59AE +0xC4DE 0x9713 +0xC4DF 0x502A +0xC4E0 0x6CE5 +0xC4E1 0x5C3C +0xC4E2 0x62DF +0xC4E3 0x4F60 +0xC4E4 0x533F +0xC4E5 0x817B +0xC4E6 0x9006 +0xC4E7 0x6EBA +0xC4E8 0x852B +0xC4E9 0x62C8 +0xC4EA 0x5E74 +0xC4EB 0x78BE +0xC4EC 0x64B5 +0xC4ED 0x637B +0xC4EE 0x5FF5 +0xC4EF 0x5A18 +0xC4F0 0x917F +0xC4F1 0x9E1F +0xC4F2 0x5C3F +0xC4F3 0x634F +0xC4F4 0x8042 +0xC4F5 0x5B7D +0xC4F6 0x556E +0xC4F7 0x954A +0xC4F8 0x954D +0xC4F9 0x6D85 +0xC4FA 0x60A8 +0xC4FB 0x67E0 +0xC4FC 0x72DE +0xC4FD 0x51DD +0xC4FE 0x5B81 +0xC5A1 0x62E7 +0xC5A2 0x6CDE +0xC5A3 0x725B +0xC5A4 0x626D +0xC5A5 0x94AE +0xC5A6 0x7EBD +0xC5A7 0x8113 +0xC5A8 0x6D53 +0xC5A9 0x519C +0xC5AA 0x5F04 +0xC5AB 0x5974 +0xC5AC 0x52AA +0xC5AD 0x6012 +0xC5AE 0x5973 +0xC5AF 0x6696 +0xC5B0 0x8650 +0xC5B1 0x759F +0xC5B2 0x632A +0xC5B3 0x61E6 +0xC5B4 0x7CEF +0xC5B5 0x8BFA +0xC5B6 0x54E6 +0xC5B7 0x6B27 +0xC5B8 0x9E25 +0xC5B9 0x6BB4 +0xC5BA 0x85D5 +0xC5BB 0x5455 +0xC5BC 0x5076 +0xC5BD 0x6CA4 +0xC5BE 0x556A +0xC5BF 0x8DB4 +0xC5C0 0x722C +0xC5C1 0x5E15 +0xC5C2 0x6015 +0xC5C3 0x7436 +0xC5C4 0x62CD +0xC5C5 0x6392 +0xC5C6 0x724C +0xC5C7 0x5F98 +0xC5C8 0x6E43 +0xC5C9 0x6D3E +0xC5CA 0x6500 +0xC5CB 0x6F58 +0xC5CC 0x76D8 +0xC5CD 0x78D0 +0xC5CE 0x76FC +0xC5CF 0x7554 +0xC5D0 0x5224 +0xC5D1 0x53DB +0xC5D2 0x4E53 +0xC5D3 0x5E9E +0xC5D4 0x65C1 +0xC5D5 0x802A +0xC5D6 0x80D6 +0xC5D7 0x629B +0xC5D8 0x5486 +0xC5D9 0x5228 +0xC5DA 0x70AE +0xC5DB 0x888D +0xC5DC 0x8DD1 +0xC5DD 0x6CE1 +0xC5DE 0x5478 +0xC5DF 0x80DA +0xC5E0 0x57F9 +0xC5E1 0x88F4 +0xC5E2 0x8D54 +0xC5E3 0x966A +0xC5E4 0x914D +0xC5E5 0x4F69 +0xC5E6 0x6C9B +0xC5E7 0x55B7 +0xC5E8 0x76C6 +0xC5E9 0x7830 +0xC5EA 0x62A8 +0xC5EB 0x70F9 +0xC5EC 0x6F8E +0xC5ED 0x5F6D +0xC5EE 0x84EC +0xC5EF 0x68DA +0xC5F0 0x787C +0xC5F1 0x7BF7 +0xC5F2 0x81A8 +0xC5F3 0x670B +0xC5F4 0x9E4F +0xC5F5 0x6367 +0xC5F6 0x78B0 +0xC5F7 0x576F +0xC5F8 0x7812 +0xC5F9 0x9739 +0xC5FA 0x6279 +0xC5FB 0x62AB +0xC5FC 0x5288 +0xC5FD 0x7435 +0xC5FE 0x6BD7 +0xC6A1 0x5564 +0xC6A2 0x813E +0xC6A3 0x75B2 +0xC6A4 0x76AE +0xC6A5 0x5339 +0xC6A6 0x75DE +0xC6A7 0x50FB +0xC6A8 0x5C41 +0xC6A9 0x8B6C +0xC6AA 0x7BC7 +0xC6AB 0x504F +0xC6AC 0x7247 +0xC6AD 0x9A97 +0xC6AE 0x98D8 +0xC6AF 0x6F02 +0xC6B0 0x74E2 +0xC6B1 0x7968 +0xC6B2 0x6487 +0xC6B3 0x77A5 +0xC6B4 0x62FC +0xC6B5 0x9891 +0xC6B6 0x8D2B +0xC6B7 0x54C1 +0xC6B8 0x8058 +0xC6B9 0x4E52 +0xC6BA 0x576A +0xC6BB 0x82F9 +0xC6BC 0x840D +0xC6BD 0x5E73 +0xC6BE 0x51ED +0xC6BF 0x74F6 +0xC6C0 0x8BC4 +0xC6C1 0x5C4F +0xC6C2 0x5761 +0xC6C3 0x6CFC +0xC6C4 0x9887 +0xC6C5 0x5A46 +0xC6C6 0x7834 +0xC6C7 0x9B44 +0xC6C8 0x8FEB +0xC6C9 0x7C95 +0xC6CA 0x5256 +0xC6CB 0x6251 +0xC6CC 0x94FA +0xC6CD 0x4EC6 +0xC6CE 0x8386 +0xC6CF 0x8461 +0xC6D0 0x83E9 +0xC6D1 0x84B2 +0xC6D2 0x57D4 +0xC6D3 0x6734 +0xC6D4 0x5703 +0xC6D5 0x666E +0xC6D6 0x6D66 +0xC6D7 0x8C31 +0xC6D8 0x66DD +0xC6D9 0x7011 +0xC6DA 0x671F +0xC6DB 0x6B3A +0xC6DC 0x6816 +0xC6DD 0x621A +0xC6DE 0x59BB +0xC6DF 0x4E03 +0xC6E0 0x51C4 +0xC6E1 0x6F06 +0xC6E2 0x67D2 +0xC6E3 0x6C8F +0xC6E4 0x5176 +0xC6E5 0x68CB +0xC6E6 0x5947 +0xC6E7 0x6B67 +0xC6E8 0x7566 +0xC6E9 0x5D0E +0xC6EA 0x8110 +0xC6EB 0x9F50 +0xC6EC 0x65D7 +0xC6ED 0x7948 +0xC6EE 0x7941 +0xC6EF 0x9A91 +0xC6F0 0x8D77 +0xC6F1 0x5C82 +0xC6F2 0x4E5E +0xC6F3 0x4F01 +0xC6F4 0x542F +0xC6F5 0x5951 +0xC6F6 0x780C +0xC6F7 0x5668 +0xC6F8 0x6C14 +0xC6F9 0x8FC4 +0xC6FA 0x5F03 +0xC6FB 0x6C7D +0xC6FC 0x6CE3 +0xC6FD 0x8BAB +0xC6FE 0x6390 +0xC7A1 0x6070 +0xC7A2 0x6D3D +0xC7A3 0x7275 +0xC7A4 0x6266 +0xC7A5 0x948E +0xC7A6 0x94C5 +0xC7A7 0x5343 +0xC7A8 0x8FC1 +0xC7A9 0x7B7E +0xC7AA 0x4EDF +0xC7AB 0x8C26 +0xC7AC 0x4E7E +0xC7AD 0x9ED4 +0xC7AE 0x94B1 +0xC7AF 0x94B3 +0xC7B0 0x524D +0xC7B1 0x6F5C +0xC7B2 0x9063 +0xC7B3 0x6D45 +0xC7B4 0x8C34 +0xC7B5 0x5811 +0xC7B6 0x5D4C +0xC7B7 0x6B20 +0xC7B8 0x6B49 +0xC7B9 0x67AA +0xC7BA 0x545B +0xC7BB 0x8154 +0xC7BC 0x7F8C +0xC7BD 0x5899 +0xC7BE 0x8537 +0xC7BF 0x5F3A +0xC7C0 0x62A2 +0xC7C1 0x6A47 +0xC7C2 0x9539 +0xC7C3 0x6572 +0xC7C4 0x6084 +0xC7C5 0x6865 +0xC7C6 0x77A7 +0xC7C7 0x4E54 +0xC7C8 0x4FA8 +0xC7C9 0x5DE7 +0xC7CA 0x9798 +0xC7CB 0x64AC +0xC7CC 0x7FD8 +0xC7CD 0x5CED +0xC7CE 0x4FCF +0xC7CF 0x7A8D +0xC7D0 0x5207 +0xC7D1 0x8304 +0xC7D2 0x4E14 +0xC7D3 0x602F +0xC7D4 0x7A83 +0xC7D5 0x94A6 +0xC7D6 0x4FB5 +0xC7D7 0x4EB2 +0xC7D8 0x79E6 +0xC7D9 0x7434 +0xC7DA 0x52E4 +0xC7DB 0x82B9 +0xC7DC 0x64D2 +0xC7DD 0x79BD +0xC7DE 0x5BDD +0xC7DF 0x6C81 +0xC7E0 0x9752 +0xC7E1 0x8F7B +0xC7E2 0x6C22 +0xC7E3 0x503E +0xC7E4 0x537F +0xC7E5 0x6E05 +0xC7E6 0x64CE +0xC7E7 0x6674 +0xC7E8 0x6C30 +0xC7E9 0x60C5 +0xC7EA 0x9877 +0xC7EB 0x8BF7 +0xC7EC 0x5E86 +0xC7ED 0x743C +0xC7EE 0x7A77 +0xC7EF 0x79CB +0xC7F0 0x4E18 +0xC7F1 0x90B1 +0xC7F2 0x7403 +0xC7F3 0x6C42 +0xC7F4 0x56DA +0xC7F5 0x914B +0xC7F6 0x6CC5 +0xC7F7 0x8D8B +0xC7F8 0x533A +0xC7F9 0x86C6 +0xC7FA 0x66F2 +0xC7FB 0x8EAF +0xC7FC 0x5C48 +0xC7FD 0x9A71 +0xC7FE 0x6E20 +0xC8A1 0x53D6 +0xC8A2 0x5A36 +0xC8A3 0x9F8B +0xC8A4 0x8DA3 +0xC8A5 0x53BB +0xC8A6 0x5708 +0xC8A7 0x98A7 +0xC8A8 0x6743 +0xC8A9 0x919B +0xC8AA 0x6CC9 +0xC8AB 0x5168 +0xC8AC 0x75CA +0xC8AD 0x62F3 +0xC8AE 0x72AC +0xC8AF 0x5238 +0xC8B0 0x529D +0xC8B1 0x7F3A +0xC8B2 0x7094 +0xC8B3 0x7638 +0xC8B4 0x5374 +0xC8B5 0x9E4A +0xC8B6 0x69B7 +0xC8B7 0x786E +0xC8B8 0x96C0 +0xC8B9 0x88D9 +0xC8BA 0x7FA4 +0xC8BB 0x7136 +0xC8BC 0x71C3 +0xC8BD 0x5189 +0xC8BE 0x67D3 +0xC8BF 0x74E4 +0xC8C0 0x58E4 +0xC8C1 0x6518 +0xC8C2 0x56B7 +0xC8C3 0x8BA9 +0xC8C4 0x9976 +0xC8C5 0x6270 +0xC8C6 0x7ED5 +0xC8C7 0x60F9 +0xC8C8 0x70ED +0xC8C9 0x58EC +0xC8CA 0x4EC1 +0xC8CB 0x4EBA +0xC8CC 0x5FCD +0xC8CD 0x97E7 +0xC8CE 0x4EFB +0xC8CF 0x8BA4 +0xC8D0 0x5203 +0xC8D1 0x598A +0xC8D2 0x7EAB +0xC8D3 0x6254 +0xC8D4 0x4ECD +0xC8D5 0x65E5 +0xC8D6 0x620E +0xC8D7 0x8338 +0xC8D8 0x84C9 +0xC8D9 0x8363 +0xC8DA 0x878D +0xC8DB 0x7194 +0xC8DC 0x6EB6 +0xC8DD 0x5BB9 +0xC8DE 0x7ED2 +0xC8DF 0x5197 +0xC8E0 0x63C9 +0xC8E1 0x67D4 +0xC8E2 0x8089 +0xC8E3 0x8339 +0xC8E4 0x8815 +0xC8E5 0x5112 +0xC8E6 0x5B7A +0xC8E7 0x5982 +0xC8E8 0x8FB1 +0xC8E9 0x4E73 +0xC8EA 0x6C5D +0xC8EB 0x5165 +0xC8EC 0x8925 +0xC8ED 0x8F6F +0xC8EE 0x962E +0xC8EF 0x854A +0xC8F0 0x745E +0xC8F1 0x9510 +0xC8F2 0x95F0 +0xC8F3 0x6DA6 +0xC8F4 0x82E5 +0xC8F5 0x5F31 +0xC8F6 0x6492 +0xC8F7 0x6D12 +0xC8F8 0x8428 +0xC8F9 0x816E +0xC8FA 0x9CC3 +0xC8FB 0x585E +0xC8FC 0x8D5B +0xC8FD 0x4E09 +0xC8FE 0x53C1 +0xC9A1 0x4F1E +0xC9A2 0x6563 +0xC9A3 0x6851 +0xC9A4 0x55D3 +0xC9A5 0x4E27 +0xC9A6 0x6414 +0xC9A7 0x9A9A +0xC9A8 0x626B +0xC9A9 0x5AC2 +0xC9AA 0x745F +0xC9AB 0x8272 +0xC9AC 0x6DA9 +0xC9AD 0x68EE +0xC9AE 0x50E7 +0xC9AF 0x838E +0xC9B0 0x7802 +0xC9B1 0x6740 +0xC9B2 0x5239 +0xC9B3 0x6C99 +0xC9B4 0x7EB1 +0xC9B5 0x50BB +0xC9B6 0x5565 +0xC9B7 0x715E +0xC9B8 0x7B5B +0xC9B9 0x6652 +0xC9BA 0x73CA +0xC9BB 0x82EB +0xC9BC 0x6749 +0xC9BD 0x5C71 +0xC9BE 0x5220 +0xC9BF 0x717D +0xC9C0 0x886B +0xC9C1 0x95EA +0xC9C2 0x9655 +0xC9C3 0x64C5 +0xC9C4 0x8D61 +0xC9C5 0x81B3 +0xC9C6 0x5584 +0xC9C7 0x6C55 +0xC9C8 0x6247 +0xC9C9 0x7F2E +0xC9CA 0x5892 +0xC9CB 0x4F24 +0xC9CC 0x5546 +0xC9CD 0x8D4F +0xC9CE 0x664C +0xC9CF 0x4E0A +0xC9D0 0x5C1A +0xC9D1 0x88F3 +0xC9D2 0x68A2 +0xC9D3 0x634E +0xC9D4 0x7A0D +0xC9D5 0x70E7 +0xC9D6 0x828D +0xC9D7 0x52FA +0xC9D8 0x97F6 +0xC9D9 0x5C11 +0xC9DA 0x54E8 +0xC9DB 0x90B5 +0xC9DC 0x7ECD +0xC9DD 0x5962 +0xC9DE 0x8D4A +0xC9DF 0x86C7 +0xC9E0 0x820C +0xC9E1 0x820D +0xC9E2 0x8D66 +0xC9E3 0x6444 +0xC9E4 0x5C04 +0xC9E5 0x6151 +0xC9E6 0x6D89 +0xC9E7 0x793E +0xC9E8 0x8BBE +0xC9E9 0x7837 +0xC9EA 0x7533 +0xC9EB 0x547B +0xC9EC 0x4F38 +0xC9ED 0x8EAB +0xC9EE 0x6DF1 +0xC9EF 0x5A20 +0xC9F0 0x7EC5 +0xC9F1 0x795E +0xC9F2 0x6C88 +0xC9F3 0x5BA1 +0xC9F4 0x5A76 +0xC9F5 0x751A +0xC9F6 0x80BE +0xC9F7 0x614E +0xC9F8 0x6E17 +0xC9F9 0x58F0 +0xC9FA 0x751F +0xC9FB 0x7525 +0xC9FC 0x7272 +0xC9FD 0x5347 +0xC9FE 0x7EF3 +0xCAA1 0x7701 +0xCAA2 0x76DB +0xCAA3 0x5269 +0xCAA4 0x80DC +0xCAA5 0x5723 +0xCAA6 0x5E08 +0xCAA7 0x5931 +0xCAA8 0x72EE +0xCAA9 0x65BD +0xCAAA 0x6E7F +0xCAAB 0x8BD7 +0xCAAC 0x5C38 +0xCAAD 0x8671 +0xCAAE 0x5341 +0xCAAF 0x77F3 +0xCAB0 0x62FE +0xCAB1 0x65F6 +0xCAB2 0x4EC0 +0xCAB3 0x98DF +0xCAB4 0x8680 +0xCAB5 0x5B9E +0xCAB6 0x8BC6 +0xCAB7 0x53F2 +0xCAB8 0x77E2 +0xCAB9 0x4F7F +0xCABA 0x5C4E +0xCABB 0x9A76 +0xCABC 0x59CB +0xCABD 0x5F0F +0xCABE 0x793A +0xCABF 0x58EB +0xCAC0 0x4E16 +0xCAC1 0x67FF +0xCAC2 0x4E8B +0xCAC3 0x62ED +0xCAC4 0x8A93 +0xCAC5 0x901D +0xCAC6 0x52BF +0xCAC7 0x662F +0xCAC8 0x55DC +0xCAC9 0x566C +0xCACA 0x9002 +0xCACB 0x4ED5 +0xCACC 0x4F8D +0xCACD 0x91CA +0xCACE 0x9970 +0xCACF 0x6C0F +0xCAD0 0x5E02 +0xCAD1 0x6043 +0xCAD2 0x5BA4 +0xCAD3 0x89C6 +0xCAD4 0x8BD5 +0xCAD5 0x6536 +0xCAD6 0x624B +0xCAD7 0x9996 +0xCAD8 0x5B88 +0xCAD9 0x5BFF +0xCADA 0x6388 +0xCADB 0x552E +0xCADC 0x53D7 +0xCADD 0x7626 +0xCADE 0x517D +0xCADF 0x852C +0xCAE0 0x67A2 +0xCAE1 0x68B3 +0xCAE2 0x6B8A +0xCAE3 0x6292 +0xCAE4 0x8F93 +0xCAE5 0x53D4 +0xCAE6 0x8212 +0xCAE7 0x6DD1 +0xCAE8 0x758F +0xCAE9 0x4E66 +0xCAEA 0x8D4E +0xCAEB 0x5B70 +0xCAEC 0x719F +0xCAED 0x85AF +0xCAEE 0x6691 +0xCAEF 0x66D9 +0xCAF0 0x7F72 +0xCAF1 0x8700 +0xCAF2 0x9ECD +0xCAF3 0x9F20 +0xCAF4 0x5C5E +0xCAF5 0x672F +0xCAF6 0x8FF0 +0xCAF7 0x6811 +0xCAF8 0x675F +0xCAF9 0x620D +0xCAFA 0x7AD6 +0xCAFB 0x5885 +0xCAFC 0x5EB6 +0xCAFD 0x6570 +0xCAFE 0x6F31 +0xCBA1 0x6055 +0xCBA2 0x5237 +0xCBA3 0x800D +0xCBA4 0x6454 +0xCBA5 0x8870 +0xCBA6 0x7529 +0xCBA7 0x5E05 +0xCBA8 0x6813 +0xCBA9 0x62F4 +0xCBAA 0x971C +0xCBAB 0x53CC +0xCBAC 0x723D +0xCBAD 0x8C01 +0xCBAE 0x6C34 +0xCBAF 0x7761 +0xCBB0 0x7A0E +0xCBB1 0x542E +0xCBB2 0x77AC +0xCBB3 0x987A +0xCBB4 0x821C +0xCBB5 0x8BF4 +0xCBB6 0x7855 +0xCBB7 0x6714 +0xCBB8 0x70C1 +0xCBB9 0x65AF +0xCBBA 0x6495 +0xCBBB 0x5636 +0xCBBC 0x601D +0xCBBD 0x79C1 +0xCBBE 0x53F8 +0xCBBF 0x4E1D +0xCBC0 0x6B7B +0xCBC1 0x8086 +0xCBC2 0x5BFA +0xCBC3 0x55E3 +0xCBC4 0x56DB +0xCBC5 0x4F3A +0xCBC6 0x4F3C +0xCBC7 0x9972 +0xCBC8 0x5DF3 +0xCBC9 0x677E +0xCBCA 0x8038 +0xCBCB 0x6002 +0xCBCC 0x9882 +0xCBCD 0x9001 +0xCBCE 0x5B8B +0xCBCF 0x8BBC +0xCBD0 0x8BF5 +0xCBD1 0x641C +0xCBD2 0x8258 +0xCBD3 0x64DE +0xCBD4 0x55FD +0xCBD5 0x82CF +0xCBD6 0x9165 +0xCBD7 0x4FD7 +0xCBD8 0x7D20 +0xCBD9 0x901F +0xCBDA 0x7C9F +0xCBDB 0x50F3 +0xCBDC 0x5851 +0xCBDD 0x6EAF +0xCBDE 0x5BBF +0xCBDF 0x8BC9 +0xCBE0 0x8083 +0xCBE1 0x9178 +0xCBE2 0x849C +0xCBE3 0x7B97 +0xCBE4 0x867D +0xCBE5 0x968B +0xCBE6 0x968F +0xCBE7 0x7EE5 +0xCBE8 0x9AD3 +0xCBE9 0x788E +0xCBEA 0x5C81 +0xCBEB 0x7A57 +0xCBEC 0x9042 +0xCBED 0x96A7 +0xCBEE 0x795F +0xCBEF 0x5B59 +0xCBF0 0x635F +0xCBF1 0x7B0B +0xCBF2 0x84D1 +0xCBF3 0x68AD +0xCBF4 0x5506 +0xCBF5 0x7F29 +0xCBF6 0x7410 +0xCBF7 0x7D22 +0xCBF8 0x9501 +0xCBF9 0x6240 +0xCBFA 0x584C +0xCBFB 0x4ED6 +0xCBFC 0x5B83 +0xCBFD 0x5979 +0xCBFE 0x5854 +0xCCA1 0x736D +0xCCA2 0x631E +0xCCA3 0x8E4B +0xCCA4 0x8E0F +0xCCA5 0x80CE +0xCCA6 0x82D4 +0xCCA7 0x62AC +0xCCA8 0x53F0 +0xCCA9 0x6CF0 +0xCCAA 0x915E +0xCCAB 0x592A +0xCCAC 0x6001 +0xCCAD 0x6C70 +0xCCAE 0x574D +0xCCAF 0x644A +0xCCB0 0x8D2A +0xCCB1 0x762B +0xCCB2 0x6EE9 +0xCCB3 0x575B +0xCCB4 0x6A80 +0xCCB5 0x75F0 +0xCCB6 0x6F6D +0xCCB7 0x8C2D +0xCCB8 0x8C08 +0xCCB9 0x5766 +0xCCBA 0x6BEF +0xCCBB 0x8892 +0xCCBC 0x78B3 +0xCCBD 0x63A2 +0xCCBE 0x53F9 +0xCCBF 0x70AD +0xCCC0 0x6C64 +0xCCC1 0x5858 +0xCCC2 0x642A +0xCCC3 0x5802 +0xCCC4 0x68E0 +0xCCC5 0x819B +0xCCC6 0x5510 +0xCCC7 0x7CD6 +0xCCC8 0x5018 +0xCCC9 0x8EBA +0xCCCA 0x6DCC +0xCCCB 0x8D9F +0xCCCC 0x70EB +0xCCCD 0x638F +0xCCCE 0x6D9B +0xCCCF 0x6ED4 +0xCCD0 0x7EE6 +0xCCD1 0x8404 +0xCCD2 0x6843 +0xCCD3 0x9003 +0xCCD4 0x6DD8 +0xCCD5 0x9676 +0xCCD6 0x8BA8 +0xCCD7 0x5957 +0xCCD8 0x7279 +0xCCD9 0x85E4 +0xCCDA 0x817E +0xCCDB 0x75BC +0xCCDC 0x8A8A +0xCCDD 0x68AF +0xCCDE 0x5254 +0xCCDF 0x8E22 +0xCCE0 0x9511 +0xCCE1 0x63D0 +0xCCE2 0x9898 +0xCCE3 0x8E44 +0xCCE4 0x557C +0xCCE5 0x4F53 +0xCCE6 0x66FF +0xCCE7 0x568F +0xCCE8 0x60D5 +0xCCE9 0x6D95 +0xCCEA 0x5243 +0xCCEB 0x5C49 +0xCCEC 0x5929 +0xCCED 0x6DFB +0xCCEE 0x586B +0xCCEF 0x7530 +0xCCF0 0x751C +0xCCF1 0x606C +0xCCF2 0x8214 +0xCCF3 0x8146 +0xCCF4 0x6311 +0xCCF5 0x6761 +0xCCF6 0x8FE2 +0xCCF7 0x773A +0xCCF8 0x8DF3 +0xCCF9 0x8D34 +0xCCFA 0x94C1 +0xCCFB 0x5E16 +0xCCFC 0x5385 +0xCCFD 0x542C +0xCCFE 0x70C3 +0xCDA1 0x6C40 +0xCDA2 0x5EF7 +0xCDA3 0x505C +0xCDA4 0x4EAD +0xCDA5 0x5EAD +0xCDA6 0x633A +0xCDA7 0x8247 +0xCDA8 0x901A +0xCDA9 0x6850 +0xCDAA 0x916E +0xCDAB 0x77B3 +0xCDAC 0x540C +0xCDAD 0x94DC +0xCDAE 0x5F64 +0xCDAF 0x7AE5 +0xCDB0 0x6876 +0xCDB1 0x6345 +0xCDB2 0x7B52 +0xCDB3 0x7EDF +0xCDB4 0x75DB +0xCDB5 0x5077 +0xCDB6 0x6295 +0xCDB7 0x5934 +0xCDB8 0x900F +0xCDB9 0x51F8 +0xCDBA 0x79C3 +0xCDBB 0x7A81 +0xCDBC 0x56FE +0xCDBD 0x5F92 +0xCDBE 0x9014 +0xCDBF 0x6D82 +0xCDC0 0x5C60 +0xCDC1 0x571F +0xCDC2 0x5410 +0xCDC3 0x5154 +0xCDC4 0x6E4D +0xCDC5 0x56E2 +0xCDC6 0x63A8 +0xCDC7 0x9893 +0xCDC8 0x817F +0xCDC9 0x8715 +0xCDCA 0x892A +0xCDCB 0x9000 +0xCDCC 0x541E +0xCDCD 0x5C6F +0xCDCE 0x81C0 +0xCDCF 0x62D6 +0xCDD0 0x6258 +0xCDD1 0x8131 +0xCDD2 0x9E35 +0xCDD3 0x9640 +0xCDD4 0x9A6E +0xCDD5 0x9A7C +0xCDD6 0x692D +0xCDD7 0x59A5 +0xCDD8 0x62D3 +0xCDD9 0x553E +0xCDDA 0x6316 +0xCDDB 0x54C7 +0xCDDC 0x86D9 +0xCDDD 0x6D3C +0xCDDE 0x5A03 +0xCDDF 0x74E6 +0xCDE0 0x889C +0xCDE1 0x6B6A +0xCDE2 0x5916 +0xCDE3 0x8C4C +0xCDE4 0x5F2F +0xCDE5 0x6E7E +0xCDE6 0x73A9 +0xCDE7 0x987D +0xCDE8 0x4E38 +0xCDE9 0x70F7 +0xCDEA 0x5B8C +0xCDEB 0x7897 +0xCDEC 0x633D +0xCDED 0x665A +0xCDEE 0x7696 +0xCDEF 0x60CB +0xCDF0 0x5B9B +0xCDF1 0x5A49 +0xCDF2 0x4E07 +0xCDF3 0x8155 +0xCDF4 0x6C6A +0xCDF5 0x738B +0xCDF6 0x4EA1 +0xCDF7 0x6789 +0xCDF8 0x7F51 +0xCDF9 0x5F80 +0xCDFA 0x65FA +0xCDFB 0x671B +0xCDFC 0x5FD8 +0xCDFD 0x5984 +0xCDFE 0x5A01 +0xCEA1 0x5DCD +0xCEA2 0x5FAE +0xCEA3 0x5371 +0xCEA4 0x97E6 +0xCEA5 0x8FDD +0xCEA6 0x6845 +0xCEA7 0x56F4 +0xCEA8 0x552F +0xCEA9 0x60DF +0xCEAA 0x4E3A +0xCEAB 0x6F4D +0xCEAC 0x7EF4 +0xCEAD 0x82C7 +0xCEAE 0x840E +0xCEAF 0x59D4 +0xCEB0 0x4F1F +0xCEB1 0x4F2A +0xCEB2 0x5C3E +0xCEB3 0x7EAC +0xCEB4 0x672A +0xCEB5 0x851A +0xCEB6 0x5473 +0xCEB7 0x754F +0xCEB8 0x80C3 +0xCEB9 0x5582 +0xCEBA 0x9B4F +0xCEBB 0x4F4D +0xCEBC 0x6E2D +0xCEBD 0x8C13 +0xCEBE 0x5C09 +0xCEBF 0x6170 +0xCEC0 0x536B +0xCEC1 0x761F +0xCEC2 0x6E29 +0xCEC3 0x868A +0xCEC4 0x6587 +0xCEC5 0x95FB +0xCEC6 0x7EB9 +0xCEC7 0x543B +0xCEC8 0x7A33 +0xCEC9 0x7D0A +0xCECA 0x95EE +0xCECB 0x55E1 +0xCECC 0x7FC1 +0xCECD 0x74EE +0xCECE 0x631D +0xCECF 0x8717 +0xCED0 0x6DA1 +0xCED1 0x7A9D +0xCED2 0x6211 +0xCED3 0x65A1 +0xCED4 0x5367 +0xCED5 0x63E1 +0xCED6 0x6C83 +0xCED7 0x5DEB +0xCED8 0x545C +0xCED9 0x94A8 +0xCEDA 0x4E4C +0xCEDB 0x6C61 +0xCEDC 0x8BEC +0xCEDD 0x5C4B +0xCEDE 0x65E0 +0xCEDF 0x829C +0xCEE0 0x68A7 +0xCEE1 0x543E +0xCEE2 0x5434 +0xCEE3 0x6BCB +0xCEE4 0x6B66 +0xCEE5 0x4E94 +0xCEE6 0x6342 +0xCEE7 0x5348 +0xCEE8 0x821E +0xCEE9 0x4F0D +0xCEEA 0x4FAE +0xCEEB 0x575E +0xCEEC 0x620A +0xCEED 0x96FE +0xCEEE 0x6664 +0xCEEF 0x7269 +0xCEF0 0x52FF +0xCEF1 0x52A1 +0xCEF2 0x609F +0xCEF3 0x8BEF +0xCEF4 0x6614 +0xCEF5 0x7199 +0xCEF6 0x6790 +0xCEF7 0x897F +0xCEF8 0x7852 +0xCEF9 0x77FD +0xCEFA 0x6670 +0xCEFB 0x563B +0xCEFC 0x5438 +0xCEFD 0x9521 +0xCEFE 0x727A +0xCFA1 0x7A00 +0xCFA2 0x606F +0xCFA3 0x5E0C +0xCFA4 0x6089 +0xCFA5 0x819D +0xCFA6 0x5915 +0xCFA7 0x60DC +0xCFA8 0x7184 +0xCFA9 0x70EF +0xCFAA 0x6EAA +0xCFAB 0x6C50 +0xCFAC 0x7280 +0xCFAD 0x6A84 +0xCFAE 0x88AD +0xCFAF 0x5E2D +0xCFB0 0x4E60 +0xCFB1 0x5AB3 +0xCFB2 0x559C +0xCFB3 0x94E3 +0xCFB4 0x6D17 +0xCFB5 0x7CFB +0xCFB6 0x9699 +0xCFB7 0x620F +0xCFB8 0x7EC6 +0xCFB9 0x778E +0xCFBA 0x867E +0xCFBB 0x5323 +0xCFBC 0x971E +0xCFBD 0x8F96 +0xCFBE 0x6687 +0xCFBF 0x5CE1 +0xCFC0 0x4FA0 +0xCFC1 0x72ED +0xCFC2 0x4E0B +0xCFC3 0x53A6 +0xCFC4 0x590F +0xCFC5 0x5413 +0xCFC6 0x6380 +0xCFC7 0x9528 +0xCFC8 0x5148 +0xCFC9 0x4ED9 +0xCFCA 0x9C9C +0xCFCB 0x7EA4 +0xCFCC 0x54B8 +0xCFCD 0x8D24 +0xCFCE 0x8854 +0xCFCF 0x8237 +0xCFD0 0x95F2 +0xCFD1 0x6D8E +0xCFD2 0x5F26 +0xCFD3 0x5ACC +0xCFD4 0x663E +0xCFD5 0x9669 +0xCFD6 0x73B0 +0xCFD7 0x732E +0xCFD8 0x53BF +0xCFD9 0x817A +0xCFDA 0x9985 +0xCFDB 0x7FA1 +0xCFDC 0x5BAA +0xCFDD 0x9677 +0xCFDE 0x9650 +0xCFDF 0x7EBF +0xCFE0 0x76F8 +0xCFE1 0x53A2 +0xCFE2 0x9576 +0xCFE3 0x9999 +0xCFE4 0x7BB1 +0xCFE5 0x8944 +0xCFE6 0x6E58 +0xCFE7 0x4E61 +0xCFE8 0x7FD4 +0xCFE9 0x7965 +0xCFEA 0x8BE6 +0xCFEB 0x60F3 +0xCFEC 0x54CD +0xCFED 0x4EAB +0xCFEE 0x9879 +0xCFEF 0x5DF7 +0xCFF0 0x6A61 +0xCFF1 0x50CF +0xCFF2 0x5411 +0xCFF3 0x8C61 +0xCFF4 0x8427 +0xCFF5 0x785D +0xCFF6 0x9704 +0xCFF7 0x524A +0xCFF8 0x54EE +0xCFF9 0x56A3 +0xCFFA 0x9500 +0xCFFB 0x6D88 +0xCFFC 0x5BB5 +0xCFFD 0x6DC6 +0xCFFE 0x6653 +0xD0A1 0x5C0F +0xD0A2 0x5B5D +0xD0A3 0x6821 +0xD0A4 0x8096 +0xD0A5 0x5578 +0xD0A6 0x7B11 +0xD0A7 0x6548 +0xD0A8 0x6954 +0xD0A9 0x4E9B +0xD0AA 0x6B47 +0xD0AB 0x874E +0xD0AC 0x978B +0xD0AD 0x534F +0xD0AE 0x631F +0xD0AF 0x643A +0xD0B0 0x90AA +0xD0B1 0x659C +0xD0B2 0x80C1 +0xD0B3 0x8C10 +0xD0B4 0x5199 +0xD0B5 0x68B0 +0xD0B6 0x5378 +0xD0B7 0x87F9 +0xD0B8 0x61C8 +0xD0B9 0x6CC4 +0xD0BA 0x6CFB +0xD0BB 0x8C22 +0xD0BC 0x5C51 +0xD0BD 0x85AA +0xD0BE 0x82AF +0xD0BF 0x950C +0xD0C0 0x6B23 +0xD0C1 0x8F9B +0xD0C2 0x65B0 +0xD0C3 0x5FFB +0xD0C4 0x5FC3 +0xD0C5 0x4FE1 +0xD0C6 0x8845 +0xD0C7 0x661F +0xD0C8 0x8165 +0xD0C9 0x7329 +0xD0CA 0x60FA +0xD0CB 0x5174 +0xD0CC 0x5211 +0xD0CD 0x578B +0xD0CE 0x5F62 +0xD0CF 0x90A2 +0xD0D0 0x884C +0xD0D1 0x9192 +0xD0D2 0x5E78 +0xD0D3 0x674F +0xD0D4 0x6027 +0xD0D5 0x59D3 +0xD0D6 0x5144 +0xD0D7 0x51F6 +0xD0D8 0x80F8 +0xD0D9 0x5308 +0xD0DA 0x6C79 +0xD0DB 0x96C4 +0xD0DC 0x718A +0xD0DD 0x4F11 +0xD0DE 0x4FEE +0xD0DF 0x7F9E +0xD0E0 0x673D +0xD0E1 0x55C5 +0xD0E2 0x9508 +0xD0E3 0x79C0 +0xD0E4 0x8896 +0xD0E5 0x7EE3 +0xD0E6 0x589F +0xD0E7 0x620C +0xD0E8 0x9700 +0xD0E9 0x865A +0xD0EA 0x5618 +0xD0EB 0x987B +0xD0EC 0x5F90 +0xD0ED 0x8BB8 +0xD0EE 0x84C4 +0xD0EF 0x9157 +0xD0F0 0x53D9 +0xD0F1 0x65ED +0xD0F2 0x5E8F +0xD0F3 0x755C +0xD0F4 0x6064 +0xD0F5 0x7D6E +0xD0F6 0x5A7F +0xD0F7 0x7EEA +0xD0F8 0x7EED +0xD0F9 0x8F69 +0xD0FA 0x55A7 +0xD0FB 0x5BA3 +0xD0FC 0x60AC +0xD0FD 0x65CB +0xD0FE 0x7384 +0xD1A1 0x9009 +0xD1A2 0x7663 +0xD1A3 0x7729 +0xD1A4 0x7EDA +0xD1A5 0x9774 +0xD1A6 0x859B +0xD1A7 0x5B66 +0xD1A8 0x7A74 +0xD1A9 0x96EA +0xD1AA 0x8840 +0xD1AB 0x52CB +0xD1AC 0x718F +0xD1AD 0x5FAA +0xD1AE 0x65EC +0xD1AF 0x8BE2 +0xD1B0 0x5BFB +0xD1B1 0x9A6F +0xD1B2 0x5DE1 +0xD1B3 0x6B89 +0xD1B4 0x6C5B +0xD1B5 0x8BAD +0xD1B6 0x8BAF +0xD1B7 0x900A +0xD1B8 0x8FC5 +0xD1B9 0x538B +0xD1BA 0x62BC +0xD1BB 0x9E26 +0xD1BC 0x9E2D +0xD1BD 0x5440 +0xD1BE 0x4E2B +0xD1BF 0x82BD +0xD1C0 0x7259 +0xD1C1 0x869C +0xD1C2 0x5D16 +0xD1C3 0x8859 +0xD1C4 0x6DAF +0xD1C5 0x96C5 +0xD1C6 0x54D1 +0xD1C7 0x4E9A +0xD1C8 0x8BB6 +0xD1C9 0x7109 +0xD1CA 0x54BD +0xD1CB 0x9609 +0xD1CC 0x70DF +0xD1CD 0x6DF9 +0xD1CE 0x76D0 +0xD1CF 0x4E25 +0xD1D0 0x7814 +0xD1D1 0x8712 +0xD1D2 0x5CA9 +0xD1D3 0x5EF6 +0xD1D4 0x8A00 +0xD1D5 0x989C +0xD1D6 0x960E +0xD1D7 0x708E +0xD1D8 0x6CBF +0xD1D9 0x5944 +0xD1DA 0x63A9 +0xD1DB 0x773C +0xD1DC 0x884D +0xD1DD 0x6F14 +0xD1DE 0x8273 +0xD1DF 0x5830 +0xD1E0 0x71D5 +0xD1E1 0x538C +0xD1E2 0x781A +0xD1E3 0x96C1 +0xD1E4 0x5501 +0xD1E5 0x5F66 +0xD1E6 0x7130 +0xD1E7 0x5BB4 +0xD1E8 0x8C1A +0xD1E9 0x9A8C +0xD1EA 0x6B83 +0xD1EB 0x592E +0xD1EC 0x9E2F +0xD1ED 0x79E7 +0xD1EE 0x6768 +0xD1EF 0x626C +0xD1F0 0x4F6F +0xD1F1 0x75A1 +0xD1F2 0x7F8A +0xD1F3 0x6D0B +0xD1F4 0x9633 +0xD1F5 0x6C27 +0xD1F6 0x4EF0 +0xD1F7 0x75D2 +0xD1F8 0x517B +0xD1F9 0x6837 +0xD1FA 0x6F3E +0xD1FB 0x9080 +0xD1FC 0x8170 +0xD1FD 0x5996 +0xD1FE 0x7476 +0xD2A1 0x6447 +0xD2A2 0x5C27 +0xD2A3 0x9065 +0xD2A4 0x7A91 +0xD2A5 0x8C23 +0xD2A6 0x59DA +0xD2A7 0x54AC +0xD2A8 0x8200 +0xD2A9 0x836F +0xD2AA 0x8981 +0xD2AB 0x8000 +0xD2AC 0x6930 +0xD2AD 0x564E +0xD2AE 0x8036 +0xD2AF 0x7237 +0xD2B0 0x91CE +0xD2B1 0x51B6 +0xD2B2 0x4E5F +0xD2B3 0x9875 +0xD2B4 0x6396 +0xD2B5 0x4E1A +0xD2B6 0x53F6 +0xD2B7 0x66F3 +0xD2B8 0x814B +0xD2B9 0x591C +0xD2BA 0x6DB2 +0xD2BB 0x4E00 +0xD2BC 0x58F9 +0xD2BD 0x533B +0xD2BE 0x63D6 +0xD2BF 0x94F1 +0xD2C0 0x4F9D +0xD2C1 0x4F0A +0xD2C2 0x8863 +0xD2C3 0x9890 +0xD2C4 0x5937 +0xD2C5 0x9057 +0xD2C6 0x79FB +0xD2C7 0x4EEA +0xD2C8 0x80F0 +0xD2C9 0x7591 +0xD2CA 0x6C82 +0xD2CB 0x5B9C +0xD2CC 0x59E8 +0xD2CD 0x5F5D +0xD2CE 0x6905 +0xD2CF 0x8681 +0xD2D0 0x501A +0xD2D1 0x5DF2 +0xD2D2 0x4E59 +0xD2D3 0x77E3 +0xD2D4 0x4EE5 +0xD2D5 0x827A +0xD2D6 0x6291 +0xD2D7 0x6613 +0xD2D8 0x9091 +0xD2D9 0x5C79 +0xD2DA 0x4EBF +0xD2DB 0x5F79 +0xD2DC 0x81C6 +0xD2DD 0x9038 +0xD2DE 0x8084 +0xD2DF 0x75AB +0xD2E0 0x4EA6 +0xD2E1 0x88D4 +0xD2E2 0x610F +0xD2E3 0x6BC5 +0xD2E4 0x5FC6 +0xD2E5 0x4E49 +0xD2E6 0x76CA +0xD2E7 0x6EA2 +0xD2E8 0x8BE3 +0xD2E9 0x8BAE +0xD2EA 0x8C0A +0xD2EB 0x8BD1 +0xD2EC 0x5F02 +0xD2ED 0x7FFC +0xD2EE 0x7FCC +0xD2EF 0x7ECE +0xD2F0 0x8335 +0xD2F1 0x836B +0xD2F2 0x56E0 +0xD2F3 0x6BB7 +0xD2F4 0x97F3 +0xD2F5 0x9634 +0xD2F6 0x59FB +0xD2F7 0x541F +0xD2F8 0x94F6 +0xD2F9 0x6DEB +0xD2FA 0x5BC5 +0xD2FB 0x996E +0xD2FC 0x5C39 +0xD2FD 0x5F15 +0xD2FE 0x9690 +0xD3A1 0x5370 +0xD3A2 0x82F1 +0xD3A3 0x6A31 +0xD3A4 0x5A74 +0xD3A5 0x9E70 +0xD3A6 0x5E94 +0xD3A7 0x7F28 +0xD3A8 0x83B9 +0xD3A9 0x8424 +0xD3AA 0x8425 +0xD3AB 0x8367 +0xD3AC 0x8747 +0xD3AD 0x8FCE +0xD3AE 0x8D62 +0xD3AF 0x76C8 +0xD3B0 0x5F71 +0xD3B1 0x9896 +0xD3B2 0x786C +0xD3B3 0x6620 +0xD3B4 0x54DF +0xD3B5 0x62E5 +0xD3B6 0x4F63 +0xD3B7 0x81C3 +0xD3B8 0x75C8 +0xD3B9 0x5EB8 +0xD3BA 0x96CD +0xD3BB 0x8E0A +0xD3BC 0x86F9 +0xD3BD 0x548F +0xD3BE 0x6CF3 +0xD3BF 0x6D8C +0xD3C0 0x6C38 +0xD3C1 0x607F +0xD3C2 0x52C7 +0xD3C3 0x7528 +0xD3C4 0x5E7D +0xD3C5 0x4F18 +0xD3C6 0x60A0 +0xD3C7 0x5FE7 +0xD3C8 0x5C24 +0xD3C9 0x7531 +0xD3CA 0x90AE +0xD3CB 0x94C0 +0xD3CC 0x72B9 +0xD3CD 0x6CB9 +0xD3CE 0x6E38 +0xD3CF 0x9149 +0xD3D0 0x6709 +0xD3D1 0x53CB +0xD3D2 0x53F3 +0xD3D3 0x4F51 +0xD3D4 0x91C9 +0xD3D5 0x8BF1 +0xD3D6 0x53C8 +0xD3D7 0x5E7C +0xD3D8 0x8FC2 +0xD3D9 0x6DE4 +0xD3DA 0x4E8E +0xD3DB 0x76C2 +0xD3DC 0x6986 +0xD3DD 0x865E +0xD3DE 0x611A +0xD3DF 0x8206 +0xD3E0 0x4F59 +0xD3E1 0x4FDE +0xD3E2 0x903E +0xD3E3 0x9C7C +0xD3E4 0x6109 +0xD3E5 0x6E1D +0xD3E6 0x6E14 +0xD3E7 0x9685 +0xD3E8 0x4E88 +0xD3E9 0x5A31 +0xD3EA 0x96E8 +0xD3EB 0x4E0E +0xD3EC 0x5C7F +0xD3ED 0x79B9 +0xD3EE 0x5B87 +0xD3EF 0x8BED +0xD3F0 0x7FBD +0xD3F1 0x7389 +0xD3F2 0x57DF +0xD3F3 0x828B +0xD3F4 0x90C1 +0xD3F5 0x5401 +0xD3F6 0x9047 +0xD3F7 0x55BB +0xD3F8 0x5CEA +0xD3F9 0x5FA1 +0xD3FA 0x6108 +0xD3FB 0x6B32 +0xD3FC 0x72F1 +0xD3FD 0x80B2 +0xD3FE 0x8A89 +0xD4A1 0x6D74 +0xD4A2 0x5BD3 +0xD4A3 0x88D5 +0xD4A4 0x9884 +0xD4A5 0x8C6B +0xD4A6 0x9A6D +0xD4A7 0x9E33 +0xD4A8 0x6E0A +0xD4A9 0x51A4 +0xD4AA 0x5143 +0xD4AB 0x57A3 +0xD4AC 0x8881 +0xD4AD 0x539F +0xD4AE 0x63F4 +0xD4AF 0x8F95 +0xD4B0 0x56ED +0xD4B1 0x5458 +0xD4B2 0x5706 +0xD4B3 0x733F +0xD4B4 0x6E90 +0xD4B5 0x7F18 +0xD4B6 0x8FDC +0xD4B7 0x82D1 +0xD4B8 0x613F +0xD4B9 0x6028 +0xD4BA 0x9662 +0xD4BB 0x66F0 +0xD4BC 0x7EA6 +0xD4BD 0x8D8A +0xD4BE 0x8DC3 +0xD4BF 0x94A5 +0xD4C0 0x5CB3 +0xD4C1 0x7CA4 +0xD4C2 0x6708 +0xD4C3 0x60A6 +0xD4C4 0x9605 +0xD4C5 0x8018 +0xD4C6 0x4E91 +0xD4C7 0x90E7 +0xD4C8 0x5300 +0xD4C9 0x9668 +0xD4CA 0x5141 +0xD4CB 0x8FD0 +0xD4CC 0x8574 +0xD4CD 0x915D +0xD4CE 0x6655 +0xD4CF 0x97F5 +0xD4D0 0x5B55 +0xD4D1 0x531D +0xD4D2 0x7838 +0xD4D3 0x6742 +0xD4D4 0x683D +0xD4D5 0x54C9 +0xD4D6 0x707E +0xD4D7 0x5BB0 +0xD4D8 0x8F7D +0xD4D9 0x518D +0xD4DA 0x5728 +0xD4DB 0x54B1 +0xD4DC 0x6512 +0xD4DD 0x6682 +0xD4DE 0x8D5E +0xD4DF 0x8D43 +0xD4E0 0x810F +0xD4E1 0x846C +0xD4E2 0x906D +0xD4E3 0x7CDF +0xD4E4 0x51FF +0xD4E5 0x85FB +0xD4E6 0x67A3 +0xD4E7 0x65E9 +0xD4E8 0x6FA1 +0xD4E9 0x86A4 +0xD4EA 0x8E81 +0xD4EB 0x566A +0xD4EC 0x9020 +0xD4ED 0x7682 +0xD4EE 0x7076 +0xD4EF 0x71E5 +0xD4F0 0x8D23 +0xD4F1 0x62E9 +0xD4F2 0x5219 +0xD4F3 0x6CFD +0xD4F4 0x8D3C +0xD4F5 0x600E +0xD4F6 0x589E +0xD4F7 0x618E +0xD4F8 0x66FE +0xD4F9 0x8D60 +0xD4FA 0x624E +0xD4FB 0x55B3 +0xD4FC 0x6E23 +0xD4FD 0x672D +0xD4FE 0x8F67 +0xD5A1 0x94E1 +0xD5A2 0x95F8 +0xD5A3 0x7728 +0xD5A4 0x6805 +0xD5A5 0x69A8 +0xD5A6 0x548B +0xD5A7 0x4E4D +0xD5A8 0x70B8 +0xD5A9 0x8BC8 +0xD5AA 0x6458 +0xD5AB 0x658B +0xD5AC 0x5B85 +0xD5AD 0x7A84 +0xD5AE 0x503A +0xD5AF 0x5BE8 +0xD5B0 0x77BB +0xD5B1 0x6BE1 +0xD5B2 0x8A79 +0xD5B3 0x7C98 +0xD5B4 0x6CBE +0xD5B5 0x76CF +0xD5B6 0x65A9 +0xD5B7 0x8F97 +0xD5B8 0x5D2D +0xD5B9 0x5C55 +0xD5BA 0x8638 +0xD5BB 0x6808 +0xD5BC 0x5360 +0xD5BD 0x6218 +0xD5BE 0x7AD9 +0xD5BF 0x6E5B +0xD5C0 0x7EFD +0xD5C1 0x6A1F +0xD5C2 0x7AE0 +0xD5C3 0x5F70 +0xD5C4 0x6F33 +0xD5C5 0x5F20 +0xD5C6 0x638C +0xD5C7 0x6DA8 +0xD5C8 0x6756 +0xD5C9 0x4E08 +0xD5CA 0x5E10 +0xD5CB 0x8D26 +0xD5CC 0x4ED7 +0xD5CD 0x80C0 +0xD5CE 0x7634 +0xD5CF 0x969C +0xD5D0 0x62DB +0xD5D1 0x662D +0xD5D2 0x627E +0xD5D3 0x6CBC +0xD5D4 0x8D75 +0xD5D5 0x7167 +0xD5D6 0x7F69 +0xD5D7 0x5146 +0xD5D8 0x8087 +0xD5D9 0x53EC +0xD5DA 0x906E +0xD5DB 0x6298 +0xD5DC 0x54F2 +0xD5DD 0x86F0 +0xD5DE 0x8F99 +0xD5DF 0x8005 +0xD5E0 0x9517 +0xD5E1 0x8517 +0xD5E2 0x8FD9 +0xD5E3 0x6D59 +0xD5E4 0x73CD +0xD5E5 0x659F +0xD5E6 0x771F +0xD5E7 0x7504 +0xD5E8 0x7827 +0xD5E9 0x81FB +0xD5EA 0x8D1E +0xD5EB 0x9488 +0xD5EC 0x4FA6 +0xD5ED 0x6795 +0xD5EE 0x75B9 +0xD5EF 0x8BCA +0xD5F0 0x9707 +0xD5F1 0x632F +0xD5F2 0x9547 +0xD5F3 0x9635 +0xD5F4 0x84B8 +0xD5F5 0x6323 +0xD5F6 0x7741 +0xD5F7 0x5F81 +0xD5F8 0x72F0 +0xD5F9 0x4E89 +0xD5FA 0x6014 +0xD5FB 0x6574 +0xD5FC 0x62EF +0xD5FD 0x6B63 +0xD5FE 0x653F +0xD6A1 0x5E27 +0xD6A2 0x75C7 +0xD6A3 0x90D1 +0xD6A4 0x8BC1 +0xD6A5 0x829D +0xD6A6 0x679D +0xD6A7 0x652F +0xD6A8 0x5431 +0xD6A9 0x8718 +0xD6AA 0x77E5 +0xD6AB 0x80A2 +0xD6AC 0x8102 +0xD6AD 0x6C41 +0xD6AE 0x4E4B +0xD6AF 0x7EC7 +0xD6B0 0x804C +0xD6B1 0x76F4 +0xD6B2 0x690D +0xD6B3 0x6B96 +0xD6B4 0x6267 +0xD6B5 0x503C +0xD6B6 0x4F84 +0xD6B7 0x5740 +0xD6B8 0x6307 +0xD6B9 0x6B62 +0xD6BA 0x8DBE +0xD6BB 0x53EA +0xD6BC 0x65E8 +0xD6BD 0x7EB8 +0xD6BE 0x5FD7 +0xD6BF 0x631A +0xD6C0 0x63B7 +0xD6C1 0x81F3 +0xD6C2 0x81F4 +0xD6C3 0x7F6E +0xD6C4 0x5E1C +0xD6C5 0x5CD9 +0xD6C6 0x5236 +0xD6C7 0x667A +0xD6C8 0x79E9 +0xD6C9 0x7A1A +0xD6CA 0x8D28 +0xD6CB 0x7099 +0xD6CC 0x75D4 +0xD6CD 0x6EDE +0xD6CE 0x6CBB +0xD6CF 0x7A92 +0xD6D0 0x4E2D +0xD6D1 0x76C5 +0xD6D2 0x5FE0 +0xD6D3 0x949F +0xD6D4 0x8877 +0xD6D5 0x7EC8 +0xD6D6 0x79CD +0xD6D7 0x80BF +0xD6D8 0x91CD +0xD6D9 0x4EF2 +0xD6DA 0x4F17 +0xD6DB 0x821F +0xD6DC 0x5468 +0xD6DD 0x5DDE +0xD6DE 0x6D32 +0xD6DF 0x8BCC +0xD6E0 0x7CA5 +0xD6E1 0x8F74 +0xD6E2 0x8098 +0xD6E3 0x5E1A +0xD6E4 0x5492 +0xD6E5 0x76B1 +0xD6E6 0x5B99 +0xD6E7 0x663C +0xD6E8 0x9AA4 +0xD6E9 0x73E0 +0xD6EA 0x682A +0xD6EB 0x86DB +0xD6EC 0x6731 +0xD6ED 0x732A +0xD6EE 0x8BF8 +0xD6EF 0x8BDB +0xD6F0 0x9010 +0xD6F1 0x7AF9 +0xD6F2 0x70DB +0xD6F3 0x716E +0xD6F4 0x62C4 +0xD6F5 0x77A9 +0xD6F6 0x5631 +0xD6F7 0x4E3B +0xD6F8 0x8457 +0xD6F9 0x67F1 +0xD6FA 0x52A9 +0xD6FB 0x86C0 +0xD6FC 0x8D2E +0xD6FD 0x94F8 +0xD6FE 0x7B51 +0xD7A1 0x4F4F +0xD7A2 0x6CE8 +0xD7A3 0x795D +0xD7A4 0x9A7B +0xD7A5 0x6293 +0xD7A6 0x722A +0xD7A7 0x62FD +0xD7A8 0x4E13 +0xD7A9 0x7816 +0xD7AA 0x8F6C +0xD7AB 0x64B0 +0xD7AC 0x8D5A +0xD7AD 0x7BC6 +0xD7AE 0x6869 +0xD7AF 0x5E84 +0xD7B0 0x88C5 +0xD7B1 0x5986 +0xD7B2 0x649E +0xD7B3 0x58EE +0xD7B4 0x72B6 +0xD7B5 0x690E +0xD7B6 0x9525 +0xD7B7 0x8FFD +0xD7B8 0x8D58 +0xD7B9 0x5760 +0xD7BA 0x7F00 +0xD7BB 0x8C06 +0xD7BC 0x51C6 +0xD7BD 0x6349 +0xD7BE 0x62D9 +0xD7BF 0x5353 +0xD7C0 0x684C +0xD7C1 0x7422 +0xD7C2 0x8301 +0xD7C3 0x914C +0xD7C4 0x5544 +0xD7C5 0x7740 +0xD7C6 0x707C +0xD7C7 0x6D4A +0xD7C8 0x5179 +0xD7C9 0x54A8 +0xD7CA 0x8D44 +0xD7CB 0x59FF +0xD7CC 0x6ECB +0xD7CD 0x6DC4 +0xD7CE 0x5B5C +0xD7CF 0x7D2B +0xD7D0 0x4ED4 +0xD7D1 0x7C7D +0xD7D2 0x6ED3 +0xD7D3 0x5B50 +0xD7D4 0x81EA +0xD7D5 0x6E0D +0xD7D6 0x5B57 +0xD7D7 0x9B03 +0xD7D8 0x68D5 +0xD7D9 0x8E2A +0xD7DA 0x5B97 +0xD7DB 0x7EFC +0xD7DC 0x603B +0xD7DD 0x7EB5 +0xD7DE 0x90B9 +0xD7DF 0x8D70 +0xD7E0 0x594F +0xD7E1 0x63CD +0xD7E2 0x79DF +0xD7E3 0x8DB3 +0xD7E4 0x5352 +0xD7E5 0x65CF +0xD7E6 0x7956 +0xD7E7 0x8BC5 +0xD7E8 0x963B +0xD7E9 0x7EC4 +0xD7EA 0x94BB +0xD7EB 0x7E82 +0xD7EC 0x5634 +0xD7ED 0x9189 +0xD7EE 0x6700 +0xD7EF 0x7F6A +0xD7F0 0x5C0A +0xD7F1 0x9075 +0xD7F2 0x6628 +0xD7F3 0x5DE6 +0xD7F4 0x4F50 +0xD7F5 0x67DE +0xD7F6 0x505A +0xD7F7 0x4F5C +0xD7F8 0x5750 +0xD7F9 0x5EA7 +0xD8A1 0x4E8D +0xD8A2 0x4E0C +0xD8A3 0x5140 +0xD8A4 0x4E10 +0xD8A5 0x5EFF +0xD8A6 0x5345 +0xD8A7 0x4E15 +0xD8A8 0x4E98 +0xD8A9 0x4E1E +0xD8AA 0x9B32 +0xD8AB 0x5B6C +0xD8AC 0x5669 +0xD8AD 0x4E28 +0xD8AE 0x79BA +0xD8AF 0x4E3F +0xD8B0 0x5315 +0xD8B1 0x4E47 +0xD8B2 0x592D +0xD8B3 0x723B +0xD8B4 0x536E +0xD8B5 0x6C10 +0xD8B6 0x56DF +0xD8B7 0x80E4 +0xD8B8 0x9997 +0xD8B9 0x6BD3 +0xD8BA 0x777E +0xD8BB 0x9F17 +0xD8BC 0x4E36 +0xD8BD 0x4E9F +0xD8BE 0x9F10 +0xD8BF 0x4E5C +0xD8C0 0x4E69 +0xD8C1 0x4E93 +0xD8C2 0x8288 +0xD8C3 0x5B5B +0xD8C4 0x556C +0xD8C5 0x560F +0xD8C6 0x4EC4 +0xD8C7 0x538D +0xD8C8 0x539D +0xD8C9 0x53A3 +0xD8CA 0x53A5 +0xD8CB 0x53AE +0xD8CC 0x9765 +0xD8CD 0x8D5D +0xD8CE 0x531A +0xD8CF 0x53F5 +0xD8D0 0x5326 +0xD8D1 0x532E +0xD8D2 0x533E +0xD8D3 0x8D5C +0xD8D4 0x5366 +0xD8D5 0x5363 +0xD8D6 0x5202 +0xD8D7 0x5208 +0xD8D8 0x520E +0xD8D9 0x522D +0xD8DA 0x5233 +0xD8DB 0x523F +0xD8DC 0x5240 +0xD8DD 0x524C +0xD8DE 0x525E +0xD8DF 0x5261 +0xD8E0 0x525C +0xD8E1 0x84AF +0xD8E2 0x527D +0xD8E3 0x5282 +0xD8E4 0x5281 +0xD8E5 0x5290 +0xD8E6 0x5293 +0xD8E7 0x5182 +0xD8E8 0x7F54 +0xD8E9 0x4EBB +0xD8EA 0x4EC3 +0xD8EB 0x4EC9 +0xD8EC 0x4EC2 +0xD8ED 0x4EE8 +0xD8EE 0x4EE1 +0xD8EF 0x4EEB +0xD8F0 0x4EDE +0xD8F1 0x4F1B +0xD8F2 0x4EF3 +0xD8F3 0x4F22 +0xD8F4 0x4F64 +0xD8F5 0x4EF5 +0xD8F6 0x4F25 +0xD8F7 0x4F27 +0xD8F8 0x4F09 +0xD8F9 0x4F2B +0xD8FA 0x4F5E +0xD8FB 0x4F67 +0xD8FC 0x6538 +0xD8FD 0x4F5A +0xD8FE 0x4F5D +0xD9A1 0x4F5F +0xD9A2 0x4F57 +0xD9A3 0x4F32 +0xD9A4 0x4F3D +0xD9A5 0x4F76 +0xD9A6 0x4F74 +0xD9A7 0x4F91 +0xD9A8 0x4F89 +0xD9A9 0x4F83 +0xD9AA 0x4F8F +0xD9AB 0x4F7E +0xD9AC 0x4F7B +0xD9AD 0x4FAA +0xD9AE 0x4F7C +0xD9AF 0x4FAC +0xD9B0 0x4F94 +0xD9B1 0x4FE6 +0xD9B2 0x4FE8 +0xD9B3 0x4FEA +0xD9B4 0x4FC5 +0xD9B5 0x4FDA +0xD9B6 0x4FE3 +0xD9B7 0x4FDC +0xD9B8 0x4FD1 +0xD9B9 0x4FDF +0xD9BA 0x4FF8 +0xD9BB 0x5029 +0xD9BC 0x504C +0xD9BD 0x4FF3 +0xD9BE 0x502C +0xD9BF 0x500F +0xD9C0 0x502E +0xD9C1 0x502D +0xD9C2 0x4FFE +0xD9C3 0x501C +0xD9C4 0x500C +0xD9C5 0x5025 +0xD9C6 0x5028 +0xD9C7 0x507E +0xD9C8 0x5043 +0xD9C9 0x5055 +0xD9CA 0x5048 +0xD9CB 0x504E +0xD9CC 0x506C +0xD9CD 0x507B +0xD9CE 0x50A5 +0xD9CF 0x50A7 +0xD9D0 0x50A9 +0xD9D1 0x50BA +0xD9D2 0x50D6 +0xD9D3 0x5106 +0xD9D4 0x50ED +0xD9D5 0x50EC +0xD9D6 0x50E6 +0xD9D7 0x50EE +0xD9D8 0x5107 +0xD9D9 0x510B +0xD9DA 0x4EDD +0xD9DB 0x6C3D +0xD9DC 0x4F58 +0xD9DD 0x4F65 +0xD9DE 0x4FCE +0xD9DF 0x9FA0 +0xD9E0 0x6C46 +0xD9E1 0x7C74 +0xD9E2 0x516E +0xD9E3 0x5DFD +0xD9E4 0x9EC9 +0xD9E5 0x9998 +0xD9E6 0x5181 +0xD9E7 0x5914 +0xD9E8 0x52F9 +0xD9E9 0x530D +0xD9EA 0x8A07 +0xD9EB 0x5310 +0xD9EC 0x51EB +0xD9ED 0x5919 +0xD9EE 0x5155 +0xD9EF 0x4EA0 +0xD9F0 0x5156 +0xD9F1 0x4EB3 +0xD9F2 0x886E +0xD9F3 0x88A4 +0xD9F4 0x4EB5 +0xD9F5 0x8114 +0xD9F6 0x88D2 +0xD9F7 0x7980 +0xD9F8 0x5B34 +0xD9F9 0x8803 +0xD9FA 0x7FB8 +0xD9FB 0x51AB +0xD9FC 0x51B1 +0xD9FD 0x51BD +0xD9FE 0x51BC +0xDAA1 0x51C7 +0xDAA2 0x5196 +0xDAA3 0x51A2 +0xDAA4 0x51A5 +0xDAA5 0x8BA0 +0xDAA6 0x8BA6 +0xDAA7 0x8BA7 +0xDAA8 0x8BAA +0xDAA9 0x8BB4 +0xDAAA 0x8BB5 +0xDAAB 0x8BB7 +0xDAAC 0x8BC2 +0xDAAD 0x8BC3 +0xDAAE 0x8BCB +0xDAAF 0x8BCF +0xDAB0 0x8BCE +0xDAB1 0x8BD2 +0xDAB2 0x8BD3 +0xDAB3 0x8BD4 +0xDAB4 0x8BD6 +0xDAB5 0x8BD8 +0xDAB6 0x8BD9 +0xDAB7 0x8BDC +0xDAB8 0x8BDF +0xDAB9 0x8BE0 +0xDABA 0x8BE4 +0xDABB 0x8BE8 +0xDABC 0x8BE9 +0xDABD 0x8BEE +0xDABE 0x8BF0 +0xDABF 0x8BF3 +0xDAC0 0x8BF6 +0xDAC1 0x8BF9 +0xDAC2 0x8BFC +0xDAC3 0x8BFF +0xDAC4 0x8C00 +0xDAC5 0x8C02 +0xDAC6 0x8C04 +0xDAC7 0x8C07 +0xDAC8 0x8C0C +0xDAC9 0x8C0F +0xDACA 0x8C11 +0xDACB 0x8C12 +0xDACC 0x8C14 +0xDACD 0x8C15 +0xDACE 0x8C16 +0xDACF 0x8C19 +0xDAD0 0x8C1B +0xDAD1 0x8C18 +0xDAD2 0x8C1D +0xDAD3 0x8C1F +0xDAD4 0x8C20 +0xDAD5 0x8C21 +0xDAD6 0x8C25 +0xDAD7 0x8C27 +0xDAD8 0x8C2A +0xDAD9 0x8C2B +0xDADA 0x8C2E +0xDADB 0x8C2F +0xDADC 0x8C32 +0xDADD 0x8C33 +0xDADE 0x8C35 +0xDADF 0x8C36 +0xDAE0 0x5369 +0xDAE1 0x537A +0xDAE2 0x961D +0xDAE3 0x9622 +0xDAE4 0x9621 +0xDAE5 0x9631 +0xDAE6 0x962A +0xDAE7 0x963D +0xDAE8 0x963C +0xDAE9 0x9642 +0xDAEA 0x9649 +0xDAEB 0x9654 +0xDAEC 0x965F +0xDAED 0x9667 +0xDAEE 0x966C +0xDAEF 0x9672 +0xDAF0 0x9674 +0xDAF1 0x9688 +0xDAF2 0x968D +0xDAF3 0x9697 +0xDAF4 0x96B0 +0xDAF5 0x9097 +0xDAF6 0x909B +0xDAF7 0x909D +0xDAF8 0x9099 +0xDAF9 0x90AC +0xDAFA 0x90A1 +0xDAFB 0x90B4 +0xDAFC 0x90B3 +0xDAFD 0x90B6 +0xDAFE 0x90BA +0xDBA1 0x90B8 +0xDBA2 0x90B0 +0xDBA3 0x90CF +0xDBA4 0x90C5 +0xDBA5 0x90BE +0xDBA6 0x90D0 +0xDBA7 0x90C4 +0xDBA8 0x90C7 +0xDBA9 0x90D3 +0xDBAA 0x90E6 +0xDBAB 0x90E2 +0xDBAC 0x90DC +0xDBAD 0x90D7 +0xDBAE 0x90DB +0xDBAF 0x90EB +0xDBB0 0x90EF +0xDBB1 0x90FE +0xDBB2 0x9104 +0xDBB3 0x9122 +0xDBB4 0x911E +0xDBB5 0x9123 +0xDBB6 0x9131 +0xDBB7 0x912F +0xDBB8 0x9139 +0xDBB9 0x9143 +0xDBBA 0x9146 +0xDBBB 0x520D +0xDBBC 0x5942 +0xDBBD 0x52A2 +0xDBBE 0x52AC +0xDBBF 0x52AD +0xDBC0 0x52BE +0xDBC1 0x54FF +0xDBC2 0x52D0 +0xDBC3 0x52D6 +0xDBC4 0x52F0 +0xDBC5 0x53DF +0xDBC6 0x71EE +0xDBC7 0x77CD +0xDBC8 0x5EF4 +0xDBC9 0x51F5 +0xDBCA 0x51FC +0xDBCB 0x9B2F +0xDBCC 0x53B6 +0xDBCD 0x5F01 +0xDBCE 0x755A +0xDBCF 0x5DEF +0xDBD0 0x574C +0xDBD1 0x57A9 +0xDBD2 0x57A1 +0xDBD3 0x587E +0xDBD4 0x58BC +0xDBD5 0x58C5 +0xDBD6 0x58D1 +0xDBD7 0x5729 +0xDBD8 0x572C +0xDBD9 0x572A +0xDBDA 0x5733 +0xDBDB 0x5739 +0xDBDC 0x572E +0xDBDD 0x572F +0xDBDE 0x575C +0xDBDF 0x573B +0xDBE0 0x5742 +0xDBE1 0x5769 +0xDBE2 0x5785 +0xDBE3 0x576B +0xDBE4 0x5786 +0xDBE5 0x577C +0xDBE6 0x577B +0xDBE7 0x5768 +0xDBE8 0x576D +0xDBE9 0x5776 +0xDBEA 0x5773 +0xDBEB 0x57AD +0xDBEC 0x57A4 +0xDBED 0x578C +0xDBEE 0x57B2 +0xDBEF 0x57CF +0xDBF0 0x57A7 +0xDBF1 0x57B4 +0xDBF2 0x5793 +0xDBF3 0x57A0 +0xDBF4 0x57D5 +0xDBF5 0x57D8 +0xDBF6 0x57DA +0xDBF7 0x57D9 +0xDBF8 0x57D2 +0xDBF9 0x57B8 +0xDBFA 0x57F4 +0xDBFB 0x57EF +0xDBFC 0x57F8 +0xDBFD 0x57E4 +0xDBFE 0x57DD +0xDCA1 0x580B +0xDCA2 0x580D +0xDCA3 0x57FD +0xDCA4 0x57ED +0xDCA5 0x5800 +0xDCA6 0x581E +0xDCA7 0x5819 +0xDCA8 0x5844 +0xDCA9 0x5820 +0xDCAA 0x5865 +0xDCAB 0x586C +0xDCAC 0x5881 +0xDCAD 0x5889 +0xDCAE 0x589A +0xDCAF 0x5880 +0xDCB0 0x99A8 +0xDCB1 0x9F19 +0xDCB2 0x61FF +0xDCB3 0x8279 +0xDCB4 0x827D +0xDCB5 0x827F +0xDCB6 0x828F +0xDCB7 0x828A +0xDCB8 0x82A8 +0xDCB9 0x8284 +0xDCBA 0x828E +0xDCBB 0x8291 +0xDCBC 0x8297 +0xDCBD 0x8299 +0xDCBE 0x82AB +0xDCBF 0x82B8 +0xDCC0 0x82BE +0xDCC1 0x82B0 +0xDCC2 0x82C8 +0xDCC3 0x82CA +0xDCC4 0x82E3 +0xDCC5 0x8298 +0xDCC6 0x82B7 +0xDCC7 0x82AE +0xDCC8 0x82CB +0xDCC9 0x82CC +0xDCCA 0x82C1 +0xDCCB 0x82A9 +0xDCCC 0x82B4 +0xDCCD 0x82A1 +0xDCCE 0x82AA +0xDCCF 0x829F +0xDCD0 0x82C4 +0xDCD1 0x82CE +0xDCD2 0x82A4 +0xDCD3 0x82E1 +0xDCD4 0x8309 +0xDCD5 0x82F7 +0xDCD6 0x82E4 +0xDCD7 0x830F +0xDCD8 0x8307 +0xDCD9 0x82DC +0xDCDA 0x82F4 +0xDCDB 0x82D2 +0xDCDC 0x82D8 +0xDCDD 0x830C +0xDCDE 0x82FB +0xDCDF 0x82D3 +0xDCE0 0x8311 +0xDCE1 0x831A +0xDCE2 0x8306 +0xDCE3 0x8314 +0xDCE4 0x8315 +0xDCE5 0x82E0 +0xDCE6 0x82D5 +0xDCE7 0x831C +0xDCE8 0x8351 +0xDCE9 0x835B +0xDCEA 0x835C +0xDCEB 0x8308 +0xDCEC 0x8392 +0xDCED 0x833C +0xDCEE 0x8334 +0xDCEF 0x8331 +0xDCF0 0x839B +0xDCF1 0x835E +0xDCF2 0x832F +0xDCF3 0x834F +0xDCF4 0x8347 +0xDCF5 0x8343 +0xDCF6 0x835F +0xDCF7 0x8340 +0xDCF8 0x8317 +0xDCF9 0x8360 +0xDCFA 0x832D +0xDCFB 0x833A +0xDCFC 0x8333 +0xDCFD 0x8366 +0xDCFE 0x8365 +0xDDA1 0x8368 +0xDDA2 0x831B +0xDDA3 0x8369 +0xDDA4 0x836C +0xDDA5 0x836A +0xDDA6 0x836D +0xDDA7 0x836E +0xDDA8 0x83B0 +0xDDA9 0x8378 +0xDDAA 0x83B3 +0xDDAB 0x83B4 +0xDDAC 0x83A0 +0xDDAD 0x83AA +0xDDAE 0x8393 +0xDDAF 0x839C +0xDDB0 0x8385 +0xDDB1 0x837C +0xDDB2 0x83B6 +0xDDB3 0x83A9 +0xDDB4 0x837D +0xDDB5 0x83B8 +0xDDB6 0x837B +0xDDB7 0x8398 +0xDDB8 0x839E +0xDDB9 0x83A8 +0xDDBA 0x83BA +0xDDBB 0x83BC +0xDDBC 0x83C1 +0xDDBD 0x8401 +0xDDBE 0x83E5 +0xDDBF 0x83D8 +0xDDC0 0x5807 +0xDDC1 0x8418 +0xDDC2 0x840B +0xDDC3 0x83DD +0xDDC4 0x83FD +0xDDC5 0x83D6 +0xDDC6 0x841C +0xDDC7 0x8438 +0xDDC8 0x8411 +0xDDC9 0x8406 +0xDDCA 0x83D4 +0xDDCB 0x83DF +0xDDCC 0x840F +0xDDCD 0x8403 +0xDDCE 0x83F8 +0xDDCF 0x83F9 +0xDDD0 0x83EA +0xDDD1 0x83C5 +0xDDD2 0x83C0 +0xDDD3 0x8426 +0xDDD4 0x83F0 +0xDDD5 0x83E1 +0xDDD6 0x845C +0xDDD7 0x8451 +0xDDD8 0x845A +0xDDD9 0x8459 +0xDDDA 0x8473 +0xDDDB 0x8487 +0xDDDC 0x8488 +0xDDDD 0x847A +0xDDDE 0x8489 +0xDDDF 0x8478 +0xDDE0 0x843C +0xDDE1 0x8446 +0xDDE2 0x8469 +0xDDE3 0x8476 +0xDDE4 0x848C +0xDDE5 0x848E +0xDDE6 0x8431 +0xDDE7 0x846D +0xDDE8 0x84C1 +0xDDE9 0x84CD +0xDDEA 0x84D0 +0xDDEB 0x84E6 +0xDDEC 0x84BD +0xDDED 0x84D3 +0xDDEE 0x84CA +0xDDEF 0x84BF +0xDDF0 0x84BA +0xDDF1 0x84E0 +0xDDF2 0x84A1 +0xDDF3 0x84B9 +0xDDF4 0x84B4 +0xDDF5 0x8497 +0xDDF6 0x84E5 +0xDDF7 0x84E3 +0xDDF8 0x850C +0xDDF9 0x750D +0xDDFA 0x8538 +0xDDFB 0x84F0 +0xDDFC 0x8539 +0xDDFD 0x851F +0xDDFE 0x853A +0xDEA1 0x8556 +0xDEA2 0x853B +0xDEA3 0x84FF +0xDEA4 0x84FC +0xDEA5 0x8559 +0xDEA6 0x8548 +0xDEA7 0x8568 +0xDEA8 0x8564 +0xDEA9 0x855E +0xDEAA 0x857A +0xDEAB 0x77A2 +0xDEAC 0x8543 +0xDEAD 0x8572 +0xDEAE 0x857B +0xDEAF 0x85A4 +0xDEB0 0x85A8 +0xDEB1 0x8587 +0xDEB2 0x858F +0xDEB3 0x8579 +0xDEB4 0x85AE +0xDEB5 0x859C +0xDEB6 0x8585 +0xDEB7 0x85B9 +0xDEB8 0x85B7 +0xDEB9 0x85B0 +0xDEBA 0x85D3 +0xDEBB 0x85C1 +0xDEBC 0x85DC +0xDEBD 0x85FF +0xDEBE 0x8627 +0xDEBF 0x8605 +0xDEC0 0x8629 +0xDEC1 0x8616 +0xDEC2 0x863C +0xDEC3 0x5EFE +0xDEC4 0x5F08 +0xDEC5 0x593C +0xDEC6 0x5941 +0xDEC7 0x8037 +0xDEC8 0x5955 +0xDEC9 0x595A +0xDECA 0x5958 +0xDECB 0x530F +0xDECC 0x5C22 +0xDECD 0x5C25 +0xDECE 0x5C2C +0xDECF 0x5C34 +0xDED0 0x624C +0xDED1 0x626A +0xDED2 0x629F +0xDED3 0x62BB +0xDED4 0x62CA +0xDED5 0x62DA +0xDED6 0x62D7 +0xDED7 0x62EE +0xDED8 0x6322 +0xDED9 0x62F6 +0xDEDA 0x6339 +0xDEDB 0x634B +0xDEDC 0x6343 +0xDEDD 0x63AD +0xDEDE 0x63F6 +0xDEDF 0x6371 +0xDEE0 0x637A +0xDEE1 0x638E +0xDEE2 0x63B4 +0xDEE3 0x636D +0xDEE4 0x63AC +0xDEE5 0x638A +0xDEE6 0x6369 +0xDEE7 0x63AE +0xDEE8 0x63BC +0xDEE9 0x63F2 +0xDEEA 0x63F8 +0xDEEB 0x63E0 +0xDEEC 0x63FF +0xDEED 0x63C4 +0xDEEE 0x63DE +0xDEEF 0x63CE +0xDEF0 0x6452 +0xDEF1 0x63C6 +0xDEF2 0x63BE +0xDEF3 0x6445 +0xDEF4 0x6441 +0xDEF5 0x640B +0xDEF6 0x641B +0xDEF7 0x6420 +0xDEF8 0x640C +0xDEF9 0x6426 +0xDEFA 0x6421 +0xDEFB 0x645E +0xDEFC 0x6484 +0xDEFD 0x646D +0xDEFE 0x6496 +0xDFA1 0x647A +0xDFA2 0x64B7 +0xDFA3 0x64B8 +0xDFA4 0x6499 +0xDFA5 0x64BA +0xDFA6 0x64C0 +0xDFA7 0x64D0 +0xDFA8 0x64D7 +0xDFA9 0x64E4 +0xDFAA 0x64E2 +0xDFAB 0x6509 +0xDFAC 0x6525 +0xDFAD 0x652E +0xDFAE 0x5F0B +0xDFAF 0x5FD2 +0xDFB0 0x7519 +0xDFB1 0x5F11 +0xDFB2 0x535F +0xDFB3 0x53F1 +0xDFB4 0x53FD +0xDFB5 0x53E9 +0xDFB6 0x53E8 +0xDFB7 0x53FB +0xDFB8 0x5412 +0xDFB9 0x5416 +0xDFBA 0x5406 +0xDFBB 0x544B +0xDFBC 0x5452 +0xDFBD 0x5453 +0xDFBE 0x5454 +0xDFBF 0x5456 +0xDFC0 0x5443 +0xDFC1 0x5421 +0xDFC2 0x5457 +0xDFC3 0x5459 +0xDFC4 0x5423 +0xDFC5 0x5432 +0xDFC6 0x5482 +0xDFC7 0x5494 +0xDFC8 0x5477 +0xDFC9 0x5471 +0xDFCA 0x5464 +0xDFCB 0x549A +0xDFCC 0x549B +0xDFCD 0x5484 +0xDFCE 0x5476 +0xDFCF 0x5466 +0xDFD0 0x549D +0xDFD1 0x54D0 +0xDFD2 0x54AD +0xDFD3 0x54C2 +0xDFD4 0x54B4 +0xDFD5 0x54D2 +0xDFD6 0x54A7 +0xDFD7 0x54A6 +0xDFD8 0x54D3 +0xDFD9 0x54D4 +0xDFDA 0x5472 +0xDFDB 0x54A3 +0xDFDC 0x54D5 +0xDFDD 0x54BB +0xDFDE 0x54BF +0xDFDF 0x54CC +0xDFE0 0x54D9 +0xDFE1 0x54DA +0xDFE2 0x54DC +0xDFE3 0x54A9 +0xDFE4 0x54AA +0xDFE5 0x54A4 +0xDFE6 0x54DD +0xDFE7 0x54CF +0xDFE8 0x54DE +0xDFE9 0x551B +0xDFEA 0x54E7 +0xDFEB 0x5520 +0xDFEC 0x54FD +0xDFED 0x5514 +0xDFEE 0x54F3 +0xDFEF 0x5522 +0xDFF0 0x5523 +0xDFF1 0x550F +0xDFF2 0x5511 +0xDFF3 0x5527 +0xDFF4 0x552A +0xDFF5 0x5567 +0xDFF6 0x558F +0xDFF7 0x55B5 +0xDFF8 0x5549 +0xDFF9 0x556D +0xDFFA 0x5541 +0xDFFB 0x5555 +0xDFFC 0x553F +0xDFFD 0x5550 +0xDFFE 0x553C +0xE0A1 0x5537 +0xE0A2 0x5556 +0xE0A3 0x5575 +0xE0A4 0x5576 +0xE0A5 0x5577 +0xE0A6 0x5533 +0xE0A7 0x5530 +0xE0A8 0x555C +0xE0A9 0x558B +0xE0AA 0x55D2 +0xE0AB 0x5583 +0xE0AC 0x55B1 +0xE0AD 0x55B9 +0xE0AE 0x5588 +0xE0AF 0x5581 +0xE0B0 0x559F +0xE0B1 0x557E +0xE0B2 0x55D6 +0xE0B3 0x5591 +0xE0B4 0x557B +0xE0B5 0x55DF +0xE0B6 0x55BD +0xE0B7 0x55BE +0xE0B8 0x5594 +0xE0B9 0x5599 +0xE0BA 0x55EA +0xE0BB 0x55F7 +0xE0BC 0x55C9 +0xE0BD 0x561F +0xE0BE 0x55D1 +0xE0BF 0x55EB +0xE0C0 0x55EC +0xE0C1 0x55D4 +0xE0C2 0x55E6 +0xE0C3 0x55DD +0xE0C4 0x55C4 +0xE0C5 0x55EF +0xE0C6 0x55E5 +0xE0C7 0x55F2 +0xE0C8 0x55F3 +0xE0C9 0x55CC +0xE0CA 0x55CD +0xE0CB 0x55E8 +0xE0CC 0x55F5 +0xE0CD 0x55E4 +0xE0CE 0x8F94 +0xE0CF 0x561E +0xE0D0 0x5608 +0xE0D1 0x560C +0xE0D2 0x5601 +0xE0D3 0x5624 +0xE0D4 0x5623 +0xE0D5 0x55FE +0xE0D6 0x5600 +0xE0D7 0x5627 +0xE0D8 0x562D +0xE0D9 0x5658 +0xE0DA 0x5639 +0xE0DB 0x5657 +0xE0DC 0x562C +0xE0DD 0x564D +0xE0DE 0x5662 +0xE0DF 0x5659 +0xE0E0 0x565C +0xE0E1 0x564C +0xE0E2 0x5654 +0xE0E3 0x5686 +0xE0E4 0x5664 +0xE0E5 0x5671 +0xE0E6 0x566B +0xE0E7 0x567B +0xE0E8 0x567C +0xE0E9 0x5685 +0xE0EA 0x5693 +0xE0EB 0x56AF +0xE0EC 0x56D4 +0xE0ED 0x56D7 +0xE0EE 0x56DD +0xE0EF 0x56E1 +0xE0F0 0x56F5 +0xE0F1 0x56EB +0xE0F2 0x56F9 +0xE0F3 0x56FF +0xE0F4 0x5704 +0xE0F5 0x570A +0xE0F6 0x5709 +0xE0F7 0x571C +0xE0F8 0x5E0F +0xE0F9 0x5E19 +0xE0FA 0x5E14 +0xE0FB 0x5E11 +0xE0FC 0x5E31 +0xE0FD 0x5E3B +0xE0FE 0x5E3C +0xE1A1 0x5E37 +0xE1A2 0x5E44 +0xE1A3 0x5E54 +0xE1A4 0x5E5B +0xE1A5 0x5E5E +0xE1A6 0x5E61 +0xE1A7 0x5C8C +0xE1A8 0x5C7A +0xE1A9 0x5C8D +0xE1AA 0x5C90 +0xE1AB 0x5C96 +0xE1AC 0x5C88 +0xE1AD 0x5C98 +0xE1AE 0x5C99 +0xE1AF 0x5C91 +0xE1B0 0x5C9A +0xE1B1 0x5C9C +0xE1B2 0x5CB5 +0xE1B3 0x5CA2 +0xE1B4 0x5CBD +0xE1B5 0x5CAC +0xE1B6 0x5CAB +0xE1B7 0x5CB1 +0xE1B8 0x5CA3 +0xE1B9 0x5CC1 +0xE1BA 0x5CB7 +0xE1BB 0x5CC4 +0xE1BC 0x5CD2 +0xE1BD 0x5CE4 +0xE1BE 0x5CCB +0xE1BF 0x5CE5 +0xE1C0 0x5D02 +0xE1C1 0x5D03 +0xE1C2 0x5D27 +0xE1C3 0x5D26 +0xE1C4 0x5D2E +0xE1C5 0x5D24 +0xE1C6 0x5D1E +0xE1C7 0x5D06 +0xE1C8 0x5D1B +0xE1C9 0x5D58 +0xE1CA 0x5D3E +0xE1CB 0x5D34 +0xE1CC 0x5D3D +0xE1CD 0x5D6C +0xE1CE 0x5D5B +0xE1CF 0x5D6F +0xE1D0 0x5D5D +0xE1D1 0x5D6B +0xE1D2 0x5D4B +0xE1D3 0x5D4A +0xE1D4 0x5D69 +0xE1D5 0x5D74 +0xE1D6 0x5D82 +0xE1D7 0x5D99 +0xE1D8 0x5D9D +0xE1D9 0x8C73 +0xE1DA 0x5DB7 +0xE1DB 0x5DC5 +0xE1DC 0x5F73 +0xE1DD 0x5F77 +0xE1DE 0x5F82 +0xE1DF 0x5F87 +0xE1E0 0x5F89 +0xE1E1 0x5F8C +0xE1E2 0x5F95 +0xE1E3 0x5F99 +0xE1E4 0x5F9C +0xE1E5 0x5FA8 +0xE1E6 0x5FAD +0xE1E7 0x5FB5 +0xE1E8 0x5FBC +0xE1E9 0x8862 +0xE1EA 0x5F61 +0xE1EB 0x72AD +0xE1EC 0x72B0 +0xE1ED 0x72B4 +0xE1EE 0x72B7 +0xE1EF 0x72B8 +0xE1F0 0x72C3 +0xE1F1 0x72C1 +0xE1F2 0x72CE +0xE1F3 0x72CD +0xE1F4 0x72D2 +0xE1F5 0x72E8 +0xE1F6 0x72EF +0xE1F7 0x72E9 +0xE1F8 0x72F2 +0xE1F9 0x72F4 +0xE1FA 0x72F7 +0xE1FB 0x7301 +0xE1FC 0x72F3 +0xE1FD 0x7303 +0xE1FE 0x72FA +0xE2A1 0x72FB +0xE2A2 0x7317 +0xE2A3 0x7313 +0xE2A4 0x7321 +0xE2A5 0x730A +0xE2A6 0x731E +0xE2A7 0x731D +0xE2A8 0x7315 +0xE2A9 0x7322 +0xE2AA 0x7339 +0xE2AB 0x7325 +0xE2AC 0x732C +0xE2AD 0x7338 +0xE2AE 0x7331 +0xE2AF 0x7350 +0xE2B0 0x734D +0xE2B1 0x7357 +0xE2B2 0x7360 +0xE2B3 0x736C +0xE2B4 0x736F +0xE2B5 0x737E +0xE2B6 0x821B +0xE2B7 0x5925 +0xE2B8 0x98E7 +0xE2B9 0x5924 +0xE2BA 0x5902 +0xE2BB 0x9963 +0xE2BC 0x9967 +0xE2BD 0x9968 +0xE2BE 0x9969 +0xE2BF 0x996A +0xE2C0 0x996B +0xE2C1 0x996C +0xE2C2 0x9974 +0xE2C3 0x9977 +0xE2C4 0x997D +0xE2C5 0x9980 +0xE2C6 0x9984 +0xE2C7 0x9987 +0xE2C8 0x998A +0xE2C9 0x998D +0xE2CA 0x9990 +0xE2CB 0x9991 +0xE2CC 0x9993 +0xE2CD 0x9994 +0xE2CE 0x9995 +0xE2CF 0x5E80 +0xE2D0 0x5E91 +0xE2D1 0x5E8B +0xE2D2 0x5E96 +0xE2D3 0x5EA5 +0xE2D4 0x5EA0 +0xE2D5 0x5EB9 +0xE2D6 0x5EB5 +0xE2D7 0x5EBE +0xE2D8 0x5EB3 +0xE2D9 0x8D53 +0xE2DA 0x5ED2 +0xE2DB 0x5ED1 +0xE2DC 0x5EDB +0xE2DD 0x5EE8 +0xE2DE 0x5EEA +0xE2DF 0x81BA +0xE2E0 0x5FC4 +0xE2E1 0x5FC9 +0xE2E2 0x5FD6 +0xE2E3 0x5FCF +0xE2E4 0x6003 +0xE2E5 0x5FEE +0xE2E6 0x6004 +0xE2E7 0x5FE1 +0xE2E8 0x5FE4 +0xE2E9 0x5FFE +0xE2EA 0x6005 +0xE2EB 0x6006 +0xE2EC 0x5FEA +0xE2ED 0x5FED +0xE2EE 0x5FF8 +0xE2EF 0x6019 +0xE2F0 0x6035 +0xE2F1 0x6026 +0xE2F2 0x601B +0xE2F3 0x600F +0xE2F4 0x600D +0xE2F5 0x6029 +0xE2F6 0x602B +0xE2F7 0x600A +0xE2F8 0x603F +0xE2F9 0x6021 +0xE2FA 0x6078 +0xE2FB 0x6079 +0xE2FC 0x607B +0xE2FD 0x607A +0xE2FE 0x6042 +0xE3A1 0x606A +0xE3A2 0x607D +0xE3A3 0x6096 +0xE3A4 0x609A +0xE3A5 0x60AD +0xE3A6 0x609D +0xE3A7 0x6083 +0xE3A8 0x6092 +0xE3A9 0x608C +0xE3AA 0x609B +0xE3AB 0x60EC +0xE3AC 0x60BB +0xE3AD 0x60B1 +0xE3AE 0x60DD +0xE3AF 0x60D8 +0xE3B0 0x60C6 +0xE3B1 0x60DA +0xE3B2 0x60B4 +0xE3B3 0x6120 +0xE3B4 0x6126 +0xE3B5 0x6115 +0xE3B6 0x6123 +0xE3B7 0x60F4 +0xE3B8 0x6100 +0xE3B9 0x610E +0xE3BA 0x612B +0xE3BB 0x614A +0xE3BC 0x6175 +0xE3BD 0x61AC +0xE3BE 0x6194 +0xE3BF 0x61A7 +0xE3C0 0x61B7 +0xE3C1 0x61D4 +0xE3C2 0x61F5 +0xE3C3 0x5FDD +0xE3C4 0x96B3 +0xE3C5 0x95E9 +0xE3C6 0x95EB +0xE3C7 0x95F1 +0xE3C8 0x95F3 +0xE3C9 0x95F5 +0xE3CA 0x95F6 +0xE3CB 0x95FC +0xE3CC 0x95FE +0xE3CD 0x9603 +0xE3CE 0x9604 +0xE3CF 0x9606 +0xE3D0 0x9608 +0xE3D1 0x960A +0xE3D2 0x960B +0xE3D3 0x960C +0xE3D4 0x960D +0xE3D5 0x960F +0xE3D6 0x9612 +0xE3D7 0x9615 +0xE3D8 0x9616 +0xE3D9 0x9617 +0xE3DA 0x9619 +0xE3DB 0x961A +0xE3DC 0x4E2C +0xE3DD 0x723F +0xE3DE 0x6215 +0xE3DF 0x6C35 +0xE3E0 0x6C54 +0xE3E1 0x6C5C +0xE3E2 0x6C4A +0xE3E3 0x6CA3 +0xE3E4 0x6C85 +0xE3E5 0x6C90 +0xE3E6 0x6C94 +0xE3E7 0x6C8C +0xE3E8 0x6C68 +0xE3E9 0x6C69 +0xE3EA 0x6C74 +0xE3EB 0x6C76 +0xE3EC 0x6C86 +0xE3ED 0x6CA9 +0xE3EE 0x6CD0 +0xE3EF 0x6CD4 +0xE3F0 0x6CAD +0xE3F1 0x6CF7 +0xE3F2 0x6CF8 +0xE3F3 0x6CF1 +0xE3F4 0x6CD7 +0xE3F5 0x6CB2 +0xE3F6 0x6CE0 +0xE3F7 0x6CD6 +0xE3F8 0x6CFA +0xE3F9 0x6CEB +0xE3FA 0x6CEE +0xE3FB 0x6CB1 +0xE3FC 0x6CD3 +0xE3FD 0x6CEF +0xE3FE 0x6CFE +0xE4A1 0x6D39 +0xE4A2 0x6D27 +0xE4A3 0x6D0C +0xE4A4 0x6D43 +0xE4A5 0x6D48 +0xE4A6 0x6D07 +0xE4A7 0x6D04 +0xE4A8 0x6D19 +0xE4A9 0x6D0E +0xE4AA 0x6D2B +0xE4AB 0x6D4D +0xE4AC 0x6D2E +0xE4AD 0x6D35 +0xE4AE 0x6D1A +0xE4AF 0x6D4F +0xE4B0 0x6D52 +0xE4B1 0x6D54 +0xE4B2 0x6D33 +0xE4B3 0x6D91 +0xE4B4 0x6D6F +0xE4B5 0x6D9E +0xE4B6 0x6DA0 +0xE4B7 0x6D5E +0xE4B8 0x6D93 +0xE4B9 0x6D94 +0xE4BA 0x6D5C +0xE4BB 0x6D60 +0xE4BC 0x6D7C +0xE4BD 0x6D63 +0xE4BE 0x6E1A +0xE4BF 0x6DC7 +0xE4C0 0x6DC5 +0xE4C1 0x6DDE +0xE4C2 0x6E0E +0xE4C3 0x6DBF +0xE4C4 0x6DE0 +0xE4C5 0x6E11 +0xE4C6 0x6DE6 +0xE4C7 0x6DDD +0xE4C8 0x6DD9 +0xE4C9 0x6E16 +0xE4CA 0x6DAB +0xE4CB 0x6E0C +0xE4CC 0x6DAE +0xE4CD 0x6E2B +0xE4CE 0x6E6E +0xE4CF 0x6E4E +0xE4D0 0x6E6B +0xE4D1 0x6EB2 +0xE4D2 0x6E5F +0xE4D3 0x6E86 +0xE4D4 0x6E53 +0xE4D5 0x6E54 +0xE4D6 0x6E32 +0xE4D7 0x6E25 +0xE4D8 0x6E44 +0xE4D9 0x6EDF +0xE4DA 0x6EB1 +0xE4DB 0x6E98 +0xE4DC 0x6EE0 +0xE4DD 0x6F2D +0xE4DE 0x6EE2 +0xE4DF 0x6EA5 +0xE4E0 0x6EA7 +0xE4E1 0x6EBD +0xE4E2 0x6EBB +0xE4E3 0x6EB7 +0xE4E4 0x6ED7 +0xE4E5 0x6EB4 +0xE4E6 0x6ECF +0xE4E7 0x6E8F +0xE4E8 0x6EC2 +0xE4E9 0x6E9F +0xE4EA 0x6F62 +0xE4EB 0x6F46 +0xE4EC 0x6F47 +0xE4ED 0x6F24 +0xE4EE 0x6F15 +0xE4EF 0x6EF9 +0xE4F0 0x6F2F +0xE4F1 0x6F36 +0xE4F2 0x6F4B +0xE4F3 0x6F74 +0xE4F4 0x6F2A +0xE4F5 0x6F09 +0xE4F6 0x6F29 +0xE4F7 0x6F89 +0xE4F8 0x6F8D +0xE4F9 0x6F8C +0xE4FA 0x6F78 +0xE4FB 0x6F72 +0xE4FC 0x6F7C +0xE4FD 0x6F7A +0xE4FE 0x6FD1 +0xE5A1 0x6FC9 +0xE5A2 0x6FA7 +0xE5A3 0x6FB9 +0xE5A4 0x6FB6 +0xE5A5 0x6FC2 +0xE5A6 0x6FE1 +0xE5A7 0x6FEE +0xE5A8 0x6FDE +0xE5A9 0x6FE0 +0xE5AA 0x6FEF +0xE5AB 0x701A +0xE5AC 0x7023 +0xE5AD 0x701B +0xE5AE 0x7039 +0xE5AF 0x7035 +0xE5B0 0x704F +0xE5B1 0x705E +0xE5B2 0x5B80 +0xE5B3 0x5B84 +0xE5B4 0x5B95 +0xE5B5 0x5B93 +0xE5B6 0x5BA5 +0xE5B7 0x5BB8 +0xE5B8 0x752F +0xE5B9 0x9A9E +0xE5BA 0x6434 +0xE5BB 0x5BE4 +0xE5BC 0x5BEE +0xE5BD 0x8930 +0xE5BE 0x5BF0 +0xE5BF 0x8E47 +0xE5C0 0x8B07 +0xE5C1 0x8FB6 +0xE5C2 0x8FD3 +0xE5C3 0x8FD5 +0xE5C4 0x8FE5 +0xE5C5 0x8FEE +0xE5C6 0x8FE4 +0xE5C7 0x8FE9 +0xE5C8 0x8FE6 +0xE5C9 0x8FF3 +0xE5CA 0x8FE8 +0xE5CB 0x9005 +0xE5CC 0x9004 +0xE5CD 0x900B +0xE5CE 0x9026 +0xE5CF 0x9011 +0xE5D0 0x900D +0xE5D1 0x9016 +0xE5D2 0x9021 +0xE5D3 0x9035 +0xE5D4 0x9036 +0xE5D5 0x902D +0xE5D6 0x902F +0xE5D7 0x9044 +0xE5D8 0x9051 +0xE5D9 0x9052 +0xE5DA 0x9050 +0xE5DB 0x9068 +0xE5DC 0x9058 +0xE5DD 0x9062 +0xE5DE 0x905B +0xE5DF 0x66B9 +0xE5E0 0x9074 +0xE5E1 0x907D +0xE5E2 0x9082 +0xE5E3 0x9088 +0xE5E4 0x9083 +0xE5E5 0x908B +0xE5E6 0x5F50 +0xE5E7 0x5F57 +0xE5E8 0x5F56 +0xE5E9 0x5F58 +0xE5EA 0x5C3B +0xE5EB 0x54AB +0xE5EC 0x5C50 +0xE5ED 0x5C59 +0xE5EE 0x5B71 +0xE5EF 0x5C63 +0xE5F0 0x5C66 +0xE5F1 0x7FBC +0xE5F2 0x5F2A +0xE5F3 0x5F29 +0xE5F4 0x5F2D +0xE5F5 0x8274 +0xE5F6 0x5F3C +0xE5F7 0x9B3B +0xE5F8 0x5C6E +0xE5F9 0x5981 +0xE5FA 0x5983 +0xE5FB 0x598D +0xE5FC 0x59A9 +0xE5FD 0x59AA +0xE5FE 0x59A3 +0xE6A1 0x5997 +0xE6A2 0x59CA +0xE6A3 0x59AB +0xE6A4 0x599E +0xE6A5 0x59A4 +0xE6A6 0x59D2 +0xE6A7 0x59B2 +0xE6A8 0x59AF +0xE6A9 0x59D7 +0xE6AA 0x59BE +0xE6AB 0x5A05 +0xE6AC 0x5A06 +0xE6AD 0x59DD +0xE6AE 0x5A08 +0xE6AF 0x59E3 +0xE6B0 0x59D8 +0xE6B1 0x59F9 +0xE6B2 0x5A0C +0xE6B3 0x5A09 +0xE6B4 0x5A32 +0xE6B5 0x5A34 +0xE6B6 0x5A11 +0xE6B7 0x5A23 +0xE6B8 0x5A13 +0xE6B9 0x5A40 +0xE6BA 0x5A67 +0xE6BB 0x5A4A +0xE6BC 0x5A55 +0xE6BD 0x5A3C +0xE6BE 0x5A62 +0xE6BF 0x5A75 +0xE6C0 0x80EC +0xE6C1 0x5AAA +0xE6C2 0x5A9B +0xE6C3 0x5A77 +0xE6C4 0x5A7A +0xE6C5 0x5ABE +0xE6C6 0x5AEB +0xE6C7 0x5AB2 +0xE6C8 0x5AD2 +0xE6C9 0x5AD4 +0xE6CA 0x5AB8 +0xE6CB 0x5AE0 +0xE6CC 0x5AE3 +0xE6CD 0x5AF1 +0xE6CE 0x5AD6 +0xE6CF 0x5AE6 +0xE6D0 0x5AD8 +0xE6D1 0x5ADC +0xE6D2 0x5B09 +0xE6D3 0x5B17 +0xE6D4 0x5B16 +0xE6D5 0x5B32 +0xE6D6 0x5B37 +0xE6D7 0x5B40 +0xE6D8 0x5C15 +0xE6D9 0x5C1C +0xE6DA 0x5B5A +0xE6DB 0x5B65 +0xE6DC 0x5B73 +0xE6DD 0x5B51 +0xE6DE 0x5B53 +0xE6DF 0x5B62 +0xE6E0 0x9A75 +0xE6E1 0x9A77 +0xE6E2 0x9A78 +0xE6E3 0x9A7A +0xE6E4 0x9A7F +0xE6E5 0x9A7D +0xE6E6 0x9A80 +0xE6E7 0x9A81 +0xE6E8 0x9A85 +0xE6E9 0x9A88 +0xE6EA 0x9A8A +0xE6EB 0x9A90 +0xE6EC 0x9A92 +0xE6ED 0x9A93 +0xE6EE 0x9A96 +0xE6EF 0x9A98 +0xE6F0 0x9A9B +0xE6F1 0x9A9C +0xE6F2 0x9A9D +0xE6F3 0x9A9F +0xE6F4 0x9AA0 +0xE6F5 0x9AA2 +0xE6F6 0x9AA3 +0xE6F7 0x9AA5 +0xE6F8 0x9AA7 +0xE6F9 0x7E9F +0xE6FA 0x7EA1 +0xE6FB 0x7EA3 +0xE6FC 0x7EA5 +0xE6FD 0x7EA8 +0xE6FE 0x7EA9 +0xE7A1 0x7EAD +0xE7A2 0x7EB0 +0xE7A3 0x7EBE +0xE7A4 0x7EC0 +0xE7A5 0x7EC1 +0xE7A6 0x7EC2 +0xE7A7 0x7EC9 +0xE7A8 0x7ECB +0xE7A9 0x7ECC +0xE7AA 0x7ED0 +0xE7AB 0x7ED4 +0xE7AC 0x7ED7 +0xE7AD 0x7EDB +0xE7AE 0x7EE0 +0xE7AF 0x7EE1 +0xE7B0 0x7EE8 +0xE7B1 0x7EEB +0xE7B2 0x7EEE +0xE7B3 0x7EEF +0xE7B4 0x7EF1 +0xE7B5 0x7EF2 +0xE7B6 0x7F0D +0xE7B7 0x7EF6 +0xE7B8 0x7EFA +0xE7B9 0x7EFB +0xE7BA 0x7EFE +0xE7BB 0x7F01 +0xE7BC 0x7F02 +0xE7BD 0x7F03 +0xE7BE 0x7F07 +0xE7BF 0x7F08 +0xE7C0 0x7F0B +0xE7C1 0x7F0C +0xE7C2 0x7F0F +0xE7C3 0x7F11 +0xE7C4 0x7F12 +0xE7C5 0x7F17 +0xE7C6 0x7F19 +0xE7C7 0x7F1C +0xE7C8 0x7F1B +0xE7C9 0x7F1F +0xE7CA 0x7F21 +0xE7CB 0x7F22 +0xE7CC 0x7F23 +0xE7CD 0x7F24 +0xE7CE 0x7F25 +0xE7CF 0x7F26 +0xE7D0 0x7F27 +0xE7D1 0x7F2A +0xE7D2 0x7F2B +0xE7D3 0x7F2C +0xE7D4 0x7F2D +0xE7D5 0x7F2F +0xE7D6 0x7F30 +0xE7D7 0x7F31 +0xE7D8 0x7F32 +0xE7D9 0x7F33 +0xE7DA 0x7F35 +0xE7DB 0x5E7A +0xE7DC 0x757F +0xE7DD 0x5DDB +0xE7DE 0x753E +0xE7DF 0x9095 +0xE7E0 0x738E +0xE7E1 0x7391 +0xE7E2 0x73AE +0xE7E3 0x73A2 +0xE7E4 0x739F +0xE7E5 0x73CF +0xE7E6 0x73C2 +0xE7E7 0x73D1 +0xE7E8 0x73B7 +0xE7E9 0x73B3 +0xE7EA 0x73C0 +0xE7EB 0x73C9 +0xE7EC 0x73C8 +0xE7ED 0x73E5 +0xE7EE 0x73D9 +0xE7EF 0x987C +0xE7F0 0x740A +0xE7F1 0x73E9 +0xE7F2 0x73E7 +0xE7F3 0x73DE +0xE7F4 0x73BA +0xE7F5 0x73F2 +0xE7F6 0x740F +0xE7F7 0x742A +0xE7F8 0x745B +0xE7F9 0x7426 +0xE7FA 0x7425 +0xE7FB 0x7428 +0xE7FC 0x7430 +0xE7FD 0x742E +0xE7FE 0x742C +0xE8A1 0x741B +0xE8A2 0x741A +0xE8A3 0x7441 +0xE8A4 0x745C +0xE8A5 0x7457 +0xE8A6 0x7455 +0xE8A7 0x7459 +0xE8A8 0x7477 +0xE8A9 0x746D +0xE8AA 0x747E +0xE8AB 0x749C +0xE8AC 0x748E +0xE8AD 0x7480 +0xE8AE 0x7481 +0xE8AF 0x7487 +0xE8B0 0x748B +0xE8B1 0x749E +0xE8B2 0x74A8 +0xE8B3 0x74A9 +0xE8B4 0x7490 +0xE8B5 0x74A7 +0xE8B6 0x74D2 +0xE8B7 0x74BA +0xE8B8 0x97EA +0xE8B9 0x97EB +0xE8BA 0x97EC +0xE8BB 0x674C +0xE8BC 0x6753 +0xE8BD 0x675E +0xE8BE 0x6748 +0xE8BF 0x6769 +0xE8C0 0x67A5 +0xE8C1 0x6787 +0xE8C2 0x676A +0xE8C3 0x6773 +0xE8C4 0x6798 +0xE8C5 0x67A7 +0xE8C6 0x6775 +0xE8C7 0x67A8 +0xE8C8 0x679E +0xE8C9 0x67AD +0xE8CA 0x678B +0xE8CB 0x6777 +0xE8CC 0x677C +0xE8CD 0x67F0 +0xE8CE 0x6809 +0xE8CF 0x67D8 +0xE8D0 0x680A +0xE8D1 0x67E9 +0xE8D2 0x67B0 +0xE8D3 0x680C +0xE8D4 0x67D9 +0xE8D5 0x67B5 +0xE8D6 0x67DA +0xE8D7 0x67B3 +0xE8D8 0x67DD +0xE8D9 0x6800 +0xE8DA 0x67C3 +0xE8DB 0x67B8 +0xE8DC 0x67E2 +0xE8DD 0x680E +0xE8DE 0x67C1 +0xE8DF 0x67FD +0xE8E0 0x6832 +0xE8E1 0x6833 +0xE8E2 0x6860 +0xE8E3 0x6861 +0xE8E4 0x684E +0xE8E5 0x6862 +0xE8E6 0x6844 +0xE8E7 0x6864 +0xE8E8 0x6883 +0xE8E9 0x681D +0xE8EA 0x6855 +0xE8EB 0x6866 +0xE8EC 0x6841 +0xE8ED 0x6867 +0xE8EE 0x6840 +0xE8EF 0x683E +0xE8F0 0x684A +0xE8F1 0x6849 +0xE8F2 0x6829 +0xE8F3 0x68B5 +0xE8F4 0x688F +0xE8F5 0x6874 +0xE8F6 0x6877 +0xE8F7 0x6893 +0xE8F8 0x686B +0xE8F9 0x68C2 +0xE8FA 0x696E +0xE8FB 0x68FC +0xE8FC 0x691F +0xE8FD 0x6920 +0xE8FE 0x68F9 +0xE9A1 0x6924 +0xE9A2 0x68F0 +0xE9A3 0x690B +0xE9A4 0x6901 +0xE9A5 0x6957 +0xE9A6 0x68E3 +0xE9A7 0x6910 +0xE9A8 0x6971 +0xE9A9 0x6939 +0xE9AA 0x6960 +0xE9AB 0x6942 +0xE9AC 0x695D +0xE9AD 0x6984 +0xE9AE 0x696B +0xE9AF 0x6980 +0xE9B0 0x6998 +0xE9B1 0x6978 +0xE9B2 0x6934 +0xE9B3 0x69CC +0xE9B4 0x6987 +0xE9B5 0x6988 +0xE9B6 0x69CE +0xE9B7 0x6989 +0xE9B8 0x6966 +0xE9B9 0x6963 +0xE9BA 0x6979 +0xE9BB 0x699B +0xE9BC 0x69A7 +0xE9BD 0x69BB +0xE9BE 0x69AB +0xE9BF 0x69AD +0xE9C0 0x69D4 +0xE9C1 0x69B1 +0xE9C2 0x69C1 +0xE9C3 0x69CA +0xE9C4 0x69DF +0xE9C5 0x6995 +0xE9C6 0x69E0 +0xE9C7 0x698D +0xE9C8 0x69FF +0xE9C9 0x6A2F +0xE9CA 0x69ED +0xE9CB 0x6A17 +0xE9CC 0x6A18 +0xE9CD 0x6A65 +0xE9CE 0x69F2 +0xE9CF 0x6A44 +0xE9D0 0x6A3E +0xE9D1 0x6AA0 +0xE9D2 0x6A50 +0xE9D3 0x6A5B +0xE9D4 0x6A35 +0xE9D5 0x6A8E +0xE9D6 0x6A79 +0xE9D7 0x6A3D +0xE9D8 0x6A28 +0xE9D9 0x6A58 +0xE9DA 0x6A7C +0xE9DB 0x6A91 +0xE9DC 0x6A90 +0xE9DD 0x6AA9 +0xE9DE 0x6A97 +0xE9DF 0x6AAB +0xE9E0 0x7337 +0xE9E1 0x7352 +0xE9E2 0x6B81 +0xE9E3 0x6B82 +0xE9E4 0x6B87 +0xE9E5 0x6B84 +0xE9E6 0x6B92 +0xE9E7 0x6B93 +0xE9E8 0x6B8D +0xE9E9 0x6B9A +0xE9EA 0x6B9B +0xE9EB 0x6BA1 +0xE9EC 0x6BAA +0xE9ED 0x8F6B +0xE9EE 0x8F6D +0xE9EF 0x8F71 +0xE9F0 0x8F72 +0xE9F1 0x8F73 +0xE9F2 0x8F75 +0xE9F3 0x8F76 +0xE9F4 0x8F78 +0xE9F5 0x8F77 +0xE9F6 0x8F79 +0xE9F7 0x8F7A +0xE9F8 0x8F7C +0xE9F9 0x8F7E +0xE9FA 0x8F81 +0xE9FB 0x8F82 +0xE9FC 0x8F84 +0xE9FD 0x8F87 +0xE9FE 0x8F8B +0xEAA1 0x8F8D +0xEAA2 0x8F8E +0xEAA3 0x8F8F +0xEAA4 0x8F98 +0xEAA5 0x8F9A +0xEAA6 0x8ECE +0xEAA7 0x620B +0xEAA8 0x6217 +0xEAA9 0x621B +0xEAAA 0x621F +0xEAAB 0x6222 +0xEAAC 0x6221 +0xEAAD 0x6225 +0xEAAE 0x6224 +0xEAAF 0x622C +0xEAB0 0x81E7 +0xEAB1 0x74EF +0xEAB2 0x74F4 +0xEAB3 0x74FF +0xEAB4 0x750F +0xEAB5 0x7511 +0xEAB6 0x7513 +0xEAB7 0x6534 +0xEAB8 0x65EE +0xEAB9 0x65EF +0xEABA 0x65F0 +0xEABB 0x660A +0xEABC 0x6619 +0xEABD 0x6772 +0xEABE 0x6603 +0xEABF 0x6615 +0xEAC0 0x6600 +0xEAC1 0x7085 +0xEAC2 0x66F7 +0xEAC3 0x661D +0xEAC4 0x6634 +0xEAC5 0x6631 +0xEAC6 0x6636 +0xEAC7 0x6635 +0xEAC8 0x8006 +0xEAC9 0x665F +0xEACA 0x6654 +0xEACB 0x6641 +0xEACC 0x664F +0xEACD 0x6656 +0xEACE 0x6661 +0xEACF 0x6657 +0xEAD0 0x6677 +0xEAD1 0x6684 +0xEAD2 0x668C +0xEAD3 0x66A7 +0xEAD4 0x669D +0xEAD5 0x66BE +0xEAD6 0x66DB +0xEAD7 0x66DC +0xEAD8 0x66E6 +0xEAD9 0x66E9 +0xEADA 0x8D32 +0xEADB 0x8D33 +0xEADC 0x8D36 +0xEADD 0x8D3B +0xEADE 0x8D3D +0xEADF 0x8D40 +0xEAE0 0x8D45 +0xEAE1 0x8D46 +0xEAE2 0x8D48 +0xEAE3 0x8D49 +0xEAE4 0x8D47 +0xEAE5 0x8D4D +0xEAE6 0x8D55 +0xEAE7 0x8D59 +0xEAE8 0x89C7 +0xEAE9 0x89CA +0xEAEA 0x89CB +0xEAEB 0x89CC +0xEAEC 0x89CE +0xEAED 0x89CF +0xEAEE 0x89D0 +0xEAEF 0x89D1 +0xEAF0 0x726E +0xEAF1 0x729F +0xEAF2 0x725D +0xEAF3 0x7266 +0xEAF4 0x726F +0xEAF5 0x727E +0xEAF6 0x727F +0xEAF7 0x7284 +0xEAF8 0x728B +0xEAF9 0x728D +0xEAFA 0x728F +0xEAFB 0x7292 +0xEAFC 0x6308 +0xEAFD 0x6332 +0xEAFE 0x63B0 +0xEBA1 0x643F +0xEBA2 0x64D8 +0xEBA3 0x8004 +0xEBA4 0x6BEA +0xEBA5 0x6BF3 +0xEBA6 0x6BFD +0xEBA7 0x6BF5 +0xEBA8 0x6BF9 +0xEBA9 0x6C05 +0xEBAA 0x6C07 +0xEBAB 0x6C06 +0xEBAC 0x6C0D +0xEBAD 0x6C15 +0xEBAE 0x6C18 +0xEBAF 0x6C19 +0xEBB0 0x6C1A +0xEBB1 0x6C21 +0xEBB2 0x6C29 +0xEBB3 0x6C24 +0xEBB4 0x6C2A +0xEBB5 0x6C32 +0xEBB6 0x6535 +0xEBB7 0x6555 +0xEBB8 0x656B +0xEBB9 0x724D +0xEBBA 0x7252 +0xEBBB 0x7256 +0xEBBC 0x7230 +0xEBBD 0x8662 +0xEBBE 0x5216 +0xEBBF 0x809F +0xEBC0 0x809C +0xEBC1 0x8093 +0xEBC2 0x80BC +0xEBC3 0x670A +0xEBC4 0x80BD +0xEBC5 0x80B1 +0xEBC6 0x80AB +0xEBC7 0x80AD +0xEBC8 0x80B4 +0xEBC9 0x80B7 +0xEBCA 0x80E7 +0xEBCB 0x80E8 +0xEBCC 0x80E9 +0xEBCD 0x80EA +0xEBCE 0x80DB +0xEBCF 0x80C2 +0xEBD0 0x80C4 +0xEBD1 0x80D9 +0xEBD2 0x80CD +0xEBD3 0x80D7 +0xEBD4 0x6710 +0xEBD5 0x80DD +0xEBD6 0x80EB +0xEBD7 0x80F1 +0xEBD8 0x80F4 +0xEBD9 0x80ED +0xEBDA 0x810D +0xEBDB 0x810E +0xEBDC 0x80F2 +0xEBDD 0x80FC +0xEBDE 0x6715 +0xEBDF 0x8112 +0xEBE0 0x8C5A +0xEBE1 0x8136 +0xEBE2 0x811E +0xEBE3 0x812C +0xEBE4 0x8118 +0xEBE5 0x8132 +0xEBE6 0x8148 +0xEBE7 0x814C +0xEBE8 0x8153 +0xEBE9 0x8174 +0xEBEA 0x8159 +0xEBEB 0x815A +0xEBEC 0x8171 +0xEBED 0x8160 +0xEBEE 0x8169 +0xEBEF 0x817C +0xEBF0 0x817D +0xEBF1 0x816D +0xEBF2 0x8167 +0xEBF3 0x584D +0xEBF4 0x5AB5 +0xEBF5 0x8188 +0xEBF6 0x8182 +0xEBF7 0x8191 +0xEBF8 0x6ED5 +0xEBF9 0x81A3 +0xEBFA 0x81AA +0xEBFB 0x81CC +0xEBFC 0x6726 +0xEBFD 0x81CA +0xEBFE 0x81BB +0xECA1 0x81C1 +0xECA2 0x81A6 +0xECA3 0x6B24 +0xECA4 0x6B37 +0xECA5 0x6B39 +0xECA6 0x6B43 +0xECA7 0x6B46 +0xECA8 0x6B59 +0xECA9 0x98D1 +0xECAA 0x98D2 +0xECAB 0x98D3 +0xECAC 0x98D5 +0xECAD 0x98D9 +0xECAE 0x98DA +0xECAF 0x6BB3 +0xECB0 0x5F40 +0xECB1 0x6BC2 +0xECB2 0x89F3 +0xECB3 0x6590 +0xECB4 0x9F51 +0xECB5 0x6593 +0xECB6 0x65BC +0xECB7 0x65C6 +0xECB8 0x65C4 +0xECB9 0x65C3 +0xECBA 0x65CC +0xECBB 0x65CE +0xECBC 0x65D2 +0xECBD 0x65D6 +0xECBE 0x7080 +0xECBF 0x709C +0xECC0 0x7096 +0xECC1 0x709D +0xECC2 0x70BB +0xECC3 0x70C0 +0xECC4 0x70B7 +0xECC5 0x70AB +0xECC6 0x70B1 +0xECC7 0x70E8 +0xECC8 0x70CA +0xECC9 0x7110 +0xECCA 0x7113 +0xECCB 0x7116 +0xECCC 0x712F +0xECCD 0x7131 +0xECCE 0x7173 +0xECCF 0x715C +0xECD0 0x7168 +0xECD1 0x7145 +0xECD2 0x7172 +0xECD3 0x714A +0xECD4 0x7178 +0xECD5 0x717A +0xECD6 0x7198 +0xECD7 0x71B3 +0xECD8 0x71B5 +0xECD9 0x71A8 +0xECDA 0x71A0 +0xECDB 0x71E0 +0xECDC 0x71D4 +0xECDD 0x71E7 +0xECDE 0x71F9 +0xECDF 0x721D +0xECE0 0x7228 +0xECE1 0x706C +0xECE2 0x7118 +0xECE3 0x7166 +0xECE4 0x71B9 +0xECE5 0x623E +0xECE6 0x623D +0xECE7 0x6243 +0xECE8 0x6248 +0xECE9 0x6249 +0xECEA 0x793B +0xECEB 0x7940 +0xECEC 0x7946 +0xECED 0x7949 +0xECEE 0x795B +0xECEF 0x795C +0xECF0 0x7953 +0xECF1 0x795A +0xECF2 0x7962 +0xECF3 0x7957 +0xECF4 0x7960 +0xECF5 0x796F +0xECF6 0x7967 +0xECF7 0x797A +0xECF8 0x7985 +0xECF9 0x798A +0xECFA 0x799A +0xECFB 0x79A7 +0xECFC 0x79B3 +0xECFD 0x5FD1 +0xECFE 0x5FD0 +0xEDA1 0x603C +0xEDA2 0x605D +0xEDA3 0x605A +0xEDA4 0x6067 +0xEDA5 0x6041 +0xEDA6 0x6059 +0xEDA7 0x6063 +0xEDA8 0x60AB +0xEDA9 0x6106 +0xEDAA 0x610D +0xEDAB 0x615D +0xEDAC 0x61A9 +0xEDAD 0x619D +0xEDAE 0x61CB +0xEDAF 0x61D1 +0xEDB0 0x6206 +0xEDB1 0x8080 +0xEDB2 0x807F +0xEDB3 0x6C93 +0xEDB4 0x6CF6 +0xEDB5 0x6DFC +0xEDB6 0x77F6 +0xEDB7 0x77F8 +0xEDB8 0x7800 +0xEDB9 0x7809 +0xEDBA 0x7817 +0xEDBB 0x7818 +0xEDBC 0x7811 +0xEDBD 0x65AB +0xEDBE 0x782D +0xEDBF 0x781C +0xEDC0 0x781D +0xEDC1 0x7839 +0xEDC2 0x783A +0xEDC3 0x783B +0xEDC4 0x781F +0xEDC5 0x783C +0xEDC6 0x7825 +0xEDC7 0x782C +0xEDC8 0x7823 +0xEDC9 0x7829 +0xEDCA 0x784E +0xEDCB 0x786D +0xEDCC 0x7856 +0xEDCD 0x7857 +0xEDCE 0x7826 +0xEDCF 0x7850 +0xEDD0 0x7847 +0xEDD1 0x784C +0xEDD2 0x786A +0xEDD3 0x789B +0xEDD4 0x7893 +0xEDD5 0x789A +0xEDD6 0x7887 +0xEDD7 0x789C +0xEDD8 0x78A1 +0xEDD9 0x78A3 +0xEDDA 0x78B2 +0xEDDB 0x78B9 +0xEDDC 0x78A5 +0xEDDD 0x78D4 +0xEDDE 0x78D9 +0xEDDF 0x78C9 +0xEDE0 0x78EC +0xEDE1 0x78F2 +0xEDE2 0x7905 +0xEDE3 0x78F4 +0xEDE4 0x7913 +0xEDE5 0x7924 +0xEDE6 0x791E +0xEDE7 0x7934 +0xEDE8 0x9F9B +0xEDE9 0x9EF9 +0xEDEA 0x9EFB +0xEDEB 0x9EFC +0xEDEC 0x76F1 +0xEDED 0x7704 +0xEDEE 0x770D +0xEDEF 0x76F9 +0xEDF0 0x7707 +0xEDF1 0x7708 +0xEDF2 0x771A +0xEDF3 0x7722 +0xEDF4 0x7719 +0xEDF5 0x772D +0xEDF6 0x7726 +0xEDF7 0x7735 +0xEDF8 0x7738 +0xEDF9 0x7750 +0xEDFA 0x7751 +0xEDFB 0x7747 +0xEDFC 0x7743 +0xEDFD 0x775A +0xEDFE 0x7768 +0xEEA1 0x7762 +0xEEA2 0x7765 +0xEEA3 0x777F +0xEEA4 0x778D +0xEEA5 0x777D +0xEEA6 0x7780 +0xEEA7 0x778C +0xEEA8 0x7791 +0xEEA9 0x779F +0xEEAA 0x77A0 +0xEEAB 0x77B0 +0xEEAC 0x77B5 +0xEEAD 0x77BD +0xEEAE 0x753A +0xEEAF 0x7540 +0xEEB0 0x754E +0xEEB1 0x754B +0xEEB2 0x7548 +0xEEB3 0x755B +0xEEB4 0x7572 +0xEEB5 0x7579 +0xEEB6 0x7583 +0xEEB7 0x7F58 +0xEEB8 0x7F61 +0xEEB9 0x7F5F +0xEEBA 0x8A48 +0xEEBB 0x7F68 +0xEEBC 0x7F74 +0xEEBD 0x7F71 +0xEEBE 0x7F79 +0xEEBF 0x7F81 +0xEEC0 0x7F7E +0xEEC1 0x76CD +0xEEC2 0x76E5 +0xEEC3 0x8832 +0xEEC4 0x9485 +0xEEC5 0x9486 +0xEEC6 0x9487 +0xEEC7 0x948B +0xEEC8 0x948A +0xEEC9 0x948C +0xEECA 0x948D +0xEECB 0x948F +0xEECC 0x9490 +0xEECD 0x9494 +0xEECE 0x9497 +0xEECF 0x9495 +0xEED0 0x949A +0xEED1 0x949B +0xEED2 0x949C +0xEED3 0x94A3 +0xEED4 0x94A4 +0xEED5 0x94AB +0xEED6 0x94AA +0xEED7 0x94AD +0xEED8 0x94AC +0xEED9 0x94AF +0xEEDA 0x94B0 +0xEEDB 0x94B2 +0xEEDC 0x94B4 +0xEEDD 0x94B6 +0xEEDE 0x94B7 +0xEEDF 0x94B8 +0xEEE0 0x94B9 +0xEEE1 0x94BA +0xEEE2 0x94BC +0xEEE3 0x94BD +0xEEE4 0x94BF +0xEEE5 0x94C4 +0xEEE6 0x94C8 +0xEEE7 0x94C9 +0xEEE8 0x94CA +0xEEE9 0x94CB +0xEEEA 0x94CC +0xEEEB 0x94CD +0xEEEC 0x94CE +0xEEED 0x94D0 +0xEEEE 0x94D1 +0xEEEF 0x94D2 +0xEEF0 0x94D5 +0xEEF1 0x94D6 +0xEEF2 0x94D7 +0xEEF3 0x94D9 +0xEEF4 0x94D8 +0xEEF5 0x94DB +0xEEF6 0x94DE +0xEEF7 0x94DF +0xEEF8 0x94E0 +0xEEF9 0x94E2 +0xEEFA 0x94E4 +0xEEFB 0x94E5 +0xEEFC 0x94E7 +0xEEFD 0x94E8 +0xEEFE 0x94EA +0xEFA1 0x94E9 +0xEFA2 0x94EB +0xEFA3 0x94EE +0xEFA4 0x94EF +0xEFA5 0x94F3 +0xEFA6 0x94F4 +0xEFA7 0x94F5 +0xEFA8 0x94F7 +0xEFA9 0x94F9 +0xEFAA 0x94FC +0xEFAB 0x94FD +0xEFAC 0x94FF +0xEFAD 0x9503 +0xEFAE 0x9502 +0xEFAF 0x9506 +0xEFB0 0x9507 +0xEFB1 0x9509 +0xEFB2 0x950A +0xEFB3 0x950D +0xEFB4 0x950E +0xEFB5 0x950F +0xEFB6 0x9512 +0xEFB7 0x9513 +0xEFB8 0x9514 +0xEFB9 0x9515 +0xEFBA 0x9516 +0xEFBB 0x9518 +0xEFBC 0x951B +0xEFBD 0x951D +0xEFBE 0x951E +0xEFBF 0x951F +0xEFC0 0x9522 +0xEFC1 0x952A +0xEFC2 0x952B +0xEFC3 0x9529 +0xEFC4 0x952C +0xEFC5 0x9531 +0xEFC6 0x9532 +0xEFC7 0x9534 +0xEFC8 0x9536 +0xEFC9 0x9537 +0xEFCA 0x9538 +0xEFCB 0x953C +0xEFCC 0x953E +0xEFCD 0x953F +0xEFCE 0x9542 +0xEFCF 0x9535 +0xEFD0 0x9544 +0xEFD1 0x9545 +0xEFD2 0x9546 +0xEFD3 0x9549 +0xEFD4 0x954C +0xEFD5 0x954E +0xEFD6 0x954F +0xEFD7 0x9552 +0xEFD8 0x9553 +0xEFD9 0x9554 +0xEFDA 0x9556 +0xEFDB 0x9557 +0xEFDC 0x9558 +0xEFDD 0x9559 +0xEFDE 0x955B +0xEFDF 0x955E +0xEFE0 0x955F +0xEFE1 0x955D +0xEFE2 0x9561 +0xEFE3 0x9562 +0xEFE4 0x9564 +0xEFE5 0x9565 +0xEFE6 0x9566 +0xEFE7 0x9567 +0xEFE8 0x9568 +0xEFE9 0x9569 +0xEFEA 0x956A +0xEFEB 0x956B +0xEFEC 0x956C +0xEFED 0x956F +0xEFEE 0x9571 +0xEFEF 0x9572 +0xEFF0 0x9573 +0xEFF1 0x953A +0xEFF2 0x77E7 +0xEFF3 0x77EC +0xEFF4 0x96C9 +0xEFF5 0x79D5 +0xEFF6 0x79ED +0xEFF7 0x79E3 +0xEFF8 0x79EB +0xEFF9 0x7A06 +0xEFFA 0x5D47 +0xEFFB 0x7A03 +0xEFFC 0x7A02 +0xEFFD 0x7A1E +0xEFFE 0x7A14 +0xF0A1 0x7A39 +0xF0A2 0x7A37 +0xF0A3 0x7A51 +0xF0A4 0x9ECF +0xF0A5 0x99A5 +0xF0A6 0x7A70 +0xF0A7 0x7688 +0xF0A8 0x768E +0xF0A9 0x7693 +0xF0AA 0x7699 +0xF0AB 0x76A4 +0xF0AC 0x74DE +0xF0AD 0x74E0 +0xF0AE 0x752C +0xF0AF 0x9E20 +0xF0B0 0x9E22 +0xF0B1 0x9E28 +0xF0B2 0x9E29 +0xF0B3 0x9E2A +0xF0B4 0x9E2B +0xF0B5 0x9E2C +0xF0B6 0x9E32 +0xF0B7 0x9E31 +0xF0B8 0x9E36 +0xF0B9 0x9E38 +0xF0BA 0x9E37 +0xF0BB 0x9E39 +0xF0BC 0x9E3A +0xF0BD 0x9E3E +0xF0BE 0x9E41 +0xF0BF 0x9E42 +0xF0C0 0x9E44 +0xF0C1 0x9E46 +0xF0C2 0x9E47 +0xF0C3 0x9E48 +0xF0C4 0x9E49 +0xF0C5 0x9E4B +0xF0C6 0x9E4C +0xF0C7 0x9E4E +0xF0C8 0x9E51 +0xF0C9 0x9E55 +0xF0CA 0x9E57 +0xF0CB 0x9E5A +0xF0CC 0x9E5B +0xF0CD 0x9E5C +0xF0CE 0x9E5E +0xF0CF 0x9E63 +0xF0D0 0x9E66 +0xF0D1 0x9E67 +0xF0D2 0x9E68 +0xF0D3 0x9E69 +0xF0D4 0x9E6A +0xF0D5 0x9E6B +0xF0D6 0x9E6C +0xF0D7 0x9E71 +0xF0D8 0x9E6D +0xF0D9 0x9E73 +0xF0DA 0x7592 +0xF0DB 0x7594 +0xF0DC 0x7596 +0xF0DD 0x75A0 +0xF0DE 0x759D +0xF0DF 0x75AC +0xF0E0 0x75A3 +0xF0E1 0x75B3 +0xF0E2 0x75B4 +0xF0E3 0x75B8 +0xF0E4 0x75C4 +0xF0E5 0x75B1 +0xF0E6 0x75B0 +0xF0E7 0x75C3 +0xF0E8 0x75C2 +0xF0E9 0x75D6 +0xF0EA 0x75CD +0xF0EB 0x75E3 +0xF0EC 0x75E8 +0xF0ED 0x75E6 +0xF0EE 0x75E4 +0xF0EF 0x75EB +0xF0F0 0x75E7 +0xF0F1 0x7603 +0xF0F2 0x75F1 +0xF0F3 0x75FC +0xF0F4 0x75FF +0xF0F5 0x7610 +0xF0F6 0x7600 +0xF0F7 0x7605 +0xF0F8 0x760C +0xF0F9 0x7617 +0xF0FA 0x760A +0xF0FB 0x7625 +0xF0FC 0x7618 +0xF0FD 0x7615 +0xF0FE 0x7619 +0xF1A1 0x761B +0xF1A2 0x763C +0xF1A3 0x7622 +0xF1A4 0x7620 +0xF1A5 0x7640 +0xF1A6 0x762D +0xF1A7 0x7630 +0xF1A8 0x763F +0xF1A9 0x7635 +0xF1AA 0x7643 +0xF1AB 0x763E +0xF1AC 0x7633 +0xF1AD 0x764D +0xF1AE 0x765E +0xF1AF 0x7654 +0xF1B0 0x765C +0xF1B1 0x7656 +0xF1B2 0x766B +0xF1B3 0x766F +0xF1B4 0x7FCA +0xF1B5 0x7AE6 +0xF1B6 0x7A78 +0xF1B7 0x7A79 +0xF1B8 0x7A80 +0xF1B9 0x7A86 +0xF1BA 0x7A88 +0xF1BB 0x7A95 +0xF1BC 0x7AA6 +0xF1BD 0x7AA0 +0xF1BE 0x7AAC +0xF1BF 0x7AA8 +0xF1C0 0x7AAD +0xF1C1 0x7AB3 +0xF1C2 0x8864 +0xF1C3 0x8869 +0xF1C4 0x8872 +0xF1C5 0x887D +0xF1C6 0x887F +0xF1C7 0x8882 +0xF1C8 0x88A2 +0xF1C9 0x88C6 +0xF1CA 0x88B7 +0xF1CB 0x88BC +0xF1CC 0x88C9 +0xF1CD 0x88E2 +0xF1CE 0x88CE +0xF1CF 0x88E3 +0xF1D0 0x88E5 +0xF1D1 0x88F1 +0xF1D2 0x891A +0xF1D3 0x88FC +0xF1D4 0x88E8 +0xF1D5 0x88FE +0xF1D6 0x88F0 +0xF1D7 0x8921 +0xF1D8 0x8919 +0xF1D9 0x8913 +0xF1DA 0x891B +0xF1DB 0x890A +0xF1DC 0x8934 +0xF1DD 0x892B +0xF1DE 0x8936 +0xF1DF 0x8941 +0xF1E0 0x8966 +0xF1E1 0x897B +0xF1E2 0x758B +0xF1E3 0x80E5 +0xF1E4 0x76B2 +0xF1E5 0x76B4 +0xF1E6 0x77DC +0xF1E7 0x8012 +0xF1E8 0x8014 +0xF1E9 0x8016 +0xF1EA 0x801C +0xF1EB 0x8020 +0xF1EC 0x8022 +0xF1ED 0x8025 +0xF1EE 0x8026 +0xF1EF 0x8027 +0xF1F0 0x8029 +0xF1F1 0x8028 +0xF1F2 0x8031 +0xF1F3 0x800B +0xF1F4 0x8035 +0xF1F5 0x8043 +0xF1F6 0x8046 +0xF1F7 0x804D +0xF1F8 0x8052 +0xF1F9 0x8069 +0xF1FA 0x8071 +0xF1FB 0x8983 +0xF1FC 0x9878 +0xF1FD 0x9880 +0xF1FE 0x9883 +0xF2A1 0x9889 +0xF2A2 0x988C +0xF2A3 0x988D +0xF2A4 0x988F +0xF2A5 0x9894 +0xF2A6 0x989A +0xF2A7 0x989B +0xF2A8 0x989E +0xF2A9 0x989F +0xF2AA 0x98A1 +0xF2AB 0x98A2 +0xF2AC 0x98A5 +0xF2AD 0x98A6 +0xF2AE 0x864D +0xF2AF 0x8654 +0xF2B0 0x866C +0xF2B1 0x866E +0xF2B2 0x867F +0xF2B3 0x867A +0xF2B4 0x867C +0xF2B5 0x867B +0xF2B6 0x86A8 +0xF2B7 0x868D +0xF2B8 0x868B +0xF2B9 0x86AC +0xF2BA 0x869D +0xF2BB 0x86A7 +0xF2BC 0x86A3 +0xF2BD 0x86AA +0xF2BE 0x8693 +0xF2BF 0x86A9 +0xF2C0 0x86B6 +0xF2C1 0x86C4 +0xF2C2 0x86B5 +0xF2C3 0x86CE +0xF2C4 0x86B0 +0xF2C5 0x86BA +0xF2C6 0x86B1 +0xF2C7 0x86AF +0xF2C8 0x86C9 +0xF2C9 0x86CF +0xF2CA 0x86B4 +0xF2CB 0x86E9 +0xF2CC 0x86F1 +0xF2CD 0x86F2 +0xF2CE 0x86ED +0xF2CF 0x86F3 +0xF2D0 0x86D0 +0xF2D1 0x8713 +0xF2D2 0x86DE +0xF2D3 0x86F4 +0xF2D4 0x86DF +0xF2D5 0x86D8 +0xF2D6 0x86D1 +0xF2D7 0x8703 +0xF2D8 0x8707 +0xF2D9 0x86F8 +0xF2DA 0x8708 +0xF2DB 0x870A +0xF2DC 0x870D +0xF2DD 0x8709 +0xF2DE 0x8723 +0xF2DF 0x873B +0xF2E0 0x871E +0xF2E1 0x8725 +0xF2E2 0x872E +0xF2E3 0x871A +0xF2E4 0x873E +0xF2E5 0x8748 +0xF2E6 0x8734 +0xF2E7 0x8731 +0xF2E8 0x8729 +0xF2E9 0x8737 +0xF2EA 0x873F +0xF2EB 0x8782 +0xF2EC 0x8722 +0xF2ED 0x877D +0xF2EE 0x877E +0xF2EF 0x877B +0xF2F0 0x8760 +0xF2F1 0x8770 +0xF2F2 0x874C +0xF2F3 0x876E +0xF2F4 0x878B +0xF2F5 0x8753 +0xF2F6 0x8763 +0xF2F7 0x877C +0xF2F8 0x8764 +0xF2F9 0x8759 +0xF2FA 0x8765 +0xF2FB 0x8793 +0xF2FC 0x87AF +0xF2FD 0x87A8 +0xF2FE 0x87D2 +0xF3A1 0x87C6 +0xF3A2 0x8788 +0xF3A3 0x8785 +0xF3A4 0x87AD +0xF3A5 0x8797 +0xF3A6 0x8783 +0xF3A7 0x87AB +0xF3A8 0x87E5 +0xF3A9 0x87AC +0xF3AA 0x87B5 +0xF3AB 0x87B3 +0xF3AC 0x87CB +0xF3AD 0x87D3 +0xF3AE 0x87BD +0xF3AF 0x87D1 +0xF3B0 0x87C0 +0xF3B1 0x87CA +0xF3B2 0x87DB +0xF3B3 0x87EA +0xF3B4 0x87E0 +0xF3B5 0x87EE +0xF3B6 0x8816 +0xF3B7 0x8813 +0xF3B8 0x87FE +0xF3B9 0x880A +0xF3BA 0x881B +0xF3BB 0x8821 +0xF3BC 0x8839 +0xF3BD 0x883C +0xF3BE 0x7F36 +0xF3BF 0x7F42 +0xF3C0 0x7F44 +0xF3C1 0x7F45 +0xF3C2 0x8210 +0xF3C3 0x7AFA +0xF3C4 0x7AFD +0xF3C5 0x7B08 +0xF3C6 0x7B03 +0xF3C7 0x7B04 +0xF3C8 0x7B15 +0xF3C9 0x7B0A +0xF3CA 0x7B2B +0xF3CB 0x7B0F +0xF3CC 0x7B47 +0xF3CD 0x7B38 +0xF3CE 0x7B2A +0xF3CF 0x7B19 +0xF3D0 0x7B2E +0xF3D1 0x7B31 +0xF3D2 0x7B20 +0xF3D3 0x7B25 +0xF3D4 0x7B24 +0xF3D5 0x7B33 +0xF3D6 0x7B3E +0xF3D7 0x7B1E +0xF3D8 0x7B58 +0xF3D9 0x7B5A +0xF3DA 0x7B45 +0xF3DB 0x7B75 +0xF3DC 0x7B4C +0xF3DD 0x7B5D +0xF3DE 0x7B60 +0xF3DF 0x7B6E +0xF3E0 0x7B7B +0xF3E1 0x7B62 +0xF3E2 0x7B72 +0xF3E3 0x7B71 +0xF3E4 0x7B90 +0xF3E5 0x7BA6 +0xF3E6 0x7BA7 +0xF3E7 0x7BB8 +0xF3E8 0x7BAC +0xF3E9 0x7B9D +0xF3EA 0x7BA8 +0xF3EB 0x7B85 +0xF3EC 0x7BAA +0xF3ED 0x7B9C +0xF3EE 0x7BA2 +0xF3EF 0x7BAB +0xF3F0 0x7BB4 +0xF3F1 0x7BD1 +0xF3F2 0x7BC1 +0xF3F3 0x7BCC +0xF3F4 0x7BDD +0xF3F5 0x7BDA +0xF3F6 0x7BE5 +0xF3F7 0x7BE6 +0xF3F8 0x7BEA +0xF3F9 0x7C0C +0xF3FA 0x7BFE +0xF3FB 0x7BFC +0xF3FC 0x7C0F +0xF3FD 0x7C16 +0xF3FE 0x7C0B +0xF4A1 0x7C1F +0xF4A2 0x7C2A +0xF4A3 0x7C26 +0xF4A4 0x7C38 +0xF4A5 0x7C41 +0xF4A6 0x7C40 +0xF4A7 0x81FE +0xF4A8 0x8201 +0xF4A9 0x8202 +0xF4AA 0x8204 +0xF4AB 0x81EC +0xF4AC 0x8844 +0xF4AD 0x8221 +0xF4AE 0x8222 +0xF4AF 0x8223 +0xF4B0 0x822D +0xF4B1 0x822F +0xF4B2 0x8228 +0xF4B3 0x822B +0xF4B4 0x8238 +0xF4B5 0x823B +0xF4B6 0x8233 +0xF4B7 0x8234 +0xF4B8 0x823E +0xF4B9 0x8244 +0xF4BA 0x8249 +0xF4BB 0x824B +0xF4BC 0x824F +0xF4BD 0x825A +0xF4BE 0x825F +0xF4BF 0x8268 +0xF4C0 0x887E +0xF4C1 0x8885 +0xF4C2 0x8888 +0xF4C3 0x88D8 +0xF4C4 0x88DF +0xF4C5 0x895E +0xF4C6 0x7F9D +0xF4C7 0x7F9F +0xF4C8 0x7FA7 +0xF4C9 0x7FAF +0xF4CA 0x7FB0 +0xF4CB 0x7FB2 +0xF4CC 0x7C7C +0xF4CD 0x6549 +0xF4CE 0x7C91 +0xF4CF 0x7C9D +0xF4D0 0x7C9C +0xF4D1 0x7C9E +0xF4D2 0x7CA2 +0xF4D3 0x7CB2 +0xF4D4 0x7CBC +0xF4D5 0x7CBD +0xF4D6 0x7CC1 +0xF4D7 0x7CC7 +0xF4D8 0x7CCC +0xF4D9 0x7CCD +0xF4DA 0x7CC8 +0xF4DB 0x7CC5 +0xF4DC 0x7CD7 +0xF4DD 0x7CE8 +0xF4DE 0x826E +0xF4DF 0x66A8 +0xF4E0 0x7FBF +0xF4E1 0x7FCE +0xF4E2 0x7FD5 +0xF4E3 0x7FE5 +0xF4E4 0x7FE1 +0xF4E5 0x7FE6 +0xF4E6 0x7FE9 +0xF4E7 0x7FEE +0xF4E8 0x7FF3 +0xF4E9 0x7CF8 +0xF4EA 0x7D77 +0xF4EB 0x7DA6 +0xF4EC 0x7DAE +0xF4ED 0x7E47 +0xF4EE 0x7E9B +0xF4EF 0x9EB8 +0xF4F0 0x9EB4 +0xF4F1 0x8D73 +0xF4F2 0x8D84 +0xF4F3 0x8D94 +0xF4F4 0x8D91 +0xF4F5 0x8DB1 +0xF4F6 0x8D67 +0xF4F7 0x8D6D +0xF4F8 0x8C47 +0xF4F9 0x8C49 +0xF4FA 0x914A +0xF4FB 0x9150 +0xF4FC 0x914E +0xF4FD 0x914F +0xF4FE 0x9164 +0xF5A1 0x9162 +0xF5A2 0x9161 +0xF5A3 0x9170 +0xF5A4 0x9169 +0xF5A5 0x916F +0xF5A6 0x917D +0xF5A7 0x917E +0xF5A8 0x9172 +0xF5A9 0x9174 +0xF5AA 0x9179 +0xF5AB 0x918C +0xF5AC 0x9185 +0xF5AD 0x9190 +0xF5AE 0x918D +0xF5AF 0x9191 +0xF5B0 0x91A2 +0xF5B1 0x91A3 +0xF5B2 0x91AA +0xF5B3 0x91AD +0xF5B4 0x91AE +0xF5B5 0x91AF +0xF5B6 0x91B5 +0xF5B7 0x91B4 +0xF5B8 0x91BA +0xF5B9 0x8C55 +0xF5BA 0x9E7E +0xF5BB 0x8DB8 +0xF5BC 0x8DEB +0xF5BD 0x8E05 +0xF5BE 0x8E59 +0xF5BF 0x8E69 +0xF5C0 0x8DB5 +0xF5C1 0x8DBF +0xF5C2 0x8DBC +0xF5C3 0x8DBA +0xF5C4 0x8DC4 +0xF5C5 0x8DD6 +0xF5C6 0x8DD7 +0xF5C7 0x8DDA +0xF5C8 0x8DDE +0xF5C9 0x8DCE +0xF5CA 0x8DCF +0xF5CB 0x8DDB +0xF5CC 0x8DC6 +0xF5CD 0x8DEC +0xF5CE 0x8DF7 +0xF5CF 0x8DF8 +0xF5D0 0x8DE3 +0xF5D1 0x8DF9 +0xF5D2 0x8DFB +0xF5D3 0x8DE4 +0xF5D4 0x8E09 +0xF5D5 0x8DFD +0xF5D6 0x8E14 +0xF5D7 0x8E1D +0xF5D8 0x8E1F +0xF5D9 0x8E2C +0xF5DA 0x8E2E +0xF5DB 0x8E23 +0xF5DC 0x8E2F +0xF5DD 0x8E3A +0xF5DE 0x8E40 +0xF5DF 0x8E39 +0xF5E0 0x8E35 +0xF5E1 0x8E3D +0xF5E2 0x8E31 +0xF5E3 0x8E49 +0xF5E4 0x8E41 +0xF5E5 0x8E42 +0xF5E6 0x8E51 +0xF5E7 0x8E52 +0xF5E8 0x8E4A +0xF5E9 0x8E70 +0xF5EA 0x8E76 +0xF5EB 0x8E7C +0xF5EC 0x8E6F +0xF5ED 0x8E74 +0xF5EE 0x8E85 +0xF5EF 0x8E8F +0xF5F0 0x8E94 +0xF5F1 0x8E90 +0xF5F2 0x8E9C +0xF5F3 0x8E9E +0xF5F4 0x8C78 +0xF5F5 0x8C82 +0xF5F6 0x8C8A +0xF5F7 0x8C85 +0xF5F8 0x8C98 +0xF5F9 0x8C94 +0xF5FA 0x659B +0xF5FB 0x89D6 +0xF5FC 0x89DE +0xF5FD 0x89DA +0xF5FE 0x89DC +0xF6A1 0x89E5 +0xF6A2 0x89EB +0xF6A3 0x89EF +0xF6A4 0x8A3E +0xF6A5 0x8B26 +0xF6A6 0x9753 +0xF6A7 0x96E9 +0xF6A8 0x96F3 +0xF6A9 0x96EF +0xF6AA 0x9706 +0xF6AB 0x9701 +0xF6AC 0x9708 +0xF6AD 0x970F +0xF6AE 0x970E +0xF6AF 0x972A +0xF6B0 0x972D +0xF6B1 0x9730 +0xF6B2 0x973E +0xF6B3 0x9F80 +0xF6B4 0x9F83 +0xF6B5 0x9F85 +0xF6B6 0x9F86 +0xF6B7 0x9F87 +0xF6B8 0x9F88 +0xF6B9 0x9F89 +0xF6BA 0x9F8A +0xF6BB 0x9F8C +0xF6BC 0x9EFE +0xF6BD 0x9F0B +0xF6BE 0x9F0D +0xF6BF 0x96B9 +0xF6C0 0x96BC +0xF6C1 0x96BD +0xF6C2 0x96CE +0xF6C3 0x96D2 +0xF6C4 0x77BF +0xF6C5 0x96E0 +0xF6C6 0x928E +0xF6C7 0x92AE +0xF6C8 0x92C8 +0xF6C9 0x933E +0xF6CA 0x936A +0xF6CB 0x93CA +0xF6CC 0x938F +0xF6CD 0x943E +0xF6CE 0x946B +0xF6CF 0x9C7F +0xF6D0 0x9C82 +0xF6D1 0x9C85 +0xF6D2 0x9C86 +0xF6D3 0x9C87 +0xF6D4 0x9C88 +0xF6D5 0x7A23 +0xF6D6 0x9C8B +0xF6D7 0x9C8E +0xF6D8 0x9C90 +0xF6D9 0x9C91 +0xF6DA 0x9C92 +0xF6DB 0x9C94 +0xF6DC 0x9C95 +0xF6DD 0x9C9A +0xF6DE 0x9C9B +0xF6DF 0x9C9E +0xF6E0 0x9C9F +0xF6E1 0x9CA0 +0xF6E2 0x9CA1 +0xF6E3 0x9CA2 +0xF6E4 0x9CA3 +0xF6E5 0x9CA5 +0xF6E6 0x9CA6 +0xF6E7 0x9CA7 +0xF6E8 0x9CA8 +0xF6E9 0x9CA9 +0xF6EA 0x9CAB +0xF6EB 0x9CAD +0xF6EC 0x9CAE +0xF6ED 0x9CB0 +0xF6EE 0x9CB1 +0xF6EF 0x9CB2 +0xF6F0 0x9CB3 +0xF6F1 0x9CB4 +0xF6F2 0x9CB5 +0xF6F3 0x9CB6 +0xF6F4 0x9CB7 +0xF6F5 0x9CBA +0xF6F6 0x9CBB +0xF6F7 0x9CBC +0xF6F8 0x9CBD +0xF6F9 0x9CC4 +0xF6FA 0x9CC5 +0xF6FB 0x9CC6 +0xF6FC 0x9CC7 +0xF6FD 0x9CCA +0xF6FE 0x9CCB +0xF7A1 0x9CCC +0xF7A2 0x9CCD +0xF7A3 0x9CCE +0xF7A4 0x9CCF +0xF7A5 0x9CD0 +0xF7A6 0x9CD3 +0xF7A7 0x9CD4 +0xF7A8 0x9CD5 +0xF7A9 0x9CD7 +0xF7AA 0x9CD8 +0xF7AB 0x9CD9 +0xF7AC 0x9CDC +0xF7AD 0x9CDD +0xF7AE 0x9CDF +0xF7AF 0x9CE2 +0xF7B0 0x977C +0xF7B1 0x9785 +0xF7B2 0x9791 +0xF7B3 0x9792 +0xF7B4 0x9794 +0xF7B5 0x97AF +0xF7B6 0x97AB +0xF7B7 0x97A3 +0xF7B8 0x97B2 +0xF7B9 0x97B4 +0xF7BA 0x9AB1 +0xF7BB 0x9AB0 +0xF7BC 0x9AB7 +0xF7BD 0x9E58 +0xF7BE 0x9AB6 +0xF7BF 0x9ABA +0xF7C0 0x9ABC +0xF7C1 0x9AC1 +0xF7C2 0x9AC0 +0xF7C3 0x9AC5 +0xF7C4 0x9AC2 +0xF7C5 0x9ACB +0xF7C6 0x9ACC +0xF7C7 0x9AD1 +0xF7C8 0x9B45 +0xF7C9 0x9B43 +0xF7CA 0x9B47 +0xF7CB 0x9B49 +0xF7CC 0x9B48 +0xF7CD 0x9B4D +0xF7CE 0x9B51 +0xF7CF 0x98E8 +0xF7D0 0x990D +0xF7D1 0x992E +0xF7D2 0x9955 +0xF7D3 0x9954 +0xF7D4 0x9ADF +0xF7D5 0x9AE1 +0xF7D6 0x9AE6 +0xF7D7 0x9AEF +0xF7D8 0x9AEB +0xF7D9 0x9AFB +0xF7DA 0x9AED +0xF7DB 0x9AF9 +0xF7DC 0x9B08 +0xF7DD 0x9B0F +0xF7DE 0x9B13 +0xF7DF 0x9B1F +0xF7E0 0x9B23 +0xF7E1 0x9EBD +0xF7E2 0x9EBE +0xF7E3 0x7E3B +0xF7E4 0x9E82 +0xF7E5 0x9E87 +0xF7E6 0x9E88 +0xF7E7 0x9E8B +0xF7E8 0x9E92 +0xF7E9 0x93D6 +0xF7EA 0x9E9D +0xF7EB 0x9E9F +0xF7EC 0x9EDB +0xF7ED 0x9EDC +0xF7EE 0x9EDD +0xF7EF 0x9EE0 +0xF7F0 0x9EDF +0xF7F1 0x9EE2 +0xF7F2 0x9EE9 +0xF7F3 0x9EE7 +0xF7F4 0x9EE5 +0xF7F5 0x9EEA +0xF7F6 0x9EEF +0xF7F7 0x9F22 +0xF7F8 0x9F2C +0xF7F9 0x9F2F +0xF7FA 0x9F39 +0xF7FB 0x9F37 +0xF7FC 0x9F3D +0xF7FD 0x9F3E +0xF7FE 0x9F44 diff --git a/3rdPartner/libiconv/tests/EUC-JISX0213.TXT b/3rdPartner/libiconv/tests/EUC-JISX0213.TXT new file mode 100644 index 0000000..236651f --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-JISX0213.TXT @@ -0,0 +1,11424 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8EA1 0xFF61 +0x8EA2 0xFF62 +0x8EA3 0xFF63 +0x8EA4 0xFF64 +0x8EA5 0xFF65 +0x8EA6 0xFF66 +0x8EA7 0xFF67 +0x8EA8 0xFF68 +0x8EA9 0xFF69 +0x8EAA 0xFF6A +0x8EAB 0xFF6B +0x8EAC 0xFF6C +0x8EAD 0xFF6D +0x8EAE 0xFF6E +0x8EAF 0xFF6F +0x8EB0 0xFF70 +0x8EB1 0xFF71 +0x8EB2 0xFF72 +0x8EB3 0xFF73 +0x8EB4 0xFF74 +0x8EB5 0xFF75 +0x8EB6 0xFF76 +0x8EB7 0xFF77 +0x8EB8 0xFF78 +0x8EB9 0xFF79 +0x8EBA 0xFF7A +0x8EBB 0xFF7B +0x8EBC 0xFF7C +0x8EBD 0xFF7D +0x8EBE 0xFF7E +0x8EBF 0xFF7F +0x8EC0 0xFF80 +0x8EC1 0xFF81 +0x8EC2 0xFF82 +0x8EC3 0xFF83 +0x8EC4 0xFF84 +0x8EC5 0xFF85 +0x8EC6 0xFF86 +0x8EC7 0xFF87 +0x8EC8 0xFF88 +0x8EC9 0xFF89 +0x8ECA 0xFF8A +0x8ECB 0xFF8B +0x8ECC 0xFF8C +0x8ECD 0xFF8D +0x8ECE 0xFF8E +0x8ECF 0xFF8F +0x8ED0 0xFF90 +0x8ED1 0xFF91 +0x8ED2 0xFF92 +0x8ED3 0xFF93 +0x8ED4 0xFF94 +0x8ED5 0xFF95 +0x8ED6 0xFF96 +0x8ED7 0xFF97 +0x8ED8 0xFF98 +0x8ED9 0xFF99 +0x8EDA 0xFF9A +0x8EDB 0xFF9B +0x8EDC 0xFF9C +0x8EDD 0xFF9D +0x8EDE 0xFF9E +0x8EDF 0xFF9F +0x8FA1A1 0x20089 +0x8FA1A2 0x4E02 +0x8FA1A3 0x4E0F +0x8FA1A4 0x4E12 +0x8FA1A5 0x4E29 +0x8FA1A6 0x4E2B +0x8FA1A7 0x4E2E +0x8FA1A8 0x4E40 +0x8FA1A9 0x4E47 +0x8FA1AA 0x4E48 +0x8FA1AB 0x200A2 +0x8FA1AC 0x4E51 +0x8FA1AD 0x3406 +0x8FA1AE 0x200A4 +0x8FA1AF 0x4E5A +0x8FA1B0 0x4E69 +0x8FA1B1 0x4E9D +0x8FA1B2 0x342C +0x8FA1B3 0x342E +0x8FA1B4 0x4EB9 +0x8FA1B5 0x4EBB +0x8FA1B6 0x201A2 +0x8FA1B7 0x4EBC +0x8FA1B8 0x4EC3 +0x8FA1B9 0x4EC8 +0x8FA1BA 0x4ED0 +0x8FA1BB 0x4EEB +0x8FA1BC 0x4EDA +0x8FA1BD 0x4EF1 +0x8FA1BE 0x4EF5 +0x8FA1BF 0x4F00 +0x8FA1C0 0x4F16 +0x8FA1C1 0x4F64 +0x8FA1C2 0x4F37 +0x8FA1C3 0x4F3E +0x8FA1C4 0x4F54 +0x8FA1C5 0x4F58 +0x8FA1C6 0x20213 +0x8FA1C7 0x4F77 +0x8FA1C8 0x4F78 +0x8FA1C9 0x4F7A +0x8FA1CA 0x4F7D +0x8FA1CB 0x4F82 +0x8FA1CC 0x4F85 +0x8FA1CD 0x4F92 +0x8FA1CE 0x4F9A +0x8FA1CF 0x4FE6 +0x8FA1D0 0x4FB2 +0x8FA1D1 0x4FBE +0x8FA1D2 0x4FC5 +0x8FA1D3 0x4FCB +0x8FA1D4 0x4FCF +0x8FA1D5 0x4FD2 +0x8FA1D6 0x346A +0x8FA1D7 0x4FF2 +0x8FA1D8 0x5000 +0x8FA1D9 0x5010 +0x8FA1DA 0x5013 +0x8FA1DB 0x501C +0x8FA1DC 0x501E +0x8FA1DD 0x5022 +0x8FA1DE 0x3468 +0x8FA1DF 0x5042 +0x8FA1E0 0x5046 +0x8FA1E1 0x504E +0x8FA1E2 0x5053 +0x8FA1E3 0x5057 +0x8FA1E4 0x5063 +0x8FA1E5 0x5066 +0x8FA1E6 0x506A +0x8FA1E7 0x5070 +0x8FA1E8 0x50A3 +0x8FA1E9 0x5088 +0x8FA1EA 0x5092 +0x8FA1EB 0x5093 +0x8FA1EC 0x5095 +0x8FA1ED 0x5096 +0x8FA1EE 0x509C +0x8FA1EF 0x50AA +0x8FA1F0 0x2032B +0x8FA1F1 0x50B1 +0x8FA1F2 0x50BA +0x8FA1F3 0x50BB +0x8FA1F4 0x50C4 +0x8FA1F5 0x50C7 +0x8FA1F6 0x50F3 +0x8FA1F7 0x20381 +0x8FA1F8 0x50CE +0x8FA1F9 0x20371 +0x8FA1FA 0x50D4 +0x8FA1FB 0x50D9 +0x8FA1FC 0x50E1 +0x8FA1FD 0x50E9 +0x8FA1FE 0x3492 +0x8FA3A1 0x5108 +0x8FA3A2 0x203F9 +0x8FA3A3 0x5117 +0x8FA3A4 0x511B +0x8FA3A5 0x2044A +0x8FA3A6 0x5160 +0x8FA3A7 0x20509 +0x8FA3A8 0x5173 +0x8FA3A9 0x5183 +0x8FA3AA 0x518B +0x8FA3AB 0x34BC +0x8FA3AC 0x5198 +0x8FA3AD 0x51A3 +0x8FA3AE 0x51AD +0x8FA3AF 0x34C7 +0x8FA3B0 0x51BC +0x8FA3B1 0x205D6 +0x8FA3B2 0x20628 +0x8FA3B3 0x51F3 +0x8FA3B4 0x51F4 +0x8FA3B5 0x5202 +0x8FA3B6 0x5212 +0x8FA3B7 0x5216 +0x8FA3B8 0x2074F +0x8FA3B9 0x5255 +0x8FA3BA 0x525C +0x8FA3BB 0x526C +0x8FA3BC 0x5277 +0x8FA3BD 0x5284 +0x8FA3BE 0x5282 +0x8FA3BF 0x20807 +0x8FA3C0 0x5298 +0x8FA3C1 0x2083A +0x8FA3C2 0x52A4 +0x8FA3C3 0x52A6 +0x8FA3C4 0x52AF +0x8FA3C5 0x52BA +0x8FA3C6 0x52BB +0x8FA3C7 0x52CA +0x8FA3C8 0x351F +0x8FA3C9 0x52D1 +0x8FA3CA 0x208B9 +0x8FA3CB 0x52F7 +0x8FA3CC 0x530A +0x8FA3CD 0x530B +0x8FA3CE 0x5324 +0x8FA3CF 0x5335 +0x8FA3D0 0x533E +0x8FA3D1 0x5342 +0x8FA3D2 0x2097C +0x8FA3D3 0x2099D +0x8FA3D4 0x5367 +0x8FA3D5 0x536C +0x8FA3D6 0x537A +0x8FA3D7 0x53A4 +0x8FA3D8 0x53B4 +0x8FA3D9 0x20AD3 +0x8FA3DA 0x53B7 +0x8FA3DB 0x53C0 +0x8FA3DC 0x20B1D +0x8FA3DD 0x355D +0x8FA3DE 0x355E +0x8FA3DF 0x53D5 +0x8FA3E0 0x53DA +0x8FA3E1 0x3563 +0x8FA3E2 0x53F4 +0x8FA3E3 0x53F5 +0x8FA3E4 0x5455 +0x8FA3E5 0x5424 +0x8FA3E6 0x5428 +0x8FA3E7 0x356E +0x8FA3E8 0x5443 +0x8FA3E9 0x5462 +0x8FA3EA 0x5466 +0x8FA3EB 0x546C +0x8FA3EC 0x548A +0x8FA3ED 0x548D +0x8FA3EE 0x5495 +0x8FA3EF 0x54A0 +0x8FA3F0 0x54A6 +0x8FA3F1 0x54AD +0x8FA3F2 0x54AE +0x8FA3F3 0x54B7 +0x8FA3F4 0x54BA +0x8FA3F5 0x54BF +0x8FA3F6 0x54C3 +0x8FA3F7 0x20D45 +0x8FA3F8 0x54EC +0x8FA3F9 0x54EF +0x8FA3FA 0x54F1 +0x8FA3FB 0x54F3 +0x8FA3FC 0x5500 +0x8FA3FD 0x5501 +0x8FA3FE 0x5509 +0x8FA4A1 0x553C +0x8FA4A2 0x5541 +0x8FA4A3 0x35A6 +0x8FA4A4 0x5547 +0x8FA4A5 0x554A +0x8FA4A6 0x35A8 +0x8FA4A7 0x5560 +0x8FA4A8 0x5561 +0x8FA4A9 0x5564 +0x8FA4AA 0x20DE1 +0x8FA4AB 0x557D +0x8FA4AC 0x5582 +0x8FA4AD 0x5588 +0x8FA4AE 0x5591 +0x8FA4AF 0x35C5 +0x8FA4B0 0x55D2 +0x8FA4B1 0x20E95 +0x8FA4B2 0x20E6D +0x8FA4B3 0x55BF +0x8FA4B4 0x55C9 +0x8FA4B5 0x55CC +0x8FA4B6 0x55D1 +0x8FA4B7 0x55DD +0x8FA4B8 0x35DA +0x8FA4B9 0x55E2 +0x8FA4BA 0x20E64 +0x8FA4BB 0x55E9 +0x8FA4BC 0x5628 +0x8FA4BD 0x20F5F +0x8FA4BE 0x5607 +0x8FA4BF 0x5610 +0x8FA4C0 0x5630 +0x8FA4C1 0x5637 +0x8FA4C2 0x35F4 +0x8FA4C3 0x563D +0x8FA4C4 0x563F +0x8FA4C5 0x5640 +0x8FA4C6 0x5647 +0x8FA4C7 0x565E +0x8FA4C8 0x5660 +0x8FA4C9 0x566D +0x8FA4CA 0x3605 +0x8FA4CB 0x5688 +0x8FA4CC 0x568C +0x8FA4CD 0x5695 +0x8FA4CE 0x569A +0x8FA4CF 0x569D +0x8FA4D0 0x56A8 +0x8FA4D1 0x56AD +0x8FA4D2 0x56B2 +0x8FA4D3 0x56C5 +0x8FA4D4 0x56CD +0x8FA4D5 0x56DF +0x8FA4D6 0x56E8 +0x8FA4D7 0x56F6 +0x8FA4D8 0x56F7 +0x8FA4D9 0x21201 +0x8FA4DA 0x5715 +0x8FA4DB 0x5723 +0x8FA4DC 0x21255 +0x8FA4DD 0x5729 +0x8FA4DE 0x2127B +0x8FA4DF 0x5745 +0x8FA4E0 0x5746 +0x8FA4E1 0x574C +0x8FA4E2 0x574D +0x8FA4E3 0x21274 +0x8FA4E4 0x5768 +0x8FA4E5 0x576F +0x8FA4E6 0x5773 +0x8FA4E7 0x5774 +0x8FA4E8 0x5775 +0x8FA4E9 0x577B +0x8FA4EA 0x212E4 +0x8FA4EB 0x212D7 +0x8FA4EC 0x57AC +0x8FA4ED 0x579A +0x8FA4EE 0x579D +0x8FA4EF 0x579E +0x8FA4F0 0x57A8 +0x8FA4F1 0x57D7 +0x8FA4F2 0x212FD +0x8FA4F3 0x57CC +0x8FA4F4 0x21336 +0x8FA4F5 0x21344 +0x8FA4F6 0x57DE +0x8FA4F7 0x57E6 +0x8FA4F8 0x57F0 +0x8FA4F9 0x364A +0x8FA4FA 0x57F8 +0x8FA4FB 0x57FB +0x8FA4FC 0x57FD +0x8FA4FD 0x5804 +0x8FA4FE 0x581E +0x8FA5A1 0x5820 +0x8FA5A2 0x5827 +0x8FA5A3 0x5832 +0x8FA5A4 0x5839 +0x8FA5A5 0x213C4 +0x8FA5A6 0x5849 +0x8FA5A7 0x584C +0x8FA5A8 0x5867 +0x8FA5A9 0x588A +0x8FA5AA 0x588B +0x8FA5AB 0x588D +0x8FA5AC 0x588F +0x8FA5AD 0x5890 +0x8FA5AE 0x5894 +0x8FA5AF 0x589D +0x8FA5B0 0x58AA +0x8FA5B1 0x58B1 +0x8FA5B2 0x2146D +0x8FA5B3 0x58C3 +0x8FA5B4 0x58CD +0x8FA5B5 0x58E2 +0x8FA5B6 0x58F3 +0x8FA5B7 0x58F4 +0x8FA5B8 0x5905 +0x8FA5B9 0x5906 +0x8FA5BA 0x590B +0x8FA5BB 0x590D +0x8FA5BC 0x5914 +0x8FA5BD 0x5924 +0x8FA5BE 0x215D7 +0x8FA5BF 0x3691 +0x8FA5C0 0x593D +0x8FA5C1 0x3699 +0x8FA5C2 0x5946 +0x8FA5C3 0x3696 +0x8FA5C4 0x26C29 +0x8FA5C5 0x595B +0x8FA5C6 0x595F +0x8FA5C7 0x21647 +0x8FA5C8 0x5975 +0x8FA5C9 0x5976 +0x8FA5CA 0x597C +0x8FA5CB 0x599F +0x8FA5CC 0x59AE +0x8FA5CD 0x59BC +0x8FA5CE 0x59C8 +0x8FA5CF 0x59CD +0x8FA5D0 0x59DE +0x8FA5D1 0x59E3 +0x8FA5D2 0x59E4 +0x8FA5D3 0x59E7 +0x8FA5D4 0x59EE +0x8FA5D5 0x21706 +0x8FA5D6 0x21742 +0x8FA5D7 0x36CF +0x8FA5D8 0x5A0C +0x8FA5D9 0x5A0D +0x8FA5DA 0x5A17 +0x8FA5DB 0x5A27 +0x8FA5DC 0x5A2D +0x8FA5DD 0x5A55 +0x8FA5DE 0x5A65 +0x8FA5DF 0x5A7A +0x8FA5E0 0x5A8B +0x8FA5E1 0x5A9C +0x8FA5E2 0x5A9F +0x8FA5E3 0x5AA0 +0x8FA5E4 0x5AA2 +0x8FA5E5 0x5AB1 +0x8FA5E6 0x5AB3 +0x8FA5E7 0x5AB5 +0x8FA5E8 0x5ABA +0x8FA5E9 0x5ABF +0x8FA5EA 0x5ADA +0x8FA5EB 0x5ADC +0x8FA5EC 0x5AE0 +0x8FA5ED 0x5AE5 +0x8FA5EE 0x5AF0 +0x8FA5EF 0x5AEE +0x8FA5F0 0x5AF5 +0x8FA5F1 0x5B00 +0x8FA5F2 0x5B08 +0x8FA5F3 0x5B17 +0x8FA5F4 0x5B34 +0x8FA5F5 0x5B2D +0x8FA5F6 0x5B4C +0x8FA5F7 0x5B52 +0x8FA5F8 0x5B68 +0x8FA5F9 0x5B6F +0x8FA5FA 0x5B7C +0x8FA5FB 0x5B7F +0x8FA5FC 0x5B81 +0x8FA5FD 0x5B84 +0x8FA5FE 0x219C3 +0x8FA8A1 0x5B96 +0x8FA8A2 0x5BAC +0x8FA8A3 0x3761 +0x8FA8A4 0x5BC0 +0x8FA8A5 0x3762 +0x8FA8A6 0x5BCE +0x8FA8A7 0x5BD6 +0x8FA8A8 0x376C +0x8FA8A9 0x376B +0x8FA8AA 0x5BF1 +0x8FA8AB 0x5BFD +0x8FA8AC 0x3775 +0x8FA8AD 0x5C03 +0x8FA8AE 0x5C29 +0x8FA8AF 0x5C30 +0x8FA8B0 0x21C56 +0x8FA8B1 0x5C5F +0x8FA8B2 0x5C63 +0x8FA8B3 0x5C67 +0x8FA8B4 0x5C68 +0x8FA8B5 0x5C69 +0x8FA8B6 0x5C70 +0x8FA8B7 0x21D2D +0x8FA8B8 0x21D45 +0x8FA8B9 0x5C7C +0x8FA8BA 0x21D78 +0x8FA8BB 0x21D62 +0x8FA8BC 0x5C88 +0x8FA8BD 0x5C8A +0x8FA8BE 0x37C1 +0x8FA8BF 0x21DA1 +0x8FA8C0 0x21D9C +0x8FA8C1 0x5CA0 +0x8FA8C2 0x5CA2 +0x8FA8C3 0x5CA6 +0x8FA8C4 0x5CA7 +0x8FA8C5 0x21D92 +0x8FA8C6 0x5CAD +0x8FA8C7 0x5CB5 +0x8FA8C8 0x21DB7 +0x8FA8C9 0x5CC9 +0x8FA8CA 0x21DE0 +0x8FA8CB 0x21E33 +0x8FA8CC 0x5D06 +0x8FA8CD 0x5D10 +0x8FA8CE 0x5D2B +0x8FA8CF 0x5D1D +0x8FA8D0 0x5D20 +0x8FA8D1 0x5D24 +0x8FA8D2 0x5D26 +0x8FA8D3 0x5D31 +0x8FA8D4 0x5D39 +0x8FA8D5 0x5D42 +0x8FA8D6 0x37E8 +0x8FA8D7 0x5D61 +0x8FA8D8 0x5D6A +0x8FA8D9 0x37F4 +0x8FA8DA 0x5D70 +0x8FA8DB 0x21F1E +0x8FA8DC 0x37FD +0x8FA8DD 0x5D88 +0x8FA8DE 0x3800 +0x8FA8DF 0x5D92 +0x8FA8E0 0x5D94 +0x8FA8E1 0x5D97 +0x8FA8E2 0x5D99 +0x8FA8E3 0x5DB0 +0x8FA8E4 0x5DB2 +0x8FA8E5 0x5DB4 +0x8FA8E6 0x21F76 +0x8FA8E7 0x5DB9 +0x8FA8E8 0x5DD1 +0x8FA8E9 0x5DD7 +0x8FA8EA 0x5DD8 +0x8FA8EB 0x5DE0 +0x8FA8EC 0x21FFA +0x8FA8ED 0x5DE4 +0x8FA8EE 0x5DE9 +0x8FA8EF 0x382F +0x8FA8F0 0x5E00 +0x8FA8F1 0x3836 +0x8FA8F2 0x5E12 +0x8FA8F3 0x5E15 +0x8FA8F4 0x3840 +0x8FA8F5 0x5E1F +0x8FA8F6 0x5E2E +0x8FA8F7 0x5E3E +0x8FA8F8 0x5E49 +0x8FA8F9 0x385C +0x8FA8FA 0x5E56 +0x8FA8FB 0x3861 +0x8FA8FC 0x5E6B +0x8FA8FD 0x5E6C +0x8FA8FE 0x5E6D +0x8FACA1 0x5E6E +0x8FACA2 0x2217B +0x8FACA3 0x5EA5 +0x8FACA4 0x5EAA +0x8FACA5 0x5EAC +0x8FACA6 0x5EB9 +0x8FACA7 0x5EBF +0x8FACA8 0x5EC6 +0x8FACA9 0x5ED2 +0x8FACAA 0x5ED9 +0x8FACAB 0x2231E +0x8FACAC 0x5EFD +0x8FACAD 0x5F08 +0x8FACAE 0x5F0E +0x8FACAF 0x5F1C +0x8FACB0 0x223AD +0x8FACB1 0x5F1E +0x8FACB2 0x5F47 +0x8FACB3 0x5F63 +0x8FACB4 0x5F72 +0x8FACB5 0x5F7E +0x8FACB6 0x5F8F +0x8FACB7 0x5FA2 +0x8FACB8 0x5FA4 +0x8FACB9 0x5FB8 +0x8FACBA 0x5FC4 +0x8FACBB 0x38FA +0x8FACBC 0x5FC7 +0x8FACBD 0x5FCB +0x8FACBE 0x5FD2 +0x8FACBF 0x5FD3 +0x8FACC0 0x5FD4 +0x8FACC1 0x5FE2 +0x8FACC2 0x5FEE +0x8FACC3 0x5FEF +0x8FACC4 0x5FF3 +0x8FACC5 0x5FFC +0x8FACC6 0x3917 +0x8FACC7 0x6017 +0x8FACC8 0x6022 +0x8FACC9 0x6024 +0x8FACCA 0x391A +0x8FACCB 0x604C +0x8FACCC 0x607F +0x8FACCD 0x608A +0x8FACCE 0x6095 +0x8FACCF 0x60A8 +0x8FACD0 0x226F3 +0x8FACD1 0x60B0 +0x8FACD2 0x60B1 +0x8FACD3 0x60BE +0x8FACD4 0x60C8 +0x8FACD5 0x60D9 +0x8FACD6 0x60DB +0x8FACD7 0x60EE +0x8FACD8 0x60F2 +0x8FACD9 0x60F5 +0x8FACDA 0x6110 +0x8FACDB 0x6112 +0x8FACDC 0x6113 +0x8FACDD 0x6119 +0x8FACDE 0x611E +0x8FACDF 0x613A +0x8FACE0 0x396F +0x8FACE1 0x6141 +0x8FACE2 0x6146 +0x8FACE3 0x6160 +0x8FACE4 0x617C +0x8FACE5 0x2285B +0x8FACE6 0x6192 +0x8FACE7 0x6193 +0x8FACE8 0x6197 +0x8FACE9 0x6198 +0x8FACEA 0x61A5 +0x8FACEB 0x61A8 +0x8FACEC 0x61AD +0x8FACED 0x228AB +0x8FACEE 0x61D5 +0x8FACEF 0x61DD +0x8FACF0 0x61DF +0x8FACF1 0x61F5 +0x8FACF2 0x2298F +0x8FACF3 0x6215 +0x8FACF4 0x6223 +0x8FACF5 0x6229 +0x8FACF6 0x6246 +0x8FACF7 0x624C +0x8FACF8 0x6251 +0x8FACF9 0x6252 +0x8FACFA 0x6261 +0x8FACFB 0x6264 +0x8FACFC 0x627B +0x8FACFD 0x626D +0x8FACFE 0x6273 +0x8FADA1 0x6299 +0x8FADA2 0x62A6 +0x8FADA3 0x62D5 +0x8FADA4 0x22AB8 +0x8FADA5 0x62FD +0x8FADA6 0x6303 +0x8FADA7 0x630D +0x8FADA8 0x6310 +0x8FADA9 0x22B4F +0x8FADAA 0x22B50 +0x8FADAB 0x6332 +0x8FADAC 0x6335 +0x8FADAD 0x633B +0x8FADAE 0x633C +0x8FADAF 0x6341 +0x8FADB0 0x6344 +0x8FADB1 0x634E +0x8FADB2 0x22B46 +0x8FADB3 0x6359 +0x8FADB4 0x22C1D +0x8FADB5 0x22BA6 +0x8FADB6 0x636C +0x8FADB7 0x6384 +0x8FADB8 0x6399 +0x8FADB9 0x22C24 +0x8FADBA 0x6394 +0x8FADBB 0x63BD +0x8FADBC 0x63F7 +0x8FADBD 0x63D4 +0x8FADBE 0x63D5 +0x8FADBF 0x63DC +0x8FADC0 0x63E0 +0x8FADC1 0x63EB +0x8FADC2 0x63EC +0x8FADC3 0x63F2 +0x8FADC4 0x6409 +0x8FADC5 0x641E +0x8FADC6 0x6425 +0x8FADC7 0x6429 +0x8FADC8 0x642F +0x8FADC9 0x645A +0x8FADCA 0x645B +0x8FADCB 0x645D +0x8FADCC 0x6473 +0x8FADCD 0x647D +0x8FADCE 0x6487 +0x8FADCF 0x6491 +0x8FADD0 0x649D +0x8FADD1 0x649F +0x8FADD2 0x64CB +0x8FADD3 0x64CC +0x8FADD4 0x64D5 +0x8FADD5 0x64D7 +0x8FADD6 0x22DE1 +0x8FADD7 0x64E4 +0x8FADD8 0x64E5 +0x8FADD9 0x64FF +0x8FADDA 0x6504 +0x8FADDB 0x3A6E +0x8FADDC 0x650F +0x8FADDD 0x6514 +0x8FADDE 0x6516 +0x8FADDF 0x3A73 +0x8FADE0 0x651E +0x8FADE1 0x6532 +0x8FADE2 0x6544 +0x8FADE3 0x6554 +0x8FADE4 0x656B +0x8FADE5 0x657A +0x8FADE6 0x6581 +0x8FADE7 0x6584 +0x8FADE8 0x6585 +0x8FADE9 0x658A +0x8FADEA 0x65B2 +0x8FADEB 0x65B5 +0x8FADEC 0x65B8 +0x8FADED 0x65BF +0x8FADEE 0x65C2 +0x8FADEF 0x65C9 +0x8FADF0 0x65D4 +0x8FADF1 0x3AD6 +0x8FADF2 0x65F2 +0x8FADF3 0x65F9 +0x8FADF4 0x65FC +0x8FADF5 0x6604 +0x8FADF6 0x6608 +0x8FADF7 0x6621 +0x8FADF8 0x662A +0x8FADF9 0x6645 +0x8FADFA 0x6651 +0x8FADFB 0x664E +0x8FADFC 0x3AEA +0x8FADFD 0x231C3 +0x8FADFE 0x6657 +0x8FAEA1 0x665B +0x8FAEA2 0x6663 +0x8FAEA3 0x231F5 +0x8FAEA4 0x231B6 +0x8FAEA5 0x666A +0x8FAEA6 0x666B +0x8FAEA7 0x666C +0x8FAEA8 0x666D +0x8FAEA9 0x667B +0x8FAEAA 0x6680 +0x8FAEAB 0x6690 +0x8FAEAC 0x6692 +0x8FAEAD 0x6699 +0x8FAEAE 0x3B0E +0x8FAEAF 0x66AD +0x8FAEB0 0x66B1 +0x8FAEB1 0x66B5 +0x8FAEB2 0x3B1A +0x8FAEB3 0x66BF +0x8FAEB4 0x3B1C +0x8FAEB5 0x66EC +0x8FAEB6 0x3AD7 +0x8FAEB7 0x6701 +0x8FAEB8 0x6705 +0x8FAEB9 0x6712 +0x8FAEBA 0x23372 +0x8FAEBB 0x6719 +0x8FAEBC 0x233D3 +0x8FAEBD 0x233D2 +0x8FAEBE 0x674C +0x8FAEBF 0x674D +0x8FAEC0 0x6754 +0x8FAEC1 0x675D +0x8FAEC2 0x233D0 +0x8FAEC3 0x233E4 +0x8FAEC4 0x233D5 +0x8FAEC5 0x6774 +0x8FAEC6 0x6776 +0x8FAEC7 0x233DA +0x8FAEC8 0x6792 +0x8FAEC9 0x233DF +0x8FAECA 0x8363 +0x8FAECB 0x6810 +0x8FAECC 0x67B0 +0x8FAECD 0x67B2 +0x8FAECE 0x67C3 +0x8FAECF 0x67C8 +0x8FAED0 0x67D2 +0x8FAED1 0x67D9 +0x8FAED2 0x67DB +0x8FAED3 0x67F0 +0x8FAED4 0x67F7 +0x8FAED5 0x2344A +0x8FAED6 0x23451 +0x8FAED7 0x2344B +0x8FAED8 0x6818 +0x8FAED9 0x681F +0x8FAEDA 0x682D +0x8FAEDB 0x23465 +0x8FAEDC 0x6833 +0x8FAEDD 0x683B +0x8FAEDE 0x683E +0x8FAEDF 0x6844 +0x8FAEE0 0x6845 +0x8FAEE1 0x6849 +0x8FAEE2 0x684C +0x8FAEE3 0x6855 +0x8FAEE4 0x6857 +0x8FAEE5 0x3B77 +0x8FAEE6 0x686B +0x8FAEE7 0x686E +0x8FAEE8 0x687A +0x8FAEE9 0x687C +0x8FAEEA 0x6882 +0x8FAEEB 0x6890 +0x8FAEEC 0x6896 +0x8FAEED 0x3B6D +0x8FAEEE 0x6898 +0x8FAEEF 0x6899 +0x8FAEF0 0x689A +0x8FAEF1 0x689C +0x8FAEF2 0x68AA +0x8FAEF3 0x68AB +0x8FAEF4 0x68B4 +0x8FAEF5 0x68BB +0x8FAEF6 0x68FB +0x8FAEF7 0x234E4 +0x8FAEF8 0x2355A +0x8FAEF9 0xFA13 +0x8FAEFA 0x68C3 +0x8FAEFB 0x68C5 +0x8FAEFC 0x68CC +0x8FAEFD 0x68CF +0x8FAEFE 0x68D6 +0x8FAFA1 0x68D9 +0x8FAFA2 0x68E4 +0x8FAFA3 0x68E5 +0x8FAFA4 0x68EC +0x8FAFA5 0x68F7 +0x8FAFA6 0x6903 +0x8FAFA7 0x6907 +0x8FAFA8 0x3B87 +0x8FAFA9 0x3B88 +0x8FAFAA 0x23594 +0x8FAFAB 0x693B +0x8FAFAC 0x3B8D +0x8FAFAD 0x6946 +0x8FAFAE 0x6969 +0x8FAFAF 0x696C +0x8FAFB0 0x6972 +0x8FAFB1 0x697A +0x8FAFB2 0x697F +0x8FAFB3 0x6992 +0x8FAFB4 0x3BA4 +0x8FAFB5 0x6996 +0x8FAFB6 0x6998 +0x8FAFB7 0x69A6 +0x8FAFB8 0x69B0 +0x8FAFB9 0x69B7 +0x8FAFBA 0x69BA +0x8FAFBB 0x69BC +0x8FAFBC 0x69C0 +0x8FAFBD 0x69D1 +0x8FAFBE 0x69D6 +0x8FAFBF 0x23639 +0x8FAFC0 0x23647 +0x8FAFC1 0x6A30 +0x8FAFC2 0x23638 +0x8FAFC3 0x2363A +0x8FAFC4 0x69E3 +0x8FAFC5 0x69EE +0x8FAFC6 0x69EF +0x8FAFC7 0x69F3 +0x8FAFC8 0x3BCD +0x8FAFC9 0x69F4 +0x8FAFCA 0x69FE +0x8FAFCB 0x6A11 +0x8FAFCC 0x6A1A +0x8FAFCD 0x6A1D +0x8FAFCE 0x2371C +0x8FAFCF 0x6A32 +0x8FAFD0 0x6A33 +0x8FAFD1 0x6A34 +0x8FAFD2 0x6A3F +0x8FAFD3 0x6A46 +0x8FAFD4 0x6A49 +0x8FAFD5 0x6A7A +0x8FAFD6 0x6A4E +0x8FAFD7 0x6A52 +0x8FAFD8 0x6A64 +0x8FAFD9 0x2370C +0x8FAFDA 0x6A7E +0x8FAFDB 0x6A83 +0x8FAFDC 0x6A8B +0x8FAFDD 0x3BF0 +0x8FAFDE 0x6A91 +0x8FAFDF 0x6A9F +0x8FAFE0 0x6AA1 +0x8FAFE1 0x23764 +0x8FAFE2 0x6AAB +0x8FAFE3 0x6ABD +0x8FAFE4 0x6AC6 +0x8FAFE5 0x6AD4 +0x8FAFE6 0x6AD0 +0x8FAFE7 0x6ADC +0x8FAFE8 0x6ADD +0x8FAFE9 0x237FF +0x8FAFEA 0x237E7 +0x8FAFEB 0x6AEC +0x8FAFEC 0x6AF1 +0x8FAFED 0x6AF2 +0x8FAFEE 0x6AF3 +0x8FAFEF 0x6AFD +0x8FAFF0 0x23824 +0x8FAFF1 0x6B0B +0x8FAFF2 0x6B0F +0x8FAFF3 0x6B10 +0x8FAFF4 0x6B11 +0x8FAFF5 0x2383D +0x8FAFF6 0x6B17 +0x8FAFF7 0x3C26 +0x8FAFF8 0x6B2F +0x8FAFF9 0x6B4A +0x8FAFFA 0x6B58 +0x8FAFFB 0x6B6C +0x8FAFFC 0x6B75 +0x8FAFFD 0x6B7A +0x8FAFFE 0x6B81 +0x8FEEA1 0x6B9B +0x8FEEA2 0x6BAE +0x8FEEA3 0x23A98 +0x8FEEA4 0x6BBD +0x8FEEA5 0x6BBE +0x8FEEA6 0x6BC7 +0x8FEEA7 0x6BC8 +0x8FEEA8 0x6BC9 +0x8FEEA9 0x6BDA +0x8FEEAA 0x6BE6 +0x8FEEAB 0x6BE7 +0x8FEEAC 0x6BEE +0x8FEEAD 0x6BF1 +0x8FEEAE 0x6C02 +0x8FEEAF 0x6C0A +0x8FEEB0 0x6C0E +0x8FEEB1 0x6C35 +0x8FEEB2 0x6C36 +0x8FEEB3 0x6C3A +0x8FEEB4 0x23C7F +0x8FEEB5 0x6C3F +0x8FEEB6 0x6C4D +0x8FEEB7 0x6C5B +0x8FEEB8 0x6C6D +0x8FEEB9 0x6C84 +0x8FEEBA 0x6C89 +0x8FEEBB 0x3CC3 +0x8FEEBC 0x6C94 +0x8FEEBD 0x6C95 +0x8FEEBE 0x6C97 +0x8FEEBF 0x6CAD +0x8FEEC0 0x6CC2 +0x8FEEC1 0x6CD0 +0x8FEEC2 0x3CD2 +0x8FEEC3 0x6CD6 +0x8FEEC4 0x6CDA +0x8FEEC5 0x6CDC +0x8FEEC6 0x6CE9 +0x8FEEC7 0x6CEC +0x8FEEC8 0x6CED +0x8FEEC9 0x23D00 +0x8FEECA 0x6D00 +0x8FEECB 0x6D0A +0x8FEECC 0x6D24 +0x8FEECD 0x6D26 +0x8FEECE 0x6D27 +0x8FEECF 0x6C67 +0x8FEED0 0x6D2F +0x8FEED1 0x6D3C +0x8FEED2 0x6D5B +0x8FEED3 0x6D5E +0x8FEED4 0x6D60 +0x8FEED5 0x6D70 +0x8FEED6 0x6D80 +0x8FEED7 0x6D81 +0x8FEED8 0x6D8A +0x8FEED9 0x6D8D +0x8FEEDA 0x6D91 +0x8FEEDB 0x6D98 +0x8FEEDC 0x23D40 +0x8FEEDD 0x6E17 +0x8FEEDE 0x23DFA +0x8FEEDF 0x23DF9 +0x8FEEE0 0x23DD3 +0x8FEEE1 0x6DAB +0x8FEEE2 0x6DAE +0x8FEEE3 0x6DB4 +0x8FEEE4 0x6DC2 +0x8FEEE5 0x6D34 +0x8FEEE6 0x6DC8 +0x8FEEE7 0x6DCE +0x8FEEE8 0x6DCF +0x8FEEE9 0x6DD0 +0x8FEEEA 0x6DDF +0x8FEEEB 0x6DE9 +0x8FEEEC 0x6DF6 +0x8FEEED 0x6E36 +0x8FEEEE 0x6E1E +0x8FEEEF 0x6E22 +0x8FEEF0 0x6E27 +0x8FEEF1 0x3D11 +0x8FEEF2 0x6E32 +0x8FEEF3 0x6E3C +0x8FEEF4 0x6E48 +0x8FEEF5 0x6E49 +0x8FEEF6 0x6E4B +0x8FEEF7 0x6E4C +0x8FEEF8 0x6E4F +0x8FEEF9 0x6E51 +0x8FEEFA 0x6E53 +0x8FEEFB 0x6E54 +0x8FEEFC 0x6E57 +0x8FEEFD 0x6E63 +0x8FEEFE 0x3D1E +0x8FEFA1 0x6E93 +0x8FEFA2 0x6EA7 +0x8FEFA3 0x6EB4 +0x8FEFA4 0x6EBF +0x8FEFA5 0x6EC3 +0x8FEFA6 0x6ECA +0x8FEFA7 0x6ED9 +0x8FEFA8 0x6F35 +0x8FEFA9 0x6EEB +0x8FEFAA 0x6EF9 +0x8FEFAB 0x6EFB +0x8FEFAC 0x6F0A +0x8FEFAD 0x6F0C +0x8FEFAE 0x6F18 +0x8FEFAF 0x6F25 +0x8FEFB0 0x6F36 +0x8FEFB1 0x6F3C +0x8FEFB2 0x23F7E +0x8FEFB3 0x6F52 +0x8FEFB4 0x6F57 +0x8FEFB5 0x6F5A +0x8FEFB6 0x6F60 +0x8FEFB7 0x6F68 +0x8FEFB8 0x6F98 +0x8FEFB9 0x6F7D +0x8FEFBA 0x6F90 +0x8FEFBB 0x6F96 +0x8FEFBC 0x6FBE +0x8FEFBD 0x6F9F +0x8FEFBE 0x6FA5 +0x8FEFBF 0x6FAF +0x8FEFC0 0x3D64 +0x8FEFC1 0x6FB5 +0x8FEFC2 0x6FC8 +0x8FEFC3 0x6FC9 +0x8FEFC4 0x6FDA +0x8FEFC5 0x6FDE +0x8FEFC6 0x6FE9 +0x8FEFC7 0x24096 +0x8FEFC8 0x6FFC +0x8FEFC9 0x7000 +0x8FEFCA 0x7007 +0x8FEFCB 0x700A +0x8FEFCC 0x7023 +0x8FEFCD 0x24103 +0x8FEFCE 0x7039 +0x8FEFCF 0x703A +0x8FEFD0 0x703C +0x8FEFD1 0x7043 +0x8FEFD2 0x7047 +0x8FEFD3 0x704B +0x8FEFD4 0x3D9A +0x8FEFD5 0x7054 +0x8FEFD6 0x7065 +0x8FEFD7 0x7069 +0x8FEFD8 0x706C +0x8FEFD9 0x706E +0x8FEFDA 0x7076 +0x8FEFDB 0x707E +0x8FEFDC 0x7081 +0x8FEFDD 0x7086 +0x8FEFDE 0x7095 +0x8FEFDF 0x7097 +0x8FEFE0 0x70BB +0x8FEFE1 0x241C6 +0x8FEFE2 0x709F +0x8FEFE3 0x70B1 +0x8FEFE4 0x241FE +0x8FEFE5 0x70EC +0x8FEFE6 0x70CA +0x8FEFE7 0x70D1 +0x8FEFE8 0x70D3 +0x8FEFE9 0x70DC +0x8FEFEA 0x7103 +0x8FEFEB 0x7104 +0x8FEFEC 0x7106 +0x8FEFED 0x7107 +0x8FEFEE 0x7108 +0x8FEFEF 0x710C +0x8FEFF0 0x3DC0 +0x8FEFF1 0x712F +0x8FEFF2 0x7131 +0x8FEFF3 0x7150 +0x8FEFF4 0x714A +0x8FEFF5 0x7153 +0x8FEFF6 0x715E +0x8FEFF7 0x3DD4 +0x8FEFF8 0x7196 +0x8FEFF9 0x7180 +0x8FEFFA 0x719B +0x8FEFFB 0x71A0 +0x8FEFFC 0x71A2 +0x8FEFFD 0x71AE +0x8FEFFE 0x71AF +0x8FF0A1 0x71B3 +0x8FF0A2 0x243BC +0x8FF0A3 0x71CB +0x8FF0A4 0x71D3 +0x8FF0A5 0x71D9 +0x8FF0A6 0x71DC +0x8FF0A7 0x7207 +0x8FF0A8 0x3E05 +0x8FF0A9 0xFA49 +0x8FF0AA 0x722B +0x8FF0AB 0x7234 +0x8FF0AC 0x7238 +0x8FF0AD 0x7239 +0x8FF0AE 0x4E2C +0x8FF0AF 0x7242 +0x8FF0B0 0x7253 +0x8FF0B1 0x7257 +0x8FF0B2 0x7263 +0x8FF0B3 0x24629 +0x8FF0B4 0x726E +0x8FF0B5 0x726F +0x8FF0B6 0x7278 +0x8FF0B7 0x727F +0x8FF0B8 0x728E +0x8FF0B9 0x246A5 +0x8FF0BA 0x72AD +0x8FF0BB 0x72AE +0x8FF0BC 0x72B0 +0x8FF0BD 0x72B1 +0x8FF0BE 0x72C1 +0x8FF0BF 0x3E60 +0x8FF0C0 0x72CC +0x8FF0C1 0x3E66 +0x8FF0C2 0x3E68 +0x8FF0C3 0x72F3 +0x8FF0C4 0x72FA +0x8FF0C5 0x7307 +0x8FF0C6 0x7312 +0x8FF0C7 0x7318 +0x8FF0C8 0x7319 +0x8FF0C9 0x3E83 +0x8FF0CA 0x7339 +0x8FF0CB 0x732C +0x8FF0CC 0x7331 +0x8FF0CD 0x7333 +0x8FF0CE 0x733D +0x8FF0CF 0x7352 +0x8FF0D0 0x3E94 +0x8FF0D1 0x736B +0x8FF0D2 0x736C +0x8FF0D3 0x24896 +0x8FF0D4 0x736E +0x8FF0D5 0x736F +0x8FF0D6 0x7371 +0x8FF0D7 0x7377 +0x8FF0D8 0x7381 +0x8FF0D9 0x7385 +0x8FF0DA 0x738A +0x8FF0DB 0x7394 +0x8FF0DC 0x7398 +0x8FF0DD 0x739C +0x8FF0DE 0x739E +0x8FF0DF 0x73A5 +0x8FF0E0 0x73A8 +0x8FF0E1 0x73B5 +0x8FF0E2 0x73B7 +0x8FF0E3 0x73B9 +0x8FF0E4 0x73BC +0x8FF0E5 0x73BF +0x8FF0E6 0x73C5 +0x8FF0E7 0x73CB +0x8FF0E8 0x73E1 +0x8FF0E9 0x73E7 +0x8FF0EA 0x73F9 +0x8FF0EB 0x7413 +0x8FF0EC 0x73FA +0x8FF0ED 0x7401 +0x8FF0EE 0x7424 +0x8FF0EF 0x7431 +0x8FF0F0 0x7439 +0x8FF0F1 0x7453 +0x8FF0F2 0x7440 +0x8FF0F3 0x7443 +0x8FF0F4 0x744D +0x8FF0F5 0x7452 +0x8FF0F6 0x745D +0x8FF0F7 0x7471 +0x8FF0F8 0x7481 +0x8FF0F9 0x7485 +0x8FF0FA 0x7488 +0x8FF0FB 0x24A4D +0x8FF0FC 0x7492 +0x8FF0FD 0x7497 +0x8FF0FE 0x7499 +0x8FF1A1 0x74A0 +0x8FF1A2 0x74A1 +0x8FF1A3 0x74A5 +0x8FF1A4 0x74AA +0x8FF1A5 0x74AB +0x8FF1A6 0x74B9 +0x8FF1A7 0x74BB +0x8FF1A8 0x74BA +0x8FF1A9 0x74D6 +0x8FF1AA 0x74D8 +0x8FF1AB 0x74DE +0x8FF1AC 0x74EF +0x8FF1AD 0x74EB +0x8FF1AE 0x24B56 +0x8FF1AF 0x74FA +0x8FF1B0 0x24B6F +0x8FF1B1 0x7520 +0x8FF1B2 0x7524 +0x8FF1B3 0x752A +0x8FF1B4 0x3F57 +0x8FF1B5 0x24C16 +0x8FF1B6 0x753D +0x8FF1B7 0x753E +0x8FF1B8 0x7540 +0x8FF1B9 0x7548 +0x8FF1BA 0x754E +0x8FF1BB 0x7550 +0x8FF1BC 0x7552 +0x8FF1BD 0x756C +0x8FF1BE 0x7572 +0x8FF1BF 0x7571 +0x8FF1C0 0x757A +0x8FF1C1 0x757D +0x8FF1C2 0x757E +0x8FF1C3 0x7581 +0x8FF1C4 0x24D14 +0x8FF1C5 0x758C +0x8FF1C6 0x3F75 +0x8FF1C7 0x75A2 +0x8FF1C8 0x3F77 +0x8FF1C9 0x75B0 +0x8FF1CA 0x75B7 +0x8FF1CB 0x75BF +0x8FF1CC 0x75C0 +0x8FF1CD 0x75C6 +0x8FF1CE 0x75CF +0x8FF1CF 0x75D3 +0x8FF1D0 0x75DD +0x8FF1D1 0x75DF +0x8FF1D2 0x75E0 +0x8FF1D3 0x75E7 +0x8FF1D4 0x75EC +0x8FF1D5 0x75EE +0x8FF1D6 0x75F1 +0x8FF1D7 0x75F9 +0x8FF1D8 0x7603 +0x8FF1D9 0x7618 +0x8FF1DA 0x7607 +0x8FF1DB 0x760F +0x8FF1DC 0x3FAE +0x8FF1DD 0x24E0E +0x8FF1DE 0x7613 +0x8FF1DF 0x761B +0x8FF1E0 0x761C +0x8FF1E1 0x24E37 +0x8FF1E2 0x7625 +0x8FF1E3 0x7628 +0x8FF1E4 0x763C +0x8FF1E5 0x7633 +0x8FF1E6 0x24E6A +0x8FF1E7 0x3FC9 +0x8FF1E8 0x7641 +0x8FF1E9 0x24E8B +0x8FF1EA 0x7649 +0x8FF1EB 0x7655 +0x8FF1EC 0x3FD7 +0x8FF1ED 0x766E +0x8FF1EE 0x7695 +0x8FF1EF 0x769C +0x8FF1F0 0x76A1 +0x8FF1F1 0x76A0 +0x8FF1F2 0x76A7 +0x8FF1F3 0x76A8 +0x8FF1F4 0x76AF +0x8FF1F5 0x2504A +0x8FF1F6 0x76C9 +0x8FF1F7 0x25055 +0x8FF1F8 0x76E8 +0x8FF1F9 0x76EC +0x8FF1FA 0x25122 +0x8FF1FB 0x7717 +0x8FF1FC 0x771A +0x8FF1FD 0x772D +0x8FF1FE 0x7735 +0x8FF2A1 0x251A9 +0x8FF2A2 0x4039 +0x8FF2A3 0x251E5 +0x8FF2A4 0x251CD +0x8FF2A5 0x7758 +0x8FF2A6 0x7760 +0x8FF2A7 0x776A +0x8FF2A8 0x2521E +0x8FF2A9 0x7772 +0x8FF2AA 0x777C +0x8FF2AB 0x777D +0x8FF2AC 0x2524C +0x8FF2AD 0x4058 +0x8FF2AE 0x779A +0x8FF2AF 0x779F +0x8FF2B0 0x77A2 +0x8FF2B1 0x77A4 +0x8FF2B2 0x77A9 +0x8FF2B3 0x77DE +0x8FF2B4 0x77DF +0x8FF2B5 0x77E4 +0x8FF2B6 0x77E6 +0x8FF2B7 0x77EA +0x8FF2B8 0x77EC +0x8FF2B9 0x4093 +0x8FF2BA 0x77F0 +0x8FF2BB 0x77F4 +0x8FF2BC 0x77FB +0x8FF2BD 0x2542E +0x8FF2BE 0x7805 +0x8FF2BF 0x7806 +0x8FF2C0 0x7809 +0x8FF2C1 0x780D +0x8FF2C2 0x7819 +0x8FF2C3 0x7821 +0x8FF2C4 0x782C +0x8FF2C5 0x7847 +0x8FF2C6 0x7864 +0x8FF2C7 0x786A +0x8FF2C8 0x254D9 +0x8FF2C9 0x788A +0x8FF2CA 0x7894 +0x8FF2CB 0x78A4 +0x8FF2CC 0x789D +0x8FF2CD 0x789E +0x8FF2CE 0x789F +0x8FF2CF 0x78BB +0x8FF2D0 0x78C8 +0x8FF2D1 0x78CC +0x8FF2D2 0x78CE +0x8FF2D3 0x78D5 +0x8FF2D4 0x78E0 +0x8FF2D5 0x78E1 +0x8FF2D6 0x78E6 +0x8FF2D7 0x78F9 +0x8FF2D8 0x78FA +0x8FF2D9 0x78FB +0x8FF2DA 0x78FE +0x8FF2DB 0x255A7 +0x8FF2DC 0x7910 +0x8FF2DD 0x791B +0x8FF2DE 0x7930 +0x8FF2DF 0x7925 +0x8FF2E0 0x793B +0x8FF2E1 0x794A +0x8FF2E2 0x7958 +0x8FF2E3 0x795B +0x8FF2E4 0x4105 +0x8FF2E5 0x7967 +0x8FF2E6 0x7972 +0x8FF2E7 0x7994 +0x8FF2E8 0x7995 +0x8FF2E9 0x7996 +0x8FF2EA 0x799B +0x8FF2EB 0x79A1 +0x8FF2EC 0x79A9 +0x8FF2ED 0x79B4 +0x8FF2EE 0x79BB +0x8FF2EF 0x79C2 +0x8FF2F0 0x79C7 +0x8FF2F1 0x79CC +0x8FF2F2 0x79CD +0x8FF2F3 0x79D6 +0x8FF2F4 0x4148 +0x8FF2F5 0x257A9 +0x8FF2F6 0x257B4 +0x8FF2F7 0x414F +0x8FF2F8 0x7A0A +0x8FF2F9 0x7A11 +0x8FF2FA 0x7A15 +0x8FF2FB 0x7A1B +0x8FF2FC 0x7A1E +0x8FF2FD 0x4163 +0x8FF2FE 0x7A2D +0x8FF3A1 0x7A38 +0x8FF3A2 0x7A47 +0x8FF3A3 0x7A4C +0x8FF3A4 0x7A56 +0x8FF3A5 0x7A59 +0x8FF3A6 0x7A5C +0x8FF3A7 0x7A5F +0x8FF3A8 0x7A60 +0x8FF3A9 0x7A67 +0x8FF3AA 0x7A6A +0x8FF3AB 0x7A75 +0x8FF3AC 0x7A78 +0x8FF3AD 0x7A82 +0x8FF3AE 0x7A8A +0x8FF3AF 0x7A90 +0x8FF3B0 0x7AA3 +0x8FF3B1 0x7AAC +0x8FF3B2 0x259D4 +0x8FF3B3 0x41B4 +0x8FF3B4 0x7AB9 +0x8FF3B5 0x7ABC +0x8FF3B6 0x7ABE +0x8FF3B7 0x41BF +0x8FF3B8 0x7ACC +0x8FF3B9 0x7AD1 +0x8FF3BA 0x7AE7 +0x8FF3BB 0x7AE8 +0x8FF3BC 0x7AF4 +0x8FF3BD 0x25AE4 +0x8FF3BE 0x25AE3 +0x8FF3BF 0x7B07 +0x8FF3C0 0x25AF1 +0x8FF3C1 0x7B3D +0x8FF3C2 0x7B27 +0x8FF3C3 0x7B2A +0x8FF3C4 0x7B2E +0x8FF3C5 0x7B2F +0x8FF3C6 0x7B31 +0x8FF3C7 0x41E6 +0x8FF3C8 0x41F3 +0x8FF3C9 0x7B7F +0x8FF3CA 0x7B41 +0x8FF3CB 0x41EE +0x8FF3CC 0x7B55 +0x8FF3CD 0x7B79 +0x8FF3CE 0x7B64 +0x8FF3CF 0x7B66 +0x8FF3D0 0x7B69 +0x8FF3D1 0x7B73 +0x8FF3D2 0x25BB2 +0x8FF3D3 0x4207 +0x8FF3D4 0x7B90 +0x8FF3D5 0x7B91 +0x8FF3D6 0x7B9B +0x8FF3D7 0x420E +0x8FF3D8 0x7BAF +0x8FF3D9 0x7BB5 +0x8FF3DA 0x7BBC +0x8FF3DB 0x7BC5 +0x8FF3DC 0x7BCA +0x8FF3DD 0x25C4B +0x8FF3DE 0x25C64 +0x8FF3DF 0x7BD4 +0x8FF3E0 0x7BD6 +0x8FF3E1 0x7BDA +0x8FF3E2 0x7BEA +0x8FF3E3 0x7BF0 +0x8FF3E4 0x7C03 +0x8FF3E5 0x7C0B +0x8FF3E6 0x7C0E +0x8FF3E7 0x7C0F +0x8FF3E8 0x7C26 +0x8FF3E9 0x7C45 +0x8FF3EA 0x7C4A +0x8FF3EB 0x7C51 +0x8FF3EC 0x7C57 +0x8FF3ED 0x7C5E +0x8FF3EE 0x7C61 +0x8FF3EF 0x7C69 +0x8FF3F0 0x7C6E +0x8FF3F1 0x7C6F +0x8FF3F2 0x7C70 +0x8FF3F3 0x25E2E +0x8FF3F4 0x25E56 +0x8FF3F5 0x25E65 +0x8FF3F6 0x7CA6 +0x8FF3F7 0x25E62 +0x8FF3F8 0x7CB6 +0x8FF3F9 0x7CB7 +0x8FF3FA 0x7CBF +0x8FF3FB 0x25ED8 +0x8FF3FC 0x7CC4 +0x8FF3FD 0x25EC2 +0x8FF3FE 0x7CC8 +0x8FF4A1 0x7CCD +0x8FF4A2 0x25EE8 +0x8FF4A3 0x7CD7 +0x8FF4A4 0x25F23 +0x8FF4A5 0x7CE6 +0x8FF4A6 0x7CEB +0x8FF4A7 0x25F5C +0x8FF4A8 0x7CF5 +0x8FF4A9 0x7D03 +0x8FF4AA 0x7D09 +0x8FF4AB 0x42C6 +0x8FF4AC 0x7D12 +0x8FF4AD 0x7D1E +0x8FF4AE 0x25FE0 +0x8FF4AF 0x25FD4 +0x8FF4B0 0x7D3D +0x8FF4B1 0x7D3E +0x8FF4B2 0x7D40 +0x8FF4B3 0x7D47 +0x8FF4B4 0x2600C +0x8FF4B5 0x25FFB +0x8FF4B6 0x42D6 +0x8FF4B7 0x7D59 +0x8FF4B8 0x7D5A +0x8FF4B9 0x7D6A +0x8FF4BA 0x7D70 +0x8FF4BB 0x42DD +0x8FF4BC 0x7D7F +0x8FF4BD 0x26017 +0x8FF4BE 0x7D86 +0x8FF4BF 0x7D88 +0x8FF4C0 0x7D8C +0x8FF4C1 0x7D97 +0x8FF4C2 0x26060 +0x8FF4C3 0x7D9D +0x8FF4C4 0x7DA7 +0x8FF4C5 0x7DAA +0x8FF4C6 0x7DB6 +0x8FF4C7 0x7DB7 +0x8FF4C8 0x7DC0 +0x8FF4C9 0x7DD7 +0x8FF4CA 0x7DD9 +0x8FF4CB 0x7DE6 +0x8FF4CC 0x7DF1 +0x8FF4CD 0x7DF9 +0x8FF4CE 0x4302 +0x8FF4CF 0x260ED +0x8FF4D0 0xFA58 +0x8FF4D1 0x7E10 +0x8FF4D2 0x7E17 +0x8FF4D3 0x7E1D +0x8FF4D4 0x7E20 +0x8FF4D5 0x7E27 +0x8FF4D6 0x7E2C +0x8FF4D7 0x7E45 +0x8FF4D8 0x7E73 +0x8FF4D9 0x7E75 +0x8FF4DA 0x7E7E +0x8FF4DB 0x7E86 +0x8FF4DC 0x7E87 +0x8FF4DD 0x432B +0x8FF4DE 0x7E91 +0x8FF4DF 0x7E98 +0x8FF4E0 0x7E9A +0x8FF4E1 0x4343 +0x8FF4E2 0x7F3C +0x8FF4E3 0x7F3B +0x8FF4E4 0x7F3E +0x8FF4E5 0x7F43 +0x8FF4E6 0x7F44 +0x8FF4E7 0x7F4F +0x8FF4E8 0x34C1 +0x8FF4E9 0x26270 +0x8FF4EA 0x7F52 +0x8FF4EB 0x26286 +0x8FF4EC 0x7F61 +0x8FF4ED 0x7F63 +0x8FF4EE 0x7F64 +0x8FF4EF 0x7F6D +0x8FF4F0 0x7F7D +0x8FF4F1 0x7F7E +0x8FF4F2 0x2634C +0x8FF4F3 0x7F90 +0x8FF4F4 0x517B +0x8FF4F5 0x23D0E +0x8FF4F6 0x7F96 +0x8FF4F7 0x7F9C +0x8FF4F8 0x7FAD +0x8FF4F9 0x26402 +0x8FF4FA 0x7FC3 +0x8FF4FB 0x7FCF +0x8FF4FC 0x7FE3 +0x8FF4FD 0x7FE5 +0x8FF4FE 0x7FEF +0x8FF5A1 0x7FF2 +0x8FF5A2 0x8002 +0x8FF5A3 0x800A +0x8FF5A4 0x8008 +0x8FF5A5 0x800E +0x8FF5A6 0x8011 +0x8FF5A7 0x8016 +0x8FF5A8 0x8024 +0x8FF5A9 0x802C +0x8FF5AA 0x8030 +0x8FF5AB 0x8043 +0x8FF5AC 0x8066 +0x8FF5AD 0x8071 +0x8FF5AE 0x8075 +0x8FF5AF 0x807B +0x8FF5B0 0x8099 +0x8FF5B1 0x809C +0x8FF5B2 0x80A4 +0x8FF5B3 0x80A7 +0x8FF5B4 0x80B8 +0x8FF5B5 0x2667E +0x8FF5B6 0x80C5 +0x8FF5B7 0x80D5 +0x8FF5B8 0x80D8 +0x8FF5B9 0x80E6 +0x8FF5BA 0x266B0 +0x8FF5BB 0x810D +0x8FF5BC 0x80F5 +0x8FF5BD 0x80FB +0x8FF5BE 0x43EE +0x8FF5BF 0x8135 +0x8FF5C0 0x8116 +0x8FF5C1 0x811E +0x8FF5C2 0x43F0 +0x8FF5C3 0x8124 +0x8FF5C4 0x8127 +0x8FF5C5 0x812C +0x8FF5C6 0x2671D +0x8FF5C7 0x813D +0x8FF5C8 0x4408 +0x8FF5C9 0x8169 +0x8FF5CA 0x4417 +0x8FF5CB 0x8181 +0x8FF5CC 0x441C +0x8FF5CD 0x8184 +0x8FF5CE 0x8185 +0x8FF5CF 0x4422 +0x8FF5D0 0x8198 +0x8FF5D1 0x81B2 +0x8FF5D2 0x81C1 +0x8FF5D3 0x81C3 +0x8FF5D4 0x81D6 +0x8FF5D5 0x81DB +0x8FF5D6 0x268DD +0x8FF5D7 0x81E4 +0x8FF5D8 0x268EA +0x8FF5D9 0x81EC +0x8FF5DA 0x26951 +0x8FF5DB 0x81FD +0x8FF5DC 0x81FF +0x8FF5DD 0x2696F +0x8FF5DE 0x8204 +0x8FF5DF 0x269DD +0x8FF5E0 0x8219 +0x8FF5E1 0x8221 +0x8FF5E2 0x8222 +0x8FF5E3 0x26A1E +0x8FF5E4 0x8232 +0x8FF5E5 0x8234 +0x8FF5E6 0x823C +0x8FF5E7 0x8246 +0x8FF5E8 0x8249 +0x8FF5E9 0x8245 +0x8FF5EA 0x26A58 +0x8FF5EB 0x824B +0x8FF5EC 0x4476 +0x8FF5ED 0x824F +0x8FF5EE 0x447A +0x8FF5EF 0x8257 +0x8FF5F0 0x26A8C +0x8FF5F1 0x825C +0x8FF5F2 0x8263 +0x8FF5F3 0x26AB7 +0x8FF5F4 0xFA5D +0x8FF5F5 0xFA5E +0x8FF5F6 0x8279 +0x8FF5F7 0x4491 +0x8FF5F8 0x827D +0x8FF5F9 0x827F +0x8FF5FA 0x8283 +0x8FF5FB 0x828A +0x8FF5FC 0x8293 +0x8FF5FD 0x82A7 +0x8FF5FE 0x82A8 +0x8FF6A1 0x82B2 +0x8FF6A2 0x82B4 +0x8FF6A3 0x82BA +0x8FF6A4 0x82BC +0x8FF6A5 0x82E2 +0x8FF6A6 0x82E8 +0x8FF6A7 0x82F7 +0x8FF6A8 0x8307 +0x8FF6A9 0x8308 +0x8FF6AA 0x830C +0x8FF6AB 0x8354 +0x8FF6AC 0x831B +0x8FF6AD 0x831D +0x8FF6AE 0x8330 +0x8FF6AF 0x833C +0x8FF6B0 0x8344 +0x8FF6B1 0x8357 +0x8FF6B2 0x44BE +0x8FF6B3 0x837F +0x8FF6B4 0x44D4 +0x8FF6B5 0x44B3 +0x8FF6B6 0x838D +0x8FF6B7 0x8394 +0x8FF6B8 0x8395 +0x8FF6B9 0x839B +0x8FF6BA 0x839D +0x8FF6BB 0x83C9 +0x8FF6BC 0x83D0 +0x8FF6BD 0x83D4 +0x8FF6BE 0x83DD +0x8FF6BF 0x83E5 +0x8FF6C0 0x83F9 +0x8FF6C1 0x840F +0x8FF6C2 0x8411 +0x8FF6C3 0x8415 +0x8FF6C4 0x26C73 +0x8FF6C5 0x8417 +0x8FF6C6 0x8439 +0x8FF6C7 0x844A +0x8FF6C8 0x844F +0x8FF6C9 0x8451 +0x8FF6CA 0x8452 +0x8FF6CB 0x8459 +0x8FF6CC 0x845A +0x8FF6CD 0x845C +0x8FF6CE 0x26CDD +0x8FF6CF 0x8465 +0x8FF6D0 0x8476 +0x8FF6D1 0x8478 +0x8FF6D2 0x847C +0x8FF6D3 0x8481 +0x8FF6D4 0x450D +0x8FF6D5 0x84DC +0x8FF6D6 0x8497 +0x8FF6D7 0x84A6 +0x8FF6D8 0x84BE +0x8FF6D9 0x4508 +0x8FF6DA 0x84CE +0x8FF6DB 0x84CF +0x8FF6DC 0x84D3 +0x8FF6DD 0x26E65 +0x8FF6DE 0x84E7 +0x8FF6DF 0x84EA +0x8FF6E0 0x84EF +0x8FF6E1 0x84F0 +0x8FF6E2 0x84F1 +0x8FF6E3 0x84FA +0x8FF6E4 0x84FD +0x8FF6E5 0x850C +0x8FF6E6 0x851B +0x8FF6E7 0x8524 +0x8FF6E8 0x8525 +0x8FF6E9 0x852B +0x8FF6EA 0x8534 +0x8FF6EB 0x854F +0x8FF6EC 0x856F +0x8FF6ED 0x4525 +0x8FF6EE 0x4543 +0x8FF6EF 0x853E +0x8FF6F0 0x8551 +0x8FF6F1 0x8553 +0x8FF6F2 0x855E +0x8FF6F3 0x8561 +0x8FF6F4 0x8562 +0x8FF6F5 0x26F94 +0x8FF6F6 0x857B +0x8FF6F7 0x857D +0x8FF6F8 0x857F +0x8FF6F9 0x8581 +0x8FF6FA 0x8586 +0x8FF6FB 0x8593 +0x8FF6FC 0x859D +0x8FF6FD 0x859F +0x8FF6FE 0x26FF8 +0x8FF7A1 0x26FF6 +0x8FF7A2 0x26FF7 +0x8FF7A3 0x85B7 +0x8FF7A4 0x85BC +0x8FF7A5 0x85C7 +0x8FF7A6 0x85CA +0x8FF7A7 0x85D8 +0x8FF7A8 0x85D9 +0x8FF7A9 0x85DF +0x8FF7AA 0x85E1 +0x8FF7AB 0x85E6 +0x8FF7AC 0x85F6 +0x8FF7AD 0x8600 +0x8FF7AE 0x8611 +0x8FF7AF 0x861E +0x8FF7B0 0x8621 +0x8FF7B1 0x8624 +0x8FF7B2 0x8627 +0x8FF7B3 0x2710D +0x8FF7B4 0x8639 +0x8FF7B5 0x863C +0x8FF7B6 0x27139 +0x8FF7B7 0x8640 +0x8FF7B8 0xFA20 +0x8FF7B9 0x8653 +0x8FF7BA 0x8656 +0x8FF7BB 0x866F +0x8FF7BC 0x8677 +0x8FF7BD 0x867A +0x8FF7BE 0x8687 +0x8FF7BF 0x8689 +0x8FF7C0 0x868D +0x8FF7C1 0x8691 +0x8FF7C2 0x869C +0x8FF7C3 0x869D +0x8FF7C4 0x86A8 +0x8FF7C5 0xFA21 +0x8FF7C6 0x86B1 +0x8FF7C7 0x86B3 +0x8FF7C8 0x86C1 +0x8FF7C9 0x86C3 +0x8FF7CA 0x86D1 +0x8FF7CB 0x86D5 +0x8FF7CC 0x86D7 +0x8FF7CD 0x86E3 +0x8FF7CE 0x86E6 +0x8FF7CF 0x45B8 +0x8FF7D0 0x8705 +0x8FF7D1 0x8707 +0x8FF7D2 0x870E +0x8FF7D3 0x8710 +0x8FF7D4 0x8713 +0x8FF7D5 0x8719 +0x8FF7D6 0x871F +0x8FF7D7 0x8721 +0x8FF7D8 0x8723 +0x8FF7D9 0x8731 +0x8FF7DA 0x873A +0x8FF7DB 0x873E +0x8FF7DC 0x8740 +0x8FF7DD 0x8743 +0x8FF7DE 0x8751 +0x8FF7DF 0x8758 +0x8FF7E0 0x8764 +0x8FF7E1 0x8765 +0x8FF7E2 0x8772 +0x8FF7E3 0x877C +0x8FF7E4 0x273DB +0x8FF7E5 0x273DA +0x8FF7E6 0x87A7 +0x8FF7E7 0x8789 +0x8FF7E8 0x878B +0x8FF7E9 0x8793 +0x8FF7EA 0x87A0 +0x8FF7EB 0x273FE +0x8FF7EC 0x45E5 +0x8FF7ED 0x87BE +0x8FF7EE 0x27410 +0x8FF7EF 0x87C1 +0x8FF7F0 0x87CE +0x8FF7F1 0x87F5 +0x8FF7F2 0x87DF +0x8FF7F3 0x27449 +0x8FF7F4 0x87E3 +0x8FF7F5 0x87E5 +0x8FF7F6 0x87E6 +0x8FF7F7 0x87EA +0x8FF7F8 0x87EB +0x8FF7F9 0x87ED +0x8FF7FA 0x8801 +0x8FF7FB 0x8803 +0x8FF7FC 0x880B +0x8FF7FD 0x8813 +0x8FF7FE 0x8828 +0x8FF8A1 0x882E +0x8FF8A2 0x8832 +0x8FF8A3 0x883C +0x8FF8A4 0x460F +0x8FF8A5 0x884A +0x8FF8A6 0x8858 +0x8FF8A7 0x885F +0x8FF8A8 0x8864 +0x8FF8A9 0x27615 +0x8FF8AA 0x27614 +0x8FF8AB 0x8869 +0x8FF8AC 0x27631 +0x8FF8AD 0x886F +0x8FF8AE 0x88A0 +0x8FF8AF 0x88BC +0x8FF8B0 0x88BD +0x8FF8B1 0x88BE +0x8FF8B2 0x88C0 +0x8FF8B3 0x88D2 +0x8FF8B4 0x27693 +0x8FF8B5 0x88D1 +0x8FF8B6 0x88D3 +0x8FF8B7 0x88DB +0x8FF8B8 0x88F0 +0x8FF8B9 0x88F1 +0x8FF8BA 0x4641 +0x8FF8BB 0x8901 +0x8FF8BC 0x2770E +0x8FF8BD 0x8937 +0x8FF8BE 0x27723 +0x8FF8BF 0x8942 +0x8FF8C0 0x8945 +0x8FF8C1 0x8949 +0x8FF8C2 0x27752 +0x8FF8C3 0x4665 +0x8FF8C4 0x8962 +0x8FF8C5 0x8980 +0x8FF8C6 0x8989 +0x8FF8C7 0x8990 +0x8FF8C8 0x899F +0x8FF8C9 0x89B0 +0x8FF8CA 0x89B7 +0x8FF8CB 0x89D6 +0x8FF8CC 0x89D8 +0x8FF8CD 0x89EB +0x8FF8CE 0x46A1 +0x8FF8CF 0x89F1 +0x8FF8D0 0x89F3 +0x8FF8D1 0x89FD +0x8FF8D2 0x89FF +0x8FF8D3 0x46AF +0x8FF8D4 0x8A11 +0x8FF8D5 0x8A14 +0x8FF8D6 0x27985 +0x8FF8D7 0x8A21 +0x8FF8D8 0x8A35 +0x8FF8D9 0x8A3E +0x8FF8DA 0x8A45 +0x8FF8DB 0x8A4D +0x8FF8DC 0x8A58 +0x8FF8DD 0x8AAE +0x8FF8DE 0x8A90 +0x8FF8DF 0x8AB7 +0x8FF8E0 0x8ABE +0x8FF8E1 0x8AD7 +0x8FF8E2 0x8AFC +0x8FF8E3 0x27A84 +0x8FF8E4 0x8B0A +0x8FF8E5 0x8B05 +0x8FF8E6 0x8B0D +0x8FF8E7 0x8B1C +0x8FF8E8 0x8B1F +0x8FF8E9 0x8B2D +0x8FF8EA 0x8B43 +0x8FF8EB 0x470C +0x8FF8EC 0x8B51 +0x8FF8ED 0x8B5E +0x8FF8EE 0x8B76 +0x8FF8EF 0x8B7F +0x8FF8F0 0x8B81 +0x8FF8F1 0x8B8B +0x8FF8F2 0x8B94 +0x8FF8F3 0x8B95 +0x8FF8F4 0x8B9C +0x8FF8F5 0x8B9E +0x8FF8F6 0x8C39 +0x8FF8F7 0x27BB3 +0x8FF8F8 0x8C3D +0x8FF8F9 0x27BBE +0x8FF8FA 0x27BC7 +0x8FF8FB 0x8C45 +0x8FF8FC 0x8C47 +0x8FF8FD 0x8C4F +0x8FF8FE 0x8C54 +0x8FF9A1 0x8C57 +0x8FF9A2 0x8C69 +0x8FF9A3 0x8C6D +0x8FF9A4 0x8C73 +0x8FF9A5 0x27CB8 +0x8FF9A6 0x8C93 +0x8FF9A7 0x8C92 +0x8FF9A8 0x8C99 +0x8FF9A9 0x4764 +0x8FF9AA 0x8C9B +0x8FF9AB 0x8CA4 +0x8FF9AC 0x8CD6 +0x8FF9AD 0x8CD5 +0x8FF9AE 0x8CD9 +0x8FF9AF 0x27DA0 +0x8FF9B0 0x8CF0 +0x8FF9B1 0x8CF1 +0x8FF9B2 0x27E10 +0x8FF9B3 0x8D09 +0x8FF9B4 0x8D0E +0x8FF9B5 0x8D6C +0x8FF9B6 0x8D84 +0x8FF9B7 0x8D95 +0x8FF9B8 0x8DA6 +0x8FF9B9 0x27FB7 +0x8FF9BA 0x8DC6 +0x8FF9BB 0x8DC8 +0x8FF9BC 0x8DD9 +0x8FF9BD 0x8DEC +0x8FF9BE 0x8E0C +0x8FF9BF 0x47FD +0x8FF9C0 0x8DFD +0x8FF9C1 0x8E06 +0x8FF9C2 0x2808A +0x8FF9C3 0x8E14 +0x8FF9C4 0x8E16 +0x8FF9C5 0x8E21 +0x8FF9C6 0x8E22 +0x8FF9C7 0x8E27 +0x8FF9C8 0x280BB +0x8FF9C9 0x4816 +0x8FF9CA 0x8E36 +0x8FF9CB 0x8E39 +0x8FF9CC 0x8E4B +0x8FF9CD 0x8E54 +0x8FF9CE 0x8E62 +0x8FF9CF 0x8E6C +0x8FF9D0 0x8E6D +0x8FF9D1 0x8E6F +0x8FF9D2 0x8E98 +0x8FF9D3 0x8E9E +0x8FF9D4 0x8EAE +0x8FF9D5 0x8EB3 +0x8FF9D6 0x8EB5 +0x8FF9D7 0x8EB6 +0x8FF9D8 0x8EBB +0x8FF9D9 0x28282 +0x8FF9DA 0x8ED1 +0x8FF9DB 0x8ED4 +0x8FF9DC 0x484E +0x8FF9DD 0x8EF9 +0x8FF9DE 0x282F3 +0x8FF9DF 0x8F00 +0x8FF9E0 0x8F08 +0x8FF9E1 0x8F17 +0x8FF9E2 0x8F2B +0x8FF9E3 0x8F40 +0x8FF9E4 0x8F4A +0x8FF9E5 0x8F58 +0x8FF9E6 0x2840C +0x8FF9E7 0x8FA4 +0x8FF9E8 0x8FB4 +0x8FF9E9 0xFA66 +0x8FF9EA 0x8FB6 +0x8FF9EB 0x28455 +0x8FF9EC 0x8FC1 +0x8FF9ED 0x8FC6 +0x8FF9EE 0xFA24 +0x8FF9EF 0x8FCA +0x8FF9F0 0x8FCD +0x8FF9F1 0x8FD3 +0x8FF9F2 0x8FD5 +0x8FF9F3 0x8FE0 +0x8FF9F4 0x8FF1 +0x8FF9F5 0x8FF5 +0x8FF9F6 0x8FFB +0x8FF9F7 0x9002 +0x8FF9F8 0x900C +0x8FF9F9 0x9037 +0x8FF9FA 0x2856B +0x8FF9FB 0x9043 +0x8FF9FC 0x9044 +0x8FF9FD 0x905D +0x8FF9FE 0x285C8 +0x8FFAA1 0x285C9 +0x8FFAA2 0x9085 +0x8FFAA3 0x908C +0x8FFAA4 0x9090 +0x8FFAA5 0x961D +0x8FFAA6 0x90A1 +0x8FFAA7 0x48B5 +0x8FFAA8 0x90B0 +0x8FFAA9 0x90B6 +0x8FFAAA 0x90C3 +0x8FFAAB 0x90C8 +0x8FFAAC 0x286D7 +0x8FFAAD 0x90DC +0x8FFAAE 0x90DF +0x8FFAAF 0x286FA +0x8FFAB0 0x90F6 +0x8FFAB1 0x90F2 +0x8FFAB2 0x9100 +0x8FFAB3 0x90EB +0x8FFAB4 0x90FE +0x8FFAB5 0x90FF +0x8FFAB6 0x9104 +0x8FFAB7 0x9106 +0x8FFAB8 0x9118 +0x8FFAB9 0x911C +0x8FFABA 0x911E +0x8FFABB 0x9137 +0x8FFABC 0x9139 +0x8FFABD 0x913A +0x8FFABE 0x9146 +0x8FFABF 0x9147 +0x8FFAC0 0x9157 +0x8FFAC1 0x9159 +0x8FFAC2 0x9161 +0x8FFAC3 0x9164 +0x8FFAC4 0x9174 +0x8FFAC5 0x9179 +0x8FFAC6 0x9185 +0x8FFAC7 0x918E +0x8FFAC8 0x91A8 +0x8FFAC9 0x91AE +0x8FFACA 0x91B3 +0x8FFACB 0x91B6 +0x8FFACC 0x91C3 +0x8FFACD 0x91C4 +0x8FFACE 0x91DA +0x8FFACF 0x28949 +0x8FFAD0 0x28946 +0x8FFAD1 0x91EC +0x8FFAD2 0x91EE +0x8FFAD3 0x9201 +0x8FFAD4 0x920A +0x8FFAD5 0x9216 +0x8FFAD6 0x9217 +0x8FFAD7 0x2896B +0x8FFAD8 0x9233 +0x8FFAD9 0x9242 +0x8FFADA 0x9247 +0x8FFADB 0x924A +0x8FFADC 0x924E +0x8FFADD 0x9251 +0x8FFADE 0x9256 +0x8FFADF 0x9259 +0x8FFAE0 0x9260 +0x8FFAE1 0x9261 +0x8FFAE2 0x9265 +0x8FFAE3 0x9267 +0x8FFAE4 0x9268 +0x8FFAE5 0x28987 +0x8FFAE6 0x28988 +0x8FFAE7 0x927C +0x8FFAE8 0x927D +0x8FFAE9 0x927F +0x8FFAEA 0x9289 +0x8FFAEB 0x928D +0x8FFAEC 0x9297 +0x8FFAED 0x9299 +0x8FFAEE 0x929F +0x8FFAEF 0x92A7 +0x8FFAF0 0x92AB +0x8FFAF1 0x289BA +0x8FFAF2 0x289BB +0x8FFAF3 0x92B2 +0x8FFAF4 0x92BF +0x8FFAF5 0x92C0 +0x8FFAF6 0x92C6 +0x8FFAF7 0x92CE +0x8FFAF8 0x92D0 +0x8FFAF9 0x92D7 +0x8FFAFA 0x92D9 +0x8FFAFB 0x92E5 +0x8FFAFC 0x92E7 +0x8FFAFD 0x9311 +0x8FFAFE 0x28A1E +0x8FFBA1 0x28A29 +0x8FFBA2 0x92F7 +0x8FFBA3 0x92F9 +0x8FFBA4 0x92FB +0x8FFBA5 0x9302 +0x8FFBA6 0x930D +0x8FFBA7 0x9315 +0x8FFBA8 0x931D +0x8FFBA9 0x931E +0x8FFBAA 0x9327 +0x8FFBAB 0x9329 +0x8FFBAC 0x28A71 +0x8FFBAD 0x28A43 +0x8FFBAE 0x9347 +0x8FFBAF 0x9351 +0x8FFBB0 0x9357 +0x8FFBB1 0x935A +0x8FFBB2 0x936B +0x8FFBB3 0x9371 +0x8FFBB4 0x9373 +0x8FFBB5 0x93A1 +0x8FFBB6 0x28A99 +0x8FFBB7 0x28ACD +0x8FFBB8 0x9388 +0x8FFBB9 0x938B +0x8FFBBA 0x938F +0x8FFBBB 0x939E +0x8FFBBC 0x93F5 +0x8FFBBD 0x28AE4 +0x8FFBBE 0x28ADD +0x8FFBBF 0x93F1 +0x8FFBC0 0x93C1 +0x8FFBC1 0x93C7 +0x8FFBC2 0x93DC +0x8FFBC3 0x93E2 +0x8FFBC4 0x93E7 +0x8FFBC5 0x9409 +0x8FFBC6 0x940F +0x8FFBC7 0x9416 +0x8FFBC8 0x9417 +0x8FFBC9 0x93FB +0x8FFBCA 0x9432 +0x8FFBCB 0x9434 +0x8FFBCC 0x943B +0x8FFBCD 0x9445 +0x8FFBCE 0x28BC1 +0x8FFBCF 0x28BEF +0x8FFBD0 0x946D +0x8FFBD1 0x946F +0x8FFBD2 0x9578 +0x8FFBD3 0x9579 +0x8FFBD4 0x9586 +0x8FFBD5 0x958C +0x8FFBD6 0x958D +0x8FFBD7 0x28D10 +0x8FFBD8 0x95AB +0x8FFBD9 0x95B4 +0x8FFBDA 0x28D71 +0x8FFBDB 0x95C8 +0x8FFBDC 0x28DFB +0x8FFBDD 0x28E1F +0x8FFBDE 0x962C +0x8FFBDF 0x9633 +0x8FFBE0 0x9634 +0x8FFBE1 0x28E36 +0x8FFBE2 0x963C +0x8FFBE3 0x9641 +0x8FFBE4 0x9661 +0x8FFBE5 0x28E89 +0x8FFBE6 0x9682 +0x8FFBE7 0x28EEB +0x8FFBE8 0x969A +0x8FFBE9 0x28F32 +0x8FFBEA 0x49E7 +0x8FFBEB 0x96A9 +0x8FFBEC 0x96AF +0x8FFBED 0x96B3 +0x8FFBEE 0x96BA +0x8FFBEF 0x96BD +0x8FFBF0 0x49FA +0x8FFBF1 0x28FF8 +0x8FFBF2 0x96D8 +0x8FFBF3 0x96DA +0x8FFBF4 0x96DD +0x8FFBF5 0x4A04 +0x8FFBF6 0x9714 +0x8FFBF7 0x9723 +0x8FFBF8 0x4A29 +0x8FFBF9 0x9736 +0x8FFBFA 0x9741 +0x8FFBFB 0x9747 +0x8FFBFC 0x9755 +0x8FFBFD 0x9757 +0x8FFBFE 0x975B +0x8FFCA1 0x976A +0x8FFCA2 0x292A0 +0x8FFCA3 0x292B1 +0x8FFCA4 0x9796 +0x8FFCA5 0x979A +0x8FFCA6 0x979E +0x8FFCA7 0x97A2 +0x8FFCA8 0x97B1 +0x8FFCA9 0x97B2 +0x8FFCAA 0x97BE +0x8FFCAB 0x97CC +0x8FFCAC 0x97D1 +0x8FFCAD 0x97D4 +0x8FFCAE 0x97D8 +0x8FFCAF 0x97D9 +0x8FFCB0 0x97E1 +0x8FFCB1 0x97F1 +0x8FFCB2 0x9804 +0x8FFCB3 0x980D +0x8FFCB4 0x980E +0x8FFCB5 0x9814 +0x8FFCB6 0x9816 +0x8FFCB7 0x4ABC +0x8FFCB8 0x29490 +0x8FFCB9 0x9823 +0x8FFCBA 0x9832 +0x8FFCBB 0x9833 +0x8FFCBC 0x9825 +0x8FFCBD 0x9847 +0x8FFCBE 0x9866 +0x8FFCBF 0x98AB +0x8FFCC0 0x98AD +0x8FFCC1 0x98B0 +0x8FFCC2 0x295CF +0x8FFCC3 0x98B7 +0x8FFCC4 0x98B8 +0x8FFCC5 0x98BB +0x8FFCC6 0x98BC +0x8FFCC7 0x98BF +0x8FFCC8 0x98C2 +0x8FFCC9 0x98C7 +0x8FFCCA 0x98CB +0x8FFCCB 0x98E0 +0x8FFCCC 0x2967F +0x8FFCCD 0x98E1 +0x8FFCCE 0x98E3 +0x8FFCCF 0x98E5 +0x8FFCD0 0x98EA +0x8FFCD1 0x98F0 +0x8FFCD2 0x98F1 +0x8FFCD3 0x98F3 +0x8FFCD4 0x9908 +0x8FFCD5 0x4B3B +0x8FFCD6 0x296F0 +0x8FFCD7 0x9916 +0x8FFCD8 0x9917 +0x8FFCD9 0x29719 +0x8FFCDA 0x991A +0x8FFCDB 0x991B +0x8FFCDC 0x991C +0x8FFCDD 0x29750 +0x8FFCDE 0x9931 +0x8FFCDF 0x9932 +0x8FFCE0 0x9933 +0x8FFCE1 0x993A +0x8FFCE2 0x993B +0x8FFCE3 0x993C +0x8FFCE4 0x9940 +0x8FFCE5 0x9941 +0x8FFCE6 0x9946 +0x8FFCE7 0x994D +0x8FFCE8 0x994E +0x8FFCE9 0x995C +0x8FFCEA 0x995F +0x8FFCEB 0x9960 +0x8FFCEC 0x99A3 +0x8FFCED 0x99A6 +0x8FFCEE 0x99B9 +0x8FFCEF 0x99BD +0x8FFCF0 0x99BF +0x8FFCF1 0x99C3 +0x8FFCF2 0x99C9 +0x8FFCF3 0x99D4 +0x8FFCF4 0x99D9 +0x8FFCF5 0x99DE +0x8FFCF6 0x298C6 +0x8FFCF7 0x99F0 +0x8FFCF8 0x99F9 +0x8FFCF9 0x99FC +0x8FFCFA 0x9A0A +0x8FFCFB 0x9A11 +0x8FFCFC 0x9A16 +0x8FFCFD 0x9A1A +0x8FFCFE 0x9A20 +0x8FFDA1 0x9A31 +0x8FFDA2 0x9A36 +0x8FFDA3 0x9A44 +0x8FFDA4 0x9A4C +0x8FFDA5 0x9A58 +0x8FFDA6 0x4BC2 +0x8FFDA7 0x9AAF +0x8FFDA8 0x4BCA +0x8FFDA9 0x9AB7 +0x8FFDAA 0x4BD2 +0x8FFDAB 0x9AB9 +0x8FFDAC 0x29A72 +0x8FFDAD 0x9AC6 +0x8FFDAE 0x9AD0 +0x8FFDAF 0x9AD2 +0x8FFDB0 0x9AD5 +0x8FFDB1 0x4BE8 +0x8FFDB2 0x9ADC +0x8FFDB3 0x9AE0 +0x8FFDB4 0x9AE5 +0x8FFDB5 0x9AE9 +0x8FFDB6 0x9B03 +0x8FFDB7 0x9B0C +0x8FFDB8 0x9B10 +0x8FFDB9 0x9B12 +0x8FFDBA 0x9B16 +0x8FFDBB 0x9B1C +0x8FFDBC 0x9B2B +0x8FFDBD 0x9B33 +0x8FFDBE 0x9B3D +0x8FFDBF 0x4C20 +0x8FFDC0 0x9B4B +0x8FFDC1 0x9B63 +0x8FFDC2 0x9B65 +0x8FFDC3 0x9B6B +0x8FFDC4 0x9B6C +0x8FFDC5 0x9B73 +0x8FFDC6 0x9B76 +0x8FFDC7 0x9B77 +0x8FFDC8 0x9BA6 +0x8FFDC9 0x9BAC +0x8FFDCA 0x9BB1 +0x8FFDCB 0x29DDB +0x8FFDCC 0x29E3D +0x8FFDCD 0x9BB2 +0x8FFDCE 0x9BB8 +0x8FFDCF 0x9BBE +0x8FFDD0 0x9BC7 +0x8FFDD1 0x9BF3 +0x8FFDD2 0x9BD8 +0x8FFDD3 0x9BDD +0x8FFDD4 0x9BE7 +0x8FFDD5 0x9BEA +0x8FFDD6 0x9BEB +0x8FFDD7 0x9BEF +0x8FFDD8 0x9BEE +0x8FFDD9 0x29E15 +0x8FFDDA 0x9BFA +0x8FFDDB 0x29E8A +0x8FFDDC 0x9BF7 +0x8FFDDD 0x29E49 +0x8FFDDE 0x9C16 +0x8FFDDF 0x9C18 +0x8FFDE0 0x9C19 +0x8FFDE1 0x9C1A +0x8FFDE2 0x9C1D +0x8FFDE3 0x9C22 +0x8FFDE4 0x9C27 +0x8FFDE5 0x9C29 +0x8FFDE6 0x9C2A +0x8FFDE7 0x29EC4 +0x8FFDE8 0x9C31 +0x8FFDE9 0x9C36 +0x8FFDEA 0x9C37 +0x8FFDEB 0x9C45 +0x8FFDEC 0x9C5C +0x8FFDED 0x29EE9 +0x8FFDEE 0x9C49 +0x8FFDEF 0x9C4A +0x8FFDF0 0x29EDB +0x8FFDF1 0x9C54 +0x8FFDF2 0x9C58 +0x8FFDF3 0x9C5B +0x8FFDF4 0x9C5D +0x8FFDF5 0x9C5F +0x8FFDF6 0x9C69 +0x8FFDF7 0x9C6A +0x8FFDF8 0x9C6B +0x8FFDF9 0x9C6D +0x8FFDFA 0x9C6E +0x8FFDFB 0x9C70 +0x8FFDFC 0x9C72 +0x8FFDFD 0x9C75 +0x8FFDFE 0x9C7A +0x8FFEA1 0x9CE6 +0x8FFEA2 0x9CF2 +0x8FFEA3 0x9D0B +0x8FFEA4 0x9D02 +0x8FFEA5 0x29FCE +0x8FFEA6 0x9D11 +0x8FFEA7 0x9D17 +0x8FFEA8 0x9D18 +0x8FFEA9 0x2A02F +0x8FFEAA 0x4CC4 +0x8FFEAB 0x2A01A +0x8FFEAC 0x9D32 +0x8FFEAD 0x4CD1 +0x8FFEAE 0x9D42 +0x8FFEAF 0x9D4A +0x8FFEB0 0x9D5F +0x8FFEB1 0x9D62 +0x8FFEB2 0x2A0F9 +0x8FFEB3 0x9D69 +0x8FFEB4 0x9D6B +0x8FFEB5 0x2A082 +0x8FFEB6 0x9D73 +0x8FFEB7 0x9D76 +0x8FFEB8 0x9D77 +0x8FFEB9 0x9D7E +0x8FFEBA 0x9D84 +0x8FFEBB 0x9D8D +0x8FFEBC 0x9D99 +0x8FFEBD 0x9DA1 +0x8FFEBE 0x9DBF +0x8FFEBF 0x9DB5 +0x8FFEC0 0x9DB9 +0x8FFEC1 0x9DBD +0x8FFEC2 0x9DC3 +0x8FFEC3 0x9DC7 +0x8FFEC4 0x9DC9 +0x8FFEC5 0x9DD6 +0x8FFEC6 0x9DDA +0x8FFEC7 0x9DDF +0x8FFEC8 0x9DE0 +0x8FFEC9 0x9DE3 +0x8FFECA 0x9DF4 +0x8FFECB 0x4D07 +0x8FFECC 0x9E0A +0x8FFECD 0x9E02 +0x8FFECE 0x9E0D +0x8FFECF 0x9E19 +0x8FFED0 0x9E1C +0x8FFED1 0x9E1D +0x8FFED2 0x9E7B +0x8FFED3 0x22218 +0x8FFED4 0x9E80 +0x8FFED5 0x9E85 +0x8FFED6 0x9E9B +0x8FFED7 0x9EA8 +0x8FFED8 0x2A38C +0x8FFED9 0x9EBD +0x8FFEDA 0x2A437 +0x8FFEDB 0x9EDF +0x8FFEDC 0x9EE7 +0x8FFEDD 0x9EEE +0x8FFEDE 0x9EFF +0x8FFEDF 0x9F02 +0x8FFEE0 0x4D77 +0x8FFEE1 0x9F03 +0x8FFEE2 0x9F17 +0x8FFEE3 0x9F19 +0x8FFEE4 0x9F2F +0x8FFEE5 0x9F37 +0x8FFEE6 0x9F3A +0x8FFEE7 0x9F3D +0x8FFEE8 0x9F41 +0x8FFEE9 0x9F45 +0x8FFEEA 0x9F46 +0x8FFEEB 0x9F53 +0x8FFEEC 0x9F55 +0x8FFEED 0x9F58 +0x8FFEEE 0x2A5F1 +0x8FFEEF 0x9F5D +0x8FFEF0 0x2A602 +0x8FFEF1 0x9F69 +0x8FFEF2 0x2A61A +0x8FFEF3 0x9F6D +0x8FFEF4 0x9F70 +0x8FFEF5 0x9F75 +0x8FFEF6 0x2A6B2 +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0xFF0C +0xA1A5 0xFF0E +0xA1A6 0x30FB +0xA1A7 0xFF1A +0xA1A8 0xFF1B +0xA1A9 0xFF1F +0xA1AA 0xFF01 +0xA1AB 0x309B +0xA1AC 0x309C +0xA1AD 0x00B4 +0xA1AE 0xFF40 +0xA1AF 0x00A8 +0xA1B0 0xFF3E +0xA1B1 0xFFE3 +0xA1B2 0xFF3F +0xA1B3 0x30FD +0xA1B4 0x30FE +0xA1B5 0x309D +0xA1B6 0x309E +0xA1B7 0x3003 +0xA1B8 0x4EDD +0xA1B9 0x3005 +0xA1BA 0x3006 +0xA1BB 0x3007 +0xA1BC 0x30FC +0xA1BD 0x2014 +0xA1BE 0x2010 +0xA1BF 0xFF0F +0xA1C0 0xFF3C +0xA1C1 0x301C +0xA1C2 0x2016 +0xA1C3 0xFF5C +0xA1C4 0x2026 +0xA1C5 0x2025 +0xA1C6 0x2018 +0xA1C7 0x2019 +0xA1C8 0x201C +0xA1C9 0x201D +0xA1CA 0xFF08 +0xA1CB 0xFF09 +0xA1CC 0x3014 +0xA1CD 0x3015 +0xA1CE 0xFF3B +0xA1CF 0xFF3D +0xA1D0 0xFF5B +0xA1D1 0xFF5D +0xA1D2 0x3008 +0xA1D3 0x3009 +0xA1D4 0x300A +0xA1D5 0x300B +0xA1D6 0x300C +0xA1D7 0x300D +0xA1D8 0x300E +0xA1D9 0x300F +0xA1DA 0x3010 +0xA1DB 0x3011 +0xA1DC 0xFF0B +0xA1DD 0x2212 +0xA1DE 0x00B1 +0xA1DF 0x00D7 +0xA1E0 0x00F7 +0xA1E1 0xFF1D +0xA1E2 0x2260 +0xA1E3 0xFF1C +0xA1E4 0xFF1E +0xA1E5 0x2266 +0xA1E6 0x2267 +0xA1E7 0x221E +0xA1E8 0x2234 +0xA1E9 0x2642 +0xA1EA 0x2640 +0xA1EB 0x00B0 +0xA1EC 0x2032 +0xA1ED 0x2033 +0xA1EE 0x2103 +0xA1EF 0xFFE5 +0xA1F0 0xFF04 +0xA1F1 0x00A2 +0xA1F2 0x00A3 +0xA1F3 0xFF05 +0xA1F4 0xFF03 +0xA1F5 0xFF06 +0xA1F6 0xFF0A +0xA1F7 0xFF20 +0xA1F8 0x00A7 +0xA1F9 0x2606 +0xA1FA 0x2605 +0xA1FB 0x25CB +0xA1FC 0x25CF +0xA1FD 0x25CE +0xA1FE 0x25C7 +0xA2A1 0x25C6 +0xA2A2 0x25A1 +0xA2A3 0x25A0 +0xA2A4 0x25B3 +0xA2A5 0x25B2 +0xA2A6 0x25BD +0xA2A7 0x25BC +0xA2A8 0x203B +0xA2A9 0x3012 +0xA2AA 0x2192 +0xA2AB 0x2190 +0xA2AC 0x2191 +0xA2AD 0x2193 +0xA2AE 0x3013 +0xA2AF 0xFF07 +0xA2B0 0xFF02 +0xA2B1 0xFF0D +0xA2B2 0xFF5E +0xA2B3 0x3033 +0xA2B4 0x3034 +0xA2B5 0x3035 +0xA2B6 0x303B +0xA2B7 0x303C +0xA2B8 0x30FF +0xA2B9 0x309F +0xA2BA 0x2208 +0xA2BB 0x220B +0xA2BC 0x2286 +0xA2BD 0x2287 +0xA2BE 0x2282 +0xA2BF 0x2283 +0xA2C0 0x222A +0xA2C1 0x2229 +0xA2C2 0x2284 +0xA2C3 0x2285 +0xA2C4 0x228A +0xA2C5 0x228B +0xA2C6 0x2209 +0xA2C7 0x2205 +0xA2C8 0x2305 +0xA2C9 0x2306 +0xA2CA 0x2227 +0xA2CB 0x2228 +0xA2CC 0x00AC +0xA2CD 0x21D2 +0xA2CE 0x21D4 +0xA2CF 0x2200 +0xA2D0 0x2203 +0xA2D1 0x2295 +0xA2D2 0x2296 +0xA2D3 0x2297 +0xA2D4 0x2225 +0xA2D5 0x2226 +0xA2D6 0xFF5F +0xA2D7 0xFF60 +0xA2D8 0x3018 +0xA2D9 0x3019 +0xA2DA 0x3016 +0xA2DB 0x3017 +0xA2DC 0x2220 +0xA2DD 0x22A5 +0xA2DE 0x2312 +0xA2DF 0x2202 +0xA2E0 0x2207 +0xA2E1 0x2261 +0xA2E2 0x2252 +0xA2E3 0x226A +0xA2E4 0x226B +0xA2E5 0x221A +0xA2E6 0x223D +0xA2E7 0x221D +0xA2E8 0x2235 +0xA2E9 0x222B +0xA2EA 0x222C +0xA2EB 0x2262 +0xA2EC 0x2243 +0xA2ED 0x2245 +0xA2EE 0x2248 +0xA2EF 0x2276 +0xA2F0 0x2277 +0xA2F1 0x2194 +0xA2F2 0x212B +0xA2F3 0x2030 +0xA2F4 0x266F +0xA2F5 0x266D +0xA2F6 0x266A +0xA2F7 0x2020 +0xA2F8 0x2021 +0xA2F9 0x00B6 +0xA2FA 0x266E +0xA2FB 0x266B +0xA2FC 0x266C +0xA2FD 0x2669 +0xA2FE 0x25EF +0xA3A1 0x25B7 +0xA3A2 0x25B6 +0xA3A3 0x25C1 +0xA3A4 0x25C0 +0xA3A5 0x2197 +0xA3A6 0x2198 +0xA3A7 0x2196 +0xA3A8 0x2199 +0xA3A9 0x21C4 +0xA3AA 0x21E8 +0xA3AB 0x21E6 +0xA3AC 0x21E7 +0xA3AD 0x21E9 +0xA3AE 0x2934 +0xA3AF 0x2935 +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0x29BF +0xA3BB 0x25C9 +0xA3BC 0x303D +0xA3BD 0xFE46 +0xA3BE 0xFE45 +0xA3BF 0x25E6 +0xA3C0 0x2022 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0x2213 +0xA3DC 0x2135 +0xA3DD 0x210F +0xA3DE 0x33CB +0xA3DF 0x2113 +0xA3E0 0x2127 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0x30A0 +0xA3FC 0x2013 +0xA3FD 0x29FA +0xA3FE 0x29FB +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA4F4 0x3094 +0xA4F5 0x3095 +0xA4F6 0x3096 +0xA4F7 0x304B 0x309A +0xA4F8 0x304D 0x309A +0xA4F9 0x304F 0x309A +0xA4FA 0x3051 0x309A +0xA4FB 0x3053 0x309A +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA5F7 0x30AB 0x309A +0xA5F8 0x30AD 0x309A +0xA5F9 0x30AF 0x309A +0xA5FA 0x30B1 0x309A +0xA5FB 0x30B3 0x309A +0xA5FC 0x30BB 0x309A +0xA5FD 0x30C4 0x309A +0xA5FE 0x30C8 0x309A +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6B9 0x2664 +0xA6BA 0x2660 +0xA6BB 0x2662 +0xA6BC 0x2666 +0xA6BD 0x2661 +0xA6BE 0x2665 +0xA6BF 0x2667 +0xA6C0 0x2663 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA6D9 0x03C2 +0xA6DA 0x24F5 +0xA6DB 0x24F6 +0xA6DC 0x24F7 +0xA6DD 0x24F8 +0xA6DE 0x24F9 +0xA6DF 0x24FA +0xA6E0 0x24FB +0xA6E1 0x24FC +0xA6E2 0x24FD +0xA6E3 0x24FE +0xA6E4 0x2616 +0xA6E5 0x2617 +0xA6E6 0x3020 +0xA6E7 0x260E +0xA6E8 0x2600 +0xA6E9 0x2601 +0xA6EA 0x2602 +0xA6EB 0x2603 +0xA6EC 0x2668 +0xA6ED 0x25B1 +0xA6EE 0x31F0 +0xA6EF 0x31F1 +0xA6F0 0x31F2 +0xA6F1 0x31F3 +0xA6F2 0x31F4 +0xA6F3 0x31F5 +0xA6F4 0x31F6 +0xA6F5 0x31F7 +0xA6F6 0x31F8 +0xA6F7 0x31F9 +0xA6F8 0x31F7 0x309A +0xA6F9 0x31FA +0xA6FA 0x31FB +0xA6FB 0x31FC +0xA6FC 0x31FD +0xA6FD 0x31FE +0xA6FE 0x31FF +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7C2 0x23BE +0xA7C3 0x23BF +0xA7C4 0x23C0 +0xA7C5 0x23C1 +0xA7C6 0x23C2 +0xA7C7 0x23C3 +0xA7C8 0x23C4 +0xA7C9 0x23C5 +0xA7CA 0x23C6 +0xA7CB 0x23C7 +0xA7CC 0x23C8 +0xA7CD 0x23C9 +0xA7CE 0x23CA +0xA7CF 0x23CB +0xA7D0 0x23CC +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA7F2 0x30F7 +0xA7F3 0x30F8 +0xA7F4 0x30F9 +0xA7F5 0x30FA +0xA7F6 0x22DA +0xA7F7 0x22DB +0xA7F8 0x2153 +0xA7F9 0x2154 +0xA7FA 0x2155 +0xA7FB 0x2713 +0xA7FC 0x2318 +0xA7FD 0x2423 +0xA7FE 0x23CE +0xA8A1 0x2500 +0xA8A2 0x2502 +0xA8A3 0x250C +0xA8A4 0x2510 +0xA8A5 0x2518 +0xA8A6 0x2514 +0xA8A7 0x251C +0xA8A8 0x252C +0xA8A9 0x2524 +0xA8AA 0x2534 +0xA8AB 0x253C +0xA8AC 0x2501 +0xA8AD 0x2503 +0xA8AE 0x250F +0xA8AF 0x2513 +0xA8B0 0x251B +0xA8B1 0x2517 +0xA8B2 0x2523 +0xA8B3 0x2533 +0xA8B4 0x252B +0xA8B5 0x253B +0xA8B6 0x254B +0xA8B7 0x2520 +0xA8B8 0x252F +0xA8B9 0x2528 +0xA8BA 0x2537 +0xA8BB 0x253F +0xA8BC 0x251D +0xA8BD 0x2530 +0xA8BE 0x2525 +0xA8BF 0x2538 +0xA8C0 0x2542 +0xA8C1 0x3251 +0xA8C2 0x3252 +0xA8C3 0x3253 +0xA8C4 0x3254 +0xA8C5 0x3255 +0xA8C6 0x3256 +0xA8C7 0x3257 +0xA8C8 0x3258 +0xA8C9 0x3259 +0xA8CA 0x325A +0xA8CB 0x325B +0xA8CC 0x325C +0xA8CD 0x325D +0xA8CE 0x325E +0xA8CF 0x325F +0xA8D0 0x32B1 +0xA8D1 0x32B2 +0xA8D2 0x32B3 +0xA8D3 0x32B4 +0xA8D4 0x32B5 +0xA8D5 0x32B6 +0xA8D6 0x32B7 +0xA8D7 0x32B8 +0xA8D8 0x32B9 +0xA8D9 0x32BA +0xA8DA 0x32BB +0xA8DB 0x32BC +0xA8DC 0x32BD +0xA8DD 0x32BE +0xA8DE 0x32BF +0xA8E7 0x25D0 +0xA8E8 0x25D1 +0xA8E9 0x25D2 +0xA8EA 0x25D3 +0xA8EB 0x203C +0xA8EC 0x2047 +0xA8ED 0x2048 +0xA8EE 0x2049 +0xA8EF 0x01CD +0xA8F0 0x01CE +0xA8F1 0x01D0 +0xA8F2 0x1E3E +0xA8F3 0x1E3F +0xA8F4 0x01F8 +0xA8F5 0x01F9 +0xA8F6 0x01D1 +0xA8F7 0x01D2 +0xA8F8 0x01D4 +0xA8F9 0x01D6 +0xA8FA 0x01D8 +0xA8FB 0x01DA +0xA8FC 0x01DC +0xA9A1 0x20AC +0xA9A2 0x00A0 +0xA9A3 0x00A1 +0xA9A4 0x00A4 +0xA9A5 0x00A6 +0xA9A6 0x00A9 +0xA9A7 0x00AA +0xA9A8 0x00AB +0xA9A9 0x00AD +0xA9AA 0x00AE +0xA9AB 0x00AF +0xA9AC 0x00B2 +0xA9AD 0x00B3 +0xA9AE 0x00B7 +0xA9AF 0x00B8 +0xA9B0 0x00B9 +0xA9B1 0x00BA +0xA9B2 0x00BB +0xA9B3 0x00BC +0xA9B4 0x00BD +0xA9B5 0x00BE +0xA9B6 0x00BF +0xA9B7 0x00C0 +0xA9B8 0x00C1 +0xA9B9 0x00C2 +0xA9BA 0x00C3 +0xA9BB 0x00C4 +0xA9BC 0x00C5 +0xA9BD 0x00C6 +0xA9BE 0x00C7 +0xA9BF 0x00C8 +0xA9C0 0x00C9 +0xA9C1 0x00CA +0xA9C2 0x00CB +0xA9C3 0x00CC +0xA9C4 0x00CD +0xA9C5 0x00CE +0xA9C6 0x00CF +0xA9C7 0x00D0 +0xA9C8 0x00D1 +0xA9C9 0x00D2 +0xA9CA 0x00D3 +0xA9CB 0x00D4 +0xA9CC 0x00D5 +0xA9CD 0x00D6 +0xA9CE 0x00D8 +0xA9CF 0x00D9 +0xA9D0 0x00DA +0xA9D1 0x00DB +0xA9D2 0x00DC +0xA9D3 0x00DD +0xA9D4 0x00DE +0xA9D5 0x00DF +0xA9D6 0x00E0 +0xA9D7 0x00E1 +0xA9D8 0x00E2 +0xA9D9 0x00E3 +0xA9DA 0x00E4 +0xA9DB 0x00E5 +0xA9DC 0x00E6 +0xA9DD 0x00E7 +0xA9DE 0x00E8 +0xA9DF 0x00E9 +0xA9E0 0x00EA +0xA9E1 0x00EB +0xA9E2 0x00EC +0xA9E3 0x00ED +0xA9E4 0x00EE +0xA9E5 0x00EF +0xA9E6 0x00F0 +0xA9E7 0x00F1 +0xA9E8 0x00F2 +0xA9E9 0x00F3 +0xA9EA 0x00F4 +0xA9EB 0x00F5 +0xA9EC 0x00F6 +0xA9ED 0x00F8 +0xA9EE 0x00F9 +0xA9EF 0x00FA +0xA9F0 0x00FB +0xA9F1 0x00FC +0xA9F2 0x00FD +0xA9F3 0x00FE +0xA9F4 0x00FF +0xA9F5 0x0100 +0xA9F6 0x012A +0xA9F7 0x016A +0xA9F8 0x0112 +0xA9F9 0x014C +0xA9FA 0x0101 +0xA9FB 0x012B +0xA9FC 0x016B +0xA9FD 0x0113 +0xA9FE 0x014D +0xAAA1 0x0104 +0xAAA2 0x02D8 +0xAAA3 0x0141 +0xAAA4 0x013D +0xAAA5 0x015A +0xAAA6 0x0160 +0xAAA7 0x015E +0xAAA8 0x0164 +0xAAA9 0x0179 +0xAAAA 0x017D +0xAAAB 0x017B +0xAAAC 0x0105 +0xAAAD 0x02DB +0xAAAE 0x0142 +0xAAAF 0x013E +0xAAB0 0x015B +0xAAB1 0x02C7 +0xAAB2 0x0161 +0xAAB3 0x015F +0xAAB4 0x0165 +0xAAB5 0x017A +0xAAB6 0x02DD +0xAAB7 0x017E +0xAAB8 0x017C +0xAAB9 0x0154 +0xAABA 0x0102 +0xAABB 0x0139 +0xAABC 0x0106 +0xAABD 0x010C +0xAABE 0x0118 +0xAABF 0x011A +0xAAC0 0x010E +0xAAC1 0x0143 +0xAAC2 0x0147 +0xAAC3 0x0150 +0xAAC4 0x0158 +0xAAC5 0x016E +0xAAC6 0x0170 +0xAAC7 0x0162 +0xAAC8 0x0155 +0xAAC9 0x0103 +0xAACA 0x013A +0xAACB 0x0107 +0xAACC 0x010D +0xAACD 0x0119 +0xAACE 0x011B +0xAACF 0x010F +0xAAD0 0x0111 +0xAAD1 0x0144 +0xAAD2 0x0148 +0xAAD3 0x0151 +0xAAD4 0x0159 +0xAAD5 0x016F +0xAAD6 0x0171 +0xAAD7 0x0163 +0xAAD8 0x02D9 +0xAAD9 0x0108 +0xAADA 0x011C +0xAADB 0x0124 +0xAADC 0x0134 +0xAADD 0x015C +0xAADE 0x016C +0xAADF 0x0109 +0xAAE0 0x011D +0xAAE1 0x0125 +0xAAE2 0x0135 +0xAAE3 0x015D +0xAAE4 0x016D +0xAAE5 0x0271 +0xAAE6 0x028B +0xAAE7 0x027E +0xAAE8 0x0283 +0xAAE9 0x0292 +0xAAEA 0x026C +0xAAEB 0x026E +0xAAEC 0x0279 +0xAAED 0x0288 +0xAAEE 0x0256 +0xAAEF 0x0273 +0xAAF0 0x027D +0xAAF1 0x0282 +0xAAF2 0x0290 +0xAAF3 0x027B +0xAAF4 0x026D +0xAAF5 0x025F +0xAAF6 0x0272 +0xAAF7 0x029D +0xAAF8 0x028E +0xAAF9 0x0261 +0xAAFA 0x014B +0xAAFB 0x0270 +0xAAFC 0x0281 +0xAAFD 0x0127 +0xAAFE 0x0295 +0xABA1 0x0294 +0xABA2 0x0266 +0xABA3 0x0298 +0xABA4 0x01C2 +0xABA5 0x0253 +0xABA6 0x0257 +0xABA7 0x0284 +0xABA8 0x0260 +0xABA9 0x0193 +0xABAA 0x0153 +0xABAB 0x0152 +0xABAC 0x0268 +0xABAD 0x0289 +0xABAE 0x0258 +0xABAF 0x0275 +0xABB0 0x0259 +0xABB1 0x025C +0xABB2 0x025E +0xABB3 0x0250 +0xABB4 0x026F +0xABB5 0x028A +0xABB6 0x0264 +0xABB7 0x028C +0xABB8 0x0254 +0xABB9 0x0251 +0xABBA 0x0252 +0xABBB 0x028D +0xABBC 0x0265 +0xABBD 0x02A2 +0xABBE 0x02A1 +0xABBF 0x0255 +0xABC0 0x0291 +0xABC1 0x027A +0xABC2 0x0267 +0xABC3 0x025A +0xABC4 0x00E6 0x0300 +0xABC5 0x01FD +0xABC6 0x1F70 +0xABC7 0x1F71 +0xABC8 0x0254 0x0300 +0xABC9 0x0254 0x0301 +0xABCA 0x028C 0x0300 +0xABCB 0x028C 0x0301 +0xABCC 0x0259 0x0300 +0xABCD 0x0259 0x0301 +0xABCE 0x025A 0x0300 +0xABCF 0x025A 0x0301 +0xABD0 0x1F72 +0xABD1 0x1F73 +0xABD2 0x0361 +0xABD3 0x02C8 +0xABD4 0x02CC +0xABD5 0x02D0 +0xABD6 0x02D1 +0xABD7 0x0306 +0xABD8 0x203F +0xABD9 0x030B +0xABDA 0x0301 +0xABDB 0x0304 +0xABDC 0x0300 +0xABDD 0x030F +0xABDE 0x030C +0xABDF 0x0302 +0xABE0 0x02E5 +0xABE1 0x02E6 +0xABE2 0x02E7 +0xABE3 0x02E8 +0xABE4 0x02E9 +0xABE5 0x02E9 0x02E5 +0xABE6 0x02E5 0x02E9 +0xABE7 0x0325 +0xABE8 0x032C +0xABE9 0x0339 +0xABEA 0x031C +0xABEB 0x031F +0xABEC 0x0320 +0xABED 0x0308 +0xABEE 0x033D +0xABEF 0x0329 +0xABF0 0x032F +0xABF1 0x02DE +0xABF2 0x0324 +0xABF3 0x0330 +0xABF4 0x033C +0xABF5 0x0334 +0xABF6 0x031D +0xABF7 0x031E +0xABF8 0x0318 +0xABF9 0x0319 +0xABFA 0x032A +0xABFB 0x033A +0xABFC 0x033B +0xABFD 0x0303 +0xABFE 0x031A +0xACA1 0x2776 +0xACA2 0x2777 +0xACA3 0x2778 +0xACA4 0x2779 +0xACA5 0x277A +0xACA6 0x277B +0xACA7 0x277C +0xACA8 0x277D +0xACA9 0x277E +0xACAA 0x277F +0xACAB 0x24EB +0xACAC 0x24EC +0xACAD 0x24ED +0xACAE 0x24EE +0xACAF 0x24EF +0xACB0 0x24F0 +0xACB1 0x24F1 +0xACB2 0x24F2 +0xACB3 0x24F3 +0xACB4 0x24F4 +0xACB5 0x2170 +0xACB6 0x2171 +0xACB7 0x2172 +0xACB8 0x2173 +0xACB9 0x2174 +0xACBA 0x2175 +0xACBB 0x2176 +0xACBC 0x2177 +0xACBD 0x2178 +0xACBE 0x2179 +0xACBF 0x217A +0xACC0 0x217B +0xACC1 0x24D0 +0xACC2 0x24D1 +0xACC3 0x24D2 +0xACC4 0x24D3 +0xACC5 0x24D4 +0xACC6 0x24D5 +0xACC7 0x24D6 +0xACC8 0x24D7 +0xACC9 0x24D8 +0xACCA 0x24D9 +0xACCB 0x24DA +0xACCC 0x24DB +0xACCD 0x24DC +0xACCE 0x24DD +0xACCF 0x24DE +0xACD0 0x24DF +0xACD1 0x24E0 +0xACD2 0x24E1 +0xACD3 0x24E2 +0xACD4 0x24E3 +0xACD5 0x24E4 +0xACD6 0x24E5 +0xACD7 0x24E6 +0xACD8 0x24E7 +0xACD9 0x24E8 +0xACDA 0x24E9 +0xACDB 0x32D0 +0xACDC 0x32D1 +0xACDD 0x32D2 +0xACDE 0x32D3 +0xACDF 0x32D4 +0xACE0 0x32D5 +0xACE1 0x32D6 +0xACE2 0x32D7 +0xACE3 0x32D8 +0xACE4 0x32D9 +0xACE5 0x32DA +0xACE6 0x32DB +0xACE7 0x32DC +0xACE8 0x32DD +0xACE9 0x32DE +0xACEA 0x32DF +0xACEB 0x32E0 +0xACEC 0x32E1 +0xACED 0x32E2 +0xACEE 0x32E3 +0xACEF 0x32FA +0xACF0 0x32E9 +0xACF1 0x32E5 +0xACF2 0x32ED +0xACF3 0x32EC +0xACFD 0x2051 +0xACFE 0x2042 +0xADA1 0x2460 +0xADA2 0x2461 +0xADA3 0x2462 +0xADA4 0x2463 +0xADA5 0x2464 +0xADA6 0x2465 +0xADA7 0x2466 +0xADA8 0x2467 +0xADA9 0x2468 +0xADAA 0x2469 +0xADAB 0x246A +0xADAC 0x246B +0xADAD 0x246C +0xADAE 0x246D +0xADAF 0x246E +0xADB0 0x246F +0xADB1 0x2470 +0xADB2 0x2471 +0xADB3 0x2472 +0xADB4 0x2473 +0xADB5 0x2160 +0xADB6 0x2161 +0xADB7 0x2162 +0xADB8 0x2163 +0xADB9 0x2164 +0xADBA 0x2165 +0xADBB 0x2166 +0xADBC 0x2167 +0xADBD 0x2168 +0xADBE 0x2169 +0xADBF 0x216A +0xADC0 0x3349 +0xADC1 0x3314 +0xADC2 0x3322 +0xADC3 0x334D +0xADC4 0x3318 +0xADC5 0x3327 +0xADC6 0x3303 +0xADC7 0x3336 +0xADC8 0x3351 +0xADC9 0x3357 +0xADCA 0x330D +0xADCB 0x3326 +0xADCC 0x3323 +0xADCD 0x332B +0xADCE 0x334A +0xADCF 0x333B +0xADD0 0x339C +0xADD1 0x339D +0xADD2 0x339E +0xADD3 0x338E +0xADD4 0x338F +0xADD5 0x33C4 +0xADD6 0x33A1 +0xADD7 0x216B +0xADDF 0x337B +0xADE0 0x301D +0xADE1 0x301F +0xADE2 0x2116 +0xADE3 0x33CD +0xADE4 0x2121 +0xADE5 0x32A4 +0xADE6 0x32A5 +0xADE7 0x32A6 +0xADE8 0x32A7 +0xADE9 0x32A8 +0xADEA 0x3231 +0xADEB 0x3232 +0xADEC 0x3239 +0xADED 0x337E +0xADEE 0x337D +0xADEF 0x337C +0xADF3 0x222E +0xADF8 0x221F +0xADF9 0x22BF +0xADFD 0x2756 +0xADFE 0x261E +0xAEA1 0x4FF1 +0xAEA2 0x2000B +0xAEA3 0x3402 +0xAEA4 0x4E28 +0xAEA5 0x4E2F +0xAEA6 0x4E30 +0xAEA7 0x4E8D +0xAEA8 0x4EE1 +0xAEA9 0x4EFD +0xAEAA 0x4EFF +0xAEAB 0x4F03 +0xAEAC 0x4F0B +0xAEAD 0x4F60 +0xAEAE 0x4F48 +0xAEAF 0x4F49 +0xAEB0 0x4F56 +0xAEB1 0x4F5F +0xAEB2 0x4F6A +0xAEB3 0x4F6C +0xAEB4 0x4F7E +0xAEB5 0x4F8A +0xAEB6 0x4F94 +0xAEB7 0x4F97 +0xAEB8 0xFA30 +0xAEB9 0x4FC9 +0xAEBA 0x4FE0 +0xAEBB 0x5001 +0xAEBC 0x5002 +0xAEBD 0x500E +0xAEBE 0x5018 +0xAEBF 0x5027 +0xAEC0 0x502E +0xAEC1 0x5040 +0xAEC2 0x503B +0xAEC3 0x5041 +0xAEC4 0x5094 +0xAEC5 0x50CC +0xAEC6 0x50F2 +0xAEC7 0x50D0 +0xAEC8 0x50E6 +0xAEC9 0xFA31 +0xAECA 0x5106 +0xAECB 0x5103 +0xAECC 0x510B +0xAECD 0x511E +0xAECE 0x5135 +0xAECF 0x514A +0xAED0 0xFA32 +0xAED1 0x5155 +0xAED2 0x5157 +0xAED3 0x34B5 +0xAED4 0x519D +0xAED5 0x51C3 +0xAED6 0x51CA +0xAED7 0x51DE +0xAED8 0x51E2 +0xAED9 0x51EE +0xAEDA 0x5201 +0xAEDB 0x34DB +0xAEDC 0x5213 +0xAEDD 0x5215 +0xAEDE 0x5249 +0xAEDF 0x5257 +0xAEE0 0x5261 +0xAEE1 0x5293 +0xAEE2 0x52C8 +0xAEE3 0xFA33 +0xAEE4 0x52CC +0xAEE5 0x52D0 +0xAEE6 0x52D6 +0xAEE7 0x52DB +0xAEE8 0xFA34 +0xAEE9 0x52F0 +0xAEEA 0x52FB +0xAEEB 0x5300 +0xAEEC 0x5307 +0xAEED 0x531C +0xAEEE 0xFA35 +0xAEEF 0x5361 +0xAEF0 0x5363 +0xAEF1 0x537D +0xAEF2 0x5393 +0xAEF3 0x539D +0xAEF4 0x53B2 +0xAEF5 0x5412 +0xAEF6 0x5427 +0xAEF7 0x544D +0xAEF8 0x549C +0xAEF9 0x546B +0xAEFA 0x5474 +0xAEFB 0x547F +0xAEFC 0x5488 +0xAEFD 0x5496 +0xAEFE 0x54A1 +0xAFA1 0x54A9 +0xAFA2 0x54C6 +0xAFA3 0x54FF +0xAFA4 0x550E +0xAFA5 0x552B +0xAFA6 0x5535 +0xAFA7 0x5550 +0xAFA8 0x555E +0xAFA9 0x5581 +0xAFAA 0x5586 +0xAFAB 0x558E +0xAFAC 0xFA36 +0xAFAD 0x55AD +0xAFAE 0x55CE +0xAFAF 0xFA37 +0xAFB0 0x5608 +0xAFB1 0x560E +0xAFB2 0x563B +0xAFB3 0x5649 +0xAFB4 0x5676 +0xAFB5 0x5666 +0xAFB6 0xFA38 +0xAFB7 0x566F +0xAFB8 0x5671 +0xAFB9 0x5672 +0xAFBA 0x5699 +0xAFBB 0x569E +0xAFBC 0x56A9 +0xAFBD 0x56AC +0xAFBE 0x56B3 +0xAFBF 0x56C9 +0xAFC0 0x56CA +0xAFC1 0x570A +0xAFC2 0x2123D +0xAFC3 0x5721 +0xAFC4 0x572F +0xAFC5 0x5733 +0xAFC6 0x5734 +0xAFC7 0x5770 +0xAFC8 0x5777 +0xAFC9 0x577C +0xAFCA 0x579C +0xAFCB 0xFA0F +0xAFCC 0x2131B +0xAFCD 0x57B8 +0xAFCE 0x57C7 +0xAFCF 0x57C8 +0xAFD0 0x57CF +0xAFD1 0x57E4 +0xAFD2 0x57ED +0xAFD3 0x57F5 +0xAFD4 0x57F6 +0xAFD5 0x57FF +0xAFD6 0x5809 +0xAFD7 0xFA10 +0xAFD8 0x5861 +0xAFD9 0x5864 +0xAFDA 0xFA39 +0xAFDB 0x587C +0xAFDC 0x5889 +0xAFDD 0x589E +0xAFDE 0xFA3A +0xAFDF 0x58A9 +0xAFE0 0x2146E +0xAFE1 0x58D2 +0xAFE2 0x58CE +0xAFE3 0x58D4 +0xAFE4 0x58DA +0xAFE5 0x58E0 +0xAFE6 0x58E9 +0xAFE7 0x590C +0xAFE8 0x8641 +0xAFE9 0x595D +0xAFEA 0x596D +0xAFEB 0x598B +0xAFEC 0x5992 +0xAFED 0x59A4 +0xAFEE 0x59C3 +0xAFEF 0x59D2 +0xAFF0 0x59DD +0xAFF1 0x5A13 +0xAFF2 0x5A23 +0xAFF3 0x5A67 +0xAFF4 0x5A6D +0xAFF5 0x5A77 +0xAFF6 0x5A7E +0xAFF7 0x5A84 +0xAFF8 0x5A9E +0xAFF9 0x5AA7 +0xAFFA 0x5AC4 +0xAFFB 0x218BD +0xAFFC 0x5B19 +0xAFFD 0x5B25 +0xAFFE 0x525D +0xB0A1 0x4E9C +0xB0A2 0x5516 +0xB0A3 0x5A03 +0xB0A4 0x963F +0xB0A5 0x54C0 +0xB0A6 0x611B +0xB0A7 0x6328 +0xB0A8 0x59F6 +0xB0A9 0x9022 +0xB0AA 0x8475 +0xB0AB 0x831C +0xB0AC 0x7A50 +0xB0AD 0x60AA +0xB0AE 0x63E1 +0xB0AF 0x6E25 +0xB0B0 0x65ED +0xB0B1 0x8466 +0xB0B2 0x82A6 +0xB0B3 0x9BF5 +0xB0B4 0x6893 +0xB0B5 0x5727 +0xB0B6 0x65A1 +0xB0B7 0x6271 +0xB0B8 0x5B9B +0xB0B9 0x59D0 +0xB0BA 0x867B +0xB0BB 0x98F4 +0xB0BC 0x7D62 +0xB0BD 0x7DBE +0xB0BE 0x9B8E +0xB0BF 0x6216 +0xB0C0 0x7C9F +0xB0C1 0x88B7 +0xB0C2 0x5B89 +0xB0C3 0x5EB5 +0xB0C4 0x6309 +0xB0C5 0x6697 +0xB0C6 0x6848 +0xB0C7 0x95C7 +0xB0C8 0x978D +0xB0C9 0x674F +0xB0CA 0x4EE5 +0xB0CB 0x4F0A +0xB0CC 0x4F4D +0xB0CD 0x4F9D +0xB0CE 0x5049 +0xB0CF 0x56F2 +0xB0D0 0x5937 +0xB0D1 0x59D4 +0xB0D2 0x5A01 +0xB0D3 0x5C09 +0xB0D4 0x60DF +0xB0D5 0x610F +0xB0D6 0x6170 +0xB0D7 0x6613 +0xB0D8 0x6905 +0xB0D9 0x70BA +0xB0DA 0x754F +0xB0DB 0x7570 +0xB0DC 0x79FB +0xB0DD 0x7DAD +0xB0DE 0x7DEF +0xB0DF 0x80C3 +0xB0E0 0x840E +0xB0E1 0x8863 +0xB0E2 0x8B02 +0xB0E3 0x9055 +0xB0E4 0x907A +0xB0E5 0x533B +0xB0E6 0x4E95 +0xB0E7 0x4EA5 +0xB0E8 0x57DF +0xB0E9 0x80B2 +0xB0EA 0x90C1 +0xB0EB 0x78EF +0xB0EC 0x4E00 +0xB0ED 0x58F1 +0xB0EE 0x6EA2 +0xB0EF 0x9038 +0xB0F0 0x7A32 +0xB0F1 0x8328 +0xB0F2 0x828B +0xB0F3 0x9C2F +0xB0F4 0x5141 +0xB0F5 0x5370 +0xB0F6 0x54BD +0xB0F7 0x54E1 +0xB0F8 0x56E0 +0xB0F9 0x59FB +0xB0FA 0x5F15 +0xB0FB 0x98F2 +0xB0FC 0x6DEB +0xB0FD 0x80E4 +0xB0FE 0x852D +0xB1A1 0x9662 +0xB1A2 0x9670 +0xB1A3 0x96A0 +0xB1A4 0x97FB +0xB1A5 0x540B +0xB1A6 0x53F3 +0xB1A7 0x5B87 +0xB1A8 0x70CF +0xB1A9 0x7FBD +0xB1AA 0x8FC2 +0xB1AB 0x96E8 +0xB1AC 0x536F +0xB1AD 0x9D5C +0xB1AE 0x7ABA +0xB1AF 0x4E11 +0xB1B0 0x7893 +0xB1B1 0x81FC +0xB1B2 0x6E26 +0xB1B3 0x5618 +0xB1B4 0x5504 +0xB1B5 0x6B1D +0xB1B6 0x851A +0xB1B7 0x9C3B +0xB1B8 0x59E5 +0xB1B9 0x53A9 +0xB1BA 0x6D66 +0xB1BB 0x74DC +0xB1BC 0x958F +0xB1BD 0x5642 +0xB1BE 0x4E91 +0xB1BF 0x904B +0xB1C0 0x96F2 +0xB1C1 0x834F +0xB1C2 0x990C +0xB1C3 0x53E1 +0xB1C4 0x55B6 +0xB1C5 0x5B30 +0xB1C6 0x5F71 +0xB1C7 0x6620 +0xB1C8 0x66F3 +0xB1C9 0x6804 +0xB1CA 0x6C38 +0xB1CB 0x6CF3 +0xB1CC 0x6D29 +0xB1CD 0x745B +0xB1CE 0x76C8 +0xB1CF 0x7A4E +0xB1D0 0x9834 +0xB1D1 0x82F1 +0xB1D2 0x885B +0xB1D3 0x8A60 +0xB1D4 0x92ED +0xB1D5 0x6DB2 +0xB1D6 0x75AB +0xB1D7 0x76CA +0xB1D8 0x99C5 +0xB1D9 0x60A6 +0xB1DA 0x8B01 +0xB1DB 0x8D8A +0xB1DC 0x95B2 +0xB1DD 0x698E +0xB1DE 0x53AD +0xB1DF 0x5186 +0xB1E0 0x5712 +0xB1E1 0x5830 +0xB1E2 0x5944 +0xB1E3 0x5BB4 +0xB1E4 0x5EF6 +0xB1E5 0x6028 +0xB1E6 0x63A9 +0xB1E7 0x63F4 +0xB1E8 0x6CBF +0xB1E9 0x6F14 +0xB1EA 0x708E +0xB1EB 0x7114 +0xB1EC 0x7159 +0xB1ED 0x71D5 +0xB1EE 0x733F +0xB1EF 0x7E01 +0xB1F0 0x8276 +0xB1F1 0x82D1 +0xB1F2 0x8597 +0xB1F3 0x9060 +0xB1F4 0x925B +0xB1F5 0x9D1B +0xB1F6 0x5869 +0xB1F7 0x65BC +0xB1F8 0x6C5A +0xB1F9 0x7525 +0xB1FA 0x51F9 +0xB1FB 0x592E +0xB1FC 0x5965 +0xB1FD 0x5F80 +0xB1FE 0x5FDC +0xB2A1 0x62BC +0xB2A2 0x65FA +0xB2A3 0x6A2A +0xB2A4 0x6B27 +0xB2A5 0x6BB4 +0xB2A6 0x738B +0xB2A7 0x7FC1 +0xB2A8 0x8956 +0xB2A9 0x9D2C +0xB2AA 0x9D0E +0xB2AB 0x9EC4 +0xB2AC 0x5CA1 +0xB2AD 0x6C96 +0xB2AE 0x837B +0xB2AF 0x5104 +0xB2B0 0x5C4B +0xB2B1 0x61B6 +0xB2B2 0x81C6 +0xB2B3 0x6876 +0xB2B4 0x7261 +0xB2B5 0x4E59 +0xB2B6 0x4FFA +0xB2B7 0x5378 +0xB2B8 0x6069 +0xB2B9 0x6E29 +0xB2BA 0x7A4F +0xB2BB 0x97F3 +0xB2BC 0x4E0B +0xB2BD 0x5316 +0xB2BE 0x4EEE +0xB2BF 0x4F55 +0xB2C0 0x4F3D +0xB2C1 0x4FA1 +0xB2C2 0x4F73 +0xB2C3 0x52A0 +0xB2C4 0x53EF +0xB2C5 0x5609 +0xB2C6 0x590F +0xB2C7 0x5AC1 +0xB2C8 0x5BB6 +0xB2C9 0x5BE1 +0xB2CA 0x79D1 +0xB2CB 0x6687 +0xB2CC 0x679C +0xB2CD 0x67B6 +0xB2CE 0x6B4C +0xB2CF 0x6CB3 +0xB2D0 0x706B +0xB2D1 0x73C2 +0xB2D2 0x798D +0xB2D3 0x79BE +0xB2D4 0x7A3C +0xB2D5 0x7B87 +0xB2D6 0x82B1 +0xB2D7 0x82DB +0xB2D8 0x8304 +0xB2D9 0x8377 +0xB2DA 0x83EF +0xB2DB 0x83D3 +0xB2DC 0x8766 +0xB2DD 0x8AB2 +0xB2DE 0x5629 +0xB2DF 0x8CA8 +0xB2E0 0x8FE6 +0xB2E1 0x904E +0xB2E2 0x971E +0xB2E3 0x868A +0xB2E4 0x4FC4 +0xB2E5 0x5CE8 +0xB2E6 0x6211 +0xB2E7 0x7259 +0xB2E8 0x753B +0xB2E9 0x81E5 +0xB2EA 0x82BD +0xB2EB 0x86FE +0xB2EC 0x8CC0 +0xB2ED 0x96C5 +0xB2EE 0x9913 +0xB2EF 0x99D5 +0xB2F0 0x4ECB +0xB2F1 0x4F1A +0xB2F2 0x89E3 +0xB2F3 0x56DE +0xB2F4 0x584A +0xB2F5 0x58CA +0xB2F6 0x5EFB +0xB2F7 0x5FEB +0xB2F8 0x602A +0xB2F9 0x6094 +0xB2FA 0x6062 +0xB2FB 0x61D0 +0xB2FC 0x6212 +0xB2FD 0x62D0 +0xB2FE 0x6539 +0xB3A1 0x9B41 +0xB3A2 0x6666 +0xB3A3 0x68B0 +0xB3A4 0x6D77 +0xB3A5 0x7070 +0xB3A6 0x754C +0xB3A7 0x7686 +0xB3A8 0x7D75 +0xB3A9 0x82A5 +0xB3AA 0x87F9 +0xB3AB 0x958B +0xB3AC 0x968E +0xB3AD 0x8C9D +0xB3AE 0x51F1 +0xB3AF 0x52BE +0xB3B0 0x5916 +0xB3B1 0x54B3 +0xB3B2 0x5BB3 +0xB3B3 0x5D16 +0xB3B4 0x6168 +0xB3B5 0x6982 +0xB3B6 0x6DAF +0xB3B7 0x788D +0xB3B8 0x84CB +0xB3B9 0x8857 +0xB3BA 0x8A72 +0xB3BB 0x93A7 +0xB3BC 0x9AB8 +0xB3BD 0x6D6C +0xB3BE 0x99A8 +0xB3BF 0x86D9 +0xB3C0 0x57A3 +0xB3C1 0x67FF +0xB3C2 0x86CE +0xB3C3 0x920E +0xB3C4 0x5283 +0xB3C5 0x5687 +0xB3C6 0x5404 +0xB3C7 0x5ED3 +0xB3C8 0x62E1 +0xB3C9 0x64B9 +0xB3CA 0x683C +0xB3CB 0x6838 +0xB3CC 0x6BBB +0xB3CD 0x7372 +0xB3CE 0x78BA +0xB3CF 0x7A6B +0xB3D0 0x899A +0xB3D1 0x89D2 +0xB3D2 0x8D6B +0xB3D3 0x8F03 +0xB3D4 0x90ED +0xB3D5 0x95A3 +0xB3D6 0x9694 +0xB3D7 0x9769 +0xB3D8 0x5B66 +0xB3D9 0x5CB3 +0xB3DA 0x697D +0xB3DB 0x984D +0xB3DC 0x984E +0xB3DD 0x639B +0xB3DE 0x7B20 +0xB3DF 0x6A2B +0xB3E0 0x6A7F +0xB3E1 0x68B6 +0xB3E2 0x9C0D +0xB3E3 0x6F5F +0xB3E4 0x5272 +0xB3E5 0x559D +0xB3E6 0x6070 +0xB3E7 0x62EC +0xB3E8 0x6D3B +0xB3E9 0x6E07 +0xB3EA 0x6ED1 +0xB3EB 0x845B +0xB3EC 0x8910 +0xB3ED 0x8F44 +0xB3EE 0x4E14 +0xB3EF 0x9C39 +0xB3F0 0x53F6 +0xB3F1 0x691B +0xB3F2 0x6A3A +0xB3F3 0x9784 +0xB3F4 0x682A +0xB3F5 0x515C +0xB3F6 0x7AC3 +0xB3F7 0x84B2 +0xB3F8 0x91DC +0xB3F9 0x938C +0xB3FA 0x565B +0xB3FB 0x9D28 +0xB3FC 0x6822 +0xB3FD 0x8305 +0xB3FE 0x8431 +0xB4A1 0x7CA5 +0xB4A2 0x5208 +0xB4A3 0x82C5 +0xB4A4 0x74E6 +0xB4A5 0x4E7E +0xB4A6 0x4F83 +0xB4A7 0x51A0 +0xB4A8 0x5BD2 +0xB4A9 0x520A +0xB4AA 0x52D8 +0xB4AB 0x52E7 +0xB4AC 0x5DFB +0xB4AD 0x559A +0xB4AE 0x582A +0xB4AF 0x59E6 +0xB4B0 0x5B8C +0xB4B1 0x5B98 +0xB4B2 0x5BDB +0xB4B3 0x5E72 +0xB4B4 0x5E79 +0xB4B5 0x60A3 +0xB4B6 0x611F +0xB4B7 0x6163 +0xB4B8 0x61BE +0xB4B9 0x63DB +0xB4BA 0x6562 +0xB4BB 0x67D1 +0xB4BC 0x6853 +0xB4BD 0x68FA +0xB4BE 0x6B3E +0xB4BF 0x6B53 +0xB4C0 0x6C57 +0xB4C1 0x6F22 +0xB4C2 0x6F97 +0xB4C3 0x6F45 +0xB4C4 0x74B0 +0xB4C5 0x7518 +0xB4C6 0x76E3 +0xB4C7 0x770B +0xB4C8 0x7AFF +0xB4C9 0x7BA1 +0xB4CA 0x7C21 +0xB4CB 0x7DE9 +0xB4CC 0x7F36 +0xB4CD 0x7FF0 +0xB4CE 0x809D +0xB4CF 0x8266 +0xB4D0 0x839E +0xB4D1 0x89B3 +0xB4D2 0x8ACC +0xB4D3 0x8CAB +0xB4D4 0x9084 +0xB4D5 0x9451 +0xB4D6 0x9593 +0xB4D7 0x9591 +0xB4D8 0x95A2 +0xB4D9 0x9665 +0xB4DA 0x97D3 +0xB4DB 0x9928 +0xB4DC 0x8218 +0xB4DD 0x4E38 +0xB4DE 0x542B +0xB4DF 0x5CB8 +0xB4E0 0x5DCC +0xB4E1 0x73A9 +0xB4E2 0x764C +0xB4E3 0x773C +0xB4E4 0x5CA9 +0xB4E5 0x7FEB +0xB4E6 0x8D0B +0xB4E7 0x96C1 +0xB4E8 0x9811 +0xB4E9 0x9854 +0xB4EA 0x9858 +0xB4EB 0x4F01 +0xB4EC 0x4F0E +0xB4ED 0x5371 +0xB4EE 0x559C +0xB4EF 0x5668 +0xB4F0 0x57FA +0xB4F1 0x5947 +0xB4F2 0x5B09 +0xB4F3 0x5BC4 +0xB4F4 0x5C90 +0xB4F5 0x5E0C +0xB4F6 0x5E7E +0xB4F7 0x5FCC +0xB4F8 0x63EE +0xB4F9 0x673A +0xB4FA 0x65D7 +0xB4FB 0x65E2 +0xB4FC 0x671F +0xB4FD 0x68CB +0xB4FE 0x68C4 +0xB5A1 0x6A5F +0xB5A2 0x5E30 +0xB5A3 0x6BC5 +0xB5A4 0x6C17 +0xB5A5 0x6C7D +0xB5A6 0x757F +0xB5A7 0x7948 +0xB5A8 0x5B63 +0xB5A9 0x7A00 +0xB5AA 0x7D00 +0xB5AB 0x5FBD +0xB5AC 0x898F +0xB5AD 0x8A18 +0xB5AE 0x8CB4 +0xB5AF 0x8D77 +0xB5B0 0x8ECC +0xB5B1 0x8F1D +0xB5B2 0x98E2 +0xB5B3 0x9A0E +0xB5B4 0x9B3C +0xB5B5 0x4E80 +0xB5B6 0x507D +0xB5B7 0x5100 +0xB5B8 0x5993 +0xB5B9 0x5B9C +0xB5BA 0x622F +0xB5BB 0x6280 +0xB5BC 0x64EC +0xB5BD 0x6B3A +0xB5BE 0x72A0 +0xB5BF 0x7591 +0xB5C0 0x7947 +0xB5C1 0x7FA9 +0xB5C2 0x87FB +0xB5C3 0x8ABC +0xB5C4 0x8B70 +0xB5C5 0x63AC +0xB5C6 0x83CA +0xB5C7 0x97A0 +0xB5C8 0x5409 +0xB5C9 0x5403 +0xB5CA 0x55AB +0xB5CB 0x6854 +0xB5CC 0x6A58 +0xB5CD 0x8A70 +0xB5CE 0x7827 +0xB5CF 0x6775 +0xB5D0 0x9ECD +0xB5D1 0x5374 +0xB5D2 0x5BA2 +0xB5D3 0x811A +0xB5D4 0x8650 +0xB5D5 0x9006 +0xB5D6 0x4E18 +0xB5D7 0x4E45 +0xB5D8 0x4EC7 +0xB5D9 0x4F11 +0xB5DA 0x53CA +0xB5DB 0x5438 +0xB5DC 0x5BAE +0xB5DD 0x5F13 +0xB5DE 0x6025 +0xB5DF 0x6551 +0xB5E0 0x673D +0xB5E1 0x6C42 +0xB5E2 0x6C72 +0xB5E3 0x6CE3 +0xB5E4 0x7078 +0xB5E5 0x7403 +0xB5E6 0x7A76 +0xB5E7 0x7AAE +0xB5E8 0x7B08 +0xB5E9 0x7D1A +0xB5EA 0x7CFE +0xB5EB 0x7D66 +0xB5EC 0x65E7 +0xB5ED 0x725B +0xB5EE 0x53BB +0xB5EF 0x5C45 +0xB5F0 0x5DE8 +0xB5F1 0x62D2 +0xB5F2 0x62E0 +0xB5F3 0x6319 +0xB5F4 0x6E20 +0xB5F5 0x865A +0xB5F6 0x8A31 +0xB5F7 0x8DDD +0xB5F8 0x92F8 +0xB5F9 0x6F01 +0xB5FA 0x79A6 +0xB5FB 0x9B5A +0xB5FC 0x4EA8 +0xB5FD 0x4EAB +0xB5FE 0x4EAC +0xB6A1 0x4F9B +0xB6A2 0x4FA0 +0xB6A3 0x50D1 +0xB6A4 0x5147 +0xB6A5 0x7AF6 +0xB6A6 0x5171 +0xB6A7 0x51F6 +0xB6A8 0x5354 +0xB6A9 0x5321 +0xB6AA 0x537F +0xB6AB 0x53EB +0xB6AC 0x55AC +0xB6AD 0x5883 +0xB6AE 0x5CE1 +0xB6AF 0x5F37 +0xB6B0 0x5F4A +0xB6B1 0x602F +0xB6B2 0x6050 +0xB6B3 0x606D +0xB6B4 0x631F +0xB6B5 0x6559 +0xB6B6 0x6A4B +0xB6B7 0x6CC1 +0xB6B8 0x72C2 +0xB6B9 0x72ED +0xB6BA 0x77EF +0xB6BB 0x80F8 +0xB6BC 0x8105 +0xB6BD 0x8208 +0xB6BE 0x854E +0xB6BF 0x90F7 +0xB6C0 0x93E1 +0xB6C1 0x97FF +0xB6C2 0x9957 +0xB6C3 0x9A5A +0xB6C4 0x4EF0 +0xB6C5 0x51DD +0xB6C6 0x5C2D +0xB6C7 0x6681 +0xB6C8 0x696D +0xB6C9 0x5C40 +0xB6CA 0x66F2 +0xB6CB 0x6975 +0xB6CC 0x7389 +0xB6CD 0x6850 +0xB6CE 0x7C81 +0xB6CF 0x50C5 +0xB6D0 0x52E4 +0xB6D1 0x5747 +0xB6D2 0x5DFE +0xB6D3 0x9326 +0xB6D4 0x65A4 +0xB6D5 0x6B23 +0xB6D6 0x6B3D +0xB6D7 0x7434 +0xB6D8 0x7981 +0xB6D9 0x79BD +0xB6DA 0x7B4B +0xB6DB 0x7DCA +0xB6DC 0x82B9 +0xB6DD 0x83CC +0xB6DE 0x887F +0xB6DF 0x895F +0xB6E0 0x8B39 +0xB6E1 0x8FD1 +0xB6E2 0x91D1 +0xB6E3 0x541F +0xB6E4 0x9280 +0xB6E5 0x4E5D +0xB6E6 0x5036 +0xB6E7 0x53E5 +0xB6E8 0x533A +0xB6E9 0x72D7 +0xB6EA 0x7396 +0xB6EB 0x77E9 +0xB6EC 0x82E6 +0xB6ED 0x8EAF +0xB6EE 0x99C6 +0xB6EF 0x99C8 +0xB6F0 0x99D2 +0xB6F1 0x5177 +0xB6F2 0x611A +0xB6F3 0x865E +0xB6F4 0x55B0 +0xB6F5 0x7A7A +0xB6F6 0x5076 +0xB6F7 0x5BD3 +0xB6F8 0x9047 +0xB6F9 0x9685 +0xB6FA 0x4E32 +0xB6FB 0x6ADB +0xB6FC 0x91E7 +0xB6FD 0x5C51 +0xB6FE 0x5C48 +0xB7A1 0x6398 +0xB7A2 0x7A9F +0xB7A3 0x6C93 +0xB7A4 0x9774 +0xB7A5 0x8F61 +0xB7A6 0x7AAA +0xB7A7 0x718A +0xB7A8 0x9688 +0xB7A9 0x7C82 +0xB7AA 0x6817 +0xB7AB 0x7E70 +0xB7AC 0x6851 +0xB7AD 0x936C +0xB7AE 0x52F2 +0xB7AF 0x541B +0xB7B0 0x85AB +0xB7B1 0x8A13 +0xB7B2 0x7FA4 +0xB7B3 0x8ECD +0xB7B4 0x90E1 +0xB7B5 0x5366 +0xB7B6 0x8888 +0xB7B7 0x7941 +0xB7B8 0x4FC2 +0xB7B9 0x50BE +0xB7BA 0x5211 +0xB7BB 0x5144 +0xB7BC 0x5553 +0xB7BD 0x572D +0xB7BE 0x73EA +0xB7BF 0x578B +0xB7C0 0x5951 +0xB7C1 0x5F62 +0xB7C2 0x5F84 +0xB7C3 0x6075 +0xB7C4 0x6176 +0xB7C5 0x6167 +0xB7C6 0x61A9 +0xB7C7 0x63B2 +0xB7C8 0x643A +0xB7C9 0x656C +0xB7CA 0x666F +0xB7CB 0x6842 +0xB7CC 0x6E13 +0xB7CD 0x7566 +0xB7CE 0x7A3D +0xB7CF 0x7CFB +0xB7D0 0x7D4C +0xB7D1 0x7D99 +0xB7D2 0x7E4B +0xB7D3 0x7F6B +0xB7D4 0x830E +0xB7D5 0x834A +0xB7D6 0x86CD +0xB7D7 0x8A08 +0xB7D8 0x8A63 +0xB7D9 0x8B66 +0xB7DA 0x8EFD +0xB7DB 0x981A +0xB7DC 0x9D8F +0xB7DD 0x82B8 +0xB7DE 0x8FCE +0xB7DF 0x9BE8 +0xB7E0 0x5287 +0xB7E1 0x621F +0xB7E2 0x6483 +0xB7E3 0x6FC0 +0xB7E4 0x9699 +0xB7E5 0x6841 +0xB7E6 0x5091 +0xB7E7 0x6B20 +0xB7E8 0x6C7A +0xB7E9 0x6F54 +0xB7EA 0x7A74 +0xB7EB 0x7D50 +0xB7EC 0x8840 +0xB7ED 0x8A23 +0xB7EE 0x6708 +0xB7EF 0x4EF6 +0xB7F0 0x5039 +0xB7F1 0x5026 +0xB7F2 0x5065 +0xB7F3 0x517C +0xB7F4 0x5238 +0xB7F5 0x5263 +0xB7F6 0x55A7 +0xB7F7 0x570F +0xB7F8 0x5805 +0xB7F9 0x5ACC +0xB7FA 0x5EFA +0xB7FB 0x61B2 +0xB7FC 0x61F8 +0xB7FD 0x62F3 +0xB7FE 0x6372 +0xB8A1 0x691C +0xB8A2 0x6A29 +0xB8A3 0x727D +0xB8A4 0x72AC +0xB8A5 0x732E +0xB8A6 0x7814 +0xB8A7 0x786F +0xB8A8 0x7D79 +0xB8A9 0x770C +0xB8AA 0x80A9 +0xB8AB 0x898B +0xB8AC 0x8B19 +0xB8AD 0x8CE2 +0xB8AE 0x8ED2 +0xB8AF 0x9063 +0xB8B0 0x9375 +0xB8B1 0x967A +0xB8B2 0x9855 +0xB8B3 0x9A13 +0xB8B4 0x9E78 +0xB8B5 0x5143 +0xB8B6 0x539F +0xB8B7 0x53B3 +0xB8B8 0x5E7B +0xB8B9 0x5F26 +0xB8BA 0x6E1B +0xB8BB 0x6E90 +0xB8BC 0x7384 +0xB8BD 0x73FE +0xB8BE 0x7D43 +0xB8BF 0x8237 +0xB8C0 0x8A00 +0xB8C1 0x8AFA +0xB8C2 0x9650 +0xB8C3 0x4E4E +0xB8C4 0x500B +0xB8C5 0x53E4 +0xB8C6 0x547C +0xB8C7 0x56FA +0xB8C8 0x59D1 +0xB8C9 0x5B64 +0xB8CA 0x5DF1 +0xB8CB 0x5EAB +0xB8CC 0x5F27 +0xB8CD 0x6238 +0xB8CE 0x6545 +0xB8CF 0x67AF +0xB8D0 0x6E56 +0xB8D1 0x72D0 +0xB8D2 0x7CCA +0xB8D3 0x88B4 +0xB8D4 0x80A1 +0xB8D5 0x80E1 +0xB8D6 0x83F0 +0xB8D7 0x864E +0xB8D8 0x8A87 +0xB8D9 0x8DE8 +0xB8DA 0x9237 +0xB8DB 0x96C7 +0xB8DC 0x9867 +0xB8DD 0x9F13 +0xB8DE 0x4E94 +0xB8DF 0x4E92 +0xB8E0 0x4F0D +0xB8E1 0x5348 +0xB8E2 0x5449 +0xB8E3 0x543E +0xB8E4 0x5A2F +0xB8E5 0x5F8C +0xB8E6 0x5FA1 +0xB8E7 0x609F +0xB8E8 0x68A7 +0xB8E9 0x6A8E +0xB8EA 0x745A +0xB8EB 0x7881 +0xB8EC 0x8A9E +0xB8ED 0x8AA4 +0xB8EE 0x8B77 +0xB8EF 0x9190 +0xB8F0 0x4E5E +0xB8F1 0x9BC9 +0xB8F2 0x4EA4 +0xB8F3 0x4F7C +0xB8F4 0x4FAF +0xB8F5 0x5019 +0xB8F6 0x5016 +0xB8F7 0x5149 +0xB8F8 0x516C +0xB8F9 0x529F +0xB8FA 0x52B9 +0xB8FB 0x52FE +0xB8FC 0x539A +0xB8FD 0x53E3 +0xB8FE 0x5411 +0xB9A1 0x540E +0xB9A2 0x5589 +0xB9A3 0x5751 +0xB9A4 0x57A2 +0xB9A5 0x597D +0xB9A6 0x5B54 +0xB9A7 0x5B5D +0xB9A8 0x5B8F +0xB9A9 0x5DE5 +0xB9AA 0x5DE7 +0xB9AB 0x5DF7 +0xB9AC 0x5E78 +0xB9AD 0x5E83 +0xB9AE 0x5E9A +0xB9AF 0x5EB7 +0xB9B0 0x5F18 +0xB9B1 0x6052 +0xB9B2 0x614C +0xB9B3 0x6297 +0xB9B4 0x62D8 +0xB9B5 0x63A7 +0xB9B6 0x653B +0xB9B7 0x6602 +0xB9B8 0x6643 +0xB9B9 0x66F4 +0xB9BA 0x676D +0xB9BB 0x6821 +0xB9BC 0x6897 +0xB9BD 0x69CB +0xB9BE 0x6C5F +0xB9BF 0x6D2A +0xB9C0 0x6D69 +0xB9C1 0x6E2F +0xB9C2 0x6E9D +0xB9C3 0x7532 +0xB9C4 0x7687 +0xB9C5 0x786C +0xB9C6 0x7A3F +0xB9C7 0x7CE0 +0xB9C8 0x7D05 +0xB9C9 0x7D18 +0xB9CA 0x7D5E +0xB9CB 0x7DB1 +0xB9CC 0x8015 +0xB9CD 0x8003 +0xB9CE 0x80AF +0xB9CF 0x80B1 +0xB9D0 0x8154 +0xB9D1 0x818F +0xB9D2 0x822A +0xB9D3 0x8352 +0xB9D4 0x884C +0xB9D5 0x8861 +0xB9D6 0x8B1B +0xB9D7 0x8CA2 +0xB9D8 0x8CFC +0xB9D9 0x90CA +0xB9DA 0x9175 +0xB9DB 0x9271 +0xB9DC 0x783F +0xB9DD 0x92FC +0xB9DE 0x95A4 +0xB9DF 0x964D +0xB9E0 0x9805 +0xB9E1 0x9999 +0xB9E2 0x9AD8 +0xB9E3 0x9D3B +0xB9E4 0x525B +0xB9E5 0x52AB +0xB9E6 0x53F7 +0xB9E7 0x5408 +0xB9E8 0x58D5 +0xB9E9 0x62F7 +0xB9EA 0x6FE0 +0xB9EB 0x8C6A +0xB9EC 0x8F5F +0xB9ED 0x9EB9 +0xB9EE 0x514B +0xB9EF 0x523B +0xB9F0 0x544A +0xB9F1 0x56FD +0xB9F2 0x7A40 +0xB9F3 0x9177 +0xB9F4 0x9D60 +0xB9F5 0x9ED2 +0xB9F6 0x7344 +0xB9F7 0x6F09 +0xB9F8 0x8170 +0xB9F9 0x7511 +0xB9FA 0x5FFD +0xB9FB 0x60DA +0xB9FC 0x9AA8 +0xB9FD 0x72DB +0xB9FE 0x8FBC +0xBAA1 0x6B64 +0xBAA2 0x9803 +0xBAA3 0x4ECA +0xBAA4 0x56F0 +0xBAA5 0x5764 +0xBAA6 0x58BE +0xBAA7 0x5A5A +0xBAA8 0x6068 +0xBAA9 0x61C7 +0xBAAA 0x660F +0xBAAB 0x6606 +0xBAAC 0x6839 +0xBAAD 0x68B1 +0xBAAE 0x6DF7 +0xBAAF 0x75D5 +0xBAB0 0x7D3A +0xBAB1 0x826E +0xBAB2 0x9B42 +0xBAB3 0x4E9B +0xBAB4 0x4F50 +0xBAB5 0x53C9 +0xBAB6 0x5506 +0xBAB7 0x5D6F +0xBAB8 0x5DE6 +0xBAB9 0x5DEE +0xBABA 0x67FB +0xBABB 0x6C99 +0xBABC 0x7473 +0xBABD 0x7802 +0xBABE 0x8A50 +0xBABF 0x9396 +0xBAC0 0x88DF +0xBAC1 0x5750 +0xBAC2 0x5EA7 +0xBAC3 0x632B +0xBAC4 0x50B5 +0xBAC5 0x50AC +0xBAC6 0x518D +0xBAC7 0x6700 +0xBAC8 0x54C9 +0xBAC9 0x585E +0xBACA 0x59BB +0xBACB 0x5BB0 +0xBACC 0x5F69 +0xBACD 0x624D +0xBACE 0x63A1 +0xBACF 0x683D +0xBAD0 0x6B73 +0xBAD1 0x6E08 +0xBAD2 0x707D +0xBAD3 0x91C7 +0xBAD4 0x7280 +0xBAD5 0x7815 +0xBAD6 0x7826 +0xBAD7 0x796D +0xBAD8 0x658E +0xBAD9 0x7D30 +0xBADA 0x83DC +0xBADB 0x88C1 +0xBADC 0x8F09 +0xBADD 0x969B +0xBADE 0x5264 +0xBADF 0x5728 +0xBAE0 0x6750 +0xBAE1 0x7F6A +0xBAE2 0x8CA1 +0xBAE3 0x51B4 +0xBAE4 0x5742 +0xBAE5 0x962A +0xBAE6 0x583A +0xBAE7 0x698A +0xBAE8 0x80B4 +0xBAE9 0x54B2 +0xBAEA 0x5D0E +0xBAEB 0x57FC +0xBAEC 0x7895 +0xBAED 0x9DFA +0xBAEE 0x4F5C +0xBAEF 0x524A +0xBAF0 0x548B +0xBAF1 0x643E +0xBAF2 0x6628 +0xBAF3 0x6714 +0xBAF4 0x67F5 +0xBAF5 0x7A84 +0xBAF6 0x7B56 +0xBAF7 0x7D22 +0xBAF8 0x932F +0xBAF9 0x685C +0xBAFA 0x9BAD +0xBAFB 0x7B39 +0xBAFC 0x5319 +0xBAFD 0x518A +0xBAFE 0x5237 +0xBBA1 0x5BDF +0xBBA2 0x62F6 +0xBBA3 0x64AE +0xBBA4 0x64E6 +0xBBA5 0x672D +0xBBA6 0x6BBA +0xBBA7 0x85A9 +0xBBA8 0x96D1 +0xBBA9 0x7690 +0xBBAA 0x9BD6 +0xBBAB 0x634C +0xBBAC 0x9306 +0xBBAD 0x9BAB +0xBBAE 0x76BF +0xBBAF 0x6652 +0xBBB0 0x4E09 +0xBBB1 0x5098 +0xBBB2 0x53C2 +0xBBB3 0x5C71 +0xBBB4 0x60E8 +0xBBB5 0x6492 +0xBBB6 0x6563 +0xBBB7 0x685F +0xBBB8 0x71E6 +0xBBB9 0x73CA +0xBBBA 0x7523 +0xBBBB 0x7B97 +0xBBBC 0x7E82 +0xBBBD 0x8695 +0xBBBE 0x8B83 +0xBBBF 0x8CDB +0xBBC0 0x9178 +0xBBC1 0x9910 +0xBBC2 0x65AC +0xBBC3 0x66AB +0xBBC4 0x6B8B +0xBBC5 0x4ED5 +0xBBC6 0x4ED4 +0xBBC7 0x4F3A +0xBBC8 0x4F7F +0xBBC9 0x523A +0xBBCA 0x53F8 +0xBBCB 0x53F2 +0xBBCC 0x55E3 +0xBBCD 0x56DB +0xBBCE 0x58EB +0xBBCF 0x59CB +0xBBD0 0x59C9 +0xBBD1 0x59FF +0xBBD2 0x5B50 +0xBBD3 0x5C4D +0xBBD4 0x5E02 +0xBBD5 0x5E2B +0xBBD6 0x5FD7 +0xBBD7 0x601D +0xBBD8 0x6307 +0xBBD9 0x652F +0xBBDA 0x5B5C +0xBBDB 0x65AF +0xBBDC 0x65BD +0xBBDD 0x65E8 +0xBBDE 0x679D +0xBBDF 0x6B62 +0xBBE0 0x6B7B +0xBBE1 0x6C0F +0xBBE2 0x7345 +0xBBE3 0x7949 +0xBBE4 0x79C1 +0xBBE5 0x7CF8 +0xBBE6 0x7D19 +0xBBE7 0x7D2B +0xBBE8 0x80A2 +0xBBE9 0x8102 +0xBBEA 0x81F3 +0xBBEB 0x8996 +0xBBEC 0x8A5E +0xBBED 0x8A69 +0xBBEE 0x8A66 +0xBBEF 0x8A8C +0xBBF0 0x8AEE +0xBBF1 0x8CC7 +0xBBF2 0x8CDC +0xBBF3 0x96CC +0xBBF4 0x98FC +0xBBF5 0x6B6F +0xBBF6 0x4E8B +0xBBF7 0x4F3C +0xBBF8 0x4F8D +0xBBF9 0x5150 +0xBBFA 0x5B57 +0xBBFB 0x5BFA +0xBBFC 0x6148 +0xBBFD 0x6301 +0xBBFE 0x6642 +0xBCA1 0x6B21 +0xBCA2 0x6ECB +0xBCA3 0x6CBB +0xBCA4 0x723E +0xBCA5 0x74BD +0xBCA6 0x75D4 +0xBCA7 0x78C1 +0xBCA8 0x793A +0xBCA9 0x800C +0xBCAA 0x8033 +0xBCAB 0x81EA +0xBCAC 0x8494 +0xBCAD 0x8F9E +0xBCAE 0x6C50 +0xBCAF 0x9E7F +0xBCB0 0x5F0F +0xBCB1 0x8B58 +0xBCB2 0x9D2B +0xBCB3 0x7AFA +0xBCB4 0x8EF8 +0xBCB5 0x5B8D +0xBCB6 0x96EB +0xBCB7 0x4E03 +0xBCB8 0x53F1 +0xBCB9 0x57F7 +0xBCBA 0x5931 +0xBCBB 0x5AC9 +0xBCBC 0x5BA4 +0xBCBD 0x6089 +0xBCBE 0x6E7F +0xBCBF 0x6F06 +0xBCC0 0x75BE +0xBCC1 0x8CEA +0xBCC2 0x5B9F +0xBCC3 0x8500 +0xBCC4 0x7BE0 +0xBCC5 0x5072 +0xBCC6 0x67F4 +0xBCC7 0x829D +0xBCC8 0x5C61 +0xBCC9 0x854A +0xBCCA 0x7E1E +0xBCCB 0x820E +0xBCCC 0x5199 +0xBCCD 0x5C04 +0xBCCE 0x6368 +0xBCCF 0x8D66 +0xBCD0 0x659C +0xBCD1 0x716E +0xBCD2 0x793E +0xBCD3 0x7D17 +0xBCD4 0x8005 +0xBCD5 0x8B1D +0xBCD6 0x8ECA +0xBCD7 0x906E +0xBCD8 0x86C7 +0xBCD9 0x90AA +0xBCDA 0x501F +0xBCDB 0x52FA +0xBCDC 0x5C3A +0xBCDD 0x6753 +0xBCDE 0x707C +0xBCDF 0x7235 +0xBCE0 0x914C +0xBCE1 0x91C8 +0xBCE2 0x932B +0xBCE3 0x82E5 +0xBCE4 0x5BC2 +0xBCE5 0x5F31 +0xBCE6 0x60F9 +0xBCE7 0x4E3B +0xBCE8 0x53D6 +0xBCE9 0x5B88 +0xBCEA 0x624B +0xBCEB 0x6731 +0xBCEC 0x6B8A +0xBCED 0x72E9 +0xBCEE 0x73E0 +0xBCEF 0x7A2E +0xBCF0 0x816B +0xBCF1 0x8DA3 +0xBCF2 0x9152 +0xBCF3 0x9996 +0xBCF4 0x5112 +0xBCF5 0x53D7 +0xBCF6 0x546A +0xBCF7 0x5BFF +0xBCF8 0x6388 +0xBCF9 0x6A39 +0xBCFA 0x7DAC +0xBCFB 0x9700 +0xBCFC 0x56DA +0xBCFD 0x53CE +0xBCFE 0x5468 +0xBDA1 0x5B97 +0xBDA2 0x5C31 +0xBDA3 0x5DDE +0xBDA4 0x4FEE +0xBDA5 0x6101 +0xBDA6 0x62FE +0xBDA7 0x6D32 +0xBDA8 0x79C0 +0xBDA9 0x79CB +0xBDAA 0x7D42 +0xBDAB 0x7E4D +0xBDAC 0x7FD2 +0xBDAD 0x81ED +0xBDAE 0x821F +0xBDAF 0x8490 +0xBDB0 0x8846 +0xBDB1 0x8972 +0xBDB2 0x8B90 +0xBDB3 0x8E74 +0xBDB4 0x8F2F +0xBDB5 0x9031 +0xBDB6 0x914B +0xBDB7 0x916C +0xBDB8 0x96C6 +0xBDB9 0x919C +0xBDBA 0x4EC0 +0xBDBB 0x4F4F +0xBDBC 0x5145 +0xBDBD 0x5341 +0xBDBE 0x5F93 +0xBDBF 0x620E +0xBDC0 0x67D4 +0xBDC1 0x6C41 +0xBDC2 0x6E0B +0xBDC3 0x7363 +0xBDC4 0x7E26 +0xBDC5 0x91CD +0xBDC6 0x9283 +0xBDC7 0x53D4 +0xBDC8 0x5919 +0xBDC9 0x5BBF +0xBDCA 0x6DD1 +0xBDCB 0x795D +0xBDCC 0x7E2E +0xBDCD 0x7C9B +0xBDCE 0x587E +0xBDCF 0x719F +0xBDD0 0x51FA +0xBDD1 0x8853 +0xBDD2 0x8FF0 +0xBDD3 0x4FCA +0xBDD4 0x5CFB +0xBDD5 0x6625 +0xBDD6 0x77AC +0xBDD7 0x7AE3 +0xBDD8 0x821C +0xBDD9 0x99FF +0xBDDA 0x51C6 +0xBDDB 0x5FAA +0xBDDC 0x65EC +0xBDDD 0x696F +0xBDDE 0x6B89 +0xBDDF 0x6DF3 +0xBDE0 0x6E96 +0xBDE1 0x6F64 +0xBDE2 0x76FE +0xBDE3 0x7D14 +0xBDE4 0x5DE1 +0xBDE5 0x9075 +0xBDE6 0x9187 +0xBDE7 0x9806 +0xBDE8 0x51E6 +0xBDE9 0x521D +0xBDEA 0x6240 +0xBDEB 0x6691 +0xBDEC 0x66D9 +0xBDED 0x6E1A +0xBDEE 0x5EB6 +0xBDEF 0x7DD2 +0xBDF0 0x7F72 +0xBDF1 0x66F8 +0xBDF2 0x85AF +0xBDF3 0x85F7 +0xBDF4 0x8AF8 +0xBDF5 0x52A9 +0xBDF6 0x53D9 +0xBDF7 0x5973 +0xBDF8 0x5E8F +0xBDF9 0x5F90 +0xBDFA 0x6055 +0xBDFB 0x92E4 +0xBDFC 0x9664 +0xBDFD 0x50B7 +0xBDFE 0x511F +0xBEA1 0x52DD +0xBEA2 0x5320 +0xBEA3 0x5347 +0xBEA4 0x53EC +0xBEA5 0x54E8 +0xBEA6 0x5546 +0xBEA7 0x5531 +0xBEA8 0x5617 +0xBEA9 0x5968 +0xBEAA 0x59BE +0xBEAB 0x5A3C +0xBEAC 0x5BB5 +0xBEAD 0x5C06 +0xBEAE 0x5C0F +0xBEAF 0x5C11 +0xBEB0 0x5C1A +0xBEB1 0x5E84 +0xBEB2 0x5E8A +0xBEB3 0x5EE0 +0xBEB4 0x5F70 +0xBEB5 0x627F +0xBEB6 0x6284 +0xBEB7 0x62DB +0xBEB8 0x638C +0xBEB9 0x6377 +0xBEBA 0x6607 +0xBEBB 0x660C +0xBEBC 0x662D +0xBEBD 0x6676 +0xBEBE 0x677E +0xBEBF 0x68A2 +0xBEC0 0x6A1F +0xBEC1 0x6A35 +0xBEC2 0x6CBC +0xBEC3 0x6D88 +0xBEC4 0x6E09 +0xBEC5 0x6E58 +0xBEC6 0x713C +0xBEC7 0x7126 +0xBEC8 0x7167 +0xBEC9 0x75C7 +0xBECA 0x7701 +0xBECB 0x785D +0xBECC 0x7901 +0xBECD 0x7965 +0xBECE 0x79F0 +0xBECF 0x7AE0 +0xBED0 0x7B11 +0xBED1 0x7CA7 +0xBED2 0x7D39 +0xBED3 0x8096 +0xBED4 0x83D6 +0xBED5 0x848B +0xBED6 0x8549 +0xBED7 0x885D +0xBED8 0x88F3 +0xBED9 0x8A1F +0xBEDA 0x8A3C +0xBEDB 0x8A54 +0xBEDC 0x8A73 +0xBEDD 0x8C61 +0xBEDE 0x8CDE +0xBEDF 0x91A4 +0xBEE0 0x9266 +0xBEE1 0x937E +0xBEE2 0x9418 +0xBEE3 0x969C +0xBEE4 0x9798 +0xBEE5 0x4E0A +0xBEE6 0x4E08 +0xBEE7 0x4E1E +0xBEE8 0x4E57 +0xBEE9 0x5197 +0xBEEA 0x5270 +0xBEEB 0x57CE +0xBEEC 0x5834 +0xBEED 0x58CC +0xBEEE 0x5B22 +0xBEEF 0x5E38 +0xBEF0 0x60C5 +0xBEF1 0x64FE +0xBEF2 0x6761 +0xBEF3 0x6756 +0xBEF4 0x6D44 +0xBEF5 0x72B6 +0xBEF6 0x7573 +0xBEF7 0x7A63 +0xBEF8 0x84B8 +0xBEF9 0x8B72 +0xBEFA 0x91B8 +0xBEFB 0x9320 +0xBEFC 0x5631 +0xBEFD 0x57F4 +0xBEFE 0x98FE +0xBFA1 0x62ED +0xBFA2 0x690D +0xBFA3 0x6B96 +0xBFA4 0x71ED +0xBFA5 0x7E54 +0xBFA6 0x8077 +0xBFA7 0x8272 +0xBFA8 0x89E6 +0xBFA9 0x98DF +0xBFAA 0x8755 +0xBFAB 0x8FB1 +0xBFAC 0x5C3B +0xBFAD 0x4F38 +0xBFAE 0x4FE1 +0xBFAF 0x4FB5 +0xBFB0 0x5507 +0xBFB1 0x5A20 +0xBFB2 0x5BDD +0xBFB3 0x5BE9 +0xBFB4 0x5FC3 +0xBFB5 0x614E +0xBFB6 0x632F +0xBFB7 0x65B0 +0xBFB8 0x664B +0xBFB9 0x68EE +0xBFBA 0x699B +0xBFBB 0x6D78 +0xBFBC 0x6DF1 +0xBFBD 0x7533 +0xBFBE 0x75B9 +0xBFBF 0x771F +0xBFC0 0x795E +0xBFC1 0x79E6 +0xBFC2 0x7D33 +0xBFC3 0x81E3 +0xBFC4 0x82AF +0xBFC5 0x85AA +0xBFC6 0x89AA +0xBFC7 0x8A3A +0xBFC8 0x8EAB +0xBFC9 0x8F9B +0xBFCA 0x9032 +0xBFCB 0x91DD +0xBFCC 0x9707 +0xBFCD 0x4EBA +0xBFCE 0x4EC1 +0xBFCF 0x5203 +0xBFD0 0x5875 +0xBFD1 0x58EC +0xBFD2 0x5C0B +0xBFD3 0x751A +0xBFD4 0x5C3D +0xBFD5 0x814E +0xBFD6 0x8A0A +0xBFD7 0x8FC5 +0xBFD8 0x9663 +0xBFD9 0x976D +0xBFDA 0x7B25 +0xBFDB 0x8ACF +0xBFDC 0x9808 +0xBFDD 0x9162 +0xBFDE 0x56F3 +0xBFDF 0x53A8 +0xBFE0 0x9017 +0xBFE1 0x5439 +0xBFE2 0x5782 +0xBFE3 0x5E25 +0xBFE4 0x63A8 +0xBFE5 0x6C34 +0xBFE6 0x708A +0xBFE7 0x7761 +0xBFE8 0x7C8B +0xBFE9 0x7FE0 +0xBFEA 0x8870 +0xBFEB 0x9042 +0xBFEC 0x9154 +0xBFED 0x9310 +0xBFEE 0x9318 +0xBFEF 0x968F +0xBFF0 0x745E +0xBFF1 0x9AC4 +0xBFF2 0x5D07 +0xBFF3 0x5D69 +0xBFF4 0x6570 +0xBFF5 0x67A2 +0xBFF6 0x8DA8 +0xBFF7 0x96DB +0xBFF8 0x636E +0xBFF9 0x6749 +0xBFFA 0x6919 +0xBFFB 0x83C5 +0xBFFC 0x9817 +0xBFFD 0x96C0 +0xBFFE 0x88FE +0xC0A1 0x6F84 +0xC0A2 0x647A +0xC0A3 0x5BF8 +0xC0A4 0x4E16 +0xC0A5 0x702C +0xC0A6 0x755D +0xC0A7 0x662F +0xC0A8 0x51C4 +0xC0A9 0x5236 +0xC0AA 0x52E2 +0xC0AB 0x59D3 +0xC0AC 0x5F81 +0xC0AD 0x6027 +0xC0AE 0x6210 +0xC0AF 0x653F +0xC0B0 0x6574 +0xC0B1 0x661F +0xC0B2 0x6674 +0xC0B3 0x68F2 +0xC0B4 0x6816 +0xC0B5 0x6B63 +0xC0B6 0x6E05 +0xC0B7 0x7272 +0xC0B8 0x751F +0xC0B9 0x76DB +0xC0BA 0x7CBE +0xC0BB 0x8056 +0xC0BC 0x58F0 +0xC0BD 0x88FD +0xC0BE 0x897F +0xC0BF 0x8AA0 +0xC0C0 0x8A93 +0xC0C1 0x8ACB +0xC0C2 0x901D +0xC0C3 0x9192 +0xC0C4 0x9752 +0xC0C5 0x9759 +0xC0C6 0x6589 +0xC0C7 0x7A0E +0xC0C8 0x8106 +0xC0C9 0x96BB +0xC0CA 0x5E2D +0xC0CB 0x60DC +0xC0CC 0x621A +0xC0CD 0x65A5 +0xC0CE 0x6614 +0xC0CF 0x6790 +0xC0D0 0x77F3 +0xC0D1 0x7A4D +0xC0D2 0x7C4D +0xC0D3 0x7E3E +0xC0D4 0x810A +0xC0D5 0x8CAC +0xC0D6 0x8D64 +0xC0D7 0x8DE1 +0xC0D8 0x8E5F +0xC0D9 0x78A9 +0xC0DA 0x5207 +0xC0DB 0x62D9 +0xC0DC 0x63A5 +0xC0DD 0x6442 +0xC0DE 0x6298 +0xC0DF 0x8A2D +0xC0E0 0x7A83 +0xC0E1 0x7BC0 +0xC0E2 0x8AAC +0xC0E3 0x96EA +0xC0E4 0x7D76 +0xC0E5 0x820C +0xC0E6 0x8749 +0xC0E7 0x4ED9 +0xC0E8 0x5148 +0xC0E9 0x5343 +0xC0EA 0x5360 +0xC0EB 0x5BA3 +0xC0EC 0x5C02 +0xC0ED 0x5C16 +0xC0EE 0x5DDD +0xC0EF 0x6226 +0xC0F0 0x6247 +0xC0F1 0x64B0 +0xC0F2 0x6813 +0xC0F3 0x6834 +0xC0F4 0x6CC9 +0xC0F5 0x6D45 +0xC0F6 0x6D17 +0xC0F7 0x67D3 +0xC0F8 0x6F5C +0xC0F9 0x714E +0xC0FA 0x717D +0xC0FB 0x65CB +0xC0FC 0x7A7F +0xC0FD 0x7BAD +0xC0FE 0x7DDA +0xC1A1 0x7E4A +0xC1A2 0x7FA8 +0xC1A3 0x817A +0xC1A4 0x821B +0xC1A5 0x8239 +0xC1A6 0x85A6 +0xC1A7 0x8A6E +0xC1A8 0x8CCE +0xC1A9 0x8DF5 +0xC1AA 0x9078 +0xC1AB 0x9077 +0xC1AC 0x92AD +0xC1AD 0x9291 +0xC1AE 0x9583 +0xC1AF 0x9BAE +0xC1B0 0x524D +0xC1B1 0x5584 +0xC1B2 0x6F38 +0xC1B3 0x7136 +0xC1B4 0x5168 +0xC1B5 0x7985 +0xC1B6 0x7E55 +0xC1B7 0x81B3 +0xC1B8 0x7CCE +0xC1B9 0x564C +0xC1BA 0x5851 +0xC1BB 0x5CA8 +0xC1BC 0x63AA +0xC1BD 0x66FE +0xC1BE 0x66FD +0xC1BF 0x695A +0xC1C0 0x72D9 +0xC1C1 0x758F +0xC1C2 0x758E +0xC1C3 0x790E +0xC1C4 0x7956 +0xC1C5 0x79DF +0xC1C6 0x7C97 +0xC1C7 0x7D20 +0xC1C8 0x7D44 +0xC1C9 0x8607 +0xC1CA 0x8A34 +0xC1CB 0x963B +0xC1CC 0x9061 +0xC1CD 0x9F20 +0xC1CE 0x50E7 +0xC1CF 0x5275 +0xC1D0 0x53CC +0xC1D1 0x53E2 +0xC1D2 0x5009 +0xC1D3 0x55AA +0xC1D4 0x58EE +0xC1D5 0x594F +0xC1D6 0x723D +0xC1D7 0x5B8B +0xC1D8 0x5C64 +0xC1D9 0x531D +0xC1DA 0x60E3 +0xC1DB 0x60F3 +0xC1DC 0x635C +0xC1DD 0x6383 +0xC1DE 0x633F +0xC1DF 0x63BB +0xC1E0 0x64CD +0xC1E1 0x65E9 +0xC1E2 0x66F9 +0xC1E3 0x5DE3 +0xC1E4 0x69CD +0xC1E5 0x69FD +0xC1E6 0x6F15 +0xC1E7 0x71E5 +0xC1E8 0x4E89 +0xC1E9 0x75E9 +0xC1EA 0x76F8 +0xC1EB 0x7A93 +0xC1EC 0x7CDF +0xC1ED 0x7DCF +0xC1EE 0x7D9C +0xC1EF 0x8061 +0xC1F0 0x8349 +0xC1F1 0x8358 +0xC1F2 0x846C +0xC1F3 0x84BC +0xC1F4 0x85FB +0xC1F5 0x88C5 +0xC1F6 0x8D70 +0xC1F7 0x9001 +0xC1F8 0x906D +0xC1F9 0x9397 +0xC1FA 0x971C +0xC1FB 0x9A12 +0xC1FC 0x50CF +0xC1FD 0x5897 +0xC1FE 0x618E +0xC2A1 0x81D3 +0xC2A2 0x8535 +0xC2A3 0x8D08 +0xC2A4 0x9020 +0xC2A5 0x4FC3 +0xC2A6 0x5074 +0xC2A7 0x5247 +0xC2A8 0x5373 +0xC2A9 0x606F +0xC2AA 0x6349 +0xC2AB 0x675F +0xC2AC 0x6E2C +0xC2AD 0x8DB3 +0xC2AE 0x901F +0xC2AF 0x4FD7 +0xC2B0 0x5C5E +0xC2B1 0x8CCA +0xC2B2 0x65CF +0xC2B3 0x7D9A +0xC2B4 0x5352 +0xC2B5 0x8896 +0xC2B6 0x5176 +0xC2B7 0x63C3 +0xC2B8 0x5B58 +0xC2B9 0x5B6B +0xC2BA 0x5C0A +0xC2BB 0x640D +0xC2BC 0x6751 +0xC2BD 0x905C +0xC2BE 0x4ED6 +0xC2BF 0x591A +0xC2C0 0x592A +0xC2C1 0x6C70 +0xC2C2 0x8A51 +0xC2C3 0x553E +0xC2C4 0x5815 +0xC2C5 0x59A5 +0xC2C6 0x60F0 +0xC2C7 0x6253 +0xC2C8 0x67C1 +0xC2C9 0x8235 +0xC2CA 0x6955 +0xC2CB 0x9640 +0xC2CC 0x99C4 +0xC2CD 0x9A28 +0xC2CE 0x4F53 +0xC2CF 0x5806 +0xC2D0 0x5BFE +0xC2D1 0x8010 +0xC2D2 0x5CB1 +0xC2D3 0x5E2F +0xC2D4 0x5F85 +0xC2D5 0x6020 +0xC2D6 0x614B +0xC2D7 0x6234 +0xC2D8 0x66FF +0xC2D9 0x6CF0 +0xC2DA 0x6EDE +0xC2DB 0x80CE +0xC2DC 0x817F +0xC2DD 0x82D4 +0xC2DE 0x888B +0xC2DF 0x8CB8 +0xC2E0 0x9000 +0xC2E1 0x902E +0xC2E2 0x968A +0xC2E3 0x9EDB +0xC2E4 0x9BDB +0xC2E5 0x4EE3 +0xC2E6 0x53F0 +0xC2E7 0x5927 +0xC2E8 0x7B2C +0xC2E9 0x918D +0xC2EA 0x984C +0xC2EB 0x9DF9 +0xC2EC 0x6EDD +0xC2ED 0x7027 +0xC2EE 0x5353 +0xC2EF 0x5544 +0xC2F0 0x5B85 +0xC2F1 0x6258 +0xC2F2 0x629E +0xC2F3 0x62D3 +0xC2F4 0x6CA2 +0xC2F5 0x6FEF +0xC2F6 0x7422 +0xC2F7 0x8A17 +0xC2F8 0x9438 +0xC2F9 0x6FC1 +0xC2FA 0x8AFE +0xC2FB 0x8338 +0xC2FC 0x51E7 +0xC2FD 0x86F8 +0xC2FE 0x53EA +0xC3A1 0x53E9 +0xC3A2 0x4F46 +0xC3A3 0x9054 +0xC3A4 0x8FB0 +0xC3A5 0x596A +0xC3A6 0x8131 +0xC3A7 0x5DFD +0xC3A8 0x7AEA +0xC3A9 0x8FBF +0xC3AA 0x68DA +0xC3AB 0x8C37 +0xC3AC 0x72F8 +0xC3AD 0x9C48 +0xC3AE 0x6A3D +0xC3AF 0x8AB0 +0xC3B0 0x4E39 +0xC3B1 0x5358 +0xC3B2 0x5606 +0xC3B3 0x5766 +0xC3B4 0x62C5 +0xC3B5 0x63A2 +0xC3B6 0x65E6 +0xC3B7 0x6B4E +0xC3B8 0x6DE1 +0xC3B9 0x6E5B +0xC3BA 0x70AD +0xC3BB 0x77ED +0xC3BC 0x7AEF +0xC3BD 0x7BAA +0xC3BE 0x7DBB +0xC3BF 0x803D +0xC3C0 0x80C6 +0xC3C1 0x86CB +0xC3C2 0x8A95 +0xC3C3 0x935B +0xC3C4 0x56E3 +0xC3C5 0x58C7 +0xC3C6 0x5F3E +0xC3C7 0x65AD +0xC3C8 0x6696 +0xC3C9 0x6A80 +0xC3CA 0x6BB5 +0xC3CB 0x7537 +0xC3CC 0x8AC7 +0xC3CD 0x5024 +0xC3CE 0x77E5 +0xC3CF 0x5730 +0xC3D0 0x5F1B +0xC3D1 0x6065 +0xC3D2 0x667A +0xC3D3 0x6C60 +0xC3D4 0x75F4 +0xC3D5 0x7A1A +0xC3D6 0x7F6E +0xC3D7 0x81F4 +0xC3D8 0x8718 +0xC3D9 0x9045 +0xC3DA 0x99B3 +0xC3DB 0x7BC9 +0xC3DC 0x755C +0xC3DD 0x7AF9 +0xC3DE 0x7B51 +0xC3DF 0x84C4 +0xC3E0 0x9010 +0xC3E1 0x79E9 +0xC3E2 0x7A92 +0xC3E3 0x8336 +0xC3E4 0x5AE1 +0xC3E5 0x7740 +0xC3E6 0x4E2D +0xC3E7 0x4EF2 +0xC3E8 0x5B99 +0xC3E9 0x5FE0 +0xC3EA 0x62BD +0xC3EB 0x663C +0xC3EC 0x67F1 +0xC3ED 0x6CE8 +0xC3EE 0x866B +0xC3EF 0x8877 +0xC3F0 0x8A3B +0xC3F1 0x914E +0xC3F2 0x92F3 +0xC3F3 0x99D0 +0xC3F4 0x6A17 +0xC3F5 0x7026 +0xC3F6 0x732A +0xC3F7 0x82E7 +0xC3F8 0x8457 +0xC3F9 0x8CAF +0xC3FA 0x4E01 +0xC3FB 0x5146 +0xC3FC 0x51CB +0xC3FD 0x558B +0xC3FE 0x5BF5 +0xC4A1 0x5E16 +0xC4A2 0x5E33 +0xC4A3 0x5E81 +0xC4A4 0x5F14 +0xC4A5 0x5F35 +0xC4A6 0x5F6B +0xC4A7 0x5FB4 +0xC4A8 0x61F2 +0xC4A9 0x6311 +0xC4AA 0x66A2 +0xC4AB 0x671D +0xC4AC 0x6F6E +0xC4AD 0x7252 +0xC4AE 0x753A +0xC4AF 0x773A +0xC4B0 0x8074 +0xC4B1 0x8139 +0xC4B2 0x8178 +0xC4B3 0x8776 +0xC4B4 0x8ABF +0xC4B5 0x8ADC +0xC4B6 0x8D85 +0xC4B7 0x8DF3 +0xC4B8 0x929A +0xC4B9 0x9577 +0xC4BA 0x9802 +0xC4BB 0x9CE5 +0xC4BC 0x52C5 +0xC4BD 0x6357 +0xC4BE 0x76F4 +0xC4BF 0x6715 +0xC4C0 0x6C88 +0xC4C1 0x73CD +0xC4C2 0x8CC3 +0xC4C3 0x93AE +0xC4C4 0x9673 +0xC4C5 0x6D25 +0xC4C6 0x589C +0xC4C7 0x690E +0xC4C8 0x69CC +0xC4C9 0x8FFD +0xC4CA 0x939A +0xC4CB 0x75DB +0xC4CC 0x901A +0xC4CD 0x585A +0xC4CE 0x6802 +0xC4CF 0x63B4 +0xC4D0 0x69FB +0xC4D1 0x4F43 +0xC4D2 0x6F2C +0xC4D3 0x67D8 +0xC4D4 0x8FBB +0xC4D5 0x8526 +0xC4D6 0x7DB4 +0xC4D7 0x9354 +0xC4D8 0x693F +0xC4D9 0x6F70 +0xC4DA 0x576A +0xC4DB 0x58F7 +0xC4DC 0x5B2C +0xC4DD 0x7D2C +0xC4DE 0x722A +0xC4DF 0x540A +0xC4E0 0x91E3 +0xC4E1 0x9DB4 +0xC4E2 0x4EAD +0xC4E3 0x4F4E +0xC4E4 0x505C +0xC4E5 0x5075 +0xC4E6 0x5243 +0xC4E7 0x8C9E +0xC4E8 0x5448 +0xC4E9 0x5824 +0xC4EA 0x5B9A +0xC4EB 0x5E1D +0xC4EC 0x5E95 +0xC4ED 0x5EAD +0xC4EE 0x5EF7 +0xC4EF 0x5F1F +0xC4F0 0x608C +0xC4F1 0x62B5 +0xC4F2 0x633A +0xC4F3 0x63D0 +0xC4F4 0x68AF +0xC4F5 0x6C40 +0xC4F6 0x7887 +0xC4F7 0x798E +0xC4F8 0x7A0B +0xC4F9 0x7DE0 +0xC4FA 0x8247 +0xC4FB 0x8A02 +0xC4FC 0x8AE6 +0xC4FD 0x8E44 +0xC4FE 0x9013 +0xC5A1 0x90B8 +0xC5A2 0x912D +0xC5A3 0x91D8 +0xC5A4 0x9F0E +0xC5A5 0x6CE5 +0xC5A6 0x6458 +0xC5A7 0x64E2 +0xC5A8 0x6575 +0xC5A9 0x6EF4 +0xC5AA 0x7684 +0xC5AB 0x7B1B +0xC5AC 0x9069 +0xC5AD 0x93D1 +0xC5AE 0x6EBA +0xC5AF 0x54F2 +0xC5B0 0x5FB9 +0xC5B1 0x64A4 +0xC5B2 0x8F4D +0xC5B3 0x8FED +0xC5B4 0x9244 +0xC5B5 0x5178 +0xC5B6 0x586B +0xC5B7 0x5929 +0xC5B8 0x5C55 +0xC5B9 0x5E97 +0xC5BA 0x6DFB +0xC5BB 0x7E8F +0xC5BC 0x751C +0xC5BD 0x8CBC +0xC5BE 0x8EE2 +0xC5BF 0x985B +0xC5C0 0x70B9 +0xC5C1 0x4F1D +0xC5C2 0x6BBF +0xC5C3 0x6FB1 +0xC5C4 0x7530 +0xC5C5 0x96FB +0xC5C6 0x514E +0xC5C7 0x5410 +0xC5C8 0x5835 +0xC5C9 0x5857 +0xC5CA 0x59AC +0xC5CB 0x5C60 +0xC5CC 0x5F92 +0xC5CD 0x6597 +0xC5CE 0x675C +0xC5CF 0x6E21 +0xC5D0 0x767B +0xC5D1 0x83DF +0xC5D2 0x8CED +0xC5D3 0x9014 +0xC5D4 0x90FD +0xC5D5 0x934D +0xC5D6 0x7825 +0xC5D7 0x783A +0xC5D8 0x52AA +0xC5D9 0x5EA6 +0xC5DA 0x571F +0xC5DB 0x5974 +0xC5DC 0x6012 +0xC5DD 0x5012 +0xC5DE 0x515A +0xC5DF 0x51AC +0xC5E0 0x51CD +0xC5E1 0x5200 +0xC5E2 0x5510 +0xC5E3 0x5854 +0xC5E4 0x5858 +0xC5E5 0x5957 +0xC5E6 0x5B95 +0xC5E7 0x5CF6 +0xC5E8 0x5D8B +0xC5E9 0x60BC +0xC5EA 0x6295 +0xC5EB 0x642D +0xC5EC 0x6771 +0xC5ED 0x6843 +0xC5EE 0x68BC +0xC5EF 0x68DF +0xC5F0 0x76D7 +0xC5F1 0x6DD8 +0xC5F2 0x6E6F +0xC5F3 0x6D9B +0xC5F4 0x706F +0xC5F5 0x71C8 +0xC5F6 0x5F53 +0xC5F7 0x75D8 +0xC5F8 0x7977 +0xC5F9 0x7B49 +0xC5FA 0x7B54 +0xC5FB 0x7B52 +0xC5FC 0x7CD6 +0xC5FD 0x7D71 +0xC5FE 0x5230 +0xC6A1 0x8463 +0xC6A2 0x8569 +0xC6A3 0x85E4 +0xC6A4 0x8A0E +0xC6A5 0x8B04 +0xC6A6 0x8C46 +0xC6A7 0x8E0F +0xC6A8 0x9003 +0xC6A9 0x900F +0xC6AA 0x9419 +0xC6AB 0x9676 +0xC6AC 0x982D +0xC6AD 0x9A30 +0xC6AE 0x95D8 +0xC6AF 0x50CD +0xC6B0 0x52D5 +0xC6B1 0x540C +0xC6B2 0x5802 +0xC6B3 0x5C0E +0xC6B4 0x61A7 +0xC6B5 0x649E +0xC6B6 0x6D1E +0xC6B7 0x77B3 +0xC6B8 0x7AE5 +0xC6B9 0x80F4 +0xC6BA 0x8404 +0xC6BB 0x9053 +0xC6BC 0x9285 +0xC6BD 0x5CE0 +0xC6BE 0x9D07 +0xC6BF 0x533F +0xC6C0 0x5F97 +0xC6C1 0x5FB3 +0xC6C2 0x6D9C +0xC6C3 0x7279 +0xC6C4 0x7763 +0xC6C5 0x79BF +0xC6C6 0x7BE4 +0xC6C7 0x6BD2 +0xC6C8 0x72EC +0xC6C9 0x8AAD +0xC6CA 0x6803 +0xC6CB 0x6A61 +0xC6CC 0x51F8 +0xC6CD 0x7A81 +0xC6CE 0x6934 +0xC6CF 0x5C4A +0xC6D0 0x9CF6 +0xC6D1 0x82EB +0xC6D2 0x5BC5 +0xC6D3 0x9149 +0xC6D4 0x701E +0xC6D5 0x5678 +0xC6D6 0x5C6F +0xC6D7 0x60C7 +0xC6D8 0x6566 +0xC6D9 0x6C8C +0xC6DA 0x8C5A +0xC6DB 0x9041 +0xC6DC 0x9813 +0xC6DD 0x5451 +0xC6DE 0x66C7 +0xC6DF 0x920D +0xC6E0 0x5948 +0xC6E1 0x90A3 +0xC6E2 0x5185 +0xC6E3 0x4E4D +0xC6E4 0x51EA +0xC6E5 0x8599 +0xC6E6 0x8B0E +0xC6E7 0x7058 +0xC6E8 0x637A +0xC6E9 0x934B +0xC6EA 0x6962 +0xC6EB 0x99B4 +0xC6EC 0x7E04 +0xC6ED 0x7577 +0xC6EE 0x5357 +0xC6EF 0x6960 +0xC6F0 0x8EDF +0xC6F1 0x96E3 +0xC6F2 0x6C5D +0xC6F3 0x4E8C +0xC6F4 0x5C3C +0xC6F5 0x5F10 +0xC6F6 0x8FE9 +0xC6F7 0x5302 +0xC6F8 0x8CD1 +0xC6F9 0x8089 +0xC6FA 0x8679 +0xC6FB 0x5EFF +0xC6FC 0x65E5 +0xC6FD 0x4E73 +0xC6FE 0x5165 +0xC7A1 0x5982 +0xC7A2 0x5C3F +0xC7A3 0x97EE +0xC7A4 0x4EFB +0xC7A5 0x598A +0xC7A6 0x5FCD +0xC7A7 0x8A8D +0xC7A8 0x6FE1 +0xC7A9 0x79B0 +0xC7AA 0x7962 +0xC7AB 0x5BE7 +0xC7AC 0x8471 +0xC7AD 0x732B +0xC7AE 0x71B1 +0xC7AF 0x5E74 +0xC7B0 0x5FF5 +0xC7B1 0x637B +0xC7B2 0x649A +0xC7B3 0x71C3 +0xC7B4 0x7C98 +0xC7B5 0x4E43 +0xC7B6 0x5EFC +0xC7B7 0x4E4B +0xC7B8 0x57DC +0xC7B9 0x56A2 +0xC7BA 0x60A9 +0xC7BB 0x6FC3 +0xC7BC 0x7D0D +0xC7BD 0x80FD +0xC7BE 0x8133 +0xC7BF 0x81BF +0xC7C0 0x8FB2 +0xC7C1 0x8997 +0xC7C2 0x86A4 +0xC7C3 0x5DF4 +0xC7C4 0x628A +0xC7C5 0x64AD +0xC7C6 0x8987 +0xC7C7 0x6777 +0xC7C8 0x6CE2 +0xC7C9 0x6D3E +0xC7CA 0x7436 +0xC7CB 0x7834 +0xC7CC 0x5A46 +0xC7CD 0x7F75 +0xC7CE 0x82AD +0xC7CF 0x99AC +0xC7D0 0x4FF3 +0xC7D1 0x5EC3 +0xC7D2 0x62DD +0xC7D3 0x6392 +0xC7D4 0x6557 +0xC7D5 0x676F +0xC7D6 0x76C3 +0xC7D7 0x724C +0xC7D8 0x80CC +0xC7D9 0x80BA +0xC7DA 0x8F29 +0xC7DB 0x914D +0xC7DC 0x500D +0xC7DD 0x57F9 +0xC7DE 0x5A92 +0xC7DF 0x6885 +0xC7E0 0x6973 +0xC7E1 0x7164 +0xC7E2 0x72FD +0xC7E3 0x8CB7 +0xC7E4 0x58F2 +0xC7E5 0x8CE0 +0xC7E6 0x966A +0xC7E7 0x9019 +0xC7E8 0x877F +0xC7E9 0x79E4 +0xC7EA 0x77E7 +0xC7EB 0x8429 +0xC7EC 0x4F2F +0xC7ED 0x5265 +0xC7EE 0x535A +0xC7EF 0x62CD +0xC7F0 0x67CF +0xC7F1 0x6CCA +0xC7F2 0x767D +0xC7F3 0x7B94 +0xC7F4 0x7C95 +0xC7F5 0x8236 +0xC7F6 0x8584 +0xC7F7 0x8FEB +0xC7F8 0x66DD +0xC7F9 0x6F20 +0xC7FA 0x7206 +0xC7FB 0x7E1B +0xC7FC 0x83AB +0xC7FD 0x99C1 +0xC7FE 0x9EA6 +0xC8A1 0x51FD +0xC8A2 0x7BB1 +0xC8A3 0x7872 +0xC8A4 0x7BB8 +0xC8A5 0x8087 +0xC8A6 0x7B48 +0xC8A7 0x6AE8 +0xC8A8 0x5E61 +0xC8A9 0x808C +0xC8AA 0x7551 +0xC8AB 0x7560 +0xC8AC 0x516B +0xC8AD 0x9262 +0xC8AE 0x6E8C +0xC8AF 0x767A +0xC8B0 0x9197 +0xC8B1 0x9AEA +0xC8B2 0x4F10 +0xC8B3 0x7F70 +0xC8B4 0x629C +0xC8B5 0x7B4F +0xC8B6 0x95A5 +0xC8B7 0x9CE9 +0xC8B8 0x567A +0xC8B9 0x5859 +0xC8BA 0x86E4 +0xC8BB 0x96BC +0xC8BC 0x4F34 +0xC8BD 0x5224 +0xC8BE 0x534A +0xC8BF 0x53CD +0xC8C0 0x53DB +0xC8C1 0x5E06 +0xC8C2 0x642C +0xC8C3 0x6591 +0xC8C4 0x677F +0xC8C5 0x6C3E +0xC8C6 0x6C4E +0xC8C7 0x7248 +0xC8C8 0x72AF +0xC8C9 0x73ED +0xC8CA 0x7554 +0xC8CB 0x7E41 +0xC8CC 0x822C +0xC8CD 0x85E9 +0xC8CE 0x8CA9 +0xC8CF 0x7BC4 +0xC8D0 0x91C6 +0xC8D1 0x7169 +0xC8D2 0x9812 +0xC8D3 0x98EF +0xC8D4 0x633D +0xC8D5 0x6669 +0xC8D6 0x756A +0xC8D7 0x76E4 +0xC8D8 0x78D0 +0xC8D9 0x8543 +0xC8DA 0x86EE +0xC8DB 0x532A +0xC8DC 0x5351 +0xC8DD 0x5426 +0xC8DE 0x5983 +0xC8DF 0x5E87 +0xC8E0 0x5F7C +0xC8E1 0x60B2 +0xC8E2 0x6249 +0xC8E3 0x6279 +0xC8E4 0x62AB +0xC8E5 0x6590 +0xC8E6 0x6BD4 +0xC8E7 0x6CCC +0xC8E8 0x75B2 +0xC8E9 0x76AE +0xC8EA 0x7891 +0xC8EB 0x79D8 +0xC8EC 0x7DCB +0xC8ED 0x7F77 +0xC8EE 0x80A5 +0xC8EF 0x88AB +0xC8F0 0x8AB9 +0xC8F1 0x8CBB +0xC8F2 0x907F +0xC8F3 0x975E +0xC8F4 0x98DB +0xC8F5 0x6A0B +0xC8F6 0x7C38 +0xC8F7 0x5099 +0xC8F8 0x5C3E +0xC8F9 0x5FAE +0xC8FA 0x6787 +0xC8FB 0x6BD8 +0xC8FC 0x7435 +0xC8FD 0x7709 +0xC8FE 0x7F8E +0xC9A1 0x9F3B +0xC9A2 0x67CA +0xC9A3 0x7A17 +0xC9A4 0x5339 +0xC9A5 0x758B +0xC9A6 0x9AED +0xC9A7 0x5F66 +0xC9A8 0x819D +0xC9A9 0x83F1 +0xC9AA 0x8098 +0xC9AB 0x5F3C +0xC9AC 0x5FC5 +0xC9AD 0x7562 +0xC9AE 0x7B46 +0xC9AF 0x903C +0xC9B0 0x6867 +0xC9B1 0x59EB +0xC9B2 0x5A9B +0xC9B3 0x7D10 +0xC9B4 0x767E +0xC9B5 0x8B2C +0xC9B6 0x4FF5 +0xC9B7 0x5F6A +0xC9B8 0x6A19 +0xC9B9 0x6C37 +0xC9BA 0x6F02 +0xC9BB 0x74E2 +0xC9BC 0x7968 +0xC9BD 0x8868 +0xC9BE 0x8A55 +0xC9BF 0x8C79 +0xC9C0 0x5EDF +0xC9C1 0x63CF +0xC9C2 0x75C5 +0xC9C3 0x79D2 +0xC9C4 0x82D7 +0xC9C5 0x9328 +0xC9C6 0x92F2 +0xC9C7 0x849C +0xC9C8 0x86ED +0xC9C9 0x9C2D +0xC9CA 0x54C1 +0xC9CB 0x5F6C +0xC9CC 0x658C +0xC9CD 0x6D5C +0xC9CE 0x7015 +0xC9CF 0x8CA7 +0xC9D0 0x8CD3 +0xC9D1 0x983B +0xC9D2 0x654F +0xC9D3 0x74F6 +0xC9D4 0x4E0D +0xC9D5 0x4ED8 +0xC9D6 0x57E0 +0xC9D7 0x592B +0xC9D8 0x5A66 +0xC9D9 0x5BCC +0xC9DA 0x51A8 +0xC9DB 0x5E03 +0xC9DC 0x5E9C +0xC9DD 0x6016 +0xC9DE 0x6276 +0xC9DF 0x6577 +0xC9E0 0x65A7 +0xC9E1 0x666E +0xC9E2 0x6D6E +0xC9E3 0x7236 +0xC9E4 0x7B26 +0xC9E5 0x8150 +0xC9E6 0x819A +0xC9E7 0x8299 +0xC9E8 0x8B5C +0xC9E9 0x8CA0 +0xC9EA 0x8CE6 +0xC9EB 0x8D74 +0xC9EC 0x961C +0xC9ED 0x9644 +0xC9EE 0x4FAE +0xC9EF 0x64AB +0xC9F0 0x6B66 +0xC9F1 0x821E +0xC9F2 0x8461 +0xC9F3 0x856A +0xC9F4 0x90E8 +0xC9F5 0x5C01 +0xC9F6 0x6953 +0xC9F7 0x98A8 +0xC9F8 0x847A +0xC9F9 0x8557 +0xC9FA 0x4F0F +0xC9FB 0x526F +0xC9FC 0x5FA9 +0xC9FD 0x5E45 +0xC9FE 0x670D +0xCAA1 0x798F +0xCAA2 0x8179 +0xCAA3 0x8907 +0xCAA4 0x8986 +0xCAA5 0x6DF5 +0xCAA6 0x5F17 +0xCAA7 0x6255 +0xCAA8 0x6CB8 +0xCAA9 0x4ECF +0xCAAA 0x7269 +0xCAAB 0x9B92 +0xCAAC 0x5206 +0xCAAD 0x543B +0xCAAE 0x5674 +0xCAAF 0x58B3 +0xCAB0 0x61A4 +0xCAB1 0x626E +0xCAB2 0x711A +0xCAB3 0x596E +0xCAB4 0x7C89 +0xCAB5 0x7CDE +0xCAB6 0x7D1B +0xCAB7 0x96F0 +0xCAB8 0x6587 +0xCAB9 0x805E +0xCABA 0x4E19 +0xCABB 0x4F75 +0xCABC 0x5175 +0xCABD 0x5840 +0xCABE 0x5E63 +0xCABF 0x5E73 +0xCAC0 0x5F0A +0xCAC1 0x67C4 +0xCAC2 0x4E26 +0xCAC3 0x853D +0xCAC4 0x9589 +0xCAC5 0x965B +0xCAC6 0x7C73 +0xCAC7 0x9801 +0xCAC8 0x50FB +0xCAC9 0x58C1 +0xCACA 0x7656 +0xCACB 0x78A7 +0xCACC 0x5225 +0xCACD 0x77A5 +0xCACE 0x8511 +0xCACF 0x7B86 +0xCAD0 0x504F +0xCAD1 0x5909 +0xCAD2 0x7247 +0xCAD3 0x7BC7 +0xCAD4 0x7DE8 +0xCAD5 0x8FBA +0xCAD6 0x8FD4 +0xCAD7 0x904D +0xCAD8 0x4FBF +0xCAD9 0x52C9 +0xCADA 0x5A29 +0xCADB 0x5F01 +0xCADC 0x97AD +0xCADD 0x4FDD +0xCADE 0x8217 +0xCADF 0x92EA +0xCAE0 0x5703 +0xCAE1 0x6355 +0xCAE2 0x6B69 +0xCAE3 0x752B +0xCAE4 0x88DC +0xCAE5 0x8F14 +0xCAE6 0x7A42 +0xCAE7 0x52DF +0xCAE8 0x5893 +0xCAE9 0x6155 +0xCAEA 0x620A +0xCAEB 0x66AE +0xCAEC 0x6BCD +0xCAED 0x7C3F +0xCAEE 0x83E9 +0xCAEF 0x5023 +0xCAF0 0x4FF8 +0xCAF1 0x5305 +0xCAF2 0x5446 +0xCAF3 0x5831 +0xCAF4 0x5949 +0xCAF5 0x5B9D +0xCAF6 0x5CF0 +0xCAF7 0x5CEF +0xCAF8 0x5D29 +0xCAF9 0x5E96 +0xCAFA 0x62B1 +0xCAFB 0x6367 +0xCAFC 0x653E +0xCAFD 0x65B9 +0xCAFE 0x670B +0xCBA1 0x6CD5 +0xCBA2 0x6CE1 +0xCBA3 0x70F9 +0xCBA4 0x7832 +0xCBA5 0x7E2B +0xCBA6 0x80DE +0xCBA7 0x82B3 +0xCBA8 0x840C +0xCBA9 0x84EC +0xCBAA 0x8702 +0xCBAB 0x8912 +0xCBAC 0x8A2A +0xCBAD 0x8C4A +0xCBAE 0x90A6 +0xCBAF 0x92D2 +0xCBB0 0x98FD +0xCBB1 0x9CF3 +0xCBB2 0x9D6C +0xCBB3 0x4E4F +0xCBB4 0x4EA1 +0xCBB5 0x508D +0xCBB6 0x5256 +0xCBB7 0x574A +0xCBB8 0x59A8 +0xCBB9 0x5E3D +0xCBBA 0x5FD8 +0xCBBB 0x5FD9 +0xCBBC 0x623F +0xCBBD 0x66B4 +0xCBBE 0x671B +0xCBBF 0x67D0 +0xCBC0 0x68D2 +0xCBC1 0x5192 +0xCBC2 0x7D21 +0xCBC3 0x80AA +0xCBC4 0x81A8 +0xCBC5 0x8B00 +0xCBC6 0x8C8C +0xCBC7 0x8CBF +0xCBC8 0x927E +0xCBC9 0x9632 +0xCBCA 0x5420 +0xCBCB 0x982C +0xCBCC 0x5317 +0xCBCD 0x50D5 +0xCBCE 0x535C +0xCBCF 0x58A8 +0xCBD0 0x64B2 +0xCBD1 0x6734 +0xCBD2 0x7267 +0xCBD3 0x7766 +0xCBD4 0x7A46 +0xCBD5 0x91E6 +0xCBD6 0x52C3 +0xCBD7 0x6CA1 +0xCBD8 0x6B86 +0xCBD9 0x5800 +0xCBDA 0x5E4C +0xCBDB 0x5954 +0xCBDC 0x672C +0xCBDD 0x7FFB +0xCBDE 0x51E1 +0xCBDF 0x76C6 +0xCBE0 0x6469 +0xCBE1 0x78E8 +0xCBE2 0x9B54 +0xCBE3 0x9EBB +0xCBE4 0x57CB +0xCBE5 0x59B9 +0xCBE6 0x6627 +0xCBE7 0x679A +0xCBE8 0x6BCE +0xCBE9 0x54E9 +0xCBEA 0x69D9 +0xCBEB 0x5E55 +0xCBEC 0x819C +0xCBED 0x6795 +0xCBEE 0x9BAA +0xCBEF 0x67FE +0xCBF0 0x9C52 +0xCBF1 0x685D +0xCBF2 0x4EA6 +0xCBF3 0x4FE3 +0xCBF4 0x53C8 +0xCBF5 0x62B9 +0xCBF6 0x672B +0xCBF7 0x6CAB +0xCBF8 0x8FC4 +0xCBF9 0x4FAD +0xCBFA 0x7E6D +0xCBFB 0x9EBF +0xCBFC 0x4E07 +0xCBFD 0x6162 +0xCBFE 0x6E80 +0xCCA1 0x6F2B +0xCCA2 0x8513 +0xCCA3 0x5473 +0xCCA4 0x672A +0xCCA5 0x9B45 +0xCCA6 0x5DF3 +0xCCA7 0x7B95 +0xCCA8 0x5CAC +0xCCA9 0x5BC6 +0xCCAA 0x871C +0xCCAB 0x6E4A +0xCCAC 0x84D1 +0xCCAD 0x7A14 +0xCCAE 0x8108 +0xCCAF 0x5999 +0xCCB0 0x7C8D +0xCCB1 0x6C11 +0xCCB2 0x7720 +0xCCB3 0x52D9 +0xCCB4 0x5922 +0xCCB5 0x7121 +0xCCB6 0x725F +0xCCB7 0x77DB +0xCCB8 0x9727 +0xCCB9 0x9D61 +0xCCBA 0x690B +0xCCBB 0x5A7F +0xCCBC 0x5A18 +0xCCBD 0x51A5 +0xCCBE 0x540D +0xCCBF 0x547D +0xCCC0 0x660E +0xCCC1 0x76DF +0xCCC2 0x8FF7 +0xCCC3 0x9298 +0xCCC4 0x9CF4 +0xCCC5 0x59EA +0xCCC6 0x725D +0xCCC7 0x6EC5 +0xCCC8 0x514D +0xCCC9 0x68C9 +0xCCCA 0x7DBF +0xCCCB 0x7DEC +0xCCCC 0x9762 +0xCCCD 0x9EBA +0xCCCE 0x6478 +0xCCCF 0x6A21 +0xCCD0 0x8302 +0xCCD1 0x5984 +0xCCD2 0x5B5F +0xCCD3 0x6BDB +0xCCD4 0x731B +0xCCD5 0x76F2 +0xCCD6 0x7DB2 +0xCCD7 0x8017 +0xCCD8 0x8499 +0xCCD9 0x5132 +0xCCDA 0x6728 +0xCCDB 0x9ED9 +0xCCDC 0x76EE +0xCCDD 0x6762 +0xCCDE 0x52FF +0xCCDF 0x9905 +0xCCE0 0x5C24 +0xCCE1 0x623B +0xCCE2 0x7C7E +0xCCE3 0x8CB0 +0xCCE4 0x554F +0xCCE5 0x60B6 +0xCCE6 0x7D0B +0xCCE7 0x9580 +0xCCE8 0x5301 +0xCCE9 0x4E5F +0xCCEA 0x51B6 +0xCCEB 0x591C +0xCCEC 0x723A +0xCCED 0x8036 +0xCCEE 0x91CE +0xCCEF 0x5F25 +0xCCF0 0x77E2 +0xCCF1 0x5384 +0xCCF2 0x5F79 +0xCCF3 0x7D04 +0xCCF4 0x85AC +0xCCF5 0x8A33 +0xCCF6 0x8E8D +0xCCF7 0x9756 +0xCCF8 0x67F3 +0xCCF9 0x85AE +0xCCFA 0x9453 +0xCCFB 0x6109 +0xCCFC 0x6108 +0xCCFD 0x6CB9 +0xCCFE 0x7652 +0xCDA1 0x8AED +0xCDA2 0x8F38 +0xCDA3 0x552F +0xCDA4 0x4F51 +0xCDA5 0x512A +0xCDA6 0x52C7 +0xCDA7 0x53CB +0xCDA8 0x5BA5 +0xCDA9 0x5E7D +0xCDAA 0x60A0 +0xCDAB 0x6182 +0xCDAC 0x63D6 +0xCDAD 0x6709 +0xCDAE 0x67DA +0xCDAF 0x6E67 +0xCDB0 0x6D8C +0xCDB1 0x7336 +0xCDB2 0x7337 +0xCDB3 0x7531 +0xCDB4 0x7950 +0xCDB5 0x88D5 +0xCDB6 0x8A98 +0xCDB7 0x904A +0xCDB8 0x9091 +0xCDB9 0x90F5 +0xCDBA 0x96C4 +0xCDBB 0x878D +0xCDBC 0x5915 +0xCDBD 0x4E88 +0xCDBE 0x4F59 +0xCDBF 0x4E0E +0xCDC0 0x8A89 +0xCDC1 0x8F3F +0xCDC2 0x9810 +0xCDC3 0x50AD +0xCDC4 0x5E7C +0xCDC5 0x5996 +0xCDC6 0x5BB9 +0xCDC7 0x5EB8 +0xCDC8 0x63DA +0xCDC9 0x63FA +0xCDCA 0x64C1 +0xCDCB 0x66DC +0xCDCC 0x694A +0xCDCD 0x69D8 +0xCDCE 0x6D0B +0xCDCF 0x6EB6 +0xCDD0 0x7194 +0xCDD1 0x7528 +0xCDD2 0x7AAF +0xCDD3 0x7F8A +0xCDD4 0x8000 +0xCDD5 0x8449 +0xCDD6 0x84C9 +0xCDD7 0x8981 +0xCDD8 0x8B21 +0xCDD9 0x8E0A +0xCDDA 0x9065 +0xCDDB 0x967D +0xCDDC 0x990A +0xCDDD 0x617E +0xCDDE 0x6291 +0xCDDF 0x6B32 +0xCDE0 0x6C83 +0xCDE1 0x6D74 +0xCDE2 0x7FCC +0xCDE3 0x7FFC +0xCDE4 0x6DC0 +0xCDE5 0x7F85 +0xCDE6 0x87BA +0xCDE7 0x88F8 +0xCDE8 0x6765 +0xCDE9 0x83B1 +0xCDEA 0x983C +0xCDEB 0x96F7 +0xCDEC 0x6D1B +0xCDED 0x7D61 +0xCDEE 0x843D +0xCDEF 0x916A +0xCDF0 0x4E71 +0xCDF1 0x5375 +0xCDF2 0x5D50 +0xCDF3 0x6B04 +0xCDF4 0x6FEB +0xCDF5 0x85CD +0xCDF6 0x862D +0xCDF7 0x89A7 +0xCDF8 0x5229 +0xCDF9 0x540F +0xCDFA 0x5C65 +0xCDFB 0x674E +0xCDFC 0x68A8 +0xCDFD 0x7406 +0xCDFE 0x7483 +0xCEA1 0x75E2 +0xCEA2 0x88CF +0xCEA3 0x88E1 +0xCEA4 0x91CC +0xCEA5 0x96E2 +0xCEA6 0x9678 +0xCEA7 0x5F8B +0xCEA8 0x7387 +0xCEA9 0x7ACB +0xCEAA 0x844E +0xCEAB 0x63A0 +0xCEAC 0x7565 +0xCEAD 0x5289 +0xCEAE 0x6D41 +0xCEAF 0x6E9C +0xCEB0 0x7409 +0xCEB1 0x7559 +0xCEB2 0x786B +0xCEB3 0x7C92 +0xCEB4 0x9686 +0xCEB5 0x7ADC +0xCEB6 0x9F8D +0xCEB7 0x4FB6 +0xCEB8 0x616E +0xCEB9 0x65C5 +0xCEBA 0x865C +0xCEBB 0x4E86 +0xCEBC 0x4EAE +0xCEBD 0x50DA +0xCEBE 0x4E21 +0xCEBF 0x51CC +0xCEC0 0x5BEE +0xCEC1 0x6599 +0xCEC2 0x6881 +0xCEC3 0x6DBC +0xCEC4 0x731F +0xCEC5 0x7642 +0xCEC6 0x77AD +0xCEC7 0x7A1C +0xCEC8 0x7CE7 +0xCEC9 0x826F +0xCECA 0x8AD2 +0xCECB 0x907C +0xCECC 0x91CF +0xCECD 0x9675 +0xCECE 0x9818 +0xCECF 0x529B +0xCED0 0x7DD1 +0xCED1 0x502B +0xCED2 0x5398 +0xCED3 0x6797 +0xCED4 0x6DCB +0xCED5 0x71D0 +0xCED6 0x7433 +0xCED7 0x81E8 +0xCED8 0x8F2A +0xCED9 0x96A3 +0xCEDA 0x9C57 +0xCEDB 0x9E9F +0xCEDC 0x7460 +0xCEDD 0x5841 +0xCEDE 0x6D99 +0xCEDF 0x7D2F +0xCEE0 0x985E +0xCEE1 0x4EE4 +0xCEE2 0x4F36 +0xCEE3 0x4F8B +0xCEE4 0x51B7 +0xCEE5 0x52B1 +0xCEE6 0x5DBA +0xCEE7 0x601C +0xCEE8 0x73B2 +0xCEE9 0x793C +0xCEEA 0x82D3 +0xCEEB 0x9234 +0xCEEC 0x96B7 +0xCEED 0x96F6 +0xCEEE 0x970A +0xCEEF 0x9E97 +0xCEF0 0x9F62 +0xCEF1 0x66A6 +0xCEF2 0x6B74 +0xCEF3 0x5217 +0xCEF4 0x52A3 +0xCEF5 0x70C8 +0xCEF6 0x88C2 +0xCEF7 0x5EC9 +0xCEF8 0x604B +0xCEF9 0x6190 +0xCEFA 0x6F23 +0xCEFB 0x7149 +0xCEFC 0x7C3E +0xCEFD 0x7DF4 +0xCEFE 0x806F +0xCFA1 0x84EE +0xCFA2 0x9023 +0xCFA3 0x932C +0xCFA4 0x5442 +0xCFA5 0x9B6F +0xCFA6 0x6AD3 +0xCFA7 0x7089 +0xCFA8 0x8CC2 +0xCFA9 0x8DEF +0xCFAA 0x9732 +0xCFAB 0x52B4 +0xCFAC 0x5A41 +0xCFAD 0x5ECA +0xCFAE 0x5F04 +0xCFAF 0x6717 +0xCFB0 0x697C +0xCFB1 0x6994 +0xCFB2 0x6D6A +0xCFB3 0x6F0F +0xCFB4 0x7262 +0xCFB5 0x72FC +0xCFB6 0x7BED +0xCFB7 0x8001 +0xCFB8 0x807E +0xCFB9 0x874B +0xCFBA 0x90CE +0xCFBB 0x516D +0xCFBC 0x9E93 +0xCFBD 0x7984 +0xCFBE 0x808B +0xCFBF 0x9332 +0xCFC0 0x8AD6 +0xCFC1 0x502D +0xCFC2 0x548C +0xCFC3 0x8A71 +0xCFC4 0x6B6A +0xCFC5 0x8CC4 +0xCFC6 0x8107 +0xCFC7 0x60D1 +0xCFC8 0x67A0 +0xCFC9 0x9DF2 +0xCFCA 0x4E99 +0xCFCB 0x4E98 +0xCFCC 0x9C10 +0xCFCD 0x8A6B +0xCFCE 0x85C1 +0xCFCF 0x8568 +0xCFD0 0x6900 +0xCFD1 0x6E7E +0xCFD2 0x7897 +0xCFD3 0x8155 +0xCFD4 0x20B9F +0xCFD5 0x5B41 +0xCFD6 0x5B56 +0xCFD7 0x5B7D +0xCFD8 0x5B93 +0xCFD9 0x5BD8 +0xCFDA 0x5BEC +0xCFDB 0x5C12 +0xCFDC 0x5C1E +0xCFDD 0x5C23 +0xCFDE 0x5C2B +0xCFDF 0x378D +0xCFE0 0x5C62 +0xCFE1 0xFA3B +0xCFE2 0xFA3C +0xCFE3 0x216B4 +0xCFE4 0x5C7A +0xCFE5 0x5C8F +0xCFE6 0x5C9F +0xCFE7 0x5CA3 +0xCFE8 0x5CAA +0xCFE9 0x5CBA +0xCFEA 0x5CCB +0xCFEB 0x5CD0 +0xCFEC 0x5CD2 +0xCFED 0x5CF4 +0xCFEE 0x21E34 +0xCFEF 0x37E2 +0xCFF0 0x5D0D +0xCFF1 0x5D27 +0xCFF2 0xFA11 +0xCFF3 0x5D46 +0xCFF4 0x5D47 +0xCFF5 0x5D53 +0xCFF6 0x5D4A +0xCFF7 0x5D6D +0xCFF8 0x5D81 +0xCFF9 0x5DA0 +0xCFFA 0x5DA4 +0xCFFB 0x5DA7 +0xCFFC 0x5DB8 +0xCFFD 0x5DCB +0xCFFE 0x541E +0xD0A1 0x5F0C +0xD0A2 0x4E10 +0xD0A3 0x4E15 +0xD0A4 0x4E2A +0xD0A5 0x4E31 +0xD0A6 0x4E36 +0xD0A7 0x4E3C +0xD0A8 0x4E3F +0xD0A9 0x4E42 +0xD0AA 0x4E56 +0xD0AB 0x4E58 +0xD0AC 0x4E82 +0xD0AD 0x4E85 +0xD0AE 0x8C6B +0xD0AF 0x4E8A +0xD0B0 0x8212 +0xD0B1 0x5F0D +0xD0B2 0x4E8E +0xD0B3 0x4E9E +0xD0B4 0x4E9F +0xD0B5 0x4EA0 +0xD0B6 0x4EA2 +0xD0B7 0x4EB0 +0xD0B8 0x4EB3 +0xD0B9 0x4EB6 +0xD0BA 0x4ECE +0xD0BB 0x4ECD +0xD0BC 0x4EC4 +0xD0BD 0x4EC6 +0xD0BE 0x4EC2 +0xD0BF 0x4ED7 +0xD0C0 0x4EDE +0xD0C1 0x4EED +0xD0C2 0x4EDF +0xD0C3 0x4EF7 +0xD0C4 0x4F09 +0xD0C5 0x4F5A +0xD0C6 0x4F30 +0xD0C7 0x4F5B +0xD0C8 0x4F5D +0xD0C9 0x4F57 +0xD0CA 0x4F47 +0xD0CB 0x4F76 +0xD0CC 0x4F88 +0xD0CD 0x4F8F +0xD0CE 0x4F98 +0xD0CF 0x4F7B +0xD0D0 0x4F69 +0xD0D1 0x4F70 +0xD0D2 0x4F91 +0xD0D3 0x4F6F +0xD0D4 0x4F86 +0xD0D5 0x4F96 +0xD0D6 0x5118 +0xD0D7 0x4FD4 +0xD0D8 0x4FDF +0xD0D9 0x4FCE +0xD0DA 0x4FD8 +0xD0DB 0x4FDB +0xD0DC 0x4FD1 +0xD0DD 0x4FDA +0xD0DE 0x4FD0 +0xD0DF 0x4FE4 +0xD0E0 0x4FE5 +0xD0E1 0x501A +0xD0E2 0x5028 +0xD0E3 0x5014 +0xD0E4 0x502A +0xD0E5 0x5025 +0xD0E6 0x5005 +0xD0E7 0x4F1C +0xD0E8 0x4FF6 +0xD0E9 0x5021 +0xD0EA 0x5029 +0xD0EB 0x502C +0xD0EC 0x4FFE +0xD0ED 0x4FEF +0xD0EE 0x5011 +0xD0EF 0x5006 +0xD0F0 0x5043 +0xD0F1 0x5047 +0xD0F2 0x6703 +0xD0F3 0x5055 +0xD0F4 0x5050 +0xD0F5 0x5048 +0xD0F6 0x505A +0xD0F7 0x5056 +0xD0F8 0x506C +0xD0F9 0x5078 +0xD0FA 0x5080 +0xD0FB 0x509A +0xD0FC 0x5085 +0xD0FD 0x50B4 +0xD0FE 0x50B2 +0xD1A1 0x50C9 +0xD1A2 0x50CA +0xD1A3 0x50B3 +0xD1A4 0x50C2 +0xD1A5 0x50D6 +0xD1A6 0x50DE +0xD1A7 0x50E5 +0xD1A8 0x50ED +0xD1A9 0x50E3 +0xD1AA 0x50EE +0xD1AB 0x50F9 +0xD1AC 0x50F5 +0xD1AD 0x5109 +0xD1AE 0x5101 +0xD1AF 0x5102 +0xD1B0 0x5116 +0xD1B1 0x5115 +0xD1B2 0x5114 +0xD1B3 0x511A +0xD1B4 0x5121 +0xD1B5 0x513A +0xD1B6 0x5137 +0xD1B7 0x513C +0xD1B8 0x513B +0xD1B9 0x513F +0xD1BA 0x5140 +0xD1BB 0x5152 +0xD1BC 0x514C +0xD1BD 0x5154 +0xD1BE 0x5162 +0xD1BF 0x7AF8 +0xD1C0 0x5169 +0xD1C1 0x516A +0xD1C2 0x516E +0xD1C3 0x5180 +0xD1C4 0x5182 +0xD1C5 0x56D8 +0xD1C6 0x518C +0xD1C7 0x5189 +0xD1C8 0x518F +0xD1C9 0x5191 +0xD1CA 0x5193 +0xD1CB 0x5195 +0xD1CC 0x5196 +0xD1CD 0x51A4 +0xD1CE 0x51A6 +0xD1CF 0x51A2 +0xD1D0 0x51A9 +0xD1D1 0x51AA +0xD1D2 0x51AB +0xD1D3 0x51B3 +0xD1D4 0x51B1 +0xD1D5 0x51B2 +0xD1D6 0x51B0 +0xD1D7 0x51B5 +0xD1D8 0x51BD +0xD1D9 0x51C5 +0xD1DA 0x51C9 +0xD1DB 0x51DB +0xD1DC 0x51E0 +0xD1DD 0x8655 +0xD1DE 0x51E9 +0xD1DF 0x51ED +0xD1E0 0x51F0 +0xD1E1 0x51F5 +0xD1E2 0x51FE +0xD1E3 0x5204 +0xD1E4 0x520B +0xD1E5 0x5214 +0xD1E6 0x520E +0xD1E7 0x5227 +0xD1E8 0x522A +0xD1E9 0x522E +0xD1EA 0x5233 +0xD1EB 0x5239 +0xD1EC 0x524F +0xD1ED 0x5244 +0xD1EE 0x524B +0xD1EF 0x524C +0xD1F0 0x525E +0xD1F1 0x5254 +0xD1F2 0x526A +0xD1F3 0x5274 +0xD1F4 0x5269 +0xD1F5 0x5273 +0xD1F6 0x527F +0xD1F7 0x527D +0xD1F8 0x528D +0xD1F9 0x5294 +0xD1FA 0x5292 +0xD1FB 0x5271 +0xD1FC 0x5288 +0xD1FD 0x5291 +0xD1FE 0x8FA8 +0xD2A1 0x8FA7 +0xD2A2 0x52AC +0xD2A3 0x52AD +0xD2A4 0x52BC +0xD2A5 0x52B5 +0xD2A6 0x52C1 +0xD2A7 0x52CD +0xD2A8 0x52D7 +0xD2A9 0x52DE +0xD2AA 0x52E3 +0xD2AB 0x52E6 +0xD2AC 0x98ED +0xD2AD 0x52E0 +0xD2AE 0x52F3 +0xD2AF 0x52F5 +0xD2B0 0x52F8 +0xD2B1 0x52F9 +0xD2B2 0x5306 +0xD2B3 0x5308 +0xD2B4 0x7538 +0xD2B5 0x530D +0xD2B6 0x5310 +0xD2B7 0x530F +0xD2B8 0x5315 +0xD2B9 0x531A +0xD2BA 0x5323 +0xD2BB 0x532F +0xD2BC 0x5331 +0xD2BD 0x5333 +0xD2BE 0x5338 +0xD2BF 0x5340 +0xD2C0 0x5346 +0xD2C1 0x5345 +0xD2C2 0x4E17 +0xD2C3 0x5349 +0xD2C4 0x534D +0xD2C5 0x51D6 +0xD2C6 0x535E +0xD2C7 0x5369 +0xD2C8 0x536E +0xD2C9 0x5918 +0xD2CA 0x537B +0xD2CB 0x5377 +0xD2CC 0x5382 +0xD2CD 0x5396 +0xD2CE 0x53A0 +0xD2CF 0x53A6 +0xD2D0 0x53A5 +0xD2D1 0x53AE +0xD2D2 0x53B0 +0xD2D3 0x53B6 +0xD2D4 0x53C3 +0xD2D5 0x7C12 +0xD2D6 0x96D9 +0xD2D7 0x53DF +0xD2D8 0x66FC +0xD2D9 0x71EE +0xD2DA 0x53EE +0xD2DB 0x53E8 +0xD2DC 0x53ED +0xD2DD 0x53FA +0xD2DE 0x5401 +0xD2DF 0x543D +0xD2E0 0x5440 +0xD2E1 0x542C +0xD2E2 0x542D +0xD2E3 0x543C +0xD2E4 0x542E +0xD2E5 0x5436 +0xD2E6 0x5429 +0xD2E7 0x541D +0xD2E8 0x544E +0xD2E9 0x548F +0xD2EA 0x5475 +0xD2EB 0x548E +0xD2EC 0x545F +0xD2ED 0x5471 +0xD2EE 0x5477 +0xD2EF 0x5470 +0xD2F0 0x5492 +0xD2F1 0x547B +0xD2F2 0x5480 +0xD2F3 0x5476 +0xD2F4 0x5484 +0xD2F5 0x5490 +0xD2F6 0x5486 +0xD2F7 0x54C7 +0xD2F8 0x54A2 +0xD2F9 0x54B8 +0xD2FA 0x54A5 +0xD2FB 0x54AC +0xD2FC 0x54C4 +0xD2FD 0x54C8 +0xD2FE 0x54A8 +0xD3A1 0x54AB +0xD3A2 0x54C2 +0xD3A3 0x54A4 +0xD3A4 0x54BE +0xD3A5 0x54BC +0xD3A6 0x54D8 +0xD3A7 0x54E5 +0xD3A8 0x54E6 +0xD3A9 0x550F +0xD3AA 0x5514 +0xD3AB 0x54FD +0xD3AC 0x54EE +0xD3AD 0x54ED +0xD3AE 0x54FA +0xD3AF 0x54E2 +0xD3B0 0x5539 +0xD3B1 0x5540 +0xD3B2 0x5563 +0xD3B3 0x554C +0xD3B4 0x552E +0xD3B5 0x555C +0xD3B6 0x5545 +0xD3B7 0x5556 +0xD3B8 0x5557 +0xD3B9 0x5538 +0xD3BA 0x5533 +0xD3BB 0x555D +0xD3BC 0x5599 +0xD3BD 0x5580 +0xD3BE 0x54AF +0xD3BF 0x558A +0xD3C0 0x559F +0xD3C1 0x557B +0xD3C2 0x557E +0xD3C3 0x5598 +0xD3C4 0x559E +0xD3C5 0x55AE +0xD3C6 0x557C +0xD3C7 0x5583 +0xD3C8 0x55A9 +0xD3C9 0x5587 +0xD3CA 0x55A8 +0xD3CB 0x55DA +0xD3CC 0x55C5 +0xD3CD 0x55DF +0xD3CE 0x55C4 +0xD3CF 0x55DC +0xD3D0 0x55E4 +0xD3D1 0x55D4 +0xD3D2 0x5614 +0xD3D3 0x55F7 +0xD3D4 0x5616 +0xD3D5 0x55FE +0xD3D6 0x55FD +0xD3D7 0x561B +0xD3D8 0x55F9 +0xD3D9 0x564E +0xD3DA 0x5650 +0xD3DB 0x71DF +0xD3DC 0x5634 +0xD3DD 0x5636 +0xD3DE 0x5632 +0xD3DF 0x5638 +0xD3E0 0x566B +0xD3E1 0x5664 +0xD3E2 0x562F +0xD3E3 0x566C +0xD3E4 0x566A +0xD3E5 0x5686 +0xD3E6 0x5680 +0xD3E7 0x568A +0xD3E8 0x56A0 +0xD3E9 0x5694 +0xD3EA 0x568F +0xD3EB 0x56A5 +0xD3EC 0x56AE +0xD3ED 0x56B6 +0xD3EE 0x56B4 +0xD3EF 0x56C2 +0xD3F0 0x56BC +0xD3F1 0x56C1 +0xD3F2 0x56C3 +0xD3F3 0x56C0 +0xD3F4 0x56C8 +0xD3F5 0x56CE +0xD3F6 0x56D1 +0xD3F7 0x56D3 +0xD3F8 0x56D7 +0xD3F9 0x56EE +0xD3FA 0x56F9 +0xD3FB 0x5700 +0xD3FC 0x56FF +0xD3FD 0x5704 +0xD3FE 0x5709 +0xD4A1 0x5708 +0xD4A2 0x570B +0xD4A3 0x570D +0xD4A4 0x5713 +0xD4A5 0x5718 +0xD4A6 0x5716 +0xD4A7 0x55C7 +0xD4A8 0x571C +0xD4A9 0x5726 +0xD4AA 0x5737 +0xD4AB 0x5738 +0xD4AC 0x574E +0xD4AD 0x573B +0xD4AE 0x5740 +0xD4AF 0x574F +0xD4B0 0x5769 +0xD4B1 0x57C0 +0xD4B2 0x5788 +0xD4B3 0x5761 +0xD4B4 0x577F +0xD4B5 0x5789 +0xD4B6 0x5793 +0xD4B7 0x57A0 +0xD4B8 0x57B3 +0xD4B9 0x57A4 +0xD4BA 0x57AA +0xD4BB 0x57B0 +0xD4BC 0x57C3 +0xD4BD 0x57C6 +0xD4BE 0x57D4 +0xD4BF 0x57D2 +0xD4C0 0x57D3 +0xD4C1 0x580A +0xD4C2 0x57D6 +0xD4C3 0x57E3 +0xD4C4 0x580B +0xD4C5 0x5819 +0xD4C6 0x581D +0xD4C7 0x5872 +0xD4C8 0x5821 +0xD4C9 0x5862 +0xD4CA 0x584B +0xD4CB 0x5870 +0xD4CC 0x6BC0 +0xD4CD 0x5852 +0xD4CE 0x583D +0xD4CF 0x5879 +0xD4D0 0x5885 +0xD4D1 0x58B9 +0xD4D2 0x589F +0xD4D3 0x58AB +0xD4D4 0x58BA +0xD4D5 0x58DE +0xD4D6 0x58BB +0xD4D7 0x58B8 +0xD4D8 0x58AE +0xD4D9 0x58C5 +0xD4DA 0x58D3 +0xD4DB 0x58D1 +0xD4DC 0x58D7 +0xD4DD 0x58D9 +0xD4DE 0x58D8 +0xD4DF 0x58E5 +0xD4E0 0x58DC +0xD4E1 0x58E4 +0xD4E2 0x58DF +0xD4E3 0x58EF +0xD4E4 0x58FA +0xD4E5 0x58F9 +0xD4E6 0x58FB +0xD4E7 0x58FC +0xD4E8 0x58FD +0xD4E9 0x5902 +0xD4EA 0x590A +0xD4EB 0x5910 +0xD4EC 0x591B +0xD4ED 0x68A6 +0xD4EE 0x5925 +0xD4EF 0x592C +0xD4F0 0x592D +0xD4F1 0x5932 +0xD4F2 0x5938 +0xD4F3 0x593E +0xD4F4 0x7AD2 +0xD4F5 0x5955 +0xD4F6 0x5950 +0xD4F7 0x594E +0xD4F8 0x595A +0xD4F9 0x5958 +0xD4FA 0x5962 +0xD4FB 0x5960 +0xD4FC 0x5967 +0xD4FD 0x596C +0xD4FE 0x5969 +0xD5A1 0x5978 +0xD5A2 0x5981 +0xD5A3 0x599D +0xD5A4 0x4F5E +0xD5A5 0x4FAB +0xD5A6 0x59A3 +0xD5A7 0x59B2 +0xD5A8 0x59C6 +0xD5A9 0x59E8 +0xD5AA 0x59DC +0xD5AB 0x598D +0xD5AC 0x59D9 +0xD5AD 0x59DA +0xD5AE 0x5A25 +0xD5AF 0x5A1F +0xD5B0 0x5A11 +0xD5B1 0x5A1C +0xD5B2 0x5A09 +0xD5B3 0x5A1A +0xD5B4 0x5A40 +0xD5B5 0x5A6C +0xD5B6 0x5A49 +0xD5B7 0x5A35 +0xD5B8 0x5A36 +0xD5B9 0x5A62 +0xD5BA 0x5A6A +0xD5BB 0x5A9A +0xD5BC 0x5ABC +0xD5BD 0x5ABE +0xD5BE 0x5ACB +0xD5BF 0x5AC2 +0xD5C0 0x5ABD +0xD5C1 0x5AE3 +0xD5C2 0x5AD7 +0xD5C3 0x5AE6 +0xD5C4 0x5AE9 +0xD5C5 0x5AD6 +0xD5C6 0x5AFA +0xD5C7 0x5AFB +0xD5C8 0x5B0C +0xD5C9 0x5B0B +0xD5CA 0x5B16 +0xD5CB 0x5B32 +0xD5CC 0x5AD0 +0xD5CD 0x5B2A +0xD5CE 0x5B36 +0xD5CF 0x5B3E +0xD5D0 0x5B43 +0xD5D1 0x5B45 +0xD5D2 0x5B40 +0xD5D3 0x5B51 +0xD5D4 0x5B55 +0xD5D5 0x5B5A +0xD5D6 0x5B5B +0xD5D7 0x5B65 +0xD5D8 0x5B69 +0xD5D9 0x5B70 +0xD5DA 0x5B73 +0xD5DB 0x5B75 +0xD5DC 0x5B78 +0xD5DD 0x6588 +0xD5DE 0x5B7A +0xD5DF 0x5B80 +0xD5E0 0x5B83 +0xD5E1 0x5BA6 +0xD5E2 0x5BB8 +0xD5E3 0x5BC3 +0xD5E4 0x5BC7 +0xD5E5 0x5BC9 +0xD5E6 0x5BD4 +0xD5E7 0x5BD0 +0xD5E8 0x5BE4 +0xD5E9 0x5BE6 +0xD5EA 0x5BE2 +0xD5EB 0x5BDE +0xD5EC 0x5BE5 +0xD5ED 0x5BEB +0xD5EE 0x5BF0 +0xD5EF 0x5BF6 +0xD5F0 0x5BF3 +0xD5F1 0x5C05 +0xD5F2 0x5C07 +0xD5F3 0x5C08 +0xD5F4 0x5C0D +0xD5F5 0x5C13 +0xD5F6 0x5C20 +0xD5F7 0x5C22 +0xD5F8 0x5C28 +0xD5F9 0x5C38 +0xD5FA 0x5C39 +0xD5FB 0x5C41 +0xD5FC 0x5C46 +0xD5FD 0x5C4E +0xD5FE 0x5C53 +0xD6A1 0x5C50 +0xD6A2 0x5C4F +0xD6A3 0x5B71 +0xD6A4 0x5C6C +0xD6A5 0x5C6E +0xD6A6 0x4E62 +0xD6A7 0x5C76 +0xD6A8 0x5C79 +0xD6A9 0x5C8C +0xD6AA 0x5C91 +0xD6AB 0x5C94 +0xD6AC 0x599B +0xD6AD 0x5CAB +0xD6AE 0x5CBB +0xD6AF 0x5CB6 +0xD6B0 0x5CBC +0xD6B1 0x5CB7 +0xD6B2 0x5CC5 +0xD6B3 0x5CBE +0xD6B4 0x5CC7 +0xD6B5 0x5CD9 +0xD6B6 0x5CE9 +0xD6B7 0x5CFD +0xD6B8 0x5CFA +0xD6B9 0x5CED +0xD6BA 0x5D8C +0xD6BB 0x5CEA +0xD6BC 0x5D0B +0xD6BD 0x5D15 +0xD6BE 0x5D17 +0xD6BF 0x5D5C +0xD6C0 0x5D1F +0xD6C1 0x5D1B +0xD6C2 0x5D11 +0xD6C3 0x5D14 +0xD6C4 0x5D22 +0xD6C5 0x5D1A +0xD6C6 0x5D19 +0xD6C7 0x5D18 +0xD6C8 0x5D4C +0xD6C9 0x5D52 +0xD6CA 0x5D4E +0xD6CB 0x5D4B +0xD6CC 0x5D6C +0xD6CD 0x5D73 +0xD6CE 0x5D76 +0xD6CF 0x5D87 +0xD6D0 0x5D84 +0xD6D1 0x5D82 +0xD6D2 0x5DA2 +0xD6D3 0x5D9D +0xD6D4 0x5DAC +0xD6D5 0x5DAE +0xD6D6 0x5DBD +0xD6D7 0x5D90 +0xD6D8 0x5DB7 +0xD6D9 0x5DBC +0xD6DA 0x5DC9 +0xD6DB 0x5DCD +0xD6DC 0x5DD3 +0xD6DD 0x5DD2 +0xD6DE 0x5DD6 +0xD6DF 0x5DDB +0xD6E0 0x5DEB +0xD6E1 0x5DF2 +0xD6E2 0x5DF5 +0xD6E3 0x5E0B +0xD6E4 0x5E1A +0xD6E5 0x5E19 +0xD6E6 0x5E11 +0xD6E7 0x5E1B +0xD6E8 0x5E36 +0xD6E9 0x5E37 +0xD6EA 0x5E44 +0xD6EB 0x5E43 +0xD6EC 0x5E40 +0xD6ED 0x5E4E +0xD6EE 0x5E57 +0xD6EF 0x5E54 +0xD6F0 0x5E5F +0xD6F1 0x5E62 +0xD6F2 0x5E64 +0xD6F3 0x5E47 +0xD6F4 0x5E75 +0xD6F5 0x5E76 +0xD6F6 0x5E7A +0xD6F7 0x9EBC +0xD6F8 0x5E7F +0xD6F9 0x5EA0 +0xD6FA 0x5EC1 +0xD6FB 0x5EC2 +0xD6FC 0x5EC8 +0xD6FD 0x5ED0 +0xD6FE 0x5ECF +0xD7A1 0x5ED6 +0xD7A2 0x5EE3 +0xD7A3 0x5EDD +0xD7A4 0x5EDA +0xD7A5 0x5EDB +0xD7A6 0x5EE2 +0xD7A7 0x5EE1 +0xD7A8 0x5EE8 +0xD7A9 0x5EE9 +0xD7AA 0x5EEC +0xD7AB 0x5EF1 +0xD7AC 0x5EF3 +0xD7AD 0x5EF0 +0xD7AE 0x5EF4 +0xD7AF 0x5EF8 +0xD7B0 0x5EFE +0xD7B1 0x5F03 +0xD7B2 0x5F09 +0xD7B3 0x5F5D +0xD7B4 0x5F5C +0xD7B5 0x5F0B +0xD7B6 0x5F11 +0xD7B7 0x5F16 +0xD7B8 0x5F29 +0xD7B9 0x5F2D +0xD7BA 0x5F38 +0xD7BB 0x5F41 +0xD7BC 0x5F48 +0xD7BD 0x5F4C +0xD7BE 0x5F4E +0xD7BF 0x5F2F +0xD7C0 0x5F51 +0xD7C1 0x5F56 +0xD7C2 0x5F57 +0xD7C3 0x5F59 +0xD7C4 0x5F61 +0xD7C5 0x5F6D +0xD7C6 0x5F73 +0xD7C7 0x5F77 +0xD7C8 0x5F83 +0xD7C9 0x5F82 +0xD7CA 0x5F7F +0xD7CB 0x5F8A +0xD7CC 0x5F88 +0xD7CD 0x5F91 +0xD7CE 0x5F87 +0xD7CF 0x5F9E +0xD7D0 0x5F99 +0xD7D1 0x5F98 +0xD7D2 0x5FA0 +0xD7D3 0x5FA8 +0xD7D4 0x5FAD +0xD7D5 0x5FBC +0xD7D6 0x5FD6 +0xD7D7 0x5FFB +0xD7D8 0x5FE4 +0xD7D9 0x5FF8 +0xD7DA 0x5FF1 +0xD7DB 0x5FDD +0xD7DC 0x60B3 +0xD7DD 0x5FFF +0xD7DE 0x6021 +0xD7DF 0x6060 +0xD7E0 0x6019 +0xD7E1 0x6010 +0xD7E2 0x6029 +0xD7E3 0x600E +0xD7E4 0x6031 +0xD7E5 0x601B +0xD7E6 0x6015 +0xD7E7 0x602B +0xD7E8 0x6026 +0xD7E9 0x600F +0xD7EA 0x603A +0xD7EB 0x605A +0xD7EC 0x6041 +0xD7ED 0x606A +0xD7EE 0x6077 +0xD7EF 0x605F +0xD7F0 0x604A +0xD7F1 0x6046 +0xD7F2 0x604D +0xD7F3 0x6063 +0xD7F4 0x6043 +0xD7F5 0x6064 +0xD7F6 0x6042 +0xD7F7 0x606C +0xD7F8 0x606B +0xD7F9 0x6059 +0xD7FA 0x6081 +0xD7FB 0x608D +0xD7FC 0x60E7 +0xD7FD 0x6083 +0xD7FE 0x609A +0xD8A1 0x6084 +0xD8A2 0x609B +0xD8A3 0x6096 +0xD8A4 0x6097 +0xD8A5 0x6092 +0xD8A6 0x60A7 +0xD8A7 0x608B +0xD8A8 0x60E1 +0xD8A9 0x60B8 +0xD8AA 0x60E0 +0xD8AB 0x60D3 +0xD8AC 0x60B4 +0xD8AD 0x5FF0 +0xD8AE 0x60BD +0xD8AF 0x60C6 +0xD8B0 0x60B5 +0xD8B1 0x60D8 +0xD8B2 0x614D +0xD8B3 0x6115 +0xD8B4 0x6106 +0xD8B5 0x60F6 +0xD8B6 0x60F7 +0xD8B7 0x6100 +0xD8B8 0x60F4 +0xD8B9 0x60FA +0xD8BA 0x6103 +0xD8BB 0x6121 +0xD8BC 0x60FB +0xD8BD 0x60F1 +0xD8BE 0x610D +0xD8BF 0x610E +0xD8C0 0x6147 +0xD8C1 0x613E +0xD8C2 0x6128 +0xD8C3 0x6127 +0xD8C4 0x614A +0xD8C5 0x613F +0xD8C6 0x613C +0xD8C7 0x612C +0xD8C8 0x6134 +0xD8C9 0x613D +0xD8CA 0x6142 +0xD8CB 0x6144 +0xD8CC 0x6173 +0xD8CD 0x6177 +0xD8CE 0x6158 +0xD8CF 0x6159 +0xD8D0 0x615A +0xD8D1 0x616B +0xD8D2 0x6174 +0xD8D3 0x616F +0xD8D4 0x6165 +0xD8D5 0x6171 +0xD8D6 0x615F +0xD8D7 0x615D +0xD8D8 0x6153 +0xD8D9 0x6175 +0xD8DA 0x6199 +0xD8DB 0x6196 +0xD8DC 0x6187 +0xD8DD 0x61AC +0xD8DE 0x6194 +0xD8DF 0x619A +0xD8E0 0x618A +0xD8E1 0x6191 +0xD8E2 0x61AB +0xD8E3 0x61AE +0xD8E4 0x61CC +0xD8E5 0x61CA +0xD8E6 0x61C9 +0xD8E7 0x61F7 +0xD8E8 0x61C8 +0xD8E9 0x61C3 +0xD8EA 0x61C6 +0xD8EB 0x61BA +0xD8EC 0x61CB +0xD8ED 0x7F79 +0xD8EE 0x61CD +0xD8EF 0x61E6 +0xD8F0 0x61E3 +0xD8F1 0x61F6 +0xD8F2 0x61FA +0xD8F3 0x61F4 +0xD8F4 0x61FF +0xD8F5 0x61FD +0xD8F6 0x61FC +0xD8F7 0x61FE +0xD8F8 0x6200 +0xD8F9 0x6208 +0xD8FA 0x6209 +0xD8FB 0x620D +0xD8FC 0x620C +0xD8FD 0x6214 +0xD8FE 0x621B +0xD9A1 0x621E +0xD9A2 0x6221 +0xD9A3 0x622A +0xD9A4 0x622E +0xD9A5 0x6230 +0xD9A6 0x6232 +0xD9A7 0x6233 +0xD9A8 0x6241 +0xD9A9 0x624E +0xD9AA 0x625E +0xD9AB 0x6263 +0xD9AC 0x625B +0xD9AD 0x6260 +0xD9AE 0x6268 +0xD9AF 0x627C +0xD9B0 0x6282 +0xD9B1 0x6289 +0xD9B2 0x627E +0xD9B3 0x6292 +0xD9B4 0x6293 +0xD9B5 0x6296 +0xD9B6 0x62D4 +0xD9B7 0x6283 +0xD9B8 0x6294 +0xD9B9 0x62D7 +0xD9BA 0x62D1 +0xD9BB 0x62BB +0xD9BC 0x62CF +0xD9BD 0x62FF +0xD9BE 0x62C6 +0xD9BF 0x64D4 +0xD9C0 0x62C8 +0xD9C1 0x62DC +0xD9C2 0x62CC +0xD9C3 0x62CA +0xD9C4 0x62C2 +0xD9C5 0x62C7 +0xD9C6 0x629B +0xD9C7 0x62C9 +0xD9C8 0x630C +0xD9C9 0x62EE +0xD9CA 0x62F1 +0xD9CB 0x6327 +0xD9CC 0x6302 +0xD9CD 0x6308 +0xD9CE 0x62EF +0xD9CF 0x62F5 +0xD9D0 0x6350 +0xD9D1 0x633E +0xD9D2 0x634D +0xD9D3 0x641C +0xD9D4 0x634F +0xD9D5 0x6396 +0xD9D6 0x638E +0xD9D7 0x6380 +0xD9D8 0x63AB +0xD9D9 0x6376 +0xD9DA 0x63A3 +0xD9DB 0x638F +0xD9DC 0x6389 +0xD9DD 0x639F +0xD9DE 0x63B5 +0xD9DF 0x636B +0xD9E0 0x6369 +0xD9E1 0x63BE +0xD9E2 0x63E9 +0xD9E3 0x63C0 +0xD9E4 0x63C6 +0xD9E5 0x63E3 +0xD9E6 0x63C9 +0xD9E7 0x63D2 +0xD9E8 0x63F6 +0xD9E9 0x63C4 +0xD9EA 0x6416 +0xD9EB 0x6434 +0xD9EC 0x6406 +0xD9ED 0x6413 +0xD9EE 0x6426 +0xD9EF 0x6436 +0xD9F0 0x651D +0xD9F1 0x6417 +0xD9F2 0x6428 +0xD9F3 0x640F +0xD9F4 0x6467 +0xD9F5 0x646F +0xD9F6 0x6476 +0xD9F7 0x644E +0xD9F8 0x652A +0xD9F9 0x6495 +0xD9FA 0x6493 +0xD9FB 0x64A5 +0xD9FC 0x64A9 +0xD9FD 0x6488 +0xD9FE 0x64BC +0xDAA1 0x64DA +0xDAA2 0x64D2 +0xDAA3 0x64C5 +0xDAA4 0x64C7 +0xDAA5 0x64BB +0xDAA6 0x64D8 +0xDAA7 0x64C2 +0xDAA8 0x64F1 +0xDAA9 0x64E7 +0xDAAA 0x8209 +0xDAAB 0x64E0 +0xDAAC 0x64E1 +0xDAAD 0x62AC +0xDAAE 0x64E3 +0xDAAF 0x64EF +0xDAB0 0x652C +0xDAB1 0x64F6 +0xDAB2 0x64F4 +0xDAB3 0x64F2 +0xDAB4 0x64FA +0xDAB5 0x6500 +0xDAB6 0x64FD +0xDAB7 0x6518 +0xDAB8 0x651C +0xDAB9 0x6505 +0xDABA 0x6524 +0xDABB 0x6523 +0xDABC 0x652B +0xDABD 0x6534 +0xDABE 0x6535 +0xDABF 0x6537 +0xDAC0 0x6536 +0xDAC1 0x6538 +0xDAC2 0x754B +0xDAC3 0x6548 +0xDAC4 0x6556 +0xDAC5 0x6555 +0xDAC6 0x654D +0xDAC7 0x6558 +0xDAC8 0x655E +0xDAC9 0x655D +0xDACA 0x6572 +0xDACB 0x6578 +0xDACC 0x6582 +0xDACD 0x6583 +0xDACE 0x8B8A +0xDACF 0x659B +0xDAD0 0x659F +0xDAD1 0x65AB +0xDAD2 0x65B7 +0xDAD3 0x65C3 +0xDAD4 0x65C6 +0xDAD5 0x65C1 +0xDAD6 0x65C4 +0xDAD7 0x65CC +0xDAD8 0x65D2 +0xDAD9 0x65DB +0xDADA 0x65D9 +0xDADB 0x65E0 +0xDADC 0x65E1 +0xDADD 0x65F1 +0xDADE 0x6772 +0xDADF 0x660A +0xDAE0 0x6603 +0xDAE1 0x65FB +0xDAE2 0x6773 +0xDAE3 0x6635 +0xDAE4 0x6636 +0xDAE5 0x6634 +0xDAE6 0x661C +0xDAE7 0x664F +0xDAE8 0x6644 +0xDAE9 0x6649 +0xDAEA 0x6641 +0xDAEB 0x665E +0xDAEC 0x665D +0xDAED 0x6664 +0xDAEE 0x6667 +0xDAEF 0x6668 +0xDAF0 0x665F +0xDAF1 0x6662 +0xDAF2 0x6670 +0xDAF3 0x6683 +0xDAF4 0x6688 +0xDAF5 0x668E +0xDAF6 0x6689 +0xDAF7 0x6684 +0xDAF8 0x6698 +0xDAF9 0x669D +0xDAFA 0x66C1 +0xDAFB 0x66B9 +0xDAFC 0x66C9 +0xDAFD 0x66BE +0xDAFE 0x66BC +0xDBA1 0x66C4 +0xDBA2 0x66B8 +0xDBA3 0x66D6 +0xDBA4 0x66DA +0xDBA5 0x66E0 +0xDBA6 0x663F +0xDBA7 0x66E6 +0xDBA8 0x66E9 +0xDBA9 0x66F0 +0xDBAA 0x66F5 +0xDBAB 0x66F7 +0xDBAC 0x670F +0xDBAD 0x6716 +0xDBAE 0x671E +0xDBAF 0x6726 +0xDBB0 0x6727 +0xDBB1 0x9738 +0xDBB2 0x672E +0xDBB3 0x673F +0xDBB4 0x6736 +0xDBB5 0x6741 +0xDBB6 0x6738 +0xDBB7 0x6737 +0xDBB8 0x6746 +0xDBB9 0x675E +0xDBBA 0x6760 +0xDBBB 0x6759 +0xDBBC 0x6763 +0xDBBD 0x6764 +0xDBBE 0x6789 +0xDBBF 0x6770 +0xDBC0 0x67A9 +0xDBC1 0x677C +0xDBC2 0x676A +0xDBC3 0x678C +0xDBC4 0x678B +0xDBC5 0x67A6 +0xDBC6 0x67A1 +0xDBC7 0x6785 +0xDBC8 0x67B7 +0xDBC9 0x67EF +0xDBCA 0x67B4 +0xDBCB 0x67EC +0xDBCC 0x67B3 +0xDBCD 0x67E9 +0xDBCE 0x67B8 +0xDBCF 0x67E4 +0xDBD0 0x67DE +0xDBD1 0x67DD +0xDBD2 0x67E2 +0xDBD3 0x67EE +0xDBD4 0x67B9 +0xDBD5 0x67CE +0xDBD6 0x67C6 +0xDBD7 0x67E7 +0xDBD8 0x6A9C +0xDBD9 0x681E +0xDBDA 0x6846 +0xDBDB 0x6829 +0xDBDC 0x6840 +0xDBDD 0x684D +0xDBDE 0x6832 +0xDBDF 0x684E +0xDBE0 0x68B3 +0xDBE1 0x682B +0xDBE2 0x6859 +0xDBE3 0x6863 +0xDBE4 0x6877 +0xDBE5 0x687F +0xDBE6 0x689F +0xDBE7 0x688F +0xDBE8 0x68AD +0xDBE9 0x6894 +0xDBEA 0x689D +0xDBEB 0x689B +0xDBEC 0x6883 +0xDBED 0x6AAE +0xDBEE 0x68B9 +0xDBEF 0x6874 +0xDBF0 0x68B5 +0xDBF1 0x68A0 +0xDBF2 0x68BA +0xDBF3 0x690F +0xDBF4 0x688D +0xDBF5 0x687E +0xDBF6 0x6901 +0xDBF7 0x68CA +0xDBF8 0x6908 +0xDBF9 0x68D8 +0xDBFA 0x6922 +0xDBFB 0x6926 +0xDBFC 0x68E1 +0xDBFD 0x690C +0xDBFE 0x68CD +0xDCA1 0x68D4 +0xDCA2 0x68E7 +0xDCA3 0x68D5 +0xDCA4 0x6936 +0xDCA5 0x6912 +0xDCA6 0x6904 +0xDCA7 0x68D7 +0xDCA8 0x68E3 +0xDCA9 0x6925 +0xDCAA 0x68F9 +0xDCAB 0x68E0 +0xDCAC 0x68EF +0xDCAD 0x6928 +0xDCAE 0x692A +0xDCAF 0x691A +0xDCB0 0x6923 +0xDCB1 0x6921 +0xDCB2 0x68C6 +0xDCB3 0x6979 +0xDCB4 0x6977 +0xDCB5 0x695C +0xDCB6 0x6978 +0xDCB7 0x696B +0xDCB8 0x6954 +0xDCB9 0x697E +0xDCBA 0x696E +0xDCBB 0x6939 +0xDCBC 0x6974 +0xDCBD 0x693D +0xDCBE 0x6959 +0xDCBF 0x6930 +0xDCC0 0x6961 +0xDCC1 0x695E +0xDCC2 0x695D +0xDCC3 0x6981 +0xDCC4 0x696A +0xDCC5 0x69B2 +0xDCC6 0x69AE +0xDCC7 0x69D0 +0xDCC8 0x69BF +0xDCC9 0x69C1 +0xDCCA 0x69D3 +0xDCCB 0x69BE +0xDCCC 0x69CE +0xDCCD 0x5BE8 +0xDCCE 0x69CA +0xDCCF 0x69DD +0xDCD0 0x69BB +0xDCD1 0x69C3 +0xDCD2 0x69A7 +0xDCD3 0x6A2E +0xDCD4 0x6991 +0xDCD5 0x69A0 +0xDCD6 0x699C +0xDCD7 0x6995 +0xDCD8 0x69B4 +0xDCD9 0x69DE +0xDCDA 0x69E8 +0xDCDB 0x6A02 +0xDCDC 0x6A1B +0xDCDD 0x69FF +0xDCDE 0x6B0A +0xDCDF 0x69F9 +0xDCE0 0x69F2 +0xDCE1 0x69E7 +0xDCE2 0x6A05 +0xDCE3 0x69B1 +0xDCE4 0x6A1E +0xDCE5 0x69ED +0xDCE6 0x6A14 +0xDCE7 0x69EB +0xDCE8 0x6A0A +0xDCE9 0x6A12 +0xDCEA 0x6AC1 +0xDCEB 0x6A23 +0xDCEC 0x6A13 +0xDCED 0x6A44 +0xDCEE 0x6A0C +0xDCEF 0x6A72 +0xDCF0 0x6A36 +0xDCF1 0x6A78 +0xDCF2 0x6A47 +0xDCF3 0x6A62 +0xDCF4 0x6A59 +0xDCF5 0x6A66 +0xDCF6 0x6A48 +0xDCF7 0x6A38 +0xDCF8 0x6A22 +0xDCF9 0x6A90 +0xDCFA 0x6A8D +0xDCFB 0x6AA0 +0xDCFC 0x6A84 +0xDCFD 0x6AA2 +0xDCFE 0x6AA3 +0xDDA1 0x6A97 +0xDDA2 0x8617 +0xDDA3 0x6ABB +0xDDA4 0x6AC3 +0xDDA5 0x6AC2 +0xDDA6 0x6AB8 +0xDDA7 0x6AB3 +0xDDA8 0x6AAC +0xDDA9 0x6ADE +0xDDAA 0x6AD1 +0xDDAB 0x6ADF +0xDDAC 0x6AAA +0xDDAD 0x6ADA +0xDDAE 0x6AEA +0xDDAF 0x6AFB +0xDDB0 0x6B05 +0xDDB1 0x8616 +0xDDB2 0x6AFA +0xDDB3 0x6B12 +0xDDB4 0x6B16 +0xDDB5 0x9B31 +0xDDB6 0x6B1F +0xDDB7 0x6B38 +0xDDB8 0x6B37 +0xDDB9 0x76DC +0xDDBA 0x6B39 +0xDDBB 0x98EE +0xDDBC 0x6B47 +0xDDBD 0x6B43 +0xDDBE 0x6B49 +0xDDBF 0x6B50 +0xDDC0 0x6B59 +0xDDC1 0x6B54 +0xDDC2 0x6B5B +0xDDC3 0x6B5F +0xDDC4 0x6B61 +0xDDC5 0x6B78 +0xDDC6 0x6B79 +0xDDC7 0x6B7F +0xDDC8 0x6B80 +0xDDC9 0x6B84 +0xDDCA 0x6B83 +0xDDCB 0x6B8D +0xDDCC 0x6B98 +0xDDCD 0x6B95 +0xDDCE 0x6B9E +0xDDCF 0x6BA4 +0xDDD0 0x6BAA +0xDDD1 0x6BAB +0xDDD2 0x6BAF +0xDDD3 0x6BB2 +0xDDD4 0x6BB1 +0xDDD5 0x6BB3 +0xDDD6 0x6BB7 +0xDDD7 0x6BBC +0xDDD8 0x6BC6 +0xDDD9 0x6BCB +0xDDDA 0x6BD3 +0xDDDB 0x6BDF +0xDDDC 0x6BEC +0xDDDD 0x6BEB +0xDDDE 0x6BF3 +0xDDDF 0x6BEF +0xDDE0 0x9EBE +0xDDE1 0x6C08 +0xDDE2 0x6C13 +0xDDE3 0x6C14 +0xDDE4 0x6C1B +0xDDE5 0x6C24 +0xDDE6 0x6C23 +0xDDE7 0x6C5E +0xDDE8 0x6C55 +0xDDE9 0x6C62 +0xDDEA 0x6C6A +0xDDEB 0x6C82 +0xDDEC 0x6C8D +0xDDED 0x6C9A +0xDDEE 0x6C81 +0xDDEF 0x6C9B +0xDDF0 0x6C7E +0xDDF1 0x6C68 +0xDDF2 0x6C73 +0xDDF3 0x6C92 +0xDDF4 0x6C90 +0xDDF5 0x6CC4 +0xDDF6 0x6CF1 +0xDDF7 0x6CD3 +0xDDF8 0x6CBD +0xDDF9 0x6CD7 +0xDDFA 0x6CC5 +0xDDFB 0x6CDD +0xDDFC 0x6CAE +0xDDFD 0x6CB1 +0xDDFE 0x6CBE +0xDEA1 0x6CBA +0xDEA2 0x6CDB +0xDEA3 0x6CEF +0xDEA4 0x6CD9 +0xDEA5 0x6CEA +0xDEA6 0x6D1F +0xDEA7 0x884D +0xDEA8 0x6D36 +0xDEA9 0x6D2B +0xDEAA 0x6D3D +0xDEAB 0x6D38 +0xDEAC 0x6D19 +0xDEAD 0x6D35 +0xDEAE 0x6D33 +0xDEAF 0x6D12 +0xDEB0 0x6D0C +0xDEB1 0x6D63 +0xDEB2 0x6D93 +0xDEB3 0x6D64 +0xDEB4 0x6D5A +0xDEB5 0x6D79 +0xDEB6 0x6D59 +0xDEB7 0x6D8E +0xDEB8 0x6D95 +0xDEB9 0x6FE4 +0xDEBA 0x6D85 +0xDEBB 0x6DF9 +0xDEBC 0x6E15 +0xDEBD 0x6E0A +0xDEBE 0x6DB5 +0xDEBF 0x6DC7 +0xDEC0 0x6DE6 +0xDEC1 0x6DB8 +0xDEC2 0x6DC6 +0xDEC3 0x6DEC +0xDEC4 0x6DDE +0xDEC5 0x6DCC +0xDEC6 0x6DE8 +0xDEC7 0x6DD2 +0xDEC8 0x6DC5 +0xDEC9 0x6DFA +0xDECA 0x6DD9 +0xDECB 0x6DE4 +0xDECC 0x6DD5 +0xDECD 0x6DEA +0xDECE 0x6DEE +0xDECF 0x6E2D +0xDED0 0x6E6E +0xDED1 0x6E2E +0xDED2 0x6E19 +0xDED3 0x6E72 +0xDED4 0x6E5F +0xDED5 0x6E3E +0xDED6 0x6E23 +0xDED7 0x6E6B +0xDED8 0x6E2B +0xDED9 0x6E76 +0xDEDA 0x6E4D +0xDEDB 0x6E1F +0xDEDC 0x6E43 +0xDEDD 0x6E3A +0xDEDE 0x6E4E +0xDEDF 0x6E24 +0xDEE0 0x6EFF +0xDEE1 0x6E1D +0xDEE2 0x6E38 +0xDEE3 0x6E82 +0xDEE4 0x6EAA +0xDEE5 0x6E98 +0xDEE6 0x6EC9 +0xDEE7 0x6EB7 +0xDEE8 0x6ED3 +0xDEE9 0x6EBD +0xDEEA 0x6EAF +0xDEEB 0x6EC4 +0xDEEC 0x6EB2 +0xDEED 0x6ED4 +0xDEEE 0x6ED5 +0xDEEF 0x6E8F +0xDEF0 0x6EA5 +0xDEF1 0x6EC2 +0xDEF2 0x6E9F +0xDEF3 0x6F41 +0xDEF4 0x6F11 +0xDEF5 0x704C +0xDEF6 0x6EEC +0xDEF7 0x6EF8 +0xDEF8 0x6EFE +0xDEF9 0x6F3F +0xDEFA 0x6EF2 +0xDEFB 0x6F31 +0xDEFC 0x6EEF +0xDEFD 0x6F32 +0xDEFE 0x6ECC +0xDFA1 0x6F3E +0xDFA2 0x6F13 +0xDFA3 0x6EF7 +0xDFA4 0x6F86 +0xDFA5 0x6F7A +0xDFA6 0x6F78 +0xDFA7 0x6F81 +0xDFA8 0x6F80 +0xDFA9 0x6F6F +0xDFAA 0x6F5B +0xDFAB 0x6FF3 +0xDFAC 0x6F6D +0xDFAD 0x6F82 +0xDFAE 0x6F7C +0xDFAF 0x6F58 +0xDFB0 0x6F8E +0xDFB1 0x6F91 +0xDFB2 0x6FC2 +0xDFB3 0x6F66 +0xDFB4 0x6FB3 +0xDFB5 0x6FA3 +0xDFB6 0x6FA1 +0xDFB7 0x6FA4 +0xDFB8 0x6FB9 +0xDFB9 0x6FC6 +0xDFBA 0x6FAA +0xDFBB 0x6FDF +0xDFBC 0x6FD5 +0xDFBD 0x6FEC +0xDFBE 0x6FD4 +0xDFBF 0x6FD8 +0xDFC0 0x6FF1 +0xDFC1 0x6FEE +0xDFC2 0x6FDB +0xDFC3 0x7009 +0xDFC4 0x700B +0xDFC5 0x6FFA +0xDFC6 0x7011 +0xDFC7 0x7001 +0xDFC8 0x700F +0xDFC9 0x6FFE +0xDFCA 0x701B +0xDFCB 0x701A +0xDFCC 0x6F74 +0xDFCD 0x701D +0xDFCE 0x7018 +0xDFCF 0x701F +0xDFD0 0x7030 +0xDFD1 0x703E +0xDFD2 0x7032 +0xDFD3 0x7051 +0xDFD4 0x7063 +0xDFD5 0x7099 +0xDFD6 0x7092 +0xDFD7 0x70AF +0xDFD8 0x70F1 +0xDFD9 0x70AC +0xDFDA 0x70B8 +0xDFDB 0x70B3 +0xDFDC 0x70AE +0xDFDD 0x70DF +0xDFDE 0x70CB +0xDFDF 0x70DD +0xDFE0 0x70D9 +0xDFE1 0x7109 +0xDFE2 0x70FD +0xDFE3 0x711C +0xDFE4 0x7119 +0xDFE5 0x7165 +0xDFE6 0x7155 +0xDFE7 0x7188 +0xDFE8 0x7166 +0xDFE9 0x7162 +0xDFEA 0x714C +0xDFEB 0x7156 +0xDFEC 0x716C +0xDFED 0x718F +0xDFEE 0x71FB +0xDFEF 0x7184 +0xDFF0 0x7195 +0xDFF1 0x71A8 +0xDFF2 0x71AC +0xDFF3 0x71D7 +0xDFF4 0x71B9 +0xDFF5 0x71BE +0xDFF6 0x71D2 +0xDFF7 0x71C9 +0xDFF8 0x71D4 +0xDFF9 0x71CE +0xDFFA 0x71E0 +0xDFFB 0x71EC +0xDFFC 0x71E7 +0xDFFD 0x71F5 +0xDFFE 0x71FC +0xE0A1 0x71F9 +0xE0A2 0x71FF +0xE0A3 0x720D +0xE0A4 0x7210 +0xE0A5 0x721B +0xE0A6 0x7228 +0xE0A7 0x722D +0xE0A8 0x722C +0xE0A9 0x7230 +0xE0AA 0x7232 +0xE0AB 0x723B +0xE0AC 0x723C +0xE0AD 0x723F +0xE0AE 0x7240 +0xE0AF 0x7246 +0xE0B0 0x724B +0xE0B1 0x7258 +0xE0B2 0x7274 +0xE0B3 0x727E +0xE0B4 0x7282 +0xE0B5 0x7281 +0xE0B6 0x7287 +0xE0B7 0x7292 +0xE0B8 0x7296 +0xE0B9 0x72A2 +0xE0BA 0x72A7 +0xE0BB 0x72B9 +0xE0BC 0x72B2 +0xE0BD 0x72C3 +0xE0BE 0x72C6 +0xE0BF 0x72C4 +0xE0C0 0x72CE +0xE0C1 0x72D2 +0xE0C2 0x72E2 +0xE0C3 0x72E0 +0xE0C4 0x72E1 +0xE0C5 0x72F9 +0xE0C6 0x72F7 +0xE0C7 0x500F +0xE0C8 0x7317 +0xE0C9 0x730A +0xE0CA 0x731C +0xE0CB 0x7316 +0xE0CC 0x731D +0xE0CD 0x7334 +0xE0CE 0x732F +0xE0CF 0x7329 +0xE0D0 0x7325 +0xE0D1 0x733E +0xE0D2 0x734E +0xE0D3 0x734F +0xE0D4 0x9ED8 +0xE0D5 0x7357 +0xE0D6 0x736A +0xE0D7 0x7368 +0xE0D8 0x7370 +0xE0D9 0x7378 +0xE0DA 0x7375 +0xE0DB 0x737B +0xE0DC 0x737A +0xE0DD 0x73C8 +0xE0DE 0x73B3 +0xE0DF 0x73CE +0xE0E0 0x73BB +0xE0E1 0x73C0 +0xE0E2 0x73E5 +0xE0E3 0x73EE +0xE0E4 0x73DE +0xE0E5 0x74A2 +0xE0E6 0x7405 +0xE0E7 0x746F +0xE0E8 0x7425 +0xE0E9 0x73F8 +0xE0EA 0x7432 +0xE0EB 0x743A +0xE0EC 0x7455 +0xE0ED 0x743F +0xE0EE 0x745F +0xE0EF 0x7459 +0xE0F0 0x7441 +0xE0F1 0x745C +0xE0F2 0x7469 +0xE0F3 0x7470 +0xE0F4 0x7463 +0xE0F5 0x746A +0xE0F6 0x7476 +0xE0F7 0x747E +0xE0F8 0x748B +0xE0F9 0x749E +0xE0FA 0x74A7 +0xE0FB 0x74CA +0xE0FC 0x74CF +0xE0FD 0x74D4 +0xE0FE 0x73F1 +0xE1A1 0x74E0 +0xE1A2 0x74E3 +0xE1A3 0x74E7 +0xE1A4 0x74E9 +0xE1A5 0x74EE +0xE1A6 0x74F2 +0xE1A7 0x74F0 +0xE1A8 0x74F1 +0xE1A9 0x74F8 +0xE1AA 0x74F7 +0xE1AB 0x7504 +0xE1AC 0x7503 +0xE1AD 0x7505 +0xE1AE 0x750C +0xE1AF 0x750E +0xE1B0 0x750D +0xE1B1 0x7515 +0xE1B2 0x7513 +0xE1B3 0x751E +0xE1B4 0x7526 +0xE1B5 0x752C +0xE1B6 0x753C +0xE1B7 0x7544 +0xE1B8 0x754D +0xE1B9 0x754A +0xE1BA 0x7549 +0xE1BB 0x755B +0xE1BC 0x7546 +0xE1BD 0x755A +0xE1BE 0x7569 +0xE1BF 0x7564 +0xE1C0 0x7567 +0xE1C1 0x756B +0xE1C2 0x756D +0xE1C3 0x7578 +0xE1C4 0x7576 +0xE1C5 0x7586 +0xE1C6 0x7587 +0xE1C7 0x7574 +0xE1C8 0x758A +0xE1C9 0x7589 +0xE1CA 0x7582 +0xE1CB 0x7594 +0xE1CC 0x759A +0xE1CD 0x759D +0xE1CE 0x75A5 +0xE1CF 0x75A3 +0xE1D0 0x75C2 +0xE1D1 0x75B3 +0xE1D2 0x75C3 +0xE1D3 0x75B5 +0xE1D4 0x75BD +0xE1D5 0x75B8 +0xE1D6 0x75BC +0xE1D7 0x75B1 +0xE1D8 0x75CD +0xE1D9 0x75CA +0xE1DA 0x75D2 +0xE1DB 0x75D9 +0xE1DC 0x75E3 +0xE1DD 0x75DE +0xE1DE 0x75FE +0xE1DF 0x75FF +0xE1E0 0x75FC +0xE1E1 0x7601 +0xE1E2 0x75F0 +0xE1E3 0x75FA +0xE1E4 0x75F2 +0xE1E5 0x75F3 +0xE1E6 0x760B +0xE1E7 0x760D +0xE1E8 0x7609 +0xE1E9 0x761F +0xE1EA 0x7627 +0xE1EB 0x7620 +0xE1EC 0x7621 +0xE1ED 0x7622 +0xE1EE 0x7624 +0xE1EF 0x7634 +0xE1F0 0x7630 +0xE1F1 0x763B +0xE1F2 0x7647 +0xE1F3 0x7648 +0xE1F4 0x7646 +0xE1F5 0x765C +0xE1F6 0x7658 +0xE1F7 0x7661 +0xE1F8 0x7662 +0xE1F9 0x7668 +0xE1FA 0x7669 +0xE1FB 0x766A +0xE1FC 0x7667 +0xE1FD 0x766C +0xE1FE 0x7670 +0xE2A1 0x7672 +0xE2A2 0x7676 +0xE2A3 0x7678 +0xE2A4 0x767C +0xE2A5 0x7680 +0xE2A6 0x7683 +0xE2A7 0x7688 +0xE2A8 0x768B +0xE2A9 0x768E +0xE2AA 0x7696 +0xE2AB 0x7693 +0xE2AC 0x7699 +0xE2AD 0x769A +0xE2AE 0x76B0 +0xE2AF 0x76B4 +0xE2B0 0x76B8 +0xE2B1 0x76B9 +0xE2B2 0x76BA +0xE2B3 0x76C2 +0xE2B4 0x76CD +0xE2B5 0x76D6 +0xE2B6 0x76D2 +0xE2B7 0x76DE +0xE2B8 0x76E1 +0xE2B9 0x76E5 +0xE2BA 0x76E7 +0xE2BB 0x76EA +0xE2BC 0x862F +0xE2BD 0x76FB +0xE2BE 0x7708 +0xE2BF 0x7707 +0xE2C0 0x7704 +0xE2C1 0x7729 +0xE2C2 0x7724 +0xE2C3 0x771E +0xE2C4 0x7725 +0xE2C5 0x7726 +0xE2C6 0x771B +0xE2C7 0x7737 +0xE2C8 0x7738 +0xE2C9 0x7747 +0xE2CA 0x775A +0xE2CB 0x7768 +0xE2CC 0x776B +0xE2CD 0x775B +0xE2CE 0x7765 +0xE2CF 0x777F +0xE2D0 0x777E +0xE2D1 0x7779 +0xE2D2 0x778E +0xE2D3 0x778B +0xE2D4 0x7791 +0xE2D5 0x77A0 +0xE2D6 0x779E +0xE2D7 0x77B0 +0xE2D8 0x77B6 +0xE2D9 0x77B9 +0xE2DA 0x77BF +0xE2DB 0x77BC +0xE2DC 0x77BD +0xE2DD 0x77BB +0xE2DE 0x77C7 +0xE2DF 0x77CD +0xE2E0 0x77D7 +0xE2E1 0x77DA +0xE2E2 0x77DC +0xE2E3 0x77E3 +0xE2E4 0x77EE +0xE2E5 0x77FC +0xE2E6 0x780C +0xE2E7 0x7812 +0xE2E8 0x7926 +0xE2E9 0x7820 +0xE2EA 0x792A +0xE2EB 0x7845 +0xE2EC 0x788E +0xE2ED 0x7874 +0xE2EE 0x7886 +0xE2EF 0x787C +0xE2F0 0x789A +0xE2F1 0x788C +0xE2F2 0x78A3 +0xE2F3 0x78B5 +0xE2F4 0x78AA +0xE2F5 0x78AF +0xE2F6 0x78D1 +0xE2F7 0x78C6 +0xE2F8 0x78CB +0xE2F9 0x78D4 +0xE2FA 0x78BE +0xE2FB 0x78BC +0xE2FC 0x78C5 +0xE2FD 0x78CA +0xE2FE 0x78EC +0xE3A1 0x78E7 +0xE3A2 0x78DA +0xE3A3 0x78FD +0xE3A4 0x78F4 +0xE3A5 0x7907 +0xE3A6 0x7912 +0xE3A7 0x7911 +0xE3A8 0x7919 +0xE3A9 0x792C +0xE3AA 0x792B +0xE3AB 0x7940 +0xE3AC 0x7960 +0xE3AD 0x7957 +0xE3AE 0x795F +0xE3AF 0x795A +0xE3B0 0x7955 +0xE3B1 0x7953 +0xE3B2 0x797A +0xE3B3 0x797F +0xE3B4 0x798A +0xE3B5 0x799D +0xE3B6 0x79A7 +0xE3B7 0x9F4B +0xE3B8 0x79AA +0xE3B9 0x79AE +0xE3BA 0x79B3 +0xE3BB 0x79B9 +0xE3BC 0x79BA +0xE3BD 0x79C9 +0xE3BE 0x79D5 +0xE3BF 0x79E7 +0xE3C0 0x79EC +0xE3C1 0x79E1 +0xE3C2 0x79E3 +0xE3C3 0x7A08 +0xE3C4 0x7A0D +0xE3C5 0x7A18 +0xE3C6 0x7A19 +0xE3C7 0x7A20 +0xE3C8 0x7A1F +0xE3C9 0x7980 +0xE3CA 0x7A31 +0xE3CB 0x7A3B +0xE3CC 0x7A3E +0xE3CD 0x7A37 +0xE3CE 0x7A43 +0xE3CF 0x7A57 +0xE3D0 0x7A49 +0xE3D1 0x7A61 +0xE3D2 0x7A62 +0xE3D3 0x7A69 +0xE3D4 0x9F9D +0xE3D5 0x7A70 +0xE3D6 0x7A79 +0xE3D7 0x7A7D +0xE3D8 0x7A88 +0xE3D9 0x7A97 +0xE3DA 0x7A95 +0xE3DB 0x7A98 +0xE3DC 0x7A96 +0xE3DD 0x7AA9 +0xE3DE 0x7AC8 +0xE3DF 0x7AB0 +0xE3E0 0x7AB6 +0xE3E1 0x7AC5 +0xE3E2 0x7AC4 +0xE3E3 0x7ABF +0xE3E4 0x9083 +0xE3E5 0x7AC7 +0xE3E6 0x7ACA +0xE3E7 0x7ACD +0xE3E8 0x7ACF +0xE3E9 0x7AD5 +0xE3EA 0x7AD3 +0xE3EB 0x7AD9 +0xE3EC 0x7ADA +0xE3ED 0x7ADD +0xE3EE 0x7AE1 +0xE3EF 0x7AE2 +0xE3F0 0x7AE6 +0xE3F1 0x7AED +0xE3F2 0x7AF0 +0xE3F3 0x7B02 +0xE3F4 0x7B0F +0xE3F5 0x7B0A +0xE3F6 0x7B06 +0xE3F7 0x7B33 +0xE3F8 0x7B18 +0xE3F9 0x7B19 +0xE3FA 0x7B1E +0xE3FB 0x7B35 +0xE3FC 0x7B28 +0xE3FD 0x7B36 +0xE3FE 0x7B50 +0xE4A1 0x7B7A +0xE4A2 0x7B04 +0xE4A3 0x7B4D +0xE4A4 0x7B0B +0xE4A5 0x7B4C +0xE4A6 0x7B45 +0xE4A7 0x7B75 +0xE4A8 0x7B65 +0xE4A9 0x7B74 +0xE4AA 0x7B67 +0xE4AB 0x7B70 +0xE4AC 0x7B71 +0xE4AD 0x7B6C +0xE4AE 0x7B6E +0xE4AF 0x7B9D +0xE4B0 0x7B98 +0xE4B1 0x7B9F +0xE4B2 0x7B8D +0xE4B3 0x7B9C +0xE4B4 0x7B9A +0xE4B5 0x7B8B +0xE4B6 0x7B92 +0xE4B7 0x7B8F +0xE4B8 0x7B5D +0xE4B9 0x7B99 +0xE4BA 0x7BCB +0xE4BB 0x7BC1 +0xE4BC 0x7BCC +0xE4BD 0x7BCF +0xE4BE 0x7BB4 +0xE4BF 0x7BC6 +0xE4C0 0x7BDD +0xE4C1 0x7BE9 +0xE4C2 0x7C11 +0xE4C3 0x7C14 +0xE4C4 0x7BE6 +0xE4C5 0x7BE5 +0xE4C6 0x7C60 +0xE4C7 0x7C00 +0xE4C8 0x7C07 +0xE4C9 0x7C13 +0xE4CA 0x7BF3 +0xE4CB 0x7BF7 +0xE4CC 0x7C17 +0xE4CD 0x7C0D +0xE4CE 0x7BF6 +0xE4CF 0x7C23 +0xE4D0 0x7C27 +0xE4D1 0x7C2A +0xE4D2 0x7C1F +0xE4D3 0x7C37 +0xE4D4 0x7C2B +0xE4D5 0x7C3D +0xE4D6 0x7C4C +0xE4D7 0x7C43 +0xE4D8 0x7C54 +0xE4D9 0x7C4F +0xE4DA 0x7C40 +0xE4DB 0x7C50 +0xE4DC 0x7C58 +0xE4DD 0x7C5F +0xE4DE 0x7C64 +0xE4DF 0x7C56 +0xE4E0 0x7C65 +0xE4E1 0x7C6C +0xE4E2 0x7C75 +0xE4E3 0x7C83 +0xE4E4 0x7C90 +0xE4E5 0x7CA4 +0xE4E6 0x7CAD +0xE4E7 0x7CA2 +0xE4E8 0x7CAB +0xE4E9 0x7CA1 +0xE4EA 0x7CA8 +0xE4EB 0x7CB3 +0xE4EC 0x7CB2 +0xE4ED 0x7CB1 +0xE4EE 0x7CAE +0xE4EF 0x7CB9 +0xE4F0 0x7CBD +0xE4F1 0x7CC0 +0xE4F2 0x7CC5 +0xE4F3 0x7CC2 +0xE4F4 0x7CD8 +0xE4F5 0x7CD2 +0xE4F6 0x7CDC +0xE4F7 0x7CE2 +0xE4F8 0x9B3B +0xE4F9 0x7CEF +0xE4FA 0x7CF2 +0xE4FB 0x7CF4 +0xE4FC 0x7CF6 +0xE4FD 0x7CFA +0xE4FE 0x7D06 +0xE5A1 0x7D02 +0xE5A2 0x7D1C +0xE5A3 0x7D15 +0xE5A4 0x7D0A +0xE5A5 0x7D45 +0xE5A6 0x7D4B +0xE5A7 0x7D2E +0xE5A8 0x7D32 +0xE5A9 0x7D3F +0xE5AA 0x7D35 +0xE5AB 0x7D46 +0xE5AC 0x7D73 +0xE5AD 0x7D56 +0xE5AE 0x7D4E +0xE5AF 0x7D72 +0xE5B0 0x7D68 +0xE5B1 0x7D6E +0xE5B2 0x7D4F +0xE5B3 0x7D63 +0xE5B4 0x7D93 +0xE5B5 0x7D89 +0xE5B6 0x7D5B +0xE5B7 0x7D8F +0xE5B8 0x7D7D +0xE5B9 0x7D9B +0xE5BA 0x7DBA +0xE5BB 0x7DAE +0xE5BC 0x7DA3 +0xE5BD 0x7DB5 +0xE5BE 0x7DC7 +0xE5BF 0x7DBD +0xE5C0 0x7DAB +0xE5C1 0x7E3D +0xE5C2 0x7DA2 +0xE5C3 0x7DAF +0xE5C4 0x7DDC +0xE5C5 0x7DB8 +0xE5C6 0x7D9F +0xE5C7 0x7DB0 +0xE5C8 0x7DD8 +0xE5C9 0x7DDD +0xE5CA 0x7DE4 +0xE5CB 0x7DDE +0xE5CC 0x7DFB +0xE5CD 0x7DF2 +0xE5CE 0x7DE1 +0xE5CF 0x7E05 +0xE5D0 0x7E0A +0xE5D1 0x7E23 +0xE5D2 0x7E21 +0xE5D3 0x7E12 +0xE5D4 0x7E31 +0xE5D5 0x7E1F +0xE5D6 0x7E09 +0xE5D7 0x7E0B +0xE5D8 0x7E22 +0xE5D9 0x7E46 +0xE5DA 0x7E66 +0xE5DB 0x7E3B +0xE5DC 0x7E35 +0xE5DD 0x7E39 +0xE5DE 0x7E43 +0xE5DF 0x7E37 +0xE5E0 0x7E32 +0xE5E1 0x7E3A +0xE5E2 0x7E67 +0xE5E3 0x7E5D +0xE5E4 0x7E56 +0xE5E5 0x7E5E +0xE5E6 0x7E59 +0xE5E7 0x7E5A +0xE5E8 0x7E79 +0xE5E9 0x7E6A +0xE5EA 0x7E69 +0xE5EB 0x7E7C +0xE5EC 0x7E7B +0xE5ED 0x7E83 +0xE5EE 0x7DD5 +0xE5EF 0x7E7D +0xE5F0 0x8FAE +0xE5F1 0x7E7F +0xE5F2 0x7E88 +0xE5F3 0x7E89 +0xE5F4 0x7E8C +0xE5F5 0x7E92 +0xE5F6 0x7E90 +0xE5F7 0x7E93 +0xE5F8 0x7E94 +0xE5F9 0x7E96 +0xE5FA 0x7E8E +0xE5FB 0x7E9B +0xE5FC 0x7E9C +0xE5FD 0x7F38 +0xE5FE 0x7F3A +0xE6A1 0x7F45 +0xE6A2 0x7F4C +0xE6A3 0x7F4D +0xE6A4 0x7F4E +0xE6A5 0x7F50 +0xE6A6 0x7F51 +0xE6A7 0x7F55 +0xE6A8 0x7F54 +0xE6A9 0x7F58 +0xE6AA 0x7F5F +0xE6AB 0x7F60 +0xE6AC 0x7F68 +0xE6AD 0x7F69 +0xE6AE 0x7F67 +0xE6AF 0x7F78 +0xE6B0 0x7F82 +0xE6B1 0x7F86 +0xE6B2 0x7F83 +0xE6B3 0x7F88 +0xE6B4 0x7F87 +0xE6B5 0x7F8C +0xE6B6 0x7F94 +0xE6B7 0x7F9E +0xE6B8 0x7F9D +0xE6B9 0x7F9A +0xE6BA 0x7FA3 +0xE6BB 0x7FAF +0xE6BC 0x7FB2 +0xE6BD 0x7FB9 +0xE6BE 0x7FAE +0xE6BF 0x7FB6 +0xE6C0 0x7FB8 +0xE6C1 0x8B71 +0xE6C2 0x7FC5 +0xE6C3 0x7FC6 +0xE6C4 0x7FCA +0xE6C5 0x7FD5 +0xE6C6 0x7FD4 +0xE6C7 0x7FE1 +0xE6C8 0x7FE6 +0xE6C9 0x7FE9 +0xE6CA 0x7FF3 +0xE6CB 0x7FF9 +0xE6CC 0x98DC +0xE6CD 0x8006 +0xE6CE 0x8004 +0xE6CF 0x800B +0xE6D0 0x8012 +0xE6D1 0x8018 +0xE6D2 0x8019 +0xE6D3 0x801C +0xE6D4 0x8021 +0xE6D5 0x8028 +0xE6D6 0x803F +0xE6D7 0x803B +0xE6D8 0x804A +0xE6D9 0x8046 +0xE6DA 0x8052 +0xE6DB 0x8058 +0xE6DC 0x805A +0xE6DD 0x805F +0xE6DE 0x8062 +0xE6DF 0x8068 +0xE6E0 0x8073 +0xE6E1 0x8072 +0xE6E2 0x8070 +0xE6E3 0x8076 +0xE6E4 0x8079 +0xE6E5 0x807D +0xE6E6 0x807F +0xE6E7 0x8084 +0xE6E8 0x8086 +0xE6E9 0x8085 +0xE6EA 0x809B +0xE6EB 0x8093 +0xE6EC 0x809A +0xE6ED 0x80AD +0xE6EE 0x5190 +0xE6EF 0x80AC +0xE6F0 0x80DB +0xE6F1 0x80E5 +0xE6F2 0x80D9 +0xE6F3 0x80DD +0xE6F4 0x80C4 +0xE6F5 0x80DA +0xE6F6 0x80D6 +0xE6F7 0x8109 +0xE6F8 0x80EF +0xE6F9 0x80F1 +0xE6FA 0x811B +0xE6FB 0x8129 +0xE6FC 0x8123 +0xE6FD 0x812F +0xE6FE 0x814B +0xE7A1 0x968B +0xE7A2 0x8146 +0xE7A3 0x813E +0xE7A4 0x8153 +0xE7A5 0x8151 +0xE7A6 0x80FC +0xE7A7 0x8171 +0xE7A8 0x816E +0xE7A9 0x8165 +0xE7AA 0x8166 +0xE7AB 0x8174 +0xE7AC 0x8183 +0xE7AD 0x8188 +0xE7AE 0x818A +0xE7AF 0x8180 +0xE7B0 0x8182 +0xE7B1 0x81A0 +0xE7B2 0x8195 +0xE7B3 0x81A4 +0xE7B4 0x81A3 +0xE7B5 0x815F +0xE7B6 0x8193 +0xE7B7 0x81A9 +0xE7B8 0x81B0 +0xE7B9 0x81B5 +0xE7BA 0x81BE +0xE7BB 0x81B8 +0xE7BC 0x81BD +0xE7BD 0x81C0 +0xE7BE 0x81C2 +0xE7BF 0x81BA +0xE7C0 0x81C9 +0xE7C1 0x81CD +0xE7C2 0x81D1 +0xE7C3 0x81D9 +0xE7C4 0x81D8 +0xE7C5 0x81C8 +0xE7C6 0x81DA +0xE7C7 0x81DF +0xE7C8 0x81E0 +0xE7C9 0x81E7 +0xE7CA 0x81FA +0xE7CB 0x81FB +0xE7CC 0x81FE +0xE7CD 0x8201 +0xE7CE 0x8202 +0xE7CF 0x8205 +0xE7D0 0x8207 +0xE7D1 0x820A +0xE7D2 0x820D +0xE7D3 0x8210 +0xE7D4 0x8216 +0xE7D5 0x8229 +0xE7D6 0x822B +0xE7D7 0x8238 +0xE7D8 0x8233 +0xE7D9 0x8240 +0xE7DA 0x8259 +0xE7DB 0x8258 +0xE7DC 0x825D +0xE7DD 0x825A +0xE7DE 0x825F +0xE7DF 0x8264 +0xE7E0 0x8262 +0xE7E1 0x8268 +0xE7E2 0x826A +0xE7E3 0x826B +0xE7E4 0x822E +0xE7E5 0x8271 +0xE7E6 0x8277 +0xE7E7 0x8278 +0xE7E8 0x827E +0xE7E9 0x828D +0xE7EA 0x8292 +0xE7EB 0x82AB +0xE7EC 0x829F +0xE7ED 0x82BB +0xE7EE 0x82AC +0xE7EF 0x82E1 +0xE7F0 0x82E3 +0xE7F1 0x82DF +0xE7F2 0x82D2 +0xE7F3 0x82F4 +0xE7F4 0x82F3 +0xE7F5 0x82FA +0xE7F6 0x8393 +0xE7F7 0x8303 +0xE7F8 0x82FB +0xE7F9 0x82F9 +0xE7FA 0x82DE +0xE7FB 0x8306 +0xE7FC 0x82DC +0xE7FD 0x8309 +0xE7FE 0x82D9 +0xE8A1 0x8335 +0xE8A2 0x8334 +0xE8A3 0x8316 +0xE8A4 0x8332 +0xE8A5 0x8331 +0xE8A6 0x8340 +0xE8A7 0x8339 +0xE8A8 0x8350 +0xE8A9 0x8345 +0xE8AA 0x832F +0xE8AB 0x832B +0xE8AC 0x8317 +0xE8AD 0x8318 +0xE8AE 0x8385 +0xE8AF 0x839A +0xE8B0 0x83AA +0xE8B1 0x839F +0xE8B2 0x83A2 +0xE8B3 0x8396 +0xE8B4 0x8323 +0xE8B5 0x838E +0xE8B6 0x8387 +0xE8B7 0x838A +0xE8B8 0x837C +0xE8B9 0x83B5 +0xE8BA 0x8373 +0xE8BB 0x8375 +0xE8BC 0x83A0 +0xE8BD 0x8389 +0xE8BE 0x83A8 +0xE8BF 0x83F4 +0xE8C0 0x8413 +0xE8C1 0x83EB +0xE8C2 0x83CE +0xE8C3 0x83FD +0xE8C4 0x8403 +0xE8C5 0x83D8 +0xE8C6 0x840B +0xE8C7 0x83C1 +0xE8C8 0x83F7 +0xE8C9 0x8407 +0xE8CA 0x83E0 +0xE8CB 0x83F2 +0xE8CC 0x840D +0xE8CD 0x8422 +0xE8CE 0x8420 +0xE8CF 0x83BD +0xE8D0 0x8438 +0xE8D1 0x8506 +0xE8D2 0x83FB +0xE8D3 0x846D +0xE8D4 0x842A +0xE8D5 0x843C +0xE8D6 0x855A +0xE8D7 0x8484 +0xE8D8 0x8477 +0xE8D9 0x846B +0xE8DA 0x84AD +0xE8DB 0x846E +0xE8DC 0x8482 +0xE8DD 0x8469 +0xE8DE 0x8446 +0xE8DF 0x842C +0xE8E0 0x846F +0xE8E1 0x8479 +0xE8E2 0x8435 +0xE8E3 0x84CA +0xE8E4 0x8462 +0xE8E5 0x84B9 +0xE8E6 0x84BF +0xE8E7 0x849F +0xE8E8 0x84D9 +0xE8E9 0x84CD +0xE8EA 0x84BB +0xE8EB 0x84DA +0xE8EC 0x84D0 +0xE8ED 0x84C1 +0xE8EE 0x84C6 +0xE8EF 0x84D6 +0xE8F0 0x84A1 +0xE8F1 0x8521 +0xE8F2 0x84FF +0xE8F3 0x84F4 +0xE8F4 0x8517 +0xE8F5 0x8518 +0xE8F6 0x852C +0xE8F7 0x851F +0xE8F8 0x8515 +0xE8F9 0x8514 +0xE8FA 0x84FC +0xE8FB 0x8540 +0xE8FC 0x8563 +0xE8FD 0x8558 +0xE8FE 0x8548 +0xE9A1 0x8541 +0xE9A2 0x8602 +0xE9A3 0x854B +0xE9A4 0x8555 +0xE9A5 0x8580 +0xE9A6 0x85A4 +0xE9A7 0x8588 +0xE9A8 0x8591 +0xE9A9 0x858A +0xE9AA 0x85A8 +0xE9AB 0x856D +0xE9AC 0x8594 +0xE9AD 0x859B +0xE9AE 0x85EA +0xE9AF 0x8587 +0xE9B0 0x859C +0xE9B1 0x8577 +0xE9B2 0x857E +0xE9B3 0x8590 +0xE9B4 0x85C9 +0xE9B5 0x85BA +0xE9B6 0x85CF +0xE9B7 0x85B9 +0xE9B8 0x85D0 +0xE9B9 0x85D5 +0xE9BA 0x85DD +0xE9BB 0x85E5 +0xE9BC 0x85DC +0xE9BD 0x85F9 +0xE9BE 0x860A +0xE9BF 0x8613 +0xE9C0 0x860B +0xE9C1 0x85FE +0xE9C2 0x85FA +0xE9C3 0x8606 +0xE9C4 0x8622 +0xE9C5 0x861A +0xE9C6 0x8630 +0xE9C7 0x863F +0xE9C8 0x864D +0xE9C9 0x4E55 +0xE9CA 0x8654 +0xE9CB 0x865F +0xE9CC 0x8667 +0xE9CD 0x8671 +0xE9CE 0x8693 +0xE9CF 0x86A3 +0xE9D0 0x86A9 +0xE9D1 0x86AA +0xE9D2 0x868B +0xE9D3 0x868C +0xE9D4 0x86B6 +0xE9D5 0x86AF +0xE9D6 0x86C4 +0xE9D7 0x86C6 +0xE9D8 0x86B0 +0xE9D9 0x86C9 +0xE9DA 0x8823 +0xE9DB 0x86AB +0xE9DC 0x86D4 +0xE9DD 0x86DE +0xE9DE 0x86E9 +0xE9DF 0x86EC +0xE9E0 0x86DF +0xE9E1 0x86DB +0xE9E2 0x86EF +0xE9E3 0x8712 +0xE9E4 0x8706 +0xE9E5 0x8708 +0xE9E6 0x8700 +0xE9E7 0x8703 +0xE9E8 0x86FB +0xE9E9 0x8711 +0xE9EA 0x8709 +0xE9EB 0x870D +0xE9EC 0x86F9 +0xE9ED 0x870A +0xE9EE 0x8734 +0xE9EF 0x873F +0xE9F0 0x8737 +0xE9F1 0x873B +0xE9F2 0x8725 +0xE9F3 0x8729 +0xE9F4 0x871A +0xE9F5 0x8760 +0xE9F6 0x875F +0xE9F7 0x8778 +0xE9F8 0x874C +0xE9F9 0x874E +0xE9FA 0x8774 +0xE9FB 0x8757 +0xE9FC 0x8768 +0xE9FD 0x876E +0xE9FE 0x8759 +0xEAA1 0x8753 +0xEAA2 0x8763 +0xEAA3 0x876A +0xEAA4 0x8805 +0xEAA5 0x87A2 +0xEAA6 0x879F +0xEAA7 0x8782 +0xEAA8 0x87AF +0xEAA9 0x87CB +0xEAAA 0x87BD +0xEAAB 0x87C0 +0xEAAC 0x87D0 +0xEAAD 0x96D6 +0xEAAE 0x87AB +0xEAAF 0x87C4 +0xEAB0 0x87B3 +0xEAB1 0x87C7 +0xEAB2 0x87C6 +0xEAB3 0x87BB +0xEAB4 0x87EF +0xEAB5 0x87F2 +0xEAB6 0x87E0 +0xEAB7 0x880F +0xEAB8 0x880D +0xEAB9 0x87FE +0xEABA 0x87F6 +0xEABB 0x87F7 +0xEABC 0x880E +0xEABD 0x87D2 +0xEABE 0x8811 +0xEABF 0x8816 +0xEAC0 0x8815 +0xEAC1 0x8822 +0xEAC2 0x8821 +0xEAC3 0x8831 +0xEAC4 0x8836 +0xEAC5 0x8839 +0xEAC6 0x8827 +0xEAC7 0x883B +0xEAC8 0x8844 +0xEAC9 0x8842 +0xEACA 0x8852 +0xEACB 0x8859 +0xEACC 0x885E +0xEACD 0x8862 +0xEACE 0x886B +0xEACF 0x8881 +0xEAD0 0x887E +0xEAD1 0x889E +0xEAD2 0x8875 +0xEAD3 0x887D +0xEAD4 0x88B5 +0xEAD5 0x8872 +0xEAD6 0x8882 +0xEAD7 0x8897 +0xEAD8 0x8892 +0xEAD9 0x88AE +0xEADA 0x8899 +0xEADB 0x88A2 +0xEADC 0x888D +0xEADD 0x88A4 +0xEADE 0x88B0 +0xEADF 0x88BF +0xEAE0 0x88B1 +0xEAE1 0x88C3 +0xEAE2 0x88C4 +0xEAE3 0x88D4 +0xEAE4 0x88D8 +0xEAE5 0x88D9 +0xEAE6 0x88DD +0xEAE7 0x88F9 +0xEAE8 0x8902 +0xEAE9 0x88FC +0xEAEA 0x88F4 +0xEAEB 0x88E8 +0xEAEC 0x88F2 +0xEAED 0x8904 +0xEAEE 0x890C +0xEAEF 0x890A +0xEAF0 0x8913 +0xEAF1 0x8943 +0xEAF2 0x891E +0xEAF3 0x8925 +0xEAF4 0x892A +0xEAF5 0x892B +0xEAF6 0x8941 +0xEAF7 0x8944 +0xEAF8 0x893B +0xEAF9 0x8936 +0xEAFA 0x8938 +0xEAFB 0x894C +0xEAFC 0x891D +0xEAFD 0x8960 +0xEAFE 0x895E +0xEBA1 0x8966 +0xEBA2 0x8964 +0xEBA3 0x896D +0xEBA4 0x896A +0xEBA5 0x896F +0xEBA6 0x8974 +0xEBA7 0x8977 +0xEBA8 0x897E +0xEBA9 0x8983 +0xEBAA 0x8988 +0xEBAB 0x898A +0xEBAC 0x8993 +0xEBAD 0x8998 +0xEBAE 0x89A1 +0xEBAF 0x89A9 +0xEBB0 0x89A6 +0xEBB1 0x89AC +0xEBB2 0x89AF +0xEBB3 0x89B2 +0xEBB4 0x89BA +0xEBB5 0x89BD +0xEBB6 0x89BF +0xEBB7 0x89C0 +0xEBB8 0x89DA +0xEBB9 0x89DC +0xEBBA 0x89DD +0xEBBB 0x89E7 +0xEBBC 0x89F4 +0xEBBD 0x89F8 +0xEBBE 0x8A03 +0xEBBF 0x8A16 +0xEBC0 0x8A10 +0xEBC1 0x8A0C +0xEBC2 0x8A1B +0xEBC3 0x8A1D +0xEBC4 0x8A25 +0xEBC5 0x8A36 +0xEBC6 0x8A41 +0xEBC7 0x8A5B +0xEBC8 0x8A52 +0xEBC9 0x8A46 +0xEBCA 0x8A48 +0xEBCB 0x8A7C +0xEBCC 0x8A6D +0xEBCD 0x8A6C +0xEBCE 0x8A62 +0xEBCF 0x8A85 +0xEBD0 0x8A82 +0xEBD1 0x8A84 +0xEBD2 0x8AA8 +0xEBD3 0x8AA1 +0xEBD4 0x8A91 +0xEBD5 0x8AA5 +0xEBD6 0x8AA6 +0xEBD7 0x8A9A +0xEBD8 0x8AA3 +0xEBD9 0x8AC4 +0xEBDA 0x8ACD +0xEBDB 0x8AC2 +0xEBDC 0x8ADA +0xEBDD 0x8AEB +0xEBDE 0x8AF3 +0xEBDF 0x8AE7 +0xEBE0 0x8AE4 +0xEBE1 0x8AF1 +0xEBE2 0x8B14 +0xEBE3 0x8AE0 +0xEBE4 0x8AE2 +0xEBE5 0x8AF7 +0xEBE6 0x8ADE +0xEBE7 0x8ADB +0xEBE8 0x8B0C +0xEBE9 0x8B07 +0xEBEA 0x8B1A +0xEBEB 0x8AE1 +0xEBEC 0x8B16 +0xEBED 0x8B10 +0xEBEE 0x8B17 +0xEBEF 0x8B20 +0xEBF0 0x8B33 +0xEBF1 0x97AB +0xEBF2 0x8B26 +0xEBF3 0x8B2B +0xEBF4 0x8B3E +0xEBF5 0x8B28 +0xEBF6 0x8B41 +0xEBF7 0x8B4C +0xEBF8 0x8B4F +0xEBF9 0x8B4E +0xEBFA 0x8B49 +0xEBFB 0x8B56 +0xEBFC 0x8B5B +0xEBFD 0x8B5A +0xEBFE 0x8B6B +0xECA1 0x8B5F +0xECA2 0x8B6C +0xECA3 0x8B6F +0xECA4 0x8B74 +0xECA5 0x8B7D +0xECA6 0x8B80 +0xECA7 0x8B8C +0xECA8 0x8B8E +0xECA9 0x8B92 +0xECAA 0x8B93 +0xECAB 0x8B96 +0xECAC 0x8B99 +0xECAD 0x8B9A +0xECAE 0x8C3A +0xECAF 0x8C41 +0xECB0 0x8C3F +0xECB1 0x8C48 +0xECB2 0x8C4C +0xECB3 0x8C4E +0xECB4 0x8C50 +0xECB5 0x8C55 +0xECB6 0x8C62 +0xECB7 0x8C6C +0xECB8 0x8C78 +0xECB9 0x8C7A +0xECBA 0x8C82 +0xECBB 0x8C89 +0xECBC 0x8C85 +0xECBD 0x8C8A +0xECBE 0x8C8D +0xECBF 0x8C8E +0xECC0 0x8C94 +0xECC1 0x8C7C +0xECC2 0x8C98 +0xECC3 0x621D +0xECC4 0x8CAD +0xECC5 0x8CAA +0xECC6 0x8CBD +0xECC7 0x8CB2 +0xECC8 0x8CB3 +0xECC9 0x8CAE +0xECCA 0x8CB6 +0xECCB 0x8CC8 +0xECCC 0x8CC1 +0xECCD 0x8CE4 +0xECCE 0x8CE3 +0xECCF 0x8CDA +0xECD0 0x8CFD +0xECD1 0x8CFA +0xECD2 0x8CFB +0xECD3 0x8D04 +0xECD4 0x8D05 +0xECD5 0x8D0A +0xECD6 0x8D07 +0xECD7 0x8D0F +0xECD8 0x8D0D +0xECD9 0x8D10 +0xECDA 0x9F4E +0xECDB 0x8D13 +0xECDC 0x8CCD +0xECDD 0x8D14 +0xECDE 0x8D16 +0xECDF 0x8D67 +0xECE0 0x8D6D +0xECE1 0x8D71 +0xECE2 0x8D73 +0xECE3 0x8D81 +0xECE4 0x8D99 +0xECE5 0x8DC2 +0xECE6 0x8DBE +0xECE7 0x8DBA +0xECE8 0x8DCF +0xECE9 0x8DDA +0xECEA 0x8DD6 +0xECEB 0x8DCC +0xECEC 0x8DDB +0xECED 0x8DCB +0xECEE 0x8DEA +0xECEF 0x8DEB +0xECF0 0x8DDF +0xECF1 0x8DE3 +0xECF2 0x8DFC +0xECF3 0x8E08 +0xECF4 0x8E09 +0xECF5 0x8DFF +0xECF6 0x8E1D +0xECF7 0x8E1E +0xECF8 0x8E10 +0xECF9 0x8E1F +0xECFA 0x8E42 +0xECFB 0x8E35 +0xECFC 0x8E30 +0xECFD 0x8E34 +0xECFE 0x8E4A +0xEDA1 0x8E47 +0xEDA2 0x8E49 +0xEDA3 0x8E4C +0xEDA4 0x8E50 +0xEDA5 0x8E48 +0xEDA6 0x8E59 +0xEDA7 0x8E64 +0xEDA8 0x8E60 +0xEDA9 0x8E2A +0xEDAA 0x8E63 +0xEDAB 0x8E55 +0xEDAC 0x8E76 +0xEDAD 0x8E72 +0xEDAE 0x8E7C +0xEDAF 0x8E81 +0xEDB0 0x8E87 +0xEDB1 0x8E85 +0xEDB2 0x8E84 +0xEDB3 0x8E8B +0xEDB4 0x8E8A +0xEDB5 0x8E93 +0xEDB6 0x8E91 +0xEDB7 0x8E94 +0xEDB8 0x8E99 +0xEDB9 0x8EAA +0xEDBA 0x8EA1 +0xEDBB 0x8EAC +0xEDBC 0x8EB0 +0xEDBD 0x8EC6 +0xEDBE 0x8EB1 +0xEDBF 0x8EBE +0xEDC0 0x8EC5 +0xEDC1 0x8EC8 +0xEDC2 0x8ECB +0xEDC3 0x8EDB +0xEDC4 0x8EE3 +0xEDC5 0x8EFC +0xEDC6 0x8EFB +0xEDC7 0x8EEB +0xEDC8 0x8EFE +0xEDC9 0x8F0A +0xEDCA 0x8F05 +0xEDCB 0x8F15 +0xEDCC 0x8F12 +0xEDCD 0x8F19 +0xEDCE 0x8F13 +0xEDCF 0x8F1C +0xEDD0 0x8F1F +0xEDD1 0x8F1B +0xEDD2 0x8F0C +0xEDD3 0x8F26 +0xEDD4 0x8F33 +0xEDD5 0x8F3B +0xEDD6 0x8F39 +0xEDD7 0x8F45 +0xEDD8 0x8F42 +0xEDD9 0x8F3E +0xEDDA 0x8F4C +0xEDDB 0x8F49 +0xEDDC 0x8F46 +0xEDDD 0x8F4E +0xEDDE 0x8F57 +0xEDDF 0x8F5C +0xEDE0 0x8F62 +0xEDE1 0x8F63 +0xEDE2 0x8F64 +0xEDE3 0x8F9C +0xEDE4 0x8F9F +0xEDE5 0x8FA3 +0xEDE6 0x8FAD +0xEDE7 0x8FAF +0xEDE8 0x8FB7 +0xEDE9 0x8FDA +0xEDEA 0x8FE5 +0xEDEB 0x8FE2 +0xEDEC 0x8FEA +0xEDED 0x8FEF +0xEDEE 0x9087 +0xEDEF 0x8FF4 +0xEDF0 0x9005 +0xEDF1 0x8FF9 +0xEDF2 0x8FFA +0xEDF3 0x9011 +0xEDF4 0x9015 +0xEDF5 0x9021 +0xEDF6 0x900D +0xEDF7 0x901E +0xEDF8 0x9016 +0xEDF9 0x900B +0xEDFA 0x9027 +0xEDFB 0x9036 +0xEDFC 0x9035 +0xEDFD 0x9039 +0xEDFE 0x8FF8 +0xEEA1 0x904F +0xEEA2 0x9050 +0xEEA3 0x9051 +0xEEA4 0x9052 +0xEEA5 0x900E +0xEEA6 0x9049 +0xEEA7 0x903E +0xEEA8 0x9056 +0xEEA9 0x9058 +0xEEAA 0x905E +0xEEAB 0x9068 +0xEEAC 0x906F +0xEEAD 0x9076 +0xEEAE 0x96A8 +0xEEAF 0x9072 +0xEEB0 0x9082 +0xEEB1 0x907D +0xEEB2 0x9081 +0xEEB3 0x9080 +0xEEB4 0x908A +0xEEB5 0x9089 +0xEEB6 0x908F +0xEEB7 0x90A8 +0xEEB8 0x90AF +0xEEB9 0x90B1 +0xEEBA 0x90B5 +0xEEBB 0x90E2 +0xEEBC 0x90E4 +0xEEBD 0x6248 +0xEEBE 0x90DB +0xEEBF 0x9102 +0xEEC0 0x9112 +0xEEC1 0x9119 +0xEEC2 0x9132 +0xEEC3 0x9130 +0xEEC4 0x914A +0xEEC5 0x9156 +0xEEC6 0x9158 +0xEEC7 0x9163 +0xEEC8 0x9165 +0xEEC9 0x9169 +0xEECA 0x9173 +0xEECB 0x9172 +0xEECC 0x918B +0xEECD 0x9189 +0xEECE 0x9182 +0xEECF 0x91A2 +0xEED0 0x91AB +0xEED1 0x91AF +0xEED2 0x91AA +0xEED3 0x91B5 +0xEED4 0x91B4 +0xEED5 0x91BA +0xEED6 0x91C0 +0xEED7 0x91C1 +0xEED8 0x91C9 +0xEED9 0x91CB +0xEEDA 0x91D0 +0xEEDB 0x91D6 +0xEEDC 0x91DF +0xEEDD 0x91E1 +0xEEDE 0x91DB +0xEEDF 0x91FC +0xEEE0 0x91F5 +0xEEE1 0x91F6 +0xEEE2 0x921E +0xEEE3 0x91FF +0xEEE4 0x9214 +0xEEE5 0x922C +0xEEE6 0x9215 +0xEEE7 0x9211 +0xEEE8 0x925E +0xEEE9 0x9257 +0xEEEA 0x9245 +0xEEEB 0x9249 +0xEEEC 0x9264 +0xEEED 0x9248 +0xEEEE 0x9295 +0xEEEF 0x923F +0xEEF0 0x924B +0xEEF1 0x9250 +0xEEF2 0x929C +0xEEF3 0x9296 +0xEEF4 0x9293 +0xEEF5 0x929B +0xEEF6 0x925A +0xEEF7 0x92CF +0xEEF8 0x92B9 +0xEEF9 0x92B7 +0xEEFA 0x92E9 +0xEEFB 0x930F +0xEEFC 0x92FA +0xEEFD 0x9344 +0xEEFE 0x932E +0xEFA1 0x9319 +0xEFA2 0x9322 +0xEFA3 0x931A +0xEFA4 0x9323 +0xEFA5 0x933A +0xEFA6 0x9335 +0xEFA7 0x933B +0xEFA8 0x935C +0xEFA9 0x9360 +0xEFAA 0x937C +0xEFAB 0x936E +0xEFAC 0x9356 +0xEFAD 0x93B0 +0xEFAE 0x93AC +0xEFAF 0x93AD +0xEFB0 0x9394 +0xEFB1 0x93B9 +0xEFB2 0x93D6 +0xEFB3 0x93D7 +0xEFB4 0x93E8 +0xEFB5 0x93E5 +0xEFB6 0x93D8 +0xEFB7 0x93C3 +0xEFB8 0x93DD +0xEFB9 0x93D0 +0xEFBA 0x93C8 +0xEFBB 0x93E4 +0xEFBC 0x941A +0xEFBD 0x9414 +0xEFBE 0x9413 +0xEFBF 0x9403 +0xEFC0 0x9407 +0xEFC1 0x9410 +0xEFC2 0x9436 +0xEFC3 0x942B +0xEFC4 0x9435 +0xEFC5 0x9421 +0xEFC6 0x943A +0xEFC7 0x9441 +0xEFC8 0x9452 +0xEFC9 0x9444 +0xEFCA 0x945B +0xEFCB 0x9460 +0xEFCC 0x9462 +0xEFCD 0x945E +0xEFCE 0x946A +0xEFCF 0x9229 +0xEFD0 0x9470 +0xEFD1 0x9475 +0xEFD2 0x9477 +0xEFD3 0x947D +0xEFD4 0x945A +0xEFD5 0x947C +0xEFD6 0x947E +0xEFD7 0x9481 +0xEFD8 0x947F +0xEFD9 0x9582 +0xEFDA 0x9587 +0xEFDB 0x958A +0xEFDC 0x9594 +0xEFDD 0x9596 +0xEFDE 0x9598 +0xEFDF 0x9599 +0xEFE0 0x95A0 +0xEFE1 0x95A8 +0xEFE2 0x95A7 +0xEFE3 0x95AD +0xEFE4 0x95BC +0xEFE5 0x95BB +0xEFE6 0x95B9 +0xEFE7 0x95BE +0xEFE8 0x95CA +0xEFE9 0x6FF6 +0xEFEA 0x95C3 +0xEFEB 0x95CD +0xEFEC 0x95CC +0xEFED 0x95D5 +0xEFEE 0x95D4 +0xEFEF 0x95D6 +0xEFF0 0x95DC +0xEFF1 0x95E1 +0xEFF2 0x95E5 +0xEFF3 0x95E2 +0xEFF4 0x9621 +0xEFF5 0x9628 +0xEFF6 0x962E +0xEFF7 0x962F +0xEFF8 0x9642 +0xEFF9 0x964C +0xEFFA 0x964F +0xEFFB 0x964B +0xEFFC 0x9677 +0xEFFD 0x965C +0xEFFE 0x965E +0xF0A1 0x965D +0xF0A2 0x965F +0xF0A3 0x9666 +0xF0A4 0x9672 +0xF0A5 0x966C +0xF0A6 0x968D +0xF0A7 0x9698 +0xF0A8 0x9695 +0xF0A9 0x9697 +0xF0AA 0x96AA +0xF0AB 0x96A7 +0xF0AC 0x96B1 +0xF0AD 0x96B2 +0xF0AE 0x96B0 +0xF0AF 0x96B4 +0xF0B0 0x96B6 +0xF0B1 0x96B8 +0xF0B2 0x96B9 +0xF0B3 0x96CE +0xF0B4 0x96CB +0xF0B5 0x96C9 +0xF0B6 0x96CD +0xF0B7 0x894D +0xF0B8 0x96DC +0xF0B9 0x970D +0xF0BA 0x96D5 +0xF0BB 0x96F9 +0xF0BC 0x9704 +0xF0BD 0x9706 +0xF0BE 0x9708 +0xF0BF 0x9713 +0xF0C0 0x970E +0xF0C1 0x9711 +0xF0C2 0x970F +0xF0C3 0x9716 +0xF0C4 0x9719 +0xF0C5 0x9724 +0xF0C6 0x972A +0xF0C7 0x9730 +0xF0C8 0x9739 +0xF0C9 0x973D +0xF0CA 0x973E +0xF0CB 0x9744 +0xF0CC 0x9746 +0xF0CD 0x9748 +0xF0CE 0x9742 +0xF0CF 0x9749 +0xF0D0 0x975C +0xF0D1 0x9760 +0xF0D2 0x9764 +0xF0D3 0x9766 +0xF0D4 0x9768 +0xF0D5 0x52D2 +0xF0D6 0x976B +0xF0D7 0x9771 +0xF0D8 0x9779 +0xF0D9 0x9785 +0xF0DA 0x977C +0xF0DB 0x9781 +0xF0DC 0x977A +0xF0DD 0x9786 +0xF0DE 0x978B +0xF0DF 0x978F +0xF0E0 0x9790 +0xF0E1 0x979C +0xF0E2 0x97A8 +0xF0E3 0x97A6 +0xF0E4 0x97A3 +0xF0E5 0x97B3 +0xF0E6 0x97B4 +0xF0E7 0x97C3 +0xF0E8 0x97C6 +0xF0E9 0x97C8 +0xF0EA 0x97CB +0xF0EB 0x97DC +0xF0EC 0x97ED +0xF0ED 0x9F4F +0xF0EE 0x97F2 +0xF0EF 0x7ADF +0xF0F0 0x97F6 +0xF0F1 0x97F5 +0xF0F2 0x980F +0xF0F3 0x980C +0xF0F4 0x9838 +0xF0F5 0x9824 +0xF0F6 0x9821 +0xF0F7 0x9837 +0xF0F8 0x983D +0xF0F9 0x9846 +0xF0FA 0x984F +0xF0FB 0x984B +0xF0FC 0x986B +0xF0FD 0x986F +0xF0FE 0x9870 +0xF1A1 0x9871 +0xF1A2 0x9874 +0xF1A3 0x9873 +0xF1A4 0x98AA +0xF1A5 0x98AF +0xF1A6 0x98B1 +0xF1A7 0x98B6 +0xF1A8 0x98C4 +0xF1A9 0x98C3 +0xF1AA 0x98C6 +0xF1AB 0x98E9 +0xF1AC 0x98EB +0xF1AD 0x9903 +0xF1AE 0x9909 +0xF1AF 0x9912 +0xF1B0 0x9914 +0xF1B1 0x9918 +0xF1B2 0x9921 +0xF1B3 0x991D +0xF1B4 0x991E +0xF1B5 0x9924 +0xF1B6 0x9920 +0xF1B7 0x992C +0xF1B8 0x992E +0xF1B9 0x993D +0xF1BA 0x993E +0xF1BB 0x9942 +0xF1BC 0x9949 +0xF1BD 0x9945 +0xF1BE 0x9950 +0xF1BF 0x994B +0xF1C0 0x9951 +0xF1C1 0x9952 +0xF1C2 0x994C +0xF1C3 0x9955 +0xF1C4 0x9997 +0xF1C5 0x9998 +0xF1C6 0x99A5 +0xF1C7 0x99AD +0xF1C8 0x99AE +0xF1C9 0x99BC +0xF1CA 0x99DF +0xF1CB 0x99DB +0xF1CC 0x99DD +0xF1CD 0x99D8 +0xF1CE 0x99D1 +0xF1CF 0x99ED +0xF1D0 0x99EE +0xF1D1 0x99F1 +0xF1D2 0x99F2 +0xF1D3 0x99FB +0xF1D4 0x99F8 +0xF1D5 0x9A01 +0xF1D6 0x9A0F +0xF1D7 0x9A05 +0xF1D8 0x99E2 +0xF1D9 0x9A19 +0xF1DA 0x9A2B +0xF1DB 0x9A37 +0xF1DC 0x9A45 +0xF1DD 0x9A42 +0xF1DE 0x9A40 +0xF1DF 0x9A43 +0xF1E0 0x9A3E +0xF1E1 0x9A55 +0xF1E2 0x9A4D +0xF1E3 0x9A5B +0xF1E4 0x9A57 +0xF1E5 0x9A5F +0xF1E6 0x9A62 +0xF1E7 0x9A65 +0xF1E8 0x9A64 +0xF1E9 0x9A69 +0xF1EA 0x9A6B +0xF1EB 0x9A6A +0xF1EC 0x9AAD +0xF1ED 0x9AB0 +0xF1EE 0x9ABC +0xF1EF 0x9AC0 +0xF1F0 0x9ACF +0xF1F1 0x9AD1 +0xF1F2 0x9AD3 +0xF1F3 0x9AD4 +0xF1F4 0x9ADE +0xF1F5 0x9ADF +0xF1F6 0x9AE2 +0xF1F7 0x9AE3 +0xF1F8 0x9AE6 +0xF1F9 0x9AEF +0xF1FA 0x9AEB +0xF1FB 0x9AEE +0xF1FC 0x9AF4 +0xF1FD 0x9AF1 +0xF1FE 0x9AF7 +0xF2A1 0x9AFB +0xF2A2 0x9B06 +0xF2A3 0x9B18 +0xF2A4 0x9B1A +0xF2A5 0x9B1F +0xF2A6 0x9B22 +0xF2A7 0x9B23 +0xF2A8 0x9B25 +0xF2A9 0x9B27 +0xF2AA 0x9B28 +0xF2AB 0x9B29 +0xF2AC 0x9B2A +0xF2AD 0x9B2E +0xF2AE 0x9B2F +0xF2AF 0x9B32 +0xF2B0 0x9B44 +0xF2B1 0x9B43 +0xF2B2 0x9B4F +0xF2B3 0x9B4D +0xF2B4 0x9B4E +0xF2B5 0x9B51 +0xF2B6 0x9B58 +0xF2B7 0x9B74 +0xF2B8 0x9B93 +0xF2B9 0x9B83 +0xF2BA 0x9B91 +0xF2BB 0x9B96 +0xF2BC 0x9B97 +0xF2BD 0x9B9F +0xF2BE 0x9BA0 +0xF2BF 0x9BA8 +0xF2C0 0x9BB4 +0xF2C1 0x9BC0 +0xF2C2 0x9BCA +0xF2C3 0x9BB9 +0xF2C4 0x9BC6 +0xF2C5 0x9BCF +0xF2C6 0x9BD1 +0xF2C7 0x9BD2 +0xF2C8 0x9BE3 +0xF2C9 0x9BE2 +0xF2CA 0x9BE4 +0xF2CB 0x9BD4 +0xF2CC 0x9BE1 +0xF2CD 0x9C3A +0xF2CE 0x9BF2 +0xF2CF 0x9BF1 +0xF2D0 0x9BF0 +0xF2D1 0x9C15 +0xF2D2 0x9C14 +0xF2D3 0x9C09 +0xF2D4 0x9C13 +0xF2D5 0x9C0C +0xF2D6 0x9C06 +0xF2D7 0x9C08 +0xF2D8 0x9C12 +0xF2D9 0x9C0A +0xF2DA 0x9C04 +0xF2DB 0x9C2E +0xF2DC 0x9C1B +0xF2DD 0x9C25 +0xF2DE 0x9C24 +0xF2DF 0x9C21 +0xF2E0 0x9C30 +0xF2E1 0x9C47 +0xF2E2 0x9C32 +0xF2E3 0x9C46 +0xF2E4 0x9C3E +0xF2E5 0x9C5A +0xF2E6 0x9C60 +0xF2E7 0x9C67 +0xF2E8 0x9C76 +0xF2E9 0x9C78 +0xF2EA 0x9CE7 +0xF2EB 0x9CEC +0xF2EC 0x9CF0 +0xF2ED 0x9D09 +0xF2EE 0x9D08 +0xF2EF 0x9CEB +0xF2F0 0x9D03 +0xF2F1 0x9D06 +0xF2F2 0x9D2A +0xF2F3 0x9D26 +0xF2F4 0x9DAF +0xF2F5 0x9D23 +0xF2F6 0x9D1F +0xF2F7 0x9D44 +0xF2F8 0x9D15 +0xF2F9 0x9D12 +0xF2FA 0x9D41 +0xF2FB 0x9D3F +0xF2FC 0x9D3E +0xF2FD 0x9D46 +0xF2FE 0x9D48 +0xF3A1 0x9D5D +0xF3A2 0x9D5E +0xF3A3 0x9D64 +0xF3A4 0x9D51 +0xF3A5 0x9D50 +0xF3A6 0x9D59 +0xF3A7 0x9D72 +0xF3A8 0x9D89 +0xF3A9 0x9D87 +0xF3AA 0x9DAB +0xF3AB 0x9D6F +0xF3AC 0x9D7A +0xF3AD 0x9D9A +0xF3AE 0x9DA4 +0xF3AF 0x9DA9 +0xF3B0 0x9DB2 +0xF3B1 0x9DC4 +0xF3B2 0x9DC1 +0xF3B3 0x9DBB +0xF3B4 0x9DB8 +0xF3B5 0x9DBA +0xF3B6 0x9DC6 +0xF3B7 0x9DCF +0xF3B8 0x9DC2 +0xF3B9 0x9DD9 +0xF3BA 0x9DD3 +0xF3BB 0x9DF8 +0xF3BC 0x9DE6 +0xF3BD 0x9DED +0xF3BE 0x9DEF +0xF3BF 0x9DFD +0xF3C0 0x9E1A +0xF3C1 0x9E1B +0xF3C2 0x9E1E +0xF3C3 0x9E75 +0xF3C4 0x9E79 +0xF3C5 0x9E7D +0xF3C6 0x9E81 +0xF3C7 0x9E88 +0xF3C8 0x9E8B +0xF3C9 0x9E8C +0xF3CA 0x9E92 +0xF3CB 0x9E95 +0xF3CC 0x9E91 +0xF3CD 0x9E9D +0xF3CE 0x9EA5 +0xF3CF 0x9EA9 +0xF3D0 0x9EB8 +0xF3D1 0x9EAA +0xF3D2 0x9EAD +0xF3D3 0x9761 +0xF3D4 0x9ECC +0xF3D5 0x9ECE +0xF3D6 0x9ECF +0xF3D7 0x9ED0 +0xF3D8 0x9ED4 +0xF3D9 0x9EDC +0xF3DA 0x9EDE +0xF3DB 0x9EDD +0xF3DC 0x9EE0 +0xF3DD 0x9EE5 +0xF3DE 0x9EE8 +0xF3DF 0x9EEF +0xF3E0 0x9EF4 +0xF3E1 0x9EF6 +0xF3E2 0x9EF7 +0xF3E3 0x9EF9 +0xF3E4 0x9EFB +0xF3E5 0x9EFC +0xF3E6 0x9EFD +0xF3E7 0x9F07 +0xF3E8 0x9F08 +0xF3E9 0x76B7 +0xF3EA 0x9F15 +0xF3EB 0x9F21 +0xF3EC 0x9F2C +0xF3ED 0x9F3E +0xF3EE 0x9F4A +0xF3EF 0x9F52 +0xF3F0 0x9F54 +0xF3F1 0x9F63 +0xF3F2 0x9F5F +0xF3F3 0x9F60 +0xF3F4 0x9F61 +0xF3F5 0x9F66 +0xF3F6 0x9F67 +0xF3F7 0x9F6C +0xF3F8 0x9F6A +0xF3F9 0x9F77 +0xF3FA 0x9F72 +0xF3FB 0x9F76 +0xF3FC 0x9F95 +0xF3FD 0x9F9C +0xF3FE 0x9FA0 +0xF4A1 0x582F +0xF4A2 0x69C7 +0xF4A3 0x9059 +0xF4A4 0x7464 +0xF4A5 0x51DC +0xF4A6 0x7199 +0xF4A7 0x5653 +0xF4A8 0x5DE2 +0xF4A9 0x5E14 +0xF4AA 0x5E18 +0xF4AB 0x5E58 +0xF4AC 0x5E5E +0xF4AD 0x5EBE +0xF4AE 0xF928 +0xF4AF 0x5ECB +0xF4B0 0x5EF9 +0xF4B1 0x5F00 +0xF4B2 0x5F02 +0xF4B3 0x5F07 +0xF4B4 0x5F1D +0xF4B5 0x5F23 +0xF4B6 0x5F34 +0xF4B7 0x5F36 +0xF4B8 0x5F3D +0xF4B9 0x5F40 +0xF4BA 0x5F45 +0xF4BB 0x5F54 +0xF4BC 0x5F58 +0xF4BD 0x5F64 +0xF4BE 0x5F67 +0xF4BF 0x5F7D +0xF4C0 0x5F89 +0xF4C1 0x5F9C +0xF4C2 0x5FA7 +0xF4C3 0x5FAF +0xF4C4 0x5FB5 +0xF4C5 0x5FB7 +0xF4C6 0x5FC9 +0xF4C7 0x5FDE +0xF4C8 0x5FE1 +0xF4C9 0x5FE9 +0xF4CA 0x600D +0xF4CB 0x6014 +0xF4CC 0x6018 +0xF4CD 0x6033 +0xF4CE 0x6035 +0xF4CF 0x6047 +0xF4D0 0xFA3D +0xF4D1 0x609D +0xF4D2 0x609E +0xF4D3 0x60CB +0xF4D4 0x60D4 +0xF4D5 0x60D5 +0xF4D6 0x60DD +0xF4D7 0x60F8 +0xF4D8 0x611C +0xF4D9 0x612B +0xF4DA 0x6130 +0xF4DB 0x6137 +0xF4DC 0xFA3E +0xF4DD 0x618D +0xF4DE 0xFA3F +0xF4DF 0x61BC +0xF4E0 0x61B9 +0xF4E1 0xFA40 +0xF4E2 0x6222 +0xF4E3 0x623E +0xF4E4 0x6243 +0xF4E5 0x6256 +0xF4E6 0x625A +0xF4E7 0x626F +0xF4E8 0x6285 +0xF4E9 0x62C4 +0xF4EA 0x62D6 +0xF4EB 0x62FC +0xF4EC 0x630A +0xF4ED 0x6318 +0xF4EE 0x6339 +0xF4EF 0x6343 +0xF4F0 0x6365 +0xF4F1 0x637C +0xF4F2 0x63E5 +0xF4F3 0x63ED +0xF4F4 0x63F5 +0xF4F5 0x6410 +0xF4F6 0x6414 +0xF4F7 0x6422 +0xF4F8 0x6479 +0xF4F9 0x6451 +0xF4FA 0x6460 +0xF4FB 0x646D +0xF4FC 0x64CE +0xF4FD 0x64BE +0xF4FE 0x64BF +0xF5A1 0x64C4 +0xF5A2 0x64CA +0xF5A3 0x64D0 +0xF5A4 0x64F7 +0xF5A5 0x64FB +0xF5A6 0x6522 +0xF5A7 0x6529 +0xF5A8 0xFA41 +0xF5A9 0x6567 +0xF5AA 0x659D +0xF5AB 0xFA42 +0xF5AC 0x6600 +0xF5AD 0x6609 +0xF5AE 0x6615 +0xF5AF 0x661E +0xF5B0 0x663A +0xF5B1 0x6622 +0xF5B2 0x6624 +0xF5B3 0x662B +0xF5B4 0x6630 +0xF5B5 0x6631 +0xF5B6 0x6633 +0xF5B7 0x66FB +0xF5B8 0x6648 +0xF5B9 0x664C +0xF5BA 0x231C4 +0xF5BB 0x6659 +0xF5BC 0x665A +0xF5BD 0x6661 +0xF5BE 0x6665 +0xF5BF 0x6673 +0xF5C0 0x6677 +0xF5C1 0x6678 +0xF5C2 0x668D +0xF5C3 0xFA43 +0xF5C4 0x66A0 +0xF5C5 0x66B2 +0xF5C6 0x66BB +0xF5C7 0x66C6 +0xF5C8 0x66C8 +0xF5C9 0x3B22 +0xF5CA 0x66DB +0xF5CB 0x66E8 +0xF5CC 0x66FA +0xF5CD 0x6713 +0xF5CE 0xF929 +0xF5CF 0x6733 +0xF5D0 0x6766 +0xF5D1 0x6747 +0xF5D2 0x6748 +0xF5D3 0x677B +0xF5D4 0x6781 +0xF5D5 0x6793 +0xF5D6 0x6798 +0xF5D7 0x679B +0xF5D8 0x67BB +0xF5D9 0x67F9 +0xF5DA 0x67C0 +0xF5DB 0x67D7 +0xF5DC 0x67FC +0xF5DD 0x6801 +0xF5DE 0x6852 +0xF5DF 0x681D +0xF5E0 0x682C +0xF5E1 0x6831 +0xF5E2 0x685B +0xF5E3 0x6872 +0xF5E4 0x6875 +0xF5E5 0xFA44 +0xF5E6 0x68A3 +0xF5E7 0x68A5 +0xF5E8 0x68B2 +0xF5E9 0x68C8 +0xF5EA 0x68D0 +0xF5EB 0x68E8 +0xF5EC 0x68ED +0xF5ED 0x68F0 +0xF5EE 0x68F1 +0xF5EF 0x68FC +0xF5F0 0x690A +0xF5F1 0x6949 +0xF5F2 0x235C4 +0xF5F3 0x6935 +0xF5F4 0x6942 +0xF5F5 0x6957 +0xF5F6 0x6963 +0xF5F7 0x6964 +0xF5F8 0x6968 +0xF5F9 0x6980 +0xF5FA 0xFA14 +0xF5FB 0x69A5 +0xF5FC 0x69AD +0xF5FD 0x69CF +0xF5FE 0x3BB6 +0xF6A1 0x3BC3 +0xF6A2 0x69E2 +0xF6A3 0x69E9 +0xF6A4 0x69EA +0xF6A5 0x69F5 +0xF6A6 0x69F6 +0xF6A7 0x6A0F +0xF6A8 0x6A15 +0xF6A9 0x2373F +0xF6AA 0x6A3B +0xF6AB 0x6A3E +0xF6AC 0x6A45 +0xF6AD 0x6A50 +0xF6AE 0x6A56 +0xF6AF 0x6A5B +0xF6B0 0x6A6B +0xF6B1 0x6A73 +0xF6B2 0x23763 +0xF6B3 0x6A89 +0xF6B4 0x6A94 +0xF6B5 0x6A9D +0xF6B6 0x6A9E +0xF6B7 0x6AA5 +0xF6B8 0x6AE4 +0xF6B9 0x6AE7 +0xF6BA 0x3C0F +0xF6BB 0xF91D +0xF6BC 0x6B1B +0xF6BD 0x6B1E +0xF6BE 0x6B2C +0xF6BF 0x6B35 +0xF6C0 0x6B46 +0xF6C1 0x6B56 +0xF6C2 0x6B60 +0xF6C3 0x6B65 +0xF6C4 0x6B67 +0xF6C5 0x6B77 +0xF6C6 0x6B82 +0xF6C7 0x6BA9 +0xF6C8 0x6BAD +0xF6C9 0xF970 +0xF6CA 0x6BCF +0xF6CB 0x6BD6 +0xF6CC 0x6BD7 +0xF6CD 0x6BFF +0xF6CE 0x6C05 +0xF6CF 0x6C10 +0xF6D0 0x6C33 +0xF6D1 0x6C59 +0xF6D2 0x6C5C +0xF6D3 0x6CAA +0xF6D4 0x6C74 +0xF6D5 0x6C76 +0xF6D6 0x6C85 +0xF6D7 0x6C86 +0xF6D8 0x6C98 +0xF6D9 0x6C9C +0xF6DA 0x6CFB +0xF6DB 0x6CC6 +0xF6DC 0x6CD4 +0xF6DD 0x6CE0 +0xF6DE 0x6CEB +0xF6DF 0x6CEE +0xF6E0 0x23CFE +0xF6E1 0x6D04 +0xF6E2 0x6D0E +0xF6E3 0x6D2E +0xF6E4 0x6D31 +0xF6E5 0x6D39 +0xF6E6 0x6D3F +0xF6E7 0x6D58 +0xF6E8 0x6D65 +0xF6E9 0xFA45 +0xF6EA 0x6D82 +0xF6EB 0x6D87 +0xF6EC 0x6D89 +0xF6ED 0x6D94 +0xF6EE 0x6DAA +0xF6EF 0x6DAC +0xF6F0 0x6DBF +0xF6F1 0x6DC4 +0xF6F2 0x6DD6 +0xF6F3 0x6DDA +0xF6F4 0x6DDB +0xF6F5 0x6DDD +0xF6F6 0x6DFC +0xF6F7 0xFA46 +0xF6F8 0x6E34 +0xF6F9 0x6E44 +0xF6FA 0x6E5C +0xF6FB 0x6E5E +0xF6FC 0x6EAB +0xF6FD 0x6EB1 +0xF6FE 0x6EC1 +0xF7A1 0x6EC7 +0xF7A2 0x6ECE +0xF7A3 0x6F10 +0xF7A4 0x6F1A +0xF7A5 0xFA47 +0xF7A6 0x6F2A +0xF7A7 0x6F2F +0xF7A8 0x6F33 +0xF7A9 0x6F51 +0xF7AA 0x6F59 +0xF7AB 0x6F5E +0xF7AC 0x6F61 +0xF7AD 0x6F62 +0xF7AE 0x6F7E +0xF7AF 0x6F88 +0xF7B0 0x6F8C +0xF7B1 0x6F8D +0xF7B2 0x6F94 +0xF7B3 0x6FA0 +0xF7B4 0x6FA7 +0xF7B5 0x6FB6 +0xF7B6 0x6FBC +0xF7B7 0x6FC7 +0xF7B8 0x6FCA +0xF7B9 0x6FF9 +0xF7BA 0x6FF0 +0xF7BB 0x6FF5 +0xF7BC 0x7005 +0xF7BD 0x7006 +0xF7BE 0x7028 +0xF7BF 0x704A +0xF7C0 0x705D +0xF7C1 0x705E +0xF7C2 0x704E +0xF7C3 0x7064 +0xF7C4 0x7075 +0xF7C5 0x7085 +0xF7C6 0x70A4 +0xF7C7 0x70AB +0xF7C8 0x70B7 +0xF7C9 0x70D4 +0xF7CA 0x70D8 +0xF7CB 0x70E4 +0xF7CC 0x710F +0xF7CD 0x712B +0xF7CE 0x711E +0xF7CF 0x7120 +0xF7D0 0x712E +0xF7D1 0x7130 +0xF7D2 0x7146 +0xF7D3 0x7147 +0xF7D4 0x7151 +0xF7D5 0xFA48 +0xF7D6 0x7152 +0xF7D7 0x715C +0xF7D8 0x7160 +0xF7D9 0x7168 +0xF7DA 0xFA15 +0xF7DB 0x7185 +0xF7DC 0x7187 +0xF7DD 0x7192 +0xF7DE 0x71C1 +0xF7DF 0x71BA +0xF7E0 0x71C4 +0xF7E1 0x71FE +0xF7E2 0x7200 +0xF7E3 0x7215 +0xF7E4 0x7255 +0xF7E5 0x7256 +0xF7E6 0x3E3F +0xF7E7 0x728D +0xF7E8 0x729B +0xF7E9 0x72BE +0xF7EA 0x72C0 +0xF7EB 0x72FB +0xF7EC 0x247F1 +0xF7ED 0x7327 +0xF7EE 0x7328 +0xF7EF 0xFA16 +0xF7F0 0x7350 +0xF7F1 0x7366 +0xF7F2 0x737C +0xF7F3 0x7395 +0xF7F4 0x739F +0xF7F5 0x73A0 +0xF7F6 0x73A2 +0xF7F7 0x73A6 +0xF7F8 0x73AB +0xF7F9 0x73C9 +0xF7FA 0x73CF +0xF7FB 0x73D6 +0xF7FC 0x73D9 +0xF7FD 0x73E3 +0xF7FE 0x73E9 +0xF8A1 0x7407 +0xF8A2 0x740A +0xF8A3 0x741A +0xF8A4 0x741B +0xF8A5 0xFA4A +0xF8A6 0x7426 +0xF8A7 0x7428 +0xF8A8 0x742A +0xF8A9 0x742B +0xF8AA 0x742C +0xF8AB 0x742E +0xF8AC 0x742F +0xF8AD 0x7430 +0xF8AE 0x7444 +0xF8AF 0x7446 +0xF8B0 0x7447 +0xF8B1 0x744B +0xF8B2 0x7457 +0xF8B3 0x7462 +0xF8B4 0x746B +0xF8B5 0x746D +0xF8B6 0x7486 +0xF8B7 0x7487 +0xF8B8 0x7489 +0xF8B9 0x7498 +0xF8BA 0x749C +0xF8BB 0x749F +0xF8BC 0x74A3 +0xF8BD 0x7490 +0xF8BE 0x74A6 +0xF8BF 0x74A8 +0xF8C0 0x74A9 +0xF8C1 0x74B5 +0xF8C2 0x74BF +0xF8C3 0x74C8 +0xF8C4 0x74C9 +0xF8C5 0x74DA +0xF8C6 0x74FF +0xF8C7 0x7501 +0xF8C8 0x7517 +0xF8C9 0x752F +0xF8CA 0x756F +0xF8CB 0x7579 +0xF8CC 0x7592 +0xF8CD 0x3F72 +0xF8CE 0x75CE +0xF8CF 0x75E4 +0xF8D0 0x7600 +0xF8D1 0x7602 +0xF8D2 0x7608 +0xF8D3 0x7615 +0xF8D4 0x7616 +0xF8D5 0x7619 +0xF8D6 0x761E +0xF8D7 0x762D +0xF8D8 0x7635 +0xF8D9 0x7643 +0xF8DA 0x764B +0xF8DB 0x7664 +0xF8DC 0x7665 +0xF8DD 0x766D +0xF8DE 0x766F +0xF8DF 0x7671 +0xF8E0 0x7681 +0xF8E1 0x769B +0xF8E2 0x769D +0xF8E3 0x769E +0xF8E4 0x76A6 +0xF8E5 0x76AA +0xF8E6 0x76B6 +0xF8E7 0x76C5 +0xF8E8 0x76CC +0xF8E9 0x76CE +0xF8EA 0x76D4 +0xF8EB 0x76E6 +0xF8EC 0x76F1 +0xF8ED 0x76FC +0xF8EE 0x770A +0xF8EF 0x7719 +0xF8F0 0x7734 +0xF8F1 0x7736 +0xF8F2 0x7746 +0xF8F3 0x774D +0xF8F4 0x774E +0xF8F5 0x775C +0xF8F6 0x775F +0xF8F7 0x7762 +0xF8F8 0x777A +0xF8F9 0x7780 +0xF8FA 0x7794 +0xF8FB 0x77AA +0xF8FC 0x77E0 +0xF8FD 0x782D +0xF8FE 0x2548E +0xF9A1 0x7843 +0xF9A2 0x784E +0xF9A3 0x784F +0xF9A4 0x7851 +0xF9A5 0x7868 +0xF9A6 0x786E +0xF9A7 0xFA4B +0xF9A8 0x78B0 +0xF9A9 0x2550E +0xF9AA 0x78AD +0xF9AB 0x78E4 +0xF9AC 0x78F2 +0xF9AD 0x7900 +0xF9AE 0x78F7 +0xF9AF 0x791C +0xF9B0 0x792E +0xF9B1 0x7931 +0xF9B2 0x7934 +0xF9B3 0xFA4C +0xF9B4 0xFA4D +0xF9B5 0x7945 +0xF9B6 0x7946 +0xF9B7 0xFA4E +0xF9B8 0xFA4F +0xF9B9 0xFA50 +0xF9BA 0x795C +0xF9BB 0xFA51 +0xF9BC 0xFA19 +0xF9BD 0xFA1A +0xF9BE 0x7979 +0xF9BF 0xFA52 +0xF9C0 0xFA53 +0xF9C1 0xFA1B +0xF9C2 0x7998 +0xF9C3 0x79B1 +0xF9C4 0x79B8 +0xF9C5 0x79C8 +0xF9C6 0x79CA +0xF9C7 0x25771 +0xF9C8 0x79D4 +0xF9C9 0x79DE +0xF9CA 0x79EB +0xF9CB 0x79ED +0xF9CC 0x7A03 +0xF9CD 0xFA54 +0xF9CE 0x7A39 +0xF9CF 0x7A5D +0xF9D0 0x7A6D +0xF9D1 0xFA55 +0xF9D2 0x7A85 +0xF9D3 0x7AA0 +0xF9D4 0x259C4 +0xF9D5 0x7AB3 +0xF9D6 0x7ABB +0xF9D7 0x7ACE +0xF9D8 0x7AEB +0xF9D9 0x7AFD +0xF9DA 0x7B12 +0xF9DB 0x7B2D +0xF9DC 0x7B3B +0xF9DD 0x7B47 +0xF9DE 0x7B4E +0xF9DF 0x7B60 +0xF9E0 0x7B6D +0xF9E1 0x7B6F +0xF9E2 0x7B72 +0xF9E3 0x7B9E +0xF9E4 0xFA56 +0xF9E5 0x7BD7 +0xF9E6 0x7BD9 +0xF9E7 0x7C01 +0xF9E8 0x7C31 +0xF9E9 0x7C1E +0xF9EA 0x7C20 +0xF9EB 0x7C33 +0xF9EC 0x7C36 +0xF9ED 0x4264 +0xF9EE 0x25DA1 +0xF9EF 0x7C59 +0xF9F0 0x7C6D +0xF9F1 0x7C79 +0xF9F2 0x7C8F +0xF9F3 0x7C94 +0xF9F4 0x7CA0 +0xF9F5 0x7CBC +0xF9F6 0x7CD5 +0xF9F7 0x7CD9 +0xF9F8 0x7CDD +0xF9F9 0x7D07 +0xF9FA 0x7D08 +0xF9FB 0x7D13 +0xF9FC 0x7D1D +0xF9FD 0x7D23 +0xF9FE 0x7D31 +0xFAA1 0x7D41 +0xFAA2 0x7D48 +0xFAA3 0x7D53 +0xFAA4 0x7D5C +0xFAA5 0x7D7A +0xFAA6 0x7D83 +0xFAA7 0x7D8B +0xFAA8 0x7DA0 +0xFAA9 0x7DA6 +0xFAAA 0x7DC2 +0xFAAB 0x7DCC +0xFAAC 0x7DD6 +0xFAAD 0x7DE3 +0xFAAE 0xFA57 +0xFAAF 0x7E28 +0xFAB0 0x7E08 +0xFAB1 0x7E11 +0xFAB2 0x7E15 +0xFAB3 0xFA59 +0xFAB4 0x7E47 +0xFAB5 0x7E52 +0xFAB6 0x7E61 +0xFAB7 0x7E8A +0xFAB8 0x7E8D +0xFAB9 0x7F47 +0xFABA 0xFA5A +0xFABB 0x7F91 +0xFABC 0x7F97 +0xFABD 0x7FBF +0xFABE 0x7FCE +0xFABF 0x7FDB +0xFAC0 0x7FDF +0xFAC1 0x7FEC +0xFAC2 0x7FEE +0xFAC3 0x7FFA +0xFAC4 0xFA5B +0xFAC5 0x8014 +0xFAC6 0x8026 +0xFAC7 0x8035 +0xFAC8 0x8037 +0xFAC9 0x803C +0xFACA 0x80CA +0xFACB 0x80D7 +0xFACC 0x80E0 +0xFACD 0x80F3 +0xFACE 0x8118 +0xFACF 0x814A +0xFAD0 0x8160 +0xFAD1 0x8167 +0xFAD2 0x8168 +0xFAD3 0x816D +0xFAD4 0x81BB +0xFAD5 0x81CA +0xFAD6 0x81CF +0xFAD7 0x81D7 +0xFAD8 0xFA5C +0xFAD9 0x4453 +0xFADA 0x445B +0xFADB 0x8260 +0xFADC 0x8274 +0xFADD 0x26AFF +0xFADE 0x828E +0xFADF 0x82A1 +0xFAE0 0x82A3 +0xFAE1 0x82A4 +0xFAE2 0x82A9 +0xFAE3 0x82AE +0xFAE4 0x82B7 +0xFAE5 0x82BE +0xFAE6 0x82BF +0xFAE7 0x82C6 +0xFAE8 0x82D5 +0xFAE9 0x82FD +0xFAEA 0x82FE +0xFAEB 0x8300 +0xFAEC 0x8301 +0xFAED 0x8362 +0xFAEE 0x8322 +0xFAEF 0x832D +0xFAF0 0x833A +0xFAF1 0x8343 +0xFAF2 0x8347 +0xFAF3 0x8351 +0xFAF4 0x8355 +0xFAF5 0x837D +0xFAF6 0x8386 +0xFAF7 0x8392 +0xFAF8 0x8398 +0xFAF9 0x83A7 +0xFAFA 0x83A9 +0xFAFB 0x83BF +0xFAFC 0x83C0 +0xFAFD 0x83C7 +0xFAFE 0x83CF +0xFBA1 0x83D1 +0xFBA2 0x83E1 +0xFBA3 0x83EA +0xFBA4 0x8401 +0xFBA5 0x8406 +0xFBA6 0x840A +0xFBA7 0xFA5F +0xFBA8 0x8448 +0xFBA9 0x845F +0xFBAA 0x8470 +0xFBAB 0x8473 +0xFBAC 0x8485 +0xFBAD 0x849E +0xFBAE 0x84AF +0xFBAF 0x84B4 +0xFBB0 0x84BA +0xFBB1 0x84C0 +0xFBB2 0x84C2 +0xFBB3 0x26E40 +0xFBB4 0x8532 +0xFBB5 0x851E +0xFBB6 0x8523 +0xFBB7 0x852F +0xFBB8 0x8559 +0xFBB9 0x8564 +0xFBBA 0xFA1F +0xFBBB 0x85AD +0xFBBC 0x857A +0xFBBD 0x858C +0xFBBE 0x858F +0xFBBF 0x85A2 +0xFBC0 0x85B0 +0xFBC1 0x85CB +0xFBC2 0x85CE +0xFBC3 0x85ED +0xFBC4 0x8612 +0xFBC5 0x85FF +0xFBC6 0x8604 +0xFBC7 0x8605 +0xFBC8 0x8610 +0xFBC9 0x270F4 +0xFBCA 0x8618 +0xFBCB 0x8629 +0xFBCC 0x8638 +0xFBCD 0x8657 +0xFBCE 0x865B +0xFBCF 0xF936 +0xFBD0 0x8662 +0xFBD1 0x459D +0xFBD2 0x866C +0xFBD3 0x8675 +0xFBD4 0x8698 +0xFBD5 0x86B8 +0xFBD6 0x86FA +0xFBD7 0x86FC +0xFBD8 0x86FD +0xFBD9 0x870B +0xFBDA 0x8771 +0xFBDB 0x8787 +0xFBDC 0x8788 +0xFBDD 0x87AC +0xFBDE 0x87AD +0xFBDF 0x87B5 +0xFBE0 0x45EA +0xFBE1 0x87D6 +0xFBE2 0x87EC +0xFBE3 0x8806 +0xFBE4 0x880A +0xFBE5 0x8810 +0xFBE6 0x8814 +0xFBE7 0x881F +0xFBE8 0x8898 +0xFBE9 0x88AA +0xFBEA 0x88CA +0xFBEB 0x88CE +0xFBEC 0x27684 +0xFBED 0x88F5 +0xFBEE 0x891C +0xFBEF 0xFA60 +0xFBF0 0x8918 +0xFBF1 0x8919 +0xFBF2 0x891A +0xFBF3 0x8927 +0xFBF4 0x8930 +0xFBF5 0x8932 +0xFBF6 0x8939 +0xFBF7 0x8940 +0xFBF8 0x8994 +0xFBF9 0xFA61 +0xFBFA 0x89D4 +0xFBFB 0x89E5 +0xFBFC 0x89F6 +0xFBFD 0x8A12 +0xFBFE 0x8A15 +0xFCA1 0x8A22 +0xFCA2 0x8A37 +0xFCA3 0x8A47 +0xFCA4 0x8A4E +0xFCA5 0x8A5D +0xFCA6 0x8A61 +0xFCA7 0x8A75 +0xFCA8 0x8A79 +0xFCA9 0x8AA7 +0xFCAA 0x8AD0 +0xFCAB 0x8ADF +0xFCAC 0x8AF4 +0xFCAD 0x8AF6 +0xFCAE 0xFA22 +0xFCAF 0xFA62 +0xFCB0 0xFA63 +0xFCB1 0x8B46 +0xFCB2 0x8B54 +0xFCB3 0x8B59 +0xFCB4 0x8B69 +0xFCB5 0x8B9D +0xFCB6 0x8C49 +0xFCB7 0x8C68 +0xFCB8 0xFA64 +0xFCB9 0x8CE1 +0xFCBA 0x8CF4 +0xFCBB 0x8CF8 +0xFCBC 0x8CFE +0xFCBD 0xFA65 +0xFCBE 0x8D12 +0xFCBF 0x8D1B +0xFCC0 0x8DAF +0xFCC1 0x8DCE +0xFCC2 0x8DD1 +0xFCC3 0x8DD7 +0xFCC4 0x8E20 +0xFCC5 0x8E23 +0xFCC6 0x8E3D +0xFCC7 0x8E70 +0xFCC8 0x8E7B +0xFCC9 0x28277 +0xFCCA 0x8EC0 +0xFCCB 0x4844 +0xFCCC 0x8EFA +0xFCCD 0x8F1E +0xFCCE 0x8F2D +0xFCCF 0x8F36 +0xFCD0 0x8F54 +0xFCD1 0x283CD +0xFCD2 0x8FA6 +0xFCD3 0x8FB5 +0xFCD4 0x8FE4 +0xFCD5 0x8FE8 +0xFCD6 0x8FEE +0xFCD7 0x9008 +0xFCD8 0x902D +0xFCD9 0xFA67 +0xFCDA 0x9088 +0xFCDB 0x9095 +0xFCDC 0x9097 +0xFCDD 0x9099 +0xFCDE 0x909B +0xFCDF 0x90A2 +0xFCE0 0x90B3 +0xFCE1 0x90BE +0xFCE2 0x90C4 +0xFCE3 0x90C5 +0xFCE4 0x90C7 +0xFCE5 0x90D7 +0xFCE6 0x90DD +0xFCE7 0x90DE +0xFCE8 0x90EF +0xFCE9 0x90F4 +0xFCEA 0xFA26 +0xFCEB 0x9114 +0xFCEC 0x9115 +0xFCED 0x9116 +0xFCEE 0x9122 +0xFCEF 0x9123 +0xFCF0 0x9127 +0xFCF1 0x912F +0xFCF2 0x9131 +0xFCF3 0x9134 +0xFCF4 0x913D +0xFCF5 0x9148 +0xFCF6 0x915B +0xFCF7 0x9183 +0xFCF8 0x919E +0xFCF9 0x91AC +0xFCFA 0x91B1 +0xFCFB 0x91BC +0xFCFC 0x91D7 +0xFCFD 0x91FB +0xFCFE 0x91E4 +0xFDA1 0x91E5 +0xFDA2 0x91ED +0xFDA3 0x91F1 +0xFDA4 0x9207 +0xFDA5 0x9210 +0xFDA6 0x9238 +0xFDA7 0x9239 +0xFDA8 0x923A +0xFDA9 0x923C +0xFDAA 0x9240 +0xFDAB 0x9243 +0xFDAC 0x924F +0xFDAD 0x9278 +0xFDAE 0x9288 +0xFDAF 0x92C2 +0xFDB0 0x92CB +0xFDB1 0x92CC +0xFDB2 0x92D3 +0xFDB3 0x92E0 +0xFDB4 0x92FF +0xFDB5 0x9304 +0xFDB6 0x931F +0xFDB7 0x9321 +0xFDB8 0x9325 +0xFDB9 0x9348 +0xFDBA 0x9349 +0xFDBB 0x934A +0xFDBC 0x9364 +0xFDBD 0x9365 +0xFDBE 0x936A +0xFDBF 0x9370 +0xFDC0 0x939B +0xFDC1 0x93A3 +0xFDC2 0x93BA +0xFDC3 0x93C6 +0xFDC4 0x93DE +0xFDC5 0x93DF +0xFDC6 0x9404 +0xFDC7 0x93FD +0xFDC8 0x9433 +0xFDC9 0x944A +0xFDCA 0x9463 +0xFDCB 0x946B +0xFDCC 0x9471 +0xFDCD 0x9472 +0xFDCE 0x958E +0xFDCF 0x959F +0xFDD0 0x95A6 +0xFDD1 0x95A9 +0xFDD2 0x95AC +0xFDD3 0x95B6 +0xFDD4 0x95BD +0xFDD5 0x95CB +0xFDD6 0x95D0 +0xFDD7 0x95D3 +0xFDD8 0x49B0 +0xFDD9 0x95DA +0xFDDA 0x95DE +0xFDDB 0x9658 +0xFDDC 0x9684 +0xFDDD 0xF9DC +0xFDDE 0x969D +0xFDDF 0x96A4 +0xFDE0 0x96A5 +0xFDE1 0x96D2 +0xFDE2 0x96DE +0xFDE3 0xFA68 +0xFDE4 0x96E9 +0xFDE5 0x96EF +0xFDE6 0x9733 +0xFDE7 0x973B +0xFDE8 0x974D +0xFDE9 0x974E +0xFDEA 0x974F +0xFDEB 0x975A +0xFDEC 0x976E +0xFDED 0x9773 +0xFDEE 0x9795 +0xFDEF 0x97AE +0xFDF0 0x97BA +0xFDF1 0x97C1 +0xFDF2 0x97C9 +0xFDF3 0x97DE +0xFDF4 0x97DB +0xFDF5 0x97F4 +0xFDF6 0xFA69 +0xFDF7 0x980A +0xFDF8 0x981E +0xFDF9 0x982B +0xFDFA 0x9830 +0xFDFB 0xFA6A +0xFDFC 0x9852 +0xFDFD 0x9853 +0xFDFE 0x9856 +0xFEA1 0x9857 +0xFEA2 0x9859 +0xFEA3 0x985A +0xFEA4 0xF9D0 +0xFEA5 0x9865 +0xFEA6 0x986C +0xFEA7 0x98BA +0xFEA8 0x98C8 +0xFEA9 0x98E7 +0xFEAA 0x9958 +0xFEAB 0x999E +0xFEAC 0x9A02 +0xFEAD 0x9A03 +0xFEAE 0x9A24 +0xFEAF 0x9A2D +0xFEB0 0x9A2E +0xFEB1 0x9A38 +0xFEB2 0x9A4A +0xFEB3 0x9A4E +0xFEB4 0x9A52 +0xFEB5 0x9AB6 +0xFEB6 0x9AC1 +0xFEB7 0x9AC3 +0xFEB8 0x9ACE +0xFEB9 0x9AD6 +0xFEBA 0x9AF9 +0xFEBB 0x9B02 +0xFEBC 0x9B08 +0xFEBD 0x9B20 +0xFEBE 0x4C17 +0xFEBF 0x9B2D +0xFEC0 0x9B5E +0xFEC1 0x9B79 +0xFEC2 0x9B66 +0xFEC3 0x9B72 +0xFEC4 0x9B75 +0xFEC5 0x9B84 +0xFEC6 0x9B8A +0xFEC7 0x9B8F +0xFEC8 0x9B9E +0xFEC9 0x9BA7 +0xFECA 0x9BC1 +0xFECB 0x9BCE +0xFECC 0x9BE5 +0xFECD 0x9BF8 +0xFECE 0x9BFD +0xFECF 0x9C00 +0xFED0 0x9C23 +0xFED1 0x9C41 +0xFED2 0x9C4F +0xFED3 0x9C50 +0xFED4 0x9C53 +0xFED5 0x9C63 +0xFED6 0x9C65 +0xFED7 0x9C77 +0xFED8 0x9D1D +0xFED9 0x9D1E +0xFEDA 0x9D43 +0xFEDB 0x9D47 +0xFEDC 0x9D52 +0xFEDD 0x9D63 +0xFEDE 0x9D70 +0xFEDF 0x9D7C +0xFEE0 0x9D8A +0xFEE1 0x9D96 +0xFEE2 0x9DC0 +0xFEE3 0x9DAC +0xFEE4 0x9DBC +0xFEE5 0x9DD7 +0xFEE6 0x2A190 +0xFEE7 0x9DE7 +0xFEE8 0x9E07 +0xFEE9 0x9E15 +0xFEEA 0x9E7C +0xFEEB 0x9E9E +0xFEEC 0x9EA4 +0xFEED 0x9EAC +0xFEEE 0x9EAF +0xFEEF 0x9EB4 +0xFEF0 0x9EB5 +0xFEF1 0x9EC3 +0xFEF2 0x9ED1 +0xFEF3 0x9F10 +0xFEF4 0x9F39 +0xFEF5 0x9F57 +0xFEF6 0x9F90 +0xFEF7 0x9F94 +0xFEF8 0x9F97 +0xFEF9 0x9FA2 +0xFEFA 0x59F8 +0xFEFB 0x5C5B +0xFEFC 0x5E77 +0xFEFD 0x7626 +0xFEFE 0x7E6B diff --git a/3rdPartner/libiconv/tests/EUC-JP.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/EUC-JP.IRREVERSIBLE.TXT new file mode 100644 index 0000000..1921ac8 --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-JP.IRREVERSIBLE.TXT @@ -0,0 +1,2 @@ +0x5C 0x00A5 +0x7E 0x203E diff --git a/3rdPartner/libiconv/tests/EUC-JP.TXT b/3rdPartner/libiconv/tests/EUC-JP.TXT new file mode 100644 index 0000000..518094c --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-JP.TXT @@ -0,0 +1,15017 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8EA1 0xFF61 +0x8EA2 0xFF62 +0x8EA3 0xFF63 +0x8EA4 0xFF64 +0x8EA5 0xFF65 +0x8EA6 0xFF66 +0x8EA7 0xFF67 +0x8EA8 0xFF68 +0x8EA9 0xFF69 +0x8EAA 0xFF6A +0x8EAB 0xFF6B +0x8EAC 0xFF6C +0x8EAD 0xFF6D +0x8EAE 0xFF6E +0x8EAF 0xFF6F +0x8EB0 0xFF70 +0x8EB1 0xFF71 +0x8EB2 0xFF72 +0x8EB3 0xFF73 +0x8EB4 0xFF74 +0x8EB5 0xFF75 +0x8EB6 0xFF76 +0x8EB7 0xFF77 +0x8EB8 0xFF78 +0x8EB9 0xFF79 +0x8EBA 0xFF7A +0x8EBB 0xFF7B +0x8EBC 0xFF7C +0x8EBD 0xFF7D +0x8EBE 0xFF7E +0x8EBF 0xFF7F +0x8EC0 0xFF80 +0x8EC1 0xFF81 +0x8EC2 0xFF82 +0x8EC3 0xFF83 +0x8EC4 0xFF84 +0x8EC5 0xFF85 +0x8EC6 0xFF86 +0x8EC7 0xFF87 +0x8EC8 0xFF88 +0x8EC9 0xFF89 +0x8ECA 0xFF8A +0x8ECB 0xFF8B +0x8ECC 0xFF8C +0x8ECD 0xFF8D +0x8ECE 0xFF8E +0x8ECF 0xFF8F +0x8ED0 0xFF90 +0x8ED1 0xFF91 +0x8ED2 0xFF92 +0x8ED3 0xFF93 +0x8ED4 0xFF94 +0x8ED5 0xFF95 +0x8ED6 0xFF96 +0x8ED7 0xFF97 +0x8ED8 0xFF98 +0x8ED9 0xFF99 +0x8EDA 0xFF9A +0x8EDB 0xFF9B +0x8EDC 0xFF9C +0x8EDD 0xFF9D +0x8EDE 0xFF9E +0x8EDF 0xFF9F +0x8FA2AF 0x02D8 +0x8FA2B0 0x02C7 +0x8FA2B1 0x00B8 +0x8FA2B2 0x02D9 +0x8FA2B3 0x02DD +0x8FA2B4 0x00AF +0x8FA2B5 0x02DB +0x8FA2B6 0x02DA +0x8FA2B7 0xFF5E +0x8FA2B8 0x0384 +0x8FA2B9 0x0385 +0x8FA2C2 0x00A1 +0x8FA2C3 0x00A6 +0x8FA2C4 0x00BF +0x8FA2EB 0x00BA +0x8FA2EC 0x00AA +0x8FA2ED 0x00A9 +0x8FA2EE 0x00AE +0x8FA2EF 0x2122 +0x8FA2F0 0x00A4 +0x8FA2F1 0x2116 +0x8FA6E1 0x0386 +0x8FA6E2 0x0388 +0x8FA6E3 0x0389 +0x8FA6E4 0x038A +0x8FA6E5 0x03AA +0x8FA6E7 0x038C +0x8FA6E9 0x038E +0x8FA6EA 0x03AB +0x8FA6EC 0x038F +0x8FA6F1 0x03AC +0x8FA6F2 0x03AD +0x8FA6F3 0x03AE +0x8FA6F4 0x03AF +0x8FA6F5 0x03CA +0x8FA6F6 0x0390 +0x8FA6F7 0x03CC +0x8FA6F8 0x03C2 +0x8FA6F9 0x03CD +0x8FA6FA 0x03CB +0x8FA6FB 0x03B0 +0x8FA6FC 0x03CE +0x8FA7C2 0x0402 +0x8FA7C3 0x0403 +0x8FA7C4 0x0404 +0x8FA7C5 0x0405 +0x8FA7C6 0x0406 +0x8FA7C7 0x0407 +0x8FA7C8 0x0408 +0x8FA7C9 0x0409 +0x8FA7CA 0x040A +0x8FA7CB 0x040B +0x8FA7CC 0x040C +0x8FA7CD 0x040E +0x8FA7CE 0x040F +0x8FA7F2 0x0452 +0x8FA7F3 0x0453 +0x8FA7F4 0x0454 +0x8FA7F5 0x0455 +0x8FA7F6 0x0456 +0x8FA7F7 0x0457 +0x8FA7F8 0x0458 +0x8FA7F9 0x0459 +0x8FA7FA 0x045A +0x8FA7FB 0x045B +0x8FA7FC 0x045C +0x8FA7FD 0x045E +0x8FA7FE 0x045F +0x8FA9A1 0x00C6 +0x8FA9A2 0x0110 +0x8FA9A4 0x0126 +0x8FA9A6 0x0132 +0x8FA9A8 0x0141 +0x8FA9A9 0x013F +0x8FA9AB 0x014A +0x8FA9AC 0x00D8 +0x8FA9AD 0x0152 +0x8FA9AF 0x0166 +0x8FA9B0 0x00DE +0x8FA9C1 0x00E6 +0x8FA9C2 0x0111 +0x8FA9C3 0x00F0 +0x8FA9C4 0x0127 +0x8FA9C5 0x0131 +0x8FA9C6 0x0133 +0x8FA9C7 0x0138 +0x8FA9C8 0x0142 +0x8FA9C9 0x0140 +0x8FA9CA 0x0149 +0x8FA9CB 0x014B +0x8FA9CC 0x00F8 +0x8FA9CD 0x0153 +0x8FA9CE 0x00DF +0x8FA9CF 0x0167 +0x8FA9D0 0x00FE +0x8FAAA1 0x00C1 +0x8FAAA2 0x00C0 +0x8FAAA3 0x00C4 +0x8FAAA4 0x00C2 +0x8FAAA5 0x0102 +0x8FAAA6 0x01CD +0x8FAAA7 0x0100 +0x8FAAA8 0x0104 +0x8FAAA9 0x00C5 +0x8FAAAA 0x00C3 +0x8FAAAB 0x0106 +0x8FAAAC 0x0108 +0x8FAAAD 0x010C +0x8FAAAE 0x00C7 +0x8FAAAF 0x010A +0x8FAAB0 0x010E +0x8FAAB1 0x00C9 +0x8FAAB2 0x00C8 +0x8FAAB3 0x00CB +0x8FAAB4 0x00CA +0x8FAAB5 0x011A +0x8FAAB6 0x0116 +0x8FAAB7 0x0112 +0x8FAAB8 0x0118 +0x8FAABA 0x011C +0x8FAABB 0x011E +0x8FAABC 0x0122 +0x8FAABD 0x0120 +0x8FAABE 0x0124 +0x8FAABF 0x00CD +0x8FAAC0 0x00CC +0x8FAAC1 0x00CF +0x8FAAC2 0x00CE +0x8FAAC3 0x01CF +0x8FAAC4 0x0130 +0x8FAAC5 0x012A +0x8FAAC6 0x012E +0x8FAAC7 0x0128 +0x8FAAC8 0x0134 +0x8FAAC9 0x0136 +0x8FAACA 0x0139 +0x8FAACB 0x013D +0x8FAACC 0x013B +0x8FAACD 0x0143 +0x8FAACE 0x0147 +0x8FAACF 0x0145 +0x8FAAD0 0x00D1 +0x8FAAD1 0x00D3 +0x8FAAD2 0x00D2 +0x8FAAD3 0x00D6 +0x8FAAD4 0x00D4 +0x8FAAD5 0x01D1 +0x8FAAD6 0x0150 +0x8FAAD7 0x014C +0x8FAAD8 0x00D5 +0x8FAAD9 0x0154 +0x8FAADA 0x0158 +0x8FAADB 0x0156 +0x8FAADC 0x015A +0x8FAADD 0x015C +0x8FAADE 0x0160 +0x8FAADF 0x015E +0x8FAAE0 0x0164 +0x8FAAE1 0x0162 +0x8FAAE2 0x00DA +0x8FAAE3 0x00D9 +0x8FAAE4 0x00DC +0x8FAAE5 0x00DB +0x8FAAE6 0x016C +0x8FAAE7 0x01D3 +0x8FAAE8 0x0170 +0x8FAAE9 0x016A +0x8FAAEA 0x0172 +0x8FAAEB 0x016E +0x8FAAEC 0x0168 +0x8FAAED 0x01D7 +0x8FAAEE 0x01DB +0x8FAAEF 0x01D9 +0x8FAAF0 0x01D5 +0x8FAAF1 0x0174 +0x8FAAF2 0x00DD +0x8FAAF3 0x0178 +0x8FAAF4 0x0176 +0x8FAAF5 0x0179 +0x8FAAF6 0x017D +0x8FAAF7 0x017B +0x8FABA1 0x00E1 +0x8FABA2 0x00E0 +0x8FABA3 0x00E4 +0x8FABA4 0x00E2 +0x8FABA5 0x0103 +0x8FABA6 0x01CE +0x8FABA7 0x0101 +0x8FABA8 0x0105 +0x8FABA9 0x00E5 +0x8FABAA 0x00E3 +0x8FABAB 0x0107 +0x8FABAC 0x0109 +0x8FABAD 0x010D +0x8FABAE 0x00E7 +0x8FABAF 0x010B +0x8FABB0 0x010F +0x8FABB1 0x00E9 +0x8FABB2 0x00E8 +0x8FABB3 0x00EB +0x8FABB4 0x00EA +0x8FABB5 0x011B +0x8FABB6 0x0117 +0x8FABB7 0x0113 +0x8FABB8 0x0119 +0x8FABB9 0x01F5 +0x8FABBA 0x011D +0x8FABBB 0x011F +0x8FABBD 0x0121 +0x8FABBE 0x0125 +0x8FABBF 0x00ED +0x8FABC0 0x00EC +0x8FABC1 0x00EF +0x8FABC2 0x00EE +0x8FABC3 0x01D0 +0x8FABC5 0x012B +0x8FABC6 0x012F +0x8FABC7 0x0129 +0x8FABC8 0x0135 +0x8FABC9 0x0137 +0x8FABCA 0x013A +0x8FABCB 0x013E +0x8FABCC 0x013C +0x8FABCD 0x0144 +0x8FABCE 0x0148 +0x8FABCF 0x0146 +0x8FABD0 0x00F1 +0x8FABD1 0x00F3 +0x8FABD2 0x00F2 +0x8FABD3 0x00F6 +0x8FABD4 0x00F4 +0x8FABD5 0x01D2 +0x8FABD6 0x0151 +0x8FABD7 0x014D +0x8FABD8 0x00F5 +0x8FABD9 0x0155 +0x8FABDA 0x0159 +0x8FABDB 0x0157 +0x8FABDC 0x015B +0x8FABDD 0x015D +0x8FABDE 0x0161 +0x8FABDF 0x015F +0x8FABE0 0x0165 +0x8FABE1 0x0163 +0x8FABE2 0x00FA +0x8FABE3 0x00F9 +0x8FABE4 0x00FC +0x8FABE5 0x00FB +0x8FABE6 0x016D +0x8FABE7 0x01D4 +0x8FABE8 0x0171 +0x8FABE9 0x016B +0x8FABEA 0x0173 +0x8FABEB 0x016F +0x8FABEC 0x0169 +0x8FABED 0x01D8 +0x8FABEE 0x01DC +0x8FABEF 0x01DA +0x8FABF0 0x01D6 +0x8FABF1 0x0175 +0x8FABF2 0x00FD +0x8FABF3 0x00FF +0x8FABF4 0x0177 +0x8FABF5 0x017A +0x8FABF6 0x017E +0x8FABF7 0x017C +0x8FB0A1 0x4E02 +0x8FB0A2 0x4E04 +0x8FB0A3 0x4E05 +0x8FB0A4 0x4E0C +0x8FB0A5 0x4E12 +0x8FB0A6 0x4E1F +0x8FB0A7 0x4E23 +0x8FB0A8 0x4E24 +0x8FB0A9 0x4E28 +0x8FB0AA 0x4E2B +0x8FB0AB 0x4E2E +0x8FB0AC 0x4E2F +0x8FB0AD 0x4E30 +0x8FB0AE 0x4E35 +0x8FB0AF 0x4E40 +0x8FB0B0 0x4E41 +0x8FB0B1 0x4E44 +0x8FB0B2 0x4E47 +0x8FB0B3 0x4E51 +0x8FB0B4 0x4E5A +0x8FB0B5 0x4E5C +0x8FB0B6 0x4E63 +0x8FB0B7 0x4E68 +0x8FB0B8 0x4E69 +0x8FB0B9 0x4E74 +0x8FB0BA 0x4E75 +0x8FB0BB 0x4E79 +0x8FB0BC 0x4E7F +0x8FB0BD 0x4E8D +0x8FB0BE 0x4E96 +0x8FB0BF 0x4E97 +0x8FB0C0 0x4E9D +0x8FB0C1 0x4EAF +0x8FB0C2 0x4EB9 +0x8FB0C3 0x4EC3 +0x8FB0C4 0x4ED0 +0x8FB0C5 0x4EDA +0x8FB0C6 0x4EDB +0x8FB0C7 0x4EE0 +0x8FB0C8 0x4EE1 +0x8FB0C9 0x4EE2 +0x8FB0CA 0x4EE8 +0x8FB0CB 0x4EEF +0x8FB0CC 0x4EF1 +0x8FB0CD 0x4EF3 +0x8FB0CE 0x4EF5 +0x8FB0CF 0x4EFD +0x8FB0D0 0x4EFE +0x8FB0D1 0x4EFF +0x8FB0D2 0x4F00 +0x8FB0D3 0x4F02 +0x8FB0D4 0x4F03 +0x8FB0D5 0x4F08 +0x8FB0D6 0x4F0B +0x8FB0D7 0x4F0C +0x8FB0D8 0x4F12 +0x8FB0D9 0x4F15 +0x8FB0DA 0x4F16 +0x8FB0DB 0x4F17 +0x8FB0DC 0x4F19 +0x8FB0DD 0x4F2E +0x8FB0DE 0x4F31 +0x8FB0DF 0x4F60 +0x8FB0E0 0x4F33 +0x8FB0E1 0x4F35 +0x8FB0E2 0x4F37 +0x8FB0E3 0x4F39 +0x8FB0E4 0x4F3B +0x8FB0E5 0x4F3E +0x8FB0E6 0x4F40 +0x8FB0E7 0x4F42 +0x8FB0E8 0x4F48 +0x8FB0E9 0x4F49 +0x8FB0EA 0x4F4B +0x8FB0EB 0x4F4C +0x8FB0EC 0x4F52 +0x8FB0ED 0x4F54 +0x8FB0EE 0x4F56 +0x8FB0EF 0x4F58 +0x8FB0F0 0x4F5F +0x8FB0F1 0x4F63 +0x8FB0F2 0x4F6A +0x8FB0F3 0x4F6C +0x8FB0F4 0x4F6E +0x8FB0F5 0x4F71 +0x8FB0F6 0x4F77 +0x8FB0F7 0x4F78 +0x8FB0F8 0x4F79 +0x8FB0F9 0x4F7A +0x8FB0FA 0x4F7D +0x8FB0FB 0x4F7E +0x8FB0FC 0x4F81 +0x8FB0FD 0x4F82 +0x8FB0FE 0x4F84 +0x8FB1A1 0x4F85 +0x8FB1A2 0x4F89 +0x8FB1A3 0x4F8A +0x8FB1A4 0x4F8C +0x8FB1A5 0x4F8E +0x8FB1A6 0x4F90 +0x8FB1A7 0x4F92 +0x8FB1A8 0x4F93 +0x8FB1A9 0x4F94 +0x8FB1AA 0x4F97 +0x8FB1AB 0x4F99 +0x8FB1AC 0x4F9A +0x8FB1AD 0x4F9E +0x8FB1AE 0x4F9F +0x8FB1AF 0x4FB2 +0x8FB1B0 0x4FB7 +0x8FB1B1 0x4FB9 +0x8FB1B2 0x4FBB +0x8FB1B3 0x4FBC +0x8FB1B4 0x4FBD +0x8FB1B5 0x4FBE +0x8FB1B6 0x4FC0 +0x8FB1B7 0x4FC1 +0x8FB1B8 0x4FC5 +0x8FB1B9 0x4FC6 +0x8FB1BA 0x4FC8 +0x8FB1BB 0x4FC9 +0x8FB1BC 0x4FCB +0x8FB1BD 0x4FCC +0x8FB1BE 0x4FCD +0x8FB1BF 0x4FCF +0x8FB1C0 0x4FD2 +0x8FB1C1 0x4FDC +0x8FB1C2 0x4FE0 +0x8FB1C3 0x4FE2 +0x8FB1C4 0x4FF0 +0x8FB1C5 0x4FF2 +0x8FB1C6 0x4FFC +0x8FB1C7 0x4FFD +0x8FB1C8 0x4FFF +0x8FB1C9 0x5000 +0x8FB1CA 0x5001 +0x8FB1CB 0x5004 +0x8FB1CC 0x5007 +0x8FB1CD 0x500A +0x8FB1CE 0x500C +0x8FB1CF 0x500E +0x8FB1D0 0x5010 +0x8FB1D1 0x5013 +0x8FB1D2 0x5017 +0x8FB1D3 0x5018 +0x8FB1D4 0x501B +0x8FB1D5 0x501C +0x8FB1D6 0x501D +0x8FB1D7 0x501E +0x8FB1D8 0x5022 +0x8FB1D9 0x5027 +0x8FB1DA 0x502E +0x8FB1DB 0x5030 +0x8FB1DC 0x5032 +0x8FB1DD 0x5033 +0x8FB1DE 0x5035 +0x8FB1DF 0x5040 +0x8FB1E0 0x5041 +0x8FB1E1 0x5042 +0x8FB1E2 0x5045 +0x8FB1E3 0x5046 +0x8FB1E4 0x504A +0x8FB1E5 0x504C +0x8FB1E6 0x504E +0x8FB1E7 0x5051 +0x8FB1E8 0x5052 +0x8FB1E9 0x5053 +0x8FB1EA 0x5057 +0x8FB1EB 0x5059 +0x8FB1EC 0x505F +0x8FB1ED 0x5060 +0x8FB1EE 0x5062 +0x8FB1EF 0x5063 +0x8FB1F0 0x5066 +0x8FB1F1 0x5067 +0x8FB1F2 0x506A +0x8FB1F3 0x506D +0x8FB1F4 0x5070 +0x8FB1F5 0x5071 +0x8FB1F6 0x503B +0x8FB1F7 0x5081 +0x8FB1F8 0x5083 +0x8FB1F9 0x5084 +0x8FB1FA 0x5086 +0x8FB1FB 0x508A +0x8FB1FC 0x508E +0x8FB1FD 0x508F +0x8FB1FE 0x5090 +0x8FB2A1 0x5092 +0x8FB2A2 0x5093 +0x8FB2A3 0x5094 +0x8FB2A4 0x5096 +0x8FB2A5 0x509B +0x8FB2A6 0x509C +0x8FB2A7 0x509E +0x8FB2A8 0x509F +0x8FB2A9 0x50A0 +0x8FB2AA 0x50A1 +0x8FB2AB 0x50A2 +0x8FB2AC 0x50AA +0x8FB2AD 0x50AF +0x8FB2AE 0x50B0 +0x8FB2AF 0x50B9 +0x8FB2B0 0x50BA +0x8FB2B1 0x50BD +0x8FB2B2 0x50C0 +0x8FB2B3 0x50C3 +0x8FB2B4 0x50C4 +0x8FB2B5 0x50C7 +0x8FB2B6 0x50CC +0x8FB2B7 0x50CE +0x8FB2B8 0x50D0 +0x8FB2B9 0x50D3 +0x8FB2BA 0x50D4 +0x8FB2BB 0x50D8 +0x8FB2BC 0x50DC +0x8FB2BD 0x50DD +0x8FB2BE 0x50DF +0x8FB2BF 0x50E2 +0x8FB2C0 0x50E4 +0x8FB2C1 0x50E6 +0x8FB2C2 0x50E8 +0x8FB2C3 0x50E9 +0x8FB2C4 0x50EF +0x8FB2C5 0x50F1 +0x8FB2C6 0x50F6 +0x8FB2C7 0x50FA +0x8FB2C8 0x50FE +0x8FB2C9 0x5103 +0x8FB2CA 0x5106 +0x8FB2CB 0x5107 +0x8FB2CC 0x5108 +0x8FB2CD 0x510B +0x8FB2CE 0x510C +0x8FB2CF 0x510D +0x8FB2D0 0x510E +0x8FB2D1 0x50F2 +0x8FB2D2 0x5110 +0x8FB2D3 0x5117 +0x8FB2D4 0x5119 +0x8FB2D5 0x511B +0x8FB2D6 0x511C +0x8FB2D7 0x511D +0x8FB2D8 0x511E +0x8FB2D9 0x5123 +0x8FB2DA 0x5127 +0x8FB2DB 0x5128 +0x8FB2DC 0x512C +0x8FB2DD 0x512D +0x8FB2DE 0x512F +0x8FB2DF 0x5131 +0x8FB2E0 0x5133 +0x8FB2E1 0x5134 +0x8FB2E2 0x5135 +0x8FB2E3 0x5138 +0x8FB2E4 0x5139 +0x8FB2E5 0x5142 +0x8FB2E6 0x514A +0x8FB2E7 0x514F +0x8FB2E8 0x5153 +0x8FB2E9 0x5155 +0x8FB2EA 0x5157 +0x8FB2EB 0x5158 +0x8FB2EC 0x515F +0x8FB2ED 0x5164 +0x8FB2EE 0x5166 +0x8FB2EF 0x517E +0x8FB2F0 0x5183 +0x8FB2F1 0x5184 +0x8FB2F2 0x518B +0x8FB2F3 0x518E +0x8FB2F4 0x5198 +0x8FB2F5 0x519D +0x8FB2F6 0x51A1 +0x8FB2F7 0x51A3 +0x8FB2F8 0x51AD +0x8FB2F9 0x51B8 +0x8FB2FA 0x51BA +0x8FB2FB 0x51BC +0x8FB2FC 0x51BE +0x8FB2FD 0x51BF +0x8FB2FE 0x51C2 +0x8FB3A1 0x51C8 +0x8FB3A2 0x51CF +0x8FB3A3 0x51D1 +0x8FB3A4 0x51D2 +0x8FB3A5 0x51D3 +0x8FB3A6 0x51D5 +0x8FB3A7 0x51D8 +0x8FB3A8 0x51DE +0x8FB3A9 0x51E2 +0x8FB3AA 0x51E5 +0x8FB3AB 0x51EE +0x8FB3AC 0x51F2 +0x8FB3AD 0x51F3 +0x8FB3AE 0x51F4 +0x8FB3AF 0x51F7 +0x8FB3B0 0x5201 +0x8FB3B1 0x5202 +0x8FB3B2 0x5205 +0x8FB3B3 0x5212 +0x8FB3B4 0x5213 +0x8FB3B5 0x5215 +0x8FB3B6 0x5216 +0x8FB3B7 0x5218 +0x8FB3B8 0x5222 +0x8FB3B9 0x5228 +0x8FB3BA 0x5231 +0x8FB3BB 0x5232 +0x8FB3BC 0x5235 +0x8FB3BD 0x523C +0x8FB3BE 0x5245 +0x8FB3BF 0x5249 +0x8FB3C0 0x5255 +0x8FB3C1 0x5257 +0x8FB3C2 0x5258 +0x8FB3C3 0x525A +0x8FB3C4 0x525C +0x8FB3C5 0x525F +0x8FB3C6 0x5260 +0x8FB3C7 0x5261 +0x8FB3C8 0x5266 +0x8FB3C9 0x526E +0x8FB3CA 0x5277 +0x8FB3CB 0x5278 +0x8FB3CC 0x5279 +0x8FB3CD 0x5280 +0x8FB3CE 0x5282 +0x8FB3CF 0x5285 +0x8FB3D0 0x528A +0x8FB3D1 0x528C +0x8FB3D2 0x5293 +0x8FB3D3 0x5295 +0x8FB3D4 0x5296 +0x8FB3D5 0x5297 +0x8FB3D6 0x5298 +0x8FB3D7 0x529A +0x8FB3D8 0x529C +0x8FB3D9 0x52A4 +0x8FB3DA 0x52A5 +0x8FB3DB 0x52A6 +0x8FB3DC 0x52A7 +0x8FB3DD 0x52AF +0x8FB3DE 0x52B0 +0x8FB3DF 0x52B6 +0x8FB3E0 0x52B7 +0x8FB3E1 0x52B8 +0x8FB3E2 0x52BA +0x8FB3E3 0x52BB +0x8FB3E4 0x52BD +0x8FB3E5 0x52C0 +0x8FB3E6 0x52C4 +0x8FB3E7 0x52C6 +0x8FB3E8 0x52C8 +0x8FB3E9 0x52CC +0x8FB3EA 0x52CF +0x8FB3EB 0x52D1 +0x8FB3EC 0x52D4 +0x8FB3ED 0x52D6 +0x8FB3EE 0x52DB +0x8FB3EF 0x52DC +0x8FB3F0 0x52E1 +0x8FB3F1 0x52E5 +0x8FB3F2 0x52E8 +0x8FB3F3 0x52E9 +0x8FB3F4 0x52EA +0x8FB3F5 0x52EC +0x8FB3F6 0x52F0 +0x8FB3F7 0x52F1 +0x8FB3F8 0x52F4 +0x8FB3F9 0x52F6 +0x8FB3FA 0x52F7 +0x8FB3FB 0x5300 +0x8FB3FC 0x5303 +0x8FB3FD 0x530A +0x8FB3FE 0x530B +0x8FB4A1 0x530C +0x8FB4A2 0x5311 +0x8FB4A3 0x5313 +0x8FB4A4 0x5318 +0x8FB4A5 0x531B +0x8FB4A6 0x531C +0x8FB4A7 0x531E +0x8FB4A8 0x531F +0x8FB4A9 0x5325 +0x8FB4AA 0x5327 +0x8FB4AB 0x5328 +0x8FB4AC 0x5329 +0x8FB4AD 0x532B +0x8FB4AE 0x532C +0x8FB4AF 0x532D +0x8FB4B0 0x5330 +0x8FB4B1 0x5332 +0x8FB4B2 0x5335 +0x8FB4B3 0x533C +0x8FB4B4 0x533D +0x8FB4B5 0x533E +0x8FB4B6 0x5342 +0x8FB4B7 0x534C +0x8FB4B8 0x534B +0x8FB4B9 0x5359 +0x8FB4BA 0x535B +0x8FB4BB 0x5361 +0x8FB4BC 0x5363 +0x8FB4BD 0x5365 +0x8FB4BE 0x536C +0x8FB4BF 0x536D +0x8FB4C0 0x5372 +0x8FB4C1 0x5379 +0x8FB4C2 0x537E +0x8FB4C3 0x5383 +0x8FB4C4 0x5387 +0x8FB4C5 0x5388 +0x8FB4C6 0x538E +0x8FB4C7 0x5393 +0x8FB4C8 0x5394 +0x8FB4C9 0x5399 +0x8FB4CA 0x539D +0x8FB4CB 0x53A1 +0x8FB4CC 0x53A4 +0x8FB4CD 0x53AA +0x8FB4CE 0x53AB +0x8FB4CF 0x53AF +0x8FB4D0 0x53B2 +0x8FB4D1 0x53B4 +0x8FB4D2 0x53B5 +0x8FB4D3 0x53B7 +0x8FB4D4 0x53B8 +0x8FB4D5 0x53BA +0x8FB4D6 0x53BD +0x8FB4D7 0x53C0 +0x8FB4D8 0x53C5 +0x8FB4D9 0x53CF +0x8FB4DA 0x53D2 +0x8FB4DB 0x53D3 +0x8FB4DC 0x53D5 +0x8FB4DD 0x53DA +0x8FB4DE 0x53DD +0x8FB4DF 0x53DE +0x8FB4E0 0x53E0 +0x8FB4E1 0x53E6 +0x8FB4E2 0x53E7 +0x8FB4E3 0x53F5 +0x8FB4E4 0x5402 +0x8FB4E5 0x5413 +0x8FB4E6 0x541A +0x8FB4E7 0x5421 +0x8FB4E8 0x5427 +0x8FB4E9 0x5428 +0x8FB4EA 0x542A +0x8FB4EB 0x542F +0x8FB4EC 0x5431 +0x8FB4ED 0x5434 +0x8FB4EE 0x5435 +0x8FB4EF 0x5443 +0x8FB4F0 0x5444 +0x8FB4F1 0x5447 +0x8FB4F2 0x544D +0x8FB4F3 0x544F +0x8FB4F4 0x545E +0x8FB4F5 0x5462 +0x8FB4F6 0x5464 +0x8FB4F7 0x5466 +0x8FB4F8 0x5467 +0x8FB4F9 0x5469 +0x8FB4FA 0x546B +0x8FB4FB 0x546D +0x8FB4FC 0x546E +0x8FB4FD 0x5474 +0x8FB4FE 0x547F +0x8FB5A1 0x5481 +0x8FB5A2 0x5483 +0x8FB5A3 0x5485 +0x8FB5A4 0x5488 +0x8FB5A5 0x5489 +0x8FB5A6 0x548D +0x8FB5A7 0x5491 +0x8FB5A8 0x5495 +0x8FB5A9 0x5496 +0x8FB5AA 0x549C +0x8FB5AB 0x549F +0x8FB5AC 0x54A1 +0x8FB5AD 0x54A6 +0x8FB5AE 0x54A7 +0x8FB5AF 0x54A9 +0x8FB5B0 0x54AA +0x8FB5B1 0x54AD +0x8FB5B2 0x54AE +0x8FB5B3 0x54B1 +0x8FB5B4 0x54B7 +0x8FB5B5 0x54B9 +0x8FB5B6 0x54BA +0x8FB5B7 0x54BB +0x8FB5B8 0x54BF +0x8FB5B9 0x54C6 +0x8FB5BA 0x54CA +0x8FB5BB 0x54CD +0x8FB5BC 0x54CE +0x8FB5BD 0x54E0 +0x8FB5BE 0x54EA +0x8FB5BF 0x54EC +0x8FB5C0 0x54EF +0x8FB5C1 0x54F6 +0x8FB5C2 0x54FC +0x8FB5C3 0x54FE +0x8FB5C4 0x54FF +0x8FB5C5 0x5500 +0x8FB5C6 0x5501 +0x8FB5C7 0x5505 +0x8FB5C8 0x5508 +0x8FB5C9 0x5509 +0x8FB5CA 0x550C +0x8FB5CB 0x550D +0x8FB5CC 0x550E +0x8FB5CD 0x5515 +0x8FB5CE 0x552A +0x8FB5CF 0x552B +0x8FB5D0 0x5532 +0x8FB5D1 0x5535 +0x8FB5D2 0x5536 +0x8FB5D3 0x553B +0x8FB5D4 0x553C +0x8FB5D5 0x553D +0x8FB5D6 0x5541 +0x8FB5D7 0x5547 +0x8FB5D8 0x5549 +0x8FB5D9 0x554A +0x8FB5DA 0x554D +0x8FB5DB 0x5550 +0x8FB5DC 0x5551 +0x8FB5DD 0x5558 +0x8FB5DE 0x555A +0x8FB5DF 0x555B +0x8FB5E0 0x555E +0x8FB5E1 0x5560 +0x8FB5E2 0x5561 +0x8FB5E3 0x5564 +0x8FB5E4 0x5566 +0x8FB5E5 0x557F +0x8FB5E6 0x5581 +0x8FB5E7 0x5582 +0x8FB5E8 0x5586 +0x8FB5E9 0x5588 +0x8FB5EA 0x558E +0x8FB5EB 0x558F +0x8FB5EC 0x5591 +0x8FB5ED 0x5592 +0x8FB5EE 0x5593 +0x8FB5EF 0x5594 +0x8FB5F0 0x5597 +0x8FB5F1 0x55A3 +0x8FB5F2 0x55A4 +0x8FB5F3 0x55AD +0x8FB5F4 0x55B2 +0x8FB5F5 0x55BF +0x8FB5F6 0x55C1 +0x8FB5F7 0x55C3 +0x8FB5F8 0x55C6 +0x8FB5F9 0x55C9 +0x8FB5FA 0x55CB +0x8FB5FB 0x55CC +0x8FB5FC 0x55CE +0x8FB5FD 0x55D1 +0x8FB5FE 0x55D2 +0x8FB6A1 0x55D3 +0x8FB6A2 0x55D7 +0x8FB6A3 0x55D8 +0x8FB6A4 0x55DB +0x8FB6A5 0x55DE +0x8FB6A6 0x55E2 +0x8FB6A7 0x55E9 +0x8FB6A8 0x55F6 +0x8FB6A9 0x55FF +0x8FB6AA 0x5605 +0x8FB6AB 0x5608 +0x8FB6AC 0x560A +0x8FB6AD 0x560D +0x8FB6AE 0x560E +0x8FB6AF 0x560F +0x8FB6B0 0x5610 +0x8FB6B1 0x5611 +0x8FB6B2 0x5612 +0x8FB6B3 0x5619 +0x8FB6B4 0x562C +0x8FB6B5 0x5630 +0x8FB6B6 0x5633 +0x8FB6B7 0x5635 +0x8FB6B8 0x5637 +0x8FB6B9 0x5639 +0x8FB6BA 0x563B +0x8FB6BB 0x563C +0x8FB6BC 0x563D +0x8FB6BD 0x563F +0x8FB6BE 0x5640 +0x8FB6BF 0x5641 +0x8FB6C0 0x5643 +0x8FB6C1 0x5644 +0x8FB6C2 0x5646 +0x8FB6C3 0x5649 +0x8FB6C4 0x564B +0x8FB6C5 0x564D +0x8FB6C6 0x564F +0x8FB6C7 0x5654 +0x8FB6C8 0x565E +0x8FB6C9 0x5660 +0x8FB6CA 0x5661 +0x8FB6CB 0x5662 +0x8FB6CC 0x5663 +0x8FB6CD 0x5666 +0x8FB6CE 0x5669 +0x8FB6CF 0x566D +0x8FB6D0 0x566F +0x8FB6D1 0x5671 +0x8FB6D2 0x5672 +0x8FB6D3 0x5675 +0x8FB6D4 0x5684 +0x8FB6D5 0x5685 +0x8FB6D6 0x5688 +0x8FB6D7 0x568B +0x8FB6D8 0x568C +0x8FB6D9 0x5695 +0x8FB6DA 0x5699 +0x8FB6DB 0x569A +0x8FB6DC 0x569D +0x8FB6DD 0x569E +0x8FB6DE 0x569F +0x8FB6DF 0x56A6 +0x8FB6E0 0x56A7 +0x8FB6E1 0x56A8 +0x8FB6E2 0x56A9 +0x8FB6E3 0x56AB +0x8FB6E4 0x56AC +0x8FB6E5 0x56AD +0x8FB6E6 0x56B1 +0x8FB6E7 0x56B3 +0x8FB6E8 0x56B7 +0x8FB6E9 0x56BE +0x8FB6EA 0x56C5 +0x8FB6EB 0x56C9 +0x8FB6EC 0x56CA +0x8FB6ED 0x56CB +0x8FB6EE 0x56CF +0x8FB6EF 0x56D0 +0x8FB6F0 0x56CC +0x8FB6F1 0x56CD +0x8FB6F2 0x56D9 +0x8FB6F3 0x56DC +0x8FB6F4 0x56DD +0x8FB6F5 0x56DF +0x8FB6F6 0x56E1 +0x8FB6F7 0x56E4 +0x8FB6F8 0x56E5 +0x8FB6F9 0x56E6 +0x8FB6FA 0x56E7 +0x8FB6FB 0x56E8 +0x8FB6FC 0x56F1 +0x8FB6FD 0x56EB +0x8FB6FE 0x56ED +0x8FB7A1 0x56F6 +0x8FB7A2 0x56F7 +0x8FB7A3 0x5701 +0x8FB7A4 0x5702 +0x8FB7A5 0x5707 +0x8FB7A6 0x570A +0x8FB7A7 0x570C +0x8FB7A8 0x5711 +0x8FB7A9 0x5715 +0x8FB7AA 0x571A +0x8FB7AB 0x571B +0x8FB7AC 0x571D +0x8FB7AD 0x5720 +0x8FB7AE 0x5722 +0x8FB7AF 0x5723 +0x8FB7B0 0x5724 +0x8FB7B1 0x5725 +0x8FB7B2 0x5729 +0x8FB7B3 0x572A +0x8FB7B4 0x572C +0x8FB7B5 0x572E +0x8FB7B6 0x572F +0x8FB7B7 0x5733 +0x8FB7B8 0x5734 +0x8FB7B9 0x573D +0x8FB7BA 0x573E +0x8FB7BB 0x573F +0x8FB7BC 0x5745 +0x8FB7BD 0x5746 +0x8FB7BE 0x574C +0x8FB7BF 0x574D +0x8FB7C0 0x5752 +0x8FB7C1 0x5762 +0x8FB7C2 0x5765 +0x8FB7C3 0x5767 +0x8FB7C4 0x5768 +0x8FB7C5 0x576B +0x8FB7C6 0x576D +0x8FB7C7 0x576E +0x8FB7C8 0x576F +0x8FB7C9 0x5770 +0x8FB7CA 0x5771 +0x8FB7CB 0x5773 +0x8FB7CC 0x5774 +0x8FB7CD 0x5775 +0x8FB7CE 0x5777 +0x8FB7CF 0x5779 +0x8FB7D0 0x577A +0x8FB7D1 0x577B +0x8FB7D2 0x577C +0x8FB7D3 0x577E +0x8FB7D4 0x5781 +0x8FB7D5 0x5783 +0x8FB7D6 0x578C +0x8FB7D7 0x5794 +0x8FB7D8 0x5797 +0x8FB7D9 0x5799 +0x8FB7DA 0x579A +0x8FB7DB 0x579C +0x8FB7DC 0x579D +0x8FB7DD 0x579E +0x8FB7DE 0x579F +0x8FB7DF 0x57A1 +0x8FB7E0 0x5795 +0x8FB7E1 0x57A7 +0x8FB7E2 0x57A8 +0x8FB7E3 0x57A9 +0x8FB7E4 0x57AC +0x8FB7E5 0x57B8 +0x8FB7E6 0x57BD +0x8FB7E7 0x57C7 +0x8FB7E8 0x57C8 +0x8FB7E9 0x57CC +0x8FB7EA 0x57CF +0x8FB7EB 0x57D5 +0x8FB7EC 0x57DD +0x8FB7ED 0x57DE +0x8FB7EE 0x57E4 +0x8FB7EF 0x57E6 +0x8FB7F0 0x57E7 +0x8FB7F1 0x57E9 +0x8FB7F2 0x57ED +0x8FB7F3 0x57F0 +0x8FB7F4 0x57F5 +0x8FB7F5 0x57F6 +0x8FB7F6 0x57F8 +0x8FB7F7 0x57FD +0x8FB7F8 0x57FE +0x8FB7F9 0x57FF +0x8FB7FA 0x5803 +0x8FB7FB 0x5804 +0x8FB7FC 0x5808 +0x8FB7FD 0x5809 +0x8FB7FE 0x57E1 +0x8FB8A1 0x580C +0x8FB8A2 0x580D +0x8FB8A3 0x581B +0x8FB8A4 0x581E +0x8FB8A5 0x581F +0x8FB8A6 0x5820 +0x8FB8A7 0x5826 +0x8FB8A8 0x5827 +0x8FB8A9 0x582D +0x8FB8AA 0x5832 +0x8FB8AB 0x5839 +0x8FB8AC 0x583F +0x8FB8AD 0x5849 +0x8FB8AE 0x584C +0x8FB8AF 0x584D +0x8FB8B0 0x584F +0x8FB8B1 0x5850 +0x8FB8B2 0x5855 +0x8FB8B3 0x585F +0x8FB8B4 0x5861 +0x8FB8B5 0x5864 +0x8FB8B6 0x5867 +0x8FB8B7 0x5868 +0x8FB8B8 0x5878 +0x8FB8B9 0x587C +0x8FB8BA 0x587F +0x8FB8BB 0x5880 +0x8FB8BC 0x5881 +0x8FB8BD 0x5887 +0x8FB8BE 0x5888 +0x8FB8BF 0x5889 +0x8FB8C0 0x588A +0x8FB8C1 0x588C +0x8FB8C2 0x588D +0x8FB8C3 0x588F +0x8FB8C4 0x5890 +0x8FB8C5 0x5894 +0x8FB8C6 0x5896 +0x8FB8C7 0x589D +0x8FB8C8 0x58A0 +0x8FB8C9 0x58A1 +0x8FB8CA 0x58A2 +0x8FB8CB 0x58A6 +0x8FB8CC 0x58A9 +0x8FB8CD 0x58B1 +0x8FB8CE 0x58B2 +0x8FB8CF 0x58C4 +0x8FB8D0 0x58BC +0x8FB8D1 0x58C2 +0x8FB8D2 0x58C8 +0x8FB8D3 0x58CD +0x8FB8D4 0x58CE +0x8FB8D5 0x58D0 +0x8FB8D6 0x58D2 +0x8FB8D7 0x58D4 +0x8FB8D8 0x58D6 +0x8FB8D9 0x58DA +0x8FB8DA 0x58DD +0x8FB8DB 0x58E1 +0x8FB8DC 0x58E2 +0x8FB8DD 0x58E9 +0x8FB8DE 0x58F3 +0x8FB8DF 0x5905 +0x8FB8E0 0x5906 +0x8FB8E1 0x590B +0x8FB8E2 0x590C +0x8FB8E3 0x5912 +0x8FB8E4 0x5913 +0x8FB8E5 0x5914 +0x8FB8E6 0x8641 +0x8FB8E7 0x591D +0x8FB8E8 0x5921 +0x8FB8E9 0x5923 +0x8FB8EA 0x5924 +0x8FB8EB 0x5928 +0x8FB8EC 0x592F +0x8FB8ED 0x5930 +0x8FB8EE 0x5933 +0x8FB8EF 0x5935 +0x8FB8F0 0x5936 +0x8FB8F1 0x593F +0x8FB8F2 0x5943 +0x8FB8F3 0x5946 +0x8FB8F4 0x5952 +0x8FB8F5 0x5953 +0x8FB8F6 0x5959 +0x8FB8F7 0x595B +0x8FB8F8 0x595D +0x8FB8F9 0x595E +0x8FB8FA 0x595F +0x8FB8FB 0x5961 +0x8FB8FC 0x5963 +0x8FB8FD 0x596B +0x8FB8FE 0x596D +0x8FB9A1 0x596F +0x8FB9A2 0x5972 +0x8FB9A3 0x5975 +0x8FB9A4 0x5976 +0x8FB9A5 0x5979 +0x8FB9A6 0x597B +0x8FB9A7 0x597C +0x8FB9A8 0x598B +0x8FB9A9 0x598C +0x8FB9AA 0x598E +0x8FB9AB 0x5992 +0x8FB9AC 0x5995 +0x8FB9AD 0x5997 +0x8FB9AE 0x599F +0x8FB9AF 0x59A4 +0x8FB9B0 0x59A7 +0x8FB9B1 0x59AD +0x8FB9B2 0x59AE +0x8FB9B3 0x59AF +0x8FB9B4 0x59B0 +0x8FB9B5 0x59B3 +0x8FB9B6 0x59B7 +0x8FB9B7 0x59BA +0x8FB9B8 0x59BC +0x8FB9B9 0x59C1 +0x8FB9BA 0x59C3 +0x8FB9BB 0x59C4 +0x8FB9BC 0x59C8 +0x8FB9BD 0x59CA +0x8FB9BE 0x59CD +0x8FB9BF 0x59D2 +0x8FB9C0 0x59DD +0x8FB9C1 0x59DE +0x8FB9C2 0x59DF +0x8FB9C3 0x59E3 +0x8FB9C4 0x59E4 +0x8FB9C5 0x59E7 +0x8FB9C6 0x59EE +0x8FB9C7 0x59EF +0x8FB9C8 0x59F1 +0x8FB9C9 0x59F2 +0x8FB9CA 0x59F4 +0x8FB9CB 0x59F7 +0x8FB9CC 0x5A00 +0x8FB9CD 0x5A04 +0x8FB9CE 0x5A0C +0x8FB9CF 0x5A0D +0x8FB9D0 0x5A0E +0x8FB9D1 0x5A12 +0x8FB9D2 0x5A13 +0x8FB9D3 0x5A1E +0x8FB9D4 0x5A23 +0x8FB9D5 0x5A24 +0x8FB9D6 0x5A27 +0x8FB9D7 0x5A28 +0x8FB9D8 0x5A2A +0x8FB9D9 0x5A2D +0x8FB9DA 0x5A30 +0x8FB9DB 0x5A44 +0x8FB9DC 0x5A45 +0x8FB9DD 0x5A47 +0x8FB9DE 0x5A48 +0x8FB9DF 0x5A4C +0x8FB9E0 0x5A50 +0x8FB9E1 0x5A55 +0x8FB9E2 0x5A5E +0x8FB9E3 0x5A63 +0x8FB9E4 0x5A65 +0x8FB9E5 0x5A67 +0x8FB9E6 0x5A6D +0x8FB9E7 0x5A77 +0x8FB9E8 0x5A7A +0x8FB9E9 0x5A7B +0x8FB9EA 0x5A7E +0x8FB9EB 0x5A8B +0x8FB9EC 0x5A90 +0x8FB9ED 0x5A93 +0x8FB9EE 0x5A96 +0x8FB9EF 0x5A99 +0x8FB9F0 0x5A9C +0x8FB9F1 0x5A9E +0x8FB9F2 0x5A9F +0x8FB9F3 0x5AA0 +0x8FB9F4 0x5AA2 +0x8FB9F5 0x5AA7 +0x8FB9F6 0x5AAC +0x8FB9F7 0x5AB1 +0x8FB9F8 0x5AB2 +0x8FB9F9 0x5AB3 +0x8FB9FA 0x5AB5 +0x8FB9FB 0x5AB8 +0x8FB9FC 0x5ABA +0x8FB9FD 0x5ABB +0x8FB9FE 0x5ABF +0x8FBAA1 0x5AC4 +0x8FBAA2 0x5AC6 +0x8FBAA3 0x5AC8 +0x8FBAA4 0x5ACF +0x8FBAA5 0x5ADA +0x8FBAA6 0x5ADC +0x8FBAA7 0x5AE0 +0x8FBAA8 0x5AE5 +0x8FBAA9 0x5AEA +0x8FBAAA 0x5AEE +0x8FBAAB 0x5AF5 +0x8FBAAC 0x5AF6 +0x8FBAAD 0x5AFD +0x8FBAAE 0x5B00 +0x8FBAAF 0x5B01 +0x8FBAB0 0x5B08 +0x8FBAB1 0x5B17 +0x8FBAB2 0x5B34 +0x8FBAB3 0x5B19 +0x8FBAB4 0x5B1B +0x8FBAB5 0x5B1D +0x8FBAB6 0x5B21 +0x8FBAB7 0x5B25 +0x8FBAB8 0x5B2D +0x8FBAB9 0x5B38 +0x8FBABA 0x5B41 +0x8FBABB 0x5B4B +0x8FBABC 0x5B4C +0x8FBABD 0x5B52 +0x8FBABE 0x5B56 +0x8FBABF 0x5B5E +0x8FBAC0 0x5B68 +0x8FBAC1 0x5B6E +0x8FBAC2 0x5B6F +0x8FBAC3 0x5B7C +0x8FBAC4 0x5B7D +0x8FBAC5 0x5B7E +0x8FBAC6 0x5B7F +0x8FBAC7 0x5B81 +0x8FBAC8 0x5B84 +0x8FBAC9 0x5B86 +0x8FBACA 0x5B8A +0x8FBACB 0x5B8E +0x8FBACC 0x5B90 +0x8FBACD 0x5B91 +0x8FBACE 0x5B93 +0x8FBACF 0x5B94 +0x8FBAD0 0x5B96 +0x8FBAD1 0x5BA8 +0x8FBAD2 0x5BA9 +0x8FBAD3 0x5BAC +0x8FBAD4 0x5BAD +0x8FBAD5 0x5BAF +0x8FBAD6 0x5BB1 +0x8FBAD7 0x5BB2 +0x8FBAD8 0x5BB7 +0x8FBAD9 0x5BBA +0x8FBADA 0x5BBC +0x8FBADB 0x5BC0 +0x8FBADC 0x5BC1 +0x8FBADD 0x5BCD +0x8FBADE 0x5BCF +0x8FBADF 0x5BD6 +0x8FBAE0 0x5BD7 +0x8FBAE1 0x5BD8 +0x8FBAE2 0x5BD9 +0x8FBAE3 0x5BDA +0x8FBAE4 0x5BE0 +0x8FBAE5 0x5BEF +0x8FBAE6 0x5BF1 +0x8FBAE7 0x5BF4 +0x8FBAE8 0x5BFD +0x8FBAE9 0x5C0C +0x8FBAEA 0x5C17 +0x8FBAEB 0x5C1E +0x8FBAEC 0x5C1F +0x8FBAED 0x5C23 +0x8FBAEE 0x5C26 +0x8FBAEF 0x5C29 +0x8FBAF0 0x5C2B +0x8FBAF1 0x5C2C +0x8FBAF2 0x5C2E +0x8FBAF3 0x5C30 +0x8FBAF4 0x5C32 +0x8FBAF5 0x5C35 +0x8FBAF6 0x5C36 +0x8FBAF7 0x5C59 +0x8FBAF8 0x5C5A +0x8FBAF9 0x5C5C +0x8FBAFA 0x5C62 +0x8FBAFB 0x5C63 +0x8FBAFC 0x5C67 +0x8FBAFD 0x5C68 +0x8FBAFE 0x5C69 +0x8FBBA1 0x5C6D +0x8FBBA2 0x5C70 +0x8FBBA3 0x5C74 +0x8FBBA4 0x5C75 +0x8FBBA5 0x5C7A +0x8FBBA6 0x5C7B +0x8FBBA7 0x5C7C +0x8FBBA8 0x5C7D +0x8FBBA9 0x5C87 +0x8FBBAA 0x5C88 +0x8FBBAB 0x5C8A +0x8FBBAC 0x5C8F +0x8FBBAD 0x5C92 +0x8FBBAE 0x5C9D +0x8FBBAF 0x5C9F +0x8FBBB0 0x5CA0 +0x8FBBB1 0x5CA2 +0x8FBBB2 0x5CA3 +0x8FBBB3 0x5CA6 +0x8FBBB4 0x5CAA +0x8FBBB5 0x5CB2 +0x8FBBB6 0x5CB4 +0x8FBBB7 0x5CB5 +0x8FBBB8 0x5CBA +0x8FBBB9 0x5CC9 +0x8FBBBA 0x5CCB +0x8FBBBB 0x5CD2 +0x8FBBBC 0x5CDD +0x8FBBBD 0x5CD7 +0x8FBBBE 0x5CEE +0x8FBBBF 0x5CF1 +0x8FBBC0 0x5CF2 +0x8FBBC1 0x5CF4 +0x8FBBC2 0x5D01 +0x8FBBC3 0x5D06 +0x8FBBC4 0x5D0D +0x8FBBC5 0x5D12 +0x8FBBC6 0x5D2B +0x8FBBC7 0x5D23 +0x8FBBC8 0x5D24 +0x8FBBC9 0x5D26 +0x8FBBCA 0x5D27 +0x8FBBCB 0x5D31 +0x8FBBCC 0x5D34 +0x8FBBCD 0x5D39 +0x8FBBCE 0x5D3D +0x8FBBCF 0x5D3F +0x8FBBD0 0x5D42 +0x8FBBD1 0x5D43 +0x8FBBD2 0x5D46 +0x8FBBD3 0x5D48 +0x8FBBD4 0x5D55 +0x8FBBD5 0x5D51 +0x8FBBD6 0x5D59 +0x8FBBD7 0x5D4A +0x8FBBD8 0x5D5F +0x8FBBD9 0x5D60 +0x8FBBDA 0x5D61 +0x8FBBDB 0x5D62 +0x8FBBDC 0x5D64 +0x8FBBDD 0x5D6A +0x8FBBDE 0x5D6D +0x8FBBDF 0x5D70 +0x8FBBE0 0x5D79 +0x8FBBE1 0x5D7A +0x8FBBE2 0x5D7E +0x8FBBE3 0x5D7F +0x8FBBE4 0x5D81 +0x8FBBE5 0x5D83 +0x8FBBE6 0x5D88 +0x8FBBE7 0x5D8A +0x8FBBE8 0x5D92 +0x8FBBE9 0x5D93 +0x8FBBEA 0x5D94 +0x8FBBEB 0x5D95 +0x8FBBEC 0x5D99 +0x8FBBED 0x5D9B +0x8FBBEE 0x5D9F +0x8FBBEF 0x5DA0 +0x8FBBF0 0x5DA7 +0x8FBBF1 0x5DAB +0x8FBBF2 0x5DB0 +0x8FBBF3 0x5DB4 +0x8FBBF4 0x5DB8 +0x8FBBF5 0x5DB9 +0x8FBBF6 0x5DC3 +0x8FBBF7 0x5DC7 +0x8FBBF8 0x5DCB +0x8FBBF9 0x5DD0 +0x8FBBFA 0x5DCE +0x8FBBFB 0x5DD8 +0x8FBBFC 0x5DD9 +0x8FBBFD 0x5DE0 +0x8FBBFE 0x5DE4 +0x8FBCA1 0x5DE9 +0x8FBCA2 0x5DF8 +0x8FBCA3 0x5DF9 +0x8FBCA4 0x5E00 +0x8FBCA5 0x5E07 +0x8FBCA6 0x5E0D +0x8FBCA7 0x5E12 +0x8FBCA8 0x5E14 +0x8FBCA9 0x5E15 +0x8FBCAA 0x5E18 +0x8FBCAB 0x5E1F +0x8FBCAC 0x5E20 +0x8FBCAD 0x5E2E +0x8FBCAE 0x5E28 +0x8FBCAF 0x5E32 +0x8FBCB0 0x5E35 +0x8FBCB1 0x5E3E +0x8FBCB2 0x5E4B +0x8FBCB3 0x5E50 +0x8FBCB4 0x5E49 +0x8FBCB5 0x5E51 +0x8FBCB6 0x5E56 +0x8FBCB7 0x5E58 +0x8FBCB8 0x5E5B +0x8FBCB9 0x5E5C +0x8FBCBA 0x5E5E +0x8FBCBB 0x5E68 +0x8FBCBC 0x5E6A +0x8FBCBD 0x5E6B +0x8FBCBE 0x5E6C +0x8FBCBF 0x5E6D +0x8FBCC0 0x5E6E +0x8FBCC1 0x5E70 +0x8FBCC2 0x5E80 +0x8FBCC3 0x5E8B +0x8FBCC4 0x5E8E +0x8FBCC5 0x5EA2 +0x8FBCC6 0x5EA4 +0x8FBCC7 0x5EA5 +0x8FBCC8 0x5EA8 +0x8FBCC9 0x5EAA +0x8FBCCA 0x5EAC +0x8FBCCB 0x5EB1 +0x8FBCCC 0x5EB3 +0x8FBCCD 0x5EBD +0x8FBCCE 0x5EBE +0x8FBCCF 0x5EBF +0x8FBCD0 0x5EC6 +0x8FBCD1 0x5ECC +0x8FBCD2 0x5ECB +0x8FBCD3 0x5ECE +0x8FBCD4 0x5ED1 +0x8FBCD5 0x5ED2 +0x8FBCD6 0x5ED4 +0x8FBCD7 0x5ED5 +0x8FBCD8 0x5EDC +0x8FBCD9 0x5EDE +0x8FBCDA 0x5EE5 +0x8FBCDB 0x5EEB +0x8FBCDC 0x5F02 +0x8FBCDD 0x5F06 +0x8FBCDE 0x5F07 +0x8FBCDF 0x5F08 +0x8FBCE0 0x5F0E +0x8FBCE1 0x5F19 +0x8FBCE2 0x5F1C +0x8FBCE3 0x5F1D +0x8FBCE4 0x5F21 +0x8FBCE5 0x5F22 +0x8FBCE6 0x5F23 +0x8FBCE7 0x5F24 +0x8FBCE8 0x5F28 +0x8FBCE9 0x5F2B +0x8FBCEA 0x5F2C +0x8FBCEB 0x5F2E +0x8FBCEC 0x5F30 +0x8FBCED 0x5F34 +0x8FBCEE 0x5F36 +0x8FBCEF 0x5F3B +0x8FBCF0 0x5F3D +0x8FBCF1 0x5F3F +0x8FBCF2 0x5F40 +0x8FBCF3 0x5F44 +0x8FBCF4 0x5F45 +0x8FBCF5 0x5F47 +0x8FBCF6 0x5F4D +0x8FBCF7 0x5F50 +0x8FBCF8 0x5F54 +0x8FBCF9 0x5F58 +0x8FBCFA 0x5F5B +0x8FBCFB 0x5F60 +0x8FBCFC 0x5F63 +0x8FBCFD 0x5F64 +0x8FBCFE 0x5F67 +0x8FBDA1 0x5F6F +0x8FBDA2 0x5F72 +0x8FBDA3 0x5F74 +0x8FBDA4 0x5F75 +0x8FBDA5 0x5F78 +0x8FBDA6 0x5F7A +0x8FBDA7 0x5F7D +0x8FBDA8 0x5F7E +0x8FBDA9 0x5F89 +0x8FBDAA 0x5F8D +0x8FBDAB 0x5F8F +0x8FBDAC 0x5F96 +0x8FBDAD 0x5F9C +0x8FBDAE 0x5F9D +0x8FBDAF 0x5FA2 +0x8FBDB0 0x5FA7 +0x8FBDB1 0x5FAB +0x8FBDB2 0x5FA4 +0x8FBDB3 0x5FAC +0x8FBDB4 0x5FAF +0x8FBDB5 0x5FB0 +0x8FBDB6 0x5FB1 +0x8FBDB7 0x5FB8 +0x8FBDB8 0x5FC4 +0x8FBDB9 0x5FC7 +0x8FBDBA 0x5FC8 +0x8FBDBB 0x5FC9 +0x8FBDBC 0x5FCB +0x8FBDBD 0x5FD0 +0x8FBDBE 0x5FD1 +0x8FBDBF 0x5FD2 +0x8FBDC0 0x5FD3 +0x8FBDC1 0x5FD4 +0x8FBDC2 0x5FDE +0x8FBDC3 0x5FE1 +0x8FBDC4 0x5FE2 +0x8FBDC5 0x5FE8 +0x8FBDC6 0x5FE9 +0x8FBDC7 0x5FEA +0x8FBDC8 0x5FEC +0x8FBDC9 0x5FED +0x8FBDCA 0x5FEE +0x8FBDCB 0x5FEF +0x8FBDCC 0x5FF2 +0x8FBDCD 0x5FF3 +0x8FBDCE 0x5FF6 +0x8FBDCF 0x5FFA +0x8FBDD0 0x5FFC +0x8FBDD1 0x6007 +0x8FBDD2 0x600A +0x8FBDD3 0x600D +0x8FBDD4 0x6013 +0x8FBDD5 0x6014 +0x8FBDD6 0x6017 +0x8FBDD7 0x6018 +0x8FBDD8 0x601A +0x8FBDD9 0x601F +0x8FBDDA 0x6024 +0x8FBDDB 0x602D +0x8FBDDC 0x6033 +0x8FBDDD 0x6035 +0x8FBDDE 0x6040 +0x8FBDDF 0x6047 +0x8FBDE0 0x6048 +0x8FBDE1 0x6049 +0x8FBDE2 0x604C +0x8FBDE3 0x6051 +0x8FBDE4 0x6054 +0x8FBDE5 0x6056 +0x8FBDE6 0x6057 +0x8FBDE7 0x605D +0x8FBDE8 0x6061 +0x8FBDE9 0x6067 +0x8FBDEA 0x6071 +0x8FBDEB 0x607E +0x8FBDEC 0x607F +0x8FBDED 0x6082 +0x8FBDEE 0x6086 +0x8FBDEF 0x6088 +0x8FBDF0 0x608A +0x8FBDF1 0x608E +0x8FBDF2 0x6091 +0x8FBDF3 0x6093 +0x8FBDF4 0x6095 +0x8FBDF5 0x6098 +0x8FBDF6 0x609D +0x8FBDF7 0x609E +0x8FBDF8 0x60A2 +0x8FBDF9 0x60A4 +0x8FBDFA 0x60A5 +0x8FBDFB 0x60A8 +0x8FBDFC 0x60B0 +0x8FBDFD 0x60B1 +0x8FBDFE 0x60B7 +0x8FBEA1 0x60BB +0x8FBEA2 0x60BE +0x8FBEA3 0x60C2 +0x8FBEA4 0x60C4 +0x8FBEA5 0x60C8 +0x8FBEA6 0x60C9 +0x8FBEA7 0x60CA +0x8FBEA8 0x60CB +0x8FBEA9 0x60CE +0x8FBEAA 0x60CF +0x8FBEAB 0x60D4 +0x8FBEAC 0x60D5 +0x8FBEAD 0x60D9 +0x8FBEAE 0x60DB +0x8FBEAF 0x60DD +0x8FBEB0 0x60DE +0x8FBEB1 0x60E2 +0x8FBEB2 0x60E5 +0x8FBEB3 0x60F2 +0x8FBEB4 0x60F5 +0x8FBEB5 0x60F8 +0x8FBEB6 0x60FC +0x8FBEB7 0x60FD +0x8FBEB8 0x6102 +0x8FBEB9 0x6107 +0x8FBEBA 0x610A +0x8FBEBB 0x610C +0x8FBEBC 0x6110 +0x8FBEBD 0x6111 +0x8FBEBE 0x6112 +0x8FBEBF 0x6113 +0x8FBEC0 0x6114 +0x8FBEC1 0x6116 +0x8FBEC2 0x6117 +0x8FBEC3 0x6119 +0x8FBEC4 0x611C +0x8FBEC5 0x611E +0x8FBEC6 0x6122 +0x8FBEC7 0x612A +0x8FBEC8 0x612B +0x8FBEC9 0x6130 +0x8FBECA 0x6131 +0x8FBECB 0x6135 +0x8FBECC 0x6136 +0x8FBECD 0x6137 +0x8FBECE 0x6139 +0x8FBECF 0x6141 +0x8FBED0 0x6145 +0x8FBED1 0x6146 +0x8FBED2 0x6149 +0x8FBED3 0x615E +0x8FBED4 0x6160 +0x8FBED5 0x616C +0x8FBED6 0x6172 +0x8FBED7 0x6178 +0x8FBED8 0x617B +0x8FBED9 0x617C +0x8FBEDA 0x617F +0x8FBEDB 0x6180 +0x8FBEDC 0x6181 +0x8FBEDD 0x6183 +0x8FBEDE 0x6184 +0x8FBEDF 0x618B +0x8FBEE0 0x618D +0x8FBEE1 0x6192 +0x8FBEE2 0x6193 +0x8FBEE3 0x6197 +0x8FBEE4 0x6198 +0x8FBEE5 0x619C +0x8FBEE6 0x619D +0x8FBEE7 0x619F +0x8FBEE8 0x61A0 +0x8FBEE9 0x61A5 +0x8FBEEA 0x61A8 +0x8FBEEB 0x61AA +0x8FBEEC 0x61AD +0x8FBEED 0x61B8 +0x8FBEEE 0x61B9 +0x8FBEEF 0x61BC +0x8FBEF0 0x61C0 +0x8FBEF1 0x61C1 +0x8FBEF2 0x61C2 +0x8FBEF3 0x61CE +0x8FBEF4 0x61CF +0x8FBEF5 0x61D5 +0x8FBEF6 0x61DC +0x8FBEF7 0x61DD +0x8FBEF8 0x61DE +0x8FBEF9 0x61DF +0x8FBEFA 0x61E1 +0x8FBEFB 0x61E2 +0x8FBEFC 0x61E7 +0x8FBEFD 0x61E9 +0x8FBEFE 0x61E5 +0x8FBFA1 0x61EC +0x8FBFA2 0x61ED +0x8FBFA3 0x61EF +0x8FBFA4 0x6201 +0x8FBFA5 0x6203 +0x8FBFA6 0x6204 +0x8FBFA7 0x6207 +0x8FBFA8 0x6213 +0x8FBFA9 0x6215 +0x8FBFAA 0x621C +0x8FBFAB 0x6220 +0x8FBFAC 0x6222 +0x8FBFAD 0x6223 +0x8FBFAE 0x6227 +0x8FBFAF 0x6229 +0x8FBFB0 0x622B +0x8FBFB1 0x6239 +0x8FBFB2 0x623D +0x8FBFB3 0x6242 +0x8FBFB4 0x6243 +0x8FBFB5 0x6244 +0x8FBFB6 0x6246 +0x8FBFB7 0x624C +0x8FBFB8 0x6250 +0x8FBFB9 0x6251 +0x8FBFBA 0x6252 +0x8FBFBB 0x6254 +0x8FBFBC 0x6256 +0x8FBFBD 0x625A +0x8FBFBE 0x625C +0x8FBFBF 0x6264 +0x8FBFC0 0x626D +0x8FBFC1 0x626F +0x8FBFC2 0x6273 +0x8FBFC3 0x627A +0x8FBFC4 0x627D +0x8FBFC5 0x628D +0x8FBFC6 0x628E +0x8FBFC7 0x628F +0x8FBFC8 0x6290 +0x8FBFC9 0x62A6 +0x8FBFCA 0x62A8 +0x8FBFCB 0x62B3 +0x8FBFCC 0x62B6 +0x8FBFCD 0x62B7 +0x8FBFCE 0x62BA +0x8FBFCF 0x62BE +0x8FBFD0 0x62BF +0x8FBFD1 0x62C4 +0x8FBFD2 0x62CE +0x8FBFD3 0x62D5 +0x8FBFD4 0x62D6 +0x8FBFD5 0x62DA +0x8FBFD6 0x62EA +0x8FBFD7 0x62F2 +0x8FBFD8 0x62F4 +0x8FBFD9 0x62FC +0x8FBFDA 0x62FD +0x8FBFDB 0x6303 +0x8FBFDC 0x6304 +0x8FBFDD 0x630A +0x8FBFDE 0x630B +0x8FBFDF 0x630D +0x8FBFE0 0x6310 +0x8FBFE1 0x6313 +0x8FBFE2 0x6316 +0x8FBFE3 0x6318 +0x8FBFE4 0x6329 +0x8FBFE5 0x632A +0x8FBFE6 0x632D +0x8FBFE7 0x6335 +0x8FBFE8 0x6336 +0x8FBFE9 0x6339 +0x8FBFEA 0x633C +0x8FBFEB 0x6341 +0x8FBFEC 0x6342 +0x8FBFED 0x6343 +0x8FBFEE 0x6344 +0x8FBFEF 0x6346 +0x8FBFF0 0x634A +0x8FBFF1 0x634B +0x8FBFF2 0x634E +0x8FBFF3 0x6352 +0x8FBFF4 0x6353 +0x8FBFF5 0x6354 +0x8FBFF6 0x6358 +0x8FBFF7 0x635B +0x8FBFF8 0x6365 +0x8FBFF9 0x6366 +0x8FBFFA 0x636C +0x8FBFFB 0x636D +0x8FBFFC 0x6371 +0x8FBFFD 0x6374 +0x8FBFFE 0x6375 +0x8FC0A1 0x6378 +0x8FC0A2 0x637C +0x8FC0A3 0x637D +0x8FC0A4 0x637F +0x8FC0A5 0x6382 +0x8FC0A6 0x6384 +0x8FC0A7 0x6387 +0x8FC0A8 0x638A +0x8FC0A9 0x6390 +0x8FC0AA 0x6394 +0x8FC0AB 0x6395 +0x8FC0AC 0x6399 +0x8FC0AD 0x639A +0x8FC0AE 0x639E +0x8FC0AF 0x63A4 +0x8FC0B0 0x63A6 +0x8FC0B1 0x63AD +0x8FC0B2 0x63AE +0x8FC0B3 0x63AF +0x8FC0B4 0x63BD +0x8FC0B5 0x63C1 +0x8FC0B6 0x63C5 +0x8FC0B7 0x63C8 +0x8FC0B8 0x63CE +0x8FC0B9 0x63D1 +0x8FC0BA 0x63D3 +0x8FC0BB 0x63D4 +0x8FC0BC 0x63D5 +0x8FC0BD 0x63DC +0x8FC0BE 0x63E0 +0x8FC0BF 0x63E5 +0x8FC0C0 0x63EA +0x8FC0C1 0x63EC +0x8FC0C2 0x63F2 +0x8FC0C3 0x63F3 +0x8FC0C4 0x63F5 +0x8FC0C5 0x63F8 +0x8FC0C6 0x63F9 +0x8FC0C7 0x6409 +0x8FC0C8 0x640A +0x8FC0C9 0x6410 +0x8FC0CA 0x6412 +0x8FC0CB 0x6414 +0x8FC0CC 0x6418 +0x8FC0CD 0x641E +0x8FC0CE 0x6420 +0x8FC0CF 0x6422 +0x8FC0D0 0x6424 +0x8FC0D1 0x6425 +0x8FC0D2 0x6429 +0x8FC0D3 0x642A +0x8FC0D4 0x642F +0x8FC0D5 0x6430 +0x8FC0D6 0x6435 +0x8FC0D7 0x643D +0x8FC0D8 0x643F +0x8FC0D9 0x644B +0x8FC0DA 0x644F +0x8FC0DB 0x6451 +0x8FC0DC 0x6452 +0x8FC0DD 0x6453 +0x8FC0DE 0x6454 +0x8FC0DF 0x645A +0x8FC0E0 0x645B +0x8FC0E1 0x645C +0x8FC0E2 0x645D +0x8FC0E3 0x645F +0x8FC0E4 0x6460 +0x8FC0E5 0x6461 +0x8FC0E6 0x6463 +0x8FC0E7 0x646D +0x8FC0E8 0x6473 +0x8FC0E9 0x6474 +0x8FC0EA 0x647B +0x8FC0EB 0x647D +0x8FC0EC 0x6485 +0x8FC0ED 0x6487 +0x8FC0EE 0x648F +0x8FC0EF 0x6490 +0x8FC0F0 0x6491 +0x8FC0F1 0x6498 +0x8FC0F2 0x6499 +0x8FC0F3 0x649B +0x8FC0F4 0x649D +0x8FC0F5 0x649F +0x8FC0F6 0x64A1 +0x8FC0F7 0x64A3 +0x8FC0F8 0x64A6 +0x8FC0F9 0x64A8 +0x8FC0FA 0x64AC +0x8FC0FB 0x64B3 +0x8FC0FC 0x64BD +0x8FC0FD 0x64BE +0x8FC0FE 0x64BF +0x8FC1A1 0x64C4 +0x8FC1A2 0x64C9 +0x8FC1A3 0x64CA +0x8FC1A4 0x64CB +0x8FC1A5 0x64CC +0x8FC1A6 0x64CE +0x8FC1A7 0x64D0 +0x8FC1A8 0x64D1 +0x8FC1A9 0x64D5 +0x8FC1AA 0x64D7 +0x8FC1AB 0x64E4 +0x8FC1AC 0x64E5 +0x8FC1AD 0x64E9 +0x8FC1AE 0x64EA +0x8FC1AF 0x64ED +0x8FC1B0 0x64F0 +0x8FC1B1 0x64F5 +0x8FC1B2 0x64F7 +0x8FC1B3 0x64FB +0x8FC1B4 0x64FF +0x8FC1B5 0x6501 +0x8FC1B6 0x6504 +0x8FC1B7 0x6508 +0x8FC1B8 0x6509 +0x8FC1B9 0x650A +0x8FC1BA 0x650F +0x8FC1BB 0x6513 +0x8FC1BC 0x6514 +0x8FC1BD 0x6516 +0x8FC1BE 0x6519 +0x8FC1BF 0x651B +0x8FC1C0 0x651E +0x8FC1C1 0x651F +0x8FC1C2 0x6522 +0x8FC1C3 0x6526 +0x8FC1C4 0x6529 +0x8FC1C5 0x652E +0x8FC1C6 0x6531 +0x8FC1C7 0x653A +0x8FC1C8 0x653C +0x8FC1C9 0x653D +0x8FC1CA 0x6543 +0x8FC1CB 0x6547 +0x8FC1CC 0x6549 +0x8FC1CD 0x6550 +0x8FC1CE 0x6552 +0x8FC1CF 0x6554 +0x8FC1D0 0x655F +0x8FC1D1 0x6560 +0x8FC1D2 0x6567 +0x8FC1D3 0x656B +0x8FC1D4 0x657A +0x8FC1D5 0x657D +0x8FC1D6 0x6581 +0x8FC1D7 0x6585 +0x8FC1D8 0x658A +0x8FC1D9 0x6592 +0x8FC1DA 0x6595 +0x8FC1DB 0x6598 +0x8FC1DC 0x659D +0x8FC1DD 0x65A0 +0x8FC1DE 0x65A3 +0x8FC1DF 0x65A6 +0x8FC1E0 0x65AE +0x8FC1E1 0x65B2 +0x8FC1E2 0x65B3 +0x8FC1E3 0x65B4 +0x8FC1E4 0x65BF +0x8FC1E5 0x65C2 +0x8FC1E6 0x65C8 +0x8FC1E7 0x65C9 +0x8FC1E8 0x65CE +0x8FC1E9 0x65D0 +0x8FC1EA 0x65D4 +0x8FC1EB 0x65D6 +0x8FC1EC 0x65D8 +0x8FC1ED 0x65DF +0x8FC1EE 0x65F0 +0x8FC1EF 0x65F2 +0x8FC1F0 0x65F4 +0x8FC1F1 0x65F5 +0x8FC1F2 0x65F9 +0x8FC1F3 0x65FE +0x8FC1F4 0x65FF +0x8FC1F5 0x6600 +0x8FC1F6 0x6604 +0x8FC1F7 0x6608 +0x8FC1F8 0x6609 +0x8FC1F9 0x660D +0x8FC1FA 0x6611 +0x8FC1FB 0x6612 +0x8FC1FC 0x6615 +0x8FC1FD 0x6616 +0x8FC1FE 0x661D +0x8FC2A1 0x661E +0x8FC2A2 0x6621 +0x8FC2A3 0x6622 +0x8FC2A4 0x6623 +0x8FC2A5 0x6624 +0x8FC2A6 0x6626 +0x8FC2A7 0x6629 +0x8FC2A8 0x662A +0x8FC2A9 0x662B +0x8FC2AA 0x662C +0x8FC2AB 0x662E +0x8FC2AC 0x6630 +0x8FC2AD 0x6631 +0x8FC2AE 0x6633 +0x8FC2AF 0x6639 +0x8FC2B0 0x6637 +0x8FC2B1 0x6640 +0x8FC2B2 0x6645 +0x8FC2B3 0x6646 +0x8FC2B4 0x664A +0x8FC2B5 0x664C +0x8FC2B6 0x6651 +0x8FC2B7 0x664E +0x8FC2B8 0x6657 +0x8FC2B9 0x6658 +0x8FC2BA 0x6659 +0x8FC2BB 0x665B +0x8FC2BC 0x665C +0x8FC2BD 0x6660 +0x8FC2BE 0x6661 +0x8FC2BF 0x66FB +0x8FC2C0 0x666A +0x8FC2C1 0x666B +0x8FC2C2 0x666C +0x8FC2C3 0x667E +0x8FC2C4 0x6673 +0x8FC2C5 0x6675 +0x8FC2C6 0x667F +0x8FC2C7 0x6677 +0x8FC2C8 0x6678 +0x8FC2C9 0x6679 +0x8FC2CA 0x667B +0x8FC2CB 0x6680 +0x8FC2CC 0x667C +0x8FC2CD 0x668B +0x8FC2CE 0x668C +0x8FC2CF 0x668D +0x8FC2D0 0x6690 +0x8FC2D1 0x6692 +0x8FC2D2 0x6699 +0x8FC2D3 0x669A +0x8FC2D4 0x669B +0x8FC2D5 0x669C +0x8FC2D6 0x669F +0x8FC2D7 0x66A0 +0x8FC2D8 0x66A4 +0x8FC2D9 0x66AD +0x8FC2DA 0x66B1 +0x8FC2DB 0x66B2 +0x8FC2DC 0x66B5 +0x8FC2DD 0x66BB +0x8FC2DE 0x66BF +0x8FC2DF 0x66C0 +0x8FC2E0 0x66C2 +0x8FC2E1 0x66C3 +0x8FC2E2 0x66C8 +0x8FC2E3 0x66CC +0x8FC2E4 0x66CE +0x8FC2E5 0x66CF +0x8FC2E6 0x66D4 +0x8FC2E7 0x66DB +0x8FC2E8 0x66DF +0x8FC2E9 0x66E8 +0x8FC2EA 0x66EB +0x8FC2EB 0x66EC +0x8FC2EC 0x66EE +0x8FC2ED 0x66FA +0x8FC2EE 0x6705 +0x8FC2EF 0x6707 +0x8FC2F0 0x670E +0x8FC2F1 0x6713 +0x8FC2F2 0x6719 +0x8FC2F3 0x671C +0x8FC2F4 0x6720 +0x8FC2F5 0x6722 +0x8FC2F6 0x6733 +0x8FC2F7 0x673E +0x8FC2F8 0x6745 +0x8FC2F9 0x6747 +0x8FC2FA 0x6748 +0x8FC2FB 0x674C +0x8FC2FC 0x6754 +0x8FC2FD 0x6755 +0x8FC2FE 0x675D +0x8FC3A1 0x6766 +0x8FC3A2 0x676C +0x8FC3A3 0x676E +0x8FC3A4 0x6774 +0x8FC3A5 0x6776 +0x8FC3A6 0x677B +0x8FC3A7 0x6781 +0x8FC3A8 0x6784 +0x8FC3A9 0x678E +0x8FC3AA 0x678F +0x8FC3AB 0x6791 +0x8FC3AC 0x6793 +0x8FC3AD 0x6796 +0x8FC3AE 0x6798 +0x8FC3AF 0x6799 +0x8FC3B0 0x679B +0x8FC3B1 0x67B0 +0x8FC3B2 0x67B1 +0x8FC3B3 0x67B2 +0x8FC3B4 0x67B5 +0x8FC3B5 0x67BB +0x8FC3B6 0x67BC +0x8FC3B7 0x67BD +0x8FC3B8 0x67F9 +0x8FC3B9 0x67C0 +0x8FC3BA 0x67C2 +0x8FC3BB 0x67C3 +0x8FC3BC 0x67C5 +0x8FC3BD 0x67C8 +0x8FC3BE 0x67C9 +0x8FC3BF 0x67D2 +0x8FC3C0 0x67D7 +0x8FC3C1 0x67D9 +0x8FC3C2 0x67DC +0x8FC3C3 0x67E1 +0x8FC3C4 0x67E6 +0x8FC3C5 0x67F0 +0x8FC3C6 0x67F2 +0x8FC3C7 0x67F6 +0x8FC3C8 0x67F7 +0x8FC3C9 0x6852 +0x8FC3CA 0x6814 +0x8FC3CB 0x6819 +0x8FC3CC 0x681D +0x8FC3CD 0x681F +0x8FC3CE 0x6828 +0x8FC3CF 0x6827 +0x8FC3D0 0x682C +0x8FC3D1 0x682D +0x8FC3D2 0x682F +0x8FC3D3 0x6830 +0x8FC3D4 0x6831 +0x8FC3D5 0x6833 +0x8FC3D6 0x683B +0x8FC3D7 0x683F +0x8FC3D8 0x6844 +0x8FC3D9 0x6845 +0x8FC3DA 0x684A +0x8FC3DB 0x684C +0x8FC3DC 0x6855 +0x8FC3DD 0x6857 +0x8FC3DE 0x6858 +0x8FC3DF 0x685B +0x8FC3E0 0x686B +0x8FC3E1 0x686E +0x8FC3E2 0x686F +0x8FC3E3 0x6870 +0x8FC3E4 0x6871 +0x8FC3E5 0x6872 +0x8FC3E6 0x6875 +0x8FC3E7 0x6879 +0x8FC3E8 0x687A +0x8FC3E9 0x687B +0x8FC3EA 0x687C +0x8FC3EB 0x6882 +0x8FC3EC 0x6884 +0x8FC3ED 0x6886 +0x8FC3EE 0x6888 +0x8FC3EF 0x6896 +0x8FC3F0 0x6898 +0x8FC3F1 0x689A +0x8FC3F2 0x689C +0x8FC3F3 0x68A1 +0x8FC3F4 0x68A3 +0x8FC3F5 0x68A5 +0x8FC3F6 0x68A9 +0x8FC3F7 0x68AA +0x8FC3F8 0x68AE +0x8FC3F9 0x68B2 +0x8FC3FA 0x68BB +0x8FC3FB 0x68C5 +0x8FC3FC 0x68C8 +0x8FC3FD 0x68CC +0x8FC3FE 0x68CF +0x8FC4A1 0x68D0 +0x8FC4A2 0x68D1 +0x8FC4A3 0x68D3 +0x8FC4A4 0x68D6 +0x8FC4A5 0x68D9 +0x8FC4A6 0x68DC +0x8FC4A7 0x68DD +0x8FC4A8 0x68E5 +0x8FC4A9 0x68E8 +0x8FC4AA 0x68EA +0x8FC4AB 0x68EB +0x8FC4AC 0x68EC +0x8FC4AD 0x68ED +0x8FC4AE 0x68F0 +0x8FC4AF 0x68F1 +0x8FC4B0 0x68F5 +0x8FC4B1 0x68F6 +0x8FC4B2 0x68FB +0x8FC4B3 0x68FC +0x8FC4B4 0x68FD +0x8FC4B5 0x6906 +0x8FC4B6 0x6909 +0x8FC4B7 0x690A +0x8FC4B8 0x6910 +0x8FC4B9 0x6911 +0x8FC4BA 0x6913 +0x8FC4BB 0x6916 +0x8FC4BC 0x6917 +0x8FC4BD 0x6931 +0x8FC4BE 0x6933 +0x8FC4BF 0x6935 +0x8FC4C0 0x6938 +0x8FC4C1 0x693B +0x8FC4C2 0x6942 +0x8FC4C3 0x6945 +0x8FC4C4 0x6949 +0x8FC4C5 0x694E +0x8FC4C6 0x6957 +0x8FC4C7 0x695B +0x8FC4C8 0x6963 +0x8FC4C9 0x6964 +0x8FC4CA 0x6965 +0x8FC4CB 0x6966 +0x8FC4CC 0x6968 +0x8FC4CD 0x6969 +0x8FC4CE 0x696C +0x8FC4CF 0x6970 +0x8FC4D0 0x6971 +0x8FC4D1 0x6972 +0x8FC4D2 0x697A +0x8FC4D3 0x697B +0x8FC4D4 0x697F +0x8FC4D5 0x6980 +0x8FC4D6 0x698D +0x8FC4D7 0x6992 +0x8FC4D8 0x6996 +0x8FC4D9 0x6998 +0x8FC4DA 0x69A1 +0x8FC4DB 0x69A5 +0x8FC4DC 0x69A6 +0x8FC4DD 0x69A8 +0x8FC4DE 0x69AB +0x8FC4DF 0x69AD +0x8FC4E0 0x69AF +0x8FC4E1 0x69B7 +0x8FC4E2 0x69B8 +0x8FC4E3 0x69BA +0x8FC4E4 0x69BC +0x8FC4E5 0x69C5 +0x8FC4E6 0x69C8 +0x8FC4E7 0x69D1 +0x8FC4E8 0x69D6 +0x8FC4E9 0x69D7 +0x8FC4EA 0x69E2 +0x8FC4EB 0x69E5 +0x8FC4EC 0x69EE +0x8FC4ED 0x69EF +0x8FC4EE 0x69F1 +0x8FC4EF 0x69F3 +0x8FC4F0 0x69F5 +0x8FC4F1 0x69FE +0x8FC4F2 0x6A00 +0x8FC4F3 0x6A01 +0x8FC4F4 0x6A03 +0x8FC4F5 0x6A0F +0x8FC4F6 0x6A11 +0x8FC4F7 0x6A15 +0x8FC4F8 0x6A1A +0x8FC4F9 0x6A1D +0x8FC4FA 0x6A20 +0x8FC4FB 0x6A24 +0x8FC4FC 0x6A28 +0x8FC4FD 0x6A30 +0x8FC4FE 0x6A32 +0x8FC5A1 0x6A34 +0x8FC5A2 0x6A37 +0x8FC5A3 0x6A3B +0x8FC5A4 0x6A3E +0x8FC5A5 0x6A3F +0x8FC5A6 0x6A45 +0x8FC5A7 0x6A46 +0x8FC5A8 0x6A49 +0x8FC5A9 0x6A4A +0x8FC5AA 0x6A4E +0x8FC5AB 0x6A50 +0x8FC5AC 0x6A51 +0x8FC5AD 0x6A52 +0x8FC5AE 0x6A55 +0x8FC5AF 0x6A56 +0x8FC5B0 0x6A5B +0x8FC5B1 0x6A64 +0x8FC5B2 0x6A67 +0x8FC5B3 0x6A6A +0x8FC5B4 0x6A71 +0x8FC5B5 0x6A73 +0x8FC5B6 0x6A7E +0x8FC5B7 0x6A81 +0x8FC5B8 0x6A83 +0x8FC5B9 0x6A86 +0x8FC5BA 0x6A87 +0x8FC5BB 0x6A89 +0x8FC5BC 0x6A8B +0x8FC5BD 0x6A91 +0x8FC5BE 0x6A9B +0x8FC5BF 0x6A9D +0x8FC5C0 0x6A9E +0x8FC5C1 0x6A9F +0x8FC5C2 0x6AA5 +0x8FC5C3 0x6AAB +0x8FC5C4 0x6AAF +0x8FC5C5 0x6AB0 +0x8FC5C6 0x6AB1 +0x8FC5C7 0x6AB4 +0x8FC5C8 0x6ABD +0x8FC5C9 0x6ABE +0x8FC5CA 0x6ABF +0x8FC5CB 0x6AC6 +0x8FC5CC 0x6AC9 +0x8FC5CD 0x6AC8 +0x8FC5CE 0x6ACC +0x8FC5CF 0x6AD0 +0x8FC5D0 0x6AD4 +0x8FC5D1 0x6AD5 +0x8FC5D2 0x6AD6 +0x8FC5D3 0x6ADC +0x8FC5D4 0x6ADD +0x8FC5D5 0x6AE4 +0x8FC5D6 0x6AE7 +0x8FC5D7 0x6AEC +0x8FC5D8 0x6AF0 +0x8FC5D9 0x6AF1 +0x8FC5DA 0x6AF2 +0x8FC5DB 0x6AFC +0x8FC5DC 0x6AFD +0x8FC5DD 0x6B02 +0x8FC5DE 0x6B03 +0x8FC5DF 0x6B06 +0x8FC5E0 0x6B07 +0x8FC5E1 0x6B09 +0x8FC5E2 0x6B0F +0x8FC5E3 0x6B10 +0x8FC5E4 0x6B11 +0x8FC5E5 0x6B17 +0x8FC5E6 0x6B1B +0x8FC5E7 0x6B1E +0x8FC5E8 0x6B24 +0x8FC5E9 0x6B28 +0x8FC5EA 0x6B2B +0x8FC5EB 0x6B2C +0x8FC5EC 0x6B2F +0x8FC5ED 0x6B35 +0x8FC5EE 0x6B36 +0x8FC5EF 0x6B3B +0x8FC5F0 0x6B3F +0x8FC5F1 0x6B46 +0x8FC5F2 0x6B4A +0x8FC5F3 0x6B4D +0x8FC5F4 0x6B52 +0x8FC5F5 0x6B56 +0x8FC5F6 0x6B58 +0x8FC5F7 0x6B5D +0x8FC5F8 0x6B60 +0x8FC5F9 0x6B67 +0x8FC5FA 0x6B6B +0x8FC5FB 0x6B6E +0x8FC5FC 0x6B70 +0x8FC5FD 0x6B75 +0x8FC5FE 0x6B7D +0x8FC6A1 0x6B7E +0x8FC6A2 0x6B82 +0x8FC6A3 0x6B85 +0x8FC6A4 0x6B97 +0x8FC6A5 0x6B9B +0x8FC6A6 0x6B9F +0x8FC6A7 0x6BA0 +0x8FC6A8 0x6BA2 +0x8FC6A9 0x6BA3 +0x8FC6AA 0x6BA8 +0x8FC6AB 0x6BA9 +0x8FC6AC 0x6BAC +0x8FC6AD 0x6BAD +0x8FC6AE 0x6BAE +0x8FC6AF 0x6BB0 +0x8FC6B0 0x6BB8 +0x8FC6B1 0x6BB9 +0x8FC6B2 0x6BBD +0x8FC6B3 0x6BBE +0x8FC6B4 0x6BC3 +0x8FC6B5 0x6BC4 +0x8FC6B6 0x6BC9 +0x8FC6B7 0x6BCC +0x8FC6B8 0x6BD6 +0x8FC6B9 0x6BDA +0x8FC6BA 0x6BE1 +0x8FC6BB 0x6BE3 +0x8FC6BC 0x6BE6 +0x8FC6BD 0x6BE7 +0x8FC6BE 0x6BEE +0x8FC6BF 0x6BF1 +0x8FC6C0 0x6BF7 +0x8FC6C1 0x6BF9 +0x8FC6C2 0x6BFF +0x8FC6C3 0x6C02 +0x8FC6C4 0x6C04 +0x8FC6C5 0x6C05 +0x8FC6C6 0x6C09 +0x8FC6C7 0x6C0D +0x8FC6C8 0x6C0E +0x8FC6C9 0x6C10 +0x8FC6CA 0x6C12 +0x8FC6CB 0x6C19 +0x8FC6CC 0x6C1F +0x8FC6CD 0x6C26 +0x8FC6CE 0x6C27 +0x8FC6CF 0x6C28 +0x8FC6D0 0x6C2C +0x8FC6D1 0x6C2E +0x8FC6D2 0x6C33 +0x8FC6D3 0x6C35 +0x8FC6D4 0x6C36 +0x8FC6D5 0x6C3A +0x8FC6D6 0x6C3B +0x8FC6D7 0x6C3F +0x8FC6D8 0x6C4A +0x8FC6D9 0x6C4B +0x8FC6DA 0x6C4D +0x8FC6DB 0x6C4F +0x8FC6DC 0x6C52 +0x8FC6DD 0x6C54 +0x8FC6DE 0x6C59 +0x8FC6DF 0x6C5B +0x8FC6E0 0x6C5C +0x8FC6E1 0x6C6B +0x8FC6E2 0x6C6D +0x8FC6E3 0x6C6F +0x8FC6E4 0x6C74 +0x8FC6E5 0x6C76 +0x8FC6E6 0x6C78 +0x8FC6E7 0x6C79 +0x8FC6E8 0x6C7B +0x8FC6E9 0x6C85 +0x8FC6EA 0x6C86 +0x8FC6EB 0x6C87 +0x8FC6EC 0x6C89 +0x8FC6ED 0x6C94 +0x8FC6EE 0x6C95 +0x8FC6EF 0x6C97 +0x8FC6F0 0x6C98 +0x8FC6F1 0x6C9C +0x8FC6F2 0x6C9F +0x8FC6F3 0x6CB0 +0x8FC6F4 0x6CB2 +0x8FC6F5 0x6CB4 +0x8FC6F6 0x6CC2 +0x8FC6F7 0x6CC6 +0x8FC6F8 0x6CCD +0x8FC6F9 0x6CCF +0x8FC6FA 0x6CD0 +0x8FC6FB 0x6CD1 +0x8FC6FC 0x6CD2 +0x8FC6FD 0x6CD4 +0x8FC6FE 0x6CD6 +0x8FC7A1 0x6CDA +0x8FC7A2 0x6CDC +0x8FC7A3 0x6CE0 +0x8FC7A4 0x6CE7 +0x8FC7A5 0x6CE9 +0x8FC7A6 0x6CEB +0x8FC7A7 0x6CEC +0x8FC7A8 0x6CEE +0x8FC7A9 0x6CF2 +0x8FC7AA 0x6CF4 +0x8FC7AB 0x6D04 +0x8FC7AC 0x6D07 +0x8FC7AD 0x6D0A +0x8FC7AE 0x6D0E +0x8FC7AF 0x6D0F +0x8FC7B0 0x6D11 +0x8FC7B1 0x6D13 +0x8FC7B2 0x6D1A +0x8FC7B3 0x6D26 +0x8FC7B4 0x6D27 +0x8FC7B5 0x6D28 +0x8FC7B6 0x6C67 +0x8FC7B7 0x6D2E +0x8FC7B8 0x6D2F +0x8FC7B9 0x6D31 +0x8FC7BA 0x6D39 +0x8FC7BB 0x6D3C +0x8FC7BC 0x6D3F +0x8FC7BD 0x6D57 +0x8FC7BE 0x6D5E +0x8FC7BF 0x6D5F +0x8FC7C0 0x6D61 +0x8FC7C1 0x6D65 +0x8FC7C2 0x6D67 +0x8FC7C3 0x6D6F +0x8FC7C4 0x6D70 +0x8FC7C5 0x6D7C +0x8FC7C6 0x6D82 +0x8FC7C7 0x6D87 +0x8FC7C8 0x6D91 +0x8FC7C9 0x6D92 +0x8FC7CA 0x6D94 +0x8FC7CB 0x6D96 +0x8FC7CC 0x6D97 +0x8FC7CD 0x6D98 +0x8FC7CE 0x6DAA +0x8FC7CF 0x6DAC +0x8FC7D0 0x6DB4 +0x8FC7D1 0x6DB7 +0x8FC7D2 0x6DB9 +0x8FC7D3 0x6DBD +0x8FC7D4 0x6DBF +0x8FC7D5 0x6DC4 +0x8FC7D6 0x6DC8 +0x8FC7D7 0x6DCA +0x8FC7D8 0x6DCE +0x8FC7D9 0x6DCF +0x8FC7DA 0x6DD6 +0x8FC7DB 0x6DDB +0x8FC7DC 0x6DDD +0x8FC7DD 0x6DDF +0x8FC7DE 0x6DE0 +0x8FC7DF 0x6DE2 +0x8FC7E0 0x6DE5 +0x8FC7E1 0x6DE9 +0x8FC7E2 0x6DEF +0x8FC7E3 0x6DF0 +0x8FC7E4 0x6DF4 +0x8FC7E5 0x6DF6 +0x8FC7E6 0x6DFC +0x8FC7E7 0x6E00 +0x8FC7E8 0x6E04 +0x8FC7E9 0x6E1E +0x8FC7EA 0x6E22 +0x8FC7EB 0x6E27 +0x8FC7EC 0x6E32 +0x8FC7ED 0x6E36 +0x8FC7EE 0x6E39 +0x8FC7EF 0x6E3B +0x8FC7F0 0x6E3C +0x8FC7F1 0x6E44 +0x8FC7F2 0x6E45 +0x8FC7F3 0x6E48 +0x8FC7F4 0x6E49 +0x8FC7F5 0x6E4B +0x8FC7F6 0x6E4F +0x8FC7F7 0x6E51 +0x8FC7F8 0x6E52 +0x8FC7F9 0x6E53 +0x8FC7FA 0x6E54 +0x8FC7FB 0x6E57 +0x8FC7FC 0x6E5C +0x8FC7FD 0x6E5D +0x8FC7FE 0x6E5E +0x8FC8A1 0x6E62 +0x8FC8A2 0x6E63 +0x8FC8A3 0x6E68 +0x8FC8A4 0x6E73 +0x8FC8A5 0x6E7B +0x8FC8A6 0x6E7D +0x8FC8A7 0x6E8D +0x8FC8A8 0x6E93 +0x8FC8A9 0x6E99 +0x8FC8AA 0x6EA0 +0x8FC8AB 0x6EA7 +0x8FC8AC 0x6EAD +0x8FC8AD 0x6EAE +0x8FC8AE 0x6EB1 +0x8FC8AF 0x6EB3 +0x8FC8B0 0x6EBB +0x8FC8B1 0x6EBF +0x8FC8B2 0x6EC0 +0x8FC8B3 0x6EC1 +0x8FC8B4 0x6EC3 +0x8FC8B5 0x6EC7 +0x8FC8B6 0x6EC8 +0x8FC8B7 0x6ECA +0x8FC8B8 0x6ECD +0x8FC8B9 0x6ECE +0x8FC8BA 0x6ECF +0x8FC8BB 0x6EEB +0x8FC8BC 0x6EED +0x8FC8BD 0x6EEE +0x8FC8BE 0x6EF9 +0x8FC8BF 0x6EFB +0x8FC8C0 0x6EFD +0x8FC8C1 0x6F04 +0x8FC8C2 0x6F08 +0x8FC8C3 0x6F0A +0x8FC8C4 0x6F0C +0x8FC8C5 0x6F0D +0x8FC8C6 0x6F16 +0x8FC8C7 0x6F18 +0x8FC8C8 0x6F1A +0x8FC8C9 0x6F1B +0x8FC8CA 0x6F26 +0x8FC8CB 0x6F29 +0x8FC8CC 0x6F2A +0x8FC8CD 0x6F2F +0x8FC8CE 0x6F30 +0x8FC8CF 0x6F33 +0x8FC8D0 0x6F36 +0x8FC8D1 0x6F3B +0x8FC8D2 0x6F3C +0x8FC8D3 0x6F2D +0x8FC8D4 0x6F4F +0x8FC8D5 0x6F51 +0x8FC8D6 0x6F52 +0x8FC8D7 0x6F53 +0x8FC8D8 0x6F57 +0x8FC8D9 0x6F59 +0x8FC8DA 0x6F5A +0x8FC8DB 0x6F5D +0x8FC8DC 0x6F5E +0x8FC8DD 0x6F61 +0x8FC8DE 0x6F62 +0x8FC8DF 0x6F68 +0x8FC8E0 0x6F6C +0x8FC8E1 0x6F7D +0x8FC8E2 0x6F7E +0x8FC8E3 0x6F83 +0x8FC8E4 0x6F87 +0x8FC8E5 0x6F88 +0x8FC8E6 0x6F8B +0x8FC8E7 0x6F8C +0x8FC8E8 0x6F8D +0x8FC8E9 0x6F90 +0x8FC8EA 0x6F92 +0x8FC8EB 0x6F93 +0x8FC8EC 0x6F94 +0x8FC8ED 0x6F96 +0x8FC8EE 0x6F9A +0x8FC8EF 0x6F9F +0x8FC8F0 0x6FA0 +0x8FC8F1 0x6FA5 +0x8FC8F2 0x6FA6 +0x8FC8F3 0x6FA7 +0x8FC8F4 0x6FA8 +0x8FC8F5 0x6FAE +0x8FC8F6 0x6FAF +0x8FC8F7 0x6FB0 +0x8FC8F8 0x6FB5 +0x8FC8F9 0x6FB6 +0x8FC8FA 0x6FBC +0x8FC8FB 0x6FC5 +0x8FC8FC 0x6FC7 +0x8FC8FD 0x6FC8 +0x8FC8FE 0x6FCA +0x8FC9A1 0x6FDA +0x8FC9A2 0x6FDE +0x8FC9A3 0x6FE8 +0x8FC9A4 0x6FE9 +0x8FC9A5 0x6FF0 +0x8FC9A6 0x6FF5 +0x8FC9A7 0x6FF9 +0x8FC9A8 0x6FFC +0x8FC9A9 0x6FFD +0x8FC9AA 0x7000 +0x8FC9AB 0x7005 +0x8FC9AC 0x7006 +0x8FC9AD 0x7007 +0x8FC9AE 0x700D +0x8FC9AF 0x7017 +0x8FC9B0 0x7020 +0x8FC9B1 0x7023 +0x8FC9B2 0x702F +0x8FC9B3 0x7034 +0x8FC9B4 0x7037 +0x8FC9B5 0x7039 +0x8FC9B6 0x703C +0x8FC9B7 0x7043 +0x8FC9B8 0x7044 +0x8FC9B9 0x7048 +0x8FC9BA 0x7049 +0x8FC9BB 0x704A +0x8FC9BC 0x704B +0x8FC9BD 0x7054 +0x8FC9BE 0x7055 +0x8FC9BF 0x705D +0x8FC9C0 0x705E +0x8FC9C1 0x704E +0x8FC9C2 0x7064 +0x8FC9C3 0x7065 +0x8FC9C4 0x706C +0x8FC9C5 0x706E +0x8FC9C6 0x7075 +0x8FC9C7 0x7076 +0x8FC9C8 0x707E +0x8FC9C9 0x7081 +0x8FC9CA 0x7085 +0x8FC9CB 0x7086 +0x8FC9CC 0x7094 +0x8FC9CD 0x7095 +0x8FC9CE 0x7096 +0x8FC9CF 0x7097 +0x8FC9D0 0x7098 +0x8FC9D1 0x709B +0x8FC9D2 0x70A4 +0x8FC9D3 0x70AB +0x8FC9D4 0x70B0 +0x8FC9D5 0x70B1 +0x8FC9D6 0x70B4 +0x8FC9D7 0x70B7 +0x8FC9D8 0x70CA +0x8FC9D9 0x70D1 +0x8FC9DA 0x70D3 +0x8FC9DB 0x70D4 +0x8FC9DC 0x70D5 +0x8FC9DD 0x70D6 +0x8FC9DE 0x70D8 +0x8FC9DF 0x70DC +0x8FC9E0 0x70E4 +0x8FC9E1 0x70FA +0x8FC9E2 0x7103 +0x8FC9E3 0x7104 +0x8FC9E4 0x7105 +0x8FC9E5 0x7106 +0x8FC9E6 0x7107 +0x8FC9E7 0x710B +0x8FC9E8 0x710C +0x8FC9E9 0x710F +0x8FC9EA 0x711E +0x8FC9EB 0x7120 +0x8FC9EC 0x712B +0x8FC9ED 0x712D +0x8FC9EE 0x712F +0x8FC9EF 0x7130 +0x8FC9F0 0x7131 +0x8FC9F1 0x7138 +0x8FC9F2 0x7141 +0x8FC9F3 0x7145 +0x8FC9F4 0x7146 +0x8FC9F5 0x7147 +0x8FC9F6 0x714A +0x8FC9F7 0x714B +0x8FC9F8 0x7150 +0x8FC9F9 0x7152 +0x8FC9FA 0x7157 +0x8FC9FB 0x715A +0x8FC9FC 0x715C +0x8FC9FD 0x715E +0x8FC9FE 0x7160 +0x8FCAA1 0x7168 +0x8FCAA2 0x7179 +0x8FCAA3 0x7180 +0x8FCAA4 0x7185 +0x8FCAA5 0x7187 +0x8FCAA6 0x718C +0x8FCAA7 0x7192 +0x8FCAA8 0x719A +0x8FCAA9 0x719B +0x8FCAAA 0x71A0 +0x8FCAAB 0x71A2 +0x8FCAAC 0x71AF +0x8FCAAD 0x71B0 +0x8FCAAE 0x71B2 +0x8FCAAF 0x71B3 +0x8FCAB0 0x71BA +0x8FCAB1 0x71BF +0x8FCAB2 0x71C0 +0x8FCAB3 0x71C1 +0x8FCAB4 0x71C4 +0x8FCAB5 0x71CB +0x8FCAB6 0x71CC +0x8FCAB7 0x71D3 +0x8FCAB8 0x71D6 +0x8FCAB9 0x71D9 +0x8FCABA 0x71DA +0x8FCABB 0x71DC +0x8FCABC 0x71F8 +0x8FCABD 0x71FE +0x8FCABE 0x7200 +0x8FCABF 0x7207 +0x8FCAC0 0x7208 +0x8FCAC1 0x7209 +0x8FCAC2 0x7213 +0x8FCAC3 0x7217 +0x8FCAC4 0x721A +0x8FCAC5 0x721D +0x8FCAC6 0x721F +0x8FCAC7 0x7224 +0x8FCAC8 0x722B +0x8FCAC9 0x722F +0x8FCACA 0x7234 +0x8FCACB 0x7238 +0x8FCACC 0x7239 +0x8FCACD 0x7241 +0x8FCACE 0x7242 +0x8FCACF 0x7243 +0x8FCAD0 0x7245 +0x8FCAD1 0x724E +0x8FCAD2 0x724F +0x8FCAD3 0x7250 +0x8FCAD4 0x7253 +0x8FCAD5 0x7255 +0x8FCAD6 0x7256 +0x8FCAD7 0x725A +0x8FCAD8 0x725C +0x8FCAD9 0x725E +0x8FCADA 0x7260 +0x8FCADB 0x7263 +0x8FCADC 0x7268 +0x8FCADD 0x726B +0x8FCADE 0x726E +0x8FCADF 0x726F +0x8FCAE0 0x7271 +0x8FCAE1 0x7277 +0x8FCAE2 0x7278 +0x8FCAE3 0x727B +0x8FCAE4 0x727C +0x8FCAE5 0x727F +0x8FCAE6 0x7284 +0x8FCAE7 0x7289 +0x8FCAE8 0x728D +0x8FCAE9 0x728E +0x8FCAEA 0x7293 +0x8FCAEB 0x729B +0x8FCAEC 0x72A8 +0x8FCAED 0x72AD +0x8FCAEE 0x72AE +0x8FCAEF 0x72B1 +0x8FCAF0 0x72B4 +0x8FCAF1 0x72BE +0x8FCAF2 0x72C1 +0x8FCAF3 0x72C7 +0x8FCAF4 0x72C9 +0x8FCAF5 0x72CC +0x8FCAF6 0x72D5 +0x8FCAF7 0x72D6 +0x8FCAF8 0x72D8 +0x8FCAF9 0x72DF +0x8FCAFA 0x72E5 +0x8FCAFB 0x72F3 +0x8FCAFC 0x72F4 +0x8FCAFD 0x72FA +0x8FCAFE 0x72FB +0x8FCBA1 0x72FE +0x8FCBA2 0x7302 +0x8FCBA3 0x7304 +0x8FCBA4 0x7305 +0x8FCBA5 0x7307 +0x8FCBA6 0x730B +0x8FCBA7 0x730D +0x8FCBA8 0x7312 +0x8FCBA9 0x7313 +0x8FCBAA 0x7318 +0x8FCBAB 0x7319 +0x8FCBAC 0x731E +0x8FCBAD 0x7322 +0x8FCBAE 0x7324 +0x8FCBAF 0x7327 +0x8FCBB0 0x7328 +0x8FCBB1 0x732C +0x8FCBB2 0x7331 +0x8FCBB3 0x7332 +0x8FCBB4 0x7335 +0x8FCBB5 0x733A +0x8FCBB6 0x733B +0x8FCBB7 0x733D +0x8FCBB8 0x7343 +0x8FCBB9 0x734D +0x8FCBBA 0x7350 +0x8FCBBB 0x7352 +0x8FCBBC 0x7356 +0x8FCBBD 0x7358 +0x8FCBBE 0x735D +0x8FCBBF 0x735E +0x8FCBC0 0x735F +0x8FCBC1 0x7360 +0x8FCBC2 0x7366 +0x8FCBC3 0x7367 +0x8FCBC4 0x7369 +0x8FCBC5 0x736B +0x8FCBC6 0x736C +0x8FCBC7 0x736E +0x8FCBC8 0x736F +0x8FCBC9 0x7371 +0x8FCBCA 0x7377 +0x8FCBCB 0x7379 +0x8FCBCC 0x737C +0x8FCBCD 0x7380 +0x8FCBCE 0x7381 +0x8FCBCF 0x7383 +0x8FCBD0 0x7385 +0x8FCBD1 0x7386 +0x8FCBD2 0x738E +0x8FCBD3 0x7390 +0x8FCBD4 0x7393 +0x8FCBD5 0x7395 +0x8FCBD6 0x7397 +0x8FCBD7 0x7398 +0x8FCBD8 0x739C +0x8FCBD9 0x739E +0x8FCBDA 0x739F +0x8FCBDB 0x73A0 +0x8FCBDC 0x73A2 +0x8FCBDD 0x73A5 +0x8FCBDE 0x73A6 +0x8FCBDF 0x73AA +0x8FCBE0 0x73AB +0x8FCBE1 0x73AD +0x8FCBE2 0x73B5 +0x8FCBE3 0x73B7 +0x8FCBE4 0x73B9 +0x8FCBE5 0x73BC +0x8FCBE6 0x73BD +0x8FCBE7 0x73BF +0x8FCBE8 0x73C5 +0x8FCBE9 0x73C6 +0x8FCBEA 0x73C9 +0x8FCBEB 0x73CB +0x8FCBEC 0x73CC +0x8FCBED 0x73CF +0x8FCBEE 0x73D2 +0x8FCBEF 0x73D3 +0x8FCBF0 0x73D6 +0x8FCBF1 0x73D9 +0x8FCBF2 0x73DD +0x8FCBF3 0x73E1 +0x8FCBF4 0x73E3 +0x8FCBF5 0x73E6 +0x8FCBF6 0x73E7 +0x8FCBF7 0x73E9 +0x8FCBF8 0x73F4 +0x8FCBF9 0x73F5 +0x8FCBFA 0x73F7 +0x8FCBFB 0x73F9 +0x8FCBFC 0x73FA +0x8FCBFD 0x73FB +0x8FCBFE 0x73FD +0x8FCCA1 0x73FF +0x8FCCA2 0x7400 +0x8FCCA3 0x7401 +0x8FCCA4 0x7404 +0x8FCCA5 0x7407 +0x8FCCA6 0x740A +0x8FCCA7 0x7411 +0x8FCCA8 0x741A +0x8FCCA9 0x741B +0x8FCCAA 0x7424 +0x8FCCAB 0x7426 +0x8FCCAC 0x7428 +0x8FCCAD 0x7429 +0x8FCCAE 0x742A +0x8FCCAF 0x742B +0x8FCCB0 0x742C +0x8FCCB1 0x742D +0x8FCCB2 0x742E +0x8FCCB3 0x742F +0x8FCCB4 0x7430 +0x8FCCB5 0x7431 +0x8FCCB6 0x7439 +0x8FCCB7 0x7440 +0x8FCCB8 0x7443 +0x8FCCB9 0x7444 +0x8FCCBA 0x7446 +0x8FCCBB 0x7447 +0x8FCCBC 0x744B +0x8FCCBD 0x744D +0x8FCCBE 0x7451 +0x8FCCBF 0x7452 +0x8FCCC0 0x7457 +0x8FCCC1 0x745D +0x8FCCC2 0x7462 +0x8FCCC3 0x7466 +0x8FCCC4 0x7467 +0x8FCCC5 0x7468 +0x8FCCC6 0x746B +0x8FCCC7 0x746D +0x8FCCC8 0x746E +0x8FCCC9 0x7471 +0x8FCCCA 0x7472 +0x8FCCCB 0x7480 +0x8FCCCC 0x7481 +0x8FCCCD 0x7485 +0x8FCCCE 0x7486 +0x8FCCCF 0x7487 +0x8FCCD0 0x7489 +0x8FCCD1 0x748F +0x8FCCD2 0x7490 +0x8FCCD3 0x7491 +0x8FCCD4 0x7492 +0x8FCCD5 0x7498 +0x8FCCD6 0x7499 +0x8FCCD7 0x749A +0x8FCCD8 0x749C +0x8FCCD9 0x749F +0x8FCCDA 0x74A0 +0x8FCCDB 0x74A1 +0x8FCCDC 0x74A3 +0x8FCCDD 0x74A6 +0x8FCCDE 0x74A8 +0x8FCCDF 0x74A9 +0x8FCCE0 0x74AA +0x8FCCE1 0x74AB +0x8FCCE2 0x74AE +0x8FCCE3 0x74AF +0x8FCCE4 0x74B1 +0x8FCCE5 0x74B2 +0x8FCCE6 0x74B5 +0x8FCCE7 0x74B9 +0x8FCCE8 0x74BB +0x8FCCE9 0x74BF +0x8FCCEA 0x74C8 +0x8FCCEB 0x74C9 +0x8FCCEC 0x74CC +0x8FCCED 0x74D0 +0x8FCCEE 0x74D3 +0x8FCCEF 0x74D8 +0x8FCCF0 0x74DA +0x8FCCF1 0x74DB +0x8FCCF2 0x74DE +0x8FCCF3 0x74DF +0x8FCCF4 0x74E4 +0x8FCCF5 0x74E8 +0x8FCCF6 0x74EA +0x8FCCF7 0x74EB +0x8FCCF8 0x74EF +0x8FCCF9 0x74F4 +0x8FCCFA 0x74FA +0x8FCCFB 0x74FB +0x8FCCFC 0x74FC +0x8FCCFD 0x74FF +0x8FCCFE 0x7506 +0x8FCDA1 0x7512 +0x8FCDA2 0x7516 +0x8FCDA3 0x7517 +0x8FCDA4 0x7520 +0x8FCDA5 0x7521 +0x8FCDA6 0x7524 +0x8FCDA7 0x7527 +0x8FCDA8 0x7529 +0x8FCDA9 0x752A +0x8FCDAA 0x752F +0x8FCDAB 0x7536 +0x8FCDAC 0x7539 +0x8FCDAD 0x753D +0x8FCDAE 0x753E +0x8FCDAF 0x753F +0x8FCDB0 0x7540 +0x8FCDB1 0x7543 +0x8FCDB2 0x7547 +0x8FCDB3 0x7548 +0x8FCDB4 0x754E +0x8FCDB5 0x7550 +0x8FCDB6 0x7552 +0x8FCDB7 0x7557 +0x8FCDB8 0x755E +0x8FCDB9 0x755F +0x8FCDBA 0x7561 +0x8FCDBB 0x756F +0x8FCDBC 0x7571 +0x8FCDBD 0x7579 +0x8FCDBE 0x757A +0x8FCDBF 0x757B +0x8FCDC0 0x757C +0x8FCDC1 0x757D +0x8FCDC2 0x757E +0x8FCDC3 0x7581 +0x8FCDC4 0x7585 +0x8FCDC5 0x7590 +0x8FCDC6 0x7592 +0x8FCDC7 0x7593 +0x8FCDC8 0x7595 +0x8FCDC9 0x7599 +0x8FCDCA 0x759C +0x8FCDCB 0x75A2 +0x8FCDCC 0x75A4 +0x8FCDCD 0x75B4 +0x8FCDCE 0x75BA +0x8FCDCF 0x75BF +0x8FCDD0 0x75C0 +0x8FCDD1 0x75C1 +0x8FCDD2 0x75C4 +0x8FCDD3 0x75C6 +0x8FCDD4 0x75CC +0x8FCDD5 0x75CE +0x8FCDD6 0x75CF +0x8FCDD7 0x75D7 +0x8FCDD8 0x75DC +0x8FCDD9 0x75DF +0x8FCDDA 0x75E0 +0x8FCDDB 0x75E1 +0x8FCDDC 0x75E4 +0x8FCDDD 0x75E7 +0x8FCDDE 0x75EC +0x8FCDDF 0x75EE +0x8FCDE0 0x75EF +0x8FCDE1 0x75F1 +0x8FCDE2 0x75F9 +0x8FCDE3 0x7600 +0x8FCDE4 0x7602 +0x8FCDE5 0x7603 +0x8FCDE6 0x7604 +0x8FCDE7 0x7607 +0x8FCDE8 0x7608 +0x8FCDE9 0x760A +0x8FCDEA 0x760C +0x8FCDEB 0x760F +0x8FCDEC 0x7612 +0x8FCDED 0x7613 +0x8FCDEE 0x7615 +0x8FCDEF 0x7616 +0x8FCDF0 0x7619 +0x8FCDF1 0x761B +0x8FCDF2 0x761C +0x8FCDF3 0x761D +0x8FCDF4 0x761E +0x8FCDF5 0x7623 +0x8FCDF6 0x7625 +0x8FCDF7 0x7626 +0x8FCDF8 0x7629 +0x8FCDF9 0x762D +0x8FCDFA 0x7632 +0x8FCDFB 0x7633 +0x8FCDFC 0x7635 +0x8FCDFD 0x7638 +0x8FCDFE 0x7639 +0x8FCEA1 0x763A +0x8FCEA2 0x763C +0x8FCEA3 0x764A +0x8FCEA4 0x7640 +0x8FCEA5 0x7641 +0x8FCEA6 0x7643 +0x8FCEA7 0x7644 +0x8FCEA8 0x7645 +0x8FCEA9 0x7649 +0x8FCEAA 0x764B +0x8FCEAB 0x7655 +0x8FCEAC 0x7659 +0x8FCEAD 0x765F +0x8FCEAE 0x7664 +0x8FCEAF 0x7665 +0x8FCEB0 0x766D +0x8FCEB1 0x766E +0x8FCEB2 0x766F +0x8FCEB3 0x7671 +0x8FCEB4 0x7674 +0x8FCEB5 0x7681 +0x8FCEB6 0x7685 +0x8FCEB7 0x768C +0x8FCEB8 0x768D +0x8FCEB9 0x7695 +0x8FCEBA 0x769B +0x8FCEBB 0x769C +0x8FCEBC 0x769D +0x8FCEBD 0x769F +0x8FCEBE 0x76A0 +0x8FCEBF 0x76A2 +0x8FCEC0 0x76A3 +0x8FCEC1 0x76A4 +0x8FCEC2 0x76A5 +0x8FCEC3 0x76A6 +0x8FCEC4 0x76A7 +0x8FCEC5 0x76A8 +0x8FCEC6 0x76AA +0x8FCEC7 0x76AD +0x8FCEC8 0x76BD +0x8FCEC9 0x76C1 +0x8FCECA 0x76C5 +0x8FCECB 0x76C9 +0x8FCECC 0x76CB +0x8FCECD 0x76CC +0x8FCECE 0x76CE +0x8FCECF 0x76D4 +0x8FCED0 0x76D9 +0x8FCED1 0x76E0 +0x8FCED2 0x76E6 +0x8FCED3 0x76E8 +0x8FCED4 0x76EC +0x8FCED5 0x76F0 +0x8FCED6 0x76F1 +0x8FCED7 0x76F6 +0x8FCED8 0x76F9 +0x8FCED9 0x76FC +0x8FCEDA 0x7700 +0x8FCEDB 0x7706 +0x8FCEDC 0x770A +0x8FCEDD 0x770E +0x8FCEDE 0x7712 +0x8FCEDF 0x7714 +0x8FCEE0 0x7715 +0x8FCEE1 0x7717 +0x8FCEE2 0x7719 +0x8FCEE3 0x771A +0x8FCEE4 0x771C +0x8FCEE5 0x7722 +0x8FCEE6 0x7728 +0x8FCEE7 0x772D +0x8FCEE8 0x772E +0x8FCEE9 0x772F +0x8FCEEA 0x7734 +0x8FCEEB 0x7735 +0x8FCEEC 0x7736 +0x8FCEED 0x7739 +0x8FCEEE 0x773D +0x8FCEEF 0x773E +0x8FCEF0 0x7742 +0x8FCEF1 0x7745 +0x8FCEF2 0x7746 +0x8FCEF3 0x774A +0x8FCEF4 0x774D +0x8FCEF5 0x774E +0x8FCEF6 0x774F +0x8FCEF7 0x7752 +0x8FCEF8 0x7756 +0x8FCEF9 0x7757 +0x8FCEFA 0x775C +0x8FCEFB 0x775E +0x8FCEFC 0x775F +0x8FCEFD 0x7760 +0x8FCEFE 0x7762 +0x8FCFA1 0x7764 +0x8FCFA2 0x7767 +0x8FCFA3 0x776A +0x8FCFA4 0x776C +0x8FCFA5 0x7770 +0x8FCFA6 0x7772 +0x8FCFA7 0x7773 +0x8FCFA8 0x7774 +0x8FCFA9 0x777A +0x8FCFAA 0x777D +0x8FCFAB 0x7780 +0x8FCFAC 0x7784 +0x8FCFAD 0x778C +0x8FCFAE 0x778D +0x8FCFAF 0x7794 +0x8FCFB0 0x7795 +0x8FCFB1 0x7796 +0x8FCFB2 0x779A +0x8FCFB3 0x779F +0x8FCFB4 0x77A2 +0x8FCFB5 0x77A7 +0x8FCFB6 0x77AA +0x8FCFB7 0x77AE +0x8FCFB8 0x77AF +0x8FCFB9 0x77B1 +0x8FCFBA 0x77B5 +0x8FCFBB 0x77BE +0x8FCFBC 0x77C3 +0x8FCFBD 0x77C9 +0x8FCFBE 0x77D1 +0x8FCFBF 0x77D2 +0x8FCFC0 0x77D5 +0x8FCFC1 0x77D9 +0x8FCFC2 0x77DE +0x8FCFC3 0x77DF +0x8FCFC4 0x77E0 +0x8FCFC5 0x77E4 +0x8FCFC6 0x77E6 +0x8FCFC7 0x77EA +0x8FCFC8 0x77EC +0x8FCFC9 0x77F0 +0x8FCFCA 0x77F1 +0x8FCFCB 0x77F4 +0x8FCFCC 0x77F8 +0x8FCFCD 0x77FB +0x8FCFCE 0x7805 +0x8FCFCF 0x7806 +0x8FCFD0 0x7809 +0x8FCFD1 0x780D +0x8FCFD2 0x780E +0x8FCFD3 0x7811 +0x8FCFD4 0x781D +0x8FCFD5 0x7821 +0x8FCFD6 0x7822 +0x8FCFD7 0x7823 +0x8FCFD8 0x782D +0x8FCFD9 0x782E +0x8FCFDA 0x7830 +0x8FCFDB 0x7835 +0x8FCFDC 0x7837 +0x8FCFDD 0x7843 +0x8FCFDE 0x7844 +0x8FCFDF 0x7847 +0x8FCFE0 0x7848 +0x8FCFE1 0x784C +0x8FCFE2 0x784E +0x8FCFE3 0x7852 +0x8FCFE4 0x785C +0x8FCFE5 0x785E +0x8FCFE6 0x7860 +0x8FCFE7 0x7861 +0x8FCFE8 0x7863 +0x8FCFE9 0x7864 +0x8FCFEA 0x7868 +0x8FCFEB 0x786A +0x8FCFEC 0x786E +0x8FCFED 0x787A +0x8FCFEE 0x787E +0x8FCFEF 0x788A +0x8FCFF0 0x788F +0x8FCFF1 0x7894 +0x8FCFF2 0x7898 +0x8FCFF3 0x78A1 +0x8FCFF4 0x789D +0x8FCFF5 0x789E +0x8FCFF6 0x789F +0x8FCFF7 0x78A4 +0x8FCFF8 0x78A8 +0x8FCFF9 0x78AC +0x8FCFFA 0x78AD +0x8FCFFB 0x78B0 +0x8FCFFC 0x78B1 +0x8FCFFD 0x78B2 +0x8FCFFE 0x78B3 +0x8FD0A1 0x78BB +0x8FD0A2 0x78BD +0x8FD0A3 0x78BF +0x8FD0A4 0x78C7 +0x8FD0A5 0x78C8 +0x8FD0A6 0x78C9 +0x8FD0A7 0x78CC +0x8FD0A8 0x78CE +0x8FD0A9 0x78D2 +0x8FD0AA 0x78D3 +0x8FD0AB 0x78D5 +0x8FD0AC 0x78D6 +0x8FD0AD 0x78E4 +0x8FD0AE 0x78DB +0x8FD0AF 0x78DF +0x8FD0B0 0x78E0 +0x8FD0B1 0x78E1 +0x8FD0B2 0x78E6 +0x8FD0B3 0x78EA +0x8FD0B4 0x78F2 +0x8FD0B5 0x78F3 +0x8FD0B6 0x7900 +0x8FD0B7 0x78F6 +0x8FD0B8 0x78F7 +0x8FD0B9 0x78FA +0x8FD0BA 0x78FB +0x8FD0BB 0x78FF +0x8FD0BC 0x7906 +0x8FD0BD 0x790C +0x8FD0BE 0x7910 +0x8FD0BF 0x791A +0x8FD0C0 0x791C +0x8FD0C1 0x791E +0x8FD0C2 0x791F +0x8FD0C3 0x7920 +0x8FD0C4 0x7925 +0x8FD0C5 0x7927 +0x8FD0C6 0x7929 +0x8FD0C7 0x792D +0x8FD0C8 0x7931 +0x8FD0C9 0x7934 +0x8FD0CA 0x7935 +0x8FD0CB 0x793B +0x8FD0CC 0x793D +0x8FD0CD 0x793F +0x8FD0CE 0x7944 +0x8FD0CF 0x7945 +0x8FD0D0 0x7946 +0x8FD0D1 0x794A +0x8FD0D2 0x794B +0x8FD0D3 0x794F +0x8FD0D4 0x7951 +0x8FD0D5 0x7954 +0x8FD0D6 0x7958 +0x8FD0D7 0x795B +0x8FD0D8 0x795C +0x8FD0D9 0x7967 +0x8FD0DA 0x7969 +0x8FD0DB 0x796B +0x8FD0DC 0x7972 +0x8FD0DD 0x7979 +0x8FD0DE 0x797B +0x8FD0DF 0x797C +0x8FD0E0 0x797E +0x8FD0E1 0x798B +0x8FD0E2 0x798C +0x8FD0E3 0x7991 +0x8FD0E4 0x7993 +0x8FD0E5 0x7994 +0x8FD0E6 0x7995 +0x8FD0E7 0x7996 +0x8FD0E8 0x7998 +0x8FD0E9 0x799B +0x8FD0EA 0x799C +0x8FD0EB 0x79A1 +0x8FD0EC 0x79A8 +0x8FD0ED 0x79A9 +0x8FD0EE 0x79AB +0x8FD0EF 0x79AF +0x8FD0F0 0x79B1 +0x8FD0F1 0x79B4 +0x8FD0F2 0x79B8 +0x8FD0F3 0x79BB +0x8FD0F4 0x79C2 +0x8FD0F5 0x79C4 +0x8FD0F6 0x79C7 +0x8FD0F7 0x79C8 +0x8FD0F8 0x79CA +0x8FD0F9 0x79CF +0x8FD0FA 0x79D4 +0x8FD0FB 0x79D6 +0x8FD0FC 0x79DA +0x8FD0FD 0x79DD +0x8FD0FE 0x79DE +0x8FD1A1 0x79E0 +0x8FD1A2 0x79E2 +0x8FD1A3 0x79E5 +0x8FD1A4 0x79EA +0x8FD1A5 0x79EB +0x8FD1A6 0x79ED +0x8FD1A7 0x79F1 +0x8FD1A8 0x79F8 +0x8FD1A9 0x79FC +0x8FD1AA 0x7A02 +0x8FD1AB 0x7A03 +0x8FD1AC 0x7A07 +0x8FD1AD 0x7A09 +0x8FD1AE 0x7A0A +0x8FD1AF 0x7A0C +0x8FD1B0 0x7A11 +0x8FD1B1 0x7A15 +0x8FD1B2 0x7A1B +0x8FD1B3 0x7A1E +0x8FD1B4 0x7A21 +0x8FD1B5 0x7A27 +0x8FD1B6 0x7A2B +0x8FD1B7 0x7A2D +0x8FD1B8 0x7A2F +0x8FD1B9 0x7A30 +0x8FD1BA 0x7A34 +0x8FD1BB 0x7A35 +0x8FD1BC 0x7A38 +0x8FD1BD 0x7A39 +0x8FD1BE 0x7A3A +0x8FD1BF 0x7A44 +0x8FD1C0 0x7A45 +0x8FD1C1 0x7A47 +0x8FD1C2 0x7A48 +0x8FD1C3 0x7A4C +0x8FD1C4 0x7A55 +0x8FD1C5 0x7A56 +0x8FD1C6 0x7A59 +0x8FD1C7 0x7A5C +0x8FD1C8 0x7A5D +0x8FD1C9 0x7A5F +0x8FD1CA 0x7A60 +0x8FD1CB 0x7A65 +0x8FD1CC 0x7A67 +0x8FD1CD 0x7A6A +0x8FD1CE 0x7A6D +0x8FD1CF 0x7A75 +0x8FD1D0 0x7A78 +0x8FD1D1 0x7A7E +0x8FD1D2 0x7A80 +0x8FD1D3 0x7A82 +0x8FD1D4 0x7A85 +0x8FD1D5 0x7A86 +0x8FD1D6 0x7A8A +0x8FD1D7 0x7A8B +0x8FD1D8 0x7A90 +0x8FD1D9 0x7A91 +0x8FD1DA 0x7A94 +0x8FD1DB 0x7A9E +0x8FD1DC 0x7AA0 +0x8FD1DD 0x7AA3 +0x8FD1DE 0x7AAC +0x8FD1DF 0x7AB3 +0x8FD1E0 0x7AB5 +0x8FD1E1 0x7AB9 +0x8FD1E2 0x7ABB +0x8FD1E3 0x7ABC +0x8FD1E4 0x7AC6 +0x8FD1E5 0x7AC9 +0x8FD1E6 0x7ACC +0x8FD1E7 0x7ACE +0x8FD1E8 0x7AD1 +0x8FD1E9 0x7ADB +0x8FD1EA 0x7AE8 +0x8FD1EB 0x7AE9 +0x8FD1EC 0x7AEB +0x8FD1ED 0x7AEC +0x8FD1EE 0x7AF1 +0x8FD1EF 0x7AF4 +0x8FD1F0 0x7AFB +0x8FD1F1 0x7AFD +0x8FD1F2 0x7AFE +0x8FD1F3 0x7B07 +0x8FD1F4 0x7B14 +0x8FD1F5 0x7B1F +0x8FD1F6 0x7B23 +0x8FD1F7 0x7B27 +0x8FD1F8 0x7B29 +0x8FD1F9 0x7B2A +0x8FD1FA 0x7B2B +0x8FD1FB 0x7B2D +0x8FD1FC 0x7B2E +0x8FD1FD 0x7B2F +0x8FD1FE 0x7B30 +0x8FD2A1 0x7B31 +0x8FD2A2 0x7B34 +0x8FD2A3 0x7B3D +0x8FD2A4 0x7B3F +0x8FD2A5 0x7B40 +0x8FD2A6 0x7B41 +0x8FD2A7 0x7B47 +0x8FD2A8 0x7B4E +0x8FD2A9 0x7B55 +0x8FD2AA 0x7B60 +0x8FD2AB 0x7B64 +0x8FD2AC 0x7B66 +0x8FD2AD 0x7B69 +0x8FD2AE 0x7B6A +0x8FD2AF 0x7B6D +0x8FD2B0 0x7B6F +0x8FD2B1 0x7B72 +0x8FD2B2 0x7B73 +0x8FD2B3 0x7B77 +0x8FD2B4 0x7B84 +0x8FD2B5 0x7B89 +0x8FD2B6 0x7B8E +0x8FD2B7 0x7B90 +0x8FD2B8 0x7B91 +0x8FD2B9 0x7B96 +0x8FD2BA 0x7B9B +0x8FD2BB 0x7B9E +0x8FD2BC 0x7BA0 +0x8FD2BD 0x7BA5 +0x8FD2BE 0x7BAC +0x8FD2BF 0x7BAF +0x8FD2C0 0x7BB0 +0x8FD2C1 0x7BB2 +0x8FD2C2 0x7BB5 +0x8FD2C3 0x7BB6 +0x8FD2C4 0x7BBA +0x8FD2C5 0x7BBB +0x8FD2C6 0x7BBC +0x8FD2C7 0x7BBD +0x8FD2C8 0x7BC2 +0x8FD2C9 0x7BC5 +0x8FD2CA 0x7BC8 +0x8FD2CB 0x7BCA +0x8FD2CC 0x7BD4 +0x8FD2CD 0x7BD6 +0x8FD2CE 0x7BD7 +0x8FD2CF 0x7BD9 +0x8FD2D0 0x7BDA +0x8FD2D1 0x7BDB +0x8FD2D2 0x7BE8 +0x8FD2D3 0x7BEA +0x8FD2D4 0x7BF2 +0x8FD2D5 0x7BF4 +0x8FD2D6 0x7BF5 +0x8FD2D7 0x7BF8 +0x8FD2D8 0x7BF9 +0x8FD2D9 0x7BFA +0x8FD2DA 0x7BFC +0x8FD2DB 0x7BFE +0x8FD2DC 0x7C01 +0x8FD2DD 0x7C02 +0x8FD2DE 0x7C03 +0x8FD2DF 0x7C04 +0x8FD2E0 0x7C06 +0x8FD2E1 0x7C09 +0x8FD2E2 0x7C0B +0x8FD2E3 0x7C0C +0x8FD2E4 0x7C0E +0x8FD2E5 0x7C0F +0x8FD2E6 0x7C19 +0x8FD2E7 0x7C1B +0x8FD2E8 0x7C20 +0x8FD2E9 0x7C25 +0x8FD2EA 0x7C26 +0x8FD2EB 0x7C28 +0x8FD2EC 0x7C2C +0x8FD2ED 0x7C31 +0x8FD2EE 0x7C33 +0x8FD2EF 0x7C34 +0x8FD2F0 0x7C36 +0x8FD2F1 0x7C39 +0x8FD2F2 0x7C3A +0x8FD2F3 0x7C46 +0x8FD2F4 0x7C4A +0x8FD2F5 0x7C55 +0x8FD2F6 0x7C51 +0x8FD2F7 0x7C52 +0x8FD2F8 0x7C53 +0x8FD2F9 0x7C59 +0x8FD2FA 0x7C5A +0x8FD2FB 0x7C5B +0x8FD2FC 0x7C5C +0x8FD2FD 0x7C5D +0x8FD2FE 0x7C5E +0x8FD3A1 0x7C61 +0x8FD3A2 0x7C63 +0x8FD3A3 0x7C67 +0x8FD3A4 0x7C69 +0x8FD3A5 0x7C6D +0x8FD3A6 0x7C6E +0x8FD3A7 0x7C70 +0x8FD3A8 0x7C72 +0x8FD3A9 0x7C79 +0x8FD3AA 0x7C7C +0x8FD3AB 0x7C7D +0x8FD3AC 0x7C86 +0x8FD3AD 0x7C87 +0x8FD3AE 0x7C8F +0x8FD3AF 0x7C94 +0x8FD3B0 0x7C9E +0x8FD3B1 0x7CA0 +0x8FD3B2 0x7CA6 +0x8FD3B3 0x7CB0 +0x8FD3B4 0x7CB6 +0x8FD3B5 0x7CB7 +0x8FD3B6 0x7CBA +0x8FD3B7 0x7CBB +0x8FD3B8 0x7CBC +0x8FD3B9 0x7CBF +0x8FD3BA 0x7CC4 +0x8FD3BB 0x7CC7 +0x8FD3BC 0x7CC8 +0x8FD3BD 0x7CC9 +0x8FD3BE 0x7CCD +0x8FD3BF 0x7CCF +0x8FD3C0 0x7CD3 +0x8FD3C1 0x7CD4 +0x8FD3C2 0x7CD5 +0x8FD3C3 0x7CD7 +0x8FD3C4 0x7CD9 +0x8FD3C5 0x7CDA +0x8FD3C6 0x7CDD +0x8FD3C7 0x7CE6 +0x8FD3C8 0x7CE9 +0x8FD3C9 0x7CEB +0x8FD3CA 0x7CF5 +0x8FD3CB 0x7D03 +0x8FD3CC 0x7D07 +0x8FD3CD 0x7D08 +0x8FD3CE 0x7D09 +0x8FD3CF 0x7D0F +0x8FD3D0 0x7D11 +0x8FD3D1 0x7D12 +0x8FD3D2 0x7D13 +0x8FD3D3 0x7D16 +0x8FD3D4 0x7D1D +0x8FD3D5 0x7D1E +0x8FD3D6 0x7D23 +0x8FD3D7 0x7D26 +0x8FD3D8 0x7D2A +0x8FD3D9 0x7D2D +0x8FD3DA 0x7D31 +0x8FD3DB 0x7D3C +0x8FD3DC 0x7D3D +0x8FD3DD 0x7D3E +0x8FD3DE 0x7D40 +0x8FD3DF 0x7D41 +0x8FD3E0 0x7D47 +0x8FD3E1 0x7D48 +0x8FD3E2 0x7D4D +0x8FD3E3 0x7D51 +0x8FD3E4 0x7D53 +0x8FD3E5 0x7D57 +0x8FD3E6 0x7D59 +0x8FD3E7 0x7D5A +0x8FD3E8 0x7D5C +0x8FD3E9 0x7D5D +0x8FD3EA 0x7D65 +0x8FD3EB 0x7D67 +0x8FD3EC 0x7D6A +0x8FD3ED 0x7D70 +0x8FD3EE 0x7D78 +0x8FD3EF 0x7D7A +0x8FD3F0 0x7D7B +0x8FD3F1 0x7D7F +0x8FD3F2 0x7D81 +0x8FD3F3 0x7D82 +0x8FD3F4 0x7D83 +0x8FD3F5 0x7D85 +0x8FD3F6 0x7D86 +0x8FD3F7 0x7D88 +0x8FD3F8 0x7D8B +0x8FD3F9 0x7D8C +0x8FD3FA 0x7D8D +0x8FD3FB 0x7D91 +0x8FD3FC 0x7D96 +0x8FD3FD 0x7D97 +0x8FD3FE 0x7D9D +0x8FD4A1 0x7D9E +0x8FD4A2 0x7DA6 +0x8FD4A3 0x7DA7 +0x8FD4A4 0x7DAA +0x8FD4A5 0x7DB3 +0x8FD4A6 0x7DB6 +0x8FD4A7 0x7DB7 +0x8FD4A8 0x7DB9 +0x8FD4A9 0x7DC2 +0x8FD4AA 0x7DC3 +0x8FD4AB 0x7DC4 +0x8FD4AC 0x7DC5 +0x8FD4AD 0x7DC6 +0x8FD4AE 0x7DCC +0x8FD4AF 0x7DCD +0x8FD4B0 0x7DCE +0x8FD4B1 0x7DD7 +0x8FD4B2 0x7DD9 +0x8FD4B3 0x7E00 +0x8FD4B4 0x7DE2 +0x8FD4B5 0x7DE5 +0x8FD4B6 0x7DE6 +0x8FD4B7 0x7DEA +0x8FD4B8 0x7DEB +0x8FD4B9 0x7DED +0x8FD4BA 0x7DF1 +0x8FD4BB 0x7DF5 +0x8FD4BC 0x7DF6 +0x8FD4BD 0x7DF9 +0x8FD4BE 0x7DFA +0x8FD4BF 0x7E08 +0x8FD4C0 0x7E10 +0x8FD4C1 0x7E11 +0x8FD4C2 0x7E15 +0x8FD4C3 0x7E17 +0x8FD4C4 0x7E1C +0x8FD4C5 0x7E1D +0x8FD4C6 0x7E20 +0x8FD4C7 0x7E27 +0x8FD4C8 0x7E28 +0x8FD4C9 0x7E2C +0x8FD4CA 0x7E2D +0x8FD4CB 0x7E2F +0x8FD4CC 0x7E33 +0x8FD4CD 0x7E36 +0x8FD4CE 0x7E3F +0x8FD4CF 0x7E44 +0x8FD4D0 0x7E45 +0x8FD4D1 0x7E47 +0x8FD4D2 0x7E4E +0x8FD4D3 0x7E50 +0x8FD4D4 0x7E52 +0x8FD4D5 0x7E58 +0x8FD4D6 0x7E5F +0x8FD4D7 0x7E61 +0x8FD4D8 0x7E62 +0x8FD4D9 0x7E65 +0x8FD4DA 0x7E6B +0x8FD4DB 0x7E6E +0x8FD4DC 0x7E6F +0x8FD4DD 0x7E73 +0x8FD4DE 0x7E78 +0x8FD4DF 0x7E7E +0x8FD4E0 0x7E81 +0x8FD4E1 0x7E86 +0x8FD4E2 0x7E87 +0x8FD4E3 0x7E8A +0x8FD4E4 0x7E8D +0x8FD4E5 0x7E91 +0x8FD4E6 0x7E95 +0x8FD4E7 0x7E98 +0x8FD4E8 0x7E9A +0x8FD4E9 0x7E9D +0x8FD4EA 0x7E9E +0x8FD4EB 0x7F3C +0x8FD4EC 0x7F3B +0x8FD4ED 0x7F3D +0x8FD4EE 0x7F3E +0x8FD4EF 0x7F3F +0x8FD4F0 0x7F43 +0x8FD4F1 0x7F44 +0x8FD4F2 0x7F47 +0x8FD4F3 0x7F4F +0x8FD4F4 0x7F52 +0x8FD4F5 0x7F53 +0x8FD4F6 0x7F5B +0x8FD4F7 0x7F5C +0x8FD4F8 0x7F5D +0x8FD4F9 0x7F61 +0x8FD4FA 0x7F63 +0x8FD4FB 0x7F64 +0x8FD4FC 0x7F65 +0x8FD4FD 0x7F66 +0x8FD4FE 0x7F6D +0x8FD5A1 0x7F71 +0x8FD5A2 0x7F7D +0x8FD5A3 0x7F7E +0x8FD5A4 0x7F7F +0x8FD5A5 0x7F80 +0x8FD5A6 0x7F8B +0x8FD5A7 0x7F8D +0x8FD5A8 0x7F8F +0x8FD5A9 0x7F90 +0x8FD5AA 0x7F91 +0x8FD5AB 0x7F96 +0x8FD5AC 0x7F97 +0x8FD5AD 0x7F9C +0x8FD5AE 0x7FA1 +0x8FD5AF 0x7FA2 +0x8FD5B0 0x7FA6 +0x8FD5B1 0x7FAA +0x8FD5B2 0x7FAD +0x8FD5B3 0x7FB4 +0x8FD5B4 0x7FBC +0x8FD5B5 0x7FBF +0x8FD5B6 0x7FC0 +0x8FD5B7 0x7FC3 +0x8FD5B8 0x7FC8 +0x8FD5B9 0x7FCE +0x8FD5BA 0x7FCF +0x8FD5BB 0x7FDB +0x8FD5BC 0x7FDF +0x8FD5BD 0x7FE3 +0x8FD5BE 0x7FE5 +0x8FD5BF 0x7FE8 +0x8FD5C0 0x7FEC +0x8FD5C1 0x7FEE +0x8FD5C2 0x7FEF +0x8FD5C3 0x7FF2 +0x8FD5C4 0x7FFA +0x8FD5C5 0x7FFD +0x8FD5C6 0x7FFE +0x8FD5C7 0x7FFF +0x8FD5C8 0x8007 +0x8FD5C9 0x8008 +0x8FD5CA 0x800A +0x8FD5CB 0x800D +0x8FD5CC 0x800E +0x8FD5CD 0x800F +0x8FD5CE 0x8011 +0x8FD5CF 0x8013 +0x8FD5D0 0x8014 +0x8FD5D1 0x8016 +0x8FD5D2 0x801D +0x8FD5D3 0x801E +0x8FD5D4 0x801F +0x8FD5D5 0x8020 +0x8FD5D6 0x8024 +0x8FD5D7 0x8026 +0x8FD5D8 0x802C +0x8FD5D9 0x802E +0x8FD5DA 0x8030 +0x8FD5DB 0x8034 +0x8FD5DC 0x8035 +0x8FD5DD 0x8037 +0x8FD5DE 0x8039 +0x8FD5DF 0x803A +0x8FD5E0 0x803C +0x8FD5E1 0x803E +0x8FD5E2 0x8040 +0x8FD5E3 0x8044 +0x8FD5E4 0x8060 +0x8FD5E5 0x8064 +0x8FD5E6 0x8066 +0x8FD5E7 0x806D +0x8FD5E8 0x8071 +0x8FD5E9 0x8075 +0x8FD5EA 0x8081 +0x8FD5EB 0x8088 +0x8FD5EC 0x808E +0x8FD5ED 0x809C +0x8FD5EE 0x809E +0x8FD5EF 0x80A6 +0x8FD5F0 0x80A7 +0x8FD5F1 0x80AB +0x8FD5F2 0x80B8 +0x8FD5F3 0x80B9 +0x8FD5F4 0x80C8 +0x8FD5F5 0x80CD +0x8FD5F6 0x80CF +0x8FD5F7 0x80D2 +0x8FD5F8 0x80D4 +0x8FD5F9 0x80D5 +0x8FD5FA 0x80D7 +0x8FD5FB 0x80D8 +0x8FD5FC 0x80E0 +0x8FD5FD 0x80ED +0x8FD5FE 0x80EE +0x8FD6A1 0x80F0 +0x8FD6A2 0x80F2 +0x8FD6A3 0x80F3 +0x8FD6A4 0x80F6 +0x8FD6A5 0x80F9 +0x8FD6A6 0x80FA +0x8FD6A7 0x80FE +0x8FD6A8 0x8103 +0x8FD6A9 0x810B +0x8FD6AA 0x8116 +0x8FD6AB 0x8117 +0x8FD6AC 0x8118 +0x8FD6AD 0x811C +0x8FD6AE 0x811E +0x8FD6AF 0x8120 +0x8FD6B0 0x8124 +0x8FD6B1 0x8127 +0x8FD6B2 0x812C +0x8FD6B3 0x8130 +0x8FD6B4 0x8135 +0x8FD6B5 0x813A +0x8FD6B6 0x813C +0x8FD6B7 0x8145 +0x8FD6B8 0x8147 +0x8FD6B9 0x814A +0x8FD6BA 0x814C +0x8FD6BB 0x8152 +0x8FD6BC 0x8157 +0x8FD6BD 0x8160 +0x8FD6BE 0x8161 +0x8FD6BF 0x8167 +0x8FD6C0 0x8168 +0x8FD6C1 0x8169 +0x8FD6C2 0x816D +0x8FD6C3 0x816F +0x8FD6C4 0x8177 +0x8FD6C5 0x8181 +0x8FD6C6 0x8190 +0x8FD6C7 0x8184 +0x8FD6C8 0x8185 +0x8FD6C9 0x8186 +0x8FD6CA 0x818B +0x8FD6CB 0x818E +0x8FD6CC 0x8196 +0x8FD6CD 0x8198 +0x8FD6CE 0x819B +0x8FD6CF 0x819E +0x8FD6D0 0x81A2 +0x8FD6D1 0x81AE +0x8FD6D2 0x81B2 +0x8FD6D3 0x81B4 +0x8FD6D4 0x81BB +0x8FD6D5 0x81CB +0x8FD6D6 0x81C3 +0x8FD6D7 0x81C5 +0x8FD6D8 0x81CA +0x8FD6D9 0x81CE +0x8FD6DA 0x81CF +0x8FD6DB 0x81D5 +0x8FD6DC 0x81D7 +0x8FD6DD 0x81DB +0x8FD6DE 0x81DD +0x8FD6DF 0x81DE +0x8FD6E0 0x81E1 +0x8FD6E1 0x81E4 +0x8FD6E2 0x81EB +0x8FD6E3 0x81EC +0x8FD6E4 0x81F0 +0x8FD6E5 0x81F1 +0x8FD6E6 0x81F2 +0x8FD6E7 0x81F5 +0x8FD6E8 0x81F6 +0x8FD6E9 0x81F8 +0x8FD6EA 0x81F9 +0x8FD6EB 0x81FD +0x8FD6EC 0x81FF +0x8FD6ED 0x8200 +0x8FD6EE 0x8203 +0x8FD6EF 0x820F +0x8FD6F0 0x8213 +0x8FD6F1 0x8214 +0x8FD6F2 0x8219 +0x8FD6F3 0x821A +0x8FD6F4 0x821D +0x8FD6F5 0x8221 +0x8FD6F6 0x8222 +0x8FD6F7 0x8228 +0x8FD6F8 0x8232 +0x8FD6F9 0x8234 +0x8FD6FA 0x823A +0x8FD6FB 0x8243 +0x8FD6FC 0x8244 +0x8FD6FD 0x8245 +0x8FD6FE 0x8246 +0x8FD7A1 0x824B +0x8FD7A2 0x824E +0x8FD7A3 0x824F +0x8FD7A4 0x8251 +0x8FD7A5 0x8256 +0x8FD7A6 0x825C +0x8FD7A7 0x8260 +0x8FD7A8 0x8263 +0x8FD7A9 0x8267 +0x8FD7AA 0x826D +0x8FD7AB 0x8274 +0x8FD7AC 0x827B +0x8FD7AD 0x827D +0x8FD7AE 0x827F +0x8FD7AF 0x8280 +0x8FD7B0 0x8281 +0x8FD7B1 0x8283 +0x8FD7B2 0x8284 +0x8FD7B3 0x8287 +0x8FD7B4 0x8289 +0x8FD7B5 0x828A +0x8FD7B6 0x828E +0x8FD7B7 0x8291 +0x8FD7B8 0x8294 +0x8FD7B9 0x8296 +0x8FD7BA 0x8298 +0x8FD7BB 0x829A +0x8FD7BC 0x829B +0x8FD7BD 0x82A0 +0x8FD7BE 0x82A1 +0x8FD7BF 0x82A3 +0x8FD7C0 0x82A4 +0x8FD7C1 0x82A7 +0x8FD7C2 0x82A8 +0x8FD7C3 0x82A9 +0x8FD7C4 0x82AA +0x8FD7C5 0x82AE +0x8FD7C6 0x82B0 +0x8FD7C7 0x82B2 +0x8FD7C8 0x82B4 +0x8FD7C9 0x82B7 +0x8FD7CA 0x82BA +0x8FD7CB 0x82BC +0x8FD7CC 0x82BE +0x8FD7CD 0x82BF +0x8FD7CE 0x82C6 +0x8FD7CF 0x82D0 +0x8FD7D0 0x82D5 +0x8FD7D1 0x82DA +0x8FD7D2 0x82E0 +0x8FD7D3 0x82E2 +0x8FD7D4 0x82E4 +0x8FD7D5 0x82E8 +0x8FD7D6 0x82EA +0x8FD7D7 0x82ED +0x8FD7D8 0x82EF +0x8FD7D9 0x82F6 +0x8FD7DA 0x82F7 +0x8FD7DB 0x82FD +0x8FD7DC 0x82FE +0x8FD7DD 0x8300 +0x8FD7DE 0x8301 +0x8FD7DF 0x8307 +0x8FD7E0 0x8308 +0x8FD7E1 0x830A +0x8FD7E2 0x830B +0x8FD7E3 0x8354 +0x8FD7E4 0x831B +0x8FD7E5 0x831D +0x8FD7E6 0x831E +0x8FD7E7 0x831F +0x8FD7E8 0x8321 +0x8FD7E9 0x8322 +0x8FD7EA 0x832C +0x8FD7EB 0x832D +0x8FD7EC 0x832E +0x8FD7ED 0x8330 +0x8FD7EE 0x8333 +0x8FD7EF 0x8337 +0x8FD7F0 0x833A +0x8FD7F1 0x833C +0x8FD7F2 0x833D +0x8FD7F3 0x8342 +0x8FD7F4 0x8343 +0x8FD7F5 0x8344 +0x8FD7F6 0x8347 +0x8FD7F7 0x834D +0x8FD7F8 0x834E +0x8FD7F9 0x8351 +0x8FD7FA 0x8355 +0x8FD7FB 0x8356 +0x8FD7FC 0x8357 +0x8FD7FD 0x8370 +0x8FD7FE 0x8378 +0x8FD8A1 0x837D +0x8FD8A2 0x837F +0x8FD8A3 0x8380 +0x8FD8A4 0x8382 +0x8FD8A5 0x8384 +0x8FD8A6 0x8386 +0x8FD8A7 0x838D +0x8FD8A8 0x8392 +0x8FD8A9 0x8394 +0x8FD8AA 0x8395 +0x8FD8AB 0x8398 +0x8FD8AC 0x8399 +0x8FD8AD 0x839B +0x8FD8AE 0x839C +0x8FD8AF 0x839D +0x8FD8B0 0x83A6 +0x8FD8B1 0x83A7 +0x8FD8B2 0x83A9 +0x8FD8B3 0x83AC +0x8FD8B4 0x83BE +0x8FD8B5 0x83BF +0x8FD8B6 0x83C0 +0x8FD8B7 0x83C7 +0x8FD8B8 0x83C9 +0x8FD8B9 0x83CF +0x8FD8BA 0x83D0 +0x8FD8BB 0x83D1 +0x8FD8BC 0x83D4 +0x8FD8BD 0x83DD +0x8FD8BE 0x8353 +0x8FD8BF 0x83E8 +0x8FD8C0 0x83EA +0x8FD8C1 0x83F6 +0x8FD8C2 0x83F8 +0x8FD8C3 0x83F9 +0x8FD8C4 0x83FC +0x8FD8C5 0x8401 +0x8FD8C6 0x8406 +0x8FD8C7 0x840A +0x8FD8C8 0x840F +0x8FD8C9 0x8411 +0x8FD8CA 0x8415 +0x8FD8CB 0x8419 +0x8FD8CC 0x83AD +0x8FD8CD 0x842F +0x8FD8CE 0x8439 +0x8FD8CF 0x8445 +0x8FD8D0 0x8447 +0x8FD8D1 0x8448 +0x8FD8D2 0x844A +0x8FD8D3 0x844D +0x8FD8D4 0x844F +0x8FD8D5 0x8451 +0x8FD8D6 0x8452 +0x8FD8D7 0x8456 +0x8FD8D8 0x8458 +0x8FD8D9 0x8459 +0x8FD8DA 0x845A +0x8FD8DB 0x845C +0x8FD8DC 0x8460 +0x8FD8DD 0x8464 +0x8FD8DE 0x8465 +0x8FD8DF 0x8467 +0x8FD8E0 0x846A +0x8FD8E1 0x8470 +0x8FD8E2 0x8473 +0x8FD8E3 0x8474 +0x8FD8E4 0x8476 +0x8FD8E5 0x8478 +0x8FD8E6 0x847C +0x8FD8E7 0x847D +0x8FD8E8 0x8481 +0x8FD8E9 0x8485 +0x8FD8EA 0x8492 +0x8FD8EB 0x8493 +0x8FD8EC 0x8495 +0x8FD8ED 0x849E +0x8FD8EE 0x84A6 +0x8FD8EF 0x84A8 +0x8FD8F0 0x84A9 +0x8FD8F1 0x84AA +0x8FD8F2 0x84AF +0x8FD8F3 0x84B1 +0x8FD8F4 0x84B4 +0x8FD8F5 0x84BA +0x8FD8F6 0x84BD +0x8FD8F7 0x84BE +0x8FD8F8 0x84C0 +0x8FD8F9 0x84C2 +0x8FD8FA 0x84C7 +0x8FD8FB 0x84C8 +0x8FD8FC 0x84CC +0x8FD8FD 0x84CF +0x8FD8FE 0x84D3 +0x8FD9A1 0x84DC +0x8FD9A2 0x84E7 +0x8FD9A3 0x84EA +0x8FD9A4 0x84EF +0x8FD9A5 0x84F0 +0x8FD9A6 0x84F1 +0x8FD9A7 0x84F2 +0x8FD9A8 0x84F7 +0x8FD9A9 0x8532 +0x8FD9AA 0x84FA +0x8FD9AB 0x84FB +0x8FD9AC 0x84FD +0x8FD9AD 0x8502 +0x8FD9AE 0x8503 +0x8FD9AF 0x8507 +0x8FD9B0 0x850C +0x8FD9B1 0x850E +0x8FD9B2 0x8510 +0x8FD9B3 0x851C +0x8FD9B4 0x851E +0x8FD9B5 0x8522 +0x8FD9B6 0x8523 +0x8FD9B7 0x8524 +0x8FD9B8 0x8525 +0x8FD9B9 0x8527 +0x8FD9BA 0x852A +0x8FD9BB 0x852B +0x8FD9BC 0x852F +0x8FD9BD 0x8533 +0x8FD9BE 0x8534 +0x8FD9BF 0x8536 +0x8FD9C0 0x853F +0x8FD9C1 0x8546 +0x8FD9C2 0x854F +0x8FD9C3 0x8550 +0x8FD9C4 0x8551 +0x8FD9C5 0x8552 +0x8FD9C6 0x8553 +0x8FD9C7 0x8556 +0x8FD9C8 0x8559 +0x8FD9C9 0x855C +0x8FD9CA 0x855D +0x8FD9CB 0x855E +0x8FD9CC 0x855F +0x8FD9CD 0x8560 +0x8FD9CE 0x8561 +0x8FD9CF 0x8562 +0x8FD9D0 0x8564 +0x8FD9D1 0x856B +0x8FD9D2 0x856F +0x8FD9D3 0x8579 +0x8FD9D4 0x857A +0x8FD9D5 0x857B +0x8FD9D6 0x857D +0x8FD9D7 0x857F +0x8FD9D8 0x8581 +0x8FD9D9 0x8585 +0x8FD9DA 0x8586 +0x8FD9DB 0x8589 +0x8FD9DC 0x858B +0x8FD9DD 0x858C +0x8FD9DE 0x858F +0x8FD9DF 0x8593 +0x8FD9E0 0x8598 +0x8FD9E1 0x859D +0x8FD9E2 0x859F +0x8FD9E3 0x85A0 +0x8FD9E4 0x85A2 +0x8FD9E5 0x85A5 +0x8FD9E6 0x85A7 +0x8FD9E7 0x85B4 +0x8FD9E8 0x85B6 +0x8FD9E9 0x85B7 +0x8FD9EA 0x85B8 +0x8FD9EB 0x85BC +0x8FD9EC 0x85BD +0x8FD9ED 0x85BE +0x8FD9EE 0x85BF +0x8FD9EF 0x85C2 +0x8FD9F0 0x85C7 +0x8FD9F1 0x85CA +0x8FD9F2 0x85CB +0x8FD9F3 0x85CE +0x8FD9F4 0x85AD +0x8FD9F5 0x85D8 +0x8FD9F6 0x85DA +0x8FD9F7 0x85DF +0x8FD9F8 0x85E0 +0x8FD9F9 0x85E6 +0x8FD9FA 0x85E8 +0x8FD9FB 0x85ED +0x8FD9FC 0x85F3 +0x8FD9FD 0x85F6 +0x8FD9FE 0x85FC +0x8FDAA1 0x85FF +0x8FDAA2 0x8600 +0x8FDAA3 0x8604 +0x8FDAA4 0x8605 +0x8FDAA5 0x860D +0x8FDAA6 0x860E +0x8FDAA7 0x8610 +0x8FDAA8 0x8611 +0x8FDAA9 0x8612 +0x8FDAAA 0x8618 +0x8FDAAB 0x8619 +0x8FDAAC 0x861B +0x8FDAAD 0x861E +0x8FDAAE 0x8621 +0x8FDAAF 0x8627 +0x8FDAB0 0x8629 +0x8FDAB1 0x8636 +0x8FDAB2 0x8638 +0x8FDAB3 0x863A +0x8FDAB4 0x863C +0x8FDAB5 0x863D +0x8FDAB6 0x8640 +0x8FDAB7 0x8642 +0x8FDAB8 0x8646 +0x8FDAB9 0x8652 +0x8FDABA 0x8653 +0x8FDABB 0x8656 +0x8FDABC 0x8657 +0x8FDABD 0x8658 +0x8FDABE 0x8659 +0x8FDABF 0x865D +0x8FDAC0 0x8660 +0x8FDAC1 0x8661 +0x8FDAC2 0x8662 +0x8FDAC3 0x8663 +0x8FDAC4 0x8664 +0x8FDAC5 0x8669 +0x8FDAC6 0x866C +0x8FDAC7 0x866F +0x8FDAC8 0x8675 +0x8FDAC9 0x8676 +0x8FDACA 0x8677 +0x8FDACB 0x867A +0x8FDACC 0x868D +0x8FDACD 0x8691 +0x8FDACE 0x8696 +0x8FDACF 0x8698 +0x8FDAD0 0x869A +0x8FDAD1 0x869C +0x8FDAD2 0x86A1 +0x8FDAD3 0x86A6 +0x8FDAD4 0x86A7 +0x8FDAD5 0x86A8 +0x8FDAD6 0x86AD +0x8FDAD7 0x86B1 +0x8FDAD8 0x86B3 +0x8FDAD9 0x86B4 +0x8FDADA 0x86B5 +0x8FDADB 0x86B7 +0x8FDADC 0x86B8 +0x8FDADD 0x86B9 +0x8FDADE 0x86BF +0x8FDADF 0x86C0 +0x8FDAE0 0x86C1 +0x8FDAE1 0x86C3 +0x8FDAE2 0x86C5 +0x8FDAE3 0x86D1 +0x8FDAE4 0x86D2 +0x8FDAE5 0x86D5 +0x8FDAE6 0x86D7 +0x8FDAE7 0x86DA +0x8FDAE8 0x86DC +0x8FDAE9 0x86E0 +0x8FDAEA 0x86E3 +0x8FDAEB 0x86E5 +0x8FDAEC 0x86E7 +0x8FDAED 0x8688 +0x8FDAEE 0x86FA +0x8FDAEF 0x86FC +0x8FDAF0 0x86FD +0x8FDAF1 0x8704 +0x8FDAF2 0x8705 +0x8FDAF3 0x8707 +0x8FDAF4 0x870B +0x8FDAF5 0x870E +0x8FDAF6 0x870F +0x8FDAF7 0x8710 +0x8FDAF8 0x8713 +0x8FDAF9 0x8714 +0x8FDAFA 0x8719 +0x8FDAFB 0x871E +0x8FDAFC 0x871F +0x8FDAFD 0x8721 +0x8FDAFE 0x8723 +0x8FDBA1 0x8728 +0x8FDBA2 0x872E +0x8FDBA3 0x872F +0x8FDBA4 0x8731 +0x8FDBA5 0x8732 +0x8FDBA6 0x8739 +0x8FDBA7 0x873A +0x8FDBA8 0x873C +0x8FDBA9 0x873D +0x8FDBAA 0x873E +0x8FDBAB 0x8740 +0x8FDBAC 0x8743 +0x8FDBAD 0x8745 +0x8FDBAE 0x874D +0x8FDBAF 0x8758 +0x8FDBB0 0x875D +0x8FDBB1 0x8761 +0x8FDBB2 0x8764 +0x8FDBB3 0x8765 +0x8FDBB4 0x876F +0x8FDBB5 0x8771 +0x8FDBB6 0x8772 +0x8FDBB7 0x877B +0x8FDBB8 0x8783 +0x8FDBB9 0x8784 +0x8FDBBA 0x8785 +0x8FDBBB 0x8786 +0x8FDBBC 0x8787 +0x8FDBBD 0x8788 +0x8FDBBE 0x8789 +0x8FDBBF 0x878B +0x8FDBC0 0x878C +0x8FDBC1 0x8790 +0x8FDBC2 0x8793 +0x8FDBC3 0x8795 +0x8FDBC4 0x8797 +0x8FDBC5 0x8798 +0x8FDBC6 0x8799 +0x8FDBC7 0x879E +0x8FDBC8 0x87A0 +0x8FDBC9 0x87A3 +0x8FDBCA 0x87A7 +0x8FDBCB 0x87AC +0x8FDBCC 0x87AD +0x8FDBCD 0x87AE +0x8FDBCE 0x87B1 +0x8FDBCF 0x87B5 +0x8FDBD0 0x87BE +0x8FDBD1 0x87BF +0x8FDBD2 0x87C1 +0x8FDBD3 0x87C8 +0x8FDBD4 0x87C9 +0x8FDBD5 0x87CA +0x8FDBD6 0x87CE +0x8FDBD7 0x87D5 +0x8FDBD8 0x87D6 +0x8FDBD9 0x87D9 +0x8FDBDA 0x87DA +0x8FDBDB 0x87DC +0x8FDBDC 0x87DF +0x8FDBDD 0x87E2 +0x8FDBDE 0x87E3 +0x8FDBDF 0x87E4 +0x8FDBE0 0x87EA +0x8FDBE1 0x87EB +0x8FDBE2 0x87ED +0x8FDBE3 0x87F1 +0x8FDBE4 0x87F3 +0x8FDBE5 0x87F8 +0x8FDBE6 0x87FA +0x8FDBE7 0x87FF +0x8FDBE8 0x8801 +0x8FDBE9 0x8803 +0x8FDBEA 0x8806 +0x8FDBEB 0x8809 +0x8FDBEC 0x880A +0x8FDBED 0x880B +0x8FDBEE 0x8810 +0x8FDBEF 0x8819 +0x8FDBF0 0x8812 +0x8FDBF1 0x8813 +0x8FDBF2 0x8814 +0x8FDBF3 0x8818 +0x8FDBF4 0x881A +0x8FDBF5 0x881B +0x8FDBF6 0x881C +0x8FDBF7 0x881E +0x8FDBF8 0x881F +0x8FDBF9 0x8828 +0x8FDBFA 0x882D +0x8FDBFB 0x882E +0x8FDBFC 0x8830 +0x8FDBFD 0x8832 +0x8FDBFE 0x8835 +0x8FDCA1 0x883A +0x8FDCA2 0x883C +0x8FDCA3 0x8841 +0x8FDCA4 0x8843 +0x8FDCA5 0x8845 +0x8FDCA6 0x8848 +0x8FDCA7 0x8849 +0x8FDCA8 0x884A +0x8FDCA9 0x884B +0x8FDCAA 0x884E +0x8FDCAB 0x8851 +0x8FDCAC 0x8855 +0x8FDCAD 0x8856 +0x8FDCAE 0x8858 +0x8FDCAF 0x885A +0x8FDCB0 0x885C +0x8FDCB1 0x885F +0x8FDCB2 0x8860 +0x8FDCB3 0x8864 +0x8FDCB4 0x8869 +0x8FDCB5 0x8871 +0x8FDCB6 0x8879 +0x8FDCB7 0x887B +0x8FDCB8 0x8880 +0x8FDCB9 0x8898 +0x8FDCBA 0x889A +0x8FDCBB 0x889B +0x8FDCBC 0x889C +0x8FDCBD 0x889F +0x8FDCBE 0x88A0 +0x8FDCBF 0x88A8 +0x8FDCC0 0x88AA +0x8FDCC1 0x88BA +0x8FDCC2 0x88BD +0x8FDCC3 0x88BE +0x8FDCC4 0x88C0 +0x8FDCC5 0x88CA +0x8FDCC6 0x88CB +0x8FDCC7 0x88CC +0x8FDCC8 0x88CD +0x8FDCC9 0x88CE +0x8FDCCA 0x88D1 +0x8FDCCB 0x88D2 +0x8FDCCC 0x88D3 +0x8FDCCD 0x88DB +0x8FDCCE 0x88DE +0x8FDCCF 0x88E7 +0x8FDCD0 0x88EF +0x8FDCD1 0x88F0 +0x8FDCD2 0x88F1 +0x8FDCD3 0x88F5 +0x8FDCD4 0x88F7 +0x8FDCD5 0x8901 +0x8FDCD6 0x8906 +0x8FDCD7 0x890D +0x8FDCD8 0x890E +0x8FDCD9 0x890F +0x8FDCDA 0x8915 +0x8FDCDB 0x8916 +0x8FDCDC 0x8918 +0x8FDCDD 0x8919 +0x8FDCDE 0x891A +0x8FDCDF 0x891C +0x8FDCE0 0x8920 +0x8FDCE1 0x8926 +0x8FDCE2 0x8927 +0x8FDCE3 0x8928 +0x8FDCE4 0x8930 +0x8FDCE5 0x8931 +0x8FDCE6 0x8932 +0x8FDCE7 0x8935 +0x8FDCE8 0x8939 +0x8FDCE9 0x893A +0x8FDCEA 0x893E +0x8FDCEB 0x8940 +0x8FDCEC 0x8942 +0x8FDCED 0x8945 +0x8FDCEE 0x8946 +0x8FDCEF 0x8949 +0x8FDCF0 0x894F +0x8FDCF1 0x8952 +0x8FDCF2 0x8957 +0x8FDCF3 0x895A +0x8FDCF4 0x895B +0x8FDCF5 0x895C +0x8FDCF6 0x8961 +0x8FDCF7 0x8962 +0x8FDCF8 0x8963 +0x8FDCF9 0x896B +0x8FDCFA 0x896E +0x8FDCFB 0x8970 +0x8FDCFC 0x8973 +0x8FDCFD 0x8975 +0x8FDCFE 0x897A +0x8FDDA1 0x897B +0x8FDDA2 0x897C +0x8FDDA3 0x897D +0x8FDDA4 0x8989 +0x8FDDA5 0x898D +0x8FDDA6 0x8990 +0x8FDDA7 0x8994 +0x8FDDA8 0x8995 +0x8FDDA9 0x899B +0x8FDDAA 0x899C +0x8FDDAB 0x899F +0x8FDDAC 0x89A0 +0x8FDDAD 0x89A5 +0x8FDDAE 0x89B0 +0x8FDDAF 0x89B4 +0x8FDDB0 0x89B5 +0x8FDDB1 0x89B6 +0x8FDDB2 0x89B7 +0x8FDDB3 0x89BC +0x8FDDB4 0x89D4 +0x8FDDB5 0x89D5 +0x8FDDB6 0x89D6 +0x8FDDB7 0x89D7 +0x8FDDB8 0x89D8 +0x8FDDB9 0x89E5 +0x8FDDBA 0x89E9 +0x8FDDBB 0x89EB +0x8FDDBC 0x89ED +0x8FDDBD 0x89F1 +0x8FDDBE 0x89F3 +0x8FDDBF 0x89F6 +0x8FDDC0 0x89F9 +0x8FDDC1 0x89FD +0x8FDDC2 0x89FF +0x8FDDC3 0x8A04 +0x8FDDC4 0x8A05 +0x8FDDC5 0x8A07 +0x8FDDC6 0x8A0F +0x8FDDC7 0x8A11 +0x8FDDC8 0x8A12 +0x8FDDC9 0x8A14 +0x8FDDCA 0x8A15 +0x8FDDCB 0x8A1E +0x8FDDCC 0x8A20 +0x8FDDCD 0x8A22 +0x8FDDCE 0x8A24 +0x8FDDCF 0x8A26 +0x8FDDD0 0x8A2B +0x8FDDD1 0x8A2C +0x8FDDD2 0x8A2F +0x8FDDD3 0x8A35 +0x8FDDD4 0x8A37 +0x8FDDD5 0x8A3D +0x8FDDD6 0x8A3E +0x8FDDD7 0x8A40 +0x8FDDD8 0x8A43 +0x8FDDD9 0x8A45 +0x8FDDDA 0x8A47 +0x8FDDDB 0x8A49 +0x8FDDDC 0x8A4D +0x8FDDDD 0x8A4E +0x8FDDDE 0x8A53 +0x8FDDDF 0x8A56 +0x8FDDE0 0x8A57 +0x8FDDE1 0x8A58 +0x8FDDE2 0x8A5C +0x8FDDE3 0x8A5D +0x8FDDE4 0x8A61 +0x8FDDE5 0x8A65 +0x8FDDE6 0x8A67 +0x8FDDE7 0x8A75 +0x8FDDE8 0x8A76 +0x8FDDE9 0x8A77 +0x8FDDEA 0x8A79 +0x8FDDEB 0x8A7A +0x8FDDEC 0x8A7B +0x8FDDED 0x8A7E +0x8FDDEE 0x8A7F +0x8FDDEF 0x8A80 +0x8FDDF0 0x8A83 +0x8FDDF1 0x8A86 +0x8FDDF2 0x8A8B +0x8FDDF3 0x8A8F +0x8FDDF4 0x8A90 +0x8FDDF5 0x8A92 +0x8FDDF6 0x8A96 +0x8FDDF7 0x8A97 +0x8FDDF8 0x8A99 +0x8FDDF9 0x8A9F +0x8FDDFA 0x8AA7 +0x8FDDFB 0x8AA9 +0x8FDDFC 0x8AAE +0x8FDDFD 0x8AAF +0x8FDDFE 0x8AB3 +0x8FDEA1 0x8AB6 +0x8FDEA2 0x8AB7 +0x8FDEA3 0x8ABB +0x8FDEA4 0x8ABE +0x8FDEA5 0x8AC3 +0x8FDEA6 0x8AC6 +0x8FDEA7 0x8AC8 +0x8FDEA8 0x8AC9 +0x8FDEA9 0x8ACA +0x8FDEAA 0x8AD1 +0x8FDEAB 0x8AD3 +0x8FDEAC 0x8AD4 +0x8FDEAD 0x8AD5 +0x8FDEAE 0x8AD7 +0x8FDEAF 0x8ADD +0x8FDEB0 0x8ADF +0x8FDEB1 0x8AEC +0x8FDEB2 0x8AF0 +0x8FDEB3 0x8AF4 +0x8FDEB4 0x8AF5 +0x8FDEB5 0x8AF6 +0x8FDEB6 0x8AFC +0x8FDEB7 0x8AFF +0x8FDEB8 0x8B05 +0x8FDEB9 0x8B06 +0x8FDEBA 0x8B0B +0x8FDEBB 0x8B11 +0x8FDEBC 0x8B1C +0x8FDEBD 0x8B1E +0x8FDEBE 0x8B1F +0x8FDEBF 0x8B0A +0x8FDEC0 0x8B2D +0x8FDEC1 0x8B30 +0x8FDEC2 0x8B37 +0x8FDEC3 0x8B3C +0x8FDEC4 0x8B42 +0x8FDEC5 0x8B43 +0x8FDEC6 0x8B44 +0x8FDEC7 0x8B45 +0x8FDEC8 0x8B46 +0x8FDEC9 0x8B48 +0x8FDECA 0x8B52 +0x8FDECB 0x8B53 +0x8FDECC 0x8B54 +0x8FDECD 0x8B59 +0x8FDECE 0x8B4D +0x8FDECF 0x8B5E +0x8FDED0 0x8B63 +0x8FDED1 0x8B6D +0x8FDED2 0x8B76 +0x8FDED3 0x8B78 +0x8FDED4 0x8B79 +0x8FDED5 0x8B7C +0x8FDED6 0x8B7E +0x8FDED7 0x8B81 +0x8FDED8 0x8B84 +0x8FDED9 0x8B85 +0x8FDEDA 0x8B8B +0x8FDEDB 0x8B8D +0x8FDEDC 0x8B8F +0x8FDEDD 0x8B94 +0x8FDEDE 0x8B95 +0x8FDEDF 0x8B9C +0x8FDEE0 0x8B9E +0x8FDEE1 0x8B9F +0x8FDEE2 0x8C38 +0x8FDEE3 0x8C39 +0x8FDEE4 0x8C3D +0x8FDEE5 0x8C3E +0x8FDEE6 0x8C45 +0x8FDEE7 0x8C47 +0x8FDEE8 0x8C49 +0x8FDEE9 0x8C4B +0x8FDEEA 0x8C4F +0x8FDEEB 0x8C51 +0x8FDEEC 0x8C53 +0x8FDEED 0x8C54 +0x8FDEEE 0x8C57 +0x8FDEEF 0x8C58 +0x8FDEF0 0x8C5B +0x8FDEF1 0x8C5D +0x8FDEF2 0x8C59 +0x8FDEF3 0x8C63 +0x8FDEF4 0x8C64 +0x8FDEF5 0x8C66 +0x8FDEF6 0x8C68 +0x8FDEF7 0x8C69 +0x8FDEF8 0x8C6D +0x8FDEF9 0x8C73 +0x8FDEFA 0x8C75 +0x8FDEFB 0x8C76 +0x8FDEFC 0x8C7B +0x8FDEFD 0x8C7E +0x8FDEFE 0x8C86 +0x8FDFA1 0x8C87 +0x8FDFA2 0x8C8B +0x8FDFA3 0x8C90 +0x8FDFA4 0x8C92 +0x8FDFA5 0x8C93 +0x8FDFA6 0x8C99 +0x8FDFA7 0x8C9B +0x8FDFA8 0x8C9C +0x8FDFA9 0x8CA4 +0x8FDFAA 0x8CB9 +0x8FDFAB 0x8CBA +0x8FDFAC 0x8CC5 +0x8FDFAD 0x8CC6 +0x8FDFAE 0x8CC9 +0x8FDFAF 0x8CCB +0x8FDFB0 0x8CCF +0x8FDFB1 0x8CD6 +0x8FDFB2 0x8CD5 +0x8FDFB3 0x8CD9 +0x8FDFB4 0x8CDD +0x8FDFB5 0x8CE1 +0x8FDFB6 0x8CE8 +0x8FDFB7 0x8CEC +0x8FDFB8 0x8CEF +0x8FDFB9 0x8CF0 +0x8FDFBA 0x8CF2 +0x8FDFBB 0x8CF5 +0x8FDFBC 0x8CF7 +0x8FDFBD 0x8CF8 +0x8FDFBE 0x8CFE +0x8FDFBF 0x8CFF +0x8FDFC0 0x8D01 +0x8FDFC1 0x8D03 +0x8FDFC2 0x8D09 +0x8FDFC3 0x8D12 +0x8FDFC4 0x8D17 +0x8FDFC5 0x8D1B +0x8FDFC6 0x8D65 +0x8FDFC7 0x8D69 +0x8FDFC8 0x8D6C +0x8FDFC9 0x8D6E +0x8FDFCA 0x8D7F +0x8FDFCB 0x8D82 +0x8FDFCC 0x8D84 +0x8FDFCD 0x8D88 +0x8FDFCE 0x8D8D +0x8FDFCF 0x8D90 +0x8FDFD0 0x8D91 +0x8FDFD1 0x8D95 +0x8FDFD2 0x8D9E +0x8FDFD3 0x8D9F +0x8FDFD4 0x8DA0 +0x8FDFD5 0x8DA6 +0x8FDFD6 0x8DAB +0x8FDFD7 0x8DAC +0x8FDFD8 0x8DAF +0x8FDFD9 0x8DB2 +0x8FDFDA 0x8DB5 +0x8FDFDB 0x8DB7 +0x8FDFDC 0x8DB9 +0x8FDFDD 0x8DBB +0x8FDFDE 0x8DC0 +0x8FDFDF 0x8DC5 +0x8FDFE0 0x8DC6 +0x8FDFE1 0x8DC7 +0x8FDFE2 0x8DC8 +0x8FDFE3 0x8DCA +0x8FDFE4 0x8DCE +0x8FDFE5 0x8DD1 +0x8FDFE6 0x8DD4 +0x8FDFE7 0x8DD5 +0x8FDFE8 0x8DD7 +0x8FDFE9 0x8DD9 +0x8FDFEA 0x8DE4 +0x8FDFEB 0x8DE5 +0x8FDFEC 0x8DE7 +0x8FDFED 0x8DEC +0x8FDFEE 0x8DF0 +0x8FDFEF 0x8DBC +0x8FDFF0 0x8DF1 +0x8FDFF1 0x8DF2 +0x8FDFF2 0x8DF4 +0x8FDFF3 0x8DFD +0x8FDFF4 0x8E01 +0x8FDFF5 0x8E04 +0x8FDFF6 0x8E05 +0x8FDFF7 0x8E06 +0x8FDFF8 0x8E0B +0x8FDFF9 0x8E11 +0x8FDFFA 0x8E14 +0x8FDFFB 0x8E16 +0x8FDFFC 0x8E20 +0x8FDFFD 0x8E21 +0x8FDFFE 0x8E22 +0x8FE0A1 0x8E23 +0x8FE0A2 0x8E26 +0x8FE0A3 0x8E27 +0x8FE0A4 0x8E31 +0x8FE0A5 0x8E33 +0x8FE0A6 0x8E36 +0x8FE0A7 0x8E37 +0x8FE0A8 0x8E38 +0x8FE0A9 0x8E39 +0x8FE0AA 0x8E3D +0x8FE0AB 0x8E40 +0x8FE0AC 0x8E41 +0x8FE0AD 0x8E4B +0x8FE0AE 0x8E4D +0x8FE0AF 0x8E4E +0x8FE0B0 0x8E4F +0x8FE0B1 0x8E54 +0x8FE0B2 0x8E5B +0x8FE0B3 0x8E5C +0x8FE0B4 0x8E5D +0x8FE0B5 0x8E5E +0x8FE0B6 0x8E61 +0x8FE0B7 0x8E62 +0x8FE0B8 0x8E69 +0x8FE0B9 0x8E6C +0x8FE0BA 0x8E6D +0x8FE0BB 0x8E6F +0x8FE0BC 0x8E70 +0x8FE0BD 0x8E71 +0x8FE0BE 0x8E79 +0x8FE0BF 0x8E7A +0x8FE0C0 0x8E7B +0x8FE0C1 0x8E82 +0x8FE0C2 0x8E83 +0x8FE0C3 0x8E89 +0x8FE0C4 0x8E90 +0x8FE0C5 0x8E92 +0x8FE0C6 0x8E95 +0x8FE0C7 0x8E9A +0x8FE0C8 0x8E9B +0x8FE0C9 0x8E9D +0x8FE0CA 0x8E9E +0x8FE0CB 0x8EA2 +0x8FE0CC 0x8EA7 +0x8FE0CD 0x8EA9 +0x8FE0CE 0x8EAD +0x8FE0CF 0x8EAE +0x8FE0D0 0x8EB3 +0x8FE0D1 0x8EB5 +0x8FE0D2 0x8EBA +0x8FE0D3 0x8EBB +0x8FE0D4 0x8EC0 +0x8FE0D5 0x8EC1 +0x8FE0D6 0x8EC3 +0x8FE0D7 0x8EC4 +0x8FE0D8 0x8EC7 +0x8FE0D9 0x8ECF +0x8FE0DA 0x8ED1 +0x8FE0DB 0x8ED4 +0x8FE0DC 0x8EDC +0x8FE0DD 0x8EE8 +0x8FE0DE 0x8EEE +0x8FE0DF 0x8EF0 +0x8FE0E0 0x8EF1 +0x8FE0E1 0x8EF7 +0x8FE0E2 0x8EF9 +0x8FE0E3 0x8EFA +0x8FE0E4 0x8EED +0x8FE0E5 0x8F00 +0x8FE0E6 0x8F02 +0x8FE0E7 0x8F07 +0x8FE0E8 0x8F08 +0x8FE0E9 0x8F0F +0x8FE0EA 0x8F10 +0x8FE0EB 0x8F16 +0x8FE0EC 0x8F17 +0x8FE0ED 0x8F18 +0x8FE0EE 0x8F1E +0x8FE0EF 0x8F20 +0x8FE0F0 0x8F21 +0x8FE0F1 0x8F23 +0x8FE0F2 0x8F25 +0x8FE0F3 0x8F27 +0x8FE0F4 0x8F28 +0x8FE0F5 0x8F2C +0x8FE0F6 0x8F2D +0x8FE0F7 0x8F2E +0x8FE0F8 0x8F34 +0x8FE0F9 0x8F35 +0x8FE0FA 0x8F36 +0x8FE0FB 0x8F37 +0x8FE0FC 0x8F3A +0x8FE0FD 0x8F40 +0x8FE0FE 0x8F41 +0x8FE1A1 0x8F43 +0x8FE1A2 0x8F47 +0x8FE1A3 0x8F4F +0x8FE1A4 0x8F51 +0x8FE1A5 0x8F52 +0x8FE1A6 0x8F53 +0x8FE1A7 0x8F54 +0x8FE1A8 0x8F55 +0x8FE1A9 0x8F58 +0x8FE1AA 0x8F5D +0x8FE1AB 0x8F5E +0x8FE1AC 0x8F65 +0x8FE1AD 0x8F9D +0x8FE1AE 0x8FA0 +0x8FE1AF 0x8FA1 +0x8FE1B0 0x8FA4 +0x8FE1B1 0x8FA5 +0x8FE1B2 0x8FA6 +0x8FE1B3 0x8FB5 +0x8FE1B4 0x8FB6 +0x8FE1B5 0x8FB8 +0x8FE1B6 0x8FBE +0x8FE1B7 0x8FC0 +0x8FE1B8 0x8FC1 +0x8FE1B9 0x8FC6 +0x8FE1BA 0x8FCA +0x8FE1BB 0x8FCB +0x8FE1BC 0x8FCD +0x8FE1BD 0x8FD0 +0x8FE1BE 0x8FD2 +0x8FE1BF 0x8FD3 +0x8FE1C0 0x8FD5 +0x8FE1C1 0x8FE0 +0x8FE1C2 0x8FE3 +0x8FE1C3 0x8FE4 +0x8FE1C4 0x8FE8 +0x8FE1C5 0x8FEE +0x8FE1C6 0x8FF1 +0x8FE1C7 0x8FF5 +0x8FE1C8 0x8FF6 +0x8FE1C9 0x8FFB +0x8FE1CA 0x8FFE +0x8FE1CB 0x9002 +0x8FE1CC 0x9004 +0x8FE1CD 0x9008 +0x8FE1CE 0x900C +0x8FE1CF 0x9018 +0x8FE1D0 0x901B +0x8FE1D1 0x9028 +0x8FE1D2 0x9029 +0x8FE1D3 0x902F +0x8FE1D4 0x902A +0x8FE1D5 0x902C +0x8FE1D6 0x902D +0x8FE1D7 0x9033 +0x8FE1D8 0x9034 +0x8FE1D9 0x9037 +0x8FE1DA 0x903F +0x8FE1DB 0x9043 +0x8FE1DC 0x9044 +0x8FE1DD 0x904C +0x8FE1DE 0x905B +0x8FE1DF 0x905D +0x8FE1E0 0x9062 +0x8FE1E1 0x9066 +0x8FE1E2 0x9067 +0x8FE1E3 0x906C +0x8FE1E4 0x9070 +0x8FE1E5 0x9074 +0x8FE1E6 0x9079 +0x8FE1E7 0x9085 +0x8FE1E8 0x9088 +0x8FE1E9 0x908B +0x8FE1EA 0x908C +0x8FE1EB 0x908E +0x8FE1EC 0x9090 +0x8FE1ED 0x9095 +0x8FE1EE 0x9097 +0x8FE1EF 0x9098 +0x8FE1F0 0x9099 +0x8FE1F1 0x909B +0x8FE1F2 0x90A0 +0x8FE1F3 0x90A1 +0x8FE1F4 0x90A2 +0x8FE1F5 0x90A5 +0x8FE1F6 0x90B0 +0x8FE1F7 0x90B2 +0x8FE1F8 0x90B3 +0x8FE1F9 0x90B4 +0x8FE1FA 0x90B6 +0x8FE1FB 0x90BD +0x8FE1FC 0x90CC +0x8FE1FD 0x90BE +0x8FE1FE 0x90C3 +0x8FE2A1 0x90C4 +0x8FE2A2 0x90C5 +0x8FE2A3 0x90C7 +0x8FE2A4 0x90C8 +0x8FE2A5 0x90D5 +0x8FE2A6 0x90D7 +0x8FE2A7 0x90D8 +0x8FE2A8 0x90D9 +0x8FE2A9 0x90DC +0x8FE2AA 0x90DD +0x8FE2AB 0x90DF +0x8FE2AC 0x90E5 +0x8FE2AD 0x90D2 +0x8FE2AE 0x90F6 +0x8FE2AF 0x90EB +0x8FE2B0 0x90EF +0x8FE2B1 0x90F0 +0x8FE2B2 0x90F4 +0x8FE2B3 0x90FE +0x8FE2B4 0x90FF +0x8FE2B5 0x9100 +0x8FE2B6 0x9104 +0x8FE2B7 0x9105 +0x8FE2B8 0x9106 +0x8FE2B9 0x9108 +0x8FE2BA 0x910D +0x8FE2BB 0x9110 +0x8FE2BC 0x9114 +0x8FE2BD 0x9116 +0x8FE2BE 0x9117 +0x8FE2BF 0x9118 +0x8FE2C0 0x911A +0x8FE2C1 0x911C +0x8FE2C2 0x911E +0x8FE2C3 0x9120 +0x8FE2C4 0x9125 +0x8FE2C5 0x9122 +0x8FE2C6 0x9123 +0x8FE2C7 0x9127 +0x8FE2C8 0x9129 +0x8FE2C9 0x912E +0x8FE2CA 0x912F +0x8FE2CB 0x9131 +0x8FE2CC 0x9134 +0x8FE2CD 0x9136 +0x8FE2CE 0x9137 +0x8FE2CF 0x9139 +0x8FE2D0 0x913A +0x8FE2D1 0x913C +0x8FE2D2 0x913D +0x8FE2D3 0x9143 +0x8FE2D4 0x9147 +0x8FE2D5 0x9148 +0x8FE2D6 0x914F +0x8FE2D7 0x9153 +0x8FE2D8 0x9157 +0x8FE2D9 0x9159 +0x8FE2DA 0x915A +0x8FE2DB 0x915B +0x8FE2DC 0x9161 +0x8FE2DD 0x9164 +0x8FE2DE 0x9167 +0x8FE2DF 0x916D +0x8FE2E0 0x9174 +0x8FE2E1 0x9179 +0x8FE2E2 0x917A +0x8FE2E3 0x917B +0x8FE2E4 0x9181 +0x8FE2E5 0x9183 +0x8FE2E6 0x9185 +0x8FE2E7 0x9186 +0x8FE2E8 0x918A +0x8FE2E9 0x918E +0x8FE2EA 0x9191 +0x8FE2EB 0x9193 +0x8FE2EC 0x9194 +0x8FE2ED 0x9195 +0x8FE2EE 0x9198 +0x8FE2EF 0x919E +0x8FE2F0 0x91A1 +0x8FE2F1 0x91A6 +0x8FE2F2 0x91A8 +0x8FE2F3 0x91AC +0x8FE2F4 0x91AD +0x8FE2F5 0x91AE +0x8FE2F6 0x91B0 +0x8FE2F7 0x91B1 +0x8FE2F8 0x91B2 +0x8FE2F9 0x91B3 +0x8FE2FA 0x91B6 +0x8FE2FB 0x91BB +0x8FE2FC 0x91BC +0x8FE2FD 0x91BD +0x8FE2FE 0x91BF +0x8FE3A1 0x91C2 +0x8FE3A2 0x91C3 +0x8FE3A3 0x91C5 +0x8FE3A4 0x91D3 +0x8FE3A5 0x91D4 +0x8FE3A6 0x91D7 +0x8FE3A7 0x91D9 +0x8FE3A8 0x91DA +0x8FE3A9 0x91DE +0x8FE3AA 0x91E4 +0x8FE3AB 0x91E5 +0x8FE3AC 0x91E9 +0x8FE3AD 0x91EA +0x8FE3AE 0x91EC +0x8FE3AF 0x91ED +0x8FE3B0 0x91EE +0x8FE3B1 0x91EF +0x8FE3B2 0x91F0 +0x8FE3B3 0x91F1 +0x8FE3B4 0x91F7 +0x8FE3B5 0x91F9 +0x8FE3B6 0x91FB +0x8FE3B7 0x91FD +0x8FE3B8 0x9200 +0x8FE3B9 0x9201 +0x8FE3BA 0x9204 +0x8FE3BB 0x9205 +0x8FE3BC 0x9206 +0x8FE3BD 0x9207 +0x8FE3BE 0x9209 +0x8FE3BF 0x920A +0x8FE3C0 0x920C +0x8FE3C1 0x9210 +0x8FE3C2 0x9212 +0x8FE3C3 0x9213 +0x8FE3C4 0x9216 +0x8FE3C5 0x9218 +0x8FE3C6 0x921C +0x8FE3C7 0x921D +0x8FE3C8 0x9223 +0x8FE3C9 0x9224 +0x8FE3CA 0x9225 +0x8FE3CB 0x9226 +0x8FE3CC 0x9228 +0x8FE3CD 0x922E +0x8FE3CE 0x922F +0x8FE3CF 0x9230 +0x8FE3D0 0x9233 +0x8FE3D1 0x9235 +0x8FE3D2 0x9236 +0x8FE3D3 0x9238 +0x8FE3D4 0x9239 +0x8FE3D5 0x923A +0x8FE3D6 0x923C +0x8FE3D7 0x923E +0x8FE3D8 0x9240 +0x8FE3D9 0x9242 +0x8FE3DA 0x9243 +0x8FE3DB 0x9246 +0x8FE3DC 0x9247 +0x8FE3DD 0x924A +0x8FE3DE 0x924D +0x8FE3DF 0x924E +0x8FE3E0 0x924F +0x8FE3E1 0x9251 +0x8FE3E2 0x9258 +0x8FE3E3 0x9259 +0x8FE3E4 0x925C +0x8FE3E5 0x925D +0x8FE3E6 0x9260 +0x8FE3E7 0x9261 +0x8FE3E8 0x9265 +0x8FE3E9 0x9267 +0x8FE3EA 0x9268 +0x8FE3EB 0x9269 +0x8FE3EC 0x926E +0x8FE3ED 0x926F +0x8FE3EE 0x9270 +0x8FE3EF 0x9275 +0x8FE3F0 0x9276 +0x8FE3F1 0x9277 +0x8FE3F2 0x9278 +0x8FE3F3 0x9279 +0x8FE3F4 0x927B +0x8FE3F5 0x927C +0x8FE3F6 0x927D +0x8FE3F7 0x927F +0x8FE3F8 0x9288 +0x8FE3F9 0x9289 +0x8FE3FA 0x928A +0x8FE3FB 0x928D +0x8FE3FC 0x928E +0x8FE3FD 0x9292 +0x8FE3FE 0x9297 +0x8FE4A1 0x9299 +0x8FE4A2 0x929F +0x8FE4A3 0x92A0 +0x8FE4A4 0x92A4 +0x8FE4A5 0x92A5 +0x8FE4A6 0x92A7 +0x8FE4A7 0x92A8 +0x8FE4A8 0x92AB +0x8FE4A9 0x92AF +0x8FE4AA 0x92B2 +0x8FE4AB 0x92B6 +0x8FE4AC 0x92B8 +0x8FE4AD 0x92BA +0x8FE4AE 0x92BB +0x8FE4AF 0x92BC +0x8FE4B0 0x92BD +0x8FE4B1 0x92BF +0x8FE4B2 0x92C0 +0x8FE4B3 0x92C1 +0x8FE4B4 0x92C2 +0x8FE4B5 0x92C3 +0x8FE4B6 0x92C5 +0x8FE4B7 0x92C6 +0x8FE4B8 0x92C7 +0x8FE4B9 0x92C8 +0x8FE4BA 0x92CB +0x8FE4BB 0x92CC +0x8FE4BC 0x92CD +0x8FE4BD 0x92CE +0x8FE4BE 0x92D0 +0x8FE4BF 0x92D3 +0x8FE4C0 0x92D5 +0x8FE4C1 0x92D7 +0x8FE4C2 0x92D8 +0x8FE4C3 0x92D9 +0x8FE4C4 0x92DC +0x8FE4C5 0x92DD +0x8FE4C6 0x92DF +0x8FE4C7 0x92E0 +0x8FE4C8 0x92E1 +0x8FE4C9 0x92E3 +0x8FE4CA 0x92E5 +0x8FE4CB 0x92E7 +0x8FE4CC 0x92E8 +0x8FE4CD 0x92EC +0x8FE4CE 0x92EE +0x8FE4CF 0x92F0 +0x8FE4D0 0x92F9 +0x8FE4D1 0x92FB +0x8FE4D2 0x92FF +0x8FE4D3 0x9300 +0x8FE4D4 0x9302 +0x8FE4D5 0x9308 +0x8FE4D6 0x930D +0x8FE4D7 0x9311 +0x8FE4D8 0x9314 +0x8FE4D9 0x9315 +0x8FE4DA 0x931C +0x8FE4DB 0x931D +0x8FE4DC 0x931E +0x8FE4DD 0x931F +0x8FE4DE 0x9321 +0x8FE4DF 0x9324 +0x8FE4E0 0x9325 +0x8FE4E1 0x9327 +0x8FE4E2 0x9329 +0x8FE4E3 0x932A +0x8FE4E4 0x9333 +0x8FE4E5 0x9334 +0x8FE4E6 0x9336 +0x8FE4E7 0x9337 +0x8FE4E8 0x9347 +0x8FE4E9 0x9348 +0x8FE4EA 0x9349 +0x8FE4EB 0x9350 +0x8FE4EC 0x9351 +0x8FE4ED 0x9352 +0x8FE4EE 0x9355 +0x8FE4EF 0x9357 +0x8FE4F0 0x9358 +0x8FE4F1 0x935A +0x8FE4F2 0x935E +0x8FE4F3 0x9364 +0x8FE4F4 0x9365 +0x8FE4F5 0x9367 +0x8FE4F6 0x9369 +0x8FE4F7 0x936A +0x8FE4F8 0x936D +0x8FE4F9 0x936F +0x8FE4FA 0x9370 +0x8FE4FB 0x9371 +0x8FE4FC 0x9373 +0x8FE4FD 0x9374 +0x8FE4FE 0x9376 +0x8FE5A1 0x937A +0x8FE5A2 0x937D +0x8FE5A3 0x937F +0x8FE5A4 0x9380 +0x8FE5A5 0x9381 +0x8FE5A6 0x9382 +0x8FE5A7 0x9388 +0x8FE5A8 0x938A +0x8FE5A9 0x938B +0x8FE5AA 0x938D +0x8FE5AB 0x938F +0x8FE5AC 0x9392 +0x8FE5AD 0x9395 +0x8FE5AE 0x9398 +0x8FE5AF 0x939B +0x8FE5B0 0x939E +0x8FE5B1 0x93A1 +0x8FE5B2 0x93A3 +0x8FE5B3 0x93A4 +0x8FE5B4 0x93A6 +0x8FE5B5 0x93A8 +0x8FE5B6 0x93AB +0x8FE5B7 0x93B4 +0x8FE5B8 0x93B5 +0x8FE5B9 0x93B6 +0x8FE5BA 0x93BA +0x8FE5BB 0x93A9 +0x8FE5BC 0x93C1 +0x8FE5BD 0x93C4 +0x8FE5BE 0x93C5 +0x8FE5BF 0x93C6 +0x8FE5C0 0x93C7 +0x8FE5C1 0x93C9 +0x8FE5C2 0x93CA +0x8FE5C3 0x93CB +0x8FE5C4 0x93CC +0x8FE5C5 0x93CD +0x8FE5C6 0x93D3 +0x8FE5C7 0x93D9 +0x8FE5C8 0x93DC +0x8FE5C9 0x93DE +0x8FE5CA 0x93DF +0x8FE5CB 0x93E2 +0x8FE5CC 0x93E6 +0x8FE5CD 0x93E7 +0x8FE5CE 0x93F9 +0x8FE5CF 0x93F7 +0x8FE5D0 0x93F8 +0x8FE5D1 0x93FA +0x8FE5D2 0x93FB +0x8FE5D3 0x93FD +0x8FE5D4 0x9401 +0x8FE5D5 0x9402 +0x8FE5D6 0x9404 +0x8FE5D7 0x9408 +0x8FE5D8 0x9409 +0x8FE5D9 0x940D +0x8FE5DA 0x940E +0x8FE5DB 0x940F +0x8FE5DC 0x9415 +0x8FE5DD 0x9416 +0x8FE5DE 0x9417 +0x8FE5DF 0x941F +0x8FE5E0 0x942E +0x8FE5E1 0x942F +0x8FE5E2 0x9431 +0x8FE5E3 0x9432 +0x8FE5E4 0x9433 +0x8FE5E5 0x9434 +0x8FE5E6 0x943B +0x8FE5E7 0x943F +0x8FE5E8 0x943D +0x8FE5E9 0x9443 +0x8FE5EA 0x9445 +0x8FE5EB 0x9448 +0x8FE5EC 0x944A +0x8FE5ED 0x944C +0x8FE5EE 0x9455 +0x8FE5EF 0x9459 +0x8FE5F0 0x945C +0x8FE5F1 0x945F +0x8FE5F2 0x9461 +0x8FE5F3 0x9463 +0x8FE5F4 0x9468 +0x8FE5F5 0x946B +0x8FE5F6 0x946D +0x8FE5F7 0x946E +0x8FE5F8 0x946F +0x8FE5F9 0x9471 +0x8FE5FA 0x9472 +0x8FE5FB 0x9484 +0x8FE5FC 0x9483 +0x8FE5FD 0x9578 +0x8FE5FE 0x9579 +0x8FE6A1 0x957E +0x8FE6A2 0x9584 +0x8FE6A3 0x9588 +0x8FE6A4 0x958C +0x8FE6A5 0x958D +0x8FE6A6 0x958E +0x8FE6A7 0x959D +0x8FE6A8 0x959E +0x8FE6A9 0x959F +0x8FE6AA 0x95A1 +0x8FE6AB 0x95A6 +0x8FE6AC 0x95A9 +0x8FE6AD 0x95AB +0x8FE6AE 0x95AC +0x8FE6AF 0x95B4 +0x8FE6B0 0x95B6 +0x8FE6B1 0x95BA +0x8FE6B2 0x95BD +0x8FE6B3 0x95BF +0x8FE6B4 0x95C6 +0x8FE6B5 0x95C8 +0x8FE6B6 0x95C9 +0x8FE6B7 0x95CB +0x8FE6B8 0x95D0 +0x8FE6B9 0x95D1 +0x8FE6BA 0x95D2 +0x8FE6BB 0x95D3 +0x8FE6BC 0x95D9 +0x8FE6BD 0x95DA +0x8FE6BE 0x95DD +0x8FE6BF 0x95DE +0x8FE6C0 0x95DF +0x8FE6C1 0x95E0 +0x8FE6C2 0x95E4 +0x8FE6C3 0x95E6 +0x8FE6C4 0x961D +0x8FE6C5 0x961E +0x8FE6C6 0x9622 +0x8FE6C7 0x9624 +0x8FE6C8 0x9625 +0x8FE6C9 0x9626 +0x8FE6CA 0x962C +0x8FE6CB 0x9631 +0x8FE6CC 0x9633 +0x8FE6CD 0x9637 +0x8FE6CE 0x9638 +0x8FE6CF 0x9639 +0x8FE6D0 0x963A +0x8FE6D1 0x963C +0x8FE6D2 0x963D +0x8FE6D3 0x9641 +0x8FE6D4 0x9652 +0x8FE6D5 0x9654 +0x8FE6D6 0x9656 +0x8FE6D7 0x9657 +0x8FE6D8 0x9658 +0x8FE6D9 0x9661 +0x8FE6DA 0x966E +0x8FE6DB 0x9674 +0x8FE6DC 0x967B +0x8FE6DD 0x967C +0x8FE6DE 0x967E +0x8FE6DF 0x967F +0x8FE6E0 0x9681 +0x8FE6E1 0x9682 +0x8FE6E2 0x9683 +0x8FE6E3 0x9684 +0x8FE6E4 0x9689 +0x8FE6E5 0x9691 +0x8FE6E6 0x9696 +0x8FE6E7 0x969A +0x8FE6E8 0x969D +0x8FE6E9 0x969F +0x8FE6EA 0x96A4 +0x8FE6EB 0x96A5 +0x8FE6EC 0x96A6 +0x8FE6ED 0x96A9 +0x8FE6EE 0x96AE +0x8FE6EF 0x96AF +0x8FE6F0 0x96B3 +0x8FE6F1 0x96BA +0x8FE6F2 0x96CA +0x8FE6F3 0x96D2 +0x8FE6F4 0x5DB2 +0x8FE6F5 0x96D8 +0x8FE6F6 0x96DA +0x8FE6F7 0x96DD +0x8FE6F8 0x96DE +0x8FE6F9 0x96DF +0x8FE6FA 0x96E9 +0x8FE6FB 0x96EF +0x8FE6FC 0x96F1 +0x8FE6FD 0x96FA +0x8FE6FE 0x9702 +0x8FE7A1 0x9703 +0x8FE7A2 0x9705 +0x8FE7A3 0x9709 +0x8FE7A4 0x971A +0x8FE7A5 0x971B +0x8FE7A6 0x971D +0x8FE7A7 0x9721 +0x8FE7A8 0x9722 +0x8FE7A9 0x9723 +0x8FE7AA 0x9728 +0x8FE7AB 0x9731 +0x8FE7AC 0x9733 +0x8FE7AD 0x9741 +0x8FE7AE 0x9743 +0x8FE7AF 0x974A +0x8FE7B0 0x974E +0x8FE7B1 0x974F +0x8FE7B2 0x9755 +0x8FE7B3 0x9757 +0x8FE7B4 0x9758 +0x8FE7B5 0x975A +0x8FE7B6 0x975B +0x8FE7B7 0x9763 +0x8FE7B8 0x9767 +0x8FE7B9 0x976A +0x8FE7BA 0x976E +0x8FE7BB 0x9773 +0x8FE7BC 0x9776 +0x8FE7BD 0x9777 +0x8FE7BE 0x9778 +0x8FE7BF 0x977B +0x8FE7C0 0x977D +0x8FE7C1 0x977F +0x8FE7C2 0x9780 +0x8FE7C3 0x9789 +0x8FE7C4 0x9795 +0x8FE7C5 0x9796 +0x8FE7C6 0x9797 +0x8FE7C7 0x9799 +0x8FE7C8 0x979A +0x8FE7C9 0x979E +0x8FE7CA 0x979F +0x8FE7CB 0x97A2 +0x8FE7CC 0x97AC +0x8FE7CD 0x97AE +0x8FE7CE 0x97B1 +0x8FE7CF 0x97B2 +0x8FE7D0 0x97B5 +0x8FE7D1 0x97B6 +0x8FE7D2 0x97B8 +0x8FE7D3 0x97B9 +0x8FE7D4 0x97BA +0x8FE7D5 0x97BC +0x8FE7D6 0x97BE +0x8FE7D7 0x97BF +0x8FE7D8 0x97C1 +0x8FE7D9 0x97C4 +0x8FE7DA 0x97C5 +0x8FE7DB 0x97C7 +0x8FE7DC 0x97C9 +0x8FE7DD 0x97CA +0x8FE7DE 0x97CC +0x8FE7DF 0x97CD +0x8FE7E0 0x97CE +0x8FE7E1 0x97D0 +0x8FE7E2 0x97D1 +0x8FE7E3 0x97D4 +0x8FE7E4 0x97D7 +0x8FE7E5 0x97D8 +0x8FE7E6 0x97D9 +0x8FE7E7 0x97DD +0x8FE7E8 0x97DE +0x8FE7E9 0x97E0 +0x8FE7EA 0x97DB +0x8FE7EB 0x97E1 +0x8FE7EC 0x97E4 +0x8FE7ED 0x97EF +0x8FE7EE 0x97F1 +0x8FE7EF 0x97F4 +0x8FE7F0 0x97F7 +0x8FE7F1 0x97F8 +0x8FE7F2 0x97FA +0x8FE7F3 0x9807 +0x8FE7F4 0x980A +0x8FE7F5 0x9819 +0x8FE7F6 0x980D +0x8FE7F7 0x980E +0x8FE7F8 0x9814 +0x8FE7F9 0x9816 +0x8FE7FA 0x981C +0x8FE7FB 0x981E +0x8FE7FC 0x9820 +0x8FE7FD 0x9823 +0x8FE7FE 0x9826 +0x8FE8A1 0x982B +0x8FE8A2 0x982E +0x8FE8A3 0x982F +0x8FE8A4 0x9830 +0x8FE8A5 0x9832 +0x8FE8A6 0x9833 +0x8FE8A7 0x9835 +0x8FE8A8 0x9825 +0x8FE8A9 0x983E +0x8FE8AA 0x9844 +0x8FE8AB 0x9847 +0x8FE8AC 0x984A +0x8FE8AD 0x9851 +0x8FE8AE 0x9852 +0x8FE8AF 0x9853 +0x8FE8B0 0x9856 +0x8FE8B1 0x9857 +0x8FE8B2 0x9859 +0x8FE8B3 0x985A +0x8FE8B4 0x9862 +0x8FE8B5 0x9863 +0x8FE8B6 0x9865 +0x8FE8B7 0x9866 +0x8FE8B8 0x986A +0x8FE8B9 0x986C +0x8FE8BA 0x98AB +0x8FE8BB 0x98AD +0x8FE8BC 0x98AE +0x8FE8BD 0x98B0 +0x8FE8BE 0x98B4 +0x8FE8BF 0x98B7 +0x8FE8C0 0x98B8 +0x8FE8C1 0x98BA +0x8FE8C2 0x98BB +0x8FE8C3 0x98BF +0x8FE8C4 0x98C2 +0x8FE8C5 0x98C5 +0x8FE8C6 0x98C8 +0x8FE8C7 0x98CC +0x8FE8C8 0x98E1 +0x8FE8C9 0x98E3 +0x8FE8CA 0x98E5 +0x8FE8CB 0x98E6 +0x8FE8CC 0x98E7 +0x8FE8CD 0x98EA +0x8FE8CE 0x98F3 +0x8FE8CF 0x98F6 +0x8FE8D0 0x9902 +0x8FE8D1 0x9907 +0x8FE8D2 0x9908 +0x8FE8D3 0x9911 +0x8FE8D4 0x9915 +0x8FE8D5 0x9916 +0x8FE8D6 0x9917 +0x8FE8D7 0x991A +0x8FE8D8 0x991B +0x8FE8D9 0x991C +0x8FE8DA 0x991F +0x8FE8DB 0x9922 +0x8FE8DC 0x9926 +0x8FE8DD 0x9927 +0x8FE8DE 0x992B +0x8FE8DF 0x9931 +0x8FE8E0 0x9932 +0x8FE8E1 0x9933 +0x8FE8E2 0x9934 +0x8FE8E3 0x9935 +0x8FE8E4 0x9939 +0x8FE8E5 0x993A +0x8FE8E6 0x993B +0x8FE8E7 0x993C +0x8FE8E8 0x9940 +0x8FE8E9 0x9941 +0x8FE8EA 0x9946 +0x8FE8EB 0x9947 +0x8FE8EC 0x9948 +0x8FE8ED 0x994D +0x8FE8EE 0x994E +0x8FE8EF 0x9954 +0x8FE8F0 0x9958 +0x8FE8F1 0x9959 +0x8FE8F2 0x995B +0x8FE8F3 0x995C +0x8FE8F4 0x995E +0x8FE8F5 0x995F +0x8FE8F6 0x9960 +0x8FE8F7 0x999B +0x8FE8F8 0x999D +0x8FE8F9 0x999F +0x8FE8FA 0x99A6 +0x8FE8FB 0x99B0 +0x8FE8FC 0x99B1 +0x8FE8FD 0x99B2 +0x8FE8FE 0x99B5 +0x8FE9A1 0x99B9 +0x8FE9A2 0x99BA +0x8FE9A3 0x99BD +0x8FE9A4 0x99BF +0x8FE9A5 0x99C3 +0x8FE9A6 0x99C9 +0x8FE9A7 0x99D3 +0x8FE9A8 0x99D4 +0x8FE9A9 0x99D9 +0x8FE9AA 0x99DA +0x8FE9AB 0x99DC +0x8FE9AC 0x99DE +0x8FE9AD 0x99E7 +0x8FE9AE 0x99EA +0x8FE9AF 0x99EB +0x8FE9B0 0x99EC +0x8FE9B1 0x99F0 +0x8FE9B2 0x99F4 +0x8FE9B3 0x99F5 +0x8FE9B4 0x99F9 +0x8FE9B5 0x99FD +0x8FE9B6 0x99FE +0x8FE9B7 0x9A02 +0x8FE9B8 0x9A03 +0x8FE9B9 0x9A04 +0x8FE9BA 0x9A0B +0x8FE9BB 0x9A0C +0x8FE9BC 0x9A10 +0x8FE9BD 0x9A11 +0x8FE9BE 0x9A16 +0x8FE9BF 0x9A1E +0x8FE9C0 0x9A20 +0x8FE9C1 0x9A22 +0x8FE9C2 0x9A23 +0x8FE9C3 0x9A24 +0x8FE9C4 0x9A27 +0x8FE9C5 0x9A2D +0x8FE9C6 0x9A2E +0x8FE9C7 0x9A33 +0x8FE9C8 0x9A35 +0x8FE9C9 0x9A36 +0x8FE9CA 0x9A38 +0x8FE9CB 0x9A47 +0x8FE9CC 0x9A41 +0x8FE9CD 0x9A44 +0x8FE9CE 0x9A4A +0x8FE9CF 0x9A4B +0x8FE9D0 0x9A4C +0x8FE9D1 0x9A4E +0x8FE9D2 0x9A51 +0x8FE9D3 0x9A54 +0x8FE9D4 0x9A56 +0x8FE9D5 0x9A5D +0x8FE9D6 0x9AAA +0x8FE9D7 0x9AAC +0x8FE9D8 0x9AAE +0x8FE9D9 0x9AAF +0x8FE9DA 0x9AB2 +0x8FE9DB 0x9AB4 +0x8FE9DC 0x9AB5 +0x8FE9DD 0x9AB6 +0x8FE9DE 0x9AB9 +0x8FE9DF 0x9ABB +0x8FE9E0 0x9ABE +0x8FE9E1 0x9ABF +0x8FE9E2 0x9AC1 +0x8FE9E3 0x9AC3 +0x8FE9E4 0x9AC6 +0x8FE9E5 0x9AC8 +0x8FE9E6 0x9ACE +0x8FE9E7 0x9AD0 +0x8FE9E8 0x9AD2 +0x8FE9E9 0x9AD5 +0x8FE9EA 0x9AD6 +0x8FE9EB 0x9AD7 +0x8FE9EC 0x9ADB +0x8FE9ED 0x9ADC +0x8FE9EE 0x9AE0 +0x8FE9EF 0x9AE4 +0x8FE9F0 0x9AE5 +0x8FE9F1 0x9AE7 +0x8FE9F2 0x9AE9 +0x8FE9F3 0x9AEC +0x8FE9F4 0x9AF2 +0x8FE9F5 0x9AF3 +0x8FE9F6 0x9AF5 +0x8FE9F7 0x9AF9 +0x8FE9F8 0x9AFA +0x8FE9F9 0x9AFD +0x8FE9FA 0x9AFF +0x8FE9FB 0x9B00 +0x8FE9FC 0x9B01 +0x8FE9FD 0x9B02 +0x8FE9FE 0x9B03 +0x8FEAA1 0x9B04 +0x8FEAA2 0x9B05 +0x8FEAA3 0x9B08 +0x8FEAA4 0x9B09 +0x8FEAA5 0x9B0B +0x8FEAA6 0x9B0C +0x8FEAA7 0x9B0D +0x8FEAA8 0x9B0E +0x8FEAA9 0x9B10 +0x8FEAAA 0x9B12 +0x8FEAAB 0x9B16 +0x8FEAAC 0x9B19 +0x8FEAAD 0x9B1B +0x8FEAAE 0x9B1C +0x8FEAAF 0x9B20 +0x8FEAB0 0x9B26 +0x8FEAB1 0x9B2B +0x8FEAB2 0x9B2D +0x8FEAB3 0x9B33 +0x8FEAB4 0x9B34 +0x8FEAB5 0x9B35 +0x8FEAB6 0x9B37 +0x8FEAB7 0x9B39 +0x8FEAB8 0x9B3A +0x8FEAB9 0x9B3D +0x8FEABA 0x9B48 +0x8FEABB 0x9B4B +0x8FEABC 0x9B4C +0x8FEABD 0x9B55 +0x8FEABE 0x9B56 +0x8FEABF 0x9B57 +0x8FEAC0 0x9B5B +0x8FEAC1 0x9B5E +0x8FEAC2 0x9B61 +0x8FEAC3 0x9B63 +0x8FEAC4 0x9B65 +0x8FEAC5 0x9B66 +0x8FEAC6 0x9B68 +0x8FEAC7 0x9B6A +0x8FEAC8 0x9B6B +0x8FEAC9 0x9B6C +0x8FEACA 0x9B6D +0x8FEACB 0x9B6E +0x8FEACC 0x9B73 +0x8FEACD 0x9B75 +0x8FEACE 0x9B77 +0x8FEACF 0x9B78 +0x8FEAD0 0x9B79 +0x8FEAD1 0x9B7F +0x8FEAD2 0x9B80 +0x8FEAD3 0x9B84 +0x8FEAD4 0x9B85 +0x8FEAD5 0x9B86 +0x8FEAD6 0x9B87 +0x8FEAD7 0x9B89 +0x8FEAD8 0x9B8A +0x8FEAD9 0x9B8B +0x8FEADA 0x9B8D +0x8FEADB 0x9B8F +0x8FEADC 0x9B90 +0x8FEADD 0x9B94 +0x8FEADE 0x9B9A +0x8FEADF 0x9B9D +0x8FEAE0 0x9B9E +0x8FEAE1 0x9BA6 +0x8FEAE2 0x9BA7 +0x8FEAE3 0x9BA9 +0x8FEAE4 0x9BAC +0x8FEAE5 0x9BB0 +0x8FEAE6 0x9BB1 +0x8FEAE7 0x9BB2 +0x8FEAE8 0x9BB7 +0x8FEAE9 0x9BB8 +0x8FEAEA 0x9BBB +0x8FEAEB 0x9BBC +0x8FEAEC 0x9BBE +0x8FEAED 0x9BBF +0x8FEAEE 0x9BC1 +0x8FEAEF 0x9BC7 +0x8FEAF0 0x9BC8 +0x8FEAF1 0x9BCE +0x8FEAF2 0x9BD0 +0x8FEAF3 0x9BD7 +0x8FEAF4 0x9BD8 +0x8FEAF5 0x9BDD +0x8FEAF6 0x9BDF +0x8FEAF7 0x9BE5 +0x8FEAF8 0x9BE7 +0x8FEAF9 0x9BEA +0x8FEAFA 0x9BEB +0x8FEAFB 0x9BEF +0x8FEAFC 0x9BF3 +0x8FEAFD 0x9BF7 +0x8FEAFE 0x9BF8 +0x8FEBA1 0x9BF9 +0x8FEBA2 0x9BFA +0x8FEBA3 0x9BFD +0x8FEBA4 0x9BFF +0x8FEBA5 0x9C00 +0x8FEBA6 0x9C02 +0x8FEBA7 0x9C0B +0x8FEBA8 0x9C0F +0x8FEBA9 0x9C11 +0x8FEBAA 0x9C16 +0x8FEBAB 0x9C18 +0x8FEBAC 0x9C19 +0x8FEBAD 0x9C1A +0x8FEBAE 0x9C1C +0x8FEBAF 0x9C1E +0x8FEBB0 0x9C22 +0x8FEBB1 0x9C23 +0x8FEBB2 0x9C26 +0x8FEBB3 0x9C27 +0x8FEBB4 0x9C28 +0x8FEBB5 0x9C29 +0x8FEBB6 0x9C2A +0x8FEBB7 0x9C31 +0x8FEBB8 0x9C35 +0x8FEBB9 0x9C36 +0x8FEBBA 0x9C37 +0x8FEBBB 0x9C3D +0x8FEBBC 0x9C41 +0x8FEBBD 0x9C43 +0x8FEBBE 0x9C44 +0x8FEBBF 0x9C45 +0x8FEBC0 0x9C49 +0x8FEBC1 0x9C4A +0x8FEBC2 0x9C4E +0x8FEBC3 0x9C4F +0x8FEBC4 0x9C50 +0x8FEBC5 0x9C53 +0x8FEBC6 0x9C54 +0x8FEBC7 0x9C56 +0x8FEBC8 0x9C58 +0x8FEBC9 0x9C5B +0x8FEBCA 0x9C5D +0x8FEBCB 0x9C5E +0x8FEBCC 0x9C5F +0x8FEBCD 0x9C63 +0x8FEBCE 0x9C69 +0x8FEBCF 0x9C6A +0x8FEBD0 0x9C5C +0x8FEBD1 0x9C6B +0x8FEBD2 0x9C68 +0x8FEBD3 0x9C6E +0x8FEBD4 0x9C70 +0x8FEBD5 0x9C72 +0x8FEBD6 0x9C75 +0x8FEBD7 0x9C77 +0x8FEBD8 0x9C7B +0x8FEBD9 0x9CE6 +0x8FEBDA 0x9CF2 +0x8FEBDB 0x9CF7 +0x8FEBDC 0x9CF9 +0x8FEBDD 0x9D0B +0x8FEBDE 0x9D02 +0x8FEBDF 0x9D11 +0x8FEBE0 0x9D17 +0x8FEBE1 0x9D18 +0x8FEBE2 0x9D1C +0x8FEBE3 0x9D1D +0x8FEBE4 0x9D1E +0x8FEBE5 0x9D2F +0x8FEBE6 0x9D30 +0x8FEBE7 0x9D32 +0x8FEBE8 0x9D33 +0x8FEBE9 0x9D34 +0x8FEBEA 0x9D3A +0x8FEBEB 0x9D3C +0x8FEBEC 0x9D45 +0x8FEBED 0x9D3D +0x8FEBEE 0x9D42 +0x8FEBEF 0x9D43 +0x8FEBF0 0x9D47 +0x8FEBF1 0x9D4A +0x8FEBF2 0x9D53 +0x8FEBF3 0x9D54 +0x8FEBF4 0x9D5F +0x8FEBF5 0x9D63 +0x8FEBF6 0x9D62 +0x8FEBF7 0x9D65 +0x8FEBF8 0x9D69 +0x8FEBF9 0x9D6A +0x8FEBFA 0x9D6B +0x8FEBFB 0x9D70 +0x8FEBFC 0x9D76 +0x8FEBFD 0x9D77 +0x8FEBFE 0x9D7B +0x8FECA1 0x9D7C +0x8FECA2 0x9D7E +0x8FECA3 0x9D83 +0x8FECA4 0x9D84 +0x8FECA5 0x9D86 +0x8FECA6 0x9D8A +0x8FECA7 0x9D8D +0x8FECA8 0x9D8E +0x8FECA9 0x9D92 +0x8FECAA 0x9D93 +0x8FECAB 0x9D95 +0x8FECAC 0x9D96 +0x8FECAD 0x9D97 +0x8FECAE 0x9D98 +0x8FECAF 0x9DA1 +0x8FECB0 0x9DAA +0x8FECB1 0x9DAC +0x8FECB2 0x9DAE +0x8FECB3 0x9DB1 +0x8FECB4 0x9DB5 +0x8FECB5 0x9DB9 +0x8FECB6 0x9DBC +0x8FECB7 0x9DBF +0x8FECB8 0x9DC3 +0x8FECB9 0x9DC7 +0x8FECBA 0x9DC9 +0x8FECBB 0x9DCA +0x8FECBC 0x9DD4 +0x8FECBD 0x9DD5 +0x8FECBE 0x9DD6 +0x8FECBF 0x9DD7 +0x8FECC0 0x9DDA +0x8FECC1 0x9DDE +0x8FECC2 0x9DDF +0x8FECC3 0x9DE0 +0x8FECC4 0x9DE5 +0x8FECC5 0x9DE7 +0x8FECC6 0x9DE9 +0x8FECC7 0x9DEB +0x8FECC8 0x9DEE +0x8FECC9 0x9DF0 +0x8FECCA 0x9DF3 +0x8FECCB 0x9DF4 +0x8FECCC 0x9DFE +0x8FECCD 0x9E0A +0x8FECCE 0x9E02 +0x8FECCF 0x9E07 +0x8FECD0 0x9E0E +0x8FECD1 0x9E10 +0x8FECD2 0x9E11 +0x8FECD3 0x9E12 +0x8FECD4 0x9E15 +0x8FECD5 0x9E16 +0x8FECD6 0x9E19 +0x8FECD7 0x9E1C +0x8FECD8 0x9E1D +0x8FECD9 0x9E7A +0x8FECDA 0x9E7B +0x8FECDB 0x9E7C +0x8FECDC 0x9E80 +0x8FECDD 0x9E82 +0x8FECDE 0x9E83 +0x8FECDF 0x9E84 +0x8FECE0 0x9E85 +0x8FECE1 0x9E87 +0x8FECE2 0x9E8E +0x8FECE3 0x9E8F +0x8FECE4 0x9E96 +0x8FECE5 0x9E98 +0x8FECE6 0x9E9B +0x8FECE7 0x9E9E +0x8FECE8 0x9EA4 +0x8FECE9 0x9EA8 +0x8FECEA 0x9EAC +0x8FECEB 0x9EAE +0x8FECEC 0x9EAF +0x8FECED 0x9EB0 +0x8FECEE 0x9EB3 +0x8FECEF 0x9EB4 +0x8FECF0 0x9EB5 +0x8FECF1 0x9EC6 +0x8FECF2 0x9EC8 +0x8FECF3 0x9ECB +0x8FECF4 0x9ED5 +0x8FECF5 0x9EDF +0x8FECF6 0x9EE4 +0x8FECF7 0x9EE7 +0x8FECF8 0x9EEC +0x8FECF9 0x9EED +0x8FECFA 0x9EEE +0x8FECFB 0x9EF0 +0x8FECFC 0x9EF1 +0x8FECFD 0x9EF2 +0x8FECFE 0x9EF5 +0x8FEDA1 0x9EF8 +0x8FEDA2 0x9EFF +0x8FEDA3 0x9F02 +0x8FEDA4 0x9F03 +0x8FEDA5 0x9F09 +0x8FEDA6 0x9F0F +0x8FEDA7 0x9F10 +0x8FEDA8 0x9F11 +0x8FEDA9 0x9F12 +0x8FEDAA 0x9F14 +0x8FEDAB 0x9F16 +0x8FEDAC 0x9F17 +0x8FEDAD 0x9F19 +0x8FEDAE 0x9F1A +0x8FEDAF 0x9F1B +0x8FEDB0 0x9F1F +0x8FEDB1 0x9F22 +0x8FEDB2 0x9F26 +0x8FEDB3 0x9F2A +0x8FEDB4 0x9F2B +0x8FEDB5 0x9F2F +0x8FEDB6 0x9F31 +0x8FEDB7 0x9F32 +0x8FEDB8 0x9F34 +0x8FEDB9 0x9F37 +0x8FEDBA 0x9F39 +0x8FEDBB 0x9F3A +0x8FEDBC 0x9F3C +0x8FEDBD 0x9F3D +0x8FEDBE 0x9F3F +0x8FEDBF 0x9F41 +0x8FEDC0 0x9F43 +0x8FEDC1 0x9F44 +0x8FEDC2 0x9F45 +0x8FEDC3 0x9F46 +0x8FEDC4 0x9F47 +0x8FEDC5 0x9F53 +0x8FEDC6 0x9F55 +0x8FEDC7 0x9F56 +0x8FEDC8 0x9F57 +0x8FEDC9 0x9F58 +0x8FEDCA 0x9F5A +0x8FEDCB 0x9F5D +0x8FEDCC 0x9F5E +0x8FEDCD 0x9F68 +0x8FEDCE 0x9F69 +0x8FEDCF 0x9F6D +0x8FEDD0 0x9F6E +0x8FEDD1 0x9F6F +0x8FEDD2 0x9F70 +0x8FEDD3 0x9F71 +0x8FEDD4 0x9F73 +0x8FEDD5 0x9F75 +0x8FEDD6 0x9F7A +0x8FEDD7 0x9F7D +0x8FEDD8 0x9F8F +0x8FEDD9 0x9F90 +0x8FEDDA 0x9F91 +0x8FEDDB 0x9F92 +0x8FEDDC 0x9F94 +0x8FEDDD 0x9F96 +0x8FEDDE 0x9F97 +0x8FEDDF 0x9F9E +0x8FEDE0 0x9FA1 +0x8FEDE1 0x9FA2 +0x8FEDE2 0x9FA3 +0x8FEDE3 0x9FA5 +0x8FF5A1 0xE3AC +0x8FF5A2 0xE3AD +0x8FF5A3 0xE3AE +0x8FF5A4 0xE3AF +0x8FF5A5 0xE3B0 +0x8FF5A6 0xE3B1 +0x8FF5A7 0xE3B2 +0x8FF5A8 0xE3B3 +0x8FF5A9 0xE3B4 +0x8FF5AA 0xE3B5 +0x8FF5AB 0xE3B6 +0x8FF5AC 0xE3B7 +0x8FF5AD 0xE3B8 +0x8FF5AE 0xE3B9 +0x8FF5AF 0xE3BA +0x8FF5B0 0xE3BB +0x8FF5B1 0xE3BC +0x8FF5B2 0xE3BD +0x8FF5B3 0xE3BE +0x8FF5B4 0xE3BF +0x8FF5B5 0xE3C0 +0x8FF5B6 0xE3C1 +0x8FF5B7 0xE3C2 +0x8FF5B8 0xE3C3 +0x8FF5B9 0xE3C4 +0x8FF5BA 0xE3C5 +0x8FF5BB 0xE3C6 +0x8FF5BC 0xE3C7 +0x8FF5BD 0xE3C8 +0x8FF5BE 0xE3C9 +0x8FF5BF 0xE3CA +0x8FF5C0 0xE3CB +0x8FF5C1 0xE3CC +0x8FF5C2 0xE3CD +0x8FF5C3 0xE3CE +0x8FF5C4 0xE3CF +0x8FF5C5 0xE3D0 +0x8FF5C6 0xE3D1 +0x8FF5C7 0xE3D2 +0x8FF5C8 0xE3D3 +0x8FF5C9 0xE3D4 +0x8FF5CA 0xE3D5 +0x8FF5CB 0xE3D6 +0x8FF5CC 0xE3D7 +0x8FF5CD 0xE3D8 +0x8FF5CE 0xE3D9 +0x8FF5CF 0xE3DA +0x8FF5D0 0xE3DB +0x8FF5D1 0xE3DC +0x8FF5D2 0xE3DD +0x8FF5D3 0xE3DE +0x8FF5D4 0xE3DF +0x8FF5D5 0xE3E0 +0x8FF5D6 0xE3E1 +0x8FF5D7 0xE3E2 +0x8FF5D8 0xE3E3 +0x8FF5D9 0xE3E4 +0x8FF5DA 0xE3E5 +0x8FF5DB 0xE3E6 +0x8FF5DC 0xE3E7 +0x8FF5DD 0xE3E8 +0x8FF5DE 0xE3E9 +0x8FF5DF 0xE3EA +0x8FF5E0 0xE3EB +0x8FF5E1 0xE3EC +0x8FF5E2 0xE3ED +0x8FF5E3 0xE3EE +0x8FF5E4 0xE3EF +0x8FF5E5 0xE3F0 +0x8FF5E6 0xE3F1 +0x8FF5E7 0xE3F2 +0x8FF5E8 0xE3F3 +0x8FF5E9 0xE3F4 +0x8FF5EA 0xE3F5 +0x8FF5EB 0xE3F6 +0x8FF5EC 0xE3F7 +0x8FF5ED 0xE3F8 +0x8FF5EE 0xE3F9 +0x8FF5EF 0xE3FA +0x8FF5F0 0xE3FB +0x8FF5F1 0xE3FC +0x8FF5F2 0xE3FD +0x8FF5F3 0xE3FE +0x8FF5F4 0xE3FF +0x8FF5F5 0xE400 +0x8FF5F6 0xE401 +0x8FF5F7 0xE402 +0x8FF5F8 0xE403 +0x8FF5F9 0xE404 +0x8FF5FA 0xE405 +0x8FF5FB 0xE406 +0x8FF5FC 0xE407 +0x8FF5FD 0xE408 +0x8FF5FE 0xE409 +0x8FF6A1 0xE40A +0x8FF6A2 0xE40B +0x8FF6A3 0xE40C +0x8FF6A4 0xE40D +0x8FF6A5 0xE40E +0x8FF6A6 0xE40F +0x8FF6A7 0xE410 +0x8FF6A8 0xE411 +0x8FF6A9 0xE412 +0x8FF6AA 0xE413 +0x8FF6AB 0xE414 +0x8FF6AC 0xE415 +0x8FF6AD 0xE416 +0x8FF6AE 0xE417 +0x8FF6AF 0xE418 +0x8FF6B0 0xE419 +0x8FF6B1 0xE41A +0x8FF6B2 0xE41B +0x8FF6B3 0xE41C +0x8FF6B4 0xE41D +0x8FF6B5 0xE41E +0x8FF6B6 0xE41F +0x8FF6B7 0xE420 +0x8FF6B8 0xE421 +0x8FF6B9 0xE422 +0x8FF6BA 0xE423 +0x8FF6BB 0xE424 +0x8FF6BC 0xE425 +0x8FF6BD 0xE426 +0x8FF6BE 0xE427 +0x8FF6BF 0xE428 +0x8FF6C0 0xE429 +0x8FF6C1 0xE42A +0x8FF6C2 0xE42B +0x8FF6C3 0xE42C +0x8FF6C4 0xE42D +0x8FF6C5 0xE42E +0x8FF6C6 0xE42F +0x8FF6C7 0xE430 +0x8FF6C8 0xE431 +0x8FF6C9 0xE432 +0x8FF6CA 0xE433 +0x8FF6CB 0xE434 +0x8FF6CC 0xE435 +0x8FF6CD 0xE436 +0x8FF6CE 0xE437 +0x8FF6CF 0xE438 +0x8FF6D0 0xE439 +0x8FF6D1 0xE43A +0x8FF6D2 0xE43B +0x8FF6D3 0xE43C +0x8FF6D4 0xE43D +0x8FF6D5 0xE43E +0x8FF6D6 0xE43F +0x8FF6D7 0xE440 +0x8FF6D8 0xE441 +0x8FF6D9 0xE442 +0x8FF6DA 0xE443 +0x8FF6DB 0xE444 +0x8FF6DC 0xE445 +0x8FF6DD 0xE446 +0x8FF6DE 0xE447 +0x8FF6DF 0xE448 +0x8FF6E0 0xE449 +0x8FF6E1 0xE44A +0x8FF6E2 0xE44B +0x8FF6E3 0xE44C +0x8FF6E4 0xE44D +0x8FF6E5 0xE44E +0x8FF6E6 0xE44F +0x8FF6E7 0xE450 +0x8FF6E8 0xE451 +0x8FF6E9 0xE452 +0x8FF6EA 0xE453 +0x8FF6EB 0xE454 +0x8FF6EC 0xE455 +0x8FF6ED 0xE456 +0x8FF6EE 0xE457 +0x8FF6EF 0xE458 +0x8FF6F0 0xE459 +0x8FF6F1 0xE45A +0x8FF6F2 0xE45B +0x8FF6F3 0xE45C +0x8FF6F4 0xE45D +0x8FF6F5 0xE45E +0x8FF6F6 0xE45F +0x8FF6F7 0xE460 +0x8FF6F8 0xE461 +0x8FF6F9 0xE462 +0x8FF6FA 0xE463 +0x8FF6FB 0xE464 +0x8FF6FC 0xE465 +0x8FF6FD 0xE466 +0x8FF6FE 0xE467 +0x8FF7A1 0xE468 +0x8FF7A2 0xE469 +0x8FF7A3 0xE46A +0x8FF7A4 0xE46B +0x8FF7A5 0xE46C +0x8FF7A6 0xE46D +0x8FF7A7 0xE46E +0x8FF7A8 0xE46F +0x8FF7A9 0xE470 +0x8FF7AA 0xE471 +0x8FF7AB 0xE472 +0x8FF7AC 0xE473 +0x8FF7AD 0xE474 +0x8FF7AE 0xE475 +0x8FF7AF 0xE476 +0x8FF7B0 0xE477 +0x8FF7B1 0xE478 +0x8FF7B2 0xE479 +0x8FF7B3 0xE47A +0x8FF7B4 0xE47B +0x8FF7B5 0xE47C +0x8FF7B6 0xE47D +0x8FF7B7 0xE47E +0x8FF7B8 0xE47F +0x8FF7B9 0xE480 +0x8FF7BA 0xE481 +0x8FF7BB 0xE482 +0x8FF7BC 0xE483 +0x8FF7BD 0xE484 +0x8FF7BE 0xE485 +0x8FF7BF 0xE486 +0x8FF7C0 0xE487 +0x8FF7C1 0xE488 +0x8FF7C2 0xE489 +0x8FF7C3 0xE48A +0x8FF7C4 0xE48B +0x8FF7C5 0xE48C +0x8FF7C6 0xE48D +0x8FF7C7 0xE48E +0x8FF7C8 0xE48F +0x8FF7C9 0xE490 +0x8FF7CA 0xE491 +0x8FF7CB 0xE492 +0x8FF7CC 0xE493 +0x8FF7CD 0xE494 +0x8FF7CE 0xE495 +0x8FF7CF 0xE496 +0x8FF7D0 0xE497 +0x8FF7D1 0xE498 +0x8FF7D2 0xE499 +0x8FF7D3 0xE49A +0x8FF7D4 0xE49B +0x8FF7D5 0xE49C +0x8FF7D6 0xE49D +0x8FF7D7 0xE49E +0x8FF7D8 0xE49F +0x8FF7D9 0xE4A0 +0x8FF7DA 0xE4A1 +0x8FF7DB 0xE4A2 +0x8FF7DC 0xE4A3 +0x8FF7DD 0xE4A4 +0x8FF7DE 0xE4A5 +0x8FF7DF 0xE4A6 +0x8FF7E0 0xE4A7 +0x8FF7E1 0xE4A8 +0x8FF7E2 0xE4A9 +0x8FF7E3 0xE4AA +0x8FF7E4 0xE4AB +0x8FF7E5 0xE4AC +0x8FF7E6 0xE4AD +0x8FF7E7 0xE4AE +0x8FF7E8 0xE4AF +0x8FF7E9 0xE4B0 +0x8FF7EA 0xE4B1 +0x8FF7EB 0xE4B2 +0x8FF7EC 0xE4B3 +0x8FF7ED 0xE4B4 +0x8FF7EE 0xE4B5 +0x8FF7EF 0xE4B6 +0x8FF7F0 0xE4B7 +0x8FF7F1 0xE4B8 +0x8FF7F2 0xE4B9 +0x8FF7F3 0xE4BA +0x8FF7F4 0xE4BB +0x8FF7F5 0xE4BC +0x8FF7F6 0xE4BD +0x8FF7F7 0xE4BE +0x8FF7F8 0xE4BF +0x8FF7F9 0xE4C0 +0x8FF7FA 0xE4C1 +0x8FF7FB 0xE4C2 +0x8FF7FC 0xE4C3 +0x8FF7FD 0xE4C4 +0x8FF7FE 0xE4C5 +0x8FF8A1 0xE4C6 +0x8FF8A2 0xE4C7 +0x8FF8A3 0xE4C8 +0x8FF8A4 0xE4C9 +0x8FF8A5 0xE4CA +0x8FF8A6 0xE4CB +0x8FF8A7 0xE4CC +0x8FF8A8 0xE4CD +0x8FF8A9 0xE4CE +0x8FF8AA 0xE4CF +0x8FF8AB 0xE4D0 +0x8FF8AC 0xE4D1 +0x8FF8AD 0xE4D2 +0x8FF8AE 0xE4D3 +0x8FF8AF 0xE4D4 +0x8FF8B0 0xE4D5 +0x8FF8B1 0xE4D6 +0x8FF8B2 0xE4D7 +0x8FF8B3 0xE4D8 +0x8FF8B4 0xE4D9 +0x8FF8B5 0xE4DA +0x8FF8B6 0xE4DB +0x8FF8B7 0xE4DC +0x8FF8B8 0xE4DD +0x8FF8B9 0xE4DE +0x8FF8BA 0xE4DF +0x8FF8BB 0xE4E0 +0x8FF8BC 0xE4E1 +0x8FF8BD 0xE4E2 +0x8FF8BE 0xE4E3 +0x8FF8BF 0xE4E4 +0x8FF8C0 0xE4E5 +0x8FF8C1 0xE4E6 +0x8FF8C2 0xE4E7 +0x8FF8C3 0xE4E8 +0x8FF8C4 0xE4E9 +0x8FF8C5 0xE4EA +0x8FF8C6 0xE4EB +0x8FF8C7 0xE4EC +0x8FF8C8 0xE4ED +0x8FF8C9 0xE4EE +0x8FF8CA 0xE4EF +0x8FF8CB 0xE4F0 +0x8FF8CC 0xE4F1 +0x8FF8CD 0xE4F2 +0x8FF8CE 0xE4F3 +0x8FF8CF 0xE4F4 +0x8FF8D0 0xE4F5 +0x8FF8D1 0xE4F6 +0x8FF8D2 0xE4F7 +0x8FF8D3 0xE4F8 +0x8FF8D4 0xE4F9 +0x8FF8D5 0xE4FA +0x8FF8D6 0xE4FB +0x8FF8D7 0xE4FC +0x8FF8D8 0xE4FD +0x8FF8D9 0xE4FE +0x8FF8DA 0xE4FF +0x8FF8DB 0xE500 +0x8FF8DC 0xE501 +0x8FF8DD 0xE502 +0x8FF8DE 0xE503 +0x8FF8DF 0xE504 +0x8FF8E0 0xE505 +0x8FF8E1 0xE506 +0x8FF8E2 0xE507 +0x8FF8E3 0xE508 +0x8FF8E4 0xE509 +0x8FF8E5 0xE50A +0x8FF8E6 0xE50B +0x8FF8E7 0xE50C +0x8FF8E8 0xE50D +0x8FF8E9 0xE50E +0x8FF8EA 0xE50F +0x8FF8EB 0xE510 +0x8FF8EC 0xE511 +0x8FF8ED 0xE512 +0x8FF8EE 0xE513 +0x8FF8EF 0xE514 +0x8FF8F0 0xE515 +0x8FF8F1 0xE516 +0x8FF8F2 0xE517 +0x8FF8F3 0xE518 +0x8FF8F4 0xE519 +0x8FF8F5 0xE51A +0x8FF8F6 0xE51B +0x8FF8F7 0xE51C +0x8FF8F8 0xE51D +0x8FF8F9 0xE51E +0x8FF8FA 0xE51F +0x8FF8FB 0xE520 +0x8FF8FC 0xE521 +0x8FF8FD 0xE522 +0x8FF8FE 0xE523 +0x8FF9A1 0xE524 +0x8FF9A2 0xE525 +0x8FF9A3 0xE526 +0x8FF9A4 0xE527 +0x8FF9A5 0xE528 +0x8FF9A6 0xE529 +0x8FF9A7 0xE52A +0x8FF9A8 0xE52B +0x8FF9A9 0xE52C +0x8FF9AA 0xE52D +0x8FF9AB 0xE52E +0x8FF9AC 0xE52F +0x8FF9AD 0xE530 +0x8FF9AE 0xE531 +0x8FF9AF 0xE532 +0x8FF9B0 0xE533 +0x8FF9B1 0xE534 +0x8FF9B2 0xE535 +0x8FF9B3 0xE536 +0x8FF9B4 0xE537 +0x8FF9B5 0xE538 +0x8FF9B6 0xE539 +0x8FF9B7 0xE53A +0x8FF9B8 0xE53B +0x8FF9B9 0xE53C +0x8FF9BA 0xE53D +0x8FF9BB 0xE53E +0x8FF9BC 0xE53F +0x8FF9BD 0xE540 +0x8FF9BE 0xE541 +0x8FF9BF 0xE542 +0x8FF9C0 0xE543 +0x8FF9C1 0xE544 +0x8FF9C2 0xE545 +0x8FF9C3 0xE546 +0x8FF9C4 0xE547 +0x8FF9C5 0xE548 +0x8FF9C6 0xE549 +0x8FF9C7 0xE54A +0x8FF9C8 0xE54B +0x8FF9C9 0xE54C +0x8FF9CA 0xE54D +0x8FF9CB 0xE54E +0x8FF9CC 0xE54F +0x8FF9CD 0xE550 +0x8FF9CE 0xE551 +0x8FF9CF 0xE552 +0x8FF9D0 0xE553 +0x8FF9D1 0xE554 +0x8FF9D2 0xE555 +0x8FF9D3 0xE556 +0x8FF9D4 0xE557 +0x8FF9D5 0xE558 +0x8FF9D6 0xE559 +0x8FF9D7 0xE55A +0x8FF9D8 0xE55B +0x8FF9D9 0xE55C +0x8FF9DA 0xE55D +0x8FF9DB 0xE55E +0x8FF9DC 0xE55F +0x8FF9DD 0xE560 +0x8FF9DE 0xE561 +0x8FF9DF 0xE562 +0x8FF9E0 0xE563 +0x8FF9E1 0xE564 +0x8FF9E2 0xE565 +0x8FF9E3 0xE566 +0x8FF9E4 0xE567 +0x8FF9E5 0xE568 +0x8FF9E6 0xE569 +0x8FF9E7 0xE56A +0x8FF9E8 0xE56B +0x8FF9E9 0xE56C +0x8FF9EA 0xE56D +0x8FF9EB 0xE56E +0x8FF9EC 0xE56F +0x8FF9ED 0xE570 +0x8FF9EE 0xE571 +0x8FF9EF 0xE572 +0x8FF9F0 0xE573 +0x8FF9F1 0xE574 +0x8FF9F2 0xE575 +0x8FF9F3 0xE576 +0x8FF9F4 0xE577 +0x8FF9F5 0xE578 +0x8FF9F6 0xE579 +0x8FF9F7 0xE57A +0x8FF9F8 0xE57B +0x8FF9F9 0xE57C +0x8FF9FA 0xE57D +0x8FF9FB 0xE57E +0x8FF9FC 0xE57F +0x8FF9FD 0xE580 +0x8FF9FE 0xE581 +0x8FFAA1 0xE582 +0x8FFAA2 0xE583 +0x8FFAA3 0xE584 +0x8FFAA4 0xE585 +0x8FFAA5 0xE586 +0x8FFAA6 0xE587 +0x8FFAA7 0xE588 +0x8FFAA8 0xE589 +0x8FFAA9 0xE58A +0x8FFAAA 0xE58B +0x8FFAAB 0xE58C +0x8FFAAC 0xE58D +0x8FFAAD 0xE58E +0x8FFAAE 0xE58F +0x8FFAAF 0xE590 +0x8FFAB0 0xE591 +0x8FFAB1 0xE592 +0x8FFAB2 0xE593 +0x8FFAB3 0xE594 +0x8FFAB4 0xE595 +0x8FFAB5 0xE596 +0x8FFAB6 0xE597 +0x8FFAB7 0xE598 +0x8FFAB8 0xE599 +0x8FFAB9 0xE59A +0x8FFABA 0xE59B +0x8FFABB 0xE59C +0x8FFABC 0xE59D +0x8FFABD 0xE59E +0x8FFABE 0xE59F +0x8FFABF 0xE5A0 +0x8FFAC0 0xE5A1 +0x8FFAC1 0xE5A2 +0x8FFAC2 0xE5A3 +0x8FFAC3 0xE5A4 +0x8FFAC4 0xE5A5 +0x8FFAC5 0xE5A6 +0x8FFAC6 0xE5A7 +0x8FFAC7 0xE5A8 +0x8FFAC8 0xE5A9 +0x8FFAC9 0xE5AA +0x8FFACA 0xE5AB +0x8FFACB 0xE5AC +0x8FFACC 0xE5AD +0x8FFACD 0xE5AE +0x8FFACE 0xE5AF +0x8FFACF 0xE5B0 +0x8FFAD0 0xE5B1 +0x8FFAD1 0xE5B2 +0x8FFAD2 0xE5B3 +0x8FFAD3 0xE5B4 +0x8FFAD4 0xE5B5 +0x8FFAD5 0xE5B6 +0x8FFAD6 0xE5B7 +0x8FFAD7 0xE5B8 +0x8FFAD8 0xE5B9 +0x8FFAD9 0xE5BA +0x8FFADA 0xE5BB +0x8FFADB 0xE5BC +0x8FFADC 0xE5BD +0x8FFADD 0xE5BE +0x8FFADE 0xE5BF +0x8FFADF 0xE5C0 +0x8FFAE0 0xE5C1 +0x8FFAE1 0xE5C2 +0x8FFAE2 0xE5C3 +0x8FFAE3 0xE5C4 +0x8FFAE4 0xE5C5 +0x8FFAE5 0xE5C6 +0x8FFAE6 0xE5C7 +0x8FFAE7 0xE5C8 +0x8FFAE8 0xE5C9 +0x8FFAE9 0xE5CA +0x8FFAEA 0xE5CB +0x8FFAEB 0xE5CC +0x8FFAEC 0xE5CD +0x8FFAED 0xE5CE +0x8FFAEE 0xE5CF +0x8FFAEF 0xE5D0 +0x8FFAF0 0xE5D1 +0x8FFAF1 0xE5D2 +0x8FFAF2 0xE5D3 +0x8FFAF3 0xE5D4 +0x8FFAF4 0xE5D5 +0x8FFAF5 0xE5D6 +0x8FFAF6 0xE5D7 +0x8FFAF7 0xE5D8 +0x8FFAF8 0xE5D9 +0x8FFAF9 0xE5DA +0x8FFAFA 0xE5DB +0x8FFAFB 0xE5DC +0x8FFAFC 0xE5DD +0x8FFAFD 0xE5DE +0x8FFAFE 0xE5DF +0x8FFBA1 0xE5E0 +0x8FFBA2 0xE5E1 +0x8FFBA3 0xE5E2 +0x8FFBA4 0xE5E3 +0x8FFBA5 0xE5E4 +0x8FFBA6 0xE5E5 +0x8FFBA7 0xE5E6 +0x8FFBA8 0xE5E7 +0x8FFBA9 0xE5E8 +0x8FFBAA 0xE5E9 +0x8FFBAB 0xE5EA +0x8FFBAC 0xE5EB +0x8FFBAD 0xE5EC +0x8FFBAE 0xE5ED +0x8FFBAF 0xE5EE +0x8FFBB0 0xE5EF +0x8FFBB1 0xE5F0 +0x8FFBB2 0xE5F1 +0x8FFBB3 0xE5F2 +0x8FFBB4 0xE5F3 +0x8FFBB5 0xE5F4 +0x8FFBB6 0xE5F5 +0x8FFBB7 0xE5F6 +0x8FFBB8 0xE5F7 +0x8FFBB9 0xE5F8 +0x8FFBBA 0xE5F9 +0x8FFBBB 0xE5FA +0x8FFBBC 0xE5FB +0x8FFBBD 0xE5FC +0x8FFBBE 0xE5FD +0x8FFBBF 0xE5FE +0x8FFBC0 0xE5FF +0x8FFBC1 0xE600 +0x8FFBC2 0xE601 +0x8FFBC3 0xE602 +0x8FFBC4 0xE603 +0x8FFBC5 0xE604 +0x8FFBC6 0xE605 +0x8FFBC7 0xE606 +0x8FFBC8 0xE607 +0x8FFBC9 0xE608 +0x8FFBCA 0xE609 +0x8FFBCB 0xE60A +0x8FFBCC 0xE60B +0x8FFBCD 0xE60C +0x8FFBCE 0xE60D +0x8FFBCF 0xE60E +0x8FFBD0 0xE60F +0x8FFBD1 0xE610 +0x8FFBD2 0xE611 +0x8FFBD3 0xE612 +0x8FFBD4 0xE613 +0x8FFBD5 0xE614 +0x8FFBD6 0xE615 +0x8FFBD7 0xE616 +0x8FFBD8 0xE617 +0x8FFBD9 0xE618 +0x8FFBDA 0xE619 +0x8FFBDB 0xE61A +0x8FFBDC 0xE61B +0x8FFBDD 0xE61C +0x8FFBDE 0xE61D +0x8FFBDF 0xE61E +0x8FFBE0 0xE61F +0x8FFBE1 0xE620 +0x8FFBE2 0xE621 +0x8FFBE3 0xE622 +0x8FFBE4 0xE623 +0x8FFBE5 0xE624 +0x8FFBE6 0xE625 +0x8FFBE7 0xE626 +0x8FFBE8 0xE627 +0x8FFBE9 0xE628 +0x8FFBEA 0xE629 +0x8FFBEB 0xE62A +0x8FFBEC 0xE62B +0x8FFBED 0xE62C +0x8FFBEE 0xE62D +0x8FFBEF 0xE62E +0x8FFBF0 0xE62F +0x8FFBF1 0xE630 +0x8FFBF2 0xE631 +0x8FFBF3 0xE632 +0x8FFBF4 0xE633 +0x8FFBF5 0xE634 +0x8FFBF6 0xE635 +0x8FFBF7 0xE636 +0x8FFBF8 0xE637 +0x8FFBF9 0xE638 +0x8FFBFA 0xE639 +0x8FFBFB 0xE63A +0x8FFBFC 0xE63B +0x8FFBFD 0xE63C +0x8FFBFE 0xE63D +0x8FFCA1 0xE63E +0x8FFCA2 0xE63F +0x8FFCA3 0xE640 +0x8FFCA4 0xE641 +0x8FFCA5 0xE642 +0x8FFCA6 0xE643 +0x8FFCA7 0xE644 +0x8FFCA8 0xE645 +0x8FFCA9 0xE646 +0x8FFCAA 0xE647 +0x8FFCAB 0xE648 +0x8FFCAC 0xE649 +0x8FFCAD 0xE64A +0x8FFCAE 0xE64B +0x8FFCAF 0xE64C +0x8FFCB0 0xE64D +0x8FFCB1 0xE64E +0x8FFCB2 0xE64F +0x8FFCB3 0xE650 +0x8FFCB4 0xE651 +0x8FFCB5 0xE652 +0x8FFCB6 0xE653 +0x8FFCB7 0xE654 +0x8FFCB8 0xE655 +0x8FFCB9 0xE656 +0x8FFCBA 0xE657 +0x8FFCBB 0xE658 +0x8FFCBC 0xE659 +0x8FFCBD 0xE65A +0x8FFCBE 0xE65B +0x8FFCBF 0xE65C +0x8FFCC0 0xE65D +0x8FFCC1 0xE65E +0x8FFCC2 0xE65F +0x8FFCC3 0xE660 +0x8FFCC4 0xE661 +0x8FFCC5 0xE662 +0x8FFCC6 0xE663 +0x8FFCC7 0xE664 +0x8FFCC8 0xE665 +0x8FFCC9 0xE666 +0x8FFCCA 0xE667 +0x8FFCCB 0xE668 +0x8FFCCC 0xE669 +0x8FFCCD 0xE66A +0x8FFCCE 0xE66B +0x8FFCCF 0xE66C +0x8FFCD0 0xE66D +0x8FFCD1 0xE66E +0x8FFCD2 0xE66F +0x8FFCD3 0xE670 +0x8FFCD4 0xE671 +0x8FFCD5 0xE672 +0x8FFCD6 0xE673 +0x8FFCD7 0xE674 +0x8FFCD8 0xE675 +0x8FFCD9 0xE676 +0x8FFCDA 0xE677 +0x8FFCDB 0xE678 +0x8FFCDC 0xE679 +0x8FFCDD 0xE67A +0x8FFCDE 0xE67B +0x8FFCDF 0xE67C +0x8FFCE0 0xE67D +0x8FFCE1 0xE67E +0x8FFCE2 0xE67F +0x8FFCE3 0xE680 +0x8FFCE4 0xE681 +0x8FFCE5 0xE682 +0x8FFCE6 0xE683 +0x8FFCE7 0xE684 +0x8FFCE8 0xE685 +0x8FFCE9 0xE686 +0x8FFCEA 0xE687 +0x8FFCEB 0xE688 +0x8FFCEC 0xE689 +0x8FFCED 0xE68A +0x8FFCEE 0xE68B +0x8FFCEF 0xE68C +0x8FFCF0 0xE68D +0x8FFCF1 0xE68E +0x8FFCF2 0xE68F +0x8FFCF3 0xE690 +0x8FFCF4 0xE691 +0x8FFCF5 0xE692 +0x8FFCF6 0xE693 +0x8FFCF7 0xE694 +0x8FFCF8 0xE695 +0x8FFCF9 0xE696 +0x8FFCFA 0xE697 +0x8FFCFB 0xE698 +0x8FFCFC 0xE699 +0x8FFCFD 0xE69A +0x8FFCFE 0xE69B +0x8FFDA1 0xE69C +0x8FFDA2 0xE69D +0x8FFDA3 0xE69E +0x8FFDA4 0xE69F +0x8FFDA5 0xE6A0 +0x8FFDA6 0xE6A1 +0x8FFDA7 0xE6A2 +0x8FFDA8 0xE6A3 +0x8FFDA9 0xE6A4 +0x8FFDAA 0xE6A5 +0x8FFDAB 0xE6A6 +0x8FFDAC 0xE6A7 +0x8FFDAD 0xE6A8 +0x8FFDAE 0xE6A9 +0x8FFDAF 0xE6AA +0x8FFDB0 0xE6AB +0x8FFDB1 0xE6AC +0x8FFDB2 0xE6AD +0x8FFDB3 0xE6AE +0x8FFDB4 0xE6AF +0x8FFDB5 0xE6B0 +0x8FFDB6 0xE6B1 +0x8FFDB7 0xE6B2 +0x8FFDB8 0xE6B3 +0x8FFDB9 0xE6B4 +0x8FFDBA 0xE6B5 +0x8FFDBB 0xE6B6 +0x8FFDBC 0xE6B7 +0x8FFDBD 0xE6B8 +0x8FFDBE 0xE6B9 +0x8FFDBF 0xE6BA +0x8FFDC0 0xE6BB +0x8FFDC1 0xE6BC +0x8FFDC2 0xE6BD +0x8FFDC3 0xE6BE +0x8FFDC4 0xE6BF +0x8FFDC5 0xE6C0 +0x8FFDC6 0xE6C1 +0x8FFDC7 0xE6C2 +0x8FFDC8 0xE6C3 +0x8FFDC9 0xE6C4 +0x8FFDCA 0xE6C5 +0x8FFDCB 0xE6C6 +0x8FFDCC 0xE6C7 +0x8FFDCD 0xE6C8 +0x8FFDCE 0xE6C9 +0x8FFDCF 0xE6CA +0x8FFDD0 0xE6CB +0x8FFDD1 0xE6CC +0x8FFDD2 0xE6CD +0x8FFDD3 0xE6CE +0x8FFDD4 0xE6CF +0x8FFDD5 0xE6D0 +0x8FFDD6 0xE6D1 +0x8FFDD7 0xE6D2 +0x8FFDD8 0xE6D3 +0x8FFDD9 0xE6D4 +0x8FFDDA 0xE6D5 +0x8FFDDB 0xE6D6 +0x8FFDDC 0xE6D7 +0x8FFDDD 0xE6D8 +0x8FFDDE 0xE6D9 +0x8FFDDF 0xE6DA +0x8FFDE0 0xE6DB +0x8FFDE1 0xE6DC +0x8FFDE2 0xE6DD +0x8FFDE3 0xE6DE +0x8FFDE4 0xE6DF +0x8FFDE5 0xE6E0 +0x8FFDE6 0xE6E1 +0x8FFDE7 0xE6E2 +0x8FFDE8 0xE6E3 +0x8FFDE9 0xE6E4 +0x8FFDEA 0xE6E5 +0x8FFDEB 0xE6E6 +0x8FFDEC 0xE6E7 +0x8FFDED 0xE6E8 +0x8FFDEE 0xE6E9 +0x8FFDEF 0xE6EA +0x8FFDF0 0xE6EB +0x8FFDF1 0xE6EC +0x8FFDF2 0xE6ED +0x8FFDF3 0xE6EE +0x8FFDF4 0xE6EF +0x8FFDF5 0xE6F0 +0x8FFDF6 0xE6F1 +0x8FFDF7 0xE6F2 +0x8FFDF8 0xE6F3 +0x8FFDF9 0xE6F4 +0x8FFDFA 0xE6F5 +0x8FFDFB 0xE6F6 +0x8FFDFC 0xE6F7 +0x8FFDFD 0xE6F8 +0x8FFDFE 0xE6F9 +0x8FFEA1 0xE6FA +0x8FFEA2 0xE6FB +0x8FFEA3 0xE6FC +0x8FFEA4 0xE6FD +0x8FFEA5 0xE6FE +0x8FFEA6 0xE6FF +0x8FFEA7 0xE700 +0x8FFEA8 0xE701 +0x8FFEA9 0xE702 +0x8FFEAA 0xE703 +0x8FFEAB 0xE704 +0x8FFEAC 0xE705 +0x8FFEAD 0xE706 +0x8FFEAE 0xE707 +0x8FFEAF 0xE708 +0x8FFEB0 0xE709 +0x8FFEB1 0xE70A +0x8FFEB2 0xE70B +0x8FFEB3 0xE70C +0x8FFEB4 0xE70D +0x8FFEB5 0xE70E +0x8FFEB6 0xE70F +0x8FFEB7 0xE710 +0x8FFEB8 0xE711 +0x8FFEB9 0xE712 +0x8FFEBA 0xE713 +0x8FFEBB 0xE714 +0x8FFEBC 0xE715 +0x8FFEBD 0xE716 +0x8FFEBE 0xE717 +0x8FFEBF 0xE718 +0x8FFEC0 0xE719 +0x8FFEC1 0xE71A +0x8FFEC2 0xE71B +0x8FFEC3 0xE71C +0x8FFEC4 0xE71D +0x8FFEC5 0xE71E +0x8FFEC6 0xE71F +0x8FFEC7 0xE720 +0x8FFEC8 0xE721 +0x8FFEC9 0xE722 +0x8FFECA 0xE723 +0x8FFECB 0xE724 +0x8FFECC 0xE725 +0x8FFECD 0xE726 +0x8FFECE 0xE727 +0x8FFECF 0xE728 +0x8FFED0 0xE729 +0x8FFED1 0xE72A +0x8FFED2 0xE72B +0x8FFED3 0xE72C +0x8FFED4 0xE72D +0x8FFED5 0xE72E +0x8FFED6 0xE72F +0x8FFED7 0xE730 +0x8FFED8 0xE731 +0x8FFED9 0xE732 +0x8FFEDA 0xE733 +0x8FFEDB 0xE734 +0x8FFEDC 0xE735 +0x8FFEDD 0xE736 +0x8FFEDE 0xE737 +0x8FFEDF 0xE738 +0x8FFEE0 0xE739 +0x8FFEE1 0xE73A +0x8FFEE2 0xE73B +0x8FFEE3 0xE73C +0x8FFEE4 0xE73D +0x8FFEE5 0xE73E +0x8FFEE6 0xE73F +0x8FFEE7 0xE740 +0x8FFEE8 0xE741 +0x8FFEE9 0xE742 +0x8FFEEA 0xE743 +0x8FFEEB 0xE744 +0x8FFEEC 0xE745 +0x8FFEED 0xE746 +0x8FFEEE 0xE747 +0x8FFEEF 0xE748 +0x8FFEF0 0xE749 +0x8FFEF1 0xE74A +0x8FFEF2 0xE74B +0x8FFEF3 0xE74C +0x8FFEF4 0xE74D +0x8FFEF5 0xE74E +0x8FFEF6 0xE74F +0x8FFEF7 0xE750 +0x8FFEF8 0xE751 +0x8FFEF9 0xE752 +0x8FFEFA 0xE753 +0x8FFEFB 0xE754 +0x8FFEFC 0xE755 +0x8FFEFD 0xE756 +0x8FFEFE 0xE757 +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0xFF0C +0xA1A5 0xFF0E +0xA1A6 0x30FB +0xA1A7 0xFF1A +0xA1A8 0xFF1B +0xA1A9 0xFF1F +0xA1AA 0xFF01 +0xA1AB 0x309B +0xA1AC 0x309C +0xA1AD 0x00B4 +0xA1AE 0xFF40 +0xA1AF 0x00A8 +0xA1B0 0xFF3E +0xA1B1 0xFFE3 +0xA1B2 0xFF3F +0xA1B3 0x30FD +0xA1B4 0x30FE +0xA1B5 0x309D +0xA1B6 0x309E +0xA1B7 0x3003 +0xA1B8 0x4EDD +0xA1B9 0x3005 +0xA1BA 0x3006 +0xA1BB 0x3007 +0xA1BC 0x30FC +0xA1BD 0x2015 +0xA1BE 0x2010 +0xA1BF 0xFF0F +0xA1C0 0xFF3C +0xA1C1 0x301C +0xA1C2 0x2016 +0xA1C3 0xFF5C +0xA1C4 0x2026 +0xA1C5 0x2025 +0xA1C6 0x2018 +0xA1C7 0x2019 +0xA1C8 0x201C +0xA1C9 0x201D +0xA1CA 0xFF08 +0xA1CB 0xFF09 +0xA1CC 0x3014 +0xA1CD 0x3015 +0xA1CE 0xFF3B +0xA1CF 0xFF3D +0xA1D0 0xFF5B +0xA1D1 0xFF5D +0xA1D2 0x3008 +0xA1D3 0x3009 +0xA1D4 0x300A +0xA1D5 0x300B +0xA1D6 0x300C +0xA1D7 0x300D +0xA1D8 0x300E +0xA1D9 0x300F +0xA1DA 0x3010 +0xA1DB 0x3011 +0xA1DC 0xFF0B +0xA1DD 0x2212 +0xA1DE 0x00B1 +0xA1DF 0x00D7 +0xA1E0 0x00F7 +0xA1E1 0xFF1D +0xA1E2 0x2260 +0xA1E3 0xFF1C +0xA1E4 0xFF1E +0xA1E5 0x2266 +0xA1E6 0x2267 +0xA1E7 0x221E +0xA1E8 0x2234 +0xA1E9 0x2642 +0xA1EA 0x2640 +0xA1EB 0x00B0 +0xA1EC 0x2032 +0xA1ED 0x2033 +0xA1EE 0x2103 +0xA1EF 0xFFE5 +0xA1F0 0xFF04 +0xA1F1 0x00A2 +0xA1F2 0x00A3 +0xA1F3 0xFF05 +0xA1F4 0xFF03 +0xA1F5 0xFF06 +0xA1F6 0xFF0A +0xA1F7 0xFF20 +0xA1F8 0x00A7 +0xA1F9 0x2606 +0xA1FA 0x2605 +0xA1FB 0x25CB +0xA1FC 0x25CF +0xA1FD 0x25CE +0xA1FE 0x25C7 +0xA2A1 0x25C6 +0xA2A2 0x25A1 +0xA2A3 0x25A0 +0xA2A4 0x25B3 +0xA2A5 0x25B2 +0xA2A6 0x25BD +0xA2A7 0x25BC +0xA2A8 0x203B +0xA2A9 0x3012 +0xA2AA 0x2192 +0xA2AB 0x2190 +0xA2AC 0x2191 +0xA2AD 0x2193 +0xA2AE 0x3013 +0xA2BA 0x2208 +0xA2BB 0x220B +0xA2BC 0x2286 +0xA2BD 0x2287 +0xA2BE 0x2282 +0xA2BF 0x2283 +0xA2C0 0x222A +0xA2C1 0x2229 +0xA2CA 0x2227 +0xA2CB 0x2228 +0xA2CC 0x00AC +0xA2CD 0x21D2 +0xA2CE 0x21D4 +0xA2CF 0x2200 +0xA2D0 0x2203 +0xA2DC 0x2220 +0xA2DD 0x22A5 +0xA2DE 0x2312 +0xA2DF 0x2202 +0xA2E0 0x2207 +0xA2E1 0x2261 +0xA2E2 0x2252 +0xA2E3 0x226A +0xA2E4 0x226B +0xA2E5 0x221A +0xA2E6 0x223D +0xA2E7 0x221D +0xA2E8 0x2235 +0xA2E9 0x222B +0xA2EA 0x222C +0xA2F2 0x212B +0xA2F3 0x2030 +0xA2F4 0x266F +0xA2F5 0x266D +0xA2F6 0x266A +0xA2F7 0x2020 +0xA2F8 0x2021 +0xA2F9 0x00B6 +0xA2FE 0x25EF +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA8A1 0x2500 +0xA8A2 0x2502 +0xA8A3 0x250C +0xA8A4 0x2510 +0xA8A5 0x2518 +0xA8A6 0x2514 +0xA8A7 0x251C +0xA8A8 0x252C +0xA8A9 0x2524 +0xA8AA 0x2534 +0xA8AB 0x253C +0xA8AC 0x2501 +0xA8AD 0x2503 +0xA8AE 0x250F +0xA8AF 0x2513 +0xA8B0 0x251B +0xA8B1 0x2517 +0xA8B2 0x2523 +0xA8B3 0x2533 +0xA8B4 0x252B +0xA8B5 0x253B +0xA8B6 0x254B +0xA8B7 0x2520 +0xA8B8 0x252F +0xA8B9 0x2528 +0xA8BA 0x2537 +0xA8BB 0x253F +0xA8BC 0x251D +0xA8BD 0x2530 +0xA8BE 0x2525 +0xA8BF 0x2538 +0xA8C0 0x2542 +0xB0A1 0x4E9C +0xB0A2 0x5516 +0xB0A3 0x5A03 +0xB0A4 0x963F +0xB0A5 0x54C0 +0xB0A6 0x611B +0xB0A7 0x6328 +0xB0A8 0x59F6 +0xB0A9 0x9022 +0xB0AA 0x8475 +0xB0AB 0x831C +0xB0AC 0x7A50 +0xB0AD 0x60AA +0xB0AE 0x63E1 +0xB0AF 0x6E25 +0xB0B0 0x65ED +0xB0B1 0x8466 +0xB0B2 0x82A6 +0xB0B3 0x9BF5 +0xB0B4 0x6893 +0xB0B5 0x5727 +0xB0B6 0x65A1 +0xB0B7 0x6271 +0xB0B8 0x5B9B +0xB0B9 0x59D0 +0xB0BA 0x867B +0xB0BB 0x98F4 +0xB0BC 0x7D62 +0xB0BD 0x7DBE +0xB0BE 0x9B8E +0xB0BF 0x6216 +0xB0C0 0x7C9F +0xB0C1 0x88B7 +0xB0C2 0x5B89 +0xB0C3 0x5EB5 +0xB0C4 0x6309 +0xB0C5 0x6697 +0xB0C6 0x6848 +0xB0C7 0x95C7 +0xB0C8 0x978D +0xB0C9 0x674F +0xB0CA 0x4EE5 +0xB0CB 0x4F0A +0xB0CC 0x4F4D +0xB0CD 0x4F9D +0xB0CE 0x5049 +0xB0CF 0x56F2 +0xB0D0 0x5937 +0xB0D1 0x59D4 +0xB0D2 0x5A01 +0xB0D3 0x5C09 +0xB0D4 0x60DF +0xB0D5 0x610F +0xB0D6 0x6170 +0xB0D7 0x6613 +0xB0D8 0x6905 +0xB0D9 0x70BA +0xB0DA 0x754F +0xB0DB 0x7570 +0xB0DC 0x79FB +0xB0DD 0x7DAD +0xB0DE 0x7DEF +0xB0DF 0x80C3 +0xB0E0 0x840E +0xB0E1 0x8863 +0xB0E2 0x8B02 +0xB0E3 0x9055 +0xB0E4 0x907A +0xB0E5 0x533B +0xB0E6 0x4E95 +0xB0E7 0x4EA5 +0xB0E8 0x57DF +0xB0E9 0x80B2 +0xB0EA 0x90C1 +0xB0EB 0x78EF +0xB0EC 0x4E00 +0xB0ED 0x58F1 +0xB0EE 0x6EA2 +0xB0EF 0x9038 +0xB0F0 0x7A32 +0xB0F1 0x8328 +0xB0F2 0x828B +0xB0F3 0x9C2F +0xB0F4 0x5141 +0xB0F5 0x5370 +0xB0F6 0x54BD +0xB0F7 0x54E1 +0xB0F8 0x56E0 +0xB0F9 0x59FB +0xB0FA 0x5F15 +0xB0FB 0x98F2 +0xB0FC 0x6DEB +0xB0FD 0x80E4 +0xB0FE 0x852D +0xB1A1 0x9662 +0xB1A2 0x9670 +0xB1A3 0x96A0 +0xB1A4 0x97FB +0xB1A5 0x540B +0xB1A6 0x53F3 +0xB1A7 0x5B87 +0xB1A8 0x70CF +0xB1A9 0x7FBD +0xB1AA 0x8FC2 +0xB1AB 0x96E8 +0xB1AC 0x536F +0xB1AD 0x9D5C +0xB1AE 0x7ABA +0xB1AF 0x4E11 +0xB1B0 0x7893 +0xB1B1 0x81FC +0xB1B2 0x6E26 +0xB1B3 0x5618 +0xB1B4 0x5504 +0xB1B5 0x6B1D +0xB1B6 0x851A +0xB1B7 0x9C3B +0xB1B8 0x59E5 +0xB1B9 0x53A9 +0xB1BA 0x6D66 +0xB1BB 0x74DC +0xB1BC 0x958F +0xB1BD 0x5642 +0xB1BE 0x4E91 +0xB1BF 0x904B +0xB1C0 0x96F2 +0xB1C1 0x834F +0xB1C2 0x990C +0xB1C3 0x53E1 +0xB1C4 0x55B6 +0xB1C5 0x5B30 +0xB1C6 0x5F71 +0xB1C7 0x6620 +0xB1C8 0x66F3 +0xB1C9 0x6804 +0xB1CA 0x6C38 +0xB1CB 0x6CF3 +0xB1CC 0x6D29 +0xB1CD 0x745B +0xB1CE 0x76C8 +0xB1CF 0x7A4E +0xB1D0 0x9834 +0xB1D1 0x82F1 +0xB1D2 0x885B +0xB1D3 0x8A60 +0xB1D4 0x92ED +0xB1D5 0x6DB2 +0xB1D6 0x75AB +0xB1D7 0x76CA +0xB1D8 0x99C5 +0xB1D9 0x60A6 +0xB1DA 0x8B01 +0xB1DB 0x8D8A +0xB1DC 0x95B2 +0xB1DD 0x698E +0xB1DE 0x53AD +0xB1DF 0x5186 +0xB1E0 0x5712 +0xB1E1 0x5830 +0xB1E2 0x5944 +0xB1E3 0x5BB4 +0xB1E4 0x5EF6 +0xB1E5 0x6028 +0xB1E6 0x63A9 +0xB1E7 0x63F4 +0xB1E8 0x6CBF +0xB1E9 0x6F14 +0xB1EA 0x708E +0xB1EB 0x7114 +0xB1EC 0x7159 +0xB1ED 0x71D5 +0xB1EE 0x733F +0xB1EF 0x7E01 +0xB1F0 0x8276 +0xB1F1 0x82D1 +0xB1F2 0x8597 +0xB1F3 0x9060 +0xB1F4 0x925B +0xB1F5 0x9D1B +0xB1F6 0x5869 +0xB1F7 0x65BC +0xB1F8 0x6C5A +0xB1F9 0x7525 +0xB1FA 0x51F9 +0xB1FB 0x592E +0xB1FC 0x5965 +0xB1FD 0x5F80 +0xB1FE 0x5FDC +0xB2A1 0x62BC +0xB2A2 0x65FA +0xB2A3 0x6A2A +0xB2A4 0x6B27 +0xB2A5 0x6BB4 +0xB2A6 0x738B +0xB2A7 0x7FC1 +0xB2A8 0x8956 +0xB2A9 0x9D2C +0xB2AA 0x9D0E +0xB2AB 0x9EC4 +0xB2AC 0x5CA1 +0xB2AD 0x6C96 +0xB2AE 0x837B +0xB2AF 0x5104 +0xB2B0 0x5C4B +0xB2B1 0x61B6 +0xB2B2 0x81C6 +0xB2B3 0x6876 +0xB2B4 0x7261 +0xB2B5 0x4E59 +0xB2B6 0x4FFA +0xB2B7 0x5378 +0xB2B8 0x6069 +0xB2B9 0x6E29 +0xB2BA 0x7A4F +0xB2BB 0x97F3 +0xB2BC 0x4E0B +0xB2BD 0x5316 +0xB2BE 0x4EEE +0xB2BF 0x4F55 +0xB2C0 0x4F3D +0xB2C1 0x4FA1 +0xB2C2 0x4F73 +0xB2C3 0x52A0 +0xB2C4 0x53EF +0xB2C5 0x5609 +0xB2C6 0x590F +0xB2C7 0x5AC1 +0xB2C8 0x5BB6 +0xB2C9 0x5BE1 +0xB2CA 0x79D1 +0xB2CB 0x6687 +0xB2CC 0x679C +0xB2CD 0x67B6 +0xB2CE 0x6B4C +0xB2CF 0x6CB3 +0xB2D0 0x706B +0xB2D1 0x73C2 +0xB2D2 0x798D +0xB2D3 0x79BE +0xB2D4 0x7A3C +0xB2D5 0x7B87 +0xB2D6 0x82B1 +0xB2D7 0x82DB +0xB2D8 0x8304 +0xB2D9 0x8377 +0xB2DA 0x83EF +0xB2DB 0x83D3 +0xB2DC 0x8766 +0xB2DD 0x8AB2 +0xB2DE 0x5629 +0xB2DF 0x8CA8 +0xB2E0 0x8FE6 +0xB2E1 0x904E +0xB2E2 0x971E +0xB2E3 0x868A +0xB2E4 0x4FC4 +0xB2E5 0x5CE8 +0xB2E6 0x6211 +0xB2E7 0x7259 +0xB2E8 0x753B +0xB2E9 0x81E5 +0xB2EA 0x82BD +0xB2EB 0x86FE +0xB2EC 0x8CC0 +0xB2ED 0x96C5 +0xB2EE 0x9913 +0xB2EF 0x99D5 +0xB2F0 0x4ECB +0xB2F1 0x4F1A +0xB2F2 0x89E3 +0xB2F3 0x56DE +0xB2F4 0x584A +0xB2F5 0x58CA +0xB2F6 0x5EFB +0xB2F7 0x5FEB +0xB2F8 0x602A +0xB2F9 0x6094 +0xB2FA 0x6062 +0xB2FB 0x61D0 +0xB2FC 0x6212 +0xB2FD 0x62D0 +0xB2FE 0x6539 +0xB3A1 0x9B41 +0xB3A2 0x6666 +0xB3A3 0x68B0 +0xB3A4 0x6D77 +0xB3A5 0x7070 +0xB3A6 0x754C +0xB3A7 0x7686 +0xB3A8 0x7D75 +0xB3A9 0x82A5 +0xB3AA 0x87F9 +0xB3AB 0x958B +0xB3AC 0x968E +0xB3AD 0x8C9D +0xB3AE 0x51F1 +0xB3AF 0x52BE +0xB3B0 0x5916 +0xB3B1 0x54B3 +0xB3B2 0x5BB3 +0xB3B3 0x5D16 +0xB3B4 0x6168 +0xB3B5 0x6982 +0xB3B6 0x6DAF +0xB3B7 0x788D +0xB3B8 0x84CB +0xB3B9 0x8857 +0xB3BA 0x8A72 +0xB3BB 0x93A7 +0xB3BC 0x9AB8 +0xB3BD 0x6D6C +0xB3BE 0x99A8 +0xB3BF 0x86D9 +0xB3C0 0x57A3 +0xB3C1 0x67FF +0xB3C2 0x86CE +0xB3C3 0x920E +0xB3C4 0x5283 +0xB3C5 0x5687 +0xB3C6 0x5404 +0xB3C7 0x5ED3 +0xB3C8 0x62E1 +0xB3C9 0x64B9 +0xB3CA 0x683C +0xB3CB 0x6838 +0xB3CC 0x6BBB +0xB3CD 0x7372 +0xB3CE 0x78BA +0xB3CF 0x7A6B +0xB3D0 0x899A +0xB3D1 0x89D2 +0xB3D2 0x8D6B +0xB3D3 0x8F03 +0xB3D4 0x90ED +0xB3D5 0x95A3 +0xB3D6 0x9694 +0xB3D7 0x9769 +0xB3D8 0x5B66 +0xB3D9 0x5CB3 +0xB3DA 0x697D +0xB3DB 0x984D +0xB3DC 0x984E +0xB3DD 0x639B +0xB3DE 0x7B20 +0xB3DF 0x6A2B +0xB3E0 0x6A7F +0xB3E1 0x68B6 +0xB3E2 0x9C0D +0xB3E3 0x6F5F +0xB3E4 0x5272 +0xB3E5 0x559D +0xB3E6 0x6070 +0xB3E7 0x62EC +0xB3E8 0x6D3B +0xB3E9 0x6E07 +0xB3EA 0x6ED1 +0xB3EB 0x845B +0xB3EC 0x8910 +0xB3ED 0x8F44 +0xB3EE 0x4E14 +0xB3EF 0x9C39 +0xB3F0 0x53F6 +0xB3F1 0x691B +0xB3F2 0x6A3A +0xB3F3 0x9784 +0xB3F4 0x682A +0xB3F5 0x515C +0xB3F6 0x7AC3 +0xB3F7 0x84B2 +0xB3F8 0x91DC +0xB3F9 0x938C +0xB3FA 0x565B +0xB3FB 0x9D28 +0xB3FC 0x6822 +0xB3FD 0x8305 +0xB3FE 0x8431 +0xB4A1 0x7CA5 +0xB4A2 0x5208 +0xB4A3 0x82C5 +0xB4A4 0x74E6 +0xB4A5 0x4E7E +0xB4A6 0x4F83 +0xB4A7 0x51A0 +0xB4A8 0x5BD2 +0xB4A9 0x520A +0xB4AA 0x52D8 +0xB4AB 0x52E7 +0xB4AC 0x5DFB +0xB4AD 0x559A +0xB4AE 0x582A +0xB4AF 0x59E6 +0xB4B0 0x5B8C +0xB4B1 0x5B98 +0xB4B2 0x5BDB +0xB4B3 0x5E72 +0xB4B4 0x5E79 +0xB4B5 0x60A3 +0xB4B6 0x611F +0xB4B7 0x6163 +0xB4B8 0x61BE +0xB4B9 0x63DB +0xB4BA 0x6562 +0xB4BB 0x67D1 +0xB4BC 0x6853 +0xB4BD 0x68FA +0xB4BE 0x6B3E +0xB4BF 0x6B53 +0xB4C0 0x6C57 +0xB4C1 0x6F22 +0xB4C2 0x6F97 +0xB4C3 0x6F45 +0xB4C4 0x74B0 +0xB4C5 0x7518 +0xB4C6 0x76E3 +0xB4C7 0x770B +0xB4C8 0x7AFF +0xB4C9 0x7BA1 +0xB4CA 0x7C21 +0xB4CB 0x7DE9 +0xB4CC 0x7F36 +0xB4CD 0x7FF0 +0xB4CE 0x809D +0xB4CF 0x8266 +0xB4D0 0x839E +0xB4D1 0x89B3 +0xB4D2 0x8ACC +0xB4D3 0x8CAB +0xB4D4 0x9084 +0xB4D5 0x9451 +0xB4D6 0x9593 +0xB4D7 0x9591 +0xB4D8 0x95A2 +0xB4D9 0x9665 +0xB4DA 0x97D3 +0xB4DB 0x9928 +0xB4DC 0x8218 +0xB4DD 0x4E38 +0xB4DE 0x542B +0xB4DF 0x5CB8 +0xB4E0 0x5DCC +0xB4E1 0x73A9 +0xB4E2 0x764C +0xB4E3 0x773C +0xB4E4 0x5CA9 +0xB4E5 0x7FEB +0xB4E6 0x8D0B +0xB4E7 0x96C1 +0xB4E8 0x9811 +0xB4E9 0x9854 +0xB4EA 0x9858 +0xB4EB 0x4F01 +0xB4EC 0x4F0E +0xB4ED 0x5371 +0xB4EE 0x559C +0xB4EF 0x5668 +0xB4F0 0x57FA +0xB4F1 0x5947 +0xB4F2 0x5B09 +0xB4F3 0x5BC4 +0xB4F4 0x5C90 +0xB4F5 0x5E0C +0xB4F6 0x5E7E +0xB4F7 0x5FCC +0xB4F8 0x63EE +0xB4F9 0x673A +0xB4FA 0x65D7 +0xB4FB 0x65E2 +0xB4FC 0x671F +0xB4FD 0x68CB +0xB4FE 0x68C4 +0xB5A1 0x6A5F +0xB5A2 0x5E30 +0xB5A3 0x6BC5 +0xB5A4 0x6C17 +0xB5A5 0x6C7D +0xB5A6 0x757F +0xB5A7 0x7948 +0xB5A8 0x5B63 +0xB5A9 0x7A00 +0xB5AA 0x7D00 +0xB5AB 0x5FBD +0xB5AC 0x898F +0xB5AD 0x8A18 +0xB5AE 0x8CB4 +0xB5AF 0x8D77 +0xB5B0 0x8ECC +0xB5B1 0x8F1D +0xB5B2 0x98E2 +0xB5B3 0x9A0E +0xB5B4 0x9B3C +0xB5B5 0x4E80 +0xB5B6 0x507D +0xB5B7 0x5100 +0xB5B8 0x5993 +0xB5B9 0x5B9C +0xB5BA 0x622F +0xB5BB 0x6280 +0xB5BC 0x64EC +0xB5BD 0x6B3A +0xB5BE 0x72A0 +0xB5BF 0x7591 +0xB5C0 0x7947 +0xB5C1 0x7FA9 +0xB5C2 0x87FB +0xB5C3 0x8ABC +0xB5C4 0x8B70 +0xB5C5 0x63AC +0xB5C6 0x83CA +0xB5C7 0x97A0 +0xB5C8 0x5409 +0xB5C9 0x5403 +0xB5CA 0x55AB +0xB5CB 0x6854 +0xB5CC 0x6A58 +0xB5CD 0x8A70 +0xB5CE 0x7827 +0xB5CF 0x6775 +0xB5D0 0x9ECD +0xB5D1 0x5374 +0xB5D2 0x5BA2 +0xB5D3 0x811A +0xB5D4 0x8650 +0xB5D5 0x9006 +0xB5D6 0x4E18 +0xB5D7 0x4E45 +0xB5D8 0x4EC7 +0xB5D9 0x4F11 +0xB5DA 0x53CA +0xB5DB 0x5438 +0xB5DC 0x5BAE +0xB5DD 0x5F13 +0xB5DE 0x6025 +0xB5DF 0x6551 +0xB5E0 0x673D +0xB5E1 0x6C42 +0xB5E2 0x6C72 +0xB5E3 0x6CE3 +0xB5E4 0x7078 +0xB5E5 0x7403 +0xB5E6 0x7A76 +0xB5E7 0x7AAE +0xB5E8 0x7B08 +0xB5E9 0x7D1A +0xB5EA 0x7CFE +0xB5EB 0x7D66 +0xB5EC 0x65E7 +0xB5ED 0x725B +0xB5EE 0x53BB +0xB5EF 0x5C45 +0xB5F0 0x5DE8 +0xB5F1 0x62D2 +0xB5F2 0x62E0 +0xB5F3 0x6319 +0xB5F4 0x6E20 +0xB5F5 0x865A +0xB5F6 0x8A31 +0xB5F7 0x8DDD +0xB5F8 0x92F8 +0xB5F9 0x6F01 +0xB5FA 0x79A6 +0xB5FB 0x9B5A +0xB5FC 0x4EA8 +0xB5FD 0x4EAB +0xB5FE 0x4EAC +0xB6A1 0x4F9B +0xB6A2 0x4FA0 +0xB6A3 0x50D1 +0xB6A4 0x5147 +0xB6A5 0x7AF6 +0xB6A6 0x5171 +0xB6A7 0x51F6 +0xB6A8 0x5354 +0xB6A9 0x5321 +0xB6AA 0x537F +0xB6AB 0x53EB +0xB6AC 0x55AC +0xB6AD 0x5883 +0xB6AE 0x5CE1 +0xB6AF 0x5F37 +0xB6B0 0x5F4A +0xB6B1 0x602F +0xB6B2 0x6050 +0xB6B3 0x606D +0xB6B4 0x631F +0xB6B5 0x6559 +0xB6B6 0x6A4B +0xB6B7 0x6CC1 +0xB6B8 0x72C2 +0xB6B9 0x72ED +0xB6BA 0x77EF +0xB6BB 0x80F8 +0xB6BC 0x8105 +0xB6BD 0x8208 +0xB6BE 0x854E +0xB6BF 0x90F7 +0xB6C0 0x93E1 +0xB6C1 0x97FF +0xB6C2 0x9957 +0xB6C3 0x9A5A +0xB6C4 0x4EF0 +0xB6C5 0x51DD +0xB6C6 0x5C2D +0xB6C7 0x6681 +0xB6C8 0x696D +0xB6C9 0x5C40 +0xB6CA 0x66F2 +0xB6CB 0x6975 +0xB6CC 0x7389 +0xB6CD 0x6850 +0xB6CE 0x7C81 +0xB6CF 0x50C5 +0xB6D0 0x52E4 +0xB6D1 0x5747 +0xB6D2 0x5DFE +0xB6D3 0x9326 +0xB6D4 0x65A4 +0xB6D5 0x6B23 +0xB6D6 0x6B3D +0xB6D7 0x7434 +0xB6D8 0x7981 +0xB6D9 0x79BD +0xB6DA 0x7B4B +0xB6DB 0x7DCA +0xB6DC 0x82B9 +0xB6DD 0x83CC +0xB6DE 0x887F +0xB6DF 0x895F +0xB6E0 0x8B39 +0xB6E1 0x8FD1 +0xB6E2 0x91D1 +0xB6E3 0x541F +0xB6E4 0x9280 +0xB6E5 0x4E5D +0xB6E6 0x5036 +0xB6E7 0x53E5 +0xB6E8 0x533A +0xB6E9 0x72D7 +0xB6EA 0x7396 +0xB6EB 0x77E9 +0xB6EC 0x82E6 +0xB6ED 0x8EAF +0xB6EE 0x99C6 +0xB6EF 0x99C8 +0xB6F0 0x99D2 +0xB6F1 0x5177 +0xB6F2 0x611A +0xB6F3 0x865E +0xB6F4 0x55B0 +0xB6F5 0x7A7A +0xB6F6 0x5076 +0xB6F7 0x5BD3 +0xB6F8 0x9047 +0xB6F9 0x9685 +0xB6FA 0x4E32 +0xB6FB 0x6ADB +0xB6FC 0x91E7 +0xB6FD 0x5C51 +0xB6FE 0x5C48 +0xB7A1 0x6398 +0xB7A2 0x7A9F +0xB7A3 0x6C93 +0xB7A4 0x9774 +0xB7A5 0x8F61 +0xB7A6 0x7AAA +0xB7A7 0x718A +0xB7A8 0x9688 +0xB7A9 0x7C82 +0xB7AA 0x6817 +0xB7AB 0x7E70 +0xB7AC 0x6851 +0xB7AD 0x936C +0xB7AE 0x52F2 +0xB7AF 0x541B +0xB7B0 0x85AB +0xB7B1 0x8A13 +0xB7B2 0x7FA4 +0xB7B3 0x8ECD +0xB7B4 0x90E1 +0xB7B5 0x5366 +0xB7B6 0x8888 +0xB7B7 0x7941 +0xB7B8 0x4FC2 +0xB7B9 0x50BE +0xB7BA 0x5211 +0xB7BB 0x5144 +0xB7BC 0x5553 +0xB7BD 0x572D +0xB7BE 0x73EA +0xB7BF 0x578B +0xB7C0 0x5951 +0xB7C1 0x5F62 +0xB7C2 0x5F84 +0xB7C3 0x6075 +0xB7C4 0x6176 +0xB7C5 0x6167 +0xB7C6 0x61A9 +0xB7C7 0x63B2 +0xB7C8 0x643A +0xB7C9 0x656C +0xB7CA 0x666F +0xB7CB 0x6842 +0xB7CC 0x6E13 +0xB7CD 0x7566 +0xB7CE 0x7A3D +0xB7CF 0x7CFB +0xB7D0 0x7D4C +0xB7D1 0x7D99 +0xB7D2 0x7E4B +0xB7D3 0x7F6B +0xB7D4 0x830E +0xB7D5 0x834A +0xB7D6 0x86CD +0xB7D7 0x8A08 +0xB7D8 0x8A63 +0xB7D9 0x8B66 +0xB7DA 0x8EFD +0xB7DB 0x981A +0xB7DC 0x9D8F +0xB7DD 0x82B8 +0xB7DE 0x8FCE +0xB7DF 0x9BE8 +0xB7E0 0x5287 +0xB7E1 0x621F +0xB7E2 0x6483 +0xB7E3 0x6FC0 +0xB7E4 0x9699 +0xB7E5 0x6841 +0xB7E6 0x5091 +0xB7E7 0x6B20 +0xB7E8 0x6C7A +0xB7E9 0x6F54 +0xB7EA 0x7A74 +0xB7EB 0x7D50 +0xB7EC 0x8840 +0xB7ED 0x8A23 +0xB7EE 0x6708 +0xB7EF 0x4EF6 +0xB7F0 0x5039 +0xB7F1 0x5026 +0xB7F2 0x5065 +0xB7F3 0x517C +0xB7F4 0x5238 +0xB7F5 0x5263 +0xB7F6 0x55A7 +0xB7F7 0x570F +0xB7F8 0x5805 +0xB7F9 0x5ACC +0xB7FA 0x5EFA +0xB7FB 0x61B2 +0xB7FC 0x61F8 +0xB7FD 0x62F3 +0xB7FE 0x6372 +0xB8A1 0x691C +0xB8A2 0x6A29 +0xB8A3 0x727D +0xB8A4 0x72AC +0xB8A5 0x732E +0xB8A6 0x7814 +0xB8A7 0x786F +0xB8A8 0x7D79 +0xB8A9 0x770C +0xB8AA 0x80A9 +0xB8AB 0x898B +0xB8AC 0x8B19 +0xB8AD 0x8CE2 +0xB8AE 0x8ED2 +0xB8AF 0x9063 +0xB8B0 0x9375 +0xB8B1 0x967A +0xB8B2 0x9855 +0xB8B3 0x9A13 +0xB8B4 0x9E78 +0xB8B5 0x5143 +0xB8B6 0x539F +0xB8B7 0x53B3 +0xB8B8 0x5E7B +0xB8B9 0x5F26 +0xB8BA 0x6E1B +0xB8BB 0x6E90 +0xB8BC 0x7384 +0xB8BD 0x73FE +0xB8BE 0x7D43 +0xB8BF 0x8237 +0xB8C0 0x8A00 +0xB8C1 0x8AFA +0xB8C2 0x9650 +0xB8C3 0x4E4E +0xB8C4 0x500B +0xB8C5 0x53E4 +0xB8C6 0x547C +0xB8C7 0x56FA +0xB8C8 0x59D1 +0xB8C9 0x5B64 +0xB8CA 0x5DF1 +0xB8CB 0x5EAB +0xB8CC 0x5F27 +0xB8CD 0x6238 +0xB8CE 0x6545 +0xB8CF 0x67AF +0xB8D0 0x6E56 +0xB8D1 0x72D0 +0xB8D2 0x7CCA +0xB8D3 0x88B4 +0xB8D4 0x80A1 +0xB8D5 0x80E1 +0xB8D6 0x83F0 +0xB8D7 0x864E +0xB8D8 0x8A87 +0xB8D9 0x8DE8 +0xB8DA 0x9237 +0xB8DB 0x96C7 +0xB8DC 0x9867 +0xB8DD 0x9F13 +0xB8DE 0x4E94 +0xB8DF 0x4E92 +0xB8E0 0x4F0D +0xB8E1 0x5348 +0xB8E2 0x5449 +0xB8E3 0x543E +0xB8E4 0x5A2F +0xB8E5 0x5F8C +0xB8E6 0x5FA1 +0xB8E7 0x609F +0xB8E8 0x68A7 +0xB8E9 0x6A8E +0xB8EA 0x745A +0xB8EB 0x7881 +0xB8EC 0x8A9E +0xB8ED 0x8AA4 +0xB8EE 0x8B77 +0xB8EF 0x9190 +0xB8F0 0x4E5E +0xB8F1 0x9BC9 +0xB8F2 0x4EA4 +0xB8F3 0x4F7C +0xB8F4 0x4FAF +0xB8F5 0x5019 +0xB8F6 0x5016 +0xB8F7 0x5149 +0xB8F8 0x516C +0xB8F9 0x529F +0xB8FA 0x52B9 +0xB8FB 0x52FE +0xB8FC 0x539A +0xB8FD 0x53E3 +0xB8FE 0x5411 +0xB9A1 0x540E +0xB9A2 0x5589 +0xB9A3 0x5751 +0xB9A4 0x57A2 +0xB9A5 0x597D +0xB9A6 0x5B54 +0xB9A7 0x5B5D +0xB9A8 0x5B8F +0xB9A9 0x5DE5 +0xB9AA 0x5DE7 +0xB9AB 0x5DF7 +0xB9AC 0x5E78 +0xB9AD 0x5E83 +0xB9AE 0x5E9A +0xB9AF 0x5EB7 +0xB9B0 0x5F18 +0xB9B1 0x6052 +0xB9B2 0x614C +0xB9B3 0x6297 +0xB9B4 0x62D8 +0xB9B5 0x63A7 +0xB9B6 0x653B +0xB9B7 0x6602 +0xB9B8 0x6643 +0xB9B9 0x66F4 +0xB9BA 0x676D +0xB9BB 0x6821 +0xB9BC 0x6897 +0xB9BD 0x69CB +0xB9BE 0x6C5F +0xB9BF 0x6D2A +0xB9C0 0x6D69 +0xB9C1 0x6E2F +0xB9C2 0x6E9D +0xB9C3 0x7532 +0xB9C4 0x7687 +0xB9C5 0x786C +0xB9C6 0x7A3F +0xB9C7 0x7CE0 +0xB9C8 0x7D05 +0xB9C9 0x7D18 +0xB9CA 0x7D5E +0xB9CB 0x7DB1 +0xB9CC 0x8015 +0xB9CD 0x8003 +0xB9CE 0x80AF +0xB9CF 0x80B1 +0xB9D0 0x8154 +0xB9D1 0x818F +0xB9D2 0x822A +0xB9D3 0x8352 +0xB9D4 0x884C +0xB9D5 0x8861 +0xB9D6 0x8B1B +0xB9D7 0x8CA2 +0xB9D8 0x8CFC +0xB9D9 0x90CA +0xB9DA 0x9175 +0xB9DB 0x9271 +0xB9DC 0x783F +0xB9DD 0x92FC +0xB9DE 0x95A4 +0xB9DF 0x964D +0xB9E0 0x9805 +0xB9E1 0x9999 +0xB9E2 0x9AD8 +0xB9E3 0x9D3B +0xB9E4 0x525B +0xB9E5 0x52AB +0xB9E6 0x53F7 +0xB9E7 0x5408 +0xB9E8 0x58D5 +0xB9E9 0x62F7 +0xB9EA 0x6FE0 +0xB9EB 0x8C6A +0xB9EC 0x8F5F +0xB9ED 0x9EB9 +0xB9EE 0x514B +0xB9EF 0x523B +0xB9F0 0x544A +0xB9F1 0x56FD +0xB9F2 0x7A40 +0xB9F3 0x9177 +0xB9F4 0x9D60 +0xB9F5 0x9ED2 +0xB9F6 0x7344 +0xB9F7 0x6F09 +0xB9F8 0x8170 +0xB9F9 0x7511 +0xB9FA 0x5FFD +0xB9FB 0x60DA +0xB9FC 0x9AA8 +0xB9FD 0x72DB +0xB9FE 0x8FBC +0xBAA1 0x6B64 +0xBAA2 0x9803 +0xBAA3 0x4ECA +0xBAA4 0x56F0 +0xBAA5 0x5764 +0xBAA6 0x58BE +0xBAA7 0x5A5A +0xBAA8 0x6068 +0xBAA9 0x61C7 +0xBAAA 0x660F +0xBAAB 0x6606 +0xBAAC 0x6839 +0xBAAD 0x68B1 +0xBAAE 0x6DF7 +0xBAAF 0x75D5 +0xBAB0 0x7D3A +0xBAB1 0x826E +0xBAB2 0x9B42 +0xBAB3 0x4E9B +0xBAB4 0x4F50 +0xBAB5 0x53C9 +0xBAB6 0x5506 +0xBAB7 0x5D6F +0xBAB8 0x5DE6 +0xBAB9 0x5DEE +0xBABA 0x67FB +0xBABB 0x6C99 +0xBABC 0x7473 +0xBABD 0x7802 +0xBABE 0x8A50 +0xBABF 0x9396 +0xBAC0 0x88DF +0xBAC1 0x5750 +0xBAC2 0x5EA7 +0xBAC3 0x632B +0xBAC4 0x50B5 +0xBAC5 0x50AC +0xBAC6 0x518D +0xBAC7 0x6700 +0xBAC8 0x54C9 +0xBAC9 0x585E +0xBACA 0x59BB +0xBACB 0x5BB0 +0xBACC 0x5F69 +0xBACD 0x624D +0xBACE 0x63A1 +0xBACF 0x683D +0xBAD0 0x6B73 +0xBAD1 0x6E08 +0xBAD2 0x707D +0xBAD3 0x91C7 +0xBAD4 0x7280 +0xBAD5 0x7815 +0xBAD6 0x7826 +0xBAD7 0x796D +0xBAD8 0x658E +0xBAD9 0x7D30 +0xBADA 0x83DC +0xBADB 0x88C1 +0xBADC 0x8F09 +0xBADD 0x969B +0xBADE 0x5264 +0xBADF 0x5728 +0xBAE0 0x6750 +0xBAE1 0x7F6A +0xBAE2 0x8CA1 +0xBAE3 0x51B4 +0xBAE4 0x5742 +0xBAE5 0x962A +0xBAE6 0x583A +0xBAE7 0x698A +0xBAE8 0x80B4 +0xBAE9 0x54B2 +0xBAEA 0x5D0E +0xBAEB 0x57FC +0xBAEC 0x7895 +0xBAED 0x9DFA +0xBAEE 0x4F5C +0xBAEF 0x524A +0xBAF0 0x548B +0xBAF1 0x643E +0xBAF2 0x6628 +0xBAF3 0x6714 +0xBAF4 0x67F5 +0xBAF5 0x7A84 +0xBAF6 0x7B56 +0xBAF7 0x7D22 +0xBAF8 0x932F +0xBAF9 0x685C +0xBAFA 0x9BAD +0xBAFB 0x7B39 +0xBAFC 0x5319 +0xBAFD 0x518A +0xBAFE 0x5237 +0xBBA1 0x5BDF +0xBBA2 0x62F6 +0xBBA3 0x64AE +0xBBA4 0x64E6 +0xBBA5 0x672D +0xBBA6 0x6BBA +0xBBA7 0x85A9 +0xBBA8 0x96D1 +0xBBA9 0x7690 +0xBBAA 0x9BD6 +0xBBAB 0x634C +0xBBAC 0x9306 +0xBBAD 0x9BAB +0xBBAE 0x76BF +0xBBAF 0x6652 +0xBBB0 0x4E09 +0xBBB1 0x5098 +0xBBB2 0x53C2 +0xBBB3 0x5C71 +0xBBB4 0x60E8 +0xBBB5 0x6492 +0xBBB6 0x6563 +0xBBB7 0x685F +0xBBB8 0x71E6 +0xBBB9 0x73CA +0xBBBA 0x7523 +0xBBBB 0x7B97 +0xBBBC 0x7E82 +0xBBBD 0x8695 +0xBBBE 0x8B83 +0xBBBF 0x8CDB +0xBBC0 0x9178 +0xBBC1 0x9910 +0xBBC2 0x65AC +0xBBC3 0x66AB +0xBBC4 0x6B8B +0xBBC5 0x4ED5 +0xBBC6 0x4ED4 +0xBBC7 0x4F3A +0xBBC8 0x4F7F +0xBBC9 0x523A +0xBBCA 0x53F8 +0xBBCB 0x53F2 +0xBBCC 0x55E3 +0xBBCD 0x56DB +0xBBCE 0x58EB +0xBBCF 0x59CB +0xBBD0 0x59C9 +0xBBD1 0x59FF +0xBBD2 0x5B50 +0xBBD3 0x5C4D +0xBBD4 0x5E02 +0xBBD5 0x5E2B +0xBBD6 0x5FD7 +0xBBD7 0x601D +0xBBD8 0x6307 +0xBBD9 0x652F +0xBBDA 0x5B5C +0xBBDB 0x65AF +0xBBDC 0x65BD +0xBBDD 0x65E8 +0xBBDE 0x679D +0xBBDF 0x6B62 +0xBBE0 0x6B7B +0xBBE1 0x6C0F +0xBBE2 0x7345 +0xBBE3 0x7949 +0xBBE4 0x79C1 +0xBBE5 0x7CF8 +0xBBE6 0x7D19 +0xBBE7 0x7D2B +0xBBE8 0x80A2 +0xBBE9 0x8102 +0xBBEA 0x81F3 +0xBBEB 0x8996 +0xBBEC 0x8A5E +0xBBED 0x8A69 +0xBBEE 0x8A66 +0xBBEF 0x8A8C +0xBBF0 0x8AEE +0xBBF1 0x8CC7 +0xBBF2 0x8CDC +0xBBF3 0x96CC +0xBBF4 0x98FC +0xBBF5 0x6B6F +0xBBF6 0x4E8B +0xBBF7 0x4F3C +0xBBF8 0x4F8D +0xBBF9 0x5150 +0xBBFA 0x5B57 +0xBBFB 0x5BFA +0xBBFC 0x6148 +0xBBFD 0x6301 +0xBBFE 0x6642 +0xBCA1 0x6B21 +0xBCA2 0x6ECB +0xBCA3 0x6CBB +0xBCA4 0x723E +0xBCA5 0x74BD +0xBCA6 0x75D4 +0xBCA7 0x78C1 +0xBCA8 0x793A +0xBCA9 0x800C +0xBCAA 0x8033 +0xBCAB 0x81EA +0xBCAC 0x8494 +0xBCAD 0x8F9E +0xBCAE 0x6C50 +0xBCAF 0x9E7F +0xBCB0 0x5F0F +0xBCB1 0x8B58 +0xBCB2 0x9D2B +0xBCB3 0x7AFA +0xBCB4 0x8EF8 +0xBCB5 0x5B8D +0xBCB6 0x96EB +0xBCB7 0x4E03 +0xBCB8 0x53F1 +0xBCB9 0x57F7 +0xBCBA 0x5931 +0xBCBB 0x5AC9 +0xBCBC 0x5BA4 +0xBCBD 0x6089 +0xBCBE 0x6E7F +0xBCBF 0x6F06 +0xBCC0 0x75BE +0xBCC1 0x8CEA +0xBCC2 0x5B9F +0xBCC3 0x8500 +0xBCC4 0x7BE0 +0xBCC5 0x5072 +0xBCC6 0x67F4 +0xBCC7 0x829D +0xBCC8 0x5C61 +0xBCC9 0x854A +0xBCCA 0x7E1E +0xBCCB 0x820E +0xBCCC 0x5199 +0xBCCD 0x5C04 +0xBCCE 0x6368 +0xBCCF 0x8D66 +0xBCD0 0x659C +0xBCD1 0x716E +0xBCD2 0x793E +0xBCD3 0x7D17 +0xBCD4 0x8005 +0xBCD5 0x8B1D +0xBCD6 0x8ECA +0xBCD7 0x906E +0xBCD8 0x86C7 +0xBCD9 0x90AA +0xBCDA 0x501F +0xBCDB 0x52FA +0xBCDC 0x5C3A +0xBCDD 0x6753 +0xBCDE 0x707C +0xBCDF 0x7235 +0xBCE0 0x914C +0xBCE1 0x91C8 +0xBCE2 0x932B +0xBCE3 0x82E5 +0xBCE4 0x5BC2 +0xBCE5 0x5F31 +0xBCE6 0x60F9 +0xBCE7 0x4E3B +0xBCE8 0x53D6 +0xBCE9 0x5B88 +0xBCEA 0x624B +0xBCEB 0x6731 +0xBCEC 0x6B8A +0xBCED 0x72E9 +0xBCEE 0x73E0 +0xBCEF 0x7A2E +0xBCF0 0x816B +0xBCF1 0x8DA3 +0xBCF2 0x9152 +0xBCF3 0x9996 +0xBCF4 0x5112 +0xBCF5 0x53D7 +0xBCF6 0x546A +0xBCF7 0x5BFF +0xBCF8 0x6388 +0xBCF9 0x6A39 +0xBCFA 0x7DAC +0xBCFB 0x9700 +0xBCFC 0x56DA +0xBCFD 0x53CE +0xBCFE 0x5468 +0xBDA1 0x5B97 +0xBDA2 0x5C31 +0xBDA3 0x5DDE +0xBDA4 0x4FEE +0xBDA5 0x6101 +0xBDA6 0x62FE +0xBDA7 0x6D32 +0xBDA8 0x79C0 +0xBDA9 0x79CB +0xBDAA 0x7D42 +0xBDAB 0x7E4D +0xBDAC 0x7FD2 +0xBDAD 0x81ED +0xBDAE 0x821F +0xBDAF 0x8490 +0xBDB0 0x8846 +0xBDB1 0x8972 +0xBDB2 0x8B90 +0xBDB3 0x8E74 +0xBDB4 0x8F2F +0xBDB5 0x9031 +0xBDB6 0x914B +0xBDB7 0x916C +0xBDB8 0x96C6 +0xBDB9 0x919C +0xBDBA 0x4EC0 +0xBDBB 0x4F4F +0xBDBC 0x5145 +0xBDBD 0x5341 +0xBDBE 0x5F93 +0xBDBF 0x620E +0xBDC0 0x67D4 +0xBDC1 0x6C41 +0xBDC2 0x6E0B +0xBDC3 0x7363 +0xBDC4 0x7E26 +0xBDC5 0x91CD +0xBDC6 0x9283 +0xBDC7 0x53D4 +0xBDC8 0x5919 +0xBDC9 0x5BBF +0xBDCA 0x6DD1 +0xBDCB 0x795D +0xBDCC 0x7E2E +0xBDCD 0x7C9B +0xBDCE 0x587E +0xBDCF 0x719F +0xBDD0 0x51FA +0xBDD1 0x8853 +0xBDD2 0x8FF0 +0xBDD3 0x4FCA +0xBDD4 0x5CFB +0xBDD5 0x6625 +0xBDD6 0x77AC +0xBDD7 0x7AE3 +0xBDD8 0x821C +0xBDD9 0x99FF +0xBDDA 0x51C6 +0xBDDB 0x5FAA +0xBDDC 0x65EC +0xBDDD 0x696F +0xBDDE 0x6B89 +0xBDDF 0x6DF3 +0xBDE0 0x6E96 +0xBDE1 0x6F64 +0xBDE2 0x76FE +0xBDE3 0x7D14 +0xBDE4 0x5DE1 +0xBDE5 0x9075 +0xBDE6 0x9187 +0xBDE7 0x9806 +0xBDE8 0x51E6 +0xBDE9 0x521D +0xBDEA 0x6240 +0xBDEB 0x6691 +0xBDEC 0x66D9 +0xBDED 0x6E1A +0xBDEE 0x5EB6 +0xBDEF 0x7DD2 +0xBDF0 0x7F72 +0xBDF1 0x66F8 +0xBDF2 0x85AF +0xBDF3 0x85F7 +0xBDF4 0x8AF8 +0xBDF5 0x52A9 +0xBDF6 0x53D9 +0xBDF7 0x5973 +0xBDF8 0x5E8F +0xBDF9 0x5F90 +0xBDFA 0x6055 +0xBDFB 0x92E4 +0xBDFC 0x9664 +0xBDFD 0x50B7 +0xBDFE 0x511F +0xBEA1 0x52DD +0xBEA2 0x5320 +0xBEA3 0x5347 +0xBEA4 0x53EC +0xBEA5 0x54E8 +0xBEA6 0x5546 +0xBEA7 0x5531 +0xBEA8 0x5617 +0xBEA9 0x5968 +0xBEAA 0x59BE +0xBEAB 0x5A3C +0xBEAC 0x5BB5 +0xBEAD 0x5C06 +0xBEAE 0x5C0F +0xBEAF 0x5C11 +0xBEB0 0x5C1A +0xBEB1 0x5E84 +0xBEB2 0x5E8A +0xBEB3 0x5EE0 +0xBEB4 0x5F70 +0xBEB5 0x627F +0xBEB6 0x6284 +0xBEB7 0x62DB +0xBEB8 0x638C +0xBEB9 0x6377 +0xBEBA 0x6607 +0xBEBB 0x660C +0xBEBC 0x662D +0xBEBD 0x6676 +0xBEBE 0x677E +0xBEBF 0x68A2 +0xBEC0 0x6A1F +0xBEC1 0x6A35 +0xBEC2 0x6CBC +0xBEC3 0x6D88 +0xBEC4 0x6E09 +0xBEC5 0x6E58 +0xBEC6 0x713C +0xBEC7 0x7126 +0xBEC8 0x7167 +0xBEC9 0x75C7 +0xBECA 0x7701 +0xBECB 0x785D +0xBECC 0x7901 +0xBECD 0x7965 +0xBECE 0x79F0 +0xBECF 0x7AE0 +0xBED0 0x7B11 +0xBED1 0x7CA7 +0xBED2 0x7D39 +0xBED3 0x8096 +0xBED4 0x83D6 +0xBED5 0x848B +0xBED6 0x8549 +0xBED7 0x885D +0xBED8 0x88F3 +0xBED9 0x8A1F +0xBEDA 0x8A3C +0xBEDB 0x8A54 +0xBEDC 0x8A73 +0xBEDD 0x8C61 +0xBEDE 0x8CDE +0xBEDF 0x91A4 +0xBEE0 0x9266 +0xBEE1 0x937E +0xBEE2 0x9418 +0xBEE3 0x969C +0xBEE4 0x9798 +0xBEE5 0x4E0A +0xBEE6 0x4E08 +0xBEE7 0x4E1E +0xBEE8 0x4E57 +0xBEE9 0x5197 +0xBEEA 0x5270 +0xBEEB 0x57CE +0xBEEC 0x5834 +0xBEED 0x58CC +0xBEEE 0x5B22 +0xBEEF 0x5E38 +0xBEF0 0x60C5 +0xBEF1 0x64FE +0xBEF2 0x6761 +0xBEF3 0x6756 +0xBEF4 0x6D44 +0xBEF5 0x72B6 +0xBEF6 0x7573 +0xBEF7 0x7A63 +0xBEF8 0x84B8 +0xBEF9 0x8B72 +0xBEFA 0x91B8 +0xBEFB 0x9320 +0xBEFC 0x5631 +0xBEFD 0x57F4 +0xBEFE 0x98FE +0xBFA1 0x62ED +0xBFA2 0x690D +0xBFA3 0x6B96 +0xBFA4 0x71ED +0xBFA5 0x7E54 +0xBFA6 0x8077 +0xBFA7 0x8272 +0xBFA8 0x89E6 +0xBFA9 0x98DF +0xBFAA 0x8755 +0xBFAB 0x8FB1 +0xBFAC 0x5C3B +0xBFAD 0x4F38 +0xBFAE 0x4FE1 +0xBFAF 0x4FB5 +0xBFB0 0x5507 +0xBFB1 0x5A20 +0xBFB2 0x5BDD +0xBFB3 0x5BE9 +0xBFB4 0x5FC3 +0xBFB5 0x614E +0xBFB6 0x632F +0xBFB7 0x65B0 +0xBFB8 0x664B +0xBFB9 0x68EE +0xBFBA 0x699B +0xBFBB 0x6D78 +0xBFBC 0x6DF1 +0xBFBD 0x7533 +0xBFBE 0x75B9 +0xBFBF 0x771F +0xBFC0 0x795E +0xBFC1 0x79E6 +0xBFC2 0x7D33 +0xBFC3 0x81E3 +0xBFC4 0x82AF +0xBFC5 0x85AA +0xBFC6 0x89AA +0xBFC7 0x8A3A +0xBFC8 0x8EAB +0xBFC9 0x8F9B +0xBFCA 0x9032 +0xBFCB 0x91DD +0xBFCC 0x9707 +0xBFCD 0x4EBA +0xBFCE 0x4EC1 +0xBFCF 0x5203 +0xBFD0 0x5875 +0xBFD1 0x58EC +0xBFD2 0x5C0B +0xBFD3 0x751A +0xBFD4 0x5C3D +0xBFD5 0x814E +0xBFD6 0x8A0A +0xBFD7 0x8FC5 +0xBFD8 0x9663 +0xBFD9 0x976D +0xBFDA 0x7B25 +0xBFDB 0x8ACF +0xBFDC 0x9808 +0xBFDD 0x9162 +0xBFDE 0x56F3 +0xBFDF 0x53A8 +0xBFE0 0x9017 +0xBFE1 0x5439 +0xBFE2 0x5782 +0xBFE3 0x5E25 +0xBFE4 0x63A8 +0xBFE5 0x6C34 +0xBFE6 0x708A +0xBFE7 0x7761 +0xBFE8 0x7C8B +0xBFE9 0x7FE0 +0xBFEA 0x8870 +0xBFEB 0x9042 +0xBFEC 0x9154 +0xBFED 0x9310 +0xBFEE 0x9318 +0xBFEF 0x968F +0xBFF0 0x745E +0xBFF1 0x9AC4 +0xBFF2 0x5D07 +0xBFF3 0x5D69 +0xBFF4 0x6570 +0xBFF5 0x67A2 +0xBFF6 0x8DA8 +0xBFF7 0x96DB +0xBFF8 0x636E +0xBFF9 0x6749 +0xBFFA 0x6919 +0xBFFB 0x83C5 +0xBFFC 0x9817 +0xBFFD 0x96C0 +0xBFFE 0x88FE +0xC0A1 0x6F84 +0xC0A2 0x647A +0xC0A3 0x5BF8 +0xC0A4 0x4E16 +0xC0A5 0x702C +0xC0A6 0x755D +0xC0A7 0x662F +0xC0A8 0x51C4 +0xC0A9 0x5236 +0xC0AA 0x52E2 +0xC0AB 0x59D3 +0xC0AC 0x5F81 +0xC0AD 0x6027 +0xC0AE 0x6210 +0xC0AF 0x653F +0xC0B0 0x6574 +0xC0B1 0x661F +0xC0B2 0x6674 +0xC0B3 0x68F2 +0xC0B4 0x6816 +0xC0B5 0x6B63 +0xC0B6 0x6E05 +0xC0B7 0x7272 +0xC0B8 0x751F +0xC0B9 0x76DB +0xC0BA 0x7CBE +0xC0BB 0x8056 +0xC0BC 0x58F0 +0xC0BD 0x88FD +0xC0BE 0x897F +0xC0BF 0x8AA0 +0xC0C0 0x8A93 +0xC0C1 0x8ACB +0xC0C2 0x901D +0xC0C3 0x9192 +0xC0C4 0x9752 +0xC0C5 0x9759 +0xC0C6 0x6589 +0xC0C7 0x7A0E +0xC0C8 0x8106 +0xC0C9 0x96BB +0xC0CA 0x5E2D +0xC0CB 0x60DC +0xC0CC 0x621A +0xC0CD 0x65A5 +0xC0CE 0x6614 +0xC0CF 0x6790 +0xC0D0 0x77F3 +0xC0D1 0x7A4D +0xC0D2 0x7C4D +0xC0D3 0x7E3E +0xC0D4 0x810A +0xC0D5 0x8CAC +0xC0D6 0x8D64 +0xC0D7 0x8DE1 +0xC0D8 0x8E5F +0xC0D9 0x78A9 +0xC0DA 0x5207 +0xC0DB 0x62D9 +0xC0DC 0x63A5 +0xC0DD 0x6442 +0xC0DE 0x6298 +0xC0DF 0x8A2D +0xC0E0 0x7A83 +0xC0E1 0x7BC0 +0xC0E2 0x8AAC +0xC0E3 0x96EA +0xC0E4 0x7D76 +0xC0E5 0x820C +0xC0E6 0x8749 +0xC0E7 0x4ED9 +0xC0E8 0x5148 +0xC0E9 0x5343 +0xC0EA 0x5360 +0xC0EB 0x5BA3 +0xC0EC 0x5C02 +0xC0ED 0x5C16 +0xC0EE 0x5DDD +0xC0EF 0x6226 +0xC0F0 0x6247 +0xC0F1 0x64B0 +0xC0F2 0x6813 +0xC0F3 0x6834 +0xC0F4 0x6CC9 +0xC0F5 0x6D45 +0xC0F6 0x6D17 +0xC0F7 0x67D3 +0xC0F8 0x6F5C +0xC0F9 0x714E +0xC0FA 0x717D +0xC0FB 0x65CB +0xC0FC 0x7A7F +0xC0FD 0x7BAD +0xC0FE 0x7DDA +0xC1A1 0x7E4A +0xC1A2 0x7FA8 +0xC1A3 0x817A +0xC1A4 0x821B +0xC1A5 0x8239 +0xC1A6 0x85A6 +0xC1A7 0x8A6E +0xC1A8 0x8CCE +0xC1A9 0x8DF5 +0xC1AA 0x9078 +0xC1AB 0x9077 +0xC1AC 0x92AD +0xC1AD 0x9291 +0xC1AE 0x9583 +0xC1AF 0x9BAE +0xC1B0 0x524D +0xC1B1 0x5584 +0xC1B2 0x6F38 +0xC1B3 0x7136 +0xC1B4 0x5168 +0xC1B5 0x7985 +0xC1B6 0x7E55 +0xC1B7 0x81B3 +0xC1B8 0x7CCE +0xC1B9 0x564C +0xC1BA 0x5851 +0xC1BB 0x5CA8 +0xC1BC 0x63AA +0xC1BD 0x66FE +0xC1BE 0x66FD +0xC1BF 0x695A +0xC1C0 0x72D9 +0xC1C1 0x758F +0xC1C2 0x758E +0xC1C3 0x790E +0xC1C4 0x7956 +0xC1C5 0x79DF +0xC1C6 0x7C97 +0xC1C7 0x7D20 +0xC1C8 0x7D44 +0xC1C9 0x8607 +0xC1CA 0x8A34 +0xC1CB 0x963B +0xC1CC 0x9061 +0xC1CD 0x9F20 +0xC1CE 0x50E7 +0xC1CF 0x5275 +0xC1D0 0x53CC +0xC1D1 0x53E2 +0xC1D2 0x5009 +0xC1D3 0x55AA +0xC1D4 0x58EE +0xC1D5 0x594F +0xC1D6 0x723D +0xC1D7 0x5B8B +0xC1D8 0x5C64 +0xC1D9 0x531D +0xC1DA 0x60E3 +0xC1DB 0x60F3 +0xC1DC 0x635C +0xC1DD 0x6383 +0xC1DE 0x633F +0xC1DF 0x63BB +0xC1E0 0x64CD +0xC1E1 0x65E9 +0xC1E2 0x66F9 +0xC1E3 0x5DE3 +0xC1E4 0x69CD +0xC1E5 0x69FD +0xC1E6 0x6F15 +0xC1E7 0x71E5 +0xC1E8 0x4E89 +0xC1E9 0x75E9 +0xC1EA 0x76F8 +0xC1EB 0x7A93 +0xC1EC 0x7CDF +0xC1ED 0x7DCF +0xC1EE 0x7D9C +0xC1EF 0x8061 +0xC1F0 0x8349 +0xC1F1 0x8358 +0xC1F2 0x846C +0xC1F3 0x84BC +0xC1F4 0x85FB +0xC1F5 0x88C5 +0xC1F6 0x8D70 +0xC1F7 0x9001 +0xC1F8 0x906D +0xC1F9 0x9397 +0xC1FA 0x971C +0xC1FB 0x9A12 +0xC1FC 0x50CF +0xC1FD 0x5897 +0xC1FE 0x618E +0xC2A1 0x81D3 +0xC2A2 0x8535 +0xC2A3 0x8D08 +0xC2A4 0x9020 +0xC2A5 0x4FC3 +0xC2A6 0x5074 +0xC2A7 0x5247 +0xC2A8 0x5373 +0xC2A9 0x606F +0xC2AA 0x6349 +0xC2AB 0x675F +0xC2AC 0x6E2C +0xC2AD 0x8DB3 +0xC2AE 0x901F +0xC2AF 0x4FD7 +0xC2B0 0x5C5E +0xC2B1 0x8CCA +0xC2B2 0x65CF +0xC2B3 0x7D9A +0xC2B4 0x5352 +0xC2B5 0x8896 +0xC2B6 0x5176 +0xC2B7 0x63C3 +0xC2B8 0x5B58 +0xC2B9 0x5B6B +0xC2BA 0x5C0A +0xC2BB 0x640D +0xC2BC 0x6751 +0xC2BD 0x905C +0xC2BE 0x4ED6 +0xC2BF 0x591A +0xC2C0 0x592A +0xC2C1 0x6C70 +0xC2C2 0x8A51 +0xC2C3 0x553E +0xC2C4 0x5815 +0xC2C5 0x59A5 +0xC2C6 0x60F0 +0xC2C7 0x6253 +0xC2C8 0x67C1 +0xC2C9 0x8235 +0xC2CA 0x6955 +0xC2CB 0x9640 +0xC2CC 0x99C4 +0xC2CD 0x9A28 +0xC2CE 0x4F53 +0xC2CF 0x5806 +0xC2D0 0x5BFE +0xC2D1 0x8010 +0xC2D2 0x5CB1 +0xC2D3 0x5E2F +0xC2D4 0x5F85 +0xC2D5 0x6020 +0xC2D6 0x614B +0xC2D7 0x6234 +0xC2D8 0x66FF +0xC2D9 0x6CF0 +0xC2DA 0x6EDE +0xC2DB 0x80CE +0xC2DC 0x817F +0xC2DD 0x82D4 +0xC2DE 0x888B +0xC2DF 0x8CB8 +0xC2E0 0x9000 +0xC2E1 0x902E +0xC2E2 0x968A +0xC2E3 0x9EDB +0xC2E4 0x9BDB +0xC2E5 0x4EE3 +0xC2E6 0x53F0 +0xC2E7 0x5927 +0xC2E8 0x7B2C +0xC2E9 0x918D +0xC2EA 0x984C +0xC2EB 0x9DF9 +0xC2EC 0x6EDD +0xC2ED 0x7027 +0xC2EE 0x5353 +0xC2EF 0x5544 +0xC2F0 0x5B85 +0xC2F1 0x6258 +0xC2F2 0x629E +0xC2F3 0x62D3 +0xC2F4 0x6CA2 +0xC2F5 0x6FEF +0xC2F6 0x7422 +0xC2F7 0x8A17 +0xC2F8 0x9438 +0xC2F9 0x6FC1 +0xC2FA 0x8AFE +0xC2FB 0x8338 +0xC2FC 0x51E7 +0xC2FD 0x86F8 +0xC2FE 0x53EA +0xC3A1 0x53E9 +0xC3A2 0x4F46 +0xC3A3 0x9054 +0xC3A4 0x8FB0 +0xC3A5 0x596A +0xC3A6 0x8131 +0xC3A7 0x5DFD +0xC3A8 0x7AEA +0xC3A9 0x8FBF +0xC3AA 0x68DA +0xC3AB 0x8C37 +0xC3AC 0x72F8 +0xC3AD 0x9C48 +0xC3AE 0x6A3D +0xC3AF 0x8AB0 +0xC3B0 0x4E39 +0xC3B1 0x5358 +0xC3B2 0x5606 +0xC3B3 0x5766 +0xC3B4 0x62C5 +0xC3B5 0x63A2 +0xC3B6 0x65E6 +0xC3B7 0x6B4E +0xC3B8 0x6DE1 +0xC3B9 0x6E5B +0xC3BA 0x70AD +0xC3BB 0x77ED +0xC3BC 0x7AEF +0xC3BD 0x7BAA +0xC3BE 0x7DBB +0xC3BF 0x803D +0xC3C0 0x80C6 +0xC3C1 0x86CB +0xC3C2 0x8A95 +0xC3C3 0x935B +0xC3C4 0x56E3 +0xC3C5 0x58C7 +0xC3C6 0x5F3E +0xC3C7 0x65AD +0xC3C8 0x6696 +0xC3C9 0x6A80 +0xC3CA 0x6BB5 +0xC3CB 0x7537 +0xC3CC 0x8AC7 +0xC3CD 0x5024 +0xC3CE 0x77E5 +0xC3CF 0x5730 +0xC3D0 0x5F1B +0xC3D1 0x6065 +0xC3D2 0x667A +0xC3D3 0x6C60 +0xC3D4 0x75F4 +0xC3D5 0x7A1A +0xC3D6 0x7F6E +0xC3D7 0x81F4 +0xC3D8 0x8718 +0xC3D9 0x9045 +0xC3DA 0x99B3 +0xC3DB 0x7BC9 +0xC3DC 0x755C +0xC3DD 0x7AF9 +0xC3DE 0x7B51 +0xC3DF 0x84C4 +0xC3E0 0x9010 +0xC3E1 0x79E9 +0xC3E2 0x7A92 +0xC3E3 0x8336 +0xC3E4 0x5AE1 +0xC3E5 0x7740 +0xC3E6 0x4E2D +0xC3E7 0x4EF2 +0xC3E8 0x5B99 +0xC3E9 0x5FE0 +0xC3EA 0x62BD +0xC3EB 0x663C +0xC3EC 0x67F1 +0xC3ED 0x6CE8 +0xC3EE 0x866B +0xC3EF 0x8877 +0xC3F0 0x8A3B +0xC3F1 0x914E +0xC3F2 0x92F3 +0xC3F3 0x99D0 +0xC3F4 0x6A17 +0xC3F5 0x7026 +0xC3F6 0x732A +0xC3F7 0x82E7 +0xC3F8 0x8457 +0xC3F9 0x8CAF +0xC3FA 0x4E01 +0xC3FB 0x5146 +0xC3FC 0x51CB +0xC3FD 0x558B +0xC3FE 0x5BF5 +0xC4A1 0x5E16 +0xC4A2 0x5E33 +0xC4A3 0x5E81 +0xC4A4 0x5F14 +0xC4A5 0x5F35 +0xC4A6 0x5F6B +0xC4A7 0x5FB4 +0xC4A8 0x61F2 +0xC4A9 0x6311 +0xC4AA 0x66A2 +0xC4AB 0x671D +0xC4AC 0x6F6E +0xC4AD 0x7252 +0xC4AE 0x753A +0xC4AF 0x773A +0xC4B0 0x8074 +0xC4B1 0x8139 +0xC4B2 0x8178 +0xC4B3 0x8776 +0xC4B4 0x8ABF +0xC4B5 0x8ADC +0xC4B6 0x8D85 +0xC4B7 0x8DF3 +0xC4B8 0x929A +0xC4B9 0x9577 +0xC4BA 0x9802 +0xC4BB 0x9CE5 +0xC4BC 0x52C5 +0xC4BD 0x6357 +0xC4BE 0x76F4 +0xC4BF 0x6715 +0xC4C0 0x6C88 +0xC4C1 0x73CD +0xC4C2 0x8CC3 +0xC4C3 0x93AE +0xC4C4 0x9673 +0xC4C5 0x6D25 +0xC4C6 0x589C +0xC4C7 0x690E +0xC4C8 0x69CC +0xC4C9 0x8FFD +0xC4CA 0x939A +0xC4CB 0x75DB +0xC4CC 0x901A +0xC4CD 0x585A +0xC4CE 0x6802 +0xC4CF 0x63B4 +0xC4D0 0x69FB +0xC4D1 0x4F43 +0xC4D2 0x6F2C +0xC4D3 0x67D8 +0xC4D4 0x8FBB +0xC4D5 0x8526 +0xC4D6 0x7DB4 +0xC4D7 0x9354 +0xC4D8 0x693F +0xC4D9 0x6F70 +0xC4DA 0x576A +0xC4DB 0x58F7 +0xC4DC 0x5B2C +0xC4DD 0x7D2C +0xC4DE 0x722A +0xC4DF 0x540A +0xC4E0 0x91E3 +0xC4E1 0x9DB4 +0xC4E2 0x4EAD +0xC4E3 0x4F4E +0xC4E4 0x505C +0xC4E5 0x5075 +0xC4E6 0x5243 +0xC4E7 0x8C9E +0xC4E8 0x5448 +0xC4E9 0x5824 +0xC4EA 0x5B9A +0xC4EB 0x5E1D +0xC4EC 0x5E95 +0xC4ED 0x5EAD +0xC4EE 0x5EF7 +0xC4EF 0x5F1F +0xC4F0 0x608C +0xC4F1 0x62B5 +0xC4F2 0x633A +0xC4F3 0x63D0 +0xC4F4 0x68AF +0xC4F5 0x6C40 +0xC4F6 0x7887 +0xC4F7 0x798E +0xC4F8 0x7A0B +0xC4F9 0x7DE0 +0xC4FA 0x8247 +0xC4FB 0x8A02 +0xC4FC 0x8AE6 +0xC4FD 0x8E44 +0xC4FE 0x9013 +0xC5A1 0x90B8 +0xC5A2 0x912D +0xC5A3 0x91D8 +0xC5A4 0x9F0E +0xC5A5 0x6CE5 +0xC5A6 0x6458 +0xC5A7 0x64E2 +0xC5A8 0x6575 +0xC5A9 0x6EF4 +0xC5AA 0x7684 +0xC5AB 0x7B1B +0xC5AC 0x9069 +0xC5AD 0x93D1 +0xC5AE 0x6EBA +0xC5AF 0x54F2 +0xC5B0 0x5FB9 +0xC5B1 0x64A4 +0xC5B2 0x8F4D +0xC5B3 0x8FED +0xC5B4 0x9244 +0xC5B5 0x5178 +0xC5B6 0x586B +0xC5B7 0x5929 +0xC5B8 0x5C55 +0xC5B9 0x5E97 +0xC5BA 0x6DFB +0xC5BB 0x7E8F +0xC5BC 0x751C +0xC5BD 0x8CBC +0xC5BE 0x8EE2 +0xC5BF 0x985B +0xC5C0 0x70B9 +0xC5C1 0x4F1D +0xC5C2 0x6BBF +0xC5C3 0x6FB1 +0xC5C4 0x7530 +0xC5C5 0x96FB +0xC5C6 0x514E +0xC5C7 0x5410 +0xC5C8 0x5835 +0xC5C9 0x5857 +0xC5CA 0x59AC +0xC5CB 0x5C60 +0xC5CC 0x5F92 +0xC5CD 0x6597 +0xC5CE 0x675C +0xC5CF 0x6E21 +0xC5D0 0x767B +0xC5D1 0x83DF +0xC5D2 0x8CED +0xC5D3 0x9014 +0xC5D4 0x90FD +0xC5D5 0x934D +0xC5D6 0x7825 +0xC5D7 0x783A +0xC5D8 0x52AA +0xC5D9 0x5EA6 +0xC5DA 0x571F +0xC5DB 0x5974 +0xC5DC 0x6012 +0xC5DD 0x5012 +0xC5DE 0x515A +0xC5DF 0x51AC +0xC5E0 0x51CD +0xC5E1 0x5200 +0xC5E2 0x5510 +0xC5E3 0x5854 +0xC5E4 0x5858 +0xC5E5 0x5957 +0xC5E6 0x5B95 +0xC5E7 0x5CF6 +0xC5E8 0x5D8B +0xC5E9 0x60BC +0xC5EA 0x6295 +0xC5EB 0x642D +0xC5EC 0x6771 +0xC5ED 0x6843 +0xC5EE 0x68BC +0xC5EF 0x68DF +0xC5F0 0x76D7 +0xC5F1 0x6DD8 +0xC5F2 0x6E6F +0xC5F3 0x6D9B +0xC5F4 0x706F +0xC5F5 0x71C8 +0xC5F6 0x5F53 +0xC5F7 0x75D8 +0xC5F8 0x7977 +0xC5F9 0x7B49 +0xC5FA 0x7B54 +0xC5FB 0x7B52 +0xC5FC 0x7CD6 +0xC5FD 0x7D71 +0xC5FE 0x5230 +0xC6A1 0x8463 +0xC6A2 0x8569 +0xC6A3 0x85E4 +0xC6A4 0x8A0E +0xC6A5 0x8B04 +0xC6A6 0x8C46 +0xC6A7 0x8E0F +0xC6A8 0x9003 +0xC6A9 0x900F +0xC6AA 0x9419 +0xC6AB 0x9676 +0xC6AC 0x982D +0xC6AD 0x9A30 +0xC6AE 0x95D8 +0xC6AF 0x50CD +0xC6B0 0x52D5 +0xC6B1 0x540C +0xC6B2 0x5802 +0xC6B3 0x5C0E +0xC6B4 0x61A7 +0xC6B5 0x649E +0xC6B6 0x6D1E +0xC6B7 0x77B3 +0xC6B8 0x7AE5 +0xC6B9 0x80F4 +0xC6BA 0x8404 +0xC6BB 0x9053 +0xC6BC 0x9285 +0xC6BD 0x5CE0 +0xC6BE 0x9D07 +0xC6BF 0x533F +0xC6C0 0x5F97 +0xC6C1 0x5FB3 +0xC6C2 0x6D9C +0xC6C3 0x7279 +0xC6C4 0x7763 +0xC6C5 0x79BF +0xC6C6 0x7BE4 +0xC6C7 0x6BD2 +0xC6C8 0x72EC +0xC6C9 0x8AAD +0xC6CA 0x6803 +0xC6CB 0x6A61 +0xC6CC 0x51F8 +0xC6CD 0x7A81 +0xC6CE 0x6934 +0xC6CF 0x5C4A +0xC6D0 0x9CF6 +0xC6D1 0x82EB +0xC6D2 0x5BC5 +0xC6D3 0x9149 +0xC6D4 0x701E +0xC6D5 0x5678 +0xC6D6 0x5C6F +0xC6D7 0x60C7 +0xC6D8 0x6566 +0xC6D9 0x6C8C +0xC6DA 0x8C5A +0xC6DB 0x9041 +0xC6DC 0x9813 +0xC6DD 0x5451 +0xC6DE 0x66C7 +0xC6DF 0x920D +0xC6E0 0x5948 +0xC6E1 0x90A3 +0xC6E2 0x5185 +0xC6E3 0x4E4D +0xC6E4 0x51EA +0xC6E5 0x8599 +0xC6E6 0x8B0E +0xC6E7 0x7058 +0xC6E8 0x637A +0xC6E9 0x934B +0xC6EA 0x6962 +0xC6EB 0x99B4 +0xC6EC 0x7E04 +0xC6ED 0x7577 +0xC6EE 0x5357 +0xC6EF 0x6960 +0xC6F0 0x8EDF +0xC6F1 0x96E3 +0xC6F2 0x6C5D +0xC6F3 0x4E8C +0xC6F4 0x5C3C +0xC6F5 0x5F10 +0xC6F6 0x8FE9 +0xC6F7 0x5302 +0xC6F8 0x8CD1 +0xC6F9 0x8089 +0xC6FA 0x8679 +0xC6FB 0x5EFF +0xC6FC 0x65E5 +0xC6FD 0x4E73 +0xC6FE 0x5165 +0xC7A1 0x5982 +0xC7A2 0x5C3F +0xC7A3 0x97EE +0xC7A4 0x4EFB +0xC7A5 0x598A +0xC7A6 0x5FCD +0xC7A7 0x8A8D +0xC7A8 0x6FE1 +0xC7A9 0x79B0 +0xC7AA 0x7962 +0xC7AB 0x5BE7 +0xC7AC 0x8471 +0xC7AD 0x732B +0xC7AE 0x71B1 +0xC7AF 0x5E74 +0xC7B0 0x5FF5 +0xC7B1 0x637B +0xC7B2 0x649A +0xC7B3 0x71C3 +0xC7B4 0x7C98 +0xC7B5 0x4E43 +0xC7B6 0x5EFC +0xC7B7 0x4E4B +0xC7B8 0x57DC +0xC7B9 0x56A2 +0xC7BA 0x60A9 +0xC7BB 0x6FC3 +0xC7BC 0x7D0D +0xC7BD 0x80FD +0xC7BE 0x8133 +0xC7BF 0x81BF +0xC7C0 0x8FB2 +0xC7C1 0x8997 +0xC7C2 0x86A4 +0xC7C3 0x5DF4 +0xC7C4 0x628A +0xC7C5 0x64AD +0xC7C6 0x8987 +0xC7C7 0x6777 +0xC7C8 0x6CE2 +0xC7C9 0x6D3E +0xC7CA 0x7436 +0xC7CB 0x7834 +0xC7CC 0x5A46 +0xC7CD 0x7F75 +0xC7CE 0x82AD +0xC7CF 0x99AC +0xC7D0 0x4FF3 +0xC7D1 0x5EC3 +0xC7D2 0x62DD +0xC7D3 0x6392 +0xC7D4 0x6557 +0xC7D5 0x676F +0xC7D6 0x76C3 +0xC7D7 0x724C +0xC7D8 0x80CC +0xC7D9 0x80BA +0xC7DA 0x8F29 +0xC7DB 0x914D +0xC7DC 0x500D +0xC7DD 0x57F9 +0xC7DE 0x5A92 +0xC7DF 0x6885 +0xC7E0 0x6973 +0xC7E1 0x7164 +0xC7E2 0x72FD +0xC7E3 0x8CB7 +0xC7E4 0x58F2 +0xC7E5 0x8CE0 +0xC7E6 0x966A +0xC7E7 0x9019 +0xC7E8 0x877F +0xC7E9 0x79E4 +0xC7EA 0x77E7 +0xC7EB 0x8429 +0xC7EC 0x4F2F +0xC7ED 0x5265 +0xC7EE 0x535A +0xC7EF 0x62CD +0xC7F0 0x67CF +0xC7F1 0x6CCA +0xC7F2 0x767D +0xC7F3 0x7B94 +0xC7F4 0x7C95 +0xC7F5 0x8236 +0xC7F6 0x8584 +0xC7F7 0x8FEB +0xC7F8 0x66DD +0xC7F9 0x6F20 +0xC7FA 0x7206 +0xC7FB 0x7E1B +0xC7FC 0x83AB +0xC7FD 0x99C1 +0xC7FE 0x9EA6 +0xC8A1 0x51FD +0xC8A2 0x7BB1 +0xC8A3 0x7872 +0xC8A4 0x7BB8 +0xC8A5 0x8087 +0xC8A6 0x7B48 +0xC8A7 0x6AE8 +0xC8A8 0x5E61 +0xC8A9 0x808C +0xC8AA 0x7551 +0xC8AB 0x7560 +0xC8AC 0x516B +0xC8AD 0x9262 +0xC8AE 0x6E8C +0xC8AF 0x767A +0xC8B0 0x9197 +0xC8B1 0x9AEA +0xC8B2 0x4F10 +0xC8B3 0x7F70 +0xC8B4 0x629C +0xC8B5 0x7B4F +0xC8B6 0x95A5 +0xC8B7 0x9CE9 +0xC8B8 0x567A +0xC8B9 0x5859 +0xC8BA 0x86E4 +0xC8BB 0x96BC +0xC8BC 0x4F34 +0xC8BD 0x5224 +0xC8BE 0x534A +0xC8BF 0x53CD +0xC8C0 0x53DB +0xC8C1 0x5E06 +0xC8C2 0x642C +0xC8C3 0x6591 +0xC8C4 0x677F +0xC8C5 0x6C3E +0xC8C6 0x6C4E +0xC8C7 0x7248 +0xC8C8 0x72AF +0xC8C9 0x73ED +0xC8CA 0x7554 +0xC8CB 0x7E41 +0xC8CC 0x822C +0xC8CD 0x85E9 +0xC8CE 0x8CA9 +0xC8CF 0x7BC4 +0xC8D0 0x91C6 +0xC8D1 0x7169 +0xC8D2 0x9812 +0xC8D3 0x98EF +0xC8D4 0x633D +0xC8D5 0x6669 +0xC8D6 0x756A +0xC8D7 0x76E4 +0xC8D8 0x78D0 +0xC8D9 0x8543 +0xC8DA 0x86EE +0xC8DB 0x532A +0xC8DC 0x5351 +0xC8DD 0x5426 +0xC8DE 0x5983 +0xC8DF 0x5E87 +0xC8E0 0x5F7C +0xC8E1 0x60B2 +0xC8E2 0x6249 +0xC8E3 0x6279 +0xC8E4 0x62AB +0xC8E5 0x6590 +0xC8E6 0x6BD4 +0xC8E7 0x6CCC +0xC8E8 0x75B2 +0xC8E9 0x76AE +0xC8EA 0x7891 +0xC8EB 0x79D8 +0xC8EC 0x7DCB +0xC8ED 0x7F77 +0xC8EE 0x80A5 +0xC8EF 0x88AB +0xC8F0 0x8AB9 +0xC8F1 0x8CBB +0xC8F2 0x907F +0xC8F3 0x975E +0xC8F4 0x98DB +0xC8F5 0x6A0B +0xC8F6 0x7C38 +0xC8F7 0x5099 +0xC8F8 0x5C3E +0xC8F9 0x5FAE +0xC8FA 0x6787 +0xC8FB 0x6BD8 +0xC8FC 0x7435 +0xC8FD 0x7709 +0xC8FE 0x7F8E +0xC9A1 0x9F3B +0xC9A2 0x67CA +0xC9A3 0x7A17 +0xC9A4 0x5339 +0xC9A5 0x758B +0xC9A6 0x9AED +0xC9A7 0x5F66 +0xC9A8 0x819D +0xC9A9 0x83F1 +0xC9AA 0x8098 +0xC9AB 0x5F3C +0xC9AC 0x5FC5 +0xC9AD 0x7562 +0xC9AE 0x7B46 +0xC9AF 0x903C +0xC9B0 0x6867 +0xC9B1 0x59EB +0xC9B2 0x5A9B +0xC9B3 0x7D10 +0xC9B4 0x767E +0xC9B5 0x8B2C +0xC9B6 0x4FF5 +0xC9B7 0x5F6A +0xC9B8 0x6A19 +0xC9B9 0x6C37 +0xC9BA 0x6F02 +0xC9BB 0x74E2 +0xC9BC 0x7968 +0xC9BD 0x8868 +0xC9BE 0x8A55 +0xC9BF 0x8C79 +0xC9C0 0x5EDF +0xC9C1 0x63CF +0xC9C2 0x75C5 +0xC9C3 0x79D2 +0xC9C4 0x82D7 +0xC9C5 0x9328 +0xC9C6 0x92F2 +0xC9C7 0x849C +0xC9C8 0x86ED +0xC9C9 0x9C2D +0xC9CA 0x54C1 +0xC9CB 0x5F6C +0xC9CC 0x658C +0xC9CD 0x6D5C +0xC9CE 0x7015 +0xC9CF 0x8CA7 +0xC9D0 0x8CD3 +0xC9D1 0x983B +0xC9D2 0x654F +0xC9D3 0x74F6 +0xC9D4 0x4E0D +0xC9D5 0x4ED8 +0xC9D6 0x57E0 +0xC9D7 0x592B +0xC9D8 0x5A66 +0xC9D9 0x5BCC +0xC9DA 0x51A8 +0xC9DB 0x5E03 +0xC9DC 0x5E9C +0xC9DD 0x6016 +0xC9DE 0x6276 +0xC9DF 0x6577 +0xC9E0 0x65A7 +0xC9E1 0x666E +0xC9E2 0x6D6E +0xC9E3 0x7236 +0xC9E4 0x7B26 +0xC9E5 0x8150 +0xC9E6 0x819A +0xC9E7 0x8299 +0xC9E8 0x8B5C +0xC9E9 0x8CA0 +0xC9EA 0x8CE6 +0xC9EB 0x8D74 +0xC9EC 0x961C +0xC9ED 0x9644 +0xC9EE 0x4FAE +0xC9EF 0x64AB +0xC9F0 0x6B66 +0xC9F1 0x821E +0xC9F2 0x8461 +0xC9F3 0x856A +0xC9F4 0x90E8 +0xC9F5 0x5C01 +0xC9F6 0x6953 +0xC9F7 0x98A8 +0xC9F8 0x847A +0xC9F9 0x8557 +0xC9FA 0x4F0F +0xC9FB 0x526F +0xC9FC 0x5FA9 +0xC9FD 0x5E45 +0xC9FE 0x670D +0xCAA1 0x798F +0xCAA2 0x8179 +0xCAA3 0x8907 +0xCAA4 0x8986 +0xCAA5 0x6DF5 +0xCAA6 0x5F17 +0xCAA7 0x6255 +0xCAA8 0x6CB8 +0xCAA9 0x4ECF +0xCAAA 0x7269 +0xCAAB 0x9B92 +0xCAAC 0x5206 +0xCAAD 0x543B +0xCAAE 0x5674 +0xCAAF 0x58B3 +0xCAB0 0x61A4 +0xCAB1 0x626E +0xCAB2 0x711A +0xCAB3 0x596E +0xCAB4 0x7C89 +0xCAB5 0x7CDE +0xCAB6 0x7D1B +0xCAB7 0x96F0 +0xCAB8 0x6587 +0xCAB9 0x805E +0xCABA 0x4E19 +0xCABB 0x4F75 +0xCABC 0x5175 +0xCABD 0x5840 +0xCABE 0x5E63 +0xCABF 0x5E73 +0xCAC0 0x5F0A +0xCAC1 0x67C4 +0xCAC2 0x4E26 +0xCAC3 0x853D +0xCAC4 0x9589 +0xCAC5 0x965B +0xCAC6 0x7C73 +0xCAC7 0x9801 +0xCAC8 0x50FB +0xCAC9 0x58C1 +0xCACA 0x7656 +0xCACB 0x78A7 +0xCACC 0x5225 +0xCACD 0x77A5 +0xCACE 0x8511 +0xCACF 0x7B86 +0xCAD0 0x504F +0xCAD1 0x5909 +0xCAD2 0x7247 +0xCAD3 0x7BC7 +0xCAD4 0x7DE8 +0xCAD5 0x8FBA +0xCAD6 0x8FD4 +0xCAD7 0x904D +0xCAD8 0x4FBF +0xCAD9 0x52C9 +0xCADA 0x5A29 +0xCADB 0x5F01 +0xCADC 0x97AD +0xCADD 0x4FDD +0xCADE 0x8217 +0xCADF 0x92EA +0xCAE0 0x5703 +0xCAE1 0x6355 +0xCAE2 0x6B69 +0xCAE3 0x752B +0xCAE4 0x88DC +0xCAE5 0x8F14 +0xCAE6 0x7A42 +0xCAE7 0x52DF +0xCAE8 0x5893 +0xCAE9 0x6155 +0xCAEA 0x620A +0xCAEB 0x66AE +0xCAEC 0x6BCD +0xCAED 0x7C3F +0xCAEE 0x83E9 +0xCAEF 0x5023 +0xCAF0 0x4FF8 +0xCAF1 0x5305 +0xCAF2 0x5446 +0xCAF3 0x5831 +0xCAF4 0x5949 +0xCAF5 0x5B9D +0xCAF6 0x5CF0 +0xCAF7 0x5CEF +0xCAF8 0x5D29 +0xCAF9 0x5E96 +0xCAFA 0x62B1 +0xCAFB 0x6367 +0xCAFC 0x653E +0xCAFD 0x65B9 +0xCAFE 0x670B +0xCBA1 0x6CD5 +0xCBA2 0x6CE1 +0xCBA3 0x70F9 +0xCBA4 0x7832 +0xCBA5 0x7E2B +0xCBA6 0x80DE +0xCBA7 0x82B3 +0xCBA8 0x840C +0xCBA9 0x84EC +0xCBAA 0x8702 +0xCBAB 0x8912 +0xCBAC 0x8A2A +0xCBAD 0x8C4A +0xCBAE 0x90A6 +0xCBAF 0x92D2 +0xCBB0 0x98FD +0xCBB1 0x9CF3 +0xCBB2 0x9D6C +0xCBB3 0x4E4F +0xCBB4 0x4EA1 +0xCBB5 0x508D +0xCBB6 0x5256 +0xCBB7 0x574A +0xCBB8 0x59A8 +0xCBB9 0x5E3D +0xCBBA 0x5FD8 +0xCBBB 0x5FD9 +0xCBBC 0x623F +0xCBBD 0x66B4 +0xCBBE 0x671B +0xCBBF 0x67D0 +0xCBC0 0x68D2 +0xCBC1 0x5192 +0xCBC2 0x7D21 +0xCBC3 0x80AA +0xCBC4 0x81A8 +0xCBC5 0x8B00 +0xCBC6 0x8C8C +0xCBC7 0x8CBF +0xCBC8 0x927E +0xCBC9 0x9632 +0xCBCA 0x5420 +0xCBCB 0x982C +0xCBCC 0x5317 +0xCBCD 0x50D5 +0xCBCE 0x535C +0xCBCF 0x58A8 +0xCBD0 0x64B2 +0xCBD1 0x6734 +0xCBD2 0x7267 +0xCBD3 0x7766 +0xCBD4 0x7A46 +0xCBD5 0x91E6 +0xCBD6 0x52C3 +0xCBD7 0x6CA1 +0xCBD8 0x6B86 +0xCBD9 0x5800 +0xCBDA 0x5E4C +0xCBDB 0x5954 +0xCBDC 0x672C +0xCBDD 0x7FFB +0xCBDE 0x51E1 +0xCBDF 0x76C6 +0xCBE0 0x6469 +0xCBE1 0x78E8 +0xCBE2 0x9B54 +0xCBE3 0x9EBB +0xCBE4 0x57CB +0xCBE5 0x59B9 +0xCBE6 0x6627 +0xCBE7 0x679A +0xCBE8 0x6BCE +0xCBE9 0x54E9 +0xCBEA 0x69D9 +0xCBEB 0x5E55 +0xCBEC 0x819C +0xCBED 0x6795 +0xCBEE 0x9BAA +0xCBEF 0x67FE +0xCBF0 0x9C52 +0xCBF1 0x685D +0xCBF2 0x4EA6 +0xCBF3 0x4FE3 +0xCBF4 0x53C8 +0xCBF5 0x62B9 +0xCBF6 0x672B +0xCBF7 0x6CAB +0xCBF8 0x8FC4 +0xCBF9 0x4FAD +0xCBFA 0x7E6D +0xCBFB 0x9EBF +0xCBFC 0x4E07 +0xCBFD 0x6162 +0xCBFE 0x6E80 +0xCCA1 0x6F2B +0xCCA2 0x8513 +0xCCA3 0x5473 +0xCCA4 0x672A +0xCCA5 0x9B45 +0xCCA6 0x5DF3 +0xCCA7 0x7B95 +0xCCA8 0x5CAC +0xCCA9 0x5BC6 +0xCCAA 0x871C +0xCCAB 0x6E4A +0xCCAC 0x84D1 +0xCCAD 0x7A14 +0xCCAE 0x8108 +0xCCAF 0x5999 +0xCCB0 0x7C8D +0xCCB1 0x6C11 +0xCCB2 0x7720 +0xCCB3 0x52D9 +0xCCB4 0x5922 +0xCCB5 0x7121 +0xCCB6 0x725F +0xCCB7 0x77DB +0xCCB8 0x9727 +0xCCB9 0x9D61 +0xCCBA 0x690B +0xCCBB 0x5A7F +0xCCBC 0x5A18 +0xCCBD 0x51A5 +0xCCBE 0x540D +0xCCBF 0x547D +0xCCC0 0x660E +0xCCC1 0x76DF +0xCCC2 0x8FF7 +0xCCC3 0x9298 +0xCCC4 0x9CF4 +0xCCC5 0x59EA +0xCCC6 0x725D +0xCCC7 0x6EC5 +0xCCC8 0x514D +0xCCC9 0x68C9 +0xCCCA 0x7DBF +0xCCCB 0x7DEC +0xCCCC 0x9762 +0xCCCD 0x9EBA +0xCCCE 0x6478 +0xCCCF 0x6A21 +0xCCD0 0x8302 +0xCCD1 0x5984 +0xCCD2 0x5B5F +0xCCD3 0x6BDB +0xCCD4 0x731B +0xCCD5 0x76F2 +0xCCD6 0x7DB2 +0xCCD7 0x8017 +0xCCD8 0x8499 +0xCCD9 0x5132 +0xCCDA 0x6728 +0xCCDB 0x9ED9 +0xCCDC 0x76EE +0xCCDD 0x6762 +0xCCDE 0x52FF +0xCCDF 0x9905 +0xCCE0 0x5C24 +0xCCE1 0x623B +0xCCE2 0x7C7E +0xCCE3 0x8CB0 +0xCCE4 0x554F +0xCCE5 0x60B6 +0xCCE6 0x7D0B +0xCCE7 0x9580 +0xCCE8 0x5301 +0xCCE9 0x4E5F +0xCCEA 0x51B6 +0xCCEB 0x591C +0xCCEC 0x723A +0xCCED 0x8036 +0xCCEE 0x91CE +0xCCEF 0x5F25 +0xCCF0 0x77E2 +0xCCF1 0x5384 +0xCCF2 0x5F79 +0xCCF3 0x7D04 +0xCCF4 0x85AC +0xCCF5 0x8A33 +0xCCF6 0x8E8D +0xCCF7 0x9756 +0xCCF8 0x67F3 +0xCCF9 0x85AE +0xCCFA 0x9453 +0xCCFB 0x6109 +0xCCFC 0x6108 +0xCCFD 0x6CB9 +0xCCFE 0x7652 +0xCDA1 0x8AED +0xCDA2 0x8F38 +0xCDA3 0x552F +0xCDA4 0x4F51 +0xCDA5 0x512A +0xCDA6 0x52C7 +0xCDA7 0x53CB +0xCDA8 0x5BA5 +0xCDA9 0x5E7D +0xCDAA 0x60A0 +0xCDAB 0x6182 +0xCDAC 0x63D6 +0xCDAD 0x6709 +0xCDAE 0x67DA +0xCDAF 0x6E67 +0xCDB0 0x6D8C +0xCDB1 0x7336 +0xCDB2 0x7337 +0xCDB3 0x7531 +0xCDB4 0x7950 +0xCDB5 0x88D5 +0xCDB6 0x8A98 +0xCDB7 0x904A +0xCDB8 0x9091 +0xCDB9 0x90F5 +0xCDBA 0x96C4 +0xCDBB 0x878D +0xCDBC 0x5915 +0xCDBD 0x4E88 +0xCDBE 0x4F59 +0xCDBF 0x4E0E +0xCDC0 0x8A89 +0xCDC1 0x8F3F +0xCDC2 0x9810 +0xCDC3 0x50AD +0xCDC4 0x5E7C +0xCDC5 0x5996 +0xCDC6 0x5BB9 +0xCDC7 0x5EB8 +0xCDC8 0x63DA +0xCDC9 0x63FA +0xCDCA 0x64C1 +0xCDCB 0x66DC +0xCDCC 0x694A +0xCDCD 0x69D8 +0xCDCE 0x6D0B +0xCDCF 0x6EB6 +0xCDD0 0x7194 +0xCDD1 0x7528 +0xCDD2 0x7AAF +0xCDD3 0x7F8A +0xCDD4 0x8000 +0xCDD5 0x8449 +0xCDD6 0x84C9 +0xCDD7 0x8981 +0xCDD8 0x8B21 +0xCDD9 0x8E0A +0xCDDA 0x9065 +0xCDDB 0x967D +0xCDDC 0x990A +0xCDDD 0x617E +0xCDDE 0x6291 +0xCDDF 0x6B32 +0xCDE0 0x6C83 +0xCDE1 0x6D74 +0xCDE2 0x7FCC +0xCDE3 0x7FFC +0xCDE4 0x6DC0 +0xCDE5 0x7F85 +0xCDE6 0x87BA +0xCDE7 0x88F8 +0xCDE8 0x6765 +0xCDE9 0x83B1 +0xCDEA 0x983C +0xCDEB 0x96F7 +0xCDEC 0x6D1B +0xCDED 0x7D61 +0xCDEE 0x843D +0xCDEF 0x916A +0xCDF0 0x4E71 +0xCDF1 0x5375 +0xCDF2 0x5D50 +0xCDF3 0x6B04 +0xCDF4 0x6FEB +0xCDF5 0x85CD +0xCDF6 0x862D +0xCDF7 0x89A7 +0xCDF8 0x5229 +0xCDF9 0x540F +0xCDFA 0x5C65 +0xCDFB 0x674E +0xCDFC 0x68A8 +0xCDFD 0x7406 +0xCDFE 0x7483 +0xCEA1 0x75E2 +0xCEA2 0x88CF +0xCEA3 0x88E1 +0xCEA4 0x91CC +0xCEA5 0x96E2 +0xCEA6 0x9678 +0xCEA7 0x5F8B +0xCEA8 0x7387 +0xCEA9 0x7ACB +0xCEAA 0x844E +0xCEAB 0x63A0 +0xCEAC 0x7565 +0xCEAD 0x5289 +0xCEAE 0x6D41 +0xCEAF 0x6E9C +0xCEB0 0x7409 +0xCEB1 0x7559 +0xCEB2 0x786B +0xCEB3 0x7C92 +0xCEB4 0x9686 +0xCEB5 0x7ADC +0xCEB6 0x9F8D +0xCEB7 0x4FB6 +0xCEB8 0x616E +0xCEB9 0x65C5 +0xCEBA 0x865C +0xCEBB 0x4E86 +0xCEBC 0x4EAE +0xCEBD 0x50DA +0xCEBE 0x4E21 +0xCEBF 0x51CC +0xCEC0 0x5BEE +0xCEC1 0x6599 +0xCEC2 0x6881 +0xCEC3 0x6DBC +0xCEC4 0x731F +0xCEC5 0x7642 +0xCEC6 0x77AD +0xCEC7 0x7A1C +0xCEC8 0x7CE7 +0xCEC9 0x826F +0xCECA 0x8AD2 +0xCECB 0x907C +0xCECC 0x91CF +0xCECD 0x9675 +0xCECE 0x9818 +0xCECF 0x529B +0xCED0 0x7DD1 +0xCED1 0x502B +0xCED2 0x5398 +0xCED3 0x6797 +0xCED4 0x6DCB +0xCED5 0x71D0 +0xCED6 0x7433 +0xCED7 0x81E8 +0xCED8 0x8F2A +0xCED9 0x96A3 +0xCEDA 0x9C57 +0xCEDB 0x9E9F +0xCEDC 0x7460 +0xCEDD 0x5841 +0xCEDE 0x6D99 +0xCEDF 0x7D2F +0xCEE0 0x985E +0xCEE1 0x4EE4 +0xCEE2 0x4F36 +0xCEE3 0x4F8B +0xCEE4 0x51B7 +0xCEE5 0x52B1 +0xCEE6 0x5DBA +0xCEE7 0x601C +0xCEE8 0x73B2 +0xCEE9 0x793C +0xCEEA 0x82D3 +0xCEEB 0x9234 +0xCEEC 0x96B7 +0xCEED 0x96F6 +0xCEEE 0x970A +0xCEEF 0x9E97 +0xCEF0 0x9F62 +0xCEF1 0x66A6 +0xCEF2 0x6B74 +0xCEF3 0x5217 +0xCEF4 0x52A3 +0xCEF5 0x70C8 +0xCEF6 0x88C2 +0xCEF7 0x5EC9 +0xCEF8 0x604B +0xCEF9 0x6190 +0xCEFA 0x6F23 +0xCEFB 0x7149 +0xCEFC 0x7C3E +0xCEFD 0x7DF4 +0xCEFE 0x806F +0xCFA1 0x84EE +0xCFA2 0x9023 +0xCFA3 0x932C +0xCFA4 0x5442 +0xCFA5 0x9B6F +0xCFA6 0x6AD3 +0xCFA7 0x7089 +0xCFA8 0x8CC2 +0xCFA9 0x8DEF +0xCFAA 0x9732 +0xCFAB 0x52B4 +0xCFAC 0x5A41 +0xCFAD 0x5ECA +0xCFAE 0x5F04 +0xCFAF 0x6717 +0xCFB0 0x697C +0xCFB1 0x6994 +0xCFB2 0x6D6A +0xCFB3 0x6F0F +0xCFB4 0x7262 +0xCFB5 0x72FC +0xCFB6 0x7BED +0xCFB7 0x8001 +0xCFB8 0x807E +0xCFB9 0x874B +0xCFBA 0x90CE +0xCFBB 0x516D +0xCFBC 0x9E93 +0xCFBD 0x7984 +0xCFBE 0x808B +0xCFBF 0x9332 +0xCFC0 0x8AD6 +0xCFC1 0x502D +0xCFC2 0x548C +0xCFC3 0x8A71 +0xCFC4 0x6B6A +0xCFC5 0x8CC4 +0xCFC6 0x8107 +0xCFC7 0x60D1 +0xCFC8 0x67A0 +0xCFC9 0x9DF2 +0xCFCA 0x4E99 +0xCFCB 0x4E98 +0xCFCC 0x9C10 +0xCFCD 0x8A6B +0xCFCE 0x85C1 +0xCFCF 0x8568 +0xCFD0 0x6900 +0xCFD1 0x6E7E +0xCFD2 0x7897 +0xCFD3 0x8155 +0xD0A1 0x5F0C +0xD0A2 0x4E10 +0xD0A3 0x4E15 +0xD0A4 0x4E2A +0xD0A5 0x4E31 +0xD0A6 0x4E36 +0xD0A7 0x4E3C +0xD0A8 0x4E3F +0xD0A9 0x4E42 +0xD0AA 0x4E56 +0xD0AB 0x4E58 +0xD0AC 0x4E82 +0xD0AD 0x4E85 +0xD0AE 0x8C6B +0xD0AF 0x4E8A +0xD0B0 0x8212 +0xD0B1 0x5F0D +0xD0B2 0x4E8E +0xD0B3 0x4E9E +0xD0B4 0x4E9F +0xD0B5 0x4EA0 +0xD0B6 0x4EA2 +0xD0B7 0x4EB0 +0xD0B8 0x4EB3 +0xD0B9 0x4EB6 +0xD0BA 0x4ECE +0xD0BB 0x4ECD +0xD0BC 0x4EC4 +0xD0BD 0x4EC6 +0xD0BE 0x4EC2 +0xD0BF 0x4ED7 +0xD0C0 0x4EDE +0xD0C1 0x4EED +0xD0C2 0x4EDF +0xD0C3 0x4EF7 +0xD0C4 0x4F09 +0xD0C5 0x4F5A +0xD0C6 0x4F30 +0xD0C7 0x4F5B +0xD0C8 0x4F5D +0xD0C9 0x4F57 +0xD0CA 0x4F47 +0xD0CB 0x4F76 +0xD0CC 0x4F88 +0xD0CD 0x4F8F +0xD0CE 0x4F98 +0xD0CF 0x4F7B +0xD0D0 0x4F69 +0xD0D1 0x4F70 +0xD0D2 0x4F91 +0xD0D3 0x4F6F +0xD0D4 0x4F86 +0xD0D5 0x4F96 +0xD0D6 0x5118 +0xD0D7 0x4FD4 +0xD0D8 0x4FDF +0xD0D9 0x4FCE +0xD0DA 0x4FD8 +0xD0DB 0x4FDB +0xD0DC 0x4FD1 +0xD0DD 0x4FDA +0xD0DE 0x4FD0 +0xD0DF 0x4FE4 +0xD0E0 0x4FE5 +0xD0E1 0x501A +0xD0E2 0x5028 +0xD0E3 0x5014 +0xD0E4 0x502A +0xD0E5 0x5025 +0xD0E6 0x5005 +0xD0E7 0x4F1C +0xD0E8 0x4FF6 +0xD0E9 0x5021 +0xD0EA 0x5029 +0xD0EB 0x502C +0xD0EC 0x4FFE +0xD0ED 0x4FEF +0xD0EE 0x5011 +0xD0EF 0x5006 +0xD0F0 0x5043 +0xD0F1 0x5047 +0xD0F2 0x6703 +0xD0F3 0x5055 +0xD0F4 0x5050 +0xD0F5 0x5048 +0xD0F6 0x505A +0xD0F7 0x5056 +0xD0F8 0x506C +0xD0F9 0x5078 +0xD0FA 0x5080 +0xD0FB 0x509A +0xD0FC 0x5085 +0xD0FD 0x50B4 +0xD0FE 0x50B2 +0xD1A1 0x50C9 +0xD1A2 0x50CA +0xD1A3 0x50B3 +0xD1A4 0x50C2 +0xD1A5 0x50D6 +0xD1A6 0x50DE +0xD1A7 0x50E5 +0xD1A8 0x50ED +0xD1A9 0x50E3 +0xD1AA 0x50EE +0xD1AB 0x50F9 +0xD1AC 0x50F5 +0xD1AD 0x5109 +0xD1AE 0x5101 +0xD1AF 0x5102 +0xD1B0 0x5116 +0xD1B1 0x5115 +0xD1B2 0x5114 +0xD1B3 0x511A +0xD1B4 0x5121 +0xD1B5 0x513A +0xD1B6 0x5137 +0xD1B7 0x513C +0xD1B8 0x513B +0xD1B9 0x513F +0xD1BA 0x5140 +0xD1BB 0x5152 +0xD1BC 0x514C +0xD1BD 0x5154 +0xD1BE 0x5162 +0xD1BF 0x7AF8 +0xD1C0 0x5169 +0xD1C1 0x516A +0xD1C2 0x516E +0xD1C3 0x5180 +0xD1C4 0x5182 +0xD1C5 0x56D8 +0xD1C6 0x518C +0xD1C7 0x5189 +0xD1C8 0x518F +0xD1C9 0x5191 +0xD1CA 0x5193 +0xD1CB 0x5195 +0xD1CC 0x5196 +0xD1CD 0x51A4 +0xD1CE 0x51A6 +0xD1CF 0x51A2 +0xD1D0 0x51A9 +0xD1D1 0x51AA +0xD1D2 0x51AB +0xD1D3 0x51B3 +0xD1D4 0x51B1 +0xD1D5 0x51B2 +0xD1D6 0x51B0 +0xD1D7 0x51B5 +0xD1D8 0x51BD +0xD1D9 0x51C5 +0xD1DA 0x51C9 +0xD1DB 0x51DB +0xD1DC 0x51E0 +0xD1DD 0x8655 +0xD1DE 0x51E9 +0xD1DF 0x51ED +0xD1E0 0x51F0 +0xD1E1 0x51F5 +0xD1E2 0x51FE +0xD1E3 0x5204 +0xD1E4 0x520B +0xD1E5 0x5214 +0xD1E6 0x520E +0xD1E7 0x5227 +0xD1E8 0x522A +0xD1E9 0x522E +0xD1EA 0x5233 +0xD1EB 0x5239 +0xD1EC 0x524F +0xD1ED 0x5244 +0xD1EE 0x524B +0xD1EF 0x524C +0xD1F0 0x525E +0xD1F1 0x5254 +0xD1F2 0x526A +0xD1F3 0x5274 +0xD1F4 0x5269 +0xD1F5 0x5273 +0xD1F6 0x527F +0xD1F7 0x527D +0xD1F8 0x528D +0xD1F9 0x5294 +0xD1FA 0x5292 +0xD1FB 0x5271 +0xD1FC 0x5288 +0xD1FD 0x5291 +0xD1FE 0x8FA8 +0xD2A1 0x8FA7 +0xD2A2 0x52AC +0xD2A3 0x52AD +0xD2A4 0x52BC +0xD2A5 0x52B5 +0xD2A6 0x52C1 +0xD2A7 0x52CD +0xD2A8 0x52D7 +0xD2A9 0x52DE +0xD2AA 0x52E3 +0xD2AB 0x52E6 +0xD2AC 0x98ED +0xD2AD 0x52E0 +0xD2AE 0x52F3 +0xD2AF 0x52F5 +0xD2B0 0x52F8 +0xD2B1 0x52F9 +0xD2B2 0x5306 +0xD2B3 0x5308 +0xD2B4 0x7538 +0xD2B5 0x530D +0xD2B6 0x5310 +0xD2B7 0x530F +0xD2B8 0x5315 +0xD2B9 0x531A +0xD2BA 0x5323 +0xD2BB 0x532F +0xD2BC 0x5331 +0xD2BD 0x5333 +0xD2BE 0x5338 +0xD2BF 0x5340 +0xD2C0 0x5346 +0xD2C1 0x5345 +0xD2C2 0x4E17 +0xD2C3 0x5349 +0xD2C4 0x534D +0xD2C5 0x51D6 +0xD2C6 0x535E +0xD2C7 0x5369 +0xD2C8 0x536E +0xD2C9 0x5918 +0xD2CA 0x537B +0xD2CB 0x5377 +0xD2CC 0x5382 +0xD2CD 0x5396 +0xD2CE 0x53A0 +0xD2CF 0x53A6 +0xD2D0 0x53A5 +0xD2D1 0x53AE +0xD2D2 0x53B0 +0xD2D3 0x53B6 +0xD2D4 0x53C3 +0xD2D5 0x7C12 +0xD2D6 0x96D9 +0xD2D7 0x53DF +0xD2D8 0x66FC +0xD2D9 0x71EE +0xD2DA 0x53EE +0xD2DB 0x53E8 +0xD2DC 0x53ED +0xD2DD 0x53FA +0xD2DE 0x5401 +0xD2DF 0x543D +0xD2E0 0x5440 +0xD2E1 0x542C +0xD2E2 0x542D +0xD2E3 0x543C +0xD2E4 0x542E +0xD2E5 0x5436 +0xD2E6 0x5429 +0xD2E7 0x541D +0xD2E8 0x544E +0xD2E9 0x548F +0xD2EA 0x5475 +0xD2EB 0x548E +0xD2EC 0x545F +0xD2ED 0x5471 +0xD2EE 0x5477 +0xD2EF 0x5470 +0xD2F0 0x5492 +0xD2F1 0x547B +0xD2F2 0x5480 +0xD2F3 0x5476 +0xD2F4 0x5484 +0xD2F5 0x5490 +0xD2F6 0x5486 +0xD2F7 0x54C7 +0xD2F8 0x54A2 +0xD2F9 0x54B8 +0xD2FA 0x54A5 +0xD2FB 0x54AC +0xD2FC 0x54C4 +0xD2FD 0x54C8 +0xD2FE 0x54A8 +0xD3A1 0x54AB +0xD3A2 0x54C2 +0xD3A3 0x54A4 +0xD3A4 0x54BE +0xD3A5 0x54BC +0xD3A6 0x54D8 +0xD3A7 0x54E5 +0xD3A8 0x54E6 +0xD3A9 0x550F +0xD3AA 0x5514 +0xD3AB 0x54FD +0xD3AC 0x54EE +0xD3AD 0x54ED +0xD3AE 0x54FA +0xD3AF 0x54E2 +0xD3B0 0x5539 +0xD3B1 0x5540 +0xD3B2 0x5563 +0xD3B3 0x554C +0xD3B4 0x552E +0xD3B5 0x555C +0xD3B6 0x5545 +0xD3B7 0x5556 +0xD3B8 0x5557 +0xD3B9 0x5538 +0xD3BA 0x5533 +0xD3BB 0x555D +0xD3BC 0x5599 +0xD3BD 0x5580 +0xD3BE 0x54AF +0xD3BF 0x558A +0xD3C0 0x559F +0xD3C1 0x557B +0xD3C2 0x557E +0xD3C3 0x5598 +0xD3C4 0x559E +0xD3C5 0x55AE +0xD3C6 0x557C +0xD3C7 0x5583 +0xD3C8 0x55A9 +0xD3C9 0x5587 +0xD3CA 0x55A8 +0xD3CB 0x55DA +0xD3CC 0x55C5 +0xD3CD 0x55DF +0xD3CE 0x55C4 +0xD3CF 0x55DC +0xD3D0 0x55E4 +0xD3D1 0x55D4 +0xD3D2 0x5614 +0xD3D3 0x55F7 +0xD3D4 0x5616 +0xD3D5 0x55FE +0xD3D6 0x55FD +0xD3D7 0x561B +0xD3D8 0x55F9 +0xD3D9 0x564E +0xD3DA 0x5650 +0xD3DB 0x71DF +0xD3DC 0x5634 +0xD3DD 0x5636 +0xD3DE 0x5632 +0xD3DF 0x5638 +0xD3E0 0x566B +0xD3E1 0x5664 +0xD3E2 0x562F +0xD3E3 0x566C +0xD3E4 0x566A +0xD3E5 0x5686 +0xD3E6 0x5680 +0xD3E7 0x568A +0xD3E8 0x56A0 +0xD3E9 0x5694 +0xD3EA 0x568F +0xD3EB 0x56A5 +0xD3EC 0x56AE +0xD3ED 0x56B6 +0xD3EE 0x56B4 +0xD3EF 0x56C2 +0xD3F0 0x56BC +0xD3F1 0x56C1 +0xD3F2 0x56C3 +0xD3F3 0x56C0 +0xD3F4 0x56C8 +0xD3F5 0x56CE +0xD3F6 0x56D1 +0xD3F7 0x56D3 +0xD3F8 0x56D7 +0xD3F9 0x56EE +0xD3FA 0x56F9 +0xD3FB 0x5700 +0xD3FC 0x56FF +0xD3FD 0x5704 +0xD3FE 0x5709 +0xD4A1 0x5708 +0xD4A2 0x570B +0xD4A3 0x570D +0xD4A4 0x5713 +0xD4A5 0x5718 +0xD4A6 0x5716 +0xD4A7 0x55C7 +0xD4A8 0x571C +0xD4A9 0x5726 +0xD4AA 0x5737 +0xD4AB 0x5738 +0xD4AC 0x574E +0xD4AD 0x573B +0xD4AE 0x5740 +0xD4AF 0x574F +0xD4B0 0x5769 +0xD4B1 0x57C0 +0xD4B2 0x5788 +0xD4B3 0x5761 +0xD4B4 0x577F +0xD4B5 0x5789 +0xD4B6 0x5793 +0xD4B7 0x57A0 +0xD4B8 0x57B3 +0xD4B9 0x57A4 +0xD4BA 0x57AA +0xD4BB 0x57B0 +0xD4BC 0x57C3 +0xD4BD 0x57C6 +0xD4BE 0x57D4 +0xD4BF 0x57D2 +0xD4C0 0x57D3 +0xD4C1 0x580A +0xD4C2 0x57D6 +0xD4C3 0x57E3 +0xD4C4 0x580B +0xD4C5 0x5819 +0xD4C6 0x581D +0xD4C7 0x5872 +0xD4C8 0x5821 +0xD4C9 0x5862 +0xD4CA 0x584B +0xD4CB 0x5870 +0xD4CC 0x6BC0 +0xD4CD 0x5852 +0xD4CE 0x583D +0xD4CF 0x5879 +0xD4D0 0x5885 +0xD4D1 0x58B9 +0xD4D2 0x589F +0xD4D3 0x58AB +0xD4D4 0x58BA +0xD4D5 0x58DE +0xD4D6 0x58BB +0xD4D7 0x58B8 +0xD4D8 0x58AE +0xD4D9 0x58C5 +0xD4DA 0x58D3 +0xD4DB 0x58D1 +0xD4DC 0x58D7 +0xD4DD 0x58D9 +0xD4DE 0x58D8 +0xD4DF 0x58E5 +0xD4E0 0x58DC +0xD4E1 0x58E4 +0xD4E2 0x58DF +0xD4E3 0x58EF +0xD4E4 0x58FA +0xD4E5 0x58F9 +0xD4E6 0x58FB +0xD4E7 0x58FC +0xD4E8 0x58FD +0xD4E9 0x5902 +0xD4EA 0x590A +0xD4EB 0x5910 +0xD4EC 0x591B +0xD4ED 0x68A6 +0xD4EE 0x5925 +0xD4EF 0x592C +0xD4F0 0x592D +0xD4F1 0x5932 +0xD4F2 0x5938 +0xD4F3 0x593E +0xD4F4 0x7AD2 +0xD4F5 0x5955 +0xD4F6 0x5950 +0xD4F7 0x594E +0xD4F8 0x595A +0xD4F9 0x5958 +0xD4FA 0x5962 +0xD4FB 0x5960 +0xD4FC 0x5967 +0xD4FD 0x596C +0xD4FE 0x5969 +0xD5A1 0x5978 +0xD5A2 0x5981 +0xD5A3 0x599D +0xD5A4 0x4F5E +0xD5A5 0x4FAB +0xD5A6 0x59A3 +0xD5A7 0x59B2 +0xD5A8 0x59C6 +0xD5A9 0x59E8 +0xD5AA 0x59DC +0xD5AB 0x598D +0xD5AC 0x59D9 +0xD5AD 0x59DA +0xD5AE 0x5A25 +0xD5AF 0x5A1F +0xD5B0 0x5A11 +0xD5B1 0x5A1C +0xD5B2 0x5A09 +0xD5B3 0x5A1A +0xD5B4 0x5A40 +0xD5B5 0x5A6C +0xD5B6 0x5A49 +0xD5B7 0x5A35 +0xD5B8 0x5A36 +0xD5B9 0x5A62 +0xD5BA 0x5A6A +0xD5BB 0x5A9A +0xD5BC 0x5ABC +0xD5BD 0x5ABE +0xD5BE 0x5ACB +0xD5BF 0x5AC2 +0xD5C0 0x5ABD +0xD5C1 0x5AE3 +0xD5C2 0x5AD7 +0xD5C3 0x5AE6 +0xD5C4 0x5AE9 +0xD5C5 0x5AD6 +0xD5C6 0x5AFA +0xD5C7 0x5AFB +0xD5C8 0x5B0C +0xD5C9 0x5B0B +0xD5CA 0x5B16 +0xD5CB 0x5B32 +0xD5CC 0x5AD0 +0xD5CD 0x5B2A +0xD5CE 0x5B36 +0xD5CF 0x5B3E +0xD5D0 0x5B43 +0xD5D1 0x5B45 +0xD5D2 0x5B40 +0xD5D3 0x5B51 +0xD5D4 0x5B55 +0xD5D5 0x5B5A +0xD5D6 0x5B5B +0xD5D7 0x5B65 +0xD5D8 0x5B69 +0xD5D9 0x5B70 +0xD5DA 0x5B73 +0xD5DB 0x5B75 +0xD5DC 0x5B78 +0xD5DD 0x6588 +0xD5DE 0x5B7A +0xD5DF 0x5B80 +0xD5E0 0x5B83 +0xD5E1 0x5BA6 +0xD5E2 0x5BB8 +0xD5E3 0x5BC3 +0xD5E4 0x5BC7 +0xD5E5 0x5BC9 +0xD5E6 0x5BD4 +0xD5E7 0x5BD0 +0xD5E8 0x5BE4 +0xD5E9 0x5BE6 +0xD5EA 0x5BE2 +0xD5EB 0x5BDE +0xD5EC 0x5BE5 +0xD5ED 0x5BEB +0xD5EE 0x5BF0 +0xD5EF 0x5BF6 +0xD5F0 0x5BF3 +0xD5F1 0x5C05 +0xD5F2 0x5C07 +0xD5F3 0x5C08 +0xD5F4 0x5C0D +0xD5F5 0x5C13 +0xD5F6 0x5C20 +0xD5F7 0x5C22 +0xD5F8 0x5C28 +0xD5F9 0x5C38 +0xD5FA 0x5C39 +0xD5FB 0x5C41 +0xD5FC 0x5C46 +0xD5FD 0x5C4E +0xD5FE 0x5C53 +0xD6A1 0x5C50 +0xD6A2 0x5C4F +0xD6A3 0x5B71 +0xD6A4 0x5C6C +0xD6A5 0x5C6E +0xD6A6 0x4E62 +0xD6A7 0x5C76 +0xD6A8 0x5C79 +0xD6A9 0x5C8C +0xD6AA 0x5C91 +0xD6AB 0x5C94 +0xD6AC 0x599B +0xD6AD 0x5CAB +0xD6AE 0x5CBB +0xD6AF 0x5CB6 +0xD6B0 0x5CBC +0xD6B1 0x5CB7 +0xD6B2 0x5CC5 +0xD6B3 0x5CBE +0xD6B4 0x5CC7 +0xD6B5 0x5CD9 +0xD6B6 0x5CE9 +0xD6B7 0x5CFD +0xD6B8 0x5CFA +0xD6B9 0x5CED +0xD6BA 0x5D8C +0xD6BB 0x5CEA +0xD6BC 0x5D0B +0xD6BD 0x5D15 +0xD6BE 0x5D17 +0xD6BF 0x5D5C +0xD6C0 0x5D1F +0xD6C1 0x5D1B +0xD6C2 0x5D11 +0xD6C3 0x5D14 +0xD6C4 0x5D22 +0xD6C5 0x5D1A +0xD6C6 0x5D19 +0xD6C7 0x5D18 +0xD6C8 0x5D4C +0xD6C9 0x5D52 +0xD6CA 0x5D4E +0xD6CB 0x5D4B +0xD6CC 0x5D6C +0xD6CD 0x5D73 +0xD6CE 0x5D76 +0xD6CF 0x5D87 +0xD6D0 0x5D84 +0xD6D1 0x5D82 +0xD6D2 0x5DA2 +0xD6D3 0x5D9D +0xD6D4 0x5DAC +0xD6D5 0x5DAE +0xD6D6 0x5DBD +0xD6D7 0x5D90 +0xD6D8 0x5DB7 +0xD6D9 0x5DBC +0xD6DA 0x5DC9 +0xD6DB 0x5DCD +0xD6DC 0x5DD3 +0xD6DD 0x5DD2 +0xD6DE 0x5DD6 +0xD6DF 0x5DDB +0xD6E0 0x5DEB +0xD6E1 0x5DF2 +0xD6E2 0x5DF5 +0xD6E3 0x5E0B +0xD6E4 0x5E1A +0xD6E5 0x5E19 +0xD6E6 0x5E11 +0xD6E7 0x5E1B +0xD6E8 0x5E36 +0xD6E9 0x5E37 +0xD6EA 0x5E44 +0xD6EB 0x5E43 +0xD6EC 0x5E40 +0xD6ED 0x5E4E +0xD6EE 0x5E57 +0xD6EF 0x5E54 +0xD6F0 0x5E5F +0xD6F1 0x5E62 +0xD6F2 0x5E64 +0xD6F3 0x5E47 +0xD6F4 0x5E75 +0xD6F5 0x5E76 +0xD6F6 0x5E7A +0xD6F7 0x9EBC +0xD6F8 0x5E7F +0xD6F9 0x5EA0 +0xD6FA 0x5EC1 +0xD6FB 0x5EC2 +0xD6FC 0x5EC8 +0xD6FD 0x5ED0 +0xD6FE 0x5ECF +0xD7A1 0x5ED6 +0xD7A2 0x5EE3 +0xD7A3 0x5EDD +0xD7A4 0x5EDA +0xD7A5 0x5EDB +0xD7A6 0x5EE2 +0xD7A7 0x5EE1 +0xD7A8 0x5EE8 +0xD7A9 0x5EE9 +0xD7AA 0x5EEC +0xD7AB 0x5EF1 +0xD7AC 0x5EF3 +0xD7AD 0x5EF0 +0xD7AE 0x5EF4 +0xD7AF 0x5EF8 +0xD7B0 0x5EFE +0xD7B1 0x5F03 +0xD7B2 0x5F09 +0xD7B3 0x5F5D +0xD7B4 0x5F5C +0xD7B5 0x5F0B +0xD7B6 0x5F11 +0xD7B7 0x5F16 +0xD7B8 0x5F29 +0xD7B9 0x5F2D +0xD7BA 0x5F38 +0xD7BB 0x5F41 +0xD7BC 0x5F48 +0xD7BD 0x5F4C +0xD7BE 0x5F4E +0xD7BF 0x5F2F +0xD7C0 0x5F51 +0xD7C1 0x5F56 +0xD7C2 0x5F57 +0xD7C3 0x5F59 +0xD7C4 0x5F61 +0xD7C5 0x5F6D +0xD7C6 0x5F73 +0xD7C7 0x5F77 +0xD7C8 0x5F83 +0xD7C9 0x5F82 +0xD7CA 0x5F7F +0xD7CB 0x5F8A +0xD7CC 0x5F88 +0xD7CD 0x5F91 +0xD7CE 0x5F87 +0xD7CF 0x5F9E +0xD7D0 0x5F99 +0xD7D1 0x5F98 +0xD7D2 0x5FA0 +0xD7D3 0x5FA8 +0xD7D4 0x5FAD +0xD7D5 0x5FBC +0xD7D6 0x5FD6 +0xD7D7 0x5FFB +0xD7D8 0x5FE4 +0xD7D9 0x5FF8 +0xD7DA 0x5FF1 +0xD7DB 0x5FDD +0xD7DC 0x60B3 +0xD7DD 0x5FFF +0xD7DE 0x6021 +0xD7DF 0x6060 +0xD7E0 0x6019 +0xD7E1 0x6010 +0xD7E2 0x6029 +0xD7E3 0x600E +0xD7E4 0x6031 +0xD7E5 0x601B +0xD7E6 0x6015 +0xD7E7 0x602B +0xD7E8 0x6026 +0xD7E9 0x600F +0xD7EA 0x603A +0xD7EB 0x605A +0xD7EC 0x6041 +0xD7ED 0x606A +0xD7EE 0x6077 +0xD7EF 0x605F +0xD7F0 0x604A +0xD7F1 0x6046 +0xD7F2 0x604D +0xD7F3 0x6063 +0xD7F4 0x6043 +0xD7F5 0x6064 +0xD7F6 0x6042 +0xD7F7 0x606C +0xD7F8 0x606B +0xD7F9 0x6059 +0xD7FA 0x6081 +0xD7FB 0x608D +0xD7FC 0x60E7 +0xD7FD 0x6083 +0xD7FE 0x609A +0xD8A1 0x6084 +0xD8A2 0x609B +0xD8A3 0x6096 +0xD8A4 0x6097 +0xD8A5 0x6092 +0xD8A6 0x60A7 +0xD8A7 0x608B +0xD8A8 0x60E1 +0xD8A9 0x60B8 +0xD8AA 0x60E0 +0xD8AB 0x60D3 +0xD8AC 0x60B4 +0xD8AD 0x5FF0 +0xD8AE 0x60BD +0xD8AF 0x60C6 +0xD8B0 0x60B5 +0xD8B1 0x60D8 +0xD8B2 0x614D +0xD8B3 0x6115 +0xD8B4 0x6106 +0xD8B5 0x60F6 +0xD8B6 0x60F7 +0xD8B7 0x6100 +0xD8B8 0x60F4 +0xD8B9 0x60FA +0xD8BA 0x6103 +0xD8BB 0x6121 +0xD8BC 0x60FB +0xD8BD 0x60F1 +0xD8BE 0x610D +0xD8BF 0x610E +0xD8C0 0x6147 +0xD8C1 0x613E +0xD8C2 0x6128 +0xD8C3 0x6127 +0xD8C4 0x614A +0xD8C5 0x613F +0xD8C6 0x613C +0xD8C7 0x612C +0xD8C8 0x6134 +0xD8C9 0x613D +0xD8CA 0x6142 +0xD8CB 0x6144 +0xD8CC 0x6173 +0xD8CD 0x6177 +0xD8CE 0x6158 +0xD8CF 0x6159 +0xD8D0 0x615A +0xD8D1 0x616B +0xD8D2 0x6174 +0xD8D3 0x616F +0xD8D4 0x6165 +0xD8D5 0x6171 +0xD8D6 0x615F +0xD8D7 0x615D +0xD8D8 0x6153 +0xD8D9 0x6175 +0xD8DA 0x6199 +0xD8DB 0x6196 +0xD8DC 0x6187 +0xD8DD 0x61AC +0xD8DE 0x6194 +0xD8DF 0x619A +0xD8E0 0x618A +0xD8E1 0x6191 +0xD8E2 0x61AB +0xD8E3 0x61AE +0xD8E4 0x61CC +0xD8E5 0x61CA +0xD8E6 0x61C9 +0xD8E7 0x61F7 +0xD8E8 0x61C8 +0xD8E9 0x61C3 +0xD8EA 0x61C6 +0xD8EB 0x61BA +0xD8EC 0x61CB +0xD8ED 0x7F79 +0xD8EE 0x61CD +0xD8EF 0x61E6 +0xD8F0 0x61E3 +0xD8F1 0x61F6 +0xD8F2 0x61FA +0xD8F3 0x61F4 +0xD8F4 0x61FF +0xD8F5 0x61FD +0xD8F6 0x61FC +0xD8F7 0x61FE +0xD8F8 0x6200 +0xD8F9 0x6208 +0xD8FA 0x6209 +0xD8FB 0x620D +0xD8FC 0x620C +0xD8FD 0x6214 +0xD8FE 0x621B +0xD9A1 0x621E +0xD9A2 0x6221 +0xD9A3 0x622A +0xD9A4 0x622E +0xD9A5 0x6230 +0xD9A6 0x6232 +0xD9A7 0x6233 +0xD9A8 0x6241 +0xD9A9 0x624E +0xD9AA 0x625E +0xD9AB 0x6263 +0xD9AC 0x625B +0xD9AD 0x6260 +0xD9AE 0x6268 +0xD9AF 0x627C +0xD9B0 0x6282 +0xD9B1 0x6289 +0xD9B2 0x627E +0xD9B3 0x6292 +0xD9B4 0x6293 +0xD9B5 0x6296 +0xD9B6 0x62D4 +0xD9B7 0x6283 +0xD9B8 0x6294 +0xD9B9 0x62D7 +0xD9BA 0x62D1 +0xD9BB 0x62BB +0xD9BC 0x62CF +0xD9BD 0x62FF +0xD9BE 0x62C6 +0xD9BF 0x64D4 +0xD9C0 0x62C8 +0xD9C1 0x62DC +0xD9C2 0x62CC +0xD9C3 0x62CA +0xD9C4 0x62C2 +0xD9C5 0x62C7 +0xD9C6 0x629B +0xD9C7 0x62C9 +0xD9C8 0x630C +0xD9C9 0x62EE +0xD9CA 0x62F1 +0xD9CB 0x6327 +0xD9CC 0x6302 +0xD9CD 0x6308 +0xD9CE 0x62EF +0xD9CF 0x62F5 +0xD9D0 0x6350 +0xD9D1 0x633E +0xD9D2 0x634D +0xD9D3 0x641C +0xD9D4 0x634F +0xD9D5 0x6396 +0xD9D6 0x638E +0xD9D7 0x6380 +0xD9D8 0x63AB +0xD9D9 0x6376 +0xD9DA 0x63A3 +0xD9DB 0x638F +0xD9DC 0x6389 +0xD9DD 0x639F +0xD9DE 0x63B5 +0xD9DF 0x636B +0xD9E0 0x6369 +0xD9E1 0x63BE +0xD9E2 0x63E9 +0xD9E3 0x63C0 +0xD9E4 0x63C6 +0xD9E5 0x63E3 +0xD9E6 0x63C9 +0xD9E7 0x63D2 +0xD9E8 0x63F6 +0xD9E9 0x63C4 +0xD9EA 0x6416 +0xD9EB 0x6434 +0xD9EC 0x6406 +0xD9ED 0x6413 +0xD9EE 0x6426 +0xD9EF 0x6436 +0xD9F0 0x651D +0xD9F1 0x6417 +0xD9F2 0x6428 +0xD9F3 0x640F +0xD9F4 0x6467 +0xD9F5 0x646F +0xD9F6 0x6476 +0xD9F7 0x644E +0xD9F8 0x652A +0xD9F9 0x6495 +0xD9FA 0x6493 +0xD9FB 0x64A5 +0xD9FC 0x64A9 +0xD9FD 0x6488 +0xD9FE 0x64BC +0xDAA1 0x64DA +0xDAA2 0x64D2 +0xDAA3 0x64C5 +0xDAA4 0x64C7 +0xDAA5 0x64BB +0xDAA6 0x64D8 +0xDAA7 0x64C2 +0xDAA8 0x64F1 +0xDAA9 0x64E7 +0xDAAA 0x8209 +0xDAAB 0x64E0 +0xDAAC 0x64E1 +0xDAAD 0x62AC +0xDAAE 0x64E3 +0xDAAF 0x64EF +0xDAB0 0x652C +0xDAB1 0x64F6 +0xDAB2 0x64F4 +0xDAB3 0x64F2 +0xDAB4 0x64FA +0xDAB5 0x6500 +0xDAB6 0x64FD +0xDAB7 0x6518 +0xDAB8 0x651C +0xDAB9 0x6505 +0xDABA 0x6524 +0xDABB 0x6523 +0xDABC 0x652B +0xDABD 0x6534 +0xDABE 0x6535 +0xDABF 0x6537 +0xDAC0 0x6536 +0xDAC1 0x6538 +0xDAC2 0x754B +0xDAC3 0x6548 +0xDAC4 0x6556 +0xDAC5 0x6555 +0xDAC6 0x654D +0xDAC7 0x6558 +0xDAC8 0x655E +0xDAC9 0x655D +0xDACA 0x6572 +0xDACB 0x6578 +0xDACC 0x6582 +0xDACD 0x6583 +0xDACE 0x8B8A +0xDACF 0x659B +0xDAD0 0x659F +0xDAD1 0x65AB +0xDAD2 0x65B7 +0xDAD3 0x65C3 +0xDAD4 0x65C6 +0xDAD5 0x65C1 +0xDAD6 0x65C4 +0xDAD7 0x65CC +0xDAD8 0x65D2 +0xDAD9 0x65DB +0xDADA 0x65D9 +0xDADB 0x65E0 +0xDADC 0x65E1 +0xDADD 0x65F1 +0xDADE 0x6772 +0xDADF 0x660A +0xDAE0 0x6603 +0xDAE1 0x65FB +0xDAE2 0x6773 +0xDAE3 0x6635 +0xDAE4 0x6636 +0xDAE5 0x6634 +0xDAE6 0x661C +0xDAE7 0x664F +0xDAE8 0x6644 +0xDAE9 0x6649 +0xDAEA 0x6641 +0xDAEB 0x665E +0xDAEC 0x665D +0xDAED 0x6664 +0xDAEE 0x6667 +0xDAEF 0x6668 +0xDAF0 0x665F +0xDAF1 0x6662 +0xDAF2 0x6670 +0xDAF3 0x6683 +0xDAF4 0x6688 +0xDAF5 0x668E +0xDAF6 0x6689 +0xDAF7 0x6684 +0xDAF8 0x6698 +0xDAF9 0x669D +0xDAFA 0x66C1 +0xDAFB 0x66B9 +0xDAFC 0x66C9 +0xDAFD 0x66BE +0xDAFE 0x66BC +0xDBA1 0x66C4 +0xDBA2 0x66B8 +0xDBA3 0x66D6 +0xDBA4 0x66DA +0xDBA5 0x66E0 +0xDBA6 0x663F +0xDBA7 0x66E6 +0xDBA8 0x66E9 +0xDBA9 0x66F0 +0xDBAA 0x66F5 +0xDBAB 0x66F7 +0xDBAC 0x670F +0xDBAD 0x6716 +0xDBAE 0x671E +0xDBAF 0x6726 +0xDBB0 0x6727 +0xDBB1 0x9738 +0xDBB2 0x672E +0xDBB3 0x673F +0xDBB4 0x6736 +0xDBB5 0x6741 +0xDBB6 0x6738 +0xDBB7 0x6737 +0xDBB8 0x6746 +0xDBB9 0x675E +0xDBBA 0x6760 +0xDBBB 0x6759 +0xDBBC 0x6763 +0xDBBD 0x6764 +0xDBBE 0x6789 +0xDBBF 0x6770 +0xDBC0 0x67A9 +0xDBC1 0x677C +0xDBC2 0x676A +0xDBC3 0x678C +0xDBC4 0x678B +0xDBC5 0x67A6 +0xDBC6 0x67A1 +0xDBC7 0x6785 +0xDBC8 0x67B7 +0xDBC9 0x67EF +0xDBCA 0x67B4 +0xDBCB 0x67EC +0xDBCC 0x67B3 +0xDBCD 0x67E9 +0xDBCE 0x67B8 +0xDBCF 0x67E4 +0xDBD0 0x67DE +0xDBD1 0x67DD +0xDBD2 0x67E2 +0xDBD3 0x67EE +0xDBD4 0x67B9 +0xDBD5 0x67CE +0xDBD6 0x67C6 +0xDBD7 0x67E7 +0xDBD8 0x6A9C +0xDBD9 0x681E +0xDBDA 0x6846 +0xDBDB 0x6829 +0xDBDC 0x6840 +0xDBDD 0x684D +0xDBDE 0x6832 +0xDBDF 0x684E +0xDBE0 0x68B3 +0xDBE1 0x682B +0xDBE2 0x6859 +0xDBE3 0x6863 +0xDBE4 0x6877 +0xDBE5 0x687F +0xDBE6 0x689F +0xDBE7 0x688F +0xDBE8 0x68AD +0xDBE9 0x6894 +0xDBEA 0x689D +0xDBEB 0x689B +0xDBEC 0x6883 +0xDBED 0x6AAE +0xDBEE 0x68B9 +0xDBEF 0x6874 +0xDBF0 0x68B5 +0xDBF1 0x68A0 +0xDBF2 0x68BA +0xDBF3 0x690F +0xDBF4 0x688D +0xDBF5 0x687E +0xDBF6 0x6901 +0xDBF7 0x68CA +0xDBF8 0x6908 +0xDBF9 0x68D8 +0xDBFA 0x6922 +0xDBFB 0x6926 +0xDBFC 0x68E1 +0xDBFD 0x690C +0xDBFE 0x68CD +0xDCA1 0x68D4 +0xDCA2 0x68E7 +0xDCA3 0x68D5 +0xDCA4 0x6936 +0xDCA5 0x6912 +0xDCA6 0x6904 +0xDCA7 0x68D7 +0xDCA8 0x68E3 +0xDCA9 0x6925 +0xDCAA 0x68F9 +0xDCAB 0x68E0 +0xDCAC 0x68EF +0xDCAD 0x6928 +0xDCAE 0x692A +0xDCAF 0x691A +0xDCB0 0x6923 +0xDCB1 0x6921 +0xDCB2 0x68C6 +0xDCB3 0x6979 +0xDCB4 0x6977 +0xDCB5 0x695C +0xDCB6 0x6978 +0xDCB7 0x696B +0xDCB8 0x6954 +0xDCB9 0x697E +0xDCBA 0x696E +0xDCBB 0x6939 +0xDCBC 0x6974 +0xDCBD 0x693D +0xDCBE 0x6959 +0xDCBF 0x6930 +0xDCC0 0x6961 +0xDCC1 0x695E +0xDCC2 0x695D +0xDCC3 0x6981 +0xDCC4 0x696A +0xDCC5 0x69B2 +0xDCC6 0x69AE +0xDCC7 0x69D0 +0xDCC8 0x69BF +0xDCC9 0x69C1 +0xDCCA 0x69D3 +0xDCCB 0x69BE +0xDCCC 0x69CE +0xDCCD 0x5BE8 +0xDCCE 0x69CA +0xDCCF 0x69DD +0xDCD0 0x69BB +0xDCD1 0x69C3 +0xDCD2 0x69A7 +0xDCD3 0x6A2E +0xDCD4 0x6991 +0xDCD5 0x69A0 +0xDCD6 0x699C +0xDCD7 0x6995 +0xDCD8 0x69B4 +0xDCD9 0x69DE +0xDCDA 0x69E8 +0xDCDB 0x6A02 +0xDCDC 0x6A1B +0xDCDD 0x69FF +0xDCDE 0x6B0A +0xDCDF 0x69F9 +0xDCE0 0x69F2 +0xDCE1 0x69E7 +0xDCE2 0x6A05 +0xDCE3 0x69B1 +0xDCE4 0x6A1E +0xDCE5 0x69ED +0xDCE6 0x6A14 +0xDCE7 0x69EB +0xDCE8 0x6A0A +0xDCE9 0x6A12 +0xDCEA 0x6AC1 +0xDCEB 0x6A23 +0xDCEC 0x6A13 +0xDCED 0x6A44 +0xDCEE 0x6A0C +0xDCEF 0x6A72 +0xDCF0 0x6A36 +0xDCF1 0x6A78 +0xDCF2 0x6A47 +0xDCF3 0x6A62 +0xDCF4 0x6A59 +0xDCF5 0x6A66 +0xDCF6 0x6A48 +0xDCF7 0x6A38 +0xDCF8 0x6A22 +0xDCF9 0x6A90 +0xDCFA 0x6A8D +0xDCFB 0x6AA0 +0xDCFC 0x6A84 +0xDCFD 0x6AA2 +0xDCFE 0x6AA3 +0xDDA1 0x6A97 +0xDDA2 0x8617 +0xDDA3 0x6ABB +0xDDA4 0x6AC3 +0xDDA5 0x6AC2 +0xDDA6 0x6AB8 +0xDDA7 0x6AB3 +0xDDA8 0x6AAC +0xDDA9 0x6ADE +0xDDAA 0x6AD1 +0xDDAB 0x6ADF +0xDDAC 0x6AAA +0xDDAD 0x6ADA +0xDDAE 0x6AEA +0xDDAF 0x6AFB +0xDDB0 0x6B05 +0xDDB1 0x8616 +0xDDB2 0x6AFA +0xDDB3 0x6B12 +0xDDB4 0x6B16 +0xDDB5 0x9B31 +0xDDB6 0x6B1F +0xDDB7 0x6B38 +0xDDB8 0x6B37 +0xDDB9 0x76DC +0xDDBA 0x6B39 +0xDDBB 0x98EE +0xDDBC 0x6B47 +0xDDBD 0x6B43 +0xDDBE 0x6B49 +0xDDBF 0x6B50 +0xDDC0 0x6B59 +0xDDC1 0x6B54 +0xDDC2 0x6B5B +0xDDC3 0x6B5F +0xDDC4 0x6B61 +0xDDC5 0x6B78 +0xDDC6 0x6B79 +0xDDC7 0x6B7F +0xDDC8 0x6B80 +0xDDC9 0x6B84 +0xDDCA 0x6B83 +0xDDCB 0x6B8D +0xDDCC 0x6B98 +0xDDCD 0x6B95 +0xDDCE 0x6B9E +0xDDCF 0x6BA4 +0xDDD0 0x6BAA +0xDDD1 0x6BAB +0xDDD2 0x6BAF +0xDDD3 0x6BB2 +0xDDD4 0x6BB1 +0xDDD5 0x6BB3 +0xDDD6 0x6BB7 +0xDDD7 0x6BBC +0xDDD8 0x6BC6 +0xDDD9 0x6BCB +0xDDDA 0x6BD3 +0xDDDB 0x6BDF +0xDDDC 0x6BEC +0xDDDD 0x6BEB +0xDDDE 0x6BF3 +0xDDDF 0x6BEF +0xDDE0 0x9EBE +0xDDE1 0x6C08 +0xDDE2 0x6C13 +0xDDE3 0x6C14 +0xDDE4 0x6C1B +0xDDE5 0x6C24 +0xDDE6 0x6C23 +0xDDE7 0x6C5E +0xDDE8 0x6C55 +0xDDE9 0x6C62 +0xDDEA 0x6C6A +0xDDEB 0x6C82 +0xDDEC 0x6C8D +0xDDED 0x6C9A +0xDDEE 0x6C81 +0xDDEF 0x6C9B +0xDDF0 0x6C7E +0xDDF1 0x6C68 +0xDDF2 0x6C73 +0xDDF3 0x6C92 +0xDDF4 0x6C90 +0xDDF5 0x6CC4 +0xDDF6 0x6CF1 +0xDDF7 0x6CD3 +0xDDF8 0x6CBD +0xDDF9 0x6CD7 +0xDDFA 0x6CC5 +0xDDFB 0x6CDD +0xDDFC 0x6CAE +0xDDFD 0x6CB1 +0xDDFE 0x6CBE +0xDEA1 0x6CBA +0xDEA2 0x6CDB +0xDEA3 0x6CEF +0xDEA4 0x6CD9 +0xDEA5 0x6CEA +0xDEA6 0x6D1F +0xDEA7 0x884D +0xDEA8 0x6D36 +0xDEA9 0x6D2B +0xDEAA 0x6D3D +0xDEAB 0x6D38 +0xDEAC 0x6D19 +0xDEAD 0x6D35 +0xDEAE 0x6D33 +0xDEAF 0x6D12 +0xDEB0 0x6D0C +0xDEB1 0x6D63 +0xDEB2 0x6D93 +0xDEB3 0x6D64 +0xDEB4 0x6D5A +0xDEB5 0x6D79 +0xDEB6 0x6D59 +0xDEB7 0x6D8E +0xDEB8 0x6D95 +0xDEB9 0x6FE4 +0xDEBA 0x6D85 +0xDEBB 0x6DF9 +0xDEBC 0x6E15 +0xDEBD 0x6E0A +0xDEBE 0x6DB5 +0xDEBF 0x6DC7 +0xDEC0 0x6DE6 +0xDEC1 0x6DB8 +0xDEC2 0x6DC6 +0xDEC3 0x6DEC +0xDEC4 0x6DDE +0xDEC5 0x6DCC +0xDEC6 0x6DE8 +0xDEC7 0x6DD2 +0xDEC8 0x6DC5 +0xDEC9 0x6DFA +0xDECA 0x6DD9 +0xDECB 0x6DE4 +0xDECC 0x6DD5 +0xDECD 0x6DEA +0xDECE 0x6DEE +0xDECF 0x6E2D +0xDED0 0x6E6E +0xDED1 0x6E2E +0xDED2 0x6E19 +0xDED3 0x6E72 +0xDED4 0x6E5F +0xDED5 0x6E3E +0xDED6 0x6E23 +0xDED7 0x6E6B +0xDED8 0x6E2B +0xDED9 0x6E76 +0xDEDA 0x6E4D +0xDEDB 0x6E1F +0xDEDC 0x6E43 +0xDEDD 0x6E3A +0xDEDE 0x6E4E +0xDEDF 0x6E24 +0xDEE0 0x6EFF +0xDEE1 0x6E1D +0xDEE2 0x6E38 +0xDEE3 0x6E82 +0xDEE4 0x6EAA +0xDEE5 0x6E98 +0xDEE6 0x6EC9 +0xDEE7 0x6EB7 +0xDEE8 0x6ED3 +0xDEE9 0x6EBD +0xDEEA 0x6EAF +0xDEEB 0x6EC4 +0xDEEC 0x6EB2 +0xDEED 0x6ED4 +0xDEEE 0x6ED5 +0xDEEF 0x6E8F +0xDEF0 0x6EA5 +0xDEF1 0x6EC2 +0xDEF2 0x6E9F +0xDEF3 0x6F41 +0xDEF4 0x6F11 +0xDEF5 0x704C +0xDEF6 0x6EEC +0xDEF7 0x6EF8 +0xDEF8 0x6EFE +0xDEF9 0x6F3F +0xDEFA 0x6EF2 +0xDEFB 0x6F31 +0xDEFC 0x6EEF +0xDEFD 0x6F32 +0xDEFE 0x6ECC +0xDFA1 0x6F3E +0xDFA2 0x6F13 +0xDFA3 0x6EF7 +0xDFA4 0x6F86 +0xDFA5 0x6F7A +0xDFA6 0x6F78 +0xDFA7 0x6F81 +0xDFA8 0x6F80 +0xDFA9 0x6F6F +0xDFAA 0x6F5B +0xDFAB 0x6FF3 +0xDFAC 0x6F6D +0xDFAD 0x6F82 +0xDFAE 0x6F7C +0xDFAF 0x6F58 +0xDFB0 0x6F8E +0xDFB1 0x6F91 +0xDFB2 0x6FC2 +0xDFB3 0x6F66 +0xDFB4 0x6FB3 +0xDFB5 0x6FA3 +0xDFB6 0x6FA1 +0xDFB7 0x6FA4 +0xDFB8 0x6FB9 +0xDFB9 0x6FC6 +0xDFBA 0x6FAA +0xDFBB 0x6FDF +0xDFBC 0x6FD5 +0xDFBD 0x6FEC +0xDFBE 0x6FD4 +0xDFBF 0x6FD8 +0xDFC0 0x6FF1 +0xDFC1 0x6FEE +0xDFC2 0x6FDB +0xDFC3 0x7009 +0xDFC4 0x700B +0xDFC5 0x6FFA +0xDFC6 0x7011 +0xDFC7 0x7001 +0xDFC8 0x700F +0xDFC9 0x6FFE +0xDFCA 0x701B +0xDFCB 0x701A +0xDFCC 0x6F74 +0xDFCD 0x701D +0xDFCE 0x7018 +0xDFCF 0x701F +0xDFD0 0x7030 +0xDFD1 0x703E +0xDFD2 0x7032 +0xDFD3 0x7051 +0xDFD4 0x7063 +0xDFD5 0x7099 +0xDFD6 0x7092 +0xDFD7 0x70AF +0xDFD8 0x70F1 +0xDFD9 0x70AC +0xDFDA 0x70B8 +0xDFDB 0x70B3 +0xDFDC 0x70AE +0xDFDD 0x70DF +0xDFDE 0x70CB +0xDFDF 0x70DD +0xDFE0 0x70D9 +0xDFE1 0x7109 +0xDFE2 0x70FD +0xDFE3 0x711C +0xDFE4 0x7119 +0xDFE5 0x7165 +0xDFE6 0x7155 +0xDFE7 0x7188 +0xDFE8 0x7166 +0xDFE9 0x7162 +0xDFEA 0x714C +0xDFEB 0x7156 +0xDFEC 0x716C +0xDFED 0x718F +0xDFEE 0x71FB +0xDFEF 0x7184 +0xDFF0 0x7195 +0xDFF1 0x71A8 +0xDFF2 0x71AC +0xDFF3 0x71D7 +0xDFF4 0x71B9 +0xDFF5 0x71BE +0xDFF6 0x71D2 +0xDFF7 0x71C9 +0xDFF8 0x71D4 +0xDFF9 0x71CE +0xDFFA 0x71E0 +0xDFFB 0x71EC +0xDFFC 0x71E7 +0xDFFD 0x71F5 +0xDFFE 0x71FC +0xE0A1 0x71F9 +0xE0A2 0x71FF +0xE0A3 0x720D +0xE0A4 0x7210 +0xE0A5 0x721B +0xE0A6 0x7228 +0xE0A7 0x722D +0xE0A8 0x722C +0xE0A9 0x7230 +0xE0AA 0x7232 +0xE0AB 0x723B +0xE0AC 0x723C +0xE0AD 0x723F +0xE0AE 0x7240 +0xE0AF 0x7246 +0xE0B0 0x724B +0xE0B1 0x7258 +0xE0B2 0x7274 +0xE0B3 0x727E +0xE0B4 0x7282 +0xE0B5 0x7281 +0xE0B6 0x7287 +0xE0B7 0x7292 +0xE0B8 0x7296 +0xE0B9 0x72A2 +0xE0BA 0x72A7 +0xE0BB 0x72B9 +0xE0BC 0x72B2 +0xE0BD 0x72C3 +0xE0BE 0x72C6 +0xE0BF 0x72C4 +0xE0C0 0x72CE +0xE0C1 0x72D2 +0xE0C2 0x72E2 +0xE0C3 0x72E0 +0xE0C4 0x72E1 +0xE0C5 0x72F9 +0xE0C6 0x72F7 +0xE0C7 0x500F +0xE0C8 0x7317 +0xE0C9 0x730A +0xE0CA 0x731C +0xE0CB 0x7316 +0xE0CC 0x731D +0xE0CD 0x7334 +0xE0CE 0x732F +0xE0CF 0x7329 +0xE0D0 0x7325 +0xE0D1 0x733E +0xE0D2 0x734E +0xE0D3 0x734F +0xE0D4 0x9ED8 +0xE0D5 0x7357 +0xE0D6 0x736A +0xE0D7 0x7368 +0xE0D8 0x7370 +0xE0D9 0x7378 +0xE0DA 0x7375 +0xE0DB 0x737B +0xE0DC 0x737A +0xE0DD 0x73C8 +0xE0DE 0x73B3 +0xE0DF 0x73CE +0xE0E0 0x73BB +0xE0E1 0x73C0 +0xE0E2 0x73E5 +0xE0E3 0x73EE +0xE0E4 0x73DE +0xE0E5 0x74A2 +0xE0E6 0x7405 +0xE0E7 0x746F +0xE0E8 0x7425 +0xE0E9 0x73F8 +0xE0EA 0x7432 +0xE0EB 0x743A +0xE0EC 0x7455 +0xE0ED 0x743F +0xE0EE 0x745F +0xE0EF 0x7459 +0xE0F0 0x7441 +0xE0F1 0x745C +0xE0F2 0x7469 +0xE0F3 0x7470 +0xE0F4 0x7463 +0xE0F5 0x746A +0xE0F6 0x7476 +0xE0F7 0x747E +0xE0F8 0x748B +0xE0F9 0x749E +0xE0FA 0x74A7 +0xE0FB 0x74CA +0xE0FC 0x74CF +0xE0FD 0x74D4 +0xE0FE 0x73F1 +0xE1A1 0x74E0 +0xE1A2 0x74E3 +0xE1A3 0x74E7 +0xE1A4 0x74E9 +0xE1A5 0x74EE +0xE1A6 0x74F2 +0xE1A7 0x74F0 +0xE1A8 0x74F1 +0xE1A9 0x74F8 +0xE1AA 0x74F7 +0xE1AB 0x7504 +0xE1AC 0x7503 +0xE1AD 0x7505 +0xE1AE 0x750C +0xE1AF 0x750E +0xE1B0 0x750D +0xE1B1 0x7515 +0xE1B2 0x7513 +0xE1B3 0x751E +0xE1B4 0x7526 +0xE1B5 0x752C +0xE1B6 0x753C +0xE1B7 0x7544 +0xE1B8 0x754D +0xE1B9 0x754A +0xE1BA 0x7549 +0xE1BB 0x755B +0xE1BC 0x7546 +0xE1BD 0x755A +0xE1BE 0x7569 +0xE1BF 0x7564 +0xE1C0 0x7567 +0xE1C1 0x756B +0xE1C2 0x756D +0xE1C3 0x7578 +0xE1C4 0x7576 +0xE1C5 0x7586 +0xE1C6 0x7587 +0xE1C7 0x7574 +0xE1C8 0x758A +0xE1C9 0x7589 +0xE1CA 0x7582 +0xE1CB 0x7594 +0xE1CC 0x759A +0xE1CD 0x759D +0xE1CE 0x75A5 +0xE1CF 0x75A3 +0xE1D0 0x75C2 +0xE1D1 0x75B3 +0xE1D2 0x75C3 +0xE1D3 0x75B5 +0xE1D4 0x75BD +0xE1D5 0x75B8 +0xE1D6 0x75BC +0xE1D7 0x75B1 +0xE1D8 0x75CD +0xE1D9 0x75CA +0xE1DA 0x75D2 +0xE1DB 0x75D9 +0xE1DC 0x75E3 +0xE1DD 0x75DE +0xE1DE 0x75FE +0xE1DF 0x75FF +0xE1E0 0x75FC +0xE1E1 0x7601 +0xE1E2 0x75F0 +0xE1E3 0x75FA +0xE1E4 0x75F2 +0xE1E5 0x75F3 +0xE1E6 0x760B +0xE1E7 0x760D +0xE1E8 0x7609 +0xE1E9 0x761F +0xE1EA 0x7627 +0xE1EB 0x7620 +0xE1EC 0x7621 +0xE1ED 0x7622 +0xE1EE 0x7624 +0xE1EF 0x7634 +0xE1F0 0x7630 +0xE1F1 0x763B +0xE1F2 0x7647 +0xE1F3 0x7648 +0xE1F4 0x7646 +0xE1F5 0x765C +0xE1F6 0x7658 +0xE1F7 0x7661 +0xE1F8 0x7662 +0xE1F9 0x7668 +0xE1FA 0x7669 +0xE1FB 0x766A +0xE1FC 0x7667 +0xE1FD 0x766C +0xE1FE 0x7670 +0xE2A1 0x7672 +0xE2A2 0x7676 +0xE2A3 0x7678 +0xE2A4 0x767C +0xE2A5 0x7680 +0xE2A6 0x7683 +0xE2A7 0x7688 +0xE2A8 0x768B +0xE2A9 0x768E +0xE2AA 0x7696 +0xE2AB 0x7693 +0xE2AC 0x7699 +0xE2AD 0x769A +0xE2AE 0x76B0 +0xE2AF 0x76B4 +0xE2B0 0x76B8 +0xE2B1 0x76B9 +0xE2B2 0x76BA +0xE2B3 0x76C2 +0xE2B4 0x76CD +0xE2B5 0x76D6 +0xE2B6 0x76D2 +0xE2B7 0x76DE +0xE2B8 0x76E1 +0xE2B9 0x76E5 +0xE2BA 0x76E7 +0xE2BB 0x76EA +0xE2BC 0x862F +0xE2BD 0x76FB +0xE2BE 0x7708 +0xE2BF 0x7707 +0xE2C0 0x7704 +0xE2C1 0x7729 +0xE2C2 0x7724 +0xE2C3 0x771E +0xE2C4 0x7725 +0xE2C5 0x7726 +0xE2C6 0x771B +0xE2C7 0x7737 +0xE2C8 0x7738 +0xE2C9 0x7747 +0xE2CA 0x775A +0xE2CB 0x7768 +0xE2CC 0x776B +0xE2CD 0x775B +0xE2CE 0x7765 +0xE2CF 0x777F +0xE2D0 0x777E +0xE2D1 0x7779 +0xE2D2 0x778E +0xE2D3 0x778B +0xE2D4 0x7791 +0xE2D5 0x77A0 +0xE2D6 0x779E +0xE2D7 0x77B0 +0xE2D8 0x77B6 +0xE2D9 0x77B9 +0xE2DA 0x77BF +0xE2DB 0x77BC +0xE2DC 0x77BD +0xE2DD 0x77BB +0xE2DE 0x77C7 +0xE2DF 0x77CD +0xE2E0 0x77D7 +0xE2E1 0x77DA +0xE2E2 0x77DC +0xE2E3 0x77E3 +0xE2E4 0x77EE +0xE2E5 0x77FC +0xE2E6 0x780C +0xE2E7 0x7812 +0xE2E8 0x7926 +0xE2E9 0x7820 +0xE2EA 0x792A +0xE2EB 0x7845 +0xE2EC 0x788E +0xE2ED 0x7874 +0xE2EE 0x7886 +0xE2EF 0x787C +0xE2F0 0x789A +0xE2F1 0x788C +0xE2F2 0x78A3 +0xE2F3 0x78B5 +0xE2F4 0x78AA +0xE2F5 0x78AF +0xE2F6 0x78D1 +0xE2F7 0x78C6 +0xE2F8 0x78CB +0xE2F9 0x78D4 +0xE2FA 0x78BE +0xE2FB 0x78BC +0xE2FC 0x78C5 +0xE2FD 0x78CA +0xE2FE 0x78EC +0xE3A1 0x78E7 +0xE3A2 0x78DA +0xE3A3 0x78FD +0xE3A4 0x78F4 +0xE3A5 0x7907 +0xE3A6 0x7912 +0xE3A7 0x7911 +0xE3A8 0x7919 +0xE3A9 0x792C +0xE3AA 0x792B +0xE3AB 0x7940 +0xE3AC 0x7960 +0xE3AD 0x7957 +0xE3AE 0x795F +0xE3AF 0x795A +0xE3B0 0x7955 +0xE3B1 0x7953 +0xE3B2 0x797A +0xE3B3 0x797F +0xE3B4 0x798A +0xE3B5 0x799D +0xE3B6 0x79A7 +0xE3B7 0x9F4B +0xE3B8 0x79AA +0xE3B9 0x79AE +0xE3BA 0x79B3 +0xE3BB 0x79B9 +0xE3BC 0x79BA +0xE3BD 0x79C9 +0xE3BE 0x79D5 +0xE3BF 0x79E7 +0xE3C0 0x79EC +0xE3C1 0x79E1 +0xE3C2 0x79E3 +0xE3C3 0x7A08 +0xE3C4 0x7A0D +0xE3C5 0x7A18 +0xE3C6 0x7A19 +0xE3C7 0x7A20 +0xE3C8 0x7A1F +0xE3C9 0x7980 +0xE3CA 0x7A31 +0xE3CB 0x7A3B +0xE3CC 0x7A3E +0xE3CD 0x7A37 +0xE3CE 0x7A43 +0xE3CF 0x7A57 +0xE3D0 0x7A49 +0xE3D1 0x7A61 +0xE3D2 0x7A62 +0xE3D3 0x7A69 +0xE3D4 0x9F9D +0xE3D5 0x7A70 +0xE3D6 0x7A79 +0xE3D7 0x7A7D +0xE3D8 0x7A88 +0xE3D9 0x7A97 +0xE3DA 0x7A95 +0xE3DB 0x7A98 +0xE3DC 0x7A96 +0xE3DD 0x7AA9 +0xE3DE 0x7AC8 +0xE3DF 0x7AB0 +0xE3E0 0x7AB6 +0xE3E1 0x7AC5 +0xE3E2 0x7AC4 +0xE3E3 0x7ABF +0xE3E4 0x9083 +0xE3E5 0x7AC7 +0xE3E6 0x7ACA +0xE3E7 0x7ACD +0xE3E8 0x7ACF +0xE3E9 0x7AD5 +0xE3EA 0x7AD3 +0xE3EB 0x7AD9 +0xE3EC 0x7ADA +0xE3ED 0x7ADD +0xE3EE 0x7AE1 +0xE3EF 0x7AE2 +0xE3F0 0x7AE6 +0xE3F1 0x7AED +0xE3F2 0x7AF0 +0xE3F3 0x7B02 +0xE3F4 0x7B0F +0xE3F5 0x7B0A +0xE3F6 0x7B06 +0xE3F7 0x7B33 +0xE3F8 0x7B18 +0xE3F9 0x7B19 +0xE3FA 0x7B1E +0xE3FB 0x7B35 +0xE3FC 0x7B28 +0xE3FD 0x7B36 +0xE3FE 0x7B50 +0xE4A1 0x7B7A +0xE4A2 0x7B04 +0xE4A3 0x7B4D +0xE4A4 0x7B0B +0xE4A5 0x7B4C +0xE4A6 0x7B45 +0xE4A7 0x7B75 +0xE4A8 0x7B65 +0xE4A9 0x7B74 +0xE4AA 0x7B67 +0xE4AB 0x7B70 +0xE4AC 0x7B71 +0xE4AD 0x7B6C +0xE4AE 0x7B6E +0xE4AF 0x7B9D +0xE4B0 0x7B98 +0xE4B1 0x7B9F +0xE4B2 0x7B8D +0xE4B3 0x7B9C +0xE4B4 0x7B9A +0xE4B5 0x7B8B +0xE4B6 0x7B92 +0xE4B7 0x7B8F +0xE4B8 0x7B5D +0xE4B9 0x7B99 +0xE4BA 0x7BCB +0xE4BB 0x7BC1 +0xE4BC 0x7BCC +0xE4BD 0x7BCF +0xE4BE 0x7BB4 +0xE4BF 0x7BC6 +0xE4C0 0x7BDD +0xE4C1 0x7BE9 +0xE4C2 0x7C11 +0xE4C3 0x7C14 +0xE4C4 0x7BE6 +0xE4C5 0x7BE5 +0xE4C6 0x7C60 +0xE4C7 0x7C00 +0xE4C8 0x7C07 +0xE4C9 0x7C13 +0xE4CA 0x7BF3 +0xE4CB 0x7BF7 +0xE4CC 0x7C17 +0xE4CD 0x7C0D +0xE4CE 0x7BF6 +0xE4CF 0x7C23 +0xE4D0 0x7C27 +0xE4D1 0x7C2A +0xE4D2 0x7C1F +0xE4D3 0x7C37 +0xE4D4 0x7C2B +0xE4D5 0x7C3D +0xE4D6 0x7C4C +0xE4D7 0x7C43 +0xE4D8 0x7C54 +0xE4D9 0x7C4F +0xE4DA 0x7C40 +0xE4DB 0x7C50 +0xE4DC 0x7C58 +0xE4DD 0x7C5F +0xE4DE 0x7C64 +0xE4DF 0x7C56 +0xE4E0 0x7C65 +0xE4E1 0x7C6C +0xE4E2 0x7C75 +0xE4E3 0x7C83 +0xE4E4 0x7C90 +0xE4E5 0x7CA4 +0xE4E6 0x7CAD +0xE4E7 0x7CA2 +0xE4E8 0x7CAB +0xE4E9 0x7CA1 +0xE4EA 0x7CA8 +0xE4EB 0x7CB3 +0xE4EC 0x7CB2 +0xE4ED 0x7CB1 +0xE4EE 0x7CAE +0xE4EF 0x7CB9 +0xE4F0 0x7CBD +0xE4F1 0x7CC0 +0xE4F2 0x7CC5 +0xE4F3 0x7CC2 +0xE4F4 0x7CD8 +0xE4F5 0x7CD2 +0xE4F6 0x7CDC +0xE4F7 0x7CE2 +0xE4F8 0x9B3B +0xE4F9 0x7CEF +0xE4FA 0x7CF2 +0xE4FB 0x7CF4 +0xE4FC 0x7CF6 +0xE4FD 0x7CFA +0xE4FE 0x7D06 +0xE5A1 0x7D02 +0xE5A2 0x7D1C +0xE5A3 0x7D15 +0xE5A4 0x7D0A +0xE5A5 0x7D45 +0xE5A6 0x7D4B +0xE5A7 0x7D2E +0xE5A8 0x7D32 +0xE5A9 0x7D3F +0xE5AA 0x7D35 +0xE5AB 0x7D46 +0xE5AC 0x7D73 +0xE5AD 0x7D56 +0xE5AE 0x7D4E +0xE5AF 0x7D72 +0xE5B0 0x7D68 +0xE5B1 0x7D6E +0xE5B2 0x7D4F +0xE5B3 0x7D63 +0xE5B4 0x7D93 +0xE5B5 0x7D89 +0xE5B6 0x7D5B +0xE5B7 0x7D8F +0xE5B8 0x7D7D +0xE5B9 0x7D9B +0xE5BA 0x7DBA +0xE5BB 0x7DAE +0xE5BC 0x7DA3 +0xE5BD 0x7DB5 +0xE5BE 0x7DC7 +0xE5BF 0x7DBD +0xE5C0 0x7DAB +0xE5C1 0x7E3D +0xE5C2 0x7DA2 +0xE5C3 0x7DAF +0xE5C4 0x7DDC +0xE5C5 0x7DB8 +0xE5C6 0x7D9F +0xE5C7 0x7DB0 +0xE5C8 0x7DD8 +0xE5C9 0x7DDD +0xE5CA 0x7DE4 +0xE5CB 0x7DDE +0xE5CC 0x7DFB +0xE5CD 0x7DF2 +0xE5CE 0x7DE1 +0xE5CF 0x7E05 +0xE5D0 0x7E0A +0xE5D1 0x7E23 +0xE5D2 0x7E21 +0xE5D3 0x7E12 +0xE5D4 0x7E31 +0xE5D5 0x7E1F +0xE5D6 0x7E09 +0xE5D7 0x7E0B +0xE5D8 0x7E22 +0xE5D9 0x7E46 +0xE5DA 0x7E66 +0xE5DB 0x7E3B +0xE5DC 0x7E35 +0xE5DD 0x7E39 +0xE5DE 0x7E43 +0xE5DF 0x7E37 +0xE5E0 0x7E32 +0xE5E1 0x7E3A +0xE5E2 0x7E67 +0xE5E3 0x7E5D +0xE5E4 0x7E56 +0xE5E5 0x7E5E +0xE5E6 0x7E59 +0xE5E7 0x7E5A +0xE5E8 0x7E79 +0xE5E9 0x7E6A +0xE5EA 0x7E69 +0xE5EB 0x7E7C +0xE5EC 0x7E7B +0xE5ED 0x7E83 +0xE5EE 0x7DD5 +0xE5EF 0x7E7D +0xE5F0 0x8FAE +0xE5F1 0x7E7F +0xE5F2 0x7E88 +0xE5F3 0x7E89 +0xE5F4 0x7E8C +0xE5F5 0x7E92 +0xE5F6 0x7E90 +0xE5F7 0x7E93 +0xE5F8 0x7E94 +0xE5F9 0x7E96 +0xE5FA 0x7E8E +0xE5FB 0x7E9B +0xE5FC 0x7E9C +0xE5FD 0x7F38 +0xE5FE 0x7F3A +0xE6A1 0x7F45 +0xE6A2 0x7F4C +0xE6A3 0x7F4D +0xE6A4 0x7F4E +0xE6A5 0x7F50 +0xE6A6 0x7F51 +0xE6A7 0x7F55 +0xE6A8 0x7F54 +0xE6A9 0x7F58 +0xE6AA 0x7F5F +0xE6AB 0x7F60 +0xE6AC 0x7F68 +0xE6AD 0x7F69 +0xE6AE 0x7F67 +0xE6AF 0x7F78 +0xE6B0 0x7F82 +0xE6B1 0x7F86 +0xE6B2 0x7F83 +0xE6B3 0x7F88 +0xE6B4 0x7F87 +0xE6B5 0x7F8C +0xE6B6 0x7F94 +0xE6B7 0x7F9E +0xE6B8 0x7F9D +0xE6B9 0x7F9A +0xE6BA 0x7FA3 +0xE6BB 0x7FAF +0xE6BC 0x7FB2 +0xE6BD 0x7FB9 +0xE6BE 0x7FAE +0xE6BF 0x7FB6 +0xE6C0 0x7FB8 +0xE6C1 0x8B71 +0xE6C2 0x7FC5 +0xE6C3 0x7FC6 +0xE6C4 0x7FCA +0xE6C5 0x7FD5 +0xE6C6 0x7FD4 +0xE6C7 0x7FE1 +0xE6C8 0x7FE6 +0xE6C9 0x7FE9 +0xE6CA 0x7FF3 +0xE6CB 0x7FF9 +0xE6CC 0x98DC +0xE6CD 0x8006 +0xE6CE 0x8004 +0xE6CF 0x800B +0xE6D0 0x8012 +0xE6D1 0x8018 +0xE6D2 0x8019 +0xE6D3 0x801C +0xE6D4 0x8021 +0xE6D5 0x8028 +0xE6D6 0x803F +0xE6D7 0x803B +0xE6D8 0x804A +0xE6D9 0x8046 +0xE6DA 0x8052 +0xE6DB 0x8058 +0xE6DC 0x805A +0xE6DD 0x805F +0xE6DE 0x8062 +0xE6DF 0x8068 +0xE6E0 0x8073 +0xE6E1 0x8072 +0xE6E2 0x8070 +0xE6E3 0x8076 +0xE6E4 0x8079 +0xE6E5 0x807D +0xE6E6 0x807F +0xE6E7 0x8084 +0xE6E8 0x8086 +0xE6E9 0x8085 +0xE6EA 0x809B +0xE6EB 0x8093 +0xE6EC 0x809A +0xE6ED 0x80AD +0xE6EE 0x5190 +0xE6EF 0x80AC +0xE6F0 0x80DB +0xE6F1 0x80E5 +0xE6F2 0x80D9 +0xE6F3 0x80DD +0xE6F4 0x80C4 +0xE6F5 0x80DA +0xE6F6 0x80D6 +0xE6F7 0x8109 +0xE6F8 0x80EF +0xE6F9 0x80F1 +0xE6FA 0x811B +0xE6FB 0x8129 +0xE6FC 0x8123 +0xE6FD 0x812F +0xE6FE 0x814B +0xE7A1 0x968B +0xE7A2 0x8146 +0xE7A3 0x813E +0xE7A4 0x8153 +0xE7A5 0x8151 +0xE7A6 0x80FC +0xE7A7 0x8171 +0xE7A8 0x816E +0xE7A9 0x8165 +0xE7AA 0x8166 +0xE7AB 0x8174 +0xE7AC 0x8183 +0xE7AD 0x8188 +0xE7AE 0x818A +0xE7AF 0x8180 +0xE7B0 0x8182 +0xE7B1 0x81A0 +0xE7B2 0x8195 +0xE7B3 0x81A4 +0xE7B4 0x81A3 +0xE7B5 0x815F +0xE7B6 0x8193 +0xE7B7 0x81A9 +0xE7B8 0x81B0 +0xE7B9 0x81B5 +0xE7BA 0x81BE +0xE7BB 0x81B8 +0xE7BC 0x81BD +0xE7BD 0x81C0 +0xE7BE 0x81C2 +0xE7BF 0x81BA +0xE7C0 0x81C9 +0xE7C1 0x81CD +0xE7C2 0x81D1 +0xE7C3 0x81D9 +0xE7C4 0x81D8 +0xE7C5 0x81C8 +0xE7C6 0x81DA +0xE7C7 0x81DF +0xE7C8 0x81E0 +0xE7C9 0x81E7 +0xE7CA 0x81FA +0xE7CB 0x81FB +0xE7CC 0x81FE +0xE7CD 0x8201 +0xE7CE 0x8202 +0xE7CF 0x8205 +0xE7D0 0x8207 +0xE7D1 0x820A +0xE7D2 0x820D +0xE7D3 0x8210 +0xE7D4 0x8216 +0xE7D5 0x8229 +0xE7D6 0x822B +0xE7D7 0x8238 +0xE7D8 0x8233 +0xE7D9 0x8240 +0xE7DA 0x8259 +0xE7DB 0x8258 +0xE7DC 0x825D +0xE7DD 0x825A +0xE7DE 0x825F +0xE7DF 0x8264 +0xE7E0 0x8262 +0xE7E1 0x8268 +0xE7E2 0x826A +0xE7E3 0x826B +0xE7E4 0x822E +0xE7E5 0x8271 +0xE7E6 0x8277 +0xE7E7 0x8278 +0xE7E8 0x827E +0xE7E9 0x828D +0xE7EA 0x8292 +0xE7EB 0x82AB +0xE7EC 0x829F +0xE7ED 0x82BB +0xE7EE 0x82AC +0xE7EF 0x82E1 +0xE7F0 0x82E3 +0xE7F1 0x82DF +0xE7F2 0x82D2 +0xE7F3 0x82F4 +0xE7F4 0x82F3 +0xE7F5 0x82FA +0xE7F6 0x8393 +0xE7F7 0x8303 +0xE7F8 0x82FB +0xE7F9 0x82F9 +0xE7FA 0x82DE +0xE7FB 0x8306 +0xE7FC 0x82DC +0xE7FD 0x8309 +0xE7FE 0x82D9 +0xE8A1 0x8335 +0xE8A2 0x8334 +0xE8A3 0x8316 +0xE8A4 0x8332 +0xE8A5 0x8331 +0xE8A6 0x8340 +0xE8A7 0x8339 +0xE8A8 0x8350 +0xE8A9 0x8345 +0xE8AA 0x832F +0xE8AB 0x832B +0xE8AC 0x8317 +0xE8AD 0x8318 +0xE8AE 0x8385 +0xE8AF 0x839A +0xE8B0 0x83AA +0xE8B1 0x839F +0xE8B2 0x83A2 +0xE8B3 0x8396 +0xE8B4 0x8323 +0xE8B5 0x838E +0xE8B6 0x8387 +0xE8B7 0x838A +0xE8B8 0x837C +0xE8B9 0x83B5 +0xE8BA 0x8373 +0xE8BB 0x8375 +0xE8BC 0x83A0 +0xE8BD 0x8389 +0xE8BE 0x83A8 +0xE8BF 0x83F4 +0xE8C0 0x8413 +0xE8C1 0x83EB +0xE8C2 0x83CE +0xE8C3 0x83FD +0xE8C4 0x8403 +0xE8C5 0x83D8 +0xE8C6 0x840B +0xE8C7 0x83C1 +0xE8C8 0x83F7 +0xE8C9 0x8407 +0xE8CA 0x83E0 +0xE8CB 0x83F2 +0xE8CC 0x840D +0xE8CD 0x8422 +0xE8CE 0x8420 +0xE8CF 0x83BD +0xE8D0 0x8438 +0xE8D1 0x8506 +0xE8D2 0x83FB +0xE8D3 0x846D +0xE8D4 0x842A +0xE8D5 0x843C +0xE8D6 0x855A +0xE8D7 0x8484 +0xE8D8 0x8477 +0xE8D9 0x846B +0xE8DA 0x84AD +0xE8DB 0x846E +0xE8DC 0x8482 +0xE8DD 0x8469 +0xE8DE 0x8446 +0xE8DF 0x842C +0xE8E0 0x846F +0xE8E1 0x8479 +0xE8E2 0x8435 +0xE8E3 0x84CA +0xE8E4 0x8462 +0xE8E5 0x84B9 +0xE8E6 0x84BF +0xE8E7 0x849F +0xE8E8 0x84D9 +0xE8E9 0x84CD +0xE8EA 0x84BB +0xE8EB 0x84DA +0xE8EC 0x84D0 +0xE8ED 0x84C1 +0xE8EE 0x84C6 +0xE8EF 0x84D6 +0xE8F0 0x84A1 +0xE8F1 0x8521 +0xE8F2 0x84FF +0xE8F3 0x84F4 +0xE8F4 0x8517 +0xE8F5 0x8518 +0xE8F6 0x852C +0xE8F7 0x851F +0xE8F8 0x8515 +0xE8F9 0x8514 +0xE8FA 0x84FC +0xE8FB 0x8540 +0xE8FC 0x8563 +0xE8FD 0x8558 +0xE8FE 0x8548 +0xE9A1 0x8541 +0xE9A2 0x8602 +0xE9A3 0x854B +0xE9A4 0x8555 +0xE9A5 0x8580 +0xE9A6 0x85A4 +0xE9A7 0x8588 +0xE9A8 0x8591 +0xE9A9 0x858A +0xE9AA 0x85A8 +0xE9AB 0x856D +0xE9AC 0x8594 +0xE9AD 0x859B +0xE9AE 0x85EA +0xE9AF 0x8587 +0xE9B0 0x859C +0xE9B1 0x8577 +0xE9B2 0x857E +0xE9B3 0x8590 +0xE9B4 0x85C9 +0xE9B5 0x85BA +0xE9B6 0x85CF +0xE9B7 0x85B9 +0xE9B8 0x85D0 +0xE9B9 0x85D5 +0xE9BA 0x85DD +0xE9BB 0x85E5 +0xE9BC 0x85DC +0xE9BD 0x85F9 +0xE9BE 0x860A +0xE9BF 0x8613 +0xE9C0 0x860B +0xE9C1 0x85FE +0xE9C2 0x85FA +0xE9C3 0x8606 +0xE9C4 0x8622 +0xE9C5 0x861A +0xE9C6 0x8630 +0xE9C7 0x863F +0xE9C8 0x864D +0xE9C9 0x4E55 +0xE9CA 0x8654 +0xE9CB 0x865F +0xE9CC 0x8667 +0xE9CD 0x8671 +0xE9CE 0x8693 +0xE9CF 0x86A3 +0xE9D0 0x86A9 +0xE9D1 0x86AA +0xE9D2 0x868B +0xE9D3 0x868C +0xE9D4 0x86B6 +0xE9D5 0x86AF +0xE9D6 0x86C4 +0xE9D7 0x86C6 +0xE9D8 0x86B0 +0xE9D9 0x86C9 +0xE9DA 0x8823 +0xE9DB 0x86AB +0xE9DC 0x86D4 +0xE9DD 0x86DE +0xE9DE 0x86E9 +0xE9DF 0x86EC +0xE9E0 0x86DF +0xE9E1 0x86DB +0xE9E2 0x86EF +0xE9E3 0x8712 +0xE9E4 0x8706 +0xE9E5 0x8708 +0xE9E6 0x8700 +0xE9E7 0x8703 +0xE9E8 0x86FB +0xE9E9 0x8711 +0xE9EA 0x8709 +0xE9EB 0x870D +0xE9EC 0x86F9 +0xE9ED 0x870A +0xE9EE 0x8734 +0xE9EF 0x873F +0xE9F0 0x8737 +0xE9F1 0x873B +0xE9F2 0x8725 +0xE9F3 0x8729 +0xE9F4 0x871A +0xE9F5 0x8760 +0xE9F6 0x875F +0xE9F7 0x8778 +0xE9F8 0x874C +0xE9F9 0x874E +0xE9FA 0x8774 +0xE9FB 0x8757 +0xE9FC 0x8768 +0xE9FD 0x876E +0xE9FE 0x8759 +0xEAA1 0x8753 +0xEAA2 0x8763 +0xEAA3 0x876A +0xEAA4 0x8805 +0xEAA5 0x87A2 +0xEAA6 0x879F +0xEAA7 0x8782 +0xEAA8 0x87AF +0xEAA9 0x87CB +0xEAAA 0x87BD +0xEAAB 0x87C0 +0xEAAC 0x87D0 +0xEAAD 0x96D6 +0xEAAE 0x87AB +0xEAAF 0x87C4 +0xEAB0 0x87B3 +0xEAB1 0x87C7 +0xEAB2 0x87C6 +0xEAB3 0x87BB +0xEAB4 0x87EF +0xEAB5 0x87F2 +0xEAB6 0x87E0 +0xEAB7 0x880F +0xEAB8 0x880D +0xEAB9 0x87FE +0xEABA 0x87F6 +0xEABB 0x87F7 +0xEABC 0x880E +0xEABD 0x87D2 +0xEABE 0x8811 +0xEABF 0x8816 +0xEAC0 0x8815 +0xEAC1 0x8822 +0xEAC2 0x8821 +0xEAC3 0x8831 +0xEAC4 0x8836 +0xEAC5 0x8839 +0xEAC6 0x8827 +0xEAC7 0x883B +0xEAC8 0x8844 +0xEAC9 0x8842 +0xEACA 0x8852 +0xEACB 0x8859 +0xEACC 0x885E +0xEACD 0x8862 +0xEACE 0x886B +0xEACF 0x8881 +0xEAD0 0x887E +0xEAD1 0x889E +0xEAD2 0x8875 +0xEAD3 0x887D +0xEAD4 0x88B5 +0xEAD5 0x8872 +0xEAD6 0x8882 +0xEAD7 0x8897 +0xEAD8 0x8892 +0xEAD9 0x88AE +0xEADA 0x8899 +0xEADB 0x88A2 +0xEADC 0x888D +0xEADD 0x88A4 +0xEADE 0x88B0 +0xEADF 0x88BF +0xEAE0 0x88B1 +0xEAE1 0x88C3 +0xEAE2 0x88C4 +0xEAE3 0x88D4 +0xEAE4 0x88D8 +0xEAE5 0x88D9 +0xEAE6 0x88DD +0xEAE7 0x88F9 +0xEAE8 0x8902 +0xEAE9 0x88FC +0xEAEA 0x88F4 +0xEAEB 0x88E8 +0xEAEC 0x88F2 +0xEAED 0x8904 +0xEAEE 0x890C +0xEAEF 0x890A +0xEAF0 0x8913 +0xEAF1 0x8943 +0xEAF2 0x891E +0xEAF3 0x8925 +0xEAF4 0x892A +0xEAF5 0x892B +0xEAF6 0x8941 +0xEAF7 0x8944 +0xEAF8 0x893B +0xEAF9 0x8936 +0xEAFA 0x8938 +0xEAFB 0x894C +0xEAFC 0x891D +0xEAFD 0x8960 +0xEAFE 0x895E +0xEBA1 0x8966 +0xEBA2 0x8964 +0xEBA3 0x896D +0xEBA4 0x896A +0xEBA5 0x896F +0xEBA6 0x8974 +0xEBA7 0x8977 +0xEBA8 0x897E +0xEBA9 0x8983 +0xEBAA 0x8988 +0xEBAB 0x898A +0xEBAC 0x8993 +0xEBAD 0x8998 +0xEBAE 0x89A1 +0xEBAF 0x89A9 +0xEBB0 0x89A6 +0xEBB1 0x89AC +0xEBB2 0x89AF +0xEBB3 0x89B2 +0xEBB4 0x89BA +0xEBB5 0x89BD +0xEBB6 0x89BF +0xEBB7 0x89C0 +0xEBB8 0x89DA +0xEBB9 0x89DC +0xEBBA 0x89DD +0xEBBB 0x89E7 +0xEBBC 0x89F4 +0xEBBD 0x89F8 +0xEBBE 0x8A03 +0xEBBF 0x8A16 +0xEBC0 0x8A10 +0xEBC1 0x8A0C +0xEBC2 0x8A1B +0xEBC3 0x8A1D +0xEBC4 0x8A25 +0xEBC5 0x8A36 +0xEBC6 0x8A41 +0xEBC7 0x8A5B +0xEBC8 0x8A52 +0xEBC9 0x8A46 +0xEBCA 0x8A48 +0xEBCB 0x8A7C +0xEBCC 0x8A6D +0xEBCD 0x8A6C +0xEBCE 0x8A62 +0xEBCF 0x8A85 +0xEBD0 0x8A82 +0xEBD1 0x8A84 +0xEBD2 0x8AA8 +0xEBD3 0x8AA1 +0xEBD4 0x8A91 +0xEBD5 0x8AA5 +0xEBD6 0x8AA6 +0xEBD7 0x8A9A +0xEBD8 0x8AA3 +0xEBD9 0x8AC4 +0xEBDA 0x8ACD +0xEBDB 0x8AC2 +0xEBDC 0x8ADA +0xEBDD 0x8AEB +0xEBDE 0x8AF3 +0xEBDF 0x8AE7 +0xEBE0 0x8AE4 +0xEBE1 0x8AF1 +0xEBE2 0x8B14 +0xEBE3 0x8AE0 +0xEBE4 0x8AE2 +0xEBE5 0x8AF7 +0xEBE6 0x8ADE +0xEBE7 0x8ADB +0xEBE8 0x8B0C +0xEBE9 0x8B07 +0xEBEA 0x8B1A +0xEBEB 0x8AE1 +0xEBEC 0x8B16 +0xEBED 0x8B10 +0xEBEE 0x8B17 +0xEBEF 0x8B20 +0xEBF0 0x8B33 +0xEBF1 0x97AB +0xEBF2 0x8B26 +0xEBF3 0x8B2B +0xEBF4 0x8B3E +0xEBF5 0x8B28 +0xEBF6 0x8B41 +0xEBF7 0x8B4C +0xEBF8 0x8B4F +0xEBF9 0x8B4E +0xEBFA 0x8B49 +0xEBFB 0x8B56 +0xEBFC 0x8B5B +0xEBFD 0x8B5A +0xEBFE 0x8B6B +0xECA1 0x8B5F +0xECA2 0x8B6C +0xECA3 0x8B6F +0xECA4 0x8B74 +0xECA5 0x8B7D +0xECA6 0x8B80 +0xECA7 0x8B8C +0xECA8 0x8B8E +0xECA9 0x8B92 +0xECAA 0x8B93 +0xECAB 0x8B96 +0xECAC 0x8B99 +0xECAD 0x8B9A +0xECAE 0x8C3A +0xECAF 0x8C41 +0xECB0 0x8C3F +0xECB1 0x8C48 +0xECB2 0x8C4C +0xECB3 0x8C4E +0xECB4 0x8C50 +0xECB5 0x8C55 +0xECB6 0x8C62 +0xECB7 0x8C6C +0xECB8 0x8C78 +0xECB9 0x8C7A +0xECBA 0x8C82 +0xECBB 0x8C89 +0xECBC 0x8C85 +0xECBD 0x8C8A +0xECBE 0x8C8D +0xECBF 0x8C8E +0xECC0 0x8C94 +0xECC1 0x8C7C +0xECC2 0x8C98 +0xECC3 0x621D +0xECC4 0x8CAD +0xECC5 0x8CAA +0xECC6 0x8CBD +0xECC7 0x8CB2 +0xECC8 0x8CB3 +0xECC9 0x8CAE +0xECCA 0x8CB6 +0xECCB 0x8CC8 +0xECCC 0x8CC1 +0xECCD 0x8CE4 +0xECCE 0x8CE3 +0xECCF 0x8CDA +0xECD0 0x8CFD +0xECD1 0x8CFA +0xECD2 0x8CFB +0xECD3 0x8D04 +0xECD4 0x8D05 +0xECD5 0x8D0A +0xECD6 0x8D07 +0xECD7 0x8D0F +0xECD8 0x8D0D +0xECD9 0x8D10 +0xECDA 0x9F4E +0xECDB 0x8D13 +0xECDC 0x8CCD +0xECDD 0x8D14 +0xECDE 0x8D16 +0xECDF 0x8D67 +0xECE0 0x8D6D +0xECE1 0x8D71 +0xECE2 0x8D73 +0xECE3 0x8D81 +0xECE4 0x8D99 +0xECE5 0x8DC2 +0xECE6 0x8DBE +0xECE7 0x8DBA +0xECE8 0x8DCF +0xECE9 0x8DDA +0xECEA 0x8DD6 +0xECEB 0x8DCC +0xECEC 0x8DDB +0xECED 0x8DCB +0xECEE 0x8DEA +0xECEF 0x8DEB +0xECF0 0x8DDF +0xECF1 0x8DE3 +0xECF2 0x8DFC +0xECF3 0x8E08 +0xECF4 0x8E09 +0xECF5 0x8DFF +0xECF6 0x8E1D +0xECF7 0x8E1E +0xECF8 0x8E10 +0xECF9 0x8E1F +0xECFA 0x8E42 +0xECFB 0x8E35 +0xECFC 0x8E30 +0xECFD 0x8E34 +0xECFE 0x8E4A +0xEDA1 0x8E47 +0xEDA2 0x8E49 +0xEDA3 0x8E4C +0xEDA4 0x8E50 +0xEDA5 0x8E48 +0xEDA6 0x8E59 +0xEDA7 0x8E64 +0xEDA8 0x8E60 +0xEDA9 0x8E2A +0xEDAA 0x8E63 +0xEDAB 0x8E55 +0xEDAC 0x8E76 +0xEDAD 0x8E72 +0xEDAE 0x8E7C +0xEDAF 0x8E81 +0xEDB0 0x8E87 +0xEDB1 0x8E85 +0xEDB2 0x8E84 +0xEDB3 0x8E8B +0xEDB4 0x8E8A +0xEDB5 0x8E93 +0xEDB6 0x8E91 +0xEDB7 0x8E94 +0xEDB8 0x8E99 +0xEDB9 0x8EAA +0xEDBA 0x8EA1 +0xEDBB 0x8EAC +0xEDBC 0x8EB0 +0xEDBD 0x8EC6 +0xEDBE 0x8EB1 +0xEDBF 0x8EBE +0xEDC0 0x8EC5 +0xEDC1 0x8EC8 +0xEDC2 0x8ECB +0xEDC3 0x8EDB +0xEDC4 0x8EE3 +0xEDC5 0x8EFC +0xEDC6 0x8EFB +0xEDC7 0x8EEB +0xEDC8 0x8EFE +0xEDC9 0x8F0A +0xEDCA 0x8F05 +0xEDCB 0x8F15 +0xEDCC 0x8F12 +0xEDCD 0x8F19 +0xEDCE 0x8F13 +0xEDCF 0x8F1C +0xEDD0 0x8F1F +0xEDD1 0x8F1B +0xEDD2 0x8F0C +0xEDD3 0x8F26 +0xEDD4 0x8F33 +0xEDD5 0x8F3B +0xEDD6 0x8F39 +0xEDD7 0x8F45 +0xEDD8 0x8F42 +0xEDD9 0x8F3E +0xEDDA 0x8F4C +0xEDDB 0x8F49 +0xEDDC 0x8F46 +0xEDDD 0x8F4E +0xEDDE 0x8F57 +0xEDDF 0x8F5C +0xEDE0 0x8F62 +0xEDE1 0x8F63 +0xEDE2 0x8F64 +0xEDE3 0x8F9C +0xEDE4 0x8F9F +0xEDE5 0x8FA3 +0xEDE6 0x8FAD +0xEDE7 0x8FAF +0xEDE8 0x8FB7 +0xEDE9 0x8FDA +0xEDEA 0x8FE5 +0xEDEB 0x8FE2 +0xEDEC 0x8FEA +0xEDED 0x8FEF +0xEDEE 0x9087 +0xEDEF 0x8FF4 +0xEDF0 0x9005 +0xEDF1 0x8FF9 +0xEDF2 0x8FFA +0xEDF3 0x9011 +0xEDF4 0x9015 +0xEDF5 0x9021 +0xEDF6 0x900D +0xEDF7 0x901E +0xEDF8 0x9016 +0xEDF9 0x900B +0xEDFA 0x9027 +0xEDFB 0x9036 +0xEDFC 0x9035 +0xEDFD 0x9039 +0xEDFE 0x8FF8 +0xEEA1 0x904F +0xEEA2 0x9050 +0xEEA3 0x9051 +0xEEA4 0x9052 +0xEEA5 0x900E +0xEEA6 0x9049 +0xEEA7 0x903E +0xEEA8 0x9056 +0xEEA9 0x9058 +0xEEAA 0x905E +0xEEAB 0x9068 +0xEEAC 0x906F +0xEEAD 0x9076 +0xEEAE 0x96A8 +0xEEAF 0x9072 +0xEEB0 0x9082 +0xEEB1 0x907D +0xEEB2 0x9081 +0xEEB3 0x9080 +0xEEB4 0x908A +0xEEB5 0x9089 +0xEEB6 0x908F +0xEEB7 0x90A8 +0xEEB8 0x90AF +0xEEB9 0x90B1 +0xEEBA 0x90B5 +0xEEBB 0x90E2 +0xEEBC 0x90E4 +0xEEBD 0x6248 +0xEEBE 0x90DB +0xEEBF 0x9102 +0xEEC0 0x9112 +0xEEC1 0x9119 +0xEEC2 0x9132 +0xEEC3 0x9130 +0xEEC4 0x914A +0xEEC5 0x9156 +0xEEC6 0x9158 +0xEEC7 0x9163 +0xEEC8 0x9165 +0xEEC9 0x9169 +0xEECA 0x9173 +0xEECB 0x9172 +0xEECC 0x918B +0xEECD 0x9189 +0xEECE 0x9182 +0xEECF 0x91A2 +0xEED0 0x91AB +0xEED1 0x91AF +0xEED2 0x91AA +0xEED3 0x91B5 +0xEED4 0x91B4 +0xEED5 0x91BA +0xEED6 0x91C0 +0xEED7 0x91C1 +0xEED8 0x91C9 +0xEED9 0x91CB +0xEEDA 0x91D0 +0xEEDB 0x91D6 +0xEEDC 0x91DF +0xEEDD 0x91E1 +0xEEDE 0x91DB +0xEEDF 0x91FC +0xEEE0 0x91F5 +0xEEE1 0x91F6 +0xEEE2 0x921E +0xEEE3 0x91FF +0xEEE4 0x9214 +0xEEE5 0x922C +0xEEE6 0x9215 +0xEEE7 0x9211 +0xEEE8 0x925E +0xEEE9 0x9257 +0xEEEA 0x9245 +0xEEEB 0x9249 +0xEEEC 0x9264 +0xEEED 0x9248 +0xEEEE 0x9295 +0xEEEF 0x923F +0xEEF0 0x924B +0xEEF1 0x9250 +0xEEF2 0x929C +0xEEF3 0x9296 +0xEEF4 0x9293 +0xEEF5 0x929B +0xEEF6 0x925A +0xEEF7 0x92CF +0xEEF8 0x92B9 +0xEEF9 0x92B7 +0xEEFA 0x92E9 +0xEEFB 0x930F +0xEEFC 0x92FA +0xEEFD 0x9344 +0xEEFE 0x932E +0xEFA1 0x9319 +0xEFA2 0x9322 +0xEFA3 0x931A +0xEFA4 0x9323 +0xEFA5 0x933A +0xEFA6 0x9335 +0xEFA7 0x933B +0xEFA8 0x935C +0xEFA9 0x9360 +0xEFAA 0x937C +0xEFAB 0x936E +0xEFAC 0x9356 +0xEFAD 0x93B0 +0xEFAE 0x93AC +0xEFAF 0x93AD +0xEFB0 0x9394 +0xEFB1 0x93B9 +0xEFB2 0x93D6 +0xEFB3 0x93D7 +0xEFB4 0x93E8 +0xEFB5 0x93E5 +0xEFB6 0x93D8 +0xEFB7 0x93C3 +0xEFB8 0x93DD +0xEFB9 0x93D0 +0xEFBA 0x93C8 +0xEFBB 0x93E4 +0xEFBC 0x941A +0xEFBD 0x9414 +0xEFBE 0x9413 +0xEFBF 0x9403 +0xEFC0 0x9407 +0xEFC1 0x9410 +0xEFC2 0x9436 +0xEFC3 0x942B +0xEFC4 0x9435 +0xEFC5 0x9421 +0xEFC6 0x943A +0xEFC7 0x9441 +0xEFC8 0x9452 +0xEFC9 0x9444 +0xEFCA 0x945B +0xEFCB 0x9460 +0xEFCC 0x9462 +0xEFCD 0x945E +0xEFCE 0x946A +0xEFCF 0x9229 +0xEFD0 0x9470 +0xEFD1 0x9475 +0xEFD2 0x9477 +0xEFD3 0x947D +0xEFD4 0x945A +0xEFD5 0x947C +0xEFD6 0x947E +0xEFD7 0x9481 +0xEFD8 0x947F +0xEFD9 0x9582 +0xEFDA 0x9587 +0xEFDB 0x958A +0xEFDC 0x9594 +0xEFDD 0x9596 +0xEFDE 0x9598 +0xEFDF 0x9599 +0xEFE0 0x95A0 +0xEFE1 0x95A8 +0xEFE2 0x95A7 +0xEFE3 0x95AD +0xEFE4 0x95BC +0xEFE5 0x95BB +0xEFE6 0x95B9 +0xEFE7 0x95BE +0xEFE8 0x95CA +0xEFE9 0x6FF6 +0xEFEA 0x95C3 +0xEFEB 0x95CD +0xEFEC 0x95CC +0xEFED 0x95D5 +0xEFEE 0x95D4 +0xEFEF 0x95D6 +0xEFF0 0x95DC +0xEFF1 0x95E1 +0xEFF2 0x95E5 +0xEFF3 0x95E2 +0xEFF4 0x9621 +0xEFF5 0x9628 +0xEFF6 0x962E +0xEFF7 0x962F +0xEFF8 0x9642 +0xEFF9 0x964C +0xEFFA 0x964F +0xEFFB 0x964B +0xEFFC 0x9677 +0xEFFD 0x965C +0xEFFE 0x965E +0xF0A1 0x965D +0xF0A2 0x965F +0xF0A3 0x9666 +0xF0A4 0x9672 +0xF0A5 0x966C +0xF0A6 0x968D +0xF0A7 0x9698 +0xF0A8 0x9695 +0xF0A9 0x9697 +0xF0AA 0x96AA +0xF0AB 0x96A7 +0xF0AC 0x96B1 +0xF0AD 0x96B2 +0xF0AE 0x96B0 +0xF0AF 0x96B4 +0xF0B0 0x96B6 +0xF0B1 0x96B8 +0xF0B2 0x96B9 +0xF0B3 0x96CE +0xF0B4 0x96CB +0xF0B5 0x96C9 +0xF0B6 0x96CD +0xF0B7 0x894D +0xF0B8 0x96DC +0xF0B9 0x970D +0xF0BA 0x96D5 +0xF0BB 0x96F9 +0xF0BC 0x9704 +0xF0BD 0x9706 +0xF0BE 0x9708 +0xF0BF 0x9713 +0xF0C0 0x970E +0xF0C1 0x9711 +0xF0C2 0x970F +0xF0C3 0x9716 +0xF0C4 0x9719 +0xF0C5 0x9724 +0xF0C6 0x972A +0xF0C7 0x9730 +0xF0C8 0x9739 +0xF0C9 0x973D +0xF0CA 0x973E +0xF0CB 0x9744 +0xF0CC 0x9746 +0xF0CD 0x9748 +0xF0CE 0x9742 +0xF0CF 0x9749 +0xF0D0 0x975C +0xF0D1 0x9760 +0xF0D2 0x9764 +0xF0D3 0x9766 +0xF0D4 0x9768 +0xF0D5 0x52D2 +0xF0D6 0x976B +0xF0D7 0x9771 +0xF0D8 0x9779 +0xF0D9 0x9785 +0xF0DA 0x977C +0xF0DB 0x9781 +0xF0DC 0x977A +0xF0DD 0x9786 +0xF0DE 0x978B +0xF0DF 0x978F +0xF0E0 0x9790 +0xF0E1 0x979C +0xF0E2 0x97A8 +0xF0E3 0x97A6 +0xF0E4 0x97A3 +0xF0E5 0x97B3 +0xF0E6 0x97B4 +0xF0E7 0x97C3 +0xF0E8 0x97C6 +0xF0E9 0x97C8 +0xF0EA 0x97CB +0xF0EB 0x97DC +0xF0EC 0x97ED +0xF0ED 0x9F4F +0xF0EE 0x97F2 +0xF0EF 0x7ADF +0xF0F0 0x97F6 +0xF0F1 0x97F5 +0xF0F2 0x980F +0xF0F3 0x980C +0xF0F4 0x9838 +0xF0F5 0x9824 +0xF0F6 0x9821 +0xF0F7 0x9837 +0xF0F8 0x983D +0xF0F9 0x9846 +0xF0FA 0x984F +0xF0FB 0x984B +0xF0FC 0x986B +0xF0FD 0x986F +0xF0FE 0x9870 +0xF1A1 0x9871 +0xF1A2 0x9874 +0xF1A3 0x9873 +0xF1A4 0x98AA +0xF1A5 0x98AF +0xF1A6 0x98B1 +0xF1A7 0x98B6 +0xF1A8 0x98C4 +0xF1A9 0x98C3 +0xF1AA 0x98C6 +0xF1AB 0x98E9 +0xF1AC 0x98EB +0xF1AD 0x9903 +0xF1AE 0x9909 +0xF1AF 0x9912 +0xF1B0 0x9914 +0xF1B1 0x9918 +0xF1B2 0x9921 +0xF1B3 0x991D +0xF1B4 0x991E +0xF1B5 0x9924 +0xF1B6 0x9920 +0xF1B7 0x992C +0xF1B8 0x992E +0xF1B9 0x993D +0xF1BA 0x993E +0xF1BB 0x9942 +0xF1BC 0x9949 +0xF1BD 0x9945 +0xF1BE 0x9950 +0xF1BF 0x994B +0xF1C0 0x9951 +0xF1C1 0x9952 +0xF1C2 0x994C +0xF1C3 0x9955 +0xF1C4 0x9997 +0xF1C5 0x9998 +0xF1C6 0x99A5 +0xF1C7 0x99AD +0xF1C8 0x99AE +0xF1C9 0x99BC +0xF1CA 0x99DF +0xF1CB 0x99DB +0xF1CC 0x99DD +0xF1CD 0x99D8 +0xF1CE 0x99D1 +0xF1CF 0x99ED +0xF1D0 0x99EE +0xF1D1 0x99F1 +0xF1D2 0x99F2 +0xF1D3 0x99FB +0xF1D4 0x99F8 +0xF1D5 0x9A01 +0xF1D6 0x9A0F +0xF1D7 0x9A05 +0xF1D8 0x99E2 +0xF1D9 0x9A19 +0xF1DA 0x9A2B +0xF1DB 0x9A37 +0xF1DC 0x9A45 +0xF1DD 0x9A42 +0xF1DE 0x9A40 +0xF1DF 0x9A43 +0xF1E0 0x9A3E +0xF1E1 0x9A55 +0xF1E2 0x9A4D +0xF1E3 0x9A5B +0xF1E4 0x9A57 +0xF1E5 0x9A5F +0xF1E6 0x9A62 +0xF1E7 0x9A65 +0xF1E8 0x9A64 +0xF1E9 0x9A69 +0xF1EA 0x9A6B +0xF1EB 0x9A6A +0xF1EC 0x9AAD +0xF1ED 0x9AB0 +0xF1EE 0x9ABC +0xF1EF 0x9AC0 +0xF1F0 0x9ACF +0xF1F1 0x9AD1 +0xF1F2 0x9AD3 +0xF1F3 0x9AD4 +0xF1F4 0x9ADE +0xF1F5 0x9ADF +0xF1F6 0x9AE2 +0xF1F7 0x9AE3 +0xF1F8 0x9AE6 +0xF1F9 0x9AEF +0xF1FA 0x9AEB +0xF1FB 0x9AEE +0xF1FC 0x9AF4 +0xF1FD 0x9AF1 +0xF1FE 0x9AF7 +0xF2A1 0x9AFB +0xF2A2 0x9B06 +0xF2A3 0x9B18 +0xF2A4 0x9B1A +0xF2A5 0x9B1F +0xF2A6 0x9B22 +0xF2A7 0x9B23 +0xF2A8 0x9B25 +0xF2A9 0x9B27 +0xF2AA 0x9B28 +0xF2AB 0x9B29 +0xF2AC 0x9B2A +0xF2AD 0x9B2E +0xF2AE 0x9B2F +0xF2AF 0x9B32 +0xF2B0 0x9B44 +0xF2B1 0x9B43 +0xF2B2 0x9B4F +0xF2B3 0x9B4D +0xF2B4 0x9B4E +0xF2B5 0x9B51 +0xF2B6 0x9B58 +0xF2B7 0x9B74 +0xF2B8 0x9B93 +0xF2B9 0x9B83 +0xF2BA 0x9B91 +0xF2BB 0x9B96 +0xF2BC 0x9B97 +0xF2BD 0x9B9F +0xF2BE 0x9BA0 +0xF2BF 0x9BA8 +0xF2C0 0x9BB4 +0xF2C1 0x9BC0 +0xF2C2 0x9BCA +0xF2C3 0x9BB9 +0xF2C4 0x9BC6 +0xF2C5 0x9BCF +0xF2C6 0x9BD1 +0xF2C7 0x9BD2 +0xF2C8 0x9BE3 +0xF2C9 0x9BE2 +0xF2CA 0x9BE4 +0xF2CB 0x9BD4 +0xF2CC 0x9BE1 +0xF2CD 0x9C3A +0xF2CE 0x9BF2 +0xF2CF 0x9BF1 +0xF2D0 0x9BF0 +0xF2D1 0x9C15 +0xF2D2 0x9C14 +0xF2D3 0x9C09 +0xF2D4 0x9C13 +0xF2D5 0x9C0C +0xF2D6 0x9C06 +0xF2D7 0x9C08 +0xF2D8 0x9C12 +0xF2D9 0x9C0A +0xF2DA 0x9C04 +0xF2DB 0x9C2E +0xF2DC 0x9C1B +0xF2DD 0x9C25 +0xF2DE 0x9C24 +0xF2DF 0x9C21 +0xF2E0 0x9C30 +0xF2E1 0x9C47 +0xF2E2 0x9C32 +0xF2E3 0x9C46 +0xF2E4 0x9C3E +0xF2E5 0x9C5A +0xF2E6 0x9C60 +0xF2E7 0x9C67 +0xF2E8 0x9C76 +0xF2E9 0x9C78 +0xF2EA 0x9CE7 +0xF2EB 0x9CEC +0xF2EC 0x9CF0 +0xF2ED 0x9D09 +0xF2EE 0x9D08 +0xF2EF 0x9CEB +0xF2F0 0x9D03 +0xF2F1 0x9D06 +0xF2F2 0x9D2A +0xF2F3 0x9D26 +0xF2F4 0x9DAF +0xF2F5 0x9D23 +0xF2F6 0x9D1F +0xF2F7 0x9D44 +0xF2F8 0x9D15 +0xF2F9 0x9D12 +0xF2FA 0x9D41 +0xF2FB 0x9D3F +0xF2FC 0x9D3E +0xF2FD 0x9D46 +0xF2FE 0x9D48 +0xF3A1 0x9D5D +0xF3A2 0x9D5E +0xF3A3 0x9D64 +0xF3A4 0x9D51 +0xF3A5 0x9D50 +0xF3A6 0x9D59 +0xF3A7 0x9D72 +0xF3A8 0x9D89 +0xF3A9 0x9D87 +0xF3AA 0x9DAB +0xF3AB 0x9D6F +0xF3AC 0x9D7A +0xF3AD 0x9D9A +0xF3AE 0x9DA4 +0xF3AF 0x9DA9 +0xF3B0 0x9DB2 +0xF3B1 0x9DC4 +0xF3B2 0x9DC1 +0xF3B3 0x9DBB +0xF3B4 0x9DB8 +0xF3B5 0x9DBA +0xF3B6 0x9DC6 +0xF3B7 0x9DCF +0xF3B8 0x9DC2 +0xF3B9 0x9DD9 +0xF3BA 0x9DD3 +0xF3BB 0x9DF8 +0xF3BC 0x9DE6 +0xF3BD 0x9DED +0xF3BE 0x9DEF +0xF3BF 0x9DFD +0xF3C0 0x9E1A +0xF3C1 0x9E1B +0xF3C2 0x9E1E +0xF3C3 0x9E75 +0xF3C4 0x9E79 +0xF3C5 0x9E7D +0xF3C6 0x9E81 +0xF3C7 0x9E88 +0xF3C8 0x9E8B +0xF3C9 0x9E8C +0xF3CA 0x9E92 +0xF3CB 0x9E95 +0xF3CC 0x9E91 +0xF3CD 0x9E9D +0xF3CE 0x9EA5 +0xF3CF 0x9EA9 +0xF3D0 0x9EB8 +0xF3D1 0x9EAA +0xF3D2 0x9EAD +0xF3D3 0x9761 +0xF3D4 0x9ECC +0xF3D5 0x9ECE +0xF3D6 0x9ECF +0xF3D7 0x9ED0 +0xF3D8 0x9ED4 +0xF3D9 0x9EDC +0xF3DA 0x9EDE +0xF3DB 0x9EDD +0xF3DC 0x9EE0 +0xF3DD 0x9EE5 +0xF3DE 0x9EE8 +0xF3DF 0x9EEF +0xF3E0 0x9EF4 +0xF3E1 0x9EF6 +0xF3E2 0x9EF7 +0xF3E3 0x9EF9 +0xF3E4 0x9EFB +0xF3E5 0x9EFC +0xF3E6 0x9EFD +0xF3E7 0x9F07 +0xF3E8 0x9F08 +0xF3E9 0x76B7 +0xF3EA 0x9F15 +0xF3EB 0x9F21 +0xF3EC 0x9F2C +0xF3ED 0x9F3E +0xF3EE 0x9F4A +0xF3EF 0x9F52 +0xF3F0 0x9F54 +0xF3F1 0x9F63 +0xF3F2 0x9F5F +0xF3F3 0x9F60 +0xF3F4 0x9F61 +0xF3F5 0x9F66 +0xF3F6 0x9F67 +0xF3F7 0x9F6C +0xF3F8 0x9F6A +0xF3F9 0x9F77 +0xF3FA 0x9F72 +0xF3FB 0x9F76 +0xF3FC 0x9F95 +0xF3FD 0x9F9C +0xF3FE 0x9FA0 +0xF4A1 0x582F +0xF4A2 0x69C7 +0xF4A3 0x9059 +0xF4A4 0x7464 +0xF4A5 0x51DC +0xF4A6 0x7199 +0xF5A1 0xE000 +0xF5A2 0xE001 +0xF5A3 0xE002 +0xF5A4 0xE003 +0xF5A5 0xE004 +0xF5A6 0xE005 +0xF5A7 0xE006 +0xF5A8 0xE007 +0xF5A9 0xE008 +0xF5AA 0xE009 +0xF5AB 0xE00A +0xF5AC 0xE00B +0xF5AD 0xE00C +0xF5AE 0xE00D +0xF5AF 0xE00E +0xF5B0 0xE00F +0xF5B1 0xE010 +0xF5B2 0xE011 +0xF5B3 0xE012 +0xF5B4 0xE013 +0xF5B5 0xE014 +0xF5B6 0xE015 +0xF5B7 0xE016 +0xF5B8 0xE017 +0xF5B9 0xE018 +0xF5BA 0xE019 +0xF5BB 0xE01A +0xF5BC 0xE01B +0xF5BD 0xE01C +0xF5BE 0xE01D +0xF5BF 0xE01E +0xF5C0 0xE01F +0xF5C1 0xE020 +0xF5C2 0xE021 +0xF5C3 0xE022 +0xF5C4 0xE023 +0xF5C5 0xE024 +0xF5C6 0xE025 +0xF5C7 0xE026 +0xF5C8 0xE027 +0xF5C9 0xE028 +0xF5CA 0xE029 +0xF5CB 0xE02A +0xF5CC 0xE02B +0xF5CD 0xE02C +0xF5CE 0xE02D +0xF5CF 0xE02E +0xF5D0 0xE02F +0xF5D1 0xE030 +0xF5D2 0xE031 +0xF5D3 0xE032 +0xF5D4 0xE033 +0xF5D5 0xE034 +0xF5D6 0xE035 +0xF5D7 0xE036 +0xF5D8 0xE037 +0xF5D9 0xE038 +0xF5DA 0xE039 +0xF5DB 0xE03A +0xF5DC 0xE03B +0xF5DD 0xE03C +0xF5DE 0xE03D +0xF5DF 0xE03E +0xF5E0 0xE03F +0xF5E1 0xE040 +0xF5E2 0xE041 +0xF5E3 0xE042 +0xF5E4 0xE043 +0xF5E5 0xE044 +0xF5E6 0xE045 +0xF5E7 0xE046 +0xF5E8 0xE047 +0xF5E9 0xE048 +0xF5EA 0xE049 +0xF5EB 0xE04A +0xF5EC 0xE04B +0xF5ED 0xE04C +0xF5EE 0xE04D +0xF5EF 0xE04E +0xF5F0 0xE04F +0xF5F1 0xE050 +0xF5F2 0xE051 +0xF5F3 0xE052 +0xF5F4 0xE053 +0xF5F5 0xE054 +0xF5F6 0xE055 +0xF5F7 0xE056 +0xF5F8 0xE057 +0xF5F9 0xE058 +0xF5FA 0xE059 +0xF5FB 0xE05A +0xF5FC 0xE05B +0xF5FD 0xE05C +0xF5FE 0xE05D +0xF6A1 0xE05E +0xF6A2 0xE05F +0xF6A3 0xE060 +0xF6A4 0xE061 +0xF6A5 0xE062 +0xF6A6 0xE063 +0xF6A7 0xE064 +0xF6A8 0xE065 +0xF6A9 0xE066 +0xF6AA 0xE067 +0xF6AB 0xE068 +0xF6AC 0xE069 +0xF6AD 0xE06A +0xF6AE 0xE06B +0xF6AF 0xE06C +0xF6B0 0xE06D +0xF6B1 0xE06E +0xF6B2 0xE06F +0xF6B3 0xE070 +0xF6B4 0xE071 +0xF6B5 0xE072 +0xF6B6 0xE073 +0xF6B7 0xE074 +0xF6B8 0xE075 +0xF6B9 0xE076 +0xF6BA 0xE077 +0xF6BB 0xE078 +0xF6BC 0xE079 +0xF6BD 0xE07A +0xF6BE 0xE07B +0xF6BF 0xE07C +0xF6C0 0xE07D +0xF6C1 0xE07E +0xF6C2 0xE07F +0xF6C3 0xE080 +0xF6C4 0xE081 +0xF6C5 0xE082 +0xF6C6 0xE083 +0xF6C7 0xE084 +0xF6C8 0xE085 +0xF6C9 0xE086 +0xF6CA 0xE087 +0xF6CB 0xE088 +0xF6CC 0xE089 +0xF6CD 0xE08A +0xF6CE 0xE08B +0xF6CF 0xE08C +0xF6D0 0xE08D +0xF6D1 0xE08E +0xF6D2 0xE08F +0xF6D3 0xE090 +0xF6D4 0xE091 +0xF6D5 0xE092 +0xF6D6 0xE093 +0xF6D7 0xE094 +0xF6D8 0xE095 +0xF6D9 0xE096 +0xF6DA 0xE097 +0xF6DB 0xE098 +0xF6DC 0xE099 +0xF6DD 0xE09A +0xF6DE 0xE09B +0xF6DF 0xE09C +0xF6E0 0xE09D +0xF6E1 0xE09E +0xF6E2 0xE09F +0xF6E3 0xE0A0 +0xF6E4 0xE0A1 +0xF6E5 0xE0A2 +0xF6E6 0xE0A3 +0xF6E7 0xE0A4 +0xF6E8 0xE0A5 +0xF6E9 0xE0A6 +0xF6EA 0xE0A7 +0xF6EB 0xE0A8 +0xF6EC 0xE0A9 +0xF6ED 0xE0AA +0xF6EE 0xE0AB +0xF6EF 0xE0AC +0xF6F0 0xE0AD +0xF6F1 0xE0AE +0xF6F2 0xE0AF +0xF6F3 0xE0B0 +0xF6F4 0xE0B1 +0xF6F5 0xE0B2 +0xF6F6 0xE0B3 +0xF6F7 0xE0B4 +0xF6F8 0xE0B5 +0xF6F9 0xE0B6 +0xF6FA 0xE0B7 +0xF6FB 0xE0B8 +0xF6FC 0xE0B9 +0xF6FD 0xE0BA +0xF6FE 0xE0BB +0xF7A1 0xE0BC +0xF7A2 0xE0BD +0xF7A3 0xE0BE +0xF7A4 0xE0BF +0xF7A5 0xE0C0 +0xF7A6 0xE0C1 +0xF7A7 0xE0C2 +0xF7A8 0xE0C3 +0xF7A9 0xE0C4 +0xF7AA 0xE0C5 +0xF7AB 0xE0C6 +0xF7AC 0xE0C7 +0xF7AD 0xE0C8 +0xF7AE 0xE0C9 +0xF7AF 0xE0CA +0xF7B0 0xE0CB +0xF7B1 0xE0CC +0xF7B2 0xE0CD +0xF7B3 0xE0CE +0xF7B4 0xE0CF +0xF7B5 0xE0D0 +0xF7B6 0xE0D1 +0xF7B7 0xE0D2 +0xF7B8 0xE0D3 +0xF7B9 0xE0D4 +0xF7BA 0xE0D5 +0xF7BB 0xE0D6 +0xF7BC 0xE0D7 +0xF7BD 0xE0D8 +0xF7BE 0xE0D9 +0xF7BF 0xE0DA +0xF7C0 0xE0DB +0xF7C1 0xE0DC +0xF7C2 0xE0DD +0xF7C3 0xE0DE +0xF7C4 0xE0DF +0xF7C5 0xE0E0 +0xF7C6 0xE0E1 +0xF7C7 0xE0E2 +0xF7C8 0xE0E3 +0xF7C9 0xE0E4 +0xF7CA 0xE0E5 +0xF7CB 0xE0E6 +0xF7CC 0xE0E7 +0xF7CD 0xE0E8 +0xF7CE 0xE0E9 +0xF7CF 0xE0EA +0xF7D0 0xE0EB +0xF7D1 0xE0EC +0xF7D2 0xE0ED +0xF7D3 0xE0EE +0xF7D4 0xE0EF +0xF7D5 0xE0F0 +0xF7D6 0xE0F1 +0xF7D7 0xE0F2 +0xF7D8 0xE0F3 +0xF7D9 0xE0F4 +0xF7DA 0xE0F5 +0xF7DB 0xE0F6 +0xF7DC 0xE0F7 +0xF7DD 0xE0F8 +0xF7DE 0xE0F9 +0xF7DF 0xE0FA +0xF7E0 0xE0FB +0xF7E1 0xE0FC +0xF7E2 0xE0FD +0xF7E3 0xE0FE +0xF7E4 0xE0FF +0xF7E5 0xE100 +0xF7E6 0xE101 +0xF7E7 0xE102 +0xF7E8 0xE103 +0xF7E9 0xE104 +0xF7EA 0xE105 +0xF7EB 0xE106 +0xF7EC 0xE107 +0xF7ED 0xE108 +0xF7EE 0xE109 +0xF7EF 0xE10A +0xF7F0 0xE10B +0xF7F1 0xE10C +0xF7F2 0xE10D +0xF7F3 0xE10E +0xF7F4 0xE10F +0xF7F5 0xE110 +0xF7F6 0xE111 +0xF7F7 0xE112 +0xF7F8 0xE113 +0xF7F9 0xE114 +0xF7FA 0xE115 +0xF7FB 0xE116 +0xF7FC 0xE117 +0xF7FD 0xE118 +0xF7FE 0xE119 +0xF8A1 0xE11A +0xF8A2 0xE11B +0xF8A3 0xE11C +0xF8A4 0xE11D +0xF8A5 0xE11E +0xF8A6 0xE11F +0xF8A7 0xE120 +0xF8A8 0xE121 +0xF8A9 0xE122 +0xF8AA 0xE123 +0xF8AB 0xE124 +0xF8AC 0xE125 +0xF8AD 0xE126 +0xF8AE 0xE127 +0xF8AF 0xE128 +0xF8B0 0xE129 +0xF8B1 0xE12A +0xF8B2 0xE12B +0xF8B3 0xE12C +0xF8B4 0xE12D +0xF8B5 0xE12E +0xF8B6 0xE12F +0xF8B7 0xE130 +0xF8B8 0xE131 +0xF8B9 0xE132 +0xF8BA 0xE133 +0xF8BB 0xE134 +0xF8BC 0xE135 +0xF8BD 0xE136 +0xF8BE 0xE137 +0xF8BF 0xE138 +0xF8C0 0xE139 +0xF8C1 0xE13A +0xF8C2 0xE13B +0xF8C3 0xE13C +0xF8C4 0xE13D +0xF8C5 0xE13E +0xF8C6 0xE13F +0xF8C7 0xE140 +0xF8C8 0xE141 +0xF8C9 0xE142 +0xF8CA 0xE143 +0xF8CB 0xE144 +0xF8CC 0xE145 +0xF8CD 0xE146 +0xF8CE 0xE147 +0xF8CF 0xE148 +0xF8D0 0xE149 +0xF8D1 0xE14A +0xF8D2 0xE14B +0xF8D3 0xE14C +0xF8D4 0xE14D +0xF8D5 0xE14E +0xF8D6 0xE14F +0xF8D7 0xE150 +0xF8D8 0xE151 +0xF8D9 0xE152 +0xF8DA 0xE153 +0xF8DB 0xE154 +0xF8DC 0xE155 +0xF8DD 0xE156 +0xF8DE 0xE157 +0xF8DF 0xE158 +0xF8E0 0xE159 +0xF8E1 0xE15A +0xF8E2 0xE15B +0xF8E3 0xE15C +0xF8E4 0xE15D +0xF8E5 0xE15E +0xF8E6 0xE15F +0xF8E7 0xE160 +0xF8E8 0xE161 +0xF8E9 0xE162 +0xF8EA 0xE163 +0xF8EB 0xE164 +0xF8EC 0xE165 +0xF8ED 0xE166 +0xF8EE 0xE167 +0xF8EF 0xE168 +0xF8F0 0xE169 +0xF8F1 0xE16A +0xF8F2 0xE16B +0xF8F3 0xE16C +0xF8F4 0xE16D +0xF8F5 0xE16E +0xF8F6 0xE16F +0xF8F7 0xE170 +0xF8F8 0xE171 +0xF8F9 0xE172 +0xF8FA 0xE173 +0xF8FB 0xE174 +0xF8FC 0xE175 +0xF8FD 0xE176 +0xF8FE 0xE177 +0xF9A1 0xE178 +0xF9A2 0xE179 +0xF9A3 0xE17A +0xF9A4 0xE17B +0xF9A5 0xE17C +0xF9A6 0xE17D +0xF9A7 0xE17E +0xF9A8 0xE17F +0xF9A9 0xE180 +0xF9AA 0xE181 +0xF9AB 0xE182 +0xF9AC 0xE183 +0xF9AD 0xE184 +0xF9AE 0xE185 +0xF9AF 0xE186 +0xF9B0 0xE187 +0xF9B1 0xE188 +0xF9B2 0xE189 +0xF9B3 0xE18A +0xF9B4 0xE18B +0xF9B5 0xE18C +0xF9B6 0xE18D +0xF9B7 0xE18E +0xF9B8 0xE18F +0xF9B9 0xE190 +0xF9BA 0xE191 +0xF9BB 0xE192 +0xF9BC 0xE193 +0xF9BD 0xE194 +0xF9BE 0xE195 +0xF9BF 0xE196 +0xF9C0 0xE197 +0xF9C1 0xE198 +0xF9C2 0xE199 +0xF9C3 0xE19A +0xF9C4 0xE19B +0xF9C5 0xE19C +0xF9C6 0xE19D +0xF9C7 0xE19E +0xF9C8 0xE19F +0xF9C9 0xE1A0 +0xF9CA 0xE1A1 +0xF9CB 0xE1A2 +0xF9CC 0xE1A3 +0xF9CD 0xE1A4 +0xF9CE 0xE1A5 +0xF9CF 0xE1A6 +0xF9D0 0xE1A7 +0xF9D1 0xE1A8 +0xF9D2 0xE1A9 +0xF9D3 0xE1AA +0xF9D4 0xE1AB +0xF9D5 0xE1AC +0xF9D6 0xE1AD +0xF9D7 0xE1AE +0xF9D8 0xE1AF +0xF9D9 0xE1B0 +0xF9DA 0xE1B1 +0xF9DB 0xE1B2 +0xF9DC 0xE1B3 +0xF9DD 0xE1B4 +0xF9DE 0xE1B5 +0xF9DF 0xE1B6 +0xF9E0 0xE1B7 +0xF9E1 0xE1B8 +0xF9E2 0xE1B9 +0xF9E3 0xE1BA +0xF9E4 0xE1BB +0xF9E5 0xE1BC +0xF9E6 0xE1BD +0xF9E7 0xE1BE +0xF9E8 0xE1BF +0xF9E9 0xE1C0 +0xF9EA 0xE1C1 +0xF9EB 0xE1C2 +0xF9EC 0xE1C3 +0xF9ED 0xE1C4 +0xF9EE 0xE1C5 +0xF9EF 0xE1C6 +0xF9F0 0xE1C7 +0xF9F1 0xE1C8 +0xF9F2 0xE1C9 +0xF9F3 0xE1CA +0xF9F4 0xE1CB +0xF9F5 0xE1CC +0xF9F6 0xE1CD +0xF9F7 0xE1CE +0xF9F8 0xE1CF +0xF9F9 0xE1D0 +0xF9FA 0xE1D1 +0xF9FB 0xE1D2 +0xF9FC 0xE1D3 +0xF9FD 0xE1D4 +0xF9FE 0xE1D5 +0xFAA1 0xE1D6 +0xFAA2 0xE1D7 +0xFAA3 0xE1D8 +0xFAA4 0xE1D9 +0xFAA5 0xE1DA +0xFAA6 0xE1DB +0xFAA7 0xE1DC +0xFAA8 0xE1DD +0xFAA9 0xE1DE +0xFAAA 0xE1DF +0xFAAB 0xE1E0 +0xFAAC 0xE1E1 +0xFAAD 0xE1E2 +0xFAAE 0xE1E3 +0xFAAF 0xE1E4 +0xFAB0 0xE1E5 +0xFAB1 0xE1E6 +0xFAB2 0xE1E7 +0xFAB3 0xE1E8 +0xFAB4 0xE1E9 +0xFAB5 0xE1EA +0xFAB6 0xE1EB +0xFAB7 0xE1EC +0xFAB8 0xE1ED +0xFAB9 0xE1EE +0xFABA 0xE1EF +0xFABB 0xE1F0 +0xFABC 0xE1F1 +0xFABD 0xE1F2 +0xFABE 0xE1F3 +0xFABF 0xE1F4 +0xFAC0 0xE1F5 +0xFAC1 0xE1F6 +0xFAC2 0xE1F7 +0xFAC3 0xE1F8 +0xFAC4 0xE1F9 +0xFAC5 0xE1FA +0xFAC6 0xE1FB +0xFAC7 0xE1FC +0xFAC8 0xE1FD +0xFAC9 0xE1FE +0xFACA 0xE1FF +0xFACB 0xE200 +0xFACC 0xE201 +0xFACD 0xE202 +0xFACE 0xE203 +0xFACF 0xE204 +0xFAD0 0xE205 +0xFAD1 0xE206 +0xFAD2 0xE207 +0xFAD3 0xE208 +0xFAD4 0xE209 +0xFAD5 0xE20A +0xFAD6 0xE20B +0xFAD7 0xE20C +0xFAD8 0xE20D +0xFAD9 0xE20E +0xFADA 0xE20F +0xFADB 0xE210 +0xFADC 0xE211 +0xFADD 0xE212 +0xFADE 0xE213 +0xFADF 0xE214 +0xFAE0 0xE215 +0xFAE1 0xE216 +0xFAE2 0xE217 +0xFAE3 0xE218 +0xFAE4 0xE219 +0xFAE5 0xE21A +0xFAE6 0xE21B +0xFAE7 0xE21C +0xFAE8 0xE21D +0xFAE9 0xE21E +0xFAEA 0xE21F +0xFAEB 0xE220 +0xFAEC 0xE221 +0xFAED 0xE222 +0xFAEE 0xE223 +0xFAEF 0xE224 +0xFAF0 0xE225 +0xFAF1 0xE226 +0xFAF2 0xE227 +0xFAF3 0xE228 +0xFAF4 0xE229 +0xFAF5 0xE22A +0xFAF6 0xE22B +0xFAF7 0xE22C +0xFAF8 0xE22D +0xFAF9 0xE22E +0xFAFA 0xE22F +0xFAFB 0xE230 +0xFAFC 0xE231 +0xFAFD 0xE232 +0xFAFE 0xE233 +0xFBA1 0xE234 +0xFBA2 0xE235 +0xFBA3 0xE236 +0xFBA4 0xE237 +0xFBA5 0xE238 +0xFBA6 0xE239 +0xFBA7 0xE23A +0xFBA8 0xE23B +0xFBA9 0xE23C +0xFBAA 0xE23D +0xFBAB 0xE23E +0xFBAC 0xE23F +0xFBAD 0xE240 +0xFBAE 0xE241 +0xFBAF 0xE242 +0xFBB0 0xE243 +0xFBB1 0xE244 +0xFBB2 0xE245 +0xFBB3 0xE246 +0xFBB4 0xE247 +0xFBB5 0xE248 +0xFBB6 0xE249 +0xFBB7 0xE24A +0xFBB8 0xE24B +0xFBB9 0xE24C +0xFBBA 0xE24D +0xFBBB 0xE24E +0xFBBC 0xE24F +0xFBBD 0xE250 +0xFBBE 0xE251 +0xFBBF 0xE252 +0xFBC0 0xE253 +0xFBC1 0xE254 +0xFBC2 0xE255 +0xFBC3 0xE256 +0xFBC4 0xE257 +0xFBC5 0xE258 +0xFBC6 0xE259 +0xFBC7 0xE25A +0xFBC8 0xE25B +0xFBC9 0xE25C +0xFBCA 0xE25D +0xFBCB 0xE25E +0xFBCC 0xE25F +0xFBCD 0xE260 +0xFBCE 0xE261 +0xFBCF 0xE262 +0xFBD0 0xE263 +0xFBD1 0xE264 +0xFBD2 0xE265 +0xFBD3 0xE266 +0xFBD4 0xE267 +0xFBD5 0xE268 +0xFBD6 0xE269 +0xFBD7 0xE26A +0xFBD8 0xE26B +0xFBD9 0xE26C +0xFBDA 0xE26D +0xFBDB 0xE26E +0xFBDC 0xE26F +0xFBDD 0xE270 +0xFBDE 0xE271 +0xFBDF 0xE272 +0xFBE0 0xE273 +0xFBE1 0xE274 +0xFBE2 0xE275 +0xFBE3 0xE276 +0xFBE4 0xE277 +0xFBE5 0xE278 +0xFBE6 0xE279 +0xFBE7 0xE27A +0xFBE8 0xE27B +0xFBE9 0xE27C +0xFBEA 0xE27D +0xFBEB 0xE27E +0xFBEC 0xE27F +0xFBED 0xE280 +0xFBEE 0xE281 +0xFBEF 0xE282 +0xFBF0 0xE283 +0xFBF1 0xE284 +0xFBF2 0xE285 +0xFBF3 0xE286 +0xFBF4 0xE287 +0xFBF5 0xE288 +0xFBF6 0xE289 +0xFBF7 0xE28A +0xFBF8 0xE28B +0xFBF9 0xE28C +0xFBFA 0xE28D +0xFBFB 0xE28E +0xFBFC 0xE28F +0xFBFD 0xE290 +0xFBFE 0xE291 +0xFCA1 0xE292 +0xFCA2 0xE293 +0xFCA3 0xE294 +0xFCA4 0xE295 +0xFCA5 0xE296 +0xFCA6 0xE297 +0xFCA7 0xE298 +0xFCA8 0xE299 +0xFCA9 0xE29A +0xFCAA 0xE29B +0xFCAB 0xE29C +0xFCAC 0xE29D +0xFCAD 0xE29E +0xFCAE 0xE29F +0xFCAF 0xE2A0 +0xFCB0 0xE2A1 +0xFCB1 0xE2A2 +0xFCB2 0xE2A3 +0xFCB3 0xE2A4 +0xFCB4 0xE2A5 +0xFCB5 0xE2A6 +0xFCB6 0xE2A7 +0xFCB7 0xE2A8 +0xFCB8 0xE2A9 +0xFCB9 0xE2AA +0xFCBA 0xE2AB +0xFCBB 0xE2AC +0xFCBC 0xE2AD +0xFCBD 0xE2AE +0xFCBE 0xE2AF +0xFCBF 0xE2B0 +0xFCC0 0xE2B1 +0xFCC1 0xE2B2 +0xFCC2 0xE2B3 +0xFCC3 0xE2B4 +0xFCC4 0xE2B5 +0xFCC5 0xE2B6 +0xFCC6 0xE2B7 +0xFCC7 0xE2B8 +0xFCC8 0xE2B9 +0xFCC9 0xE2BA +0xFCCA 0xE2BB +0xFCCB 0xE2BC +0xFCCC 0xE2BD +0xFCCD 0xE2BE +0xFCCE 0xE2BF +0xFCCF 0xE2C0 +0xFCD0 0xE2C1 +0xFCD1 0xE2C2 +0xFCD2 0xE2C3 +0xFCD3 0xE2C4 +0xFCD4 0xE2C5 +0xFCD5 0xE2C6 +0xFCD6 0xE2C7 +0xFCD7 0xE2C8 +0xFCD8 0xE2C9 +0xFCD9 0xE2CA +0xFCDA 0xE2CB +0xFCDB 0xE2CC +0xFCDC 0xE2CD +0xFCDD 0xE2CE +0xFCDE 0xE2CF +0xFCDF 0xE2D0 +0xFCE0 0xE2D1 +0xFCE1 0xE2D2 +0xFCE2 0xE2D3 +0xFCE3 0xE2D4 +0xFCE4 0xE2D5 +0xFCE5 0xE2D6 +0xFCE6 0xE2D7 +0xFCE7 0xE2D8 +0xFCE8 0xE2D9 +0xFCE9 0xE2DA +0xFCEA 0xE2DB +0xFCEB 0xE2DC +0xFCEC 0xE2DD +0xFCED 0xE2DE +0xFCEE 0xE2DF +0xFCEF 0xE2E0 +0xFCF0 0xE2E1 +0xFCF1 0xE2E2 +0xFCF2 0xE2E3 +0xFCF3 0xE2E4 +0xFCF4 0xE2E5 +0xFCF5 0xE2E6 +0xFCF6 0xE2E7 +0xFCF7 0xE2E8 +0xFCF8 0xE2E9 +0xFCF9 0xE2EA +0xFCFA 0xE2EB +0xFCFB 0xE2EC +0xFCFC 0xE2ED +0xFCFD 0xE2EE +0xFCFE 0xE2EF +0xFDA1 0xE2F0 +0xFDA2 0xE2F1 +0xFDA3 0xE2F2 +0xFDA4 0xE2F3 +0xFDA5 0xE2F4 +0xFDA6 0xE2F5 +0xFDA7 0xE2F6 +0xFDA8 0xE2F7 +0xFDA9 0xE2F8 +0xFDAA 0xE2F9 +0xFDAB 0xE2FA +0xFDAC 0xE2FB +0xFDAD 0xE2FC +0xFDAE 0xE2FD +0xFDAF 0xE2FE +0xFDB0 0xE2FF +0xFDB1 0xE300 +0xFDB2 0xE301 +0xFDB3 0xE302 +0xFDB4 0xE303 +0xFDB5 0xE304 +0xFDB6 0xE305 +0xFDB7 0xE306 +0xFDB8 0xE307 +0xFDB9 0xE308 +0xFDBA 0xE309 +0xFDBB 0xE30A +0xFDBC 0xE30B +0xFDBD 0xE30C +0xFDBE 0xE30D +0xFDBF 0xE30E +0xFDC0 0xE30F +0xFDC1 0xE310 +0xFDC2 0xE311 +0xFDC3 0xE312 +0xFDC4 0xE313 +0xFDC5 0xE314 +0xFDC6 0xE315 +0xFDC7 0xE316 +0xFDC8 0xE317 +0xFDC9 0xE318 +0xFDCA 0xE319 +0xFDCB 0xE31A +0xFDCC 0xE31B +0xFDCD 0xE31C +0xFDCE 0xE31D +0xFDCF 0xE31E +0xFDD0 0xE31F +0xFDD1 0xE320 +0xFDD2 0xE321 +0xFDD3 0xE322 +0xFDD4 0xE323 +0xFDD5 0xE324 +0xFDD6 0xE325 +0xFDD7 0xE326 +0xFDD8 0xE327 +0xFDD9 0xE328 +0xFDDA 0xE329 +0xFDDB 0xE32A +0xFDDC 0xE32B +0xFDDD 0xE32C +0xFDDE 0xE32D +0xFDDF 0xE32E +0xFDE0 0xE32F +0xFDE1 0xE330 +0xFDE2 0xE331 +0xFDE3 0xE332 +0xFDE4 0xE333 +0xFDE5 0xE334 +0xFDE6 0xE335 +0xFDE7 0xE336 +0xFDE8 0xE337 +0xFDE9 0xE338 +0xFDEA 0xE339 +0xFDEB 0xE33A +0xFDEC 0xE33B +0xFDED 0xE33C +0xFDEE 0xE33D +0xFDEF 0xE33E +0xFDF0 0xE33F +0xFDF1 0xE340 +0xFDF2 0xE341 +0xFDF3 0xE342 +0xFDF4 0xE343 +0xFDF5 0xE344 +0xFDF6 0xE345 +0xFDF7 0xE346 +0xFDF8 0xE347 +0xFDF9 0xE348 +0xFDFA 0xE349 +0xFDFB 0xE34A +0xFDFC 0xE34B +0xFDFD 0xE34C +0xFDFE 0xE34D +0xFEA1 0xE34E +0xFEA2 0xE34F +0xFEA3 0xE350 +0xFEA4 0xE351 +0xFEA5 0xE352 +0xFEA6 0xE353 +0xFEA7 0xE354 +0xFEA8 0xE355 +0xFEA9 0xE356 +0xFEAA 0xE357 +0xFEAB 0xE358 +0xFEAC 0xE359 +0xFEAD 0xE35A +0xFEAE 0xE35B +0xFEAF 0xE35C +0xFEB0 0xE35D +0xFEB1 0xE35E +0xFEB2 0xE35F +0xFEB3 0xE360 +0xFEB4 0xE361 +0xFEB5 0xE362 +0xFEB6 0xE363 +0xFEB7 0xE364 +0xFEB8 0xE365 +0xFEB9 0xE366 +0xFEBA 0xE367 +0xFEBB 0xE368 +0xFEBC 0xE369 +0xFEBD 0xE36A +0xFEBE 0xE36B +0xFEBF 0xE36C +0xFEC0 0xE36D +0xFEC1 0xE36E +0xFEC2 0xE36F +0xFEC3 0xE370 +0xFEC4 0xE371 +0xFEC5 0xE372 +0xFEC6 0xE373 +0xFEC7 0xE374 +0xFEC8 0xE375 +0xFEC9 0xE376 +0xFECA 0xE377 +0xFECB 0xE378 +0xFECC 0xE379 +0xFECD 0xE37A +0xFECE 0xE37B +0xFECF 0xE37C +0xFED0 0xE37D +0xFED1 0xE37E +0xFED2 0xE37F +0xFED3 0xE380 +0xFED4 0xE381 +0xFED5 0xE382 +0xFED6 0xE383 +0xFED7 0xE384 +0xFED8 0xE385 +0xFED9 0xE386 +0xFEDA 0xE387 +0xFEDB 0xE388 +0xFEDC 0xE389 +0xFEDD 0xE38A +0xFEDE 0xE38B +0xFEDF 0xE38C +0xFEE0 0xE38D +0xFEE1 0xE38E +0xFEE2 0xE38F +0xFEE3 0xE390 +0xFEE4 0xE391 +0xFEE5 0xE392 +0xFEE6 0xE393 +0xFEE7 0xE394 +0xFEE8 0xE395 +0xFEE9 0xE396 +0xFEEA 0xE397 +0xFEEB 0xE398 +0xFEEC 0xE399 +0xFEED 0xE39A +0xFEEE 0xE39B +0xFEEF 0xE39C +0xFEF0 0xE39D +0xFEF1 0xE39E +0xFEF2 0xE39F +0xFEF3 0xE3A0 +0xFEF4 0xE3A1 +0xFEF5 0xE3A2 +0xFEF6 0xE3A3 +0xFEF7 0xE3A4 +0xFEF8 0xE3A5 +0xFEF9 0xE3A6 +0xFEFA 0xE3A7 +0xFEFB 0xE3A8 +0xFEFC 0xE3A9 +0xFEFD 0xE3AA +0xFEFE 0xE3AB diff --git a/3rdPartner/libiconv/tests/EUC-KR.TXT b/3rdPartner/libiconv/tests/EUC-KR.TXT new file mode 100644 index 0000000..5c68458 --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-KR.TXT @@ -0,0 +1,8355 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x00B7 +0xA1A5 0x2025 +0xA1A6 0x2026 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x00AD +0xA1AA 0x2015 +0xA1AB 0x2225 +0xA1AC 0xFF3C +0xA1AD 0x223C +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3010 +0xA1BD 0x3011 +0xA1BE 0x00B1 +0xA1BF 0x00D7 +0xA1C0 0x00F7 +0xA1C1 0x2260 +0xA1C2 0x2264 +0xA1C3 0x2265 +0xA1C4 0x221E +0xA1C5 0x2234 +0xA1C6 0x00B0 +0xA1C7 0x2032 +0xA1C8 0x2033 +0xA1C9 0x2103 +0xA1CA 0x212B +0xA1CB 0xFFE0 +0xA1CC 0xFFE1 +0xA1CD 0xFFE5 +0xA1CE 0x2642 +0xA1CF 0x2640 +0xA1D0 0x2220 +0xA1D1 0x22A5 +0xA1D2 0x2312 +0xA1D3 0x2202 +0xA1D4 0x2207 +0xA1D5 0x2261 +0xA1D6 0x2252 +0xA1D7 0x00A7 +0xA1D8 0x203B +0xA1D9 0x2606 +0xA1DA 0x2605 +0xA1DB 0x25CB +0xA1DC 0x25CF +0xA1DD 0x25CE +0xA1DE 0x25C7 +0xA1DF 0x25C6 +0xA1E0 0x25A1 +0xA1E1 0x25A0 +0xA1E2 0x25B3 +0xA1E3 0x25B2 +0xA1E4 0x25BD +0xA1E5 0x25BC +0xA1E6 0x2192 +0xA1E7 0x2190 +0xA1E8 0x2191 +0xA1E9 0x2193 +0xA1EA 0x2194 +0xA1EB 0x3013 +0xA1EC 0x226A +0xA1ED 0x226B +0xA1EE 0x221A +0xA1EF 0x223D +0xA1F0 0x221D +0xA1F1 0x2235 +0xA1F2 0x222B +0xA1F3 0x222C +0xA1F4 0x2208 +0xA1F5 0x220B +0xA1F6 0x2286 +0xA1F7 0x2287 +0xA1F8 0x2282 +0xA1F9 0x2283 +0xA1FA 0x222A +0xA1FB 0x2229 +0xA1FC 0x2227 +0xA1FD 0x2228 +0xA1FE 0xFFE2 +0xA2A1 0x21D2 +0xA2A2 0x21D4 +0xA2A3 0x2200 +0xA2A4 0x2203 +0xA2A5 0x00B4 +0xA2A6 0xFF5E +0xA2A7 0x02C7 +0xA2A8 0x02D8 +0xA2A9 0x02DD +0xA2AA 0x02DA +0xA2AB 0x02D9 +0xA2AC 0x00B8 +0xA2AD 0x02DB +0xA2AE 0x00A1 +0xA2AF 0x00BF +0xA2B0 0x02D0 +0xA2B1 0x222E +0xA2B2 0x2211 +0xA2B3 0x220F +0xA2B4 0x00A4 +0xA2B5 0x2109 +0xA2B6 0x2030 +0xA2B7 0x25C1 +0xA2B8 0x25C0 +0xA2B9 0x25B7 +0xA2BA 0x25B6 +0xA2BB 0x2664 +0xA2BC 0x2660 +0xA2BD 0x2661 +0xA2BE 0x2665 +0xA2BF 0x2667 +0xA2C0 0x2663 +0xA2C1 0x2299 +0xA2C2 0x25C8 +0xA2C3 0x25A3 +0xA2C4 0x25D0 +0xA2C5 0x25D1 +0xA2C6 0x2592 +0xA2C7 0x25A4 +0xA2C8 0x25A5 +0xA2C9 0x25A8 +0xA2CA 0x25A7 +0xA2CB 0x25A6 +0xA2CC 0x25A9 +0xA2CD 0x2668 +0xA2CE 0x260F +0xA2CF 0x260E +0xA2D0 0x261C +0xA2D1 0x261E +0xA2D2 0x00B6 +0xA2D3 0x2020 +0xA2D4 0x2021 +0xA2D5 0x2195 +0xA2D6 0x2197 +0xA2D7 0x2199 +0xA2D8 0x2196 +0xA2D9 0x2198 +0xA2DA 0x266D +0xA2DB 0x2669 +0xA2DC 0x266A +0xA2DD 0x266C +0xA2DE 0x327F +0xA2DF 0x321C +0xA2E0 0x2116 +0xA2E1 0x33C7 +0xA2E2 0x2122 +0xA2E3 0x33C2 +0xA2E4 0x33D8 +0xA2E5 0x2121 +0xA2E6 0x20AC +0xA2E7 0x00AE +0xA2E8 0x327E +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFF04 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFFE6 +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA4A1 0x3131 +0xA4A2 0x3132 +0xA4A3 0x3133 +0xA4A4 0x3134 +0xA4A5 0x3135 +0xA4A6 0x3136 +0xA4A7 0x3137 +0xA4A8 0x3138 +0xA4A9 0x3139 +0xA4AA 0x313A +0xA4AB 0x313B +0xA4AC 0x313C +0xA4AD 0x313D +0xA4AE 0x313E +0xA4AF 0x313F +0xA4B0 0x3140 +0xA4B1 0x3141 +0xA4B2 0x3142 +0xA4B3 0x3143 +0xA4B4 0x3144 +0xA4B5 0x3145 +0xA4B6 0x3146 +0xA4B7 0x3147 +0xA4B8 0x3148 +0xA4B9 0x3149 +0xA4BA 0x314A +0xA4BB 0x314B +0xA4BC 0x314C +0xA4BD 0x314D +0xA4BE 0x314E +0xA4BF 0x314F +0xA4C0 0x3150 +0xA4C1 0x3151 +0xA4C2 0x3152 +0xA4C3 0x3153 +0xA4C4 0x3154 +0xA4C5 0x3155 +0xA4C6 0x3156 +0xA4C7 0x3157 +0xA4C8 0x3158 +0xA4C9 0x3159 +0xA4CA 0x315A +0xA4CB 0x315B +0xA4CC 0x315C +0xA4CD 0x315D +0xA4CE 0x315E +0xA4CF 0x315F +0xA4D0 0x3160 +0xA4D1 0x3161 +0xA4D2 0x3162 +0xA4D3 0x3163 +0xA4D4 0x3164 +0xA4D5 0x3165 +0xA4D6 0x3166 +0xA4D7 0x3167 +0xA4D8 0x3168 +0xA4D9 0x3169 +0xA4DA 0x316A +0xA4DB 0x316B +0xA4DC 0x316C +0xA4DD 0x316D +0xA4DE 0x316E +0xA4DF 0x316F +0xA4E0 0x3170 +0xA4E1 0x3171 +0xA4E2 0x3172 +0xA4E3 0x3173 +0xA4E4 0x3174 +0xA4E5 0x3175 +0xA4E6 0x3176 +0xA4E7 0x3177 +0xA4E8 0x3178 +0xA4E9 0x3179 +0xA4EA 0x317A +0xA4EB 0x317B +0xA4EC 0x317C +0xA4ED 0x317D +0xA4EE 0x317E +0xA4EF 0x317F +0xA4F0 0x3180 +0xA4F1 0x3181 +0xA4F2 0x3182 +0xA4F3 0x3183 +0xA4F4 0x3184 +0xA4F5 0x3185 +0xA4F6 0x3186 +0xA4F7 0x3187 +0xA4F8 0x3188 +0xA4F9 0x3189 +0xA4FA 0x318A +0xA4FB 0x318B +0xA4FC 0x318C +0xA4FD 0x318D +0xA4FE 0x318E +0xA5A1 0x2170 +0xA5A2 0x2171 +0xA5A3 0x2172 +0xA5A4 0x2173 +0xA5A5 0x2174 +0xA5A6 0x2175 +0xA5A7 0x2176 +0xA5A8 0x2177 +0xA5A9 0x2178 +0xA5AA 0x2179 +0xA5B0 0x2160 +0xA5B1 0x2161 +0xA5B2 0x2162 +0xA5B3 0x2163 +0xA5B4 0x2164 +0xA5B5 0x2165 +0xA5B6 0x2166 +0xA5B7 0x2167 +0xA5B8 0x2168 +0xA5B9 0x2169 +0xA5C1 0x0391 +0xA5C2 0x0392 +0xA5C3 0x0393 +0xA5C4 0x0394 +0xA5C5 0x0395 +0xA5C6 0x0396 +0xA5C7 0x0397 +0xA5C8 0x0398 +0xA5C9 0x0399 +0xA5CA 0x039A +0xA5CB 0x039B +0xA5CC 0x039C +0xA5CD 0x039D +0xA5CE 0x039E +0xA5CF 0x039F +0xA5D0 0x03A0 +0xA5D1 0x03A1 +0xA5D2 0x03A3 +0xA5D3 0x03A4 +0xA5D4 0x03A5 +0xA5D5 0x03A6 +0xA5D6 0x03A7 +0xA5D7 0x03A8 +0xA5D8 0x03A9 +0xA5E1 0x03B1 +0xA5E2 0x03B2 +0xA5E3 0x03B3 +0xA5E4 0x03B4 +0xA5E5 0x03B5 +0xA5E6 0x03B6 +0xA5E7 0x03B7 +0xA5E8 0x03B8 +0xA5E9 0x03B9 +0xA5EA 0x03BA +0xA5EB 0x03BB +0xA5EC 0x03BC +0xA5ED 0x03BD +0xA5EE 0x03BE +0xA5EF 0x03BF +0xA5F0 0x03C0 +0xA5F1 0x03C1 +0xA5F2 0x03C3 +0xA5F3 0x03C4 +0xA5F4 0x03C5 +0xA5F5 0x03C6 +0xA5F6 0x03C7 +0xA5F7 0x03C8 +0xA5F8 0x03C9 +0xA6A1 0x2500 +0xA6A2 0x2502 +0xA6A3 0x250C +0xA6A4 0x2510 +0xA6A5 0x2518 +0xA6A6 0x2514 +0xA6A7 0x251C +0xA6A8 0x252C +0xA6A9 0x2524 +0xA6AA 0x2534 +0xA6AB 0x253C +0xA6AC 0x2501 +0xA6AD 0x2503 +0xA6AE 0x250F +0xA6AF 0x2513 +0xA6B0 0x251B +0xA6B1 0x2517 +0xA6B2 0x2523 +0xA6B3 0x2533 +0xA6B4 0x252B +0xA6B5 0x253B +0xA6B6 0x254B +0xA6B7 0x2520 +0xA6B8 0x252F +0xA6B9 0x2528 +0xA6BA 0x2537 +0xA6BB 0x253F +0xA6BC 0x251D +0xA6BD 0x2530 +0xA6BE 0x2525 +0xA6BF 0x2538 +0xA6C0 0x2542 +0xA6C1 0x2512 +0xA6C2 0x2511 +0xA6C3 0x251A +0xA6C4 0x2519 +0xA6C5 0x2516 +0xA6C6 0x2515 +0xA6C7 0x250E +0xA6C8 0x250D +0xA6C9 0x251E +0xA6CA 0x251F +0xA6CB 0x2521 +0xA6CC 0x2522 +0xA6CD 0x2526 +0xA6CE 0x2527 +0xA6CF 0x2529 +0xA6D0 0x252A +0xA6D1 0x252D +0xA6D2 0x252E +0xA6D3 0x2531 +0xA6D4 0x2532 +0xA6D5 0x2535 +0xA6D6 0x2536 +0xA6D7 0x2539 +0xA6D8 0x253A +0xA6D9 0x253D +0xA6DA 0x253E +0xA6DB 0x2540 +0xA6DC 0x2541 +0xA6DD 0x2543 +0xA6DE 0x2544 +0xA6DF 0x2545 +0xA6E0 0x2546 +0xA6E1 0x2547 +0xA6E2 0x2548 +0xA6E3 0x2549 +0xA6E4 0x254A +0xA7A1 0x3395 +0xA7A2 0x3396 +0xA7A3 0x3397 +0xA7A4 0x2113 +0xA7A5 0x3398 +0xA7A6 0x33C4 +0xA7A7 0x33A3 +0xA7A8 0x33A4 +0xA7A9 0x33A5 +0xA7AA 0x33A6 +0xA7AB 0x3399 +0xA7AC 0x339A +0xA7AD 0x339B +0xA7AE 0x339C +0xA7AF 0x339D +0xA7B0 0x339E +0xA7B1 0x339F +0xA7B2 0x33A0 +0xA7B3 0x33A1 +0xA7B4 0x33A2 +0xA7B5 0x33CA +0xA7B6 0x338D +0xA7B7 0x338E +0xA7B8 0x338F +0xA7B9 0x33CF +0xA7BA 0x3388 +0xA7BB 0x3389 +0xA7BC 0x33C8 +0xA7BD 0x33A7 +0xA7BE 0x33A8 +0xA7BF 0x33B0 +0xA7C0 0x33B1 +0xA7C1 0x33B2 +0xA7C2 0x33B3 +0xA7C3 0x33B4 +0xA7C4 0x33B5 +0xA7C5 0x33B6 +0xA7C6 0x33B7 +0xA7C7 0x33B8 +0xA7C8 0x33B9 +0xA7C9 0x3380 +0xA7CA 0x3381 +0xA7CB 0x3382 +0xA7CC 0x3383 +0xA7CD 0x3384 +0xA7CE 0x33BA +0xA7CF 0x33BB +0xA7D0 0x33BC +0xA7D1 0x33BD +0xA7D2 0x33BE +0xA7D3 0x33BF +0xA7D4 0x3390 +0xA7D5 0x3391 +0xA7D6 0x3392 +0xA7D7 0x3393 +0xA7D8 0x3394 +0xA7D9 0x2126 +0xA7DA 0x33C0 +0xA7DB 0x33C1 +0xA7DC 0x338A +0xA7DD 0x338B +0xA7DE 0x338C +0xA7DF 0x33D6 +0xA7E0 0x33C5 +0xA7E1 0x33AD +0xA7E2 0x33AE +0xA7E3 0x33AF +0xA7E4 0x33DB +0xA7E5 0x33A9 +0xA7E6 0x33AA +0xA7E7 0x33AB +0xA7E8 0x33AC +0xA7E9 0x33DD +0xA7EA 0x33D0 +0xA7EB 0x33D3 +0xA7EC 0x33C3 +0xA7ED 0x33C9 +0xA7EE 0x33DC +0xA7EF 0x33C6 +0xA8A1 0x00C6 +0xA8A2 0x00D0 +0xA8A3 0x00AA +0xA8A4 0x0126 +0xA8A6 0x0132 +0xA8A8 0x013F +0xA8A9 0x0141 +0xA8AA 0x00D8 +0xA8AB 0x0152 +0xA8AC 0x00BA +0xA8AD 0x00DE +0xA8AE 0x0166 +0xA8AF 0x014A +0xA8B1 0x3260 +0xA8B2 0x3261 +0xA8B3 0x3262 +0xA8B4 0x3263 +0xA8B5 0x3264 +0xA8B6 0x3265 +0xA8B7 0x3266 +0xA8B8 0x3267 +0xA8B9 0x3268 +0xA8BA 0x3269 +0xA8BB 0x326A +0xA8BC 0x326B +0xA8BD 0x326C +0xA8BE 0x326D +0xA8BF 0x326E +0xA8C0 0x326F +0xA8C1 0x3270 +0xA8C2 0x3271 +0xA8C3 0x3272 +0xA8C4 0x3273 +0xA8C5 0x3274 +0xA8C6 0x3275 +0xA8C7 0x3276 +0xA8C8 0x3277 +0xA8C9 0x3278 +0xA8CA 0x3279 +0xA8CB 0x327A +0xA8CC 0x327B +0xA8CD 0x24D0 +0xA8CE 0x24D1 +0xA8CF 0x24D2 +0xA8D0 0x24D3 +0xA8D1 0x24D4 +0xA8D2 0x24D5 +0xA8D3 0x24D6 +0xA8D4 0x24D7 +0xA8D5 0x24D8 +0xA8D6 0x24D9 +0xA8D7 0x24DA +0xA8D8 0x24DB +0xA8D9 0x24DC +0xA8DA 0x24DD +0xA8DB 0x24DE +0xA8DC 0x24DF +0xA8DD 0x24E0 +0xA8DE 0x24E1 +0xA8DF 0x24E2 +0xA8E0 0x24E3 +0xA8E1 0x24E4 +0xA8E2 0x24E5 +0xA8E3 0x24E6 +0xA8E4 0x24E7 +0xA8E5 0x24E8 +0xA8E6 0x24E9 +0xA8E7 0x2460 +0xA8E8 0x2461 +0xA8E9 0x2462 +0xA8EA 0x2463 +0xA8EB 0x2464 +0xA8EC 0x2465 +0xA8ED 0x2466 +0xA8EE 0x2467 +0xA8EF 0x2468 +0xA8F0 0x2469 +0xA8F1 0x246A +0xA8F2 0x246B +0xA8F3 0x246C +0xA8F4 0x246D +0xA8F5 0x246E +0xA8F6 0x00BD +0xA8F7 0x2153 +0xA8F8 0x2154 +0xA8F9 0x00BC +0xA8FA 0x00BE +0xA8FB 0x215B +0xA8FC 0x215C +0xA8FD 0x215D +0xA8FE 0x215E +0xA9A1 0x00E6 +0xA9A2 0x0111 +0xA9A3 0x00F0 +0xA9A4 0x0127 +0xA9A5 0x0131 +0xA9A6 0x0133 +0xA9A7 0x0138 +0xA9A8 0x0140 +0xA9A9 0x0142 +0xA9AA 0x00F8 +0xA9AB 0x0153 +0xA9AC 0x00DF +0xA9AD 0x00FE +0xA9AE 0x0167 +0xA9AF 0x014B +0xA9B0 0x0149 +0xA9B1 0x3200 +0xA9B2 0x3201 +0xA9B3 0x3202 +0xA9B4 0x3203 +0xA9B5 0x3204 +0xA9B6 0x3205 +0xA9B7 0x3206 +0xA9B8 0x3207 +0xA9B9 0x3208 +0xA9BA 0x3209 +0xA9BB 0x320A +0xA9BC 0x320B +0xA9BD 0x320C +0xA9BE 0x320D +0xA9BF 0x320E +0xA9C0 0x320F +0xA9C1 0x3210 +0xA9C2 0x3211 +0xA9C3 0x3212 +0xA9C4 0x3213 +0xA9C5 0x3214 +0xA9C6 0x3215 +0xA9C7 0x3216 +0xA9C8 0x3217 +0xA9C9 0x3218 +0xA9CA 0x3219 +0xA9CB 0x321A +0xA9CC 0x321B +0xA9CD 0x249C +0xA9CE 0x249D +0xA9CF 0x249E +0xA9D0 0x249F +0xA9D1 0x24A0 +0xA9D2 0x24A1 +0xA9D3 0x24A2 +0xA9D4 0x24A3 +0xA9D5 0x24A4 +0xA9D6 0x24A5 +0xA9D7 0x24A6 +0xA9D8 0x24A7 +0xA9D9 0x24A8 +0xA9DA 0x24A9 +0xA9DB 0x24AA +0xA9DC 0x24AB +0xA9DD 0x24AC +0xA9DE 0x24AD +0xA9DF 0x24AE +0xA9E0 0x24AF +0xA9E1 0x24B0 +0xA9E2 0x24B1 +0xA9E3 0x24B2 +0xA9E4 0x24B3 +0xA9E5 0x24B4 +0xA9E6 0x24B5 +0xA9E7 0x2474 +0xA9E8 0x2475 +0xA9E9 0x2476 +0xA9EA 0x2477 +0xA9EB 0x2478 +0xA9EC 0x2479 +0xA9ED 0x247A +0xA9EE 0x247B +0xA9EF 0x247C +0xA9F0 0x247D +0xA9F1 0x247E +0xA9F2 0x247F +0xA9F3 0x2480 +0xA9F4 0x2481 +0xA9F5 0x2482 +0xA9F6 0x00B9 +0xA9F7 0x00B2 +0xA9F8 0x00B3 +0xA9F9 0x2074 +0xA9FA 0x207F +0xA9FB 0x2081 +0xA9FC 0x2082 +0xA9FD 0x2083 +0xA9FE 0x2084 +0xAAA1 0x3041 +0xAAA2 0x3042 +0xAAA3 0x3043 +0xAAA4 0x3044 +0xAAA5 0x3045 +0xAAA6 0x3046 +0xAAA7 0x3047 +0xAAA8 0x3048 +0xAAA9 0x3049 +0xAAAA 0x304A +0xAAAB 0x304B +0xAAAC 0x304C +0xAAAD 0x304D +0xAAAE 0x304E +0xAAAF 0x304F +0xAAB0 0x3050 +0xAAB1 0x3051 +0xAAB2 0x3052 +0xAAB3 0x3053 +0xAAB4 0x3054 +0xAAB5 0x3055 +0xAAB6 0x3056 +0xAAB7 0x3057 +0xAAB8 0x3058 +0xAAB9 0x3059 +0xAABA 0x305A +0xAABB 0x305B +0xAABC 0x305C +0xAABD 0x305D +0xAABE 0x305E +0xAABF 0x305F +0xAAC0 0x3060 +0xAAC1 0x3061 +0xAAC2 0x3062 +0xAAC3 0x3063 +0xAAC4 0x3064 +0xAAC5 0x3065 +0xAAC6 0x3066 +0xAAC7 0x3067 +0xAAC8 0x3068 +0xAAC9 0x3069 +0xAACA 0x306A +0xAACB 0x306B +0xAACC 0x306C +0xAACD 0x306D +0xAACE 0x306E +0xAACF 0x306F +0xAAD0 0x3070 +0xAAD1 0x3071 +0xAAD2 0x3072 +0xAAD3 0x3073 +0xAAD4 0x3074 +0xAAD5 0x3075 +0xAAD6 0x3076 +0xAAD7 0x3077 +0xAAD8 0x3078 +0xAAD9 0x3079 +0xAADA 0x307A +0xAADB 0x307B +0xAADC 0x307C +0xAADD 0x307D +0xAADE 0x307E +0xAADF 0x307F +0xAAE0 0x3080 +0xAAE1 0x3081 +0xAAE2 0x3082 +0xAAE3 0x3083 +0xAAE4 0x3084 +0xAAE5 0x3085 +0xAAE6 0x3086 +0xAAE7 0x3087 +0xAAE8 0x3088 +0xAAE9 0x3089 +0xAAEA 0x308A +0xAAEB 0x308B +0xAAEC 0x308C +0xAAED 0x308D +0xAAEE 0x308E +0xAAEF 0x308F +0xAAF0 0x3090 +0xAAF1 0x3091 +0xAAF2 0x3092 +0xAAF3 0x3093 +0xABA1 0x30A1 +0xABA2 0x30A2 +0xABA3 0x30A3 +0xABA4 0x30A4 +0xABA5 0x30A5 +0xABA6 0x30A6 +0xABA7 0x30A7 +0xABA8 0x30A8 +0xABA9 0x30A9 +0xABAA 0x30AA +0xABAB 0x30AB +0xABAC 0x30AC +0xABAD 0x30AD +0xABAE 0x30AE +0xABAF 0x30AF +0xABB0 0x30B0 +0xABB1 0x30B1 +0xABB2 0x30B2 +0xABB3 0x30B3 +0xABB4 0x30B4 +0xABB5 0x30B5 +0xABB6 0x30B6 +0xABB7 0x30B7 +0xABB8 0x30B8 +0xABB9 0x30B9 +0xABBA 0x30BA +0xABBB 0x30BB +0xABBC 0x30BC +0xABBD 0x30BD +0xABBE 0x30BE +0xABBF 0x30BF +0xABC0 0x30C0 +0xABC1 0x30C1 +0xABC2 0x30C2 +0xABC3 0x30C3 +0xABC4 0x30C4 +0xABC5 0x30C5 +0xABC6 0x30C6 +0xABC7 0x30C7 +0xABC8 0x30C8 +0xABC9 0x30C9 +0xABCA 0x30CA +0xABCB 0x30CB +0xABCC 0x30CC +0xABCD 0x30CD +0xABCE 0x30CE +0xABCF 0x30CF +0xABD0 0x30D0 +0xABD1 0x30D1 +0xABD2 0x30D2 +0xABD3 0x30D3 +0xABD4 0x30D4 +0xABD5 0x30D5 +0xABD6 0x30D6 +0xABD7 0x30D7 +0xABD8 0x30D8 +0xABD9 0x30D9 +0xABDA 0x30DA +0xABDB 0x30DB +0xABDC 0x30DC +0xABDD 0x30DD +0xABDE 0x30DE +0xABDF 0x30DF +0xABE0 0x30E0 +0xABE1 0x30E1 +0xABE2 0x30E2 +0xABE3 0x30E3 +0xABE4 0x30E4 +0xABE5 0x30E5 +0xABE6 0x30E6 +0xABE7 0x30E7 +0xABE8 0x30E8 +0xABE9 0x30E9 +0xABEA 0x30EA +0xABEB 0x30EB +0xABEC 0x30EC +0xABED 0x30ED +0xABEE 0x30EE +0xABEF 0x30EF +0xABF0 0x30F0 +0xABF1 0x30F1 +0xABF2 0x30F2 +0xABF3 0x30F3 +0xABF4 0x30F4 +0xABF5 0x30F5 +0xABF6 0x30F6 +0xACA1 0x0410 +0xACA2 0x0411 +0xACA3 0x0412 +0xACA4 0x0413 +0xACA5 0x0414 +0xACA6 0x0415 +0xACA7 0x0401 +0xACA8 0x0416 +0xACA9 0x0417 +0xACAA 0x0418 +0xACAB 0x0419 +0xACAC 0x041A +0xACAD 0x041B +0xACAE 0x041C +0xACAF 0x041D +0xACB0 0x041E +0xACB1 0x041F +0xACB2 0x0420 +0xACB3 0x0421 +0xACB4 0x0422 +0xACB5 0x0423 +0xACB6 0x0424 +0xACB7 0x0425 +0xACB8 0x0426 +0xACB9 0x0427 +0xACBA 0x0428 +0xACBB 0x0429 +0xACBC 0x042A +0xACBD 0x042B +0xACBE 0x042C +0xACBF 0x042D +0xACC0 0x042E +0xACC1 0x042F +0xACD1 0x0430 +0xACD2 0x0431 +0xACD3 0x0432 +0xACD4 0x0433 +0xACD5 0x0434 +0xACD6 0x0435 +0xACD7 0x0451 +0xACD8 0x0436 +0xACD9 0x0437 +0xACDA 0x0438 +0xACDB 0x0439 +0xACDC 0x043A +0xACDD 0x043B +0xACDE 0x043C +0xACDF 0x043D +0xACE0 0x043E +0xACE1 0x043F +0xACE2 0x0440 +0xACE3 0x0441 +0xACE4 0x0442 +0xACE5 0x0443 +0xACE6 0x0444 +0xACE7 0x0445 +0xACE8 0x0446 +0xACE9 0x0447 +0xACEA 0x0448 +0xACEB 0x0449 +0xACEC 0x044A +0xACED 0x044B +0xACEE 0x044C +0xACEF 0x044D +0xACF0 0x044E +0xACF1 0x044F +0xB0A1 0xAC00 +0xB0A2 0xAC01 +0xB0A3 0xAC04 +0xB0A4 0xAC07 +0xB0A5 0xAC08 +0xB0A6 0xAC09 +0xB0A7 0xAC0A +0xB0A8 0xAC10 +0xB0A9 0xAC11 +0xB0AA 0xAC12 +0xB0AB 0xAC13 +0xB0AC 0xAC14 +0xB0AD 0xAC15 +0xB0AE 0xAC16 +0xB0AF 0xAC17 +0xB0B0 0xAC19 +0xB0B1 0xAC1A +0xB0B2 0xAC1B +0xB0B3 0xAC1C +0xB0B4 0xAC1D +0xB0B5 0xAC20 +0xB0B6 0xAC24 +0xB0B7 0xAC2C +0xB0B8 0xAC2D +0xB0B9 0xAC2F +0xB0BA 0xAC30 +0xB0BB 0xAC31 +0xB0BC 0xAC38 +0xB0BD 0xAC39 +0xB0BE 0xAC3C +0xB0BF 0xAC40 +0xB0C0 0xAC4B +0xB0C1 0xAC4D +0xB0C2 0xAC54 +0xB0C3 0xAC58 +0xB0C4 0xAC5C +0xB0C5 0xAC70 +0xB0C6 0xAC71 +0xB0C7 0xAC74 +0xB0C8 0xAC77 +0xB0C9 0xAC78 +0xB0CA 0xAC7A +0xB0CB 0xAC80 +0xB0CC 0xAC81 +0xB0CD 0xAC83 +0xB0CE 0xAC84 +0xB0CF 0xAC85 +0xB0D0 0xAC86 +0xB0D1 0xAC89 +0xB0D2 0xAC8A +0xB0D3 0xAC8B +0xB0D4 0xAC8C +0xB0D5 0xAC90 +0xB0D6 0xAC94 +0xB0D7 0xAC9C +0xB0D8 0xAC9D +0xB0D9 0xAC9F +0xB0DA 0xACA0 +0xB0DB 0xACA1 +0xB0DC 0xACA8 +0xB0DD 0xACA9 +0xB0DE 0xACAA +0xB0DF 0xACAC +0xB0E0 0xACAF +0xB0E1 0xACB0 +0xB0E2 0xACB8 +0xB0E3 0xACB9 +0xB0E4 0xACBB +0xB0E5 0xACBC +0xB0E6 0xACBD +0xB0E7 0xACC1 +0xB0E8 0xACC4 +0xB0E9 0xACC8 +0xB0EA 0xACCC +0xB0EB 0xACD5 +0xB0EC 0xACD7 +0xB0ED 0xACE0 +0xB0EE 0xACE1 +0xB0EF 0xACE4 +0xB0F0 0xACE7 +0xB0F1 0xACE8 +0xB0F2 0xACEA +0xB0F3 0xACEC +0xB0F4 0xACEF +0xB0F5 0xACF0 +0xB0F6 0xACF1 +0xB0F7 0xACF3 +0xB0F8 0xACF5 +0xB0F9 0xACF6 +0xB0FA 0xACFC +0xB0FB 0xACFD +0xB0FC 0xAD00 +0xB0FD 0xAD04 +0xB0FE 0xAD06 +0xB1A1 0xAD0C +0xB1A2 0xAD0D +0xB1A3 0xAD0F +0xB1A4 0xAD11 +0xB1A5 0xAD18 +0xB1A6 0xAD1C +0xB1A7 0xAD20 +0xB1A8 0xAD29 +0xB1A9 0xAD2C +0xB1AA 0xAD2D +0xB1AB 0xAD34 +0xB1AC 0xAD35 +0xB1AD 0xAD38 +0xB1AE 0xAD3C +0xB1AF 0xAD44 +0xB1B0 0xAD45 +0xB1B1 0xAD47 +0xB1B2 0xAD49 +0xB1B3 0xAD50 +0xB1B4 0xAD54 +0xB1B5 0xAD58 +0xB1B6 0xAD61 +0xB1B7 0xAD63 +0xB1B8 0xAD6C +0xB1B9 0xAD6D +0xB1BA 0xAD70 +0xB1BB 0xAD73 +0xB1BC 0xAD74 +0xB1BD 0xAD75 +0xB1BE 0xAD76 +0xB1BF 0xAD7B +0xB1C0 0xAD7C +0xB1C1 0xAD7D +0xB1C2 0xAD7F +0xB1C3 0xAD81 +0xB1C4 0xAD82 +0xB1C5 0xAD88 +0xB1C6 0xAD89 +0xB1C7 0xAD8C +0xB1C8 0xAD90 +0xB1C9 0xAD9C +0xB1CA 0xAD9D +0xB1CB 0xADA4 +0xB1CC 0xADB7 +0xB1CD 0xADC0 +0xB1CE 0xADC1 +0xB1CF 0xADC4 +0xB1D0 0xADC8 +0xB1D1 0xADD0 +0xB1D2 0xADD1 +0xB1D3 0xADD3 +0xB1D4 0xADDC +0xB1D5 0xADE0 +0xB1D6 0xADE4 +0xB1D7 0xADF8 +0xB1D8 0xADF9 +0xB1D9 0xADFC +0xB1DA 0xADFF +0xB1DB 0xAE00 +0xB1DC 0xAE01 +0xB1DD 0xAE08 +0xB1DE 0xAE09 +0xB1DF 0xAE0B +0xB1E0 0xAE0D +0xB1E1 0xAE14 +0xB1E2 0xAE30 +0xB1E3 0xAE31 +0xB1E4 0xAE34 +0xB1E5 0xAE37 +0xB1E6 0xAE38 +0xB1E7 0xAE3A +0xB1E8 0xAE40 +0xB1E9 0xAE41 +0xB1EA 0xAE43 +0xB1EB 0xAE45 +0xB1EC 0xAE46 +0xB1ED 0xAE4A +0xB1EE 0xAE4C +0xB1EF 0xAE4D +0xB1F0 0xAE4E +0xB1F1 0xAE50 +0xB1F2 0xAE54 +0xB1F3 0xAE56 +0xB1F4 0xAE5C +0xB1F5 0xAE5D +0xB1F6 0xAE5F +0xB1F7 0xAE60 +0xB1F8 0xAE61 +0xB1F9 0xAE65 +0xB1FA 0xAE68 +0xB1FB 0xAE69 +0xB1FC 0xAE6C +0xB1FD 0xAE70 +0xB1FE 0xAE78 +0xB2A1 0xAE79 +0xB2A2 0xAE7B +0xB2A3 0xAE7C +0xB2A4 0xAE7D +0xB2A5 0xAE84 +0xB2A6 0xAE85 +0xB2A7 0xAE8C +0xB2A8 0xAEBC +0xB2A9 0xAEBD +0xB2AA 0xAEBE +0xB2AB 0xAEC0 +0xB2AC 0xAEC4 +0xB2AD 0xAECC +0xB2AE 0xAECD +0xB2AF 0xAECF +0xB2B0 0xAED0 +0xB2B1 0xAED1 +0xB2B2 0xAED8 +0xB2B3 0xAED9 +0xB2B4 0xAEDC +0xB2B5 0xAEE8 +0xB2B6 0xAEEB +0xB2B7 0xAEED +0xB2B8 0xAEF4 +0xB2B9 0xAEF8 +0xB2BA 0xAEFC +0xB2BB 0xAF07 +0xB2BC 0xAF08 +0xB2BD 0xAF0D +0xB2BE 0xAF10 +0xB2BF 0xAF2C +0xB2C0 0xAF2D +0xB2C1 0xAF30 +0xB2C2 0xAF32 +0xB2C3 0xAF34 +0xB2C4 0xAF3C +0xB2C5 0xAF3D +0xB2C6 0xAF3F +0xB2C7 0xAF41 +0xB2C8 0xAF42 +0xB2C9 0xAF43 +0xB2CA 0xAF48 +0xB2CB 0xAF49 +0xB2CC 0xAF50 +0xB2CD 0xAF5C +0xB2CE 0xAF5D +0xB2CF 0xAF64 +0xB2D0 0xAF65 +0xB2D1 0xAF79 +0xB2D2 0xAF80 +0xB2D3 0xAF84 +0xB2D4 0xAF88 +0xB2D5 0xAF90 +0xB2D6 0xAF91 +0xB2D7 0xAF95 +0xB2D8 0xAF9C +0xB2D9 0xAFB8 +0xB2DA 0xAFB9 +0xB2DB 0xAFBC +0xB2DC 0xAFC0 +0xB2DD 0xAFC7 +0xB2DE 0xAFC8 +0xB2DF 0xAFC9 +0xB2E0 0xAFCB +0xB2E1 0xAFCD +0xB2E2 0xAFCE +0xB2E3 0xAFD4 +0xB2E4 0xAFDC +0xB2E5 0xAFE8 +0xB2E6 0xAFE9 +0xB2E7 0xAFF0 +0xB2E8 0xAFF1 +0xB2E9 0xAFF4 +0xB2EA 0xAFF8 +0xB2EB 0xB000 +0xB2EC 0xB001 +0xB2ED 0xB004 +0xB2EE 0xB00C +0xB2EF 0xB010 +0xB2F0 0xB014 +0xB2F1 0xB01C +0xB2F2 0xB01D +0xB2F3 0xB028 +0xB2F4 0xB044 +0xB2F5 0xB045 +0xB2F6 0xB048 +0xB2F7 0xB04A +0xB2F8 0xB04C +0xB2F9 0xB04E +0xB2FA 0xB053 +0xB2FB 0xB054 +0xB2FC 0xB055 +0xB2FD 0xB057 +0xB2FE 0xB059 +0xB3A1 0xB05D +0xB3A2 0xB07C +0xB3A3 0xB07D +0xB3A4 0xB080 +0xB3A5 0xB084 +0xB3A6 0xB08C +0xB3A7 0xB08D +0xB3A8 0xB08F +0xB3A9 0xB091 +0xB3AA 0xB098 +0xB3AB 0xB099 +0xB3AC 0xB09A +0xB3AD 0xB09C +0xB3AE 0xB09F +0xB3AF 0xB0A0 +0xB3B0 0xB0A1 +0xB3B1 0xB0A2 +0xB3B2 0xB0A8 +0xB3B3 0xB0A9 +0xB3B4 0xB0AB +0xB3B5 0xB0AC +0xB3B6 0xB0AD +0xB3B7 0xB0AE +0xB3B8 0xB0AF +0xB3B9 0xB0B1 +0xB3BA 0xB0B3 +0xB3BB 0xB0B4 +0xB3BC 0xB0B5 +0xB3BD 0xB0B8 +0xB3BE 0xB0BC +0xB3BF 0xB0C4 +0xB3C0 0xB0C5 +0xB3C1 0xB0C7 +0xB3C2 0xB0C8 +0xB3C3 0xB0C9 +0xB3C4 0xB0D0 +0xB3C5 0xB0D1 +0xB3C6 0xB0D4 +0xB3C7 0xB0D8 +0xB3C8 0xB0E0 +0xB3C9 0xB0E5 +0xB3CA 0xB108 +0xB3CB 0xB109 +0xB3CC 0xB10B +0xB3CD 0xB10C +0xB3CE 0xB110 +0xB3CF 0xB112 +0xB3D0 0xB113 +0xB3D1 0xB118 +0xB3D2 0xB119 +0xB3D3 0xB11B +0xB3D4 0xB11C +0xB3D5 0xB11D +0xB3D6 0xB123 +0xB3D7 0xB124 +0xB3D8 0xB125 +0xB3D9 0xB128 +0xB3DA 0xB12C +0xB3DB 0xB134 +0xB3DC 0xB135 +0xB3DD 0xB137 +0xB3DE 0xB138 +0xB3DF 0xB139 +0xB3E0 0xB140 +0xB3E1 0xB141 +0xB3E2 0xB144 +0xB3E3 0xB148 +0xB3E4 0xB150 +0xB3E5 0xB151 +0xB3E6 0xB154 +0xB3E7 0xB155 +0xB3E8 0xB158 +0xB3E9 0xB15C +0xB3EA 0xB160 +0xB3EB 0xB178 +0xB3EC 0xB179 +0xB3ED 0xB17C +0xB3EE 0xB180 +0xB3EF 0xB182 +0xB3F0 0xB188 +0xB3F1 0xB189 +0xB3F2 0xB18B +0xB3F3 0xB18D +0xB3F4 0xB192 +0xB3F5 0xB193 +0xB3F6 0xB194 +0xB3F7 0xB198 +0xB3F8 0xB19C +0xB3F9 0xB1A8 +0xB3FA 0xB1CC +0xB3FB 0xB1D0 +0xB3FC 0xB1D4 +0xB3FD 0xB1DC +0xB3FE 0xB1DD +0xB4A1 0xB1DF +0xB4A2 0xB1E8 +0xB4A3 0xB1E9 +0xB4A4 0xB1EC +0xB4A5 0xB1F0 +0xB4A6 0xB1F9 +0xB4A7 0xB1FB +0xB4A8 0xB1FD +0xB4A9 0xB204 +0xB4AA 0xB205 +0xB4AB 0xB208 +0xB4AC 0xB20B +0xB4AD 0xB20C +0xB4AE 0xB214 +0xB4AF 0xB215 +0xB4B0 0xB217 +0xB4B1 0xB219 +0xB4B2 0xB220 +0xB4B3 0xB234 +0xB4B4 0xB23C +0xB4B5 0xB258 +0xB4B6 0xB25C +0xB4B7 0xB260 +0xB4B8 0xB268 +0xB4B9 0xB269 +0xB4BA 0xB274 +0xB4BB 0xB275 +0xB4BC 0xB27C +0xB4BD 0xB284 +0xB4BE 0xB285 +0xB4BF 0xB289 +0xB4C0 0xB290 +0xB4C1 0xB291 +0xB4C2 0xB294 +0xB4C3 0xB298 +0xB4C4 0xB299 +0xB4C5 0xB29A +0xB4C6 0xB2A0 +0xB4C7 0xB2A1 +0xB4C8 0xB2A3 +0xB4C9 0xB2A5 +0xB4CA 0xB2A6 +0xB4CB 0xB2AA +0xB4CC 0xB2AC +0xB4CD 0xB2B0 +0xB4CE 0xB2B4 +0xB4CF 0xB2C8 +0xB4D0 0xB2C9 +0xB4D1 0xB2CC +0xB4D2 0xB2D0 +0xB4D3 0xB2D2 +0xB4D4 0xB2D8 +0xB4D5 0xB2D9 +0xB4D6 0xB2DB +0xB4D7 0xB2DD +0xB4D8 0xB2E2 +0xB4D9 0xB2E4 +0xB4DA 0xB2E5 +0xB4DB 0xB2E6 +0xB4DC 0xB2E8 +0xB4DD 0xB2EB +0xB4DE 0xB2EC +0xB4DF 0xB2ED +0xB4E0 0xB2EE +0xB4E1 0xB2EF +0xB4E2 0xB2F3 +0xB4E3 0xB2F4 +0xB4E4 0xB2F5 +0xB4E5 0xB2F7 +0xB4E6 0xB2F8 +0xB4E7 0xB2F9 +0xB4E8 0xB2FA +0xB4E9 0xB2FB +0xB4EA 0xB2FF +0xB4EB 0xB300 +0xB4EC 0xB301 +0xB4ED 0xB304 +0xB4EE 0xB308 +0xB4EF 0xB310 +0xB4F0 0xB311 +0xB4F1 0xB313 +0xB4F2 0xB314 +0xB4F3 0xB315 +0xB4F4 0xB31C +0xB4F5 0xB354 +0xB4F6 0xB355 +0xB4F7 0xB356 +0xB4F8 0xB358 +0xB4F9 0xB35B +0xB4FA 0xB35C +0xB4FB 0xB35E +0xB4FC 0xB35F +0xB4FD 0xB364 +0xB4FE 0xB365 +0xB5A1 0xB367 +0xB5A2 0xB369 +0xB5A3 0xB36B +0xB5A4 0xB36E +0xB5A5 0xB370 +0xB5A6 0xB371 +0xB5A7 0xB374 +0xB5A8 0xB378 +0xB5A9 0xB380 +0xB5AA 0xB381 +0xB5AB 0xB383 +0xB5AC 0xB384 +0xB5AD 0xB385 +0xB5AE 0xB38C +0xB5AF 0xB390 +0xB5B0 0xB394 +0xB5B1 0xB3A0 +0xB5B2 0xB3A1 +0xB5B3 0xB3A8 +0xB5B4 0xB3AC +0xB5B5 0xB3C4 +0xB5B6 0xB3C5 +0xB5B7 0xB3C8 +0xB5B8 0xB3CB +0xB5B9 0xB3CC +0xB5BA 0xB3CE +0xB5BB 0xB3D0 +0xB5BC 0xB3D4 +0xB5BD 0xB3D5 +0xB5BE 0xB3D7 +0xB5BF 0xB3D9 +0xB5C0 0xB3DB +0xB5C1 0xB3DD +0xB5C2 0xB3E0 +0xB5C3 0xB3E4 +0xB5C4 0xB3E8 +0xB5C5 0xB3FC +0xB5C6 0xB410 +0xB5C7 0xB418 +0xB5C8 0xB41C +0xB5C9 0xB420 +0xB5CA 0xB428 +0xB5CB 0xB429 +0xB5CC 0xB42B +0xB5CD 0xB434 +0xB5CE 0xB450 +0xB5CF 0xB451 +0xB5D0 0xB454 +0xB5D1 0xB458 +0xB5D2 0xB460 +0xB5D3 0xB461 +0xB5D4 0xB463 +0xB5D5 0xB465 +0xB5D6 0xB46C +0xB5D7 0xB480 +0xB5D8 0xB488 +0xB5D9 0xB49D +0xB5DA 0xB4A4 +0xB5DB 0xB4A8 +0xB5DC 0xB4AC +0xB5DD 0xB4B5 +0xB5DE 0xB4B7 +0xB5DF 0xB4B9 +0xB5E0 0xB4C0 +0xB5E1 0xB4C4 +0xB5E2 0xB4C8 +0xB5E3 0xB4D0 +0xB5E4 0xB4D5 +0xB5E5 0xB4DC +0xB5E6 0xB4DD +0xB5E7 0xB4E0 +0xB5E8 0xB4E3 +0xB5E9 0xB4E4 +0xB5EA 0xB4E6 +0xB5EB 0xB4EC +0xB5EC 0xB4ED +0xB5ED 0xB4EF +0xB5EE 0xB4F1 +0xB5EF 0xB4F8 +0xB5F0 0xB514 +0xB5F1 0xB515 +0xB5F2 0xB518 +0xB5F3 0xB51B +0xB5F4 0xB51C +0xB5F5 0xB524 +0xB5F6 0xB525 +0xB5F7 0xB527 +0xB5F8 0xB528 +0xB5F9 0xB529 +0xB5FA 0xB52A +0xB5FB 0xB530 +0xB5FC 0xB531 +0xB5FD 0xB534 +0xB5FE 0xB538 +0xB6A1 0xB540 +0xB6A2 0xB541 +0xB6A3 0xB543 +0xB6A4 0xB544 +0xB6A5 0xB545 +0xB6A6 0xB54B +0xB6A7 0xB54C +0xB6A8 0xB54D +0xB6A9 0xB550 +0xB6AA 0xB554 +0xB6AB 0xB55C +0xB6AC 0xB55D +0xB6AD 0xB55F +0xB6AE 0xB560 +0xB6AF 0xB561 +0xB6B0 0xB5A0 +0xB6B1 0xB5A1 +0xB6B2 0xB5A4 +0xB6B3 0xB5A8 +0xB6B4 0xB5AA +0xB6B5 0xB5AB +0xB6B6 0xB5B0 +0xB6B7 0xB5B1 +0xB6B8 0xB5B3 +0xB6B9 0xB5B4 +0xB6BA 0xB5B5 +0xB6BB 0xB5BB +0xB6BC 0xB5BC +0xB6BD 0xB5BD +0xB6BE 0xB5C0 +0xB6BF 0xB5C4 +0xB6C0 0xB5CC +0xB6C1 0xB5CD +0xB6C2 0xB5CF +0xB6C3 0xB5D0 +0xB6C4 0xB5D1 +0xB6C5 0xB5D8 +0xB6C6 0xB5EC +0xB6C7 0xB610 +0xB6C8 0xB611 +0xB6C9 0xB614 +0xB6CA 0xB618 +0xB6CB 0xB625 +0xB6CC 0xB62C +0xB6CD 0xB634 +0xB6CE 0xB648 +0xB6CF 0xB664 +0xB6D0 0xB668 +0xB6D1 0xB69C +0xB6D2 0xB69D +0xB6D3 0xB6A0 +0xB6D4 0xB6A4 +0xB6D5 0xB6AB +0xB6D6 0xB6AC +0xB6D7 0xB6B1 +0xB6D8 0xB6D4 +0xB6D9 0xB6F0 +0xB6DA 0xB6F4 +0xB6DB 0xB6F8 +0xB6DC 0xB700 +0xB6DD 0xB701 +0xB6DE 0xB705 +0xB6DF 0xB728 +0xB6E0 0xB729 +0xB6E1 0xB72C +0xB6E2 0xB72F +0xB6E3 0xB730 +0xB6E4 0xB738 +0xB6E5 0xB739 +0xB6E6 0xB73B +0xB6E7 0xB744 +0xB6E8 0xB748 +0xB6E9 0xB74C +0xB6EA 0xB754 +0xB6EB 0xB755 +0xB6EC 0xB760 +0xB6ED 0xB764 +0xB6EE 0xB768 +0xB6EF 0xB770 +0xB6F0 0xB771 +0xB6F1 0xB773 +0xB6F2 0xB775 +0xB6F3 0xB77C +0xB6F4 0xB77D +0xB6F5 0xB780 +0xB6F6 0xB784 +0xB6F7 0xB78C +0xB6F8 0xB78D +0xB6F9 0xB78F +0xB6FA 0xB790 +0xB6FB 0xB791 +0xB6FC 0xB792 +0xB6FD 0xB796 +0xB6FE 0xB797 +0xB7A1 0xB798 +0xB7A2 0xB799 +0xB7A3 0xB79C +0xB7A4 0xB7A0 +0xB7A5 0xB7A8 +0xB7A6 0xB7A9 +0xB7A7 0xB7AB +0xB7A8 0xB7AC +0xB7A9 0xB7AD +0xB7AA 0xB7B4 +0xB7AB 0xB7B5 +0xB7AC 0xB7B8 +0xB7AD 0xB7C7 +0xB7AE 0xB7C9 +0xB7AF 0xB7EC +0xB7B0 0xB7ED +0xB7B1 0xB7F0 +0xB7B2 0xB7F4 +0xB7B3 0xB7FC +0xB7B4 0xB7FD +0xB7B5 0xB7FF +0xB7B6 0xB800 +0xB7B7 0xB801 +0xB7B8 0xB807 +0xB7B9 0xB808 +0xB7BA 0xB809 +0xB7BB 0xB80C +0xB7BC 0xB810 +0xB7BD 0xB818 +0xB7BE 0xB819 +0xB7BF 0xB81B +0xB7C0 0xB81D +0xB7C1 0xB824 +0xB7C2 0xB825 +0xB7C3 0xB828 +0xB7C4 0xB82C +0xB7C5 0xB834 +0xB7C6 0xB835 +0xB7C7 0xB837 +0xB7C8 0xB838 +0xB7C9 0xB839 +0xB7CA 0xB840 +0xB7CB 0xB844 +0xB7CC 0xB851 +0xB7CD 0xB853 +0xB7CE 0xB85C +0xB7CF 0xB85D +0xB7D0 0xB860 +0xB7D1 0xB864 +0xB7D2 0xB86C +0xB7D3 0xB86D +0xB7D4 0xB86F +0xB7D5 0xB871 +0xB7D6 0xB878 +0xB7D7 0xB87C +0xB7D8 0xB88D +0xB7D9 0xB8A8 +0xB7DA 0xB8B0 +0xB7DB 0xB8B4 +0xB7DC 0xB8B8 +0xB7DD 0xB8C0 +0xB7DE 0xB8C1 +0xB7DF 0xB8C3 +0xB7E0 0xB8C5 +0xB7E1 0xB8CC +0xB7E2 0xB8D0 +0xB7E3 0xB8D4 +0xB7E4 0xB8DD +0xB7E5 0xB8DF +0xB7E6 0xB8E1 +0xB7E7 0xB8E8 +0xB7E8 0xB8E9 +0xB7E9 0xB8EC +0xB7EA 0xB8F0 +0xB7EB 0xB8F8 +0xB7EC 0xB8F9 +0xB7ED 0xB8FB +0xB7EE 0xB8FD +0xB7EF 0xB904 +0xB7F0 0xB918 +0xB7F1 0xB920 +0xB7F2 0xB93C +0xB7F3 0xB93D +0xB7F4 0xB940 +0xB7F5 0xB944 +0xB7F6 0xB94C +0xB7F7 0xB94F +0xB7F8 0xB951 +0xB7F9 0xB958 +0xB7FA 0xB959 +0xB7FB 0xB95C +0xB7FC 0xB960 +0xB7FD 0xB968 +0xB7FE 0xB969 +0xB8A1 0xB96B +0xB8A2 0xB96D +0xB8A3 0xB974 +0xB8A4 0xB975 +0xB8A5 0xB978 +0xB8A6 0xB97C +0xB8A7 0xB984 +0xB8A8 0xB985 +0xB8A9 0xB987 +0xB8AA 0xB989 +0xB8AB 0xB98A +0xB8AC 0xB98D +0xB8AD 0xB98E +0xB8AE 0xB9AC +0xB8AF 0xB9AD +0xB8B0 0xB9B0 +0xB8B1 0xB9B4 +0xB8B2 0xB9BC +0xB8B3 0xB9BD +0xB8B4 0xB9BF +0xB8B5 0xB9C1 +0xB8B6 0xB9C8 +0xB8B7 0xB9C9 +0xB8B8 0xB9CC +0xB8B9 0xB9CE +0xB8BA 0xB9CF +0xB8BB 0xB9D0 +0xB8BC 0xB9D1 +0xB8BD 0xB9D2 +0xB8BE 0xB9D8 +0xB8BF 0xB9D9 +0xB8C0 0xB9DB +0xB8C1 0xB9DD +0xB8C2 0xB9DE +0xB8C3 0xB9E1 +0xB8C4 0xB9E3 +0xB8C5 0xB9E4 +0xB8C6 0xB9E5 +0xB8C7 0xB9E8 +0xB8C8 0xB9EC +0xB8C9 0xB9F4 +0xB8CA 0xB9F5 +0xB8CB 0xB9F7 +0xB8CC 0xB9F8 +0xB8CD 0xB9F9 +0xB8CE 0xB9FA +0xB8CF 0xBA00 +0xB8D0 0xBA01 +0xB8D1 0xBA08 +0xB8D2 0xBA15 +0xB8D3 0xBA38 +0xB8D4 0xBA39 +0xB8D5 0xBA3C +0xB8D6 0xBA40 +0xB8D7 0xBA42 +0xB8D8 0xBA48 +0xB8D9 0xBA49 +0xB8DA 0xBA4B +0xB8DB 0xBA4D +0xB8DC 0xBA4E +0xB8DD 0xBA53 +0xB8DE 0xBA54 +0xB8DF 0xBA55 +0xB8E0 0xBA58 +0xB8E1 0xBA5C +0xB8E2 0xBA64 +0xB8E3 0xBA65 +0xB8E4 0xBA67 +0xB8E5 0xBA68 +0xB8E6 0xBA69 +0xB8E7 0xBA70 +0xB8E8 0xBA71 +0xB8E9 0xBA74 +0xB8EA 0xBA78 +0xB8EB 0xBA83 +0xB8EC 0xBA84 +0xB8ED 0xBA85 +0xB8EE 0xBA87 +0xB8EF 0xBA8C +0xB8F0 0xBAA8 +0xB8F1 0xBAA9 +0xB8F2 0xBAAB +0xB8F3 0xBAAC +0xB8F4 0xBAB0 +0xB8F5 0xBAB2 +0xB8F6 0xBAB8 +0xB8F7 0xBAB9 +0xB8F8 0xBABB +0xB8F9 0xBABD +0xB8FA 0xBAC4 +0xB8FB 0xBAC8 +0xB8FC 0xBAD8 +0xB8FD 0xBAD9 +0xB8FE 0xBAFC +0xB9A1 0xBB00 +0xB9A2 0xBB04 +0xB9A3 0xBB0D +0xB9A4 0xBB0F +0xB9A5 0xBB11 +0xB9A6 0xBB18 +0xB9A7 0xBB1C +0xB9A8 0xBB20 +0xB9A9 0xBB29 +0xB9AA 0xBB2B +0xB9AB 0xBB34 +0xB9AC 0xBB35 +0xB9AD 0xBB36 +0xB9AE 0xBB38 +0xB9AF 0xBB3B +0xB9B0 0xBB3C +0xB9B1 0xBB3D +0xB9B2 0xBB3E +0xB9B3 0xBB44 +0xB9B4 0xBB45 +0xB9B5 0xBB47 +0xB9B6 0xBB49 +0xB9B7 0xBB4D +0xB9B8 0xBB4F +0xB9B9 0xBB50 +0xB9BA 0xBB54 +0xB9BB 0xBB58 +0xB9BC 0xBB61 +0xB9BD 0xBB63 +0xB9BE 0xBB6C +0xB9BF 0xBB88 +0xB9C0 0xBB8C +0xB9C1 0xBB90 +0xB9C2 0xBBA4 +0xB9C3 0xBBA8 +0xB9C4 0xBBAC +0xB9C5 0xBBB4 +0xB9C6 0xBBB7 +0xB9C7 0xBBC0 +0xB9C8 0xBBC4 +0xB9C9 0xBBC8 +0xB9CA 0xBBD0 +0xB9CB 0xBBD3 +0xB9CC 0xBBF8 +0xB9CD 0xBBF9 +0xB9CE 0xBBFC +0xB9CF 0xBBFF +0xB9D0 0xBC00 +0xB9D1 0xBC02 +0xB9D2 0xBC08 +0xB9D3 0xBC09 +0xB9D4 0xBC0B +0xB9D5 0xBC0C +0xB9D6 0xBC0D +0xB9D7 0xBC0F +0xB9D8 0xBC11 +0xB9D9 0xBC14 +0xB9DA 0xBC15 +0xB9DB 0xBC16 +0xB9DC 0xBC17 +0xB9DD 0xBC18 +0xB9DE 0xBC1B +0xB9DF 0xBC1C +0xB9E0 0xBC1D +0xB9E1 0xBC1E +0xB9E2 0xBC1F +0xB9E3 0xBC24 +0xB9E4 0xBC25 +0xB9E5 0xBC27 +0xB9E6 0xBC29 +0xB9E7 0xBC2D +0xB9E8 0xBC30 +0xB9E9 0xBC31 +0xB9EA 0xBC34 +0xB9EB 0xBC38 +0xB9EC 0xBC40 +0xB9ED 0xBC41 +0xB9EE 0xBC43 +0xB9EF 0xBC44 +0xB9F0 0xBC45 +0xB9F1 0xBC49 +0xB9F2 0xBC4C +0xB9F3 0xBC4D +0xB9F4 0xBC50 +0xB9F5 0xBC5D +0xB9F6 0xBC84 +0xB9F7 0xBC85 +0xB9F8 0xBC88 +0xB9F9 0xBC8B +0xB9FA 0xBC8C +0xB9FB 0xBC8E +0xB9FC 0xBC94 +0xB9FD 0xBC95 +0xB9FE 0xBC97 +0xBAA1 0xBC99 +0xBAA2 0xBC9A +0xBAA3 0xBCA0 +0xBAA4 0xBCA1 +0xBAA5 0xBCA4 +0xBAA6 0xBCA7 +0xBAA7 0xBCA8 +0xBAA8 0xBCB0 +0xBAA9 0xBCB1 +0xBAAA 0xBCB3 +0xBAAB 0xBCB4 +0xBAAC 0xBCB5 +0xBAAD 0xBCBC +0xBAAE 0xBCBD +0xBAAF 0xBCC0 +0xBAB0 0xBCC4 +0xBAB1 0xBCCD +0xBAB2 0xBCCF +0xBAB3 0xBCD0 +0xBAB4 0xBCD1 +0xBAB5 0xBCD5 +0xBAB6 0xBCD8 +0xBAB7 0xBCDC +0xBAB8 0xBCF4 +0xBAB9 0xBCF5 +0xBABA 0xBCF6 +0xBABB 0xBCF8 +0xBABC 0xBCFC +0xBABD 0xBD04 +0xBABE 0xBD05 +0xBABF 0xBD07 +0xBAC0 0xBD09 +0xBAC1 0xBD10 +0xBAC2 0xBD14 +0xBAC3 0xBD24 +0xBAC4 0xBD2C +0xBAC5 0xBD40 +0xBAC6 0xBD48 +0xBAC7 0xBD49 +0xBAC8 0xBD4C +0xBAC9 0xBD50 +0xBACA 0xBD58 +0xBACB 0xBD59 +0xBACC 0xBD64 +0xBACD 0xBD68 +0xBACE 0xBD80 +0xBACF 0xBD81 +0xBAD0 0xBD84 +0xBAD1 0xBD87 +0xBAD2 0xBD88 +0xBAD3 0xBD89 +0xBAD4 0xBD8A +0xBAD5 0xBD90 +0xBAD6 0xBD91 +0xBAD7 0xBD93 +0xBAD8 0xBD95 +0xBAD9 0xBD99 +0xBADA 0xBD9A +0xBADB 0xBD9C +0xBADC 0xBDA4 +0xBADD 0xBDB0 +0xBADE 0xBDB8 +0xBADF 0xBDD4 +0xBAE0 0xBDD5 +0xBAE1 0xBDD8 +0xBAE2 0xBDDC +0xBAE3 0xBDE9 +0xBAE4 0xBDF0 +0xBAE5 0xBDF4 +0xBAE6 0xBDF8 +0xBAE7 0xBE00 +0xBAE8 0xBE03 +0xBAE9 0xBE05 +0xBAEA 0xBE0C +0xBAEB 0xBE0D +0xBAEC 0xBE10 +0xBAED 0xBE14 +0xBAEE 0xBE1C +0xBAEF 0xBE1D +0xBAF0 0xBE1F +0xBAF1 0xBE44 +0xBAF2 0xBE45 +0xBAF3 0xBE48 +0xBAF4 0xBE4C +0xBAF5 0xBE4E +0xBAF6 0xBE54 +0xBAF7 0xBE55 +0xBAF8 0xBE57 +0xBAF9 0xBE59 +0xBAFA 0xBE5A +0xBAFB 0xBE5B +0xBAFC 0xBE60 +0xBAFD 0xBE61 +0xBAFE 0xBE64 +0xBBA1 0xBE68 +0xBBA2 0xBE6A +0xBBA3 0xBE70 +0xBBA4 0xBE71 +0xBBA5 0xBE73 +0xBBA6 0xBE74 +0xBBA7 0xBE75 +0xBBA8 0xBE7B +0xBBA9 0xBE7C +0xBBAA 0xBE7D +0xBBAB 0xBE80 +0xBBAC 0xBE84 +0xBBAD 0xBE8C +0xBBAE 0xBE8D +0xBBAF 0xBE8F +0xBBB0 0xBE90 +0xBBB1 0xBE91 +0xBBB2 0xBE98 +0xBBB3 0xBE99 +0xBBB4 0xBEA8 +0xBBB5 0xBED0 +0xBBB6 0xBED1 +0xBBB7 0xBED4 +0xBBB8 0xBED7 +0xBBB9 0xBED8 +0xBBBA 0xBEE0 +0xBBBB 0xBEE3 +0xBBBC 0xBEE4 +0xBBBD 0xBEE5 +0xBBBE 0xBEEC +0xBBBF 0xBF01 +0xBBC0 0xBF08 +0xBBC1 0xBF09 +0xBBC2 0xBF18 +0xBBC3 0xBF19 +0xBBC4 0xBF1B +0xBBC5 0xBF1C +0xBBC6 0xBF1D +0xBBC7 0xBF40 +0xBBC8 0xBF41 +0xBBC9 0xBF44 +0xBBCA 0xBF48 +0xBBCB 0xBF50 +0xBBCC 0xBF51 +0xBBCD 0xBF55 +0xBBCE 0xBF94 +0xBBCF 0xBFB0 +0xBBD0 0xBFC5 +0xBBD1 0xBFCC +0xBBD2 0xBFCD +0xBBD3 0xBFD0 +0xBBD4 0xBFD4 +0xBBD5 0xBFDC +0xBBD6 0xBFDF +0xBBD7 0xBFE1 +0xBBD8 0xC03C +0xBBD9 0xC051 +0xBBDA 0xC058 +0xBBDB 0xC05C +0xBBDC 0xC060 +0xBBDD 0xC068 +0xBBDE 0xC069 +0xBBDF 0xC090 +0xBBE0 0xC091 +0xBBE1 0xC094 +0xBBE2 0xC098 +0xBBE3 0xC0A0 +0xBBE4 0xC0A1 +0xBBE5 0xC0A3 +0xBBE6 0xC0A5 +0xBBE7 0xC0AC +0xBBE8 0xC0AD +0xBBE9 0xC0AF +0xBBEA 0xC0B0 +0xBBEB 0xC0B3 +0xBBEC 0xC0B4 +0xBBED 0xC0B5 +0xBBEE 0xC0B6 +0xBBEF 0xC0BC +0xBBF0 0xC0BD +0xBBF1 0xC0BF +0xBBF2 0xC0C0 +0xBBF3 0xC0C1 +0xBBF4 0xC0C5 +0xBBF5 0xC0C8 +0xBBF6 0xC0C9 +0xBBF7 0xC0CC +0xBBF8 0xC0D0 +0xBBF9 0xC0D8 +0xBBFA 0xC0D9 +0xBBFB 0xC0DB +0xBBFC 0xC0DC +0xBBFD 0xC0DD +0xBBFE 0xC0E4 +0xBCA1 0xC0E5 +0xBCA2 0xC0E8 +0xBCA3 0xC0EC +0xBCA4 0xC0F4 +0xBCA5 0xC0F5 +0xBCA6 0xC0F7 +0xBCA7 0xC0F9 +0xBCA8 0xC100 +0xBCA9 0xC104 +0xBCAA 0xC108 +0xBCAB 0xC110 +0xBCAC 0xC115 +0xBCAD 0xC11C +0xBCAE 0xC11D +0xBCAF 0xC11E +0xBCB0 0xC11F +0xBCB1 0xC120 +0xBCB2 0xC123 +0xBCB3 0xC124 +0xBCB4 0xC126 +0xBCB5 0xC127 +0xBCB6 0xC12C +0xBCB7 0xC12D +0xBCB8 0xC12F +0xBCB9 0xC130 +0xBCBA 0xC131 +0xBCBB 0xC136 +0xBCBC 0xC138 +0xBCBD 0xC139 +0xBCBE 0xC13C +0xBCBF 0xC140 +0xBCC0 0xC148 +0xBCC1 0xC149 +0xBCC2 0xC14B +0xBCC3 0xC14C +0xBCC4 0xC14D +0xBCC5 0xC154 +0xBCC6 0xC155 +0xBCC7 0xC158 +0xBCC8 0xC15C +0xBCC9 0xC164 +0xBCCA 0xC165 +0xBCCB 0xC167 +0xBCCC 0xC168 +0xBCCD 0xC169 +0xBCCE 0xC170 +0xBCCF 0xC174 +0xBCD0 0xC178 +0xBCD1 0xC185 +0xBCD2 0xC18C +0xBCD3 0xC18D +0xBCD4 0xC18E +0xBCD5 0xC190 +0xBCD6 0xC194 +0xBCD7 0xC196 +0xBCD8 0xC19C +0xBCD9 0xC19D +0xBCDA 0xC19F +0xBCDB 0xC1A1 +0xBCDC 0xC1A5 +0xBCDD 0xC1A8 +0xBCDE 0xC1A9 +0xBCDF 0xC1AC +0xBCE0 0xC1B0 +0xBCE1 0xC1BD +0xBCE2 0xC1C4 +0xBCE3 0xC1C8 +0xBCE4 0xC1CC +0xBCE5 0xC1D4 +0xBCE6 0xC1D7 +0xBCE7 0xC1D8 +0xBCE8 0xC1E0 +0xBCE9 0xC1E4 +0xBCEA 0xC1E8 +0xBCEB 0xC1F0 +0xBCEC 0xC1F1 +0xBCED 0xC1F3 +0xBCEE 0xC1FC +0xBCEF 0xC1FD +0xBCF0 0xC200 +0xBCF1 0xC204 +0xBCF2 0xC20C +0xBCF3 0xC20D +0xBCF4 0xC20F +0xBCF5 0xC211 +0xBCF6 0xC218 +0xBCF7 0xC219 +0xBCF8 0xC21C +0xBCF9 0xC21F +0xBCFA 0xC220 +0xBCFB 0xC228 +0xBCFC 0xC229 +0xBCFD 0xC22B +0xBCFE 0xC22D +0xBDA1 0xC22F +0xBDA2 0xC231 +0xBDA3 0xC232 +0xBDA4 0xC234 +0xBDA5 0xC248 +0xBDA6 0xC250 +0xBDA7 0xC251 +0xBDA8 0xC254 +0xBDA9 0xC258 +0xBDAA 0xC260 +0xBDAB 0xC265 +0xBDAC 0xC26C +0xBDAD 0xC26D +0xBDAE 0xC270 +0xBDAF 0xC274 +0xBDB0 0xC27C +0xBDB1 0xC27D +0xBDB2 0xC27F +0xBDB3 0xC281 +0xBDB4 0xC288 +0xBDB5 0xC289 +0xBDB6 0xC290 +0xBDB7 0xC298 +0xBDB8 0xC29B +0xBDB9 0xC29D +0xBDBA 0xC2A4 +0xBDBB 0xC2A5 +0xBDBC 0xC2A8 +0xBDBD 0xC2AC +0xBDBE 0xC2AD +0xBDBF 0xC2B4 +0xBDC0 0xC2B5 +0xBDC1 0xC2B7 +0xBDC2 0xC2B9 +0xBDC3 0xC2DC +0xBDC4 0xC2DD +0xBDC5 0xC2E0 +0xBDC6 0xC2E3 +0xBDC7 0xC2E4 +0xBDC8 0xC2EB +0xBDC9 0xC2EC +0xBDCA 0xC2ED +0xBDCB 0xC2EF +0xBDCC 0xC2F1 +0xBDCD 0xC2F6 +0xBDCE 0xC2F8 +0xBDCF 0xC2F9 +0xBDD0 0xC2FB +0xBDD1 0xC2FC +0xBDD2 0xC300 +0xBDD3 0xC308 +0xBDD4 0xC309 +0xBDD5 0xC30C +0xBDD6 0xC30D +0xBDD7 0xC313 +0xBDD8 0xC314 +0xBDD9 0xC315 +0xBDDA 0xC318 +0xBDDB 0xC31C +0xBDDC 0xC324 +0xBDDD 0xC325 +0xBDDE 0xC328 +0xBDDF 0xC329 +0xBDE0 0xC345 +0xBDE1 0xC368 +0xBDE2 0xC369 +0xBDE3 0xC36C +0xBDE4 0xC370 +0xBDE5 0xC372 +0xBDE6 0xC378 +0xBDE7 0xC379 +0xBDE8 0xC37C +0xBDE9 0xC37D +0xBDEA 0xC384 +0xBDEB 0xC388 +0xBDEC 0xC38C +0xBDED 0xC3C0 +0xBDEE 0xC3D8 +0xBDEF 0xC3D9 +0xBDF0 0xC3DC +0xBDF1 0xC3DF +0xBDF2 0xC3E0 +0xBDF3 0xC3E2 +0xBDF4 0xC3E8 +0xBDF5 0xC3E9 +0xBDF6 0xC3ED +0xBDF7 0xC3F4 +0xBDF8 0xC3F5 +0xBDF9 0xC3F8 +0xBDFA 0xC408 +0xBDFB 0xC410 +0xBDFC 0xC424 +0xBDFD 0xC42C +0xBDFE 0xC430 +0xBEA1 0xC434 +0xBEA2 0xC43C +0xBEA3 0xC43D +0xBEA4 0xC448 +0xBEA5 0xC464 +0xBEA6 0xC465 +0xBEA7 0xC468 +0xBEA8 0xC46C +0xBEA9 0xC474 +0xBEAA 0xC475 +0xBEAB 0xC479 +0xBEAC 0xC480 +0xBEAD 0xC494 +0xBEAE 0xC49C +0xBEAF 0xC4B8 +0xBEB0 0xC4BC +0xBEB1 0xC4E9 +0xBEB2 0xC4F0 +0xBEB3 0xC4F1 +0xBEB4 0xC4F4 +0xBEB5 0xC4F8 +0xBEB6 0xC4FA +0xBEB7 0xC4FF +0xBEB8 0xC500 +0xBEB9 0xC501 +0xBEBA 0xC50C +0xBEBB 0xC510 +0xBEBC 0xC514 +0xBEBD 0xC51C +0xBEBE 0xC528 +0xBEBF 0xC529 +0xBEC0 0xC52C +0xBEC1 0xC530 +0xBEC2 0xC538 +0xBEC3 0xC539 +0xBEC4 0xC53B +0xBEC5 0xC53D +0xBEC6 0xC544 +0xBEC7 0xC545 +0xBEC8 0xC548 +0xBEC9 0xC549 +0xBECA 0xC54A +0xBECB 0xC54C +0xBECC 0xC54D +0xBECD 0xC54E +0xBECE 0xC553 +0xBECF 0xC554 +0xBED0 0xC555 +0xBED1 0xC557 +0xBED2 0xC558 +0xBED3 0xC559 +0xBED4 0xC55D +0xBED5 0xC55E +0xBED6 0xC560 +0xBED7 0xC561 +0xBED8 0xC564 +0xBED9 0xC568 +0xBEDA 0xC570 +0xBEDB 0xC571 +0xBEDC 0xC573 +0xBEDD 0xC574 +0xBEDE 0xC575 +0xBEDF 0xC57C +0xBEE0 0xC57D +0xBEE1 0xC580 +0xBEE2 0xC584 +0xBEE3 0xC587 +0xBEE4 0xC58C +0xBEE5 0xC58D +0xBEE6 0xC58F +0xBEE7 0xC591 +0xBEE8 0xC595 +0xBEE9 0xC597 +0xBEEA 0xC598 +0xBEEB 0xC59C +0xBEEC 0xC5A0 +0xBEED 0xC5A9 +0xBEEE 0xC5B4 +0xBEEF 0xC5B5 +0xBEF0 0xC5B8 +0xBEF1 0xC5B9 +0xBEF2 0xC5BB +0xBEF3 0xC5BC +0xBEF4 0xC5BD +0xBEF5 0xC5BE +0xBEF6 0xC5C4 +0xBEF7 0xC5C5 +0xBEF8 0xC5C6 +0xBEF9 0xC5C7 +0xBEFA 0xC5C8 +0xBEFB 0xC5C9 +0xBEFC 0xC5CA +0xBEFD 0xC5CC +0xBEFE 0xC5CE +0xBFA1 0xC5D0 +0xBFA2 0xC5D1 +0xBFA3 0xC5D4 +0xBFA4 0xC5D8 +0xBFA5 0xC5E0 +0xBFA6 0xC5E1 +0xBFA7 0xC5E3 +0xBFA8 0xC5E5 +0xBFA9 0xC5EC +0xBFAA 0xC5ED +0xBFAB 0xC5EE +0xBFAC 0xC5F0 +0xBFAD 0xC5F4 +0xBFAE 0xC5F6 +0xBFAF 0xC5F7 +0xBFB0 0xC5FC +0xBFB1 0xC5FD +0xBFB2 0xC5FE +0xBFB3 0xC5FF +0xBFB4 0xC600 +0xBFB5 0xC601 +0xBFB6 0xC605 +0xBFB7 0xC606 +0xBFB8 0xC607 +0xBFB9 0xC608 +0xBFBA 0xC60C +0xBFBB 0xC610 +0xBFBC 0xC618 +0xBFBD 0xC619 +0xBFBE 0xC61B +0xBFBF 0xC61C +0xBFC0 0xC624 +0xBFC1 0xC625 +0xBFC2 0xC628 +0xBFC3 0xC62C +0xBFC4 0xC62D +0xBFC5 0xC62E +0xBFC6 0xC630 +0xBFC7 0xC633 +0xBFC8 0xC634 +0xBFC9 0xC635 +0xBFCA 0xC637 +0xBFCB 0xC639 +0xBFCC 0xC63B +0xBFCD 0xC640 +0xBFCE 0xC641 +0xBFCF 0xC644 +0xBFD0 0xC648 +0xBFD1 0xC650 +0xBFD2 0xC651 +0xBFD3 0xC653 +0xBFD4 0xC654 +0xBFD5 0xC655 +0xBFD6 0xC65C +0xBFD7 0xC65D +0xBFD8 0xC660 +0xBFD9 0xC66C +0xBFDA 0xC66F +0xBFDB 0xC671 +0xBFDC 0xC678 +0xBFDD 0xC679 +0xBFDE 0xC67C +0xBFDF 0xC680 +0xBFE0 0xC688 +0xBFE1 0xC689 +0xBFE2 0xC68B +0xBFE3 0xC68D +0xBFE4 0xC694 +0xBFE5 0xC695 +0xBFE6 0xC698 +0xBFE7 0xC69C +0xBFE8 0xC6A4 +0xBFE9 0xC6A5 +0xBFEA 0xC6A7 +0xBFEB 0xC6A9 +0xBFEC 0xC6B0 +0xBFED 0xC6B1 +0xBFEE 0xC6B4 +0xBFEF 0xC6B8 +0xBFF0 0xC6B9 +0xBFF1 0xC6BA +0xBFF2 0xC6C0 +0xBFF3 0xC6C1 +0xBFF4 0xC6C3 +0xBFF5 0xC6C5 +0xBFF6 0xC6CC +0xBFF7 0xC6CD +0xBFF8 0xC6D0 +0xBFF9 0xC6D4 +0xBFFA 0xC6DC +0xBFFB 0xC6DD +0xBFFC 0xC6E0 +0xBFFD 0xC6E1 +0xBFFE 0xC6E8 +0xC0A1 0xC6E9 +0xC0A2 0xC6EC +0xC0A3 0xC6F0 +0xC0A4 0xC6F8 +0xC0A5 0xC6F9 +0xC0A6 0xC6FD +0xC0A7 0xC704 +0xC0A8 0xC705 +0xC0A9 0xC708 +0xC0AA 0xC70C +0xC0AB 0xC714 +0xC0AC 0xC715 +0xC0AD 0xC717 +0xC0AE 0xC719 +0xC0AF 0xC720 +0xC0B0 0xC721 +0xC0B1 0xC724 +0xC0B2 0xC728 +0xC0B3 0xC730 +0xC0B4 0xC731 +0xC0B5 0xC733 +0xC0B6 0xC735 +0xC0B7 0xC737 +0xC0B8 0xC73C +0xC0B9 0xC73D +0xC0BA 0xC740 +0xC0BB 0xC744 +0xC0BC 0xC74A +0xC0BD 0xC74C +0xC0BE 0xC74D +0xC0BF 0xC74F +0xC0C0 0xC751 +0xC0C1 0xC752 +0xC0C2 0xC753 +0xC0C3 0xC754 +0xC0C4 0xC755 +0xC0C5 0xC756 +0xC0C6 0xC757 +0xC0C7 0xC758 +0xC0C8 0xC75C +0xC0C9 0xC760 +0xC0CA 0xC768 +0xC0CB 0xC76B +0xC0CC 0xC774 +0xC0CD 0xC775 +0xC0CE 0xC778 +0xC0CF 0xC77C +0xC0D0 0xC77D +0xC0D1 0xC77E +0xC0D2 0xC783 +0xC0D3 0xC784 +0xC0D4 0xC785 +0xC0D5 0xC787 +0xC0D6 0xC788 +0xC0D7 0xC789 +0xC0D8 0xC78A +0xC0D9 0xC78E +0xC0DA 0xC790 +0xC0DB 0xC791 +0xC0DC 0xC794 +0xC0DD 0xC796 +0xC0DE 0xC797 +0xC0DF 0xC798 +0xC0E0 0xC79A +0xC0E1 0xC7A0 +0xC0E2 0xC7A1 +0xC0E3 0xC7A3 +0xC0E4 0xC7A4 +0xC0E5 0xC7A5 +0xC0E6 0xC7A6 +0xC0E7 0xC7AC +0xC0E8 0xC7AD +0xC0E9 0xC7B0 +0xC0EA 0xC7B4 +0xC0EB 0xC7BC +0xC0EC 0xC7BD +0xC0ED 0xC7BF +0xC0EE 0xC7C0 +0xC0EF 0xC7C1 +0xC0F0 0xC7C8 +0xC0F1 0xC7C9 +0xC0F2 0xC7CC +0xC0F3 0xC7CE +0xC0F4 0xC7D0 +0xC0F5 0xC7D8 +0xC0F6 0xC7DD +0xC0F7 0xC7E4 +0xC0F8 0xC7E8 +0xC0F9 0xC7EC +0xC0FA 0xC800 +0xC0FB 0xC801 +0xC0FC 0xC804 +0xC0FD 0xC808 +0xC0FE 0xC80A +0xC1A1 0xC810 +0xC1A2 0xC811 +0xC1A3 0xC813 +0xC1A4 0xC815 +0xC1A5 0xC816 +0xC1A6 0xC81C +0xC1A7 0xC81D +0xC1A8 0xC820 +0xC1A9 0xC824 +0xC1AA 0xC82C +0xC1AB 0xC82D +0xC1AC 0xC82F +0xC1AD 0xC831 +0xC1AE 0xC838 +0xC1AF 0xC83C +0xC1B0 0xC840 +0xC1B1 0xC848 +0xC1B2 0xC849 +0xC1B3 0xC84C +0xC1B4 0xC84D +0xC1B5 0xC854 +0xC1B6 0xC870 +0xC1B7 0xC871 +0xC1B8 0xC874 +0xC1B9 0xC878 +0xC1BA 0xC87A +0xC1BB 0xC880 +0xC1BC 0xC881 +0xC1BD 0xC883 +0xC1BE 0xC885 +0xC1BF 0xC886 +0xC1C0 0xC887 +0xC1C1 0xC88B +0xC1C2 0xC88C +0xC1C3 0xC88D +0xC1C4 0xC894 +0xC1C5 0xC89D +0xC1C6 0xC89F +0xC1C7 0xC8A1 +0xC1C8 0xC8A8 +0xC1C9 0xC8BC +0xC1CA 0xC8BD +0xC1CB 0xC8C4 +0xC1CC 0xC8C8 +0xC1CD 0xC8CC +0xC1CE 0xC8D4 +0xC1CF 0xC8D5 +0xC1D0 0xC8D7 +0xC1D1 0xC8D9 +0xC1D2 0xC8E0 +0xC1D3 0xC8E1 +0xC1D4 0xC8E4 +0xC1D5 0xC8F5 +0xC1D6 0xC8FC +0xC1D7 0xC8FD +0xC1D8 0xC900 +0xC1D9 0xC904 +0xC1DA 0xC905 +0xC1DB 0xC906 +0xC1DC 0xC90C +0xC1DD 0xC90D +0xC1DE 0xC90F +0xC1DF 0xC911 +0xC1E0 0xC918 +0xC1E1 0xC92C +0xC1E2 0xC934 +0xC1E3 0xC950 +0xC1E4 0xC951 +0xC1E5 0xC954 +0xC1E6 0xC958 +0xC1E7 0xC960 +0xC1E8 0xC961 +0xC1E9 0xC963 +0xC1EA 0xC96C +0xC1EB 0xC970 +0xC1EC 0xC974 +0xC1ED 0xC97C +0xC1EE 0xC988 +0xC1EF 0xC989 +0xC1F0 0xC98C +0xC1F1 0xC990 +0xC1F2 0xC998 +0xC1F3 0xC999 +0xC1F4 0xC99B +0xC1F5 0xC99D +0xC1F6 0xC9C0 +0xC1F7 0xC9C1 +0xC1F8 0xC9C4 +0xC1F9 0xC9C7 +0xC1FA 0xC9C8 +0xC1FB 0xC9CA +0xC1FC 0xC9D0 +0xC1FD 0xC9D1 +0xC1FE 0xC9D3 +0xC2A1 0xC9D5 +0xC2A2 0xC9D6 +0xC2A3 0xC9D9 +0xC2A4 0xC9DA +0xC2A5 0xC9DC +0xC2A6 0xC9DD +0xC2A7 0xC9E0 +0xC2A8 0xC9E2 +0xC2A9 0xC9E4 +0xC2AA 0xC9E7 +0xC2AB 0xC9EC +0xC2AC 0xC9ED +0xC2AD 0xC9EF +0xC2AE 0xC9F0 +0xC2AF 0xC9F1 +0xC2B0 0xC9F8 +0xC2B1 0xC9F9 +0xC2B2 0xC9FC +0xC2B3 0xCA00 +0xC2B4 0xCA08 +0xC2B5 0xCA09 +0xC2B6 0xCA0B +0xC2B7 0xCA0C +0xC2B8 0xCA0D +0xC2B9 0xCA14 +0xC2BA 0xCA18 +0xC2BB 0xCA29 +0xC2BC 0xCA4C +0xC2BD 0xCA4D +0xC2BE 0xCA50 +0xC2BF 0xCA54 +0xC2C0 0xCA5C +0xC2C1 0xCA5D +0xC2C2 0xCA5F +0xC2C3 0xCA60 +0xC2C4 0xCA61 +0xC2C5 0xCA68 +0xC2C6 0xCA7D +0xC2C7 0xCA84 +0xC2C8 0xCA98 +0xC2C9 0xCABC +0xC2CA 0xCABD +0xC2CB 0xCAC0 +0xC2CC 0xCAC4 +0xC2CD 0xCACC +0xC2CE 0xCACD +0xC2CF 0xCACF +0xC2D0 0xCAD1 +0xC2D1 0xCAD3 +0xC2D2 0xCAD8 +0xC2D3 0xCAD9 +0xC2D4 0xCAE0 +0xC2D5 0xCAEC +0xC2D6 0xCAF4 +0xC2D7 0xCB08 +0xC2D8 0xCB10 +0xC2D9 0xCB14 +0xC2DA 0xCB18 +0xC2DB 0xCB20 +0xC2DC 0xCB21 +0xC2DD 0xCB41 +0xC2DE 0xCB48 +0xC2DF 0xCB49 +0xC2E0 0xCB4C +0xC2E1 0xCB50 +0xC2E2 0xCB58 +0xC2E3 0xCB59 +0xC2E4 0xCB5D +0xC2E5 0xCB64 +0xC2E6 0xCB78 +0xC2E7 0xCB79 +0xC2E8 0xCB9C +0xC2E9 0xCBB8 +0xC2EA 0xCBD4 +0xC2EB 0xCBE4 +0xC2EC 0xCBE7 +0xC2ED 0xCBE9 +0xC2EE 0xCC0C +0xC2EF 0xCC0D +0xC2F0 0xCC10 +0xC2F1 0xCC14 +0xC2F2 0xCC1C +0xC2F3 0xCC1D +0xC2F4 0xCC21 +0xC2F5 0xCC22 +0xC2F6 0xCC27 +0xC2F7 0xCC28 +0xC2F8 0xCC29 +0xC2F9 0xCC2C +0xC2FA 0xCC2E +0xC2FB 0xCC30 +0xC2FC 0xCC38 +0xC2FD 0xCC39 +0xC2FE 0xCC3B +0xC3A1 0xCC3C +0xC3A2 0xCC3D +0xC3A3 0xCC3E +0xC3A4 0xCC44 +0xC3A5 0xCC45 +0xC3A6 0xCC48 +0xC3A7 0xCC4C +0xC3A8 0xCC54 +0xC3A9 0xCC55 +0xC3AA 0xCC57 +0xC3AB 0xCC58 +0xC3AC 0xCC59 +0xC3AD 0xCC60 +0xC3AE 0xCC64 +0xC3AF 0xCC66 +0xC3B0 0xCC68 +0xC3B1 0xCC70 +0xC3B2 0xCC75 +0xC3B3 0xCC98 +0xC3B4 0xCC99 +0xC3B5 0xCC9C +0xC3B6 0xCCA0 +0xC3B7 0xCCA8 +0xC3B8 0xCCA9 +0xC3B9 0xCCAB +0xC3BA 0xCCAC +0xC3BB 0xCCAD +0xC3BC 0xCCB4 +0xC3BD 0xCCB5 +0xC3BE 0xCCB8 +0xC3BF 0xCCBC +0xC3C0 0xCCC4 +0xC3C1 0xCCC5 +0xC3C2 0xCCC7 +0xC3C3 0xCCC9 +0xC3C4 0xCCD0 +0xC3C5 0xCCD4 +0xC3C6 0xCCE4 +0xC3C7 0xCCEC +0xC3C8 0xCCF0 +0xC3C9 0xCD01 +0xC3CA 0xCD08 +0xC3CB 0xCD09 +0xC3CC 0xCD0C +0xC3CD 0xCD10 +0xC3CE 0xCD18 +0xC3CF 0xCD19 +0xC3D0 0xCD1B +0xC3D1 0xCD1D +0xC3D2 0xCD24 +0xC3D3 0xCD28 +0xC3D4 0xCD2C +0xC3D5 0xCD39 +0xC3D6 0xCD5C +0xC3D7 0xCD60 +0xC3D8 0xCD64 +0xC3D9 0xCD6C +0xC3DA 0xCD6D +0xC3DB 0xCD6F +0xC3DC 0xCD71 +0xC3DD 0xCD78 +0xC3DE 0xCD88 +0xC3DF 0xCD94 +0xC3E0 0xCD95 +0xC3E1 0xCD98 +0xC3E2 0xCD9C +0xC3E3 0xCDA4 +0xC3E4 0xCDA5 +0xC3E5 0xCDA7 +0xC3E6 0xCDA9 +0xC3E7 0xCDB0 +0xC3E8 0xCDC4 +0xC3E9 0xCDCC +0xC3EA 0xCDD0 +0xC3EB 0xCDE8 +0xC3EC 0xCDEC +0xC3ED 0xCDF0 +0xC3EE 0xCDF8 +0xC3EF 0xCDF9 +0xC3F0 0xCDFB +0xC3F1 0xCDFD +0xC3F2 0xCE04 +0xC3F3 0xCE08 +0xC3F4 0xCE0C +0xC3F5 0xCE14 +0xC3F6 0xCE19 +0xC3F7 0xCE20 +0xC3F8 0xCE21 +0xC3F9 0xCE24 +0xC3FA 0xCE28 +0xC3FB 0xCE30 +0xC3FC 0xCE31 +0xC3FD 0xCE33 +0xC3FE 0xCE35 +0xC4A1 0xCE58 +0xC4A2 0xCE59 +0xC4A3 0xCE5C +0xC4A4 0xCE5F +0xC4A5 0xCE60 +0xC4A6 0xCE61 +0xC4A7 0xCE68 +0xC4A8 0xCE69 +0xC4A9 0xCE6B +0xC4AA 0xCE6D +0xC4AB 0xCE74 +0xC4AC 0xCE75 +0xC4AD 0xCE78 +0xC4AE 0xCE7C +0xC4AF 0xCE84 +0xC4B0 0xCE85 +0xC4B1 0xCE87 +0xC4B2 0xCE89 +0xC4B3 0xCE90 +0xC4B4 0xCE91 +0xC4B5 0xCE94 +0xC4B6 0xCE98 +0xC4B7 0xCEA0 +0xC4B8 0xCEA1 +0xC4B9 0xCEA3 +0xC4BA 0xCEA4 +0xC4BB 0xCEA5 +0xC4BC 0xCEAC +0xC4BD 0xCEAD +0xC4BE 0xCEC1 +0xC4BF 0xCEE4 +0xC4C0 0xCEE5 +0xC4C1 0xCEE8 +0xC4C2 0xCEEB +0xC4C3 0xCEEC +0xC4C4 0xCEF4 +0xC4C5 0xCEF5 +0xC4C6 0xCEF7 +0xC4C7 0xCEF8 +0xC4C8 0xCEF9 +0xC4C9 0xCF00 +0xC4CA 0xCF01 +0xC4CB 0xCF04 +0xC4CC 0xCF08 +0xC4CD 0xCF10 +0xC4CE 0xCF11 +0xC4CF 0xCF13 +0xC4D0 0xCF15 +0xC4D1 0xCF1C +0xC4D2 0xCF20 +0xC4D3 0xCF24 +0xC4D4 0xCF2C +0xC4D5 0xCF2D +0xC4D6 0xCF2F +0xC4D7 0xCF30 +0xC4D8 0xCF31 +0xC4D9 0xCF38 +0xC4DA 0xCF54 +0xC4DB 0xCF55 +0xC4DC 0xCF58 +0xC4DD 0xCF5C +0xC4DE 0xCF64 +0xC4DF 0xCF65 +0xC4E0 0xCF67 +0xC4E1 0xCF69 +0xC4E2 0xCF70 +0xC4E3 0xCF71 +0xC4E4 0xCF74 +0xC4E5 0xCF78 +0xC4E6 0xCF80 +0xC4E7 0xCF85 +0xC4E8 0xCF8C +0xC4E9 0xCFA1 +0xC4EA 0xCFA8 +0xC4EB 0xCFB0 +0xC4EC 0xCFC4 +0xC4ED 0xCFE0 +0xC4EE 0xCFE1 +0xC4EF 0xCFE4 +0xC4F0 0xCFE8 +0xC4F1 0xCFF0 +0xC4F2 0xCFF1 +0xC4F3 0xCFF3 +0xC4F4 0xCFF5 +0xC4F5 0xCFFC +0xC4F6 0xD000 +0xC4F7 0xD004 +0xC4F8 0xD011 +0xC4F9 0xD018 +0xC4FA 0xD02D +0xC4FB 0xD034 +0xC4FC 0xD035 +0xC4FD 0xD038 +0xC4FE 0xD03C +0xC5A1 0xD044 +0xC5A2 0xD045 +0xC5A3 0xD047 +0xC5A4 0xD049 +0xC5A5 0xD050 +0xC5A6 0xD054 +0xC5A7 0xD058 +0xC5A8 0xD060 +0xC5A9 0xD06C +0xC5AA 0xD06D +0xC5AB 0xD070 +0xC5AC 0xD074 +0xC5AD 0xD07C +0xC5AE 0xD07D +0xC5AF 0xD081 +0xC5B0 0xD0A4 +0xC5B1 0xD0A5 +0xC5B2 0xD0A8 +0xC5B3 0xD0AC +0xC5B4 0xD0B4 +0xC5B5 0xD0B5 +0xC5B6 0xD0B7 +0xC5B7 0xD0B9 +0xC5B8 0xD0C0 +0xC5B9 0xD0C1 +0xC5BA 0xD0C4 +0xC5BB 0xD0C8 +0xC5BC 0xD0C9 +0xC5BD 0xD0D0 +0xC5BE 0xD0D1 +0xC5BF 0xD0D3 +0xC5C0 0xD0D4 +0xC5C1 0xD0D5 +0xC5C2 0xD0DC +0xC5C3 0xD0DD +0xC5C4 0xD0E0 +0xC5C5 0xD0E4 +0xC5C6 0xD0EC +0xC5C7 0xD0ED +0xC5C8 0xD0EF +0xC5C9 0xD0F0 +0xC5CA 0xD0F1 +0xC5CB 0xD0F8 +0xC5CC 0xD10D +0xC5CD 0xD130 +0xC5CE 0xD131 +0xC5CF 0xD134 +0xC5D0 0xD138 +0xC5D1 0xD13A +0xC5D2 0xD140 +0xC5D3 0xD141 +0xC5D4 0xD143 +0xC5D5 0xD144 +0xC5D6 0xD145 +0xC5D7 0xD14C +0xC5D8 0xD14D +0xC5D9 0xD150 +0xC5DA 0xD154 +0xC5DB 0xD15C +0xC5DC 0xD15D +0xC5DD 0xD15F +0xC5DE 0xD161 +0xC5DF 0xD168 +0xC5E0 0xD16C +0xC5E1 0xD17C +0xC5E2 0xD184 +0xC5E3 0xD188 +0xC5E4 0xD1A0 +0xC5E5 0xD1A1 +0xC5E6 0xD1A4 +0xC5E7 0xD1A8 +0xC5E8 0xD1B0 +0xC5E9 0xD1B1 +0xC5EA 0xD1B3 +0xC5EB 0xD1B5 +0xC5EC 0xD1BA +0xC5ED 0xD1BC +0xC5EE 0xD1C0 +0xC5EF 0xD1D8 +0xC5F0 0xD1F4 +0xC5F1 0xD1F8 +0xC5F2 0xD207 +0xC5F3 0xD209 +0xC5F4 0xD210 +0xC5F5 0xD22C +0xC5F6 0xD22D +0xC5F7 0xD230 +0xC5F8 0xD234 +0xC5F9 0xD23C +0xC5FA 0xD23D +0xC5FB 0xD23F +0xC5FC 0xD241 +0xC5FD 0xD248 +0xC5FE 0xD25C +0xC6A1 0xD264 +0xC6A2 0xD280 +0xC6A3 0xD281 +0xC6A4 0xD284 +0xC6A5 0xD288 +0xC6A6 0xD290 +0xC6A7 0xD291 +0xC6A8 0xD295 +0xC6A9 0xD29C +0xC6AA 0xD2A0 +0xC6AB 0xD2A4 +0xC6AC 0xD2AC +0xC6AD 0xD2B1 +0xC6AE 0xD2B8 +0xC6AF 0xD2B9 +0xC6B0 0xD2BC +0xC6B1 0xD2BF +0xC6B2 0xD2C0 +0xC6B3 0xD2C2 +0xC6B4 0xD2C8 +0xC6B5 0xD2C9 +0xC6B6 0xD2CB +0xC6B7 0xD2D4 +0xC6B8 0xD2D8 +0xC6B9 0xD2DC +0xC6BA 0xD2E4 +0xC6BB 0xD2E5 +0xC6BC 0xD2F0 +0xC6BD 0xD2F1 +0xC6BE 0xD2F4 +0xC6BF 0xD2F8 +0xC6C0 0xD300 +0xC6C1 0xD301 +0xC6C2 0xD303 +0xC6C3 0xD305 +0xC6C4 0xD30C +0xC6C5 0xD30D +0xC6C6 0xD30E +0xC6C7 0xD310 +0xC6C8 0xD314 +0xC6C9 0xD316 +0xC6CA 0xD31C +0xC6CB 0xD31D +0xC6CC 0xD31F +0xC6CD 0xD320 +0xC6CE 0xD321 +0xC6CF 0xD325 +0xC6D0 0xD328 +0xC6D1 0xD329 +0xC6D2 0xD32C +0xC6D3 0xD330 +0xC6D4 0xD338 +0xC6D5 0xD339 +0xC6D6 0xD33B +0xC6D7 0xD33C +0xC6D8 0xD33D +0xC6D9 0xD344 +0xC6DA 0xD345 +0xC6DB 0xD37C +0xC6DC 0xD37D +0xC6DD 0xD380 +0xC6DE 0xD384 +0xC6DF 0xD38C +0xC6E0 0xD38D +0xC6E1 0xD38F +0xC6E2 0xD390 +0xC6E3 0xD391 +0xC6E4 0xD398 +0xC6E5 0xD399 +0xC6E6 0xD39C +0xC6E7 0xD3A0 +0xC6E8 0xD3A8 +0xC6E9 0xD3A9 +0xC6EA 0xD3AB +0xC6EB 0xD3AD +0xC6EC 0xD3B4 +0xC6ED 0xD3B8 +0xC6EE 0xD3BC +0xC6EF 0xD3C4 +0xC6F0 0xD3C5 +0xC6F1 0xD3C8 +0xC6F2 0xD3C9 +0xC6F3 0xD3D0 +0xC6F4 0xD3D8 +0xC6F5 0xD3E1 +0xC6F6 0xD3E3 +0xC6F7 0xD3EC +0xC6F8 0xD3ED +0xC6F9 0xD3F0 +0xC6FA 0xD3F4 +0xC6FB 0xD3FC +0xC6FC 0xD3FD +0xC6FD 0xD3FF +0xC6FE 0xD401 +0xC7A1 0xD408 +0xC7A2 0xD41D +0xC7A3 0xD440 +0xC7A4 0xD444 +0xC7A5 0xD45C +0xC7A6 0xD460 +0xC7A7 0xD464 +0xC7A8 0xD46D +0xC7A9 0xD46F +0xC7AA 0xD478 +0xC7AB 0xD479 +0xC7AC 0xD47C +0xC7AD 0xD47F +0xC7AE 0xD480 +0xC7AF 0xD482 +0xC7B0 0xD488 +0xC7B1 0xD489 +0xC7B2 0xD48B +0xC7B3 0xD48D +0xC7B4 0xD494 +0xC7B5 0xD4A9 +0xC7B6 0xD4CC +0xC7B7 0xD4D0 +0xC7B8 0xD4D4 +0xC7B9 0xD4DC +0xC7BA 0xD4DF +0xC7BB 0xD4E8 +0xC7BC 0xD4EC +0xC7BD 0xD4F0 +0xC7BE 0xD4F8 +0xC7BF 0xD4FB +0xC7C0 0xD4FD +0xC7C1 0xD504 +0xC7C2 0xD508 +0xC7C3 0xD50C +0xC7C4 0xD514 +0xC7C5 0xD515 +0xC7C6 0xD517 +0xC7C7 0xD53C +0xC7C8 0xD53D +0xC7C9 0xD540 +0xC7CA 0xD544 +0xC7CB 0xD54C +0xC7CC 0xD54D +0xC7CD 0xD54F +0xC7CE 0xD551 +0xC7CF 0xD558 +0xC7D0 0xD559 +0xC7D1 0xD55C +0xC7D2 0xD560 +0xC7D3 0xD565 +0xC7D4 0xD568 +0xC7D5 0xD569 +0xC7D6 0xD56B +0xC7D7 0xD56D +0xC7D8 0xD574 +0xC7D9 0xD575 +0xC7DA 0xD578 +0xC7DB 0xD57C +0xC7DC 0xD584 +0xC7DD 0xD585 +0xC7DE 0xD587 +0xC7DF 0xD588 +0xC7E0 0xD589 +0xC7E1 0xD590 +0xC7E2 0xD5A5 +0xC7E3 0xD5C8 +0xC7E4 0xD5C9 +0xC7E5 0xD5CC +0xC7E6 0xD5D0 +0xC7E7 0xD5D2 +0xC7E8 0xD5D8 +0xC7E9 0xD5D9 +0xC7EA 0xD5DB +0xC7EB 0xD5DD +0xC7EC 0xD5E4 +0xC7ED 0xD5E5 +0xC7EE 0xD5E8 +0xC7EF 0xD5EC +0xC7F0 0xD5F4 +0xC7F1 0xD5F5 +0xC7F2 0xD5F7 +0xC7F3 0xD5F9 +0xC7F4 0xD600 +0xC7F5 0xD601 +0xC7F6 0xD604 +0xC7F7 0xD608 +0xC7F8 0xD610 +0xC7F9 0xD611 +0xC7FA 0xD613 +0xC7FB 0xD614 +0xC7FC 0xD615 +0xC7FD 0xD61C +0xC7FE 0xD620 +0xC8A1 0xD624 +0xC8A2 0xD62D +0xC8A3 0xD638 +0xC8A4 0xD639 +0xC8A5 0xD63C +0xC8A6 0xD640 +0xC8A7 0xD645 +0xC8A8 0xD648 +0xC8A9 0xD649 +0xC8AA 0xD64B +0xC8AB 0xD64D +0xC8AC 0xD651 +0xC8AD 0xD654 +0xC8AE 0xD655 +0xC8AF 0xD658 +0xC8B0 0xD65C +0xC8B1 0xD667 +0xC8B2 0xD669 +0xC8B3 0xD670 +0xC8B4 0xD671 +0xC8B5 0xD674 +0xC8B6 0xD683 +0xC8B7 0xD685 +0xC8B8 0xD68C +0xC8B9 0xD68D +0xC8BA 0xD690 +0xC8BB 0xD694 +0xC8BC 0xD69D +0xC8BD 0xD69F +0xC8BE 0xD6A1 +0xC8BF 0xD6A8 +0xC8C0 0xD6AC +0xC8C1 0xD6B0 +0xC8C2 0xD6B9 +0xC8C3 0xD6BB +0xC8C4 0xD6C4 +0xC8C5 0xD6C5 +0xC8C6 0xD6C8 +0xC8C7 0xD6CC +0xC8C8 0xD6D1 +0xC8C9 0xD6D4 +0xC8CA 0xD6D7 +0xC8CB 0xD6D9 +0xC8CC 0xD6E0 +0xC8CD 0xD6E4 +0xC8CE 0xD6E8 +0xC8CF 0xD6F0 +0xC8D0 0xD6F5 +0xC8D1 0xD6FC +0xC8D2 0xD6FD +0xC8D3 0xD700 +0xC8D4 0xD704 +0xC8D5 0xD711 +0xC8D6 0xD718 +0xC8D7 0xD719 +0xC8D8 0xD71C +0xC8D9 0xD720 +0xC8DA 0xD728 +0xC8DB 0xD729 +0xC8DC 0xD72B +0xC8DD 0xD72D +0xC8DE 0xD734 +0xC8DF 0xD735 +0xC8E0 0xD738 +0xC8E1 0xD73C +0xC8E2 0xD744 +0xC8E3 0xD747 +0xC8E4 0xD749 +0xC8E5 0xD750 +0xC8E6 0xD751 +0xC8E7 0xD754 +0xC8E8 0xD756 +0xC8E9 0xD757 +0xC8EA 0xD758 +0xC8EB 0xD759 +0xC8EC 0xD760 +0xC8ED 0xD761 +0xC8EE 0xD763 +0xC8EF 0xD765 +0xC8F0 0xD769 +0xC8F1 0xD76C +0xC8F2 0xD770 +0xC8F3 0xD774 +0xC8F4 0xD77C +0xC8F5 0xD77D +0xC8F6 0xD781 +0xC8F7 0xD788 +0xC8F8 0xD789 +0xC8F9 0xD78C +0xC8FA 0xD790 +0xC8FB 0xD798 +0xC8FC 0xD799 +0xC8FD 0xD79B +0xC8FE 0xD79D +0xCAA1 0x4F3D +0xCAA2 0x4F73 +0xCAA3 0x5047 +0xCAA4 0x50F9 +0xCAA5 0x52A0 +0xCAA6 0x53EF +0xCAA7 0x5475 +0xCAA8 0x54E5 +0xCAA9 0x5609 +0xCAAA 0x5AC1 +0xCAAB 0x5BB6 +0xCAAC 0x6687 +0xCAAD 0x67B6 +0xCAAE 0x67B7 +0xCAAF 0x67EF +0xCAB0 0x6B4C +0xCAB1 0x73C2 +0xCAB2 0x75C2 +0xCAB3 0x7A3C +0xCAB4 0x82DB +0xCAB5 0x8304 +0xCAB6 0x8857 +0xCAB7 0x8888 +0xCAB8 0x8A36 +0xCAB9 0x8CC8 +0xCABA 0x8DCF +0xCABB 0x8EFB +0xCABC 0x8FE6 +0xCABD 0x99D5 +0xCABE 0x523B +0xCABF 0x5374 +0xCAC0 0x5404 +0xCAC1 0x606A +0xCAC2 0x6164 +0xCAC3 0x6BBC +0xCAC4 0x73CF +0xCAC5 0x811A +0xCAC6 0x89BA +0xCAC7 0x89D2 +0xCAC8 0x95A3 +0xCAC9 0x4F83 +0xCACA 0x520A +0xCACB 0x58BE +0xCACC 0x5978 +0xCACD 0x59E6 +0xCACE 0x5E72 +0xCACF 0x5E79 +0xCAD0 0x61C7 +0xCAD1 0x63C0 +0xCAD2 0x6746 +0xCAD3 0x67EC +0xCAD4 0x687F +0xCAD5 0x6F97 +0xCAD6 0x764E +0xCAD7 0x770B +0xCAD8 0x78F5 +0xCAD9 0x7A08 +0xCADA 0x7AFF +0xCADB 0x7C21 +0xCADC 0x809D +0xCADD 0x826E +0xCADE 0x8271 +0xCADF 0x8AEB +0xCAE0 0x9593 +0xCAE1 0x4E6B +0xCAE2 0x559D +0xCAE3 0x66F7 +0xCAE4 0x6E34 +0xCAE5 0x78A3 +0xCAE6 0x7AED +0xCAE7 0x845B +0xCAE8 0x8910 +0xCAE9 0x874E +0xCAEA 0x97A8 +0xCAEB 0x52D8 +0xCAEC 0x574E +0xCAED 0x582A +0xCAEE 0x5D4C +0xCAEF 0x611F +0xCAF0 0x61BE +0xCAF1 0x6221 +0xCAF2 0x6562 +0xCAF3 0x67D1 +0xCAF4 0x6A44 +0xCAF5 0x6E1B +0xCAF6 0x7518 +0xCAF7 0x75B3 +0xCAF8 0x76E3 +0xCAF9 0x77B0 +0xCAFA 0x7D3A +0xCAFB 0x90AF +0xCAFC 0x9451 +0xCAFD 0x9452 +0xCAFE 0x9F95 +0xCBA1 0x5323 +0xCBA2 0x5CAC +0xCBA3 0x7532 +0xCBA4 0x80DB +0xCBA5 0x9240 +0xCBA6 0x9598 +0xCBA7 0x525B +0xCBA8 0x5808 +0xCBA9 0x59DC +0xCBAA 0x5CA1 +0xCBAB 0x5D17 +0xCBAC 0x5EB7 +0xCBAD 0x5F3A +0xCBAE 0x5F4A +0xCBAF 0x6177 +0xCBB0 0x6C5F +0xCBB1 0x757A +0xCBB2 0x7586 +0xCBB3 0x7CE0 +0xCBB4 0x7D73 +0xCBB5 0x7DB1 +0xCBB6 0x7F8C +0xCBB7 0x8154 +0xCBB8 0x8221 +0xCBB9 0x8591 +0xCBBA 0x8941 +0xCBBB 0x8B1B +0xCBBC 0x92FC +0xCBBD 0x964D +0xCBBE 0x9C47 +0xCBBF 0x4ECB +0xCBC0 0x4EF7 +0xCBC1 0x500B +0xCBC2 0x51F1 +0xCBC3 0x584F +0xCBC4 0x6137 +0xCBC5 0x613E +0xCBC6 0x6168 +0xCBC7 0x6539 +0xCBC8 0x69EA +0xCBC9 0x6F11 +0xCBCA 0x75A5 +0xCBCB 0x7686 +0xCBCC 0x76D6 +0xCBCD 0x7B87 +0xCBCE 0x82A5 +0xCBCF 0x84CB +0xCBD0 0xF900 +0xCBD1 0x93A7 +0xCBD2 0x958B +0xCBD3 0x5580 +0xCBD4 0x5BA2 +0xCBD5 0x5751 +0xCBD6 0xF901 +0xCBD7 0x7CB3 +0xCBD8 0x7FB9 +0xCBD9 0x91B5 +0xCBDA 0x5028 +0xCBDB 0x53BB +0xCBDC 0x5C45 +0xCBDD 0x5DE8 +0xCBDE 0x62D2 +0xCBDF 0x636E +0xCBE0 0x64DA +0xCBE1 0x64E7 +0xCBE2 0x6E20 +0xCBE3 0x70AC +0xCBE4 0x795B +0xCBE5 0x8DDD +0xCBE6 0x8E1E +0xCBE7 0xF902 +0xCBE8 0x907D +0xCBE9 0x9245 +0xCBEA 0x92F8 +0xCBEB 0x4E7E +0xCBEC 0x4EF6 +0xCBED 0x5065 +0xCBEE 0x5DFE +0xCBEF 0x5EFA +0xCBF0 0x6106 +0xCBF1 0x6957 +0xCBF2 0x8171 +0xCBF3 0x8654 +0xCBF4 0x8E47 +0xCBF5 0x9375 +0xCBF6 0x9A2B +0xCBF7 0x4E5E +0xCBF8 0x5091 +0xCBF9 0x6770 +0xCBFA 0x6840 +0xCBFB 0x5109 +0xCBFC 0x528D +0xCBFD 0x5292 +0xCBFE 0x6AA2 +0xCCA1 0x77BC +0xCCA2 0x9210 +0xCCA3 0x9ED4 +0xCCA4 0x52AB +0xCCA5 0x602F +0xCCA6 0x8FF2 +0xCCA7 0x5048 +0xCCA8 0x61A9 +0xCCA9 0x63ED +0xCCAA 0x64CA +0xCCAB 0x683C +0xCCAC 0x6A84 +0xCCAD 0x6FC0 +0xCCAE 0x8188 +0xCCAF 0x89A1 +0xCCB0 0x9694 +0xCCB1 0x5805 +0xCCB2 0x727D +0xCCB3 0x72AC +0xCCB4 0x7504 +0xCCB5 0x7D79 +0xCCB6 0x7E6D +0xCCB7 0x80A9 +0xCCB8 0x898B +0xCCB9 0x8B74 +0xCCBA 0x9063 +0xCCBB 0x9D51 +0xCCBC 0x6289 +0xCCBD 0x6C7A +0xCCBE 0x6F54 +0xCCBF 0x7D50 +0xCCC0 0x7F3A +0xCCC1 0x8A23 +0xCCC2 0x517C +0xCCC3 0x614A +0xCCC4 0x7B9D +0xCCC5 0x8B19 +0xCCC6 0x9257 +0xCCC7 0x938C +0xCCC8 0x4EAC +0xCCC9 0x4FD3 +0xCCCA 0x501E +0xCCCB 0x50BE +0xCCCC 0x5106 +0xCCCD 0x52C1 +0xCCCE 0x52CD +0xCCCF 0x537F +0xCCD0 0x5770 +0xCCD1 0x5883 +0xCCD2 0x5E9A +0xCCD3 0x5F91 +0xCCD4 0x6176 +0xCCD5 0x61AC +0xCCD6 0x64CE +0xCCD7 0x656C +0xCCD8 0x666F +0xCCD9 0x66BB +0xCCDA 0x66F4 +0xCCDB 0x6897 +0xCCDC 0x6D87 +0xCCDD 0x7085 +0xCCDE 0x70F1 +0xCCDF 0x749F +0xCCE0 0x74A5 +0xCCE1 0x74CA +0xCCE2 0x75D9 +0xCCE3 0x786C +0xCCE4 0x78EC +0xCCE5 0x7ADF +0xCCE6 0x7AF6 +0xCCE7 0x7D45 +0xCCE8 0x7D93 +0xCCE9 0x8015 +0xCCEA 0x803F +0xCCEB 0x811B +0xCCEC 0x8396 +0xCCED 0x8B66 +0xCCEE 0x8F15 +0xCCEF 0x9015 +0xCCF0 0x93E1 +0xCCF1 0x9803 +0xCCF2 0x9838 +0xCCF3 0x9A5A +0xCCF4 0x9BE8 +0xCCF5 0x4FC2 +0xCCF6 0x5553 +0xCCF7 0x583A +0xCCF8 0x5951 +0xCCF9 0x5B63 +0xCCFA 0x5C46 +0xCCFB 0x60B8 +0xCCFC 0x6212 +0xCCFD 0x6842 +0xCCFE 0x68B0 +0xCDA1 0x68E8 +0xCDA2 0x6EAA +0xCDA3 0x754C +0xCDA4 0x7678 +0xCDA5 0x78CE +0xCDA6 0x7A3D +0xCDA7 0x7CFB +0xCDA8 0x7E6B +0xCDA9 0x7E7C +0xCDAA 0x8A08 +0xCDAB 0x8AA1 +0xCDAC 0x8C3F +0xCDAD 0x968E +0xCDAE 0x9DC4 +0xCDAF 0x53E4 +0xCDB0 0x53E9 +0xCDB1 0x544A +0xCDB2 0x5471 +0xCDB3 0x56FA +0xCDB4 0x59D1 +0xCDB5 0x5B64 +0xCDB6 0x5C3B +0xCDB7 0x5EAB +0xCDB8 0x62F7 +0xCDB9 0x6537 +0xCDBA 0x6545 +0xCDBB 0x6572 +0xCDBC 0x66A0 +0xCDBD 0x67AF +0xCDBE 0x69C1 +0xCDBF 0x6CBD +0xCDC0 0x75FC +0xCDC1 0x7690 +0xCDC2 0x777E +0xCDC3 0x7A3F +0xCDC4 0x7F94 +0xCDC5 0x8003 +0xCDC6 0x80A1 +0xCDC7 0x818F +0xCDC8 0x82E6 +0xCDC9 0x82FD +0xCDCA 0x83F0 +0xCDCB 0x85C1 +0xCDCC 0x8831 +0xCDCD 0x88B4 +0xCDCE 0x8AA5 +0xCDCF 0xF903 +0xCDD0 0x8F9C +0xCDD1 0x932E +0xCDD2 0x96C7 +0xCDD3 0x9867 +0xCDD4 0x9AD8 +0xCDD5 0x9F13 +0xCDD6 0x54ED +0xCDD7 0x659B +0xCDD8 0x66F2 +0xCDD9 0x688F +0xCDDA 0x7A40 +0xCDDB 0x8C37 +0xCDDC 0x9D60 +0xCDDD 0x56F0 +0xCDDE 0x5764 +0xCDDF 0x5D11 +0xCDE0 0x6606 +0xCDE1 0x68B1 +0xCDE2 0x68CD +0xCDE3 0x6EFE +0xCDE4 0x7428 +0xCDE5 0x889E +0xCDE6 0x9BE4 +0xCDE7 0x6C68 +0xCDE8 0xF904 +0xCDE9 0x9AA8 +0xCDEA 0x4F9B +0xCDEB 0x516C +0xCDEC 0x5171 +0xCDED 0x529F +0xCDEE 0x5B54 +0xCDEF 0x5DE5 +0xCDF0 0x6050 +0xCDF1 0x606D +0xCDF2 0x62F1 +0xCDF3 0x63A7 +0xCDF4 0x653B +0xCDF5 0x73D9 +0xCDF6 0x7A7A +0xCDF7 0x86A3 +0xCDF8 0x8CA2 +0xCDF9 0x978F +0xCDFA 0x4E32 +0xCDFB 0x5BE1 +0xCDFC 0x6208 +0xCDFD 0x679C +0xCDFE 0x74DC +0xCEA1 0x79D1 +0xCEA2 0x83D3 +0xCEA3 0x8A87 +0xCEA4 0x8AB2 +0xCEA5 0x8DE8 +0xCEA6 0x904E +0xCEA7 0x934B +0xCEA8 0x9846 +0xCEA9 0x5ED3 +0xCEAA 0x69E8 +0xCEAB 0x85FF +0xCEAC 0x90ED +0xCEAD 0xF905 +0xCEAE 0x51A0 +0xCEAF 0x5B98 +0xCEB0 0x5BEC +0xCEB1 0x6163 +0xCEB2 0x68FA +0xCEB3 0x6B3E +0xCEB4 0x704C +0xCEB5 0x742F +0xCEB6 0x74D8 +0xCEB7 0x7BA1 +0xCEB8 0x7F50 +0xCEB9 0x83C5 +0xCEBA 0x89C0 +0xCEBB 0x8CAB +0xCEBC 0x95DC +0xCEBD 0x9928 +0xCEBE 0x522E +0xCEBF 0x605D +0xCEC0 0x62EC +0xCEC1 0x9002 +0xCEC2 0x4F8A +0xCEC3 0x5149 +0xCEC4 0x5321 +0xCEC5 0x58D9 +0xCEC6 0x5EE3 +0xCEC7 0x66E0 +0xCEC8 0x6D38 +0xCEC9 0x709A +0xCECA 0x72C2 +0xCECB 0x73D6 +0xCECC 0x7B50 +0xCECD 0x80F1 +0xCECE 0x945B +0xCECF 0x5366 +0xCED0 0x639B +0xCED1 0x7F6B +0xCED2 0x4E56 +0xCED3 0x5080 +0xCED4 0x584A +0xCED5 0x58DE +0xCED6 0x602A +0xCED7 0x6127 +0xCED8 0x62D0 +0xCED9 0x69D0 +0xCEDA 0x9B41 +0xCEDB 0x5B8F +0xCEDC 0x7D18 +0xCEDD 0x80B1 +0xCEDE 0x8F5F +0xCEDF 0x4EA4 +0xCEE0 0x50D1 +0xCEE1 0x54AC +0xCEE2 0x55AC +0xCEE3 0x5B0C +0xCEE4 0x5DA0 +0xCEE5 0x5DE7 +0xCEE6 0x652A +0xCEE7 0x654E +0xCEE8 0x6821 +0xCEE9 0x6A4B +0xCEEA 0x72E1 +0xCEEB 0x768E +0xCEEC 0x77EF +0xCEED 0x7D5E +0xCEEE 0x7FF9 +0xCEEF 0x81A0 +0xCEF0 0x854E +0xCEF1 0x86DF +0xCEF2 0x8F03 +0xCEF3 0x8F4E +0xCEF4 0x90CA +0xCEF5 0x9903 +0xCEF6 0x9A55 +0xCEF7 0x9BAB +0xCEF8 0x4E18 +0xCEF9 0x4E45 +0xCEFA 0x4E5D +0xCEFB 0x4EC7 +0xCEFC 0x4FF1 +0xCEFD 0x5177 +0xCEFE 0x52FE +0xCFA1 0x5340 +0xCFA2 0x53E3 +0xCFA3 0x53E5 +0xCFA4 0x548E +0xCFA5 0x5614 +0xCFA6 0x5775 +0xCFA7 0x57A2 +0xCFA8 0x5BC7 +0xCFA9 0x5D87 +0xCFAA 0x5ED0 +0xCFAB 0x61FC +0xCFAC 0x62D8 +0xCFAD 0x6551 +0xCFAE 0x67B8 +0xCFAF 0x67E9 +0xCFB0 0x69CB +0xCFB1 0x6B50 +0xCFB2 0x6BC6 +0xCFB3 0x6BEC +0xCFB4 0x6C42 +0xCFB5 0x6E9D +0xCFB6 0x7078 +0xCFB7 0x72D7 +0xCFB8 0x7396 +0xCFB9 0x7403 +0xCFBA 0x77BF +0xCFBB 0x77E9 +0xCFBC 0x7A76 +0xCFBD 0x7D7F +0xCFBE 0x8009 +0xCFBF 0x81FC +0xCFC0 0x8205 +0xCFC1 0x820A +0xCFC2 0x82DF +0xCFC3 0x8862 +0xCFC4 0x8B33 +0xCFC5 0x8CFC +0xCFC6 0x8EC0 +0xCFC7 0x9011 +0xCFC8 0x90B1 +0xCFC9 0x9264 +0xCFCA 0x92B6 +0xCFCB 0x99D2 +0xCFCC 0x9A45 +0xCFCD 0x9CE9 +0xCFCE 0x9DD7 +0xCFCF 0x9F9C +0xCFD0 0x570B +0xCFD1 0x5C40 +0xCFD2 0x83CA +0xCFD3 0x97A0 +0xCFD4 0x97AB +0xCFD5 0x9EB4 +0xCFD6 0x541B +0xCFD7 0x7A98 +0xCFD8 0x7FA4 +0xCFD9 0x88D9 +0xCFDA 0x8ECD +0xCFDB 0x90E1 +0xCFDC 0x5800 +0xCFDD 0x5C48 +0xCFDE 0x6398 +0xCFDF 0x7A9F +0xCFE0 0x5BAE +0xCFE1 0x5F13 +0xCFE2 0x7A79 +0xCFE3 0x7AAE +0xCFE4 0x828E +0xCFE5 0x8EAC +0xCFE6 0x5026 +0xCFE7 0x5238 +0xCFE8 0x52F8 +0xCFE9 0x5377 +0xCFEA 0x5708 +0xCFEB 0x62F3 +0xCFEC 0x6372 +0xCFED 0x6B0A +0xCFEE 0x6DC3 +0xCFEF 0x7737 +0xCFF0 0x53A5 +0xCFF1 0x7357 +0xCFF2 0x8568 +0xCFF3 0x8E76 +0xCFF4 0x95D5 +0xCFF5 0x673A +0xCFF6 0x6AC3 +0xCFF7 0x6F70 +0xCFF8 0x8A6D +0xCFF9 0x8ECC +0xCFFA 0x994B +0xCFFB 0xF906 +0xCFFC 0x6677 +0xCFFD 0x6B78 +0xCFFE 0x8CB4 +0xD0A1 0x9B3C +0xD0A2 0xF907 +0xD0A3 0x53EB +0xD0A4 0x572D +0xD0A5 0x594E +0xD0A6 0x63C6 +0xD0A7 0x69FB +0xD0A8 0x73EA +0xD0A9 0x7845 +0xD0AA 0x7ABA +0xD0AB 0x7AC5 +0xD0AC 0x7CFE +0xD0AD 0x8475 +0xD0AE 0x898F +0xD0AF 0x8D73 +0xD0B0 0x9035 +0xD0B1 0x95A8 +0xD0B2 0x52FB +0xD0B3 0x5747 +0xD0B4 0x7547 +0xD0B5 0x7B60 +0xD0B6 0x83CC +0xD0B7 0x921E +0xD0B8 0xF908 +0xD0B9 0x6A58 +0xD0BA 0x514B +0xD0BB 0x524B +0xD0BC 0x5287 +0xD0BD 0x621F +0xD0BE 0x68D8 +0xD0BF 0x6975 +0xD0C0 0x9699 +0xD0C1 0x50C5 +0xD0C2 0x52A4 +0xD0C3 0x52E4 +0xD0C4 0x61C3 +0xD0C5 0x65A4 +0xD0C6 0x6839 +0xD0C7 0x69FF +0xD0C8 0x747E +0xD0C9 0x7B4B +0xD0CA 0x82B9 +0xD0CB 0x83EB +0xD0CC 0x89B2 +0xD0CD 0x8B39 +0xD0CE 0x8FD1 +0xD0CF 0x9949 +0xD0D0 0xF909 +0xD0D1 0x4ECA +0xD0D2 0x5997 +0xD0D3 0x64D2 +0xD0D4 0x6611 +0xD0D5 0x6A8E +0xD0D6 0x7434 +0xD0D7 0x7981 +0xD0D8 0x79BD +0xD0D9 0x82A9 +0xD0DA 0x887E +0xD0DB 0x887F +0xD0DC 0x895F +0xD0DD 0xF90A +0xD0DE 0x9326 +0xD0DF 0x4F0B +0xD0E0 0x53CA +0xD0E1 0x6025 +0xD0E2 0x6271 +0xD0E3 0x6C72 +0xD0E4 0x7D1A +0xD0E5 0x7D66 +0xD0E6 0x4E98 +0xD0E7 0x5162 +0xD0E8 0x77DC +0xD0E9 0x80AF +0xD0EA 0x4F01 +0xD0EB 0x4F0E +0xD0EC 0x5176 +0xD0ED 0x5180 +0xD0EE 0x55DC +0xD0EF 0x5668 +0xD0F0 0x573B +0xD0F1 0x57FA +0xD0F2 0x57FC +0xD0F3 0x5914 +0xD0F4 0x5947 +0xD0F5 0x5993 +0xD0F6 0x5BC4 +0xD0F7 0x5C90 +0xD0F8 0x5D0E +0xD0F9 0x5DF1 +0xD0FA 0x5E7E +0xD0FB 0x5FCC +0xD0FC 0x6280 +0xD0FD 0x65D7 +0xD0FE 0x65E3 +0xD1A1 0x671E +0xD1A2 0x671F +0xD1A3 0x675E +0xD1A4 0x68CB +0xD1A5 0x68C4 +0xD1A6 0x6A5F +0xD1A7 0x6B3A +0xD1A8 0x6C23 +0xD1A9 0x6C7D +0xD1AA 0x6C82 +0xD1AB 0x6DC7 +0xD1AC 0x7398 +0xD1AD 0x7426 +0xD1AE 0x742A +0xD1AF 0x7482 +0xD1B0 0x74A3 +0xD1B1 0x7578 +0xD1B2 0x757F +0xD1B3 0x7881 +0xD1B4 0x78EF +0xD1B5 0x7941 +0xD1B6 0x7947 +0xD1B7 0x7948 +0xD1B8 0x797A +0xD1B9 0x7B95 +0xD1BA 0x7D00 +0xD1BB 0x7DBA +0xD1BC 0x7F88 +0xD1BD 0x8006 +0xD1BE 0x802D +0xD1BF 0x808C +0xD1C0 0x8A18 +0xD1C1 0x8B4F +0xD1C2 0x8C48 +0xD1C3 0x8D77 +0xD1C4 0x9321 +0xD1C5 0x9324 +0xD1C6 0x98E2 +0xD1C7 0x9951 +0xD1C8 0x9A0E +0xD1C9 0x9A0F +0xD1CA 0x9A65 +0xD1CB 0x9E92 +0xD1CC 0x7DCA +0xD1CD 0x4F76 +0xD1CE 0x5409 +0xD1CF 0x62EE +0xD1D0 0x6854 +0xD1D1 0x91D1 +0xD1D2 0x55AB +0xD1D3 0x513A +0xD1D4 0xF90B +0xD1D5 0xF90C +0xD1D6 0x5A1C +0xD1D7 0x61E6 +0xD1D8 0xF90D +0xD1D9 0x62CF +0xD1DA 0x62FF +0xD1DB 0xF90E +0xD1DC 0xF90F +0xD1DD 0xF910 +0xD1DE 0xF911 +0xD1DF 0xF912 +0xD1E0 0xF913 +0xD1E1 0x90A3 +0xD1E2 0xF914 +0xD1E3 0xF915 +0xD1E4 0xF916 +0xD1E5 0xF917 +0xD1E6 0xF918 +0xD1E7 0x8AFE +0xD1E8 0xF919 +0xD1E9 0xF91A +0xD1EA 0xF91B +0xD1EB 0xF91C +0xD1EC 0x6696 +0xD1ED 0xF91D +0xD1EE 0x7156 +0xD1EF 0xF91E +0xD1F0 0xF91F +0xD1F1 0x96E3 +0xD1F2 0xF920 +0xD1F3 0x634F +0xD1F4 0x637A +0xD1F5 0x5357 +0xD1F6 0xF921 +0xD1F7 0x678F +0xD1F8 0x6960 +0xD1F9 0x6E73 +0xD1FA 0xF922 +0xD1FB 0x7537 +0xD1FC 0xF923 +0xD1FD 0xF924 +0xD1FE 0xF925 +0xD2A1 0x7D0D +0xD2A2 0xF926 +0xD2A3 0xF927 +0xD2A4 0x8872 +0xD2A5 0x56CA +0xD2A6 0x5A18 +0xD2A7 0xF928 +0xD2A8 0xF929 +0xD2A9 0xF92A +0xD2AA 0xF92B +0xD2AB 0xF92C +0xD2AC 0x4E43 +0xD2AD 0xF92D +0xD2AE 0x5167 +0xD2AF 0x5948 +0xD2B0 0x67F0 +0xD2B1 0x8010 +0xD2B2 0xF92E +0xD2B3 0x5973 +0xD2B4 0x5E74 +0xD2B5 0x649A +0xD2B6 0x79CA +0xD2B7 0x5FF5 +0xD2B8 0x606C +0xD2B9 0x62C8 +0xD2BA 0x637B +0xD2BB 0x5BE7 +0xD2BC 0x5BD7 +0xD2BD 0x52AA +0xD2BE 0xF92F +0xD2BF 0x5974 +0xD2C0 0x5F29 +0xD2C1 0x6012 +0xD2C2 0xF930 +0xD2C3 0xF931 +0xD2C4 0xF932 +0xD2C5 0x7459 +0xD2C6 0xF933 +0xD2C7 0xF934 +0xD2C8 0xF935 +0xD2C9 0xF936 +0xD2CA 0xF937 +0xD2CB 0xF938 +0xD2CC 0x99D1 +0xD2CD 0xF939 +0xD2CE 0xF93A +0xD2CF 0xF93B +0xD2D0 0xF93C +0xD2D1 0xF93D +0xD2D2 0xF93E +0xD2D3 0xF93F +0xD2D4 0xF940 +0xD2D5 0xF941 +0xD2D6 0xF942 +0xD2D7 0xF943 +0xD2D8 0x6FC3 +0xD2D9 0xF944 +0xD2DA 0xF945 +0xD2DB 0x81BF +0xD2DC 0x8FB2 +0xD2DD 0x60F1 +0xD2DE 0xF946 +0xD2DF 0xF947 +0xD2E0 0x8166 +0xD2E1 0xF948 +0xD2E2 0xF949 +0xD2E3 0x5C3F +0xD2E4 0xF94A +0xD2E5 0xF94B +0xD2E6 0xF94C +0xD2E7 0xF94D +0xD2E8 0xF94E +0xD2E9 0xF94F +0xD2EA 0xF950 +0xD2EB 0xF951 +0xD2EC 0x5AE9 +0xD2ED 0x8A25 +0xD2EE 0x677B +0xD2EF 0x7D10 +0xD2F0 0xF952 +0xD2F1 0xF953 +0xD2F2 0xF954 +0xD2F3 0xF955 +0xD2F4 0xF956 +0xD2F5 0xF957 +0xD2F6 0x80FD +0xD2F7 0xF958 +0xD2F8 0xF959 +0xD2F9 0x5C3C +0xD2FA 0x6CE5 +0xD2FB 0x533F +0xD2FC 0x6EBA +0xD2FD 0x591A +0xD2FE 0x8336 +0xD3A1 0x4E39 +0xD3A2 0x4EB6 +0xD3A3 0x4F46 +0xD3A4 0x55AE +0xD3A5 0x5718 +0xD3A6 0x58C7 +0xD3A7 0x5F56 +0xD3A8 0x65B7 +0xD3A9 0x65E6 +0xD3AA 0x6A80 +0xD3AB 0x6BB5 +0xD3AC 0x6E4D +0xD3AD 0x77ED +0xD3AE 0x7AEF +0xD3AF 0x7C1E +0xD3B0 0x7DDE +0xD3B1 0x86CB +0xD3B2 0x8892 +0xD3B3 0x9132 +0xD3B4 0x935B +0xD3B5 0x64BB +0xD3B6 0x6FBE +0xD3B7 0x737A +0xD3B8 0x75B8 +0xD3B9 0x9054 +0xD3BA 0x5556 +0xD3BB 0x574D +0xD3BC 0x61BA +0xD3BD 0x64D4 +0xD3BE 0x66C7 +0xD3BF 0x6DE1 +0xD3C0 0x6E5B +0xD3C1 0x6F6D +0xD3C2 0x6FB9 +0xD3C3 0x75F0 +0xD3C4 0x8043 +0xD3C5 0x81BD +0xD3C6 0x8541 +0xD3C7 0x8983 +0xD3C8 0x8AC7 +0xD3C9 0x8B5A +0xD3CA 0x931F +0xD3CB 0x6C93 +0xD3CC 0x7553 +0xD3CD 0x7B54 +0xD3CE 0x8E0F +0xD3CF 0x905D +0xD3D0 0x5510 +0xD3D1 0x5802 +0xD3D2 0x5858 +0xD3D3 0x5E62 +0xD3D4 0x6207 +0xD3D5 0x649E +0xD3D6 0x68E0 +0xD3D7 0x7576 +0xD3D8 0x7CD6 +0xD3D9 0x87B3 +0xD3DA 0x9EE8 +0xD3DB 0x4EE3 +0xD3DC 0x5788 +0xD3DD 0x576E +0xD3DE 0x5927 +0xD3DF 0x5C0D +0xD3E0 0x5CB1 +0xD3E1 0x5E36 +0xD3E2 0x5F85 +0xD3E3 0x6234 +0xD3E4 0x64E1 +0xD3E5 0x73B3 +0xD3E6 0x81FA +0xD3E7 0x888B +0xD3E8 0x8CB8 +0xD3E9 0x968A +0xD3EA 0x9EDB +0xD3EB 0x5B85 +0xD3EC 0x5FB7 +0xD3ED 0x60B3 +0xD3EE 0x5012 +0xD3EF 0x5200 +0xD3F0 0x5230 +0xD3F1 0x5716 +0xD3F2 0x5835 +0xD3F3 0x5857 +0xD3F4 0x5C0E +0xD3F5 0x5C60 +0xD3F6 0x5CF6 +0xD3F7 0x5D8B +0xD3F8 0x5EA6 +0xD3F9 0x5F92 +0xD3FA 0x60BC +0xD3FB 0x6311 +0xD3FC 0x6389 +0xD3FD 0x6417 +0xD3FE 0x6843 +0xD4A1 0x68F9 +0xD4A2 0x6AC2 +0xD4A3 0x6DD8 +0xD4A4 0x6E21 +0xD4A5 0x6ED4 +0xD4A6 0x6FE4 +0xD4A7 0x71FE +0xD4A8 0x76DC +0xD4A9 0x7779 +0xD4AA 0x79B1 +0xD4AB 0x7A3B +0xD4AC 0x8404 +0xD4AD 0x89A9 +0xD4AE 0x8CED +0xD4AF 0x8DF3 +0xD4B0 0x8E48 +0xD4B1 0x9003 +0xD4B2 0x9014 +0xD4B3 0x9053 +0xD4B4 0x90FD +0xD4B5 0x934D +0xD4B6 0x9676 +0xD4B7 0x97DC +0xD4B8 0x6BD2 +0xD4B9 0x7006 +0xD4BA 0x7258 +0xD4BB 0x72A2 +0xD4BC 0x7368 +0xD4BD 0x7763 +0xD4BE 0x79BF +0xD4BF 0x7BE4 +0xD4C0 0x7E9B +0xD4C1 0x8B80 +0xD4C2 0x58A9 +0xD4C3 0x60C7 +0xD4C4 0x6566 +0xD4C5 0x65FD +0xD4C6 0x66BE +0xD4C7 0x6C8C +0xD4C8 0x711E +0xD4C9 0x71C9 +0xD4CA 0x8C5A +0xD4CB 0x9813 +0xD4CC 0x4E6D +0xD4CD 0x7A81 +0xD4CE 0x4EDD +0xD4CF 0x51AC +0xD4D0 0x51CD +0xD4D1 0x52D5 +0xD4D2 0x540C +0xD4D3 0x61A7 +0xD4D4 0x6771 +0xD4D5 0x6850 +0xD4D6 0x68DF +0xD4D7 0x6D1E +0xD4D8 0x6F7C +0xD4D9 0x75BC +0xD4DA 0x77B3 +0xD4DB 0x7AE5 +0xD4DC 0x80F4 +0xD4DD 0x8463 +0xD4DE 0x9285 +0xD4DF 0x515C +0xD4E0 0x6597 +0xD4E1 0x675C +0xD4E2 0x6793 +0xD4E3 0x75D8 +0xD4E4 0x7AC7 +0xD4E5 0x8373 +0xD4E6 0xF95A +0xD4E7 0x8C46 +0xD4E8 0x9017 +0xD4E9 0x982D +0xD4EA 0x5C6F +0xD4EB 0x81C0 +0xD4EC 0x829A +0xD4ED 0x9041 +0xD4EE 0x906F +0xD4EF 0x920D +0xD4F0 0x5F97 +0xD4F1 0x5D9D +0xD4F2 0x6A59 +0xD4F3 0x71C8 +0xD4F4 0x767B +0xD4F5 0x7B49 +0xD4F6 0x85E4 +0xD4F7 0x8B04 +0xD4F8 0x9127 +0xD4F9 0x9A30 +0xD4FA 0x5587 +0xD4FB 0x61F6 +0xD4FC 0xF95B +0xD4FD 0x7669 +0xD4FE 0x7F85 +0xD5A1 0x863F +0xD5A2 0x87BA +0xD5A3 0x88F8 +0xD5A4 0x908F +0xD5A5 0xF95C +0xD5A6 0x6D1B +0xD5A7 0x70D9 +0xD5A8 0x73DE +0xD5A9 0x7D61 +0xD5AA 0x843D +0xD5AB 0xF95D +0xD5AC 0x916A +0xD5AD 0x99F1 +0xD5AE 0xF95E +0xD5AF 0x4E82 +0xD5B0 0x5375 +0xD5B1 0x6B04 +0xD5B2 0x6B12 +0xD5B3 0x703E +0xD5B4 0x721B +0xD5B5 0x862D +0xD5B6 0x9E1E +0xD5B7 0x524C +0xD5B8 0x8FA3 +0xD5B9 0x5D50 +0xD5BA 0x64E5 +0xD5BB 0x652C +0xD5BC 0x6B16 +0xD5BD 0x6FEB +0xD5BE 0x7C43 +0xD5BF 0x7E9C +0xD5C0 0x85CD +0xD5C1 0x8964 +0xD5C2 0x89BD +0xD5C3 0x62C9 +0xD5C4 0x81D8 +0xD5C5 0x881F +0xD5C6 0x5ECA +0xD5C7 0x6717 +0xD5C8 0x6D6A +0xD5C9 0x72FC +0xD5CA 0x7405 +0xD5CB 0x746F +0xD5CC 0x8782 +0xD5CD 0x90DE +0xD5CE 0x4F86 +0xD5CF 0x5D0D +0xD5D0 0x5FA0 +0xD5D1 0x840A +0xD5D2 0x51B7 +0xD5D3 0x63A0 +0xD5D4 0x7565 +0xD5D5 0x4EAE +0xD5D6 0x5006 +0xD5D7 0x5169 +0xD5D8 0x51C9 +0xD5D9 0x6881 +0xD5DA 0x6A11 +0xD5DB 0x7CAE +0xD5DC 0x7CB1 +0xD5DD 0x7CE7 +0xD5DE 0x826F +0xD5DF 0x8AD2 +0xD5E0 0x8F1B +0xD5E1 0x91CF +0xD5E2 0x4FB6 +0xD5E3 0x5137 +0xD5E4 0x52F5 +0xD5E5 0x5442 +0xD5E6 0x5EEC +0xD5E7 0x616E +0xD5E8 0x623E +0xD5E9 0x65C5 +0xD5EA 0x6ADA +0xD5EB 0x6FFE +0xD5EC 0x792A +0xD5ED 0x85DC +0xD5EE 0x8823 +0xD5EF 0x95AD +0xD5F0 0x9A62 +0xD5F1 0x9A6A +0xD5F2 0x9E97 +0xD5F3 0x9ECE +0xD5F4 0x529B +0xD5F5 0x66C6 +0xD5F6 0x6B77 +0xD5F7 0x701D +0xD5F8 0x792B +0xD5F9 0x8F62 +0xD5FA 0x9742 +0xD5FB 0x6190 +0xD5FC 0x6200 +0xD5FD 0x6523 +0xD5FE 0x6F23 +0xD6A1 0x7149 +0xD6A2 0x7489 +0xD6A3 0x7DF4 +0xD6A4 0x806F +0xD6A5 0x84EE +0xD6A6 0x8F26 +0xD6A7 0x9023 +0xD6A8 0x934A +0xD6A9 0x51BD +0xD6AA 0x5217 +0xD6AB 0x52A3 +0xD6AC 0x6D0C +0xD6AD 0x70C8 +0xD6AE 0x88C2 +0xD6AF 0x5EC9 +0xD6B0 0x6582 +0xD6B1 0x6BAE +0xD6B2 0x6FC2 +0xD6B3 0x7C3E +0xD6B4 0x7375 +0xD6B5 0x4EE4 +0xD6B6 0x4F36 +0xD6B7 0x56F9 +0xD6B8 0xF95F +0xD6B9 0x5CBA +0xD6BA 0x5DBA +0xD6BB 0x601C +0xD6BC 0x73B2 +0xD6BD 0x7B2D +0xD6BE 0x7F9A +0xD6BF 0x7FCE +0xD6C0 0x8046 +0xD6C1 0x901E +0xD6C2 0x9234 +0xD6C3 0x96F6 +0xD6C4 0x9748 +0xD6C5 0x9818 +0xD6C6 0x9F61 +0xD6C7 0x4F8B +0xD6C8 0x6FA7 +0xD6C9 0x79AE +0xD6CA 0x91B4 +0xD6CB 0x96B7 +0xD6CC 0x52DE +0xD6CD 0xF960 +0xD6CE 0x6488 +0xD6CF 0x64C4 +0xD6D0 0x6AD3 +0xD6D1 0x6F5E +0xD6D2 0x7018 +0xD6D3 0x7210 +0xD6D4 0x76E7 +0xD6D5 0x8001 +0xD6D6 0x8606 +0xD6D7 0x865C +0xD6D8 0x8DEF +0xD6D9 0x8F05 +0xD6DA 0x9732 +0xD6DB 0x9B6F +0xD6DC 0x9DFA +0xD6DD 0x9E75 +0xD6DE 0x788C +0xD6DF 0x797F +0xD6E0 0x7DA0 +0xD6E1 0x83C9 +0xD6E2 0x9304 +0xD6E3 0x9E7F +0xD6E4 0x9E93 +0xD6E5 0x8AD6 +0xD6E6 0x58DF +0xD6E7 0x5F04 +0xD6E8 0x6727 +0xD6E9 0x7027 +0xD6EA 0x74CF +0xD6EB 0x7C60 +0xD6EC 0x807E +0xD6ED 0x5121 +0xD6EE 0x7028 +0xD6EF 0x7262 +0xD6F0 0x78CA +0xD6F1 0x8CC2 +0xD6F2 0x8CDA +0xD6F3 0x8CF4 +0xD6F4 0x96F7 +0xD6F5 0x4E86 +0xD6F6 0x50DA +0xD6F7 0x5BEE +0xD6F8 0x5ED6 +0xD6F9 0x6599 +0xD6FA 0x71CE +0xD6FB 0x7642 +0xD6FC 0x77AD +0xD6FD 0x804A +0xD6FE 0x84FC +0xD7A1 0x907C +0xD7A2 0x9B27 +0xD7A3 0x9F8D +0xD7A4 0x58D8 +0xD7A5 0x5A41 +0xD7A6 0x5C62 +0xD7A7 0x6A13 +0xD7A8 0x6DDA +0xD7A9 0x6F0F +0xD7AA 0x763B +0xD7AB 0x7D2F +0xD7AC 0x7E37 +0xD7AD 0x851E +0xD7AE 0x8938 +0xD7AF 0x93E4 +0xD7B0 0x964B +0xD7B1 0x5289 +0xD7B2 0x65D2 +0xD7B3 0x67F3 +0xD7B4 0x69B4 +0xD7B5 0x6D41 +0xD7B6 0x6E9C +0xD7B7 0x700F +0xD7B8 0x7409 +0xD7B9 0x7460 +0xD7BA 0x7559 +0xD7BB 0x7624 +0xD7BC 0x786B +0xD7BD 0x8B2C +0xD7BE 0x985E +0xD7BF 0x516D +0xD7C0 0x622E +0xD7C1 0x9678 +0xD7C2 0x4F96 +0xD7C3 0x502B +0xD7C4 0x5D19 +0xD7C5 0x6DEA +0xD7C6 0x7DB8 +0xD7C7 0x8F2A +0xD7C8 0x5F8B +0xD7C9 0x6144 +0xD7CA 0x6817 +0xD7CB 0xF961 +0xD7CC 0x9686 +0xD7CD 0x52D2 +0xD7CE 0x808B +0xD7CF 0x51DC +0xD7D0 0x51CC +0xD7D1 0x695E +0xD7D2 0x7A1C +0xD7D3 0x7DBE +0xD7D4 0x83F1 +0xD7D5 0x9675 +0xD7D6 0x4FDA +0xD7D7 0x5229 +0xD7D8 0x5398 +0xD7D9 0x540F +0xD7DA 0x550E +0xD7DB 0x5C65 +0xD7DC 0x60A7 +0xD7DD 0x674E +0xD7DE 0x68A8 +0xD7DF 0x6D6C +0xD7E0 0x7281 +0xD7E1 0x72F8 +0xD7E2 0x7406 +0xD7E3 0x7483 +0xD7E4 0xF962 +0xD7E5 0x75E2 +0xD7E6 0x7C6C +0xD7E7 0x7F79 +0xD7E8 0x7FB8 +0xD7E9 0x8389 +0xD7EA 0x88CF +0xD7EB 0x88E1 +0xD7EC 0x91CC +0xD7ED 0x91D0 +0xD7EE 0x96E2 +0xD7EF 0x9BC9 +0xD7F0 0x541D +0xD7F1 0x6F7E +0xD7F2 0x71D0 +0xD7F3 0x7498 +0xD7F4 0x85FA +0xD7F5 0x8EAA +0xD7F6 0x96A3 +0xD7F7 0x9C57 +0xD7F8 0x9E9F +0xD7F9 0x6797 +0xD7FA 0x6DCB +0xD7FB 0x7433 +0xD7FC 0x81E8 +0xD7FD 0x9716 +0xD7FE 0x782C +0xD8A1 0x7ACB +0xD8A2 0x7B20 +0xD8A3 0x7C92 +0xD8A4 0x6469 +0xD8A5 0x746A +0xD8A6 0x75F2 +0xD8A7 0x78BC +0xD8A8 0x78E8 +0xD8A9 0x99AC +0xD8AA 0x9B54 +0xD8AB 0x9EBB +0xD8AC 0x5BDE +0xD8AD 0x5E55 +0xD8AE 0x6F20 +0xD8AF 0x819C +0xD8B0 0x83AB +0xD8B1 0x9088 +0xD8B2 0x4E07 +0xD8B3 0x534D +0xD8B4 0x5A29 +0xD8B5 0x5DD2 +0xD8B6 0x5F4E +0xD8B7 0x6162 +0xD8B8 0x633D +0xD8B9 0x6669 +0xD8BA 0x66FC +0xD8BB 0x6EFF +0xD8BC 0x6F2B +0xD8BD 0x7063 +0xD8BE 0x779E +0xD8BF 0x842C +0xD8C0 0x8513 +0xD8C1 0x883B +0xD8C2 0x8F13 +0xD8C3 0x9945 +0xD8C4 0x9C3B +0xD8C5 0x551C +0xD8C6 0x62B9 +0xD8C7 0x672B +0xD8C8 0x6CAB +0xD8C9 0x8309 +0xD8CA 0x896A +0xD8CB 0x977A +0xD8CC 0x4EA1 +0xD8CD 0x5984 +0xD8CE 0x5FD8 +0xD8CF 0x5FD9 +0xD8D0 0x671B +0xD8D1 0x7DB2 +0xD8D2 0x7F54 +0xD8D3 0x8292 +0xD8D4 0x832B +0xD8D5 0x83BD +0xD8D6 0x8F1E +0xD8D7 0x9099 +0xD8D8 0x57CB +0xD8D9 0x59B9 +0xD8DA 0x5A92 +0xD8DB 0x5BD0 +0xD8DC 0x6627 +0xD8DD 0x679A +0xD8DE 0x6885 +0xD8DF 0x6BCF +0xD8E0 0x7164 +0xD8E1 0x7F75 +0xD8E2 0x8CB7 +0xD8E3 0x8CE3 +0xD8E4 0x9081 +0xD8E5 0x9B45 +0xD8E6 0x8108 +0xD8E7 0x8C8A +0xD8E8 0x964C +0xD8E9 0x9A40 +0xD8EA 0x9EA5 +0xD8EB 0x5B5F +0xD8EC 0x6C13 +0xD8ED 0x731B +0xD8EE 0x76F2 +0xD8EF 0x76DF +0xD8F0 0x840C +0xD8F1 0x51AA +0xD8F2 0x8993 +0xD8F3 0x514D +0xD8F4 0x5195 +0xD8F5 0x52C9 +0xD8F6 0x68C9 +0xD8F7 0x6C94 +0xD8F8 0x7704 +0xD8F9 0x7720 +0xD8FA 0x7DBF +0xD8FB 0x7DEC +0xD8FC 0x9762 +0xD8FD 0x9EB5 +0xD8FE 0x6EC5 +0xD9A1 0x8511 +0xD9A2 0x51A5 +0xD9A3 0x540D +0xD9A4 0x547D +0xD9A5 0x660E +0xD9A6 0x669D +0xD9A7 0x6927 +0xD9A8 0x6E9F +0xD9A9 0x76BF +0xD9AA 0x7791 +0xD9AB 0x8317 +0xD9AC 0x84C2 +0xD9AD 0x879F +0xD9AE 0x9169 +0xD9AF 0x9298 +0xD9B0 0x9CF4 +0xD9B1 0x8882 +0xD9B2 0x4FAE +0xD9B3 0x5192 +0xD9B4 0x52DF +0xD9B5 0x59C6 +0xD9B6 0x5E3D +0xD9B7 0x6155 +0xD9B8 0x6478 +0xD9B9 0x6479 +0xD9BA 0x66AE +0xD9BB 0x67D0 +0xD9BC 0x6A21 +0xD9BD 0x6BCD +0xD9BE 0x6BDB +0xD9BF 0x725F +0xD9C0 0x7261 +0xD9C1 0x7441 +0xD9C2 0x7738 +0xD9C3 0x77DB +0xD9C4 0x8017 +0xD9C5 0x82BC +0xD9C6 0x8305 +0xD9C7 0x8B00 +0xD9C8 0x8B28 +0xD9C9 0x8C8C +0xD9CA 0x6728 +0xD9CB 0x6C90 +0xD9CC 0x7267 +0xD9CD 0x76EE +0xD9CE 0x7766 +0xD9CF 0x7A46 +0xD9D0 0x9DA9 +0xD9D1 0x6B7F +0xD9D2 0x6C92 +0xD9D3 0x5922 +0xD9D4 0x6726 +0xD9D5 0x8499 +0xD9D6 0x536F +0xD9D7 0x5893 +0xD9D8 0x5999 +0xD9D9 0x5EDF +0xD9DA 0x63CF +0xD9DB 0x6634 +0xD9DC 0x6773 +0xD9DD 0x6E3A +0xD9DE 0x732B +0xD9DF 0x7AD7 +0xD9E0 0x82D7 +0xD9E1 0x9328 +0xD9E2 0x52D9 +0xD9E3 0x5DEB +0xD9E4 0x61AE +0xD9E5 0x61CB +0xD9E6 0x620A +0xD9E7 0x62C7 +0xD9E8 0x64AB +0xD9E9 0x65E0 +0xD9EA 0x6959 +0xD9EB 0x6B66 +0xD9EC 0x6BCB +0xD9ED 0x7121 +0xD9EE 0x73F7 +0xD9EF 0x755D +0xD9F0 0x7E46 +0xD9F1 0x821E +0xD9F2 0x8302 +0xD9F3 0x856A +0xD9F4 0x8AA3 +0xD9F5 0x8CBF +0xD9F6 0x9727 +0xD9F7 0x9D61 +0xD9F8 0x58A8 +0xD9F9 0x9ED8 +0xD9FA 0x5011 +0xD9FB 0x520E +0xD9FC 0x543B +0xD9FD 0x554F +0xD9FE 0x6587 +0xDAA1 0x6C76 +0xDAA2 0x7D0A +0xDAA3 0x7D0B +0xDAA4 0x805E +0xDAA5 0x868A +0xDAA6 0x9580 +0xDAA7 0x96EF +0xDAA8 0x52FF +0xDAA9 0x6C95 +0xDAAA 0x7269 +0xDAAB 0x5473 +0xDAAC 0x5A9A +0xDAAD 0x5C3E +0xDAAE 0x5D4B +0xDAAF 0x5F4C +0xDAB0 0x5FAE +0xDAB1 0x672A +0xDAB2 0x68B6 +0xDAB3 0x6963 +0xDAB4 0x6E3C +0xDAB5 0x6E44 +0xDAB6 0x7709 +0xDAB7 0x7C73 +0xDAB8 0x7F8E +0xDAB9 0x8587 +0xDABA 0x8B0E +0xDABB 0x8FF7 +0xDABC 0x9761 +0xDABD 0x9EF4 +0xDABE 0x5CB7 +0xDABF 0x60B6 +0xDAC0 0x610D +0xDAC1 0x61AB +0xDAC2 0x654F +0xDAC3 0x65FB +0xDAC4 0x65FC +0xDAC5 0x6C11 +0xDAC6 0x6CEF +0xDAC7 0x739F +0xDAC8 0x73C9 +0xDAC9 0x7DE1 +0xDACA 0x9594 +0xDACB 0x5BC6 +0xDACC 0x871C +0xDACD 0x8B10 +0xDACE 0x525D +0xDACF 0x535A +0xDAD0 0x62CD +0xDAD1 0x640F +0xDAD2 0x64B2 +0xDAD3 0x6734 +0xDAD4 0x6A38 +0xDAD5 0x6CCA +0xDAD6 0x73C0 +0xDAD7 0x749E +0xDAD8 0x7B94 +0xDAD9 0x7C95 +0xDADA 0x7E1B +0xDADB 0x818A +0xDADC 0x8236 +0xDADD 0x8584 +0xDADE 0x8FEB +0xDADF 0x96F9 +0xDAE0 0x99C1 +0xDAE1 0x4F34 +0xDAE2 0x534A +0xDAE3 0x53CD +0xDAE4 0x53DB +0xDAE5 0x62CC +0xDAE6 0x642C +0xDAE7 0x6500 +0xDAE8 0x6591 +0xDAE9 0x69C3 +0xDAEA 0x6CEE +0xDAEB 0x6F58 +0xDAEC 0x73ED +0xDAED 0x7554 +0xDAEE 0x7622 +0xDAEF 0x76E4 +0xDAF0 0x76FC +0xDAF1 0x78D0 +0xDAF2 0x78FB +0xDAF3 0x792C +0xDAF4 0x7D46 +0xDAF5 0x822C +0xDAF6 0x87E0 +0xDAF7 0x8FD4 +0xDAF8 0x9812 +0xDAF9 0x98EF +0xDAFA 0x52C3 +0xDAFB 0x62D4 +0xDAFC 0x64A5 +0xDAFD 0x6E24 +0xDAFE 0x6F51 +0xDBA1 0x767C +0xDBA2 0x8DCB +0xDBA3 0x91B1 +0xDBA4 0x9262 +0xDBA5 0x9AEE +0xDBA6 0x9B43 +0xDBA7 0x5023 +0xDBA8 0x508D +0xDBA9 0x574A +0xDBAA 0x59A8 +0xDBAB 0x5C28 +0xDBAC 0x5E47 +0xDBAD 0x5F77 +0xDBAE 0x623F +0xDBAF 0x653E +0xDBB0 0x65B9 +0xDBB1 0x65C1 +0xDBB2 0x6609 +0xDBB3 0x678B +0xDBB4 0x699C +0xDBB5 0x6EC2 +0xDBB6 0x78C5 +0xDBB7 0x7D21 +0xDBB8 0x80AA +0xDBB9 0x8180 +0xDBBA 0x822B +0xDBBB 0x82B3 +0xDBBC 0x84A1 +0xDBBD 0x868C +0xDBBE 0x8A2A +0xDBBF 0x8B17 +0xDBC0 0x90A6 +0xDBC1 0x9632 +0xDBC2 0x9F90 +0xDBC3 0x500D +0xDBC4 0x4FF3 +0xDBC5 0xF963 +0xDBC6 0x57F9 +0xDBC7 0x5F98 +0xDBC8 0x62DC +0xDBC9 0x6392 +0xDBCA 0x676F +0xDBCB 0x6E43 +0xDBCC 0x7119 +0xDBCD 0x76C3 +0xDBCE 0x80CC +0xDBCF 0x80DA +0xDBD0 0x88F4 +0xDBD1 0x88F5 +0xDBD2 0x8919 +0xDBD3 0x8CE0 +0xDBD4 0x8F29 +0xDBD5 0x914D +0xDBD6 0x966A +0xDBD7 0x4F2F +0xDBD8 0x4F70 +0xDBD9 0x5E1B +0xDBDA 0x67CF +0xDBDB 0x6822 +0xDBDC 0x767D +0xDBDD 0x767E +0xDBDE 0x9B44 +0xDBDF 0x5E61 +0xDBE0 0x6A0A +0xDBE1 0x7169 +0xDBE2 0x71D4 +0xDBE3 0x756A +0xDBE4 0xF964 +0xDBE5 0x7E41 +0xDBE6 0x8543 +0xDBE7 0x85E9 +0xDBE8 0x98DC +0xDBE9 0x4F10 +0xDBEA 0x7B4F +0xDBEB 0x7F70 +0xDBEC 0x95A5 +0xDBED 0x51E1 +0xDBEE 0x5E06 +0xDBEF 0x68B5 +0xDBF0 0x6C3E +0xDBF1 0x6C4E +0xDBF2 0x6CDB +0xDBF3 0x72AF +0xDBF4 0x7BC4 +0xDBF5 0x8303 +0xDBF6 0x6CD5 +0xDBF7 0x743A +0xDBF8 0x50FB +0xDBF9 0x5288 +0xDBFA 0x58C1 +0xDBFB 0x64D8 +0xDBFC 0x6A97 +0xDBFD 0x74A7 +0xDBFE 0x7656 +0xDCA1 0x78A7 +0xDCA2 0x8617 +0xDCA3 0x95E2 +0xDCA4 0x9739 +0xDCA5 0xF965 +0xDCA6 0x535E +0xDCA7 0x5F01 +0xDCA8 0x8B8A +0xDCA9 0x8FA8 +0xDCAA 0x8FAF +0xDCAB 0x908A +0xDCAC 0x5225 +0xDCAD 0x77A5 +0xDCAE 0x9C49 +0xDCAF 0x9F08 +0xDCB0 0x4E19 +0xDCB1 0x5002 +0xDCB2 0x5175 +0xDCB3 0x5C5B +0xDCB4 0x5E77 +0xDCB5 0x661E +0xDCB6 0x663A +0xDCB7 0x67C4 +0xDCB8 0x68C5 +0xDCB9 0x70B3 +0xDCBA 0x7501 +0xDCBB 0x75C5 +0xDCBC 0x79C9 +0xDCBD 0x7ADD +0xDCBE 0x8F27 +0xDCBF 0x9920 +0xDCC0 0x9A08 +0xDCC1 0x4FDD +0xDCC2 0x5821 +0xDCC3 0x5831 +0xDCC4 0x5BF6 +0xDCC5 0x666E +0xDCC6 0x6B65 +0xDCC7 0x6D11 +0xDCC8 0x6E7A +0xDCC9 0x6F7D +0xDCCA 0x73E4 +0xDCCB 0x752B +0xDCCC 0x83E9 +0xDCCD 0x88DC +0xDCCE 0x8913 +0xDCCF 0x8B5C +0xDCD0 0x8F14 +0xDCD1 0x4F0F +0xDCD2 0x50D5 +0xDCD3 0x5310 +0xDCD4 0x535C +0xDCD5 0x5B93 +0xDCD6 0x5FA9 +0xDCD7 0x670D +0xDCD8 0x798F +0xDCD9 0x8179 +0xDCDA 0x832F +0xDCDB 0x8514 +0xDCDC 0x8907 +0xDCDD 0x8986 +0xDCDE 0x8F39 +0xDCDF 0x8F3B +0xDCE0 0x99A5 +0xDCE1 0x9C12 +0xDCE2 0x672C +0xDCE3 0x4E76 +0xDCE4 0x4FF8 +0xDCE5 0x5949 +0xDCE6 0x5C01 +0xDCE7 0x5CEF +0xDCE8 0x5CF0 +0xDCE9 0x6367 +0xDCEA 0x68D2 +0xDCEB 0x70FD +0xDCEC 0x71A2 +0xDCED 0x742B +0xDCEE 0x7E2B +0xDCEF 0x84EC +0xDCF0 0x8702 +0xDCF1 0x9022 +0xDCF2 0x92D2 +0xDCF3 0x9CF3 +0xDCF4 0x4E0D +0xDCF5 0x4ED8 +0xDCF6 0x4FEF +0xDCF7 0x5085 +0xDCF8 0x5256 +0xDCF9 0x526F +0xDCFA 0x5426 +0xDCFB 0x5490 +0xDCFC 0x57E0 +0xDCFD 0x592B +0xDCFE 0x5A66 +0xDDA1 0x5B5A +0xDDA2 0x5B75 +0xDDA3 0x5BCC +0xDDA4 0x5E9C +0xDDA5 0xF966 +0xDDA6 0x6276 +0xDDA7 0x6577 +0xDDA8 0x65A7 +0xDDA9 0x6D6E +0xDDAA 0x6EA5 +0xDDAB 0x7236 +0xDDAC 0x7B26 +0xDDAD 0x7C3F +0xDDAE 0x7F36 +0xDDAF 0x8150 +0xDDB0 0x8151 +0xDDB1 0x819A +0xDDB2 0x8240 +0xDDB3 0x8299 +0xDDB4 0x83A9 +0xDDB5 0x8A03 +0xDDB6 0x8CA0 +0xDDB7 0x8CE6 +0xDDB8 0x8CFB +0xDDB9 0x8D74 +0xDDBA 0x8DBA +0xDDBB 0x90E8 +0xDDBC 0x91DC +0xDDBD 0x961C +0xDDBE 0x9644 +0xDDBF 0x99D9 +0xDDC0 0x9CE7 +0xDDC1 0x5317 +0xDDC2 0x5206 +0xDDC3 0x5429 +0xDDC4 0x5674 +0xDDC5 0x58B3 +0xDDC6 0x5954 +0xDDC7 0x596E +0xDDC8 0x5FFF +0xDDC9 0x61A4 +0xDDCA 0x626E +0xDDCB 0x6610 +0xDDCC 0x6C7E +0xDDCD 0x711A +0xDDCE 0x76C6 +0xDDCF 0x7C89 +0xDDD0 0x7CDE +0xDDD1 0x7D1B +0xDDD2 0x82AC +0xDDD3 0x8CC1 +0xDDD4 0x96F0 +0xDDD5 0xF967 +0xDDD6 0x4F5B +0xDDD7 0x5F17 +0xDDD8 0x5F7F +0xDDD9 0x62C2 +0xDDDA 0x5D29 +0xDDDB 0x670B +0xDDDC 0x68DA +0xDDDD 0x787C +0xDDDE 0x7E43 +0xDDDF 0x9D6C +0xDDE0 0x4E15 +0xDDE1 0x5099 +0xDDE2 0x5315 +0xDDE3 0x532A +0xDDE4 0x5351 +0xDDE5 0x5983 +0xDDE6 0x5A62 +0xDDE7 0x5E87 +0xDDE8 0x60B2 +0xDDE9 0x618A +0xDDEA 0x6249 +0xDDEB 0x6279 +0xDDEC 0x6590 +0xDDED 0x6787 +0xDDEE 0x69A7 +0xDDEF 0x6BD4 +0xDDF0 0x6BD6 +0xDDF1 0x6BD7 +0xDDF2 0x6BD8 +0xDDF3 0x6CB8 +0xDDF4 0xF968 +0xDDF5 0x7435 +0xDDF6 0x75FA +0xDDF7 0x7812 +0xDDF8 0x7891 +0xDDF9 0x79D5 +0xDDFA 0x79D8 +0xDDFB 0x7C83 +0xDDFC 0x7DCB +0xDDFD 0x7FE1 +0xDDFE 0x80A5 +0xDEA1 0x813E +0xDEA2 0x81C2 +0xDEA3 0x83F2 +0xDEA4 0x871A +0xDEA5 0x88E8 +0xDEA6 0x8AB9 +0xDEA7 0x8B6C +0xDEA8 0x8CBB +0xDEA9 0x9119 +0xDEAA 0x975E +0xDEAB 0x98DB +0xDEAC 0x9F3B +0xDEAD 0x56AC +0xDEAE 0x5B2A +0xDEAF 0x5F6C +0xDEB0 0x658C +0xDEB1 0x6AB3 +0xDEB2 0x6BAF +0xDEB3 0x6D5C +0xDEB4 0x6FF1 +0xDEB5 0x7015 +0xDEB6 0x725D +0xDEB7 0x73AD +0xDEB8 0x8CA7 +0xDEB9 0x8CD3 +0xDEBA 0x983B +0xDEBB 0x6191 +0xDEBC 0x6C37 +0xDEBD 0x8058 +0xDEBE 0x9A01 +0xDEBF 0x4E4D +0xDEC0 0x4E8B +0xDEC1 0x4E9B +0xDEC2 0x4ED5 +0xDEC3 0x4F3A +0xDEC4 0x4F3C +0xDEC5 0x4F7F +0xDEC6 0x4FDF +0xDEC7 0x50FF +0xDEC8 0x53F2 +0xDEC9 0x53F8 +0xDECA 0x5506 +0xDECB 0x55E3 +0xDECC 0x56DB +0xDECD 0x58EB +0xDECE 0x5962 +0xDECF 0x5A11 +0xDED0 0x5BEB +0xDED1 0x5BFA +0xDED2 0x5C04 +0xDED3 0x5DF3 +0xDED4 0x5E2B +0xDED5 0x5F99 +0xDED6 0x601D +0xDED7 0x6368 +0xDED8 0x659C +0xDED9 0x65AF +0xDEDA 0x67F6 +0xDEDB 0x67FB +0xDEDC 0x68AD +0xDEDD 0x6B7B +0xDEDE 0x6C99 +0xDEDF 0x6CD7 +0xDEE0 0x6E23 +0xDEE1 0x7009 +0xDEE2 0x7345 +0xDEE3 0x7802 +0xDEE4 0x793E +0xDEE5 0x7940 +0xDEE6 0x7960 +0xDEE7 0x79C1 +0xDEE8 0x7BE9 +0xDEE9 0x7D17 +0xDEEA 0x7D72 +0xDEEB 0x8086 +0xDEEC 0x820D +0xDEED 0x838E +0xDEEE 0x84D1 +0xDEEF 0x86C7 +0xDEF0 0x88DF +0xDEF1 0x8A50 +0xDEF2 0x8A5E +0xDEF3 0x8B1D +0xDEF4 0x8CDC +0xDEF5 0x8D66 +0xDEF6 0x8FAD +0xDEF7 0x90AA +0xDEF8 0x98FC +0xDEF9 0x99DF +0xDEFA 0x9E9D +0xDEFB 0x524A +0xDEFC 0xF969 +0xDEFD 0x6714 +0xDEFE 0xF96A +0xDFA1 0x5098 +0xDFA2 0x522A +0xDFA3 0x5C71 +0xDFA4 0x6563 +0xDFA5 0x6C55 +0xDFA6 0x73CA +0xDFA7 0x7523 +0xDFA8 0x759D +0xDFA9 0x7B97 +0xDFAA 0x849C +0xDFAB 0x9178 +0xDFAC 0x9730 +0xDFAD 0x4E77 +0xDFAE 0x6492 +0xDFAF 0x6BBA +0xDFB0 0x715E +0xDFB1 0x85A9 +0xDFB2 0x4E09 +0xDFB3 0xF96B +0xDFB4 0x6749 +0xDFB5 0x68EE +0xDFB6 0x6E17 +0xDFB7 0x829F +0xDFB8 0x8518 +0xDFB9 0x886B +0xDFBA 0x63F7 +0xDFBB 0x6F81 +0xDFBC 0x9212 +0xDFBD 0x98AF +0xDFBE 0x4E0A +0xDFBF 0x50B7 +0xDFC0 0x50CF +0xDFC1 0x511F +0xDFC2 0x5546 +0xDFC3 0x55AA +0xDFC4 0x5617 +0xDFC5 0x5B40 +0xDFC6 0x5C19 +0xDFC7 0x5CE0 +0xDFC8 0x5E38 +0xDFC9 0x5E8A +0xDFCA 0x5EA0 +0xDFCB 0x5EC2 +0xDFCC 0x60F3 +0xDFCD 0x6851 +0xDFCE 0x6A61 +0xDFCF 0x6E58 +0xDFD0 0x723D +0xDFD1 0x7240 +0xDFD2 0x72C0 +0xDFD3 0x76F8 +0xDFD4 0x7965 +0xDFD5 0x7BB1 +0xDFD6 0x7FD4 +0xDFD7 0x88F3 +0xDFD8 0x89F4 +0xDFD9 0x8A73 +0xDFDA 0x8C61 +0xDFDB 0x8CDE +0xDFDC 0x971C +0xDFDD 0x585E +0xDFDE 0x74BD +0xDFDF 0x8CFD +0xDFE0 0x55C7 +0xDFE1 0xF96C +0xDFE2 0x7A61 +0xDFE3 0x7D22 +0xDFE4 0x8272 +0xDFE5 0x7272 +0xDFE6 0x751F +0xDFE7 0x7525 +0xDFE8 0xF96D +0xDFE9 0x7B19 +0xDFEA 0x5885 +0xDFEB 0x58FB +0xDFEC 0x5DBC +0xDFED 0x5E8F +0xDFEE 0x5EB6 +0xDFEF 0x5F90 +0xDFF0 0x6055 +0xDFF1 0x6292 +0xDFF2 0x637F +0xDFF3 0x654D +0xDFF4 0x6691 +0xDFF5 0x66D9 +0xDFF6 0x66F8 +0xDFF7 0x6816 +0xDFF8 0x68F2 +0xDFF9 0x7280 +0xDFFA 0x745E +0xDFFB 0x7B6E +0xDFFC 0x7D6E +0xDFFD 0x7DD6 +0xDFFE 0x7F72 +0xE0A1 0x80E5 +0xE0A2 0x8212 +0xE0A3 0x85AF +0xE0A4 0x897F +0xE0A5 0x8A93 +0xE0A6 0x901D +0xE0A7 0x92E4 +0xE0A8 0x9ECD +0xE0A9 0x9F20 +0xE0AA 0x5915 +0xE0AB 0x596D +0xE0AC 0x5E2D +0xE0AD 0x60DC +0xE0AE 0x6614 +0xE0AF 0x6673 +0xE0B0 0x6790 +0xE0B1 0x6C50 +0xE0B2 0x6DC5 +0xE0B3 0x6F5F +0xE0B4 0x77F3 +0xE0B5 0x78A9 +0xE0B6 0x84C6 +0xE0B7 0x91CB +0xE0B8 0x932B +0xE0B9 0x4ED9 +0xE0BA 0x50CA +0xE0BB 0x5148 +0xE0BC 0x5584 +0xE0BD 0x5B0B +0xE0BE 0x5BA3 +0xE0BF 0x6247 +0xE0C0 0x657E +0xE0C1 0x65CB +0xE0C2 0x6E32 +0xE0C3 0x717D +0xE0C4 0x7401 +0xE0C5 0x7444 +0xE0C6 0x7487 +0xE0C7 0x74BF +0xE0C8 0x766C +0xE0C9 0x79AA +0xE0CA 0x7DDA +0xE0CB 0x7E55 +0xE0CC 0x7FA8 +0xE0CD 0x817A +0xE0CE 0x81B3 +0xE0CF 0x8239 +0xE0D0 0x861A +0xE0D1 0x87EC +0xE0D2 0x8A75 +0xE0D3 0x8DE3 +0xE0D4 0x9078 +0xE0D5 0x9291 +0xE0D6 0x9425 +0xE0D7 0x994D +0xE0D8 0x9BAE +0xE0D9 0x5368 +0xE0DA 0x5C51 +0xE0DB 0x6954 +0xE0DC 0x6CC4 +0xE0DD 0x6D29 +0xE0DE 0x6E2B +0xE0DF 0x820C +0xE0E0 0x859B +0xE0E1 0x893B +0xE0E2 0x8A2D +0xE0E3 0x8AAA +0xE0E4 0x96EA +0xE0E5 0x9F67 +0xE0E6 0x5261 +0xE0E7 0x66B9 +0xE0E8 0x6BB2 +0xE0E9 0x7E96 +0xE0EA 0x87FE +0xE0EB 0x8D0D +0xE0EC 0x9583 +0xE0ED 0x965D +0xE0EE 0x651D +0xE0EF 0x6D89 +0xE0F0 0x71EE +0xE0F1 0xF96E +0xE0F2 0x57CE +0xE0F3 0x59D3 +0xE0F4 0x5BAC +0xE0F5 0x6027 +0xE0F6 0x60FA +0xE0F7 0x6210 +0xE0F8 0x661F +0xE0F9 0x665F +0xE0FA 0x7329 +0xE0FB 0x73F9 +0xE0FC 0x76DB +0xE0FD 0x7701 +0xE0FE 0x7B6C +0xE1A1 0x8056 +0xE1A2 0x8072 +0xE1A3 0x8165 +0xE1A4 0x8AA0 +0xE1A5 0x9192 +0xE1A6 0x4E16 +0xE1A7 0x52E2 +0xE1A8 0x6B72 +0xE1A9 0x6D17 +0xE1AA 0x7A05 +0xE1AB 0x7B39 +0xE1AC 0x7D30 +0xE1AD 0xF96F +0xE1AE 0x8CB0 +0xE1AF 0x53EC +0xE1B0 0x562F +0xE1B1 0x5851 +0xE1B2 0x5BB5 +0xE1B3 0x5C0F +0xE1B4 0x5C11 +0xE1B5 0x5DE2 +0xE1B6 0x6240 +0xE1B7 0x6383 +0xE1B8 0x6414 +0xE1B9 0x662D +0xE1BA 0x68B3 +0xE1BB 0x6CBC +0xE1BC 0x6D88 +0xE1BD 0x6EAF +0xE1BE 0x701F +0xE1BF 0x70A4 +0xE1C0 0x71D2 +0xE1C1 0x7526 +0xE1C2 0x758F +0xE1C3 0x758E +0xE1C4 0x7619 +0xE1C5 0x7B11 +0xE1C6 0x7BE0 +0xE1C7 0x7C2B +0xE1C8 0x7D20 +0xE1C9 0x7D39 +0xE1CA 0x852C +0xE1CB 0x856D +0xE1CC 0x8607 +0xE1CD 0x8A34 +0xE1CE 0x900D +0xE1CF 0x9061 +0xE1D0 0x90B5 +0xE1D1 0x92B7 +0xE1D2 0x97F6 +0xE1D3 0x9A37 +0xE1D4 0x4FD7 +0xE1D5 0x5C6C +0xE1D6 0x675F +0xE1D7 0x6D91 +0xE1D8 0x7C9F +0xE1D9 0x7E8C +0xE1DA 0x8B16 +0xE1DB 0x8D16 +0xE1DC 0x901F +0xE1DD 0x5B6B +0xE1DE 0x5DFD +0xE1DF 0x640D +0xE1E0 0x84C0 +0xE1E1 0x905C +0xE1E2 0x98E1 +0xE1E3 0x7387 +0xE1E4 0x5B8B +0xE1E5 0x609A +0xE1E6 0x677E +0xE1E7 0x6DDE +0xE1E8 0x8A1F +0xE1E9 0x8AA6 +0xE1EA 0x9001 +0xE1EB 0x980C +0xE1EC 0x5237 +0xE1ED 0xF970 +0xE1EE 0x7051 +0xE1EF 0x788E +0xE1F0 0x9396 +0xE1F1 0x8870 +0xE1F2 0x91D7 +0xE1F3 0x4FEE +0xE1F4 0x53D7 +0xE1F5 0x55FD +0xE1F6 0x56DA +0xE1F7 0x5782 +0xE1F8 0x58FD +0xE1F9 0x5AC2 +0xE1FA 0x5B88 +0xE1FB 0x5CAB +0xE1FC 0x5CC0 +0xE1FD 0x5E25 +0xE1FE 0x6101 +0xE2A1 0x620D +0xE2A2 0x624B +0xE2A3 0x6388 +0xE2A4 0x641C +0xE2A5 0x6536 +0xE2A6 0x6578 +0xE2A7 0x6A39 +0xE2A8 0x6B8A +0xE2A9 0x6C34 +0xE2AA 0x6D19 +0xE2AB 0x6F31 +0xE2AC 0x71E7 +0xE2AD 0x72E9 +0xE2AE 0x7378 +0xE2AF 0x7407 +0xE2B0 0x74B2 +0xE2B1 0x7626 +0xE2B2 0x7761 +0xE2B3 0x79C0 +0xE2B4 0x7A57 +0xE2B5 0x7AEA +0xE2B6 0x7CB9 +0xE2B7 0x7D8F +0xE2B8 0x7DAC +0xE2B9 0x7E61 +0xE2BA 0x7F9E +0xE2BB 0x8129 +0xE2BC 0x8331 +0xE2BD 0x8490 +0xE2BE 0x84DA +0xE2BF 0x85EA +0xE2C0 0x8896 +0xE2C1 0x8AB0 +0xE2C2 0x8B90 +0xE2C3 0x8F38 +0xE2C4 0x9042 +0xE2C5 0x9083 +0xE2C6 0x916C +0xE2C7 0x9296 +0xE2C8 0x92B9 +0xE2C9 0x968B +0xE2CA 0x96A7 +0xE2CB 0x96A8 +0xE2CC 0x96D6 +0xE2CD 0x9700 +0xE2CE 0x9808 +0xE2CF 0x9996 +0xE2D0 0x9AD3 +0xE2D1 0x9B1A +0xE2D2 0x53D4 +0xE2D3 0x587E +0xE2D4 0x5919 +0xE2D5 0x5B70 +0xE2D6 0x5BBF +0xE2D7 0x6DD1 +0xE2D8 0x6F5A +0xE2D9 0x719F +0xE2DA 0x7421 +0xE2DB 0x74B9 +0xE2DC 0x8085 +0xE2DD 0x83FD +0xE2DE 0x5DE1 +0xE2DF 0x5F87 +0xE2E0 0x5FAA +0xE2E1 0x6042 +0xE2E2 0x65EC +0xE2E3 0x6812 +0xE2E4 0x696F +0xE2E5 0x6A53 +0xE2E6 0x6B89 +0xE2E7 0x6D35 +0xE2E8 0x6DF3 +0xE2E9 0x73E3 +0xE2EA 0x76FE +0xE2EB 0x77AC +0xE2EC 0x7B4D +0xE2ED 0x7D14 +0xE2EE 0x8123 +0xE2EF 0x821C +0xE2F0 0x8340 +0xE2F1 0x84F4 +0xE2F2 0x8563 +0xE2F3 0x8A62 +0xE2F4 0x8AC4 +0xE2F5 0x9187 +0xE2F6 0x931E +0xE2F7 0x9806 +0xE2F8 0x99B4 +0xE2F9 0x620C +0xE2FA 0x8853 +0xE2FB 0x8FF0 +0xE2FC 0x9265 +0xE2FD 0x5D07 +0xE2FE 0x5D27 +0xE3A1 0x5D69 +0xE3A2 0x745F +0xE3A3 0x819D +0xE3A4 0x8768 +0xE3A5 0x6FD5 +0xE3A6 0x62FE +0xE3A7 0x7FD2 +0xE3A8 0x8936 +0xE3A9 0x8972 +0xE3AA 0x4E1E +0xE3AB 0x4E58 +0xE3AC 0x50E7 +0xE3AD 0x52DD +0xE3AE 0x5347 +0xE3AF 0x627F +0xE3B0 0x6607 +0xE3B1 0x7E69 +0xE3B2 0x8805 +0xE3B3 0x965E +0xE3B4 0x4F8D +0xE3B5 0x5319 +0xE3B6 0x5636 +0xE3B7 0x59CB +0xE3B8 0x5AA4 +0xE3B9 0x5C38 +0xE3BA 0x5C4E +0xE3BB 0x5C4D +0xE3BC 0x5E02 +0xE3BD 0x5F11 +0xE3BE 0x6043 +0xE3BF 0x65BD +0xE3C0 0x662F +0xE3C1 0x6642 +0xE3C2 0x67BE +0xE3C3 0x67F4 +0xE3C4 0x731C +0xE3C5 0x77E2 +0xE3C6 0x793A +0xE3C7 0x7FC5 +0xE3C8 0x8494 +0xE3C9 0x84CD +0xE3CA 0x8996 +0xE3CB 0x8A66 +0xE3CC 0x8A69 +0xE3CD 0x8AE1 +0xE3CE 0x8C55 +0xE3CF 0x8C7A +0xE3D0 0x57F4 +0xE3D1 0x5BD4 +0xE3D2 0x5F0F +0xE3D3 0x606F +0xE3D4 0x62ED +0xE3D5 0x690D +0xE3D6 0x6B96 +0xE3D7 0x6E5C +0xE3D8 0x7184 +0xE3D9 0x7BD2 +0xE3DA 0x8755 +0xE3DB 0x8B58 +0xE3DC 0x8EFE +0xE3DD 0x98DF +0xE3DE 0x98FE +0xE3DF 0x4F38 +0xE3E0 0x4F81 +0xE3E1 0x4FE1 +0xE3E2 0x547B +0xE3E3 0x5A20 +0xE3E4 0x5BB8 +0xE3E5 0x613C +0xE3E6 0x65B0 +0xE3E7 0x6668 +0xE3E8 0x71FC +0xE3E9 0x7533 +0xE3EA 0x795E +0xE3EB 0x7D33 +0xE3EC 0x814E +0xE3ED 0x81E3 +0xE3EE 0x8398 +0xE3EF 0x85AA +0xE3F0 0x85CE +0xE3F1 0x8703 +0xE3F2 0x8A0A +0xE3F3 0x8EAB +0xE3F4 0x8F9B +0xE3F5 0xF971 +0xE3F6 0x8FC5 +0xE3F7 0x5931 +0xE3F8 0x5BA4 +0xE3F9 0x5BE6 +0xE3FA 0x6089 +0xE3FB 0x5BE9 +0xE3FC 0x5C0B +0xE3FD 0x5FC3 +0xE3FE 0x6C81 +0xE4A1 0xF972 +0xE4A2 0x6DF1 +0xE4A3 0x700B +0xE4A4 0x751A +0xE4A5 0x82AF +0xE4A6 0x8AF6 +0xE4A7 0x4EC0 +0xE4A8 0x5341 +0xE4A9 0xF973 +0xE4AA 0x96D9 +0xE4AB 0x6C0F +0xE4AC 0x4E9E +0xE4AD 0x4FC4 +0xE4AE 0x5152 +0xE4AF 0x555E +0xE4B0 0x5A25 +0xE4B1 0x5CE8 +0xE4B2 0x6211 +0xE4B3 0x7259 +0xE4B4 0x82BD +0xE4B5 0x83AA +0xE4B6 0x86FE +0xE4B7 0x8859 +0xE4B8 0x8A1D +0xE4B9 0x963F +0xE4BA 0x96C5 +0xE4BB 0x9913 +0xE4BC 0x9D09 +0xE4BD 0x9D5D +0xE4BE 0x580A +0xE4BF 0x5CB3 +0xE4C0 0x5DBD +0xE4C1 0x5E44 +0xE4C2 0x60E1 +0xE4C3 0x6115 +0xE4C4 0x63E1 +0xE4C5 0x6A02 +0xE4C6 0x6E25 +0xE4C7 0x9102 +0xE4C8 0x9354 +0xE4C9 0x984E +0xE4CA 0x9C10 +0xE4CB 0x9F77 +0xE4CC 0x5B89 +0xE4CD 0x5CB8 +0xE4CE 0x6309 +0xE4CF 0x664F +0xE4D0 0x6848 +0xE4D1 0x773C +0xE4D2 0x96C1 +0xE4D3 0x978D +0xE4D4 0x9854 +0xE4D5 0x9B9F +0xE4D6 0x65A1 +0xE4D7 0x8B01 +0xE4D8 0x8ECB +0xE4D9 0x95BC +0xE4DA 0x5535 +0xE4DB 0x5CA9 +0xE4DC 0x5DD6 +0xE4DD 0x5EB5 +0xE4DE 0x6697 +0xE4DF 0x764C +0xE4E0 0x83F4 +0xE4E1 0x95C7 +0xE4E2 0x58D3 +0xE4E3 0x62BC +0xE4E4 0x72CE +0xE4E5 0x9D28 +0xE4E6 0x4EF0 +0xE4E7 0x592E +0xE4E8 0x600F +0xE4E9 0x663B +0xE4EA 0x6B83 +0xE4EB 0x79E7 +0xE4EC 0x9D26 +0xE4ED 0x5393 +0xE4EE 0x54C0 +0xE4EF 0x57C3 +0xE4F0 0x5D16 +0xE4F1 0x611B +0xE4F2 0x66D6 +0xE4F3 0x6DAF +0xE4F4 0x788D +0xE4F5 0x827E +0xE4F6 0x9698 +0xE4F7 0x9744 +0xE4F8 0x5384 +0xE4F9 0x627C +0xE4FA 0x6396 +0xE4FB 0x6DB2 +0xE4FC 0x7E0A +0xE4FD 0x814B +0xE4FE 0x984D +0xE5A1 0x6AFB +0xE5A2 0x7F4C +0xE5A3 0x9DAF +0xE5A4 0x9E1A +0xE5A5 0x4E5F +0xE5A6 0x503B +0xE5A7 0x51B6 +0xE5A8 0x591C +0xE5A9 0x60F9 +0xE5AA 0x63F6 +0xE5AB 0x6930 +0xE5AC 0x723A +0xE5AD 0x8036 +0xE5AE 0xF974 +0xE5AF 0x91CE +0xE5B0 0x5F31 +0xE5B1 0xF975 +0xE5B2 0xF976 +0xE5B3 0x7D04 +0xE5B4 0x82E5 +0xE5B5 0x846F +0xE5B6 0x84BB +0xE5B7 0x85E5 +0xE5B8 0x8E8D +0xE5B9 0xF977 +0xE5BA 0x4F6F +0xE5BB 0xF978 +0xE5BC 0xF979 +0xE5BD 0x58E4 +0xE5BE 0x5B43 +0xE5BF 0x6059 +0xE5C0 0x63DA +0xE5C1 0x6518 +0xE5C2 0x656D +0xE5C3 0x6698 +0xE5C4 0xF97A +0xE5C5 0x694A +0xE5C6 0x6A23 +0xE5C7 0x6D0B +0xE5C8 0x7001 +0xE5C9 0x716C +0xE5CA 0x75D2 +0xE5CB 0x760D +0xE5CC 0x79B3 +0xE5CD 0x7A70 +0xE5CE 0xF97B +0xE5CF 0x7F8A +0xE5D0 0xF97C +0xE5D1 0x8944 +0xE5D2 0xF97D +0xE5D3 0x8B93 +0xE5D4 0x91C0 +0xE5D5 0x967D +0xE5D6 0xF97E +0xE5D7 0x990A +0xE5D8 0x5704 +0xE5D9 0x5FA1 +0xE5DA 0x65BC +0xE5DB 0x6F01 +0xE5DC 0x7600 +0xE5DD 0x79A6 +0xE5DE 0x8A9E +0xE5DF 0x99AD +0xE5E0 0x9B5A +0xE5E1 0x9F6C +0xE5E2 0x5104 +0xE5E3 0x61B6 +0xE5E4 0x6291 +0xE5E5 0x6A8D +0xE5E6 0x81C6 +0xE5E7 0x5043 +0xE5E8 0x5830 +0xE5E9 0x5F66 +0xE5EA 0x7109 +0xE5EB 0x8A00 +0xE5EC 0x8AFA +0xE5ED 0x5B7C +0xE5EE 0x8616 +0xE5EF 0x4FFA +0xE5F0 0x513C +0xE5F1 0x56B4 +0xE5F2 0x5944 +0xE5F3 0x63A9 +0xE5F4 0x6DF9 +0xE5F5 0x5DAA +0xE5F6 0x696D +0xE5F7 0x5186 +0xE5F8 0x4E88 +0xE5F9 0x4F59 +0xE5FA 0xF97F +0xE5FB 0xF980 +0xE5FC 0xF981 +0xE5FD 0x5982 +0xE5FE 0xF982 +0xE6A1 0xF983 +0xE6A2 0x6B5F +0xE6A3 0x6C5D +0xE6A4 0xF984 +0xE6A5 0x74B5 +0xE6A6 0x7916 +0xE6A7 0xF985 +0xE6A8 0x8207 +0xE6A9 0x8245 +0xE6AA 0x8339 +0xE6AB 0x8F3F +0xE6AC 0x8F5D +0xE6AD 0xF986 +0xE6AE 0x9918 +0xE6AF 0xF987 +0xE6B0 0xF988 +0xE6B1 0xF989 +0xE6B2 0x4EA6 +0xE6B3 0xF98A +0xE6B4 0x57DF +0xE6B5 0x5F79 +0xE6B6 0x6613 +0xE6B7 0xF98B +0xE6B8 0xF98C +0xE6B9 0x75AB +0xE6BA 0x7E79 +0xE6BB 0x8B6F +0xE6BC 0xF98D +0xE6BD 0x9006 +0xE6BE 0x9A5B +0xE6BF 0x56A5 +0xE6C0 0x5827 +0xE6C1 0x59F8 +0xE6C2 0x5A1F +0xE6C3 0x5BB4 +0xE6C4 0xF98E +0xE6C5 0x5EF6 +0xE6C6 0xF98F +0xE6C7 0xF990 +0xE6C8 0x6350 +0xE6C9 0x633B +0xE6CA 0xF991 +0xE6CB 0x693D +0xE6CC 0x6C87 +0xE6CD 0x6CBF +0xE6CE 0x6D8E +0xE6CF 0x6D93 +0xE6D0 0x6DF5 +0xE6D1 0x6F14 +0xE6D2 0xF992 +0xE6D3 0x70DF +0xE6D4 0x7136 +0xE6D5 0x7159 +0xE6D6 0xF993 +0xE6D7 0x71C3 +0xE6D8 0x71D5 +0xE6D9 0xF994 +0xE6DA 0x784F +0xE6DB 0x786F +0xE6DC 0xF995 +0xE6DD 0x7B75 +0xE6DE 0x7DE3 +0xE6DF 0xF996 +0xE6E0 0x7E2F +0xE6E1 0xF997 +0xE6E2 0x884D +0xE6E3 0x8EDF +0xE6E4 0xF998 +0xE6E5 0xF999 +0xE6E6 0xF99A +0xE6E7 0x925B +0xE6E8 0xF99B +0xE6E9 0x9CF6 +0xE6EA 0xF99C +0xE6EB 0xF99D +0xE6EC 0xF99E +0xE6ED 0x6085 +0xE6EE 0x6D85 +0xE6EF 0xF99F +0xE6F0 0x71B1 +0xE6F1 0xF9A0 +0xE6F2 0xF9A1 +0xE6F3 0x95B1 +0xE6F4 0x53AD +0xE6F5 0xF9A2 +0xE6F6 0xF9A3 +0xE6F7 0xF9A4 +0xE6F8 0x67D3 +0xE6F9 0xF9A5 +0xE6FA 0x708E +0xE6FB 0x7130 +0xE6FC 0x7430 +0xE6FD 0x8276 +0xE6FE 0x82D2 +0xE7A1 0xF9A6 +0xE7A2 0x95BB +0xE7A3 0x9AE5 +0xE7A4 0x9E7D +0xE7A5 0x66C4 +0xE7A6 0xF9A7 +0xE7A7 0x71C1 +0xE7A8 0x8449 +0xE7A9 0xF9A8 +0xE7AA 0xF9A9 +0xE7AB 0x584B +0xE7AC 0xF9AA +0xE7AD 0xF9AB +0xE7AE 0x5DB8 +0xE7AF 0x5F71 +0xE7B0 0xF9AC +0xE7B1 0x6620 +0xE7B2 0x668E +0xE7B3 0x6979 +0xE7B4 0x69AE +0xE7B5 0x6C38 +0xE7B6 0x6CF3 +0xE7B7 0x6E36 +0xE7B8 0x6F41 +0xE7B9 0x6FDA +0xE7BA 0x701B +0xE7BB 0x702F +0xE7BC 0x7150 +0xE7BD 0x71DF +0xE7BE 0x7370 +0xE7BF 0xF9AD +0xE7C0 0x745B +0xE7C1 0xF9AE +0xE7C2 0x74D4 +0xE7C3 0x76C8 +0xE7C4 0x7A4E +0xE7C5 0x7E93 +0xE7C6 0xF9AF +0xE7C7 0xF9B0 +0xE7C8 0x82F1 +0xE7C9 0x8A60 +0xE7CA 0x8FCE +0xE7CB 0xF9B1 +0xE7CC 0x9348 +0xE7CD 0xF9B2 +0xE7CE 0x9719 +0xE7CF 0xF9B3 +0xE7D0 0xF9B4 +0xE7D1 0x4E42 +0xE7D2 0x502A +0xE7D3 0xF9B5 +0xE7D4 0x5208 +0xE7D5 0x53E1 +0xE7D6 0x66F3 +0xE7D7 0x6C6D +0xE7D8 0x6FCA +0xE7D9 0x730A +0xE7DA 0x777F +0xE7DB 0x7A62 +0xE7DC 0x82AE +0xE7DD 0x85DD +0xE7DE 0x8602 +0xE7DF 0xF9B6 +0xE7E0 0x88D4 +0xE7E1 0x8A63 +0xE7E2 0x8B7D +0xE7E3 0x8C6B +0xE7E4 0xF9B7 +0xE7E5 0x92B3 +0xE7E6 0xF9B8 +0xE7E7 0x9713 +0xE7E8 0x9810 +0xE7E9 0x4E94 +0xE7EA 0x4F0D +0xE7EB 0x4FC9 +0xE7EC 0x50B2 +0xE7ED 0x5348 +0xE7EE 0x543E +0xE7EF 0x5433 +0xE7F0 0x55DA +0xE7F1 0x5862 +0xE7F2 0x58BA +0xE7F3 0x5967 +0xE7F4 0x5A1B +0xE7F5 0x5BE4 +0xE7F6 0x609F +0xE7F7 0xF9B9 +0xE7F8 0x61CA +0xE7F9 0x6556 +0xE7FA 0x65FF +0xE7FB 0x6664 +0xE7FC 0x68A7 +0xE7FD 0x6C5A +0xE7FE 0x6FB3 +0xE8A1 0x70CF +0xE8A2 0x71AC +0xE8A3 0x7352 +0xE8A4 0x7B7D +0xE8A5 0x8708 +0xE8A6 0x8AA4 +0xE8A7 0x9C32 +0xE8A8 0x9F07 +0xE8A9 0x5C4B +0xE8AA 0x6C83 +0xE8AB 0x7344 +0xE8AC 0x7389 +0xE8AD 0x923A +0xE8AE 0x6EAB +0xE8AF 0x7465 +0xE8B0 0x761F +0xE8B1 0x7A69 +0xE8B2 0x7E15 +0xE8B3 0x860A +0xE8B4 0x5140 +0xE8B5 0x58C5 +0xE8B6 0x64C1 +0xE8B7 0x74EE +0xE8B8 0x7515 +0xE8B9 0x7670 +0xE8BA 0x7FC1 +0xE8BB 0x9095 +0xE8BC 0x96CD +0xE8BD 0x9954 +0xE8BE 0x6E26 +0xE8BF 0x74E6 +0xE8C0 0x7AA9 +0xE8C1 0x7AAA +0xE8C2 0x81E5 +0xE8C3 0x86D9 +0xE8C4 0x8778 +0xE8C5 0x8A1B +0xE8C6 0x5A49 +0xE8C7 0x5B8C +0xE8C8 0x5B9B +0xE8C9 0x68A1 +0xE8CA 0x6900 +0xE8CB 0x6D63 +0xE8CC 0x73A9 +0xE8CD 0x7413 +0xE8CE 0x742C +0xE8CF 0x7897 +0xE8D0 0x7DE9 +0xE8D1 0x7FEB +0xE8D2 0x8118 +0xE8D3 0x8155 +0xE8D4 0x839E +0xE8D5 0x8C4C +0xE8D6 0x962E +0xE8D7 0x9811 +0xE8D8 0x66F0 +0xE8D9 0x5F80 +0xE8DA 0x65FA +0xE8DB 0x6789 +0xE8DC 0x6C6A +0xE8DD 0x738B +0xE8DE 0x502D +0xE8DF 0x5A03 +0xE8E0 0x6B6A +0xE8E1 0x77EE +0xE8E2 0x5916 +0xE8E3 0x5D6C +0xE8E4 0x5DCD +0xE8E5 0x7325 +0xE8E6 0x754F +0xE8E7 0xF9BA +0xE8E8 0xF9BB +0xE8E9 0x50E5 +0xE8EA 0x51F9 +0xE8EB 0x582F +0xE8EC 0x592D +0xE8ED 0x5996 +0xE8EE 0x59DA +0xE8EF 0x5BE5 +0xE8F0 0xF9BC +0xE8F1 0xF9BD +0xE8F2 0x5DA2 +0xE8F3 0x62D7 +0xE8F4 0x6416 +0xE8F5 0x6493 +0xE8F6 0x64FE +0xE8F7 0xF9BE +0xE8F8 0x66DC +0xE8F9 0xF9BF +0xE8FA 0x6A48 +0xE8FB 0xF9C0 +0xE8FC 0x71FF +0xE8FD 0x7464 +0xE8FE 0xF9C1 +0xE9A1 0x7A88 +0xE9A2 0x7AAF +0xE9A3 0x7E47 +0xE9A4 0x7E5E +0xE9A5 0x8000 +0xE9A6 0x8170 +0xE9A7 0xF9C2 +0xE9A8 0x87EF +0xE9A9 0x8981 +0xE9AA 0x8B20 +0xE9AB 0x9059 +0xE9AC 0xF9C3 +0xE9AD 0x9080 +0xE9AE 0x9952 +0xE9AF 0x617E +0xE9B0 0x6B32 +0xE9B1 0x6D74 +0xE9B2 0x7E1F +0xE9B3 0x8925 +0xE9B4 0x8FB1 +0xE9B5 0x4FD1 +0xE9B6 0x50AD +0xE9B7 0x5197 +0xE9B8 0x52C7 +0xE9B9 0x57C7 +0xE9BA 0x5889 +0xE9BB 0x5BB9 +0xE9BC 0x5EB8 +0xE9BD 0x6142 +0xE9BE 0x6995 +0xE9BF 0x6D8C +0xE9C0 0x6E67 +0xE9C1 0x6EB6 +0xE9C2 0x7194 +0xE9C3 0x7462 +0xE9C4 0x7528 +0xE9C5 0x752C +0xE9C6 0x8073 +0xE9C7 0x8338 +0xE9C8 0x84C9 +0xE9C9 0x8E0A +0xE9CA 0x9394 +0xE9CB 0x93DE +0xE9CC 0xF9C4 +0xE9CD 0x4E8E +0xE9CE 0x4F51 +0xE9CF 0x5076 +0xE9D0 0x512A +0xE9D1 0x53C8 +0xE9D2 0x53CB +0xE9D3 0x53F3 +0xE9D4 0x5B87 +0xE9D5 0x5BD3 +0xE9D6 0x5C24 +0xE9D7 0x611A +0xE9D8 0x6182 +0xE9D9 0x65F4 +0xE9DA 0x725B +0xE9DB 0x7397 +0xE9DC 0x7440 +0xE9DD 0x76C2 +0xE9DE 0x7950 +0xE9DF 0x7991 +0xE9E0 0x79B9 +0xE9E1 0x7D06 +0xE9E2 0x7FBD +0xE9E3 0x828B +0xE9E4 0x85D5 +0xE9E5 0x865E +0xE9E6 0x8FC2 +0xE9E7 0x9047 +0xE9E8 0x90F5 +0xE9E9 0x91EA +0xE9EA 0x9685 +0xE9EB 0x96E8 +0xE9EC 0x96E9 +0xE9ED 0x52D6 +0xE9EE 0x5F67 +0xE9EF 0x65ED +0xE9F0 0x6631 +0xE9F1 0x682F +0xE9F2 0x715C +0xE9F3 0x7A36 +0xE9F4 0x90C1 +0xE9F5 0x980A +0xE9F6 0x4E91 +0xE9F7 0xF9C5 +0xE9F8 0x6A52 +0xE9F9 0x6B9E +0xE9FA 0x6F90 +0xE9FB 0x7189 +0xE9FC 0x8018 +0xE9FD 0x82B8 +0xE9FE 0x8553 +0xEAA1 0x904B +0xEAA2 0x9695 +0xEAA3 0x96F2 +0xEAA4 0x97FB +0xEAA5 0x851A +0xEAA6 0x9B31 +0xEAA7 0x4E90 +0xEAA8 0x718A +0xEAA9 0x96C4 +0xEAAA 0x5143 +0xEAAB 0x539F +0xEAAC 0x54E1 +0xEAAD 0x5713 +0xEAAE 0x5712 +0xEAAF 0x57A3 +0xEAB0 0x5A9B +0xEAB1 0x5AC4 +0xEAB2 0x5BC3 +0xEAB3 0x6028 +0xEAB4 0x613F +0xEAB5 0x63F4 +0xEAB6 0x6C85 +0xEAB7 0x6D39 +0xEAB8 0x6E72 +0xEAB9 0x6E90 +0xEABA 0x7230 +0xEABB 0x733F +0xEABC 0x7457 +0xEABD 0x82D1 +0xEABE 0x8881 +0xEABF 0x8F45 +0xEAC0 0x9060 +0xEAC1 0xF9C6 +0xEAC2 0x9662 +0xEAC3 0x9858 +0xEAC4 0x9D1B +0xEAC5 0x6708 +0xEAC6 0x8D8A +0xEAC7 0x925E +0xEAC8 0x4F4D +0xEAC9 0x5049 +0xEACA 0x50DE +0xEACB 0x5371 +0xEACC 0x570D +0xEACD 0x59D4 +0xEACE 0x5A01 +0xEACF 0x5C09 +0xEAD0 0x6170 +0xEAD1 0x6690 +0xEAD2 0x6E2D +0xEAD3 0x7232 +0xEAD4 0x744B +0xEAD5 0x7DEF +0xEAD6 0x80C3 +0xEAD7 0x840E +0xEAD8 0x8466 +0xEAD9 0x853F +0xEADA 0x875F +0xEADB 0x885B +0xEADC 0x8918 +0xEADD 0x8B02 +0xEADE 0x9055 +0xEADF 0x97CB +0xEAE0 0x9B4F +0xEAE1 0x4E73 +0xEAE2 0x4F91 +0xEAE3 0x5112 +0xEAE4 0x516A +0xEAE5 0xF9C7 +0xEAE6 0x552F +0xEAE7 0x55A9 +0xEAE8 0x5B7A +0xEAE9 0x5BA5 +0xEAEA 0x5E7C +0xEAEB 0x5E7D +0xEAEC 0x5EBE +0xEAED 0x60A0 +0xEAEE 0x60DF +0xEAEF 0x6108 +0xEAF0 0x6109 +0xEAF1 0x63C4 +0xEAF2 0x6538 +0xEAF3 0x6709 +0xEAF4 0xF9C8 +0xEAF5 0x67D4 +0xEAF6 0x67DA +0xEAF7 0xF9C9 +0xEAF8 0x6961 +0xEAF9 0x6962 +0xEAFA 0x6CB9 +0xEAFB 0x6D27 +0xEAFC 0xF9CA +0xEAFD 0x6E38 +0xEAFE 0xF9CB +0xEBA1 0x6FE1 +0xEBA2 0x7336 +0xEBA3 0x7337 +0xEBA4 0xF9CC +0xEBA5 0x745C +0xEBA6 0x7531 +0xEBA7 0xF9CD +0xEBA8 0x7652 +0xEBA9 0xF9CE +0xEBAA 0xF9CF +0xEBAB 0x7DAD +0xEBAC 0x81FE +0xEBAD 0x8438 +0xEBAE 0x88D5 +0xEBAF 0x8A98 +0xEBB0 0x8ADB +0xEBB1 0x8AED +0xEBB2 0x8E30 +0xEBB3 0x8E42 +0xEBB4 0x904A +0xEBB5 0x903E +0xEBB6 0x907A +0xEBB7 0x9149 +0xEBB8 0x91C9 +0xEBB9 0x936E +0xEBBA 0xF9D0 +0xEBBB 0xF9D1 +0xEBBC 0x5809 +0xEBBD 0xF9D2 +0xEBBE 0x6BD3 +0xEBBF 0x8089 +0xEBC0 0x80B2 +0xEBC1 0xF9D3 +0xEBC2 0xF9D4 +0xEBC3 0x5141 +0xEBC4 0x596B +0xEBC5 0x5C39 +0xEBC6 0xF9D5 +0xEBC7 0xF9D6 +0xEBC8 0x6F64 +0xEBC9 0x73A7 +0xEBCA 0x80E4 +0xEBCB 0x8D07 +0xEBCC 0xF9D7 +0xEBCD 0x9217 +0xEBCE 0x958F +0xEBCF 0xF9D8 +0xEBD0 0xF9D9 +0xEBD1 0xF9DA +0xEBD2 0xF9DB +0xEBD3 0x807F +0xEBD4 0x620E +0xEBD5 0x701C +0xEBD6 0x7D68 +0xEBD7 0x878D +0xEBD8 0xF9DC +0xEBD9 0x57A0 +0xEBDA 0x6069 +0xEBDB 0x6147 +0xEBDC 0x6BB7 +0xEBDD 0x8ABE +0xEBDE 0x9280 +0xEBDF 0x96B1 +0xEBE0 0x4E59 +0xEBE1 0x541F +0xEBE2 0x6DEB +0xEBE3 0x852D +0xEBE4 0x9670 +0xEBE5 0x97F3 +0xEBE6 0x98EE +0xEBE7 0x63D6 +0xEBE8 0x6CE3 +0xEBE9 0x9091 +0xEBEA 0x51DD +0xEBEB 0x61C9 +0xEBEC 0x81BA +0xEBED 0x9DF9 +0xEBEE 0x4F9D +0xEBEF 0x501A +0xEBF0 0x5100 +0xEBF1 0x5B9C +0xEBF2 0x610F +0xEBF3 0x61FF +0xEBF4 0x64EC +0xEBF5 0x6905 +0xEBF6 0x6BC5 +0xEBF7 0x7591 +0xEBF8 0x77E3 +0xEBF9 0x7FA9 +0xEBFA 0x8264 +0xEBFB 0x858F +0xEBFC 0x87FB +0xEBFD 0x8863 +0xEBFE 0x8ABC +0xECA1 0x8B70 +0xECA2 0x91AB +0xECA3 0x4E8C +0xECA4 0x4EE5 +0xECA5 0x4F0A +0xECA6 0xF9DD +0xECA7 0xF9DE +0xECA8 0x5937 +0xECA9 0x59E8 +0xECAA 0xF9DF +0xECAB 0x5DF2 +0xECAC 0x5F1B +0xECAD 0x5F5B +0xECAE 0x6021 +0xECAF 0xF9E0 +0xECB0 0xF9E1 +0xECB1 0xF9E2 +0xECB2 0xF9E3 +0xECB3 0x723E +0xECB4 0x73E5 +0xECB5 0xF9E4 +0xECB6 0x7570 +0xECB7 0x75CD +0xECB8 0xF9E5 +0xECB9 0x79FB +0xECBA 0xF9E6 +0xECBB 0x800C +0xECBC 0x8033 +0xECBD 0x8084 +0xECBE 0x82E1 +0xECBF 0x8351 +0xECC0 0xF9E7 +0xECC1 0xF9E8 +0xECC2 0x8CBD +0xECC3 0x8CB3 +0xECC4 0x9087 +0xECC5 0xF9E9 +0xECC6 0xF9EA +0xECC7 0x98F4 +0xECC8 0x990C +0xECC9 0xF9EB +0xECCA 0xF9EC +0xECCB 0x7037 +0xECCC 0x76CA +0xECCD 0x7FCA +0xECCE 0x7FCC +0xECCF 0x7FFC +0xECD0 0x8B1A +0xECD1 0x4EBA +0xECD2 0x4EC1 +0xECD3 0x5203 +0xECD4 0x5370 +0xECD5 0xF9ED +0xECD6 0x54BD +0xECD7 0x56E0 +0xECD8 0x59FB +0xECD9 0x5BC5 +0xECDA 0x5F15 +0xECDB 0x5FCD +0xECDC 0x6E6E +0xECDD 0xF9EE +0xECDE 0xF9EF +0xECDF 0x7D6A +0xECE0 0x8335 +0xECE1 0xF9F0 +0xECE2 0x8693 +0xECE3 0x8A8D +0xECE4 0xF9F1 +0xECE5 0x976D +0xECE6 0x9777 +0xECE7 0xF9F2 +0xECE8 0xF9F3 +0xECE9 0x4E00 +0xECEA 0x4F5A +0xECEB 0x4F7E +0xECEC 0x58F9 +0xECED 0x65E5 +0xECEE 0x6EA2 +0xECEF 0x9038 +0xECF0 0x93B0 +0xECF1 0x99B9 +0xECF2 0x4EFB +0xECF3 0x58EC +0xECF4 0x598A +0xECF5 0x59D9 +0xECF6 0x6041 +0xECF7 0xF9F4 +0xECF8 0xF9F5 +0xECF9 0x7A14 +0xECFA 0xF9F6 +0xECFB 0x834F +0xECFC 0x8CC3 +0xECFD 0x5165 +0xECFE 0x5344 +0xEDA1 0xF9F7 +0xEDA2 0xF9F8 +0xEDA3 0xF9F9 +0xEDA4 0x4ECD +0xEDA5 0x5269 +0xEDA6 0x5B55 +0xEDA7 0x82BF +0xEDA8 0x4ED4 +0xEDA9 0x523A +0xEDAA 0x54A8 +0xEDAB 0x59C9 +0xEDAC 0x59FF +0xEDAD 0x5B50 +0xEDAE 0x5B57 +0xEDAF 0x5B5C +0xEDB0 0x6063 +0xEDB1 0x6148 +0xEDB2 0x6ECB +0xEDB3 0x7099 +0xEDB4 0x716E +0xEDB5 0x7386 +0xEDB6 0x74F7 +0xEDB7 0x75B5 +0xEDB8 0x78C1 +0xEDB9 0x7D2B +0xEDBA 0x8005 +0xEDBB 0x81EA +0xEDBC 0x8328 +0xEDBD 0x8517 +0xEDBE 0x85C9 +0xEDBF 0x8AEE +0xEDC0 0x8CC7 +0xEDC1 0x96CC +0xEDC2 0x4F5C +0xEDC3 0x52FA +0xEDC4 0x56BC +0xEDC5 0x65AB +0xEDC6 0x6628 +0xEDC7 0x707C +0xEDC8 0x70B8 +0xEDC9 0x7235 +0xEDCA 0x7DBD +0xEDCB 0x828D +0xEDCC 0x914C +0xEDCD 0x96C0 +0xEDCE 0x9D72 +0xEDCF 0x5B71 +0xEDD0 0x68E7 +0xEDD1 0x6B98 +0xEDD2 0x6F7A +0xEDD3 0x76DE +0xEDD4 0x5C91 +0xEDD5 0x66AB +0xEDD6 0x6F5B +0xEDD7 0x7BB4 +0xEDD8 0x7C2A +0xEDD9 0x8836 +0xEDDA 0x96DC +0xEDDB 0x4E08 +0xEDDC 0x4ED7 +0xEDDD 0x5320 +0xEDDE 0x5834 +0xEDDF 0x58BB +0xEDE0 0x58EF +0xEDE1 0x596C +0xEDE2 0x5C07 +0xEDE3 0x5E33 +0xEDE4 0x5E84 +0xEDE5 0x5F35 +0xEDE6 0x638C +0xEDE7 0x66B2 +0xEDE8 0x6756 +0xEDE9 0x6A1F +0xEDEA 0x6AA3 +0xEDEB 0x6B0C +0xEDEC 0x6F3F +0xEDED 0x7246 +0xEDEE 0xF9FA +0xEDEF 0x7350 +0xEDF0 0x748B +0xEDF1 0x7AE0 +0xEDF2 0x7CA7 +0xEDF3 0x8178 +0xEDF4 0x81DF +0xEDF5 0x81E7 +0xEDF6 0x838A +0xEDF7 0x846C +0xEDF8 0x8523 +0xEDF9 0x8594 +0xEDFA 0x85CF +0xEDFB 0x88DD +0xEDFC 0x8D13 +0xEDFD 0x91AC +0xEDFE 0x9577 +0xEEA1 0x969C +0xEEA2 0x518D +0xEEA3 0x54C9 +0xEEA4 0x5728 +0xEEA5 0x5BB0 +0xEEA6 0x624D +0xEEA7 0x6750 +0xEEA8 0x683D +0xEEA9 0x6893 +0xEEAA 0x6E3D +0xEEAB 0x6ED3 +0xEEAC 0x707D +0xEEAD 0x7E21 +0xEEAE 0x88C1 +0xEEAF 0x8CA1 +0xEEB0 0x8F09 +0xEEB1 0x9F4B +0xEEB2 0x9F4E +0xEEB3 0x722D +0xEEB4 0x7B8F +0xEEB5 0x8ACD +0xEEB6 0x931A +0xEEB7 0x4F47 +0xEEB8 0x4F4E +0xEEB9 0x5132 +0xEEBA 0x5480 +0xEEBB 0x59D0 +0xEEBC 0x5E95 +0xEEBD 0x62B5 +0xEEBE 0x6775 +0xEEBF 0x696E +0xEEC0 0x6A17 +0xEEC1 0x6CAE +0xEEC2 0x6E1A +0xEEC3 0x72D9 +0xEEC4 0x732A +0xEEC5 0x75BD +0xEEC6 0x7BB8 +0xEEC7 0x7D35 +0xEEC8 0x82E7 +0xEEC9 0x83F9 +0xEECA 0x8457 +0xEECB 0x85F7 +0xEECC 0x8A5B +0xEECD 0x8CAF +0xEECE 0x8E87 +0xEECF 0x9019 +0xEED0 0x90B8 +0xEED1 0x96CE +0xEED2 0x9F5F +0xEED3 0x52E3 +0xEED4 0x540A +0xEED5 0x5AE1 +0xEED6 0x5BC2 +0xEED7 0x6458 +0xEED8 0x6575 +0xEED9 0x6EF4 +0xEEDA 0x72C4 +0xEEDB 0xF9FB +0xEEDC 0x7684 +0xEEDD 0x7A4D +0xEEDE 0x7B1B +0xEEDF 0x7C4D +0xEEE0 0x7E3E +0xEEE1 0x7FDF +0xEEE2 0x837B +0xEEE3 0x8B2B +0xEEE4 0x8CCA +0xEEE5 0x8D64 +0xEEE6 0x8DE1 +0xEEE7 0x8E5F +0xEEE8 0x8FEA +0xEEE9 0x8FF9 +0xEEEA 0x9069 +0xEEEB 0x93D1 +0xEEEC 0x4F43 +0xEEED 0x4F7A +0xEEEE 0x50B3 +0xEEEF 0x5168 +0xEEF0 0x5178 +0xEEF1 0x524D +0xEEF2 0x526A +0xEEF3 0x5861 +0xEEF4 0x587C +0xEEF5 0x5960 +0xEEF6 0x5C08 +0xEEF7 0x5C55 +0xEEF8 0x5EDB +0xEEF9 0x609B +0xEEFA 0x6230 +0xEEFB 0x6813 +0xEEFC 0x6BBF +0xEEFD 0x6C08 +0xEEFE 0x6FB1 +0xEFA1 0x714E +0xEFA2 0x7420 +0xEFA3 0x7530 +0xEFA4 0x7538 +0xEFA5 0x7551 +0xEFA6 0x7672 +0xEFA7 0x7B4C +0xEFA8 0x7B8B +0xEFA9 0x7BAD +0xEFAA 0x7BC6 +0xEFAB 0x7E8F +0xEFAC 0x8A6E +0xEFAD 0x8F3E +0xEFAE 0x8F49 +0xEFAF 0x923F +0xEFB0 0x9293 +0xEFB1 0x9322 +0xEFB2 0x942B +0xEFB3 0x96FB +0xEFB4 0x985A +0xEFB5 0x986B +0xEFB6 0x991E +0xEFB7 0x5207 +0xEFB8 0x622A +0xEFB9 0x6298 +0xEFBA 0x6D59 +0xEFBB 0x7664 +0xEFBC 0x7ACA +0xEFBD 0x7BC0 +0xEFBE 0x7D76 +0xEFBF 0x5360 +0xEFC0 0x5CBE +0xEFC1 0x5E97 +0xEFC2 0x6F38 +0xEFC3 0x70B9 +0xEFC4 0x7C98 +0xEFC5 0x9711 +0xEFC6 0x9B8E +0xEFC7 0x9EDE +0xEFC8 0x63A5 +0xEFC9 0x647A +0xEFCA 0x8776 +0xEFCB 0x4E01 +0xEFCC 0x4E95 +0xEFCD 0x4EAD +0xEFCE 0x505C +0xEFCF 0x5075 +0xEFD0 0x5448 +0xEFD1 0x59C3 +0xEFD2 0x5B9A +0xEFD3 0x5E40 +0xEFD4 0x5EAD +0xEFD5 0x5EF7 +0xEFD6 0x5F81 +0xEFD7 0x60C5 +0xEFD8 0x633A +0xEFD9 0x653F +0xEFDA 0x6574 +0xEFDB 0x65CC +0xEFDC 0x6676 +0xEFDD 0x6678 +0xEFDE 0x67FE +0xEFDF 0x6968 +0xEFE0 0x6A89 +0xEFE1 0x6B63 +0xEFE2 0x6C40 +0xEFE3 0x6DC0 +0xEFE4 0x6DE8 +0xEFE5 0x6E1F +0xEFE6 0x6E5E +0xEFE7 0x701E +0xEFE8 0x70A1 +0xEFE9 0x738E +0xEFEA 0x73FD +0xEFEB 0x753A +0xEFEC 0x775B +0xEFED 0x7887 +0xEFEE 0x798E +0xEFEF 0x7A0B +0xEFF0 0x7A7D +0xEFF1 0x7CBE +0xEFF2 0x7D8E +0xEFF3 0x8247 +0xEFF4 0x8A02 +0xEFF5 0x8AEA +0xEFF6 0x8C9E +0xEFF7 0x912D +0xEFF8 0x914A +0xEFF9 0x91D8 +0xEFFA 0x9266 +0xEFFB 0x92CC +0xEFFC 0x9320 +0xEFFD 0x9706 +0xEFFE 0x9756 +0xF0A1 0x975C +0xF0A2 0x9802 +0xF0A3 0x9F0E +0xF0A4 0x5236 +0xF0A5 0x5291 +0xF0A6 0x557C +0xF0A7 0x5824 +0xF0A8 0x5E1D +0xF0A9 0x5F1F +0xF0AA 0x608C +0xF0AB 0x63D0 +0xF0AC 0x68AF +0xF0AD 0x6FDF +0xF0AE 0x796D +0xF0AF 0x7B2C +0xF0B0 0x81CD +0xF0B1 0x85BA +0xF0B2 0x88FD +0xF0B3 0x8AF8 +0xF0B4 0x8E44 +0xF0B5 0x918D +0xF0B6 0x9664 +0xF0B7 0x969B +0xF0B8 0x973D +0xF0B9 0x984C +0xF0BA 0x9F4A +0xF0BB 0x4FCE +0xF0BC 0x5146 +0xF0BD 0x51CB +0xF0BE 0x52A9 +0xF0BF 0x5632 +0xF0C0 0x5F14 +0xF0C1 0x5F6B +0xF0C2 0x63AA +0xF0C3 0x64CD +0xF0C4 0x65E9 +0xF0C5 0x6641 +0xF0C6 0x66FA +0xF0C7 0x66F9 +0xF0C8 0x671D +0xF0C9 0x689D +0xF0CA 0x68D7 +0xF0CB 0x69FD +0xF0CC 0x6F15 +0xF0CD 0x6F6E +0xF0CE 0x7167 +0xF0CF 0x71E5 +0xF0D0 0x722A +0xF0D1 0x74AA +0xF0D2 0x773A +0xF0D3 0x7956 +0xF0D4 0x795A +0xF0D5 0x79DF +0xF0D6 0x7A20 +0xF0D7 0x7A95 +0xF0D8 0x7C97 +0xF0D9 0x7CDF +0xF0DA 0x7D44 +0xF0DB 0x7E70 +0xF0DC 0x8087 +0xF0DD 0x85FB +0xF0DE 0x86A4 +0xF0DF 0x8A54 +0xF0E0 0x8ABF +0xF0E1 0x8D99 +0xF0E2 0x8E81 +0xF0E3 0x9020 +0xF0E4 0x906D +0xF0E5 0x91E3 +0xF0E6 0x963B +0xF0E7 0x96D5 +0xF0E8 0x9CE5 +0xF0E9 0x65CF +0xF0EA 0x7C07 +0xF0EB 0x8DB3 +0xF0EC 0x93C3 +0xF0ED 0x5B58 +0xF0EE 0x5C0A +0xF0EF 0x5352 +0xF0F0 0x62D9 +0xF0F1 0x731D +0xF0F2 0x5027 +0xF0F3 0x5B97 +0xF0F4 0x5F9E +0xF0F5 0x60B0 +0xF0F6 0x616B +0xF0F7 0x68D5 +0xF0F8 0x6DD9 +0xF0F9 0x742E +0xF0FA 0x7A2E +0xF0FB 0x7D42 +0xF0FC 0x7D9C +0xF0FD 0x7E31 +0xF0FE 0x816B +0xF1A1 0x8E2A +0xF1A2 0x8E35 +0xF1A3 0x937E +0xF1A4 0x9418 +0xF1A5 0x4F50 +0xF1A6 0x5750 +0xF1A7 0x5DE6 +0xF1A8 0x5EA7 +0xF1A9 0x632B +0xF1AA 0x7F6A +0xF1AB 0x4E3B +0xF1AC 0x4F4F +0xF1AD 0x4F8F +0xF1AE 0x505A +0xF1AF 0x59DD +0xF1B0 0x80C4 +0xF1B1 0x546A +0xF1B2 0x5468 +0xF1B3 0x55FE +0xF1B4 0x594F +0xF1B5 0x5B99 +0xF1B6 0x5DDE +0xF1B7 0x5EDA +0xF1B8 0x665D +0xF1B9 0x6731 +0xF1BA 0x67F1 +0xF1BB 0x682A +0xF1BC 0x6CE8 +0xF1BD 0x6D32 +0xF1BE 0x6E4A +0xF1BF 0x6F8D +0xF1C0 0x70B7 +0xF1C1 0x73E0 +0xF1C2 0x7587 +0xF1C3 0x7C4C +0xF1C4 0x7D02 +0xF1C5 0x7D2C +0xF1C6 0x7DA2 +0xF1C7 0x821F +0xF1C8 0x86DB +0xF1C9 0x8A3B +0xF1CA 0x8A85 +0xF1CB 0x8D70 +0xF1CC 0x8E8A +0xF1CD 0x8F33 +0xF1CE 0x9031 +0xF1CF 0x914E +0xF1D0 0x9152 +0xF1D1 0x9444 +0xF1D2 0x99D0 +0xF1D3 0x7AF9 +0xF1D4 0x7CA5 +0xF1D5 0x4FCA +0xF1D6 0x5101 +0xF1D7 0x51C6 +0xF1D8 0x57C8 +0xF1D9 0x5BEF +0xF1DA 0x5CFB +0xF1DB 0x6659 +0xF1DC 0x6A3D +0xF1DD 0x6D5A +0xF1DE 0x6E96 +0xF1DF 0x6FEC +0xF1E0 0x710C +0xF1E1 0x756F +0xF1E2 0x7AE3 +0xF1E3 0x8822 +0xF1E4 0x9021 +0xF1E5 0x9075 +0xF1E6 0x96CB +0xF1E7 0x99FF +0xF1E8 0x8301 +0xF1E9 0x4E2D +0xF1EA 0x4EF2 +0xF1EB 0x8846 +0xF1EC 0x91CD +0xF1ED 0x537D +0xF1EE 0x6ADB +0xF1EF 0x696B +0xF1F0 0x6C41 +0xF1F1 0x847A +0xF1F2 0x589E +0xF1F3 0x618E +0xF1F4 0x66FE +0xF1F5 0x62EF +0xF1F6 0x70DD +0xF1F7 0x7511 +0xF1F8 0x75C7 +0xF1F9 0x7E52 +0xF1FA 0x84B8 +0xF1FB 0x8B49 +0xF1FC 0x8D08 +0xF1FD 0x4E4B +0xF1FE 0x53EA +0xF2A1 0x54AB +0xF2A2 0x5730 +0xF2A3 0x5740 +0xF2A4 0x5FD7 +0xF2A5 0x6301 +0xF2A6 0x6307 +0xF2A7 0x646F +0xF2A8 0x652F +0xF2A9 0x65E8 +0xF2AA 0x667A +0xF2AB 0x679D +0xF2AC 0x67B3 +0xF2AD 0x6B62 +0xF2AE 0x6C60 +0xF2AF 0x6C9A +0xF2B0 0x6F2C +0xF2B1 0x77E5 +0xF2B2 0x7825 +0xF2B3 0x7949 +0xF2B4 0x7957 +0xF2B5 0x7D19 +0xF2B6 0x80A2 +0xF2B7 0x8102 +0xF2B8 0x81F3 +0xF2B9 0x829D +0xF2BA 0x82B7 +0xF2BB 0x8718 +0xF2BC 0x8A8C +0xF2BD 0xF9FC +0xF2BE 0x8D04 +0xF2BF 0x8DBE +0xF2C0 0x9072 +0xF2C1 0x76F4 +0xF2C2 0x7A19 +0xF2C3 0x7A37 +0xF2C4 0x7E54 +0xF2C5 0x8077 +0xF2C6 0x5507 +0xF2C7 0x55D4 +0xF2C8 0x5875 +0xF2C9 0x632F +0xF2CA 0x6422 +0xF2CB 0x6649 +0xF2CC 0x664B +0xF2CD 0x686D +0xF2CE 0x699B +0xF2CF 0x6B84 +0xF2D0 0x6D25 +0xF2D1 0x6EB1 +0xF2D2 0x73CD +0xF2D3 0x7468 +0xF2D4 0x74A1 +0xF2D5 0x755B +0xF2D6 0x75B9 +0xF2D7 0x76E1 +0xF2D8 0x771E +0xF2D9 0x778B +0xF2DA 0x79E6 +0xF2DB 0x7E09 +0xF2DC 0x7E1D +0xF2DD 0x81FB +0xF2DE 0x852F +0xF2DF 0x8897 +0xF2E0 0x8A3A +0xF2E1 0x8CD1 +0xF2E2 0x8EEB +0xF2E3 0x8FB0 +0xF2E4 0x9032 +0xF2E5 0x93AD +0xF2E6 0x9663 +0xF2E7 0x9673 +0xF2E8 0x9707 +0xF2E9 0x4F84 +0xF2EA 0x53F1 +0xF2EB 0x59EA +0xF2EC 0x5AC9 +0xF2ED 0x5E19 +0xF2EE 0x684E +0xF2EF 0x74C6 +0xF2F0 0x75BE +0xF2F1 0x79E9 +0xF2F2 0x7A92 +0xF2F3 0x81A3 +0xF2F4 0x86ED +0xF2F5 0x8CEA +0xF2F6 0x8DCC +0xF2F7 0x8FED +0xF2F8 0x659F +0xF2F9 0x6715 +0xF2FA 0xF9FD +0xF2FB 0x57F7 +0xF2FC 0x6F57 +0xF2FD 0x7DDD +0xF2FE 0x8F2F +0xF3A1 0x93F6 +0xF3A2 0x96C6 +0xF3A3 0x5FB5 +0xF3A4 0x61F2 +0xF3A5 0x6F84 +0xF3A6 0x4E14 +0xF3A7 0x4F98 +0xF3A8 0x501F +0xF3A9 0x53C9 +0xF3AA 0x55DF +0xF3AB 0x5D6F +0xF3AC 0x5DEE +0xF3AD 0x6B21 +0xF3AE 0x6B64 +0xF3AF 0x78CB +0xF3B0 0x7B9A +0xF3B1 0xF9FE +0xF3B2 0x8E49 +0xF3B3 0x8ECA +0xF3B4 0x906E +0xF3B5 0x6349 +0xF3B6 0x643E +0xF3B7 0x7740 +0xF3B8 0x7A84 +0xF3B9 0x932F +0xF3BA 0x947F +0xF3BB 0x9F6A +0xF3BC 0x64B0 +0xF3BD 0x6FAF +0xF3BE 0x71E6 +0xF3BF 0x74A8 +0xF3C0 0x74DA +0xF3C1 0x7AC4 +0xF3C2 0x7C12 +0xF3C3 0x7E82 +0xF3C4 0x7CB2 +0xF3C5 0x7E98 +0xF3C6 0x8B9A +0xF3C7 0x8D0A +0xF3C8 0x947D +0xF3C9 0x9910 +0xF3CA 0x994C +0xF3CB 0x5239 +0xF3CC 0x5BDF +0xF3CD 0x64E6 +0xF3CE 0x672D +0xF3CF 0x7D2E +0xF3D0 0x50ED +0xF3D1 0x53C3 +0xF3D2 0x5879 +0xF3D3 0x6158 +0xF3D4 0x6159 +0xF3D5 0x61FA +0xF3D6 0x65AC +0xF3D7 0x7AD9 +0xF3D8 0x8B92 +0xF3D9 0x8B96 +0xF3DA 0x5009 +0xF3DB 0x5021 +0xF3DC 0x5275 +0xF3DD 0x5531 +0xF3DE 0x5A3C +0xF3DF 0x5EE0 +0xF3E0 0x5F70 +0xF3E1 0x6134 +0xF3E2 0x655E +0xF3E3 0x660C +0xF3E4 0x6636 +0xF3E5 0x66A2 +0xF3E6 0x69CD +0xF3E7 0x6EC4 +0xF3E8 0x6F32 +0xF3E9 0x7316 +0xF3EA 0x7621 +0xF3EB 0x7A93 +0xF3EC 0x8139 +0xF3ED 0x8259 +0xF3EE 0x83D6 +0xF3EF 0x84BC +0xF3F0 0x50B5 +0xF3F1 0x57F0 +0xF3F2 0x5BC0 +0xF3F3 0x5BE8 +0xF3F4 0x5F69 +0xF3F5 0x63A1 +0xF3F6 0x7826 +0xF3F7 0x7DB5 +0xF3F8 0x83DC +0xF3F9 0x8521 +0xF3FA 0x91C7 +0xF3FB 0x91F5 +0xF3FC 0x518A +0xF3FD 0x67F5 +0xF3FE 0x7B56 +0xF4A1 0x8CAC +0xF4A2 0x51C4 +0xF4A3 0x59BB +0xF4A4 0x60BD +0xF4A5 0x8655 +0xF4A6 0x501C +0xF4A7 0xF9FF +0xF4A8 0x5254 +0xF4A9 0x5C3A +0xF4AA 0x617D +0xF4AB 0x621A +0xF4AC 0x62D3 +0xF4AD 0x64F2 +0xF4AE 0x65A5 +0xF4AF 0x6ECC +0xF4B0 0x7620 +0xF4B1 0x810A +0xF4B2 0x8E60 +0xF4B3 0x965F +0xF4B4 0x96BB +0xF4B5 0x4EDF +0xF4B6 0x5343 +0xF4B7 0x5598 +0xF4B8 0x5929 +0xF4B9 0x5DDD +0xF4BA 0x64C5 +0xF4BB 0x6CC9 +0xF4BC 0x6DFA +0xF4BD 0x7394 +0xF4BE 0x7A7F +0xF4BF 0x821B +0xF4C0 0x85A6 +0xF4C1 0x8CE4 +0xF4C2 0x8E10 +0xF4C3 0x9077 +0xF4C4 0x91E7 +0xF4C5 0x95E1 +0xF4C6 0x9621 +0xF4C7 0x97C6 +0xF4C8 0x51F8 +0xF4C9 0x54F2 +0xF4CA 0x5586 +0xF4CB 0x5FB9 +0xF4CC 0x64A4 +0xF4CD 0x6F88 +0xF4CE 0x7DB4 +0xF4CF 0x8F1F +0xF4D0 0x8F4D +0xF4D1 0x9435 +0xF4D2 0x50C9 +0xF4D3 0x5C16 +0xF4D4 0x6CBE +0xF4D5 0x6DFB +0xF4D6 0x751B +0xF4D7 0x77BB +0xF4D8 0x7C3D +0xF4D9 0x7C64 +0xF4DA 0x8A79 +0xF4DB 0x8AC2 +0xF4DC 0x581E +0xF4DD 0x59BE +0xF4DE 0x5E16 +0xF4DF 0x6377 +0xF4E0 0x7252 +0xF4E1 0x758A +0xF4E2 0x776B +0xF4E3 0x8ADC +0xF4E4 0x8CBC +0xF4E5 0x8F12 +0xF4E6 0x5EF3 +0xF4E7 0x6674 +0xF4E8 0x6DF8 +0xF4E9 0x807D +0xF4EA 0x83C1 +0xF4EB 0x8ACB +0xF4EC 0x9751 +0xF4ED 0x9BD6 +0xF4EE 0xFA00 +0xF4EF 0x5243 +0xF4F0 0x66FF +0xF4F1 0x6D95 +0xF4F2 0x6EEF +0xF4F3 0x7DE0 +0xF4F4 0x8AE6 +0xF4F5 0x902E +0xF4F6 0x905E +0xF4F7 0x9AD4 +0xF4F8 0x521D +0xF4F9 0x527F +0xF4FA 0x54E8 +0xF4FB 0x6194 +0xF4FC 0x6284 +0xF4FD 0x62DB +0xF4FE 0x68A2 +0xF5A1 0x6912 +0xF5A2 0x695A +0xF5A3 0x6A35 +0xF5A4 0x7092 +0xF5A5 0x7126 +0xF5A6 0x785D +0xF5A7 0x7901 +0xF5A8 0x790E +0xF5A9 0x79D2 +0xF5AA 0x7A0D +0xF5AB 0x8096 +0xF5AC 0x8278 +0xF5AD 0x82D5 +0xF5AE 0x8349 +0xF5AF 0x8549 +0xF5B0 0x8C82 +0xF5B1 0x8D85 +0xF5B2 0x9162 +0xF5B3 0x918B +0xF5B4 0x91AE +0xF5B5 0x4FC3 +0xF5B6 0x56D1 +0xF5B7 0x71ED +0xF5B8 0x77D7 +0xF5B9 0x8700 +0xF5BA 0x89F8 +0xF5BB 0x5BF8 +0xF5BC 0x5FD6 +0xF5BD 0x6751 +0xF5BE 0x90A8 +0xF5BF 0x53E2 +0xF5C0 0x585A +0xF5C1 0x5BF5 +0xF5C2 0x60A4 +0xF5C3 0x6181 +0xF5C4 0x6460 +0xF5C5 0x7E3D +0xF5C6 0x8070 +0xF5C7 0x8525 +0xF5C8 0x9283 +0xF5C9 0x64AE +0xF5CA 0x50AC +0xF5CB 0x5D14 +0xF5CC 0x6700 +0xF5CD 0x589C +0xF5CE 0x62BD +0xF5CF 0x63A8 +0xF5D0 0x690E +0xF5D1 0x6978 +0xF5D2 0x6A1E +0xF5D3 0x6E6B +0xF5D4 0x76BA +0xF5D5 0x79CB +0xF5D6 0x82BB +0xF5D7 0x8429 +0xF5D8 0x8ACF +0xF5D9 0x8DA8 +0xF5DA 0x8FFD +0xF5DB 0x9112 +0xF5DC 0x914B +0xF5DD 0x919C +0xF5DE 0x9310 +0xF5DF 0x9318 +0xF5E0 0x939A +0xF5E1 0x96DB +0xF5E2 0x9A36 +0xF5E3 0x9C0D +0xF5E4 0x4E11 +0xF5E5 0x755C +0xF5E6 0x795D +0xF5E7 0x7AFA +0xF5E8 0x7B51 +0xF5E9 0x7BC9 +0xF5EA 0x7E2E +0xF5EB 0x84C4 +0xF5EC 0x8E59 +0xF5ED 0x8E74 +0xF5EE 0x8EF8 +0xF5EF 0x9010 +0xF5F0 0x6625 +0xF5F1 0x693F +0xF5F2 0x7443 +0xF5F3 0x51FA +0xF5F4 0x672E +0xF5F5 0x9EDC +0xF5F6 0x5145 +0xF5F7 0x5FE0 +0xF5F8 0x6C96 +0xF5F9 0x87F2 +0xF5FA 0x885D +0xF5FB 0x8877 +0xF5FC 0x60B4 +0xF5FD 0x81B5 +0xF5FE 0x8403 +0xF6A1 0x8D05 +0xF6A2 0x53D6 +0xF6A3 0x5439 +0xF6A4 0x5634 +0xF6A5 0x5A36 +0xF6A6 0x5C31 +0xF6A7 0x708A +0xF6A8 0x7FE0 +0xF6A9 0x805A +0xF6AA 0x8106 +0xF6AB 0x81ED +0xF6AC 0x8DA3 +0xF6AD 0x9189 +0xF6AE 0x9A5F +0xF6AF 0x9DF2 +0xF6B0 0x5074 +0xF6B1 0x4EC4 +0xF6B2 0x53A0 +0xF6B3 0x60FB +0xF6B4 0x6E2C +0xF6B5 0x5C64 +0xF6B6 0x4F88 +0xF6B7 0x5024 +0xF6B8 0x55E4 +0xF6B9 0x5CD9 +0xF6BA 0x5E5F +0xF6BB 0x6065 +0xF6BC 0x6894 +0xF6BD 0x6CBB +0xF6BE 0x6DC4 +0xF6BF 0x71BE +0xF6C0 0x75D4 +0xF6C1 0x75F4 +0xF6C2 0x7661 +0xF6C3 0x7A1A +0xF6C4 0x7A49 +0xF6C5 0x7DC7 +0xF6C6 0x7DFB +0xF6C7 0x7F6E +0xF6C8 0x81F4 +0xF6C9 0x86A9 +0xF6CA 0x8F1C +0xF6CB 0x96C9 +0xF6CC 0x99B3 +0xF6CD 0x9F52 +0xF6CE 0x5247 +0xF6CF 0x52C5 +0xF6D0 0x98ED +0xF6D1 0x89AA +0xF6D2 0x4E03 +0xF6D3 0x67D2 +0xF6D4 0x6F06 +0xF6D5 0x4FB5 +0xF6D6 0x5BE2 +0xF6D7 0x6795 +0xF6D8 0x6C88 +0xF6D9 0x6D78 +0xF6DA 0x741B +0xF6DB 0x7827 +0xF6DC 0x91DD +0xF6DD 0x937C +0xF6DE 0x87C4 +0xF6DF 0x79E4 +0xF6E0 0x7A31 +0xF6E1 0x5FEB +0xF6E2 0x4ED6 +0xF6E3 0x54A4 +0xF6E4 0x553E +0xF6E5 0x58AE +0xF6E6 0x59A5 +0xF6E7 0x60F0 +0xF6E8 0x6253 +0xF6E9 0x62D6 +0xF6EA 0x6736 +0xF6EB 0x6955 +0xF6EC 0x8235 +0xF6ED 0x9640 +0xF6EE 0x99B1 +0xF6EF 0x99DD +0xF6F0 0x502C +0xF6F1 0x5353 +0xF6F2 0x5544 +0xF6F3 0x577C +0xF6F4 0xFA01 +0xF6F5 0x6258 +0xF6F6 0xFA02 +0xF6F7 0x64E2 +0xF6F8 0x666B +0xF6F9 0x67DD +0xF6FA 0x6FC1 +0xF6FB 0x6FEF +0xF6FC 0x7422 +0xF6FD 0x7438 +0xF6FE 0x8A17 +0xF7A1 0x9438 +0xF7A2 0x5451 +0xF7A3 0x5606 +0xF7A4 0x5766 +0xF7A5 0x5F48 +0xF7A6 0x619A +0xF7A7 0x6B4E +0xF7A8 0x7058 +0xF7A9 0x70AD +0xF7AA 0x7DBB +0xF7AB 0x8A95 +0xF7AC 0x596A +0xF7AD 0x812B +0xF7AE 0x63A2 +0xF7AF 0x7708 +0xF7B0 0x803D +0xF7B1 0x8CAA +0xF7B2 0x5854 +0xF7B3 0x642D +0xF7B4 0x69BB +0xF7B5 0x5B95 +0xF7B6 0x5E11 +0xF7B7 0x6E6F +0xF7B8 0xFA03 +0xF7B9 0x8569 +0xF7BA 0x514C +0xF7BB 0x53F0 +0xF7BC 0x592A +0xF7BD 0x6020 +0xF7BE 0x614B +0xF7BF 0x6B86 +0xF7C0 0x6C70 +0xF7C1 0x6CF0 +0xF7C2 0x7B1E +0xF7C3 0x80CE +0xF7C4 0x82D4 +0xF7C5 0x8DC6 +0xF7C6 0x90B0 +0xF7C7 0x98B1 +0xF7C8 0xFA04 +0xF7C9 0x64C7 +0xF7CA 0x6FA4 +0xF7CB 0x6491 +0xF7CC 0x6504 +0xF7CD 0x514E +0xF7CE 0x5410 +0xF7CF 0x571F +0xF7D0 0x8A0E +0xF7D1 0x615F +0xF7D2 0x6876 +0xF7D3 0xFA05 +0xF7D4 0x75DB +0xF7D5 0x7B52 +0xF7D6 0x7D71 +0xF7D7 0x901A +0xF7D8 0x5806 +0xF7D9 0x69CC +0xF7DA 0x817F +0xF7DB 0x892A +0xF7DC 0x9000 +0xF7DD 0x9839 +0xF7DE 0x5078 +0xF7DF 0x5957 +0xF7E0 0x59AC +0xF7E1 0x6295 +0xF7E2 0x900F +0xF7E3 0x9B2A +0xF7E4 0x615D +0xF7E5 0x7279 +0xF7E6 0x95D6 +0xF7E7 0x5761 +0xF7E8 0x5A46 +0xF7E9 0x5DF4 +0xF7EA 0x628A +0xF7EB 0x64AD +0xF7EC 0x64FA +0xF7ED 0x6777 +0xF7EE 0x6CE2 +0xF7EF 0x6D3E +0xF7F0 0x722C +0xF7F1 0x7436 +0xF7F2 0x7834 +0xF7F3 0x7F77 +0xF7F4 0x82AD +0xF7F5 0x8DDB +0xF7F6 0x9817 +0xF7F7 0x5224 +0xF7F8 0x5742 +0xF7F9 0x677F +0xF7FA 0x7248 +0xF7FB 0x74E3 +0xF7FC 0x8CA9 +0xF7FD 0x8FA6 +0xF7FE 0x9211 +0xF8A1 0x962A +0xF8A2 0x516B +0xF8A3 0x53ED +0xF8A4 0x634C +0xF8A5 0x4F69 +0xF8A6 0x5504 +0xF8A7 0x6096 +0xF8A8 0x6557 +0xF8A9 0x6C9B +0xF8AA 0x6D7F +0xF8AB 0x724C +0xF8AC 0x72FD +0xF8AD 0x7A17 +0xF8AE 0x8987 +0xF8AF 0x8C9D +0xF8B0 0x5F6D +0xF8B1 0x6F8E +0xF8B2 0x70F9 +0xF8B3 0x81A8 +0xF8B4 0x610E +0xF8B5 0x4FBF +0xF8B6 0x504F +0xF8B7 0x6241 +0xF8B8 0x7247 +0xF8B9 0x7BC7 +0xF8BA 0x7DE8 +0xF8BB 0x7FE9 +0xF8BC 0x904D +0xF8BD 0x97AD +0xF8BE 0x9A19 +0xF8BF 0x8CB6 +0xF8C0 0x576A +0xF8C1 0x5E73 +0xF8C2 0x67B0 +0xF8C3 0x840D +0xF8C4 0x8A55 +0xF8C5 0x5420 +0xF8C6 0x5B16 +0xF8C7 0x5E63 +0xF8C8 0x5EE2 +0xF8C9 0x5F0A +0xF8CA 0x6583 +0xF8CB 0x80BA +0xF8CC 0x853D +0xF8CD 0x9589 +0xF8CE 0x965B +0xF8CF 0x4F48 +0xF8D0 0x5305 +0xF8D1 0x530D +0xF8D2 0x530F +0xF8D3 0x5486 +0xF8D4 0x54FA +0xF8D5 0x5703 +0xF8D6 0x5E03 +0xF8D7 0x6016 +0xF8D8 0x629B +0xF8D9 0x62B1 +0xF8DA 0x6355 +0xF8DB 0xFA06 +0xF8DC 0x6CE1 +0xF8DD 0x6D66 +0xF8DE 0x75B1 +0xF8DF 0x7832 +0xF8E0 0x80DE +0xF8E1 0x812F +0xF8E2 0x82DE +0xF8E3 0x8461 +0xF8E4 0x84B2 +0xF8E5 0x888D +0xF8E6 0x8912 +0xF8E7 0x900B +0xF8E8 0x92EA +0xF8E9 0x98FD +0xF8EA 0x9B91 +0xF8EB 0x5E45 +0xF8EC 0x66B4 +0xF8ED 0x66DD +0xF8EE 0x7011 +0xF8EF 0x7206 +0xF8F0 0xFA07 +0xF8F1 0x4FF5 +0xF8F2 0x527D +0xF8F3 0x5F6A +0xF8F4 0x6153 +0xF8F5 0x6753 +0xF8F6 0x6A19 +0xF8F7 0x6F02 +0xF8F8 0x74E2 +0xF8F9 0x7968 +0xF8FA 0x8868 +0xF8FB 0x8C79 +0xF8FC 0x98C7 +0xF8FD 0x98C4 +0xF8FE 0x9A43 +0xF9A1 0x54C1 +0xF9A2 0x7A1F +0xF9A3 0x6953 +0xF9A4 0x8AF7 +0xF9A5 0x8C4A +0xF9A6 0x98A8 +0xF9A7 0x99AE +0xF9A8 0x5F7C +0xF9A9 0x62AB +0xF9AA 0x75B2 +0xF9AB 0x76AE +0xF9AC 0x88AB +0xF9AD 0x907F +0xF9AE 0x9642 +0xF9AF 0x5339 +0xF9B0 0x5F3C +0xF9B1 0x5FC5 +0xF9B2 0x6CCC +0xF9B3 0x73CC +0xF9B4 0x7562 +0xF9B5 0x758B +0xF9B6 0x7B46 +0xF9B7 0x82FE +0xF9B8 0x999D +0xF9B9 0x4E4F +0xF9BA 0x903C +0xF9BB 0x4E0B +0xF9BC 0x4F55 +0xF9BD 0x53A6 +0xF9BE 0x590F +0xF9BF 0x5EC8 +0xF9C0 0x6630 +0xF9C1 0x6CB3 +0xF9C2 0x7455 +0xF9C3 0x8377 +0xF9C4 0x8766 +0xF9C5 0x8CC0 +0xF9C6 0x9050 +0xF9C7 0x971E +0xF9C8 0x9C15 +0xF9C9 0x58D1 +0xF9CA 0x5B78 +0xF9CB 0x8650 +0xF9CC 0x8B14 +0xF9CD 0x9DB4 +0xF9CE 0x5BD2 +0xF9CF 0x6068 +0xF9D0 0x608D +0xF9D1 0x65F1 +0xF9D2 0x6C57 +0xF9D3 0x6F22 +0xF9D4 0x6FA3 +0xF9D5 0x701A +0xF9D6 0x7F55 +0xF9D7 0x7FF0 +0xF9D8 0x9591 +0xF9D9 0x9592 +0xF9DA 0x9650 +0xF9DB 0x97D3 +0xF9DC 0x5272 +0xF9DD 0x8F44 +0xF9DE 0x51FD +0xF9DF 0x542B +0xF9E0 0x54B8 +0xF9E1 0x5563 +0xF9E2 0x558A +0xF9E3 0x6ABB +0xF9E4 0x6DB5 +0xF9E5 0x7DD8 +0xF9E6 0x8266 +0xF9E7 0x929C +0xF9E8 0x9677 +0xF9E9 0x9E79 +0xF9EA 0x5408 +0xF9EB 0x54C8 +0xF9EC 0x76D2 +0xF9ED 0x86E4 +0xF9EE 0x95A4 +0xF9EF 0x95D4 +0xF9F0 0x965C +0xF9F1 0x4EA2 +0xF9F2 0x4F09 +0xF9F3 0x59EE +0xF9F4 0x5AE6 +0xF9F5 0x5DF7 +0xF9F6 0x6052 +0xF9F7 0x6297 +0xF9F8 0x676D +0xF9F9 0x6841 +0xF9FA 0x6C86 +0xF9FB 0x6E2F +0xF9FC 0x7F38 +0xF9FD 0x809B +0xF9FE 0x822A +0xFAA1 0xFA08 +0xFAA2 0xFA09 +0xFAA3 0x9805 +0xFAA4 0x4EA5 +0xFAA5 0x5055 +0xFAA6 0x54B3 +0xFAA7 0x5793 +0xFAA8 0x595A +0xFAA9 0x5B69 +0xFAAA 0x5BB3 +0xFAAB 0x61C8 +0xFAAC 0x6977 +0xFAAD 0x6D77 +0xFAAE 0x7023 +0xFAAF 0x87F9 +0xFAB0 0x89E3 +0xFAB1 0x8A72 +0xFAB2 0x8AE7 +0xFAB3 0x9082 +0xFAB4 0x99ED +0xFAB5 0x9AB8 +0xFAB6 0x52BE +0xFAB7 0x6838 +0xFAB8 0x5016 +0xFAB9 0x5E78 +0xFABA 0x674F +0xFABB 0x8347 +0xFABC 0x884C +0xFABD 0x4EAB +0xFABE 0x5411 +0xFABF 0x56AE +0xFAC0 0x73E6 +0xFAC1 0x9115 +0xFAC2 0x97FF +0xFAC3 0x9909 +0xFAC4 0x9957 +0xFAC5 0x9999 +0xFAC6 0x5653 +0xFAC7 0x589F +0xFAC8 0x865B +0xFAC9 0x8A31 +0xFACA 0x61B2 +0xFACB 0x6AF6 +0xFACC 0x737B +0xFACD 0x8ED2 +0xFACE 0x6B47 +0xFACF 0x96AA +0xFAD0 0x9A57 +0xFAD1 0x5955 +0xFAD2 0x7200 +0xFAD3 0x8D6B +0xFAD4 0x9769 +0xFAD5 0x4FD4 +0xFAD6 0x5CF4 +0xFAD7 0x5F26 +0xFAD8 0x61F8 +0xFAD9 0x665B +0xFADA 0x6CEB +0xFADB 0x70AB +0xFADC 0x7384 +0xFADD 0x73B9 +0xFADE 0x73FE +0xFADF 0x7729 +0xFAE0 0x774D +0xFAE1 0x7D43 +0xFAE2 0x7D62 +0xFAE3 0x7E23 +0xFAE4 0x8237 +0xFAE5 0x8852 +0xFAE6 0xFA0A +0xFAE7 0x8CE2 +0xFAE8 0x9249 +0xFAE9 0x986F +0xFAEA 0x5B51 +0xFAEB 0x7A74 +0xFAEC 0x8840 +0xFAED 0x9801 +0xFAEE 0x5ACC +0xFAEF 0x4FE0 +0xFAF0 0x5354 +0xFAF1 0x593E +0xFAF2 0x5CFD +0xFAF3 0x633E +0xFAF4 0x6D79 +0xFAF5 0x72F9 +0xFAF6 0x8105 +0xFAF7 0x8107 +0xFAF8 0x83A2 +0xFAF9 0x92CF +0xFAFA 0x9830 +0xFAFB 0x4EA8 +0xFAFC 0x5144 +0xFAFD 0x5211 +0xFAFE 0x578B +0xFBA1 0x5F62 +0xFBA2 0x6CC2 +0xFBA3 0x6ECE +0xFBA4 0x7005 +0xFBA5 0x7050 +0xFBA6 0x70AF +0xFBA7 0x7192 +0xFBA8 0x73E9 +0xFBA9 0x7469 +0xFBAA 0x834A +0xFBAB 0x87A2 +0xFBAC 0x8861 +0xFBAD 0x9008 +0xFBAE 0x90A2 +0xFBAF 0x93A3 +0xFBB0 0x99A8 +0xFBB1 0x516E +0xFBB2 0x5F57 +0xFBB3 0x60E0 +0xFBB4 0x6167 +0xFBB5 0x66B3 +0xFBB6 0x8559 +0xFBB7 0x8E4A +0xFBB8 0x91AF +0xFBB9 0x978B +0xFBBA 0x4E4E +0xFBBB 0x4E92 +0xFBBC 0x547C +0xFBBD 0x58D5 +0xFBBE 0x58FA +0xFBBF 0x597D +0xFBC0 0x5CB5 +0xFBC1 0x5F27 +0xFBC2 0x6236 +0xFBC3 0x6248 +0xFBC4 0x660A +0xFBC5 0x6667 +0xFBC6 0x6BEB +0xFBC7 0x6D69 +0xFBC8 0x6DCF +0xFBC9 0x6E56 +0xFBCA 0x6EF8 +0xFBCB 0x6F94 +0xFBCC 0x6FE0 +0xFBCD 0x6FE9 +0xFBCE 0x705D +0xFBCF 0x72D0 +0xFBD0 0x7425 +0xFBD1 0x745A +0xFBD2 0x74E0 +0xFBD3 0x7693 +0xFBD4 0x795C +0xFBD5 0x7CCA +0xFBD6 0x7E1E +0xFBD7 0x80E1 +0xFBD8 0x82A6 +0xFBD9 0x846B +0xFBDA 0x84BF +0xFBDB 0x864E +0xFBDC 0x865F +0xFBDD 0x8774 +0xFBDE 0x8B77 +0xFBDF 0x8C6A +0xFBE0 0x93AC +0xFBE1 0x9800 +0xFBE2 0x9865 +0xFBE3 0x60D1 +0xFBE4 0x6216 +0xFBE5 0x9177 +0xFBE6 0x5A5A +0xFBE7 0x660F +0xFBE8 0x6DF7 +0xFBE9 0x6E3E +0xFBEA 0x743F +0xFBEB 0x9B42 +0xFBEC 0x5FFD +0xFBED 0x60DA +0xFBEE 0x7B0F +0xFBEF 0x54C4 +0xFBF0 0x5F18 +0xFBF1 0x6C5E +0xFBF2 0x6CD3 +0xFBF3 0x6D2A +0xFBF4 0x70D8 +0xFBF5 0x7D05 +0xFBF6 0x8679 +0xFBF7 0x8A0C +0xFBF8 0x9D3B +0xFBF9 0x5316 +0xFBFA 0x548C +0xFBFB 0x5B05 +0xFBFC 0x6A3A +0xFBFD 0x706B +0xFBFE 0x7575 +0xFCA1 0x798D +0xFCA2 0x79BE +0xFCA3 0x82B1 +0xFCA4 0x83EF +0xFCA5 0x8A71 +0xFCA6 0x8B41 +0xFCA7 0x8CA8 +0xFCA8 0x9774 +0xFCA9 0xFA0B +0xFCAA 0x64F4 +0xFCAB 0x652B +0xFCAC 0x78BA +0xFCAD 0x78BB +0xFCAE 0x7A6B +0xFCAF 0x4E38 +0xFCB0 0x559A +0xFCB1 0x5950 +0xFCB2 0x5BA6 +0xFCB3 0x5E7B +0xFCB4 0x60A3 +0xFCB5 0x63DB +0xFCB6 0x6B61 +0xFCB7 0x6665 +0xFCB8 0x6853 +0xFCB9 0x6E19 +0xFCBA 0x7165 +0xFCBB 0x74B0 +0xFCBC 0x7D08 +0xFCBD 0x9084 +0xFCBE 0x9A69 +0xFCBF 0x9C25 +0xFCC0 0x6D3B +0xFCC1 0x6ED1 +0xFCC2 0x733E +0xFCC3 0x8C41 +0xFCC4 0x95CA +0xFCC5 0x51F0 +0xFCC6 0x5E4C +0xFCC7 0x5FA8 +0xFCC8 0x604D +0xFCC9 0x60F6 +0xFCCA 0x6130 +0xFCCB 0x614C +0xFCCC 0x6643 +0xFCCD 0x6644 +0xFCCE 0x69A5 +0xFCCF 0x6CC1 +0xFCD0 0x6E5F +0xFCD1 0x6EC9 +0xFCD2 0x6F62 +0xFCD3 0x714C +0xFCD4 0x749C +0xFCD5 0x7687 +0xFCD6 0x7BC1 +0xFCD7 0x7C27 +0xFCD8 0x8352 +0xFCD9 0x8757 +0xFCDA 0x9051 +0xFCDB 0x968D +0xFCDC 0x9EC3 +0xFCDD 0x532F +0xFCDE 0x56DE +0xFCDF 0x5EFB +0xFCE0 0x5F8A +0xFCE1 0x6062 +0xFCE2 0x6094 +0xFCE3 0x61F7 +0xFCE4 0x6666 +0xFCE5 0x6703 +0xFCE6 0x6A9C +0xFCE7 0x6DEE +0xFCE8 0x6FAE +0xFCE9 0x7070 +0xFCEA 0x736A +0xFCEB 0x7E6A +0xFCEC 0x81BE +0xFCED 0x8334 +0xFCEE 0x86D4 +0xFCEF 0x8AA8 +0xFCF0 0x8CC4 +0xFCF1 0x5283 +0xFCF2 0x7372 +0xFCF3 0x5B96 +0xFCF4 0x6A6B +0xFCF5 0x9404 +0xFCF6 0x54EE +0xFCF7 0x5686 +0xFCF8 0x5B5D +0xFCF9 0x6548 +0xFCFA 0x6585 +0xFCFB 0x66C9 +0xFCFC 0x689F +0xFCFD 0x6D8D +0xFCFE 0x6DC6 +0xFDA1 0x723B +0xFDA2 0x80B4 +0xFDA3 0x9175 +0xFDA4 0x9A4D +0xFDA5 0x4FAF +0xFDA6 0x5019 +0xFDA7 0x539A +0xFDA8 0x540E +0xFDA9 0x543C +0xFDAA 0x5589 +0xFDAB 0x55C5 +0xFDAC 0x5E3F +0xFDAD 0x5F8C +0xFDAE 0x673D +0xFDAF 0x7166 +0xFDB0 0x73DD +0xFDB1 0x9005 +0xFDB2 0x52DB +0xFDB3 0x52F3 +0xFDB4 0x5864 +0xFDB5 0x58CE +0xFDB6 0x7104 +0xFDB7 0x718F +0xFDB8 0x71FB +0xFDB9 0x85B0 +0xFDBA 0x8A13 +0xFDBB 0x6688 +0xFDBC 0x85A8 +0xFDBD 0x55A7 +0xFDBE 0x6684 +0xFDBF 0x714A +0xFDC0 0x8431 +0xFDC1 0x5349 +0xFDC2 0x5599 +0xFDC3 0x6BC1 +0xFDC4 0x5F59 +0xFDC5 0x5FBD +0xFDC6 0x63EE +0xFDC7 0x6689 +0xFDC8 0x7147 +0xFDC9 0x8AF1 +0xFDCA 0x8F1D +0xFDCB 0x9EBE +0xFDCC 0x4F11 +0xFDCD 0x643A +0xFDCE 0x70CB +0xFDCF 0x7566 +0xFDD0 0x8667 +0xFDD1 0x6064 +0xFDD2 0x8B4E +0xFDD3 0x9DF8 +0xFDD4 0x5147 +0xFDD5 0x51F6 +0xFDD6 0x5308 +0xFDD7 0x6D36 +0xFDD8 0x80F8 +0xFDD9 0x9ED1 +0xFDDA 0x6615 +0xFDDB 0x6B23 +0xFDDC 0x7098 +0xFDDD 0x75D5 +0xFDDE 0x5403 +0xFDDF 0x5C79 +0xFDE0 0x7D07 +0xFDE1 0x8A16 +0xFDE2 0x6B20 +0xFDE3 0x6B3D +0xFDE4 0x6B46 +0xFDE5 0x5438 +0xFDE6 0x6070 +0xFDE7 0x6D3D +0xFDE8 0x7FD5 +0xFDE9 0x8208 +0xFDEA 0x50D6 +0xFDEB 0x51DE +0xFDEC 0x559C +0xFDED 0x566B +0xFDEE 0x56CD +0xFDEF 0x59EC +0xFDF0 0x5B09 +0xFDF1 0x5E0C +0xFDF2 0x6199 +0xFDF3 0x6198 +0xFDF4 0x6231 +0xFDF5 0x665E +0xFDF6 0x66E6 +0xFDF7 0x7199 +0xFDF8 0x71B9 +0xFDF9 0x71BA +0xFDFA 0x72A7 +0xFDFB 0x79A7 +0xFDFC 0x7A00 +0xFDFD 0x7FB2 +0xFDFE 0x8A70 diff --git a/3rdPartner/libiconv/tests/EUC-TW.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/EUC-TW.IRREVERSIBLE.TXT new file mode 100644 index 0000000..3ca2824 --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-TW.IRREVERSIBLE.TXT @@ -0,0 +1,5869 @@ +0x8EA1A1A1 0x3000 +0x8EA1A1A2 0xFF0C +0x8EA1A1A3 0x3001 +0x8EA1A1A4 0x3002 +0x8EA1A1A5 0xFF0E +0x8EA1A1A6 0x30FB +0x8EA1A1A7 0xFF1B +0x8EA1A1A8 0xFF1A +0x8EA1A1A9 0xFF1F +0x8EA1A1AA 0xFF01 +0x8EA1A1AB 0xFE30 +0x8EA1A1AC 0x2026 +0x8EA1A1AD 0x2025 +0x8EA1A1AE 0xFE50 +0x8EA1A1AF 0xFE51 +0x8EA1A1B0 0xFE52 +0x8EA1A1B1 0x00B7 +0x8EA1A1B2 0xFE54 +0x8EA1A1B3 0xFE55 +0x8EA1A1B4 0xFE56 +0x8EA1A1B5 0xFE57 +0x8EA1A1B6 0xFE31 +0x8EA1A1B7 0x2014 +0x8EA1A1B8 0xFE32 +0x8EA1A1B9 0x2013 +0x8EA1A1BE 0xFF08 +0x8EA1A1BF 0xFF09 +0x8EA1A1C0 0xFE35 +0x8EA1A1C1 0xFE36 +0x8EA1A1C2 0xFF5B +0x8EA1A1C3 0xFF5D +0x8EA1A1C4 0xFE37 +0x8EA1A1C5 0xFE38 +0x8EA1A1C6 0x3014 +0x8EA1A1C7 0x3015 +0x8EA1A1C8 0xFE39 +0x8EA1A1C9 0xFE3A +0x8EA1A1CA 0x3010 +0x8EA1A1CB 0x3011 +0x8EA1A1CC 0xFE3B +0x8EA1A1CD 0xFE3C +0x8EA1A1CE 0x300A +0x8EA1A1CF 0x300B +0x8EA1A1D0 0xFE3D +0x8EA1A1D1 0xFE3E +0x8EA1A1D2 0x3008 +0x8EA1A1D3 0x3009 +0x8EA1A1D4 0xFE3F +0x8EA1A1D5 0xFE40 +0x8EA1A1D6 0x300C +0x8EA1A1D7 0x300D +0x8EA1A1D8 0xFE41 +0x8EA1A1D9 0xFE42 +0x8EA1A1DA 0x300E +0x8EA1A1DB 0x300F +0x8EA1A1DC 0xFE43 +0x8EA1A1DD 0xFE44 +0x8EA1A1DE 0xFE59 +0x8EA1A1DF 0xFE5A +0x8EA1A1E0 0xFE5B +0x8EA1A1E1 0xFE5C +0x8EA1A1E2 0xFE5D +0x8EA1A1E3 0xFE5E +0x8EA1A1E4 0x2018 +0x8EA1A1E5 0x2019 +0x8EA1A1E6 0x201C +0x8EA1A1E7 0x201D +0x8EA1A1E8 0x301D +0x8EA1A1E9 0x301E +0x8EA1A1EA 0x2032 +0x8EA1A1EB 0x2035 +0x8EA1A1EC 0xFF03 +0x8EA1A1ED 0xFF06 +0x8EA1A1EE 0xFF0A +0x8EA1A1EF 0x203B +0x8EA1A1F0 0x00A7 +0x8EA1A1F1 0x3003 +0x8EA1A1F2 0x25CB +0x8EA1A1F3 0x25CF +0x8EA1A1F4 0x25B3 +0x8EA1A1F5 0x25B2 +0x8EA1A1F6 0x25CE +0x8EA1A1F7 0x2606 +0x8EA1A1F8 0x2605 +0x8EA1A1F9 0x25C7 +0x8EA1A1FA 0x25C6 +0x8EA1A1FB 0x25A1 +0x8EA1A1FC 0x25A0 +0x8EA1A1FD 0x25BD +0x8EA1A1FE 0x25BC +0x8EA1A2A1 0x32A3 +0x8EA1A2A2 0x2105 +0x8EA1A2A3 0x203E +0x8EA1A2A5 0xFF3F +0x8EA1A2A7 0xFE49 +0x8EA1A2A8 0xFE4A +0x8EA1A2A9 0xFE4D +0x8EA1A2AA 0xFE4E +0x8EA1A2AB 0xFE4B +0x8EA1A2AC 0xFE4C +0x8EA1A2AD 0xFE5F +0x8EA1A2AE 0xFE60 +0x8EA1A2AF 0xFE61 +0x8EA1A2B0 0xFF0B +0x8EA1A2B1 0xFF0D +0x8EA1A2B2 0x00D7 +0x8EA1A2B3 0x00F7 +0x8EA1A2B4 0x00B1 +0x8EA1A2B5 0x221A +0x8EA1A2B6 0xFF1C +0x8EA1A2B7 0xFF1E +0x8EA1A2B8 0xFF1D +0x8EA1A2B9 0x2266 +0x8EA1A2BA 0x2267 +0x8EA1A2BB 0x2260 +0x8EA1A2BC 0x221E +0x8EA1A2BD 0x2252 +0x8EA1A2BE 0x2261 +0x8EA1A2BF 0xFE62 +0x8EA1A2C0 0xFE63 +0x8EA1A2C1 0xFE64 +0x8EA1A2C2 0xFE66 +0x8EA1A2C3 0xFE65 +0x8EA1A2C4 0x223C +0x8EA1A2C5 0x2229 +0x8EA1A2C6 0x222A +0x8EA1A2C7 0x22A5 +0x8EA1A2C8 0x2220 +0x8EA1A2C9 0x221F +0x8EA1A2CA 0x22BF +0x8EA1A2CB 0x33D2 +0x8EA1A2CC 0x33D1 +0x8EA1A2CD 0x222B +0x8EA1A2CE 0x222E +0x8EA1A2CF 0x2235 +0x8EA1A2D0 0x2234 +0x8EA1A2D1 0x2640 +0x8EA1A2D2 0x2642 +0x8EA1A2D3 0x2641 +0x8EA1A2D4 0x2609 +0x8EA1A2D5 0x2191 +0x8EA1A2D6 0x2193 +0x8EA1A2D7 0x2192 +0x8EA1A2D8 0x2190 +0x8EA1A2D9 0x2196 +0x8EA1A2DA 0x2197 +0x8EA1A2DB 0x2199 +0x8EA1A2DC 0x2198 +0x8EA1A2DD 0x2016 +0x8EA1A2DE 0xFF5C +0x8EA1A2DF 0xFF0F +0x8EA1A2E0 0xFF3C +0x8EA1A2E1 0x2215 +0x8EA1A2E2 0xFE68 +0x8EA1A2E3 0xFF04 +0x8EA1A2E4 0xFFE5 +0x8EA1A2E5 0x3012 +0x8EA1A2E6 0xFFE0 +0x8EA1A2E7 0xFFE1 +0x8EA1A2E8 0xFF05 +0x8EA1A2E9 0xFF20 +0x8EA1A2EA 0x2103 +0x8EA1A2EB 0x2109 +0x8EA1A2EC 0xFE69 +0x8EA1A2ED 0xFE6A +0x8EA1A2EE 0xFE6B +0x8EA1A2EF 0x33D5 +0x8EA1A2F0 0x339C +0x8EA1A2F1 0x339D +0x8EA1A2F2 0x339E +0x8EA1A2F3 0x33CE +0x8EA1A2F4 0x33A1 +0x8EA1A2F5 0x338E +0x8EA1A2F6 0x338F +0x8EA1A2F7 0x33C4 +0x8EA1A2F8 0x00B0 +0x8EA1A2F9 0x5159 +0x8EA1A2FA 0x515B +0x8EA1A2FB 0x515E +0x8EA1A2FC 0x515D +0x8EA1A2FD 0x5161 +0x8EA1A2FE 0x5163 +0x8EA1A3A1 0x55E7 +0x8EA1A3A2 0x74E9 +0x8EA1A3A3 0x7CCE +0x8EA1A3A4 0x2581 +0x8EA1A3A5 0x2582 +0x8EA1A3A6 0x2583 +0x8EA1A3A7 0x2584 +0x8EA1A3A8 0x2585 +0x8EA1A3A9 0x2586 +0x8EA1A3AA 0x2587 +0x8EA1A3AB 0x2588 +0x8EA1A3AC 0x258F +0x8EA1A3AD 0x258E +0x8EA1A3AE 0x258D +0x8EA1A3AF 0x258C +0x8EA1A3B0 0x258B +0x8EA1A3B1 0x258A +0x8EA1A3B2 0x2589 +0x8EA1A3B3 0x253C +0x8EA1A3B4 0x2534 +0x8EA1A3B5 0x252C +0x8EA1A3B6 0x2524 +0x8EA1A3B7 0x251C +0x8EA1A3B8 0x2594 +0x8EA1A3B9 0x2500 +0x8EA1A3BA 0x2502 +0x8EA1A3BB 0x2595 +0x8EA1A3BC 0x250C +0x8EA1A3BD 0x2510 +0x8EA1A3BE 0x2514 +0x8EA1A3BF 0x2518 +0x8EA1A3C0 0x256D +0x8EA1A3C1 0x256E +0x8EA1A3C2 0x2570 +0x8EA1A3C3 0x256F +0x8EA1A3C4 0x2550 +0x8EA1A3C5 0x255E +0x8EA1A3C6 0x256A +0x8EA1A3C7 0x2561 +0x8EA1A3C8 0x25E2 +0x8EA1A3C9 0x25E3 +0x8EA1A3CA 0x25E5 +0x8EA1A3CB 0x25E4 +0x8EA1A3CC 0x2571 +0x8EA1A3CD 0x2572 +0x8EA1A3CE 0x2573 +0x8EA1A4A1 0xFF10 +0x8EA1A4A2 0xFF11 +0x8EA1A4A3 0xFF12 +0x8EA1A4A4 0xFF13 +0x8EA1A4A5 0xFF14 +0x8EA1A4A6 0xFF15 +0x8EA1A4A7 0xFF16 +0x8EA1A4A8 0xFF17 +0x8EA1A4A9 0xFF18 +0x8EA1A4AA 0xFF19 +0x8EA1A4AB 0x2160 +0x8EA1A4AC 0x2161 +0x8EA1A4AD 0x2162 +0x8EA1A4AE 0x2163 +0x8EA1A4AF 0x2164 +0x8EA1A4B0 0x2165 +0x8EA1A4B1 0x2166 +0x8EA1A4B2 0x2167 +0x8EA1A4B3 0x2168 +0x8EA1A4B4 0x2169 +0x8EA1A4B5 0x3021 +0x8EA1A4B6 0x3022 +0x8EA1A4B7 0x3023 +0x8EA1A4B8 0x3024 +0x8EA1A4B9 0x3025 +0x8EA1A4BA 0x3026 +0x8EA1A4BB 0x3027 +0x8EA1A4BC 0x3028 +0x8EA1A4BD 0x3029 +0x8EA1A4BF 0x5344 +0x8EA1A4C1 0xFF21 +0x8EA1A4C2 0xFF22 +0x8EA1A4C3 0xFF23 +0x8EA1A4C4 0xFF24 +0x8EA1A4C5 0xFF25 +0x8EA1A4C6 0xFF26 +0x8EA1A4C7 0xFF27 +0x8EA1A4C8 0xFF28 +0x8EA1A4C9 0xFF29 +0x8EA1A4CA 0xFF2A +0x8EA1A4CB 0xFF2B +0x8EA1A4CC 0xFF2C +0x8EA1A4CD 0xFF2D +0x8EA1A4CE 0xFF2E +0x8EA1A4CF 0xFF2F +0x8EA1A4D0 0xFF30 +0x8EA1A4D1 0xFF31 +0x8EA1A4D2 0xFF32 +0x8EA1A4D3 0xFF33 +0x8EA1A4D4 0xFF34 +0x8EA1A4D5 0xFF35 +0x8EA1A4D6 0xFF36 +0x8EA1A4D7 0xFF37 +0x8EA1A4D8 0xFF38 +0x8EA1A4D9 0xFF39 +0x8EA1A4DA 0xFF3A +0x8EA1A4DB 0xFF41 +0x8EA1A4DC 0xFF42 +0x8EA1A4DD 0xFF43 +0x8EA1A4DE 0xFF44 +0x8EA1A4DF 0xFF45 +0x8EA1A4E0 0xFF46 +0x8EA1A4E1 0xFF47 +0x8EA1A4E2 0xFF48 +0x8EA1A4E3 0xFF49 +0x8EA1A4E4 0xFF4A +0x8EA1A4E5 0xFF4B +0x8EA1A4E6 0xFF4C +0x8EA1A4E7 0xFF4D +0x8EA1A4E8 0xFF4E +0x8EA1A4E9 0xFF4F +0x8EA1A4EA 0xFF50 +0x8EA1A4EB 0xFF51 +0x8EA1A4EC 0xFF52 +0x8EA1A4ED 0xFF53 +0x8EA1A4EE 0xFF54 +0x8EA1A4EF 0xFF55 +0x8EA1A4F0 0xFF56 +0x8EA1A4F1 0xFF57 +0x8EA1A4F2 0xFF58 +0x8EA1A4F3 0xFF59 +0x8EA1A4F4 0xFF5A +0x8EA1A4F5 0x0391 +0x8EA1A4F6 0x0392 +0x8EA1A4F7 0x0393 +0x8EA1A4F8 0x0394 +0x8EA1A4F9 0x0395 +0x8EA1A4FA 0x0396 +0x8EA1A4FB 0x0397 +0x8EA1A4FC 0x0398 +0x8EA1A4FD 0x0399 +0x8EA1A4FE 0x039A +0x8EA1A5A1 0x039B +0x8EA1A5A2 0x039C +0x8EA1A5A3 0x039D +0x8EA1A5A4 0x039E +0x8EA1A5A5 0x039F +0x8EA1A5A6 0x03A0 +0x8EA1A5A7 0x03A1 +0x8EA1A5A8 0x03A3 +0x8EA1A5A9 0x03A4 +0x8EA1A5AA 0x03A5 +0x8EA1A5AB 0x03A6 +0x8EA1A5AC 0x03A7 +0x8EA1A5AD 0x03A8 +0x8EA1A5AE 0x03A9 +0x8EA1A5AF 0x03B1 +0x8EA1A5B0 0x03B2 +0x8EA1A5B1 0x03B3 +0x8EA1A5B2 0x03B4 +0x8EA1A5B3 0x03B5 +0x8EA1A5B4 0x03B6 +0x8EA1A5B5 0x03B7 +0x8EA1A5B6 0x03B8 +0x8EA1A5B7 0x03B9 +0x8EA1A5B8 0x03BA +0x8EA1A5B9 0x03BB +0x8EA1A5BA 0x03BC +0x8EA1A5BB 0x03BD +0x8EA1A5BC 0x03BE +0x8EA1A5BD 0x03BF +0x8EA1A5BE 0x03C0 +0x8EA1A5BF 0x03C1 +0x8EA1A5C0 0x03C3 +0x8EA1A5C1 0x03C4 +0x8EA1A5C2 0x03C5 +0x8EA1A5C3 0x03C6 +0x8EA1A5C4 0x03C7 +0x8EA1A5C5 0x03C8 +0x8EA1A5C6 0x03C9 +0x8EA1A5C7 0x3105 +0x8EA1A5C8 0x3106 +0x8EA1A5C9 0x3107 +0x8EA1A5CA 0x3108 +0x8EA1A5CB 0x3109 +0x8EA1A5CC 0x310A +0x8EA1A5CD 0x310B +0x8EA1A5CE 0x310C +0x8EA1A5CF 0x310D +0x8EA1A5D0 0x310E +0x8EA1A5D1 0x310F +0x8EA1A5D2 0x3110 +0x8EA1A5D3 0x3111 +0x8EA1A5D4 0x3112 +0x8EA1A5D5 0x3113 +0x8EA1A5D6 0x3114 +0x8EA1A5D7 0x3115 +0x8EA1A5D8 0x3116 +0x8EA1A5D9 0x3117 +0x8EA1A5DA 0x3118 +0x8EA1A5DB 0x3119 +0x8EA1A5DC 0x311A +0x8EA1A5DD 0x311B +0x8EA1A5DE 0x311C +0x8EA1A5DF 0x311D +0x8EA1A5E0 0x311E +0x8EA1A5E1 0x311F +0x8EA1A5E2 0x3120 +0x8EA1A5E3 0x3121 +0x8EA1A5E4 0x3122 +0x8EA1A5E5 0x3123 +0x8EA1A5E6 0x3124 +0x8EA1A5E7 0x3125 +0x8EA1A5E8 0x3126 +0x8EA1A5E9 0x3127 +0x8EA1A5EA 0x3128 +0x8EA1A5EB 0x3129 +0x8EA1A5EC 0x02D9 +0x8EA1A5ED 0x02C9 +0x8EA1A5EE 0x02CA +0x8EA1A5EF 0x02C7 +0x8EA1A5F0 0x02CB +0x8EA1A6A1 0x2460 +0x8EA1A6A2 0x2461 +0x8EA1A6A3 0x2462 +0x8EA1A6A4 0x2463 +0x8EA1A6A5 0x2464 +0x8EA1A6A6 0x2465 +0x8EA1A6A7 0x2466 +0x8EA1A6A8 0x2467 +0x8EA1A6A9 0x2468 +0x8EA1A6AA 0x2469 +0x8EA1A6AB 0x2474 +0x8EA1A6AC 0x2475 +0x8EA1A6AD 0x2476 +0x8EA1A6AE 0x2477 +0x8EA1A6AF 0x2478 +0x8EA1A6B0 0x2479 +0x8EA1A6B1 0x247A +0x8EA1A6B2 0x247B +0x8EA1A6B3 0x247C +0x8EA1A6B4 0x247D +0x8EA1A6B5 0x2170 +0x8EA1A6B6 0x2171 +0x8EA1A6B7 0x2172 +0x8EA1A6B8 0x2173 +0x8EA1A6B9 0x2174 +0x8EA1A6BA 0x2175 +0x8EA1A6BB 0x2176 +0x8EA1A6BC 0x2177 +0x8EA1A6BD 0x2178 +0x8EA1A6BE 0x2179 +0x8EA1A7A8 0x4EA0 +0x8EA1A7AF 0x51AB +0x8EA1A7B4 0x52F9 +0x8EA1C2A1 0x2400 +0x8EA1C2A2 0x2401 +0x8EA1C2A3 0x2402 +0x8EA1C2A4 0x2403 +0x8EA1C2A5 0x2404 +0x8EA1C2A6 0x2405 +0x8EA1C2A7 0x2406 +0x8EA1C2A8 0x2407 +0x8EA1C2A9 0x2408 +0x8EA1C2AA 0x2409 +0x8EA1C2AB 0x240A +0x8EA1C2AC 0x240B +0x8EA1C2AD 0x240C +0x8EA1C2AE 0x240D +0x8EA1C2AF 0x240E +0x8EA1C2B0 0x240F +0x8EA1C2B1 0x2410 +0x8EA1C2B2 0x2411 +0x8EA1C2B3 0x2412 +0x8EA1C2B4 0x2413 +0x8EA1C2B5 0x2414 +0x8EA1C2B6 0x2415 +0x8EA1C2B7 0x2416 +0x8EA1C2B8 0x2417 +0x8EA1C2B9 0x2418 +0x8EA1C2BA 0x2419 +0x8EA1C2BB 0x241A +0x8EA1C2BC 0x241B +0x8EA1C2BD 0x241C +0x8EA1C2BE 0x241D +0x8EA1C2BF 0x241E +0x8EA1C2C0 0x241F +0x8EA1C2C1 0x2421 +0x8EA1C2C2 0x20AC +0x8EA1C4A1 0x4E00 +0x8EA1C4A2 0x4E59 +0x8EA1C4A3 0x4E01 +0x8EA1C4A4 0x4E03 +0x8EA1C4A5 0x4E43 +0x8EA1C4A6 0x4E5D +0x8EA1C4A7 0x4E86 +0x8EA1C4A8 0x4E8C +0x8EA1C4A9 0x4EBA +0x8EA1C4AA 0x513F +0x8EA1C4AB 0x5165 +0x8EA1C4AC 0x516B +0x8EA1C4AD 0x51E0 +0x8EA1C4AE 0x5200 +0x8EA1C4AF 0x5201 +0x8EA1C4B0 0x529B +0x8EA1C4B1 0x5315 +0x8EA1C4B2 0x5341 +0x8EA1C4B3 0x535C +0x8EA1C4B4 0x53C8 +0x8EA1C4B5 0x4E09 +0x8EA1C4B6 0x4E0B +0x8EA1C4B7 0x4E08 +0x8EA1C4B8 0x4E0A +0x8EA1C4B9 0x4E2B +0x8EA1C4BA 0x4E38 +0x8EA1C4BB 0x51E1 +0x8EA1C4BC 0x4E45 +0x8EA1C4BD 0x4E48 +0x8EA1C4BE 0x4E5F +0x8EA1C4BF 0x4E5E +0x8EA1C4C0 0x4E8E +0x8EA1C4C1 0x4EA1 +0x8EA1C4C2 0x5140 +0x8EA1C4C3 0x5203 +0x8EA1C4C4 0x52FA +0x8EA1C4C5 0x5343 +0x8EA1C4C6 0x53C9 +0x8EA1C4C7 0x53E3 +0x8EA1C4C8 0x571F +0x8EA1C4C9 0x58EB +0x8EA1C4CA 0x5915 +0x8EA1C4CB 0x5927 +0x8EA1C4CC 0x5973 +0x8EA1C4CD 0x5B50 +0x8EA1C4CE 0x5B51 +0x8EA1C4CF 0x5B53 +0x8EA1C4D0 0x5BF8 +0x8EA1C4D1 0x5C0F +0x8EA1C4D2 0x5C22 +0x8EA1C4D3 0x5C38 +0x8EA1C4D4 0x5C71 +0x8EA1C4D5 0x5DDD +0x8EA1C4D6 0x5DE5 +0x8EA1C4D7 0x5DF1 +0x8EA1C4D8 0x5DF2 +0x8EA1C4D9 0x5DF3 +0x8EA1C4DA 0x5DFE +0x8EA1C4DB 0x5E72 +0x8EA1C4DC 0x5EFE +0x8EA1C4DD 0x5F0B +0x8EA1C4DE 0x5F13 +0x8EA1C4DF 0x624D +0x8EA1C4E0 0x4E11 +0x8EA1C4E1 0x4E10 +0x8EA1C4E2 0x4E0D +0x8EA1C4E3 0x4E2D +0x8EA1C4E4 0x4E30 +0x8EA1C4E5 0x4E39 +0x8EA1C4E6 0x4E4B +0x8EA1C4E7 0x5C39 +0x8EA1C4E8 0x4E88 +0x8EA1C4E9 0x4E91 +0x8EA1C4EA 0x4E95 +0x8EA1C4EB 0x4E92 +0x8EA1C4EC 0x4E94 +0x8EA1C4ED 0x4EA2 +0x8EA1C4EE 0x4EC1 +0x8EA1C4EF 0x4EC0 +0x8EA1C4F0 0x4EC3 +0x8EA1C4F1 0x4EC6 +0x8EA1C4F2 0x4EC7 +0x8EA1C4F3 0x4ECD +0x8EA1C4F4 0x4ECA +0x8EA1C4F5 0x4ECB +0x8EA1C4F6 0x4EC4 +0x8EA1C4F7 0x5143 +0x8EA1C4F8 0x5141 +0x8EA1C4F9 0x5167 +0x8EA1C4FA 0x516D +0x8EA1C4FB 0x516E +0x8EA1C4FC 0x516C +0x8EA1C4FD 0x5197 +0x8EA1C4FE 0x51F6 +0x8EA1C5A1 0x5206 +0x8EA1C5A2 0x5207 +0x8EA1C5A3 0x5208 +0x8EA1C5A4 0x52FB +0x8EA1C5A5 0x52FE +0x8EA1C5A6 0x52FF +0x8EA1C5A7 0x5316 +0x8EA1C5A8 0x5339 +0x8EA1C5A9 0x5348 +0x8EA1C5AA 0x5347 +0x8EA1C5AB 0x5345 +0x8EA1C5AC 0x535E +0x8EA1C5AD 0x5384 +0x8EA1C5AE 0x53CB +0x8EA1C5AF 0x53CA +0x8EA1C5B0 0x53CD +0x8EA1C5B1 0x58EC +0x8EA1C5B2 0x5929 +0x8EA1C5B3 0x592B +0x8EA1C5B4 0x592A +0x8EA1C5B5 0x592D +0x8EA1C5B6 0x5B54 +0x8EA1C5B7 0x5C11 +0x8EA1C5B8 0x5C24 +0x8EA1C5B9 0x5C3A +0x8EA1C5BA 0x5C6F +0x8EA1C5BB 0x5DF4 +0x8EA1C5BC 0x5E7B +0x8EA1C5BD 0x5EFF +0x8EA1C5BE 0x5F14 +0x8EA1C5BF 0x5F15 +0x8EA1C5C0 0x5FC3 +0x8EA1C5C1 0x6208 +0x8EA1C5C2 0x6236 +0x8EA1C5C3 0x624B +0x8EA1C5C4 0x624E +0x8EA1C5C5 0x652F +0x8EA1C5C6 0x6587 +0x8EA1C5C7 0x6597 +0x8EA1C5C8 0x65A4 +0x8EA1C5C9 0x65B9 +0x8EA1C5CA 0x65E5 +0x8EA1C5CB 0x66F0 +0x8EA1C5CC 0x6708 +0x8EA1C5CD 0x6728 +0x8EA1C5CE 0x6B20 +0x8EA1C5CF 0x6B62 +0x8EA1C5D0 0x6B79 +0x8EA1C5D1 0x6BCB +0x8EA1C5D2 0x6BD4 +0x8EA1C5D3 0x6BDB +0x8EA1C5D4 0x6C0F +0x8EA1C5D5 0x6C34 +0x8EA1C5D6 0x706B +0x8EA1C5D7 0x722A +0x8EA1C5D8 0x7236 +0x8EA1C5D9 0x723B +0x8EA1C5DA 0x7247 +0x8EA1C5DB 0x7259 +0x8EA1C5DC 0x725B +0x8EA1C5DD 0x72AC +0x8EA1C5DE 0x738B +0x8EA1C5DF 0x4E19 +0x8EA1C5E0 0x4E16 +0x8EA1C5E1 0x4E15 +0x8EA1C5E2 0x4E14 +0x8EA1C5E3 0x4E18 +0x8EA1C5E4 0x4E3B +0x8EA1C5E5 0x4E4D +0x8EA1C5E6 0x4E4F +0x8EA1C5E7 0x4E4E +0x8EA1C5E8 0x4EE5 +0x8EA1C5E9 0x4ED8 +0x8EA1C5EA 0x4ED4 +0x8EA1C5EB 0x4ED5 +0x8EA1C5EC 0x4ED6 +0x8EA1C5ED 0x4ED7 +0x8EA1C5EE 0x4EE3 +0x8EA1C5EF 0x4EE4 +0x8EA1C5F0 0x4ED9 +0x8EA1C5F1 0x4EDE +0x8EA1C5F2 0x5145 +0x8EA1C5F3 0x5144 +0x8EA1C5F4 0x5189 +0x8EA1C5F5 0x518A +0x8EA1C5F6 0x51AC +0x8EA1C5F7 0x51F9 +0x8EA1C5F8 0x51FA +0x8EA1C5F9 0x51F8 +0x8EA1C5FA 0x520A +0x8EA1C5FB 0x52A0 +0x8EA1C5FC 0x529F +0x8EA1C5FD 0x5305 +0x8EA1C5FE 0x5306 +0x8EA1C6A1 0x5317 +0x8EA1C6A2 0x531D +0x8EA1C6A3 0x4EDF +0x8EA1C6A4 0x534A +0x8EA1C6A5 0x5349 +0x8EA1C6A6 0x5361 +0x8EA1C6A7 0x5360 +0x8EA1C6A8 0x536F +0x8EA1C6A9 0x536E +0x8EA1C6AA 0x53BB +0x8EA1C6AB 0x53EF +0x8EA1C6AC 0x53E4 +0x8EA1C6AD 0x53F3 +0x8EA1C6AE 0x53EC +0x8EA1C6AF 0x53EE +0x8EA1C6B0 0x53E9 +0x8EA1C6B1 0x53E8 +0x8EA1C6B2 0x53FC +0x8EA1C6B3 0x53F8 +0x8EA1C6B4 0x53F5 +0x8EA1C6B5 0x53EB +0x8EA1C6B6 0x53E6 +0x8EA1C6B7 0x53EA +0x8EA1C6B8 0x53F2 +0x8EA1C6B9 0x53F1 +0x8EA1C6BA 0x53F0 +0x8EA1C6BB 0x53E5 +0x8EA1C6BC 0x53ED +0x8EA1C6BD 0x53FB +0x8EA1C6BE 0x56DB +0x8EA1C6BF 0x56DA +0x8EA1C6C0 0x5916 +0x8EA1C6C1 0x592E +0x8EA1C6C2 0x5931 +0x8EA1C6C3 0x5974 +0x8EA1C6C4 0x5976 +0x8EA1C6C5 0x5B55 +0x8EA1C6C6 0x5B83 +0x8EA1C6C7 0x5C3C +0x8EA1C6C8 0x5DE8 +0x8EA1C6C9 0x5DE7 +0x8EA1C6CA 0x5DE6 +0x8EA1C6CB 0x5E02 +0x8EA1C6CC 0x5E03 +0x8EA1C6CD 0x5E73 +0x8EA1C6CE 0x5E7C +0x8EA1C6CF 0x5F01 +0x8EA1C6D0 0x5F18 +0x8EA1C6D1 0x5F17 +0x8EA1C6D2 0x5FC5 +0x8EA1C6D3 0x620A +0x8EA1C6D4 0x6253 +0x8EA1C6D5 0x6254 +0x8EA1C6D6 0x6252 +0x8EA1C6D7 0x6251 +0x8EA1C6D8 0x65A5 +0x8EA1C6D9 0x65E6 +0x8EA1C6DA 0x672E +0x8EA1C6DB 0x672C +0x8EA1C6DC 0x672A +0x8EA1C6DD 0x672B +0x8EA1C6DE 0x672D +0x8EA1C6DF 0x6B63 +0x8EA1C6E0 0x6BCD +0x8EA1C6E1 0x6C11 +0x8EA1C6E2 0x6C10 +0x8EA1C6E3 0x6C38 +0x8EA1C6E4 0x6C41 +0x8EA1C6E5 0x6C40 +0x8EA1C6E6 0x6C3E +0x8EA1C6E7 0x72AF +0x8EA1C6E8 0x7384 +0x8EA1C6E9 0x7389 +0x8EA1C6EA 0x74DC +0x8EA1C6EB 0x74E6 +0x8EA1C6EC 0x7518 +0x8EA1C6ED 0x751F +0x8EA1C6EE 0x7528 +0x8EA1C6EF 0x7529 +0x8EA1C6F0 0x7530 +0x8EA1C6F1 0x7531 +0x8EA1C6F2 0x7532 +0x8EA1C6F3 0x7533 +0x8EA1C6F4 0x758B +0x8EA1C6F5 0x767D +0x8EA1C6F6 0x76AE +0x8EA1C6F7 0x76BF +0x8EA1C6F8 0x76EE +0x8EA1C6F9 0x77DB +0x8EA1C6FA 0x77E2 +0x8EA1C6FB 0x77F3 +0x8EA1C6FC 0x793A +0x8EA1C6FD 0x79BE +0x8EA1C6FE 0x7A74 +0x8EA1C7A1 0x7ACB +0x8EA1C7A2 0x4E1E +0x8EA1C7A3 0x4E1F +0x8EA1C7A4 0x4E52 +0x8EA1C7A5 0x4E53 +0x8EA1C7A6 0x4E69 +0x8EA1C7A7 0x4E99 +0x8EA1C7A8 0x4EA4 +0x8EA1C7A9 0x4EA6 +0x8EA1C7AA 0x4EA5 +0x8EA1C7AB 0x4EFF +0x8EA1C7AC 0x4F09 +0x8EA1C7AD 0x4F19 +0x8EA1C7AE 0x4F0A +0x8EA1C7AF 0x4F15 +0x8EA1C7B0 0x4F0D +0x8EA1C7B1 0x4F10 +0x8EA1C7B2 0x4F11 +0x8EA1C7B3 0x4F0F +0x8EA1C7B4 0x4EF2 +0x8EA1C7B5 0x4EF6 +0x8EA1C7B6 0x4EFB +0x8EA1C7B7 0x4EF0 +0x8EA1C7B8 0x4EF3 +0x8EA1C7B9 0x4EFD +0x8EA1C7BA 0x4F01 +0x8EA1C7BB 0x4F0B +0x8EA1C7BC 0x5149 +0x8EA1C7BD 0x5147 +0x8EA1C7BE 0x5146 +0x8EA1C7BF 0x5148 +0x8EA1C7C0 0x5168 +0x8EA1C7C1 0x5171 +0x8EA1C7C2 0x518D +0x8EA1C7C3 0x51B0 +0x8EA1C7C4 0x5217 +0x8EA1C7C5 0x5211 +0x8EA1C7C6 0x5212 +0x8EA1C7C7 0x520E +0x8EA1C7C8 0x5216 +0x8EA1C7C9 0x52A3 +0x8EA1C7CA 0x5308 +0x8EA1C7CB 0x5321 +0x8EA1C7CC 0x5320 +0x8EA1C7CD 0x5370 +0x8EA1C7CE 0x5371 +0x8EA1C7CF 0x5409 +0x8EA1C7D0 0x540F +0x8EA1C7D1 0x540C +0x8EA1C7D2 0x540A +0x8EA1C7D3 0x5410 +0x8EA1C7D4 0x5401 +0x8EA1C7D5 0x540B +0x8EA1C7D6 0x5404 +0x8EA1C7D7 0x5411 +0x8EA1C7D8 0x540D +0x8EA1C7D9 0x5408 +0x8EA1C7DA 0x5403 +0x8EA1C7DB 0x540E +0x8EA1C7DC 0x5406 +0x8EA1C7DD 0x5412 +0x8EA1C7DE 0x56E0 +0x8EA1C7DF 0x56DE +0x8EA1C7E0 0x56DD +0x8EA1C7E1 0x5733 +0x8EA1C7E2 0x5730 +0x8EA1C7E3 0x5728 +0x8EA1C7E4 0x572D +0x8EA1C7E5 0x572C +0x8EA1C7E6 0x572F +0x8EA1C7E7 0x5729 +0x8EA1C7E8 0x5919 +0x8EA1C7E9 0x591A +0x8EA1C7EA 0x5937 +0x8EA1C7EB 0x5938 +0x8EA1C7EC 0x5984 +0x8EA1C7ED 0x5978 +0x8EA1C7EE 0x5983 +0x8EA1C7EF 0x597D +0x8EA1C7F0 0x5979 +0x8EA1C7F1 0x5982 +0x8EA1C7F2 0x5981 +0x8EA1C7F3 0x5B57 +0x8EA1C7F4 0x5B58 +0x8EA1C7F5 0x5B87 +0x8EA1C7F6 0x5B88 +0x8EA1C7F7 0x5B85 +0x8EA1C7F8 0x5B89 +0x8EA1C7F9 0x5BFA +0x8EA1C7FA 0x5C16 +0x8EA1C7FB 0x5C79 +0x8EA1C7FC 0x5DDE +0x8EA1C7FD 0x5E06 +0x8EA1C7FE 0x5E76 +0x8EA1C8A1 0x5E74 +0x8EA1C8A2 0x5F0F +0x8EA1C8A3 0x5F1B +0x8EA1C8A4 0x5FD9 +0x8EA1C8A5 0x5FD6 +0x8EA1C8A6 0x620E +0x8EA1C8A7 0x620C +0x8EA1C8A8 0x620D +0x8EA1C8A9 0x6210 +0x8EA1C8AA 0x6263 +0x8EA1C8AB 0x625B +0x8EA1C8AC 0x6258 +0x8EA1C8AD 0x6536 +0x8EA1C8AE 0x65E9 +0x8EA1C8AF 0x65E8 +0x8EA1C8B0 0x65EC +0x8EA1C8B1 0x65ED +0x8EA1C8B2 0x66F2 +0x8EA1C8B3 0x66F3 +0x8EA1C8B4 0x6709 +0x8EA1C8B5 0x673D +0x8EA1C8B6 0x6734 +0x8EA1C8B7 0x6731 +0x8EA1C8B8 0x6735 +0x8EA1C8B9 0x6B21 +0x8EA1C8BA 0x6B64 +0x8EA1C8BB 0x6B7B +0x8EA1C8BC 0x6C16 +0x8EA1C8BD 0x6C5D +0x8EA1C8BE 0x6C57 +0x8EA1C8BF 0x6C59 +0x8EA1C8C0 0x6C5F +0x8EA1C8C1 0x6C60 +0x8EA1C8C2 0x6C50 +0x8EA1C8C3 0x6C55 +0x8EA1C8C4 0x6C61 +0x8EA1C8C5 0x6C5B +0x8EA1C8C6 0x6C4D +0x8EA1C8C7 0x6C4E +0x8EA1C8C8 0x7070 +0x8EA1C8C9 0x725F +0x8EA1C8CA 0x725D +0x8EA1C8CB 0x767E +0x8EA1C8CC 0x7AF9 +0x8EA1C8CD 0x7C73 +0x8EA1C8CE 0x7CF8 +0x8EA1C8CF 0x7F36 +0x8EA1C8D0 0x7F8A +0x8EA1C8D1 0x7FBD +0x8EA1C8D2 0x8001 +0x8EA1C8D3 0x8003 +0x8EA1C8D4 0x800C +0x8EA1C8D5 0x8012 +0x8EA1C8D6 0x8033 +0x8EA1C8D7 0x807F +0x8EA1C8D8 0x8089 +0x8EA1C8D9 0x808B +0x8EA1C8DA 0x808C +0x8EA1C8DB 0x81E3 +0x8EA1C8DC 0x81EA +0x8EA1C8DD 0x81F3 +0x8EA1C8DE 0x81FC +0x8EA1C8DF 0x820C +0x8EA1C8E0 0x821B +0x8EA1C8E1 0x821F +0x8EA1C8E2 0x826E +0x8EA1C8E3 0x8272 +0x8EA1C8E4 0x827E +0x8EA1C8E5 0x866B +0x8EA1C8E6 0x8840 +0x8EA1C8E7 0x884C +0x8EA1C8E8 0x8863 +0x8EA1C8E9 0x897F +0x8EA1C8EA 0x9621 +0x8EA1C8EB 0x4E32 +0x8EA1C8EC 0x4EA8 +0x8EA1C8ED 0x4F4D +0x8EA1C8EE 0x4F4F +0x8EA1C8EF 0x4F47 +0x8EA1C8F0 0x4F57 +0x8EA1C8F1 0x4F5E +0x8EA1C8F2 0x4F34 +0x8EA1C8F3 0x4F5B +0x8EA1C8F4 0x4F55 +0x8EA1C8F5 0x4F30 +0x8EA1C8F6 0x4F50 +0x8EA1C8F7 0x4F51 +0x8EA1C8F8 0x4F3D +0x8EA1C8F9 0x4F3A +0x8EA1C8FA 0x4F38 +0x8EA1C8FB 0x4F43 +0x8EA1C8FC 0x4F54 +0x8EA1C8FD 0x4F3C +0x8EA1C8FE 0x4F46 +0x8EA1C9A1 0x4F63 +0x8EA1C9A2 0x4F5C +0x8EA1C9A3 0x4F60 +0x8EA1C9A4 0x4F2F +0x8EA1C9A5 0x4F4E +0x8EA1C9A6 0x4F36 +0x8EA1C9A7 0x4F59 +0x8EA1C9A8 0x4F5D +0x8EA1C9A9 0x4F48 +0x8EA1C9AA 0x4F5A +0x8EA1C9AB 0x514C +0x8EA1C9AC 0x514B +0x8EA1C9AD 0x514D +0x8EA1C9AE 0x5175 +0x8EA1C9AF 0x51B6 +0x8EA1C9B0 0x51B7 +0x8EA1C9B1 0x5225 +0x8EA1C9B2 0x5224 +0x8EA1C9B3 0x5229 +0x8EA1C9B4 0x522A +0x8EA1C9B5 0x5228 +0x8EA1C9B6 0x52AB +0x8EA1C9B7 0x52A9 +0x8EA1C9B8 0x52AA +0x8EA1C9B9 0x52AC +0x8EA1C9BA 0x5323 +0x8EA1C9BB 0x5373 +0x8EA1C9BC 0x5375 +0x8EA1C9BD 0x541D +0x8EA1C9BE 0x542D +0x8EA1C9BF 0x541E +0x8EA1C9C0 0x543E +0x8EA1C9C1 0x5426 +0x8EA1C9C2 0x544E +0x8EA1C9C3 0x5427 +0x8EA1C9C4 0x5446 +0x8EA1C9C5 0x5443 +0x8EA1C9C6 0x5433 +0x8EA1C9C7 0x5448 +0x8EA1C9C8 0x5442 +0x8EA1C9C9 0x541B +0x8EA1C9CA 0x5429 +0x8EA1C9CB 0x544A +0x8EA1C9CC 0x5439 +0x8EA1C9CD 0x543B +0x8EA1C9CE 0x5438 +0x8EA1C9CF 0x542E +0x8EA1C9D0 0x5435 +0x8EA1C9D1 0x5436 +0x8EA1C9D2 0x5420 +0x8EA1C9D3 0x543C +0x8EA1C9D4 0x5440 +0x8EA1C9D5 0x5431 +0x8EA1C9D6 0x542B +0x8EA1C9D7 0x541F +0x8EA1C9D8 0x542C +0x8EA1C9D9 0x56EA +0x8EA1C9DA 0x56F0 +0x8EA1C9DB 0x56E4 +0x8EA1C9DC 0x56EB +0x8EA1C9DD 0x574A +0x8EA1C9DE 0x5751 +0x8EA1C9DF 0x5740 +0x8EA1C9E0 0x574D +0x8EA1C9E1 0x5747 +0x8EA1C9E2 0x574E +0x8EA1C9E3 0x573E +0x8EA1C9E4 0x5750 +0x8EA1C9E5 0x574F +0x8EA1C9E6 0x573B +0x8EA1C9E7 0x58EF +0x8EA1C9E8 0x593E +0x8EA1C9E9 0x599D +0x8EA1C9EA 0x5992 +0x8EA1C9EB 0x59A8 +0x8EA1C9EC 0x599E +0x8EA1C9ED 0x59A3 +0x8EA1C9EE 0x5999 +0x8EA1C9EF 0x5996 +0x8EA1C9F0 0x598D +0x8EA1C9F1 0x59A4 +0x8EA1C9F2 0x5993 +0x8EA1C9F3 0x598A +0x8EA1C9F4 0x59A5 +0x8EA1C9F5 0x5B5D +0x8EA1C9F6 0x5B5C +0x8EA1C9F7 0x5B5A +0x8EA1C9F8 0x5B5B +0x8EA1C9F9 0x5B8C +0x8EA1C9FA 0x5B8B +0x8EA1C9FB 0x5B8F +0x8EA1C9FC 0x5C2C +0x8EA1C9FD 0x5C40 +0x8EA1C9FE 0x5C41 +0x8EA1CAA1 0x5C3F +0x8EA1CAA2 0x5C3E +0x8EA1CAA3 0x5C90 +0x8EA1CAA4 0x5C91 +0x8EA1CAA5 0x5C94 +0x8EA1CAA6 0x5C8C +0x8EA1CAA7 0x5DEB +0x8EA1CAA8 0x5E0C +0x8EA1CAA9 0x5E8F +0x8EA1CAAA 0x5E87 +0x8EA1CAAB 0x5E8A +0x8EA1CAAC 0x5EF7 +0x8EA1CAAD 0x5F04 +0x8EA1CAAE 0x5F1F +0x8EA1CAAF 0x5F64 +0x8EA1CAB0 0x5F62 +0x8EA1CAB1 0x5F77 +0x8EA1CAB2 0x5F79 +0x8EA1CAB3 0x5FD8 +0x8EA1CAB4 0x5FCC +0x8EA1CAB5 0x5FD7 +0x8EA1CAB6 0x5FCD +0x8EA1CAB7 0x5FF1 +0x8EA1CAB8 0x5FEB +0x8EA1CAB9 0x5FF8 +0x8EA1CABA 0x5FEA +0x8EA1CABB 0x6212 +0x8EA1CABC 0x6211 +0x8EA1CABD 0x6284 +0x8EA1CABE 0x6297 +0x8EA1CABF 0x6296 +0x8EA1CAC0 0x6280 +0x8EA1CAC1 0x6276 +0x8EA1CAC2 0x6289 +0x8EA1CAC3 0x626D +0x8EA1CAC4 0x628A +0x8EA1CAC5 0x627C +0x8EA1CAC6 0x627E +0x8EA1CAC7 0x6279 +0x8EA1CAC8 0x6273 +0x8EA1CAC9 0x6292 +0x8EA1CACA 0x626F +0x8EA1CACB 0x6298 +0x8EA1CACC 0x626E +0x8EA1CACD 0x6295 +0x8EA1CACE 0x6293 +0x8EA1CACF 0x6291 +0x8EA1CAD0 0x6286 +0x8EA1CAD1 0x6539 +0x8EA1CAD2 0x653B +0x8EA1CAD3 0x6538 +0x8EA1CAD4 0x65F1 +0x8EA1CAD5 0x66F4 +0x8EA1CAD6 0x675F +0x8EA1CAD7 0x674E +0x8EA1CAD8 0x674F +0x8EA1CAD9 0x6750 +0x8EA1CADA 0x6751 +0x8EA1CADB 0x675C +0x8EA1CADC 0x6756 +0x8EA1CADD 0x675E +0x8EA1CADE 0x6749 +0x8EA1CADF 0x6746 +0x8EA1CAE0 0x6760 +0x8EA1CAE1 0x6753 +0x8EA1CAE2 0x6757 +0x8EA1CAE3 0x6B65 +0x8EA1CAE4 0x6BCF +0x8EA1CAE5 0x6C42 +0x8EA1CAE6 0x6C5E +0x8EA1CAE7 0x6C99 +0x8EA1CAE8 0x6C81 +0x8EA1CAE9 0x6C88 +0x8EA1CAEA 0x6C89 +0x8EA1CAEB 0x6C85 +0x8EA1CAEC 0x6C9B +0x8EA1CAED 0x6C6A +0x8EA1CAEE 0x6C7A +0x8EA1CAEF 0x6C90 +0x8EA1CAF0 0x6C70 +0x8EA1CAF1 0x6C8C +0x8EA1CAF2 0x6C68 +0x8EA1CAF3 0x6C96 +0x8EA1CAF4 0x6C92 +0x8EA1CAF5 0x6C7D +0x8EA1CAF6 0x6C83 +0x8EA1CAF7 0x6C72 +0x8EA1CAF8 0x6C7E +0x8EA1CAF9 0x6C74 +0x8EA1CAFA 0x6C86 +0x8EA1CAFB 0x6C76 +0x8EA1CAFC 0x6C8D +0x8EA1CAFD 0x6C94 +0x8EA1CAFE 0x6C98 +0x8EA1CBA1 0x6C82 +0x8EA1CBA2 0x7076 +0x8EA1CBA3 0x707C +0x8EA1CBA4 0x707D +0x8EA1CBA5 0x7078 +0x8EA1CBA6 0x7262 +0x8EA1CBA7 0x7261 +0x8EA1CBA8 0x7260 +0x8EA1CBA9 0x72C4 +0x8EA1CBAA 0x72C2 +0x8EA1CBAB 0x7396 +0x8EA1CBAC 0x752C +0x8EA1CBAD 0x752B +0x8EA1CBAE 0x7537 +0x8EA1CBAF 0x7538 +0x8EA1CBB0 0x7682 +0x8EA1CBB1 0x76EF +0x8EA1CBB2 0x77E3 +0x8EA1CBB3 0x79C1 +0x8EA1CBB4 0x79C0 +0x8EA1CBB5 0x79BF +0x8EA1CBB6 0x7A76 +0x8EA1CBB7 0x7CFB +0x8EA1CBB8 0x7F55 +0x8EA1CBB9 0x8096 +0x8EA1CBBA 0x8093 +0x8EA1CBBB 0x809D +0x8EA1CBBC 0x8098 +0x8EA1CBBD 0x809B +0x8EA1CBBE 0x809A +0x8EA1CBBF 0x80B2 +0x8EA1CBC0 0x826F +0x8EA1CBC1 0x8292 +0x8EA1CBC2 0x828B +0x8EA1CBC3 0x828D +0x8EA1CBC4 0x898B +0x8EA1CBC5 0x89D2 +0x8EA1CBC6 0x8A00 +0x8EA1CBC7 0x8C37 +0x8EA1CBC8 0x8C46 +0x8EA1CBC9 0x8C55 +0x8EA1CBCA 0x8C9D +0x8EA1CBCB 0x8D64 +0x8EA1CBCC 0x8D70 +0x8EA1CBCD 0x8DB3 +0x8EA1CBCE 0x8EAB +0x8EA1CBCF 0x8ECA +0x8EA1CBD0 0x8F9B +0x8EA1CBD1 0x8FB0 +0x8EA1CBD2 0x8FC2 +0x8EA1CBD3 0x8FC6 +0x8EA1CBD4 0x8FC5 +0x8EA1CBD5 0x8FC4 +0x8EA1CBD6 0x5DE1 +0x8EA1CBD7 0x9091 +0x8EA1CBD8 0x90A2 +0x8EA1CBD9 0x90AA +0x8EA1CBDA 0x90A6 +0x8EA1CBDB 0x90A3 +0x8EA1CBDC 0x9149 +0x8EA1CBDD 0x91C6 +0x8EA1CBDE 0x91CC +0x8EA1CBDF 0x9632 +0x8EA1CBE0 0x962E +0x8EA1CBE1 0x9631 +0x8EA1CBE2 0x962A +0x8EA1CBE3 0x962C +0x8EA1CBE4 0x4E26 +0x8EA1CBE5 0x4E56 +0x8EA1CBE6 0x4E73 +0x8EA1CBE7 0x4E8B +0x8EA1CBE8 0x4E9B +0x8EA1CBE9 0x4E9E +0x8EA1CBEA 0x4EAB +0x8EA1CBEB 0x4EAC +0x8EA1CBEC 0x4F6F +0x8EA1CBED 0x4F9D +0x8EA1CBEE 0x4F8D +0x8EA1CBEF 0x4F73 +0x8EA1CBF0 0x4F7F +0x8EA1CBF1 0x4F6C +0x8EA1CBF2 0x4F9B +0x8EA1CBF3 0x4F8B +0x8EA1CBF4 0x4F86 +0x8EA1CBF5 0x4F83 +0x8EA1CBF6 0x4F70 +0x8EA1CBF7 0x4F75 +0x8EA1CBF8 0x4F88 +0x8EA1CBF9 0x4F69 +0x8EA1CBFA 0x4F7B +0x8EA1CBFB 0x4F96 +0x8EA1CBFC 0x4F7E +0x8EA1CBFD 0x4F8F +0x8EA1CBFE 0x4F91 +0x8EA1CCA1 0x4F7A +0x8EA1CCA2 0x5154 +0x8EA1CCA3 0x5152 +0x8EA1CCA4 0x5155 +0x8EA1CCA5 0x5169 +0x8EA1CCA6 0x5177 +0x8EA1CCA7 0x5176 +0x8EA1CCA8 0x5178 +0x8EA1CCA9 0x51BD +0x8EA1CCAA 0x51FD +0x8EA1CCAB 0x523B +0x8EA1CCAC 0x5238 +0x8EA1CCAD 0x5237 +0x8EA1CCAE 0x523A +0x8EA1CCAF 0x5230 +0x8EA1CCB0 0x522E +0x8EA1CCB1 0x5236 +0x8EA1CCB2 0x5241 +0x8EA1CCB3 0x52BE +0x8EA1CCB4 0x52BB +0x8EA1CCB5 0x5352 +0x8EA1CCB6 0x5354 +0x8EA1CCB7 0x5353 +0x8EA1CCB8 0x5351 +0x8EA1CCB9 0x5366 +0x8EA1CCBA 0x5377 +0x8EA1CCBB 0x5378 +0x8EA1CCBC 0x5379 +0x8EA1CCBD 0x53D6 +0x8EA1CCBE 0x53D4 +0x8EA1CCBF 0x53D7 +0x8EA1CCC0 0x5473 +0x8EA1CCC1 0x5475 +0x8EA1CCC2 0x5496 +0x8EA1CCC3 0x5478 +0x8EA1CCC4 0x5495 +0x8EA1CCC5 0x5480 +0x8EA1CCC6 0x547B +0x8EA1CCC7 0x5477 +0x8EA1CCC8 0x5484 +0x8EA1CCC9 0x5492 +0x8EA1CCCA 0x5486 +0x8EA1CCCB 0x547C +0x8EA1CCCC 0x5490 +0x8EA1CCCD 0x5471 +0x8EA1CCCE 0x5476 +0x8EA1CCCF 0x548C +0x8EA1CCD0 0x549A +0x8EA1CCD1 0x5462 +0x8EA1CCD2 0x5468 +0x8EA1CCD3 0x548B +0x8EA1CCD4 0x547D +0x8EA1CCD5 0x548E +0x8EA1CCD6 0x56FA +0x8EA1CCD7 0x5783 +0x8EA1CCD8 0x5777 +0x8EA1CCD9 0x576A +0x8EA1CCDA 0x5769 +0x8EA1CCDB 0x5761 +0x8EA1CCDC 0x5766 +0x8EA1CCDD 0x5764 +0x8EA1CCDE 0x577C +0x8EA1CCDF 0x591C +0x8EA1CCE0 0x5949 +0x8EA1CCE1 0x5947 +0x8EA1CCE2 0x5948 +0x8EA1CCE3 0x5944 +0x8EA1CCE4 0x5954 +0x8EA1CCE5 0x59BE +0x8EA1CCE6 0x59BB +0x8EA1CCE7 0x59D4 +0x8EA1CCE8 0x59B9 +0x8EA1CCE9 0x59AE +0x8EA1CCEA 0x59D1 +0x8EA1CCEB 0x59C6 +0x8EA1CCEC 0x59D0 +0x8EA1CCED 0x59CD +0x8EA1CCEE 0x59CB +0x8EA1CCEF 0x59D3 +0x8EA1CCF0 0x59CA +0x8EA1CCF1 0x59AF +0x8EA1CCF2 0x59B3 +0x8EA1CCF3 0x59D2 +0x8EA1CCF4 0x59C5 +0x8EA1CCF5 0x5B5F +0x8EA1CCF6 0x5B64 +0x8EA1CCF7 0x5B63 +0x8EA1CCF8 0x5B97 +0x8EA1CCF9 0x5B9A +0x8EA1CCFA 0x5B98 +0x8EA1CCFB 0x5B9C +0x8EA1CCFC 0x5B99 +0x8EA1CCFD 0x5B9B +0x8EA1CCFE 0x5C1A +0x8EA1CDA1 0x5C48 +0x8EA1CDA2 0x5C45 +0x8EA1CDA3 0x5C46 +0x8EA1CDA4 0x5CB7 +0x8EA1CDA5 0x5CA1 +0x8EA1CDA6 0x5CB8 +0x8EA1CDA7 0x5CA9 +0x8EA1CDA8 0x5CAB +0x8EA1CDA9 0x5CB1 +0x8EA1CDAA 0x5CB3 +0x8EA1CDAB 0x5E18 +0x8EA1CDAC 0x5E1A +0x8EA1CDAD 0x5E16 +0x8EA1CDAE 0x5E15 +0x8EA1CDAF 0x5E1B +0x8EA1CDB0 0x5E11 +0x8EA1CDB1 0x5E78 +0x8EA1CDB2 0x5E9A +0x8EA1CDB3 0x5E97 +0x8EA1CDB4 0x5E9C +0x8EA1CDB5 0x5E95 +0x8EA1CDB6 0x5E96 +0x8EA1CDB7 0x5EF6 +0x8EA1CDB8 0x5F26 +0x8EA1CDB9 0x5F27 +0x8EA1CDBA 0x5F29 +0x8EA1CDBB 0x5F80 +0x8EA1CDBC 0x5F81 +0x8EA1CDBD 0x5F7F +0x8EA1CDBE 0x5F7C +0x8EA1CDBF 0x5FDD +0x8EA1CDC0 0x5FE0 +0x8EA1CDC1 0x5FFD +0x8EA1CDC2 0x5FF5 +0x8EA1CDC3 0x5FFF +0x8EA1CDC4 0x600F +0x8EA1CDC5 0x6014 +0x8EA1CDC6 0x602F +0x8EA1CDC7 0x6035 +0x8EA1CDC8 0x6016 +0x8EA1CDC9 0x602A +0x8EA1CDCA 0x6015 +0x8EA1CDCB 0x6021 +0x8EA1CDCC 0x6027 +0x8EA1CDCD 0x6029 +0x8EA1CDCE 0x602B +0x8EA1CDCF 0x601B +0x8EA1CDD0 0x6216 +0x8EA1CDD1 0x6215 +0x8EA1CDD2 0x623F +0x8EA1CDD3 0x623E +0x8EA1CDD4 0x6240 +0x8EA1CDD5 0x627F +0x8EA1CDD6 0x62C9 +0x8EA1CDD7 0x62CC +0x8EA1CDD8 0x62C4 +0x8EA1CDD9 0x62BF +0x8EA1CDDA 0x62C2 +0x8EA1CDDB 0x62B9 +0x8EA1CDDC 0x62D2 +0x8EA1CDDD 0x62DB +0x8EA1CDDE 0x62AB +0x8EA1CDDF 0x62D3 +0x8EA1CDE0 0x62D4 +0x8EA1CDE1 0x62CB +0x8EA1CDE2 0x62C8 +0x8EA1CDE3 0x62A8 +0x8EA1CDE4 0x62BD +0x8EA1CDE5 0x62BC +0x8EA1CDE6 0x62D0 +0x8EA1CDE7 0x62D9 +0x8EA1CDE8 0x62C7 +0x8EA1CDE9 0x62CD +0x8EA1CDEA 0x62B5 +0x8EA1CDEB 0x62DA +0x8EA1CDEC 0x62B1 +0x8EA1CDED 0x62D8 +0x8EA1CDEE 0x62D6 +0x8EA1CDEF 0x62D7 +0x8EA1CDF0 0x62C6 +0x8EA1CDF1 0x62AC +0x8EA1CDF2 0x62CE +0x8EA1CDF3 0x653E +0x8EA1CDF4 0x65A7 +0x8EA1CDF5 0x65BC +0x8EA1CDF6 0x65FA +0x8EA1CDF7 0x6614 +0x8EA1CDF8 0x6613 +0x8EA1CDF9 0x660C +0x8EA1CDFA 0x6606 +0x8EA1CDFB 0x6602 +0x8EA1CDFC 0x660E +0x8EA1CDFD 0x6600 +0x8EA1CDFE 0x660F +0x8EA1CEA1 0x6615 +0x8EA1CEA2 0x660A +0x8EA1CEA3 0x6607 +0x8EA1CEA4 0x670D +0x8EA1CEA5 0x670B +0x8EA1CEA6 0x676D +0x8EA1CEA7 0x678B +0x8EA1CEA8 0x6795 +0x8EA1CEA9 0x6771 +0x8EA1CEAA 0x679C +0x8EA1CEAB 0x6773 +0x8EA1CEAC 0x6777 +0x8EA1CEAD 0x6787 +0x8EA1CEAE 0x679D +0x8EA1CEAF 0x6797 +0x8EA1CEB0 0x676F +0x8EA1CEB1 0x6770 +0x8EA1CEB2 0x677F +0x8EA1CEB3 0x6789 +0x8EA1CEB4 0x677E +0x8EA1CEB5 0x6790 +0x8EA1CEB6 0x6775 +0x8EA1CEB7 0x679A +0x8EA1CEB8 0x6793 +0x8EA1CEB9 0x677C +0x8EA1CEBA 0x676A +0x8EA1CEBB 0x6772 +0x8EA1CEBC 0x6B23 +0x8EA1CEBD 0x6B66 +0x8EA1CEBE 0x6B67 +0x8EA1CEBF 0x6B7F +0x8EA1CEC0 0x6C13 +0x8EA1CEC1 0x6C1B +0x8EA1CEC2 0x6CE3 +0x8EA1CEC3 0x6CE8 +0x8EA1CEC4 0x6CF3 +0x8EA1CEC5 0x6CB1 +0x8EA1CEC6 0x6CCC +0x8EA1CEC7 0x6CE5 +0x8EA1CEC8 0x6CB3 +0x8EA1CEC9 0x6CBD +0x8EA1CECA 0x6CBE +0x8EA1CECB 0x6CBC +0x8EA1CECC 0x6CE2 +0x8EA1CECD 0x6CAB +0x8EA1CECE 0x6CD5 +0x8EA1CECF 0x6CD3 +0x8EA1CED0 0x6CB8 +0x8EA1CED1 0x6CC4 +0x8EA1CED2 0x6CB9 +0x8EA1CED3 0x6CC1 +0x8EA1CED4 0x6CAE +0x8EA1CED5 0x6CD7 +0x8EA1CED6 0x6CC5 +0x8EA1CED7 0x6CF1 +0x8EA1CED8 0x6CBF +0x8EA1CED9 0x6CBB +0x8EA1CEDA 0x6CE1 +0x8EA1CEDB 0x6CDB +0x8EA1CEDC 0x6CCA +0x8EA1CEDD 0x6CAC +0x8EA1CEDE 0x6CEF +0x8EA1CEDF 0x6CDC +0x8EA1CEE0 0x6CD6 +0x8EA1CEE1 0x6CE0 +0x8EA1CEE2 0x7095 +0x8EA1CEE3 0x708E +0x8EA1CEE4 0x7092 +0x8EA1CEE5 0x708A +0x8EA1CEE6 0x7099 +0x8EA1CEE7 0x722C +0x8EA1CEE8 0x722D +0x8EA1CEE9 0x7238 +0x8EA1CEEA 0x7248 +0x8EA1CEEB 0x7267 +0x8EA1CEEC 0x7269 +0x8EA1CEED 0x72C0 +0x8EA1CEEE 0x72CE +0x8EA1CEEF 0x72D9 +0x8EA1CEF0 0x72D7 +0x8EA1CEF1 0x72D0 +0x8EA1CEF2 0x73A9 +0x8EA1CEF3 0x73A8 +0x8EA1CEF4 0x739F +0x8EA1CEF5 0x73AB +0x8EA1CEF6 0x73A5 +0x8EA1CEF7 0x753D +0x8EA1CEF8 0x759D +0x8EA1CEF9 0x7599 +0x8EA1CEFA 0x759A +0x8EA1CEFB 0x7684 +0x8EA1CEFC 0x76C2 +0x8EA1CEFD 0x76F2 +0x8EA1CEFE 0x76F4 +0x8EA1CFA1 0x77E5 +0x8EA1CFA2 0x77FD +0x8EA1CFA3 0x793E +0x8EA1CFA4 0x7940 +0x8EA1CFA5 0x7941 +0x8EA1CFA6 0x79C9 +0x8EA1CFA7 0x79C8 +0x8EA1CFA8 0x7A7A +0x8EA1CFA9 0x7A79 +0x8EA1CFAA 0x7AFA +0x8EA1CFAB 0x7CFE +0x8EA1CFAC 0x7F54 +0x8EA1CFAD 0x7F8C +0x8EA1CFAE 0x7F8B +0x8EA1CFAF 0x8005 +0x8EA1CFB0 0x80BA +0x8EA1CFB1 0x80A5 +0x8EA1CFB2 0x80A2 +0x8EA1CFB3 0x80B1 +0x8EA1CFB4 0x80A1 +0x8EA1CFB5 0x80AB +0x8EA1CFB6 0x80A9 +0x8EA1CFB7 0x80B4 +0x8EA1CFB8 0x80AA +0x8EA1CFB9 0x80AF +0x8EA1CFBA 0x81E5 +0x8EA1CFBB 0x81FE +0x8EA1CFBC 0x820D +0x8EA1CFBD 0x82B3 +0x8EA1CFBE 0x829D +0x8EA1CFBF 0x8299 +0x8EA1CFC0 0x82AD +0x8EA1CFC1 0x82BD +0x8EA1CFC2 0x829F +0x8EA1CFC3 0x82B9 +0x8EA1CFC4 0x82B1 +0x8EA1CFC5 0x82AC +0x8EA1CFC6 0x82A5 +0x8EA1CFC7 0x82AF +0x8EA1CFC8 0x82B8 +0x8EA1CFC9 0x82A3 +0x8EA1CFCA 0x82B0 +0x8EA1CFCB 0x82BE +0x8EA1CFCC 0x82B7 +0x8EA1CFCD 0x864E +0x8EA1CFCE 0x8671 +0x8EA1CFCF 0x521D +0x8EA1CFD0 0x8868 +0x8EA1CFD1 0x8ECB +0x8EA1CFD2 0x8FCE +0x8EA1CFD3 0x8FD4 +0x8EA1CFD4 0x8FD1 +0x8EA1CFD5 0x90B5 +0x8EA1CFD6 0x90B8 +0x8EA1CFD7 0x90B1 +0x8EA1CFD8 0x90B6 +0x8EA1CFD9 0x91C7 +0x8EA1CFDA 0x91D1 +0x8EA1CFDB 0x9577 +0x8EA1CFDC 0x9580 +0x8EA1CFDD 0x961C +0x8EA1CFDE 0x9640 +0x8EA1CFDF 0x963F +0x8EA1CFE0 0x963B +0x8EA1CFE1 0x9644 +0x8EA1CFE2 0x9642 +0x8EA1CFE3 0x96B9 +0x8EA1CFE4 0x96E8 +0x8EA1CFE5 0x9752 +0x8EA1CFE6 0x975E +0x8EA1CFE7 0x4E9F +0x8EA1CFE8 0x4EAD +0x8EA1CFE9 0x4EAE +0x8EA1CFEA 0x4FE1 +0x8EA1CFEB 0x4FB5 +0x8EA1CFEC 0x4FAF +0x8EA1CFED 0x4FBF +0x8EA1CFEE 0x4FE0 +0x8EA1CFEF 0x4FD1 +0x8EA1CFF0 0x4FCF +0x8EA1CFF1 0x4FDD +0x8EA1CFF2 0x4FC3 +0x8EA1CFF3 0x4FB6 +0x8EA1CFF4 0x4FD8 +0x8EA1CFF5 0x4FDF +0x8EA1CFF6 0x4FCA +0x8EA1CFF7 0x4FD7 +0x8EA1CFF8 0x4FAE +0x8EA1CFF9 0x4FD0 +0x8EA1CFFA 0x4FC4 +0x8EA1CFFB 0x4FC2 +0x8EA1CFFC 0x4FDA +0x8EA1CFFD 0x4FCE +0x8EA1CFFE 0x4FDE +0x8EA1D0A1 0x4FB7 +0x8EA1D0A2 0x5157 +0x8EA1D0A3 0x5192 +0x8EA1D0A4 0x5191 +0x8EA1D0A5 0x51A0 +0x8EA1D0A6 0x524E +0x8EA1D0A7 0x5243 +0x8EA1D0A8 0x524A +0x8EA1D0A9 0x524D +0x8EA1D0AA 0x524C +0x8EA1D0AB 0x524B +0x8EA1D0AC 0x5247 +0x8EA1D0AD 0x52C7 +0x8EA1D0AE 0x52C9 +0x8EA1D0AF 0x52C3 +0x8EA1D0B0 0x52C1 +0x8EA1D0B1 0x530D +0x8EA1D0B2 0x5357 +0x8EA1D0B3 0x537B +0x8EA1D0B4 0x539A +0x8EA1D0B5 0x53DB +0x8EA1D0B6 0x54AC +0x8EA1D0B7 0x54C0 +0x8EA1D0B8 0x54A8 +0x8EA1D0B9 0x54CE +0x8EA1D0BA 0x54C9 +0x8EA1D0BB 0x54B8 +0x8EA1D0BC 0x54A6 +0x8EA1D0BD 0x54B3 +0x8EA1D0BE 0x54C7 +0x8EA1D0BF 0x54C2 +0x8EA1D0C0 0x54BD +0x8EA1D0C1 0x54AA +0x8EA1D0C2 0x54C1 +0x8EA1D0C3 0x54C4 +0x8EA1D0C4 0x54C8 +0x8EA1D0C5 0x54AF +0x8EA1D0C6 0x54AB +0x8EA1D0C7 0x54B1 +0x8EA1D0C8 0x54BB +0x8EA1D0C9 0x54A9 +0x8EA1D0CA 0x54A7 +0x8EA1D0CB 0x54BF +0x8EA1D0CC 0x56FF +0x8EA1D0CD 0x5782 +0x8EA1D0CE 0x578B +0x8EA1D0CF 0x57A0 +0x8EA1D0D0 0x57A3 +0x8EA1D0D1 0x57A2 +0x8EA1D0D2 0x57CE +0x8EA1D0D3 0x57AE +0x8EA1D0D4 0x5793 +0x8EA1D0D5 0x5955 +0x8EA1D0D6 0x5951 +0x8EA1D0D7 0x594F +0x8EA1D0D8 0x594E +0x8EA1D0D9 0x5950 +0x8EA1D0DA 0x59DC +0x8EA1D0DB 0x59D8 +0x8EA1D0DC 0x59FF +0x8EA1D0DD 0x59E3 +0x8EA1D0DE 0x59E8 +0x8EA1D0DF 0x5A03 +0x8EA1D0E0 0x59E5 +0x8EA1D0E1 0x59EA +0x8EA1D0E2 0x59DA +0x8EA1D0E3 0x59E6 +0x8EA1D0E4 0x5A01 +0x8EA1D0E5 0x59FB +0x8EA1D0E6 0x5B69 +0x8EA1D0E7 0x5BA3 +0x8EA1D0E8 0x5BA6 +0x8EA1D0E9 0x5BA4 +0x8EA1D0EA 0x5BA2 +0x8EA1D0EB 0x5BA5 +0x8EA1D0EC 0x5C01 +0x8EA1D0ED 0x5C4E +0x8EA1D0EE 0x5C4F +0x8EA1D0EF 0x5C4D +0x8EA1D0F0 0x5C4B +0x8EA1D0F1 0x5CD9 +0x8EA1D0F2 0x5CD2 +0x8EA1D0F3 0x5DF7 +0x8EA1D0F4 0x5E1D +0x8EA1D0F5 0x5E25 +0x8EA1D0F6 0x5E1F +0x8EA1D0F7 0x5E7D +0x8EA1D0F8 0x5EA0 +0x8EA1D0F9 0x5EA6 +0x8EA1D0FA 0x5EFA +0x8EA1D0FB 0x5F08 +0x8EA1D0FC 0x5F2D +0x8EA1D0FD 0x5F65 +0x8EA1D0FE 0x5F88 +0x8EA1D1A1 0x5F85 +0x8EA1D1A2 0x5F8A +0x8EA1D1A3 0x5F8B +0x8EA1D1A4 0x5F87 +0x8EA1D1A5 0x5F8C +0x8EA1D1A6 0x5F89 +0x8EA1D1A7 0x6012 +0x8EA1D1A8 0x601D +0x8EA1D1A9 0x6020 +0x8EA1D1AA 0x6025 +0x8EA1D1AB 0x600E +0x8EA1D1AC 0x6028 +0x8EA1D1AD 0x604D +0x8EA1D1AE 0x6070 +0x8EA1D1AF 0x6068 +0x8EA1D1B0 0x6062 +0x8EA1D1B1 0x6046 +0x8EA1D1B2 0x6043 +0x8EA1D1B3 0x606C +0x8EA1D1B4 0x606B +0x8EA1D1B5 0x606A +0x8EA1D1B6 0x6064 +0x8EA1D1B7 0x6241 +0x8EA1D1B8 0x62DC +0x8EA1D1B9 0x6316 +0x8EA1D1BA 0x6309 +0x8EA1D1BB 0x62FC +0x8EA1D1BC 0x62ED +0x8EA1D1BD 0x6301 +0x8EA1D1BE 0x62EE +0x8EA1D1BF 0x62FD +0x8EA1D1C0 0x6307 +0x8EA1D1C1 0x62F1 +0x8EA1D1C2 0x62F7 +0x8EA1D1C3 0x62EF +0x8EA1D1C4 0x62EC +0x8EA1D1C5 0x62FE +0x8EA1D1C6 0x62F4 +0x8EA1D1C7 0x6311 +0x8EA1D1C8 0x6302 +0x8EA1D1C9 0x653F +0x8EA1D1CA 0x6545 +0x8EA1D1CB 0x65AB +0x8EA1D1CC 0x65BD +0x8EA1D1CD 0x65E2 +0x8EA1D1CE 0x6625 +0x8EA1D1CF 0x662D +0x8EA1D1D0 0x6620 +0x8EA1D1D1 0x6627 +0x8EA1D1D2 0x662F +0x8EA1D1D3 0x661F +0x8EA1D1D4 0x6628 +0x8EA1D1D5 0x6631 +0x8EA1D1D6 0x6624 +0x8EA1D1D7 0x66F7 +0x8EA1D1D8 0x67FF +0x8EA1D1D9 0x67D3 +0x8EA1D1DA 0x67F1 +0x8EA1D1DB 0x67D4 +0x8EA1D1DC 0x67D0 +0x8EA1D1DD 0x67EC +0x8EA1D1DE 0x67B6 +0x8EA1D1DF 0x67AF +0x8EA1D1E0 0x67F5 +0x8EA1D1E1 0x67E9 +0x8EA1D1E2 0x67EF +0x8EA1D1E3 0x67C4 +0x8EA1D1E4 0x67D1 +0x8EA1D1E5 0x67B4 +0x8EA1D1E6 0x67DA +0x8EA1D1E7 0x67E5 +0x8EA1D1E8 0x67B8 +0x8EA1D1E9 0x67CF +0x8EA1D1EA 0x67DE +0x8EA1D1EB 0x67F3 +0x8EA1D1EC 0x67B0 +0x8EA1D1ED 0x67D9 +0x8EA1D1EE 0x67E2 +0x8EA1D1EF 0x67DD +0x8EA1D1F0 0x67D2 +0x8EA1D1F1 0x6B6A +0x8EA1D1F2 0x6B83 +0x8EA1D1F3 0x6B86 +0x8EA1D1F4 0x6BB5 +0x8EA1D1F5 0x6BD2 +0x8EA1D1F6 0x6BD7 +0x8EA1D1F7 0x6C1F +0x8EA1D1F8 0x6CC9 +0x8EA1D1F9 0x6D0B +0x8EA1D1FA 0x6D32 +0x8EA1D1FB 0x6D2A +0x8EA1D1FC 0x6D41 +0x8EA1D1FD 0x6D25 +0x8EA1D1FE 0x6D0C +0x8EA1D2A1 0x6D31 +0x8EA1D2A2 0x6D1E +0x8EA1D2A3 0x6D17 +0x8EA1D2A4 0x6D3B +0x8EA1D2A5 0x6D3D +0x8EA1D2A6 0x6D3E +0x8EA1D2A7 0x6D36 +0x8EA1D2A8 0x6D1B +0x8EA1D2A9 0x6CF5 +0x8EA1D2AA 0x6D39 +0x8EA1D2AB 0x6D27 +0x8EA1D2AC 0x6D38 +0x8EA1D2AD 0x6D29 +0x8EA1D2AE 0x6D2E +0x8EA1D2AF 0x6D35 +0x8EA1D2B0 0x6D0E +0x8EA1D2B1 0x6D2B +0x8EA1D2B2 0x70AB +0x8EA1D2B3 0x70BA +0x8EA1D2B4 0x70B3 +0x8EA1D2B5 0x70AC +0x8EA1D2B6 0x70AF +0x8EA1D2B7 0x70AD +0x8EA1D2B8 0x70B8 +0x8EA1D2B9 0x70AE +0x8EA1D2BA 0x70A4 +0x8EA1D2BB 0x7230 +0x8EA1D2BC 0x7272 +0x8EA1D2BD 0x726F +0x8EA1D2BE 0x7274 +0x8EA1D2BF 0x72E9 +0x8EA1D2C0 0x72E0 +0x8EA1D2C1 0x72E1 +0x8EA1D2C2 0x73B7 +0x8EA1D2C3 0x73CA +0x8EA1D2C4 0x73BB +0x8EA1D2C5 0x73B2 +0x8EA1D2C6 0x73CD +0x8EA1D2C7 0x73C0 +0x8EA1D2C8 0x73B3 +0x8EA1D2C9 0x751A +0x8EA1D2CA 0x752D +0x8EA1D2CB 0x754F +0x8EA1D2CC 0x754C +0x8EA1D2CD 0x754E +0x8EA1D2CE 0x754B +0x8EA1D2CF 0x75AB +0x8EA1D2D0 0x75A4 +0x8EA1D2D1 0x75A5 +0x8EA1D2D2 0x75A2 +0x8EA1D2D3 0x75A3 +0x8EA1D2D4 0x7678 +0x8EA1D2D5 0x7686 +0x8EA1D2D6 0x7687 +0x8EA1D2D7 0x7688 +0x8EA1D2D8 0x76C8 +0x8EA1D2D9 0x76C6 +0x8EA1D2DA 0x76C3 +0x8EA1D2DB 0x76C5 +0x8EA1D2DC 0x7701 +0x8EA1D2DD 0x76F9 +0x8EA1D2DE 0x76F8 +0x8EA1D2DF 0x7709 +0x8EA1D2E0 0x770B +0x8EA1D2E1 0x76FE +0x8EA1D2E2 0x76FC +0x8EA1D2E3 0x7707 +0x8EA1D2E4 0x77DC +0x8EA1D2E5 0x7802 +0x8EA1D2E6 0x7814 +0x8EA1D2E7 0x780C +0x8EA1D2E8 0x780D +0x8EA1D2E9 0x7946 +0x8EA1D2EA 0x7949 +0x8EA1D2EB 0x7948 +0x8EA1D2EC 0x7947 +0x8EA1D2ED 0x79B9 +0x8EA1D2EE 0x79BA +0x8EA1D2EF 0x79D1 +0x8EA1D2F0 0x79D2 +0x8EA1D2F1 0x79CB +0x8EA1D2F2 0x7A7F +0x8EA1D2F3 0x7A81 +0x8EA1D2F4 0x7AFF +0x8EA1D2F5 0x7AFD +0x8EA1D2F6 0x7C7D +0x8EA1D2F7 0x7D02 +0x8EA1D2F8 0x7D05 +0x8EA1D2F9 0x7D00 +0x8EA1D2FA 0x7D09 +0x8EA1D2FB 0x7D07 +0x8EA1D2FC 0x7D04 +0x8EA1D2FD 0x7D06 +0x8EA1D2FE 0x7F38 +0x8EA1D3A1 0x7F8E +0x8EA1D3A2 0x7FBF +0x8EA1D3A3 0x8010 +0x8EA1D3A4 0x800D +0x8EA1D3A5 0x8011 +0x8EA1D3A6 0x8036 +0x8EA1D3A7 0x80D6 +0x8EA1D3A8 0x80E5 +0x8EA1D3A9 0x80DA +0x8EA1D3AA 0x80C3 +0x8EA1D3AB 0x80C4 +0x8EA1D3AC 0x80CC +0x8EA1D3AD 0x80E1 +0x8EA1D3AE 0x80DB +0x8EA1D3AF 0x80CE +0x8EA1D3B0 0x80DE +0x8EA1D3B1 0x80E4 +0x8EA1D3B2 0x80DD +0x8EA1D3B3 0x81F4 +0x8EA1D3B4 0x8222 +0x8EA1D3B5 0x82E7 +0x8EA1D3B6 0x8303 +0x8EA1D3B7 0x8305 +0x8EA1D3B8 0x82E3 +0x8EA1D3B9 0x82DB +0x8EA1D3BA 0x82E6 +0x8EA1D3BB 0x8304 +0x8EA1D3BC 0x82E5 +0x8EA1D3BD 0x8302 +0x8EA1D3BE 0x8309 +0x8EA1D3BF 0x82D2 +0x8EA1D3C0 0x82D7 +0x8EA1D3C1 0x82F1 +0x8EA1D3C2 0x8301 +0x8EA1D3C3 0x82DC +0x8EA1D3C4 0x82D4 +0x8EA1D3C5 0x82D1 +0x8EA1D3C6 0x82DE +0x8EA1D3C7 0x82D3 +0x8EA1D3C8 0x82DF +0x8EA1D3C9 0x82EF +0x8EA1D3CA 0x8306 +0x8EA1D3CB 0x8650 +0x8EA1D3CC 0x8679 +0x8EA1D3CD 0x867B +0x8EA1D3CE 0x867A +0x8EA1D3CF 0x884D +0x8EA1D3D0 0x886B +0x8EA1D3D1 0x8981 +0x8EA1D3D2 0x89D4 +0x8EA1D3D3 0x8A08 +0x8EA1D3D4 0x8A02 +0x8EA1D3D5 0x8A03 +0x8EA1D3D6 0x8C9E +0x8EA1D3D7 0x8CA0 +0x8EA1D3D8 0x8D74 +0x8EA1D3D9 0x8D73 +0x8EA1D3DA 0x8DB4 +0x8EA1D3DB 0x8ECD +0x8EA1D3DC 0x8ECC +0x8EA1D3DD 0x8FF0 +0x8EA1D3DE 0x8FE6 +0x8EA1D3DF 0x8FE2 +0x8EA1D3E0 0x8FEA +0x8EA1D3E1 0x8FE5 +0x8EA1D3E2 0x8FED +0x8EA1D3E3 0x8FEB +0x8EA1D3E4 0x8FE4 +0x8EA1D3E5 0x8FE8 +0x8EA1D3E6 0x90CA +0x8EA1D3E7 0x90CE +0x8EA1D3E8 0x90C1 +0x8EA1D3E9 0x90C3 +0x8EA1D3EA 0x914B +0x8EA1D3EB 0x914A +0x8EA1D3EC 0x91CD +0x8EA1D3ED 0x9582 +0x8EA1D3EE 0x9650 +0x8EA1D3EF 0x964B +0x8EA1D3F0 0x964C +0x8EA1D3F1 0x964D +0x8EA1D3F2 0x9762 +0x8EA1D3F3 0x9769 +0x8EA1D3F4 0x97CB +0x8EA1D3F5 0x97ED +0x8EA1D3F6 0x97F3 +0x8EA1D3F7 0x9801 +0x8EA1D3F8 0x98A8 +0x8EA1D3F9 0x98DB +0x8EA1D3FA 0x98DF +0x8EA1D3FB 0x9996 +0x8EA1D3FC 0x9999 +0x8EA1D3FD 0x4E58 +0x8EA1D3FE 0x4EB3 +0x8EA1D4A1 0x500C +0x8EA1D4A2 0x500D +0x8EA1D4A3 0x5023 +0x8EA1D4A4 0x4FEF +0x8EA1D4A5 0x5026 +0x8EA1D4A6 0x5025 +0x8EA1D4A7 0x4FF8 +0x8EA1D4A8 0x5029 +0x8EA1D4A9 0x5016 +0x8EA1D4AA 0x5006 +0x8EA1D4AB 0x503C +0x8EA1D4AC 0x501F +0x8EA1D4AD 0x501A +0x8EA1D4AE 0x5012 +0x8EA1D4AF 0x5011 +0x8EA1D4B0 0x4FFA +0x8EA1D4B1 0x5000 +0x8EA1D4B2 0x5014 +0x8EA1D4B3 0x5028 +0x8EA1D4B4 0x4FF1 +0x8EA1D4B5 0x5021 +0x8EA1D4B6 0x500B +0x8EA1D4B7 0x5019 +0x8EA1D4B8 0x5018 +0x8EA1D4B9 0x4FF3 +0x8EA1D4BA 0x4FEE +0x8EA1D4BB 0x502D +0x8EA1D4BC 0x502A +0x8EA1D4BD 0x4FFE +0x8EA1D4BE 0x502B +0x8EA1D4BF 0x5009 +0x8EA1D4C0 0x517C +0x8EA1D4C1 0x51A4 +0x8EA1D4C2 0x51A5 +0x8EA1D4C3 0x51A2 +0x8EA1D4C4 0x51CD +0x8EA1D4C5 0x51CC +0x8EA1D4C6 0x51C6 +0x8EA1D4C7 0x51CB +0x8EA1D4C8 0x5256 +0x8EA1D4C9 0x525C +0x8EA1D4CA 0x5254 +0x8EA1D4CB 0x525B +0x8EA1D4CC 0x525D +0x8EA1D4CD 0x532A +0x8EA1D4CE 0x537F +0x8EA1D4CF 0x539F +0x8EA1D4D0 0x539D +0x8EA1D4D1 0x53DF +0x8EA1D4D2 0x54E8 +0x8EA1D4D3 0x5510 +0x8EA1D4D4 0x5501 +0x8EA1D4D5 0x5537 +0x8EA1D4D6 0x54FC +0x8EA1D4D7 0x54E5 +0x8EA1D4D8 0x54F2 +0x8EA1D4D9 0x5506 +0x8EA1D4DA 0x54FA +0x8EA1D4DB 0x5514 +0x8EA1D4DC 0x54E9 +0x8EA1D4DD 0x54ED +0x8EA1D4DE 0x54E1 +0x8EA1D4DF 0x5509 +0x8EA1D4E0 0x54EE +0x8EA1D4E1 0x54EA +0x8EA1D4E2 0x54E6 +0x8EA1D4E3 0x5527 +0x8EA1D4E4 0x5507 +0x8EA1D4E5 0x54FD +0x8EA1D4E6 0x550F +0x8EA1D4E7 0x5703 +0x8EA1D4E8 0x5704 +0x8EA1D4E9 0x57C2 +0x8EA1D4EA 0x57D4 +0x8EA1D4EB 0x57CB +0x8EA1D4EC 0x57C3 +0x8EA1D4ED 0x5809 +0x8EA1D4EE 0x590F +0x8EA1D4EF 0x5957 +0x8EA1D4F0 0x5958 +0x8EA1D4F1 0x595A +0x8EA1D4F2 0x5A11 +0x8EA1D4F3 0x5A18 +0x8EA1D4F4 0x5A1C +0x8EA1D4F5 0x5A1F +0x8EA1D4F6 0x5A1B +0x8EA1D4F7 0x5A13 +0x8EA1D4F8 0x59EC +0x8EA1D4F9 0x5A20 +0x8EA1D4FA 0x5A23 +0x8EA1D4FB 0x5A29 +0x8EA1D4FC 0x5A25 +0x8EA1D4FD 0x5A0C +0x8EA1D4FE 0x5A09 +0x8EA1D5A1 0x5B6B +0x8EA1D5A2 0x5C58 +0x8EA1D5A3 0x5BB0 +0x8EA1D5A4 0x5BB3 +0x8EA1D5A5 0x5BB6 +0x8EA1D5A6 0x5BB4 +0x8EA1D5A7 0x5BAE +0x8EA1D5A8 0x5BB5 +0x8EA1D5A9 0x5BB9 +0x8EA1D5AA 0x5BB8 +0x8EA1D5AB 0x5C04 +0x8EA1D5AC 0x5C51 +0x8EA1D5AD 0x5C55 +0x8EA1D5AE 0x5C50 +0x8EA1D5AF 0x5CED +0x8EA1D5B0 0x5CFD +0x8EA1D5B1 0x5CFB +0x8EA1D5B2 0x5CEA +0x8EA1D5B3 0x5CE8 +0x8EA1D5B4 0x5CF0 +0x8EA1D5B5 0x5CF6 +0x8EA1D5B6 0x5D01 +0x8EA1D5B7 0x5CF4 +0x8EA1D5B8 0x5DEE +0x8EA1D5B9 0x5E2D +0x8EA1D5BA 0x5E2B +0x8EA1D5BB 0x5EAB +0x8EA1D5BC 0x5EAD +0x8EA1D5BD 0x5EA7 +0x8EA1D5BE 0x5F31 +0x8EA1D5BF 0x5F92 +0x8EA1D5C0 0x5F91 +0x8EA1D5C1 0x5F90 +0x8EA1D5C2 0x6059 +0x8EA1D5C3 0x6063 +0x8EA1D5C4 0x6065 +0x8EA1D5C5 0x6050 +0x8EA1D5C6 0x6055 +0x8EA1D5C7 0x606D +0x8EA1D5C8 0x6069 +0x8EA1D5C9 0x606F +0x8EA1D5CA 0x6084 +0x8EA1D5CB 0x609F +0x8EA1D5CC 0x609A +0x8EA1D5CD 0x608D +0x8EA1D5CE 0x6094 +0x8EA1D5CF 0x608C +0x8EA1D5D0 0x6085 +0x8EA1D5D1 0x6096 +0x8EA1D5D2 0x6247 +0x8EA1D5D3 0x62F3 +0x8EA1D5D4 0x6308 +0x8EA1D5D5 0x62FF +0x8EA1D5D6 0x634E +0x8EA1D5D7 0x633E +0x8EA1D5D8 0x632F +0x8EA1D5D9 0x6355 +0x8EA1D5DA 0x6342 +0x8EA1D5DB 0x6346 +0x8EA1D5DC 0x634F +0x8EA1D5DD 0x6349 +0x8EA1D5DE 0x633A +0x8EA1D5DF 0x6350 +0x8EA1D5E0 0x633D +0x8EA1D5E1 0x632A +0x8EA1D5E2 0x632B +0x8EA1D5E3 0x6328 +0x8EA1D5E4 0x634D +0x8EA1D5E5 0x634C +0x8EA1D5E6 0x6548 +0x8EA1D5E7 0x6549 +0x8EA1D5E8 0x6599 +0x8EA1D5E9 0x65C1 +0x8EA1D5EA 0x65C5 +0x8EA1D5EB 0x6642 +0x8EA1D5EC 0x6649 +0x8EA1D5ED 0x664F +0x8EA1D5EE 0x6643 +0x8EA1D5EF 0x6652 +0x8EA1D5F0 0x664C +0x8EA1D5F1 0x6645 +0x8EA1D5F2 0x6641 +0x8EA1D5F3 0x66F8 +0x8EA1D5F4 0x6714 +0x8EA1D5F5 0x6715 +0x8EA1D5F6 0x6717 +0x8EA1D5F7 0x6821 +0x8EA1D5F8 0x6838 +0x8EA1D5F9 0x6848 +0x8EA1D5FA 0x6846 +0x8EA1D5FB 0x6853 +0x8EA1D5FC 0x6839 +0x8EA1D5FD 0x6842 +0x8EA1D5FE 0x6854 +0x8EA1D6A1 0x6829 +0x8EA1D6A2 0x68B3 +0x8EA1D6A3 0x6817 +0x8EA1D6A4 0x684C +0x8EA1D6A5 0x6851 +0x8EA1D6A6 0x683D +0x8EA1D6A7 0x67F4 +0x8EA1D6A8 0x6850 +0x8EA1D6A9 0x6840 +0x8EA1D6AA 0x683C +0x8EA1D6AB 0x6843 +0x8EA1D6AC 0x682A +0x8EA1D6AD 0x6845 +0x8EA1D6AE 0x6813 +0x8EA1D6AF 0x6818 +0x8EA1D6B0 0x6841 +0x8EA1D6B1 0x6B8A +0x8EA1D6B2 0x6B89 +0x8EA1D6B3 0x6BB7 +0x8EA1D6B4 0x6C23 +0x8EA1D6B5 0x6C27 +0x8EA1D6B6 0x6C28 +0x8EA1D6B7 0x6C26 +0x8EA1D6B8 0x6C24 +0x8EA1D6B9 0x6CF0 +0x8EA1D6BA 0x6D6A +0x8EA1D6BB 0x6D95 +0x8EA1D6BC 0x6D88 +0x8EA1D6BD 0x6D87 +0x8EA1D6BE 0x6D66 +0x8EA1D6BF 0x6D78 +0x8EA1D6C0 0x6D77 +0x8EA1D6C1 0x6D59 +0x8EA1D6C2 0x6D93 +0x8EA1D6C3 0x6D6C +0x8EA1D6C4 0x6D89 +0x8EA1D6C5 0x6D6E +0x8EA1D6C6 0x6D5A +0x8EA1D6C7 0x6D74 +0x8EA1D6C8 0x6D69 +0x8EA1D6C9 0x6D8C +0x8EA1D6CA 0x6D8A +0x8EA1D6CB 0x6D79 +0x8EA1D6CC 0x6D85 +0x8EA1D6CD 0x6D65 +0x8EA1D6CE 0x6D94 +0x8EA1D6CF 0x70CA +0x8EA1D6D0 0x70D8 +0x8EA1D6D1 0x70E4 +0x8EA1D6D2 0x70D9 +0x8EA1D6D3 0x70C8 +0x8EA1D6D4 0x70CF +0x8EA1D6D5 0x7239 +0x8EA1D6D6 0x7279 +0x8EA1D6D7 0x72FC +0x8EA1D6D8 0x72F9 +0x8EA1D6D9 0x72FD +0x8EA1D6DA 0x72F8 +0x8EA1D6DB 0x72F7 +0x8EA1D6DC 0x7386 +0x8EA1D6DD 0x73ED +0x8EA1D6DE 0x7409 +0x8EA1D6DF 0x73EE +0x8EA1D6E0 0x73E0 +0x8EA1D6E1 0x73EA +0x8EA1D6E2 0x73DE +0x8EA1D6E3 0x7554 +0x8EA1D6E4 0x755D +0x8EA1D6E5 0x755C +0x8EA1D6E6 0x755A +0x8EA1D6E7 0x7559 +0x8EA1D6E8 0x75BE +0x8EA1D6E9 0x75C5 +0x8EA1D6EA 0x75C7 +0x8EA1D6EB 0x75B2 +0x8EA1D6EC 0x75B3 +0x8EA1D6ED 0x75BD +0x8EA1D6EE 0x75BC +0x8EA1D6EF 0x75B9 +0x8EA1D6F0 0x75C2 +0x8EA1D6F1 0x75B8 +0x8EA1D6F2 0x768B +0x8EA1D6F3 0x76B0 +0x8EA1D6F4 0x76CA +0x8EA1D6F5 0x76CD +0x8EA1D6F6 0x76CE +0x8EA1D6F7 0x7729 +0x8EA1D6F8 0x771F +0x8EA1D6F9 0x7720 +0x8EA1D6FA 0x7728 +0x8EA1D6FB 0x77E9 +0x8EA1D6FC 0x7830 +0x8EA1D6FD 0x7827 +0x8EA1D6FE 0x7838 +0x8EA1D7A1 0x781D +0x8EA1D7A2 0x7834 +0x8EA1D7A3 0x7837 +0x8EA1D7A4 0x7825 +0x8EA1D7A5 0x782D +0x8EA1D7A6 0x7820 +0x8EA1D7A7 0x781F +0x8EA1D7A8 0x7832 +0x8EA1D7A9 0x7955 +0x8EA1D7AA 0x7950 +0x8EA1D7AB 0x7960 +0x8EA1D7AC 0x795F +0x8EA1D7AD 0x7956 +0x8EA1D7AE 0x795E +0x8EA1D7AF 0x795D +0x8EA1D7B0 0x7957 +0x8EA1D7B1 0x795A +0x8EA1D7B2 0x79E4 +0x8EA1D7B3 0x79E3 +0x8EA1D7B4 0x79E7 +0x8EA1D7B5 0x79DF +0x8EA1D7B6 0x79E6 +0x8EA1D7B7 0x79E9 +0x8EA1D7B8 0x79D8 +0x8EA1D7B9 0x7A84 +0x8EA1D7BA 0x7A88 +0x8EA1D7BB 0x7AD9 +0x8EA1D7BC 0x7B06 +0x8EA1D7BD 0x7B11 +0x8EA1D7BE 0x7C89 +0x8EA1D7BF 0x7D21 +0x8EA1D7C0 0x7D17 +0x8EA1D7C1 0x7D0B +0x8EA1D7C2 0x7D0A +0x8EA1D7C3 0x7D20 +0x8EA1D7C4 0x7D22 +0x8EA1D7C5 0x7D14 +0x8EA1D7C6 0x7D10 +0x8EA1D7C7 0x7D15 +0x8EA1D7C8 0x7D1A +0x8EA1D7C9 0x7D1C +0x8EA1D7CA 0x7D0D +0x8EA1D7CB 0x7D19 +0x8EA1D7CC 0x7D1B +0x8EA1D7CD 0x7F3A +0x8EA1D7CE 0x7F5F +0x8EA1D7CF 0x7F94 +0x8EA1D7D0 0x7FC5 +0x8EA1D7D1 0x7FC1 +0x8EA1D7D2 0x8006 +0x8EA1D7D3 0x8004 +0x8EA1D7D4 0x8018 +0x8EA1D7D5 0x8015 +0x8EA1D7D6 0x8019 +0x8EA1D7D7 0x8017 +0x8EA1D7D8 0x803D +0x8EA1D7D9 0x803F +0x8EA1D7DA 0x80F1 +0x8EA1D7DB 0x8102 +0x8EA1D7DC 0x80F0 +0x8EA1D7DD 0x8105 +0x8EA1D7DE 0x80ED +0x8EA1D7DF 0x80F4 +0x8EA1D7E0 0x8106 +0x8EA1D7E1 0x80F8 +0x8EA1D7E2 0x80F3 +0x8EA1D7E3 0x8108 +0x8EA1D7E4 0x80FD +0x8EA1D7E5 0x810A +0x8EA1D7E6 0x80FC +0x8EA1D7E7 0x80EF +0x8EA1D7E8 0x81ED +0x8EA1D7E9 0x81EC +0x8EA1D7EA 0x8200 +0x8EA1D7EB 0x8210 +0x8EA1D7EC 0x822A +0x8EA1D7ED 0x822B +0x8EA1D7EE 0x8228 +0x8EA1D7EF 0x822C +0x8EA1D7F0 0x82BB +0x8EA1D7F1 0x832B +0x8EA1D7F2 0x8352 +0x8EA1D7F3 0x8354 +0x8EA1D7F4 0x834A +0x8EA1D7F5 0x8338 +0x8EA1D7F6 0x8350 +0x8EA1D7F7 0x8349 +0x8EA1D7F8 0x8335 +0x8EA1D7F9 0x8334 +0x8EA1D7FA 0x834F +0x8EA1D7FB 0x8332 +0x8EA1D7FC 0x8339 +0x8EA1D7FD 0x8336 +0x8EA1D7FE 0x8317 +0x8EA1D8A1 0x8340 +0x8EA1D8A2 0x8331 +0x8EA1D8A3 0x8328 +0x8EA1D8A4 0x8343 +0x8EA1D8A5 0x8654 +0x8EA1D8A6 0x868A +0x8EA1D8A7 0x86AA +0x8EA1D8A8 0x8693 +0x8EA1D8A9 0x86A4 +0x8EA1D8AA 0x86A9 +0x8EA1D8AB 0x868C +0x8EA1D8AC 0x86A3 +0x8EA1D8AD 0x869C +0x8EA1D8AE 0x8870 +0x8EA1D8AF 0x8877 +0x8EA1D8B0 0x8881 +0x8EA1D8B1 0x8882 +0x8EA1D8B2 0x887D +0x8EA1D8B3 0x8879 +0x8EA1D8B4 0x8A18 +0x8EA1D8B5 0x8A10 +0x8EA1D8B6 0x8A0E +0x8EA1D8B7 0x8A0C +0x8EA1D8B8 0x8A15 +0x8EA1D8B9 0x8A0A +0x8EA1D8BA 0x8A17 +0x8EA1D8BB 0x8A13 +0x8EA1D8BC 0x8A16 +0x8EA1D8BD 0x8A0F +0x8EA1D8BE 0x8A11 +0x8EA1D8BF 0x8C48 +0x8EA1D8C0 0x8C7A +0x8EA1D8C1 0x8C79 +0x8EA1D8C2 0x8CA1 +0x8EA1D8C3 0x8CA2 +0x8EA1D8C4 0x8D77 +0x8EA1D8C5 0x8EAC +0x8EA1D8C6 0x8ED2 +0x8EA1D8C7 0x8ED4 +0x8EA1D8C8 0x8ECF +0x8EA1D8C9 0x8FB1 +0x8EA1D8CA 0x9001 +0x8EA1D8CB 0x9006 +0x8EA1D8CC 0x8FF7 +0x8EA1D8CD 0x9000 +0x8EA1D8CE 0x8FFA +0x8EA1D8CF 0x8FF4 +0x8EA1D8D0 0x9003 +0x8EA1D8D1 0x8FFD +0x8EA1D8D2 0x9005 +0x8EA1D8D3 0x8FF8 +0x8EA1D8D4 0x9095 +0x8EA1D8D5 0x90E1 +0x8EA1D8D6 0x90DD +0x8EA1D8D7 0x90E2 +0x8EA1D8D8 0x9152 +0x8EA1D8D9 0x914D +0x8EA1D8DA 0x914C +0x8EA1D8DB 0x91D8 +0x8EA1D8DC 0x91DD +0x8EA1D8DD 0x91D7 +0x8EA1D8DE 0x91DC +0x8EA1D8DF 0x91D9 +0x8EA1D8E0 0x9583 +0x8EA1D8E1 0x9662 +0x8EA1D8E2 0x9663 +0x8EA1D8E3 0x9661 +0x8EA1D8E4 0x965B +0x8EA1D8E5 0x965D +0x8EA1D8E6 0x9664 +0x8EA1D8E7 0x9658 +0x8EA1D8E8 0x965E +0x8EA1D8E9 0x96BB +0x8EA1D8EA 0x98E2 +0x8EA1D8EB 0x99AC +0x8EA1D8EC 0x9AA8 +0x8EA1D8ED 0x9AD8 +0x8EA1D8EE 0x9B25 +0x8EA1D8EF 0x9B32 +0x8EA1D8F0 0x9B3C +0x8EA1D8F1 0x4E7E +0x8EA1D8F2 0x507A +0x8EA1D8F3 0x507D +0x8EA1D8F4 0x505C +0x8EA1D8F5 0x5047 +0x8EA1D8F6 0x5043 +0x8EA1D8F7 0x504C +0x8EA1D8F8 0x505A +0x8EA1D8F9 0x5049 +0x8EA1D8FA 0x5065 +0x8EA1D8FB 0x5076 +0x8EA1D8FC 0x504E +0x8EA1D8FD 0x5055 +0x8EA1D8FE 0x5075 +0x8EA1D9A1 0x5074 +0x8EA1D9A2 0x5077 +0x8EA1D9A3 0x504F +0x8EA1D9A4 0x500F +0x8EA1D9A5 0x506F +0x8EA1D9A6 0x506D +0x8EA1D9A7 0x515C +0x8EA1D9A8 0x5195 +0x8EA1D9A9 0x51F0 +0x8EA1D9AA 0x526A +0x8EA1D9AB 0x526F +0x8EA1D9AC 0x52D2 +0x8EA1D9AD 0x52D9 +0x8EA1D9AE 0x52D8 +0x8EA1D9AF 0x52D5 +0x8EA1D9B0 0x5310 +0x8EA1D9B1 0x530F +0x8EA1D9B2 0x5319 +0x8EA1D9B3 0x533F +0x8EA1D9B4 0x5340 +0x8EA1D9B5 0x533E +0x8EA1D9B6 0x53C3 +0x8EA1D9B7 0x66FC +0x8EA1D9B8 0x5546 +0x8EA1D9B9 0x556A +0x8EA1D9BA 0x5566 +0x8EA1D9BB 0x5544 +0x8EA1D9BC 0x555E +0x8EA1D9BD 0x5561 +0x8EA1D9BE 0x5543 +0x8EA1D9BF 0x554A +0x8EA1D9C0 0x5531 +0x8EA1D9C1 0x5556 +0x8EA1D9C2 0x554F +0x8EA1D9C3 0x5555 +0x8EA1D9C4 0x552F +0x8EA1D9C5 0x5564 +0x8EA1D9C6 0x5538 +0x8EA1D9C7 0x552E +0x8EA1D9C8 0x555C +0x8EA1D9C9 0x552C +0x8EA1D9CA 0x5563 +0x8EA1D9CB 0x5533 +0x8EA1D9CC 0x5541 +0x8EA1D9CD 0x5557 +0x8EA1D9CE 0x5708 +0x8EA1D9CF 0x570B +0x8EA1D9D0 0x5709 +0x8EA1D9D1 0x57DF +0x8EA1D9D2 0x5805 +0x8EA1D9D3 0x580A +0x8EA1D9D4 0x5806 +0x8EA1D9D5 0x57E0 +0x8EA1D9D6 0x57E4 +0x8EA1D9D7 0x57FA +0x8EA1D9D8 0x5802 +0x8EA1D9D9 0x5835 +0x8EA1D9DA 0x57F7 +0x8EA1D9DB 0x57F9 +0x8EA1D9DC 0x5920 +0x8EA1D9DD 0x5962 +0x8EA1D9DE 0x5A36 +0x8EA1D9DF 0x5A41 +0x8EA1D9E0 0x5A49 +0x8EA1D9E1 0x5A66 +0x8EA1D9E2 0x5A6A +0x8EA1D9E3 0x5A40 +0x8EA1D9E4 0x5A3C +0x8EA1D9E5 0x5A62 +0x8EA1D9E6 0x5A5A +0x8EA1D9E7 0x5A46 +0x8EA1D9E8 0x5A4A +0x8EA1D9E9 0x5B70 +0x8EA1D9EA 0x5BC7 +0x8EA1D9EB 0x5BC5 +0x8EA1D9EC 0x5BC4 +0x8EA1D9ED 0x5BC2 +0x8EA1D9EE 0x5BBF +0x8EA1D9EF 0x5BC6 +0x8EA1D9F0 0x5C09 +0x8EA1D9F1 0x5C08 +0x8EA1D9F2 0x5C07 +0x8EA1D9F3 0x5C60 +0x8EA1D9F4 0x5C5C +0x8EA1D9F5 0x5C5D +0x8EA1D9F6 0x5D07 +0x8EA1D9F7 0x5D06 +0x8EA1D9F8 0x5D0E +0x8EA1D9F9 0x5D1B +0x8EA1D9FA 0x5D16 +0x8EA1D9FB 0x5D22 +0x8EA1D9FC 0x5D11 +0x8EA1D9FD 0x5D29 +0x8EA1D9FE 0x5D14 +0x8EA1DAA1 0x5D19 +0x8EA1DAA2 0x5D24 +0x8EA1DAA3 0x5D27 +0x8EA1DAA4 0x5D17 +0x8EA1DAA5 0x5DE2 +0x8EA1DAA6 0x5E38 +0x8EA1DAA7 0x5E36 +0x8EA1DAA8 0x5E33 +0x8EA1DAA9 0x5E37 +0x8EA1DAAA 0x5EB7 +0x8EA1DAAB 0x5EB8 +0x8EA1DAAC 0x5EB6 +0x8EA1DAAD 0x5EB5 +0x8EA1DAAE 0x5EBE +0x8EA1DAAF 0x5F35 +0x8EA1DAB0 0x5F37 +0x8EA1DAB1 0x5F57 +0x8EA1DAB2 0x5F6C +0x8EA1DAB3 0x5F69 +0x8EA1DAB4 0x5F6B +0x8EA1DAB5 0x5F97 +0x8EA1DAB6 0x5F99 +0x8EA1DAB7 0x5F9E +0x8EA1DAB8 0x5F98 +0x8EA1DAB9 0x5FA1 +0x8EA1DABA 0x5FA0 +0x8EA1DABB 0x5F9C +0x8EA1DABC 0x607F +0x8EA1DABD 0x60A3 +0x8EA1DABE 0x6089 +0x8EA1DABF 0x60A0 +0x8EA1DAC0 0x60A8 +0x8EA1DAC1 0x60CB +0x8EA1DAC2 0x60B4 +0x8EA1DAC3 0x60E6 +0x8EA1DAC4 0x60BD +0x8EA1DAC5 0x60C5 +0x8EA1DAC6 0x60BB +0x8EA1DAC7 0x60B5 +0x8EA1DAC8 0x60DC +0x8EA1DAC9 0x60BC +0x8EA1DACA 0x60D8 +0x8EA1DACB 0x60D5 +0x8EA1DACC 0x60C6 +0x8EA1DACD 0x60DF +0x8EA1DACE 0x60B8 +0x8EA1DACF 0x60DA +0x8EA1DAD0 0x60C7 +0x8EA1DAD1 0x621A +0x8EA1DAD2 0x621B +0x8EA1DAD3 0x6248 +0x8EA1DAD4 0x63A0 +0x8EA1DAD5 0x63A7 +0x8EA1DAD6 0x6372 +0x8EA1DAD7 0x6396 +0x8EA1DAD8 0x63A2 +0x8EA1DAD9 0x63A5 +0x8EA1DADA 0x6377 +0x8EA1DADB 0x6367 +0x8EA1DADC 0x6398 +0x8EA1DADD 0x63AA +0x8EA1DADE 0x6371 +0x8EA1DADF 0x63A9 +0x8EA1DAE0 0x6389 +0x8EA1DAE1 0x6383 +0x8EA1DAE2 0x639B +0x8EA1DAE3 0x636B +0x8EA1DAE4 0x63A8 +0x8EA1DAE5 0x6384 +0x8EA1DAE6 0x6388 +0x8EA1DAE7 0x6399 +0x8EA1DAE8 0x63A1 +0x8EA1DAE9 0x63AC +0x8EA1DAEA 0x6392 +0x8EA1DAEB 0x638F +0x8EA1DAEC 0x6380 +0x8EA1DAED 0x637B +0x8EA1DAEE 0x6369 +0x8EA1DAEF 0x6368 +0x8EA1DAF0 0x637A +0x8EA1DAF1 0x655D +0x8EA1DAF2 0x6556 +0x8EA1DAF3 0x6551 +0x8EA1DAF4 0x6559 +0x8EA1DAF5 0x6557 +0x8EA1DAF6 0x555F +0x8EA1DAF7 0x654F +0x8EA1DAF8 0x6558 +0x8EA1DAF9 0x6555 +0x8EA1DAFA 0x6554 +0x8EA1DAFB 0x659C +0x8EA1DAFC 0x659B +0x8EA1DAFD 0x65AC +0x8EA1DAFE 0x65CF +0x8EA1DBA1 0x65CB +0x8EA1DBA2 0x65CC +0x8EA1DBA3 0x65CE +0x8EA1DBA4 0x665D +0x8EA1DBA5 0x665A +0x8EA1DBA6 0x6664 +0x8EA1DBA7 0x6668 +0x8EA1DBA8 0x6666 +0x8EA1DBA9 0x665E +0x8EA1DBAA 0x66F9 +0x8EA1DBAB 0x52D7 +0x8EA1DBAC 0x671B +0x8EA1DBAD 0x6881 +0x8EA1DBAE 0x68AF +0x8EA1DBAF 0x68A2 +0x8EA1DBB0 0x6893 +0x8EA1DBB1 0x68B5 +0x8EA1DBB2 0x687F +0x8EA1DBB3 0x6876 +0x8EA1DBB4 0x68B1 +0x8EA1DBB5 0x68A7 +0x8EA1DBB6 0x6897 +0x8EA1DBB7 0x68B0 +0x8EA1DBB8 0x6883 +0x8EA1DBB9 0x68C4 +0x8EA1DBBA 0x68AD +0x8EA1DBBB 0x6886 +0x8EA1DBBC 0x6885 +0x8EA1DBBD 0x6894 +0x8EA1DBBE 0x689D +0x8EA1DBBF 0x68A8 +0x8EA1DBC0 0x689F +0x8EA1DBC1 0x68A1 +0x8EA1DBC2 0x6882 +0x8EA1DBC3 0x6B32 +0x8EA1DBC4 0x6BBA +0x8EA1DBC5 0x6BEB +0x8EA1DBC6 0x6BEC +0x8EA1DBC7 0x6C2B +0x8EA1DBC8 0x6D8E +0x8EA1DBC9 0x6DBC +0x8EA1DBCA 0x6DF3 +0x8EA1DBCB 0x6DD9 +0x8EA1DBCC 0x6DB2 +0x8EA1DBCD 0x6DE1 +0x8EA1DBCE 0x6DCC +0x8EA1DBCF 0x6DE4 +0x8EA1DBD0 0x6DFB +0x8EA1DBD1 0x6DFA +0x8EA1DBD2 0x6E05 +0x8EA1DBD3 0x6DC7 +0x8EA1DBD4 0x6DCB +0x8EA1DBD5 0x6DAF +0x8EA1DBD6 0x6DD1 +0x8EA1DBD7 0x6DAE +0x8EA1DBD8 0x6DDE +0x8EA1DBD9 0x6DF9 +0x8EA1DBDA 0x6DB8 +0x8EA1DBDB 0x6DF7 +0x8EA1DBDC 0x6DF5 +0x8EA1DBDD 0x6DC5 +0x8EA1DBDE 0x6DD2 +0x8EA1DBDF 0x6E1A +0x8EA1DBE0 0x6DB5 +0x8EA1DBE1 0x6DDA +0x8EA1DBE2 0x6DEB +0x8EA1DBE3 0x6DD8 +0x8EA1DBE4 0x6DEA +0x8EA1DBE5 0x6DF1 +0x8EA1DBE6 0x6DEE +0x8EA1DBE7 0x6DE8 +0x8EA1DBE8 0x6DC6 +0x8EA1DBE9 0x6DC4 +0x8EA1DBEA 0x6DAA +0x8EA1DBEB 0x6DEC +0x8EA1DBEC 0x6DBF +0x8EA1DBED 0x6DE6 +0x8EA1DBEE 0x70F9 +0x8EA1DBEF 0x7109 +0x8EA1DBF0 0x710A +0x8EA1DBF1 0x70FD +0x8EA1DBF2 0x70EF +0x8EA1DBF3 0x723D +0x8EA1DBF4 0x727D +0x8EA1DBF5 0x7281 +0x8EA1DBF6 0x731C +0x8EA1DBF7 0x731B +0x8EA1DBF8 0x7316 +0x8EA1DBF9 0x7313 +0x8EA1DBFA 0x7319 +0x8EA1DBFB 0x7387 +0x8EA1DBFC 0x7405 +0x8EA1DBFD 0x740A +0x8EA1DBFE 0x7403 +0x8EA1DCA1 0x7406 +0x8EA1DCA2 0x73FE +0x8EA1DCA3 0x740D +0x8EA1DCA4 0x74E0 +0x8EA1DCA5 0x74F6 +0x8EA1DCA6 0x74F7 +0x8EA1DCA7 0x751C +0x8EA1DCA8 0x7522 +0x8EA1DCA9 0x7565 +0x8EA1DCAA 0x7566 +0x8EA1DCAB 0x7562 +0x8EA1DCAC 0x7570 +0x8EA1DCAD 0x758F +0x8EA1DCAE 0x75D4 +0x8EA1DCAF 0x75D5 +0x8EA1DCB0 0x75B5 +0x8EA1DCB1 0x75CA +0x8EA1DCB2 0x75CD +0x8EA1DCB3 0x768E +0x8EA1DCB4 0x76D4 +0x8EA1DCB5 0x76D2 +0x8EA1DCB6 0x76DB +0x8EA1DCB7 0x7737 +0x8EA1DCB8 0x773E +0x8EA1DCB9 0x773C +0x8EA1DCBA 0x7736 +0x8EA1DCBB 0x7738 +0x8EA1DCBC 0x773A +0x8EA1DCBD 0x786B +0x8EA1DCBE 0x7843 +0x8EA1DCBF 0x784E +0x8EA1DCC0 0x7965 +0x8EA1DCC1 0x7968 +0x8EA1DCC2 0x796D +0x8EA1DCC3 0x79FB +0x8EA1DCC4 0x7A92 +0x8EA1DCC5 0x7A95 +0x8EA1DCC6 0x7B20 +0x8EA1DCC7 0x7B28 +0x8EA1DCC8 0x7B1B +0x8EA1DCC9 0x7B2C +0x8EA1DCCA 0x7B26 +0x8EA1DCCB 0x7B19 +0x8EA1DCCC 0x7B1E +0x8EA1DCCD 0x7B2E +0x8EA1DCCE 0x7C92 +0x8EA1DCCF 0x7C97 +0x8EA1DCD0 0x7C95 +0x8EA1DCD1 0x7D46 +0x8EA1DCD2 0x7D43 +0x8EA1DCD3 0x7D71 +0x8EA1DCD4 0x7D2E +0x8EA1DCD5 0x7D39 +0x8EA1DCD6 0x7D3C +0x8EA1DCD7 0x7D40 +0x8EA1DCD8 0x7D30 +0x8EA1DCD9 0x7D33 +0x8EA1DCDA 0x7D44 +0x8EA1DCDB 0x7D2F +0x8EA1DCDC 0x7D42 +0x8EA1DCDD 0x7D32 +0x8EA1DCDE 0x7D31 +0x8EA1DCDF 0x7F3D +0x8EA1DCE0 0x7F9E +0x8EA1DCE1 0x7F9A +0x8EA1DCE2 0x7FCC +0x8EA1DCE3 0x7FCE +0x8EA1DCE4 0x7FD2 +0x8EA1DCE5 0x801C +0x8EA1DCE6 0x804A +0x8EA1DCE7 0x8046 +0x8EA1DCE8 0x812F +0x8EA1DCE9 0x8116 +0x8EA1DCEA 0x8123 +0x8EA1DCEB 0x812B +0x8EA1DCEC 0x8129 +0x8EA1DCED 0x8130 +0x8EA1DCEE 0x8124 +0x8EA1DCEF 0x8202 +0x8EA1DCF0 0x8235 +0x8EA1DCF1 0x8237 +0x8EA1DCF2 0x8236 +0x8EA1DCF3 0x8239 +0x8EA1DCF4 0x838E +0x8EA1DCF5 0x839E +0x8EA1DCF6 0x8398 +0x8EA1DCF7 0x8378 +0x8EA1DCF8 0x83A2 +0x8EA1DCF9 0x8396 +0x8EA1DCFA 0x83BD +0x8EA1DCFB 0x83AB +0x8EA1DCFC 0x8392 +0x8EA1DCFD 0x838A +0x8EA1DCFE 0x8393 +0x8EA1DDA1 0x8389 +0x8EA1DDA2 0x83A0 +0x8EA1DDA3 0x8377 +0x8EA1DDA4 0x837B +0x8EA1DDA5 0x837C +0x8EA1DDA6 0x8386 +0x8EA1DDA7 0x83A7 +0x8EA1DDA8 0x8655 +0x8EA1DDA9 0x5F6A +0x8EA1DDAA 0x86C7 +0x8EA1DDAB 0x86C0 +0x8EA1DDAC 0x86B6 +0x8EA1DDAD 0x86C4 +0x8EA1DDAE 0x86B5 +0x8EA1DDAF 0x86C6 +0x8EA1DDB0 0x86CB +0x8EA1DDB1 0x86B1 +0x8EA1DDB2 0x86AF +0x8EA1DDB3 0x86C9 +0x8EA1DDB4 0x8853 +0x8EA1DDB5 0x889E +0x8EA1DDB6 0x8888 +0x8EA1DDB7 0x88AB +0x8EA1DDB8 0x8892 +0x8EA1DDB9 0x8896 +0x8EA1DDBA 0x888D +0x8EA1DDBB 0x888B +0x8EA1DDBC 0x8993 +0x8EA1DDBD 0x898F +0x8EA1DDBE 0x8A2A +0x8EA1DDBF 0x8A1D +0x8EA1DDC0 0x8A23 +0x8EA1DDC1 0x8A25 +0x8EA1DDC2 0x8A31 +0x8EA1DDC3 0x8A2D +0x8EA1DDC4 0x8A1F +0x8EA1DDC5 0x8A1B +0x8EA1DDC6 0x8A22 +0x8EA1DDC7 0x8C49 +0x8EA1DDC8 0x8C5A +0x8EA1DDC9 0x8CA9 +0x8EA1DDCA 0x8CAC +0x8EA1DDCB 0x8CAB +0x8EA1DDCC 0x8CA8 +0x8EA1DDCD 0x8CAA +0x8EA1DDCE 0x8CA7 +0x8EA1DDCF 0x8D67 +0x8EA1DDD0 0x8D66 +0x8EA1DDD1 0x8DBE +0x8EA1DDD2 0x8DBA +0x8EA1DDD3 0x8EDB +0x8EA1DDD4 0x8EDF +0x8EA1DDD5 0x9019 +0x8EA1DDD6 0x900D +0x8EA1DDD7 0x901A +0x8EA1DDD8 0x9017 +0x8EA1DDD9 0x9023 +0x8EA1DDDA 0x901F +0x8EA1DDDB 0x901D +0x8EA1DDDC 0x9010 +0x8EA1DDDD 0x9015 +0x8EA1DDDE 0x901E +0x8EA1DDDF 0x9020 +0x8EA1DDE0 0x900F +0x8EA1DDE1 0x9022 +0x8EA1DDE2 0x9016 +0x8EA1DDE3 0x901B +0x8EA1DDE4 0x9014 +0x8EA1DDE5 0x90E8 +0x8EA1DDE6 0x90ED +0x8EA1DDE7 0x90FD +0x8EA1DDE8 0x9157 +0x8EA1DDE9 0x91CE +0x8EA1DDEA 0x91F5 +0x8EA1DDEB 0x91E6 +0x8EA1DDEC 0x91E3 +0x8EA1DDED 0x91E7 +0x8EA1DDEE 0x91ED +0x8EA1DDEF 0x91E9 +0x8EA1DDF0 0x9589 +0x8EA1DDF1 0x966A +0x8EA1DDF2 0x9675 +0x8EA1DDF3 0x9673 +0x8EA1DDF4 0x9678 +0x8EA1DDF5 0x9670 +0x8EA1DDF6 0x9674 +0x8EA1DDF7 0x9676 +0x8EA1DDF8 0x9677 +0x8EA1DDF9 0x966C +0x8EA1DDFA 0x96C0 +0x8EA1DDFB 0x96EA +0x8EA1DDFC 0x96E9 +0x8EA1DDFD 0x7AE0 +0x8EA1DDFE 0x7ADF +0x8EA1DEA1 0x9802 +0x8EA1DEA2 0x9803 +0x8EA1DEA3 0x9B5A +0x8EA1DEA4 0x9CE5 +0x8EA1DEA5 0x9E75 +0x8EA1DEA6 0x9E7F +0x8EA1DEA7 0x9EA5 +0x8EA1DEA8 0x9EBB +0x8EA1DEA9 0x50A2 +0x8EA1DEAA 0x508D +0x8EA1DEAB 0x5085 +0x8EA1DEAC 0x5099 +0x8EA1DEAD 0x5091 +0x8EA1DEAE 0x5080 +0x8EA1DEAF 0x5096 +0x8EA1DEB0 0x5098 +0x8EA1DEB1 0x509A +0x8EA1DEB2 0x6700 +0x8EA1DEB3 0x51F1 +0x8EA1DEB4 0x5272 +0x8EA1DEB5 0x5274 +0x8EA1DEB6 0x5275 +0x8EA1DEB7 0x5269 +0x8EA1DEB8 0x52DE +0x8EA1DEB9 0x52DD +0x8EA1DEBA 0x52DB +0x8EA1DEBB 0x535A +0x8EA1DEBC 0x53A5 +0x8EA1DEBD 0x557B +0x8EA1DEBE 0x5580 +0x8EA1DEBF 0x55A7 +0x8EA1DEC0 0x557C +0x8EA1DEC1 0x558A +0x8EA1DEC2 0x559D +0x8EA1DEC3 0x5598 +0x8EA1DEC4 0x5582 +0x8EA1DEC5 0x559C +0x8EA1DEC6 0x55AA +0x8EA1DEC7 0x5594 +0x8EA1DEC8 0x5587 +0x8EA1DEC9 0x558B +0x8EA1DECA 0x5583 +0x8EA1DECB 0x55B3 +0x8EA1DECC 0x55AE +0x8EA1DECD 0x559F +0x8EA1DECE 0x553E +0x8EA1DECF 0x55B2 +0x8EA1DED0 0x559A +0x8EA1DED1 0x55BB +0x8EA1DED2 0x55AC +0x8EA1DED3 0x55B1 +0x8EA1DED4 0x557E +0x8EA1DED5 0x5589 +0x8EA1DED6 0x55AB +0x8EA1DED7 0x5599 +0x8EA1DED8 0x570D +0x8EA1DED9 0x582F +0x8EA1DEDA 0x582A +0x8EA1DEDB 0x5834 +0x8EA1DEDC 0x5824 +0x8EA1DEDD 0x5830 +0x8EA1DEDE 0x5831 +0x8EA1DEDF 0x5821 +0x8EA1DEE0 0x581D +0x8EA1DEE1 0x5820 +0x8EA1DEE2 0x58F9 +0x8EA1DEE3 0x58FA +0x8EA1DEE4 0x5960 +0x8EA1DEE5 0x5A77 +0x8EA1DEE6 0x5A9A +0x8EA1DEE7 0x5A7F +0x8EA1DEE8 0x5A92 +0x8EA1DEE9 0x5A9B +0x8EA1DEEA 0x5AA7 +0x8EA1DEEB 0x5B73 +0x8EA1DEEC 0x5B71 +0x8EA1DEED 0x5BD2 +0x8EA1DEEE 0x5BCC +0x8EA1DEEF 0x5BD3 +0x8EA1DEF0 0x5BD0 +0x8EA1DEF1 0x5C0A +0x8EA1DEF2 0x5C0B +0x8EA1DEF3 0x5C31 +0x8EA1DEF4 0x5D4C +0x8EA1DEF5 0x5D50 +0x8EA1DEF6 0x5D34 +0x8EA1DEF7 0x5D47 +0x8EA1DEF8 0x5DFD +0x8EA1DEF9 0x5E45 +0x8EA1DEFA 0x5E3D +0x8EA1DEFB 0x5E40 +0x8EA1DEFC 0x5E43 +0x8EA1DEFD 0x5E7E +0x8EA1DEFE 0x5ECA +0x8EA1DFA1 0x5EC1 +0x8EA1DFA2 0x5EC2 +0x8EA1DFA3 0x5EC4 +0x8EA1DFA4 0x5F3C +0x8EA1DFA5 0x5F6D +0x8EA1DFA6 0x5FA9 +0x8EA1DFA7 0x5FAA +0x8EA1DFA8 0x5FA8 +0x8EA1DFA9 0x60D1 +0x8EA1DFAA 0x60E1 +0x8EA1DFAB 0x60B2 +0x8EA1DFAC 0x60B6 +0x8EA1DFAD 0x60E0 +0x8EA1DFAE 0x611C +0x8EA1DFAF 0x6123 +0x8EA1DFB0 0x60FA +0x8EA1DFB1 0x6115 +0x8EA1DFB2 0x60F0 +0x8EA1DFB3 0x60FB +0x8EA1DFB4 0x60F4 +0x8EA1DFB5 0x6168 +0x8EA1DFB6 0x60F1 +0x8EA1DFB7 0x610E +0x8EA1DFB8 0x60F6 +0x8EA1DFB9 0x6109 +0x8EA1DFBA 0x6100 +0x8EA1DFBB 0x6112 +0x8EA1DFBC 0x621F +0x8EA1DFBD 0x6249 +0x8EA1DFBE 0x63A3 +0x8EA1DFBF 0x638C +0x8EA1DFC0 0x63CF +0x8EA1DFC1 0x63C0 +0x8EA1DFC2 0x63E9 +0x8EA1DFC3 0x63C9 +0x8EA1DFC4 0x63C6 +0x8EA1DFC5 0x63CD +0x8EA1DFC6 0x63D2 +0x8EA1DFC7 0x63E3 +0x8EA1DFC8 0x63D0 +0x8EA1DFC9 0x63E1 +0x8EA1DFCA 0x63D6 +0x8EA1DFCB 0x63ED +0x8EA1DFCC 0x63EE +0x8EA1DFCD 0x6376 +0x8EA1DFCE 0x63F4 +0x8EA1DFCF 0x63EA +0x8EA1DFD0 0x63DB +0x8EA1DFD1 0x6452 +0x8EA1DFD2 0x63DA +0x8EA1DFD3 0x63F9 +0x8EA1DFD4 0x655E +0x8EA1DFD5 0x6566 +0x8EA1DFD6 0x6562 +0x8EA1DFD7 0x6563 +0x8EA1DFD8 0x6591 +0x8EA1DFD9 0x6590 +0x8EA1DFDA 0x65AF +0x8EA1DFDB 0x666E +0x8EA1DFDC 0x6670 +0x8EA1DFDD 0x6674 +0x8EA1DFDE 0x6676 +0x8EA1DFDF 0x666F +0x8EA1DFE0 0x6691 +0x8EA1DFE1 0x667A +0x8EA1DFE2 0x667E +0x8EA1DFE3 0x6677 +0x8EA1DFE4 0x66FE +0x8EA1DFE5 0x66FF +0x8EA1DFE6 0x671F +0x8EA1DFE7 0x671D +0x8EA1DFE8 0x68FA +0x8EA1DFE9 0x68D5 +0x8EA1DFEA 0x68E0 +0x8EA1DFEB 0x68D8 +0x8EA1DFEC 0x68D7 +0x8EA1DFED 0x6905 +0x8EA1DFEE 0x68DF +0x8EA1DFEF 0x68F5 +0x8EA1DFF0 0x68EE +0x8EA1DFF1 0x68E7 +0x8EA1DFF2 0x68F9 +0x8EA1DFF3 0x68D2 +0x8EA1DFF4 0x68F2 +0x8EA1DFF5 0x68E3 +0x8EA1DFF6 0x68CB +0x8EA1DFF7 0x68CD +0x8EA1DFF8 0x690D +0x8EA1DFF9 0x6912 +0x8EA1DFFA 0x690E +0x8EA1DFFB 0x68C9 +0x8EA1DFFC 0x68DA +0x8EA1DFFD 0x696E +0x8EA1DFFE 0x68FB +0x8EA1E0A1 0x6B3E +0x8EA1E0A2 0x6B3A +0x8EA1E0A3 0x6B3D +0x8EA1E0A4 0x6B98 +0x8EA1E0A5 0x6B96 +0x8EA1E0A6 0x6BBC +0x8EA1E0A7 0x6BEF +0x8EA1E0A8 0x6C2E +0x8EA1E0A9 0x6C2F +0x8EA1E0AA 0x6C2C +0x8EA1E0AB 0x6E2F +0x8EA1E0AC 0x6E38 +0x8EA1E0AD 0x6E54 +0x8EA1E0AE 0x6E21 +0x8EA1E0AF 0x6E32 +0x8EA1E0B0 0x6E67 +0x8EA1E0B1 0x6E4A +0x8EA1E0B2 0x6E20 +0x8EA1E0B3 0x6E25 +0x8EA1E0B4 0x6E23 +0x8EA1E0B5 0x6E1B +0x8EA1E0B6 0x6E5B +0x8EA1E0B7 0x6E58 +0x8EA1E0B8 0x6E24 +0x8EA1E0B9 0x6E56 +0x8EA1E0BA 0x6E6E +0x8EA1E0BB 0x6E2D +0x8EA1E0BC 0x6E26 +0x8EA1E0BD 0x6E6F +0x8EA1E0BE 0x6E34 +0x8EA1E0BF 0x6E4D +0x8EA1E0C0 0x6E3A +0x8EA1E0C1 0x6E2C +0x8EA1E0C2 0x6E43 +0x8EA1E0C3 0x6E1D +0x8EA1E0C4 0x6E3E +0x8EA1E0C5 0x6ECB +0x8EA1E0C6 0x6E89 +0x8EA1E0C7 0x6E19 +0x8EA1E0C8 0x6E4E +0x8EA1E0C9 0x6E63 +0x8EA1E0CA 0x6E44 +0x8EA1E0CB 0x6E72 +0x8EA1E0CC 0x6E69 +0x8EA1E0CD 0x6E5F +0x8EA1E0CE 0x7119 +0x8EA1E0CF 0x711A +0x8EA1E0D0 0x7126 +0x8EA1E0D1 0x7130 +0x8EA1E0D2 0x7121 +0x8EA1E0D3 0x7136 +0x8EA1E0D4 0x716E +0x8EA1E0D5 0x711C +0x8EA1E0D6 0x724C +0x8EA1E0D7 0x7284 +0x8EA1E0D8 0x7280 +0x8EA1E0D9 0x7336 +0x8EA1E0DA 0x7325 +0x8EA1E0DB 0x7334 +0x8EA1E0DC 0x7329 +0x8EA1E0DD 0x743A +0x8EA1E0DE 0x742A +0x8EA1E0DF 0x7433 +0x8EA1E0E0 0x7422 +0x8EA1E0E1 0x7425 +0x8EA1E0E2 0x7435 +0x8EA1E0E3 0x7436 +0x8EA1E0E4 0x7434 +0x8EA1E0E5 0x742F +0x8EA1E0E6 0x741B +0x8EA1E0E7 0x7426 +0x8EA1E0E8 0x7428 +0x8EA1E0E9 0x7525 +0x8EA1E0EA 0x7526 +0x8EA1E0EB 0x756B +0x8EA1E0EC 0x756A +0x8EA1E0ED 0x75E2 +0x8EA1E0EE 0x75DB +0x8EA1E0EF 0x75E3 +0x8EA1E0F0 0x75D9 +0x8EA1E0F1 0x75D8 +0x8EA1E0F2 0x75DE +0x8EA1E0F3 0x75E0 +0x8EA1E0F4 0x767B +0x8EA1E0F5 0x767C +0x8EA1E0F6 0x7696 +0x8EA1E0F7 0x7693 +0x8EA1E0F8 0x76B4 +0x8EA1E0F9 0x76DC +0x8EA1E0FA 0x774F +0x8EA1E0FB 0x77ED +0x8EA1E0FC 0x785D +0x8EA1E0FD 0x786C +0x8EA1E0FE 0x786F +0x8EA1E1A1 0x7A0D +0x8EA1E1A2 0x7A08 +0x8EA1E1A3 0x7A0B +0x8EA1E1A4 0x7A05 +0x8EA1E1A5 0x7A00 +0x8EA1E1A6 0x7A98 +0x8EA1E1A7 0x7A97 +0x8EA1E1A8 0x7A96 +0x8EA1E1A9 0x7AE5 +0x8EA1E1AA 0x7AE3 +0x8EA1E1AB 0x7B49 +0x8EA1E1AC 0x7B56 +0x8EA1E1AD 0x7B46 +0x8EA1E1AE 0x7B50 +0x8EA1E1AF 0x7B52 +0x8EA1E1B0 0x7B54 +0x8EA1E1B1 0x7B4D +0x8EA1E1B2 0x7B4B +0x8EA1E1B3 0x7B4F +0x8EA1E1B4 0x7B51 +0x8EA1E1B5 0x7C9F +0x8EA1E1B6 0x7CA5 +0x8EA1E1B7 0x7D5E +0x8EA1E1B8 0x7D50 +0x8EA1E1B9 0x7D68 +0x8EA1E1BA 0x7D55 +0x8EA1E1BB 0x7D2B +0x8EA1E1BC 0x7D6E +0x8EA1E1BD 0x7D72 +0x8EA1E1BE 0x7D61 +0x8EA1E1BF 0x7D66 +0x8EA1E1C0 0x7D62 +0x8EA1E1C1 0x7D70 +0x8EA1E1C2 0x7D73 +0x8EA1E1C3 0x5584 +0x8EA1E1C4 0x7FD4 +0x8EA1E1C5 0x7FD5 +0x8EA1E1C6 0x800B +0x8EA1E1C7 0x8052 +0x8EA1E1C8 0x8085 +0x8EA1E1C9 0x8155 +0x8EA1E1CA 0x8154 +0x8EA1E1CB 0x814B +0x8EA1E1CC 0x8151 +0x8EA1E1CD 0x814E +0x8EA1E1CE 0x8139 +0x8EA1E1CF 0x8146 +0x8EA1E1D0 0x813E +0x8EA1E1D1 0x814C +0x8EA1E1D2 0x8153 +0x8EA1E1D3 0x8174 +0x8EA1E1D4 0x8212 +0x8EA1E1D5 0x821C +0x8EA1E1D6 0x83E9 +0x8EA1E1D7 0x8403 +0x8EA1E1D8 0x83F8 +0x8EA1E1D9 0x840D +0x8EA1E1DA 0x83E0 +0x8EA1E1DB 0x83C5 +0x8EA1E1DC 0x840B +0x8EA1E1DD 0x83C1 +0x8EA1E1DE 0x83EF +0x8EA1E1DF 0x83F1 +0x8EA1E1E0 0x83F4 +0x8EA1E1E1 0x8457 +0x8EA1E1E2 0x840A +0x8EA1E1E3 0x83F0 +0x8EA1E1E4 0x840C +0x8EA1E1E5 0x83CC +0x8EA1E1E6 0x83FD +0x8EA1E1E7 0x83F2 +0x8EA1E1E8 0x83CA +0x8EA1E1E9 0x8438 +0x8EA1E1EA 0x840E +0x8EA1E1EB 0x8404 +0x8EA1E1EC 0x83DC +0x8EA1E1ED 0x8407 +0x8EA1E1EE 0x83D4 +0x8EA1E1EF 0x83DF +0x8EA1E1F0 0x865B +0x8EA1E1F1 0x86DF +0x8EA1E1F2 0x86D9 +0x8EA1E1F3 0x86ED +0x8EA1E1F4 0x86D4 +0x8EA1E1F5 0x86DB +0x8EA1E1F6 0x86E4 +0x8EA1E1F7 0x86D0 +0x8EA1E1F8 0x86DE +0x8EA1E1F9 0x8857 +0x8EA1E1FA 0x88C1 +0x8EA1E1FB 0x88C2 +0x8EA1E1FC 0x88B1 +0x8EA1E1FD 0x8983 +0x8EA1E1FE 0x8996 +0x8EA1E2A1 0x8A3B +0x8EA1E2A2 0x8A60 +0x8EA1E2A3 0x8A55 +0x8EA1E2A4 0x8A5E +0x8EA1E2A5 0x8A3C +0x8EA1E2A6 0x8A41 +0x8EA1E2A7 0x8A54 +0x8EA1E2A8 0x8A5B +0x8EA1E2A9 0x8A50 +0x8EA1E2AA 0x8A46 +0x8EA1E2AB 0x8A34 +0x8EA1E2AC 0x8A3A +0x8EA1E2AD 0x8A36 +0x8EA1E2AE 0x8A56 +0x8EA1E2AF 0x8C61 +0x8EA1E2B0 0x8C82 +0x8EA1E2B1 0x8CAF +0x8EA1E2B2 0x8CBC +0x8EA1E2B3 0x8CB3 +0x8EA1E2B4 0x8CBD +0x8EA1E2B5 0x8CC1 +0x8EA1E2B6 0x8CBB +0x8EA1E2B7 0x8CC0 +0x8EA1E2B8 0x8CB4 +0x8EA1E2B9 0x8CB7 +0x8EA1E2BA 0x8CB6 +0x8EA1E2BB 0x8CBF +0x8EA1E2BC 0x8CB8 +0x8EA1E2BD 0x8D8A +0x8EA1E2BE 0x8D85 +0x8EA1E2BF 0x8D81 +0x8EA1E2C0 0x8DCE +0x8EA1E2C1 0x8DDD +0x8EA1E2C2 0x8DCB +0x8EA1E2C3 0x8DDA +0x8EA1E2C4 0x8DD1 +0x8EA1E2C5 0x8DCC +0x8EA1E2C6 0x8DDB +0x8EA1E2C7 0x8DC6 +0x8EA1E2C8 0x8EFB +0x8EA1E2C9 0x8EF8 +0x8EA1E2CA 0x8EFC +0x8EA1E2CB 0x8F9C +0x8EA1E2CC 0x902E +0x8EA1E2CD 0x9035 +0x8EA1E2CE 0x9031 +0x8EA1E2CF 0x9038 +0x8EA1E2D0 0x9032 +0x8EA1E2D1 0x9036 +0x8EA1E2D2 0x9102 +0x8EA1E2D3 0x90F5 +0x8EA1E2D4 0x9109 +0x8EA1E2D5 0x90FE +0x8EA1E2D6 0x9163 +0x8EA1E2D7 0x9165 +0x8EA1E2D8 0x91CF +0x8EA1E2D9 0x9214 +0x8EA1E2DA 0x9215 +0x8EA1E2DB 0x9223 +0x8EA1E2DC 0x9209 +0x8EA1E2DD 0x921E +0x8EA1E2DE 0x920D +0x8EA1E2DF 0x9210 +0x8EA1E2E0 0x9207 +0x8EA1E2E1 0x9211 +0x8EA1E2E2 0x9594 +0x8EA1E2E3 0x958F +0x8EA1E2E4 0x958B +0x8EA1E2E5 0x9591 +0x8EA1E2E6 0x9593 +0x8EA1E2E7 0x9592 +0x8EA1E2E8 0x958E +0x8EA1E2E9 0x968A +0x8EA1E2EA 0x968E +0x8EA1E2EB 0x968B +0x8EA1E2EC 0x967D +0x8EA1E2ED 0x9685 +0x8EA1E2EE 0x9686 +0x8EA1E2EF 0x968D +0x8EA1E2F0 0x9672 +0x8EA1E2F1 0x9684 +0x8EA1E2F2 0x96C1 +0x8EA1E2F3 0x96C5 +0x8EA1E2F4 0x96C4 +0x8EA1E2F5 0x96C6 +0x8EA1E2F6 0x96C7 +0x8EA1E2F7 0x96EF +0x8EA1E2F8 0x96F2 +0x8EA1E2F9 0x97CC +0x8EA1E2FA 0x9805 +0x8EA1E2FB 0x9806 +0x8EA1E2FC 0x9808 +0x8EA1E2FD 0x98E7 +0x8EA1E2FE 0x98EA +0x8EA1E3A1 0x98EF +0x8EA1E3A2 0x98E9 +0x8EA1E3A3 0x98F2 +0x8EA1E3A4 0x98ED +0x8EA1E3A5 0x99AE +0x8EA1E3A6 0x99AD +0x8EA1E3A7 0x9EC3 +0x8EA1E3A8 0x9ECD +0x8EA1E3A9 0x9ED1 +0x8EA1E3AA 0x4E82 +0x8EA1E3AB 0x50AD +0x8EA1E3AC 0x50B5 +0x8EA1E3AD 0x50B2 +0x8EA1E3AE 0x50B3 +0x8EA1E3AF 0x50C5 +0x8EA1E3B0 0x50BE +0x8EA1E3B1 0x50AC +0x8EA1E3B2 0x50B7 +0x8EA1E3B3 0x50BB +0x8EA1E3B4 0x50AF +0x8EA1E3B5 0x50C7 +0x8EA1E3B6 0x527F +0x8EA1E3B7 0x5277 +0x8EA1E3B8 0x527D +0x8EA1E3B9 0x52DF +0x8EA1E3BA 0x52E6 +0x8EA1E3BB 0x52E4 +0x8EA1E3BC 0x52E2 +0x8EA1E3BD 0x52E3 +0x8EA1E3BE 0x532F +0x8EA1E3BF 0x55DF +0x8EA1E3C0 0x55E8 +0x8EA1E3C1 0x55D3 +0x8EA1E3C2 0x55E6 +0x8EA1E3C3 0x55CE +0x8EA1E3C4 0x55DC +0x8EA1E3C5 0x55C7 +0x8EA1E3C6 0x55D1 +0x8EA1E3C7 0x55E3 +0x8EA1E3C8 0x55E4 +0x8EA1E3C9 0x55EF +0x8EA1E3CA 0x55DA +0x8EA1E3CB 0x55E1 +0x8EA1E3CC 0x55C5 +0x8EA1E3CD 0x55C6 +0x8EA1E3CE 0x55E5 +0x8EA1E3CF 0x55C9 +0x8EA1E3D0 0x5712 +0x8EA1E3D1 0x5713 +0x8EA1E3D2 0x585E +0x8EA1E3D3 0x5851 +0x8EA1E3D4 0x5858 +0x8EA1E3D5 0x5857 +0x8EA1E3D6 0x585A +0x8EA1E3D7 0x5854 +0x8EA1E3D8 0x586B +0x8EA1E3D9 0x584C +0x8EA1E3DA 0x586D +0x8EA1E3DB 0x584A +0x8EA1E3DC 0x5862 +0x8EA1E3DD 0x5852 +0x8EA1E3DE 0x584B +0x8EA1E3DF 0x5967 +0x8EA1E3E0 0x5AC1 +0x8EA1E3E1 0x5AC9 +0x8EA1E3E2 0x5ACC +0x8EA1E3E3 0x5ABE +0x8EA1E3E4 0x5ABD +0x8EA1E3E5 0x5ABC +0x8EA1E3E6 0x5AB3 +0x8EA1E3E7 0x5AC2 +0x8EA1E3E8 0x5AB2 +0x8EA1E3E9 0x5D69 +0x8EA1E3EA 0x5D6F +0x8EA1E3EB 0x5E4C +0x8EA1E3EC 0x5E79 +0x8EA1E3ED 0x5EC9 +0x8EA1E3EE 0x5EC8 +0x8EA1E3EF 0x5F12 +0x8EA1E3F0 0x5F59 +0x8EA1E3F1 0x5FAC +0x8EA1E3F2 0x5FAE +0x8EA1E3F3 0x611A +0x8EA1E3F4 0x610F +0x8EA1E3F5 0x6148 +0x8EA1E3F6 0x611F +0x8EA1E3F7 0x60F3 +0x8EA1E3F8 0x611B +0x8EA1E3F9 0x60F9 +0x8EA1E3FA 0x6101 +0x8EA1E3FB 0x6108 +0x8EA1E3FC 0x614E +0x8EA1E3FD 0x614C +0x8EA1E3FE 0x6144 +0x8EA1E4A1 0x614D +0x8EA1E4A2 0x613E +0x8EA1E4A3 0x6134 +0x8EA1E4A4 0x6127 +0x8EA1E4A5 0x610D +0x8EA1E4A6 0x6106 +0x8EA1E4A7 0x6137 +0x8EA1E4A8 0x6221 +0x8EA1E4A9 0x6222 +0x8EA1E4AA 0x6413 +0x8EA1E4AB 0x643E +0x8EA1E4AC 0x641E +0x8EA1E4AD 0x642A +0x8EA1E4AE 0x642D +0x8EA1E4AF 0x643D +0x8EA1E4B0 0x642C +0x8EA1E4B1 0x640F +0x8EA1E4B2 0x641C +0x8EA1E4B3 0x6414 +0x8EA1E4B4 0x640D +0x8EA1E4B5 0x6436 +0x8EA1E4B6 0x6416 +0x8EA1E4B7 0x6417 +0x8EA1E4B8 0x6406 +0x8EA1E4B9 0x656C +0x8EA1E4BA 0x659F +0x8EA1E4BB 0x65B0 +0x8EA1E4BC 0x6697 +0x8EA1E4BD 0x6689 +0x8EA1E4BE 0x6687 +0x8EA1E4BF 0x6688 +0x8EA1E4C0 0x6696 +0x8EA1E4C1 0x6684 +0x8EA1E4C2 0x6698 +0x8EA1E4C3 0x668D +0x8EA1E4C4 0x6703 +0x8EA1E4C5 0x6994 +0x8EA1E4C6 0x696D +0x8EA1E4C7 0x695A +0x8EA1E4C8 0x6977 +0x8EA1E4C9 0x6960 +0x8EA1E4CA 0x6954 +0x8EA1E4CB 0x6975 +0x8EA1E4CC 0x6930 +0x8EA1E4CD 0x6982 +0x8EA1E4CE 0x694A +0x8EA1E4CF 0x6968 +0x8EA1E4D0 0x696B +0x8EA1E4D1 0x695E +0x8EA1E4D2 0x6953 +0x8EA1E4D3 0x6979 +0x8EA1E4D4 0x6986 +0x8EA1E4D5 0x695D +0x8EA1E4D6 0x6963 +0x8EA1E4D7 0x695B +0x8EA1E4D8 0x6B47 +0x8EA1E4D9 0x6B72 +0x8EA1E4DA 0x6BC0 +0x8EA1E4DB 0x6BBF +0x8EA1E4DC 0x6BD3 +0x8EA1E4DD 0x6BFD +0x8EA1E4DE 0x6EA2 +0x8EA1E4DF 0x6EAF +0x8EA1E4E0 0x6ED3 +0x8EA1E4E1 0x6EB6 +0x8EA1E4E2 0x6EC2 +0x8EA1E4E3 0x6E90 +0x8EA1E4E4 0x6E9D +0x8EA1E4E5 0x6EC7 +0x8EA1E4E6 0x6EC5 +0x8EA1E4E7 0x6EA5 +0x8EA1E4E8 0x6E98 +0x8EA1E4E9 0x6EBC +0x8EA1E4EA 0x6EBA +0x8EA1E4EB 0x6EAB +0x8EA1E4EC 0x6ED1 +0x8EA1E4ED 0x6E96 +0x8EA1E4EE 0x6E9C +0x8EA1E4EF 0x6EC4 +0x8EA1E4F0 0x6ED4 +0x8EA1E4F1 0x6EAA +0x8EA1E4F2 0x6EA7 +0x8EA1E4F3 0x6EB4 +0x8EA1E4F4 0x714E +0x8EA1E4F5 0x7159 +0x8EA1E4F6 0x7169 +0x8EA1E4F7 0x7164 +0x8EA1E4F8 0x7149 +0x8EA1E4F9 0x7167 +0x8EA1E4FA 0x715C +0x8EA1E4FB 0x716C +0x8EA1E4FC 0x7166 +0x8EA1E4FD 0x714C +0x8EA1E4FE 0x7165 +0x8EA1E5A1 0x715E +0x8EA1E5A2 0x7146 +0x8EA1E5A3 0x7168 +0x8EA1E5A4 0x7156 +0x8EA1E5A5 0x723A +0x8EA1E5A6 0x7252 +0x8EA1E5A7 0x7337 +0x8EA1E5A8 0x7345 +0x8EA1E5A9 0x733F +0x8EA1E5AA 0x733E +0x8EA1E5AB 0x746F +0x8EA1E5AC 0x745A +0x8EA1E5AD 0x7455 +0x8EA1E5AE 0x745F +0x8EA1E5AF 0x745E +0x8EA1E5B0 0x7441 +0x8EA1E5B1 0x743F +0x8EA1E5B2 0x7459 +0x8EA1E5B3 0x745B +0x8EA1E5B4 0x745C +0x8EA1E5B5 0x7576 +0x8EA1E5B6 0x7578 +0x8EA1E5B7 0x7600 +0x8EA1E5B8 0x75F0 +0x8EA1E5B9 0x7601 +0x8EA1E5BA 0x75F2 +0x8EA1E5BB 0x75F1 +0x8EA1E5BC 0x75FA +0x8EA1E5BD 0x75FF +0x8EA1E5BE 0x75F4 +0x8EA1E5BF 0x75F3 +0x8EA1E5C0 0x76DE +0x8EA1E5C1 0x76DF +0x8EA1E5C2 0x775B +0x8EA1E5C3 0x776B +0x8EA1E5C4 0x7766 +0x8EA1E5C5 0x775E +0x8EA1E5C6 0x7763 +0x8EA1E5C7 0x7779 +0x8EA1E5C8 0x776A +0x8EA1E5C9 0x776C +0x8EA1E5CA 0x775C +0x8EA1E5CB 0x7765 +0x8EA1E5CC 0x7768 +0x8EA1E5CD 0x7762 +0x8EA1E5CE 0x77EE +0x8EA1E5CF 0x788E +0x8EA1E5D0 0x78B0 +0x8EA1E5D1 0x7897 +0x8EA1E5D2 0x7898 +0x8EA1E5D3 0x788C +0x8EA1E5D4 0x7889 +0x8EA1E5D5 0x787C +0x8EA1E5D6 0x7891 +0x8EA1E5D7 0x7893 +0x8EA1E5D8 0x787F +0x8EA1E5D9 0x797A +0x8EA1E5DA 0x797F +0x8EA1E5DB 0x7981 +0x8EA1E5DC 0x842C +0x8EA1E5DD 0x79BD +0x8EA1E5DE 0x7A1C +0x8EA1E5DF 0x7A1A +0x8EA1E5E0 0x7A20 +0x8EA1E5E1 0x7A14 +0x8EA1E5E2 0x7A1F +0x8EA1E5E3 0x7A1E +0x8EA1E5E4 0x7A9F +0x8EA1E5E5 0x7AA0 +0x8EA1E5E6 0x7B77 +0x8EA1E5E7 0x7BC0 +0x8EA1E5E8 0x7B60 +0x8EA1E5E9 0x7B6E +0x8EA1E5EA 0x7B67 +0x8EA1E5EB 0x7CB1 +0x8EA1E5EC 0x7CB3 +0x8EA1E5ED 0x7CB5 +0x8EA1E5EE 0x7D93 +0x8EA1E5EF 0x7D79 +0x8EA1E5F0 0x7D91 +0x8EA1E5F1 0x7D81 +0x8EA1E5F2 0x7D8F +0x8EA1E5F3 0x7D5B +0x8EA1E5F4 0x7F6E +0x8EA1E5F5 0x7F69 +0x8EA1E5F6 0x7F6A +0x8EA1E5F7 0x7F72 +0x8EA1E5F8 0x7FA9 +0x8EA1E5F9 0x7FA8 +0x8EA1E5FA 0x7FA4 +0x8EA1E5FB 0x8056 +0x8EA1E5FC 0x8058 +0x8EA1E5FD 0x8086 +0x8EA1E5FE 0x8084 +0x8EA1E6A1 0x8171 +0x8EA1E6A2 0x8170 +0x8EA1E6A3 0x8178 +0x8EA1E6A4 0x8165 +0x8EA1E6A5 0x816E +0x8EA1E6A6 0x8173 +0x8EA1E6A7 0x816B +0x8EA1E6A8 0x8179 +0x8EA1E6A9 0x817A +0x8EA1E6AA 0x8166 +0x8EA1E6AB 0x8205 +0x8EA1E6AC 0x8247 +0x8EA1E6AD 0x8482 +0x8EA1E6AE 0x8477 +0x8EA1E6AF 0x843D +0x8EA1E6B0 0x8431 +0x8EA1E6B1 0x8475 +0x8EA1E6B2 0x8466 +0x8EA1E6B3 0x846B +0x8EA1E6B4 0x8449 +0x8EA1E6B5 0x846C +0x8EA1E6B6 0x845B +0x8EA1E6B7 0x843C +0x8EA1E6B8 0x8435 +0x8EA1E6B9 0x8461 +0x8EA1E6BA 0x8463 +0x8EA1E6BB 0x8469 +0x8EA1E6BC 0x846D +0x8EA1E6BD 0x8446 +0x8EA1E6BE 0x865E +0x8EA1E6BF 0x865C +0x8EA1E6C0 0x865F +0x8EA1E6C1 0x86F9 +0x8EA1E6C2 0x8713 +0x8EA1E6C3 0x8708 +0x8EA1E6C4 0x8707 +0x8EA1E6C5 0x8700 +0x8EA1E6C6 0x86FE +0x8EA1E6C7 0x86FB +0x8EA1E6C8 0x8702 +0x8EA1E6C9 0x8703 +0x8EA1E6CA 0x8706 +0x8EA1E6CB 0x870A +0x8EA1E6CC 0x8859 +0x8EA1E6CD 0x88DF +0x8EA1E6CE 0x88D4 +0x8EA1E6CF 0x88D9 +0x8EA1E6D0 0x88DC +0x8EA1E6D1 0x88D8 +0x8EA1E6D2 0x88DD +0x8EA1E6D3 0x88E1 +0x8EA1E6D4 0x88CA +0x8EA1E6D5 0x88D5 +0x8EA1E6D6 0x88D2 +0x8EA1E6D7 0x899C +0x8EA1E6D8 0x89E3 +0x8EA1E6D9 0x8A6B +0x8EA1E6DA 0x8A72 +0x8EA1E6DB 0x8A73 +0x8EA1E6DC 0x8A66 +0x8EA1E6DD 0x8A69 +0x8EA1E6DE 0x8A70 +0x8EA1E6DF 0x8A87 +0x8EA1E6E0 0x8A7C +0x8EA1E6E1 0x8A63 +0x8EA1E6E2 0x8AA0 +0x8EA1E6E3 0x8A71 +0x8EA1E6E4 0x8A85 +0x8EA1E6E5 0x8A6D +0x8EA1E6E6 0x8A62 +0x8EA1E6E7 0x8A6E +0x8EA1E6E8 0x8A6C +0x8EA1E6E9 0x8A79 +0x8EA1E6EA 0x8A7B +0x8EA1E6EB 0x8A3E +0x8EA1E6EC 0x8A68 +0x8EA1E6ED 0x8C62 +0x8EA1E6EE 0x8C8A +0x8EA1E6EF 0x8C89 +0x8EA1E6F0 0x8CCA +0x8EA1E6F1 0x8CC7 +0x8EA1E6F2 0x8CC8 +0x8EA1E6F3 0x8CC4 +0x8EA1E6F4 0x8CB2 +0x8EA1E6F5 0x8CC3 +0x8EA1E6F6 0x8CC2 +0x8EA1E6F7 0x8CC5 +0x8EA1E6F8 0x8DE1 +0x8EA1E6F9 0x8DDF +0x8EA1E6FA 0x8DE8 +0x8EA1E6FB 0x8DEF +0x8EA1E6FC 0x8DF3 +0x8EA1E6FD 0x8DFA +0x8EA1E6FE 0x8DEA +0x8EA1E7A1 0x8DE4 +0x8EA1E7A2 0x8DE6 +0x8EA1E7A3 0x8EB2 +0x8EA1E7A4 0x8F03 +0x8EA1E7A5 0x8F09 +0x8EA1E7A6 0x8EFE +0x8EA1E7A7 0x8F0A +0x8EA1E7A8 0x8F9F +0x8EA1E7A9 0x8FB2 +0x8EA1E7AA 0x904B +0x8EA1E7AB 0x904A +0x8EA1E7AC 0x9053 +0x8EA1E7AD 0x9042 +0x8EA1E7AE 0x9054 +0x8EA1E7AF 0x903C +0x8EA1E7B0 0x9055 +0x8EA1E7B1 0x9050 +0x8EA1E7B2 0x9047 +0x8EA1E7B3 0x904F +0x8EA1E7B4 0x904E +0x8EA1E7B5 0x904D +0x8EA1E7B6 0x9051 +0x8EA1E7B7 0x903E +0x8EA1E7B8 0x9041 +0x8EA1E7B9 0x9112 +0x8EA1E7BA 0x9117 +0x8EA1E7BB 0x916C +0x8EA1E7BC 0x916A +0x8EA1E7BD 0x9169 +0x8EA1E7BE 0x91C9 +0x8EA1E7BF 0x9237 +0x8EA1E7C0 0x9257 +0x8EA1E7C1 0x9238 +0x8EA1E7C2 0x923D +0x8EA1E7C3 0x9240 +0x8EA1E7C4 0x923E +0x8EA1E7C5 0x925B +0x8EA1E7C6 0x924B +0x8EA1E7C7 0x9264 +0x8EA1E7C8 0x9251 +0x8EA1E7C9 0x9234 +0x8EA1E7CA 0x9249 +0x8EA1E7CB 0x924D +0x8EA1E7CC 0x9245 +0x8EA1E7CD 0x9239 +0x8EA1E7CE 0x923F +0x8EA1E7CF 0x925A +0x8EA1E7D0 0x9598 +0x8EA1E7D1 0x9698 +0x8EA1E7D2 0x9694 +0x8EA1E7D3 0x9695 +0x8EA1E7D4 0x96CD +0x8EA1E7D5 0x96CB +0x8EA1E7D6 0x96C9 +0x8EA1E7D7 0x96CA +0x8EA1E7D8 0x96F7 +0x8EA1E7D9 0x96FB +0x8EA1E7DA 0x96F9 +0x8EA1E7DB 0x96F6 +0x8EA1E7DC 0x9756 +0x8EA1E7DD 0x9774 +0x8EA1E7DE 0x9776 +0x8EA1E7DF 0x9810 +0x8EA1E7E0 0x9811 +0x8EA1E7E1 0x9813 +0x8EA1E7E2 0x980A +0x8EA1E7E3 0x9812 +0x8EA1E7E4 0x980C +0x8EA1E7E5 0x98FC +0x8EA1E7E6 0x98F4 +0x8EA1E7E7 0x98FD +0x8EA1E7E8 0x98FE +0x8EA1E7E9 0x99B3 +0x8EA1E7EA 0x99B1 +0x8EA1E7EB 0x99B4 +0x8EA1E7EC 0x9AE1 +0x8EA1E7ED 0x9CE9 +0x8EA1E7EE 0x9E82 +0x8EA1E7EF 0x9F0E +0x8EA1E7F0 0x9F13 +0x8EA1E7F1 0x9F20 +0x8EA1E7F2 0x50E7 +0x8EA1E7F3 0x50EE +0x8EA1E7F4 0x50E5 +0x8EA1E7F5 0x50D6 +0x8EA1E7F6 0x50ED +0x8EA1E7F7 0x50DA +0x8EA1E7F8 0x50D5 +0x8EA1E7F9 0x50CF +0x8EA1E7FA 0x50D1 +0x8EA1E7FB 0x50F1 +0x8EA1E7FC 0x50CE +0x8EA1E7FD 0x50E9 +0x8EA1E7FE 0x5162 +0x8EA1E8A1 0x51F3 +0x8EA1E8A2 0x5283 +0x8EA1E8A3 0x5282 +0x8EA1E8A4 0x5331 +0x8EA1E8A5 0x53AD +0x8EA1E8A6 0x55FE +0x8EA1E8A7 0x5600 +0x8EA1E8A8 0x561B +0x8EA1E8A9 0x5617 +0x8EA1E8AA 0x55FD +0x8EA1E8AB 0x5614 +0x8EA1E8AC 0x5606 +0x8EA1E8AD 0x5609 +0x8EA1E8AE 0x560D +0x8EA1E8AF 0x560E +0x8EA1E8B0 0x55F7 +0x8EA1E8B1 0x5616 +0x8EA1E8B2 0x561F +0x8EA1E8B3 0x5608 +0x8EA1E8B4 0x5610 +0x8EA1E8B5 0x55F6 +0x8EA1E8B6 0x5718 +0x8EA1E8B7 0x5716 +0x8EA1E8B8 0x5875 +0x8EA1E8B9 0x587E +0x8EA1E8BA 0x5883 +0x8EA1E8BB 0x5893 +0x8EA1E8BC 0x588A +0x8EA1E8BD 0x5879 +0x8EA1E8BE 0x5885 +0x8EA1E8BF 0x587D +0x8EA1E8C0 0x58FD +0x8EA1E8C1 0x5925 +0x8EA1E8C2 0x5922 +0x8EA1E8C3 0x5924 +0x8EA1E8C4 0x596A +0x8EA1E8C5 0x5969 +0x8EA1E8C6 0x5AE1 +0x8EA1E8C7 0x5AE6 +0x8EA1E8C8 0x5AE9 +0x8EA1E8C9 0x5AD7 +0x8EA1E8CA 0x5AD6 +0x8EA1E8CB 0x5AD8 +0x8EA1E8CC 0x5AE3 +0x8EA1E8CD 0x5B75 +0x8EA1E8CE 0x5BDE +0x8EA1E8CF 0x5BE7 +0x8EA1E8D0 0x5BE1 +0x8EA1E8D1 0x5BE5 +0x8EA1E8D2 0x5BE6 +0x8EA1E8D3 0x5BE8 +0x8EA1E8D4 0x5BE2 +0x8EA1E8D5 0x5BE4 +0x8EA1E8D6 0x5BDF +0x8EA1E8D7 0x5C0D +0x8EA1E8D8 0x5C62 +0x8EA1E8D9 0x5D84 +0x8EA1E8DA 0x5D87 +0x8EA1E8DB 0x5E5B +0x8EA1E8DC 0x5E63 +0x8EA1E8DD 0x5E55 +0x8EA1E8DE 0x5E57 +0x8EA1E8DF 0x5E54 +0x8EA1E8E0 0x5ED3 +0x8EA1E8E1 0x5ED6 +0x8EA1E8E2 0x5F0A +0x8EA1E8E3 0x5F46 +0x8EA1E8E4 0x5F70 +0x8EA1E8E5 0x5FB9 +0x8EA1E8E6 0x6147 +0x8EA1E8E7 0x613F +0x8EA1E8E8 0x614B +0x8EA1E8E9 0x6177 +0x8EA1E8EA 0x6162 +0x8EA1E8EB 0x6163 +0x8EA1E8EC 0x615F +0x8EA1E8ED 0x615A +0x8EA1E8EE 0x6158 +0x8EA1E8EF 0x6175 +0x8EA1E8F0 0x622A +0x8EA1E8F1 0x6487 +0x8EA1E8F2 0x6458 +0x8EA1E8F3 0x6454 +0x8EA1E8F4 0x64A4 +0x8EA1E8F5 0x6478 +0x8EA1E8F6 0x645F +0x8EA1E8F7 0x647A +0x8EA1E8F8 0x6451 +0x8EA1E8F9 0x6467 +0x8EA1E8FA 0x6434 +0x8EA1E8FB 0x646D +0x8EA1E8FC 0x647B +0x8EA1E8FD 0x6572 +0x8EA1E8FE 0x65A1 +0x8EA1E9A1 0x65D7 +0x8EA1E9A2 0x65D6 +0x8EA1E9A3 0x66A2 +0x8EA1E9A4 0x66A8 +0x8EA1E9A5 0x669D +0x8EA1E9A6 0x699C +0x8EA1E9A7 0x69A8 +0x8EA1E9A8 0x6995 +0x8EA1E9A9 0x69C1 +0x8EA1E9AA 0x69AE +0x8EA1E9AB 0x69D3 +0x8EA1E9AC 0x69CB +0x8EA1E9AD 0x699B +0x8EA1E9AE 0x69B7 +0x8EA1E9AF 0x69BB +0x8EA1E9B0 0x69AB +0x8EA1E9B1 0x69B4 +0x8EA1E9B2 0x69D0 +0x8EA1E9B3 0x69CD +0x8EA1E9B4 0x69AD +0x8EA1E9B5 0x69CC +0x8EA1E9B6 0x69A6 +0x8EA1E9B7 0x69C3 +0x8EA1E9B8 0x69A3 +0x8EA1E9B9 0x6B49 +0x8EA1E9BA 0x6B4C +0x8EA1E9BB 0x6C33 +0x8EA1E9BC 0x6F33 +0x8EA1E9BD 0x6F14 +0x8EA1E9BE 0x6EFE +0x8EA1E9BF 0x6F13 +0x8EA1E9C0 0x6EF4 +0x8EA1E9C1 0x6F29 +0x8EA1E9C2 0x6F3E +0x8EA1E9C3 0x6F20 +0x8EA1E9C4 0x6F2C +0x8EA1E9C5 0x6F0F +0x8EA1E9C6 0x6F02 +0x8EA1E9C7 0x6F22 +0x8EA1E9C8 0x6EFF +0x8EA1E9C9 0x6EEF +0x8EA1E9CA 0x6F06 +0x8EA1E9CB 0x6F31 +0x8EA1E9CC 0x6F38 +0x8EA1E9CD 0x6F32 +0x8EA1E9CE 0x6F23 +0x8EA1E9CF 0x6F15 +0x8EA1E9D0 0x6F2B +0x8EA1E9D1 0x6F2F +0x8EA1E9D2 0x6F88 +0x8EA1E9D3 0x6F2A +0x8EA1E9D4 0x6EEC +0x8EA1E9D5 0x6F01 +0x8EA1E9D6 0x6EF2 +0x8EA1E9D7 0x6ECC +0x8EA1E9D8 0x6EF7 +0x8EA1E9D9 0x7194 +0x8EA1E9DA 0x7199 +0x8EA1E9DB 0x717D +0x8EA1E9DC 0x718A +0x8EA1E9DD 0x7184 +0x8EA1E9DE 0x7192 +0x8EA1E9DF 0x723E +0x8EA1E9E0 0x7292 +0x8EA1E9E1 0x7296 +0x8EA1E9E2 0x7344 +0x8EA1E9E3 0x7350 +0x8EA1E9E4 0x7464 +0x8EA1E9E5 0x7463 +0x8EA1E9E6 0x746A +0x8EA1E9E7 0x7470 +0x8EA1E9E8 0x746D +0x8EA1E9E9 0x7504 +0x8EA1E9EA 0x7591 +0x8EA1E9EB 0x7627 +0x8EA1E9EC 0x760D +0x8EA1E9ED 0x760B +0x8EA1E9EE 0x7609 +0x8EA1E9EF 0x7613 +0x8EA1E9F0 0x76E1 +0x8EA1E9F1 0x76E3 +0x8EA1E9F2 0x7784 +0x8EA1E9F3 0x777D +0x8EA1E9F4 0x777F +0x8EA1E9F5 0x7761 +0x8EA1E9F6 0x78C1 +0x8EA1E9F7 0x789F +0x8EA1E9F8 0x78A7 +0x8EA1E9F9 0x78B3 +0x8EA1E9FA 0x78A9 +0x8EA1E9FB 0x78A3 +0x8EA1E9FC 0x798E +0x8EA1E9FD 0x798F +0x8EA1E9FE 0x798D +0x8EA1EAA1 0x7A2E +0x8EA1EAA2 0x7A31 +0x8EA1EAA3 0x7AAA +0x8EA1EAA4 0x7AA9 +0x8EA1EAA5 0x7AED +0x8EA1EAA6 0x7AEF +0x8EA1EAA7 0x7BA1 +0x8EA1EAA8 0x7B95 +0x8EA1EAA9 0x7B8B +0x8EA1EAAA 0x7B75 +0x8EA1EAAB 0x7B97 +0x8EA1EAAC 0x7B9D +0x8EA1EAAD 0x7B94 +0x8EA1EAAE 0x7B8F +0x8EA1EAAF 0x7BB8 +0x8EA1EAB0 0x7B87 +0x8EA1EAB1 0x7B84 +0x8EA1EAB2 0x7CB9 +0x8EA1EAB3 0x7CBD +0x8EA1EAB4 0x7CBE +0x8EA1EAB5 0x7DBB +0x8EA1EAB6 0x7DB0 +0x8EA1EAB7 0x7D9C +0x8EA1EAB8 0x7DBD +0x8EA1EAB9 0x7DBE +0x8EA1EABA 0x7DA0 +0x8EA1EABB 0x7DCA +0x8EA1EABC 0x7DB4 +0x8EA1EABD 0x7DB2 +0x8EA1EABE 0x7DB1 +0x8EA1EABF 0x7DBA +0x8EA1EAC0 0x7DA2 +0x8EA1EAC1 0x7DBF +0x8EA1EAC2 0x7DB5 +0x8EA1EAC3 0x7DB8 +0x8EA1EAC4 0x7DAD +0x8EA1EAC5 0x7DD2 +0x8EA1EAC6 0x7DC7 +0x8EA1EAC7 0x7DAC +0x8EA1EAC8 0x7F70 +0x8EA1EAC9 0x7FE0 +0x8EA1EACA 0x7FE1 +0x8EA1EACB 0x7FDF +0x8EA1EACC 0x805E +0x8EA1EACD 0x805A +0x8EA1EACE 0x8087 +0x8EA1EACF 0x8150 +0x8EA1EAD0 0x8180 +0x8EA1EAD1 0x818F +0x8EA1EAD2 0x8188 +0x8EA1EAD3 0x818A +0x8EA1EAD4 0x817F +0x8EA1EAD5 0x8182 +0x8EA1EAD6 0x81E7 +0x8EA1EAD7 0x81FA +0x8EA1EAD8 0x8207 +0x8EA1EAD9 0x8214 +0x8EA1EADA 0x821E +0x8EA1EADB 0x824B +0x8EA1EADC 0x84C9 +0x8EA1EADD 0x84BF +0x8EA1EADE 0x84C6 +0x8EA1EADF 0x84C4 +0x8EA1EAE0 0x8499 +0x8EA1EAE1 0x849E +0x8EA1EAE2 0x84B2 +0x8EA1EAE3 0x849C +0x8EA1EAE4 0x84CB +0x8EA1EAE5 0x84B8 +0x8EA1EAE6 0x84C0 +0x8EA1EAE7 0x84D3 +0x8EA1EAE8 0x8490 +0x8EA1EAE9 0x84BC +0x8EA1EAEA 0x84D1 +0x8EA1EAEB 0x84CA +0x8EA1EAEC 0x873F +0x8EA1EAED 0x871C +0x8EA1EAEE 0x873B +0x8EA1EAEF 0x8722 +0x8EA1EAF0 0x8725 +0x8EA1EAF1 0x8734 +0x8EA1EAF2 0x8718 +0x8EA1EAF3 0x8755 +0x8EA1EAF4 0x8737 +0x8EA1EAF5 0x8729 +0x8EA1EAF6 0x88F3 +0x8EA1EAF7 0x8902 +0x8EA1EAF8 0x88F4 +0x8EA1EAF9 0x88F9 +0x8EA1EAFA 0x88F8 +0x8EA1EAFB 0x88FD +0x8EA1EAFC 0x88E8 +0x8EA1EAFD 0x891A +0x8EA1EAFE 0x88EF +0x8EA1EBA1 0x8AA6 +0x8EA1EBA2 0x8A8C +0x8EA1EBA3 0x8A9E +0x8EA1EBA4 0x8AA3 +0x8EA1EBA5 0x8A8D +0x8EA1EBA6 0x8AA1 +0x8EA1EBA7 0x8A93 +0x8EA1EBA8 0x8AA4 +0x8EA1EBA9 0x8AAA +0x8EA1EBAA 0x8AA5 +0x8EA1EBAB 0x8AA8 +0x8EA1EBAC 0x8A98 +0x8EA1EBAD 0x8A91 +0x8EA1EBAE 0x8A9A +0x8EA1EBAF 0x8AA7 +0x8EA1EBB0 0x8C6A +0x8EA1EBB1 0x8C8D +0x8EA1EBB2 0x8C8C +0x8EA1EBB3 0x8CD3 +0x8EA1EBB4 0x8CD1 +0x8EA1EBB5 0x8CD2 +0x8EA1EBB6 0x8D6B +0x8EA1EBB7 0x8D99 +0x8EA1EBB8 0x8D95 +0x8EA1EBB9 0x8DFC +0x8EA1EBBA 0x8F14 +0x8EA1EBBB 0x8F12 +0x8EA1EBBC 0x8F15 +0x8EA1EBBD 0x8F13 +0x8EA1EBBE 0x8FA3 +0x8EA1EBBF 0x9060 +0x8EA1EBC0 0x9058 +0x8EA1EBC1 0x905C +0x8EA1EBC2 0x9063 +0x8EA1EBC3 0x9059 +0x8EA1EBC4 0x905E +0x8EA1EBC5 0x9062 +0x8EA1EBC6 0x905D +0x8EA1EBC7 0x905B +0x8EA1EBC8 0x9119 +0x8EA1EBC9 0x9118 +0x8EA1EBCA 0x911E +0x8EA1EBCB 0x9175 +0x8EA1EBCC 0x9178 +0x8EA1EBCD 0x9177 +0x8EA1EBCE 0x9174 +0x8EA1EBCF 0x9278 +0x8EA1EBD0 0x92AC +0x8EA1EBD1 0x9280 +0x8EA1EBD2 0x9285 +0x8EA1EBD3 0x9298 +0x8EA1EBD4 0x9296 +0x8EA1EBD5 0x927B +0x8EA1EBD6 0x9293 +0x8EA1EBD7 0x929C +0x8EA1EBD8 0x92A8 +0x8EA1EBD9 0x927C +0x8EA1EBDA 0x9291 +0x8EA1EBDB 0x95A1 +0x8EA1EBDC 0x95A8 +0x8EA1EBDD 0x95A9 +0x8EA1EBDE 0x95A3 +0x8EA1EBDF 0x95A5 +0x8EA1EBE0 0x95A4 +0x8EA1EBE1 0x9699 +0x8EA1EBE2 0x969C +0x8EA1EBE3 0x969B +0x8EA1EBE4 0x96CC +0x8EA1EBE5 0x96D2 +0x8EA1EBE6 0x9700 +0x8EA1EBE7 0x977C +0x8EA1EBE8 0x9785 +0x8EA1EBE9 0x97F6 +0x8EA1EBEA 0x9817 +0x8EA1EBEB 0x9818 +0x8EA1EBEC 0x98AF +0x8EA1EBED 0x98B1 +0x8EA1EBEE 0x9903 +0x8EA1EBEF 0x9905 +0x8EA1EBF0 0x990C +0x8EA1EBF1 0x9909 +0x8EA1EBF2 0x99C1 +0x8EA1EBF3 0x9AAF +0x8EA1EBF4 0x9AB0 +0x8EA1EBF5 0x9AE6 +0x8EA1EBF6 0x9B41 +0x8EA1EBF7 0x9B42 +0x8EA1EBF8 0x9CF4 +0x8EA1EBF9 0x9CF6 +0x8EA1EBFA 0x9CF3 +0x8EA1EBFB 0x9EBC +0x8EA1EBFC 0x9F3B +0x8EA1EBFD 0x9F4A +0x8EA1EBFE 0x5104 +0x8EA1ECA1 0x5100 +0x8EA1ECA2 0x50FB +0x8EA1ECA3 0x50F5 +0x8EA1ECA4 0x50F9 +0x8EA1ECA5 0x5102 +0x8EA1ECA6 0x5108 +0x8EA1ECA7 0x5109 +0x8EA1ECA8 0x5105 +0x8EA1ECA9 0x51DC +0x8EA1ECAA 0x5287 +0x8EA1ECAB 0x5288 +0x8EA1ECAC 0x5289 +0x8EA1ECAD 0x528D +0x8EA1ECAE 0x528A +0x8EA1ECAF 0x52F0 +0x8EA1ECB0 0x53B2 +0x8EA1ECB1 0x562E +0x8EA1ECB2 0x563B +0x8EA1ECB3 0x5639 +0x8EA1ECB4 0x5632 +0x8EA1ECB5 0x563F +0x8EA1ECB6 0x5634 +0x8EA1ECB7 0x5629 +0x8EA1ECB8 0x5653 +0x8EA1ECB9 0x564E +0x8EA1ECBA 0x5657 +0x8EA1ECBB 0x5674 +0x8EA1ECBC 0x5636 +0x8EA1ECBD 0x562F +0x8EA1ECBE 0x5630 +0x8EA1ECBF 0x5880 +0x8EA1ECC0 0x589F +0x8EA1ECC1 0x589E +0x8EA1ECC2 0x58B3 +0x8EA1ECC3 0x589C +0x8EA1ECC4 0x58AE +0x8EA1ECC5 0x58A9 +0x8EA1ECC6 0x58A6 +0x8EA1ECC7 0x596D +0x8EA1ECC8 0x5B09 +0x8EA1ECC9 0x5AFB +0x8EA1ECCA 0x5B0B +0x8EA1ECCB 0x5AF5 +0x8EA1ECCC 0x5B0C +0x8EA1ECCD 0x5B08 +0x8EA1ECCE 0x5BEE +0x8EA1ECCF 0x5BEC +0x8EA1ECD0 0x5BE9 +0x8EA1ECD1 0x5BEB +0x8EA1ECD2 0x5C64 +0x8EA1ECD3 0x5C65 +0x8EA1ECD4 0x5D9D +0x8EA1ECD5 0x5D94 +0x8EA1ECD6 0x5E62 +0x8EA1ECD7 0x5E5F +0x8EA1ECD8 0x5E61 +0x8EA1ECD9 0x5EE2 +0x8EA1ECDA 0x5EDA +0x8EA1ECDB 0x5EDF +0x8EA1ECDC 0x5EDD +0x8EA1ECDD 0x5EE3 +0x8EA1ECDE 0x5EE0 +0x8EA1ECDF 0x5F48 +0x8EA1ECE0 0x5F71 +0x8EA1ECE1 0x5FB7 +0x8EA1ECE2 0x5FB5 +0x8EA1ECE3 0x6176 +0x8EA1ECE4 0x6167 +0x8EA1ECE5 0x616E +0x8EA1ECE6 0x615D +0x8EA1ECE7 0x6155 +0x8EA1ECE8 0x6182 +0x8EA1ECE9 0x617C +0x8EA1ECEA 0x6170 +0x8EA1ECEB 0x616B +0x8EA1ECEC 0x617E +0x8EA1ECED 0x61A7 +0x8EA1ECEE 0x6190 +0x8EA1ECEF 0x61AB +0x8EA1ECF0 0x618E +0x8EA1ECF1 0x61AC +0x8EA1ECF2 0x619A +0x8EA1ECF3 0x61A4 +0x8EA1ECF4 0x6194 +0x8EA1ECF5 0x61AE +0x8EA1ECF6 0x622E +0x8EA1ECF7 0x6469 +0x8EA1ECF8 0x646F +0x8EA1ECF9 0x6479 +0x8EA1ECFA 0x649E +0x8EA1ECFB 0x64B2 +0x8EA1ECFC 0x6488 +0x8EA1ECFD 0x6490 +0x8EA1ECFE 0x64B0 +0x8EA1EDA1 0x64A5 +0x8EA1EDA2 0x6493 +0x8EA1EDA3 0x6495 +0x8EA1EDA4 0x64A9 +0x8EA1EDA5 0x6492 +0x8EA1EDA6 0x64AE +0x8EA1EDA7 0x64AD +0x8EA1EDA8 0x64AB +0x8EA1EDA9 0x649A +0x8EA1EDAA 0x64AC +0x8EA1EDAB 0x6499 +0x8EA1EDAC 0x64A2 +0x8EA1EDAD 0x64B3 +0x8EA1EDAE 0x6575 +0x8EA1EDAF 0x6577 +0x8EA1EDB0 0x6578 +0x8EA1EDB1 0x66AE +0x8EA1EDB2 0x66AB +0x8EA1EDB3 0x66B4 +0x8EA1EDB4 0x66B1 +0x8EA1EDB5 0x6A23 +0x8EA1EDB6 0x6A1F +0x8EA1EDB7 0x69E8 +0x8EA1EDB8 0x6A01 +0x8EA1EDB9 0x6A1E +0x8EA1EDBA 0x6A19 +0x8EA1EDBB 0x69FD +0x8EA1EDBC 0x6A21 +0x8EA1EDBD 0x6A13 +0x8EA1EDBE 0x6A0A +0x8EA1EDBF 0x69F3 +0x8EA1EDC0 0x6A02 +0x8EA1EDC1 0x6A05 +0x8EA1EDC2 0x69ED +0x8EA1EDC3 0x6A11 +0x8EA1EDC4 0x6B50 +0x8EA1EDC5 0x6B4E +0x8EA1EDC6 0x6BA4 +0x8EA1EDC7 0x6BC5 +0x8EA1EDC8 0x6BC6 +0x8EA1EDC9 0x6F3F +0x8EA1EDCA 0x6F7C +0x8EA1EDCB 0x6F84 +0x8EA1EDCC 0x6F51 +0x8EA1EDCD 0x6F66 +0x8EA1EDCE 0x6F54 +0x8EA1EDCF 0x6F86 +0x8EA1EDD0 0x6F6D +0x8EA1EDD1 0x6F5B +0x8EA1EDD2 0x6F78 +0x8EA1EDD3 0x6F6E +0x8EA1EDD4 0x6F8E +0x8EA1EDD5 0x6F7A +0x8EA1EDD6 0x6F70 +0x8EA1EDD7 0x6F64 +0x8EA1EDD8 0x6F97 +0x8EA1EDD9 0x6F58 +0x8EA1EDDA 0x6ED5 +0x8EA1EDDB 0x6F6F +0x8EA1EDDC 0x6F60 +0x8EA1EDDD 0x6F5F +0x8EA1EDDE 0x719F +0x8EA1EDDF 0x71AC +0x8EA1EDE0 0x71B1 +0x8EA1EDE1 0x71A8 +0x8EA1EDE2 0x7256 +0x8EA1EDE3 0x729B +0x8EA1EDE4 0x734E +0x8EA1EDE5 0x7357 +0x8EA1EDE6 0x7469 +0x8EA1EDE7 0x748B +0x8EA1EDE8 0x7483 +0x8EA1EDE9 0x747E +0x8EA1EDEA 0x7480 +0x8EA1EDEB 0x757F +0x8EA1EDEC 0x7620 +0x8EA1EDED 0x7629 +0x8EA1EDEE 0x761F +0x8EA1EDEF 0x7624 +0x8EA1EDF0 0x7626 +0x8EA1EDF1 0x7621 +0x8EA1EDF2 0x7622 +0x8EA1EDF3 0x769A +0x8EA1EDF4 0x76BA +0x8EA1EDF5 0x76E4 +0x8EA1EDF6 0x778E +0x8EA1EDF7 0x7787 +0x8EA1EDF8 0x778C +0x8EA1EDF9 0x7791 +0x8EA1EDFA 0x778B +0x8EA1EDFB 0x78CB +0x8EA1EDFC 0x78C5 +0x8EA1EDFD 0x78BA +0x8EA1EDFE 0x78CA +0x8EA1EEA1 0x78BE +0x8EA1EEA2 0x78D5 +0x8EA1EEA3 0x78BC +0x8EA1EEA4 0x78D0 +0x8EA1EEA5 0x7A3F +0x8EA1EEA6 0x7A3C +0x8EA1EEA7 0x7A40 +0x8EA1EEA8 0x7A3D +0x8EA1EEA9 0x7A37 +0x8EA1EEAA 0x7A3B +0x8EA1EEAB 0x7AAF +0x8EA1EEAC 0x7AAE +0x8EA1EEAD 0x7BAD +0x8EA1EEAE 0x7BB1 +0x8EA1EEAF 0x7BC4 +0x8EA1EEB0 0x7BB4 +0x8EA1EEB1 0x7BC6 +0x8EA1EEB2 0x7BC7 +0x8EA1EEB3 0x7BC1 +0x8EA1EEB4 0x7BA0 +0x8EA1EEB5 0x7BCC +0x8EA1EEB6 0x7CCA +0x8EA1EEB7 0x7DE0 +0x8EA1EEB8 0x7DF4 +0x8EA1EEB9 0x7DEF +0x8EA1EEBA 0x7DFB +0x8EA1EEBB 0x7DD8 +0x8EA1EEBC 0x7DEC +0x8EA1EEBD 0x7DDD +0x8EA1EEBE 0x7DE8 +0x8EA1EEBF 0x7DE3 +0x8EA1EEC0 0x7DDA +0x8EA1EEC1 0x7DDE +0x8EA1EEC2 0x7DE9 +0x8EA1EEC3 0x7D9E +0x8EA1EEC4 0x7DD9 +0x8EA1EEC5 0x7DF2 +0x8EA1EEC6 0x7DF9 +0x8EA1EEC7 0x7F75 +0x8EA1EEC8 0x7F77 +0x8EA1EEC9 0x7FAF +0x8EA1EECA 0x7FE9 +0x8EA1EECB 0x8026 +0x8EA1EECC 0x819B +0x8EA1EECD 0x819C +0x8EA1EECE 0x819D +0x8EA1EECF 0x81A0 +0x8EA1EED0 0x819A +0x8EA1EED1 0x8198 +0x8EA1EED2 0x8517 +0x8EA1EED3 0x853D +0x8EA1EED4 0x851A +0x8EA1EED5 0x84EE +0x8EA1EED6 0x852C +0x8EA1EED7 0x852D +0x8EA1EED8 0x8513 +0x8EA1EED9 0x8511 +0x8EA1EEDA 0x8523 +0x8EA1EEDB 0x8521 +0x8EA1EEDC 0x8514 +0x8EA1EEDD 0x84EC +0x8EA1EEDE 0x8525 +0x8EA1EEDF 0x84FF +0x8EA1EEE0 0x8506 +0x8EA1EEE1 0x8782 +0x8EA1EEE2 0x8774 +0x8EA1EEE3 0x8776 +0x8EA1EEE4 0x8760 +0x8EA1EEE5 0x8766 +0x8EA1EEE6 0x8778 +0x8EA1EEE7 0x8768 +0x8EA1EEE8 0x8759 +0x8EA1EEE9 0x8757 +0x8EA1EEEA 0x874C +0x8EA1EEEB 0x8753 +0x8EA1EEEC 0x885B +0x8EA1EEED 0x885D +0x8EA1EEEE 0x8910 +0x8EA1EEEF 0x8907 +0x8EA1EEF0 0x8912 +0x8EA1EEF1 0x8913 +0x8EA1EEF2 0x8915 +0x8EA1EEF3 0x890A +0x8EA1EEF4 0x8ABC +0x8EA1EEF5 0x8AD2 +0x8EA1EEF6 0x8AC7 +0x8EA1EEF7 0x8AC4 +0x8EA1EEF8 0x8A95 +0x8EA1EEF9 0x8ACB +0x8EA1EEFA 0x8AF8 +0x8EA1EEFB 0x8AB2 +0x8EA1EEFC 0x8AC9 +0x8EA1EEFD 0x8AC2 +0x8EA1EEFE 0x8ABF +0x8EA1EFA1 0x8AB0 +0x8EA1EFA2 0x8AD6 +0x8EA1EFA3 0x8ACD +0x8EA1EFA4 0x8AB6 +0x8EA1EFA5 0x8AB9 +0x8EA1EFA6 0x8ADB +0x8EA1EFA7 0x8C4C +0x8EA1EFA8 0x8C4E +0x8EA1EFA9 0x8C6C +0x8EA1EFAA 0x8CE0 +0x8EA1EFAB 0x8CDE +0x8EA1EFAC 0x8CE6 +0x8EA1EFAD 0x8CE4 +0x8EA1EFAE 0x8CEC +0x8EA1EFAF 0x8CED +0x8EA1EFB0 0x8CE2 +0x8EA1EFB1 0x8CE3 +0x8EA1EFB2 0x8CDC +0x8EA1EFB3 0x8CEA +0x8EA1EFB4 0x8CE1 +0x8EA1EFB5 0x8D6D +0x8EA1EFB6 0x8D9F +0x8EA1EFB7 0x8DA3 +0x8EA1EFB8 0x8E2B +0x8EA1EFB9 0x8E10 +0x8EA1EFBA 0x8E1D +0x8EA1EFBB 0x8E22 +0x8EA1EFBC 0x8E0F +0x8EA1EFBD 0x8E29 +0x8EA1EFBE 0x8E1F +0x8EA1EFBF 0x8E21 +0x8EA1EFC0 0x8E1E +0x8EA1EFC1 0x8EBA +0x8EA1EFC2 0x8F1D +0x8EA1EFC3 0x8F1B +0x8EA1EFC4 0x8F1F +0x8EA1EFC5 0x8F29 +0x8EA1EFC6 0x8F26 +0x8EA1EFC7 0x8F2A +0x8EA1EFC8 0x8F1C +0x8EA1EFC9 0x8F1E +0x8EA1EFCA 0x8F25 +0x8EA1EFCB 0x9069 +0x8EA1EFCC 0x906E +0x8EA1EFCD 0x9068 +0x8EA1EFCE 0x906D +0x8EA1EFCF 0x9077 +0x8EA1EFD0 0x9130 +0x8EA1EFD1 0x912D +0x8EA1EFD2 0x9127 +0x8EA1EFD3 0x9131 +0x8EA1EFD4 0x9187 +0x8EA1EFD5 0x9189 +0x8EA1EFD6 0x918B +0x8EA1EFD7 0x9183 +0x8EA1EFD8 0x92C5 +0x8EA1EFD9 0x92BB +0x8EA1EFDA 0x92B7 +0x8EA1EFDB 0x92EA +0x8EA1EFDC 0x92E4 +0x8EA1EFDD 0x92C1 +0x8EA1EFDE 0x92B3 +0x8EA1EFDF 0x92BC +0x8EA1EFE0 0x92D2 +0x8EA1EFE1 0x92C7 +0x8EA1EFE2 0x92F0 +0x8EA1EFE3 0x92B2 +0x8EA1EFE4 0x95AD +0x8EA1EFE5 0x95B1 +0x8EA1EFE6 0x9704 +0x8EA1EFE7 0x9706 +0x8EA1EFE8 0x9707 +0x8EA1EFE9 0x9709 +0x8EA1EFEA 0x9760 +0x8EA1EFEB 0x978D +0x8EA1EFEC 0x978B +0x8EA1EFED 0x978F +0x8EA1EFEE 0x9821 +0x8EA1EFEF 0x982B +0x8EA1EFF0 0x981C +0x8EA1EFF1 0x98B3 +0x8EA1EFF2 0x990A +0x8EA1EFF3 0x9913 +0x8EA1EFF4 0x9912 +0x8EA1EFF5 0x9918 +0x8EA1EFF6 0x99DD +0x8EA1EFF7 0x99D0 +0x8EA1EFF8 0x99DF +0x8EA1EFF9 0x99DB +0x8EA1EFFA 0x99D1 +0x8EA1EFFB 0x99D5 +0x8EA1EFFC 0x99D2 +0x8EA1EFFD 0x99D9 +0x8EA1EFFE 0x9AB7 +0x8EA1F0A1 0x9AEE +0x8EA1F0A2 0x9AEF +0x8EA1F0A3 0x9B27 +0x8EA1F0A4 0x9B45 +0x8EA1F0A5 0x9B44 +0x8EA1F0A6 0x9B77 +0x8EA1F0A7 0x9B6F +0x8EA1F0A8 0x9D06 +0x8EA1F0A9 0x9D09 +0x8EA1F0AA 0x9D03 +0x8EA1F0AB 0x9EA9 +0x8EA1F0AC 0x9EBE +0x8EA1F0AD 0x9ECE +0x8EA1F0AE 0x58A8 +0x8EA1F0AF 0x9F52 +0x8EA1F0B0 0x5112 +0x8EA1F0B1 0x5118 +0x8EA1F0B2 0x5114 +0x8EA1F0B3 0x5110 +0x8EA1F0B4 0x5115 +0x8EA1F0B5 0x5180 +0x8EA1F0B6 0x51AA +0x8EA1F0B7 0x51DD +0x8EA1F0B8 0x5291 +0x8EA1F0B9 0x5293 +0x8EA1F0BA 0x52F3 +0x8EA1F0BB 0x5659 +0x8EA1F0BC 0x566B +0x8EA1F0BD 0x5679 +0x8EA1F0BE 0x5669 +0x8EA1F0BF 0x5664 +0x8EA1F0C0 0x5678 +0x8EA1F0C1 0x566A +0x8EA1F0C2 0x5668 +0x8EA1F0C3 0x5665 +0x8EA1F0C4 0x5671 +0x8EA1F0C5 0x566F +0x8EA1F0C6 0x566C +0x8EA1F0C7 0x5662 +0x8EA1F0C8 0x5676 +0x8EA1F0C9 0x58C1 +0x8EA1F0CA 0x58BE +0x8EA1F0CB 0x58C7 +0x8EA1F0CC 0x58C5 +0x8EA1F0CD 0x596E +0x8EA1F0CE 0x5B1D +0x8EA1F0CF 0x5B34 +0x8EA1F0D0 0x5B78 +0x8EA1F0D1 0x5BF0 +0x8EA1F0D2 0x5C0E +0x8EA1F0D3 0x5F4A +0x8EA1F0D4 0x61B2 +0x8EA1F0D5 0x6191 +0x8EA1F0D6 0x61A9 +0x8EA1F0D7 0x618A +0x8EA1F0D8 0x61CD +0x8EA1F0D9 0x61B6 +0x8EA1F0DA 0x61BE +0x8EA1F0DB 0x61CA +0x8EA1F0DC 0x61C8 +0x8EA1F0DD 0x6230 +0x8EA1F0DE 0x64C5 +0x8EA1F0DF 0x64C1 +0x8EA1F0E0 0x64CB +0x8EA1F0E1 0x64BB +0x8EA1F0E2 0x64BC +0x8EA1F0E3 0x64DA +0x8EA1F0E4 0x64C4 +0x8EA1F0E5 0x64C7 +0x8EA1F0E6 0x64C2 +0x8EA1F0E7 0x64CD +0x8EA1F0E8 0x64BF +0x8EA1F0E9 0x64D2 +0x8EA1F0EA 0x64D4 +0x8EA1F0EB 0x64BE +0x8EA1F0EC 0x6574 +0x8EA1F0ED 0x66C6 +0x8EA1F0EE 0x66C9 +0x8EA1F0EF 0x66B9 +0x8EA1F0F0 0x66C4 +0x8EA1F0F1 0x66C7 +0x8EA1F0F2 0x66B8 +0x8EA1F0F3 0x6A3D +0x8EA1F0F4 0x6A38 +0x8EA1F0F5 0x6A3A +0x8EA1F0F6 0x6A59 +0x8EA1F0F7 0x6A6B +0x8EA1F0F8 0x6A58 +0x8EA1F0F9 0x6A39 +0x8EA1F0FA 0x6A44 +0x8EA1F0FB 0x6A62 +0x8EA1F0FC 0x6A61 +0x8EA1F0FD 0x6A4B +0x8EA1F0FE 0x6A47 +0x8EA1F1A1 0x6A35 +0x8EA1F1A2 0x6A5F +0x8EA1F1A3 0x6A48 +0x8EA1F1A4 0x6B59 +0x8EA1F1A5 0x6B77 +0x8EA1F1A6 0x6C05 +0x8EA1F1A7 0x6FC2 +0x8EA1F1A8 0x6FB1 +0x8EA1F1A9 0x6FA1 +0x8EA1F1AA 0x6FC3 +0x8EA1F1AB 0x6FA4 +0x8EA1F1AC 0x6FC1 +0x8EA1F1AD 0x6FA7 +0x8EA1F1AE 0x6FB3 +0x8EA1F1AF 0x6FC0 +0x8EA1F1B0 0x6FB9 +0x8EA1F1B1 0x6FB6 +0x8EA1F1B2 0x6FA6 +0x8EA1F1B3 0x6FA0 +0x8EA1F1B4 0x6FB4 +0x8EA1F1B5 0x71BE +0x8EA1F1B6 0x71C9 +0x8EA1F1B7 0x71D0 +0x8EA1F1B8 0x71D2 +0x8EA1F1B9 0x71C8 +0x8EA1F1BA 0x71D5 +0x8EA1F1BB 0x71B9 +0x8EA1F1BC 0x71CE +0x8EA1F1BD 0x71D9 +0x8EA1F1BE 0x71DC +0x8EA1F1BF 0x71C3 +0x8EA1F1C0 0x71C4 +0x8EA1F1C1 0x7368 +0x8EA1F1C2 0x749C +0x8EA1F1C3 0x74A3 +0x8EA1F1C4 0x7498 +0x8EA1F1C5 0x749F +0x8EA1F1C6 0x749E +0x8EA1F1C7 0x74E2 +0x8EA1F1C8 0x750C +0x8EA1F1C9 0x750D +0x8EA1F1CA 0x7634 +0x8EA1F1CB 0x7638 +0x8EA1F1CC 0x763A +0x8EA1F1CD 0x76E7 +0x8EA1F1CE 0x76E5 +0x8EA1F1CF 0x77A0 +0x8EA1F1D0 0x779E +0x8EA1F1D1 0x779F +0x8EA1F1D2 0x77A5 +0x8EA1F1D3 0x78E8 +0x8EA1F1D4 0x78DA +0x8EA1F1D5 0x78EC +0x8EA1F1D6 0x78E7 +0x8EA1F1D7 0x79A6 +0x8EA1F1D8 0x7A4D +0x8EA1F1D9 0x7A4E +0x8EA1F1DA 0x7A46 +0x8EA1F1DB 0x7A4C +0x8EA1F1DC 0x7A4B +0x8EA1F1DD 0x7ABA +0x8EA1F1DE 0x7BD9 +0x8EA1F1DF 0x7C11 +0x8EA1F1E0 0x7BC9 +0x8EA1F1E1 0x7BE4 +0x8EA1F1E2 0x7BDB +0x8EA1F1E3 0x7BE1 +0x8EA1F1E4 0x7BE9 +0x8EA1F1E5 0x7BE6 +0x8EA1F1E6 0x7CD5 +0x8EA1F1E7 0x7CD6 +0x8EA1F1E8 0x7E0A +0x8EA1F1E9 0x7E11 +0x8EA1F1EA 0x7E08 +0x8EA1F1EB 0x7E1B +0x8EA1F1EC 0x7E23 +0x8EA1F1ED 0x7E1E +0x8EA1F1EE 0x7E1D +0x8EA1F1EF 0x7E09 +0x8EA1F1F0 0x7E10 +0x8EA1F1F1 0x7F79 +0x8EA1F1F2 0x7FB2 +0x8EA1F1F3 0x7FF0 +0x8EA1F1F4 0x7FF1 +0x8EA1F1F5 0x7FEE +0x8EA1F1F6 0x8028 +0x8EA1F1F7 0x81B3 +0x8EA1F1F8 0x81A9 +0x8EA1F1F9 0x81A8 +0x8EA1F1FA 0x81FB +0x8EA1F1FB 0x8208 +0x8EA1F1FC 0x8258 +0x8EA1F1FD 0x8259 +0x8EA1F1FE 0x854A +0x8EA1F2A1 0x8559 +0x8EA1F2A2 0x8548 +0x8EA1F2A3 0x8568 +0x8EA1F2A4 0x8569 +0x8EA1F2A5 0x8543 +0x8EA1F2A6 0x8549 +0x8EA1F2A7 0x856D +0x8EA1F2A8 0x856A +0x8EA1F2A9 0x855E +0x8EA1F2AA 0x8783 +0x8EA1F2AB 0x879F +0x8EA1F2AC 0x879E +0x8EA1F2AD 0x87A2 +0x8EA1F2AE 0x878D +0x8EA1F2AF 0x8861 +0x8EA1F2B0 0x892A +0x8EA1F2B1 0x8932 +0x8EA1F2B2 0x8925 +0x8EA1F2B3 0x892B +0x8EA1F2B4 0x8921 +0x8EA1F2B5 0x89AA +0x8EA1F2B6 0x89A6 +0x8EA1F2B7 0x8AE6 +0x8EA1F2B8 0x8AFA +0x8EA1F2B9 0x8AEB +0x8EA1F2BA 0x8AF1 +0x8EA1F2BB 0x8B00 +0x8EA1F2BC 0x8ADC +0x8EA1F2BD 0x8AE7 +0x8EA1F2BE 0x8AEE +0x8EA1F2BF 0x8AFE +0x8EA1F2C0 0x8B01 +0x8EA1F2C1 0x8B02 +0x8EA1F2C2 0x8AF7 +0x8EA1F2C3 0x8AED +0x8EA1F2C4 0x8AF3 +0x8EA1F2C5 0x8AF6 +0x8EA1F2C6 0x8AFC +0x8EA1F2C7 0x8C6B +0x8EA1F2C8 0x8C6D +0x8EA1F2C9 0x8C93 +0x8EA1F2CA 0x8CF4 +0x8EA1F2CB 0x8E44 +0x8EA1F2CC 0x8E31 +0x8EA1F2CD 0x8E34 +0x8EA1F2CE 0x8E42 +0x8EA1F2CF 0x8E39 +0x8EA1F2D0 0x8E35 +0x8EA1F2D1 0x8F3B +0x8EA1F2D2 0x8F2F +0x8EA1F2D3 0x8F38 +0x8EA1F2D4 0x8F33 +0x8EA1F2D5 0x8FA8 +0x8EA1F2D6 0x8FA6 +0x8EA1F2D7 0x9075 +0x8EA1F2D8 0x9074 +0x8EA1F2D9 0x9078 +0x8EA1F2DA 0x9072 +0x8EA1F2DB 0x907C +0x8EA1F2DC 0x907A +0x8EA1F2DD 0x9134 +0x8EA1F2DE 0x9192 +0x8EA1F2DF 0x9320 +0x8EA1F2E0 0x9336 +0x8EA1F2E1 0x92F8 +0x8EA1F2E2 0x9333 +0x8EA1F2E3 0x932F +0x8EA1F2E4 0x9322 +0x8EA1F2E5 0x92FC +0x8EA1F2E6 0x932B +0x8EA1F2E7 0x9304 +0x8EA1F2E8 0x931A +0x8EA1F2E9 0x9310 +0x8EA1F2EA 0x9326 +0x8EA1F2EB 0x9321 +0x8EA1F2EC 0x9315 +0x8EA1F2ED 0x932E +0x8EA1F2EE 0x9319 +0x8EA1F2EF 0x95BB +0x8EA1F2F0 0x96A7 +0x8EA1F2F1 0x96A8 +0x8EA1F2F2 0x96AA +0x8EA1F2F3 0x96D5 +0x8EA1F2F4 0x970E +0x8EA1F2F5 0x9711 +0x8EA1F2F6 0x9716 +0x8EA1F2F7 0x970D +0x8EA1F2F8 0x9713 +0x8EA1F2F9 0x970F +0x8EA1F2FA 0x975B +0x8EA1F2FB 0x975C +0x8EA1F2FC 0x9766 +0x8EA1F2FD 0x9798 +0x8EA1F2FE 0x9830 +0x8EA1F3A1 0x9838 +0x8EA1F3A2 0x983B +0x8EA1F3A3 0x9837 +0x8EA1F3A4 0x982D +0x8EA1F3A5 0x9839 +0x8EA1F3A6 0x9824 +0x8EA1F3A7 0x9910 +0x8EA1F3A8 0x9928 +0x8EA1F3A9 0x991E +0x8EA1F3AA 0x991B +0x8EA1F3AB 0x9921 +0x8EA1F3AC 0x991A +0x8EA1F3AD 0x99ED +0x8EA1F3AE 0x99E2 +0x8EA1F3AF 0x99F1 +0x8EA1F3B0 0x9AB8 +0x8EA1F3B1 0x9ABC +0x8EA1F3B2 0x9AFB +0x8EA1F3B3 0x9AED +0x8EA1F3B4 0x9B28 +0x8EA1F3B5 0x9B91 +0x8EA1F3B6 0x9D15 +0x8EA1F3B7 0x9D23 +0x8EA1F3B8 0x9D26 +0x8EA1F3B9 0x9D28 +0x8EA1F3BA 0x9D12 +0x8EA1F3BB 0x9D1B +0x8EA1F3BC 0x9ED8 +0x8EA1F3BD 0x9ED4 +0x8EA1F3BE 0x9F8D +0x8EA1F3BF 0x9F9C +0x8EA1F3C0 0x512A +0x8EA1F3C1 0x511F +0x8EA1F3C2 0x5121 +0x8EA1F3C3 0x5132 +0x8EA1F3C4 0x52F5 +0x8EA1F3C5 0x568E +0x8EA1F3C6 0x5680 +0x8EA1F3C7 0x5690 +0x8EA1F3C8 0x5685 +0x8EA1F3C9 0x5687 +0x8EA1F3CA 0x568F +0x8EA1F3CB 0x58D5 +0x8EA1F3CC 0x58D3 +0x8EA1F3CD 0x58D1 +0x8EA1F3CE 0x58CE +0x8EA1F3CF 0x5B30 +0x8EA1F3D0 0x5B2A +0x8EA1F3D1 0x5B24 +0x8EA1F3D2 0x5B7A +0x8EA1F3D3 0x5C37 +0x8EA1F3D4 0x5C68 +0x8EA1F3D5 0x5DBC +0x8EA1F3D6 0x5DBA +0x8EA1F3D7 0x5DBD +0x8EA1F3D8 0x5DB8 +0x8EA1F3D9 0x5E6B +0x8EA1F3DA 0x5F4C +0x8EA1F3DB 0x5FBD +0x8EA1F3DC 0x61C9 +0x8EA1F3DD 0x61C2 +0x8EA1F3DE 0x61C7 +0x8EA1F3DF 0x61E6 +0x8EA1F3E0 0x61CB +0x8EA1F3E1 0x6232 +0x8EA1F3E2 0x6234 +0x8EA1F3E3 0x64CE +0x8EA1F3E4 0x64CA +0x8EA1F3E5 0x64D8 +0x8EA1F3E6 0x64E0 +0x8EA1F3E7 0x64F0 +0x8EA1F3E8 0x64E6 +0x8EA1F3E9 0x64EC +0x8EA1F3EA 0x64F1 +0x8EA1F3EB 0x64E2 +0x8EA1F3EC 0x64ED +0x8EA1F3ED 0x6582 +0x8EA1F3EE 0x6583 +0x8EA1F3EF 0x66D9 +0x8EA1F3F0 0x66D6 +0x8EA1F3F1 0x6A80 +0x8EA1F3F2 0x6A94 +0x8EA1F3F3 0x6A84 +0x8EA1F3F4 0x6AA2 +0x8EA1F3F5 0x6A9C +0x8EA1F3F6 0x6ADB +0x8EA1F3F7 0x6AA3 +0x8EA1F3F8 0x6A7E +0x8EA1F3F9 0x6A97 +0x8EA1F3FA 0x6A90 +0x8EA1F3FB 0x6AA0 +0x8EA1F3FC 0x6B5C +0x8EA1F3FD 0x6BAE +0x8EA1F3FE 0x6BDA +0x8EA1F4A1 0x6C08 +0x8EA1F4A2 0x6FD8 +0x8EA1F4A3 0x6FF1 +0x8EA1F4A4 0x6FDF +0x8EA1F4A5 0x6FE0 +0x8EA1F4A6 0x6FDB +0x8EA1F4A7 0x6FE4 +0x8EA1F4A8 0x6FEB +0x8EA1F4A9 0x6FEF +0x8EA1F4AA 0x6F80 +0x8EA1F4AB 0x6FEC +0x8EA1F4AC 0x6FE1 +0x8EA1F4AD 0x6FE9 +0x8EA1F4AE 0x6FD5 +0x8EA1F4AF 0x6FEE +0x8EA1F4B0 0x6FF0 +0x8EA1F4B1 0x71E7 +0x8EA1F4B2 0x71DF +0x8EA1F4B3 0x71EE +0x8EA1F4B4 0x71E6 +0x8EA1F4B5 0x71E5 +0x8EA1F4B6 0x71ED +0x8EA1F4B7 0x71EC +0x8EA1F4B8 0x71F4 +0x8EA1F4B9 0x71E0 +0x8EA1F4BA 0x7235 +0x8EA1F4BB 0x7246 +0x8EA1F4BC 0x7370 +0x8EA1F4BD 0x7372 +0x8EA1F4BE 0x74A9 +0x8EA1F4BF 0x74B0 +0x8EA1F4C0 0x74A6 +0x8EA1F4C1 0x74A8 +0x8EA1F4C2 0x7646 +0x8EA1F4C3 0x7642 +0x8EA1F4C4 0x764C +0x8EA1F4C5 0x76EA +0x8EA1F4C6 0x77B3 +0x8EA1F4C7 0x77AA +0x8EA1F4C8 0x77B0 +0x8EA1F4C9 0x77AC +0x8EA1F4CA 0x77A7 +0x8EA1F4CB 0x77AD +0x8EA1F4CC 0x77EF +0x8EA1F4CD 0x78F7 +0x8EA1F4CE 0x78FA +0x8EA1F4CF 0x78F4 +0x8EA1F4D0 0x78EF +0x8EA1F4D1 0x7901 +0x8EA1F4D2 0x79A7 +0x8EA1F4D3 0x79AA +0x8EA1F4D4 0x7A57 +0x8EA1F4D5 0x7ABF +0x8EA1F4D6 0x7C07 +0x8EA1F4D7 0x7C0D +0x8EA1F4D8 0x7BFE +0x8EA1F4D9 0x7BF7 +0x8EA1F4DA 0x7C0C +0x8EA1F4DB 0x7BE0 +0x8EA1F4DC 0x7CE0 +0x8EA1F4DD 0x7CDC +0x8EA1F4DE 0x7CDE +0x8EA1F4DF 0x7CE2 +0x8EA1F4E0 0x7CDF +0x8EA1F4E1 0x7CD9 +0x8EA1F4E2 0x7CDD +0x8EA1F4E3 0x7E2E +0x8EA1F4E4 0x7E3E +0x8EA1F4E5 0x7E46 +0x8EA1F4E6 0x7E37 +0x8EA1F4E7 0x7E32 +0x8EA1F4E8 0x7E43 +0x8EA1F4E9 0x7E2B +0x8EA1F4EA 0x7E3D +0x8EA1F4EB 0x7E31 +0x8EA1F4EC 0x7E45 +0x8EA1F4ED 0x7E41 +0x8EA1F4EE 0x7E34 +0x8EA1F4EF 0x7E39 +0x8EA1F4F0 0x7E48 +0x8EA1F4F1 0x7E35 +0x8EA1F4F2 0x7E3F +0x8EA1F4F3 0x7E2F +0x8EA1F4F4 0x7F44 +0x8EA1F4F5 0x7FF3 +0x8EA1F4F6 0x7FFC +0x8EA1F4F7 0x8071 +0x8EA1F4F8 0x8072 +0x8EA1F4F9 0x8070 +0x8EA1F4FA 0x806F +0x8EA1F4FB 0x8073 +0x8EA1F4FC 0x81C6 +0x8EA1F4FD 0x81C3 +0x8EA1F4FE 0x81BA +0x8EA1F5A1 0x81C2 +0x8EA1F5A2 0x81C0 +0x8EA1F5A3 0x81BF +0x8EA1F5A4 0x81BD +0x8EA1F5A5 0x81C9 +0x8EA1F5A6 0x81BE +0x8EA1F5A7 0x81E8 +0x8EA1F5A8 0x8209 +0x8EA1F5A9 0x8271 +0x8EA1F5AA 0x85AA +0x8EA1F5AB 0x8584 +0x8EA1F5AC 0x857E +0x8EA1F5AD 0x859C +0x8EA1F5AE 0x8591 +0x8EA1F5AF 0x8594 +0x8EA1F5B0 0x85AF +0x8EA1F5B1 0x859B +0x8EA1F5B2 0x8587 +0x8EA1F5B3 0x85A8 +0x8EA1F5B4 0x858A +0x8EA1F5B5 0x85A6 +0x8EA1F5B6 0x8667 +0x8EA1F5B7 0x87C0 +0x8EA1F5B8 0x87D1 +0x8EA1F5B9 0x87B3 +0x8EA1F5BA 0x87D2 +0x8EA1F5BB 0x87C6 +0x8EA1F5BC 0x87AB +0x8EA1F5BD 0x87BB +0x8EA1F5BE 0x87BA +0x8EA1F5BF 0x87C8 +0x8EA1F5C0 0x87CB +0x8EA1F5C1 0x893B +0x8EA1F5C2 0x8936 +0x8EA1F5C3 0x8944 +0x8EA1F5C4 0x8938 +0x8EA1F5C5 0x893D +0x8EA1F5C6 0x89AC +0x8EA1F5C7 0x8B0E +0x8EA1F5C8 0x8B17 +0x8EA1F5C9 0x8B19 +0x8EA1F5CA 0x8B1B +0x8EA1F5CB 0x8B0A +0x8EA1F5CC 0x8B20 +0x8EA1F5CD 0x8B1D +0x8EA1F5CE 0x8B04 +0x8EA1F5CF 0x8B10 +0x8EA1F5D0 0x8C41 +0x8EA1F5D1 0x8C3F +0x8EA1F5D2 0x8C73 +0x8EA1F5D3 0x8CFA +0x8EA1F5D4 0x8CFD +0x8EA1F5D5 0x8CFC +0x8EA1F5D6 0x8CF8 +0x8EA1F5D7 0x8CFB +0x8EA1F5D8 0x8DA8 +0x8EA1F5D9 0x8E49 +0x8EA1F5DA 0x8E4B +0x8EA1F5DB 0x8E48 +0x8EA1F5DC 0x8E4A +0x8EA1F5DD 0x8F44 +0x8EA1F5DE 0x8F3E +0x8EA1F5DF 0x8F42 +0x8EA1F5E0 0x8F45 +0x8EA1F5E1 0x8F3F +0x8EA1F5E2 0x907F +0x8EA1F5E3 0x907D +0x8EA1F5E4 0x9084 +0x8EA1F5E5 0x9081 +0x8EA1F5E6 0x9082 +0x8EA1F5E7 0x9080 +0x8EA1F5E8 0x9139 +0x8EA1F5E9 0x91A3 +0x8EA1F5EA 0x919E +0x8EA1F5EB 0x919C +0x8EA1F5EC 0x934D +0x8EA1F5ED 0x9382 +0x8EA1F5EE 0x9328 +0x8EA1F5EF 0x9375 +0x8EA1F5F0 0x934A +0x8EA1F5F1 0x9365 +0x8EA1F5F2 0x934B +0x8EA1F5F3 0x9318 +0x8EA1F5F4 0x937E +0x8EA1F5F5 0x936C +0x8EA1F5F6 0x935B +0x8EA1F5F7 0x9370 +0x8EA1F5F8 0x935A +0x8EA1F5F9 0x9354 +0x8EA1F5FA 0x95CA +0x8EA1F5FB 0x95CB +0x8EA1F5FC 0x95CC +0x8EA1F5FD 0x95C8 +0x8EA1F5FE 0x95C6 +0x8EA1F6A1 0x96B1 +0x8EA1F6A2 0x96B8 +0x8EA1F6A3 0x96D6 +0x8EA1F6A4 0x971C +0x8EA1F6A5 0x971E +0x8EA1F6A6 0x97A0 +0x8EA1F6A7 0x97D3 +0x8EA1F6A8 0x9846 +0x8EA1F6A9 0x98B6 +0x8EA1F6AA 0x9935 +0x8EA1F6AB 0x9A01 +0x8EA1F6AC 0x99FF +0x8EA1F6AD 0x9BAE +0x8EA1F6AE 0x9BAB +0x8EA1F6AF 0x9BAA +0x8EA1F6B0 0x9BAD +0x8EA1F6B1 0x9D3B +0x8EA1F6B2 0x9D3F +0x8EA1F6B3 0x9E8B +0x8EA1F6B4 0x9ECF +0x8EA1F6B5 0x9EDE +0x8EA1F6B6 0x9EDC +0x8EA1F6B7 0x9EDD +0x8EA1F6B8 0x9EDB +0x8EA1F6B9 0x9F3E +0x8EA1F6BA 0x9F4B +0x8EA1F6BB 0x53E2 +0x8EA1F6BC 0x5695 +0x8EA1F6BD 0x56AE +0x8EA1F6BE 0x58D9 +0x8EA1F6BF 0x58D8 +0x8EA1F6C0 0x5B38 +0x8EA1F6C1 0x5F5E +0x8EA1F6C2 0x61E3 +0x8EA1F6C3 0x6233 +0x8EA1F6C4 0x64F4 +0x8EA1F6C5 0x64F2 +0x8EA1F6C6 0x64FE +0x8EA1F6C7 0x6506 +0x8EA1F6C8 0x64FA +0x8EA1F6C9 0x64FB +0x8EA1F6CA 0x64F7 +0x8EA1F6CB 0x65B7 +0x8EA1F6CC 0x66DC +0x8EA1F6CD 0x6726 +0x8EA1F6CE 0x6AB3 +0x8EA1F6CF 0x6AAC +0x8EA1F6D0 0x6AC3 +0x8EA1F6D1 0x6ABB +0x8EA1F6D2 0x6AB8 +0x8EA1F6D3 0x6AC2 +0x8EA1F6D4 0x6AAE +0x8EA1F6D5 0x6AAF +0x8EA1F6D6 0x6B5F +0x8EA1F6D7 0x6B78 +0x8EA1F6D8 0x6BAF +0x8EA1F6D9 0x7009 +0x8EA1F6DA 0x700B +0x8EA1F6DB 0x6FFE +0x8EA1F6DC 0x7006 +0x8EA1F6DD 0x6FFA +0x8EA1F6DE 0x7011 +0x8EA1F6DF 0x700F +0x8EA1F6E0 0x71FB +0x8EA1F6E1 0x71FC +0x8EA1F6E2 0x71FE +0x8EA1F6E3 0x71F8 +0x8EA1F6E4 0x7377 +0x8EA1F6E5 0x7375 +0x8EA1F6E6 0x74A7 +0x8EA1F6E7 0x74BF +0x8EA1F6E8 0x7515 +0x8EA1F6E9 0x7656 +0x8EA1F6EA 0x7658 +0x8EA1F6EB 0x7652 +0x8EA1F6EC 0x77BD +0x8EA1F6ED 0x77BF +0x8EA1F6EE 0x77BB +0x8EA1F6EF 0x77BC +0x8EA1F6F0 0x790E +0x8EA1F6F1 0x79AE +0x8EA1F6F2 0x7A61 +0x8EA1F6F3 0x7A62 +0x8EA1F6F4 0x7A60 +0x8EA1F6F5 0x7AC4 +0x8EA1F6F6 0x7AC5 +0x8EA1F6F7 0x7C2B +0x8EA1F6F8 0x7C27 +0x8EA1F6F9 0x7C2A +0x8EA1F6FA 0x7C1E +0x8EA1F6FB 0x7C23 +0x8EA1F6FC 0x7C21 +0x8EA1F6FD 0x7CE7 +0x8EA1F6FE 0x7E54 +0x8EA1F7A1 0x7E55 +0x8EA1F7A2 0x7E5E +0x8EA1F7A3 0x7E5A +0x8EA1F7A4 0x7E61 +0x8EA1F7A5 0x7E52 +0x8EA1F7A6 0x7E59 +0x8EA1F7A7 0x7F48 +0x8EA1F7A8 0x7FF9 +0x8EA1F7A9 0x7FFB +0x8EA1F7AA 0x8077 +0x8EA1F7AB 0x8076 +0x8EA1F7AC 0x81CD +0x8EA1F7AD 0x81CF +0x8EA1F7AE 0x820A +0x8EA1F7AF 0x85CF +0x8EA1F7B0 0x85A9 +0x8EA1F7B1 0x85CD +0x8EA1F7B2 0x85D0 +0x8EA1F7B3 0x85C9 +0x8EA1F7B4 0x85B0 +0x8EA1F7B5 0x85BA +0x8EA1F7B6 0x85B9 +0x8EA1F7B7 0x87EF +0x8EA1F7B8 0x87EC +0x8EA1F7B9 0x87F2 +0x8EA1F7BA 0x87E0 +0x8EA1F7BB 0x8986 +0x8EA1F7BC 0x89B2 +0x8EA1F7BD 0x89F4 +0x8EA1F7BE 0x8B28 +0x8EA1F7BF 0x8B39 +0x8EA1F7C0 0x8B2C +0x8EA1F7C1 0x8B2B +0x8EA1F7C2 0x8C50 +0x8EA1F7C3 0x8D05 +0x8EA1F7C4 0x8E59 +0x8EA1F7C5 0x8E63 +0x8EA1F7C6 0x8E66 +0x8EA1F7C7 0x8E64 +0x8EA1F7C8 0x8E5F +0x8EA1F7C9 0x8E55 +0x8EA1F7CA 0x8EC0 +0x8EA1F7CB 0x8F49 +0x8EA1F7CC 0x8F4D +0x8EA1F7CD 0x9087 +0x8EA1F7CE 0x9083 +0x8EA1F7CF 0x9088 +0x8EA1F7D0 0x91AB +0x8EA1F7D1 0x91AC +0x8EA1F7D2 0x91D0 +0x8EA1F7D3 0x9394 +0x8EA1F7D4 0x938A +0x8EA1F7D5 0x9396 +0x8EA1F7D6 0x93A2 +0x8EA1F7D7 0x93B3 +0x8EA1F7D8 0x93AE +0x8EA1F7D9 0x93AC +0x8EA1F7DA 0x93B0 +0x8EA1F7DB 0x9398 +0x8EA1F7DC 0x939A +0x8EA1F7DD 0x9397 +0x8EA1F7DE 0x95D4 +0x8EA1F7DF 0x95D6 +0x8EA1F7E0 0x95D0 +0x8EA1F7E1 0x95D5 +0x8EA1F7E2 0x96E2 +0x8EA1F7E3 0x96DC +0x8EA1F7E4 0x96D9 +0x8EA1F7E5 0x96DB +0x8EA1F7E6 0x96DE +0x8EA1F7E7 0x9724 +0x8EA1F7E8 0x97A3 +0x8EA1F7E9 0x97A6 +0x8EA1F7EA 0x97AD +0x8EA1F7EB 0x97F9 +0x8EA1F7EC 0x984D +0x8EA1F7ED 0x984F +0x8EA1F7EE 0x984C +0x8EA1F7EF 0x984E +0x8EA1F7F0 0x9853 +0x8EA1F7F1 0x98BA +0x8EA1F7F2 0x993E +0x8EA1F7F3 0x993F +0x8EA1F7F4 0x993D +0x8EA1F7F5 0x992E +0x8EA1F7F6 0x99A5 +0x8EA1F7F7 0x9A0E +0x8EA1F7F8 0x9AC1 +0x8EA1F7F9 0x9B03 +0x8EA1F7FA 0x9B06 +0x8EA1F7FB 0x9B4F +0x8EA1F7FC 0x9B4E +0x8EA1F7FD 0x9B4D +0x8EA1F7FE 0x9BCA +0x8EA1F8A1 0x9BC9 +0x8EA1F8A2 0x9BFD +0x8EA1F8A3 0x9BC8 +0x8EA1F8A4 0x9BC0 +0x8EA1F8A5 0x9D51 +0x8EA1F8A6 0x9D5D +0x8EA1F8A7 0x9D60 +0x8EA1F8A8 0x9EE0 +0x8EA1F8A9 0x9F15 +0x8EA1F8AA 0x9F2C +0x8EA1F8AB 0x5133 +0x8EA1F8AC 0x56A5 +0x8EA1F8AD 0x56A8 +0x8EA1F8AE 0x58DE +0x8EA1F8AF 0x58DF +0x8EA1F8B0 0x58E2 +0x8EA1F8B1 0x5BF5 +0x8EA1F8B2 0x9F90 +0x8EA1F8B3 0x5EEC +0x8EA1F8B4 0x61F2 +0x8EA1F8B5 0x61F7 +0x8EA1F8B6 0x61F6 +0x8EA1F8B7 0x61F5 +0x8EA1F8B8 0x6500 +0x8EA1F8B9 0x650F +0x8EA1F8BA 0x66E0 +0x8EA1F8BB 0x66DD +0x8EA1F8BC 0x6AE5 +0x8EA1F8BD 0x6ADD +0x8EA1F8BE 0x6ADA +0x8EA1F8BF 0x6AD3 +0x8EA1F8C0 0x701B +0x8EA1F8C1 0x701F +0x8EA1F8C2 0x7028 +0x8EA1F8C3 0x701A +0x8EA1F8C4 0x701D +0x8EA1F8C5 0x7015 +0x8EA1F8C6 0x7018 +0x8EA1F8C7 0x7206 +0x8EA1F8C8 0x720D +0x8EA1F8C9 0x7258 +0x8EA1F8CA 0x72A2 +0x8EA1F8CB 0x7378 +0x8EA1F8CC 0x737A +0x8EA1F8CD 0x74BD +0x8EA1F8CE 0x74CA +0x8EA1F8CF 0x74E3 +0x8EA1F8D0 0x7587 +0x8EA1F8D1 0x7586 +0x8EA1F8D2 0x765F +0x8EA1F8D3 0x7661 +0x8EA1F8D4 0x77C7 +0x8EA1F8D5 0x7919 +0x8EA1F8D6 0x79B1 +0x8EA1F8D7 0x7A6B +0x8EA1F8D8 0x7A69 +0x8EA1F8D9 0x7C3E +0x8EA1F8DA 0x7C3F +0x8EA1F8DB 0x7C38 +0x8EA1F8DC 0x7C3D +0x8EA1F8DD 0x7C37 +0x8EA1F8DE 0x7C40 +0x8EA1F8DF 0x7E6B +0x8EA1F8E0 0x7E6D +0x8EA1F8E1 0x7E79 +0x8EA1F8E2 0x7E69 +0x8EA1F8E3 0x7E6A +0x8EA1F8E4 0x7E73 +0x8EA1F8E5 0x7F85 +0x8EA1F8E6 0x7FB6 +0x8EA1F8E7 0x7FB9 +0x8EA1F8E8 0x7FB8 +0x8EA1F8E9 0x81D8 +0x8EA1F8EA 0x85E9 +0x8EA1F8EB 0x85DD +0x8EA1F8EC 0x85EA +0x8EA1F8ED 0x85D5 +0x8EA1F8EE 0x85E4 +0x8EA1F8EF 0x85E5 +0x8EA1F8F0 0x85F7 +0x8EA1F8F1 0x87FB +0x8EA1F8F2 0x8805 +0x8EA1F8F3 0x880D +0x8EA1F8F4 0x87F9 +0x8EA1F8F5 0x87FE +0x8EA1F8F6 0x8960 +0x8EA1F8F7 0x895F +0x8EA1F8F8 0x8956 +0x8EA1F8F9 0x895E +0x8EA1F8FA 0x8B41 +0x8EA1F8FB 0x8B5C +0x8EA1F8FC 0x8B58 +0x8EA1F8FD 0x8B49 +0x8EA1F8FE 0x8B5A +0x8EA1F9A1 0x8B4E +0x8EA1F9A2 0x8B4F +0x8EA1F9A3 0x8B46 +0x8EA1F9A4 0x8B59 +0x8EA1F9A5 0x8D08 +0x8EA1F9A6 0x8D0A +0x8EA1F9A7 0x8E7C +0x8EA1F9A8 0x8E72 +0x8EA1F9A9 0x8E87 +0x8EA1F9AA 0x8E76 +0x8EA1F9AB 0x8E6C +0x8EA1F9AC 0x8E7A +0x8EA1F9AD 0x8E74 +0x8EA1F9AE 0x8F54 +0x8EA1F9AF 0x8F4E +0x8EA1F9B0 0x8FAD +0x8EA1F9B1 0x908A +0x8EA1F9B2 0x908B +0x8EA1F9B3 0x91B1 +0x8EA1F9B4 0x91AE +0x8EA1F9B5 0x93E1 +0x8EA1F9B6 0x93D1 +0x8EA1F9B7 0x93DF +0x8EA1F9B8 0x93C3 +0x8EA1F9B9 0x93C8 +0x8EA1F9BA 0x93DC +0x8EA1F9BB 0x93DD +0x8EA1F9BC 0x93D6 +0x8EA1F9BD 0x93E2 +0x8EA1F9BE 0x93CD +0x8EA1F9BF 0x93D8 +0x8EA1F9C0 0x93E4 +0x8EA1F9C1 0x93D7 +0x8EA1F9C2 0x93E8 +0x8EA1F9C3 0x95DC +0x8EA1F9C4 0x96B4 +0x8EA1F9C5 0x96E3 +0x8EA1F9C6 0x972A +0x8EA1F9C7 0x9727 +0x8EA1F9C8 0x9761 +0x8EA1F9C9 0x97DC +0x8EA1F9CA 0x97FB +0x8EA1F9CB 0x985E +0x8EA1F9CC 0x9858 +0x8EA1F9CD 0x985B +0x8EA1F9CE 0x98BC +0x8EA1F9CF 0x9945 +0x8EA1F9D0 0x9949 +0x8EA1F9D1 0x9A16 +0x8EA1F9D2 0x9A19 +0x8EA1F9D3 0x9B0D +0x8EA1F9D4 0x9BE8 +0x8EA1F9D5 0x9BE7 +0x8EA1F9D6 0x9BD6 +0x8EA1F9D7 0x9BDB +0x8EA1F9D8 0x9D89 +0x8EA1F9D9 0x9D61 +0x8EA1F9DA 0x9D72 +0x8EA1F9DB 0x9D6A +0x8EA1F9DC 0x9D6C +0x8EA1F9DD 0x9E92 +0x8EA1F9DE 0x9E97 +0x8EA1F9DF 0x9E93 +0x8EA1F9E0 0x9EB4 +0x8EA1F9E1 0x52F8 +0x8EA1F9E2 0x56B7 +0x8EA1F9E3 0x56B6 +0x8EA1F9E4 0x56B4 +0x8EA1F9E5 0x56BC +0x8EA1F9E6 0x58E4 +0x8EA1F9E7 0x5B40 +0x8EA1F9E8 0x5B43 +0x8EA1F9E9 0x5B7D +0x8EA1F9EA 0x5BF6 +0x8EA1F9EB 0x5DC9 +0x8EA1F9EC 0x61F8 +0x8EA1F9ED 0x61FA +0x8EA1F9EE 0x6518 +0x8EA1F9EF 0x6514 +0x8EA1F9F0 0x6519 +0x8EA1F9F1 0x66E6 +0x8EA1F9F2 0x6727 +0x8EA1F9F3 0x6AEC +0x8EA1F9F4 0x703E +0x8EA1F9F5 0x7030 +0x8EA1F9F6 0x7032 +0x8EA1F9F7 0x7210 +0x8EA1F9F8 0x737B +0x8EA1F9F9 0x74CF +0x8EA1F9FA 0x7662 +0x8EA1F9FB 0x7665 +0x8EA1F9FC 0x7926 +0x8EA1F9FD 0x792A +0x8EA1F9FE 0x792C +0x8EA1FAA1 0x792B +0x8EA1FAA2 0x7AC7 +0x8EA1FAA3 0x7AF6 +0x8EA1FAA4 0x7C4C +0x8EA1FAA5 0x7C43 +0x8EA1FAA6 0x7C4D +0x8EA1FAA7 0x7CEF +0x8EA1FAA8 0x7CF0 +0x8EA1FAA9 0x8FAE +0x8EA1FAAA 0x7E7D +0x8EA1FAAB 0x7E7C +0x8EA1FAAC 0x7E82 +0x8EA1FAAD 0x7F4C +0x8EA1FAAE 0x8000 +0x8EA1FAAF 0x81DA +0x8EA1FAB0 0x8266 +0x8EA1FAB1 0x85FB +0x8EA1FAB2 0x85F9 +0x8EA1FAB3 0x8611 +0x8EA1FAB4 0x85FA +0x8EA1FAB5 0x8606 +0x8EA1FAB6 0x860B +0x8EA1FAB7 0x8607 +0x8EA1FAB8 0x860A +0x8EA1FAB9 0x8814 +0x8EA1FABA 0x8815 +0x8EA1FABB 0x8964 +0x8EA1FABC 0x89BA +0x8EA1FABD 0x89F8 +0x8EA1FABE 0x8B70 +0x8EA1FABF 0x8B6C +0x8EA1FAC0 0x8B66 +0x8EA1FAC1 0x8B6F +0x8EA1FAC2 0x8B5F +0x8EA1FAC3 0x8B6B +0x8EA1FAC4 0x8D0F +0x8EA1FAC5 0x8D0D +0x8EA1FAC6 0x8E89 +0x8EA1FAC7 0x8E81 +0x8EA1FAC8 0x8E85 +0x8EA1FAC9 0x8E82 +0x8EA1FACA 0x91B4 +0x8EA1FACB 0x91CB +0x8EA1FACC 0x9418 +0x8EA1FACD 0x9403 +0x8EA1FACE 0x93FD +0x8EA1FACF 0x95E1 +0x8EA1FAD0 0x9730 +0x8EA1FAD1 0x98C4 +0x8EA1FAD2 0x9952 +0x8EA1FAD3 0x9951 +0x8EA1FAD4 0x99A8 +0x8EA1FAD5 0x9A2B +0x8EA1FAD6 0x9A30 +0x8EA1FAD7 0x9A37 +0x8EA1FAD8 0x9A35 +0x8EA1FAD9 0x9C13 +0x8EA1FADA 0x9C0D +0x8EA1FADB 0x9E79 +0x8EA1FADC 0x9EB5 +0x8EA1FADD 0x9EE8 +0x8EA1FADE 0x9F2F +0x8EA1FADF 0x9F5F +0x8EA1FAE0 0x9F63 +0x8EA1FAE1 0x9F61 +0x8EA1FAE2 0x5137 +0x8EA1FAE3 0x5138 +0x8EA1FAE4 0x56C1 +0x8EA1FAE5 0x56C0 +0x8EA1FAE6 0x56C2 +0x8EA1FAE7 0x5914 +0x8EA1FAE8 0x5C6C +0x8EA1FAE9 0x5DCD +0x8EA1FAEA 0x61FC +0x8EA1FAEB 0x61FE +0x8EA1FAEC 0x651D +0x8EA1FAED 0x651C +0x8EA1FAEE 0x6595 +0x8EA1FAEF 0x66E9 +0x8EA1FAF0 0x6AFB +0x8EA1FAF1 0x6B04 +0x8EA1FAF2 0x6AFA +0x8EA1FAF3 0x6BB2 +0x8EA1FAF4 0x704C +0x8EA1FAF5 0x721B +0x8EA1FAF6 0x72A7 +0x8EA1FAF7 0x74D6 +0x8EA1FAF8 0x74D4 +0x8EA1FAF9 0x7669 +0x8EA1FAFA 0x77D3 +0x8EA1FAFB 0x7C50 +0x8EA1FAFC 0x7E8F +0x8EA1FAFD 0x7E8C +0x8EA1FAFE 0x7FBC +0x8EA1FBA1 0x8617 +0x8EA1FBA2 0x862D +0x8EA1FBA3 0x861A +0x8EA1FBA4 0x8823 +0x8EA1FBA5 0x8822 +0x8EA1FBA6 0x8821 +0x8EA1FBA7 0x881F +0x8EA1FBA8 0x896A +0x8EA1FBA9 0x896C +0x8EA1FBAA 0x89BD +0x8EA1FBAB 0x8B74 +0x8EA1FBAC 0x8B77 +0x8EA1FBAD 0x8B7D +0x8EA1FBAE 0x8D13 +0x8EA1FBAF 0x8E8A +0x8EA1FBB0 0x8E8D +0x8EA1FBB1 0x8E8B +0x8EA1FBB2 0x8F5F +0x8EA1FBB3 0x8FAF +0x8EA1FBB4 0x91BA +0x8EA1FBB5 0x942E +0x8EA1FBB6 0x9433 +0x8EA1FBB7 0x9435 +0x8EA1FBB8 0x943A +0x8EA1FBB9 0x9438 +0x8EA1FBBA 0x9432 +0x8EA1FBBB 0x942B +0x8EA1FBBC 0x95E2 +0x8EA1FBBD 0x9738 +0x8EA1FBBE 0x9739 +0x8EA1FBBF 0x9732 +0x8EA1FBC0 0x97FF +0x8EA1FBC1 0x9867 +0x8EA1FBC2 0x9865 +0x8EA1FBC3 0x9957 +0x8EA1FBC4 0x9A45 +0x8EA1FBC5 0x9A43 +0x8EA1FBC6 0x9A40 +0x8EA1FBC7 0x9A3E +0x8EA1FBC8 0x9ACF +0x8EA1FBC9 0x9B54 +0x8EA1FBCA 0x9B51 +0x8EA1FBCB 0x9C2D +0x8EA1FBCC 0x9C25 +0x8EA1FBCD 0x9DAF +0x8EA1FBCE 0x9DB4 +0x8EA1FBCF 0x9DC2 +0x8EA1FBD0 0x9DB8 +0x8EA1FBD1 0x9E9D +0x8EA1FBD2 0x9EEF +0x8EA1FBD3 0x9F19 +0x8EA1FBD4 0x9F5C +0x8EA1FBD5 0x9F66 +0x8EA1FBD6 0x9F67 +0x8EA1FBD7 0x513C +0x8EA1FBD8 0x513B +0x8EA1FBD9 0x56C8 +0x8EA1FBDA 0x56CA +0x8EA1FBDB 0x56C9 +0x8EA1FBDC 0x5B7F +0x8EA1FBDD 0x5DD4 +0x8EA1FBDE 0x5DD2 +0x8EA1FBDF 0x5F4E +0x8EA1FBE0 0x61FF +0x8EA1FBE1 0x6524 +0x8EA1FBE2 0x6B0A +0x8EA1FBE3 0x6B61 +0x8EA1FBE4 0x7051 +0x8EA1FBE5 0x7058 +0x8EA1FBE6 0x7380 +0x8EA1FBE7 0x74E4 +0x8EA1FBE8 0x758A +0x8EA1FBE9 0x766E +0x8EA1FBEA 0x766C +0x8EA1FBEB 0x79B3 +0x8EA1FBEC 0x7C60 +0x8EA1FBED 0x7C5F +0x8EA1FBEE 0x807E +0x8EA1FBEF 0x807D +0x8EA1FBF0 0x81DF +0x8EA1FBF1 0x8972 +0x8EA1FBF2 0x896F +0x8EA1FBF3 0x89FC +0x8EA1FBF4 0x8B80 +0x8EA1FBF5 0x8D16 +0x8EA1FBF6 0x8D17 +0x8EA1FBF7 0x8E91 +0x8EA1FBF8 0x8E93 +0x8EA1FBF9 0x8F61 +0x8EA1FBFA 0x9148 +0x8EA1FBFB 0x9444 +0x8EA1FBFC 0x9451 +0x8EA1FBFD 0x9452 +0x8EA1FBFE 0x973D +0x8EA1FCA1 0x973E +0x8EA1FCA2 0x97C3 +0x8EA1FCA3 0x97C1 +0x8EA1FCA4 0x986B +0x8EA1FCA5 0x9955 +0x8EA1FCA6 0x9A55 +0x8EA1FCA7 0x9A4D +0x8EA1FCA8 0x9AD2 +0x8EA1FCA9 0x9B1A +0x8EA1FCAA 0x9C49 +0x8EA1FCAB 0x9C31 +0x8EA1FCAC 0x9C3E +0x8EA1FCAD 0x9C3B +0x8EA1FCAE 0x9DD3 +0x8EA1FCAF 0x9DD7 +0x8EA1FCB0 0x9F34 +0x8EA1FCB1 0x9F6C +0x8EA1FCB2 0x9F6A +0x8EA1FCB3 0x9F94 +0x8EA1FCB4 0x56CC +0x8EA1FCB5 0x5DD6 +0x8EA1FCB6 0x6200 +0x8EA1FCB7 0x6523 +0x8EA1FCB8 0x652B +0x8EA1FCB9 0x652A +0x8EA1FCBA 0x66EC +0x8EA1FCBB 0x6B10 +0x8EA1FCBC 0x74DA +0x8EA1FCBD 0x7ACA +0x8EA1FCBE 0x7C64 +0x8EA1FCBF 0x7C63 +0x8EA1FCC0 0x7C65 +0x8EA1FCC1 0x7E93 +0x8EA1FCC2 0x7E96 +0x8EA1FCC3 0x7E94 +0x8EA1FCC4 0x81E2 +0x8EA1FCC5 0x8638 +0x8EA1FCC6 0x863F +0x8EA1FCC7 0x8831 +0x8EA1FCC8 0x8B8A +0x8EA1FCC9 0x9090 +0x8EA1FCCA 0x908F +0x8EA1FCCB 0x9463 +0x8EA1FCCC 0x9460 +0x8EA1FCCD 0x9464 +0x8EA1FCCE 0x9768 +0x8EA1FCCF 0x986F +0x8EA1FCD0 0x995C +0x8EA1FCD1 0x9A5A +0x8EA1FCD2 0x9A5B +0x8EA1FCD3 0x9A57 +0x8EA1FCD4 0x9AD3 +0x8EA1FCD5 0x9AD4 +0x8EA1FCD6 0x9AD1 +0x8EA1FCD7 0x9C54 +0x8EA1FCD8 0x9C57 +0x8EA1FCD9 0x9C56 +0x8EA1FCDA 0x9DE5 +0x8EA1FCDB 0x9E9F +0x8EA1FCDC 0x9EF4 +0x8EA1FCDD 0x56D1 +0x8EA1FCDE 0x58E9 +0x8EA1FCDF 0x652C +0x8EA1FCE0 0x705E +0x8EA1FCE1 0x7671 +0x8EA1FCE2 0x7672 +0x8EA1FCE3 0x77D7 +0x8EA1FCE4 0x7F50 +0x8EA1FCE5 0x7F88 +0x8EA1FCE6 0x8836 +0x8EA1FCE7 0x8839 +0x8EA1FCE8 0x8862 +0x8EA1FCE9 0x8B93 +0x8EA1FCEA 0x8B92 +0x8EA1FCEB 0x8B96 +0x8EA1FCEC 0x8277 +0x8EA1FCED 0x8D1B +0x8EA1FCEE 0x91C0 +0x8EA1FCEF 0x946A +0x8EA1FCF0 0x9742 +0x8EA1FCF1 0x9748 +0x8EA1FCF2 0x9744 +0x8EA1FCF3 0x97C6 +0x8EA1FCF4 0x9870 +0x8EA1FCF5 0x9A5F +0x8EA1FCF6 0x9B22 +0x8EA1FCF7 0x9B58 +0x8EA1FCF8 0x9C5F +0x8EA1FCF9 0x9DF9 +0x8EA1FCFA 0x9DFA +0x8EA1FCFB 0x9E7C +0x8EA1FCFC 0x9E7D +0x8EA1FCFD 0x9F07 +0x8EA1FCFE 0x9F77 +0x8EA1FDA1 0x9F72 +0x8EA1FDA2 0x5EF3 +0x8EA1FDA3 0x6B16 +0x8EA1FDA4 0x7063 +0x8EA1FDA5 0x7C6C +0x8EA1FDA6 0x7C6E +0x8EA1FDA7 0x883B +0x8EA1FDA8 0x89C0 +0x8EA1FDA9 0x8EA1 +0x8EA1FDAA 0x91C1 +0x8EA1FDAB 0x9472 +0x8EA1FDAC 0x9470 +0x8EA1FDAD 0x9871 +0x8EA1FDAE 0x995E +0x8EA1FDAF 0x9AD6 +0x8EA1FDB0 0x9B23 +0x8EA1FDB1 0x9ECC +0x8EA1FDB2 0x7064 +0x8EA1FDB3 0x77DA +0x8EA1FDB4 0x8B9A +0x8EA1FDB5 0x9477 +0x8EA1FDB6 0x97C9 +0x8EA1FDB7 0x9A62 +0x8EA1FDB8 0x9A65 +0x8EA1FDB9 0x7E9C +0x8EA1FDBA 0x8B9C +0x8EA1FDBB 0x8EAA +0x8EA1FDBC 0x91C5 +0x8EA1FDBD 0x947D +0x8EA1FDBE 0x947E +0x8EA1FDBF 0x947C +0x8EA1FDC0 0x9C77 +0x8EA1FDC1 0x9C78 +0x8EA1FDC2 0x9EF7 +0x8EA1FDC3 0x8C54 +0x8EA1FDC4 0x947F +0x8EA1FDC5 0x9E1A +0x8EA1FDC6 0x7228 +0x8EA1FDC7 0x9A6A +0x8EA1FDC8 0x9B31 +0x8EA1FDC9 0x9E1B +0x8EA1FDCA 0x9E1E +0x8EA1FDCB 0x7C72 +0x8EA3A1B8 0x5344 diff --git a/3rdPartner/libiconv/tests/EUC-TW.TXT b/3rdPartner/libiconv/tests/EUC-TW.TXT new file mode 100644 index 0000000..95af746 --- /dev/null +++ b/3rdPartner/libiconv/tests/EUC-TW.TXT @@ -0,0 +1,61439 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8EA1A1A1 0x3000 +0x8EA1A1A2 0xFF0C +0x8EA1A1A3 0x3001 +0x8EA1A1A4 0x3002 +0x8EA1A1A5 0xFF0E +0x8EA1A1A6 0x30FB +0x8EA1A1A7 0xFF1B +0x8EA1A1A8 0xFF1A +0x8EA1A1A9 0xFF1F +0x8EA1A1AA 0xFF01 +0x8EA1A1AB 0xFE30 +0x8EA1A1AC 0x2026 +0x8EA1A1AD 0x2025 +0x8EA1A1AE 0xFE50 +0x8EA1A1AF 0xFE51 +0x8EA1A1B0 0xFE52 +0x8EA1A1B1 0x00B7 +0x8EA1A1B2 0xFE54 +0x8EA1A1B3 0xFE55 +0x8EA1A1B4 0xFE56 +0x8EA1A1B5 0xFE57 +0x8EA1A1B6 0xFE31 +0x8EA1A1B7 0x2014 +0x8EA1A1B8 0xFE32 +0x8EA1A1B9 0x2013 +0x8EA1A1BE 0xFF08 +0x8EA1A1BF 0xFF09 +0x8EA1A1C0 0xFE35 +0x8EA1A1C1 0xFE36 +0x8EA1A1C2 0xFF5B +0x8EA1A1C3 0xFF5D +0x8EA1A1C4 0xFE37 +0x8EA1A1C5 0xFE38 +0x8EA1A1C6 0x3014 +0x8EA1A1C7 0x3015 +0x8EA1A1C8 0xFE39 +0x8EA1A1C9 0xFE3A +0x8EA1A1CA 0x3010 +0x8EA1A1CB 0x3011 +0x8EA1A1CC 0xFE3B +0x8EA1A1CD 0xFE3C +0x8EA1A1CE 0x300A +0x8EA1A1CF 0x300B +0x8EA1A1D0 0xFE3D +0x8EA1A1D1 0xFE3E +0x8EA1A1D2 0x3008 +0x8EA1A1D3 0x3009 +0x8EA1A1D4 0xFE3F +0x8EA1A1D5 0xFE40 +0x8EA1A1D6 0x300C +0x8EA1A1D7 0x300D +0x8EA1A1D8 0xFE41 +0x8EA1A1D9 0xFE42 +0x8EA1A1DA 0x300E +0x8EA1A1DB 0x300F +0x8EA1A1DC 0xFE43 +0x8EA1A1DD 0xFE44 +0x8EA1A1DE 0xFE59 +0x8EA1A1DF 0xFE5A +0x8EA1A1E0 0xFE5B +0x8EA1A1E1 0xFE5C +0x8EA1A1E2 0xFE5D +0x8EA1A1E3 0xFE5E +0x8EA1A1E4 0x2018 +0x8EA1A1E5 0x2019 +0x8EA1A1E6 0x201C +0x8EA1A1E7 0x201D +0x8EA1A1E8 0x301D +0x8EA1A1E9 0x301E +0x8EA1A1EA 0x2032 +0x8EA1A1EB 0x2035 +0x8EA1A1EC 0xFF03 +0x8EA1A1ED 0xFF06 +0x8EA1A1EE 0xFF0A +0x8EA1A1EF 0x203B +0x8EA1A1F0 0x00A7 +0x8EA1A1F1 0x3003 +0x8EA1A1F2 0x25CB +0x8EA1A1F3 0x25CF +0x8EA1A1F4 0x25B3 +0x8EA1A1F5 0x25B2 +0x8EA1A1F6 0x25CE +0x8EA1A1F7 0x2606 +0x8EA1A1F8 0x2605 +0x8EA1A1F9 0x25C7 +0x8EA1A1FA 0x25C6 +0x8EA1A1FB 0x25A1 +0x8EA1A1FC 0x25A0 +0x8EA1A1FD 0x25BD +0x8EA1A1FE 0x25BC +0x8EA1A2A1 0x32A3 +0x8EA1A2A2 0x2105 +0x8EA1A2A3 0x203E +0x8EA1A2A5 0xFF3F +0x8EA1A2A7 0xFE49 +0x8EA1A2A8 0xFE4A +0x8EA1A2A9 0xFE4D +0x8EA1A2AA 0xFE4E +0x8EA1A2AB 0xFE4B +0x8EA1A2AC 0xFE4C +0x8EA1A2AD 0xFE5F +0x8EA1A2AE 0xFE60 +0x8EA1A2AF 0xFE61 +0x8EA1A2B0 0xFF0B +0x8EA1A2B1 0xFF0D +0x8EA1A2B2 0x00D7 +0x8EA1A2B3 0x00F7 +0x8EA1A2B4 0x00B1 +0x8EA1A2B5 0x221A +0x8EA1A2B6 0xFF1C +0x8EA1A2B7 0xFF1E +0x8EA1A2B8 0xFF1D +0x8EA1A2B9 0x2266 +0x8EA1A2BA 0x2267 +0x8EA1A2BB 0x2260 +0x8EA1A2BC 0x221E +0x8EA1A2BD 0x2252 +0x8EA1A2BE 0x2261 +0x8EA1A2BF 0xFE62 +0x8EA1A2C0 0xFE63 +0x8EA1A2C1 0xFE64 +0x8EA1A2C2 0xFE66 +0x8EA1A2C3 0xFE65 +0x8EA1A2C4 0x223C +0x8EA1A2C5 0x2229 +0x8EA1A2C6 0x222A +0x8EA1A2C7 0x22A5 +0x8EA1A2C8 0x2220 +0x8EA1A2C9 0x221F +0x8EA1A2CA 0x22BF +0x8EA1A2CB 0x33D2 +0x8EA1A2CC 0x33D1 +0x8EA1A2CD 0x222B +0x8EA1A2CE 0x222E +0x8EA1A2CF 0x2235 +0x8EA1A2D0 0x2234 +0x8EA1A2D1 0x2640 +0x8EA1A2D2 0x2642 +0x8EA1A2D3 0x2641 +0x8EA1A2D4 0x2609 +0x8EA1A2D5 0x2191 +0x8EA1A2D6 0x2193 +0x8EA1A2D7 0x2192 +0x8EA1A2D8 0x2190 +0x8EA1A2D9 0x2196 +0x8EA1A2DA 0x2197 +0x8EA1A2DB 0x2199 +0x8EA1A2DC 0x2198 +0x8EA1A2DD 0x2016 +0x8EA1A2DE 0xFF5C +0x8EA1A2DF 0xFF0F +0x8EA1A2E0 0xFF3C +0x8EA1A2E1 0x2215 +0x8EA1A2E2 0xFE68 +0x8EA1A2E3 0xFF04 +0x8EA1A2E4 0xFFE5 +0x8EA1A2E5 0x3012 +0x8EA1A2E6 0xFFE0 +0x8EA1A2E7 0xFFE1 +0x8EA1A2E8 0xFF05 +0x8EA1A2E9 0xFF20 +0x8EA1A2EA 0x2103 +0x8EA1A2EB 0x2109 +0x8EA1A2EC 0xFE69 +0x8EA1A2ED 0xFE6A +0x8EA1A2EE 0xFE6B +0x8EA1A2EF 0x33D5 +0x8EA1A2F0 0x339C +0x8EA1A2F1 0x339D +0x8EA1A2F2 0x339E +0x8EA1A2F3 0x33CE +0x8EA1A2F4 0x33A1 +0x8EA1A2F5 0x338E +0x8EA1A2F6 0x338F +0x8EA1A2F7 0x33C4 +0x8EA1A2F8 0x00B0 +0x8EA1A2F9 0x5159 +0x8EA1A2FA 0x515B +0x8EA1A2FB 0x515E +0x8EA1A2FC 0x515D +0x8EA1A2FD 0x5161 +0x8EA1A2FE 0x5163 +0x8EA1A3A1 0x55E7 +0x8EA1A3A2 0x74E9 +0x8EA1A3A3 0x7CCE +0x8EA1A3A4 0x2581 +0x8EA1A3A5 0x2582 +0x8EA1A3A6 0x2583 +0x8EA1A3A7 0x2584 +0x8EA1A3A8 0x2585 +0x8EA1A3A9 0x2586 +0x8EA1A3AA 0x2587 +0x8EA1A3AB 0x2588 +0x8EA1A3AC 0x258F +0x8EA1A3AD 0x258E +0x8EA1A3AE 0x258D +0x8EA1A3AF 0x258C +0x8EA1A3B0 0x258B +0x8EA1A3B1 0x258A +0x8EA1A3B2 0x2589 +0x8EA1A3B3 0x253C +0x8EA1A3B4 0x2534 +0x8EA1A3B5 0x252C +0x8EA1A3B6 0x2524 +0x8EA1A3B7 0x251C +0x8EA1A3B8 0x2594 +0x8EA1A3B9 0x2500 +0x8EA1A3BA 0x2502 +0x8EA1A3BB 0x2595 +0x8EA1A3BC 0x250C +0x8EA1A3BD 0x2510 +0x8EA1A3BE 0x2514 +0x8EA1A3BF 0x2518 +0x8EA1A3C0 0x256D +0x8EA1A3C1 0x256E +0x8EA1A3C2 0x2570 +0x8EA1A3C3 0x256F +0x8EA1A3C4 0x2550 +0x8EA1A3C5 0x255E +0x8EA1A3C6 0x256A +0x8EA1A3C7 0x2561 +0x8EA1A3C8 0x25E2 +0x8EA1A3C9 0x25E3 +0x8EA1A3CA 0x25E5 +0x8EA1A3CB 0x25E4 +0x8EA1A3CC 0x2571 +0x8EA1A3CD 0x2572 +0x8EA1A3CE 0x2573 +0x8EA1A4A1 0xFF10 +0x8EA1A4A2 0xFF11 +0x8EA1A4A3 0xFF12 +0x8EA1A4A4 0xFF13 +0x8EA1A4A5 0xFF14 +0x8EA1A4A6 0xFF15 +0x8EA1A4A7 0xFF16 +0x8EA1A4A8 0xFF17 +0x8EA1A4A9 0xFF18 +0x8EA1A4AA 0xFF19 +0x8EA1A4AB 0x2160 +0x8EA1A4AC 0x2161 +0x8EA1A4AD 0x2162 +0x8EA1A4AE 0x2163 +0x8EA1A4AF 0x2164 +0x8EA1A4B0 0x2165 +0x8EA1A4B1 0x2166 +0x8EA1A4B2 0x2167 +0x8EA1A4B3 0x2168 +0x8EA1A4B4 0x2169 +0x8EA1A4B5 0x3021 +0x8EA1A4B6 0x3022 +0x8EA1A4B7 0x3023 +0x8EA1A4B8 0x3024 +0x8EA1A4B9 0x3025 +0x8EA1A4BA 0x3026 +0x8EA1A4BB 0x3027 +0x8EA1A4BC 0x3028 +0x8EA1A4BD 0x3029 +0x8EA1A4BF 0x5344 +0x8EA1A4C1 0xFF21 +0x8EA1A4C2 0xFF22 +0x8EA1A4C3 0xFF23 +0x8EA1A4C4 0xFF24 +0x8EA1A4C5 0xFF25 +0x8EA1A4C6 0xFF26 +0x8EA1A4C7 0xFF27 +0x8EA1A4C8 0xFF28 +0x8EA1A4C9 0xFF29 +0x8EA1A4CA 0xFF2A +0x8EA1A4CB 0xFF2B +0x8EA1A4CC 0xFF2C +0x8EA1A4CD 0xFF2D +0x8EA1A4CE 0xFF2E +0x8EA1A4CF 0xFF2F +0x8EA1A4D0 0xFF30 +0x8EA1A4D1 0xFF31 +0x8EA1A4D2 0xFF32 +0x8EA1A4D3 0xFF33 +0x8EA1A4D4 0xFF34 +0x8EA1A4D5 0xFF35 +0x8EA1A4D6 0xFF36 +0x8EA1A4D7 0xFF37 +0x8EA1A4D8 0xFF38 +0x8EA1A4D9 0xFF39 +0x8EA1A4DA 0xFF3A +0x8EA1A4DB 0xFF41 +0x8EA1A4DC 0xFF42 +0x8EA1A4DD 0xFF43 +0x8EA1A4DE 0xFF44 +0x8EA1A4DF 0xFF45 +0x8EA1A4E0 0xFF46 +0x8EA1A4E1 0xFF47 +0x8EA1A4E2 0xFF48 +0x8EA1A4E3 0xFF49 +0x8EA1A4E4 0xFF4A +0x8EA1A4E5 0xFF4B +0x8EA1A4E6 0xFF4C +0x8EA1A4E7 0xFF4D +0x8EA1A4E8 0xFF4E +0x8EA1A4E9 0xFF4F +0x8EA1A4EA 0xFF50 +0x8EA1A4EB 0xFF51 +0x8EA1A4EC 0xFF52 +0x8EA1A4ED 0xFF53 +0x8EA1A4EE 0xFF54 +0x8EA1A4EF 0xFF55 +0x8EA1A4F0 0xFF56 +0x8EA1A4F1 0xFF57 +0x8EA1A4F2 0xFF58 +0x8EA1A4F3 0xFF59 +0x8EA1A4F4 0xFF5A +0x8EA1A4F5 0x0391 +0x8EA1A4F6 0x0392 +0x8EA1A4F7 0x0393 +0x8EA1A4F8 0x0394 +0x8EA1A4F9 0x0395 +0x8EA1A4FA 0x0396 +0x8EA1A4FB 0x0397 +0x8EA1A4FC 0x0398 +0x8EA1A4FD 0x0399 +0x8EA1A4FE 0x039A +0x8EA1A5A1 0x039B +0x8EA1A5A2 0x039C +0x8EA1A5A3 0x039D +0x8EA1A5A4 0x039E +0x8EA1A5A5 0x039F +0x8EA1A5A6 0x03A0 +0x8EA1A5A7 0x03A1 +0x8EA1A5A8 0x03A3 +0x8EA1A5A9 0x03A4 +0x8EA1A5AA 0x03A5 +0x8EA1A5AB 0x03A6 +0x8EA1A5AC 0x03A7 +0x8EA1A5AD 0x03A8 +0x8EA1A5AE 0x03A9 +0x8EA1A5AF 0x03B1 +0x8EA1A5B0 0x03B2 +0x8EA1A5B1 0x03B3 +0x8EA1A5B2 0x03B4 +0x8EA1A5B3 0x03B5 +0x8EA1A5B4 0x03B6 +0x8EA1A5B5 0x03B7 +0x8EA1A5B6 0x03B8 +0x8EA1A5B7 0x03B9 +0x8EA1A5B8 0x03BA +0x8EA1A5B9 0x03BB +0x8EA1A5BA 0x03BC +0x8EA1A5BB 0x03BD +0x8EA1A5BC 0x03BE +0x8EA1A5BD 0x03BF +0x8EA1A5BE 0x03C0 +0x8EA1A5BF 0x03C1 +0x8EA1A5C0 0x03C3 +0x8EA1A5C1 0x03C4 +0x8EA1A5C2 0x03C5 +0x8EA1A5C3 0x03C6 +0x8EA1A5C4 0x03C7 +0x8EA1A5C5 0x03C8 +0x8EA1A5C6 0x03C9 +0x8EA1A5C7 0x3105 +0x8EA1A5C8 0x3106 +0x8EA1A5C9 0x3107 +0x8EA1A5CA 0x3108 +0x8EA1A5CB 0x3109 +0x8EA1A5CC 0x310A +0x8EA1A5CD 0x310B +0x8EA1A5CE 0x310C +0x8EA1A5CF 0x310D +0x8EA1A5D0 0x310E +0x8EA1A5D1 0x310F +0x8EA1A5D2 0x3110 +0x8EA1A5D3 0x3111 +0x8EA1A5D4 0x3112 +0x8EA1A5D5 0x3113 +0x8EA1A5D6 0x3114 +0x8EA1A5D7 0x3115 +0x8EA1A5D8 0x3116 +0x8EA1A5D9 0x3117 +0x8EA1A5DA 0x3118 +0x8EA1A5DB 0x3119 +0x8EA1A5DC 0x311A +0x8EA1A5DD 0x311B +0x8EA1A5DE 0x311C +0x8EA1A5DF 0x311D +0x8EA1A5E0 0x311E +0x8EA1A5E1 0x311F +0x8EA1A5E2 0x3120 +0x8EA1A5E3 0x3121 +0x8EA1A5E4 0x3122 +0x8EA1A5E5 0x3123 +0x8EA1A5E6 0x3124 +0x8EA1A5E7 0x3125 +0x8EA1A5E8 0x3126 +0x8EA1A5E9 0x3127 +0x8EA1A5EA 0x3128 +0x8EA1A5EB 0x3129 +0x8EA1A5EC 0x02D9 +0x8EA1A5ED 0x02C9 +0x8EA1A5EE 0x02CA +0x8EA1A5EF 0x02C7 +0x8EA1A5F0 0x02CB +0x8EA1A6A1 0x2460 +0x8EA1A6A2 0x2461 +0x8EA1A6A3 0x2462 +0x8EA1A6A4 0x2463 +0x8EA1A6A5 0x2464 +0x8EA1A6A6 0x2465 +0x8EA1A6A7 0x2466 +0x8EA1A6A8 0x2467 +0x8EA1A6A9 0x2468 +0x8EA1A6AA 0x2469 +0x8EA1A6AB 0x2474 +0x8EA1A6AC 0x2475 +0x8EA1A6AD 0x2476 +0x8EA1A6AE 0x2477 +0x8EA1A6AF 0x2478 +0x8EA1A6B0 0x2479 +0x8EA1A6B1 0x247A +0x8EA1A6B2 0x247B +0x8EA1A6B3 0x247C +0x8EA1A6B4 0x247D +0x8EA1A6B5 0x2170 +0x8EA1A6B6 0x2171 +0x8EA1A6B7 0x2172 +0x8EA1A6B8 0x2173 +0x8EA1A6B9 0x2174 +0x8EA1A6BA 0x2175 +0x8EA1A6BB 0x2176 +0x8EA1A6BC 0x2177 +0x8EA1A6BD 0x2178 +0x8EA1A6BE 0x2179 +0x8EA1A7A8 0x4EA0 +0x8EA1A7AF 0x51AB +0x8EA1A7B4 0x52F9 +0x8EA1C2A1 0x2400 +0x8EA1C2A2 0x2401 +0x8EA1C2A3 0x2402 +0x8EA1C2A4 0x2403 +0x8EA1C2A5 0x2404 +0x8EA1C2A6 0x2405 +0x8EA1C2A7 0x2406 +0x8EA1C2A8 0x2407 +0x8EA1C2A9 0x2408 +0x8EA1C2AA 0x2409 +0x8EA1C2AB 0x240A +0x8EA1C2AC 0x240B +0x8EA1C2AD 0x240C +0x8EA1C2AE 0x240D +0x8EA1C2AF 0x240E +0x8EA1C2B0 0x240F +0x8EA1C2B1 0x2410 +0x8EA1C2B2 0x2411 +0x8EA1C2B3 0x2412 +0x8EA1C2B4 0x2413 +0x8EA1C2B5 0x2414 +0x8EA1C2B6 0x2415 +0x8EA1C2B7 0x2416 +0x8EA1C2B8 0x2417 +0x8EA1C2B9 0x2418 +0x8EA1C2BA 0x2419 +0x8EA1C2BB 0x241A +0x8EA1C2BC 0x241B +0x8EA1C2BD 0x241C +0x8EA1C2BE 0x241D +0x8EA1C2BF 0x241E +0x8EA1C2C0 0x241F +0x8EA1C2C1 0x2421 +0x8EA1C2C2 0x20AC +0x8EA1C4A1 0x4E00 +0x8EA1C4A2 0x4E59 +0x8EA1C4A3 0x4E01 +0x8EA1C4A4 0x4E03 +0x8EA1C4A5 0x4E43 +0x8EA1C4A6 0x4E5D +0x8EA1C4A7 0x4E86 +0x8EA1C4A8 0x4E8C +0x8EA1C4A9 0x4EBA +0x8EA1C4AA 0x513F +0x8EA1C4AB 0x5165 +0x8EA1C4AC 0x516B +0x8EA1C4AD 0x51E0 +0x8EA1C4AE 0x5200 +0x8EA1C4AF 0x5201 +0x8EA1C4B0 0x529B +0x8EA1C4B1 0x5315 +0x8EA1C4B2 0x5341 +0x8EA1C4B3 0x535C +0x8EA1C4B4 0x53C8 +0x8EA1C4B5 0x4E09 +0x8EA1C4B6 0x4E0B +0x8EA1C4B7 0x4E08 +0x8EA1C4B8 0x4E0A +0x8EA1C4B9 0x4E2B +0x8EA1C4BA 0x4E38 +0x8EA1C4BB 0x51E1 +0x8EA1C4BC 0x4E45 +0x8EA1C4BD 0x4E48 +0x8EA1C4BE 0x4E5F +0x8EA1C4BF 0x4E5E +0x8EA1C4C0 0x4E8E +0x8EA1C4C1 0x4EA1 +0x8EA1C4C2 0x5140 +0x8EA1C4C3 0x5203 +0x8EA1C4C4 0x52FA +0x8EA1C4C5 0x5343 +0x8EA1C4C6 0x53C9 +0x8EA1C4C7 0x53E3 +0x8EA1C4C8 0x571F +0x8EA1C4C9 0x58EB +0x8EA1C4CA 0x5915 +0x8EA1C4CB 0x5927 +0x8EA1C4CC 0x5973 +0x8EA1C4CD 0x5B50 +0x8EA1C4CE 0x5B51 +0x8EA1C4CF 0x5B53 +0x8EA1C4D0 0x5BF8 +0x8EA1C4D1 0x5C0F +0x8EA1C4D2 0x5C22 +0x8EA1C4D3 0x5C38 +0x8EA1C4D4 0x5C71 +0x8EA1C4D5 0x5DDD +0x8EA1C4D6 0x5DE5 +0x8EA1C4D7 0x5DF1 +0x8EA1C4D8 0x5DF2 +0x8EA1C4D9 0x5DF3 +0x8EA1C4DA 0x5DFE +0x8EA1C4DB 0x5E72 +0x8EA1C4DC 0x5EFE +0x8EA1C4DD 0x5F0B +0x8EA1C4DE 0x5F13 +0x8EA1C4DF 0x624D +0x8EA1C4E0 0x4E11 +0x8EA1C4E1 0x4E10 +0x8EA1C4E2 0x4E0D +0x8EA1C4E3 0x4E2D +0x8EA1C4E4 0x4E30 +0x8EA1C4E5 0x4E39 +0x8EA1C4E6 0x4E4B +0x8EA1C4E7 0x5C39 +0x8EA1C4E8 0x4E88 +0x8EA1C4E9 0x4E91 +0x8EA1C4EA 0x4E95 +0x8EA1C4EB 0x4E92 +0x8EA1C4EC 0x4E94 +0x8EA1C4ED 0x4EA2 +0x8EA1C4EE 0x4EC1 +0x8EA1C4EF 0x4EC0 +0x8EA1C4F0 0x4EC3 +0x8EA1C4F1 0x4EC6 +0x8EA1C4F2 0x4EC7 +0x8EA1C4F3 0x4ECD +0x8EA1C4F4 0x4ECA +0x8EA1C4F5 0x4ECB +0x8EA1C4F6 0x4EC4 +0x8EA1C4F7 0x5143 +0x8EA1C4F8 0x5141 +0x8EA1C4F9 0x5167 +0x8EA1C4FA 0x516D +0x8EA1C4FB 0x516E +0x8EA1C4FC 0x516C +0x8EA1C4FD 0x5197 +0x8EA1C4FE 0x51F6 +0x8EA1C5A1 0x5206 +0x8EA1C5A2 0x5207 +0x8EA1C5A3 0x5208 +0x8EA1C5A4 0x52FB +0x8EA1C5A5 0x52FE +0x8EA1C5A6 0x52FF +0x8EA1C5A7 0x5316 +0x8EA1C5A8 0x5339 +0x8EA1C5A9 0x5348 +0x8EA1C5AA 0x5347 +0x8EA1C5AB 0x5345 +0x8EA1C5AC 0x535E +0x8EA1C5AD 0x5384 +0x8EA1C5AE 0x53CB +0x8EA1C5AF 0x53CA +0x8EA1C5B0 0x53CD +0x8EA1C5B1 0x58EC +0x8EA1C5B2 0x5929 +0x8EA1C5B3 0x592B +0x8EA1C5B4 0x592A +0x8EA1C5B5 0x592D +0x8EA1C5B6 0x5B54 +0x8EA1C5B7 0x5C11 +0x8EA1C5B8 0x5C24 +0x8EA1C5B9 0x5C3A +0x8EA1C5BA 0x5C6F +0x8EA1C5BB 0x5DF4 +0x8EA1C5BC 0x5E7B +0x8EA1C5BD 0x5EFF +0x8EA1C5BE 0x5F14 +0x8EA1C5BF 0x5F15 +0x8EA1C5C0 0x5FC3 +0x8EA1C5C1 0x6208 +0x8EA1C5C2 0x6236 +0x8EA1C5C3 0x624B +0x8EA1C5C4 0x624E +0x8EA1C5C5 0x652F +0x8EA1C5C6 0x6587 +0x8EA1C5C7 0x6597 +0x8EA1C5C8 0x65A4 +0x8EA1C5C9 0x65B9 +0x8EA1C5CA 0x65E5 +0x8EA1C5CB 0x66F0 +0x8EA1C5CC 0x6708 +0x8EA1C5CD 0x6728 +0x8EA1C5CE 0x6B20 +0x8EA1C5CF 0x6B62 +0x8EA1C5D0 0x6B79 +0x8EA1C5D1 0x6BCB +0x8EA1C5D2 0x6BD4 +0x8EA1C5D3 0x6BDB +0x8EA1C5D4 0x6C0F +0x8EA1C5D5 0x6C34 +0x8EA1C5D6 0x706B +0x8EA1C5D7 0x722A +0x8EA1C5D8 0x7236 +0x8EA1C5D9 0x723B +0x8EA1C5DA 0x7247 +0x8EA1C5DB 0x7259 +0x8EA1C5DC 0x725B +0x8EA1C5DD 0x72AC +0x8EA1C5DE 0x738B +0x8EA1C5DF 0x4E19 +0x8EA1C5E0 0x4E16 +0x8EA1C5E1 0x4E15 +0x8EA1C5E2 0x4E14 +0x8EA1C5E3 0x4E18 +0x8EA1C5E4 0x4E3B +0x8EA1C5E5 0x4E4D +0x8EA1C5E6 0x4E4F +0x8EA1C5E7 0x4E4E +0x8EA1C5E8 0x4EE5 +0x8EA1C5E9 0x4ED8 +0x8EA1C5EA 0x4ED4 +0x8EA1C5EB 0x4ED5 +0x8EA1C5EC 0x4ED6 +0x8EA1C5ED 0x4ED7 +0x8EA1C5EE 0x4EE3 +0x8EA1C5EF 0x4EE4 +0x8EA1C5F0 0x4ED9 +0x8EA1C5F1 0x4EDE +0x8EA1C5F2 0x5145 +0x8EA1C5F3 0x5144 +0x8EA1C5F4 0x5189 +0x8EA1C5F5 0x518A +0x8EA1C5F6 0x51AC +0x8EA1C5F7 0x51F9 +0x8EA1C5F8 0x51FA +0x8EA1C5F9 0x51F8 +0x8EA1C5FA 0x520A +0x8EA1C5FB 0x52A0 +0x8EA1C5FC 0x529F +0x8EA1C5FD 0x5305 +0x8EA1C5FE 0x5306 +0x8EA1C6A1 0x5317 +0x8EA1C6A2 0x531D +0x8EA1C6A3 0x4EDF +0x8EA1C6A4 0x534A +0x8EA1C6A5 0x5349 +0x8EA1C6A6 0x5361 +0x8EA1C6A7 0x5360 +0x8EA1C6A8 0x536F +0x8EA1C6A9 0x536E +0x8EA1C6AA 0x53BB +0x8EA1C6AB 0x53EF +0x8EA1C6AC 0x53E4 +0x8EA1C6AD 0x53F3 +0x8EA1C6AE 0x53EC +0x8EA1C6AF 0x53EE +0x8EA1C6B0 0x53E9 +0x8EA1C6B1 0x53E8 +0x8EA1C6B2 0x53FC +0x8EA1C6B3 0x53F8 +0x8EA1C6B4 0x53F5 +0x8EA1C6B5 0x53EB +0x8EA1C6B6 0x53E6 +0x8EA1C6B7 0x53EA +0x8EA1C6B8 0x53F2 +0x8EA1C6B9 0x53F1 +0x8EA1C6BA 0x53F0 +0x8EA1C6BB 0x53E5 +0x8EA1C6BC 0x53ED +0x8EA1C6BD 0x53FB +0x8EA1C6BE 0x56DB +0x8EA1C6BF 0x56DA +0x8EA1C6C0 0x5916 +0x8EA1C6C1 0x592E +0x8EA1C6C2 0x5931 +0x8EA1C6C3 0x5974 +0x8EA1C6C4 0x5976 +0x8EA1C6C5 0x5B55 +0x8EA1C6C6 0x5B83 +0x8EA1C6C7 0x5C3C +0x8EA1C6C8 0x5DE8 +0x8EA1C6C9 0x5DE7 +0x8EA1C6CA 0x5DE6 +0x8EA1C6CB 0x5E02 +0x8EA1C6CC 0x5E03 +0x8EA1C6CD 0x5E73 +0x8EA1C6CE 0x5E7C +0x8EA1C6CF 0x5F01 +0x8EA1C6D0 0x5F18 +0x8EA1C6D1 0x5F17 +0x8EA1C6D2 0x5FC5 +0x8EA1C6D3 0x620A +0x8EA1C6D4 0x6253 +0x8EA1C6D5 0x6254 +0x8EA1C6D6 0x6252 +0x8EA1C6D7 0x6251 +0x8EA1C6D8 0x65A5 +0x8EA1C6D9 0x65E6 +0x8EA1C6DA 0x672E +0x8EA1C6DB 0x672C +0x8EA1C6DC 0x672A +0x8EA1C6DD 0x672B +0x8EA1C6DE 0x672D +0x8EA1C6DF 0x6B63 +0x8EA1C6E0 0x6BCD +0x8EA1C6E1 0x6C11 +0x8EA1C6E2 0x6C10 +0x8EA1C6E3 0x6C38 +0x8EA1C6E4 0x6C41 +0x8EA1C6E5 0x6C40 +0x8EA1C6E6 0x6C3E +0x8EA1C6E7 0x72AF +0x8EA1C6E8 0x7384 +0x8EA1C6E9 0x7389 +0x8EA1C6EA 0x74DC +0x8EA1C6EB 0x74E6 +0x8EA1C6EC 0x7518 +0x8EA1C6ED 0x751F +0x8EA1C6EE 0x7528 +0x8EA1C6EF 0x7529 +0x8EA1C6F0 0x7530 +0x8EA1C6F1 0x7531 +0x8EA1C6F2 0x7532 +0x8EA1C6F3 0x7533 +0x8EA1C6F4 0x758B +0x8EA1C6F5 0x767D +0x8EA1C6F6 0x76AE +0x8EA1C6F7 0x76BF +0x8EA1C6F8 0x76EE +0x8EA1C6F9 0x77DB +0x8EA1C6FA 0x77E2 +0x8EA1C6FB 0x77F3 +0x8EA1C6FC 0x793A +0x8EA1C6FD 0x79BE +0x8EA1C6FE 0x7A74 +0x8EA1C7A1 0x7ACB +0x8EA1C7A2 0x4E1E +0x8EA1C7A3 0x4E1F +0x8EA1C7A4 0x4E52 +0x8EA1C7A5 0x4E53 +0x8EA1C7A6 0x4E69 +0x8EA1C7A7 0x4E99 +0x8EA1C7A8 0x4EA4 +0x8EA1C7A9 0x4EA6 +0x8EA1C7AA 0x4EA5 +0x8EA1C7AB 0x4EFF +0x8EA1C7AC 0x4F09 +0x8EA1C7AD 0x4F19 +0x8EA1C7AE 0x4F0A +0x8EA1C7AF 0x4F15 +0x8EA1C7B0 0x4F0D +0x8EA1C7B1 0x4F10 +0x8EA1C7B2 0x4F11 +0x8EA1C7B3 0x4F0F +0x8EA1C7B4 0x4EF2 +0x8EA1C7B5 0x4EF6 +0x8EA1C7B6 0x4EFB +0x8EA1C7B7 0x4EF0 +0x8EA1C7B8 0x4EF3 +0x8EA1C7B9 0x4EFD +0x8EA1C7BA 0x4F01 +0x8EA1C7BB 0x4F0B +0x8EA1C7BC 0x5149 +0x8EA1C7BD 0x5147 +0x8EA1C7BE 0x5146 +0x8EA1C7BF 0x5148 +0x8EA1C7C0 0x5168 +0x8EA1C7C1 0x5171 +0x8EA1C7C2 0x518D +0x8EA1C7C3 0x51B0 +0x8EA1C7C4 0x5217 +0x8EA1C7C5 0x5211 +0x8EA1C7C6 0x5212 +0x8EA1C7C7 0x520E +0x8EA1C7C8 0x5216 +0x8EA1C7C9 0x52A3 +0x8EA1C7CA 0x5308 +0x8EA1C7CB 0x5321 +0x8EA1C7CC 0x5320 +0x8EA1C7CD 0x5370 +0x8EA1C7CE 0x5371 +0x8EA1C7CF 0x5409 +0x8EA1C7D0 0x540F +0x8EA1C7D1 0x540C +0x8EA1C7D2 0x540A +0x8EA1C7D3 0x5410 +0x8EA1C7D4 0x5401 +0x8EA1C7D5 0x540B +0x8EA1C7D6 0x5404 +0x8EA1C7D7 0x5411 +0x8EA1C7D8 0x540D +0x8EA1C7D9 0x5408 +0x8EA1C7DA 0x5403 +0x8EA1C7DB 0x540E +0x8EA1C7DC 0x5406 +0x8EA1C7DD 0x5412 +0x8EA1C7DE 0x56E0 +0x8EA1C7DF 0x56DE +0x8EA1C7E0 0x56DD +0x8EA1C7E1 0x5733 +0x8EA1C7E2 0x5730 +0x8EA1C7E3 0x5728 +0x8EA1C7E4 0x572D +0x8EA1C7E5 0x572C +0x8EA1C7E6 0x572F +0x8EA1C7E7 0x5729 +0x8EA1C7E8 0x5919 +0x8EA1C7E9 0x591A +0x8EA1C7EA 0x5937 +0x8EA1C7EB 0x5938 +0x8EA1C7EC 0x5984 +0x8EA1C7ED 0x5978 +0x8EA1C7EE 0x5983 +0x8EA1C7EF 0x597D +0x8EA1C7F0 0x5979 +0x8EA1C7F1 0x5982 +0x8EA1C7F2 0x5981 +0x8EA1C7F3 0x5B57 +0x8EA1C7F4 0x5B58 +0x8EA1C7F5 0x5B87 +0x8EA1C7F6 0x5B88 +0x8EA1C7F7 0x5B85 +0x8EA1C7F8 0x5B89 +0x8EA1C7F9 0x5BFA +0x8EA1C7FA 0x5C16 +0x8EA1C7FB 0x5C79 +0x8EA1C7FC 0x5DDE +0x8EA1C7FD 0x5E06 +0x8EA1C7FE 0x5E76 +0x8EA1C8A1 0x5E74 +0x8EA1C8A2 0x5F0F +0x8EA1C8A3 0x5F1B +0x8EA1C8A4 0x5FD9 +0x8EA1C8A5 0x5FD6 +0x8EA1C8A6 0x620E +0x8EA1C8A7 0x620C +0x8EA1C8A8 0x620D +0x8EA1C8A9 0x6210 +0x8EA1C8AA 0x6263 +0x8EA1C8AB 0x625B +0x8EA1C8AC 0x6258 +0x8EA1C8AD 0x6536 +0x8EA1C8AE 0x65E9 +0x8EA1C8AF 0x65E8 +0x8EA1C8B0 0x65EC +0x8EA1C8B1 0x65ED +0x8EA1C8B2 0x66F2 +0x8EA1C8B3 0x66F3 +0x8EA1C8B4 0x6709 +0x8EA1C8B5 0x673D +0x8EA1C8B6 0x6734 +0x8EA1C8B7 0x6731 +0x8EA1C8B8 0x6735 +0x8EA1C8B9 0x6B21 +0x8EA1C8BA 0x6B64 +0x8EA1C8BB 0x6B7B +0x8EA1C8BC 0x6C16 +0x8EA1C8BD 0x6C5D +0x8EA1C8BE 0x6C57 +0x8EA1C8BF 0x6C59 +0x8EA1C8C0 0x6C5F +0x8EA1C8C1 0x6C60 +0x8EA1C8C2 0x6C50 +0x8EA1C8C3 0x6C55 +0x8EA1C8C4 0x6C61 +0x8EA1C8C5 0x6C5B +0x8EA1C8C6 0x6C4D +0x8EA1C8C7 0x6C4E +0x8EA1C8C8 0x7070 +0x8EA1C8C9 0x725F +0x8EA1C8CA 0x725D +0x8EA1C8CB 0x767E +0x8EA1C8CC 0x7AF9 +0x8EA1C8CD 0x7C73 +0x8EA1C8CE 0x7CF8 +0x8EA1C8CF 0x7F36 +0x8EA1C8D0 0x7F8A +0x8EA1C8D1 0x7FBD +0x8EA1C8D2 0x8001 +0x8EA1C8D3 0x8003 +0x8EA1C8D4 0x800C +0x8EA1C8D5 0x8012 +0x8EA1C8D6 0x8033 +0x8EA1C8D7 0x807F +0x8EA1C8D8 0x8089 +0x8EA1C8D9 0x808B +0x8EA1C8DA 0x808C +0x8EA1C8DB 0x81E3 +0x8EA1C8DC 0x81EA +0x8EA1C8DD 0x81F3 +0x8EA1C8DE 0x81FC +0x8EA1C8DF 0x820C +0x8EA1C8E0 0x821B +0x8EA1C8E1 0x821F +0x8EA1C8E2 0x826E +0x8EA1C8E3 0x8272 +0x8EA1C8E4 0x827E +0x8EA1C8E5 0x866B +0x8EA1C8E6 0x8840 +0x8EA1C8E7 0x884C +0x8EA1C8E8 0x8863 +0x8EA1C8E9 0x897F +0x8EA1C8EA 0x9621 +0x8EA1C8EB 0x4E32 +0x8EA1C8EC 0x4EA8 +0x8EA1C8ED 0x4F4D +0x8EA1C8EE 0x4F4F +0x8EA1C8EF 0x4F47 +0x8EA1C8F0 0x4F57 +0x8EA1C8F1 0x4F5E +0x8EA1C8F2 0x4F34 +0x8EA1C8F3 0x4F5B +0x8EA1C8F4 0x4F55 +0x8EA1C8F5 0x4F30 +0x8EA1C8F6 0x4F50 +0x8EA1C8F7 0x4F51 +0x8EA1C8F8 0x4F3D +0x8EA1C8F9 0x4F3A +0x8EA1C8FA 0x4F38 +0x8EA1C8FB 0x4F43 +0x8EA1C8FC 0x4F54 +0x8EA1C8FD 0x4F3C +0x8EA1C8FE 0x4F46 +0x8EA1C9A1 0x4F63 +0x8EA1C9A2 0x4F5C +0x8EA1C9A3 0x4F60 +0x8EA1C9A4 0x4F2F +0x8EA1C9A5 0x4F4E +0x8EA1C9A6 0x4F36 +0x8EA1C9A7 0x4F59 +0x8EA1C9A8 0x4F5D +0x8EA1C9A9 0x4F48 +0x8EA1C9AA 0x4F5A +0x8EA1C9AB 0x514C +0x8EA1C9AC 0x514B +0x8EA1C9AD 0x514D +0x8EA1C9AE 0x5175 +0x8EA1C9AF 0x51B6 +0x8EA1C9B0 0x51B7 +0x8EA1C9B1 0x5225 +0x8EA1C9B2 0x5224 +0x8EA1C9B3 0x5229 +0x8EA1C9B4 0x522A +0x8EA1C9B5 0x5228 +0x8EA1C9B6 0x52AB +0x8EA1C9B7 0x52A9 +0x8EA1C9B8 0x52AA +0x8EA1C9B9 0x52AC +0x8EA1C9BA 0x5323 +0x8EA1C9BB 0x5373 +0x8EA1C9BC 0x5375 +0x8EA1C9BD 0x541D +0x8EA1C9BE 0x542D +0x8EA1C9BF 0x541E +0x8EA1C9C0 0x543E +0x8EA1C9C1 0x5426 +0x8EA1C9C2 0x544E +0x8EA1C9C3 0x5427 +0x8EA1C9C4 0x5446 +0x8EA1C9C5 0x5443 +0x8EA1C9C6 0x5433 +0x8EA1C9C7 0x5448 +0x8EA1C9C8 0x5442 +0x8EA1C9C9 0x541B +0x8EA1C9CA 0x5429 +0x8EA1C9CB 0x544A +0x8EA1C9CC 0x5439 +0x8EA1C9CD 0x543B +0x8EA1C9CE 0x5438 +0x8EA1C9CF 0x542E +0x8EA1C9D0 0x5435 +0x8EA1C9D1 0x5436 +0x8EA1C9D2 0x5420 +0x8EA1C9D3 0x543C +0x8EA1C9D4 0x5440 +0x8EA1C9D5 0x5431 +0x8EA1C9D6 0x542B +0x8EA1C9D7 0x541F +0x8EA1C9D8 0x542C +0x8EA1C9D9 0x56EA +0x8EA1C9DA 0x56F0 +0x8EA1C9DB 0x56E4 +0x8EA1C9DC 0x56EB +0x8EA1C9DD 0x574A +0x8EA1C9DE 0x5751 +0x8EA1C9DF 0x5740 +0x8EA1C9E0 0x574D +0x8EA1C9E1 0x5747 +0x8EA1C9E2 0x574E +0x8EA1C9E3 0x573E +0x8EA1C9E4 0x5750 +0x8EA1C9E5 0x574F +0x8EA1C9E6 0x573B +0x8EA1C9E7 0x58EF +0x8EA1C9E8 0x593E +0x8EA1C9E9 0x599D +0x8EA1C9EA 0x5992 +0x8EA1C9EB 0x59A8 +0x8EA1C9EC 0x599E +0x8EA1C9ED 0x59A3 +0x8EA1C9EE 0x5999 +0x8EA1C9EF 0x5996 +0x8EA1C9F0 0x598D +0x8EA1C9F1 0x59A4 +0x8EA1C9F2 0x5993 +0x8EA1C9F3 0x598A +0x8EA1C9F4 0x59A5 +0x8EA1C9F5 0x5B5D +0x8EA1C9F6 0x5B5C +0x8EA1C9F7 0x5B5A +0x8EA1C9F8 0x5B5B +0x8EA1C9F9 0x5B8C +0x8EA1C9FA 0x5B8B +0x8EA1C9FB 0x5B8F +0x8EA1C9FC 0x5C2C +0x8EA1C9FD 0x5C40 +0x8EA1C9FE 0x5C41 +0x8EA1CAA1 0x5C3F +0x8EA1CAA2 0x5C3E +0x8EA1CAA3 0x5C90 +0x8EA1CAA4 0x5C91 +0x8EA1CAA5 0x5C94 +0x8EA1CAA6 0x5C8C +0x8EA1CAA7 0x5DEB +0x8EA1CAA8 0x5E0C +0x8EA1CAA9 0x5E8F +0x8EA1CAAA 0x5E87 +0x8EA1CAAB 0x5E8A +0x8EA1CAAC 0x5EF7 +0x8EA1CAAD 0x5F04 +0x8EA1CAAE 0x5F1F +0x8EA1CAAF 0x5F64 +0x8EA1CAB0 0x5F62 +0x8EA1CAB1 0x5F77 +0x8EA1CAB2 0x5F79 +0x8EA1CAB3 0x5FD8 +0x8EA1CAB4 0x5FCC +0x8EA1CAB5 0x5FD7 +0x8EA1CAB6 0x5FCD +0x8EA1CAB7 0x5FF1 +0x8EA1CAB8 0x5FEB +0x8EA1CAB9 0x5FF8 +0x8EA1CABA 0x5FEA +0x8EA1CABB 0x6212 +0x8EA1CABC 0x6211 +0x8EA1CABD 0x6284 +0x8EA1CABE 0x6297 +0x8EA1CABF 0x6296 +0x8EA1CAC0 0x6280 +0x8EA1CAC1 0x6276 +0x8EA1CAC2 0x6289 +0x8EA1CAC3 0x626D +0x8EA1CAC4 0x628A +0x8EA1CAC5 0x627C +0x8EA1CAC6 0x627E +0x8EA1CAC7 0x6279 +0x8EA1CAC8 0x6273 +0x8EA1CAC9 0x6292 +0x8EA1CACA 0x626F +0x8EA1CACB 0x6298 +0x8EA1CACC 0x626E +0x8EA1CACD 0x6295 +0x8EA1CACE 0x6293 +0x8EA1CACF 0x6291 +0x8EA1CAD0 0x6286 +0x8EA1CAD1 0x6539 +0x8EA1CAD2 0x653B +0x8EA1CAD3 0x6538 +0x8EA1CAD4 0x65F1 +0x8EA1CAD5 0x66F4 +0x8EA1CAD6 0x675F +0x8EA1CAD7 0x674E +0x8EA1CAD8 0x674F +0x8EA1CAD9 0x6750 +0x8EA1CADA 0x6751 +0x8EA1CADB 0x675C +0x8EA1CADC 0x6756 +0x8EA1CADD 0x675E +0x8EA1CADE 0x6749 +0x8EA1CADF 0x6746 +0x8EA1CAE0 0x6760 +0x8EA1CAE1 0x6753 +0x8EA1CAE2 0x6757 +0x8EA1CAE3 0x6B65 +0x8EA1CAE4 0x6BCF +0x8EA1CAE5 0x6C42 +0x8EA1CAE6 0x6C5E +0x8EA1CAE7 0x6C99 +0x8EA1CAE8 0x6C81 +0x8EA1CAE9 0x6C88 +0x8EA1CAEA 0x6C89 +0x8EA1CAEB 0x6C85 +0x8EA1CAEC 0x6C9B +0x8EA1CAED 0x6C6A +0x8EA1CAEE 0x6C7A +0x8EA1CAEF 0x6C90 +0x8EA1CAF0 0x6C70 +0x8EA1CAF1 0x6C8C +0x8EA1CAF2 0x6C68 +0x8EA1CAF3 0x6C96 +0x8EA1CAF4 0x6C92 +0x8EA1CAF5 0x6C7D +0x8EA1CAF6 0x6C83 +0x8EA1CAF7 0x6C72 +0x8EA1CAF8 0x6C7E +0x8EA1CAF9 0x6C74 +0x8EA1CAFA 0x6C86 +0x8EA1CAFB 0x6C76 +0x8EA1CAFC 0x6C8D +0x8EA1CAFD 0x6C94 +0x8EA1CAFE 0x6C98 +0x8EA1CBA1 0x6C82 +0x8EA1CBA2 0x7076 +0x8EA1CBA3 0x707C +0x8EA1CBA4 0x707D +0x8EA1CBA5 0x7078 +0x8EA1CBA6 0x7262 +0x8EA1CBA7 0x7261 +0x8EA1CBA8 0x7260 +0x8EA1CBA9 0x72C4 +0x8EA1CBAA 0x72C2 +0x8EA1CBAB 0x7396 +0x8EA1CBAC 0x752C +0x8EA1CBAD 0x752B +0x8EA1CBAE 0x7537 +0x8EA1CBAF 0x7538 +0x8EA1CBB0 0x7682 +0x8EA1CBB1 0x76EF +0x8EA1CBB2 0x77E3 +0x8EA1CBB3 0x79C1 +0x8EA1CBB4 0x79C0 +0x8EA1CBB5 0x79BF +0x8EA1CBB6 0x7A76 +0x8EA1CBB7 0x7CFB +0x8EA1CBB8 0x7F55 +0x8EA1CBB9 0x8096 +0x8EA1CBBA 0x8093 +0x8EA1CBBB 0x809D +0x8EA1CBBC 0x8098 +0x8EA1CBBD 0x809B +0x8EA1CBBE 0x809A +0x8EA1CBBF 0x80B2 +0x8EA1CBC0 0x826F +0x8EA1CBC1 0x8292 +0x8EA1CBC2 0x828B +0x8EA1CBC3 0x828D +0x8EA1CBC4 0x898B +0x8EA1CBC5 0x89D2 +0x8EA1CBC6 0x8A00 +0x8EA1CBC7 0x8C37 +0x8EA1CBC8 0x8C46 +0x8EA1CBC9 0x8C55 +0x8EA1CBCA 0x8C9D +0x8EA1CBCB 0x8D64 +0x8EA1CBCC 0x8D70 +0x8EA1CBCD 0x8DB3 +0x8EA1CBCE 0x8EAB +0x8EA1CBCF 0x8ECA +0x8EA1CBD0 0x8F9B +0x8EA1CBD1 0x8FB0 +0x8EA1CBD2 0x8FC2 +0x8EA1CBD3 0x8FC6 +0x8EA1CBD4 0x8FC5 +0x8EA1CBD5 0x8FC4 +0x8EA1CBD6 0x5DE1 +0x8EA1CBD7 0x9091 +0x8EA1CBD8 0x90A2 +0x8EA1CBD9 0x90AA +0x8EA1CBDA 0x90A6 +0x8EA1CBDB 0x90A3 +0x8EA1CBDC 0x9149 +0x8EA1CBDD 0x91C6 +0x8EA1CBDE 0x91CC +0x8EA1CBDF 0x9632 +0x8EA1CBE0 0x962E +0x8EA1CBE1 0x9631 +0x8EA1CBE2 0x962A +0x8EA1CBE3 0x962C +0x8EA1CBE4 0x4E26 +0x8EA1CBE5 0x4E56 +0x8EA1CBE6 0x4E73 +0x8EA1CBE7 0x4E8B +0x8EA1CBE8 0x4E9B +0x8EA1CBE9 0x4E9E +0x8EA1CBEA 0x4EAB +0x8EA1CBEB 0x4EAC +0x8EA1CBEC 0x4F6F +0x8EA1CBED 0x4F9D +0x8EA1CBEE 0x4F8D +0x8EA1CBEF 0x4F73 +0x8EA1CBF0 0x4F7F +0x8EA1CBF1 0x4F6C +0x8EA1CBF2 0x4F9B +0x8EA1CBF3 0x4F8B +0x8EA1CBF4 0x4F86 +0x8EA1CBF5 0x4F83 +0x8EA1CBF6 0x4F70 +0x8EA1CBF7 0x4F75 +0x8EA1CBF8 0x4F88 +0x8EA1CBF9 0x4F69 +0x8EA1CBFA 0x4F7B +0x8EA1CBFB 0x4F96 +0x8EA1CBFC 0x4F7E +0x8EA1CBFD 0x4F8F +0x8EA1CBFE 0x4F91 +0x8EA1CCA1 0x4F7A +0x8EA1CCA2 0x5154 +0x8EA1CCA3 0x5152 +0x8EA1CCA4 0x5155 +0x8EA1CCA5 0x5169 +0x8EA1CCA6 0x5177 +0x8EA1CCA7 0x5176 +0x8EA1CCA8 0x5178 +0x8EA1CCA9 0x51BD +0x8EA1CCAA 0x51FD +0x8EA1CCAB 0x523B +0x8EA1CCAC 0x5238 +0x8EA1CCAD 0x5237 +0x8EA1CCAE 0x523A +0x8EA1CCAF 0x5230 +0x8EA1CCB0 0x522E +0x8EA1CCB1 0x5236 +0x8EA1CCB2 0x5241 +0x8EA1CCB3 0x52BE +0x8EA1CCB4 0x52BB +0x8EA1CCB5 0x5352 +0x8EA1CCB6 0x5354 +0x8EA1CCB7 0x5353 +0x8EA1CCB8 0x5351 +0x8EA1CCB9 0x5366 +0x8EA1CCBA 0x5377 +0x8EA1CCBB 0x5378 +0x8EA1CCBC 0x5379 +0x8EA1CCBD 0x53D6 +0x8EA1CCBE 0x53D4 +0x8EA1CCBF 0x53D7 +0x8EA1CCC0 0x5473 +0x8EA1CCC1 0x5475 +0x8EA1CCC2 0x5496 +0x8EA1CCC3 0x5478 +0x8EA1CCC4 0x5495 +0x8EA1CCC5 0x5480 +0x8EA1CCC6 0x547B +0x8EA1CCC7 0x5477 +0x8EA1CCC8 0x5484 +0x8EA1CCC9 0x5492 +0x8EA1CCCA 0x5486 +0x8EA1CCCB 0x547C +0x8EA1CCCC 0x5490 +0x8EA1CCCD 0x5471 +0x8EA1CCCE 0x5476 +0x8EA1CCCF 0x548C +0x8EA1CCD0 0x549A +0x8EA1CCD1 0x5462 +0x8EA1CCD2 0x5468 +0x8EA1CCD3 0x548B +0x8EA1CCD4 0x547D +0x8EA1CCD5 0x548E +0x8EA1CCD6 0x56FA +0x8EA1CCD7 0x5783 +0x8EA1CCD8 0x5777 +0x8EA1CCD9 0x576A +0x8EA1CCDA 0x5769 +0x8EA1CCDB 0x5761 +0x8EA1CCDC 0x5766 +0x8EA1CCDD 0x5764 +0x8EA1CCDE 0x577C +0x8EA1CCDF 0x591C +0x8EA1CCE0 0x5949 +0x8EA1CCE1 0x5947 +0x8EA1CCE2 0x5948 +0x8EA1CCE3 0x5944 +0x8EA1CCE4 0x5954 +0x8EA1CCE5 0x59BE +0x8EA1CCE6 0x59BB +0x8EA1CCE7 0x59D4 +0x8EA1CCE8 0x59B9 +0x8EA1CCE9 0x59AE +0x8EA1CCEA 0x59D1 +0x8EA1CCEB 0x59C6 +0x8EA1CCEC 0x59D0 +0x8EA1CCED 0x59CD +0x8EA1CCEE 0x59CB +0x8EA1CCEF 0x59D3 +0x8EA1CCF0 0x59CA +0x8EA1CCF1 0x59AF +0x8EA1CCF2 0x59B3 +0x8EA1CCF3 0x59D2 +0x8EA1CCF4 0x59C5 +0x8EA1CCF5 0x5B5F +0x8EA1CCF6 0x5B64 +0x8EA1CCF7 0x5B63 +0x8EA1CCF8 0x5B97 +0x8EA1CCF9 0x5B9A +0x8EA1CCFA 0x5B98 +0x8EA1CCFB 0x5B9C +0x8EA1CCFC 0x5B99 +0x8EA1CCFD 0x5B9B +0x8EA1CCFE 0x5C1A +0x8EA1CDA1 0x5C48 +0x8EA1CDA2 0x5C45 +0x8EA1CDA3 0x5C46 +0x8EA1CDA4 0x5CB7 +0x8EA1CDA5 0x5CA1 +0x8EA1CDA6 0x5CB8 +0x8EA1CDA7 0x5CA9 +0x8EA1CDA8 0x5CAB +0x8EA1CDA9 0x5CB1 +0x8EA1CDAA 0x5CB3 +0x8EA1CDAB 0x5E18 +0x8EA1CDAC 0x5E1A +0x8EA1CDAD 0x5E16 +0x8EA1CDAE 0x5E15 +0x8EA1CDAF 0x5E1B +0x8EA1CDB0 0x5E11 +0x8EA1CDB1 0x5E78 +0x8EA1CDB2 0x5E9A +0x8EA1CDB3 0x5E97 +0x8EA1CDB4 0x5E9C +0x8EA1CDB5 0x5E95 +0x8EA1CDB6 0x5E96 +0x8EA1CDB7 0x5EF6 +0x8EA1CDB8 0x5F26 +0x8EA1CDB9 0x5F27 +0x8EA1CDBA 0x5F29 +0x8EA1CDBB 0x5F80 +0x8EA1CDBC 0x5F81 +0x8EA1CDBD 0x5F7F +0x8EA1CDBE 0x5F7C +0x8EA1CDBF 0x5FDD +0x8EA1CDC0 0x5FE0 +0x8EA1CDC1 0x5FFD +0x8EA1CDC2 0x5FF5 +0x8EA1CDC3 0x5FFF +0x8EA1CDC4 0x600F +0x8EA1CDC5 0x6014 +0x8EA1CDC6 0x602F +0x8EA1CDC7 0x6035 +0x8EA1CDC8 0x6016 +0x8EA1CDC9 0x602A +0x8EA1CDCA 0x6015 +0x8EA1CDCB 0x6021 +0x8EA1CDCC 0x6027 +0x8EA1CDCD 0x6029 +0x8EA1CDCE 0x602B +0x8EA1CDCF 0x601B +0x8EA1CDD0 0x6216 +0x8EA1CDD1 0x6215 +0x8EA1CDD2 0x623F +0x8EA1CDD3 0x623E +0x8EA1CDD4 0x6240 +0x8EA1CDD5 0x627F +0x8EA1CDD6 0x62C9 +0x8EA1CDD7 0x62CC +0x8EA1CDD8 0x62C4 +0x8EA1CDD9 0x62BF +0x8EA1CDDA 0x62C2 +0x8EA1CDDB 0x62B9 +0x8EA1CDDC 0x62D2 +0x8EA1CDDD 0x62DB +0x8EA1CDDE 0x62AB +0x8EA1CDDF 0x62D3 +0x8EA1CDE0 0x62D4 +0x8EA1CDE1 0x62CB +0x8EA1CDE2 0x62C8 +0x8EA1CDE3 0x62A8 +0x8EA1CDE4 0x62BD +0x8EA1CDE5 0x62BC +0x8EA1CDE6 0x62D0 +0x8EA1CDE7 0x62D9 +0x8EA1CDE8 0x62C7 +0x8EA1CDE9 0x62CD +0x8EA1CDEA 0x62B5 +0x8EA1CDEB 0x62DA +0x8EA1CDEC 0x62B1 +0x8EA1CDED 0x62D8 +0x8EA1CDEE 0x62D6 +0x8EA1CDEF 0x62D7 +0x8EA1CDF0 0x62C6 +0x8EA1CDF1 0x62AC +0x8EA1CDF2 0x62CE +0x8EA1CDF3 0x653E +0x8EA1CDF4 0x65A7 +0x8EA1CDF5 0x65BC +0x8EA1CDF6 0x65FA +0x8EA1CDF7 0x6614 +0x8EA1CDF8 0x6613 +0x8EA1CDF9 0x660C +0x8EA1CDFA 0x6606 +0x8EA1CDFB 0x6602 +0x8EA1CDFC 0x660E +0x8EA1CDFD 0x6600 +0x8EA1CDFE 0x660F +0x8EA1CEA1 0x6615 +0x8EA1CEA2 0x660A +0x8EA1CEA3 0x6607 +0x8EA1CEA4 0x670D +0x8EA1CEA5 0x670B +0x8EA1CEA6 0x676D +0x8EA1CEA7 0x678B +0x8EA1CEA8 0x6795 +0x8EA1CEA9 0x6771 +0x8EA1CEAA 0x679C +0x8EA1CEAB 0x6773 +0x8EA1CEAC 0x6777 +0x8EA1CEAD 0x6787 +0x8EA1CEAE 0x679D +0x8EA1CEAF 0x6797 +0x8EA1CEB0 0x676F +0x8EA1CEB1 0x6770 +0x8EA1CEB2 0x677F +0x8EA1CEB3 0x6789 +0x8EA1CEB4 0x677E +0x8EA1CEB5 0x6790 +0x8EA1CEB6 0x6775 +0x8EA1CEB7 0x679A +0x8EA1CEB8 0x6793 +0x8EA1CEB9 0x677C +0x8EA1CEBA 0x676A +0x8EA1CEBB 0x6772 +0x8EA1CEBC 0x6B23 +0x8EA1CEBD 0x6B66 +0x8EA1CEBE 0x6B67 +0x8EA1CEBF 0x6B7F +0x8EA1CEC0 0x6C13 +0x8EA1CEC1 0x6C1B +0x8EA1CEC2 0x6CE3 +0x8EA1CEC3 0x6CE8 +0x8EA1CEC4 0x6CF3 +0x8EA1CEC5 0x6CB1 +0x8EA1CEC6 0x6CCC +0x8EA1CEC7 0x6CE5 +0x8EA1CEC8 0x6CB3 +0x8EA1CEC9 0x6CBD +0x8EA1CECA 0x6CBE +0x8EA1CECB 0x6CBC +0x8EA1CECC 0x6CE2 +0x8EA1CECD 0x6CAB +0x8EA1CECE 0x6CD5 +0x8EA1CECF 0x6CD3 +0x8EA1CED0 0x6CB8 +0x8EA1CED1 0x6CC4 +0x8EA1CED2 0x6CB9 +0x8EA1CED3 0x6CC1 +0x8EA1CED4 0x6CAE +0x8EA1CED5 0x6CD7 +0x8EA1CED6 0x6CC5 +0x8EA1CED7 0x6CF1 +0x8EA1CED8 0x6CBF +0x8EA1CED9 0x6CBB +0x8EA1CEDA 0x6CE1 +0x8EA1CEDB 0x6CDB +0x8EA1CEDC 0x6CCA +0x8EA1CEDD 0x6CAC +0x8EA1CEDE 0x6CEF +0x8EA1CEDF 0x6CDC +0x8EA1CEE0 0x6CD6 +0x8EA1CEE1 0x6CE0 +0x8EA1CEE2 0x7095 +0x8EA1CEE3 0x708E +0x8EA1CEE4 0x7092 +0x8EA1CEE5 0x708A +0x8EA1CEE6 0x7099 +0x8EA1CEE7 0x722C +0x8EA1CEE8 0x722D +0x8EA1CEE9 0x7238 +0x8EA1CEEA 0x7248 +0x8EA1CEEB 0x7267 +0x8EA1CEEC 0x7269 +0x8EA1CEED 0x72C0 +0x8EA1CEEE 0x72CE +0x8EA1CEEF 0x72D9 +0x8EA1CEF0 0x72D7 +0x8EA1CEF1 0x72D0 +0x8EA1CEF2 0x73A9 +0x8EA1CEF3 0x73A8 +0x8EA1CEF4 0x739F +0x8EA1CEF5 0x73AB +0x8EA1CEF6 0x73A5 +0x8EA1CEF7 0x753D +0x8EA1CEF8 0x759D +0x8EA1CEF9 0x7599 +0x8EA1CEFA 0x759A +0x8EA1CEFB 0x7684 +0x8EA1CEFC 0x76C2 +0x8EA1CEFD 0x76F2 +0x8EA1CEFE 0x76F4 +0x8EA1CFA1 0x77E5 +0x8EA1CFA2 0x77FD +0x8EA1CFA3 0x793E +0x8EA1CFA4 0x7940 +0x8EA1CFA5 0x7941 +0x8EA1CFA6 0x79C9 +0x8EA1CFA7 0x79C8 +0x8EA1CFA8 0x7A7A +0x8EA1CFA9 0x7A79 +0x8EA1CFAA 0x7AFA +0x8EA1CFAB 0x7CFE +0x8EA1CFAC 0x7F54 +0x8EA1CFAD 0x7F8C +0x8EA1CFAE 0x7F8B +0x8EA1CFAF 0x8005 +0x8EA1CFB0 0x80BA +0x8EA1CFB1 0x80A5 +0x8EA1CFB2 0x80A2 +0x8EA1CFB3 0x80B1 +0x8EA1CFB4 0x80A1 +0x8EA1CFB5 0x80AB +0x8EA1CFB6 0x80A9 +0x8EA1CFB7 0x80B4 +0x8EA1CFB8 0x80AA +0x8EA1CFB9 0x80AF +0x8EA1CFBA 0x81E5 +0x8EA1CFBB 0x81FE +0x8EA1CFBC 0x820D +0x8EA1CFBD 0x82B3 +0x8EA1CFBE 0x829D +0x8EA1CFBF 0x8299 +0x8EA1CFC0 0x82AD +0x8EA1CFC1 0x82BD +0x8EA1CFC2 0x829F +0x8EA1CFC3 0x82B9 +0x8EA1CFC4 0x82B1 +0x8EA1CFC5 0x82AC +0x8EA1CFC6 0x82A5 +0x8EA1CFC7 0x82AF +0x8EA1CFC8 0x82B8 +0x8EA1CFC9 0x82A3 +0x8EA1CFCA 0x82B0 +0x8EA1CFCB 0x82BE +0x8EA1CFCC 0x82B7 +0x8EA1CFCD 0x864E +0x8EA1CFCE 0x8671 +0x8EA1CFCF 0x521D +0x8EA1CFD0 0x8868 +0x8EA1CFD1 0x8ECB +0x8EA1CFD2 0x8FCE +0x8EA1CFD3 0x8FD4 +0x8EA1CFD4 0x8FD1 +0x8EA1CFD5 0x90B5 +0x8EA1CFD6 0x90B8 +0x8EA1CFD7 0x90B1 +0x8EA1CFD8 0x90B6 +0x8EA1CFD9 0x91C7 +0x8EA1CFDA 0x91D1 +0x8EA1CFDB 0x9577 +0x8EA1CFDC 0x9580 +0x8EA1CFDD 0x961C +0x8EA1CFDE 0x9640 +0x8EA1CFDF 0x963F +0x8EA1CFE0 0x963B +0x8EA1CFE1 0x9644 +0x8EA1CFE2 0x9642 +0x8EA1CFE3 0x96B9 +0x8EA1CFE4 0x96E8 +0x8EA1CFE5 0x9752 +0x8EA1CFE6 0x975E +0x8EA1CFE7 0x4E9F +0x8EA1CFE8 0x4EAD +0x8EA1CFE9 0x4EAE +0x8EA1CFEA 0x4FE1 +0x8EA1CFEB 0x4FB5 +0x8EA1CFEC 0x4FAF +0x8EA1CFED 0x4FBF +0x8EA1CFEE 0x4FE0 +0x8EA1CFEF 0x4FD1 +0x8EA1CFF0 0x4FCF +0x8EA1CFF1 0x4FDD +0x8EA1CFF2 0x4FC3 +0x8EA1CFF3 0x4FB6 +0x8EA1CFF4 0x4FD8 +0x8EA1CFF5 0x4FDF +0x8EA1CFF6 0x4FCA +0x8EA1CFF7 0x4FD7 +0x8EA1CFF8 0x4FAE +0x8EA1CFF9 0x4FD0 +0x8EA1CFFA 0x4FC4 +0x8EA1CFFB 0x4FC2 +0x8EA1CFFC 0x4FDA +0x8EA1CFFD 0x4FCE +0x8EA1CFFE 0x4FDE +0x8EA1D0A1 0x4FB7 +0x8EA1D0A2 0x5157 +0x8EA1D0A3 0x5192 +0x8EA1D0A4 0x5191 +0x8EA1D0A5 0x51A0 +0x8EA1D0A6 0x524E +0x8EA1D0A7 0x5243 +0x8EA1D0A8 0x524A +0x8EA1D0A9 0x524D +0x8EA1D0AA 0x524C +0x8EA1D0AB 0x524B +0x8EA1D0AC 0x5247 +0x8EA1D0AD 0x52C7 +0x8EA1D0AE 0x52C9 +0x8EA1D0AF 0x52C3 +0x8EA1D0B0 0x52C1 +0x8EA1D0B1 0x530D +0x8EA1D0B2 0x5357 +0x8EA1D0B3 0x537B +0x8EA1D0B4 0x539A +0x8EA1D0B5 0x53DB +0x8EA1D0B6 0x54AC +0x8EA1D0B7 0x54C0 +0x8EA1D0B8 0x54A8 +0x8EA1D0B9 0x54CE +0x8EA1D0BA 0x54C9 +0x8EA1D0BB 0x54B8 +0x8EA1D0BC 0x54A6 +0x8EA1D0BD 0x54B3 +0x8EA1D0BE 0x54C7 +0x8EA1D0BF 0x54C2 +0x8EA1D0C0 0x54BD +0x8EA1D0C1 0x54AA +0x8EA1D0C2 0x54C1 +0x8EA1D0C3 0x54C4 +0x8EA1D0C4 0x54C8 +0x8EA1D0C5 0x54AF +0x8EA1D0C6 0x54AB +0x8EA1D0C7 0x54B1 +0x8EA1D0C8 0x54BB +0x8EA1D0C9 0x54A9 +0x8EA1D0CA 0x54A7 +0x8EA1D0CB 0x54BF +0x8EA1D0CC 0x56FF +0x8EA1D0CD 0x5782 +0x8EA1D0CE 0x578B +0x8EA1D0CF 0x57A0 +0x8EA1D0D0 0x57A3 +0x8EA1D0D1 0x57A2 +0x8EA1D0D2 0x57CE +0x8EA1D0D3 0x57AE +0x8EA1D0D4 0x5793 +0x8EA1D0D5 0x5955 +0x8EA1D0D6 0x5951 +0x8EA1D0D7 0x594F +0x8EA1D0D8 0x594E +0x8EA1D0D9 0x5950 +0x8EA1D0DA 0x59DC +0x8EA1D0DB 0x59D8 +0x8EA1D0DC 0x59FF +0x8EA1D0DD 0x59E3 +0x8EA1D0DE 0x59E8 +0x8EA1D0DF 0x5A03 +0x8EA1D0E0 0x59E5 +0x8EA1D0E1 0x59EA +0x8EA1D0E2 0x59DA +0x8EA1D0E3 0x59E6 +0x8EA1D0E4 0x5A01 +0x8EA1D0E5 0x59FB +0x8EA1D0E6 0x5B69 +0x8EA1D0E7 0x5BA3 +0x8EA1D0E8 0x5BA6 +0x8EA1D0E9 0x5BA4 +0x8EA1D0EA 0x5BA2 +0x8EA1D0EB 0x5BA5 +0x8EA1D0EC 0x5C01 +0x8EA1D0ED 0x5C4E +0x8EA1D0EE 0x5C4F +0x8EA1D0EF 0x5C4D +0x8EA1D0F0 0x5C4B +0x8EA1D0F1 0x5CD9 +0x8EA1D0F2 0x5CD2 +0x8EA1D0F3 0x5DF7 +0x8EA1D0F4 0x5E1D +0x8EA1D0F5 0x5E25 +0x8EA1D0F6 0x5E1F +0x8EA1D0F7 0x5E7D +0x8EA1D0F8 0x5EA0 +0x8EA1D0F9 0x5EA6 +0x8EA1D0FA 0x5EFA +0x8EA1D0FB 0x5F08 +0x8EA1D0FC 0x5F2D +0x8EA1D0FD 0x5F65 +0x8EA1D0FE 0x5F88 +0x8EA1D1A1 0x5F85 +0x8EA1D1A2 0x5F8A +0x8EA1D1A3 0x5F8B +0x8EA1D1A4 0x5F87 +0x8EA1D1A5 0x5F8C +0x8EA1D1A6 0x5F89 +0x8EA1D1A7 0x6012 +0x8EA1D1A8 0x601D +0x8EA1D1A9 0x6020 +0x8EA1D1AA 0x6025 +0x8EA1D1AB 0x600E +0x8EA1D1AC 0x6028 +0x8EA1D1AD 0x604D +0x8EA1D1AE 0x6070 +0x8EA1D1AF 0x6068 +0x8EA1D1B0 0x6062 +0x8EA1D1B1 0x6046 +0x8EA1D1B2 0x6043 +0x8EA1D1B3 0x606C +0x8EA1D1B4 0x606B +0x8EA1D1B5 0x606A +0x8EA1D1B6 0x6064 +0x8EA1D1B7 0x6241 +0x8EA1D1B8 0x62DC +0x8EA1D1B9 0x6316 +0x8EA1D1BA 0x6309 +0x8EA1D1BB 0x62FC +0x8EA1D1BC 0x62ED +0x8EA1D1BD 0x6301 +0x8EA1D1BE 0x62EE +0x8EA1D1BF 0x62FD +0x8EA1D1C0 0x6307 +0x8EA1D1C1 0x62F1 +0x8EA1D1C2 0x62F7 +0x8EA1D1C3 0x62EF +0x8EA1D1C4 0x62EC +0x8EA1D1C5 0x62FE +0x8EA1D1C6 0x62F4 +0x8EA1D1C7 0x6311 +0x8EA1D1C8 0x6302 +0x8EA1D1C9 0x653F +0x8EA1D1CA 0x6545 +0x8EA1D1CB 0x65AB +0x8EA1D1CC 0x65BD +0x8EA1D1CD 0x65E2 +0x8EA1D1CE 0x6625 +0x8EA1D1CF 0x662D +0x8EA1D1D0 0x6620 +0x8EA1D1D1 0x6627 +0x8EA1D1D2 0x662F +0x8EA1D1D3 0x661F +0x8EA1D1D4 0x6628 +0x8EA1D1D5 0x6631 +0x8EA1D1D6 0x6624 +0x8EA1D1D7 0x66F7 +0x8EA1D1D8 0x67FF +0x8EA1D1D9 0x67D3 +0x8EA1D1DA 0x67F1 +0x8EA1D1DB 0x67D4 +0x8EA1D1DC 0x67D0 +0x8EA1D1DD 0x67EC +0x8EA1D1DE 0x67B6 +0x8EA1D1DF 0x67AF +0x8EA1D1E0 0x67F5 +0x8EA1D1E1 0x67E9 +0x8EA1D1E2 0x67EF +0x8EA1D1E3 0x67C4 +0x8EA1D1E4 0x67D1 +0x8EA1D1E5 0x67B4 +0x8EA1D1E6 0x67DA +0x8EA1D1E7 0x67E5 +0x8EA1D1E8 0x67B8 +0x8EA1D1E9 0x67CF +0x8EA1D1EA 0x67DE +0x8EA1D1EB 0x67F3 +0x8EA1D1EC 0x67B0 +0x8EA1D1ED 0x67D9 +0x8EA1D1EE 0x67E2 +0x8EA1D1EF 0x67DD +0x8EA1D1F0 0x67D2 +0x8EA1D1F1 0x6B6A +0x8EA1D1F2 0x6B83 +0x8EA1D1F3 0x6B86 +0x8EA1D1F4 0x6BB5 +0x8EA1D1F5 0x6BD2 +0x8EA1D1F6 0x6BD7 +0x8EA1D1F7 0x6C1F +0x8EA1D1F8 0x6CC9 +0x8EA1D1F9 0x6D0B +0x8EA1D1FA 0x6D32 +0x8EA1D1FB 0x6D2A +0x8EA1D1FC 0x6D41 +0x8EA1D1FD 0x6D25 +0x8EA1D1FE 0x6D0C +0x8EA1D2A1 0x6D31 +0x8EA1D2A2 0x6D1E +0x8EA1D2A3 0x6D17 +0x8EA1D2A4 0x6D3B +0x8EA1D2A5 0x6D3D +0x8EA1D2A6 0x6D3E +0x8EA1D2A7 0x6D36 +0x8EA1D2A8 0x6D1B +0x8EA1D2A9 0x6CF5 +0x8EA1D2AA 0x6D39 +0x8EA1D2AB 0x6D27 +0x8EA1D2AC 0x6D38 +0x8EA1D2AD 0x6D29 +0x8EA1D2AE 0x6D2E +0x8EA1D2AF 0x6D35 +0x8EA1D2B0 0x6D0E +0x8EA1D2B1 0x6D2B +0x8EA1D2B2 0x70AB +0x8EA1D2B3 0x70BA +0x8EA1D2B4 0x70B3 +0x8EA1D2B5 0x70AC +0x8EA1D2B6 0x70AF +0x8EA1D2B7 0x70AD +0x8EA1D2B8 0x70B8 +0x8EA1D2B9 0x70AE +0x8EA1D2BA 0x70A4 +0x8EA1D2BB 0x7230 +0x8EA1D2BC 0x7272 +0x8EA1D2BD 0x726F +0x8EA1D2BE 0x7274 +0x8EA1D2BF 0x72E9 +0x8EA1D2C0 0x72E0 +0x8EA1D2C1 0x72E1 +0x8EA1D2C2 0x73B7 +0x8EA1D2C3 0x73CA +0x8EA1D2C4 0x73BB +0x8EA1D2C5 0x73B2 +0x8EA1D2C6 0x73CD +0x8EA1D2C7 0x73C0 +0x8EA1D2C8 0x73B3 +0x8EA1D2C9 0x751A +0x8EA1D2CA 0x752D +0x8EA1D2CB 0x754F +0x8EA1D2CC 0x754C +0x8EA1D2CD 0x754E +0x8EA1D2CE 0x754B +0x8EA1D2CF 0x75AB +0x8EA1D2D0 0x75A4 +0x8EA1D2D1 0x75A5 +0x8EA1D2D2 0x75A2 +0x8EA1D2D3 0x75A3 +0x8EA1D2D4 0x7678 +0x8EA1D2D5 0x7686 +0x8EA1D2D6 0x7687 +0x8EA1D2D7 0x7688 +0x8EA1D2D8 0x76C8 +0x8EA1D2D9 0x76C6 +0x8EA1D2DA 0x76C3 +0x8EA1D2DB 0x76C5 +0x8EA1D2DC 0x7701 +0x8EA1D2DD 0x76F9 +0x8EA1D2DE 0x76F8 +0x8EA1D2DF 0x7709 +0x8EA1D2E0 0x770B +0x8EA1D2E1 0x76FE +0x8EA1D2E2 0x76FC +0x8EA1D2E3 0x7707 +0x8EA1D2E4 0x77DC +0x8EA1D2E5 0x7802 +0x8EA1D2E6 0x7814 +0x8EA1D2E7 0x780C +0x8EA1D2E8 0x780D +0x8EA1D2E9 0x7946 +0x8EA1D2EA 0x7949 +0x8EA1D2EB 0x7948 +0x8EA1D2EC 0x7947 +0x8EA1D2ED 0x79B9 +0x8EA1D2EE 0x79BA +0x8EA1D2EF 0x79D1 +0x8EA1D2F0 0x79D2 +0x8EA1D2F1 0x79CB +0x8EA1D2F2 0x7A7F +0x8EA1D2F3 0x7A81 +0x8EA1D2F4 0x7AFF +0x8EA1D2F5 0x7AFD +0x8EA1D2F6 0x7C7D +0x8EA1D2F7 0x7D02 +0x8EA1D2F8 0x7D05 +0x8EA1D2F9 0x7D00 +0x8EA1D2FA 0x7D09 +0x8EA1D2FB 0x7D07 +0x8EA1D2FC 0x7D04 +0x8EA1D2FD 0x7D06 +0x8EA1D2FE 0x7F38 +0x8EA1D3A1 0x7F8E +0x8EA1D3A2 0x7FBF +0x8EA1D3A3 0x8010 +0x8EA1D3A4 0x800D +0x8EA1D3A5 0x8011 +0x8EA1D3A6 0x8036 +0x8EA1D3A7 0x80D6 +0x8EA1D3A8 0x80E5 +0x8EA1D3A9 0x80DA +0x8EA1D3AA 0x80C3 +0x8EA1D3AB 0x80C4 +0x8EA1D3AC 0x80CC +0x8EA1D3AD 0x80E1 +0x8EA1D3AE 0x80DB +0x8EA1D3AF 0x80CE +0x8EA1D3B0 0x80DE +0x8EA1D3B1 0x80E4 +0x8EA1D3B2 0x80DD +0x8EA1D3B3 0x81F4 +0x8EA1D3B4 0x8222 +0x8EA1D3B5 0x82E7 +0x8EA1D3B6 0x8303 +0x8EA1D3B7 0x8305 +0x8EA1D3B8 0x82E3 +0x8EA1D3B9 0x82DB +0x8EA1D3BA 0x82E6 +0x8EA1D3BB 0x8304 +0x8EA1D3BC 0x82E5 +0x8EA1D3BD 0x8302 +0x8EA1D3BE 0x8309 +0x8EA1D3BF 0x82D2 +0x8EA1D3C0 0x82D7 +0x8EA1D3C1 0x82F1 +0x8EA1D3C2 0x8301 +0x8EA1D3C3 0x82DC +0x8EA1D3C4 0x82D4 +0x8EA1D3C5 0x82D1 +0x8EA1D3C6 0x82DE +0x8EA1D3C7 0x82D3 +0x8EA1D3C8 0x82DF +0x8EA1D3C9 0x82EF +0x8EA1D3CA 0x8306 +0x8EA1D3CB 0x8650 +0x8EA1D3CC 0x8679 +0x8EA1D3CD 0x867B +0x8EA1D3CE 0x867A +0x8EA1D3CF 0x884D +0x8EA1D3D0 0x886B +0x8EA1D3D1 0x8981 +0x8EA1D3D2 0x89D4 +0x8EA1D3D3 0x8A08 +0x8EA1D3D4 0x8A02 +0x8EA1D3D5 0x8A03 +0x8EA1D3D6 0x8C9E +0x8EA1D3D7 0x8CA0 +0x8EA1D3D8 0x8D74 +0x8EA1D3D9 0x8D73 +0x8EA1D3DA 0x8DB4 +0x8EA1D3DB 0x8ECD +0x8EA1D3DC 0x8ECC +0x8EA1D3DD 0x8FF0 +0x8EA1D3DE 0x8FE6 +0x8EA1D3DF 0x8FE2 +0x8EA1D3E0 0x8FEA +0x8EA1D3E1 0x8FE5 +0x8EA1D3E2 0x8FED +0x8EA1D3E3 0x8FEB +0x8EA1D3E4 0x8FE4 +0x8EA1D3E5 0x8FE8 +0x8EA1D3E6 0x90CA +0x8EA1D3E7 0x90CE +0x8EA1D3E8 0x90C1 +0x8EA1D3E9 0x90C3 +0x8EA1D3EA 0x914B +0x8EA1D3EB 0x914A +0x8EA1D3EC 0x91CD +0x8EA1D3ED 0x9582 +0x8EA1D3EE 0x9650 +0x8EA1D3EF 0x964B +0x8EA1D3F0 0x964C +0x8EA1D3F1 0x964D +0x8EA1D3F2 0x9762 +0x8EA1D3F3 0x9769 +0x8EA1D3F4 0x97CB +0x8EA1D3F5 0x97ED +0x8EA1D3F6 0x97F3 +0x8EA1D3F7 0x9801 +0x8EA1D3F8 0x98A8 +0x8EA1D3F9 0x98DB +0x8EA1D3FA 0x98DF +0x8EA1D3FB 0x9996 +0x8EA1D3FC 0x9999 +0x8EA1D3FD 0x4E58 +0x8EA1D3FE 0x4EB3 +0x8EA1D4A1 0x500C +0x8EA1D4A2 0x500D +0x8EA1D4A3 0x5023 +0x8EA1D4A4 0x4FEF +0x8EA1D4A5 0x5026 +0x8EA1D4A6 0x5025 +0x8EA1D4A7 0x4FF8 +0x8EA1D4A8 0x5029 +0x8EA1D4A9 0x5016 +0x8EA1D4AA 0x5006 +0x8EA1D4AB 0x503C +0x8EA1D4AC 0x501F +0x8EA1D4AD 0x501A +0x8EA1D4AE 0x5012 +0x8EA1D4AF 0x5011 +0x8EA1D4B0 0x4FFA +0x8EA1D4B1 0x5000 +0x8EA1D4B2 0x5014 +0x8EA1D4B3 0x5028 +0x8EA1D4B4 0x4FF1 +0x8EA1D4B5 0x5021 +0x8EA1D4B6 0x500B +0x8EA1D4B7 0x5019 +0x8EA1D4B8 0x5018 +0x8EA1D4B9 0x4FF3 +0x8EA1D4BA 0x4FEE +0x8EA1D4BB 0x502D +0x8EA1D4BC 0x502A +0x8EA1D4BD 0x4FFE +0x8EA1D4BE 0x502B +0x8EA1D4BF 0x5009 +0x8EA1D4C0 0x517C +0x8EA1D4C1 0x51A4 +0x8EA1D4C2 0x51A5 +0x8EA1D4C3 0x51A2 +0x8EA1D4C4 0x51CD +0x8EA1D4C5 0x51CC +0x8EA1D4C6 0x51C6 +0x8EA1D4C7 0x51CB +0x8EA1D4C8 0x5256 +0x8EA1D4C9 0x525C +0x8EA1D4CA 0x5254 +0x8EA1D4CB 0x525B +0x8EA1D4CC 0x525D +0x8EA1D4CD 0x532A +0x8EA1D4CE 0x537F +0x8EA1D4CF 0x539F +0x8EA1D4D0 0x539D +0x8EA1D4D1 0x53DF +0x8EA1D4D2 0x54E8 +0x8EA1D4D3 0x5510 +0x8EA1D4D4 0x5501 +0x8EA1D4D5 0x5537 +0x8EA1D4D6 0x54FC +0x8EA1D4D7 0x54E5 +0x8EA1D4D8 0x54F2 +0x8EA1D4D9 0x5506 +0x8EA1D4DA 0x54FA +0x8EA1D4DB 0x5514 +0x8EA1D4DC 0x54E9 +0x8EA1D4DD 0x54ED +0x8EA1D4DE 0x54E1 +0x8EA1D4DF 0x5509 +0x8EA1D4E0 0x54EE +0x8EA1D4E1 0x54EA +0x8EA1D4E2 0x54E6 +0x8EA1D4E3 0x5527 +0x8EA1D4E4 0x5507 +0x8EA1D4E5 0x54FD +0x8EA1D4E6 0x550F +0x8EA1D4E7 0x5703 +0x8EA1D4E8 0x5704 +0x8EA1D4E9 0x57C2 +0x8EA1D4EA 0x57D4 +0x8EA1D4EB 0x57CB +0x8EA1D4EC 0x57C3 +0x8EA1D4ED 0x5809 +0x8EA1D4EE 0x590F +0x8EA1D4EF 0x5957 +0x8EA1D4F0 0x5958 +0x8EA1D4F1 0x595A +0x8EA1D4F2 0x5A11 +0x8EA1D4F3 0x5A18 +0x8EA1D4F4 0x5A1C +0x8EA1D4F5 0x5A1F +0x8EA1D4F6 0x5A1B +0x8EA1D4F7 0x5A13 +0x8EA1D4F8 0x59EC +0x8EA1D4F9 0x5A20 +0x8EA1D4FA 0x5A23 +0x8EA1D4FB 0x5A29 +0x8EA1D4FC 0x5A25 +0x8EA1D4FD 0x5A0C +0x8EA1D4FE 0x5A09 +0x8EA1D5A1 0x5B6B +0x8EA1D5A2 0x5C58 +0x8EA1D5A3 0x5BB0 +0x8EA1D5A4 0x5BB3 +0x8EA1D5A5 0x5BB6 +0x8EA1D5A6 0x5BB4 +0x8EA1D5A7 0x5BAE +0x8EA1D5A8 0x5BB5 +0x8EA1D5A9 0x5BB9 +0x8EA1D5AA 0x5BB8 +0x8EA1D5AB 0x5C04 +0x8EA1D5AC 0x5C51 +0x8EA1D5AD 0x5C55 +0x8EA1D5AE 0x5C50 +0x8EA1D5AF 0x5CED +0x8EA1D5B0 0x5CFD +0x8EA1D5B1 0x5CFB +0x8EA1D5B2 0x5CEA +0x8EA1D5B3 0x5CE8 +0x8EA1D5B4 0x5CF0 +0x8EA1D5B5 0x5CF6 +0x8EA1D5B6 0x5D01 +0x8EA1D5B7 0x5CF4 +0x8EA1D5B8 0x5DEE +0x8EA1D5B9 0x5E2D +0x8EA1D5BA 0x5E2B +0x8EA1D5BB 0x5EAB +0x8EA1D5BC 0x5EAD +0x8EA1D5BD 0x5EA7 +0x8EA1D5BE 0x5F31 +0x8EA1D5BF 0x5F92 +0x8EA1D5C0 0x5F91 +0x8EA1D5C1 0x5F90 +0x8EA1D5C2 0x6059 +0x8EA1D5C3 0x6063 +0x8EA1D5C4 0x6065 +0x8EA1D5C5 0x6050 +0x8EA1D5C6 0x6055 +0x8EA1D5C7 0x606D +0x8EA1D5C8 0x6069 +0x8EA1D5C9 0x606F +0x8EA1D5CA 0x6084 +0x8EA1D5CB 0x609F +0x8EA1D5CC 0x609A +0x8EA1D5CD 0x608D +0x8EA1D5CE 0x6094 +0x8EA1D5CF 0x608C +0x8EA1D5D0 0x6085 +0x8EA1D5D1 0x6096 +0x8EA1D5D2 0x6247 +0x8EA1D5D3 0x62F3 +0x8EA1D5D4 0x6308 +0x8EA1D5D5 0x62FF +0x8EA1D5D6 0x634E +0x8EA1D5D7 0x633E +0x8EA1D5D8 0x632F +0x8EA1D5D9 0x6355 +0x8EA1D5DA 0x6342 +0x8EA1D5DB 0x6346 +0x8EA1D5DC 0x634F +0x8EA1D5DD 0x6349 +0x8EA1D5DE 0x633A +0x8EA1D5DF 0x6350 +0x8EA1D5E0 0x633D +0x8EA1D5E1 0x632A +0x8EA1D5E2 0x632B +0x8EA1D5E3 0x6328 +0x8EA1D5E4 0x634D +0x8EA1D5E5 0x634C +0x8EA1D5E6 0x6548 +0x8EA1D5E7 0x6549 +0x8EA1D5E8 0x6599 +0x8EA1D5E9 0x65C1 +0x8EA1D5EA 0x65C5 +0x8EA1D5EB 0x6642 +0x8EA1D5EC 0x6649 +0x8EA1D5ED 0x664F +0x8EA1D5EE 0x6643 +0x8EA1D5EF 0x6652 +0x8EA1D5F0 0x664C +0x8EA1D5F1 0x6645 +0x8EA1D5F2 0x6641 +0x8EA1D5F3 0x66F8 +0x8EA1D5F4 0x6714 +0x8EA1D5F5 0x6715 +0x8EA1D5F6 0x6717 +0x8EA1D5F7 0x6821 +0x8EA1D5F8 0x6838 +0x8EA1D5F9 0x6848 +0x8EA1D5FA 0x6846 +0x8EA1D5FB 0x6853 +0x8EA1D5FC 0x6839 +0x8EA1D5FD 0x6842 +0x8EA1D5FE 0x6854 +0x8EA1D6A1 0x6829 +0x8EA1D6A2 0x68B3 +0x8EA1D6A3 0x6817 +0x8EA1D6A4 0x684C +0x8EA1D6A5 0x6851 +0x8EA1D6A6 0x683D +0x8EA1D6A7 0x67F4 +0x8EA1D6A8 0x6850 +0x8EA1D6A9 0x6840 +0x8EA1D6AA 0x683C +0x8EA1D6AB 0x6843 +0x8EA1D6AC 0x682A +0x8EA1D6AD 0x6845 +0x8EA1D6AE 0x6813 +0x8EA1D6AF 0x6818 +0x8EA1D6B0 0x6841 +0x8EA1D6B1 0x6B8A +0x8EA1D6B2 0x6B89 +0x8EA1D6B3 0x6BB7 +0x8EA1D6B4 0x6C23 +0x8EA1D6B5 0x6C27 +0x8EA1D6B6 0x6C28 +0x8EA1D6B7 0x6C26 +0x8EA1D6B8 0x6C24 +0x8EA1D6B9 0x6CF0 +0x8EA1D6BA 0x6D6A +0x8EA1D6BB 0x6D95 +0x8EA1D6BC 0x6D88 +0x8EA1D6BD 0x6D87 +0x8EA1D6BE 0x6D66 +0x8EA1D6BF 0x6D78 +0x8EA1D6C0 0x6D77 +0x8EA1D6C1 0x6D59 +0x8EA1D6C2 0x6D93 +0x8EA1D6C3 0x6D6C +0x8EA1D6C4 0x6D89 +0x8EA1D6C5 0x6D6E +0x8EA1D6C6 0x6D5A +0x8EA1D6C7 0x6D74 +0x8EA1D6C8 0x6D69 +0x8EA1D6C9 0x6D8C +0x8EA1D6CA 0x6D8A +0x8EA1D6CB 0x6D79 +0x8EA1D6CC 0x6D85 +0x8EA1D6CD 0x6D65 +0x8EA1D6CE 0x6D94 +0x8EA1D6CF 0x70CA +0x8EA1D6D0 0x70D8 +0x8EA1D6D1 0x70E4 +0x8EA1D6D2 0x70D9 +0x8EA1D6D3 0x70C8 +0x8EA1D6D4 0x70CF +0x8EA1D6D5 0x7239 +0x8EA1D6D6 0x7279 +0x8EA1D6D7 0x72FC +0x8EA1D6D8 0x72F9 +0x8EA1D6D9 0x72FD +0x8EA1D6DA 0x72F8 +0x8EA1D6DB 0x72F7 +0x8EA1D6DC 0x7386 +0x8EA1D6DD 0x73ED +0x8EA1D6DE 0x7409 +0x8EA1D6DF 0x73EE +0x8EA1D6E0 0x73E0 +0x8EA1D6E1 0x73EA +0x8EA1D6E2 0x73DE +0x8EA1D6E3 0x7554 +0x8EA1D6E4 0x755D +0x8EA1D6E5 0x755C +0x8EA1D6E6 0x755A +0x8EA1D6E7 0x7559 +0x8EA1D6E8 0x75BE +0x8EA1D6E9 0x75C5 +0x8EA1D6EA 0x75C7 +0x8EA1D6EB 0x75B2 +0x8EA1D6EC 0x75B3 +0x8EA1D6ED 0x75BD +0x8EA1D6EE 0x75BC +0x8EA1D6EF 0x75B9 +0x8EA1D6F0 0x75C2 +0x8EA1D6F1 0x75B8 +0x8EA1D6F2 0x768B +0x8EA1D6F3 0x76B0 +0x8EA1D6F4 0x76CA +0x8EA1D6F5 0x76CD +0x8EA1D6F6 0x76CE +0x8EA1D6F7 0x7729 +0x8EA1D6F8 0x771F +0x8EA1D6F9 0x7720 +0x8EA1D6FA 0x7728 +0x8EA1D6FB 0x77E9 +0x8EA1D6FC 0x7830 +0x8EA1D6FD 0x7827 +0x8EA1D6FE 0x7838 +0x8EA1D7A1 0x781D +0x8EA1D7A2 0x7834 +0x8EA1D7A3 0x7837 +0x8EA1D7A4 0x7825 +0x8EA1D7A5 0x782D +0x8EA1D7A6 0x7820 +0x8EA1D7A7 0x781F +0x8EA1D7A8 0x7832 +0x8EA1D7A9 0x7955 +0x8EA1D7AA 0x7950 +0x8EA1D7AB 0x7960 +0x8EA1D7AC 0x795F +0x8EA1D7AD 0x7956 +0x8EA1D7AE 0x795E +0x8EA1D7AF 0x795D +0x8EA1D7B0 0x7957 +0x8EA1D7B1 0x795A +0x8EA1D7B2 0x79E4 +0x8EA1D7B3 0x79E3 +0x8EA1D7B4 0x79E7 +0x8EA1D7B5 0x79DF +0x8EA1D7B6 0x79E6 +0x8EA1D7B7 0x79E9 +0x8EA1D7B8 0x79D8 +0x8EA1D7B9 0x7A84 +0x8EA1D7BA 0x7A88 +0x8EA1D7BB 0x7AD9 +0x8EA1D7BC 0x7B06 +0x8EA1D7BD 0x7B11 +0x8EA1D7BE 0x7C89 +0x8EA1D7BF 0x7D21 +0x8EA1D7C0 0x7D17 +0x8EA1D7C1 0x7D0B +0x8EA1D7C2 0x7D0A +0x8EA1D7C3 0x7D20 +0x8EA1D7C4 0x7D22 +0x8EA1D7C5 0x7D14 +0x8EA1D7C6 0x7D10 +0x8EA1D7C7 0x7D15 +0x8EA1D7C8 0x7D1A +0x8EA1D7C9 0x7D1C +0x8EA1D7CA 0x7D0D +0x8EA1D7CB 0x7D19 +0x8EA1D7CC 0x7D1B +0x8EA1D7CD 0x7F3A +0x8EA1D7CE 0x7F5F +0x8EA1D7CF 0x7F94 +0x8EA1D7D0 0x7FC5 +0x8EA1D7D1 0x7FC1 +0x8EA1D7D2 0x8006 +0x8EA1D7D3 0x8004 +0x8EA1D7D4 0x8018 +0x8EA1D7D5 0x8015 +0x8EA1D7D6 0x8019 +0x8EA1D7D7 0x8017 +0x8EA1D7D8 0x803D +0x8EA1D7D9 0x803F +0x8EA1D7DA 0x80F1 +0x8EA1D7DB 0x8102 +0x8EA1D7DC 0x80F0 +0x8EA1D7DD 0x8105 +0x8EA1D7DE 0x80ED +0x8EA1D7DF 0x80F4 +0x8EA1D7E0 0x8106 +0x8EA1D7E1 0x80F8 +0x8EA1D7E2 0x80F3 +0x8EA1D7E3 0x8108 +0x8EA1D7E4 0x80FD +0x8EA1D7E5 0x810A +0x8EA1D7E6 0x80FC +0x8EA1D7E7 0x80EF +0x8EA1D7E8 0x81ED +0x8EA1D7E9 0x81EC +0x8EA1D7EA 0x8200 +0x8EA1D7EB 0x8210 +0x8EA1D7EC 0x822A +0x8EA1D7ED 0x822B +0x8EA1D7EE 0x8228 +0x8EA1D7EF 0x822C +0x8EA1D7F0 0x82BB +0x8EA1D7F1 0x832B +0x8EA1D7F2 0x8352 +0x8EA1D7F3 0x8354 +0x8EA1D7F4 0x834A +0x8EA1D7F5 0x8338 +0x8EA1D7F6 0x8350 +0x8EA1D7F7 0x8349 +0x8EA1D7F8 0x8335 +0x8EA1D7F9 0x8334 +0x8EA1D7FA 0x834F +0x8EA1D7FB 0x8332 +0x8EA1D7FC 0x8339 +0x8EA1D7FD 0x8336 +0x8EA1D7FE 0x8317 +0x8EA1D8A1 0x8340 +0x8EA1D8A2 0x8331 +0x8EA1D8A3 0x8328 +0x8EA1D8A4 0x8343 +0x8EA1D8A5 0x8654 +0x8EA1D8A6 0x868A +0x8EA1D8A7 0x86AA +0x8EA1D8A8 0x8693 +0x8EA1D8A9 0x86A4 +0x8EA1D8AA 0x86A9 +0x8EA1D8AB 0x868C +0x8EA1D8AC 0x86A3 +0x8EA1D8AD 0x869C +0x8EA1D8AE 0x8870 +0x8EA1D8AF 0x8877 +0x8EA1D8B0 0x8881 +0x8EA1D8B1 0x8882 +0x8EA1D8B2 0x887D +0x8EA1D8B3 0x8879 +0x8EA1D8B4 0x8A18 +0x8EA1D8B5 0x8A10 +0x8EA1D8B6 0x8A0E +0x8EA1D8B7 0x8A0C +0x8EA1D8B8 0x8A15 +0x8EA1D8B9 0x8A0A +0x8EA1D8BA 0x8A17 +0x8EA1D8BB 0x8A13 +0x8EA1D8BC 0x8A16 +0x8EA1D8BD 0x8A0F +0x8EA1D8BE 0x8A11 +0x8EA1D8BF 0x8C48 +0x8EA1D8C0 0x8C7A +0x8EA1D8C1 0x8C79 +0x8EA1D8C2 0x8CA1 +0x8EA1D8C3 0x8CA2 +0x8EA1D8C4 0x8D77 +0x8EA1D8C5 0x8EAC +0x8EA1D8C6 0x8ED2 +0x8EA1D8C7 0x8ED4 +0x8EA1D8C8 0x8ECF +0x8EA1D8C9 0x8FB1 +0x8EA1D8CA 0x9001 +0x8EA1D8CB 0x9006 +0x8EA1D8CC 0x8FF7 +0x8EA1D8CD 0x9000 +0x8EA1D8CE 0x8FFA +0x8EA1D8CF 0x8FF4 +0x8EA1D8D0 0x9003 +0x8EA1D8D1 0x8FFD +0x8EA1D8D2 0x9005 +0x8EA1D8D3 0x8FF8 +0x8EA1D8D4 0x9095 +0x8EA1D8D5 0x90E1 +0x8EA1D8D6 0x90DD +0x8EA1D8D7 0x90E2 +0x8EA1D8D8 0x9152 +0x8EA1D8D9 0x914D +0x8EA1D8DA 0x914C +0x8EA1D8DB 0x91D8 +0x8EA1D8DC 0x91DD +0x8EA1D8DD 0x91D7 +0x8EA1D8DE 0x91DC +0x8EA1D8DF 0x91D9 +0x8EA1D8E0 0x9583 +0x8EA1D8E1 0x9662 +0x8EA1D8E2 0x9663 +0x8EA1D8E3 0x9661 +0x8EA1D8E4 0x965B +0x8EA1D8E5 0x965D +0x8EA1D8E6 0x9664 +0x8EA1D8E7 0x9658 +0x8EA1D8E8 0x965E +0x8EA1D8E9 0x96BB +0x8EA1D8EA 0x98E2 +0x8EA1D8EB 0x99AC +0x8EA1D8EC 0x9AA8 +0x8EA1D8ED 0x9AD8 +0x8EA1D8EE 0x9B25 +0x8EA1D8EF 0x9B32 +0x8EA1D8F0 0x9B3C +0x8EA1D8F1 0x4E7E +0x8EA1D8F2 0x507A +0x8EA1D8F3 0x507D +0x8EA1D8F4 0x505C +0x8EA1D8F5 0x5047 +0x8EA1D8F6 0x5043 +0x8EA1D8F7 0x504C +0x8EA1D8F8 0x505A +0x8EA1D8F9 0x5049 +0x8EA1D8FA 0x5065 +0x8EA1D8FB 0x5076 +0x8EA1D8FC 0x504E +0x8EA1D8FD 0x5055 +0x8EA1D8FE 0x5075 +0x8EA1D9A1 0x5074 +0x8EA1D9A2 0x5077 +0x8EA1D9A3 0x504F +0x8EA1D9A4 0x500F +0x8EA1D9A5 0x506F +0x8EA1D9A6 0x506D +0x8EA1D9A7 0x515C +0x8EA1D9A8 0x5195 +0x8EA1D9A9 0x51F0 +0x8EA1D9AA 0x526A +0x8EA1D9AB 0x526F +0x8EA1D9AC 0x52D2 +0x8EA1D9AD 0x52D9 +0x8EA1D9AE 0x52D8 +0x8EA1D9AF 0x52D5 +0x8EA1D9B0 0x5310 +0x8EA1D9B1 0x530F +0x8EA1D9B2 0x5319 +0x8EA1D9B3 0x533F +0x8EA1D9B4 0x5340 +0x8EA1D9B5 0x533E +0x8EA1D9B6 0x53C3 +0x8EA1D9B7 0x66FC +0x8EA1D9B8 0x5546 +0x8EA1D9B9 0x556A +0x8EA1D9BA 0x5566 +0x8EA1D9BB 0x5544 +0x8EA1D9BC 0x555E +0x8EA1D9BD 0x5561 +0x8EA1D9BE 0x5543 +0x8EA1D9BF 0x554A +0x8EA1D9C0 0x5531 +0x8EA1D9C1 0x5556 +0x8EA1D9C2 0x554F +0x8EA1D9C3 0x5555 +0x8EA1D9C4 0x552F +0x8EA1D9C5 0x5564 +0x8EA1D9C6 0x5538 +0x8EA1D9C7 0x552E +0x8EA1D9C8 0x555C +0x8EA1D9C9 0x552C +0x8EA1D9CA 0x5563 +0x8EA1D9CB 0x5533 +0x8EA1D9CC 0x5541 +0x8EA1D9CD 0x5557 +0x8EA1D9CE 0x5708 +0x8EA1D9CF 0x570B +0x8EA1D9D0 0x5709 +0x8EA1D9D1 0x57DF +0x8EA1D9D2 0x5805 +0x8EA1D9D3 0x580A +0x8EA1D9D4 0x5806 +0x8EA1D9D5 0x57E0 +0x8EA1D9D6 0x57E4 +0x8EA1D9D7 0x57FA +0x8EA1D9D8 0x5802 +0x8EA1D9D9 0x5835 +0x8EA1D9DA 0x57F7 +0x8EA1D9DB 0x57F9 +0x8EA1D9DC 0x5920 +0x8EA1D9DD 0x5962 +0x8EA1D9DE 0x5A36 +0x8EA1D9DF 0x5A41 +0x8EA1D9E0 0x5A49 +0x8EA1D9E1 0x5A66 +0x8EA1D9E2 0x5A6A +0x8EA1D9E3 0x5A40 +0x8EA1D9E4 0x5A3C +0x8EA1D9E5 0x5A62 +0x8EA1D9E6 0x5A5A +0x8EA1D9E7 0x5A46 +0x8EA1D9E8 0x5A4A +0x8EA1D9E9 0x5B70 +0x8EA1D9EA 0x5BC7 +0x8EA1D9EB 0x5BC5 +0x8EA1D9EC 0x5BC4 +0x8EA1D9ED 0x5BC2 +0x8EA1D9EE 0x5BBF +0x8EA1D9EF 0x5BC6 +0x8EA1D9F0 0x5C09 +0x8EA1D9F1 0x5C08 +0x8EA1D9F2 0x5C07 +0x8EA1D9F3 0x5C60 +0x8EA1D9F4 0x5C5C +0x8EA1D9F5 0x5C5D +0x8EA1D9F6 0x5D07 +0x8EA1D9F7 0x5D06 +0x8EA1D9F8 0x5D0E +0x8EA1D9F9 0x5D1B +0x8EA1D9FA 0x5D16 +0x8EA1D9FB 0x5D22 +0x8EA1D9FC 0x5D11 +0x8EA1D9FD 0x5D29 +0x8EA1D9FE 0x5D14 +0x8EA1DAA1 0x5D19 +0x8EA1DAA2 0x5D24 +0x8EA1DAA3 0x5D27 +0x8EA1DAA4 0x5D17 +0x8EA1DAA5 0x5DE2 +0x8EA1DAA6 0x5E38 +0x8EA1DAA7 0x5E36 +0x8EA1DAA8 0x5E33 +0x8EA1DAA9 0x5E37 +0x8EA1DAAA 0x5EB7 +0x8EA1DAAB 0x5EB8 +0x8EA1DAAC 0x5EB6 +0x8EA1DAAD 0x5EB5 +0x8EA1DAAE 0x5EBE +0x8EA1DAAF 0x5F35 +0x8EA1DAB0 0x5F37 +0x8EA1DAB1 0x5F57 +0x8EA1DAB2 0x5F6C +0x8EA1DAB3 0x5F69 +0x8EA1DAB4 0x5F6B +0x8EA1DAB5 0x5F97 +0x8EA1DAB6 0x5F99 +0x8EA1DAB7 0x5F9E +0x8EA1DAB8 0x5F98 +0x8EA1DAB9 0x5FA1 +0x8EA1DABA 0x5FA0 +0x8EA1DABB 0x5F9C +0x8EA1DABC 0x607F +0x8EA1DABD 0x60A3 +0x8EA1DABE 0x6089 +0x8EA1DABF 0x60A0 +0x8EA1DAC0 0x60A8 +0x8EA1DAC1 0x60CB +0x8EA1DAC2 0x60B4 +0x8EA1DAC3 0x60E6 +0x8EA1DAC4 0x60BD +0x8EA1DAC5 0x60C5 +0x8EA1DAC6 0x60BB +0x8EA1DAC7 0x60B5 +0x8EA1DAC8 0x60DC +0x8EA1DAC9 0x60BC +0x8EA1DACA 0x60D8 +0x8EA1DACB 0x60D5 +0x8EA1DACC 0x60C6 +0x8EA1DACD 0x60DF +0x8EA1DACE 0x60B8 +0x8EA1DACF 0x60DA +0x8EA1DAD0 0x60C7 +0x8EA1DAD1 0x621A +0x8EA1DAD2 0x621B +0x8EA1DAD3 0x6248 +0x8EA1DAD4 0x63A0 +0x8EA1DAD5 0x63A7 +0x8EA1DAD6 0x6372 +0x8EA1DAD7 0x6396 +0x8EA1DAD8 0x63A2 +0x8EA1DAD9 0x63A5 +0x8EA1DADA 0x6377 +0x8EA1DADB 0x6367 +0x8EA1DADC 0x6398 +0x8EA1DADD 0x63AA +0x8EA1DADE 0x6371 +0x8EA1DADF 0x63A9 +0x8EA1DAE0 0x6389 +0x8EA1DAE1 0x6383 +0x8EA1DAE2 0x639B +0x8EA1DAE3 0x636B +0x8EA1DAE4 0x63A8 +0x8EA1DAE5 0x6384 +0x8EA1DAE6 0x6388 +0x8EA1DAE7 0x6399 +0x8EA1DAE8 0x63A1 +0x8EA1DAE9 0x63AC +0x8EA1DAEA 0x6392 +0x8EA1DAEB 0x638F +0x8EA1DAEC 0x6380 +0x8EA1DAED 0x637B +0x8EA1DAEE 0x6369 +0x8EA1DAEF 0x6368 +0x8EA1DAF0 0x637A +0x8EA1DAF1 0x655D +0x8EA1DAF2 0x6556 +0x8EA1DAF3 0x6551 +0x8EA1DAF4 0x6559 +0x8EA1DAF5 0x6557 +0x8EA1DAF6 0x555F +0x8EA1DAF7 0x654F +0x8EA1DAF8 0x6558 +0x8EA1DAF9 0x6555 +0x8EA1DAFA 0x6554 +0x8EA1DAFB 0x659C +0x8EA1DAFC 0x659B +0x8EA1DAFD 0x65AC +0x8EA1DAFE 0x65CF +0x8EA1DBA1 0x65CB +0x8EA1DBA2 0x65CC +0x8EA1DBA3 0x65CE +0x8EA1DBA4 0x665D +0x8EA1DBA5 0x665A +0x8EA1DBA6 0x6664 +0x8EA1DBA7 0x6668 +0x8EA1DBA8 0x6666 +0x8EA1DBA9 0x665E +0x8EA1DBAA 0x66F9 +0x8EA1DBAB 0x52D7 +0x8EA1DBAC 0x671B +0x8EA1DBAD 0x6881 +0x8EA1DBAE 0x68AF +0x8EA1DBAF 0x68A2 +0x8EA1DBB0 0x6893 +0x8EA1DBB1 0x68B5 +0x8EA1DBB2 0x687F +0x8EA1DBB3 0x6876 +0x8EA1DBB4 0x68B1 +0x8EA1DBB5 0x68A7 +0x8EA1DBB6 0x6897 +0x8EA1DBB7 0x68B0 +0x8EA1DBB8 0x6883 +0x8EA1DBB9 0x68C4 +0x8EA1DBBA 0x68AD +0x8EA1DBBB 0x6886 +0x8EA1DBBC 0x6885 +0x8EA1DBBD 0x6894 +0x8EA1DBBE 0x689D +0x8EA1DBBF 0x68A8 +0x8EA1DBC0 0x689F +0x8EA1DBC1 0x68A1 +0x8EA1DBC2 0x6882 +0x8EA1DBC3 0x6B32 +0x8EA1DBC4 0x6BBA +0x8EA1DBC5 0x6BEB +0x8EA1DBC6 0x6BEC +0x8EA1DBC7 0x6C2B +0x8EA1DBC8 0x6D8E +0x8EA1DBC9 0x6DBC +0x8EA1DBCA 0x6DF3 +0x8EA1DBCB 0x6DD9 +0x8EA1DBCC 0x6DB2 +0x8EA1DBCD 0x6DE1 +0x8EA1DBCE 0x6DCC +0x8EA1DBCF 0x6DE4 +0x8EA1DBD0 0x6DFB +0x8EA1DBD1 0x6DFA +0x8EA1DBD2 0x6E05 +0x8EA1DBD3 0x6DC7 +0x8EA1DBD4 0x6DCB +0x8EA1DBD5 0x6DAF +0x8EA1DBD6 0x6DD1 +0x8EA1DBD7 0x6DAE +0x8EA1DBD8 0x6DDE +0x8EA1DBD9 0x6DF9 +0x8EA1DBDA 0x6DB8 +0x8EA1DBDB 0x6DF7 +0x8EA1DBDC 0x6DF5 +0x8EA1DBDD 0x6DC5 +0x8EA1DBDE 0x6DD2 +0x8EA1DBDF 0x6E1A +0x8EA1DBE0 0x6DB5 +0x8EA1DBE1 0x6DDA +0x8EA1DBE2 0x6DEB +0x8EA1DBE3 0x6DD8 +0x8EA1DBE4 0x6DEA +0x8EA1DBE5 0x6DF1 +0x8EA1DBE6 0x6DEE +0x8EA1DBE7 0x6DE8 +0x8EA1DBE8 0x6DC6 +0x8EA1DBE9 0x6DC4 +0x8EA1DBEA 0x6DAA +0x8EA1DBEB 0x6DEC +0x8EA1DBEC 0x6DBF +0x8EA1DBED 0x6DE6 +0x8EA1DBEE 0x70F9 +0x8EA1DBEF 0x7109 +0x8EA1DBF0 0x710A +0x8EA1DBF1 0x70FD +0x8EA1DBF2 0x70EF +0x8EA1DBF3 0x723D +0x8EA1DBF4 0x727D +0x8EA1DBF5 0x7281 +0x8EA1DBF6 0x731C +0x8EA1DBF7 0x731B +0x8EA1DBF8 0x7316 +0x8EA1DBF9 0x7313 +0x8EA1DBFA 0x7319 +0x8EA1DBFB 0x7387 +0x8EA1DBFC 0x7405 +0x8EA1DBFD 0x740A +0x8EA1DBFE 0x7403 +0x8EA1DCA1 0x7406 +0x8EA1DCA2 0x73FE +0x8EA1DCA3 0x740D +0x8EA1DCA4 0x74E0 +0x8EA1DCA5 0x74F6 +0x8EA1DCA6 0x74F7 +0x8EA1DCA7 0x751C +0x8EA1DCA8 0x7522 +0x8EA1DCA9 0x7565 +0x8EA1DCAA 0x7566 +0x8EA1DCAB 0x7562 +0x8EA1DCAC 0x7570 +0x8EA1DCAD 0x758F +0x8EA1DCAE 0x75D4 +0x8EA1DCAF 0x75D5 +0x8EA1DCB0 0x75B5 +0x8EA1DCB1 0x75CA +0x8EA1DCB2 0x75CD +0x8EA1DCB3 0x768E +0x8EA1DCB4 0x76D4 +0x8EA1DCB5 0x76D2 +0x8EA1DCB6 0x76DB +0x8EA1DCB7 0x7737 +0x8EA1DCB8 0x773E +0x8EA1DCB9 0x773C +0x8EA1DCBA 0x7736 +0x8EA1DCBB 0x7738 +0x8EA1DCBC 0x773A +0x8EA1DCBD 0x786B +0x8EA1DCBE 0x7843 +0x8EA1DCBF 0x784E +0x8EA1DCC0 0x7965 +0x8EA1DCC1 0x7968 +0x8EA1DCC2 0x796D +0x8EA1DCC3 0x79FB +0x8EA1DCC4 0x7A92 +0x8EA1DCC5 0x7A95 +0x8EA1DCC6 0x7B20 +0x8EA1DCC7 0x7B28 +0x8EA1DCC8 0x7B1B +0x8EA1DCC9 0x7B2C +0x8EA1DCCA 0x7B26 +0x8EA1DCCB 0x7B19 +0x8EA1DCCC 0x7B1E +0x8EA1DCCD 0x7B2E +0x8EA1DCCE 0x7C92 +0x8EA1DCCF 0x7C97 +0x8EA1DCD0 0x7C95 +0x8EA1DCD1 0x7D46 +0x8EA1DCD2 0x7D43 +0x8EA1DCD3 0x7D71 +0x8EA1DCD4 0x7D2E +0x8EA1DCD5 0x7D39 +0x8EA1DCD6 0x7D3C +0x8EA1DCD7 0x7D40 +0x8EA1DCD8 0x7D30 +0x8EA1DCD9 0x7D33 +0x8EA1DCDA 0x7D44 +0x8EA1DCDB 0x7D2F +0x8EA1DCDC 0x7D42 +0x8EA1DCDD 0x7D32 +0x8EA1DCDE 0x7D31 +0x8EA1DCDF 0x7F3D +0x8EA1DCE0 0x7F9E +0x8EA1DCE1 0x7F9A +0x8EA1DCE2 0x7FCC +0x8EA1DCE3 0x7FCE +0x8EA1DCE4 0x7FD2 +0x8EA1DCE5 0x801C +0x8EA1DCE6 0x804A +0x8EA1DCE7 0x8046 +0x8EA1DCE8 0x812F +0x8EA1DCE9 0x8116 +0x8EA1DCEA 0x8123 +0x8EA1DCEB 0x812B +0x8EA1DCEC 0x8129 +0x8EA1DCED 0x8130 +0x8EA1DCEE 0x8124 +0x8EA1DCEF 0x8202 +0x8EA1DCF0 0x8235 +0x8EA1DCF1 0x8237 +0x8EA1DCF2 0x8236 +0x8EA1DCF3 0x8239 +0x8EA1DCF4 0x838E +0x8EA1DCF5 0x839E +0x8EA1DCF6 0x8398 +0x8EA1DCF7 0x8378 +0x8EA1DCF8 0x83A2 +0x8EA1DCF9 0x8396 +0x8EA1DCFA 0x83BD +0x8EA1DCFB 0x83AB +0x8EA1DCFC 0x8392 +0x8EA1DCFD 0x838A +0x8EA1DCFE 0x8393 +0x8EA1DDA1 0x8389 +0x8EA1DDA2 0x83A0 +0x8EA1DDA3 0x8377 +0x8EA1DDA4 0x837B +0x8EA1DDA5 0x837C +0x8EA1DDA6 0x8386 +0x8EA1DDA7 0x83A7 +0x8EA1DDA8 0x8655 +0x8EA1DDA9 0x5F6A +0x8EA1DDAA 0x86C7 +0x8EA1DDAB 0x86C0 +0x8EA1DDAC 0x86B6 +0x8EA1DDAD 0x86C4 +0x8EA1DDAE 0x86B5 +0x8EA1DDAF 0x86C6 +0x8EA1DDB0 0x86CB +0x8EA1DDB1 0x86B1 +0x8EA1DDB2 0x86AF +0x8EA1DDB3 0x86C9 +0x8EA1DDB4 0x8853 +0x8EA1DDB5 0x889E +0x8EA1DDB6 0x8888 +0x8EA1DDB7 0x88AB +0x8EA1DDB8 0x8892 +0x8EA1DDB9 0x8896 +0x8EA1DDBA 0x888D +0x8EA1DDBB 0x888B +0x8EA1DDBC 0x8993 +0x8EA1DDBD 0x898F +0x8EA1DDBE 0x8A2A +0x8EA1DDBF 0x8A1D +0x8EA1DDC0 0x8A23 +0x8EA1DDC1 0x8A25 +0x8EA1DDC2 0x8A31 +0x8EA1DDC3 0x8A2D +0x8EA1DDC4 0x8A1F +0x8EA1DDC5 0x8A1B +0x8EA1DDC6 0x8A22 +0x8EA1DDC7 0x8C49 +0x8EA1DDC8 0x8C5A +0x8EA1DDC9 0x8CA9 +0x8EA1DDCA 0x8CAC +0x8EA1DDCB 0x8CAB +0x8EA1DDCC 0x8CA8 +0x8EA1DDCD 0x8CAA +0x8EA1DDCE 0x8CA7 +0x8EA1DDCF 0x8D67 +0x8EA1DDD0 0x8D66 +0x8EA1DDD1 0x8DBE +0x8EA1DDD2 0x8DBA +0x8EA1DDD3 0x8EDB +0x8EA1DDD4 0x8EDF +0x8EA1DDD5 0x9019 +0x8EA1DDD6 0x900D +0x8EA1DDD7 0x901A +0x8EA1DDD8 0x9017 +0x8EA1DDD9 0x9023 +0x8EA1DDDA 0x901F +0x8EA1DDDB 0x901D +0x8EA1DDDC 0x9010 +0x8EA1DDDD 0x9015 +0x8EA1DDDE 0x901E +0x8EA1DDDF 0x9020 +0x8EA1DDE0 0x900F +0x8EA1DDE1 0x9022 +0x8EA1DDE2 0x9016 +0x8EA1DDE3 0x901B +0x8EA1DDE4 0x9014 +0x8EA1DDE5 0x90E8 +0x8EA1DDE6 0x90ED +0x8EA1DDE7 0x90FD +0x8EA1DDE8 0x9157 +0x8EA1DDE9 0x91CE +0x8EA1DDEA 0x91F5 +0x8EA1DDEB 0x91E6 +0x8EA1DDEC 0x91E3 +0x8EA1DDED 0x91E7 +0x8EA1DDEE 0x91ED +0x8EA1DDEF 0x91E9 +0x8EA1DDF0 0x9589 +0x8EA1DDF1 0x966A +0x8EA1DDF2 0x9675 +0x8EA1DDF3 0x9673 +0x8EA1DDF4 0x9678 +0x8EA1DDF5 0x9670 +0x8EA1DDF6 0x9674 +0x8EA1DDF7 0x9676 +0x8EA1DDF8 0x9677 +0x8EA1DDF9 0x966C +0x8EA1DDFA 0x96C0 +0x8EA1DDFB 0x96EA +0x8EA1DDFC 0x96E9 +0x8EA1DDFD 0x7AE0 +0x8EA1DDFE 0x7ADF +0x8EA1DEA1 0x9802 +0x8EA1DEA2 0x9803 +0x8EA1DEA3 0x9B5A +0x8EA1DEA4 0x9CE5 +0x8EA1DEA5 0x9E75 +0x8EA1DEA6 0x9E7F +0x8EA1DEA7 0x9EA5 +0x8EA1DEA8 0x9EBB +0x8EA1DEA9 0x50A2 +0x8EA1DEAA 0x508D +0x8EA1DEAB 0x5085 +0x8EA1DEAC 0x5099 +0x8EA1DEAD 0x5091 +0x8EA1DEAE 0x5080 +0x8EA1DEAF 0x5096 +0x8EA1DEB0 0x5098 +0x8EA1DEB1 0x509A +0x8EA1DEB2 0x6700 +0x8EA1DEB3 0x51F1 +0x8EA1DEB4 0x5272 +0x8EA1DEB5 0x5274 +0x8EA1DEB6 0x5275 +0x8EA1DEB7 0x5269 +0x8EA1DEB8 0x52DE +0x8EA1DEB9 0x52DD +0x8EA1DEBA 0x52DB +0x8EA1DEBB 0x535A +0x8EA1DEBC 0x53A5 +0x8EA1DEBD 0x557B +0x8EA1DEBE 0x5580 +0x8EA1DEBF 0x55A7 +0x8EA1DEC0 0x557C +0x8EA1DEC1 0x558A +0x8EA1DEC2 0x559D +0x8EA1DEC3 0x5598 +0x8EA1DEC4 0x5582 +0x8EA1DEC5 0x559C +0x8EA1DEC6 0x55AA +0x8EA1DEC7 0x5594 +0x8EA1DEC8 0x5587 +0x8EA1DEC9 0x558B +0x8EA1DECA 0x5583 +0x8EA1DECB 0x55B3 +0x8EA1DECC 0x55AE +0x8EA1DECD 0x559F +0x8EA1DECE 0x553E +0x8EA1DECF 0x55B2 +0x8EA1DED0 0x559A +0x8EA1DED1 0x55BB +0x8EA1DED2 0x55AC +0x8EA1DED3 0x55B1 +0x8EA1DED4 0x557E +0x8EA1DED5 0x5589 +0x8EA1DED6 0x55AB +0x8EA1DED7 0x5599 +0x8EA1DED8 0x570D +0x8EA1DED9 0x582F +0x8EA1DEDA 0x582A +0x8EA1DEDB 0x5834 +0x8EA1DEDC 0x5824 +0x8EA1DEDD 0x5830 +0x8EA1DEDE 0x5831 +0x8EA1DEDF 0x5821 +0x8EA1DEE0 0x581D +0x8EA1DEE1 0x5820 +0x8EA1DEE2 0x58F9 +0x8EA1DEE3 0x58FA +0x8EA1DEE4 0x5960 +0x8EA1DEE5 0x5A77 +0x8EA1DEE6 0x5A9A +0x8EA1DEE7 0x5A7F +0x8EA1DEE8 0x5A92 +0x8EA1DEE9 0x5A9B +0x8EA1DEEA 0x5AA7 +0x8EA1DEEB 0x5B73 +0x8EA1DEEC 0x5B71 +0x8EA1DEED 0x5BD2 +0x8EA1DEEE 0x5BCC +0x8EA1DEEF 0x5BD3 +0x8EA1DEF0 0x5BD0 +0x8EA1DEF1 0x5C0A +0x8EA1DEF2 0x5C0B +0x8EA1DEF3 0x5C31 +0x8EA1DEF4 0x5D4C +0x8EA1DEF5 0x5D50 +0x8EA1DEF6 0x5D34 +0x8EA1DEF7 0x5D47 +0x8EA1DEF8 0x5DFD +0x8EA1DEF9 0x5E45 +0x8EA1DEFA 0x5E3D +0x8EA1DEFB 0x5E40 +0x8EA1DEFC 0x5E43 +0x8EA1DEFD 0x5E7E +0x8EA1DEFE 0x5ECA +0x8EA1DFA1 0x5EC1 +0x8EA1DFA2 0x5EC2 +0x8EA1DFA3 0x5EC4 +0x8EA1DFA4 0x5F3C +0x8EA1DFA5 0x5F6D +0x8EA1DFA6 0x5FA9 +0x8EA1DFA7 0x5FAA +0x8EA1DFA8 0x5FA8 +0x8EA1DFA9 0x60D1 +0x8EA1DFAA 0x60E1 +0x8EA1DFAB 0x60B2 +0x8EA1DFAC 0x60B6 +0x8EA1DFAD 0x60E0 +0x8EA1DFAE 0x611C +0x8EA1DFAF 0x6123 +0x8EA1DFB0 0x60FA +0x8EA1DFB1 0x6115 +0x8EA1DFB2 0x60F0 +0x8EA1DFB3 0x60FB +0x8EA1DFB4 0x60F4 +0x8EA1DFB5 0x6168 +0x8EA1DFB6 0x60F1 +0x8EA1DFB7 0x610E +0x8EA1DFB8 0x60F6 +0x8EA1DFB9 0x6109 +0x8EA1DFBA 0x6100 +0x8EA1DFBB 0x6112 +0x8EA1DFBC 0x621F +0x8EA1DFBD 0x6249 +0x8EA1DFBE 0x63A3 +0x8EA1DFBF 0x638C +0x8EA1DFC0 0x63CF +0x8EA1DFC1 0x63C0 +0x8EA1DFC2 0x63E9 +0x8EA1DFC3 0x63C9 +0x8EA1DFC4 0x63C6 +0x8EA1DFC5 0x63CD +0x8EA1DFC6 0x63D2 +0x8EA1DFC7 0x63E3 +0x8EA1DFC8 0x63D0 +0x8EA1DFC9 0x63E1 +0x8EA1DFCA 0x63D6 +0x8EA1DFCB 0x63ED +0x8EA1DFCC 0x63EE +0x8EA1DFCD 0x6376 +0x8EA1DFCE 0x63F4 +0x8EA1DFCF 0x63EA +0x8EA1DFD0 0x63DB +0x8EA1DFD1 0x6452 +0x8EA1DFD2 0x63DA +0x8EA1DFD3 0x63F9 +0x8EA1DFD4 0x655E +0x8EA1DFD5 0x6566 +0x8EA1DFD6 0x6562 +0x8EA1DFD7 0x6563 +0x8EA1DFD8 0x6591 +0x8EA1DFD9 0x6590 +0x8EA1DFDA 0x65AF +0x8EA1DFDB 0x666E +0x8EA1DFDC 0x6670 +0x8EA1DFDD 0x6674 +0x8EA1DFDE 0x6676 +0x8EA1DFDF 0x666F +0x8EA1DFE0 0x6691 +0x8EA1DFE1 0x667A +0x8EA1DFE2 0x667E +0x8EA1DFE3 0x6677 +0x8EA1DFE4 0x66FE +0x8EA1DFE5 0x66FF +0x8EA1DFE6 0x671F +0x8EA1DFE7 0x671D +0x8EA1DFE8 0x68FA +0x8EA1DFE9 0x68D5 +0x8EA1DFEA 0x68E0 +0x8EA1DFEB 0x68D8 +0x8EA1DFEC 0x68D7 +0x8EA1DFED 0x6905 +0x8EA1DFEE 0x68DF +0x8EA1DFEF 0x68F5 +0x8EA1DFF0 0x68EE +0x8EA1DFF1 0x68E7 +0x8EA1DFF2 0x68F9 +0x8EA1DFF3 0x68D2 +0x8EA1DFF4 0x68F2 +0x8EA1DFF5 0x68E3 +0x8EA1DFF6 0x68CB +0x8EA1DFF7 0x68CD +0x8EA1DFF8 0x690D +0x8EA1DFF9 0x6912 +0x8EA1DFFA 0x690E +0x8EA1DFFB 0x68C9 +0x8EA1DFFC 0x68DA +0x8EA1DFFD 0x696E +0x8EA1DFFE 0x68FB +0x8EA1E0A1 0x6B3E +0x8EA1E0A2 0x6B3A +0x8EA1E0A3 0x6B3D +0x8EA1E0A4 0x6B98 +0x8EA1E0A5 0x6B96 +0x8EA1E0A6 0x6BBC +0x8EA1E0A7 0x6BEF +0x8EA1E0A8 0x6C2E +0x8EA1E0A9 0x6C2F +0x8EA1E0AA 0x6C2C +0x8EA1E0AB 0x6E2F +0x8EA1E0AC 0x6E38 +0x8EA1E0AD 0x6E54 +0x8EA1E0AE 0x6E21 +0x8EA1E0AF 0x6E32 +0x8EA1E0B0 0x6E67 +0x8EA1E0B1 0x6E4A +0x8EA1E0B2 0x6E20 +0x8EA1E0B3 0x6E25 +0x8EA1E0B4 0x6E23 +0x8EA1E0B5 0x6E1B +0x8EA1E0B6 0x6E5B +0x8EA1E0B7 0x6E58 +0x8EA1E0B8 0x6E24 +0x8EA1E0B9 0x6E56 +0x8EA1E0BA 0x6E6E +0x8EA1E0BB 0x6E2D +0x8EA1E0BC 0x6E26 +0x8EA1E0BD 0x6E6F +0x8EA1E0BE 0x6E34 +0x8EA1E0BF 0x6E4D +0x8EA1E0C0 0x6E3A +0x8EA1E0C1 0x6E2C +0x8EA1E0C2 0x6E43 +0x8EA1E0C3 0x6E1D +0x8EA1E0C4 0x6E3E +0x8EA1E0C5 0x6ECB +0x8EA1E0C6 0x6E89 +0x8EA1E0C7 0x6E19 +0x8EA1E0C8 0x6E4E +0x8EA1E0C9 0x6E63 +0x8EA1E0CA 0x6E44 +0x8EA1E0CB 0x6E72 +0x8EA1E0CC 0x6E69 +0x8EA1E0CD 0x6E5F +0x8EA1E0CE 0x7119 +0x8EA1E0CF 0x711A +0x8EA1E0D0 0x7126 +0x8EA1E0D1 0x7130 +0x8EA1E0D2 0x7121 +0x8EA1E0D3 0x7136 +0x8EA1E0D4 0x716E +0x8EA1E0D5 0x711C +0x8EA1E0D6 0x724C +0x8EA1E0D7 0x7284 +0x8EA1E0D8 0x7280 +0x8EA1E0D9 0x7336 +0x8EA1E0DA 0x7325 +0x8EA1E0DB 0x7334 +0x8EA1E0DC 0x7329 +0x8EA1E0DD 0x743A +0x8EA1E0DE 0x742A +0x8EA1E0DF 0x7433 +0x8EA1E0E0 0x7422 +0x8EA1E0E1 0x7425 +0x8EA1E0E2 0x7435 +0x8EA1E0E3 0x7436 +0x8EA1E0E4 0x7434 +0x8EA1E0E5 0x742F +0x8EA1E0E6 0x741B +0x8EA1E0E7 0x7426 +0x8EA1E0E8 0x7428 +0x8EA1E0E9 0x7525 +0x8EA1E0EA 0x7526 +0x8EA1E0EB 0x756B +0x8EA1E0EC 0x756A +0x8EA1E0ED 0x75E2 +0x8EA1E0EE 0x75DB +0x8EA1E0EF 0x75E3 +0x8EA1E0F0 0x75D9 +0x8EA1E0F1 0x75D8 +0x8EA1E0F2 0x75DE +0x8EA1E0F3 0x75E0 +0x8EA1E0F4 0x767B +0x8EA1E0F5 0x767C +0x8EA1E0F6 0x7696 +0x8EA1E0F7 0x7693 +0x8EA1E0F8 0x76B4 +0x8EA1E0F9 0x76DC +0x8EA1E0FA 0x774F +0x8EA1E0FB 0x77ED +0x8EA1E0FC 0x785D +0x8EA1E0FD 0x786C +0x8EA1E0FE 0x786F +0x8EA1E1A1 0x7A0D +0x8EA1E1A2 0x7A08 +0x8EA1E1A3 0x7A0B +0x8EA1E1A4 0x7A05 +0x8EA1E1A5 0x7A00 +0x8EA1E1A6 0x7A98 +0x8EA1E1A7 0x7A97 +0x8EA1E1A8 0x7A96 +0x8EA1E1A9 0x7AE5 +0x8EA1E1AA 0x7AE3 +0x8EA1E1AB 0x7B49 +0x8EA1E1AC 0x7B56 +0x8EA1E1AD 0x7B46 +0x8EA1E1AE 0x7B50 +0x8EA1E1AF 0x7B52 +0x8EA1E1B0 0x7B54 +0x8EA1E1B1 0x7B4D +0x8EA1E1B2 0x7B4B +0x8EA1E1B3 0x7B4F +0x8EA1E1B4 0x7B51 +0x8EA1E1B5 0x7C9F +0x8EA1E1B6 0x7CA5 +0x8EA1E1B7 0x7D5E +0x8EA1E1B8 0x7D50 +0x8EA1E1B9 0x7D68 +0x8EA1E1BA 0x7D55 +0x8EA1E1BB 0x7D2B +0x8EA1E1BC 0x7D6E +0x8EA1E1BD 0x7D72 +0x8EA1E1BE 0x7D61 +0x8EA1E1BF 0x7D66 +0x8EA1E1C0 0x7D62 +0x8EA1E1C1 0x7D70 +0x8EA1E1C2 0x7D73 +0x8EA1E1C3 0x5584 +0x8EA1E1C4 0x7FD4 +0x8EA1E1C5 0x7FD5 +0x8EA1E1C6 0x800B +0x8EA1E1C7 0x8052 +0x8EA1E1C8 0x8085 +0x8EA1E1C9 0x8155 +0x8EA1E1CA 0x8154 +0x8EA1E1CB 0x814B +0x8EA1E1CC 0x8151 +0x8EA1E1CD 0x814E +0x8EA1E1CE 0x8139 +0x8EA1E1CF 0x8146 +0x8EA1E1D0 0x813E +0x8EA1E1D1 0x814C +0x8EA1E1D2 0x8153 +0x8EA1E1D3 0x8174 +0x8EA1E1D4 0x8212 +0x8EA1E1D5 0x821C +0x8EA1E1D6 0x83E9 +0x8EA1E1D7 0x8403 +0x8EA1E1D8 0x83F8 +0x8EA1E1D9 0x840D +0x8EA1E1DA 0x83E0 +0x8EA1E1DB 0x83C5 +0x8EA1E1DC 0x840B +0x8EA1E1DD 0x83C1 +0x8EA1E1DE 0x83EF +0x8EA1E1DF 0x83F1 +0x8EA1E1E0 0x83F4 +0x8EA1E1E1 0x8457 +0x8EA1E1E2 0x840A +0x8EA1E1E3 0x83F0 +0x8EA1E1E4 0x840C +0x8EA1E1E5 0x83CC +0x8EA1E1E6 0x83FD +0x8EA1E1E7 0x83F2 +0x8EA1E1E8 0x83CA +0x8EA1E1E9 0x8438 +0x8EA1E1EA 0x840E +0x8EA1E1EB 0x8404 +0x8EA1E1EC 0x83DC +0x8EA1E1ED 0x8407 +0x8EA1E1EE 0x83D4 +0x8EA1E1EF 0x83DF +0x8EA1E1F0 0x865B +0x8EA1E1F1 0x86DF +0x8EA1E1F2 0x86D9 +0x8EA1E1F3 0x86ED +0x8EA1E1F4 0x86D4 +0x8EA1E1F5 0x86DB +0x8EA1E1F6 0x86E4 +0x8EA1E1F7 0x86D0 +0x8EA1E1F8 0x86DE +0x8EA1E1F9 0x8857 +0x8EA1E1FA 0x88C1 +0x8EA1E1FB 0x88C2 +0x8EA1E1FC 0x88B1 +0x8EA1E1FD 0x8983 +0x8EA1E1FE 0x8996 +0x8EA1E2A1 0x8A3B +0x8EA1E2A2 0x8A60 +0x8EA1E2A3 0x8A55 +0x8EA1E2A4 0x8A5E +0x8EA1E2A5 0x8A3C +0x8EA1E2A6 0x8A41 +0x8EA1E2A7 0x8A54 +0x8EA1E2A8 0x8A5B +0x8EA1E2A9 0x8A50 +0x8EA1E2AA 0x8A46 +0x8EA1E2AB 0x8A34 +0x8EA1E2AC 0x8A3A +0x8EA1E2AD 0x8A36 +0x8EA1E2AE 0x8A56 +0x8EA1E2AF 0x8C61 +0x8EA1E2B0 0x8C82 +0x8EA1E2B1 0x8CAF +0x8EA1E2B2 0x8CBC +0x8EA1E2B3 0x8CB3 +0x8EA1E2B4 0x8CBD +0x8EA1E2B5 0x8CC1 +0x8EA1E2B6 0x8CBB +0x8EA1E2B7 0x8CC0 +0x8EA1E2B8 0x8CB4 +0x8EA1E2B9 0x8CB7 +0x8EA1E2BA 0x8CB6 +0x8EA1E2BB 0x8CBF +0x8EA1E2BC 0x8CB8 +0x8EA1E2BD 0x8D8A +0x8EA1E2BE 0x8D85 +0x8EA1E2BF 0x8D81 +0x8EA1E2C0 0x8DCE +0x8EA1E2C1 0x8DDD +0x8EA1E2C2 0x8DCB +0x8EA1E2C3 0x8DDA +0x8EA1E2C4 0x8DD1 +0x8EA1E2C5 0x8DCC +0x8EA1E2C6 0x8DDB +0x8EA1E2C7 0x8DC6 +0x8EA1E2C8 0x8EFB +0x8EA1E2C9 0x8EF8 +0x8EA1E2CA 0x8EFC +0x8EA1E2CB 0x8F9C +0x8EA1E2CC 0x902E +0x8EA1E2CD 0x9035 +0x8EA1E2CE 0x9031 +0x8EA1E2CF 0x9038 +0x8EA1E2D0 0x9032 +0x8EA1E2D1 0x9036 +0x8EA1E2D2 0x9102 +0x8EA1E2D3 0x90F5 +0x8EA1E2D4 0x9109 +0x8EA1E2D5 0x90FE +0x8EA1E2D6 0x9163 +0x8EA1E2D7 0x9165 +0x8EA1E2D8 0x91CF +0x8EA1E2D9 0x9214 +0x8EA1E2DA 0x9215 +0x8EA1E2DB 0x9223 +0x8EA1E2DC 0x9209 +0x8EA1E2DD 0x921E +0x8EA1E2DE 0x920D +0x8EA1E2DF 0x9210 +0x8EA1E2E0 0x9207 +0x8EA1E2E1 0x9211 +0x8EA1E2E2 0x9594 +0x8EA1E2E3 0x958F +0x8EA1E2E4 0x958B +0x8EA1E2E5 0x9591 +0x8EA1E2E6 0x9593 +0x8EA1E2E7 0x9592 +0x8EA1E2E8 0x958E +0x8EA1E2E9 0x968A +0x8EA1E2EA 0x968E +0x8EA1E2EB 0x968B +0x8EA1E2EC 0x967D +0x8EA1E2ED 0x9685 +0x8EA1E2EE 0x9686 +0x8EA1E2EF 0x968D +0x8EA1E2F0 0x9672 +0x8EA1E2F1 0x9684 +0x8EA1E2F2 0x96C1 +0x8EA1E2F3 0x96C5 +0x8EA1E2F4 0x96C4 +0x8EA1E2F5 0x96C6 +0x8EA1E2F6 0x96C7 +0x8EA1E2F7 0x96EF +0x8EA1E2F8 0x96F2 +0x8EA1E2F9 0x97CC +0x8EA1E2FA 0x9805 +0x8EA1E2FB 0x9806 +0x8EA1E2FC 0x9808 +0x8EA1E2FD 0x98E7 +0x8EA1E2FE 0x98EA +0x8EA1E3A1 0x98EF +0x8EA1E3A2 0x98E9 +0x8EA1E3A3 0x98F2 +0x8EA1E3A4 0x98ED +0x8EA1E3A5 0x99AE +0x8EA1E3A6 0x99AD +0x8EA1E3A7 0x9EC3 +0x8EA1E3A8 0x9ECD +0x8EA1E3A9 0x9ED1 +0x8EA1E3AA 0x4E82 +0x8EA1E3AB 0x50AD +0x8EA1E3AC 0x50B5 +0x8EA1E3AD 0x50B2 +0x8EA1E3AE 0x50B3 +0x8EA1E3AF 0x50C5 +0x8EA1E3B0 0x50BE +0x8EA1E3B1 0x50AC +0x8EA1E3B2 0x50B7 +0x8EA1E3B3 0x50BB +0x8EA1E3B4 0x50AF +0x8EA1E3B5 0x50C7 +0x8EA1E3B6 0x527F +0x8EA1E3B7 0x5277 +0x8EA1E3B8 0x527D +0x8EA1E3B9 0x52DF +0x8EA1E3BA 0x52E6 +0x8EA1E3BB 0x52E4 +0x8EA1E3BC 0x52E2 +0x8EA1E3BD 0x52E3 +0x8EA1E3BE 0x532F +0x8EA1E3BF 0x55DF +0x8EA1E3C0 0x55E8 +0x8EA1E3C1 0x55D3 +0x8EA1E3C2 0x55E6 +0x8EA1E3C3 0x55CE +0x8EA1E3C4 0x55DC +0x8EA1E3C5 0x55C7 +0x8EA1E3C6 0x55D1 +0x8EA1E3C7 0x55E3 +0x8EA1E3C8 0x55E4 +0x8EA1E3C9 0x55EF +0x8EA1E3CA 0x55DA +0x8EA1E3CB 0x55E1 +0x8EA1E3CC 0x55C5 +0x8EA1E3CD 0x55C6 +0x8EA1E3CE 0x55E5 +0x8EA1E3CF 0x55C9 +0x8EA1E3D0 0x5712 +0x8EA1E3D1 0x5713 +0x8EA1E3D2 0x585E +0x8EA1E3D3 0x5851 +0x8EA1E3D4 0x5858 +0x8EA1E3D5 0x5857 +0x8EA1E3D6 0x585A +0x8EA1E3D7 0x5854 +0x8EA1E3D8 0x586B +0x8EA1E3D9 0x584C +0x8EA1E3DA 0x586D +0x8EA1E3DB 0x584A +0x8EA1E3DC 0x5862 +0x8EA1E3DD 0x5852 +0x8EA1E3DE 0x584B +0x8EA1E3DF 0x5967 +0x8EA1E3E0 0x5AC1 +0x8EA1E3E1 0x5AC9 +0x8EA1E3E2 0x5ACC +0x8EA1E3E3 0x5ABE +0x8EA1E3E4 0x5ABD +0x8EA1E3E5 0x5ABC +0x8EA1E3E6 0x5AB3 +0x8EA1E3E7 0x5AC2 +0x8EA1E3E8 0x5AB2 +0x8EA1E3E9 0x5D69 +0x8EA1E3EA 0x5D6F +0x8EA1E3EB 0x5E4C +0x8EA1E3EC 0x5E79 +0x8EA1E3ED 0x5EC9 +0x8EA1E3EE 0x5EC8 +0x8EA1E3EF 0x5F12 +0x8EA1E3F0 0x5F59 +0x8EA1E3F1 0x5FAC +0x8EA1E3F2 0x5FAE +0x8EA1E3F3 0x611A +0x8EA1E3F4 0x610F +0x8EA1E3F5 0x6148 +0x8EA1E3F6 0x611F +0x8EA1E3F7 0x60F3 +0x8EA1E3F8 0x611B +0x8EA1E3F9 0x60F9 +0x8EA1E3FA 0x6101 +0x8EA1E3FB 0x6108 +0x8EA1E3FC 0x614E +0x8EA1E3FD 0x614C +0x8EA1E3FE 0x6144 +0x8EA1E4A1 0x614D +0x8EA1E4A2 0x613E +0x8EA1E4A3 0x6134 +0x8EA1E4A4 0x6127 +0x8EA1E4A5 0x610D +0x8EA1E4A6 0x6106 +0x8EA1E4A7 0x6137 +0x8EA1E4A8 0x6221 +0x8EA1E4A9 0x6222 +0x8EA1E4AA 0x6413 +0x8EA1E4AB 0x643E +0x8EA1E4AC 0x641E +0x8EA1E4AD 0x642A +0x8EA1E4AE 0x642D +0x8EA1E4AF 0x643D +0x8EA1E4B0 0x642C +0x8EA1E4B1 0x640F +0x8EA1E4B2 0x641C +0x8EA1E4B3 0x6414 +0x8EA1E4B4 0x640D +0x8EA1E4B5 0x6436 +0x8EA1E4B6 0x6416 +0x8EA1E4B7 0x6417 +0x8EA1E4B8 0x6406 +0x8EA1E4B9 0x656C +0x8EA1E4BA 0x659F +0x8EA1E4BB 0x65B0 +0x8EA1E4BC 0x6697 +0x8EA1E4BD 0x6689 +0x8EA1E4BE 0x6687 +0x8EA1E4BF 0x6688 +0x8EA1E4C0 0x6696 +0x8EA1E4C1 0x6684 +0x8EA1E4C2 0x6698 +0x8EA1E4C3 0x668D +0x8EA1E4C4 0x6703 +0x8EA1E4C5 0x6994 +0x8EA1E4C6 0x696D +0x8EA1E4C7 0x695A +0x8EA1E4C8 0x6977 +0x8EA1E4C9 0x6960 +0x8EA1E4CA 0x6954 +0x8EA1E4CB 0x6975 +0x8EA1E4CC 0x6930 +0x8EA1E4CD 0x6982 +0x8EA1E4CE 0x694A +0x8EA1E4CF 0x6968 +0x8EA1E4D0 0x696B +0x8EA1E4D1 0x695E +0x8EA1E4D2 0x6953 +0x8EA1E4D3 0x6979 +0x8EA1E4D4 0x6986 +0x8EA1E4D5 0x695D +0x8EA1E4D6 0x6963 +0x8EA1E4D7 0x695B +0x8EA1E4D8 0x6B47 +0x8EA1E4D9 0x6B72 +0x8EA1E4DA 0x6BC0 +0x8EA1E4DB 0x6BBF +0x8EA1E4DC 0x6BD3 +0x8EA1E4DD 0x6BFD +0x8EA1E4DE 0x6EA2 +0x8EA1E4DF 0x6EAF +0x8EA1E4E0 0x6ED3 +0x8EA1E4E1 0x6EB6 +0x8EA1E4E2 0x6EC2 +0x8EA1E4E3 0x6E90 +0x8EA1E4E4 0x6E9D +0x8EA1E4E5 0x6EC7 +0x8EA1E4E6 0x6EC5 +0x8EA1E4E7 0x6EA5 +0x8EA1E4E8 0x6E98 +0x8EA1E4E9 0x6EBC +0x8EA1E4EA 0x6EBA +0x8EA1E4EB 0x6EAB +0x8EA1E4EC 0x6ED1 +0x8EA1E4ED 0x6E96 +0x8EA1E4EE 0x6E9C +0x8EA1E4EF 0x6EC4 +0x8EA1E4F0 0x6ED4 +0x8EA1E4F1 0x6EAA +0x8EA1E4F2 0x6EA7 +0x8EA1E4F3 0x6EB4 +0x8EA1E4F4 0x714E +0x8EA1E4F5 0x7159 +0x8EA1E4F6 0x7169 +0x8EA1E4F7 0x7164 +0x8EA1E4F8 0x7149 +0x8EA1E4F9 0x7167 +0x8EA1E4FA 0x715C +0x8EA1E4FB 0x716C +0x8EA1E4FC 0x7166 +0x8EA1E4FD 0x714C +0x8EA1E4FE 0x7165 +0x8EA1E5A1 0x715E +0x8EA1E5A2 0x7146 +0x8EA1E5A3 0x7168 +0x8EA1E5A4 0x7156 +0x8EA1E5A5 0x723A +0x8EA1E5A6 0x7252 +0x8EA1E5A7 0x7337 +0x8EA1E5A8 0x7345 +0x8EA1E5A9 0x733F +0x8EA1E5AA 0x733E +0x8EA1E5AB 0x746F +0x8EA1E5AC 0x745A +0x8EA1E5AD 0x7455 +0x8EA1E5AE 0x745F +0x8EA1E5AF 0x745E +0x8EA1E5B0 0x7441 +0x8EA1E5B1 0x743F +0x8EA1E5B2 0x7459 +0x8EA1E5B3 0x745B +0x8EA1E5B4 0x745C +0x8EA1E5B5 0x7576 +0x8EA1E5B6 0x7578 +0x8EA1E5B7 0x7600 +0x8EA1E5B8 0x75F0 +0x8EA1E5B9 0x7601 +0x8EA1E5BA 0x75F2 +0x8EA1E5BB 0x75F1 +0x8EA1E5BC 0x75FA +0x8EA1E5BD 0x75FF +0x8EA1E5BE 0x75F4 +0x8EA1E5BF 0x75F3 +0x8EA1E5C0 0x76DE +0x8EA1E5C1 0x76DF +0x8EA1E5C2 0x775B +0x8EA1E5C3 0x776B +0x8EA1E5C4 0x7766 +0x8EA1E5C5 0x775E +0x8EA1E5C6 0x7763 +0x8EA1E5C7 0x7779 +0x8EA1E5C8 0x776A +0x8EA1E5C9 0x776C +0x8EA1E5CA 0x775C +0x8EA1E5CB 0x7765 +0x8EA1E5CC 0x7768 +0x8EA1E5CD 0x7762 +0x8EA1E5CE 0x77EE +0x8EA1E5CF 0x788E +0x8EA1E5D0 0x78B0 +0x8EA1E5D1 0x7897 +0x8EA1E5D2 0x7898 +0x8EA1E5D3 0x788C +0x8EA1E5D4 0x7889 +0x8EA1E5D5 0x787C +0x8EA1E5D6 0x7891 +0x8EA1E5D7 0x7893 +0x8EA1E5D8 0x787F +0x8EA1E5D9 0x797A +0x8EA1E5DA 0x797F +0x8EA1E5DB 0x7981 +0x8EA1E5DC 0x842C +0x8EA1E5DD 0x79BD +0x8EA1E5DE 0x7A1C +0x8EA1E5DF 0x7A1A +0x8EA1E5E0 0x7A20 +0x8EA1E5E1 0x7A14 +0x8EA1E5E2 0x7A1F +0x8EA1E5E3 0x7A1E +0x8EA1E5E4 0x7A9F +0x8EA1E5E5 0x7AA0 +0x8EA1E5E6 0x7B77 +0x8EA1E5E7 0x7BC0 +0x8EA1E5E8 0x7B60 +0x8EA1E5E9 0x7B6E +0x8EA1E5EA 0x7B67 +0x8EA1E5EB 0x7CB1 +0x8EA1E5EC 0x7CB3 +0x8EA1E5ED 0x7CB5 +0x8EA1E5EE 0x7D93 +0x8EA1E5EF 0x7D79 +0x8EA1E5F0 0x7D91 +0x8EA1E5F1 0x7D81 +0x8EA1E5F2 0x7D8F +0x8EA1E5F3 0x7D5B +0x8EA1E5F4 0x7F6E +0x8EA1E5F5 0x7F69 +0x8EA1E5F6 0x7F6A +0x8EA1E5F7 0x7F72 +0x8EA1E5F8 0x7FA9 +0x8EA1E5F9 0x7FA8 +0x8EA1E5FA 0x7FA4 +0x8EA1E5FB 0x8056 +0x8EA1E5FC 0x8058 +0x8EA1E5FD 0x8086 +0x8EA1E5FE 0x8084 +0x8EA1E6A1 0x8171 +0x8EA1E6A2 0x8170 +0x8EA1E6A3 0x8178 +0x8EA1E6A4 0x8165 +0x8EA1E6A5 0x816E +0x8EA1E6A6 0x8173 +0x8EA1E6A7 0x816B +0x8EA1E6A8 0x8179 +0x8EA1E6A9 0x817A +0x8EA1E6AA 0x8166 +0x8EA1E6AB 0x8205 +0x8EA1E6AC 0x8247 +0x8EA1E6AD 0x8482 +0x8EA1E6AE 0x8477 +0x8EA1E6AF 0x843D +0x8EA1E6B0 0x8431 +0x8EA1E6B1 0x8475 +0x8EA1E6B2 0x8466 +0x8EA1E6B3 0x846B +0x8EA1E6B4 0x8449 +0x8EA1E6B5 0x846C +0x8EA1E6B6 0x845B +0x8EA1E6B7 0x843C +0x8EA1E6B8 0x8435 +0x8EA1E6B9 0x8461 +0x8EA1E6BA 0x8463 +0x8EA1E6BB 0x8469 +0x8EA1E6BC 0x846D +0x8EA1E6BD 0x8446 +0x8EA1E6BE 0x865E +0x8EA1E6BF 0x865C +0x8EA1E6C0 0x865F +0x8EA1E6C1 0x86F9 +0x8EA1E6C2 0x8713 +0x8EA1E6C3 0x8708 +0x8EA1E6C4 0x8707 +0x8EA1E6C5 0x8700 +0x8EA1E6C6 0x86FE +0x8EA1E6C7 0x86FB +0x8EA1E6C8 0x8702 +0x8EA1E6C9 0x8703 +0x8EA1E6CA 0x8706 +0x8EA1E6CB 0x870A +0x8EA1E6CC 0x8859 +0x8EA1E6CD 0x88DF +0x8EA1E6CE 0x88D4 +0x8EA1E6CF 0x88D9 +0x8EA1E6D0 0x88DC +0x8EA1E6D1 0x88D8 +0x8EA1E6D2 0x88DD +0x8EA1E6D3 0x88E1 +0x8EA1E6D4 0x88CA +0x8EA1E6D5 0x88D5 +0x8EA1E6D6 0x88D2 +0x8EA1E6D7 0x899C +0x8EA1E6D8 0x89E3 +0x8EA1E6D9 0x8A6B +0x8EA1E6DA 0x8A72 +0x8EA1E6DB 0x8A73 +0x8EA1E6DC 0x8A66 +0x8EA1E6DD 0x8A69 +0x8EA1E6DE 0x8A70 +0x8EA1E6DF 0x8A87 +0x8EA1E6E0 0x8A7C +0x8EA1E6E1 0x8A63 +0x8EA1E6E2 0x8AA0 +0x8EA1E6E3 0x8A71 +0x8EA1E6E4 0x8A85 +0x8EA1E6E5 0x8A6D +0x8EA1E6E6 0x8A62 +0x8EA1E6E7 0x8A6E +0x8EA1E6E8 0x8A6C +0x8EA1E6E9 0x8A79 +0x8EA1E6EA 0x8A7B +0x8EA1E6EB 0x8A3E +0x8EA1E6EC 0x8A68 +0x8EA1E6ED 0x8C62 +0x8EA1E6EE 0x8C8A +0x8EA1E6EF 0x8C89 +0x8EA1E6F0 0x8CCA +0x8EA1E6F1 0x8CC7 +0x8EA1E6F2 0x8CC8 +0x8EA1E6F3 0x8CC4 +0x8EA1E6F4 0x8CB2 +0x8EA1E6F5 0x8CC3 +0x8EA1E6F6 0x8CC2 +0x8EA1E6F7 0x8CC5 +0x8EA1E6F8 0x8DE1 +0x8EA1E6F9 0x8DDF +0x8EA1E6FA 0x8DE8 +0x8EA1E6FB 0x8DEF +0x8EA1E6FC 0x8DF3 +0x8EA1E6FD 0x8DFA +0x8EA1E6FE 0x8DEA +0x8EA1E7A1 0x8DE4 +0x8EA1E7A2 0x8DE6 +0x8EA1E7A3 0x8EB2 +0x8EA1E7A4 0x8F03 +0x8EA1E7A5 0x8F09 +0x8EA1E7A6 0x8EFE +0x8EA1E7A7 0x8F0A +0x8EA1E7A8 0x8F9F +0x8EA1E7A9 0x8FB2 +0x8EA1E7AA 0x904B +0x8EA1E7AB 0x904A +0x8EA1E7AC 0x9053 +0x8EA1E7AD 0x9042 +0x8EA1E7AE 0x9054 +0x8EA1E7AF 0x903C +0x8EA1E7B0 0x9055 +0x8EA1E7B1 0x9050 +0x8EA1E7B2 0x9047 +0x8EA1E7B3 0x904F +0x8EA1E7B4 0x904E +0x8EA1E7B5 0x904D +0x8EA1E7B6 0x9051 +0x8EA1E7B7 0x903E +0x8EA1E7B8 0x9041 +0x8EA1E7B9 0x9112 +0x8EA1E7BA 0x9117 +0x8EA1E7BB 0x916C +0x8EA1E7BC 0x916A +0x8EA1E7BD 0x9169 +0x8EA1E7BE 0x91C9 +0x8EA1E7BF 0x9237 +0x8EA1E7C0 0x9257 +0x8EA1E7C1 0x9238 +0x8EA1E7C2 0x923D +0x8EA1E7C3 0x9240 +0x8EA1E7C4 0x923E +0x8EA1E7C5 0x925B +0x8EA1E7C6 0x924B +0x8EA1E7C7 0x9264 +0x8EA1E7C8 0x9251 +0x8EA1E7C9 0x9234 +0x8EA1E7CA 0x9249 +0x8EA1E7CB 0x924D +0x8EA1E7CC 0x9245 +0x8EA1E7CD 0x9239 +0x8EA1E7CE 0x923F +0x8EA1E7CF 0x925A +0x8EA1E7D0 0x9598 +0x8EA1E7D1 0x9698 +0x8EA1E7D2 0x9694 +0x8EA1E7D3 0x9695 +0x8EA1E7D4 0x96CD +0x8EA1E7D5 0x96CB +0x8EA1E7D6 0x96C9 +0x8EA1E7D7 0x96CA +0x8EA1E7D8 0x96F7 +0x8EA1E7D9 0x96FB +0x8EA1E7DA 0x96F9 +0x8EA1E7DB 0x96F6 +0x8EA1E7DC 0x9756 +0x8EA1E7DD 0x9774 +0x8EA1E7DE 0x9776 +0x8EA1E7DF 0x9810 +0x8EA1E7E0 0x9811 +0x8EA1E7E1 0x9813 +0x8EA1E7E2 0x980A +0x8EA1E7E3 0x9812 +0x8EA1E7E4 0x980C +0x8EA1E7E5 0x98FC +0x8EA1E7E6 0x98F4 +0x8EA1E7E7 0x98FD +0x8EA1E7E8 0x98FE +0x8EA1E7E9 0x99B3 +0x8EA1E7EA 0x99B1 +0x8EA1E7EB 0x99B4 +0x8EA1E7EC 0x9AE1 +0x8EA1E7ED 0x9CE9 +0x8EA1E7EE 0x9E82 +0x8EA1E7EF 0x9F0E +0x8EA1E7F0 0x9F13 +0x8EA1E7F1 0x9F20 +0x8EA1E7F2 0x50E7 +0x8EA1E7F3 0x50EE +0x8EA1E7F4 0x50E5 +0x8EA1E7F5 0x50D6 +0x8EA1E7F6 0x50ED +0x8EA1E7F7 0x50DA +0x8EA1E7F8 0x50D5 +0x8EA1E7F9 0x50CF +0x8EA1E7FA 0x50D1 +0x8EA1E7FB 0x50F1 +0x8EA1E7FC 0x50CE +0x8EA1E7FD 0x50E9 +0x8EA1E7FE 0x5162 +0x8EA1E8A1 0x51F3 +0x8EA1E8A2 0x5283 +0x8EA1E8A3 0x5282 +0x8EA1E8A4 0x5331 +0x8EA1E8A5 0x53AD +0x8EA1E8A6 0x55FE +0x8EA1E8A7 0x5600 +0x8EA1E8A8 0x561B +0x8EA1E8A9 0x5617 +0x8EA1E8AA 0x55FD +0x8EA1E8AB 0x5614 +0x8EA1E8AC 0x5606 +0x8EA1E8AD 0x5609 +0x8EA1E8AE 0x560D +0x8EA1E8AF 0x560E +0x8EA1E8B0 0x55F7 +0x8EA1E8B1 0x5616 +0x8EA1E8B2 0x561F +0x8EA1E8B3 0x5608 +0x8EA1E8B4 0x5610 +0x8EA1E8B5 0x55F6 +0x8EA1E8B6 0x5718 +0x8EA1E8B7 0x5716 +0x8EA1E8B8 0x5875 +0x8EA1E8B9 0x587E +0x8EA1E8BA 0x5883 +0x8EA1E8BB 0x5893 +0x8EA1E8BC 0x588A +0x8EA1E8BD 0x5879 +0x8EA1E8BE 0x5885 +0x8EA1E8BF 0x587D +0x8EA1E8C0 0x58FD +0x8EA1E8C1 0x5925 +0x8EA1E8C2 0x5922 +0x8EA1E8C3 0x5924 +0x8EA1E8C4 0x596A +0x8EA1E8C5 0x5969 +0x8EA1E8C6 0x5AE1 +0x8EA1E8C7 0x5AE6 +0x8EA1E8C8 0x5AE9 +0x8EA1E8C9 0x5AD7 +0x8EA1E8CA 0x5AD6 +0x8EA1E8CB 0x5AD8 +0x8EA1E8CC 0x5AE3 +0x8EA1E8CD 0x5B75 +0x8EA1E8CE 0x5BDE +0x8EA1E8CF 0x5BE7 +0x8EA1E8D0 0x5BE1 +0x8EA1E8D1 0x5BE5 +0x8EA1E8D2 0x5BE6 +0x8EA1E8D3 0x5BE8 +0x8EA1E8D4 0x5BE2 +0x8EA1E8D5 0x5BE4 +0x8EA1E8D6 0x5BDF +0x8EA1E8D7 0x5C0D +0x8EA1E8D8 0x5C62 +0x8EA1E8D9 0x5D84 +0x8EA1E8DA 0x5D87 +0x8EA1E8DB 0x5E5B +0x8EA1E8DC 0x5E63 +0x8EA1E8DD 0x5E55 +0x8EA1E8DE 0x5E57 +0x8EA1E8DF 0x5E54 +0x8EA1E8E0 0x5ED3 +0x8EA1E8E1 0x5ED6 +0x8EA1E8E2 0x5F0A +0x8EA1E8E3 0x5F46 +0x8EA1E8E4 0x5F70 +0x8EA1E8E5 0x5FB9 +0x8EA1E8E6 0x6147 +0x8EA1E8E7 0x613F +0x8EA1E8E8 0x614B +0x8EA1E8E9 0x6177 +0x8EA1E8EA 0x6162 +0x8EA1E8EB 0x6163 +0x8EA1E8EC 0x615F +0x8EA1E8ED 0x615A +0x8EA1E8EE 0x6158 +0x8EA1E8EF 0x6175 +0x8EA1E8F0 0x622A +0x8EA1E8F1 0x6487 +0x8EA1E8F2 0x6458 +0x8EA1E8F3 0x6454 +0x8EA1E8F4 0x64A4 +0x8EA1E8F5 0x6478 +0x8EA1E8F6 0x645F +0x8EA1E8F7 0x647A +0x8EA1E8F8 0x6451 +0x8EA1E8F9 0x6467 +0x8EA1E8FA 0x6434 +0x8EA1E8FB 0x646D +0x8EA1E8FC 0x647B +0x8EA1E8FD 0x6572 +0x8EA1E8FE 0x65A1 +0x8EA1E9A1 0x65D7 +0x8EA1E9A2 0x65D6 +0x8EA1E9A3 0x66A2 +0x8EA1E9A4 0x66A8 +0x8EA1E9A5 0x669D +0x8EA1E9A6 0x699C +0x8EA1E9A7 0x69A8 +0x8EA1E9A8 0x6995 +0x8EA1E9A9 0x69C1 +0x8EA1E9AA 0x69AE +0x8EA1E9AB 0x69D3 +0x8EA1E9AC 0x69CB +0x8EA1E9AD 0x699B +0x8EA1E9AE 0x69B7 +0x8EA1E9AF 0x69BB +0x8EA1E9B0 0x69AB +0x8EA1E9B1 0x69B4 +0x8EA1E9B2 0x69D0 +0x8EA1E9B3 0x69CD +0x8EA1E9B4 0x69AD +0x8EA1E9B5 0x69CC +0x8EA1E9B6 0x69A6 +0x8EA1E9B7 0x69C3 +0x8EA1E9B8 0x69A3 +0x8EA1E9B9 0x6B49 +0x8EA1E9BA 0x6B4C +0x8EA1E9BB 0x6C33 +0x8EA1E9BC 0x6F33 +0x8EA1E9BD 0x6F14 +0x8EA1E9BE 0x6EFE +0x8EA1E9BF 0x6F13 +0x8EA1E9C0 0x6EF4 +0x8EA1E9C1 0x6F29 +0x8EA1E9C2 0x6F3E +0x8EA1E9C3 0x6F20 +0x8EA1E9C4 0x6F2C +0x8EA1E9C5 0x6F0F +0x8EA1E9C6 0x6F02 +0x8EA1E9C7 0x6F22 +0x8EA1E9C8 0x6EFF +0x8EA1E9C9 0x6EEF +0x8EA1E9CA 0x6F06 +0x8EA1E9CB 0x6F31 +0x8EA1E9CC 0x6F38 +0x8EA1E9CD 0x6F32 +0x8EA1E9CE 0x6F23 +0x8EA1E9CF 0x6F15 +0x8EA1E9D0 0x6F2B +0x8EA1E9D1 0x6F2F +0x8EA1E9D2 0x6F88 +0x8EA1E9D3 0x6F2A +0x8EA1E9D4 0x6EEC +0x8EA1E9D5 0x6F01 +0x8EA1E9D6 0x6EF2 +0x8EA1E9D7 0x6ECC +0x8EA1E9D8 0x6EF7 +0x8EA1E9D9 0x7194 +0x8EA1E9DA 0x7199 +0x8EA1E9DB 0x717D +0x8EA1E9DC 0x718A +0x8EA1E9DD 0x7184 +0x8EA1E9DE 0x7192 +0x8EA1E9DF 0x723E +0x8EA1E9E0 0x7292 +0x8EA1E9E1 0x7296 +0x8EA1E9E2 0x7344 +0x8EA1E9E3 0x7350 +0x8EA1E9E4 0x7464 +0x8EA1E9E5 0x7463 +0x8EA1E9E6 0x746A +0x8EA1E9E7 0x7470 +0x8EA1E9E8 0x746D +0x8EA1E9E9 0x7504 +0x8EA1E9EA 0x7591 +0x8EA1E9EB 0x7627 +0x8EA1E9EC 0x760D +0x8EA1E9ED 0x760B +0x8EA1E9EE 0x7609 +0x8EA1E9EF 0x7613 +0x8EA1E9F0 0x76E1 +0x8EA1E9F1 0x76E3 +0x8EA1E9F2 0x7784 +0x8EA1E9F3 0x777D +0x8EA1E9F4 0x777F +0x8EA1E9F5 0x7761 +0x8EA1E9F6 0x78C1 +0x8EA1E9F7 0x789F +0x8EA1E9F8 0x78A7 +0x8EA1E9F9 0x78B3 +0x8EA1E9FA 0x78A9 +0x8EA1E9FB 0x78A3 +0x8EA1E9FC 0x798E +0x8EA1E9FD 0x798F +0x8EA1E9FE 0x798D +0x8EA1EAA1 0x7A2E +0x8EA1EAA2 0x7A31 +0x8EA1EAA3 0x7AAA +0x8EA1EAA4 0x7AA9 +0x8EA1EAA5 0x7AED +0x8EA1EAA6 0x7AEF +0x8EA1EAA7 0x7BA1 +0x8EA1EAA8 0x7B95 +0x8EA1EAA9 0x7B8B +0x8EA1EAAA 0x7B75 +0x8EA1EAAB 0x7B97 +0x8EA1EAAC 0x7B9D +0x8EA1EAAD 0x7B94 +0x8EA1EAAE 0x7B8F +0x8EA1EAAF 0x7BB8 +0x8EA1EAB0 0x7B87 +0x8EA1EAB1 0x7B84 +0x8EA1EAB2 0x7CB9 +0x8EA1EAB3 0x7CBD +0x8EA1EAB4 0x7CBE +0x8EA1EAB5 0x7DBB +0x8EA1EAB6 0x7DB0 +0x8EA1EAB7 0x7D9C +0x8EA1EAB8 0x7DBD +0x8EA1EAB9 0x7DBE +0x8EA1EABA 0x7DA0 +0x8EA1EABB 0x7DCA +0x8EA1EABC 0x7DB4 +0x8EA1EABD 0x7DB2 +0x8EA1EABE 0x7DB1 +0x8EA1EABF 0x7DBA +0x8EA1EAC0 0x7DA2 +0x8EA1EAC1 0x7DBF +0x8EA1EAC2 0x7DB5 +0x8EA1EAC3 0x7DB8 +0x8EA1EAC4 0x7DAD +0x8EA1EAC5 0x7DD2 +0x8EA1EAC6 0x7DC7 +0x8EA1EAC7 0x7DAC +0x8EA1EAC8 0x7F70 +0x8EA1EAC9 0x7FE0 +0x8EA1EACA 0x7FE1 +0x8EA1EACB 0x7FDF +0x8EA1EACC 0x805E +0x8EA1EACD 0x805A +0x8EA1EACE 0x8087 +0x8EA1EACF 0x8150 +0x8EA1EAD0 0x8180 +0x8EA1EAD1 0x818F +0x8EA1EAD2 0x8188 +0x8EA1EAD3 0x818A +0x8EA1EAD4 0x817F +0x8EA1EAD5 0x8182 +0x8EA1EAD6 0x81E7 +0x8EA1EAD7 0x81FA +0x8EA1EAD8 0x8207 +0x8EA1EAD9 0x8214 +0x8EA1EADA 0x821E +0x8EA1EADB 0x824B +0x8EA1EADC 0x84C9 +0x8EA1EADD 0x84BF +0x8EA1EADE 0x84C6 +0x8EA1EADF 0x84C4 +0x8EA1EAE0 0x8499 +0x8EA1EAE1 0x849E +0x8EA1EAE2 0x84B2 +0x8EA1EAE3 0x849C +0x8EA1EAE4 0x84CB +0x8EA1EAE5 0x84B8 +0x8EA1EAE6 0x84C0 +0x8EA1EAE7 0x84D3 +0x8EA1EAE8 0x8490 +0x8EA1EAE9 0x84BC +0x8EA1EAEA 0x84D1 +0x8EA1EAEB 0x84CA +0x8EA1EAEC 0x873F +0x8EA1EAED 0x871C +0x8EA1EAEE 0x873B +0x8EA1EAEF 0x8722 +0x8EA1EAF0 0x8725 +0x8EA1EAF1 0x8734 +0x8EA1EAF2 0x8718 +0x8EA1EAF3 0x8755 +0x8EA1EAF4 0x8737 +0x8EA1EAF5 0x8729 +0x8EA1EAF6 0x88F3 +0x8EA1EAF7 0x8902 +0x8EA1EAF8 0x88F4 +0x8EA1EAF9 0x88F9 +0x8EA1EAFA 0x88F8 +0x8EA1EAFB 0x88FD +0x8EA1EAFC 0x88E8 +0x8EA1EAFD 0x891A +0x8EA1EAFE 0x88EF +0x8EA1EBA1 0x8AA6 +0x8EA1EBA2 0x8A8C +0x8EA1EBA3 0x8A9E +0x8EA1EBA4 0x8AA3 +0x8EA1EBA5 0x8A8D +0x8EA1EBA6 0x8AA1 +0x8EA1EBA7 0x8A93 +0x8EA1EBA8 0x8AA4 +0x8EA1EBA9 0x8AAA +0x8EA1EBAA 0x8AA5 +0x8EA1EBAB 0x8AA8 +0x8EA1EBAC 0x8A98 +0x8EA1EBAD 0x8A91 +0x8EA1EBAE 0x8A9A +0x8EA1EBAF 0x8AA7 +0x8EA1EBB0 0x8C6A +0x8EA1EBB1 0x8C8D +0x8EA1EBB2 0x8C8C +0x8EA1EBB3 0x8CD3 +0x8EA1EBB4 0x8CD1 +0x8EA1EBB5 0x8CD2 +0x8EA1EBB6 0x8D6B +0x8EA1EBB7 0x8D99 +0x8EA1EBB8 0x8D95 +0x8EA1EBB9 0x8DFC +0x8EA1EBBA 0x8F14 +0x8EA1EBBB 0x8F12 +0x8EA1EBBC 0x8F15 +0x8EA1EBBD 0x8F13 +0x8EA1EBBE 0x8FA3 +0x8EA1EBBF 0x9060 +0x8EA1EBC0 0x9058 +0x8EA1EBC1 0x905C +0x8EA1EBC2 0x9063 +0x8EA1EBC3 0x9059 +0x8EA1EBC4 0x905E +0x8EA1EBC5 0x9062 +0x8EA1EBC6 0x905D +0x8EA1EBC7 0x905B +0x8EA1EBC8 0x9119 +0x8EA1EBC9 0x9118 +0x8EA1EBCA 0x911E +0x8EA1EBCB 0x9175 +0x8EA1EBCC 0x9178 +0x8EA1EBCD 0x9177 +0x8EA1EBCE 0x9174 +0x8EA1EBCF 0x9278 +0x8EA1EBD0 0x92AC +0x8EA1EBD1 0x9280 +0x8EA1EBD2 0x9285 +0x8EA1EBD3 0x9298 +0x8EA1EBD4 0x9296 +0x8EA1EBD5 0x927B +0x8EA1EBD6 0x9293 +0x8EA1EBD7 0x929C +0x8EA1EBD8 0x92A8 +0x8EA1EBD9 0x927C +0x8EA1EBDA 0x9291 +0x8EA1EBDB 0x95A1 +0x8EA1EBDC 0x95A8 +0x8EA1EBDD 0x95A9 +0x8EA1EBDE 0x95A3 +0x8EA1EBDF 0x95A5 +0x8EA1EBE0 0x95A4 +0x8EA1EBE1 0x9699 +0x8EA1EBE2 0x969C +0x8EA1EBE3 0x969B +0x8EA1EBE4 0x96CC +0x8EA1EBE5 0x96D2 +0x8EA1EBE6 0x9700 +0x8EA1EBE7 0x977C +0x8EA1EBE8 0x9785 +0x8EA1EBE9 0x97F6 +0x8EA1EBEA 0x9817 +0x8EA1EBEB 0x9818 +0x8EA1EBEC 0x98AF +0x8EA1EBED 0x98B1 +0x8EA1EBEE 0x9903 +0x8EA1EBEF 0x9905 +0x8EA1EBF0 0x990C +0x8EA1EBF1 0x9909 +0x8EA1EBF2 0x99C1 +0x8EA1EBF3 0x9AAF +0x8EA1EBF4 0x9AB0 +0x8EA1EBF5 0x9AE6 +0x8EA1EBF6 0x9B41 +0x8EA1EBF7 0x9B42 +0x8EA1EBF8 0x9CF4 +0x8EA1EBF9 0x9CF6 +0x8EA1EBFA 0x9CF3 +0x8EA1EBFB 0x9EBC +0x8EA1EBFC 0x9F3B +0x8EA1EBFD 0x9F4A +0x8EA1EBFE 0x5104 +0x8EA1ECA1 0x5100 +0x8EA1ECA2 0x50FB +0x8EA1ECA3 0x50F5 +0x8EA1ECA4 0x50F9 +0x8EA1ECA5 0x5102 +0x8EA1ECA6 0x5108 +0x8EA1ECA7 0x5109 +0x8EA1ECA8 0x5105 +0x8EA1ECA9 0x51DC +0x8EA1ECAA 0x5287 +0x8EA1ECAB 0x5288 +0x8EA1ECAC 0x5289 +0x8EA1ECAD 0x528D +0x8EA1ECAE 0x528A +0x8EA1ECAF 0x52F0 +0x8EA1ECB0 0x53B2 +0x8EA1ECB1 0x562E +0x8EA1ECB2 0x563B +0x8EA1ECB3 0x5639 +0x8EA1ECB4 0x5632 +0x8EA1ECB5 0x563F +0x8EA1ECB6 0x5634 +0x8EA1ECB7 0x5629 +0x8EA1ECB8 0x5653 +0x8EA1ECB9 0x564E +0x8EA1ECBA 0x5657 +0x8EA1ECBB 0x5674 +0x8EA1ECBC 0x5636 +0x8EA1ECBD 0x562F +0x8EA1ECBE 0x5630 +0x8EA1ECBF 0x5880 +0x8EA1ECC0 0x589F +0x8EA1ECC1 0x589E +0x8EA1ECC2 0x58B3 +0x8EA1ECC3 0x589C +0x8EA1ECC4 0x58AE +0x8EA1ECC5 0x58A9 +0x8EA1ECC6 0x58A6 +0x8EA1ECC7 0x596D +0x8EA1ECC8 0x5B09 +0x8EA1ECC9 0x5AFB +0x8EA1ECCA 0x5B0B +0x8EA1ECCB 0x5AF5 +0x8EA1ECCC 0x5B0C +0x8EA1ECCD 0x5B08 +0x8EA1ECCE 0x5BEE +0x8EA1ECCF 0x5BEC +0x8EA1ECD0 0x5BE9 +0x8EA1ECD1 0x5BEB +0x8EA1ECD2 0x5C64 +0x8EA1ECD3 0x5C65 +0x8EA1ECD4 0x5D9D +0x8EA1ECD5 0x5D94 +0x8EA1ECD6 0x5E62 +0x8EA1ECD7 0x5E5F +0x8EA1ECD8 0x5E61 +0x8EA1ECD9 0x5EE2 +0x8EA1ECDA 0x5EDA +0x8EA1ECDB 0x5EDF +0x8EA1ECDC 0x5EDD +0x8EA1ECDD 0x5EE3 +0x8EA1ECDE 0x5EE0 +0x8EA1ECDF 0x5F48 +0x8EA1ECE0 0x5F71 +0x8EA1ECE1 0x5FB7 +0x8EA1ECE2 0x5FB5 +0x8EA1ECE3 0x6176 +0x8EA1ECE4 0x6167 +0x8EA1ECE5 0x616E +0x8EA1ECE6 0x615D +0x8EA1ECE7 0x6155 +0x8EA1ECE8 0x6182 +0x8EA1ECE9 0x617C +0x8EA1ECEA 0x6170 +0x8EA1ECEB 0x616B +0x8EA1ECEC 0x617E +0x8EA1ECED 0x61A7 +0x8EA1ECEE 0x6190 +0x8EA1ECEF 0x61AB +0x8EA1ECF0 0x618E +0x8EA1ECF1 0x61AC +0x8EA1ECF2 0x619A +0x8EA1ECF3 0x61A4 +0x8EA1ECF4 0x6194 +0x8EA1ECF5 0x61AE +0x8EA1ECF6 0x622E +0x8EA1ECF7 0x6469 +0x8EA1ECF8 0x646F +0x8EA1ECF9 0x6479 +0x8EA1ECFA 0x649E +0x8EA1ECFB 0x64B2 +0x8EA1ECFC 0x6488 +0x8EA1ECFD 0x6490 +0x8EA1ECFE 0x64B0 +0x8EA1EDA1 0x64A5 +0x8EA1EDA2 0x6493 +0x8EA1EDA3 0x6495 +0x8EA1EDA4 0x64A9 +0x8EA1EDA5 0x6492 +0x8EA1EDA6 0x64AE +0x8EA1EDA7 0x64AD +0x8EA1EDA8 0x64AB +0x8EA1EDA9 0x649A +0x8EA1EDAA 0x64AC +0x8EA1EDAB 0x6499 +0x8EA1EDAC 0x64A2 +0x8EA1EDAD 0x64B3 +0x8EA1EDAE 0x6575 +0x8EA1EDAF 0x6577 +0x8EA1EDB0 0x6578 +0x8EA1EDB1 0x66AE +0x8EA1EDB2 0x66AB +0x8EA1EDB3 0x66B4 +0x8EA1EDB4 0x66B1 +0x8EA1EDB5 0x6A23 +0x8EA1EDB6 0x6A1F +0x8EA1EDB7 0x69E8 +0x8EA1EDB8 0x6A01 +0x8EA1EDB9 0x6A1E +0x8EA1EDBA 0x6A19 +0x8EA1EDBB 0x69FD +0x8EA1EDBC 0x6A21 +0x8EA1EDBD 0x6A13 +0x8EA1EDBE 0x6A0A +0x8EA1EDBF 0x69F3 +0x8EA1EDC0 0x6A02 +0x8EA1EDC1 0x6A05 +0x8EA1EDC2 0x69ED +0x8EA1EDC3 0x6A11 +0x8EA1EDC4 0x6B50 +0x8EA1EDC5 0x6B4E +0x8EA1EDC6 0x6BA4 +0x8EA1EDC7 0x6BC5 +0x8EA1EDC8 0x6BC6 +0x8EA1EDC9 0x6F3F +0x8EA1EDCA 0x6F7C +0x8EA1EDCB 0x6F84 +0x8EA1EDCC 0x6F51 +0x8EA1EDCD 0x6F66 +0x8EA1EDCE 0x6F54 +0x8EA1EDCF 0x6F86 +0x8EA1EDD0 0x6F6D +0x8EA1EDD1 0x6F5B +0x8EA1EDD2 0x6F78 +0x8EA1EDD3 0x6F6E +0x8EA1EDD4 0x6F8E +0x8EA1EDD5 0x6F7A +0x8EA1EDD6 0x6F70 +0x8EA1EDD7 0x6F64 +0x8EA1EDD8 0x6F97 +0x8EA1EDD9 0x6F58 +0x8EA1EDDA 0x6ED5 +0x8EA1EDDB 0x6F6F +0x8EA1EDDC 0x6F60 +0x8EA1EDDD 0x6F5F +0x8EA1EDDE 0x719F +0x8EA1EDDF 0x71AC +0x8EA1EDE0 0x71B1 +0x8EA1EDE1 0x71A8 +0x8EA1EDE2 0x7256 +0x8EA1EDE3 0x729B +0x8EA1EDE4 0x734E +0x8EA1EDE5 0x7357 +0x8EA1EDE6 0x7469 +0x8EA1EDE7 0x748B +0x8EA1EDE8 0x7483 +0x8EA1EDE9 0x747E +0x8EA1EDEA 0x7480 +0x8EA1EDEB 0x757F +0x8EA1EDEC 0x7620 +0x8EA1EDED 0x7629 +0x8EA1EDEE 0x761F +0x8EA1EDEF 0x7624 +0x8EA1EDF0 0x7626 +0x8EA1EDF1 0x7621 +0x8EA1EDF2 0x7622 +0x8EA1EDF3 0x769A +0x8EA1EDF4 0x76BA +0x8EA1EDF5 0x76E4 +0x8EA1EDF6 0x778E +0x8EA1EDF7 0x7787 +0x8EA1EDF8 0x778C +0x8EA1EDF9 0x7791 +0x8EA1EDFA 0x778B +0x8EA1EDFB 0x78CB +0x8EA1EDFC 0x78C5 +0x8EA1EDFD 0x78BA +0x8EA1EDFE 0x78CA +0x8EA1EEA1 0x78BE +0x8EA1EEA2 0x78D5 +0x8EA1EEA3 0x78BC +0x8EA1EEA4 0x78D0 +0x8EA1EEA5 0x7A3F +0x8EA1EEA6 0x7A3C +0x8EA1EEA7 0x7A40 +0x8EA1EEA8 0x7A3D +0x8EA1EEA9 0x7A37 +0x8EA1EEAA 0x7A3B +0x8EA1EEAB 0x7AAF +0x8EA1EEAC 0x7AAE +0x8EA1EEAD 0x7BAD +0x8EA1EEAE 0x7BB1 +0x8EA1EEAF 0x7BC4 +0x8EA1EEB0 0x7BB4 +0x8EA1EEB1 0x7BC6 +0x8EA1EEB2 0x7BC7 +0x8EA1EEB3 0x7BC1 +0x8EA1EEB4 0x7BA0 +0x8EA1EEB5 0x7BCC +0x8EA1EEB6 0x7CCA +0x8EA1EEB7 0x7DE0 +0x8EA1EEB8 0x7DF4 +0x8EA1EEB9 0x7DEF +0x8EA1EEBA 0x7DFB +0x8EA1EEBB 0x7DD8 +0x8EA1EEBC 0x7DEC +0x8EA1EEBD 0x7DDD +0x8EA1EEBE 0x7DE8 +0x8EA1EEBF 0x7DE3 +0x8EA1EEC0 0x7DDA +0x8EA1EEC1 0x7DDE +0x8EA1EEC2 0x7DE9 +0x8EA1EEC3 0x7D9E +0x8EA1EEC4 0x7DD9 +0x8EA1EEC5 0x7DF2 +0x8EA1EEC6 0x7DF9 +0x8EA1EEC7 0x7F75 +0x8EA1EEC8 0x7F77 +0x8EA1EEC9 0x7FAF +0x8EA1EECA 0x7FE9 +0x8EA1EECB 0x8026 +0x8EA1EECC 0x819B +0x8EA1EECD 0x819C +0x8EA1EECE 0x819D +0x8EA1EECF 0x81A0 +0x8EA1EED0 0x819A +0x8EA1EED1 0x8198 +0x8EA1EED2 0x8517 +0x8EA1EED3 0x853D +0x8EA1EED4 0x851A +0x8EA1EED5 0x84EE +0x8EA1EED6 0x852C +0x8EA1EED7 0x852D +0x8EA1EED8 0x8513 +0x8EA1EED9 0x8511 +0x8EA1EEDA 0x8523 +0x8EA1EEDB 0x8521 +0x8EA1EEDC 0x8514 +0x8EA1EEDD 0x84EC +0x8EA1EEDE 0x8525 +0x8EA1EEDF 0x84FF +0x8EA1EEE0 0x8506 +0x8EA1EEE1 0x8782 +0x8EA1EEE2 0x8774 +0x8EA1EEE3 0x8776 +0x8EA1EEE4 0x8760 +0x8EA1EEE5 0x8766 +0x8EA1EEE6 0x8778 +0x8EA1EEE7 0x8768 +0x8EA1EEE8 0x8759 +0x8EA1EEE9 0x8757 +0x8EA1EEEA 0x874C +0x8EA1EEEB 0x8753 +0x8EA1EEEC 0x885B +0x8EA1EEED 0x885D +0x8EA1EEEE 0x8910 +0x8EA1EEEF 0x8907 +0x8EA1EEF0 0x8912 +0x8EA1EEF1 0x8913 +0x8EA1EEF2 0x8915 +0x8EA1EEF3 0x890A +0x8EA1EEF4 0x8ABC +0x8EA1EEF5 0x8AD2 +0x8EA1EEF6 0x8AC7 +0x8EA1EEF7 0x8AC4 +0x8EA1EEF8 0x8A95 +0x8EA1EEF9 0x8ACB +0x8EA1EEFA 0x8AF8 +0x8EA1EEFB 0x8AB2 +0x8EA1EEFC 0x8AC9 +0x8EA1EEFD 0x8AC2 +0x8EA1EEFE 0x8ABF +0x8EA1EFA1 0x8AB0 +0x8EA1EFA2 0x8AD6 +0x8EA1EFA3 0x8ACD +0x8EA1EFA4 0x8AB6 +0x8EA1EFA5 0x8AB9 +0x8EA1EFA6 0x8ADB +0x8EA1EFA7 0x8C4C +0x8EA1EFA8 0x8C4E +0x8EA1EFA9 0x8C6C +0x8EA1EFAA 0x8CE0 +0x8EA1EFAB 0x8CDE +0x8EA1EFAC 0x8CE6 +0x8EA1EFAD 0x8CE4 +0x8EA1EFAE 0x8CEC +0x8EA1EFAF 0x8CED +0x8EA1EFB0 0x8CE2 +0x8EA1EFB1 0x8CE3 +0x8EA1EFB2 0x8CDC +0x8EA1EFB3 0x8CEA +0x8EA1EFB4 0x8CE1 +0x8EA1EFB5 0x8D6D +0x8EA1EFB6 0x8D9F +0x8EA1EFB7 0x8DA3 +0x8EA1EFB8 0x8E2B +0x8EA1EFB9 0x8E10 +0x8EA1EFBA 0x8E1D +0x8EA1EFBB 0x8E22 +0x8EA1EFBC 0x8E0F +0x8EA1EFBD 0x8E29 +0x8EA1EFBE 0x8E1F +0x8EA1EFBF 0x8E21 +0x8EA1EFC0 0x8E1E +0x8EA1EFC1 0x8EBA +0x8EA1EFC2 0x8F1D +0x8EA1EFC3 0x8F1B +0x8EA1EFC4 0x8F1F +0x8EA1EFC5 0x8F29 +0x8EA1EFC6 0x8F26 +0x8EA1EFC7 0x8F2A +0x8EA1EFC8 0x8F1C +0x8EA1EFC9 0x8F1E +0x8EA1EFCA 0x8F25 +0x8EA1EFCB 0x9069 +0x8EA1EFCC 0x906E +0x8EA1EFCD 0x9068 +0x8EA1EFCE 0x906D +0x8EA1EFCF 0x9077 +0x8EA1EFD0 0x9130 +0x8EA1EFD1 0x912D +0x8EA1EFD2 0x9127 +0x8EA1EFD3 0x9131 +0x8EA1EFD4 0x9187 +0x8EA1EFD5 0x9189 +0x8EA1EFD6 0x918B +0x8EA1EFD7 0x9183 +0x8EA1EFD8 0x92C5 +0x8EA1EFD9 0x92BB +0x8EA1EFDA 0x92B7 +0x8EA1EFDB 0x92EA +0x8EA1EFDC 0x92E4 +0x8EA1EFDD 0x92C1 +0x8EA1EFDE 0x92B3 +0x8EA1EFDF 0x92BC +0x8EA1EFE0 0x92D2 +0x8EA1EFE1 0x92C7 +0x8EA1EFE2 0x92F0 +0x8EA1EFE3 0x92B2 +0x8EA1EFE4 0x95AD +0x8EA1EFE5 0x95B1 +0x8EA1EFE6 0x9704 +0x8EA1EFE7 0x9706 +0x8EA1EFE8 0x9707 +0x8EA1EFE9 0x9709 +0x8EA1EFEA 0x9760 +0x8EA1EFEB 0x978D +0x8EA1EFEC 0x978B +0x8EA1EFED 0x978F +0x8EA1EFEE 0x9821 +0x8EA1EFEF 0x982B +0x8EA1EFF0 0x981C +0x8EA1EFF1 0x98B3 +0x8EA1EFF2 0x990A +0x8EA1EFF3 0x9913 +0x8EA1EFF4 0x9912 +0x8EA1EFF5 0x9918 +0x8EA1EFF6 0x99DD +0x8EA1EFF7 0x99D0 +0x8EA1EFF8 0x99DF +0x8EA1EFF9 0x99DB +0x8EA1EFFA 0x99D1 +0x8EA1EFFB 0x99D5 +0x8EA1EFFC 0x99D2 +0x8EA1EFFD 0x99D9 +0x8EA1EFFE 0x9AB7 +0x8EA1F0A1 0x9AEE +0x8EA1F0A2 0x9AEF +0x8EA1F0A3 0x9B27 +0x8EA1F0A4 0x9B45 +0x8EA1F0A5 0x9B44 +0x8EA1F0A6 0x9B77 +0x8EA1F0A7 0x9B6F +0x8EA1F0A8 0x9D06 +0x8EA1F0A9 0x9D09 +0x8EA1F0AA 0x9D03 +0x8EA1F0AB 0x9EA9 +0x8EA1F0AC 0x9EBE +0x8EA1F0AD 0x9ECE +0x8EA1F0AE 0x58A8 +0x8EA1F0AF 0x9F52 +0x8EA1F0B0 0x5112 +0x8EA1F0B1 0x5118 +0x8EA1F0B2 0x5114 +0x8EA1F0B3 0x5110 +0x8EA1F0B4 0x5115 +0x8EA1F0B5 0x5180 +0x8EA1F0B6 0x51AA +0x8EA1F0B7 0x51DD +0x8EA1F0B8 0x5291 +0x8EA1F0B9 0x5293 +0x8EA1F0BA 0x52F3 +0x8EA1F0BB 0x5659 +0x8EA1F0BC 0x566B +0x8EA1F0BD 0x5679 +0x8EA1F0BE 0x5669 +0x8EA1F0BF 0x5664 +0x8EA1F0C0 0x5678 +0x8EA1F0C1 0x566A +0x8EA1F0C2 0x5668 +0x8EA1F0C3 0x5665 +0x8EA1F0C4 0x5671 +0x8EA1F0C5 0x566F +0x8EA1F0C6 0x566C +0x8EA1F0C7 0x5662 +0x8EA1F0C8 0x5676 +0x8EA1F0C9 0x58C1 +0x8EA1F0CA 0x58BE +0x8EA1F0CB 0x58C7 +0x8EA1F0CC 0x58C5 +0x8EA1F0CD 0x596E +0x8EA1F0CE 0x5B1D +0x8EA1F0CF 0x5B34 +0x8EA1F0D0 0x5B78 +0x8EA1F0D1 0x5BF0 +0x8EA1F0D2 0x5C0E +0x8EA1F0D3 0x5F4A +0x8EA1F0D4 0x61B2 +0x8EA1F0D5 0x6191 +0x8EA1F0D6 0x61A9 +0x8EA1F0D7 0x618A +0x8EA1F0D8 0x61CD +0x8EA1F0D9 0x61B6 +0x8EA1F0DA 0x61BE +0x8EA1F0DB 0x61CA +0x8EA1F0DC 0x61C8 +0x8EA1F0DD 0x6230 +0x8EA1F0DE 0x64C5 +0x8EA1F0DF 0x64C1 +0x8EA1F0E0 0x64CB +0x8EA1F0E1 0x64BB +0x8EA1F0E2 0x64BC +0x8EA1F0E3 0x64DA +0x8EA1F0E4 0x64C4 +0x8EA1F0E5 0x64C7 +0x8EA1F0E6 0x64C2 +0x8EA1F0E7 0x64CD +0x8EA1F0E8 0x64BF +0x8EA1F0E9 0x64D2 +0x8EA1F0EA 0x64D4 +0x8EA1F0EB 0x64BE +0x8EA1F0EC 0x6574 +0x8EA1F0ED 0x66C6 +0x8EA1F0EE 0x66C9 +0x8EA1F0EF 0x66B9 +0x8EA1F0F0 0x66C4 +0x8EA1F0F1 0x66C7 +0x8EA1F0F2 0x66B8 +0x8EA1F0F3 0x6A3D +0x8EA1F0F4 0x6A38 +0x8EA1F0F5 0x6A3A +0x8EA1F0F6 0x6A59 +0x8EA1F0F7 0x6A6B +0x8EA1F0F8 0x6A58 +0x8EA1F0F9 0x6A39 +0x8EA1F0FA 0x6A44 +0x8EA1F0FB 0x6A62 +0x8EA1F0FC 0x6A61 +0x8EA1F0FD 0x6A4B +0x8EA1F0FE 0x6A47 +0x8EA1F1A1 0x6A35 +0x8EA1F1A2 0x6A5F +0x8EA1F1A3 0x6A48 +0x8EA1F1A4 0x6B59 +0x8EA1F1A5 0x6B77 +0x8EA1F1A6 0x6C05 +0x8EA1F1A7 0x6FC2 +0x8EA1F1A8 0x6FB1 +0x8EA1F1A9 0x6FA1 +0x8EA1F1AA 0x6FC3 +0x8EA1F1AB 0x6FA4 +0x8EA1F1AC 0x6FC1 +0x8EA1F1AD 0x6FA7 +0x8EA1F1AE 0x6FB3 +0x8EA1F1AF 0x6FC0 +0x8EA1F1B0 0x6FB9 +0x8EA1F1B1 0x6FB6 +0x8EA1F1B2 0x6FA6 +0x8EA1F1B3 0x6FA0 +0x8EA1F1B4 0x6FB4 +0x8EA1F1B5 0x71BE +0x8EA1F1B6 0x71C9 +0x8EA1F1B7 0x71D0 +0x8EA1F1B8 0x71D2 +0x8EA1F1B9 0x71C8 +0x8EA1F1BA 0x71D5 +0x8EA1F1BB 0x71B9 +0x8EA1F1BC 0x71CE +0x8EA1F1BD 0x71D9 +0x8EA1F1BE 0x71DC +0x8EA1F1BF 0x71C3 +0x8EA1F1C0 0x71C4 +0x8EA1F1C1 0x7368 +0x8EA1F1C2 0x749C +0x8EA1F1C3 0x74A3 +0x8EA1F1C4 0x7498 +0x8EA1F1C5 0x749F +0x8EA1F1C6 0x749E +0x8EA1F1C7 0x74E2 +0x8EA1F1C8 0x750C +0x8EA1F1C9 0x750D +0x8EA1F1CA 0x7634 +0x8EA1F1CB 0x7638 +0x8EA1F1CC 0x763A +0x8EA1F1CD 0x76E7 +0x8EA1F1CE 0x76E5 +0x8EA1F1CF 0x77A0 +0x8EA1F1D0 0x779E +0x8EA1F1D1 0x779F +0x8EA1F1D2 0x77A5 +0x8EA1F1D3 0x78E8 +0x8EA1F1D4 0x78DA +0x8EA1F1D5 0x78EC +0x8EA1F1D6 0x78E7 +0x8EA1F1D7 0x79A6 +0x8EA1F1D8 0x7A4D +0x8EA1F1D9 0x7A4E +0x8EA1F1DA 0x7A46 +0x8EA1F1DB 0x7A4C +0x8EA1F1DC 0x7A4B +0x8EA1F1DD 0x7ABA +0x8EA1F1DE 0x7BD9 +0x8EA1F1DF 0x7C11 +0x8EA1F1E0 0x7BC9 +0x8EA1F1E1 0x7BE4 +0x8EA1F1E2 0x7BDB +0x8EA1F1E3 0x7BE1 +0x8EA1F1E4 0x7BE9 +0x8EA1F1E5 0x7BE6 +0x8EA1F1E6 0x7CD5 +0x8EA1F1E7 0x7CD6 +0x8EA1F1E8 0x7E0A +0x8EA1F1E9 0x7E11 +0x8EA1F1EA 0x7E08 +0x8EA1F1EB 0x7E1B +0x8EA1F1EC 0x7E23 +0x8EA1F1ED 0x7E1E +0x8EA1F1EE 0x7E1D +0x8EA1F1EF 0x7E09 +0x8EA1F1F0 0x7E10 +0x8EA1F1F1 0x7F79 +0x8EA1F1F2 0x7FB2 +0x8EA1F1F3 0x7FF0 +0x8EA1F1F4 0x7FF1 +0x8EA1F1F5 0x7FEE +0x8EA1F1F6 0x8028 +0x8EA1F1F7 0x81B3 +0x8EA1F1F8 0x81A9 +0x8EA1F1F9 0x81A8 +0x8EA1F1FA 0x81FB +0x8EA1F1FB 0x8208 +0x8EA1F1FC 0x8258 +0x8EA1F1FD 0x8259 +0x8EA1F1FE 0x854A +0x8EA1F2A1 0x8559 +0x8EA1F2A2 0x8548 +0x8EA1F2A3 0x8568 +0x8EA1F2A4 0x8569 +0x8EA1F2A5 0x8543 +0x8EA1F2A6 0x8549 +0x8EA1F2A7 0x856D +0x8EA1F2A8 0x856A +0x8EA1F2A9 0x855E +0x8EA1F2AA 0x8783 +0x8EA1F2AB 0x879F +0x8EA1F2AC 0x879E +0x8EA1F2AD 0x87A2 +0x8EA1F2AE 0x878D +0x8EA1F2AF 0x8861 +0x8EA1F2B0 0x892A +0x8EA1F2B1 0x8932 +0x8EA1F2B2 0x8925 +0x8EA1F2B3 0x892B +0x8EA1F2B4 0x8921 +0x8EA1F2B5 0x89AA +0x8EA1F2B6 0x89A6 +0x8EA1F2B7 0x8AE6 +0x8EA1F2B8 0x8AFA +0x8EA1F2B9 0x8AEB +0x8EA1F2BA 0x8AF1 +0x8EA1F2BB 0x8B00 +0x8EA1F2BC 0x8ADC +0x8EA1F2BD 0x8AE7 +0x8EA1F2BE 0x8AEE +0x8EA1F2BF 0x8AFE +0x8EA1F2C0 0x8B01 +0x8EA1F2C1 0x8B02 +0x8EA1F2C2 0x8AF7 +0x8EA1F2C3 0x8AED +0x8EA1F2C4 0x8AF3 +0x8EA1F2C5 0x8AF6 +0x8EA1F2C6 0x8AFC +0x8EA1F2C7 0x8C6B +0x8EA1F2C8 0x8C6D +0x8EA1F2C9 0x8C93 +0x8EA1F2CA 0x8CF4 +0x8EA1F2CB 0x8E44 +0x8EA1F2CC 0x8E31 +0x8EA1F2CD 0x8E34 +0x8EA1F2CE 0x8E42 +0x8EA1F2CF 0x8E39 +0x8EA1F2D0 0x8E35 +0x8EA1F2D1 0x8F3B +0x8EA1F2D2 0x8F2F +0x8EA1F2D3 0x8F38 +0x8EA1F2D4 0x8F33 +0x8EA1F2D5 0x8FA8 +0x8EA1F2D6 0x8FA6 +0x8EA1F2D7 0x9075 +0x8EA1F2D8 0x9074 +0x8EA1F2D9 0x9078 +0x8EA1F2DA 0x9072 +0x8EA1F2DB 0x907C +0x8EA1F2DC 0x907A +0x8EA1F2DD 0x9134 +0x8EA1F2DE 0x9192 +0x8EA1F2DF 0x9320 +0x8EA1F2E0 0x9336 +0x8EA1F2E1 0x92F8 +0x8EA1F2E2 0x9333 +0x8EA1F2E3 0x932F +0x8EA1F2E4 0x9322 +0x8EA1F2E5 0x92FC +0x8EA1F2E6 0x932B +0x8EA1F2E7 0x9304 +0x8EA1F2E8 0x931A +0x8EA1F2E9 0x9310 +0x8EA1F2EA 0x9326 +0x8EA1F2EB 0x9321 +0x8EA1F2EC 0x9315 +0x8EA1F2ED 0x932E +0x8EA1F2EE 0x9319 +0x8EA1F2EF 0x95BB +0x8EA1F2F0 0x96A7 +0x8EA1F2F1 0x96A8 +0x8EA1F2F2 0x96AA +0x8EA1F2F3 0x96D5 +0x8EA1F2F4 0x970E +0x8EA1F2F5 0x9711 +0x8EA1F2F6 0x9716 +0x8EA1F2F7 0x970D +0x8EA1F2F8 0x9713 +0x8EA1F2F9 0x970F +0x8EA1F2FA 0x975B +0x8EA1F2FB 0x975C +0x8EA1F2FC 0x9766 +0x8EA1F2FD 0x9798 +0x8EA1F2FE 0x9830 +0x8EA1F3A1 0x9838 +0x8EA1F3A2 0x983B +0x8EA1F3A3 0x9837 +0x8EA1F3A4 0x982D +0x8EA1F3A5 0x9839 +0x8EA1F3A6 0x9824 +0x8EA1F3A7 0x9910 +0x8EA1F3A8 0x9928 +0x8EA1F3A9 0x991E +0x8EA1F3AA 0x991B +0x8EA1F3AB 0x9921 +0x8EA1F3AC 0x991A +0x8EA1F3AD 0x99ED +0x8EA1F3AE 0x99E2 +0x8EA1F3AF 0x99F1 +0x8EA1F3B0 0x9AB8 +0x8EA1F3B1 0x9ABC +0x8EA1F3B2 0x9AFB +0x8EA1F3B3 0x9AED +0x8EA1F3B4 0x9B28 +0x8EA1F3B5 0x9B91 +0x8EA1F3B6 0x9D15 +0x8EA1F3B7 0x9D23 +0x8EA1F3B8 0x9D26 +0x8EA1F3B9 0x9D28 +0x8EA1F3BA 0x9D12 +0x8EA1F3BB 0x9D1B +0x8EA1F3BC 0x9ED8 +0x8EA1F3BD 0x9ED4 +0x8EA1F3BE 0x9F8D +0x8EA1F3BF 0x9F9C +0x8EA1F3C0 0x512A +0x8EA1F3C1 0x511F +0x8EA1F3C2 0x5121 +0x8EA1F3C3 0x5132 +0x8EA1F3C4 0x52F5 +0x8EA1F3C5 0x568E +0x8EA1F3C6 0x5680 +0x8EA1F3C7 0x5690 +0x8EA1F3C8 0x5685 +0x8EA1F3C9 0x5687 +0x8EA1F3CA 0x568F +0x8EA1F3CB 0x58D5 +0x8EA1F3CC 0x58D3 +0x8EA1F3CD 0x58D1 +0x8EA1F3CE 0x58CE +0x8EA1F3CF 0x5B30 +0x8EA1F3D0 0x5B2A +0x8EA1F3D1 0x5B24 +0x8EA1F3D2 0x5B7A +0x8EA1F3D3 0x5C37 +0x8EA1F3D4 0x5C68 +0x8EA1F3D5 0x5DBC +0x8EA1F3D6 0x5DBA +0x8EA1F3D7 0x5DBD +0x8EA1F3D8 0x5DB8 +0x8EA1F3D9 0x5E6B +0x8EA1F3DA 0x5F4C +0x8EA1F3DB 0x5FBD +0x8EA1F3DC 0x61C9 +0x8EA1F3DD 0x61C2 +0x8EA1F3DE 0x61C7 +0x8EA1F3DF 0x61E6 +0x8EA1F3E0 0x61CB +0x8EA1F3E1 0x6232 +0x8EA1F3E2 0x6234 +0x8EA1F3E3 0x64CE +0x8EA1F3E4 0x64CA +0x8EA1F3E5 0x64D8 +0x8EA1F3E6 0x64E0 +0x8EA1F3E7 0x64F0 +0x8EA1F3E8 0x64E6 +0x8EA1F3E9 0x64EC +0x8EA1F3EA 0x64F1 +0x8EA1F3EB 0x64E2 +0x8EA1F3EC 0x64ED +0x8EA1F3ED 0x6582 +0x8EA1F3EE 0x6583 +0x8EA1F3EF 0x66D9 +0x8EA1F3F0 0x66D6 +0x8EA1F3F1 0x6A80 +0x8EA1F3F2 0x6A94 +0x8EA1F3F3 0x6A84 +0x8EA1F3F4 0x6AA2 +0x8EA1F3F5 0x6A9C +0x8EA1F3F6 0x6ADB +0x8EA1F3F7 0x6AA3 +0x8EA1F3F8 0x6A7E +0x8EA1F3F9 0x6A97 +0x8EA1F3FA 0x6A90 +0x8EA1F3FB 0x6AA0 +0x8EA1F3FC 0x6B5C +0x8EA1F3FD 0x6BAE +0x8EA1F3FE 0x6BDA +0x8EA1F4A1 0x6C08 +0x8EA1F4A2 0x6FD8 +0x8EA1F4A3 0x6FF1 +0x8EA1F4A4 0x6FDF +0x8EA1F4A5 0x6FE0 +0x8EA1F4A6 0x6FDB +0x8EA1F4A7 0x6FE4 +0x8EA1F4A8 0x6FEB +0x8EA1F4A9 0x6FEF +0x8EA1F4AA 0x6F80 +0x8EA1F4AB 0x6FEC +0x8EA1F4AC 0x6FE1 +0x8EA1F4AD 0x6FE9 +0x8EA1F4AE 0x6FD5 +0x8EA1F4AF 0x6FEE +0x8EA1F4B0 0x6FF0 +0x8EA1F4B1 0x71E7 +0x8EA1F4B2 0x71DF +0x8EA1F4B3 0x71EE +0x8EA1F4B4 0x71E6 +0x8EA1F4B5 0x71E5 +0x8EA1F4B6 0x71ED +0x8EA1F4B7 0x71EC +0x8EA1F4B8 0x71F4 +0x8EA1F4B9 0x71E0 +0x8EA1F4BA 0x7235 +0x8EA1F4BB 0x7246 +0x8EA1F4BC 0x7370 +0x8EA1F4BD 0x7372 +0x8EA1F4BE 0x74A9 +0x8EA1F4BF 0x74B0 +0x8EA1F4C0 0x74A6 +0x8EA1F4C1 0x74A8 +0x8EA1F4C2 0x7646 +0x8EA1F4C3 0x7642 +0x8EA1F4C4 0x764C +0x8EA1F4C5 0x76EA +0x8EA1F4C6 0x77B3 +0x8EA1F4C7 0x77AA +0x8EA1F4C8 0x77B0 +0x8EA1F4C9 0x77AC +0x8EA1F4CA 0x77A7 +0x8EA1F4CB 0x77AD +0x8EA1F4CC 0x77EF +0x8EA1F4CD 0x78F7 +0x8EA1F4CE 0x78FA +0x8EA1F4CF 0x78F4 +0x8EA1F4D0 0x78EF +0x8EA1F4D1 0x7901 +0x8EA1F4D2 0x79A7 +0x8EA1F4D3 0x79AA +0x8EA1F4D4 0x7A57 +0x8EA1F4D5 0x7ABF +0x8EA1F4D6 0x7C07 +0x8EA1F4D7 0x7C0D +0x8EA1F4D8 0x7BFE +0x8EA1F4D9 0x7BF7 +0x8EA1F4DA 0x7C0C +0x8EA1F4DB 0x7BE0 +0x8EA1F4DC 0x7CE0 +0x8EA1F4DD 0x7CDC +0x8EA1F4DE 0x7CDE +0x8EA1F4DF 0x7CE2 +0x8EA1F4E0 0x7CDF +0x8EA1F4E1 0x7CD9 +0x8EA1F4E2 0x7CDD +0x8EA1F4E3 0x7E2E +0x8EA1F4E4 0x7E3E +0x8EA1F4E5 0x7E46 +0x8EA1F4E6 0x7E37 +0x8EA1F4E7 0x7E32 +0x8EA1F4E8 0x7E43 +0x8EA1F4E9 0x7E2B +0x8EA1F4EA 0x7E3D +0x8EA1F4EB 0x7E31 +0x8EA1F4EC 0x7E45 +0x8EA1F4ED 0x7E41 +0x8EA1F4EE 0x7E34 +0x8EA1F4EF 0x7E39 +0x8EA1F4F0 0x7E48 +0x8EA1F4F1 0x7E35 +0x8EA1F4F2 0x7E3F +0x8EA1F4F3 0x7E2F +0x8EA1F4F4 0x7F44 +0x8EA1F4F5 0x7FF3 +0x8EA1F4F6 0x7FFC +0x8EA1F4F7 0x8071 +0x8EA1F4F8 0x8072 +0x8EA1F4F9 0x8070 +0x8EA1F4FA 0x806F +0x8EA1F4FB 0x8073 +0x8EA1F4FC 0x81C6 +0x8EA1F4FD 0x81C3 +0x8EA1F4FE 0x81BA +0x8EA1F5A1 0x81C2 +0x8EA1F5A2 0x81C0 +0x8EA1F5A3 0x81BF +0x8EA1F5A4 0x81BD +0x8EA1F5A5 0x81C9 +0x8EA1F5A6 0x81BE +0x8EA1F5A7 0x81E8 +0x8EA1F5A8 0x8209 +0x8EA1F5A9 0x8271 +0x8EA1F5AA 0x85AA +0x8EA1F5AB 0x8584 +0x8EA1F5AC 0x857E +0x8EA1F5AD 0x859C +0x8EA1F5AE 0x8591 +0x8EA1F5AF 0x8594 +0x8EA1F5B0 0x85AF +0x8EA1F5B1 0x859B +0x8EA1F5B2 0x8587 +0x8EA1F5B3 0x85A8 +0x8EA1F5B4 0x858A +0x8EA1F5B5 0x85A6 +0x8EA1F5B6 0x8667 +0x8EA1F5B7 0x87C0 +0x8EA1F5B8 0x87D1 +0x8EA1F5B9 0x87B3 +0x8EA1F5BA 0x87D2 +0x8EA1F5BB 0x87C6 +0x8EA1F5BC 0x87AB +0x8EA1F5BD 0x87BB +0x8EA1F5BE 0x87BA +0x8EA1F5BF 0x87C8 +0x8EA1F5C0 0x87CB +0x8EA1F5C1 0x893B +0x8EA1F5C2 0x8936 +0x8EA1F5C3 0x8944 +0x8EA1F5C4 0x8938 +0x8EA1F5C5 0x893D +0x8EA1F5C6 0x89AC +0x8EA1F5C7 0x8B0E +0x8EA1F5C8 0x8B17 +0x8EA1F5C9 0x8B19 +0x8EA1F5CA 0x8B1B +0x8EA1F5CB 0x8B0A +0x8EA1F5CC 0x8B20 +0x8EA1F5CD 0x8B1D +0x8EA1F5CE 0x8B04 +0x8EA1F5CF 0x8B10 +0x8EA1F5D0 0x8C41 +0x8EA1F5D1 0x8C3F +0x8EA1F5D2 0x8C73 +0x8EA1F5D3 0x8CFA +0x8EA1F5D4 0x8CFD +0x8EA1F5D5 0x8CFC +0x8EA1F5D6 0x8CF8 +0x8EA1F5D7 0x8CFB +0x8EA1F5D8 0x8DA8 +0x8EA1F5D9 0x8E49 +0x8EA1F5DA 0x8E4B +0x8EA1F5DB 0x8E48 +0x8EA1F5DC 0x8E4A +0x8EA1F5DD 0x8F44 +0x8EA1F5DE 0x8F3E +0x8EA1F5DF 0x8F42 +0x8EA1F5E0 0x8F45 +0x8EA1F5E1 0x8F3F +0x8EA1F5E2 0x907F +0x8EA1F5E3 0x907D +0x8EA1F5E4 0x9084 +0x8EA1F5E5 0x9081 +0x8EA1F5E6 0x9082 +0x8EA1F5E7 0x9080 +0x8EA1F5E8 0x9139 +0x8EA1F5E9 0x91A3 +0x8EA1F5EA 0x919E +0x8EA1F5EB 0x919C +0x8EA1F5EC 0x934D +0x8EA1F5ED 0x9382 +0x8EA1F5EE 0x9328 +0x8EA1F5EF 0x9375 +0x8EA1F5F0 0x934A +0x8EA1F5F1 0x9365 +0x8EA1F5F2 0x934B +0x8EA1F5F3 0x9318 +0x8EA1F5F4 0x937E +0x8EA1F5F5 0x936C +0x8EA1F5F6 0x935B +0x8EA1F5F7 0x9370 +0x8EA1F5F8 0x935A +0x8EA1F5F9 0x9354 +0x8EA1F5FA 0x95CA +0x8EA1F5FB 0x95CB +0x8EA1F5FC 0x95CC +0x8EA1F5FD 0x95C8 +0x8EA1F5FE 0x95C6 +0x8EA1F6A1 0x96B1 +0x8EA1F6A2 0x96B8 +0x8EA1F6A3 0x96D6 +0x8EA1F6A4 0x971C +0x8EA1F6A5 0x971E +0x8EA1F6A6 0x97A0 +0x8EA1F6A7 0x97D3 +0x8EA1F6A8 0x9846 +0x8EA1F6A9 0x98B6 +0x8EA1F6AA 0x9935 +0x8EA1F6AB 0x9A01 +0x8EA1F6AC 0x99FF +0x8EA1F6AD 0x9BAE +0x8EA1F6AE 0x9BAB +0x8EA1F6AF 0x9BAA +0x8EA1F6B0 0x9BAD +0x8EA1F6B1 0x9D3B +0x8EA1F6B2 0x9D3F +0x8EA1F6B3 0x9E8B +0x8EA1F6B4 0x9ECF +0x8EA1F6B5 0x9EDE +0x8EA1F6B6 0x9EDC +0x8EA1F6B7 0x9EDD +0x8EA1F6B8 0x9EDB +0x8EA1F6B9 0x9F3E +0x8EA1F6BA 0x9F4B +0x8EA1F6BB 0x53E2 +0x8EA1F6BC 0x5695 +0x8EA1F6BD 0x56AE +0x8EA1F6BE 0x58D9 +0x8EA1F6BF 0x58D8 +0x8EA1F6C0 0x5B38 +0x8EA1F6C1 0x5F5E +0x8EA1F6C2 0x61E3 +0x8EA1F6C3 0x6233 +0x8EA1F6C4 0x64F4 +0x8EA1F6C5 0x64F2 +0x8EA1F6C6 0x64FE +0x8EA1F6C7 0x6506 +0x8EA1F6C8 0x64FA +0x8EA1F6C9 0x64FB +0x8EA1F6CA 0x64F7 +0x8EA1F6CB 0x65B7 +0x8EA1F6CC 0x66DC +0x8EA1F6CD 0x6726 +0x8EA1F6CE 0x6AB3 +0x8EA1F6CF 0x6AAC +0x8EA1F6D0 0x6AC3 +0x8EA1F6D1 0x6ABB +0x8EA1F6D2 0x6AB8 +0x8EA1F6D3 0x6AC2 +0x8EA1F6D4 0x6AAE +0x8EA1F6D5 0x6AAF +0x8EA1F6D6 0x6B5F +0x8EA1F6D7 0x6B78 +0x8EA1F6D8 0x6BAF +0x8EA1F6D9 0x7009 +0x8EA1F6DA 0x700B +0x8EA1F6DB 0x6FFE +0x8EA1F6DC 0x7006 +0x8EA1F6DD 0x6FFA +0x8EA1F6DE 0x7011 +0x8EA1F6DF 0x700F +0x8EA1F6E0 0x71FB +0x8EA1F6E1 0x71FC +0x8EA1F6E2 0x71FE +0x8EA1F6E3 0x71F8 +0x8EA1F6E4 0x7377 +0x8EA1F6E5 0x7375 +0x8EA1F6E6 0x74A7 +0x8EA1F6E7 0x74BF +0x8EA1F6E8 0x7515 +0x8EA1F6E9 0x7656 +0x8EA1F6EA 0x7658 +0x8EA1F6EB 0x7652 +0x8EA1F6EC 0x77BD +0x8EA1F6ED 0x77BF +0x8EA1F6EE 0x77BB +0x8EA1F6EF 0x77BC +0x8EA1F6F0 0x790E +0x8EA1F6F1 0x79AE +0x8EA1F6F2 0x7A61 +0x8EA1F6F3 0x7A62 +0x8EA1F6F4 0x7A60 +0x8EA1F6F5 0x7AC4 +0x8EA1F6F6 0x7AC5 +0x8EA1F6F7 0x7C2B +0x8EA1F6F8 0x7C27 +0x8EA1F6F9 0x7C2A +0x8EA1F6FA 0x7C1E +0x8EA1F6FB 0x7C23 +0x8EA1F6FC 0x7C21 +0x8EA1F6FD 0x7CE7 +0x8EA1F6FE 0x7E54 +0x8EA1F7A1 0x7E55 +0x8EA1F7A2 0x7E5E +0x8EA1F7A3 0x7E5A +0x8EA1F7A4 0x7E61 +0x8EA1F7A5 0x7E52 +0x8EA1F7A6 0x7E59 +0x8EA1F7A7 0x7F48 +0x8EA1F7A8 0x7FF9 +0x8EA1F7A9 0x7FFB +0x8EA1F7AA 0x8077 +0x8EA1F7AB 0x8076 +0x8EA1F7AC 0x81CD +0x8EA1F7AD 0x81CF +0x8EA1F7AE 0x820A +0x8EA1F7AF 0x85CF +0x8EA1F7B0 0x85A9 +0x8EA1F7B1 0x85CD +0x8EA1F7B2 0x85D0 +0x8EA1F7B3 0x85C9 +0x8EA1F7B4 0x85B0 +0x8EA1F7B5 0x85BA +0x8EA1F7B6 0x85B9 +0x8EA1F7B7 0x87EF +0x8EA1F7B8 0x87EC +0x8EA1F7B9 0x87F2 +0x8EA1F7BA 0x87E0 +0x8EA1F7BB 0x8986 +0x8EA1F7BC 0x89B2 +0x8EA1F7BD 0x89F4 +0x8EA1F7BE 0x8B28 +0x8EA1F7BF 0x8B39 +0x8EA1F7C0 0x8B2C +0x8EA1F7C1 0x8B2B +0x8EA1F7C2 0x8C50 +0x8EA1F7C3 0x8D05 +0x8EA1F7C4 0x8E59 +0x8EA1F7C5 0x8E63 +0x8EA1F7C6 0x8E66 +0x8EA1F7C7 0x8E64 +0x8EA1F7C8 0x8E5F +0x8EA1F7C9 0x8E55 +0x8EA1F7CA 0x8EC0 +0x8EA1F7CB 0x8F49 +0x8EA1F7CC 0x8F4D +0x8EA1F7CD 0x9087 +0x8EA1F7CE 0x9083 +0x8EA1F7CF 0x9088 +0x8EA1F7D0 0x91AB +0x8EA1F7D1 0x91AC +0x8EA1F7D2 0x91D0 +0x8EA1F7D3 0x9394 +0x8EA1F7D4 0x938A +0x8EA1F7D5 0x9396 +0x8EA1F7D6 0x93A2 +0x8EA1F7D7 0x93B3 +0x8EA1F7D8 0x93AE +0x8EA1F7D9 0x93AC +0x8EA1F7DA 0x93B0 +0x8EA1F7DB 0x9398 +0x8EA1F7DC 0x939A +0x8EA1F7DD 0x9397 +0x8EA1F7DE 0x95D4 +0x8EA1F7DF 0x95D6 +0x8EA1F7E0 0x95D0 +0x8EA1F7E1 0x95D5 +0x8EA1F7E2 0x96E2 +0x8EA1F7E3 0x96DC +0x8EA1F7E4 0x96D9 +0x8EA1F7E5 0x96DB +0x8EA1F7E6 0x96DE +0x8EA1F7E7 0x9724 +0x8EA1F7E8 0x97A3 +0x8EA1F7E9 0x97A6 +0x8EA1F7EA 0x97AD +0x8EA1F7EB 0x97F9 +0x8EA1F7EC 0x984D +0x8EA1F7ED 0x984F +0x8EA1F7EE 0x984C +0x8EA1F7EF 0x984E +0x8EA1F7F0 0x9853 +0x8EA1F7F1 0x98BA +0x8EA1F7F2 0x993E +0x8EA1F7F3 0x993F +0x8EA1F7F4 0x993D +0x8EA1F7F5 0x992E +0x8EA1F7F6 0x99A5 +0x8EA1F7F7 0x9A0E +0x8EA1F7F8 0x9AC1 +0x8EA1F7F9 0x9B03 +0x8EA1F7FA 0x9B06 +0x8EA1F7FB 0x9B4F +0x8EA1F7FC 0x9B4E +0x8EA1F7FD 0x9B4D +0x8EA1F7FE 0x9BCA +0x8EA1F8A1 0x9BC9 +0x8EA1F8A2 0x9BFD +0x8EA1F8A3 0x9BC8 +0x8EA1F8A4 0x9BC0 +0x8EA1F8A5 0x9D51 +0x8EA1F8A6 0x9D5D +0x8EA1F8A7 0x9D60 +0x8EA1F8A8 0x9EE0 +0x8EA1F8A9 0x9F15 +0x8EA1F8AA 0x9F2C +0x8EA1F8AB 0x5133 +0x8EA1F8AC 0x56A5 +0x8EA1F8AD 0x56A8 +0x8EA1F8AE 0x58DE +0x8EA1F8AF 0x58DF +0x8EA1F8B0 0x58E2 +0x8EA1F8B1 0x5BF5 +0x8EA1F8B2 0x9F90 +0x8EA1F8B3 0x5EEC +0x8EA1F8B4 0x61F2 +0x8EA1F8B5 0x61F7 +0x8EA1F8B6 0x61F6 +0x8EA1F8B7 0x61F5 +0x8EA1F8B8 0x6500 +0x8EA1F8B9 0x650F +0x8EA1F8BA 0x66E0 +0x8EA1F8BB 0x66DD +0x8EA1F8BC 0x6AE5 +0x8EA1F8BD 0x6ADD +0x8EA1F8BE 0x6ADA +0x8EA1F8BF 0x6AD3 +0x8EA1F8C0 0x701B +0x8EA1F8C1 0x701F +0x8EA1F8C2 0x7028 +0x8EA1F8C3 0x701A +0x8EA1F8C4 0x701D +0x8EA1F8C5 0x7015 +0x8EA1F8C6 0x7018 +0x8EA1F8C7 0x7206 +0x8EA1F8C8 0x720D +0x8EA1F8C9 0x7258 +0x8EA1F8CA 0x72A2 +0x8EA1F8CB 0x7378 +0x8EA1F8CC 0x737A +0x8EA1F8CD 0x74BD +0x8EA1F8CE 0x74CA +0x8EA1F8CF 0x74E3 +0x8EA1F8D0 0x7587 +0x8EA1F8D1 0x7586 +0x8EA1F8D2 0x765F +0x8EA1F8D3 0x7661 +0x8EA1F8D4 0x77C7 +0x8EA1F8D5 0x7919 +0x8EA1F8D6 0x79B1 +0x8EA1F8D7 0x7A6B +0x8EA1F8D8 0x7A69 +0x8EA1F8D9 0x7C3E +0x8EA1F8DA 0x7C3F +0x8EA1F8DB 0x7C38 +0x8EA1F8DC 0x7C3D +0x8EA1F8DD 0x7C37 +0x8EA1F8DE 0x7C40 +0x8EA1F8DF 0x7E6B +0x8EA1F8E0 0x7E6D +0x8EA1F8E1 0x7E79 +0x8EA1F8E2 0x7E69 +0x8EA1F8E3 0x7E6A +0x8EA1F8E4 0x7E73 +0x8EA1F8E5 0x7F85 +0x8EA1F8E6 0x7FB6 +0x8EA1F8E7 0x7FB9 +0x8EA1F8E8 0x7FB8 +0x8EA1F8E9 0x81D8 +0x8EA1F8EA 0x85E9 +0x8EA1F8EB 0x85DD +0x8EA1F8EC 0x85EA +0x8EA1F8ED 0x85D5 +0x8EA1F8EE 0x85E4 +0x8EA1F8EF 0x85E5 +0x8EA1F8F0 0x85F7 +0x8EA1F8F1 0x87FB +0x8EA1F8F2 0x8805 +0x8EA1F8F3 0x880D +0x8EA1F8F4 0x87F9 +0x8EA1F8F5 0x87FE +0x8EA1F8F6 0x8960 +0x8EA1F8F7 0x895F +0x8EA1F8F8 0x8956 +0x8EA1F8F9 0x895E +0x8EA1F8FA 0x8B41 +0x8EA1F8FB 0x8B5C +0x8EA1F8FC 0x8B58 +0x8EA1F8FD 0x8B49 +0x8EA1F8FE 0x8B5A +0x8EA1F9A1 0x8B4E +0x8EA1F9A2 0x8B4F +0x8EA1F9A3 0x8B46 +0x8EA1F9A4 0x8B59 +0x8EA1F9A5 0x8D08 +0x8EA1F9A6 0x8D0A +0x8EA1F9A7 0x8E7C +0x8EA1F9A8 0x8E72 +0x8EA1F9A9 0x8E87 +0x8EA1F9AA 0x8E76 +0x8EA1F9AB 0x8E6C +0x8EA1F9AC 0x8E7A +0x8EA1F9AD 0x8E74 +0x8EA1F9AE 0x8F54 +0x8EA1F9AF 0x8F4E +0x8EA1F9B0 0x8FAD +0x8EA1F9B1 0x908A +0x8EA1F9B2 0x908B +0x8EA1F9B3 0x91B1 +0x8EA1F9B4 0x91AE +0x8EA1F9B5 0x93E1 +0x8EA1F9B6 0x93D1 +0x8EA1F9B7 0x93DF +0x8EA1F9B8 0x93C3 +0x8EA1F9B9 0x93C8 +0x8EA1F9BA 0x93DC +0x8EA1F9BB 0x93DD +0x8EA1F9BC 0x93D6 +0x8EA1F9BD 0x93E2 +0x8EA1F9BE 0x93CD +0x8EA1F9BF 0x93D8 +0x8EA1F9C0 0x93E4 +0x8EA1F9C1 0x93D7 +0x8EA1F9C2 0x93E8 +0x8EA1F9C3 0x95DC +0x8EA1F9C4 0x96B4 +0x8EA1F9C5 0x96E3 +0x8EA1F9C6 0x972A +0x8EA1F9C7 0x9727 +0x8EA1F9C8 0x9761 +0x8EA1F9C9 0x97DC +0x8EA1F9CA 0x97FB +0x8EA1F9CB 0x985E +0x8EA1F9CC 0x9858 +0x8EA1F9CD 0x985B +0x8EA1F9CE 0x98BC +0x8EA1F9CF 0x9945 +0x8EA1F9D0 0x9949 +0x8EA1F9D1 0x9A16 +0x8EA1F9D2 0x9A19 +0x8EA1F9D3 0x9B0D +0x8EA1F9D4 0x9BE8 +0x8EA1F9D5 0x9BE7 +0x8EA1F9D6 0x9BD6 +0x8EA1F9D7 0x9BDB +0x8EA1F9D8 0x9D89 +0x8EA1F9D9 0x9D61 +0x8EA1F9DA 0x9D72 +0x8EA1F9DB 0x9D6A +0x8EA1F9DC 0x9D6C +0x8EA1F9DD 0x9E92 +0x8EA1F9DE 0x9E97 +0x8EA1F9DF 0x9E93 +0x8EA1F9E0 0x9EB4 +0x8EA1F9E1 0x52F8 +0x8EA1F9E2 0x56B7 +0x8EA1F9E3 0x56B6 +0x8EA1F9E4 0x56B4 +0x8EA1F9E5 0x56BC +0x8EA1F9E6 0x58E4 +0x8EA1F9E7 0x5B40 +0x8EA1F9E8 0x5B43 +0x8EA1F9E9 0x5B7D +0x8EA1F9EA 0x5BF6 +0x8EA1F9EB 0x5DC9 +0x8EA1F9EC 0x61F8 +0x8EA1F9ED 0x61FA +0x8EA1F9EE 0x6518 +0x8EA1F9EF 0x6514 +0x8EA1F9F0 0x6519 +0x8EA1F9F1 0x66E6 +0x8EA1F9F2 0x6727 +0x8EA1F9F3 0x6AEC +0x8EA1F9F4 0x703E +0x8EA1F9F5 0x7030 +0x8EA1F9F6 0x7032 +0x8EA1F9F7 0x7210 +0x8EA1F9F8 0x737B +0x8EA1F9F9 0x74CF +0x8EA1F9FA 0x7662 +0x8EA1F9FB 0x7665 +0x8EA1F9FC 0x7926 +0x8EA1F9FD 0x792A +0x8EA1F9FE 0x792C +0x8EA1FAA1 0x792B +0x8EA1FAA2 0x7AC7 +0x8EA1FAA3 0x7AF6 +0x8EA1FAA4 0x7C4C +0x8EA1FAA5 0x7C43 +0x8EA1FAA6 0x7C4D +0x8EA1FAA7 0x7CEF +0x8EA1FAA8 0x7CF0 +0x8EA1FAA9 0x8FAE +0x8EA1FAAA 0x7E7D +0x8EA1FAAB 0x7E7C +0x8EA1FAAC 0x7E82 +0x8EA1FAAD 0x7F4C +0x8EA1FAAE 0x8000 +0x8EA1FAAF 0x81DA +0x8EA1FAB0 0x8266 +0x8EA1FAB1 0x85FB +0x8EA1FAB2 0x85F9 +0x8EA1FAB3 0x8611 +0x8EA1FAB4 0x85FA +0x8EA1FAB5 0x8606 +0x8EA1FAB6 0x860B +0x8EA1FAB7 0x8607 +0x8EA1FAB8 0x860A +0x8EA1FAB9 0x8814 +0x8EA1FABA 0x8815 +0x8EA1FABB 0x8964 +0x8EA1FABC 0x89BA +0x8EA1FABD 0x89F8 +0x8EA1FABE 0x8B70 +0x8EA1FABF 0x8B6C +0x8EA1FAC0 0x8B66 +0x8EA1FAC1 0x8B6F +0x8EA1FAC2 0x8B5F +0x8EA1FAC3 0x8B6B +0x8EA1FAC4 0x8D0F +0x8EA1FAC5 0x8D0D +0x8EA1FAC6 0x8E89 +0x8EA1FAC7 0x8E81 +0x8EA1FAC8 0x8E85 +0x8EA1FAC9 0x8E82 +0x8EA1FACA 0x91B4 +0x8EA1FACB 0x91CB +0x8EA1FACC 0x9418 +0x8EA1FACD 0x9403 +0x8EA1FACE 0x93FD +0x8EA1FACF 0x95E1 +0x8EA1FAD0 0x9730 +0x8EA1FAD1 0x98C4 +0x8EA1FAD2 0x9952 +0x8EA1FAD3 0x9951 +0x8EA1FAD4 0x99A8 +0x8EA1FAD5 0x9A2B +0x8EA1FAD6 0x9A30 +0x8EA1FAD7 0x9A37 +0x8EA1FAD8 0x9A35 +0x8EA1FAD9 0x9C13 +0x8EA1FADA 0x9C0D +0x8EA1FADB 0x9E79 +0x8EA1FADC 0x9EB5 +0x8EA1FADD 0x9EE8 +0x8EA1FADE 0x9F2F +0x8EA1FADF 0x9F5F +0x8EA1FAE0 0x9F63 +0x8EA1FAE1 0x9F61 +0x8EA1FAE2 0x5137 +0x8EA1FAE3 0x5138 +0x8EA1FAE4 0x56C1 +0x8EA1FAE5 0x56C0 +0x8EA1FAE6 0x56C2 +0x8EA1FAE7 0x5914 +0x8EA1FAE8 0x5C6C +0x8EA1FAE9 0x5DCD +0x8EA1FAEA 0x61FC +0x8EA1FAEB 0x61FE +0x8EA1FAEC 0x651D +0x8EA1FAED 0x651C +0x8EA1FAEE 0x6595 +0x8EA1FAEF 0x66E9 +0x8EA1FAF0 0x6AFB +0x8EA1FAF1 0x6B04 +0x8EA1FAF2 0x6AFA +0x8EA1FAF3 0x6BB2 +0x8EA1FAF4 0x704C +0x8EA1FAF5 0x721B +0x8EA1FAF6 0x72A7 +0x8EA1FAF7 0x74D6 +0x8EA1FAF8 0x74D4 +0x8EA1FAF9 0x7669 +0x8EA1FAFA 0x77D3 +0x8EA1FAFB 0x7C50 +0x8EA1FAFC 0x7E8F +0x8EA1FAFD 0x7E8C +0x8EA1FAFE 0x7FBC +0x8EA1FBA1 0x8617 +0x8EA1FBA2 0x862D +0x8EA1FBA3 0x861A +0x8EA1FBA4 0x8823 +0x8EA1FBA5 0x8822 +0x8EA1FBA6 0x8821 +0x8EA1FBA7 0x881F +0x8EA1FBA8 0x896A +0x8EA1FBA9 0x896C +0x8EA1FBAA 0x89BD +0x8EA1FBAB 0x8B74 +0x8EA1FBAC 0x8B77 +0x8EA1FBAD 0x8B7D +0x8EA1FBAE 0x8D13 +0x8EA1FBAF 0x8E8A +0x8EA1FBB0 0x8E8D +0x8EA1FBB1 0x8E8B +0x8EA1FBB2 0x8F5F +0x8EA1FBB3 0x8FAF +0x8EA1FBB4 0x91BA +0x8EA1FBB5 0x942E +0x8EA1FBB6 0x9433 +0x8EA1FBB7 0x9435 +0x8EA1FBB8 0x943A +0x8EA1FBB9 0x9438 +0x8EA1FBBA 0x9432 +0x8EA1FBBB 0x942B +0x8EA1FBBC 0x95E2 +0x8EA1FBBD 0x9738 +0x8EA1FBBE 0x9739 +0x8EA1FBBF 0x9732 +0x8EA1FBC0 0x97FF +0x8EA1FBC1 0x9867 +0x8EA1FBC2 0x9865 +0x8EA1FBC3 0x9957 +0x8EA1FBC4 0x9A45 +0x8EA1FBC5 0x9A43 +0x8EA1FBC6 0x9A40 +0x8EA1FBC7 0x9A3E +0x8EA1FBC8 0x9ACF +0x8EA1FBC9 0x9B54 +0x8EA1FBCA 0x9B51 +0x8EA1FBCB 0x9C2D +0x8EA1FBCC 0x9C25 +0x8EA1FBCD 0x9DAF +0x8EA1FBCE 0x9DB4 +0x8EA1FBCF 0x9DC2 +0x8EA1FBD0 0x9DB8 +0x8EA1FBD1 0x9E9D +0x8EA1FBD2 0x9EEF +0x8EA1FBD3 0x9F19 +0x8EA1FBD4 0x9F5C +0x8EA1FBD5 0x9F66 +0x8EA1FBD6 0x9F67 +0x8EA1FBD7 0x513C +0x8EA1FBD8 0x513B +0x8EA1FBD9 0x56C8 +0x8EA1FBDA 0x56CA +0x8EA1FBDB 0x56C9 +0x8EA1FBDC 0x5B7F +0x8EA1FBDD 0x5DD4 +0x8EA1FBDE 0x5DD2 +0x8EA1FBDF 0x5F4E +0x8EA1FBE0 0x61FF +0x8EA1FBE1 0x6524 +0x8EA1FBE2 0x6B0A +0x8EA1FBE3 0x6B61 +0x8EA1FBE4 0x7051 +0x8EA1FBE5 0x7058 +0x8EA1FBE6 0x7380 +0x8EA1FBE7 0x74E4 +0x8EA1FBE8 0x758A +0x8EA1FBE9 0x766E +0x8EA1FBEA 0x766C +0x8EA1FBEB 0x79B3 +0x8EA1FBEC 0x7C60 +0x8EA1FBED 0x7C5F +0x8EA1FBEE 0x807E +0x8EA1FBEF 0x807D +0x8EA1FBF0 0x81DF +0x8EA1FBF1 0x8972 +0x8EA1FBF2 0x896F +0x8EA1FBF3 0x89FC +0x8EA1FBF4 0x8B80 +0x8EA1FBF5 0x8D16 +0x8EA1FBF6 0x8D17 +0x8EA1FBF7 0x8E91 +0x8EA1FBF8 0x8E93 +0x8EA1FBF9 0x8F61 +0x8EA1FBFA 0x9148 +0x8EA1FBFB 0x9444 +0x8EA1FBFC 0x9451 +0x8EA1FBFD 0x9452 +0x8EA1FBFE 0x973D +0x8EA1FCA1 0x973E +0x8EA1FCA2 0x97C3 +0x8EA1FCA3 0x97C1 +0x8EA1FCA4 0x986B +0x8EA1FCA5 0x9955 +0x8EA1FCA6 0x9A55 +0x8EA1FCA7 0x9A4D +0x8EA1FCA8 0x9AD2 +0x8EA1FCA9 0x9B1A +0x8EA1FCAA 0x9C49 +0x8EA1FCAB 0x9C31 +0x8EA1FCAC 0x9C3E +0x8EA1FCAD 0x9C3B +0x8EA1FCAE 0x9DD3 +0x8EA1FCAF 0x9DD7 +0x8EA1FCB0 0x9F34 +0x8EA1FCB1 0x9F6C +0x8EA1FCB2 0x9F6A +0x8EA1FCB3 0x9F94 +0x8EA1FCB4 0x56CC +0x8EA1FCB5 0x5DD6 +0x8EA1FCB6 0x6200 +0x8EA1FCB7 0x6523 +0x8EA1FCB8 0x652B +0x8EA1FCB9 0x652A +0x8EA1FCBA 0x66EC +0x8EA1FCBB 0x6B10 +0x8EA1FCBC 0x74DA +0x8EA1FCBD 0x7ACA +0x8EA1FCBE 0x7C64 +0x8EA1FCBF 0x7C63 +0x8EA1FCC0 0x7C65 +0x8EA1FCC1 0x7E93 +0x8EA1FCC2 0x7E96 +0x8EA1FCC3 0x7E94 +0x8EA1FCC4 0x81E2 +0x8EA1FCC5 0x8638 +0x8EA1FCC6 0x863F +0x8EA1FCC7 0x8831 +0x8EA1FCC8 0x8B8A +0x8EA1FCC9 0x9090 +0x8EA1FCCA 0x908F +0x8EA1FCCB 0x9463 +0x8EA1FCCC 0x9460 +0x8EA1FCCD 0x9464 +0x8EA1FCCE 0x9768 +0x8EA1FCCF 0x986F +0x8EA1FCD0 0x995C +0x8EA1FCD1 0x9A5A +0x8EA1FCD2 0x9A5B +0x8EA1FCD3 0x9A57 +0x8EA1FCD4 0x9AD3 +0x8EA1FCD5 0x9AD4 +0x8EA1FCD6 0x9AD1 +0x8EA1FCD7 0x9C54 +0x8EA1FCD8 0x9C57 +0x8EA1FCD9 0x9C56 +0x8EA1FCDA 0x9DE5 +0x8EA1FCDB 0x9E9F +0x8EA1FCDC 0x9EF4 +0x8EA1FCDD 0x56D1 +0x8EA1FCDE 0x58E9 +0x8EA1FCDF 0x652C +0x8EA1FCE0 0x705E +0x8EA1FCE1 0x7671 +0x8EA1FCE2 0x7672 +0x8EA1FCE3 0x77D7 +0x8EA1FCE4 0x7F50 +0x8EA1FCE5 0x7F88 +0x8EA1FCE6 0x8836 +0x8EA1FCE7 0x8839 +0x8EA1FCE8 0x8862 +0x8EA1FCE9 0x8B93 +0x8EA1FCEA 0x8B92 +0x8EA1FCEB 0x8B96 +0x8EA1FCEC 0x8277 +0x8EA1FCED 0x8D1B +0x8EA1FCEE 0x91C0 +0x8EA1FCEF 0x946A +0x8EA1FCF0 0x9742 +0x8EA1FCF1 0x9748 +0x8EA1FCF2 0x9744 +0x8EA1FCF3 0x97C6 +0x8EA1FCF4 0x9870 +0x8EA1FCF5 0x9A5F +0x8EA1FCF6 0x9B22 +0x8EA1FCF7 0x9B58 +0x8EA1FCF8 0x9C5F +0x8EA1FCF9 0x9DF9 +0x8EA1FCFA 0x9DFA +0x8EA1FCFB 0x9E7C +0x8EA1FCFC 0x9E7D +0x8EA1FCFD 0x9F07 +0x8EA1FCFE 0x9F77 +0x8EA1FDA1 0x9F72 +0x8EA1FDA2 0x5EF3 +0x8EA1FDA3 0x6B16 +0x8EA1FDA4 0x7063 +0x8EA1FDA5 0x7C6C +0x8EA1FDA6 0x7C6E +0x8EA1FDA7 0x883B +0x8EA1FDA8 0x89C0 +0x8EA1FDA9 0x8EA1 +0x8EA1FDAA 0x91C1 +0x8EA1FDAB 0x9472 +0x8EA1FDAC 0x9470 +0x8EA1FDAD 0x9871 +0x8EA1FDAE 0x995E +0x8EA1FDAF 0x9AD6 +0x8EA1FDB0 0x9B23 +0x8EA1FDB1 0x9ECC +0x8EA1FDB2 0x7064 +0x8EA1FDB3 0x77DA +0x8EA1FDB4 0x8B9A +0x8EA1FDB5 0x9477 +0x8EA1FDB6 0x97C9 +0x8EA1FDB7 0x9A62 +0x8EA1FDB8 0x9A65 +0x8EA1FDB9 0x7E9C +0x8EA1FDBA 0x8B9C +0x8EA1FDBB 0x8EAA +0x8EA1FDBC 0x91C5 +0x8EA1FDBD 0x947D +0x8EA1FDBE 0x947E +0x8EA1FDBF 0x947C +0x8EA1FDC0 0x9C77 +0x8EA1FDC1 0x9C78 +0x8EA1FDC2 0x9EF7 +0x8EA1FDC3 0x8C54 +0x8EA1FDC4 0x947F +0x8EA1FDC5 0x9E1A +0x8EA1FDC6 0x7228 +0x8EA1FDC7 0x9A6A +0x8EA1FDC8 0x9B31 +0x8EA1FDC9 0x9E1B +0x8EA1FDCA 0x9E1E +0x8EA1FDCB 0x7C72 +0x8EA2A1A1 0x4E42 +0x8EA2A1A2 0x4E5C +0x8EA2A1A3 0x51F5 +0x8EA2A1A4 0x531A +0x8EA2A1A5 0x5382 +0x8EA2A1A6 0x4E07 +0x8EA2A1A7 0x4E0C +0x8EA2A1A8 0x4E47 +0x8EA2A1A9 0x4E8D +0x8EA2A1AA 0x56D7 +0x8EA2A1AB 0x5C6E +0x8EA2A1AC 0x5F73 +0x8EA2A1AD 0x4E0F +0x8EA2A1AE 0x5187 +0x8EA2A1AF 0x4E0E +0x8EA2A1B0 0x4E2E +0x8EA2A1B1 0x4E93 +0x8EA2A1B2 0x4EC2 +0x8EA2A1B3 0x4EC9 +0x8EA2A1B4 0x4EC8 +0x8EA2A1B5 0x5198 +0x8EA2A1B6 0x52FC +0x8EA2A1B7 0x536C +0x8EA2A1B8 0x53B9 +0x8EA2A1B9 0x5720 +0x8EA2A1BA 0x5903 +0x8EA2A1BB 0x592C +0x8EA2A1BC 0x5C10 +0x8EA2A1BD 0x5DFF +0x8EA2A1BE 0x65E1 +0x8EA2A1BF 0x6BB3 +0x8EA2A1C0 0x6BCC +0x8EA2A1C1 0x6C14 +0x8EA2A1C2 0x723F +0x8EA2A1C3 0x4E31 +0x8EA2A1C4 0x4E3C +0x8EA2A1C5 0x4EE8 +0x8EA2A1C6 0x4EDC +0x8EA2A1C7 0x4EE9 +0x8EA2A1C8 0x4EE1 +0x8EA2A1C9 0x4EDD +0x8EA2A1CA 0x4EDA +0x8EA2A1CB 0x520C +0x8EA2A1CC 0x5209 +0x8EA2A1CD 0x531C +0x8EA2A1CE 0x534C +0x8EA2A1CF 0x5722 +0x8EA2A1D0 0x5723 +0x8EA2A1D1 0x5917 +0x8EA2A1D2 0x592F +0x8EA2A1D3 0x5B81 +0x8EA2A1D4 0x5B84 +0x8EA2A1D5 0x5C12 +0x8EA2A1D6 0x5C3B +0x8EA2A1D7 0x5C74 +0x8EA2A1D8 0x5C73 +0x8EA2A1D9 0x5E04 +0x8EA2A1DA 0x5E80 +0x8EA2A1DB 0x5E82 +0x8EA2A1DC 0x5FC9 +0x8EA2A1DD 0x6209 +0x8EA2A1DE 0x6250 +0x8EA2A1DF 0x6C15 +0x8EA2A1E0 0x6C36 +0x8EA2A1E1 0x6C43 +0x8EA2A1E2 0x6C3F +0x8EA2A1E3 0x6C3B +0x8EA2A1E4 0x72AE +0x8EA2A1E5 0x72B0 +0x8EA2A1E6 0x738A +0x8EA2A1E7 0x79B8 +0x8EA2A1E8 0x808A +0x8EA2A1E9 0x961E +0x8EA2A1EA 0x4F0E +0x8EA2A1EB 0x4F18 +0x8EA2A1EC 0x4F2C +0x8EA2A1ED 0x4EF5 +0x8EA2A1EE 0x4F14 +0x8EA2A1EF 0x4EF1 +0x8EA2A1F0 0x4F00 +0x8EA2A1F1 0x4EF7 +0x8EA2A1F2 0x4F08 +0x8EA2A1F3 0x4F1D +0x8EA2A1F4 0x4F02 +0x8EA2A1F5 0x4F05 +0x8EA2A1F6 0x4F22 +0x8EA2A1F7 0x4F13 +0x8EA2A1F8 0x4F04 +0x8EA2A1F9 0x4EF4 +0x8EA2A1FA 0x4F12 +0x8EA2A1FB 0x51B1 +0x8EA2A1FC 0x5213 +0x8EA2A1FD 0x5210 +0x8EA2A1FE 0x52A6 +0x8EA2A2A1 0x5322 +0x8EA2A2A2 0x531F +0x8EA2A2A3 0x534D +0x8EA2A2A4 0x538A +0x8EA2A2A5 0x5407 +0x8EA2A2A6 0x56E1 +0x8EA2A2A7 0x56DF +0x8EA2A2A8 0x572E +0x8EA2A2A9 0x572A +0x8EA2A2AA 0x5734 +0x8EA2A2AB 0x593C +0x8EA2A2AC 0x5980 +0x8EA2A2AD 0x597C +0x8EA2A2AE 0x5985 +0x8EA2A2AF 0x597B +0x8EA2A2B0 0x597E +0x8EA2A2B1 0x5977 +0x8EA2A2B2 0x597F +0x8EA2A2B3 0x5B56 +0x8EA2A2B4 0x5C15 +0x8EA2A2B5 0x5C25 +0x8EA2A2B6 0x5C7C +0x8EA2A2B7 0x5C7A +0x8EA2A2B8 0x5C7B +0x8EA2A2B9 0x5C7E +0x8EA2A2BA 0x5DDF +0x8EA2A2BB 0x5E75 +0x8EA2A2BC 0x5E84 +0x8EA2A2BD 0x5F02 +0x8EA2A2BE 0x5F1A +0x8EA2A2BF 0x5F74 +0x8EA2A2C0 0x5FD5 +0x8EA2A2C1 0x5FD4 +0x8EA2A2C2 0x5FCF +0x8EA2A2C3 0x625C +0x8EA2A2C4 0x625E +0x8EA2A2C5 0x6264 +0x8EA2A2C6 0x6261 +0x8EA2A2C7 0x6266 +0x8EA2A2C8 0x6262 +0x8EA2A2C9 0x6259 +0x8EA2A2CA 0x6260 +0x8EA2A2CB 0x625A +0x8EA2A2CC 0x6265 +0x8EA2A2CD 0x6537 +0x8EA2A2CE 0x65EF +0x8EA2A2CF 0x65EE +0x8EA2A2D0 0x673E +0x8EA2A2D1 0x6739 +0x8EA2A2D2 0x6738 +0x8EA2A2D3 0x673B +0x8EA2A2D4 0x673A +0x8EA2A2D5 0x673F +0x8EA2A2D6 0x673C +0x8EA2A2D7 0x6733 +0x8EA2A2D8 0x6C18 +0x8EA2A2D9 0x6C46 +0x8EA2A2DA 0x6C52 +0x8EA2A2DB 0x6C5C +0x8EA2A2DC 0x6C4F +0x8EA2A2DD 0x6C4A +0x8EA2A2DE 0x6C54 +0x8EA2A2DF 0x6C4B +0x8EA2A2E0 0x6C4C +0x8EA2A2E1 0x7071 +0x8EA2A2E2 0x725E +0x8EA2A2E3 0x72B4 +0x8EA2A2E4 0x72B5 +0x8EA2A2E5 0x738E +0x8EA2A2E6 0x752A +0x8EA2A2E7 0x767F +0x8EA2A2E8 0x7A75 +0x8EA2A2E9 0x7F51 +0x8EA2A2EA 0x8278 +0x8EA2A2EB 0x827C +0x8EA2A2EC 0x8280 +0x8EA2A2ED 0x827D +0x8EA2A2EE 0x827F +0x8EA2A2EF 0x864D +0x8EA2A2F0 0x897E +0x8EA2A2F1 0x9099 +0x8EA2A2F2 0x9097 +0x8EA2A2F3 0x9098 +0x8EA2A2F4 0x909B +0x8EA2A2F5 0x9094 +0x8EA2A2F6 0x9622 +0x8EA2A2F7 0x9624 +0x8EA2A2F8 0x9620 +0x8EA2A2F9 0x9623 +0x8EA2A2FA 0x4F56 +0x8EA2A2FB 0x4F3B +0x8EA2A2FC 0x4F62 +0x8EA2A2FD 0x4F49 +0x8EA2A2FE 0x4F53 +0x8EA2A3A1 0x4F64 +0x8EA2A3A2 0x4F3E +0x8EA2A3A3 0x4F67 +0x8EA2A3A4 0x4F52 +0x8EA2A3A5 0x4F5F +0x8EA2A3A6 0x4F41 +0x8EA2A3A7 0x4F58 +0x8EA2A3A8 0x4F2D +0x8EA2A3A9 0x4F33 +0x8EA2A3AA 0x4F3F +0x8EA2A3AB 0x4F61 +0x8EA2A3AC 0x518F +0x8EA2A3AD 0x51B9 +0x8EA2A3AE 0x521C +0x8EA2A3AF 0x521E +0x8EA2A3B0 0x5221 +0x8EA2A3B1 0x52AD +0x8EA2A3B2 0x52AE +0x8EA2A3B3 0x5309 +0x8EA2A3B4 0x5363 +0x8EA2A3B5 0x5372 +0x8EA2A3B6 0x538E +0x8EA2A3B7 0x538F +0x8EA2A3B8 0x5430 +0x8EA2A3B9 0x5437 +0x8EA2A3BA 0x542A +0x8EA2A3BB 0x5454 +0x8EA2A3BC 0x5445 +0x8EA2A3BD 0x5419 +0x8EA2A3BE 0x541C +0x8EA2A3BF 0x5425 +0x8EA2A3C0 0x5418 +0x8EA2A3C1 0x543D +0x8EA2A3C2 0x544F +0x8EA2A3C3 0x5441 +0x8EA2A3C4 0x5428 +0x8EA2A3C5 0x5424 +0x8EA2A3C6 0x5447 +0x8EA2A3C7 0x56EE +0x8EA2A3C8 0x56E7 +0x8EA2A3C9 0x56E5 +0x8EA2A3CA 0x5741 +0x8EA2A3CB 0x5745 +0x8EA2A3CC 0x574C +0x8EA2A3CD 0x5749 +0x8EA2A3CE 0x574B +0x8EA2A3CF 0x5752 +0x8EA2A3D0 0x5906 +0x8EA2A3D1 0x5940 +0x8EA2A3D2 0x59A6 +0x8EA2A3D3 0x5998 +0x8EA2A3D4 0x59A0 +0x8EA2A3D5 0x5997 +0x8EA2A3D6 0x598E +0x8EA2A3D7 0x59A2 +0x8EA2A3D8 0x5990 +0x8EA2A3D9 0x598F +0x8EA2A3DA 0x59A7 +0x8EA2A3DB 0x59A1 +0x8EA2A3DC 0x5B8E +0x8EA2A3DD 0x5B92 +0x8EA2A3DE 0x5C28 +0x8EA2A3DF 0x5C2A +0x8EA2A3E0 0x5C8D +0x8EA2A3E1 0x5C8F +0x8EA2A3E2 0x5C88 +0x8EA2A3E3 0x5C8B +0x8EA2A3E4 0x5C89 +0x8EA2A3E5 0x5C92 +0x8EA2A3E6 0x5C8A +0x8EA2A3E7 0x5C86 +0x8EA2A3E8 0x5C93 +0x8EA2A3E9 0x5C95 +0x8EA2A3EA 0x5DE0 +0x8EA2A3EB 0x5E0A +0x8EA2A3EC 0x5E0E +0x8EA2A3ED 0x5E8B +0x8EA2A3EE 0x5E89 +0x8EA2A3EF 0x5E8C +0x8EA2A3F0 0x5E88 +0x8EA2A3F1 0x5E8D +0x8EA2A3F2 0x5F05 +0x8EA2A3F3 0x5F1D +0x8EA2A3F4 0x5F78 +0x8EA2A3F5 0x5F76 +0x8EA2A3F6 0x5FD2 +0x8EA2A3F7 0x5FD1 +0x8EA2A3F8 0x5FD0 +0x8EA2A3F9 0x5FED +0x8EA2A3FA 0x5FE8 +0x8EA2A3FB 0x5FEE +0x8EA2A3FC 0x5FF3 +0x8EA2A3FD 0x5FE1 +0x8EA2A3FE 0x5FE4 +0x8EA2A4A1 0x5FE3 +0x8EA2A4A2 0x5FFA +0x8EA2A4A3 0x5FEF +0x8EA2A4A4 0x5FF7 +0x8EA2A4A5 0x5FFB +0x8EA2A4A6 0x6000 +0x8EA2A4A7 0x5FF4 +0x8EA2A4A8 0x623A +0x8EA2A4A9 0x6283 +0x8EA2A4AA 0x628C +0x8EA2A4AB 0x628E +0x8EA2A4AC 0x628F +0x8EA2A4AD 0x6294 +0x8EA2A4AE 0x6287 +0x8EA2A4AF 0x6271 +0x8EA2A4B0 0x627B +0x8EA2A4B1 0x627A +0x8EA2A4B2 0x6270 +0x8EA2A4B3 0x6281 +0x8EA2A4B4 0x6288 +0x8EA2A4B5 0x6277 +0x8EA2A4B6 0x627D +0x8EA2A4B7 0x6272 +0x8EA2A4B8 0x6274 +0x8EA2A4B9 0x65F0 +0x8EA2A4BA 0x65F4 +0x8EA2A4BB 0x65F3 +0x8EA2A4BC 0x65F2 +0x8EA2A4BD 0x65F5 +0x8EA2A4BE 0x6745 +0x8EA2A4BF 0x6747 +0x8EA2A4C0 0x6759 +0x8EA2A4C1 0x6755 +0x8EA2A4C2 0x674C +0x8EA2A4C3 0x6748 +0x8EA2A4C4 0x675D +0x8EA2A4C5 0x674D +0x8EA2A4C6 0x675A +0x8EA2A4C7 0x674B +0x8EA2A4C8 0x6BD0 +0x8EA2A4C9 0x6C19 +0x8EA2A4CA 0x6C1A +0x8EA2A4CB 0x6C78 +0x8EA2A4CC 0x6C67 +0x8EA2A4CD 0x6C6B +0x8EA2A4CE 0x6C84 +0x8EA2A4CF 0x6C8B +0x8EA2A4D0 0x6C8F +0x8EA2A4D1 0x6C71 +0x8EA2A4D2 0x6C6F +0x8EA2A4D3 0x6C69 +0x8EA2A4D4 0x6C9A +0x8EA2A4D5 0x6C6D +0x8EA2A4D6 0x6C87 +0x8EA2A4D7 0x6C95 +0x8EA2A4D8 0x6C9C +0x8EA2A4D9 0x6C66 +0x8EA2A4DA 0x6C73 +0x8EA2A4DB 0x6C65 +0x8EA2A4DC 0x6C7B +0x8EA2A4DD 0x6C8E +0x8EA2A4DE 0x7074 +0x8EA2A4DF 0x707A +0x8EA2A4E0 0x7263 +0x8EA2A4E1 0x72BF +0x8EA2A4E2 0x72BD +0x8EA2A4E3 0x72C3 +0x8EA2A4E4 0x72C6 +0x8EA2A4E5 0x72C1 +0x8EA2A4E6 0x72BA +0x8EA2A4E7 0x72C5 +0x8EA2A4E8 0x7395 +0x8EA2A4E9 0x7397 +0x8EA2A4EA 0x7393 +0x8EA2A4EB 0x7394 +0x8EA2A4EC 0x7392 +0x8EA2A4ED 0x753A +0x8EA2A4EE 0x7539 +0x8EA2A4EF 0x7594 +0x8EA2A4F0 0x7595 +0x8EA2A4F1 0x7681 +0x8EA2A4F2 0x793D +0x8EA2A4F3 0x8034 +0x8EA2A4F4 0x8095 +0x8EA2A4F5 0x8099 +0x8EA2A4F6 0x8090 +0x8EA2A4F7 0x8092 +0x8EA2A4F8 0x809C +0x8EA2A4F9 0x8290 +0x8EA2A4FA 0x828F +0x8EA2A4FB 0x8285 +0x8EA2A4FC 0x828E +0x8EA2A4FD 0x8291 +0x8EA2A4FE 0x8293 +0x8EA2A5A1 0x828A +0x8EA2A5A2 0x8283 +0x8EA2A5A3 0x8284 +0x8EA2A5A4 0x8C78 +0x8EA2A5A5 0x8FC9 +0x8EA2A5A6 0x8FBF +0x8EA2A5A7 0x909F +0x8EA2A5A8 0x90A1 +0x8EA2A5A9 0x90A5 +0x8EA2A5AA 0x909E +0x8EA2A5AB 0x90A7 +0x8EA2A5AC 0x90A0 +0x8EA2A5AD 0x9630 +0x8EA2A5AE 0x9628 +0x8EA2A5AF 0x962F +0x8EA2A5B0 0x962D +0x8EA2A5B1 0x4E33 +0x8EA2A5B2 0x4F98 +0x8EA2A5B3 0x4F7C +0x8EA2A5B4 0x4F85 +0x8EA2A5B5 0x4F7D +0x8EA2A5B6 0x4F80 +0x8EA2A5B7 0x4F87 +0x8EA2A5B8 0x4F76 +0x8EA2A5B9 0x4F74 +0x8EA2A5BA 0x4F89 +0x8EA2A5BB 0x4F84 +0x8EA2A5BC 0x4F77 +0x8EA2A5BD 0x4F4C +0x8EA2A5BE 0x4F97 +0x8EA2A5BF 0x4F6A +0x8EA2A5C0 0x4F9A +0x8EA2A5C1 0x4F79 +0x8EA2A5C2 0x4F81 +0x8EA2A5C3 0x4F78 +0x8EA2A5C4 0x4F90 +0x8EA2A5C5 0x4F9C +0x8EA2A5C6 0x4F94 +0x8EA2A5C7 0x4F9E +0x8EA2A5C8 0x4F92 +0x8EA2A5C9 0x4F82 +0x8EA2A5CA 0x4F95 +0x8EA2A5CB 0x4F6B +0x8EA2A5CC 0x4F6E +0x8EA2A5CD 0x519E +0x8EA2A5CE 0x51BC +0x8EA2A5CF 0x51BE +0x8EA2A5D0 0x5235 +0x8EA2A5D1 0x5232 +0x8EA2A5D2 0x5233 +0x8EA2A5D3 0x5246 +0x8EA2A5D4 0x5231 +0x8EA2A5D5 0x52BC +0x8EA2A5D6 0x530A +0x8EA2A5D7 0x530B +0x8EA2A5D8 0x533C +0x8EA2A5D9 0x5392 +0x8EA2A5DA 0x5394 +0x8EA2A5DB 0x5487 +0x8EA2A5DC 0x547F +0x8EA2A5DD 0x5481 +0x8EA2A5DE 0x5491 +0x8EA2A5DF 0x5482 +0x8EA2A5E0 0x5488 +0x8EA2A5E1 0x546B +0x8EA2A5E2 0x547A +0x8EA2A5E3 0x547E +0x8EA2A5E4 0x5465 +0x8EA2A5E5 0x546C +0x8EA2A5E6 0x5474 +0x8EA2A5E7 0x5466 +0x8EA2A5E8 0x548D +0x8EA2A5E9 0x546F +0x8EA2A5EA 0x5461 +0x8EA2A5EB 0x5460 +0x8EA2A5EC 0x5498 +0x8EA2A5ED 0x5463 +0x8EA2A5EE 0x5467 +0x8EA2A5EF 0x5464 +0x8EA2A5F0 0x56F7 +0x8EA2A5F1 0x56F9 +0x8EA2A5F2 0x576F +0x8EA2A5F3 0x5772 +0x8EA2A5F4 0x576D +0x8EA2A5F5 0x576B +0x8EA2A5F6 0x5771 +0x8EA2A5F7 0x5770 +0x8EA2A5F8 0x5776 +0x8EA2A5F9 0x5780 +0x8EA2A5FA 0x5775 +0x8EA2A5FB 0x577B +0x8EA2A5FC 0x5773 +0x8EA2A5FD 0x5774 +0x8EA2A5FE 0x5762 +0x8EA2A6A1 0x5768 +0x8EA2A6A2 0x577D +0x8EA2A6A3 0x590C +0x8EA2A6A4 0x5945 +0x8EA2A6A5 0x59B5 +0x8EA2A6A6 0x59BA +0x8EA2A6A7 0x59CF +0x8EA2A6A8 0x59CE +0x8EA2A6A9 0x59B2 +0x8EA2A6AA 0x59CC +0x8EA2A6AB 0x59C1 +0x8EA2A6AC 0x59B6 +0x8EA2A6AD 0x59BC +0x8EA2A6AE 0x59C3 +0x8EA2A6AF 0x59D6 +0x8EA2A6B0 0x59B1 +0x8EA2A6B1 0x59BD +0x8EA2A6B2 0x59C0 +0x8EA2A6B3 0x59C8 +0x8EA2A6B4 0x59B4 +0x8EA2A6B5 0x59C7 +0x8EA2A6B6 0x5B62 +0x8EA2A6B7 0x5B65 +0x8EA2A6B8 0x5B93 +0x8EA2A6B9 0x5B95 +0x8EA2A6BA 0x5C44 +0x8EA2A6BB 0x5C47 +0x8EA2A6BC 0x5CAE +0x8EA2A6BD 0x5CA4 +0x8EA2A6BE 0x5CA0 +0x8EA2A6BF 0x5CB5 +0x8EA2A6C0 0x5CAF +0x8EA2A6C1 0x5CA8 +0x8EA2A6C2 0x5CAC +0x8EA2A6C3 0x5C9F +0x8EA2A6C4 0x5CA3 +0x8EA2A6C5 0x5CAD +0x8EA2A6C6 0x5CA2 +0x8EA2A6C7 0x5CAA +0x8EA2A6C8 0x5CA7 +0x8EA2A6C9 0x5C9D +0x8EA2A6CA 0x5CA5 +0x8EA2A6CB 0x5CB6 +0x8EA2A6CC 0x5CB0 +0x8EA2A6CD 0x5CA6 +0x8EA2A6CE 0x5E17 +0x8EA2A6CF 0x5E14 +0x8EA2A6D0 0x5E19 +0x8EA2A6D1 0x5F28 +0x8EA2A6D2 0x5F22 +0x8EA2A6D3 0x5F23 +0x8EA2A6D4 0x5F24 +0x8EA2A6D5 0x5F54 +0x8EA2A6D6 0x5F82 +0x8EA2A6D7 0x5F7E +0x8EA2A6D8 0x5F7D +0x8EA2A6D9 0x5FDE +0x8EA2A6DA 0x5FE5 +0x8EA2A6DB 0x602D +0x8EA2A6DC 0x6026 +0x8EA2A6DD 0x6019 +0x8EA2A6DE 0x6032 +0x8EA2A6DF 0x600B +0x8EA2A6E0 0x6034 +0x8EA2A6E1 0x600A +0x8EA2A6E2 0x6017 +0x8EA2A6E3 0x6033 +0x8EA2A6E4 0x601A +0x8EA2A6E5 0x601E +0x8EA2A6E6 0x602C +0x8EA2A6E7 0x6022 +0x8EA2A6E8 0x600D +0x8EA2A6E9 0x6010 +0x8EA2A6EA 0x602E +0x8EA2A6EB 0x6013 +0x8EA2A6EC 0x6011 +0x8EA2A6ED 0x600C +0x8EA2A6EE 0x6009 +0x8EA2A6EF 0x601C +0x8EA2A6F0 0x6214 +0x8EA2A6F1 0x623D +0x8EA2A6F2 0x62AD +0x8EA2A6F3 0x62B4 +0x8EA2A6F4 0x62D1 +0x8EA2A6F5 0x62BE +0x8EA2A6F6 0x62AA +0x8EA2A6F7 0x62B6 +0x8EA2A6F8 0x62CA +0x8EA2A6F9 0x62AE +0x8EA2A6FA 0x62B3 +0x8EA2A6FB 0x62AF +0x8EA2A6FC 0x62BB +0x8EA2A6FD 0x62A9 +0x8EA2A6FE 0x62B0 +0x8EA2A7A1 0x62B8 +0x8EA2A7A2 0x653D +0x8EA2A7A3 0x65A8 +0x8EA2A7A4 0x65BB +0x8EA2A7A5 0x6609 +0x8EA2A7A6 0x65FC +0x8EA2A7A7 0x6604 +0x8EA2A7A8 0x6612 +0x8EA2A7A9 0x6608 +0x8EA2A7AA 0x65FB +0x8EA2A7AB 0x6603 +0x8EA2A7AC 0x660B +0x8EA2A7AD 0x660D +0x8EA2A7AE 0x6605 +0x8EA2A7AF 0x65FD +0x8EA2A7B0 0x6611 +0x8EA2A7B1 0x6610 +0x8EA2A7B2 0x66F6 +0x8EA2A7B3 0x670A +0x8EA2A7B4 0x6785 +0x8EA2A7B5 0x676C +0x8EA2A7B6 0x678E +0x8EA2A7B7 0x6792 +0x8EA2A7B8 0x6776 +0x8EA2A7B9 0x677B +0x8EA2A7BA 0x6798 +0x8EA2A7BB 0x6786 +0x8EA2A7BC 0x6784 +0x8EA2A7BD 0x6774 +0x8EA2A7BE 0x678D +0x8EA2A7BF 0x678C +0x8EA2A7C0 0x677A +0x8EA2A7C1 0x679F +0x8EA2A7C2 0x6791 +0x8EA2A7C3 0x6799 +0x8EA2A7C4 0x6783 +0x8EA2A7C5 0x677D +0x8EA2A7C6 0x6781 +0x8EA2A7C7 0x6778 +0x8EA2A7C8 0x6779 +0x8EA2A7C9 0x6794 +0x8EA2A7CA 0x6B25 +0x8EA2A7CB 0x6B80 +0x8EA2A7CC 0x6B7E +0x8EA2A7CD 0x6BDE +0x8EA2A7CE 0x6C1D +0x8EA2A7CF 0x6C93 +0x8EA2A7D0 0x6CEC +0x8EA2A7D1 0x6CEB +0x8EA2A7D2 0x6CEE +0x8EA2A7D3 0x6CD9 +0x8EA2A7D4 0x6CB6 +0x8EA2A7D5 0x6CD4 +0x8EA2A7D6 0x6CAD +0x8EA2A7D7 0x6CE7 +0x8EA2A7D8 0x6CB7 +0x8EA2A7D9 0x6CD0 +0x8EA2A7DA 0x6CC2 +0x8EA2A7DB 0x6CBA +0x8EA2A7DC 0x6CC3 +0x8EA2A7DD 0x6CC6 +0x8EA2A7DE 0x6CED +0x8EA2A7DF 0x6CF2 +0x8EA2A7E0 0x6CD2 +0x8EA2A7E1 0x6CDD +0x8EA2A7E2 0x6CB4 +0x8EA2A7E3 0x6C8A +0x8EA2A7E4 0x6C9D +0x8EA2A7E5 0x6C80 +0x8EA2A7E6 0x6CDE +0x8EA2A7E7 0x6CC0 +0x8EA2A7E8 0x6D30 +0x8EA2A7E9 0x6CCD +0x8EA2A7EA 0x6CC7 +0x8EA2A7EB 0x6CB0 +0x8EA2A7EC 0x6CF9 +0x8EA2A7ED 0x6CCF +0x8EA2A7EE 0x6CE9 +0x8EA2A7EF 0x6CD1 +0x8EA2A7F0 0x7094 +0x8EA2A7F1 0x7098 +0x8EA2A7F2 0x7085 +0x8EA2A7F3 0x7093 +0x8EA2A7F4 0x7086 +0x8EA2A7F5 0x7084 +0x8EA2A7F6 0x7091 +0x8EA2A7F7 0x7096 +0x8EA2A7F8 0x7082 +0x8EA2A7F9 0x709A +0x8EA2A7FA 0x7083 +0x8EA2A7FB 0x726A +0x8EA2A7FC 0x72D6 +0x8EA2A7FD 0x72CB +0x8EA2A7FE 0x72D8 +0x8EA2A8A1 0x72C9 +0x8EA2A8A2 0x72DC +0x8EA2A8A3 0x72D2 +0x8EA2A8A4 0x72D4 +0x8EA2A8A5 0x72DA +0x8EA2A8A6 0x72CC +0x8EA2A8A7 0x72D1 +0x8EA2A8A8 0x73A4 +0x8EA2A8A9 0x73A1 +0x8EA2A8AA 0x73AD +0x8EA2A8AB 0x73A6 +0x8EA2A8AC 0x73A2 +0x8EA2A8AD 0x73A0 +0x8EA2A8AE 0x73AC +0x8EA2A8AF 0x739D +0x8EA2A8B0 0x74DD +0x8EA2A8B1 0x74E8 +0x8EA2A8B2 0x753F +0x8EA2A8B3 0x7540 +0x8EA2A8B4 0x753E +0x8EA2A8B5 0x758C +0x8EA2A8B6 0x7598 +0x8EA2A8B7 0x76AF +0x8EA2A8B8 0x76F3 +0x8EA2A8B9 0x76F1 +0x8EA2A8BA 0x76F0 +0x8EA2A8BB 0x76F5 +0x8EA2A8BC 0x77F8 +0x8EA2A8BD 0x77FC +0x8EA2A8BE 0x77F9 +0x8EA2A8BF 0x77FB +0x8EA2A8C0 0x77FA +0x8EA2A8C1 0x77F7 +0x8EA2A8C2 0x7942 +0x8EA2A8C3 0x793F +0x8EA2A8C4 0x79C5 +0x8EA2A8C5 0x7A78 +0x8EA2A8C6 0x7A7B +0x8EA2A8C7 0x7AFB +0x8EA2A8C8 0x7C75 +0x8EA2A8C9 0x7CFD +0x8EA2A8CA 0x8035 +0x8EA2A8CB 0x808F +0x8EA2A8CC 0x80AE +0x8EA2A8CD 0x80A3 +0x8EA2A8CE 0x80B8 +0x8EA2A8CF 0x80B5 +0x8EA2A8D0 0x80AD +0x8EA2A8D1 0x8220 +0x8EA2A8D2 0x82A0 +0x8EA2A8D3 0x82C0 +0x8EA2A8D4 0x82AB +0x8EA2A8D5 0x829A +0x8EA2A8D6 0x8298 +0x8EA2A8D7 0x829B +0x8EA2A8D8 0x82B5 +0x8EA2A8D9 0x82A7 +0x8EA2A8DA 0x82AE +0x8EA2A8DB 0x82BC +0x8EA2A8DC 0x829E +0x8EA2A8DD 0x82BA +0x8EA2A8DE 0x82B4 +0x8EA2A8DF 0x82A8 +0x8EA2A8E0 0x82A1 +0x8EA2A8E1 0x82A9 +0x8EA2A8E2 0x82C2 +0x8EA2A8E3 0x82A4 +0x8EA2A8E4 0x82C3 +0x8EA2A8E5 0x82B6 +0x8EA2A8E6 0x82A2 +0x8EA2A8E7 0x8670 +0x8EA2A8E8 0x866F +0x8EA2A8E9 0x866D +0x8EA2A8EA 0x866E +0x8EA2A8EB 0x8C56 +0x8EA2A8EC 0x8FD2 +0x8EA2A8ED 0x8FCB +0x8EA2A8EE 0x8FD3 +0x8EA2A8EF 0x8FCD +0x8EA2A8F0 0x8FD6 +0x8EA2A8F1 0x8FD5 +0x8EA2A8F2 0x8FD7 +0x8EA2A8F3 0x90B2 +0x8EA2A8F4 0x90B4 +0x8EA2A8F5 0x90AF +0x8EA2A8F6 0x90B3 +0x8EA2A8F7 0x90B0 +0x8EA2A8F8 0x9639 +0x8EA2A8F9 0x963D +0x8EA2A8FA 0x963C +0x8EA2A8FB 0x963A +0x8EA2A8FC 0x9643 +0x8EA2A8FD 0x4FCD +0x8EA2A8FE 0x4FC5 +0x8EA2A9A1 0x4FD3 +0x8EA2A9A2 0x4FB2 +0x8EA2A9A3 0x4FC9 +0x8EA2A9A4 0x4FCB +0x8EA2A9A5 0x4FC1 +0x8EA2A9A6 0x4FD4 +0x8EA2A9A7 0x4FDC +0x8EA2A9A8 0x4FD9 +0x8EA2A9A9 0x4FBB +0x8EA2A9AA 0x4FB3 +0x8EA2A9AB 0x4FDB +0x8EA2A9AC 0x4FC7 +0x8EA2A9AD 0x4FD6 +0x8EA2A9AE 0x4FBA +0x8EA2A9AF 0x4FC0 +0x8EA2A9B0 0x4FB9 +0x8EA2A9B1 0x4FEC +0x8EA2A9B2 0x5244 +0x8EA2A9B3 0x5249 +0x8EA2A9B4 0x52C0 +0x8EA2A9B5 0x52C2 +0x8EA2A9B6 0x533D +0x8EA2A9B7 0x537C +0x8EA2A9B8 0x5397 +0x8EA2A9B9 0x5396 +0x8EA2A9BA 0x5399 +0x8EA2A9BB 0x5398 +0x8EA2A9BC 0x54BA +0x8EA2A9BD 0x54A1 +0x8EA2A9BE 0x54AD +0x8EA2A9BF 0x54A5 +0x8EA2A9C0 0x54CF +0x8EA2A9C1 0x54C3 +0x8EA2A9C2 0x830D +0x8EA2A9C3 0x54B7 +0x8EA2A9C4 0x54AE +0x8EA2A9C5 0x54D6 +0x8EA2A9C6 0x54B6 +0x8EA2A9C7 0x54C5 +0x8EA2A9C8 0x54C6 +0x8EA2A9C9 0x54A0 +0x8EA2A9CA 0x5470 +0x8EA2A9CB 0x54BC +0x8EA2A9CC 0x54A2 +0x8EA2A9CD 0x54BE +0x8EA2A9CE 0x5472 +0x8EA2A9CF 0x54DE +0x8EA2A9D0 0x54B0 +0x8EA2A9D1 0x57B5 +0x8EA2A9D2 0x579E +0x8EA2A9D3 0x579F +0x8EA2A9D4 0x57A4 +0x8EA2A9D5 0x578C +0x8EA2A9D6 0x5797 +0x8EA2A9D7 0x579D +0x8EA2A9D8 0x579B +0x8EA2A9D9 0x5794 +0x8EA2A9DA 0x5798 +0x8EA2A9DB 0x578F +0x8EA2A9DC 0x5799 +0x8EA2A9DD 0x57A5 +0x8EA2A9DE 0x579A +0x8EA2A9DF 0x5795 +0x8EA2A9E0 0x58F4 +0x8EA2A9E1 0x590D +0x8EA2A9E2 0x5953 +0x8EA2A9E3 0x59E1 +0x8EA2A9E4 0x59DE +0x8EA2A9E5 0x59EE +0x8EA2A9E6 0x5A00 +0x8EA2A9E7 0x59F1 +0x8EA2A9E8 0x59DD +0x8EA2A9E9 0x59FA +0x8EA2A9EA 0x59FD +0x8EA2A9EB 0x59FC +0x8EA2A9EC 0x59F6 +0x8EA2A9ED 0x59E4 +0x8EA2A9EE 0x59F2 +0x8EA2A9EF 0x59F7 +0x8EA2A9F0 0x59DB +0x8EA2A9F1 0x59E9 +0x8EA2A9F2 0x59F3 +0x8EA2A9F3 0x59F5 +0x8EA2A9F4 0x59E0 +0x8EA2A9F5 0x59FE +0x8EA2A9F6 0x59F4 +0x8EA2A9F7 0x59ED +0x8EA2A9F8 0x5BA8 +0x8EA2A9F9 0x5C4C +0x8EA2A9FA 0x5CD0 +0x8EA2A9FB 0x5CD8 +0x8EA2A9FC 0x5CCC +0x8EA2A9FD 0x5CD7 +0x8EA2A9FE 0x5CCB +0x8EA2AAA1 0x5CDB +0x8EA2AAA2 0x5CDE +0x8EA2AAA3 0x5CDA +0x8EA2AAA4 0x5CC9 +0x8EA2AAA5 0x5CC7 +0x8EA2AAA6 0x5CCA +0x8EA2AAA7 0x5CD6 +0x8EA2AAA8 0x5CD3 +0x8EA2AAA9 0x5CD4 +0x8EA2AAAA 0x5CCF +0x8EA2AAAB 0x5CC8 +0x8EA2AAAC 0x5CC6 +0x8EA2AAAD 0x5CCE +0x8EA2AAAE 0x5CDF +0x8EA2AAAF 0x5CF8 +0x8EA2AAB0 0x5DF9 +0x8EA2AAB1 0x5E21 +0x8EA2AAB2 0x5E22 +0x8EA2AAB3 0x5E23 +0x8EA2AAB4 0x5E20 +0x8EA2AAB5 0x5E24 +0x8EA2AAB6 0x5EB0 +0x8EA2AAB7 0x5EA4 +0x8EA2AAB8 0x5EA2 +0x8EA2AAB9 0x5E9B +0x8EA2AABA 0x5EA3 +0x8EA2AABB 0x5EA5 +0x8EA2AABC 0x5F07 +0x8EA2AABD 0x5F2E +0x8EA2AABE 0x5F56 +0x8EA2AABF 0x5F86 +0x8EA2AAC0 0x6037 +0x8EA2AAC1 0x6039 +0x8EA2AAC2 0x6054 +0x8EA2AAC3 0x6072 +0x8EA2AAC4 0x605E +0x8EA2AAC5 0x6045 +0x8EA2AAC6 0x6053 +0x8EA2AAC7 0x6047 +0x8EA2AAC8 0x6049 +0x8EA2AAC9 0x605B +0x8EA2AACA 0x604C +0x8EA2AACB 0x6040 +0x8EA2AACC 0x6042 +0x8EA2AACD 0x605F +0x8EA2AACE 0x6024 +0x8EA2AACF 0x6044 +0x8EA2AAD0 0x6058 +0x8EA2AAD1 0x6066 +0x8EA2AAD2 0x606E +0x8EA2AAD3 0x6242 +0x8EA2AAD4 0x6243 +0x8EA2AAD5 0x62CF +0x8EA2AAD6 0x630D +0x8EA2AAD7 0x630B +0x8EA2AAD8 0x62F5 +0x8EA2AAD9 0x630E +0x8EA2AADA 0x6303 +0x8EA2AADB 0x62EB +0x8EA2AADC 0x62F9 +0x8EA2AADD 0x630F +0x8EA2AADE 0x630C +0x8EA2AADF 0x62F8 +0x8EA2AAE0 0x62F6 +0x8EA2AAE1 0x6300 +0x8EA2AAE2 0x6313 +0x8EA2AAE3 0x6314 +0x8EA2AAE4 0x62FA +0x8EA2AAE5 0x6315 +0x8EA2AAE6 0x62FB +0x8EA2AAE7 0x62F0 +0x8EA2AAE8 0x6541 +0x8EA2AAE9 0x6543 +0x8EA2AAEA 0x65AA +0x8EA2AAEB 0x65BF +0x8EA2AAEC 0x6636 +0x8EA2AAED 0x6621 +0x8EA2AAEE 0x6632 +0x8EA2AAEF 0x6635 +0x8EA2AAF0 0x661C +0x8EA2AAF1 0x6626 +0x8EA2AAF2 0x6622 +0x8EA2AAF3 0x6633 +0x8EA2AAF4 0x662B +0x8EA2AAF5 0x663A +0x8EA2AAF6 0x661D +0x8EA2AAF7 0x6634 +0x8EA2AAF8 0x6639 +0x8EA2AAF9 0x662E +0x8EA2AAFA 0x670F +0x8EA2AAFB 0x6710 +0x8EA2AAFC 0x67C1 +0x8EA2AAFD 0x67F2 +0x8EA2AAFE 0x67C8 +0x8EA2ABA1 0x67BA +0x8EA2ABA2 0x67DC +0x8EA2ABA3 0x67BB +0x8EA2ABA4 0x67F8 +0x8EA2ABA5 0x67D8 +0x8EA2ABA6 0x67C0 +0x8EA2ABA7 0x67B7 +0x8EA2ABA8 0x67C5 +0x8EA2ABA9 0x67EB +0x8EA2ABAA 0x67E4 +0x8EA2ABAB 0x67DF +0x8EA2ABAC 0x67B5 +0x8EA2ABAD 0x67CD +0x8EA2ABAE 0x67B3 +0x8EA2ABAF 0x67F7 +0x8EA2ABB0 0x67F6 +0x8EA2ABB1 0x67EE +0x8EA2ABB2 0x67E3 +0x8EA2ABB3 0x67C2 +0x8EA2ABB4 0x67B9 +0x8EA2ABB5 0x67CE +0x8EA2ABB6 0x67E7 +0x8EA2ABB7 0x67F0 +0x8EA2ABB8 0x67B2 +0x8EA2ABB9 0x67FC +0x8EA2ABBA 0x67C6 +0x8EA2ABBB 0x67ED +0x8EA2ABBC 0x67CC +0x8EA2ABBD 0x67AE +0x8EA2ABBE 0x67E6 +0x8EA2ABBF 0x67DB +0x8EA2ABC0 0x67FA +0x8EA2ABC1 0x67C9 +0x8EA2ABC2 0x67CA +0x8EA2ABC3 0x67C3 +0x8EA2ABC4 0x67EA +0x8EA2ABC5 0x67CB +0x8EA2ABC6 0x6B28 +0x8EA2ABC7 0x6B82 +0x8EA2ABC8 0x6B84 +0x8EA2ABC9 0x6BB6 +0x8EA2ABCA 0x6BD6 +0x8EA2ABCB 0x6BD8 +0x8EA2ABCC 0x6BE0 +0x8EA2ABCD 0x6C20 +0x8EA2ABCE 0x6C21 +0x8EA2ABCF 0x6D28 +0x8EA2ABD0 0x6D34 +0x8EA2ABD1 0x6D2D +0x8EA2ABD2 0x6D1F +0x8EA2ABD3 0x6D3C +0x8EA2ABD4 0x6D3F +0x8EA2ABD5 0x6D12 +0x8EA2ABD6 0x6D0A +0x8EA2ABD7 0x6CDA +0x8EA2ABD8 0x6D33 +0x8EA2ABD9 0x6D04 +0x8EA2ABDA 0x6D19 +0x8EA2ABDB 0x6D3A +0x8EA2ABDC 0x6D1A +0x8EA2ABDD 0x6D11 +0x8EA2ABDE 0x6D00 +0x8EA2ABDF 0x6D1D +0x8EA2ABE0 0x6D42 +0x8EA2ABE1 0x6D01 +0x8EA2ABE2 0x6D18 +0x8EA2ABE3 0x6D37 +0x8EA2ABE4 0x6D03 +0x8EA2ABE5 0x6D0F +0x8EA2ABE6 0x6D40 +0x8EA2ABE7 0x6D07 +0x8EA2ABE8 0x6D20 +0x8EA2ABE9 0x6D2C +0x8EA2ABEA 0x6D08 +0x8EA2ABEB 0x6D22 +0x8EA2ABEC 0x6D09 +0x8EA2ABED 0x6D10 +0x8EA2ABEE 0x70B7 +0x8EA2ABEF 0x709F +0x8EA2ABF0 0x70BE +0x8EA2ABF1 0x70B1 +0x8EA2ABF2 0x70B0 +0x8EA2ABF3 0x70A1 +0x8EA2ABF4 0x70B4 +0x8EA2ABF5 0x70B5 +0x8EA2ABF6 0x70A9 +0x8EA2ABF7 0x7241 +0x8EA2ABF8 0x7249 +0x8EA2ABF9 0x724A +0x8EA2ABFA 0x726C +0x8EA2ABFB 0x7270 +0x8EA2ABFC 0x7273 +0x8EA2ABFD 0x726E +0x8EA2ABFE 0x72CA +0x8EA2ACA1 0x72E4 +0x8EA2ACA2 0x72E8 +0x8EA2ACA3 0x72EB +0x8EA2ACA4 0x72DF +0x8EA2ACA5 0x72EA +0x8EA2ACA6 0x72E6 +0x8EA2ACA7 0x72E3 +0x8EA2ACA8 0x7385 +0x8EA2ACA9 0x73CC +0x8EA2ACAA 0x73C2 +0x8EA2ACAB 0x73C8 +0x8EA2ACAC 0x73C5 +0x8EA2ACAD 0x73B9 +0x8EA2ACAE 0x73B6 +0x8EA2ACAF 0x73B5 +0x8EA2ACB0 0x73B4 +0x8EA2ACB1 0x73EB +0x8EA2ACB2 0x73BF +0x8EA2ACB3 0x73C7 +0x8EA2ACB4 0x73BE +0x8EA2ACB5 0x73C3 +0x8EA2ACB6 0x73C6 +0x8EA2ACB7 0x73B8 +0x8EA2ACB8 0x73CB +0x8EA2ACB9 0x74EC +0x8EA2ACBA 0x74EE +0x8EA2ACBB 0x752E +0x8EA2ACBC 0x7547 +0x8EA2ACBD 0x7548 +0x8EA2ACBE 0x75A7 +0x8EA2ACBF 0x75AA +0x8EA2ACC0 0x7679 +0x8EA2ACC1 0x76C4 +0x8EA2ACC2 0x7708 +0x8EA2ACC3 0x7703 +0x8EA2ACC4 0x7704 +0x8EA2ACC5 0x7705 +0x8EA2ACC6 0x770A +0x8EA2ACC7 0x76F7 +0x8EA2ACC8 0x76FB +0x8EA2ACC9 0x76FA +0x8EA2ACCA 0x77E7 +0x8EA2ACCB 0x77E8 +0x8EA2ACCC 0x7806 +0x8EA2ACCD 0x7811 +0x8EA2ACCE 0x7812 +0x8EA2ACCF 0x7805 +0x8EA2ACD0 0x7810 +0x8EA2ACD1 0x780F +0x8EA2ACD2 0x780E +0x8EA2ACD3 0x7809 +0x8EA2ACD4 0x7803 +0x8EA2ACD5 0x7813 +0x8EA2ACD6 0x794A +0x8EA2ACD7 0x794C +0x8EA2ACD8 0x794B +0x8EA2ACD9 0x7945 +0x8EA2ACDA 0x7944 +0x8EA2ACDB 0x79D5 +0x8EA2ACDC 0x79CD +0x8EA2ACDD 0x79CF +0x8EA2ACDE 0x79D6 +0x8EA2ACDF 0x79CE +0x8EA2ACE0 0x7A80 +0x8EA2ACE1 0x7A7E +0x8EA2ACE2 0x7AD1 +0x8EA2ACE3 0x7B00 +0x8EA2ACE4 0x7B01 +0x8EA2ACE5 0x7C7A +0x8EA2ACE6 0x7C78 +0x8EA2ACE7 0x7C79 +0x8EA2ACE8 0x7C7F +0x8EA2ACE9 0x7C80 +0x8EA2ACEA 0x7C81 +0x8EA2ACEB 0x7D03 +0x8EA2ACEC 0x7D08 +0x8EA2ACED 0x7D01 +0x8EA2ACEE 0x7F58 +0x8EA2ACEF 0x7F91 +0x8EA2ACF0 0x7F8D +0x8EA2ACF1 0x7FBE +0x8EA2ACF2 0x8007 +0x8EA2ACF3 0x800E +0x8EA2ACF4 0x800F +0x8EA2ACF5 0x8014 +0x8EA2ACF6 0x8037 +0x8EA2ACF7 0x80D8 +0x8EA2ACF8 0x80C7 +0x8EA2ACF9 0x80E0 +0x8EA2ACFA 0x80D1 +0x8EA2ACFB 0x80C8 +0x8EA2ACFC 0x80C2 +0x8EA2ACFD 0x80D0 +0x8EA2ACFE 0x80C5 +0x8EA2ADA1 0x80E3 +0x8EA2ADA2 0x80D9 +0x8EA2ADA3 0x80DC +0x8EA2ADA4 0x80CA +0x8EA2ADA5 0x80D5 +0x8EA2ADA6 0x80C9 +0x8EA2ADA7 0x80CF +0x8EA2ADA8 0x80D7 +0x8EA2ADA9 0x80E6 +0x8EA2ADAA 0x80CD +0x8EA2ADAB 0x81FF +0x8EA2ADAC 0x8221 +0x8EA2ADAD 0x8294 +0x8EA2ADAE 0x82D9 +0x8EA2ADAF 0x82FE +0x8EA2ADB0 0x82F9 +0x8EA2ADB1 0x8307 +0x8EA2ADB2 0x82E8 +0x8EA2ADB3 0x8300 +0x8EA2ADB4 0x82D5 +0x8EA2ADB5 0x833A +0x8EA2ADB6 0x82EB +0x8EA2ADB7 0x82D6 +0x8EA2ADB8 0x82F4 +0x8EA2ADB9 0x82EC +0x8EA2ADBA 0x82E1 +0x8EA2ADBB 0x82F2 +0x8EA2ADBC 0x82F5 +0x8EA2ADBD 0x830C +0x8EA2ADBE 0x82FB +0x8EA2ADBF 0x82F6 +0x8EA2ADC0 0x82F0 +0x8EA2ADC1 0x82EA +0x8EA2ADC2 0x82E4 +0x8EA2ADC3 0x82E0 +0x8EA2ADC4 0x82FA +0x8EA2ADC5 0x82F3 +0x8EA2ADC6 0x82ED +0x8EA2ADC7 0x8677 +0x8EA2ADC8 0x8674 +0x8EA2ADC9 0x867C +0x8EA2ADCA 0x8673 +0x8EA2ADCB 0x8841 +0x8EA2ADCC 0x884E +0x8EA2ADCD 0x8867 +0x8EA2ADCE 0x886A +0x8EA2ADCF 0x8869 +0x8EA2ADD0 0x89D3 +0x8EA2ADD1 0x8A04 +0x8EA2ADD2 0x8A07 +0x8EA2ADD3 0x8D72 +0x8EA2ADD4 0x8FE3 +0x8EA2ADD5 0x8FE1 +0x8EA2ADD6 0x8FEE +0x8EA2ADD7 0x8FE0 +0x8EA2ADD8 0x90F1 +0x8EA2ADD9 0x90BD +0x8EA2ADDA 0x90BF +0x8EA2ADDB 0x90D5 +0x8EA2ADDC 0x90C5 +0x8EA2ADDD 0x90BE +0x8EA2ADDE 0x90C7 +0x8EA2ADDF 0x90CB +0x8EA2ADE0 0x90C8 +0x8EA2ADE1 0x91D4 +0x8EA2ADE2 0x91D3 +0x8EA2ADE3 0x9654 +0x8EA2ADE4 0x964F +0x8EA2ADE5 0x9651 +0x8EA2ADE6 0x9653 +0x8EA2ADE7 0x964A +0x8EA2ADE8 0x964E +0x8EA2ADE9 0x501E +0x8EA2ADEA 0x5005 +0x8EA2ADEB 0x5007 +0x8EA2ADEC 0x5013 +0x8EA2ADED 0x5022 +0x8EA2ADEE 0x5030 +0x8EA2ADEF 0x501B +0x8EA2ADF0 0x4FF5 +0x8EA2ADF1 0x4FF4 +0x8EA2ADF2 0x5033 +0x8EA2ADF3 0x5037 +0x8EA2ADF4 0x502C +0x8EA2ADF5 0x4FF6 +0x8EA2ADF6 0x4FF7 +0x8EA2ADF7 0x5017 +0x8EA2ADF8 0x501C +0x8EA2ADF9 0x5020 +0x8EA2ADFA 0x5027 +0x8EA2ADFB 0x5035 +0x8EA2ADFC 0x502F +0x8EA2ADFD 0x5031 +0x8EA2ADFE 0x500E +0x8EA2AEA1 0x515A +0x8EA2AEA2 0x5194 +0x8EA2AEA3 0x5193 +0x8EA2AEA4 0x51CA +0x8EA2AEA5 0x51C4 +0x8EA2AEA6 0x51C5 +0x8EA2AEA7 0x51C8 +0x8EA2AEA8 0x51CE +0x8EA2AEA9 0x5261 +0x8EA2AEAA 0x525A +0x8EA2AEAB 0x5252 +0x8EA2AEAC 0x525E +0x8EA2AEAD 0x525F +0x8EA2AEAE 0x5255 +0x8EA2AEAF 0x5262 +0x8EA2AEB0 0x52CD +0x8EA2AEB1 0x530E +0x8EA2AEB2 0x539E +0x8EA2AEB3 0x5526 +0x8EA2AEB4 0x54E2 +0x8EA2AEB5 0x5517 +0x8EA2AEB6 0x5512 +0x8EA2AEB7 0x54E7 +0x8EA2AEB8 0x54F3 +0x8EA2AEB9 0x54E4 +0x8EA2AEBA 0x551A +0x8EA2AEBB 0x54FF +0x8EA2AEBC 0x5504 +0x8EA2AEBD 0x5508 +0x8EA2AEBE 0x54EB +0x8EA2AEBF 0x5511 +0x8EA2AEC0 0x5505 +0x8EA2AEC1 0x54F1 +0x8EA2AEC2 0x550A +0x8EA2AEC3 0x54FB +0x8EA2AEC4 0x54F7 +0x8EA2AEC5 0x54F8 +0x8EA2AEC6 0x54E0 +0x8EA2AEC7 0x550E +0x8EA2AEC8 0x5503 +0x8EA2AEC9 0x550B +0x8EA2AECA 0x5701 +0x8EA2AECB 0x5702 +0x8EA2AECC 0x57CC +0x8EA2AECD 0x5832 +0x8EA2AECE 0x57D5 +0x8EA2AECF 0x57D2 +0x8EA2AED0 0x57BA +0x8EA2AED1 0x57C6 +0x8EA2AED2 0x57BD +0x8EA2AED3 0x57BC +0x8EA2AED4 0x57B8 +0x8EA2AED5 0x57B6 +0x8EA2AED6 0x57BF +0x8EA2AED7 0x57C7 +0x8EA2AED8 0x57D0 +0x8EA2AED9 0x57B9 +0x8EA2AEDA 0x57C1 +0x8EA2AEDB 0x590E +0x8EA2AEDC 0x594A +0x8EA2AEDD 0x5A19 +0x8EA2AEDE 0x5A16 +0x8EA2AEDF 0x5A2D +0x8EA2AEE0 0x5A2E +0x8EA2AEE1 0x5A15 +0x8EA2AEE2 0x5A0F +0x8EA2AEE3 0x5A17 +0x8EA2AEE4 0x5A0A +0x8EA2AEE5 0x5A1E +0x8EA2AEE6 0x5A33 +0x8EA2AEE7 0x5B6C +0x8EA2AEE8 0x5BA7 +0x8EA2AEE9 0x5BAD +0x8EA2AEEA 0x5BAC +0x8EA2AEEB 0x5C03 +0x8EA2AEEC 0x5C56 +0x8EA2AEED 0x5C54 +0x8EA2AEEE 0x5CEC +0x8EA2AEEF 0x5CFF +0x8EA2AEF0 0x5CEE +0x8EA2AEF1 0x5CF1 +0x8EA2AEF2 0x5CF7 +0x8EA2AEF3 0x5D00 +0x8EA2AEF4 0x5CF9 +0x8EA2AEF5 0x5E29 +0x8EA2AEF6 0x5E28 +0x8EA2AEF7 0x5EA8 +0x8EA2AEF8 0x5EAE +0x8EA2AEF9 0x5EAA +0x8EA2AEFA 0x5EAC +0x8EA2AEFB 0x5F33 +0x8EA2AEFC 0x5F30 +0x8EA2AEFD 0x5F67 +0x8EA2AEFE 0x605D +0x8EA2AFA1 0x605A +0x8EA2AFA2 0x6067 +0x8EA2AFA3 0x6041 +0x8EA2AFA4 0x60A2 +0x8EA2AFA5 0x6088 +0x8EA2AFA6 0x6080 +0x8EA2AFA7 0x6092 +0x8EA2AFA8 0x6081 +0x8EA2AFA9 0x609D +0x8EA2AFAA 0x6083 +0x8EA2AFAB 0x6095 +0x8EA2AFAC 0x609B +0x8EA2AFAD 0x6097 +0x8EA2AFAE 0x6087 +0x8EA2AFAF 0x609C +0x8EA2AFB0 0x608E +0x8EA2AFB1 0x6219 +0x8EA2AFB2 0x6246 +0x8EA2AFB3 0x62F2 +0x8EA2AFB4 0x6310 +0x8EA2AFB5 0x6356 +0x8EA2AFB6 0x632C +0x8EA2AFB7 0x6344 +0x8EA2AFB8 0x6345 +0x8EA2AFB9 0x6336 +0x8EA2AFBA 0x6343 +0x8EA2AFBB 0x63E4 +0x8EA2AFBC 0x6339 +0x8EA2AFBD 0x634B +0x8EA2AFBE 0x634A +0x8EA2AFBF 0x633C +0x8EA2AFC0 0x6329 +0x8EA2AFC1 0x6341 +0x8EA2AFC2 0x6334 +0x8EA2AFC3 0x6358 +0x8EA2AFC4 0x6354 +0x8EA2AFC5 0x6359 +0x8EA2AFC6 0x632D +0x8EA2AFC7 0x6347 +0x8EA2AFC8 0x6333 +0x8EA2AFC9 0x635A +0x8EA2AFCA 0x6351 +0x8EA2AFCB 0x6338 +0x8EA2AFCC 0x6357 +0x8EA2AFCD 0x6340 +0x8EA2AFCE 0x6348 +0x8EA2AFCF 0x654A +0x8EA2AFD0 0x6546 +0x8EA2AFD1 0x65C6 +0x8EA2AFD2 0x65C3 +0x8EA2AFD3 0x65C4 +0x8EA2AFD4 0x65C2 +0x8EA2AFD5 0x664A +0x8EA2AFD6 0x665F +0x8EA2AFD7 0x6647 +0x8EA2AFD8 0x6651 +0x8EA2AFD9 0x6712 +0x8EA2AFDA 0x6713 +0x8EA2AFDB 0x681F +0x8EA2AFDC 0x681A +0x8EA2AFDD 0x6849 +0x8EA2AFDE 0x6832 +0x8EA2AFDF 0x6833 +0x8EA2AFE0 0x683B +0x8EA2AFE1 0x684B +0x8EA2AFE2 0x684F +0x8EA2AFE3 0x6816 +0x8EA2AFE4 0x6831 +0x8EA2AFE5 0x681C +0x8EA2AFE6 0x6835 +0x8EA2AFE7 0x682B +0x8EA2AFE8 0x682D +0x8EA2AFE9 0x682F +0x8EA2AFEA 0x684E +0x8EA2AFEB 0x6844 +0x8EA2AFEC 0x6834 +0x8EA2AFED 0x681D +0x8EA2AFEE 0x6812 +0x8EA2AFEF 0x6814 +0x8EA2AFF0 0x6826 +0x8EA2AFF1 0x6828 +0x8EA2AFF2 0x682E +0x8EA2AFF3 0x684D +0x8EA2AFF4 0x683A +0x8EA2AFF5 0x6825 +0x8EA2AFF6 0x6820 +0x8EA2AFF7 0x6B2C +0x8EA2AFF8 0x6B2F +0x8EA2AFF9 0x6B2D +0x8EA2AFFA 0x6B31 +0x8EA2AFFB 0x6B34 +0x8EA2AFFC 0x6B6D +0x8EA2AFFD 0x8082 +0x8EA2AFFE 0x6B88 +0x8EA2B0A1 0x6BE6 +0x8EA2B0A2 0x6BE4 +0x8EA2B0A3 0x6BE8 +0x8EA2B0A4 0x6BE3 +0x8EA2B0A5 0x6BE2 +0x8EA2B0A6 0x6BE7 +0x8EA2B0A7 0x6C25 +0x8EA2B0A8 0x6D7A +0x8EA2B0A9 0x6D63 +0x8EA2B0AA 0x6D64 +0x8EA2B0AB 0x6D76 +0x8EA2B0AC 0x6D0D +0x8EA2B0AD 0x6D61 +0x8EA2B0AE 0x6D92 +0x8EA2B0AF 0x6D58 +0x8EA2B0B0 0x6D62 +0x8EA2B0B1 0x6D6D +0x8EA2B0B2 0x6D6F +0x8EA2B0B3 0x6D91 +0x8EA2B0B4 0x6D8D +0x8EA2B0B5 0x6DEF +0x8EA2B0B6 0x6D7F +0x8EA2B0B7 0x6D86 +0x8EA2B0B8 0x6D5E +0x8EA2B0B9 0x6D67 +0x8EA2B0BA 0x6D60 +0x8EA2B0BB 0x6D97 +0x8EA2B0BC 0x6D70 +0x8EA2B0BD 0x6D7C +0x8EA2B0BE 0x6D5F +0x8EA2B0BF 0x6D82 +0x8EA2B0C0 0x6D98 +0x8EA2B0C1 0x6D2F +0x8EA2B0C2 0x6D68 +0x8EA2B0C3 0x6D8B +0x8EA2B0C4 0x6D7E +0x8EA2B0C5 0x6D80 +0x8EA2B0C6 0x6D84 +0x8EA2B0C7 0x6D16 +0x8EA2B0C8 0x6D83 +0x8EA2B0C9 0x6D7B +0x8EA2B0CA 0x6D7D +0x8EA2B0CB 0x6D75 +0x8EA2B0CC 0x6D90 +0x8EA2B0CD 0x70DC +0x8EA2B0CE 0x70D3 +0x8EA2B0CF 0x70D1 +0x8EA2B0D0 0x70DD +0x8EA2B0D1 0x70CB +0x8EA2B0D2 0x7F39 +0x8EA2B0D3 0x70E2 +0x8EA2B0D4 0x70D7 +0x8EA2B0D5 0x70D2 +0x8EA2B0D6 0x70DE +0x8EA2B0D7 0x70E0 +0x8EA2B0D8 0x70D4 +0x8EA2B0D9 0x70CD +0x8EA2B0DA 0x70C5 +0x8EA2B0DB 0x70C6 +0x8EA2B0DC 0x70C7 +0x8EA2B0DD 0x70DA +0x8EA2B0DE 0x70CE +0x8EA2B0DF 0x70E1 +0x8EA2B0E0 0x7242 +0x8EA2B0E1 0x7278 +0x8EA2B0E2 0x7277 +0x8EA2B0E3 0x7276 +0x8EA2B0E4 0x7300 +0x8EA2B0E5 0x72FA +0x8EA2B0E6 0x72F4 +0x8EA2B0E7 0x72FE +0x8EA2B0E8 0x72F6 +0x8EA2B0E9 0x72F3 +0x8EA2B0EA 0x72FB +0x8EA2B0EB 0x7301 +0x8EA2B0EC 0x73D3 +0x8EA2B0ED 0x73D9 +0x8EA2B0EE 0x73E5 +0x8EA2B0EF 0x73D6 +0x8EA2B0F0 0x73BC +0x8EA2B0F1 0x73E7 +0x8EA2B0F2 0x73E3 +0x8EA2B0F3 0x73E9 +0x8EA2B0F4 0x73DC +0x8EA2B0F5 0x73D2 +0x8EA2B0F6 0x73DB +0x8EA2B0F7 0x73D4 +0x8EA2B0F8 0x73DD +0x8EA2B0F9 0x73DA +0x8EA2B0FA 0x73D7 +0x8EA2B0FB 0x73D8 +0x8EA2B0FC 0x73E8 +0x8EA2B0FD 0x74DE +0x8EA2B0FE 0x74DF +0x8EA2B1A1 0x74F4 +0x8EA2B1A2 0x74F5 +0x8EA2B1A3 0x7521 +0x8EA2B1A4 0x755B +0x8EA2B1A5 0x755F +0x8EA2B1A6 0x75B0 +0x8EA2B1A7 0x75C1 +0x8EA2B1A8 0x75BB +0x8EA2B1A9 0x75C4 +0x8EA2B1AA 0x75C0 +0x8EA2B1AB 0x75BF +0x8EA2B1AC 0x75B6 +0x8EA2B1AD 0x75BA +0x8EA2B1AE 0x768A +0x8EA2B1AF 0x76C9 +0x8EA2B1B0 0x771D +0x8EA2B1B1 0x771B +0x8EA2B1B2 0x7710 +0x8EA2B1B3 0x7713 +0x8EA2B1B4 0x7712 +0x8EA2B1B5 0x7723 +0x8EA2B1B6 0x7711 +0x8EA2B1B7 0x7715 +0x8EA2B1B8 0x7719 +0x8EA2B1B9 0x771A +0x8EA2B1BA 0x7722 +0x8EA2B1BB 0x7727 +0x8EA2B1BC 0x7823 +0x8EA2B1BD 0x782C +0x8EA2B1BE 0x7822 +0x8EA2B1BF 0x7835 +0x8EA2B1C0 0x782F +0x8EA2B1C1 0x7828 +0x8EA2B1C2 0x782E +0x8EA2B1C3 0x782B +0x8EA2B1C4 0x7821 +0x8EA2B1C5 0x7829 +0x8EA2B1C6 0x7833 +0x8EA2B1C7 0x782A +0x8EA2B1C8 0x7831 +0x8EA2B1C9 0x7954 +0x8EA2B1CA 0x795B +0x8EA2B1CB 0x794F +0x8EA2B1CC 0x795C +0x8EA2B1CD 0x7953 +0x8EA2B1CE 0x7952 +0x8EA2B1CF 0x7951 +0x8EA2B1D0 0x79EB +0x8EA2B1D1 0x79EC +0x8EA2B1D2 0x79E0 +0x8EA2B1D3 0x79EE +0x8EA2B1D4 0x79ED +0x8EA2B1D5 0x79EA +0x8EA2B1D6 0x79DC +0x8EA2B1D7 0x79DE +0x8EA2B1D8 0x79DD +0x8EA2B1D9 0x7A86 +0x8EA2B1DA 0x7A89 +0x8EA2B1DB 0x7A85 +0x8EA2B1DC 0x7A8B +0x8EA2B1DD 0x7A8C +0x8EA2B1DE 0x7A8A +0x8EA2B1DF 0x7A87 +0x8EA2B1E0 0x7AD8 +0x8EA2B1E1 0x7B10 +0x8EA2B1E2 0x7B04 +0x8EA2B1E3 0x7B13 +0x8EA2B1E4 0x7B05 +0x8EA2B1E5 0x7B0F +0x8EA2B1E6 0x7B08 +0x8EA2B1E7 0x7B0A +0x8EA2B1E8 0x7B0E +0x8EA2B1E9 0x7B09 +0x8EA2B1EA 0x7B12 +0x8EA2B1EB 0x7C84 +0x8EA2B1EC 0x7C91 +0x8EA2B1ED 0x7C8A +0x8EA2B1EE 0x7C8C +0x8EA2B1EF 0x7C88 +0x8EA2B1F0 0x7C8D +0x8EA2B1F1 0x7C85 +0x8EA2B1F2 0x7D1E +0x8EA2B1F3 0x7D1D +0x8EA2B1F4 0x7D11 +0x8EA2B1F5 0x7D0E +0x8EA2B1F6 0x7D18 +0x8EA2B1F7 0x7D16 +0x8EA2B1F8 0x7D13 +0x8EA2B1F9 0x7D1F +0x8EA2B1FA 0x7D12 +0x8EA2B1FB 0x7D0F +0x8EA2B1FC 0x7D0C +0x8EA2B1FD 0x7F5C +0x8EA2B1FE 0x7F61 +0x8EA2B2A1 0x7F5E +0x8EA2B2A2 0x7F60 +0x8EA2B2A3 0x7F5D +0x8EA2B2A4 0x7F5B +0x8EA2B2A5 0x7F96 +0x8EA2B2A6 0x7F92 +0x8EA2B2A7 0x7FC3 +0x8EA2B2A8 0x7FC2 +0x8EA2B2A9 0x7FC0 +0x8EA2B2AA 0x8016 +0x8EA2B2AB 0x803E +0x8EA2B2AC 0x8039 +0x8EA2B2AD 0x80FA +0x8EA2B2AE 0x80F2 +0x8EA2B2AF 0x80F9 +0x8EA2B2B0 0x80F5 +0x8EA2B2B1 0x8101 +0x8EA2B2B2 0x80FB +0x8EA2B2B3 0x8100 +0x8EA2B2B4 0x8201 +0x8EA2B2B5 0x822F +0x8EA2B2B6 0x8225 +0x8EA2B2B7 0x8333 +0x8EA2B2B8 0x832D +0x8EA2B2B9 0x8344 +0x8EA2B2BA 0x8319 +0x8EA2B2BB 0x8351 +0x8EA2B2BC 0x8325 +0x8EA2B2BD 0x8356 +0x8EA2B2BE 0x833F +0x8EA2B2BF 0x8341 +0x8EA2B2C0 0x8326 +0x8EA2B2C1 0x831C +0x8EA2B2C2 0x8322 +0x8EA2B2C3 0x8342 +0x8EA2B2C4 0x834E +0x8EA2B2C5 0x831B +0x8EA2B2C6 0x832A +0x8EA2B2C7 0x8308 +0x8EA2B2C8 0x833C +0x8EA2B2C9 0x834D +0x8EA2B2CA 0x8316 +0x8EA2B2CB 0x8324 +0x8EA2B2CC 0x8320 +0x8EA2B2CD 0x8337 +0x8EA2B2CE 0x832F +0x8EA2B2CF 0x8329 +0x8EA2B2D0 0x8347 +0x8EA2B2D1 0x8345 +0x8EA2B2D2 0x834C +0x8EA2B2D3 0x8353 +0x8EA2B2D4 0x831E +0x8EA2B2D5 0x832C +0x8EA2B2D6 0x834B +0x8EA2B2D7 0x8327 +0x8EA2B2D8 0x8348 +0x8EA2B2D9 0x8653 +0x8EA2B2DA 0x8652 +0x8EA2B2DB 0x86A2 +0x8EA2B2DC 0x86A8 +0x8EA2B2DD 0x8696 +0x8EA2B2DE 0x868D +0x8EA2B2DF 0x8691 +0x8EA2B2E0 0x869E +0x8EA2B2E1 0x8687 +0x8EA2B2E2 0x8697 +0x8EA2B2E3 0x8686 +0x8EA2B2E4 0x868B +0x8EA2B2E5 0x869A +0x8EA2B2E6 0x8685 +0x8EA2B2E7 0x86A5 +0x8EA2B2E8 0x8699 +0x8EA2B2E9 0x86A1 +0x8EA2B2EA 0x86A7 +0x8EA2B2EB 0x8695 +0x8EA2B2EC 0x8698 +0x8EA2B2ED 0x868E +0x8EA2B2EE 0x869D +0x8EA2B2EF 0x8690 +0x8EA2B2F0 0x8694 +0x8EA2B2F1 0x8843 +0x8EA2B2F2 0x8844 +0x8EA2B2F3 0x886D +0x8EA2B2F4 0x8875 +0x8EA2B2F5 0x8876 +0x8EA2B2F6 0x8872 +0x8EA2B2F7 0x8880 +0x8EA2B2F8 0x8871 +0x8EA2B2F9 0x887F +0x8EA2B2FA 0x886F +0x8EA2B2FB 0x8883 +0x8EA2B2FC 0x887E +0x8EA2B2FD 0x8874 +0x8EA2B2FE 0x887C +0x8EA2B3A1 0x8A12 +0x8EA2B3A2 0x8C47 +0x8EA2B3A3 0x8C57 +0x8EA2B3A4 0x8C7B +0x8EA2B3A5 0x8CA4 +0x8EA2B3A6 0x8CA3 +0x8EA2B3A7 0x8D76 +0x8EA2B3A8 0x8D78 +0x8EA2B3A9 0x8DB5 +0x8EA2B3AA 0x8DB7 +0x8EA2B3AB 0x8DB6 +0x8EA2B3AC 0x8ED1 +0x8EA2B3AD 0x8ED3 +0x8EA2B3AE 0x8FFE +0x8EA2B3AF 0x8FF5 +0x8EA2B3B0 0x9002 +0x8EA2B3B1 0x8FFF +0x8EA2B3B2 0x8FFB +0x8EA2B3B3 0x9004 +0x8EA2B3B4 0x8FFC +0x8EA2B3B5 0x8FF6 +0x8EA2B3B6 0x90D6 +0x8EA2B3B7 0x90E0 +0x8EA2B3B8 0x90D9 +0x8EA2B3B9 0x90DA +0x8EA2B3BA 0x90E3 +0x8EA2B3BB 0x90DF +0x8EA2B3BC 0x90E5 +0x8EA2B3BD 0x90D8 +0x8EA2B3BE 0x90DB +0x8EA2B3BF 0x90D7 +0x8EA2B3C0 0x90DC +0x8EA2B3C1 0x90E4 +0x8EA2B3C2 0x9150 +0x8EA2B3C3 0x914E +0x8EA2B3C4 0x914F +0x8EA2B3C5 0x91D5 +0x8EA2B3C6 0x91E2 +0x8EA2B3C7 0x91DA +0x8EA2B3C8 0x965C +0x8EA2B3C9 0x965F +0x8EA2B3CA 0x96BC +0x8EA2B3CB 0x98E3 +0x8EA2B3CC 0x9ADF +0x8EA2B3CD 0x9B2F +0x8EA2B3CE 0x4E7F +0x8EA2B3CF 0x5070 +0x8EA2B3D0 0x506A +0x8EA2B3D1 0x5061 +0x8EA2B3D2 0x505E +0x8EA2B3D3 0x5060 +0x8EA2B3D4 0x5053 +0x8EA2B3D5 0x504B +0x8EA2B3D6 0x505D +0x8EA2B3D7 0x5072 +0x8EA2B3D8 0x5048 +0x8EA2B3D9 0x504D +0x8EA2B3DA 0x5041 +0x8EA2B3DB 0x505B +0x8EA2B3DC 0x504A +0x8EA2B3DD 0x5062 +0x8EA2B3DE 0x5015 +0x8EA2B3DF 0x5045 +0x8EA2B3E0 0x505F +0x8EA2B3E1 0x5069 +0x8EA2B3E2 0x506B +0x8EA2B3E3 0x5063 +0x8EA2B3E4 0x5064 +0x8EA2B3E5 0x5046 +0x8EA2B3E6 0x5040 +0x8EA2B3E7 0x506E +0x8EA2B3E8 0x5073 +0x8EA2B3E9 0x5057 +0x8EA2B3EA 0x5051 +0x8EA2B3EB 0x51D0 +0x8EA2B3EC 0x526B +0x8EA2B3ED 0x526D +0x8EA2B3EE 0x526C +0x8EA2B3EF 0x526E +0x8EA2B3F0 0x52D6 +0x8EA2B3F1 0x52D3 +0x8EA2B3F2 0x532D +0x8EA2B3F3 0x539C +0x8EA2B3F4 0x5575 +0x8EA2B3F5 0x5576 +0x8EA2B3F6 0x553C +0x8EA2B3F7 0x554D +0x8EA2B3F8 0x5550 +0x8EA2B3F9 0x5534 +0x8EA2B3FA 0x552A +0x8EA2B3FB 0x5551 +0x8EA2B3FC 0x5562 +0x8EA2B3FD 0x5536 +0x8EA2B3FE 0x5535 +0x8EA2B4A1 0x5530 +0x8EA2B4A2 0x5552 +0x8EA2B4A3 0x5545 +0x8EA2B4A4 0x550C +0x8EA2B4A5 0x5532 +0x8EA2B4A6 0x5565 +0x8EA2B4A7 0x554E +0x8EA2B4A8 0x5539 +0x8EA2B4A9 0x5548 +0x8EA2B4AA 0x552D +0x8EA2B4AB 0x553B +0x8EA2B4AC 0x5540 +0x8EA2B4AD 0x554B +0x8EA2B4AE 0x570A +0x8EA2B4AF 0x5707 +0x8EA2B4B0 0x57FB +0x8EA2B4B1 0x5814 +0x8EA2B4B2 0x57E2 +0x8EA2B4B3 0x57F6 +0x8EA2B4B4 0x57DC +0x8EA2B4B5 0x57F4 +0x8EA2B4B6 0x5800 +0x8EA2B4B7 0x57ED +0x8EA2B4B8 0x57FD +0x8EA2B4B9 0x5808 +0x8EA2B4BA 0x57F8 +0x8EA2B4BB 0x580B +0x8EA2B4BC 0x57F3 +0x8EA2B4BD 0x57CF +0x8EA2B4BE 0x5807 +0x8EA2B4BF 0x57EE +0x8EA2B4C0 0x57E3 +0x8EA2B4C1 0x57F2 +0x8EA2B4C2 0x57E5 +0x8EA2B4C3 0x57EC +0x8EA2B4C4 0x57E1 +0x8EA2B4C5 0x580E +0x8EA2B4C6 0x57FC +0x8EA2B4C7 0x5810 +0x8EA2B4C8 0x57E7 +0x8EA2B4C9 0x5801 +0x8EA2B4CA 0x580C +0x8EA2B4CB 0x57F1 +0x8EA2B4CC 0x57E9 +0x8EA2B4CD 0x57F0 +0x8EA2B4CE 0x580D +0x8EA2B4CF 0x5804 +0x8EA2B4D0 0x595C +0x8EA2B4D1 0x5A60 +0x8EA2B4D2 0x5A58 +0x8EA2B4D3 0x5A55 +0x8EA2B4D4 0x5A67 +0x8EA2B4D5 0x5A5E +0x8EA2B4D6 0x5A38 +0x8EA2B4D7 0x5A35 +0x8EA2B4D8 0x5A6D +0x8EA2B4D9 0x5A50 +0x8EA2B4DA 0x5A5F +0x8EA2B4DB 0x5A65 +0x8EA2B4DC 0x5A6C +0x8EA2B4DD 0x5A53 +0x8EA2B4DE 0x5A64 +0x8EA2B4DF 0x5A57 +0x8EA2B4E0 0x5A43 +0x8EA2B4E1 0x5A5D +0x8EA2B4E2 0x5A52 +0x8EA2B4E3 0x5A44 +0x8EA2B4E4 0x5A5B +0x8EA2B4E5 0x5A48 +0x8EA2B4E6 0x5A8E +0x8EA2B4E7 0x5A3E +0x8EA2B4E8 0x5A4D +0x8EA2B4E9 0x5A39 +0x8EA2B4EA 0x5A4C +0x8EA2B4EB 0x5A70 +0x8EA2B4EC 0x5A69 +0x8EA2B4ED 0x5A47 +0x8EA2B4EE 0x5A51 +0x8EA2B4EF 0x5A56 +0x8EA2B4F0 0x5A42 +0x8EA2B4F1 0x5A5C +0x8EA2B4F2 0x5B72 +0x8EA2B4F3 0x5B6E +0x8EA2B4F4 0x5BC1 +0x8EA2B4F5 0x5BC0 +0x8EA2B4F6 0x5C59 +0x8EA2B4F7 0x5D1E +0x8EA2B4F8 0x5D0B +0x8EA2B4F9 0x5D1D +0x8EA2B4FA 0x5D1A +0x8EA2B4FB 0x5D20 +0x8EA2B4FC 0x5D0C +0x8EA2B4FD 0x5D28 +0x8EA2B4FE 0x5D0D +0x8EA2B5A1 0x5D26 +0x8EA2B5A2 0x5D25 +0x8EA2B5A3 0x5D0F +0x8EA2B5A4 0x5D30 +0x8EA2B5A5 0x5D12 +0x8EA2B5A6 0x5D23 +0x8EA2B5A7 0x5D1F +0x8EA2B5A8 0x5D2E +0x8EA2B5A9 0x5E3E +0x8EA2B5AA 0x5E34 +0x8EA2B5AB 0x5EB1 +0x8EA2B5AC 0x5EB4 +0x8EA2B5AD 0x5EB9 +0x8EA2B5AE 0x5EB2 +0x8EA2B5AF 0x5EB3 +0x8EA2B5B0 0x5F36 +0x8EA2B5B1 0x5F38 +0x8EA2B5B2 0x5F9B +0x8EA2B5B3 0x5F96 +0x8EA2B5B4 0x5F9F +0x8EA2B5B5 0x608A +0x8EA2B5B6 0x6090 +0x8EA2B5B7 0x6086 +0x8EA2B5B8 0x60BE +0x8EA2B5B9 0x60B0 +0x8EA2B5BA 0x60BA +0x8EA2B5BB 0x60D3 +0x8EA2B5BC 0x60D4 +0x8EA2B5BD 0x60CF +0x8EA2B5BE 0x60E4 +0x8EA2B5BF 0x60D9 +0x8EA2B5C0 0x60DD +0x8EA2B5C1 0x60C8 +0x8EA2B5C2 0x60B1 +0x8EA2B5C3 0x60DB +0x8EA2B5C4 0x60B7 +0x8EA2B5C5 0x60CA +0x8EA2B5C6 0x60BF +0x8EA2B5C7 0x60C3 +0x8EA2B5C8 0x60CD +0x8EA2B5C9 0x60C0 +0x8EA2B5CA 0x6332 +0x8EA2B5CB 0x6365 +0x8EA2B5CC 0x638A +0x8EA2B5CD 0x6382 +0x8EA2B5CE 0x637D +0x8EA2B5CF 0x63BD +0x8EA2B5D0 0x639E +0x8EA2B5D1 0x63AD +0x8EA2B5D2 0x639D +0x8EA2B5D3 0x6397 +0x8EA2B5D4 0x63AB +0x8EA2B5D5 0x638E +0x8EA2B5D6 0x636F +0x8EA2B5D7 0x6387 +0x8EA2B5D8 0x6390 +0x8EA2B5D9 0x636E +0x8EA2B5DA 0x63AF +0x8EA2B5DB 0x6375 +0x8EA2B5DC 0x639C +0x8EA2B5DD 0x636D +0x8EA2B5DE 0x63AE +0x8EA2B5DF 0x637C +0x8EA2B5E0 0x63A4 +0x8EA2B5E1 0x633B +0x8EA2B5E2 0x639F +0x8EA2B5E3 0x6378 +0x8EA2B5E4 0x6385 +0x8EA2B5E5 0x6381 +0x8EA2B5E6 0x6391 +0x8EA2B5E7 0x638D +0x8EA2B5E8 0x6370 +0x8EA2B5E9 0x6553 +0x8EA2B5EA 0x65CD +0x8EA2B5EB 0x6665 +0x8EA2B5EC 0x6661 +0x8EA2B5ED 0x665B +0x8EA2B5EE 0x6659 +0x8EA2B5EF 0x665C +0x8EA2B5F0 0x6662 +0x8EA2B5F1 0x6718 +0x8EA2B5F2 0x6879 +0x8EA2B5F3 0x6887 +0x8EA2B5F4 0x6890 +0x8EA2B5F5 0x689C +0x8EA2B5F6 0x686D +0x8EA2B5F7 0x686E +0x8EA2B5F8 0x68AE +0x8EA2B5F9 0x68AB +0x8EA2B5FA 0x6956 +0x8EA2B5FB 0x686F +0x8EA2B5FC 0x68A3 +0x8EA2B5FD 0x68AC +0x8EA2B5FE 0x68A9 +0x8EA2B6A1 0x6875 +0x8EA2B6A2 0x6874 +0x8EA2B6A3 0x68B2 +0x8EA2B6A4 0x688F +0x8EA2B6A5 0x6877 +0x8EA2B6A6 0x6892 +0x8EA2B6A7 0x687C +0x8EA2B6A8 0x686B +0x8EA2B6A9 0x6872 +0x8EA2B6AA 0x68AA +0x8EA2B6AB 0x6880 +0x8EA2B6AC 0x6871 +0x8EA2B6AD 0x687E +0x8EA2B6AE 0x689B +0x8EA2B6AF 0x6896 +0x8EA2B6B0 0x688B +0x8EA2B6B1 0x68A0 +0x8EA2B6B2 0x6889 +0x8EA2B6B3 0x68A4 +0x8EA2B6B4 0x6878 +0x8EA2B6B5 0x687B +0x8EA2B6B6 0x6891 +0x8EA2B6B7 0x688C +0x8EA2B6B8 0x688A +0x8EA2B6B9 0x687D +0x8EA2B6BA 0x6B36 +0x8EA2B6BB 0x6B33 +0x8EA2B6BC 0x6B37 +0x8EA2B6BD 0x6B38 +0x8EA2B6BE 0x6B91 +0x8EA2B6BF 0x6B8F +0x8EA2B6C0 0x6B8D +0x8EA2B6C1 0x6B8E +0x8EA2B6C2 0x6B8C +0x8EA2B6C3 0x6C2A +0x8EA2B6C4 0x6DC0 +0x8EA2B6C5 0x6DAB +0x8EA2B6C6 0x6DB4 +0x8EA2B6C7 0x6DB3 +0x8EA2B6C8 0x6E74 +0x8EA2B6C9 0x6DAC +0x8EA2B6CA 0x6DE9 +0x8EA2B6CB 0x6DE2 +0x8EA2B6CC 0x6DB7 +0x8EA2B6CD 0x6DF6 +0x8EA2B6CE 0x6DD4 +0x8EA2B6CF 0x6E00 +0x8EA2B6D0 0x6DC8 +0x8EA2B6D1 0x6DE0 +0x8EA2B6D2 0x6DDF +0x8EA2B6D3 0x6DD6 +0x8EA2B6D4 0x6DBE +0x8EA2B6D5 0x6DE5 +0x8EA2B6D6 0x6DDC +0x8EA2B6D7 0x6DDD +0x8EA2B6D8 0x6DDB +0x8EA2B6D9 0x6DF4 +0x8EA2B6DA 0x6DCA +0x8EA2B6DB 0x6DBD +0x8EA2B6DC 0x6DED +0x8EA2B6DD 0x6DF0 +0x8EA2B6DE 0x6DBA +0x8EA2B6DF 0x6DD5 +0x8EA2B6E0 0x6DC2 +0x8EA2B6E1 0x6DCF +0x8EA2B6E2 0x6DC9 +0x8EA2B6E3 0x6DD0 +0x8EA2B6E4 0x6DF2 +0x8EA2B6E5 0x6DD3 +0x8EA2B6E6 0x6DFD +0x8EA2B6E7 0x6DD7 +0x8EA2B6E8 0x6DCD +0x8EA2B6E9 0x6DE3 +0x8EA2B6EA 0x6DBB +0x8EA2B6EB 0x70FA +0x8EA2B6EC 0x710D +0x8EA2B6ED 0x70F7 +0x8EA2B6EE 0x7117 +0x8EA2B6EF 0x70F4 +0x8EA2B6F0 0x710C +0x8EA2B6F1 0x70F0 +0x8EA2B6F2 0x7104 +0x8EA2B6F3 0x70F3 +0x8EA2B6F4 0x7110 +0x8EA2B6F5 0x70FC +0x8EA2B6F6 0x70FF +0x8EA2B6F7 0x7106 +0x8EA2B6F8 0x7113 +0x8EA2B6F9 0x7100 +0x8EA2B6FA 0x70F8 +0x8EA2B6FB 0x70F6 +0x8EA2B6FC 0x710B +0x8EA2B6FD 0x7102 +0x8EA2B6FE 0x710E +0x8EA2B7A1 0x727E +0x8EA2B7A2 0x727B +0x8EA2B7A3 0x727C +0x8EA2B7A4 0x727F +0x8EA2B7A5 0x731D +0x8EA2B7A6 0x7317 +0x8EA2B7A7 0x7307 +0x8EA2B7A8 0x7311 +0x8EA2B7A9 0x7318 +0x8EA2B7AA 0x730A +0x8EA2B7AB 0x7308 +0x8EA2B7AC 0x72FF +0x8EA2B7AD 0x730F +0x8EA2B7AE 0x731E +0x8EA2B7AF 0x7388 +0x8EA2B7B0 0x73F6 +0x8EA2B7B1 0x73F8 +0x8EA2B7B2 0x73F5 +0x8EA2B7B3 0x7404 +0x8EA2B7B4 0x7401 +0x8EA2B7B5 0x73FD +0x8EA2B7B6 0x7407 +0x8EA2B7B7 0x7400 +0x8EA2B7B8 0x73FA +0x8EA2B7B9 0x73FC +0x8EA2B7BA 0x73FF +0x8EA2B7BB 0x740C +0x8EA2B7BC 0x740B +0x8EA2B7BD 0x73F4 +0x8EA2B7BE 0x7408 +0x8EA2B7BF 0x7564 +0x8EA2B7C0 0x7563 +0x8EA2B7C1 0x75CE +0x8EA2B7C2 0x75D2 +0x8EA2B7C3 0x75CF +0x8EA2B7C4 0x75CB +0x8EA2B7C5 0x75CC +0x8EA2B7C6 0x75D1 +0x8EA2B7C7 0x75D0 +0x8EA2B7C8 0x768F +0x8EA2B7C9 0x7689 +0x8EA2B7CA 0x76D3 +0x8EA2B7CB 0x7739 +0x8EA2B7CC 0x772F +0x8EA2B7CD 0x772D +0x8EA2B7CE 0x7731 +0x8EA2B7CF 0x7732 +0x8EA2B7D0 0x7734 +0x8EA2B7D1 0x7733 +0x8EA2B7D2 0x773D +0x8EA2B7D3 0x7725 +0x8EA2B7D4 0x773B +0x8EA2B7D5 0x7735 +0x8EA2B7D6 0x7848 +0x8EA2B7D7 0x7852 +0x8EA2B7D8 0x7849 +0x8EA2B7D9 0x784D +0x8EA2B7DA 0x784A +0x8EA2B7DB 0x784C +0x8EA2B7DC 0x7826 +0x8EA2B7DD 0x7845 +0x8EA2B7DE 0x7850 +0x8EA2B7DF 0x7964 +0x8EA2B7E0 0x7967 +0x8EA2B7E1 0x7969 +0x8EA2B7E2 0x796A +0x8EA2B7E3 0x7963 +0x8EA2B7E4 0x796B +0x8EA2B7E5 0x7961 +0x8EA2B7E6 0x79BB +0x8EA2B7E7 0x79FA +0x8EA2B7E8 0x79F8 +0x8EA2B7E9 0x79F6 +0x8EA2B7EA 0x79F7 +0x8EA2B7EB 0x7A8F +0x8EA2B7EC 0x7A94 +0x8EA2B7ED 0x7A90 +0x8EA2B7EE 0x7B35 +0x8EA2B7EF 0x7B3B +0x8EA2B7F0 0x7B34 +0x8EA2B7F1 0x7B25 +0x8EA2B7F2 0x7B30 +0x8EA2B7F3 0x7B22 +0x8EA2B7F4 0x7B24 +0x8EA2B7F5 0x7B33 +0x8EA2B7F6 0x7B18 +0x8EA2B7F7 0x7B2A +0x8EA2B7F8 0x7B1D +0x8EA2B7F9 0x7B31 +0x8EA2B7FA 0x7B2B +0x8EA2B7FB 0x7B2D +0x8EA2B7FC 0x7B2F +0x8EA2B7FD 0x7B32 +0x8EA2B7FE 0x7B38 +0x8EA2B8A1 0x7B1A +0x8EA2B8A2 0x7B23 +0x8EA2B8A3 0x7C94 +0x8EA2B8A4 0x7C98 +0x8EA2B8A5 0x7C96 +0x8EA2B8A6 0x7CA3 +0x8EA2B8A7 0x7D35 +0x8EA2B8A8 0x7D3D +0x8EA2B8A9 0x7D38 +0x8EA2B8AA 0x7D36 +0x8EA2B8AB 0x7D3A +0x8EA2B8AC 0x7D45 +0x8EA2B8AD 0x7D2C +0x8EA2B8AE 0x7D29 +0x8EA2B8AF 0x7D41 +0x8EA2B8B0 0x7D47 +0x8EA2B8B1 0x7D3E +0x8EA2B8B2 0x7D3F +0x8EA2B8B3 0x7D4A +0x8EA2B8B4 0x7D3B +0x8EA2B8B5 0x7D28 +0x8EA2B8B6 0x7F63 +0x8EA2B8B7 0x7F95 +0x8EA2B8B8 0x7F9C +0x8EA2B8B9 0x7F9D +0x8EA2B8BA 0x7F9B +0x8EA2B8BB 0x7FCA +0x8EA2B8BC 0x7FCB +0x8EA2B8BD 0x7FCD +0x8EA2B8BE 0x7FD0 +0x8EA2B8BF 0x7FD1 +0x8EA2B8C0 0x7FC7 +0x8EA2B8C1 0x7FCF +0x8EA2B8C2 0x7FC9 +0x8EA2B8C3 0x801F +0x8EA2B8C4 0x801E +0x8EA2B8C5 0x801B +0x8EA2B8C6 0x8047 +0x8EA2B8C7 0x8043 +0x8EA2B8C8 0x8048 +0x8EA2B8C9 0x8118 +0x8EA2B8CA 0x8125 +0x8EA2B8CB 0x8119 +0x8EA2B8CC 0x811B +0x8EA2B8CD 0x812D +0x8EA2B8CE 0x811F +0x8EA2B8CF 0x812C +0x8EA2B8D0 0x811E +0x8EA2B8D1 0x8121 +0x8EA2B8D2 0x8115 +0x8EA2B8D3 0x8127 +0x8EA2B8D4 0x811D +0x8EA2B8D5 0x8122 +0x8EA2B8D6 0x8211 +0x8EA2B8D7 0x8238 +0x8EA2B8D8 0x8233 +0x8EA2B8D9 0x823A +0x8EA2B8DA 0x8234 +0x8EA2B8DB 0x8232 +0x8EA2B8DC 0x8274 +0x8EA2B8DD 0x8390 +0x8EA2B8DE 0x83A3 +0x8EA2B8DF 0x83A8 +0x8EA2B8E0 0x838D +0x8EA2B8E1 0x837A +0x8EA2B8E2 0x8373 +0x8EA2B8E3 0x83A4 +0x8EA2B8E4 0x8374 +0x8EA2B8E5 0x838F +0x8EA2B8E6 0x8381 +0x8EA2B8E7 0x8395 +0x8EA2B8E8 0x8399 +0x8EA2B8E9 0x8375 +0x8EA2B8EA 0x8394 +0x8EA2B8EB 0x83A9 +0x8EA2B8EC 0x837D +0x8EA2B8ED 0x8383 +0x8EA2B8EE 0x838C +0x8EA2B8EF 0x839D +0x8EA2B8F0 0x839B +0x8EA2B8F1 0x83AA +0x8EA2B8F2 0x838B +0x8EA2B8F3 0x837E +0x8EA2B8F4 0x83A5 +0x8EA2B8F5 0x83AF +0x8EA2B8F6 0x8388 +0x8EA2B8F7 0x8397 +0x8EA2B8F8 0x83B0 +0x8EA2B8F9 0x837F +0x8EA2B8FA 0x83A6 +0x8EA2B8FB 0x8387 +0x8EA2B8FC 0x83AE +0x8EA2B8FD 0x8376 +0x8EA2B8FE 0x8659 +0x8EA2B9A1 0x8656 +0x8EA2B9A2 0x86BF +0x8EA2B9A3 0x86B7 +0x8EA2B9A4 0x86C2 +0x8EA2B9A5 0x86C1 +0x8EA2B9A6 0x86C5 +0x8EA2B9A7 0x86BA +0x8EA2B9A8 0x86B0 +0x8EA2B9A9 0x86C8 +0x8EA2B9AA 0x86B9 +0x8EA2B9AB 0x86B3 +0x8EA2B9AC 0x86B8 +0x8EA2B9AD 0x86CC +0x8EA2B9AE 0x86B4 +0x8EA2B9AF 0x86BB +0x8EA2B9B0 0x86BC +0x8EA2B9B1 0x86C3 +0x8EA2B9B2 0x86BD +0x8EA2B9B3 0x86BE +0x8EA2B9B4 0x8852 +0x8EA2B9B5 0x8889 +0x8EA2B9B6 0x8895 +0x8EA2B9B7 0x88A8 +0x8EA2B9B8 0x88A2 +0x8EA2B9B9 0x88AA +0x8EA2B9BA 0x889A +0x8EA2B9BB 0x8891 +0x8EA2B9BC 0x88A1 +0x8EA2B9BD 0x889F +0x8EA2B9BE 0x8898 +0x8EA2B9BF 0x88A7 +0x8EA2B9C0 0x8899 +0x8EA2B9C1 0x889B +0x8EA2B9C2 0x8897 +0x8EA2B9C3 0x88A4 +0x8EA2B9C4 0x88AC +0x8EA2B9C5 0x888C +0x8EA2B9C6 0x8893 +0x8EA2B9C7 0x888E +0x8EA2B9C8 0x8982 +0x8EA2B9C9 0x89D6 +0x8EA2B9CA 0x89D9 +0x8EA2B9CB 0x89D5 +0x8EA2B9CC 0x8A30 +0x8EA2B9CD 0x8A27 +0x8EA2B9CE 0x8A2C +0x8EA2B9CF 0x8A1E +0x8EA2B9D0 0x8C39 +0x8EA2B9D1 0x8C3B +0x8EA2B9D2 0x8C5C +0x8EA2B9D3 0x8C5D +0x8EA2B9D4 0x8C7D +0x8EA2B9D5 0x8CA5 +0x8EA2B9D6 0x8D7D +0x8EA2B9D7 0x8D7B +0x8EA2B9D8 0x8D79 +0x8EA2B9D9 0x8DBC +0x8EA2B9DA 0x8DC2 +0x8EA2B9DB 0x8DB9 +0x8EA2B9DC 0x8DBF +0x8EA2B9DD 0x8DC1 +0x8EA2B9DE 0x8ED8 +0x8EA2B9DF 0x8EDE +0x8EA2B9E0 0x8EDD +0x8EA2B9E1 0x8EDC +0x8EA2B9E2 0x8ED7 +0x8EA2B9E3 0x8EE0 +0x8EA2B9E4 0x8EE1 +0x8EA2B9E5 0x9024 +0x8EA2B9E6 0x900B +0x8EA2B9E7 0x9011 +0x8EA2B9E8 0x901C +0x8EA2B9E9 0x900C +0x8EA2B9EA 0x9021 +0x8EA2B9EB 0x90EF +0x8EA2B9EC 0x90EA +0x8EA2B9ED 0x90F0 +0x8EA2B9EE 0x90F4 +0x8EA2B9EF 0x90F2 +0x8EA2B9F0 0x90F3 +0x8EA2B9F1 0x90D4 +0x8EA2B9F2 0x90EB +0x8EA2B9F3 0x90EC +0x8EA2B9F4 0x90E9 +0x8EA2B9F5 0x9156 +0x8EA2B9F6 0x9158 +0x8EA2B9F7 0x915A +0x8EA2B9F8 0x9153 +0x8EA2B9F9 0x9155 +0x8EA2B9FA 0x91EC +0x8EA2B9FB 0x91F4 +0x8EA2B9FC 0x91F1 +0x8EA2B9FD 0x91F3 +0x8EA2B9FE 0x91F8 +0x8EA2BAA1 0x91E4 +0x8EA2BAA2 0x91F9 +0x8EA2BAA3 0x91EA +0x8EA2BAA4 0x91EB +0x8EA2BAA5 0x91F7 +0x8EA2BAA6 0x91E8 +0x8EA2BAA7 0x91EE +0x8EA2BAA8 0x957A +0x8EA2BAA9 0x9586 +0x8EA2BAAA 0x9588 +0x8EA2BAAB 0x967C +0x8EA2BAAC 0x966D +0x8EA2BAAD 0x966B +0x8EA2BAAE 0x9671 +0x8EA2BAAF 0x966F +0x8EA2BAB0 0x96BF +0x8EA2BAB1 0x976A +0x8EA2BAB2 0x9804 +0x8EA2BAB3 0x98E5 +0x8EA2BAB4 0x9997 +0x8EA2BAB5 0x509B +0x8EA2BAB6 0x5095 +0x8EA2BAB7 0x5094 +0x8EA2BAB8 0x509E +0x8EA2BAB9 0x508B +0x8EA2BABA 0x50A3 +0x8EA2BABB 0x5083 +0x8EA2BABC 0x508C +0x8EA2BABD 0x508E +0x8EA2BABE 0x509D +0x8EA2BABF 0x5068 +0x8EA2BAC0 0x509C +0x8EA2BAC1 0x5092 +0x8EA2BAC2 0x5082 +0x8EA2BAC3 0x5087 +0x8EA2BAC4 0x515F +0x8EA2BAC5 0x51D4 +0x8EA2BAC6 0x5312 +0x8EA2BAC7 0x5311 +0x8EA2BAC8 0x53A4 +0x8EA2BAC9 0x53A7 +0x8EA2BACA 0x5591 +0x8EA2BACB 0x55A8 +0x8EA2BACC 0x55A5 +0x8EA2BACD 0x55AD +0x8EA2BACE 0x5577 +0x8EA2BACF 0x5645 +0x8EA2BAD0 0x55A2 +0x8EA2BAD1 0x5593 +0x8EA2BAD2 0x5588 +0x8EA2BAD3 0x558F +0x8EA2BAD4 0x55B5 +0x8EA2BAD5 0x5581 +0x8EA2BAD6 0x55A3 +0x8EA2BAD7 0x5592 +0x8EA2BAD8 0x55A4 +0x8EA2BAD9 0x557D +0x8EA2BADA 0x558C +0x8EA2BADB 0x55A6 +0x8EA2BADC 0x557F +0x8EA2BADD 0x5595 +0x8EA2BADE 0x55A1 +0x8EA2BADF 0x558E +0x8EA2BAE0 0x570C +0x8EA2BAE1 0x5829 +0x8EA2BAE2 0x5837 +0x8EA2BAE3 0x5819 +0x8EA2BAE4 0x581E +0x8EA2BAE5 0x5827 +0x8EA2BAE6 0x5823 +0x8EA2BAE7 0x5828 +0x8EA2BAE8 0x57F5 +0x8EA2BAE9 0x5848 +0x8EA2BAEA 0x5825 +0x8EA2BAEB 0x581C +0x8EA2BAEC 0x581B +0x8EA2BAED 0x5833 +0x8EA2BAEE 0x583F +0x8EA2BAEF 0x5836 +0x8EA2BAF0 0x582E +0x8EA2BAF1 0x5839 +0x8EA2BAF2 0x5838 +0x8EA2BAF3 0x582D +0x8EA2BAF4 0x582C +0x8EA2BAF5 0x583B +0x8EA2BAF6 0x5961 +0x8EA2BAF7 0x5AAF +0x8EA2BAF8 0x5A94 +0x8EA2BAF9 0x5A9F +0x8EA2BAFA 0x5A7A +0x8EA2BAFB 0x5AA2 +0x8EA2BAFC 0x5A9E +0x8EA2BAFD 0x5A78 +0x8EA2BAFE 0x5AA6 +0x8EA2BBA1 0x5A7C +0x8EA2BBA2 0x5AA5 +0x8EA2BBA3 0x5AAC +0x8EA2BBA4 0x5A95 +0x8EA2BBA5 0x5AAE +0x8EA2BBA6 0x5A37 +0x8EA2BBA7 0x5A84 +0x8EA2BBA8 0x5A8A +0x8EA2BBA9 0x5A97 +0x8EA2BBAA 0x5A83 +0x8EA2BBAB 0x5A8B +0x8EA2BBAC 0x5AA9 +0x8EA2BBAD 0x5A7B +0x8EA2BBAE 0x5A7D +0x8EA2BBAF 0x5A8C +0x8EA2BBB0 0x5A9C +0x8EA2BBB1 0x5A8F +0x8EA2BBB2 0x5A93 +0x8EA2BBB3 0x5A9D +0x8EA2BBB4 0x5BEA +0x8EA2BBB5 0x5BCD +0x8EA2BBB6 0x5BCB +0x8EA2BBB7 0x5BD4 +0x8EA2BBB8 0x5BD1 +0x8EA2BBB9 0x5BCA +0x8EA2BBBA 0x5BCE +0x8EA2BBBB 0x5C0C +0x8EA2BBBC 0x5C30 +0x8EA2BBBD 0x5D37 +0x8EA2BBBE 0x5D43 +0x8EA2BBBF 0x5D6B +0x8EA2BBC0 0x5D41 +0x8EA2BBC1 0x5D4B +0x8EA2BBC2 0x5D3F +0x8EA2BBC3 0x5D35 +0x8EA2BBC4 0x5D51 +0x8EA2BBC5 0x5D4E +0x8EA2BBC6 0x5D55 +0x8EA2BBC7 0x5D33 +0x8EA2BBC8 0x5D3A +0x8EA2BBC9 0x5D52 +0x8EA2BBCA 0x5D3D +0x8EA2BBCB 0x5D31 +0x8EA2BBCC 0x5D59 +0x8EA2BBCD 0x5D42 +0x8EA2BBCE 0x5D39 +0x8EA2BBCF 0x5D49 +0x8EA2BBD0 0x5D38 +0x8EA2BBD1 0x5D3C +0x8EA2BBD2 0x5D32 +0x8EA2BBD3 0x5D36 +0x8EA2BBD4 0x5D40 +0x8EA2BBD5 0x5D45 +0x8EA2BBD6 0x5E44 +0x8EA2BBD7 0x5E41 +0x8EA2BBD8 0x5F58 +0x8EA2BBD9 0x5FA6 +0x8EA2BBDA 0x5FA5 +0x8EA2BBDB 0x5FAB +0x8EA2BBDC 0x60C9 +0x8EA2BBDD 0x60B9 +0x8EA2BBDE 0x60CC +0x8EA2BBDF 0x60E2 +0x8EA2BBE0 0x60CE +0x8EA2BBE1 0x60C4 +0x8EA2BBE2 0x6114 +0x8EA2BBE3 0x60F2 +0x8EA2BBE4 0x610A +0x8EA2BBE5 0x6116 +0x8EA2BBE6 0x6105 +0x8EA2BBE7 0x60F5 +0x8EA2BBE8 0x6113 +0x8EA2BBE9 0x60F8 +0x8EA2BBEA 0x60FC +0x8EA2BBEB 0x60FE +0x8EA2BBEC 0x60C1 +0x8EA2BBED 0x6103 +0x8EA2BBEE 0x6118 +0x8EA2BBEF 0x611D +0x8EA2BBF0 0x6110 +0x8EA2BBF1 0x60FF +0x8EA2BBF2 0x6104 +0x8EA2BBF3 0x610B +0x8EA2BBF4 0x624A +0x8EA2BBF5 0x6394 +0x8EA2BBF6 0x63B1 +0x8EA2BBF7 0x63B0 +0x8EA2BBF8 0x63CE +0x8EA2BBF9 0x63E5 +0x8EA2BBFA 0x63E8 +0x8EA2BBFB 0x63EF +0x8EA2BBFC 0x63C3 +0x8EA2BBFD 0x649D +0x8EA2BBFE 0x63F3 +0x8EA2BCA1 0x63CA +0x8EA2BCA2 0x63E0 +0x8EA2BCA3 0x63F6 +0x8EA2BCA4 0x63D5 +0x8EA2BCA5 0x63F2 +0x8EA2BCA6 0x63F5 +0x8EA2BCA7 0x6461 +0x8EA2BCA8 0x63DF +0x8EA2BCA9 0x63BE +0x8EA2BCAA 0x63DD +0x8EA2BCAB 0x63DC +0x8EA2BCAC 0x63C4 +0x8EA2BCAD 0x63D8 +0x8EA2BCAE 0x63D3 +0x8EA2BCAF 0x63C2 +0x8EA2BCB0 0x63C7 +0x8EA2BCB1 0x63CC +0x8EA2BCB2 0x63CB +0x8EA2BCB3 0x63C8 +0x8EA2BCB4 0x63F0 +0x8EA2BCB5 0x63D7 +0x8EA2BCB6 0x63D9 +0x8EA2BCB7 0x6532 +0x8EA2BCB8 0x6567 +0x8EA2BCB9 0x656A +0x8EA2BCBA 0x6564 +0x8EA2BCBB 0x655C +0x8EA2BCBC 0x6568 +0x8EA2BCBD 0x6565 +0x8EA2BCBE 0x658C +0x8EA2BCBF 0x659D +0x8EA2BCC0 0x659E +0x8EA2BCC1 0x65AE +0x8EA2BCC2 0x65D0 +0x8EA2BCC3 0x65D2 +0x8EA2BCC4 0x667C +0x8EA2BCC5 0x666C +0x8EA2BCC6 0x667B +0x8EA2BCC7 0x6680 +0x8EA2BCC8 0x6671 +0x8EA2BCC9 0x6679 +0x8EA2BCCA 0x666A +0x8EA2BCCB 0x6672 +0x8EA2BCCC 0x6701 +0x8EA2BCCD 0x690C +0x8EA2BCCE 0x68D3 +0x8EA2BCCF 0x6904 +0x8EA2BCD0 0x68DC +0x8EA2BCD1 0x692A +0x8EA2BCD2 0x68EC +0x8EA2BCD3 0x68EA +0x8EA2BCD4 0x68F1 +0x8EA2BCD5 0x690F +0x8EA2BCD6 0x68D6 +0x8EA2BCD7 0x68F7 +0x8EA2BCD8 0x68EB +0x8EA2BCD9 0x68E4 +0x8EA2BCDA 0x68F6 +0x8EA2BCDB 0x6913 +0x8EA2BCDC 0x6910 +0x8EA2BCDD 0x68F3 +0x8EA2BCDE 0x68E1 +0x8EA2BCDF 0x6907 +0x8EA2BCE0 0x68CC +0x8EA2BCE1 0x6908 +0x8EA2BCE2 0x6970 +0x8EA2BCE3 0x68B4 +0x8EA2BCE4 0x6911 +0x8EA2BCE5 0x68EF +0x8EA2BCE6 0x68C6 +0x8EA2BCE7 0x6914 +0x8EA2BCE8 0x68F8 +0x8EA2BCE9 0x68D0 +0x8EA2BCEA 0x68FD +0x8EA2BCEB 0x68FC +0x8EA2BCEC 0x68E8 +0x8EA2BCED 0x690B +0x8EA2BCEE 0x690A +0x8EA2BCEF 0x6917 +0x8EA2BCF0 0x68CE +0x8EA2BCF1 0x68C8 +0x8EA2BCF2 0x68DD +0x8EA2BCF3 0x68DE +0x8EA2BCF4 0x68E6 +0x8EA2BCF5 0x68F4 +0x8EA2BCF6 0x68D1 +0x8EA2BCF7 0x6906 +0x8EA2BCF8 0x68D4 +0x8EA2BCF9 0x68E9 +0x8EA2BCFA 0x6915 +0x8EA2BCFB 0x6925 +0x8EA2BCFC 0x68C7 +0x8EA2BCFD 0x6B39 +0x8EA2BCFE 0x6B3B +0x8EA2BDA1 0x6B3F +0x8EA2BDA2 0x6B3C +0x8EA2BDA3 0x6B94 +0x8EA2BDA4 0x6B97 +0x8EA2BDA5 0x6B99 +0x8EA2BDA6 0x6B95 +0x8EA2BDA7 0x6BBD +0x8EA2BDA8 0x6BF0 +0x8EA2BDA9 0x6BF2 +0x8EA2BDAA 0x6BF3 +0x8EA2BDAB 0x6C30 +0x8EA2BDAC 0x6DFC +0x8EA2BDAD 0x6E46 +0x8EA2BDAE 0x6E47 +0x8EA2BDAF 0x6E1F +0x8EA2BDB0 0x6E49 +0x8EA2BDB1 0x6E88 +0x8EA2BDB2 0x6E3C +0x8EA2BDB3 0x6E3D +0x8EA2BDB4 0x6E45 +0x8EA2BDB5 0x6E62 +0x8EA2BDB6 0x6E2B +0x8EA2BDB7 0x6E3F +0x8EA2BDB8 0x6E41 +0x8EA2BDB9 0x6E5D +0x8EA2BDBA 0x6E73 +0x8EA2BDBB 0x6E1C +0x8EA2BDBC 0x6E33 +0x8EA2BDBD 0x6E4B +0x8EA2BDBE 0x6E40 +0x8EA2BDBF 0x6E51 +0x8EA2BDC0 0x6E3B +0x8EA2BDC1 0x6E03 +0x8EA2BDC2 0x6E2E +0x8EA2BDC3 0x6E5E +0x8EA2BDC4 0x6E68 +0x8EA2BDC5 0x6E5C +0x8EA2BDC6 0x6E61 +0x8EA2BDC7 0x6E31 +0x8EA2BDC8 0x6E28 +0x8EA2BDC9 0x6E60 +0x8EA2BDCA 0x6E71 +0x8EA2BDCB 0x6E6B +0x8EA2BDCC 0x6E39 +0x8EA2BDCD 0x6E22 +0x8EA2BDCE 0x6E30 +0x8EA2BDCF 0x6E53 +0x8EA2BDD0 0x6E65 +0x8EA2BDD1 0x6E27 +0x8EA2BDD2 0x6E78 +0x8EA2BDD3 0x6E64 +0x8EA2BDD4 0x6E77 +0x8EA2BDD5 0x6E55 +0x8EA2BDD6 0x6E79 +0x8EA2BDD7 0x6E52 +0x8EA2BDD8 0x6E66 +0x8EA2BDD9 0x6E35 +0x8EA2BDDA 0x6E36 +0x8EA2BDDB 0x6E5A +0x8EA2BDDC 0x7120 +0x8EA2BDDD 0x711E +0x8EA2BDDE 0x712F +0x8EA2BDDF 0x70FB +0x8EA2BDE0 0x712E +0x8EA2BDE1 0x7131 +0x8EA2BDE2 0x7123 +0x8EA2BDE3 0x7125 +0x8EA2BDE4 0x7122 +0x8EA2BDE5 0x7132 +0x8EA2BDE6 0x711F +0x8EA2BDE7 0x7128 +0x8EA2BDE8 0x713A +0x8EA2BDE9 0x711B +0x8EA2BDEA 0x724B +0x8EA2BDEB 0x725A +0x8EA2BDEC 0x7288 +0x8EA2BDED 0x7289 +0x8EA2BDEE 0x7286 +0x8EA2BDEF 0x7285 +0x8EA2BDF0 0x728B +0x8EA2BDF1 0x7312 +0x8EA2BDF2 0x730B +0x8EA2BDF3 0x7330 +0x8EA2BDF4 0x7322 +0x8EA2BDF5 0x7331 +0x8EA2BDF6 0x7333 +0x8EA2BDF7 0x7327 +0x8EA2BDF8 0x7332 +0x8EA2BDF9 0x732D +0x8EA2BDFA 0x7326 +0x8EA2BDFB 0x7323 +0x8EA2BDFC 0x7335 +0x8EA2BDFD 0x730C +0x8EA2BDFE 0x742E +0x8EA2BEA1 0x742C +0x8EA2BEA2 0x7430 +0x8EA2BEA3 0x742B +0x8EA2BEA4 0x7416 +0x8EA2BEA5 0x741A +0x8EA2BEA6 0x7421 +0x8EA2BEA7 0x742D +0x8EA2BEA8 0x7431 +0x8EA2BEA9 0x7424 +0x8EA2BEAA 0x7423 +0x8EA2BEAB 0x741D +0x8EA2BEAC 0x7429 +0x8EA2BEAD 0x7420 +0x8EA2BEAE 0x7432 +0x8EA2BEAF 0x74FB +0x8EA2BEB0 0x752F +0x8EA2BEB1 0x756F +0x8EA2BEB2 0x756C +0x8EA2BEB3 0x75E7 +0x8EA2BEB4 0x75DA +0x8EA2BEB5 0x75E1 +0x8EA2BEB6 0x75E6 +0x8EA2BEB7 0x75DD +0x8EA2BEB8 0x75DF +0x8EA2BEB9 0x75E4 +0x8EA2BEBA 0x75D7 +0x8EA2BEBB 0x7695 +0x8EA2BEBC 0x7692 +0x8EA2BEBD 0x76DA +0x8EA2BEBE 0x7746 +0x8EA2BEBF 0x7747 +0x8EA2BEC0 0x7744 +0x8EA2BEC1 0x774D +0x8EA2BEC2 0x7745 +0x8EA2BEC3 0x774A +0x8EA2BEC4 0x774E +0x8EA2BEC5 0x774B +0x8EA2BEC6 0x774C +0x8EA2BEC7 0x77DE +0x8EA2BEC8 0x77EC +0x8EA2BEC9 0x7860 +0x8EA2BECA 0x7864 +0x8EA2BECB 0x7865 +0x8EA2BECC 0x785C +0x8EA2BECD 0x786D +0x8EA2BECE 0x7871 +0x8EA2BECF 0x786A +0x8EA2BED0 0x786E +0x8EA2BED1 0x7870 +0x8EA2BED2 0x7869 +0x8EA2BED3 0x7868 +0x8EA2BED4 0x785E +0x8EA2BED5 0x7862 +0x8EA2BED6 0x7974 +0x8EA2BED7 0x7973 +0x8EA2BED8 0x7972 +0x8EA2BED9 0x7970 +0x8EA2BEDA 0x7A02 +0x8EA2BEDB 0x7A0A +0x8EA2BEDC 0x7A03 +0x8EA2BEDD 0x7A0C +0x8EA2BEDE 0x7A04 +0x8EA2BEDF 0x7A99 +0x8EA2BEE0 0x7AE6 +0x8EA2BEE1 0x7AE4 +0x8EA2BEE2 0x7B4A +0x8EA2BEE3 0x7B47 +0x8EA2BEE4 0x7B44 +0x8EA2BEE5 0x7B48 +0x8EA2BEE6 0x7B4C +0x8EA2BEE7 0x7B4E +0x8EA2BEE8 0x7B40 +0x8EA2BEE9 0x7B58 +0x8EA2BEEA 0x7B45 +0x8EA2BEEB 0x7CA2 +0x8EA2BEEC 0x7C9E +0x8EA2BEED 0x7CA8 +0x8EA2BEEE 0x7CA1 +0x8EA2BEEF 0x7D58 +0x8EA2BEF0 0x7D6F +0x8EA2BEF1 0x7D63 +0x8EA2BEF2 0x7D53 +0x8EA2BEF3 0x7D56 +0x8EA2BEF4 0x7D67 +0x8EA2BEF5 0x7D6A +0x8EA2BEF6 0x7D4F +0x8EA2BEF7 0x7D6D +0x8EA2BEF8 0x7D5C +0x8EA2BEF9 0x7D6B +0x8EA2BEFA 0x7D52 +0x8EA2BEFB 0x7D54 +0x8EA2BEFC 0x7D69 +0x8EA2BEFD 0x7D51 +0x8EA2BEFE 0x7D5F +0x8EA2BFA1 0x7D4E +0x8EA2BFA2 0x7F3E +0x8EA2BFA3 0x7F3F +0x8EA2BFA4 0x7F65 +0x8EA2BFA5 0x7F66 +0x8EA2BFA6 0x7FA2 +0x8EA2BFA7 0x7FA0 +0x8EA2BFA8 0x7FA1 +0x8EA2BFA9 0x7FD7 +0x8EA2BFAA 0x8051 +0x8EA2BFAB 0x804F +0x8EA2BFAC 0x8050 +0x8EA2BFAD 0x80FE +0x8EA2BFAE 0x80D4 +0x8EA2BFAF 0x8143 +0x8EA2BFB0 0x814A +0x8EA2BFB1 0x8152 +0x8EA2BFB2 0x814F +0x8EA2BFB3 0x8147 +0x8EA2BFB4 0x813D +0x8EA2BFB5 0x814D +0x8EA2BFB6 0x813A +0x8EA2BFB7 0x81E6 +0x8EA2BFB8 0x81EE +0x8EA2BFB9 0x81F7 +0x8EA2BFBA 0x81F8 +0x8EA2BFBB 0x81F9 +0x8EA2BFBC 0x8204 +0x8EA2BFBD 0x823C +0x8EA2BFBE 0x823D +0x8EA2BFBF 0x823F +0x8EA2BFC0 0x8275 +0x8EA2BFC1 0x833B +0x8EA2BFC2 0x83CF +0x8EA2BFC3 0x83F9 +0x8EA2BFC4 0x8423 +0x8EA2BFC5 0x83C0 +0x8EA2BFC6 0x83E8 +0x8EA2BFC7 0x8412 +0x8EA2BFC8 0x83E7 +0x8EA2BFC9 0x83E4 +0x8EA2BFCA 0x83FC +0x8EA2BFCB 0x83F6 +0x8EA2BFCC 0x8410 +0x8EA2BFCD 0x83C6 +0x8EA2BFCE 0x83C8 +0x8EA2BFCF 0x83EB +0x8EA2BFD0 0x83E3 +0x8EA2BFD1 0x83BF +0x8EA2BFD2 0x8401 +0x8EA2BFD3 0x83DD +0x8EA2BFD4 0x83E5 +0x8EA2BFD5 0x83D8 +0x8EA2BFD6 0x83FF +0x8EA2BFD7 0x83E1 +0x8EA2BFD8 0x83CB +0x8EA2BFD9 0x83CE +0x8EA2BFDA 0x83D6 +0x8EA2BFDB 0x83F5 +0x8EA2BFDC 0x83C9 +0x8EA2BFDD 0x8409 +0x8EA2BFDE 0x840F +0x8EA2BFDF 0x83DE +0x8EA2BFE0 0x8411 +0x8EA2BFE1 0x8406 +0x8EA2BFE2 0x83C2 +0x8EA2BFE3 0x83F3 +0x8EA2BFE4 0x83D5 +0x8EA2BFE5 0x83FA +0x8EA2BFE6 0x83C7 +0x8EA2BFE7 0x83D1 +0x8EA2BFE8 0x83EA +0x8EA2BFE9 0x8413 +0x8EA2BFEA 0x839A +0x8EA2BFEB 0x83C3 +0x8EA2BFEC 0x83EC +0x8EA2BFED 0x83EE +0x8EA2BFEE 0x83C4 +0x8EA2BFEF 0x83FB +0x8EA2BFF0 0x83D7 +0x8EA2BFF1 0x83E2 +0x8EA2BFF2 0x841B +0x8EA2BFF3 0x83DB +0x8EA2BFF4 0x83FE +0x8EA2BFF5 0x86D8 +0x8EA2BFF6 0x86E2 +0x8EA2BFF7 0x86E6 +0x8EA2BFF8 0x86D3 +0x8EA2BFF9 0x86E3 +0x8EA2BFFA 0x86DA +0x8EA2BFFB 0x86EA +0x8EA2BFFC 0x86DD +0x8EA2BFFD 0x86EB +0x8EA2BFFE 0x86DC +0x8EA2C0A1 0x86EC +0x8EA2C0A2 0x86E9 +0x8EA2C0A3 0x86D7 +0x8EA2C0A4 0x86E8 +0x8EA2C0A5 0x86D1 +0x8EA2C0A6 0x8848 +0x8EA2C0A7 0x8856 +0x8EA2C0A8 0x8855 +0x8EA2C0A9 0x88BA +0x8EA2C0AA 0x88D7 +0x8EA2C0AB 0x88B9 +0x8EA2C0AC 0x88B8 +0x8EA2C0AD 0x88C0 +0x8EA2C0AE 0x88BE +0x8EA2C0AF 0x88B6 +0x8EA2C0B0 0x88BC +0x8EA2C0B1 0x88B7 +0x8EA2C0B2 0x88BD +0x8EA2C0B3 0x88B2 +0x8EA2C0B4 0x8901 +0x8EA2C0B5 0x88C9 +0x8EA2C0B6 0x8995 +0x8EA2C0B7 0x8998 +0x8EA2C0B8 0x8997 +0x8EA2C0B9 0x89DD +0x8EA2C0BA 0x89DA +0x8EA2C0BB 0x89DB +0x8EA2C0BC 0x8A4E +0x8EA2C0BD 0x8A4D +0x8EA2C0BE 0x8A39 +0x8EA2C0BF 0x8A59 +0x8EA2C0C0 0x8A40 +0x8EA2C0C1 0x8A57 +0x8EA2C0C2 0x8A58 +0x8EA2C0C3 0x8A44 +0x8EA2C0C4 0x8A45 +0x8EA2C0C5 0x8A52 +0x8EA2C0C6 0x8A48 +0x8EA2C0C7 0x8A51 +0x8EA2C0C8 0x8A4A +0x8EA2C0C9 0x8A4C +0x8EA2C0CA 0x8A4F +0x8EA2C0CB 0x8C5F +0x8EA2C0CC 0x8C81 +0x8EA2C0CD 0x8C80 +0x8EA2C0CE 0x8CBA +0x8EA2C0CF 0x8CBE +0x8EA2C0D0 0x8CB0 +0x8EA2C0D1 0x8CB9 +0x8EA2C0D2 0x8CB5 +0x8EA2C0D3 0x8D84 +0x8EA2C0D4 0x8D80 +0x8EA2C0D5 0x8D89 +0x8EA2C0D6 0x8DD8 +0x8EA2C0D7 0x8DD3 +0x8EA2C0D8 0x8DCD +0x8EA2C0D9 0x8DC7 +0x8EA2C0DA 0x8DD6 +0x8EA2C0DB 0x8DDC +0x8EA2C0DC 0x8DCF +0x8EA2C0DD 0x8DD5 +0x8EA2C0DE 0x8DD9 +0x8EA2C0DF 0x8DC8 +0x8EA2C0E0 0x8DD7 +0x8EA2C0E1 0x8DC5 +0x8EA2C0E2 0x8EEF +0x8EA2C0E3 0x8EF7 +0x8EA2C0E4 0x8EFA +0x8EA2C0E5 0x8EF9 +0x8EA2C0E6 0x8EE6 +0x8EA2C0E7 0x8EEE +0x8EA2C0E8 0x8EE5 +0x8EA2C0E9 0x8EF5 +0x8EA2C0EA 0x8EE7 +0x8EA2C0EB 0x8EE8 +0x8EA2C0EC 0x8EF6 +0x8EA2C0ED 0x8EEB +0x8EA2C0EE 0x8EF1 +0x8EA2C0EF 0x8EEC +0x8EA2C0F0 0x8EF4 +0x8EA2C0F1 0x8EE9 +0x8EA2C0F2 0x902D +0x8EA2C0F3 0x9034 +0x8EA2C0F4 0x902F +0x8EA2C0F5 0x9106 +0x8EA2C0F6 0x912C +0x8EA2C0F7 0x9104 +0x8EA2C0F8 0x90FF +0x8EA2C0F9 0x90FC +0x8EA2C0FA 0x9108 +0x8EA2C0FB 0x90F9 +0x8EA2C0FC 0x90FB +0x8EA2C0FD 0x9101 +0x8EA2C0FE 0x9100 +0x8EA2C1A1 0x9107 +0x8EA2C1A2 0x9105 +0x8EA2C1A3 0x9103 +0x8EA2C1A4 0x9161 +0x8EA2C1A5 0x9164 +0x8EA2C1A6 0x915F +0x8EA2C1A7 0x9162 +0x8EA2C1A8 0x9160 +0x8EA2C1A9 0x9201 +0x8EA2C1AA 0x920A +0x8EA2C1AB 0x9225 +0x8EA2C1AC 0x9203 +0x8EA2C1AD 0x921A +0x8EA2C1AE 0x9226 +0x8EA2C1AF 0x920F +0x8EA2C1B0 0x920C +0x8EA2C1B1 0x9200 +0x8EA2C1B2 0x9212 +0x8EA2C1B3 0x91FF +0x8EA2C1B4 0x91FD +0x8EA2C1B5 0x9206 +0x8EA2C1B6 0x9204 +0x8EA2C1B7 0x9227 +0x8EA2C1B8 0x9202 +0x8EA2C1B9 0x921C +0x8EA2C1BA 0x9224 +0x8EA2C1BB 0x9219 +0x8EA2C1BC 0x9217 +0x8EA2C1BD 0x9205 +0x8EA2C1BE 0x9216 +0x8EA2C1BF 0x957B +0x8EA2C1C0 0x958D +0x8EA2C1C1 0x958C +0x8EA2C1C2 0x9590 +0x8EA2C1C3 0x9687 +0x8EA2C1C4 0x967E +0x8EA2C1C5 0x9688 +0x8EA2C1C6 0x9689 +0x8EA2C1C7 0x9683 +0x8EA2C1C8 0x9680 +0x8EA2C1C9 0x96C2 +0x8EA2C1CA 0x96C8 +0x8EA2C1CB 0x96C3 +0x8EA2C1CC 0x96F1 +0x8EA2C1CD 0x96F0 +0x8EA2C1CE 0x976C +0x8EA2C1CF 0x9770 +0x8EA2C1D0 0x976E +0x8EA2C1D1 0x9807 +0x8EA2C1D2 0x98A9 +0x8EA2C1D3 0x98EB +0x8EA2C1D4 0x9CE6 +0x8EA2C1D5 0x9EF9 +0x8EA2C1D6 0x4E83 +0x8EA2C1D7 0x4E84 +0x8EA2C1D8 0x4EB6 +0x8EA2C1D9 0x50BD +0x8EA2C1DA 0x50BF +0x8EA2C1DB 0x50C6 +0x8EA2C1DC 0x50AE +0x8EA2C1DD 0x50C4 +0x8EA2C1DE 0x50CA +0x8EA2C1DF 0x50B4 +0x8EA2C1E0 0x50C8 +0x8EA2C1E1 0x50C2 +0x8EA2C1E2 0x50B0 +0x8EA2C1E3 0x50C1 +0x8EA2C1E4 0x50BA +0x8EA2C1E5 0x50B1 +0x8EA2C1E6 0x50CB +0x8EA2C1E7 0x50C9 +0x8EA2C1E8 0x50B6 +0x8EA2C1E9 0x50B8 +0x8EA2C1EA 0x51D7 +0x8EA2C1EB 0x527A +0x8EA2C1EC 0x5278 +0x8EA2C1ED 0x527B +0x8EA2C1EE 0x527C +0x8EA2C1EF 0x55C3 +0x8EA2C1F0 0x55DB +0x8EA2C1F1 0x55CC +0x8EA2C1F2 0x55D0 +0x8EA2C1F3 0x55CB +0x8EA2C1F4 0x55CA +0x8EA2C1F5 0x55DD +0x8EA2C1F6 0x55C0 +0x8EA2C1F7 0x55D4 +0x8EA2C1F8 0x55C4 +0x8EA2C1F9 0x55E9 +0x8EA2C1FA 0x55BF +0x8EA2C1FB 0x55D2 +0x8EA2C1FC 0x558D +0x8EA2C1FD 0x55CF +0x8EA2C1FE 0x55D5 +0x8EA2C2A1 0x55E2 +0x8EA2C2A2 0x55D6 +0x8EA2C2A3 0x55C8 +0x8EA2C2A4 0x55F2 +0x8EA2C2A5 0x55CD +0x8EA2C2A6 0x55D9 +0x8EA2C2A7 0x55C2 +0x8EA2C2A8 0x5714 +0x8EA2C2A9 0x5853 +0x8EA2C2AA 0x5868 +0x8EA2C2AB 0x5864 +0x8EA2C2AC 0x584F +0x8EA2C2AD 0x584D +0x8EA2C2AE 0x5849 +0x8EA2C2AF 0x586F +0x8EA2C2B0 0x5855 +0x8EA2C2B1 0x584E +0x8EA2C2B2 0x585D +0x8EA2C2B3 0x5859 +0x8EA2C2B4 0x5865 +0x8EA2C2B5 0x585B +0x8EA2C2B6 0x583D +0x8EA2C2B7 0x5863 +0x8EA2C2B8 0x5871 +0x8EA2C2B9 0x58FC +0x8EA2C2BA 0x5AC7 +0x8EA2C2BB 0x5AC4 +0x8EA2C2BC 0x5ACB +0x8EA2C2BD 0x5ABA +0x8EA2C2BE 0x5AB8 +0x8EA2C2BF 0x5AB1 +0x8EA2C2C0 0x5AB5 +0x8EA2C2C1 0x5AB0 +0x8EA2C2C2 0x5ABF +0x8EA2C2C3 0x5AC8 +0x8EA2C2C4 0x5ABB +0x8EA2C2C5 0x5AC6 +0x8EA2C2C6 0x5AB7 +0x8EA2C2C7 0x5AC0 +0x8EA2C2C8 0x5ACA +0x8EA2C2C9 0x5AB4 +0x8EA2C2CA 0x5AB6 +0x8EA2C2CB 0x5ACD +0x8EA2C2CC 0x5AB9 +0x8EA2C2CD 0x5A90 +0x8EA2C2CE 0x5BD6 +0x8EA2C2CF 0x5BD8 +0x8EA2C2D0 0x5BD9 +0x8EA2C2D1 0x5C1F +0x8EA2C2D2 0x5C33 +0x8EA2C2D3 0x5D71 +0x8EA2C2D4 0x5D63 +0x8EA2C2D5 0x5D4A +0x8EA2C2D6 0x5D65 +0x8EA2C2D7 0x5D72 +0x8EA2C2D8 0x5D6C +0x8EA2C2D9 0x5D5E +0x8EA2C2DA 0x5D68 +0x8EA2C2DB 0x5D67 +0x8EA2C2DC 0x5D62 +0x8EA2C2DD 0x5DF0 +0x8EA2C2DE 0x5E4F +0x8EA2C2DF 0x5E4E +0x8EA2C2E0 0x5E4A +0x8EA2C2E1 0x5E4D +0x8EA2C2E2 0x5E4B +0x8EA2C2E3 0x5EC5 +0x8EA2C2E4 0x5ECC +0x8EA2C2E5 0x5EC6 +0x8EA2C2E6 0x5ECB +0x8EA2C2E7 0x5EC7 +0x8EA2C2E8 0x5F40 +0x8EA2C2E9 0x5FAF +0x8EA2C2EA 0x5FAD +0x8EA2C2EB 0x60F7 +0x8EA2C2EC 0x6149 +0x8EA2C2ED 0x614A +0x8EA2C2EE 0x612B +0x8EA2C2EF 0x6145 +0x8EA2C2F0 0x6136 +0x8EA2C2F1 0x6132 +0x8EA2C2F2 0x612E +0x8EA2C2F3 0x6146 +0x8EA2C2F4 0x612F +0x8EA2C2F5 0x614F +0x8EA2C2F6 0x6129 +0x8EA2C2F7 0x6140 +0x8EA2C2F8 0x6220 +0x8EA2C2F9 0x9168 +0x8EA2C2FA 0x6223 +0x8EA2C2FB 0x6225 +0x8EA2C2FC 0x6224 +0x8EA2C2FD 0x63C5 +0x8EA2C2FE 0x63F1 +0x8EA2C3A1 0x63EB +0x8EA2C3A2 0x6410 +0x8EA2C3A3 0x6412 +0x8EA2C3A4 0x6409 +0x8EA2C3A5 0x6420 +0x8EA2C3A6 0x6424 +0x8EA2C3A7 0x6433 +0x8EA2C3A8 0x6443 +0x8EA2C3A9 0x641F +0x8EA2C3AA 0x6415 +0x8EA2C3AB 0x6418 +0x8EA2C3AC 0x6439 +0x8EA2C3AD 0x6437 +0x8EA2C3AE 0x6422 +0x8EA2C3AF 0x6423 +0x8EA2C3B0 0x640C +0x8EA2C3B1 0x6426 +0x8EA2C3B2 0x6430 +0x8EA2C3B3 0x6428 +0x8EA2C3B4 0x6441 +0x8EA2C3B5 0x6435 +0x8EA2C3B6 0x642F +0x8EA2C3B7 0x640A +0x8EA2C3B8 0x641A +0x8EA2C3B9 0x6440 +0x8EA2C3BA 0x6425 +0x8EA2C3BB 0x6427 +0x8EA2C3BC 0x640B +0x8EA2C3BD 0x63E7 +0x8EA2C3BE 0x641B +0x8EA2C3BF 0x642E +0x8EA2C3C0 0x6421 +0x8EA2C3C1 0x640E +0x8EA2C3C2 0x656F +0x8EA2C3C3 0x6592 +0x8EA2C3C4 0x65D3 +0x8EA2C3C5 0x6686 +0x8EA2C3C6 0x668C +0x8EA2C3C7 0x6695 +0x8EA2C3C8 0x6690 +0x8EA2C3C9 0x668B +0x8EA2C3CA 0x668A +0x8EA2C3CB 0x6699 +0x8EA2C3CC 0x6694 +0x8EA2C3CD 0x6678 +0x8EA2C3CE 0x6720 +0x8EA2C3CF 0x6966 +0x8EA2C3D0 0x695F +0x8EA2C3D1 0x6938 +0x8EA2C3D2 0x694E +0x8EA2C3D3 0x6962 +0x8EA2C3D4 0x6971 +0x8EA2C3D5 0x693F +0x8EA2C3D6 0x6945 +0x8EA2C3D7 0x696A +0x8EA2C3D8 0x6939 +0x8EA2C3D9 0x6942 +0x8EA2C3DA 0x6957 +0x8EA2C3DB 0x6959 +0x8EA2C3DC 0x697A +0x8EA2C3DD 0x6948 +0x8EA2C3DE 0x6949 +0x8EA2C3DF 0x6935 +0x8EA2C3E0 0x696C +0x8EA2C3E1 0x6933 +0x8EA2C3E2 0x693D +0x8EA2C3E3 0x6965 +0x8EA2C3E4 0x68F0 +0x8EA2C3E5 0x6978 +0x8EA2C3E6 0x6934 +0x8EA2C3E7 0x6969 +0x8EA2C3E8 0x6940 +0x8EA2C3E9 0x696F +0x8EA2C3EA 0x6944 +0x8EA2C3EB 0x6976 +0x8EA2C3EC 0x6958 +0x8EA2C3ED 0x6941 +0x8EA2C3EE 0x6974 +0x8EA2C3EF 0x694C +0x8EA2C3F0 0x693B +0x8EA2C3F1 0x694B +0x8EA2C3F2 0x6937 +0x8EA2C3F3 0x695C +0x8EA2C3F4 0x694F +0x8EA2C3F5 0x6951 +0x8EA2C3F6 0x6932 +0x8EA2C3F7 0x6952 +0x8EA2C3F8 0x692F +0x8EA2C3F9 0x697B +0x8EA2C3FA 0x693C +0x8EA2C3FB 0x6B46 +0x8EA2C3FC 0x6B45 +0x8EA2C3FD 0x6B43 +0x8EA2C3FE 0x6B42 +0x8EA2C4A1 0x6B48 +0x8EA2C4A2 0x6B41 +0x8EA2C4A3 0x6B9B +0x8EA2C4A4 0x6BFB +0x8EA2C4A5 0x6BFC +0x8EA2C4A6 0x6BF9 +0x8EA2C4A7 0x6BF7 +0x8EA2C4A8 0x6BF8 +0x8EA2C4A9 0x6E9B +0x8EA2C4AA 0x6ED6 +0x8EA2C4AB 0x6EC8 +0x8EA2C4AC 0x6E8F +0x8EA2C4AD 0x6EC0 +0x8EA2C4AE 0x6E9F +0x8EA2C4AF 0x6E93 +0x8EA2C4B0 0x6E94 +0x8EA2C4B1 0x6EA0 +0x8EA2C4B2 0x6EB1 +0x8EA2C4B3 0x6EB9 +0x8EA2C4B4 0x6EC6 +0x8EA2C4B5 0x6ED2 +0x8EA2C4B6 0x6EBD +0x8EA2C4B7 0x6EC1 +0x8EA2C4B8 0x6E9E +0x8EA2C4B9 0x6EC9 +0x8EA2C4BA 0x6EB7 +0x8EA2C4BB 0x6EB0 +0x8EA2C4BC 0x6ECD +0x8EA2C4BD 0x6EA6 +0x8EA2C4BE 0x6ECF +0x8EA2C4BF 0x6EB2 +0x8EA2C4C0 0x6EBE +0x8EA2C4C1 0x6EC3 +0x8EA2C4C2 0x6EDC +0x8EA2C4C3 0x6ED8 +0x8EA2C4C4 0x6E99 +0x8EA2C4C5 0x6E92 +0x8EA2C4C6 0x6E8E +0x8EA2C4C7 0x6E8D +0x8EA2C4C8 0x6EA4 +0x8EA2C4C9 0x6EA1 +0x8EA2C4CA 0x6EBF +0x8EA2C4CB 0x6EB3 +0x8EA2C4CC 0x6ED0 +0x8EA2C4CD 0x6ECA +0x8EA2C4CE 0x6E97 +0x8EA2C4CF 0x6EAE +0x8EA2C4D0 0x6EA3 +0x8EA2C4D1 0x7147 +0x8EA2C4D2 0x7154 +0x8EA2C4D3 0x7152 +0x8EA2C4D4 0x7163 +0x8EA2C4D5 0x7160 +0x8EA2C4D6 0x7141 +0x8EA2C4D7 0x715D +0x8EA2C4D8 0x7162 +0x8EA2C4D9 0x7172 +0x8EA2C4DA 0x7178 +0x8EA2C4DB 0x716A +0x8EA2C4DC 0x7161 +0x8EA2C4DD 0x7142 +0x8EA2C4DE 0x7158 +0x8EA2C4DF 0x7143 +0x8EA2C4E0 0x714B +0x8EA2C4E1 0x7170 +0x8EA2C4E2 0x715F +0x8EA2C4E3 0x7150 +0x8EA2C4E4 0x7153 +0x8EA2C4E5 0x7144 +0x8EA2C4E6 0x714D +0x8EA2C4E7 0x715A +0x8EA2C4E8 0x724F +0x8EA2C4E9 0x728D +0x8EA2C4EA 0x728C +0x8EA2C4EB 0x7291 +0x8EA2C4EC 0x7290 +0x8EA2C4ED 0x728E +0x8EA2C4EE 0x733C +0x8EA2C4EF 0x7342 +0x8EA2C4F0 0x733B +0x8EA2C4F1 0x733A +0x8EA2C4F2 0x7340 +0x8EA2C4F3 0x734A +0x8EA2C4F4 0x7349 +0x8EA2C4F5 0x7444 +0x8EA2C4F6 0x744A +0x8EA2C4F7 0x744B +0x8EA2C4F8 0x7452 +0x8EA2C4F9 0x7451 +0x8EA2C4FA 0x7457 +0x8EA2C4FB 0x7440 +0x8EA2C4FC 0x744F +0x8EA2C4FD 0x7450 +0x8EA2C4FE 0x744E +0x8EA2C5A1 0x7442 +0x8EA2C5A2 0x7446 +0x8EA2C5A3 0x744D +0x8EA2C5A4 0x7454 +0x8EA2C5A5 0x74E1 +0x8EA2C5A6 0x74FF +0x8EA2C5A7 0x74FE +0x8EA2C5A8 0x74FD +0x8EA2C5A9 0x751D +0x8EA2C5AA 0x7579 +0x8EA2C5AB 0x7577 +0x8EA2C5AC 0x6983 +0x8EA2C5AD 0x75EF +0x8EA2C5AE 0x760F +0x8EA2C5AF 0x7603 +0x8EA2C5B0 0x75F7 +0x8EA2C5B1 0x75FE +0x8EA2C5B2 0x75FC +0x8EA2C5B3 0x75F9 +0x8EA2C5B4 0x75F8 +0x8EA2C5B5 0x7610 +0x8EA2C5B6 0x75FB +0x8EA2C5B7 0x75F6 +0x8EA2C5B8 0x75ED +0x8EA2C5B9 0x75F5 +0x8EA2C5BA 0x75FD +0x8EA2C5BB 0x7699 +0x8EA2C5BC 0x76B5 +0x8EA2C5BD 0x76DD +0x8EA2C5BE 0x7755 +0x8EA2C5BF 0x775F +0x8EA2C5C0 0x7760 +0x8EA2C5C1 0x7752 +0x8EA2C5C2 0x7756 +0x8EA2C5C3 0x775A +0x8EA2C5C4 0x7769 +0x8EA2C5C5 0x7767 +0x8EA2C5C6 0x7754 +0x8EA2C5C7 0x7759 +0x8EA2C5C8 0x776D +0x8EA2C5C9 0x77E0 +0x8EA2C5CA 0x7887 +0x8EA2C5CB 0x789A +0x8EA2C5CC 0x7894 +0x8EA2C5CD 0x788F +0x8EA2C5CE 0x7884 +0x8EA2C5CF 0x7895 +0x8EA2C5D0 0x7885 +0x8EA2C5D1 0x7886 +0x8EA2C5D2 0x78A1 +0x8EA2C5D3 0x7883 +0x8EA2C5D4 0x7879 +0x8EA2C5D5 0x7899 +0x8EA2C5D6 0x7880 +0x8EA2C5D7 0x7896 +0x8EA2C5D8 0x787B +0x8EA2C5D9 0x797C +0x8EA2C5DA 0x7982 +0x8EA2C5DB 0x797D +0x8EA2C5DC 0x7979 +0x8EA2C5DD 0x7A11 +0x8EA2C5DE 0x7A18 +0x8EA2C5DF 0x7A19 +0x8EA2C5E0 0x7A12 +0x8EA2C5E1 0x7A17 +0x8EA2C5E2 0x7A15 +0x8EA2C5E3 0x7A22 +0x8EA2C5E4 0x7A13 +0x8EA2C5E5 0x7A1B +0x8EA2C5E6 0x7A10 +0x8EA2C5E7 0x7AA3 +0x8EA2C5E8 0x7AA2 +0x8EA2C5E9 0x7A9E +0x8EA2C5EA 0x7AEB +0x8EA2C5EB 0x7B66 +0x8EA2C5EC 0x7B64 +0x8EA2C5ED 0x7B6D +0x8EA2C5EE 0x7B74 +0x8EA2C5EF 0x7B69 +0x8EA2C5F0 0x7B72 +0x8EA2C5F1 0x7B65 +0x8EA2C5F2 0x7B73 +0x8EA2C5F3 0x7B71 +0x8EA2C5F4 0x7B70 +0x8EA2C5F5 0x7B61 +0x8EA2C5F6 0x7B78 +0x8EA2C5F7 0x7B76 +0x8EA2C5F8 0x7B63 +0x8EA2C5F9 0x7CB2 +0x8EA2C5FA 0x7CB4 +0x8EA2C5FB 0x7CAF +0x8EA2C5FC 0x7D88 +0x8EA2C5FD 0x7D86 +0x8EA2C5FE 0x7D80 +0x8EA2C6A1 0x7D8D +0x8EA2C6A2 0x7D7F +0x8EA2C6A3 0x7D85 +0x8EA2C6A4 0x7D7A +0x8EA2C6A5 0x7D8E +0x8EA2C6A6 0x7D7B +0x8EA2C6A7 0x7D83 +0x8EA2C6A8 0x7D7C +0x8EA2C6A9 0x7D8C +0x8EA2C6AA 0x7D94 +0x8EA2C6AB 0x7D84 +0x8EA2C6AC 0x7D7D +0x8EA2C6AD 0x7D92 +0x8EA2C6AE 0x7F6D +0x8EA2C6AF 0x7F6B +0x8EA2C6B0 0x7F67 +0x8EA2C6B1 0x7F68 +0x8EA2C6B2 0x7F6C +0x8EA2C6B3 0x7FA6 +0x8EA2C6B4 0x7FA5 +0x8EA2C6B5 0x7FA7 +0x8EA2C6B6 0x7FDB +0x8EA2C6B7 0x7FDC +0x8EA2C6B8 0x8021 +0x8EA2C6B9 0x8164 +0x8EA2C6BA 0x8160 +0x8EA2C6BB 0x8177 +0x8EA2C6BC 0x815C +0x8EA2C6BD 0x8169 +0x8EA2C6BE 0x815B +0x8EA2C6BF 0x8162 +0x8EA2C6C0 0x8172 +0x8EA2C6C1 0x6721 +0x8EA2C6C2 0x815E +0x8EA2C6C3 0x8176 +0x8EA2C6C4 0x8167 +0x8EA2C6C5 0x816F +0x8EA2C6C6 0x8144 +0x8EA2C6C7 0x8161 +0x8EA2C6C8 0x821D +0x8EA2C6C9 0x8249 +0x8EA2C6CA 0x8244 +0x8EA2C6CB 0x8240 +0x8EA2C6CC 0x8242 +0x8EA2C6CD 0x8245 +0x8EA2C6CE 0x84F1 +0x8EA2C6CF 0x843F +0x8EA2C6D0 0x8456 +0x8EA2C6D1 0x8476 +0x8EA2C6D2 0x8479 +0x8EA2C6D3 0x848F +0x8EA2C6D4 0x848D +0x8EA2C6D5 0x8465 +0x8EA2C6D6 0x8451 +0x8EA2C6D7 0x8440 +0x8EA2C6D8 0x8486 +0x8EA2C6D9 0x8467 +0x8EA2C6DA 0x8430 +0x8EA2C6DB 0x844D +0x8EA2C6DC 0x847D +0x8EA2C6DD 0x845A +0x8EA2C6DE 0x8459 +0x8EA2C6DF 0x8474 +0x8EA2C6E0 0x8473 +0x8EA2C6E1 0x845D +0x8EA2C6E2 0x8507 +0x8EA2C6E3 0x845E +0x8EA2C6E4 0x8437 +0x8EA2C6E5 0x843A +0x8EA2C6E6 0x8434 +0x8EA2C6E7 0x847A +0x8EA2C6E8 0x8443 +0x8EA2C6E9 0x8478 +0x8EA2C6EA 0x8432 +0x8EA2C6EB 0x8445 +0x8EA2C6EC 0x8429 +0x8EA2C6ED 0x83D9 +0x8EA2C6EE 0x844B +0x8EA2C6EF 0x842F +0x8EA2C6F0 0x8442 +0x8EA2C6F1 0x842D +0x8EA2C6F2 0x845F +0x8EA2C6F3 0x8470 +0x8EA2C6F4 0x8439 +0x8EA2C6F5 0x844E +0x8EA2C6F6 0x844C +0x8EA2C6F7 0x8452 +0x8EA2C6F8 0x846F +0x8EA2C6F9 0x84C5 +0x8EA2C6FA 0x848E +0x8EA2C6FB 0x843B +0x8EA2C6FC 0x8447 +0x8EA2C6FD 0x8436 +0x8EA2C6FE 0x8433 +0x8EA2C7A1 0x8468 +0x8EA2C7A2 0x847E +0x8EA2C7A3 0x8444 +0x8EA2C7A4 0x842B +0x8EA2C7A5 0x8460 +0x8EA2C7A6 0x8454 +0x8EA2C7A7 0x846E +0x8EA2C7A8 0x8450 +0x8EA2C7A9 0x870B +0x8EA2C7AA 0x8704 +0x8EA2C7AB 0x86F7 +0x8EA2C7AC 0x870C +0x8EA2C7AD 0x86FA +0x8EA2C7AE 0x86D6 +0x8EA2C7AF 0x86F5 +0x8EA2C7B0 0x874D +0x8EA2C7B1 0x86F8 +0x8EA2C7B2 0x870E +0x8EA2C7B3 0x8709 +0x8EA2C7B4 0x8701 +0x8EA2C7B5 0x86F6 +0x8EA2C7B6 0x870D +0x8EA2C7B7 0x8705 +0x8EA2C7B8 0x88D6 +0x8EA2C7B9 0x88CB +0x8EA2C7BA 0x88CD +0x8EA2C7BB 0x88CE +0x8EA2C7BC 0x88DE +0x8EA2C7BD 0x88DB +0x8EA2C7BE 0x88DA +0x8EA2C7BF 0x88CC +0x8EA2C7C0 0x88D0 +0x8EA2C7C1 0x8985 +0x8EA2C7C2 0x899B +0x8EA2C7C3 0x89DF +0x8EA2C7C4 0x89E5 +0x8EA2C7C5 0x89E4 +0x8EA2C7C6 0x89E1 +0x8EA2C7C7 0x89E0 +0x8EA2C7C8 0x89E2 +0x8EA2C7C9 0x89DC +0x8EA2C7CA 0x89E6 +0x8EA2C7CB 0x8A76 +0x8EA2C7CC 0x8A86 +0x8EA2C7CD 0x8A7F +0x8EA2C7CE 0x8A61 +0x8EA2C7CF 0x8A3F +0x8EA2C7D0 0x8A77 +0x8EA2C7D1 0x8A82 +0x8EA2C7D2 0x8A84 +0x8EA2C7D3 0x8A75 +0x8EA2C7D4 0x8A83 +0x8EA2C7D5 0x8A81 +0x8EA2C7D6 0x8A74 +0x8EA2C7D7 0x8A7A +0x8EA2C7D8 0x8C3C +0x8EA2C7D9 0x8C4B +0x8EA2C7DA 0x8C4A +0x8EA2C7DB 0x8C65 +0x8EA2C7DC 0x8C64 +0x8EA2C7DD 0x8C66 +0x8EA2C7DE 0x8C86 +0x8EA2C7DF 0x8C84 +0x8EA2C7E0 0x8C85 +0x8EA2C7E1 0x8CCC +0x8EA2C7E2 0x8D68 +0x8EA2C7E3 0x8D69 +0x8EA2C7E4 0x8D91 +0x8EA2C7E5 0x8D8C +0x8EA2C7E6 0x8D8E +0x8EA2C7E7 0x8D8F +0x8EA2C7E8 0x8D8D +0x8EA2C7E9 0x8D93 +0x8EA2C7EA 0x8D94 +0x8EA2C7EB 0x8D90 +0x8EA2C7EC 0x8D92 +0x8EA2C7ED 0x8DF0 +0x8EA2C7EE 0x8DE0 +0x8EA2C7EF 0x8DEC +0x8EA2C7F0 0x8DF1 +0x8EA2C7F1 0x8DEE +0x8EA2C7F2 0x8DD0 +0x8EA2C7F3 0x8DE9 +0x8EA2C7F4 0x8DE3 +0x8EA2C7F5 0x8DE2 +0x8EA2C7F6 0x8DE7 +0x8EA2C7F7 0x8DF2 +0x8EA2C7F8 0x8DEB +0x8EA2C7F9 0x8DF4 +0x8EA2C7FA 0x8F06 +0x8EA2C7FB 0x8EFF +0x8EA2C7FC 0x8F01 +0x8EA2C7FD 0x8F00 +0x8EA2C7FE 0x8F05 +0x8EA2C8A1 0x8F07 +0x8EA2C8A2 0x8F08 +0x8EA2C8A3 0x8F02 +0x8EA2C8A4 0x8F0B +0x8EA2C8A5 0x9052 +0x8EA2C8A6 0x903F +0x8EA2C8A7 0x9044 +0x8EA2C8A8 0x9049 +0x8EA2C8A9 0x903D +0x8EA2C8AA 0x9110 +0x8EA2C8AB 0x910D +0x8EA2C8AC 0x910F +0x8EA2C8AD 0x9111 +0x8EA2C8AE 0x9116 +0x8EA2C8AF 0x9114 +0x8EA2C8B0 0x910B +0x8EA2C8B1 0x910E +0x8EA2C8B2 0x916E +0x8EA2C8B3 0x916F +0x8EA2C8B4 0x9248 +0x8EA2C8B5 0x9252 +0x8EA2C8B6 0x9230 +0x8EA2C8B7 0x923A +0x8EA2C8B8 0x9266 +0x8EA2C8B9 0x9233 +0x8EA2C8BA 0x9265 +0x8EA2C8BB 0x925E +0x8EA2C8BC 0x9283 +0x8EA2C8BD 0x922E +0x8EA2C8BE 0x924A +0x8EA2C8BF 0x9246 +0x8EA2C8C0 0x926D +0x8EA2C8C1 0x926C +0x8EA2C8C2 0x924F +0x8EA2C8C3 0x9260 +0x8EA2C8C4 0x9267 +0x8EA2C8C5 0x926F +0x8EA2C8C6 0x9236 +0x8EA2C8C7 0x9261 +0x8EA2C8C8 0x9270 +0x8EA2C8C9 0x9231 +0x8EA2C8CA 0x9254 +0x8EA2C8CB 0x9263 +0x8EA2C8CC 0x9250 +0x8EA2C8CD 0x9272 +0x8EA2C8CE 0x924E +0x8EA2C8CF 0x9253 +0x8EA2C8D0 0x924C +0x8EA2C8D1 0x9256 +0x8EA2C8D2 0x9232 +0x8EA2C8D3 0x959F +0x8EA2C8D4 0x959C +0x8EA2C8D5 0x959E +0x8EA2C8D6 0x959B +0x8EA2C8D7 0x9692 +0x8EA2C8D8 0x9693 +0x8EA2C8D9 0x9691 +0x8EA2C8DA 0x9697 +0x8EA2C8DB 0x96CE +0x8EA2C8DC 0x96FA +0x8EA2C8DD 0x96FD +0x8EA2C8DE 0x96F8 +0x8EA2C8DF 0x96F5 +0x8EA2C8E0 0x9773 +0x8EA2C8E1 0x9777 +0x8EA2C8E2 0x9778 +0x8EA2C8E3 0x9772 +0x8EA2C8E4 0x980F +0x8EA2C8E5 0x980D +0x8EA2C8E6 0x980E +0x8EA2C8E7 0x98AC +0x8EA2C8E8 0x98F6 +0x8EA2C8E9 0x98F9 +0x8EA2C8EA 0x99AF +0x8EA2C8EB 0x99B2 +0x8EA2C8EC 0x99B0 +0x8EA2C8ED 0x99B5 +0x8EA2C8EE 0x9AAD +0x8EA2C8EF 0x9AAB +0x8EA2C8F0 0x9B5B +0x8EA2C8F1 0x9CEA +0x8EA2C8F2 0x9CED +0x8EA2C8F3 0x9CE7 +0x8EA2C8F4 0x9E80 +0x8EA2C8F5 0x9EFD +0x8EA2C8F6 0x50E6 +0x8EA2C8F7 0x50D4 +0x8EA2C8F8 0x50D7 +0x8EA2C8F9 0x50E8 +0x8EA2C8FA 0x50F3 +0x8EA2C8FB 0x50DB +0x8EA2C8FC 0x50EA +0x8EA2C8FD 0x50DD +0x8EA2C8FE 0x50E4 +0x8EA2C9A1 0x50D3 +0x8EA2C9A2 0x50EC +0x8EA2C9A3 0x50F0 +0x8EA2C9A4 0x50EF +0x8EA2C9A5 0x50E3 +0x8EA2C9A6 0x50E0 +0x8EA2C9A7 0x51D8 +0x8EA2C9A8 0x5280 +0x8EA2C9A9 0x5281 +0x8EA2C9AA 0x52E9 +0x8EA2C9AB 0x52EB +0x8EA2C9AC 0x5330 +0x8EA2C9AD 0x53AC +0x8EA2C9AE 0x5627 +0x8EA2C9AF 0x5615 +0x8EA2C9B0 0x560C +0x8EA2C9B1 0x5612 +0x8EA2C9B2 0x55FC +0x8EA2C9B3 0x560F +0x8EA2C9B4 0x561C +0x8EA2C9B5 0x5601 +0x8EA2C9B6 0x5613 +0x8EA2C9B7 0x5602 +0x8EA2C9B8 0x55FA +0x8EA2C9B9 0x561D +0x8EA2C9BA 0x5604 +0x8EA2C9BB 0x55FF +0x8EA2C9BC 0x55F9 +0x8EA2C9BD 0x5889 +0x8EA2C9BE 0x587C +0x8EA2C9BF 0x5890 +0x8EA2C9C0 0x5898 +0x8EA2C9C1 0x5886 +0x8EA2C9C2 0x5881 +0x8EA2C9C3 0x587F +0x8EA2C9C4 0x5874 +0x8EA2C9C5 0x588B +0x8EA2C9C6 0x587A +0x8EA2C9C7 0x5887 +0x8EA2C9C8 0x5891 +0x8EA2C9C9 0x588E +0x8EA2C9CA 0x5876 +0x8EA2C9CB 0x5882 +0x8EA2C9CC 0x5888 +0x8EA2C9CD 0x587B +0x8EA2C9CE 0x5894 +0x8EA2C9CF 0x588F +0x8EA2C9D0 0x58FE +0x8EA2C9D1 0x596B +0x8EA2C9D2 0x5ADC +0x8EA2C9D3 0x5AEE +0x8EA2C9D4 0x5AE5 +0x8EA2C9D5 0x5AD5 +0x8EA2C9D6 0x5AEA +0x8EA2C9D7 0x5ADA +0x8EA2C9D8 0x5AED +0x8EA2C9D9 0x5AEB +0x8EA2C9DA 0x5AF3 +0x8EA2C9DB 0x5AE2 +0x8EA2C9DC 0x5AE0 +0x8EA2C9DD 0x5ADB +0x8EA2C9DE 0x5AEC +0x8EA2C9DF 0x5ADE +0x8EA2C9E0 0x5ADD +0x8EA2C9E1 0x5AD9 +0x8EA2C9E2 0x5AE8 +0x8EA2C9E3 0x5ADF +0x8EA2C9E4 0x5B77 +0x8EA2C9E5 0x5BE0 +0x8EA2C9E6 0x5BE3 +0x8EA2C9E7 0x5C63 +0x8EA2C9E8 0x5D82 +0x8EA2C9E9 0x5D80 +0x8EA2C9EA 0x5D7D +0x8EA2C9EB 0x5D86 +0x8EA2C9EC 0x5D7A +0x8EA2C9ED 0x5D81 +0x8EA2C9EE 0x5D77 +0x8EA2C9EF 0x5D8A +0x8EA2C9F0 0x5D89 +0x8EA2C9F1 0x5D88 +0x8EA2C9F2 0x5D7E +0x8EA2C9F3 0x5D7C +0x8EA2C9F4 0x5D8D +0x8EA2C9F5 0x5D79 +0x8EA2C9F6 0x5D7F +0x8EA2C9F7 0x5E58 +0x8EA2C9F8 0x5E59 +0x8EA2C9F9 0x5E53 +0x8EA2C9FA 0x5ED8 +0x8EA2C9FB 0x5ED1 +0x8EA2C9FC 0x5ED7 +0x8EA2C9FD 0x5ECE +0x8EA2C9FE 0x5EDC +0x8EA2CAA1 0x5ED5 +0x8EA2CAA2 0x5ED9 +0x8EA2CAA3 0x5ED2 +0x8EA2CAA4 0x5ED4 +0x8EA2CAA5 0x5F44 +0x8EA2CAA6 0x5F43 +0x8EA2CAA7 0x5F6F +0x8EA2CAA8 0x5FB6 +0x8EA2CAA9 0x612C +0x8EA2CAAA 0x6128 +0x8EA2CAAB 0x6141 +0x8EA2CAAC 0x615E +0x8EA2CAAD 0x6171 +0x8EA2CAAE 0x6173 +0x8EA2CAAF 0x6152 +0x8EA2CAB0 0x6153 +0x8EA2CAB1 0x6172 +0x8EA2CAB2 0x616C +0x8EA2CAB3 0x6180 +0x8EA2CAB4 0x6174 +0x8EA2CAB5 0x6154 +0x8EA2CAB6 0x617A +0x8EA2CAB7 0x615B +0x8EA2CAB8 0x6165 +0x8EA2CAB9 0x613B +0x8EA2CABA 0x616A +0x8EA2CABB 0x6161 +0x8EA2CABC 0x6156 +0x8EA2CABD 0x6229 +0x8EA2CABE 0x6227 +0x8EA2CABF 0x622B +0x8EA2CAC0 0x642B +0x8EA2CAC1 0x644D +0x8EA2CAC2 0x645B +0x8EA2CAC3 0x645D +0x8EA2CAC4 0x6474 +0x8EA2CAC5 0x6476 +0x8EA2CAC6 0x6472 +0x8EA2CAC7 0x6473 +0x8EA2CAC8 0x647D +0x8EA2CAC9 0x6475 +0x8EA2CACA 0x6466 +0x8EA2CACB 0x64A6 +0x8EA2CACC 0x644E +0x8EA2CACD 0x6482 +0x8EA2CACE 0x645E +0x8EA2CACF 0x645C +0x8EA2CAD0 0x644B +0x8EA2CAD1 0x6453 +0x8EA2CAD2 0x6460 +0x8EA2CAD3 0x6450 +0x8EA2CAD4 0x647F +0x8EA2CAD5 0x643F +0x8EA2CAD6 0x646C +0x8EA2CAD7 0x646B +0x8EA2CAD8 0x6459 +0x8EA2CAD9 0x6465 +0x8EA2CADA 0x6477 +0x8EA2CADB 0x6573 +0x8EA2CADC 0x65A0 +0x8EA2CADD 0x66A1 +0x8EA2CADE 0x66A0 +0x8EA2CADF 0x669F +0x8EA2CAE0 0x6705 +0x8EA2CAE1 0x6704 +0x8EA2CAE2 0x6722 +0x8EA2CAE3 0x69B1 +0x8EA2CAE4 0x69B6 +0x8EA2CAE5 0x69C9 +0x8EA2CAE6 0x69A0 +0x8EA2CAE7 0x69CE +0x8EA2CAE8 0x6996 +0x8EA2CAE9 0x69B0 +0x8EA2CAEA 0x69AC +0x8EA2CAEB 0x69BC +0x8EA2CAEC 0x6991 +0x8EA2CAED 0x6999 +0x8EA2CAEE 0x698E +0x8EA2CAEF 0x69A7 +0x8EA2CAF0 0x698D +0x8EA2CAF1 0x69A9 +0x8EA2CAF2 0x69BE +0x8EA2CAF3 0x69AF +0x8EA2CAF4 0x69BF +0x8EA2CAF5 0x69C4 +0x8EA2CAF6 0x69BD +0x8EA2CAF7 0x69A4 +0x8EA2CAF8 0x69D4 +0x8EA2CAF9 0x69B9 +0x8EA2CAFA 0x69CA +0x8EA2CAFB 0x699A +0x8EA2CAFC 0x69CF +0x8EA2CAFD 0x69B3 +0x8EA2CAFE 0x6993 +0x8EA2CBA1 0x69AA +0x8EA2CBA2 0x69A1 +0x8EA2CBA3 0x699E +0x8EA2CBA4 0x69D9 +0x8EA2CBA5 0x6997 +0x8EA2CBA6 0x6990 +0x8EA2CBA7 0x69C2 +0x8EA2CBA8 0x69B5 +0x8EA2CBA9 0x69A5 +0x8EA2CBAA 0x69C6 +0x8EA2CBAB 0x6B4A +0x8EA2CBAC 0x6B4D +0x8EA2CBAD 0x6B4B +0x8EA2CBAE 0x6B9E +0x8EA2CBAF 0x6B9F +0x8EA2CBB0 0x6BA0 +0x8EA2CBB1 0x6BC3 +0x8EA2CBB2 0x6BC4 +0x8EA2CBB3 0x6BFE +0x8EA2CBB4 0x6ECE +0x8EA2CBB5 0x6EF5 +0x8EA2CBB6 0x6EF1 +0x8EA2CBB7 0x6F03 +0x8EA2CBB8 0x6F25 +0x8EA2CBB9 0x6EF8 +0x8EA2CBBA 0x6F37 +0x8EA2CBBB 0x6EFB +0x8EA2CBBC 0x6F2E +0x8EA2CBBD 0x6F09 +0x8EA2CBBE 0x6F4E +0x8EA2CBBF 0x6F19 +0x8EA2CBC0 0x6F1A +0x8EA2CBC1 0x6F27 +0x8EA2CBC2 0x6F18 +0x8EA2CBC3 0x6F3B +0x8EA2CBC4 0x6F12 +0x8EA2CBC5 0x6EED +0x8EA2CBC6 0x6F0A +0x8EA2CBC7 0x6F36 +0x8EA2CBC8 0x6F73 +0x8EA2CBC9 0x6EF9 +0x8EA2CBCA 0x6EEE +0x8EA2CBCB 0x6F2D +0x8EA2CBCC 0x6F40 +0x8EA2CBCD 0x6F30 +0x8EA2CBCE 0x6F3C +0x8EA2CBCF 0x6F35 +0x8EA2CBD0 0x6EEB +0x8EA2CBD1 0x6F07 +0x8EA2CBD2 0x6F0E +0x8EA2CBD3 0x6F43 +0x8EA2CBD4 0x6F05 +0x8EA2CBD5 0x6EFD +0x8EA2CBD6 0x6EF6 +0x8EA2CBD7 0x6F39 +0x8EA2CBD8 0x6F1C +0x8EA2CBD9 0x6EFC +0x8EA2CBDA 0x6F3A +0x8EA2CBDB 0x6F1F +0x8EA2CBDC 0x6F0D +0x8EA2CBDD 0x6F1E +0x8EA2CBDE 0x6F08 +0x8EA2CBDF 0x6F21 +0x8EA2CBE0 0x7187 +0x8EA2CBE1 0x7190 +0x8EA2CBE2 0x7189 +0x8EA2CBE3 0x7180 +0x8EA2CBE4 0x7185 +0x8EA2CBE5 0x7182 +0x8EA2CBE6 0x718F +0x8EA2CBE7 0x717B +0x8EA2CBE8 0x7186 +0x8EA2CBE9 0x7181 +0x8EA2CBEA 0x7197 +0x8EA2CBEB 0x7244 +0x8EA2CBEC 0x7253 +0x8EA2CBED 0x7297 +0x8EA2CBEE 0x7295 +0x8EA2CBEF 0x7293 +0x8EA2CBF0 0x7343 +0x8EA2CBF1 0x734D +0x8EA2CBF2 0x7351 +0x8EA2CBF3 0x734C +0x8EA2CBF4 0x7462 +0x8EA2CBF5 0x7473 +0x8EA2CBF6 0x7471 +0x8EA2CBF7 0x7475 +0x8EA2CBF8 0x7472 +0x8EA2CBF9 0x7467 +0x8EA2CBFA 0x746E +0x8EA2CBFB 0x7500 +0x8EA2CBFC 0x7502 +0x8EA2CBFD 0x7503 +0x8EA2CBFE 0x757D +0x8EA2CCA1 0x7590 +0x8EA2CCA2 0x7616 +0x8EA2CCA3 0x7608 +0x8EA2CCA4 0x760C +0x8EA2CCA5 0x7615 +0x8EA2CCA6 0x7611 +0x8EA2CCA7 0x760A +0x8EA2CCA8 0x7614 +0x8EA2CCA9 0x76B8 +0x8EA2CCAA 0x7781 +0x8EA2CCAB 0x777C +0x8EA2CCAC 0x7785 +0x8EA2CCAD 0x7782 +0x8EA2CCAE 0x776E +0x8EA2CCAF 0x7780 +0x8EA2CCB0 0x776F +0x8EA2CCB1 0x777E +0x8EA2CCB2 0x7783 +0x8EA2CCB3 0x78B2 +0x8EA2CCB4 0x78AA +0x8EA2CCB5 0x78B4 +0x8EA2CCB6 0x78AD +0x8EA2CCB7 0x78A8 +0x8EA2CCB8 0x787E +0x8EA2CCB9 0x78AB +0x8EA2CCBA 0x789E +0x8EA2CCBB 0x78A5 +0x8EA2CCBC 0x78A0 +0x8EA2CCBD 0x78AC +0x8EA2CCBE 0x78A2 +0x8EA2CCBF 0x78A4 +0x8EA2CCC0 0x7998 +0x8EA2CCC1 0x798A +0x8EA2CCC2 0x798B +0x8EA2CCC3 0x7996 +0x8EA2CCC4 0x7995 +0x8EA2CCC5 0x7994 +0x8EA2CCC6 0x7993 +0x8EA2CCC7 0x7997 +0x8EA2CCC8 0x7988 +0x8EA2CCC9 0x7992 +0x8EA2CCCA 0x7990 +0x8EA2CCCB 0x7A2B +0x8EA2CCCC 0x7A4A +0x8EA2CCCD 0x7A30 +0x8EA2CCCE 0x7A2F +0x8EA2CCCF 0x7A28 +0x8EA2CCD0 0x7A26 +0x8EA2CCD1 0x7AA8 +0x8EA2CCD2 0x7AAB +0x8EA2CCD3 0x7AAC +0x8EA2CCD4 0x7AEE +0x8EA2CCD5 0x7B88 +0x8EA2CCD6 0x7B9C +0x8EA2CCD7 0x7B8A +0x8EA2CCD8 0x7B91 +0x8EA2CCD9 0x7B90 +0x8EA2CCDA 0x7B96 +0x8EA2CCDB 0x7B8D +0x8EA2CCDC 0x7B8C +0x8EA2CCDD 0x7B9B +0x8EA2CCDE 0x7B8E +0x8EA2CCDF 0x7B85 +0x8EA2CCE0 0x7B98 +0x8EA2CCE1 0x5284 +0x8EA2CCE2 0x7B99 +0x8EA2CCE3 0x7BA4 +0x8EA2CCE4 0x7B82 +0x8EA2CCE5 0x7CBB +0x8EA2CCE6 0x7CBF +0x8EA2CCE7 0x7CBC +0x8EA2CCE8 0x7CBA +0x8EA2CCE9 0x7DA7 +0x8EA2CCEA 0x7DB7 +0x8EA2CCEB 0x7DC2 +0x8EA2CCEC 0x7DA3 +0x8EA2CCED 0x7DAA +0x8EA2CCEE 0x7DC1 +0x8EA2CCEF 0x7DC0 +0x8EA2CCF0 0x7DC5 +0x8EA2CCF1 0x7D9D +0x8EA2CCF2 0x7DCE +0x8EA2CCF3 0x7DC4 +0x8EA2CCF4 0x7DC6 +0x8EA2CCF5 0x7DCB +0x8EA2CCF6 0x7DCC +0x8EA2CCF7 0x7DAF +0x8EA2CCF8 0x7DB9 +0x8EA2CCF9 0x7D96 +0x8EA2CCFA 0x7DBC +0x8EA2CCFB 0x7D9F +0x8EA2CCFC 0x7DA6 +0x8EA2CCFD 0x7DAE +0x8EA2CCFE 0x7DA9 +0x8EA2CDA1 0x7DA1 +0x8EA2CDA2 0x7DC9 +0x8EA2CDA3 0x7F73 +0x8EA2CDA4 0x7FE2 +0x8EA2CDA5 0x7FE3 +0x8EA2CDA6 0x7FE5 +0x8EA2CDA7 0x7FDE +0x8EA2CDA8 0x8024 +0x8EA2CDA9 0x805D +0x8EA2CDAA 0x805C +0x8EA2CDAB 0x8189 +0x8EA2CDAC 0x8186 +0x8EA2CDAD 0x8183 +0x8EA2CDAE 0x8187 +0x8EA2CDAF 0x818D +0x8EA2CDB0 0x818C +0x8EA2CDB1 0x818B +0x8EA2CDB2 0x8215 +0x8EA2CDB3 0x8497 +0x8EA2CDB4 0x84A4 +0x8EA2CDB5 0x84A1 +0x8EA2CDB6 0x849F +0x8EA2CDB7 0x84BA +0x8EA2CDB8 0x84CE +0x8EA2CDB9 0x84C2 +0x8EA2CDBA 0x84AC +0x8EA2CDBB 0x84AE +0x8EA2CDBC 0x84AB +0x8EA2CDBD 0x84B9 +0x8EA2CDBE 0x84B4 +0x8EA2CDBF 0x84C1 +0x8EA2CDC0 0x84CD +0x8EA2CDC1 0x84AA +0x8EA2CDC2 0x849A +0x8EA2CDC3 0x84B1 +0x8EA2CDC4 0x84D0 +0x8EA2CDC5 0x849D +0x8EA2CDC6 0x84A7 +0x8EA2CDC7 0x84BB +0x8EA2CDC8 0x84A2 +0x8EA2CDC9 0x8494 +0x8EA2CDCA 0x84C7 +0x8EA2CDCB 0x84CC +0x8EA2CDCC 0x849B +0x8EA2CDCD 0x84A9 +0x8EA2CDCE 0x84AF +0x8EA2CDCF 0x84A8 +0x8EA2CDD0 0x84D6 +0x8EA2CDD1 0x8498 +0x8EA2CDD2 0x84B6 +0x8EA2CDD3 0x84CF +0x8EA2CDD4 0x84A0 +0x8EA2CDD5 0x84D7 +0x8EA2CDD6 0x84D4 +0x8EA2CDD7 0x84D2 +0x8EA2CDD8 0x84DB +0x8EA2CDD9 0x84B0 +0x8EA2CDDA 0x8491 +0x8EA2CDDB 0x8661 +0x8EA2CDDC 0x8733 +0x8EA2CDDD 0x8723 +0x8EA2CDDE 0x8728 +0x8EA2CDDF 0x876B +0x8EA2CDE0 0x8740 +0x8EA2CDE1 0x872E +0x8EA2CDE2 0x871E +0x8EA2CDE3 0x8721 +0x8EA2CDE4 0x8719 +0x8EA2CDE5 0x871B +0x8EA2CDE6 0x8743 +0x8EA2CDE7 0x872C +0x8EA2CDE8 0x8741 +0x8EA2CDE9 0x873E +0x8EA2CDEA 0x8746 +0x8EA2CDEB 0x8720 +0x8EA2CDEC 0x8732 +0x8EA2CDED 0x872A +0x8EA2CDEE 0x872D +0x8EA2CDEF 0x873C +0x8EA2CDF0 0x8712 +0x8EA2CDF1 0x873A +0x8EA2CDF2 0x8731 +0x8EA2CDF3 0x8735 +0x8EA2CDF4 0x8742 +0x8EA2CDF5 0x8726 +0x8EA2CDF6 0x8727 +0x8EA2CDF7 0x8738 +0x8EA2CDF8 0x8724 +0x8EA2CDF9 0x871A +0x8EA2CDFA 0x8730 +0x8EA2CDFB 0x8711 +0x8EA2CDFC 0x88F7 +0x8EA2CDFD 0x88E7 +0x8EA2CDFE 0x88F1 +0x8EA2CEA1 0x88F2 +0x8EA2CEA2 0x88FA +0x8EA2CEA3 0x88FE +0x8EA2CEA4 0x88EE +0x8EA2CEA5 0x88FC +0x8EA2CEA6 0x88F6 +0x8EA2CEA7 0x88FB +0x8EA2CEA8 0x88F0 +0x8EA2CEA9 0x88EC +0x8EA2CEAA 0x88EB +0x8EA2CEAB 0x899D +0x8EA2CEAC 0x89A1 +0x8EA2CEAD 0x899F +0x8EA2CEAE 0x899E +0x8EA2CEAF 0x89E9 +0x8EA2CEB0 0x89EB +0x8EA2CEB1 0x89E8 +0x8EA2CEB2 0x8AAB +0x8EA2CEB3 0x8A99 +0x8EA2CEB4 0x8A8B +0x8EA2CEB5 0x8A92 +0x8EA2CEB6 0x8A8F +0x8EA2CEB7 0x8A96 +0x8EA2CEB8 0x8C3D +0x8EA2CEB9 0x8C68 +0x8EA2CEBA 0x8C69 +0x8EA2CEBB 0x8CD5 +0x8EA2CEBC 0x8CCF +0x8EA2CEBD 0x8CD7 +0x8EA2CEBE 0x8D96 +0x8EA2CEBF 0x8E09 +0x8EA2CEC0 0x8E02 +0x8EA2CEC1 0x8DFF +0x8EA2CEC2 0x8E0D +0x8EA2CEC3 0x8DFD +0x8EA2CEC4 0x8E0A +0x8EA2CEC5 0x8E03 +0x8EA2CEC6 0x8E07 +0x8EA2CEC7 0x8E06 +0x8EA2CEC8 0x8E05 +0x8EA2CEC9 0x8DFE +0x8EA2CECA 0x8E00 +0x8EA2CECB 0x8E04 +0x8EA2CECC 0x8F10 +0x8EA2CECD 0x8F11 +0x8EA2CECE 0x8F0E +0x8EA2CECF 0x8F0D +0x8EA2CED0 0x9123 +0x8EA2CED1 0x911C +0x8EA2CED2 0x9120 +0x8EA2CED3 0x9122 +0x8EA2CED4 0x911F +0x8EA2CED5 0x911D +0x8EA2CED6 0x911A +0x8EA2CED7 0x9124 +0x8EA2CED8 0x9121 +0x8EA2CED9 0x911B +0x8EA2CEDA 0x917A +0x8EA2CEDB 0x9172 +0x8EA2CEDC 0x9179 +0x8EA2CEDD 0x9173 +0x8EA2CEDE 0x92A5 +0x8EA2CEDF 0x92A4 +0x8EA2CEE0 0x9276 +0x8EA2CEE1 0x929B +0x8EA2CEE2 0x927A +0x8EA2CEE3 0x92A0 +0x8EA2CEE4 0x9294 +0x8EA2CEE5 0x92AA +0x8EA2CEE6 0x928D +0x8EA2CEE7 0x92A6 +0x8EA2CEE8 0x929A +0x8EA2CEE9 0x92AB +0x8EA2CEEA 0x9279 +0x8EA2CEEB 0x9297 +0x8EA2CEEC 0x927F +0x8EA2CEED 0x92A3 +0x8EA2CEEE 0x92EE +0x8EA2CEEF 0x928E +0x8EA2CEF0 0x9282 +0x8EA2CEF1 0x9295 +0x8EA2CEF2 0x92A2 +0x8EA2CEF3 0x927D +0x8EA2CEF4 0x9288 +0x8EA2CEF5 0x92A1 +0x8EA2CEF6 0x928A +0x8EA2CEF7 0x9286 +0x8EA2CEF8 0x928C +0x8EA2CEF9 0x9299 +0x8EA2CEFA 0x92A7 +0x8EA2CEFB 0x927E +0x8EA2CEFC 0x9287 +0x8EA2CEFD 0x92A9 +0x8EA2CEFE 0x929D +0x8EA2CFA1 0x928B +0x8EA2CFA2 0x922D +0x8EA2CFA3 0x969E +0x8EA2CFA4 0x96A1 +0x8EA2CFA5 0x96FF +0x8EA2CFA6 0x9758 +0x8EA2CFA7 0x977D +0x8EA2CFA8 0x977A +0x8EA2CFA9 0x977E +0x8EA2CFAA 0x9783 +0x8EA2CFAB 0x9780 +0x8EA2CFAC 0x9782 +0x8EA2CFAD 0x977B +0x8EA2CFAE 0x9784 +0x8EA2CFAF 0x9781 +0x8EA2CFB0 0x977F +0x8EA2CFB1 0x97CE +0x8EA2CFB2 0x97CD +0x8EA2CFB3 0x9816 +0x8EA2CFB4 0x98AD +0x8EA2CFB5 0x98AE +0x8EA2CFB6 0x9902 +0x8EA2CFB7 0x9900 +0x8EA2CFB8 0x9907 +0x8EA2CFB9 0x999D +0x8EA2CFBA 0x999C +0x8EA2CFBB 0x99C3 +0x8EA2CFBC 0x99B9 +0x8EA2CFBD 0x99BB +0x8EA2CFBE 0x99BA +0x8EA2CFBF 0x99C2 +0x8EA2CFC0 0x99BD +0x8EA2CFC1 0x99C7 +0x8EA2CFC2 0x9AB1 +0x8EA2CFC3 0x9AE3 +0x8EA2CFC4 0x9AE7 +0x8EA2CFC5 0x9B3E +0x8EA2CFC6 0x9B3F +0x8EA2CFC7 0x9B60 +0x8EA2CFC8 0x9B61 +0x8EA2CFC9 0x9B5F +0x8EA2CFCA 0x9CF1 +0x8EA2CFCB 0x9CF2 +0x8EA2CFCC 0x9CF5 +0x8EA2CFCD 0x9EA7 +0x8EA2CFCE 0x50FF +0x8EA2CFCF 0x5103 +0x8EA2CFD0 0x5130 +0x8EA2CFD1 0x50F8 +0x8EA2CFD2 0x5106 +0x8EA2CFD3 0x5107 +0x8EA2CFD4 0x50F6 +0x8EA2CFD5 0x50FE +0x8EA2CFD6 0x510B +0x8EA2CFD7 0x510C +0x8EA2CFD8 0x50FD +0x8EA2CFD9 0x510A +0x8EA2CFDA 0x528B +0x8EA2CFDB 0x528C +0x8EA2CFDC 0x52F1 +0x8EA2CFDD 0x52EF +0x8EA2CFDE 0x5648 +0x8EA2CFDF 0x5642 +0x8EA2CFE0 0x564C +0x8EA2CFE1 0x5635 +0x8EA2CFE2 0x5641 +0x8EA2CFE3 0x564A +0x8EA2CFE4 0x5649 +0x8EA2CFE5 0x5646 +0x8EA2CFE6 0x5658 +0x8EA2CFE7 0x565A +0x8EA2CFE8 0x5640 +0x8EA2CFE9 0x5633 +0x8EA2CFEA 0x563D +0x8EA2CFEB 0x562C +0x8EA2CFEC 0x563E +0x8EA2CFED 0x5638 +0x8EA2CFEE 0x562A +0x8EA2CFEF 0x563A +0x8EA2CFF0 0x571A +0x8EA2CFF1 0x58AB +0x8EA2CFF2 0x589D +0x8EA2CFF3 0x58B1 +0x8EA2CFF4 0x58A0 +0x8EA2CFF5 0x58A3 +0x8EA2CFF6 0x58AF +0x8EA2CFF7 0x58AC +0x8EA2CFF8 0x58A5 +0x8EA2CFF9 0x58A1 +0x8EA2CFFA 0x58FF +0x8EA2CFFB 0x5AFF +0x8EA2CFFC 0x5AF4 +0x8EA2CFFD 0x5AFD +0x8EA2CFFE 0x5AF7 +0x8EA2D0A1 0x5AF6 +0x8EA2D0A2 0x5B03 +0x8EA2D0A3 0x5AF8 +0x8EA2D0A4 0x5B02 +0x8EA2D0A5 0x5AF9 +0x8EA2D0A6 0x5B01 +0x8EA2D0A7 0x5B07 +0x8EA2D0A8 0x5B05 +0x8EA2D0A9 0x5B0F +0x8EA2D0AA 0x5C67 +0x8EA2D0AB 0x5D99 +0x8EA2D0AC 0x5D97 +0x8EA2D0AD 0x5D9F +0x8EA2D0AE 0x5D92 +0x8EA2D0AF 0x5DA2 +0x8EA2D0B0 0x5D93 +0x8EA2D0B1 0x5D95 +0x8EA2D0B2 0x5DA0 +0x8EA2D0B3 0x5D9C +0x8EA2D0B4 0x5DA1 +0x8EA2D0B5 0x5D9A +0x8EA2D0B6 0x5D9E +0x8EA2D0B7 0x5E69 +0x8EA2D0B8 0x5E5D +0x8EA2D0B9 0x5E60 +0x8EA2D0BA 0x5E5C +0x8EA2D0BB 0x7DF3 +0x8EA2D0BC 0x5EDB +0x8EA2D0BD 0x5EDE +0x8EA2D0BE 0x5EE1 +0x8EA2D0BF 0x5F49 +0x8EA2D0C0 0x5FB2 +0x8EA2D0C1 0x618B +0x8EA2D0C2 0x6183 +0x8EA2D0C3 0x6179 +0x8EA2D0C4 0x61B1 +0x8EA2D0C5 0x61B0 +0x8EA2D0C6 0x61A2 +0x8EA2D0C7 0x6189 +0x8EA2D0C8 0x619B +0x8EA2D0C9 0x6193 +0x8EA2D0CA 0x61AF +0x8EA2D0CB 0x61AD +0x8EA2D0CC 0x619F +0x8EA2D0CD 0x6192 +0x8EA2D0CE 0x61AA +0x8EA2D0CF 0x61A1 +0x8EA2D0D0 0x618D +0x8EA2D0D1 0x6166 +0x8EA2D0D2 0x61B3 +0x8EA2D0D3 0x622D +0x8EA2D0D4 0x646E +0x8EA2D0D5 0x6470 +0x8EA2D0D6 0x6496 +0x8EA2D0D7 0x64A0 +0x8EA2D0D8 0x6485 +0x8EA2D0D9 0x6497 +0x8EA2D0DA 0x649C +0x8EA2D0DB 0x648F +0x8EA2D0DC 0x648B +0x8EA2D0DD 0x648A +0x8EA2D0DE 0x648C +0x8EA2D0DF 0x64A3 +0x8EA2D0E0 0x649F +0x8EA2D0E1 0x6468 +0x8EA2D0E2 0x64B1 +0x8EA2D0E3 0x6498 +0x8EA2D0E4 0x6576 +0x8EA2D0E5 0x657A +0x8EA2D0E6 0x6579 +0x8EA2D0E7 0x657B +0x8EA2D0E8 0x65B2 +0x8EA2D0E9 0x65B3 +0x8EA2D0EA 0x66B5 +0x8EA2D0EB 0x66B0 +0x8EA2D0EC 0x66A9 +0x8EA2D0ED 0x66B2 +0x8EA2D0EE 0x66B7 +0x8EA2D0EF 0x66AA +0x8EA2D0F0 0x66AF +0x8EA2D0F1 0x6A00 +0x8EA2D0F2 0x6A06 +0x8EA2D0F3 0x6A17 +0x8EA2D0F4 0x69E5 +0x8EA2D0F5 0x69F8 +0x8EA2D0F6 0x6A15 +0x8EA2D0F7 0x69F1 +0x8EA2D0F8 0x69E4 +0x8EA2D0F9 0x6A20 +0x8EA2D0FA 0x69FF +0x8EA2D0FB 0x69EC +0x8EA2D0FC 0x69E2 +0x8EA2D0FD 0x6A1B +0x8EA2D0FE 0x6A1D +0x8EA2D1A1 0x69FE +0x8EA2D1A2 0x6A27 +0x8EA2D1A3 0x69F2 +0x8EA2D1A4 0x69EE +0x8EA2D1A5 0x6A14 +0x8EA2D1A6 0x69F7 +0x8EA2D1A7 0x69E7 +0x8EA2D1A8 0x6A40 +0x8EA2D1A9 0x6A08 +0x8EA2D1AA 0x69E6 +0x8EA2D1AB 0x69FB +0x8EA2D1AC 0x6A0D +0x8EA2D1AD 0x69FC +0x8EA2D1AE 0x69EB +0x8EA2D1AF 0x6A09 +0x8EA2D1B0 0x6A04 +0x8EA2D1B1 0x6A18 +0x8EA2D1B2 0x6A25 +0x8EA2D1B3 0x6A0F +0x8EA2D1B4 0x69F6 +0x8EA2D1B5 0x6A26 +0x8EA2D1B6 0x6A07 +0x8EA2D1B7 0x69F4 +0x8EA2D1B8 0x6A16 +0x8EA2D1B9 0x6B51 +0x8EA2D1BA 0x6BA5 +0x8EA2D1BB 0x6BA3 +0x8EA2D1BC 0x6BA2 +0x8EA2D1BD 0x6BA6 +0x8EA2D1BE 0x6C01 +0x8EA2D1BF 0x6C00 +0x8EA2D1C0 0x6BFF +0x8EA2D1C1 0x6C02 +0x8EA2D1C2 0x6F41 +0x8EA2D1C3 0x6F26 +0x8EA2D1C4 0x6F7E +0x8EA2D1C5 0x6F87 +0x8EA2D1C6 0x6FC6 +0x8EA2D1C7 0x6F92 +0x8EA2D1C8 0x6F8D +0x8EA2D1C9 0x6F89 +0x8EA2D1CA 0x6F8C +0x8EA2D1CB 0x6F62 +0x8EA2D1CC 0x6F4F +0x8EA2D1CD 0x6F85 +0x8EA2D1CE 0x6F5A +0x8EA2D1CF 0x6F96 +0x8EA2D1D0 0x6F76 +0x8EA2D1D1 0x6F6C +0x8EA2D1D2 0x6F82 +0x8EA2D1D3 0x6F55 +0x8EA2D1D4 0x6F72 +0x8EA2D1D5 0x6F52 +0x8EA2D1D6 0x6F50 +0x8EA2D1D7 0x6F57 +0x8EA2D1D8 0x6F94 +0x8EA2D1D9 0x6F93 +0x8EA2D1DA 0x6F5D +0x8EA2D1DB 0x6F00 +0x8EA2D1DC 0x6F61 +0x8EA2D1DD 0x6F6B +0x8EA2D1DE 0x6F7D +0x8EA2D1DF 0x6F67 +0x8EA2D1E0 0x6F90 +0x8EA2D1E1 0x6F53 +0x8EA2D1E2 0x6F8B +0x8EA2D1E3 0x6F69 +0x8EA2D1E4 0x6F7F +0x8EA2D1E5 0x6F95 +0x8EA2D1E6 0x6F63 +0x8EA2D1E7 0x6F77 +0x8EA2D1E8 0x6F6A +0x8EA2D1E9 0x6F7B +0x8EA2D1EA 0x71B2 +0x8EA2D1EB 0x71AF +0x8EA2D1EC 0x719B +0x8EA2D1ED 0x71B0 +0x8EA2D1EE 0x71A0 +0x8EA2D1EF 0x719A +0x8EA2D1F0 0x71A9 +0x8EA2D1F1 0x71B5 +0x8EA2D1F2 0x719D +0x8EA2D1F3 0x71A5 +0x8EA2D1F4 0x719E +0x8EA2D1F5 0x71A4 +0x8EA2D1F6 0x71A1 +0x8EA2D1F7 0x71AA +0x8EA2D1F8 0x719C +0x8EA2D1F9 0x71A7 +0x8EA2D1FA 0x71B3 +0x8EA2D1FB 0x7298 +0x8EA2D1FC 0x729A +0x8EA2D1FD 0x7358 +0x8EA2D1FE 0x7352 +0x8EA2D2A1 0x735E +0x8EA2D2A2 0x735F +0x8EA2D2A3 0x7360 +0x8EA2D2A4 0x735D +0x8EA2D2A5 0x735B +0x8EA2D2A6 0x7361 +0x8EA2D2A7 0x735A +0x8EA2D2A8 0x7359 +0x8EA2D2A9 0x7362 +0x8EA2D2AA 0x7487 +0x8EA2D2AB 0x7489 +0x8EA2D2AC 0x748A +0x8EA2D2AD 0x7486 +0x8EA2D2AE 0x7481 +0x8EA2D2AF 0x747D +0x8EA2D2B0 0x7485 +0x8EA2D2B1 0x7488 +0x8EA2D2B2 0x747C +0x8EA2D2B3 0x7479 +0x8EA2D2B4 0x7508 +0x8EA2D2B5 0x7507 +0x8EA2D2B6 0x757E +0x8EA2D2B7 0x7625 +0x8EA2D2B8 0x761E +0x8EA2D2B9 0x7619 +0x8EA2D2BA 0x761D +0x8EA2D2BB 0x761C +0x8EA2D2BC 0x7623 +0x8EA2D2BD 0x761A +0x8EA2D2BE 0x7628 +0x8EA2D2BF 0x761B +0x8EA2D2C0 0x769C +0x8EA2D2C1 0x769D +0x8EA2D2C2 0x769E +0x8EA2D2C3 0x769B +0x8EA2D2C4 0x778D +0x8EA2D2C5 0x778F +0x8EA2D2C6 0x7789 +0x8EA2D2C7 0x7788 +0x8EA2D2C8 0x78CD +0x8EA2D2C9 0x78BB +0x8EA2D2CA 0x78CF +0x8EA2D2CB 0x78CC +0x8EA2D2CC 0x78D1 +0x8EA2D2CD 0x78CE +0x8EA2D2CE 0x78D4 +0x8EA2D2CF 0x78C8 +0x8EA2D2D0 0x78C3 +0x8EA2D2D1 0x78C4 +0x8EA2D2D2 0x78C9 +0x8EA2D2D3 0x799A +0x8EA2D2D4 0x79A1 +0x8EA2D2D5 0x79A0 +0x8EA2D2D6 0x799C +0x8EA2D2D7 0x79A2 +0x8EA2D2D8 0x799B +0x8EA2D2D9 0x6B76 +0x8EA2D2DA 0x7A39 +0x8EA2D2DB 0x7AB2 +0x8EA2D2DC 0x7AB4 +0x8EA2D2DD 0x7AB3 +0x8EA2D2DE 0x7BB7 +0x8EA2D2DF 0x7BCB +0x8EA2D2E0 0x7BBE +0x8EA2D2E1 0x7BAC +0x8EA2D2E2 0x7BCE +0x8EA2D2E3 0x7BAF +0x8EA2D2E4 0x7BB9 +0x8EA2D2E5 0x7BCA +0x8EA2D2E6 0x7BB5 +0x8EA2D2E7 0x7CC5 +0x8EA2D2E8 0x7CC8 +0x8EA2D2E9 0x7CCC +0x8EA2D2EA 0x7CCB +0x8EA2D2EB 0x7DF7 +0x8EA2D2EC 0x7DDB +0x8EA2D2ED 0x7DEA +0x8EA2D2EE 0x7DE7 +0x8EA2D2EF 0x7DD7 +0x8EA2D2F0 0x7DE1 +0x8EA2D2F1 0x7E03 +0x8EA2D2F2 0x7DFA +0x8EA2D2F3 0x7DE6 +0x8EA2D2F4 0x7DF6 +0x8EA2D2F5 0x7DF1 +0x8EA2D2F6 0x7DF0 +0x8EA2D2F7 0x7DEE +0x8EA2D2F8 0x7DDF +0x8EA2D2F9 0x7F76 +0x8EA2D2FA 0x7FAC +0x8EA2D2FB 0x7FB0 +0x8EA2D2FC 0x7FAD +0x8EA2D2FD 0x7FED +0x8EA2D2FE 0x7FEB +0x8EA2D3A1 0x7FEA +0x8EA2D3A2 0x7FEC +0x8EA2D3A3 0x7FE6 +0x8EA2D3A4 0x7FE8 +0x8EA2D3A5 0x8064 +0x8EA2D3A6 0x8067 +0x8EA2D3A7 0x81A3 +0x8EA2D3A8 0x819F +0x8EA2D3A9 0x819E +0x8EA2D3AA 0x8195 +0x8EA2D3AB 0x81A2 +0x8EA2D3AC 0x8199 +0x8EA2D3AD 0x8197 +0x8EA2D3AE 0x8216 +0x8EA2D3AF 0x824F +0x8EA2D3B0 0x8253 +0x8EA2D3B1 0x8252 +0x8EA2D3B2 0x8250 +0x8EA2D3B3 0x824E +0x8EA2D3B4 0x8251 +0x8EA2D3B5 0x8524 +0x8EA2D3B6 0x853B +0x8EA2D3B7 0x850F +0x8EA2D3B8 0x8500 +0x8EA2D3B9 0x8529 +0x8EA2D3BA 0x850E +0x8EA2D3BB 0x8509 +0x8EA2D3BC 0x850D +0x8EA2D3BD 0x851F +0x8EA2D3BE 0x850A +0x8EA2D3BF 0x8527 +0x8EA2D3C0 0x851C +0x8EA2D3C1 0x84FB +0x8EA2D3C2 0x852B +0x8EA2D3C3 0x84FA +0x8EA2D3C4 0x8508 +0x8EA2D3C5 0x850C +0x8EA2D3C6 0x84F4 +0x8EA2D3C7 0x852A +0x8EA2D3C8 0x84F2 +0x8EA2D3C9 0x8515 +0x8EA2D3CA 0x84F7 +0x8EA2D3CB 0x84EB +0x8EA2D3CC 0x84F3 +0x8EA2D3CD 0x84FC +0x8EA2D3CE 0x8512 +0x8EA2D3CF 0x84EA +0x8EA2D3D0 0x84E9 +0x8EA2D3D1 0x8516 +0x8EA2D3D2 0x84FE +0x8EA2D3D3 0x8528 +0x8EA2D3D4 0x851D +0x8EA2D3D5 0x852E +0x8EA2D3D6 0x8502 +0x8EA2D3D7 0x84FD +0x8EA2D3D8 0x851E +0x8EA2D3D9 0x84F6 +0x8EA2D3DA 0x8531 +0x8EA2D3DB 0x8526 +0x8EA2D3DC 0x84E7 +0x8EA2D3DD 0x84E8 +0x8EA2D3DE 0x84F0 +0x8EA2D3DF 0x84EF +0x8EA2D3E0 0x84F9 +0x8EA2D3E1 0x8518 +0x8EA2D3E2 0x8520 +0x8EA2D3E3 0x8530 +0x8EA2D3E4 0x850B +0x8EA2D3E5 0x8519 +0x8EA2D3E6 0x852F +0x8EA2D3E7 0x8662 +0x8EA2D3E8 0x8756 +0x8EA2D3E9 0x8763 +0x8EA2D3EA 0x8764 +0x8EA2D3EB 0x8777 +0x8EA2D3EC 0x87E1 +0x8EA2D3ED 0x8773 +0x8EA2D3EE 0x8758 +0x8EA2D3EF 0x8754 +0x8EA2D3F0 0x875B +0x8EA2D3F1 0x8752 +0x8EA2D3F2 0x8761 +0x8EA2D3F3 0x875A +0x8EA2D3F4 0x8751 +0x8EA2D3F5 0x875E +0x8EA2D3F6 0x876D +0x8EA2D3F7 0x876A +0x8EA2D3F8 0x8750 +0x8EA2D3F9 0x874E +0x8EA2D3FA 0x875F +0x8EA2D3FB 0x875D +0x8EA2D3FC 0x876F +0x8EA2D3FD 0x876C +0x8EA2D3FE 0x877A +0x8EA2D4A1 0x876E +0x8EA2D4A2 0x875C +0x8EA2D4A3 0x8765 +0x8EA2D4A4 0x874F +0x8EA2D4A5 0x877B +0x8EA2D4A6 0x8775 +0x8EA2D4A7 0x8762 +0x8EA2D4A8 0x8767 +0x8EA2D4A9 0x8769 +0x8EA2D4AA 0x885A +0x8EA2D4AB 0x8905 +0x8EA2D4AC 0x890C +0x8EA2D4AD 0x8914 +0x8EA2D4AE 0x890B +0x8EA2D4AF 0x8917 +0x8EA2D4B0 0x8918 +0x8EA2D4B1 0x8919 +0x8EA2D4B2 0x8906 +0x8EA2D4B3 0x8916 +0x8EA2D4B4 0x8911 +0x8EA2D4B5 0x890E +0x8EA2D4B6 0x8909 +0x8EA2D4B7 0x89A2 +0x8EA2D4B8 0x89A4 +0x8EA2D4B9 0x89A3 +0x8EA2D4BA 0x89ED +0x8EA2D4BB 0x89F0 +0x8EA2D4BC 0x89EC +0x8EA2D4BD 0x8ACF +0x8EA2D4BE 0x8AC6 +0x8EA2D4BF 0x8AB8 +0x8EA2D4C0 0x8AD3 +0x8EA2D4C1 0x8AD1 +0x8EA2D4C2 0x8AD4 +0x8EA2D4C3 0x8AD5 +0x8EA2D4C4 0x8ABB +0x8EA2D4C5 0x8AD7 +0x8EA2D4C6 0x8ABE +0x8EA2D4C7 0x8AC0 +0x8EA2D4C8 0x8AC5 +0x8EA2D4C9 0x8AD8 +0x8EA2D4CA 0x8AC3 +0x8EA2D4CB 0x8ABA +0x8EA2D4CC 0x8ABD +0x8EA2D4CD 0x8AD9 +0x8EA2D4CE 0x8C3E +0x8EA2D4CF 0x8C4D +0x8EA2D4D0 0x8C8F +0x8EA2D4D1 0x8CE5 +0x8EA2D4D2 0x8CDF +0x8EA2D4D3 0x8CD9 +0x8EA2D4D4 0x8CE8 +0x8EA2D4D5 0x8CDA +0x8EA2D4D6 0x8CDD +0x8EA2D4D7 0x8CE7 +0x8EA2D4D8 0x8DA0 +0x8EA2D4D9 0x8D9C +0x8EA2D4DA 0x8DA1 +0x8EA2D4DB 0x8D9B +0x8EA2D4DC 0x8E20 +0x8EA2D4DD 0x8E23 +0x8EA2D4DE 0x8E25 +0x8EA2D4DF 0x8E24 +0x8EA2D4E0 0x8E2E +0x8EA2D4E1 0x8E15 +0x8EA2D4E2 0x8E1B +0x8EA2D4E3 0x8E16 +0x8EA2D4E4 0x8E11 +0x8EA2D4E5 0x8E19 +0x8EA2D4E6 0x8E26 +0x8EA2D4E7 0x8E27 +0x8EA2D4E8 0x8E14 +0x8EA2D4E9 0x8E12 +0x8EA2D4EA 0x8E18 +0x8EA2D4EB 0x8E13 +0x8EA2D4EC 0x8E1C +0x8EA2D4ED 0x8E17 +0x8EA2D4EE 0x8E1A +0x8EA2D4EF 0x8F2C +0x8EA2D4F0 0x8F24 +0x8EA2D4F1 0x8F18 +0x8EA2D4F2 0x8F1A +0x8EA2D4F3 0x8F20 +0x8EA2D4F4 0x8F23 +0x8EA2D4F5 0x8F16 +0x8EA2D4F6 0x8F17 +0x8EA2D4F7 0x9073 +0x8EA2D4F8 0x9070 +0x8EA2D4F9 0x906F +0x8EA2D4FA 0x9067 +0x8EA2D4FB 0x906B +0x8EA2D4FC 0x912F +0x8EA2D4FD 0x912B +0x8EA2D4FE 0x9129 +0x8EA2D5A1 0x912A +0x8EA2D5A2 0x9132 +0x8EA2D5A3 0x9126 +0x8EA2D5A4 0x912E +0x8EA2D5A5 0x9185 +0x8EA2D5A6 0x9186 +0x8EA2D5A7 0x918A +0x8EA2D5A8 0x9181 +0x8EA2D5A9 0x9182 +0x8EA2D5AA 0x9184 +0x8EA2D5AB 0x9180 +0x8EA2D5AC 0x92D0 +0x8EA2D5AD 0x92C3 +0x8EA2D5AE 0x92C4 +0x8EA2D5AF 0x92C0 +0x8EA2D5B0 0x92D9 +0x8EA2D5B1 0x92B6 +0x8EA2D5B2 0x92CF +0x8EA2D5B3 0x92F1 +0x8EA2D5B4 0x92DF +0x8EA2D5B5 0x92D8 +0x8EA2D5B6 0x92E9 +0x8EA2D5B7 0x92D7 +0x8EA2D5B8 0x92DD +0x8EA2D5B9 0x92CC +0x8EA2D5BA 0x92EF +0x8EA2D5BB 0x92C2 +0x8EA2D5BC 0x92E8 +0x8EA2D5BD 0x92CA +0x8EA2D5BE 0x92C8 +0x8EA2D5BF 0x92CE +0x8EA2D5C0 0x92E6 +0x8EA2D5C1 0x92CD +0x8EA2D5C2 0x92D5 +0x8EA2D5C3 0x92C9 +0x8EA2D5C4 0x92E0 +0x8EA2D5C5 0x92DE +0x8EA2D5C6 0x92E7 +0x8EA2D5C7 0x92D1 +0x8EA2D5C8 0x92D3 +0x8EA2D5C9 0x92B5 +0x8EA2D5CA 0x92E1 +0x8EA2D5CB 0x9325 +0x8EA2D5CC 0x92C6 +0x8EA2D5CD 0x92B4 +0x8EA2D5CE 0x957C +0x8EA2D5CF 0x95AC +0x8EA2D5D0 0x95AB +0x8EA2D5D1 0x95AE +0x8EA2D5D2 0x95B0 +0x8EA2D5D3 0x96A4 +0x8EA2D5D4 0x96A2 +0x8EA2D5D5 0x96D3 +0x8EA2D5D6 0x9705 +0x8EA2D5D7 0x9708 +0x8EA2D5D8 0x9702 +0x8EA2D5D9 0x975A +0x8EA2D5DA 0x978A +0x8EA2D5DB 0x978E +0x8EA2D5DC 0x9788 +0x8EA2D5DD 0x97D0 +0x8EA2D5DE 0x97CF +0x8EA2D5DF 0x981E +0x8EA2D5E0 0x981D +0x8EA2D5E1 0x9826 +0x8EA2D5E2 0x9829 +0x8EA2D5E3 0x9828 +0x8EA2D5E4 0x9820 +0x8EA2D5E5 0x981B +0x8EA2D5E6 0x9827 +0x8EA2D5E7 0x98B2 +0x8EA2D5E8 0x9908 +0x8EA2D5E9 0x98FA +0x8EA2D5EA 0x9911 +0x8EA2D5EB 0x9914 +0x8EA2D5EC 0x9916 +0x8EA2D5ED 0x9917 +0x8EA2D5EE 0x9915 +0x8EA2D5EF 0x99DC +0x8EA2D5F0 0x99CD +0x8EA2D5F1 0x99CF +0x8EA2D5F2 0x99D3 +0x8EA2D5F3 0x99D4 +0x8EA2D5F4 0x99CE +0x8EA2D5F5 0x99C9 +0x8EA2D5F6 0x99D6 +0x8EA2D5F7 0x99D8 +0x8EA2D5F8 0x99CB +0x8EA2D5F9 0x99D7 +0x8EA2D5FA 0x99CC +0x8EA2D5FB 0x9AB3 +0x8EA2D5FC 0x9AEC +0x8EA2D5FD 0x9AEB +0x8EA2D5FE 0x9AF3 +0x8EA2D6A1 0x9AF2 +0x8EA2D6A2 0x9AF1 +0x8EA2D6A3 0x9B46 +0x8EA2D6A4 0x9B43 +0x8EA2D6A5 0x9B67 +0x8EA2D6A6 0x9B74 +0x8EA2D6A7 0x9B71 +0x8EA2D6A8 0x9B66 +0x8EA2D6A9 0x9B76 +0x8EA2D6AA 0x9B75 +0x8EA2D6AB 0x9B70 +0x8EA2D6AC 0x9B68 +0x8EA2D6AD 0x9B64 +0x8EA2D6AE 0x9B6C +0x8EA2D6AF 0x9CFC +0x8EA2D6B0 0x9CFA +0x8EA2D6B1 0x9CFD +0x8EA2D6B2 0x9CFF +0x8EA2D6B3 0x9CF7 +0x8EA2D6B4 0x9D07 +0x8EA2D6B5 0x9D00 +0x8EA2D6B6 0x9CF9 +0x8EA2D6B7 0x9CFB +0x8EA2D6B8 0x9D08 +0x8EA2D6B9 0x9D05 +0x8EA2D6BA 0x9D04 +0x8EA2D6BB 0x9E83 +0x8EA2D6BC 0x9ED3 +0x8EA2D6BD 0x9F0F +0x8EA2D6BE 0x9F10 +0x8EA2D6BF 0x511C +0x8EA2D6C0 0x5113 +0x8EA2D6C1 0x5117 +0x8EA2D6C2 0x511A +0x8EA2D6C3 0x5111 +0x8EA2D6C4 0x51DE +0x8EA2D6C5 0x5334 +0x8EA2D6C6 0x53E1 +0x8EA2D6C7 0x5670 +0x8EA2D6C8 0x5660 +0x8EA2D6C9 0x566E +0x8EA2D6CA 0x5673 +0x8EA2D6CB 0x5666 +0x8EA2D6CC 0x5663 +0x8EA2D6CD 0x566D +0x8EA2D6CE 0x5672 +0x8EA2D6CF 0x565E +0x8EA2D6D0 0x5677 +0x8EA2D6D1 0x571C +0x8EA2D6D2 0x571B +0x8EA2D6D3 0x58C8 +0x8EA2D6D4 0x58BD +0x8EA2D6D5 0x58C9 +0x8EA2D6D6 0x58BF +0x8EA2D6D7 0x58BA +0x8EA2D6D8 0x58C2 +0x8EA2D6D9 0x58BC +0x8EA2D6DA 0x58C6 +0x8EA2D6DB 0x5B17 +0x8EA2D6DC 0x5B19 +0x8EA2D6DD 0x5B1B +0x8EA2D6DE 0x5B21 +0x8EA2D6DF 0x5B14 +0x8EA2D6E0 0x5B13 +0x8EA2D6E1 0x5B10 +0x8EA2D6E2 0x5B16 +0x8EA2D6E3 0x5B28 +0x8EA2D6E4 0x5B1A +0x8EA2D6E5 0x5B20 +0x8EA2D6E6 0x5B1E +0x8EA2D6E7 0x5BEF +0x8EA2D6E8 0x5DAC +0x8EA2D6E9 0x5DB1 +0x8EA2D6EA 0x5DA9 +0x8EA2D6EB 0x5DA7 +0x8EA2D6EC 0x5DB5 +0x8EA2D6ED 0x5DB0 +0x8EA2D6EE 0x5DAE +0x8EA2D6EF 0x5DAA +0x8EA2D6F0 0x5DA8 +0x8EA2D6F1 0x5DB2 +0x8EA2D6F2 0x5DAD +0x8EA2D6F3 0x5DAF +0x8EA2D6F4 0x5DB4 +0x8EA2D6F5 0x5E67 +0x8EA2D6F6 0x5E68 +0x8EA2D6F7 0x5E66 +0x8EA2D6F8 0x5E6F +0x8EA2D6F9 0x5EE9 +0x8EA2D6FA 0x5EE7 +0x8EA2D6FB 0x5EE6 +0x8EA2D6FC 0x5EE8 +0x8EA2D6FD 0x5EE5 +0x8EA2D6FE 0x5F4B +0x8EA2D7A1 0x5FBC +0x8EA2D7A2 0x5FBB +0x8EA2D7A3 0x619D +0x8EA2D7A4 0x61A8 +0x8EA2D7A5 0x6196 +0x8EA2D7A6 0x61C5 +0x8EA2D7A7 0x61B4 +0x8EA2D7A8 0x61C6 +0x8EA2D7A9 0x61C1 +0x8EA2D7AA 0x61CC +0x8EA2D7AB 0x61BA +0x8EA2D7AC 0x61BF +0x8EA2D7AD 0x61B8 +0x8EA2D7AE 0x618C +0x8EA2D7AF 0x64D7 +0x8EA2D7B0 0x64D6 +0x8EA2D7B1 0x64D0 +0x8EA2D7B2 0x64CF +0x8EA2D7B3 0x64C9 +0x8EA2D7B4 0x64BD +0x8EA2D7B5 0x6489 +0x8EA2D7B6 0x64C3 +0x8EA2D7B7 0x64DB +0x8EA2D7B8 0x64F3 +0x8EA2D7B9 0x64D9 +0x8EA2D7BA 0x6533 +0x8EA2D7BB 0x657F +0x8EA2D7BC 0x657C +0x8EA2D7BD 0x65A2 +0x8EA2D7BE 0x66C8 +0x8EA2D7BF 0x66BE +0x8EA2D7C0 0x66C0 +0x8EA2D7C1 0x66CA +0x8EA2D7C2 0x66CB +0x8EA2D7C3 0x66CF +0x8EA2D7C4 0x66BD +0x8EA2D7C5 0x66BB +0x8EA2D7C6 0x66BA +0x8EA2D7C7 0x66CC +0x8EA2D7C8 0x6723 +0x8EA2D7C9 0x6A34 +0x8EA2D7CA 0x6A66 +0x8EA2D7CB 0x6A49 +0x8EA2D7CC 0x6A67 +0x8EA2D7CD 0x6A32 +0x8EA2D7CE 0x6A68 +0x8EA2D7CF 0x6A3E +0x8EA2D7D0 0x6A5D +0x8EA2D7D1 0x6A6D +0x8EA2D7D2 0x6A76 +0x8EA2D7D3 0x6A5B +0x8EA2D7D4 0x6A51 +0x8EA2D7D5 0x6A28 +0x8EA2D7D6 0x6A5A +0x8EA2D7D7 0x6A3B +0x8EA2D7D8 0x6A3F +0x8EA2D7D9 0x6A41 +0x8EA2D7DA 0x6A6A +0x8EA2D7DB 0x6A64 +0x8EA2D7DC 0x6A50 +0x8EA2D7DD 0x6A4F +0x8EA2D7DE 0x6A54 +0x8EA2D7DF 0x6A6F +0x8EA2D7E0 0x6A69 +0x8EA2D7E1 0x6A60 +0x8EA2D7E2 0x6A3C +0x8EA2D7E3 0x6A5E +0x8EA2D7E4 0x6A56 +0x8EA2D7E5 0x6A55 +0x8EA2D7E6 0x6A4D +0x8EA2D7E7 0x6A4E +0x8EA2D7E8 0x6A46 +0x8EA2D7E9 0x6B55 +0x8EA2D7EA 0x6B54 +0x8EA2D7EB 0x6B56 +0x8EA2D7EC 0x6BA7 +0x8EA2D7ED 0x6BAA +0x8EA2D7EE 0x6BAB +0x8EA2D7EF 0x6BC8 +0x8EA2D7F0 0x6BC7 +0x8EA2D7F1 0x6C04 +0x8EA2D7F2 0x6C03 +0x8EA2D7F3 0x6C06 +0x8EA2D7F4 0x6FAD +0x8EA2D7F5 0x6FCB +0x8EA2D7F6 0x6FA3 +0x8EA2D7F7 0x6FC7 +0x8EA2D7F8 0x6FBC +0x8EA2D7F9 0x6FCE +0x8EA2D7FA 0x6FC8 +0x8EA2D7FB 0x6F5E +0x8EA2D7FC 0x6FC4 +0x8EA2D7FD 0x6FBD +0x8EA2D7FE 0x6F9E +0x8EA2D8A1 0x6FCA +0x8EA2D8A2 0x6FA8 +0x8EA2D8A3 0x7004 +0x8EA2D8A4 0x6FA5 +0x8EA2D8A5 0x6FAE +0x8EA2D8A6 0x6FBA +0x8EA2D8A7 0x6FAC +0x8EA2D8A8 0x6FAA +0x8EA2D8A9 0x6FCF +0x8EA2D8AA 0x6FBF +0x8EA2D8AB 0x6FB8 +0x8EA2D8AC 0x6FA2 +0x8EA2D8AD 0x6FC9 +0x8EA2D8AE 0x6FAB +0x8EA2D8AF 0x6FCD +0x8EA2D8B0 0x6FAF +0x8EA2D8B1 0x6FB2 +0x8EA2D8B2 0x6FB0 +0x8EA2D8B3 0x71C5 +0x8EA2D8B4 0x71C2 +0x8EA2D8B5 0x71BF +0x8EA2D8B6 0x71B8 +0x8EA2D8B7 0x71D6 +0x8EA2D8B8 0x71C0 +0x8EA2D8B9 0x71C1 +0x8EA2D8BA 0x71CB +0x8EA2D8BB 0x71D4 +0x8EA2D8BC 0x71CA +0x8EA2D8BD 0x71C7 +0x8EA2D8BE 0x71CF +0x8EA2D8BF 0x71BD +0x8EA2D8C0 0x71D8 +0x8EA2D8C1 0x71BC +0x8EA2D8C2 0x71C6 +0x8EA2D8C3 0x71DA +0x8EA2D8C4 0x71DB +0x8EA2D8C5 0x729D +0x8EA2D8C6 0x729E +0x8EA2D8C7 0x7369 +0x8EA2D8C8 0x7366 +0x8EA2D8C9 0x7367 +0x8EA2D8CA 0x736C +0x8EA2D8CB 0x7365 +0x8EA2D8CC 0x736B +0x8EA2D8CD 0x736A +0x8EA2D8CE 0x747F +0x8EA2D8CF 0x749A +0x8EA2D8D0 0x74A0 +0x8EA2D8D1 0x7494 +0x8EA2D8D2 0x7492 +0x8EA2D8D3 0x7495 +0x8EA2D8D4 0x74A1 +0x8EA2D8D5 0x750B +0x8EA2D8D6 0x7580 +0x8EA2D8D7 0x762F +0x8EA2D8D8 0x762D +0x8EA2D8D9 0x7631 +0x8EA2D8DA 0x763D +0x8EA2D8DB 0x7633 +0x8EA2D8DC 0x763C +0x8EA2D8DD 0x7635 +0x8EA2D8DE 0x7632 +0x8EA2D8DF 0x7630 +0x8EA2D8E0 0x76BB +0x8EA2D8E1 0x76E6 +0x8EA2D8E2 0x779A +0x8EA2D8E3 0x779D +0x8EA2D8E4 0x77A1 +0x8EA2D8E5 0x779C +0x8EA2D8E6 0x779B +0x8EA2D8E7 0x77A2 +0x8EA2D8E8 0x77A3 +0x8EA2D8E9 0x7795 +0x8EA2D8EA 0x7799 +0x8EA2D8EB 0x7797 +0x8EA2D8EC 0x78DD +0x8EA2D8ED 0x78E9 +0x8EA2D8EE 0x78E5 +0x8EA2D8EF 0x78EA +0x8EA2D8F0 0x78DE +0x8EA2D8F1 0x78E3 +0x8EA2D8F2 0x78DB +0x8EA2D8F3 0x78E1 +0x8EA2D8F4 0x78E2 +0x8EA2D8F5 0x78ED +0x8EA2D8F6 0x78DF +0x8EA2D8F7 0x78E0 +0x8EA2D8F8 0x79A4 +0x8EA2D8F9 0x7A44 +0x8EA2D8FA 0x7A48 +0x8EA2D8FB 0x7A47 +0x8EA2D8FC 0x7AB6 +0x8EA2D8FD 0x7AB8 +0x8EA2D8FE 0x7AB5 +0x8EA2D9A1 0x7AB1 +0x8EA2D9A2 0x7AB7 +0x8EA2D9A3 0x7BDE +0x8EA2D9A4 0x7BE3 +0x8EA2D9A5 0x7BE7 +0x8EA2D9A6 0x7BDD +0x8EA2D9A7 0x7BD5 +0x8EA2D9A8 0x7BE5 +0x8EA2D9A9 0x7BDA +0x8EA2D9AA 0x7BE8 +0x8EA2D9AB 0x7BF9 +0x8EA2D9AC 0x7BD4 +0x8EA2D9AD 0x7BEA +0x8EA2D9AE 0x7BE2 +0x8EA2D9AF 0x7BDC +0x8EA2D9B0 0x7BEB +0x8EA2D9B1 0x7BD8 +0x8EA2D9B2 0x7BDF +0x8EA2D9B3 0x7CD2 +0x8EA2D9B4 0x7CD4 +0x8EA2D9B5 0x7CD7 +0x8EA2D9B6 0x7CD0 +0x8EA2D9B7 0x7CD1 +0x8EA2D9B8 0x7E12 +0x8EA2D9B9 0x7E21 +0x8EA2D9BA 0x7E17 +0x8EA2D9BB 0x7E0C +0x8EA2D9BC 0x7E1F +0x8EA2D9BD 0x7E20 +0x8EA2D9BE 0x7E13 +0x8EA2D9BF 0x7E0E +0x8EA2D9C0 0x7E1C +0x8EA2D9C1 0x7E15 +0x8EA2D9C2 0x7E1A +0x8EA2D9C3 0x7E22 +0x8EA2D9C4 0x7E0B +0x8EA2D9C5 0x7E0F +0x8EA2D9C6 0x7E16 +0x8EA2D9C7 0x7E0D +0x8EA2D9C8 0x7E14 +0x8EA2D9C9 0x7E25 +0x8EA2D9CA 0x7E24 +0x8EA2D9CB 0x7F43 +0x8EA2D9CC 0x7F7B +0x8EA2D9CD 0x7F7C +0x8EA2D9CE 0x7F7A +0x8EA2D9CF 0x7FB1 +0x8EA2D9D0 0x7FEF +0x8EA2D9D1 0x802A +0x8EA2D9D2 0x8029 +0x8EA2D9D3 0x806C +0x8EA2D9D4 0x81B1 +0x8EA2D9D5 0x81A6 +0x8EA2D9D6 0x81AE +0x8EA2D9D7 0x81B9 +0x8EA2D9D8 0x81B5 +0x8EA2D9D9 0x81AB +0x8EA2D9DA 0x81B0 +0x8EA2D9DB 0x81AC +0x8EA2D9DC 0x81B4 +0x8EA2D9DD 0x81B2 +0x8EA2D9DE 0x81B7 +0x8EA2D9DF 0x81A7 +0x8EA2D9E0 0x81F2 +0x8EA2D9E1 0x8255 +0x8EA2D9E2 0x8256 +0x8EA2D9E3 0x8257 +0x8EA2D9E4 0x8556 +0x8EA2D9E5 0x8545 +0x8EA2D9E6 0x856B +0x8EA2D9E7 0x854D +0x8EA2D9E8 0x8553 +0x8EA2D9E9 0x8561 +0x8EA2D9EA 0x8558 +0x8EA2D9EB 0x8540 +0x8EA2D9EC 0x8546 +0x8EA2D9ED 0x8564 +0x8EA2D9EE 0x8541 +0x8EA2D9EF 0x8562 +0x8EA2D9F0 0x8544 +0x8EA2D9F1 0x8551 +0x8EA2D9F2 0x8547 +0x8EA2D9F3 0x8563 +0x8EA2D9F4 0x853E +0x8EA2D9F5 0x855B +0x8EA2D9F6 0x8571 +0x8EA2D9F7 0x854E +0x8EA2D9F8 0x856E +0x8EA2D9F9 0x8575 +0x8EA2D9FA 0x8555 +0x8EA2D9FB 0x8567 +0x8EA2D9FC 0x8560 +0x8EA2D9FD 0x858C +0x8EA2D9FE 0x8566 +0x8EA2DAA1 0x855D +0x8EA2DAA2 0x8554 +0x8EA2DAA3 0x8565 +0x8EA2DAA4 0x856C +0x8EA2DAA5 0x8663 +0x8EA2DAA6 0x8665 +0x8EA2DAA7 0x8664 +0x8EA2DAA8 0x87A4 +0x8EA2DAA9 0x879B +0x8EA2DAAA 0x878F +0x8EA2DAAB 0x8797 +0x8EA2DAAC 0x8793 +0x8EA2DAAD 0x8792 +0x8EA2DAAE 0x8788 +0x8EA2DAAF 0x8781 +0x8EA2DAB0 0x8796 +0x8EA2DAB1 0x8798 +0x8EA2DAB2 0x8779 +0x8EA2DAB3 0x8787 +0x8EA2DAB4 0x87A3 +0x8EA2DAB5 0x8785 +0x8EA2DAB6 0x8790 +0x8EA2DAB7 0x8791 +0x8EA2DAB8 0x879D +0x8EA2DAB9 0x8784 +0x8EA2DABA 0x8794 +0x8EA2DABB 0x879C +0x8EA2DABC 0x879A +0x8EA2DABD 0x8789 +0x8EA2DABE 0x891E +0x8EA2DABF 0x8926 +0x8EA2DAC0 0x8930 +0x8EA2DAC1 0x892D +0x8EA2DAC2 0x892E +0x8EA2DAC3 0x8927 +0x8EA2DAC4 0x8931 +0x8EA2DAC5 0x8922 +0x8EA2DAC6 0x8929 +0x8EA2DAC7 0x8923 +0x8EA2DAC8 0x892F +0x8EA2DAC9 0x892C +0x8EA2DACA 0x891F +0x8EA2DACB 0x89F1 +0x8EA2DACC 0x8AE0 +0x8EA2DACD 0x8AE2 +0x8EA2DACE 0x8AF2 +0x8EA2DACF 0x8AF4 +0x8EA2DAD0 0x8AF5 +0x8EA2DAD1 0x8ADD +0x8EA2DAD2 0x8B14 +0x8EA2DAD3 0x8AE4 +0x8EA2DAD4 0x8ADF +0x8EA2DAD5 0x8AF0 +0x8EA2DAD6 0x8AC8 +0x8EA2DAD7 0x8ADE +0x8EA2DAD8 0x8AE1 +0x8EA2DAD9 0x8AE8 +0x8EA2DADA 0x8AFF +0x8EA2DADB 0x8AEF +0x8EA2DADC 0x8AFB +0x8EA2DADD 0x8C91 +0x8EA2DADE 0x8C92 +0x8EA2DADF 0x8C90 +0x8EA2DAE0 0x8CF5 +0x8EA2DAE1 0x8CEE +0x8EA2DAE2 0x8CF1 +0x8EA2DAE3 0x8CF0 +0x8EA2DAE4 0x8CF3 +0x8EA2DAE5 0x8D6C +0x8EA2DAE6 0x8D6E +0x8EA2DAE7 0x8DA5 +0x8EA2DAE8 0x8DA7 +0x8EA2DAE9 0x8E33 +0x8EA2DAEA 0x8E3E +0x8EA2DAEB 0x8E38 +0x8EA2DAEC 0x8E40 +0x8EA2DAED 0x8E45 +0x8EA2DAEE 0x8E36 +0x8EA2DAEF 0x8E3C +0x8EA2DAF0 0x8E3D +0x8EA2DAF1 0x8E41 +0x8EA2DAF2 0x8E30 +0x8EA2DAF3 0x8E3F +0x8EA2DAF4 0x8EBD +0x8EA2DAF5 0x8F36 +0x8EA2DAF6 0x8F2E +0x8EA2DAF7 0x8F35 +0x8EA2DAF8 0x8F32 +0x8EA2DAF9 0x8F39 +0x8EA2DAFA 0x8F37 +0x8EA2DAFB 0x8F34 +0x8EA2DAFC 0x9076 +0x8EA2DAFD 0x9079 +0x8EA2DAFE 0x907B +0x8EA2DBA1 0x9086 +0x8EA2DBA2 0x90FA +0x8EA2DBA3 0x9133 +0x8EA2DBA4 0x9135 +0x8EA2DBA5 0x9136 +0x8EA2DBA6 0x9193 +0x8EA2DBA7 0x9190 +0x8EA2DBA8 0x9191 +0x8EA2DBA9 0x918D +0x8EA2DBAA 0x918F +0x8EA2DBAB 0x9327 +0x8EA2DBAC 0x931E +0x8EA2DBAD 0x9308 +0x8EA2DBAE 0x931F +0x8EA2DBAF 0x9306 +0x8EA2DBB0 0x930F +0x8EA2DBB1 0x937A +0x8EA2DBB2 0x9338 +0x8EA2DBB3 0x933C +0x8EA2DBB4 0x931B +0x8EA2DBB5 0x9323 +0x8EA2DBB6 0x9312 +0x8EA2DBB7 0x9301 +0x8EA2DBB8 0x9346 +0x8EA2DBB9 0x932D +0x8EA2DBBA 0x930E +0x8EA2DBBB 0x930D +0x8EA2DBBC 0x92CB +0x8EA2DBBD 0x931D +0x8EA2DBBE 0x92FA +0x8EA2DBBF 0x9313 +0x8EA2DBC0 0x92F9 +0x8EA2DBC1 0x92F7 +0x8EA2DBC2 0x9334 +0x8EA2DBC3 0x9302 +0x8EA2DBC4 0x9324 +0x8EA2DBC5 0x92FF +0x8EA2DBC6 0x9329 +0x8EA2DBC7 0x9339 +0x8EA2DBC8 0x9335 +0x8EA2DBC9 0x932A +0x8EA2DBCA 0x9314 +0x8EA2DBCB 0x930C +0x8EA2DBCC 0x930B +0x8EA2DBCD 0x92FE +0x8EA2DBCE 0x9309 +0x8EA2DBCF 0x9300 +0x8EA2DBD0 0x92FB +0x8EA2DBD1 0x9316 +0x8EA2DBD2 0x95BC +0x8EA2DBD3 0x95CD +0x8EA2DBD4 0x95BE +0x8EA2DBD5 0x95B9 +0x8EA2DBD6 0x95BA +0x8EA2DBD7 0x95B6 +0x8EA2DBD8 0x95BF +0x8EA2DBD9 0x95B5 +0x8EA2DBDA 0x95BD +0x8EA2DBDB 0x96A9 +0x8EA2DBDC 0x96D4 +0x8EA2DBDD 0x970B +0x8EA2DBDE 0x9712 +0x8EA2DBDF 0x9710 +0x8EA2DBE0 0x9799 +0x8EA2DBE1 0x9797 +0x8EA2DBE2 0x9794 +0x8EA2DBE3 0x97F0 +0x8EA2DBE4 0x97F8 +0x8EA2DBE5 0x9835 +0x8EA2DBE6 0x982F +0x8EA2DBE7 0x9832 +0x8EA2DBE8 0x9924 +0x8EA2DBE9 0x991F +0x8EA2DBEA 0x9927 +0x8EA2DBEB 0x9929 +0x8EA2DBEC 0x999E +0x8EA2DBED 0x99EE +0x8EA2DBEE 0x99EC +0x8EA2DBEF 0x99E5 +0x8EA2DBF0 0x99E4 +0x8EA2DBF1 0x99F0 +0x8EA2DBF2 0x99E3 +0x8EA2DBF3 0x99EA +0x8EA2DBF4 0x99E9 +0x8EA2DBF5 0x99E7 +0x8EA2DBF6 0x9AB9 +0x8EA2DBF7 0x9ABF +0x8EA2DBF8 0x9AB4 +0x8EA2DBF9 0x9ABB +0x8EA2DBFA 0x9AF6 +0x8EA2DBFB 0x9AFA +0x8EA2DBFC 0x9AF9 +0x8EA2DBFD 0x9AF7 +0x8EA2DBFE 0x9B33 +0x8EA2DCA1 0x9B80 +0x8EA2DCA2 0x9B85 +0x8EA2DCA3 0x9B87 +0x8EA2DCA4 0x9B7C +0x8EA2DCA5 0x9B7E +0x8EA2DCA6 0x9B7B +0x8EA2DCA7 0x9B82 +0x8EA2DCA8 0x9B93 +0x8EA2DCA9 0x9B92 +0x8EA2DCAA 0x9B90 +0x8EA2DCAB 0x9B7A +0x8EA2DCAC 0x9B95 +0x8EA2DCAD 0x9B7D +0x8EA2DCAE 0x9B88 +0x8EA2DCAF 0x9D25 +0x8EA2DCB0 0x9D17 +0x8EA2DCB1 0x9D20 +0x8EA2DCB2 0x9D1E +0x8EA2DCB3 0x9D14 +0x8EA2DCB4 0x9D29 +0x8EA2DCB5 0x9D1D +0x8EA2DCB6 0x9D18 +0x8EA2DCB7 0x9D22 +0x8EA2DCB8 0x9D10 +0x8EA2DCB9 0x9D19 +0x8EA2DCBA 0x9D1F +0x8EA2DCBB 0x9E88 +0x8EA2DCBC 0x9E86 +0x8EA2DCBD 0x9E87 +0x8EA2DCBE 0x9EAE +0x8EA2DCBF 0x9EAD +0x8EA2DCC0 0x9ED5 +0x8EA2DCC1 0x9ED6 +0x8EA2DCC2 0x9EFA +0x8EA2DCC3 0x9F12 +0x8EA2DCC4 0x9F3D +0x8EA2DCC5 0x5126 +0x8EA2DCC6 0x5125 +0x8EA2DCC7 0x5122 +0x8EA2DCC8 0x5124 +0x8EA2DCC9 0x5120 +0x8EA2DCCA 0x5129 +0x8EA2DCCB 0x52F4 +0x8EA2DCCC 0x5693 +0x8EA2DCCD 0x568C +0x8EA2DCCE 0x568D +0x8EA2DCCF 0x5686 +0x8EA2DCD0 0x5684 +0x8EA2DCD1 0x5683 +0x8EA2DCD2 0x567E +0x8EA2DCD3 0x5682 +0x8EA2DCD4 0x567F +0x8EA2DCD5 0x5681 +0x8EA2DCD6 0x58D6 +0x8EA2DCD7 0x58D4 +0x8EA2DCD8 0x58CF +0x8EA2DCD9 0x58D2 +0x8EA2DCDA 0x5B2D +0x8EA2DCDB 0x5B25 +0x8EA2DCDC 0x5B32 +0x8EA2DCDD 0x5B23 +0x8EA2DCDE 0x5B2C +0x8EA2DCDF 0x5B27 +0x8EA2DCE0 0x5B26 +0x8EA2DCE1 0x5B2F +0x8EA2DCE2 0x5B2E +0x8EA2DCE3 0x5B7B +0x8EA2DCE4 0x5BF1 +0x8EA2DCE5 0x5BF2 +0x8EA2DCE6 0x5DB7 +0x8EA2DCE7 0x5E6C +0x8EA2DCE8 0x5E6A +0x8EA2DCE9 0x5FBE +0x8EA2DCEA 0x61C3 +0x8EA2DCEB 0x61B5 +0x8EA2DCEC 0x61BC +0x8EA2DCED 0x61E7 +0x8EA2DCEE 0x61E0 +0x8EA2DCEF 0x61E5 +0x8EA2DCF0 0x61E4 +0x8EA2DCF1 0x61E8 +0x8EA2DCF2 0x61DE +0x8EA2DCF3 0x64EF +0x8EA2DCF4 0x64E9 +0x8EA2DCF5 0x64E3 +0x8EA2DCF6 0x64EB +0x8EA2DCF7 0x64E4 +0x8EA2DCF8 0x64E8 +0x8EA2DCF9 0x6581 +0x8EA2DCFA 0x6580 +0x8EA2DCFB 0x65B6 +0x8EA2DCFC 0x65DA +0x8EA2DCFD 0x66D2 +0x8EA2DCFE 0x6A8D +0x8EA2DDA1 0x6A96 +0x8EA2DDA2 0x6A81 +0x8EA2DDA3 0x6AA5 +0x8EA2DDA4 0x6A89 +0x8EA2DDA5 0x6A9F +0x8EA2DDA6 0x6A9B +0x8EA2DDA7 0x6AA1 +0x8EA2DDA8 0x6A9E +0x8EA2DDA9 0x6A87 +0x8EA2DDAA 0x6A93 +0x8EA2DDAB 0x6A8E +0x8EA2DDAC 0x6A95 +0x8EA2DDAD 0x6A83 +0x8EA2DDAE 0x6AA8 +0x8EA2DDAF 0x6AA4 +0x8EA2DDB0 0x6A91 +0x8EA2DDB1 0x6A7F +0x8EA2DDB2 0x6AA6 +0x8EA2DDB3 0x6A9A +0x8EA2DDB4 0x6A85 +0x8EA2DDB5 0x6A8C +0x8EA2DDB6 0x6A92 +0x8EA2DDB7 0x6B5B +0x8EA2DDB8 0x6BAD +0x8EA2DDB9 0x6C09 +0x8EA2DDBA 0x6FCC +0x8EA2DDBB 0x6FA9 +0x8EA2DDBC 0x6FF4 +0x8EA2DDBD 0x6FD4 +0x8EA2DDBE 0x6FE3 +0x8EA2DDBF 0x6FDC +0x8EA2DDC0 0x6FED +0x8EA2DDC1 0x6FE7 +0x8EA2DDC2 0x6FE6 +0x8EA2DDC3 0x6FDE +0x8EA2DDC4 0x6FF2 +0x8EA2DDC5 0x6FDD +0x8EA2DDC6 0x6FE2 +0x8EA2DDC7 0x6FE8 +0x8EA2DDC8 0x71E1 +0x8EA2DDC9 0x71F1 +0x8EA2DDCA 0x71E8 +0x8EA2DDCB 0x71F2 +0x8EA2DDCC 0x71E4 +0x8EA2DDCD 0x71F0 +0x8EA2DDCE 0x71E2 +0x8EA2DDCF 0x7373 +0x8EA2DDD0 0x736E +0x8EA2DDD1 0x736F +0x8EA2DDD2 0x7497 +0x8EA2DDD3 0x74B2 +0x8EA2DDD4 0x74AB +0x8EA2DDD5 0x7490 +0x8EA2DDD6 0x74AA +0x8EA2DDD7 0x74AD +0x8EA2DDD8 0x74B1 +0x8EA2DDD9 0x74A5 +0x8EA2DDDA 0x74AF +0x8EA2DDDB 0x7510 +0x8EA2DDDC 0x7511 +0x8EA2DDDD 0x7512 +0x8EA2DDDE 0x750F +0x8EA2DDDF 0x7584 +0x8EA2DDE0 0x7643 +0x8EA2DDE1 0x7648 +0x8EA2DDE2 0x7649 +0x8EA2DDE3 0x7647 +0x8EA2DDE4 0x76A4 +0x8EA2DDE5 0x76E9 +0x8EA2DDE6 0x77B5 +0x8EA2DDE7 0x77AB +0x8EA2DDE8 0x77B2 +0x8EA2DDE9 0x77B7 +0x8EA2DDEA 0x77B6 +0x8EA2DDEB 0x77B4 +0x8EA2DDEC 0x77B1 +0x8EA2DDED 0x77A8 +0x8EA2DDEE 0x77F0 +0x8EA2DDEF 0x78F3 +0x8EA2DDF0 0x78FD +0x8EA2DDF1 0x7902 +0x8EA2DDF2 0x78FB +0x8EA2DDF3 0x78FC +0x8EA2DDF4 0x78FF +0x8EA2DDF5 0x78F2 +0x8EA2DDF6 0x7905 +0x8EA2DDF7 0x78F9 +0x8EA2DDF8 0x78FE +0x8EA2DDF9 0x7904 +0x8EA2DDFA 0x79AB +0x8EA2DDFB 0x79A8 +0x8EA2DDFC 0x7A5C +0x8EA2DDFD 0x7A5B +0x8EA2DDFE 0x7A56 +0x8EA2DEA1 0x7A58 +0x8EA2DEA2 0x7A54 +0x8EA2DEA3 0x7A5A +0x8EA2DEA4 0x7ABE +0x8EA2DEA5 0x7AC0 +0x8EA2DEA6 0x7AC1 +0x8EA2DEA7 0x7C05 +0x8EA2DEA8 0x7C0F +0x8EA2DEA9 0x7BF2 +0x8EA2DEAA 0x7C00 +0x8EA2DEAB 0x7BFF +0x8EA2DEAC 0x7BFB +0x8EA2DEAD 0x7C0E +0x8EA2DEAE 0x7BF4 +0x8EA2DEAF 0x7C0B +0x8EA2DEB0 0x7BF3 +0x8EA2DEB1 0x7C02 +0x8EA2DEB2 0x7C09 +0x8EA2DEB3 0x7C03 +0x8EA2DEB4 0x7C01 +0x8EA2DEB5 0x7BF8 +0x8EA2DEB6 0x7BFD +0x8EA2DEB7 0x7C06 +0x8EA2DEB8 0x7BF0 +0x8EA2DEB9 0x7BF1 +0x8EA2DEBA 0x7C10 +0x8EA2DEBB 0x7C0A +0x8EA2DEBC 0x7CE8 +0x8EA2DEBD 0x7E2D +0x8EA2DEBE 0x7E3C +0x8EA2DEBF 0x7E42 +0x8EA2DEC0 0x7E33 +0x8EA2DEC1 0x9848 +0x8EA2DEC2 0x7E38 +0x8EA2DEC3 0x7E2A +0x8EA2DEC4 0x7E49 +0x8EA2DEC5 0x7E40 +0x8EA2DEC6 0x7E47 +0x8EA2DEC7 0x7E29 +0x8EA2DEC8 0x7E4C +0x8EA2DEC9 0x7E30 +0x8EA2DECA 0x7E3B +0x8EA2DECB 0x7E36 +0x8EA2DECC 0x7E44 +0x8EA2DECD 0x7E3A +0x8EA2DECE 0x7F45 +0x8EA2DECF 0x7F7F +0x8EA2DED0 0x7F7E +0x8EA2DED1 0x7F7D +0x8EA2DED2 0x7FF4 +0x8EA2DED3 0x7FF2 +0x8EA2DED4 0x802C +0x8EA2DED5 0x81BB +0x8EA2DED6 0x81C4 +0x8EA2DED7 0x81CC +0x8EA2DED8 0x81CA +0x8EA2DED9 0x81C5 +0x8EA2DEDA 0x81C7 +0x8EA2DEDB 0x81BC +0x8EA2DEDC 0x81E9 +0x8EA2DEDD 0x825B +0x8EA2DEDE 0x825A +0x8EA2DEDF 0x825C +0x8EA2DEE0 0x8583 +0x8EA2DEE1 0x8580 +0x8EA2DEE2 0x858F +0x8EA2DEE3 0x85A7 +0x8EA2DEE4 0x8595 +0x8EA2DEE5 0x85A0 +0x8EA2DEE6 0x858B +0x8EA2DEE7 0x85A3 +0x8EA2DEE8 0x857B +0x8EA2DEE9 0x85A4 +0x8EA2DEEA 0x859A +0x8EA2DEEB 0x859E +0x8EA2DEEC 0x8577 +0x8EA2DEED 0x857C +0x8EA2DEEE 0x8589 +0x8EA2DEEF 0x85A1 +0x8EA2DEF0 0x857A +0x8EA2DEF1 0x8578 +0x8EA2DEF2 0x8557 +0x8EA2DEF3 0x858E +0x8EA2DEF4 0x8596 +0x8EA2DEF5 0x8586 +0x8EA2DEF6 0x858D +0x8EA2DEF7 0x8599 +0x8EA2DEF8 0x859D +0x8EA2DEF9 0x8581 +0x8EA2DEFA 0x85A2 +0x8EA2DEFB 0x8582 +0x8EA2DEFC 0x8588 +0x8EA2DEFD 0x8585 +0x8EA2DEFE 0x8579 +0x8EA2DFA1 0x8576 +0x8EA2DFA2 0x8598 +0x8EA2DFA3 0x8590 +0x8EA2DFA4 0x859F +0x8EA2DFA5 0x8668 +0x8EA2DFA6 0x87BE +0x8EA2DFA7 0x87AA +0x8EA2DFA8 0x87AD +0x8EA2DFA9 0x87C5 +0x8EA2DFAA 0x87B0 +0x8EA2DFAB 0x87AC +0x8EA2DFAC 0x87B9 +0x8EA2DFAD 0x87B5 +0x8EA2DFAE 0x87BC +0x8EA2DFAF 0x87AE +0x8EA2DFB0 0x87C9 +0x8EA2DFB1 0x87C3 +0x8EA2DFB2 0x87C2 +0x8EA2DFB3 0x87CC +0x8EA2DFB4 0x87B7 +0x8EA2DFB5 0x87AF +0x8EA2DFB6 0x87C4 +0x8EA2DFB7 0x87CA +0x8EA2DFB8 0x87B4 +0x8EA2DFB9 0x87B6 +0x8EA2DFBA 0x87BF +0x8EA2DFBB 0x87B8 +0x8EA2DFBC 0x87BD +0x8EA2DFBD 0x87DE +0x8EA2DFBE 0x87B2 +0x8EA2DFBF 0x8935 +0x8EA2DFC0 0x8933 +0x8EA2DFC1 0x893C +0x8EA2DFC2 0x893E +0x8EA2DFC3 0x8941 +0x8EA2DFC4 0x8952 +0x8EA2DFC5 0x8937 +0x8EA2DFC6 0x8942 +0x8EA2DFC7 0x89AD +0x8EA2DFC8 0x89AF +0x8EA2DFC9 0x89AE +0x8EA2DFCA 0x89F2 +0x8EA2DFCB 0x89F3 +0x8EA2DFCC 0x8B1E +0x8EA2DFCD 0x8B18 +0x8EA2DFCE 0x8B16 +0x8EA2DFCF 0x8B11 +0x8EA2DFD0 0x8B05 +0x8EA2DFD1 0x8B0B +0x8EA2DFD2 0x8B22 +0x8EA2DFD3 0x8B0F +0x8EA2DFD4 0x8B12 +0x8EA2DFD5 0x8B15 +0x8EA2DFD6 0x8B07 +0x8EA2DFD7 0x8B0D +0x8EA2DFD8 0x8B08 +0x8EA2DFD9 0x8B06 +0x8EA2DFDA 0x8B1C +0x8EA2DFDB 0x8B13 +0x8EA2DFDC 0x8B1A +0x8EA2DFDD 0x8C4F +0x8EA2DFDE 0x8C70 +0x8EA2DFDF 0x8C72 +0x8EA2DFE0 0x8C71 +0x8EA2DFE1 0x8C6F +0x8EA2DFE2 0x8C95 +0x8EA2DFE3 0x8C94 +0x8EA2DFE4 0x8CF9 +0x8EA2DFE5 0x8D6F +0x8EA2DFE6 0x8E4E +0x8EA2DFE7 0x8E4D +0x8EA2DFE8 0x8E53 +0x8EA2DFE9 0x8E50 +0x8EA2DFEA 0x8E4C +0x8EA2DFEB 0x8E47 +0x8EA2DFEC 0x8F43 +0x8EA2DFED 0x8F40 +0x8EA2DFEE 0x9085 +0x8EA2DFEF 0x907E +0x8EA2DFF0 0x9138 +0x8EA2DFF1 0x919A +0x8EA2DFF2 0x91A2 +0x8EA2DFF3 0x919B +0x8EA2DFF4 0x9199 +0x8EA2DFF5 0x919F +0x8EA2DFF6 0x91A1 +0x8EA2DFF7 0x919D +0x8EA2DFF8 0x91A0 +0x8EA2DFF9 0x93A1 +0x8EA2DFFA 0x9383 +0x8EA2DFFB 0x93AF +0x8EA2DFFC 0x9364 +0x8EA2DFFD 0x9356 +0x8EA2DFFE 0x9347 +0x8EA2E0A1 0x937C +0x8EA2E0A2 0x9358 +0x8EA2E0A3 0x935C +0x8EA2E0A4 0x9376 +0x8EA2E0A5 0x9349 +0x8EA2E0A6 0x9350 +0x8EA2E0A7 0x9351 +0x8EA2E0A8 0x9360 +0x8EA2E0A9 0x936D +0x8EA2E0AA 0x938F +0x8EA2E0AB 0x934C +0x8EA2E0AC 0x936A +0x8EA2E0AD 0x9379 +0x8EA2E0AE 0x9357 +0x8EA2E0AF 0x9355 +0x8EA2E0B0 0x9352 +0x8EA2E0B1 0x934F +0x8EA2E0B2 0x9371 +0x8EA2E0B3 0x9377 +0x8EA2E0B4 0x937B +0x8EA2E0B5 0x9361 +0x8EA2E0B6 0x935E +0x8EA2E0B7 0x9363 +0x8EA2E0B8 0x9367 +0x8EA2E0B9 0x934E +0x8EA2E0BA 0x9359 +0x8EA2E0BB 0x95C7 +0x8EA2E0BC 0x95C0 +0x8EA2E0BD 0x95C9 +0x8EA2E0BE 0x95C3 +0x8EA2E0BF 0x95C5 +0x8EA2E0C0 0x95B7 +0x8EA2E0C1 0x96AE +0x8EA2E0C2 0x96B0 +0x8EA2E0C3 0x96AC +0x8EA2E0C4 0x9720 +0x8EA2E0C5 0x971F +0x8EA2E0C6 0x9718 +0x8EA2E0C7 0x971D +0x8EA2E0C8 0x9719 +0x8EA2E0C9 0x979A +0x8EA2E0CA 0x97A1 +0x8EA2E0CB 0x979C +0x8EA2E0CC 0x979E +0x8EA2E0CD 0x979D +0x8EA2E0CE 0x97D5 +0x8EA2E0CF 0x97D4 +0x8EA2E0D0 0x97F1 +0x8EA2E0D1 0x9841 +0x8EA2E0D2 0x9844 +0x8EA2E0D3 0x984A +0x8EA2E0D4 0x9849 +0x8EA2E0D5 0x9845 +0x8EA2E0D6 0x9843 +0x8EA2E0D7 0x9925 +0x8EA2E0D8 0x992B +0x8EA2E0D9 0x992C +0x8EA2E0DA 0x992A +0x8EA2E0DB 0x9933 +0x8EA2E0DC 0x9932 +0x8EA2E0DD 0x992F +0x8EA2E0DE 0x992D +0x8EA2E0DF 0x9931 +0x8EA2E0E0 0x9930 +0x8EA2E0E1 0x9998 +0x8EA2E0E2 0x99A3 +0x8EA2E0E3 0x99A1 +0x8EA2E0E4 0x9A02 +0x8EA2E0E5 0x99FA +0x8EA2E0E6 0x99F4 +0x8EA2E0E7 0x99F7 +0x8EA2E0E8 0x99F9 +0x8EA2E0E9 0x99F8 +0x8EA2E0EA 0x99F6 +0x8EA2E0EB 0x99FB +0x8EA2E0EC 0x99FD +0x8EA2E0ED 0x99FE +0x8EA2E0EE 0x99FC +0x8EA2E0EF 0x9A03 +0x8EA2E0F0 0x9ABE +0x8EA2E0F1 0x9AFE +0x8EA2E0F2 0x9AFD +0x8EA2E0F3 0x9B01 +0x8EA2E0F4 0x9AFC +0x8EA2E0F5 0x9B48 +0x8EA2E0F6 0x9B9A +0x8EA2E0F7 0x9BA8 +0x8EA2E0F8 0x9B9E +0x8EA2E0F9 0x9B9B +0x8EA2E0FA 0x9BA6 +0x8EA2E0FB 0x9BA1 +0x8EA2E0FC 0x9BA5 +0x8EA2E0FD 0x9BA4 +0x8EA2E0FE 0x9B86 +0x8EA2E1A1 0x9BA2 +0x8EA2E1A2 0x9BA0 +0x8EA2E1A3 0x9BAF +0x8EA2E1A4 0x9D33 +0x8EA2E1A5 0x9D41 +0x8EA2E1A6 0x9D67 +0x8EA2E1A7 0x9D36 +0x8EA2E1A8 0x9D2E +0x8EA2E1A9 0x9D2F +0x8EA2E1AA 0x9D31 +0x8EA2E1AB 0x9D38 +0x8EA2E1AC 0x9D30 +0x8EA2E1AD 0x9D45 +0x8EA2E1AE 0x9D42 +0x8EA2E1AF 0x9D43 +0x8EA2E1B0 0x9D3E +0x8EA2E1B1 0x9D37 +0x8EA2E1B2 0x9D40 +0x8EA2E1B3 0x9D3D +0x8EA2E1B4 0x7FF5 +0x8EA2E1B5 0x9D2D +0x8EA2E1B6 0x9E8A +0x8EA2E1B7 0x9E89 +0x8EA2E1B8 0x9E8D +0x8EA2E1B9 0x9EB0 +0x8EA2E1BA 0x9EC8 +0x8EA2E1BB 0x9EDA +0x8EA2E1BC 0x9EFB +0x8EA2E1BD 0x9EFF +0x8EA2E1BE 0x9F24 +0x8EA2E1BF 0x9F23 +0x8EA2E1C0 0x9F22 +0x8EA2E1C1 0x9F54 +0x8EA2E1C2 0x9FA0 +0x8EA2E1C3 0x5131 +0x8EA2E1C4 0x512D +0x8EA2E1C5 0x512E +0x8EA2E1C6 0x5698 +0x8EA2E1C7 0x569C +0x8EA2E1C8 0x5697 +0x8EA2E1C9 0x569A +0x8EA2E1CA 0x569D +0x8EA2E1CB 0x5699 +0x8EA2E1CC 0x5970 +0x8EA2E1CD 0x5B3C +0x8EA2E1CE 0x5C69 +0x8EA2E1CF 0x5C6A +0x8EA2E1D0 0x5DC0 +0x8EA2E1D1 0x5E6D +0x8EA2E1D2 0x5E6E +0x8EA2E1D3 0x61D8 +0x8EA2E1D4 0x61DF +0x8EA2E1D5 0x61ED +0x8EA2E1D6 0x61EE +0x8EA2E1D7 0x61F1 +0x8EA2E1D8 0x61EA +0x8EA2E1D9 0x61F0 +0x8EA2E1DA 0x61EB +0x8EA2E1DB 0x61D6 +0x8EA2E1DC 0x61E9 +0x8EA2E1DD 0x64FF +0x8EA2E1DE 0x6504 +0x8EA2E1DF 0x64FD +0x8EA2E1E0 0x64F8 +0x8EA2E1E1 0x6501 +0x8EA2E1E2 0x6503 +0x8EA2E1E3 0x64FC +0x8EA2E1E4 0x6594 +0x8EA2E1E5 0x65DB +0x8EA2E1E6 0x66DA +0x8EA2E1E7 0x66DB +0x8EA2E1E8 0x66D8 +0x8EA2E1E9 0x6AC5 +0x8EA2E1EA 0x6AB9 +0x8EA2E1EB 0x6ABD +0x8EA2E1EC 0x6AE1 +0x8EA2E1ED 0x6AC6 +0x8EA2E1EE 0x6ABA +0x8EA2E1EF 0x6AB6 +0x8EA2E1F0 0x6AB7 +0x8EA2E1F1 0x6AC7 +0x8EA2E1F2 0x6AB4 +0x8EA2E1F3 0x6AAD +0x8EA2E1F4 0x6B5E +0x8EA2E1F5 0x6BC9 +0x8EA2E1F6 0x6C0B +0x8EA2E1F7 0x7007 +0x8EA2E1F8 0x700C +0x8EA2E1F9 0x700D +0x8EA2E1FA 0x7001 +0x8EA2E1FB 0x7005 +0x8EA2E1FC 0x7014 +0x8EA2E1FD 0x700E +0x8EA2E1FE 0x6FFF +0x8EA2E2A1 0x7000 +0x8EA2E2A2 0x6FFB +0x8EA2E2A3 0x7026 +0x8EA2E2A4 0x6FFC +0x8EA2E2A5 0x6FF7 +0x8EA2E2A6 0x700A +0x8EA2E2A7 0x7201 +0x8EA2E2A8 0x71FF +0x8EA2E2A9 0x71F9 +0x8EA2E2AA 0x7203 +0x8EA2E2AB 0x71FD +0x8EA2E2AC 0x7376 +0x8EA2E2AD 0x74B8 +0x8EA2E2AE 0x74C0 +0x8EA2E2AF 0x74B5 +0x8EA2E2B0 0x74C1 +0x8EA2E2B1 0x74BE +0x8EA2E2B2 0x74B6 +0x8EA2E2B3 0x74BB +0x8EA2E2B4 0x74C2 +0x8EA2E2B5 0x7514 +0x8EA2E2B6 0x7513 +0x8EA2E2B7 0x765C +0x8EA2E2B8 0x7664 +0x8EA2E2B9 0x7659 +0x8EA2E2BA 0x7650 +0x8EA2E2BB 0x7653 +0x8EA2E2BC 0x7657 +0x8EA2E2BD 0x765A +0x8EA2E2BE 0x76A6 +0x8EA2E2BF 0x76BD +0x8EA2E2C0 0x76EC +0x8EA2E2C1 0x77C2 +0x8EA2E2C2 0x77BA +0x8EA2E2C3 0x790C +0x8EA2E2C4 0x7913 +0x8EA2E2C5 0x7914 +0x8EA2E2C6 0x7909 +0x8EA2E2C7 0x7910 +0x8EA2E2C8 0x7912 +0x8EA2E2C9 0x7911 +0x8EA2E2CA 0x79AD +0x8EA2E2CB 0x79AC +0x8EA2E2CC 0x7A5F +0x8EA2E2CD 0x7C1C +0x8EA2E2CE 0x7C29 +0x8EA2E2CF 0x7C19 +0x8EA2E2D0 0x7C20 +0x8EA2E2D1 0x7C1F +0x8EA2E2D2 0x7C2D +0x8EA2E2D3 0x7C1D +0x8EA2E2D4 0x7C26 +0x8EA2E2D5 0x7C28 +0x8EA2E2D6 0x7C22 +0x8EA2E2D7 0x7C25 +0x8EA2E2D8 0x7C30 +0x8EA2E2D9 0x7E5C +0x8EA2E2DA 0x7E50 +0x8EA2E2DB 0x7E56 +0x8EA2E2DC 0x7E63 +0x8EA2E2DD 0x7E58 +0x8EA2E2DE 0x7E62 +0x8EA2E2DF 0x7E5F +0x8EA2E2E0 0x7E51 +0x8EA2E2E1 0x7E60 +0x8EA2E2E2 0x7E57 +0x8EA2E2E3 0x7E53 +0x8EA2E2E4 0x7FB5 +0x8EA2E2E5 0x7FB3 +0x8EA2E2E6 0x7FF7 +0x8EA2E2E7 0x7FF8 +0x8EA2E2E8 0x8075 +0x8EA2E2E9 0x81D1 +0x8EA2E2EA 0x81D2 +0x8EA2E2EB 0x81D0 +0x8EA2E2EC 0x825F +0x8EA2E2ED 0x825E +0x8EA2E2EE 0x85B4 +0x8EA2E2EF 0x85C6 +0x8EA2E2F0 0x85C0 +0x8EA2E2F1 0x85C3 +0x8EA2E2F2 0x85C2 +0x8EA2E2F3 0x85B3 +0x8EA2E2F4 0x85B5 +0x8EA2E2F5 0x85BD +0x8EA2E2F6 0x85C7 +0x8EA2E2F7 0x85C4 +0x8EA2E2F8 0x85BF +0x8EA2E2F9 0x85CB +0x8EA2E2FA 0x85CE +0x8EA2E2FB 0x85C8 +0x8EA2E2FC 0x85C5 +0x8EA2E2FD 0x85B1 +0x8EA2E2FE 0x85B6 +0x8EA2E3A1 0x85D2 +0x8EA2E3A2 0x8624 +0x8EA2E3A3 0x85B8 +0x8EA2E3A4 0x85B7 +0x8EA2E3A5 0x85BE +0x8EA2E3A6 0x8669 +0x8EA2E3A7 0x87E7 +0x8EA2E3A8 0x87E6 +0x8EA2E3A9 0x87E2 +0x8EA2E3AA 0x87DB +0x8EA2E3AB 0x87EB +0x8EA2E3AC 0x87EA +0x8EA2E3AD 0x87E5 +0x8EA2E3AE 0x87DF +0x8EA2E3AF 0x87F3 +0x8EA2E3B0 0x87E4 +0x8EA2E3B1 0x87D4 +0x8EA2E3B2 0x87DC +0x8EA2E3B3 0x87D3 +0x8EA2E3B4 0x87ED +0x8EA2E3B5 0x87D8 +0x8EA2E3B6 0x87E3 +0x8EA2E3B7 0x87D7 +0x8EA2E3B8 0x87D9 +0x8EA2E3B9 0x8801 +0x8EA2E3BA 0x87F4 +0x8EA2E3BB 0x87E8 +0x8EA2E3BC 0x87DD +0x8EA2E3BD 0x8953 +0x8EA2E3BE 0x894B +0x8EA2E3BF 0x894F +0x8EA2E3C0 0x894C +0x8EA2E3C1 0x8946 +0x8EA2E3C2 0x8950 +0x8EA2E3C3 0x8951 +0x8EA2E3C4 0x8949 +0x8EA2E3C5 0x8B2A +0x8EA2E3C6 0x8B27 +0x8EA2E3C7 0x8B23 +0x8EA2E3C8 0x8B33 +0x8EA2E3C9 0x8B30 +0x8EA2E3CA 0x8B35 +0x8EA2E3CB 0x8B47 +0x8EA2E3CC 0x8B2F +0x8EA2E3CD 0x8B3C +0x8EA2E3CE 0x8B3E +0x8EA2E3CF 0x8B31 +0x8EA2E3D0 0x8B25 +0x8EA2E3D1 0x8B37 +0x8EA2E3D2 0x8B26 +0x8EA2E3D3 0x8B36 +0x8EA2E3D4 0x8B2E +0x8EA2E3D5 0x8B24 +0x8EA2E3D6 0x8B3B +0x8EA2E3D7 0x8B3D +0x8EA2E3D8 0x8B3A +0x8EA2E3D9 0x8C42 +0x8EA2E3DA 0x8C75 +0x8EA2E3DB 0x8C99 +0x8EA2E3DC 0x8C98 +0x8EA2E3DD 0x8C97 +0x8EA2E3DE 0x8CFE +0x8EA2E3DF 0x8D04 +0x8EA2E3E0 0x8D02 +0x8EA2E3E1 0x8D00 +0x8EA2E3E2 0x8E5C +0x8EA2E3E3 0x8E62 +0x8EA2E3E4 0x8E60 +0x8EA2E3E5 0x8E57 +0x8EA2E3E6 0x8E56 +0x8EA2E3E7 0x8E5E +0x8EA2E3E8 0x8E65 +0x8EA2E3E9 0x8E67 +0x8EA2E3EA 0x8E5B +0x8EA2E3EB 0x8E5A +0x8EA2E3EC 0x8E61 +0x8EA2E3ED 0x8E5D +0x8EA2E3EE 0x8E69 +0x8EA2E3EF 0x8E54 +0x8EA2E3F0 0x8F46 +0x8EA2E3F1 0x8F47 +0x8EA2E3F2 0x8F48 +0x8EA2E3F3 0x8F4B +0x8EA2E3F4 0x9128 +0x8EA2E3F5 0x913A +0x8EA2E3F6 0x913B +0x8EA2E3F7 0x913E +0x8EA2E3F8 0x91A8 +0x8EA2E3F9 0x91A5 +0x8EA2E3FA 0x91A7 +0x8EA2E3FB 0x91AF +0x8EA2E3FC 0x91AA +0x8EA2E3FD 0x93B5 +0x8EA2E3FE 0x938C +0x8EA2E4A1 0x9392 +0x8EA2E4A2 0x93B7 +0x8EA2E4A3 0x939B +0x8EA2E4A4 0x939D +0x8EA2E4A5 0x9389 +0x8EA2E4A6 0x93A7 +0x8EA2E4A7 0x938E +0x8EA2E4A8 0x93AA +0x8EA2E4A9 0x939E +0x8EA2E4AA 0x93A6 +0x8EA2E4AB 0x9395 +0x8EA2E4AC 0x9388 +0x8EA2E4AD 0x9399 +0x8EA2E4AE 0x939F +0x8EA2E4AF 0x9380 +0x8EA2E4B0 0x938D +0x8EA2E4B1 0x93B1 +0x8EA2E4B2 0x9391 +0x8EA2E4B3 0x93B2 +0x8EA2E4B4 0x93A4 +0x8EA2E4B5 0x93A8 +0x8EA2E4B6 0x93B4 +0x8EA2E4B7 0x93A3 +0x8EA2E4B8 0x95D2 +0x8EA2E4B9 0x95D3 +0x8EA2E4BA 0x95D1 +0x8EA2E4BB 0x96B3 +0x8EA2E4BC 0x96D7 +0x8EA2E4BD 0x96DA +0x8EA2E4BE 0x5DC2 +0x8EA2E4BF 0x96DF +0x8EA2E4C0 0x96D8 +0x8EA2E4C1 0x96DD +0x8EA2E4C2 0x9723 +0x8EA2E4C3 0x9722 +0x8EA2E4C4 0x9725 +0x8EA2E4C5 0x97AC +0x8EA2E4C6 0x97AE +0x8EA2E4C7 0x97A8 +0x8EA2E4C8 0x97AB +0x8EA2E4C9 0x97A4 +0x8EA2E4CA 0x97AA +0x8EA2E4CB 0x97A2 +0x8EA2E4CC 0x97A5 +0x8EA2E4CD 0x97D7 +0x8EA2E4CE 0x97D9 +0x8EA2E4CF 0x97D6 +0x8EA2E4D0 0x97D8 +0x8EA2E4D1 0x97FA +0x8EA2E4D2 0x9850 +0x8EA2E4D3 0x9851 +0x8EA2E4D4 0x9852 +0x8EA2E4D5 0x98B8 +0x8EA2E4D6 0x9941 +0x8EA2E4D7 0x993C +0x8EA2E4D8 0x993A +0x8EA2E4D9 0x9A0F +0x8EA2E4DA 0x9A0B +0x8EA2E4DB 0x9A09 +0x8EA2E4DC 0x9A0D +0x8EA2E4DD 0x9A04 +0x8EA2E4DE 0x9A11 +0x8EA2E4DF 0x9A0A +0x8EA2E4E0 0x9A05 +0x8EA2E4E1 0x9A07 +0x8EA2E4E2 0x9A06 +0x8EA2E4E3 0x9AC0 +0x8EA2E4E4 0x9ADC +0x8EA2E4E5 0x9B08 +0x8EA2E4E6 0x9B04 +0x8EA2E4E7 0x9B05 +0x8EA2E4E8 0x9B29 +0x8EA2E4E9 0x9B35 +0x8EA2E4EA 0x9B4A +0x8EA2E4EB 0x9B4C +0x8EA2E4EC 0x9B4B +0x8EA2E4ED 0x9BC7 +0x8EA2E4EE 0x9BC6 +0x8EA2E4EF 0x9BC3 +0x8EA2E4F0 0x9BBF +0x8EA2E4F1 0x9BC1 +0x8EA2E4F2 0x9BB5 +0x8EA2E4F3 0x9BB8 +0x8EA2E4F4 0x9BD3 +0x8EA2E4F5 0x9BB6 +0x8EA2E4F6 0x9BC4 +0x8EA2E4F7 0x9BB9 +0x8EA2E4F8 0x9BBD +0x8EA2E4F9 0x9D5C +0x8EA2E4FA 0x9D53 +0x8EA2E4FB 0x9D4F +0x8EA2E4FC 0x9D4A +0x8EA2E4FD 0x9D5B +0x8EA2E4FE 0x9D4B +0x8EA2E5A1 0x9D59 +0x8EA2E5A2 0x9D56 +0x8EA2E5A3 0x9D4C +0x8EA2E5A4 0x9D57 +0x8EA2E5A5 0x9D52 +0x8EA2E5A6 0x9D54 +0x8EA2E5A7 0x9D5F +0x8EA2E5A8 0x9D58 +0x8EA2E5A9 0x9D5A +0x8EA2E5AA 0x9E8E +0x8EA2E5AB 0x9E8C +0x8EA2E5AC 0x9EDF +0x8EA2E5AD 0x9F01 +0x8EA2E5AE 0x9F00 +0x8EA2E5AF 0x9F16 +0x8EA2E5B0 0x9F25 +0x8EA2E5B1 0x9F2B +0x8EA2E5B2 0x9F2A +0x8EA2E5B3 0x9F29 +0x8EA2E5B4 0x9F28 +0x8EA2E5B5 0x9F4C +0x8EA2E5B6 0x9F55 +0x8EA2E5B7 0x5134 +0x8EA2E5B8 0x5135 +0x8EA2E5B9 0x5296 +0x8EA2E5BA 0x52F7 +0x8EA2E5BB 0x53B4 +0x8EA2E5BC 0x56AB +0x8EA2E5BD 0x56AD +0x8EA2E5BE 0x56A6 +0x8EA2E5BF 0x56A7 +0x8EA2E5C0 0x56AA +0x8EA2E5C1 0x56AC +0x8EA2E5C2 0x58DA +0x8EA2E5C3 0x58DD +0x8EA2E5C4 0x58DB +0x8EA2E5C5 0x5912 +0x8EA2E5C6 0x5B3D +0x8EA2E5C7 0x5B3E +0x8EA2E5C8 0x5B3F +0x8EA2E5C9 0x5DC3 +0x8EA2E5CA 0x5E70 +0x8EA2E5CB 0x5FBF +0x8EA2E5CC 0x61FB +0x8EA2E5CD 0x6507 +0x8EA2E5CE 0x6510 +0x8EA2E5CF 0x650D +0x8EA2E5D0 0x6509 +0x8EA2E5D1 0x650C +0x8EA2E5D2 0x650E +0x8EA2E5D3 0x6584 +0x8EA2E5D4 0x65DE +0x8EA2E5D5 0x65DD +0x8EA2E5D6 0x66DE +0x8EA2E5D7 0x6AE7 +0x8EA2E5D8 0x6AE0 +0x8EA2E5D9 0x6ACC +0x8EA2E5DA 0x6AD1 +0x8EA2E5DB 0x6AD9 +0x8EA2E5DC 0x6ACB +0x8EA2E5DD 0x6ADF +0x8EA2E5DE 0x6ADC +0x8EA2E5DF 0x6AD0 +0x8EA2E5E0 0x6AEB +0x8EA2E5E1 0x6ACF +0x8EA2E5E2 0x6ACD +0x8EA2E5E3 0x6ADE +0x8EA2E5E4 0x6B60 +0x8EA2E5E5 0x6BB0 +0x8EA2E5E6 0x6C0C +0x8EA2E5E7 0x7019 +0x8EA2E5E8 0x7027 +0x8EA2E5E9 0x7020 +0x8EA2E5EA 0x7016 +0x8EA2E5EB 0x702B +0x8EA2E5EC 0x7021 +0x8EA2E5ED 0x7022 +0x8EA2E5EE 0x7023 +0x8EA2E5EF 0x7029 +0x8EA2E5F0 0x7017 +0x8EA2E5F1 0x7024 +0x8EA2E5F2 0x701C +0x8EA2E5F3 0x720C +0x8EA2E5F4 0x720A +0x8EA2E5F5 0x7207 +0x8EA2E5F6 0x7202 +0x8EA2E5F7 0x7205 +0x8EA2E5F8 0x72A5 +0x8EA2E5F9 0x72A6 +0x8EA2E5FA 0x72A4 +0x8EA2E5FB 0x72A3 +0x8EA2E5FC 0x72A1 +0x8EA2E5FD 0x74CB +0x8EA2E5FE 0x74C5 +0x8EA2E6A1 0x74B7 +0x8EA2E6A2 0x74C3 +0x8EA2E6A3 0x7516 +0x8EA2E6A4 0x7660 +0x8EA2E6A5 0x77C9 +0x8EA2E6A6 0x77CA +0x8EA2E6A7 0x77C4 +0x8EA2E6A8 0x77F1 +0x8EA2E6A9 0x791D +0x8EA2E6AA 0x791B +0x8EA2E6AB 0x7921 +0x8EA2E6AC 0x791C +0x8EA2E6AD 0x7917 +0x8EA2E6AE 0x791E +0x8EA2E6AF 0x79B0 +0x8EA2E6B0 0x7A67 +0x8EA2E6B1 0x7A68 +0x8EA2E6B2 0x7C33 +0x8EA2E6B3 0x7C3C +0x8EA2E6B4 0x7C39 +0x8EA2E6B5 0x7C2C +0x8EA2E6B6 0x7C3B +0x8EA2E6B7 0x7CEC +0x8EA2E6B8 0x7CEA +0x8EA2E6B9 0x7E76 +0x8EA2E6BA 0x7E75 +0x8EA2E6BB 0x7E78 +0x8EA2E6BC 0x7E70 +0x8EA2E6BD 0x7E77 +0x8EA2E6BE 0x7E6F +0x8EA2E6BF 0x7E7A +0x8EA2E6C0 0x7E72 +0x8EA2E6C1 0x7E74 +0x8EA2E6C2 0x7E68 +0x8EA2E6C3 0x7F4B +0x8EA2E6C4 0x7F4A +0x8EA2E6C5 0x7F83 +0x8EA2E6C6 0x7F86 +0x8EA2E6C7 0x7FB7 +0x8EA2E6C8 0x7FFD +0x8EA2E6C9 0x7FFE +0x8EA2E6CA 0x8078 +0x8EA2E6CB 0x81D7 +0x8EA2E6CC 0x81D5 +0x8EA2E6CD 0x820B +0x8EA2E6CE 0x8264 +0x8EA2E6CF 0x8261 +0x8EA2E6D0 0x8263 +0x8EA2E6D1 0x85EB +0x8EA2E6D2 0x85F1 +0x8EA2E6D3 0x85ED +0x8EA2E6D4 0x85D9 +0x8EA2E6D5 0x85E1 +0x8EA2E6D6 0x85E8 +0x8EA2E6D7 0x85DA +0x8EA2E6D8 0x85D7 +0x8EA2E6D9 0x85EC +0x8EA2E6DA 0x85F2 +0x8EA2E6DB 0x85F8 +0x8EA2E6DC 0x85D8 +0x8EA2E6DD 0x85DF +0x8EA2E6DE 0x85E3 +0x8EA2E6DF 0x85DC +0x8EA2E6E0 0x85D1 +0x8EA2E6E1 0x85F0 +0x8EA2E6E2 0x85E6 +0x8EA2E6E3 0x85EF +0x8EA2E6E4 0x85DE +0x8EA2E6E5 0x85E2 +0x8EA2E6E6 0x8800 +0x8EA2E6E7 0x87FA +0x8EA2E6E8 0x8803 +0x8EA2E6E9 0x87F6 +0x8EA2E6EA 0x87F7 +0x8EA2E6EB 0x8809 +0x8EA2E6EC 0x880C +0x8EA2E6ED 0x880B +0x8EA2E6EE 0x8806 +0x8EA2E6EF 0x87FC +0x8EA2E6F0 0x8808 +0x8EA2E6F1 0x87FF +0x8EA2E6F2 0x880A +0x8EA2E6F3 0x8802 +0x8EA2E6F4 0x8962 +0x8EA2E6F5 0x895A +0x8EA2E6F6 0x895B +0x8EA2E6F7 0x8957 +0x8EA2E6F8 0x8961 +0x8EA2E6F9 0x895C +0x8EA2E6FA 0x8958 +0x8EA2E6FB 0x895D +0x8EA2E6FC 0x8959 +0x8EA2E6FD 0x8988 +0x8EA2E6FE 0x89B7 +0x8EA2E7A1 0x89B6 +0x8EA2E7A2 0x89F6 +0x8EA2E7A3 0x8B50 +0x8EA2E7A4 0x8B48 +0x8EA2E7A5 0x8B4A +0x8EA2E7A6 0x8B40 +0x8EA2E7A7 0x8B53 +0x8EA2E7A8 0x8B56 +0x8EA2E7A9 0x8B54 +0x8EA2E7AA 0x8B4B +0x8EA2E7AB 0x8B55 +0x8EA2E7AC 0x8B51 +0x8EA2E7AD 0x8B42 +0x8EA2E7AE 0x8B52 +0x8EA2E7AF 0x8B57 +0x8EA2E7B0 0x8C43 +0x8EA2E7B1 0x8C77 +0x8EA2E7B2 0x8C76 +0x8EA2E7B3 0x8C9A +0x8EA2E7B4 0x8D06 +0x8EA2E7B5 0x8D07 +0x8EA2E7B6 0x8D09 +0x8EA2E7B7 0x8DAC +0x8EA2E7B8 0x8DAA +0x8EA2E7B9 0x8DAD +0x8EA2E7BA 0x8DAB +0x8EA2E7BB 0x8E6D +0x8EA2E7BC 0x8E78 +0x8EA2E7BD 0x8E73 +0x8EA2E7BE 0x8E6A +0x8EA2E7BF 0x8E6F +0x8EA2E7C0 0x8E7B +0x8EA2E7C1 0x8EC2 +0x8EA2E7C2 0x8F52 +0x8EA2E7C3 0x8F51 +0x8EA2E7C4 0x8F4F +0x8EA2E7C5 0x8F50 +0x8EA2E7C6 0x8F53 +0x8EA2E7C7 0x8FB4 +0x8EA2E7C8 0x9140 +0x8EA2E7C9 0x913F +0x8EA2E7CA 0x91B0 +0x8EA2E7CB 0x91AD +0x8EA2E7CC 0x93DE +0x8EA2E7CD 0x93C7 +0x8EA2E7CE 0x93CF +0x8EA2E7CF 0x93C2 +0x8EA2E7D0 0x93DA +0x8EA2E7D1 0x93D0 +0x8EA2E7D2 0x93F9 +0x8EA2E7D3 0x93EC +0x8EA2E7D4 0x93CC +0x8EA2E7D5 0x93D9 +0x8EA2E7D6 0x93A9 +0x8EA2E7D7 0x93E6 +0x8EA2E7D8 0x93CA +0x8EA2E7D9 0x93D4 +0x8EA2E7DA 0x93EE +0x8EA2E7DB 0x93E3 +0x8EA2E7DC 0x93D5 +0x8EA2E7DD 0x93C4 +0x8EA2E7DE 0x93CE +0x8EA2E7DF 0x93C0 +0x8EA2E7E0 0x93D2 +0x8EA2E7E1 0x93A5 +0x8EA2E7E2 0x93E7 +0x8EA2E7E3 0x957D +0x8EA2E7E4 0x95DA +0x8EA2E7E5 0x95DB +0x8EA2E7E6 0x96E1 +0x8EA2E7E7 0x9729 +0x8EA2E7E8 0x972B +0x8EA2E7E9 0x972C +0x8EA2E7EA 0x9728 +0x8EA2E7EB 0x9726 +0x8EA2E7EC 0x97B3 +0x8EA2E7ED 0x97B7 +0x8EA2E7EE 0x97B6 +0x8EA2E7EF 0x97DD +0x8EA2E7F0 0x97DE +0x8EA2E7F1 0x97DF +0x8EA2E7F2 0x985C +0x8EA2E7F3 0x9859 +0x8EA2E7F4 0x985D +0x8EA2E7F5 0x9857 +0x8EA2E7F6 0x98BF +0x8EA2E7F7 0x98BD +0x8EA2E7F8 0x98BB +0x8EA2E7F9 0x98BE +0x8EA2E7FA 0x9948 +0x8EA2E7FB 0x9947 +0x8EA2E7FC 0x9943 +0x8EA2E7FD 0x99A6 +0x8EA2E7FE 0x99A7 +0x8EA2E8A1 0x9A1A +0x8EA2E8A2 0x9A15 +0x8EA2E8A3 0x9A25 +0x8EA2E8A4 0x9A1D +0x8EA2E8A5 0x9A24 +0x8EA2E8A6 0x9A1B +0x8EA2E8A7 0x9A22 +0x8EA2E8A8 0x9A20 +0x8EA2E8A9 0x9A27 +0x8EA2E8AA 0x9A23 +0x8EA2E8AB 0x9A1E +0x8EA2E8AC 0x9A1C +0x8EA2E8AD 0x9A14 +0x8EA2E8AE 0x9AC2 +0x8EA2E8AF 0x9B0B +0x8EA2E8B0 0x9B0A +0x8EA2E8B1 0x9B0E +0x8EA2E8B2 0x9B0C +0x8EA2E8B3 0x9B37 +0x8EA2E8B4 0x9BEA +0x8EA2E8B5 0x9BEB +0x8EA2E8B6 0x9BE0 +0x8EA2E8B7 0x9BDE +0x8EA2E8B8 0x9BE4 +0x8EA2E8B9 0x9BE6 +0x8EA2E8BA 0x9BE2 +0x8EA2E8BB 0x9BF0 +0x8EA2E8BC 0x9BD4 +0x8EA2E8BD 0x9BD7 +0x8EA2E8BE 0x9BEC +0x8EA2E8BF 0x9BDC +0x8EA2E8C0 0x9BD9 +0x8EA2E8C1 0x9BE5 +0x8EA2E8C2 0x9BD5 +0x8EA2E8C3 0x9BE1 +0x8EA2E8C4 0x9BDA +0x8EA2E8C5 0x9D77 +0x8EA2E8C6 0x9D81 +0x8EA2E8C7 0x9D8A +0x8EA2E8C8 0x9D84 +0x8EA2E8C9 0x9D88 +0x8EA2E8CA 0x9D71 +0x8EA2E8CB 0x9D80 +0x8EA2E8CC 0x9D78 +0x8EA2E8CD 0x9D86 +0x8EA2E8CE 0x9D8B +0x8EA2E8CF 0x9D8C +0x8EA2E8D0 0x9D7D +0x8EA2E8D1 0x9D6B +0x8EA2E8D2 0x9D74 +0x8EA2E8D3 0x9D75 +0x8EA2E8D4 0x9D70 +0x8EA2E8D5 0x9D69 +0x8EA2E8D6 0x9D85 +0x8EA2E8D7 0x9D73 +0x8EA2E8D8 0x9D7B +0x8EA2E8D9 0x9D82 +0x8EA2E8DA 0x9D6F +0x8EA2E8DB 0x9D79 +0x8EA2E8DC 0x9D7F +0x8EA2E8DD 0x9D87 +0x8EA2E8DE 0x9D68 +0x8EA2E8DF 0x9E94 +0x8EA2E8E0 0x9E91 +0x8EA2E8E1 0x9EC0 +0x8EA2E8E2 0x9EFC +0x8EA2E8E3 0x9F2D +0x8EA2E8E4 0x9F40 +0x8EA2E8E5 0x9F41 +0x8EA2E8E6 0x9F4D +0x8EA2E8E7 0x9F56 +0x8EA2E8E8 0x9F57 +0x8EA2E8E9 0x9F58 +0x8EA2E8EA 0x5337 +0x8EA2E8EB 0x56B2 +0x8EA2E8EC 0x56B5 +0x8EA2E8ED 0x56B3 +0x8EA2E8EE 0x58E3 +0x8EA2E8EF 0x5B45 +0x8EA2E8F0 0x5DC6 +0x8EA2E8F1 0x5DC7 +0x8EA2E8F2 0x5EEE +0x8EA2E8F3 0x5EEF +0x8EA2E8F4 0x5FC0 +0x8EA2E8F5 0x5FC1 +0x8EA2E8F6 0x61F9 +0x8EA2E8F7 0x6517 +0x8EA2E8F8 0x6516 +0x8EA2E8F9 0x6515 +0x8EA2E8FA 0x6513 +0x8EA2E8FB 0x65DF +0x8EA2E8FC 0x66E8 +0x8EA2E8FD 0x66E3 +0x8EA2E8FE 0x66E4 +0x8EA2E9A1 0x6AF3 +0x8EA2E9A2 0x6AF0 +0x8EA2E9A3 0x6AEA +0x8EA2E9A4 0x6AE8 +0x8EA2E9A5 0x6AF9 +0x8EA2E9A6 0x6AF1 +0x8EA2E9A7 0x6AEE +0x8EA2E9A8 0x6AEF +0x8EA2E9A9 0x703C +0x8EA2E9AA 0x7035 +0x8EA2E9AB 0x702F +0x8EA2E9AC 0x7037 +0x8EA2E9AD 0x7034 +0x8EA2E9AE 0x7031 +0x8EA2E9AF 0x7042 +0x8EA2E9B0 0x7038 +0x8EA2E9B1 0x703F +0x8EA2E9B2 0x703A +0x8EA2E9B3 0x7039 +0x8EA2E9B4 0x702A +0x8EA2E9B5 0x7040 +0x8EA2E9B6 0x703B +0x8EA2E9B7 0x7033 +0x8EA2E9B8 0x7041 +0x8EA2E9B9 0x7213 +0x8EA2E9BA 0x7214 +0x8EA2E9BB 0x72A8 +0x8EA2E9BC 0x737D +0x8EA2E9BD 0x737C +0x8EA2E9BE 0x74BA +0x8EA2E9BF 0x76AB +0x8EA2E9C0 0x76AA +0x8EA2E9C1 0x76BE +0x8EA2E9C2 0x76ED +0x8EA2E9C3 0x77CC +0x8EA2E9C4 0x77CE +0x8EA2E9C5 0x77CF +0x8EA2E9C6 0x77CD +0x8EA2E9C7 0x77F2 +0x8EA2E9C8 0x7925 +0x8EA2E9C9 0x7923 +0x8EA2E9CA 0x7927 +0x8EA2E9CB 0x7928 +0x8EA2E9CC 0x7924 +0x8EA2E9CD 0x7929 +0x8EA2E9CE 0x79B2 +0x8EA2E9CF 0x7A6E +0x8EA2E9D0 0x7A6C +0x8EA2E9D1 0x7A6D +0x8EA2E9D2 0x7AF7 +0x8EA2E9D3 0x7C49 +0x8EA2E9D4 0x7C48 +0x8EA2E9D5 0x7C4A +0x8EA2E9D6 0x7C47 +0x8EA2E9D7 0x7C45 +0x8EA2E9D8 0x7CEE +0x8EA2E9D9 0x7E7B +0x8EA2E9DA 0x7E7E +0x8EA2E9DB 0x7E81 +0x8EA2E9DC 0x7E80 +0x8EA2E9DD 0x7FBA +0x8EA2E9DE 0x7FFF +0x8EA2E9DF 0x8079 +0x8EA2E9E0 0x81DB +0x8EA2E9E1 0x81D9 +0x8EA2E9E2 0x8268 +0x8EA2E9E3 0x8269 +0x8EA2E9E4 0x8622 +0x8EA2E9E5 0x85FF +0x8EA2E9E6 0x8601 +0x8EA2E9E7 0x85FE +0x8EA2E9E8 0x861B +0x8EA2E9E9 0x8600 +0x8EA2E9EA 0x85F6 +0x8EA2E9EB 0x8604 +0x8EA2E9EC 0x8609 +0x8EA2E9ED 0x8605 +0x8EA2E9EE 0x860C +0x8EA2E9EF 0x85FD +0x8EA2E9F0 0x8819 +0x8EA2E9F1 0x8810 +0x8EA2E9F2 0x8811 +0x8EA2E9F3 0x8817 +0x8EA2E9F4 0x8813 +0x8EA2E9F5 0x8816 +0x8EA2E9F6 0x8963 +0x8EA2E9F7 0x8966 +0x8EA2E9F8 0x89B9 +0x8EA2E9F9 0x89F7 +0x8EA2E9FA 0x8B60 +0x8EA2E9FB 0x8B6A +0x8EA2E9FC 0x8B5D +0x8EA2E9FD 0x8B68 +0x8EA2E9FE 0x8B63 +0x8EA2EAA1 0x8B65 +0x8EA2EAA2 0x8B67 +0x8EA2EAA3 0x8B6D +0x8EA2EAA4 0x8DAE +0x8EA2EAA5 0x8E86 +0x8EA2EAA6 0x8E88 +0x8EA2EAA7 0x8E84 +0x8EA2EAA8 0x8F59 +0x8EA2EAA9 0x8F56 +0x8EA2EAAA 0x8F57 +0x8EA2EAAB 0x8F55 +0x8EA2EAAC 0x8F58 +0x8EA2EAAD 0x8F5A +0x8EA2EAAE 0x908D +0x8EA2EAAF 0x9143 +0x8EA2EAB0 0x9141 +0x8EA2EAB1 0x91B7 +0x8EA2EAB2 0x91B5 +0x8EA2EAB3 0x91B2 +0x8EA2EAB4 0x91B3 +0x8EA2EAB5 0x940B +0x8EA2EAB6 0x9413 +0x8EA2EAB7 0x93FB +0x8EA2EAB8 0x9420 +0x8EA2EAB9 0x940F +0x8EA2EABA 0x9414 +0x8EA2EABB 0x93FE +0x8EA2EABC 0x9415 +0x8EA2EABD 0x9410 +0x8EA2EABE 0x9428 +0x8EA2EABF 0x9419 +0x8EA2EAC0 0x940D +0x8EA2EAC1 0x93F5 +0x8EA2EAC2 0x9400 +0x8EA2EAC3 0x93F7 +0x8EA2EAC4 0x9407 +0x8EA2EAC5 0x940E +0x8EA2EAC6 0x9416 +0x8EA2EAC7 0x9412 +0x8EA2EAC8 0x93FA +0x8EA2EAC9 0x9409 +0x8EA2EACA 0x93F8 +0x8EA2EACB 0x943C +0x8EA2EACC 0x940A +0x8EA2EACD 0x93FF +0x8EA2EACE 0x93FC +0x8EA2EACF 0x940C +0x8EA2EAD0 0x93F6 +0x8EA2EAD1 0x9411 +0x8EA2EAD2 0x9406 +0x8EA2EAD3 0x95DE +0x8EA2EAD4 0x95E0 +0x8EA2EAD5 0x95DF +0x8EA2EAD6 0x972E +0x8EA2EAD7 0x972F +0x8EA2EAD8 0x97B9 +0x8EA2EAD9 0x97BB +0x8EA2EADA 0x97FD +0x8EA2EADB 0x97FE +0x8EA2EADC 0x9860 +0x8EA2EADD 0x9862 +0x8EA2EADE 0x9863 +0x8EA2EADF 0x985F +0x8EA2EAE0 0x98C1 +0x8EA2EAE1 0x98C2 +0x8EA2EAE2 0x9950 +0x8EA2EAE3 0x994E +0x8EA2EAE4 0x9959 +0x8EA2EAE5 0x994C +0x8EA2EAE6 0x994B +0x8EA2EAE7 0x9953 +0x8EA2EAE8 0x9A32 +0x8EA2EAE9 0x9A34 +0x8EA2EAEA 0x9A31 +0x8EA2EAEB 0x9A2C +0x8EA2EAEC 0x9A2A +0x8EA2EAED 0x9A36 +0x8EA2EAEE 0x9A29 +0x8EA2EAEF 0x9A2E +0x8EA2EAF0 0x9A38 +0x8EA2EAF1 0x9A2D +0x8EA2EAF2 0x9AC7 +0x8EA2EAF3 0x9ACA +0x8EA2EAF4 0x9AC6 +0x8EA2EAF5 0x9B10 +0x8EA2EAF6 0x9B12 +0x8EA2EAF7 0x9B11 +0x8EA2EAF8 0x9C0B +0x8EA2EAF9 0x9C08 +0x8EA2EAFA 0x9BF7 +0x8EA2EAFB 0x9C05 +0x8EA2EAFC 0x9C12 +0x8EA2EAFD 0x9BF8 +0x8EA2EAFE 0x9C40 +0x8EA2EBA1 0x9C07 +0x8EA2EBA2 0x9C0E +0x8EA2EBA3 0x9C06 +0x8EA2EBA4 0x9C17 +0x8EA2EBA5 0x9C14 +0x8EA2EBA6 0x9C09 +0x8EA2EBA7 0x9D9F +0x8EA2EBA8 0x9D99 +0x8EA2EBA9 0x9DA4 +0x8EA2EBAA 0x9D9D +0x8EA2EBAB 0x9D92 +0x8EA2EBAC 0x9D98 +0x8EA2EBAD 0x9D90 +0x8EA2EBAE 0x9D9B +0x8EA2EBAF 0x9DA0 +0x8EA2EBB0 0x9D94 +0x8EA2EBB1 0x9D9C +0x8EA2EBB2 0x9DAA +0x8EA2EBB3 0x9D97 +0x8EA2EBB4 0x9DA1 +0x8EA2EBB5 0x9D9A +0x8EA2EBB6 0x9DA2 +0x8EA2EBB7 0x9DA8 +0x8EA2EBB8 0x9D9E +0x8EA2EBB9 0x9DA3 +0x8EA2EBBA 0x9DBF +0x8EA2EBBB 0x9DA9 +0x8EA2EBBC 0x9D96 +0x8EA2EBBD 0x9DA6 +0x8EA2EBBE 0x9DA7 +0x8EA2EBBF 0x9E99 +0x8EA2EBC0 0x9E9B +0x8EA2EBC1 0x9E9A +0x8EA2EBC2 0x9EE5 +0x8EA2EBC3 0x9EE4 +0x8EA2EBC4 0x9EE7 +0x8EA2EBC5 0x9EE6 +0x8EA2EBC6 0x9F30 +0x8EA2EBC7 0x9F2E +0x8EA2EBC8 0x9F5B +0x8EA2EBC9 0x9F60 +0x8EA2EBCA 0x9F5E +0x8EA2EBCB 0x9F5D +0x8EA2EBCC 0x9F59 +0x8EA2EBCD 0x9F91 +0x8EA2EBCE 0x513A +0x8EA2EBCF 0x5139 +0x8EA2EBD0 0x5298 +0x8EA2EBD1 0x5297 +0x8EA2EBD2 0x56C3 +0x8EA2EBD3 0x56BD +0x8EA2EBD4 0x56BE +0x8EA2EBD5 0x5B48 +0x8EA2EBD6 0x5B47 +0x8EA2EBD7 0x5DCB +0x8EA2EBD8 0x5DCF +0x8EA2EBD9 0x5EF1 +0x8EA2EBDA 0x61FD +0x8EA2EBDB 0x651B +0x8EA2EBDC 0x6B02 +0x8EA2EBDD 0x6AFC +0x8EA2EBDE 0x6B03 +0x8EA2EBDF 0x6AF8 +0x8EA2EBE0 0x6B00 +0x8EA2EBE1 0x7043 +0x8EA2EBE2 0x7044 +0x8EA2EBE3 0x704A +0x8EA2EBE4 0x7048 +0x8EA2EBE5 0x7049 +0x8EA2EBE6 0x7045 +0x8EA2EBE7 0x7046 +0x8EA2EBE8 0x721D +0x8EA2EBE9 0x721A +0x8EA2EBEA 0x7219 +0x8EA2EBEB 0x737E +0x8EA2EBEC 0x7517 +0x8EA2EBED 0x766A +0x8EA2EBEE 0x77D0 +0x8EA2EBEF 0x792D +0x8EA2EBF0 0x7931 +0x8EA2EBF1 0x792F +0x8EA2EBF2 0x7C54 +0x8EA2EBF3 0x7C53 +0x8EA2EBF4 0x7CF2 +0x8EA2EBF5 0x7E8A +0x8EA2EBF6 0x7E87 +0x8EA2EBF7 0x7E88 +0x8EA2EBF8 0x7E8B +0x8EA2EBF9 0x7E86 +0x8EA2EBFA 0x7E8D +0x8EA2EBFB 0x7F4D +0x8EA2EBFC 0x7FBB +0x8EA2EBFD 0x8030 +0x8EA2EBFE 0x81DD +0x8EA2ECA1 0x8618 +0x8EA2ECA2 0x862A +0x8EA2ECA3 0x8626 +0x8EA2ECA4 0x861F +0x8EA2ECA5 0x8623 +0x8EA2ECA6 0x861C +0x8EA2ECA7 0x8619 +0x8EA2ECA8 0x8627 +0x8EA2ECA9 0x862E +0x8EA2ECAA 0x8621 +0x8EA2ECAB 0x8620 +0x8EA2ECAC 0x8629 +0x8EA2ECAD 0x861E +0x8EA2ECAE 0x8625 +0x8EA2ECAF 0x8829 +0x8EA2ECB0 0x881D +0x8EA2ECB1 0x881B +0x8EA2ECB2 0x8820 +0x8EA2ECB3 0x8824 +0x8EA2ECB4 0x881C +0x8EA2ECB5 0x882B +0x8EA2ECB6 0x884A +0x8EA2ECB7 0x896D +0x8EA2ECB8 0x8969 +0x8EA2ECB9 0x896E +0x8EA2ECBA 0x896B +0x8EA2ECBB 0x89FA +0x8EA2ECBC 0x8B79 +0x8EA2ECBD 0x8B78 +0x8EA2ECBE 0x8B45 +0x8EA2ECBF 0x8B7A +0x8EA2ECC0 0x8B7B +0x8EA2ECC1 0x8D10 +0x8EA2ECC2 0x8D14 +0x8EA2ECC3 0x8DAF +0x8EA2ECC4 0x8E8E +0x8EA2ECC5 0x8E8C +0x8EA2ECC6 0x8F5E +0x8EA2ECC7 0x8F5B +0x8EA2ECC8 0x8F5D +0x8EA2ECC9 0x9146 +0x8EA2ECCA 0x9144 +0x8EA2ECCB 0x9145 +0x8EA2ECCC 0x91B9 +0x8EA2ECCD 0x943F +0x8EA2ECCE 0x943B +0x8EA2ECCF 0x9436 +0x8EA2ECD0 0x9429 +0x8EA2ECD1 0x943D +0x8EA2ECD2 0x9430 +0x8EA2ECD3 0x9439 +0x8EA2ECD4 0x942A +0x8EA2ECD5 0x9437 +0x8EA2ECD6 0x942C +0x8EA2ECD7 0x9440 +0x8EA2ECD8 0x9431 +0x8EA2ECD9 0x95E5 +0x8EA2ECDA 0x95E4 +0x8EA2ECDB 0x95E3 +0x8EA2ECDC 0x9735 +0x8EA2ECDD 0x973A +0x8EA2ECDE 0x97BF +0x8EA2ECDF 0x97E1 +0x8EA2ECE0 0x9864 +0x8EA2ECE1 0x98C9 +0x8EA2ECE2 0x98C6 +0x8EA2ECE3 0x98C0 +0x8EA2ECE4 0x9958 +0x8EA2ECE5 0x9956 +0x8EA2ECE6 0x9A39 +0x8EA2ECE7 0x9A3D +0x8EA2ECE8 0x9A46 +0x8EA2ECE9 0x9A44 +0x8EA2ECEA 0x9A42 +0x8EA2ECEB 0x9A41 +0x8EA2ECEC 0x9A3A +0x8EA2ECED 0x9A3F +0x8EA2ECEE 0x9ACD +0x8EA2ECEF 0x9B15 +0x8EA2ECF0 0x9B17 +0x8EA2ECF1 0x9B18 +0x8EA2ECF2 0x9B16 +0x8EA2ECF3 0x9B3A +0x8EA2ECF4 0x9B52 +0x8EA2ECF5 0x9C2B +0x8EA2ECF6 0x9C1D +0x8EA2ECF7 0x9C1C +0x8EA2ECF8 0x9C2C +0x8EA2ECF9 0x9C23 +0x8EA2ECFA 0x9C28 +0x8EA2ECFB 0x9C29 +0x8EA2ECFC 0x9C24 +0x8EA2ECFD 0x9C21 +0x8EA2ECFE 0x9DB7 +0x8EA2EDA1 0x9DB6 +0x8EA2EDA2 0x9DBC +0x8EA2EDA3 0x9DC1 +0x8EA2EDA4 0x9DC7 +0x8EA2EDA5 0x9DCA +0x8EA2EDA6 0x9DCF +0x8EA2EDA7 0x9DBE +0x8EA2EDA8 0x9DC5 +0x8EA2EDA9 0x9DC3 +0x8EA2EDAA 0x9DBB +0x8EA2EDAB 0x9DB5 +0x8EA2EDAC 0x9DCE +0x8EA2EDAD 0x9DB9 +0x8EA2EDAE 0x9DBA +0x8EA2EDAF 0x9DAC +0x8EA2EDB0 0x9DC8 +0x8EA2EDB1 0x9DB1 +0x8EA2EDB2 0x9DAD +0x8EA2EDB3 0x9DCC +0x8EA2EDB4 0x9DB3 +0x8EA2EDB5 0x9DCD +0x8EA2EDB6 0x9DB2 +0x8EA2EDB7 0x9E7A +0x8EA2EDB8 0x9E9C +0x8EA2EDB9 0x9EEB +0x8EA2EDBA 0x9EEE +0x8EA2EDBB 0x9EED +0x8EA2EDBC 0x9F1B +0x8EA2EDBD 0x9F18 +0x8EA2EDBE 0x9F1A +0x8EA2EDBF 0x9F31 +0x8EA2EDC0 0x9F4E +0x8EA2EDC1 0x9F65 +0x8EA2EDC2 0x9F64 +0x8EA2EDC3 0x9F92 +0x8EA2EDC4 0x4EB9 +0x8EA2EDC5 0x56C6 +0x8EA2EDC6 0x56C5 +0x8EA2EDC7 0x56CB +0x8EA2EDC8 0x5971 +0x8EA2EDC9 0x5B4B +0x8EA2EDCA 0x5B4C +0x8EA2EDCB 0x5DD5 +0x8EA2EDCC 0x5DD1 +0x8EA2EDCD 0x5EF2 +0x8EA2EDCE 0x6521 +0x8EA2EDCF 0x6520 +0x8EA2EDD0 0x6526 +0x8EA2EDD1 0x6522 +0x8EA2EDD2 0x6B0B +0x8EA2EDD3 0x6B08 +0x8EA2EDD4 0x6B09 +0x8EA2EDD5 0x6C0D +0x8EA2EDD6 0x7055 +0x8EA2EDD7 0x7056 +0x8EA2EDD8 0x7057 +0x8EA2EDD9 0x7052 +0x8EA2EDDA 0x721E +0x8EA2EDDB 0x721F +0x8EA2EDDC 0x72A9 +0x8EA2EDDD 0x737F +0x8EA2EDDE 0x74D8 +0x8EA2EDDF 0x74D5 +0x8EA2EDE0 0x74D9 +0x8EA2EDE1 0x74D7 +0x8EA2EDE2 0x766D +0x8EA2EDE3 0x76AD +0x8EA2EDE4 0x7935 +0x8EA2EDE5 0x79B4 +0x8EA2EDE6 0x7A70 +0x8EA2EDE7 0x7A71 +0x8EA2EDE8 0x7C57 +0x8EA2EDE9 0x7C5C +0x8EA2EDEA 0x7C59 +0x8EA2EDEB 0x7C5B +0x8EA2EDEC 0x7C5A +0x8EA2EDED 0x7CF4 +0x8EA2EDEE 0x7CF1 +0x8EA2EDEF 0x7E91 +0x8EA2EDF0 0x7F4F +0x8EA2EDF1 0x7F87 +0x8EA2EDF2 0x81DE +0x8EA2EDF3 0x826B +0x8EA2EDF4 0x8634 +0x8EA2EDF5 0x8635 +0x8EA2EDF6 0x8633 +0x8EA2EDF7 0x862C +0x8EA2EDF8 0x8632 +0x8EA2EDF9 0x8636 +0x8EA2EDFA 0x882C +0x8EA2EDFB 0x8828 +0x8EA2EDFC 0x8826 +0x8EA2EDFD 0x882A +0x8EA2EDFE 0x8825 +0x8EA2EEA1 0x8971 +0x8EA2EEA2 0x89BF +0x8EA2EEA3 0x89BE +0x8EA2EEA4 0x89FB +0x8EA2EEA5 0x8B7E +0x8EA2EEA6 0x8B84 +0x8EA2EEA7 0x8B82 +0x8EA2EEA8 0x8B86 +0x8EA2EEA9 0x8B85 +0x8EA2EEAA 0x8B7F +0x8EA2EEAB 0x8D15 +0x8EA2EEAC 0x8E95 +0x8EA2EEAD 0x8E94 +0x8EA2EEAE 0x8E9A +0x8EA2EEAF 0x8E92 +0x8EA2EEB0 0x8E90 +0x8EA2EEB1 0x8E96 +0x8EA2EEB2 0x8E97 +0x8EA2EEB3 0x8F60 +0x8EA2EEB4 0x8F62 +0x8EA2EEB5 0x9147 +0x8EA2EEB6 0x944C +0x8EA2EEB7 0x9450 +0x8EA2EEB8 0x944A +0x8EA2EEB9 0x944B +0x8EA2EEBA 0x944F +0x8EA2EEBB 0x9447 +0x8EA2EEBC 0x9445 +0x8EA2EEBD 0x9448 +0x8EA2EEBE 0x9449 +0x8EA2EEBF 0x9446 +0x8EA2EEC0 0x973F +0x8EA2EEC1 0x97E3 +0x8EA2EEC2 0x986A +0x8EA2EEC3 0x9869 +0x8EA2EEC4 0x98CB +0x8EA2EEC5 0x9954 +0x8EA2EEC6 0x995B +0x8EA2EEC7 0x9A4E +0x8EA2EEC8 0x9A53 +0x8EA2EEC9 0x9A54 +0x8EA2EECA 0x9A4C +0x8EA2EECB 0x9A4F +0x8EA2EECC 0x9A48 +0x8EA2EECD 0x9A4A +0x8EA2EECE 0x9A49 +0x8EA2EECF 0x9A52 +0x8EA2EED0 0x9A50 +0x8EA2EED1 0x9AD0 +0x8EA2EED2 0x9B19 +0x8EA2EED3 0x9B2B +0x8EA2EED4 0x9B3B +0x8EA2EED5 0x9B56 +0x8EA2EED6 0x9B55 +0x8EA2EED7 0x9C46 +0x8EA2EED8 0x9C48 +0x8EA2EED9 0x9C3F +0x8EA2EEDA 0x9C44 +0x8EA2EEDB 0x9C39 +0x8EA2EEDC 0x9C33 +0x8EA2EEDD 0x9C41 +0x8EA2EEDE 0x9C3C +0x8EA2EEDF 0x9C37 +0x8EA2EEE0 0x9C34 +0x8EA2EEE1 0x9C32 +0x8EA2EEE2 0x9C3D +0x8EA2EEE3 0x9C36 +0x8EA2EEE4 0x9DDB +0x8EA2EEE5 0x9DD2 +0x8EA2EEE6 0x9DDE +0x8EA2EEE7 0x9DDA +0x8EA2EEE8 0x9DCB +0x8EA2EEE9 0x9DD0 +0x8EA2EEEA 0x9DDC +0x8EA2EEEB 0x9DD1 +0x8EA2EEEC 0x9DDF +0x8EA2EEED 0x9DE9 +0x8EA2EEEE 0x9DD9 +0x8EA2EEEF 0x9DD8 +0x8EA2EEF0 0x9DD6 +0x8EA2EEF1 0x9DF5 +0x8EA2EEF2 0x9DD5 +0x8EA2EEF3 0x9DDD +0x8EA2EEF4 0x9EB6 +0x8EA2EEF5 0x9EF0 +0x8EA2EEF6 0x9F35 +0x8EA2EEF7 0x9F33 +0x8EA2EEF8 0x9F32 +0x8EA2EEF9 0x9F42 +0x8EA2EEFA 0x9F6B +0x8EA2EEFB 0x9F95 +0x8EA2EEFC 0x9FA2 +0x8EA2EEFD 0x513D +0x8EA2EEFE 0x5299 +0x8EA2EFA1 0x58E8 +0x8EA2EFA2 0x58E7 +0x8EA2EFA3 0x5972 +0x8EA2EFA4 0x5B4D +0x8EA2EFA5 0x5DD8 +0x8EA2EFA6 0x882F +0x8EA2EFA7 0x5F4F +0x8EA2EFA8 0x6201 +0x8EA2EFA9 0x6203 +0x8EA2EFAA 0x6204 +0x8EA2EFAB 0x6529 +0x8EA2EFAC 0x6525 +0x8EA2EFAD 0x6596 +0x8EA2EFAE 0x66EB +0x8EA2EFAF 0x6B11 +0x8EA2EFB0 0x6B12 +0x8EA2EFB1 0x6B0F +0x8EA2EFB2 0x6BCA +0x8EA2EFB3 0x705B +0x8EA2EFB4 0x705A +0x8EA2EFB5 0x7222 +0x8EA2EFB6 0x7382 +0x8EA2EFB7 0x7381 +0x8EA2EFB8 0x7383 +0x8EA2EFB9 0x7670 +0x8EA2EFBA 0x77D4 +0x8EA2EFBB 0x7C67 +0x8EA2EFBC 0x7C66 +0x8EA2EFBD 0x7E95 +0x8EA2EFBE 0x826C +0x8EA2EFBF 0x863A +0x8EA2EFC0 0x8640 +0x8EA2EFC1 0x8639 +0x8EA2EFC2 0x863C +0x8EA2EFC3 0x8631 +0x8EA2EFC4 0x863B +0x8EA2EFC5 0x863E +0x8EA2EFC6 0x8830 +0x8EA2EFC7 0x8832 +0x8EA2EFC8 0x882E +0x8EA2EFC9 0x8833 +0x8EA2EFCA 0x8976 +0x8EA2EFCB 0x8974 +0x8EA2EFCC 0x8973 +0x8EA2EFCD 0x89FE +0x8EA2EFCE 0x8B8C +0x8EA2EFCF 0x8B8E +0x8EA2EFD0 0x8B8B +0x8EA2EFD1 0x8B88 +0x8EA2EFD2 0x8C45 +0x8EA2EFD3 0x8D19 +0x8EA2EFD4 0x8E98 +0x8EA2EFD5 0x8F64 +0x8EA2EFD6 0x8F63 +0x8EA2EFD7 0x91BC +0x8EA2EFD8 0x9462 +0x8EA2EFD9 0x9455 +0x8EA2EFDA 0x945D +0x8EA2EFDB 0x9457 +0x8EA2EFDC 0x945E +0x8EA2EFDD 0x97C4 +0x8EA2EFDE 0x97C5 +0x8EA2EFDF 0x9800 +0x8EA2EFE0 0x9A56 +0x8EA2EFE1 0x9A59 +0x8EA2EFE2 0x9B1E +0x8EA2EFE3 0x9B1F +0x8EA2EFE4 0x9B20 +0x8EA2EFE5 0x9C52 +0x8EA2EFE6 0x9C58 +0x8EA2EFE7 0x9C50 +0x8EA2EFE8 0x9C4A +0x8EA2EFE9 0x9C4D +0x8EA2EFEA 0x9C4B +0x8EA2EFEB 0x9C55 +0x8EA2EFEC 0x9C59 +0x8EA2EFED 0x9C4C +0x8EA2EFEE 0x9C4E +0x8EA2EFEF 0x9DFB +0x8EA2EFF0 0x9DF7 +0x8EA2EFF1 0x9DEF +0x8EA2EFF2 0x9DE3 +0x8EA2EFF3 0x9DEB +0x8EA2EFF4 0x9DF8 +0x8EA2EFF5 0x9DE4 +0x8EA2EFF6 0x9DF6 +0x8EA2EFF7 0x9DE1 +0x8EA2EFF8 0x9DEE +0x8EA2EFF9 0x9DE6 +0x8EA2EFFA 0x9DF2 +0x8EA2EFFB 0x9DF0 +0x8EA2EFFC 0x9DE2 +0x8EA2EFFD 0x9DEC +0x8EA2EFFE 0x9DF4 +0x8EA2F0A1 0x9DF3 +0x8EA2F0A2 0x9DE8 +0x8EA2F0A3 0x9DED +0x8EA2F0A4 0x9EC2 +0x8EA2F0A5 0x9ED0 +0x8EA2F0A6 0x9EF2 +0x8EA2F0A7 0x9EF3 +0x8EA2F0A8 0x9F06 +0x8EA2F0A9 0x9F1C +0x8EA2F0AA 0x9F38 +0x8EA2F0AB 0x9F37 +0x8EA2F0AC 0x9F36 +0x8EA2F0AD 0x9F43 +0x8EA2F0AE 0x9F4F +0x8EA2F0AF 0x9F71 +0x8EA2F0B0 0x9F70 +0x8EA2F0B1 0x9F6E +0x8EA2F0B2 0x9F6F +0x8EA2F0B3 0x56D3 +0x8EA2F0B4 0x56CD +0x8EA2F0B5 0x5B4E +0x8EA2F0B6 0x5C6D +0x8EA2F0B7 0x652D +0x8EA2F0B8 0x66ED +0x8EA2F0B9 0x66EE +0x8EA2F0BA 0x6B13 +0x8EA2F0BB 0x705F +0x8EA2F0BC 0x7061 +0x8EA2F0BD 0x705D +0x8EA2F0BE 0x7060 +0x8EA2F0BF 0x7223 +0x8EA2F0C0 0x74DB +0x8EA2F0C1 0x74E5 +0x8EA2F0C2 0x77D5 +0x8EA2F0C3 0x7938 +0x8EA2F0C4 0x79B7 +0x8EA2F0C5 0x79B6 +0x8EA2F0C6 0x7C6A +0x8EA2F0C7 0x7E97 +0x8EA2F0C8 0x7F89 +0x8EA2F0C9 0x826D +0x8EA2F0CA 0x8643 +0x8EA2F0CB 0x8838 +0x8EA2F0CC 0x8837 +0x8EA2F0CD 0x8835 +0x8EA2F0CE 0x884B +0x8EA2F0CF 0x8B94 +0x8EA2F0D0 0x8B95 +0x8EA2F0D1 0x8E9E +0x8EA2F0D2 0x8E9F +0x8EA2F0D3 0x8EA0 +0x8EA2F0D4 0x8E9D +0x8EA2F0D5 0x91BE +0x8EA2F0D6 0x91BD +0x8EA2F0D7 0x91C2 +0x8EA2F0D8 0x946B +0x8EA2F0D9 0x9468 +0x8EA2F0DA 0x9469 +0x8EA2F0DB 0x96E5 +0x8EA2F0DC 0x9746 +0x8EA2F0DD 0x9743 +0x8EA2F0DE 0x9747 +0x8EA2F0DF 0x97C7 +0x8EA2F0E0 0x97E5 +0x8EA2F0E1 0x9A5E +0x8EA2F0E2 0x9AD5 +0x8EA2F0E3 0x9B59 +0x8EA2F0E4 0x9C63 +0x8EA2F0E5 0x9C67 +0x8EA2F0E6 0x9C66 +0x8EA2F0E7 0x9C62 +0x8EA2F0E8 0x9C5E +0x8EA2F0E9 0x9C60 +0x8EA2F0EA 0x9E02 +0x8EA2F0EB 0x9DFE +0x8EA2F0EC 0x9E07 +0x8EA2F0ED 0x9E03 +0x8EA2F0EE 0x9E06 +0x8EA2F0EF 0x9E05 +0x8EA2F0F0 0x9E00 +0x8EA2F0F1 0x9E01 +0x8EA2F0F2 0x9E09 +0x8EA2F0F3 0x9DFF +0x8EA2F0F4 0x9DFD +0x8EA2F0F5 0x9E04 +0x8EA2F0F6 0x9EA0 +0x8EA2F0F7 0x9F1E +0x8EA2F0F8 0x9F46 +0x8EA2F0F9 0x9F74 +0x8EA2F0FA 0x9F75 +0x8EA2F0FB 0x9F76 +0x8EA2F0FC 0x56D4 +0x8EA2F0FD 0x652E +0x8EA2F0FE 0x65B8 +0x8EA2F1A1 0x6B18 +0x8EA2F1A2 0x6B19 +0x8EA2F1A3 0x6B17 +0x8EA2F1A4 0x6B1A +0x8EA2F1A5 0x7062 +0x8EA2F1A6 0x7226 +0x8EA2F1A7 0x72AA +0x8EA2F1A8 0x77D8 +0x8EA2F1A9 0x77D9 +0x8EA2F1AA 0x7939 +0x8EA2F1AB 0x7C69 +0x8EA2F1AC 0x7C6B +0x8EA2F1AD 0x7CF6 +0x8EA2F1AE 0x7E9A +0x8EA2F1AF 0x7E98 +0x8EA2F1B0 0x7E9B +0x8EA2F1B1 0x7E99 +0x8EA2F1B2 0x81E0 +0x8EA2F1B3 0x81E1 +0x8EA2F1B4 0x8646 +0x8EA2F1B5 0x8647 +0x8EA2F1B6 0x8648 +0x8EA2F1B7 0x8979 +0x8EA2F1B8 0x897A +0x8EA2F1B9 0x897C +0x8EA2F1BA 0x897B +0x8EA2F1BB 0x89FF +0x8EA2F1BC 0x8B98 +0x8EA2F1BD 0x8B99 +0x8EA2F1BE 0x8EA5 +0x8EA2F1BF 0x8EA4 +0x8EA2F1C0 0x8EA3 +0x8EA2F1C1 0x946E +0x8EA2F1C2 0x946D +0x8EA2F1C3 0x946F +0x8EA2F1C4 0x9471 +0x8EA2F1C5 0x9473 +0x8EA2F1C6 0x9749 +0x8EA2F1C7 0x9872 +0x8EA2F1C8 0x995F +0x8EA2F1C9 0x9C68 +0x8EA2F1CA 0x9C6E +0x8EA2F1CB 0x9C6D +0x8EA2F1CC 0x9E0B +0x8EA2F1CD 0x9E0D +0x8EA2F1CE 0x9E10 +0x8EA2F1CF 0x9E0F +0x8EA2F1D0 0x9E12 +0x8EA2F1D1 0x9E11 +0x8EA2F1D2 0x9EA1 +0x8EA2F1D3 0x9EF5 +0x8EA2F1D4 0x9F09 +0x8EA2F1D5 0x9F47 +0x8EA2F1D6 0x9F78 +0x8EA2F1D7 0x9F7B +0x8EA2F1D8 0x9F7A +0x8EA2F1D9 0x9F79 +0x8EA2F1DA 0x571E +0x8EA2F1DB 0x7066 +0x8EA2F1DC 0x7C6F +0x8EA2F1DD 0x883C +0x8EA2F1DE 0x8DB2 +0x8EA2F1DF 0x8EA6 +0x8EA2F1E0 0x91C3 +0x8EA2F1E1 0x9474 +0x8EA2F1E2 0x9478 +0x8EA2F1E3 0x9476 +0x8EA2F1E4 0x9475 +0x8EA2F1E5 0x9A60 +0x8EA2F1E6 0x9B2E +0x8EA2F1E7 0x9C74 +0x8EA2F1E8 0x9C73 +0x8EA2F1E9 0x9C71 +0x8EA2F1EA 0x9C75 +0x8EA2F1EB 0x9E14 +0x8EA2F1EC 0x9E13 +0x8EA2F1ED 0x9EF6 +0x8EA2F1EE 0x9F0A +0x8EA2F1EF 0x9FA4 +0x8EA2F1F0 0x7068 +0x8EA2F1F1 0x7065 +0x8EA2F1F2 0x7CF7 +0x8EA2F1F3 0x866A +0x8EA2F1F4 0x883E +0x8EA2F1F5 0x883D +0x8EA2F1F6 0x883F +0x8EA2F1F7 0x8B9E +0x8EA2F1F8 0x8C9C +0x8EA2F1F9 0x8EA9 +0x8EA2F1FA 0x8EC9 +0x8EA2F1FB 0x974B +0x8EA2F1FC 0x9873 +0x8EA2F1FD 0x9874 +0x8EA2F1FE 0x98CC +0x8EA2F2A1 0x9961 +0x8EA2F2A2 0x99AB +0x8EA2F2A3 0x9A64 +0x8EA2F2A4 0x9A66 +0x8EA2F2A5 0x9A67 +0x8EA2F2A6 0x9B24 +0x8EA2F2A7 0x9E15 +0x8EA2F2A8 0x9E17 +0x8EA2F2A9 0x9F48 +0x8EA2F2AA 0x6207 +0x8EA2F2AB 0x6B1E +0x8EA2F2AC 0x7227 +0x8EA2F2AD 0x864C +0x8EA2F2AE 0x8EA8 +0x8EA2F2AF 0x9482 +0x8EA2F2B0 0x9480 +0x8EA2F2B1 0x9481 +0x8EA2F2B2 0x9A69 +0x8EA2F2B3 0x9A68 +0x8EA2F2B4 0x9E19 +0x8EA2F2B5 0x864B +0x8EA2F2B6 0x8B9F +0x8EA2F2B7 0x9483 +0x8EA2F2B8 0x9C79 +0x8EA2F2B9 0x9EB7 +0x8EA2F2BA 0x7675 +0x8EA2F2BB 0x9A6B +0x8EA2F2BC 0x9C7A +0x8EA2F2BD 0x9E1D +0x8EA2F2BE 0x7069 +0x8EA2F2BF 0x706A +0x8EA2F2C0 0x7229 +0x8EA2F2C1 0x9EA4 +0x8EA2F2C2 0x9F7E +0x8EA2F2C3 0x9F49 +0x8EA2F2C4 0x9F98 +0x8EA3A1A1 0x4E28 +0x8EA3A1A2 0x4E36 +0x8EA3A1A3 0x4E3F +0x8EA3A1A4 0x4E85 +0x8EA3A1A5 0x4E05 +0x8EA3A1A6 0x4E04 +0x8EA3A1A7 0x5182 +0x8EA3A1A8 0x5196 +0x8EA3A1A9 0x5338 +0x8EA3A1AA 0x5369 +0x8EA3A1AB 0x53B6 +0x8EA3A1AC 0x4E2A +0x8EA3A1AD 0x4E87 +0x8EA3A1AE 0x4E49 +0x8EA3A1AF 0x51E2 +0x8EA3A1B0 0x4E46 +0x8EA3A1B1 0x4E8F +0x8EA3A1B2 0x4EBC +0x8EA3A1B3 0x4EBE +0x8EA3A1B4 0x5166 +0x8EA3A1B5 0x51E3 +0x8EA3A1B6 0x5204 +0x8EA3A1B7 0x529C +0x8EA3A1B8 0x5344 +0x8EA3A1B9 0x5902 +0x8EA3A1BA 0x590A +0x8EA3A1BB 0x5B80 +0x8EA3A1BC 0x5DDB +0x8EA3A1BD 0x5E7A +0x8EA3A1BE 0x5E7F +0x8EA3A1BF 0x5EF4 +0x8EA3A1C0 0x5F50 +0x8EA3A1C1 0x5F51 +0x8EA3A1C2 0x5F61 +0x8EA3A1C3 0x961D +0x8EA3A1C4 0x2000B +0x8EA3A1C5 0x4E63 +0x8EA3A1C6 0x4E62 +0x8EA3A1C7 0x4EA3 +0x8EA3A1C8 0x5185 +0x8EA3A1C9 0x4EC5 +0x8EA3A1CA 0x4ECF +0x8EA3A1CB 0x4ECE +0x8EA3A1CC 0x4ECC +0x8EA3A1CD 0x5184 +0x8EA3A1CE 0x5186 +0x8EA3A1CF 0x2F817 +0x8EA3A1D0 0x34C5 +0x8EA3A1D1 0x51E4 +0x8EA3A1D2 0x5205 +0x8EA3A1D3 0x529E +0x8EA3A1D4 0x529D +0x8EA3A1D5 0x52FD +0x8EA3A1D6 0x5300 +0x8EA3A1D7 0x533A +0x8EA3A1D8 0x3539 +0x8EA3A1D9 0x5346 +0x8EA3A1DA 0x535D +0x8EA3A1DB 0x5386 +0x8EA3A1DC 0x53B7 +0x8EA3A1DD 0x3555 +0x8EA3A1DE 0x53CC +0x8EA3A1DF 0x355B +0x8EA3A1E0 0x53CE +0x8EA3A1E1 0x5721 +0x8EA3A1E2 0x37A2 +0x8EA3A1E3 0x5E00 +0x8EA3A1E4 0x5F0C +0x8EA3A1E5 0x6237 +0x8EA3A1E6 0x6238 +0x8EA3A1E7 0x6534 +0x8EA3A1E8 0x6535 +0x8EA3A1E9 0x65E0 +0x8EA3A1EA 0x3E26 +0x8EA3A1EB 0x738D +0x8EA3A1EC 0x4E97 +0x8EA3A1ED 0x4EE0 +0x8EA3A1EE 0x3432 +0x8EA3A1EF 0x201A9 +0x8EA3A1F0 0x4EE7 +0x8EA3A1F1 0x3433 +0x8EA3A1F2 0x4EE6 +0x8EA3A1F3 0x3434 +0x8EA3A1F4 0x36A2 +0x8EA3A1F5 0x3431 +0x8EA3A1F6 0x34B0 +0x8EA3A1F7 0x56D8 +0x8EA3A1F8 0x518B +0x8EA3A1F9 0x518C +0x8EA3A1FA 0x5199 +0x8EA3A1FB 0x51E5 +0x8EA3A1FC 0x2F850 +0x8EA3A1FD 0x520B +0x8EA3A1FE 0x34DC +0x8EA3A2A1 0x361E +0x8EA3A2A2 0x5304 +0x8EA3A2A3 0x5303 +0x8EA3A2A4 0x5307 +0x8EA3A2A5 0x2F82A +0x8EA3A2A6 0x531E +0x8EA3A2A7 0x535F +0x8EA3A2A8 0x536D +0x8EA3A2A9 0x5389 +0x8EA3A2AA 0x53BA +0x8EA3A2AB 0x53D0 +0x8EA3A2AC 0x3565 +0x8EA3A2AD 0x53F6 +0x8EA3A2AE 0x53F7 +0x8EA3A2AF 0x53F9 +0x8EA3A2B0 0x3564 +0x8EA3A2B1 0x53F4 +0x8EA3A2B2 0x361D +0x8EA3A2B3 0x3626 +0x8EA3A2B4 0x5724 +0x8EA3A2B5 0x5904 +0x8EA3A2B6 0x5918 +0x8EA3A2B7 0x5932 +0x8EA3A2B8 0x5930 +0x8EA3A2B9 0x5934 +0x8EA3A2BA 0x368E +0x8EA3A2BB 0x5975 +0x8EA3A2BC 0x374A +0x8EA3A2BD 0x5B82 +0x8EA3A2BE 0x5BF9 +0x8EA3A2BF 0x5C14 +0x8EA3A2C0 0x378B +0x8EA3A2C1 0x37A6 +0x8EA3A2C2 0x37A4 +0x8EA3A2C3 0x37A5 +0x8EA3A2C4 0x37A7 +0x8EA3A2C5 0x382F +0x8EA3A2C6 0x3832 +0x8EA3A2C7 0x5E81 +0x8EA3A2C8 0x5E83 +0x8EA3A2C9 0x5F0D +0x8EA3A2CA 0x5F52 +0x8EA3A2CB 0x38D4 +0x8EA3A2CC 0x5FCA +0x8EA3A2CD 0x5FC7 +0x8EA3A2CE 0x6239 +0x8EA3A2CF 0x39C5 +0x8EA3A2D0 0x624F +0x8EA3A2D1 0x65E7 +0x8EA3A2D2 0x672F +0x8EA3A2D3 0x6B7A +0x8EA3A2D4 0x6C39 +0x8EA3A2D5 0x3CBA +0x8EA3A2D6 0x3CB9 +0x8EA3A2D7 0x6C37 +0x8EA3A2D8 0x6C44 +0x8EA3A2D9 0x6C45 +0x8EA3A2DA 0x738C +0x8EA3A2DB 0x7592 +0x8EA3A2DC 0x7676 +0x8EA3A2DD 0x9093 +0x8EA3A2DE 0x9092 +0x8EA3A2DF 0x48B3 +0x8EA3A2E0 0x49BA +0x8EA3A2E1 0x4E21 +0x8EA3A2E2 0x4E20 +0x8EA3A2E3 0x4E22 +0x8EA3A2E4 0x4E68 +0x8EA3A2E5 0x4E89 +0x8EA3A2E6 0x4E98 +0x8EA3A2E7 0x4EF9 +0x8EA3A2E8 0x4EEF +0x8EA3A2E9 0x343B +0x8EA3A2EA 0x343C +0x8EA3A2EB 0x4EF8 +0x8EA3A2EC 0x4F06 +0x8EA3A2ED 0x4F03 +0x8EA3A2EE 0x4EFC +0x8EA3A2EF 0x4EEE +0x8EA3A2F0 0x4F16 +0x8EA3A2F1 0x3439 +0x8EA3A2F2 0x4F28 +0x8EA3A2F3 0x4F1C +0x8EA3A2F4 0x4F07 +0x8EA3A2F5 0x4F1A +0x8EA3A2F6 0x4EFA +0x8EA3A2F7 0x4F17 +0x8EA3A2F8 0x514A +0x8EA3A2F9 0x34B2 +0x8EA3A2FA 0x5172 +0x8EA3A2FB 0x2F815 +0x8EA3A2FC 0x51B4 +0x8EA3A2FD 0x51B3 +0x8EA3A2FE 0x51B2 +0x8EA3A3A1 0x34C7 +0x8EA3A3A2 0x51E8 +0x8EA3A3A3 0x342B +0x8EA3A3A4 0x5214 +0x8EA3A3A5 0x520F +0x8EA3A3A6 0x5215 +0x8EA3A3A7 0x5218 +0x8EA3A3A8 0x52A8 +0x8EA3A3A9 0x2F82C +0x8EA3A3AA 0x534B +0x8EA3A3AB 0x534F +0x8EA3A3AC 0x353B +0x8EA3A3AD 0x5350 +0x8EA3A3AE 0x3544 +0x8EA3A3AF 0x538B +0x8EA3A3B0 0x3542 +0x8EA3A3B1 0x53BE +0x8EA3A3B2 0x355C +0x8EA3A3B3 0x53D2 +0x8EA3A3B4 0x5416 +0x8EA3A3B5 0x53FF +0x8EA3A3B6 0x3567 +0x8EA3A3B7 0x5400 +0x8EA3A3B8 0x3566 +0x8EA3A3B9 0x5405 +0x8EA3A3BA 0x5413 +0x8EA3A3BB 0x5415 +0x8EA3A3BC 0x2F83B +0x8EA3A3BD 0x361F +0x8EA3A3BE 0x56E3 +0x8EA3A3BF 0x5735 +0x8EA3A3C0 0x5736 +0x8EA3A3C1 0x5731 +0x8EA3A3C2 0x5732 +0x8EA3A3C3 0x58EE +0x8EA3A3C4 0x5905 +0x8EA3A3C5 0x4E54 +0x8EA3A3C6 0x368F +0x8EA3A3C7 0x5936 +0x8EA3A3C8 0x3690 +0x8EA3A3C9 0x36A8 +0x8EA3A3CA 0x36A4 +0x8EA3A3CB 0x597A +0x8EA3A3CC 0x36A3 +0x8EA3A3CD 0x5986 +0x8EA3A3CE 0x373D +0x8EA3A3CF 0x374C +0x8EA3A3D0 0x5B86 +0x8EA3A3D1 0x5F53 +0x8EA3A3D2 0x5C18 +0x8EA3A3D3 0x378C +0x8EA3A3D4 0x5C3D +0x8EA3A3D5 0x5C78 +0x8EA3A3D6 0x37A8 +0x8EA3A3D7 0x37AD +0x8EA3A3D8 0x37AF +0x8EA3A3D9 0x21D46 +0x8EA3A3DA 0x5C80 +0x8EA3A3DB 0x3829 +0x8EA3A3DC 0x5E08 +0x8EA3A3DD 0x3836 +0x8EA3A3DE 0x3871 +0x8EA3A3DF 0x3870 +0x8EA3A3E0 0x386F +0x8EA3A3E1 0x5EF5 +0x8EA3A3E2 0x5F0E +0x8EA3A3E3 0x38A9 +0x8EA3A3E4 0x38AA +0x8EA3A3E5 0x38FB +0x8EA3A3E6 0x5FD3 +0x8EA3A3E7 0x5FDA +0x8EA3A3E8 0x38FC +0x8EA3A3E9 0x5FDB +0x8EA3A3EA 0x39AE +0x8EA3A3EB 0x620F +0x8EA3A3EC 0x625D +0x8EA3A3ED 0x625F +0x8EA3A3EE 0x6267 +0x8EA3A3EF 0x6257 +0x8EA3A3F0 0x9F50 +0x8EA3A3F1 0x3AC3 +0x8EA3A3F2 0x65EB +0x8EA3A3F3 0x65EA +0x8EA3A3F4 0x3B30 +0x8EA3A3F5 0x6737 +0x8EA3A3F6 0x3B41 +0x8EA3A3F7 0x6732 +0x8EA3A3F8 0x6736 +0x8EA3A3F9 0x6B22 +0x8EA3A3FA 0x6BCE +0x8EA3A3FB 0x3C8C +0x8EA3A3FC 0x6C58 +0x8EA3A3FD 0x6C51 +0x8EA3A3FE 0x6C77 +0x8EA3A4A1 0x6C3C +0x8EA3A4A2 0x3CBB +0x8EA3A4A3 0x6C5A +0x8EA3A4A4 0x23C86 +0x8EA3A4A5 0x6C53 +0x8EA3A4A6 0x706F +0x8EA3A4A7 0x7072 +0x8EA3A4A8 0x706E +0x8EA3A4A9 0x2F835 +0x8EA3A4AA 0x3DA1 +0x8EA3A4AB 0x7073 +0x8EA3A4AC 0x72B1 +0x8EA3A4AD 0x72B2 +0x8EA3A4AE 0x3EA8 +0x8EA3A4AF 0x738F +0x8EA3A4B0 0x3EAA +0x8EA3A4B1 0x3EAB +0x8EA3A4B2 0x4096 +0x8EA3A4B3 0x793C +0x8EA3A4B4 0x41C2 +0x8EA3A4B5 0x808D +0x8EA3A4B6 0x808E +0x8EA3A4B7 0x4493 +0x8EA3A4B8 0x827B +0x8EA3A4B9 0x4494 +0x8EA3A4BA 0x8D71 +0x8EA3A4BB 0x8FB9 +0x8EA3A4BC 0x9096 +0x8EA3A4BD 0x909A +0x8EA3A4BE 0x49BB +0x8EA3A4BF 0x4E24 +0x8EA3A4C0 0x4E71 +0x8EA3A4C1 0x2F81B +0x8EA3A4C2 0x4E9C +0x8EA3A4C3 0x4F45 +0x8EA3A4C4 0x4F4A +0x8EA3A4C5 0x4F39 +0x8EA3A4C6 0x4F37 +0x8EA3A4C7 0x3443 +0x8EA3A4C8 0x4F32 +0x8EA3A4C9 0x4F42 +0x8EA3A4CA 0x3442 +0x8EA3A4CB 0x4F44 +0x8EA3A4CC 0x4F4B +0x8EA3A4CD 0x3444 +0x8EA3A4CE 0x4F40 +0x8EA3A4CF 0x4F35 +0x8EA3A4D0 0x4F31 +0x8EA3A4D1 0x5151 +0x8EA3A4D2 0x2F80E +0x8EA3A4D3 0x5150 +0x8EA3A4D4 0x514E +0x8EA3A4D5 0x34B3 +0x8EA3A4D6 0x34B7 +0x8EA3A4D7 0x519D +0x8EA3A4D8 0x34C8 +0x8EA3A4D9 0x51B5 +0x8EA3A4DA 0x51B8 +0x8EA3A4DB 0x51EC +0x8EA3A4DC 0x5223 +0x8EA3A4DD 0x5227 +0x8EA3A4DE 0x5226 +0x8EA3A4DF 0x521F +0x8EA3A4E0 0x522B +0x8EA3A4E1 0x5220 +0x8EA3A4E2 0x52B4 +0x8EA3A4E3 0x52B3 +0x8EA3A4E4 0x3518 +0x8EA3A4E5 0x5325 +0x8EA3A4E6 0x533B +0x8EA3A4E7 0x5374 +0x8EA3A4E8 0x3547 +0x8EA3A4E9 0x3546 +0x8EA3A4EA 0x3545 +0x8EA3A4EB 0x356B +0x8EA3A4EC 0x3569 +0x8EA3A4ED 0x544D +0x8EA3A4EE 0x3572 +0x8EA3A4EF 0x3571 +0x8EA3A4F0 0x543A +0x8EA3A4F1 0x356C +0x8EA3A4F2 0x356F +0x8EA3A4F3 0x5444 +0x8EA3A4F4 0x544C +0x8EA3A4F5 0x5423 +0x8EA3A4F6 0x541A +0x8EA3A4F7 0x5432 +0x8EA3A4F8 0x544B +0x8EA3A4F9 0x5421 +0x8EA3A4FA 0x3573 +0x8EA3A4FB 0x5434 +0x8EA3A4FC 0x5449 +0x8EA3A4FD 0x5450 +0x8EA3A4FE 0x5422 +0x8EA3A5A1 0x543F +0x8EA3A5A2 0x5451 +0x8EA3A5A3 0x545A +0x8EA3A5A4 0x542F +0x8EA3A5A5 0x3576 +0x8EA3A5A6 0x56E9 +0x8EA3A5A7 0x56F2 +0x8EA3A5A8 0x56F3 +0x8EA3A5A9 0x56EF +0x8EA3A5AA 0x56ED +0x8EA3A5AB 0x56EC +0x8EA3A5AC 0x56E6 +0x8EA3A5AD 0x5748 +0x8EA3A5AE 0x3627 +0x8EA3A5AF 0x5744 +0x8EA3A5B0 0x573F +0x8EA3A5B1 0x573C +0x8EA3A5B2 0x5753 +0x8EA3A5B3 0x5756 +0x8EA3A5B4 0x3630 +0x8EA3A5B5 0x575F +0x8EA3A5B6 0x5743 +0x8EA3A5B7 0x5758 +0x8EA3A5B8 0x5757 +0x8EA3A5B9 0x3629 +0x8EA3A5BA 0x362A +0x8EA3A5BB 0x362F +0x8EA3A5BC 0x5746 +0x8EA3A5BD 0x362C +0x8EA3A5BE 0x573D +0x8EA3A5BF 0x362D +0x8EA3A5C0 0x5742 +0x8EA3A5C1 0x5754 +0x8EA3A5C2 0x5755 +0x8EA3A5C3 0x58F1 +0x8EA3A5C4 0x58F2 +0x8EA3A5C5 0x58F0 +0x8EA3A5C6 0x590B +0x8EA3A5C7 0x9EA6 +0x8EA3A5C8 0x56F1 +0x8EA3A5C9 0x593D +0x8EA3A5CA 0x3693 +0x8EA3A5CB 0x5994 +0x8EA3A5CC 0x598C +0x8EA3A5CD 0x36AD +0x8EA3A5CE 0x599C +0x8EA3A5CF 0x36AC +0x8EA3A5D0 0x36AB +0x8EA3A5D1 0x599F +0x8EA3A5D2 0x36A9 +0x8EA3A5D3 0x599B +0x8EA3A5D4 0x36AE +0x8EA3A5D5 0x5989 +0x8EA3A5D6 0x599A +0x8EA3A5D7 0x36AA +0x8EA3A5D8 0x6588 +0x8EA3A5D9 0x374E +0x8EA3A5DA 0x5B8D +0x8EA3A5DB 0x3750 +0x8EA3A5DC 0x5BFE +0x8EA3A5DD 0x5BFF +0x8EA3A5DE 0x5BFD +0x8EA3A5DF 0x5C2B +0x8EA3A5E0 0x37B2 +0x8EA3A5E1 0x5C84 +0x8EA3A5E2 0x5C8E +0x8EA3A5E3 0x5C9C +0x8EA3A5E4 0x37B5 +0x8EA3A5E5 0x37B6 +0x8EA3A5E6 0x5C85 +0x8EA3A5E7 0x5DF5 +0x8EA3A5E8 0x5E09 +0x8EA3A5E9 0x3839 +0x8EA3A5EA 0x383B +0x8EA3A5EB 0x5E0B +0x8EA3A5EC 0x3872 +0x8EA3A5ED 0x5E92 +0x8EA3A5EE 0x5E90 +0x8EA3A5EF 0x5F03 +0x8EA3A5F0 0x38AC +0x8EA3A5F1 0x5F1E +0x8EA3A5F2 0x5F63 +0x8EA3A5F3 0x3908 +0x8EA3A5F4 0x5FE7 +0x8EA3A5F5 0x5FFE +0x8EA3A5F6 0x5FE6 +0x8EA3A5F7 0x5FDC +0x8EA3A5F8 0x5FCE +0x8EA3A5F9 0x3903 +0x8EA3A5FA 0x5FFC +0x8EA3A5FB 0x5FDF +0x8EA3A5FC 0x5FEC +0x8EA3A5FD 0x5FF6 +0x8EA3A5FE 0x225D7 +0x8EA3A6A1 0x5FF2 +0x8EA3A6A2 0x5FF0 +0x8EA3A6A3 0x5FF9 +0x8EA3A6A4 0x390B +0x8EA3A6A5 0x6213 +0x8EA3A6A6 0x39AF +0x8EA3A6A7 0x2F8B2 +0x8EA3A6A8 0x623B +0x8EA3A6A9 0x623C +0x8EA3A6AA 0x6282 +0x8EA3A6AB 0x39CE +0x8EA3A6AC 0x39CB +0x8EA3A6AD 0x39CC +0x8EA3A6AE 0x6278 +0x8EA3A6AF 0x628B +0x8EA3A6B0 0x39CD +0x8EA3A6B1 0x629E +0x8EA3A6B2 0x62A5 +0x8EA3A6B3 0x629B +0x8EA3A6B4 0x629C +0x8EA3A6B5 0x6299 +0x8EA3A6B6 0x628D +0x8EA3A6B7 0x6285 +0x8EA3A6B8 0x629D +0x8EA3A6B9 0x6275 +0x8EA3A6BA 0x3A80 +0x8EA3A6BB 0x3AAF +0x8EA3A6BC 0x3AD3 +0x8EA3A6BD 0x65F6 +0x8EA3A6BE 0x3AD5 +0x8EA3A6BF 0x3AD4 +0x8EA3A6C0 0x3AD7 +0x8EA3A6C1 0x66F5 +0x8EA3A6C2 0x675B +0x8EA3A6C3 0x3B42 +0x8EA3A6C4 0x6754 +0x8EA3A6C5 0x6752 +0x8EA3A6C6 0x3B44 +0x8EA3A6C7 0x6758 +0x8EA3A6C8 0x6744 +0x8EA3A6C9 0x674A +0x8EA3A6CA 0x6761 +0x8EA3A6CB 0x3CC6 +0x8EA3A6CC 0x6C7F +0x8EA3A6CD 0x6C91 +0x8EA3A6CE 0x6C9E +0x8EA3A6CF 0x3CC0 +0x8EA3A6D0 0x6C6E +0x8EA3A6D1 0x6C7C +0x8EA3A6D2 0x6C9F +0x8EA3A6D3 0x6C75 +0x8EA3A6D4 0x3CBE +0x8EA3A6D5 0x6C56 +0x8EA3A6D6 0x6CA2 +0x8EA3A6D7 0x6C79 +0x8EA3A6D8 0x3CCA +0x8EA3A6D9 0x6CA1 +0x8EA3A6DA 0x3CC4 +0x8EA3A6DB 0x6CAA +0x8EA3A6DC 0x6CA0 +0x8EA3A6DD 0x3CC2 +0x8EA3A6DE 0x7079 +0x8EA3A6DF 0x7077 +0x8EA3A6E0 0x707E +0x8EA3A6E1 0x3DA4 +0x8EA3A6E2 0x7075 +0x8EA3A6E3 0x707B +0x8EA3A6E4 0x7264 +0x8EA3A6E5 0x3E29 +0x8EA3A6E6 0x72BB +0x8EA3A6E7 0x72BC +0x8EA3A6E8 0x72C7 +0x8EA3A6E9 0x72B9 +0x8EA3A6EA 0x72BE +0x8EA3A6EB 0x72B6 +0x8EA3A6EC 0x3E60 +0x8EA3A6ED 0x3E5E +0x8EA3A6EE 0x7398 +0x8EA3A6EF 0x3EAD +0x8EA3A6F0 0x3EAE +0x8EA3A6F1 0x3EAC +0x8EA3A6F2 0x3F57 +0x8EA3A6F3 0x7593 +0x8EA3A6F4 0x7680 +0x8EA3A6F5 0x3FDD +0x8EA3A6F6 0x7683 +0x8EA3A6F7 0x76C0 +0x8EA3A6F8 0x76C1 +0x8EA3A6F9 0x400E +0x8EA3A6FA 0x4097 +0x8EA3A6FB 0x77F4 +0x8EA3A6FC 0x77F5 +0x8EA3A6FD 0x4127 +0x8EA3A6FE 0x7ACC +0x8EA3A7A1 0x7ACD +0x8EA3A7A2 0x7CFA +0x8EA3A7A3 0x809F +0x8EA3A7A4 0x8091 +0x8EA3A7A5 0x8097 +0x8EA3A7A6 0x8094 +0x8EA3A7A7 0x4495 +0x8EA3A7A8 0x8286 +0x8EA3A7A9 0x828C +0x8EA3A7AA 0x2F98F +0x8EA3A7AB 0x8295 +0x8EA3A7AC 0x4498 +0x8EA3A7AD 0x866C +0x8EA3A7AE 0x459D +0x8EA3A7AF 0x8FB5 +0x8EA3A7B0 0x8FBE +0x8EA3A7B1 0x8FC7 +0x8EA3A7B2 0x488A +0x8EA3A7B3 0x8FC1 +0x8EA3A7B4 0x90A9 +0x8EA3A7B5 0x90A4 +0x8EA3A7B6 0x48B5 +0x8EA3A7B7 0x48B6 +0x8EA3A7B8 0x48B7 +0x8EA3A7B9 0x90A8 +0x8EA3A7BA 0x9627 +0x8EA3A7BB 0x9626 +0x8EA3A7BC 0x962B +0x8EA3A7BD 0x9633 +0x8EA3A7BE 0x9634 +0x8EA3A7BF 0x9629 +0x8EA3A7C0 0x4E3D +0x8EA3A7C1 0x3428 +0x8EA3A7C2 0x4E9D +0x8EA3A7C3 0x4F93 +0x8EA3A7C4 0x4F8A +0x8EA3A7C5 0x344D +0x8EA3A7C6 0x3449 +0x8EA3A7C7 0x4F6D +0x8EA3A7C8 0x4F8E +0x8EA3A7C9 0x4FA0 +0x8EA3A7CA 0x4FA2 +0x8EA3A7CB 0x4FA1 +0x8EA3A7CC 0x4F9F +0x8EA3A7CD 0x4FA3 +0x8EA3A7CE 0x20209 +0x8EA3A7CF 0x4F72 +0x8EA3A7D0 0x3451 +0x8EA3A7D1 0x4F8C +0x8EA3A7D2 0x5156 +0x8EA3A7D3 0x2F80F +0x8EA3A7D4 0x2F811 +0x8EA3A7D5 0x5190 +0x8EA3A7D6 0x34CB +0x8EA3A7D7 0x34CA +0x8EA3A7D8 0x34CC +0x8EA3A7D9 0x51ED +0x8EA3A7DA 0x51FE +0x8EA3A7DB 0x522F +0x8EA3A7DC 0x206EC +0x8EA3A7DD 0x523C +0x8EA3A7DE 0x5234 +0x8EA3A7DF 0x5239 +0x8EA3A7E0 0x52B9 +0x8EA3A7E1 0x52B5 +0x8EA3A7E2 0x52BF +0x8EA3A7E3 0x5355 +0x8EA3A7E4 0x353D +0x8EA3A7E5 0x5376 +0x8EA3A7E6 0x537A +0x8EA3A7E7 0x5393 +0x8EA3A7E8 0x3548 +0x8EA3A7E9 0x53C1 +0x8EA3A7EA 0x53C2 +0x8EA3A7EB 0x53D5 +0x8EA3A7EC 0x5485 +0x8EA3A7ED 0x3578 +0x8EA3A7EE 0x545F +0x8EA3A7EF 0x5493 +0x8EA3A7F0 0x5489 +0x8EA3A7F1 0x5479 +0x8EA3A7F2 0x9EFE +0x8EA3A7F3 0x548F +0x8EA3A7F4 0x5469 +0x8EA3A7F5 0x546D +0x8EA3A7F6 0x357A +0x8EA3A7F7 0x5494 +0x8EA3A7F8 0x546A +0x8EA3A7F9 0x548A +0x8EA3A7FA 0x3577 +0x8EA3A7FB 0x56FD +0x8EA3A7FC 0x56FB +0x8EA3A7FD 0x56F8 +0x8EA3A7FE 0x3621 +0x8EA3A8A1 0x56FC +0x8EA3A8A2 0x56F6 +0x8EA3A8A3 0x5765 +0x8EA3A8A4 0x5781 +0x8EA3A8A5 0x5763 +0x8EA3A8A6 0x5767 +0x8EA3A8A7 0x3631 +0x8EA3A8A8 0x576E +0x8EA3A8A9 0x5778 +0x8EA3A8AA 0x577F +0x8EA3A8AB 0x3633 +0x8EA3A8AC 0x3634 +0x8EA3A8AD 0x58F3 +0x8EA3A8AE 0x594B +0x8EA3A8AF 0x594C +0x8EA3A8B0 0x36C1 +0x8EA3A8B1 0x36B0 +0x8EA3A8B2 0x36B4 +0x8EA3A8B3 0x59AD +0x8EA3A8B4 0x36B8 +0x8EA3A8B5 0x59C4 +0x8EA3A8B6 0x36BC +0x8EA3A8B7 0x59C2 +0x8EA3A8B8 0x59B0 +0x8EA3A8B9 0x36BF +0x8EA3A8BA 0x36B5 +0x8EA3A8BB 0x36B1 +0x8EA3A8BC 0x36BD +0x8EA3A8BD 0x59BF +0x8EA3A8BE 0x36BB +0x8EA3A8BF 0x59C9 +0x8EA3A8C0 0x59B8 +0x8EA3A8C1 0x59AC +0x8EA3A8C2 0x36B3 +0x8EA3A8C3 0x36B6 +0x8EA3A8C4 0x36BA +0x8EA3A8C5 0x59B7 +0x8EA3A8C6 0x59D7 +0x8EA3A8C7 0x36B7 +0x8EA3A8C8 0x5B60 +0x8EA3A8C9 0x3740 +0x8EA3A8CA 0x5B96 +0x8EA3A8CB 0x5B9E +0x8EA3A8CC 0x5B94 +0x8EA3A8CD 0x5B9F +0x8EA3A8CE 0x5B9D +0x8EA3A8CF 0x3752 +0x8EA3A8D0 0x5C00 +0x8EA3A8D1 0x5C19 +0x8EA3A8D2 0x3790 +0x8EA3A8D3 0x3791 +0x8EA3A8D4 0x5C49 +0x8EA3A8D5 0x5C4A +0x8EA3A8D6 0x37BE +0x8EA3A8D7 0x5CBB +0x8EA3A8D8 0x5CC1 +0x8EA3A8D9 0x37C0 +0x8EA3A8DA 0x37C1 +0x8EA3A8DB 0x37B9 +0x8EA3A8DC 0x5CB9 +0x8EA3A8DD 0x5C9E +0x8EA3A8DE 0x5CB4 +0x8EA3A8DF 0x5CBA +0x8EA3A8E0 0x5DF6 +0x8EA3A8E1 0x5E13 +0x8EA3A8E2 0x5E12 +0x8EA3A8E3 0x5E77 +0x8EA3A8E4 0x3879 +0x8EA3A8E5 0x5E98 +0x8EA3A8E6 0x387B +0x8EA3A8E7 0x5E99 +0x8EA3A8E8 0x5E9D +0x8EA3A8E9 0x5EF8 +0x8EA3A8EA 0x38A0 +0x8EA3A8EB 0x5EF9 +0x8EA3A8EC 0x3429 +0x8EA3A8ED 0x5F06 +0x8EA3A8EE 0x5F21 +0x8EA3A8EF 0x38AE +0x8EA3A8F0 0x5F25 +0x8EA3A8F1 0x5F55 +0x8EA3A8F2 0x38CD +0x8EA3A8F3 0x38CB +0x8EA3A8F4 0x38D9 +0x8EA3A8F5 0x5F84 +0x8EA3A8F6 0x5F83 +0x8EA3A8F7 0x6030 +0x8EA3A8F8 0x6007 +0x8EA3A8F9 0x390C +0x8EA3A8FA 0x6036 +0x8EA3A8FB 0x3901 +0x8EA3A8FC 0x3905 +0x8EA3A8FD 0x3902 +0x8EA3A8FE 0x5FE9 +0x8EA3A9A1 0x603D +0x8EA3A9A2 0x6008 +0x8EA3A9A3 0x3913 +0x8EA3A9A4 0x3911 +0x8EA3A9A5 0x62BA +0x8EA3A9A6 0x62B2 +0x8EA3A9A7 0x39E4 +0x8EA3A9A8 0x62B7 +0x8EA3A9A9 0x62E4 +0x8EA3A9AA 0x62A7 +0x8EA3A9AB 0x39DA +0x8EA3A9AC 0x39D5 +0x8EA3A9AD 0x39D3 +0x8EA3A9AE 0x62D5 +0x8EA3A9AF 0x62E1 +0x8EA3A9B0 0x62DD +0x8EA3A9B1 0x62A6 +0x8EA3A9B2 0x62C1 +0x8EA3A9B3 0x62C5 +0x8EA3A9B4 0x62C0 +0x8EA3A9B5 0x62DF +0x8EA3A9B6 0x62E0 +0x8EA3A9B7 0x62DE +0x8EA3A9B8 0x39D6 +0x8EA3A9B9 0x6589 +0x8EA3A9BA 0x3AB4 +0x8EA3A9BB 0x65A6 +0x8EA3A9BC 0x65BA +0x8EA3A9BD 0x3AD9 +0x8EA3A9BE 0x65FF +0x8EA3A9BF 0x3AD8 +0x8EA3A9C0 0x6617 +0x8EA3A9C1 0x6618 +0x8EA3A9C2 0x6601 +0x8EA3A9C3 0x65FE +0x8EA3A9C4 0x3B33 +0x8EA3A9C5 0x670C +0x8EA3A9C6 0x3B48 +0x8EA3A9C7 0x676B +0x8EA3A9C8 0x6796 +0x8EA3A9C9 0x6782 +0x8EA3A9CA 0x678A +0x8EA3A9CB 0x3B47 +0x8EA3A9CC 0x67A3 +0x8EA3A9CD 0x3B4B +0x8EA3A9CE 0x67A2 +0x8EA3A9CF 0x678F +0x8EA3A9D0 0x3B4A +0x8EA3A9D1 0x67F9 +0x8EA3A9D2 0x6780 +0x8EA3A9D3 0x6B26 +0x8EA3A9D4 0x6B27 +0x8EA3A9D5 0x6B68 +0x8EA3A9D6 0x6B69 +0x8EA3A9D7 0x3C5A +0x8EA3A9D8 0x6B81 +0x8EA3A9D9 0x6BB4 +0x8EA3A9DA 0x6BD1 +0x8EA3A9DB 0x3C8E +0x8EA3A9DC 0x3CB4 +0x8EA3A9DD 0x6C1C +0x8EA3A9DE 0x3CCD +0x8EA3A9DF 0x3CCC +0x8EA3A9E0 0x3CCF +0x8EA3A9E1 0x3CCB +0x8EA3A9E2 0x3CCE +0x8EA3A9E3 0x6C97 +0x8EA3A9E4 0x6C6C +0x8EA3A9E5 0x6CDF +0x8EA3A9E6 0x3CD2 +0x8EA3A9E7 0x6CEA +0x8EA3A9E8 0x3CD1 +0x8EA3A9E9 0x6CE4 +0x8EA3A9EA 0x6CD8 +0x8EA3A9EB 0x6CB2 +0x8EA3A9EC 0x6CCE +0x8EA3A9ED 0x6CC8 +0x8EA3A9EE 0x3DA6 +0x8EA3A9EF 0x708B +0x8EA3A9F0 0x7088 +0x8EA3A9F1 0x7090 +0x8EA3A9F2 0x708F +0x8EA3A9F3 0x3DAA +0x8EA3A9F4 0x7087 +0x8EA3A9F5 0x7089 +0x8EA3A9F6 0x708D +0x8EA3A9F7 0x7081 +0x8EA3A9F8 0x3DA8 +0x8EA3A9F9 0x708C +0x8EA3A9FA 0x3E13 +0x8EA3A9FB 0x3E1A +0x8EA3A9FC 0x7240 +0x8EA3A9FD 0x3E1D +0x8EA3A9FE 0x3E1E +0x8EA3AAA1 0x7265 +0x8EA3AAA2 0x7266 +0x8EA3AAA3 0x7268 +0x8EA3AAA4 0x3E65 +0x8EA3AAA5 0x3E66 +0x8EA3AAA6 0x72CD +0x8EA3AAA7 0x72D3 +0x8EA3AAA8 0x72DB +0x8EA3AAA9 0x3E64 +0x8EA3AAAA 0x72CF +0x8EA3AAAB 0x73A7 +0x8EA3AAAC 0x73A3 +0x8EA3AAAD 0x739E +0x8EA3AAAE 0x3EB0 +0x8EA3AAAF 0x73AF +0x8EA3AAB0 0x3EB3 +0x8EA3AAB1 0x3EB5 +0x8EA3AAB2 0x73AA +0x8EA3AAB3 0x739C +0x8EA3AAB4 0x3F19 +0x8EA3AAB5 0x7542 +0x8EA3AAB6 0x7544 +0x8EA3AAB7 0x753B +0x8EA3AAB8 0x7541 +0x8EA3AAB9 0x2233F +0x8EA3AABA 0x759B +0x8EA3AABB 0x759E +0x8EA3AABC 0x3F75 +0x8EA3AABD 0x79C4 +0x8EA3AABE 0x79C3 +0x8EA3AABF 0x79C6 +0x8EA3AAC0 0x412B +0x8EA3AAC1 0x412C +0x8EA3AAC2 0x79C7 +0x8EA3AAC3 0x412D +0x8EA3AAC4 0x79CA +0x8EA3AAC5 0x2592E +0x8EA3AAC6 0x41C3 +0x8EA3AAC7 0x7ACF +0x8EA3AAC8 0x7C76 +0x8EA3AAC9 0x7C74 +0x8EA3AACA 0x7CFF +0x8EA3AACB 0x7CFC +0x8EA3AACC 0x34BA +0x8EA3AACD 0x4350 +0x8EA3AACE 0x7F59 +0x8EA3AACF 0x80A8 +0x8EA3AAD0 0x43D3 +0x8EA3AAD1 0x43D0 +0x8EA3AAD2 0x80B0 +0x8EA3AAD3 0x43DC +0x8EA3AAD4 0x80B3 +0x8EA3AAD5 0x43D2 +0x8EA3AAD6 0x80A4 +0x8EA3AAD7 0x80B6 +0x8EA3AAD8 0x80A7 +0x8EA3AAD9 0x80AC +0x8EA3AADA 0x43DB +0x8EA3AADB 0x80A6 +0x8EA3AADC 0x5367 +0x8EA3AADD 0x820E +0x8EA3AADE 0x82C4 +0x8EA3AADF 0x833E +0x8EA3AAE0 0x829C +0x8EA3AAE1 0x44A5 +0x8EA3AAE2 0x449F +0x8EA3AAE3 0x449A +0x8EA3AAE4 0x449C +0x8EA3AAE5 0x44A2 +0x8EA3AAE6 0x82AA +0x8EA3AAE7 0x449B +0x8EA3AAE8 0x82C9 +0x8EA3AAE9 0x44A3 +0x8EA3AAEA 0x449D +0x8EA3AAEB 0x82A6 +0x8EA3AAEC 0x82B2 +0x8EA3AAED 0x4588 +0x8EA3AAEE 0x461A +0x8EA3AAEF 0x488D +0x8EA3AAF0 0x8FCC +0x8EA3AAF1 0x8FD9 +0x8EA3AAF2 0x8FCA +0x8EA3AAF3 0x8FD8 +0x8EA3AAF4 0x8FCF +0x8EA3AAF5 0x90B7 +0x8EA3AAF6 0x48B8 +0x8EA3AAF7 0x90AD +0x8EA3AAF8 0x90B9 +0x8EA3AAF9 0x9637 +0x8EA3AAFA 0x49C3 +0x8EA3AAFB 0x9641 +0x8EA3AAFC 0x963E +0x8EA3AAFD 0x96B6 +0x8EA3AAFE 0x9751 +0x8EA3ABA1 0x9763 +0x8EA3ABA2 0x4E57 +0x8EA3ABA3 0x4E79 +0x8EA3ABA4 0x4EB2 +0x8EA3ABA5 0x4EB0 +0x8EA3ABA6 0x4EAF +0x8EA3ABA7 0x4EB1 +0x8EA3ABA8 0x4FD2 +0x8EA3ABA9 0x4FD5 +0x8EA3ABAA 0x345D +0x8EA3ABAB 0x4FBE +0x8EA3ABAC 0x4FB8 +0x8EA3ABAD 0x4FB0 +0x8EA3ABAE 0x4FB1 +0x8EA3ABAF 0x4FC8 +0x8EA3ABB0 0x345A +0x8EA3ABB1 0x3457 +0x8EA3ABB2 0x4FC6 +0x8EA3ABB3 0x4FCC +0x8EA3ABB4 0x4FE5 +0x8EA3ABB5 0x4FE3 +0x8EA3ABB6 0x4FB4 +0x8EA3ABB7 0x516A +0x8EA3ABB8 0x34B8 +0x8EA3ABB9 0x519F +0x8EA3ABBA 0x34C2 +0x8EA3ABBB 0x51C1 +0x8EA3ABBC 0x34CF +0x8EA3ABBD 0x51C2 +0x8EA3ABBE 0x51C3 +0x8EA3ABBF 0x5245 +0x8EA3ABC0 0x5248 +0x8EA3ABC1 0x34E7 +0x8EA3ABC2 0x34E9 +0x8EA3ABC3 0x524F +0x8EA3ABC4 0x4452 +0x8EA3ABC5 0x34E8 +0x8EA3ABC6 0x52C5 +0x8EA3ABC7 0x52CA +0x8EA3ABC8 0x52C4 +0x8EA3ABC9 0x5327 +0x8EA3ABCA 0x5358 +0x8EA3ABCB 0x537D +0x8EA3ABCC 0x354A +0x8EA3ABCD 0x53DD +0x8EA3ABCE 0x53DC +0x8EA3ABCF 0x53DA +0x8EA3ABD0 0x53D9 +0x8EA3ABD1 0x54B9 +0x8EA3ABD2 0x3580 +0x8EA3ABD3 0x54D0 +0x8EA3ABD4 0x54B4 +0x8EA3ABD5 0x54CA +0x8EA3ABD6 0x3587 +0x8EA3ABD7 0x54A3 +0x8EA3ABD8 0x54DA +0x8EA3ABD9 0x54A4 +0x8EA3ABDA 0x3584 +0x8EA3ABDB 0x54B2 +0x8EA3ABDC 0x549E +0x8EA3ABDD 0x549F +0x8EA3ABDE 0x54B5 +0x8EA3ABDF 0x3582 +0x8EA3ABE0 0x3581 +0x8EA3ABE1 0x54CD +0x8EA3ABE2 0x3583 +0x8EA3ABE3 0x54CC +0x8EA3ABE4 0x3622 +0x8EA3ABE5 0x5700 +0x8EA3ABE6 0x57AC +0x8EA3ABE7 0x5791 +0x8EA3ABE8 0x578E +0x8EA3ABE9 0x578D +0x8EA3ABEA 0x5792 +0x8EA3ABEB 0x57A1 +0x8EA3ABEC 0x5790 +0x8EA3ABED 0x57A6 +0x8EA3ABEE 0x57A8 +0x8EA3ABEF 0x363B +0x8EA3ABF0 0x579C +0x8EA3ABF1 0x5796 +0x8EA3ABF2 0x57A7 +0x8EA3ABF3 0x363A +0x8EA3ABF4 0x3638 +0x8EA3ABF5 0x3639 +0x8EA3ABF6 0x3636 +0x8EA3ABF7 0x58F5 +0x8EA3ABF8 0x3685 +0x8EA3ABF9 0x5909 +0x8EA3ABFA 0x5908 +0x8EA3ABFB 0x3C54 +0x8EA3ABFC 0x5952 +0x8EA3ABFD 0x369A +0x8EA3ABFE 0x36C4 +0x8EA3ACA1 0x59DF +0x8EA3ACA2 0x36C5 +0x8EA3ACA3 0x59EB +0x8EA3ACA4 0x59EF +0x8EA3ACA5 0x59F0 +0x8EA3ACA6 0x59D5 +0x8EA3ACA7 0x5A0D +0x8EA3ACA8 0x5A04 +0x8EA3ACA9 0x59F9 +0x8EA3ACAA 0x5A02 +0x8EA3ACAB 0x59F8 +0x8EA3ACAC 0x59E2 +0x8EA3ACAD 0x59D9 +0x8EA3ACAE 0x59E7 +0x8EA3ACAF 0x5B6A +0x8EA3ACB0 0x3754 +0x8EA3ACB1 0x3755 +0x8EA3ACB2 0x5BAB +0x8EA3ACB3 0x3756 +0x8EA3ACB4 0x5C1B +0x8EA3ACB5 0x5C2F +0x8EA3ACB6 0x3796 +0x8EA3ACB7 0x663C +0x8EA3ACB8 0x3795 +0x8EA3ACB9 0x3794 +0x8EA3ACBA 0x37C4 +0x8EA3ACBB 0x5CD1 +0x8EA3ACBC 0x5CDC +0x8EA3ACBD 0x5CE6 +0x8EA3ACBE 0x5CE1 +0x8EA3ACBF 0x5CCD +0x8EA3ACC0 0x2F87A +0x8EA3ACC1 0x5CE2 +0x8EA3ACC2 0x5CDD +0x8EA3ACC3 0x5CE5 +0x8EA3ACC4 0x5DFB +0x8EA3ACC5 0x5DFA +0x8EA3ACC6 0x5E1E +0x8EA3ACC7 0x3844 +0x8EA3ACC8 0x5EA1 +0x8EA3ACC9 0x387D +0x8EA3ACCA 0x387E +0x8EA3ACCB 0x5EFC +0x8EA3ACCC 0x5EFB +0x8EA3ACCD 0x5F2F +0x8EA3ACCE 0x38B2 +0x8EA3ACCF 0x38B6 +0x8EA3ACD0 0x5F66 +0x8EA3ACD1 0x2F899 +0x8EA3ACD2 0x38DC +0x8EA3ACD3 0x38DF +0x8EA3ACD4 0x605C +0x8EA3ACD5 0x3928 +0x8EA3ACD6 0x604E +0x8EA3ACD7 0x6051 +0x8EA3ACD8 0x3919 +0x8EA3ACD9 0x3910 +0x8EA3ACDA 0x6023 +0x8EA3ACDB 0x6031 +0x8EA3ACDC 0x607C +0x8EA3ACDD 0x6052 +0x8EA3ACDE 0x392C +0x8EA3ACDF 0x6060 +0x8EA3ACE0 0x604A +0x8EA3ACE1 0x6061 +0x8EA3ACE2 0x391B +0x8EA3ACE3 0x6218 +0x8EA3ACE4 0x39C2 +0x8EA3ACE5 0x39EF +0x8EA3ACE6 0x39E3 +0x8EA3ACE7 0x39E5 +0x8EA3ACE8 0x39EA +0x8EA3ACE9 0x39E6 +0x8EA3ACEA 0x39EE +0x8EA3ACEB 0x631F +0x8EA3ACEC 0x6317 +0x8EA3ACED 0x62EA +0x8EA3ACEE 0x6321 +0x8EA3ACEF 0x6304 +0x8EA3ACF0 0x6305 +0x8EA3ACF1 0x39E8 +0x8EA3ACF2 0x6531 +0x8EA3ACF3 0x6544 +0x8EA3ACF4 0x6540 +0x8EA3ACF5 0x3A85 +0x8EA3ACF6 0x6542 +0x8EA3ACF7 0x65BE +0x8EA3ACF8 0x3AE0 +0x8EA3ACF9 0x6629 +0x8EA3ACFA 0x661B +0x8EA3ACFB 0x3ADD +0x8EA3ACFC 0x6623 +0x8EA3ACFD 0x662C +0x8EA3ACFE 0x661A +0x8EA3ADA1 0x6630 +0x8EA3ADA2 0x663B +0x8EA3ADA3 0x661E +0x8EA3ADA4 0x6637 +0x8EA3ADA5 0x6638 +0x8EA3ADA6 0x3AE1 +0x8EA3ADA7 0x670E +0x8EA3ADA8 0x3B51 +0x8EA3ADA9 0x3B55 +0x8EA3ADAA 0x67E8 +0x8EA3ADAB 0x67D6 +0x8EA3ADAC 0x3B52 +0x8EA3ADAD 0x67C7 +0x8EA3ADAE 0x67BC +0x8EA3ADAF 0x6852 +0x8EA3ADB0 0x67BF +0x8EA3ADB1 0x67D5 +0x8EA3ADB2 0x67FE +0x8EA3ADB3 0x8363 +0x8EA3ADB4 0x67FB +0x8EA3ADB5 0x2F8DF +0x8EA3ADB6 0x67B1 +0x8EA3ADB7 0x6801 +0x8EA3ADB8 0x6805 +0x8EA3ADB9 0x6800 +0x8EA3ADBA 0x67D7 +0x8EA3ADBB 0x409E +0x8EA3ADBC 0x6B2A +0x8EA3ADBD 0x6B6B +0x8EA3ADBE 0x3C52 +0x8EA3ADBF 0x3C5E +0x8EA3ADC0 0x3C60 +0x8EA3ADC1 0x3C5F +0x8EA3ADC2 0x6BE1 +0x8EA3ADC3 0x3C92 +0x8EA3ADC4 0x3CD6 +0x8EA3ADC5 0x6D23 +0x8EA3ADC6 0x6CFF +0x8EA3ADC7 0x6D14 +0x8EA3ADC8 0x6D05 +0x8EA3ADC9 0x6D13 +0x8EA3ADCA 0x6D06 +0x8EA3ADCB 0x6D21 +0x8EA3ADCC 0x3CDE +0x8EA3ADCD 0x6D15 +0x8EA3ADCE 0x6CAF +0x8EA3ADCF 0x6CF4 +0x8EA3ADD0 0x6D02 +0x8EA3ADD1 0x6D45 +0x8EA3ADD2 0x2F8FE +0x8EA3ADD3 0x6D26 +0x8EA3ADD4 0x3CD9 +0x8EA3ADD5 0x6D44 +0x8EA3ADD6 0x3CDD +0x8EA3ADD7 0x6D24 +0x8EA3ADD8 0x70A5 +0x8EA3ADD9 0x3DAC +0x8EA3ADDA 0x70A3 +0x8EA3ADDB 0x3DB0 +0x8EA3ADDC 0x70A2 +0x8EA3ADDD 0x70BB +0x8EA3ADDE 0x70A0 +0x8EA3ADDF 0x70AA +0x8EA3ADE0 0x3DAF +0x8EA3ADE1 0x3DAE +0x8EA3ADE2 0x70A8 +0x8EA3ADE3 0x70B6 +0x8EA3ADE4 0x70B2 +0x8EA3ADE5 0x70A7 +0x8EA3ADE6 0x3DAD +0x8EA3ADE7 0x3DAB +0x8EA3ADE8 0x70B9 +0x8EA3ADE9 0x722E +0x8EA3ADEA 0x3E16 +0x8EA3ADEB 0x723C +0x8EA3ADEC 0x3E30 +0x8EA3ADED 0x726D +0x8EA3ADEE 0x3E33 +0x8EA3ADEF 0x3E31 +0x8EA3ADF0 0x72E7 +0x8EA3ADF1 0x72ED +0x8EA3ADF2 0x3E6E +0x8EA3ADF3 0x72EC +0x8EA3ADF4 0x72E5 +0x8EA3ADF5 0x72E2 +0x8EA3ADF6 0x3EB1 +0x8EA3ADF7 0x73C4 +0x8EA3ADF8 0x73BD +0x8EA3ADF9 0x73CF +0x8EA3ADFA 0x73C9 +0x8EA3ADFB 0x73C1 +0x8EA3ADFC 0x73D0 +0x8EA3ADFD 0x3EB7 +0x8EA3ADFE 0x73CE +0x8EA3AEA1 0x74ED +0x8EA3AEA2 0x74EB +0x8EA3AEA3 0x3F1A +0x8EA3AEA4 0x74EF +0x8EA3AEA5 0x7549 +0x8EA3AEA6 0x7550 +0x8EA3AEA7 0x7546 +0x8EA3AEA8 0x754A +0x8EA3AEA9 0x3F59 +0x8EA3AEAA 0x754D +0x8EA3AEAB 0x75A6 +0x8EA3AEAC 0x3F7A +0x8EA3AEAD 0x3F78 +0x8EA3AEAE 0x3F7B +0x8EA3AEAF 0x75A8 +0x8EA3AEB0 0x3FDE +0x8EA3AEB1 0x3FEC +0x8EA3AEB2 0x76C7 +0x8EA3AEB3 0x76FF +0x8EA3AEB4 0x401E +0x8EA3AEB5 0x76FD +0x8EA3AEB6 0x77E6 +0x8EA3AEB7 0x780A +0x8EA3AEB8 0x409B +0x8EA3AEB9 0x7804 +0x8EA3AEBA 0x780B +0x8EA3AEBB 0x7807 +0x8EA3AEBC 0x409D +0x8EA3AEBD 0x7815 +0x8EA3AEBE 0x7808 +0x8EA3AEBF 0x40FD +0x8EA3AEC0 0x79D3 +0x8EA3AEC1 0x79D4 +0x8EA3AEC2 0x79D0 +0x8EA3AEC3 0x79D7 +0x8EA3AEC4 0x7A7C +0x8EA3AEC5 0x4194 +0x8EA3AEC6 0x4193 +0x8EA3AEC7 0x7A7D +0x8EA3AEC8 0x7A83 +0x8EA3AEC9 0x7A82 +0x8EA3AECA 0x41C6 +0x8EA3AECB 0x7AD4 +0x8EA3AECC 0x7AD5 +0x8EA3AECD 0x7AD3 +0x8EA3AECE 0x7AD0 +0x8EA3AECF 0x7AD2 +0x8EA3AED0 0x7AFE +0x8EA3AED1 0x7AFC +0x8EA3AED2 0x7C77 +0x8EA3AED3 0x7C7C +0x8EA3AED4 0x7C7B +0x8EA3AED5 0x42B8 +0x8EA3AED6 0x2F96A +0x8EA3AED7 0x42B7 +0x8EA3AED8 0x42B9 +0x8EA3AED9 0x4353 +0x8EA3AEDA 0x25133 +0x8EA3AEDB 0x4352 +0x8EA3AEDC 0x4351 +0x8EA3AEDD 0x7F8F +0x8EA3AEDE 0x80D3 +0x8EA3AEDF 0x43E3 +0x8EA3AEE0 0x80CB +0x8EA3AEE1 0x80D2 +0x8EA3AEE2 0x43E2 +0x8EA3AEE3 0x8109 +0x8EA3AEE4 0x80E2 +0x8EA3AEE5 0x80DF +0x8EA3AEE6 0x80C6 +0x8EA3AEE7 0x4463 +0x8EA3AEE8 0x8224 +0x8EA3AEE9 0x82F7 +0x8EA3AEEA 0x82D8 +0x8EA3AEEB 0x82DD +0x8EA3AEEC 0x44AA +0x8EA3AEED 0x44A6 +0x8EA3AEEE 0x82F8 +0x8EA3AEEF 0x82FC +0x8EA3AEF0 0x44A8 +0x8EA3AEF1 0x44A9 +0x8EA3AEF2 0x82E9 +0x8EA3AEF3 0x44AB +0x8EA3AEF4 0x82EE +0x8EA3AEF5 0x44AC +0x8EA3AEF6 0x82D0 +0x8EA3AEF7 0x830E +0x8EA3AEF8 0x82E2 +0x8EA3AEF9 0x830B +0x8EA3AEFA 0x82FD +0x8EA3AEFB 0x5179 +0x8EA3AEFC 0x8676 +0x8EA3AEFD 0x459E +0x8EA3AEFE 0x8678 +0x8EA3AFA1 0x459F +0x8EA3AFA2 0x45A0 +0x8EA3AFA3 0x8675 +0x8EA3AFA4 0x867D +0x8EA3AFA5 0x460F +0x8EA3AFA6 0x8842 +0x8EA3AFA7 0x8866 +0x8EA3AFA8 0x461C +0x8EA3AFA9 0x898C +0x8EA3AFAA 0x8A05 +0x8EA3AFAB 0x46AE +0x8EA3AFAC 0x8A06 +0x8EA3AFAD 0x46B0 +0x8EA3AFAE 0x8C9F +0x8EA3AFAF 0x47D4 +0x8EA3AFB0 0x8FF1 +0x8EA3AFB1 0x8FE7 +0x8EA3AFB2 0x8FE9 +0x8EA3AFB3 0x8FEF +0x8EA3AFB4 0x90C2 +0x8EA3AFB5 0x90BC +0x8EA3AFB6 0x48BB +0x8EA3AFB7 0x90C6 +0x8EA3AFB8 0x90C0 +0x8EA3AFB9 0x48C1 +0x8EA3AFBA 0x48C2 +0x8EA3AFBB 0x90CD +0x8EA3AFBC 0x90C9 +0x8EA3AFBD 0x48BE +0x8EA3AFBE 0x90C4 +0x8EA3AFBF 0x48E5 +0x8EA3AFC0 0x9581 +0x8EA3AFC1 0x49C6 +0x8EA3AFC2 0x9CEC +0x8EA3AFC3 0x5032 +0x8EA3AFC4 0x4FF9 +0x8EA3AFC5 0x501D +0x8EA3AFC6 0x4FFF +0x8EA3AFC7 0x5004 +0x8EA3AFC8 0x4FF0 +0x8EA3AFC9 0x5003 +0x8EA3AFCA 0x462E +0x8EA3AFCB 0x5002 +0x8EA3AFCC 0x4FFC +0x8EA3AFCD 0x4FF2 +0x8EA3AFCE 0x5024 +0x8EA3AFCF 0x5008 +0x8EA3AFD0 0x5036 +0x8EA3AFD1 0x502E +0x8EA3AFD2 0x3465 +0x8EA3AFD3 0x5010 +0x8EA3AFD4 0x5038 +0x8EA3AFD5 0x5039 +0x8EA3AFD6 0x4FFD +0x8EA3AFD7 0x5056 +0x8EA3AFD8 0x4FFB +0x8EA3AFD9 0x51A3 +0x8EA3AFDA 0x51A6 +0x8EA3AFDB 0x51A1 +0x8EA3AFDC 0x34D1 +0x8EA3AFDD 0x34D0 +0x8EA3AFDE 0x51C7 +0x8EA3AFDF 0x51C9 +0x8EA3AFE0 0x5260 +0x8EA3AFE1 0x5264 +0x8EA3AFE2 0x5259 +0x8EA3AFE3 0x5265 +0x8EA3AFE4 0x5267 +0x8EA3AFE5 0x5257 +0x8EA3AFE6 0x5263 +0x8EA3AFE7 0x34EE +0x8EA3AFE8 0x5253 +0x8EA3AFE9 0x34EF +0x8EA3AFEA 0x52CF +0x8EA3AFEB 0x351E +0x8EA3AFEC 0x52CE +0x8EA3AFED 0x52D0 +0x8EA3AFEE 0x52D1 +0x8EA3AFEF 0x52CC +0x8EA3AFF0 0x354B +0x8EA3AFF1 0x354D +0x8EA3AFF2 0x3556 +0x8EA3AFF3 0x550D +0x8EA3AFF4 0x54F4 +0x8EA3AFF5 0x3592 +0x8EA3AFF6 0x5513 +0x8EA3AFF7 0x54EF +0x8EA3AFF8 0x54F5 +0x8EA3AFF9 0x54F9 +0x8EA3AFFA 0x5502 +0x8EA3AFFB 0x5500 +0x8EA3AFFC 0x3593 +0x8EA3AFFD 0x3590 +0x8EA3AFFE 0x5518 +0x8EA3B0A1 0x54F0 +0x8EA3B0A2 0x54F6 +0x8EA3B0A3 0x2F841 +0x8EA3B0A4 0x3597 +0x8EA3B0A5 0x5519 +0x8EA3B0A6 0x3623 +0x8EA3B0A7 0x5705 +0x8EA3B0A8 0x57C9 +0x8EA3B0A9 0x363F +0x8EA3B0AA 0x57B7 +0x8EA3B0AB 0x57CD +0x8EA3B0AC 0x3643 +0x8EA3B0AD 0x3642 +0x8EA3B0AE 0x3644 +0x8EA3B0AF 0x57BE +0x8EA3B0B0 0x57BB +0x8EA3B0B1 0x3645 +0x8EA3B0B2 0x57DB +0x8EA3B0B3 0x57C8 +0x8EA3B0B4 0x57C4 +0x8EA3B0B5 0x57C5 +0x8EA3B0B6 0x57D1 +0x8EA3B0B7 0x57CA +0x8EA3B0B8 0x57C0 +0x8EA3B0B9 0x36D9 +0x8EA3B0BA 0x36DE +0x8EA3B0BB 0x5A21 +0x8EA3B0BC 0x5A2A +0x8EA3B0BD 0x36CF +0x8EA3B0BE 0x5A1D +0x8EA3B0BF 0x36CD +0x8EA3B0C0 0x5A0B +0x8EA3B0C1 0x36DD +0x8EA3B0C2 0x36CE +0x8EA3B0C3 0x36D3 +0x8EA3B0C4 0x36D6 +0x8EA3B0C5 0x5A22 +0x8EA3B0C6 0x36DC +0x8EA3B0C7 0x36D1 +0x8EA3B0C8 0x5A24 +0x8EA3B0C9 0x36D0 +0x8EA3B0CA 0x5A14 +0x8EA3B0CB 0x5A31 +0x8EA3B0CC 0x36D5 +0x8EA3B0CD 0x5A2F +0x8EA3B0CE 0x5A1A +0x8EA3B0CF 0x5A12 +0x8EA3B0D0 0x36D4 +0x8EA3B0D1 0x36DB +0x8EA3B0D2 0x5A26 +0x8EA3B0D3 0x2172E +0x8EA3B0D4 0x3743 +0x8EA3B0D5 0x5BBC +0x8EA3B0D6 0x5BBB +0x8EA3B0D7 0x5BB7 +0x8EA3B0D8 0x5C05 +0x8EA3B0D9 0x5C06 +0x8EA3B0DA 0x5C52 +0x8EA3B0DB 0x5C53 +0x8EA3B0DC 0x37CD +0x8EA3B0DD 0x37D1 +0x8EA3B0DE 0x5CFA +0x8EA3B0DF 0x5CEB +0x8EA3B0E0 0x37CA +0x8EA3B0E1 0x5CF3 +0x8EA3B0E2 0x5CF5 +0x8EA3B0E3 0x5CE9 +0x8EA3B0E4 0x5CEF +0x8EA3B0E5 0x37D4 +0x8EA3B0E6 0x5E2A +0x8EA3B0E7 0x5E30 +0x8EA3B0E8 0x5E2E +0x8EA3B0E9 0x5E2C +0x8EA3B0EA 0x5E2F +0x8EA3B0EB 0x5EAF +0x8EA3B0EC 0x5EA9 +0x8EA3B0ED 0x3886 +0x8EA3B0EE 0x5EFD +0x8EA3B0EF 0x5F32 +0x8EA3B0F0 0x5F8E +0x8EA3B0F1 0x5F93 +0x8EA3B0F2 0x5F8F +0x8EA3B0F3 0x604F +0x8EA3B0F4 0x6099 +0x8EA3B0F5 0x3933 +0x8EA3B0F6 0x607E +0x8EA3B0F7 0x3937 +0x8EA3B0F8 0x6074 +0x8EA3B0F9 0x604B +0x8EA3B0FA 0x6073 +0x8EA3B0FB 0x6075 +0x8EA3B0FC 0x392A +0x8EA3B0FD 0x391F +0x8EA3B0FE 0x6056 +0x8EA3B1A1 0x60A9 +0x8EA3B1A2 0x608B +0x8EA3B1A3 0x60A6 +0x8EA3B1A4 0x3939 +0x8EA3B1A5 0x6093 +0x8EA3B1A6 0x60AE +0x8EA3B1A7 0x609E +0x8EA3B1A8 0x60A7 +0x8EA3B1A9 0x6245 +0x8EA3B1AA 0x39F2 +0x8EA3B1AB 0x39F8 +0x8EA3B1AC 0x632E +0x8EA3B1AD 0x39F7 +0x8EA3B1AE 0x6352 +0x8EA3B1AF 0x6330 +0x8EA3B1B0 0x635B +0x8EA3B1B1 0x39F4 +0x8EA3B1B2 0x6319 +0x8EA3B1B3 0x631B +0x8EA3B1B4 0x39F1 +0x8EA3B1B5 0x6331 +0x8EA3B1B6 0x635D +0x8EA3B1B7 0x6337 +0x8EA3B1B8 0x6335 +0x8EA3B1B9 0x6353 +0x8EA3B1BA 0x39F5 +0x8EA3B1BB 0x635C +0x8EA3B1BC 0x633F +0x8EA3B1BD 0x654B +0x8EA3B1BE 0x3A87 +0x8EA3B1BF 0x4369 +0x8EA3B1C0 0x658B +0x8EA3B1C1 0x3AB6 +0x8EA3B1C2 0x659A +0x8EA3B1C3 0x6650 +0x8EA3B1C4 0x6646 +0x8EA3B1C5 0x664E +0x8EA3B1C6 0x6640 +0x8EA3B1C7 0x3AE9 +0x8EA3B1C8 0x664B +0x8EA3B1C9 0x6648 +0x8EA3B1CA 0x3AEB +0x8EA3B1CB 0x6660 +0x8EA3B1CC 0x6644 +0x8EA3B1CD 0x664D +0x8EA3B1CE 0x3B34 +0x8EA3B1CF 0x6837 +0x8EA3B1D0 0x6824 +0x8EA3B1D1 0x3B62 +0x8EA3B1D2 0x3B5C +0x8EA3B1D3 0x681B +0x8EA3B1D4 0x6836 +0x8EA3B1D5 0x3B60 +0x8EA3B1D6 0x682C +0x8EA3B1D7 0x6819 +0x8EA3B1D8 0x6856 +0x8EA3B1D9 0x6847 +0x8EA3B1DA 0x683E +0x8EA3B1DB 0x681E +0x8EA3B1DC 0x2F8E1 +0x8EA3B1DD 0x6815 +0x8EA3B1DE 0x6822 +0x8EA3B1DF 0x6827 +0x8EA3B1E0 0x6859 +0x8EA3B1E1 0x6858 +0x8EA3B1E2 0x6855 +0x8EA3B1E3 0x6830 +0x8EA3B1E4 0x6823 +0x8EA3B1E5 0x6B2E +0x8EA3B1E6 0x6B2B +0x8EA3B1E7 0x6B30 +0x8EA3B1E8 0x6B6C +0x8EA3B1E9 0x3C61 +0x8EA3B1EA 0x6B8B +0x8EA3B1EB 0x3C7F +0x8EA3B1EC 0x6BE9 +0x8EA3B1ED 0x6BEA +0x8EA3B1EE 0x6BE5 +0x8EA3B1EF 0x6D6B +0x8EA3B1F0 0x3CE5 +0x8EA3B1F1 0x3CE6 +0x8EA3B1F2 0x6D73 +0x8EA3B1F3 0x6D57 +0x8EA3B1F4 0x3CE9 +0x8EA3B1F5 0x3CF3 +0x8EA3B1F6 0x6D5D +0x8EA3B1F7 0x6D56 +0x8EA3B1F8 0x6D8F +0x8EA3B1F9 0x6D5B +0x8EA3B1FA 0x6D1C +0x8EA3B1FB 0x6D9A +0x8EA3B1FC 0x6D9B +0x8EA3B1FD 0x6D99 +0x8EA3B1FE 0x3CEE +0x8EA3B2A1 0x6D81 +0x8EA3B2A2 0x6D71 +0x8EA3B2A3 0x3CED +0x8EA3B2A4 0x3CEC +0x8EA3B2A5 0x6D72 +0x8EA3B2A6 0x6D5C +0x8EA3B2A7 0x6D96 +0x8EA3B2A8 0x70C4 +0x8EA3B2A9 0x70DB +0x8EA3B2AA 0x70CC +0x8EA3B2AB 0x70D0 +0x8EA3B2AC 0x70E3 +0x8EA3B2AD 0x70DF +0x8EA3B2AE 0x3DB3 +0x8EA3B2AF 0x70D6 +0x8EA3B2B0 0x70EE +0x8EA3B2B1 0x70D5 +0x8EA3B2B2 0x3DB5 +0x8EA3B2B3 0x3E27 +0x8EA3B2B4 0x3E35 +0x8EA3B2B5 0x3E36 +0x8EA3B2B6 0x727A +0x8EA3B2B7 0x3E71 +0x8EA3B2B8 0x72F5 +0x8EA3B2B9 0x7302 +0x8EA3B2BA 0x3EB8 +0x8EA3B2BB 0x3EC2 +0x8EA3B2BC 0x73E2 +0x8EA3B2BD 0x73EC +0x8EA3B2BE 0x73D5 +0x8EA3B2BF 0x73F9 +0x8EA3B2C0 0x73DF +0x8EA3B2C1 0x73E6 +0x8EA3B2C2 0x3EC8 +0x8EA3B2C3 0x3EC0 +0x8EA3B2C4 0x3EC1 +0x8EA3B2C5 0x3EC4 +0x8EA3B2C6 0x73E4 +0x8EA3B2C7 0x73E1 +0x8EA3B2C8 0x74F3 +0x8EA3B2C9 0x3F1F +0x8EA3B2CA 0x3F1C +0x8EA3B2CB 0x3F1D +0x8EA3B2CC 0x3F4D +0x8EA3B2CD 0x7556 +0x8EA3B2CE 0x7555 +0x8EA3B2CF 0x7558 +0x8EA3B2D0 0x7557 +0x8EA3B2D1 0x755E +0x8EA3B2D2 0x75C3 +0x8EA3B2D3 0x3F87 +0x8EA3B2D4 0x3F82 +0x8EA3B2D5 0x75B4 +0x8EA3B2D6 0x3F7D +0x8EA3B2D7 0x75B1 +0x8EA3B2D8 0x3FDF +0x8EA3B2D9 0x4000 +0x8EA3B2DA 0x76CB +0x8EA3B2DB 0x76CC +0x8EA3B2DC 0x772A +0x8EA3B2DD 0x4020 +0x8EA3B2DE 0x7716 +0x8EA3B2DF 0x770F +0x8EA3B2E0 0x4022 +0x8EA3B2E1 0x4024 +0x8EA3B2E2 0x773F +0x8EA3B2E3 0x772B +0x8EA3B2E4 0x770E +0x8EA3B2E5 0x7724 +0x8EA3B2E6 0x4021 +0x8EA3B2E7 0x7721 +0x8EA3B2E8 0x7718 +0x8EA3B2E9 0x77DD +0x8EA3B2EA 0x40A4 +0x8EA3B2EB 0x40A5 +0x8EA3B2EC 0x7824 +0x8EA3B2ED 0x7836 +0x8EA3B2EE 0x4101 +0x8EA3B2EF 0x7958 +0x8EA3B2F0 0x7959 +0x8EA3B2F1 0x4103 +0x8EA3B2F2 0x7962 +0x8EA3B2F3 0x79DA +0x8EA3B2F4 0x79D9 +0x8EA3B2F5 0x4137 +0x8EA3B2F6 0x79E1 +0x8EA3B2F7 0x79E5 +0x8EA3B2F8 0x79E8 +0x8EA3B2F9 0x79DB +0x8EA3B2FA 0x4138 +0x8EA3B2FB 0x79E2 +0x8EA3B2FC 0x79F0 +0x8EA3B2FD 0x4199 +0x8EA3B2FE 0x4198 +0x8EA3B3A1 0x4197 +0x8EA3B3A2 0x41C9 +0x8EA3B3A3 0x7ADA +0x8EA3B3A4 0x7ADD +0x8EA3B3A5 0x41C7 +0x8EA3B3A6 0x7ADB +0x8EA3B3A7 0x7ADC +0x8EA3B3A8 0x41D9 +0x8EA3B3A9 0x41DB +0x8EA3B3AA 0x7B0D +0x8EA3B3AB 0x7B0B +0x8EA3B3AC 0x7B14 +0x8EA3B3AD 0x7C8E +0x8EA3B3AE 0x7C86 +0x8EA3B3AF 0x427B +0x8EA3B3B0 0x7C87 +0x8EA3B3B1 0x7C83 +0x8EA3B3B2 0x7C8B +0x8EA3B3B3 0x427C +0x8EA3B3B4 0x42BD +0x8EA3B3B5 0x42BC +0x8EA3B3B6 0x42C3 +0x8EA3B3B7 0x7D24 +0x8EA3B3B8 0x42C1 +0x8EA3B3B9 0x42BF +0x8EA3B3BA 0x42C4 +0x8EA3B3BB 0x7D25 +0x8EA3B3BC 0x7F62 +0x8EA3B3BD 0x7F93 +0x8EA3B3BE 0x7F99 +0x8EA3B3BF 0x7F97 +0x8EA3B3C0 0x437E +0x8EA3B3C1 0x437F +0x8EA3B3C2 0x7FC4 +0x8EA3B3C3 0x7FC6 +0x8EA3B3C4 0x800A +0x8EA3B3C5 0x43B4 +0x8EA3B3C6 0x43B3 +0x8EA3B3C7 0x8040 +0x8EA3B3C8 0x803C +0x8EA3B3C9 0x803B +0x8EA3B3CA 0x80F6 +0x8EA3B3CB 0x80FF +0x8EA3B3CC 0x80EE +0x8EA3B3CD 0x8104 +0x8EA3B3CE 0x8103 +0x8EA3B3CF 0x8107 +0x8EA3B3D0 0x2F983 +0x8EA3B3D1 0x43E6 +0x8EA3B3D2 0x80F7 +0x8EA3B3D3 0x4459 +0x8EA3B3D4 0x445A +0x8EA3B3D5 0x822D +0x8EA3B3D6 0x4464 +0x8EA3B3D7 0x8227 +0x8EA3B3D8 0x8229 +0x8EA3B3D9 0x831F +0x8EA3B3DA 0x8357 +0x8EA3B3DB 0x44B4 +0x8EA3B3DC 0x44B9 +0x8EA3B3DD 0x44B7 +0x8EA3B3DE 0x44B5 +0x8EA3B3DF 0x8321 +0x8EA3B3E0 0x44C1 +0x8EA3B3E1 0x44B1 +0x8EA3B3E2 0x8318 +0x8EA3B3E3 0x8358 +0x8EA3B3E4 0x44B3 +0x8EA3B3E5 0x44BA +0x8EA3B3E6 0x458C +0x8EA3B3E7 0x458B +0x8EA3B3E8 0x458D +0x8EA3B3E9 0x8684 +0x8EA3B3EA 0x869F +0x8EA3B3EB 0x869B +0x8EA3B3EC 0x8689 +0x8EA3B3ED 0x86A6 +0x8EA3B3EE 0x8692 +0x8EA3B3EF 0x868F +0x8EA3B3F0 0x86A0 +0x8EA3B3F1 0x884F +0x8EA3B3F2 0x8878 +0x8EA3B3F3 0x887A +0x8EA3B3F4 0x886E +0x8EA3B3F5 0x887B +0x8EA3B3F6 0x8884 +0x8EA3B3F7 0x8873 +0x8EA3B3F8 0x4678 +0x8EA3B3F9 0x4677 +0x8EA3B3FA 0x8A0D +0x8EA3B3FB 0x8A0B +0x8EA3B3FC 0x8A19 +0x8EA3B3FD 0x46B2 +0x8EA3B3FE 0x47D6 +0x8EA3B4A1 0x8ED0 +0x8EA3B4A2 0x4845 +0x8EA3B4A3 0x4892 +0x8EA3B4A4 0x4895 +0x8EA3B4A5 0x8FF9 +0x8EA3B4A6 0x9009 +0x8EA3B4A7 0x9008 +0x8EA3B4A8 0x48C6 +0x8EA3B4A9 0x90DE +0x8EA3B4AA 0x9151 +0x8EA3B4AB 0x48E7 +0x8EA3B4AC 0x48E8 +0x8EA3B4AD 0x91DB +0x8EA3B4AE 0x91DF +0x8EA3B4AF 0x91DE +0x8EA3B4B0 0x91D6 +0x8EA3B4B1 0x91E0 +0x8EA3B4B2 0x9585 +0x8EA3B4B3 0x9660 +0x8EA3B4B4 0x9659 +0x8EA3B4B5 0x49CB +0x8EA3B4B6 0x9656 +0x8EA3B4B7 0x49CD +0x8EA3B4B8 0x49F1 +0x8EA3B4B9 0x96BD +0x8EA3B4BA 0x4B22 +0x8EA3B4BB 0x3421 +0x8EA3B4BC 0x5042 +0x8EA3B4BD 0x5059 +0x8EA3B4BE 0x346F +0x8EA3B4BF 0x5044 +0x8EA3B4C0 0x5066 +0x8EA3B4C1 0x5052 +0x8EA3B4C2 0x5054 +0x8EA3B4C3 0x5071 +0x8EA3B4C4 0x5050 +0x8EA3B4C5 0x507B +0x8EA3B4C6 0x507C +0x8EA3B4C7 0x5058 +0x8EA3B4C8 0x3470 +0x8EA3B4C9 0x3464 +0x8EA3B4CA 0x5079 +0x8EA3B4CB 0x506C +0x8EA3B4CC 0x5078 +0x8EA3B4CD 0x51A8 +0x8EA3B4CE 0x51D1 +0x8EA3B4CF 0x51CF +0x8EA3B4D0 0x5268 +0x8EA3B4D1 0x5276 +0x8EA3B4D2 0x52D4 +0x8EA3B4D3 0x352D +0x8EA3B4D4 0x53A0 +0x8EA3B4D5 0x53C4 +0x8EA3B4D6 0x3558 +0x8EA3B4D7 0x5558 +0x8EA3B4D8 0x554C +0x8EA3B4D9 0x5568 +0x8EA3B4DA 0x35A6 +0x8EA3B4DB 0x5549 +0x8EA3B4DC 0x35A4 +0x8EA3B4DD 0x359F +0x8EA3B4DE 0x555D +0x8EA3B4DF 0x5529 +0x8EA3B4E0 0x20DAE +0x8EA3B4E1 0x5554 +0x8EA3B4E2 0x5553 +0x8EA3B4E3 0x35A3 +0x8EA3B4E4 0x555A +0x8EA3B4E5 0x35A0 +0x8EA3B4E6 0x553A +0x8EA3B4E7 0x553F +0x8EA3B4E8 0x552B +0x8EA3B4E9 0x57EA +0x8EA3B4EA 0x364A +0x8EA3B4EB 0x57EF +0x8EA3B4EC 0x3647 +0x8EA3B4ED 0x3648 +0x8EA3B4EE 0x57DD +0x8EA3B4EF 0x57FE +0x8EA3B4F0 0x2F855 +0x8EA3B4F1 0x57DE +0x8EA3B4F2 0x57E6 +0x8EA3B4F3 0x3649 +0x8EA3B4F4 0x57E8 +0x8EA3B4F5 0x57FF +0x8EA3B4F6 0x5803 +0x8EA3B4F7 0x58F7 +0x8EA3B4F8 0x68A6 +0x8EA3B4F9 0x591F +0x8EA3B4FA 0x369E +0x8EA3B4FB 0x595B +0x8EA3B4FC 0x595D +0x8EA3B4FD 0x595E +0x8EA3B4FE 0x21637 +0x8EA3B5A1 0x36E8 +0x8EA3B5A2 0x5A2B +0x8EA3B5A3 0x36EC +0x8EA3B5A4 0x5A3B +0x8EA3B5A5 0x36ED +0x8EA3B5A6 0x36E6 +0x8EA3B5A7 0x5A61 +0x8EA3B5A8 0x5A3A +0x8EA3B5A9 0x5A6E +0x8EA3B5AA 0x5A4B +0x8EA3B5AB 0x5A6B +0x8EA3B5AC 0x36EB +0x8EA3B5AD 0x36E7 +0x8EA3B5AE 0x5A45 +0x8EA3B5AF 0x5A4E +0x8EA3B5B0 0x5A68 +0x8EA3B5B1 0x5A3D +0x8EA3B5B2 0x5A71 +0x8EA3B5B3 0x5A3F +0x8EA3B5B4 0x5A6F +0x8EA3B5B5 0x5A75 +0x8EA3B5B6 0x36E9 +0x8EA3B5B7 0x5A73 +0x8EA3B5B8 0x5A2C +0x8EA3B5B9 0x5A59 +0x8EA3B5BA 0x5A54 +0x8EA3B5BB 0x5A4F +0x8EA3B5BC 0x5A63 +0x8EA3B5BD 0x375C +0x8EA3B5BE 0x375D +0x8EA3B5BF 0x5BC8 +0x8EA3B5C0 0x3760 +0x8EA3B5C1 0x5BC3 +0x8EA3B5C2 0x375B +0x8EA3B5C3 0x5C5B +0x8EA3B5C4 0x5C61 +0x8EA3B5C5 0x3799 +0x8EA3B5C6 0x5D21 +0x8EA3B5C7 0x5D0A +0x8EA3B5C8 0x5D09 +0x8EA3B5C9 0x37D8 +0x8EA3B5CA 0x5D2C +0x8EA3B5CB 0x5D08 +0x8EA3B5CC 0x37DA +0x8EA3B5CD 0x37DD +0x8EA3B5CE 0x5D2A +0x8EA3B5CF 0x5D15 +0x8EA3B5D0 0x37E0 +0x8EA3B5D1 0x5D10 +0x8EA3B5D2 0x5D13 +0x8EA3B5D3 0x37E5 +0x8EA3B5D4 0x5D2F +0x8EA3B5D5 0x5D18 +0x8EA3B5D6 0x37D7 +0x8EA3B5D7 0x5DE3 +0x8EA3B5D8 0x5E39 +0x8EA3B5D9 0x5E35 +0x8EA3B5DA 0x5E3A +0x8EA3B5DB 0x5E32 +0x8EA3B5DC 0x384E +0x8EA3B5DD 0x388C +0x8EA3B5DE 0x3888 +0x8EA3B5DF 0x2F88D +0x8EA3B5E0 0x5EBB +0x8EA3B5E1 0x5EBA +0x8EA3B5E2 0x5F34 +0x8EA3B5E3 0x5F39 +0x8EA3B5E4 0x38CE +0x8EA3B5E5 0x2F89C +0x8EA3B5E6 0x38E5 +0x8EA3B5E7 0x38E6 +0x8EA3B5E8 0x6098 +0x8EA3B5E9 0x3932 +0x8EA3B5EA 0x60D0 +0x8EA3B5EB 0x3940 +0x8EA3B5EC 0x3947 +0x8EA3B5ED 0x394C +0x8EA3B5EE 0x60D7 +0x8EA3B5EF 0x60AA +0x8EA3B5F0 0x3935 +0x8EA3B5F1 0x60A1 +0x8EA3B5F2 0x60A4 +0x8EA3B5F3 0x3930 +0x8EA3B5F4 0x60EE +0x8EA3B5F5 0x3943 +0x8EA3B5F6 0x60E7 +0x8EA3B5F7 0x394D +0x8EA3B5F8 0x60E8 +0x8EA3B5F9 0x60DE +0x8EA3B5FA 0x39B7 +0x8EA3B5FB 0x39F3 +0x8EA3B5FC 0x637E +0x8EA3B5FD 0x638B +0x8EA3B5FE 0x3A02 +0x8EA3B6A1 0x3A0B +0x8EA3B6A2 0x6379 +0x8EA3B6A3 0x6386 +0x8EA3B6A4 0x6393 +0x8EA3B6A5 0x3A04 +0x8EA3B6A6 0x6373 +0x8EA3B6A7 0x636A +0x8EA3B6A8 0x2F8BA +0x8EA3B6A9 0x636C +0x8EA3B6AA 0x3A08 +0x8EA3B6AB 0x637F +0x8EA3B6AC 0x39FC +0x8EA3B6AD 0x63B2 +0x8EA3B6AE 0x63BA +0x8EA3B6AF 0x39FF +0x8EA3B6B0 0x3A00 +0x8EA3B6B1 0x6366 +0x8EA3B6B2 0x6374 +0x8EA3B6B3 0x3A8B +0x8EA3B6B4 0x655A +0x8EA3B6B5 0x3A8D +0x8EA3B6B6 0x654E +0x8EA3B6B7 0x654D +0x8EA3B6B8 0x658D +0x8EA3B6B9 0x658E +0x8EA3B6BA 0x65AD +0x8EA3B6BB 0x3ACA +0x8EA3B6BC 0x65C7 +0x8EA3B6BD 0x65CA +0x8EA3B6BE 0x3ACB +0x8EA3B6BF 0x65C9 +0x8EA3B6C0 0x2F8CB +0x8EA3B6C1 0x65E3 +0x8EA3B6C2 0x6657 +0x8EA3B6C3 0x3AF3 +0x8EA3B6C4 0x6663 +0x8EA3B6C5 0x6667 +0x8EA3B6C6 0x671A +0x8EA3B6C7 0x6719 +0x8EA3B6C8 0x6716 +0x8EA3B6C9 0x3B36 +0x8EA3B6CA 0x3B6A +0x8EA3B6CB 0x689E +0x8EA3B6CC 0x68B6 +0x8EA3B6CD 0x6898 +0x8EA3B6CE 0x6873 +0x8EA3B6CF 0x3B6B +0x8EA3B6D0 0x689A +0x8EA3B6D1 0x688E +0x8EA3B6D2 0x68B7 +0x8EA3B6D3 0x68DB +0x8EA3B6D4 0x68A5 +0x8EA3B6D5 0x686C +0x8EA3B6D6 0x68C1 +0x8EA3B6D7 0x6884 +0x8EA3B6D8 0x3B71 +0x8EA3B6D9 0x3B68 +0x8EA3B6DA 0x6895 +0x8EA3B6DB 0x687A +0x8EA3B6DC 0x6899 +0x8EA3B6DD 0x3B72 +0x8EA3B6DE 0x68B8 +0x8EA3B6DF 0x68B9 +0x8EA3B6E0 0x6870 +0x8EA3B6E1 0x3C2E +0x8EA3B6E2 0x6B35 +0x8EA3B6E3 0x3C62 +0x8EA3B6E4 0x6B90 +0x8EA3B6E5 0x6BBB +0x8EA3B6E6 0x6BED +0x8EA3B6E7 0x3C98 +0x8EA3B6E8 0x3CB5 +0x8EA3B6E9 0x3CEB +0x8EA3B6EA 0x6DC1 +0x8EA3B6EB 0x6DC3 +0x8EA3B6EC 0x6DCE +0x8EA3B6ED 0x3CFB +0x8EA3B6EE 0x3CF8 +0x8EA3B6EF 0x6DAD +0x8EA3B6F0 0x6E04 +0x8EA3B6F1 0x3CF5 +0x8EA3B6F2 0x6DB9 +0x8EA3B6F3 0x3D08 +0x8EA3B6F4 0x6DE7 +0x8EA3B6F5 0x2F907 +0x8EA3B6F6 0x6E08 +0x8EA3B6F7 0x6E06 +0x8EA3B6F8 0x3D0A +0x8EA3B6F9 0x6E0A +0x8EA3B6FA 0x6DB0 +0x8EA3B6FB 0x3D06 +0x8EA3B6FC 0x6DF8 +0x8EA3B6FD 0x6E0C +0x8EA3B6FE 0x3CFD +0x8EA3B7A1 0x6DB1 +0x8EA3B7A2 0x3CFA +0x8EA3B7A3 0x6E02 +0x8EA3B7A4 0x6E07 +0x8EA3B7A5 0x6E09 +0x8EA3B7A6 0x6E01 +0x8EA3B7A7 0x6E17 +0x8EA3B7A8 0x6DFF +0x8EA3B7A9 0x6E12 +0x8EA3B7AA 0x3DBA +0x8EA3B7AB 0x3DB9 +0x8EA3B7AC 0x7103 +0x8EA3B7AD 0x7107 +0x8EA3B7AE 0x7101 +0x8EA3B7AF 0x70F5 +0x8EA3B7B0 0x70F1 +0x8EA3B7B1 0x7108 +0x8EA3B7B2 0x70F2 +0x8EA3B7B3 0x710F +0x8EA3B7B4 0x3DBB +0x8EA3B7B5 0x70FE +0x8EA3B7B6 0x3E18 +0x8EA3B7B7 0x3E40 +0x8EA3B7B8 0x3E3D +0x8EA3B7B9 0x731A +0x8EA3B7BA 0x7310 +0x8EA3B7BB 0x730E +0x8EA3B7BC 0x7402 +0x8EA3B7BD 0x73F3 +0x8EA3B7BE 0x3ECD +0x8EA3B7BF 0x3EC9 +0x8EA3B7C0 0x73FB +0x8EA3B7C1 0x3ECB +0x8EA3B7C2 0x3ECA +0x8EA3B7C3 0x3ECE +0x8EA3B7C4 0x751B +0x8EA3B7C5 0x7523 +0x8EA3B7C6 0x7561 +0x8EA3B7C7 0x7568 +0x8EA3B7C8 0x3F5E +0x8EA3B7C9 0x7567 +0x8EA3B7CA 0x75D3 +0x8EA3B7CB 0x3F91 +0x8EA3B7CC 0x3F8C +0x8EA3B7CD 0x7690 +0x8EA3B7CE 0x3FE1 +0x8EA3B7CF 0x4002 +0x8EA3B7D0 0x76D5 +0x8EA3B7D1 0x76D7 +0x8EA3B7D2 0x76D6 +0x8EA3B7D3 0x7730 +0x8EA3B7D4 0x402B +0x8EA3B7D5 0x7726 +0x8EA3B7D6 0x402A +0x8EA3B7D7 0x7740 +0x8EA3B7D8 0x3E14 +0x8EA3B7D9 0x771E +0x8EA3B7DA 0x40AD +0x8EA3B7DB 0x40A3 +0x8EA3B7DC 0x40AB +0x8EA3B7DD 0x7847 +0x8EA3B7DE 0x40AF +0x8EA3B7DF 0x784B +0x8EA3B7E0 0x7851 +0x8EA3B7E1 0x784F +0x8EA3B7E2 0x7842 +0x8EA3B7E3 0x7846 +0x8EA3B7E4 0x4104 +0x8EA3B7E5 0x796E +0x8EA3B7E6 0x796C +0x8EA3B7E7 0x79F2 +0x8EA3B7E8 0x4144 +0x8EA3B7E9 0x79F1 +0x8EA3B7EA 0x79F5 +0x8EA3B7EB 0x79F3 +0x8EA3B7EC 0x79F9 +0x8EA3B7ED 0x413D +0x8EA3B7EE 0x4147 +0x8EA3B7EF 0x419C +0x8EA3B7F0 0x7A9A +0x8EA3B7F1 0x7A93 +0x8EA3B7F2 0x7A91 +0x8EA3B7F3 0x7AE1 +0x8EA3B7F4 0x41E0 +0x8EA3B7F5 0x41E4 +0x8EA3B7F6 0x7B21 +0x8EA3B7F7 0x7B1C +0x8EA3B7F8 0x7B16 +0x8EA3B7F9 0x7B17 +0x8EA3B7FA 0x7B36 +0x8EA3B7FB 0x7B1F +0x8EA3B7FC 0x4280 +0x8EA3B7FD 0x7C93 +0x8EA3B7FE 0x7C99 +0x8EA3B8A1 0x7C9A +0x8EA3B8A2 0x7C9C +0x8EA3B8A3 0x42CA +0x8EA3B8A4 0x7D49 +0x8EA3B8A5 0x42D4 +0x8EA3B8A6 0x7D34 +0x8EA3B8A7 0x7D37 +0x8EA3B8A8 0x42D2 +0x8EA3B8A9 0x7D2D +0x8EA3B8AA 0x42CB +0x8EA3B8AB 0x7D4C +0x8EA3B8AC 0x42CE +0x8EA3B8AD 0x42D3 +0x8EA3B8AE 0x7D48 +0x8EA3B8AF 0x4344 +0x8EA3B8B0 0x4348 +0x8EA3B8B1 0x7F3B +0x8EA3B8B2 0x4345 +0x8EA3B8B3 0x4381 +0x8EA3B8B4 0x4386 +0x8EA3B8B5 0x4385 +0x8EA3B8B6 0x8008 +0x8EA3B8B7 0x801A +0x8EA3B8B8 0x43A3 +0x8EA3B8B9 0x801D +0x8EA3B8BA 0x43B5 +0x8EA3B8BB 0x8049 +0x8EA3B8BC 0x8045 +0x8EA3B8BD 0x8044 +0x8EA3B8BE 0x7C9B +0x8EA3B8BF 0x43FA +0x8EA3B8C0 0x43F9 +0x8EA3B8C1 0x812A +0x8EA3B8C2 0x812E +0x8EA3B8C3 0x43FB +0x8EA3B8C4 0x43F2 +0x8EA3B8C5 0x8131 +0x8EA3B8C6 0x43EF +0x8EA3B8C7 0x811A +0x8EA3B8C8 0x8134 +0x8EA3B8C9 0x8117 +0x8EA3B8CA 0x445B +0x8EA3B8CB 0x4466 +0x8EA3B8CC 0x44CE +0x8EA3B8CD 0x831D +0x8EA3B8CE 0x8371 +0x8EA3B8CF 0x8384 +0x8EA3B8D0 0x8380 +0x8EA3B8D1 0x8372 +0x8EA3B8D2 0x83A1 +0x8EA3B8D3 0x35B4 +0x8EA3B8D4 0x8379 +0x8EA3B8D5 0x8391 +0x8EA3B8D6 0x44C8 +0x8EA3B8D7 0x839F +0x8EA3B8D8 0x83AD +0x8EA3B8D9 0x44D1 +0x8EA3B8DA 0x44C5 +0x8EA3B8DB 0x8323 +0x8EA3B8DC 0x44D2 +0x8EA3B8DD 0x8385 +0x8EA3B8DE 0x839C +0x8EA3B8DF 0x83B7 +0x8EA3B8E0 0x8658 +0x8EA3B8E1 0x865A +0x8EA3B8E2 0x458F +0x8EA3B8E3 0x8657 +0x8EA3B8E4 0x86B2 +0x8EA3B8E5 0x45A7 +0x8EA3B8E6 0x86AE +0x8EA3B8E7 0x45A5 +0x8EA3B8E8 0x45A4 +0x8EA3B8E9 0x4611 +0x8EA3B8EA 0x8845 +0x8EA3B8EB 0x889C +0x8EA3B8EC 0x8894 +0x8EA3B8ED 0x88A3 +0x8EA3B8EE 0x888F +0x8EA3B8EF 0x88A5 +0x8EA3B8F0 0x88A9 +0x8EA3B8F1 0x88A6 +0x8EA3B8F2 0x888A +0x8EA3B8F3 0x88A0 +0x8EA3B8F4 0x8890 +0x8EA3B8F5 0x8992 +0x8EA3B8F6 0x8991 +0x8EA3B8F7 0x8994 +0x8EA3B8F8 0x46B5 +0x8EA3B8F9 0x8A26 +0x8EA3B8FA 0x8A32 +0x8EA3B8FB 0x8A28 +0x8EA3B8FC 0x46B4 +0x8EA3B8FD 0x46BD +0x8EA3B8FE 0x8A1C +0x8EA3B9A1 0x46BB +0x8EA3B9A2 0x8A2B +0x8EA3B9A3 0x8A20 +0x8EA3B9A4 0x46B9 +0x8EA3B9A5 0x8A29 +0x8EA3B9A6 0x46C2 +0x8EA3B9A7 0x46BE +0x8EA3B9A8 0x46BA +0x8EA3B9A9 0x8A21 +0x8EA3B9AA 0x8C3A +0x8EA3B9AB 0x3AB7 +0x8EA3B9AC 0x8C5B +0x8EA3B9AD 0x8C58 +0x8EA3B9AE 0x8C7C +0x8EA3B9AF 0x4758 +0x8EA3B9B0 0x8CA6 +0x8EA3B9B1 0x8CAE +0x8EA3B9B2 0x8CAD +0x8EA3B9B3 0x8D65 +0x8EA3B9B4 0x479B +0x8EA3B9B5 0x8D7E +0x8EA3B9B6 0x479C +0x8EA3B9B7 0x8D7C +0x8EA3B9B8 0x8D7F +0x8EA3B9B9 0x8D7A +0x8EA3B9BA 0x8DBD +0x8EA3B9BB 0x47DA +0x8EA3B9BC 0x47DE +0x8EA3B9BD 0x8DC0 +0x8EA3B9BE 0x8DBB +0x8EA3B9BF 0x8EAD +0x8EA3B9C0 0x8EAF +0x8EA3B9C1 0x8ED6 +0x8EA3B9C2 0x484D +0x8EA3B9C3 0x4846 +0x8EA3B9C4 0x4847 +0x8EA3B9C5 0x484B +0x8EA3B9C6 0x484C +0x8EA3B9C7 0x8ED9 +0x8EA3B9C8 0x4848 +0x8EA3B9C9 0x4899 +0x8EA3B9CA 0x9012 +0x8EA3B9CB 0x900E +0x8EA3B9CC 0x9025 +0x8EA3B9CD 0x489B +0x8EA3B9CE 0x9013 +0x8EA3B9CF 0x90EE +0x8EA3B9D0 0x48CE +0x8EA3B9D1 0x90AB +0x8EA3B9D2 0x90F7 +0x8EA3B9D3 0x48EB +0x8EA3B9D4 0x9159 +0x8EA3B9D5 0x9154 +0x8EA3B9D6 0x91F2 +0x8EA3B9D7 0x91F0 +0x8EA3B9D8 0x91E5 +0x8EA3B9D9 0x91F6 +0x8EA3B9DA 0x491C +0x8EA3B9DB 0x498C +0x8EA3B9DC 0x9587 +0x8EA3B9DD 0x49D1 +0x8EA3B9DE 0x965A +0x8EA3B9DF 0x49D6 +0x8EA3B9E0 0x49D3 +0x8EA3B9E1 0x966E +0x8EA3B9E2 0x49D4 +0x8EA3B9E3 0x49D0 +0x8EA3B9E4 0x49D5 +0x8EA3B9E5 0x9679 +0x8EA3B9E6 0x4A0B +0x8EA3B9E7 0x98E1 +0x8EA3B9E8 0x98E6 +0x8EA3B9E9 0x4BC6 +0x8EA3B9EA 0x9EC4 +0x8EA3B9EB 0x9ED2 +0x8EA3B9EC 0x4E80 +0x8EA3B9ED 0x3424 +0x8EA3B9EE 0x4E81 +0x8EA3B9EF 0x508F +0x8EA3B9F0 0x5097 +0x8EA3B9F1 0x5088 +0x8EA3B9F2 0x5089 +0x8EA3B9F3 0x3474 +0x8EA3B9F4 0x347A +0x8EA3B9F5 0x5081 +0x8EA3B9F6 0x5160 +0x8EA3B9F7 0x20564 +0x8EA3B9F8 0x34C3 +0x8EA3B9F9 0x5E42 +0x8EA3B9FA 0x51D3 +0x8EA3B9FB 0x34D4 +0x8EA3B9FC 0x34D5 +0x8EA3B9FD 0x51D2 +0x8EA3B9FE 0x51D6 +0x8EA3BAA1 0x5273 +0x8EA3BAA2 0x34FB +0x8EA3BAA3 0x5270 +0x8EA3BAA4 0x34F7 +0x8EA3BAA5 0x3532 +0x8EA3BAA6 0x2F833 +0x8EA3BAA7 0x53A8 +0x8EA3BAA8 0x53A6 +0x8EA3BAA9 0x53C5 +0x8EA3BAAA 0x5597 +0x8EA3BAAB 0x55DE +0x8EA3BAAC 0x35BA +0x8EA3BAAD 0x35BF +0x8EA3BAAE 0x5596 +0x8EA3BAAF 0x55B4 +0x8EA3BAB0 0x35C7 +0x8EA3BAB1 0x5585 +0x8EA3BAB2 0x35B7 +0x8EA3BAB3 0x559B +0x8EA3BAB4 0x55A0 +0x8EA3BAB5 0x35B9 +0x8EA3BAB6 0x5559 +0x8EA3BAB7 0x35C3 +0x8EA3BAB8 0x5586 +0x8EA3BAB9 0x35BD +0x8EA3BABA 0x35D0 +0x8EA3BABB 0x55AF +0x8EA3BABC 0x557A +0x8EA3BABD 0x35C1 +0x8EA3BABE 0x35BE +0x8EA3BABF 0x35CD +0x8EA3BAC0 0x559E +0x8EA3BAC1 0x35CB +0x8EA3BAC2 0x55A9 +0x8EA3BAC3 0x570F +0x8EA3BAC4 0x570E +0x8EA3BAC5 0x581A +0x8EA3BAC6 0x364F +0x8EA3BAC7 0x581F +0x8EA3BAC8 0x3653 +0x8EA3BAC9 0x583C +0x8EA3BACA 0x5818 +0x8EA3BACB 0x583E +0x8EA3BACC 0x5826 +0x8EA3BACD 0x3655 +0x8EA3BACE 0x583A +0x8EA3BACF 0x21364 +0x8EA3BAD0 0x5822 +0x8EA3BAD1 0x3651 +0x8EA3BAD2 0x58FB +0x8EA3BAD3 0x5963 +0x8EA3BAD4 0x5964 +0x8EA3BAD5 0x369F +0x8EA3BAD6 0x5AA8 +0x8EA3BAD7 0x5AA3 +0x8EA3BAD8 0x5A82 +0x8EA3BAD9 0x5A88 +0x8EA3BADA 0x5AA1 +0x8EA3BADB 0x5A85 +0x8EA3BADC 0x5A98 +0x8EA3BADD 0x36FE +0x8EA3BADE 0x5A99 +0x8EA3BADF 0x36FB +0x8EA3BAE0 0x5A89 +0x8EA3BAE1 0x5A81 +0x8EA3BAE2 0x5A96 +0x8EA3BAE3 0x5A80 +0x8EA3BAE4 0x36F1 +0x8EA3BAE5 0x36F5 +0x8EA3BAE6 0x5A91 +0x8EA3BAE7 0x36EF +0x8EA3BAE8 0x3704 +0x8EA3BAE9 0x3703 +0x8EA3BAEA 0x36F4 +0x8EA3BAEB 0x5ACF +0x8EA3BAEC 0x36F3 +0x8EA3BAED 0x3702 +0x8EA3BAEE 0x36F7 +0x8EA3BAEF 0x36FA +0x8EA3BAF0 0x36FD +0x8EA3BAF1 0x36EE +0x8EA3BAF2 0x5A87 +0x8EA3BAF3 0x5AA0 +0x8EA3BAF4 0x36F0 +0x8EA3BAF5 0x5A79 +0x8EA3BAF6 0x36F2 +0x8EA3BAF7 0x5A86 +0x8EA3BAF8 0x5AAB +0x8EA3BAF9 0x5AAA +0x8EA3BAFA 0x5AA4 +0x8EA3BAFB 0x5A8D +0x8EA3BAFC 0x5A7E +0x8EA3BAFD 0x3744 +0x8EA3BAFE 0x5BD5 +0x8EA3BBA1 0x3762 +0x8EA3BBA2 0x3777 +0x8EA3BBA3 0x3DC9 +0x8EA3BBA4 0x5C1E +0x8EA3BBA5 0x5C5F +0x8EA3BBA6 0x5C5E +0x8EA3BBA7 0x5D44 +0x8EA3BBA8 0x5D3E +0x8EA3BBA9 0x37E8 +0x8EA3BBAA 0x5D48 +0x8EA3BBAB 0x5D1C +0x8EA3BBAC 0x37EF +0x8EA3BBAD 0x5D5B +0x8EA3BBAE 0x5D4D +0x8EA3BBAF 0x37E6 +0x8EA3BBB0 0x37ED +0x8EA3BBB1 0x5D57 +0x8EA3BBB2 0x37E7 +0x8EA3BBB3 0x5D53 +0x8EA3BBB4 0x5D4F +0x8EA3BBB5 0x37EB +0x8EA3BBB6 0x5D3B +0x8EA3BBB7 0x5D46 +0x8EA3BBB8 0x382D +0x8EA3BBB9 0x3855 +0x8EA3BBBA 0x5E46 +0x8EA3BBBB 0x5E47 +0x8EA3BBBC 0x3853 +0x8EA3BBBD 0x5E48 +0x8EA3BBBE 0x5EC0 +0x8EA3BBBF 0x5EBD +0x8EA3BBC0 0x5EBF +0x8EA3BBC1 0x3890 +0x8EA3BBC2 0x5F11 +0x8EA3BBC3 0x38BE +0x8EA3BBC4 0x5F3E +0x8EA3BBC5 0x5F3B +0x8EA3BBC6 0x38BD +0x8EA3BBC7 0x5F3A +0x8EA3BBC8 0x38CF +0x8EA3BBC9 0x38D0 +0x8EA3BBCA 0x38EC +0x8EA3BBCB 0x5FA7 +0x8EA3BBCC 0x394B +0x8EA3BBCD 0x60EA +0x8EA3BBCE 0x3948 +0x8EA3BBCF 0x6107 +0x8EA3BBD0 0x6122 +0x8EA3BBD1 0x610C +0x8EA3BBD2 0x3955 +0x8EA3BBD3 0x3951 +0x8EA3BBD4 0x60B3 +0x8EA3BBD5 0x60D6 +0x8EA3BBD6 0x60D2 +0x8EA3BBD7 0x394E +0x8EA3BBD8 0x60E3 +0x8EA3BBD9 0x60E5 +0x8EA3BBDA 0x60E9 +0x8EA3BBDB 0x396B +0x8EA3BBDC 0x395E +0x8EA3BBDD 0x6111 +0x8EA3BBDE 0x60FD +0x8EA3BBDF 0x3960 +0x8EA3BBE0 0x3967 +0x8EA3BBE1 0x611E +0x8EA3BBE2 0x6120 +0x8EA3BBE3 0x6121 +0x8EA3BBE4 0x621E +0x8EA3BBE5 0x39B8 +0x8EA3BBE6 0x63E2 +0x8EA3BBE7 0x63DE +0x8EA3BBE8 0x63E6 +0x8EA3BBE9 0x3A14 +0x8EA3BBEA 0x3A0F +0x8EA3BBEB 0x3A07 +0x8EA3BBEC 0x3A13 +0x8EA3BBED 0x63F8 +0x8EA3BBEE 0x3A17 +0x8EA3BBEF 0x63FE +0x8EA3BBF0 0x63C1 +0x8EA3BBF1 0x63BF +0x8EA3BBF2 0x63F7 +0x8EA3BBF3 0x63D1 +0x8EA3BBF4 0x655F +0x8EA3BBF5 0x6560 +0x8EA3BBF6 0x6561 +0x8EA3BBF7 0x3A9A +0x8EA3BBF8 0x3AB8 +0x8EA3BBF9 0x65D1 +0x8EA3BBFA 0x3AF7 +0x8EA3BBFB 0x3AF8 +0x8EA3BBFC 0x667D +0x8EA3BBFD 0x666B +0x8EA3BBFE 0x667F +0x8EA3BCA1 0x3AFD +0x8EA3BCA2 0x3AF5 +0x8EA3BCA3 0x6673 +0x8EA3BCA4 0x6681 +0x8EA3BCA5 0x666D +0x8EA3BCA6 0x6669 +0x8EA3BCA7 0x3AFA +0x8EA3BCA8 0x3B38 +0x8EA3BCA9 0x671E +0x8EA3BCAA 0x68ED +0x8EA3BCAB 0x3B87 +0x8EA3BCAC 0x3B80 +0x8EA3BCAD 0x3B88 +0x8EA3BCAE 0x3B79 +0x8EA3BCAF 0x6903 +0x8EA3BCB0 0x3B7C +0x8EA3BCB1 0x68FE +0x8EA3BCB2 0x68E5 +0x8EA3BCB3 0x691E +0x8EA3BCB4 0x6902 +0x8EA3BCB5 0x3B83 +0x8EA3BCB6 0x3B85 +0x8EA3BCB7 0x6909 +0x8EA3BCB8 0x68CA +0x8EA3BCB9 0x6900 +0x8EA3BCBA 0x2F8E5 +0x8EA3BCBB 0x6901 +0x8EA3BCBC 0x6918 +0x8EA3BCBD 0x68E2 +0x8EA3BCBE 0x68CF +0x8EA3BCBF 0x3B7B +0x8EA3BCC0 0x692E +0x8EA3BCC1 0x68C5 +0x8EA3BCC2 0x68FF +0x8EA3BCC3 0x3B86 +0x8EA3BCC4 0x691C +0x8EA3BCC5 0x68C3 +0x8EA3BCC6 0x3C34 +0x8EA3BCC7 0x6B6F +0x8EA3BCC8 0x3C55 +0x8EA3BCC9 0x6B6E +0x8EA3BCCA 0x3C68 +0x8EA3BCCB 0x6BBE +0x8EA3BCCC 0x3C9C +0x8EA3BCCD 0x6BF4 +0x8EA3BCCE 0x6C2D +0x8EA3BCCF 0x3CFC +0x8EA3BCD0 0x6DB6 +0x8EA3BCD1 0x6E75 +0x8EA3BCD2 0x6E1E +0x8EA3BCD3 0x3D1A +0x8EA3BCD4 0x6E18 +0x8EA3BCD5 0x3D17 +0x8EA3BCD6 0x6E48 +0x8EA3BCD7 0x3D1B +0x8EA3BCD8 0x6E4F +0x8EA3BCD9 0x3D13 +0x8EA3BCDA 0x6E42 +0x8EA3BCDB 0x6E6A +0x8EA3BCDC 0x6E70 +0x8EA3BCDD 0x6DFE +0x8EA3BCDE 0x3D05 +0x8EA3BCDF 0x3D07 +0x8EA3BCE0 0x6E6D +0x8EA3BCE1 0x3D1C +0x8EA3BCE2 0x6E7B +0x8EA3BCE3 0x6E7E +0x8EA3BCE4 0x6E59 +0x8EA3BCE5 0x3D11 +0x8EA3BCE6 0x6E57 +0x8EA3BCE7 0x3D16 +0x8EA3BCE8 0x6E80 +0x8EA3BCE9 0x6E50 +0x8EA3BCEA 0x3D15 +0x8EA3BCEB 0x6E29 +0x8EA3BCEC 0x6E76 +0x8EA3BCED 0x6E2A +0x8EA3BCEE 0x6E4C +0x8EA3BCEF 0x712A +0x8EA3BCF0 0x3DCB +0x8EA3BCF1 0x7135 +0x8EA3BCF2 0x712C +0x8EA3BCF3 0x7137 +0x8EA3BCF4 0x711D +0x8EA3BCF5 0x3DC5 +0x8EA3BCF6 0x3DC2 +0x8EA3BCF7 0x7138 +0x8EA3BCF8 0x3DCD +0x8EA3BCF9 0x7134 +0x8EA3BCFA 0x712B +0x8EA3BCFB 0x7133 +0x8EA3BCFC 0x7127 +0x8EA3BCFD 0x7124 +0x8EA3BCFE 0x3DCA +0x8EA3BDA1 0x712D +0x8EA3BDA2 0x7232 +0x8EA3BDA3 0x7283 +0x8EA3BDA4 0x7282 +0x8EA3BDA5 0x7287 +0x8EA3BDA6 0x7306 +0x8EA3BDA7 0x7324 +0x8EA3BDA8 0x7338 +0x8EA3BDA9 0x732A +0x8EA3BDAA 0x732C +0x8EA3BDAB 0x732B +0x8EA3BDAC 0x3E83 +0x8EA3BDAD 0x732F +0x8EA3BDAE 0x7328 +0x8EA3BDAF 0x7417 +0x8EA3BDB0 0x3ED6 +0x8EA3BDB1 0x3ED5 +0x8EA3BDB2 0x7419 +0x8EA3BDB3 0x7438 +0x8EA3BDB4 0x3ED1 +0x8EA3BDB5 0x741F +0x8EA3BDB6 0x7414 +0x8EA3BDB7 0x743C +0x8EA3BDB8 0x73F7 +0x8EA3BDB9 0x741C +0x8EA3BDBA 0x7415 +0x8EA3BDBB 0x7418 +0x8EA3BDBC 0x7439 +0x8EA3BDBD 0x74F9 +0x8EA3BDBE 0x7524 +0x8EA3BDBF 0x2F934 +0x8EA3BDC0 0x3F52 +0x8EA3BDC1 0x3F5F +0x8EA3BDC2 0x756E +0x8EA3BDC3 0x756D +0x8EA3BDC4 0x7571 +0x8EA3BDC5 0x758E +0x8EA3BDC6 0x3F95 +0x8EA3BDC7 0x75E5 +0x8EA3BDC8 0x3F9D +0x8EA3BDC9 0x3F98 +0x8EA3BDCA 0x3F9E +0x8EA3BDCB 0x3F96 +0x8EA3BDCC 0x7694 +0x8EA3BDCD 0x76B3 +0x8EA3BDCE 0x4003 +0x8EA3BDCF 0x76D9 +0x8EA3BDD0 0x402F +0x8EA3BDD1 0x7748 +0x8EA3BDD2 0x7749 +0x8EA3BDD3 0x7743 +0x8EA3BDD4 0x4031 +0x8EA3BDD5 0x4033 +0x8EA3BDD6 0x7742 +0x8EA3BDD7 0x77DF +0x8EA3BDD8 0x40B4 +0x8EA3BDD9 0x7863 +0x8EA3BDDA 0x7876 +0x8EA3BDDB 0x40B0 +0x8EA3BDDC 0x785F +0x8EA3BDDD 0x7866 +0x8EA3BDDE 0x7966 +0x8EA3BDDF 0x7971 +0x8EA3BDE0 0x4108 +0x8EA3BDE1 0x4107 +0x8EA3BDE2 0x7976 +0x8EA3BDE3 0x7984 +0x8EA3BDE4 0x7975 +0x8EA3BDE5 0x79FF +0x8EA3BDE6 0x7A07 +0x8EA3BDE7 0x414E +0x8EA3BDE8 0x7A0E +0x8EA3BDE9 0x7A09 +0x8EA3BDEA 0x4150 +0x8EA3BDEB 0x4152 +0x8EA3BDEC 0x41A1 +0x8EA3BDED 0x41A3 +0x8EA3BDEE 0x41A5 +0x8EA3BDEF 0x41CC +0x8EA3BDF0 0x7AE7 +0x8EA3BDF1 0x7AE2 +0x8EA3BDF2 0x7B55 +0x8EA3BDF3 0x41EF +0x8EA3BDF4 0x41EA +0x8EA3BDF5 0x7B43 +0x8EA3BDF6 0x7B57 +0x8EA3BDF7 0x7B6C +0x8EA3BDF8 0x7B42 +0x8EA3BDF9 0x7B53 +0x8EA3BDFA 0x41ED +0x8EA3BDFB 0x7B41 +0x8EA3BDFC 0x4285 +0x8EA3BDFD 0x4284 +0x8EA3BDFE 0x7CA7 +0x8EA3BEA1 0x7CA0 +0x8EA3BEA2 0x7CA6 +0x8EA3BEA3 0x7CA4 +0x8EA3BEA4 0x7D74 +0x8EA3BEA5 0x42DB +0x8EA3BEA6 0x7D59 +0x8EA3BEA7 0x42D9 +0x8EA3BEA8 0x7D60 +0x8EA3BEA9 0x7D57 +0x8EA3BEAA 0x7D6C +0x8EA3BEAB 0x7D7E +0x8EA3BEAC 0x7D64 +0x8EA3BEAD 0x42D7 +0x8EA3BEAE 0x7D5A +0x8EA3BEAF 0x7D5D +0x8EA3BEB0 0x42DA +0x8EA3BEB1 0x42DE +0x8EA3BEB2 0x42D8 +0x8EA3BEB3 0x7D76 +0x8EA3BEB4 0x7D4D +0x8EA3BEB5 0x7D75 +0x8EA3BEB6 0x42D5 +0x8EA3BEB7 0x7FD3 +0x8EA3BEB8 0x7FD6 +0x8EA3BEB9 0x439C +0x8EA3BEBA 0x439D +0x8EA3BEBB 0x8060 +0x8EA3BEBC 0x804E +0x8EA3BEBD 0x8145 +0x8EA3BEBE 0x813B +0x8EA3BEBF 0x43FE +0x8EA3BEC0 0x8148 +0x8EA3BEC1 0x8142 +0x8EA3BEC2 0x8149 +0x8EA3BEC3 0x8140 +0x8EA3BEC4 0x8114 +0x8EA3BEC5 0x8141 +0x8EA3BEC6 0x4407 +0x8EA3BEC7 0x81EF +0x8EA3BEC8 0x81F6 +0x8EA3BEC9 0x8203 +0x8EA3BECA 0x446A +0x8EA3BECB 0x83ED +0x8EA3BECC 0x44E7 +0x8EA3BECD 0x83DA +0x8EA3BECE 0x8418 +0x8EA3BECF 0x83D2 +0x8EA3BED0 0x8408 +0x8EA3BED1 0x44E2 +0x8EA3BED2 0x8400 +0x8EA3BED3 0x44DF +0x8EA3BED4 0x44E1 +0x8EA3BED5 0x44E5 +0x8EA3BED6 0x8417 +0x8EA3BED7 0x8346 +0x8EA3BED8 0x8414 +0x8EA3BED9 0x83D3 +0x8EA3BEDA 0x8405 +0x8EA3BEDB 0x841F +0x8EA3BEDC 0x8402 +0x8EA3BEDD 0x8416 +0x8EA3BEDE 0x83CD +0x8EA3BEDF 0x83E6 +0x8EA3BEE0 0x4591 +0x8EA3BEE1 0x865D +0x8EA3BEE2 0x86D5 +0x8EA3BEE3 0x86E1 +0x8EA3BEE4 0x45B4 +0x8EA3BEE5 0x45B0 +0x8EA3BEE6 0x45B5 +0x8EA3BEE7 0x45AE +0x8EA3BEE8 0x86EE +0x8EA3BEE9 0x8847 +0x8EA3BEEA 0x8846 +0x8EA3BEEB 0x462D +0x8EA3BEEC 0x462C +0x8EA3BEED 0x88BB +0x8EA3BEEE 0x462B +0x8EA3BEEF 0x88BF +0x8EA3BEF0 0x88B4 +0x8EA3BEF1 0x4629 +0x8EA3BEF2 0x88B5 +0x8EA3BEF3 0x467F +0x8EA3BEF4 0x899A +0x8EA3BEF5 0x8A43 +0x8EA3BEF6 0x46C9 +0x8EA3BEF7 0x46CB +0x8EA3BEF8 0x8A5A +0x8EA3BEF9 0x46C5 +0x8EA3BEFA 0x46C6 +0x8EA3BEFB 0x46CA +0x8EA3BEFC 0x8A35 +0x8EA3BEFD 0x8A38 +0x8EA3BEFE 0x8A42 +0x8EA3BFA1 0x8A49 +0x8EA3BFA2 0x8A5D +0x8EA3BFA3 0x8A4B +0x8EA3BFA4 0x8A3D +0x8EA3BFA5 0x46D2 +0x8EA3BFA6 0x46D0 +0x8EA3BFA7 0x472D +0x8EA3BFA8 0x4735 +0x8EA3BFA9 0x8C60 +0x8EA3BFAA 0x8C5E +0x8EA3BFAB 0x8C7F +0x8EA3BFAC 0x8C7E +0x8EA3BFAD 0x8C83 +0x8EA3BFAE 0x476C +0x8EA3BFAF 0x8CB1 +0x8EA3BFB0 0x8D87 +0x8EA3BFB1 0x479D +0x8EA3BFB2 0x47A0 +0x8EA3BFB3 0x8D88 +0x8EA3BFB4 0x8D83 +0x8EA3BFB5 0x47A2 +0x8EA3BFB6 0x479F +0x8EA3BFB7 0x8D86 +0x8EA3BFB8 0x8D8B +0x8EA3BFB9 0x8D82 +0x8EA3BFBA 0x8DCA +0x8EA3BFBB 0x8DD2 +0x8EA3BFBC 0x47EB +0x8EA3BFBD 0x47E2 +0x8EA3BFBE 0x8DD4 +0x8EA3BFBF 0x8DC9 +0x8EA3BFC0 0x8EB0 +0x8EA3BFC1 0x4836 +0x8EA3BFC2 0x4832 +0x8EA3BFC3 0x4850 +0x8EA3BFC4 0x8EF2 +0x8EA3BFC5 0x8EE4 +0x8EA3BFC6 0x8EF3 +0x8EA3BFC7 0x8EEA +0x8EA3BFC8 0x484F +0x8EA3BFC9 0x8EFD +0x8EA3BFCA 0x4852 +0x8EA3BFCB 0x8F9D +0x8EA3BFCC 0x902B +0x8EA3BFCD 0x902A +0x8EA3BFCE 0x489E +0x8EA3BFCF 0x9028 +0x8EA3BFD0 0x9029 +0x8EA3BFD1 0x902C +0x8EA3BFD2 0x48A0 +0x8EA3BFD3 0x489C +0x8EA3BFD4 0x903A +0x8EA3BFD5 0x9030 +0x8EA3BFD6 0x9037 +0x8EA3BFD7 0x903B +0x8EA3BFD8 0x48D1 +0x8EA3BFD9 0x910A +0x8EA3BFDA 0x48EF +0x8EA3BFDB 0x48F0 +0x8EA3BFDC 0x48F1 +0x8EA3BFDD 0x91FE +0x8EA3BFDE 0x9220 +0x8EA3BFDF 0x491D +0x8EA3BFE0 0x920B +0x8EA3BFE1 0x491F +0x8EA3BFE2 0x9218 +0x8EA3BFE3 0x9222 +0x8EA3BFE4 0x491E +0x8EA3BFE5 0x921B +0x8EA3BFE6 0x9208 +0x8EA3BFE7 0x4920 +0x8EA3BFE8 0x920E +0x8EA3BFE9 0x9213 +0x8EA3BFEA 0x498E +0x8EA3BFEB 0x4991 +0x8EA3BFEC 0x9595 +0x8EA3BFED 0x28CDD +0x8EA3BFEE 0x4990 +0x8EA3BFEF 0x49D7 +0x8EA3BFF0 0x968C +0x8EA3BFF1 0x967B +0x8EA3BFF2 0x967F +0x8EA3BFF3 0x9681 +0x8EA3BFF4 0x49D9 +0x8EA3BFF5 0x9682 +0x8EA3BFF6 0x49F4 +0x8EA3BFF7 0x49F6 +0x8EA3BFF8 0x3560 +0x8EA3BFF9 0x49F5 +0x8EA3BFFA 0x49F3 +0x8EA3BFFB 0x96EE +0x8EA3BFFC 0x96ED +0x8EA3BFFD 0x4A0C +0x8EA3BFFE 0x96EC +0x8EA3C0A1 0x975F +0x8EA3C0A2 0x976F +0x8EA3C0A3 0x4A51 +0x8EA3C0A4 0x976D +0x8EA3C0A5 0x4AA6 +0x8EA3C0A6 0x4AA7 +0x8EA3C0A7 0x4AA8 +0x8EA3C0A8 0x4B27 +0x8EA3C0A9 0x4B24 +0x8EA3C0AA 0x4B25 +0x8EA3C0AB 0x98F0 +0x8EA3C0AC 0x4B2A +0x8EA3C0AD 0x4B74 +0x8EA3C0AE 0x4BC7 +0x8EA3C0AF 0x9AA9 +0x8EA3C0B0 0x4BE7 +0x8EA3C0B1 0x4BED +0x8EA3C0B2 0x9AE0 +0x8EA3C0B3 0x4EB7 +0x8EA3C0B4 0x342E +0x8EA3C0B5 0x347B +0x8EA3C0B6 0x50CC +0x8EA3C0B7 0x50BC +0x8EA3C0B8 0x347C +0x8EA3C0B9 0x50AA +0x8EA3C0BA 0x50B9 +0x8EA3C0BB 0x347D +0x8EA3C0BC 0x50AB +0x8EA3C0BD 0x50C3 +0x8EA3C0BE 0x50CD +0x8EA3C0BF 0x517E +0x8EA3C0C0 0x527E +0x8EA3C0C1 0x5279 +0x8EA3C0C2 0x34FD +0x8EA3C0C3 0x2F823 +0x8EA3C0C4 0x52E1 +0x8EA3C0C5 0x52E0 +0x8EA3C0C6 0x52E7 +0x8EA3C0C7 0x5380 +0x8EA3C0C8 0x53AB +0x8EA3C0C9 0x53AA +0x8EA3C0CA 0x53A9 +0x8EA3C0CB 0x53E0 +0x8EA3C0CC 0x55EA +0x8EA3C0CD 0x35DA +0x8EA3C0CE 0x55D7 +0x8EA3C0CF 0x35D6 +0x8EA3C0D0 0x35DB +0x8EA3C0D1 0x55C1 +0x8EA3C0D2 0x5715 +0x8EA3C0D3 0x365B +0x8EA3C0D4 0x586C +0x8EA3C0D5 0x365C +0x8EA3C0D6 0x585C +0x8EA3C0D7 0x5850 +0x8EA3C0D8 0x5861 +0x8EA3C0D9 0x586A +0x8EA3C0DA 0x5869 +0x8EA3C0DB 0x5856 +0x8EA3C0DC 0x5860 +0x8EA3C0DD 0x5866 +0x8EA3C0DE 0x585F +0x8EA3C0DF 0x5923 +0x8EA3C0E0 0x5966 +0x8EA3C0E1 0x5968 +0x8EA3C0E2 0x3706 +0x8EA3C0E3 0x370B +0x8EA3C0E4 0x5ACE +0x8EA3C0E5 0x370D +0x8EA3C0E6 0x5AC5 +0x8EA3C0E7 0x5AC3 +0x8EA3C0E8 0x370A +0x8EA3C0E9 0x3713 +0x8EA3C0EA 0x5AD0 +0x8EA3C0EB 0x3710 +0x8EA3C0EC 0x3712 +0x8EA3C0ED 0x3709 +0x8EA3C0EE 0x3708 +0x8EA3C0EF 0x3711 +0x8EA3C0F0 0x370F +0x8EA3C0F1 0x5B74 +0x8EA3C0F2 0x5B76 +0x8EA3C0F3 0x5BDC +0x8EA3C0F4 0x5BD7 +0x8EA3C0F5 0x5BDA +0x8EA3C0F6 0x5BDB +0x8EA3C0F7 0x3767 +0x8EA3C0F8 0x5C20 +0x8EA3C0F9 0x5D6D +0x8EA3C0FA 0x5D66 +0x8EA3C0FB 0x37F6 +0x8EA3C0FC 0x5D64 +0x8EA3C0FD 0x5D6E +0x8EA3C0FE 0x2F87E +0x8EA3C1A1 0x5D60 +0x8EA3C1A2 0x5F42 +0x8EA3C1A3 0x5F5A +0x8EA3C1A4 0x5F6E +0x8EA3C1A5 0x3964 +0x8EA3C1A6 0x396C +0x8EA3C1A7 0x6130 +0x8EA3C1A8 0x613A +0x8EA3C1A9 0x612A +0x8EA3C1AA 0x6143 +0x8EA3C1AB 0x6119 +0x8EA3C1AC 0x6131 +0x8EA3C1AD 0x396D +0x8EA3C1AE 0x613D +0x8EA3C1AF 0x397A +0x8EA3C1B0 0x3975 +0x8EA3C1B1 0x3A0D +0x8EA3C1B2 0x6408 +0x8EA3C1B3 0x6432 +0x8EA3C1B4 0x6438 +0x8EA3C1B5 0x3A1E +0x8EA3C1B6 0x6431 +0x8EA3C1B7 0x3A1B +0x8EA3C1B8 0x6419 +0x8EA3C1B9 0x3A2A +0x8EA3C1BA 0x6411 +0x8EA3C1BB 0x3A1F +0x8EA3C1BC 0x3A22 +0x8EA3C1BD 0x6429 +0x8EA3C1BE 0x641D +0x8EA3C1BF 0x3A25 +0x8EA3C1C0 0x3A27 +0x8EA3C1C1 0x3A29 +0x8EA3C1C2 0x643C +0x8EA3C1C3 0x3A24 +0x8EA3C1C4 0x6446 +0x8EA3C1C5 0x6447 +0x8EA3C1C6 0x3A28 +0x8EA3C1C7 0x3A26 +0x8EA3C1C8 0x643A +0x8EA3C1C9 0x6407 +0x8EA3C1CA 0x3A23 +0x8EA3C1CB 0x656B +0x8EA3C1CC 0x3A9F +0x8EA3C1CD 0x6570 +0x8EA3C1CE 0x656D +0x8EA3C1CF 0x3AB1 +0x8EA3C1D0 0x65E4 +0x8EA3C1D1 0x6693 +0x8EA3C1D2 0x3B03 +0x8EA3C1D3 0x3B07 +0x8EA3C1D4 0x3B0C +0x8EA3C1D5 0x3B06 +0x8EA3C1D6 0x668F +0x8EA3C1D7 0x3B04 +0x8EA3C1D8 0x3B09 +0x8EA3C1D9 0x6692 +0x8EA3C1DA 0x3B05 +0x8EA3C1DB 0x668E +0x8EA3C1DC 0x3B08 +0x8EA3C1DD 0x6946 +0x8EA3C1DE 0x3B96 +0x8EA3C1DF 0x3B9C +0x8EA3C1E0 0x3B9F +0x8EA3C1E1 0x3B9B +0x8EA3C1E2 0x3B98 +0x8EA3C1E3 0x3B99 +0x8EA3C1E4 0x3B94 +0x8EA3C1E5 0x6931 +0x8EA3C1E6 0x3B8D +0x8EA3C1E7 0x3BA3 +0x8EA3C1E8 0x693E +0x8EA3C1E9 0x3B93 +0x8EA3C1EA 0x697C +0x8EA3C1EB 0x6943 +0x8EA3C1EC 0x3B92 +0x8EA3C1ED 0x6973 +0x8EA3C1EE 0x2F8E8 +0x8EA3C1EF 0x6955 +0x8EA3C1F0 0x3B8E +0x8EA3C1F1 0x3B8C +0x8EA3C1F2 0x6985 +0x8EA3C1F3 0x694D +0x8EA3C1F4 0x6950 +0x8EA3C1F5 0x6947 +0x8EA3C1F6 0x6967 +0x8EA3C1F7 0x6936 +0x8EA3C1F8 0x6964 +0x8EA3C1F9 0x6961 +0x8EA3C1FA 0x3B9A +0x8EA3C1FB 0x697D +0x8EA3C1FC 0x6B44 +0x8EA3C1FD 0x6B40 +0x8EA3C1FE 0x6B71 +0x8EA3C2A1 0x6B73 +0x8EA3C2A2 0x6B9C +0x8EA3C2A3 0x3C6A +0x8EA3C2A4 0x3C6D +0x8EA3C2A5 0x3C84 +0x8EA3C2A6 0x6BC1 +0x8EA3C2A7 0x3CA0 +0x8EA3C2A8 0x6BFA +0x8EA3C2A9 0x6C31 +0x8EA3C2AA 0x6C32 +0x8EA3C2AB 0x3D1D +0x8EA3C2AC 0x3D26 +0x8EA3C2AD 0x6EB8 +0x8EA3C2AE 0x6EA8 +0x8EA3C2AF 0x3D33 +0x8EA3C2B0 0x6E91 +0x8EA3C2B1 0x6EBB +0x8EA3C2B2 0x3D38 +0x8EA3C2B3 0x6E9A +0x8EA3C2B4 0x3D30 +0x8EA3C2B5 0x3D28 +0x8EA3C2B6 0x6EA9 +0x8EA3C2B7 0x3D27 +0x8EA3C2B8 0x3D2A +0x8EA3C2B9 0x6EB5 +0x8EA3C2BA 0x6E6C +0x8EA3C2BB 0x6EE8 +0x8EA3C2BC 0x3D31 +0x8EA3C2BD 0x6EDD +0x8EA3C2BE 0x6EDA +0x8EA3C2BF 0x6EE6 +0x8EA3C2C0 0x6EAC +0x8EA3C2C1 0x3D34 +0x8EA3C2C2 0x3D2E +0x8EA3C2C3 0x3D3B +0x8EA3C2C4 0x6ED9 +0x8EA3C2C5 0x6EE3 +0x8EA3C2C6 0x6EE9 +0x8EA3C2C7 0x6EDB +0x8EA3C2C8 0x3D29 +0x8EA3C2C9 0x716F +0x8EA3C2CA 0x3DD2 +0x8EA3C2CB 0x3DD8 +0x8EA3C2CC 0x7148 +0x8EA3C2CD 0x3DCF +0x8EA3C2CE 0x714A +0x8EA3C2CF 0x716B +0x8EA3C2D0 0x3DD9 +0x8EA3C2D1 0x714F +0x8EA3C2D2 0x7157 +0x8EA3C2D3 0x7174 +0x8EA3C2D4 0x3DCE +0x8EA3C2D5 0x3DD3 +0x8EA3C2D6 0x3DD0 +0x8EA3C2D7 0x7145 +0x8EA3C2D8 0x7151 +0x8EA3C2D9 0x716D +0x8EA3C2DA 0x3BA1 +0x8EA3C2DB 0x7251 +0x8EA3C2DC 0x7250 +0x8EA3C2DD 0x724E +0x8EA3C2DE 0x3E47 +0x8EA3C2DF 0x7341 +0x8EA3C2E0 0x3E8B +0x8EA3C2E1 0x732E +0x8EA3C2E2 0x7346 +0x8EA3C2E3 0x3ED4 +0x8EA3C2E4 0x7427 +0x8EA3C2E5 0x3EDE +0x8EA3C2E6 0x7448 +0x8EA3C2E7 0x7453 +0x8EA3C2E8 0x743D +0x8EA3C2E9 0x3EDF +0x8EA3C2EA 0x745D +0x8EA3C2EB 0x7456 +0x8EA3C2EC 0x3ED7 +0x8EA3C2ED 0x741E +0x8EA3C2EE 0x7447 +0x8EA3C2EF 0x7443 +0x8EA3C2F0 0x7458 +0x8EA3C2F1 0x7449 +0x8EA3C2F2 0x3EE1 +0x8EA3C2F3 0x744C +0x8EA3C2F4 0x7445 +0x8EA3C2F5 0x743E +0x8EA3C2F6 0x3F2F +0x8EA3C2F7 0x7501 +0x8EA3C2F8 0x751E +0x8EA3C2F9 0x3F62 +0x8EA3C2FA 0x3F63 +0x8EA3C2FB 0x757A +0x8EA3C2FC 0x75EE +0x8EA3C2FD 0x7602 +0x8EA3C2FE 0x7697 +0x8EA3C3A1 0x7698 +0x8EA3C3A2 0x3FE2 +0x8EA3C3A3 0x4004 +0x8EA3C3A4 0x4043 +0x8EA3C3A5 0x775D +0x8EA3C3A6 0x7764 +0x8EA3C3A7 0x7753 +0x8EA3C3A8 0x7758 +0x8EA3C3A9 0x7882 +0x8EA3C3AA 0x7890 +0x8EA3C3AB 0x788A +0x8EA3C3AC 0x40BE +0x8EA3C3AD 0x787A +0x8EA3C3AE 0x787D +0x8EA3C3AF 0x40BA +0x8EA3C3B0 0x788B +0x8EA3C3B1 0x7878 +0x8EA3C3B2 0x40BC +0x8EA3C3B3 0x2F94E +0x8EA3C3B4 0x788D +0x8EA3C3B5 0x7888 +0x8EA3C3B6 0x7892 +0x8EA3C3B7 0x7881 +0x8EA3C3B8 0x797E +0x8EA3C3B9 0x7983 +0x8EA3C3BA 0x410D +0x8EA3C3BB 0x410E +0x8EA3C3BC 0x4111 +0x8EA3C3BD 0x7980 +0x8EA3C3BE 0x410F +0x8EA3C3BF 0x4112 +0x8EA3C3C0 0x4155 +0x8EA3C3C1 0x7A0F +0x8EA3C3C2 0x4159 +0x8EA3C3C3 0x415B +0x8EA3C3C4 0x7A1D +0x8EA3C3C5 0x4157 +0x8EA3C3C6 0x7AA1 +0x8EA3C3C7 0x7AA4 +0x8EA3C3C8 0x41CE +0x8EA3C3C9 0x7AE9 +0x8EA3C3CA 0x7AEA +0x8EA3C3CB 0x41FE +0x8EA3C3CC 0x7B62 +0x8EA3C3CD 0x7B6B +0x8EA3C3CE 0x41FC +0x8EA3C3CF 0x7B5E +0x8EA3C3D0 0x41F5 +0x8EA3C3D1 0x7B79 +0x8EA3C3D2 0x41F9 +0x8EA3C3D3 0x41FA +0x8EA3C3D4 0x7B6F +0x8EA3C3D5 0x7B68 +0x8EA3C3D6 0x4288 +0x8EA3C3D7 0x4289 +0x8EA3C3D8 0x7CAE +0x8EA3C3D9 0x428A +0x8EA3C3DA 0x4287 +0x8EA3C3DB 0x428B +0x8EA3C3DC 0x7CB0 +0x8EA3C3DD 0x42E6 +0x8EA3C3DE 0x7D90 +0x8EA3C3DF 0x42ED +0x8EA3C3E0 0x7D8A +0x8EA3C3E1 0x42E5 +0x8EA3C3E2 0x7D8B +0x8EA3C3E3 0x7D99 +0x8EA3C3E4 0x7D95 +0x8EA3C3E5 0x42E0 +0x8EA3C3E6 0x7D87 +0x8EA3C3E7 0x7D78 +0x8EA3C3E8 0x7D97 +0x8EA3C3E9 0x7D89 +0x8EA3C3EA 0x7D98 +0x8EA3C3EB 0x42E1 +0x8EA3C3EC 0x435B +0x8EA3C3ED 0x435C +0x8EA3C3EE 0x7FA3 +0x8EA3C3EF 0x438F +0x8EA3C3F0 0x438B +0x8EA3C3F1 0x438D +0x8EA3C3F2 0x7FDD +0x8EA3C3F3 0x8057 +0x8EA3C3F4 0x43B9 +0x8EA3C3F5 0x8163 +0x8EA3C3F6 0x816A +0x8EA3C3F7 0x816C +0x8EA3C3F8 0x440F +0x8EA3C3F9 0x4419 +0x8EA3C3FA 0x4413 +0x8EA3C3FB 0x815D +0x8EA3C3FC 0x8175 +0x8EA3C3FD 0x4418 +0x8EA3C3FE 0x815F +0x8EA3C4A1 0x4416 +0x8EA3C4A2 0x817D +0x8EA3C4A3 0x816D +0x8EA3C4A4 0x4453 +0x8EA3C4A5 0x2F98D +0x8EA3C4A6 0x8241 +0x8EA3C4A7 0x844F +0x8EA3C4A8 0x8484 +0x8EA3C4A9 0x44F6 +0x8EA3C4AA 0x847F +0x8EA3C4AB 0x44F5 +0x8EA3C4AC 0x8448 +0x8EA3C4AD 0x842A +0x8EA3C4AE 0x847B +0x8EA3C4AF 0x8472 +0x8EA3C4B0 0x8464 +0x8EA3C4B1 0x842E +0x8EA3C4B2 0x845C +0x8EA3C4B3 0x8453 +0x8EA3C4B4 0x44F7 +0x8EA3C4B5 0x8441 +0x8EA3C4B6 0x84C8 +0x8EA3C4B7 0x44F0 +0x8EA3C4B8 0x8462 +0x8EA3C4B9 0x8480 +0x8EA3C4BA 0x843E +0x8EA3C4BB 0x8483 +0x8EA3C4BC 0x8471 +0x8EA3C4BD 0x44F9 +0x8EA3C4BE 0x844A +0x8EA3C4BF 0x8455 +0x8EA3C4C0 0x8458 +0x8EA3C4C1 0x4592 +0x8EA3C4C2 0x4595 +0x8EA3C4C3 0x4596 +0x8EA3C4C4 0x86FC +0x8EA3C4C5 0x86FD +0x8EA3C4C6 0x8715 +0x8EA3C4C7 0x45B9 +0x8EA3C4C8 0x8716 +0x8EA3C4C9 0x86FF +0x8EA3C4CA 0x45BD +0x8EA3C4CB 0x45B8 +0x8EA3C4CC 0x4612 +0x8EA3C4CD 0x8858 +0x8EA3C4CE 0x88CF +0x8EA3C4CF 0x88E0 +0x8EA3C4D0 0x4680 +0x8EA3C4D1 0x4681 +0x8EA3C4D2 0x469A +0x8EA3C4D3 0x4698 +0x8EA3C4D4 0x89E7 +0x8EA3C4D5 0x8A6A +0x8EA3C4D6 0x8A80 +0x8EA3C4D7 0x46D4 +0x8EA3C4D8 0x8A6F +0x8EA3C4D9 0x8A65 +0x8EA3C4DA 0x46DA +0x8EA3C4DB 0x8A78 +0x8EA3C4DC 0x8A7D +0x8EA3C4DD 0x8A88 +0x8EA3C4DE 0x46D6 +0x8EA3C4DF 0x46DB +0x8EA3C4E0 0x8A64 +0x8EA3C4E1 0x8A7E +0x8EA3C4E2 0x46DC +0x8EA3C4E3 0x8A67 +0x8EA3C4E4 0x8C63 +0x8EA3C4E5 0x8C88 +0x8EA3C4E6 0x4771 +0x8EA3C4E7 0x8CCD +0x8EA3C4E8 0x4772 +0x8EA3C4E9 0x8CC9 +0x8EA3C4EA 0x47A8 +0x8EA3C4EB 0x8DED +0x8EA3C4EC 0x47F0 +0x8EA3C4ED 0x2F9DB +0x8EA3C4EE 0x47F1 +0x8EA3C4EF 0x47FD +0x8EA3C4F0 0x4838 +0x8EA3C4F1 0x4837 +0x8EA3C4F2 0x4839 +0x8EA3C4F3 0x8EB1 +0x8EA3C4F4 0x4855 +0x8EA3C4F5 0x4853 +0x8EA3C4F6 0x8F04 +0x8EA3C4F7 0x8F9E +0x8EA3C4F8 0x8FA0 +0x8EA3C4F9 0x9043 +0x8EA3C4FA 0x9046 +0x8EA3C4FB 0x9048 +0x8EA3C4FC 0x9045 +0x8EA3C4FD 0x9040 +0x8EA3C4FE 0x904C +0x8EA3C5A1 0x48D5 +0x8EA3C5A2 0x48BD +0x8EA3C5A3 0x910C +0x8EA3C5A4 0x9113 +0x8EA3C5A5 0x9115 +0x8EA3C5A6 0x48F5 +0x8EA3C5A7 0x916B +0x8EA3C5A8 0x9167 +0x8EA3C5A9 0x925D +0x8EA3C5AA 0x9255 +0x8EA3C5AB 0x9235 +0x8EA3C5AC 0x4921 +0x8EA3C5AD 0x9259 +0x8EA3C5AE 0x922F +0x8EA3C5AF 0x923C +0x8EA3C5B0 0x928F +0x8EA3C5B1 0x925C +0x8EA3C5B2 0x926A +0x8EA3C5B3 0x9262 +0x8EA3C5B4 0x925F +0x8EA3C5B5 0x926B +0x8EA3C5B6 0x926E +0x8EA3C5B7 0x923B +0x8EA3C5B8 0x9244 +0x8EA3C5B9 0x9241 +0x8EA3C5BA 0x959A +0x8EA3C5BB 0x4992 +0x8EA3C5BC 0x9599 +0x8EA3C5BD 0x49DE +0x8EA3C5BE 0x49DB +0x8EA3C5BF 0x49DA +0x8EA3C5C0 0x968F +0x8EA3C5C1 0x49DF +0x8EA3C5C2 0x9696 +0x8EA3C5C3 0x49F9 +0x8EA3C5C4 0x49F8 +0x8EA3C5C5 0x49FA +0x8EA3C5C6 0x96F4 +0x8EA3C5C7 0x96FC +0x8EA3C5C8 0x4A0E +0x8EA3C5C9 0x9755 +0x8EA3C5CA 0x4A43 +0x8EA3C5CB 0x9779 +0x8EA3C5CC 0x4A56 +0x8EA3C5CD 0x4A53 +0x8EA3C5CE 0x4A9E +0x8EA3C5CF 0x97EE +0x8EA3C5D0 0x97F5 +0x8EA3C5D1 0x4AA9 +0x8EA3C5D2 0x980B +0x8EA3C5D3 0x4AFA +0x8EA3C5D4 0x98F3 +0x8EA3C5D5 0x4B31 +0x8EA3C5D6 0x4B30 +0x8EA3C5D7 0x98F7 +0x8EA3C5D8 0x98FF +0x8EA3C5D9 0x98F5 +0x8EA3C5DA 0x4B32 +0x8EA3C5DB 0x98EC +0x8EA3C5DC 0x98F1 +0x8EA3C5DD 0x4B29 +0x8EA3C5DE 0x4B2E +0x8EA3C5DF 0x999A +0x8EA3C5E0 0x4B76 +0x8EA3C5E1 0x9AE2 +0x8EA3C5E2 0x9B3D +0x8EA3C5E3 0x9B5D +0x8EA3C5E4 0x9CE8 +0x8EA3C5E5 0x4CA5 +0x8EA3C5E6 0x9CEB +0x8EA3C5E7 0x9CEF +0x8EA3C5E8 0x9CEE +0x8EA3C5E9 0x9E81 +0x8EA3C5EA 0x9F14 +0x8EA3C5EB 0x50D0 +0x8EA3C5EC 0x50D9 +0x8EA3C5ED 0x50DC +0x8EA3C5EE 0x50D8 +0x8EA3C5EF 0x348C +0x8EA3C5F0 0x50E1 +0x8EA3C5F1 0x50EB +0x8EA3C5F2 0x348B +0x8EA3C5F3 0x3489 +0x8EA3C5F4 0x50F4 +0x8EA3C5F5 0x50E2 +0x8EA3C5F6 0x50DE +0x8EA3C5F7 0x348D +0x8EA3C5F8 0x3486 +0x8EA3C5F9 0x34D7 +0x8EA3C5FA 0x51F4 +0x8EA3C5FB 0x3504 +0x8EA3C5FC 0x3507 +0x8EA3C5FD 0x3503 +0x8EA3C5FE 0x52ED +0x8EA3C6A1 0x52EA +0x8EA3C6A2 0x3522 +0x8EA3C6A3 0x5332 +0x8EA3C6A4 0x3551 +0x8EA3C6A5 0x53AE +0x8EA3C6A6 0x53B0 +0x8EA3C6A7 0x3561 +0x8EA3C6A8 0x55FB +0x8EA3C6A9 0x5603 +0x8EA3C6AA 0x560B +0x8EA3C6AB 0x35E9 +0x8EA3C6AC 0x5607 +0x8EA3C6AD 0x35E5 +0x8EA3C6AE 0x55F8 +0x8EA3C6AF 0x35E4 +0x8EA3C6B0 0x5628 +0x8EA3C6B1 0x561E +0x8EA3C6B2 0x35E3 +0x8EA3C6B3 0x5618 +0x8EA3C6B4 0x5611 +0x8EA3C6B5 0x5651 +0x8EA3C6B6 0x5605 +0x8EA3C6B7 0x5717 +0x8EA3C6B8 0x5892 +0x8EA3C6B9 0x3665 +0x8EA3C6BA 0x588C +0x8EA3C6BB 0x3663 +0x8EA3C6BC 0x5878 +0x8EA3C6BD 0x5884 +0x8EA3C6BE 0x5873 +0x8EA3C6BF 0x58AD +0x8EA3C6C0 0x5897 +0x8EA3C6C1 0x5895 +0x8EA3C6C2 0x5877 +0x8EA3C6C3 0x5872 +0x8EA3C6C4 0x5896 +0x8EA3C6C5 0x588D +0x8EA3C6C6 0x5910 +0x8EA3C6C7 0x368C +0x8EA3C6C8 0x596C +0x8EA3C6C9 0x371A +0x8EA3C6CA 0x5AE7 +0x8EA3C6CB 0x3715 +0x8EA3C6CC 0x5AE4 +0x8EA3C6CD 0x3720 +0x8EA3C6CE 0x3721 +0x8EA3C6CF 0x5AEF +0x8EA3C6D0 0x5626 +0x8EA3C6D1 0x371C +0x8EA3C6D2 0x371B +0x8EA3C6D3 0x5AF0 +0x8EA3C6D4 0x5D7B +0x8EA3C6D5 0x37FE +0x8EA3C6D6 0x5D83 +0x8EA3C6D7 0x3804 +0x8EA3C6D8 0x3801 +0x8EA3C6D9 0x5D8B +0x8EA3C6DA 0x5D8C +0x8EA3C6DB 0x3800 +0x8EA3C6DC 0x5D78 +0x8EA3C6DD 0x5E52 +0x8EA3C6DE 0x386D +0x8EA3C6DF 0x3893 +0x8EA3C6E0 0x5ED0 +0x8EA3C6E1 0x5ECF +0x8EA3C6E2 0x38A1 +0x8EA3C6E3 0x5FB3 +0x8EA3C6E4 0x5FB4 +0x8EA3C6E5 0x3976 +0x8EA3C6E6 0x3979 +0x8EA3C6E7 0x3972 +0x8EA3C6E8 0x617B +0x8EA3C6E9 0x3983 +0x8EA3C6EA 0x616F +0x8EA3C6EB 0x6181 +0x8EA3C6EC 0x613C +0x8EA3C6ED 0x6142 +0x8EA3C6EE 0x6138 +0x8EA3C6EF 0x6133 +0x8EA3C6F0 0x2F8A6 +0x8EA3C6F1 0x6160 +0x8EA3C6F2 0x6169 +0x8EA3C6F3 0x617D +0x8EA3C6F4 0x6186 +0x8EA3C6F5 0x622C +0x8EA3C6F6 0x6228 +0x8EA3C6F7 0x3A38 +0x8EA3C6F8 0x644C +0x8EA3C6F9 0x3A30 +0x8EA3C6FA 0x6457 +0x8EA3C6FB 0x647C +0x8EA3C6FC 0x3A34 +0x8EA3C6FD 0x3A3A +0x8EA3C6FE 0x6455 +0x8EA3C7A1 0x6462 +0x8EA3C7A2 0x6471 +0x8EA3C7A3 0x646A +0x8EA3C7A4 0x6456 +0x8EA3C7A5 0x643B +0x8EA3C7A6 0x6481 +0x8EA3C7A7 0x3A35 +0x8EA3C7A8 0x644F +0x8EA3C7A9 0x647E +0x8EA3C7AA 0x6464 +0x8EA3C7AB 0x3A3F +0x8EA3C7AC 0x3A40 +0x8EA3C7AD 0x3A32 +0x8EA3C7AE 0x3A31 +0x8EA3C7AF 0x3A36 +0x8EA3C7B0 0x6571 +0x8EA3C7B1 0x230BA +0x8EA3C7B2 0x3B0F +0x8EA3C7B3 0x66A5 +0x8EA3C7B4 0x669A +0x8EA3C7B5 0x669C +0x8EA3C7B6 0x3B10 +0x8EA3C7B7 0x66A6 +0x8EA3C7B8 0x3B0D +0x8EA3C7B9 0x66A4 +0x8EA3C7BA 0x698F +0x8EA3C7BB 0x69C5 +0x8EA3C7BC 0x69C8 +0x8EA3C7BD 0x6992 +0x8EA3C7BE 0x69B2 +0x8EA3C7BF 0x3BA9 +0x8EA3C7C0 0x3BB4 +0x8EA3C7C1 0x3BAC +0x8EA3C7C2 0x69E3 +0x8EA3C7C3 0x69C0 +0x8EA3C7C4 0x69D6 +0x8EA3C7C5 0x69D1 +0x8EA3C7C6 0x699F +0x8EA3C7C7 0x69A2 +0x8EA3C7C8 0x69D2 +0x8EA3C7C9 0x3BB8 +0x8EA3C7CA 0x3BAE +0x8EA3C7CB 0x235F3 +0x8EA3C7CC 0x69E1 +0x8EA3C7CD 0x69D5 +0x8EA3C7CE 0x699D +0x8EA3C7CF 0x3BB3 +0x8EA3C7D0 0x3BBA +0x8EA3C7D1 0x6998 +0x8EA3C7D2 0x3C3F +0x8EA3C7D3 0x6B74 +0x8EA3C7D4 0x6BA1 +0x8EA3C7D5 0x3D3C +0x8EA3C7D6 0x6EF0 +0x8EA3C7D7 0x6EF3 +0x8EA3C7D8 0x3D42 +0x8EA3C7D9 0x3D40 +0x8EA3C7DA 0x6F1B +0x8EA3C7DB 0x6F0C +0x8EA3C7DC 0x6F1D +0x8EA3C7DD 0x6F34 +0x8EA3C7DE 0x6F28 +0x8EA3C7DF 0x6F17 +0x8EA3C7E0 0x3D3E +0x8EA3C7E1 0x6F44 +0x8EA3C7E2 0x6F42 +0x8EA3C7E3 0x6F04 +0x8EA3C7E4 0x6F11 +0x8EA3C7E5 0x6EFA +0x8EA3C7E6 0x6F4A +0x8EA3C7E7 0x7191 +0x8EA3C7E8 0x718E +0x8EA3C7E9 0x3DE1 +0x8EA3C7EA 0x718B +0x8EA3C7EB 0x718D +0x8EA3C7EC 0x717F +0x8EA3C7ED 0x718C +0x8EA3C7EE 0x717E +0x8EA3C7EF 0x717C +0x8EA3C7F0 0x7183 +0x8EA3C7F1 0x3DE6 +0x8EA3C7F2 0x7188 +0x8EA3C7F3 0x3DE0 +0x8EA3C7F4 0x3E15 +0x8EA3C7F5 0x7294 +0x8EA3C7F6 0x3E93 +0x8EA3C7F7 0x7355 +0x8EA3C7F8 0x7353 +0x8EA3C7F9 0x734F +0x8EA3C7FA 0x7354 +0x8EA3C7FB 0x746C +0x8EA3C7FC 0x7465 +0x8EA3C7FD 0x7466 +0x8EA3C7FE 0x7461 +0x8EA3C8A1 0x746B +0x8EA3C8A2 0x7468 +0x8EA3C8A3 0x7476 +0x8EA3C8A4 0x3EE7 +0x8EA3C8A5 0x7460 +0x8EA3C8A6 0x24A0F +0x8EA3C8A7 0x7474 +0x8EA3C8A8 0x7506 +0x8EA3C8A9 0x760E +0x8EA3C8AA 0x3FAD +0x8EA3C8AB 0x7607 +0x8EA3C8AC 0x3FAE +0x8EA3C8AD 0x3FE3 +0x8EA3C8AE 0x76B9 +0x8EA3C8AF 0x3FF5 +0x8EA3C8B0 0x76B7 +0x8EA3C8B1 0x76E2 +0x8EA3C8B2 0x4006 +0x8EA3C8B3 0x7774 +0x8EA3C8B4 0x7777 +0x8EA3C8B5 0x7776 +0x8EA3C8B6 0x7775 +0x8EA3C8B7 0x404F +0x8EA3C8B8 0x7778 +0x8EA3C8B9 0x7771 +0x8EA3C8BA 0x4054 +0x8EA3C8BB 0x777A +0x8EA3C8BC 0x715B +0x8EA3C8BD 0x777B +0x8EA3C8BE 0x78A6 +0x8EA3C8BF 0x78AE +0x8EA3C8C0 0x78B8 +0x8EA3C8C1 0x40CB +0x8EA3C8C2 0x40E3 +0x8EA3C8C3 0x40C9 +0x8EA3C8C4 0x78B1 +0x8EA3C8C5 0x78AF +0x8EA3C8C6 0x4113 +0x8EA3C8C7 0x7989 +0x8EA3C8C8 0x7987 +0x8EA3C8C9 0x4115 +0x8EA3C8CA 0x4161 +0x8EA3C8CB 0x7A29 +0x8EA3C8CC 0x4166 +0x8EA3C8CD 0x7A2A +0x8EA3C8CE 0x4164 +0x8EA3C8CF 0x7A2D +0x8EA3C8D0 0x7A2C +0x8EA3C8D1 0x4160 +0x8EA3C8D2 0x7A32 +0x8EA3C8D3 0x4163 +0x8EA3C8D4 0x7AEC +0x8EA3C8D5 0x7AF0 +0x8EA3C8D6 0x7B81 +0x8EA3C8D7 0x7B9E +0x8EA3C8D8 0x7B83 +0x8EA3C8D9 0x420A +0x8EA3C8DA 0x7B92 +0x8EA3C8DB 0x4204 +0x8EA3C8DC 0x7BA3 +0x8EA3C8DD 0x7B9F +0x8EA3C8DE 0x7B93 +0x8EA3C8DF 0x4207 +0x8EA3C8E0 0x7B86 +0x8EA3C8E1 0x7CB8 +0x8EA3C8E2 0x7CB7 +0x8EA3C8E3 0x428D +0x8EA3C8E4 0x428F +0x8EA3C8E5 0x4290 +0x8EA3C8E6 0x4292 +0x8EA3C8E7 0x42EC +0x8EA3C8E8 0x7DC8 +0x8EA3C8E9 0x7DB6 +0x8EA3C8EA 0x2F96C +0x8EA3C8EB 0x7DD1 +0x8EA3C8EC 0x42E7 +0x8EA3C8ED 0x7DA8 +0x8EA3C8EE 0x7DAB +0x8EA3C8EF 0x42F2 +0x8EA3C8F0 0x7DB3 +0x8EA3C8F1 0x7DCD +0x8EA3C8F2 0x42EE +0x8EA3C8F3 0x7DCF +0x8EA3C8F4 0x7DA4 +0x8EA3C8F5 0x42EF +0x8EA3C8F6 0x434C +0x8EA3C8F7 0x7F41 +0x8EA3C8F8 0x7F6F +0x8EA3C8F9 0x7F71 +0x8EA3C8FA 0x435E +0x8EA3C8FB 0x435F +0x8EA3C8FC 0x4376 +0x8EA3C8FD 0x4374 +0x8EA3C8FE 0x4372 +0x8EA3C9A1 0x4390 +0x8EA3C9A2 0x8023 +0x8EA3C9A3 0x805B +0x8EA3C9A4 0x43BE +0x8EA3C9A5 0x8061 +0x8EA3C9A6 0x805F +0x8EA3C9A7 0x8181 +0x8EA3C9A8 0x4426 +0x8EA3C9A9 0x4425 +0x8EA3C9AA 0x8184 +0x8EA3C9AB 0x8213 +0x8EA3C9AC 0x4474 +0x8EA3C9AD 0x824A +0x8EA3C9AE 0x824C +0x8EA3C9AF 0x44FD +0x8EA3C9B0 0x4505 +0x8EA3C9B1 0x4501 +0x8EA3C9B2 0x84BD +0x8EA3C9B3 0x8495 +0x8EA3C9B4 0x4509 +0x8EA3C9B5 0x8492 +0x8EA3C9B6 0x84C3 +0x8EA3C9B7 0x450C +0x8EA3C9B8 0x8496 +0x8EA3C9B9 0x84A5 +0x8EA3C9BA 0x84B5 +0x8EA3C9BB 0x84B3 +0x8EA3C9BC 0x84A3 +0x8EA3C9BD 0x84E4 +0x8EA3C9BE 0x84D8 +0x8EA3C9BF 0x84D5 +0x8EA3C9C0 0x450D +0x8EA3C9C1 0x84B7 +0x8EA3C9C2 0x84AD +0x8EA3C9C3 0x84DA +0x8EA3C9C4 0x8493 +0x8EA3C9C5 0x8736 +0x8EA3C9C6 0x45C0 +0x8EA3C9C7 0x45C5 +0x8EA3C9C8 0x45C9 +0x8EA3C9C9 0x873D +0x8EA3C9CA 0x872B +0x8EA3C9CB 0x8747 +0x8EA3C9CC 0x8739 +0x8EA3C9CD 0x45D5 +0x8EA3C9CE 0x8745 +0x8EA3C9CF 0x871D +0x8EA3C9D0 0x4641 +0x8EA3C9D1 0x88FF +0x8EA3C9D2 0x88EA +0x8EA3C9D3 0x4633 +0x8EA3C9D4 0x88F5 +0x8EA3C9D5 0x463A +0x8EA3C9D6 0x8900 +0x8EA3C9D7 0x88ED +0x8EA3C9D8 0x8903 +0x8EA3C9D9 0x88E9 +0x8EA3C9DA 0x4640 +0x8EA3C9DB 0x4642 +0x8EA3C9DC 0x89EA +0x8EA3C9DD 0x46E8 +0x8EA3C9DE 0x8A9B +0x8EA3C9DF 0x8A8E +0x8EA3C9E0 0x8AA2 +0x8EA3C9E1 0x46E4 +0x8EA3C9E2 0x8A9C +0x8EA3C9E3 0x8A94 +0x8EA3C9E4 0x8A90 +0x8EA3C9E5 0x8AA9 +0x8EA3C9E6 0x8AAC +0x8EA3C9E7 0x46E7 +0x8EA3C9E8 0x8A9F +0x8EA3C9E9 0x46E6 +0x8EA3C9EA 0x46E1 +0x8EA3C9EB 0x8A9D +0x8EA3C9EC 0x4739 +0x8EA3C9ED 0x8C67 +0x8EA3C9EE 0x475C +0x8EA3C9EF 0x4775 +0x8EA3C9F0 0x8CD0 +0x8EA3C9F1 0x8CD6 +0x8EA3C9F2 0x8CD4 +0x8EA3C9F3 0x8D98 +0x8EA3C9F4 0x8D9A +0x8EA3C9F5 0x8D97 +0x8EA3C9F6 0x47AE +0x8EA3C9F7 0x47B0 +0x8EA3C9F8 0x47FA +0x8EA3C9F9 0x8E0B +0x8EA3C9FA 0x8E08 +0x8EA3C9FB 0x8E01 +0x8EA3C9FC 0x8EB4 +0x8EA3C9FD 0x8EB3 +0x8EA3C9FE 0x485B +0x8EA3CAA1 0x8FA1 +0x8EA3CAA2 0x8FA2 +0x8EA3CAA3 0x48A5 +0x8EA3CAA4 0x905A +0x8EA3CAA5 0x48A2 +0x8EA3CAA6 0x9061 +0x8EA3CAA7 0x905F +0x8EA3CAA8 0x48DB +0x8EA3CAA9 0x48DA +0x8EA3CAAA 0x9125 +0x8EA3CAAB 0x917B +0x8EA3CAAC 0x9176 +0x8EA3CAAD 0x917C +0x8EA3CAAE 0x4924 +0x8EA3CAAF 0x9289 +0x8EA3CAB0 0x92F6 +0x8EA3CAB1 0x92B1 +0x8EA3CAB2 0x92AD +0x8EA3CAB3 0x9292 +0x8EA3CAB4 0x9281 +0x8EA3CAB5 0x9284 +0x8EA3CAB6 0x4926 +0x8EA3CAB7 0x92AE +0x8EA3CAB8 0x9290 +0x8EA3CAB9 0x929E +0x8EA3CABA 0x4998 +0x8EA3CABB 0x4996 +0x8EA3CABC 0x499A +0x8EA3CABD 0x95A2 +0x8EA3CABE 0x95A7 +0x8EA3CABF 0x4997 +0x8EA3CAC0 0x49E1 +0x8EA3CAC1 0x49E0 +0x8EA3CAC2 0x49E3 +0x8EA3CAC3 0x49E2 +0x8EA3CAC4 0x96A0 +0x8EA3CAC5 0x969D +0x8EA3CAC6 0x969F +0x8EA3CAC7 0x96D0 +0x8EA3CAC8 0x49FB +0x8EA3CAC9 0x96D1 +0x8EA3CACA 0x4A12 +0x8EA3CACB 0x4A14 +0x8EA3CACC 0x9759 +0x8EA3CACD 0x4A45 +0x8EA3CACE 0x9764 +0x8EA3CACF 0x4A5C +0x8EA3CAD0 0x4A5D +0x8EA3CAD1 0x4AB8 +0x8EA3CAD2 0x9819 +0x8EA3CAD3 0x4ABA +0x8EA3CAD4 0x9814 +0x8EA3CAD5 0x9815 +0x8EA3CAD6 0x981A +0x8EA3CAD7 0x4B03 +0x8EA3CAD8 0x4B35 +0x8EA3CAD9 0x4B36 +0x8EA3CADA 0x4B39 +0x8EA3CADB 0x9906 +0x8EA3CADC 0x4B2D +0x8EA3CADD 0x98F8 +0x8EA3CADE 0x9901 +0x8EA3CADF 0x4B7A +0x8EA3CAE0 0x99BE +0x8EA3CAE1 0x99BC +0x8EA3CAE2 0x99B7 +0x8EA3CAE3 0x99B6 +0x8EA3CAE4 0x99C0 +0x8EA3CAE5 0x4B78 +0x8EA3CAE6 0x99B8 +0x8EA3CAE7 0x4B7B +0x8EA3CAE8 0x4B7C +0x8EA3CAE9 0x4B7E +0x8EA3CAEA 0x99C4 +0x8EA3CAEB 0x4B7D +0x8EA3CAEC 0x99BF +0x8EA3CAED 0x4BC9 +0x8EA3CAEE 0x9ADA +0x8EA3CAEF 0x9AE4 +0x8EA3CAF0 0x9AE9 +0x8EA3CAF1 0x9AE8 +0x8EA3CAF2 0x9AEA +0x8EA3CAF3 0x9AE5 +0x8EA3CAF4 0x4BF3 +0x8EA3CAF5 0x9B26 +0x8EA3CAF6 0x4C1A +0x8EA3CAF7 0x4C19 +0x8EA3CAF8 0x9B40 +0x8EA3CAF9 0x4C1F +0x8EA3CAFA 0x4CA6 +0x8EA3CAFB 0x4CA7 +0x8EA3CAFC 0x4CA8 +0x8EA3CAFD 0x4CAB +0x8EA3CAFE 0x4CA9 +0x8EA3CBA1 0x4D2E +0x8EA3CBA2 0x9EBD +0x8EA3CBA3 0x4D5E +0x8EA3CBA4 0x3495 +0x8EA3CBA5 0x3493 +0x8EA3CBA6 0x3492 +0x8EA3CBA7 0x510E +0x8EA3CBA8 0x3496 +0x8EA3CBA9 0x50F7 +0x8EA3CBAA 0x3497 +0x8EA3CBAB 0x50FC +0x8EA3CBAC 0x510D +0x8EA3CBAD 0x5101 +0x8EA3CBAE 0x51DA +0x8EA3CBAF 0x51D9 +0x8EA3CBB0 0x51DB +0x8EA3CBB1 0x5286 +0x8EA3CBB2 0x528E +0x8EA3CBB3 0x52EE +0x8EA3CBB4 0x5333 +0x8EA3CBB5 0x53B1 +0x8EA3CBB6 0x35F5 +0x8EA3CBB7 0x5647 +0x8EA3CBB8 0x562D +0x8EA3CBB9 0x5654 +0x8EA3CBBA 0x35EA +0x8EA3CBBB 0x564B +0x8EA3CBBC 0x5652 +0x8EA3CBBD 0x5631 +0x8EA3CBBE 0x5644 +0x8EA3CBBF 0x5656 +0x8EA3CBC0 0x5650 +0x8EA3CBC1 0x562B +0x8EA3CBC2 0x35F3 +0x8EA3CBC3 0x564D +0x8EA3CBC4 0x5637 +0x8EA3CBC5 0x564F +0x8EA3CBC6 0x58A2 +0x8EA3CBC7 0x58B7 +0x8EA3CBC8 0x3669 +0x8EA3CBC9 0x58B2 +0x8EA3CBCA 0x366B +0x8EA3CBCB 0x58AA +0x8EA3CBCC 0x58B5 +0x8EA3CBCD 0x58B0 +0x8EA3CBCE 0x366C +0x8EA3CBCF 0x58B4 +0x8EA3CBD0 0x58A4 +0x8EA3CBD1 0x58A7 +0x8EA3CBD2 0x3668 +0x8EA3CBD3 0x5926 +0x8EA3CBD4 0x5AFE +0x8EA3CBD5 0x3728 +0x8EA3CBD6 0x5B04 +0x8EA3CBD7 0x3726 +0x8EA3CBD8 0x5AFC +0x8EA3CBD9 0x3725 +0x8EA3CBDA 0x5B06 +0x8EA3CBDB 0x5B0A +0x8EA3CBDC 0x5AFA +0x8EA3CBDD 0x5B0D +0x8EA3CBDE 0x5B00 +0x8EA3CBDF 0x5B0E +0x8EA3CBE0 0x376B +0x8EA3CBE1 0x380F +0x8EA3CBE2 0x3808 +0x8EA3CBE3 0x5D91 +0x8EA3CBE4 0x380C +0x8EA3CBE5 0x5D8F +0x8EA3CBE6 0x5D90 +0x8EA3CBE7 0x5D98 +0x8EA3CBE8 0x5DA4 +0x8EA3CBE9 0x5D9B +0x8EA3CBEA 0x5DA3 +0x8EA3CBEB 0x5D96 +0x8EA3CBEC 0x5DE4 +0x8EA3CBED 0x5E5A +0x8EA3CBEE 0x3860 +0x8EA3CBEF 0x3862 +0x8EA3CBF0 0x5E5E +0x8EA3CBF1 0x3898 +0x8EA3CBF2 0x5FB8 +0x8EA3CBF3 0x6157 +0x8EA3CBF4 0x615C +0x8EA3CBF5 0x61A6 +0x8EA3CBF6 0x6195 +0x8EA3CBF7 0x6188 +0x8EA3CBF8 0x398A +0x8EA3CBF9 0x61A3 +0x8EA3CBFA 0x618F +0x8EA3CBFB 0x3984 +0x8EA3CBFC 0x6164 +0x8EA3CBFD 0x397F +0x8EA3CBFE 0x6159 +0x8EA3CCA1 0x6178 +0x8EA3CCA2 0x3982 +0x8EA3CCA3 0x6185 +0x8EA3CCA4 0x6187 +0x8EA3CCA5 0x619E +0x8EA3CCA6 0x3996 +0x8EA3CCA7 0x3989 +0x8EA3CCA8 0x6198 +0x8EA3CCA9 0x619C +0x8EA3CCAA 0x398D +0x8EA3CCAB 0x39BC +0x8EA3CCAC 0x622F +0x8EA3CCAD 0x6480 +0x8EA3CCAE 0x649B +0x8EA3CCAF 0x648E +0x8EA3CCB0 0x648D +0x8EA3CCB1 0x6494 +0x8EA3CCB2 0x64C6 +0x8EA3CCB3 0x3A44 +0x8EA3CCB4 0x64A8 +0x8EA3CCB5 0x6483 +0x8EA3CCB6 0x3A3C +0x8EA3CCB7 0x64B9 +0x8EA3CCB8 0x6486 +0x8EA3CCB9 0x64B4 +0x8EA3CCBA 0x64AF +0x8EA3CCBB 0x6491 +0x8EA3CCBC 0x3A4E +0x8EA3CCBD 0x64AA +0x8EA3CCBE 0x64A1 +0x8EA3CCBF 0x64A7 +0x8EA3CCC0 0x66B6 +0x8EA3CCC1 0x66B3 +0x8EA3CCC2 0x3B14 +0x8EA3CCC3 0x66BC +0x8EA3CCC4 0x66AC +0x8EA3CCC5 0x3B15 +0x8EA3CCC6 0x66AD +0x8EA3CCC7 0x6A0E +0x8EA3CCC8 0x3BCE +0x8EA3CCC9 0x6A1C +0x8EA3CCCA 0x6A1A +0x8EA3CCCB 0x3BE0 +0x8EA3CCCC 0x3BC2 +0x8EA3CCCD 0x6A0B +0x8EA3CCCE 0x3BBF +0x8EA3CCCF 0x69EF +0x8EA3CCD0 0x6A0C +0x8EA3CCD1 0x69F0 +0x8EA3CCD2 0x6A22 +0x8EA3CCD3 0x3BC4 +0x8EA3CCD4 0x69D8 +0x8EA3CCD5 0x3BCF +0x8EA3CCD6 0x6A12 +0x8EA3CCD7 0x69FA +0x8EA3CCD8 0x3BC8 +0x8EA3CCD9 0x6A2A +0x8EA3CCDA 0x3BCC +0x8EA3CCDB 0x6A10 +0x8EA3CCDC 0x3BCD +0x8EA3CCDD 0x3BC7 +0x8EA3CCDE 0x6A29 +0x8EA3CCDF 0x69F9 +0x8EA3CCE0 0x69EA +0x8EA3CCE1 0x6A2C +0x8EA3CCE2 0x6A24 +0x8EA3CCE3 0x4CB7 +0x8EA3CCE4 0x69E9 +0x8EA3CCE5 0x6B52 +0x8EA3CCE6 0x6B4F +0x8EA3CCE7 0x6B53 +0x8EA3CCE8 0x3C43 +0x8EA3CCE9 0x3CB6 +0x8EA3CCEA 0x6F10 +0x8EA3CCEB 0x6F65 +0x8EA3CCEC 0x6F75 +0x8EA3CCED 0x3D51 +0x8EA3CCEE 0x3D4A +0x8EA3CCEF 0x3D4D +0x8EA3CCF0 0x3D56 +0x8EA3CCF1 0x6FD0 +0x8EA3CCF2 0x3D53 +0x8EA3CCF3 0x6F5C +0x8EA3CCF4 0x6F3D +0x8EA3CCF5 0x6F71 +0x8EA3CCF6 0x3D59 +0x8EA3CCF7 0x6F91 +0x8EA3CCF8 0x6F0B +0x8EA3CCF9 0x6F79 +0x8EA3CCFA 0x6F81 +0x8EA3CCFB 0x6F8F +0x8EA3CCFC 0x3D4E +0x8EA3CCFD 0x6F59 +0x8EA3CCFE 0x6F74 +0x8EA3CDA1 0x3DEE +0x8EA3CDA2 0x71AE +0x8EA3CDA3 0x3DEC +0x8EA3CDA4 0x71A3 +0x8EA3CDA5 0x71AD +0x8EA3CDA6 0x3DEB +0x8EA3CDA7 0x3DEF +0x8EA3CDA8 0x71AB +0x8EA3CDA9 0x71A6 +0x8EA3CDAA 0x71A2 +0x8EA3CDAB 0x3DED +0x8EA3CDAC 0x52F2 +0x8EA3CDAD 0x7257 +0x8EA3CDAE 0x7255 +0x8EA3CDAF 0x7299 +0x8EA3CDB0 0x734B +0x8EA3CDB1 0x747A +0x8EA3CDB2 0x3EF2 +0x8EA3CDB3 0x3EEF +0x8EA3CDB4 0x3EF1 +0x8EA3CDB5 0x748C +0x8EA3CDB6 0x7484 +0x8EA3CDB7 0x3EED +0x8EA3CDB8 0x3EF0 +0x8EA3CDB9 0x7482 +0x8EA3CDBA 0x7493 +0x8EA3CDBB 0x747B +0x8EA3CDBC 0x3EEE +0x8EA3CDBD 0x7509 +0x8EA3CDBE 0x4C1B +0x8EA3CDBF 0x3F50 +0x8EA3CDC0 0x3F66 +0x8EA3CDC1 0x3684 +0x8EA3CDC2 0x3FB8 +0x8EA3CDC3 0x3FF6 +0x8EA3CDC4 0x778A +0x8EA3CDC5 0x4057 +0x8EA3CDC6 0x7790 +0x8EA3CDC7 0x405E +0x8EA3CDC8 0x78C6 +0x8EA3CDC9 0x78D3 +0x8EA3CDCA 0x78C0 +0x8EA3CDCB 0x78D2 +0x8EA3CDCC 0x78C7 +0x8EA3CDCD 0x78C2 +0x8EA3CDCE 0x4119 +0x8EA3CDCF 0x799F +0x8EA3CDD0 0x799D +0x8EA3CDD1 0x799E +0x8EA3CDD2 0x4170 +0x8EA3CDD3 0x7A41 +0x8EA3CDD4 0x416E +0x8EA3CDD5 0x7A38 +0x8EA3CDD6 0x7A3A +0x8EA3CDD7 0x7A42 +0x8EA3CDD8 0x4172 +0x8EA3CDD9 0x4176 +0x8EA3CDDA 0x7A3E +0x8EA3CDDB 0x7AB0 +0x8EA3CDDC 0x7BAE +0x8EA3CDDD 0x7BB3 +0x8EA3CDDE 0x4212 +0x8EA3CDDF 0x421F +0x8EA3CDE0 0x7BBF +0x8EA3CDE1 0x4211 +0x8EA3CDE2 0x4216 +0x8EA3CDE3 0x7BCD +0x8EA3CDE4 0x4219 +0x8EA3CDE5 0x7BB2 +0x8EA3CDE6 0x4224 +0x8EA3CDE7 0x4214 +0x8EA3CDE8 0x4225 +0x8EA3CDE9 0x4295 +0x8EA3CDEA 0x4296 +0x8EA3CDEB 0x4293 +0x8EA3CDEC 0x4294 +0x8EA3CDED 0x7CC4 +0x8EA3CDEE 0x7CCD +0x8EA3CDEF 0x7CC2 +0x8EA3CDF0 0x7CC6 +0x8EA3CDF1 0x7CC3 +0x8EA3CDF2 0x7CC9 +0x8EA3CDF3 0x7CC7 +0x8EA3CDF4 0x42A0 +0x8EA3CDF5 0x7DF8 +0x8EA3CDF6 0x42FB +0x8EA3CDF7 0x7DED +0x8EA3CDF8 0x7DE2 +0x8EA3CDF9 0x42FC +0x8EA3CDFA 0x4300 +0x8EA3CDFB 0x42F8 +0x8EA3CDFC 0x7DDC +0x8EA3CDFD 0x7E02 +0x8EA3CDFE 0x7E01 +0x8EA3CEA1 0x42F9 +0x8EA3CEA2 0x7DD6 +0x8EA3CEA3 0x4304 +0x8EA3CEA4 0x7DE4 +0x8EA3CEA5 0x7DFE +0x8EA3CEA6 0x4303 +0x8EA3CEA7 0x7E00 +0x8EA3CEA8 0x7DFC +0x8EA3CEA9 0x7DFD +0x8EA3CEAA 0x42F3 +0x8EA3CEAB 0x7DF5 +0x8EA3CEAC 0x7DFF +0x8EA3CEAD 0x42FA +0x8EA3CEAE 0x7DEB +0x8EA3CEAF 0x7DE5 +0x8EA3CEB0 0x7F78 +0x8EA3CEB1 0x7FAE +0x8EA3CEB2 0x7FE7 +0x8EA3CEB3 0x43BF +0x8EA3CEB4 0x8065 +0x8EA3CEB5 0x806A +0x8EA3CEB6 0x8066 +0x8EA3CEB7 0x8068 +0x8EA3CEB8 0x806B +0x8EA3CEB9 0x8194 +0x8EA3CEBA 0x81A1 +0x8EA3CEBB 0x8192 +0x8EA3CEBC 0x8196 +0x8EA3CEBD 0x8193 +0x8EA3CEBE 0x4479 +0x8EA3CEBF 0x4510 +0x8EA3CEC0 0x8501 +0x8EA3CEC1 0x4514 +0x8EA3CEC2 0x84F8 +0x8EA3CEC3 0x450E +0x8EA3CEC4 0x84F5 +0x8EA3CEC5 0x451A +0x8EA3CEC6 0x8504 +0x8EA3CEC7 0x4519 +0x8EA3CEC8 0x4521 +0x8EA3CEC9 0x4523 +0x8EA3CECA 0x451F +0x8EA3CECB 0x851B +0x8EA3CECC 0x8503 +0x8EA3CECD 0x8533 +0x8EA3CECE 0x8534 +0x8EA3CECF 0x84ED +0x8EA3CED0 0x4525 +0x8EA3CED1 0x452B +0x8EA3CED2 0x8535 +0x8EA3CED3 0x4516 +0x8EA3CED4 0x8505 +0x8EA3CED5 0x4522 +0x8EA3CED6 0x451B +0x8EA3CED7 0x45CE +0x8EA3CED8 0x45CF +0x8EA3CED9 0x877D +0x8EA3CEDA 0x45CB +0x8EA3CEDB 0x45D1 +0x8EA3CEDC 0x45CC +0x8EA3CEDD 0x8771 +0x8EA3CEDE 0x4617 +0x8EA3CEDF 0x885C +0x8EA3CEE0 0x88E6 +0x8EA3CEE1 0x890F +0x8EA3CEE2 0x891B +0x8EA3CEE3 0x4651 +0x8EA3CEE4 0x89A9 +0x8EA3CEE5 0x89A5 +0x8EA3CEE6 0x89EE +0x8EA3CEE7 0x8AB1 +0x8EA3CEE8 0x46ED +0x8EA3CEE9 0x8ACC +0x8EA3CEEA 0x8ACE +0x8EA3CEEB 0x46F4 +0x8EA3CEEC 0x8AB7 +0x8EA3CEED 0x46F1 +0x8EA3CEEE 0x8AB5 +0x8EA3CEEF 0x8AE9 +0x8EA3CEF0 0x8AB4 +0x8EA3CEF1 0x46F8 +0x8EA3CEF2 0x8AB3 +0x8EA3CEF3 0x8AC1 +0x8EA3CEF4 0x8AAF +0x8EA3CEF5 0x8ACA +0x8EA3CEF6 0x8AD0 +0x8EA3CEF7 0x472F +0x8EA3CEF8 0x475E +0x8EA3CEF9 0x475D +0x8EA3CEFA 0x8C8E +0x8EA3CEFB 0x4776 +0x8EA3CEFC 0x4777 +0x8EA3CEFD 0x8CE9 +0x8EA3CEFE 0x8CDB +0x8EA3CFA1 0x477E +0x8EA3CFA2 0x8CEB +0x8EA3CFA3 0x8DA4 +0x8EA3CFA4 0x47B6 +0x8EA3CFA5 0x8DA2 +0x8EA3CFA6 0x8D9D +0x8EA3CFA7 0x47B3 +0x8EA3CFA8 0x47FC +0x8EA3CFA9 0x4803 +0x8EA3CFAA 0x4800 +0x8EA3CFAB 0x8E2A +0x8EA3CFAC 0x8E28 +0x8EA3CFAD 0x480A +0x8EA3CFAE 0x4802 +0x8EA3CFAF 0x8EB8 +0x8EA3CFB0 0x8EB6 +0x8EA3CFB1 0x8EB9 +0x8EA3CFB2 0x8EB7 +0x8EA3CFB3 0x8F22 +0x8EA3CFB4 0x8F2B +0x8EA3CFB5 0x8F27 +0x8EA3CFB6 0x8F19 +0x8EA3CFB7 0x8FA4 +0x8EA3CFB8 0x4887 +0x8EA3CFB9 0x8FB3 +0x8EA3CFBA 0x48A6 +0x8EA3CFBB 0x9071 +0x8EA3CFBC 0x906A +0x8EA3CFBD 0x48A9 +0x8EA3CFBE 0x48DE +0x8EA3CFBF 0x9188 +0x8EA3CFC0 0x918C +0x8EA3CFC1 0x92BF +0x8EA3CFC2 0x92B8 +0x8EA3CFC3 0x92BE +0x8EA3CFC4 0x92DC +0x8EA3CFC5 0x92E5 +0x8EA3CFC6 0x492E +0x8EA3CFC7 0x492D +0x8EA3CFC8 0x92D4 +0x8EA3CFC9 0x92D6 +0x8EA3CFCA 0x4930 +0x8EA3CFCB 0x92DA +0x8EA3CFCC 0x92ED +0x8EA3CFCD 0x92F3 +0x8EA3CFCE 0x92DB +0x8EA3CFCF 0x492B +0x8EA3CFD0 0x92B9 +0x8EA3CFD1 0x92E2 +0x8EA3CFD2 0x92EB +0x8EA3CFD3 0x95AF +0x8EA3CFD4 0x499E +0x8EA3CFD5 0x95B2 +0x8EA3CFD6 0x95B3 +0x8EA3CFD7 0x499F +0x8EA3CFD8 0x49E5 +0x8EA3CFD9 0x49E4 +0x8EA3CFDA 0x96A3 +0x8EA3CFDB 0x96A5 +0x8EA3CFDC 0x49FD +0x8EA3CFDD 0x49FC +0x8EA3CFDE 0x4A17 +0x8EA3CFDF 0x4A19 +0x8EA3CFE0 0x970A +0x8EA3CFE1 0x4A18 +0x8EA3CFE2 0x9787 +0x8EA3CFE3 0x9789 +0x8EA3CFE4 0x978C +0x8EA3CFE5 0x97EF +0x8EA3CFE6 0x982A +0x8EA3CFE7 0x9822 +0x8EA3CFE8 0x4ABF +0x8EA3CFE9 0x981F +0x8EA3CFEA 0x4B3C +0x8EA3CFEB 0x9919 +0x8EA3CFEC 0x4B6B +0x8EA3CFED 0x99CA +0x8EA3CFEE 0x99DA +0x8EA3CFEF 0x4B83 +0x8EA3CFF0 0x4B81 +0x8EA3CFF1 0x4B80 +0x8EA3CFF2 0x99DE +0x8EA3CFF3 0x99C8 +0x8EA3CFF4 0x99E0 +0x8EA3CFF5 0x4BCA +0x8EA3CFF6 0x9AB6 +0x8EA3CFF7 0x9AB5 +0x8EA3CFF8 0x4BCE +0x8EA3CFF9 0x9AF4 +0x8EA3CFFA 0x4BF6 +0x8EA3CFFB 0x9B6B +0x8EA3CFFC 0x9B69 +0x8EA3CFFD 0x9B72 +0x8EA3CFFE 0x9B63 +0x8EA3D0A1 0x4C39 +0x8EA3D0A2 0x9D0D +0x8EA3D0A3 0x4CAE +0x8EA3D0A4 0x9D01 +0x8EA3D0A5 0x9D0C +0x8EA3D0A6 0x4CB5 +0x8EA3D0A7 0x9CF8 +0x8EA3D0A8 0x4CB3 +0x8EA3D0A9 0x4CB4 +0x8EA3D0AA 0x9CFE +0x8EA3D0AB 0x9D02 +0x8EA3D0AC 0x9E84 +0x8EA3D0AD 0x4D22 +0x8EA3D0AE 0x9EAB +0x8EA3D0AF 0x9EAA +0x8EA3D0B0 0x511D +0x8EA3D0B1 0x5116 +0x8EA3D0B2 0x3499 +0x8EA3D0B3 0x512B +0x8EA3D0B4 0x511E +0x8EA3D0B5 0x511B +0x8EA3D0B6 0x5290 +0x8EA3D0B7 0x5294 +0x8EA3D0B8 0x5314 +0x8EA3D0B9 0x20B89 +0x8EA3D0BA 0x3602 +0x8EA3D0BB 0x5667 +0x8EA3D0BC 0x3601 +0x8EA3D0BD 0x567B +0x8EA3D0BE 0x36A1 +0x8EA3D0BF 0x565F +0x8EA3D0C0 0x5661 +0x8EA3D0C1 0x35FD +0x8EA3D0C2 0x3673 +0x8EA3D0C3 0x3674 +0x8EA3D0C4 0x3670 +0x8EA3D0C5 0x3676 +0x8EA3D0C6 0x3675 +0x8EA3D0C7 0x3672 +0x8EA3D0C8 0x58C3 +0x8EA3D0C9 0x58CA +0x8EA3D0CA 0x58BB +0x8EA3D0CB 0x58C0 +0x8EA3D0CC 0x58C4 +0x8EA3D0CD 0x5901 +0x8EA3D0CE 0x5B1F +0x8EA3D0CF 0x5B18 +0x8EA3D0D0 0x5B11 +0x8EA3D0D1 0x5B15 +0x8EA3D0D2 0x3729 +0x8EA3D0D3 0x5B12 +0x8EA3D0D4 0x5B1C +0x8EA3D0D5 0x372A +0x8EA3D0D6 0x5B22 +0x8EA3D0D7 0x5B79 +0x8EA3D0D8 0x5DA6 +0x8EA3D0D9 0x3816 +0x8EA3D0DA 0x5DB3 +0x8EA3D0DB 0x5DAB +0x8EA3D0DC 0x5EEA +0x8EA3D0DD 0x3899 +0x8EA3D0DE 0x5F5B +0x8EA3D0DF 0x38D3 +0x8EA3D0E0 0x38F5 +0x8EA3D0E1 0x61B7 +0x8EA3D0E2 0x61CE +0x8EA3D0E3 0x61B9 +0x8EA3D0E4 0x61BD +0x8EA3D0E5 0x61CF +0x8EA3D0E6 0x61C0 +0x8EA3D0E7 0x6199 +0x8EA3D0E8 0x6197 +0x8EA3D0E9 0x3994 +0x8EA3D0EA 0x61BB +0x8EA3D0EB 0x61D0 +0x8EA3D0EC 0x61C4 +0x8EA3D0ED 0x6231 +0x8EA3D0EE 0x3A56 +0x8EA3D0EF 0x64D3 +0x8EA3D0F0 0x64C0 +0x8EA3D0F1 0x3A59 +0x8EA3D0F2 0x3A58 +0x8EA3D0F3 0x3A55 +0x8EA3D0F4 0x3A52 +0x8EA3D0F5 0x64DC +0x8EA3D0F6 0x64D1 +0x8EA3D0F7 0x64C8 +0x8EA3D0F8 0x3A57 +0x8EA3D0F9 0x64D5 +0x8EA3D0FA 0x66C3 +0x8EA3D0FB 0x3B1B +0x8EA3D0FC 0x3B1C +0x8EA3D0FD 0x66BF +0x8EA3D0FE 0x66C5 +0x8EA3D1A1 0x3B19 +0x8EA3D1A2 0x66CD +0x8EA3D1A3 0x66C1 +0x8EA3D1A4 0x6706 +0x8EA3D1A5 0x3B3F +0x8EA3D1A6 0x6724 +0x8EA3D1A7 0x6A63 +0x8EA3D1A8 0x6A42 +0x8EA3D1A9 0x6A52 +0x8EA3D1AA 0x3BDB +0x8EA3D1AB 0x6A43 +0x8EA3D1AC 0x6A33 +0x8EA3D1AD 0x3BE2 +0x8EA3D1AE 0x6A6C +0x8EA3D1AF 0x6A57 +0x8EA3D1B0 0x3BD7 +0x8EA3D1B1 0x6A4C +0x8EA3D1B2 0x6A6E +0x8EA3D1B3 0x3BDE +0x8EA3D1B4 0x3BE5 +0x8EA3D1B5 0x3BE4 +0x8EA3D1B6 0x3BE6 +0x8EA3D1B7 0x3BD6 +0x8EA3D1B8 0x6A37 +0x8EA3D1B9 0x3BDF +0x8EA3D1BA 0x6A71 +0x8EA3D1BB 0x6A4A +0x8EA3D1BC 0x6A36 +0x8EA3D1BD 0x3BDC +0x8EA3D1BE 0x6A53 +0x8EA3D1BF 0x3BDA +0x8EA3D1C0 0x6A45 +0x8EA3D1C1 0x6A70 +0x8EA3D1C2 0x3BD3 +0x8EA3D1C3 0x3BD0 +0x8EA3D1C4 0x6A5C +0x8EA3D1C5 0x6B58 +0x8EA3D1C6 0x6B57 +0x8EA3D1C7 0x3C86 +0x8EA3D1C8 0x3C87 +0x8EA3D1C9 0x3CAD +0x8EA3D1CA 0x3CB7 +0x8EA3D1CB 0x3D58 +0x8EA3D1CC 0x3D6A +0x8EA3D1CD 0x6FBB +0x8EA3D1CE 0x3D62 +0x8EA3D1CF 0x3D61 +0x8EA3D1D0 0x6FBE +0x8EA3D1D1 0x3D69 +0x8EA3D1D2 0x3D6C +0x8EA3D1D3 0x3D65 +0x8EA3D1D4 0x6FB5 +0x8EA3D1D5 0x6FD3 +0x8EA3D1D6 0x6F9F +0x8EA3D1D7 0x3D66 +0x8EA3D1D8 0x6FB7 +0x8EA3D1D9 0x6FF5 +0x8EA3D1DA 0x71B7 +0x8EA3D1DB 0x3DF5 +0x8EA3D1DC 0x71BB +0x8EA3D1DD 0x3DF4 +0x8EA3D1DE 0x71D1 +0x8EA3D1DF 0x3DF7 +0x8EA3D1E0 0x71BA +0x8EA3D1E1 0x3DF8 +0x8EA3D1E2 0x71B6 +0x8EA3D1E3 0x71CC +0x8EA3D1E4 0x3DFB +0x8EA3D1E5 0x3DFC +0x8EA3D1E6 0x71D3 +0x8EA3D1E7 0x749B +0x8EA3D1E8 0x3EF5 +0x8EA3D1E9 0x3EF8 +0x8EA3D1EA 0x7496 +0x8EA3D1EB 0x74A2 +0x8EA3D1EC 0x749D +0x8EA3D1ED 0x750A +0x8EA3D1EE 0x750E +0x8EA3D1EF 0x3F3C +0x8EA3D1F0 0x7581 +0x8EA3D1F1 0x762C +0x8EA3D1F2 0x7637 +0x8EA3D1F3 0x7636 +0x8EA3D1F4 0x763B +0x8EA3D1F5 0x3FC5 +0x8EA3D1F6 0x76A1 +0x8EA3D1F7 0x4062 +0x8EA3D1F8 0x4063 +0x8EA3D1F9 0x7798 +0x8EA3D1FA 0x4067 +0x8EA3D1FB 0x7796 +0x8EA3D1FC 0x4066 +0x8EA3D1FD 0x40D9 +0x8EA3D1FE 0x40DB +0x8EA3D2A1 0x78D6 +0x8EA3D2A2 0x78EB +0x8EA3D2A3 0x40D8 +0x8EA3D2A4 0x78DC +0x8EA3D2A5 0x411B +0x8EA3D2A6 0x79A5 +0x8EA3D2A7 0x79A9 +0x8EA3D2A8 0x9834 +0x8EA3D2A9 0x7A53 +0x8EA3D2AA 0x7A45 +0x8EA3D2AB 0x4179 +0x8EA3D2AC 0x7A4F +0x8EA3D2AD 0x417D +0x8EA3D2AE 0x7ABD +0x8EA3D2AF 0x7ABB +0x8EA3D2B0 0x7AF1 +0x8EA3D2B1 0x422C +0x8EA3D2B2 0x4237 +0x8EA3D2B3 0x7BEC +0x8EA3D2B4 0x7BED +0x8EA3D2B5 0x4230 +0x8EA3D2B6 0x429A +0x8EA3D2B7 0x7CD3 +0x8EA3D2B8 0x4A00 +0x8EA3D2B9 0x7CE1 +0x8EA3D2BA 0x4305 +0x8EA3D2BB 0x7E19 +0x8EA3D2BC 0x4307 +0x8EA3D2BD 0x4309 +0x8EA3D2BE 0x430A +0x8EA3D2BF 0x7E27 +0x8EA3D2C0 0x7E26 +0x8EA3D2C1 0x4379 +0x8EA3D2C2 0x43C2 +0x8EA3D2C3 0x806E +0x8EA3D2C4 0x81AF +0x8EA3D2C5 0x4438 +0x8EA3D2C6 0x4437 +0x8EA3D2C7 0x81AD +0x8EA3D2C8 0x4421 +0x8EA3D2C9 0x81AA +0x8EA3D2CA 0x8218 +0x8EA3D2CB 0x445E +0x8EA3D2CC 0x453D +0x8EA3D2CD 0x4537 +0x8EA3D2CE 0x4540 +0x8EA3D2CF 0x856F +0x8EA3D2D0 0x854C +0x8EA3D2D1 0x451D +0x8EA3D2D2 0x8542 +0x8EA3D2D3 0x4533 +0x8EA3D2D4 0x855C +0x8EA3D2D5 0x8570 +0x8EA3D2D6 0x855F +0x8EA3D2D7 0x4535 +0x8EA3D2D8 0x855A +0x8EA3D2D9 0x854B +0x8EA3D2DA 0x853F +0x8EA3D2DB 0x878A +0x8EA3D2DC 0x45D8 +0x8EA3D2DD 0x878B +0x8EA3D2DE 0x87A1 +0x8EA3D2DF 0x878E +0x8EA3D2E0 0x45DC +0x8EA3D2E1 0x45DE +0x8EA3D2E2 0x8799 +0x8EA3D2E3 0x885E +0x8EA3D2E4 0x885F +0x8EA3D2E5 0x8924 +0x8EA3D2E6 0x89A7 +0x8EA3D2E7 0x8AEA +0x8EA3D2E8 0x8AFD +0x8EA3D2E9 0x8AF9 +0x8EA3D2EA 0x8AE3 +0x8EA3D2EB 0x8AE5 +0x8EA3D2EC 0x46FA +0x8EA3D2ED 0x46FB +0x8EA3D2EE 0x8AEC +0x8EA3D2EF 0x473D +0x8EA3D2F0 0x473B +0x8EA3D2F1 0x473F +0x8EA3D2F2 0x475F +0x8EA3D2F3 0x8CF2 +0x8EA3D2F4 0x477F +0x8EA3D2F5 0x8CEF +0x8EA3D2F6 0x4784 +0x8EA3D2F7 0x8DA6 +0x8EA3D2F8 0x47BC +0x8EA3D2F9 0x4814 +0x8EA3D2FA 0x480F +0x8EA3D2FB 0x8E3B +0x8EA3D2FC 0x8E43 +0x8EA3D2FD 0x480E +0x8EA3D2FE 0x8E32 +0x8EA3D3A1 0x8F31 +0x8EA3D3A2 0x8F30 +0x8EA3D3A3 0x4860 +0x8EA3D3A4 0x8F2D +0x8EA3D3A5 0x8F3C +0x8EA3D3A6 0x8FA7 +0x8EA3D3A7 0x8FA5 +0x8EA3D3A8 0x48AB +0x8EA3D3A9 0x48AC +0x8EA3D3AA 0x48AA +0x8EA3D3AB 0x9137 +0x8EA3D3AC 0x9195 +0x8EA3D3AD 0x918E +0x8EA3D3AE 0x4904 +0x8EA3D3AF 0x9196 +0x8EA3D3B0 0x4908 +0x8EA3D3B1 0x9345 +0x8EA3D3B2 0x930A +0x8EA3D3B3 0x4933 +0x8EA3D3B4 0x4934 +0x8EA3D3B5 0x92FD +0x8EA3D3B6 0x9317 +0x8EA3D3B7 0x931C +0x8EA3D3B8 0x9307 +0x8EA3D3B9 0x9331 +0x8EA3D3BA 0x9332 +0x8EA3D3BB 0x932C +0x8EA3D3BC 0x9330 +0x8EA3D3BD 0x9303 +0x8EA3D3BE 0x9305 +0x8EA3D3BF 0x49A2 +0x8EA3D3C0 0x95C2 +0x8EA3D3C1 0x49A4 +0x8EA3D3C2 0x95B8 +0x8EA3D3C3 0x49A5 +0x8EA3D3C4 0x95C1 +0x8EA3D3C5 0x49A7 +0x8EA3D3C6 0x49A6 +0x8EA3D3C7 0x49E7 +0x8EA3D3C8 0x96AB +0x8EA3D3C9 0x96B7 +0x8EA3D3CA 0x49FF +0x8EA3D3CB 0x49FE +0x8EA3D3CC 0x9715 +0x8EA3D3CD 0x9714 +0x8EA3D3CE 0x4A1D +0x8EA3D3CF 0x4A1C +0x8EA3D3D0 0x970C +0x8EA3D3D1 0x9717 +0x8EA3D3D2 0x4A67 +0x8EA3D3D3 0x9793 +0x8EA3D3D4 0x4A94 +0x8EA3D3D5 0x97D2 +0x8EA3D3D6 0x4AC5 +0x8EA3D3D7 0x4AC8 +0x8EA3D3D8 0x9836 +0x8EA3D3D9 0x9831 +0x8EA3D3DA 0x9833 +0x8EA3D3DB 0x983C +0x8EA3D3DC 0x982E +0x8EA3D3DD 0x983A +0x8EA3D3DE 0x4AC9 +0x8EA3D3DF 0x983D +0x8EA3D3E0 0x4AC7 +0x8EA3D3E1 0x98B5 +0x8EA3D3E2 0x9922 +0x8EA3D3E3 0x9923 +0x8EA3D3E4 0x9920 +0x8EA3D3E5 0x991C +0x8EA3D3E6 0x991D +0x8EA3D3E7 0x4B6C +0x8EA3D3E8 0x99A0 +0x8EA3D3E9 0x4B8A +0x8EA3D3EA 0x99EF +0x8EA3D3EB 0x99E8 +0x8EA3D3EC 0x99EB +0x8EA3D3ED 0x4B88 +0x8EA3D3EE 0x4B87 +0x8EA3D3EF 0x4B86 +0x8EA3D3F0 0x99E1 +0x8EA3D3F1 0x99E6 +0x8EA3D3F2 0x4BCF +0x8EA3D3F3 0x4BD0 +0x8EA3D3F4 0x9AF8 +0x8EA3D3F5 0x9AF5 +0x8EA3D3F6 0x4C1C +0x8EA3D3F7 0x4C23 +0x8EA3D3F8 0x9B83 +0x8EA3D3F9 0x9B94 +0x8EA3D3FA 0x9B84 +0x8EA3D3FB 0x4C49 +0x8EA3D3FC 0x9B8B +0x8EA3D3FD 0x9B8F +0x8EA3D3FE 0x4C43 +0x8EA3D4A1 0x9B8C +0x8EA3D4A2 0x4C48 +0x8EA3D4A3 0x9B89 +0x8EA3D4A4 0x4C47 +0x8EA3D4A5 0x9B8E +0x8EA3D4A6 0x4C46 +0x8EA3D4A7 0x4C3F +0x8EA3D4A8 0x4C44 +0x8EA3D4A9 0x9D24 +0x8EA3D4AA 0x9D0F +0x8EA3D4AB 0x4CBE +0x8EA3D4AC 0x9D13 +0x8EA3D4AD 0x9D0A +0x8EA3D4AE 0x4CC2 +0x8EA3D4AF 0x4CBA +0x8EA3D4B0 0x4CBC +0x8EA3D4B1 0x4CC6 +0x8EA3D4B2 0x9D2A +0x8EA3D4B3 0x9D1A +0x8EA3D4B4 0x4CC8 +0x8EA3D4B5 0x9D27 +0x8EA3D4B6 0x9D16 +0x8EA3D4B7 0x9D21 +0x8EA3D4B8 0x4D23 +0x8EA3D4B9 0x9E85 +0x8EA3D4BA 0x9EAC +0x8EA3D4BB 0x9EC6 +0x8EA3D4BC 0x9EC5 +0x8EA3D4BD 0x9ED7 +0x8EA3D4BE 0x9F53 +0x8EA3D4BF 0x349D +0x8EA3D4C0 0x5128 +0x8EA3D4C1 0x5127 +0x8EA3D4C2 0x51DF +0x8EA3D4C3 0x3524 +0x8EA3D4C4 0x5335 +0x8EA3D4C5 0x53B3 +0x8EA3D4C6 0x3607 +0x8EA3D4C7 0x568A +0x8EA3D4C8 0x567D +0x8EA3D4C9 0x5689 +0x8EA3D4CA 0x3679 +0x8EA3D4CB 0x58CD +0x8EA3D4CC 0x58D0 +0x8EA3D4CD 0x3678 +0x8EA3D4CE 0x5B2B +0x8EA3D4CF 0x5B33 +0x8EA3D4D0 0x5B29 +0x8EA3D4D1 0x5B35 +0x8EA3D4D2 0x5B31 +0x8EA3D4D3 0x5B37 +0x8EA3D4D4 0x5C36 +0x8EA3D4D5 0x5DBE +0x8EA3D4D6 0x3819 +0x8EA3D4D7 0x5DB9 +0x8EA3D4D8 0x381C +0x8EA3D4D9 0x5DBB +0x8EA3D4DA 0x3818 +0x8EA3D4DB 0x61E2 +0x8EA3D4DC 0x61DB +0x8EA3D4DD 0x61DD +0x8EA3D4DE 0x61DC +0x8EA3D4DF 0x61DA +0x8EA3D4E0 0x2F8AF +0x8EA3D4E1 0x61D9 +0x8EA3D4E2 0x39BD +0x8EA3D4E3 0x3A5D +0x8EA3D4E4 0x64DF +0x8EA3D4E5 0x3A5A +0x8EA3D4E6 0x3A5E +0x8EA3D4E7 0x64E1 +0x8EA3D4E8 0x3A5C +0x8EA3D4E9 0x64EE +0x8EA3D4EA 0x3A5B +0x8EA3D4EB 0x65B5 +0x8EA3D4EC 0x66D4 +0x8EA3D4ED 0x66D5 +0x8EA3D4EE 0x3B21 +0x8EA3D4EF 0x66D0 +0x8EA3D4F0 0x66D1 +0x8EA3D4F1 0x66CE +0x8EA3D4F2 0x66D7 +0x8EA3D4F3 0x3B20 +0x8EA3D4F4 0x3B32 +0x8EA3D4F5 0x6A7D +0x8EA3D4F6 0x6A8A +0x8EA3D4F7 0x3BF2 +0x8EA3D4F8 0x6AA7 +0x8EA3D4F9 0x3BF5 +0x8EA3D4FA 0x6A99 +0x8EA3D4FB 0x6A82 +0x8EA3D4FC 0x6A88 +0x8EA3D4FD 0x3BEE +0x8EA3D4FE 0x3BEC +0x8EA3D5A1 0x6A86 +0x8EA3D5A2 0x3BEA +0x8EA3D5A3 0x6A98 +0x8EA3D5A4 0x6A9D +0x8EA3D5A5 0x3BED +0x8EA3D5A6 0x3BF3 +0x8EA3D5A7 0x6A8F +0x8EA3D5A8 0x3BF6 +0x8EA3D5A9 0x6AAA +0x8EA3D5AA 0x3C48 +0x8EA3D5AB 0x6B5D +0x8EA3D5AC 0x3C49 +0x8EA3D5AD 0x6C0A +0x8EA3D5AE 0x3D75 +0x8EA3D5AF 0x6FD7 +0x8EA3D5B0 0x6FD6 +0x8EA3D5B1 0x6FE5 +0x8EA3D5B2 0x3D6F +0x8EA3D5B3 0x3D7B +0x8EA3D5B4 0x3D73 +0x8EA3D5B5 0x6FD9 +0x8EA3D5B6 0x6FDA +0x8EA3D5B7 0x6FEA +0x8EA3D5B8 0x3D70 +0x8EA3D5B9 0x6FF6 +0x8EA3D5BA 0x24039 +0x8EA3D5BB 0x3D78 +0x8EA3D5BC 0x71E3 +0x8EA3D5BD 0x3DFE +0x8EA3D5BE 0x71E9 +0x8EA3D5BF 0x3E00 +0x8EA3D5C0 0x71EB +0x8EA3D5C1 0x71EF +0x8EA3D5C2 0x71F3 +0x8EA3D5C3 0x71EA +0x8EA3D5C4 0x3E01 +0x8EA3D5C5 0x2F921 +0x8EA3D5C6 0x3E55 +0x8EA3D5C7 0x3E56 +0x8EA3D5C8 0x3E9D +0x8EA3D5C9 0x7371 +0x8EA3D5CA 0x3EF9 +0x8EA3D5CB 0x74AE +0x8EA3D5CC 0x3EFF +0x8EA3D5CD 0x74B3 +0x8EA3D5CE 0x3EFD +0x8EA3D5CF 0x74AC +0x8EA3D5D0 0x3F43 +0x8EA3D5D1 0x3F41 +0x8EA3D5D2 0x7583 +0x8EA3D5D3 0x7645 +0x8EA3D5D4 0x764E +0x8EA3D5D5 0x7644 +0x8EA3D5D6 0x76A3 +0x8EA3D5D7 0x76A5 +0x8EA3D5D8 0x77A6 +0x8EA3D5D9 0x77A4 +0x8EA3D5DA 0x406F +0x8EA3D5DB 0x77A9 +0x8EA3D5DC 0x77AF +0x8EA3D5DD 0x408A +0x8EA3D5DE 0x40E5 +0x8EA3D5DF 0x40E6 +0x8EA3D5E0 0x78F0 +0x8EA3D5E1 0x78F8 +0x8EA3D5E2 0x78F1 +0x8EA3D5E3 0x417F +0x8EA3D5E4 0x7A49 +0x8EA3D5E5 0x41B5 +0x8EA3D5E6 0x41B6 +0x8EA3D5E7 0x41BB +0x8EA3D5E8 0x7AC2 +0x8EA3D5E9 0x7AF2 +0x8EA3D5EA 0x7AF3 +0x8EA3D5EB 0x7BFA +0x8EA3D5EC 0x4240 +0x8EA3D5ED 0x7BF6 +0x8EA3D5EE 0x7BFC +0x8EA3D5EF 0x7C18 +0x8EA3D5F0 0x7C08 +0x8EA3D5F1 0x7C12 +0x8EA3D5F2 0x429D +0x8EA3D5F3 0x429C +0x8EA3D5F4 0x7CDB +0x8EA3D5F5 0x7CDA +0x8EA3D5F6 0x430F +0x8EA3D5F7 0x4311 +0x8EA3D5F8 0x430D +0x8EA3D5F9 0x7E2C +0x8EA3D5FA 0x7E4D +0x8EA3D5FB 0x4314 +0x8EA3D5FC 0x4313 +0x8EA3D5FD 0x7F46 +0x8EA3D5FE 0x7FF6 +0x8EA3D6A1 0x802B +0x8EA3D6A2 0x8074 +0x8EA3D6A3 0x81B8 +0x8EA3D6A4 0x81C8 +0x8EA3D6A5 0x4482 +0x8EA3D6A6 0x4483 +0x8EA3D6A7 0x454D +0x8EA3D6A8 0x8592 +0x8EA3D6A9 0x8593 +0x8EA3D6AA 0x454F +0x8EA3D6AB 0x857F +0x8EA3D6AC 0x85AB +0x8EA3D6AD 0x8597 +0x8EA3D6AE 0x454C +0x8EA3D6AF 0x4551 +0x8EA3D6B0 0x85AC +0x8EA3D6B1 0x45EE +0x8EA3D6B2 0x45E8 +0x8EA3D6B3 0x4CCB +0x8EA3D6B4 0x87CE +0x8EA3D6B5 0x45EB +0x8EA3D6B6 0x87CD +0x8EA3D6B7 0x45E2 +0x8EA3D6B8 0x45E6 +0x8EA3D6B9 0x87C1 +0x8EA3D6BA 0x87B1 +0x8EA3D6BB 0x87C7 +0x8EA3D6BC 0x45EC +0x8EA3D6BD 0x8940 +0x8EA3D6BE 0x4659 +0x8EA3D6BF 0x893F +0x8EA3D6C0 0x8939 +0x8EA3D6C1 0x465D +0x8EA3D6C2 0x8943 +0x8EA3D6C3 0x4657 +0x8EA3D6C4 0x465B +0x8EA3D6C5 0x4656 +0x8EA3D6C6 0x89AB +0x8EA3D6C7 0x46FE +0x8EA3D6C8 0x8B1F +0x8EA3D6C9 0x8B09 +0x8EA3D6CA 0x8B0C +0x8EA3D6CB 0x4700 +0x8EA3D6CC 0x4701 +0x8EA3D6CD 0x8C40 +0x8EA3D6CE 0x4742 +0x8EA3D6CF 0x8C96 +0x8EA3D6D0 0x4760 +0x8EA3D6D1 0x8CF6 +0x8EA3D6D2 0x8CF7 +0x8EA3D6D3 0x481D +0x8EA3D6D4 0x8E46 +0x8EA3D6D5 0x8E4F +0x8EA3D6D6 0x483E +0x8EA3D6D7 0x4869 +0x8EA3D6D8 0x4865 +0x8EA3D6D9 0x8F3D +0x8EA3D6DA 0x8F41 +0x8EA3D6DB 0x9366 +0x8EA3D6DC 0x9378 +0x8EA3D6DD 0x935D +0x8EA3D6DE 0x9369 +0x8EA3D6DF 0x9374 +0x8EA3D6E0 0x937D +0x8EA3D6E1 0x936E +0x8EA3D6E2 0x9372 +0x8EA3D6E3 0x9373 +0x8EA3D6E4 0x9362 +0x8EA3D6E5 0x9348 +0x8EA3D6E6 0x9353 +0x8EA3D6E7 0x935F +0x8EA3D6E8 0x9368 +0x8EA3D6E9 0x4938 +0x8EA3D6EA 0x937F +0x8EA3D6EB 0x936B +0x8EA3D6EC 0x49AE +0x8EA3D6ED 0x95C4 +0x8EA3D6EE 0x49AD +0x8EA3D6EF 0x96AF +0x8EA3D6F0 0x96AD +0x8EA3D6F1 0x96B2 +0x8EA3D6F2 0x4A02 +0x8EA3D6F3 0x4A1F +0x8EA3D6F4 0x971A +0x8EA3D6F5 0x971B +0x8EA3D6F6 0x4A22 +0x8EA3D6F7 0x4A20 +0x8EA3D6F8 0x2F9F5 +0x8EA3D6F9 0x4A6C +0x8EA3D6FA 0x979B +0x8EA3D6FB 0x979F +0x8EA3D6FC 0x4A68 +0x8EA3D6FD 0x4A6D +0x8EA3D6FE 0x4A6E +0x8EA3D7A1 0x4AA0 +0x8EA3D7A2 0x4ACE +0x8EA3D7A3 0x4AD0 +0x8EA3D7A4 0x4AD1 +0x8EA3D7A5 0x4ACB +0x8EA3D7A6 0x9840 +0x8EA3D7A7 0x4AD2 +0x8EA3D7A8 0x9847 +0x8EA3D7A9 0x4AD3 +0x8EA3D7AA 0x98B7 +0x8EA3D7AB 0x4B20 +0x8EA3D7AC 0x4B4E +0x8EA3D7AD 0x4B4B +0x8EA3D7AE 0x4B72 +0x8EA3D7AF 0x4B70 +0x8EA3D7B0 0x99A2 +0x8EA3D7B1 0x4B92 +0x8EA3D7B2 0x4B8F +0x8EA3D7B3 0x9A00 +0x8EA3D7B4 0x99F3 +0x8EA3D7B5 0x4B90 +0x8EA3D7B6 0x29937 +0x8EA3D7B7 0x99F5 +0x8EA3D7B8 0x4BD9 +0x8EA3D7B9 0x4BD5 +0x8EA3D7BA 0x9ABD +0x8EA3D7BB 0x9B00 +0x8EA3D7BC 0x9B02 +0x8EA3D7BD 0x4BFA +0x8EA3D7BE 0x9B34 +0x8EA3D7BF 0x9B49 +0x8EA3D7C0 0x9B9F +0x8EA3D7C1 0x4C4B +0x8EA3D7C2 0x9BA3 +0x8EA3D7C3 0x9BCD +0x8EA3D7C4 0x9B99 +0x8EA3D7C5 0x9B9D +0x8EA3D7C6 0x4CD0 +0x8EA3D7C7 0x4CCE +0x8EA3D7C8 0x9D39 +0x8EA3D7C9 0x4CCF +0x8EA3D7CA 0x9D44 +0x8EA3D7CB 0x4CC4 +0x8EA3D7CC 0x4CCC +0x8EA3D7CD 0x9D35 +0x8EA3D7CE 0x4CD2 +0x8EA3D7CF 0x4D35 +0x8EA3D7D0 0x9EAF +0x8EA3D7D1 0x3E03 +0x8EA3D7D2 0x512F +0x8EA3D7D3 0x349E +0x8EA3D7D4 0x34AF +0x8EA3D7D5 0x9F8E +0x8EA3D7D6 0x360C +0x8EA3D7D7 0x569F +0x8EA3D7D8 0x569B +0x8EA3D7D9 0x569E +0x8EA3D7DA 0x5696 +0x8EA3D7DB 0x5694 +0x8EA3D7DC 0x56A0 +0x8EA3D7DD 0x367C +0x8EA3D7DE 0x5B3B +0x8EA3D7DF 0x3730 +0x8EA3D7E0 0x3731 +0x8EA3D7E1 0x5B3A +0x8EA3D7E2 0x5DC1 +0x8EA3D7E3 0x5F4D +0x8EA3D7E4 0x5F5D +0x8EA3D7E5 0x61F3 +0x8EA3D7E6 0x39A1 +0x8EA3D7E7 0x399E +0x8EA3D7E8 0x3A68 +0x8EA3D7E9 0x3A61 +0x8EA3D7EA 0x64F6 +0x8EA3D7EB 0x64E5 +0x8EA3D7EC 0x64EA +0x8EA3D7ED 0x64E7 +0x8EA3D7EE 0x6505 +0x8EA3D7EF 0x3A65 +0x8EA3D7F0 0x64F9 +0x8EA3D7F1 0x3A66 +0x8EA3D7F2 0x3A6A +0x8EA3D7F3 0x3AAB +0x8EA3D7F4 0x6AAB +0x8EA3D7F5 0x6AED +0x8EA3D7F6 0x6AB2 +0x8EA3D7F7 0x6AB0 +0x8EA3D7F8 0x6AB5 +0x8EA3D7F9 0x6ABE +0x8EA3D7FA 0x6AC1 +0x8EA3D7FB 0x6AC8 +0x8EA3D7FC 0x3BF9 +0x8EA3D7FD 0x6AC0 +0x8EA3D7FE 0x6ABC +0x8EA3D8A1 0x6AB1 +0x8EA3D8A2 0x6AC4 +0x8EA3D8A3 0x6ABF +0x8EA3D8A4 0x3C58 +0x8EA3D8A5 0x3C8A +0x8EA3D8A6 0x7008 +0x8EA3D8A7 0x7003 +0x8EA3D8A8 0x6FFD +0x8EA3D8A9 0x7010 +0x8EA3D8AA 0x7002 +0x8EA3D8AB 0x7013 +0x8EA3D8AC 0x3E04 +0x8EA3D8AD 0x71FA +0x8EA3D8AE 0x7200 +0x8EA3D8AF 0x74B9 +0x8EA3D8B0 0x74BC +0x8EA3D8B1 0x3F02 +0x8EA3D8B2 0x765B +0x8EA3D8B3 0x7651 +0x8EA3D8B4 0x764F +0x8EA3D8B5 0x76EB +0x8EA3D8B6 0x77B8 +0x8EA3D8B7 0x4079 +0x8EA3D8B8 0x77B9 +0x8EA3D8B9 0x77C1 +0x8EA3D8BA 0x77C0 +0x8EA3D8BB 0x77BE +0x8EA3D8BC 0x790B +0x8EA3D8BD 0x40EB +0x8EA3D8BE 0x7907 +0x8EA3D8BF 0x790A +0x8EA3D8C0 0x7908 +0x8EA3D8C1 0x40E9 +0x8EA3D8C2 0x790D +0x8EA3D8C3 0x7906 +0x8EA3D8C4 0x7915 +0x8EA3D8C5 0x79AF +0x8EA3D8C6 0x4120 +0x8EA3D8C7 0x4121 +0x8EA3D8C8 0x4181 +0x8EA3D8C9 0x7AF5 +0x8EA3D8CA 0x424D +0x8EA3D8CB 0x4259 +0x8EA3D8CC 0x7C2E +0x8EA3D8CD 0x4258 +0x8EA3D8CE 0x7C1B +0x8EA3D8CF 0x25CD1 +0x8EA3D8D0 0x7C1A +0x8EA3D8D1 0x7C24 +0x8EA3D8D2 0x42A5 +0x8EA3D8D3 0x42A9 +0x8EA3D8D4 0x7CE6 +0x8EA3D8D5 0x7CE3 +0x8EA3D8D6 0x431A +0x8EA3D8D7 0x4319 +0x8EA3D8D8 0x7E5D +0x8EA3D8D9 0x7E4F +0x8EA3D8DA 0x7E66 +0x8EA3D8DB 0x7E5B +0x8EA3D8DC 0x7F47 +0x8EA3D8DD 0x7FB4 +0x8EA3D8DE 0x4396 +0x8EA3D8DF 0x4398 +0x8EA3D8E0 0x4397 +0x8EA3D8E1 0x7FFA +0x8EA3D8E2 0x802E +0x8EA3D8E3 0x265DF +0x8EA3D8E4 0x43C8 +0x8EA3D8E5 0x81CE +0x8EA3D8E6 0x4443 +0x8EA3D8E7 0x4445 +0x8EA3D8E8 0x8219 +0x8EA3D8E9 0x4552 +0x8EA3D8EA 0x4557 +0x8EA3D8EB 0x85CC +0x8EA3D8EC 0x85B2 +0x8EA3D8ED 0x4555 +0x8EA3D8EE 0x85BB +0x8EA3D8EF 0x85C1 +0x8EA3D8F0 0x4556 +0x8EA3D8F1 0x4558 +0x8EA3D8F2 0x45F2 +0x8EA3D8F3 0x87E9 +0x8EA3D8F4 0x87EE +0x8EA3D8F5 0x87F0 +0x8EA3D8F6 0x87D6 +0x8EA3D8F7 0x880E +0x8EA3D8F8 0x87DA +0x8EA3D8F9 0x8948 +0x8EA3D8FA 0x894A +0x8EA3D8FB 0x894E +0x8EA3D8FC 0x894D +0x8EA3D8FD 0x89B1 +0x8EA3D8FE 0x89B0 +0x8EA3D9A1 0x89B3 +0x8EA3D9A2 0x4707 +0x8EA3D9A3 0x8B38 +0x8EA3D9A4 0x8B32 +0x8EA3D9A5 0x4708 +0x8EA3D9A6 0x8B2D +0x8EA3D9A7 0x470A +0x8EA3D9A8 0x8B34 +0x8EA3D9A9 0x431B +0x8EA3D9AA 0x8B29 +0x8EA3D9AB 0x8C74 +0x8EA3D9AC 0x4761 +0x8EA3D9AD 0x4762 +0x8EA3D9AE 0x8D03 +0x8EA3D9AF 0x47C2 +0x8EA3D9B0 0x47C6 +0x8EA3D9B1 0x8DA9 +0x8EA3D9B2 0x8E58 +0x8EA3D9B3 0x481E +0x8EA3D9B4 0x4825 +0x8EA3D9B5 0x8EBF +0x8EA3D9B6 0x8EC1 +0x8EA3D9B7 0x8F4A +0x8EA3D9B8 0x8FAC +0x8EA3D9B9 0x48B0 +0x8EA3D9BA 0x9089 +0x8EA3D9BB 0x913D +0x8EA3D9BC 0x913C +0x8EA3D9BD 0x91A9 +0x8EA3D9BE 0x93A0 +0x8EA3D9BF 0x493D +0x8EA3D9C0 0x9390 +0x8EA3D9C1 0x493E +0x8EA3D9C2 0x9393 +0x8EA3D9C3 0x938B +0x8EA3D9C4 0x93AD +0x8EA3D9C5 0x93BB +0x8EA3D9C6 0x93B8 +0x8EA3D9C7 0x4946 +0x8EA3D9C8 0x4945 +0x8EA3D9C9 0x939C +0x8EA3D9CA 0x95D8 +0x8EA3D9CB 0x95D7 +0x8EA3D9CC 0x4A03 +0x8EA3D9CD 0x4A26 +0x8EA3D9CE 0x4A27 +0x8EA3D9CF 0x975D +0x8EA3D9D0 0x97A9 +0x8EA3D9D1 0x97DA +0x8EA3D9D2 0x4A98 +0x8EA3D9D3 0x4AAD +0x8EA3D9D4 0x4AD5 +0x8EA3D9D5 0x4ADA +0x8EA3D9D6 0x9854 +0x8EA3D9D7 0x4AD9 +0x8EA3D9D8 0x9855 +0x8EA3D9D9 0x984B +0x8EA3D9DA 0x4ADD +0x8EA3D9DB 0x983F +0x8EA3D9DC 0x98B9 +0x8EA3D9DD 0x4B15 +0x8EA3D9DE 0x4B16 +0x8EA3D9DF 0x4B17 +0x8EA3D9E0 0x4B21 +0x8EA3D9E1 0x9938 +0x8EA3D9E2 0x9936 +0x8EA3D9E3 0x9940 +0x8EA3D9E4 0x4B4C +0x8EA3D9E5 0x993B +0x8EA3D9E6 0x9939 +0x8EA3D9E7 0x99A4 +0x8EA3D9E8 0x4B96 +0x8EA3D9E9 0x4B98 +0x8EA3D9EA 0x9A08 +0x8EA3D9EB 0x9A0C +0x8EA3D9EC 0x4B9B +0x8EA3D9ED 0x9A10 +0x8EA3D9EE 0x4BFF +0x8EA3D9EF 0x9B07 +0x8EA3D9F0 0x4C25 +0x8EA3D9F1 0x9BD2 +0x8EA3D9F2 0x4C4F +0x8EA3D9F3 0x9BC2 +0x8EA3D9F4 0x9BBB +0x8EA3D9F5 0x9BCC +0x8EA3D9F6 0x9BCB +0x8EA3D9F7 0x4C56 +0x8EA3D9F8 0x4C54 +0x8EA3D9F9 0x9D4D +0x8EA3D9FA 0x9D63 +0x8EA3D9FB 0x9D4E +0x8EA3D9FC 0x4CD8 +0x8EA3D9FD 0x9D50 +0x8EA3D9FE 0x9D55 +0x8EA3DAA1 0x4CD7 +0x8EA3DAA2 0x9D5E +0x8EA3DAA3 0x4D26 +0x8EA3DAA4 0x9E90 +0x8EA3DAA5 0x9EB2 +0x8EA3DAA6 0x9EB1 +0x8EA3DAA7 0x4D38 +0x8EA3DAA8 0x9ECA +0x8EA3DAA9 0x9F02 +0x8EA3DAAA 0x9F27 +0x8EA3DAAB 0x9F26 +0x8EA3DAAC 0x4D8A +0x8EA3DAAD 0x56AF +0x8EA3DAAE 0x58E0 +0x8EA3DAAF 0x58DC +0x8EA3DAB0 0x3734 +0x8EA3DAB1 0x5B39 +0x8EA3DAB2 0x3735 +0x8EA3DAB3 0x2F86A +0x8EA3DAB4 0x5B7C +0x8EA3DAB5 0x5BF3 +0x8EA3DAB6 0x2F870 +0x8EA3DAB7 0x37A1 +0x8EA3DAB8 0x5C6B +0x8EA3DAB9 0x5DC4 +0x8EA3DABA 0x650B +0x8EA3DABB 0x6508 +0x8EA3DABC 0x650A +0x8EA3DABD 0x3A6C +0x8EA3DABE 0x3A6D +0x8EA3DABF 0x65DC +0x8EA3DAC0 0x3B29 +0x8EA3DAC1 0x3B2A +0x8EA3DAC2 0x66E1 +0x8EA3DAC3 0x66DF +0x8EA3DAC4 0x6ACE +0x8EA3DAC5 0x6AD4 +0x8EA3DAC6 0x6AE3 +0x8EA3DAC7 0x6AD7 +0x8EA3DAC8 0x6AE2 +0x8EA3DAC9 0x3C00 +0x8EA3DACA 0x3C08 +0x8EA3DACB 0x3C06 +0x8EA3DACC 0x3C05 +0x8EA3DACD 0x6AD8 +0x8EA3DACE 0x6AD5 +0x8EA3DACF 0x6AD2 +0x8EA3DAD0 0x3CB1 +0x8EA3DAD1 0x3D88 +0x8EA3DAD2 0x701E +0x8EA3DAD3 0x702C +0x8EA3DAD4 0x7025 +0x8EA3DAD5 0x6FF3 +0x8EA3DAD6 0x7204 +0x8EA3DAD7 0x7208 +0x8EA3DAD8 0x7215 +0x8EA3DAD9 0x3E09 +0x8EA3DADA 0x74C4 +0x8EA3DADB 0x74C9 +0x8EA3DADC 0x74C7 +0x8EA3DADD 0x74C8 +0x8EA3DADE 0x76A9 +0x8EA3DADF 0x77C6 +0x8EA3DAE0 0x77C5 +0x8EA3DAE1 0x7918 +0x8EA3DAE2 0x791A +0x8EA3DAE3 0x7920 +0x8EA3DAE4 0x4122 +0x8EA3DAE5 0x7A66 +0x8EA3DAE6 0x7A64 +0x8EA3DAE7 0x7A6A +0x8EA3DAE8 0x41D5 +0x8EA3DAE9 0x4261 +0x8EA3DAEA 0x425D +0x8EA3DAEB 0x4262 +0x8EA3DAEC 0x424F +0x8EA3DAED 0x4260 +0x8EA3DAEE 0x7C35 +0x8EA3DAEF 0x7C34 +0x8EA3DAF0 0x42AA +0x8EA3DAF1 0x4322 +0x8EA3DAF2 0x7E6C +0x8EA3DAF3 0x4321 +0x8EA3DAF4 0x7E6E +0x8EA3DAF5 0x7E71 +0x8EA3DAF6 0x4446 +0x8EA3DAF7 0x81D4 +0x8EA3DAF8 0x81D6 +0x8EA3DAF9 0x821A +0x8EA3DAFA 0x8262 +0x8EA3DAFB 0x8265 +0x8EA3DAFC 0x8276 +0x8EA3DAFD 0x85DB +0x8EA3DAFE 0x85D6 +0x8EA3DBA1 0x4562 +0x8EA3DBA2 0x85E7 +0x8EA3DBA3 0x4560 +0x8EA3DBA4 0x4564 +0x8EA3DBA5 0x85F4 +0x8EA3DBA6 0x2F9B6 +0x8EA3DBA7 0x87FD +0x8EA3DBA8 0x87D5 +0x8EA3DBA9 0x8807 +0x8EA3DBAA 0x45F6 +0x8EA3DBAB 0x880F +0x8EA3DBAC 0x87F8 +0x8EA3DBAD 0x2F9C1 +0x8EA3DBAE 0x4619 +0x8EA3DBAF 0x8987 +0x8EA3DBB0 0x4691 +0x8EA3DBB1 0x89B5 +0x8EA3DBB2 0x89F5 +0x8EA3DBB3 0x470D +0x8EA3DBB4 0x8B3F +0x8EA3DBB5 0x8B43 +0x8EA3DBB6 0x8B4C +0x8EA3DBB7 0x4765 +0x8EA3DBB8 0x8D0B +0x8EA3DBB9 0x8E6B +0x8EA3DBBA 0x8E68 +0x8EA3DBBB 0x8E70 +0x8EA3DBBC 0x8E75 +0x8EA3DBBD 0x8E77 +0x8EA3DBBE 0x483F +0x8EA3DBBF 0x8EC3 +0x8EA3DBC0 0x494B +0x8EA3DBC1 0x93E9 +0x8EA3DBC2 0x93EA +0x8EA3DBC3 0x93CB +0x8EA3DBC4 0x93C5 +0x8EA3DBC5 0x93C6 +0x8EA3DBC6 0x4948 +0x8EA3DBC7 0x93ED +0x8EA3DBC8 0x93D3 +0x8EA3DBC9 0x4952 +0x8EA3DBCA 0x93E5 +0x8EA3DBCB 0x494A +0x8EA3DBCC 0x4951 +0x8EA3DBCD 0x93DB +0x8EA3DBCE 0x93EB +0x8EA3DBCF 0x93E0 +0x8EA3DBD0 0x93C1 +0x8EA3DBD1 0x4950 +0x8EA3DBD2 0x494C +0x8EA3DBD3 0x95DD +0x8EA3DBD4 0x49EE +0x8EA3DBD5 0x4A04 +0x8EA3DBD6 0x4A06 +0x8EA3DBD7 0x4A2D +0x8EA3DBD8 0x4A2E +0x8EA3DBD9 0x4A2F +0x8EA3DBDA 0x4A7B +0x8EA3DBDB 0x4A78 +0x8EA3DBDC 0x4A77 +0x8EA3DBDD 0x97B2 +0x8EA3DBDE 0x97B4 +0x8EA3DBDF 0x97B1 +0x8EA3DBE0 0x97B5 +0x8EA3DBE1 0x97F2 +0x8EA3DBE2 0x4AA2 +0x8EA3DBE3 0x4AA1 +0x8EA3DBE4 0x4AE3 +0x8EA3DBE5 0x9856 +0x8EA3DBE6 0x4B1A +0x8EA3DBE7 0x4B19 +0x8EA3DBE8 0x4B57 +0x8EA3DBE9 0x9944 +0x8EA3DBEA 0x4B9E +0x8EA3DBEB 0x9A26 +0x8EA3DBEC 0x9A1F +0x8EA3DBED 0x9A18 +0x8EA3DBEE 0x9A21 +0x8EA3DBEF 0x9A17 +0x8EA3DBF0 0x4BDD +0x8EA3DBF1 0x9B09 +0x8EA3DBF2 0x4C05 +0x8EA3DBF3 0x4C28 +0x8EA3DBF4 0x9BC5 +0x8EA3DBF5 0x9BDF +0x8EA3DBF6 0x4C60 +0x8EA3DBF7 0x9BE3 +0x8EA3DBF8 0x4C66 +0x8EA3DBF9 0x9BE9 +0x8EA3DBFA 0x9BEE +0x8EA3DBFB 0x4C67 +0x8EA3DBFC 0x4C68 +0x8EA3DBFD 0x9D66 +0x8EA3DBFE 0x9D7A +0x8EA3DCA1 0x4CDE +0x8EA3DCA2 0x9D6E +0x8EA3DCA3 0x9D91 +0x8EA3DCA4 0x9D83 +0x8EA3DCA5 0x9D76 +0x8EA3DCA6 0x9D7E +0x8EA3DCA7 0x9D6D +0x8EA3DCA8 0x4CE1 +0x8EA3DCA9 0x9E95 +0x8EA3DCAA 0x9EE3 +0x8EA3DCAB 0x4D69 +0x8EA3DCAC 0x4D77 +0x8EA3DCAD 0x9F03 +0x8EA3DCAE 0x9F04 +0x8EA3DCAF 0x2FA19 +0x8EA3DCB0 0x9F17 +0x8EA3DCB1 0x34A6 +0x8EA3DCB2 0x5136 +0x8EA3DCB3 0x34A5 +0x8EA3DCB4 0x5336 +0x8EA3DCB5 0x3614 +0x8EA3DCB6 0x5B42 +0x8EA3DCB7 0x3736 +0x8EA3DCB8 0x3738 +0x8EA3DCB9 0x5B44 +0x8EA3DCBA 0x5B46 +0x8EA3DCBB 0x5B7E +0x8EA3DCBC 0x5DCA +0x8EA3DCBD 0x5DC8 +0x8EA3DCBE 0x5DCC +0x8EA3DCBF 0x5EF0 +0x8EA3DCC0 0x3A70 +0x8EA3DCC1 0x6585 +0x8EA3DCC2 0x66E5 +0x8EA3DCC3 0x66E7 +0x8EA3DCC4 0x3B2B +0x8EA3DCC5 0x3C11 +0x8EA3DCC6 0x3C0A +0x8EA3DCC7 0x6AF4 +0x8EA3DCC8 0x3C0D +0x8EA3DCC9 0x6AE9 +0x8EA3DCCA 0x3C16 +0x8EA3DCCB 0x3C10 +0x8EA3DCCC 0x3C09 +0x8EA3DCCD 0x3C0E +0x8EA3DCCE 0x3C7A +0x8EA3DCCF 0x703D +0x8EA3DCD0 0x3D8C +0x8EA3DCD1 0x7036 +0x8EA3DCD2 0x3D91 +0x8EA3DCD3 0x7216 +0x8EA3DCD4 0x3E0A +0x8EA3DCD5 0x7212 +0x8EA3DCD6 0x720F +0x8EA3DCD7 0x7217 +0x8EA3DCD8 0x7211 +0x8EA3DCD9 0x720B +0x8EA3DCDA 0x3E08 +0x8EA3DCDB 0x3E0B +0x8EA3DCDC 0x74CD +0x8EA3DCDD 0x74D0 +0x8EA3DCDE 0x74CC +0x8EA3DCDF 0x74CE +0x8EA3DCE0 0x74D1 +0x8EA3DCE1 0x3F07 +0x8EA3DCE2 0x7589 +0x8EA3DCE3 0x40F2 +0x8EA3DCE4 0x7A6F +0x8EA3DCE5 0x7C4B +0x8EA3DCE6 0x7C44 +0x8EA3DCE7 0x7C55 +0x8EA3DCE8 0x42AE +0x8EA3DCE9 0x4324 +0x8EA3DCEA 0x4326 +0x8EA3DCEB 0x4327 +0x8EA3DCEC 0x7E7F +0x8EA3DCED 0x8B71 +0x8EA3DCEE 0x4399 +0x8EA3DCEF 0x802F +0x8EA3DCF0 0x807A +0x8EA3DCF1 0x807B +0x8EA3DCF2 0x807C +0x8EA3DCF3 0x455F +0x8EA3DCF4 0x456A +0x8EA3DCF5 0x4571 +0x8EA3DCF6 0x85FC +0x8EA3DCF7 0x8610 +0x8EA3DCF8 0x8602 +0x8EA3DCF9 0x456C +0x8EA3DCFA 0x456F +0x8EA3DCFB 0x85EE +0x8EA3DCFC 0x8603 +0x8EA3DCFD 0x4568 +0x8EA3DCFE 0x860D +0x8EA3DDA1 0x8613 +0x8EA3DDA2 0x8608 +0x8EA3DDA3 0x860F +0x8EA3DDA4 0x8818 +0x8EA3DDA5 0x8812 +0x8EA3DDA6 0x4601 +0x8EA3DDA7 0x4668 +0x8EA3DDA8 0x8967 +0x8EA3DDA9 0x8965 +0x8EA3DDAA 0x89BB +0x8EA3DDAB 0x8B69 +0x8EA3DDAC 0x8B62 +0x8EA3DDAD 0x4713 +0x8EA3DDAE 0x8B6E +0x8EA3DDAF 0x4716 +0x8EA3DDB0 0x8B61 +0x8EA3DDB1 0x4718 +0x8EA3DDB2 0x8B64 +0x8EA3DDB3 0x8B4D +0x8EA3DDB4 0x8C51 +0x8EA3DDB5 0x4789 +0x8EA3DDB6 0x47C8 +0x8EA3DDB7 0x8E83 +0x8EA3DDB8 0x8EC6 +0x8EA3DDB9 0x4884 +0x8EA3DDBA 0x941F +0x8EA3DDBB 0x4954 +0x8EA3DDBC 0x9404 +0x8EA3DDBD 0x9417 +0x8EA3DDBE 0x9408 +0x8EA3DDBF 0x9405 +0x8EA3DDC0 0x4956 +0x8EA3DDC1 0x93F3 +0x8EA3DDC2 0x941E +0x8EA3DDC3 0x9402 +0x8EA3DDC4 0x941A +0x8EA3DDC5 0x941B +0x8EA3DDC6 0x9427 +0x8EA3DDC7 0x941C +0x8EA3DDC8 0x495A +0x8EA3DDC9 0x96B5 +0x8EA3DDCA 0x4A05 +0x8EA3DDCB 0x4A07 +0x8EA3DDCC 0x9733 +0x8EA3DDCD 0x4A31 +0x8EA3DDCE 0x9734 +0x8EA3DDCF 0x9731 +0x8EA3DDD0 0x97B8 +0x8EA3DDD1 0x97BA +0x8EA3DDD2 0x4AA3 +0x8EA3DDD3 0x97FC +0x8EA3DDD4 0x4AEB +0x8EA3DDD5 0x4B1C +0x8EA3DDD6 0x98C3 +0x8EA3DDD7 0x4B5A +0x8EA3DDD8 0x994D +0x8EA3DDD9 0x4B5B +0x8EA3DDDA 0x9A2F +0x8EA3DDDB 0x4BA6 +0x8EA3DDDC 0x4BAA +0x8EA3DDDD 0x4BA5 +0x8EA3DDDE 0x9AC9 +0x8EA3DDDF 0x4BE1 +0x8EA3DDE0 0x9AC8 +0x8EA3DDE1 0x9AC4 +0x8EA3DDE2 0x9B2A +0x8EA3DDE3 0x9B38 +0x8EA3DDE4 0x9B50 +0x8EA3DDE5 0x4C2A +0x8EA3DDE6 0x9C0A +0x8EA3DDE7 0x9BFB +0x8EA3DDE8 0x9C04 +0x8EA3DDE9 0x9BFC +0x8EA3DDEA 0x9BFE +0x8EA3DDEB 0x4C72 +0x8EA3DDEC 0x4C6F +0x8EA3DDED 0x4C73 +0x8EA3DDEE 0x9C02 +0x8EA3DDEF 0x9BF6 +0x8EA3DDF0 0x9C1B +0x8EA3DDF1 0x9BF9 +0x8EA3DDF2 0x9C15 +0x8EA3DDF3 0x9C10 +0x8EA3DDF4 0x9BFF +0x8EA3DDF5 0x9C00 +0x8EA3DDF6 0x9C0C +0x8EA3DDF7 0x4C6B +0x8EA3DDF8 0x4CE6 +0x8EA3DDF9 0x9D95 +0x8EA3DDFA 0x9DA5 +0x8EA3DDFB 0x4CE9 +0x8EA3DDFC 0x4CEC +0x8EA3DDFD 0x4CE8 +0x8EA3DDFE 0x4CF0 +0x8EA3DEA1 0x9E98 +0x8EA3DEA2 0x9EC1 +0x8EA3DEA3 0x4D8C +0x8EA3DEA4 0x9F5A +0x8EA3DEA5 0x5164 +0x8EA3DEA6 0x56BB +0x8EA3DEA7 0x3615 +0x8EA3DEA8 0x58E6 +0x8EA3DEA9 0x5B49 +0x8EA3DEAA 0x5BF7 +0x8EA3DEAB 0x3771 +0x8EA3DEAC 0x3826 +0x8EA3DEAD 0x5DD0 +0x8EA3DEAE 0x38C6 +0x8EA3DEAF 0x5FC2 +0x8EA3DEB0 0x39A8 +0x8EA3DEB1 0x6511 +0x8EA3DEB2 0x3A73 +0x8EA3DEB3 0x6AFF +0x8EA3DEB4 0x6AFE +0x8EA3DEB5 0x6AFD +0x8EA3DEB6 0x3C15 +0x8EA3DEB7 0x6B01 +0x8EA3DEB8 0x3D98 +0x8EA3DEB9 0x3D97 +0x8EA3DEBA 0x704B +0x8EA3DEBB 0x704D +0x8EA3DEBC 0x7047 +0x8EA3DEBD 0x74D3 +0x8EA3DEBE 0x7668 +0x8EA3DEBF 0x7667 +0x8EA3DEC0 0x3FD7 +0x8EA3DEC1 0x4080 +0x8EA3DEC2 0x77D1 +0x8EA3DEC3 0x7930 +0x8EA3DEC4 0x7932 +0x8EA3DEC5 0x792E +0x8EA3DEC6 0x4188 +0x8EA3DEC7 0x9F9D +0x8EA3DEC8 0x7AC9 +0x8EA3DEC9 0x7AC8 +0x8EA3DECA 0x4269 +0x8EA3DECB 0x7C56 +0x8EA3DECC 0x7C51 +0x8EA3DECD 0x426B +0x8EA3DECE 0x4329 +0x8EA3DECF 0x4328 +0x8EA3DED0 0x7E85 +0x8EA3DED1 0x7E89 +0x8EA3DED2 0x7E8E +0x8EA3DED3 0x7E84 +0x8EA3DED4 0x445F +0x8EA3DED5 0x826A +0x8EA3DED6 0x862B +0x8EA3DED7 0x862F +0x8EA3DED8 0x8628 +0x8EA3DED9 0x4574 +0x8EA3DEDA 0x8616 +0x8EA3DEDB 0x8615 +0x8EA3DEDC 0x861D +0x8EA3DEDD 0x881A +0x8EA3DEDE 0x4602 +0x8EA3DEDF 0x466A +0x8EA3DEE0 0x4694 +0x8EA3DEE1 0x89BC +0x8EA3DEE2 0x8B75 +0x8EA3DEE3 0x8B7C +0x8EA3DEE4 0x478A +0x8EA3DEE5 0x8D11 +0x8EA3DEE6 0x8D12 +0x8EA3DEE7 0x8F5C +0x8EA3DEE8 0x91BB +0x8EA3DEE9 0x4964 +0x8EA3DEEA 0x93F4 +0x8EA3DEEB 0x495E +0x8EA3DEEC 0x4961 +0x8EA3DEED 0x942D +0x8EA3DEEE 0x4965 +0x8EA3DEEF 0x4966 +0x8EA3DEF0 0x96E4 +0x8EA3DEF1 0x9737 +0x8EA3DEF2 0x9736 +0x8EA3DEF3 0x9767 +0x8EA3DEF4 0x97BE +0x8EA3DEF5 0x97BD +0x8EA3DEF6 0x97E2 +0x8EA3DEF7 0x9868 +0x8EA3DEF8 0x9866 +0x8EA3DEF9 0x98C8 +0x8EA3DEFA 0x98CA +0x8EA3DEFB 0x98C7 +0x8EA3DEFC 0x98DC +0x8EA3DEFD 0x4B5F +0x8EA3DEFE 0x994F +0x8EA3DFA1 0x99A9 +0x8EA3DFA2 0x9A3C +0x8EA3DFA3 0x4BAF +0x8EA3DFA4 0x9A3B +0x8EA3DFA5 0x9ACE +0x8EA3DFA6 0x4C0D +0x8EA3DFA7 0x9B14 +0x8EA3DFA8 0x9B53 +0x8EA3DFA9 0x4C7C +0x8EA3DFAA 0x9C2E +0x8EA3DFAB 0x4C7A +0x8EA3DFAC 0x9C1F +0x8EA3DFAD 0x4C76 +0x8EA3DFAE 0x4C79 +0x8EA3DFAF 0x4C7D +0x8EA3DFB0 0x4C77 +0x8EA3DFB1 0x9DB0 +0x8EA3DFB2 0x9DBD +0x8EA3DFB3 0x4CF6 +0x8EA3DFB4 0x4CF1 +0x8EA3DFB5 0x9DAE +0x8EA3DFB6 0x9DC4 +0x8EA3DFB7 0x9E7B +0x8EA3DFB8 0x400B +0x8EA3DFB9 0x4D29 +0x8EA3DFBA 0x9E9E +0x8EA3DFBB 0x4D6F +0x8EA3DFBC 0x9F05 +0x8EA3DFBD 0x4D9A +0x8EA3DFBE 0x9F69 +0x8EA3DFBF 0x9FA1 +0x8EA3DFC0 0x56C7 +0x8EA3DFC1 0x571D +0x8EA3DFC2 0x5B4A +0x8EA3DFC3 0x5DD3 +0x8EA3DFC4 0x3869 +0x8EA3DFC5 0x5F72 +0x8EA3DFC6 0x6202 +0x8EA3DFC7 0x39AB +0x8EA3DFC8 0x6235 +0x8EA3DFC9 0x6527 +0x8EA3DFCA 0x651E +0x8EA3DFCB 0x651F +0x8EA3DFCC 0x3B2C +0x8EA3DFCD 0x3B2D +0x8EA3DFCE 0x6B07 +0x8EA3DFCF 0x6B06 +0x8EA3DFD0 0x3C17 +0x8EA3DFD1 0x3D9A +0x8EA3DFD2 0x7054 +0x8EA3DFD3 0x721C +0x8EA3DFD4 0x7220 +0x8EA3DFD5 0x7AF8 +0x8EA3DFD6 0x426E +0x8EA3DFD7 0x7C5D +0x8EA3DFD8 0x7C58 +0x8EA3DFD9 0x432C +0x8EA3DFDA 0x7E92 +0x8EA3DFDB 0x7F4E +0x8EA3DFDC 0x43CA +0x8EA3DFDD 0x4578 +0x8EA3DFDE 0x4606 +0x8EA3DFDF 0x8827 +0x8EA3DFE0 0x4607 +0x8EA3DFE1 0x8B81 +0x8EA3DFE2 0x8B83 +0x8EA3DFE3 0x4720 +0x8EA3DFE4 0x8C44 +0x8EA3DFE5 0x4753 +0x8EA3DFE6 0x47CE +0x8EA3DFE7 0x487A +0x8EA3DFE8 0x4879 +0x8EA3DFE9 0x9442 +0x8EA3DFEA 0x944D +0x8EA3DFEB 0x9454 +0x8EA3DFEC 0x944E +0x8EA3DFED 0x496B +0x8EA3DFEE 0x9443 +0x8EA3DFEF 0x4967 +0x8EA3DFF0 0x496D +0x8EA3DFF1 0x973C +0x8EA3DFF2 0x9740 +0x8EA3DFF3 0x97C0 +0x8EA3DFF4 0x4A85 +0x8EA3DFF5 0x4AB0 +0x8EA3DFF6 0x4AF3 +0x8EA3DFF7 0x4B63 +0x8EA3DFF8 0x995A +0x8EA3DFF9 0x9A51 +0x8EA3DFFA 0x4BB6 +0x8EA3DFFB 0x9ADD +0x8EA3DFFC 0x4C82 +0x8EA3DFFD 0x4C7F +0x8EA3DFFE 0x9C38 +0x8EA3E0A1 0x4C86 +0x8EA3E0A2 0x9C45 +0x8EA3E0A3 0x9C3A +0x8EA3E0A4 0x4C84 +0x8EA3E0A5 0x9C35 +0x8EA3E0A6 0x4CFC +0x8EA3E0A7 0x4CFD +0x8EA3E0A8 0x4CFA +0x8EA3E0A9 0x9EF1 +0x8EA3E0AA 0x4D87 +0x8EA3E0AB 0x9F93 +0x8EA3E0AC 0x529A +0x8EA3E0AD 0x361A +0x8EA3E0AE 0x3619 +0x8EA3E0AF 0x8641 +0x8EA3E0B0 0x5DD7 +0x8EA3E0B1 0x3A75 +0x8EA3E0B2 0x6528 +0x8EA3E0B3 0x3C1A +0x8EA3E0B4 0x3C1B +0x8EA3E0B5 0x3C19 +0x8EA3E0B6 0x7053 +0x8EA3E0B7 0x7059 +0x8EA3E0B8 0x3D9C +0x8EA3E0B9 0x7221 +0x8EA3E0BA 0x3E10 +0x8EA3E0BB 0x766F +0x8EA3E0BC 0x7937 +0x8EA3E0BD 0x79B5 +0x8EA3E0BE 0x7C62 +0x8EA3E0BF 0x7C5E +0x8EA3E0C0 0x7CF5 +0x8EA3E0C1 0x457B +0x8EA3E0C2 0x457C +0x8EA3E0C3 0x863D +0x8EA3E0C4 0x4608 +0x8EA3E0C5 0x882D +0x8EA3E0C6 0x8989 +0x8EA3E0C7 0x8B8D +0x8EA3E0C8 0x8B87 +0x8EA3E0C9 0x8B90 +0x8EA3E0CA 0x8D1A +0x8EA3E0CB 0x8E99 +0x8EA3E0CC 0x4841 +0x8EA3E0CD 0x48E3 +0x8EA3E0CE 0x4972 +0x8EA3E0CF 0x945F +0x8EA3E0D0 0x4973 +0x8EA3E0D1 0x4968 +0x8EA3E0D2 0x9456 +0x8EA3E0D3 0x9461 +0x8EA3E0D4 0x945B +0x8EA3E0D5 0x945A +0x8EA3E0D6 0x945C +0x8EA3E0D7 0x9465 +0x8EA3E0D8 0x4A35 +0x8EA3E0D9 0x9741 +0x8EA3E0DA 0x4A88 +0x8EA3E0DB 0x4A9D +0x8EA3E0DC 0x986E +0x8EA3E0DD 0x986C +0x8EA3E0DE 0x986D +0x8EA3E0DF 0x4275 +0x8EA3E0E0 0x99AA +0x8EA3E0E1 0x9A5C +0x8EA3E0E2 0x9A58 +0x8EA3E0E3 0x9ADE +0x8EA3E0E4 0x4C8F +0x8EA3E0E5 0x9C4F +0x8EA3E0E6 0x9C51 +0x8EA3E0E7 0x4C8E +0x8EA3E0E8 0x9C53 +0x8EA3E0E9 0x4D05 +0x8EA3E0EA 0x4D04 +0x8EA3E0EB 0x4CFF +0x8EA3E0EC 0x9DFC +0x8EA3E0ED 0x9F39 +0x8EA3E0EE 0x4D9E +0x8EA3E0EF 0x513E +0x8EA3E0F0 0x3554 +0x8EA3E0F1 0x56D2 +0x8EA3E0F2 0x3681 +0x8EA3E0F3 0x5B4F +0x8EA3E0F4 0x6B14 +0x8EA3E0F5 0x40FA +0x8EA3E0F6 0x7A72 +0x8EA3E0F7 0x7A73 +0x8EA3E0F8 0x4332 +0x8EA3E0F9 0x4670 +0x8EA3E0FA 0x466E +0x8EA3E0FB 0x8B91 +0x8EA3E0FC 0x2F9D6 +0x8EA3E0FD 0x487C +0x8EA3E0FE 0x91BF +0x8EA3E1A1 0x4975 +0x8EA3E1A2 0x946C +0x8EA3E1A3 0x4974 +0x8EA3E1A4 0x4977 +0x8EA3E1A5 0x96E6 +0x8EA3E1A6 0x9745 +0x8EA3E1A7 0x4A37 +0x8EA3E1A8 0x97C8 +0x8EA3E1A9 0x97E4 +0x8EA3E1AA 0x995D +0x8EA3E1AB 0x4BBA +0x8EA3E1AC 0x9B21 +0x8EA3E1AD 0x4C11 +0x8EA3E1AE 0x9B2C +0x8EA3E1AF 0x9B57 +0x8EA3E1B0 0x4C92 +0x8EA3E1B1 0x4C99 +0x8EA3E1B2 0x9C5D +0x8EA3E1B3 0x9C61 +0x8EA3E1B4 0x9C65 +0x8EA3E1B5 0x9E08 +0x8EA3E1B6 0x4D0A +0x8EA3E1B7 0x4D2A +0x8EA3E1B8 0x4D2B +0x8EA3E1B9 0x4D44 +0x8EA3E1BA 0x4D79 +0x8EA3E1BB 0x9F45 +0x8EA3E1BC 0x34AA +0x8EA3E1BD 0x3748 +0x8EA3E1BE 0x6205 +0x8EA3E1BF 0x66EF +0x8EA3E1C0 0x6B1B +0x8EA3E1C1 0x6B1D +0x8EA3E1C2 0x7225 +0x8EA3E1C3 0x7224 +0x8EA3E1C4 0x7C6D +0x8EA3E1C5 0x42B4 +0x8EA3E1C6 0x8642 +0x8EA3E1C7 0x8649 +0x8EA3E1C8 0x460D +0x8EA3E1C9 0x8978 +0x8EA3E1CA 0x898A +0x8EA3E1CB 0x8B97 +0x8EA3E1CC 0x4754 +0x8EA3E1CD 0x8C9B +0x8EA3E1CE 0x8D1C +0x8EA3E1CF 0x4830 +0x8EA3E1D0 0x8EA2 +0x8EA3E1D1 0x4A09 +0x8EA3E1D2 0x4A38 +0x8EA3E1D3 0x4A36 +0x8EA3E1D4 0x4A8B +0x8EA3E1D5 0x4AF7 +0x8EA3E1D6 0x4B66 +0x8EA3E1D7 0x4BBD +0x8EA3E1D8 0x4C1E +0x8EA3E1D9 0x9C6C +0x8EA3E1DA 0x4C96 +0x8EA3E1DB 0x9C6F +0x8EA3E1DC 0x4D0D +0x8EA3E1DD 0x9E0E +0x8EA3E1DE 0x4D73 +0x8EA3E1DF 0x9F08 +0x8EA3E1E0 0x9F1D +0x8EA3E1E1 0x9FA3 +0x8EA3E1E2 0x373B +0x8EA3E1E3 0x373C +0x8EA3E1E4 0x5F60 +0x8EA3E1E5 0x6B1C +0x8EA3E1E6 0x3DA0 +0x8EA3E1E7 0x40FB +0x8EA3E1E9 0x7CF3 +0x8EA3E1EA 0x4581 +0x8EA3E1EB 0x8B9B +0x8EA3E1EC 0x8EA7 +0x8EA3E1ED 0x91C4 +0x8EA3E1EE 0x4978 +0x8EA3E1EF 0x947A +0x8EA3E1F0 0x4A8D +0x8EA3E1F1 0x4B73 +0x8EA3E1F2 0x9A61 +0x8EA3E1F3 0x9A63 +0x8EA3E1F4 0x9AD7 +0x8EA3E1F5 0x9C76 +0x8EA3E1F6 0x4DA6 +0x8EA3E1F7 0x9FA5 +0x8EA3E1F8 0x39AD +0x8EA3E1F9 0x7067 +0x8EA3E1FA 0x3E11 +0x8EA3E1FB 0x72AB +0x8EA3E1FC 0x864A +0x8EA3E1FD 0x897D +0x8EA3E1FE 0x8B9D +0x8EA3E2A1 0x8C53 +0x8EA3E2A2 0x8F65 +0x8EA3E2A3 0x947B +0x8EA3E2A4 0x4A39 +0x8EA3E2A5 0x98CD +0x8EA3E2A6 0x98DD +0x8EA3E2A7 0x4BBF +0x8EA3E2A8 0x9B30 +0x8EA3E2A9 0x9E16 +0x8EA3E2AA 0x4D0F +0x8EA3E2AB 0x4DA7 +0x8EA3E2AC 0x4DB5 +0x8EA3E2AD 0x3FDC +0x8EA3E2AE 0x4831 +0x8EA3E2AF 0x96E7 +0x8EA3E2B0 0x9E18 +0x8EA3E2B1 0x9EA2 +0x8EA3E2B2 0x4DA8 +0x8EA3E2B3 0x9F7C +0x8EA3E2B4 0x4125 +0x8EA3E2B5 0x7E9E +0x8EA3E2B6 0x9484 +0x8EA3E2B7 0x4BC1 +0x8EA3E2B8 0x9E1C +0x8EA3E2B9 0x4190 +0x8EA3E2BA 0x7C71 +0x8EA3E2BB 0x97CA +0x8EA3E2BC 0x4696 +0x8EA3E2BD 0x487F +0x8EA3E2BE 0x4D10 +0x8EA3E2BF 0x9EA3 +0x8EA3E2C0 0x4A0A +0x8EA3E2C1 0x9C7B +0x8EA3E2C2 0x9F97 +0x8EA3E2C3 0x4D12 +0x8EA3E2C4 0x4A3A +0x8EA3E2C5 0x9750 +0x8EA3E2C6 0x4A3B +0x8EA3E4C8 0x4F66 +0x8EA3E4C9 0x4F68 +0x8EA3E4CA 0x4FE7 +0x8EA3E4CB 0x503F +0x8EA3E4CD 0x50A6 +0x8EA3E4CE 0x510F +0x8EA3E4CF 0x523E +0x8EA3E4D0 0x5324 +0x8EA3E4D1 0x5365 +0x8EA3E4D2 0x539B +0x8EA3E4D3 0x517F +0x8EA3E4D4 0x54CB +0x8EA3E4D5 0x5573 +0x8EA3E4D6 0x5571 +0x8EA3E4D7 0x556B +0x8EA3E4D8 0x55F4 +0x8EA3E4D9 0x5622 +0x8EA3E4DA 0x5620 +0x8EA3E4DB 0x5692 +0x8EA3E4DC 0x56BA +0x8EA3E4DD 0x5691 +0x8EA3E4DE 0x56B0 +0x8EA3E4DF 0x5759 +0x8EA3E4E0 0x578A +0x8EA3E4E1 0x580F +0x8EA3E4E2 0x5812 +0x8EA3E4E3 0x5813 +0x8EA3E4E4 0x5847 +0x8EA3E4E5 0x589B +0x8EA3E4E6 0x5900 +0x8EA3E4E7 0x594D +0x8EA3E4E8 0x5AD1 +0x8EA3E4E9 0x5AD3 +0x8EA3E4EA 0x5B67 +0x8EA3E4EB 0x5C57 +0x8EA3E4EC 0x5C77 +0x8EA3E4ED 0x5CD5 +0x8EA3E4EE 0x5D75 +0x8EA3E4EF 0x5D8E +0x8EA3E4F0 0x5DA5 +0x8EA3E4F1 0x5DB6 +0x8EA3E4F2 0x5DBF +0x8EA3E4F3 0x5E65 +0x8EA3E4F4 0x5ECD +0x8EA3E4F5 0x5EED +0x8EA3E4F6 0x5F94 +0x8EA3E4F7 0x5F9A +0x8EA3E4F8 0x5FBA +0x8EA3E4F9 0x6125 +0x8EA3E4FA 0x6150 +0x8EA3E4FB 0x62A3 +0x8EA3E4FC 0x6360 +0x8EA3E4FD 0x6364 +0x8EA3E4FE 0x63B6 +0x8EA3E5A1 0x6403 +0x8EA3E5A2 0x64B6 +0x8EA3E5A3 0x651A +0x8EA3E5A4 0x7A25 +0x8EA3E5A5 0x5C21 +0x8EA3E5A6 0x66E2 +0x8EA3E5A7 0x6702 +0x8EA3E5A8 0x67A4 +0x8EA3E5A9 0x67AC +0x8EA3E5AA 0x6810 +0x8EA3E5AB 0x6806 +0x8EA3E5AC 0x685E +0x8EA3E5AD 0x685A +0x8EA3E5AE 0x692C +0x8EA3E5AF 0x6929 +0x8EA3E5B0 0x6A2D +0x8EA3E5B1 0x6A77 +0x8EA3E5B2 0x6A7A +0x8EA3E5B3 0x6ACA +0x8EA3E5B4 0x6AE6 +0x8EA3E5B5 0x6AF5 +0x8EA3E5B6 0x6B0D +0x8EA3E5B7 0x6B0E +0x8EA3E5B8 0x6BDC +0x8EA3E5B9 0x6BDD +0x8EA3E5BA 0x6BF6 +0x8EA3E5BB 0x6C1E +0x8EA3E5BC 0x6C63 +0x8EA3E5BD 0x6DA5 +0x8EA3E5BE 0x6E0F +0x8EA3E5BF 0x6E8A +0x8EA3E5C0 0x6E84 +0x8EA3E5C1 0x6E8B +0x8EA3E5C2 0x6E7C +0x8EA3E5C3 0x6F4C +0x8EA3E5C4 0x6F48 +0x8EA3E5C5 0x6F49 +0x8EA3E5C6 0x6F9D +0x8EA3E5C7 0x6F99 +0x8EA3E5C8 0x6FF8 +0x8EA3E5C9 0x702E +0x8EA3E5CA 0x702D +0x8EA3E5CB 0x705C +0x8EA3E5CC 0x79CC +0x8EA3E5CD 0x70BF +0x8EA3E5CE 0x70EA +0x8EA3E5CF 0x70E5 +0x8EA3E5D0 0x7111 +0x8EA3E5D1 0x7112 +0x8EA3E5D2 0x713F +0x8EA3E5D3 0x7139 +0x8EA3E5D4 0x713B +0x8EA3E5D5 0x713D +0x8EA3E5D6 0x7177 +0x8EA3E5D7 0x7175 +0x8EA3E5D8 0x7176 +0x8EA3E5D9 0x7171 +0x8EA3E5DA 0x7196 +0x8EA3E5DB 0x7193 +0x8EA3E5DC 0x71B4 +0x8EA3E5DD 0x71DD +0x8EA3E5DE 0x71DE +0x8EA3E5DF 0x720E +0x8EA3E5E0 0x5911 +0x8EA3E5E1 0x7218 +0x8EA3E5E2 0x7347 +0x8EA3E5E3 0x7348 +0x8EA3E5E4 0x73EF +0x8EA3E5E5 0x7412 +0x8EA3E5E6 0x743B +0x8EA3E5E7 0x74A4 +0x8EA3E5E8 0x748D +0x8EA3E5E9 0x74B4 +0x8EA3E5EA 0x7673 +0x8EA3E5EB 0x7677 +0x8EA3E5EC 0x76BC +0x8EA3E5ED 0x7819 +0x8EA3E5EE 0x781B +0x8EA3E5EF 0x783D +0x8EA3E5F0 0x7853 +0x8EA3E5F1 0x7854 +0x8EA3E5F2 0x7858 +0x8EA3E5F3 0x78B7 +0x8EA3E5F4 0x78D8 +0x8EA3E5F5 0x78EE +0x8EA3E5F6 0x7922 +0x8EA3E5F7 0x794D +0x8EA3E5F8 0x7986 +0x8EA3E5F9 0x7999 +0x8EA3E5FA 0x79A3 +0x8EA3E5FB 0x79BC +0x8EA3E5FC 0x7AA7 +0x8EA3E5FD 0x7B37 +0x8EA3E5FE 0x7B59 +0x8EA3E6A1 0x7BD0 +0x8EA3E6A2 0x7C2F +0x8EA3E6A3 0x7C32 +0x8EA3E6A4 0x7C42 +0x8EA3E6A5 0x7C4E +0x8EA3E6A6 0x7C68 +0x8EA3E6A7 0x7CA9 +0x8EA3E6A8 0x7CED +0x8EA3E6A9 0x7DD0 +0x8EA3E6AA 0x7E07 +0x8EA3E6AB 0x7DD3 +0x8EA3E6AC 0x7E64 +0x8EA3E6AD 0x7F40 +0x8EA3E6AF 0x8041 +0x8EA3E6B0 0x8063 +0x8EA3E6B1 0x80BB +0x8EA3E6B2 0x6711 +0x8EA3E6B3 0x6725 +0x8EA3E6B4 0x8248 +0x8EA3E6B5 0x8310 +0x8EA3E6B6 0x8362 +0x8EA3E6B7 0x8312 +0x8EA3E6B8 0x8421 +0x8EA3E6B9 0x841E +0x8EA3E6BA 0x84E2 +0x8EA3E6BB 0x84DE +0x8EA3E6BC 0x84E1 +0x8EA3E6BD 0x8573 +0x8EA3E6BE 0x85D4 +0x8EA3E6BF 0x85F5 +0x8EA3E6C0 0x8637 +0x8EA3E6C1 0x8645 +0x8EA3E6C2 0x8672 +0x8EA3E6C3 0x874A +0x8EA3E6C4 0x87A9 +0x8EA3E6C5 0x87A5 +0x8EA3E6C6 0x87F5 +0x8EA3E6C7 0x8834 +0x8EA3E6C8 0x8850 +0x8EA3E6C9 0x8887 +0x8EA3E6CA 0x8954 +0x8EA3E6CB 0x8984 +0x8EA3E6CC 0x8B03 +0x8EA3E6CD 0x8C52 +0x8EA3E6CE 0x8CD8 +0x8EA3E6CF 0x8D0C +0x8EA3E6D0 0x8D18 +0x8EA3E6D1 0x8DB0 +0x8EA3E6D2 0x8EBC +0x8EA3E6D3 0x8ED5 +0x8EA3E6D4 0x8FAA +0x8EA3E6D5 0x909C +0x8EA3E6D7 0x915C +0x8EA3E6D8 0x922B +0x8EA3E6D9 0x9221 +0x8EA3E6DA 0x9273 +0x8EA3E6DB 0x92F4 +0x8EA3E6DC 0x92F5 +0x8EA3E6DD 0x933F +0x8EA3E6DE 0x9342 +0x8EA3E6DF 0x9386 +0x8EA3E6E0 0x93BE +0x8EA3E6E1 0x93BC +0x8EA3E6E2 0x93BD +0x8EA3E6E3 0x93F1 +0x8EA3E6E4 0x93F2 +0x8EA3E6E5 0x93EF +0x8EA3E6E6 0x9422 +0x8EA3E6E7 0x9423 +0x8EA3E6E8 0x9424 +0x8EA3E6E9 0x9467 +0x8EA3E6EA 0x9466 +0x8EA3E6EB 0x9597 +0x8EA3E6EC 0x95CE +0x8EA3E6ED 0x95E7 +0x8EA3E6EE 0x973B +0x8EA3E6EF 0x974D +0x8EA3E6F0 0x98E4 +0x8EA3E6F1 0x9942 +0x8EA3E6F2 0x9B1D +0x8EA3E6F3 0x9B98 +0x8EA3E6F5 0x9D49 +0x8EA3E6F6 0x6449 +0x8EA3E6F7 0x5E71 +0x8EA3E6F8 0x5E85 +0x8EA3E6F9 0x61D3 +0x8EA3E6FA 0x990E +0x8EA3E6FB 0x8002 +0x8EA3E6FC 0x781E +0x8EA3E7A1 0x5528 +0x8EA3E7A2 0x5572 +0x8EA3E7A3 0x55BA +0x8EA3E7A4 0x55F0 +0x8EA3E7A5 0x55EE +0x8EA3E7A6 0x56B8 +0x8EA3E7A7 0x56B9 +0x8EA3E7A8 0x56C4 +0x8EA3E7A9 0x8053 +0x8EA3E7AA 0x92B0 +0x8EA4A1A1 0x20086 +0x8EA4A1A2 0x4E40 +0x8EA4A1A3 0x4E41 +0x8EA4A1A4 0x4E5A +0x8EA4A1A5 0x21FE8 +0x8EA4A1A6 0x4E02 +0x8EA4A1A7 0x4E29 +0x8EA4A1A8 0x2010E +0x8EA4A1A9 0x20627 +0x8EA4A1AA 0x5202 +0x8EA4A1AB 0x353E +0x8EA4A1AC 0x5DDC +0x8EA4A1AD 0x2053C +0x8EA4A1AE 0x20675 +0x8EA4A1AF 0x2F828 +0x8EA4A1B0 0x5342 +0x8EA4A1B1 0x536A +0x8EA4A1B2 0x5B52 +0x8EA4A1B3 0x2193C +0x8EA4A1B4 0x2F875 +0x8EA4A1B5 0x2F878 +0x8EA4A1B6 0x5FC4 +0x8EA4A1B7 0x624C +0x8EA4A1B8 0x72AD +0x8EA4A1B9 0x4E12 +0x8EA4A1BA 0x4E2F +0x8EA4A1BB 0x4E96 +0x8EA4A1BC 0x4ED0 +0x8EA4A1BD 0x5142 +0x8EA4A1BE 0x5183 +0x8EA4A1BF 0x2F819 +0x8EA4A1C0 0x206A5 +0x8EA4A1C1 0x206AA +0x8EA4A1C2 0x2090F +0x8EA4A1C3 0x20A0E +0x8EA4A1C4 0x5383 +0x8EA4A1C5 0x53B8 +0x8EA4A1C6 0x20B9C +0x8EA4A1C7 0x20B9B +0x8EA4A1C8 0x2123C +0x8EA4A1C9 0x5928 +0x8EA4A1CA 0x21BC2 +0x8EA4A1CB 0x5C23 +0x8EA4A1CC 0x5E01 +0x8EA4A1CD 0x5F00 +0x8EA4A1CE 0x233B4 +0x8EA4A1CF 0x3CB8 +0x8EA4A1D0 0x706C +0x8EA4A1D1 0x722B +0x8EA4A1D2 0x5188 +0x8EA4A1D3 0x8279 +0x8EA4A1D4 0x8FB6 +0x8EA4A1D5 0x4E17 +0x8EA4A1D6 0x20065 +0x8EA4A1D7 0x340C +0x8EA4A1D8 0x201B2 +0x8EA4A1D9 0x3430 +0x8EA4A1DA 0x4EE2 +0x8EA4A1DB 0x4EDB +0x8EA4A1DC 0x20477 +0x8EA4A1DD 0x20542 +0x8EA4A1DE 0x51AD +0x8EA4A1DF 0x20633 +0x8EA4A1E0 0x51F7 +0x8EA4A1E1 0x34DA +0x8EA4A1E2 0x206AF +0x8EA4A1E3 0x20836 +0x8EA4A1E4 0x3513 +0x8EA4A1E5 0x531B +0x8EA4A1E6 0x5388 +0x8EA4A1E7 0x5387 +0x8EA4A1E8 0x20B22 +0x8EA4A1E9 0x53CF +0x8EA4A1EA 0x53FD +0x8EA4A1EB 0x3563 +0x8EA4A1EC 0x53E7 +0x8EA4A1ED 0x56DC +0x8EA4A1EE 0x211A3 +0x8EA4A1EF 0x56D9 +0x8EA4A1F0 0x5725 +0x8EA4A1F1 0x5727 +0x8EA4A1F2 0x5933 +0x8EA4A1F3 0x5C13 +0x8EA4A1F4 0x21C25 +0x8EA4A1F5 0x21C24 +0x8EA4A1F6 0x5C75 +0x8EA4A1F7 0x22052 +0x8EA4A1F8 0x22189 +0x8EA4A1F9 0x224BF +0x8EA4A1FA 0x39C4 +0x8EA4A1FB 0x39C3 +0x8EA4A1FC 0x66F1 +0x8EA4A1FD 0x233B5 +0x8EA4A1FE 0x2574C +0x8EA4A2A1 0x7F52 +0x8EA4A2A2 0x28E14 +0x8EA4A2A3 0x28E12 +0x8EA4A2A4 0x3401 +0x8EA4A2A5 0x200A3 +0x8EA4A2A6 0x200A2 +0x8EA4A2A7 0x4E51 +0x8EA4A2A8 0x4E6A +0x8EA4A2A9 0x201B6 +0x8EA4A2AA 0x4F0C +0x8EA4A2AB 0x201B5 +0x8EA4A2AC 0x201B4 +0x8EA4A2AD 0x4EFE +0x8EA4A2AE 0x4F1B +0x8EA4A2AF 0x201C2 +0x8EA4A2B0 0x201B8 +0x8EA4A2B1 0x343A +0x8EA4A2B2 0x20479 +0x8EA4A2B3 0x34AB +0x8EA4A2B4 0x5173 +0x8EA4A2B5 0x20508 +0x8EA4A2B6 0x518E +0x8EA4A2B7 0x2057A +0x8EA4A2B8 0x205B6 +0x8EA4A2B9 0x206BD +0x8EA4A2BA 0x206B7 +0x8EA4A2BB 0x206BC +0x8EA4A2BC 0x34DD +0x8EA4A2BD 0x206C4 +0x8EA4A2BE 0x206C9 +0x8EA4A2BF 0x52A5 +0x8EA4A2C0 0x3515 +0x8EA4A2C1 0x52A7 +0x8EA4A2C2 0x52A4 +0x8EA4A2C3 0x20930 +0x8EA4A2C4 0x20983 +0x8EA4A2C5 0x20985 +0x8EA4A2C6 0x20A12 +0x8EA4A2C7 0x20A34 +0x8EA4A2C8 0x53BD +0x8EA4A2C9 0x20AE4 +0x8EA4A2CA 0x20ADE +0x8EA4A2CB 0x20B2A +0x8EA4A2CC 0x5402 +0x8EA4A2CD 0x20BAF +0x8EA4A2CE 0x20BB4 +0x8EA4A2CF 0x20BB3 +0x8EA4A2D0 0x20BB1 +0x8EA4A2D1 0x572B +0x8EA4A2D2 0x591B +0x8EA4A2D3 0x5935 +0x8EA4A2D4 0x215DE +0x8EA4A2D5 0x36A7 +0x8EA4A2D6 0x36A5 +0x8EA4A2D7 0x216B8 +0x8EA4A2D8 0x216B0 +0x8EA4A2D9 0x36A6 +0x8EA4A2DA 0x219C2 +0x8EA4A2DC 0x5C17 +0x8EA4A2DD 0x377C +0x8EA4A2DE 0x21C2A +0x8EA4A2DF 0x5C70 +0x8EA4A2E0 0x5C7D +0x8EA4A2E1 0x37A9 +0x8EA4A2E2 0x21FE9 +0x8EA4A2E3 0x5DE9 +0x8EA4A2E4 0x22057 +0x8EA4A2E5 0x3834 +0x8EA4A2E6 0x3835 +0x8EA4A2E7 0x221B6 +0x8EA4A2E8 0x221D7 +0x8EA4A2E9 0x221DE +0x8EA4A2EA 0x38A8 +0x8EA4A2EB 0x5F19 +0x8EA4A2EC 0x5F1C +0x8EA4A2ED 0x5F75 +0x8EA4A2EE 0x224C2 +0x8EA4A2EF 0x225AB +0x8EA4A2F0 0x38FF +0x8EA4A2F1 0x5FC8 +0x8EA4A2F2 0x2298F +0x8EA4A2F3 0x39C7 +0x8EA4A2F4 0x39C6 +0x8EA4A2F5 0x39C8 +0x8EA4A2F6 0x22A6D +0x8EA4A2F7 0x22EB5 +0x8EA4A2F8 0x3AD0 +0x8EA4A2F9 0x3AD1 +0x8EA4A2FA 0x233C0 +0x8EA4A2FB 0x233BF +0x8EA4A2FC 0x3C59 +0x8EA4A2FD 0x239B9 +0x8EA4A2FE 0x23B1C +0x8EA4A3A1 0x6C12 +0x8EA4A3A2 0x3CBD +0x8EA4A3A3 0x23C80 +0x8EA4A3A4 0x24184 +0x8EA4A3A5 0x24185 +0x8EA4A3A6 0x3E28 +0x8EA4A3A7 0x72B3 +0x8EA4A3A8 0x24724 +0x8EA4A3A9 0x3EA9 +0x8EA4A3AA 0x7390 +0x8EA4A3AB 0x7536 +0x8EA4A3AC 0x2634C +0x8EA4A3AD 0x43CC +0x8EA4A3AE 0x26AF6 +0x8EA4A3AF 0x8281 +0x8EA4A3B0 0x8FB8 +0x8EA4A3B1 0x28670 +0x8EA4A3B2 0x48B4 +0x8EA4A3B3 0x28675 +0x8EA4A3B4 0x28E17 +0x8EA4A3B5 0x4E23 +0x8EA4A3B6 0x3416 +0x8EA4A3B7 0x342C +0x8EA4A3B8 0x201F1 +0x8EA4A3B9 0x4F2E +0x8EA4A3BA 0x201DA +0x8EA4A3BB 0x514F +0x8EA4A3BC 0x205B9 +0x8EA4A3BD 0x51BA +0x8EA4A3BE 0x34DF +0x8EA4A3BF 0x34E0 +0x8EA4A3C0 0x5222 +0x8EA4A3C1 0x206CE +0x8EA4A3C2 0x206D2 +0x8EA4A3C3 0x206D0 +0x8EA4A3C4 0x3517 +0x8EA4A3C5 0x20843 +0x8EA4A3C6 0x52AF +0x8EA4A3C7 0x52B0 +0x8EA4A3C8 0x52B1 +0x8EA4A3C9 0x2084D +0x8EA4A3CA 0x20934 +0x8EA4A3CB 0x352F +0x8EA4A3CC 0x209D9 +0x8EA4A3CD 0x5364 +0x8EA4A3CE 0x20A18 +0x8EA4A3CF 0x53D3 +0x8EA4A3D0 0x20B38 +0x8EA4A3D1 0x356A +0x8EA4A3D2 0x20BD7 +0x8EA4A3D3 0x3570 +0x8EA4A3D4 0x356D +0x8EA4A3D5 0x20BDC +0x8EA4A3D6 0x20BCB +0x8EA4A3D7 0x20BD6 +0x8EA4A3D8 0x20BD8 +0x8EA4A3D9 0x356E +0x8EA4A3DA 0x20BD1 +0x8EA4A3DB 0x2F83E +0x8EA4A3DC 0x2F83C +0x8EA4A3DD 0x20BD2 +0x8EA4A3DE 0x362B +0x8EA4A3DF 0x3628 +0x8EA4A3E0 0x21259 +0x8EA4A3E2 0x593F +0x8EA4A3E3 0x215E5 +0x8EA4A3E4 0x215E6 +0x8EA4A3E5 0x3692 +0x8EA4A3E6 0x215E8 +0x8EA4A3E7 0x598B +0x8EA4A3E8 0x216BD +0x8EA4A3E9 0x5991 +0x8EA4A3EA 0x5995 +0x8EA4A3EB 0x216BE +0x8EA4A3EC 0x21949 +0x8EA4A3ED 0x373F +0x8EA4A3EE 0x219CD +0x8EA4A3EF 0x5B8A +0x8EA4A3F0 0x374F +0x8EA4A3F1 0x3774 +0x8EA4A3F2 0x21B5E +0x8EA4A3F3 0x21BD0 +0x8EA4A3F4 0x377D +0x8EA4A3F5 0x21D06 +0x8EA4A3F6 0x37B7 +0x8EA4A3F7 0x37A3 +0x8EA4A3F8 0x37B0 +0x8EA4A3F9 0x37B1 +0x8EA4A3FA 0x5C87 +0x8EA4A3FB 0x37AB +0x8EA4A3FC 0x21D7C +0x8EA4A3FD 0x21D71 +0x8EA4A3FE 0x21FEF +0x8EA4A4A1 0x383A +0x8EA4A4A2 0x3837 +0x8EA4A4A3 0x5E0D +0x8EA4A4A4 0x3838 +0x8EA4A4A5 0x3840 +0x8EA4A4A6 0x2218D +0x8EA4A4A7 0x221B7 +0x8EA4A4A8 0x5E8E +0x8EA4A4A9 0x389F +0x8EA4A4AA 0x22333 +0x8EA4A4AB 0x2237F +0x8EA4A4AC 0x5F7A +0x8EA4A4AD 0x225F2 +0x8EA4A4AE 0x3904 +0x8EA4A4AF 0x3909 +0x8EA4A4B0 0x3906 +0x8EA4A4B1 0x38FD +0x8EA4A4B2 0x390A +0x8EA4A4B3 0x3907 +0x8EA4A4B4 0x22A2A +0x8EA4A4B5 0x22A8B +0x8EA4A4B6 0x39CA +0x8EA4A4B7 0x22A83 +0x8EA4A4B8 0x22A8A +0x8EA4A4B9 0x6290 +0x8EA4A4BA 0x39C9 +0x8EA4A4BB 0x22A8E +0x8EA4A4BC 0x629A +0x8EA4A4BD 0x22EB6 +0x8EA4A4BE 0x653C +0x8EA4A4BF 0x653A +0x8EA4A4C0 0x3A7F +0x8EA4A4C1 0x6598 +0x8EA4A4C2 0x230D8 +0x8EA4A4C3 0x3AD2 +0x8EA4A4C4 0x23156 +0x8EA4A4C5 0x233D2 +0x8EA4A4C6 0x6765 +0x8EA4A4C7 0x2F8DB +0x8EA4A4C8 0x3B43 +0x8EA4A4C9 0x233C2 +0x8EA4A4CA 0x23887 +0x8EA4A4CB 0x23881 +0x8EA4A4CC 0x239C2 +0x8EA4A4CD 0x239BC +0x8EA4A4CE 0x23B23 +0x8EA4A4CF 0x3CC1 +0x8EA4A4D0 0x23C93 +0x8EA4A4D1 0x3CC5 +0x8EA4A4D2 0x3DA3 +0x8EA4A4D3 0x2418D +0x8EA4A4D4 0x2418E +0x8EA4A4D5 0x3E2A +0x8EA4A4D6 0x3E5F +0x8EA4A4D7 0x2473B +0x8EA4A4D8 0x2474D +0x8EA4A4D9 0x3E5D +0x8EA4A4DA 0x24734 +0x8EA4A4DB 0x24731 +0x8EA4A4DC 0x248F2 +0x8EA4A4DD 0x248F0 +0x8EA4A4DE 0x3F17 +0x8EA4A4DF 0x24C15 +0x8EA4A4E0 0x24D28 +0x8EA4A4E1 0x3F71 +0x8EA4A4E2 0x3F72 +0x8EA4A4E3 0x24F25 +0x8EA4A4E4 0x250E7 +0x8EA4A4E5 0x400F +0x8EA4A4E6 0x250E9 +0x8EA4A4E7 0x25417 +0x8EA4A4E8 0x79C2 +0x8EA4A4E9 0x4191 +0x8EA4A4EA 0x2626C +0x8EA4A4EB 0x26280 +0x8EA4A4EC 0x2634B +0x8EA4A4ED 0x43B2 +0x8EA4A4EE 0x43CF +0x8EA4A4EF 0x43CE +0x8EA4A4F0 0x809E +0x8EA4A4F1 0x268DE +0x8EA4A4F2 0x268FB +0x8EA4A4F3 0x81EB +0x8EA4A4F4 0x26951 +0x8EA4A4F5 0x8289 +0x8EA4A4F6 0x4496 +0x8EA4A4F7 0x26B01 +0x8EA4A4F8 0x26B02 +0x8EA4A4F9 0x8296 +0x8EA4A4FA 0x26B05 +0x8EA4A4FB 0x8287 +0x8EA4A4FC 0x26B03 +0x8EA4A4FD 0x4497 +0x8EA4A4FE 0x28451 +0x8EA4A5A1 0x8FC0 +0x8EA4A5A2 0x488B +0x8EA4A5A3 0x8FC3 +0x8EA4A5A4 0x28453 +0x8EA4A5A5 0x2867A +0x8EA4A5A6 0x28678 +0x8EA4A5A7 0x28676 +0x8EA4A5A8 0x28679 +0x8EA4A5A9 0x2868F +0x8EA4A5AA 0x2867C +0x8EA4A5AB 0x9578 +0x8EA4A5AC 0x28E1B +0x8EA4A5AD 0x28E1C +0x8EA4A5AE 0x9625 +0x8EA4A5AF 0x23D92 +0x8EA4A5B0 0x4E75 +0x8EA4A5B1 0x4E74 +0x8EA4A5B2 0x2012E +0x8EA4A5B3 0x2012C +0x8EA4A5B4 0x342D +0x8EA4A5B5 0x2020C +0x8EA4A5B6 0x4F99 +0x8EA4A5B7 0x2020B +0x8EA4A5B8 0x3450 +0x8EA4A5B9 0x344B +0x8EA4A5BA 0x20205 +0x8EA4A5BB 0x344F +0x8EA4A5BC 0x344C +0x8EA4A5BD 0x2F805 +0x8EA4A5BE 0x4F71 +0x8EA4A5BF 0x5153 +0x8EA4A5C0 0x51BF +0x8EA4A5C1 0x205C2 +0x8EA4A5C2 0x205C3 +0x8EA4A5C3 0x51C0 +0x8EA4A5C4 0x20648 +0x8EA4A5C5 0x51EE +0x8EA4A5C6 0x20646 +0x8EA4A5C7 0x34E4 +0x8EA4A5C8 0x34E3 +0x8EA4A5C9 0x206EA +0x8EA4A5CA 0x34E1 +0x8EA4A5CB 0x206EB +0x8EA4A5CC 0x34E2 +0x8EA4A5CD 0x206EE +0x8EA4A5CE 0x523D +0x8EA4A5CF 0x3519 +0x8EA4A5D0 0x52BD +0x8EA4A5D1 0x530C +0x8EA4A5D2 0x208D8 +0x8EA4A5D3 0x24C1E +0x8EA4A5D4 0x209DF +0x8EA4A5D5 0x209DE +0x8EA4A5D6 0x3541 +0x8EA4A5D7 0x7F37 +0x8EA4A5D8 0x20A4F +0x8EA4A5D9 0x53C0 +0x8EA4A5DA 0x355E +0x8EA4A5DB 0x20C0D +0x8EA4A5DC 0x20C08 +0x8EA4A5DD 0x3579 +0x8EA4A5DE 0x20C09 +0x8EA4A5DF 0x546E +0x8EA4A5E0 0x5483 +0x8EA4A5E1 0x20C12 +0x8EA4A5E2 0x20C65 +0x8EA4A5E3 0x545E +0x8EA4A5E4 0x545D +0x8EA4A5E5 0x577E +0x8EA4A5E6 0x5779 +0x8EA4A5E7 0x21289 +0x8EA4A5E8 0x577A +0x8EA4A5E9 0x576C +0x8EA4A5EA 0x21284 +0x8EA4A5EB 0x2129E +0x8EA4A5EC 0x2128B +0x8EA4A5ED 0x3632 +0x8EA4A5EE 0x5787 +0x8EA4A5EF 0x21562 +0x8EA4A5F0 0x591D +0x8EA4A5F1 0x3694 +0x8EA4A5F2 0x5946 +0x8EA4A5F3 0x3697 +0x8EA4A5F4 0x215F9 +0x8EA4A5F5 0x5943 +0x8EA4A5F6 0x215F7 +0x8EA4A5F7 0x3696 +0x8EA4A5F8 0x3698 +0x8EA4A5F9 0x21606 +0x8EA4A5FA 0x216DD +0x8EA4A5FB 0x36B2 +0x8EA4A5FC 0x216D9 +0x8EA4A5FD 0x216DF +0x8EA4A5FE 0x216E2 +0x8EA4A6A1 0x36B9 +0x8EA4A6A2 0x5B61 +0x8EA4A6A3 0x5B66 +0x8EA4A6A4 0x200F1 +0x8EA4A6A5 0x5B90 +0x8EA4A6A6 0x3775 +0x8EA4A6A7 0x377F +0x8EA4A6A8 0x377E +0x8EA4A6A9 0x5C29 +0x8EA4A6AA 0x378F +0x8EA4A6AB 0x21C3F +0x8EA4A6AC 0x21C3E +0x8EA4A6AD 0x21D0B +0x8EA4A6AE 0x37BD +0x8EA4A6AF 0x5CB2 +0x8EA4A6B0 0x21D83 +0x8EA4A6B1 0x37BB +0x8EA4A6B2 0x37BC +0x8EA4A6B3 0x21D86 +0x8EA4A6B4 0x5CC0 +0x8EA4A6B5 0x2207C +0x8EA4A6B6 0x383D +0x8EA4A6B7 0x383E +0x8EA4A6B8 0x3874 +0x8EA4A6B9 0x221F7 +0x8EA4A6BA 0x387A +0x8EA4A6BB 0x3876 +0x8EA4A6BC 0x3878 +0x8EA4A6BD 0x3875 +0x8EA4A6BE 0x221FB +0x8EA4A6BF 0x2233B +0x8EA4A6C0 0x38AF +0x8EA4A6C1 0x38B0 +0x8EA4A6C2 0x38C7 +0x8EA4A6C3 0x38CC +0x8EA4A6C4 0x225F9 +0x8EA4A6C5 0x225CA +0x8EA4A6C6 0x3916 +0x8EA4A6C7 0x225FF +0x8EA4A6C8 0x3912 +0x8EA4A6C9 0x391D +0x8EA4A6CA 0x22609 +0x8EA4A6CB 0x22603 +0x8EA4A6CC 0x3915 +0x8EA4A6CD 0x390F +0x8EA4A6CE 0x3914 +0x8EA4A6CF 0x601F +0x8EA4A6D0 0x5FE2 +0x8EA4A6D1 0x22610 +0x8EA4A6D2 0x2299A +0x8EA4A6D3 0x2299F +0x8EA4A6D4 0x39B0 +0x8EA4A6D5 0x39BF +0x8EA4A6D6 0x39C0 +0x8EA4A6D7 0x22A87 +0x8EA4A6D8 0x39D2 +0x8EA4A6D9 0x39D9 +0x8EA4A6DA 0x22EB7 +0x8EA4A6DB 0x3A7A +0x8EA4A6DC 0x22F08 +0x8EA4A6DD 0x22EF9 +0x8EA4A6DE 0x3A81 +0x8EA4A6DF 0x3A82 +0x8EA4A6E0 0x22EF4 +0x8EA4A6E1 0x6616 +0x8EA4A6E2 0x65F9 +0x8EA4A6E3 0x3ADA +0x8EA4A6E4 0x26657 +0x8EA4A6E5 0x6788 +0x8EA4A6E6 0x233D6 +0x8EA4A6E7 0x679B +0x8EA4A6E8 0x2F8DE +0x8EA4A6E9 0x676E +0x8EA4A6EA 0x679E +0x8EA4A6EB 0x233D4 +0x8EA4A6EC 0x3C22 +0x8EA4A6ED 0x3C1F +0x8EA4A6EE 0x23890 +0x8EA4A6EF 0x2388D +0x8EA4A6F0 0x3C21 +0x8EA4A6F1 0x6B24 +0x8EA4A6F2 0x23960 +0x8EA4A6F3 0x239CE +0x8EA4A6F4 0x239CF +0x8EA4A6F5 0x3C5C +0x8EA4A6F6 0x6B7D +0x8EA4A6F7 0x239D1 +0x8EA4A6F8 0x3C7D +0x8EA4A6F9 0x3C8D +0x8EA4A6FA 0x3C8F +0x8EA4A6FB 0x6CE6 +0x8EA4A6FC 0x23CCA +0x8EA4A6FD 0x6CCB +0x8EA4A6FE 0x3CD0 +0x8EA4A7A1 0x23CB7 +0x8EA4A7A2 0x3CD8 +0x8EA4A7A3 0x23CB2 +0x8EA4A7A4 0x23CBB +0x8EA4A7A5 0x23CB9 +0x8EA4A7A6 0x6CB5 +0x8EA4A7A7 0x3DA7 +0x8EA4A7A8 0x2419E +0x8EA4A7A9 0x7097 +0x8EA4A7AA 0x241B2 +0x8EA4A7AB 0x709B +0x8EA4A7AC 0x3E12 +0x8EA4A7AD 0x2456F +0x8EA4A7AE 0x245AC +0x8EA4A7AF 0x3E2F +0x8EA4A7B0 0x24623 +0x8EA4A7B1 0x726B +0x8EA4A7B2 0x3E2E +0x8EA4A7B3 0x3E2C +0x8EA4A7B4 0x3E5C +0x8EA4A7B5 0x2476C +0x8EA4A7B6 0x72D5 +0x8EA4A7B7 0x24732 +0x8EA4A7B8 0x2475E +0x8EA4A7B9 0x3E62 +0x8EA4A7BA 0x3E67 +0x8EA4A7BB 0x3EB4 +0x8EA4A7BC 0x248FB +0x8EA4A7BD 0x24B29 +0x8EA4A7BE 0x24BBD +0x8EA4A7BF 0x24C1F +0x8EA4A7C0 0x7543 +0x8EA4A7C1 0x22341 +0x8EA4A7C2 0x24C1D +0x8EA4A7C3 0x759C +0x8EA4A7C4 0x24D31 +0x8EA4A7C5 0x24D2F +0x8EA4A7C6 0x3FEA +0x8EA4A7C7 0x25043 +0x8EA4A7C8 0x3FFB +0x8EA4A7C9 0x25041 +0x8EA4A7CA 0x4014 +0x8EA4A7CB 0x250F5 +0x8EA4A7CC 0x4013 +0x8EA4A7CD 0x4012 +0x8EA4A7CE 0x4010 +0x8EA4A7CF 0x4011 +0x8EA4A7D0 0x250F2 +0x8EA4A7D1 0x4086 +0x8EA4A7D2 0x77E4 +0x8EA4A7D3 0x4098 +0x8EA4A7D4 0x2541E +0x8EA4A7D5 0x25754 +0x8EA4A7D6 0x412A +0x8EA4A7D7 0x25756 +0x8EA4A7D8 0x25929 +0x8EA4A7D9 0x25927 +0x8EA4A7DA 0x25928 +0x8EA4A7DB 0x7ACE +0x8EA4A7DC 0x42B5 +0x8EA4A7DD 0x26279 +0x8EA4A7DE 0x2627E +0x8EA4A7DF 0x264B6 +0x8EA4A7E0 0x264B7 +0x8EA4A7E1 0x8013 +0x8EA4A7E2 0x43D6 +0x8EA4A7E3 0x43D8 +0x8EA4A7E4 0x80B7 +0x8EA4A7E5 0x43D9 +0x8EA4A7E6 0x43D4 +0x8EA4A7E7 0x43D7 +0x8EA4A7E8 0x2F981 +0x8EA4A7E9 0x80B9 +0x8EA4A7EB 0x2664D +0x8EA4A7EC 0x81E4 +0x8EA4A7ED 0x81FD +0x8EA4A7EE 0x820F +0x8EA4A7EF 0x4460 +0x8EA4A7F0 0x26A09 +0x8EA4A7F1 0x26A08 +0x8EA4A7F2 0x449E +0x8EA4A7F3 0x44A1 +0x8EA4A7F4 0x26B1E +0x8EA4A7F5 0x26B1A +0x8EA4A7F6 0x26B23 +0x8EA4A7F7 0x26B15 +0x8EA4A7F8 0x26B19 +0x8EA4A7F9 0x26B16 +0x8EA4A7FA 0x82BF +0x8EA4A7FB 0x82CA +0x8EA4A7FC 0x26B14 +0x8EA4A7FD 0x26B18 +0x8EA4A7FE 0x82C1 +0x8EA4A8A1 0x44A0 +0x8EA4A8A2 0x2721F +0x8EA4A8A3 0x275DD +0x8EA4A8A4 0x275DF +0x8EA4A8A5 0x28469 +0x8EA4A8A6 0x8FD0 +0x8EA4A8A8 0x2846C +0x8EA4A8A9 0x48B9 +0x8EA4A8AA 0x28693 +0x8EA4A8AB 0x90AE +0x8EA4A8AC 0x28695 +0x8EA4A8AD 0x28694 +0x8EA4A8AE 0x28691 +0x8EA4A8AF 0x28697 +0x8EA4A8B0 0x28E30 +0x8EA4A8B1 0x49C1 +0x8EA4A8B2 0x49C2 +0x8EA4A8B3 0x9638 +0x8EA4A8B4 0x2FA18 +0x8EA4A8B5 0x341C +0x8EA4A8B6 0x20231 +0x8EA4A8B7 0x345E +0x8EA4A8B8 0x4FBC +0x8EA4A8B9 0x3459 +0x8EA4A8BA 0x345C +0x8EA4A8BB 0x20236 +0x8EA4A8BC 0x345F +0x8EA4A8BD 0x4FE9 +0x8EA4A8BE 0x4FBD +0x8EA4A8BF 0x4FE2 +0x8EA4A8C0 0x5158 +0x8EA4A8C1 0x205C9 +0x8EA4A8C2 0x205CA +0x8EA4A8C3 0x34CE +0x8EA4A8C4 0x20718 +0x8EA4A8C5 0x20712 +0x8EA4A8C6 0x20719 +0x8EA4A8C7 0x20710 +0x8EA4A8C8 0x20716 +0x8EA4A8C9 0x52C6 +0x8EA4A8CA 0x2085F +0x8EA4A8CB 0x52C8 +0x8EA4A8CC 0x208DF +0x8EA4A8CD 0x20917 +0x8EA4A8CE 0x5328 +0x8EA4A8CF 0x2093C +0x8EA4A8D0 0x5329 +0x8EA4A8D1 0x209EA +0x8EA4A8D2 0x209E9 +0x8EA4A8D3 0x20A1C +0x8EA4A8D4 0x20A58 +0x8EA4A8D5 0x20A64 +0x8EA4A8D6 0x20AF3 +0x8EA4A8D7 0x355F +0x8EA4A8D8 0x20C97 +0x8EA4A8D9 0x3585 +0x8EA4A8DA 0x20C5A +0x8EA4A8DB 0x20C59 +0x8EA4A8DC 0x3586 +0x8EA4A8DD 0x20C8E +0x8EA4A8DE 0x57B4 +0x8EA4A8DF 0x212BC +0x8EA4A8E0 0x57A9 +0x8EA4A8E1 0x3687 +0x8EA4A8E2 0x2160D +0x8EA4A8E3 0x215FC +0x8EA4A8E4 0x2160C +0x8EA4A8E5 0x21707 +0x8EA4A8E6 0x2170A +0x8EA4A8E7 0x36CA +0x8EA4A8E8 0x21702 +0x8EA4A8E9 0x36C3 +0x8EA4A8EA 0x21726 +0x8EA4A8EB 0x21708 +0x8EA4A8EC 0x2171D +0x8EA4A8ED 0x36C2 +0x8EA4A8EE 0x5B68 +0x8EA4A8EF 0x2194E +0x8EA4A8F0 0x3741 +0x8EA4A8F1 0x219ED +0x8EA4A8F2 0x219EE +0x8EA4A8F3 0x219EF +0x8EA4A8F4 0x3780 +0x8EA4A8F5 0x3781 +0x8EA4A8F6 0x21C50 +0x8EA4A8F7 0x21C4C +0x8EA4A8F8 0x3793 +0x8EA4A8F9 0x3792 +0x8EA4A8FA 0x21C4F +0x8EA4A8FB 0x37C5 +0x8EA4A8FC 0x21DD4 +0x8EA4A8FE 0x21DB0 +0x8EA4A9A1 0x3846 +0x8EA4A9A2 0x3841 +0x8EA4A9A3 0x3845 +0x8EA4A9A4 0x3842 +0x8EA4A9A5 0x383F +0x8EA4A9A6 0x220A5 +0x8EA4A9A7 0x22209 +0x8EA4A9A8 0x3882 +0x8EA4A9A9 0x3881 +0x8EA4A9AA 0x387F +0x8EA4A9AB 0x38A5 +0x8EA4A9AC 0x5F2B +0x8EA4A9AD 0x38B3 +0x8EA4A9AE 0x38B5 +0x8EA4A9AF 0x223F3 +0x8EA4A9B0 0x223D7 +0x8EA4A9B1 0x5F8D +0x8EA4A9B2 0x38DA +0x8EA4A9B3 0x224DC +0x8EA4A9B4 0x38DB +0x8EA4A9B5 0x390D +0x8EA4A9B6 0x6018 +0x8EA4A9B7 0x390E +0x8EA4A9B8 0x2260B +0x8EA4A9B9 0x391E +0x8EA4A9BA 0x3925 +0x8EA4A9BB 0x3926 +0x8EA4A9BC 0x391C +0x8EA4A9BD 0x3921 +0x8EA4A9BE 0x6057 +0x8EA4A9BF 0x6048 +0x8EA4A9C0 0x3927 +0x8EA4A9C1 0x391A +0x8EA4A9C2 0x2263A +0x8EA4A9C3 0x2260D +0x8EA4A9C4 0x22611 +0x8EA4A9C5 0x6038 +0x8EA4A9C6 0x22620 +0x8EA4A9C7 0x22601 +0x8EA4A9C8 0x3924 +0x8EA4A9C9 0x22637 +0x8EA4A9CA 0x2F8A3 +0x8EA4A9CB 0x6071 +0x8EA4A9CC 0x229AA +0x8EA4A9CD 0x39C1 +0x8EA4A9CE 0x39E1 +0x8EA4A9CF 0x22AE7 +0x8EA4A9D0 0x22AE8 +0x8EA4A9D1 0x6312 +0x8EA4A9D2 0x39EB +0x8EA4A9D3 0x22AF5 +0x8EA4A9D4 0x39E2 +0x8EA4A9D5 0x39D7 +0x8EA4A9D6 0x39E9 +0x8EA4A9D7 0x22B35 +0x8EA4A9D8 0x22AE6 +0x8EA4A9D9 0x630A +0x8EA4A9DA 0x22AF8 +0x8EA4A9DB 0x6323 +0x8EA4A9DC 0x22AF1 +0x8EA4A9DD 0x3A84 +0x8EA4A9DE 0x22F14 +0x8EA4A9DF 0x22F15 +0x8EA4A9E0 0x22F09 +0x8EA4A9E1 0x3AB5 +0x8EA4A9E2 0x3ABC +0x8EA4A9E3 0x3ADC +0x8EA4A9E4 0x3ADE +0x8EA4A9E5 0x3ADF +0x8EA4A9E6 0x2317B +0x8EA4A9E7 0x662A +0x8EA4A9E8 0x2317E +0x8EA4A9E9 0x23366 +0x8EA4A9EA 0x23367 +0x8EA4A9EB 0x2340A +0x8EA4A9EC 0x3B54 +0x8EA4A9ED 0x67E0 +0x8EA4A9EE 0x67BE +0x8EA4A9EF 0x3B53 +0x8EA4A9F0 0x3C24 +0x8EA4A9F1 0x3C25 +0x8EA4A9F2 0x6B29 +0x8EA4A9F3 0x3C28 +0x8EA4A9F4 0x3C27 +0x8EA4A9F5 0x2389C +0x8EA4A9F6 0x23962 +0x8EA4A9F7 0x239E1 +0x8EA4A9F8 0x239DE +0x8EA4A9F9 0x239DF +0x8EA4A9FA 0x239E9 +0x8EA4A9FB 0x3C8B +0x8EA4A9FC 0x23CE4 +0x8EA4A9FD 0x23CF7 +0x8EA4A9FE 0x3CDC +0x8EA4AAA1 0x6D43 +0x8EA4AAA2 0x23CEA +0x8EA4AAA3 0x23CF6 +0x8EA4AAA4 0x23D12 +0x8EA4AAA5 0x2F901 +0x8EA4AAA6 0x70A6 +0x8EA4AAA7 0x3DB2 +0x8EA4AAA8 0x70C0 +0x8EA4AAA9 0x241D9 +0x8EA4AAAA 0x722F +0x8EA4AAAB 0x2455F +0x8EA4AAAC 0x3E1B +0x8EA4AAAD 0x24573 +0x8EA4AAAE 0x3E32 +0x8EA4AAAF 0x7271 +0x8EA4AAB0 0x2463F +0x8EA4AAB1 0x24778 +0x8EA4AAB2 0x3E6B +0x8EA4AAB3 0x2477D +0x8EA4AAB4 0x3E6C +0x8EA4AAB5 0x3E6D +0x8EA4AAB6 0x24912 +0x8EA4AAB7 0x3EB9 +0x8EA4AAB8 0x3EBA +0x8EA4AAB9 0x3F09 +0x8EA4AABA 0x3F0A +0x8EA4AABB 0x24B2F +0x8EA4AABC 0x74EA +0x8EA4AABD 0x3F1B +0x8EA4AABE 0x24B30 +0x8EA4AABF 0x24BDB +0x8EA4AAC0 0x7520 +0x8EA4AAC1 0x3F58 +0x8EA4AAC2 0x24C29 +0x8EA4AAC3 0x3F5A +0x8EA4AAC4 0x2F936 +0x8EA4AAC5 0x24D40 +0x8EA4AAC6 0x3F77 +0x8EA4AAC7 0x24D3D +0x8EA4AAC8 0x24D3E +0x8EA4AAC9 0x3F79 +0x8EA4AACA 0x75A9 +0x8EA4AACB 0x24D38 +0x8EA4AACC 0x7685 +0x8EA4AACD 0x24F48 +0x8EA4AACE 0x3FEB +0x8EA4AACF 0x24FD0 +0x8EA4AAD0 0x3FFD +0x8EA4AAD1 0x3FFC +0x8EA4AAD2 0x7706 +0x8EA4AAD3 0x4015 +0x8EA4AAD4 0x4018 +0x8EA4AAD5 0x76F6 +0x8EA4AAD6 0x4016 +0x8EA4AAD7 0x4017 +0x8EA4AAD8 0x4019 +0x8EA4AAD9 0x7700 +0x8EA4AADA 0x401B +0x8EA4AADB 0x2510E +0x8EA4AADC 0x25109 +0x8EA4AADD 0x7702 +0x8EA4AADE 0x25107 +0x8EA4AADF 0x4087 +0x8EA4AAE0 0x2535F +0x8EA4AAE1 0x25360 +0x8EA4AAE2 0x409C +0x8EA4AAE3 0x2542A +0x8EA4AAE4 0x409A +0x8EA4AAE5 0x25429 +0x8EA4AAE6 0x40FF +0x8EA4AAE7 0x40FE +0x8EA4AAE8 0x2564D +0x8EA4AAE9 0x4131 +0x8EA4AAEA 0x412E +0x8EA4AAEB 0x4130 +0x8EA4AAEC 0x4132 +0x8EA4AAED 0x2576C +0x8EA4AAEF 0x412F +0x8EA4AAF0 0x25767 +0x8EA4AAF1 0x4195 +0x8EA4AAF2 0x4196 +0x8EA4AAF3 0x25939 +0x8EA4AAF4 0x25934 +0x8EA4AAF5 0x25A59 +0x8EA4AAF6 0x41C5 +0x8EA4AAF7 0x427A +0x8EA4AAF8 0x26223 +0x8EA4AAF9 0x4342 +0x8EA4AAFA 0x26282 +0x8EA4AAFB 0x4354 +0x8EA4AAFC 0x26283 +0x8EA4AAFD 0x262A8 +0x8EA4AAFE 0x26355 +0x8EA4ABA1 0x263F9 +0x8EA4ABA2 0x263F8 +0x8EA4ABA3 0x263FC +0x8EA4ABA4 0x263FA +0x8EA4ABA5 0x8009 +0x8EA4ABA6 0x2F97A +0x8EA4ABA7 0x439F +0x8EA4ABA8 0x43A0 +0x8EA4ABA9 0x43A2 +0x8EA4ABAA 0x43E0 +0x8EA4ABAB 0x26674 +0x8EA4ABAC 0x43E1 +0x8EA4ABAD 0x2666B +0x8EA4ABAE 0x26671 +0x8EA4ABAF 0x43DF +0x8EA4ABB0 0x26676 +0x8EA4ABB1 0x26A0E +0x8EA4ABB2 0x4462 +0x8EA4ABB3 0x4461 +0x8EA4ABB4 0x26A10 +0x8EA4ABB5 0x26A0F +0x8EA4ABB6 0x44A7 +0x8EA4ABB7 0x26B38 +0x8EA4ABB8 0x26B39 +0x8EA4ABB9 0x26B3A +0x8EA4ABBA 0x82DA +0x8EA4ABBB 0x26B37 +0x8EA4ABBC 0x26B3E +0x8EA4ABBD 0x830A +0x8EA4ABBE 0x4589 +0x8EA4ABBF 0x2719C +0x8EA4ABC0 0x2722A +0x8EA4ABC1 0x2723A +0x8EA4ABC2 0x2722B +0x8EA4ABC3 0x27228 +0x8EA4ABC4 0x275AA +0x8EA4ABC5 0x2760F +0x8EA4ABC6 0x461D +0x8EA4ABC7 0x27610 +0x8EA4ABC8 0x277E6 +0x8EA4ABC9 0x472A +0x8EA4ABCA 0x27D25 +0x8EA4ABCB 0x27E8E +0x8EA4ABCC 0x47D3 +0x8EA4ABCD 0x4842 +0x8EA4ABCE 0x4843 +0x8EA4ABCF 0x2848B +0x8EA4ABD0 0x4891 +0x8EA4ABD1 0x2848C +0x8EA4ABD2 0x2849A +0x8EA4ABD3 0x4890 +0x8EA4ABD4 0x48BF +0x8EA4ABD5 0x286B3 +0x8EA4ABD6 0x48BC +0x8EA4ABD7 0x286B2 +0x8EA4ABD8 0x48C0 +0x8EA4ABD9 0x49C7 +0x8EA4ABDA 0x49C5 +0x8EA4ABDB 0x9655 +0x8EA4ABDC 0x28E44 +0x8EA4ABDD 0x9652 +0x8EA4ABDE 0x4E35 +0x8EA4ABDF 0x20158 +0x8EA4ABE0 0x202A7 +0x8EA4ABE1 0x5034 +0x8EA4ABE2 0x5001 +0x8EA4ABE3 0x20263 +0x8EA4ABE4 0x500A +0x8EA4ABE5 0x3466 +0x8EA4ABE6 0x2026A +0x8EA4ABE7 0x20265 +0x8EA4ABE8 0x2026B +0x8EA4ABE9 0x34AD +0x8EA4ABEA 0x204ED +0x8EA4ABEB 0x205D9 +0x8EA4ABEC 0x2073B +0x8EA4ABED 0x20732 +0x8EA4ABEE 0x5258 +0x8EA4ABEF 0x20735 +0x8EA4ABF0 0x20731 +0x8EA4ABF1 0x2073E +0x8EA4ABF2 0x20743 +0x8EA4ABF3 0x20736 +0x8EA4ABF4 0x2086D +0x8EA4ABF5 0x351D +0x8EA4ABF6 0x208E4 +0x8EA4ABF7 0x3531 +0x8EA4ABF8 0x532B +0x8EA4ABF9 0x209F4 +0x8EA4ABFA 0x354C +0x8EA4ABFB 0x20A69 +0x8EA4ABFC 0x20A6B +0x8EA4ABFD 0x3595 +0x8EA4ABFE 0x3591 +0x8EA4ACA1 0x3594 +0x8EA4ACA2 0x20CBF +0x8EA4ACA3 0x20CC3 +0x8EA4ACA4 0x20CAE +0x8EA4ACA5 0x358F +0x8EA4ACA6 0x54EC +0x8EA4ACA7 0x20CB1 +0x8EA4ACA8 0x5515 +0x8EA4ACA9 0x54FE +0x8EA4ACAA 0x20CBB +0x8EA4ACAB 0x20CAF +0x8EA4ACAC 0x20CB0 +0x8EA4ACAD 0x54E3 +0x8EA4ACAE 0x5516 +0x8EA4ACAF 0x3640 +0x8EA4ACB0 0x212EF +0x8EA4ACB1 0x3641 +0x8EA4ACB2 0x212ED +0x8EA4ACB3 0x57D3 +0x8EA4ACB4 0x212F0 +0x8EA4ACB5 0x21593 +0x8EA4ACB6 0x21634 +0x8EA4ACB7 0x2162B +0x8EA4ACB8 0x5959 +0x8EA4ACB9 0x5A27 +0x8EA4ACBA 0x36D8 +0x8EA4ACBB 0x36D2 +0x8EA4ACBC 0x36DA +0x8EA4ACBD 0x5A28 +0x8EA4ACBE 0x5A10 +0x8EA4ACBF 0x36D7 +0x8EA4ACC0 0x5A0E +0x8EA4ACC1 0x3742 +0x8EA4ACC2 0x3757 +0x8EA4ACC3 0x21A04 +0x8EA4ACC4 0x21A03 +0x8EA4ACC5 0x21A02 +0x8EA4ACC6 0x5BAF +0x8EA4ACC7 0x21A05 +0x8EA4ACC8 0x5BBA +0x8EA4ACC9 0x5BB1 +0x8EA4ACCA 0x21A00 +0x8EA4ACCB 0x21B74 +0x8EA4ACCC 0x3778 +0x8EA4ACCD 0x3782 +0x8EA4ACCE 0x3797 +0x8EA4ACCF 0x21C65 +0x8EA4ACD0 0x21C63 +0x8EA4ACD1 0x37C9 +0x8EA4ACD2 0x21DD7 +0x8EA4ACD3 0x37C8 +0x8EA4ACD4 0x37D6 +0x8EA4ACD5 0x37CC +0x8EA4ACD6 0x21DE8 +0x8EA4ACD7 0x37D0 +0x8EA4ACD8 0x21DDB +0x8EA4ACD9 0x21DD8 +0x8EA4ACDA 0x37CE +0x8EA4ACDB 0x37C7 +0x8EA4ACDC 0x5CFC +0x8EA4ACDD 0x21E09 +0x8EA4ACDE 0x37CF +0x8EA4ACDF 0x37CB +0x8EA4ACE0 0x5CF2 +0x8EA4ACE1 0x5CFE +0x8EA4ACE2 0x21DE5 +0x8EA4ACE3 0x21DE7 +0x8EA4ACE4 0x5DF8 +0x8EA4ACE5 0x2203F +0x8EA4ACE6 0x3847 +0x8EA4ACE7 0x220C0 +0x8EA4ACE8 0x3848 +0x8EA4ACE9 0x220B9 +0x8EA4ACEA 0x220BA +0x8EA4ACEB 0x3883 +0x8EA4ACEC 0x3885 +0x8EA4ACED 0x3884 +0x8EA4ACEE 0x22220 +0x8EA4ACEF 0x2234F +0x8EA4ACF0 0x5F2C +0x8EA4ACF1 0x38B8 +0x8EA4ACF2 0x38BC +0x8EA4ACF3 0x22491 +0x8EA4ACF4 0x22490 +0x8EA4ACF5 0x224EE +0x8EA4ACF6 0x224F3 +0x8EA4ACF7 0x224EC +0x8EA4ACF8 0x224F1 +0x8EA4ACF9 0x224EB +0x8EA4ACFA 0x224F2 +0x8EA4ACFB 0x224F4 +0x8EA4ACFC 0x224ED +0x8EA4ACFD 0x22641 +0x8EA4ACFE 0x22648 +0x8EA4ADA1 0x22645 +0x8EA4ADA2 0x3931 +0x8EA4ADA3 0x3934 +0x8EA4ADA4 0x3936 +0x8EA4ADA5 0x6082 +0x8EA4ADA6 0x2267F +0x8EA4ADA7 0x2268B +0x8EA4ADA8 0x3923 +0x8EA4ADA9 0x2263B +0x8EA4ADAA 0x2264E +0x8EA4ADAB 0x393A +0x8EA4ADAC 0x6091 +0x8EA4ADAD 0x608F +0x8EA4ADAE 0x2267C +0x8EA4ADAF 0x39B4 +0x8EA4ADB0 0x39B5 +0x8EA4ADB1 0x39ED +0x8EA4ADB2 0x39EC +0x8EA4ADB3 0x39D8 +0x8EA4ADB4 0x22AF0 +0x8EA4ADB5 0x22B36 +0x8EA4ADB6 0x22B3F +0x8EA4ADB7 0x22B43 +0x8EA4ADB8 0x22B31 +0x8EA4ADB9 0x22B34 +0x8EA4ADBA 0x22B46 +0x8EA4ADBB 0x39F6 +0x8EA4ADBC 0x39E7 +0x8EA4ADBD 0x22B2F +0x8EA4ADBE 0x22EC3 +0x8EA4ADBF 0x3A7C +0x8EA4ADC0 0x3A7B +0x8EA4ADC1 0x22F36 +0x8EA4ADC2 0x3A88 +0x8EA4ADC3 0x6547 +0x8EA4ADC4 0x654C +0x8EA4ADC5 0x22F21 +0x8EA4ADC6 0x2F8C8 +0x8EA4ADC7 0x658A +0x8EA4ADC8 0x23073 +0x8EA4ADC9 0x3ABE +0x8EA4ADCA 0x230E6 +0x8EA4ADCB 0x3AE7 +0x8EA4ADCC 0x3AE5 +0x8EA4ADCD 0x3AEE +0x8EA4ADCE 0x67E1 +0x8EA4ADCF 0x684A +0x8EA4ADD0 0x2343F +0x8EA4ADD1 0x3B59 +0x8EA4ADD2 0x3B5E +0x8EA4ADD3 0x2346B +0x8EA4ADD4 0x3B5A +0x8EA4ADD5 0x683F +0x8EA4ADD6 0x3B61 +0x8EA4ADD7 0x3B58 +0x8EA4ADD8 0x3B5B +0x8EA4ADD9 0x67BD +0x8EA4ADDA 0x23471 +0x8EA4ADDB 0x3B5F +0x8EA4ADDC 0x2F8E2 +0x8EA4ADDD 0x3C2A +0x8EA4ADDE 0x3C2D +0x8EA4ADDF 0x238B0 +0x8EA4ADE0 0x3C23 +0x8EA4ADE1 0x3C2B +0x8EA4ADE2 0x3C2C +0x8EA4ADE3 0x239F3 +0x8EA4ADE4 0x3C7E +0x8EA4ADE5 0x2F8F5 +0x8EA4ADE6 0x3C93 +0x8EA4ADE7 0x3C99 +0x8EA4ADE8 0x23B61 +0x8EA4ADE9 0x23B5F +0x8EA4ADEA 0x3CB3 +0x8EA4ADEB 0x3CE7 +0x8EA4ADEC 0x3CEA +0x8EA4ADED 0x23D28 +0x8EA4ADEE 0x23D1E +0x8EA4ADEF 0x23D29 +0x8EA4ADF0 0x2F902 +0x8EA4ADF1 0x23CEB +0x8EA4ADF2 0x23D66 +0x8EA4ADF3 0x3DB4 +0x8EA4ADF4 0x241F6 +0x8EA4ADF5 0x70C9 +0x8EA4ADF6 0x3E17 +0x8EA4ADF7 0x24560 +0x8EA4ADF8 0x24577 +0x8EA4ADF9 0x245BB +0x8EA4ADFA 0x3E21 +0x8EA4ADFB 0x245BC +0x8EA4ADFC 0x3E38 +0x8EA4ADFD 0x3E37 +0x8EA4ADFE 0x3E74 +0x8EA4AEA1 0x3E73 +0x8EA4AEA2 0x3E75 +0x8EA4AEA3 0x247A2 +0x8EA4AEA4 0x247B2 +0x8EA4AEA5 0x2479E +0x8EA4AEA6 0x3E76 +0x8EA4AEA7 0x3E78 +0x8EA4AEA8 0x2493A +0x8EA4AEA9 0x24938 +0x8EA4AEAA 0x73BA +0x8EA4AEAB 0x3F0C +0x8EA4AEAC 0x3F20 +0x8EA4AEAD 0x3F1E +0x8EA4AEAE 0x24C4D +0x8EA4AEAF 0x3F5B +0x8EA4AEB0 0x24C5E +0x8EA4AEB1 0x3F5C +0x8EA4AEB2 0x24D17 +0x8EA4AEB3 0x3F83 +0x8EA4AEB4 0x75C6 +0x8EA4AEB5 0x3F80 +0x8EA4AEB6 0x3F81 +0x8EA4AEB7 0x3F7E +0x8EA4AEB8 0x3F88 +0x8EA4AEB9 0x3F85 +0x8EA4AEBA 0x3F89 +0x8EA4AEBB 0x3F7F +0x8EA4AEBC 0x3F8E +0x8EA4AEBD 0x24D64 +0x8EA4AEBE 0x24D67 +0x8EA4AEBF 0x3F84 +0x8EA4AEC0 0x75B7 +0x8EA4AEC1 0x768C +0x8EA4AEC2 0x24F59 +0x8EA4AEC3 0x768D +0x8EA4AEC4 0x24FDA +0x8EA4AEC5 0x3FEE +0x8EA4AEC6 0x3FED +0x8EA4AEC7 0x3FFE +0x8EA4AEC8 0x25051 +0x8EA4AEC9 0x3FFF +0x8EA4AECA 0x25055 +0x8EA4AECB 0x2513B +0x8EA4AECC 0x25134 +0x8EA4AECD 0x4023 +0x8EA4AECE 0x25137 +0x8EA4AECF 0x7717 +0x8EA4AED0 0x25131 +0x8EA4AED1 0x771C +0x8EA4AED2 0x401F +0x8EA4AED3 0x2513F +0x8EA4AED4 0x25159 +0x8EA4AED5 0x7714 +0x8EA4AED6 0x25361 +0x8EA4AED7 0x408F +0x8EA4AED8 0x4090 +0x8EA4AED9 0x25458 +0x8EA4AEDA 0x25462 +0x8EA4AEDB 0x25450 +0x8EA4AEDC 0x40A0 +0x8EA4AEDD 0x25451 +0x8EA4AEDE 0x40A6 +0x8EA4AEDF 0x409F +0x8EA4AEE0 0x25446 +0x8EA4AEE1 0x40A7 +0x8EA4AEE2 0x40A1 +0x8EA4AEE3 0x2562D +0x8EA4AEE4 0x4102 +0x8EA4AEE5 0x4136 +0x8EA4AEE6 0x25948 +0x8EA4AEE7 0x25951 +0x8EA4AEE8 0x2594A +0x8EA4AEE9 0x2594F +0x8EA4AEEA 0x25950 +0x8EA4AEEB 0x25949 +0x8EA4AEEC 0x25A63 +0x8EA4AEED 0x41C8 +0x8EA4AEEE 0x25A66 +0x8EA4AEEF 0x25A60 +0x8EA4AEF0 0x41D8 +0x8EA4AEF1 0x7B0C +0x8EA4AEF2 0x41DD +0x8EA4AEF3 0x41DC +0x8EA4AEF4 0x25AF1 +0x8EA4AEF5 0x41D7 +0x8EA4AEF6 0x25B07 +0x8EA4AEF7 0x41DA +0x8EA4AEF8 0x42BA +0x8EA4AEF9 0x25F9B +0x8EA4AEFA 0x25FA3 +0x8EA4AEFB 0x25F9D +0x8EA4AEFC 0x42BE +0x8EA4AEFD 0x42C2 +0x8EA4AEFE 0x42BB +0x8EA4AFA1 0x42C0 +0x8EA4AFA2 0x25FA9 +0x8EA4AFA3 0x25FA7 +0x8EA4AFA4 0x25FA4 +0x8EA4AFA5 0x7D23 +0x8EA4AFA6 0x25FBA +0x8EA4AFA7 0x221C1 +0x8EA4AFA8 0x26226 +0x8EA4AFA9 0x4343 +0x8EA4AFAA 0x4355 +0x8EA4AFAB 0x26294 +0x8EA4AFAC 0x26293 +0x8EA4AFAD 0x4357 +0x8EA4AFAE 0x4368 +0x8EA4AFAF 0x7F98 +0x8EA4AFB0 0x7F90 +0x8EA4AFB1 0x26407 +0x8EA4AFB2 0x2640D +0x8EA4AFB3 0x26402 +0x8EA4AFB4 0x2640C +0x8EA4AFB5 0x26409 +0x8EA4AFB6 0x26408 +0x8EA4AFB7 0x26413 +0x8EA4AFB8 0x43A1 +0x8EA4AFB9 0x264D2 +0x8EA4AFBA 0x803A +0x8EA4AFBB 0x2653E +0x8EA4AFBC 0x2653C +0x8EA4AFBD 0x26667 +0x8EA4AFBE 0x2669E +0x8EA4AFBF 0x43EA +0x8EA4AFC0 0x266AD +0x8EA4AFC1 0x43E7 +0x8EA4AFC2 0x266D9 +0x8EA4AFC3 0x26642 +0x8EA4AFC4 0x266A3 +0x8EA4AFC5 0x266A0 +0x8EA4AFC6 0x43E8 +0x8EA4AFC7 0x43E9 +0x8EA4AFC8 0x2667C +0x8EA4AFC9 0x26904 +0x8EA4AFCA 0x4454 +0x8EA4AFCB 0x26958 +0x8EA4AFCC 0x26960 +0x8EA4AFCD 0x269C9 +0x8EA4AFCE 0x269C8 +0x8EA4AFCF 0x8226 +0x8EA4AFD0 0x4465 +0x8EA4AFD1 0x26A1C +0x8EA4AFD2 0x26A1A +0x8EA4AFD3 0x448A +0x8EA4AFD4 0x26B74 +0x8EA4AFD5 0x44B0 +0x8EA4AFD6 0x26B6E +0x8EA4AFD7 0x26B6F +0x8EA4AFD8 0x26B79 +0x8EA4AFD9 0x44BC +0x8EA4AFDA 0x832E +0x8EA4AFDB 0x26B77 +0x8EA4AFDC 0x8355 +0x8EA4AFDD 0x831A +0x8EA4AFDE 0x44B8 +0x8EA4AFDF 0x833D +0x8EA4AFE0 0x26B7C +0x8EA4AFE1 0x44B2 +0x8EA4AFE2 0x26B70 +0x8EA4AFE3 0x8330 +0x8EA4AFE4 0x44BD +0x8EA4AFE5 0x26B7A +0x8EA4AFE6 0x26B82 +0x8EA4AFE7 0x458A +0x8EA4AFE8 0x8651 +0x8EA4AFE9 0x45A1 +0x8EA4AFEA 0x27244 +0x8EA4AFEB 0x45A2 +0x8EA4AFEC 0x27243 +0x8EA4AFED 0x8688 +0x8EA4AFEE 0x27245 +0x8EA4AFEF 0x4615 +0x8EA4AFF0 0x27625 +0x8EA4AFF1 0x2761F +0x8EA4AFF2 0x4620 +0x8EA4AFF3 0x4673 +0x8EA4AFF4 0x277E8 +0x8EA4AFF5 0x898E +0x8EA4AFF6 0x898D +0x8EA4AFF7 0x27809 +0x8EA4AFF8 0x278B7 +0x8EA4AFF9 0x278B9 +0x8EA4AFFA 0x27964 +0x8EA4AFFB 0x27963 +0x8EA4AFFC 0x8A09 +0x8EA4AFFD 0x8A14 +0x8EA4AFFE 0x46B1 +0x8EA4B0A1 0x27962 +0x8EA4B0A2 0x27965 +0x8EA4B0A3 0x472B +0x8EA4B0A4 0x27BAC +0x8EA4B0A5 0x4745 +0x8EA4B0A6 0x27D2A +0x8EA4B0A7 0x4797 +0x8EA4B0A8 0x4798 +0x8EA4B0A9 0x27E96 +0x8EA4B0AA 0x47D5 +0x8EA4B0AB 0x27FC2 +0x8EA4B0AC 0x2F9DE +0x8EA4B0AD 0x4893 +0x8EA4B0AE 0x4896 +0x8EA4B0AF 0x9007 +0x8EA4B0B0 0x4894 +0x8EA4B0B1 0x284AA +0x8EA4B0B2 0x284B0 +0x8EA4B0B3 0x48C7 +0x8EA4B0B4 0x48C5 +0x8EA4B0B5 0x286D4 +0x8EA4B0B6 0x286CD +0x8EA4B0B7 0x286D6 +0x8EA4B0B8 0x48C4 +0x8EA4B0B9 0x287F0 +0x8EA4B0BA 0x9579 +0x8EA4B0BB 0x9584 +0x8EA4B0BC 0x49CE +0x8EA4B0BD 0x49CA +0x8EA4B0BE 0x49CC +0x8EA4B0BF 0x9657 +0x8EA4B0C0 0x49C9 +0x8EA4B0C1 0x96BA +0x8EA4B0C3 0x29D4B +0x8EA4B0C4 0x20162 +0x8EA4B0C5 0x346E +0x8EA4B0C6 0x202B7 +0x8EA4B0C7 0x5067 +0x8EA4B0C8 0x202AC +0x8EA4B0C9 0x202AB +0x8EA4B0CA 0x3471 +0x8EA4B0CB 0x202C1 +0x8EA4B0CC 0x34BB +0x8EA4B0CD 0x34D3 +0x8EA4B0CE 0x205E8 +0x8EA4B0CF 0x20769 +0x8EA4B0D0 0x2075D +0x8EA4B0D1 0x2075F +0x8EA4B0D2 0x34F3 +0x8EA4B0D3 0x34ED +0x8EA4B0D4 0x34F5 +0x8EA4B0D5 0x20764 +0x8EA4B0D6 0x20762 +0x8EA4B0D7 0x34F1 +0x8EA4B0D8 0x34F2 +0x8EA4B0D9 0x34F6 +0x8EA4B0DA 0x3520 +0x8EA4B0DB 0x208F9 +0x8EA4B0DC 0x3528 +0x8EA4B0DD 0x208EE +0x8EA4B0DE 0x5318 +0x8EA4B0DF 0x532C +0x8EA4B0E0 0x5359 +0x8EA4B0E1 0x209AB +0x8EA4B0E2 0x209AC +0x8EA4B0E3 0x209AA +0x8EA4B0E4 0x5368 +0x8EA4B0E5 0x537E +0x8EA4B0E6 0x20A86 +0x8EA4B0E7 0x20A7A +0x8EA4B0E8 0x53A1 +0x8EA4B0E9 0x20D28 +0x8EA4B0EA 0x35A1 +0x8EA4B0EB 0x555B +0x8EA4B0EC 0x35AA +0x8EA4B0ED 0x35A9 +0x8EA4B0EE 0x20D31 +0x8EA4B0EF 0x35B5 +0x8EA4B0F0 0x35A5 +0x8EA4B0F1 0x35A8 +0x8EA4B0F2 0x5542 +0x8EA4B0F3 0x35A7 +0x8EA4B0F4 0x5547 +0x8EA4B0F5 0x20D2D +0x8EA4B0F6 0x2F843 +0x8EA4B0F7 0x553D +0x8EA4B0F8 0x20D2B +0x8EA4B0F9 0x20D32 +0x8EA4B0FA 0x5560 +0x8EA4B0FB 0x57EB +0x8EA4B0FC 0x21329 +0x8EA4B0FD 0x21326 +0x8EA4B0FE 0x21353 +0x8EA4B1A1 0x364D +0x8EA4B1A2 0x21333 +0x8EA4B1A3 0x21334 +0x8EA4B1A4 0x2159D +0x8EA4B1A5 0x369C +0x8EA4B1A6 0x595F +0x8EA4B1A7 0x21641 +0x8EA4B1A8 0x36EA +0x8EA4B1A9 0x36E5 +0x8EA4B1AA 0x21791 +0x8EA4B1AB 0x21769 +0x8EA4B1AC 0x5B6F +0x8EA4B1AD 0x21A22 +0x8EA4B1AE 0x375E +0x8EA4B1AF 0x21A34 +0x8EA4B1B0 0x2F86D +0x8EA4B1B1 0x21B2E +0x8EA4B1B2 0x3786 +0x8EA4B1B3 0x3784 +0x8EA4B1B4 0x21BF4 +0x8EA4B1B5 0x5C5A +0x8EA4B1B6 0x21E28 +0x8EA4B1B7 0x37D9 +0x8EA4B1B8 0x21E1C +0x8EA4B1B9 0x37DE +0x8EA4B1BA 0x21E11 +0x8EA4B1BB 0x21E24 +0x8EA4B1BC 0x21E15 +0x8EA4B1BD 0x37DB +0x8EA4B1BE 0x21E16 +0x8EA4B1BF 0x21E54 +0x8EA4B1C0 0x21E23 +0x8EA4B1C1 0x21FFF +0x8EA4B1C2 0x3831 +0x8EA4B1C3 0x220CF +0x8EA4B1C4 0x220D0 +0x8EA4B1C5 0x384B +0x8EA4B1C6 0x220CE +0x8EA4B1C7 0x3849 +0x8EA4B1C8 0x384A +0x8EA4B1C9 0x384C +0x8EA4B1CA 0x221C7 +0x8EA4B1CB 0x2225C +0x8EA4B1CC 0x388A +0x8EA4B1CD 0x22236 +0x8EA4B1CE 0x3889 +0x8EA4B1CF 0x388B +0x8EA4B1D0 0x22243 +0x8EA4B1D1 0x38BB +0x8EA4B1D2 0x5FA2 +0x8EA4B1D3 0x5F9D +0x8EA4B1D4 0x38E4 +0x8EA4B1D5 0x2252A +0x8EA4B1D6 0x22501 +0x8EA4B1D7 0x5FA3 +0x8EA4B1D8 0x2250B +0x8EA4B1D9 0x2250F +0x8EA4B1DA 0x393B +0x8EA4B1DB 0x392E +0x8EA4B1DC 0x393E +0x8EA4B1DD 0x3946 +0x8EA4B1DE 0x3953 +0x8EA4B1DF 0x226DF +0x8EA4B1E0 0x3944 +0x8EA4B1E1 0x226D2 +0x8EA4B1E2 0x393F +0x8EA4B1E3 0x3942 +0x8EA4B1E4 0x394F +0x8EA4B1E5 0x226CD +0x8EA4B1E6 0x3952 +0x8EA4B1E7 0x394A +0x8EA4B1E8 0x60C2 +0x8EA4B1E9 0x226DB +0x8EA4B1EA 0x395A +0x8EA4B1EB 0x60A5 +0x8EA4B1EC 0x3949 +0x8EA4B1ED 0x226CF +0x8EA4B1EE 0x621C +0x8EA4B1EF 0x229C0 +0x8EA4B1F0 0x621D +0x8EA4B1F1 0x3A03 +0x8EA4B1F2 0x22B81 +0x8EA4B1F3 0x22B82 +0x8EA4B1F4 0x22B8A +0x8EA4B1F5 0x22BA8 +0x8EA4B1F6 0x22B8C +0x8EA4B1F7 0x6395 +0x8EA4B1F8 0x639A +0x8EA4B1F9 0x3A01 +0x8EA4B1FA 0x3A06 +0x8EA4B1FB 0x39FB +0x8EA4B1FC 0x39F9 +0x8EA4B1FD 0x22B8E +0x8EA4B1FE 0x3A05 +0x8EA4B2A1 0x39FA +0x8EA4B2A2 0x22B8B +0x8EA4B2A3 0x63A6 +0x8EA4B2A4 0x22B96 +0x8EA4B2A5 0x39FE +0x8EA4B2A6 0x22BCC +0x8EA4B2A7 0x3A7D +0x8EA4B2A8 0x3A8C +0x8EA4B2A9 0x22F4F +0x8EA4B2AA 0x22F4A +0x8EA4B2AB 0x6550 +0x8EA4B2AC 0x3A8E +0x8EA4B2AD 0x22F4B +0x8EA4B2AE 0x22F3D +0x8EA4B2AF 0x6552 +0x8EA4B2B0 0x22F44 +0x8EA4B2B1 0x22F49 +0x8EA4B2B2 0x2309E +0x8EA4B2B3 0x230F3 +0x8EA4B2B4 0x65C8 +0x8EA4B2B5 0x230F5 +0x8EA4B2B6 0x3AF0 +0x8EA4B2B7 0x3AF2 +0x8EA4B2B8 0x231B3 +0x8EA4B2B9 0x6658 +0x8EA4B2BA 0x3AF1 +0x8EA4B2BB 0x3AE6 +0x8EA4B2BC 0x231E5 +0x8EA4B2BD 0x231B6 +0x8EA4B2BE 0x2F8D8 +0x8EA4B2BF 0x6888 +0x8EA4B2C0 0x23486 +0x8EA4B2C1 0x3B6F +0x8EA4B2C2 0x3B6D +0x8EA4B2C3 0x3B69 +0x8EA4B2C4 0x234B6 +0x8EA4B2C5 0x23485 +0x8EA4B2C6 0x3B6E +0x8EA4B2C7 0x234AB +0x8EA4B2C8 0x3C2F +0x8EA4B2C9 0x3C30 +0x8EA4B2CA 0x3C63 +0x8EA4B2CB 0x23A0D +0x8EA4B2CC 0x23A8B +0x8EA4B2CD 0x23A8C +0x8EA4B2CE 0x6BB8 +0x8EA4B2CF 0x3C80 +0x8EA4B2D0 0x6BB9 +0x8EA4B2D1 0x3C9A +0x8EA4B2D2 0x3C94 +0x8EA4B2D3 0x3C96 +0x8EA4B2D4 0x3C95 +0x8EA4B2D5 0x3C97 +0x8EA4B2D6 0x23B72 +0x8EA4B2D7 0x3CF4 +0x8EA4B2D8 0x3CFE +0x8EA4B2D9 0x23D8F +0x8EA4B2DA 0x3D01 +0x8EA4B2DB 0x23D79 +0x8EA4B2DC 0x3D02 +0x8EA4B2DD 0x23D77 +0x8EA4B2DE 0x3CF9 +0x8EA4B2DF 0x23D90 +0x8EA4B2E0 0x23D88 +0x8EA4B2E1 0x23D80 +0x8EA4B2E2 0x23D9E +0x8EA4B2E3 0x3CF6 +0x8EA4B2E4 0x3CF7 +0x8EA4B2E5 0x23D82 +0x8EA4B2E6 0x23D34 +0x8EA4B2E7 0x23D89 +0x8EA4B2E8 0x3CFF +0x8EA4B2E9 0x23D85 +0x8EA4B2EA 0x23D7E +0x8EA4B2EB 0x23D7A +0x8EA4B2EC 0x23DA6 +0x8EA4B2ED 0x6E0B +0x8EA4B2EE 0x23DB5 +0x8EA4B2EF 0x241F4 +0x8EA4B2F0 0x3DBF +0x8EA4B2F1 0x3DBC +0x8EA4B2F2 0x7105 +0x8EA4B2F3 0x24229 +0x8EA4B2F4 0x24226 +0x8EA4B2F5 0x2422A +0x8EA4B2F6 0x3DBE +0x8EA4B2F7 0x3DC0 +0x8EA4B2F8 0x2457E +0x8EA4B2F9 0x3E3B +0x8EA4B2FA 0x3E39 +0x8EA4B2FB 0x2465B +0x8EA4B2FC 0x24661 +0x8EA4B2FD 0x24660 +0x8EA4B2FE 0x3E3C +0x8EA4B3A1 0x2479B +0x8EA4B3A2 0x7314 +0x8EA4B3A3 0x7304 +0x8EA4B3A4 0x247C3 +0x8EA4B3A5 0x3E7D +0x8EA4B3A6 0x247CD +0x8EA4B3A7 0x3E7F +0x8EA4B3A8 0x3E7A +0x8EA4B3A9 0x3E7C +0x8EA4B3AA 0x7305 +0x8EA4B3AB 0x3E7E +0x8EA4B3AC 0x7315 +0x8EA4B3AD 0x730D +0x8EA4B3AE 0x3E80 +0x8EA4B3AF 0x3EBF +0x8EA4B3B0 0x3EC3 +0x8EA4B3B1 0x24954 +0x8EA4B3B2 0x24959 +0x8EA4B3B3 0x3ECC +0x8EA4B3B4 0x3F0E +0x8EA4B3B5 0x3F0D +0x8EA4B3B6 0x24AF5 +0x8EA4B3B7 0x3F26 +0x8EA4B3B8 0x3F24 +0x8EA4B3B9 0x3F25 +0x8EA4B3BA 0x3F23 +0x8EA4B3BB 0x3F21 +0x8EA4B3BC 0x3F29 +0x8EA4B3BD 0x24C69 +0x8EA4B3BE 0x24C65 +0x8EA4B3BF 0x3F8F +0x8EA4B3C0 0x3F8D +0x8EA4B3C1 0x24D7C +0x8EA4B3C2 0x3F8B +0x8EA4B3C3 0x3F92 +0x8EA4B3C4 0x24D80 +0x8EA4B3C5 0x3F90 +0x8EA4B3C6 0x24F65 +0x8EA4B3C7 0x3FEF +0x8EA4B3C8 0x3FF0 +0x8EA4B3C9 0x24FDF +0x8EA4B3CA 0x25060 +0x8EA4B3CB 0x4001 +0x8EA4B3CC 0x2505E +0x8EA4B3CD 0x402E +0x8EA4B3CE 0x402D +0x8EA4B3CF 0x772E +0x8EA4B3D0 0x4028 +0x8EA4B3D1 0x4029 +0x8EA4B3D2 0x402C +0x8EA4B3D3 0x2518F +0x8EA4B3D4 0x25161 +0x8EA4B3D5 0x2515A +0x8EA4B3D6 0x7741 +0x8EA4B3D7 0x4088 +0x8EA4B3D8 0x25367 +0x8EA4B3D9 0x4092 +0x8EA4B3DA 0x4091 +0x8EA4B3DB 0x77EA +0x8EA4B3DC 0x253BB +0x8EA4B3DD 0x7844 +0x8EA4B3DE 0x40A9 +0x8EA4B3DF 0x40AC +0x8EA4B3E0 0x40AE +0x8EA4B3E1 0x40AA +0x8EA4B3E2 0x4106 +0x8EA4B3E3 0x4105 +0x8EA4B3E4 0x414A +0x8EA4B3E5 0x413E +0x8EA4B3E6 0x413C +0x8EA4B3E7 0x413B +0x8EA4B3E8 0x2579B +0x8EA4B3E9 0x4142 +0x8EA4B3EA 0x4141 +0x8EA4B3EB 0x4143 +0x8EA4B3EC 0x257A9 +0x8EA4B3ED 0x4145 +0x8EA4B3EE 0x25966 +0x8EA4B3EF 0x419A +0x8EA4B3F0 0x419B +0x8EA4B3F1 0x419F +0x8EA4B3F2 0x419E +0x8EA4B3F3 0x25A72 +0x8EA4B3F4 0x25A76 +0x8EA4B3F5 0x25B14 +0x8EA4B3F6 0x41DE +0x8EA4B3F7 0x41E2 +0x8EA4B3F8 0x41E6 +0x8EA4B3F9 0x25B0F +0x8EA4B3FA 0x7B29 +0x8EA4B3FB 0x41E3 +0x8EA4B3FC 0x7B27 +0x8EA4B3FD 0x41DF +0x8EA4B3FE 0x25E41 +0x8EA4B4A1 0x25E46 +0x8EA4B4A2 0x7C9D +0x8EA4B4A3 0x25E4B +0x8EA4B4A4 0x25E43 +0x8EA4B4A5 0x427E +0x8EA4B4A6 0x42C9 +0x8EA4B4A7 0x42CC +0x8EA4B4A8 0x25FC6 +0x8EA4B4A9 0x42D1 +0x8EA4B4AA 0x25FC7 +0x8EA4B4AB 0x42D0 +0x8EA4B4AC 0x25FCE +0x8EA4B4AD 0x42CF +0x8EA4B4AE 0x42C8 +0x8EA4B4AF 0x25FC9 +0x8EA4B4B0 0x42CD +0x8EA4B4B1 0x25FCB +0x8EA4B4B2 0x25FC5 +0x8EA4B4B3 0x4349 +0x8EA4B4B4 0x4347 +0x8EA4B4B5 0x4358 +0x8EA4B4B6 0x436B +0x8EA4B4B7 0x436C +0x8EA4B4B8 0x436A +0x8EA4B4B9 0x26369 +0x8EA4B4BA 0x4380 +0x8EA4B4BB 0x4382 +0x8EA4B4BC 0x4384 +0x8EA4B4BD 0x7FC8 +0x8EA4B4BE 0x4383 +0x8EA4B4BF 0x2641E +0x8EA4B4C0 0x264BA +0x8EA4B4C1 0x43B6 +0x8EA4B4C2 0x26552 +0x8EA4B4C3 0x26551 +0x8EA4B4C4 0x26553 +0x8EA4B4C5 0x2669F +0x8EA4B4C6 0x266DB +0x8EA4B4C7 0x8126 +0x8EA4B4C8 0x43F1 +0x8EA4B4C9 0x266E3 +0x8EA4B4CA 0x43F6 +0x8EA4B4CB 0x43F3 +0x8EA4B4CC 0x43F0 +0x8EA4B4CD 0x811C +0x8EA4B4CE 0x266D7 +0x8EA4B4CF 0x266E9 +0x8EA4B4D0 0x8128 +0x8EA4B4D1 0x43F5 +0x8EA4B4D2 0x43F4 +0x8EA4B4D3 0x43F7 +0x8EA4B4D4 0x266DE +0x8EA4B4D5 0x266DC +0x8EA4B4D6 0x2693C +0x8EA4B4D7 0x2F98B +0x8EA4B4D8 0x4455 +0x8EA4B4D9 0x26A22 +0x8EA4B4DA 0x26A32 +0x8EA4B4DB 0x26A23 +0x8EA4B4DC 0x448B +0x8EA4B4DD 0x44CB +0x8EA4B4DE 0x44C2 +0x8EA4B4DF 0x26BD4 +0x8EA4B4E0 0x26BC8 +0x8EA4B4E1 0x26BBC +0x8EA4B4E2 0x44CA +0x8EA4B4E3 0x44CC +0x8EA4B4E4 0x26BCD +0x8EA4B4E5 0x44C7 +0x8EA4B4E6 0x44C9 +0x8EA4B4E7 0x8370 +0x8EA4B4E8 0x26BBE +0x8EA4B4E9 0x44C6 +0x8EA4B4EA 0x26C40 +0x8EA4B4EB 0x26BD6 +0x8EA4B4EC 0x44C3 +0x8EA4B4ED 0x8382 +0x8EA4B4EE 0x26BBD +0x8EA4B4EF 0x83AC +0x8EA4B4F0 0x26BBA +0x8EA4B4F1 0x44C4 +0x8EA4B4F2 0x26BC0 +0x8EA4B4F3 0x2F99B +0x8EA4B4F4 0x2F99D +0x8EA4B4F5 0x26BC1 +0x8EA4B4F6 0x271A6 +0x8EA4B4F7 0x271A5 +0x8EA4B4F8 0x271A8 +0x8EA4B4F9 0x45A9 +0x8EA4B4FA 0x86AD +0x8EA4B4FB 0x45A8 +0x8EA4B4FC 0x45A6 +0x8EA4B4FD 0x2725F +0x8EA4B4FE 0x27270 +0x8EA4B5A1 0x2726A +0x8EA4B5A2 0x27265 +0x8EA4B5A3 0x27267 +0x8EA4B5A4 0x2726F +0x8EA4B5A5 0x27287 +0x8EA4B5A6 0x86CA +0x8EA4B5A7 0x8851 +0x8EA4B5A8 0x2763D +0x8EA4B5A9 0x27643 +0x8EA4B5AA 0x4622 +0x8EA4B5AB 0x27640 +0x8EA4B5AC 0x4626 +0x8EA4B5AD 0x4624 +0x8EA4B5AE 0x4625 +0x8EA4B5AF 0x889D +0x8EA4B5B0 0x462A +0x8EA4B5B1 0x4674 +0x8EA4B5B2 0x27818 +0x8EA4B5B3 0x4679 +0x8EA4B5B4 0x8990 +0x8EA4B5B5 0x467A +0x8EA4B5B6 0x27819 +0x8EA4B5B7 0x278C1 +0x8EA4B5B8 0x89D8 +0x8EA4B5B9 0x89D7 +0x8EA4B5BA 0x4697 +0x8EA4B5BB 0x278BC +0x8EA4B5BC 0x278C8 +0x8EA4B5BD 0x8A2E +0x8EA4B5BE 0x27971 +0x8EA4B5BF 0x46BC +0x8EA4B5C0 0x2796E +0x8EA4B5C1 0x46B3 +0x8EA4B5C2 0x27978 +0x8EA4B5C3 0x46BF +0x8EA4B5C4 0x46B7 +0x8EA4B5C5 0x2F9CD +0x8EA4B5C6 0x2797A +0x8EA4B5C7 0x27BB1 +0x8EA4B5C8 0x27BAF +0x8EA4B5C9 0x27BB0 +0x8EA4B5CA 0x4734 +0x8EA4B5CB 0x4746 +0x8EA4B5CC 0x4748 +0x8EA4B5CD 0x8C59 +0x8EA4B5CE 0x27CA8 +0x8EA4B5CF 0x27CA6 +0x8EA4B5D0 0x4756 +0x8EA4B5D1 0x4767 +0x8EA4B5D2 0x27D48 +0x8EA4B5D3 0x27D45 +0x8EA4B5D4 0x4768 +0x8EA4B5D5 0x4799 +0x8EA4B5D6 0x479A +0x8EA4B5D7 0x27EA0 +0x8EA4B5D8 0x27EA4 +0x8EA4B5D9 0x47D8 +0x8EA4B5DA 0x27FD4 +0x8EA4B5DB 0x47DB +0x8EA4B5DC 0x47DC +0x8EA4B5DD 0x47DD +0x8EA4B5DE 0x47D7 +0x8EA4B5DF 0x27FD2 +0x8EA4B5E0 0x28222 +0x8EA4B5E1 0x4849 +0x8EA4B5E2 0x484A +0x8EA4B5E3 0x8EDA +0x8EA4B5E4 0x282B7 +0x8EA4B5E5 0x282CC +0x8EA4B5E6 0x9033 +0x8EA4B5E7 0x284E6 +0x8EA4B5E8 0x9018 +0x8EA4B5E9 0x489A +0x8EA4B5EA 0x284C8 +0x8EA4B5EB 0x48CD +0x8EA4B5EC 0x48CA +0x8EA4B5ED 0x286F4 +0x8EA4B5EE 0x48CB +0x8EA4B5EF 0x286ED +0x8EA4B5F0 0x48CF +0x8EA4B5F1 0x2867E +0x8EA4B5F2 0x2F9E3 +0x8EA4B5F3 0x48CC +0x8EA4B5F4 0x48EA +0x8EA4B5F5 0x48ED +0x8EA4B5F6 0x287F9 +0x8EA4B5F7 0x287FD +0x8EA4B5F8 0x48E9 +0x8EA4B5F9 0x28807 +0x8EA4B5FA 0x491A +0x8EA4B5FB 0x91EF +0x8EA4B5FC 0x498D +0x8EA4B5FD 0x49D2 +0x8EA4B5FE 0x28E78 +0x8EA4B6A1 0x28E7A +0x8EA4B6A2 0x28E79 +0x8EA4B6A3 0x28F8A +0x8EA4B6A4 0x49F2 +0x8EA4B6A5 0x2907B +0x8EA4B6A6 0x291D5 +0x8EA4B6A7 0x291E9 +0x8EA4B6A8 0x4A3D +0x8EA4B6A9 0x291EB +0x8EA4B6AA 0x4A3E +0x8EA4B6AB 0x4AF8 +0x8EA4B6AC 0x4B23 +0x8EA4B6AD 0x9AD9 +0x8EA4B6AE 0x4EB4 +0x8EA4B6AF 0x2016C +0x8EA4B6B0 0x50A0 +0x8EA4B6B1 0x5090 +0x8EA4B6B2 0x3475 +0x8EA4B6B3 0x5086 +0x8EA4B6B4 0x5084 +0x8EA4B6B5 0x202FA +0x8EA4B6B6 0x508A +0x8EA4B6B7 0x3476 +0x8EA4B6B8 0x3473 +0x8EA4B6B9 0x509F +0x8EA4B6BA 0x50A1 +0x8EA4B6BB 0x20318 +0x8EA4B6BC 0x5093 +0x8EA4B6BD 0x34BD +0x8EA4B6BE 0x205F6 +0x8EA4B6BF 0x51D5 +0x8EA4B6C0 0x2078A +0x8EA4B6C1 0x20789 +0x8EA4B6C2 0x34F9 +0x8EA4B6C3 0x2077F +0x8EA4B6C4 0x20788 +0x8EA4B6C5 0x34FA +0x8EA4B6C6 0x20783 +0x8EA4B6C7 0x20784 +0x8EA4B6C8 0x20798 +0x8EA4B6C9 0x20763 +0x8EA4B6CA 0x20787 +0x8EA4B6CB 0x3521 +0x8EA4B6CC 0x2F827 +0x8EA4B6CD 0x3529 +0x8EA4B6CE 0x208F5 +0x8EA4B6CF 0x20950 +0x8EA4B6D0 0x3538 +0x8EA4B6D1 0x354E +0x8EA4B6D2 0x20A87 +0x8EA4B6D3 0x20A8A +0x8EA4B6D4 0x20B65 +0x8EA4B6D5 0x20DB7 +0x8EA4B6D6 0x20DC1 +0x8EA4B6D7 0x20DC7 +0x8EA4B6D8 0x35C8 +0x8EA4B6D9 0x35BC +0x8EA4B6DA 0x20DC5 +0x8EA4B6DB 0x20DCB +0x8EA4B6DC 0x5590 +0x8EA4B6DD 0x20DD1 +0x8EA4B6DE 0x35BB +0x8EA4B6DF 0x35C2 +0x8EA4B6E0 0x35C0 +0x8EA4B6E1 0x20DB8 +0x8EA4B6E2 0x20DCA +0x8EA4B6E3 0x35CA +0x8EA4B6E4 0x20DDE +0x8EA4B6E5 0x35C9 +0x8EA4B6E6 0x20DCE +0x8EA4B6E7 0x35B8 +0x8EA4B6E8 0x5710 +0x8EA4B6E9 0x5817 +0x8EA4B6EA 0x21368 +0x8EA4B6EB 0x364E +0x8EA4B6EC 0x2136B +0x8EA4B6ED 0x5844 +0x8EA4B6EE 0x3650 +0x8EA4B6EF 0x582B +0x8EA4B6F0 0x2136A +0x8EA4B6F1 0x5845 +0x8EA4B6F2 0x21366 +0x8EA4B6F3 0x21377 +0x8EA4B6F4 0x21396 +0x8EA4B6F5 0x2136E +0x8EA4B6F6 0x2F856 +0x8EA4B6F7 0x368A +0x8EA4B6F8 0x21657 +0x8EA4B6F9 0x5965 +0x8EA4B6FA 0x21656 +0x8EA4B6FB 0x2179C +0x8EA4B6FC 0x2179E +0x8EA4B6FD 0x36FC +0x8EA4B6FE 0x36F9 +0x8EA4B7A1 0x217A1 +0x8EA4B7A2 0x3763 +0x8EA4B7A3 0x21A42 +0x8EA4B7A4 0x5BCF +0x8EA4B7A5 0x21A46 +0x8EA4B7A6 0x21A3E +0x8EA4B7A7 0x21B33 +0x8EA4B7A8 0x3787 +0x8EA4B7A9 0x3788 +0x8EA4B7AA 0x21BFA +0x8EA4B7AB 0x379A +0x8EA4B7AC 0x21C97 +0x8EA4B7AD 0x21C9B +0x8EA4B7AE 0x21CAA +0x8EA4B7AF 0x5D56 +0x8EA4B7B0 0x21E73 +0x8EA4B7B1 0x21E7C +0x8EA4B7B2 0x37E9 +0x8EA4B7B3 0x21E86 +0x8EA4B7B4 0x37EA +0x8EA4B7B5 0x5D54 +0x8EA4B7B6 0x3850 +0x8EA4B7B7 0x220F3 +0x8EA4B7B8 0x220F0 +0x8EA4B7B9 0x3856 +0x8EA4B7BA 0x3852 +0x8EA4B7BB 0x384F +0x8EA4B7BC 0x3854 +0x8EA4B7BD 0x3851 +0x8EA4B7BE 0x220EC +0x8EA4B7BF 0x222AF +0x8EA4B7C0 0x388E +0x8EA4B7C1 0x388F +0x8EA4B7C2 0x22264 +0x8EA4B7C3 0x22268 +0x8EA4B7C4 0x2235A +0x8EA4B7C5 0x5F3D +0x8EA4B7C6 0x2251F +0x8EA4B7C7 0x22525 +0x8EA4B7C8 0x38ED +0x8EA4B7C9 0x38EB +0x8EA4B7CA 0x5FA4 +0x8EA4B7CB 0x226C6 +0x8EA4B7CC 0x226D6 +0x8EA4B7CD 0x226C3 +0x8EA4B7CE 0x3962 +0x8EA4B7CF 0x2272C +0x8EA4B7D0 0x395D +0x8EA4B7D1 0x2272E +0x8EA4B7D2 0x2275E +0x8EA4B7D3 0x22733 +0x8EA4B7D4 0x3961 +0x8EA4B7D5 0x3965 +0x8EA4B7D6 0x395C +0x8EA4B7D7 0x2272D +0x8EA4B7D8 0x22746 +0x8EA4B7D9 0x395F +0x8EA4B7DA 0x226C1 +0x8EA4B7DB 0x2273A +0x8EA4B7DC 0x229CC +0x8EA4B7DD 0x22B9D +0x8EA4B7DE 0x22B83 +0x8EA4B7DF 0x22BF6 +0x8EA4B7E0 0x63EC +0x8EA4B7E1 0x3A16 +0x8EA4B7E2 0x3A0A +0x8EA4B7E3 0x22BF8 +0x8EA4B7E4 0x3A0E +0x8EA4B7E5 0x3A12 +0x8EA4B7E6 0x22BFE +0x8EA4B7E7 0x22BF3 +0x8EA4B7E8 0x3A11 +0x8EA4B7E9 0x22BEB +0x8EA4B7EA 0x22BFA +0x8EA4B7EB 0x3A10 +0x8EA4B7EC 0x22C07 +0x8EA4B7ED 0x22BFC +0x8EA4B7EE 0x3A09 +0x8EA4B7EF 0x63FA +0x8EA4B7F0 0x3A15 +0x8EA4B7F1 0x63D4 +0x8EA4B7F2 0x22F72 +0x8EA4B7F3 0x22F73 +0x8EA4B7F4 0x22F74 +0x8EA4B7F5 0x3A91 +0x8EA4B7F6 0x3A95 +0x8EA4B7F7 0x3A93 +0x8EA4B7F8 0x3A92 +0x8EA4B7F9 0x3A8F +0x8EA4B7FA 0x22F5F +0x8EA4B7FB 0x22F60 +0x8EA4B7FC 0x230AA +0x8EA4B7FD 0x23134 +0x8EA4B7FE 0x3AF6 +0x8EA4B8A1 0x231B4 +0x8EA4B8A2 0x3AFB +0x8EA4B8A3 0x231F0 +0x8EA4B8A4 0x6675 +0x8EA4B8A5 0x3AF9 +0x8EA4B8A6 0x2320D +0x8EA4B8A7 0x231F3 +0x8EA4B8A8 0x2320F +0x8EA4B8A9 0x671C +0x8EA4B8AA 0x3B7D +0x8EA4B8AB 0x234C9 +0x8EA4B8AC 0x3B7A +0x8EA4B8AD 0x3B7F +0x8EA4B8AE 0x234C5 +0x8EA4B8AF 0x3B78 +0x8EA4B8B0 0x234D7 +0x8EA4B8B1 0x234CC +0x8EA4B8B2 0x68D9 +0x8EA4B8B3 0x234E7 +0x8EA4B8B4 0x3B70 +0x8EA4B8B5 0x3B82 +0x8EA4B8B6 0x234C1 +0x8EA4B8B7 0x3B84 +0x8EA4B8B8 0x234E8 +0x8EA4B8B9 0x3C33 +0x8EA4B8BA 0x238CB +0x8EA4B8BB 0x3C32 +0x8EA4B8BC 0x3C36 +0x8EA4B8BD 0x238C8 +0x8EA4B8BE 0x2397A +0x8EA4B8BF 0x3C56 +0x8EA4B8C0 0x23979 +0x8EA4B8C1 0x2397E +0x8EA4B8C2 0x3C67 +0x8EA4B8C3 0x23A1B +0x8EA4B8C4 0x3C65 +0x8EA4B8C5 0x3C64 +0x8EA4B8C6 0x3C66 +0x8EA4B8C7 0x23A1F +0x8EA4B8C8 0x23A19 +0x8EA4B8C9 0x3C81 +0x8EA4B8CA 0x3C82 +0x8EA4B8CB 0x3C83 +0x8EA4B8CC 0x3C9E +0x8EA4B8CD 0x23B89 +0x8EA4B8CE 0x6BF1 +0x8EA4B8CF 0x3C9D +0x8EA4B8D0 0x23B8B +0x8EA4B8D1 0x3D0F +0x8EA4B8D2 0x3D12 +0x8EA4B8D3 0x23E09 +0x8EA4B8D4 0x23DFE +0x8EA4B8D5 0x23E00 +0x8EA4B8D6 0x3D10 +0x8EA4B8D7 0x3D18 +0x8EA4B8D8 0x23E0B +0x8EA4B8D9 0x3D14 +0x8EA4B8DA 0x3D19 +0x8EA4B8DB 0x6E37 +0x8EA4B8DD 0x23E4A +0x8EA4B8DE 0x6E7D +0x8EA4B8DF 0x6E86 +0x8EA4B8E0 0x3DC8 +0x8EA4B8E1 0x3DC4 +0x8EA4B8E2 0x3DC6 +0x8EA4B8E3 0x24279 +0x8EA4B8E4 0x3DC7 +0x8EA4B8E5 0x3DC3 +0x8EA4B8E6 0x2426C +0x8EA4B8E7 0x24299 +0x8EA4B8E8 0x2F91B +0x8EA4B8E9 0x24262 +0x8EA4B8EA 0x24514 +0x8EA4B8EB 0x3E19 +0x8EA4B8EC 0x3E1C +0x8EA4B8ED 0x245C8 +0x8EA4B8EE 0x245D7 +0x8EA4B8EF 0x2460C +0x8EA4B8F0 0x3E41 +0x8EA4B8F1 0x24670 +0x8EA4B8F2 0x3E42 +0x8EA4B8F3 0x3E43 +0x8EA4B8F4 0x24671 +0x8EA4B8F5 0x247DF +0x8EA4B8F6 0x247E4 +0x8EA4B8F7 0x3E82 +0x8EA4B8F8 0x247E7 +0x8EA4B8F9 0x3E81 +0x8EA4B8FA 0x3E94 +0x8EA4B8FB 0x3E84 +0x8EA4B8FC 0x24990 +0x8EA4B8FD 0x3ED2 +0x8EA4B8FE 0x3F0F +0x8EA4B9A1 0x3F22 +0x8EA4B9A2 0x24B4C +0x8EA4B9A3 0x3F27 +0x8EA4B9A4 0x3F2A +0x8EA4B9A5 0x74FA +0x8EA4B9A6 0x3F28 +0x8EA4B9A7 0x24B4F +0x8EA4B9A8 0x3F60 +0x8EA4B9A9 0x24C7D +0x8EA4B9AA 0x24C7E +0x8EA4B9AB 0x24C7C +0x8EA4B9AC 0x7572 +0x8EA4B9AD 0x24C8D +0x8EA4B9AE 0x24D19 +0x8EA4B9AF 0x3F9B +0x8EA4B9B0 0x3F9C +0x8EA4B9B1 0x24DC0 +0x8EA4B9B2 0x3F93 +0x8EA4B9B3 0x3F94 +0x8EA4B9B4 0x75DC +0x8EA4B9B5 0x3FA0 +0x8EA4B9B6 0x3F99 +0x8EA4B9B7 0x24DB6 +0x8EA4B9B8 0x3FA1 +0x8EA4B9B9 0x24DA8 +0x8EA4B9BA 0x3FF1 +0x8EA4B9BB 0x24FEB +0x8EA4B9BC 0x24FE7 +0x8EA4B9BD 0x2506F +0x8EA4B9BE 0x251C7 +0x8EA4B9BF 0x4036 +0x8EA4B9C0 0x2519F +0x8EA4B9C1 0x4037 +0x8EA4B9C2 0x403F +0x8EA4B9C3 0x403C +0x8EA4B9C4 0x251C4 +0x8EA4B9C5 0x4034 +0x8EA4B9C6 0x4039 +0x8EA4B9C7 0x403B +0x8EA4B9C8 0x4035 +0x8EA4B9C9 0x4030 +0x8EA4B9CA 0x4032 +0x8EA4B9CB 0x4038 +0x8EA4B9CC 0x403E +0x8EA4B9CD 0x403A +0x8EA4B9CE 0x2519B +0x8EA4B9CF 0x25197 +0x8EA4B9D0 0x251C5 +0x8EA4B9D1 0x2536B +0x8EA4B9D2 0x253CE +0x8EA4B9D3 0x40B6 +0x8EA4B9D4 0x7867 +0x8EA4B9D5 0x254B1 +0x8EA4B9D6 0x254AE +0x8EA4B9D7 0x254B0 +0x8EA4B9D8 0x40B3 +0x8EA4B9D9 0x4109 +0x8EA4B9DA 0x7977 +0x8EA4B9DB 0x2573E +0x8EA4B9DC 0x257B5 +0x8EA4B9DD 0x257BA +0x8EA4B9DE 0x414C +0x8EA4B9DF 0x257B2 +0x8EA4B9E0 0x257B4 +0x8EA4B9E1 0x4153 +0x8EA4B9E2 0x414D +0x8EA4B9E3 0x4151 +0x8EA4B9E4 0x414F +0x8EA4B9E5 0x7A9B +0x8EA4B9E6 0x25977 +0x8EA4B9E7 0x41A2 +0x8EA4B9E8 0x25986 +0x8EA4B9E9 0x2597B +0x8EA4B9EA 0x41CD +0x8EA4B9EB 0x25A7E +0x8EA4B9EC 0x25B2E +0x8EA4B9ED 0x41E7 +0x8EA4B9EE 0x25B2F +0x8EA4B9EF 0x41F0 +0x8EA4B9F0 0x25B37 +0x8EA4B9F1 0x41E9 +0x8EA4B9F2 0x41EC +0x8EA4B9F3 0x25B32 +0x8EA4B9F4 0x41E8 +0x8EA4B9F5 0x41EE +0x8EA4B9F6 0x4202 +0x8EA4B9F7 0x25B36 +0x8EA4B9F8 0x25B39 +0x8EA4B9F9 0x25B35 +0x8EA4B9FA 0x25E5C +0x8EA4B9FB 0x4282 +0x8EA4B9FC 0x4283 +0x8EA4B9FD 0x4286 +0x8EA4B9FE 0x25E7B +0x8EA4BAA1 0x25E61 +0x8EA4BAA2 0x25FEE +0x8EA4BAA3 0x25FEB +0x8EA4BAA4 0x25FEF +0x8EA4BAA5 0x26020 +0x8EA4BAA6 0x7D2A +0x8EA4BAA7 0x7D65 +0x8EA4BAA8 0x434A +0x8EA4BAA9 0x26230 +0x8EA4BAAA 0x435A +0x8EA4BAAB 0x7F64 +0x8EA4BAAC 0x262BE +0x8EA4BAAD 0x436E +0x8EA4BAAE 0x26367 +0x8EA4BAAF 0x2637C +0x8EA4BAB0 0x4370 +0x8EA4BAB1 0x436F +0x8EA4BAB2 0x26424 +0x8EA4BAB3 0x438A +0x8EA4BAB4 0x4387 +0x8EA4BAB5 0x4388 +0x8EA4BAB6 0x26429 +0x8EA4BAB7 0x264EF +0x8EA4BAB8 0x8020 +0x8EA4BAB9 0x43B7 +0x8EA4BABA 0x43FD +0x8EA4BABB 0x8120 +0x8EA4BABC 0x2670D +0x8EA4BABD 0x4405 +0x8EA4BABE 0x813C +0x8EA4BABF 0x4408 +0x8EA4BAC0 0x4403 +0x8EA4BAC1 0x4402 +0x8EA4BAC2 0x4404 +0x8EA4BAC3 0x3B39 +0x8EA4BAC4 0x4409 +0x8EA4BAC5 0x43FF +0x8EA4BAC6 0x26764 +0x8EA4BAC7 0x813F +0x8EA4BAC8 0x26715 +0x8EA4BAC9 0x43FC +0x8EA4BACA 0x4401 +0x8EA4BACB 0x440A +0x8EA4BACC 0x81F0 +0x8EA4BACD 0x81F5 +0x8EA4BACE 0x446B +0x8EA4BACF 0x446C +0x8EA4BAD0 0x26A35 +0x8EA4BAD1 0x26A36 +0x8EA4BAD2 0x26A34 +0x8EA4BAD3 0x26A37 +0x8EA4BAD4 0x26C47 +0x8EA4BAD5 0x26C2B +0x8EA4BAD6 0x44DE +0x8EA4BAD7 0x26C41 +0x8EA4BAD8 0x26C43 +0x8EA4BAD9 0x44DB +0x8EA4BADA 0x26C42 +0x8EA4BADB 0x44DD +0x8EA4BADC 0x44E3 +0x8EA4BADD 0x26C32 +0x8EA4BADE 0x44E0 +0x8EA4BADF 0x44D9 +0x8EA4BAE0 0x44D8 +0x8EA4BAE1 0x44E4 +0x8EA4BAE2 0x26C44 +0x8EA4BAE3 0x26C4A +0x8EA4BAE4 0x44DA +0x8EA4BAE5 0x44EF +0x8EA4BAE6 0x2F9A0 +0x8EA4BAE7 0x8415 +0x8EA4BAE8 0x83BE +0x8EA4BAE9 0x26C54 +0x8EA4BAEA 0x26C6E +0x8EA4BAEB 0x26C52 +0x8EA4BAEC 0x44D7 +0x8EA4BAED 0x45B3 +0x8EA4BAEE 0x45BB +0x8EA4BAEF 0x86E5 +0x8EA4BAF0 0x45B2 +0x8EA4BAF1 0x86D2 +0x8EA4BAF2 0x45AD +0x8EA4BAF3 0x27292 +0x8EA4BAF4 0x45AF +0x8EA4BAF5 0x2F9B8 +0x8EA4BAF6 0x86E0 +0x8EA4BAF7 0x272BF +0x8EA4BAF8 0x4616 +0x8EA4BAF9 0x4628 +0x8EA4BAFA 0x4623 +0x8EA4BAFB 0x88B3 +0x8EA4BAFC 0x27641 +0x8EA4BAFD 0x27669 +0x8EA4BAFE 0x27665 +0x8EA4BBA1 0x4675 +0x8EA4BBA2 0x467E +0x8EA4BBA3 0x467C +0x8EA4BBA4 0x27822 +0x8EA4BBA5 0x2781D +0x8EA4BBA6 0x278D2 +0x8EA4BBA7 0x278DA +0x8EA4BBA8 0x278DB +0x8EA4BBA9 0x46CE +0x8EA4BBAA 0x46CD +0x8EA4BBAB 0x46CF +0x8EA4BBAC 0x8A53 +0x8EA4BBAD 0x279A4 +0x8EA4BBAE 0x2799E +0x8EA4BBAF 0x8A37 +0x8EA4BBB0 0x8A47 +0x8EA4BBB1 0x8A5C +0x8EA4BBB2 0x2799D +0x8EA4BBB3 0x46C4 +0x8EA4BBB4 0x46CC +0x8EA4BBB5 0x46C8 +0x8EA4BBB6 0x46C7 +0x8EA4BBB7 0x279AD +0x8EA4BBB8 0x279A6 +0x8EA4BBB9 0x279A7 +0x8EA4BBBA 0x27BB3 +0x8EA4BBBB 0x27BE0 +0x8EA4BBBC 0x27C35 +0x8EA4BBBD 0x27C37 +0x8EA4BBBE 0x475A +0x8EA4BBBF 0x476A +0x8EA4BBC0 0x27D4A +0x8EA4BBC1 0x476B +0x8EA4BBC2 0x476D +0x8EA4BBC3 0x476F +0x8EA4BBC4 0x27E5E +0x8EA4BBC5 0x479E +0x8EA4BBC6 0x27EC0 +0x8EA4BBC7 0x47A4 +0x8EA4BBC8 0x47A3 +0x8EA4BBC9 0x47E4 +0x8EA4BBCA 0x47E8 +0x8EA4BBCB 0x47E9 +0x8EA4BBCC 0x47E0 +0x8EA4BBCD 0x47E3 +0x8EA4BBCE 0x27FF9 +0x8EA4BBCF 0x47EA +0x8EA4BBD0 0x47E1 +0x8EA4BBD1 0x47ED +0x8EA4BBD2 0x4834 +0x8EA4BBD3 0x4835 +0x8EA4BBD4 0x4851 +0x8EA4BBD5 0x8EF0 +0x8EA4BBD6 0x284F0 +0x8EA4BBD7 0x489D +0x8EA4BBD8 0x284F3 +0x8EA4BBD9 0x2851B +0x8EA4BBDA 0x284F2 +0x8EA4BBDB 0x284FB +0x8EA4BBDC 0x2871C +0x8EA4BBDD 0x28713 +0x8EA4BBDE 0x48D0 +0x8EA4BBDF 0x2870F +0x8EA4BBE0 0x48EE +0x8EA4BBE1 0x28816 +0x8EA4BBE2 0x28811 +0x8EA4BBE3 0x28812 +0x8EA4BBE4 0x48F2 +0x8EA4BBE5 0x2880E +0x8EA4BBE6 0x921D +0x8EA4BBE7 0x4988 +0x8EA4BBE8 0x28C67 +0x8EA4BBE9 0x28CF2 +0x8EA4BBEA 0x28CDA +0x8EA4BBEB 0x498F +0x8EA4BBEC 0x28CDC +0x8EA4BBED 0x49D8 +0x8EA4BBEE 0x28F94 +0x8EA4BBEF 0x28F9B +0x8EA4BBF0 0x28F92 +0x8EA4BBF1 0x28F9A +0x8EA4BBF2 0x29088 +0x8EA4BBF3 0x29086 +0x8EA4BBF4 0x4A3F +0x8EA4BBF5 0x291EF +0x8EA4BBF6 0x4A52 +0x8EA4BBF7 0x976B +0x8EA4BBF8 0x2925E +0x8EA4BBF9 0x4A50 +0x8EA4BBFA 0x29458 +0x8EA4BBFB 0x4AB1 +0x8EA4BBFC 0x29456 +0x8EA4BBFD 0x29454 +0x8EA4BBFE 0x4AF9 +0x8EA4BCA1 0x2959B +0x8EA4BCA2 0x29696 +0x8EA4BCA3 0x296A4 +0x8EA4BCA4 0x4B26 +0x8EA4BCA5 0x4B28 +0x8EA4BCA6 0x2969A +0x8EA4BCA7 0x29A12 +0x8EA4BCA8 0x3480 +0x8EA4BCA9 0x50C0 +0x8EA4BCAA 0x3481 +0x8EA4BCAB 0x2036B +0x8EA4BCAC 0x347E +0x8EA4BCAD 0x347F +0x8EA4BCAE 0x20337 +0x8EA4BCAF 0x2033C +0x8EA4BCB0 0x2F80A +0x8EA4BCB1 0x204F7 +0x8EA4BCB2 0x34BE +0x8EA4BCB3 0x20566 +0x8EA4BCB4 0x34D6 +0x8EA4BCB5 0x207A9 +0x8EA4BCB6 0x207AE +0x8EA4BCB7 0x207AD +0x8EA4BCB8 0x207C8 +0x8EA4BCB9 0x207A5 +0x8EA4BCBA 0x207B0 +0x8EA4BCBB 0x20895 +0x8EA4BCBC 0x52E5 +0x8EA4BCBD 0x20925 +0x8EA4BCBE 0x3534 +0x8EA4BCBF 0x20A99 +0x8EA4BCC0 0x53AF +0x8EA4BCC1 0x20B74 +0x8EA4BCC2 0x20B70 +0x8EA4BCC3 0x20B6F +0x8EA4BCC4 0x20E41 +0x8EA4BCC5 0x20E54 +0x8EA4BCC6 0x35D5 +0x8EA4BCC7 0x35D8 +0x8EA4BCC8 0x20E40 +0x8EA4BCC9 0x20E38 +0x8EA4BCCA 0x35D4 +0x8EA4BCCB 0x55D8 +0x8EA4BCCC 0x35D9 +0x8EA4BCCD 0x20E52 +0x8EA4BCCE 0x20E3A +0x8EA4BCCF 0x20E57 +0x8EA4BCD0 0x2F84A +0x8EA4BCD1 0x20E59 +0x8EA4BCD2 0x5711 +0x8EA4BCD3 0x5867 +0x8EA4BCD4 0x213B4 +0x8EA4BCD5 0x213C0 +0x8EA4BCD6 0x365D +0x8EA4BCD7 0x5843 +0x8EA4BCD8 0x365E +0x8EA4BCD9 0x3659 +0x8EA4BCDA 0x21375 +0x8EA4BCDB 0x365A +0x8EA4BCDC 0x36A0 +0x8EA4BCDD 0x21660 +0x8EA4BCDE 0x21647 +0x8EA4BCDF 0x3705 +0x8EA4BCE0 0x217F0 +0x8EA4BCE1 0x3707 +0x8EA4BCE2 0x217EF +0x8EA4BCE3 0x370E +0x8EA4BCE4 0x370C +0x8EA4BCE5 0x217EC +0x8EA4BCE6 0x21983 +0x8EA4BCE7 0x3745 +0x8EA4BCE8 0x21984 +0x8EA4BCE9 0x2198F +0x8EA4BCEA 0x3764 +0x8EA4BCEB 0x21A61 +0x8EA4BCEC 0x3765 +0x8EA4BCED 0x21A69 +0x8EA4BCEE 0x5BDD +0x8EA4BCEF 0x3766 +0x8EA4BCF0 0x21A62 +0x8EA4BCF1 0x3789 +0x8EA4BCF2 0x37EC +0x8EA4BCF3 0x37F1 +0x8EA4BCF4 0x5D70 +0x8EA4BCF5 0x5D6A +0x8EA4BCF6 0x37F0 +0x8EA4BCF7 0x37F8 +0x8EA4BCF8 0x5D74 +0x8EA4BCF9 0x5D5F +0x8EA4BCFA 0x21EAE +0x8EA4BCFB 0x5D61 +0x8EA4BCFC 0x5D73 +0x8EA4BCFD 0x21EB2 +0x8EA4BCFE 0x37F2 +0x8EA4BDA1 0x37F4 +0x8EA4BDA2 0x2210B +0x8EA4BDA3 0x3858 +0x8EA4BDA4 0x22110 +0x8EA4BDA5 0x2210D +0x8EA4BDA6 0x385A +0x8EA4BDA7 0x3859 +0x8EA4BDA8 0x3857 +0x8EA4BDA9 0x385B +0x8EA4BDAA 0x5E50 +0x8EA4BDAB 0x2227F +0x8EA4BDAC 0x22281 +0x8EA4BDAD 0x38A6 +0x8EA4BDAE 0x38C2 +0x8EA4BDAF 0x38C1 +0x8EA4BDB0 0x5F3F +0x8EA4BDB1 0x2240B +0x8EA4BDB2 0x2254E +0x8EA4BDB3 0x38EF +0x8EA4BDB4 0x5FB0 +0x8EA4BDB5 0x227EA +0x8EA4BDB6 0x22745 +0x8EA4BDB7 0x3968 +0x8EA4BDB8 0x6135 +0x8EA4BDB9 0x612D +0x8EA4BDBA 0x3973 +0x8EA4BDBB 0x396E +0x8EA4BDBC 0x3974 +0x8EA4BDBD 0x6102 +0x8EA4BDBE 0x3966 +0x8EA4BDBF 0x22728 +0x8EA4BDC0 0x2275D +0x8EA4BDC1 0x229DC +0x8EA4BDC2 0x39B9 +0x8EA4BDC3 0x6226 +0x8EA4BDC4 0x229D4 +0x8EA4BDC5 0x3A0C +0x8EA4BDC6 0x22C64 +0x8EA4BDC7 0x22C68 +0x8EA4BDC8 0x3A20 +0x8EA4BDC9 0x22C62 +0x8EA4BDCA 0x3A1D +0x8EA4BDCB 0x22C61 +0x8EA4BDCC 0x3A1C +0x8EA4BDCD 0x22C66 +0x8EA4BDCE 0x3A21 +0x8EA4BDCF 0x3A1A +0x8EA4BDD0 0x3A19 +0x8EA4BDD1 0x22BF2 +0x8EA4BDD2 0x22C69 +0x8EA4BDD3 0x22C67 +0x8EA4BDD4 0x3A7E +0x8EA4BDD5 0x22F9A +0x8EA4BDD6 0x22F9B +0x8EA4BDD7 0x22F85 +0x8EA4BDD8 0x22F9C +0x8EA4BDD9 0x3A9D +0x8EA4BDDA 0x22FA4 +0x8EA4BDDB 0x3A9E +0x8EA4BDDC 0x3A9C +0x8EA4BDDD 0x656E +0x8EA4BDDE 0x22F99 +0x8EA4BDDF 0x22F86 +0x8EA4BDE0 0x22F90 +0x8EA4BDE1 0x23081 +0x8EA4BDE2 0x230AE +0x8EA4BDE3 0x65B1 +0x8EA4BDE4 0x65D4 +0x8EA4BDE5 0x3ACD +0x8EA4BDE6 0x23138 +0x8EA4BDE7 0x3B0B +0x8EA4BDE8 0x3B0A +0x8EA4BDE9 0x6685 +0x8EA4BDEA 0x2353B +0x8EA4BDEB 0x3B8F +0x8EA4BDEC 0x6972 +0x8EA4BDED 0x3B95 +0x8EA4BDEE 0x3B90 +0x8EA4BDEF 0x3B91 +0x8EA4BDF0 0x2354C +0x8EA4BDF1 0x693A +0x8EA4BDF2 0x3BB9 +0x8EA4BDF3 0x23547 +0x8EA4BDF4 0x23535 +0x8EA4BDF5 0x3B97 +0x8EA4BDF6 0x3B9E +0x8EA4BDF7 0x23533 +0x8EA4BDF8 0x3B8B +0x8EA4BDF9 0x23582 +0x8EA4BDFA 0x23540 +0x8EA4BDFB 0x3C3B +0x8EA4BDFC 0x3C3A +0x8EA4BDFD 0x3C3C +0x8EA4BDFE 0x3C3D +0x8EA4BEA1 0x3C39 +0x8EA4BEA2 0x3C3E +0x8EA4BEA3 0x3C6B +0x8EA4BEA4 0x3C6C +0x8EA4BEA5 0x23A36 +0x8EA4BEA6 0x23B0E +0x8EA4BEA7 0x3CA2 +0x8EA4BEA8 0x3CA1 +0x8EA4BEA9 0x3C9F +0x8EA4BEAA 0x23BAD +0x8EA4BEAB 0x23BAA +0x8EA4BEAC 0x23E17 +0x8EA4BEAD 0x3D2D +0x8EA4BEAE 0x23E67 +0x8EA4BEAF 0x3D36 +0x8EA4BEB0 0x3D2B +0x8EA4BEB1 0x23E72 +0x8EA4BEB2 0x3D37 +0x8EA4BEB3 0x2F90A +0x8EA4BEB4 0x23E61 +0x8EA4BEB5 0x23EB0 +0x8EA4BEB6 0x6EAD +0x8EA4BEB7 0x3D25 +0x8EA4BEB8 0x3D2F +0x8EA4BEB9 0x3D2C +0x8EA4BEBA 0x23E6E +0x8EA4BEBB 0x23E64 +0x8EA4BEBC 0x3D32 +0x8EA4BEBD 0x23E8C +0x8EA4BEBE 0x23E66 +0x8EA4BEBF 0x6E95 +0x8EA4BEC0 0x23E6B +0x8EA4BEC1 0x23E5F +0x8EA4BEC2 0x23E74 +0x8EA4BEC3 0x23E65 +0x8EA4BEC4 0x242BB +0x8EA4BEC5 0x242BE +0x8EA4BEC6 0x3DD5 +0x8EA4BEC7 0x242B9 +0x8EA4BEC8 0x3DD4 +0x8EA4BEC9 0x3DD6 +0x8EA4BECA 0x242EF +0x8EA4BECB 0x3DD1 +0x8EA4BECC 0x7243 +0x8EA4BECD 0x245DA +0x8EA4BECE 0x3E46 +0x8EA4BECF 0x728F +0x8EA4BED0 0x24690 +0x8EA4BED1 0x247E9 +0x8EA4BED2 0x3E8C +0x8EA4BED3 0x3E8A +0x8EA4BED4 0x3E88 +0x8EA4BED5 0x24811 +0x8EA4BED6 0x2480D +0x8EA4BED7 0x247ED +0x8EA4BED8 0x24821 +0x8EA4BED9 0x3EDD +0x8EA4BEDA 0x24981 +0x8EA4BEDB 0x249B1 +0x8EA4BEDC 0x24B01 +0x8EA4BEDD 0x3F2D +0x8EA4BEDE 0x24B5E +0x8EA4BEDF 0x24B62 +0x8EA4BEE0 0x3F2E +0x8EA4BEE1 0x3F2C +0x8EA4BEE2 0x3F2B +0x8EA4BEE3 0x3F30 +0x8EA4BEE4 0x24B5B +0x8EA4BEE5 0x3F4E +0x8EA4BEE6 0x24C96 +0x8EA4BEE7 0x24C93 +0x8EA4BEE8 0x3F64 +0x8EA4BEE9 0x3F61 +0x8EA4BEEA 0x24C92 +0x8EA4BEEB 0x7575 +0x8EA4BEEC 0x2F939 +0x8EA4BEED 0x3F70 +0x8EA4BEEE 0x3FA6 +0x8EA4BEEF 0x3FA4 +0x8EA4BEF0 0x24DC4 +0x8EA4BEF1 0x24DC7 +0x8EA4BEF2 0x24DC3 +0x8EA4BEF3 0x3FA8 +0x8EA4BEF4 0x3FA2 +0x8EA4BEF5 0x24DC8 +0x8EA4BEF6 0x3FA7 +0x8EA4BEF7 0x75EC +0x8EA4BEF8 0x3FA5 +0x8EA4BEF9 0x24DCA +0x8EA4BEFA 0x3FA9 +0x8EA4BEFB 0x24DC5 +0x8EA4BEFC 0x24DCF +0x8EA4BEFD 0x24DDC +0x8EA4BEFE 0x24F7C +0x8EA4BFA1 0x25001 +0x8EA4BFA2 0x403D +0x8EA4BFA3 0x251D3 +0x8EA4BFA4 0x251DC +0x8EA4BFA5 0x4044 +0x8EA4BFA6 0x4045 +0x8EA4BFA7 0x4046 +0x8EA4BFA8 0x251D4 +0x8EA4BFA9 0x7757 +0x8EA4BFAA 0x251CC +0x8EA4BFAB 0x4047 +0x8EA4BFAC 0x4048 +0x8EA4BFAD 0x4042 +0x8EA4BFAE 0x251D6 +0x8EA4BFAF 0x251DB +0x8EA4BFB0 0x4041 +0x8EA4BFB1 0x251D5 +0x8EA4BFB2 0x253D9 +0x8EA4BFB3 0x4094 +0x8EA4BFB4 0x253DD +0x8EA4BFB5 0x253DC +0x8EA4BFB6 0x253E0 +0x8EA4BFB7 0x254CC +0x8EA4BFB8 0x40C0 +0x8EA4BFB9 0x40B8 +0x8EA4BFBA 0x40C1 +0x8EA4BFBB 0x40C2 +0x8EA4BFBC 0x40BB +0x8EA4BFBD 0x40BD +0x8EA4BFBE 0x40BF +0x8EA4BFBF 0x40B9 +0x8EA4BFC0 0x40B7 +0x8EA4BFC1 0x254D2 +0x8EA4BFC2 0x40C7 +0x8EA4BFC3 0x254D3 +0x8EA4BFC4 0x410C +0x8EA4BFC5 0x410B +0x8EA4BFC6 0x797B +0x8EA4BFC7 0x4110 +0x8EA4BFC8 0x2568D +0x8EA4BFC9 0x415D +0x8EA4BFCA 0x7A21 +0x8EA4BFCB 0x415A +0x8EA4BFCC 0x4158 +0x8EA4BFCD 0x4156 +0x8EA4BFCE 0x257D8 +0x8EA4BFCF 0x4154 +0x8EA4BFD0 0x7A16 +0x8EA4BFD1 0x257BC +0x8EA4BFD2 0x41A8 +0x8EA4BFD3 0x41A7 +0x8EA4BFD4 0x41CF +0x8EA4BFD5 0x41D0 +0x8EA4BFD6 0x25A8A +0x8EA4BFD7 0x7AE8 +0x8EA4BFD8 0x25A8B +0x8EA4BFD9 0x25A8D +0x8EA4BFDA 0x41D1 +0x8EA4BFDB 0x41EB +0x8EA4BFDC 0x25B53 +0x8EA4BFDD 0x41FB +0x8EA4BFDE 0x7B6A +0x8EA4BFDF 0x25B59 +0x8EA4BFE0 0x41FD +0x8EA4BFE1 0x41F8 +0x8EA4BFE2 0x41F7 +0x8EA4BFE3 0x4200 +0x8EA4BFE4 0x25B56 +0x8EA4BFE5 0x25B57 +0x8EA4BFE6 0x41F6 +0x8EA4BFE7 0x7B5F +0x8EA4BFE8 0x25E73 +0x8EA4BFE9 0x2601B +0x8EA4BFEA 0x42DF +0x8EA4BFEB 0x26021 +0x8EA4BFEC 0x26016 +0x8EA4BFED 0x26018 +0x8EA4BFEE 0x42E2 +0x8EA4BFEF 0x42E4 +0x8EA4BFF0 0x26044 +0x8EA4BFF1 0x7D82 +0x8EA4BFF2 0x26026 +0x8EA4BFF3 0x42E3 +0x8EA4BFF4 0x26236 +0x8EA4BFF5 0x4359 +0x8EA4BFF6 0x4371 +0x8EA4BFF7 0x438E +0x8EA4BFF8 0x438C +0x8EA4BFF9 0x2643A +0x8EA4BFFA 0x43A4 +0x8EA4BFFB 0x264F4 +0x8EA4BFFC 0x8055 +0x8EA4BFFD 0x4414 +0x8EA4BFFE 0x26762 +0x8EA4C0A1 0x2675B +0x8EA4C0A2 0x2676A +0x8EA4C0A3 0x4411 +0x8EA4C0A4 0x26768 +0x8EA4C0A5 0x441B +0x8EA4C0A6 0x4412 +0x8EA4C0A7 0x440E +0x8EA4C0A8 0x4415 +0x8EA4C0A9 0x8168 +0x8EA4C0AA 0x4410 +0x8EA4C0AB 0x26781 +0x8EA4C0AC 0x4417 +0x8EA4C0AD 0x8246 +0x8EA4C0AE 0x8243 +0x8EA4C0AF 0x4470 +0x8EA4C0B0 0x44ED +0x8EA4C0B1 0x26CE7 +0x8EA4C0B2 0x44EE +0x8EA4C0B3 0x26CE6 +0x8EA4C0B4 0x26CD1 +0x8EA4C0B5 0x26D11 +0x8EA4C0B6 0x8481 +0x8EA4C0B7 0x26CD0 +0x8EA4C0B8 0x26CD9 +0x8EA4C0B9 0x26D0A +0x8EA4C0BA 0x44F4 +0x8EA4C0BB 0x26CDA +0x8EA4C0BC 0x26CDD +0x8EA4C0BD 0x26CC8 +0x8EA4C0BE 0x26CE2 +0x8EA4C0BF 0x26CE9 +0x8EA4C0C0 0x26CCB +0x8EA4C0C1 0x847C +0x8EA4C0C2 0x26CCC +0x8EA4C0C3 0x26CC1 +0x8EA4C0C4 0x846A +0x8EA4C0C5 0x26CDE +0x8EA4C0C6 0x8488 +0x8EA4C0C7 0x44F2 +0x8EA4C0C8 0x44F8 +0x8EA4C0C9 0x44F3 +0x8EA4C0CA 0x26D51 +0x8EA4C0CB 0x26D12 +0x8EA4C0CC 0x44FA +0x8EA4C0CD 0x26CE0 +0x8EA4C0CE 0x26D2B +0x8EA4C0CF 0x2F9B4 +0x8EA4C0D0 0x272D8 +0x8EA4C0D1 0x272D1 +0x8EA4C0D2 0x8710 +0x8EA4C0D3 0x272D2 +0x8EA4C0D4 0x272CD +0x8EA4C0D5 0x871F +0x8EA4C0D6 0x45B6 +0x8EA4C0D7 0x45B7 +0x8EA4C0D8 0x2733D +0x8EA4C0D9 0x870F +0x8EA4C0DA 0x272CA +0x8EA4C0DB 0x45BA +0x8EA4C0DC 0x272CB +0x8EA4C0DD 0x45BC +0x8EA4C0DE 0x272D7 +0x8EA4C0DF 0x275F4 +0x8EA4C0E0 0x463B +0x8EA4C0E1 0x88D3 +0x8EA4C0E2 0x462F +0x8EA4C0E3 0x27687 +0x8EA4C0E4 0x2768B +0x8EA4C0E5 0x27683 +0x8EA4C0E6 0x4637 +0x8EA4C0E7 0x4699 +0x8EA4C0E8 0x279C5 +0x8EA4C0E9 0x279D2 +0x8EA4C0EA 0x279C6 +0x8EA4C0EB 0x279D3 +0x8EA4C0EC 0x46D9 +0x8EA4C0ED 0x46D8 +0x8EA4C0EE 0x46D7 +0x8EA4C0EF 0x279F0 +0x8EA4C0F0 0x279CD +0x8EA4C0F1 0x279CC +0x8EA4C0F2 0x279DC +0x8EA4C0F3 0x279D6 +0x8EA4C0F4 0x4736 +0x8EA4C0F5 0x27BE6 +0x8EA4C0F6 0x27C41 +0x8EA4C0F7 0x27C3F +0x8EA4C0F8 0x8C87 +0x8EA4C0F9 0x27CC5 +0x8EA4C0FA 0x27CC0 +0x8EA4C0FB 0x27CC6 +0x8EA4C0FC 0x27CBE +0x8EA4C0FD 0x27CBF +0x8EA4C0FE 0x8CC6 +0x8EA4C1A1 0x4770 +0x8EA4C1A2 0x27D63 +0x8EA4C1A3 0x27ED3 +0x8EA4C1A4 0x27EDA +0x8EA4C1A5 0x27ED5 +0x8EA4C1A6 0x47A5 +0x8EA4C1A7 0x47A6 +0x8EA4C1A8 0x47A9 +0x8EA4C1A9 0x47EE +0x8EA4C1AA 0x4854 +0x8EA4C1AB 0x282EE +0x8EA4C1AC 0x4857 +0x8EA4C1AD 0x282FC +0x8EA4C1AE 0x28414 +0x8EA4C1AF 0x48A1 +0x8EA4C1B0 0x28523 +0x8EA4C1B1 0x28522 +0x8EA4C1B2 0x28530 +0x8EA4C1B3 0x286B5 +0x8EA4C1B4 0x48D3 +0x8EA4C1B5 0x28738 +0x8EA4C1B6 0x48D4 +0x8EA4C1B7 0x2873F +0x8EA4C1B8 0x48D7 +0x8EA4C1B9 0x90CC +0x8EA4C1BA 0x916D +0x8EA4C1BB 0x9170 +0x8EA4C1BC 0x48F7 +0x8EA4C1BD 0x48F6 +0x8EA4C1BE 0x48F9 +0x8EA4C1BF 0x48F8 +0x8EA4C1C0 0x9258 +0x8EA4C1C1 0x9242 +0x8EA4C1C2 0x9268 +0x8EA4C1C3 0x9269 +0x8EA4C1C4 0x28968 +0x8EA4C1C5 0x28967 +0x8EA4C1C6 0x9243 +0x8EA4C1C7 0x28965 +0x8EA4C1C8 0x9247 +0x8EA4C1C9 0x498A +0x8EA4C1CA 0x28C75 +0x8EA4C1CB 0x28CF7 +0x8EA4C1CC 0x28CF3 +0x8EA4C1CD 0x28CF6 +0x8EA4C1CE 0x4994 +0x8EA4C1CF 0x28D00 +0x8EA4C1D0 0x4993 +0x8EA4C1D1 0x28CFF +0x8EA4C1D2 0x28CF5 +0x8EA4C1D3 0x959D +0x8EA4C1D4 0x49DD +0x8EA4C1D5 0x49DC +0x8EA4C1D6 0x49F7 +0x8EA4C1D7 0x96CF +0x8EA4C1D8 0x29092 +0x8EA4C1D9 0x29206 +0x8EA4C1DA 0x4A42 +0x8EA4C1DB 0x29207 +0x8EA4C1DC 0x2926B +0x8EA4C1DD 0x4A54 +0x8EA4C1DE 0x2926C +0x8EA4C1DF 0x4A55 +0x8EA4C1E0 0x29393 +0x8EA4C1E1 0x4A8F +0x8EA4C1E2 0x29394 +0x8EA4C1E3 0x97F4 +0x8EA4C1E4 0x4AB4 +0x8EA4C1E5 0x4AB3 +0x8EA4C1E6 0x29462 +0x8EA4C1E7 0x29463 +0x8EA4C1E8 0x9809 +0x8EA4C1E9 0x2945F +0x8EA4C1EA 0x29464 +0x8EA4C1EB 0x2945B +0x8EA4C1EC 0x29459 +0x8EA4C1ED 0x4AFB +0x8EA4C1EE 0x4AFD +0x8EA4C1EF 0x295A4 +0x8EA4C1F0 0x295AC +0x8EA4C1F1 0x98AB +0x8EA4C1F2 0x4AFC +0x8EA4C1F3 0x296B5 +0x8EA4C1F4 0x4B2C +0x8EA4C1F5 0x4B2F +0x8EA4C1F6 0x296AE +0x8EA4C1F7 0x4B2B +0x8EA4C1F8 0x296C5 +0x8EA4C1F9 0x4B33 +0x8EA4C1FA 0x4B34 +0x8EA4C1FB 0x98FB +0x8EA4C1FC 0x2983B +0x8EA4C1FD 0x9AAC +0x8EA4C1FE 0x9AAE +0x8EA4C2A1 0x9AAA +0x8EA4C2A2 0x4BE8 +0x8EA4C2A3 0x29ABF +0x8EA4C2A4 0x29C2B +0x8EA4C2A5 0x29C84 +0x8EA4C2A6 0x29C80 +0x8EA4C2A7 0x29D4D +0x8EA4C2A8 0x29D4F +0x8EA4C2A9 0x9B5C +0x8EA4C2AA 0x29D4C +0x8EA4C2AB 0x29F92 +0x8EA4C2AC 0x4D5D +0x8EA4C2AD 0x50D2 +0x8EA4C2AE 0x3485 +0x8EA4C2AF 0x3488 +0x8EA4C2B0 0x203AE +0x8EA4C2B1 0x20379 +0x8EA4C2B2 0x348E +0x8EA4C2B3 0x3484 +0x8EA4C2B4 0x20371 +0x8EA4C2B5 0x50DF +0x8EA4C2B6 0x203B3 +0x8EA4C2B7 0x3483 +0x8EA4C2B8 0x2032C +0x8EA4C2B9 0x20377 +0x8EA4C2BA 0x2052F +0x8EA4C2BB 0x207C3 +0x8EA4C2BC 0x3502 +0x8EA4C2BD 0x207CD +0x8EA4C2BE 0x3506 +0x8EA4C2BF 0x3505 +0x8EA4C2C0 0x207C9 +0x8EA4C2C1 0x34FE +0x8EA4C2C2 0x3501 +0x8EA4C2C3 0x3500 +0x8EA4C2C4 0x207CE +0x8EA4C2C5 0x208A5 +0x8EA4C2C6 0x208A0 +0x8EA4C2C7 0x208FE +0x8EA4C2C8 0x20959 +0x8EA4C2C9 0x20A9A +0x8EA4C2CA 0x35E7 +0x8EA4C2CB 0x5619 +0x8EA4C2CC 0x20EE4 +0x8EA4C2CD 0x20ED7 +0x8EA4C2CE 0x20EDC +0x8EA4C2CF 0x35E6 +0x8EA4C2D0 0x20EE7 +0x8EA4C2D1 0x35ED +0x8EA4C2D2 0x35E2 +0x8EA4C2D3 0x35EB +0x8EA4C2D4 0x20EE5 +0x8EA4C2D5 0x35E8 +0x8EA4C2D6 0x35EC +0x8EA4C2D7 0x560A +0x8EA4C2D8 0x3624 +0x8EA4C2D9 0x589A +0x8EA4C2DA 0x21414 +0x8EA4C2DB 0x3662 +0x8EA4C2DC 0x213F1 +0x8EA4C2DD 0x3661 +0x8EA4C2DE 0x3660 +0x8EA4C2DF 0x3664 +0x8EA4C2E0 0x368B +0x8EA4C2E1 0x215B6 +0x8EA4C2E2 0x2166E +0x8EA4C2E3 0x2166C +0x8EA4C2E4 0x21681 +0x8EA4C2E5 0x21842 +0x8EA4C2E6 0x3719 +0x8EA4C2E7 0x3716 +0x8EA4C2E8 0x3718 +0x8EA4C2E9 0x3722 +0x8EA4C2EA 0x2181A +0x8EA4C2EB 0x371D +0x8EA4C2EC 0x3717 +0x8EA4C2ED 0x371E +0x8EA4C2EE 0x21827 +0x8EA4C2EF 0x21825 +0x8EA4C2F0 0x21817 +0x8EA4C2F1 0x2181C +0x8EA4C2F2 0x2183D +0x8EA4C2F3 0x21820 +0x8EA4C2F4 0x3769 +0x8EA4C2F5 0x376A +0x8EA4C2F6 0x21A81 +0x8EA4C2F7 0x376C +0x8EA4C2F8 0x377A +0x8EA4C2F9 0x378A +0x8EA4C2FA 0x21C09 +0x8EA4C2FB 0x21CC6 +0x8EA4C2FC 0x21CC4 +0x8EA4C2FD 0x379C +0x8EA4C2FE 0x21CC5 +0x8EA4C3A1 0x37FD +0x8EA4C3A2 0x37F9 +0x8EA4C3A3 0x21EEF +0x8EA4C3A4 0x37FF +0x8EA4C3A5 0x21EDF +0x8EA4C3A6 0x21EDE +0x8EA4C3A7 0x21EEE +0x8EA4C3A8 0x21EF5 +0x8EA4C3A9 0x21EEC +0x8EA4C3AA 0x37FC +0x8EA4C3AB 0x21EDD +0x8EA4C3AC 0x5D85 +0x8EA4C3AD 0x37FB +0x8EA4C3AE 0x3802 +0x8EA4C3AF 0x385F +0x8EA4C3B0 0x5E56 +0x8EA4C3B1 0x385E +0x8EA4C3B2 0x385D +0x8EA4C3B3 0x385C +0x8EA4C3B4 0x22122 +0x8EA4C3B5 0x5E51 +0x8EA4C3B6 0x3892 +0x8EA4C3B7 0x22297 +0x8EA4C3B8 0x22295 +0x8EA4C3B9 0x3894 +0x8EA4C3BA 0x3895 +0x8EA4C3BB 0x38D1 +0x8EA4C3BC 0x224A9 +0x8EA4C3BD 0x38F1 +0x8EA4C3BE 0x22553 +0x8EA4C3BF 0x5FB1 +0x8EA4C3C0 0x22556 +0x8EA4C3C1 0x22555 +0x8EA4C3C2 0x3977 +0x8EA4C3C3 0x396F +0x8EA4C3C4 0x227E3 +0x8EA4C3C5 0x227E2 +0x8EA4C3C6 0x3987 +0x8EA4C3C7 0x397D +0x8EA4C3C8 0x397C +0x8EA4C3C9 0x397E +0x8EA4C3CA 0x3985 +0x8EA4C3CB 0x398B +0x8EA4C3CC 0x3986 +0x8EA4C3CD 0x3980 +0x8EA4C3CF 0x227A9 +0x8EA4C3D0 0x3978 +0x8EA4C3D1 0x2F8AB +0x8EA4C3D2 0x22833 +0x8EA4C3D3 0x2280A +0x8EA4C3D4 0x39BA +0x8EA4C3D5 0x22A59 +0x8EA4C3D6 0x3A33 +0x8EA4C3D7 0x22CBC +0x8EA4C3D8 0x3A2D +0x8EA4C3D9 0x22CC4 +0x8EA4C3DA 0x22CC7 +0x8EA4C3DB 0x22CC6 +0x8EA4C3DC 0x3A37 +0x8EA4C3DD 0x645A +0x8EA4C3DE 0x6463 +0x8EA4C3DF 0x22CB8 +0x8EA4C3E0 0x22CDA +0x8EA4C3E1 0x3A2E +0x8EA4C3E2 0x22CB7 +0x8EA4C3E3 0x22CC0 +0x8EA4C3E4 0x3A3D +0x8EA4C3E5 0x22CCD +0x8EA4C3E6 0x3AA0 +0x8EA4C3E7 0x22FBC +0x8EA4C3E8 0x22FAB +0x8EA4C3E9 0x3AA3 +0x8EA4C3EA 0x23086 +0x8EA4C3EB 0x669B +0x8EA4C3EC 0x2325A +0x8EA4C3ED 0x66A3 +0x8EA4C3EE 0x3B0E +0x8EA4C3EF 0x669E +0x8EA4C3F0 0x23343 +0x8EA4C3F1 0x3BB6 +0x8EA4C3F2 0x235AC +0x8EA4C3F3 0x3BAB +0x8EA4C3F4 0x3BAD +0x8EA4C3F5 0x3BA6 +0x8EA4C3F6 0x235BE +0x8EA4C3F7 0x69B8 +0x8EA4C3F8 0x3BAA +0x8EA4C3F9 0x69BA +0x8EA4C3FA 0x3BB1 +0x8EA4C3FB 0x235AB +0x8EA4C3FC 0x3BA8 +0x8EA4C3FD 0x3BAF +0x8EA4C3FE 0x3BB0 +0x8EA4C4A1 0x3BA7 +0x8EA4C4A2 0x3BB2 +0x8EA4C4A3 0x3B9D +0x8EA4C4A4 0x3BA5 +0x8EA4C4A5 0x3BB5 +0x8EA4C4A6 0x21B3E +0x8EA4C4A7 0x69C7 +0x8EA4C4A8 0x69D7 +0x8EA4C4A9 0x238F9 +0x8EA4C4AA 0x3C41 +0x8EA4C4AB 0x238F3 +0x8EA4C4AC 0x238F7 +0x8EA4C4AD 0x6B70 +0x8EA4C4AE 0x23A45 +0x8EA4C4AF 0x23A48 +0x8EA4C4B0 0x3C72 +0x8EA4C4B1 0x6B9D +0x8EA4C4B2 0x3C6F +0x8EA4C4B3 0x3C71 +0x8EA4C4B4 0x23A44 +0x8EA4C4B5 0x3C85 +0x8EA4C4B6 0x23AAF +0x8EA4C4B7 0x23AB1 +0x8EA4C4B8 0x3CA4 +0x8EA4C4B9 0x3CA5 +0x8EA4C4BA 0x3CA6 +0x8EA4C4BB 0x23BCF +0x8EA4C4BC 0x3CA8 +0x8EA4C4BD 0x23BCB +0x8EA4C4BE 0x23BCD +0x8EA4C4BF 0x3CA3 +0x8EA4C4C0 0x23C50 +0x8EA4C4C1 0x23EEC +0x8EA4C4C2 0x23F1A +0x8EA4C4C3 0x6F16 +0x8EA4C4C4 0x6F24 +0x8EA4C4C5 0x23ED8 +0x8EA4C4C6 0x3D43 +0x8EA4C4C7 0x23ED0 +0x8EA4C4C8 0x23ED1 +0x8EA4C4C9 0x3D3D +0x8EA4C4CA 0x3D45 +0x8EA4C4CB 0x23E7B +0x8EA4C4CC 0x23ED2 +0x8EA4C4CD 0x3D44 +0x8EA4C4CE 0x23ED4 +0x8EA4C4CF 0x23EE7 +0x8EA4C4D0 0x23EDF +0x8EA4C4D1 0x23EDE +0x8EA4C4D2 0x6F45 +0x8EA4C4D3 0x23ED9 +0x8EA4C4D4 0x23ECF +0x8EA4C4D5 0x2430D +0x8EA4C4D6 0x3DE3 +0x8EA4C4D7 0x7179 +0x8EA4C4D9 0x3DDF +0x8EA4C4DA 0x3DE4 +0x8EA4C4DB 0x717A +0x8EA4C4DC 0x3DE5 +0x8EA4C4DD 0x24338 +0x8EA4C4DE 0x7254 +0x8EA4C4DF 0x3E22 +0x8EA4C4E0 0x3E4A +0x8EA4C4E1 0x246A9 +0x8EA4C4E2 0x3E49 +0x8EA4C4E3 0x3E44 +0x8EA4C4E4 0x3E4B +0x8EA4C4E5 0x3E87 +0x8EA4C4E6 0x3E89 +0x8EA4C4E7 0x3E92 +0x8EA4C4E8 0x3E91 +0x8EA4C4E9 0x3E90 +0x8EA4C4EA 0x3E8E +0x8EA4C4EB 0x2483E +0x8EA4C4EC 0x24846 +0x8EA4C4ED 0x249ED +0x8EA4C4EE 0x2F930 +0x8EA4C4EF 0x3F12 +0x8EA4C4F0 0x3F10 +0x8EA4C4F1 0x3F11 +0x8EA4C4F2 0x24B6C +0x8EA4C4F3 0x3F32 +0x8EA4C4F4 0x3F34 +0x8EA4C4F5 0x3F37 +0x8EA4C4F6 0x3F33 +0x8EA4C4F7 0x3F36 +0x8EA4C4F8 0x3F35 +0x8EA4C4F9 0x3F65 +0x8EA4C4FA 0x24CAC +0x8EA4C4FB 0x757C +0x8EA4C4FC 0x757B +0x8EA4C4FD 0x24DC9 +0x8EA4C4FE 0x7612 +0x8EA4C5A1 0x3FB0 +0x8EA4C5A2 0x24E12 +0x8EA4C5A3 0x3FAF +0x8EA4C5A4 0x3FAA +0x8EA4C5A5 0x24DFD +0x8EA4C5A6 0x24E01 +0x8EA4C5A7 0x24E11 +0x8EA4C5A8 0x3FAB +0x8EA4C5A9 0x24E89 +0x8EA4C5AA 0x24E05 +0x8EA4C5AB 0x24DFE +0x8EA4C5AC 0x24E0B +0x8EA4C5AD 0x24E20 +0x8EA4C5AE 0x24E04 +0x8EA4C5AF 0x24F88 +0x8EA4C5B0 0x3FF3 +0x8EA4C5B1 0x25002 +0x8EA4C5B2 0x3FF4 +0x8EA4C5B3 0x25003 +0x8EA4C5B4 0x76B6 +0x8EA4C5B5 0x76E0 +0x8EA4C5B6 0x4008 +0x8EA4C5B7 0x404E +0x8EA4C5B8 0x4055 +0x8EA4C5B9 0x404B +0x8EA4C5BA 0x25229 +0x8EA4C5BB 0x2523B +0x8EA4C5BC 0x404D +0x8EA4C5BD 0x7773 +0x8EA4C5BE 0x25206 +0x8EA4C5BF 0x4052 +0x8EA4C5C0 0x7772 +0x8EA4C5C1 0x404C +0x8EA4C5C2 0x7770 +0x8EA4C5C3 0x4050 +0x8EA4C5C4 0x4053 +0x8EA4C5C5 0x25203 +0x8EA4C5C6 0x4051 +0x8EA4C5C7 0x25378 +0x8EA4C5C8 0x25379 +0x8EA4C5C9 0x2537D +0x8EA4C5CA 0x4089 +0x8EA4C5CB 0x2537F +0x8EA4C5CC 0x4095 +0x8EA4C5CD 0x40CC +0x8EA4C5CE 0x40C8 +0x8EA4C5CF 0x40CE +0x8EA4C5D0 0x25532 +0x8EA4C5D1 0x40CA +0x8EA4C5D2 0x25500 +0x8EA4C5D3 0x789D +0x8EA4C5D4 0x25522 +0x8EA4C5D5 0x40CD +0x8EA4C5D6 0x256A9 +0x8EA4C5D7 0x415C +0x8EA4C5D8 0x4167 +0x8EA4C5D9 0x4169 +0x8EA4C5DA 0x4165 +0x8EA4C5DB 0x4162 +0x8EA4C5DC 0x25804 +0x8EA4C5DD 0x7A27 +0x8EA4C5DE 0x7A35 +0x8EA4C5DF 0x2F959 +0x8EA4C5E0 0x41AA +0x8EA4C5E1 0x259B8 +0x8EA4C5E2 0x25A9B +0x8EA4C5E3 0x41D2 +0x8EA4C5E4 0x7BA2 +0x8EA4C5E5 0x4203 +0x8EA4C5E6 0x420C +0x8EA4C5E7 0x25B92 +0x8EA4C5E8 0x4209 +0x8EA4C5E9 0x4206 +0x8EA4C5EA 0x4205 +0x8EA4C5EB 0x7B89 +0x8EA4C5EC 0x25B8F +0x8EA4C5ED 0x420B +0x8EA4C5EE 0x4208 +0x8EA4C5EF 0x25B98 +0x8EA4C5F0 0x7BA5 +0x8EA4C5F1 0x25BAE +0x8EA4C5F2 0x428E +0x8EA4C5F3 0x25E9D +0x8EA4C5F4 0x7CB6 +0x8EA4C5F5 0x42E8 +0x8EA4C5F6 0x26049 +0x8EA4C5F7 0x26050 +0x8EA4C5F8 0x26046 +0x8EA4C5F9 0x42EA +0x8EA4C5FA 0x2604E +0x8EA4C5FB 0x7DA5 +0x8EA4C5FC 0x7DC3 +0x8EA4C5FD 0x26055 +0x8EA4C5FE 0x42E9 +0x8EA4C6A1 0x42EB +0x8EA4C6A2 0x26064 +0x8EA4C6A3 0x42F0 +0x8EA4C6A4 0x26238 +0x8EA4C6A5 0x434B +0x8EA4C6A6 0x7FAB +0x8EA4C6A7 0x4373 +0x8EA4C6A8 0x4375 +0x8EA4C6A9 0x4392 +0x8EA4C6AA 0x4391 +0x8EA4C6AB 0x4393 +0x8EA4C6AC 0x8025 +0x8EA4C6AD 0x43A7 +0x8EA4C6AE 0x43A6 +0x8EA4C6AF 0x43A8 +0x8EA4C6B0 0x43AA +0x8EA4C6B1 0x264FE +0x8EA4C6B2 0x43A9 +0x8EA4C6B3 0x8059 +0x8EA4C6B4 0x43BB +0x8EA4C6B5 0x43BC +0x8EA4C6B6 0x43BA +0x8EA4C6B7 0x43BD +0x8EA4C6B8 0x4427 +0x8EA4C6B9 0x8185 +0x8EA4C6BA 0x267A6 +0x8EA4C6BB 0x4424 +0x8EA4C6BC 0x441E +0x8EA4C6BD 0x441F +0x8EA4C6BE 0x441D +0x8EA4C6BF 0x4420 +0x8EA4C6C0 0x4423 +0x8EA4C6C1 0x4429 +0x8EA4C6C2 0x4422 +0x8EA4C6C3 0x2679C +0x8EA4C6C4 0x26799 +0x8EA4C6C5 0x441C +0x8EA4C6C6 0x818E +0x8EA4C6C7 0x4428 +0x8EA4C6C8 0x267B5 +0x8EA4C6C9 0x267A3 +0x8EA4C6CA 0x267A0 +0x8EA4C6CB 0x267A7 +0x8EA4C6CC 0x2679B +0x8EA4C6CD 0x269DF +0x8EA4C6CE 0x269E1 +0x8EA4C6CF 0x4471 +0x8EA4C6D0 0x4473 +0x8EA4C6D1 0x4472 +0x8EA4C6D2 0x26A4D +0x8EA4C6D3 0x4502 +0x8EA4C6D4 0x26DF3 +0x8EA4C6D5 0x26D6F +0x8EA4C6D6 0x26D69 +0x8EA4C6D7 0x44FE +0x8EA4C6D8 0x84BE +0x8EA4C6D9 0x26D6B +0x8EA4C6DA 0x26D78 +0x8EA4C6DB 0x26D87 +0x8EA4C6DC 0x4508 +0x8EA4C6DD 0x26D85 +0x8EA4C6DE 0x26D82 +0x8EA4C6DF 0x26D90 +0x8EA4C6E0 0x4507 +0x8EA4C6E1 0x4504 +0x8EA4C6E2 0x26D80 +0x8EA4C6E3 0x26D67 +0x8EA4C6E4 0x4500 +0x8EA4C6E5 0x44FC +0x8EA4C6E6 0x26D61 +0x8EA4C6E7 0x4544 +0x8EA4C6E8 0x26D93 +0x8EA4C6E9 0x44F1 +0x8EA4C6EA 0x26DF2 +0x8EA4C6EB 0x26D86 +0x8EA4C6EC 0x84A6 +0x8EA4C6ED 0x4506 +0x8EA4C6EE 0x271CD +0x8EA4C6EF 0x271C4 +0x8EA4C6F0 0x45C6 +0x8EA4C6F1 0x45C3 +0x8EA4C6F2 0x45C1 +0x8EA4C6F3 0x45C2 +0x8EA4C6F4 0x2730F +0x8EA4C6F5 0x45C4 +0x8EA4C6F6 0x45C7 +0x8EA4C6F7 0x2730D +0x8EA4C6F8 0x45BF +0x8EA4C6F9 0x45D2 +0x8EA4C6FA 0x27373 +0x8EA4C6FB 0x45CA +0x8EA4C6FC 0x2F9BA +0x8EA4C6FD 0x2730A +0x8EA4C6FE 0x872F +0x8EA4C7A1 0x27308 +0x8EA4C7A2 0x27313 +0x8EA4C7A3 0x4613 +0x8EA4C7A4 0x275F8 +0x8EA4C7A5 0x4630 +0x8EA4C7A6 0x463E +0x8EA4C7A7 0x4639 +0x8EA4C7A8 0x276AB +0x8EA4C7A9 0x276A8 +0x8EA4C7AA 0x463C +0x8EA4C7AB 0x463F +0x8EA4C7AC 0x276A5 +0x8EA4C7AD 0x4634 +0x8EA4C7AE 0x463D +0x8EA4C7AF 0x276C3 +0x8EA4C7B0 0x276A4 +0x8EA4C7B1 0x4638 +0x8EA4C7B2 0x276D4 +0x8EA4C7B3 0x276BA +0x8EA4C7B4 0x277F1 +0x8EA4C7B5 0x89A0 +0x8EA4C7B6 0x4682 +0x8EA4C7B7 0x2783F +0x8EA4C7B8 0x4683 +0x8EA4C7B9 0x278EA +0x8EA4C7BA 0x469B +0x8EA4C7BB 0x279F7 +0x8EA4C7BC 0x46E0 +0x8EA4C7BD 0x46DD +0x8EA4C7BE 0x279FA +0x8EA4C7BF 0x279F5 +0x8EA4C7C0 0x46DE +0x8EA4C7C1 0x279FE +0x8EA4C7C2 0x46E3 +0x8EA4C7C3 0x46E5 +0x8EA4C7C4 0x27A00 +0x8EA4C7C5 0x8A97 +0x8EA4C7C6 0x46E2 +0x8EA4C7C7 0x27A02 +0x8EA4C7C8 0x279FB +0x8EA4C7C9 0x27A07 +0x8EA4C7CA 0x46DF +0x8EA4C7CB 0x27A1A +0x8EA4C7CC 0x472E +0x8EA4C7CD 0x27BB8 +0x8EA4C7CE 0x4737 +0x8EA4C7CF 0x4738 +0x8EA4C7D0 0x27BE9 +0x8EA4C7D1 0x27BEB +0x8EA4C7D2 0x27C50 +0x8EA4C7D3 0x27C4F +0x8EA4C7D4 0x8C8B +0x8EA4C7D5 0x27D86 +0x8EA4C7D6 0x3562 +0x8EA4C7D7 0x27D8E +0x8EA4C7D8 0x4794 +0x8EA4C7D9 0x4793 +0x8EA4C7DA 0x47AB +0x8EA4C7DB 0x47AD +0x8EA4C7DC 0x27EF0 +0x8EA4C7DD 0x27EFB +0x8EA4C7DE 0x47F5 +0x8EA4C7DF 0x47F7 +0x8EA4C7E0 0x28042 +0x8EA4C7E1 0x47F6 +0x8EA4C7E2 0x47F8 +0x8EA4C7E3 0x28085 +0x8EA4C7E4 0x47FB +0x8EA4C7E5 0x47F9 +0x8EA4C7E6 0x4858 +0x8EA4C7E7 0x485A +0x8EA4C7E8 0x28305 +0x8EA4C7E9 0x4859 +0x8EA4C7EA 0x8F0F +0x8EA4C7EB 0x4885 +0x8EA4C7EC 0x48A4 +0x8EA4C7ED 0x48D8 +0x8EA4C7EE 0x48D9 +0x8EA4C7EF 0x2874B +0x8EA4C7F0 0x48DD +0x8EA4C7F1 0x48C8 +0x8EA4C7F2 0x28763 +0x8EA4C7F3 0x48FA +0x8EA4C7F4 0x48FB +0x8EA4C7F5 0x9275 +0x8EA4C7F6 0x4927 +0x8EA4C7F7 0x929F +0x8EA4C7F8 0x492A +0x8EA4C7F9 0x4925 +0x8EA4C7FA 0x28999 +0x8EA4C7FB 0x4928 +0x8EA4C7FC 0x28C81 +0x8EA4C7FD 0x28D17 +0x8EA4C7FE 0x28D10 +0x8EA4C8A1 0x28D12 +0x8EA4C8A2 0x95A6 +0x8EA4C8A3 0x4995 +0x8EA4C8A4 0x969A +0x8EA4C8A5 0x28EFA +0x8EA4C8A6 0x28EF3 +0x8EA4C8A7 0x28EF2 +0x8EA4C8A8 0x28EF5 +0x8EA4C8A9 0x28EF6 +0x8EA4C8AA 0x28FBB +0x8EA4C8AB 0x28FC2 +0x8EA4C8AC 0x290A7 +0x8EA4C8AD 0x4A0F +0x8EA4C8AE 0x4A11 +0x8EA4C8AF 0x290A8 +0x8EA4C8B0 0x290A3 +0x8EA4C8B1 0x4A10 +0x8EA4C8B2 0x290AA +0x8EA4C8B3 0x4A15 +0x8EA4C8B4 0x4A13 +0x8EA4C8B5 0x9757 +0x8EA4C8B6 0x291DC +0x8EA4C8B7 0x4A47 +0x8EA4C8B8 0x4A46 +0x8EA4C8B9 0x2920F +0x8EA4C8BA 0x4A59 +0x8EA4C8BB 0x4A5B +0x8EA4C8BC 0x29279 +0x8EA4C8BD 0x4A5E +0x8EA4C8BE 0x2927F +0x8EA4C8BF 0x29285 +0x8EA4C8C0 0x4A5A +0x8EA4C8C1 0x4A91 +0x8EA4C8C2 0x4A92 +0x8EA4C8C3 0x4A90 +0x8EA4C8C4 0x4A93 +0x8EA4C8C5 0x2941B +0x8EA4C8C6 0x97F7 +0x8EA4C8C7 0x4ABE +0x8EA4C8C8 0x29477 +0x8EA4C8C9 0x29476 +0x8EA4C8CA 0x29498 +0x8EA4C8CB 0x4ABC +0x8EA4C8CC 0x4ABB +0x8EA4C8CD 0x4AB7 +0x8EA4C8CE 0x4AB9 +0x8EA4C8CF 0x2947A +0x8EA4C8D0 0x4B01 +0x8EA4C8D1 0x4AFE +0x8EA4C8D2 0x295BC +0x8EA4C8D3 0x295BA +0x8EA4C8D4 0x4B02 +0x8EA4C8D5 0x295B6 +0x8EA4C8D6 0x4AFF +0x8EA4C8D7 0x98B0 +0x8EA4C8D8 0x295B4 +0x8EA4C8D9 0x4B00 +0x8EA4C8DA 0x296CF +0x8EA4C8DB 0x4B37 +0x8EA4C8DC 0x4B3A +0x8EA4C8DD 0x4B6F +0x8EA4C8DE 0x4B77 +0x8EA4C8DF 0x4B79 +0x8EA4C8E0 0x99C6 +0x8EA4C8E1 0x2987B +0x8EA4C8E2 0x4BC8 +0x8EA4C8E3 0x29A1C +0x8EA4C8E4 0x29A21 +0x8EA4C8E5 0x29A1D +0x8EA4C8E6 0x29AC0 +0x8EA4C8E7 0x4BF2 +0x8EA4C8E8 0x29AFF +0x8EA4C8E9 0x4BF1 +0x8EA4C8EA 0x4BF0 +0x8EA4C8EB 0x9B62 +0x8EA4C8EC 0x29D56 +0x8EA4C8ED 0x4C34 +0x8EA4C8EE 0x29FA1 +0x8EA4C8EF 0x29FA2 +0x8EA4C8F0 0x29FA6 +0x8EA4C8F1 0x2A256 +0x8EA4C8F2 0x2A257 +0x8EA4C8F3 0x4D2C +0x8EA4C8F4 0x4D2D +0x8EA4C8F5 0x2A301 +0x8EA4C8F6 0x2A3ED +0x8EA4C8F7 0x2FA1C +0x8EA4C8F8 0x2A5F2 +0x8EA4C8F9 0x50FA +0x8EA4C8FA 0x203B8 +0x8EA4C8FB 0x3491 +0x8EA4C8FC 0x203C0 +0x8EA4C8FD 0x3494 +0x8EA4C8FE 0x203B7 +0x8EA4C9A1 0x203E1 +0x8EA4C9A2 0x34C4 +0x8EA4C9A3 0x350A +0x8EA4C9A4 0x207E8 +0x8EA4C9A5 0x5285 +0x8EA4C9A6 0x208B2 +0x8EA4C9A7 0x3552 +0x8EA4C9A8 0x20AAE +0x8EA4C9A9 0x3559 +0x8EA4C9AA 0x366F +0x8EA4C9AB 0x20F7E +0x8EA4C9AC 0x35F2 +0x8EA4C9AD 0x35F4 +0x8EA4C9AE 0x5643 +0x8EA4C9AF 0x20F76 +0x8EA4C9B0 0x35F1 +0x8EA4C9B1 0x563C +0x8EA4C9B2 0x20F96 +0x8EA4C9B3 0x366A +0x8EA4C9B4 0x21420 +0x8EA4C9B5 0x21421 +0x8EA4C9B6 0x21423 +0x8EA4C9B7 0x21429 +0x8EA4C9B8 0x21677 +0x8EA4C9B9 0x21851 +0x8EA4C9BA 0x3724 +0x8EA4C9BB 0x21856 +0x8EA4C9BC 0x3723 +0x8EA4C9BD 0x21888 +0x8EA4C9BE 0x21859 +0x8EA4C9BF 0x21855 +0x8EA4C9C0 0x3727 +0x8EA4C9C1 0x21997 +0x8EA4C9C2 0x21998 +0x8EA4C9C3 0x376D +0x8EA4C9C4 0x5BED +0x8EA4C9C5 0x376E +0x8EA4C9C6 0x376F +0x8EA4C9C7 0x21AA1 +0x8EA4C9C8 0x21AA3 +0x8EA4C9C9 0x5C35 +0x8EA4C9CA 0x379F +0x8EA4C9CB 0x380A +0x8EA4C9CC 0x3806 +0x8EA4C9CD 0x380E +0x8EA4C9CE 0x21F0A +0x8EA4C9CF 0x380D +0x8EA4C9D0 0x3805 +0x8EA4C9D1 0x21F3D +0x8EA4C9D2 0x21F0C +0x8EA4C9D3 0x380B +0x8EA4C9D4 0x3810 +0x8EA4C9D5 0x382E +0x8EA4C9D6 0x2213D +0x8EA4C9D7 0x22139 +0x8EA4C9D8 0x222B0 +0x8EA4C9D9 0x222B2 +0x8EA4C9DA 0x222AE +0x8EA4C9DB 0x3896 +0x8EA4C9DC 0x3897 +0x8EA4C9DD 0x38C4 +0x8EA4C9DE 0x5F47 +0x8EA4C9DF 0x38C5 +0x8EA4C9E0 0x22420 +0x8EA4C9E1 0x38D2 +0x8EA4C9E2 0x2256E +0x8EA4C9E3 0x2256D +0x8EA4C9E4 0x2256A +0x8EA4C9E5 0x3981 +0x8EA4C9E6 0x22832 +0x8EA4C9E7 0x398E +0x8EA4C9E8 0x3990 +0x8EA4C9E9 0x398F +0x8EA4C9EA 0x22839 +0x8EA4C9EB 0x3991 +0x8EA4C9EC 0x3995 +0x8EA4C9ED 0x3993 +0x8EA4C9EE 0x227A3 +0x8EA4C9EF 0x616D +0x8EA4C9F0 0x2287F +0x8EA4C9F1 0x22835 +0x8EA4C9F2 0x2283D +0x8EA4C9F3 0x229F4 +0x8EA4C9F4 0x229F5 +0x8EA4C9F5 0x3A3B +0x8EA4C9F6 0x3A48 +0x8EA4C9F7 0x22D48 +0x8EA4C9F8 0x22D28 +0x8EA4C9F9 0x3A46 +0x8EA4C9FA 0x3A47 +0x8EA4C9FB 0x22D27 +0x8EA4C9FC 0x22D32 +0x8EA4C9FD 0x22D2C +0x8EA4C9FE 0x3A4C +0x8EA4CAA1 0x22D2E +0x8EA4CAA2 0x3A4A +0x8EA4CAA3 0x3A50 +0x8EA4CAA4 0x3A43 +0x8EA4CAA5 0x22D23 +0x8EA4CAA6 0x22D31 +0x8EA4CAA7 0x2F8C5 +0x8EA4CAA8 0x3A49 +0x8EA4CAA9 0x3AA6 +0x8EA4CAAA 0x3AA5 +0x8EA4CAAB 0x3AA4 +0x8EA4CAAC 0x22FC9 +0x8EA4CAAD 0x23089 +0x8EA4CAAE 0x3AB9 +0x8EA4CAAF 0x230BB +0x8EA4CAB0 0x3ACE +0x8EA4CAB1 0x3ACF +0x8EA4CAB2 0x3B13 +0x8EA4CAB3 0x23397 +0x8EA4CAB4 0x23393 +0x8EA4CAB5 0x23628 +0x8EA4CAB6 0x3BC6 +0x8EA4CAB7 0x3BC5 +0x8EA4CAB8 0x3BCA +0x8EA4CAB9 0x3BD9 +0x8EA4CABA 0x3BC1 +0x8EA4CABB 0x23618 +0x8EA4CABC 0x2363B +0x8EA4CABD 0x69F5 +0x8EA4CABE 0x23627 +0x8EA4CABF 0x23624 +0x8EA4CAC0 0x2361B +0x8EA4CAC1 0x23631 +0x8EA4CAC2 0x3BCB +0x8EA4CAC3 0x23626 +0x8EA4CAC4 0x236A3 +0x8EA4CAC5 0x2363F +0x8EA4CAC6 0x23622 +0x8EA4CAC7 0x23619 +0x8EA4CAC8 0x6A03 +0x8EA4CAC9 0x23641 +0x8EA4CACA 0x2362B +0x8EA4CACB 0x6A65 +0x8EA4CACC 0x3C42 +0x8EA4CACD 0x2390C +0x8EA4CACE 0x6B75 +0x8EA4CACF 0x3C74 +0x8EA4CAD0 0x3C73 +0x8EA4CAD1 0x23A4E +0x8EA4CAD2 0x23AB9 +0x8EA4CAD3 0x23AFA +0x8EA4CAD4 0x23BE9 +0x8EA4CAD5 0x23BE8 +0x8EA4CAD6 0x23BE4 +0x8EA4CAD7 0x6F8A +0x8EA4CAD8 0x6F56 +0x8EA4CAD9 0x3D52 +0x8EA4CADA 0x23F5F +0x8EA4CADB 0x23F5D +0x8EA4CADC 0x23F52 +0x8EA4CADD 0x3D50 +0x8EA4CADE 0x23F74 +0x8EA4CADF 0x3D4B +0x8EA4CAE0 0x23F46 +0x8EA4CAE1 0x3D4C +0x8EA4CAE2 0x3D6D +0x8EA4CAE3 0x23FAA +0x8EA4CAE4 0x6F98 +0x8EA4CAE5 0x23F4A +0x8EA4CAE6 0x23F59 +0x8EA4CAE7 0x23F4B +0x8EA4CAE8 0x3D4F +0x8EA4CAE9 0x6F68 +0x8EA4CAEA 0x3DF0 +0x8EA4CAEB 0x24350 +0x8EA4CAEC 0x7234 +0x8EA4CAED 0x7245 +0x8EA4CAEE 0x3E4D +0x8EA4CAEF 0x3E4C +0x8EA4CAF0 0x246D0 +0x8EA4CAF1 0x3E4F +0x8EA4CAF2 0x3E4E +0x8EA4CAF3 0x3E50 +0x8EA4CAF4 0x246CC +0x8EA4CAF5 0x735C +0x8EA4CAF6 0x3E96 +0x8EA4CAF7 0x7356 +0x8EA4CAF8 0x24864 +0x8EA4CAF9 0x24865 +0x8EA4CAFA 0x3E97 +0x8EA4CAFB 0x3E95 +0x8EA4CAFC 0x3E98 +0x8EA4CAFD 0x2485C +0x8EA4CAFE 0x24A15 +0x8EA4CBA1 0x3EEC +0x8EA4CBA2 0x3EEB +0x8EA4CBA3 0x3F13 +0x8EA4CBA4 0x3F14 +0x8EA4CBA5 0x3F38 +0x8EA4CBA6 0x3F3A +0x8EA4CBA7 0x3F39 +0x8EA4CBA8 0x24B79 +0x8EA4CBA9 0x3F68 +0x8EA4CBAA 0x3F67 +0x8EA4CBAB 0x24CC5 +0x8EA4CBAC 0x24CB8 +0x8EA4CBAD 0x24E2C +0x8EA4CBAE 0x3FBE +0x8EA4CBAF 0x3FBC +0x8EA4CBB0 0x24E37 +0x8EA4CBB1 0x24E35 +0x8EA4CBB2 0x24E31 +0x8EA4CBB3 0x3FBB +0x8EA4CBB4 0x24E2F +0x8EA4CBB5 0x3FBA +0x8EA4CBB6 0x24E2B +0x8EA4CBB7 0x3FB9 +0x8EA4CBB8 0x3FB7 +0x8EA4CBB9 0x24E2D +0x8EA4CBBA 0x24E2A +0x8EA4CBBB 0x3FC1 +0x8EA4CBBC 0x24F95 +0x8EA4CBBD 0x3FF7 +0x8EA4CBBE 0x2523E +0x8EA4CBBF 0x4060 +0x8EA4CBC0 0x25247 +0x8EA4CBC1 0x25245 +0x8EA4CBC2 0x4059 +0x8EA4CBC3 0x405C +0x8EA4CBC4 0x405A +0x8EA4CBC5 0x4058 +0x8EA4CBC6 0x25252 +0x8EA4CBC7 0x405B +0x8EA4CBC8 0x25270 +0x8EA4CBC9 0x25250 +0x8EA4CBCA 0x25258 +0x8EA4CBCB 0x25251 +0x8EA4CBCC 0x2523D +0x8EA4CBCD 0x405D +0x8EA4CBCE 0x25241 +0x8EA4CBCF 0x2520C +0x8EA4CBD0 0x2523C +0x8EA4CBD1 0x25386 +0x8EA4CBD2 0x25383 +0x8EA4CBD3 0x25389 +0x8EA4CBD4 0x253F3 +0x8EA4CBD5 0x40D4 +0x8EA4CBD6 0x40D3 +0x8EA4CBD7 0x78BF +0x8EA4CBD8 0x40D2 +0x8EA4CBD9 0x78BD +0x8EA4CBDA 0x2552D +0x8EA4CBDB 0x40D7 +0x8EA4CBDC 0x40D1 +0x8EA4CBDD 0x78E4 +0x8EA4CBDE 0x40D5 +0x8EA4CBDF 0x256C5 +0x8EA4CBE0 0x2F955 +0x8EA4CBE1 0x416D +0x8EA4CBE2 0x416F +0x8EA4CBE3 0x7A34 +0x8EA4CBE4 0x4175 +0x8EA4CBE5 0x416C +0x8EA4CBE6 0x4174 +0x8EA4CBE7 0x25843 +0x8EA4CBE8 0x4173 +0x8EA4CBE9 0x25837 +0x8EA4CBEA 0x25845 +0x8EA4CBEB 0x7A36 +0x8EA4CBEC 0x41AC +0x8EA4CBED 0x259E5 +0x8EA4CBEE 0x25AA6 +0x8EA4CBEF 0x25BDB +0x8EA4CBF0 0x4210 +0x8EA4CBF1 0x25BDA +0x8EA4CBF2 0x25BE6 +0x8EA4CBF3 0x7BBA +0x8EA4CBF4 0x7BBC +0x8EA4CBF5 0x420F +0x8EA4CBF6 0x7BC8 +0x8EA4CBF7 0x4223 +0x8EA4CBF8 0x7BC3 +0x8EA4CBF9 0x421D +0x8EA4CBFA 0x7BB6 +0x8EA4CBFB 0x420E +0x8EA4CBFC 0x25BF8 +0x8EA4CBFD 0x25BE9 +0x8EA4CBFE 0x4215 +0x8EA4CCA1 0x7BC2 +0x8EA4CCA2 0x4213 +0x8EA4CCA3 0x25BE8 +0x8EA4CCA4 0x25BF6 +0x8EA4CCA5 0x421B +0x8EA4CCA6 0x7BC5 +0x8EA4CCA7 0x4222 +0x8EA4CCA8 0x4226 +0x8EA4CCA9 0x25BE7 +0x8EA4CCAA 0x7BBD +0x8EA4CCAB 0x7BB0 +0x8EA4CCAC 0x4221 +0x8EA4CCAD 0x421C +0x8EA4CCAE 0x4217 +0x8EA4CCAF 0x25BD5 +0x8EA4CCB0 0x421A +0x8EA4CCB1 0x7BBB +0x8EA4CCB2 0x25ED3 +0x8EA4CCB3 0x25EC7 +0x8EA4CCB4 0x25ED1 +0x8EA4CCB5 0x4299 +0x8EA4CCB6 0x25EC3 +0x8EA4CCB7 0x4297 +0x8EA4CCB8 0x26080 +0x8EA4CCB9 0x26098 +0x8EA4CCBA 0x42FD +0x8EA4CCBB 0x26084 +0x8EA4CCBC 0x42F6 +0x8EA4CCBD 0x42FE +0x8EA4CCBE 0x42F5 +0x8EA4CCBF 0x42FF +0x8EA4CCC0 0x42F7 +0x8EA4CCC1 0x26097 +0x8EA4CCC2 0x26083 +0x8EA4CCC3 0x26081 +0x8EA4CCC4 0x4301 +0x8EA4CCC5 0x7E04 +0x8EA4CCC6 0x2608C +0x8EA4CCC7 0x26242 +0x8EA4CCC8 0x263AB +0x8EA4CCC9 0x4377 +0x8EA4CCCA 0x263A3 +0x8EA4CCCB 0x263A6 +0x8EA4CCCC 0x2645C +0x8EA4CCCD 0x26469 +0x8EA4CCCE 0x26467 +0x8EA4CCCF 0x43AB +0x8EA4CCD0 0x2658B +0x8EA4CCD1 0x265A8 +0x8EA4CCD2 0x43C0 +0x8EA4CCD3 0x267D8 +0x8EA4CCD4 0x4431 +0x8EA4CCD5 0x442E +0x8EA4CCD6 0x2F989 +0x8EA4CCD7 0x267DC +0x8EA4CCD8 0x442C +0x8EA4CCD9 0x267E0 +0x8EA4CCDA 0x267E5 +0x8EA4CCDB 0x4432 +0x8EA4CCDC 0x442F +0x8EA4CCDD 0x442B +0x8EA4CCDE 0x442D +0x8EA4CCDF 0x4433 +0x8EA4CCE0 0x26918 +0x8EA4CCE1 0x26919 +0x8EA4CCE2 0x81F1 +0x8EA4CCE3 0x4457 +0x8EA4CCE4 0x445C +0x8EA4CCE5 0x447B +0x8EA4CCE6 0x26A5F +0x8EA4CCE7 0x26A5E +0x8EA4CCE8 0x447A +0x8EA4CCE9 0x26E02 +0x8EA4CCEA 0x8522 +0x8EA4CCEB 0x4513 +0x8EA4CCEC 0x451E +0x8EA4CCED 0x4517 +0x8EA4CCEE 0x4520 +0x8EA4CCEF 0x452A +0x8EA4CCF0 0x4511 +0x8EA4CCF1 0x4515 +0x8EA4CCF2 0x450F +0x8EA4CCF3 0x4518 +0x8EA4CCF4 0x8538 +0x8EA4CCF5 0x26E12 +0x8EA4CCF6 0x26E36 +0x8EA4CCF7 0x452C +0x8EA4CCF8 0x8532 +0x8EA4CCF9 0x2F9A8 +0x8EA4CCFA 0x8510 +0x8EA4CCFB 0x26E23 +0x8EA4CCFC 0x26E03 +0x8EA4CCFD 0x451C +0x8EA4CCFE 0x26E00 +0x8EA4CDA1 0x4529 +0x8EA4CDA2 0x26E46 +0x8EA4CDA3 0x26E61 +0x8EA4CDA4 0x4512 +0x8EA4CDA5 0x854F +0x8EA4CDA6 0x4597 +0x8EA4CDA7 0x27384 +0x8EA4CDA8 0x8772 +0x8EA4CDA9 0x2736B +0x8EA4CDAA 0x27362 +0x8EA4CDAB 0x27356 +0x8EA4CDAC 0x2736A +0x8EA4CDAD 0x27352 +0x8EA4CDAE 0x27355 +0x8EA4CDAF 0x45D4 +0x8EA4CDB0 0x45D0 +0x8EA4CDB1 0x877C +0x8EA4CDB2 0x27361 +0x8EA4CDB3 0x2F9BB +0x8EA4CDB4 0x27358 +0x8EA4CDB5 0x27377 +0x8EA4CDB6 0x45D3 +0x8EA4CDB7 0x4614 +0x8EA4CDB8 0x276D7 +0x8EA4CDB9 0x4646 +0x8EA4CDBA 0x4645 +0x8EA4CDBB 0x276DE +0x8EA4CDBC 0x4643 +0x8EA4CDBD 0x276DF +0x8EA4CDBE 0x890D +0x8EA4CDBF 0x4644 +0x8EA4CDC0 0x4648 +0x8EA4CDC1 0x276D1 +0x8EA4CDC2 0x4647 +0x8EA4CDC3 0x276E2 +0x8EA4CDC4 0x276E1 +0x8EA4CDC5 0x276DD +0x8EA4CDC6 0x8908 +0x8EA4CDC7 0x4649 +0x8EA4CDC8 0x4685 +0x8EA4CDC9 0x2784B +0x8EA4CDCA 0x4684 +0x8EA4CDCB 0x2784E +0x8EA4CDCC 0x469D +0x8EA4CDCD 0x278FC +0x8EA4CDCE 0x469E +0x8EA4CDCF 0x46A0 +0x8EA4CDD0 0x278FA +0x8EA4CDD1 0x469C +0x8EA4CDD2 0x278FB +0x8EA4CDD3 0x469F +0x8EA4CDD4 0x278FE +0x8EA4CDD5 0x46F7 +0x8EA4CDD6 0x46EA +0x8EA4CDD7 0x27A31 +0x8EA4CDD8 0x46EF +0x8EA4CDD9 0x46E9 +0x8EA4CDDA 0x46F3 +0x8EA4CDDB 0x46F0 +0x8EA4CDDC 0x46EB +0x8EA4CDDD 0x27A38 +0x8EA4CDDE 0x46EC +0x8EA4CDDF 0x46F2 +0x8EA4CDE0 0x46F5 +0x8EA4CDE1 0x46EE +0x8EA4CDE2 0x27A3A +0x8EA4CDE3 0x27BBB +0x8EA4CDE4 0x473A +0x8EA4CDE5 0x474B +0x8EA4CDE6 0x27C59 +0x8EA4CDE7 0x474A +0x8EA4CDE8 0x474C +0x8EA4CDE9 0x27CDB +0x8EA4CDEA 0x27CDF +0x8EA4CDEB 0x27CE2 +0x8EA4CDEC 0x4779 +0x8EA4CDED 0x477B +0x8EA4CDEE 0x4778 +0x8EA4CDEF 0x27D9E +0x8EA4CDF0 0x27DA1 +0x8EA4CDF1 0x47B5 +0x8EA4CDF2 0x27F10 +0x8EA4CDF3 0x47B4 +0x8EA4CDF4 0x47B7 +0x8EA4CDF5 0x8D9E +0x8EA4CDF6 0x4809 +0x8EA4CDF7 0x47FE +0x8EA4CDF8 0x4808 +0x8EA4CDF9 0x4807 +0x8EA4CDFA 0x28076 +0x8EA4CDFB 0x2807F +0x8EA4CDFC 0x2807D +0x8EA4CDFD 0x4806 +0x8EA4CDFE 0x4804 +0x8EA4CEA1 0x4805 +0x8EA4CEA2 0x47FF +0x8EA4CEA3 0x480B +0x8EA4CEA4 0x28082 +0x8EA4CEA5 0x28257 +0x8EA4CEA6 0x483B +0x8EA4CEA7 0x485D +0x8EA4CEA8 0x485C +0x8EA4CEA9 0x485F +0x8EA4CEAA 0x485E +0x8EA4CEAB 0x8F28 +0x8EA4CEAC 0x2832E +0x8EA4CEAD 0x8F21 +0x8EA4CEAE 0x4883 +0x8EA4CEAF 0x2858B +0x8EA4CEB0 0x2858D +0x8EA4CEB1 0x48A7 +0x8EA4CEB2 0x9066 +0x8EA4CEB3 0x906C +0x8EA4CEB4 0x28590 +0x8EA4CEB5 0x48A8 +0x8EA4CEB6 0x286EC +0x8EA4CEB7 0x2876F +0x8EA4CEB8 0x2876B +0x8EA4CEB9 0x28771 +0x8EA4CEBA 0x28778 +0x8EA4CEBB 0x90F6 +0x8EA4CEBC 0x48E0 +0x8EA4CEBD 0x48DF +0x8EA4CEBE 0x48FE +0x8EA4CEBF 0x48FC +0x8EA4CEC0 0x48FF +0x8EA4CEC1 0x48FD +0x8EA4CEC2 0x289AD +0x8EA4CEC3 0x492C +0x8EA4CEC4 0x92EC +0x8EA4CEC5 0x92BA +0x8EA4CEC6 0x92E3 +0x8EA4CEC7 0x92BD +0x8EA4CEC8 0x499D +0x8EA4CEC9 0x28D2F +0x8EA4CECA 0x95B4 +0x8EA4CECB 0x28F78 +0x8EA4CECC 0x4A40 +0x8EA4CECD 0x291F8 +0x8EA4CECE 0x29219 +0x8EA4CECF 0x4A5F +0x8EA4CED0 0x2929B +0x8EA4CED1 0x29294 +0x8EA4CED2 0x29297 +0x8EA4CED3 0x29299 +0x8EA4CED4 0x293A6 +0x8EA4CED5 0x293A4 +0x8EA4CED6 0x293A7 +0x8EA4CED7 0x97D1 +0x8EA4CED8 0x29495 +0x8EA4CED9 0x4AC0 +0x8EA4CEDA 0x9823 +0x8EA4CEDB 0x29490 +0x8EA4CEDC 0x4AC1 +0x8EA4CEDD 0x4AC6 +0x8EA4CEDE 0x2949B +0x8EA4CEDF 0x295C4 +0x8EA4CEE0 0x4B04 +0x8EA4CEE1 0x4B05 +0x8EA4CEE2 0x295C6 +0x8EA4CEE3 0x990B +0x8EA4CEE4 0x4B3E +0x8EA4CEE5 0x4B3D +0x8EA4CEE6 0x4B40 +0x8EA4CEE7 0x4B3F +0x8EA4CEE8 0x296E3 +0x8EA4CEE9 0x4B42 +0x8EA4CEEA 0x296DF +0x8EA4CEEB 0x296DD +0x8EA4CEEC 0x296E7 +0x8EA4CEED 0x4B84 +0x8EA4CEEE 0x4B82 +0x8EA4CEEF 0x4B7F +0x8EA4CEF0 0x4B85 +0x8EA4CEF1 0x29A2D +0x8EA4CEF2 0x29A2C +0x8EA4CEF3 0x4BCC +0x8EA4CEF4 0x9AB2 +0x8EA4CEF5 0x4BCB +0x8EA4CEF6 0x4BCD +0x8EA4CEF7 0x29A34 +0x8EA4CEF8 0x29A38 +0x8EA4CEF9 0x9ADB +0x8EA4CEFA 0x29B1D +0x8EA4CEFB 0x4BF5 +0x8EA4CEFC 0x29B1A +0x8EA4CEFD 0x29B1B +0x8EA4CEFE 0x29B14 +0x8EA4CFA1 0x9AF0 +0x8EA4CFA2 0x29B17 +0x8EA4CFA3 0x29C21 +0x8EA4CFA4 0x4C20 +0x8EA4CFA5 0x4C21 +0x8EA4CFA6 0x29CAA +0x8EA4CFA7 0x29CA1 +0x8EA4CFA8 0x4C37 +0x8EA4CFA9 0x4C3E +0x8EA4CFAA 0x9B73 +0x8EA4CFAB 0x4C3D +0x8EA4CFAC 0x9B6E +0x8EA4CFAD 0x29D63 +0x8EA4CFAE 0x29D79 +0x8EA4CFAF 0x29D60 +0x8EA4CFB0 0x9B65 +0x8EA4CFB1 0x29D62 +0x8EA4CFB2 0x4C3C +0x8EA4CFB3 0x29D61 +0x8EA4CFB4 0x4C38 +0x8EA4CFB5 0x9B6A +0x8EA4CFB6 0x29D70 +0x8EA4CFB7 0x9B6D +0x8EA4CFB8 0x29D6A +0x8EA4CFB9 0x4C3B +0x8EA4CFBA 0x29FC8 +0x8EA4CFBB 0x4CB0 +0x8EA4CFBC 0x29FC5 +0x8EA4CFBD 0x29FBE +0x8EA4CFBE 0x29FC2 +0x8EA4CFBF 0x4CAD +0x8EA4CFC0 0x4CB2 +0x8EA4CFC1 0x4CB8 +0x8EA4CFC2 0x9D0B +0x8EA4CFC3 0x29FC7 +0x8EA4CFC4 0x4CAF +0x8EA4CFC5 0x29FB0 +0x8EA4CFC6 0x29FCA +0x8EA4CFC7 0x4D1A +0x8EA4CFC8 0x9E76 +0x8EA4CFC9 0x4D20 +0x8EA4CFCA 0x4D21 +0x8EA4CFCB 0x4D30 +0x8EA4CFCC 0x9EA8 +0x8EA4CFCD 0x4D2F +0x8EA4CFCE 0x2A30D +0x8EA4CFCF 0x2A307 +0x8EA4CFD0 0x2A396 +0x8EA4CFD1 0x2A3EF +0x8EA4CFD2 0x4D5F +0x8EA4CFD3 0x4D60 +0x8EA4CFD4 0x2A41E +0x8EA4CFD5 0x2A41D +0x8EA4CFD6 0x9F11 +0x8EA4CFD7 0x2A590 +0x8EA4CFD8 0x203EB +0x8EA4CFD9 0x348A +0x8EA4CFDA 0x5119 +0x8EA4CFDB 0x349C +0x8EA4CFDC 0x203EE +0x8EA4CFDD 0x349A +0x8EA4CFDE 0x203EF +0x8EA4CFDF 0x203EC +0x8EA4CFE0 0x207FA +0x8EA4CFE1 0x350C +0x8EA4CFE2 0x350B +0x8EA4CFE3 0x350D +0x8EA4CFE4 0x5292 +0x8EA4CFE5 0x20904 +0x8EA4CFE6 0x20FD3 +0x8EA4CFE7 0x35FE +0x8EA4CFE8 0x20FD1 +0x8EA4CFE9 0x20FFA +0x8EA4CFEA 0x35FF +0x8EA4CFEB 0x35FB +0x8EA4CFEC 0x35FC +0x8EA4CFED 0x3609 +0x8EA4CFEE 0x20FC8 +0x8EA4CFEF 0x3600 +0x8EA4CFF0 0x20FD5 +0x8EA4CFF1 0x5675 +0x8EA4CFF2 0x20FCD +0x8EA4CFF3 0x20FD2 +0x8EA4CFF4 0x20FFB +0x8EA4CFF5 0x2122A +0x8EA4CFF6 0x21488 +0x8EA4CFF7 0x21461 +0x8EA4CFF8 0x3671 +0x8EA4CFF9 0x21463 +0x8EA4CFFA 0x21462 +0x8EA4CFFB 0x596F +0x8EA4CFFC 0x20057 +0x8EA4CFFD 0x218C8 +0x8EA4CFFE 0x21898 +0x8EA4D0A1 0x372B +0x8EA4D0A2 0x21AC1 +0x8EA4D0A3 0x21F3F +0x8EA4D0A4 0x21F41 +0x8EA4D0A5 0x3814 +0x8EA4D0A6 0x3811 +0x8EA4D0A7 0x3812 +0x8EA4D0A8 0x22152 +0x8EA4D0A9 0x3863 +0x8EA4D0AA 0x2215E +0x8EA4D0AB 0x386E +0x8EA4D0AC 0x389A +0x8EA4D0AD 0x222C7 +0x8EA4D0AE 0x389B +0x8EA4D0AF 0x22370 +0x8EA4D0B0 0x22427 +0x8EA4D0B1 0x38C8 +0x8EA4D0B2 0x22471 +0x8EA4D0B3 0x224B0 +0x8EA4D0B4 0x38F6 +0x8EA4D0B5 0x22842 +0x8EA4D0B6 0x22843 +0x8EA4D0B7 0x61A5 +0x8EA4D0B8 0x398C +0x8EA4D0B9 0x3997 +0x8EA4D0BA 0x39A2 +0x8EA4D0BB 0x61A0 +0x8EA4D0BC 0x22857 +0x8EA4D0BD 0x2289D +0x8EA4D0BE 0x22D89 +0x8EA4D0BF 0x22D8D +0x8EA4D0C0 0x22D8B +0x8EA4D0C1 0x22D80 +0x8EA4D0C2 0x22D92 +0x8EA4D0C3 0x22D8A +0x8EA4D0C4 0x22DC8 +0x8EA4D0C5 0x3A54 +0x8EA4D0C6 0x22D8F +0x8EA4D0C7 0x22D93 +0x8EA4D0C8 0x22D91 +0x8EA4D0C9 0x3AA8 +0x8EA4D0CA 0x22FF2 +0x8EA4D0CB 0x22FDE +0x8EA4D0CC 0x3AA9 +0x8EA4D0CD 0x230C8 +0x8EA4D0CE 0x65B4 +0x8EA4D0CF 0x65D8 +0x8EA4D0D0 0x66C2 +0x8EA4D0D1 0x3B18 +0x8EA4D0D2 0x3B17 +0x8EA4D0D3 0x3B1D +0x8EA4D0D4 0x232A7 +0x8EA4D0D5 0x232A1 +0x8EA4D0D6 0x3B31 +0x8EA4D0D7 0x2368C +0x8EA4D0D8 0x2367F +0x8EA4D0D9 0x3BD8 +0x8EA4D0DA 0x3BD5 +0x8EA4D0DB 0x2367B +0x8EA4D0DC 0x23695 +0x8EA4D0DD 0x23699 +0x8EA4D0DE 0x3BE1 +0x8EA4D0DF 0x2368E +0x8EA4D0E0 0x3BD4 +0x8EA4D0E1 0x236DA +0x8EA4D0E2 0x2368A +0x8EA4D0E3 0x2369C +0x8EA4D0E4 0x3BE3 +0x8EA4D0E5 0x2367E +0x8EA4D0E6 0x3C44 +0x8EA4D0E7 0x3C45 +0x8EA4D0E8 0x2391A +0x8EA4D0E9 0x23A55 +0x8EA4D0EA 0x3C76 +0x8EA4D0EB 0x3C75 +0x8EA4D0EC 0x23A60 +0x8EA4D0ED 0x6BA8 +0x8EA4D0EE 0x3C88 +0x8EA4D0EF 0x3CAA +0x8EA4D0F0 0x23BFB +0x8EA4D0F1 0x3CAB +0x8EA4D0F2 0x3CAC +0x8EA4D0F3 0x23BFD +0x8EA4D0F4 0x3D57 +0x8EA4D0F5 0x6F83 +0x8EA4D0F6 0x3D60 +0x8EA4D0F7 0x3D5D +0x8EA4D0F8 0x3D6B +0x8EA4D0F9 0x23FD0 +0x8EA4D0FA 0x3D63 +0x8EA4D0FB 0x3D67 +0x8EA4D0FC 0x23FC5 +0x8EA4D0FD 0x3D5E +0x8EA4D0FE 0x23FD2 +0x8EA4D1A1 0x24011 +0x8EA4D1A2 0x6FC5 +0x8EA4D1A3 0x71CD +0x8EA4D1A4 0x3DF9 +0x8EA4D1A5 0x3DF3 +0x8EA4D1A6 0x243AD +0x8EA4D1A7 0x243A4 +0x8EA4D1A8 0x243A9 +0x8EA4D1A9 0x243B0 +0x8EA4D1AA 0x2439D +0x8EA4D1AB 0x3DF6 +0x8EA4D1AC 0x24598 +0x8EA4D1AD 0x729C +0x8EA4D1AE 0x3E51 +0x8EA4D1AF 0x3E53 +0x8EA4D1B0 0x3E52 +0x8EA4D1B1 0x24892 +0x8EA4D1B2 0x3E9B +0x8EA4D1B3 0x2488A +0x8EA4D1B4 0x3E9C +0x8EA4D1B5 0x2488D +0x8EA4D1B6 0x24896 +0x8EA4D1B7 0x3EF7 +0x8EA4D1B8 0x7499 +0x8EA4D1B9 0x748F +0x8EA4D1BA 0x7491 +0x8EA4D1BB 0x24A45 +0x8EA4D1BC 0x24A4B +0x8EA4D1BD 0x24B0F +0x8EA4D1BE 0x24B16 +0x8EA4D1BF 0x3F3B +0x8EA4D1C0 0x24B8A +0x8EA4D1C1 0x3F3E +0x8EA4D1C2 0x3F3D +0x8EA4D1C3 0x24CC9 +0x8EA4D1C4 0x3F69 +0x8EA4D1C5 0x24CC8 +0x8EA4D1C6 0x24CCA +0x8EA4D1C7 0x24E64 +0x8EA4D1C8 0x3FC3 +0x8EA4D1C9 0x3FC4 +0x8EA4D1CA 0x3FC7 +0x8EA4D1CB 0x24E5D +0x8EA4D1CC 0x24E63 +0x8EA4D1CD 0x7639 +0x8EA4D1CE 0x3FC6 +0x8EA4D1CF 0x762E +0x8EA4D1D0 0x3FC8 +0x8EA4D1D1 0x24E88 +0x8EA4D1D2 0x24F3A +0x8EA4D1D3 0x24F39 +0x8EA4D1D4 0x769F +0x8EA4D1D5 0x76A0 +0x8EA4D1D6 0x3FE6 +0x8EA4D1D7 0x3FF8 +0x8EA4D1D8 0x25017 +0x8EA4D1D9 0x25093 +0x8EA4D1DA 0x4007 +0x8EA4D1DB 0x25095 +0x8EA4D1DC 0x4064 +0x8EA4D1DD 0x4068 +0x8EA4D1DE 0x25276 +0x8EA4D1DF 0x7794 +0x8EA4D1E0 0x4065 +0x8EA4D1E1 0x77AE +0x8EA4D1E2 0x25280 +0x8EA4D1E3 0x2527B +0x8EA4D1E4 0x4069 +0x8EA4D1E5 0x25248 +0x8EA4D1E6 0x252A8 +0x8EA4D1E7 0x25288 +0x8EA4D1E8 0x2538B +0x8EA4D1E9 0x2538A +0x8EA4D1EA 0x2538C +0x8EA4D1EB 0x253FC +0x8EA4D1EC 0x40DA +0x8EA4D1ED 0x40E0 +0x8EA4D1EE 0x78E6 +0x8EA4D1EF 0x25558 +0x8EA4D1F0 0x40DE +0x8EA4D1F1 0x25551 +0x8EA4D1F2 0x25555 +0x8EA4D1F3 0x25553 +0x8EA4D1F4 0x411C +0x8EA4D1F5 0x411D +0x8EA4D1F6 0x411A +0x8EA4D1F7 0x256DC +0x8EA4D1F8 0x417B +0x8EA4D1F9 0x417A +0x8EA4D1FA 0x417C +0x8EA4D1FB 0x2585C +0x8EA4D1FC 0x4178 +0x8EA4D1FD 0x4177 +0x8EA4D1FE 0x25865 +0x8EA4D2A1 0x2F95A +0x8EA4D2A2 0x41B1 +0x8EA4D2A3 0x259EE +0x8EA4D2A4 0x41B2 +0x8EA4D2A5 0x41B0 +0x8EA4D2A6 0x259F0 +0x8EA4D2A7 0x7ABC +0x8EA4D2A8 0x259F2 +0x8EA4D2A9 0x4236 +0x8EA4D2AA 0x25C35 +0x8EA4D2AB 0x422E +0x8EA4D2AC 0x25C22 +0x8EA4D2AD 0x7BD6 +0x8EA4D2AE 0x25C20 +0x8EA4D2AF 0x4234 +0x8EA4D2B0 0x25C2D +0x8EA4D2B1 0x25C28 +0x8EA4D2B2 0x25C26 +0x8EA4D2B3 0x25C3C +0x8EA4D2B4 0x422A +0x8EA4D2B5 0x25C38 +0x8EA4D2B6 0x4233 +0x8EA4D2B7 0x422D +0x8EA4D2B8 0x422F +0x8EA4D2B9 0x4231 +0x8EA4D2BA 0x422B +0x8EA4D2BB 0x4232 +0x8EA4D2BC 0x25C2A +0x8EA4D2BD 0x4235 +0x8EA4D2BE 0x25C1A +0x8EA4D2BF 0x25C30 +0x8EA4D2C0 0x25BE3 +0x8EA4D2C1 0x25C19 +0x8EA4D2C2 0x25EE9 +0x8EA4D2C3 0x25EE7 +0x8EA4D2C4 0x7CCF +0x8EA4D2C5 0x260D6 +0x8EA4D2C6 0x260C4 +0x8EA4D2C7 0x4308 +0x8EA4D2C8 0x26087 +0x8EA4D2C9 0x4306 +0x8EA4D2CA 0x260C7 +0x8EA4D2CB 0x260D9 +0x8EA4D2CC 0x7E18 +0x8EA4D2CD 0x260DF +0x8EA4D2CE 0x434D +0x8EA4D2CF 0x4361 +0x8EA4D2D0 0x2630A +0x8EA4D2D1 0x26301 +0x8EA4D2D2 0x263B1 +0x8EA4D2D3 0x4378 +0x8EA4D2D4 0x263C1 +0x8EA4D2D5 0x4394 +0x8EA4D2D6 0x4395 +0x8EA4D2D7 0x26476 +0x8EA4D2D8 0x2650D +0x8EA4D2D9 0x2650E +0x8EA4D2DA 0x43C1 +0x8EA4D2DB 0x43C3 +0x8EA4D2DC 0x806D +0x8EA4D2DD 0x26807 +0x8EA4D2DE 0x4439 +0x8EA4D2DF 0x26809 +0x8EA4D2E0 0x26816 +0x8EA4D2E1 0x443A +0x8EA4D2E2 0x443B +0x8EA4D2E3 0x4435 +0x8EA4D2E4 0x4436 +0x8EA4D2E5 0x2680E +0x8EA4D2E6 0x443C +0x8EA4D2E7 0x8190 +0x8EA4D2E8 0x26806 +0x8EA4D2E9 0x2691E +0x8EA4D2EA 0x2694A +0x8EA4D2EB 0x4458 +0x8EA4D2EC 0x447C +0x8EA4D2ED 0x447D +0x8EA4D2EE 0x448D +0x8EA4D2EF 0x448C +0x8EA4D2F0 0x26EA6 +0x8EA4D2F1 0x26E91 +0x8EA4D2F2 0x453B +0x8EA4D2F3 0x453F +0x8EA4D2F4 0x26EB8 +0x8EA4D2F5 0x26E96 +0x8EA4D2F6 0x4532 +0x8EA4D2F7 0x452D +0x8EA4D2F8 0x26EC5 +0x8EA4D2F9 0x452F +0x8EA4D2FA 0x4539 +0x8EA4D2FB 0x452E +0x8EA4D2FC 0x453A +0x8EA4D2FD 0x26F0A +0x8EA4D2FE 0x4536 +0x8EA4D3A1 0x4531 +0x8EA4D3A2 0x453E +0x8EA4D3A3 0x4538 +0x8EA4D3A4 0x8552 +0x8EA4D3A5 0x4534 +0x8EA4D3A6 0x26EB2 +0x8EA4D3A7 0x4541 +0x8EA4D3A8 0x26EB7 +0x8EA4D3A9 0x26EB4 +0x8EA4D3AA 0x26E89 +0x8EA4D3AB 0x26E8D +0x8EA4D3AC 0x4530 +0x8EA4D3AD 0x26E87 +0x8EA4D3AE 0x26EC2 +0x8EA4D3AF 0x26E9C +0x8EA4D3B0 0x26E92 +0x8EA4D3B1 0x4543 +0x8EA4D3B2 0x26ECA +0x8EA4D3B3 0x8550 +0x8EA4D3B4 0x26E8A +0x8EA4D3B5 0x271E0 +0x8EA4D3B6 0x4598 +0x8EA4D3B7 0x271E6 +0x8EA4D3B8 0x271E5 +0x8EA4D3B9 0x87A0 +0x8EA4D3BA 0x273A5 +0x8EA4D3BB 0x273B3 +0x8EA4D3BC 0x8786 +0x8EA4D3BD 0x45DA +0x8EA4D3BE 0x45D7 +0x8EA4D3BF 0x273B5 +0x8EA4D3C0 0x273AF +0x8EA4D3C1 0x8795 +0x8EA4D3C2 0x273B0 +0x8EA4D3C3 0x273CC +0x8EA4D3C4 0x878C +0x8EA4D3C5 0x273A2 +0x8EA4D3C6 0x273BE +0x8EA4D3C7 0x273C6 +0x8EA4D3C8 0x273AC +0x8EA4D3C9 0x273AE +0x8EA4D3CA 0x4618 +0x8EA4D3CB 0x8860 +0x8EA4D3CC 0x2F9C3 +0x8EA4D3CD 0x27708 +0x8EA4D3CE 0x27705 +0x8EA4D3CF 0x4652 +0x8EA4D3D0 0x8928 +0x8EA4D3D1 0x276FE +0x8EA4D3D2 0x464E +0x8EA4D3D3 0x8920 +0x8EA4D3D4 0x27700 +0x8EA4D3D5 0x464F +0x8EA4D3D6 0x4650 +0x8EA4D3D7 0x27864 +0x8EA4D3D8 0x27868 +0x8EA4D3D9 0x89A8 +0x8EA4D3DA 0x4686 +0x8EA4D3DB 0x4687 +0x8EA4D3DC 0x4689 +0x8EA4D3DD 0x2786A +0x8EA4D3DE 0x27869 +0x8EA4D3DF 0x2790D +0x8EA4D3E0 0x27912 +0x8EA4D3E1 0x46A2 +0x8EA4D3E2 0x46A3 +0x8EA4D3E3 0x2790F +0x8EA4D3E4 0x46A1 +0x8EA4D3E5 0x27A67 +0x8EA4D3E6 0x27A79 +0x8EA4D3E7 0x27A72 +0x8EA4D3E8 0x27A66 +0x8EA4D3E9 0x27A7C +0x8EA4D3EA 0x46F9 +0x8EA4D3EB 0x46FD +0x8EA4D3EC 0x27A68 +0x8EA4D3ED 0x27A85 +0x8EA4D3EE 0x27A76 +0x8EA4D3EF 0x27A74 +0x8EA4D3F0 0x27A71 +0x8EA4D3F1 0x27A64 +0x8EA4D3F2 0x473E +0x8EA4D3F3 0x473C +0x8EA4D3F4 0x27BF8 +0x8EA4D3F5 0x474D +0x8EA4D3F6 0x27C6C +0x8EA4D3F7 0x474E +0x8EA4D3F8 0x27CEB +0x8EA4D3F9 0x4781 +0x8EA4D3FA 0x4783 +0x8EA4D3FB 0x4782 +0x8EA4D3FC 0x27DB8 +0x8EA4D3FD 0x4780 +0x8EA4D3FE 0x4788 +0x8EA4D4A1 0x27F2D +0x8EA4D4A2 0x27F2E +0x8EA4D4A3 0x27F28 +0x8EA4D4A4 0x27F29 +0x8EA4D4A5 0x27F31 +0x8EA4D4A6 0x47B9 +0x8EA4D4A7 0x27F2F +0x8EA4D4A8 0x27F2A +0x8EA4D4A9 0x8E3A +0x8EA4D4AA 0x280A4 +0x8EA4D4AB 0x280B7 +0x8EA4D4AC 0x280BF +0x8EA4D4AD 0x4811 +0x8EA4D4AE 0x480D +0x8EA4D4AF 0x4810 +0x8EA4D4B0 0x4813 +0x8EA4D4B1 0x28263 +0x8EA4D4B2 0x483C +0x8EA4D4B3 0x4862 +0x8EA4D4B4 0x4863 +0x8EA4D4B5 0x28367 +0x8EA4D4B6 0x285BE +0x8EA4D4B7 0x2F9E0 +0x8EA4D4B8 0x28795 +0x8EA4D4B9 0x2879C +0x8EA4D4BA 0x4903 +0x8EA4D4BB 0x4906 +0x8EA4D4BC 0x4902 +0x8EA4D4BD 0x4901 +0x8EA4D4BE 0x28871 +0x8EA4D4BF 0x28872 +0x8EA4D4C0 0x4905 +0x8EA4D4C1 0x2886F +0x8EA4D4C2 0x9194 +0x8EA4D4C3 0x9311 +0x8EA4D4C4 0x289F1 +0x8EA4D4C5 0x9337 +0x8EA4D4C6 0x4936 +0x8EA4D4C7 0x289E8 +0x8EA4D4C8 0x4935 +0x8EA4D4C9 0x9343 +0x8EA4D4CA 0x2F9EA +0x8EA4D4CB 0x49A1 +0x8EA4D4CC 0x49A3 +0x8EA4D4CD 0x28D49 +0x8EA4D4CE 0x28D64 +0x8EA4D4CF 0x49A0 +0x8EA4D4D0 0x28D48 +0x8EA4D4D1 0x49EA +0x8EA4D4D2 0x96A6 +0x8EA4D4D3 0x49E8 +0x8EA4D4D4 0x28F2C +0x8EA4D4D5 0x28FE1 +0x8EA4D4D6 0x28FEF +0x8EA4D4D7 0x290C0 +0x8EA4D4D8 0x4A21 +0x8EA4D4D9 0x4A1B +0x8EA4D4DA 0x290D7 +0x8EA4D4DB 0x290D4 +0x8EA4D4DC 0x4A49 +0x8EA4D4DD 0x4A48 +0x8EA4D4DE 0x292AD +0x8EA4D4DF 0x9795 +0x8EA4D4E0 0x4A62 +0x8EA4D4E1 0x4A61 +0x8EA4D4E2 0x4A64 +0x8EA4D4E3 0x4A60 +0x8EA4D4E4 0x4A63 +0x8EA4D4E5 0x292AE +0x8EA4D4E6 0x292AC +0x8EA4D4E7 0x9796 +0x8EA4D4E8 0x4A66 +0x8EA4D4E9 0x4AAC +0x8EA4D4EA 0x4AAB +0x8EA4D4EB 0x29427 +0x8EA4D4EC 0x294AE +0x8EA4D4ED 0x4AC3 +0x8EA4D4EE 0x294B0 +0x8EA4D4EF 0x4AC4 +0x8EA4D4F0 0x9825 +0x8EA4D4F1 0x294C0 +0x8EA4D4F2 0x294C4 +0x8EA4D4F3 0x4B08 +0x8EA4D4F4 0x4B09 +0x8EA4D4F5 0x4B0A +0x8EA4D4F6 0x4B06 +0x8EA4D4F7 0x4B07 +0x8EA4D4F8 0x4B41 +0x8EA4D4F9 0x29707 +0x8EA4D4FA 0x4B45 +0x8EA4D4FB 0x296FD +0x8EA4D4FC 0x4B43 +0x8EA4D4FD 0x4B44 +0x8EA4D4FE 0x9926 +0x8EA4D5A1 0x9934 +0x8EA4D5A2 0x4B47 +0x8EA4D5A3 0x2FA04 +0x8EA4D5A4 0x2981B +0x8EA4D5A5 0x2981C +0x8EA4D5A6 0x4B71 +0x8EA4D5A7 0x298B2 +0x8EA4D5A8 0x298B4 +0x8EA4D5A9 0x298B7 +0x8EA4D5AA 0x298B1 +0x8EA4D5AB 0x298B3 +0x8EA4D5AC 0x298AE +0x8EA4D5AD 0x4B8B +0x8EA4D5AE 0x4BD4 +0x8EA4D5AF 0x4BD3 +0x8EA4D5B0 0x4BD1 +0x8EA4D5B1 0x9ABA +0x8EA4D5B2 0x4BD2 +0x8EA4D5B3 0x29A3F +0x8EA4D5B4 0x29B36 +0x8EA4D5B5 0x4BF7 +0x8EA4D5B6 0x4BF8 +0x8EA4D5B7 0x29B31 +0x8EA4D5B8 0x29B3B +0x8EA4D5B9 0x29B35 +0x8EA4D5BA 0x29B3A +0x8EA4D5BB 0x29B37 +0x8EA4D5BC 0x29C22 +0x8EA4D5BD 0x29C36 +0x8EA4D5BE 0x29C32 +0x8EA4D5BF 0x4C22 +0x8EA4D5C0 0x29CC0 +0x8EA4D5C1 0x4C45 +0x8EA4D5C2 0x4C41 +0x8EA4D5C3 0x9B81 +0x8EA4D5C4 0x4C40 +0x8EA4D5C5 0x9B8A +0x8EA4D5C6 0x29D85 +0x8EA4D5C7 0x9B7F +0x8EA4D5C8 0x4C42 +0x8EA4D5C9 0x29D89 +0x8EA4D5CA 0x4CC1 +0x8EA4D5CB 0x4CC5 +0x8EA4D5CC 0x29FE1 +0x8EA4D5CD 0x4CBB +0x8EA4D5CE 0x4CB9 +0x8EA4D5CF 0x4CBD +0x8EA4D5D0 0x4CC9 +0x8EA4D5D1 0x2A00A +0x8EA4D5D2 0x9D11 +0x8EA4D5D3 0x2A009 +0x8EA4D5D4 0x4CBF +0x8EA4D5D5 0x4CC7 +0x8EA4D5D6 0x29FE8 +0x8EA4D5D7 0x4CC3 +0x8EA4D5D8 0x4D24 +0x8EA4D5D9 0x4D31 +0x8EA4D5DA 0x4D33 +0x8EA4D5DB 0x2A318 +0x8EA4D5DC 0x4D32 +0x8EA4D5DD 0x4D34 +0x8EA4D5DE 0x4D52 +0x8EA4D5DF 0x4D61 +0x8EA4D5E0 0x9ED9 +0x8EA4D5E1 0x4D7A +0x8EA4D5E2 0x4D82 +0x8EA4D5E3 0x9F3C +0x8EA4D5E4 0x2A5C5 +0x8EA4D5E5 0x5123 +0x8EA4D5E6 0x2040D +0x8EA4D5E7 0x2040C +0x8EA4D5E8 0x20421 +0x8EA4D5E9 0x512C +0x8EA4D5EA 0x20616 +0x8EA4D5EB 0x2080E +0x8EA4D5EC 0x350F +0x8EA4D5ED 0x5295 +0x8EA4D5EE 0x20817 +0x8EA4D5EF 0x3523 +0x8EA4D5F0 0x3525 +0x8EA4D5F1 0x21048 +0x8EA4D5F2 0x3606 +0x8EA4D5F3 0x3608 +0x8EA4D5F4 0x5688 +0x8EA4D5F5 0x21055 +0x8EA4D5F6 0x21049 +0x8EA4D5F7 0x2104C +0x8EA4D5F8 0x568B +0x8EA4D5F9 0x2104F +0x8EA4D5FA 0x2103D +0x8EA4D5FB 0x367A +0x8EA4D5FC 0x3677 +0x8EA4D5FD 0x2148A +0x8EA4D5FE 0x214A8 +0x8EA4D6A1 0x2168A +0x8EA4D6A2 0x372E +0x8EA4D6A3 0x218CB +0x8EA4D6A4 0x372F +0x8EA4D6A5 0x218D5 +0x8EA4D6A6 0x221D4 +0x8EA4D6A7 0x381B +0x8EA4D6A8 0x3813 +0x8EA4D6A9 0x21F5C +0x8EA4D6AA 0x21F75 +0x8EA4D6AB 0x3866 +0x8EA4D6AC 0x22161 +0x8EA4D6AD 0x3865 +0x8EA4D6AE 0x21696 +0x8EA4D6AF 0x38F7 +0x8EA4D6B0 0x2258A +0x8EA4D6B1 0x228D0 +0x8EA4D6B2 0x61E1 +0x8EA4D6B3 0x61D7 +0x8EA4D6B4 0x22849 +0x8EA4D6B5 0x228CF +0x8EA4D6B6 0x399C +0x8EA4D6B7 0x22DD6 +0x8EA4D6B8 0x22D7F +0x8EA4D6B9 0x3A53 +0x8EA4D6BA 0x22DD2 +0x8EA4D6BB 0x22DCF +0x8EA4D6BC 0x23006 +0x8EA4D6BD 0x23009 +0x8EA4D6BE 0x3ABA +0x8EA4D6BF 0x65A3 +0x8EA4D6C0 0x3B22 +0x8EA4D6C1 0x66D3 +0x8EA4D6C2 0x23706 +0x8EA4D6C3 0x236F1 +0x8EA4D6C4 0x23704 +0x8EA4D6C5 0x6A8B +0x8EA4D6C6 0x236FA +0x8EA4D6C7 0x236F4 +0x8EA4D6C8 0x3BEB +0x8EA4D6C9 0x3BDD +0x8EA4D6CA 0x236F9 +0x8EA4D6CB 0x3BEF +0x8EA4D6CC 0x2368B +0x8EA4D6CD 0x23703 +0x8EA4D6CE 0x3C47 +0x8EA4D6CF 0x3C46 +0x8EA4D6D0 0x239A2 +0x8EA4D6D1 0x3C78 +0x8EA4D6D2 0x6BAC +0x8EA4D6D3 0x3C89 +0x8EA4D6D4 0x23C0C +0x8EA4D6D5 0x23C0B +0x8EA4D6D6 0x3D68 +0x8EA4D6D7 0x3D76 +0x8EA4D6D8 0x3D74 +0x8EA4D6D9 0x3D79 +0x8EA4D6DA 0x24024 +0x8EA4D6DB 0x3D7A +0x8EA4D6DC 0x3D77 +0x8EA4D6DD 0x2F914 +0x8EA4D6DE 0x3D71 +0x8EA4D6DF 0x24025 +0x8EA4D6E0 0x3D72 +0x8EA4D6E1 0x243F6 +0x8EA4D6E2 0x3DFF +0x8EA4D6E3 0x243FB +0x8EA4D6E4 0x3E05 +0x8EA4D6E5 0x24532 +0x8EA4D6E6 0x245FB +0x8EA4D6E7 0x3E54 +0x8EA4D6E8 0x246F2 +0x8EA4D6E9 0x246F3 +0x8EA4D6EA 0x3E9E +0x8EA4D6EB 0x3E9F +0x8EA4D6EC 0x7374 +0x8EA4D6ED 0x2489C +0x8EA4D6EE 0x24A72 +0x8EA4D6EF 0x3EFA +0x8EA4D6F0 0x24A74 +0x8EA4D6F1 0x3F44 +0x8EA4D6F2 0x3F3F +0x8EA4D6F3 0x3F40 +0x8EA4D6F4 0x24B86 +0x8EA4D6F5 0x3F42 +0x8EA4D6F6 0x24B8E +0x8EA4D6F7 0x24B90 +0x8EA4D6F8 0x3F51 +0x8EA4D6F9 0x24BCD +0x8EA4D6FA 0x24BF7 +0x8EA4D6FB 0x24CD6 +0x8EA4D6FC 0x24E84 +0x8EA4D6FD 0x24E95 +0x8EA4D6FE 0x24E8A +0x8EA4D7A1 0x7640 +0x8EA4D7A2 0x3FCA +0x8EA4D7A3 0x24E97 +0x8EA4D7A4 0x7641 +0x8EA4D7A5 0x3FCE +0x8EA4D7A6 0x3FC9 +0x8EA4D7A7 0x24FA0 +0x8EA4D7A8 0x24FA1 +0x8EA4D7A9 0x25022 +0x8EA4D7AA 0x250A6 +0x8EA4D7AB 0x250A4 +0x8EA4D7AC 0x4009 +0x8EA4D7AD 0x76E8 +0x8EA4D7AE 0x406C +0x8EA4D7AF 0x406E +0x8EA4D7B0 0x4070 +0x8EA4D7B1 0x406D +0x8EA4D7B2 0x406B +0x8EA4D7B3 0x4071 +0x8EA4D7B4 0x4072 +0x8EA4D7B5 0x252AF +0x8EA4D7B6 0x252B0 +0x8EA4D7B7 0x252BD +0x8EA4D7B8 0x408C +0x8EA4D7B9 0x40E4 +0x8EA4D7BA 0x25576 +0x8EA4D7BB 0x40E1 +0x8EA4D7BC 0x2557B +0x8EA4D7BD 0x25579 +0x8EA4D7BE 0x78F6 +0x8EA4D7BF 0x40E7 +0x8EA4D7C0 0x7900 +0x8EA4D7C1 0x40E2 +0x8EA4D7C2 0x411F +0x8EA4D7C3 0x256EE +0x8EA4D7C4 0x256F1 +0x8EA4D7C5 0x417E +0x8EA4D7C6 0x25894 +0x8EA4D7C7 0x4180 +0x8EA4D7C8 0x7A59 +0x8EA4D7C9 0x7A55 +0x8EA4D7CA 0x25891 +0x8EA4D7CB 0x41B9 +0x8EA4D7CC 0x41B7 +0x8EA4D7CD 0x41B8 +0x8EA4D7CE 0x25A10 +0x8EA4D7CF 0x41BA +0x8EA4D7D0 0x7AF4 +0x8EA4D7D1 0x25AAF +0x8EA4D7D2 0x41D3 +0x8EA4D7D3 0x423F +0x8EA4D7D4 0x7C04 +0x8EA4D7D5 0x4245 +0x8EA4D7D6 0x4241 +0x8EA4D7D7 0x7C15 +0x8EA4D7D8 0x4242 +0x8EA4D7D9 0x4243 +0x8EA4D7DA 0x423B +0x8EA4D7DB 0x4238 +0x8EA4D7DC 0x25C7B +0x8EA4D7DD 0x25C77 +0x8EA4D7DE 0x423A +0x8EA4D7DF 0x7BF5 +0x8EA4D7E0 0x25C80 +0x8EA4D7E1 0x25CC6 +0x8EA4D7E2 0x423C +0x8EA4D7E3 0x25C7C +0x8EA4D7E4 0x25C90 +0x8EA4D7E5 0x423E +0x8EA4D7E6 0x25CA3 +0x8EA4D7E7 0x25C7D +0x8EA4D7E8 0x25CBD +0x8EA4D7E9 0x429E +0x8EA4D7EA 0x429F +0x8EA4D7EB 0x42A1 +0x8EA4D7EC 0x25F13 +0x8EA4D7ED 0x429B +0x8EA4D7EE 0x4312 +0x8EA4D7EF 0x26111 +0x8EA4D7F0 0x26144 +0x8EA4D7F1 0x2610D +0x8EA4D7F2 0x4318 +0x8EA4D7F3 0x430C +0x8EA4D7F4 0x26314 +0x8EA4D7F5 0x4362 +0x8EA4D7F6 0x263B8 +0x8EA4D7F7 0x437A +0x8EA4D7F8 0x263B7 +0x8EA4D7F9 0x26483 +0x8EA4D7FA 0x43AE +0x8EA4D7FB 0x43AF +0x8EA4D7FC 0x26514 +0x8EA4D7FD 0x43AD +0x8EA4D7FE 0x2651C +0x8EA4D8A1 0x43C4 +0x8EA4D8A2 0x43C7 +0x8EA4D8A3 0x43C6 +0x8EA4D8A4 0x43C5 +0x8EA4D8A5 0x265D4 +0x8EA4D8A6 0x265D5 +0x8EA4D8A7 0x81C1 +0x8EA4D8A8 0x4440 +0x8EA4D8A9 0x26843 +0x8EA4D8AA 0x26842 +0x8EA4D8AB 0x443F +0x8EA4D8AC 0x4441 +0x8EA4D8AD 0x2F98A +0x8EA4D8AE 0x26841 +0x8EA4D8AF 0x2694E +0x8EA4D8B0 0x447F +0x8EA4D8B1 0x26A87 +0x8EA4D8B2 0x4486 +0x8EA4D8B3 0x4481 +0x8EA4D8B4 0x4480 +0x8EA4D8B5 0x448E +0x8EA4D8B6 0x454A +0x8EA4D8B7 0x26F39 +0x8EA4D8B8 0x4547 +0x8EA4D8B9 0x26F8F +0x8EA4D8BA 0x26F2A +0x8EA4D8BB 0x454B +0x8EA4D8BC 0x4546 +0x8EA4D8BD 0x454E +0x8EA4D8BE 0x857D +0x8EA4D8BF 0x26F2B +0x8EA4D8C0 0x85A5 +0x8EA4D8C1 0x26F50 +0x8EA4D8C2 0x4548 +0x8EA4D8C3 0x26F6E +0x8EA4D8C4 0x4545 +0x8EA4D8C5 0x26F3B +0x8EA4D8C6 0x26F53 +0x8EA4D8C7 0x26F5F +0x8EA4D8C8 0x26F2F +0x8EA4D8C9 0x26F30 +0x8EA4D8CA 0x26F38 +0x8EA4D8CB 0x26F4C +0x8EA4D8CC 0x271F1 +0x8EA4D8CD 0x45DB +0x8EA4D8CE 0x45E7 +0x8EA4D8CF 0x45E4 +0x8EA4D8D0 0x27407 +0x8EA4D8D1 0x27416 +0x8EA4D8D2 0x45E1 +0x8EA4D8D3 0x27414 +0x8EA4D8D4 0x45E9 +0x8EA4D8D5 0x273FB +0x8EA4D8D6 0x45E5 +0x8EA4D8D7 0x45E0 +0x8EA4D8D8 0x45E3 +0x8EA4D8D9 0x273F8 +0x8EA4D8DA 0x27410 +0x8EA4D8DB 0x2741D +0x8EA4D8DC 0x273FF +0x8EA4D8DD 0x2740B +0x8EA4D8DE 0x27404 +0x8EA4D8DF 0x45EA +0x8EA4D8E0 0x273FE +0x8EA4D8E1 0x275FF +0x8EA4D8E2 0x893A +0x8EA4D8E3 0x4654 +0x8EA4D8E4 0x4658 +0x8EA4D8E5 0x465C +0x8EA4D8E6 0x27723 +0x8EA4D8E7 0x4655 +0x8EA4D8E8 0x468B +0x8EA4D8E9 0x468C +0x8EA4D8EA 0x46A6 +0x8EA4D8EB 0x46A5 +0x8EA4D8EC 0x2792A +0x8EA4D8ED 0x27AA0 +0x8EA4D8EE 0x27A98 +0x8EA4D8EF 0x27A9C +0x8EA4D8F0 0x46FF +0x8EA4D8F1 0x27A9E +0x8EA4D8F2 0x27AA6 +0x8EA4D8F3 0x27AB5 +0x8EA4D8F4 0x27AB0 +0x8EA4D8F5 0x4730 +0x8EA4D8F6 0x4740 +0x8EA4D8F7 0x4741 +0x8EA4D8F8 0x27CF9 +0x8EA4D8F9 0x27CF5 +0x8EA4D8FA 0x4786 +0x8EA4D8FB 0x27DD2 +0x8EA4D8FC 0x47BF +0x8EA4D8FD 0x47BD +0x8EA4D8FE 0x27F50 +0x8EA4D9A1 0x27F4E +0x8EA4D9A2 0x27F4B +0x8EA4D9A3 0x27F52 +0x8EA4D9A4 0x27F4D +0x8EA4D9A5 0x47BE +0x8EA4D9A6 0x4819 +0x8EA4D9A7 0x280E4 +0x8EA4D9A8 0x481C +0x8EA4D9A9 0x280DA +0x8EA4D9AA 0x481B +0x8EA4D9AB 0x4817 +0x8EA4D9AC 0x4818 +0x8EA4D9AD 0x8E51 +0x8EA4D9AE 0x280DF +0x8EA4D9AF 0x280E8 +0x8EA4D9B0 0x483D +0x8EA4D9B1 0x486A +0x8EA4D9B2 0x4866 +0x8EA4D9B3 0x28370 +0x8EA4D9B4 0x28372 +0x8EA4D9B5 0x4867 +0x8EA4D9B6 0x28377 +0x8EA4D9B7 0x4868 +0x8EA4D9B8 0x48AD +0x8EA4D9B9 0x48AE +0x8EA4D9BA 0x285E6 +0x8EA4D9BB 0x287AA +0x8EA4D9BC 0x48D6 +0x8EA4D9BD 0x4909 +0x8EA4D9BE 0x2888C +0x8EA4D9BF 0x9198 +0x8EA4D9C0 0x28889 +0x8EA4D9C1 0x490C +0x8EA4D9C2 0x490A +0x8EA4D9C3 0x28A32 +0x8EA4D9C4 0x493B +0x8EA4D9C5 0x493A +0x8EA4D9C6 0x9384 +0x8EA4D9C7 0x9381 +0x8EA4D9C8 0x28A7A +0x8EA4D9C9 0x936F +0x8EA4D9CA 0x28C9E +0x8EA4D9CB 0x28CA0 +0x8EA4D9CC 0x28D70 +0x8EA4D9CD 0x49AF +0x8EA4D9CE 0x49AA +0x8EA4D9CF 0x49AB +0x8EA4D9D0 0x28D6E +0x8EA4D9D1 0x28D66 +0x8EA4D9D2 0x49B1 +0x8EA4D9D3 0x28D65 +0x8EA4D9D4 0x49AC +0x8EA4D9D5 0x49EC +0x8EA4D9D6 0x28F7F +0x8EA4D9D7 0x28FE0 +0x8EA4D9D8 0x4A01 +0x8EA4D9D9 0x28FFF +0x8EA4D9DA 0x290F6 +0x8EA4D9DB 0x290F7 +0x8EA4D9DC 0x290F5 +0x8EA4D9DD 0x4A23 +0x8EA4D9DE 0x290FC +0x8EA4D9DF 0x4A24 +0x8EA4D9E0 0x4A1E +0x8EA4D9E1 0x290F9 +0x8EA4D9E2 0x4A4A +0x8EA4D9E3 0x4A65 +0x8EA4D9E4 0x4A6A +0x8EA4D9E5 0x292CA +0x8EA4D9E6 0x292C3 +0x8EA4D9E7 0x292C6 +0x8EA4D9E8 0x4A69 +0x8EA4D9E9 0x293B8 +0x8EA4D9EA 0x293BD +0x8EA4D9EB 0x4A95 +0x8EA4D9EC 0x293BC +0x8EA4D9ED 0x29405 +0x8EA4D9EE 0x294E0 +0x8EA4D9EF 0x294E9 +0x8EA4D9F0 0x9842 +0x8EA4D9F1 0x294DF +0x8EA4D9F2 0x294EC +0x8EA4D9F3 0x4ACC +0x8EA4D9F4 0x294E5 +0x8EA4D9F5 0x294DE +0x8EA4D9F6 0x2FA00 +0x8EA4D9F7 0x4ACF +0x8EA4D9F8 0x294F0 +0x8EA4D9F9 0x294E3 +0x8EA4D9FA 0x4B0F +0x8EA4D9FB 0x295EC +0x8EA4D9FC 0x4B0E +0x8EA4D9FD 0x4B0B +0x8EA4D9FE 0x4B10 +0x8EA4DAA1 0x4B0D +0x8EA4DAA2 0x4B0C +0x8EA4DAA3 0x295F2 +0x8EA4DAA4 0x295EF +0x8EA4DAA5 0x295E9 +0x8EA4DAA6 0x296FB +0x8EA4DAA7 0x4B46 +0x8EA4DAA8 0x4B48 +0x8EA4DAA9 0x9937 +0x8EA4DAAA 0x4B49 +0x8EA4DAAB 0x29737 +0x8EA4DAAC 0x298DE +0x8EA4DAAD 0x4B91 +0x8EA4DAAE 0x4B8E +0x8EA4DAAF 0x298DA +0x8EA4DAB0 0x4BD8 +0x8EA4DAB1 0x4BD6 +0x8EA4DAB2 0x29A4B +0x8EA4DAB3 0x4BDA +0x8EA4DAB4 0x29A49 +0x8EA4DAB5 0x4BD7 +0x8EA4DAB6 0x29AD5 +0x8EA4DAB7 0x9AFF +0x8EA4DAB8 0x4BF9 +0x8EA4DAB9 0x29B52 +0x8EA4DABA 0x29B47 +0x8EA4DABB 0x4BFC +0x8EA4DABC 0x29B48 +0x8EA4DABD 0x29CCC +0x8EA4DABE 0x29CD0 +0x8EA4DABF 0x9BA9 +0x8EA4DAC0 0x4C4A +0x8EA4DAC1 0x9BA7 +0x8EA4DAC2 0x4C4E +0x8EA4DAC3 0x9BB3 +0x8EA4DAC4 0x9BAC +0x8EA4DAC5 0x9BB0 +0x8EA4DAC6 0x29D86 +0x8EA4DAC7 0x29DA7 +0x8EA4DAC8 0x29DA3 +0x8EA4DAC9 0x9B9C +0x8EA4DACA 0x29DB6 +0x8EA4DACB 0x29DAD +0x8EA4DACC 0x2A013 +0x8EA4DACD 0x9D3C +0x8EA4DACE 0x9D1C +0x8EA4DACF 0x9D3A +0x8EA4DAD0 0x4CD3 +0x8EA4DAD1 0x4CCD +0x8EA4DAD2 0x4CD1 +0x8EA4DAD3 0x2A017 +0x8EA4DAD4 0x2A022 +0x8EA4DAD5 0x9D32 +0x8EA4DAD6 0x9D34 +0x8EA4DAD7 0x2A049 +0x8EA4DAD8 0x2A026 +0x8EA4DAD9 0x2FA0C +0x8EA4DADA 0x2A03C +0x8EA4DADB 0x2A028 +0x8EA4DADC 0x2A2A8 +0x8EA4DADD 0x9EC7 +0x8EA4DADE 0x2A3FB +0x8EA4DADF 0x4D62 +0x8EA4DAE0 0x2A432 +0x8EA4DAE1 0x2A4D6 +0x8EA4DAE2 0x2A548 +0x8EA4DAE3 0x4D83 +0x8EA4DAE4 0x9F3F +0x8EA4DAE5 0x2A5C6 +0x8EA4DAE6 0x4D92 +0x8EA4DAE7 0x349F +0x8EA4DAE8 0x34A0 +0x8EA4DAE9 0x20425 +0x8EA4DAEA 0x20426 +0x8EA4DAEB 0x20424 +0x8EA4DAEC 0x20433 +0x8EA4DAED 0x20570 +0x8EA4DAEE 0x3527 +0x8EA4DAEF 0x20B90 +0x8EA4DAF0 0x360B +0x8EA4DAF1 0x21095 +0x8EA4DAF2 0x210A1 +0x8EA4DAF3 0x21092 +0x8EA4DAF4 0x2108F +0x8EA4DAF5 0x2109F +0x8EA4DAF6 0x21096 +0x8EA4DAF7 0x21098 +0x8EA4DAF8 0x2109D +0x8EA4DAF9 0x210A0 +0x8EA4DAFA 0x368D +0x8EA4DAFB 0x21697 +0x8EA4DAFC 0x218EB +0x8EA4DAFD 0x3770 +0x8EA4DAFE 0x21F87 +0x8EA4DBA1 0x5EEB +0x8EA4DBA2 0x22432 +0x8EA4DBA3 0x399A +0x8EA4DBA4 0x399F +0x8EA4DBA5 0x399D +0x8EA4DBA6 0x228D8 +0x8EA4DBA7 0x228FB +0x8EA4DBA8 0x22906 +0x8EA4DBA9 0x399B +0x8EA4DBAA 0x228D1 +0x8EA4DBAB 0x61D5 +0x8EA4DBAC 0x2F8B0 +0x8EA4DBAD 0x3A60 +0x8EA4DBAE 0x3A64 +0x8EA4DBAF 0x3A69 +0x8EA4DBB0 0x3A63 +0x8EA4DBB1 0x3A67 +0x8EA4DBB2 0x3A62 +0x8EA4DBB3 0x22DF6 +0x8EA4DBB4 0x22E04 +0x8EA4DBB5 0x22DFE +0x8EA4DBB6 0x6502 +0x8EA4DBB7 0x22DFF +0x8EA4DBB8 0x22DF7 +0x8EA4DBB9 0x23018 +0x8EA4DBBA 0x3AAC +0x8EA4DBBB 0x23014 +0x8EA4DBBC 0x230CD +0x8EA4DBBD 0x23120 +0x8EA4DBBE 0x232DE +0x8EA4DBBF 0x3B26 +0x8EA4DBC0 0x3B23 +0x8EA4DBC1 0x3B25 +0x8EA4DBC2 0x23745 +0x8EA4DBC3 0x23753 +0x8EA4DBC4 0x3BF8 +0x8EA4DBC5 0x2374B +0x8EA4DBC6 0x23755 +0x8EA4DBC7 0x23741 +0x8EA4DBC8 0x3BF7 +0x8EA4DBC9 0x3BFB +0x8EA4DBCA 0x3BFA +0x8EA4DBCB 0x2375C +0x8EA4DBCC 0x23754 +0x8EA4DBCD 0x23A71 +0x8EA4DBCE 0x23AD0 +0x8EA4DBCF 0x3CB0 +0x8EA4DBD0 0x3CAF +0x8EA4DBD1 0x23C53 +0x8EA4DBD2 0x24029 +0x8EA4DBD3 0x2407E +0x8EA4DBD4 0x3D7E +0x8EA4DBD5 0x24079 +0x8EA4DBD6 0x3D7D +0x8EA4DBD7 0x3D80 +0x8EA4DBD8 0x24070 +0x8EA4DBD9 0x2406A +0x8EA4DBDA 0x3D7F +0x8EA4DBDB 0x3D86 +0x8EA4DBDC 0x24085 +0x8EA4DBDD 0x24064 +0x8EA4DBDE 0x7012 +0x8EA4DBDF 0x24078 +0x8EA4DBE0 0x3D81 +0x8EA4DBE1 0x24432 +0x8EA4DBE2 0x24427 +0x8EA4DBE3 0x2442F +0x8EA4DBE4 0x3E24 +0x8EA4DBE5 0x3E58 +0x8EA4DBE6 0x3E57 +0x8EA4DBE7 0x3EA0 +0x8EA4DBE8 0x248BA +0x8EA4DBE9 0x3EFE +0x8EA4DBEA 0x24A71 +0x8EA4DBEB 0x24A8C +0x8EA4DBEC 0x3F15 +0x8EA4DBED 0x24B1A +0x8EA4DBEE 0x3F47 +0x8EA4DBEF 0x3F46 +0x8EA4DBF0 0x24B98 +0x8EA4DBF1 0x24CE4 +0x8EA4DBF2 0x3F6B +0x8EA4DBF3 0x3F6C +0x8EA4DBF4 0x7585 +0x8EA4DBF5 0x7654 +0x8EA4DBF6 0x24EC2 +0x8EA4DBF7 0x3FCC +0x8EA4DBF8 0x24EBA +0x8EA4DBF9 0x7655 +0x8EA4DBFA 0x24EC8 +0x8EA4DBFB 0x3FCB +0x8EA4DBFC 0x76A7 +0x8EA4DBFD 0x76A8 +0x8EA4DBFE 0x3FF9 +0x8EA4DCA1 0x250B9 +0x8EA4DCA2 0x250B8 +0x8EA4DCA3 0x250A5 +0x8EA4DCA4 0x252E2 +0x8EA4DCA5 0x4078 +0x8EA4DCA6 0x407A +0x8EA4DCA7 0x4075 +0x8EA4DCA8 0x252D9 +0x8EA4DCA9 0x4076 +0x8EA4DCAA 0x4077 +0x8EA4DCAB 0x252AC +0x8EA4DCAC 0x252DD +0x8EA4DCAD 0x40EA +0x8EA4DCAE 0x40EE +0x8EA4DCAF 0x40ED +0x8EA4DCB0 0x2559D +0x8EA4DCB1 0x40EC +0x8EA4DCB2 0x790F +0x8EA4DCB3 0x25711 +0x8EA4DCB4 0x25703 +0x8EA4DCB5 0x4184 +0x8EA4DCB6 0x4185 +0x8EA4DCB7 0x4183 +0x8EA4DCB8 0x258EE +0x8EA4DCB9 0x41BC +0x8EA4DCBA 0x41BD +0x8EA4DCBB 0x41D4 +0x8EA4DCBC 0x25CA4 +0x8EA4DCBD 0x25CD8 +0x8EA4DCBE 0x25CDD +0x8EA4DCBF 0x25CDE +0x8EA4DCC0 0x4255 +0x8EA4DCC1 0x25CE7 +0x8EA4DCC2 0x4250 +0x8EA4DCC3 0x424C +0x8EA4DCC4 0x4248 +0x8EA4DCC5 0x25CD4 +0x8EA4DCC6 0x4253 +0x8EA4DCC7 0x25CCE +0x8EA4DCC8 0x4257 +0x8EA4DCC9 0x4254 +0x8EA4DCCA 0x424E +0x8EA4DCCB 0x424A +0x8EA4DCCC 0x4251 +0x8EA4DCCD 0x25CF1 +0x8EA4DCCE 0x25CD3 +0x8EA4DCCF 0x4249 +0x8EA4DCD0 0x424B +0x8EA4DCD1 0x4263 +0x8EA4DCD2 0x25CCA +0x8EA4DCD3 0x25CE9 +0x8EA4DCD4 0x42A7 +0x8EA4DCD5 0x42A6 +0x8EA4DCD6 0x42A4 +0x8EA4DCD7 0x25F1A +0x8EA4DCD8 0x25F41 +0x8EA4DCD9 0x2F968 +0x8EA4DCDA 0x7CE4 +0x8EA4DCDB 0x7CE5 +0x8EA4DCDC 0x2613D +0x8EA4DCDD 0x26140 +0x8EA4DCDE 0x7E65 +0x8EA4DCDF 0x7E4E +0x8EA4DCE0 0x4317 +0x8EA4DCE1 0x26143 +0x8EA4DCE2 0x4316 +0x8EA4DCE3 0x2613F +0x8EA4DCE4 0x2613C +0x8EA4DCE5 0x4363 +0x8EA4DCE6 0x26321 +0x8EA4DCE7 0x26320 +0x8EA4DCE8 0x7F82 +0x8EA4DCE9 0x263C6 +0x8EA4DCEA 0x437B +0x8EA4DCEB 0x437C +0x8EA4DCEC 0x263D1 +0x8EA4DCED 0x263CA +0x8EA4DCEE 0x2648E +0x8EA4DCEF 0x26491 +0x8EA4DCF0 0x43B0 +0x8EA4DCF1 0x802D +0x8EA4DCF2 0x265E3 +0x8EA4DCF3 0x26888 +0x8EA4DCF4 0x4442 +0x8EA4DCF5 0x26870 +0x8EA4DCF6 0x4444 +0x8EA4DCF7 0x2699D +0x8EA4DCF8 0x26A9D +0x8EA4DCF9 0x26A91 +0x8EA4DCFA 0x26A98 +0x8EA4DCFB 0x26A99 +0x8EA4DCFC 0x4488 +0x8EA4DCFD 0x448F +0x8EA4DCFE 0x4553 +0x8EA4DDA1 0x455B +0x8EA4DDA2 0x26FBF +0x8EA4DDA3 0x4559 +0x8EA4DDA4 0x26FAE +0x8EA4DDA5 0x26FB1 +0x8EA4DDA6 0x26FCC +0x8EA4DDA7 0x27004 +0x8EA4DDA8 0x85CA +0x8EA4DDA9 0x27016 +0x8EA4DDAA 0x26FCD +0x8EA4DDAB 0x4554 +0x8EA4DDAC 0x85BC +0x8EA4DDAD 0x26FE0 +0x8EA4DDAE 0x26FCB +0x8EA4DDAF 0x26FD4 +0x8EA4DDB0 0x26FC9 +0x8EA4DDB1 0x271FF +0x8EA4DDB2 0x4599 +0x8EA4DDB3 0x271FD +0x8EA4DDB4 0x27457 +0x8EA4DDB5 0x27452 +0x8EA4DDB6 0x27450 +0x8EA4DDB7 0x27445 +0x8EA4DDB8 0x2744D +0x8EA4DDB9 0x45F1 +0x8EA4DDBA 0x27453 +0x8EA4DDBB 0x45EF +0x8EA4DDBC 0x27482 +0x8EA4DDBD 0x27444 +0x8EA4DDBE 0x275CE +0x8EA4DDBF 0x275CF +0x8EA4DDC0 0x275D2 +0x8EA4DDC1 0x27602 +0x8EA4DDC2 0x2774F +0x8EA4DDC3 0x27758 +0x8EA4DDC4 0x4662 +0x8EA4DDC5 0x27743 +0x8EA4DDC6 0x4663 +0x8EA4DDC7 0x27752 +0x8EA4DDC8 0x4660 +0x8EA4DDC9 0x4661 +0x8EA4DDCA 0x465F +0x8EA4DDCB 0x27749 +0x8EA4DDCC 0x27753 +0x8EA4DDCD 0x2774D +0x8EA4DDCE 0x468D +0x8EA4DDCF 0x27884 +0x8EA4DDD0 0x468E +0x8EA4DDD1 0x27883 +0x8EA4DDD2 0x27932 +0x8EA4DDD3 0x27AE2 +0x8EA4DDD4 0x4709 +0x8EA4DDD5 0x27AE4 +0x8EA4DDD6 0x27AD3 +0x8EA4DDD7 0x4705 +0x8EA4DDD8 0x27AD5 +0x8EA4DDD9 0x27ADD +0x8EA4DDDA 0x4703 +0x8EA4DDDB 0x4706 +0x8EA4DDDC 0x27AEC +0x8EA4DDDD 0x27AE6 +0x8EA4DDDE 0x27AD2 +0x8EA4DDDF 0x27AFA +0x8EA4DDE0 0x27ADA +0x8EA4DDE1 0x4731 +0x8EA4DDE2 0x27C06 +0x8EA4DDE3 0x27C04 +0x8EA4DDE4 0x474F +0x8EA4DDE5 0x27C7B +0x8EA4DDE6 0x27D04 +0x8EA4DDE7 0x27D02 +0x8EA4DDE8 0x4766 +0x8EA4DDE9 0x8CFF +0x8EA4DDEA 0x47C4 +0x8EA4DDEB 0x27F60 +0x8EA4DDEC 0x47C3 +0x8EA4DDED 0x47C1 +0x8EA4DDEE 0x47C5 +0x8EA4DDEF 0x28107 +0x8EA4DDF0 0x28105 +0x8EA4DDF1 0x2810C +0x8EA4DDF2 0x4821 +0x8EA4DDF3 0x2815A +0x8EA4DDF4 0x481F +0x8EA4DDF5 0x4822 +0x8EA4DDF6 0x2811A +0x8EA4DDF7 0x4827 +0x8EA4DDF8 0x4820 +0x8EA4DDF9 0x2838A +0x8EA4DDFA 0x486D +0x8EA4DDFB 0x486C +0x8EA4DDFC 0x486B +0x8EA4DDFD 0x486F +0x8EA4DDFE 0x4870 +0x8EA4DEA1 0x2838C +0x8EA4DEA2 0x28609 +0x8EA4DEA3 0x288A6 +0x8EA4DEA4 0x91A6 +0x8EA4DEA5 0x288AC +0x8EA4DEA6 0x288A9 +0x8EA4DEA7 0x4942 +0x8EA4DEA8 0x28A8B +0x8EA4DEA9 0x93B6 +0x8EA4DEAA 0x28A8C +0x8EA4DEAB 0x4944 +0x8EA4DEAC 0x4940 +0x8EA4DEAD 0x28A88 +0x8EA4DEAE 0x28A89 +0x8EA4DEAF 0x493F +0x8EA4DEB0 0x28A93 +0x8EA4DEB1 0x93AB +0x8EA4DEB2 0x498B +0x8EA4DEB3 0x28D83 +0x8EA4DEB4 0x28F4F +0x8EA4DEB5 0x4A25 +0x8EA4DEB6 0x4A28 +0x8EA4DEB7 0x29120 +0x8EA4DEB8 0x9721 +0x8EA4DEB9 0x29236 +0x8EA4DEBA 0x292E2 +0x8EA4DEBB 0x4A75 +0x8EA4DEBC 0x4A72 +0x8EA4DEBD 0x292EE +0x8EA4DEBE 0x4A6F +0x8EA4DEBF 0x292E7 +0x8EA4DEC0 0x292E9 +0x8EA4DEC1 0x4A76 +0x8EA4DEC2 0x4A71 +0x8EA4DEC3 0x97A7 +0x8EA4DEC4 0x292DF +0x8EA4DEC5 0x4A97 +0x8EA4DEC6 0x293C7 +0x8EA4DEC7 0x4AD7 +0x8EA4DEC8 0x29509 +0x8EA4DEC9 0x4AD6 +0x8EA4DECA 0x29501 +0x8EA4DECB 0x4AD8 +0x8EA4DECC 0x4ADC +0x8EA4DECD 0x4ADB +0x8EA4DECE 0x4AD4 +0x8EA4DECF 0x983E +0x8EA4DED0 0x4B13 +0x8EA4DED1 0x4B11 +0x8EA4DED2 0x4B14 +0x8EA4DED3 0x29605 +0x8EA4DED4 0x2960C +0x8EA4DED5 0x29778 +0x8EA4DED6 0x2975D +0x8EA4DED7 0x4B51 +0x8EA4DED8 0x4B50 +0x8EA4DED9 0x4B53 +0x8EA4DEDA 0x4B54 +0x8EA4DEDB 0x4B52 +0x8EA4DEDC 0x2975E +0x8EA4DEDD 0x29760 +0x8EA4DEDE 0x29767 +0x8EA4DEDF 0x4B6D +0x8EA4DEE0 0x2FA05 +0x8EA4DEE1 0x298F4 +0x8EA4DEE2 0x4B95 +0x8EA4DEE3 0x4B99 +0x8EA4DEE4 0x298F1 +0x8EA4DEE5 0x4B9A +0x8EA4DEE6 0x298FA +0x8EA4DEE7 0x4B93 +0x8EA4DEE8 0x4B97 +0x8EA4DEE9 0x298F8 +0x8EA4DEEA 0x298F9 +0x8EA4DEEB 0x29909 +0x8EA4DEEC 0x298FD +0x8EA4DEED 0x298F7 +0x8EA4DEEE 0x4BDC +0x8EA4DEEF 0x29A59 +0x8EA4DEF0 0x4BFD +0x8EA4DEF1 0x29B60 +0x8EA4DEF2 0x29B68 +0x8EA4DEF3 0x4BFE +0x8EA4DEF4 0x4C00 +0x8EA4DEF5 0x4C02 +0x8EA4DEF6 0x4C01 +0x8EA4DEF7 0x4C03 +0x8EA4DEF8 0x29B6A +0x8EA4DEF9 0x29C14 +0x8EA4DEFA 0x29C3E +0x8EA4DEFB 0x29CE4 +0x8EA4DEFC 0x4C27 +0x8EA4DEFD 0x4C26 +0x8EA4DEFE 0x4C24 +0x8EA4DFA1 0x4C4C +0x8EA4DFA2 0x9BBC +0x8EA4DFA3 0x4C50 +0x8EA4DFA4 0x4C55 +0x8EA4DFA5 0x4C53 +0x8EA4DFA6 0x9BB7 +0x8EA4DFA7 0x4C52 +0x8EA4DFA8 0x29DD2 +0x8EA4DFA9 0x4C57 +0x8EA4DFAA 0x9BBE +0x8EA4DFAB 0x4C58 +0x8EA4DFAC 0x4CD6 +0x8EA4DFAD 0x2A058 +0x8EA4DFAE 0x2A050 +0x8EA4DFAF 0x4CD4 +0x8EA4DFB0 0x2A05C +0x8EA4DFB1 0x4CDA +0x8EA4DFB2 0x4CD9 +0x8EA4DFB3 0x28119 +0x8EA4DFB4 0x9D62 +0x8EA4DFB5 0x4CD5 +0x8EA4DFB6 0x4CE4 +0x8EA4DFB7 0x2FA0E +0x8EA4DFB8 0x4CDC +0x8EA4DFB9 0x4D1B +0x8EA4DFBA 0x9E8F +0x8EA4DFBB 0x4D37 +0x8EA4DFBC 0x4D36 +0x8EA4DFBD 0x4D4B +0x8EA4DFBE 0x9ECB +0x8EA4DFBF 0x4D66 +0x8EA4DFC0 0x4D76 +0x8EA4DFC1 0x2A4DF +0x8EA4DFC2 0x4D7E +0x8EA4DFC3 0x4D7D +0x8EA4DFC4 0x4D7F +0x8EA4DFC5 0x4D84 +0x8EA4DFC6 0x4D8B +0x8EA4DFC7 0x2A5D9 +0x8EA4DFC8 0x4D94 +0x8EA4DFC9 0x34A1 +0x8EA4DFCA 0x3511 +0x8EA4DFCB 0x20966 +0x8EA4DFCC 0x3610 +0x8EA4DFCD 0x56A9 +0x8EA4DFCE 0x210E1 +0x8EA4DFCF 0x210EF +0x8EA4DFD0 0x210E8 +0x8EA4DFD1 0x21233 +0x8EA4DFD2 0x5913 +0x8EA4DFD3 0x218FE +0x8EA4DFD4 0x3732 +0x8EA4DFD5 0x5BF4 +0x8EA4DFD6 0x21AEF +0x8EA4DFD7 0x21AEC +0x8EA4DFD8 0x21CEC +0x8EA4DFD9 0x21F9C +0x8EA4DFDA 0x3820 +0x8EA4DFDB 0x21F99 +0x8EA4DFDC 0x22170 +0x8EA4DFDD 0x2216E +0x8EA4DFDE 0x389D +0x8EA4DFDF 0x22441 +0x8EA4DFE0 0x61EC +0x8EA4DFE1 0x61EF +0x8EA4DFE2 0x22902 +0x8EA4DFE3 0x22901 +0x8EA4DFE4 0x39A5 +0x8EA4DFE5 0x22A1B +0x8EA4DFE6 0x22E23 +0x8EA4DFE7 0x22E25 +0x8EA4DFE8 0x22E24 +0x8EA4DFE9 0x22E26 +0x8EA4DFEA 0x22E33 +0x8EA4DFEB 0x22E2F +0x8EA4DFEC 0x2308F +0x8EA4DFED 0x23356 +0x8EA4DFEE 0x3C02 +0x8EA4DFEF 0x3BFE +0x8EA4DFF0 0x3C01 +0x8EA4DFF1 0x6AD6 +0x8EA4DFF2 0x3C03 +0x8EA4DFF3 0x3BFF +0x8EA4DFF4 0x23799 +0x8EA4DFF5 0x3C04 +0x8EA4DFF6 0x2F8ED +0x8EA4DFF7 0x3C4A +0x8EA4DFF8 0x23AD9 +0x8EA4DFF9 0x3D87 +0x8EA4DFFA 0x240B7 +0x8EA4DFFB 0x3D84 +0x8EA4DFFC 0x240B6 +0x8EA4DFFD 0x3D85 +0x8EA4DFFE 0x7209 +0x8EA4E0A1 0x24454 +0x8EA4E0A2 0x24457 +0x8EA4E0A3 0x2447A +0x8EA4E0A4 0x3E59 +0x8EA4E0A5 0x7379 +0x8EA4E0A6 0x24A8E +0x8EA4E0A7 0x74C6 +0x8EA4E0A8 0x24A90 +0x8EA4E0A9 0x24AB9 +0x8EA4E0AA 0x3F04 +0x8EA4E0AB 0x3F49 +0x8EA4E0AC 0x3F48 +0x8EA4E0AD 0x24CEF +0x8EA4E0AE 0x3F6D +0x8EA4E0AF 0x3FD2 +0x8EA4E0B0 0x3FD3 +0x8EA4E0B1 0x24EE2 +0x8EA4E0B2 0x3FD1 +0x8EA4E0B3 0x24ED6 +0x8EA4E0B4 0x24ED8 +0x8EA4E0B5 0x24EDA +0x8EA4E0B6 0x24EDE +0x8EA4E0B7 0x3FE7 +0x8EA4E0B8 0x400A +0x8EA4E0B9 0x77C3 +0x8EA4E0BA 0x25308 +0x8EA4E0BB 0x25304 +0x8EA4E0BC 0x2530A +0x8EA4E0BD 0x2530B +0x8EA4E0BE 0x25302 +0x8EA4E0BF 0x40F0 +0x8EA4E0C0 0x255AA +0x8EA4E0C1 0x255C1 +0x8EA4E0C2 0x791F +0x8EA4E0C3 0x258D7 +0x8EA4E0C4 0x258D9 +0x8EA4E0C5 0x7A65 +0x8EA4E0C6 0x258DE +0x8EA4E0C7 0x258DA +0x8EA4E0C8 0x41BE +0x8EA4E0C9 0x41BF +0x8EA4E0CA 0x25A2A +0x8EA4E0CB 0x7AC6 +0x8EA4E0CC 0x7C3A +0x8EA4E0CD 0x25D31 +0x8EA4E0CE 0x7C36 +0x8EA4E0CF 0x25D2B +0x8EA4E0D0 0x25D2C +0x8EA4E0D1 0x25D29 +0x8EA4E0D2 0x25D2E +0x8EA4E0D3 0x425E +0x8EA4E0D4 0x25D27 +0x8EA4E0D5 0x25D28 +0x8EA4E0D6 0x425B +0x8EA4E0D7 0x25D5F +0x8EA4E0D8 0x25D30 +0x8EA4E0D9 0x25D24 +0x8EA4E0DA 0x7CEB +0x8EA4E0DB 0x42AB +0x8EA4E0DC 0x25F3A +0x8EA4E0DD 0x42AC +0x8EA4E0DE 0x25F39 +0x8EA4E0DF 0x25F40 +0x8EA4E0E0 0x26180 +0x8EA4E0E1 0x26184 +0x8EA4E0E2 0x431F +0x8EA4E0E3 0x431D +0x8EA4E0E4 0x26175 +0x8EA4E0E5 0x26176 +0x8EA4E0E6 0x431C +0x8EA4E0E7 0x2617C +0x8EA4E0E8 0x431E +0x8EA4E0E9 0x26178 +0x8EA4E0EA 0x2619B +0x8EA4E0EB 0x2617E +0x8EA4E0EC 0x2625A +0x8EA4E0ED 0x4364 +0x8EA4E0EE 0x2632C +0x8EA4E0EF 0x7F84 +0x8EA4E0F0 0x2649C +0x8EA4E0F1 0x26847 +0x8EA4E0F2 0x2688A +0x8EA4E0F3 0x4448 +0x8EA4E0F4 0x4447 +0x8EA4E0F5 0x26927 +0x8EA4E0F6 0x2704A +0x8EA4E0F7 0x455E +0x8EA4E0F8 0x4561 +0x8EA4E0F9 0x27027 +0x8EA4E0FA 0x85E0 +0x8EA4E0FB 0x85F3 +0x8EA4E0FC 0x2702E +0x8EA4E0FD 0x27026 +0x8EA4E0FE 0x27208 +0x8EA4E1A1 0x45F7 +0x8EA4E1A2 0x274BD +0x8EA4E1A3 0x27496 +0x8EA4E1A4 0x45F4 +0x8EA4E1A5 0x45F8 +0x8EA4E1A6 0x881E +0x8EA4E1A7 0x274BE +0x8EA4E1A8 0x2748E +0x8EA4E1A9 0x27774 +0x8EA4E1AA 0x4664 +0x8EA4E1AB 0x27780 +0x8EA4E1AC 0x4692 +0x8EA4E1AD 0x468F +0x8EA4E1AE 0x4690 +0x8EA4E1AF 0x89B4 +0x8EA4E1B0 0x4693 +0x8EA4E1B1 0x46A8 +0x8EA4E1B2 0x2793C +0x8EA4E1B3 0x2793D +0x8EA4E1B4 0x46A9 +0x8EA4E1B5 0x2793A +0x8EA4E1B6 0x27942 +0x8EA4E1B7 0x89F9 +0x8EA4E1B8 0x27B24 +0x8EA4E1B9 0x27B06 +0x8EA4E1BA 0x8B44 +0x8EA4E1BB 0x470E +0x8EA4E1BC 0x27B15 +0x8EA4E1BD 0x470F +0x8EA4E1BE 0x27B02 +0x8EA4E1BF 0x27B0C +0x8EA4E1C0 0x470B +0x8EA4E1C1 0x27B08 +0x8EA4E1C2 0x27B0A +0x8EA4E1C3 0x27B05 +0x8EA4E1C4 0x27B1C +0x8EA4E1C5 0x4710 +0x8EA4E1C6 0x4751 +0x8EA4E1C7 0x27C82 +0x8EA4E1C8 0x4750 +0x8EA4E1C9 0x27C86 +0x8EA4E1CA 0x4763 +0x8EA4E1CB 0x27E03 +0x8EA4E1CC 0x27F7B +0x8EA4E1CD 0x47C7 +0x8EA4E1CE 0x27F7A +0x8EA4E1CF 0x8E71 +0x8EA4E1D0 0x4824 +0x8EA4E1D1 0x4826 +0x8EA4E1D2 0x8E6E +0x8EA4E1D3 0x28180 +0x8EA4E1D4 0x8E79 +0x8EA4E1D5 0x28158 +0x8EA4E1D6 0x8EC4 +0x8EA4E1D7 0x4874 +0x8EA4E1D8 0x4873 +0x8EA4E1D9 0x4872 +0x8EA4E1DA 0x283AA +0x8EA4E1DB 0x283AB +0x8EA4E1DC 0x28436 +0x8EA4E1DD 0x2844A +0x8EA4E1DE 0x48B1 +0x8EA4E1DF 0x908C +0x8EA4E1E0 0x287D6 +0x8EA4E1E1 0x490E +0x8EA4E1E2 0x4911 +0x8EA4E1E3 0x4910 +0x8EA4E1E4 0x490F +0x8EA4E1E5 0x4912 +0x8EA4E1E6 0x4949 +0x8EA4E1E7 0x93C9 +0x8EA4E1E8 0x494F +0x8EA4E1E9 0x494D +0x8EA4E1EA 0x28B03 +0x8EA4E1EB 0x28ACF +0x8EA4E1EC 0x4955 +0x8EA4E1ED 0x28D9F +0x8EA4E1EE 0x28DA2 +0x8EA4E1EF 0x2902A +0x8EA4E1F0 0x2902F +0x8EA4E1F1 0x29144 +0x8EA4E1F2 0x29140 +0x8EA4E1F3 0x4A2C +0x8EA4E1F4 0x4A2B +0x8EA4E1F5 0x29311 +0x8EA4E1F6 0x2930F +0x8EA4E1F7 0x4A79 +0x8EA4E1F8 0x2930D +0x8EA4E1F9 0x29307 +0x8EA4E1FA 0x29303 +0x8EA4E1FB 0x4A7A +0x8EA4E1FC 0x97B0 +0x8EA4E1FD 0x4A99 +0x8EA4E1FE 0x4A9A +0x8EA4E2A1 0x29435 +0x8EA4E2A2 0x4AAE +0x8EA4E2A3 0x4AAF +0x8EA4E2A4 0x29504 +0x8EA4E2A5 0x4AE4 +0x8EA4E2A6 0x4AE1 +0x8EA4E2A7 0x4ADE +0x8EA4E2A8 0x4AE6 +0x8EA4E2A9 0x4ADF +0x8EA4E2AA 0x29526 +0x8EA4E2AB 0x4AE7 +0x8EA4E2AC 0x4AE2 +0x8EA4E2AD 0x4AE0 +0x8EA4E2AE 0x2951E +0x8EA4E2AF 0x4AE5 +0x8EA4E2B0 0x985A +0x8EA4E2B1 0x2960E +0x8EA4E2B2 0x4B18 +0x8EA4E2B3 0x2961D +0x8EA4E2B4 0x2961E +0x8EA4E2B5 0x2961F +0x8EA4E2B6 0x4B56 +0x8EA4E2B7 0x29788 +0x8EA4E2B8 0x9946 +0x8EA4E2B9 0x2978D +0x8EA4E2BA 0x29791 +0x8EA4E2BB 0x29780 +0x8EA4E2BC 0x4B6E +0x8EA4E2BD 0x29854 +0x8EA4E2BE 0x29855 +0x8EA4E2BF 0x4B9D +0x8EA4E2C0 0x4BA0 +0x8EA4E2C1 0x4B9C +0x8EA4E2C2 0x29925 +0x8EA4E2C3 0x2991A +0x8EA4E2C4 0x4BA1 +0x8EA4E2C5 0x4BA2 +0x8EA4E2C6 0x4B9F +0x8EA4E2C7 0x4BDF +0x8EA4E2C8 0x4BDE +0x8EA4E2C9 0x9AC3 +0x8EA4E2CA 0x4BEA +0x8EA4E2CB 0x29B88 +0x8EA4E2CC 0x4C06 +0x8EA4E2CD 0x29B7A +0x8EA4E2CE 0x4C04 +0x8EA4E2CF 0x9B0F +0x8EA4E2D0 0x29B80 +0x8EA4E2D1 0x29D1E +0x8EA4E2D2 0x29DFC +0x8EA4E2D3 0x29E25 +0x8EA4E2D4 0x4C5F +0x8EA4E2D5 0x9BF4 +0x8EA4E2D6 0x9BFA +0x8EA4E2D7 0x4C5C +0x8EA4E2D8 0x29E0B +0x8EA4E2D9 0x4C5E +0x8EA4E2DA 0x29E06 +0x8EA4E2DB 0x29E04 +0x8EA4E2DC 0x9BDD +0x8EA4E2DD 0x4C59 +0x8EA4E2DE 0x29DF9 +0x8EA4E2DF 0x29E00 +0x8EA4E2E0 0x4C64 +0x8EA4E2E1 0x4C5D +0x8EA4E2E2 0x4C62 +0x8EA4E2E3 0x29E02 +0x8EA4E2E4 0x4C65 +0x8EA4E2E5 0x29E07 +0x8EA4E2E6 0x9BED +0x8EA4E2E7 0x4C5B +0x8EA4E2E8 0x9BEF +0x8EA4E2E9 0x2A0B5 +0x8EA4E2EA 0x4CDD +0x8EA4E2EB 0x2A087 +0x8EA4E2EC 0x4CDF +0x8EA4E2ED 0x2A093 +0x8EA4E2EE 0x2FA0F +0x8EA4E2EF 0x4CE2 +0x8EA4E2F0 0x2A0BE +0x8EA4E2F1 0x2A266 +0x8EA4E2F2 0x4D27 +0x8EA4E2F3 0x2A2C7 +0x8EA4E2F4 0x2A2CF +0x8EA4E2F5 0x9E96 +0x8EA4E2F6 0x4D3A +0x8EA4E2F7 0x4D3C +0x8EA4E2F8 0x2A33D +0x8EA4E2F9 0x4D39 +0x8EA4E2FA 0x2A33C +0x8EA4E2FB 0x2A347 +0x8EA4E2FC 0x4D3D +0x8EA4E2FD 0x4D3B +0x8EA4E2FE 0x9EB3 +0x8EA4E3A1 0x4D4C +0x8EA4E3A2 0x2A3C3 +0x8EA4E3A3 0x4D68 +0x8EA4E3A4 0x9EE2 +0x8EA4E3A5 0x2A51B +0x8EA4E3A6 0x4D80 +0x8EA4E3A7 0x4D85 +0x8EA4E3A8 0x2A5C9 +0x8EA4E3A9 0x4D95 +0x8EA4E3AA 0x2A5DD +0x8EA4E3AB 0x4D96 +0x8EA4E3AC 0x2A693 +0x8EA4E3AD 0x9F8F +0x8EA4E3AE 0x2043D +0x8EA4E3AF 0x34A4 +0x8EA4E3B0 0x3512 +0x8EA4E3B1 0x56B1 +0x8EA4E3B2 0x3625 +0x8EA4E3B3 0x214E6 +0x8EA4E3B4 0x5B41 +0x8EA4E3B5 0x3737 +0x8EA4E3B6 0x21AF7 +0x8EA4E3B7 0x21FB0 +0x8EA4E3B8 0x21FAE +0x8EA4E3BA 0x3868 +0x8EA4E3BB 0x3867 +0x8EA4E3BC 0x389E +0x8EA4E3BD 0x2259F +0x8EA4E3BE 0x2259E +0x8EA4E3BF 0x22930 +0x8EA4E3C0 0x39AA +0x8EA4E3C1 0x2294F +0x8EA4E3C2 0x39A9 +0x8EA4E3C3 0x39A4 +0x8EA4E3C4 0x22927 +0x8EA4E3C5 0x22951 +0x8EA4E3C6 0x3A71 +0x8EA4E3C7 0x3A6F +0x8EA4E3C8 0x22E51 +0x8EA4E3C9 0x22E54 +0x8EA4E3CA 0x22E56 +0x8EA4E3CB 0x23027 +0x8EA4E3CC 0x3AAD +0x8EA4E3CD 0x23024 +0x8EA4E3CE 0x6AF6 +0x8EA4E3CF 0x3C0C +0x8EA4E3D0 0x6AF2 +0x8EA4E3D1 0x3C0B +0x8EA4E3D2 0x237EC +0x8EA4E3D3 0x237C4 +0x8EA4E3D4 0x3C0F +0x8EA4E3D5 0x3C79 +0x8EA4E3D6 0x240F8 +0x8EA4E3D7 0x240F6 +0x8EA4E3D8 0x240F7 +0x8EA4E3D9 0x240ED +0x8EA4E3DA 0x3D8D +0x8EA4E3DB 0x3D8F +0x8EA4E3DC 0x240F4 +0x8EA4E3DD 0x240EF +0x8EA4E3DE 0x3D8E +0x8EA4E3DF 0x3E0C +0x8EA4E3E0 0x2447F +0x8EA4E3E1 0x244A2 +0x8EA4E3E2 0x2447E +0x8EA4E3E3 0x3EA6 +0x8EA4E3E4 0x248C5 +0x8EA4E3E5 0x3EA3 +0x8EA4E3E6 0x3EA4 +0x8EA4E3E7 0x3EA5 +0x8EA4E3E8 0x7588 +0x8EA4E3E9 0x3F6E +0x8EA4E3EA 0x24EF1 +0x8EA4E3EB 0x24EF2 +0x8EA4E3EC 0x3FFA +0x8EA4E3ED 0x2502F +0x8EA4E3EE 0x407C +0x8EA4E3EF 0x407E +0x8EA4E3F0 0x407B +0x8EA4E3F1 0x407D +0x8EA4E3F2 0x25323 +0x8EA4E3F3 0x25329 +0x8EA4E3F4 0x408D +0x8EA4E3F5 0x40F4 +0x8EA4E3F6 0x40F3 +0x8EA4E3F7 0x2571B +0x8EA4E3F8 0x258EB +0x8EA4E3F9 0x4189 +0x8EA4E3FA 0x258EA +0x8EA4E3FB 0x25A33 +0x8EA4E3FC 0x41C0 +0x8EA4E3FD 0x25D63 +0x8EA4E3FE 0x4265 +0x8EA4E4A1 0x25D92 +0x8EA4E4A2 0x25D65 +0x8EA4E4A3 0x42AD +0x8EA4E4A4 0x4325 +0x8EA4E4A5 0x261A0 +0x8EA4E4A6 0x2F970 +0x8EA4E4A7 0x2625E +0x8EA4E4A8 0x43C9 +0x8EA4E4A9 0x268AA +0x8EA4E4AA 0x444A +0x8EA4E4AB 0x268A9 +0x8EA4E4AC 0x8267 +0x8EA4E4AD 0x4489 +0x8EA4E4AE 0x2709C +0x8EA4E4AF 0x4566 +0x8EA4E4B0 0x4570 +0x8EA4E4B1 0x27092 +0x8EA4E4B2 0x456D +0x8EA4E4B3 0x4569 +0x8EA4E4B4 0x4567 +0x8EA4E4B5 0x27086 +0x8EA4E4B6 0x4572 +0x8EA4E4B7 0x860E +0x8EA4E4B8 0x456E +0x8EA4E4B9 0x27083 +0x8EA4E4BA 0x459C +0x8EA4E4BB 0x45FC +0x8EA4E4BC 0x45FD +0x8EA4E4BD 0x4604 +0x8EA4E4BE 0x45FF +0x8EA4E4BF 0x2F9C2 +0x8EA4E4C0 0x45FE +0x8EA4E4C1 0x4600 +0x8EA4E4C2 0x274CE +0x8EA4E4C3 0x4666 +0x8EA4E4C4 0x4669 +0x8EA4E4C5 0x27793 +0x8EA4E4C6 0x46AA +0x8EA4E4C7 0x46AB +0x8EA4E4C8 0x4717 +0x8EA4E4C9 0x27B2E +0x8EA4E4CA 0x27B27 +0x8EA4E4CB 0x27B28 +0x8EA4E4CC 0x4715 +0x8EA4E4CD 0x8B5E +0x8EA4E4CE 0x4712 +0x8EA4E4CF 0x8D0E +0x8EA4E4D0 0x27E18 +0x8EA4E4D1 0x27E16 +0x8EA4E4D2 0x27F8D +0x8EA4E4D3 0x47CA +0x8EA4E4D4 0x27F8E +0x8EA4E4D5 0x47C9 +0x8EA4E4D6 0x47CB +0x8EA4E4D7 0x27F90 +0x8EA4E4D8 0x27F8F +0x8EA4E4D9 0x28181 +0x8EA4E4DA 0x4829 +0x8EA4E4DB 0x4828 +0x8EA4E4DC 0x2818A +0x8EA4E4DD 0x2818C +0x8EA4E4DE 0x2828D +0x8EA4E4DF 0x4840 +0x8EA4E4E0 0x4875 +0x8EA4E4E1 0x4876 +0x8EA4E4E2 0x283B2 +0x8EA4E4E3 0x4888 +0x8EA4E4E4 0x287D9 +0x8EA4E4E5 0x91B6 +0x8EA4E4E6 0x4957 +0x8EA4E4E7 0x9401 +0x8EA4E4E8 0x28B0D +0x8EA4E4E9 0x495F +0x8EA4E4EA 0x28B13 +0x8EA4E4EB 0x941D +0x8EA4E4EC 0x4958 +0x8EA4E4ED 0x495B +0x8EA4E4EE 0x28B1B +0x8EA4E4EF 0x942F +0x8EA4E4F0 0x28DAC +0x8EA4E4F1 0x49B3 +0x8EA4E4F2 0x28DB3 +0x8EA4E4F3 0x49EF +0x8EA4E4F4 0x2915E +0x8EA4E4F5 0x4A30 +0x8EA4E4F6 0x29160 +0x8EA4E4F7 0x29168 +0x8EA4E4F8 0x29163 +0x8EA4E4F9 0x29169 +0x8EA4E4FA 0x29167 +0x8EA4E4FB 0x4A41 +0x8EA4E4FC 0x4A4B +0x8EA4E4FD 0x29328 +0x8EA4E4FE 0x4A7D +0x8EA4E5A1 0x2932E +0x8EA4E5A2 0x29330 +0x8EA4E5A3 0x4A7C +0x8EA4E5A4 0x29326 +0x8EA4E5A5 0x29331 +0x8EA4E5A6 0x29341 +0x8EA4E5A7 0x97E0 +0x8EA4E5A8 0x293DA +0x8EA4E5A9 0x97DB +0x8EA4E5AA 0x2F9FA +0x8EA4E5AB 0x2940B +0x8EA4E5AC 0x9861 +0x8EA4E5AD 0x29534 +0x8EA4E5AE 0x29533 +0x8EA4E5AF 0x4AE8 +0x8EA4E5B0 0x4AEA +0x8EA4E5B1 0x4AE9 +0x8EA4E5B2 0x29539 +0x8EA4E5B3 0x2953B +0x8EA4E5B4 0x29540 +0x8EA4E5B5 0x29630 +0x8EA4E5B6 0x4B1B +0x8EA4E5B7 0x29632 +0x8EA4E5B8 0x29637 +0x8EA4E5B9 0x4B55 +0x8EA4E5BA 0x994A +0x8EA4E5BB 0x4B59 +0x8EA4E5BC 0x4B58 +0x8EA4E5BD 0x29781 +0x8EA4E5BE 0x2979F +0x8EA4E5BF 0x297A7 +0x8EA4E5C0 0x4BA4 +0x8EA4E5C1 0x4BA3 +0x8EA4E5C2 0x29944 +0x8EA4E5C3 0x29947 +0x8EA4E5C4 0x29948 +0x8EA4E5C5 0x2993D +0x8EA4E5C6 0x9A33 +0x8EA4E5C7 0x4BA7 +0x8EA4E5C8 0x29949 +0x8EA4E5C9 0x4BE0 +0x8EA4E5CA 0x29A80 +0x8EA4E5CB 0x29BA0 +0x8EA4E5CC 0x29B9D +0x8EA4E5CD 0x4C08 +0x8EA4E5CE 0x4C0A +0x8EA4E5CF 0x4C09 +0x8EA4E5D0 0x29B9C +0x8EA4E5D1 0x29C47 +0x8EA4E5D2 0x29D07 +0x8EA4E5D3 0x4C71 +0x8EA4E5D4 0x9C0F +0x8EA4E5D5 0x4C6C +0x8EA4E5D6 0x29E49 +0x8EA4E5D7 0x9C11 +0x8EA4E5D8 0x29E44 +0x8EA4E5D9 0x9C03 +0x8EA4E5DA 0x9C01 +0x8EA4E5DB 0x4C6E +0x8EA4E5DC 0x29EDF +0x8EA4E5DD 0x9C16 +0x8EA4E5DE 0x29E4C +0x8EA4E5E0 0x29E4F +0x8EA4E5E1 0x4CE0 +0x8EA4E5E2 0x4CEE +0x8EA4E5E3 0x2A0C1 +0x8EA4E5E4 0x4CEB +0x8EA4E5E5 0x2A0B9 +0x8EA4E5E6 0x2A0CB +0x8EA4E5E7 0x2A0CF +0x8EA4E5E8 0x2A0C4 +0x8EA4E5E9 0x9D93 +0x8EA4E5EA 0x4CEA +0x8EA4E5EB 0x4CEF +0x8EA4E5EC 0x4CE7 +0x8EA4E5ED 0x2A0CA +0x8EA4E5EE 0x2A0C3 +0x8EA4E5EF 0x2A2D0 +0x8EA4E5F0 0x2A351 +0x8EA4E5F1 0x4D48 +0x8EA4E5F2 0x4D49 +0x8EA4E5F3 0x2A3A8 +0x8EA4E5F4 0x2A3C7 +0x8EA4E5F5 0x2A3C6 +0x8EA4E5F6 0x4D4D +0x8EA4E5F7 0x2A3CA +0x8EA4E5F8 0x2A402 +0x8EA4E5F9 0x4D55 +0x8EA4E5FA 0x2A45D +0x8EA4E5FB 0x2A45A +0x8EA4E5FC 0x4D6A +0x8EA4E5FD 0x4D6C +0x8EA4E5FE 0x2A459 +0x8EA4E6A1 0x4D6B +0x8EA4E6A2 0x2A4CC +0x8EA4E6A3 0x2A51C +0x8EA4E6A4 0x2A5CC +0x8EA4E6A5 0x4D98 +0x8EA4E6A6 0x4D99 +0x8EA4E6A7 0x4D97 +0x8EA4E6A8 0x2A5E8 +0x8EA4E6A9 0x2A5EC +0x8EA4E6AA 0x2A5EA +0x8EA4E6AB 0x2A6AD +0x8EA4E6AC 0x2A6B0 +0x8EA4E6AD 0x2045F +0x8EA4E6AE 0x20458 +0x8EA4E6AF 0x20457 +0x8EA4E6B0 0x535B +0x8EA4E6B1 0x20B93 +0x8EA4E6B2 0x3616 +0x8EA4E6B3 0x2113B +0x8EA4E6B4 0x56BF +0x8EA4E6B5 0x21134 +0x8EA4E6B6 0x214F2 +0x8EA4E6B7 0x3739 +0x8EA4E6B8 0x21AFD +0x8EA4E6B9 0x21C1D +0x8EA4E6BA 0x3825 +0x8EA4E6BB 0x5DCE +0x8EA4E6BC 0x22304 +0x8EA4E6BD 0x22448 +0x8EA4E6BE 0x22958 +0x8EA4E6BF 0x22E4F +0x8EA4E6C0 0x3A74 +0x8EA4E6C1 0x22E6E +0x8EA4E6C2 0x22E72 +0x8EA4E6C3 0x3AAE +0x8EA4E6C4 0x2302E +0x8EA4E6C5 0x237FC +0x8EA4E6C6 0x237F4 +0x8EA4E6C7 0x23C36 +0x8EA4E6C8 0x2410E +0x8EA4E6C9 0x3D92 +0x8EA4E6CA 0x3D94 +0x8EA4E6CB 0x24114 +0x8EA4E6CC 0x3D95 +0x8EA4E6CD 0x24119 +0x8EA4E6CE 0x3E0D +0x8EA4E6CF 0x244A6 +0x8EA4E6D0 0x3E25 +0x8EA4E6D1 0x24AC9 +0x8EA4E6D2 0x24AC0 +0x8EA4E6D3 0x24ACC +0x8EA4E6D4 0x24B1B +0x8EA4E6D5 0x24BAA +0x8EA4E6D6 0x24BA8 +0x8EA4E6D7 0x24F03 +0x8EA4E6D8 0x3FD5 +0x8EA4E6D9 0x3FD6 +0x8EA4E6DA 0x76AC +0x8EA4E6DB 0x3FE8 +0x8EA4E6DC 0x25035 +0x8EA4E6DD 0x407F +0x8EA4E6DE 0x77D2 +0x8EA4E6DF 0x40F5 +0x8EA4E6E0 0x40F6 +0x8EA4E6E1 0x40F7 +0x8EA4E6E2 0x255D9 +0x8EA4E6E3 0x4124 +0x8EA4E6E4 0x418D +0x8EA4E6E5 0x418A +0x8EA4E6E6 0x25A3F +0x8EA4E6E7 0x25A3D +0x8EA4E6E8 0x426C +0x8EA4E6E9 0x4266 +0x8EA4E6EA 0x426A +0x8EA4E6EB 0x25D8B +0x8EA4E6EC 0x4267 +0x8EA4E6ED 0x426D +0x8EA4E6EE 0x4268 +0x8EA4E6EF 0x7C52 +0x8EA4E6F0 0x25D68 +0x8EA4E6F1 0x25D8A +0x8EA4E6F2 0x25F58 +0x8EA4E6F3 0x25F57 +0x8EA4E6F4 0x261CE +0x8EA4E6F5 0x261BC +0x8EA4E6F6 0x261C0 +0x8EA4E6F7 0x261C1 +0x8EA4E6F8 0x261BF +0x8EA4E6F9 0x261AB +0x8EA4E6FA 0x2625F +0x8EA4E6FB 0x4365 +0x8EA4E6FC 0x264A6 +0x8EA4E6FD 0x439A +0x8EA4E6FE 0x26529 +0x8EA4E7A1 0x43B1 +0x8EA4E7A2 0x444B +0x8EA4E7A3 0x444D +0x8EA4E7A4 0x444C +0x8EA4E7A5 0x444E +0x8EA4E7A6 0x268B8 +0x8EA4E7A7 0x4573 +0x8EA4E7A8 0x4575 +0x8EA4E7A9 0x270DD +0x8EA4E7AA 0x270D6 +0x8EA4E7AB 0x2F9B1 +0x8EA4E7AC 0x270D5 +0x8EA4E7AD 0x270E7 +0x8EA4E7AE 0x270D8 +0x8EA4E7AF 0x274EC +0x8EA4E7B0 0x4603 +0x8EA4E7B1 0x27500 +0x8EA4E7B2 0x27507 +0x8EA4E7B3 0x274FD +0x8EA4E7B4 0x274F1 +0x8EA4E7B5 0x274FF +0x8EA4E7B6 0x277AA +0x8EA4E7B7 0x277B0 +0x8EA4E7B8 0x27B48 +0x8EA4E7B9 0x471E +0x8EA4E7BA 0x27B53 +0x8EA4E7BB 0x8B73 +0x8EA4E7BC 0x27B4D +0x8EA4E7BD 0x4719 +0x8EA4E7BE 0x471C +0x8EA4E7BF 0x471A +0x8EA4E7C0 0x471D +0x8EA4E7C1 0x8B76 +0x8EA4E7C2 0x27B43 +0x8EA4E7C3 0x27B50 +0x8EA4E7C4 0x4743 +0x8EA4E7C5 0x4752 +0x8EA4E7C6 0x27C8C +0x8EA4E7C7 0x27E27 +0x8EA4E7C8 0x4795 +0x8EA4E7C9 0x27F99 +0x8EA4E7CA 0x47CC +0x8EA4E7CB 0x281B1 +0x8EA4E7CC 0x482B +0x8EA4E7CD 0x281B0 +0x8EA4E7CE 0x281AA +0x8EA4E7CF 0x281AC +0x8EA4E7D0 0x482A +0x8EA4E7D1 0x8EC7 +0x8EA4E7D2 0x4877 +0x8EA4E7D3 0x283C8 +0x8EA4E7D4 0x283CA +0x8EA4E7D5 0x28642 +0x8EA4E7D6 0x287E0 +0x8EA4E7D7 0x288E7 +0x8EA4E7D8 0x288E8 +0x8EA4E7D9 0x288E6 +0x8EA4E7DA 0x4913 +0x8EA4E7DB 0x4914 +0x8EA4E7DC 0x9434 +0x8EA4E7DD 0x28B5B +0x8EA4E7DE 0x28B56 +0x8EA4E7DF 0x495D +0x8EA4E7E0 0x28B5A +0x8EA4E7E1 0x4960 +0x8EA4E7E2 0x943E +0x8EA4E7E3 0x4962 +0x8EA4E7E4 0x28CB8 +0x8EA4E7E5 0x28DC5 +0x8EA4E7E6 0x49B2 +0x8EA4E7E7 0x49F0 +0x8EA4E7E8 0x29048 +0x8EA4E7E9 0x2917D +0x8EA4E7EA 0x2917C +0x8EA4E7EB 0x29181 +0x8EA4E7EC 0x29182 +0x8EA4E7ED 0x29162 +0x8EA4E7EE 0x4A4C +0x8EA4E7EF 0x29345 +0x8EA4E7F0 0x4A82 +0x8EA4E7F1 0x97BC +0x8EA4E7F2 0x4A81 +0x8EA4E7F3 0x4A9B +0x8EA4E7F4 0x293E3 +0x8EA4E7F5 0x4AA4 +0x8EA4E7F6 0x4AEE +0x8EA4E7F7 0x4AEC +0x8EA4E7F8 0x29550 +0x8EA4E7F9 0x4AED +0x8EA4E7FA 0x2954F +0x8EA4E7FB 0x4AF0 +0x8EA4E7FC 0x4AEF +0x8EA4E7FD 0x29639 +0x8EA4E7FE 0x4B1D +0x8EA4E8A1 0x2963A +0x8EA4E8A2 0x4B60 +0x8EA4E8A3 0x4B5E +0x8EA4E8A4 0x4B5D +0x8EA4E8A5 0x297C1 +0x8EA4E8A6 0x2994E +0x8EA4E8A7 0x2996E +0x8EA4E8A8 0x4BB1 +0x8EA4E8A9 0x4BAB +0x8EA4E8AA 0x4BAC +0x8EA4E8AB 0x4BAD +0x8EA4E8AC 0x29971 +0x8EA4E8AD 0x4BAE +0x8EA4E8AE 0x29A8C +0x8EA4E8AF 0x29A89 +0x8EA4E8B0 0x4BE2 +0x8EA4E8B1 0x29AE5 +0x8EA4E8B2 0x29BB3 +0x8EA4E8B3 0x29BB6 +0x8EA4E8B4 0x29BB4 +0x8EA4E8B5 0x29C4D +0x8EA4E8B6 0x9B39 +0x8EA4E8B7 0x29D13 +0x8EA4E8B8 0x29E78 +0x8EA4E8B9 0x9C2A +0x8EA4E8BA 0x4C7B +0x8EA4E8BB 0x9C26 +0x8EA4E8BC 0x4C78 +0x8EA4E8BD 0x4C75 +0x8EA4E8BE 0x9C27 +0x8EA4E8BF 0x29E72 +0x8EA4E8C0 0x4CF2 +0x8EA4E8C1 0x4CF4 +0x8EA4E8C2 0x4CF3 +0x8EA4E8C3 0x9DC0 +0x8EA4E8C4 0x9DC9 +0x8EA4E8C5 0x2A275 +0x8EA4E8C6 0x2A2DA +0x8EA4E8C7 0x2A2D7 +0x8EA4E8C8 0x4D3F +0x8EA4E8C9 0x4D3E +0x8EA4E8CA 0x4D40 +0x8EA4E8CB 0x4D4E +0x8EA4E8CC 0x4D57 +0x8EA4E8CD 0x4D59 +0x8EA4E8CE 0x4D58 +0x8EA4E8CF 0x2FA16 +0x8EA4E8D0 0x2A469 +0x8EA4E8D1 0x2A467 +0x8EA4E8D2 0x4D6E +0x8EA4E8D3 0x2A466 +0x8EA4E8D4 0x2A46F +0x8EA4E8D5 0x2A471 +0x8EA4E8D6 0x9EEC +0x8EA4E8D7 0x2A4CF +0x8EA4E8D8 0x2A523 +0x8EA4E8D9 0x4D81 +0x8EA4E8DA 0x4D86 +0x8EA4E8DB 0x2A5A5 +0x8EA4E8DC 0x4D8F +0x8EA4E8DD 0x2A5FE +0x8EA4E8DE 0x2A5FB +0x8EA4E8DF 0x2A5FD +0x8EA4E8E0 0x9F68 +0x8EA4E8E1 0x4D9B +0x8EA4E8E2 0x4DB1 +0x8EA4E8E3 0x4DB3 +0x8EA4E8E4 0x2116D +0x8EA4E8E5 0x373A +0x8EA4E8E6 0x21B05 +0x8EA4E8E7 0x21C20 +0x8EA4E8E8 0x3827 +0x8EA4E8E9 0x21FC8 +0x8EA4E8EA 0x21FC9 +0x8EA4E8EB 0x386A +0x8EA4E8EC 0x39AC +0x8EA4E8ED 0x23127 +0x8EA4E8EE 0x3C18 +0x8EA4E8EF 0x2381E +0x8EA4E8F0 0x23936 +0x8EA4E8F1 0x3C4C +0x8EA4E8F2 0x2413D +0x8EA4E8F3 0x3D96 +0x8EA4E8F4 0x248D7 +0x8EA4E8F5 0x3F4A +0x8EA4E8F6 0x24BAD +0x8EA4E8F7 0x24D00 +0x8EA4E8F8 0x4081 +0x8EA4E8F9 0x2533A +0x8EA4E8FA 0x4083 +0x8EA4E8FB 0x40F9 +0x8EA4E8FC 0x40F8 +0x8EA4E8FD 0x25726 +0x8EA4E8FE 0x418E +0x8EA4E9A1 0x418F +0x8EA4E9A2 0x41C1 +0x8EA4E9A3 0x25DB7 +0x8EA4E9A4 0x25DB6 +0x8EA4E9A5 0x25DC0 +0x8EA4E9A6 0x4270 +0x8EA4E9A7 0x25D9B +0x8EA4E9A8 0x4271 +0x8EA4E9A9 0x261D8 +0x8EA4E9AA 0x432A +0x8EA4E9AB 0x432D +0x8EA4E9AC 0x437D +0x8EA4E9AD 0x8032 +0x8EA4E9AE 0x8031 +0x8EA4E9AF 0x268C0 +0x8EA4E9B0 0x444F +0x8EA4E9B1 0x268BF +0x8EA4E9B2 0x26ABF +0x8EA4E9B3 0x4490 +0x8EA4E9B4 0x27120 +0x8EA4E9B5 0x270D0 +0x8EA4E9B6 0x2710E +0x8EA4E9B7 0x4579 +0x8EA4E9B8 0x2711D +0x8EA4E9B9 0x2711E +0x8EA4E9BA 0x27115 +0x8EA4E9BB 0x27114 +0x8EA4E9BC 0x2751E +0x8EA4E9BD 0x2752C +0x8EA4E9BE 0x4605 +0x8EA4E9BF 0x277B9 +0x8EA4E9C0 0x277B8 +0x8EA4E9C1 0x277B6 +0x8EA4E9C2 0x2789E +0x8EA4E9C3 0x2789C +0x8EA4E9C4 0x2794D +0x8EA4E9C5 0x89FD +0x8EA4E9C6 0x27B6E +0x8EA4E9C7 0x27B60 +0x8EA4E9C8 0x4721 +0x8EA4E9C9 0x27B64 +0x8EA4E9CA 0x27B62 +0x8EA4E9CB 0x261E5 +0x8EA4E9CC 0x4732 +0x8EA4E9CD 0x27FA3 +0x8EA4E9CE 0x47CD +0x8EA4E9CF 0x47CF +0x8EA4E9D0 0x283D2 +0x8EA4E9D1 0x283D5 +0x8EA4E9D2 0x908E +0x8EA4E9D3 0x4916 +0x8EA4E9D4 0x4915 +0x8EA4E9D5 0x49B5 +0x8EA4E9D6 0x4A08 +0x8EA4E9D7 0x29055 +0x8EA4E9D8 0x4A32 +0x8EA4E9D9 0x29193 +0x8EA4E9DA 0x4A33 +0x8EA4E9DB 0x4A34 +0x8EA4E9DC 0x4A3C +0x8EA4E9DD 0x29356 +0x8EA4E9DE 0x97C2 +0x8EA4E9DF 0x293E9 +0x8EA4E9E0 0x4A9C +0x8EA4E9E1 0x29445 +0x8EA4E9E2 0x4AF4 +0x8EA4E9E3 0x4AF2 +0x8EA4E9E4 0x2967C +0x8EA4E9E5 0x4B62 +0x8EA4E9E6 0x297D3 +0x8EA4E9E7 0x4B61 +0x8EA4E9E8 0x4B64 +0x8EA4E9E9 0x4BB5 +0x8EA4E9EA 0x9A4B +0x8EA4E9EB 0x4BB4 +0x8EA4E9EC 0x2998E +0x8EA4E9ED 0x29A97 +0x8EA4E9EE 0x4BE3 +0x8EA4E9EF 0x29A9B +0x8EA4E9F0 0x29A99 +0x8EA4E9F1 0x9B1C +0x8EA4E9F2 0x4C0E +0x8EA4E9F3 0x29BCF +0x8EA4E9F4 0x9B1B +0x8EA4E9F5 0x29C59 +0x8EA4E9F6 0x4C2C +0x8EA4E9F7 0x4C2B +0x8EA4E9F8 0x29D20 +0x8EA4E9F9 0x29D23 +0x8EA4E9FA 0x29D2A +0x8EA4E9FB 0x4C85 +0x8EA4E9FC 0x4C81 +0x8EA4E9FD 0x4C7E +0x8EA4E9FE 0x4C83 +0x8EA4EAA1 0x4C80 +0x8EA4EAA2 0x29EB0 +0x8EA4EAA3 0x9C42 +0x8EA4EAA4 0x2A12F +0x8EA4EAA5 0x9DD4 +0x8EA4EAA6 0x4CFB +0x8EA4EAA7 0x4CF7 +0x8EA4EAA8 0x2A132 +0x8EA4EAA9 0x2A143 +0x8EA4EAAA 0x2A13F +0x8EA4EAAB 0x2A139 +0x8EA4EAAC 0x4CF8 +0x8EA4EAAD 0x2A130 +0x8EA4EAAE 0x2A2DD +0x8EA4EAAF 0x2A3DA +0x8EA4EAB0 0x2A3DB +0x8EA4EAB1 0x4D5A +0x8EA4EAB2 0x2A484 +0x8EA4EAB3 0x2A47F +0x8EA4EAB4 0x2A472 +0x8EA4EAB5 0x2A480 +0x8EA4EAB6 0x2A4EE +0x8EA4EAB7 0x4D78 +0x8EA4EAB8 0x2A52A +0x8EA4EAB9 0x2A522 +0x8EA4EABA 0x2A571 +0x8EA4EABB 0x2A5CD +0x8EA4EABC 0x4D9D +0x8EA4EABD 0x4D9C +0x8EA4EABE 0x2A60F +0x8EA4EABF 0x2A618 +0x8EA4EAC0 0x2046A +0x8EA4EAC1 0x34A9 +0x8EA4EAC2 0x34BF +0x8EA4EAC3 0x56D0 +0x8EA4EAC4 0x56CF +0x8EA4EAC5 0x21B0C +0x8EA4EAC6 0x5DDA +0x8EA4EAC7 0x225A6 +0x8EA4EAC8 0x3A77 +0x8EA4EAC9 0x3A76 +0x8EA4EACA 0x23037 +0x8EA4EACB 0x3ABB +0x8EA4EACC 0x66EA +0x8EA4EACD 0x23AE2 +0x8EA4EACE 0x3D9B +0x8EA4EACF 0x244BC +0x8EA4EAD0 0x3E0F +0x8EA4EAD1 0x3E5B +0x8EA4EAD2 0x24AD5 +0x8EA4EAD3 0x3F4C +0x8EA4EAD4 0x3F6F +0x8EA4EAD5 0x3FD9 +0x8EA4EAD6 0x24F12 +0x8EA4EAD7 0x4082 +0x8EA4EAD8 0x2534B +0x8EA4EAD9 0x25341 +0x8EA4EADA 0x253A1 +0x8EA4EADB 0x255EC +0x8EA4EADC 0x4274 +0x8EA4EADD 0x4272 +0x8EA4EADE 0x25DD4 +0x8EA4EADF 0x25DD8 +0x8EA4EAE0 0x25DD9 +0x8EA4EAE1 0x4273 +0x8EA4EAE2 0x25DDA +0x8EA4EAE3 0x25F6C +0x8EA4EAE4 0x25F6D +0x8EA4EAE5 0x42B1 +0x8EA4EAE6 0x432E +0x8EA4EAE7 0x261E7 +0x8EA4EAE8 0x261EB +0x8EA4EAE9 0x261EC +0x8EA4EAEA 0x26262 +0x8EA4EAEB 0x434E +0x8EA4EAEC 0x2652B +0x8EA4EAED 0x2660D +0x8EA4EAEE 0x268CD +0x8EA4EAEF 0x26AC3 +0x8EA4EAF0 0x2713F +0x8EA4EAF1 0x2713C +0x8EA4EAF2 0x2713E +0x8EA4EAF3 0x2713D +0x8EA4EAF4 0x2713A +0x8EA4EAF5 0x27138 +0x8EA4EAF6 0x27544 +0x8EA4EAF7 0x27545 +0x8EA4EAF8 0x460B +0x8EA4EAF9 0x27548 +0x8EA4EAFA 0x27550 +0x8EA4EAFB 0x466C +0x8EA4EAFC 0x8B89 +0x8EA4EAFD 0x27B78 +0x8EA4EAFE 0x27B79 +0x8EA4EBA1 0x478B +0x8EA4EBA2 0x27E3E +0x8EA4EBA3 0x47D0 +0x8EA4EBA4 0x482D +0x8EA4EBA5 0x28654 +0x8EA4EBA6 0x48E4 +0x8EA4EBA7 0x4971 +0x8EA4EBA8 0x28BB9 +0x8EA4EBA9 0x9458 +0x8EA4EBAA 0x496F +0x8EA4EBAB 0x2905F +0x8EA4EBAC 0x4A87 +0x8EA4EBAD 0x4AA5 +0x8EA4EBAE 0x29572 +0x8EA4EBAF 0x29575 +0x8EA4EBB0 0x4B1E +0x8EA4EBB1 0x4B65 +0x8EA4EBB2 0x4BB9 +0x8EA4EBB3 0x4BB7 +0x8EA4EBB4 0x4BB8 +0x8EA4EBB5 0x4BE4 +0x8EA4EBB6 0x29AA3 +0x8EA4EBB7 0x29AA5 +0x8EA4EBB8 0x29BDC +0x8EA4EBB9 0x29BDD +0x8EA4EBBA 0x29C5A +0x8EA4EBBB 0x4C8C +0x8EA4EBBC 0x4C89 +0x8EA4EBBD 0x4C8A +0x8EA4EBBE 0x29EDB +0x8EA4EBBF 0x29EDC +0x8EA4EBC0 0x4C8B +0x8EA4EBC1 0x2A1AB +0x8EA4EBC2 0x2A184 +0x8EA4EBC3 0x2A176 +0x8EA4EBC4 0x4D01 +0x8EA4EBC5 0x4CFE +0x8EA4EBC6 0x9DE7 +0x8EA4EBC7 0x4D03 +0x8EA4EBC8 0x4D06 +0x8EA4EBC9 0x2A183 +0x8EA4EBCA 0x9DEA +0x8EA4EBCB 0x9DF1 +0x8EA4EBCC 0x2A27F +0x8EA4EBCD 0x4D1D +0x8EA4EBCE 0x4D43 +0x8EA4EBCF 0x2A373 +0x8EA4EBD0 0x2A3AD +0x8EA4EBD1 0x2A3B0 +0x8EA4EBD2 0x4D4F +0x8EA4EBD3 0x2A40F +0x8EA4EBD4 0x2A40C +0x8EA4EBD5 0x4D5B +0x8EA4EBD6 0x4D70 +0x8EA4EBD7 0x2A579 +0x8EA4EBD8 0x4D88 +0x8EA4EBD9 0x2A577 +0x8EA4EBDA 0x2A57A +0x8EA4EBDB 0x4D89 +0x8EA4EBDC 0x9F44 +0x8EA4EBDD 0x2A632 +0x8EA4EBDE 0x2A627 +0x8EA4EBDF 0x2A62A +0x8EA4EBE0 0x2A62C +0x8EA4EBE1 0x9F6D +0x8EA4EBE2 0x2A628 +0x8EA4EBE3 0x2A629 +0x8EA4EBE4 0x2A638 +0x8EA4EBE5 0x2082F +0x8EA4EBE6 0x2117B +0x8EA4EBE7 0x21B0D +0x8EA4EBE8 0x5DD9 +0x8EA4EBE9 0x21FD6 +0x8EA4EBEA 0x21FD5 +0x8EA4EBEB 0x22EA1 +0x8EA4EBEC 0x2384C +0x8EA4EBED 0x3D9E +0x8EA4EBEE 0x3D9F +0x8EA4EBEF 0x3EA7 +0x8EA4EBF0 0x3F4B +0x8EA4EBF1 0x3FDB +0x8EA4EBF2 0x3FDA +0x8EA4EBF3 0x24FC0 +0x8EA4EBF4 0x77D6 +0x8EA4EBF5 0x408E +0x8EA4EBF6 0x4276 +0x8EA4EBF7 0x25DF4 +0x8EA4EBF8 0x4330 +0x8EA4EBF9 0x432F +0x8EA4EBFA 0x261F0 +0x8EA4EBFB 0x4366 +0x8EA4EBFC 0x2633F +0x8EA4EBFD 0x457E +0x8EA4EBFE 0x2755D +0x8EA4ECA1 0x27572 +0x8EA4ECA2 0x27562 +0x8EA4ECA3 0x883A +0x8EA4ECA4 0x27566 +0x8EA4ECA5 0x8975 +0x8EA4ECA6 0x466F +0x8EA4ECA7 0x27B88 +0x8EA4ECA8 0x47D1 +0x8EA4ECA9 0x482F +0x8EA4ECAA 0x281E8 +0x8EA4ECAB 0x281E4 +0x8EA4ECAC 0x48B2 +0x8EA4ECAD 0x4918 +0x8EA4ECAE 0x4917 +0x8EA4ECAF 0x288FF +0x8EA4ECB0 0x4976 +0x8EA4ECB1 0x291AF +0x8EA4ECB2 0x291AE +0x8EA4ECB3 0x4A4F +0x8EA4ECB4 0x4A89 +0x8EA4ECB5 0x293F2 +0x8EA4ECB6 0x29448 +0x8EA4ECB7 0x29581 +0x8EA4ECB8 0x2957E +0x8EA4ECB9 0x4AF5 +0x8EA4ECBA 0x4B1F +0x8EA4ECBB 0x29652 +0x8EA4ECBC 0x297EF +0x8EA4ECBD 0x9A5D +0x8EA4ECBE 0x4BE5 +0x8EA4ECBF 0x29AAD +0x8EA4ECC0 0x29BE6 +0x8EA4ECC1 0x4C10 +0x8EA4ECC2 0x29BED +0x8EA4ECC3 0x4C0F +0x8EA4ECC4 0x29BE9 +0x8EA4ECC5 0x29C61 +0x8EA4ECC6 0x29C60 +0x8EA4ECC7 0x29D33 +0x8EA4ECC8 0x4C2F +0x8EA4ECC9 0x4C30 +0x8EA4ECCA 0x9C64 +0x8EA4ECCB 0x29F0B +0x8EA4ECCC 0x29F08 +0x8EA4ECCD 0x4C93 +0x8EA4ECCE 0x4C94 +0x8EA4ECCF 0x29F07 +0x8EA4ECD0 0x4D07 +0x8EA4ECD1 0x4D09 +0x8EA4ECD2 0x4D08 +0x8EA4ECD3 0x2A1CA +0x8EA4ECD4 0x4D0B +0x8EA4ECD5 0x2A1C6 +0x8EA4ECD6 0x9E0A +0x8EA4ECD7 0x2A284 +0x8EA4ECD8 0x2A2EB +0x8EA4ECD9 0x2A37D +0x8EA4ECDA 0x4D50 +0x8EA4ECDB 0x4D71 +0x8EA4ECDC 0x2A49B +0x8EA4ECDD 0x2A4A2 +0x8EA4ECDE 0x2A4A1 +0x8EA4ECDF 0x2A4A0 +0x8EA4ECE0 0x2A49C +0x8EA4ECE1 0x4D7B +0x8EA4ECE2 0x4D7C +0x8EA4ECE3 0x2A580 +0x8EA4ECE4 0x9F73 +0x8EA4ECE5 0x2A640 +0x8EA4ECE6 0x4DA1 +0x8EA4ECE7 0x2A639 +0x8EA4ECE8 0x2A63C +0x8EA4ECE9 0x4DA0 +0x8EA4ECEA 0x4DA2 +0x8EA4ECEB 0x208CA +0x8EA4ECEC 0x361B +0x8EA4ECED 0x21189 +0x8EA4ECEE 0x3682 +0x8EA4ECEF 0x2303C +0x8EA4ECF0 0x23940 +0x8EA4ECF1 0x24163 +0x8EA4ECF2 0x24169 +0x8EA4ECF3 0x3FE9 +0x8EA4ECF4 0x25353 +0x8EA4ECF5 0x4084 +0x8EA4ECF6 0x77E1 +0x8EA4ECF7 0x25917 +0x8EA4ECF8 0x2591A +0x8EA4ECF9 0x25E00 +0x8EA4ECFA 0x42B3 +0x8EA4ECFB 0x4334 +0x8EA4ECFC 0x4333 +0x8EA4ECFD 0x4580 +0x8EA4ECFE 0x2756F +0x8EA4EDA1 0x278AB +0x8EA4EDA2 0x46AD +0x8EA4EDA3 0x27B91 +0x8EA4EDA4 0x4744 +0x8EA4EDA5 0x4755 +0x8EA4EDA6 0x27FB1 +0x8EA4EDA7 0x47D2 +0x8EA4EDA8 0x281EF +0x8EA4EDA9 0x28DF1 +0x8EA4EDAA 0x28DF2 +0x8EA4EDAB 0x291B7 +0x8EA4EDAC 0x291B5 +0x8EA4EDAD 0x4A8A +0x8EA4EDAE 0x29586 +0x8EA4EDAF 0x2965A +0x8EA4EDB0 0x4B67 +0x8EA4EDB1 0x299C6 +0x8EA4EDB2 0x299CB +0x8EA4EDB3 0x4BE6 +0x8EA4EDB4 0x29AB2 +0x8EA4EDB5 0x4C13 +0x8EA4EDB6 0x29BF3 +0x8EA4EDB7 0x9B2D +0x8EA4EDB8 0x29F27 +0x8EA4EDB9 0x4C97 +0x8EA4EDBA 0x9E0C +0x8EA4EDBB 0x2A1D5 +0x8EA4EDBC 0x2A1D8 +0x8EA4EDBD 0x4D0C +0x8EA4EDBE 0x2A1EC +0x8EA4EDBF 0x2A287 +0x8EA4EDC0 0x2A2F2 +0x8EA4EDC1 0x4D46 +0x8EA4EDC2 0x4D5C +0x8EA4EDC3 0x4D74 +0x8EA4EDC4 0x4D72 +0x8EA4EDC5 0x2A4AD +0x8EA4EDC6 0x2A4B0 +0x8EA4EDC7 0x2A4FD +0x8EA4EDC8 0x9F1F +0x8EA4EDC9 0x2A587 +0x8EA4EDCA 0x2A64A +0x8EA4EDCB 0x4DA4 +0x8EA4EDCC 0x4DA3 +0x8EA4EDCD 0x2A64E +0x8EA4EDCE 0x2A649 +0x8EA4EDCF 0x2A651 +0x8EA4EDD0 0x2A64D +0x8EA4EDD1 0x4DB4 +0x8EA4EDD2 0x20472 +0x8EA4EDD3 0x3536 +0x8EA4EDD4 0x21B16 +0x8EA4EDD5 0x2386D +0x8EA4EDD6 0x23941 +0x8EA4EDD7 0x3CB2 +0x8EA4EDD8 0x24171 +0x8EA4EDD9 0x24174 +0x8EA4EDDA 0x3F16 +0x8EA4EDDB 0x7C70 +0x8EA4EDDC 0x4277 +0x8EA4EDDD 0x25F7C +0x8EA4EDDE 0x457F +0x8EA4EDDF 0x2718A +0x8EA4EDE0 0x27956 +0x8EA4EDE1 0x487D +0x8EA4EDE2 0x9479 +0x8EA4EDE3 0x28BFA +0x8EA4EDE4 0x974A +0x8EA4EDE5 0x4A8C +0x8EA4EDE6 0x2965B +0x8EA4EDE7 0x4B68 +0x8EA4EDE8 0x4BBE +0x8EA4EDE9 0x4C15 +0x8EA4EDEA 0x2A1F5 +0x8EA4EDEB 0x2A1F0 +0x8EA4EDEC 0x2A2F3 +0x8EA4EDED 0x2A37F +0x8EA4EDEE 0x2A413 +0x8EA4EDEF 0x4D75 +0x8EA4EDF0 0x4DA5 +0x8EA4EDF1 0x21B19 +0x8EA4EDF2 0x22985 +0x8EA4EDF3 0x22EB0 +0x8EA4EDF4 0x24177 +0x8EA4EDF5 0x255FF +0x8EA4EDF6 0x4278 +0x8EA4EDF7 0x4335 +0x8EA4EDF8 0x7E9D +0x8EA4EDF9 0x4582 +0x8EA4EDFA 0x27187 +0x8EA4EDFB 0x4583 +0x8EA4EDFC 0x2718B +0x8EA4EDFD 0x4671 +0x8EA4EDFE 0x27B9E +0x8EA4EEA1 0x487E +0x8EA4EEA2 0x4A8E +0x8EA4EEA3 0x2958F +0x8EA4EEA4 0x9960 +0x8EA4EEA5 0x4B69 +0x8EA4EEA6 0x29839 +0x8EA4EEA7 0x299D4 +0x8EA4EEA8 0x29AF1 +0x8EA4EEA9 0x29C02 +0x8EA4EEAA 0x29C6B +0x8EA4EEAB 0x29D40 +0x8EA4EEAC 0x4C9A +0x8EA4EEAD 0x4C9B +0x8EA4EEAE 0x2A210 +0x8EA4EEAF 0x2A4BE +0x8EA4EEB0 0x2A4B9 +0x8EA4EEB1 0x4D90 +0x8EA4EEB2 0x2A664 +0x8EA4EEB3 0x9F9E +0x8EA4EEB4 0x24AE9 +0x8EA4EEB5 0x27190 +0x8EA4EEB6 0x4586 +0x8EA4EEB7 0x4585 +0x8EA4EEB8 0x2721C +0x8EA4EEB9 0x460E +0x8EA4EEBA 0x27592 +0x8EA4EEBB 0x278AE +0x8EA4EEBC 0x27BA3 +0x8EA4EEBD 0x4919 +0x8EA4EEBE 0x291C9 +0x8EA4EEBF 0x4BC0 +0x8EA4EEC0 0x299D8 +0x8EA4EEC1 0x29D44 +0x8EA4EEC2 0x2A224 +0x8EA4EEC3 0x9EF8 +0x8EA4EEC4 0x9F3A +0x8EA4EEC5 0x9F7D +0x8EA4EEC6 0x2A670 +0x8EA4EEC7 0x2A6D3 +0x8EA4EEC8 0x400D +0x8EA4EEC9 0x4C16 +0x8EA4EECA 0x2A4C3 +0x8EA4EECB 0x4DA9 +0x8EA4EECC 0x4DAA +0x8EA4EECD 0x4085 +0x8EA4EECE 0x25E21 +0x8EA4EECF 0x26ACA +0x8EA4EED0 0x2759C +0x8EA4EED1 0x29C73 +0x8EA4EED2 0x2A386 +0x8EA4EED3 0x2A5C1 +0x8EA4EED4 0x29C09 +0x8EA4EED5 0x9F96 +0x8EA4EED6 0x2A6D5 +0x8EA4EED7 0x4BC2 +0x8EA4EED8 0x4C31 +0x8EA4EED9 0x4D11 +0x8EA4EEDA 0x4DAB +0x8EA4EEDB 0x4C9C +0x8EA4EEDC 0x291D4 +0x8EA5A1A1 0x200D1 +0x8EA5A1A2 0x200CB +0x8EA5A1A3 0x200C9 +0x8EA5A1A4 0x2010C +0x8EA5A1A5 0x20000 +0x8EA5A1A6 0x20087 +0x8EA5A1A7 0x2010D +0x8EA5A1A8 0x2010F +0x8EA5A1A9 0x2F81D +0x8EA5A1AA 0x22398 +0x8EA5A1AB 0x200D2 +0x8EA5A1AC 0x20111 +0x8EA5A1AD 0x2007E +0x8EA5A1AE 0x20AD3 +0x8EA5A1AF 0x21552 +0x8EA5A1B0 0x21CFE +0x8EA5A1B1 0x225A9 +0x8EA5A1B2 0x23942 +0x8EA5A1B3 0x20009 +0x8EA5A1B4 0x200D6 +0x8EA5A1B5 0x204DD +0x8EA5A1B6 0x204DC +0x8EA5A1B7 0x20502 +0x8EA5A1B8 0x20573 +0x8EA5A1B9 0x20676 +0x8EA5A1BA 0x206A7 +0x8EA5A1BB 0x206A8 +0x8EA5A1BC 0x20833 +0x8EA5A1BD 0x208CC +0x8EA5A1BE 0x20A0D +0x8EA5A1BF 0x20A2C +0x8EA5A1C0 0x20B1B +0x8EA5A1C1 0x355A +0x8EA5A1C2 0x20B1D +0x8EA5A1C3 0x20B99 +0x8EA5A1C4 0x2123E +0x8EA5A1C5 0x21D2D +0x8EA5A1C6 0x21D2F +0x8EA5A1C7 0x22399 +0x8EA5A1C8 0x233B3 +0x8EA5A1C9 0x239B6 +0x8EA5A1CA 0x23B1B +0x8EA5A1CB 0x244EF +0x8EA5A1CC 0x248E9 +0x8EA5A1CD 0x20014 +0x8EA5A1CE 0x20094 +0x8EA5A1CF 0x200E1 +0x8EA5A1D0 0x20506 +0x8EA5A1D1 0x2054A +0x8EA5A1D2 0x20544 +0x8EA5A1D3 0x20631 +0x8EA5A1D4 0x2067A +0x8EA5A1D5 0x206AD +0x8EA5A1D6 0x206AE +0x8EA5A1D7 0x206B1 +0x8EA5A1D8 0x20838 +0x8EA5A1D9 0x20837 +0x8EA5A1DA 0x2097D +0x8EA5A1DB 0x2097E +0x8EA5A1DC 0x20A2D +0x8EA5A1DD 0x20A32 +0x8EA5A1DE 0x20B23 +0x8EA5A1DF 0x20B26 +0x8EA5A1E0 0x2F83A +0x8EA5A1E1 0x20BA0 +0x8EA5A1E2 0x216A8 +0x8EA5A1E3 0x2193F +0x8EA5A1E4 0x219BC +0x8EA5A1E5 0x21BC4 +0x8EA5A1E6 0x21D3B +0x8EA5A1E7 0x22019 +0x8EA5A1E8 0x22018 +0x8EA5A1E9 0x221B3 +0x8EA5A1EA 0x223AA +0x8EA5A1EB 0x224BE +0x8EA5A1EC 0x225AC +0x8EA5A1ED 0x22A25 +0x8EA5A1EE 0x22A66 +0x8EA5A1EF 0x22A6B +0x8EA5A1F0 0x23943 +0x8EA5A1F1 0x239B5 +0x8EA5A1F2 0x23AEC +0x8EA5A1F3 0x23C76 +0x8EA5A1F4 0x3CBC +0x8EA5A1F5 0x24614 +0x8EA5A1F6 0x215DC +0x8EA5A1F7 0x2471C +0x8EA5A1F8 0x2471D +0x8EA5A1F9 0x264D0 +0x8EA5A1FA 0x26612 +0x8EA5A1FB 0x26AF3 +0x8EA5A1FC 0x28669 +0x8EA5A1FD 0x49B9 +0x8EA5A1FE 0x28E11 +0x8EA5A2A1 0x28E15 +0x8EA5A2A2 0x28E10 +0x8EA5A2A3 0x28E13 +0x8EA5A2A4 0x200A4 +0x8EA5A2A5 0x200A5 +0x8EA5A2A6 0x201D0 +0x8EA5A2A7 0x201BA +0x8EA5A2A8 0x201CB +0x8EA5A2A9 0x2057B +0x8EA5A2AA 0x20686 +0x8EA5A2AB 0x206BB +0x8EA5A2AC 0x206BA +0x8EA5A2AD 0x206C3 +0x8EA5A2AE 0x206B9 +0x8EA5A2AF 0x206C0 +0x8EA5A2B0 0x34DE +0x8EA5A2B1 0x20839 +0x8EA5A2B2 0x2083B +0x8EA5A2B3 0x20841 +0x8EA5A2B4 0x208D1 +0x8EA5A2B5 0x208CF +0x8EA5A2B6 0x208D2 +0x8EA5A2B7 0x2092E +0x8EA5A2B8 0x2096E +0x8EA5A2B9 0x2098C +0x8EA5A2BA 0x20988 +0x8EA5A2BB 0x20A35 +0x8EA5A2BC 0x3543 +0x8EA5A2BD 0x20A3A +0x8EA5A2BE 0x20A3B +0x8EA5A2BF 0x20A38 +0x8EA5A2C0 0x20A39 +0x8EA5A2C1 0x20B2E +0x8EA5A2C2 0x20B2C +0x8EA5A2C3 0x20BC8 +0x8EA5A2C4 0x20BB5 +0x8EA5A2C5 0x20BAD +0x8EA5A2C6 0x20BB0 +0x8EA5A2C7 0x20BAB +0x8EA5A2C8 0x211B3 +0x8EA5A2C9 0x211A9 +0x8EA5A2CA 0x216BB +0x8EA5A2CB 0x216B9 +0x8EA5A2CC 0x21B5A +0x8EA5A2CD 0x21BCD +0x8EA5A2CE 0x21C2B +0x8EA5A2CF 0x21D05 +0x8EA5A2D0 0x37AC +0x8EA5A2D1 0x37AA +0x8EA5A2D2 0x21D51 +0x8EA5A2D3 0x21D4B +0x8EA5A2D4 0x21FEA +0x8EA5A2D5 0x21FED +0x8EA5A2D6 0x22036 +0x8EA5A2D7 0x22062 +0x8EA5A2D8 0x22056 +0x8EA5A2D9 0x22055 +0x8EA5A2DA 0x22064 +0x8EA5A2DB 0x22058 +0x8EA5A2DC 0x5E07 +0x8EA5A2DD 0x221DA +0x8EA5A2DE 0x221D8 +0x8EA5A2DF 0x223AD +0x8EA5A2E0 0x223AB +0x8EA5A2E1 0x224C0 +0x8EA5A2E2 0x224C3 +0x8EA5A2E3 0x225B3 +0x8EA5A2E4 0x225B7 +0x8EA5A2E5 0x225BA +0x8EA5A2E6 0x5FCB +0x8EA5A2E7 0x38FE +0x8EA5A2E8 0x225C7 +0x8EA5A2E9 0x225B5 +0x8EA5A2EA 0x2298E +0x8EA5A2EB 0x22A73 +0x8EA5A2EC 0x22A6C +0x8EA5A2ED 0x22A74 +0x8EA5A2EE 0x2F8B4 +0x8EA5A2EF 0x22A72 +0x8EA5A2F0 0x22A71 +0x8EA5A2F1 0x22A82 +0x8EA5A2F2 0x22A70 +0x8EA5A2F3 0x2313F +0x8EA5A2F4 0x233BA +0x8EA5A2F5 0x233B8 +0x8EA5A2F6 0x239B7 +0x8EA5A2F7 0x24723 +0x8EA5A2F8 0x24721 +0x8EA5A2F9 0x2472B +0x8EA5A2FA 0x24726 +0x8EA5A2FB 0x24722 +0x8EA5A2FC 0x24D25 +0x8EA5A2FD 0x250E4 +0x8EA5A2FE 0x25415 +0x8EA5A3A1 0x264E4 +0x8EA5A3A2 0x26633 +0x8EA5A3A3 0x2662A +0x8EA5A3A4 0x26632 +0x8EA5A3A5 0x26629 +0x8EA5A3A6 0x26AFB +0x8EA5A3A7 0x2795B +0x8EA5A3A8 0x2795C +0x8EA5A3A9 0x27C28 +0x8EA5A3AA 0x2866F +0x8EA5A3AB 0x2866D +0x8EA5A3AC 0x2866B +0x8EA5A3AD 0x2866E +0x8EA5A3AE 0x28E16 +0x8EA5A3AF 0x20022 +0x8EA5A3B0 0x20116 +0x8EA5A3B1 0x20148 +0x8EA5A3B2 0x201D8 +0x8EA5A3B3 0x20200 +0x8EA5A3B4 0x3441 +0x8EA5A3B5 0x20480 +0x8EA5A3B6 0x204E4 +0x8EA5A3B7 0x34B4 +0x8EA5A3B8 0x204E7 +0x8EA5A3B9 0x2050C +0x8EA5A3BA 0x20553 +0x8EA5A3BB 0x205B7 +0x8EA5A3BC 0x20AE8 +0x8EA5A3BD 0x206D1 +0x8EA5A3BE 0x206E5 +0x8EA5A3BF 0x206D8 +0x8EA5A3C0 0x206D6 +0x8EA5A3C1 0x206DA +0x8EA5A3C2 0x206D9 +0x8EA5A3C3 0x206D5 +0x8EA5A3C4 0x206E6 +0x8EA5A3C5 0x206D4 +0x8EA5A3C6 0x206D3 +0x8EA5A3C7 0x20844 +0x8EA5A3C8 0x208D6 +0x8EA5A3C9 0x208D7 +0x8EA5A3CA 0x20913 +0x8EA5A3CC 0x20970 +0x8EA5A3CD 0x20992 +0x8EA5A3CE 0x209DB +0x8EA5A3CF 0x209DA +0x8EA5A3D0 0x20A41 +0x8EA5A3D1 0x20A43 +0x8EA5A3D2 0x20B33 +0x8EA5A3D3 0x20BF6 +0x8EA5A3D4 0x20BD4 +0x8EA5A3D5 0x20BDD +0x8EA5A3D6 0x20BD0 +0x8EA5A3D7 0x20C04 +0x8EA5A3D8 0x20BD9 +0x8EA5A3D9 0x20BDB +0x8EA5A3DA 0x20C05 +0x8EA5A3DB 0x20BD3 +0x8EA5A3DC 0x20BE1 +0x8EA5A3DD 0x21280 +0x8EA5A3DE 0x21277 +0x8EA5A3DF 0x21281 +0x8EA5A3E0 0x21282 +0x8EA5A3E1 0x21283 +0x8EA5A3E2 0x2F85C +0x8EA5A3E3 0x21561 +0x8EA5A3E4 0x21560 +0x8EA5A3E5 0x216D8 +0x8EA5A3E6 0x216D6 +0x8EA5A3E7 0x216D7 +0x8EA5A3E8 0x24605 +0x8EA5A3E9 0x2194D +0x8EA5A3EA 0x21948 +0x8EA5A3EB 0x21BD6 +0x8EA5A3EC 0x21BCF +0x8EA5A3ED 0x21BD9 +0x8EA5A3EE 0x21BD8 +0x8EA5A3EF 0x21C3D +0x8EA5A3F0 0x37B3 +0x8EA5A3F1 0x21D54 +0x8EA5A3F2 0x21D5B +0x8EA5A3F3 0x21D5C +0x8EA5A3F4 0x37B4 +0x8EA5A3F5 0x21D59 +0x8EA5A3F6 0x21D58 +0x8EA5A3F7 0x21D5A +0x8EA5A3F8 0x21D55 +0x8EA5A3F9 0x21D56 +0x8EA5A3FA 0x21D82 +0x8EA5A3FB 0x21FF0 +0x8EA5A3FC 0x2201C +0x8EA5A3FD 0x2206A +0x8EA5A3FE 0x22069 +0x8EA5A4A1 0x22071 +0x8EA5A4A2 0x22067 +0x8EA5A4A3 0x2206C +0x8EA5A4A4 0x2206E +0x8EA5A4A5 0x22079 +0x8EA5A4A6 0x2218B +0x8EA5A4A7 0x221B8 +0x8EA5A4A8 0x221E7 +0x8EA5A4A9 0x221E8 +0x8EA5A4AA 0x221E4 +0x8EA5A4AB 0x221E6 +0x8EA5A4AC 0x221E5 +0x8EA5A4AD 0x221F0 +0x8EA5A4AE 0x22383 +0x8EA5A4AF 0x223B7 +0x8EA5A4B0 0x223BB +0x8EA5A4B1 0x223B9 +0x8EA5A4B2 0x223C5 +0x8EA5A4B3 0x22453 +0x8EA5A4B4 0x224C4 +0x8EA5A4B5 0x224C6 +0x8EA5A4B6 0x224CB +0x8EA5A4B7 0x225C8 +0x8EA5A4B8 0x2F89F +0x8EA5A4B9 0x225C9 +0x8EA5A4BA 0x225DB +0x8EA5A4BB 0x22994 +0x8EA5A4BC 0x22A95 +0x8EA5A4BD 0x22A88 +0x8EA5A4BE 0x22A8D +0x8EA5A4BF 0x22EEC +0x8EA5A4C0 0x22EEE +0x8EA5A4C1 0x22EF1 +0x8EA5A4C2 0x2312E +0x8EA5A4C3 0x23149 +0x8EA5A4C4 0x2335F +0x8EA5A4C5 0x233D1 +0x8EA5A4C6 0x233CB +0x8EA5A4C7 0x23885 +0x8EA5A4C8 0x3C1D +0x8EA5A4C9 0x2394A +0x8EA5A4CA 0x23947 +0x8EA5A4CB 0x2394B +0x8EA5A4CC 0x239BB +0x8EA5A4CD 0x239C4 +0x8EA5A4CE 0x3C7C +0x8EA5A4CF 0x23B02 +0x8EA5A4D0 0x23C82 +0x8EA5A4D1 0x23C91 +0x8EA5A4D2 0x23C8F +0x8EA5A4D3 0x23C92 +0x8EA5A4D4 0x2418F +0x8EA5A4D5 0x24191 +0x8EA5A4D6 0x241B4 +0x8EA5A4D7 0x24192 +0x8EA5A4D8 0x244F4 +0x8EA5A4D9 0x245AA +0x8EA5A4DA 0x24735 +0x8EA5A4DB 0x24737 +0x8EA5A4DC 0x2473D +0x8EA5A4DD 0x2473C +0x8EA5A4DE 0x2472F +0x8EA5A4DF 0x24730 +0x8EA5A4E0 0x248F8 +0x8EA5A4E1 0x248EF +0x8EA5A4E2 0x24B26 +0x8EA5A4E3 0x3F55 +0x8EA5A4E4 0x24D26 +0x8EA5A4E5 0x24D27 +0x8EA5A4E6 0x24F41 +0x8EA5A4E7 0x24FC6 +0x8EA5A4E8 0x24FC7 +0x8EA5A4E9 0x250EB +0x8EA5A4EA 0x250E8 +0x8EA5A4EB 0x250EA +0x8EA5A4EC 0x2541A +0x8EA5A4ED 0x25419 +0x8EA5A4EE 0x4126 +0x8EA5A4EF 0x25923 +0x8EA5A4F0 0x25924 +0x8EA5A4F1 0x25E25 +0x8EA5A4F2 0x26635 +0x8EA5A4F3 0x26634 +0x8EA5A4F4 0x26A07 +0x8EA5A4F5 0x2721D +0x8EA5A4F6 0x277E1 +0x8EA5A4F7 0x27BAB +0x8EA5A4F8 0x28460 +0x8EA5A4F9 0x28677 +0x8EA5A4FA 0x2867D +0x8EA5A4FB 0x49BC +0x8EA5A4FC 0x28E1E +0x8EA5A4FD 0x28E1A +0x8EA5A4FE 0x28E1D +0x8EA5A5A1 0x2006B +0x8EA5A5A2 0x2012D +0x8EA5A5A3 0x2014C +0x8EA5A5A4 0x2022A +0x8EA5A5A5 0x344A +0x8EA5A5A6 0x20215 +0x8EA5A5A7 0x2022C +0x8EA5A5A8 0x20206 +0x8EA5A5A9 0x20208 +0x8EA5A5AA 0x2020A +0x8EA5A5AB 0x344E +0x8EA5A5AC 0x20556 +0x8EA5A5AD 0x20584 +0x8EA5A5AE 0x34C9 +0x8EA5A5AF 0x205C6 +0x8EA5A5B0 0x206F5 +0x8EA5A5B1 0x20709 +0x8EA5A5B2 0x206F8 +0x8EA5A5B3 0x206E8 +0x8EA5A5B4 0x206FB +0x8EA5A5B5 0x206E9 +0x8EA5A5B6 0x206F6 +0x8EA5A5B7 0x52B7 +0x8EA5A5B8 0x52B8 +0x8EA5A5B9 0x20852 +0x8EA5A5BA 0x52B6 +0x8EA5A5BB 0x52BA +0x8EA5A5BC 0x20854 +0x8EA5A5BD 0x20851 +0x8EA5A5BE 0x20939 +0x8EA5A5BF 0x2093A +0x8EA5A5C0 0x20998 +0x8EA5A5C1 0x20A4E +0x8EA5A5C2 0x357B +0x8EA5A5C3 0x20C36 +0x8EA5A5C4 0x20C0C +0x8EA5A5C5 0x20C10 +0x8EA5A5C6 0x20C32 +0x8EA5A5C7 0x20C11 +0x8EA5A5C8 0x20C18 +0x8EA5A5C9 0x20C1C +0x8EA5A5CA 0x20C1A +0x8EA5A5CB 0x20C19 +0x8EA5A5CC 0x20C0B +0x8EA5A5CD 0x20C0F +0x8EA5A5CE 0x20C1D +0x8EA5A5CF 0x20C21 +0x8EA5A5D0 0x20C13 +0x8EA5A5D1 0x20C1B +0x8EA5A5D2 0x20C15 +0x8EA5A5D3 0x3620 +0x8EA5A5D4 0x211D1 +0x8EA5A5D5 0x211C8 +0x8EA5A5D6 0x2128D +0x8EA5A5D7 0x212B5 +0x8EA5A5D8 0x3689 +0x8EA5A5D9 0x3695 +0x8EA5A5DA 0x215F8 +0x8EA5A5DB 0x216E0 +0x8EA5A5DC 0x216E1 +0x8EA5A5DD 0x36BE +0x8EA5A5DE 0x216DE +0x8EA5A5DF 0x216FE +0x8EA5A5E0 0x216DC +0x8EA5A5E1 0x21701 +0x8EA5A5E2 0x216FD +0x8EA5A5E3 0x21700 +0x8EA5A5E4 0x219D7 +0x8EA5A5E5 0x219D6 +0x8EA5A5E6 0x219D9 +0x8EA5A5E7 0x21B65 +0x8EA5A5E8 0x21BD2 +0x8EA5A5E9 0x21BDC +0x8EA5A5EA 0x21BE1 +0x8EA5A5EB 0x21BDE +0x8EA5A5EC 0x21C42 +0x8EA5A5ED 0x21C4B +0x8EA5A5EE 0x37C3 +0x8EA5A5EF 0x21D8E +0x8EA5A5F0 0x21D91 +0x8EA5A5F1 0x21D8B +0x8EA5A5F2 0x21D90 +0x8EA5A5F3 0x21D88 +0x8EA5A5F4 0x21D89 +0x8EA5A5F5 0x21D84 +0x8EA5A5F6 0x21DAA +0x8EA5A5F7 0x2208D +0x8EA5A5F8 0x2208F +0x8EA5A5F9 0x2207D +0x8EA5A5FA 0x2207F +0x8EA5A5FB 0x2207B +0x8EA5A5FC 0x22080 +0x8EA5A5FD 0x2207E +0x8EA5A5FE 0x22083 +0x8EA5A6A1 0x22081 +0x8EA5A6A2 0x22086 +0x8EA5A6A3 0x2208A +0x8EA5A6A4 0x221BD +0x8EA5A6A5 0x221BE +0x8EA5A6A6 0x3877 +0x8EA5A6A7 0x221F4 +0x8EA5A6A8 0x221F3 +0x8EA5A6A9 0x22202 +0x8EA5A6AA 0x221F6 +0x8EA5A6AB 0x221F5 +0x8EA5A6AC 0x221F2 +0x8EA5A6AD 0x22204 +0x8EA5A6AE 0x2233D +0x8EA5A6AF 0x223C6 +0x8EA5A6B0 0x22489 +0x8EA5A6B1 0x224D4 +0x8EA5A6B2 0x224D6 +0x8EA5A6B3 0x224D2 +0x8EA5A6B4 0x225FA +0x8EA5A6B5 0x22606 +0x8EA5A6B6 0x2260C +0x8EA5A6B7 0x2260A +0x8EA5A6B8 0x2260F +0x8EA5A6B9 0x22A2F +0x8EA5A6BA 0x39D4 +0x8EA5A6BB 0x22AB7 +0x8EA5A6BC 0x22ABE +0x8EA5A6BD 0x22ABC +0x8EA5A6BE 0x22AE2 +0x8EA5A6BF 0x22F06 +0x8EA5A6C0 0x22EF7 +0x8EA5A6C1 0x22F07 +0x8EA5A6C2 0x22EF6 +0x8EA5A6C3 0x23B35 +0x8EA5A6C4 0x2315F +0x8EA5A6C5 0x23165 +0x8EA5A6C6 0x23164 +0x8EA5A6C7 0x23161 +0x8EA5A6C8 0x2315A +0x8EA5A6C9 0x2315D +0x8EA5A6CA 0x2F8D7 +0x8EA5A6CB 0x233D7 +0x8EA5A6CC 0x233D5 +0x8EA5A6CD 0x233DE +0x8EA5A6CE 0x233E1 +0x8EA5A6CF 0x233E0 +0x8EA5A6D0 0x233D9 +0x8EA5A6D1 0x3B4C +0x8EA5A6D2 0x233DA +0x8EA5A6D3 0x233DF +0x8EA5A6D4 0x233F6 +0x8EA5A6D5 0x23403 +0x8EA5A6D6 0x3C20 +0x8EA5A6D7 0x23893 +0x8EA5A6D8 0x2388B +0x8EA5A6D9 0x23891 +0x8EA5A6DA 0x23892 +0x8EA5A6DB 0x2388A +0x8EA5A6DC 0x23889 +0x8EA5A6DD 0x2388F +0x8EA5A6DE 0x23956 +0x8EA5A6DF 0x23959 +0x8EA5A6E0 0x239CA +0x8EA5A6E1 0x239CC +0x8EA5A6E2 0x3C5B +0x8EA5A6E3 0x239D0 +0x8EA5A6E4 0x239CD +0x8EA5A6E5 0x239D6 +0x8EA5A6E6 0x239CB +0x8EA5A6E7 0x23A83 +0x8EA5A6E8 0x23A82 +0x8EA5A6E9 0x23B06 +0x8EA5A6EA 0x23B2A +0x8EA5A6EB 0x23B2C +0x8EA5A6EC 0x23B2B +0x8EA5A6ED 0x23B29 +0x8EA5A6EE 0x23CBD +0x8EA5A6EF 0x23CB3 +0x8EA5A6F0 0x23CBE +0x8EA5A6F1 0x23CC0 +0x8EA5A6F2 0x23CB5 +0x8EA5A6F3 0x23CB6 +0x8EA5A6F4 0x2419D +0x8EA5A6F5 0x2419F +0x8EA5A6F6 0x24620 +0x8EA5A6F7 0x3E2D +0x8EA5A6F8 0x2461E +0x8EA5A6F9 0x2461C +0x8EA5A6FA 0x24632 +0x8EA5A6FB 0x2461F +0x8EA5A6FC 0x2462B +0x8EA5A6FD 0x24621 +0x8EA5A6FE 0x24626 +0x8EA5A7A1 0x24624 +0x8EA5A7A2 0x2461D +0x8EA5A7A3 0x24627 +0x8EA5A7A4 0x2475B +0x8EA5A7A5 0x24759 +0x8EA5A7A6 0x24780 +0x8EA5A7A7 0x24755 +0x8EA5A7A8 0x24750 +0x8EA5A7A9 0x2475A +0x8EA5A7AA 0x24756 +0x8EA5A7AB 0x24763 +0x8EA5A7AC 0x24752 +0x8EA5A7AD 0x24758 +0x8EA5A7AE 0x3E63 +0x8EA5A7AF 0x24739 +0x8EA5A7B0 0x248F9 +0x8EA5A7B1 0x24B28 +0x8EA5A7B2 0x3F18 +0x8EA5A7B3 0x24BBC +0x8EA5A7B4 0x24BD6 +0x8EA5A7B5 0x24C05 +0x8EA5A7B6 0x24C20 +0x8EA5A7B7 0x3F74 +0x8EA5A7B8 0x24D33 +0x8EA5A7B9 0x24F46 +0x8EA5A7BA 0x24F42 +0x8EA5A7BB 0x24F43 +0x8EA5A7BC 0x24F47 +0x8EA5A7BD 0x24FCB +0x8EA5A7BE 0x25042 +0x8EA5A7BF 0x25045 +0x8EA5A7C0 0x250FD +0x8EA5A7C1 0x250F4 +0x8EA5A7C2 0x250F9 +0x8EA5A7C3 0x250FA +0x8EA5A7C4 0x2535E +0x8EA5A7C5 0x2541D +0x8EA5A7C6 0x4128 +0x8EA5A7C7 0x25758 +0x8EA5A7C8 0x25755 +0x8EA5A7C9 0x25A57 +0x8EA5A7CA 0x25A58 +0x8EA5A7CB 0x25AD9 +0x8EA5A7CC 0x25ADC +0x8EA5A7CD 0x25ADB +0x8EA5A7CE 0x25E27 +0x8EA5A7CF 0x25F85 +0x8EA5A7D0 0x25F87 +0x8EA5A7D1 0x25F8A +0x8EA5A7D2 0x2628B +0x8EA5A7D3 0x2634F +0x8EA5A7D4 0x26530 +0x8EA5A7D5 0x2652F +0x8EA5A7D6 0x26668 +0x8EA5A7D7 0x26649 +0x8EA5A7D8 0x43DA +0x8EA5A7D9 0x26648 +0x8EA5A7DA 0x2663F +0x8EA5A7DB 0x2664B +0x8EA5A7DC 0x2665C +0x8EA5A7DD 0x26646 +0x8EA5A7DE 0x26640 +0x8EA5A7DF 0x26A0D +0x8EA5A7E0 0x26B1B +0x8EA5A7E1 0x26B1D +0x8EA5A7E2 0x26B17 +0x8EA5A7E3 0x44A4 +0x8EA5A7E4 0x26B22 +0x8EA5A7E5 0x275A7 +0x8EA5A7E6 0x27608 +0x8EA5A7E7 0x27806 +0x8EA5A7E8 0x2847D +0x8EA5A7E9 0x488E +0x8EA5A7EA 0x28463 +0x8EA5A7EB 0x28464 +0x8EA5A7EC 0x2847F +0x8EA5A7ED 0x2846B +0x8EA5A7EE 0x2847C +0x8EA5A7EF 0x28468 +0x8EA5A7F0 0x28465 +0x8EA5A7F1 0x2846A +0x8EA5A7F2 0x28698 +0x8EA5A7F3 0x28699 +0x8EA5A7F4 0x286AE +0x8EA5A7F5 0x28E2B +0x8EA5A7F6 0x28E2D +0x8EA5A7F7 0x28E31 +0x8EA5A7F8 0x28E2E +0x8EA5A7F9 0x28E2F +0x8EA5A7FA 0x2006D +0x8EA5A7FB 0x20131 +0x8EA5A7FC 0x2022D +0x8EA5A7FD 0x20239 +0x8EA5A7FE 0x20238 +0x8EA5A8A1 0x345B +0x8EA5A8A2 0x2023A +0x8EA5A8A3 0x20235 +0x8EA5A8A4 0x20262 +0x8EA5A8A5 0x204EA +0x8EA5A8A6 0x204EB +0x8EA5A8A7 0x20515 +0x8EA5A8A8 0x205CC +0x8EA5A8A9 0x205C8 +0x8EA5A8AA 0x205CD +0x8EA5A8AB 0x205DB +0x8EA5A8AC 0x205CB +0x8EA5A8AD 0x20711 +0x8EA5A8AE 0x20726 +0x8EA5A8AF 0x20862 +0x8EA5A8B0 0x2085E +0x8EA5A8B1 0x20861 +0x8EA5A8B2 0x20941 +0x8EA5A8B3 0x2093F +0x8EA5A8B4 0x20975 +0x8EA5A8B5 0x23965 +0x8EA5A8B6 0x20B49 +0x8EA5A8B7 0x209EB +0x8EA5A8B8 0x20A1A +0x8EA5A8B9 0x20A57 +0x8EA5A8BA 0x20C6B +0x8EA5A8BB 0x20CA9 +0x8EA5A8BC 0x20C54 +0x8EA5A8BD 0x20C62 +0x8EA5A8BE 0x20CAA +0x8EA5A8BF 0x20C58 +0x8EA5A8C0 0x20C72 +0x8EA5A8C1 0x20C63 +0x8EA5A8C2 0x20C73 +0x8EA5A8C3 0x20C8B +0x8EA5A8C4 0x20C8C +0x8EA5A8C5 0x20C5C +0x8EA5A8C6 0x20C51 +0x8EA5A8C7 0x20C16 +0x8EA5A8C8 0x20C60 +0x8EA5A8C9 0x20C61 +0x8EA5A8CA 0x20C5E +0x8EA5A8CB 0x20C5D +0x8EA5A8CC 0x20C64 +0x8EA5A8CD 0x20C53 +0x8EA5A8CE 0x20C5F +0x8EA5A8CF 0x20C5B +0x8EA5A8D0 0x20C6E +0x8EA5A8D1 0x20C55 +0x8EA5A8D2 0x20C52 +0x8EA5A8D3 0x20C68 +0x8EA5A8D4 0x211D2 +0x8EA5A8D5 0x211D6 +0x8EA5A8D6 0x211D3 +0x8EA5A8D7 0x212B8 +0x8EA5A8D8 0x212BB +0x8EA5A8D9 0x212EB +0x8EA5A8DA 0x212E8 +0x8EA5A8DB 0x212B6 +0x8EA5A8DC 0x212EA +0x8EA5A8DD 0x212E7 +0x8EA5A8DE 0x212E9 +0x8EA5A8DF 0x21591 +0x8EA5A8E0 0x21610 +0x8EA5A8E1 0x2160E +0x8EA5A8E2 0x2160F +0x8EA5A8E3 0x2170B +0x8EA5A8E4 0x21703 +0x8EA5A8E5 0x2172B +0x8EA5A8E6 0x21709 +0x8EA5A8E7 0x21728 +0x8EA5A8E8 0x2172C +0x8EA5A8E9 0x21725 +0x8EA5A8EA 0x21727 +0x8EA5A8EB 0x2170F +0x8EA5A8EC 0x219E9 +0x8EA5A8ED 0x219EC +0x8EA5A8EE 0x3753 +0x8EA5A8EF 0x21B27 +0x8EA5A8F0 0x21B73 +0x8EA5A8F1 0x21BE2 +0x8EA5A8F2 0x21BE6 +0x8EA5A8F3 0x2F876 +0x8EA5A8F4 0x21C61 +0x8EA5A8F5 0x21C51 +0x8EA5A8F6 0x21D12 +0x8EA5A8F7 0x21D0E +0x8EA5A8F8 0x21DAD +0x8EA5A8F9 0x21DAF +0x8EA5A8FA 0x21DB1 +0x8EA5A8FB 0x21DD3 +0x8EA5A8FC 0x22094 +0x8EA5A8FD 0x22092 +0x8EA5A8FE 0x22090 +0x8EA5A9A1 0x2209D +0x8EA5A9A2 0x22093 +0x8EA5A9A3 0x22095 +0x8EA5A9A4 0x22098 +0x8EA5A9A5 0x22097 +0x8EA5A9A6 0x3880 +0x8EA5A9A7 0x2F88A +0x8EA5A9A8 0x22207 +0x8EA5A9A9 0x2220B +0x8EA5A9AA 0x22208 +0x8EA5A9AB 0x223D9 +0x8EA5A9AC 0x223D5 +0x8EA5A9AD 0x224D7 +0x8EA5A9AE 0x224DF +0x8EA5A9AF 0x38DD +0x8EA5A9B0 0x224DE +0x8EA5A9B1 0x224E3 +0x8EA5A9B2 0x224E2 +0x8EA5A9B3 0x38DE +0x8EA5A9B4 0x22647 +0x8EA5A9B5 0x3922 +0x8EA5A9B6 0x2263D +0x8EA5A9B7 0x22638 +0x8EA5A9B8 0x22A44 +0x8EA5A9B9 0x22A3A +0x8EA5A9BA 0x22AB8 +0x8EA5A9BB 0x22B2A +0x8EA5A9BC 0x22B00 +0x8EA5A9BD 0x22AF3 +0x8EA5A9BE 0x22AF2 +0x8EA5A9BF 0x22AEB +0x8EA5A9C0 0x22AFA +0x8EA5A9C1 0x22AED +0x8EA5A9C2 0x22AEC +0x8EA5A9C3 0x22AFF +0x8EA5A9C4 0x22AFB +0x8EA5A9C5 0x6306 +0x8EA5A9C6 0x22B4E +0x8EA5A9C7 0x22AEF +0x8EA5A9C8 0x22AF7 +0x8EA5A9C9 0x22F10 +0x8EA5A9CA 0x22F11 +0x8EA5A9CB 0x22F0C +0x8EA5A9CC 0x22F0B +0x8EA5A9CD 0x230DD +0x8EA5A9CE 0x23130 +0x8EA5A9CF 0x3ADB +0x8EA5A9D0 0x2317A +0x8EA5A9D1 0x23177 +0x8EA5A9D2 0x23328 +0x8EA5A9D3 0x23327 +0x8EA5A9D4 0x23365 +0x8EA5A9D5 0x2340E +0x8EA5A9D6 0x2340B +0x8EA5A9D7 0x23441 +0x8EA5A9D8 0x23413 +0x8EA5A9D9 0x2340F +0x8EA5A9DA 0x23412 +0x8EA5A9DB 0x23430 +0x8EA5A9DC 0x238A0 +0x8EA5A9DD 0x238A3 +0x8EA5A9DE 0x2389E +0x8EA5A9DF 0x23897 +0x8EA5A9E0 0x238A1 +0x8EA5A9E1 0x2389D +0x8EA5A9E2 0x2389B +0x8EA5A9E3 0x23963 +0x8EA5A9E4 0x239E3 +0x8EA5A9E5 0x239E4 +0x8EA5A9E6 0x239E6 +0x8EA5A9E7 0x239E7 +0x8EA5A9E8 0x239DD +0x8EA5A9E9 0x6B85 +0x8EA5A9EA 0x239EC +0x8EA5A9EB 0x239E5 +0x8EA5A9EC 0x239F1 +0x8EA5A9ED 0x23B3B +0x8EA5A9EE 0x23B39 +0x8EA5A9EF 0x23B3A +0x8EA5A9F0 0x23B3C +0x8EA5A9F1 0x23B3D +0x8EA5A9F2 0x23B47 +0x8EA5A9F3 0x23B3F +0x8EA5A9F4 0x23B44 +0x8EA5A9F5 0x23C48 +0x8EA5A9F6 0x23C49 +0x8EA5A9F7 0x23C60 +0x8EA5A9F8 0x23CE3 +0x8EA5A9F9 0x23CE9 +0x8EA5A9FA 0x23CF0 +0x8EA5A9FB 0x3CDA +0x8EA5A9FC 0x3CDB +0x8EA5A9FD 0x23CF2 +0x8EA5A9FE 0x23CED +0x8EA5AAA1 0x23CEC +0x8EA5AAA2 0x23CE6 +0x8EA5AAA3 0x23D16 +0x8EA5AAA4 0x3CD7 +0x8EA5AAA5 0x241BC +0x8EA5AAA6 0x241BE +0x8EA5AAA7 0x241C0 +0x8EA5AAA8 0x241E0 +0x8EA5AAA9 0x24500 +0x8EA5AAAA 0x24502 +0x8EA5AAAB 0x244FE +0x8EA5AAAC 0x2455E +0x8EA5AAAD 0x245B3 +0x8EA5AAAE 0x245B7 +0x8EA5AAAF 0x2463A +0x8EA5AAB0 0x24639 +0x8EA5AAB1 0x2463E +0x8EA5AAB2 0x24638 +0x8EA5AAB3 0x2463D +0x8EA5AAB4 0x2464F +0x8EA5AAB5 0x2476E +0x8EA5AAB6 0x2475F +0x8EA5AAB7 0x24781 +0x8EA5AAB8 0x24782 +0x8EA5AAB9 0x24771 +0x8EA5AABA 0x2477B +0x8EA5AABB 0x24779 +0x8EA5AABC 0x24777 +0x8EA5AABD 0x24773 +0x8EA5AABE 0x2476F +0x8EA5AABF 0x24797 +0x8EA5AAC0 0x2477E +0x8EA5AAC1 0x248FC +0x8EA5AAC2 0x24911 +0x8EA5AAC3 0x24932 +0x8EA5AAC4 0x24931 +0x8EA5AAC5 0x24910 +0x8EA5AAC6 0x24AEC +0x8EA5AAC7 0x24AEB +0x8EA5AAC8 0x24B2C +0x8EA5AAC9 0x24B2D +0x8EA5AACA 0x24BDA +0x8EA5AACB 0x24C2E +0x8EA5AACC 0x24C2C +0x8EA5AACD 0x24C2A +0x8EA5AACE 0x24C33 +0x8EA5AACF 0x24C4B +0x8EA5AAD0 0x24D18 +0x8EA5AAD1 0x24D42 +0x8EA5AAD2 0x24D3B +0x8EA5AAD3 0x24D3F +0x8EA5AAD4 0x24D41 +0x8EA5AAD5 0x24D43 +0x8EA5AAD6 0x24D3C +0x8EA5AAD7 0x24F4C +0x8EA5AAD8 0x24F4A +0x8EA5AAD9 0x24F49 +0x8EA5AADA 0x24F56 +0x8EA5AADB 0x24FCF +0x8EA5AADC 0x25047 +0x8EA5AADD 0x25048 +0x8EA5AADE 0x25046 +0x8EA5AADF 0x2511B +0x8EA5AAE0 0x25111 +0x8EA5AAE1 0x25114 +0x8EA5AAE2 0x2511D +0x8EA5AAE3 0x25117 +0x8EA5AAE4 0x2511E +0x8EA5AAE5 0x2510B +0x8EA5AAE6 0x2511C +0x8EA5AAE7 0x25112 +0x8EA5AAE8 0x25116 +0x8EA5AAE9 0x2510D +0x8EA5AAEA 0x25115 +0x8EA5AAEB 0x25113 +0x8EA5AAEC 0x25118 +0x8EA5AAED 0x401A +0x8EA5AAEE 0x253AC +0x8EA5AAEF 0x25444 +0x8EA5AAF0 0x2542C +0x8EA5AAF1 0x25445 +0x8EA5AAF2 0x25766 +0x8EA5AAF3 0x2576E +0x8EA5AAF4 0x25765 +0x8EA5AAF5 0x25768 +0x8EA5AAF6 0x25784 +0x8EA5AAF7 0x25938 +0x8EA5AAF8 0x2593B +0x8EA5AAF9 0x2593A +0x8EA5AAFA 0x2593F +0x8EA5AAFB 0x25ADF +0x8EA5AAFC 0x25ADD +0x8EA5AAFD 0x25ADE +0x8EA5AAFE 0x25AE2 +0x8EA5ABA1 0x41D6 +0x8EA5ABA2 0x25E2C +0x8EA5ABA3 0x25E2F +0x8EA5ABA4 0x25F8F +0x8EA5ABA5 0x25F90 +0x8EA5ABA6 0x25F8C +0x8EA5ABA7 0x25F93 +0x8EA5ABA8 0x26225 +0x8EA5ABA9 0x26288 +0x8EA5ABAA 0x262A7 +0x8EA5ABAB 0x263F7 +0x8EA5ABAC 0x264BB +0x8EA5ABAD 0x26538 +0x8EA5ABAE 0x26539 +0x8EA5ABAF 0x26537 +0x8EA5ABB0 0x26614 +0x8EA5ABB1 0x2666E +0x8EA5ABB2 0x2667B +0x8EA5ABB3 0x43DE +0x8EA5ABB4 0x2666C +0x8EA5ABB5 0x2667F +0x8EA5ABB6 0x26678 +0x8EA5ABB7 0x2667A +0x8EA5ABB8 0x2666F +0x8EA5ABB9 0x43E5 +0x8EA5ABBA 0x268FE +0x8EA5ABBB 0x26B48 +0x8EA5ABBC 0x26B4B +0x8EA5ABBD 0x26B41 +0x8EA5ABBE 0x26B49 +0x8EA5ABBF 0x26B3B +0x8EA5ABC0 0x2722D +0x8EA5ABC1 0x275E3 +0x8EA5ABC2 0x2761A +0x8EA5ABC3 0x2760D +0x8EA5ABC4 0x27613 +0x8EA5ABC5 0x27611 +0x8EA5ABC6 0x2761C +0x8EA5ABC7 0x4672 +0x8EA5ABC8 0x278B5 +0x8EA5ABC9 0x46AF +0x8EA5ABCA 0x27C29 +0x8EA5ABCB 0x27CA1 +0x8EA5ABCC 0x27D24 +0x8EA5ABCD 0x27FBB +0x8EA5ABCE 0x282A1 +0x8EA5ABCF 0x28483 +0x8EA5ABD0 0x2848D +0x8EA5ABD1 0x28487 +0x8EA5ABD2 0x28485 +0x8EA5ABD3 0x2848A +0x8EA5ABD4 0x284A3 +0x8EA5ABD5 0x28489 +0x8EA5ABD6 0x28484 +0x8EA5ABD7 0x284A2 +0x8EA5ABD8 0x286B1 +0x8EA5ABD9 0x286B0 +0x8EA5ABDA 0x286AF +0x8EA5ABDB 0x286B6 +0x8EA5ABDC 0x286C9 +0x8EA5ABDD 0x286CA +0x8EA5ABDE 0x286C8 +0x8EA5ABDF 0x286B4 +0x8EA5ABE0 0x28C59 +0x8EA5ABE1 0x28CC9 +0x8EA5ABE2 0x28E41 +0x8EA5ABE3 0x28E4C +0x8EA5ABE4 0x49C4 +0x8EA5ABE5 0x28E45 +0x8EA5ABE6 0x28E5A +0x8EA5ABE7 0x200B9 +0x8EA5ABE8 0x20294 +0x8EA5ABE9 0x2026E +0x8EA5ABEA 0x202A2 +0x8EA5ABEB 0x20267 +0x8EA5ABEC 0x3463 +0x8EA5ABED 0x202A3 +0x8EA5ABEE 0x20276 +0x8EA5ABEF 0x2026C +0x8EA5ABF0 0x20264 +0x8EA5ABF1 0x202A5 +0x8EA5ABF2 0x20230 +0x8EA5ABF3 0x202A6 +0x8EA5ABF4 0x20269 +0x8EA5ABF5 0x202A4 +0x8EA5ABF6 0x20490 +0x8EA5ABF7 0x2055F +0x8EA5ABF8 0x20560 +0x8EA5ABF9 0x205DA +0x8EA5ABFA 0x205D8 +0x8EA5ABFB 0x205DD +0x8EA5ABFC 0x34EC +0x8EA5ABFD 0x20759 +0x8EA5ABFE 0x2075B +0x8EA5ACA1 0x2075A +0x8EA5ACA2 0x20739 +0x8EA5ACA3 0x20734 +0x8EA5ACA4 0x20744 +0x8EA5ACA5 0x20733 +0x8EA5ACA6 0x2073C +0x8EA5ACA7 0x20758 +0x8EA5ACA8 0x2076A +0x8EA5ACA9 0x2086F +0x8EA5ACAA 0x20872 +0x8EA5ACAB 0x20870 +0x8EA5ACAC 0x20871 +0x8EA5ACAD 0x2086E +0x8EA5ACAE 0x208F0 +0x8EA5ACAF 0x208EB +0x8EA5ACB0 0x20949 +0x8EA5ACB1 0x2094C +0x8EA5ACB2 0x209F5 +0x8EA5ACB3 0x20A20 +0x8EA5ACB4 0x20A6A +0x8EA5ACB5 0x20A72 +0x8EA5ACB6 0x20B4B +0x8EA5ACB7 0x20B5D +0x8EA5ACB8 0x20C50 +0x8EA5ACB9 0x20CF9 +0x8EA5ACBA 0x20CFA +0x8EA5ACBB 0x20CFB +0x8EA5ACBC 0x20D23 +0x8EA5ACBD 0x20CB7 +0x8EA5ACBE 0x20D22 +0x8EA5ACBF 0x20CB5 +0x8EA5ACC0 0x20CC4 +0x8EA5ACC1 0x20CB4 +0x8EA5ACC2 0x20CEF +0x8EA5ACC3 0x3598 +0x8EA5ACC4 0x20CCD +0x8EA5ACC5 0x20CF0 +0x8EA5ACC6 0x20CB8 +0x8EA5ACC7 0x20CCB +0x8EA5ACC8 0x20CF1 +0x8EA5ACC9 0x20CBA +0x8EA5ACCA 0x20D03 +0x8EA5ACCB 0x20CF8 +0x8EA5ACCC 0x20CB6 +0x8EA5ACCD 0x20CBC +0x8EA5ACCE 0x20CB3 +0x8EA5ACCF 0x20D21 +0x8EA5ACD0 0x20CF7 +0x8EA5ACD1 0x20CC2 +0x8EA5ACD2 0x20CBE +0x8EA5ACD3 0x20CC9 +0x8EA5ACD4 0x20CBD +0x8EA5ACD5 0x20CCE +0x8EA5ACD6 0x20CB9 +0x8EA5ACD7 0x20CC7 +0x8EA5ACD8 0x20CCA +0x8EA5ACD9 0x20CCC +0x8EA5ACDA 0x20D26 +0x8EA5ACDB 0x211E4 +0x8EA5ACDC 0x211E0 +0x8EA5ACDD 0x211F0 +0x8EA5ACDE 0x212EC +0x8EA5ACDF 0x21324 +0x8EA5ACE0 0x21318 +0x8EA5ACE1 0x2132F +0x8EA5ACE2 0x21325 +0x8EA5ACE3 0x21528 +0x8EA5ACE4 0x21522 +0x8EA5ACE5 0x2156A +0x8EA5ACE6 0x20157 +0x8EA5ACE7 0x21594 +0x8EA5ACE8 0x21592 +0x8EA5ACE9 0x2159C +0x8EA5ACEA 0x21622 +0x8EA5ACEB 0x21630 +0x8EA5ACEC 0x2161D +0x8EA5ACED 0x21623 +0x8EA5ACEE 0x21735 +0x8EA5ACEF 0x21733 +0x8EA5ACF0 0x2172F +0x8EA5ACF1 0x2174D +0x8EA5ACF2 0x21731 +0x8EA5ACF3 0x2175B +0x8EA5ACF4 0x2175A +0x8EA5ACF5 0x21732 +0x8EA5ACF6 0x2175C +0x8EA5ACF7 0x21759 +0x8EA5ACF8 0x2175D +0x8EA5ACF9 0x21969 +0x8EA5ACFA 0x2196D +0x8EA5ACFB 0x22232 +0x8EA5ACFC 0x3758 +0x8EA5ACFD 0x21A0A +0x8EA5ACFE 0x21A20 +0x8EA5ADA1 0x21A1F +0x8EA5ADA2 0x21A0D +0x8EA5ADA3 0x21BE8 +0x8EA5ADA4 0x21BEC +0x8EA5ADA5 0x21C77 +0x8EA5ADA6 0x21C70 +0x8EA5ADA7 0x21C71 +0x8EA5ADA8 0x21DF8 +0x8EA5ADA9 0x21DD6 +0x8EA5ADAA 0x21DD9 +0x8EA5ADAB 0x21DDE +0x8EA5ADAC 0x21DD5 +0x8EA5ADAD 0x21DE1 +0x8EA5ADAE 0x37D3 +0x8EA5ADAF 0x21DE2 +0x8EA5ADB0 0x21DDD +0x8EA5ADB1 0x21DE0 +0x8EA5ADB2 0x21E0E +0x8EA5ADB3 0x21E08 +0x8EA5ADB4 0x21DDC +0x8EA5ADB5 0x21E0A +0x8EA5ADB6 0x21E0C +0x8EA5ADB7 0x220B4 +0x8EA5ADB8 0x220B1 +0x8EA5ADB9 0x220B6 +0x8EA5ADBA 0x220BC +0x8EA5ADBB 0x2221D +0x8EA5ADBC 0x22224 +0x8EA5ADBD 0x22219 +0x8EA5ADBE 0x2221B +0x8EA5ADBF 0x22222 +0x8EA5ADC0 0x2221A +0x8EA5ADC1 0x2221C +0x8EA5ADC2 0x22221 +0x8EA5ADC3 0x223E6 +0x8EA5ADC4 0x223E4 +0x8EA5ADC5 0x223E7 +0x8EA5ADC6 0x223EA +0x8EA5ADC7 0x38E2 +0x8EA5ADC8 0x2F89B +0x8EA5ADC9 0x224F0 +0x8EA5ADCA 0x224F5 +0x8EA5ADCB 0x224EF +0x8EA5ADCC 0x22642 +0x8EA5ADCD 0x2266E +0x8EA5ADCE 0x2263C +0x8EA5ADCF 0x22697 +0x8EA5ADD0 0x2268C +0x8EA5ADD1 0x22681 +0x8EA5ADD2 0x22671 +0x8EA5ADD3 0x226CE +0x8EA5ADD4 0x226BA +0x8EA5ADD5 0x2267A +0x8EA5ADD6 0x2267E +0x8EA5ADD7 0x3954 +0x8EA5ADD8 0x22672 +0x8EA5ADD9 0x226BB +0x8EA5ADDA 0x392F +0x8EA5ADDB 0x22673 +0x8EA5ADDC 0x22682 +0x8EA5ADDD 0x39B6 +0x8EA5ADDE 0x229BA +0x8EA5ADDF 0x229B8 +0x8EA5ADE0 0x22A4B +0x8EA5ADE1 0x22A48 +0x8EA5ADE2 0x22B2B +0x8EA5ADE3 0x22AF4 +0x8EA5ADE4 0x22B2C +0x8EA5ADE5 0x22B42 +0x8EA5ADE6 0x22B48 +0x8EA5ADE7 0x22B44 +0x8EA5ADE8 0x22B45 +0x8EA5ADE9 0x22B3C +0x8EA5ADEA 0x22B37 +0x8EA5ADEB 0x22B33 +0x8EA5ADEC 0x22B41 +0x8EA5ADED 0x22B32 +0x8EA5ADEE 0x22B87 +0x8EA5ADEF 0x22F27 +0x8EA5ADF0 0x22F23 +0x8EA5ADF1 0x22F2D +0x8EA5ADF2 0x22F1F +0x8EA5ADF3 0x22F2C +0x8EA5ADF4 0x22F28 +0x8EA5ADF5 0x23075 +0x8EA5ADF6 0x23074 +0x8EA5ADF7 0x230E7 +0x8EA5ADF8 0x23132 +0x8EA5ADF9 0x23131 +0x8EA5ADFA 0x23199 +0x8EA5ADFB 0x23196 +0x8EA5ADFC 0x23198 +0x8EA5ADFD 0x2319D +0x8EA5ADFE 0x23192 +0x8EA5AEA1 0x23194 +0x8EA5AEA2 0x23195 +0x8EA5AEA3 0x23197 +0x8EA5AEA4 0x266B9 +0x8EA5AEA5 0x3B35 +0x8EA5AEA6 0x23411 +0x8EA5AEA7 0x2343B +0x8EA5AEA8 0x23479 +0x8EA5AEA9 0x23442 +0x8EA5AEAA 0x23443 +0x8EA5AEAB 0x3B5D +0x8EA5AEAC 0x23478 +0x8EA5AEAD 0x238AC +0x8EA5AEAE 0x3C29 +0x8EA5AEAF 0x238B1 +0x8EA5AEB0 0x238B4 +0x8EA5AEB1 0x238B3 +0x8EA5AEB2 0x238AF +0x8EA5AEB3 0x238AA +0x8EA5AEB4 0x238B2 +0x8EA5AEB5 0x23968 +0x8EA5AEB6 0x239F2 +0x8EA5AEB7 0x239FE +0x8EA5AEB8 0x239F8 +0x8EA5AEB9 0x239F9 +0x8EA5AEBA 0x239FF +0x8EA5AEBB 0x239F5 +0x8EA5AEBC 0x239F7 +0x8EA5AEBD 0x239FD +0x8EA5AEBE 0x23A00 +0x8EA5AEBF 0x23A88 +0x8EA5AEC0 0x23B6E +0x8EA5AEC1 0x23B5D +0x8EA5AEC2 0x23B63 +0x8EA5AEC3 0x23B60 +0x8EA5AEC4 0x23C61 +0x8EA5AEC5 0x23D37 +0x8EA5AEC6 0x23D71 +0x8EA5AEC7 0x23D23 +0x8EA5AEC8 0x23D22 +0x8EA5AEC9 0x23D1F +0x8EA5AECA 0x23D25 +0x8EA5AECB 0x241FD +0x8EA5AECC 0x24211 +0x8EA5AECD 0x24223 +0x8EA5AECE 0x241F0 +0x8EA5AECF 0x241EF +0x8EA5AED0 0x2450E +0x8EA5AED1 0x2450C +0x8EA5AED2 0x245BA +0x8EA5AED3 0x3E1F +0x8EA5AED4 0x24652 +0x8EA5AED5 0x24655 +0x8EA5AED6 0x24653 +0x8EA5AED7 0x24654 +0x8EA5AED8 0x24651 +0x8EA5AED9 0x24658 +0x8EA5AEDA 0x247B0 +0x8EA5AEDB 0x2479F +0x8EA5AEDC 0x3E72 +0x8EA5AEDD 0x247A1 +0x8EA5AEDE 0x2479A +0x8EA5AEDF 0x247BE +0x8EA5AEE0 0x247A0 +0x8EA5AEE1 0x24937 +0x8EA5AEE2 0x3F0B +0x8EA5AEE3 0x24AF1 +0x8EA5AEE4 0x24AF2 +0x8EA5AEE5 0x24B34 +0x8EA5AEE6 0x24B37 +0x8EA5AEE7 0x24B35 +0x8EA5AEE8 0x2238C +0x8EA5AEE9 0x24BDF +0x8EA5AEEA 0x24C4C +0x8EA5AEEB 0x24C4E +0x8EA5AEEC 0x24C64 +0x8EA5AEED 0x24C63 +0x8EA5AEEE 0x24C36 +0x8EA5AEEF 0x24D58 +0x8EA5AEF0 0x24D68 +0x8EA5AEF1 0x24D5B +0x8EA5AEF2 0x24D5F +0x8EA5AEF3 0x24D59 +0x8EA5AEF4 0x24D65 +0x8EA5AEF5 0x24D60 +0x8EA5AEF6 0x24D5E +0x8EA5AEF7 0x24FD5 +0x8EA5AEF8 0x24FD6 +0x8EA5AEF9 0x2504E +0x8EA5AEFA 0x25052 +0x8EA5AEFB 0x25135 +0x8EA5AEFC 0x25139 +0x8EA5AEFD 0x25158 +0x8EA5AEFE 0x25141 +0x8EA5AFA1 0x25157 +0x8EA5AFA2 0x25138 +0x8EA5AFA3 0x2513D +0x8EA5AFA4 0x25132 +0x8EA5AFA5 0x25144 +0x8EA5AFA6 0x2F944 +0x8EA5AFA7 0x25363 +0x8EA5AFA8 0x25362 +0x8EA5AFA9 0x253B8 +0x8EA5AFAA 0x253B0 +0x8EA5AFAB 0x253B1 +0x8EA5AFAC 0x2544D +0x8EA5AFAD 0x25463 +0x8EA5AFAE 0x25470 +0x8EA5AFAF 0x2544B +0x8EA5AFB0 0x2544F +0x8EA5AFB1 0x2544E +0x8EA5AFB2 0x25453 +0x8EA5AFB3 0x25447 +0x8EA5AFB4 0x40A2 +0x8EA5AFB5 0x25454 +0x8EA5AFB6 0x25452 +0x8EA5AFB7 0x25459 +0x8EA5AFB8 0x2547E +0x8EA5AFB9 0x2562B +0x8EA5AFBA 0x2562E +0x8EA5AFBB 0x2577F +0x8EA5AFBC 0x2577E +0x8EA5AFBD 0x25781 +0x8EA5AFBE 0x25783 +0x8EA5AFBF 0x25947 +0x8EA5AFC0 0x25954 +0x8EA5AFC1 0x2594D +0x8EA5AFC2 0x2594C +0x8EA5AFC3 0x2594B +0x8EA5AFC4 0x25957 +0x8EA5AFC5 0x25A65 +0x8EA5AFC6 0x25A64 +0x8EA5AFC7 0x25A61 +0x8EA5AFC8 0x25A62 +0x8EA5AFC9 0x25AF0 +0x8EA5AFCA 0x25AF3 +0x8EA5AFCB 0x25AF9 +0x8EA5AFCC 0x25AF4 +0x8EA5AFCD 0x25AF5 +0x8EA5AFCE 0x25AEF +0x8EA5AFCF 0x25AF8 +0x8EA5AFD0 0x25AFC +0x8EA5AFD1 0x25AF7 +0x8EA5AFD2 0x25AFD +0x8EA5AFD3 0x25B17 +0x8EA5AFD4 0x25E34 +0x8EA5AFD5 0x25E36 +0x8EA5AFD6 0x25E38 +0x8EA5AFD7 0x25FAF +0x8EA5AFD8 0x25FAE +0x8EA5AFD9 0x25FAC +0x8EA5AFDA 0x25FA2 +0x8EA5AFDB 0x26228 +0x8EA5AFDC 0x22EC2 +0x8EA5AFDD 0x2629C +0x8EA5AFDE 0x262B3 +0x8EA5AFDF 0x26290 +0x8EA5AFE0 0x26406 +0x8EA5AFE1 0x26404 +0x8EA5AFE2 0x2640B +0x8EA5AFE3 0x26405 +0x8EA5AFE4 0x26540 +0x8EA5AFE5 0x2654F +0x8EA5AFE6 0x266AB +0x8EA5AFE7 0x2669D +0x8EA5AFE8 0x266B8 +0x8EA5AFE9 0x266B2 +0x8EA5AFEA 0x266D2 +0x8EA5AFEB 0x266CF +0x8EA5AFEC 0x266A2 +0x8EA5AFED 0x43EC +0x8EA5AFEE 0x266A5 +0x8EA5AFEF 0x266A9 +0x8EA5AFF0 0x266A7 +0x8EA5AFF1 0x266D0 +0x8EA5AFF2 0x26902 +0x8EA5AFF3 0x269CF +0x8EA5AFF4 0x269D0 +0x8EA5AFF5 0x26A16 +0x8EA5AFF6 0x26A19 +0x8EA5AFF7 0x26B75 +0x8EA5AFF8 0x26B71 +0x8EA5AFF9 0x26B91 +0x8EA5AFFA 0x26B72 +0x8EA5AFFB 0x26B8E +0x8EA5AFFC 0x26B6D +0x8EA5AFFD 0x26B88 +0x8EA5AFFE 0x26B73 +0x8EA5B0A1 0x44BB +0x8EA5B0A2 0x26B81 +0x8EA5B0A3 0x26B76 +0x8EA5B0A4 0x26B7B +0x8EA5B0A5 0x26B7F +0x8EA5B0A6 0x26B90 +0x8EA5B0A7 0x26B78 +0x8EA5B0A8 0x2724B +0x8EA5B0A9 0x27248 +0x8EA5B0AA 0x2725B +0x8EA5B0AB 0x27251 +0x8EA5B0AC 0x2723D +0x8EA5B0AD 0x27240 +0x8EA5B0AE 0x27246 +0x8EA5B0AF 0x2724D +0x8EA5B0B0 0x2723B +0x8EA5B0B1 0x2724A +0x8EA5B0B2 0x27241 +0x8EA5B0B3 0x2723E +0x8EA5B0B4 0x2724E +0x8EA5B0B5 0x275AC +0x8EA5B0B6 0x275E6 +0x8EA5B0B7 0x275E9 +0x8EA5B0B8 0x27629 +0x8EA5B0B9 0x4621 +0x8EA5B0BA 0x27633 +0x8EA5B0BB 0x2762E +0x8EA5B0BC 0x2761E +0x8EA5B0BD 0x461F +0x8EA5B0BE 0x2F9C5 +0x8EA5B0BF 0x27622 +0x8EA5B0C0 0x27627 +0x8EA5B0C1 0x277E7 +0x8EA5B0C2 0x2780B +0x8EA5B0C3 0x27966 +0x8EA5B0C4 0x27BAD +0x8EA5B0C5 0x27BAE +0x8EA5B0C6 0x8C38 +0x8EA5B0C7 0x27C2B +0x8EA5B0C8 0x27C2A +0x8EA5B0C9 0x27D2C +0x8EA5B0CA 0x27D2D +0x8EA5B0CB 0x4791 +0x8EA5B0CC 0x4796 +0x8EA5B0CD 0x27E8F +0x8EA5B0CE 0x27E93 +0x8EA5B0CF 0x27FC6 +0x8EA5B0D0 0x27FC5 +0x8EA5B0D1 0x28215 +0x8EA5B0D2 0x28213 +0x8EA5B0D3 0x282B1 +0x8EA5B0D4 0x282A9 +0x8EA5B0D5 0x8ECE +0x8EA5B0D6 0x284A8 +0x8EA5B0D7 0x284AB +0x8EA5B0D8 0x284BE +0x8EA5B0D9 0x284AC +0x8EA5B0DA 0x284A9 +0x8EA5B0DB 0x284A6 +0x8EA5B0DC 0x284C1 +0x8EA5B0DD 0x286CC +0x8EA5B0DE 0x286D1 +0x8EA5B0DF 0x286D3 +0x8EA5B0E0 0x286E4 +0x8EA5B0E1 0x286CB +0x8EA5B0E2 0x286E1 +0x8EA5B0E3 0x286D2 +0x8EA5B0E4 0x286E3 +0x8EA5B0E5 0x286CF +0x8EA5B0E6 0x286D0 +0x8EA5B0E7 0x286E5 +0x8EA5B0E8 0x2870E +0x8EA5B0E9 0x28CCC +0x8EA5B0EA 0x28CCA +0x8EA5B0EB 0x28CCB +0x8EA5B0EC 0x28E5C +0x8EA5B0ED 0x28E61 +0x8EA5B0EE 0x28E5D +0x8EA5B0EF 0x28E59 +0x8EA5B0F0 0x29077 +0x8EA5B0F1 0x29684 +0x8EA5B0F2 0x20041 +0x8EA5B0F3 0x200FD +0x8EA5B0F4 0x2011A +0x8EA5B0F5 0x20163 +0x8EA5B0F6 0x202B6 +0x8EA5B0F7 0x202B2 +0x8EA5B0F8 0x202E9 +0x8EA5B0F9 0x202E7 +0x8EA5B0FA 0x202D6 +0x8EA5B0FB 0x20330 +0x8EA5B0FC 0x202EC +0x8EA5B0FD 0x202DD +0x8EA5B0FE 0x202E8 +0x8EA5B1A1 0x202B0 +0x8EA5B1A2 0x202B5 +0x8EA5B1A3 0x202E1 +0x8EA5B1A4 0x20498 +0x8EA5B1A5 0x20499 +0x8EA5B1A6 0x34BC +0x8EA5B1A7 0x20593 +0x8EA5B1A8 0x205E5 +0x8EA5B1A9 0x34D8 +0x8EA5B1AA 0x20760 +0x8EA5B1AB 0x2075E +0x8EA5B1AC 0x34F4 +0x8EA5B1AD 0x2087B +0x8EA5B1AE 0x208F1 +0x8EA5B1AF 0x208F3 +0x8EA5B1B0 0x20A7F +0x8EA5B1B1 0x2F838 +0x8EA5B1B2 0x20B57 +0x8EA5B1B3 0x20B58 +0x8EA5B1B4 0x20D39 +0x8EA5B1B5 0x20DA7 +0x8EA5B1B6 0x20D35 +0x8EA5B1B7 0x20D60 +0x8EA5B1B8 0x20D51 +0x8EA5B1B9 0x20D62 +0x8EA5B1BA 0x20D42 +0x8EA5B1BB 0x20D3C +0x8EA5B1BC 0x20D43 +0x8EA5B1BD 0x20DAB +0x8EA5B1BE 0x20DA9 +0x8EA5B1BF 0x20DB4 +0x8EA5B1C0 0x20D79 +0x8EA5B1C1 0x20D6A +0x8EA5B1C2 0x20D3B +0x8EA5B1C3 0x20DAA +0x8EA5B1C4 0x20D33 +0x8EA5B1C5 0x20D37 +0x8EA5B1C6 0x20D27 +0x8EA5B1C7 0x20DA8 +0x8EA5B1C8 0x20D70 +0x8EA5B1C9 0x20D2F +0x8EA5B1CA 0x20D36 +0x8EA5B1CB 0x20DB5 +0x8EA5B1CC 0x20D30 +0x8EA5B1CD 0x20D3A +0x8EA5B1CE 0x20D38 +0x8EA5B1CF 0x20DB1 +0x8EA5B1D0 0x20DAC +0x8EA5B1D1 0x20D2E +0x8EA5B1D2 0x20D75 +0x8EA5B1D3 0x20DB0 +0x8EA5B1D4 0x211F7 +0x8EA5B1D5 0x21200 +0x8EA5B1D6 0x211F1 +0x8EA5B1D7 0x211F3 +0x8EA5B1D8 0x21360 +0x8EA5B1D9 0x21361 +0x8EA5B1DA 0x21332 +0x8EA5B1DB 0x2132D +0x8EA5B1DC 0x2134A +0x8EA5B1DD 0x2132A +0x8EA5B1DE 0x21567 +0x8EA5B1DF 0x215A2 +0x8EA5B1E0 0x215A3 +0x8EA5B1E1 0x2159E +0x8EA5B1E2 0x215A4 +0x8EA5B1E3 0x21644 +0x8EA5B1E4 0x21632 +0x8EA5B1E5 0x2179B +0x8EA5B1E6 0x21798 +0x8EA5B1E7 0x21799 +0x8EA5B1E8 0x2179A +0x8EA5B1E9 0x21766 +0x8EA5B1EA 0x21762 +0x8EA5B1EB 0x2176B +0x8EA5B1EC 0x24562 +0x8EA5B1ED 0x21767 +0x8EA5B1EE 0x21A3B +0x8EA5B1EF 0x21A23 +0x8EA5B1F0 0x21A29 +0x8EA5B1F1 0x21B7E +0x8EA5B1F2 0x21BF3 +0x8EA5B1F3 0x3785 +0x8EA5B1F4 0x21BF5 +0x8EA5B1F5 0x3783 +0x8EA5B1F6 0x21C80 +0x8EA5B1F7 0x21C7E +0x8EA5B1F8 0x21C7C +0x8EA5B1F9 0x21C7F +0x8EA5B1FA 0x21C7D +0x8EA5B1FB 0x21C81 +0x8EA5B1FC 0x21E25 +0x8EA5B1FD 0x21E29 +0x8EA5B1FE 0x21E17 +0x8EA5B2A1 0x21E63 +0x8EA5B2A2 0x21E67 +0x8EA5B2A3 0x21E65 +0x8EA5B2A4 0x21E2A +0x8EA5B2A5 0x21E68 +0x8EA5B2A6 0x21E26 +0x8EA5B2A7 0x21E64 +0x8EA5B2A8 0x21E1B +0x8EA5B2A9 0x21E62 +0x8EA5B2AA 0x21E69 +0x8EA5B2AB 0x21FFE +0x8EA5B2AC 0x22044 +0x8EA5B2AD 0x22042 +0x8EA5B2AE 0x220B7 +0x8EA5B2AF 0x220D2 +0x8EA5B2B0 0x220D4 +0x8EA5B2B1 0x220D7 +0x8EA5B2B2 0x220DC +0x8EA5B2B3 0x220D1 +0x8EA5B2B4 0x220D5 +0x8EA5B2B5 0x220CD +0x8EA5B2B6 0x220D8 +0x8EA5B2B7 0x2219A +0x8EA5B2B8 0x22242 +0x8EA5B2B9 0x22235 +0x8EA5B2BA 0x22258 +0x8EA5B2BB 0x22234 +0x8EA5B2BC 0x2223C +0x8EA5B2BD 0x2223B +0x8EA5B2BE 0x2223E +0x8EA5B2BF 0x2223D +0x8EA5B2C0 0x2225A +0x8EA5B2C1 0x22241 +0x8EA5B2C2 0x22238 +0x8EA5B2C3 0x22245 +0x8EA5B2C4 0x22233 +0x8EA5B2C5 0x22326 +0x8EA5B2C6 0x38BA +0x8EA5B2C7 0x223F7 +0x8EA5B2C8 0x223EF +0x8EA5B2C9 0x223F0 +0x8EA5B2CA 0x223EE +0x8EA5B2CB 0x2249D +0x8EA5B2CC 0x22506 +0x8EA5B2CD 0x22511 +0x8EA5B2CE 0x22508 +0x8EA5B2CF 0x22502 +0x8EA5B2D0 0x2250A +0x8EA5B2D1 0x22507 +0x8EA5B2D2 0x22691 +0x8EA5B2D3 0x2268E +0x8EA5B2D4 0x22685 +0x8EA5B2D5 0x226E8 +0x8EA5B2D6 0x22717 +0x8EA5B2D7 0x226D4 +0x8EA5B2D8 0x3969 +0x8EA5B2D9 0x226C4 +0x8EA5B2DA 0x226D5 +0x8EA5B2DB 0x3945 +0x8EA5B2DC 0x226D8 +0x8EA5B2DD 0x22680 +0x8EA5B2DE 0x226DE +0x8EA5B2DF 0x22742 +0x8EA5B2E0 0x229C7 +0x8EA5B2E1 0x229BF +0x8EA5B2E2 0x22B8D +0x8EA5B2E3 0x22B89 +0x8EA5B2E4 0x22B90 +0x8EA5B2E5 0x22B9A +0x8EA5B2E6 0x22BC8 +0x8EA5B2E7 0x22B92 +0x8EA5B2E8 0x22BA1 +0x8EA5B2E9 0x22B84 +0x8EA5B2EA 0x22F57 +0x8EA5B2EB 0x22F47 +0x8EA5B2EC 0x22F77 +0x8EA5B2ED 0x22F3A +0x8EA5B2EE 0x22F50 +0x8EA5B2EF 0x22F42 +0x8EA5B2F0 0x22F43 +0x8EA5B2F1 0x22FA3 +0x8EA5B2F2 0x23077 +0x8EA5B2F3 0x231B2 +0x8EA5B2F4 0x231E2 +0x8EA5B2F5 0x231BD +0x8EA5B2F6 0x23374 +0x8EA5B2F7 0x23482 +0x8EA5B2F8 0x234B8 +0x8EA5B2F9 0x3B6C +0x8EA5B2FA 0x234BA +0x8EA5B2FB 0x234B9 +0x8EA5B2FC 0x234BB +0x8EA5B2FD 0x23487 +0x8EA5B2FE 0x2F8E4 +0x8EA5B3A1 0x23483 +0x8EA5B3A2 0x234B7 +0x8EA5B3A3 0x20043 +0x8EA5B3A4 0x238CE +0x8EA5B3A5 0x238BA +0x8EA5B3A6 0x23973 +0x8EA5B3A7 0x23A09 +0x8EA5B3A8 0x23A0A +0x8EA5B3A9 0x23A0B +0x8EA5B3AA 0x23A07 +0x8EA5B3AB 0x23A05 +0x8EA5B3AC 0x23A0E +0x8EA5B3AD 0x23A97 +0x8EA5B3AE 0x23B77 +0x8EA5B3AF 0x23B7B +0x8EA5B3B0 0x23B7A +0x8EA5B3B1 0x23B74 +0x8EA5B3B2 0x23B79 +0x8EA5B3B3 0x23D86 +0x8EA5B3B4 0x23DF5 +0x8EA5B3B5 0x23DA5 +0x8EA5B3B6 0x23D9D +0x8EA5B3B7 0x23DBE +0x8EA5B3B8 0x23D96 +0x8EA5B3B9 0x23DE1 +0x8EA5B3BA 0x23DA4 +0x8EA5B3BB 0x23DA1 +0x8EA5B3BC 0x23DF6 +0x8EA5B3BD 0x3D04 +0x8EA5B3BE 0x23D8D +0x8EA5B3BF 0x23D8B +0x8EA5B3C0 0x23D78 +0x8EA5B3C1 0x23D98 +0x8EA5B3C2 0x23E0A +0x8EA5B3C3 0x2425D +0x8EA5B3C4 0x24227 +0x8EA5B3C5 0x2425F +0x8EA5B3C6 0x245C0 +0x8EA5B3C7 0x245C1 +0x8EA5B3C8 0x2466D +0x8EA5B3C9 0x2465E +0x8EA5B3CA 0x2468A +0x8EA5B3CB 0x24662 +0x8EA5B3CC 0x24664 +0x8EA5B3CD 0x3E3A +0x8EA5B3CE 0x247C0 +0x8EA5B3CF 0x247CA +0x8EA5B3D0 0x247D1 +0x8EA5B3D1 0x3E79 +0x8EA5B3D2 0x247C7 +0x8EA5B3D3 0x247CE +0x8EA5B3D4 0x7309 +0x8EA5B3D5 0x247C5 +0x8EA5B3D6 0x24936 +0x8EA5B3D7 0x24957 +0x8EA5B3D8 0x24977 +0x8EA5B3D9 0x24AF6 +0x8EA5B3DA 0x24AF7 +0x8EA5B3DB 0x24B55 +0x8EA5B3DC 0x24B44 +0x8EA5B3DD 0x24B3E +0x8EA5B3DE 0x24B42 +0x8EA5B3DF 0x24B52 +0x8EA5B3E0 0x24BE1 +0x8EA5B3E1 0x24C08 +0x8EA5B3E2 0x24C68 +0x8EA5B3E3 0x24C67 +0x8EA5B3E4 0x3F5D +0x8EA5B3E5 0x2F937 +0x8EA5B3E6 0x24D7E +0x8EA5B3E7 0x24D93 +0x8EA5B3E8 0x24D79 +0x8EA5B3E9 0x24D81 +0x8EA5B3EA 0x24D7D +0x8EA5B3EB 0x24D7B +0x8EA5B3EC 0x24D94 +0x8EA5B3ED 0x3F8A +0x8EA5B3EE 0x24F66 +0x8EA5B3EF 0x24FD9 +0x8EA5B3F0 0x24FE0 +0x8EA5B3F1 0x2F93E +0x8EA5B3F2 0x2505F +0x8EA5B3F3 0x2515F +0x8EA5B3F4 0x2515E +0x8EA5B3F5 0x25168 +0x8EA5B3F6 0x4027 +0x8EA5B3F7 0x25188 +0x8EA5B3F8 0x2516A +0x8EA5B3F9 0x2516C +0x8EA5B3FA 0x25166 +0x8EA5B3FB 0x25167 +0x8EA5B3FC 0x25189 +0x8EA5B3FD 0x25160 +0x8EA5B3FE 0x25185 +0x8EA5B4A1 0x2032A +0x8EA5B4A2 0x25368 +0x8EA5B4A3 0x253B9 +0x8EA5B4A4 0x253BA +0x8EA5B4A5 0x253BE +0x8EA5B4A6 0x2546F +0x8EA5B4A7 0x25480 +0x8EA5B4A8 0x25474 +0x8EA5B4A9 0x25481 +0x8EA5B4AA 0x2547A +0x8EA5B4AB 0x2549C +0x8EA5B4AC 0x25473 +0x8EA5B4AD 0x25482 +0x8EA5B4AE 0x2547F +0x8EA5B4AF 0x254A7 +0x8EA5B4B0 0x25479 +0x8EA5B4B1 0x25478 +0x8EA5B4B2 0x2547D +0x8EA5B4B3 0x254A8 +0x8EA5B4B4 0x2547C +0x8EA5B4B5 0x25668 +0x8EA5B4B6 0x2564E +0x8EA5B4B7 0x2579E +0x8EA5B4B8 0x4146 +0x8EA5B4B9 0x4140 +0x8EA5B4BA 0x25798 +0x8EA5B4BB 0x413F +0x8EA5B4BC 0x25785 +0x8EA5B4BD 0x2579C +0x8EA5B4BE 0x257C5 +0x8EA5B4BF 0x2579A +0x8EA5B4C0 0x25968 +0x8EA5B4C1 0x25965 +0x8EA5B4C2 0x25967 +0x8EA5B4C3 0x25961 +0x8EA5B4C4 0x25960 +0x8EA5B4C5 0x419D +0x8EA5B4C6 0x41CB +0x8EA5B4C7 0x25A7B +0x8EA5B4C8 0x41E1 +0x8EA5B4C9 0x25B19 +0x8EA5B4CA 0x25B0E +0x8EA5B4CB 0x25B31 +0x8EA5B4CC 0x25B12 +0x8EA5B4CD 0x25B10 +0x8EA5B4CE 0x25B15 +0x8EA5B4CF 0x25B3F +0x8EA5B4D0 0x25B1D +0x8EA5B4D1 0x25B1E +0x8EA5B4D2 0x25E4D +0x8EA5B4D3 0x25E48 +0x8EA5B4D4 0x25E45 +0x8EA5B4D5 0x25E42 +0x8EA5B4D6 0x25E49 +0x8EA5B4D7 0x25E4A +0x8EA5B4D8 0x25E47 +0x8EA5B4D9 0x427F +0x8EA5B4DA 0x25E4C +0x8EA5B4DB 0x25FCD +0x8EA5B4DC 0x25FD5 +0x8EA5B4DD 0x25FC4 +0x8EA5B4DE 0x25FCA +0x8EA5B4DF 0x25FC3 +0x8EA5B4E0 0x4346 +0x8EA5B4E1 0x26229 +0x8EA5B4E2 0x262B4 +0x8EA5B4E3 0x2636D +0x8EA5B4E4 0x26366 +0x8EA5B4E5 0x2636A +0x8EA5B4E6 0x26415 +0x8EA5B4E7 0x264D3 +0x8EA5B4E8 0x264EC +0x8EA5B4E9 0x26555 +0x8EA5B4EA 0x441A +0x8EA5B4EB 0x266D6 +0x8EA5B4EC 0x266D8 +0x8EA5B4ED 0x26751 +0x8EA5B4EE 0x266E0 +0x8EA5B4EF 0x26703 +0x8EA5B4F0 0x26704 +0x8EA5B4F1 0x266DA +0x8EA5B4F2 0x266EA +0x8EA5B4F3 0x26702 +0x8EA5B4F4 0x266D3 +0x8EA5B4F5 0x266E4 +0x8EA5B4F6 0x266E5 +0x8EA5B4F7 0x2693B +0x8EA5B4F8 0x26966 +0x8EA5B4F9 0x26A2C +0x8EA5B4FA 0x26A21 +0x8EA5B4FB 0x26A26 +0x8EA5B4FC 0x26AD4 +0x8EA5B4FD 0x26AD5 +0x8EA5B4FE 0x26AD9 +0x8EA5B5A1 0x26BD5 +0x8EA5B5A2 0x26BEB +0x8EA5B5A3 0x26BC5 +0x8EA5B5A4 0x44D3 +0x8EA5B5A5 0x26C27 +0x8EA5B5A6 0x26BF0 +0x8EA5B5A7 0x26BB9 +0x8EA5B5A8 0x26C18 +0x8EA5B5A9 0x26BEE +0x8EA5B5AA 0x44D0 +0x8EA5B5AB 0x26BB7 +0x8EA5B5AC 0x26BBB +0x8EA5B5AD 0x26BEF +0x8EA5B5AE 0x26BB8 +0x8EA5B5AF 0x26BDF +0x8EA5B5B0 0x26BDA +0x8EA5B5B1 0x26BE3 +0x8EA5B5B2 0x26BC9 +0x8EA5B5B3 0x26BEC +0x8EA5B5B4 0x271A4 +0x8EA5B5B5 0x458E +0x8EA5B5B6 0x271A3 +0x8EA5B5B7 0x2725E +0x8EA5B5B8 0x27261 +0x8EA5B5B9 0x27262 +0x8EA5B5BA 0x27263 +0x8EA5B5BB 0x2728E +0x8EA5B5BC 0x27269 +0x8EA5B5BD 0x2726B +0x8EA5B5BE 0x27285 +0x8EA5B5BF 0x2728D +0x8EA5B5C0 0x27264 +0x8EA5B5C1 0x2726D +0x8EA5B5C2 0x2764C +0x8EA5B5C3 0x27649 +0x8EA5B5C4 0x27647 +0x8EA5B5C5 0x27648 +0x8EA5B5C6 0x27642 +0x8EA5B5C7 0x27645 +0x8EA5B5C8 0x2765B +0x8EA5B5C9 0x2765D +0x8EA5B5CA 0x27646 +0x8EA5B5CB 0x27813 +0x8EA5B5CC 0x2781A +0x8EA5B5CD 0x2780E +0x8EA5B5CE 0x2780F +0x8EA5B5CF 0x2781B +0x8EA5B5D0 0x27812 +0x8EA5B5D1 0x278C3 +0x8EA5B5D2 0x278BE +0x8EA5B5D3 0x278BD +0x8EA5B5D4 0x27979 +0x8EA5B5D5 0x2797C +0x8EA5B5D6 0x46C3 +0x8EA5B5D7 0x46B6 +0x8EA5B5D8 0x27980 +0x8EA5B5D9 0x27975 +0x8EA5B5DA 0x2799B +0x8EA5B5DB 0x8A2F +0x8EA5B5DC 0x27974 +0x8EA5B5DD 0x46C0 +0x8EA5B5DE 0x46B8 +0x8EA5B5DF 0x22041 +0x8EA5B5E0 0x22494 +0x8EA5B5E1 0x27C30 +0x8EA5B5E2 0x27CA7 +0x8EA5B5E3 0x27CA5 +0x8EA5B5E4 0x27CA4 +0x8EA5B5E5 0x27D3A +0x8EA5B5E6 0x27E5B +0x8EA5B5E7 0x27E9F +0x8EA5B5E8 0x27EA8 +0x8EA5B5E9 0x27EB3 +0x8EA5B5EA 0x27EA1 +0x8EA5B5EB 0x27EA7 +0x8EA5B5EC 0x27EB2 +0x8EA5B5ED 0x27E9D +0x8EA5B5EE 0x27EA3 +0x8EA5B5EF 0x27EA2 +0x8EA5B5F0 0x27FEF +0x8EA5B5F1 0x27FD9 +0x8EA5B5F2 0x47D9 +0x8EA5B5F3 0x27FD5 +0x8EA5B5F4 0x27FDD +0x8EA5B5F5 0x27FDA +0x8EA5B5F6 0x27FEE +0x8EA5B5F7 0x27FD7 +0x8EA5B5F8 0x2821A +0x8EA5B5F9 0x28219 +0x8EA5B5FA 0x28218 +0x8EA5B5FB 0x282B3 +0x8EA5B5FC 0x282BF +0x8EA5B5FD 0x282BB +0x8EA5B5FE 0x282C0 +0x8EA5B6A1 0x282B9 +0x8EA5B6A2 0x282B8 +0x8EA5B6A3 0x282D5 +0x8EA5B6A4 0x28411 +0x8EA5B6A5 0x28410 +0x8EA5B6A6 0x284C3 +0x8EA5B6A7 0x284C2 +0x8EA5B6A8 0x284E9 +0x8EA5B6A9 0x284CD +0x8EA5B6AA 0x284E5 +0x8EA5B6AB 0x284CA +0x8EA5B6AC 0x284C7 +0x8EA5B6AD 0x284E8 +0x8EA5B6AE 0x286F1 +0x8EA5B6AF 0x2870C +0x8EA5B6B0 0x286EF +0x8EA5B6B1 0x286EE +0x8EA5B6B2 0x286F3 +0x8EA5B6B3 0x2870D +0x8EA5B6B4 0x286F6 +0x8EA5B6B5 0x286F0 +0x8EA5B6B6 0x48EC +0x8EA5B6B7 0x287F5 +0x8EA5B6B8 0x287F4 +0x8EA5B6B9 0x287F8 +0x8EA5B6BA 0x287FE +0x8EA5B6BB 0x28911 +0x8EA5B6BC 0x28922 +0x8EA5B6BD 0x28942 +0x8EA5B6BE 0x28C5C +0x8EA5B6BF 0x28C5A +0x8EA5B6C0 0x28C5D +0x8EA5B6C1 0x28CD1 +0x8EA5B6C2 0x28CD0 +0x8EA5B6C3 0x28E75 +0x8EA5B6C4 0x28E7B +0x8EA5B6C5 0x28F89 +0x8EA5B6C6 0x2944D +0x8EA5B6C7 0x29689 +0x8EA5B6C8 0x29692 +0x8EA5B6C9 0x2968C +0x8EA5B6CA 0x29688 +0x8EA5B6CB 0x29867 +0x8EA5B6CC 0x29868 +0x8EA5B6CD 0x20321 +0x8EA5B6CE 0x202F2 +0x8EA5B6CF 0x20309 +0x8EA5B6D0 0x202F8 +0x8EA5B6D1 0x202F0 +0x8EA5B6D2 0x202F3 +0x8EA5B6D3 0x202F5 +0x8EA5B6D4 0x202FB +0x8EA5B6D5 0x202F7 +0x8EA5B6D6 0x202EF +0x8EA5B6D7 0x2030B +0x8EA5B6D8 0x204A2 +0x8EA5B6D9 0x205F5 +0x8EA5B6DA 0x205F3 +0x8EA5B6DB 0x205F4 +0x8EA5B6DC 0x205F2 +0x8EA5B6DD 0x20698 +0x8EA5B6DE 0x20768 +0x8EA5B6DF 0x20780 +0x8EA5B6E0 0x20785 +0x8EA5B6E1 0x2078E +0x8EA5B6E2 0x2078F +0x8EA5B6E3 0x202F4 +0x8EA5B6E4 0x20786 +0x8EA5B6E5 0x207A4 +0x8EA5B6E6 0x20886 +0x8EA5B6E7 0x20889 +0x8EA5B6E8 0x20887 +0x8EA5B6E9 0x20885 +0x8EA5B6EA 0x52DC +0x8EA5B6EB 0x20888 +0x8EA5B6EC 0x20AFF +0x8EA5B6ED 0x20B66 +0x8EA5B6EE 0x35CC +0x8EA5B6EF 0x20DC3 +0x8EA5B6F0 0x35A2 +0x8EA5B6F1 0x20DC4 +0x8EA5B6F2 0x20E3B +0x8EA5B6F3 0x20DE7 +0x8EA5B6F4 0x20DF8 +0x8EA5B6F5 0x20DFB +0x8EA5B6F6 0x35B6 +0x8EA5B6F7 0x20DBE +0x8EA5B6F8 0x20DC6 +0x8EA5B6F9 0x35C5 +0x8EA5B6FA 0x35C6 +0x8EA5B6FB 0x20DFC +0x8EA5B6FC 0x20DC0 +0x8EA5B6FD 0x20E33 +0x8EA5B6FE 0x20DC9 +0x8EA5B7A1 0x20DFE +0x8EA5B7A2 0x20DDA +0x8EA5B7A3 0x20DCC +0x8EA5B7A4 0x20DBB +0x8EA5B7A5 0x20DFD +0x8EA5B7A6 0x20DDF +0x8EA5B7A7 0x20DCD +0x8EA5B7A8 0x20DC2 +0x8EA5B7A9 0x20DC8 +0x8EA5B7AA 0x20E32 +0x8EA5B7AB 0x20E2D +0x8EA5B7AC 0x20DD2 +0x8EA5B7AD 0x20E31 +0x8EA5B7AE 0x20DD3 +0x8EA5B7AF 0x20E2E +0x8EA5B7B0 0x20DCF +0x8EA5B7B1 0x211FF +0x8EA5B7B2 0x21209 +0x8EA5B7B3 0x211FC +0x8EA5B7B4 0x21372 +0x8EA5B7B5 0x213AA +0x8EA5B7B6 0x213AB +0x8EA5B7B7 0x213A7 +0x8EA5B7B8 0x2137B +0x8EA5B7B9 0x21376 +0x8EA5B7BA 0x213A8 +0x8EA5B7BB 0x213AC +0x8EA5B7BC 0x3683 +0x8EA5B7BD 0x5921 +0x8EA5B7BE 0x215AA +0x8EA5B7BF 0x20A03 +0x8EA5B7C0 0x215AC +0x8EA5B7C1 0x215AD +0x8EA5B7C2 0x215AB +0x8EA5B7C3 0x21650 +0x8EA5B7C4 0x21658 +0x8EA5B7C5 0x217DD +0x8EA5B7C6 0x36F8 +0x8EA5B7C7 0x217AE +0x8EA5B7C8 0x217A2 +0x8EA5B7C9 0x217AB +0x8EA5B7CA 0x217E3 +0x8EA5B7CB 0x217AF +0x8EA5B7CC 0x217E0 +0x8EA5B7CD 0x217E4 +0x8EA5B7CE 0x36F6 +0x8EA5B7CF 0x217A7 +0x8EA5B7D0 0x217AA +0x8EA5B7D1 0x217E2 +0x8EA5B7D2 0x217E1 +0x8EA5B7D3 0x217DF +0x8EA5B7D4 0x217AD +0x8EA5B7D5 0x217E5 +0x8EA5B7D6 0x217D1 +0x8EA5B7D7 0x217AC +0x8EA5B7D8 0x217D5 +0x8EA5B7D9 0x217A3 +0x8EA5B7DA 0x2179F +0x8EA5B7DB 0x21979 +0x8EA5B7DC 0x21976 +0x8EA5B7DD 0x21A43 +0x8EA5B7DE 0x21A3D +0x8EA5B7DF 0x21A47 +0x8EA5B7E0 0x21A44 +0x8EA5B7E1 0x21A3F +0x8EA5B7E2 0x21A5B +0x8EA5B7E3 0x21B7F +0x8EA5B7E4 0x21C9A +0x8EA5B7E5 0x21C9C +0x8EA5B7E6 0x379B +0x8EA5B7E7 0x21D1E +0x8EA5B7E8 0x21E88 +0x8EA5B7E9 0x21E6A +0x8EA5B7EA 0x21E76 +0x8EA5B7EB 0x21E72 +0x8EA5B7EC 0x21E70 +0x8EA5B7ED 0x21E7E +0x8EA5B7EE 0x21E6C +0x8EA5B7EF 0x21E6F +0x8EA5B7F0 0x21E75 +0x8EA5B7F1 0x21E77 +0x8EA5B7F2 0x21E78 +0x8EA5B7F3 0x21E8A +0x8EA5B7F4 0x21E79 +0x8EA5B7F5 0x21E94 +0x8EA5B7F6 0x22001 +0x8EA5B7F7 0x22105 +0x8EA5B7F8 0x220F1 +0x8EA5B7F9 0x220EE +0x8EA5B7FA 0x220EF +0x8EA5B7FB 0x22104 +0x8EA5B7FC 0x5E3F +0x8EA5B7FD 0x220FA +0x8EA5B7FE 0x22107 +0x8EA5B8A1 0x220F4 +0x8EA5B8A2 0x220F5 +0x8EA5B8A3 0x2219C +0x8EA5B8A4 0x2226D +0x8EA5B8A5 0x22269 +0x8EA5B8A6 0x22266 +0x8EA5B8A7 0x22262 +0x8EA5B8A8 0x22246 +0x8EA5B8A9 0x388D +0x8EA5B8AA 0x22265 +0x8EA5B8AB 0x2225D +0x8EA5B8AC 0x2225E +0x8EA5B8AD 0x2225F +0x8EA5B8AE 0x2238E +0x8EA5B8AF 0x22402 +0x8EA5B8B0 0x22406 +0x8EA5B8B1 0x22404 +0x8EA5B8B2 0x22403 +0x8EA5B8B3 0x22462 +0x8EA5B8B4 0x22527 +0x8EA5B8B5 0x22521 +0x8EA5B8B6 0x22520 +0x8EA5B8B7 0x22524 +0x8EA5B8B8 0x22529 +0x8EA5B8B9 0x22531 +0x8EA5B8BA 0x22523 +0x8EA5B8BB 0x22522 +0x8EA5B8BC 0x226DC +0x8EA5B8BD 0x2274D +0x8EA5B8BE 0x226E5 +0x8EA5B8BF 0x226D3 +0x8EA5B8C0 0x226EE +0x8EA5B8C1 0x226E6 +0x8EA5B8C2 0x3956 +0x8EA5B8C3 0x22736 +0x8EA5B8C4 0x22740 +0x8EA5B8C5 0x2283F +0x8EA5B8C6 0x2273D +0x8EA5B8C7 0x22744 +0x8EA5B8C8 0x395B +0x8EA5B8C9 0x2275F +0x8EA5B8CA 0x22729 +0x8EA5B8CB 0x22749 +0x8EA5B8CC 0x2278A +0x8EA5B8CD 0x2272A +0x8EA5B8CE 0x22787 +0x8EA5B8CF 0x2274C +0x8EA5B8D0 0x22731 +0x8EA5B8D1 0x22748 +0x8EA5B8D2 0x2272B +0x8EA5B8D3 0x2273B +0x8EA5B8D4 0x22741 +0x8EA5B8D5 0x226C9 +0x8EA5B8D6 0x22734 +0x8EA5B8D7 0x22753 +0x8EA5B8D8 0x22735 +0x8EA5B8D9 0x22747 +0x8EA5B8DA 0x22738 +0x8EA5B8DB 0x229D1 +0x8EA5B8DC 0x229D2 +0x8EA5B8DD 0x22A51 +0x8EA5B8DE 0x22A55 +0x8EA5B8DF 0x22A52 +0x8EA5B8E0 0x22A53 +0x8EA5B8E1 0x22B8F +0x8EA5B8E2 0x22BF4 +0x8EA5B8E3 0x22C47 +0x8EA5B8E4 0x22C0D +0x8EA5B8E5 0x22C1C +0x8EA5B8E6 0x22BFB +0x8EA5B8E7 0x22C19 +0x8EA5B8E8 0x22BF7 +0x8EA5B8E9 0x22BF9 +0x8EA5B8EA 0x22BF5 +0x8EA5B8EB 0x22BE9 +0x8EA5B8EC 0x22C0A +0x8EA5B8ED 0x22BEE +0x8EA5B8EE 0x22C0B +0x8EA5B8EF 0x22BFD +0x8EA5B8F0 0x22C06 +0x8EA5B8F1 0x22C02 +0x8EA5B8F2 0x22C16 +0x8EA5B8F3 0x22C18 +0x8EA5B8F4 0x22BF0 +0x8EA5B8F5 0x22ED4 +0x8EA5B8F6 0x22F66 +0x8EA5B8F7 0x22F6A +0x8EA5B8F8 0x22F75 +0x8EA5B8F9 0x22F76 +0x8EA5B8FA 0x22F80 +0x8EA5B8FB 0x22F6D +0x8EA5B8FC 0x3A96 +0x8EA5B8FD 0x22F69 +0x8EA5B8FE 0x22F67 +0x8EA5B9A1 0x22F68 +0x8EA5B9A2 0x22F5D +0x8EA5B9A3 0x230A4 +0x8EA5B9A4 0x230FE +0x8EA5B9A5 0x230FD +0x8EA5B9A6 0x231EC +0x8EA5B9A7 0x231E9 +0x8EA5B9A8 0x23221 +0x8EA5B9A9 0x231EB +0x8EA5B9AA 0x231E7 +0x8EA5B9AB 0x231F2 +0x8EA5B9AC 0x23220 +0x8EA5B9AD 0x2337A +0x8EA5B9AE 0x2352D +0x8EA5B9AF 0x2352E +0x8EA5B9B0 0x234CA +0x8EA5B9B1 0x2352F +0x8EA5B9B2 0x234C8 +0x8EA5B9B3 0x3B7E +0x8EA5B9B4 0x234CB +0x8EA5B9B5 0x234C3 +0x8EA5B9B6 0x23484 +0x8EA5B9B7 0x234D2 +0x8EA5B9B8 0x234C6 +0x8EA5B9B9 0x3B81 +0x8EA5B9BA 0x234CF +0x8EA5B9BB 0x234D5 +0x8EA5B9BC 0x234D4 +0x8EA5B9BD 0x234DD +0x8EA5B9BE 0x2352B +0x8EA5B9BF 0x235A3 +0x8EA5B9C0 0x234DB +0x8EA5B9C1 0x2352C +0x8EA5B9C2 0x23513 +0x8EA5B9C3 0x3C35 +0x8EA5B9C4 0x238D1 +0x8EA5B9C5 0x238CC +0x8EA5B9C6 0x238D5 +0x8EA5B9C7 0x238C9 +0x8EA5B9C8 0x238CF +0x8EA5B9C9 0x238D2 +0x8EA5B9CA 0x2397B +0x8EA5B9CB 0x2397C +0x8EA5B9CC 0x23A23 +0x8EA5B9CD 0x23A1D +0x8EA5B9CE 0x23A1C +0x8EA5B9CF 0x23A1E +0x8EA5B9D0 0x23A22 +0x8EA5B9D1 0x23A24 +0x8EA5B9D2 0x23A20 +0x8EA5B9D3 0x23A18 +0x8EA5B9D4 0x23A21 +0x8EA5B9D5 0x23B88 +0x8EA5B9D6 0x23B8A +0x8EA5B9D7 0x23B94 +0x8EA5B9D8 0x23B8F +0x8EA5B9D9 0x23B8E +0x8EA5B9DA 0x23B90 +0x8EA5B9DB 0x3C9B +0x8EA5B9DC 0x23BA7 +0x8EA5B9DD 0x23C64 +0x8EA5B9DE 0x3D00 +0x8EA5B9DF 0x23E18 +0x8EA5B9E0 0x23E14 +0x8EA5B9E1 0x23E1D +0x8EA5B9E2 0x23E05 +0x8EA5B9E3 0x23DFF +0x8EA5B9E4 0x23E1B +0x8EA5B9E5 0x23E1A +0x8EA5B9E6 0x23E19 +0x8EA5B9E7 0x23E03 +0x8EA5B9E8 0x23E0E +0x8EA5B9E9 0x23E47 +0x8EA5B9EA 0x23E04 +0x8EA5B9EB 0x23E5A +0x8EA5B9EC 0x23E07 +0x8EA5B9ED 0x23E20 +0x8EA5B9EE 0x2426A +0x8EA5B9EF 0x24266 +0x8EA5B9F0 0x2427A +0x8EA5B9F1 0x24265 +0x8EA5B9F2 0x242AF +0x8EA5B9F3 0x245CD +0x8EA5B9F4 0x245CF +0x8EA5B9F5 0x245D1 +0x8EA5B9F6 0x245CE +0x8EA5B9F7 0x2465F +0x8EA5B9F8 0x24677 +0x8EA5B9F9 0x24674 +0x8EA5B9FA 0x24688 +0x8EA5B9FB 0x24675 +0x8EA5B9FC 0x24689 +0x8EA5B9FD 0x24672 +0x8EA5B9FE 0x247C6 +0x8EA5BAA1 0x247EA +0x8EA5BAA2 0x247E0 +0x8EA5BAA3 0x24807 +0x8EA5BAA4 0x247E6 +0x8EA5BAA5 0x247E5 +0x8EA5BAA6 0x247DD +0x8EA5BAA7 0x247E3 +0x8EA5BAA8 0x247DA +0x8EA5BAA9 0x249AE +0x8EA5BAAA 0x2497E +0x8EA5BAAB 0x2497D +0x8EA5BAAC 0x2497F +0x8EA5BAAD 0x3ED3 +0x8EA5BAAE 0x249D9 +0x8EA5BAAF 0x24AFA +0x8EA5BAB0 0x24AFB +0x8EA5BAB1 0x24B4D +0x8EA5BAB2 0x24B54 +0x8EA5BAB3 0x24B51 +0x8EA5BAB4 0x24B50 +0x8EA5BAB5 0x24D98 +0x8EA5BAB6 0x24D95 +0x8EA5BAB7 0x24D9D +0x8EA5BAB8 0x24DC1 +0x8EA5BAB9 0x24D9A +0x8EA5BABA 0x24D9B +0x8EA5BABB 0x3F9F +0x8EA5BABC 0x24D9C +0x8EA5BABD 0x24DD7 +0x8EA5BABE 0x24DA4 +0x8EA5BABF 0x24D96 +0x8EA5BAC0 0x24DA0 +0x8EA5BAC1 0x24F31 +0x8EA5BAC2 0x24FE9 +0x8EA5BAC3 0x2506E +0x8EA5BAC4 0x2519A +0x8EA5BAC5 0x251A5 +0x8EA5BAC6 0x25194 +0x8EA5BAC7 0x251A6 +0x8EA5BAC8 0x25199 +0x8EA5BAC9 0x2518B +0x8EA5BACA 0x25198 +0x8EA5BACB 0x25191 +0x8EA5BACC 0x2518C +0x8EA5BACD 0x251A1 +0x8EA5BACE 0x251A3 +0x8EA5BACF 0x251C6 +0x8EA5BAD0 0x2536F +0x8EA5BAD1 0x2536D +0x8EA5BAD2 0x2536A +0x8EA5BAD3 0x2536C +0x8EA5BAD4 0x25371 +0x8EA5BAD5 0x2536E +0x8EA5BAD6 0x253DF +0x8EA5BAD7 0x254AC +0x8EA5BAD8 0x254AA +0x8EA5BAD9 0x40B1 +0x8EA5BADA 0x254B5 +0x8EA5BADB 0x254AD +0x8EA5BADC 0x254B2 +0x8EA5BADD 0x254B3 +0x8EA5BADE 0x254AB +0x8EA5BADF 0x254B6 +0x8EA5BAE0 0x254C7 +0x8EA5BAE1 0x254C6 +0x8EA5BAE2 0x2566C +0x8EA5BAE3 0x25670 +0x8EA5BAE4 0x257B3 +0x8EA5BAE5 0x414B +0x8EA5BAE6 0x2598C +0x8EA5BAE7 0x25981 +0x8EA5BAE8 0x25983 +0x8EA5BAE9 0x2597D +0x8EA5BAEA 0x25985 +0x8EA5BAEB 0x25990 +0x8EA5BAEC 0x259A2 +0x8EA5BAED 0x2598D +0x8EA5BAEE 0x2598F +0x8EA5BAEF 0x2597E +0x8EA5BAF0 0x2598A +0x8EA5BAF1 0x2597F +0x8EA5BAF2 0x25976 +0x8EA5BAF3 0x25987 +0x8EA5BAF4 0x25978 +0x8EA5BAF5 0x25A80 +0x8EA5BAF6 0x25A82 +0x8EA5BAF7 0x25A81 +0x8EA5BAF8 0x25A83 +0x8EA5BAF9 0x25B5A +0x8EA5BAFA 0x25B34 +0x8EA5BAFB 0x25B2C +0x8EA5BAFC 0x25B2A +0x8EA5BAFD 0x25B40 +0x8EA5BAFE 0x25B2D +0x8EA5BBA1 0x25B33 +0x8EA5BBA2 0x25B2B +0x8EA5BBA3 0x25B4B +0x8EA5BBA4 0x7B3F +0x8EA5BBA5 0x25B3C +0x8EA5BBA6 0x25E5A +0x8EA5BBA7 0x25E77 +0x8EA5BBA8 0x25E60 +0x8EA5BBA9 0x25FFA +0x8EA5BBAA 0x25FF9 +0x8EA5BBAB 0x25FFC +0x8EA5BBAC 0x42D6 +0x8EA5BBAD 0x25FF5 +0x8EA5BBAE 0x25FE8 +0x8EA5BBAF 0x26009 +0x8EA5BBB0 0x25FE7 +0x8EA5BBB1 0x25FE6 +0x8EA5BBB2 0x25FE9 +0x8EA5BBB3 0x26232 +0x8EA5BBB4 0x2622C +0x8EA5BBB5 0x262BD +0x8EA5BBB6 0x262BC +0x8EA5BBB7 0x2637A +0x8EA5BBB8 0x2637E +0x8EA5BBB9 0x26379 +0x8EA5BBBA 0x4389 +0x8EA5BBBB 0x26423 +0x8EA5BBBC 0x26430 +0x8EA5BBBD 0x26428 +0x8EA5BBBE 0x264D4 +0x8EA5BBBF 0x26ACE +0x8EA5BBC0 0x264F1 +0x8EA5BBC1 0x264F0 +0x8EA5BBC2 0x26560 +0x8EA5BBC3 0x26565 +0x8EA5BBC4 0x266A8 +0x8EA5BBC5 0x2670A +0x8EA5BBC6 0x2671B +0x8EA5BBC7 0x26712 +0x8EA5BBC8 0x26707 +0x8EA5BBC9 0x2674F +0x8EA5BBCA 0x2670E +0x8EA5BBCB 0x26752 +0x8EA5BBCC 0x26716 +0x8EA5BBCD 0x4400 +0x8EA5BBCE 0x26753 +0x8EA5BBCF 0x26754 +0x8EA5BBD0 0x2F984 +0x8EA5BBD1 0x26756 +0x8EA5BBD2 0x2696D +0x8EA5BBD3 0x26972 +0x8EA5BBD4 0x26A2F +0x8EA5BBD5 0x26C2A +0x8EA5BBD6 0x44DC +0x8EA5BBD7 0x26C63 +0x8EA5BBD8 0x26C84 +0x8EA5BBD9 0x26CAF +0x8EA5BBDA 0x26C45 +0x8EA5BBDB 0x26C70 +0x8EA5BBDC 0x26C56 +0x8EA5BBDD 0x26C16 +0x8EA5BBDE 0x26C3D +0x8EA5BBDF 0x26C38 +0x8EA5BBE0 0x26C6F +0x8EA5BBE1 0x26C77 +0x8EA5BBE2 0x26C2E +0x8EA5BBE3 0x26C31 +0x8EA5BBE4 0x26C4C +0x8EA5BBE5 0x26C5F +0x8EA5BBE6 0x26C75 +0x8EA5BBE7 0x26C39 +0x8EA5BBE8 0x26C3A +0x8EA5BBE9 0x26C2C +0x8EA5BBEA 0x26C2D +0x8EA5BBEB 0x26C3F +0x8EA5BBEC 0x26C2F +0x8EA5BBED 0x26C30 +0x8EA5BBEE 0x26C3E +0x8EA5BBEF 0x83D0 +0x8EA5BBF0 0x4590 +0x8EA5BBF1 0x271B2 +0x8EA5BBF2 0x272B7 +0x8EA5BBF3 0x2728F +0x8EA5BBF4 0x45B1 +0x8EA5BBF5 0x27296 +0x8EA5BBF6 0x2729E +0x8EA5BBF7 0x27297 +0x8EA5BBF8 0x27295 +0x8EA5BBF9 0x272A5 +0x8EA5BBFA 0x27298 +0x8EA5BBFB 0x86E7 +0x8EA5BBFC 0x272A3 +0x8EA5BBFD 0x2729A +0x8EA5BBFE 0x272AD +0x8EA5BCA1 0x272A6 +0x8EA5BCA2 0x272B6 +0x8EA5BCA3 0x27299 +0x8EA5BCA4 0x272AF +0x8EA5BCA5 0x272AC +0x8EA5BCA6 0x45AA +0x8EA5BCA7 0x2729F +0x8EA5BCA8 0x27294 +0x8EA5BCA9 0x275EB +0x8EA5BCAA 0x2766F +0x8EA5BCAB 0x2766D +0x8EA5BCAC 0x2767E +0x8EA5BCAD 0x2766C +0x8EA5BCAE 0x27661 +0x8EA5BCAF 0x27663 +0x8EA5BCB0 0x2766B +0x8EA5BCB1 0x2765E +0x8EA5BCB2 0x2763E +0x8EA5BCB3 0x27664 +0x8EA5BCB4 0x276AD +0x8EA5BCB5 0x467D +0x8EA5BCB6 0x27820 +0x8EA5BCB7 0x278D1 +0x8EA5BCB8 0x278D5 +0x8EA5BCB9 0x279AE +0x8EA5BCBA 0x279AF +0x8EA5BCBB 0x2799F +0x8EA5BCBC 0x279A8 +0x8EA5BCBD 0x279CA +0x8EA5BCBE 0x27BE1 +0x8EA5BCBF 0x27C39 +0x8EA5BCC0 0x27C38 +0x8EA5BCC1 0x27C3B +0x8EA5BCC2 0x27CAD +0x8EA5BCC3 0x27CB5 +0x8EA5BCC4 0x27CAF +0x8EA5BCC5 0x27CB1 +0x8EA5BCC6 0x27CAE +0x8EA5BCC7 0x27CB4 +0x8EA5BCC8 0x27CB0 +0x8EA5BCC9 0x27D4B +0x8EA5BCCA 0x27D51 +0x8EA5BCCB 0x27D4C +0x8EA5BCCC 0x4769 +0x8EA5BCCD 0x27D60 +0x8EA5BCCE 0x27EBE +0x8EA5BCCF 0x27EB9 +0x8EA5BCD0 0x27EB7 +0x8EA5BCD1 0x27EB6 +0x8EA5BCD2 0x47A1 +0x8EA5BCD3 0x27EBD +0x8EA5BCD4 0x27EB8 +0x8EA5BCD5 0x27EC1 +0x8EA5BCD6 0x27FF7 +0x8EA5BCD7 0x27FF3 +0x8EA5BCD8 0x27FF4 +0x8EA5BCD9 0x27FFB +0x8EA5BCDA 0x27FFD +0x8EA5BCDB 0x27FF5 +0x8EA5BCDC 0x47E7 +0x8EA5BCDD 0x27FFA +0x8EA5BCDE 0x28014 +0x8EA5BCDF 0x47EC +0x8EA5BCE0 0x27FF2 +0x8EA5BCE1 0x27FFC +0x8EA5BCE2 0x28000 +0x8EA5BCE3 0x47DF +0x8EA5BCE4 0x2822B +0x8EA5BCE5 0x28229 +0x8EA5BCE6 0x2822E +0x8EA5BCE7 0x4833 +0x8EA5BCE8 0x282D7 +0x8EA5BCE9 0x282DB +0x8EA5BCEA 0x282D9 +0x8EA5BCEB 0x282D8 +0x8EA5BCEC 0x282E6 +0x8EA5BCED 0x282D6 +0x8EA5BCEE 0x282D1 +0x8EA5BCEF 0x282E7 +0x8EA5BCF0 0x282D0 +0x8EA5BCF1 0x282DC +0x8EA5BCF2 0x284ED +0x8EA5BCF3 0x2851A +0x8EA5BCF4 0x28519 +0x8EA5BCF5 0x28516 +0x8EA5BCF6 0x284EC +0x8EA5BCF7 0x284EF +0x8EA5BCF8 0x284EE +0x8EA5BCF9 0x284F4 +0x8EA5BCFA 0x2852F +0x8EA5BCFB 0x28730 +0x8EA5BCFC 0x28719 +0x8EA5BCFD 0x28718 +0x8EA5BCFE 0x28711 +0x8EA5BDA1 0x28716 +0x8EA5BDA2 0x28712 +0x8EA5BDA3 0x28710 +0x8EA5BDA4 0x28714 +0x8EA5BDA5 0x2880C +0x8EA5BDA6 0x2880D +0x8EA5BDA7 0x28910 +0x8EA5BDA8 0x28929 +0x8EA5BDA9 0x28928 +0x8EA5BDAA 0x28C65 +0x8EA5BDAB 0x28C66 +0x8EA5BDAC 0x28CDE +0x8EA5BDAD 0x28CDF +0x8EA5BDAE 0x28CE0 +0x8EA5BDAF 0x28CD9 +0x8EA5BDB0 0x28CDB +0x8EA5BDB1 0x28CD8 +0x8EA5BDB2 0x28CE3 +0x8EA5BDB3 0x28CD7 +0x8EA5BDB4 0x28EA6 +0x8EA5BDB5 0x28EA7 +0x8EA5BDB6 0x28EBF +0x8EA5BDB7 0x28EA8 +0x8EA5BDB8 0x28E9F +0x8EA5BDB9 0x28EA1 +0x8EA5BDBA 0x28EA2 +0x8EA5BDBB 0x28EAD +0x8EA5BDBC 0x28EA3 +0x8EA5BDBD 0x28EA0 +0x8EA5BDBE 0x29083 +0x8EA5BDBF 0x29085 +0x8EA5BDC0 0x29082 +0x8EA5BDC1 0x29084 +0x8EA5BDC2 0x291EE +0x8EA5BDC3 0x2925D +0x8EA5BDC4 0x29392 +0x8EA5BDC5 0x29455 +0x8EA5BDC6 0x29453 +0x8EA5BDC7 0x2F9FC +0x8EA5BDC8 0x29451 +0x8EA5BDC9 0x29452 +0x8EA5BDCA 0x29450 +0x8EA5BDCB 0x2959D +0x8EA5BDCC 0x29687 +0x8EA5BDCD 0x29697 +0x8EA5BDCE 0x2969B +0x8EA5BDCF 0x2969D +0x8EA5BDD0 0x29869 +0x8EA5BDD1 0x29A11 +0x8EA5BDD2 0x4BEE +0x8EA5BDD3 0x29C7A +0x8EA5BDD4 0x4C32 +0x8EA5BDD5 0x23244 +0x8EA5BDD6 0x200C6 +0x8EA5BDD7 0x20340 +0x8EA5BDD8 0x2032E +0x8EA5BDD9 0x20368 +0x8EA5BDDA 0x2032D +0x8EA5BDDB 0x20334 +0x8EA5BDDC 0x20332 +0x8EA5BDDD 0x20369 +0x8EA5BDDE 0x20331 +0x8EA5BDDF 0x2036A +0x8EA5BDE0 0x2033E +0x8EA5BDE1 0x2036F +0x8EA5BDE2 0x20375 +0x8EA5BDE3 0x204F6 +0x8EA5BDE4 0x20520 +0x8EA5BDE5 0x20528 +0x8EA5BDE6 0x20567 +0x8EA5BDE7 0x205FB +0x8EA5BDE8 0x205FE +0x8EA5BDE9 0x205FC +0x8EA5BDEA 0x205FD +0x8EA5BDEB 0x205FF +0x8EA5BDEC 0x205FA +0x8EA5BDED 0x207AC +0x8EA5BDEE 0x207AF +0x8EA5BDEF 0x207B1 +0x8EA5BDF0 0x34FC +0x8EA5BDF1 0x207BF +0x8EA5BDF2 0x207BE +0x8EA5BDF3 0x207A7 +0x8EA5BDF4 0x207AA +0x8EA5BDF5 0x20894 +0x8EA5BDF6 0x20893 +0x8EA5BDF7 0x20899 +0x8EA5BDF8 0x352A +0x8EA5BDF9 0x208FA +0x8EA5BDFA 0x20956 +0x8EA5BDFB 0x20A22 +0x8EA5BDFC 0x20A91 +0x8EA5BDFD 0x20A92 +0x8EA5BDFE 0x20B08 +0x8EA5BEA1 0x20B06 +0x8EA5BEA2 0x20DD6 +0x8EA5BEA3 0x20E37 +0x8EA5BEA4 0x20E4B +0x8EA5BEA5 0x20ECE +0x8EA5BEA6 0x20ED0 +0x8EA5BEA7 0x20E39 +0x8EA5BEA8 0x20E64 +0x8EA5BEA9 0x20ECF +0x8EA5BEAA 0x20E46 +0x8EA5BEAB 0x20E66 +0x8EA5BEAC 0x20E56 +0x8EA5BEAD 0x20E43 +0x8EA5BEAE 0x20E4A +0x8EA5BEAF 0x20E58 +0x8EA5BEB0 0x20E65 +0x8EA5BEB1 0x20E5A +0x8EA5BEB2 0x20E5B +0x8EA5BEB3 0x20E55 +0x8EA5BEB4 0x20E50 +0x8EA5BEB5 0x20E4C +0x8EA5BEB6 0x20ECD +0x8EA5BEB7 0x20E51 +0x8EA5BEB8 0x20E47 +0x8EA5BEB9 0x35D3 +0x8EA5BEBA 0x20E53 +0x8EA5BEBB 0x20E62 +0x8EA5BEBC 0x20ECC +0x8EA5BEBD 0x35D7 +0x8EA5BEBE 0x20E7F +0x8EA5BEBF 0x20E4D +0x8EA5BEC0 0x2120A +0x8EA5BEC1 0x2120C +0x8EA5BEC2 0x2120F +0x8EA5BEC3 0x213BB +0x8EA5BEC4 0x213B9 +0x8EA5BEC5 0x213EB +0x8EA5BEC6 0x213AE +0x8EA5BEC7 0x213C1 +0x8EA5BEC8 0x213EA +0x8EA5BEC9 0x213BE +0x8EA5BECA 0x213BF +0x8EA5BECB 0x213BA +0x8EA5BECC 0x213B7 +0x8EA5BECD 0x213B3 +0x8EA5BECE 0x213E9 +0x8EA5BECF 0x2156E +0x8EA5BED0 0x215AF +0x8EA5BED1 0x215B3 +0x8EA5BED2 0x215B2 +0x8EA5BED3 0x21668 +0x8EA5BED4 0x21669 +0x8EA5BED5 0x2166A +0x8EA5BED6 0x217DE +0x8EA5BED7 0x217EB +0x8EA5BED8 0x21811 +0x8EA5BED9 0x217ED +0x8EA5BEDA 0x217E9 +0x8EA5BEDB 0x217F7 +0x8EA5BEDC 0x217F4 +0x8EA5BEDD 0x217EA +0x8EA5BEDE 0x21812 +0x8EA5BEDF 0x217E8 +0x8EA5BEE0 0x21813 +0x8EA5BEE1 0x2198E +0x8EA5BEE2 0x21986 +0x8EA5BEE3 0x21A63 +0x8EA5BEE4 0x21A65 +0x8EA5BEE5 0x21B99 +0x8EA5BEE6 0x21CC2 +0x8EA5BEE7 0x21CAE +0x8EA5BEE8 0x21CB0 +0x8EA5BEE9 0x21CAD +0x8EA5BEEA 0x21EB4 +0x8EA5BEEB 0x21ED1 +0x8EA5BEEC 0x21EAD +0x8EA5BEED 0x37F3 +0x8EA5BEEE 0x21EBD +0x8EA5BEEF 0x21EB7 +0x8EA5BEF0 0x21EAB +0x8EA5BEF1 0x21EAF +0x8EA5BEF2 0x21EC1 +0x8EA5BEF3 0x21EB5 +0x8EA5BEF4 0x2210F +0x8EA5BEF5 0x2210E +0x8EA5BEF6 0x2211C +0x8EA5BEF7 0x22113 +0x8EA5BEF8 0x2210A +0x8EA5BEF9 0x2211E +0x8EA5BEFA 0x22114 +0x8EA5BEFB 0x2211A +0x8EA5BEFC 0x221CB +0x8EA5BEFD 0x22287 +0x8EA5BEFE 0x22293 +0x8EA5BFA1 0x3891 +0x8EA5BFA2 0x22284 +0x8EA5BFA3 0x22285 +0x8EA5BFA4 0x22292 +0x8EA5BFA5 0x22280 +0x8EA5BFA6 0x2232B +0x8EA5BFA7 0x22363 +0x8EA5BFA8 0x2240A +0x8EA5BFA9 0x38C0 +0x8EA5BFAA 0x22466 +0x8EA5BFAB 0x22534 +0x8EA5BFAC 0x22533 +0x8EA5BFAD 0x2254D +0x8EA5BFAE 0x22789 +0x8EA5BFAF 0x22757 +0x8EA5BFB0 0x6117 +0x8EA5BFB1 0x2274A +0x8EA5BFB2 0x3963 +0x8EA5BFB3 0x22739 +0x8EA5BFB4 0x2273F +0x8EA5BFB5 0x22790 +0x8EA5BFB6 0x2278F +0x8EA5BFB7 0x227B2 +0x8EA5BFB8 0x2279F +0x8EA5BFB9 0x22795 +0x8EA5BFBA 0x227A1 +0x8EA5BFBB 0x2279C +0x8EA5BFBC 0x2278E +0x8EA5BFBD 0x227A0 +0x8EA5BFBE 0x227AE +0x8EA5BFBF 0x22796 +0x8EA5BFC0 0x227CA +0x8EA5BFC1 0x227AC +0x8EA5BFC2 0x3970 +0x8EA5BFC3 0x227A6 +0x8EA5BFC4 0x22797 +0x8EA5BFC5 0x22793 +0x8EA5BFC6 0x203B6 +0x8EA5BFC7 0x229D6 +0x8EA5BFC8 0x229E0 +0x8EA5BFC9 0x229D8 +0x8EA5BFCA 0x22A56 +0x8EA5BFCB 0x22C6E +0x8EA5BFCC 0x22C7E +0x8EA5BFCD 0x22C74 +0x8EA5BFCE 0x22C77 +0x8EA5BFCF 0x22C80 +0x8EA5BFD0 0x22C7A +0x8EA5BFD1 0x22C6B +0x8EA5BFD2 0x22C5F +0x8EA5BFD3 0x22C76 +0x8EA5BFD4 0x22CB0 +0x8EA5BFD5 0x22C63 +0x8EA5BFD6 0x22F92 +0x8EA5BFD7 0x22F82 +0x8EA5BFD8 0x22F9D +0x8EA5BFD9 0x22F94 +0x8EA5BFDA 0x22F83 +0x8EA5BFDB 0x22F8B +0x8EA5BFDC 0x22F84 +0x8EA5BFDD 0x23057 +0x8EA5BFDE 0x23084 +0x8EA5BFDF 0x230B5 +0x8EA5BFE0 0x23109 +0x8EA5BFE1 0x231E6 +0x8EA5BFE2 0x3B02 +0x8EA5BFE3 0x23225 +0x8EA5BFE4 0x23251 +0x8EA5BFE5 0x2333E +0x8EA5BFE6 0x2F8DA +0x8EA5BFE7 0x23385 +0x8EA5BFE8 0x2353F +0x8EA5BFE9 0x23542 +0x8EA5BFEA 0x23538 +0x8EA5BFEB 0x2353A +0x8EA5BFEC 0x2354E +0x8EA5BFED 0x23545 +0x8EA5BFEE 0x23539 +0x8EA5BFEF 0x23537 +0x8EA5BFF0 0x23544 +0x8EA5BFF1 0x2F8E7 +0x8EA5BFF2 0x235A4 +0x8EA5BFF3 0x2353D +0x8EA5BFF4 0x23541 +0x8EA5BFF5 0x238DF +0x8EA5BFF6 0x238DE +0x8EA5BFF7 0x238CA +0x8EA5BFF8 0x238E9 +0x8EA5BFF9 0x238E2 +0x8EA5BFFA 0x238E0 +0x8EA5BFFB 0x23989 +0x8EA5BFFC 0x23987 +0x8EA5BFFD 0x23A32 +0x8EA5BFFE 0x23A33 +0x8EA5C0A1 0x23AAC +0x8EA5C0A2 0x23AF9 +0x8EA5C0A3 0x23B0D +0x8EA5C0A4 0x23BB9 +0x8EA5C0A5 0x23E5E +0x8EA5C0A6 0x23E6A +0x8EA5C0A7 0x3D35 +0x8EA5C0A8 0x23E81 +0x8EA5C0A9 0x23E69 +0x8EA5C0AA 0x23EAC +0x8EA5C0AB 0x23E80 +0x8EA5C0AC 0x23E75 +0x8EA5C0AD 0x23E71 +0x8EA5C0AE 0x23E76 +0x8EA5C0AF 0x23E6F +0x8EA5C0B0 0x242B6 +0x8EA5C0B1 0x24303 +0x8EA5C0B2 0x242BF +0x8EA5C0B3 0x24301 +0x8EA5C0B4 0x242B2 +0x8EA5C0B5 0x242C4 +0x8EA5C0B6 0x245DB +0x8EA5C0B7 0x245DC +0x8EA5C0B8 0x245D8 +0x8EA5C0B9 0x29672 +0x8EA5C0BA 0x246B5 +0x8EA5C0BB 0x246A8 +0x8EA5C0BC 0x2468F +0x8EA5C0BD 0x2469E +0x8EA5C0BE 0x2468E +0x8EA5C0BF 0x247DE +0x8EA5C0C0 0x247E2 +0x8EA5C0C1 0x24820 +0x8EA5C0C2 0x2481D +0x8EA5C0C3 0x2481A +0x8EA5C0C4 0x24819 +0x8EA5C0C5 0x2482B +0x8EA5C0C6 0x24818 +0x8EA5C0C7 0x24810 +0x8EA5C0C8 0x2480E +0x8EA5C0C9 0x24824 +0x8EA5C0CA 0x2481F +0x8EA5C0CB 0x24813 +0x8EA5C0CC 0x24835 +0x8EA5C0CD 0x24983 +0x8EA5C0CE 0x3EE0 +0x8EA5C0CF 0x249D7 +0x8EA5C0D0 0x24B02 +0x8EA5C0D1 0x24B03 +0x8EA5C0D2 0x24B5C +0x8EA5C0D3 0x24B5F +0x8EA5C0D4 0x24BC7 +0x8EA5C0D5 0x24C9A +0x8EA5C0D6 0x24C97 +0x8EA5C0D7 0x24CA3 +0x8EA5C0D8 0x24DF7 +0x8EA5C0D9 0x24DC6 +0x8EA5C0DA 0x24DCC +0x8EA5C0DB 0x24DD6 +0x8EA5C0DC 0x24DCD +0x8EA5C0DD 0x24DF9 +0x8EA5C0DE 0x24DD9 +0x8EA5C0DF 0x24DD8 +0x8EA5C0E0 0x3F9A +0x8EA5C0E1 0x24DD1 +0x8EA5C0E2 0x24DCE +0x8EA5C0E3 0x24DD5 +0x8EA5C0E4 0x3FA3 +0x8EA5C0E5 0x24DD4 +0x8EA5C0E6 0x24DF8 +0x8EA5C0E7 0x24F7A +0x8EA5C0E8 0x24F79 +0x8EA5C0E9 0x24F7F +0x8EA5C0EA 0x24FF3 +0x8EA5C0EB 0x24FF5 +0x8EA5C0EC 0x24FF6 +0x8EA5C0ED 0x24FF4 +0x8EA5C0EE 0x24FF7 +0x8EA5C0EF 0x4005 +0x8EA5C0F0 0x25079 +0x8EA5C0F1 0x2519C +0x8EA5C0F2 0x251DF +0x8EA5C0F3 0x251F5 +0x8EA5C0F4 0x251FF +0x8EA5C0F5 0x251D1 +0x8EA5C0F6 0x251DA +0x8EA5C0F7 0x251CF +0x8EA5C0F8 0x251CD +0x8EA5C0F9 0x251DE +0x8EA5C0FA 0x251D8 +0x8EA5C0FB 0x23AAD +0x8EA5C0FC 0x251E0 +0x8EA5C0FD 0x251FE +0x8EA5C0FE 0x2519E +0x8EA5C1A1 0x25375 +0x8EA5C1A2 0x25373 +0x8EA5C1A3 0x25372 +0x8EA5C1A4 0x253D8 +0x8EA5C1A5 0x254D0 +0x8EA5C1A6 0x254D6 +0x8EA5C1A7 0x254D7 +0x8EA5C1A8 0x254CA +0x8EA5C1A9 0x254CD +0x8EA5C1AA 0x2568A +0x8EA5C1AB 0x25689 +0x8EA5C1AC 0x2568B +0x8EA5C1AD 0x257D3 +0x8EA5C1AE 0x257DA +0x8EA5C1AF 0x257CE +0x8EA5C1B0 0x257D2 +0x8EA5C1B1 0x415E +0x8EA5C1B2 0x257D4 +0x8EA5C1B3 0x257D7 +0x8EA5C1B4 0x257D5 +0x8EA5C1B5 0x257FB +0x8EA5C1B6 0x257CD +0x8EA5C1B7 0x257FA +0x8EA5C1B8 0x257D6 +0x8EA5C1B9 0x41A6 +0x8EA5C1BA 0x2599B +0x8EA5C1BB 0x2599E +0x8EA5C1BC 0x2599D +0x8EA5C1BD 0x259A4 +0x8EA5C1BE 0x2599F +0x8EA5C1BF 0x259A5 +0x8EA5C1C0 0x259A8 +0x8EA5C1C1 0x25A8F +0x8EA5C1C2 0x25A8C +0x8EA5C1C3 0x25A95 +0x8EA5C1C4 0x25B60 +0x8EA5C1C5 0x25B55 +0x8EA5C1C6 0x25B5C +0x8EA5C1C7 0x25B6F +0x8EA5C1C8 0x25B51 +0x8EA5C1C9 0x25B61 +0x8EA5C1CA 0x25BA7 +0x8EA5C1CB 0x25B5E +0x8EA5C1CC 0x25B62 +0x8EA5C1CD 0x25B54 +0x8EA5C1CE 0x25B6E +0x8EA5C1CF 0x25B52 +0x8EA5C1D0 0x25B58 +0x8EA5C1D1 0x25B6D +0x8EA5C1D2 0x25B5F +0x8EA5C1D3 0x25B6C +0x8EA5C1D4 0x25B50 +0x8EA5C1D5 0x25B5D +0x8EA5C1D6 0x25B8E +0x8EA5C1D7 0x25E72 +0x8EA5C1D8 0x25E78 +0x8EA5C1D9 0x25E75 +0x8EA5C1DA 0x25E76 +0x8EA5C1DB 0x25E7C +0x8EA5C1DC 0x25E7E +0x8EA5C1DD 0x25E7D +0x8EA5C1DE 0x26015 +0x8EA5C1DF 0x26014 +0x8EA5C1E0 0x2601D +0x8EA5C1E1 0x2601C +0x8EA5C1E2 0x26023 +0x8EA5C1E3 0x26057 +0x8EA5C1E4 0x262C8 +0x8EA5C1E5 0x435D +0x8EA5C1E6 0x262C9 +0x8EA5C1E7 0x262C5 +0x8EA5C1E8 0x26387 +0x8EA5C1E9 0x2638A +0x8EA5C1EA 0x26394 +0x8EA5C1EB 0x26439 +0x8EA5C1EC 0x26440 +0x8EA5C1ED 0x2643E +0x8EA5C1EE 0x26438 +0x8EA5C1EF 0x264D6 +0x8EA5C1F0 0x43B8 +0x8EA5C1F1 0x26577 +0x8EA5C1F2 0x26578 +0x8EA5C1F3 0x2657D +0x8EA5C1F4 0x266DD +0x8EA5C1F5 0x2675E +0x8EA5C1F6 0x26777 +0x8EA5C1F7 0x267D4 +0x8EA5C1F8 0x26766 +0x8EA5C1F9 0x2675F +0x8EA5C1FA 0x26773 +0x8EA5C1FB 0x26772 +0x8EA5C1FC 0x26797 +0x8EA5C1FD 0x2675A +0x8EA5C1FE 0x26796 +0x8EA5C2A1 0x2675D +0x8EA5C2A2 0x26765 +0x8EA5C2A3 0x26770 +0x8EA5C2A4 0x26775 +0x8EA5C2A5 0x26774 +0x8EA5C2A6 0x2675C +0x8EA5C2A7 0x26760 +0x8EA5C2A8 0x4434 +0x8EA5C2A9 0x2676D +0x8EA5C2AA 0x26941 +0x8EA5C2AB 0x26A3C +0x8EA5C2AC 0x26A3E +0x8EA5C2AD 0x446F +0x8EA5C2AE 0x26A49 +0x8EA5C2AF 0x26BE4 +0x8EA5C2B0 0x26D0C +0x8EA5C2B1 0x26D15 +0x8EA5C2B2 0x26D0E +0x8EA5C2B3 0x26CD4 +0x8EA5C2B4 0x26CC7 +0x8EA5C2B5 0x26D14 +0x8EA5C2B6 0x26CDB +0x8EA5C2B7 0x26D5F +0x8EA5C2B8 0x26CED +0x8EA5C2B9 0x26D09 +0x8EA5C2BA 0x26CCF +0x8EA5C2BB 0x26CFF +0x8EA5C2BC 0x26D1A +0x8EA5C2BD 0x26CF5 +0x8EA5C2BE 0x26CEE +0x8EA5C2BF 0x26CE5 +0x8EA5C2C0 0x26D0D +0x8EA5C2C1 0x26CDF +0x8EA5C2C2 0x26CEC +0x8EA5C2C3 0x26CD7 +0x8EA5C2C4 0x26D2C +0x8EA5C2C5 0x26CCD +0x8EA5C2C6 0x26CE3 +0x8EA5C2C7 0x26D00 +0x8EA5C2C8 0x26CEB +0x8EA5C2C9 0x26CFD +0x8EA5C2CA 0x26D0F +0x8EA5C2CB 0x26D2D +0x8EA5C2CC 0x26D50 +0x8EA5C2CD 0x26CFE +0x8EA5C2CE 0x26CC4 +0x8EA5C2CF 0x26CE1 +0x8EA5C2D0 0x26CF9 +0x8EA5C2D1 0x271BB +0x8EA5C2D2 0x271BC +0x8EA5C2D3 0x4594 +0x8EA5C2D4 0x4593 +0x8EA5C2D5 0x271BA +0x8EA5C2D6 0x272D0 +0x8EA5C2D7 0x272D6 +0x8EA5C2D8 0x272CE +0x8EA5C2D9 0x272E1 +0x8EA5C2DA 0x272D5 +0x8EA5C2DB 0x272CF +0x8EA5C2DC 0x272D3 +0x8EA5C2DD 0x8714 +0x8EA5C2DE 0x272D4 +0x8EA5C2DF 0x275B5 +0x8EA5C2E0 0x27690 +0x8EA5C2E1 0x276A1 +0x8EA5C2E2 0x27681 +0x8EA5C2E3 0x27685 +0x8EA5C2E4 0x2766E +0x8EA5C2E5 0x27688 +0x8EA5C2E6 0x27682 +0x8EA5C2E7 0x27686 +0x8EA5C2E8 0x2768F +0x8EA5C2E9 0x27689 +0x8EA5C2EA 0x27680 +0x8EA5C2EB 0x27684 +0x8EA5C2EC 0x88D1 +0x8EA5C2ED 0x27829 +0x8EA5C2EE 0x2782B +0x8EA5C2EF 0x2782A +0x8EA5C2F0 0x27830 +0x8EA5C2F1 0x278E2 +0x8EA5C2F2 0x278E3 +0x8EA5C2F3 0x278E1 +0x8EA5C2F4 0x279D5 +0x8EA5C2F5 0x279C4 +0x8EA5C2F6 0x279C9 +0x8EA5C2F7 0x279E0 +0x8EA5C2F8 0x279DF +0x8EA5C2F9 0x279CB +0x8EA5C2FA 0x279DD +0x8EA5C2FB 0x279E8 +0x8EA5C2FC 0x279D4 +0x8EA5C2FD 0x27A1C +0x8EA5C2FE 0x27BB5 +0x8EA5C3A1 0x27BB6 +0x8EA5C3A2 0x27BE5 +0x8EA5C3A3 0x27C45 +0x8EA5C3A4 0x27C49 +0x8EA5C3A5 0x27C40 +0x8EA5C3A6 0x27C46 +0x8EA5C3A7 0x27C44 +0x8EA5C3A8 0x27C4A +0x8EA5C3A9 0x27CC9 +0x8EA5C3AA 0x27CC4 +0x8EA5C3AB 0x27CC2 +0x8EA5C3AC 0x27D68 +0x8EA5C3AD 0x8CCB +0x8EA5C3AE 0x27D82 +0x8EA5C3AF 0x27D6B +0x8EA5C3B0 0x27D67 +0x8EA5C3B1 0x27D6C +0x8EA5C3B2 0x27D6D +0x8EA5C3B3 0x27D71 +0x8EA5C3B4 0x4792 +0x8EA5C3B5 0x27ED7 +0x8EA5C3B6 0x27ED2 +0x8EA5C3B7 0x27ED9 +0x8EA5C3B8 0x47AA +0x8EA5C3B9 0x27EBC +0x8EA5C3BA 0x27EDD +0x8EA5C3BB 0x27ED6 +0x8EA5C3BC 0x47A7 +0x8EA5C3BD 0x27ED8 +0x8EA5C3BE 0x28020 +0x8EA5C3BF 0x28016 +0x8EA5C3C0 0x28018 +0x8EA5C3C1 0x28015 +0x8EA5C3C2 0x28019 +0x8EA5C3C3 0x28027 +0x8EA5C3C4 0x28050 +0x8EA5C3C5 0x2801D +0x8EA5C3C6 0x2802C +0x8EA5C3C7 0x2801C +0x8EA5C3C8 0x28029 +0x8EA5C3C9 0x2802B +0x8EA5C3CA 0x28024 +0x8EA5C3CB 0x47EF +0x8EA5C3CC 0x28028 +0x8EA5C3CD 0x28239 +0x8EA5C3CE 0x282F2 +0x8EA5C3CF 0x282F0 +0x8EA5C3D0 0x8EED +0x8EA5C3D1 0x282ED +0x8EA5C3D2 0x282EF +0x8EA5C3D3 0x282EA +0x8EA5C3D4 0x28301 +0x8EA5C3D5 0x284BC +0x8EA5C3D6 0x2855C +0x8EA5C3D7 0x2855B +0x8EA5C3D8 0x2855A +0x8EA5C3D9 0x28526 +0x8EA5C3DA 0x28743 +0x8EA5C3DB 0x28733 +0x8EA5C3DC 0x2873A +0x8EA5C3DD 0x28737 +0x8EA5C3DE 0x28736 +0x8EA5C3DF 0x2873C +0x8EA5C3E0 0x28734 +0x8EA5C3E1 0x2874A +0x8EA5C3E2 0x2873B +0x8EA5C3E3 0x28735 +0x8EA5C3E4 0x2873D +0x8EA5C3E5 0x28740 +0x8EA5C3E6 0x2873E +0x8EA5C3E7 0x28717 +0x8EA5C3E8 0x28826 +0x8EA5C3E9 0x28824 +0x8EA5C3EA 0x28810 +0x8EA5C3EB 0x28836 +0x8EA5C3EC 0x28825 +0x8EA5C3ED 0x4922 +0x8EA5C3EE 0x28966 +0x8EA5C3EF 0x28C7F +0x8EA5C3F0 0x28C7A +0x8EA5C3F1 0x28CFB +0x8EA5C3F2 0x28CFD +0x8EA5C3F3 0x28CFC +0x8EA5C3F4 0x28CFA +0x8EA5C3F5 0x28ED6 +0x8EA5C3F6 0x28ED2 +0x8EA5C3F7 0x28EC8 +0x8EA5C3F8 0x28EC2 +0x8EA5C3F9 0x28EC7 +0x8EA5C3FA 0x28ECD +0x8EA5C3FB 0x28EC1 +0x8EA5C3FC 0x28EC6 +0x8EA5C3FD 0x28ECC +0x8EA5C3FE 0x28FA1 +0x8EA5C4A1 0x29095 +0x8EA5C4A2 0x29094 +0x8EA5C4A3 0x29097 +0x8EA5C4A4 0x29096 +0x8EA5C4A5 0x29093 +0x8EA5C4A6 0x290A1 +0x8EA5C4A7 0x29209 +0x8EA5C4A8 0x29208 +0x8EA5C4A9 0x29267 +0x8EA5C4AA 0x29265 +0x8EA5C4AB 0x29262 +0x8EA5C4AC 0x29261 +0x8EA5C4AD 0x29397 +0x8EA5C4AE 0x29401 +0x8EA5C4AF 0x29419 +0x8EA5C4B0 0x29418 +0x8EA5C4B1 0x2945C +0x8EA5C4B2 0x29467 +0x8EA5C4B3 0x2946C +0x8EA5C4B4 0x4AB5 +0x8EA5C4B5 0x2F9FD +0x8EA5C4B6 0x29466 +0x8EA5C4B7 0x29461 +0x8EA5C4B8 0x2946E +0x8EA5C4B9 0x2945D +0x8EA5C4BA 0x2945A +0x8EA5C4BB 0x295A2 +0x8EA5C4BC 0x295A9 +0x8EA5C4BD 0x295A5 +0x8EA5C4BE 0x295A6 +0x8EA5C4BF 0x295B2 +0x8EA5C4C0 0x295A3 +0x8EA5C4C1 0x296AC +0x8EA5C4C2 0x296AA +0x8EA5C4C3 0x296AF +0x8EA5C4C4 0x296AB +0x8EA5C4C5 0x296B1 +0x8EA5C4C6 0x296C6 +0x8EA5C4C7 0x296AD +0x8EA5C4C8 0x296B9 +0x8EA5C4C9 0x29870 +0x8EA5C4CA 0x4B75 +0x8EA5C4CB 0x29C0C +0x8EA5C4CC 0x29C81 +0x8EA5C4CD 0x29C83 +0x8EA5C4CE 0x29C7E +0x8EA5C4CF 0x29D51 +0x8EA5C4D0 0x29F99 +0x8EA5C4D1 0x29F94 +0x8EA5C4D2 0x29F95 +0x8EA5C4D3 0x2A2FE +0x8EA5C4D4 0x2A418 +0x8EA5C4D5 0x20105 +0x8EA5C4D6 0x20372 +0x8EA5C4D7 0x3482 +0x8EA5C4D8 0x20399 +0x8EA5C4D9 0x204AD +0x8EA5C4DA 0x20606 +0x8EA5C4DB 0x207C2 +0x8EA5C4DC 0x207CB +0x8EA5C4DD 0x207D5 +0x8EA5C4DE 0x207D2 +0x8EA5C4DF 0x207CC +0x8EA5C4E0 0x207D7 +0x8EA5C4E1 0x207C5 +0x8EA5C4E2 0x207CA +0x8EA5C4E3 0x52EC +0x8EA5C4E4 0x208A2 +0x8EA5C4E5 0x208A3 +0x8EA5C4E6 0x208A1 +0x8EA5C4E7 0x52E8 +0x8EA5C4E8 0x208A6 +0x8EA5C4E9 0x208A4 +0x8EA5C4EA 0x208FF +0x8EA5C4EB 0x20900 +0x8EA5C4EC 0x3535 +0x8EA5C4ED 0x20A06 +0x8EA5C4EE 0x20A25 +0x8EA5C4EF 0x20A9F +0x8EA5C4F0 0x20B7F +0x8EA5C4F1 0x20EEA +0x8EA5C4F2 0x20EEB +0x8EA5C4F3 0x20EDE +0x8EA5C4F4 0x20F18 +0x8EA5C4F5 0x20EE0 +0x8EA5C4F6 0x20EE8 +0x8EA5C4F7 0x20EDF +0x8EA5C4F8 0x20EF1 +0x8EA5C4F9 0x20EEC +0x8EA5C4FA 0x20F1A +0x8EA5C4FB 0x20EE6 +0x8EA5C4FC 0x20EE1 +0x8EA5C4FD 0x20F5D +0x8EA5C4FE 0x20077 +0x8EA5C5A1 0x20F1E +0x8EA5C5A2 0x35F0 +0x8EA5C5A3 0x20F80 +0x8EA5C5A4 0x21217 +0x8EA5C5A5 0x2141D +0x8EA5C5A6 0x213F7 +0x8EA5C5A7 0x213EF +0x8EA5C5A8 0x213EE +0x8EA5C5A9 0x213ED +0x8EA5C5AA 0x213F5 +0x8EA5C5AB 0x2141E +0x8EA5C5AC 0x215BD +0x8EA5C5AD 0x257FF +0x8EA5C5AE 0x215BE +0x8EA5C5AF 0x2166D +0x8EA5C5B0 0x21676 +0x8EA5C5B1 0x2184C +0x8EA5C5B2 0x21819 +0x8EA5C5B3 0x21848 +0x8EA5C5B4 0x2181E +0x8EA5C5B5 0x2184A +0x8EA5C5B6 0x21849 +0x8EA5C5B7 0x21826 +0x8EA5C5B8 0x21995 +0x8EA5C5B9 0x21A85 +0x8EA5C5BA 0x21A7E +0x8EA5C5BB 0x21A97 +0x8EA5C5BC 0x21A7D +0x8EA5C5BD 0x21B42 +0x8EA5C5BE 0x21B9E +0x8EA5C5BF 0x21C0C +0x8EA5C5C0 0x21C0B +0x8EA5C5C1 0x21C0E +0x8EA5C5C2 0x21CCF +0x8EA5C5C3 0x21ED8 +0x8EA5C5C4 0x21EE0 +0x8EA5C5C5 0x21EE8 +0x8EA5C5C6 0x21EE9 +0x8EA5C5C7 0x21EE2 +0x8EA5C5C8 0x21EE1 +0x8EA5C5C9 0x21EDA +0x8EA5C5CA 0x21EE3 +0x8EA5C5CB 0x21ED9 +0x8EA5C5CC 0x21EF0 +0x8EA5C5CD 0x21EE7 +0x8EA5C5CE 0x21EE4 +0x8EA5C5CF 0x22123 +0x8EA5C5D0 0x22131 +0x8EA5C5D1 0x22133 +0x8EA5C5D2 0x2210C +0x8EA5C5D3 0x269E0 +0x8EA5C5D4 0x22126 +0x8EA5C5D5 0x22124 +0x8EA5C5D6 0x22132 +0x8EA5C5D7 0x22127 +0x8EA5C5D8 0x22121 +0x8EA5C5D9 0x22130 +0x8EA5C5DA 0x221A2 +0x8EA5C5DB 0x221CC +0x8EA5C5DC 0x22296 +0x8EA5C5DD 0x2F88F +0x8EA5C5DE 0x22298 +0x8EA5C5DF 0x2229C +0x8EA5C5E0 0x2229B +0x8EA5C5E1 0x2236B +0x8EA5C5E2 0x22412 +0x8EA5C5E3 0x22414 +0x8EA5C5E4 0x2255A +0x8EA5C5E5 0x22554 +0x8EA5C5E6 0x22551 +0x8EA5C5E7 0x2255E +0x8EA5C5E8 0x22558 +0x8EA5C5E9 0x38F0 +0x8EA5C5EA 0x22559 +0x8EA5C5EB 0x2279A +0x8EA5C5EC 0x227F2 +0x8EA5C5ED 0x227AD +0x8EA5C5EE 0x22820 +0x8EA5C5EF 0x227F1 +0x8EA5C5F0 0x227F0 +0x8EA5C5F1 0x227F3 +0x8EA5C5F2 0x227F4 +0x8EA5C5F3 0x227E9 +0x8EA5C5F4 0x227FE +0x8EA5C5F5 0x2282E +0x8EA5C5F6 0x227E8 +0x8EA5C5F7 0x227E7 +0x8EA5C5F8 0x227FF +0x8EA5C5F9 0x227F5 +0x8EA5C5FA 0x229E5 +0x8EA5C5FB 0x229E7 +0x8EA5C5FC 0x229E6 +0x8EA5C5FD 0x229E9 +0x8EA5C5FE 0x22A58 +0x8EA5C6A1 0x22C6C +0x8EA5C6A2 0x22CD9 +0x8EA5C6A3 0x3A3E +0x8EA5C6A4 0x22CCB +0x8EA5C6A5 0x3A39 +0x8EA5C6A6 0x22CBE +0x8EA5C6A7 0x22CB5 +0x8EA5C6A8 0x22CD1 +0x8EA5C6A9 0x22CC2 +0x8EA5C6AA 0x22CB6 +0x8EA5C6AB 0x22CD3 +0x8EA5C6AC 0x2F8C2 +0x8EA5C6AD 0x22EDA +0x8EA5C6AE 0x3AA2 +0x8EA5C6AF 0x22FAE +0x8EA5C6B0 0x3AA1 +0x8EA5C6B1 0x22FAC +0x8EA5C6B2 0x22FA9 +0x8EA5C6B3 0x22FBA +0x8EA5C6B4 0x22FA7 +0x8EA5C6B5 0x22FB3 +0x8EA5C6B6 0x22FBD +0x8EA5C6B7 0x22FB1 +0x8EA5C6B8 0x2310E +0x8EA5C6B9 0x23111 +0x8EA5C6BA 0x2310F +0x8EA5C6BB 0x23252 +0x8EA5C6BC 0x2326A +0x8EA5C6BD 0x23254 +0x8EA5C6BE 0x23255 +0x8EA5C6BF 0x23253 +0x8EA5C6C0 0x23257 +0x8EA5C6C1 0x2F8D0 +0x8EA5C6C2 0x2325B +0x8EA5C6C3 0x23258 +0x8EA5C6C4 0x23259 +0x8EA5C6C5 0x3B3B +0x8EA5C6C6 0x235B8 +0x8EA5C6C7 0x235B5 +0x8EA5C6C8 0x235BF +0x8EA5C6C9 0x235C1 +0x8EA5C6CA 0x235BB +0x8EA5C6CB 0x3BB7 +0x8EA5C6CC 0x235C3 +0x8EA5C6CD 0x235AD +0x8EA5C6CE 0x235A8 +0x8EA5C6CF 0x235AE +0x8EA5C6D0 0x235AA +0x8EA5C6D1 0x235D0 +0x8EA5C6D2 0x235B1 +0x8EA5C6D3 0x235BC +0x8EA5C6D4 0x235B7 +0x8EA5C6D5 0x235B0 +0x8EA5C6D6 0x235FA +0x8EA5C6D7 0x235FB +0x8EA5C6D8 0x235B9 +0x8EA5C6D9 0x23907 +0x8EA5C6DA 0x238FC +0x8EA5C6DB 0x238FF +0x8EA5C6DC 0x238F2 +0x8EA5C6DD 0x238F8 +0x8EA5C6DE 0x238F4 +0x8EA5C6DF 0x3C57 +0x8EA5C6E0 0x3C70 +0x8EA5C6E1 0x23AAE +0x8EA5C6E2 0x23B0F +0x8EA5C6E3 0x23B10 +0x8EA5C6E4 0x29AC1 +0x8EA5C6E5 0x23BC7 +0x8EA5C6E6 0x23BC6 +0x8EA5C6E7 0x23BCE +0x8EA5C6E8 0x3CA7 +0x8EA5C6E9 0x23BDC +0x8EA5C6EA 0x23ED5 +0x8EA5C6EB 0x23ED3 +0x8EA5C6EC 0x23F20 +0x8EA5C6ED 0x23EE2 +0x8EA5C6EE 0x23EF1 +0x8EA5C6EF 0x23EDB +0x8EA5C6F0 0x23EEA +0x8EA5C6F1 0x23EEB +0x8EA5C6F2 0x23EE1 +0x8EA5C6F3 0x23EFF +0x8EA5C6F4 0x23ED6 +0x8EA5C6F5 0x23EE0 +0x8EA5C6F6 0x23ED7 +0x8EA5C6F7 0x23EE5 +0x8EA5C6F8 0x3D54 +0x8EA5C6F9 0x2431B +0x8EA5C6FA 0x24310 +0x8EA5C6FB 0x2430F +0x8EA5C6FC 0x2430E +0x8EA5C6FD 0x24339 +0x8EA5C6FE 0x2430A +0x8EA5C7A1 0x24314 +0x8EA5C7A2 0x2430C +0x8EA5C7A3 0x24523 +0x8EA5C7A4 0x2455A +0x8EA5C7A5 0x245E2 +0x8EA5C7A6 0x24693 +0x8EA5C7A7 0x246B0 +0x8EA5C7A8 0x246AB +0x8EA5C7A9 0x246BD +0x8EA5C7AA 0x246B1 +0x8EA5C7AB 0x2468D +0x8EA5C7AC 0x246AD +0x8EA5C7AD 0x246AA +0x8EA5C7AE 0x246AC +0x8EA5C7AF 0x246BC +0x8EA5C7B0 0x246C9 +0x8EA5C7B1 0x24847 +0x8EA5C7B2 0x24862 +0x8EA5C7B3 0x24840 +0x8EA5C7B4 0x24844 +0x8EA5C7B5 0x2483F +0x8EA5C7B6 0x24843 +0x8EA5C7B7 0x2483D +0x8EA5C7B8 0x24860 +0x8EA5C7B9 0x2485F +0x8EA5C7BA 0x2483A +0x8EA5C7BB 0x24842 +0x8EA5C7BC 0x2485E +0x8EA5C7BD 0x2485D +0x8EA5C7BE 0x249BC +0x8EA5C7BF 0x249E0 +0x8EA5C7C0 0x249EE +0x8EA5C7C1 0x249EB +0x8EA5C7C2 0x24A0D +0x8EA5C7C3 0x24B09 +0x8EA5C7C4 0x24B0C +0x8EA5C7C5 0x24B69 +0x8EA5C7C6 0x24B74 +0x8EA5C7C7 0x24B67 +0x8EA5C7C8 0x3F31 +0x8EA5C7C9 0x7527 +0x8EA5C7CA 0x24CAD +0x8EA5C7CB 0x24DFF +0x8EA5C7CC 0x24E16 +0x8EA5C7CD 0x24E08 +0x8EA5C7CE 0x24E09 +0x8EA5C7CF 0x24E00 +0x8EA5C7D0 0x24DFC +0x8EA5C7D1 0x24E13 +0x8EA5C7D2 0x24E14 +0x8EA5C7D3 0x24E0A +0x8EA5C7D4 0x2983E +0x8EA5C7D5 0x24E29 +0x8EA5C7D6 0x24E17 +0x8EA5C7D7 0x24E3B +0x8EA5C7D8 0x24DFB +0x8EA5C7D9 0x3FBF +0x8EA5C7DA 0x24E0E +0x8EA5C7DB 0x3FE4 +0x8EA5C7DC 0x25008 +0x8EA5C7DD 0x2521B +0x8EA5C7DE 0x2521A +0x8EA5C7DF 0x25219 +0x8EA5C7E0 0x25202 +0x8EA5C7E1 0x404A +0x8EA5C7E2 0x25217 +0x8EA5C7E3 0x25207 +0x8EA5C7E4 0x25213 +0x8EA5C7E5 0x25209 +0x8EA5C7E6 0x2520A +0x8EA5C7E7 0x25212 +0x8EA5C7E8 0x252AA +0x8EA5C7E9 0x25238 +0x8EA5C7EA 0x2537B +0x8EA5C7EB 0x2537C +0x8EA5C7EC 0x2537A +0x8EA5C7ED 0x253EA +0x8EA5C7EE 0x253EB +0x8EA5C7EF 0x253EF +0x8EA5C7F0 0x253F0 +0x8EA5C7F1 0x25509 +0x8EA5C7F2 0x25502 +0x8EA5C7F3 0x25501 +0x8EA5C7F4 0x2552B +0x8EA5C7F5 0x25507 +0x8EA5C7F6 0x40CF +0x8EA5C7F7 0x25528 +0x8EA5C7F8 0x254FB +0x8EA5C7F9 0x2552A +0x8EA5C7FA 0x254FE +0x8EA5C7FB 0x25504 +0x8EA5C7FC 0x25529 +0x8EA5C7FD 0x2550A +0x8EA5C7FE 0x798C +0x8EA5C8A1 0x256C2 +0x8EA5C8A2 0x7991 +0x8EA5C8A3 0x256A6 +0x8EA5C8A4 0x4114 +0x8EA5C8A5 0x22FC6 +0x8EA5C8A6 0x21C07 +0x8EA5C8A7 0x2580A +0x8EA5C8A8 0x257FD +0x8EA5C8A9 0x25806 +0x8EA5C8AA 0x2580D +0x8EA5C8AB 0x25809 +0x8EA5C8AC 0x2580B +0x8EA5C8AD 0x25800 +0x8EA5C8AE 0x25805 +0x8EA5C8AF 0x2583D +0x8EA5C8B0 0x259D5 +0x8EA5C8B1 0x259BF +0x8EA5C8B2 0x259BA +0x8EA5C8B3 0x259C7 +0x8EA5C8B4 0x25A98 +0x8EA5C8B5 0x25A9A +0x8EA5C8B6 0x420D +0x8EA5C8B7 0x25BA4 +0x8EA5C8B8 0x25B9C +0x8EA5C8B9 0x25B9D +0x8EA5C8BA 0x25BA2 +0x8EA5C8BB 0x25B96 +0x8EA5C8BC 0x25B95 +0x8EA5C8BD 0x25BA5 +0x8EA5C8BE 0x25BAA +0x8EA5C8BF 0x25BAD +0x8EA5C8C0 0x25B9A +0x8EA5C8C1 0x25BA3 +0x8EA5C8C2 0x25B97 +0x8EA5C8C3 0x25B90 +0x8EA5C8C4 0x25BAF +0x8EA5C8C5 0x25B8D +0x8EA5C8C6 0x4201 +0x8EA5C8C7 0x25BA8 +0x8EA5C8C8 0x25BEE +0x8EA5C8C9 0x25EA3 +0x8EA5C8CA 0x25E99 +0x8EA5C8CB 0x25EA1 +0x8EA5C8CC 0x25E9C +0x8EA5C8CD 0x25EA4 +0x8EA5C8CE 0x25ECB +0x8EA5C8CF 0x26056 +0x8EA5C8D0 0x26048 +0x8EA5C8D1 0x26059 +0x8EA5C8D2 0x2604A +0x8EA5C8D3 0x2605C +0x8EA5C8D4 0x42F1 +0x8EA5C8D5 0x2604F +0x8EA5C8D6 0x2604D +0x8EA5C8D7 0x2605D +0x8EA5C8D8 0x2623A +0x8EA5C8D9 0x262E3 +0x8EA5C8DA 0x262E1 +0x8EA5C8DB 0x262DE +0x8EA5C8DC 0x26397 +0x8EA5C8DD 0x2639A +0x8EA5C8DE 0x26448 +0x8EA5C8DF 0x2644A +0x8EA5C8E0 0x2644C +0x8EA5C8E1 0x2644E +0x8EA5C8E2 0x2644F +0x8EA5C8E3 0x2644B +0x8EA5C8E4 0x2644D +0x8EA5C8E5 0x26447 +0x8EA5C8E6 0x26451 +0x8EA5C8E7 0x264DA +0x8EA5C8E8 0x264F9 +0x8EA5C8E9 0x264FC +0x8EA5C8EA 0x264FB +0x8EA5C8EB 0x264FD +0x8EA5C8EC 0x264F8 +0x8EA5C8ED 0x264FA +0x8EA5C8EE 0x2658A +0x8EA5C8EF 0x2658E +0x8EA5C8F0 0x26588 +0x8EA5C8F1 0x26589 +0x8EA5C8F2 0x2658D +0x8EA5C8F3 0x26590 +0x8EA5C8F4 0x2F97E +0x8EA5C8F5 0x2671C +0x8EA5C8F6 0x267AB +0x8EA5C8F7 0x267A4 +0x8EA5C8F8 0x267A8 +0x8EA5C8F9 0x267AD +0x8EA5C8FA 0x2679F +0x8EA5C8FB 0x2679A +0x8EA5C8FC 0x267B0 +0x8EA5C8FD 0x267A5 +0x8EA5C8FE 0x267D5 +0x8EA5C9A1 0x267A2 +0x8EA5C9A2 0x267B2 +0x8EA5C9A3 0x2679D +0x8EA5C9A4 0x267A1 +0x8EA5C9A5 0x26915 +0x8EA5C9A6 0x26942 +0x8EA5C9A7 0x26973 +0x8EA5C9A8 0x26984 +0x8EA5C9A9 0x269DD +0x8EA5C9AA 0x26A5C +0x8EA5C9AB 0x26A4C +0x8EA5C9AC 0x4476 +0x8EA5C9AD 0x26A4B +0x8EA5C9AE 0x26C67 +0x8EA5C9AF 0x26DA8 +0x8EA5C9B0 0x26D7F +0x8EA5C9B1 0x26D8D +0x8EA5C9B2 0x26D8B +0x8EA5C9B3 0x26DF7 +0x8EA5C9B4 0x26DA9 +0x8EA5C9B5 0x26DF4 +0x8EA5C9B6 0x26D9A +0x8EA5C9B7 0x26D8C +0x8EA5C9B8 0x26D95 +0x8EA5C9B9 0x26D7E +0x8EA5C9BA 0x26D77 +0x8EA5C9BB 0x450A +0x8EA5C9BC 0x4503 +0x8EA5C9BD 0x26D71 +0x8EA5C9BE 0x26DFD +0x8EA5C9BF 0x26D88 +0x8EA5C9C0 0x26D99 +0x8EA5C9C1 0x26D6D +0x8EA5C9C2 0x26DD4 +0x8EA5C9C3 0x26D91 +0x8EA5C9C4 0x26D7D +0x8EA5C9C5 0x26D63 +0x8EA5C9C6 0x26D75 +0x8EA5C9C7 0x26DF9 +0x8EA5C9C8 0x26D8E +0x8EA5C9C9 0x26D74 +0x8EA5C9CA 0x26DD9 +0x8EA5C9CB 0x26D66 +0x8EA5C9CC 0x26DFA +0x8EA5C9CD 0x26DF5 +0x8EA5C9CE 0x8660 +0x8EA5C9CF 0x271C1 +0x8EA5C9D0 0x271C9 +0x8EA5C9D1 0x27303 +0x8EA5C9D2 0x2732C +0x8EA5C9D3 0x27334 +0x8EA5C9D4 0x27317 +0x8EA5C9D5 0x27309 +0x8EA5C9D6 0x27304 +0x8EA5C9D7 0x27306 +0x8EA5C9D8 0x2731A +0x8EA5C9D9 0x2730E +0x8EA5C9DA 0x27327 +0x8EA5C9DB 0x27305 +0x8EA5C9DC 0x27307 +0x8EA5C9DD 0x27319 +0x8EA5C9DE 0x27314 +0x8EA5C9DF 0x2730C +0x8EA5C9E0 0x2731D +0x8EA5C9E1 0x27322 +0x8EA5C9E2 0x27323 +0x8EA5C9E3 0x275BB +0x8EA5C9E4 0x275BC +0x8EA5C9E5 0x275BA +0x8EA5C9E6 0x276A9 +0x8EA5C9E7 0x276B5 +0x8EA5C9E8 0x276AC +0x8EA5C9E9 0x276AA +0x8EA5C9EA 0x276AF +0x8EA5C9EB 0x276B7 +0x8EA5C9EC 0x4635 +0x8EA5C9ED 0x4636 +0x8EA5C9EE 0x2783D +0x8EA5C9EF 0x27845 +0x8EA5C9F0 0x27848 +0x8EA5C9F1 0x2783C +0x8EA5C9F2 0x2783E +0x8EA5C9F3 0x278EC +0x8EA5C9F4 0x278ED +0x8EA5C9F5 0x278E9 +0x8EA5C9F6 0x27A0A +0x8EA5C9F7 0x27A0B +0x8EA5C9F8 0x279F8 +0x8EA5C9F9 0x27A04 +0x8EA5C9FA 0x279F6 +0x8EA5C9FB 0x279F9 +0x8EA5C9FC 0x27C53 +0x8EA5C9FD 0x27C52 +0x8EA5C9FE 0x27C60 +0x8EA5CAA1 0x27C63 +0x8EA5CAA2 0x27CCE +0x8EA5CAA3 0x27CCD +0x8EA5CAA4 0x27CD0 +0x8EA5CAA5 0x27CCC +0x8EA5CAA6 0x27D87 +0x8EA5CAA7 0x27D8D +0x8EA5CAA8 0x27D9D +0x8EA5CAA9 0x4773 +0x8EA5CAAA 0x27E63 +0x8EA5CAAB 0x27EF4 +0x8EA5CAAC 0x27EF1 +0x8EA5CAAD 0x27EFF +0x8EA5CAAE 0x27EF5 +0x8EA5CAAF 0x27EFC +0x8EA5CAB0 0x27EF2 +0x8EA5CAB1 0x27EF6 +0x8EA5CAB2 0x47B1 +0x8EA5CAB3 0x27EFA +0x8EA5CAB4 0x47AF +0x8EA5CAB5 0x2802E +0x8EA5CAB6 0x28045 +0x8EA5CAB7 0x28043 +0x8EA5CAB8 0x28051 +0x8EA5CAB9 0x2804C +0x8EA5CABA 0x28073 +0x8EA5CABB 0x28047 +0x8EA5CABC 0x2804B +0x8EA5CABD 0x2804F +0x8EA5CABE 0x47F4 +0x8EA5CABF 0x28044 +0x8EA5CAC0 0x2804D +0x8EA5CAC1 0x2804E +0x8EA5CAC2 0x2804A +0x8EA5CAC3 0x28041 +0x8EA5CAC4 0x28052 +0x8EA5CAC5 0x2809F +0x8EA5CAC6 0x28054 +0x8EA5CAC7 0x28059 +0x8EA5CAC8 0x280A2 +0x8EA5CAC9 0x2824B +0x8EA5CACA 0x28248 +0x8EA5CACB 0x2830D +0x8EA5CACC 0x2831F +0x8EA5CACD 0x28308 +0x8EA5CACE 0x2830E +0x8EA5CACF 0x2831D +0x8EA5CAD0 0x28304 +0x8EA5CAD1 0x28418 +0x8EA5CAD2 0x2841B +0x8EA5CAD3 0x28566 +0x8EA5CAD4 0x28562 +0x8EA5CAD5 0x28583 +0x8EA5CAD6 0x28567 +0x8EA5CAD7 0x28762 +0x8EA5CAD8 0x2874F +0x8EA5CAD9 0x2874E +0x8EA5CADA 0x28767 +0x8EA5CADB 0x28753 +0x8EA5CADC 0x2874D +0x8EA5CADD 0x2874C +0x8EA5CADE 0x28768 +0x8EA5CADF 0x28751 +0x8EA5CAE0 0x48DC +0x8EA5CAE1 0x28758 +0x8EA5CAE2 0x2875B +0x8EA5CAE3 0x28750 +0x8EA5CAE4 0x2876A +0x8EA5CAE5 0x28839 +0x8EA5CAE6 0x28838 +0x8EA5CAE7 0x28982 +0x8EA5CAE8 0x28984 +0x8EA5CAE9 0x28986 +0x8EA5CAEA 0x28C80 +0x8EA5CAEB 0x28C86 +0x8EA5CAEC 0x28D25 +0x8EA5CAED 0x28D11 +0x8EA5CAEE 0x4999 +0x8EA5CAEF 0x28D0E +0x8EA5CAF0 0x28D15 +0x8EA5CAF1 0x28D0F +0x8EA5CAF2 0x28D18 +0x8EA5CAF3 0x28D0D +0x8EA5CAF4 0x28D13 +0x8EA5CAF5 0x28D16 +0x8EA5CAF6 0x28D19 +0x8EA5CAF7 0x28F08 +0x8EA5CAF8 0x28EF7 +0x8EA5CAF9 0x28EFB +0x8EA5CAFA 0x28EFC +0x8EA5CAFB 0x28FB4 +0x8EA5CAFC 0x28FBE +0x8EA5CAFD 0x28FC1 +0x8EA5CAFE 0x290A6 +0x8EA5CBA1 0x290A5 +0x8EA5CBA2 0x290A2 +0x8EA5CBA3 0x290A4 +0x8EA5CBA4 0x29212 +0x8EA5CBA5 0x2920E +0x8EA5CBA6 0x2927A +0x8EA5CBA7 0x29278 +0x8EA5CBA8 0x2927D +0x8EA5CBA9 0x2927E +0x8EA5CBAA 0x29281 +0x8EA5CBAB 0x29283 +0x8EA5CBAC 0x29280 +0x8EA5CBAD 0x29282 +0x8EA5CBAE 0x2939B +0x8EA5CBAF 0x29399 +0x8EA5CBB0 0x2939C +0x8EA5CBB1 0x2939A +0x8EA5CBB2 0x293A1 +0x8EA5CBB3 0x2941A +0x8EA5CBB4 0x2941C +0x8EA5CBB5 0x2948A +0x8EA5CBB6 0x29479 +0x8EA5CBB7 0x29473 +0x8EA5CBB8 0x29475 +0x8EA5CBB9 0x2947C +0x8EA5CBBA 0x29478 +0x8EA5CBBB 0x29460 +0x8EA5CBBC 0x29483 +0x8EA5CBBD 0x29470 +0x8EA5CBBE 0x4AB6 +0x8EA5CBBF 0x4ABD +0x8EA5CBC0 0x29487 +0x8EA5CBC1 0x29484 +0x8EA5CBC2 0x2947B +0x8EA5CBC3 0x2947E +0x8EA5CBC4 0x29474 +0x8EA5CBC5 0x295B9 +0x8EA5CBC6 0x295B8 +0x8EA5CBC7 0x295B7 +0x8EA5CBC8 0x295B5 +0x8EA5CBC9 0x296CC +0x8EA5CBCA 0x296CE +0x8EA5CBCB 0x296D1 +0x8EA5CBCC 0x9904 +0x8EA5CBCD 0x296CB +0x8EA5CBCE 0x999B +0x8EA5CBCF 0x2987E +0x8EA5CBD0 0x2987A +0x8EA5CBD1 0x29877 +0x8EA5CBD2 0x2988C +0x8EA5CBD3 0x298E1 +0x8EA5CBD4 0x29A20 +0x8EA5CBD5 0x29A1E +0x8EA5CBD6 0x29AC2 +0x8EA5CBD7 0x29B0F +0x8EA5CBD8 0x29B00 +0x8EA5CBD9 0x4BF4 +0x8EA5CBDA 0x29B10 +0x8EA5CBDB 0x29C0D +0x8EA5CBDC 0x29C0E +0x8EA5CBDD 0x29C8E +0x8EA5CBDE 0x29C8D +0x8EA5CBDF 0x29C8A +0x8EA5CBE0 0x29C8B +0x8EA5CBE1 0x29C8C +0x8EA5CBE2 0x29C8F +0x8EA5CBE3 0x29D57 +0x8EA5CBE4 0x4C35 +0x8EA5CBE5 0x29D55 +0x8EA5CBE6 0x29D5B +0x8EA5CBE7 0x29FAC +0x8EA5CBE8 0x29FA7 +0x8EA5CBE9 0x29FA0 +0x8EA5CBEA 0x29F9E +0x8EA5CBEB 0x4CAA +0x8EA5CBEC 0x2A28D +0x8EA5CBED 0x4D1F +0x8EA5CBEE 0x2A393 +0x8EA5CBEF 0x2A394 +0x8EA5CBF0 0x2A392 +0x8EA5CBF1 0x20181 +0x8EA5CBF2 0x203D6 +0x8EA5CBF3 0x203C3 +0x8EA5CBF4 0x203E4 +0x8EA5CBF5 0x203E2 +0x8EA5CBF6 0x20409 +0x8EA5CBF7 0x203BF +0x8EA5CBF8 0x203C8 +0x8EA5CBF9 0x203C7 +0x8EA5CBFA 0x204B5 +0x8EA5CBFB 0x204B2 +0x8EA5CBFC 0x2060C +0x8EA5CBFD 0x2060B +0x8EA5CBFE 0x2060A +0x8EA5CCA1 0x20605 +0x8EA5CCA2 0x207D3 +0x8EA5CCA3 0x207E6 +0x8EA5CCA4 0x207E9 +0x8EA5CCA5 0x207F0 +0x8EA5CCA6 0x207EA +0x8EA5CCA7 0x207E7 +0x8EA5CCA8 0x208B1 +0x8EA5CCA9 0x208B3 +0x8EA5CCAA 0x208B4 +0x8EA5CCAB 0x208B0 +0x8EA5CCAC 0x2095C +0x8EA5CCAD 0x2095D +0x8EA5CCAE 0x2095E +0x8EA5CCAF 0x209C0 +0x8EA5CCB0 0x20AAF +0x8EA5CCB1 0x3550 +0x8EA5CCB2 0x20B86 +0x8EA5CCB3 0x20B83 +0x8EA5CCB4 0x20B84 +0x8EA5CCB5 0x20F5C +0x8EA5CCB6 0x20F70 +0x8EA5CCB7 0x20F8C +0x8EA5CCB8 0x20F7B +0x8EA5CCB9 0x20F66 +0x8EA5CCBA 0x20F79 +0x8EA5CCBB 0x20F63 +0x8EA5CCBC 0x20FC5 +0x8EA5CCBD 0x20F6B +0x8EA5CCBE 0x20F6D +0x8EA5CCBF 0x20F72 +0x8EA5CCC0 0x20F69 +0x8EA5CCC1 0x20F75 +0x8EA5CCC2 0x20F89 +0x8EA5CCC3 0x20FC6 +0x8EA5CCC4 0x20FA5 +0x8EA5CCC5 0x203E7 +0x8EA5CCC6 0x20F6A +0x8EA5CCC7 0x20F97 +0x8EA5CCC8 0x2145A +0x8EA5CCC9 0x2145C +0x8EA5CCCA 0x21459 +0x8EA5CCCB 0x21424 +0x8EA5CCCC 0x21425 +0x8EA5CCCD 0x21430 +0x8EA5CCCE 0x21458 +0x8EA5CCCF 0x21431 +0x8EA5CCD0 0x21576 +0x8EA5CCD1 0x215C1 +0x8EA5CCD2 0x21685 +0x8EA5CCD3 0x2167D +0x8EA5CCD4 0x21865 +0x8EA5CCD5 0x21887 +0x8EA5CCD6 0x21852 +0x8EA5CCD7 0x21854 +0x8EA5CCD8 0x2188A +0x8EA5CCD9 0x21850 +0x8EA5CCDA 0x21886 +0x8EA5CCDB 0x2184F +0x8EA5CCDC 0x21868 +0x8EA5CCDD 0x2199D +0x8EA5CCDE 0x21AA0 +0x8EA5CCDF 0x21ABA +0x8EA5CCE0 0x21ABD +0x8EA5CCE1 0x21AB8 +0x8EA5CCE2 0x21BA6 +0x8EA5CCE3 0x377B +0x8EA5CCE4 0x21CDE +0x8EA5CCE5 0x21CD8 +0x8EA5CCE6 0x21CD1 +0x8EA5CCE7 0x21F13 +0x8EA5CCE8 0x3809 +0x8EA5CCE9 0x21F0E +0x8EA5CCEA 0x21F1B +0x8EA5CCEB 0x21F3A +0x8EA5CCEC 0x3807 +0x8EA5CCED 0x21F1C +0x8EA5CCEE 0x21F12 +0x8EA5CCEF 0x21F16 +0x8EA5CCF0 0x21F1A +0x8EA5CCF1 0x21448 +0x8EA5CCF2 0x2214B +0x8EA5CCF3 0x22137 +0x8EA5CCF4 0x22136 +0x8EA5CCF5 0x22138 +0x8EA5CCF6 0x2213A +0x8EA5CCF7 0x22149 +0x8EA5CCF8 0x2213C +0x8EA5CCF9 0x2214A +0x8EA5CCFA 0x222B1 +0x8EA5CCFB 0x222C2 +0x8EA5CCFC 0x222B5 +0x8EA5CCFD 0x222C4 +0x8EA5CCFE 0x222B6 +0x8EA5CDA1 0x2241E +0x8EA5CDA2 0x2241F +0x8EA5CDA3 0x224AF +0x8EA5CDA4 0x2256B +0x8EA5CDA5 0x2256F +0x8EA5CDA6 0x22792 +0x8EA5CDA7 0x227E4 +0x8EA5CDA8 0x2282C +0x8EA5CDA9 0x227EF +0x8EA5CDAA 0x6184 +0x8EA5CDAB 0x2284F +0x8EA5CDAC 0x22852 +0x8EA5CDAD 0x22850 +0x8EA5CDAE 0x2283A +0x8EA5CDAF 0x22837 +0x8EA5CDB0 0x22847 +0x8EA5CDB1 0x22864 +0x8EA5CDB2 0x22840 +0x8EA5CDB3 0x2283C +0x8EA5CDB4 0x22845 +0x8EA5CDB5 0x22841 +0x8EA5CDB6 0x229F3 +0x8EA5CDB7 0x39BB +0x8EA5CDB8 0x22CC1 +0x8EA5CDB9 0x22CB4 +0x8EA5CDBA 0x3A4B +0x8EA5CDBB 0x22D2A +0x8EA5CDBC 0x22D22 +0x8EA5CDBD 0x22D29 +0x8EA5CDBE 0x3A4D +0x8EA5CDBF 0x22D3E +0x8EA5CDC0 0x22D3C +0x8EA5CDC1 0x22D30 +0x8EA5CDC2 0x22FC7 +0x8EA5CDC3 0x22FD5 +0x8EA5CDC4 0x22FD6 +0x8EA5CDC5 0x22FD3 +0x8EA5CDC6 0x22FCE +0x8EA5CDC7 0x22FC8 +0x8EA5CDC8 0x2305C +0x8EA5CDC9 0x2305F +0x8EA5CDCA 0x23062 +0x8EA5CDCB 0x3AC2 +0x8EA5CDCC 0x230BD +0x8EA5CDCD 0x230BF +0x8EA5CDCE 0x2325C +0x8EA5CDCF 0x232B6 +0x8EA5CDD0 0x3B1A +0x8EA5CDD1 0x2329D +0x8EA5CDD2 0x2327F +0x8EA5CDD3 0x3B12 +0x8EA5CDD4 0x23294 +0x8EA5CDD5 0x23281 +0x8EA5CDD6 0x23347 +0x8EA5CDD7 0x23346 +0x8EA5CDD8 0x3B3C +0x8EA5CDD9 0x23394 +0x8EA5CDDA 0x23675 +0x8EA5CDDB 0x2361A +0x8EA5CDDC 0x2362A +0x8EA5CDDD 0x23632 +0x8EA5CDDE 0x23617 +0x8EA5CDDF 0x23623 +0x8EA5CDE0 0x23674 +0x8EA5CDE1 0x3BC3 +0x8EA5CDE2 0x23676 +0x8EA5CDE3 0x2362E +0x8EA5CDE4 0x23625 +0x8EA5CDE5 0x23620 +0x8EA5CDE6 0x23671 +0x8EA5CDE7 0x23616 +0x8EA5CDE8 0x23670 +0x8EA5CDE9 0x2362C +0x8EA5CDEA 0x2362F +0x8EA5CDEB 0x2361F +0x8EA5CDEC 0x23664 +0x8EA5CDED 0x3BC0 +0x8EA5CDEE 0x23908 +0x8EA5CDEF 0x23914 +0x8EA5CDF0 0x2390A +0x8EA5CDF1 0x2390B +0x8EA5CDF2 0x23A4F +0x8EA5CDF3 0x23A59 +0x8EA5CDF4 0x23A54 +0x8EA5CDF5 0x23A51 +0x8EA5CDF6 0x23AB6 +0x8EA5CDF7 0x23BEC +0x8EA5CDF8 0x23BED +0x8EA5CDF9 0x23BEA +0x8EA5CDFA 0x23EEE +0x8EA5CDFB 0x23F5A +0x8EA5CDFC 0x23F73 +0x8EA5CDFD 0x23F65 +0x8EA5CDFE 0x23F61 +0x8EA5CEA1 0x23F55 +0x8EA5CEA2 0x23F6B +0x8EA5CEA3 0x23F64 +0x8EA5CEA4 0x23F5B +0x8EA5CEA5 0x23F4C +0x8EA5CEA6 0x23F6F +0x8EA5CEA7 0x23F84 +0x8EA5CEA8 0x23F70 +0x8EA5CEA9 0x2435D +0x8EA5CEAA 0x24357 +0x8EA5CEAB 0x24366 +0x8EA5CEAC 0x24353 +0x8EA5CEAD 0x24398 +0x8EA5CEAE 0x24397 +0x8EA5CEAF 0x24528 +0x8EA5CEB0 0x245EB +0x8EA5CEB1 0x245EA +0x8EA5CEB2 0x245E8 +0x8EA5CEB3 0x245EC +0x8EA5CEB4 0x245EF +0x8EA5CEB5 0x246D1 +0x8EA5CEB6 0x246CA +0x8EA5CEB7 0x729F +0x8EA5CEB8 0x246CF +0x8EA5CEB9 0x246CD +0x8EA5CEBA 0x246CE +0x8EA5CEBB 0x24870 +0x8EA5CEBC 0x24867 +0x8EA5CEBD 0x24873 +0x8EA5CEBE 0x2486D +0x8EA5CEBF 0x24876 +0x8EA5CEC0 0x24879 +0x8EA5CEC1 0x2486A +0x8EA5CEC2 0x2488B +0x8EA5CEC3 0x24872 +0x8EA5CEC4 0x24871 +0x8EA5CEC5 0x2486E +0x8EA5CEC6 0x2487A +0x8EA5CEC7 0x24A16 +0x8EA5CEC8 0x24A39 +0x8EA5CEC9 0x24A3B +0x8EA5CECA 0x24B10 +0x8EA5CECB 0x24B96 +0x8EA5CECC 0x24B7B +0x8EA5CECD 0x24B7C +0x8EA5CECE 0x24B7D +0x8EA5CECF 0x24CBE +0x8EA5CED0 0x24E5C +0x8EA5CED1 0x24E38 +0x8EA5CED2 0x24E39 +0x8EA5CED3 0x24E2E +0x8EA5CED4 0x24E34 +0x8EA5CED5 0x24E32 +0x8EA5CED6 0x24E5B +0x8EA5CED7 0x24E33 +0x8EA5CED8 0x24E3C +0x8EA5CED9 0x3FE5 +0x8EA5CEDA 0x2500E +0x8EA5CEDB 0x2500F +0x8EA5CEDC 0x25010 +0x8EA5CEDD 0x25087 +0x8EA5CEDE 0x2525B +0x8EA5CEDF 0x25253 +0x8EA5CEE0 0x405F +0x8EA5CEE1 0x2525C +0x8EA5CEE2 0x2523F +0x8EA5CEE3 0x25259 +0x8EA5CEE4 0x2524A +0x8EA5CEE5 0x25244 +0x8EA5CEE6 0x2524C +0x8EA5CEE7 0x25240 +0x8EA5CEE8 0x2525F +0x8EA5CEE9 0x2525E +0x8EA5CEEA 0x2524E +0x8EA5CEEB 0x25254 +0x8EA5CEEC 0x25243 +0x8EA5CEED 0x25287 +0x8EA5CEEE 0x25382 +0x8EA5CEEF 0x25385 +0x8EA5CEF0 0x25531 +0x8EA5CEF1 0x25547 +0x8EA5CEF2 0x2552E +0x8EA5CEF3 0x2552F +0x8EA5CEF4 0x25548 +0x8EA5CEF5 0x25534 +0x8EA5CEF6 0x4118 +0x8EA5CEF7 0x2059F +0x8EA5CEF8 0x25832 +0x8EA5CEF9 0x25836 +0x8EA5CEFA 0x25833 +0x8EA5CEFB 0x25831 +0x8EA5CEFC 0x25840 +0x8EA5CEFD 0x25841 +0x8EA5CEFE 0x259DD +0x8EA5CFA1 0x259D2 +0x8EA5CFA2 0x259D9 +0x8EA5CFA3 0x41AD +0x8EA5CFA4 0x259DF +0x8EA5CFA5 0x259DB +0x8EA5CFA6 0x259D8 +0x8EA5CFA7 0x259D3 +0x8EA5CFA8 0x259DE +0x8EA5CFA9 0x259E0 +0x8EA5CFAA 0x259D4 +0x8EA5CFAB 0x259D7 +0x8EA5CFAC 0x259DA +0x8EA5CFAD 0x25AA7 +0x8EA5CFAE 0x25BFE +0x8EA5CFAF 0x25BDD +0x8EA5CFB0 0x25C40 +0x8EA5CFB1 0x25BE2 +0x8EA5CFB2 0x421E +0x8EA5CFB3 0x25BD6 +0x8EA5CFB4 0x25BDE +0x8EA5CFB5 0x25BEF +0x8EA5CFB6 0x4227 +0x8EA5CFB7 0x25BEB +0x8EA5CFB8 0x25BEA +0x8EA5CFB9 0x25BE4 +0x8EA5CFBA 0x25BD1 +0x8EA5CFBB 0x4218 +0x8EA5CFBC 0x25BEC +0x8EA5CFBD 0x25BFA +0x8EA5CFBE 0x25BD9 +0x8EA5CFBF 0x25BF3 +0x8EA5CFC0 0x25BE1 +0x8EA5CFC1 0x25BDC +0x8EA5CFC2 0x25BE5 +0x8EA5CFC3 0x25BDF +0x8EA5CFC4 0x25BD4 +0x8EA5CFC5 0x4220 +0x8EA5CFC6 0x25C05 +0x8EA5CFC7 0x25ED6 +0x8EA5CFC8 0x25ED5 +0x8EA5CFC9 0x25ED0 +0x8EA5CFCA 0x25EC8 +0x8EA5CFCB 0x25EC4 +0x8EA5CFCC 0x25EC9 +0x8EA5CFCD 0x25ECD +0x8EA5CFCE 0x25ED2 +0x8EA5CFCF 0x25ECC +0x8EA5CFD0 0x25ECA +0x8EA5CFD1 0x260A0 +0x8EA5CFD2 0x26092 +0x8EA5CFD3 0x42F4 +0x8EA5CFD4 0x4302 +0x8EA5CFD5 0x2608B +0x8EA5CFD6 0x260A1 +0x8EA5CFD7 0x26095 +0x8EA5CFD8 0x26088 +0x8EA5CFD9 0x26086 +0x8EA5CFDA 0x2608D +0x8EA5CFDB 0x26085 +0x8EA5CFDC 0x26091 +0x8EA5CFDD 0x26089 +0x8EA5CFDE 0x260A2 +0x8EA5CFDF 0x262F0 +0x8EA5CFE0 0x262F3 +0x8EA5CFE1 0x262F4 +0x8EA5CFE2 0x262EF +0x8EA5CFE3 0x26306 +0x8EA5CFE4 0x263A2 +0x8EA5CFE5 0x2645E +0x8EA5CFE6 0x26463 +0x8EA5CFE7 0x26460 +0x8EA5CFE8 0x2645B +0x8EA5CFE9 0x2647B +0x8EA5CFEA 0x26458 +0x8EA5CFEB 0x26459 +0x8EA5CFEC 0x2645D +0x8EA5CFED 0x26505 +0x8EA5CFEE 0x26506 +0x8EA5CFEF 0x26502 +0x8EA5CFF0 0x26503 +0x8EA5CFF1 0x26504 +0x8EA5CFF2 0x265A2 +0x8EA5CFF3 0x265A7 +0x8EA5CFF4 0x265A6 +0x8EA5CFF5 0x265A4 +0x8EA5CFF6 0x265AC +0x8EA5CFF7 0x265A9 +0x8EA5CFF8 0x267E7 +0x8EA5CFF9 0x26801 +0x8EA5CFFA 0x267DF +0x8EA5CFFB 0x267D9 +0x8EA5CFFC 0x267E3 +0x8EA5CFFD 0x2680F +0x8EA5CFFE 0x2691A +0x8EA5D0A1 0x26945 +0x8EA5D0A2 0x26948 +0x8EA5D0A3 0x2697B +0x8EA5D0A4 0x26985 +0x8EA5D0A5 0x26986 +0x8EA5D0A6 0x269FE +0x8EA5D0A7 0x269FF +0x8EA5D0A8 0x26A64 +0x8EA5D0A9 0x26A71 +0x8EA5D0AA 0x26A72 +0x8EA5D0AB 0x26A61 +0x8EA5D0AC 0x26A62 +0x8EA5D0AD 0x26A6C +0x8EA5D0AE 0x26A60 +0x8EA5D0AF 0x26A5D +0x8EA5D0B0 0x26A63 +0x8EA5D0B1 0x26A67 +0x8EA5D0B2 0x26E01 +0x8EA5D0B3 0x26E2A +0x8EA5D0B4 0x26E30 +0x8EA5D0B5 0x26E06 +0x8EA5D0B6 0x26E7D +0x8EA5D0B7 0x26E22 +0x8EA5D0B8 0x26EB9 +0x8EA5D0B9 0x26E0A +0x8EA5D0BA 0x26E10 +0x8EA5D0BB 0x26D8F +0x8EA5D0BC 0x26E80 +0x8EA5D0BD 0x26E13 +0x8EA5D0BE 0x26E2E +0x8EA5D0BF 0x26E18 +0x8EA5D0C0 0x26E17 +0x8EA5D0C1 0x26E1A +0x8EA5D0C2 0x26E14 +0x8EA5D0C3 0x26E47 +0x8EA5D0C4 0x26E63 +0x8EA5D0C5 0x26E38 +0x8EA5D0C6 0x4524 +0x8EA5D0C7 0x26E7F +0x8EA5D0C8 0x26E21 +0x8EA5D0C9 0x26E37 +0x8EA5D0CA 0x26E31 +0x8EA5D0CB 0x26E1B +0x8EA5D0CC 0x26EA5 +0x8EA5D0CD 0x26F6C +0x8EA5D0CE 0x271D3 +0x8EA5D0CF 0x27388 +0x8EA5D0D0 0x2736E +0x8EA5D0D1 0x2735C +0x8EA5D0D2 0x27374 +0x8EA5D0D3 0x27354 +0x8EA5D0D4 0x27383 +0x8EA5D0D5 0x8770 +0x8EA5D0D6 0x27365 +0x8EA5D0D7 0x27360 +0x8EA5D0D8 0x27370 +0x8EA5D0D9 0x2736F +0x8EA5D0DA 0x2736D +0x8EA5D0DB 0x27372 +0x8EA5D0DC 0x2736C +0x8EA5D0DD 0x27376 +0x8EA5D0DE 0x27375 +0x8EA5D0DF 0x27359 +0x8EA5D0E0 0x273C7 +0x8EA5D0E1 0x275C1 +0x8EA5D0E2 0x275F9 +0x8EA5D0E3 0x276E3 +0x8EA5D0E4 0x276E7 +0x8EA5D0E5 0x276D6 +0x8EA5D0E6 0x276CF +0x8EA5D0E7 0x276DA +0x8EA5D0E8 0x276E9 +0x8EA5D0E9 0x276D2 +0x8EA5D0EA 0x27855 +0x8EA5D0EB 0x2784F +0x8EA5D0EC 0x2784D +0x8EA5D0ED 0x27851 +0x8EA5D0EE 0x27856 +0x8EA5D0EF 0x278F9 +0x8EA5D0F0 0x278F8 +0x8EA5D0F1 0x27906 +0x8EA5D0F2 0x27903 +0x8EA5D0F3 0x27909 +0x8EA5D0F4 0x278F7 +0x8EA5D0F5 0x278F5 +0x8EA5D0F6 0x27A47 +0x8EA5D0F7 0x27A45 +0x8EA5D0F8 0x27A3E +0x8EA5D0F9 0x27A46 +0x8EA5D0FA 0x27A29 +0x8EA5D0FB 0x27A34 +0x8EA5D0FC 0x27A3F +0x8EA5D0FD 0x27A44 +0x8EA5D0FE 0x27A35 +0x8EA5D1A1 0x27A5A +0x8EA5D1A2 0x27A2A +0x8EA5D1A3 0x27A33 +0x8EA5D1A4 0x27A37 +0x8EA5D1A5 0x27A43 +0x8EA5D1A6 0x27A39 +0x8EA5D1A7 0x27A30 +0x8EA5D1A8 0x27A5D +0x8EA5D1A9 0x27A32 +0x8EA5D1AA 0x27A27 +0x8EA5D1AB 0x27BBD +0x8EA5D1AC 0x27BBA +0x8EA5D1AD 0x27BBC +0x8EA5D1AE 0x27BF1 +0x8EA5D1AF 0x27BF0 +0x8EA5D1B0 0x27C61 +0x8EA5D1B1 0x27C5C +0x8EA5D1B2 0x27C58 +0x8EA5D1B3 0x27C5D +0x8EA5D1B4 0x27CDA +0x8EA5D1B5 0x27CD9 +0x8EA5D1B6 0x27CDD +0x8EA5D1B7 0x27CDC +0x8EA5D1B8 0x27CDE +0x8EA5D1B9 0x477D +0x8EA5D1BA 0x27DA0 +0x8EA5D1BB 0x27DA2 +0x8EA5D1BC 0x27F0F +0x8EA5D1BD 0x27F13 +0x8EA5D1BE 0x27F12 +0x8EA5D1BF 0x27F11 +0x8EA5D1C0 0x27F14 +0x8EA5D1C1 0x27F19 +0x8EA5D1C2 0x27F0E +0x8EA5D1C3 0x27F17 +0x8EA5D1C4 0x27F21 +0x8EA5D1C5 0x27F20 +0x8EA5D1C6 0x27F16 +0x8EA5D1C7 0x28078 +0x8EA5D1C8 0x8E37 +0x8EA5D1C9 0x28087 +0x8EA5D1CA 0x28079 +0x8EA5D1CB 0x28080 +0x8EA5D1CC 0x28077 +0x8EA5D1CD 0x28081 +0x8EA5D1CE 0x28046 +0x8EA5D1CF 0x2807A +0x8EA5D1D0 0x2809C +0x8EA5D1D1 0x28083 +0x8EA5D1D2 0x28084 +0x8EA5D1D3 0x280AD +0x8EA5D1D4 0x2809D +0x8EA5D1D5 0x2809E +0x8EA5D1D6 0x28255 +0x8EA5D1D7 0x28336 +0x8EA5D1D8 0x2832B +0x8EA5D1D9 0x28327 +0x8EA5D1DA 0x28346 +0x8EA5D1DB 0x2832C +0x8EA5D1DC 0x28345 +0x8EA5D1DD 0x28333 +0x8EA5D1DE 0x2832D +0x8EA5D1DF 0x28334 +0x8EA5D1E0 0x28322 +0x8EA5D1E1 0x4864 +0x8EA5D1E2 0x2841F +0x8EA5D1E3 0x285B3 +0x8EA5D1E4 0x2858C +0x8EA5D1E5 0x2858F +0x8EA5D1E6 0x285AF +0x8EA5D1E7 0x285AD +0x8EA5D1E8 0x2858E +0x8EA5D1E9 0x285AC +0x8EA5D1EA 0x285B0 +0x8EA5D1EB 0x285B1 +0x8EA5D1EC 0x285AE +0x8EA5D1ED 0x28599 +0x8EA5D1EE 0x286EB +0x8EA5D1EF 0x28774 +0x8EA5D1F0 0x28775 +0x8EA5D1F1 0x2878E +0x8EA5D1F2 0x2876D +0x8EA5D1F3 0x28770 +0x8EA5D1F4 0x2878C +0x8EA5D1F5 0x2884F +0x8EA5D1F6 0x28851 +0x8EA5D1F7 0x28858 +0x8EA5D1F8 0x2884C +0x8EA5D1F9 0x2884E +0x8EA5D1FA 0x28915 +0x8EA5D1FB 0x289BE +0x8EA5D1FC 0x289DB +0x8EA5D1FD 0x289B3 +0x8EA5D1FE 0x289AE +0x8EA5D2A1 0x28C87 +0x8EA5D2A2 0x28C8A +0x8EA5D2A3 0x28C88 +0x8EA5D2A4 0x28C8B +0x8EA5D2A5 0x28C8C +0x8EA5D2A6 0x28D44 +0x8EA5D2A7 0x28D2D +0x8EA5D2A8 0x28D2A +0x8EA5D2A9 0x28D31 +0x8EA5D2AA 0x28D2C +0x8EA5D2AB 0x28D45 +0x8EA5D2AC 0x28D30 +0x8EA5D2AD 0x28D29 +0x8EA5D2AE 0x28D46 +0x8EA5D2AF 0x28EF4 +0x8EA5D2B0 0x28F14 +0x8EA5D2B1 0x28F10 +0x8EA5D2B2 0x28F0F +0x8EA5D2B3 0x28F12 +0x8EA5D2B4 0x28F0B +0x8EA5D2B5 0x28F0C +0x8EA5D2B6 0x28F0A +0x8EA5D2B7 0x28F13 +0x8EA5D2B8 0x28F0E +0x8EA5D2B9 0x28FD9 +0x8EA5D2BA 0x28FD0 +0x8EA5D2BB 0x9703 +0x8EA5D2BC 0x290C1 +0x8EA5D2BD 0x290BF +0x8EA5D2BE 0x290BD +0x8EA5D2BF 0x290BC +0x8EA5D2C0 0x290BA +0x8EA5D2C1 0x290BB +0x8EA5D2C2 0x290D1 +0x8EA5D2C3 0x290BE +0x8EA5D2C4 0x290D0 +0x8EA5D2C5 0x290B9 +0x8EA5D2C6 0x2921A +0x8EA5D2C7 0x2921C +0x8EA5D2C8 0x2921B +0x8EA5D2C9 0x29291 +0x8EA5D2CA 0x29296 +0x8EA5D2CB 0x2929F +0x8EA5D2CC 0x2929C +0x8EA5D2CD 0x2929A +0x8EA5D2CE 0x2929D +0x8EA5D2CF 0x293AD +0x8EA5D2D0 0x293A5 +0x8EA5D2D1 0x293AE +0x8EA5D2D2 0x29403 +0x8EA5D2D3 0x29426 +0x8EA5D2D4 0x29420 +0x8EA5D2D5 0x29423 +0x8EA5D2D6 0x29424 +0x8EA5D2D7 0x29421 +0x8EA5D2D8 0x29428 +0x8EA5D2D9 0x29425 +0x8EA5D2DA 0x2941E +0x8EA5D2DB 0x29494 +0x8EA5D2DC 0x29493 +0x8EA5D2DD 0x2948F +0x8EA5D2DE 0x2949A +0x8EA5D2DF 0x294AD +0x8EA5D2E0 0x4AC2 +0x8EA5D2E1 0x295CA +0x8EA5D2E2 0x295C5 +0x8EA5D2E3 0x296BB +0x8EA5D2E4 0x296E1 +0x8EA5D2E5 0x296EA +0x8EA5D2E6 0x296E4 +0x8EA5D2E7 0x296ED +0x8EA5D2E8 0x296E6 +0x8EA5D2E9 0x296E0 +0x8EA5D2EA 0x296E8 +0x8EA5D2EB 0x296E5 +0x8EA5D2EC 0x2981A +0x8EA5D2ED 0x29894 +0x8EA5D2EE 0x29896 +0x8EA5D2EF 0x2989E +0x8EA5D2F0 0x29895 +0x8EA5D2F1 0x298A1 +0x8EA5D2F2 0x2988E +0x8EA5D2F3 0x2989B +0x8EA5D2F4 0x29892 +0x8EA5D2F5 0x29897 +0x8EA5D2F6 0x29899 +0x8EA5D2F7 0x29893 +0x8EA5D2F8 0x29A32 +0x8EA5D2F9 0x29A2F +0x8EA5D2FA 0x29A2E +0x8EA5D2FB 0x29A33 +0x8EA5D2FC 0x29B1C +0x8EA5D2FD 0x29B1E +0x8EA5D2FE 0x29B11 +0x8EA5D3A1 0x29B20 +0x8EA5D3A2 0x29B1F +0x8EA5D3A3 0x29B19 +0x8EA5D3A4 0x29B16 +0x8EA5D3A5 0x29CAC +0x8EA5D3A6 0x29CB9 +0x8EA5D3A7 0x29CB3 +0x8EA5D3A8 0x29CA6 +0x8EA5D3A9 0x29CA2 +0x8EA5D3AA 0x29CA9 +0x8EA5D3AB 0x29CA7 +0x8EA5D3AC 0x29D6C +0x8EA5D3AD 0x29D6D +0x8EA5D3AE 0x29D69 +0x8EA5D3AF 0x29D80 +0x8EA5D3B0 0x29D66 +0x8EA5D3B1 0x29D65 +0x8EA5D3B2 0x29D71 +0x8EA5D3B3 0x29D6B +0x8EA5D3B4 0x29FBD +0x8EA5D3B5 0x29FC1 +0x8EA5D3B6 0x29FD3 +0x8EA5D3B7 0x29FB6 +0x8EA5D3B8 0x4CAC +0x8EA5D3B9 0x29FB9 +0x8EA5D3BA 0x29FD4 +0x8EA5D3BB 0x29FB7 +0x8EA5D3BC 0x29FDB +0x8EA5D3BD 0x29FB8 +0x8EA5D3BE 0x29FC0 +0x8EA5D3BF 0x29FBC +0x8EA5D3C0 0x29FD5 +0x8EA5D3C1 0x29FBF +0x8EA5D3C2 0x29FC3 +0x8EA5D3C3 0x29FC9 +0x8EA5D3C4 0x2A258 +0x8EA5D3C5 0x2A290 +0x8EA5D3C6 0x2A295 +0x8EA5D3C7 0x2A297 +0x8EA5D3C8 0x2A309 +0x8EA5D3C9 0x2A308 +0x8EA5D3CA 0x2A306 +0x8EA5D3CB 0x2A305 +0x8EA5D3CC 0x2A310 +0x8EA5D3CD 0x2A397 +0x8EA5D3CE 0x2A395 +0x8EA5D3CF 0x2A3EE +0x8EA5D3D0 0x2A41F +0x8EA5D3D1 0x2FA1A +0x8EA5D3D2 0x21B4B +0x8EA5D3D3 0x2018E +0x8EA5D3D4 0x203E8 +0x8EA5D3D5 0x203F0 +0x8EA5D3D6 0x203F4 +0x8EA5D3D7 0x20406 +0x8EA5D3D8 0x203ED +0x8EA5D3D9 0x349B +0x8EA5D3DA 0x203E9 +0x8EA5D3DB 0x20400 +0x8EA5D3DC 0x204B8 +0x8EA5D3DD 0x2056D +0x8EA5D3DE 0x20804 +0x8EA5D3DF 0x20801 +0x8EA5D3E0 0x20803 +0x8EA5D3E1 0x20802 +0x8EA5D3E2 0x52F6 +0x8EA5D3E3 0x3526 +0x8EA5D3E4 0x20962 +0x8EA5D3E5 0x20ABA +0x8EA5D3E6 0x20B13 +0x8EA5D3E7 0x20FDE +0x8EA5D3E8 0x20FD7 +0x8EA5D3E9 0x20FE4 +0x8EA5D3EA 0x20FCE +0x8EA5D3EB 0x20FE3 +0x8EA5D3EC 0x20FDD +0x8EA5D3ED 0x2103A +0x8EA5D3EE 0x20FDB +0x8EA5D3EF 0x20FD6 +0x8EA5D3F0 0x20FE0 +0x8EA5D3F1 0x20FD4 +0x8EA5D3F2 0x20FCB +0x8EA5D3F3 0x20FE1 +0x8EA5D3F4 0x20FC9 +0x8EA5D3F5 0x20FDF +0x8EA5D3F6 0x2103C +0x8EA5D3F7 0x20FFC +0x8EA5D3F8 0x20FCF +0x8EA5D3F9 0x21479 +0x8EA5D3FA 0x21476 +0x8EA5D3FB 0x21478 +0x8EA5D3FC 0x21687 +0x8EA5D3FD 0x2189C +0x8EA5D3FE 0x218B1 +0x8EA5D4A1 0x218C1 +0x8EA5D4A2 0x2189A +0x8EA5D4A3 0x21892 +0x8EA5D4A4 0x41AF +0x8EA5D4A5 0x218C2 +0x8EA5D4A6 0x21896 +0x8EA5D4A7 0x218C0 +0x8EA5D4A8 0x21891 +0x8EA5D4A9 0x21895 +0x8EA5D4AA 0x219A2 +0x8EA5D4AB 0x21AC3 +0x8EA5D4AC 0x21AC0 +0x8EA5D4AD 0x21AC2 +0x8EA5D4AE 0x20B8A +0x8EA5D4AF 0x21BB0 +0x8EA5D4B0 0x21C16 +0x8EA5D4B1 0x21F46 +0x8EA5D4B2 0x21F4A +0x8EA5D4B3 0x21F3E +0x8EA5D4B4 0x21F45 +0x8EA5D4B5 0x21F42 +0x8EA5D4B6 0x3815 +0x8EA5D4B7 0x21F5B +0x8EA5D4B8 0x21F44 +0x8EA5D4B9 0x22004 +0x8EA5D4BA 0x24022 +0x8EA5D4BB 0x22155 +0x8EA5D4BC 0x22157 +0x8EA5D4BD 0x22151 +0x8EA5D4BE 0x2214E +0x8EA5D4BF 0x2215A +0x8EA5D4C0 0x222C6 +0x8EA5D4C1 0x222C3 +0x8EA5D4C2 0x389C +0x8EA5D4C3 0x222C5 +0x8EA5D4C4 0x222CC +0x8EA5D4C5 0x22371 +0x8EA5D4C6 0x22426 +0x8EA5D4C7 0x224B2 +0x8EA5D4C8 0x2257A +0x8EA5D4C9 0x22584 +0x8EA5D4CA 0x2257B +0x8EA5D4CB 0x22874 +0x8EA5D4CC 0x2288C +0x8EA5D4CD 0x22851 +0x8EA5D4CE 0x22848 +0x8EA5D4CF 0x2288D +0x8EA5D4D0 0x22892 +0x8EA5D4D1 0x22898 +0x8EA5D4D2 0x22893 +0x8EA5D4D3 0x228B0 +0x8EA5D4D4 0x2284E +0x8EA5D4D5 0x22896 +0x8EA5D4D6 0x22897 +0x8EA5D4D7 0x2289C +0x8EA5D4D8 0x228CA +0x8EA5D4D9 0x22D33 +0x8EA5D4DA 0x22D83 +0x8EA5D4DB 0x22D84 +0x8EA5D4DC 0x22D9A +0x8EA5D4DD 0x22D8C +0x8EA5D4DE 0x64CC +0x8EA5D4DF 0x22D99 +0x8EA5D4E0 0x22EE0 +0x8EA5D4E1 0x22FE4 +0x8EA5D4E2 0x22FF8 +0x8EA5D4E3 0x22FED +0x8EA5D4E4 0x22FF3 +0x8EA5D4E5 0x22FF4 +0x8EA5D4E6 0x22FF5 +0x8EA5D4E7 0x22FFD +0x8EA5D4E8 0x23119 +0x8EA5D4E9 0x2329E +0x8EA5D4EA 0x232C4 +0x8EA5D4EB 0x2329F +0x8EA5D4EC 0x2339B +0x8EA5D4ED 0x2339F +0x8EA5D4EE 0x2339A +0x8EA5D4EF 0x236AA +0x8EA5D4F0 0x2369D +0x8EA5D4F1 0x23692 +0x8EA5D4F2 0x236A2 +0x8EA5D4F3 0x236AF +0x8EA5D4F4 0x236EB +0x8EA5D4F5 0x236A0 +0x8EA5D4F6 0x236A1 +0x8EA5D4F7 0x23694 +0x8EA5D4F8 0x23698 +0x8EA5D4F9 0x2368F +0x8EA5D4FA 0x23687 +0x8EA5D4FB 0x23684 +0x8EA5D4FC 0x236A9 +0x8EA5D4FD 0x2367C +0x8EA5D4FE 0x23918 +0x8EA5D5A1 0x23A5F +0x8EA5D5A2 0x23A62 +0x8EA5D5A3 0x23A61 +0x8EA5D5A4 0x23AC0 +0x8EA5D5A5 0x23B15 +0x8EA5D5A6 0x23BFC +0x8EA5D5A7 0x23BF9 +0x8EA5D5A8 0x23FC8 +0x8EA5D5A9 0x23FC9 +0x8EA5D5AA 0x23FDE +0x8EA5D5AB 0x23FCA +0x8EA5D5AC 0x23FE2 +0x8EA5D5AD 0x3D64 +0x8EA5D5AE 0x3D6E +0x8EA5D5AF 0x24004 +0x8EA5D5B0 0x23FCC +0x8EA5D5B1 0x23FDD +0x8EA5D5B2 0x23FE4 +0x8EA5D5B3 0x23FD3 +0x8EA5D5B4 0x23FC7 +0x8EA5D5B5 0x23FC6 +0x8EA5D5B6 0x3D5F +0x8EA5D5B7 0x24037 +0x8EA5D5B8 0x243D8 +0x8EA5D5B9 0x243EE +0x8EA5D5BA 0x243B2 +0x8EA5D5BB 0x243A3 +0x8EA5D5BC 0x243B3 +0x8EA5D5BD 0x243ED +0x8EA5D5BE 0x243F8 +0x8EA5D5BF 0x24531 +0x8EA5D5C0 0x2455B +0x8EA5D5C1 0x24566 +0x8EA5D5C2 0x24569 +0x8EA5D5C3 0x24596 +0x8EA5D5C4 0x2459B +0x8EA5D5C5 0x245F7 +0x8EA5D5C6 0x245F3 +0x8EA5D5C7 0x245F4 +0x8EA5D5C8 0x245F5 +0x8EA5D5C9 0x246E2 +0x8EA5D5CA 0x246E7 +0x8EA5D5CB 0x246E5 +0x8EA5D5CC 0x246E9 +0x8EA5D5CD 0x246E6 +0x8EA5D5CE 0x246E3 +0x8EA5D5CF 0x24874 +0x8EA5D5D0 0x2487F +0x8EA5D5D1 0x2488F +0x8EA5D5D2 0x24890 +0x8EA5D5D3 0x24897 +0x8EA5D5D4 0x248A3 +0x8EA5D5D5 0x2488E +0x8EA5D5D6 0x24898 +0x8EA5D5D7 0x2488C +0x8EA5D5D8 0x24A42 +0x8EA5D5D9 0x24A44 +0x8EA5D5DA 0x24A69 +0x8EA5D5DB 0x24A43 +0x8EA5D5DC 0x24A68 +0x8EA5D5DD 0x3EF6 +0x8EA5D5DE 0x24B8D +0x8EA5D5DF 0x24B88 +0x8EA5D5E0 0x24B8B +0x8EA5D5E1 0x24B89 +0x8EA5D5E2 0x24CCC +0x8EA5D5E3 0x24D1F +0x8EA5D5E4 0x24E80 +0x8EA5D5E5 0x24E5E +0x8EA5D5E6 0x24E67 +0x8EA5D5E7 0x24E68 +0x8EA5D5E8 0x24E65 +0x8EA5D5E9 0x764A +0x8EA5D5EA 0x24E74 +0x8EA5D5EB 0x24E69 +0x8EA5D5EC 0x24E61 +0x8EA5D5ED 0x24E62 +0x8EA5D5EE 0x24E6C +0x8EA5D5EF 0x24E93 +0x8EA5D5F0 0x24E86 +0x8EA5D5F1 0x24F9D +0x8EA5D5F2 0x24F9B +0x8EA5D5F3 0x2501B +0x8EA5D5F4 0x25016 +0x8EA5D5F5 0x25019 +0x8EA5D5F6 0x25014 +0x8EA5D5F7 0x25018 +0x8EA5D5F8 0x25015 +0x8EA5D5F9 0x25099 +0x8EA5D5FA 0x25098 +0x8EA5D5FB 0x2525D +0x8EA5D5FC 0x25289 +0x8EA5D5FD 0x2527A +0x8EA5D5FE 0x2527D +0x8EA5D6A1 0x2524B +0x8EA5D6A2 0x4073 +0x8EA5D6A3 0x25278 +0x8EA5D6A4 0x2527F +0x8EA5D6A5 0x25277 +0x8EA5D6A6 0x2527E +0x8EA5D6A7 0x25279 +0x8EA5D6A8 0x252AB +0x8EA5D6A9 0x2527C +0x8EA5D6AA 0x25274 +0x8EA5D6AB 0x25275 +0x8EA5D6AC 0x252A7 +0x8EA5D6AD 0x2538D +0x8EA5D6AE 0x2554E +0x8EA5D6AF 0x25566 +0x8EA5D6B0 0x25561 +0x8EA5D6B1 0x2554D +0x8EA5D6B2 0x2554F +0x8EA5D6B3 0x40DD +0x8EA5D6B4 0x25554 +0x8EA5D6B5 0x2557C +0x8EA5D6B6 0x256DA +0x8EA5D6B7 0x256DE +0x8EA5D6B8 0x256D8 +0x8EA5D6B9 0x256DD +0x8EA5D6BA 0x256DF +0x8EA5D6BB 0x25866 +0x8EA5D6BC 0x25862 +0x8EA5D6BD 0x2585F +0x8EA5D6BE 0x25864 +0x8EA5D6BF 0x25863 +0x8EA5D6C0 0x25860 +0x8EA5D6C1 0x25888 +0x8EA5D6C2 0x2586A +0x8EA5D6C3 0x25867 +0x8EA5D6C4 0x25887 +0x8EA5D6C5 0x2583F +0x8EA5D6C6 0x2586C +0x8EA5D6C7 0x2586E +0x8EA5D6C8 0x258AD +0x8EA5D6C9 0x259F1 +0x8EA5D6CA 0x259F4 +0x8EA5D6CB 0x259F6 +0x8EA5D6CC 0x259F5 +0x8EA5D6CD 0x259F8 +0x8EA5D6CE 0x259FB +0x8EA5D6CF 0x259EC +0x8EA5D6D0 0x259EF +0x8EA5D6D1 0x259ED +0x8EA5D6D2 0x7AB9 +0x8EA5D6D3 0x259F7 +0x8EA5D6D4 0x259F9 +0x8EA5D6D5 0x259FD +0x8EA5D6D6 0x25AB1 +0x8EA5D6D7 0x25C36 +0x8EA5D6D8 0x25C1B +0x8EA5D6D9 0x25C32 +0x8EA5D6DA 0x25C42 +0x8EA5D6DB 0x25C4D +0x8EA5D6DC 0x25C1F +0x8EA5D6DD 0x25C21 +0x8EA5D6DE 0x25C1C +0x8EA5D6DF 0x25C31 +0x8EA5D6E0 0x25C2E +0x8EA5D6E1 0x25C47 +0x8EA5D6E2 0x25C3B +0x8EA5D6E3 0x25C41 +0x8EA5D6E4 0x25C18 +0x8EA5D6E5 0x25C39 +0x8EA5D6E6 0x25C1D +0x8EA5D6E7 0x25C27 +0x8EA5D6E8 0x25C23 +0x8EA5D6E9 0x7BD7 +0x8EA5D6EA 0x25EEE +0x8EA5D6EB 0x25EE8 +0x8EA5D6EC 0x25EE5 +0x8EA5D6ED 0x25EEF +0x8EA5D6EE 0x25EE4 +0x8EA5D6EF 0x25EEC +0x8EA5D6F0 0x25EF0 +0x8EA5D6F1 0x260D7 +0x8EA5D6F2 0x260D8 +0x8EA5D6F3 0x260D4 +0x8EA5D6F4 0x260CA +0x8EA5D6F5 0x260D2 +0x8EA5D6F6 0x260CB +0x8EA5D6F7 0x260D3 +0x8EA5D6F8 0x260E6 +0x8EA5D6F9 0x260E2 +0x8EA5D6FA 0x26249 +0x8EA5D6FB 0x26248 +0x8EA5D6FC 0x262FF +0x8EA5D6FD 0x26309 +0x8EA5D6FE 0x263B0 +0x8EA5D7A1 0x263AF +0x8EA5D7A2 0x2647C +0x8EA5D7A3 0x26478 +0x8EA5D7A4 0x2647A +0x8EA5D7A5 0x26472 +0x8EA5D7A6 0x26479 +0x8EA5D7A7 0x2647E +0x8EA5D7A8 0x2650C +0x8EA5D7A9 0x2650B +0x8EA5D7AA 0x265CD +0x8EA5D7AB 0x265BE +0x8EA5D7AC 0x265BC +0x8EA5D7AD 0x265BF +0x8EA5D7AE 0x265C0 +0x8EA5D7AF 0x265BD +0x8EA5D7B0 0x26838 +0x8EA5D7B1 0x26808 +0x8EA5D7B2 0x26805 +0x8EA5D7B3 0x2683B +0x8EA5D7B4 0x26810 +0x8EA5D7B5 0x2680C +0x8EA5D7B6 0x2680D +0x8EA5D7B7 0x26804 +0x8EA5D7B8 0x2683A +0x8EA5D7B9 0x26813 +0x8EA5D7BA 0x26837 +0x8EA5D7BB 0x26839 +0x8EA5D7BC 0x2691F +0x8EA5D7BD 0x2694B +0x8EA5D7BE 0x269EE +0x8EA5D7BF 0x26A75 +0x8EA5D7C0 0x26A78 +0x8EA5D7C1 0x26A7C +0x8EA5D7C2 0x26A74 +0x8EA5D7C3 0x26A76 +0x8EA5D7C4 0x26AEA +0x8EA5D7C5 0x26AEB +0x8EA5D7C6 0x26DFB +0x8EA5D7C7 0x26E19 +0x8EA5D7C8 0x26EA7 +0x8EA5D7C9 0x26E8C +0x8EA5D7CA 0x26EDC +0x8EA5D7CB 0x26E98 +0x8EA5D7CC 0x26EBE +0x8EA5D7CD 0x26E9E +0x8EA5D7CE 0x26F0F +0x8EA5D7CF 0x26E9F +0x8EA5D7D0 0x26EDD +0x8EA5D7D1 0x26E93 +0x8EA5D7D2 0x26EBB +0x8EA5D7D3 0x26EB6 +0x8EA5D7D4 0x26E90 +0x8EA5D7D5 0x26EA1 +0x8EA5D7D6 0x26EBD +0x8EA5D7D7 0x26EDE +0x8EA5D7D8 0x26E3A +0x8EA5D7D9 0x26F22 +0x8EA5D7DA 0x26E97 +0x8EA5D7DB 0x26E94 +0x8EA5D7DC 0x26EC3 +0x8EA5D7DD 0x26E8E +0x8EA5D7DE 0x26EA8 +0x8EA5D7DF 0x26E99 +0x8EA5D7E0 0x26EAD +0x8EA5D7E1 0x26E9B +0x8EA5D7E2 0x26EA2 +0x8EA5D7E3 0x26F21 +0x8EA5D7E4 0x26EAC +0x8EA5D7E5 0x26F0E +0x8EA5D7E6 0x26F31 +0x8EA5D7E7 0x271E1 +0x8EA5D7E8 0x271DE +0x8EA5D7E9 0x271DF +0x8EA5D7EA 0x271DC +0x8EA5D7EB 0x271DD +0x8EA5D7EC 0x271EC +0x8EA5D7ED 0x271E7 +0x8EA5D7EE 0x27369 +0x8EA5D7EF 0x273B8 +0x8EA5D7F0 0x273A1 +0x8EA5D7F1 0x273A8 +0x8EA5D7F2 0x273BA +0x8EA5D7F3 0x273C2 +0x8EA5D7F4 0x273A6 +0x8EA5D7F5 0x273A4 +0x8EA5D7F6 0x273A3 +0x8EA5D7F7 0x273AB +0x8EA5D7F8 0x273BC +0x8EA5D7F9 0x273B7 +0x8EA5D7FA 0x273BF +0x8EA5D7FB 0x273AD +0x8EA5D7FC 0x273B1 +0x8EA5D7FD 0x273CA +0x8EA5D7FE 0x273C4 +0x8EA5D8A1 0x273B9 +0x8EA5D8A2 0x275C8 +0x8EA5D8A3 0x275C6 +0x8EA5D8A4 0x275C7 +0x8EA5D8A5 0x2770A +0x8EA5D8A6 0x2770D +0x8EA5D8A7 0x276FB +0x8EA5D8A8 0x27703 +0x8EA5D8A9 0x27702 +0x8EA5D8AA 0x276FC +0x8EA5D8AB 0x276F9 +0x8EA5D8AC 0x276F8 +0x8EA5D8AD 0x2786E +0x8EA5D8AE 0x27863 +0x8EA5D8AF 0x27862 +0x8EA5D8B0 0x27861 +0x8EA5D8B1 0x2786B +0x8EA5D8B2 0x4688 +0x8EA5D8B3 0x2786F +0x8EA5D8B4 0x27866 +0x8EA5D8B5 0x2786C +0x8EA5D8B6 0x2790E +0x8EA5D8B7 0x27915 +0x8EA5D8B8 0x27916 +0x8EA5D8B9 0x27910 +0x8EA5D8BA 0x27917 +0x8EA5D8BB 0x27911 +0x8EA5D8BC 0x27A6E +0x8EA5D8BD 0x27A6C +0x8EA5D8BE 0x27A87 +0x8EA5D8BF 0x27A83 +0x8EA5D8C0 0x27A63 +0x8EA5D8C1 0x27ADC +0x8EA5D8C2 0x27BC0 +0x8EA5D8C3 0x27BF7 +0x8EA5D8C4 0x27BFA +0x8EA5D8C5 0x27C70 +0x8EA5D8C6 0x27C6A +0x8EA5D8C7 0x27C68 +0x8EA5D8C8 0x27C69 +0x8EA5D8C9 0x27C84 +0x8EA5D8CA 0x27CEC +0x8EA5D8CB 0x27CE7 +0x8EA5D8CC 0x27CEE +0x8EA5D8CD 0x27DBA +0x8EA5D8CE 0x27DB2 +0x8EA5D8CF 0x27DB5 +0x8EA5D8D0 0x27DCB +0x8EA5D8D1 0x2080B +0x8EA5D8D2 0x27DD0 +0x8EA5D8D3 0x27E6D +0x8EA5D8D4 0x27E6C +0x8EA5D8D5 0x47BB +0x8EA5D8D6 0x27F45 +0x8EA5D8D7 0x27F46 +0x8EA5D8D8 0x27F34 +0x8EA5D8D9 0x27F2C +0x8EA5D8DA 0x27F35 +0x8EA5D8DB 0x27F44 +0x8EA5D8DC 0x47BA +0x8EA5D8DD 0x27F76 +0x8EA5D8DE 0x280B1 +0x8EA5D8DF 0x280AA +0x8EA5D8E0 0x280A1 +0x8EA5D8E1 0x280B2 +0x8EA5D8E2 0x4812 +0x8EA5D8E3 0x280A6 +0x8EA5D8E4 0x280B5 +0x8EA5D8E5 0x280B4 +0x8EA5D8E6 0x280B8 +0x8EA5D8E7 0x280AF +0x8EA5D8E8 0x280B0 +0x8EA5D8E9 0x280A3 +0x8EA5D8EA 0x28262 +0x8EA5D8EB 0x28264 +0x8EA5D8EC 0x28356 +0x8EA5D8ED 0x28351 +0x8EA5D8EE 0x2834F +0x8EA5D8EF 0x28368 +0x8EA5D8F0 0x2834C +0x8EA5D8F1 0x28350 +0x8EA5D8F2 0x4861 +0x8EA5D8F3 0x28348 +0x8EA5D8F4 0x2834A +0x8EA5D8F5 0x28421 +0x8EA5D8F6 0x285E3 +0x8EA5D8F7 0x285B9 +0x8EA5D8F8 0x285DE +0x8EA5D8F9 0x285B7 +0x8EA5D8FA 0x285E1 +0x8EA5D8FB 0x285B6 +0x8EA5D8FC 0x285B5 +0x8EA5D8FD 0x285DF +0x8EA5D8FE 0x48E1 +0x8EA5D9A1 0x28797 +0x8EA5D9A2 0x2879A +0x8EA5D9A3 0x2879B +0x8EA5D9A4 0x28798 +0x8EA5D9A5 0x28792 +0x8EA5D9A6 0x28793 +0x8EA5D9A7 0x287D7 +0x8EA5D9A8 0x28773 +0x8EA5D9A9 0x2886B +0x8EA5D9AA 0x28874 +0x8EA5D9AB 0x28878 +0x8EA5D9AC 0x2886D +0x8EA5D9AD 0x28918 +0x8EA5D9AE 0x289E9 +0x8EA5D9AF 0x289F5 +0x8EA5D9B0 0x289EA +0x8EA5D9B1 0x28A2E +0x8EA5D9B2 0x289E7 +0x8EA5D9B3 0x289FE +0x8EA5D9B4 0x289E5 +0x8EA5D9B5 0x28A36 +0x8EA5D9B6 0x289F0 +0x8EA5D9B7 0x289E6 +0x8EA5D9B8 0x28A2C +0x8EA5D9B9 0x28C89 +0x8EA5D9BA 0x28C95 +0x8EA5D9BB 0x28C93 +0x8EA5D9BC 0x28D4D +0x8EA5D9BD 0x28D4A +0x8EA5D9BE 0x28D4F +0x8EA5D9BF 0x28D50 +0x8EA5D9C0 0x28D4B +0x8EA5D9C1 0x28F2A +0x8EA5D9C2 0x28F2B +0x8EA5D9C3 0x28F2F +0x8EA5D9C4 0x28F2E +0x8EA5D9C5 0x28F7C +0x8EA5D9C6 0x28FED +0x8EA5D9C7 0x28FE2 +0x8EA5D9C8 0x290E0 +0x8EA5D9C9 0x290DC +0x8EA5D9CA 0x290DA +0x8EA5D9CB 0x290D6 +0x8EA5D9CC 0x290F4 +0x8EA5D9CD 0x290D9 +0x8EA5D9CE 0x290D5 +0x8EA5D9CF 0x29222 +0x8EA5D9D0 0x29221 +0x8EA5D9D1 0x29224 +0x8EA5D9D2 0x29225 +0x8EA5D9D3 0x29226 +0x8EA5D9D4 0x29223 +0x8EA5D9D5 0x292AA +0x8EA5D9D6 0x292AF +0x8EA5D9D7 0x292B0 +0x8EA5D9D8 0x292AB +0x8EA5D9D9 0x293AF +0x8EA5D9DA 0x293B7 +0x8EA5D9DB 0x293B5 +0x8EA5D9DC 0x293B2 +0x8EA5D9DD 0x293B3 +0x8EA5D9DE 0x2942B +0x8EA5D9DF 0x294D8 +0x8EA5D9E0 0x294C2 +0x8EA5D9E1 0x294AF +0x8EA5D9E2 0x294BC +0x8EA5D9E3 0x294B8 +0x8EA5D9E4 0x294BE +0x8EA5D9E5 0x294B7 +0x8EA5D9E6 0x294B4 +0x8EA5D9E7 0x294BF +0x8EA5D9E8 0x294B3 +0x8EA5D9E9 0x294B1 +0x8EA5D9EA 0x294BB +0x8EA5D9EB 0x294BD +0x8EA5D9EC 0x294D6 +0x8EA5D9ED 0x294DD +0x8EA5D9EE 0x295D8 +0x8EA5D9EF 0x295D3 +0x8EA5D9F0 0x295D5 +0x8EA5D9F1 0x295E3 +0x8EA5D9F2 0x295E2 +0x8EA5D9F3 0x295D9 +0x8EA5D9F4 0x295DE +0x8EA5D9F5 0x295DF +0x8EA5D9F6 0x295DA +0x8EA5D9F7 0x295D4 +0x8EA5D9F8 0x296F3 +0x8EA5D9F9 0x296E2 +0x8EA5D9FA 0x2970D +0x8EA5D9FB 0x29701 +0x8EA5D9FC 0x29705 +0x8EA5D9FD 0x2971A +0x8EA5D9FE 0x29703 +0x8EA5DAA1 0x2971F +0x8EA5DAA2 0x29716 +0x8EA5DAA3 0x296FA +0x8EA5DAA4 0x296FC +0x8EA5DAA5 0x2970A +0x8EA5DAA6 0x999F +0x8EA5DAA7 0x298BC +0x8EA5DAA8 0x298CA +0x8EA5DAA9 0x298B6 +0x8EA5DAAA 0x298C7 +0x8EA5DAAB 0x298BF +0x8EA5DAAC 0x4B89 +0x8EA5DAAD 0x298B9 +0x8EA5DAAE 0x4B8C +0x8EA5DAAF 0x298B0 +0x8EA5DAB0 0x298B8 +0x8EA5DAB1 0x298BD +0x8EA5DAB2 0x29891 +0x8EA5DAB3 0x298BB +0x8EA5DAB4 0x298BE +0x8EA5DAB5 0x29A3E +0x8EA5DAB6 0x29A3D +0x8EA5DAB7 0x29B38 +0x8EA5DAB8 0x29B3D +0x8EA5DAB9 0x29B39 +0x8EA5DABA 0x29B33 +0x8EA5DABB 0x29C33 +0x8EA5DABC 0x29CBB +0x8EA5DABD 0x29CC6 +0x8EA5DABE 0x29CC5 +0x8EA5DABF 0x29CC7 +0x8EA5DAC0 0x29CCB +0x8EA5DAC1 0x29CA8 +0x8EA5DAC2 0x29CC8 +0x8EA5DAC3 0x29CBE +0x8EA5DAC4 0x29CC1 +0x8EA5DAC5 0x29CBD +0x8EA5DAC6 0x29D82 +0x8EA5DAC7 0x29D9E +0x8EA5DAC8 0x29D81 +0x8EA5DAC9 0x29D84 +0x8EA5DACA 0x9B8D +0x8EA5DACB 0x29D96 +0x8EA5DACC 0x29D8E +0x8EA5DACD 0x29D88 +0x8EA5DACE 0x29D87 +0x8EA5DACF 0x29FE0 +0x8EA5DAD0 0x2A00D +0x8EA5DAD1 0x29FDF +0x8EA5DAD2 0x29FE4 +0x8EA5DAD3 0x29FE2 +0x8EA5DAD4 0x29FDD +0x8EA5DAD5 0x29FEC +0x8EA5DAD6 0x29FDE +0x8EA5DAD7 0x29FE7 +0x8EA5DAD8 0x29FEA +0x8EA5DAD9 0x29FE3 +0x8EA5DADA 0x2A25C +0x8EA5DADB 0x9E77 +0x8EA5DADC 0x2A25D +0x8EA5DADD 0x2A29C +0x8EA5DADE 0x2A31D +0x8EA5DADF 0x2A39D +0x8EA5DAE0 0x2A39E +0x8EA5DAE1 0x2A39B +0x8EA5DAE2 0x2A3B5 +0x8EA5DAE3 0x2A3B9 +0x8EA5DAE4 0x2A3B6 +0x8EA5DAE5 0x2A3F3 +0x8EA5DAE6 0x2A3F2 +0x8EA5DAE7 0x2A3F4 +0x8EA5DAE8 0x2A426 +0x8EA5DAE9 0x2A427 +0x8EA5DAEA 0x2A425 +0x8EA5DAEB 0x2A506 +0x8EA5DAEC 0x2A50B +0x8EA5DAED 0x2A53A +0x8EA5DAEE 0x2A53C +0x8EA5DAEF 0x2040A +0x8EA5DAF0 0x2040B +0x8EA5DAF1 0x204BF +0x8EA5DAF2 0x204FD +0x8EA5DAF3 0x20618 +0x8EA5DAF4 0x291DF +0x8EA5DAF5 0x25390 +0x8EA5DAF6 0x2069E +0x8EA5DAF7 0x207FC +0x8EA5DAF8 0x20810 +0x8EA5DAF9 0x2080F +0x8EA5DAFA 0x2080D +0x8EA5DAFB 0x208B9 +0x8EA5DAFC 0x208B7 +0x8EA5DAFD 0x208BA +0x8EA5DAFE 0x2090A +0x8EA5DBA1 0x21041 +0x8EA5DBA2 0x2108B +0x8EA5DBA3 0x21046 +0x8EA5DBA4 0x21053 +0x8EA5DBA5 0x210E2 +0x8EA5DBA6 0x2103F +0x8EA5DBA7 0x20F7C +0x8EA5DBA8 0x2104B +0x8EA5DBA9 0x2104E +0x8EA5DBAA 0x2108A +0x8EA5DBAB 0x21047 +0x8EA5DBAC 0x21493 +0x8EA5DBAD 0x27DCE +0x8EA5DBAE 0x2148C +0x8EA5DBAF 0x214AF +0x8EA5DBB0 0x214C9 +0x8EA5DBB1 0x215C6 +0x8EA5DBB2 0x215C8 +0x8EA5DBB3 0x21691 +0x8EA5DBB4 0x218CF +0x8EA5DBB5 0x218D4 +0x8EA5DBB6 0x218CE +0x8EA5DBB7 0x21ADD +0x8EA5DBB8 0x21AD4 +0x8EA5DBB9 0x21F49 +0x8EA5DBBA 0x21F63 +0x8EA5DBBB 0x21F5D +0x8EA5DBBC 0x381A +0x8EA5DBBD 0x21F67 +0x8EA5DBBE 0x21FBB +0x8EA5DBBF 0x21F60 +0x8EA5DBC0 0x21F80 +0x8EA5DBC1 0x2215F +0x8EA5DBC2 0x22160 +0x8EA5DBC3 0x222DA +0x8EA5DBC4 0x222D2 +0x8EA5DBC5 0x222DD +0x8EA5DBC6 0x2258E +0x8EA5DBC7 0x22588 +0x8EA5DBC8 0x2256C +0x8EA5DBC9 0x2289E +0x8EA5DBCA 0x228C9 +0x8EA5DBCB 0x228A4 +0x8EA5DBCC 0x3998 +0x8EA5DBCD 0x228D9 +0x8EA5DBCE 0x228D2 +0x8EA5DBCF 0x228DA +0x8EA5DBD0 0x228DD +0x8EA5DBD1 0x228CE +0x8EA5DBD2 0x228FC +0x8EA5DBD3 0x22A14 +0x8EA5DBD4 0x22A60 +0x8EA5DBD5 0x22DD7 +0x8EA5DBD6 0x22DCB +0x8EA5DBD7 0x22DCD +0x8EA5DBD8 0x22DD5 +0x8EA5DBD9 0x22EE7 +0x8EA5DBDA 0x23000 +0x8EA5DBDB 0x2300A +0x8EA5DBDC 0x2300F +0x8EA5DBDD 0x23002 +0x8EA5DBDE 0x23001 +0x8EA5DBDF 0x2311D +0x8EA5DBE0 0x232CA +0x8EA5DBE1 0x232CB +0x8EA5DBE2 0x232CD +0x8EA5DBE3 0x2334F +0x8EA5DBE4 0x2339C +0x8EA5DBE5 0x23680 +0x8EA5DBE6 0x2370D +0x8EA5DBE7 0x23702 +0x8EA5DBE8 0x3BF1 +0x8EA5DBE9 0x23707 +0x8EA5DBEA 0x236F7 +0x8EA5DBEB 0x236F8 +0x8EA5DBEC 0x236FD +0x8EA5DBED 0x23724 +0x8EA5DBEE 0x236FB +0x8EA5DBEF 0x23739 +0x8EA5DBF0 0x2373A +0x8EA5DBF1 0x23922 +0x8EA5DBF2 0x6BA9 +0x8EA5DBF3 0x23A6A +0x8EA5DBF4 0x23A6D +0x8EA5DBF5 0x23A74 +0x8EA5DBF6 0x23C0E +0x8EA5DBF7 0x23FDF +0x8EA5DBF8 0x2402B +0x8EA5DBF9 0x23FE3 +0x8EA5DBFA 0x24026 +0x8EA5DBFB 0x2402A +0x8EA5DBFC 0x24023 +0x8EA5DBFD 0x24035 +0x8EA5DBFE 0x2404A +0x8EA5DCA1 0x243FD +0x8EA5DCA2 0x24400 +0x8EA5DCA3 0x2441E +0x8EA5DCA4 0x243FF +0x8EA5DCA5 0x2459E +0x8EA5DCA6 0x245FA +0x8EA5DCA7 0x246F1 +0x8EA5DCA8 0x24895 +0x8EA5DCA9 0x248A8 +0x8EA5DCAA 0x248A6 +0x8EA5DCAB 0x24A6E +0x8EA5DCAC 0x24A83 +0x8EA5DCAD 0x24A6D +0x8EA5DCAE 0x24B8F +0x8EA5DCAF 0x3F6A +0x8EA5DCB0 0x24CDF +0x8EA5DCB1 0x24CD5 +0x8EA5DCB2 0x24CE0 +0x8EA5DCB3 0x24CD3 +0x8EA5DCB4 0x24CD8 +0x8EA5DCB5 0x24E8C +0x8EA5DCB6 0x764B +0x8EA5DCB7 0x24E94 +0x8EA5DCB8 0x24E96 +0x8EA5DCB9 0x24E85 +0x8EA5DCBA 0x24E8F +0x8EA5DCBB 0x24EA9 +0x8EA5DCBC 0x24E8E +0x8EA5DCBD 0x24E90 +0x8EA5DCBE 0x24EB8 +0x8EA5DCBF 0x24EC3 +0x8EA5DCC0 0x24EBB +0x8EA5DCC1 0x24FA5 +0x8EA5DCC2 0x24FA2 +0x8EA5DCC3 0x76A2 +0x8EA5DCC4 0x24FA3 +0x8EA5DCC5 0x250B5 +0x8EA5DCC6 0x250AC +0x8EA5DCC7 0x250A8 +0x8EA5DCC8 0x252AD +0x8EA5DCC9 0x252B8 +0x8EA5DCCA 0x252B4 +0x8EA5DCCB 0x252AE +0x8EA5DCCC 0x252B6 +0x8EA5DCCD 0x4485 +0x8EA5DCCE 0x252C1 +0x8EA5DCCF 0x252BF +0x8EA5DCD0 0x25392 +0x8EA5DCD1 0x25400 +0x8EA5DCD2 0x25401 +0x8EA5DCD3 0x25575 +0x8EA5DCD4 0x25572 +0x8EA5DCD5 0x25578 +0x8EA5DCD6 0x25570 +0x8EA5DCD7 0x2557E +0x8EA5DCD8 0x2557D +0x8EA5DCD9 0x2557F +0x8EA5DCDA 0x256EF +0x8EA5DCDB 0x2586D +0x8EA5DCDC 0x2588E +0x8EA5DCDD 0x2588F +0x8EA5DCDE 0x2588A +0x8EA5DCDF 0x2588D +0x8EA5DCE0 0x25895 +0x8EA5DCE1 0x2588B +0x8EA5DCE2 0x2588C +0x8EA5DCE3 0x258B0 +0x8EA5DCE4 0x25893 +0x8EA5DCE5 0x259FC +0x8EA5DCE6 0x25A15 +0x8EA5DCE7 0x25A0E +0x8EA5DCE8 0x25A18 +0x8EA5DCE9 0x25A11 +0x8EA5DCEA 0x25A0D +0x8EA5DCEB 0x25ABB +0x8EA5DCEC 0x25AB3 +0x8EA5DCED 0x4239 +0x8EA5DCEE 0x25CA1 +0x8EA5DCEF 0x25C9A +0x8EA5DCF0 0x25C84 +0x8EA5DCF1 0x25CA0 +0x8EA5DCF2 0x25C86 +0x8EA5DCF3 0x25C9D +0x8EA5DCF4 0x25CAA +0x8EA5DCF5 0x25C78 +0x8EA5DCF6 0x25C8D +0x8EA5DCF7 0x25C8A +0x8EA5DCF8 0x25CA6 +0x8EA5DCF9 0x25C7A +0x8EA5DCFA 0x25C97 +0x8EA5DCFB 0x25C88 +0x8EA5DCFC 0x25C8E +0x8EA5DCFD 0x423D +0x8EA5DCFE 0x4244 +0x8EA5DDA1 0x25C76 +0x8EA5DDA2 0x25C81 +0x8EA5DDA3 0x25C85 +0x8EA5DDA4 0x25C75 +0x8EA5DDA5 0x25CA8 +0x8EA5DDA6 0x25C8F +0x8EA5DDA7 0x25C91 +0x8EA5DDA8 0x25CA2 +0x8EA5DDA9 0x25C9C +0x8EA5DDAA 0x25C89 +0x8EA5DDAB 0x25C7F +0x8EA5DDAC 0x25C96 +0x8EA5DDAD 0x25C79 +0x8EA5DDAE 0x25C9F +0x8EA5DDAF 0x25CA7 +0x8EA5DDB0 0x4246 +0x8EA5DDB1 0x25C87 +0x8EA5DDB2 0x25C9B +0x8EA5DDB3 0x25CA5 +0x8EA5DDB4 0x25C8B +0x8EA5DDB5 0x25CC9 +0x8EA5DDB6 0x25EFF +0x8EA5DDB7 0x25F03 +0x8EA5DDB8 0x25F00 +0x8EA5DDB9 0x25F02 +0x8EA5DDBA 0x25F04 +0x8EA5DDBB 0x25F05 +0x8EA5DDBC 0x25EE6 +0x8EA5DDBD 0x25F1F +0x8EA5DDBE 0x26114 +0x8EA5DDBF 0x430E +0x8EA5DDC0 0x2610C +0x8EA5DDC1 0x2610F +0x8EA5DDC2 0x26119 +0x8EA5DDC3 0x2610B +0x8EA5DDC4 0x26113 +0x8EA5DDC5 0x260D5 +0x8EA5DDC6 0x4310 +0x8EA5DDC7 0x2611C +0x8EA5DDC8 0x26250 +0x8EA5DDC9 0x2624E +0x8EA5DDCA 0x26312 +0x8EA5DDCB 0x263B9 +0x8EA5DDCC 0x26485 +0x8EA5DDCD 0x26488 +0x8EA5DDCE 0x26490 +0x8EA5DDCF 0x26513 +0x8EA5DDD0 0x265D0 +0x8EA5DDD1 0x265D1 +0x8EA5DDD2 0x265D2 +0x8EA5DDD3 0x265D7 +0x8EA5DDD4 0x265D6 +0x8EA5DDD5 0x265E5 +0x8EA5DDD6 0x26846 +0x8EA5DDD7 0x2686B +0x8EA5DDD8 0x26845 +0x8EA5DDD9 0x2683F +0x8EA5DDDA 0x2683E +0x8EA5DDDB 0x443E +0x8EA5DDDC 0x2686A +0x8EA5DDDD 0x26868 +0x8EA5DDDE 0x2684C +0x8EA5DDDF 0x26923 +0x8EA5DDE0 0x26922 +0x8EA5DDE1 0x26997 +0x8EA5DDE2 0x26991 +0x8EA5DDE3 0x25AB5 +0x8EA5DDE4 0x26998 +0x8EA5DDE5 0x2699C +0x8EA5DDE6 0x26A89 +0x8EA5DDE7 0x4484 +0x8EA5DDE8 0x26A8B +0x8EA5DDE9 0x26A8A +0x8EA5DDEA 0x26A8D +0x8EA5DDEB 0x26A8E +0x8EA5DDEC 0x26A88 +0x8EA5DDED 0x26F4E +0x8EA5DDEE 0x26F44 +0x8EA5DDEF 0x26F37 +0x8EA5DDF0 0x26F75 +0x8EA5DDF1 0x26F54 +0x8EA5DDF2 0x26F76 +0x8EA5DDF3 0x26F34 +0x8EA5DDF4 0x26F6B +0x8EA5DDF5 0x26F32 +0x8EA5DDF6 0x26F57 +0x8EA5DDF7 0x26F52 +0x8EA5DDF8 0x26F45 +0x8EA5DDF9 0x4549 +0x8EA5DDFA 0x26EB1 +0x8EA5DDFB 0x26F4B +0x8EA5DDFC 0x26F47 +0x8EA5DDFD 0x26F33 +0x8EA5DDFE 0x26F40 +0x8EA5DEA1 0x26F3C +0x8EA5DEA2 0x26F43 +0x8EA5DEA3 0x26F4F +0x8EA5DEA4 0x26F55 +0x8EA5DEA5 0x26F41 +0x8EA5DEA6 0x26FB2 +0x8EA5DEA7 0x26FC0 +0x8EA5DEA8 0x27434 +0x8EA5DEA9 0x273F9 +0x8EA5DEAA 0x27419 +0x8EA5DEAB 0x2740D +0x8EA5DEAC 0x273FA +0x8EA5DEAD 0x2741E +0x8EA5DEAE 0x2741F +0x8EA5DEAF 0x2740E +0x8EA5DEB0 0x27440 +0x8EA5DEB1 0x27408 +0x8EA5DEB2 0x45DF +0x8EA5DEB3 0x27413 +0x8EA5DEB4 0x2744C +0x8EA5DEB5 0x45F0 +0x8EA5DEB6 0x275CC +0x8EA5DEB7 0x275CB +0x8EA5DEB8 0x27724 +0x8EA5DEB9 0x27725 +0x8EA5DEBA 0x2773D +0x8EA5DEBB 0x27720 +0x8EA5DEBC 0x27727 +0x8EA5DEBD 0x27726 +0x8EA5DEBE 0x2771D +0x8EA5DEBF 0x2771E +0x8EA5DEC0 0x27732 +0x8EA5DEC1 0x2776C +0x8EA5DEC2 0x27759 +0x8EA5DEC3 0x468A +0x8EA5DEC4 0x2787A +0x8EA5DEC5 0x27879 +0x8EA5DEC6 0x2791B +0x8EA5DEC7 0x2792E +0x8EA5DEC8 0x27923 +0x8EA5DEC9 0x27920 +0x8EA5DECA 0x2791F +0x8EA5DECB 0x27AB6 +0x8EA5DECC 0x27AB9 +0x8EA5DECD 0x27AA1 +0x8EA5DECE 0x27AA3 +0x8EA5DECF 0x27AA8 +0x8EA5DED0 0x27AAF +0x8EA5DED1 0x27A9A +0x8EA5DED2 0x27A99 +0x8EA5DED3 0x27AA2 +0x8EA5DED4 0x27A9D +0x8EA5DED5 0x4702 +0x8EA5DED6 0x27AAB +0x8EA5DED7 0x27BC9 +0x8EA5DED8 0x27BFE +0x8EA5DED9 0x27C00 +0x8EA5DEDA 0x27BFC +0x8EA5DEDB 0x27C07 +0x8EA5DEDC 0x27C75 +0x8EA5DEDD 0x27C72 +0x8EA5DEDE 0x27C73 +0x8EA5DEDF 0x27C74 +0x8EA5DEE0 0x27CFA +0x8EA5DEE1 0x27CFC +0x8EA5DEE2 0x27CF8 +0x8EA5DEE3 0x27CF6 +0x8EA5DEE4 0x27CFB +0x8EA5DEE5 0x27DCD +0x8EA5DEE6 0x27DD1 +0x8EA5DEE7 0x27DCF +0x8EA5DEE8 0x27E74 +0x8EA5DEE9 0x27E72 +0x8EA5DEEA 0x27E73 +0x8EA5DEEB 0x27F54 +0x8EA5DEEC 0x27F51 +0x8EA5DEED 0x47C0 +0x8EA5DEEE 0x27F53 +0x8EA5DEEF 0x27F49 +0x8EA5DEF0 0x27F4C +0x8EA5DEF1 0x27F4A +0x8EA5DEF2 0x27F4F +0x8EA5DEF3 0x27F56 +0x8EA5DEF4 0x28100 +0x8EA5DEF5 0x280D5 +0x8EA5DEF6 0x280D7 +0x8EA5DEF7 0x280FF +0x8EA5DEF8 0x280D9 +0x8EA5DEF9 0x280E3 +0x8EA5DEFA 0x280D3 +0x8EA5DEFB 0x4815 +0x8EA5DEFC 0x280D8 +0x8EA5DEFD 0x280D4 +0x8EA5DEFE 0x280DE +0x8EA5DFA1 0x28271 +0x8EA5DFA2 0x28374 +0x8EA5DFA3 0x28388 +0x8EA5DFA4 0x2837F +0x8EA5DFA5 0x2836B +0x8EA5DFA6 0x28387 +0x8EA5DFA7 0x28379 +0x8EA5DFA8 0x28378 +0x8EA5DFA9 0x28389 +0x8EA5DFAA 0x28380 +0x8EA5DFAB 0x28376 +0x8EA5DFAC 0x28429 +0x8EA5DFAD 0x28428 +0x8EA5DFAE 0x2842F +0x8EA5DFAF 0x285E5 +0x8EA5DFB0 0x28604 +0x8EA5DFB1 0x28603 +0x8EA5DFB2 0x285F0 +0x8EA5DFB3 0x285E8 +0x8EA5DFB4 0x285EA +0x8EA5DFB5 0x285F1 +0x8EA5DFB6 0x28601 +0x8EA5DFB7 0x28602 +0x8EA5DFB8 0x287A9 +0x8EA5DFB9 0x287AB +0x8EA5DFBA 0x287B7 +0x8EA5DFBB 0x287B6 +0x8EA5DFBC 0x48E2 +0x8EA5DFBD 0x288A0 +0x8EA5DFBE 0x2888E +0x8EA5DFBF 0x28886 +0x8EA5DFC0 0x28887 +0x8EA5DFC1 0x28885 +0x8EA5DFC2 0x2888B +0x8EA5DFC3 0x28888 +0x8EA5DFC4 0x28890 +0x8EA5DFC5 0x2891A +0x8EA5DFC6 0x28934 +0x8EA5DFC7 0x28A37 +0x8EA5DFC8 0x28A2F +0x8EA5DFC9 0x28A30 +0x8EA5DFCA 0x28A39 +0x8EA5DFCB 0x28A34 +0x8EA5DFCC 0x28A33 +0x8EA5DFCD 0x28A85 +0x8EA5DFCE 0x28A84 +0x8EA5DFCF 0x28A3A +0x8EA5DFD0 0x28C9F +0x8EA5DFD1 0x28D69 +0x8EA5DFD2 0x28D6C +0x8EA5DFD3 0x28D6A +0x8EA5DFD4 0x28D67 +0x8EA5DFD5 0x28D6B +0x8EA5DFD6 0x28F3F +0x8EA5DFD7 0x28F40 +0x8EA5DFD8 0x2900B +0x8EA5DFD9 0x290D2 +0x8EA5DFDA 0x290F8 +0x8EA5DFDB 0x29101 +0x8EA5DFDC 0x290FA +0x8EA5DFDD 0x29116 +0x8EA5DFDE 0x2F9F6 +0x8EA5DFDF 0x2922C +0x8EA5DFE0 0x2922D +0x8EA5DFE1 0x2922F +0x8EA5DFE2 0x2922E +0x8EA5DFE3 0x292C1 +0x8EA5DFE4 0x292F5 +0x8EA5DFE5 0x292C4 +0x8EA5DFE6 0x292DE +0x8EA5DFE7 0x292CC +0x8EA5DFE8 0x292D2 +0x8EA5DFE9 0x292C2 +0x8EA5DFEA 0x292CD +0x8EA5DFEB 0x292CF +0x8EA5DFEC 0x292DD +0x8EA5DFED 0x292C8 +0x8EA5DFEE 0x293BA +0x8EA5DFEF 0x293BE +0x8EA5DFF0 0x293BF +0x8EA5DFF1 0x2942E +0x8EA5DFF2 0x29430 +0x8EA5DFF3 0x294E7 +0x8EA5DFF4 0x294EE +0x8EA5DFF5 0x294E8 +0x8EA5DFF6 0x294E6 +0x8EA5DFF7 0x294E2 +0x8EA5DFF8 0x294E4 +0x8EA5DFF9 0x294FB +0x8EA5DFFA 0x294FC +0x8EA5DFFB 0x294EA +0x8EA5DFFC 0x295ED +0x8EA5DFFD 0x295F6 +0x8EA5DFFE 0x295F3 +0x8EA5E0A1 0x295F4 +0x8EA5E0A2 0x295F1 +0x8EA5E0A3 0x295F7 +0x8EA5E0A4 0x295F5 +0x8EA5E0A5 0x295EA +0x8EA5E0A6 0x295EB +0x8EA5E0A7 0x29700 +0x8EA5E0A8 0x2972C +0x8EA5E0A9 0x29712 +0x8EA5E0AA 0x2973D +0x8EA5E0AB 0x29733 +0x8EA5E0AC 0x4B4D +0x8EA5E0AD 0x29730 +0x8EA5E0AE 0x29740 +0x8EA5E0AF 0x29731 +0x8EA5E0B0 0x29757 +0x8EA5E0B1 0x4B4A +0x8EA5E0B2 0x29735 +0x8EA5E0B3 0x29732 +0x8EA5E0B4 0x2972D +0x8EA5E0B5 0x29736 +0x8EA5E0B6 0x29738 +0x8EA5E0B7 0x29762 +0x8EA5E0B8 0x2975F +0x8EA5E0B9 0x2978A +0x8EA5E0BA 0x298D6 +0x8EA5E0BB 0x298D8 +0x8EA5E0BC 0x298DD +0x8EA5E0BD 0x298E4 +0x8EA5E0BE 0x298E3 +0x8EA5E0BF 0x29A4D +0x8EA5E0C0 0x29AD7 +0x8EA5E0C1 0x29B4A +0x8EA5E0C2 0x29B4C +0x8EA5E0C3 0x29B50 +0x8EA5E0C4 0x29B4B +0x8EA5E0C5 0x29B4E +0x8EA5E0C6 0x29B4F +0x8EA5E0C7 0x29C39 +0x8EA5E0C8 0x29CD2 +0x8EA5E0C9 0x29CCD +0x8EA5E0CA 0x29CD3 +0x8EA5E0CB 0x29CE1 +0x8EA5E0CC 0x29CCE +0x8EA5E0CD 0x29CD5 +0x8EA5E0CE 0x29CDD +0x8EA5E0CF 0x29CD4 +0x8EA5E0D0 0x29CCF +0x8EA5E0D1 0x29DCB +0x8EA5E0D2 0x29DA6 +0x8EA5E0D3 0x29DC2 +0x8EA5E0D4 0x29DA5 +0x8EA5E0D5 0x29DA9 +0x8EA5E0D6 0x29DA2 +0x8EA5E0D7 0x29DA4 +0x8EA5E0D8 0x29DB0 +0x8EA5E0D9 0x29DCC +0x8EA5E0DA 0x29DAF +0x8EA5E0DB 0x29DBF +0x8EA5E0DC 0x2A024 +0x8EA5E0DD 0x2A01A +0x8EA5E0DE 0x2A014 +0x8EA5E0DF 0x2A03A +0x8EA5E0E0 0x2A020 +0x8EA5E0E1 0x2A01B +0x8EA5E0E2 0x2A021 +0x8EA5E0E3 0x2A025 +0x8EA5E0E4 0x2A01E +0x8EA5E0E5 0x2A03F +0x8EA5E0E6 0x2A040 +0x8EA5E0E7 0x2A018 +0x8EA5E0E8 0x2A02C +0x8EA5E0E9 0x2A015 +0x8EA5E0EA 0x2A02D +0x8EA5E0EB 0x2A01F +0x8EA5E0EC 0x2A029 +0x8EA5E0ED 0x2A04B +0x8EA5E0EE 0x2A2B3 +0x8EA5E0EF 0x2A2A5 +0x8EA5E0F0 0x2A2A7 +0x8EA5E0F1 0x2A2AB +0x8EA5E0F2 0x2A2A6 +0x8EA5E0F3 0x2A2AA +0x8EA5E0F4 0x2A322 +0x8EA5E0F5 0x2A323 +0x8EA5E0F6 0x2A3A1 +0x8EA5E0F7 0x2A3A3 +0x8EA5E0F8 0x2A3A0 +0x8EA5E0F9 0x2A3BD +0x8EA5E0FA 0x2A3BA +0x8EA5E0FB 0x2A3FA +0x8EA5E0FC 0x2A3F8 +0x8EA5E0FD 0x2A3FC +0x8EA5E0FE 0x2A3F6 +0x8EA5E1A1 0x2A434 +0x8EA5E1A2 0x2A443 +0x8EA5E1A3 0x4D63 +0x8EA5E1A4 0x2A4D4 +0x8EA5E1A5 0x2A50D +0x8EA5E1A6 0x2A543 +0x8EA5E1A7 0x2A541 +0x8EA5E1A8 0x2A53D +0x8EA5E1A9 0x2A540 +0x8EA5E1AA 0x2A53E +0x8EA5E1AB 0x2A53F +0x8EA5E1AC 0x2A546 +0x8EA5E1AD 0x4D93 +0x8EA5E1AE 0x2A5D4 +0x8EA5E1AF 0x20435 +0x8EA5E1B0 0x20436 +0x8EA5E1B1 0x20432 +0x8EA5E1B2 0x2043A +0x8EA5E1B3 0x204C8 +0x8EA5E1B4 0x20536 +0x8EA5E1B5 0x2061E +0x8EA5E1B6 0x2061D +0x8EA5E1B7 0x2061F +0x8EA5E1B8 0x2081C +0x8EA5E1B9 0x2081D +0x8EA5E1BA 0x20820 +0x8EA5E1BB 0x350E +0x8EA5E1BC 0x208C0 +0x8EA5E1BD 0x2109A +0x8EA5E1BE 0x21093 +0x8EA5E1BF 0x210DD +0x8EA5E1C0 0x360A +0x8EA5E1C1 0x210A3 +0x8EA5E1C2 0x210A9 +0x8EA5E1C3 0x2109C +0x8EA5E1C4 0x2109B +0x8EA5E1C5 0x360D +0x8EA5E1C6 0x21097 +0x8EA5E1C7 0x214B1 +0x8EA5E1C8 0x214CA +0x8EA5E1C9 0x214B3 +0x8EA5E1CA 0x214CD +0x8EA5E1CB 0x218EA +0x8EA5E1CC 0x218EE +0x8EA5E1CD 0x218EF +0x8EA5E1CE 0x21ADF +0x8EA5E1CF 0x21B50 +0x8EA5E1D0 0x21BBB +0x8EA5E1D1 0x21F88 +0x8EA5E1D2 0x21F89 +0x8EA5E1D3 0x21F8C +0x8EA5E1D4 0x21F85 +0x8EA5E1D5 0x21F5E +0x8EA5E1D6 0x21F94 +0x8EA5E1D7 0x21F95 +0x8EA5E1D8 0x2216B +0x8EA5E1D9 0x2216A +0x8EA5E1DA 0x22169 +0x8EA5E1DB 0x222E3 +0x8EA5E1DC 0x222F1 +0x8EA5E1DD 0x22437 +0x8EA5E1DE 0x22433 +0x8EA5E1DF 0x22591 +0x8EA5E1E0 0x2258F +0x8EA5E1E1 0x22597 +0x8EA5E1E2 0x228D4 +0x8EA5E1E3 0x228DE +0x8EA5E1E4 0x228D3 +0x8EA5E1E5 0x228E0 +0x8EA5E1E6 0x22943 +0x8EA5E1E7 0x2290B +0x8EA5E1E8 0x228FF +0x8EA5E1E9 0x22904 +0x8EA5E1EA 0x22907 +0x8EA5E1EB 0x22DF9 +0x8EA5E1EC 0x22DFA +0x8EA5E1ED 0x22DFB +0x8EA5E1EE 0x22DF8 +0x8EA5E1EF 0x23012 +0x8EA5E1F0 0x23010 +0x8EA5E1F1 0x2311F +0x8EA5E1F2 0x232DF +0x8EA5E1F3 0x232E3 +0x8EA5E1F4 0x23352 +0x8EA5E1F5 0x233A9 +0x8EA5E1F6 0x23765 +0x8EA5E1F7 0x23787 +0x8EA5E1F8 0x23742 +0x8EA5E1F9 0x23752 +0x8EA5E1FA 0x2374C +0x8EA5E1FB 0x2369F +0x8EA5E1FC 0x23701 +0x8EA5E1FD 0x23748 +0x8EA5E1FE 0x2374F +0x8EA5E2A1 0x2377E +0x8EA5E2A2 0x2374D +0x8EA5E2A3 0x23758 +0x8EA5E2A4 0x23747 +0x8EA5E2A5 0x2375E +0x8EA5E2A6 0x23749 +0x8EA5E2A7 0x2374E +0x8EA5E2A8 0x2375D +0x8EA5E2A9 0x2375A +0x8EA5E2AA 0x23786 +0x8EA5E2AB 0x23751 +0x8EA5E2AC 0x23929 +0x8EA5E2AD 0x239A6 +0x8EA5E2AE 0x239A7 +0x8EA5E2AF 0x23A70 +0x8EA5E2B0 0x23A6F +0x8EA5E2B1 0x23AD3 +0x8EA5E2B2 0x23AD2 +0x8EA5E2B3 0x23C28 +0x8EA5E2B4 0x23C1B +0x8EA5E2B5 0x23C1A +0x8EA5E2B6 0x23C1C +0x8EA5E2B7 0x23C21 +0x8EA5E2B8 0x24032 +0x8EA5E2B9 0x24066 +0x8EA5E2BA 0x2407D +0x8EA5E2BB 0x24073 +0x8EA5E2BC 0x2407F +0x8EA5E2BD 0x24065 +0x8EA5E2BE 0x24080 +0x8EA5E2BF 0x24061 +0x8EA5E2C0 0x24075 +0x8EA5E2C1 0x2406E +0x8EA5E2C2 0x24067 +0x8EA5E2C3 0x24071 +0x8EA5E2C4 0x2406C +0x8EA5E2C5 0x24063 +0x8EA5E2C6 0x24062 +0x8EA5E2C7 0x24083 +0x8EA5E2C8 0x240B2 +0x8EA5E2C9 0x24081 +0x8EA5E2CA 0x2406F +0x8EA5E2CB 0x2406B +0x8EA5E2CC 0x24082 +0x8EA5E2CD 0x2408A +0x8EA5E2CE 0x24429 +0x8EA5E2CF 0x24430 +0x8EA5E2D0 0x24431 +0x8EA5E2D1 0x24597 +0x8EA5E2D2 0x24600 +0x8EA5E2D3 0x245FF +0x8EA5E2D4 0x248B6 +0x8EA5E2D5 0x248B5 +0x8EA5E2D6 0x248C3 +0x8EA5E2D7 0x24A8D +0x8EA5E2D8 0x24B18 +0x8EA5E2D9 0x24B9C +0x8EA5E2DA 0x24B9A +0x8EA5E2DB 0x24B99 +0x8EA5E2DC 0x24EB7 +0x8EA5E2DD 0x24EC4 +0x8EA5E2DE 0x24EC6 +0x8EA5E2DF 0x24EC7 +0x8EA5E2E0 0x24EBC +0x8EA5E2E1 0x24EC0 +0x8EA5E2E2 0x24EC5 +0x8EA5E2E3 0x24ECD +0x8EA5E2E4 0x24EC1 +0x8EA5E2E5 0x24EBE +0x8EA5E2E6 0x24FA7 +0x8EA5E2E7 0x24FB8 +0x8EA5E2E8 0x25023 +0x8EA5E2E9 0x4074 +0x8EA5E2EA 0x252E8 +0x8EA5E2EB 0x252DE +0x8EA5E2EC 0x252E3 +0x8EA5E2ED 0x252EF +0x8EA5E2EE 0x252DC +0x8EA5E2EF 0x252E4 +0x8EA5E2F0 0x252E1 +0x8EA5E2F1 0x252E5 +0x8EA5E2F2 0x25395 +0x8EA5E2F3 0x25394 +0x8EA5E2F4 0x25393 +0x8EA5E2F5 0x2538E +0x8EA5E2F6 0x25598 +0x8EA5E2F7 0x2559C +0x8EA5E2F8 0x25599 +0x8EA5E2F9 0x255A0 +0x8EA5E2FA 0x2559E +0x8EA5E2FB 0x25704 +0x8EA5E2FC 0x258D3 +0x8EA5E2FD 0x258B4 +0x8EA5E2FE 0x258BB +0x8EA5E3A1 0x258B7 +0x8EA5E3A2 0x258B8 +0x8EA5E3A3 0x258BD +0x8EA5E3A4 0x258B6 +0x8EA5E3A5 0x258B9 +0x8EA5E3A6 0x258B5 +0x8EA5E3A7 0x25A22 +0x8EA5E3A8 0x25A21 +0x8EA5E3A9 0x25AC3 +0x8EA5E3AA 0x25ABC +0x8EA5E3AB 0x25CFF +0x8EA5E3AC 0x25CE5 +0x8EA5E3AD 0x25CF7 +0x8EA5E3AE 0x25CD2 +0x8EA5E3AF 0x25D00 +0x8EA5E3B0 0x25CDB +0x8EA5E3B1 0x25CF0 +0x8EA5E3B2 0x25CE2 +0x8EA5E3B3 0x25CCD +0x8EA5E3B4 0x4256 +0x8EA5E3B5 0x25CE1 +0x8EA5E3B6 0x25CF2 +0x8EA5E3B7 0x25CDC +0x8EA5E3B8 0x25CCC +0x8EA5E3B9 0x25CD6 +0x8EA5E3BA 0x25CF3 +0x8EA5E3BB 0x25CFA +0x8EA5E3BC 0x25CF6 +0x8EA5E3BD 0x25CEC +0x8EA5E3BE 0x25CEA +0x8EA5E3BF 0x25CE3 +0x8EA5E3C0 0x25CD0 +0x8EA5E3C1 0x425A +0x8EA5E3C2 0x25C95 +0x8EA5E3C3 0x25CD5 +0x8EA5E3C4 0x25CF4 +0x8EA5E3C5 0x25CCB +0x8EA5E3C6 0x25CDA +0x8EA5E3C7 0x25CC8 +0x8EA5E3C8 0x25CDF +0x8EA5E3C9 0x25CF5 +0x8EA5E3CA 0x25CCF +0x8EA5E3CB 0x25CC7 +0x8EA5E3CC 0x25CD7 +0x8EA5E3CD 0x25F24 +0x8EA5E3CE 0x42A3 +0x8EA5E3CF 0x25F1C +0x8EA5E3D0 0x25F21 +0x8EA5E3D1 0x25F1E +0x8EA5E3D2 0x25F18 +0x8EA5E3D3 0x25F1B +0x8EA5E3D4 0x42A8 +0x8EA5E3D5 0x26146 +0x8EA5E3D6 0x2614B +0x8EA5E3D7 0x26148 +0x8EA5E3D8 0x26147 +0x8EA5E3D9 0x26167 +0x8EA5E3DA 0x26154 +0x8EA5E3DB 0x26315 +0x8EA5E3DC 0x26322 +0x8EA5E3DD 0x263C5 +0x8EA5E3DE 0x26329 +0x8EA5E3DF 0x263C7 +0x8EA5E3E0 0x2648D +0x8EA5E3E1 0x2651B +0x8EA5E3E2 0x26520 +0x8EA5E3E3 0x265E2 +0x8EA5E3E4 0x265E7 +0x8EA5E3E5 0x265E8 +0x8EA5E3E6 0x265E1 +0x8EA5E3E7 0x26872 +0x8EA5E3E8 0x2687B +0x8EA5E3E9 0x26874 +0x8EA5E3EA 0x26871 +0x8EA5E3EB 0x26879 +0x8EA5E3EC 0x26875 +0x8EA5E3ED 0x26890 +0x8EA5E3EE 0x26877 +0x8EA5E3EF 0x2687D +0x8EA5E3F0 0x2694F +0x8EA5E3F1 0x26950 +0x8EA5E3F2 0x269A3 +0x8EA5E3F3 0x269A2 +0x8EA5E3F4 0x269F4 +0x8EA5E3F5 0x26A94 +0x8EA5E3F6 0x26A9A +0x8EA5E3F7 0x26A9B +0x8EA5E3F8 0x26AA7 +0x8EA5E3F9 0x26A97 +0x8EA5E3FA 0x26A95 +0x8EA5E3FB 0x26A92 +0x8EA5E3FC 0x26A9C +0x8EA5E3FD 0x26A96 +0x8EA5E3FE 0x26FB6 +0x8EA5E4A1 0x26FB8 +0x8EA5E4A2 0x26FB0 +0x8EA5E4A3 0x27018 +0x8EA5E4A4 0x26FC5 +0x8EA5E4A5 0x26FB5 +0x8EA5E4A6 0x26FC2 +0x8EA5E4A7 0x27006 +0x8EA5E4A8 0x27019 +0x8EA5E4A9 0x26FB9 +0x8EA5E4AA 0x27015 +0x8EA5E4AB 0x26FD6 +0x8EA5E4AC 0x26FAC +0x8EA5E4AD 0x453C +0x8EA5E4AE 0x26FC6 +0x8EA5E4AF 0x26FB3 +0x8EA5E4B0 0x26FC3 +0x8EA5E4B1 0x26FCA +0x8EA5E4B2 0x26FCF +0x8EA5E4B3 0x26FBD +0x8EA5E4B4 0x26FCE +0x8EA5E4B5 0x27014 +0x8EA5E4B6 0x26FBA +0x8EA5E4B7 0x2701A +0x8EA5E4B8 0x26FC1 +0x8EA5E4B9 0x26FBB +0x8EA5E4BA 0x459B +0x8EA5E4BB 0x459A +0x8EA5E4BC 0x27201 +0x8EA5E4BD 0x271FC +0x8EA5E4BE 0x2745A +0x8EA5E4BF 0x27454 +0x8EA5E4C0 0x27461 +0x8EA5E4C1 0x2745C +0x8EA5E4C2 0x27455 +0x8EA5E4C3 0x2744A +0x8EA5E4C4 0x2744B +0x8EA5E4C5 0x27451 +0x8EA5E4C6 0x27469 +0x8EA5E4C7 0x2746B +0x8EA5E4C8 0x87F1 +0x8EA5E4C9 0x27466 +0x8EA5E4CA 0x27458 +0x8EA5E4CB 0x2745D +0x8EA5E4CC 0x27467 +0x8EA5E4CD 0x27456 +0x8EA5E4CE 0x27488 +0x8EA5E4CF 0x27464 +0x8EA5E4D0 0x2744E +0x8EA5E4D1 0x27757 +0x8EA5E4D2 0x2775A +0x8EA5E4D3 0x27751 +0x8EA5E4D4 0x2774A +0x8EA5E4D5 0x2774B +0x8EA5E4D6 0x465E +0x8EA5E4D7 0x27747 +0x8EA5E4D8 0x2776F +0x8EA5E4D9 0x2776A +0x8EA5E4DA 0x2776B +0x8EA5E4DB 0x27746 +0x8EA5E4DC 0x2776D +0x8EA5E4DD 0x27754 +0x8EA5E4DE 0x2776E +0x8EA5E4DF 0x2774C +0x8EA5E4E0 0x27878 +0x8EA5E4E1 0x27886 +0x8EA5E4E2 0x27882 +0x8EA5E4E3 0x46A7 +0x8EA5E4E4 0x27AE1 +0x8EA5E4E5 0x27AE5 +0x8EA5E4E6 0x27ADB +0x8EA5E4E7 0x27ADE +0x8EA5E4E8 0x27AD7 +0x8EA5E4E9 0x27C03 +0x8EA5E4EA 0x27C7C +0x8EA5E4EB 0x27C7E +0x8EA5E4EC 0x27D05 +0x8EA5E4ED 0x27D07 +0x8EA5E4EE 0x27DE6 +0x8EA5E4EF 0x27DE1 +0x8EA5E4F0 0x27DFB +0x8EA5E4F1 0x27DE5 +0x8EA5E4F2 0x27DE7 +0x8EA5E4F3 0x27DDF +0x8EA5E4F4 0x27DFF +0x8EA5E4F5 0x27E76 +0x8EA5E4F6 0x27F63 +0x8EA5E4F7 0x27F66 +0x8EA5E4F8 0x27F65 +0x8EA5E4F9 0x27F5E +0x8EA5E4FA 0x27F64 +0x8EA5E4FB 0x27F6B +0x8EA5E4FC 0x27F5F +0x8EA5E4FD 0x27F67 +0x8EA5E4FE 0x27F68 +0x8EA5E5A1 0x28108 +0x8EA5E5A2 0x28109 +0x8EA5E5A3 0x28117 +0x8EA5E5A4 0x28115 +0x8EA5E5A5 0x2811B +0x8EA5E5A6 0x2810B +0x8EA5E5A7 0x28128 +0x8EA5E5A8 0x2810E +0x8EA5E5A9 0x28118 +0x8EA5E5AA 0x28153 +0x8EA5E5AB 0x28145 +0x8EA5E5AC 0x2810D +0x8EA5E5AD 0x2810A +0x8EA5E5AE 0x28113 +0x8EA5E5AF 0x2814A +0x8EA5E5B0 0x28279 +0x8EA5E5B1 0x283A1 +0x8EA5E5B2 0x2838D +0x8EA5E5B3 0x283A2 +0x8EA5E5B4 0x28390 +0x8EA5E5B5 0x486E +0x8EA5E5B6 0x28431 +0x8EA5E5B7 0x28430 +0x8EA5E5B8 0x2861F +0x8EA5E5B9 0x28619 +0x8EA5E5BA 0x2860C +0x8EA5E5BB 0x2861E +0x8EA5E5BC 0x2861D +0x8EA5E5BD 0x28607 +0x8EA5E5BE 0x28766 +0x8EA5E5BF 0x287C5 +0x8EA5E5C0 0x287BA +0x8EA5E5C1 0x287BD +0x8EA5E5C2 0x287C2 +0x8EA5E5C3 0x287C3 +0x8EA5E5C4 0x287BF +0x8EA5E5C5 0x490D +0x8EA5E5C6 0x288A1 +0x8EA5E5C7 0x288A2 +0x8EA5E5C8 0x288A8 +0x8EA5E5C9 0x288A3 +0x8EA5E5CA 0x288AA +0x8EA5E5CB 0x288AF +0x8EA5E5CC 0x288B9 +0x8EA5E5CD 0x28937 +0x8EA5E5CE 0x28A8F +0x8EA5E5CF 0x4943 +0x8EA5E5D0 0x28A8E +0x8EA5E5D1 0x28A87 +0x8EA5E5D2 0x28A8A +0x8EA5E5D3 0x28A92 +0x8EA5E5D4 0x28A97 +0x8EA5E5D5 0x28A9F +0x8EA5E5D6 0x28B05 +0x8EA5E5D7 0x28CA9 +0x8EA5E5D8 0x28CA7 +0x8EA5E5D9 0x28D8A +0x8EA5E5DA 0x28D82 +0x8EA5E5DB 0x28D85 +0x8EA5E5DC 0x28D8B +0x8EA5E5DD 0x28D89 +0x8EA5E5DE 0x28D81 +0x8EA5E5DF 0x28D80 +0x8EA5E5E0 0x28D87 +0x8EA5E5E1 0x28D86 +0x8EA5E5E2 0x28F4D +0x8EA5E5E3 0x2901C +0x8EA5E5E4 0x2901F +0x8EA5E5E5 0x29121 +0x8EA5E5E6 0x2911D +0x8EA5E5E7 0x29122 +0x8EA5E5E8 0x290FE +0x8EA5E5E9 0x2911B +0x8EA5E5EA 0x2913A +0x8EA5E5EB 0x29137 +0x8EA5E5EC 0x29117 +0x8EA5E5ED 0x29138 +0x8EA5E5EE 0x29126 +0x8EA5E5EF 0x29118 +0x8EA5E5F0 0x29234 +0x8EA5E5F1 0x29235 +0x8EA5E5F2 0x29232 +0x8EA5E5F3 0x4A73 +0x8EA5E5F4 0x292E1 +0x8EA5E5F5 0x292FD +0x8EA5E5F6 0x292E3 +0x8EA5E5F7 0x292E8 +0x8EA5E5F8 0x292F9 +0x8EA5E5F9 0x292FF +0x8EA5E5FA 0x292FE +0x8EA5E5FB 0x4A74 +0x8EA5E5FC 0x292E0 +0x8EA5E5FD 0x29300 +0x8EA5E5FE 0x4A70 +0x8EA5E6A1 0x292EC +0x8EA5E6A2 0x292E4 +0x8EA5E6A3 0x292EF +0x8EA5E6A4 0x292FA +0x8EA5E6A5 0x293CA +0x8EA5E6A6 0x29431 +0x8EA5E6A7 0x29432 +0x8EA5E6A8 0x29434 +0x8EA5E6A9 0x29441 +0x8EA5E6AA 0x29500 +0x8EA5E6AB 0x29506 +0x8EA5E6AC 0x29508 +0x8EA5E6AD 0x29505 +0x8EA5E6AE 0x29503 +0x8EA5E6AF 0x2950B +0x8EA5E6B0 0x29502 +0x8EA5E6B1 0x2950A +0x8EA5E6B2 0x295F0 +0x8EA5E6B3 0x29613 +0x8EA5E6B4 0x2960A +0x8EA5E6B5 0x2960F +0x8EA5E6B6 0x29611 +0x8EA5E6B7 0x29608 +0x8EA5E6B8 0x2960B +0x8EA5E6B9 0x29612 +0x8EA5E6BA 0x2960D +0x8EA5E6BB 0x2975B +0x8EA5E6BC 0x29763 +0x8EA5E6BD 0x29761 +0x8EA5E6BE 0x29768 +0x8EA5E6BF 0x2975A +0x8EA5E6C0 0x2984E +0x8EA5E6C1 0x2984D +0x8EA5E6C2 0x29850 +0x8EA5E6C3 0x298FC +0x8EA5E6C4 0x29912 +0x8EA5E6C5 0x298F5 +0x8EA5E6C6 0x2991E +0x8EA5E6C7 0x298F0 +0x8EA5E6C8 0x298F3 +0x8EA5E6C9 0x298F2 +0x8EA5E6CA 0x29901 +0x8EA5E6CB 0x298EF +0x8EA5E6CC 0x298EE +0x8EA5E6CD 0x29916 +0x8EA5E6CE 0x298F6 +0x8EA5E6CF 0x298FB +0x8EA5E6D0 0x2991C +0x8EA5E6D1 0x4BDB +0x8EA5E6D2 0x29A5D +0x8EA5E6D3 0x29A60 +0x8EA5E6D4 0x29A66 +0x8EA5E6D5 0x29A5F +0x8EA5E6D6 0x29A61 +0x8EA5E6D7 0x29A5B +0x8EA5E6D8 0x29A62 +0x8EA5E6D9 0x29A57 +0x8EA5E6DA 0x29B69 +0x8EA5E6DB 0x29B6B +0x8EA5E6DC 0x29B61 +0x8EA5E6DD 0x29B77 +0x8EA5E6DE 0x29B5F +0x8EA5E6DF 0x29B63 +0x8EA5E6E0 0x29B62 +0x8EA5E6E1 0x29B65 +0x8EA5E6E2 0x29CEF +0x8EA5E6E3 0x29CE2 +0x8EA5E6E4 0x29D00 +0x8EA5E6E5 0x29CE8 +0x8EA5E6E6 0x29CF2 +0x8EA5E6E7 0x29CE7 +0x8EA5E6E8 0x4C29 +0x8EA5E6E9 0x29CE5 +0x8EA5E6EA 0x29DD5 +0x8EA5E6EB 0x29DD0 +0x8EA5E6EC 0x29DDA +0x8EA5E6ED 0x29DD3 +0x8EA5E6EE 0x4C51 +0x8EA5E6EF 0x29DD9 +0x8EA5E6F0 0x29DCF +0x8EA5E6F1 0x29DD6 +0x8EA5E6F2 0x29DD8 +0x8EA5E6F3 0x29DF5 +0x8EA5E6F4 0x29DCE +0x8EA5E6F5 0x29DD7 +0x8EA5E6F6 0x29DF4 +0x8EA5E6F7 0x29DCD +0x8EA5E6F8 0x29E01 +0x8EA5E6F9 0x9BBA +0x8EA5E6FA 0x2A052 +0x8EA5E6FB 0x2A055 +0x8EA5E6FC 0x2A05A +0x8EA5E6FD 0x2A04D +0x8EA5E6FE 0x2A054 +0x8EA5E7A1 0x2A053 +0x8EA5E7A2 0x2A05E +0x8EA5E7A3 0x2A067 +0x8EA5E7A4 0x2A065 +0x8EA5E7A5 0x2A04E +0x8EA5E7A6 0x4CDB +0x8EA5E7A7 0x2A04F +0x8EA5E7A8 0x2A061 +0x8EA5E7A9 0x2A06E +0x8EA5E7AA 0x2A051 +0x8EA5E7AB 0x2A05B +0x8EA5E7AC 0x2A263 +0x8EA5E7AD 0x2A2B7 +0x8EA5E7AE 0x2A2B6 +0x8EA5E7AF 0x2A2C3 +0x8EA5E7B0 0x2A2BB +0x8EA5E7B1 0x2A2B5 +0x8EA5E7B2 0x2A32E +0x8EA5E7B3 0x2A330 +0x8EA5E7B4 0x2A333 +0x8EA5E7B5 0x2A331 +0x8EA5E7B6 0x2A3A4 +0x8EA5E7B7 0x2A3C1 +0x8EA5E7B8 0x2A3BB +0x8EA5E7B9 0x2A3BE +0x8EA5E7BA 0x2A400 +0x8EA5E7BB 0x2A3FF +0x8EA5E7BC 0x2A440 +0x8EA5E7BD 0x4D65 +0x8EA5E7BE 0x2A43F +0x8EA5E7BF 0x2A444 +0x8EA5E7C0 0x4D64 +0x8EA5E7C1 0x4D67 +0x8EA5E7C2 0x2A4DB +0x8EA5E7C3 0x2A50F +0x8EA5E7C4 0x2A511 +0x8EA5E7C5 0x2A54E +0x8EA5E7C6 0x2A54D +0x8EA5E7C7 0x2A54B +0x8EA5E7C8 0x2A54C +0x8EA5E7C9 0x2A595 +0x8EA5E7CA 0x2043B +0x8EA5E7CB 0x20445 +0x8EA5E7CC 0x20444 +0x8EA5E7CD 0x2043E +0x8EA5E7CE 0x2043C +0x8EA5E7CF 0x2043F +0x8EA5E7D0 0x204CC +0x8EA5E7D1 0x204CE +0x8EA5E7D2 0x20622 +0x8EA5E7D3 0x20623 +0x8EA5E7D4 0x2069F +0x8EA5E7D5 0x208C5 +0x8EA5E7D6 0x208C4 +0x8EA5E7D7 0x210E9 +0x8EA5E7D8 0x21099 +0x8EA5E7D9 0x3611 +0x8EA5E7DA 0x210E6 +0x8EA5E7DB 0x210E7 +0x8EA5E7DC 0x210F7 +0x8EA5E7DD 0x214D2 +0x8EA5E7DE 0x3733 +0x8EA5E7DF 0x218FD +0x8EA5E7E0 0x2190C +0x8EA5E7E1 0x2190B +0x8EA5E7E2 0x21CED +0x8EA5E7E3 0x3821 +0x8EA5E7E4 0x3822 +0x8EA5E7E5 0x21F9B +0x8EA5E7E6 0x2200A +0x8EA5E7E7 0x2216F +0x8EA5E7E8 0x22175 +0x8EA5E7E9 0x222F2 +0x8EA5E7EA 0x222F8 +0x8EA5E7EB 0x2243E +0x8EA5E7EC 0x22924 +0x8EA5E7ED 0x2290E +0x8EA5E7EE 0x22916 +0x8EA5E7EF 0x22918 +0x8EA5E7F0 0x22910 +0x8EA5E7F1 0x22931 +0x8EA5E7F2 0x22944 +0x8EA5E7F3 0x39A6 +0x8EA5E7F4 0x22929 +0x8EA5E7F5 0x2292F +0x8EA5E7F6 0x2294B +0x8EA5E7F7 0x22936 +0x8EA5E7F8 0x39A3 +0x8EA5E7F9 0x22E34 +0x8EA5E7FA 0x22E00 +0x8EA5E7FB 0x22E2B +0x8EA5E7FC 0x23020 +0x8EA5E7FD 0x23021 +0x8EA5E7FE 0x2301E +0x8EA5E8A1 0x2301D +0x8EA5E8A2 0x232F5 +0x8EA5E8A3 0x232F2 +0x8EA5E8A4 0x232F6 +0x8EA5E8A5 0x23790 +0x8EA5E8A6 0x2379D +0x8EA5E8A7 0x2379C +0x8EA5E8A8 0x23792 +0x8EA5E8A9 0x23794 +0x8EA5E8AA 0x237D1 +0x8EA5E8AB 0x23793 +0x8EA5E8AC 0x237B7 +0x8EA5E8AD 0x23797 +0x8EA5E8AE 0x237B0 +0x8EA5E8AF 0x2379F +0x8EA5E8B0 0x237C9 +0x8EA5E8B1 0x2392D +0x8EA5E8B2 0x2392C +0x8EA5E8B3 0x23A77 +0x8EA5E8B4 0x23C2C +0x8EA5E8B5 0x240C0 +0x8EA5E8B6 0x240B9 +0x8EA5E8B7 0x24453 +0x8EA5E8B8 0x24540 +0x8EA5E8B9 0x24702 +0x8EA5E8BA 0x246FB +0x8EA5E8BB 0x3EA1 +0x8EA5E8BC 0x24A8B +0x8EA5E8BD 0x24AAE +0x8EA5E8BE 0x24AAB +0x8EA5E8BF 0x24BA1 +0x8EA5E8C0 0x2A2CD +0x8EA5E8C1 0x24CEA +0x8EA5E8C2 0x24EDD +0x8EA5E8C3 0x24EDC +0x8EA5E8C4 0x24ED9 +0x8EA5E8C5 0x24FAB +0x8EA5E8C6 0x24FAC +0x8EA5E8C7 0x24FAD +0x8EA5E8C8 0x24FB2 +0x8EA5E8C9 0x2502C +0x8EA5E8CA 0x2502B +0x8EA5E8CB 0x250C2 +0x8EA5E8CC 0x25300 +0x8EA5E8CD 0x2530D +0x8EA5E8CE 0x25306 +0x8EA5E8CF 0x252FF +0x8EA5E8D0 0x25303 +0x8EA5E8D1 0x25301 +0x8EA5E8D2 0x25310 +0x8EA5E8D3 0x2530F +0x8EA5E8D4 0x25305 +0x8EA5E8D5 0x25398 +0x8EA5E8D6 0x25397 +0x8EA5E8D7 0x25396 +0x8EA5E8D8 0x25399 +0x8EA5E8D9 0x255AC +0x8EA5E8DA 0x255AB +0x8EA5E8DB 0x25712 +0x8EA5E8DC 0x258D8 +0x8EA5E8DD 0x258DF +0x8EA5E8DE 0x258D6 +0x8EA5E8DF 0x25A2D +0x8EA5E8E0 0x25A32 +0x8EA5E8E1 0x25D3F +0x8EA5E8E2 0x25D2F +0x8EA5E8E3 0x25D26 +0x8EA5E8E4 0x25D3A +0x8EA5E8E5 0x25D39 +0x8EA5E8E6 0x425F +0x8EA5E8E7 0x25D3B +0x8EA5E8E8 0x25D35 +0x8EA5E8E9 0x25D2A +0x8EA5E8EA 0x25D21 +0x8EA5E8EB 0x25D38 +0x8EA5E8EC 0x25D37 +0x8EA5E8ED 0x25D34 +0x8EA5E8EE 0x425C +0x8EA5E8EF 0x25D22 +0x8EA5E8F0 0x25D36 +0x8EA5E8F1 0x25D44 +0x8EA5E8F2 0x25F45 +0x8EA5E8F3 0x25F3B +0x8EA5E8F4 0x25F36 +0x8EA5E8F5 0x25F42 +0x8EA5E8F6 0x2617A +0x8EA5E8F7 0x26186 +0x8EA5E8F8 0x2618B +0x8EA5E8F9 0x2617F +0x8EA5E8FA 0x26181 +0x8EA5E8FB 0x2632A +0x8EA5E8FC 0x263D5 +0x8EA5E8FD 0x2649F +0x8EA5E8FE 0x2649D +0x8EA5E9A1 0x26526 +0x8EA5E9A2 0x265F4 +0x8EA5E9A3 0x265F5 +0x8EA5E9A4 0x26815 +0x8EA5E9A5 0x2688E +0x8EA5E9A6 0x2688F +0x8EA5E9A7 0x26926 +0x8EA5E9A8 0x269A7 +0x8EA5E9A9 0x269AF +0x8EA5E9AA 0x26AAD +0x8EA5E9AB 0x26AAC +0x8EA5E9AC 0x26AAB +0x8EA5E9AD 0x26AAA +0x8EA5E9AE 0x2702F +0x8EA5E9AF 0x27021 +0x8EA5E9B0 0x27023 +0x8EA5E9B1 0x270A3 +0x8EA5E9B2 0x27049 +0x8EA5E9B3 0x2703A +0x8EA5E9B4 0x27048 +0x8EA5E9B5 0x2702D +0x8EA5E9B6 0x27025 +0x8EA5E9B7 0x27029 +0x8EA5E9B8 0x27032 +0x8EA5E9B9 0x27034 +0x8EA5E9BA 0x27024 +0x8EA5E9BB 0x2702C +0x8EA5E9BC 0x2704B +0x8EA5E9BD 0x2703B +0x8EA5E9BE 0x27020 +0x8EA5E9BF 0x27028 +0x8EA5E9C0 0x27498 +0x8EA5E9C1 0x45F5 +0x8EA5E9C2 0x27497 +0x8EA5E9C3 0x8804 +0x8EA5E9C4 0x2749D +0x8EA5E9C5 0x274A8 +0x8EA5E9C6 0x275D5 +0x8EA5E9C7 0x27777 +0x8EA5E9C8 0x27778 +0x8EA5E9C9 0x27772 +0x8EA5E9CA 0x27773 +0x8EA5E9CB 0x27802 +0x8EA5E9CC 0x2793B +0x8EA5E9CD 0x27AFE +0x8EA5E9CE 0x27B0B +0x8EA5E9CF 0x27AFF +0x8EA5E9D0 0x27B07 +0x8EA5E9D1 0x4711 +0x8EA5E9D2 0x470C +0x8EA5E9D3 0x27B30 +0x8EA5E9D4 0x27BCD +0x8EA5E9D5 0x27BCF +0x8EA5E9D6 0x27C10 +0x8EA5E9D7 0x27C0A +0x8EA5E9D8 0x27C83 +0x8EA5E9D9 0x27D15 +0x8EA5E9DA 0x27D0E +0x8EA5E9DB 0x27D0C +0x8EA5E9DC 0x27E02 +0x8EA5E9DD 0x27DFE +0x8EA5E9DE 0x27E05 +0x8EA5E9DF 0x27E15 +0x8EA5E9E0 0x27E08 +0x8EA5E9E1 0x27F7F +0x8EA5E9E2 0x27F77 +0x8EA5E9E3 0x27F7C +0x8EA5E9E4 0x27F82 +0x8EA5E9E5 0x27F7E +0x8EA5E9E6 0x27F78 +0x8EA5E9E7 0x27F7D +0x8EA5E9E8 0x27F79 +0x8EA5E9E9 0x27F81 +0x8EA5E9EA 0x2814B +0x8EA5E9EB 0x28163 +0x8EA5E9EC 0x28164 +0x8EA5E9ED 0x28156 +0x8EA5E9EE 0x28154 +0x8EA5E9EF 0x2814E +0x8EA5E9F0 0x28110 +0x8EA5E9F1 0x2814F +0x8EA5E9F2 0x28157 +0x8EA5E9F3 0x2815E +0x8EA5E9F4 0x28151 +0x8EA5E9F5 0x2816A +0x8EA5E9F6 0x28169 +0x8EA5E9F7 0x283AD +0x8EA5E9F8 0x283A4 +0x8EA5E9F9 0x283AC +0x8EA5E9FA 0x283A9 +0x8EA5E9FB 0x283AE +0x8EA5E9FC 0x2044C +0x8EA5E9FD 0x28650 +0x8EA5E9FE 0x28635 +0x8EA5EAA1 0x28632 +0x8EA5EAA2 0x287D8 +0x8EA5EAA3 0x287D1 +0x8EA5EAA4 0x287CF +0x8EA5EAA5 0x287BE +0x8EA5EAA6 0x288D5 +0x8EA5EAA7 0x288C1 +0x8EA5EAA8 0x288C6 +0x8EA5EAA9 0x288C3 +0x8EA5EAAA 0x288C2 +0x8EA5EAAB 0x288C0 +0x8EA5EAAC 0x288C5 +0x8EA5EAAD 0x288C7 +0x8EA5EAAE 0x288BF +0x8EA5EAAF 0x288C4 +0x8EA5EAB0 0x288D4 +0x8EA5EAB1 0x28A90 +0x8EA5EAB2 0x28AD2 +0x8EA5EAB3 0x494E +0x8EA5EAB4 0x28AD4 +0x8EA5EAB5 0x28CAF +0x8EA5EAB6 0x28CAE +0x8EA5EAB7 0x28CB2 +0x8EA5EAB8 0x28CAD +0x8EA5EAB9 0x28D9C +0x8EA5EABA 0x28DA0 +0x8EA5EABB 0x28DB6 +0x8EA5EABC 0x28F3D +0x8EA5EABD 0x28F56 +0x8EA5EABE 0x28F82 +0x8EA5EABF 0x29028 +0x8EA5EAC0 0x2902B +0x8EA5EAC1 0x2913C +0x8EA5EAC2 0x2913E +0x8EA5EAC3 0x2913F +0x8EA5EAC4 0x29142 +0x8EA5EAC5 0x2913D +0x8EA5EAC6 0x29141 +0x8EA5EAC7 0x2913B +0x8EA5EAC8 0x29149 +0x8EA5EAC9 0x29143 +0x8EA5EACA 0x29239 +0x8EA5EACB 0x29238 +0x8EA5EACC 0x29322 +0x8EA5EACD 0x29308 +0x8EA5EACE 0x2930C +0x8EA5EACF 0x29306 +0x8EA5EAD0 0x29313 +0x8EA5EAD1 0x29304 +0x8EA5EAD2 0x29320 +0x8EA5EAD3 0x2931D +0x8EA5EAD4 0x29305 +0x8EA5EAD5 0x2930A +0x8EA5EAD6 0x293D6 +0x8EA5EAD7 0x293D7 +0x8EA5EAD8 0x29436 +0x8EA5EAD9 0x29437 +0x8EA5EADA 0x29523 +0x8EA5EADB 0x29522 +0x8EA5EADC 0x29520 +0x8EA5EADD 0x2951A +0x8EA5EADE 0x2951D +0x8EA5EADF 0x2961C +0x8EA5EAE0 0x29620 +0x8EA5EAE1 0x29677 +0x8EA5EAE2 0x2977F +0x8EA5EAE3 0x2978B +0x8EA5EAE4 0x2977D +0x8EA5EAE5 0x29799 +0x8EA5EAE6 0x29784 +0x8EA5EAE7 0x29789 +0x8EA5EAE8 0x29785 +0x8EA5EAE9 0x29783 +0x8EA5EAEA 0x29786 +0x8EA5EAEB 0x2979E +0x8EA5EAEC 0x29853 +0x8EA5EAED 0x29917 +0x8EA5EAEE 0x4B94 +0x8EA5EAEF 0x29919 +0x8EA5EAF0 0x29920 +0x8EA5EAF1 0x2991F +0x8EA5EAF2 0x29923 +0x8EA5EAF3 0x29918 +0x8EA5EAF4 0x29921 +0x8EA5EAF5 0x29929 +0x8EA5EAF6 0x29924 +0x8EA5EAF7 0x29926 +0x8EA5EAF8 0x29A5E +0x8EA5EAF9 0x29A6F +0x8EA5EAFA 0x29A6E +0x8EA5EAFB 0x29A74 +0x8EA5EAFC 0x29A72 +0x8EA5EAFD 0x29A73 +0x8EA5EAFE 0x29B7D +0x8EA5EBA1 0x29B7E +0x8EA5EBA2 0x29B85 +0x8EA5EBA3 0x29B7F +0x8EA5EBA4 0x29B84 +0x8EA5EBA5 0x29C44 +0x8EA5EBA6 0x29CF5 +0x8EA5EBA7 0x29CF8 +0x8EA5EBA8 0x29D03 +0x8EA5EBA9 0x29CF6 +0x8EA5EBAA 0x29E28 +0x8EA5EBAB 0x4C63 +0x8EA5EBAC 0x29E39 +0x8EA5EBAD 0x29DFB +0x8EA5EBAE 0x29E0E +0x8EA5EBAF 0x29DFD +0x8EA5EBB0 0x29E1F +0x8EA5EBB1 0x4C61 +0x8EA5EBB2 0x29E03 +0x8EA5EBB3 0x9BD8 +0x8EA5EBB4 0x29E10 +0x8EA5EBB5 0x4C5A +0x8EA5EBB6 0x29E0D +0x8EA5EBB7 0x29E27 +0x8EA5EBB8 0x29E41 +0x8EA5EBB9 0x2A072 +0x8EA5EBBA 0x2A078 +0x8EA5EBBB 0x2A080 +0x8EA5EBBC 0x4CE3 +0x8EA5EBBD 0x2A085 +0x8EA5EBBE 0x2A07B +0x8EA5EBBF 0x9D7C +0x8EA5EBC0 0x2A07D +0x8EA5EBC1 0x2A091 +0x8EA5EBC2 0x2A088 +0x8EA5EBC3 0x2A0AA +0x8EA5EBC4 0x2A08D +0x8EA5EBC5 0x2A089 +0x8EA5EBC6 0x2A095 +0x8EA5EBC7 0x2A09B +0x8EA5EBC8 0x2A08C +0x8EA5EBC9 0x2A09E +0x8EA5EBCA 0x2A07C +0x8EA5EBCB 0x2A086 +0x8EA5EBCC 0x2A084 +0x8EA5EBCD 0x2A268 +0x8EA5EBCE 0x2A2C5 +0x8EA5EBCF 0x2A2C4 +0x8EA5EBD0 0x2A2C9 +0x8EA5EBD1 0x2A2C6 +0x8EA5EBD2 0x2A342 +0x8EA5EBD3 0x2A345 +0x8EA5EBD4 0x2A341 +0x8EA5EBD5 0x2A344 +0x8EA5EBD6 0x2A3A6 +0x8EA5EBD7 0x2A3C2 +0x8EA5EBD8 0x2A442 +0x8EA5EBD9 0x2A449 +0x8EA5EBDA 0x2A448 +0x8EA5EBDB 0x2A44A +0x8EA5EBDC 0x2A44C +0x8EA5EBDD 0x2A44B +0x8EA5EBDE 0x2A517 +0x8EA5EBDF 0x2A518 +0x8EA5EBE0 0x2A515 +0x8EA5EBE1 0x2A552 +0x8EA5EBE2 0x2A554 +0x8EA5EBE3 0x2A553 +0x8EA5EBE4 0x2A59A +0x8EA5EBE5 0x2A59B +0x8EA5EBE6 0x2A5DC +0x8EA5EBE7 0x2A5E4 +0x8EA5EBE8 0x2A691 +0x8EA5EBE9 0x4DAF +0x8EA5EBEA 0x2A6BA +0x8EA5EBEB 0x20451 +0x8EA5EBEC 0x2045B +0x8EA5EBED 0x204CF +0x8EA5EBEE 0x23305 +0x8EA5EBEF 0x21113 +0x8EA5EBF0 0x21115 +0x8EA5EBF1 0x21114 +0x8EA5EBF2 0x21123 +0x8EA5EBF3 0x3613 +0x8EA5EBF4 0x21111 +0x8EA5EBF5 0x21112 +0x8EA5EBF6 0x3680 +0x8EA5EBF7 0x214F0 +0x8EA5EBF8 0x2169B +0x8EA5EBF9 0x21912 +0x8EA5EBFA 0x21916 +0x8EA5EBFB 0x21917 +0x8EA5EBFC 0x219B5 +0x8EA5EBFD 0x21CF4 +0x8EA5EBFE 0x21FB1 +0x8EA5ECA1 0x22179 +0x8EA5ECA2 0x222FF +0x8EA5ECA3 0x222FC +0x8EA5ECA4 0x222FB +0x8EA5ECA5 0x2243F +0x8EA5ECA6 0x22444 +0x8EA5ECA7 0x2259D +0x8EA5ECA8 0x22932 +0x8EA5ECA9 0x2294C +0x8EA5ECAA 0x2292B +0x8EA5ECAB 0x2295A +0x8EA5ECAC 0x22A1F +0x8EA5ECAD 0x22E01 +0x8EA5ECAE 0x22E2D +0x8EA5ECAF 0x22E27 +0x8EA5ECB0 0x22E59 +0x8EA5ECB1 0x22E5A +0x8EA5ECB2 0x22E4D +0x8EA5ECB3 0x22E58 +0x8EA5ECB4 0x23023 +0x8EA5ECB5 0x23025 +0x8EA5ECB6 0x2302B +0x8EA5ECB7 0x232FF +0x8EA5ECB8 0x233AE +0x8EA5ECB9 0x237CB +0x8EA5ECBA 0x237CA +0x8EA5ECBB 0x237D0 +0x8EA5ECBC 0x237CE +0x8EA5ECBD 0x237CC +0x8EA5ECBE 0x237D8 +0x8EA5ECBF 0x237C6 +0x8EA5ECC0 0x237D2 +0x8EA5ECC1 0x237CF +0x8EA5ECC2 0x237C8 +0x8EA5ECC3 0x23B17 +0x8EA5ECC4 0x4DB0 +0x8EA5ECC5 0x240C4 +0x8EA5ECC6 0x29240 +0x8EA5ECC7 0x240E9 +0x8EA5ECC8 0x240F2 +0x8EA5ECC9 0x240FC +0x8EA5ECCA 0x240EA +0x8EA5ECCB 0x240EB +0x8EA5ECCC 0x240FD +0x8EA5ECCD 0x24478 +0x8EA5ECCE 0x24477 +0x8EA5ECCF 0x24473 +0x8EA5ECD0 0x2449E +0x8EA5ECD1 0x24479 +0x8EA5ECD2 0x245A2 +0x8EA5ECD3 0x24603 +0x8EA5ECD4 0x24704 +0x8EA5ECD5 0x24705 +0x8EA5ECD6 0x248CE +0x8EA5ECD7 0x24ABF +0x8EA5ECD8 0x24EF6 +0x8EA5ECD9 0x24EF7 +0x8EA5ECDA 0x25031 +0x8EA5ECDB 0x25030 +0x8EA5ECDC 0x250C9 +0x8EA5ECDD 0x250C7 +0x8EA5ECDE 0x2531C +0x8EA5ECDF 0x25328 +0x8EA5ECE0 0x2531A +0x8EA5ECE1 0x2531E +0x8EA5ECE2 0x2531B +0x8EA5ECE3 0x2531F +0x8EA5ECE4 0x255BF +0x8EA5ECE5 0x255BB +0x8EA5ECE6 0x255BC +0x8EA5ECE7 0x255C0 +0x8EA5ECE8 0x2571A +0x8EA5ECE9 0x258EF +0x8EA5ECEA 0x258EC +0x8EA5ECEB 0x258E9 +0x8EA5ECEC 0x258F0 +0x8EA5ECED 0x258FE +0x8EA5ECEE 0x25A34 +0x8EA5ECEF 0x25D6A +0x8EA5ECF0 0x25D95 +0x8EA5ECF1 0x25D6C +0x8EA5ECF2 0x25D72 +0x8EA5ECF3 0x25D67 +0x8EA5ECF4 0x25D60 +0x8EA5ECF5 0x25D6B +0x8EA5ECF6 0x25D5E +0x8EA5ECF7 0x25D6F +0x8EA5ECF8 0x25D66 +0x8EA5ECF9 0x7C46 +0x8EA5ECFA 0x25D62 +0x8EA5ECFB 0x25D5D +0x8EA5ECFC 0x25D5C +0x8EA5ECFD 0x2F965 +0x8EA5ECFE 0x25F50 +0x8EA5EDA1 0x2619F +0x8EA5EDA2 0x4323 +0x8EA5EDA3 0x2619E +0x8EA5EDA4 0x261A6 +0x8EA5EDA5 0x26335 +0x8EA5EDA6 0x26338 +0x8EA5EDA7 0x26336 +0x8EA5EDA8 0x2633A +0x8EA5EDA9 0x263DC +0x8EA5EDAA 0x2687C +0x8EA5EDAB 0x268AB +0x8EA5EDAC 0x4449 +0x8EA5EDAD 0x268A8 +0x8EA5EDAE 0x268A7 +0x8EA5EDAF 0x2692B +0x8EA5EDB0 0x2692C +0x8EA5EDB1 0x26928 +0x8EA5EDB2 0x2092B +0x8EA5EDB3 0x269A9 +0x8EA5EDB4 0x269AA +0x8EA5EDB5 0x269AB +0x8EA5EDB6 0x269F8 +0x8EA5EDB7 0x26AB1 +0x8EA5EDB8 0x26AF0 +0x8EA5EDB9 0x26AEF +0x8EA5EDBA 0x270A8 +0x8EA5EDBB 0x2708B +0x8EA5EDBC 0x27094 +0x8EA5EDBD 0x2709E +0x8EA5EDBE 0x2708F +0x8EA5EDBF 0x27088 +0x8EA5EDC0 0x2707E +0x8EA5EDC1 0x27081 +0x8EA5EDC2 0x27030 +0x8EA5EDC3 0x2709B +0x8EA5EDC4 0x27082 +0x8EA5EDC5 0x27090 +0x8EA5EDC6 0x27085 +0x8EA5EDC7 0x2707F +0x8EA5EDC8 0x270A9 +0x8EA5EDC9 0x270DE +0x8EA5EDCA 0x2720D +0x8EA5EDCB 0x45FA +0x8EA5EDCC 0x274CF +0x8EA5EDCD 0x274CB +0x8EA5EDCE 0x274D8 +0x8EA5EDCF 0x274DD +0x8EA5EDD0 0x274D3 +0x8EA5EDD1 0x274D0 +0x8EA5EDD2 0x274D5 +0x8EA5EDD3 0x274D6 +0x8EA5EDD4 0x275D6 +0x8EA5EDD5 0x27792 +0x8EA5EDD6 0x27795 +0x8EA5EDD7 0x2A5CB +0x8EA5EDD8 0x2778D +0x8EA5EDD9 0x2779B +0x8EA5EDDA 0x2779D +0x8EA5EDDB 0x2778F +0x8EA5EDDC 0x2779E +0x8EA5EDDD 0x277A6 +0x8EA5EDDE 0x27896 +0x8EA5EDDF 0x27892 +0x8EA5EDE0 0x27B16 +0x8EA5EDE1 0x27B2A +0x8EA5EDE2 0x27B29 +0x8EA5EDE3 0x27B2C +0x8EA5EDE4 0x27C15 +0x8EA5EDE5 0x27C12 +0x8EA5EDE6 0x27C11 +0x8EA5EDE7 0x27C13 +0x8EA5EDE8 0x27C88 +0x8EA5EDE9 0x27C8B +0x8EA5EDEA 0x27C8A +0x8EA5EDEB 0x27C87 +0x8EA5EDEC 0x27D17 +0x8EA5EDED 0x27D16 +0x8EA5EDEE 0x27D1A +0x8EA5EDEF 0x27E19 +0x8EA5EDF0 0x27E17 +0x8EA5EDF1 0x27F91 +0x8EA5EDF2 0x27F94 +0x8EA5EDF3 0x2818B +0x8EA5EDF4 0x28190 +0x8EA5EDF5 0x2818F +0x8EA5EDF6 0x28186 +0x8EA5EDF7 0x28183 +0x8EA5EDF8 0x2818E +0x8EA5EDF9 0x28187 +0x8EA5EDFA 0x281A8 +0x8EA5EDFB 0x28185 +0x8EA5EDFC 0x281A6 +0x8EA5EDFD 0x28182 +0x8EA5EDFE 0x281A7 +0x8EA5EEA1 0x283B9 +0x8EA5EEA2 0x283B7 +0x8EA5EEA3 0x283B4 +0x8EA5EEA4 0x283B6 +0x8EA5EEA5 0x283B3 +0x8EA5EEA6 0x283C6 +0x8EA5EEA7 0x2863C +0x8EA5EEA8 0x28640 +0x8EA5EEA9 0x28638 +0x8EA5EEAA 0x28791 +0x8EA5EEAB 0x287A6 +0x8EA5EEAC 0x287DA +0x8EA5EEAD 0x288DA +0x8EA5EEAE 0x288D8 +0x8EA5EEAF 0x288D9 +0x8EA5EEB0 0x288DB +0x8EA5EEB1 0x288D7 +0x8EA5EEB2 0x28B16 +0x8EA5EEB3 0x28B12 +0x8EA5EEB4 0x28B1F +0x8EA5EEB5 0x4959 +0x8EA5EEB6 0x28B14 +0x8EA5EEB7 0x28B1A +0x8EA5EEB8 0x28B10 +0x8EA5EEB9 0x28CB3 +0x8EA5EEBA 0x28DAE +0x8EA5EEBB 0x28DC1 +0x8EA5EEBC 0x28DB0 +0x8EA5EEBD 0x28DAF +0x8EA5EEBE 0x28DB1 +0x8EA5EEBF 0x28DAD +0x8EA5EEC0 0x28DB2 +0x8EA5EEC1 0x28DC4 +0x8EA5EEC2 0x2903C +0x8EA5EEC3 0x2903F +0x8EA5EEC4 0x29161 +0x8EA5EEC5 0x29166 +0x8EA5EEC6 0x2923C +0x8EA5EEC7 0x2923B +0x8EA5EEC8 0x2932C +0x8EA5EEC9 0x4A7E +0x8EA5EECA 0x2932A +0x8EA5EECB 0x2933E +0x8EA5EECC 0x2932F +0x8EA5EECD 0x29332 +0x8EA5EECE 0x29327 +0x8EA5EECF 0x29329 +0x8EA5EED0 0x29340 +0x8EA5EED1 0x293DF +0x8EA5EED2 0x293DE +0x8EA5EED3 0x2943C +0x8EA5EED4 0x2943B +0x8EA5EED5 0x2943E +0x8EA5EED6 0x29521 +0x8EA5EED7 0x29546 +0x8EA5EED8 0x2953C +0x8EA5EED9 0x29536 +0x8EA5EEDA 0x29538 +0x8EA5EEDB 0x29535 +0x8EA5EEDC 0x29631 +0x8EA5EEDD 0x29636 +0x8EA5EEDE 0x2962D +0x8EA5EEDF 0x29633 +0x8EA5EEE0 0x2962F +0x8EA5EEE1 0x2962E +0x8EA5EEE2 0x29635 +0x8EA5EEE3 0x297AC +0x8EA5EEE4 0x297A9 +0x8EA5EEE5 0x297A6 +0x8EA5EEE6 0x4BA8 +0x8EA5EEE7 0x2994C +0x8EA5EEE8 0x29943 +0x8EA5EEE9 0x29941 +0x8EA5EEEA 0x2994F +0x8EA5EEEB 0x29942 +0x8EA5EEEC 0x29951 +0x8EA5EEED 0x4BA9 +0x8EA5EEEE 0x29940 +0x8EA5EEEF 0x29950 +0x8EA5EEF0 0x29945 +0x8EA5EEF1 0x2994A +0x8EA5EEF2 0x2994B +0x8EA5EEF3 0x29A83 +0x8EA5EEF4 0x29A82 +0x8EA5EEF5 0x29A81 +0x8EA5EEF6 0x29AE0 +0x8EA5EEF7 0x29B98 +0x8EA5EEF8 0x29B9F +0x8EA5EEF9 0x29B9B +0x8EA5EEFA 0x29B9A +0x8EA5EEFB 0x29B99 +0x8EA5EEFC 0x29B96 +0x8EA5EEFD 0x29BAE +0x8EA5EEFE 0x29B9E +0x8EA5EFA1 0x29D09 +0x8EA5EFA2 0x29D0D +0x8EA5EFA3 0x29E4E +0x8EA5EFA4 0x29E4A +0x8EA5EFA5 0x29E4D +0x8EA5EFA6 0x29E40 +0x8EA5EFA7 0x29E3E +0x8EA5EFA8 0x29E48 +0x8EA5EFA9 0x29E42 +0x8EA5EFAA 0x29E62 +0x8EA5EFAB 0x29E45 +0x8EA5EFAC 0x29E51 +0x8EA5EFAD 0x2A0C6 +0x8EA5EFAE 0x2A0D0 +0x8EA5EFAF 0x2A0C0 +0x8EA5EFB0 0x2A0B7 +0x8EA5EFB1 0x2A0C2 +0x8EA5EFB2 0x2A0BC +0x8EA5EFB3 0x2A0C5 +0x8EA5EFB4 0x2A0DC +0x8EA5EFB5 0x2A0DB +0x8EA5EFB6 0x2A0D2 +0x8EA5EFB7 0x2A0C7 +0x8EA5EFB8 0x2A0B6 +0x8EA5EFB9 0x2A0C9 +0x8EA5EFBA 0x2A0CC +0x8EA5EFBB 0x2A0D1 +0x8EA5EFBC 0x2A0CD +0x8EA5EFBD 0x2A0DA +0x8EA5EFBE 0x2A0BA +0x8EA5EFBF 0x2A0D3 +0x8EA5EFC0 0x2A0CE +0x8EA5EFC1 0x2A0F6 +0x8EA5EFC2 0x2A0BD +0x8EA5EFC3 0x2A0DD +0x8EA5EFC4 0x2A0C8 +0x8EA5EFC5 0x2A10D +0x8EA5EFC6 0x2A135 +0x8EA5EFC7 0x2A271 +0x8EA5EFC8 0x2A26E +0x8EA5EFC9 0x2A26F +0x8EA5EFCA 0x2A2D6 +0x8EA5EFCB 0x2A34C +0x8EA5EFCC 0x2A34F +0x8EA5EFCD 0x2A354 +0x8EA5EFCE 0x2A353 +0x8EA5EFCF 0x2A3C9 +0x8EA5EFD0 0x2A3C8 +0x8EA5EFD1 0x2A403 +0x8EA5EFD2 0x4D54 +0x8EA5EFD3 0x2A404 +0x8EA5EFD4 0x4D56 +0x8EA5EFD5 0x2A457 +0x8EA5EFD6 0x2A452 +0x8EA5EFD7 0x2A453 +0x8EA5EFD8 0x4D6D +0x8EA5EFD9 0x2A456 +0x8EA5EFDA 0x2A45C +0x8EA5EFDB 0x2A455 +0x8EA5EFDC 0x2A564 +0x8EA5EFDD 0x2A55D +0x8EA5EFDE 0x2A55E +0x8EA5EFDF 0x2A5A2 +0x8EA5EFE0 0x2A5A3 +0x8EA5EFE1 0x4D8E +0x8EA5EFE2 0x2A5E7 +0x8EA5EFE3 0x2A5E6 +0x8EA5EFE4 0x2A698 +0x8EA5EFE5 0x2A6AC +0x8EA5EFE6 0x2A6AF +0x8EA5EFE7 0x2A6AE +0x8EA5EFE8 0x20459 +0x8EA5EFE9 0x205A9 +0x8EA5EFEA 0x2082A +0x8EA5EFEB 0x208C7 +0x8EA5EFEC 0x21141 +0x8EA5EFED 0x21137 +0x8EA5EFEE 0x21135 +0x8EA5EFEF 0x21133 +0x8EA5EFF0 0x21139 +0x8EA5EFF1 0x21132 +0x8EA5EFF2 0x214FF +0x8EA5EFF3 0x21501 +0x8EA5EFF4 0x214F8 +0x8EA5EFF5 0x2191B +0x8EA5EFF6 0x21919 +0x8EA5EFF7 0x21BBF +0x8EA5EFF8 0x21FBC +0x8EA5EFF9 0x21FBE +0x8EA5EFFA 0x21FBD +0x8EA5EFFB 0x2217D +0x8EA5EFFC 0x22446 +0x8EA5EFFD 0x22447 +0x8EA5EFFE 0x225A4 +0x8EA5F0A1 0x22A21 +0x8EA5F0A2 0x22A62 +0x8EA5F0A3 0x22E86 +0x8EA5F0A4 0x3A72 +0x8EA5F0A5 0x2302F +0x8EA5F0A6 0x23031 +0x8EA5F0A7 0x3C14 +0x8EA5F0A8 0x237F8 +0x8EA5F0A9 0x237F5 +0x8EA5F0AA 0x237F9 +0x8EA5F0AB 0x237F2 +0x8EA5F0AC 0x237FA +0x8EA5F0AD 0x237F3 +0x8EA5F0AE 0x23814 +0x8EA5F0AF 0x237FD +0x8EA5F0B0 0x2380F +0x8EA5F0B1 0x2380E +0x8EA5F0B2 0x23801 +0x8EA5F0B3 0x23937 +0x8EA5F0B4 0x23935 +0x8EA5F0B5 0x23934 +0x8EA5F0B6 0x23931 +0x8EA5F0B7 0x23A7A +0x8EA5F0B8 0x23A7B +0x8EA5F0B9 0x23C37 +0x8EA5F0BA 0x2412B +0x8EA5F0BB 0x240FB +0x8EA5F0BC 0x24116 +0x8EA5F0BD 0x24113 +0x8EA5F0BE 0x3D93 +0x8EA5F0BF 0x24111 +0x8EA5F0C0 0x2410F +0x8EA5F0C1 0x2411B +0x8EA5F0C2 0x24138 +0x8EA5F0C3 0x244A4 +0x8EA5F0C4 0x24709 +0x8EA5F0C5 0x24707 +0x8EA5F0C6 0x2470B +0x8EA5F0C7 0x248D3 +0x8EA5F0C8 0x248D1 +0x8EA5F0C9 0x248D8 +0x8EA5F0CA 0x24B1D +0x8EA5F0CB 0x24BA9 +0x8EA5F0CC 0x24BD0 +0x8EA5F0CD 0x27215 +0x8EA5F0CE 0x24F02 +0x8EA5F0CF 0x24F05 +0x8EA5F0D0 0x24F01 +0x8EA5F0D1 0x24F00 +0x8EA5F0D2 0x2532E +0x8EA5F0D3 0x25330 +0x8EA5F0D4 0x2532F +0x8EA5F0D5 0x25331 +0x8EA5F0D6 0x255D2 +0x8EA5F0D7 0x255D3 +0x8EA5F0D8 0x25902 +0x8EA5F0D9 0x25A40 +0x8EA5F0DA 0x25A42 +0x8EA5F0DB 0x25A3B +0x8EA5F0DC 0x25ACE +0x8EA5F0DD 0x25D98 +0x8EA5F0DE 0x25D8F +0x8EA5F0DF 0x25D94 +0x8EA5F0E0 0x25D91 +0x8EA5F0E1 0x426F +0x8EA5F0E2 0x25DBA +0x8EA5F0E3 0x25D90 +0x8EA5F0E4 0x25D86 +0x8EA5F0E5 0x25D9A +0x8EA5F0E6 0x25D8C +0x8EA5F0E7 0x25D93 +0x8EA5F0E8 0x25D87 +0x8EA5F0E9 0x25D88 +0x8EA5F0EA 0x25D97 +0x8EA5F0EB 0x25D8D +0x8EA5F0EC 0x25D9C +0x8EA5F0ED 0x25DBD +0x8EA5F0EE 0x25F3C +0x8EA5F0EF 0x25F59 +0x8EA5F0F0 0x42B0 +0x8EA5F0F1 0x261D1 +0x8EA5F0F2 0x261BB +0x8EA5F0F3 0x261BE +0x8EA5F0F4 0x2625D +0x8EA5F0F5 0x263E2 +0x8EA5F0F6 0x26605 +0x8EA5F0F7 0x268BA +0x8EA5F0F8 0x352E +0x8EA5F0F9 0x268F4 +0x8EA5F0FA 0x269B2 +0x8EA5F0FB 0x269F9 +0x8EA5F0FC 0x26AB7 +0x8EA5F0FD 0x26AB6 +0x8EA5F0FE 0x27089 +0x8EA5F1A1 0x270F9 +0x8EA5F1A2 0x270D9 +0x8EA5F1A3 0x270E8 +0x8EA5F1A4 0x270D4 +0x8EA5F1A5 0x270DB +0x8EA5F1A6 0x270E2 +0x8EA5F1A7 0x270DF +0x8EA5F1A8 0x270D1 +0x8EA5F1A9 0x270E9 +0x8EA5F1AA 0x270EA +0x8EA5F1AB 0x27213 +0x8EA5F1AC 0x27211 +0x8EA5F1AD 0x274FA +0x8EA5F1AE 0x274F8 +0x8EA5F1AF 0x274F4 +0x8EA5F1B0 0x274FB +0x8EA5F1B1 0x2750E +0x8EA5F1B2 0x27502 +0x8EA5F1B3 0x2750F +0x8EA5F1B4 0x27790 +0x8EA5F1B5 0x277AD +0x8EA5F1B6 0x277A9 +0x8EA5F1B7 0x27948 +0x8EA5F1B8 0x27B5A +0x8EA5F1B9 0x27B4F +0x8EA5F1BA 0x27B4E +0x8EA5F1BB 0x27B55 +0x8EA5F1BC 0x27B54 +0x8EA5F1BD 0x27B4A +0x8EA5F1BE 0x27BD5 +0x8EA5F1BF 0x27C18 +0x8EA5F1C0 0x27C8D +0x8EA5F1C1 0x27D1D +0x8EA5F1C2 0x27D19 +0x8EA5F1C3 0x27E26 +0x8EA5F1C4 0x27E28 +0x8EA5F1C5 0x27E2B +0x8EA5F1C6 0x27E7D +0x8EA5F1C7 0x27FA0 +0x8EA5F1C8 0x27F9A +0x8EA5F1C9 0x27F9B +0x8EA5F1CA 0x281B5 +0x8EA5F1CB 0x281AD +0x8EA5F1CC 0x281B2 +0x8EA5F1CD 0x28294 +0x8EA5F1CE 0x283C9 +0x8EA5F1CF 0x2864E +0x8EA5F1D0 0x2864F +0x8EA5F1D1 0x28644 +0x8EA5F1D2 0x28652 +0x8EA5F1D3 0x288E9 +0x8EA5F1D4 0x28939 +0x8EA5F1D5 0x4969 +0x8EA5F1D6 0x957E +0x8EA5F1D7 0x28DC7 +0x8EA5F1D8 0x28DD3 +0x8EA5F1D9 0x28DC6 +0x8EA5F1DA 0x28DC3 +0x8EA5F1DB 0x49B4 +0x8EA5F1DC 0x28DD2 +0x8EA5F1DD 0x28F66 +0x8EA5F1DE 0x2917F +0x8EA5F1DF 0x29180 +0x8EA5F1E0 0x29184 +0x8EA5F1E1 0x29185 +0x8EA5F1E2 0x291E3 +0x8EA5F1E3 0x4A4D +0x8EA5F1E4 0x29241 +0x8EA5F1E5 0x29244 +0x8EA5F1E6 0x29243 +0x8EA5F1E7 0x2934E +0x8EA5F1E8 0x2934F +0x8EA5F1E9 0x4A83 +0x8EA5F1EA 0x29349 +0x8EA5F1EB 0x2934A +0x8EA5F1EC 0x2934B +0x8EA5F1ED 0x29343 +0x8EA5F1EE 0x293E0 +0x8EA5F1EF 0x293E5 +0x8EA5F1F0 0x293E1 +0x8EA5F1F1 0x293E6 +0x8EA5F1F2 0x293E2 +0x8EA5F1F3 0x2940C +0x8EA5F1F4 0x29440 +0x8EA5F1F5 0x29549 +0x8EA5F1F6 0x2954A +0x8EA5F1F7 0x29554 +0x8EA5F1F8 0x2954C +0x8EA5F1F9 0x29555 +0x8EA5F1FA 0x29556 +0x8EA5F1FB 0x2963B +0x8EA5F1FC 0x2963D +0x8EA5F1FD 0x297A4 +0x8EA5F1FE 0x297A8 +0x8EA5F2A1 0x297C3 +0x8EA5F2A2 0x297BF +0x8EA5F2A3 0x297C8 +0x8EA5F2A4 0x297C2 +0x8EA5F2A5 0x297CA +0x8EA5F2A6 0x297CC +0x8EA5F2A7 0x297C9 +0x8EA5F2A8 0x297BE +0x8EA5F2A9 0x297CD +0x8EA5F2AA 0x297C7 +0x8EA5F2AB 0x297C5 +0x8EA5F2AC 0x2985D +0x8EA5F2AD 0x4BB0 +0x8EA5F2AE 0x2996C +0x8EA5F2AF 0x2996B +0x8EA5F2B0 0x29970 +0x8EA5F2B1 0x2996D +0x8EA5F2B2 0x2996F +0x8EA5F2B3 0x29989 +0x8EA5F2B4 0x29984 +0x8EA5F2B5 0x29A8D +0x8EA5F2B6 0x29A8A +0x8EA5F2B7 0x29A8E +0x8EA5F2B8 0x29A91 +0x8EA5F2B9 0x29BB5 +0x8EA5F2BA 0x29BB1 +0x8EA5F2BB 0x29BAF +0x8EA5F2BC 0x29BB9 +0x8EA5F2BD 0x29BB7 +0x8EA5F2BE 0x29BB0 +0x8EA5F2BF 0x4C0C +0x8EA5F2C0 0x29C17 +0x8EA5F2C1 0x4C18 +0x8EA5F2C2 0x29C4F +0x8EA5F2C3 0x29D19 +0x8EA5F2C4 0x29D10 +0x8EA5F2C5 0x29D18 +0x8EA5F2C6 0x29D11 +0x8EA5F2C7 0x29D1C +0x8EA5F2C8 0x29D12 +0x8EA5F2C9 0x29E76 +0x8EA5F2CA 0x29E71 +0x8EA5F2CB 0x9C20 +0x8EA5F2CC 0x29E7A +0x8EA5F2CD 0x29E7F +0x8EA5F2CE 0x9C22 +0x8EA5F2CF 0x29E73 +0x8EA5F2D0 0x29EAB +0x8EA5F2D1 0x9C1E +0x8EA5F2D2 0x29E77 +0x8EA5F2D3 0x29E74 +0x8EA5F2D4 0x29E7E +0x8EA5F2D5 0x29E9B +0x8EA5F2D6 0x29E84 +0x8EA5F2D7 0x29E7C +0x8EA5F2D8 0x2A129 +0x8EA5F2D9 0x2A12B +0x8EA5F2DA 0x2A10E +0x8EA5F2DB 0x2A100 +0x8EA5F2DC 0x2A10B +0x8EA5F2DD 0x2A0FE +0x8EA5F2DE 0x2A0FA +0x8EA5F2DF 0x2A117 +0x8EA5F2E0 0x2A0FF +0x8EA5F2E1 0x2A10C +0x8EA5F2E2 0x2A10F +0x8EA5F2E3 0x4CF5 +0x8EA5F2E4 0x2A102 +0x8EA5F2E5 0x2A101 +0x8EA5F2E6 0x2A0FC +0x8EA5F2E7 0x2A149 +0x8EA5F2E8 0x2A106 +0x8EA5F2E9 0x2A112 +0x8EA5F2EA 0x2A113 +0x8EA5F2EB 0x2A278 +0x8EA5F2EC 0x2A35B +0x8EA5F2ED 0x2A362 +0x8EA5F2EE 0x2A35F +0x8EA5F2EF 0x2A35D +0x8EA5F2F0 0x2A3AB +0x8EA5F2F1 0x2A3D5 +0x8EA5F2F2 0x2A3D4 +0x8EA5F2F3 0x2A3D3 +0x8EA5F2F4 0x2A407 +0x8EA5F2F5 0x2A46C +0x8EA5F2F6 0x2A470 +0x8EA5F2F7 0x2A46E +0x8EA5F2F8 0x2A468 +0x8EA5F2F9 0x2A46D +0x8EA5F2FA 0x2A477 +0x8EA5F2FB 0x2A46A +0x8EA5F2FC 0x2A4CE +0x8EA5F2FD 0x2A4EC +0x8EA5F2FE 0x2A569 +0x8EA5F3A1 0x2A568 +0x8EA5F3A2 0x2A5A6 +0x8EA5F3A3 0x2A5A9 +0x8EA5F3A4 0x2A5AA +0x8EA5F3A5 0x2A600 +0x8EA5F3A6 0x2A60D +0x8EA5F3A7 0x2A5F8 +0x8EA5F3A8 0x2A5FC +0x8EA5F3A9 0x2A60A +0x8EA5F3AA 0x2A5F7 +0x8EA5F3AB 0x2A601 +0x8EA5F3AC 0x2A6B6 +0x8EA5F3AD 0x2A6BB +0x8EA5F3AE 0x2A6B7 +0x8EA5F3AF 0x2A6B9 +0x8EA5F3B0 0x2A6CA +0x8EA5F3B1 0x20469 +0x8EA5F3B2 0x20625 +0x8EA5F3B3 0x21159 +0x8EA5F3B4 0x21507 +0x8EA5F3B5 0x21509 +0x8EA5F3B6 0x21922 +0x8EA5F3B7 0x21B07 +0x8EA5F3B8 0x21B04 +0x8EA5F3B9 0x2330F +0x8EA5F3BA 0x21CF8 +0x8EA5F3BB 0x21FC7 +0x8EA5F3BC 0x21FD1 +0x8EA5F3BD 0x2217E +0x8EA5F3BE 0x22308 +0x8EA5F3BF 0x2244A +0x8EA5F3C0 0x2F898 +0x8EA5F3C1 0x224B9 +0x8EA5F3C2 0x22E88 +0x8EA5F3C3 0x22E91 +0x8EA5F3C4 0x22E84 +0x8EA5F3C5 0x22E73 +0x8EA5F3C6 0x22E89 +0x8EA5F3C7 0x22E85 +0x8EA5F3C8 0x23033 +0x8EA5F3C9 0x23313 +0x8EA5F3CA 0x2381D +0x8EA5F3CB 0x2381F +0x8EA5F3CC 0x2381C +0x8EA5F3CD 0x23820 +0x8EA5F3CE 0x2381A +0x8EA5F3CF 0x2381B +0x8EA5F3D0 0x23939 +0x8EA5F3D1 0x239AF +0x8EA5F3D2 0x23AE5 +0x8EA5F3D3 0x23C3C +0x8EA5F3D4 0x24137 +0x8EA5F3D5 0x2413A +0x8EA5F3D6 0x244BB +0x8EA5F3D7 0x3E0E +0x8EA5F3D8 0x24710 +0x8EA5F3D9 0x2470D +0x8EA5F3DA 0x24BAF +0x8EA5F3DB 0x24C11 +0x8EA5F3DC 0x3FD8 +0x8EA5F3DD 0x24F0D +0x8EA5F3DE 0x24F0C +0x8EA5F3DF 0x24F0B +0x8EA5F3E0 0x250D4 +0x8EA5F3E1 0x2533D +0x8EA5F3E2 0x2533E +0x8EA5F3E3 0x2533B +0x8EA5F3E4 0x25343 +0x8EA5F3E5 0x25340 +0x8EA5F3E6 0x25346 +0x8EA5F3E7 0x25411 +0x8EA5F3E8 0x255DD +0x8EA5F3E9 0x255DF +0x8EA5F3EA 0x255EA +0x8EA5F3EB 0x2574A +0x8EA5F3EC 0x25906 +0x8EA5F3ED 0x25DC1 +0x8EA5F3EE 0x25DB9 +0x8EA5F3EF 0x25DC6 +0x8EA5F3F0 0x25DB8 +0x8EA5F3F1 0x25DBB +0x8EA5F3F2 0x25DC8 +0x8EA5F3F3 0x25DC5 +0x8EA5F3F4 0x25DBF +0x8EA5F3F5 0x25DC7 +0x8EA5F3F6 0x25DC4 +0x8EA5F3F7 0x25F65 +0x8EA5F3F8 0x25F67 +0x8EA5F3F9 0x261D7 +0x8EA5F3FA 0x261DB +0x8EA5F3FB 0x261D4 +0x8EA5F3FC 0x261D6 +0x8EA5F3FD 0x263E8 +0x8EA5F3FE 0x2660A +0x8EA5F4A1 0x26ABD +0x8EA5F4A2 0x26ABE +0x8EA5F4A3 0x2711A +0x8EA5F4A4 0x2710D +0x8EA5F4A5 0x2710F +0x8EA5F4A6 0x2711B +0x8EA5F4A7 0x27110 +0x8EA5F4A8 0x27111 +0x8EA5F4A9 0x27113 +0x8EA5F4AA 0x27218 +0x8EA5F4AB 0x27520 +0x8EA5F4AC 0x2751F +0x8EA5F4AD 0x27523 +0x8EA5F4AE 0x2751D +0x8EA5F4AF 0x27537 +0x8EA5F4B0 0x27525 +0x8EA5F4B1 0x27524 +0x8EA5F4B2 0x2752A +0x8EA5F4B3 0x27527 +0x8EA5F4B4 0x27533 +0x8EA5F4B5 0x27528 +0x8EA5F4B6 0x27534 +0x8EA5F4B7 0x277BA +0x8EA5F4B8 0x8970 +0x8EA5F4B9 0x2789D +0x8EA5F4BA 0x2794C +0x8EA5F4BB 0x27B5C +0x8EA5F4BC 0x27B6A +0x8EA5F4BD 0x27B5D +0x8EA5F4BE 0x27B65 +0x8EA5F4BF 0x27B63 +0x8EA5F4C0 0x27B5E +0x8EA5F4C1 0x27C19 +0x8EA5F4C2 0x27C97 +0x8EA5F4C3 0x27E3F +0x8EA5F4C4 0x27E33 +0x8EA5F4C5 0x27E32 +0x8EA5F4C6 0x27FA1 +0x8EA5F4C7 0x27FA5 +0x8EA5F4C8 0x27FA4 +0x8EA5F4C9 0x27FA2 +0x8EA5F4CA 0x281C1 +0x8EA5F4CB 0x482C +0x8EA5F4CC 0x281C7 +0x8EA5F4CD 0x281C4 +0x8EA5F4CE 0x281C6 +0x8EA5F4CF 0x281C5 +0x8EA5F4D0 0x281D4 +0x8EA5F4D1 0x281CA +0x8EA5F4D2 0x28653 +0x8EA5F4D3 0x288F1 +0x8EA5F4D4 0x28921 +0x8EA5F4D5 0x496E +0x8EA5F4D6 0x28BB7 +0x8EA5F4D7 0x28B92 +0x8EA5F4D8 0x28DD4 +0x8EA5F4D9 0x28F44 +0x8EA5F4DA 0x29198 +0x8EA5F4DB 0x2919B +0x8EA5F4DC 0x29191 +0x8EA5F4DD 0x29195 +0x8EA5F4DE 0x2919A +0x8EA5F4DF 0x29192 +0x8EA5F4E0 0x29353 +0x8EA5F4E1 0x29357 +0x8EA5F4E2 0x4A86 +0x8EA5F4E3 0x2935C +0x8EA5F4E4 0x2935D +0x8EA5F4E5 0x29364 +0x8EA5F4E6 0x293EA +0x8EA5F4E7 0x293ED +0x8EA5F4E8 0x29442 +0x8EA5F4E9 0x29443 +0x8EA5F4EA 0x29564 +0x8EA5F4EB 0x29561 +0x8EA5F4EC 0x29560 +0x8EA5F4ED 0x2967D +0x8EA5F4EE 0x297D4 +0x8EA5F4EF 0x297D5 +0x8EA5F4F0 0x297D9 +0x8EA5F4F1 0x29987 +0x8EA5F4F2 0x29999 +0x8EA5F4F3 0x2998C +0x8EA5F4F4 0x2998A +0x8EA5F4F5 0x2998F +0x8EA5F4F6 0x4BB3 +0x8EA5F4F7 0x2998B +0x8EA5F4F8 0x29982 +0x8EA5F4F9 0x2999B +0x8EA5F4FA 0x4BEB +0x8EA5F4FB 0x29BC8 +0x8EA5F4FC 0x29BC4 +0x8EA5F4FD 0x29BCC +0x8EA5F4FE 0x29BC7 +0x8EA5F5A1 0x29BC3 +0x8EA5F5A2 0x29BC6 +0x8EA5F5A3 0x29BCB +0x8EA5F5A4 0x29BCA +0x8EA5F5A5 0x29BC9 +0x8EA5F5A6 0x29BCD +0x8EA5F5A7 0x29C53 +0x8EA5F5A8 0x29D21 +0x8EA5F5A9 0x29D29 +0x8EA5F5AA 0x29D1D +0x8EA5F5AB 0x29D24 +0x8EA5F5AC 0x29D28 +0x8EA5F5AD 0x9C43 +0x8EA5F5AE 0x29EB1 +0x8EA5F5AF 0x29EB2 +0x8EA5F5B0 0x29EB5 +0x8EA5F5B1 0x29ED6 +0x8EA5F5B2 0x29EAF +0x8EA5F5B3 0x29ECA +0x8EA5F5B4 0x29EB8 +0x8EA5F5B5 0x2FA12 +0x8EA5F5B6 0x2FA11 +0x8EA5F5B7 0x2A145 +0x8EA5F5B8 0x2A147 +0x8EA5F5B9 0x2A134 +0x8EA5F5BA 0x2A16E +0x8EA5F5BB 0x2A142 +0x8EA5F5BC 0x2A131 +0x8EA5F5BD 0x2A12E +0x8EA5F5BE 0x2A156 +0x8EA5F5BF 0x2A138 +0x8EA5F5C0 0x2A137 +0x8EA5F5C1 0x2A14B +0x8EA5F5C2 0x2A12D +0x8EA5F5C3 0x2A133 +0x8EA5F5C4 0x2A136 +0x8EA5F5C5 0x9DE0 +0x8EA5F5C6 0x2A148 +0x8EA5F5C7 0x2A2DC +0x8EA5F5C8 0x4D42 +0x8EA5F5C9 0x2A366 +0x8EA5F5CA 0x2A36D +0x8EA5F5CB 0x2A363 +0x8EA5F5CC 0x2A364 +0x8EA5F5CD 0x4D41 +0x8EA5F5CE 0x2A367 +0x8EA5F5CF 0x2A3D9 +0x8EA5F5D0 0x2A40B +0x8EA5F5D1 0x2A47E +0x8EA5F5D2 0x2A48B +0x8EA5F5D3 0x2A526 +0x8EA5F5D4 0x2A52C +0x8EA5F5D5 0x2A529 +0x8EA5F5D6 0x2A56F +0x8EA5F5D7 0x2A56B +0x8EA5F5D8 0x2A56D +0x8EA5F5D9 0x2A56E +0x8EA5F5DA 0x2A61C +0x8EA5F5DB 0x2A611 +0x8EA5F5DC 0x2A610 +0x8EA5F5DD 0x2A624 +0x8EA5F5DE 0x2A612 +0x8EA5F5DF 0x2A615 +0x8EA5F5E0 0x2A617 +0x8EA5F5E1 0x4DAC +0x8EA5F5E2 0x2046F +0x8EA5F5E3 0x205AB +0x8EA5F5E4 0x2082E +0x8EA5F5E5 0x208C9 +0x8EA5F5E6 0x20B96 +0x8EA5F5E7 0x21185 +0x8EA5F5E8 0x216A0 +0x8EA5F5E9 0x2192B +0x8EA5F5EA 0x2230D +0x8EA5F5EB 0x23036 +0x8EA5F5ED 0x3B2F +0x8EA5F5EE 0x3B2E +0x8EA5F5EF 0x233B1 +0x8EA5F5F0 0x2384A +0x8EA5F5F1 0x23837 +0x8EA5F5F2 0x2383C +0x8EA5F5F3 0x23838 +0x8EA5F5F4 0x2383A +0x8EA5F5F5 0x2383E +0x8EA5F5F6 0x23849 +0x8EA5F5F7 0x3C4D +0x8EA5F5F8 0x3C7B +0x8EA5F5F9 0x23A80 +0x8EA5F5FA 0x23A7F +0x8EA5F5FB 0x23AE3 +0x8EA5F5FC 0x23C3F +0x8EA5F5FD 0x24152 +0x8EA5F5FE 0x2414E +0x8EA5F6A1 0x2414A +0x8EA5F6A2 0x2414B +0x8EA5F6A3 0x244D5 +0x8EA5F6A4 0x24AD8 +0x8EA5F6A5 0x24B20 +0x8EA5F6A6 0x24BB3 +0x8EA5F6A7 0x24BB1 +0x8EA5F6A8 0x24BB0 +0x8EA5F6A9 0x24F17 +0x8EA5F6AA 0x250D9 +0x8EA5F6AB 0x25349 +0x8EA5F6AC 0x25413 +0x8EA5F6AD 0x255ED +0x8EA5F6AE 0x255EB +0x8EA5F6AF 0x255EE +0x8EA5F6B0 0x2590A +0x8EA5F6B1 0x2590B +0x8EA5F6B2 0x25A4A +0x8EA5F6B3 0x25DD5 +0x8EA5F6B4 0x25DD7 +0x8EA5F6B5 0x25DDE +0x8EA5F6B6 0x25DDC +0x8EA5F6B7 0x25DEE +0x8EA5F6B8 0x25F70 +0x8EA5F6B9 0x42B2 +0x8EA5F6BA 0x261D9 +0x8EA5F6BB 0x263D7 +0x8EA5F6BC 0x268CB +0x8EA5F6BD 0x268C7 +0x8EA5F6BE 0x269FC +0x8EA5F6BF 0x2713B +0x8EA5F6C0 0x27139 +0x8EA5F6C1 0x2714B +0x8EA5F6C2 0x27143 +0x8EA5F6C3 0x27140 +0x8EA5F6C4 0x27146 +0x8EA5F6C5 0x2754D +0x8EA5F6C6 0x27543 +0x8EA5F6C7 0x27547 +0x8EA5F6C8 0x2754B +0x8EA5F6C9 0x27555 +0x8EA5F6CA 0x27552 +0x8EA5F6CB 0x27B5F +0x8EA5F6CC 0x4722 +0x8EA5F6CD 0x27B7C +0x8EA5F6CE 0x27B7B +0x8EA5F6CF 0x27FA8 +0x8EA5F6D0 0x27FA9 +0x8EA5F6D1 0x281DE +0x8EA5F6D2 0x281D7 +0x8EA5F6D3 0x281DD +0x8EA5F6D4 0x281D6 +0x8EA5F6D5 0x281D8 +0x8EA5F6D6 0x2829B +0x8EA5F6D7 0x283E0 +0x8EA5F6D8 0x283E8 +0x8EA5F6D9 0x283E6 +0x8EA5F6DA 0x288F8 +0x8EA5F6DB 0x288FB +0x8EA5F6DC 0x28BBB +0x8EA5F6DD 0x9459 +0x8EA5F6DE 0x28BB8 +0x8EA5F6DF 0x4970 +0x8EA5F6E0 0x28CC1 +0x8EA5F6E1 0x28CC0 +0x8EA5F6E2 0x291A4 +0x8EA5F6E3 0x291AB +0x8EA5F6E4 0x2924D +0x8EA5F6E5 0x29365 +0x8EA5F6E6 0x29367 +0x8EA5F6E7 0x2936A +0x8EA5F6E8 0x29366 +0x8EA5F6E9 0x29369 +0x8EA5F6EA 0x29573 +0x8EA5F6EB 0x29580 +0x8EA5F6EC 0x2956F +0x8EA5F6ED 0x29571 +0x8EA5F6EE 0x297E4 +0x8EA5F6EF 0x297E6 +0x8EA5F6F0 0x297E7 +0x8EA5F6F1 0x299A0 +0x8EA5F6F2 0x299A4 +0x8EA5F6F3 0x29AA2 +0x8EA5F6F4 0x29AA7 +0x8EA5F6F5 0x29AA4 +0x8EA5F6F6 0x29BDE +0x8EA5F6F7 0x29BDB +0x8EA5F6F8 0x29C58 +0x8EA5F6F9 0x29C5C +0x8EA5F6FA 0x29D2F +0x8EA5F6FB 0x29D2E +0x8EA5F6FC 0x29EDD +0x8EA5F6FD 0x29EE4 +0x8EA5F6FE 0x29ED8 +0x8EA5F7A1 0x29EE7 +0x8EA5F7A2 0x29EDA +0x8EA5F7A3 0x29E75 +0x8EA5F7A4 0x4C95 +0x8EA5F7A5 0x2A179 +0x8EA5F7A6 0x2A180 +0x8EA5F7A7 0x2A17F +0x8EA5F7A8 0x2A17C +0x8EA5F7A9 0x2A175 +0x8EA5F7AA 0x2A17B +0x8EA5F7AB 0x2A182 +0x8EA5F7AC 0x4D00 +0x8EA5F7AD 0x2A189 +0x8EA5F7AE 0x2A174 +0x8EA5F7AF 0x2A17D +0x8EA5F7B0 0x2A17A +0x8EA5F7B1 0x2A186 +0x8EA5F7B2 0x2A1A8 +0x8EA5F7B3 0x2A172 +0x8EA5F7B4 0x4D02 +0x8EA5F7B5 0x2A18B +0x8EA5F7B6 0x2A191 +0x8EA5F7B7 0x2A1B3 +0x8EA5F7B8 0x2A181 +0x8EA5F7B9 0x2A282 +0x8EA5F7BA 0x2A2E1 +0x8EA5F7BB 0x2A2E3 +0x8EA5F7BC 0x2A2E2 +0x8EA5F7BD 0x2A376 +0x8EA5F7BE 0x2A374 +0x8EA5F7BF 0x2A372 +0x8EA5F7C0 0x2A375 +0x8EA5F7C1 0x2A40E +0x8EA5F7C2 0x2A40D +0x8EA5F7C3 0x2A494 +0x8EA5F7C4 0x2A492 +0x8EA5F7C5 0x2A493 +0x8EA5F7C6 0x2A491 +0x8EA5F7C7 0x2A48F +0x8EA5F7C8 0x2A495 +0x8EA5F7C9 0x2A4D0 +0x8EA5F7CA 0x2A4F7 +0x8EA5F7CB 0x2A576 +0x8EA5F7CC 0x2A5AF +0x8EA5F7CD 0x4D9F +0x8EA5F7CE 0x2A626 +0x8EA5F7CF 0x2A625 +0x8EA5F7D0 0x2A62D +0x8EA5F7D1 0x2A6A0 +0x8EA5F7D2 0x2A6C3 +0x8EA5F7D3 0x204D7 +0x8EA5F7D4 0x20ACC +0x8EA5F7D5 0x21179 +0x8EA5F7D6 0x2117A +0x8EA5F7D7 0x21515 +0x8EA5F7D8 0x21FDB +0x8EA5F7D9 0x22185 +0x8EA5F7DA 0x22970 +0x8EA5F7DB 0x2297B +0x8EA5F7DC 0x22EA5 +0x8EA5F7DD 0x22E9F +0x8EA5F7DE 0x23317 +0x8EA5F7DF 0x233B2 +0x8EA5F7E0 0x23839 +0x8EA5F7E1 0x23840 +0x8EA5F7E2 0x2384E +0x8EA5F7E3 0x2393E +0x8EA5F7E4 0x23AE8 +0x8EA5F7E5 0x23AE7 +0x8EA5F7E6 0x24166 +0x8EA5F7E7 0x24161 +0x8EA5F7E8 0x244DA +0x8EA5F7E9 0x24714 +0x8EA5F7EA 0x248DF +0x8EA5F7EB 0x24F18 +0x8EA5F7EC 0x25039 +0x8EA5F7ED 0x2503A +0x8EA5F7EE 0x25730 +0x8EA5F7EF 0x25732 +0x8EA5F7F0 0x2590E +0x8EA5F7F1 0x25A4C +0x8EA5F7F2 0x25DE8 +0x8EA5F7F3 0x25DF1 +0x8EA5F7F4 0x25DEB +0x8EA5F7F5 0x25DEC +0x8EA5F7F6 0x25F74 +0x8EA5F7F7 0x25F73 +0x8EA5F7F8 0x261F1 +0x8EA5F7F9 0x26342 +0x8EA5F7FA 0x2633E +0x8EA5F7FB 0x26341 +0x8EA5F7FC 0x2652C +0x8EA5F7FD 0x268D2 +0x8EA5F7FE 0x269BB +0x8EA5F8A1 0x27158 +0x8EA5F8A2 0x27157 +0x8EA5F8A3 0x27156 +0x8EA5F8A4 0x2715A +0x8EA5F8A5 0x457D +0x8EA5F8A6 0x27561 +0x8EA5F8A7 0x27568 +0x8EA5F8A8 0x27565 +0x8EA5F8A9 0x2755F +0x8EA5F8AA 0x27564 +0x8EA5F8AB 0x2755E +0x8EA5F8AC 0x2755B +0x8EA5F8AD 0x27567 +0x8EA5F8AE 0x277C3 +0x8EA5F8AF 0x278A2 +0x8EA5F8B0 0x27953 +0x8EA5F8B1 0x27B7D +0x8EA5F8B2 0x27C20 +0x8EA5F8B3 0x27FAE +0x8EA5F8B4 0x27FAF +0x8EA5F8B5 0x27FB0 +0x8EA5F8B6 0x281E7 +0x8EA5F8B7 0x281E6 +0x8EA5F8B8 0x281E9 +0x8EA5F8B9 0x283F1 +0x8EA5F8BA 0x283EB +0x8EA5F8BB 0x283EA +0x8EA5F8BC 0x283E9 +0x8EA5F8BD 0x28663 +0x8EA5F8BE 0x28902 +0x8EA5F8BF 0x288FE +0x8EA5F8C0 0x28BDE +0x8EA5F8C1 0x28CC2 +0x8EA5F8C2 0x28DE6 +0x8EA5F8C3 0x28F5D +0x8EA5F8C4 0x291AD +0x8EA5F8C5 0x29375 +0x8EA5F8C6 0x29372 +0x8EA5F8C7 0x29377 +0x8EA5F8C8 0x4AF6 +0x8EA5F8C9 0x29651 +0x8EA5F8CA 0x297E8 +0x8EA5F8CB 0x297ED +0x8EA5F8CC 0x297EE +0x8EA5F8CD 0x299B9 +0x8EA5F8CE 0x299A1 +0x8EA5F8CF 0x299B6 +0x8EA5F8D0 0x29AAE +0x8EA5F8D1 0x29BE8 +0x8EA5F8D2 0x4C12 +0x8EA5F8D3 0x29C1E +0x8EA5F8D4 0x29D31 +0x8EA5F8D5 0x29D32 +0x8EA5F8D6 0x4C91 +0x8EA5F8D7 0x29F0E +0x8EA5F8D8 0x29F12 +0x8EA5F8D9 0x29F09 +0x8EA5F8DA 0x29F05 +0x8EA5F8DB 0x4C90 +0x8EA5F8DC 0x29F03 +0x8EA5F8DD 0x29F1F +0x8EA5F8DE 0x29F0D +0x8EA5F8DF 0x29F0C +0x8EA5F8E0 0x29F04 +0x8EA5F8E1 0x29F0A +0x8EA5F8E2 0x2A1C2 +0x8EA5F8E3 0x2A1BF +0x8EA5F8E4 0x2A1C9 +0x8EA5F8E5 0x2A1B2 +0x8EA5F8E6 0x2A1C1 +0x8EA5F8E7 0x2A1AF +0x8EA5F8E8 0x2A1B4 +0x8EA5F8E9 0x2A1B0 +0x8EA5F8EA 0x2A1B6 +0x8EA5F8EB 0x2A1B7 +0x8EA5F8EC 0x2A1BB +0x8EA5F8ED 0x2A1B1 +0x8EA5F8EE 0x2A2F0 +0x8EA5F8EF 0x2A378 +0x8EA5F8F0 0x2A37A +0x8EA5F8F1 0x2A379 +0x8EA5F8F2 0x2A3E4 +0x8EA5F8F3 0x2A3E6 +0x8EA5F8F4 0x2A49F +0x8EA5F8F5 0x2A49D +0x8EA5F8F6 0x2A498 +0x8EA5F8F7 0x2A499 +0x8EA5F8F8 0x2A4F9 +0x8EA5F8F9 0x2A530 +0x8EA5F8FA 0x2A582 +0x8EA5F8FB 0x2A581 +0x8EA5F8FC 0x2A5B3 +0x8EA5F8FD 0x2A57F +0x8EA5F8FE 0x2A63A +0x8EA5F9A1 0x2A63E +0x8EA5F9A2 0x2A648 +0x8EA5F9A3 0x21186 +0x8EA5F9A4 0x21936 +0x8EA5F9A5 0x21B13 +0x8EA5F9A6 0x21C22 +0x8EA5F9A7 0x21FDD +0x8EA5F9A8 0x225A7 +0x8EA5F9A9 0x2297D +0x8EA5F9AA 0x3A79 +0x8EA5F9AB 0x2331C +0x8EA5F9AC 0x23865 +0x8EA5F9AD 0x23860 +0x8EA5F9AE 0x23867 +0x8EA5F9AF 0x3C4E +0x8EA5F9B0 0x23B1A +0x8EA5F9B1 0x24AE3 +0x8EA5F9B2 0x25734 +0x8EA5F9B3 0x25918 +0x8EA5F9B4 0x25A52 +0x8EA5F9B5 0x25DFC +0x8EA5F9B6 0x25F79 +0x8EA5F9B7 0x25F78 +0x8EA5F9B8 0x25F76 +0x8EA5F9B9 0x261FA +0x8EA5F9BA 0x261F8 +0x8EA5F9BB 0x2652D +0x8EA5F9BC 0x268D6 +0x8EA5F9BD 0x269BD +0x8EA5F9BE 0x269BF +0x8EA5F9BF 0x269BE +0x8EA5F9C0 0x27144 +0x8EA5F9C1 0x27170 +0x8EA5F9C2 0x27162 +0x8EA5F9C3 0x2716E +0x8EA5F9C4 0x2756E +0x8EA5F9C5 0x2757C +0x8EA5F9C6 0x27574 +0x8EA5F9C7 0x27578 +0x8EA5F9C8 0x27570 +0x8EA5F9C9 0x27579 +0x8EA5F9CA 0x27571 +0x8EA5F9CB 0x277CC +0x8EA5F9CC 0x278A7 +0x8EA5F9CD 0x278A6 +0x8EA5F9CE 0x27B93 +0x8EA5F9CF 0x27C21 +0x8EA5F9D0 0x27C9C +0x8EA5F9D1 0x2829D +0x8EA5F9D2 0x283F4 +0x8EA5F9D3 0x283F3 +0x8EA5F9D4 0x28DF0 +0x8EA5F9D5 0x291B8 +0x8EA5F9D6 0x291B6 +0x8EA5F9D7 0x291BD +0x8EA5F9D8 0x29373 +0x8EA5F9D9 0x29382 +0x8EA5F9DA 0x29587 +0x8EA5F9DB 0x29656 +0x8EA5F9DC 0x29659 +0x8EA5F9DD 0x297F6 +0x8EA5F9DE 0x299C9 +0x8EA5F9DF 0x299C5 +0x8EA5F9E0 0x299C7 +0x8EA5F9E1 0x299CA +0x8EA5F9E2 0x299C2 +0x8EA5F9E3 0x299C4 +0x8EA5F9E4 0x29BF2 +0x8EA5F9E5 0x29BF0 +0x8EA5F9E6 0x29D3B +0x8EA5F9E7 0x29D3A +0x8EA5F9E8 0x29F26 +0x8EA5F9E9 0x29F28 +0x8EA5F9EA 0x29F34 +0x8EA5F9EB 0x29F2D +0x8EA5F9EC 0x2A1D7 +0x8EA5F9ED 0x2A1D2 +0x8EA5F9EE 0x2A1D6 +0x8EA5F9EF 0x2A1DC +0x8EA5F9F0 0x2A1D3 +0x8EA5F9F1 0x2A1D1 +0x8EA5F9F2 0x2A286 +0x8EA5F9F3 0x4D1E +0x8EA5F9F4 0x2A2EF +0x8EA5F9F5 0x2A2EE +0x8EA5F9F6 0x2A3E8 +0x8EA5F9F7 0x2A4AC +0x8EA5F9F8 0x2A4A9 +0x8EA5F9F9 0x2A4AA +0x8EA5F9FA 0x2A4AB +0x8EA5F9FB 0x2A4FB +0x8EA5F9FC 0x2A533 +0x8EA5F9FD 0x2A588 +0x8EA5F9FE 0x2A5B6 +0x8EA5FAA1 0x2A5B7 +0x8EA5FAA2 0x2A5D0 +0x8EA5FAA3 0x2A5CF +0x8EA5FAA4 0x2A64F +0x8EA5FAA5 0x2A659 +0x8EA5FAA6 0x2A64C +0x8EA5FAA7 0x21B18 +0x8EA5FAA8 0x21FE0 +0x8EA5FAA9 0x23869 +0x8EA5FAAA 0x24173 +0x8EA5FAAB 0x24172 +0x8EA5FAAC 0x24AE8 +0x8EA5FAAD 0x255FB +0x8EA5FAAE 0x2591C +0x8EA5FAAF 0x25E09 +0x8EA5FAB0 0x25E0A +0x8EA5FAB1 0x25E08 +0x8EA5FAB2 0x25F7D +0x8EA5FAB3 0x25F7F +0x8EA5FAB4 0x26267 +0x8EA5FAB5 0x2717A +0x8EA5FAB6 0x2717B +0x8EA5FAB7 0x277D1 +0x8EA5FAB8 0x2F9CB +0x8EA5FAB9 0x27B9D +0x8EA5FABA 0x27C9D +0x8EA5FABB 0x281FC +0x8EA5FABC 0x281FB +0x8EA5FABD 0x281FD +0x8EA5FABE 0x283F5 +0x8EA5FABF 0x283F6 +0x8EA5FAC0 0x28C0F +0x8EA5FAC1 0x28C1D +0x8EA5FAC2 0x291C7 +0x8EA5FAC3 0x291C1 +0x8EA5FAC4 0x291BF +0x8EA5FAC5 0x29254 +0x8EA5FAC6 0x2937F +0x8EA5FAC7 0x293F5 +0x8EA5FAC8 0x2958A +0x8EA5FAC9 0x2958C +0x8EA5FACA 0x2965C +0x8EA5FACB 0x29865 +0x8EA5FACC 0x299CF +0x8EA5FACD 0x299D0 +0x8EA5FACE 0x29AB8 +0x8EA5FACF 0x29BFA +0x8EA5FAD0 0x29C66 +0x8EA5FAD1 0x29F40 +0x8EA5FAD2 0x29F41 +0x8EA5FAD3 0x9C72 +0x8EA5FAD4 0x2A1F7 +0x8EA5FAD5 0x2A1F3 +0x8EA5FAD6 0x2A1EF +0x8EA5FAD7 0x2A1F4 +0x8EA5FAD8 0x2A1ED +0x8EA5FAD9 0x2A1F2 +0x8EA5FADA 0x2A1F1 +0x8EA5FADB 0x2A1F9 +0x8EA5FADC 0x2A4B4 +0x8EA5FADD 0x2A4FC +0x8EA5FADE 0x2A5BC +0x8EA5FADF 0x2A65E +0x8EA5FAE0 0x2A65B +0x8EA5FAE1 0x2A65F +0x8EA5FAE2 0x2A65D +0x8EA5FAE3 0x2A6CF +0x8EA5FAE4 0x2A6CE +0x8EA5FAE5 0x2193A +0x8EA5FAE6 0x21FE1 +0x8EA5FAE7 0x22315 +0x8EA5FAE8 0x22314 +0x8EA5FAE9 0x24178 +0x8EA5FAEA 0x24179 +0x8EA5FAEB 0x244E6 +0x8EA5FAEC 0x24BB8 +0x8EA5FAED 0x24F22 +0x8EA5FAEE 0x255FE +0x8EA5FAEF 0x268DB +0x8EA5FAF0 0x26A06 +0x8EA5FAF1 0x26AC8 +0x8EA5FAF2 0x27189 +0x8EA5FAF3 0x27586 +0x8EA5FAF4 0x278AD +0x8EA5FAF5 0x27B99 +0x8EA5FAF6 0x27BD8 +0x8EA5FAF7 0x27C23 +0x8EA5FAF8 0x27D23 +0x8EA5FAF9 0x27FB5 +0x8EA5FAFA 0x283F9 +0x8EA5FAFB 0x28907 +0x8EA5FAFC 0x28C1E +0x8EA5FAFD 0x28DFB +0x8EA5FAFE 0x28F72 +0x8EA5FBA1 0x28F73 +0x8EA5FBA2 0x29387 +0x8EA5FBA3 0x29449 +0x8EA5FBA4 0x2965D +0x8EA5FBA5 0x297F8 +0x8EA5FBA6 0x29C03 +0x8EA5FBA7 0x29F4E +0x8EA5FBA8 0x29F4D +0x8EA5FBA9 0x29F50 +0x8EA5FBAA 0x29F55 +0x8EA5FBAB 0x2A209 +0x8EA5FBAC 0x2A207 +0x8EA5FBAD 0x2A20C +0x8EA5FBAE 0x2A203 +0x8EA5FBAF 0x2A206 +0x8EA5FBB0 0x2A20B +0x8EA5FBB1 0x2A20A +0x8EA5FBB2 0x2A289 +0x8EA5FBB3 0x2A4BB +0x8EA5FBB4 0x2A4FF +0x8EA5FBB5 0x2A536 +0x8EA5FBB6 0x2A58B +0x8EA5FBB7 0x2A666 +0x8EA5FBB8 0x2A669 +0x8EA5FBB9 0x2A667 +0x8EA5FBBA 0x2A6C2 +0x8EA5FBBB 0x2A6D2 +0x8EA5FBBC 0x21FE2 +0x8EA5FBBD 0x3828 +0x8EA5FBBE 0x22988 +0x8EA5FBBF 0x2335B +0x8EA5FBC0 0x23876 +0x8EA5FBC1 0x2417D +0x8EA5FBC2 0x245A6 +0x8EA5FBC3 0x2535A +0x8EA5FBC4 0x25E17 +0x8EA5FBC5 0x268DC +0x8EA5FBC6 0x2718F +0x8EA5FBC7 0x27594 +0x8EA5FBC8 0x27595 +0x8EA5FBC9 0x27FB6 +0x8EA5FBCA 0x28204 +0x8EA5FBCB 0x287EE +0x8EA5FBCC 0x2938A +0x8EA5FBCD 0x293F9 +0x8EA5FBCE 0x29C07 +0x8EA5FBCF 0x29C1F +0x8EA5FBD0 0x29C2A +0x8EA5FBD1 0x29D45 +0x8EA5FBD2 0x29F5C +0x8EA5FBD3 0x29F5B +0x8EA5FBD4 0x29F61 +0x8EA5FBD5 0x29F5D +0x8EA5FBD6 0x2A218 +0x8EA5FBD7 0x2A21F +0x8EA5FBD8 0x2A383 +0x8EA5FBD9 0x2A416 +0x8EA5FBDA 0x2A414 +0x8EA5FBDB 0x2A4BF +0x8EA5FBDC 0x2A4C0 +0x8EA5FBDD 0x2A673 +0x8EA5FBDE 0x2A6C0 +0x8EA5FBDF 0x21517 +0x8EA5FBE0 0x22989 +0x8EA5FBE1 0x2591E +0x8EA5FBE2 0x2591F +0x8EA5FBE3 0x25A54 +0x8EA5FBE4 0x25E18 +0x8EA5FBE5 0x26205 +0x8EA5FBE6 0x27195 +0x8EA5FBE7 0x27598 +0x8EA5FBE8 0x2759B +0x8EA5FBE9 0x27959 +0x8EA5FBEA 0x28208 +0x8EA5FBEB 0x28401 +0x8EA5FBEC 0x291CE +0x8EA5FBED 0x293FA +0x8EA5FBEE 0x29ABE +0x8EA5FBEF 0x29D47 +0x8EA5FBF0 0x29F6A +0x8EA5FBF1 0x29F69 +0x8EA5FBF2 0x29F68 +0x8EA5FBF3 0x29F67 +0x8EA5FBF4 0x2A225 +0x8EA5FBF5 0x2A228 +0x8EA5FBF6 0x2A4C4 +0x8EA5FBF7 0x2A537 +0x8EA5FBF8 0x2A58D +0x8EA5FBF9 0x2A58C +0x8EA5FBFA 0x4D91 +0x8EA5FBFB 0x2F920 +0x8EA5FBFC 0x25E22 +0x8EA5FBFD 0x25F82 +0x8EA5FBFE 0x277D9 +0x8EA5FCA1 0x28C38 +0x8EA5FCA2 0x293FB +0x8EA5FCA3 0x299E1 +0x8EA5FCA4 0x29C72 +0x8EA5FCA5 0x29D48 +0x8EA5FCA6 0x29F6C +0x8EA5FCA7 0x29F70 +0x8EA5FCA8 0x2A231 +0x8EA5FCA9 0x2A230 +0x8EA5FCAA 0x2A679 +0x8EA5FCAB 0x25E23 +0x8EA5FCAC 0x268F8 +0x8EA5FCAD 0x29C74 +0x8EA5FCAE 0x29F73 +0x8EA5FCAF 0x2A234 +0x8EA5FCB0 0x2A387 +0x8EA5FCB1 0x2A3B2 +0x8EA5FCB2 0x2A5C2 +0x8EA5FCB3 0x2A67D +0x8EA5FCB4 0x21FE5 +0x8EA5FCB5 0x2938C +0x8EA5FCB6 0x29F77 +0x8EA5FCB7 0x29F75 +0x8EA5FCB8 0x2A238 +0x8EA5FCB9 0x2A23A +0x8EA5FCBA 0x2A683 +0x8EA5FCBB 0x2A681 +0x8EA5FCBC 0x24180 +0x8EA5FCBD 0x27199 +0x8EA5FCBE 0x4587 +0x8EA5FCBF 0x2944A +0x8EA5FCC0 0x29D4A +0x8EA5FCC1 0x2A23C +0x8EA5FCC2 0x2A6C8 +0x8EA5FCC3 0x25604 +0x8EA5FCC4 0x278AF +0x8EA5FCC5 0x2A689 +0x8EA5FCC6 0x2A2FA +0x8EA5FCC7 0x29661 +0x8EA5FCC8 0x2A23F +0x8EA5FCC9 0x27193 +0x8EA5FCCA 0x2A4C9 +0x8EA5FCCB 0x277DE +0x8EA5FCCC 0x29391 +0x8EA5FCCD 0x2A68E +0x8EA5FCCE 0x2A68D +0x8EA5FCCF 0x27198 +0x8EA5FCD0 0x269C5 +0x8EA5FCD1 0x2A6A5 +0x8EA6A1A1 0x2F802 +0x8EA6A1A2 0x20062 +0x8EA6A1A3 0x3405 +0x8EA6A1A4 0x20088 +0x8EA6A1A5 0x200D0 +0x8EA6A1A6 0x200CF +0x8EA6A1A7 0x2011E +0x8EA6A1A8 0x2011F +0x8EA6A1A9 0x20120 +0x8EA6A1AA 0x2090E +0x8EA6A1AB 0x2092C +0x8EA6A1AC 0x20061 +0x8EA6A1AD 0x20004 +0x8EA6A1AE 0x20005 +0x8EA6A1AF 0x20003 +0x8EA6A1B0 0x3404 +0x8EA6A1B1 0x2F801 +0x8EA6A1B2 0x2007D +0x8EA6A1B3 0x2008D +0x8EA6A1B4 0x201A3 +0x8EA6A1B5 0x201A4 +0x8EA6A1B6 0x204DB +0x8EA6A1B7 0x20500 +0x8EA6A1B8 0x2F81E +0x8EA6A1B9 0x206A3 +0x8EA6A1BA 0x20832 +0x8EA6A1BB 0x353F +0x8EA6A1BC 0x20AD4 +0x8EA6A1BD 0x20AD5 +0x8EA6A1BE 0x21C23 +0x8EA6A1BF 0x2232C +0x8EA6A1C0 0x2237A +0x8EA6A1C1 0x20503 +0x8EA6A1C2 0x20007 +0x8EA6A1C3 0x20008 +0x8EA6A1C4 0x2008F +0x8EA6A1C5 0x2009C +0x8EA6A1C6 0x200D5 +0x8EA6A1C7 0x20112 +0x8EA6A1C8 0x20113 +0x8EA6A1C9 0x20114 +0x8EA6A1CA 0x20121 +0x8EA6A1CB 0x201A8 +0x8EA6A1CC 0x201A6 +0x8EA6A1CD 0x20476 +0x8EA6A1CE 0x20501 +0x8EA6A1CF 0x2053D +0x8EA6A1D0 0x2F814 +0x8EA6A1D1 0x2053E +0x8EA6A1D2 0x20629 +0x8EA6A1D3 0x20677 +0x8EA6A1D4 0x20678 +0x8EA6A1D5 0x206A6 +0x8EA6A1D6 0x206A9 +0x8EA6A1D7 0x206AC +0x8EA6A1D8 0x20834 +0x8EA6A1D9 0x20504 +0x8EA6A1DA 0x2097B +0x8EA6A1DB 0x20A10 +0x8EA6A1DC 0x2062F +0x8EA6A1DD 0x20AD7 +0x8EA6A1DE 0x20B1C +0x8EA6A1DF 0x20B1F +0x8EA6A1E0 0x20B1A +0x8EA6A1E1 0x2F836 +0x8EA6A1E2 0x20B1E +0x8EA6A1E3 0x20B9E +0x8EA6A1E4 0x20B9A +0x8EA6A1E5 0x211A0 +0x8EA6A1E6 0x211A1 +0x8EA6A1E7 0x215D2 +0x8EA6A1E8 0x215D3 +0x8EA6A1E9 0x219B9 +0x8EA6A1EA 0x21B1D +0x8EA6A1EB 0x21B55 +0x8EA6A1EC 0x21CFF +0x8EA6A1ED 0x21FE7 +0x8EA6A1EE 0x382A +0x8EA6A1EF 0x22011 +0x8EA6A1F0 0x22013 +0x8EA6A1F1 0x22012 +0x8EA6A1F2 0x221AF +0x8EA6A1F3 0x221B1 +0x8EA6A1F4 0x2F890 +0x8EA6A1F5 0x2232D +0x8EA6A1F6 0x2237B +0x8EA6A1F7 0x2239D +0x8EA6A1F8 0x2239A +0x8EA6A1F9 0x38A7 +0x8EA6A1FA 0x2239F +0x8EA6A1FB 0x223A0 +0x8EA6A1FC 0x2239C +0x8EA6A1FD 0x224BD +0x8EA6A1FE 0x38FA +0x8EA6A2A1 0x225AA +0x8EA6A2A2 0x2306C +0x8EA6A2A3 0x23091 +0x8EA6A2A4 0x23C74 +0x8EA6A2A5 0x2456A +0x8EA6A2A6 0x2F929 +0x8EA6A2A7 0x25605 +0x8EA6A2A8 0x2626B +0x8EA6A2A9 0x2626A +0x8EA6A2AA 0x200E0 +0x8EA6A2AB 0x20012 +0x8EA6A2AC 0x3400 +0x8EA6A2AD 0x2007F +0x8EA6A2AE 0x200A0 +0x8EA6A2AF 0x20099 +0x8EA6A2B0 0x20095 +0x8EA6A2B1 0x2009E +0x8EA6A2B2 0x200DF +0x8EA6A2B3 0x200DE +0x8EA6A2B4 0x201AF +0x8EA6A2B5 0x201AD +0x8EA6A2B6 0x201B0 +0x8EA6A2B7 0x204DF +0x8EA6A2B8 0x20543 +0x8EA6A2B9 0x20541 +0x8EA6A2BA 0x20548 +0x8EA6A2BB 0x20575 +0x8EA6A2BC 0x2F81A +0x8EA6A2BD 0x20632 +0x8EA6A2BE 0x2067B +0x8EA6A2BF 0x20679 +0x8EA6A2C0 0x206B3 +0x8EA6A2C1 0x34DB +0x8EA6A2C2 0x20BA7 +0x8EA6A2C3 0x206B2 +0x8EA6A2C4 0x206B0 +0x8EA6A2C5 0x206B4 +0x8EA6A2C6 0x2F829 +0x8EA6A2C7 0x208CD +0x8EA6A2C8 0x208CE +0x8EA6A2C9 0x2F82B +0x8EA6A2CA 0x20910 +0x8EA6A2CB 0x20980 +0x8EA6A2CC 0x209D3 +0x8EA6A2CD 0x20A30 +0x8EA6A2CE 0x20098 +0x8EA6A2CF 0x20A2F +0x8EA6A2D0 0x20A31 +0x8EA6A2D1 0x20ADA +0x8EA6A2D2 0x20AD9 +0x8EA6A2D3 0x20B27 +0x8EA6A2D4 0x20B28 +0x8EA6A2D5 0x20B21 +0x8EA6A2D6 0x20B25 +0x8EA6A2D7 0x20BA6 +0x8EA6A2D8 0x20BA2 +0x8EA6A2D9 0x20BA1 +0x8EA6A2DA 0x20BA4 +0x8EA6A2DB 0x2F839 +0x8EA6A2DC 0x20BAA +0x8EA6A2DD 0x20BA5 +0x8EA6A2DE 0x20BA3 +0x8EA6A2DF 0x20064 +0x8EA6A2E0 0x2123F +0x8EA6A2E1 0x21244 +0x8EA6A2E2 0x2151B +0x8EA6A2E3 0x21553 +0x8EA6A2E4 0x21584 +0x8EA6A2E5 0x21586 +0x8EA6A2E6 0x215D5 +0x8EA6A2E7 0x2F860 +0x8EA6A2E8 0x2193E +0x8EA6A2E9 0x21940 +0x8EA6A2EA 0x21BCA +0x8EA6A2EB 0x21BC9 +0x8EA6A2EC 0x21C26 +0x8EA6A2ED 0x21D00 +0x8EA6A2EE 0x21D31 +0x8EA6A2EF 0x21D3C +0x8EA6A2F0 0x21D30 +0x8EA6A2F1 0x21D33 +0x8EA6A2F2 0x21D32 +0x8EA6A2F3 0x21D38 +0x8EA6A2F4 0x22034 +0x8EA6A2F5 0x22053 +0x8EA6A2F6 0x22054 +0x8EA6A2F7 0x221B4 +0x8EA6A2F8 0x221B2 +0x8EA6A2F9 0x2232F +0x8EA6A2FA 0x223A5 +0x8EA6A2FB 0x223A7 +0x8EA6A2FC 0x223A4 +0x8EA6A2FD 0x223A8 +0x8EA6A2FE 0x223A9 +0x8EA6A3A1 0x223A2 +0x8EA6A3A2 0x223A3 +0x8EA6A3A3 0x223A6 +0x8EA6A3A4 0x22481 +0x8EA6A3A5 0x22480 +0x8EA6A3A6 0x225AD +0x8EA6A3A7 0x22A24 +0x8EA6A3A8 0x22A65 +0x8EA6A3A9 0x22A68 +0x8EA6A3AA 0x22A69 +0x8EA6A3AB 0x2313C +0x8EA6A3AC 0x2313B +0x8EA6A3AD 0x2335D +0x8EA6A3AE 0x23944 +0x8EA6A3AF 0x24182 +0x8EA6A3B0 0x244F1 +0x8EA6A3B1 0x2456B +0x8EA6A3B2 0x2471B +0x8EA6A3B3 0x248EB +0x8EA6A3B4 0x24BBA +0x8EA6A3B5 0x24BD3 +0x8EA6A3B6 0x24D13 +0x8EA6A3B7 0x25922 +0x8EA6A3B8 0x26AF4 +0x8EA6A3B9 0x2820F +0x8EA6A3BA 0x28210 +0x8EA6A3BB 0x20507 +0x8EA6A3BC 0x29C0B +0x8EA6A3BD 0x29C0A +0x8EA6A3BE 0x20019 +0x8EA6A3BF 0x2001A +0x8EA6A3C0 0x20018 +0x8EA6A3C1 0x20066 +0x8EA6A3C2 0x20082 +0x8EA6A3C3 0x200A8 +0x8EA6A3C4 0x200E5 +0x8EA6A3C5 0x200E7 +0x8EA6A3C6 0x200E4 +0x8EA6A3C7 0x20115 +0x8EA6A3C8 0x20123 +0x8EA6A3C9 0x20124 +0x8EA6A3CA 0x20143 +0x8EA6A3CB 0x201C3 +0x8EA6A3CC 0x201BC +0x8EA6A3CD 0x201BB +0x8EA6A3CE 0x3438 +0x8EA6A3CF 0x201B7 +0x8EA6A3D0 0x201B9 +0x8EA6A3D1 0x201CF +0x8EA6A3D2 0x2F80D +0x8EA6A3D3 0x2047A +0x8EA6A3D4 0x2047B +0x8EA6A3D5 0x204E1 +0x8EA6A3D6 0x204E0 +0x8EA6A3D7 0x20509 +0x8EA6A3D8 0x2054D +0x8EA6A3D9 0x2F816 +0x8EA6A3DA 0x2054B +0x8EA6A3DB 0x20579 +0x8EA6A3DC 0x205B1 +0x8EA6A3DD 0x20636 +0x8EA6A3DE 0x20635 +0x8EA6A3DF 0x20637 +0x8EA6A3E0 0x20638 +0x8EA6A3E1 0x2067F +0x8EA6A3E2 0x20680 +0x8EA6A3E3 0x20681 +0x8EA6A3E4 0x26953 +0x8EA6A3E5 0x2067E +0x8EA6A3E6 0x206CD +0x8EA6A3E7 0x206BF +0x8EA6A3E8 0x206BE +0x8EA6A3E9 0x206C2 +0x8EA6A3EA 0x206B8 +0x8EA6A3EB 0x206C1 +0x8EA6A3EC 0x6530 +0x8EA6A3ED 0x20931 +0x8EA6A3EE 0x2092F +0x8EA6A3EF 0x2096F +0x8EA6A3F0 0x20982 +0x8EA6A3F1 0x353A +0x8EA6A3F2 0x20987 +0x8EA6A3F3 0x20986 +0x8EA6A3F4 0x2098D +0x8EA6A3F5 0x20994 +0x8EA6A3F6 0x209D7 +0x8EA6A3F7 0x209D4 +0x8EA6A3F8 0x209D8 +0x8EA6A3F9 0x20A16 +0x8EA6A3FA 0x20A14 +0x8EA6A3FB 0x20A2E +0x8EA6A3FC 0x20A36 +0x8EA6A3FD 0x20A37 +0x8EA6A3FE 0x21FEE +0x8EA6A4A1 0x20AE0 +0x8EA6A4A2 0x20AE5 +0x8EA6A4A3 0x20ADF +0x8EA6A4A4 0x20B2B +0x8EA6A4A5 0x20B29 +0x8EA6A4A6 0x20B2D +0x8EA6A4A7 0x20B2F +0x8EA6A4A8 0x20BB7 +0x8EA6A4A9 0x20BC9 +0x8EA6A4AA 0x20BC1 +0x8EA6A4AB 0x20BCA +0x8EA6A4AC 0x20BB2 +0x8EA6A4AD 0x20BAC +0x8EA6A4AE 0x20BAE +0x8EA6A4AF 0x211B2 +0x8EA6A4B0 0x211A8 +0x8EA6A4B1 0x211B0 +0x8EA6A4B2 0x211A7 +0x8EA6A4B3 0x2F851 +0x8EA6A4B4 0x21252 +0x8EA6A4B5 0x2124A +0x8EA6A4B6 0x21556 +0x8EA6A4B7 0x21555 +0x8EA6A4B8 0x2155F +0x8EA6A4B9 0x2155E +0x8EA6A4BA 0x21588 +0x8EA6A4BB 0x2F85D +0x8EA6A4BC 0x215DD +0x8EA6A4BD 0x215E2 +0x8EA6A4BE 0x215E1 +0x8EA6A4BF 0x215DF +0x8EA6A4C0 0x215E0 +0x8EA6A4C1 0x216AF +0x8EA6A4C2 0x216B1 +0x8EA6A4C3 0x216BA +0x8EA6A4C4 0x21945 +0x8EA6A4C5 0x21943 +0x8EA6A4C6 0x219BD +0x8EA6A4C7 0x219C8 +0x8EA6A4C8 0x2F86C +0x8EA6A4C9 0x219BE +0x8EA6A4CA 0x219BF +0x8EA6A4CB 0x2F874 +0x8EA6A4CC 0x21B59 +0x8EA6A4CD 0x21C29 +0x8EA6A4CE 0x21C2C +0x8EA6A4CF 0x21C2F +0x8EA6A4D0 0x21C2D +0x8EA6A4D1 0x21C2E +0x8EA6A4D2 0x21D04 +0x8EA6A4D3 0x21D02 +0x8EA6A4D4 0x21D01 +0x8EA6A4D5 0x21D40 +0x8EA6A4D6 0x21D4A +0x8EA6A4D7 0x21D3F +0x8EA6A4D8 0x21D4F +0x8EA6A4D9 0x21D41 +0x8EA6A4DA 0x21D4E +0x8EA6A4DB 0x21FEB +0x8EA6A4DC 0x21FEC +0x8EA6A4DD 0x200AC +0x8EA6A4DE 0x2205B +0x8EA6A4DF 0x22063 +0x8EA6A4E0 0x2205A +0x8EA6A4E1 0x22059 +0x8EA6A4E2 0x221DC +0x8EA6A4E3 0x221DB +0x8EA6A4E4 0x221D9 +0x8EA6A4E5 0x221E0 +0x8EA6A4E6 0x221DD +0x8EA6A4E7 0x20020 +0x8EA6A4E8 0x223B0 +0x8EA6A4E9 0x223B1 +0x8EA6A4EA 0x223B2 +0x8EA6A4EB 0x223B6 +0x8EA6A4EC 0x22451 +0x8EA6A4ED 0x22452 +0x8EA6A4EE 0x22450 +0x8EA6A4EF 0x22484 +0x8EA6A4F0 0x38C9 +0x8EA6A4F1 0x22483 +0x8EA6A4F2 0x225C3 +0x8EA6A4F3 0x225B8 +0x8EA6A4F4 0x225B9 +0x8EA6A4F5 0x225B2 +0x8EA6A4F6 0x22990 +0x8EA6A4F7 0x22A26 +0x8EA6A4F8 0x22A29 +0x8EA6A4F9 0x22A6E +0x8EA6A4FA 0x23140 +0x8EA6A4FB 0x2313E +0x8EA6A4FC 0x23141 +0x8EA6A4FD 0x2335E +0x8EA6A4FE 0x233BB +0x8EA6A5A1 0x233BC +0x8EA6A5A2 0x233B9 +0x8EA6A5A3 0x2F8EF +0x8EA6A5A4 0x23880 +0x8EA6A5A5 0x3C4F +0x8EA6A5A6 0x23945 +0x8EA6A5A7 0x239BA +0x8EA6A5A8 0x239BD +0x8EA6A5A9 0x23C56 +0x8EA6A5AA 0x23C55 +0x8EA6A5AB 0x23C75 +0x8EA6A5AC 0x23C77 +0x8EA6A5AD 0x23C81 +0x8EA6A5AE 0x2F8FA +0x8EA6A5AF 0x23C83 +0x8EA6A5B0 0x23C8B +0x8EA6A5B1 0x23C84 +0x8EA6A5B2 0x24186 +0x8EA6A5B3 0x24183 +0x8EA6A5B4 0x2418B +0x8EA6A5B5 0x2456D +0x8EA6A5B6 0x24616 +0x8EA6A5B7 0x24728 +0x8EA6A5B8 0x248EA +0x8EA6A5B9 0x24BD4 +0x8EA6A5BA 0x24C03 +0x8EA6A5BB 0x24D15 +0x8EA6A5BC 0x24F3D +0x8EA6A5BD 0x24F3E +0x8EA6A5BE 0x25416 +0x8EA6A5BF 0x2F94C +0x8EA6A5C0 0x25606 +0x8EA6A5C1 0x2574D +0x8EA6A5C2 0x26222 +0x8EA6A5C3 0x26273 +0x8EA6A5C4 0x2626D +0x8EA6A5C5 0x2626E +0x8EA6A5C6 0x264B1 +0x8EA6A5C7 0x2054E +0x8EA6A5C8 0x2662D +0x8EA6A5C9 0x43CD +0x8EA6A5CA 0x268F9 +0x8EA6A5CB 0x26952 +0x8EA6A5CC 0x26B00 +0x8EA6A5CD 0x26AFC +0x8EA6A5CE 0x26AFA +0x8EA6A5CF 0x4492 +0x8EA6A5D0 0x26AF7 +0x8EA6A5D1 0x26AF8 +0x8EA6A5D2 0x2F990 +0x8EA6A5D3 0x2F9C4 +0x8EA6A5D4 0x27C27 +0x8EA6A5D5 0x28211 +0x8EA6A5D6 0x200AE +0x8EA6A5D7 0x28450 +0x8EA6A5D8 0x2844F +0x8EA6A5D9 0x2844D +0x8EA6A5DA 0x28671 +0x8EA6A5DB 0x2F9E2 +0x8EA6A5DC 0x28672 +0x8EA6A5DD 0x28E18 +0x8EA6A5DE 0x20A44 +0x8EA6A5DF 0x20021 +0x8EA6A5E0 0x20067 +0x8EA6A5E1 0x200AF +0x8EA6A5E2 0x200B0 +0x8EA6A5E3 0x20029 +0x8EA6A5E4 0x20117 +0x8EA6A5E5 0x20122 +0x8EA6A5E6 0x2F803 +0x8EA6A5E7 0x20025 +0x8EA6A5E8 0x20128 +0x8EA6A5E9 0x201FF +0x8EA6A5EA 0x201D9 +0x8EA6A5EB 0x201DB +0x8EA6A5EC 0x201DE +0x8EA6A5ED 0x201F2 +0x8EA6A5EE 0x201FE +0x8EA6A5EF 0x201F4 +0x8EA6A5F0 0x201DD +0x8EA6A5F1 0x3445 +0x8EA6A5F2 0x2F804 +0x8EA6A5F3 0x20201 +0x8EA6A5F4 0x201DC +0x8EA6A5F5 0x2047D +0x8EA6A5F6 0x20481 +0x8EA6A5F7 0x2047E +0x8EA6A5F8 0x2047F +0x8EA6A5F9 0x204E5 +0x8EA6A5FA 0x2050F +0x8EA6A5FB 0x34B5 +0x8EA6A5FC 0x2050A +0x8EA6A5FD 0x34B6 +0x8EA6A5FE 0x2050B +0x8EA6A6A1 0x20551 +0x8EA6A6A2 0x20552 +0x8EA6A6A3 0x20550 +0x8EA6A6A4 0x205B8 +0x8EA6A6A5 0x2063D +0x8EA6A6A6 0x2063E +0x8EA6A6A7 0x2063C +0x8EA6A6A8 0x20687 +0x8EA6A6A9 0x206D7 +0x8EA6A6AA 0x206DB +0x8EA6A6AB 0x206CF +0x8EA6A6AC 0x206E0 +0x8EA6A6AD 0x2084C +0x8EA6A6AE 0x20842 +0x8EA6A6AF 0x208D4 +0x8EA6A6B0 0x20911 +0x8EA6A6B1 0x20914 +0x8EA6A6B2 0x20915 +0x8EA6A6B3 0x20912 +0x8EA6A6B4 0x20933 +0x8EA6A6B5 0x20935 +0x8EA6A6B6 0x3537 +0x8EA6A6B7 0x20971 +0x8EA6A6B8 0x3530 +0x8EA6A6B9 0x20991 +0x8EA6A6BA 0x20993 +0x8EA6A6BB 0x20995 +0x8EA6A6BC 0x209DC +0x8EA6A6BD 0x20A42 +0x8EA6A6BE 0x20A40 +0x8EA6A6BF 0x253A6 +0x8EA6A6C0 0x20AE6 +0x8EA6A6C1 0x2128F +0x8EA6A6C2 0x20B32 +0x8EA6A6C3 0x2F837 +0x8EA6A6C4 0x20B31 +0x8EA6A6C5 0x20BF5 +0x8EA6A6C6 0x20BCD +0x8EA6A6C7 0x20BDE +0x8EA6A6C8 0x20BD5 +0x8EA6A6C9 0x20BDA +0x8EA6A6CA 0x20BEE +0x8EA6A6CB 0x20BEC +0x8EA6A6CC 0x20BCF +0x8EA6A6CD 0x20BCE +0x8EA6A6CE 0x2F83D +0x8EA6A6CF 0x20BCC +0x8EA6A6D0 0x20BF3 +0x8EA6A6D1 0x211C1 +0x8EA6A6D2 0x211C4 +0x8EA6A6D3 0x211C6 +0x8EA6A6D4 0x211B4 +0x8EA6A6D5 0x211C3 +0x8EA6A6D6 0x211B8 +0x8EA6A6D7 0x211BB +0x8EA6A6D8 0x211B7 +0x8EA6A6D9 0x211BC +0x8EA6A6DA 0x211BF +0x8EA6A6DB 0x211C7 +0x8EA6A6DC 0x211BE +0x8EA6A6DD 0x21260 +0x8EA6A6DE 0x2125D +0x8EA6A6DF 0x21276 +0x8EA6A6E0 0x2126C +0x8EA6A6E1 0x21275 +0x8EA6A6E2 0x2125B +0x8EA6A6E3 0x21271 +0x8EA6A6E4 0x21273 +0x8EA6A6E5 0x21261 +0x8EA6A6E6 0x2125A +0x8EA6A6E7 0x21262 +0x8EA6A6E8 0x21272 +0x8EA6A6E9 0x2125F +0x8EA6A6EA 0x21258 +0x8EA6A6EB 0x2151E +0x8EA6A6EC 0x21558 +0x8EA6A6ED 0x2158B +0x8EA6A6EE 0x2158A +0x8EA6A6EF 0x215F4 +0x8EA6A6F0 0x215F0 +0x8EA6A6F1 0x216D2 +0x8EA6A6F2 0x216CD +0x8EA6A6F3 0x216CE +0x8EA6A6F4 0x216BC +0x8EA6A6F5 0x216D0 +0x8EA6A6F6 0x21946 +0x8EA6A6F7 0x21947 +0x8EA6A6F8 0x373E +0x8EA6A6F9 0x374D +0x8EA6A6FA 0x3751 +0x8EA6A6FB 0x219CE +0x8EA6A6FC 0x219CF +0x8EA6A6FD 0x219CC +0x8EA6A6FE 0x219CB +0x8EA6A7A1 0x2F872 +0x8EA6A7A2 0x21B60 +0x8EA6A7A3 0x21B5F +0x8EA6A7A4 0x21B5D +0x8EA6A7A5 0x21BD4 +0x8EA6A7A6 0x21C3A +0x8EA6A7A7 0x21C38 +0x8EA6A7A8 0x21C3C +0x8EA6A7A9 0x21C36 +0x8EA6A7AA 0x21D08 +0x8EA6A7AB 0x21D7E +0x8EA6A7AC 0x21D5E +0x8EA6A7AD 0x21D6E +0x8EA6A7AE 0x21D53 +0x8EA6A7AF 0x21D70 +0x8EA6A7B0 0x21D57 +0x8EA6A7B1 0x21D5D +0x8EA6A7B2 0x21D63 +0x8EA6A7B3 0x21D7A +0x8EA6A7B4 0x21D79 +0x8EA6A7B5 0x21D93 +0x8EA6A7B6 0x2F881 +0x8EA6A7B7 0x2201D +0x8EA6A7B8 0x22068 +0x8EA6A7B9 0x22073 +0x8EA6A7BA 0x22074 +0x8EA6A7BB 0x22066 +0x8EA6A7BC 0x2206F +0x8EA6A7BD 0x22075 +0x8EA6A7BE 0x2207A +0x8EA6A7BF 0x22070 +0x8EA6A7C0 0x2206D +0x8EA6A7C1 0x22065 +0x8EA6A7C2 0x2218A +0x8EA6A7C3 0x221ED +0x8EA6A7C4 0x221E9 +0x8EA6A7C5 0x221E3 +0x8EA6A7C6 0x221EF +0x8EA6A7C7 0x3873 +0x8EA6A7C8 0x221EA +0x8EA6A7C9 0x22331 +0x8EA6A7CA 0x2F891 +0x8EA6A7CB 0x22338 +0x8EA6A7CC 0x26B20 +0x8EA6A7CD 0x22335 +0x8EA6A7CE 0x2233A +0x8EA6A7CF 0x22381 +0x8EA6A7D0 0x22380 +0x8EA6A7D1 0x223B8 +0x8EA6A7D2 0x223C1 +0x8EA6A7D3 0x223BA +0x8EA6A7D4 0x22488 +0x8EA6A7D5 0x224CF +0x8EA6A7D6 0x224CA +0x8EA6A7D7 0x224C7 +0x8EA6A7D8 0x224C5 +0x8EA6A7D9 0x224C8 +0x8EA6A7DA 0x224D0 +0x8EA6A7DB 0x224C9 +0x8EA6A7DC 0x225BB +0x8EA6A7DD 0x225B6 +0x8EA6A7DE 0x225BD +0x8EA6A7DF 0x2F89D +0x8EA6A7E0 0x225B4 +0x8EA6A7E1 0x225C1 +0x8EA6A7E2 0x225D1 +0x8EA6A7E3 0x225D2 +0x8EA6A7E4 0x225CC +0x8EA6A7E5 0x225D4 +0x8EA6A7E6 0x225CB +0x8EA6A7E7 0x225CE +0x8EA6A7E8 0x225D5 +0x8EA6A7E9 0x225D8 +0x8EA6A7EA 0x22995 +0x8EA6A7EB 0x22993 +0x8EA6A7EC 0x22999 +0x8EA6A7ED 0x22996 +0x8EA6A7EE 0x39BE +0x8EA6A7EF 0x22A89 +0x8EA6A7F0 0x22A94 +0x8EA6A7F1 0x22A91 +0x8EA6A7F2 0x22A8F +0x8EA6A7F3 0x22A84 +0x8EA6A7F4 0x22A97 +0x8EA6A7F5 0x22A86 +0x8EA6A7F6 0x22A85 +0x8EA6A7F7 0x22A8C +0x8EA6A7F8 0x22EF2 +0x8EA6A7F9 0x22EED +0x8EA6A7FA 0x22EEF +0x8EA6A7FB 0x230D9 +0x8EA6A7FC 0x23146 +0x8EA6A7FD 0x23147 +0x8EA6A7FE 0x2314B +0x8EA6A8A1 0x23150 +0x8EA6A8A2 0x2314A +0x8EA6A8A3 0x2314E +0x8EA6A8A4 0x2314C +0x8EA6A8A5 0x23148 +0x8EA6A8A6 0x23363 +0x8EA6A8A7 0x23361 +0x8EA6A8A8 0x23362 +0x8EA6A8A9 0x23360 +0x8EA6A8AA 0x233C3 +0x8EA6A8AB 0x233C5 +0x8EA6A8AC 0x233C1 +0x8EA6A8AD 0x233D0 +0x8EA6A8AE 0x2F8DC +0x8EA6A8AF 0x23882 +0x8EA6A8B0 0x3C1E +0x8EA6A8B1 0x23886 +0x8EA6A8B2 0x23884 +0x8EA6A8B3 0x2394C +0x8EA6A8B4 0x23948 +0x8EA6A8B5 0x239B8 +0x8EA6A8B6 0x239BF +0x8EA6A8B7 0x239C1 +0x8EA6A8B8 0x239C6 +0x8EA6A8B9 0x239C5 +0x8EA6A8BA 0x239C7 +0x8EA6A8BB 0x239C0 +0x8EA6A8BC 0x239C3 +0x8EA6A8BD 0x23AED +0x8EA6A8BE 0x23B03 +0x8EA6A8BF 0x23B22 +0x8EA6A8C0 0x23B21 +0x8EA6A8C1 0x23C9F +0x8EA6A8C2 0x23C90 +0x8EA6A8C3 0x23C9E +0x8EA6A8C4 0x3CC8 +0x8EA6A8C5 0x23CA0 +0x8EA6A8C6 0x23C94 +0x8EA6A8C7 0x23C95 +0x8EA6A8C8 0x23CA1 +0x8EA6A8C9 0x3CC3 +0x8EA6A8CA 0x3CC7 +0x8EA6A8CB 0x2419A +0x8EA6A8CC 0x24190 +0x8EA6A8CD 0x244F2 +0x8EA6A8CE 0x244F3 +0x8EA6A8CF 0x2456E +0x8EA6A8D0 0x245AB +0x8EA6A8D1 0x245A9 +0x8EA6A8D2 0x2461A +0x8EA6A8D3 0x24618 +0x8EA6A8D4 0x2461B +0x8EA6A8D5 0x24760 +0x8EA6A8D6 0x2474C +0x8EA6A8D7 0x24742 +0x8EA6A8D8 0x24733 +0x8EA6A8D9 0x2473F +0x8EA6A8DA 0x2473E +0x8EA6A8DB 0x24738 +0x8EA6A8DC 0x24743 +0x8EA6A8DD 0x24746 +0x8EA6A8DE 0x24736 +0x8EA6A8DF 0x248EE +0x8EA6A8E0 0x248F5 +0x8EA6A8E1 0x248F4 +0x8EA6A8E2 0x3F56 +0x8EA6A8E3 0x24C1B +0x8EA6A8E4 0x3540 +0x8EA6A8E5 0x24D2B +0x8EA6A8E6 0x24D29 +0x8EA6A8E7 0x24D2A +0x8EA6A8E8 0x24D2E +0x8EA6A8E9 0x2503F +0x8EA6A8EA 0x250E6 +0x8EA6A8EB 0x253A7 +0x8EA6A8EC 0x253A8 +0x8EA6A8ED 0x25418 +0x8EA6A8EE 0x25608 +0x8EA6A8EF 0x25750 +0x8EA6A8F0 0x25753 +0x8EA6A8F1 0x25A56 +0x8EA6A8F2 0x25A55 +0x8EA6A8F3 0x2626F +0x8EA6A8F4 0x2627F +0x8EA6A8F5 0x264B3 +0x8EA6A8F6 0x2663A +0x8EA6A8F7 0x26638 +0x8EA6A8F8 0x26637 +0x8EA6A8F9 0x26636 +0x8EA6A8FA 0x20554 +0x8EA6A8FB 0x2F980 +0x8EA6A8FC 0x268DD +0x8EA6A8FD 0x268FC +0x8EA6A8FE 0x268FA +0x8EA6A9A1 0x26933 +0x8EA6A9A2 0x26B04 +0x8EA6A9A3 0x26B07 +0x8EA6A9A4 0x26B08 +0x8EA6A9A5 0x26B06 +0x8EA6A9A6 0x26B09 +0x8EA6A9A7 0x2F991 +0x8EA6A9A8 0x2F993 +0x8EA6A9A9 0x2721E +0x8EA6A9AA 0x2F9D2 +0x8EA6A9AB 0x2840B +0x8EA6A9AC 0x28443 +0x8EA6A9AD 0x28452 +0x8EA6A9AE 0x28458 +0x8EA6A9AF 0x2845E +0x8EA6A9B0 0x28668 +0x8EA6A9B1 0x2868D +0x8EA6A9B2 0x28682 +0x8EA6A9B3 0x2867B +0x8EA6A9B4 0x28C58 +0x8EA6A9B5 0x49BD +0x8EA6A9B6 0x2F800 +0x8EA6A9B7 0x2002C +0x8EA6A9B8 0x2002E +0x8EA6A9B9 0x2160B +0x8EA6A9BA 0x2002D +0x8EA6A9BB 0x20069 +0x8EA6A9BC 0x200B2 +0x8EA6A9BD 0x200B6 +0x8EA6A9BE 0x200A9 +0x8EA6A9BF 0x200ED +0x8EA6A9C0 0x20119 +0x8EA6A9C1 0x2014F +0x8EA6A9C2 0x20216 +0x8EA6A9C3 0x20203 +0x8EA6A9C4 0x2020E +0x8EA6A9C5 0x20204 +0x8EA6A9C6 0x20207 +0x8EA6A9C7 0x20210 +0x8EA6A9C8 0x20227 +0x8EA6A9C9 0x20228 +0x8EA6A9CA 0x2020D +0x8EA6A9CB 0x20229 +0x8EA6A9CC 0x2020F +0x8EA6A9CD 0x20222 +0x8EA6A9CE 0x20211 +0x8EA6A9CF 0x20485 +0x8EA6A9D0 0x20484 +0x8EA6A9D1 0x20483 +0x8EA6A9D2 0x2048A +0x8EA6A9D3 0x20486 +0x8EA6A9D4 0x20510 +0x8EA6A9D5 0x20558 +0x8EA6A9D6 0x2055A +0x8EA6A9D7 0x2070C +0x8EA6A9D8 0x205C4 +0x8EA6A9D9 0x205C5 +0x8EA6A9DA 0x20647 +0x8EA6A9DB 0x20649 +0x8EA6A9DC 0x2064A +0x8EA6A9DD 0x2064B +0x8EA6A9DE 0x221BB +0x8EA6A9DF 0x2068D +0x8EA6A9E0 0x2068B +0x8EA6A9E1 0x20707 +0x8EA6A9E2 0x20706 +0x8EA6A9E3 0x2F820 +0x8EA6A9E4 0x206EF +0x8EA6A9E5 0x206F0 +0x8EA6A9E6 0x206ED +0x8EA6A9E7 0x206F9 +0x8EA6A9E8 0x20702 +0x8EA6A9E9 0x206E7 +0x8EA6A9EA 0x206F4 +0x8EA6A9EB 0x206F7 +0x8EA6A9EC 0x206F1 +0x8EA6A9ED 0x20853 +0x8EA6A9EE 0x20855 +0x8EA6A9EF 0x351A +0x8EA6A9F0 0x208DA +0x8EA6A9F1 0x208D9 +0x8EA6A9F2 0x352C +0x8EA6A9F3 0x20938 +0x8EA6A9F4 0x20999 +0x8EA6A9F5 0x209A2 +0x8EA6A9F6 0x2099C +0x8EA6A9F7 0x2099A +0x8EA6A9F8 0x2099B +0x8EA6A9F9 0x209E5 +0x8EA6A9FA 0x209E3 +0x8EA6A9FB 0x209E1 +0x8EA6A9FC 0x209E0 +0x8EA6A9FD 0x209E2 +0x8EA6A9FE 0x209E4 +0x8EA6AAA2 0x209E8 +0x8EA6AAA3 0x2F82F +0x8EA6AAA4 0x20A13 +0x8EA6AAA5 0x20A56 +0x8EA6AAA6 0x20A4B +0x8EA6AAA7 0x20A4A +0x8EA6AAA8 0x20A4D +0x8EA6AAA9 0x20A4C +0x8EA6AAAA 0x3549 +0x8EA6AAAB 0x20AEA +0x8EA6AAAC 0x20AE9 +0x8EA6AAAD 0x20AEB +0x8EA6AAAE 0x20AEC +0x8EA6AAAF 0x20B3A +0x8EA6AAB0 0x20B3C +0x8EA6AAB1 0x20B39 +0x8EA6AAB2 0x20B3B +0x8EA6AAB3 0x20C14 +0x8EA6AAB4 0x20C0E +0x8EA6AAB5 0x20C35 +0x8EA6AAB6 0x20C0A +0x8EA6AAB7 0x20C3F +0x8EA6AAB8 0x20C38 +0x8EA6AAB9 0x357C +0x8EA6AABA 0x20C4E +0x8EA6AABB 0x20C17 +0x8EA6AABC 0x2F83F +0x8EA6AABD 0x20C1E +0x8EA6AABE 0x211B6 +0x8EA6AABF 0x211CE +0x8EA6AAC0 0x211CA +0x8EA6AAC1 0x211CB +0x8EA6AAC2 0x211CC +0x8EA6AAC3 0x211C9 +0x8EA6AAC4 0x212B4 +0x8EA6AAC5 0x212AC +0x8EA6AAC6 0x21288 +0x8EA6AAC7 0x21286 +0x8EA6AAC8 0x2128C +0x8EA6AAC9 0x21293 +0x8EA6AACA 0x2128A +0x8EA6AACB 0x212A4 +0x8EA6AACC 0x21287 +0x8EA6AACD 0x212A5 +0x8EA6AACE 0x212A6 +0x8EA6AACF 0x21285 +0x8EA6AAD0 0x212A3 +0x8EA6AAD1 0x2128E +0x8EA6AAD2 0x2151F +0x8EA6AAD3 0x21563 +0x8EA6AAD4 0x2158D +0x8EA6AAD5 0x215FA +0x8EA6AAD6 0x215FB +0x8EA6AAD7 0x21609 +0x8EA6AAD8 0x215FE +0x8EA6AAD9 0x215FF +0x8EA6AADA 0x21602 +0x8EA6AADB 0x21604 +0x8EA6AADC 0x215FD +0x8EA6AADD 0x21605 +0x8EA6AADE 0x216F9 +0x8EA6AADF 0x216F7 +0x8EA6AAE0 0x216DB +0x8EA6AAE1 0x216DA +0x8EA6AAE2 0x21951 +0x8EA6AAE3 0x21950 +0x8EA6AAE4 0x21957 +0x8EA6AAE5 0x219E2 +0x8EA6AAE6 0x219D8 +0x8EA6AAE7 0x219DA +0x8EA6AAE8 0x219DC +0x8EA6AAE9 0x21B20 +0x8EA6AAEA 0x21B1F +0x8EA6AAEB 0x21B69 +0x8EA6AAEC 0x21BDD +0x8EA6AAED 0x21C40 +0x8EA6AAEE 0x21C41 +0x8EA6AAEF 0x21C43 +0x8EA6AAF0 0x21D0D +0x8EA6AAF1 0x21D0C +0x8EA6AAF2 0x21D87 +0x8EA6AAF3 0x21DA9 +0x8EA6AAF4 0x21D92 +0x8EA6AAF5 0x21D85 +0x8EA6AAF6 0x37BF +0x8EA6AAF7 0x21D8C +0x8EA6AAF8 0x21DA2 +0x8EA6AAF9 0x21D8F +0x8EA6AAFA 0x21D8A +0x8EA6AAFB 0x37BA +0x8EA6AAFC 0x21D8D +0x8EA6AAFD 0x21FF1 +0x8EA6AAFE 0x22037 +0x8EA6ABA1 0x2208B +0x8EA6ABA2 0x22087 +0x8EA6ABA3 0x22082 +0x8EA6ABA4 0x2218E +0x8EA6ABA5 0x221BC +0x8EA6ABA6 0x221F8 +0x8EA6ABA7 0x221FA +0x8EA6ABA8 0x221EB +0x8EA6ABA9 0x221F9 +0x8EA6ABAA 0x221FC +0x8EA6ABAB 0x22205 +0x8EA6ABAC 0x2231B +0x8EA6ABAD 0x2231D +0x8EA6ABAE 0x2231E +0x8EA6ABAF 0x2F892 +0x8EA6ABB0 0x2233C +0x8EA6ABB1 0x2233E +0x8EA6ABB2 0x22384 +0x8EA6ABB3 0x223C8 +0x8EA6ABB4 0x223C9 +0x8EA6ABB5 0x223D3 +0x8EA6ABB6 0x223C7 +0x8EA6ABB7 0x223D2 +0x8EA6ABB8 0x22455 +0x8EA6ABB9 0x2F896 +0x8EA6ABBA 0x2248C +0x8EA6ABBB 0x2248A +0x8EA6ABBC 0x224D5 +0x8EA6ABBD 0x224D3 +0x8EA6ABBE 0x38D8 +0x8EA6ABBF 0x224D8 +0x8EA6ABC0 0x225D0 +0x8EA6ABC1 0x225EE +0x8EA6ABC2 0x225F1 +0x8EA6ABC3 0x225FB +0x8EA6ABC4 0x225D3 +0x8EA6ABC5 0x225EC +0x8EA6ABC6 0x225CD +0x8EA6ABC7 0x22615 +0x8EA6ABC8 0x22626 +0x8EA6ABC9 0x2260E +0x8EA6ABCA 0x22627 +0x8EA6ABCB 0x2262A +0x8EA6ABCC 0x22600 +0x8EA6ABCD 0x22604 +0x8EA6ABCE 0x22628 +0x8EA6ABCF 0x22608 +0x8EA6ABD0 0x22614 +0x8EA6ABD1 0x2299B +0x8EA6ABD2 0x39B2 +0x8EA6ABD3 0x229A1 +0x8EA6ABD4 0x2299D +0x8EA6ABD5 0x229A0 +0x8EA6ABD6 0x2299E +0x8EA6ABD7 0x229A2 +0x8EA6ABD8 0x2299C +0x8EA6ABD9 0x22A32 +0x8EA6ABDA 0x22A34 +0x8EA6ABDB 0x22A93 +0x8EA6ABDC 0x22A96 +0x8EA6ABDD 0x22A90 +0x8EA6ABDE 0x22AB4 +0x8EA6ABDF 0x22AB5 +0x8EA6ABE0 0x2F8B6 +0x8EA6ABE1 0x22AB6 +0x8EA6ABE2 0x22AC2 +0x8EA6ABE3 0x2F8B5 +0x8EA6ABE4 0x22ABA +0x8EA6ABE5 0x22A92 +0x8EA6ABE6 0x22EFB +0x8EA6ABE7 0x22F05 +0x8EA6ABE8 0x22EF3 +0x8EA6ABE9 0x22EFE +0x8EA6ABEA 0x22EFD +0x8EA6ABEB 0x2455D +0x8EA6ABEC 0x22EFA +0x8EA6ABED 0x23043 +0x8EA6ABEE 0x23095 +0x8EA6ABEF 0x23094 +0x8EA6ABF0 0x3AC4 +0x8EA6ABF1 0x2316F +0x8EA6ABF2 0x23173 +0x8EA6ABF3 0x2315C +0x8EA6ABF4 0x2315B +0x8EA6ABF5 0x23166 +0x8EA6ABF6 0x23174 +0x8EA6ABF7 0x23163 +0x8EA6ABF8 0x23167 +0x8EA6ABF9 0x23160 +0x8EA6ABFA 0x23162 +0x8EA6ABFB 0x23171 +0x8EA6ABFC 0x23172 +0x8EA6ABFD 0x2315E +0x8EA6ABFE 0x23323 +0x8EA6ACA1 0x23326 +0x8EA6ACA2 0x23364 +0x8EA6ACA3 0x2F8D6 +0x8EA6ACA4 0x233F2 +0x8EA6ACA5 0x23401 +0x8EA6ACA6 0x233DD +0x8EA6ACA7 0x233DC +0x8EA6ACA8 0x233DB +0x8EA6ACA9 0x233F3 +0x8EA6ACAA 0x233FD +0x8EA6ACAB 0x233D8 +0x8EA6ACAC 0x233F8 +0x8EA6ACAD 0x233FB +0x8EA6ACAE 0x23883 +0x8EA6ACAF 0x2388C +0x8EA6ACB0 0x2388E +0x8EA6ACB1 0x23949 +0x8EA6ACB2 0x23954 +0x8EA6ACB3 0x23952 +0x8EA6ACB4 0x2394E +0x8EA6ACB5 0x23958 +0x8EA6ACB6 0x23951 +0x8EA6ACB7 0x23955 +0x8EA6ACB8 0x23953 +0x8EA6ACB9 0x23957 +0x8EA6ACBA 0x23950 +0x8EA6ACBB 0x2394F +0x8EA6ACBC 0x2394D +0x8EA6ACBD 0x239D2 +0x8EA6ACBE 0x239D3 +0x8EA6ACBF 0x239C9 +0x8EA6ACC0 0x239D4 +0x8EA6ACC1 0x23AEF +0x8EA6ACC2 0x2F8F8 +0x8EA6ACC3 0x200B1 +0x8EA6ACC4 0x23B05 +0x8EA6ACC5 0x23B04 +0x8EA6ACC6 0x23B2E +0x8EA6ACC7 0x23B2D +0x8EA6ACC8 0x23C45 +0x8EA6ACC9 0x23C5B +0x8EA6ACCA 0x23C5A +0x8EA6ACCB 0x23C59 +0x8EA6ACCC 0x23C9D +0x8EA6ACCD 0x23C8E +0x8EA6ACCE 0x23CBC +0x8EA6ACCF 0x23CDD +0x8EA6ACD0 0x23CBA +0x8EA6ACD1 0x2F8FD +0x8EA6ACD2 0x23CD8 +0x8EA6ACD3 0x23CCB +0x8EA6ACD4 0x23CD9 +0x8EA6ACD5 0x23CDA +0x8EA6ACD6 0x23CC4 +0x8EA6ACD7 0x23CB8 +0x8EA6ACD8 0x23CBF +0x8EA6ACD9 0x23CDB +0x8EA6ACDA 0x23CC1 +0x8EA6ACDB 0x2F8FC +0x8EA6ACDC 0x23CC5 +0x8EA6ACDD 0x2F919 +0x8EA6ACDE 0x241B1 +0x8EA6ACDF 0x241AF +0x8EA6ACE0 0x2F918 +0x8EA6ACE1 0x244F7 +0x8EA6ACE2 0x244F6 +0x8EA6ACE3 0x244F8 +0x8EA6ACE4 0x24550 +0x8EA6ACE5 0x24551 +0x8EA6ACE6 0x24571 +0x8EA6ACE7 0x24570 +0x8EA6ACE8 0x245B0 +0x8EA6ACE9 0x245AF +0x8EA6ACEA 0x245AE +0x8EA6ACEB 0x245AD +0x8EA6ACEC 0x24625 +0x8EA6ACED 0x2462C +0x8EA6ACEE 0x24622 +0x8EA6ACEF 0x24633 +0x8EA6ACF0 0x24634 +0x8EA6ACF1 0x3E2B +0x8EA6ACF2 0x2473A +0x8EA6ACF3 0x24740 +0x8EA6ACF4 0x24768 +0x8EA6ACF5 0x3E61 +0x8EA6ACF6 0x24764 +0x8EA6ACF7 0x2475C +0x8EA6ACF8 0x24757 +0x8EA6ACF9 0x24753 +0x8EA6ACFA 0x2474F +0x8EA6ACFB 0x24751 +0x8EA6ACFC 0x24754 +0x8EA6ACFD 0x24766 +0x8EA6ACFE 0x72DD +0x8EA6ADA1 0x3EB2 +0x8EA6ADA2 0x2490D +0x8EA6ADA3 0x24908 +0x8EA6ADA4 0x2F92B +0x8EA6ADA5 0x248FA +0x8EA6ADA6 0x24AEA +0x8EA6ADA7 0x24B2A +0x8EA6ADA8 0x24BBB +0x8EA6ADA9 0x24BD5 +0x8EA6ADAA 0x24BD7 +0x8EA6ADAB 0x21DA4 +0x8EA6ADAC 0x200F0 +0x8EA6ADAD 0x200B5 +0x8EA6ADAE 0x24C06 +0x8EA6ADAF 0x24C28 +0x8EA6ADB0 0x24C22 +0x8EA6ADB1 0x24C21 +0x8EA6ADB2 0x22456 +0x8EA6ADB3 0x24C23 +0x8EA6ADB4 0x211CD +0x8EA6ADB5 0x24D30 +0x8EA6ADB6 0x24D34 +0x8EA6ADB7 0x24FC9 +0x8EA6ADB8 0x24FCA +0x8EA6ADB9 0x24FC8 +0x8EA6ADBA 0x2F93D +0x8EA6ADBB 0x25044 +0x8EA6ADBC 0x250F3 +0x8EA6ADBD 0x2F941 +0x8EA6ADBE 0x250F8 +0x8EA6ADBF 0x250FC +0x8EA6ADC0 0x250F6 +0x8EA6ADC1 0x250FB +0x8EA6ADC2 0x250F7 +0x8EA6ADC3 0x25100 +0x8EA6ADC4 0x25102 +0x8EA6ADC5 0x2F940 +0x8EA6ADC6 0x2F94D +0x8EA6ADC7 0x25424 +0x8EA6ADC8 0x2560D +0x8EA6ADC9 0x4129 +0x8EA6ADCA 0x25762 +0x8EA6ADCB 0x25930 +0x8EA6ADCC 0x2592B +0x8EA6ADCD 0x2592A +0x8EA6ADCE 0x4192 +0x8EA6ADCF 0x2592D +0x8EA6ADD0 0x25ADA +0x8EA6ADD1 0x25E28 +0x8EA6ADD2 0x25F86 +0x8EA6ADD3 0x26277 +0x8EA6ADD4 0x2627C +0x8EA6ADD5 0x26350 +0x8EA6ADD6 0x2634E +0x8EA6ADD7 0x263F2 +0x8EA6ADD8 0x264B2 +0x8EA6ADD9 0x264CE +0x8EA6ADDA 0x264CF +0x8EA6ADDB 0x264E5 +0x8EA6ADDC 0x23407 +0x8EA6ADDD 0x26535 +0x8EA6ADDE 0x26531 +0x8EA6ADDF 0x26613 +0x8EA6ADE0 0x2662B +0x8EA6ADE1 0x2662C +0x8EA6ADE2 0x26645 +0x8EA6ADE3 0x26660 +0x8EA6ADE4 0x26641 +0x8EA6ADE5 0x26658 +0x8EA6ADE6 0x26647 +0x8EA6ADE7 0x2665B +0x8EA6ADE8 0x26650 +0x8EA6ADE9 0x2F982 +0x8EA6ADEA 0x2665F +0x8EA6ADEB 0x2664A +0x8EA6ADEC 0x26656 +0x8EA6ADED 0x26643 +0x8EA6ADEE 0x26644 +0x8EA6ADEF 0x26651 +0x8EA6ADF0 0x268FD +0x8EA6ADF1 0x26934 +0x8EA6ADF2 0x26935 +0x8EA6ADF3 0x26954 +0x8EA6ADF4 0x26955 +0x8EA6ADF5 0x26A0C +0x8EA6ADF6 0x26A0B +0x8EA6ADF7 0x26A0A +0x8EA6ADF8 0x26AF9 +0x8EA6ADF9 0x26B35 +0x8EA6ADFA 0x26B24 +0x8EA6ADFB 0x26B13 +0x8EA6ADFC 0x26B1C +0x8EA6ADFD 0x26B69 +0x8EA6ADFE 0x26B25 +0x8EA6AEA1 0x26B21 +0x8EA6AEA2 0x2F995 +0x8EA6AEA3 0x2F996 +0x8EA6AEA4 0x2F998 +0x8EA6AEA5 0x27220 +0x8EA6AEA6 0x275A9 +0x8EA6AEA7 0x275A8 +0x8EA6AEA8 0x275DE +0x8EA6AEA9 0x27609 +0x8EA6AEAA 0x2760A +0x8EA6AEAB 0x2760B +0x8EA6AEAC 0x277E3 +0x8EA6AEAD 0x27807 +0x8EA6AEAE 0x278B2 +0x8EA6AEAF 0x278B3 +0x8EA6AEB0 0x2795D +0x8EA6AEB1 0x27E58 +0x8EA6AEB2 0x27E86 +0x8EA6AEB3 0x27E87 +0x8EA6AEB4 0x27FB9 +0x8EA6AEB5 0x27FB8 +0x8EA6AEB6 0x2840C +0x8EA6AEB7 0x28444 +0x8EA6AEB8 0x28466 +0x8EA6AEB9 0x28480 +0x8EA6AEBA 0x28475 +0x8EA6AEBB 0x2846D +0x8EA6AEBC 0x2847E +0x8EA6AEBD 0x28467 +0x8EA6AEBE 0x28481 +0x8EA6AEBF 0x28477 +0x8EA6AEC0 0x286A8 +0x8EA6AEC1 0x286A2 +0x8EA6AEC2 0x286A5 +0x8EA6AEC3 0x2869B +0x8EA6AEC4 0x28C57 +0x8EA6AEC5 0x28E0F +0x8EA6AEC6 0x28E32 +0x8EA6AEC7 0x28E2C +0x8EA6AEC8 0x28E33 +0x8EA6AEC9 0x291E7 +0x8EA6AECA 0x2006E +0x8EA6AECB 0x200B7 +0x8EA6AECC 0x200F6 +0x8EA6AECD 0x200F2 +0x8EA6AECE 0x200F3 +0x8EA6AECF 0x20517 +0x8EA6AED0 0x20130 +0x8EA6AED1 0x20154 +0x8EA6AED2 0x20153 +0x8EA6AED3 0x20252 +0x8EA6AED4 0x2023D +0x8EA6AED5 0x2023C +0x8EA6AED6 0x20234 +0x8EA6AED7 0x20233 +0x8EA6AED8 0x20254 +0x8EA6AED9 0x2022F +0x8EA6AEDA 0x3458 +0x8EA6AEDB 0x20255 +0x8EA6AEDC 0x2023F +0x8EA6AEDD 0x20237 +0x8EA6AEDE 0x20256 +0x8EA6AEDF 0x20261 +0x8EA6AEE0 0x20258 +0x8EA6AEE1 0x2F806 +0x8EA6AEE2 0x2023B +0x8EA6AEE3 0x20232 +0x8EA6AEE4 0x2022E +0x8EA6AEE5 0x2023E +0x8EA6AEE6 0x2003B +0x8EA6AEE7 0x2048C +0x8EA6AEE8 0x2048D +0x8EA6AEE9 0x20513 +0x8EA6AEEA 0x20516 +0x8EA6AEEB 0x20512 +0x8EA6AEEC 0x2055B +0x8EA6AEED 0x2058A +0x8EA6AEEE 0x205D7 +0x8EA6AEEF 0x205CE +0x8EA6AEF0 0x20650 +0x8EA6AEF1 0x20651 +0x8EA6AEF2 0x2064F +0x8EA6AEF3 0x2068E +0x8EA6AEF4 0x2068F +0x8EA6AEF5 0x206F2 +0x8EA6AEF6 0x2F821 +0x8EA6AEF7 0x20728 +0x8EA6AEF8 0x2071A +0x8EA6AEF9 0x20725 +0x8EA6AEFA 0x2071D +0x8EA6AEFB 0x20714 +0x8EA6AEFC 0x20720 +0x8EA6AEFD 0x2071F +0x8EA6AEFE 0x2071B +0x8EA6AFA1 0x20717 +0x8EA6AFA2 0x20715 +0x8EA6AFA3 0x2071C +0x8EA6AFA4 0x20713 +0x8EA6AFA5 0x2F825 +0x8EA6AFA6 0x20860 +0x8EA6AFA7 0x351C +0x8EA6AFA8 0x20866 +0x8EA6AFA9 0x208E3 +0x8EA6AFAA 0x208DE +0x8EA6AFAB 0x208E0 +0x8EA6AFAC 0x208E1 +0x8EA6AFAD 0x2091A +0x8EA6AFAE 0x2091B +0x8EA6AFAF 0x20918 +0x8EA6AFB0 0x2091C +0x8EA6AFB1 0x20919 +0x8EA6AFB2 0x20942 +0x8EA6AFB3 0x20940 +0x8EA6AFB4 0x2093E +0x8EA6AFB5 0x20944 +0x8EA6AFB6 0x20974 +0x8EA6AFB7 0x20943 +0x8EA6AFB8 0x2F82D +0x8EA6AFB9 0x209F2 +0x8EA6AFBA 0x20A1B +0x8EA6AFBB 0x20A19 +0x8EA6AFBC 0x20A1E +0x8EA6AFBD 0x2F830 +0x8EA6AFBE 0x20A5E +0x8EA6AFBF 0x20A66 +0x8EA6AFC0 0x20A5D +0x8EA6AFC1 0x20A5A +0x8EA6AFC2 0x20A5F +0x8EA6AFC3 0x20A60 +0x8EA6AFC4 0x20A5B +0x8EA6AFC5 0x20A5C +0x8EA6AFC6 0x20A59 +0x8EA6AFC7 0x20AF0 +0x8EA6AFC8 0x20AF1 +0x8EA6AFC9 0x20B43 +0x8EA6AFCA 0x20B40 +0x8EA6AFCB 0x20B42 +0x8EA6AFCC 0x20B41 +0x8EA6AFCD 0x20B3F +0x8EA6AFCE 0x20C57 +0x8EA6AFCF 0x20C69 +0x8EA6AFD0 0x20C6F +0x8EA6AFD1 0x20CAB +0x8EA6AFD2 0x20C71 +0x8EA6AFD3 0x20C93 +0x8EA6AFD4 0x20C56 +0x8EA6AFD5 0x20C90 +0x8EA6AFD6 0x20C6D +0x8EA6AFD7 0x20C6C +0x8EA6AFD8 0x20C70 +0x8EA6AFD9 0x20C66 +0x8EA6AFDA 0x20C67 +0x8EA6AFDB 0x211D7 +0x8EA6AFDC 0x211B5 +0x8EA6AFDD 0x211DB +0x8EA6AFDE 0x211D8 +0x8EA6AFDF 0x211D5 +0x8EA6AFE0 0x211D4 +0x8EA6AFE1 0x212BA +0x8EA6AFE2 0x212B7 +0x8EA6AFE3 0x212BE +0x8EA6AFE4 0x212B9 +0x8EA6AFE5 0x3637 +0x8EA6AFE6 0x212E0 +0x8EA6AFE7 0x212DD +0x8EA6AFE8 0x212DE +0x8EA6AFE9 0x24918 +0x8EA6AFEA 0x212D8 +0x8EA6AFEB 0x212BD +0x8EA6AFEC 0x212DB +0x8EA6AFED 0x2151D +0x8EA6AFEE 0x21525 +0x8EA6AFEF 0x21721 +0x8EA6AFF0 0x2170C +0x8EA6AFF1 0x21729 +0x8EA6AFF2 0x2172D +0x8EA6AFF3 0x2171B +0x8EA6AFF4 0x2170E +0x8EA6AFF5 0x2171F +0x8EA6AFF6 0x21704 +0x8EA6AFF7 0x2171C +0x8EA6AFF8 0x21705 +0x8EA6AFF9 0x21706 +0x8EA6AFFA 0x21720 +0x8EA6AFFB 0x2170D +0x8EA6AFFC 0x2172A +0x8EA6AFFD 0x21723 +0x8EA6AFFE 0x21711 +0x8EA6B0A1 0x2195C +0x8EA6B0A2 0x21966 +0x8EA6B0A3 0x2195B +0x8EA6B0A4 0x2194F +0x8EA6B0A5 0x2195E +0x8EA6B0A6 0x2195D +0x8EA6B0A7 0x219F1 +0x8EA6B0A8 0x219EA +0x8EA6B0A9 0x219F4 +0x8EA6B0AA 0x219EB +0x8EA6B0AB 0x219F0 +0x8EA6B0AC 0x219FA +0x8EA6B0AD 0x219FB +0x8EA6B0AE 0x21B28 +0x8EA6B0AF 0x21B2C +0x8EA6B0B0 0x21B6B +0x8EA6B0B1 0x21B2A +0x8EA6B0B2 0x21B6A +0x8EA6B0B3 0x21B6F +0x8EA6B0B4 0x21BDB +0x8EA6B0B5 0x21BE0 +0x8EA6B0B6 0x24FD1 +0x8EA6B0B7 0x21BE3 +0x8EA6B0B8 0x21BE5 +0x8EA6B0B9 0x21BE7 +0x8EA6B0BA 0x21C4D +0x8EA6B0BB 0x21C55 +0x8EA6B0BC 0x21C54 +0x8EA6B0BD 0x21C53 +0x8EA6B0BE 0x21C52 +0x8EA6B0BF 0x21C4E +0x8EA6B0C0 0x21C60 +0x8EA6B0C1 0x221C0 +0x8EA6B0C2 0x21D0F +0x8EA6B0C3 0x21D11 +0x8EA6B0C4 0x21D13 +0x8EA6B0C5 0x21DC6 +0x8EA6B0C6 0x21DB3 +0x8EA6B0C7 0x21DC7 +0x8EA6B0C8 0x21DD2 +0x8EA6B0C9 0x21DB8 +0x8EA6B0CA 0x21DAC +0x8EA6B0CB 0x21DAE +0x8EA6B0CC 0x21DCF +0x8EA6B0CD 0x21DC5 +0x8EA6B0CE 0x2F87B +0x8EA6B0CF 0x21DCC +0x8EA6B0D0 0x21DAB +0x8EA6B0D1 0x21DC9 +0x8EA6B0D2 0x21DB9 +0x8EA6B0D3 0x21FFB +0x8EA6B0D4 0x21FF8 +0x8EA6B0D5 0x21FF7 +0x8EA6B0D6 0x21FF9 +0x8EA6B0D7 0x22020 +0x8EA6B0D8 0x2203B +0x8EA6B0D9 0x22039 +0x8EA6B0DA 0x2209E +0x8EA6B0DB 0x2209A +0x8EA6B0DC 0x220AA +0x8EA6B0DD 0x220AB +0x8EA6B0DE 0x220AF +0x8EA6B0DF 0x22096 +0x8EA6B0E0 0x220A9 +0x8EA6B0E1 0x220A6 +0x8EA6B0E2 0x22091 +0x8EA6B0E3 0x3843 +0x8EA6B0E4 0x220AE +0x8EA6B0E5 0x2209F +0x8EA6B0E6 0x220AC +0x8EA6B0E7 0x220A0 +0x8EA6B0E8 0x22192 +0x8EA6B0E9 0x22191 +0x8EA6B0EA 0x221BF +0x8EA6B0EB 0x22217 +0x8EA6B0EC 0x2220A +0x8EA6B0ED 0x2220C +0x8EA6B0EE 0x2234A +0x8EA6B0EF 0x22346 +0x8EA6B0F0 0x22334 +0x8EA6B0F1 0x22345 +0x8EA6B0F2 0x22343 +0x8EA6B0F3 0x22344 +0x8EA6B0F4 0x2F893 +0x8EA6B0F5 0x22387 +0x8EA6B0F6 0x22386 +0x8EA6B0F7 0x2238A +0x8EA6B0F8 0x223DA +0x8EA6B0F9 0x223D8 +0x8EA6B0FA 0x38B4 +0x8EA6B0FB 0x20518 +0x8EA6B0FC 0x20134 +0x8EA6B0FD 0x223D6 +0x8EA6B0FE 0x223D4 +0x8EA6B1A1 0x22454 +0x8EA6B1A2 0x22459 +0x8EA6B1A3 0x2245A +0x8EA6B1A4 0x22457 +0x8EA6B1A5 0x38E0 +0x8EA6B1A6 0x224DD +0x8EA6B1A7 0x224E9 +0x8EA6B1A8 0x224E0 +0x8EA6B1A9 0x22605 +0x8EA6B1AA 0x22612 +0x8EA6B1AB 0x22613 +0x8EA6B1AC 0x22607 +0x8EA6B1AD 0x22616 +0x8EA6B1AE 0x22623 +0x8EA6B1AF 0x22602 +0x8EA6B1B0 0x2F8A1 +0x8EA6B1B1 0x2264A +0x8EA6B1B2 0x22636 +0x8EA6B1B3 0x22640 +0x8EA6B1B4 0x22656 +0x8EA6B1B5 0x22643 +0x8EA6B1B6 0x2F8A0 +0x8EA6B1B7 0x2264B +0x8EA6B1B8 0x22646 +0x8EA6B1B9 0x2263E +0x8EA6B1BA 0x22649 +0x8EA6B1BB 0x229A7 +0x8EA6B1BC 0x229B6 +0x8EA6B1BD 0x229A6 +0x8EA6B1BE 0x229A8 +0x8EA6B1BF 0x229AC +0x8EA6B1C0 0x229A9 +0x8EA6B1C1 0x229AB +0x8EA6B1C2 0x22A38 +0x8EA6B1C3 0x22A37 +0x8EA6B1C4 0x22A39 +0x8EA6B1C5 0x22A41 +0x8EA6B1C6 0x22A3E +0x8EA6B1C7 0x22AC0 +0x8EA6B1C8 0x22ABB +0x8EA6B1C9 0x22ABF +0x8EA6B1CA 0x22ABD +0x8EA6B1CB 0x22AFE +0x8EA6B1CC 0x22B1E +0x8EA6B1CD 0x22AEE +0x8EA6B1CE 0x22AFC +0x8EA6B1CF 0x2F8B7 +0x8EA6B1D0 0x22AF9 +0x8EA6B1D1 0x22B06 +0x8EA6B1D2 0x22AE4 +0x8EA6B1D3 0x22AE9 +0x8EA6B1D4 0x22AE5 +0x8EA6B1D5 0x22B03 +0x8EA6B1D6 0x22AFD +0x8EA6B1D7 0x22B49 +0x8EA6B1D8 0x22EBE +0x8EA6B1D9 0x22F0A +0x8EA6B1DA 0x25626 +0x8EA6B1DB 0x22F18 +0x8EA6B1DC 0x22F0D +0x8EA6B1DD 0x22F0F +0x8EA6B1DE 0x22F0E +0x8EA6B1DF 0x22F20 +0x8EA6B1E0 0x23071 +0x8EA6B1E1 0x23099 +0x8EA6B1E2 0x230E2 +0x8EA6B1E3 0x230DF +0x8EA6B1E4 0x230DE +0x8EA6B1E5 0x23178 +0x8EA6B1E6 0x23179 +0x8EA6B1E7 0x3AE4 +0x8EA6B1E8 0x2317C +0x8EA6B1E9 0x2317D +0x8EA6B1EA 0x23184 +0x8EA6B1EB 0x2318B +0x8EA6B1EC 0x2318A +0x8EA6B1ED 0x2F8D2 +0x8EA6B1EE 0x23189 +0x8EA6B1EF 0x2332C +0x8EA6B1F0 0x23329 +0x8EA6B1F1 0x2336C +0x8EA6B1F2 0x6804 +0x8EA6B1F3 0x23409 +0x8EA6B1F4 0x23408 +0x8EA6B1F5 0x2340C +0x8EA6B1F6 0x2340D +0x8EA6B1F7 0x23410 +0x8EA6B1F8 0x3C26 +0x8EA6B1F9 0x2389F +0x8EA6B1FA 0x23898 +0x8EA6B1FB 0x238A2 +0x8EA6B1FC 0x2389A +0x8EA6B1FD 0x239D5 +0x8EA6B1FE 0x239E2 +0x8EA6B2A1 0x239F0 +0x8EA6B2A2 0x239EA +0x8EA6B2A3 0x239EB +0x8EA6B2A4 0x239ED +0x8EA6B2A5 0x239E8 +0x8EA6B2A6 0x239E0 +0x8EA6B2A7 0x23A85 +0x8EA6B2A8 0x23A86 +0x8EA6B2A9 0x23AF0 +0x8EA6B2AA 0x21E46 +0x8EA6B2AB 0x23B45 +0x8EA6B2AC 0x23B38 +0x8EA6B2AD 0x23B3E +0x8EA6B2AE 0x23B42 +0x8EA6B2AF 0x23B40 +0x8EA6B2B0 0x23C47 +0x8EA6B2B1 0x23C5C +0x8EA6B2B2 0x23C5E +0x8EA6B2B3 0x23CB4 +0x8EA6B2B4 0x23CC2 +0x8EA6B2B5 0x23D14 +0x8EA6B2B6 0x23CE5 +0x8EA6B2B7 0x23D15 +0x8EA6B2B8 0x23D11 +0x8EA6B2B9 0x2F8FF +0x8EA6B2BA 0x23CEE +0x8EA6B2BB 0x23CE7 +0x8EA6B2BC 0x23CF5 +0x8EA6B2BD 0x23CF4 +0x8EA6B2BE 0x23CE8 +0x8EA6B2BF 0x23D01 +0x8EA6B2C0 0x23CEF +0x8EA6B2C1 0x23CF1 +0x8EA6B2C2 0x2F900 +0x8EA6B2C3 0x241DB +0x8EA6B2C4 0x241BF +0x8EA6B2C5 0x241DA +0x8EA6B2C6 0x241C7 +0x8EA6B2C7 0x241DD +0x8EA6B2C8 0x2F91A +0x8EA6B2C9 0x241EB +0x8EA6B2CA 0x241E1 +0x8EA6B2CB 0x241C1 +0x8EA6B2CC 0x241BD +0x8EA6B2CD 0x24507 +0x8EA6B2CE 0x244FD +0x8EA6B2CF 0x24501 +0x8EA6B2D0 0x2450A +0x8EA6B2D1 0x24503 +0x8EA6B2D2 0x24572 +0x8EA6B2D3 0x24574 +0x8EA6B2D4 0x24575 +0x8EA6B2D5 0x245B2 +0x8EA6B2D6 0x245B1 +0x8EA6B2D7 0x245B4 +0x8EA6B2D8 0x2464C +0x8EA6B2D9 0x24642 +0x8EA6B2DA 0x24640 +0x8EA6B2DB 0x24649 +0x8EA6B2DC 0x2463C +0x8EA6B2DD 0x2464D +0x8EA6B2DE 0x2464A +0x8EA6B2DF 0x2463B +0x8EA6B2E0 0x24761 +0x8EA6B2E1 0x24774 +0x8EA6B2E2 0x2F926 +0x8EA6B2E3 0x2477F +0x8EA6B2E4 0x2477A +0x8EA6B2E5 0x24788 +0x8EA6B2E6 0x2477C +0x8EA6B2E7 0x3E6F +0x8EA6B2E8 0x24770 +0x8EA6B2E9 0x2490F +0x8EA6B2EA 0x24928 +0x8EA6B2EB 0x24913 +0x8EA6B2EC 0x2492A +0x8EA6B2ED 0x24AED +0x8EA6B2EE 0x24AEF +0x8EA6B2EF 0x24B2E +0x8EA6B2F0 0x24BC1 +0x8EA6B2F1 0x24BDD +0x8EA6B2F2 0x20B47 +0x8EA6B2F3 0x24C2D +0x8EA6B2F4 0x24C2B +0x8EA6B2F5 0x24C35 +0x8EA6B2F6 0x24C2F +0x8EA6B2F7 0x24C31 +0x8EA6B2F8 0x24C34 +0x8EA6B2F9 0x2F935 +0x8EA6B2FA 0x24C30 +0x8EA6B2FB 0x24D3A +0x8EA6B2FC 0x24D39 +0x8EA6B2FD 0x24D37 +0x8EA6B2FE 0x24D4B +0x8EA6B3A1 0x24D54 +0x8EA6B3A2 0x24D4D +0x8EA6B3A3 0x24D51 +0x8EA6B3A4 0x24D47 +0x8EA6B3A5 0x24F27 +0x8EA6B3A6 0x24F50 +0x8EA6B3A7 0x24F4D +0x8EA6B3A8 0x24F4E +0x8EA6B3A9 0x24F54 +0x8EA6B3AA 0x24FD2 +0x8EA6B3AB 0x24FCE +0x8EA6B3AC 0x2504B +0x8EA6B3AD 0x25049 +0x8EA6B3AE 0x25105 +0x8EA6B3AF 0x2510F +0x8EA6B3B0 0x25119 +0x8EA6B3B1 0x2F943 +0x8EA6B3B2 0x25106 +0x8EA6B3B3 0x2510C +0x8EA6B3B4 0x25129 +0x8EA6B3B5 0x25104 +0x8EA6B3B6 0x25108 +0x8EA6B3B7 0x25125 +0x8EA6B3B8 0x401C +0x8EA6B3B9 0x25103 +0x8EA6B3BA 0x25127 +0x8EA6B3BB 0x25110 +0x8EA6B3BC 0x2510A +0x8EA6B3BD 0x2F942 +0x8EA6B3BE 0x26B5D +0x8EA6B3BF 0x253AA +0x8EA6B3C0 0x253AB +0x8EA6B3C1 0x253A9 +0x8EA6B3C2 0x25441 +0x8EA6B3C3 0x2543A +0x8EA6B3C4 0x2543C +0x8EA6B3C5 0x2542B +0x8EA6B3C6 0x25449 +0x8EA6B3C7 0x25615 +0x8EA6B3C8 0x4100 +0x8EA6B3C9 0x25616 +0x8EA6B3CA 0x2F953 +0x8EA6B3CB 0x25631 +0x8EA6B3CC 0x23C4A +0x8EA6B3CD 0x2573C +0x8EA6B3CE 0x2577C +0x8EA6B3CF 0x2576D +0x8EA6B3D0 0x2576A +0x8EA6B3D1 0x25763 +0x8EA6B3D2 0x2576B +0x8EA6B3D3 0x2577B +0x8EA6B3D4 0x25764 +0x8EA6B3D5 0x2577A +0x8EA6B3D6 0x25769 +0x8EA6B3D7 0x2576F +0x8EA6B3D8 0x25937 +0x8EA6B3D9 0x25935 +0x8EA6B3DA 0x2593C +0x8EA6B3DB 0x25936 +0x8EA6B3DC 0x2593D +0x8EA6B3DD 0x2593E +0x8EA6B3DE 0x25AE1 +0x8EA6B3DF 0x25AE0 +0x8EA6B3E0 0x25E2D +0x8EA6B3E1 0x25E2B +0x8EA6B3E2 0x25F8D +0x8EA6B3E3 0x25F92 +0x8EA6B3E4 0x42B6 +0x8EA6B3E5 0x25F8E +0x8EA6B3E6 0x2F96B +0x8EA6B3E7 0x25F91 +0x8EA6B3E8 0x25F96 +0x8EA6B3E9 0x2627B +0x8EA6B3EA 0x26278 +0x8EA6B3EB 0x26281 +0x8EA6B3EC 0x26296 +0x8EA6B3ED 0x262A3 +0x8EA6B3EE 0x26295 +0x8EA6B3EF 0x26297 +0x8EA6B3F0 0x26354 +0x8EA6B3F1 0x26352 +0x8EA6B3F2 0x263F5 +0x8EA6B3F3 0x26400 +0x8EA6B3F4 0x263FB +0x8EA6B3F5 0x263F4 +0x8EA6B3F6 0x263F6 +0x8EA6B3F7 0x264E8 +0x8EA6B3F8 0x264EA +0x8EA6B3F9 0x2663E +0x8EA6B3FA 0x2663D +0x8EA6B3FB 0x2663B +0x8EA6B3FC 0x26680 +0x8EA6B3FD 0x43E4 +0x8EA6B3FE 0x26688 +0x8EA6B4A1 0x26681 +0x8EA6B4A2 0x26682 +0x8EA6B4A3 0x266CE +0x8EA6B4A4 0x26683 +0x8EA6B4A5 0x26677 +0x8EA6B4A6 0x26679 +0x8EA6B4A7 0x26673 +0x8EA6B4A8 0x2666D +0x8EA6B4A9 0x26670 +0x8EA6B4AA 0x2668D +0x8EA6B4AB 0x26675 +0x8EA6B4AC 0x2668C +0x8EA6B4AD 0x2666A +0x8EA6B4AE 0x26691 +0x8EA6B4AF 0x26689 +0x8EA6B4B0 0x2668E +0x8EA6B4B1 0x212DC +0x8EA6B4B2 0x268FF +0x8EA6B4B3 0x26959 +0x8EA6B4B4 0x269C7 +0x8EA6B4B5 0x26A12 +0x8EA6B4B6 0x26A14 +0x8EA6B4B7 0x26A13 +0x8EA6B4B8 0x26ACB +0x8EA6B4B9 0x26B42 +0x8EA6B4BA 0x44AD +0x8EA6B4BB 0x26B3D +0x8EA6B4BC 0x82FF +0x8EA6B4BD 0x26B40 +0x8EA6B4BE 0x26B44 +0x8EA6B4BF 0x26B62 +0x8EA6B4C0 0x26B43 +0x8EA6B4C1 0x26B3F +0x8EA6B4C2 0x26B45 +0x8EA6B4C3 0x26B3C +0x8EA6B4C4 0x2F997 +0x8EA6B4C5 0x26B46 +0x8EA6B4C6 0x26B47 +0x8EA6B4C7 0x2F9B3 +0x8EA6B4C8 0x2719E +0x8EA6B4C9 0x2719D +0x8EA6B4CA 0x2722C +0x8EA6B4CB 0x27229 +0x8EA6B4CC 0x2722F +0x8EA6B4CD 0x2722E +0x8EA6B4CE 0x27230 +0x8EA6B4CF 0x275E1 +0x8EA6B4D0 0x275E2 +0x8EA6B4D1 0x2760E +0x8EA6B4D2 0x27619 +0x8EA6B4D3 0x27612 +0x8EA6B4D4 0x278B4 +0x8EA6B4D5 0x27BDA +0x8EA6B4D6 0x27D26 +0x8EA6B4D7 0x27E59 +0x8EA6B4D8 0x27E5A +0x8EA6B4D9 0x27E88 +0x8EA6B4DA 0x27FC0 +0x8EA6B4DB 0x27FBA +0x8EA6B4DC 0x282A0 +0x8EA6B4DD 0x2F9DD +0x8EA6B4DE 0x282A2 +0x8EA6B4DF 0x28486 +0x8EA6B4E0 0x8FEC +0x8EA6B4E1 0x2849D +0x8EA6B4E2 0x28488 +0x8EA6B4E3 0x2848F +0x8EA6B4E4 0x2848E +0x8EA6B4E5 0x2849B +0x8EA6B4E6 0x286C1 +0x8EA6B4E7 0x286C3 +0x8EA6B4E8 0x286C4 +0x8EA6B4E9 0x28696 +0x8EA6B4EA 0x286C7 +0x8EA6B4EB 0x286C6 +0x8EA6B4EC 0x286BF +0x8EA6B4ED 0x48C3 +0x8EA6B4EE 0x2890F +0x8EA6B4EF 0x28E55 +0x8EA6B4F0 0x28E42 +0x8EA6B4F1 0x28E46 +0x8EA6B4F2 0x28E4B +0x8EA6B4F3 0x28E43 +0x8EA6B4F4 0x28E53 +0x8EA6B4F5 0x28E48 +0x8EA6B4F6 0x28E49 +0x8EA6B4F7 0x28E4A +0x8EA6B4F8 0x28E4E +0x8EA6B4F9 0x24BDE +0x8EA6B4FA 0x20691 +0x8EA6B4FB 0x2944B +0x8EA6B4FC 0x29680 +0x8EA6B4FD 0x29681 +0x8EA6B4FE 0x29683 +0x8EA6B5A1 0x2028A +0x8EA6B5A2 0x29682 +0x8EA6B5A3 0x22342 +0x8EA6B5A4 0x20922 +0x8EA6B5A5 0x20070 +0x8EA6B5A6 0x20071 +0x8EA6B5A7 0x200BC +0x8EA6B5A8 0x21D18 +0x8EA6B5A9 0x200BE +0x8EA6B5AA 0x200BA +0x8EA6B5AB 0x200F8 +0x8EA6B5AC 0x20137 +0x8EA6B5AD 0x20135 +0x8EA6B5AE 0x20AFC +0x8EA6B5AF 0x20156 +0x8EA6B5B0 0x20159 +0x8EA6B5B1 0x2015E +0x8EA6B5B2 0x2026D +0x8EA6B5B3 0x20291 +0x8EA6B5B4 0x20292 +0x8EA6B5B5 0x20268 +0x8EA6B5B6 0x20266 +0x8EA6B5B7 0x20273 +0x8EA6B5B8 0x3467 +0x8EA6B5B9 0x20296 +0x8EA6B5BA 0x2028B +0x8EA6B5BB 0x2028C +0x8EA6B5BC 0x20496 +0x8EA6B5BD 0x204EE +0x8EA6B5BE 0x2051C +0x8EA6B5BF 0x2051A +0x8EA6B5C0 0x20519 +0x8EA6B5C1 0x2051B +0x8EA6B5C2 0x2055D +0x8EA6B5C3 0x2055E +0x8EA6B5C4 0x2F818 +0x8EA6B5C5 0x205DC +0x8EA6B5C6 0x205E2 +0x8EA6B5C7 0x20652 +0x8EA6B5C8 0x20692 +0x8EA6B5C9 0x20730 +0x8EA6B5CA 0x20752 +0x8EA6B5CB 0x20742 +0x8EA6B5CC 0x20741 +0x8EA6B5CD 0x20745 +0x8EA6B5CE 0x20737 +0x8EA6B5CF 0x20740 +0x8EA6B5D0 0x2073F +0x8EA6B5D1 0x2073D +0x8EA6B5D2 0x20738 +0x8EA6B5D3 0x2073A +0x8EA6B5D4 0x20749 +0x8EA6B5D5 0x2086B +0x8EA6B5D6 0x20878 +0x8EA6B5D7 0x20879 +0x8EA6B5D8 0x2F826 +0x8EA6B5D9 0x2086C +0x8EA6B5DA 0x208E9 +0x8EA6B5DB 0x208E6 +0x8EA6B5DC 0x208E5 +0x8EA6B5DD 0x208EA +0x8EA6B5DE 0x208E7 +0x8EA6B5DF 0x208E8 +0x8EA6B5E0 0x2091F +0x8EA6B5E1 0x2094B +0x8EA6B5E2 0x2094A +0x8EA6B5E3 0x20953 +0x8EA6B5E4 0x20976 +0x8EA6B5E5 0x209A3 +0x8EA6B5E6 0x209A4 +0x8EA6B5E7 0x209F6 +0x8EA6B5E8 0x209F3 +0x8EA6B5E9 0x209F9 +0x8EA6B5EA 0x209F7 +0x8EA6B5EB 0x209FC +0x8EA6B5EC 0x20A1D +0x8EA6B5ED 0x20A6D +0x8EA6B5EE 0x20A71 +0x8EA6B5EF 0x20A6C +0x8EA6B5F0 0x20A6E +0x8EA6B5F1 0x20A70 +0x8EA6B5F2 0x20A6F +0x8EA6B5F3 0x20A67 +0x8EA6B5F4 0x20A68 +0x8EA6B5F5 0x20AFA +0x8EA6B5F6 0x20AF9 +0x8EA6B5F7 0x20B4E +0x8EA6B5F8 0x53DE +0x8EA6B5F9 0x20B4D +0x8EA6B5FA 0x20B4F +0x8EA6B5FB 0x20B4A +0x8EA6B5FC 0x20B4C +0x8EA6B5FD 0x3596 +0x8EA6B5FE 0x2F842 +0x8EA6B6A1 0x20CEE +0x8EA6B6A2 0x20CB2 +0x8EA6B6A3 0x20CC0 +0x8EA6B6A4 0x20CC1 +0x8EA6B6A5 0x20CF4 +0x8EA6B6A6 0x20CC8 +0x8EA6B6A7 0x20CC5 +0x8EA6B6A8 0x20CC6 +0x8EA6B6A9 0x20CAD +0x8EA6B6AA 0x211E2 +0x8EA6B6AB 0x211EA +0x8EA6B6AC 0x211E3 +0x8EA6B6AD 0x211E1 +0x8EA6B6AE 0x212F7 +0x8EA6B6AF 0x21301 +0x8EA6B6B0 0x21312 +0x8EA6B6B1 0x212F6 +0x8EA6B6B2 0x212F1 +0x8EA6B6B3 0x2131F +0x8EA6B6B4 0x212EE +0x8EA6B6B5 0x2F852 +0x8EA6B6B6 0x212F3 +0x8EA6B6B7 0x21315 +0x8EA6B6B8 0x21316 +0x8EA6B6B9 0x21317 +0x8EA6B6BA 0x212F8 +0x8EA6B6BB 0x21319 +0x8EA6B6BC 0x212F2 +0x8EA6B6BD 0x212F4 +0x8EA6B6BE 0x212F5 +0x8EA6B6BF 0x21313 +0x8EA6B6C0 0x21306 +0x8EA6B6C1 0x21526 +0x8EA6B6C2 0x21524 +0x8EA6B6C3 0x2155A +0x8EA6B6C4 0x22EC8 +0x8EA6B6C5 0x21597 +0x8EA6B6C6 0x21595 +0x8EA6B6C7 0x2159A +0x8EA6B6C8 0x2161F +0x8EA6B6C9 0x20AFB +0x8EA6B6CA 0x21629 +0x8EA6B6CB 0x21620 +0x8EA6B6CC 0x2F862 +0x8EA6B6CD 0x2F863 +0x8EA6B6CE 0x2174C +0x8EA6B6CF 0x21730 +0x8EA6B6D0 0x21738 +0x8EA6B6D1 0x2173D +0x8EA6B6D2 0x21751 +0x8EA6B6D3 0x2174F +0x8EA6B6D4 0x2174A +0x8EA6B6D5 0x21734 +0x8EA6B6D6 0x21736 +0x8EA6B6D7 0x5A30 +0x8EA6B6D8 0x2196A +0x8EA6B6D9 0x21968 +0x8EA6B6DA 0x21A1C +0x8EA6B6DB 0x21A0E +0x8EA6B6DC 0x21A1E +0x8EA6B6DD 0x3759 +0x8EA6B6DE 0x21A09 +0x8EA6B6DF 0x21A08 +0x8EA6B6E0 0x21A13 +0x8EA6B6E1 0x21A01 +0x8EA6B6E2 0x21A0F +0x8EA6B6E3 0x21A14 +0x8EA6B6E4 0x21A06 +0x8EA6B6E5 0x21A07 +0x8EA6B6E6 0x5BB2 +0x8EA6B6E7 0x2F873 +0x8EA6B6E8 0x3776 +0x8EA6B6E9 0x21B79 +0x8EA6B6EA 0x21BEA +0x8EA6B6EB 0x21BED +0x8EA6B6EC 0x21BE9 +0x8EA6B6ED 0x21BEE +0x8EA6B6EE 0x21C68 +0x8EA6B6EF 0x21C64 +0x8EA6B6F0 0x21C67 +0x8EA6B6F1 0x21C72 +0x8EA6B6F2 0x21C62 +0x8EA6B6F3 0x21C74 +0x8EA6B6F4 0x21C79 +0x8EA6B6F5 0x21D19 +0x8EA6B6F6 0x21D17 +0x8EA6B6F7 0x21D15 +0x8EA6B6F8 0x21D16 +0x8EA6B6F9 0x21DE6 +0x8EA6B6FA 0x262A4 +0x8EA6B6FB 0x21DEE +0x8EA6B6FC 0x37D2 +0x8EA6B6FD 0x21DDF +0x8EA6B6FE 0x21DE4 +0x8EA6B7A1 0x21DDA +0x8EA6B7A2 0x21DEA +0x8EA6B7A3 0x21DED +0x8EA6B7A4 0x21DE3 +0x8EA6B7A5 0x21DE9 +0x8EA6B7A6 0x21FFD +0x8EA6B7A7 0x20657 +0x8EA6B7A8 0x22021 +0x8EA6B7A9 0x220C6 +0x8EA6B7AA 0x220B8 +0x8EA6B7AB 0x220CB +0x8EA6B7AC 0x2F885 +0x8EA6B7AD 0x220BD +0x8EA6B7AE 0x220B5 +0x8EA6B7AF 0x220BB +0x8EA6B7B0 0x220BF +0x8EA6B7B1 0x220BE +0x8EA6B7B2 0x220B2 +0x8EA6B7B3 0x220C1 +0x8EA6B7B4 0x220C2 +0x8EA6B7B5 0x22199 +0x8EA6B7B6 0x221C6 +0x8EA6B7B7 0x2222C +0x8EA6B7B8 0x2222D +0x8EA6B7B9 0x22225 +0x8EA6B7BA 0x2221E +0x8EA6B7BB 0x2221F +0x8EA6B7BC 0x22223 +0x8EA6B7BD 0x22350 +0x8EA6B7BE 0x2234E +0x8EA6B7BF 0x2234D +0x8EA6B7C0 0x22352 +0x8EA6B7C1 0x223E9 +0x8EA6B7C2 0x223EC +0x8EA6B7C3 0x223E8 +0x8EA6B7C4 0x22458 +0x8EA6B7C5 0x2245C +0x8EA6B7C6 0x2245B +0x8EA6B7C7 0x2248F +0x8EA6B7C8 0x23972 +0x8EA6B7C9 0x224F6 +0x8EA6B7CA 0x22500 +0x8EA6B7CB 0x224FC +0x8EA6B7CC 0x224F8 +0x8EA6B7CD 0x224EA +0x8EA6B7CE 0x224FE +0x8EA6B7CF 0x224F7 +0x8EA6B7D0 0x224FD +0x8EA6B7D1 0x22670 +0x8EA6B7D2 0x22662 +0x8EA6B7D3 0x22644 +0x8EA6B7D4 0x3920 +0x8EA6B7D5 0x2264D +0x8EA6B7D6 0x2264C +0x8EA6B7D7 0x2263F +0x8EA6B7D8 0x22666 +0x8EA6B7D9 0x22635 +0x8EA6B7DA 0x3929 +0x8EA6B7DB 0x22634 +0x8EA6B7DC 0x2268D +0x8EA6B7DD 0x22684 +0x8EA6B7DE 0x3938 +0x8EA6B7DF 0x22686 +0x8EA6B7E0 0x22689 +0x8EA6B7E1 0x22687 +0x8EA6B7E2 0x22683 +0x8EA6B7E3 0x22675 +0x8EA6B7E4 0x22679 +0x8EA6B7E5 0x226AF +0x8EA6B7E6 0x226B0 +0x8EA6B7E7 0x229B7 +0x8EA6B7E8 0x229BB +0x8EA6B7E9 0x229B9 +0x8EA6B7EA 0x22A46 +0x8EA6B7EB 0x22A47 +0x8EA6B7EC 0x22A45 +0x8EA6B7ED 0x22AEA +0x8EA6B7EE 0x22AF6 +0x8EA6B7EF 0x22B68 +0x8EA6B7F0 0x22B39 +0x8EA6B7F1 0x2F8B9 +0x8EA6B7F2 0x22B3D +0x8EA6B7F3 0x22B3B +0x8EA6B7F4 0x22B4D +0x8EA6B7F5 0x22B30 +0x8EA6B7F6 0x22B4A +0x8EA6B7F7 0x22B3E +0x8EA6B7F8 0x22B40 +0x8EA6B7F9 0x22B4C +0x8EA6B7FA 0x22B47 +0x8EA6B7FB 0x22B38 +0x8EA6B7FC 0x22B52 +0x8EA6B7FD 0x22B3A +0x8EA6B7FE 0x22B53 +0x8EA6B8A1 0x22EC4 +0x8EA6B8A2 0x22EC1 +0x8EA6B8A3 0x22F1C +0x8EA6B8A4 0x22F1D +0x8EA6B8A5 0x22F2A +0x8EA6B8A6 0x22F1E +0x8EA6B8A7 0x22F2F +0x8EA6B8A8 0x22F22 +0x8EA6B8A9 0x22F2E +0x8EA6B8AA 0x22F25 +0x8EA6B8AB 0x3A89 +0x8EA6B8AC 0x3AB0 +0x8EA6B8AD 0x2304A +0x8EA6B8AE 0x2304B +0x8EA6B8AF 0x23076 +0x8EA6B8B0 0x3ABF +0x8EA6B8B1 0x230E8 +0x8EA6B8B2 0x230EF +0x8EA6B8B3 0x230E9 +0x8EA6B8B4 0x3AC5 +0x8EA6B8B5 0x230EA +0x8EA6B8B6 0x2F8CC +0x8EA6B8B7 0x3AEA +0x8EA6B8B8 0x2319B +0x8EA6B8B9 0x2319E +0x8EA6B8BA 0x23193 +0x8EA6B8BB 0x231A7 +0x8EA6B8BC 0x2319C +0x8EA6B8BD 0x231A0 +0x8EA6B8BE 0x2319A +0x8EA6B8BF 0x231AB +0x8EA6B8C0 0x231BE +0x8EA6B8C1 0x231A9 +0x8EA6B8C2 0x2332D +0x8EA6B8C3 0x2336E +0x8EA6B8C4 0x23444 +0x8EA6B8C5 0x2343D +0x8EA6B8C6 0x2343A +0x8EA6B8C7 0x23468 +0x8EA6B8C8 0x2343C +0x8EA6B8C9 0x2346A +0x8EA6B8CA 0x2F8E0 +0x8EA6B8CB 0x23438 +0x8EA6B8CC 0x23465 +0x8EA6B8CD 0x23439 +0x8EA6B8CE 0x2346D +0x8EA6B8CF 0x23436 +0x8EA6B8D0 0x2F8E3 +0x8EA6B8D1 0x2343E +0x8EA6B8D2 0x2347E +0x8EA6B8D3 0x23437 +0x8EA6B8D4 0x23899 +0x8EA6B8D5 0x238A9 +0x8EA6B8D6 0x238AD +0x8EA6B8D7 0x238A7 +0x8EA6B8D8 0x238A8 +0x8EA6B8D9 0x23966 +0x8EA6B8DA 0x23969 +0x8EA6B8DB 0x2396D +0x8EA6B8DC 0x23967 +0x8EA6B8DD 0x2396B +0x8EA6B8DE 0x2396A +0x8EA6B8DF 0x239EE +0x8EA6B8E0 0x23A01 +0x8EA6B8E1 0x23A03 +0x8EA6B8E2 0x239F4 +0x8EA6B8E3 0x239FB +0x8EA6B8E4 0x3C37 +0x8EA6B8E5 0x239F6 +0x8EA6B8E6 0x239FC +0x8EA6B8E7 0x23AF4 +0x8EA6B8E8 0x23B08 +0x8EA6B8E9 0x23B0A +0x8EA6B8EA 0x23B09 +0x8EA6B8EB 0x23B6D +0x8EA6B8EC 0x23B62 +0x8EA6B8ED 0x23B41 +0x8EA6B8EE 0x23B5E +0x8EA6B8EF 0x23B5C +0x8EA6B8F0 0x23CF3 +0x8EA6B8F1 0x23D26 +0x8EA6B8F2 0x3CE4 +0x8EA6B8F3 0x23D39 +0x8EA6B8F4 0x2F904 +0x8EA6B8F5 0x23D6C +0x8EA6B8F6 0x23D2B +0x8EA6B8F7 0x23D2E +0x8EA6B8F8 0x23D3B +0x8EA6B8F9 0x23D5E +0x8EA6B8FA 0x23DFB +0x8EA6B8FB 0x23D27 +0x8EA6B8FC 0x23D24 +0x8EA6B8FD 0x23D69 +0x8EA6B8FE 0x23D30 +0x8EA6B9A1 0x2F905 +0x8EA6B9A2 0x23D62 +0x8EA6B9A3 0x23D38 +0x8EA6B9A4 0x23D35 +0x8EA6B9A5 0x23D2A +0x8EA6B9A6 0x23D2C +0x8EA6B9A7 0x23D68 +0x8EA6B9A8 0x23D31 +0x8EA6B9A9 0x23D2F +0x8EA6B9AA 0x23D2D +0x8EA6B9AB 0x23D3A +0x8EA6B9AC 0x23D36 +0x8EA6B9AD 0x2F903 +0x8EA6B9AE 0x23D21 +0x8EA6B9AF 0x23D3C +0x8EA6B9B0 0x23D20 +0x8EA6B9B1 0x23D64 +0x8EA6B9B2 0x23D3E +0x8EA6B9B3 0x3CE8 +0x8EA6B9B4 0x241F7 +0x8EA6B9B5 0x24212 +0x8EA6B9B6 0x241F1 +0x8EA6B9B7 0x241F5 +0x8EA6B9B8 0x24222 +0x8EA6B9B9 0x241F2 +0x8EA6B9BA 0x241DF +0x8EA6B9BB 0x24215 +0x8EA6B9BC 0x24216 +0x8EA6B9BD 0x2457A +0x8EA6B9BE 0x24576 +0x8EA6B9BF 0x245BE +0x8EA6B9C0 0x3E20 +0x8EA6B9C1 0x245BD +0x8EA6B9C2 0x24609 +0x8EA6B9C3 0x24608 +0x8EA6B9C4 0x24657 +0x8EA6B9C5 0x247A3 +0x8EA6B9C6 0x247BF +0x8EA6B9C7 0x247B8 +0x8EA6B9C8 0x247AF +0x8EA6B9C9 0x2479C +0x8EA6B9CA 0x247A5 +0x8EA6B9CB 0x24772 +0x8EA6B9CC 0x24775 +0x8EA6B9CD 0x2479D +0x8EA6B9CE 0x24799 +0x8EA6B9CF 0x247B9 +0x8EA6B9D0 0x2494E +0x8EA6B9D1 0x24939 +0x8EA6B9D2 0x2493B +0x8EA6B9D3 0x24935 +0x8EA6B9D4 0x2493C +0x8EA6B9D5 0x24955 +0x8EA6B9D6 0x24AF0 +0x8EA6B9D7 0x24AF3 +0x8EA6B9D8 0x24AF4 +0x8EA6B9D9 0x24B3B +0x8EA6B9DA 0x24B3C +0x8EA6B9DB 0x24B3A +0x8EA6B9DC 0x24B36 +0x8EA6B9DD 0x24C07 +0x8EA6B9DE 0x20CEB +0x8EA6B9DF 0x24C55 +0x8EA6B9E0 0x24C50 +0x8EA6B9E1 0x24C4F +0x8EA6B9E2 0x24C52 +0x8EA6B9E3 0x24C56 +0x8EA6B9E4 0x200BD +0x8EA6B9E5 0x24C32 +0x8EA6B9E6 0x24D63 +0x8EA6B9E7 0x24D6B +0x8EA6B9E8 0x24D66 +0x8EA6B9E9 0x24D57 +0x8EA6B9EA 0x24D5D +0x8EA6B9EB 0x3F86 +0x8EA6B9EC 0x24D6D +0x8EA6B9ED 0x24D61 +0x8EA6B9EE 0x24D69 +0x8EA6B9EF 0x24D5A +0x8EA6B9F0 0x24D5C +0x8EA6B9F1 0x24D62 +0x8EA6B9F2 0x24F2A +0x8EA6B9F3 0x24F29 +0x8EA6B9F4 0x24F58 +0x8EA6B9F5 0x24F5A +0x8EA6B9F6 0x24FD7 +0x8EA6B9F7 0x24FDB +0x8EA6B9F8 0x24FDC +0x8EA6B9F9 0x24FDD +0x8EA6B9FA 0x24FD8 +0x8EA6B9FB 0x25054 +0x8EA6B9FC 0x2505B +0x8EA6B9FD 0x2505C +0x8EA6B9FE 0x25053 +0x8EA6BAA1 0x2504F +0x8EA6BAA2 0x25056 +0x8EA6BAA3 0x25050 +0x8EA6BAA4 0x2505A +0x8EA6BAA5 0x2506B +0x8EA6BAA6 0x25136 +0x8EA6BAA7 0x25153 +0x8EA6BAA8 0x2513A +0x8EA6BAA9 0x2513C +0x8EA6BAAA 0x2513E +0x8EA6BAAB 0x25149 +0x8EA6BAAC 0x25140 +0x8EA6BAAD 0x2F946 +0x8EA6BAAE 0x2F947 +0x8EA6BAAF 0x25364 +0x8EA6BAB0 0x25365 +0x8EA6BAB1 0x253B5 +0x8EA6BAB2 0x253B6 +0x8EA6BAB3 0x253B2 +0x8EA6BAB4 0x25448 +0x8EA6BAB5 0x2544A +0x8EA6BAB6 0x25472 +0x8EA6BAB7 0x25469 +0x8EA6BAB8 0x2545A +0x8EA6BAB9 0x2544C +0x8EA6BABA 0x2562C +0x8EA6BABB 0x25630 +0x8EA6BABC 0x2564B +0x8EA6BABD 0x25649 +0x8EA6BABE 0x25642 +0x8EA6BABF 0x25644 +0x8EA6BAC0 0x2564A +0x8EA6BAC1 0x2564F +0x8EA6BAC2 0x25792 +0x8EA6BAC3 0x2F957 +0x8EA6BAC4 0x25797 +0x8EA6BAC5 0x25780 +0x8EA6BAC6 0x25782 +0x8EA6BAC7 0x25786 +0x8EA6BAC8 0x25953 +0x8EA6BAC9 0x2595E +0x8EA6BACA 0x25952 +0x8EA6BACB 0x2595B +0x8EA6BACC 0x2594E +0x8EA6BACD 0x25A6D +0x8EA6BACE 0x25A6E +0x8EA6BACF 0x25AFA +0x8EA6BAD0 0x25AF6 +0x8EA6BAD1 0x25AFB +0x8EA6BAD2 0x25E33 +0x8EA6BAD3 0x25E3D +0x8EA6BAD4 0x25E37 +0x8EA6BAD5 0x25E3E +0x8EA6BAD6 0x25E35 +0x8EA6BAD7 0x25F9A +0x8EA6BAD8 0x25FAB +0x8EA6BAD9 0x25FA6 +0x8EA6BADA 0x25FB0 +0x8EA6BADB 0x25F99 +0x8EA6BADC 0x25FA0 +0x8EA6BADD 0x25F9E +0x8EA6BADE 0x25FA8 +0x8EA6BADF 0x25FA1 +0x8EA6BAE0 0x25FAA +0x8EA6BAE1 0x25FAD +0x8EA6BAE2 0x25FBB +0x8EA6BAE3 0x25F9C +0x8EA6BAE4 0x25FA5 +0x8EA6BAE5 0x200B3 +0x8EA6BAE6 0x26227 +0x8EA6BAE7 0x2628D +0x8EA6BAE8 0x2628E +0x8EA6BAE9 0x2628F +0x8EA6BAEA 0x26292 +0x8EA6BAEB 0x4356 +0x8EA6BAEC 0x26291 +0x8EA6BAED 0x262AD +0x8EA6BAEE 0x26357 +0x8EA6BAEF 0x26358 +0x8EA6BAF0 0x2635E +0x8EA6BAF1 0x2635D +0x8EA6BAF2 0x2635C +0x8EA6BAF3 0x2635B +0x8EA6BAF4 0x4367 +0x8EA6BAF5 0x2640A +0x8EA6BAF6 0x26403 +0x8EA6BAF7 0x2640E +0x8EA6BAF8 0x264B8 +0x8EA6BAF9 0x2654D +0x8EA6BAFA 0x2653F +0x8EA6BAFB 0x26547 +0x8EA6BAFC 0x2654B +0x8EA6BAFD 0x2654A +0x8EA6BAFE 0x2653D +0x8EA6BBA1 0x8038 +0x8EA6BBA2 0x26541 +0x8EA6BBA3 0x2654C +0x8EA6BBA4 0x8081 +0x8EA6BBA5 0x26662 +0x8EA6BBA6 0x26669 +0x8EA6BBA7 0x26661 +0x8EA6BBA8 0x43D1 +0x8EA6BBA9 0x266AA +0x8EA6BBAA 0x266A6 +0x8EA6BBAB 0x266AC +0x8EA6BBAC 0x266BD +0x8EA6BBAD 0x266BB +0x8EA6BBAE 0x266A4 +0x8EA6BBAF 0x266BA +0x8EA6BBB0 0x2669A +0x8EA6BBB1 0x43EB +0x8EA6BBB2 0x266A1 +0x8EA6BBB3 0x266C1 +0x8EA6BBB4 0x268E0 +0x8EA6BBB5 0x2690A +0x8EA6BBB6 0x26903 +0x8EA6BBB7 0x26906 +0x8EA6BBB8 0x26939 +0x8EA6BBB9 0x2693A +0x8EA6BBBA 0x26936 +0x8EA6BBBB 0x2695B +0x8EA6BBBC 0x2695F +0x8EA6BBBD 0x2695E +0x8EA6BBBE 0x26967 +0x8EA6BBBF 0x26961 +0x8EA6BBC0 0x26962 +0x8EA6BBC1 0x2695D +0x8EA6BBC2 0x269CA +0x8EA6BBC3 0x269CC +0x8EA6BBC4 0x269CE +0x8EA6BBC5 0x26A18 +0x8EA6BBC6 0x26A1D +0x8EA6BBC7 0x26A1F +0x8EA6BBC8 0x26A20 +0x8EA6BBC9 0x26A17 +0x8EA6BBCA 0x26A15 +0x8EA6BBCB 0x26B1F +0x8EA6BBCC 0x26B27 +0x8EA6BBCD 0x26B26 +0x8EA6BBCE 0x21E10 +0x8EA6BBCF 0x26B8B +0x8EA6BBD0 0x26BAE +0x8EA6BBD1 0x26B8A +0x8EA6BBD2 0x2F999 +0x8EA6BBD3 0x26B92 +0x8EA6BBD4 0x26B89 +0x8EA6BBD5 0x26B87 +0x8EA6BBD6 0x44B6 +0x8EA6BBD7 0x26B8F +0x8EA6BBD8 0x26B84 +0x8EA6BBD9 0x26B83 +0x8EA6BBDA 0x26B8C +0x8EA6BBDB 0x26B93 +0x8EA6BBDC 0x26B8D +0x8EA6BBDD 0x26B98 +0x8EA6BBDE 0x26B7D +0x8EA6BBDF 0x26B7E +0x8EA6BBE0 0x26BD2 +0x8EA6BBE1 0x26B80 +0x8EA6BBE2 0x26B99 +0x8EA6BBE3 0x271AC +0x8EA6BBE4 0x27250 +0x8EA6BBE5 0x27255 +0x8EA6BBE6 0x27242 +0x8EA6BBE7 0x2723F +0x8EA6BBE8 0x2723C +0x8EA6BBE9 0x45A3 +0x8EA6BBEA 0x2724C +0x8EA6BBEB 0x27249 +0x8EA6BBEC 0x27257 +0x8EA6BBED 0x27258 +0x8EA6BBEE 0x2724F +0x8EA6BBEF 0x2725C +0x8EA6BBF0 0x27247 +0x8EA6BBF1 0x2F9B7 +0x8EA6BBF2 0x275AB +0x8EA6BBF3 0x4610 +0x8EA6BBF4 0x275AF +0x8EA6BBF5 0x275AD +0x8EA6BBF6 0x275E8 +0x8EA6BBF7 0x275E7 +0x8EA6BBF8 0x27630 +0x8EA6BBF9 0x27626 +0x8EA6BBFA 0x2762F +0x8EA6BBFB 0x27628 +0x8EA6BBFC 0x2762B +0x8EA6BBFD 0x2761D +0x8EA6BBFE 0x2762D +0x8EA6BCA1 0x27620 +0x8EA6BCA2 0x2762A +0x8EA6BCA3 0x2762C +0x8EA6BCA4 0x27635 +0x8EA6BCA5 0x27621 +0x8EA6BCA6 0x27623 +0x8EA6BCA7 0x27624 +0x8EA6BCA8 0x27636 +0x8EA6BCA9 0x27637 +0x8EA6BCAA 0x277E9 +0x8EA6BCAB 0x278BA +0x8EA6BCAC 0x278B8 +0x8EA6BCAD 0x2F9CC +0x8EA6BCAE 0x2796D +0x8EA6BCAF 0x2796A +0x8EA6BCB0 0x27968 +0x8EA6BCB1 0x27969 +0x8EA6BCB2 0x2796B +0x8EA6BCB3 0x27961 +0x8EA6BCB4 0x27BDC +0x8EA6BCB5 0x27BDB +0x8EA6BCB6 0x27C2D +0x8EA6BCB7 0x27C2C +0x8EA6BCB8 0x27CA2 +0x8EA6BCB9 0x27D2B +0x8EA6BCBA 0x27D32 +0x8EA6BCBB 0x2F9D7 +0x8EA6BCBC 0x27E94 +0x8EA6BCBD 0x27E92 +0x8EA6BCBE 0x27E90 +0x8EA6BCBF 0x27FC9 +0x8EA6BCC0 0x27FC4 +0x8EA6BCC1 0x27FC1 +0x8EA6BCC2 0x27FC3 +0x8EA6BCC3 0x27FCD +0x8EA6BCC4 0x28214 +0x8EA6BCC5 0x282A7 +0x8EA6BCC6 0x282AF +0x8EA6BCC7 0x282AA +0x8EA6BCC8 0x2840D +0x8EA6BCC9 0x28454 +0x8EA6BCCA 0x2845B +0x8EA6BCCB 0x28461 +0x8EA6BCCC 0x284AE +0x8EA6BCCD 0x284B3 +0x8EA6BCCE 0x284C0 +0x8EA6BCCF 0x284C4 +0x8EA6BCD0 0x284BF +0x8EA6BCD1 0x284CB +0x8EA6BCD2 0x284AD +0x8EA6BCD3 0x284A7 +0x8EA6BCD4 0x284A4 +0x8EA6BCD5 0x284BD +0x8EA6BCD6 0x284AF +0x8EA6BCD7 0x284B2 +0x8EA6BCD8 0x284A5 +0x8EA6BCD9 0x286E7 +0x8EA6BCDA 0x286E0 +0x8EA6BCDB 0x286CE +0x8EA6BCDC 0x286DE +0x8EA6BCDD 0x286D5 +0x8EA6BCDE 0x286DF +0x8EA6BCDF 0x286D9 +0x8EA6BCE0 0x287F2 +0x8EA6BCE1 0x28923 +0x8EA6BCE2 0x28940 +0x8EA6BCE3 0x491B +0x8EA6BCE4 0x2893E +0x8EA6BCE5 0x4987 +0x8EA6BCE6 0x28CCF +0x8EA6BCE7 0x20B54 +0x8EA6BCE8 0x28E5B +0x8EA6BCE9 0x28E58 +0x8EA6BCEA 0x28E62 +0x8EA6BCEB 0x28E5F +0x8EA6BCEC 0x28E67 +0x8EA6BCED 0x28E63 +0x8EA6BCEE 0x28E5E +0x8EA6BCEF 0x28E60 +0x8EA6BCF0 0x28F85 +0x8EA6BCF1 0x28F86 +0x8EA6BCF2 0x28F87 +0x8EA6BCF3 0x291E8 +0x8EA6BCF4 0x291E6 +0x8EA6BCF5 0x29671 +0x8EA6BCF6 0x29685 +0x8EA6BCF7 0x2FA02 +0x8EA6BCF8 0x29686 +0x8EA6BCF9 0x29810 +0x8EA6BCFA 0x209F8 +0x8EA6BCFB 0x200BF +0x8EA6BCFC 0x20B61 +0x8EA6BCFD 0x200FE +0x8EA6BCFE 0x200FC +0x8EA6BDA1 0x20139 +0x8EA6BDA2 0x20161 +0x8EA6BDA3 0x20160 +0x8EA6BDA4 0x202E2 +0x8EA6BDA5 0x202EA +0x8EA6BDA6 0x202E3 +0x8EA6BDA7 0x202B4 +0x8EA6BDA8 0x202AE +0x8EA6BDA9 0x202BE +0x8EA6BDAA 0x202B8 +0x8EA6BDAB 0x202A8 +0x8EA6BDAC 0x202AA +0x8EA6BDAD 0x202A9 +0x8EA6BDAE 0x202B3 +0x8EA6BDAF 0x202D5 +0x8EA6BDB0 0x202AD +0x8EA6BDB1 0x202B9 +0x8EA6BDB2 0x202BB +0x8EA6BDB3 0x202B1 +0x8EA6BDB4 0x202C2 +0x8EA6BDB5 0x2F808 +0x8EA6BDB6 0x202EB +0x8EA6BDB7 0x202BA +0x8EA6BDB8 0x202D2 +0x8EA6BDB9 0x202D4 +0x8EA6BDBA 0x204F1 +0x8EA6BDBB 0x2051D +0x8EA6BDBC 0x2F812 +0x8EA6BDBD 0x20562 +0x8EA6BDBE 0x2058C +0x8EA6BDBF 0x205E6 +0x8EA6BDC0 0x205E7 +0x8EA6BDC1 0x2065A +0x8EA6BDC2 0x20658 +0x8EA6BDC3 0x20659 +0x8EA6BDC4 0x20696 +0x8EA6BDC5 0x20697 +0x8EA6BDC6 0x20761 +0x8EA6BDC7 0x20767 +0x8EA6BDC8 0x20771 +0x8EA6BDC9 0x20765 +0x8EA6BDCA 0x2077D +0x8EA6BDCB 0x2077E +0x8EA6BDCC 0x2087D +0x8EA6BDCD 0x20884 +0x8EA6BDCE 0x2087C +0x8EA6BDCF 0x2087E +0x8EA6BDD0 0x2087F +0x8EA6BDD1 0x20880 +0x8EA6BDD2 0x208EF +0x8EA6BDD3 0x208F4 +0x8EA6BDD4 0x2091E +0x8EA6BDD5 0x2094E +0x8EA6BDD6 0x209FB +0x8EA6BDD7 0x209FA +0x8EA6BDD8 0x209FD +0x8EA6BDD9 0x2F831 +0x8EA6BDDA 0x2F832 +0x8EA6BDDB 0x20A79 +0x8EA6BDDC 0x20A7C +0x8EA6BDDD 0x20A7D +0x8EA6BDDE 0x20A84 +0x8EA6BDDF 0x20A7B +0x8EA6BDE0 0x20A78 +0x8EA6BDE1 0x3557 +0x8EA6BDE2 0x20B5E +0x8EA6BDE3 0x20B5A +0x8EA6BDE4 0x20B5C +0x8EA6BDE5 0x20B59 +0x8EA6BDE6 0x20B55 +0x8EA6BDE7 0x20B63 +0x8EA6BDE8 0x20B56 +0x8EA6BDE9 0x20B5F +0x8EA6BDEA 0x20B60 +0x8EA6BDEB 0x20B5B +0x8EA6BDEC 0x20D4A +0x8EA6BDED 0x20D65 +0x8EA6BDEE 0x20DB3 +0x8EA6BDEF 0x20D2C +0x8EA6BDF0 0x20D77 +0x8EA6BDF1 0x20D3D +0x8EA6BDF2 0x20D52 +0x8EA6BDF3 0x20D61 +0x8EA6BDF4 0x20D2A +0x8EA6BDF5 0x20D3E +0x8EA6BDF6 0x20D34 +0x8EA6BDF7 0x20D29 +0x8EA6BDF8 0x20DB2 +0x8EA6BDF9 0x20DAD +0x8EA6BDFA 0x20D40 +0x8EA6BDFB 0x20D53 +0x8EA6BDFC 0x2F844 +0x8EA6BDFD 0x20D3F +0x8EA6BDFE 0x20D41 +0x8EA6BEA1 0x20D72 +0x8EA6BEA2 0x211F6 +0x8EA6BEA3 0x211F5 +0x8EA6BEA4 0x211F4 +0x8EA6BEA5 0x211F2 +0x8EA6BEA6 0x211F9 +0x8EA6BEA7 0x21327 +0x8EA6BEA8 0x21354 +0x8EA6BEA9 0x21355 +0x8EA6BEAA 0x2132E +0x8EA6BEAB 0x2F854 +0x8EA6BEAC 0x2F853 +0x8EA6BEAD 0x2132C +0x8EA6BEAE 0x21338 +0x8EA6BEAF 0x21339 +0x8EA6BEB0 0x21331 +0x8EA6BEB1 0x2134F +0x8EA6BEB2 0x21373 +0x8EA6BEB3 0x21330 +0x8EA6BEB4 0x2132B +0x8EA6BEB5 0x21351 +0x8EA6BEB6 0x2152C +0x8EA6BEB7 0x2155B +0x8EA6BEB8 0x2155C +0x8EA6BEB9 0x21568 +0x8EA6BEBA 0x2156C +0x8EA6BEBB 0x2156B +0x8EA6BEBC 0x21569 +0x8EA6BEBD 0x2159F +0x8EA6BEBE 0x21638 +0x8EA6BEBF 0x2163C +0x8EA6BEC0 0x2163A +0x8EA6BEC1 0x21635 +0x8EA6BEC2 0x369D +0x8EA6BEC3 0x21639 +0x8EA6BEC4 0x21636 +0x8EA6BEC5 0x2163B +0x8EA6BEC6 0x21760 +0x8EA6BEC7 0x21761 +0x8EA6BEC8 0x21763 +0x8EA6BEC9 0x21764 +0x8EA6BECA 0x21794 +0x8EA6BECB 0x21793 +0x8EA6BECC 0x2175E +0x8EA6BECD 0x21768 +0x8EA6BECE 0x2176A +0x8EA6BECF 0x21765 +0x8EA6BED0 0x2F866 +0x8EA6BED1 0x21790 +0x8EA6BED2 0x2175F +0x8EA6BED3 0x21772 +0x8EA6BED4 0x2F865 +0x8EA6BED5 0x21A3C +0x8EA6BED6 0x21A27 +0x8EA6BED7 0x21A24 +0x8EA6BED8 0x21A26 +0x8EA6BED9 0x21A25 +0x8EA6BEDA 0x375F +0x8EA6BEDB 0x21A28 +0x8EA6BEDC 0x21A36 +0x8EA6BEDD 0x21B31 +0x8EA6BEDE 0x21B30 +0x8EA6BEDF 0x21B34 +0x8EA6BEE0 0x21B81 +0x8EA6BEE1 0x21B7D +0x8EA6BEE2 0x21B82 +0x8EA6BEE3 0x21B80 +0x8EA6BEE4 0x3779 +0x8EA6BEE5 0x202D3 +0x8EA6BEE6 0x21BF2 +0x8EA6BEE7 0x21C66 +0x8EA6BEE8 0x21C8C +0x8EA6BEE9 0x21C7B +0x8EA6BEEA 0x21C83 +0x8EA6BEEB 0x3798 +0x8EA6BEEC 0x21C8E +0x8EA6BEED 0x21C7A +0x8EA6BEEE 0x21C92 +0x8EA6BEEF 0x21C91 +0x8EA6BEF0 0x21C82 +0x8EA6BEF1 0x21D1B +0x8EA6BEF2 0x21D1C +0x8EA6BEF3 0x21E27 +0x8EA6BEF4 0x21E21 +0x8EA6BEF5 0x37DC +0x8EA6BEF6 0x5D2B +0x8EA6BEF7 0x21E43 +0x8EA6BEF8 0x37DF +0x8EA6BEF9 0x21E18 +0x8EA6BEFA 0x21E7B +0x8EA6BEFB 0x21E1A +0x8EA6BEFC 0x21E4B +0x8EA6BEFD 0x21E4A +0x8EA6BEFE 0x21E4D +0x8EA6BFA1 0x21E4F +0x8EA6BFA2 0x21E19 +0x8EA6BFA3 0x21E35 +0x8EA6BFA4 0x21E13 +0x8EA6BFA5 0x21E52 +0x8EA6BFA6 0x21E14 +0x8EA6BFA7 0x21E1E +0x8EA6BFA8 0x21E2C +0x8EA6BFA9 0x21E20 +0x8EA6BFAA 0x21E22 +0x8EA6BFAB 0x21E12 +0x8EA6BFAC 0x21E1F +0x8EA6BFAD 0x22000 +0x8EA6BFAE 0x22023 +0x8EA6BFAF 0x22040 +0x8EA6BFB0 0x22043 +0x8EA6BFB1 0x220E4 +0x8EA6BFB2 0x220DB +0x8EA6BFB3 0x220EA +0x8EA6BFB4 0x220DD +0x8EA6BFB5 0x220CC +0x8EA6BFB6 0x220D9 +0x8EA6BFB7 0x220E8 +0x8EA6BFB8 0x220F6 +0x8EA6BFB9 0x220E3 +0x8EA6BFBA 0x220D3 +0x8EA6BFBB 0x220DA +0x8EA6BFBC 0x220D6 +0x8EA6BFBD 0x220E7 +0x8EA6BFBE 0x2223A +0x8EA6BFBF 0x2223F +0x8EA6BFC0 0x22240 +0x8EA6BFC1 0x22248 +0x8EA6BFC2 0x22259 +0x8EA6BFC3 0x22237 +0x8EA6BFC4 0x22244 +0x8EA6BFC5 0x2F88C +0x8EA6BFC6 0x2F88B +0x8EA6BFC7 0x22255 +0x8EA6BFC8 0x22239 +0x8EA6BFC9 0x22354 +0x8EA6BFCA 0x22355 +0x8EA6BFCB 0x22356 +0x8EA6BFCC 0x22357 +0x8EA6BFCD 0x22358 +0x8EA6BFCE 0x22359 +0x8EA6BFCF 0x2238D +0x8EA6BFD0 0x223F2 +0x8EA6BFD1 0x223F8 +0x8EA6BFD2 0x223F5 +0x8EA6BFD3 0x223F6 +0x8EA6BFD4 0x223FC +0x8EA6BFD5 0x223FE +0x8EA6BFD6 0x223F1 +0x8EA6BFD7 0x223FD +0x8EA6BFD8 0x2245E +0x8EA6BFD9 0x22496 +0x8EA6BFDA 0x22497 +0x8EA6BFDB 0x2249C +0x8EA6BFDC 0x2249B +0x8EA6BFDD 0x22495 +0x8EA6BFDE 0x2F89A +0x8EA6BFDF 0x2251A +0x8EA6BFE0 0x22509 +0x8EA6BFE1 0x22504 +0x8EA6BFE2 0x2250E +0x8EA6BFE3 0x2251C +0x8EA6BFE4 0x22518 +0x8EA6BFE5 0x2250D +0x8EA6BFE6 0x22510 +0x8EA6BFE7 0x2250C +0x8EA6BFE8 0x22503 +0x8EA6BFE9 0x2267B +0x8EA6BFEA 0x226A6 +0x8EA6BFEB 0x22677 +0x8EA6BFEC 0x22688 +0x8EA6BFED 0x22674 +0x8EA6BFEE 0x226DA +0x8EA6BFEF 0x22676 +0x8EA6BFF0 0x22678 +0x8EA6BFF1 0x2268A +0x8EA6BFF2 0x2268F +0x8EA6BFF3 0x2267D +0x8EA6BFF4 0x22690 +0x8EA6BFF5 0x226ED +0x8EA6BFF6 0x226D9 +0x8EA6BFF7 0x226D0 +0x8EA6BFF8 0x2271A +0x8EA6BFF9 0x226D7 +0x8EA6BFFA 0x226E2 +0x8EA6BFFB 0x226E1 +0x8EA6BFFC 0x226C5 +0x8EA6BFFD 0x226E0 +0x8EA6BFFE 0x226CA +0x8EA6C0A1 0x22725 +0x8EA6C0A2 0x226CC +0x8EA6C0A3 0x2F8B3 +0x8EA6C0A4 0x229C6 +0x8EA6C0A5 0x229C1 +0x8EA6C0A6 0x22A4D +0x8EA6C0A7 0x22B4B +0x8EA6C0A8 0x22B64 +0x8EA6C0A9 0x22B95 +0x8EA6C0AA 0x22B99 +0x8EA6C0AB 0x2F8BC +0x8EA6C0AC 0x22B94 +0x8EA6C0AD 0x22BA2 +0x8EA6C0AE 0x22BAE +0x8EA6C0AF 0x22B9E +0x8EA6C0B0 0x22BA7 +0x8EA6C0B1 0x22B86 +0x8EA6C0B2 0x39FD +0x8EA6C0B3 0x22BA4 +0x8EA6C0B4 0x22B91 +0x8EA6C0B5 0x22B93 +0x8EA6C0B6 0x2F8BB +0x8EA6C0B7 0x22B88 +0x8EA6C0B8 0x22ECD +0x8EA6C0B9 0x22ECA +0x8EA6C0BA 0x22F3F +0x8EA6C0BB 0x22F40 +0x8EA6C0BC 0x22F46 +0x8EA6C0BD 0x22F41 +0x8EA6C0BE 0x22F45 +0x8EA6C0BF 0x22F58 +0x8EA6C0C0 0x22F3B +0x8EA6C0C1 0x22F48 +0x8EA6C0C2 0x2304E +0x8EA6C0C3 0x23052 +0x8EA6C0C4 0x2304F +0x8EA6C0C5 0x2307B +0x8EA6C0C6 0x2307A +0x8EA6C0C7 0x230A0 +0x8EA6C0C8 0x2309F +0x8EA6C0C9 0x230FB +0x8EA6C0CA 0x230F7 +0x8EA6C0CB 0x231B8 +0x8EA6C0CC 0x231B9 +0x8EA6C0CD 0x231BB +0x8EA6C0CE 0x231B7 +0x8EA6C0CF 0x3AF4 +0x8EA6C0D0 0x231BA +0x8EA6C0D1 0x3AEF +0x8EA6C0D2 0x231DA +0x8EA6C0D3 0x231B5 +0x8EA6C0D4 0x231BF +0x8EA6C0D5 0x231BC +0x8EA6C0D6 0x231C0 +0x8EA6C0D7 0x2F8D3 +0x8EA6C0D8 0x2F8D9 +0x8EA6C0D9 0x23375 +0x8EA6C0DA 0x23379 +0x8EA6C0DB 0x23376 +0x8EA6C0DC 0x23435 +0x8EA6C0DD 0x23440 +0x8EA6C0DE 0x234C0 +0x8EA6C0DF 0x23481 +0x8EA6C0E0 0x234AD +0x8EA6C0E1 0x234AF +0x8EA6C0E2 0x234AC +0x8EA6C0E3 0x2348F +0x8EA6C0E4 0x234A8 +0x8EA6C0E5 0x234AA +0x8EA6C0E6 0x234A9 +0x8EA6C0E7 0x23488 +0x8EA6C0E8 0x2347F +0x8EA6C0E9 0x23480 +0x8EA6C0EA 0x234BC +0x8EA6C0EB 0x238AE +0x8EA6C0EC 0x238BB +0x8EA6C0ED 0x238BD +0x8EA6C0EE 0x3C31 +0x8EA6C0EF 0x23978 +0x8EA6C0F0 0x23974 +0x8EA6C0F1 0x23A0C +0x8EA6C0F2 0x23A11 +0x8EA6C0F3 0x23A08 +0x8EA6C0F4 0x23A06 +0x8EA6C0F5 0x23A10 +0x8EA6C0F6 0x23A8F +0x8EA6C0F7 0x23A90 +0x8EA6C0F8 0x23A8D +0x8EA6C0F9 0x23A8E +0x8EA6C0FA 0x23A96 +0x8EA6C0FB 0x23A95 +0x8EA6C0FC 0x23B0B +0x8EA6C0FD 0x23B0C +0x8EA6C0FE 0x23B7C +0x8EA6C1A1 0x23B73 +0x8EA6C1A2 0x23B75 +0x8EA6C1A3 0x23B76 +0x8EA6C1A4 0x23B7D +0x8EA6C1A5 0x23B78 +0x8EA6C1A6 0x23B71 +0x8EA6C1A7 0x23C4B +0x8EA6C1A8 0x23C4E +0x8EA6C1A9 0x23D33 +0x8EA6C1AA 0x23D32 +0x8EA6C1AB 0x3D03 +0x8EA6C1AC 0x23D91 +0x8EA6C1AD 0x23DE7 +0x8EA6C1AE 0x23DE9 +0x8EA6C1AF 0x23DA2 +0x8EA6C1B0 0x23D94 +0x8EA6C1B1 0x23D87 +0x8EA6C1B2 0x23DA3 +0x8EA6C1B3 0x23DDD +0x8EA6C1B4 0x23D7B +0x8EA6C1B5 0x23D83 +0x8EA6C1B6 0x23D81 +0x8EA6C1B7 0x23DDF +0x8EA6C1B8 0x23D7C +0x8EA6C1B9 0x23DE4 +0x8EA6C1BA 0x23DE2 +0x8EA6C1BB 0x23D93 +0x8EA6C1BC 0x23D7D +0x8EA6C1BD 0x23DBF +0x8EA6C1BE 0x23D9B +0x8EA6C1BF 0x23D8E +0x8EA6C1C0 0x23D9F +0x8EA6C1C1 0x3D09 +0x8EA6C1C2 0x23D8C +0x8EA6C1C3 0x23D7F +0x8EA6C1C4 0x23D9C +0x8EA6C1C5 0x23D84 +0x8EA6C1C6 0x23D42 +0x8EA6C1C7 0x23DE6 +0x8EA6C1C8 0x24251 +0x8EA6C1C9 0x2424A +0x8EA6C1CA 0x24264 +0x8EA6C1CB 0x24225 +0x8EA6C1CC 0x2422F +0x8EA6C1CD 0x2422E +0x8EA6C1CE 0x2422B +0x8EA6C1CF 0x24228 +0x8EA6C1D0 0x24232 +0x8EA6C1D1 0x2422D +0x8EA6C1D2 0x24231 +0x8EA6C1D3 0x24239 +0x8EA6C1D4 0x2422C +0x8EA6C1D5 0x24261 +0x8EA6C1D6 0x24511 +0x8EA6C1D7 0x24510 +0x8EA6C1D8 0x24512 +0x8EA6C1D9 0x24553 +0x8EA6C1DA 0x24555 +0x8EA6C1DB 0x2457B +0x8EA6C1DC 0x24581 +0x8EA6C1DD 0x2457D +0x8EA6C1DE 0x2457C +0x8EA6C1DF 0x245C2 +0x8EA6C1E0 0x245C5 +0x8EA6C1E1 0x2F922 +0x8EA6C1E2 0x245C4 +0x8EA6C1E3 0x2F923 +0x8EA6C1E4 0x2466B +0x8EA6C1E5 0x24668 +0x8EA6C1E6 0x3E3E +0x8EA6C1E7 0x2465C +0x8EA6C1E8 0x2465D +0x8EA6C1E9 0x2466A +0x8EA6C1EA 0x2F924 +0x8EA6C1EB 0x24C76 +0x8EA6C1EC 0x24776 +0x8EA6C1ED 0x3E77 +0x8EA6C1EE 0x247C4 +0x8EA6C1EF 0x247CB +0x8EA6C1F0 0x247C8 +0x8EA6C1F1 0x247D4 +0x8EA6C1F2 0x247D5 +0x8EA6C1F3 0x247C9 +0x8EA6C1F4 0x247D7 +0x8EA6C1F5 0x3E7B +0x8EA6C1F6 0x24978 +0x8EA6C1F7 0x2495A +0x8EA6C1F8 0x2495B +0x8EA6C1F9 0x2495C +0x8EA6C1FA 0x24956 +0x8EA6C1FB 0x24958 +0x8EA6C1FC 0x24971 +0x8EA6C1FD 0x269D4 +0x8EA6C1FE 0x24B40 +0x8EA6C2A1 0x2F933 +0x8EA6C2A2 0x24B3F +0x8EA6C2A3 0x24B43 +0x8EA6C2A4 0x24B41 +0x8EA6C2A5 0x24BE2 +0x8EA6C2A6 0x24BE0 +0x8EA6C2A7 0x24BE3 +0x8EA6C2A8 0x24C66 +0x8EA6C2A9 0x24C73 +0x8EA6C2AA 0x24C6C +0x8EA6C2AB 0x24C71 +0x8EA6C2AC 0x24C6A +0x8EA6C2AD 0x24C6D +0x8EA6C2AE 0x24C6E +0x8EA6C2AF 0x24C6B +0x8EA6C2B0 0x24D8C +0x8EA6C2B1 0x24D77 +0x8EA6C2B2 0x2F93A +0x8EA6C2B3 0x24D7F +0x8EA6C2B4 0x24D89 +0x8EA6C2B5 0x24D7A +0x8EA6C2B6 0x24D85 +0x8EA6C2B7 0x24D78 +0x8EA6C2B8 0x24D8A +0x8EA6C2B9 0x24D86 +0x8EA6C2BA 0x24F2C +0x8EA6C2BB 0x24F67 +0x8EA6C2BC 0x24F5B +0x8EA6C2BD 0x24FE5 +0x8EA6C2BE 0x24FE1 +0x8EA6C2BF 0x25061 +0x8EA6C2C0 0x25069 +0x8EA6C2C1 0x2506A +0x8EA6C2C2 0x25165 +0x8EA6C2C3 0x2516D +0x8EA6C2C4 0x25163 +0x8EA6C2C5 0x25186 +0x8EA6C2C6 0x2515C +0x8EA6C2C7 0x25162 +0x8EA6C2C8 0x2F948 +0x8EA6C2C9 0x25179 +0x8EA6C2CA 0x25169 +0x8EA6C2CB 0x25170 +0x8EA6C2CC 0x25176 +0x8EA6C2CD 0x2515D +0x8EA6C2CE 0x25187 +0x8EA6C2CF 0x2516E +0x8EA6C2D0 0x25171 +0x8EA6C2D1 0x2517C +0x8EA6C2D2 0x25173 +0x8EA6C2D3 0x2515B +0x8EA6C2D4 0x2516B +0x8EA6C2D5 0x253BF +0x8EA6C2D6 0x253C1 +0x8EA6C2D7 0x253BD +0x8EA6C2D8 0x253C9 +0x8EA6C2D9 0x253BC +0x8EA6C2DA 0x253C2 +0x8EA6C2DB 0x253C0 +0x8EA6C2DC 0x25492 +0x8EA6C2DD 0x254A9 +0x8EA6C2DE 0x2548F +0x8EA6C2DF 0x25476 +0x8EA6C2E0 0x2547B +0x8EA6C2E1 0x25475 +0x8EA6C2E2 0x254A4 +0x8EA6C2E3 0x25664 +0x8EA6C2E4 0x2573D +0x8EA6C2E5 0x257AF +0x8EA6C2E6 0x413A +0x8EA6C2E7 0x2F958 +0x8EA6C2E8 0x2579D +0x8EA6C2E9 0x25799 +0x8EA6C2EA 0x257B1 +0x8EA6C2EB 0x25963 +0x8EA6C2EC 0x25962 +0x8EA6C2ED 0x25964 +0x8EA6C2EE 0x25969 +0x8EA6C2EF 0x41A0 +0x8EA6C2F0 0x25A75 +0x8EA6C2F1 0x25A73 +0x8EA6C2F2 0x25A71 +0x8EA6C2F3 0x25A74 +0x8EA6C2F4 0x25B0C +0x8EA6C2F5 0x25B16 +0x8EA6C2F6 0x41E5 +0x8EA6C2F7 0x25B11 +0x8EA6C2F8 0x25B1F +0x8EA6C2F9 0x25B1A +0x8EA6C2FA 0x25B0D +0x8EA6C2FB 0x25B1B +0x8EA6C2FC 0x25B13 +0x8EA6C2FD 0x25E4E +0x8EA6C2FE 0x25E55 +0x8EA6C3A1 0x25E50 +0x8EA6C3A2 0x427D +0x8EA6C3A3 0x25FD2 +0x8EA6C3A4 0x25FD3 +0x8EA6C3A5 0x25FD1 +0x8EA6C3A6 0x25FF1 +0x8EA6C3A7 0x25FDC +0x8EA6C3A8 0x25FC8 +0x8EA6C3A9 0x25FCC +0x8EA6C3AA 0x25FD0 +0x8EA6C3AB 0x25FCF +0x8EA6C3AC 0x25FDF +0x8EA6C3AD 0x2622B +0x8EA6C3AE 0x2622E +0x8EA6C3AF 0x2622D +0x8EA6C3B0 0x2629D +0x8EA6C3B1 0x2629E +0x8EA6C3B2 0x2629F +0x8EA6C3B3 0x262A9 +0x8EA6C3B4 0x262A0 +0x8EA6C3B5 0x26298 +0x8EA6C3B6 0x262A1 +0x8EA6C3B7 0x262AB +0x8EA6C3B8 0x262AF +0x8EA6C3B9 0x2636E +0x8EA6C3BA 0x2635F +0x8EA6C3BB 0x2635A +0x8EA6C3BC 0x436D +0x8EA6C3BD 0x26365 +0x8EA6C3BE 0x26368 +0x8EA6C3BF 0x26372 +0x8EA6C3C0 0x26417 +0x8EA6C3C1 0x26416 +0x8EA6C3C2 0x26418 +0x8EA6C3C3 0x26419 +0x8EA6C3C4 0x2641A +0x8EA6C3C5 0x26422 +0x8EA6C3C6 0x2641B +0x8EA6C3C7 0x2641C +0x8EA6C3C8 0x264BE +0x8EA6C3C9 0x264EE +0x8EA6C3CA 0x2655A +0x8EA6C3CB 0x26550 +0x8EA6C3CC 0x26558 +0x8EA6C3CD 0x26554 +0x8EA6C3CE 0x26557 +0x8EA6C3CF 0x26556 +0x8EA6C3D0 0x26615 +0x8EA6C3D1 0x2669B +0x8EA6C3D2 0x26693 +0x8EA6C3D3 0x26692 +0x8EA6C3D4 0x26672 +0x8EA6C3D5 0x26698 +0x8EA6C3D6 0x26699 +0x8EA6C3D7 0x266DF +0x8EA6C3D8 0x43F8 +0x8EA6C3D9 0x266D5 +0x8EA6C3DA 0x8158 +0x8EA6C3DB 0x266D4 +0x8EA6C3DC 0x266F3 +0x8EA6C3DD 0x266F4 +0x8EA6C3DE 0x266E7 +0x8EA6C3DF 0x266E1 +0x8EA6C3E0 0x266E6 +0x8EA6C3E1 0x266EB +0x8EA6C3E2 0x266EC +0x8EA6C3E3 0x202DB +0x8EA6C3E4 0x4450 +0x8EA6C3E5 0x2690D +0x8EA6C3E6 0x2690C +0x8EA6C3E7 0x21B2F +0x8EA6C3E8 0x26968 +0x8EA6C3E9 0x26965 +0x8EA6C3EA 0x2696B +0x8EA6C3EB 0x26969 +0x8EA6C3EC 0x269D1 +0x8EA6C3ED 0x269D3 +0x8EA6C3EE 0x26A27 +0x8EA6C3EF 0x26A28 +0x8EA6C3F0 0x4468 +0x8EA6C3F1 0x4467 +0x8EA6C3F2 0x26A24 +0x8EA6C3F3 0x26AD7 +0x8EA6C3F4 0x26BCA +0x8EA6C3F5 0x26BC7 +0x8EA6C3F6 0x2F99E +0x8EA6C3F7 0x26BD8 +0x8EA6C3F8 0x26BE1 +0x8EA6C3F9 0x26BC6 +0x8EA6C3FA 0x26BF8 +0x8EA6C3FB 0x26BC3 +0x8EA6C3FC 0x26BF4 +0x8EA6C3FD 0x26C17 +0x8EA6C3FE 0x26BEA +0x8EA6C4A1 0x26BCB +0x8EA6C4A2 0x26B86 +0x8EA6C4A3 0x26BC4 +0x8EA6C4A4 0x26BD9 +0x8EA6C4A5 0x26C19 +0x8EA6C4A6 0x26BC2 +0x8EA6C4A7 0x26BE2 +0x8EA6C4A8 0x44CF +0x8EA6C4A9 0x26BDE +0x8EA6C4AA 0x26BED +0x8EA6C4AB 0x2F99C +0x8EA6C4AC 0x44CD +0x8EA6C4AD 0x26C1D +0x8EA6C4AE 0x26BDD +0x8EA6C4AF 0x26BDB +0x8EA6C4B0 0x26BE8 +0x8EA6C4B1 0x26BE9 +0x8EA6C4B2 0x26BBF +0x8EA6C4B3 0x26BE0 +0x8EA6C4B4 0x26BD1 +0x8EA6C4B5 0x26BDC +0x8EA6C4B6 0x26BCE +0x8EA6C4B7 0x26C1E +0x8EA6C4B8 0x26BCC +0x8EA6C4B9 0x26BF2 +0x8EA6C4BA 0x26BF3 +0x8EA6C4BB 0x2F99F +0x8EA6C4BC 0x2F9A2 +0x8EA6C4BD 0x2F9A3 +0x8EA6C4BE 0x2F9A1 +0x8EA6C4BF 0x271AB +0x8EA6C4C0 0x271AA +0x8EA6C4C1 0x271A7 +0x8EA6C4C2 0x271A9 +0x8EA6C4C3 0x27288 +0x8EA6C4C4 0x27275 +0x8EA6C4C5 0x27260 +0x8EA6C4C6 0x2726C +0x8EA6C4C7 0x27273 +0x8EA6C4C8 0x45AB +0x8EA6C4C9 0x2726E +0x8EA6C4CA 0x27274 +0x8EA6C4CB 0x27276 +0x8EA6C4CC 0x27268 +0x8EA6C4CD 0x27277 +0x8EA6C4CE 0x27286 +0x8EA6C4CF 0x275EA +0x8EA6C4D0 0x27651 +0x8EA6C4D1 0x27650 +0x8EA6C4D2 0x27658 +0x8EA6C4D3 0x2764D +0x8EA6C4D4 0x2764F +0x8EA6C4D5 0x2764E +0x8EA6C4D6 0x2765C +0x8EA6C4D7 0x27652 +0x8EA6C4D8 0x27644 +0x8EA6C4D9 0x2764A +0x8EA6C4DA 0x2764B +0x8EA6C4DB 0x277EA +0x8EA6C4DC 0x27810 +0x8EA6C4DD 0x27811 +0x8EA6C4DE 0x278CD +0x8EA6C4DF 0x278BF +0x8EA6C4E0 0x278C4 +0x8EA6C4E1 0x278D0 +0x8EA6C4E2 0x278CE +0x8EA6C4E3 0x278C0 +0x8EA6C4E4 0x278C2 +0x8EA6C4E5 0x278CF +0x8EA6C4E6 0x278C9 +0x8EA6C4E7 0x278BB +0x8EA6C4E8 0x27997 +0x8EA6C4E9 0x27992 +0x8EA6C4EA 0x2796F +0x8EA6C4EB 0x2797E +0x8EA6C4EC 0x2799A +0x8EA6C4ED 0x46C1 +0x8EA6C4EE 0x27986 +0x8EA6C4EF 0x27973 +0x8EA6C4F0 0x8A24 +0x8EA6C4F1 0x27977 +0x8EA6C4F2 0x2798F +0x8EA6C4F3 0x27970 +0x8EA6C4F4 0x27981 +0x8EA6C4F5 0x27982 +0x8EA6C4F6 0x27999 +0x8EA6C4F7 0x2797D +0x8EA6C4F8 0x2797F +0x8EA6C4F9 0x2797B +0x8EA6C4FA 0x27987 +0x8EA6C4FB 0x27BB2 +0x8EA6C4FC 0x27C2F +0x8EA6C4FD 0x27C34 +0x8EA6C4FE 0x27C2E +0x8EA6C5A1 0x27C32 +0x8EA6C5A2 0x4747 +0x8EA6C5A3 0x27CAA +0x8EA6C5A4 0x4757 +0x8EA6C5A5 0x27CA9 +0x8EA6C5A6 0x27D38 +0x8EA6C5A7 0x27D36 +0x8EA6C5A8 0x27D37 +0x8EA6C5A9 0x27D47 +0x8EA6C5AA 0x27D33 +0x8EA6C5AB 0x27D39 +0x8EA6C5AC 0x27D35 +0x8EA6C5AD 0x27D44 +0x8EA6C5AE 0x27EA5 +0x8EA6C5AF 0x27EA6 +0x8EA6C5B0 0x27E9E +0x8EA6C5B1 0x27FE3 +0x8EA6C5B2 0x27FDF +0x8EA6C5B3 0x27FD3 +0x8EA6C5B4 0x27FF1 +0x8EA6C5B5 0x27FE4 +0x8EA6C5B6 0x27FE0 +0x8EA6C5B7 0x27FD6 +0x8EA6C5B8 0x8DC3 +0x8EA6C5B9 0x27FE6 +0x8EA6C5BA 0x27FD8 +0x8EA6C5BB 0x27FDE +0x8EA6C5BC 0x27FDB +0x8EA6C5BD 0x27FDC +0x8EA6C5BE 0x2821B +0x8EA6C5BF 0x2821F +0x8EA6C5C0 0x2821D +0x8EA6C5C1 0x2821C +0x8EA6C5C2 0x2821E +0x8EA6C5C3 0x28220 +0x8EA6C5C4 0x28221 +0x8EA6C5C5 0x484E +0x8EA6C5C6 0x282B6 +0x8EA6C5C7 0x282BC +0x8EA6C5C8 0x282C6 +0x8EA6C5C9 0x282C7 +0x8EA6C5CA 0x282BA +0x8EA6C5CB 0x282BE +0x8EA6C5CC 0x282BD +0x8EA6C5CD 0x282B5 +0x8EA6C5CE 0x282B4 +0x8EA6C5CF 0x2840F +0x8EA6C5D0 0x28462 +0x8EA6C5D1 0x284EB +0x8EA6C5D2 0x284D9 +0x8EA6C5D3 0x284E4 +0x8EA6C5D4 0x284D7 +0x8EA6C5D5 0x284D8 +0x8EA6C5D6 0x284D6 +0x8EA6C5D7 0x284CE +0x8EA6C5D8 0x284DD +0x8EA6C5D9 0x284E7 +0x8EA6C5DA 0x284D2 +0x8EA6C5DB 0x284C5 +0x8EA6C5DC 0x284C9 +0x8EA6C5DD 0x284DB +0x8EA6C5DE 0x28692 +0x8EA6C5DF 0x2868A +0x8EA6C5E0 0x2868B +0x8EA6C5E1 0x28689 +0x8EA6C5E2 0x28708 +0x8EA6C5E3 0x28703 +0x8EA6C5E4 0x28706 +0x8EA6C5E5 0x28705 +0x8EA6C5E6 0x286F5 +0x8EA6C5E7 0x2870B +0x8EA6C5E8 0x286FB +0x8EA6C5E9 0x287FC +0x8EA6C5EA 0x28801 +0x8EA6C5EB 0x28802 +0x8EA6C5EC 0x287FA +0x8EA6C5ED 0x28808 +0x8EA6C5EE 0x287F7 +0x8EA6C5EF 0x28800 +0x8EA6C5F0 0x287FF +0x8EA6C5F1 0x28806 +0x8EA6C5F2 0x287F6 +0x8EA6C5F3 0x287FB +0x8EA6C5F4 0x2880A +0x8EA6C5F5 0x28925 +0x8EA6C5F6 0x28943 +0x8EA6C5F7 0x28944 +0x8EA6C5F8 0x28C64 +0x8EA6C5F9 0x28C62 +0x8EA6C5FA 0x28C5E +0x8EA6C5FB 0x28C5B +0x8EA6C5FC 0x28CD6 +0x8EA6C5FD 0x20072 +0x8EA6C5FE 0x200C2 +0x8EA6C6A1 0x28E77 +0x8EA6C6A2 0x28E82 +0x8EA6C6A3 0x28E7C +0x8EA6C6A4 0x28E7D +0x8EA6C6A5 0x28E86 +0x8EA6C6A6 0x28E81 +0x8EA6C6A7 0x28E84 +0x8EA6C6A8 0x28E76 +0x8EA6C6A9 0x28E83 +0x8EA6C6AA 0x28E7F +0x8EA6C6AB 0x28E7E +0x8EA6C6AC 0x28F88 +0x8EA6C6AD 0x28F8D +0x8EA6C6AE 0x28F8B +0x8EA6C6AF 0x28F91 +0x8EA6C6B0 0x28F8F +0x8EA6C6B1 0x2907C +0x8EA6C6B2 0x29079 +0x8EA6C6B3 0x2907A +0x8EA6C6B4 0x291EA +0x8EA6C6B5 0x2944C +0x8EA6C6B6 0x29599 +0x8EA6C6B7 0x202D1 +0x8EA6C6B8 0x2968B +0x8EA6C6B9 0x2968D +0x8EA6C6BA 0x2968A +0x8EA6C6BB 0x2968E +0x8EA6C6BC 0x29811 +0x8EA6C6BD 0x22256 +0x8EA6C6BE 0x2FA15 +0x8EA6C6BF 0x20074 +0x8EA6C6C0 0x200C3 +0x8EA6C6C1 0x200C4 +0x8EA6C6C2 0x2011B +0x8EA6C6C3 0x2015F +0x8EA6C6C4 0x2016A +0x8EA6C6C5 0x20169 +0x8EA6C6C6 0x2016B +0x8EA6C6C7 0x2030C +0x8EA6C6C8 0x202F6 +0x8EA6C6C9 0x202ED +0x8EA6C6CA 0x20329 +0x8EA6C6CB 0x202FE +0x8EA6C6CC 0x202F1 +0x8EA6C6CD 0x20317 +0x8EA6C6CE 0x202FF +0x8EA6C6CF 0x202EE +0x8EA6C6D0 0x202FD +0x8EA6C6D1 0x2031C +0x8EA6C6D2 0x202FC +0x8EA6C6D3 0x20300 +0x8EA6C6D4 0x20320 +0x8EA6C6D5 0x3477 +0x8EA6C6D6 0x202F9 +0x8EA6C6D7 0x20367 +0x8EA6C6D8 0x20308 +0x8EA6C6D9 0x2049E +0x8EA6C6DA 0x204F3 +0x8EA6C6DB 0x20525 +0x8EA6C6DC 0x20527 +0x8EA6C6DD 0x2051F +0x8EA6C6DE 0x20565 +0x8EA6C6DF 0x20563 +0x8EA6C6E0 0x20594 +0x8EA6C6E1 0x20597 +0x8EA6C6E2 0x205F1 +0x8EA6C6E3 0x2065F +0x8EA6C6E4 0x20662 +0x8EA6C6E5 0x51F2 +0x8EA6C6E6 0x20660 +0x8EA6C6E7 0x2F822 +0x8EA6C6E8 0x2078C +0x8EA6C6E9 0x20782 +0x8EA6C6EA 0x20790 +0x8EA6C6EB 0x2078B +0x8EA6C6EC 0x2078D +0x8EA6C6ED 0x20781 +0x8EA6C6EE 0x2079D +0x8EA6C6EF 0x2088E +0x8EA6C6F0 0x2088F +0x8EA6C6F1 0x20892 +0x8EA6C6F2 0x20923 +0x8EA6C6F3 0x20952 +0x8EA6C6F4 0x2F82E +0x8EA6C6F5 0x20A00 +0x8EA6C6F6 0x20A01 +0x8EA6C6F7 0x20A02 +0x8EA6C6F8 0x20A1F +0x8EA6C6F9 0x20A8C +0x8EA6C6FA 0x20A89 +0x8EA6C6FB 0x20A8B +0x8EA6C6FC 0x20A88 +0x8EA6C6FD 0x20A8D +0x8EA6C6FE 0x20A8F +0x8EA6C7A1 0x26385 +0x8EA6C7A2 0x20B00 +0x8EA6C7A3 0x20B05 +0x8EA6C7A4 0x20B01 +0x8EA6C7A5 0x20B68 +0x8EA6C7A6 0x20B6E +0x8EA6C7A7 0x20B67 +0x8EA6C7A8 0x20B75 +0x8EA6C7A9 0x55B6 +0x8EA6C7AA 0x2F845 +0x8EA6C7AB 0x20DD7 +0x8EA6C7AC 0x2F846 +0x8EA6C7AD 0x20048 +0x8EA6C7AE 0x20DD4 +0x8EA6C7AF 0x20DD8 +0x8EA6C7B0 0x2F847 +0x8EA6C7B1 0x2F848 +0x8EA6C7B2 0x20DBA +0x8EA6C7B3 0x2F849 +0x8EA6C7B4 0x20DDB +0x8EA6C7B5 0x20DBF +0x8EA6C7B6 0x20E35 +0x8EA6C7B7 0x20DBC +0x8EA6C7B8 0x20DD9 +0x8EA6C7B9 0x35C4 +0x8EA6C7BA 0x20DDD +0x8EA6C7BB 0x20E00 +0x8EA6C7BC 0x20DD5 +0x8EA6C7BD 0x20E30 +0x8EA6C7BE 0x20DBD +0x8EA6C7BF 0x20DDC +0x8EA6C7C0 0x211FD +0x8EA6C7C1 0x211FE +0x8EA6C7C2 0x21207 +0x8EA6C7C3 0x24517 +0x8EA6C7C4 0x2136F +0x8EA6C7C5 0x21369 +0x8EA6C7C6 0x21370 +0x8EA6C7C7 0x21367 +0x8EA6C7C8 0x213A9 +0x8EA6C7C9 0x21395 +0x8EA6C7CA 0x21390 +0x8EA6C7CB 0x2136C +0x8EA6C7CC 0x21397 +0x8EA6C7CD 0x21371 +0x8EA6C7CE 0x3652 +0x8EA6C7CF 0x21374 +0x8EA6C7D0 0x2136D +0x8EA6C7D1 0x2138E +0x8EA6C7D2 0x2152F +0x8EA6C7D3 0x2A31B +0x8EA6C7D4 0x215A9 +0x8EA6C7D5 0x2164E +0x8EA6C7D6 0x2F85F +0x8EA6C7D7 0x2165A +0x8EA6C7D8 0x21648 +0x8EA6C7D9 0x21655 +0x8EA6C7DA 0x2164C +0x8EA6C7DB 0x21649 +0x8EA6C7DC 0x2164F +0x8EA6C7DD 0x2164A +0x8EA6C7DE 0x217D6 +0x8EA6C7DF 0x217A0 +0x8EA6C7E0 0x217A9 +0x8EA6C7E1 0x2F867 +0x8EA6C7E2 0x2179D +0x8EA6C7E3 0x217D4 +0x8EA6C7E4 0x217A4 +0x8EA6C7E5 0x217A8 +0x8EA6C7E6 0x217A6 +0x8EA6C7E7 0x217E6 +0x8EA6C7E8 0x2197D +0x8EA6C7E9 0x21977 +0x8EA6C7EA 0x2197A +0x8EA6C7EB 0x21A41 +0x8EA6C7EC 0x21A49 +0x8EA6C7ED 0x21A59 +0x8EA6C7EE 0x21A45 +0x8EA6C7EF 0x21A48 +0x8EA6C7F0 0x21A40 +0x8EA6C7F1 0x21B8E +0x8EA6C7F2 0x21B95 +0x8EA6C7F3 0x21B90 +0x8EA6C7F4 0x21BF7 +0x8EA6C7F5 0x21BF8 +0x8EA6C7F6 0x21BF6 +0x8EA6C7F7 0x21BFB +0x8EA6C7F8 0x21C9E +0x8EA6C7F9 0x21C9D +0x8EA6C7FA 0x21C99 +0x8EA6C7FB 0x2F877 +0x8EA6C7FC 0x21CA3 +0x8EA6C7FD 0x21CA9 +0x8EA6C7FE 0x21C98 +0x8EA6C8A1 0x21CA0 +0x8EA6C8A2 0x21C96 +0x8EA6C8A3 0x21C94 +0x8EA6C8A4 0x21C95 +0x8EA6C8A5 0x21C9F +0x8EA6C8A6 0x21CA1 +0x8EA6C8A7 0x21D21 +0x8EA6C8A8 0x21D1D +0x8EA6C8A9 0x21D1F +0x8EA6C8AA 0x21E6D +0x8EA6C8AB 0x2F87C +0x8EA6C8AC 0x21E9A +0x8EA6C8AD 0x21E92 +0x8EA6C8AE 0x21E7A +0x8EA6C8AF 0x21E7D +0x8EA6C8B0 0x21EA1 +0x8EA6C8B1 0x21E9D +0x8EA6C8B2 0x21E99 +0x8EA6C8B3 0x21E6B +0x8EA6C8B4 0x21E6E +0x8EA6C8B5 0x2F87D +0x8EA6C8B6 0x22045 +0x8EA6C8B7 0x2F884 +0x8EA6C8B8 0x220FB +0x8EA6C8B9 0x220EB +0x8EA6C8BA 0x220F2 +0x8EA6C8BB 0x220F9 +0x8EA6C8BC 0x2F886 +0x8EA6C8BD 0x220F8 +0x8EA6C8BE 0x220ED +0x8EA6C8BF 0x22101 +0x8EA6C8C0 0x220F7 +0x8EA6C8C1 0x22106 +0x8EA6C8C2 0x2219B +0x8EA6C8C3 0x221CA +0x8EA6C8C4 0x386B +0x8EA6C8C5 0x5EC3 +0x8EA6C8C6 0x2226B +0x8EA6C8C7 0x2226C +0x8EA6C8C8 0x22274 +0x8EA6C8C9 0x22267 +0x8EA6C8CA 0x2225B +0x8EA6C8CB 0x22260 +0x8EA6C8CC 0x22276 +0x8EA6C8CD 0x22263 +0x8EA6C8CE 0x22261 +0x8EA6C8CF 0x22328 +0x8EA6C8D0 0x2235B +0x8EA6C8D1 0x2235E +0x8EA6C8D2 0x22360 +0x8EA6C8D3 0x2235D +0x8EA6C8D4 0x2235C +0x8EA6C8D5 0x223F4 +0x8EA6C8D6 0x22400 +0x8EA6C8D7 0x22408 +0x8EA6C8D8 0x22407 +0x8EA6C8D9 0x22401 +0x8EA6C8DA 0x22405 +0x8EA6C8DB 0x22464 +0x8EA6C8DC 0x22463 +0x8EA6C8DD 0x2249E +0x8EA6C8DE 0x224A0 +0x8EA6C8DF 0x224A1 +0x8EA6C8E0 0x2249F +0x8EA6C8E1 0x22526 +0x8EA6C8E2 0x2252D +0x8EA6C8E3 0x22528 +0x8EA6C8E4 0x2251D +0x8EA6C8E5 0x226EC +0x8EA6C8E6 0x226E3 +0x8EA6C8E7 0x226EB +0x8EA6C8E8 0x22716 +0x8EA6C8E9 0x226C8 +0x8EA6C8EA 0x2661B +0x8EA6C8EB 0x226E9 +0x8EA6C8EC 0x226E4 +0x8EA6C8ED 0x22724 +0x8EA6C8EE 0x226D1 +0x8EA6C8EF 0x3941 +0x8EA6C8F0 0x226DD +0x8EA6C8F1 0x226C2 +0x8EA6C8F2 0x226CB +0x8EA6C8F3 0x226C7 +0x8EA6C8F4 0x226E7 +0x8EA6C8F5 0x3950 +0x8EA6C8F6 0x226EA +0x8EA6C8F7 0x2274B +0x8EA6C8F8 0x2F8A5 +0x8EA6C8F9 0x22760 +0x8EA6C8FA 0x2277D +0x8EA6C8FB 0x2273E +0x8EA6C8FC 0x2F8A4 +0x8EA6C8FD 0x22752 +0x8EA6C8FE 0x2274E +0x8EA6C9A1 0x2273C +0x8EA6C9A2 0x22732 +0x8EA6C9A3 0x22730 +0x8EA6C9A4 0x22723 +0x8EA6C9A5 0x229CA +0x8EA6C9A6 0x229CB +0x8EA6C9A7 0x229C9 +0x8EA6C9A8 0x229C8 +0x8EA6C9A9 0x229CD +0x8EA6C9AA 0x22B98 +0x8EA6C9AB 0x22BA0 +0x8EA6C9AC 0x22B9F +0x8EA6C9AD 0x22B9C +0x8EA6C9AE 0x22BA3 +0x8EA6C9AF 0x22B97 +0x8EA6C9B0 0x2F8BE +0x8EA6C9B1 0x22BF1 +0x8EA6C9B2 0x22C09 +0x8EA6C9B3 0x22C03 +0x8EA6C9B4 0x22BEA +0x8EA6C9B5 0x22C45 +0x8EA6C9B6 0x22BED +0x8EA6C9B7 0x22C05 +0x8EA6C9B8 0x22C1A +0x8EA6C9B9 0x22C15 +0x8EA6C9BA 0x22C01 +0x8EA6C9BB 0x22BEC +0x8EA6C9BC 0x22C0E +0x8EA6C9BD 0x22C17 +0x8EA6C9BE 0x22C42 +0x8EA6C9BF 0x22C12 +0x8EA6C9C0 0x22C10 +0x8EA6C9C1 0x22BEF +0x8EA6C9C2 0x22BFF +0x8EA6C9C3 0x22C00 +0x8EA6C9C4 0x22C0C +0x8EA6C9C5 0x22C0F +0x8EA6C9C6 0x22C04 +0x8EA6C9C7 0x22C08 +0x8EA6C9C8 0x22C14 +0x8EA6C9C9 0x22C43 +0x8EA6C9CA 0x2F8BD +0x8EA6C9CB 0x22C1B +0x8EA6C9CC 0x22C11 +0x8EA6C9CD 0x22C13 +0x8EA6C9CE 0x22ECF +0x8EA6C9CF 0x22ECE +0x8EA6C9D0 0x22F6F +0x8EA6C9D1 0x22F6E +0x8EA6C9D2 0x22F7A +0x8EA6C9D3 0x22F70 +0x8EA6C9D4 0x22F64 +0x8EA6C9D5 0x22F5E +0x8EA6C9D6 0x22F6C +0x8EA6C9D7 0x2F8C9 +0x8EA6C9D8 0x22F5B +0x8EA6C9D9 0x22F61 +0x8EA6C9DA 0x22F65 +0x8EA6C9DB 0x2307F +0x8EA6C9DC 0x23080 +0x8EA6C9DD 0x2307C +0x8EA6C9DE 0x230A7 +0x8EA6C9DF 0x230A6 +0x8EA6C9E0 0x230A1 +0x8EA6C9E1 0x3AC0 +0x8EA6C9E2 0x230A8 +0x8EA6C9E3 0x230A3 +0x8EA6C9E4 0x230A2 +0x8EA6C9E5 0x230AD +0x8EA6C9E6 0x230A5 +0x8EA6C9E7 0x23101 +0x8EA6C9E8 0x230FF +0x8EA6C9E9 0x230FC +0x8EA6C9EA 0x23100 +0x8EA6C9EB 0x23135 +0x8EA6C9EC 0x231EE +0x8EA6C9ED 0x231EF +0x8EA6C9EE 0x231F6 +0x8EA6C9EF 0x231E8 +0x8EA6C9F0 0x231EA +0x8EA6C9F1 0x231E3 +0x8EA6C9F2 0x2321F +0x8EA6C9F3 0x3AFC +0x8EA6C9F4 0x231E4 +0x8EA6C9F5 0x231FA +0x8EA6C9F6 0x231F1 +0x8EA6C9F7 0x231FB +0x8EA6C9F8 0x2F8D4 +0x8EA6C9F9 0x2333D +0x8EA6C9FA 0x2333C +0x8EA6C9FB 0x3479 +0x8EA6C9FC 0x23378 +0x8EA6C9FD 0x23377 +0x8EA6C9FE 0x440B +0x8EA6CAA1 0x234D1 +0x8EA6CAA2 0x234C7 +0x8EA6CAA3 0x234DF +0x8EA6CAA4 0x234D0 +0x8EA6CAA5 0x234E0 +0x8EA6CAA6 0x234D6 +0x8EA6CAA7 0x234D8 +0x8EA6CAA8 0x23516 +0x8EA6CAA9 0x2350E +0x8EA6CAAA 0x234D9 +0x8EA6CAAB 0x2350F +0x8EA6CAAC 0x23511 +0x8EA6CAAD 0x234CD +0x8EA6CAAE 0x23489 +0x8EA6CAAF 0x234CE +0x8EA6CAB0 0x23514 +0x8EA6CAB1 0x234DA +0x8EA6CAB2 0x23512 +0x8EA6CAB3 0x234D3 +0x8EA6CAB4 0x234C2 +0x8EA6CAB5 0x234E1 +0x8EA6CAB6 0x234E9 +0x8EA6CAB7 0x234EA +0x8EA6CAB8 0x234DE +0x8EA6CAB9 0x23515 +0x8EA6CABA 0x238D9 +0x8EA6CABB 0x238D6 +0x8EA6CABC 0x238CD +0x8EA6CABD 0x238D0 +0x8EA6CABE 0x238D3 +0x8EA6CABF 0x2F8F0 +0x8EA6CAC0 0x23982 +0x8EA6CAC1 0x23985 +0x8EA6CAC2 0x2397F +0x8EA6CAC3 0x2397D +0x8EA6CAC4 0x23981 +0x8EA6CAC5 0x23983 +0x8EA6CAC6 0x23984 +0x8EA6CAC7 0x284A0 +0x8EA6CAC8 0x23A28 +0x8EA6CAC9 0x23A0F +0x8EA6CACA 0x23A17 +0x8EA6CACB 0x23A1A +0x8EA6CACC 0x23A25 +0x8EA6CACD 0x2F8F7 +0x8EA6CACE 0x23A9B +0x8EA6CACF 0x23A99 +0x8EA6CAD0 0x23B92 +0x8EA6CAD1 0x23B8C +0x8EA6CAD2 0x23B95 +0x8EA6CAD3 0x23B8D +0x8EA6CAD4 0x23BA3 +0x8EA6CAD5 0x23B93 +0x8EA6CAD6 0x23B91 +0x8EA6CAD7 0x23DDB +0x8EA6CAD8 0x23D99 +0x8EA6CAD9 0x23D9A +0x8EA6CADA 0x23E08 +0x8EA6CADB 0x23E4C +0x8EA6CADC 0x23E0D +0x8EA6CADD 0x23E01 +0x8EA6CADE 0x23E4E +0x8EA6CADF 0x23E02 +0x8EA6CAE0 0x23E4D +0x8EA6CAE1 0x23E21 +0x8EA6CAE2 0x23DFC +0x8EA6CAE3 0x2F909 +0x8EA6CAE4 0x23D8A +0x8EA6CAE5 0x2F908 +0x8EA6CAE6 0x23D95 +0x8EA6CAE7 0x23E11 +0x8EA6CAE8 0x23E12 +0x8EA6CAE9 0x23E46 +0x8EA6CAEA 0x23E1C +0x8EA6CAEB 0x23E49 +0x8EA6CAEC 0x23E0C +0x8EA6CAED 0x3D1E +0x8EA6CAEE 0x23E13 +0x8EA6CAEF 0x23E16 +0x8EA6CAF0 0x23DFD +0x8EA6CAF1 0x23E0F +0x8EA6CAF2 0x23E1F +0x8EA6CAF3 0x24230 +0x8EA6CAF4 0x2426E +0x8EA6CAF5 0x2426B +0x8EA6CAF6 0x2429B +0x8EA6CAF7 0x2427B +0x8EA6CAF8 0x24263 +0x8EA6CAF9 0x24297 +0x8EA6CAFA 0x2426D +0x8EA6CAFB 0x2429C +0x8EA6CAFC 0x24298 +0x8EA6CAFD 0x2426F +0x8EA6CAFE 0x24267 +0x8EA6CBA1 0x24269 +0x8EA6CBA2 0x24515 +0x8EA6CBA3 0x24563 +0x8EA6CBA4 0x24586 +0x8EA6CBA5 0x2458A +0x8EA6CBA6 0x24587 +0x8EA6CBA7 0x24588 +0x8EA6CBA8 0x24585 +0x8EA6CBA9 0x24589 +0x8EA6CBAA 0x245CA +0x8EA6CBAB 0x245C7 +0x8EA6CBAC 0x245CB +0x8EA6CBAD 0x245CC +0x8EA6CBAE 0x245C9 +0x8EA6CBAF 0x2460D +0x8EA6CBB0 0x24683 +0x8EA6CBB1 0x24684 +0x8EA6CBB2 0x24678 +0x8EA6CBB3 0x24682 +0x8EA6CBB4 0x24673 +0x8EA6CBB5 0x24679 +0x8EA6CBB6 0x2468C +0x8EA6CBB7 0x247D0 +0x8EA6CBB8 0x247CF +0x8EA6CBB9 0x247D2 +0x8EA6CBBA 0x247D9 +0x8EA6CBBB 0x247CC +0x8EA6CBBC 0x247EB +0x8EA6CBBD 0x247FD +0x8EA6CBBE 0x247EC +0x8EA6CBBF 0x247E8 +0x8EA6CBC0 0x247F8 +0x8EA6CBC1 0x247FA +0x8EA6CBC2 0x2F927 +0x8EA6CBC3 0x3E85 +0x8EA6CBC4 0x247E1 +0x8EA6CBC5 0x247FB +0x8EA6CBC6 0x248E7 +0x8EA6CBC7 0x2F92E +0x8EA6CBC8 0x249A5 +0x8EA6CBC9 0x24991 +0x8EA6CBCA 0x249A6 +0x8EA6CBCB 0x2497C +0x8EA6CBCC 0x24992 +0x8EA6CBCD 0x249A2 +0x8EA6CBCE 0x249A0 +0x8EA6CBCF 0x24AFC +0x8EA6CBD0 0x24AFE +0x8EA6CBD1 0x24B57 +0x8EA6CBD2 0x24B53 +0x8EA6CBD3 0x24B58 +0x8EA6CBD4 0x24BE7 +0x8EA6CBD5 0x24C8E +0x8EA6CBD6 0x2F938 +0x8EA6CBD7 0x24C83 +0x8EA6CBD8 0x24C8B +0x8EA6CBD9 0x24C84 +0x8EA6CBDA 0x3F97 +0x8EA6CBDB 0x24DA2 +0x8EA6CBDC 0x24DB7 +0x8EA6CBDD 0x24DA9 +0x8EA6CBDE 0x24DA5 +0x8EA6CBDF 0x24D9F +0x8EA6CBE0 0x24DAA +0x8EA6CBE1 0x24D97 +0x8EA6CBE2 0x24DA1 +0x8EA6CBE3 0x24D9E +0x8EA6CBE4 0x24DAB +0x8EA6CBE5 0x24D99 +0x8EA6CBE6 0x24DA3 +0x8EA6CBE7 0x24F30 +0x8EA6CBE8 0x24F32 +0x8EA6CBE9 0x24F2F +0x8EA6CBEA 0x24F70 +0x8EA6CBEB 0x24F6C +0x8EA6CBEC 0x24F6F +0x8EA6CBED 0x24FE8 +0x8EA6CBEE 0x24FEE +0x8EA6CBEF 0x24FEA +0x8EA6CBF0 0x2506D +0x8EA6CBF1 0x25076 +0x8EA6CBF2 0x25070 +0x8EA6CBF3 0x25071 +0x8EA6CBF4 0x2506C +0x8EA6CBF5 0x251EB +0x8EA6CBF6 0x251B5 +0x8EA6CBF7 0x25196 +0x8EA6CBF8 0x25190 +0x8EA6CBF9 0x2518D +0x8EA6CBFA 0x2F949 +0x8EA6CBFB 0x251A2 +0x8EA6CBFC 0x251B0 +0x8EA6CBFD 0x25192 +0x8EA6CBFE 0x251A0 +0x8EA6CCA1 0x25193 +0x8EA6CCA2 0x251C3 +0x8EA6CCA3 0x2518E +0x8EA6CCA4 0x251B6 +0x8EA6CCA5 0x2519D +0x8EA6CCA6 0x25195 +0x8EA6CCA7 0x251B3 +0x8EA6CCA8 0x251A4 +0x8EA6CCA9 0x25370 +0x8EA6CCAA 0x253D4 +0x8EA6CCAB 0x4093 +0x8EA6CCAC 0x253CF +0x8EA6CCAD 0x20170 +0x8EA6CCAE 0x25494 +0x8EA6CCAF 0x7861 +0x8EA6CCB0 0x254C0 +0x8EA6CCB1 0x254B4 +0x8EA6CCB2 0x254C1 +0x8EA6CCB3 0x40B2 +0x8EA6CCB4 0x254BD +0x8EA6CCB5 0x254AF +0x8EA6CCB6 0x25677 +0x8EA6CCB7 0x25678 +0x8EA6CCB8 0x2566B +0x8EA6CCB9 0x2566D +0x8EA6CCBA 0x2566E +0x8EA6CCBB 0x25672 +0x8EA6CCBC 0x2566F +0x8EA6CCBD 0x25671 +0x8EA6CCBE 0x230AB +0x8EA6CCBF 0x2568C +0x8EA6CCC0 0x2573F +0x8EA6CCC1 0x257B6 +0x8EA6CCC2 0x257B7 +0x8EA6CCC3 0x7A06 +0x8EA6CCC4 0x257BB +0x8EA6CCC5 0x257B8 +0x8EA6CCC6 0x2079C +0x8EA6CCC7 0x257B9 +0x8EA6CCC8 0x7A01 +0x8EA6CCC9 0x2598B +0x8EA6CCCA 0x2597A +0x8EA6CCCB 0x25984 +0x8EA6CCCC 0x25988 +0x8EA6CCCD 0x25991 +0x8EA6CCCE 0x25979 +0x8EA6CCCF 0x2598E +0x8EA6CCD0 0x25980 +0x8EA6CCD1 0x25982 +0x8EA6CCD2 0x2597C +0x8EA6CCD3 0x41A4 +0x8EA6CCD4 0x25A84 +0x8EA6CCD5 0x25A7F +0x8EA6CCD6 0x41F2 +0x8EA6CCD7 0x25B3B +0x8EA6CCD8 0x25B71 +0x8EA6CCD9 0x25B3D +0x8EA6CCDA 0x25B30 +0x8EA6CCDB 0x41F1 +0x8EA6CCDC 0x25B3E +0x8EA6CCDD 0x25B38 +0x8EA6CCDE 0x25E5E +0x8EA6CCDF 0x25E64 +0x8EA6CCE0 0x4281 +0x8EA6CCE1 0x25E5D +0x8EA6CCE2 0x25E6D +0x8EA6CCE3 0x25E4F +0x8EA6CCE4 0x25E62 +0x8EA6CCE5 0x25E5F +0x8EA6CCE6 0x25FEC +0x8EA6CCE7 0x25FF2 +0x8EA6CCE8 0x25FF4 +0x8EA6CCE9 0x25FF7 +0x8EA6CCEA 0x25FF6 +0x8EA6CCEB 0x26007 +0x8EA6CCEC 0x25FED +0x8EA6CCED 0x25FEA +0x8EA6CCEE 0x25FF0 +0x8EA6CCEF 0x25FF8 +0x8EA6CCF0 0x25FF3 +0x8EA6CCF1 0x42DC +0x8EA6CCF2 0x2F972 +0x8EA6CCF3 0x26231 +0x8EA6CCF4 0x2622F +0x8EA6CCF5 0x262B6 +0x8EA6CCF6 0x262AE +0x8EA6CCF7 0x262AA +0x8EA6CCF8 0x262BF +0x8EA6CCF9 0x262CC +0x8EA6CCFA 0x262C7 +0x8EA6CCFB 0x26C83 +0x8EA6CCFC 0x26380 +0x8EA6CCFD 0x2637B +0x8EA6CCFE 0x2637F +0x8EA6CDA1 0x2637D +0x8EA6CDA2 0x26383 +0x8EA6CDA3 0x2F978 +0x8EA6CDA4 0x26446 +0x8EA6CDA5 0x2642D +0x8EA6CDA6 0x26425 +0x8EA6CDA7 0x26426 +0x8EA6CDA8 0x2642C +0x8EA6CDA9 0x26437 +0x8EA6CDAA 0x26431 +0x8EA6CDAB 0x26433 +0x8EA6CDAC 0x26432 +0x8EA6CDAD 0x26427 +0x8EA6CDAE 0x2642A +0x8EA6CDAF 0x2642E +0x8EA6CDB0 0x2642F +0x8EA6CDB1 0x264C0 +0x8EA6CDB2 0x26571 +0x8EA6CDB3 0x26561 +0x8EA6CDB4 0x26562 +0x8EA6CDB5 0x26566 +0x8EA6CDB6 0x26618 +0x8EA6CDB7 0x266C5 +0x8EA6CDB8 0x266C3 +0x8EA6CDB9 0x266C4 +0x8EA6CDBA 0x266C2 +0x8EA6CDBB 0x266AE +0x8EA6CDBC 0x26710 +0x8EA6CDBD 0x26708 +0x8EA6CDBE 0x2671F +0x8EA6CDBF 0x2673A +0x8EA6CDC0 0x2673B +0x8EA6CDC1 0x26736 +0x8EA6CDC2 0x2670C +0x8EA6CDC3 0x26706 +0x8EA6CDC4 0x2672A +0x8EA6CDC5 0x26757 +0x8EA6CDC6 0x26750 +0x8EA6CDC7 0x26720 +0x8EA6CDC8 0x2F985 +0x8EA6CDC9 0x2672C +0x8EA6CDCA 0x26721 +0x8EA6CDCB 0x2670B +0x8EA6CDCC 0x26719 +0x8EA6CDCD 0x26735 +0x8EA6CDCE 0x26718 +0x8EA6CDCF 0x2670F +0x8EA6CDD0 0x26713 +0x8EA6CDD1 0x26755 +0x8EA6CDD2 0x26739 +0x8EA6CDD3 0x2671A +0x8EA6CDD4 0x440C +0x8EA6CDD5 0x26717 +0x8EA6CDD6 0x268E4 +0x8EA6CDD7 0x268E9 +0x8EA6CDD8 0x2458B +0x8EA6CDD9 0x26910 +0x8EA6CDDA 0x26912 +0x8EA6CDDB 0x2693F +0x8EA6CDDC 0x2696E +0x8EA6CDDD 0x24518 +0x8EA6CDDE 0x2F98C +0x8EA6CDDF 0x269D6 +0x8EA6CDE0 0x269D5 +0x8EA6CDE1 0x269D7 +0x8EA6CDE2 0x20B02 +0x8EA6CDE3 0x446D +0x8EA6CDE4 0x26A31 +0x8EA6CDE5 0x26A30 +0x8EA6CDE6 0x26A3A +0x8EA6CDE7 0x26B85 +0x8EA6CDE8 0x26B6B +0x8EA6CDE9 0x26C48 +0x8EA6CDEA 0x26C4B +0x8EA6CDEB 0x26C37 +0x8EA6CDEC 0x26C7B +0x8EA6CDED 0x26C6C +0x8EA6CDEE 0x26C85 +0x8EA6CDEF 0x26C65 +0x8EA6CDF0 0x26C36 +0x8EA6CDF1 0x26C86 +0x8EA6CDF2 0x26C34 +0x8EA6CDF3 0x26C68 +0x8EA6CDF4 0x26C5A +0x8EA6CDF5 0x26C58 +0x8EA6CDF6 0x26C72 +0x8EA6CDF7 0x26C6A +0x8EA6CDF8 0x26BD3 +0x8EA6CDF9 0x26C3C +0x8EA6CDFA 0x26C33 +0x8EA6CDFB 0x26C3B +0x8EA6CDFC 0x26C4D +0x8EA6CDFD 0x26C4F +0x8EA6CDFE 0x26C7C +0x8EA6CEA1 0x26CB0 +0x8EA6CEA2 0x26C5B +0x8EA6CEA3 0x26C55 +0x8EA6CEA4 0x26C64 +0x8EA6CEA5 0x26C6B +0x8EA6CEA6 0x26C53 +0x8EA6CEA7 0x44E6 +0x8EA6CEA8 0x26C57 +0x8EA6CEA9 0x26C5E +0x8EA6CEAA 0x26C6D +0x8EA6CEAB 0x26C35 +0x8EA6CEAC 0x26C69 +0x8EA6CEAD 0x26C59 +0x8EA6CEAE 0x26C66 +0x8EA6CEAF 0x26C50 +0x8EA6CEB0 0x26C51 +0x8EA6CEB1 0x26C5C +0x8EA6CEB2 0x26D5D +0x8EA6CEB3 0x26C87 +0x8EA6CEB4 0x26C78 +0x8EA6CEB5 0x26C49 +0x8EA6CEB6 0x26C4E +0x8EA6CEB7 0x26BF1 +0x8EA6CEB8 0x26C73 +0x8EA6CEB9 0x26C88 +0x8EA6CEBA 0x26BCF +0x8EA6CEBB 0x2F9A4 +0x8EA6CEBC 0x271B1 +0x8EA6CEBD 0x271B3 +0x8EA6CEBE 0x2729C +0x8EA6CEBF 0x272A4 +0x8EA6CEC0 0x27290 +0x8EA6CEC1 0x272B8 +0x8EA6CEC2 0x272A0 +0x8EA6CEC3 0x2729D +0x8EA6CEC4 0x272A8 +0x8EA6CEC5 0x272A9 +0x8EA6CEC6 0x2F9B9 +0x8EA6CEC7 0x272B1 +0x8EA6CEC8 0x27293 +0x8EA6CEC9 0x2729B +0x8EA6CECA 0x272A2 +0x8EA6CECB 0x272A1 +0x8EA6CECC 0x272B0 +0x8EA6CECD 0x272A7 +0x8EA6CECE 0x275B3 +0x8EA6CECF 0x8849 +0x8EA6CED0 0x275B4 +0x8EA6CED1 0x275F1 +0x8EA6CED2 0x275ED +0x8EA6CED3 0x275EC +0x8EA6CED4 0x27668 +0x8EA6CED5 0x27675 +0x8EA6CED6 0x2766A +0x8EA6CED7 0x27662 +0x8EA6CED8 0x27667 +0x8EA6CED9 0x27660 +0x8EA6CEDA 0x27677 +0x8EA6CEDB 0x2765F +0x8EA6CEDC 0x27679 +0x8EA6CEDD 0x27823 +0x8EA6CEDE 0x27821 +0x8EA6CEDF 0x2781C +0x8EA6CEE0 0x8999 +0x8EA6CEE1 0x2781F +0x8EA6CEE2 0x2781E +0x8EA6CEE3 0x278D6 +0x8EA6CEE4 0x278D3 +0x8EA6CEE5 0x278D9 +0x8EA6CEE6 0x278D7 +0x8EA6CEE7 0x278D4 +0x8EA6CEE8 0x278DC +0x8EA6CEE9 0x278D8 +0x8EA6CEEA 0x279A3 +0x8EA6CEEB 0x46D1 +0x8EA6CEEC 0x279BE +0x8EA6CEED 0x279A9 +0x8EA6CEEE 0x279A1 +0x8EA6CEEF 0x279A0 +0x8EA6CEF0 0x279AB +0x8EA6CEF1 0x279A2 +0x8EA6CEF2 0x279BA +0x8EA6CEF3 0x279C2 +0x8EA6CEF4 0x2799C +0x8EA6CEF5 0x279BB +0x8EA6CEF6 0x279AA +0x8EA6CEF7 0x279AC +0x8EA6CEF8 0x279A5 +0x8EA6CEF9 0x279C1 +0x8EA6CEFA 0x472C +0x8EA6CEFB 0x27BE2 +0x8EA6CEFC 0x27C36 +0x8EA6CEFD 0x27C3D +0x8EA6CEFE 0x27C3A +0x8EA6CFA1 0x22461 +0x8EA6CFA2 0x27C48 +0x8EA6CFA3 0x27C3C +0x8EA6CFA4 0x27CB7 +0x8EA6CFA5 0x27CAC +0x8EA6CFA6 0x27CB3 +0x8EA6CFA7 0x27CB6 +0x8EA6CFA8 0x27CB2 +0x8EA6CFA9 0x476E +0x8EA6CFAA 0x27D5D +0x8EA6CFAB 0x27D49 +0x8EA6CFAC 0x27D4E +0x8EA6CFAD 0x27D4F +0x8EA6CFAE 0x27D4D +0x8EA6CFAF 0x27D5C +0x8EA6CFB0 0x27E5D +0x8EA6CFB1 0x27EBB +0x8EA6CFB2 0x27ECE +0x8EA6CFB3 0x27EBF +0x8EA6CFB4 0x27EBA +0x8EA6CFB5 0x27EC3 +0x8EA6CFB6 0x47E5 +0x8EA6CFB7 0x28006 +0x8EA6CFB8 0x27FF8 +0x8EA6CFB9 0x27FFE +0x8EA6CFBA 0x28013 +0x8EA6CFBB 0x27FF6 +0x8EA6CFBC 0x47E6 +0x8EA6CFBD 0x28234 +0x8EA6CFBE 0x2822D +0x8EA6CFBF 0x2822A +0x8EA6CFC0 0x28235 +0x8EA6CFC1 0x2822C +0x8EA6CFC2 0x282D4 +0x8EA6CFC3 0x282DA +0x8EA6CFC4 0x282D3 +0x8EA6CFC5 0x282D2 +0x8EA6CFC6 0x282CE +0x8EA6CFC7 0x282CF +0x8EA6CFC8 0x489F +0x8EA6CFC9 0x284FD +0x8EA6CFCA 0x2850B +0x8EA6CFCB 0x284FE +0x8EA6CFCC 0x284F8 +0x8EA6CFCD 0x284F7 +0x8EA6CFCE 0x28517 +0x8EA6CFCF 0x284FA +0x8EA6CFD0 0x284F9 +0x8EA6CFD1 0x28500 +0x8EA6CFD2 0x284F5 +0x8EA6CFD3 0x284F1 +0x8EA6CFD4 0x28503 +0x8EA6CFD5 0x28505 +0x8EA6CFD6 0x2851C +0x8EA6CFD7 0x286AC +0x8EA6CFD8 0x2869A +0x8EA6CFD9 0x286AD +0x8EA6CFDA 0x286A0 +0x8EA6CFDB 0x2871B +0x8EA6CFDC 0x28725 +0x8EA6CFDD 0x28724 +0x8EA6CFDE 0x28726 +0x8EA6CFDF 0x28727 +0x8EA6CFE0 0x28728 +0x8EA6CFE1 0x2872A +0x8EA6CFE2 0x2871A +0x8EA6CFE3 0x2872E +0x8EA6CFE4 0x28715 +0x8EA6CFE5 0x28815 +0x8EA6CFE6 0x28814 +0x8EA6CFE7 0x28817 +0x8EA6CFE8 0x28818 +0x8EA6CFE9 0x2880F +0x8EA6CFEA 0x28813 +0x8EA6CFEB 0x2880B +0x8EA6CFEC 0x28822 +0x8EA6CFED 0x2137A +0x8EA6CFEE 0x28926 +0x8EA6CFEF 0x921F +0x8EA6CFF0 0x28951 +0x8EA6CFF1 0x2894D +0x8EA6CFF2 0x2894E +0x8EA6CFF3 0x2894A +0x8EA6CFF4 0x2894B +0x8EA6CFF5 0x2894C +0x8EA6CFF6 0x28950 +0x8EA6CFF7 0x28962 +0x8EA6CFF8 0x2894F +0x8EA6CFF9 0x28952 +0x8EA6CFFA 0x28C68 +0x8EA6CFFB 0x28C69 +0x8EA6CFFC 0x28CE5 +0x8EA6CFFD 0x28CF0 +0x8EA6CFFE 0x28CE1 +0x8EA6D0A1 0x28CE2 +0x8EA6D0A2 0x2F9F2 +0x8EA6D0A3 0x28EA5 +0x8EA6D0A4 0x28EA9 +0x8EA6D0A5 0x28EA4 +0x8EA6D0A6 0x28EAF +0x8EA6D0A7 0x28EAC +0x8EA6D0A8 0x28EAE +0x8EA6D0A9 0x28EAA +0x8EA6D0AA 0x28F95 +0x8EA6D0AB 0x28F99 +0x8EA6D0AC 0x28F93 +0x8EA6D0AD 0x28F9D +0x8EA6D0AE 0x28F98 +0x8EA6D0AF 0x28F9C +0x8EA6D0B0 0x28F97 +0x8EA6D0B1 0x4A0D +0x8EA6D0B2 0x29089 +0x8EA6D0B3 0x29087 +0x8EA6D0B4 0x291D7 +0x8EA6D0B5 0x291ED +0x8EA6D0B6 0x291F1 +0x8EA6D0B7 0x291F0 +0x8EA6D0B8 0x29205 +0x8EA6D0B9 0x29203 +0x8EA6D0BA 0x29204 +0x8EA6D0BB 0x2925F +0x8EA6D0BC 0x29457 +0x8EA6D0BD 0x2959C +0x8EA6D0BE 0x295A1 +0x8EA6D0BF 0x2959A +0x8EA6D0C0 0x2968F +0x8EA6D0C1 0x29693 +0x8EA6D0C2 0x2969E +0x8EA6D0C3 0x296A3 +0x8EA6D0C4 0x29698 +0x8EA6D0C5 0x29699 +0x8EA6D0C6 0x29695 +0x8EA6D0C7 0x2986E +0x8EA6D0C8 0x2986A +0x8EA6D0C9 0x29AF4 +0x8EA6D0CA 0x29AF7 +0x8EA6D0CB 0x29C79 +0x8EA6D0CC 0x29F8F +0x8EA6D0CD 0x29F91 +0x8EA6D0CE 0x2A00B +0x8EA6D0CF 0x2A502 +0x8EA6D0D0 0x20084 +0x8EA6D0D1 0x20104 +0x8EA6D0D2 0x20180 +0x8EA6D0D3 0x2032F +0x8EA6D0D4 0x2033F +0x8EA6D0D5 0x2033B +0x8EA6D0D6 0x20362 +0x8EA6D0D7 0x20344 +0x8EA6D0D8 0x20333 +0x8EA6D0D9 0x2035F +0x8EA6D0DA 0x2032B +0x8EA6D0DB 0x2F809 +0x8EA6D0DC 0x20339 +0x8EA6D0DD 0x20336 +0x8EA6D0DE 0x20348 +0x8EA6D0DF 0x20335 +0x8EA6D0E0 0x2036C +0x8EA6D0E1 0x20358 +0x8EA6D0E2 0x2033A +0x8EA6D0E3 0x204A8 +0x8EA6D0E4 0x204F4 +0x8EA6D0E5 0x20529 +0x8EA6D0E6 0x2059A +0x8EA6D0E7 0x20600 +0x8EA6D0E8 0x207BB +0x8EA6D0E9 0x207BD +0x8EA6D0EA 0x207B7 +0x8EA6D0EB 0x207B2 +0x8EA6D0EC 0x34F8 +0x8EA6D0ED 0x207A8 +0x8EA6D0EE 0x207AB +0x8EA6D0EF 0x207A6 +0x8EA6D0F0 0x207BC +0x8EA6D0F1 0x20897 +0x8EA6D0F2 0x20896 +0x8EA6D0F3 0x208F8 +0x8EA6D0F4 0x5313 +0x8EA6D0F5 0x20951 +0x8EA6D0F6 0x3533 +0x8EA6D0F7 0x209B5 +0x8EA6D0F8 0x209B4 +0x8EA6D0F9 0x209B6 +0x8EA6D0FA 0x353C +0x8EA6D0FB 0x209B7 +0x8EA6D0FC 0x20A05 +0x8EA6D0FD 0x20A23 +0x8EA6D0FE 0x20A95 +0x8EA6D1A1 0x20A98 +0x8EA6D1A2 0x354F +0x8EA6D1A3 0x20A94 +0x8EA6D1A4 0x20A93 +0x8EA6D1A5 0x20B07 +0x8EA6D1A6 0x20B73 +0x8EA6D1A7 0x20B71 +0x8EA6D1A8 0x20B72 +0x8EA6D1A9 0x20B78 +0x8EA6D1AA 0x20E5F +0x8EA6D1AB 0x20E6A +0x8EA6D1AC 0x20E67 +0x8EA6D1AD 0x20E6B +0x8EA6D1AE 0x20E69 +0x8EA6D1AF 0x20E8E +0x8EA6D1B0 0x20E49 +0x8EA6D1B1 0x20E80 +0x8EA6D1B2 0x35DC +0x8EA6D1B3 0x20E44 +0x8EA6D1B4 0x20E8F +0x8EA6D1B5 0x20E45 +0x8EA6D1B6 0x2F84C +0x8EA6D1B7 0x20E4F +0x8EA6D1B8 0x20E63 +0x8EA6D1B9 0x20E36 +0x8EA6D1BA 0x20E48 +0x8EA6D1BB 0x20E5C +0x8EA6D1BC 0x20E93 +0x8EA6D1BD 0x20E61 +0x8EA6D1BE 0x20E60 +0x8EA6D1BF 0x20E4E +0x8EA6D1C0 0x20E5E +0x8EA6D1C1 0x20E3F +0x8EA6D1C2 0x20EA4 +0x8EA6D1C3 0x55E0 +0x8EA6D1C4 0x20E68 +0x8EA6D1C5 0x2120B +0x8EA6D1C6 0x21211 +0x8EA6D1C7 0x2120D +0x8EA6D1C8 0x2120E +0x8EA6D1C9 0x213C2 +0x8EA6D1CA 0x2F857 +0x8EA6D1CB 0x213B0 +0x8EA6D1CC 0x213C3 +0x8EA6D1CD 0x213C8 +0x8EA6D1CE 0x21365 +0x8EA6D1CF 0x213D7 +0x8EA6D1D0 0x213BD +0x8EA6D1D1 0x213B8 +0x8EA6D1D2 0x213B6 +0x8EA6D1D3 0x213C7 +0x8EA6D1D4 0x213BC +0x8EA6D1D5 0x213B1 +0x8EA6D1D6 0x213AF +0x8EA6D1D7 0x2F85B +0x8EA6D1D8 0x21535 +0x8EA6D1D9 0x21530 +0x8EA6D1DA 0x2155D +0x8EA6D1DB 0x20B76 +0x8EA6D1DC 0x2156F +0x8EA6D1DD 0x215B0 +0x8EA6D1DE 0x2F85E +0x8EA6D1DF 0x215B4 +0x8EA6D1E0 0x2165C +0x8EA6D1E1 0x2165D +0x8EA6D1E2 0x21808 +0x8EA6D1E3 0x217EE +0x8EA6D1E4 0x2180B +0x8EA6D1E5 0x217F2 +0x8EA6D1E6 0x217FD +0x8EA6D1E7 0x217F1 +0x8EA6D1E8 0x21810 +0x8EA6D1E9 0x2F868 +0x8EA6D1EA 0x21814 +0x8EA6D1EB 0x2198B +0x8EA6D1EC 0x2198C +0x8EA6D1ED 0x21985 +0x8EA6D1EE 0x21A7A +0x8EA6D1EF 0x21A6C +0x8EA6D1F0 0x21A60 +0x8EA6D1F1 0x21A67 +0x8EA6D1F2 0x21A66 +0x8EA6D1F3 0x21A6A +0x8EA6D1F4 0x21A5F +0x8EA6D1F5 0x21A6D +0x8EA6D1F6 0x21A68 +0x8EA6D1F7 0x21A64 +0x8EA6D1F8 0x21B3A +0x8EA6D1F9 0x21B3B +0x8EA6D1FA 0x21B39 +0x8EA6D1FB 0x21C02 +0x8EA6D1FC 0x21C04 +0x8EA6D1FD 0x21C03 +0x8EA6D1FE 0x21CB4 +0x8EA6D2A1 0x21CB3 +0x8EA6D2A2 0x21CBB +0x8EA6D2A3 0x21CAC +0x8EA6D2A4 0x21CB6 +0x8EA6D2A5 0x21CB1 +0x8EA6D2A6 0x21CAF +0x8EA6D2A7 0x21CB5 +0x8EA6D2A8 0x21CBE +0x8EA6D2A9 0x21CB2 +0x8EA6D2AA 0x21D24 +0x8EA6D2AB 0x21EB6 +0x8EA6D2AC 0x21EB9 +0x8EA6D2AD 0x21EAC +0x8EA6D2AE 0x21EB0 +0x8EA6D2AF 0x21ED7 +0x8EA6D2B0 0x21EBB +0x8EA6D2B1 0x21EFE +0x8EA6D2B2 0x21ECB +0x8EA6D2B3 0x2F87F +0x8EA6D2B4 0x37F5 +0x8EA6D2B5 0x21EB3 +0x8EA6D2B6 0x21EBE +0x8EA6D2B7 0x21ECD +0x8EA6D2B8 0x21EBC +0x8EA6D2B9 0x21EBA +0x8EA6D2BA 0x21EC7 +0x8EA6D2BB 0x22116 +0x8EA6D2BC 0x2211B +0x8EA6D2BD 0x22117 +0x8EA6D2BE 0x22115 +0x8EA6D2BF 0x2219F +0x8EA6D2C0 0x2F88E +0x8EA6D2C1 0x22282 +0x8EA6D2C2 0x22283 +0x8EA6D2C3 0x2228E +0x8EA6D2C4 0x2226A +0x8EA6D2C5 0x22289 +0x8EA6D2C6 0x22294 +0x8EA6D2C7 0x22286 +0x8EA6D2C8 0x22290 +0x8EA6D2C9 0x22362 +0x8EA6D2CA 0x22390 +0x8EA6D2CB 0x2240C +0x8EA6D2CC 0x2240F +0x8EA6D2CD 0x38C3 +0x8EA6D2CE 0x224A5 +0x8EA6D2CF 0x224A7 +0x8EA6D2D0 0x224A6 +0x8EA6D2D1 0x224A4 +0x8EA6D2D2 0x22535 +0x8EA6D2D3 0x22538 +0x8EA6D2D4 0x22536 +0x8EA6D2D5 0x22543 +0x8EA6D2D6 0x22547 +0x8EA6D2D7 0x22537 +0x8EA6D2D8 0x22743 +0x8EA6D2D9 0x227A2 +0x8EA6D2DA 0x22751 +0x8EA6D2DB 0x22772 +0x8EA6D2DC 0x2276D +0x8EA6D2DD 0x2272F +0x8EA6D2DE 0x22754 +0x8EA6D2DF 0x2276E +0x8EA6D2E0 0x22755 +0x8EA6D2E1 0x22737 +0x8EA6D2E2 0x2274F +0x8EA6D2E3 0x22750 +0x8EA6D2E4 0x6139 +0x8EA6D2E5 0x2279E +0x8EA6D2E6 0x2F8A8 +0x8EA6D2E7 0x227B3 +0x8EA6D2E8 0x227A7 +0x8EA6D2E9 0x3971 +0x8EA6D2EA 0x227F9 +0x8EA6D2EB 0x22791 +0x8EA6D2EC 0x2F8A7 +0x8EA6D2ED 0x227B6 +0x8EA6D2EE 0x227DD +0x8EA6D2EF 0x22799 +0x8EA6D2F0 0x229DF +0x8EA6D2F1 0x229D5 +0x8EA6D2F2 0x247F5 +0x8EA6D2F3 0x22C28 +0x8EA6D2F4 0x22C40 +0x8EA6D2F5 0x22C71 +0x8EA6D2F6 0x22C98 +0x8EA6D2F7 0x22C95 +0x8EA6D2F8 0x22C65 +0x8EA6D2F9 0x22C78 +0x8EA6D2FA 0x22C7F +0x8EA6D2FB 0x22C60 +0x8EA6D2FC 0x22C7C +0x8EA6D2FD 0x22C96 +0x8EA6D2FE 0x22C6A +0x8EA6D3A1 0x22C79 +0x8EA6D3A2 0x22C73 +0x8EA6D3A3 0x22C72 +0x8EA6D3A4 0x22C7B +0x8EA6D3A5 0x22C70 +0x8EA6D3A6 0x22ED5 +0x8EA6D3A7 0x22ED7 +0x8EA6D3A8 0x22F8F +0x8EA6D3A9 0x22F89 +0x8EA6D3AA 0x22F9E +0x8EA6D3AB 0x22F87 +0x8EA6D3AC 0x22FA0 +0x8EA6D3AD 0x22F8D +0x8EA6D3AE 0x22F88 +0x8EA6D3AF 0x22F7F +0x8EA6D3B0 0x22F8C +0x8EA6D3B1 0x22F93 +0x8EA6D3B2 0x23059 +0x8EA6D3B3 0x295B0 +0x8EA6D3B4 0x230B1 +0x8EA6D3B5 0x251F4 +0x8EA6D3B6 0x230AF +0x8EA6D3B7 0x230B2 +0x8EA6D3B8 0x23108 +0x8EA6D3B9 0x2310A +0x8EA6D3BA 0x23136 +0x8EA6D3BB 0x23137 +0x8EA6D3BC 0x2F8CF +0x8EA6D3BD 0x3B01 +0x8EA6D3BE 0x23236 +0x8EA6D3BF 0x23229 +0x8EA6D3C0 0x2324A +0x8EA6D3C1 0x23226 +0x8EA6D3C2 0x23228 +0x8EA6D3C3 0x23224 +0x8EA6D3C4 0x2322A +0x8EA6D3C5 0x23248 +0x8EA6D3C6 0x23344 +0x8EA6D3C7 0x23384 +0x8EA6D3C8 0x2338C +0x8EA6D3C9 0x234C4 +0x8EA6D3CA 0x234DC +0x8EA6D3CB 0x23587 +0x8EA6D3CC 0x23553 +0x8EA6D3CD 0x2357F +0x8EA6D3CE 0x23531 +0x8EA6D3CF 0x23551 +0x8EA6D3D0 0x2354B +0x8EA6D3D1 0x23552 +0x8EA6D3D2 0x23580 +0x8EA6D3D3 0x235A5 +0x8EA6D3D4 0x23581 +0x8EA6D3D5 0x23543 +0x8EA6D3D6 0x23534 +0x8EA6D3D7 0x23536 +0x8EA6D3D8 0x23532 +0x8EA6D3D9 0x23548 +0x8EA6D3DA 0x23549 +0x8EA6D3DB 0x2353C +0x8EA6D3DC 0x2354D +0x8EA6D3DD 0x2354A +0x8EA6D3DE 0x2F8E6 +0x8EA6D3DF 0x2358A +0x8EA6D3E0 0x23546 +0x8EA6D3E1 0x2353E +0x8EA6D3E2 0x23583 +0x8EA6D3E3 0x23550 +0x8EA6D3E4 0x235B4 +0x8EA6D3E5 0x238F0 +0x8EA6D3E6 0x238E4 +0x8EA6D3E7 0x238E3 +0x8EA6D3E8 0x238E5 +0x8EA6D3E9 0x238E6 +0x8EA6D3EA 0x238E7 +0x8EA6D3EB 0x238E1 +0x8EA6D3EC 0x238EF +0x8EA6D3ED 0x238E8 +0x8EA6D3EE 0x238DD +0x8EA6D3EF 0x23903 +0x8EA6D3F0 0x23988 +0x8EA6D3F1 0x23A26 +0x8EA6D3F2 0x23A16 +0x8EA6D3F3 0x23A3B +0x8EA6D3F4 0x23A2F +0x8EA6D3F5 0x23A39 +0x8EA6D3F6 0x23A34 +0x8EA6D3F7 0x2F8F4 +0x8EA6D3F8 0x23A35 +0x8EA6D3F9 0x23A31 +0x8EA6D3FA 0x23A38 +0x8EA6D3FB 0x20B81 +0x8EA6D3FC 0x23AAA +0x8EA6D3FD 0x23AA3 +0x8EA6D3FE 0x23AA4 +0x8EA6D4A1 0x23AA0 +0x8EA6D4A2 0x23AA1 +0x8EA6D4A3 0x23AA9 +0x8EA6D4A4 0x23AA5 +0x8EA6D4A5 0x23BAF +0x8EA6D4A6 0x23BB1 +0x8EA6D4A7 0x23BAB +0x8EA6D4A8 0x23BAE +0x8EA6D4A9 0x23BB0 +0x8EA6D4AA 0x23BB3 +0x8EA6D4AB 0x23BAC +0x8EA6D4AC 0x23BA9 +0x8EA6D4AD 0x23BB2 +0x8EA6D4AE 0x23BA8 +0x8EA6D4AF 0x23BB4 +0x8EA6D4B0 0x23BC2 +0x8EA6D4B1 0x23C4F +0x8EA6D4B2 0x23C66 +0x8EA6D4B3 0x23E1E +0x8EA6D4B4 0x23E15 +0x8EA6D4B5 0x23E10 +0x8EA6D4B6 0x23E7F +0x8EA6D4B7 0x23E7E +0x8EA6D4B8 0x23E60 +0x8EA6D4B9 0x23ECC +0x8EA6D4BA 0x23EB2 +0x8EA6D4BB 0x23E62 +0x8EA6D4BC 0x23E8D +0x8EA6D4BD 0x23E8E +0x8EA6D4BE 0x23E77 +0x8EA6D4BF 0x23E7C +0x8EA6D4C0 0x23E8F +0x8EA6D4C1 0x23E5D +0x8EA6D4C2 0x23E6D +0x8EA6D4C3 0x23E63 +0x8EA6D4C4 0x23EAF +0x8EA6D4C5 0x23E90 +0x8EA6D4C6 0x23E7D +0x8EA6D4C7 0x23E7A +0x8EA6D4C8 0x23E06 +0x8EA6D4C9 0x2F90B +0x8EA6D4CA 0x23E68 +0x8EA6D4CB 0x23EB4 +0x8EA6D4CC 0x23E78 +0x8EA6D4CD 0x23EB1 +0x8EA6D4CE 0x6ED7 +0x8EA6D4CF 0x2F90C +0x8EA6D4D0 0x3D41 +0x8EA6D4D1 0x242E8 +0x8EA6D4D2 0x242E9 +0x8EA6D4D3 0x242C0 +0x8EA6D4D4 0x3DD7 +0x8EA6D4D5 0x242EA +0x8EA6D4D6 0x242B7 +0x8EA6D4D7 0x242BA +0x8EA6D4D8 0x242B5 +0x8EA6D4D9 0x2F91D +0x8EA6D4DA 0x242B4 +0x8EA6D4DB 0x242BC +0x8EA6D4DC 0x242C6 +0x8EA6D4DD 0x242B8 +0x8EA6D4DE 0x242BD +0x8EA6D4DF 0x242C2 +0x8EA6D4E0 0x2434D +0x8EA6D4E1 0x242F0 +0x8EA6D4E2 0x242C7 +0x8EA6D4E3 0x242C1 +0x8EA6D4E4 0x242C3 +0x8EA6D4E5 0x242F1 +0x8EA6D4E6 0x242EC +0x8EA6D4E7 0x3DE2 +0x8EA6D4E8 0x2451C +0x8EA6D4E9 0x24520 +0x8EA6D4EA 0x24558 +0x8EA6D4EB 0x24565 +0x8EA6D4EC 0x24564 +0x8EA6D4ED 0x2458C +0x8EA6D4EE 0x2458D +0x8EA6D4EF 0x245D9 +0x8EA6D4F0 0x245E0 +0x8EA6D4F1 0x24610 +0x8EA6D4F2 0x24694 +0x8EA6D4F3 0x24692 +0x8EA6D4F4 0x24696 +0x8EA6D4F5 0x24695 +0x8EA6D4F6 0x246BF +0x8EA6D4F7 0x246A0 +0x8EA6D4F8 0x3E45 +0x8EA6D4F9 0x247F4 +0x8EA6D4FA 0x247F6 +0x8EA6D4FB 0x247DC +0x8EA6D4FC 0x733D +0x8EA6D4FD 0x24816 +0x8EA6D4FE 0x24815 +0x8EA6D5A1 0x2481C +0x8EA6D5A2 0x2480F +0x8EA6D5A3 0x2482C +0x8EA6D5A4 0x24814 +0x8EA6D5A5 0x24825 +0x8EA6D5A6 0x24817 +0x8EA6D5A7 0x24812 +0x8EA6D5A8 0x2481E +0x8EA6D5A9 0x24980 +0x8EA6D5AA 0x249A8 +0x8EA6D5AB 0x249AF +0x8EA6D5AC 0x249D6 +0x8EA6D5AD 0x249E2 +0x8EA6D5AE 0x249B4 +0x8EA6D5AF 0x249B3 +0x8EA6D5B0 0x249B0 +0x8EA6D5B1 0x249B2 +0x8EA6D5B2 0x249A1 +0x8EA6D5B3 0x24B60 +0x8EA6D5B4 0x24B66 +0x8EA6D5B5 0x24B61 +0x8EA6D5B6 0x24B4E +0x8EA6D5B7 0x24B5D +0x8EA6D5B8 0x24B63 +0x8EA6D5B9 0x24BE6 +0x8EA6D5BA 0x24BEF +0x8EA6D5BB 0x24BEC +0x8EA6D5BC 0x24C98 +0x8EA6D5BD 0x24CA7 +0x8EA6D5BE 0x24C94 +0x8EA6D5BF 0x24C95 +0x8EA6D5C0 0x24C91 +0x8EA6D5C1 0x24C9D +0x8EA6D5C2 0x24C99 +0x8EA6D5C3 0x24C9B +0x8EA6D5C4 0x24C9C +0x8EA6D5C5 0x24D1D +0x8EA6D5C6 0x24D1C +0x8EA6D5C7 0x24DD0 +0x8EA6D5C8 0x24DE0 +0x8EA6D5C9 0x24DCB +0x8EA6D5CA 0x24DDB +0x8EA6D5CB 0x24DDA +0x8EA6D5CC 0x24DC2 +0x8EA6D5CD 0x24DD3 +0x8EA6D5CE 0x24DE5 +0x8EA6D5CF 0x24F7D +0x8EA6D5D0 0x24F7B +0x8EA6D5D1 0x24FFF +0x8EA6D5D2 0x3FF2 +0x8EA6D5D3 0x24FF9 +0x8EA6D5D4 0x25077 +0x8EA6D5D5 0x2507C +0x8EA6D5D6 0x25078 +0x8EA6D5D7 0x2507B +0x8EA6D5D8 0x2507A +0x8EA6D5D9 0x251D2 +0x8EA6D5DA 0x251CB +0x8EA6D5DB 0x251C9 +0x8EA6D5DC 0x251CE +0x8EA6D5DD 0x251E4 +0x8EA6D5DE 0x251CA +0x8EA6D5DF 0x251D0 +0x8EA6D5E0 0x22FA5 +0x8EA6D5E1 0x4049 +0x8EA6D5E2 0x251D9 +0x8EA6D5E3 0x251EE +0x8EA6D5E4 0x251DD +0x8EA6D5E5 0x25200 +0x8EA6D5E6 0x251E1 +0x8EA6D5E7 0x253DE +0x8EA6D5E8 0x253E2 +0x8EA6D5E9 0x253DA +0x8EA6D5EA 0x254CE +0x8EA6D5EB 0x2F94F +0x8EA6D5EC 0x254CF +0x8EA6D5ED 0x254DA +0x8EA6D5EE 0x254D1 +0x8EA6D5EF 0x254D4 +0x8EA6D5F0 0x254ED +0x8EA6D5F1 0x254CB +0x8EA6D5F2 0x254D5 +0x8EA6D5F3 0x254F1 +0x8EA6D5F4 0x2569C +0x8EA6D5F5 0x25688 +0x8EA6D5F6 0x25741 +0x8EA6D5F7 0x257D0 +0x8EA6D5F8 0x257F7 +0x8EA6D5F9 0x257CF +0x8EA6D5FA 0x257D1 +0x8EA6D5FB 0x257DB +0x8EA6D5FC 0x257DE +0x8EA6D5FD 0x257F8 +0x8EA6D5FE 0x257DC +0x8EA6D6A1 0x257D9 +0x8EA6D6A2 0x259A0 +0x8EA6D6A3 0x259B2 +0x8EA6D6A4 0x259A1 +0x8EA6D6A5 0x259AA +0x8EA6D6A6 0x259A9 +0x8EA6D6A7 0x41A9 +0x8EA6D6A8 0x259A6 +0x8EA6D6A9 0x2599C +0x8EA6D6AA 0x259B5 +0x8EA6D6AB 0x259A7 +0x8EA6D6AC 0x25A8E +0x8EA6D6AD 0x25A90 +0x8EA6D6AE 0x25A91 +0x8EA6D6AF 0x25B85 +0x8EA6D6B0 0x25B5B +0x8EA6D6B1 0x25B70 +0x8EA6D6B2 0x25B64 +0x8EA6D6B3 0x25B67 +0x8EA6D6B4 0x25B63 +0x8EA6D6B5 0x25B77 +0x8EA6D6B6 0x25B68 +0x8EA6D6B7 0x25B65 +0x8EA6D6B8 0x25B6A +0x8EA6D6B9 0x25B78 +0x8EA6D6BA 0x25B66 +0x8EA6D6BB 0x25E88 +0x8EA6D6BC 0x25E9E +0x8EA6D6BD 0x25E74 +0x8EA6D6BE 0x25E7A +0x8EA6D6BF 0x25E79 +0x8EA6D6C0 0x25E8B +0x8EA6D6C1 0x25E7F +0x8EA6D6C2 0x26013 +0x8EA6D6C3 0x2601E +0x8EA6D6C4 0x26017 +0x8EA6D6C5 0x2601A +0x8EA6D6C6 0x26022 +0x8EA6D6C7 0x26043 +0x8EA6D6C8 0x26019 +0x8EA6D6C9 0x2601F +0x8EA6D6CA 0x26027 +0x8EA6D6CB 0x26012 +0x8EA6D6CC 0x26024 +0x8EA6D6CD 0x26025 +0x8EA6D6CE 0x2035E +0x8EA6D6CF 0x26235 +0x8EA6D6D0 0x26234 +0x8EA6D6D1 0x262D1 +0x8EA6D6D2 0x262C4 +0x8EA6D6D3 0x262CA +0x8EA6D6D4 0x262C6 +0x8EA6D6D5 0x262CB +0x8EA6D6D6 0x262CD +0x8EA6D6D7 0x262E2 +0x8EA6D6D8 0x26389 +0x8EA6D6D9 0x2638B +0x8EA6D6DA 0x26386 +0x8EA6D6DB 0x26388 +0x8EA6D6DC 0x2638D +0x8EA6D6DD 0x2643B +0x8EA6D6DE 0x2643C +0x8EA6D6DF 0x2643D +0x8EA6D6E0 0x264F5 +0x8EA6D6E1 0x26579 +0x8EA6D6E2 0x26575 +0x8EA6D6E3 0x26582 +0x8EA6D6E4 0x2657F +0x8EA6D6E5 0x26585 +0x8EA6D6E6 0x26576 +0x8EA6D6E7 0x2657C +0x8EA6D6E8 0x2657E +0x8EA6D6E9 0x2657B +0x8EA6D6EA 0x26580 +0x8EA6D6EB 0x2657A +0x8EA6D6EC 0x22548 +0x8EA6D6ED 0x43CB +0x8EA6D6EE 0x2661D +0x8EA6D6EF 0x266F6 +0x8EA6D6F0 0x266F7 +0x8EA6D6F1 0x266F9 +0x8EA6D6F2 0x26763 +0x8EA6D6F3 0x2676C +0x8EA6D6F4 0x2676E +0x8EA6D6F5 0x26714 +0x8EA6D6F6 0x440D +0x8EA6D6F7 0x26767 +0x8EA6D6F8 0x2676F +0x8EA6D6F9 0x26769 +0x8EA6D6FA 0x26776 +0x8EA6D6FB 0x26795 +0x8EA6D6FC 0x26771 +0x8EA6D6FD 0x26761 +0x8EA6D6FE 0x26778 +0x8EA6D7A1 0x2676B +0x8EA6D7A2 0x26785 +0x8EA6D7A3 0x26784 +0x8EA6D7A4 0x26914 +0x8EA6D7A5 0x26976 +0x8EA6D7A6 0x259B6 +0x8EA6D7A7 0x26975 +0x8EA6D7A8 0x26974 +0x8EA6D7A9 0x269E2 +0x8EA6D7AA 0x26A3F +0x8EA6D7AB 0x26A44 +0x8EA6D7AC 0x26A3D +0x8EA6D7AD 0x26A47 +0x8EA6D7AE 0x26A48 +0x8EA6D7AF 0x26ADB +0x8EA6D7B0 0x26ADC +0x8EA6D7B1 0x26ADD +0x8EA6D7B2 0x26BE5 +0x8EA6D7B3 0x26BE6 +0x8EA6D7B4 0x26CC2 +0x8EA6D7B5 0x26D2E +0x8EA6D7B6 0x26D1D +0x8EA6D7B7 0x26CF8 +0x8EA6D7B8 0x26CF0 +0x8EA6D7B9 0x26CF6 +0x8EA6D7BA 0x26CC5 +0x8EA6D7BB 0x26CC6 +0x8EA6D7BC 0x26CFC +0x8EA6D7BD 0x26D52 +0x8EA6D7BE 0x26D2F +0x8EA6D7BF 0x26D10 +0x8EA6D7C0 0x26CF3 +0x8EA6D7C1 0x26CD2 +0x8EA6D7C2 0x26CEA +0x8EA6D7C3 0x26CDC +0x8EA6D7C4 0x26D1B +0x8EA6D7C5 0x26CFB +0x8EA6D7C6 0x26CC3 +0x8EA6D7C7 0x26D16 +0x8EA6D7C8 0x26D07 +0x8EA6D7C9 0x26CC9 +0x8EA6D7CA 0x26CD8 +0x8EA6D7CB 0x26D30 +0x8EA6D7CC 0x26D13 +0x8EA6D7CD 0x26D31 +0x8EA6D7CE 0x26CFA +0x8EA6D7CF 0x26CF2 +0x8EA6D7D0 0x26DE3 +0x8EA6D7D1 0x26CD5 +0x8EA6D7D2 0x26D01 +0x8EA6D7D3 0x26CF1 +0x8EA6D7D4 0x26D1C +0x8EA6D7D5 0x26CD6 +0x8EA6D7D6 0x26D08 +0x8EA6D7D7 0x26D0B +0x8EA6D7D8 0x26D17 +0x8EA6D7D9 0x26D20 +0x8EA6D7DA 0x26CCA +0x8EA6D7DB 0x26D32 +0x8EA6D7DC 0x26D05 +0x8EA6D7DD 0x26CE4 +0x8EA6D7DE 0x26CCE +0x8EA6D7DF 0x26D33 +0x8EA6D7E0 0x26D02 +0x8EA6D7E1 0x26D19 +0x8EA6D7E2 0x26D1E +0x8EA6D7E3 0x26CD3 +0x8EA6D7E4 0x26CF7 +0x8EA6D7E5 0x26CE8 +0x8EA6D7E6 0x26D1F +0x8EA6D7E7 0x26CF4 +0x8EA6D7E8 0x26DD8 +0x8EA6D7E9 0x271BF +0x8EA6D7EA 0x271BE +0x8EA6D7EB 0x271BD +0x8EA6D7EC 0x272DC +0x8EA6D7ED 0x272DD +0x8EA6D7EE 0x272AB +0x8EA6D7EF 0x272C9 +0x8EA6D7F0 0x272C8 +0x8EA6D7F1 0x272DF +0x8EA6D7F2 0x272D9 +0x8EA6D7F3 0x272DB +0x8EA6D7F4 0x272CC +0x8EA6D7F5 0x272E0 +0x8EA6D7F6 0x272EF +0x8EA6D7F7 0x272F3 +0x8EA6D7F8 0x272AE +0x8EA6D7F9 0x27301 +0x8EA6D7FA 0x275B7 +0x8EA6D7FB 0x275B9 +0x8EA6D7FC 0x275B6 +0x8EA6D7FD 0x275B8 +0x8EA6D7FE 0x275F6 +0x8EA6D8A1 0x275F3 +0x8EA6D8A2 0x275F5 +0x8EA6D8A3 0x275F2 +0x8EA6D8A4 0x27691 +0x8EA6D8A5 0x2769D +0x8EA6D8A6 0x2769B +0x8EA6D8A7 0x27692 +0x8EA6D8A8 0x2768D +0x8EA6D8A9 0x2769E +0x8EA6D8AA 0x2768C +0x8EA6D8AB 0x4631 +0x8EA6D8AC 0x2F9C7 +0x8EA6D8AD 0x27695 +0x8EA6D8AE 0x2F9C6 +0x8EA6D8AF 0x2768A +0x8EA6D8B0 0x2768E +0x8EA6D8B1 0x2769C +0x8EA6D8B2 0x277EF +0x8EA6D8B3 0x2782D +0x8EA6D8B4 0x27852 +0x8EA6D8B5 0x27835 +0x8EA6D8B6 0x27828 +0x8EA6D8B7 0x2782E +0x8EA6D8B8 0x278E5 +0x8EA6D8B9 0x279EA +0x8EA6D8BA 0x279F1 +0x8EA6D8BB 0x279EB +0x8EA6D8BC 0x279D8 +0x8EA6D8BD 0x279D0 +0x8EA6D8BE 0x279F3 +0x8EA6D8BF 0x279DB +0x8EA6D8C0 0x279CE +0x8EA6D8C1 0x46D5 +0x8EA6D8C2 0x279DA +0x8EA6D8C3 0x279D7 +0x8EA6D8C4 0x279E1 +0x8EA6D8C5 0x279F2 +0x8EA6D8C6 0x279C8 +0x8EA6D8C7 0x279D9 +0x8EA6D8C8 0x279DE +0x8EA6D8C9 0x279D1 +0x8EA6D8CA 0x279E7 +0x8EA6D8CB 0x279CF +0x8EA6D8CC 0x27BB7 +0x8EA6D8CD 0x27C47 +0x8EA6D8CE 0x27C42 +0x8EA6D8CF 0x27C43 +0x8EA6D8D0 0x2F9D3 +0x8EA6D8D1 0x27CC3 +0x8EA6D8D2 0x27CC1 +0x8EA6D8D3 0x27CC7 +0x8EA6D8D4 0x27D64 +0x8EA6D8D5 0x27D6A +0x8EA6D8D6 0x27D66 +0x8EA6D8D7 0x27D50 +0x8EA6D8D8 0x27D6E +0x8EA6D8D9 0x27D65 +0x8EA6D8DA 0x238EC +0x8EA6D8DB 0x27D7F +0x8EA6D8DC 0x2F9D5 +0x8EA6D8DD 0x27D9A +0x8EA6D8DE 0x27D69 +0x8EA6D8DF 0x27D72 +0x8EA6D8E0 0x27D6F +0x8EA6D8E1 0x27D7D +0x8EA6D8E2 0x27D70 +0x8EA6D8E3 0x27E60 +0x8EA6D8E4 0x27EC2 +0x8EA6D8E5 0x27EE7 +0x8EA6D8E6 0x27ED1 +0x8EA6D8E7 0x27EEB +0x8EA6D8E8 0x27ED4 +0x8EA6D8E9 0x27EDC +0x8EA6D8EA 0x27EDB +0x8EA6D8EB 0x28037 +0x8EA6D8EC 0x28025 +0x8EA6D8ED 0x2801F +0x8EA6D8EE 0x2801E +0x8EA6D8EF 0x28021 +0x8EA6D8F0 0x2801B +0x8EA6D8F1 0x28017 +0x8EA6D8F2 0x28022 +0x8EA6D8F3 0x2802A +0x8EA6D8F4 0x2801A +0x8EA6D8F5 0x2802D +0x8EA6D8F6 0x28023 +0x8EA6D8F7 0x28026 +0x8EA6D8F8 0x28036 +0x8EA6D8F9 0x27FFF +0x8EA6D8FA 0x2823A +0x8EA6D8FB 0x28240 +0x8EA6D8FC 0x28242 +0x8EA6D8FD 0x28238 +0x8EA6D8FE 0x2823B +0x8EA6D9A1 0x2823C +0x8EA6D9A2 0x28243 +0x8EA6D9A3 0x282E8 +0x8EA6D9A4 0x4856 +0x8EA6D9A5 0x282F9 +0x8EA6D9A6 0x282EB +0x8EA6D9A7 0x282F1 +0x8EA6D9A8 0x282E9 +0x8EA6D9A9 0x282EC +0x8EA6D9AA 0x28415 +0x8EA6D9AB 0x28447 +0x8EA6D9AC 0x28446 +0x8EA6D9AD 0x28445 +0x8EA6D9AE 0x28524 +0x8EA6D9AF 0x28556 +0x8EA6D9B0 0x28521 +0x8EA6D9B1 0x28527 +0x8EA6D9B2 0x2854D +0x8EA6D9B3 0x28531 +0x8EA6D9B4 0x2851E +0x8EA6D9B5 0x2852C +0x8EA6D9B6 0x2854F +0x8EA6D9B7 0x2852B +0x8EA6D9B8 0x28553 +0x8EA6D9B9 0x28551 +0x8EA6D9BA 0x28554 +0x8EA6D9BB 0x28529 +0x8EA6D9BC 0x28550 +0x8EA6D9BD 0x2851F +0x8EA6D9BE 0x28532 +0x8EA6D9BF 0x2852A +0x8EA6D9C0 0x2851D +0x8EA6D9C1 0x28528 +0x8EA6D9C2 0x2852E +0x8EA6D9C3 0x2852D +0x8EA6D9C4 0x286BC +0x8EA6D9C5 0x286BB +0x8EA6D9C6 0x286BD +0x8EA6D9C7 0x2F9E4 +0x8EA6D9C8 0x28747 +0x8EA6D9C9 0x28741 +0x8EA6D9CA 0x2F9E5 +0x8EA6D9CB 0x28749 +0x8EA6D9CC 0x48F4 +0x8EA6D9CD 0x2882E +0x8EA6D9CE 0x28827 +0x8EA6D9CF 0x2896A +0x8EA6D9D0 0x2897B +0x8EA6D9D1 0x28973 +0x8EA6D9D2 0x28975 +0x8EA6D9D3 0x28969 +0x8EA6D9D4 0x28979 +0x8EA6D9D5 0x28972 +0x8EA6D9D6 0x28C76 +0x8EA6D9D7 0x28C77 +0x8EA6D9D8 0x28C74 +0x8EA6D9D9 0x28C73 +0x8EA6D9DA 0x28D02 +0x8EA6D9DB 0x28CFE +0x8EA6D9DC 0x28D01 +0x8EA6D9DD 0x28CF9 +0x8EA6D9DE 0x28CF4 +0x8EA6D9DF 0x28ED3 +0x8EA6D9E0 0x28ED5 +0x8EA6D9E1 0x28ED8 +0x8EA6D9E2 0x28EC3 +0x8EA6D9E3 0x28ECA +0x8EA6D9E4 0x28ED0 +0x8EA6D9E5 0x28ECB +0x8EA6D9E6 0x28ECE +0x8EA6D9E7 0x28EC5 +0x8EA6D9E8 0x28EE6 +0x8EA6D9E9 0x28EC4 +0x8EA6D9EA 0x28EC0 +0x8EA6D9EB 0x28ED4 +0x8EA6D9EC 0x28EE8 +0x8EA6D9ED 0x28F76 +0x8EA6D9EE 0x28FA2 +0x8EA6D9EF 0x28FAE +0x8EA6D9F0 0x28FA8 +0x8EA6D9F1 0x28FA3 +0x8EA6D9F2 0x28FA7 +0x8EA6D9F3 0x28F96 +0x8EA6D9F4 0x28FA9 +0x8EA6D9F5 0x28FA5 +0x8EA6D9F6 0x28FAF +0x8EA6D9F7 0x28FA4 +0x8EA6D9F8 0x28FAB +0x8EA6D9F9 0x28FAA +0x8EA6D9FA 0x28FA6 +0x8EA6D9FB 0x28FA0 +0x8EA6D9FC 0x29098 +0x8EA6D9FD 0x291DB +0x8EA6D9FE 0x291F6 +0x8EA6DAA1 0x291F5 +0x8EA6DAA2 0x2920C +0x8EA6DAA3 0x2920A +0x8EA6DAA4 0x9775 +0x8EA6DAA5 0x29268 +0x8EA6DAA6 0x29263 +0x8EA6DAA7 0x29266 +0x8EA6DAA8 0x4A58 +0x8EA6DAA9 0x29264 +0x8EA6DAAA 0x2926A +0x8EA6DAAB 0x29269 +0x8EA6DAAC 0x29395 +0x8EA6DAAD 0x29402 +0x8EA6DAAE 0x2946A +0x8EA6DAAF 0x2945E +0x8EA6DAB0 0x29468 +0x8EA6DAB1 0x29469 +0x8EA6DAB2 0x29465 +0x8EA6DAB3 0x2F9FE +0x8EA6DAB4 0x295A7 +0x8EA6DAB5 0x295AE +0x8EA6DAB6 0x295A8 +0x8EA6DAB7 0x295B3 +0x8EA6DAB8 0x2969C +0x8EA6DAB9 0x296A9 +0x8EA6DABA 0x296B6 +0x8EA6DABB 0x296B3 +0x8EA6DABC 0x296B2 +0x8EA6DABD 0x2FA03 +0x8EA6DABE 0x296B8 +0x8EA6DABF 0x296C0 +0x8EA6DAC0 0x296BF +0x8EA6DAC1 0x296BA +0x8EA6DAC2 0x296A8 +0x8EA6DAC3 0x2983C +0x8EA6DAC4 0x29872 +0x8EA6DAC5 0x29871 +0x8EA6DAC6 0x29875 +0x8EA6DAC7 0x29873 +0x8EA6DAC8 0x29A17 +0x8EA6DAC9 0x29A15 +0x8EA6DACA 0x29A16 +0x8EA6DACB 0x29A1B +0x8EA6DACC 0x29AFA +0x8EA6DACD 0x29AF9 +0x8EA6DACE 0x29C2C +0x8EA6DACF 0x29C85 +0x8EA6DAD0 0x29C82 +0x8EA6DAD1 0x29C7F +0x8EA6DAD2 0x29C7D +0x8EA6DAD3 0x29C88 +0x8EA6DAD4 0x242F3 +0x8EA6DAD5 0x29D4E +0x8EA6DAD6 0x29D50 +0x8EA6DAD7 0x29F93 +0x8EA6DAD8 0x29F97 +0x8EA6DAD9 0x29F98 +0x8EA6DADA 0x29F9B +0x8EA6DADB 0x29F9C +0x8EA6DADC 0x29F96 +0x8EA6DADD 0x2A28B +0x8EA6DADE 0x2A2FD +0x8EA6DADF 0x2A2FC +0x8EA6DAE0 0x2FA17 +0x8EA6DAE1 0x2398B +0x8EA6DAE2 0x20108 +0x8EA6DAE3 0x20107 +0x8EA6DAE4 0x20373 +0x8EA6DAE5 0x203A2 +0x8EA6DAE6 0x203AF +0x8EA6DAE7 0x20382 +0x8EA6DAE8 0x2037B +0x8EA6DAE9 0x20374 +0x8EA6DAEA 0x203B0 +0x8EA6DAEB 0x20376 +0x8EA6DAEC 0x203B9 +0x8EA6DAED 0x2039E +0x8EA6DAEE 0x203B1 +0x8EA6DAEF 0x203A1 +0x8EA6DAF0 0x203B2 +0x8EA6DAF1 0x2036E +0x8EA6DAF2 0x2F80B +0x8EA6DAF3 0x3487 +0x8EA6DAF4 0x20378 +0x8EA6DAF5 0x2037A +0x8EA6DAF6 0x20383 +0x8EA6DAF7 0x2039A +0x8EA6DAF8 0x204F8 +0x8EA6DAF9 0x20531 +0x8EA6DAFA 0x20569 +0x8EA6DAFB 0x20568 +0x8EA6DAFC 0x2059C +0x8EA6DAFD 0x20604 +0x8EA6DAFE 0x20699 +0x8EA6DBA1 0x207C7 +0x8EA6DBA2 0x207C6 +0x8EA6DBA3 0x207DC +0x8EA6DBA4 0x207C4 +0x8EA6DBA5 0x207D8 +0x8EA6DBA6 0x207D4 +0x8EA6DBA7 0x207DF +0x8EA6DBA8 0x207D1 +0x8EA6DBA9 0x207D0 +0x8EA6DBAA 0x207D6 +0x8EA6DBAB 0x207CF +0x8EA6DBAC 0x208AD +0x8EA6DBAD 0x208AF +0x8EA6DBAE 0x208A7 +0x8EA6DBAF 0x208FD +0x8EA6DBB0 0x2095B +0x8EA6DBB1 0x2095A +0x8EA6DBB2 0x20A07 +0x8EA6DBB3 0x20A9D +0x8EA6DBB4 0x20A9B +0x8EA6DBB5 0x20AAB +0x8EA6DBB6 0x20AA4 +0x8EA6DBB7 0x20A9C +0x8EA6DBB8 0x20A9E +0x8EA6DBB9 0x20AA5 +0x8EA6DBBA 0x20AAA +0x8EA6DBBB 0x20AA6 +0x8EA6DBBC 0x20B0E +0x8EA6DBBD 0x20B7E +0x8EA6DBBE 0x20B7C +0x8EA6DBBF 0x20EEE +0x8EA6DBC0 0x20ED5 +0x8EA6DBC1 0x20EE9 +0x8EA6DBC2 0x20E42 +0x8EA6DBC3 0x20EE2 +0x8EA6DBC4 0x20F23 +0x8EA6DBC5 0x20ED9 +0x8EA6DBC6 0x20ED4 +0x8EA6DBC7 0x20EE3 +0x8EA6DBC8 0x20F15 +0x8EA6DBC9 0x20EEF +0x8EA6DBCA 0x20EF0 +0x8EA6DBCB 0x20ED6 +0x8EA6DBCC 0x20EDD +0x8EA6DBCD 0x20EF6 +0x8EA6DBCE 0x20F1C +0x8EA6DBCF 0x20ED8 +0x8EA6DBD0 0x20EDB +0x8EA6DBD1 0x20EDA +0x8EA6DBD2 0x20EED +0x8EA6DBD3 0x21411 +0x8EA6DBD4 0x21215 +0x8EA6DBD5 0x21218 +0x8EA6DBD6 0x2121A +0x8EA6DBD7 0x2121F +0x8EA6DBD8 0x21216 +0x8EA6DBD9 0x2F84D +0x8EA6DBDA 0x21219 +0x8EA6DBDB 0x2F84B +0x8EA6DBDC 0x213F0 +0x8EA6DBDD 0x21409 +0x8EA6DBDE 0x2141B +0x8EA6DBDF 0x27BE7 +0x8EA6DBE0 0x213F6 +0x8EA6DBE1 0x213F4 +0x8EA6DBE2 0x213B5 +0x8EA6DBE3 0x21410 +0x8EA6DBE4 0x213F2 +0x8EA6DBE5 0x21415 +0x8EA6DBE6 0x213F3 +0x8EA6DBE7 0x213F8 +0x8EA6DBE8 0x21539 +0x8EA6DBE9 0x2153B +0x8EA6DBEA 0x21536 +0x8EA6DBEB 0x2140E +0x8EA6DBEC 0x21572 +0x8EA6DBED 0x21574 +0x8EA6DBEE 0x215B9 +0x8EA6DBEF 0x215B7 +0x8EA6DBF0 0x215B8 +0x8EA6DBF1 0x21672 +0x8EA6DBF2 0x2166B +0x8EA6DBF3 0x2181D +0x8EA6DBF4 0x21837 +0x8EA6DBF5 0x21822 +0x8EA6DBF6 0x21843 +0x8EA6DBF7 0x2184D +0x8EA6DBF8 0x21838 +0x8EA6DBF9 0x2185B +0x8EA6DBFA 0x21879 +0x8EA6DBFB 0x2181B +0x8EA6DBFC 0x217F3 +0x8EA6DBFD 0x21991 +0x8EA6DBFE 0x21A7B +0x8EA6DCA1 0x21A94 +0x8EA6DCA2 0x2F86F +0x8EA6DCA3 0x21A96 +0x8EA6DCA4 0x21A7F +0x8EA6DCA5 0x21A8F +0x8EA6DCA6 0x21A84 +0x8EA6DCA7 0x21A7C +0x8EA6DCA8 0x21A8E +0x8EA6DCA9 0x21A90 +0x8EA6DCAA 0x21A98 +0x8EA6DCAB 0x21A83 +0x8EA6DCAC 0x21A80 +0x8EA6DCAD 0x21A93 +0x8EA6DCAE 0x21A82 +0x8EA6DCB0 0x21B3D +0x8EA6DCB1 0x21B41 +0x8EA6DCB2 0x21BA1 +0x8EA6DCB3 0x21B9F +0x8EA6DCB4 0x21C0A +0x8EA6DCB5 0x21C0D +0x8EA6DCB6 0x21CC8 +0x8EA6DCB7 0x21CC9 +0x8EA6DCB8 0x21CC7 +0x8EA6DCB9 0x21CCD +0x8EA6DCBA 0x21D25 +0x8EA6DCBB 0x21EB1 +0x8EA6DCBC 0x21EDC +0x8EA6DCBD 0x2F880 +0x8EA6DCBE 0x21EE5 +0x8EA6DCBF 0x21EF4 +0x8EA6DCC0 0x21EBF +0x8EA6DCC1 0x21EDB +0x8EA6DCC2 0x21EEA +0x8EA6DCC3 0x21EF2 +0x8EA6DCC4 0x37FA +0x8EA6DCC5 0x21EF1 +0x8EA6DCC6 0x21EED +0x8EA6DCC7 0x21EE6 +0x8EA6DCC8 0x22002 +0x8EA6DCC9 0x2F882 +0x8EA6DCCA 0x22125 +0x8EA6DCCB 0x22118 +0x8EA6DCCC 0x2211F +0x8EA6DCCD 0x22120 +0x8EA6DCCE 0x221CF +0x8EA6DCCF 0x2229D +0x8EA6DCD0 0x22299 +0x8EA6DCD1 0x222A8 +0x8EA6DCD2 0x22368 +0x8EA6DCD3 0x22366 +0x8EA6DCD4 0x22367 +0x8EA6DCD5 0x22391 +0x8EA6DCD6 0x22413 +0x8EA6DCD7 0x22415 +0x8EA6DCD8 0x2241D +0x8EA6DCD9 0x22416 +0x8EA6DCDA 0x22419 +0x8EA6DCDB 0x2246B +0x8EA6DCDC 0x22468 +0x8EA6DCDD 0x2246A +0x8EA6DCDE 0x2246D +0x8EA6DCDF 0x22469 +0x8EA6DCE0 0x224AA +0x8EA6DCE1 0x22557 +0x8EA6DCE2 0x22552 +0x8EA6DCE3 0x22550 +0x8EA6DCE4 0x2255F +0x8EA6DCE5 0x22567 +0x8EA6DCE6 0x2254F +0x8EA6DCE7 0x38F2 +0x8EA6DCE8 0x2255B +0x8EA6DCE9 0x2255C +0x8EA6DCEA 0x2255D +0x8EA6DCEB 0x2281F +0x8EA6DCEC 0x2279D +0x8EA6DCED 0x227B1 +0x8EA6DCEE 0x227B0 +0x8EA6DCEF 0x22794 +0x8EA6DCF0 0x227C3 +0x8EA6DCF1 0x227AF +0x8EA6DCF2 0x227A8 +0x8EA6DCF3 0x227DC +0x8EA6DCF4 0x22798 +0x8EA6DCF5 0x227C4 +0x8EA6DCF6 0x227A4 +0x8EA6DCF7 0x227AB +0x8EA6DCF8 0x227AA +0x8EA6DCF9 0x227A5 +0x8EA6DCFA 0x22821 +0x8EA6DCFB 0x227EB +0x8EA6DCFC 0x227E6 +0x8EA6DCFD 0x227F7 +0x8EA6DCFE 0x227F8 +0x8EA6DDA1 0x227FC +0x8EA6DDA2 0x227FA +0x8EA6DDA3 0x227E0 +0x8EA6DDA4 0x2F8AA +0x8EA6DDA5 0x227F6 +0x8EA6DDA6 0x2F8A9 +0x8EA6DDA7 0x227E1 +0x8EA6DDA8 0x229EC +0x8EA6DDA9 0x229E2 +0x8EA6DDAA 0x229E4 +0x8EA6DDAB 0x229F9 +0x8EA6DDAC 0x22C6F +0x8EA6DDAD 0x23A4C +0x8EA6DDAE 0x22CBB +0x8EA6DDAF 0x22CE1 +0x8EA6DDB0 0x22D00 +0x8EA6DDB1 0x22CD8 +0x8EA6DDB2 0x3A2F +0x8EA6DDB3 0x22CD6 +0x8EA6DDB4 0x22CE2 +0x8EA6DDB5 0x22CC3 +0x8EA6DDB6 0x22CB3 +0x8EA6DDB7 0x22CD2 +0x8EA6DDB8 0x2F8C1 +0x8EA6DDB9 0x22CCE +0x8EA6DDBA 0x22CD0 +0x8EA6DDBB 0x22CD5 +0x8EA6DDBC 0x22CB9 +0x8EA6DDBD 0x22CBA +0x8EA6DDBE 0x22CCF +0x8EA6DDBF 0x22CBD +0x8EA6DDC0 0x22EDB +0x8EA6DDC1 0x22FAA +0x8EA6DDC2 0x22FAD +0x8EA6DDC3 0x22FB8 +0x8EA6DDC4 0x22FB6 +0x8EA6DDC5 0x22FB5 +0x8EA6DDC6 0x22FAF +0x8EA6DDC7 0x22FB4 +0x8EA6DDC8 0x22FB7 +0x8EA6DDC9 0x22FA8 +0x8EA6DDCA 0x22FB9 +0x8EA6DDCB 0x22FBE +0x8EA6DDCC 0x23082 +0x8EA6DDCD 0x230BC +0x8EA6DDCE 0x230B8 +0x8EA6DDCF 0x230B6 +0x8EA6DDD0 0x230B9 +0x8EA6DDD1 0x3AC1 +0x8EA6DDD2 0x23110 +0x8EA6DDD3 0x23227 +0x8EA6DDD4 0x23269 +0x8EA6DDD5 0x23270 +0x8EA6DDD6 0x23256 +0x8EA6DDD7 0x2326B +0x8EA6DDD8 0x2327A +0x8EA6DDD9 0x2326C +0x8EA6DDDA 0x2326D +0x8EA6DDDB 0x2F8D5 +0x8EA6DDDC 0x267C1 +0x8EA6DDDD 0x2338D +0x8EA6DDDE 0x23390 +0x8EA6DDDF 0x235B6 +0x8EA6DDE0 0x23610 +0x8EA6DDE1 0x23612 +0x8EA6DDE2 0x235BA +0x8EA6DDE3 0x235BD +0x8EA6DDE4 0x23605 +0x8EA6DDE5 0x235C2 +0x8EA6DDE6 0x23607 +0x8EA6DDE7 0x235F5 +0x8EA6DDE8 0x2F8E9 +0x8EA6DDE9 0x235AF +0x8EA6DDEA 0x235F4 +0x8EA6DDEB 0x235F7 +0x8EA6DDEC 0x235F8 +0x8EA6DDED 0x23611 +0x8EA6DDEE 0x238F6 +0x8EA6DDEF 0x238F5 +0x8EA6DDF0 0x238FB +0x8EA6DDF1 0x23901 +0x8EA6DDF2 0x23900 +0x8EA6DDF3 0x23902 +0x8EA6DDF4 0x238FE +0x8EA6DDF5 0x238FA +0x8EA6DDF6 0x238FD +0x8EA6DDF7 0x3C40 +0x8EA6DDF8 0x23A37 +0x8EA6DDF9 0x23A49 +0x8EA6DDFA 0x23A4B +0x8EA6DDFB 0x23A46 +0x8EA6DDFC 0x23A47 +0x8EA6DDFD 0x23AB3 +0x8EA6DDFE 0x23AB2 +0x8EA6DEA1 0x23AB0 +0x8EA6DEA2 0x23AB7 +0x8EA6DEA3 0x23B11 +0x8EA6DEA4 0x23BCC +0x8EA6DEA5 0x23BDF +0x8EA6DEA6 0x23BD3 +0x8EA6DEA7 0x23BD5 +0x8EA6DEA8 0x23BDB +0x8EA6DEA9 0x23BC5 +0x8EA6DEAA 0x23BC8 +0x8EA6DEAB 0x23BC9 +0x8EA6DEAC 0x23BE2 +0x8EA6DEAD 0x23BCA +0x8EA6DEAE 0x23BD1 +0x8EA6DEAF 0x23BD2 +0x8EA6DEB0 0x23BDD +0x8EA6DEB1 0x23E6C +0x8EA6DEB2 0x23E73 +0x8EA6DEB3 0x23F21 +0x8EA6DEB4 0x23EF0 +0x8EA6DEB5 0x23F1F +0x8EA6DEB6 0x23F3B +0x8EA6DEB7 0x23F22 +0x8EA6DEB8 0x23F23 +0x8EA6DEB9 0x23EE8 +0x8EA6DEBA 0x23EDD +0x8EA6DEBB 0x3D3F +0x8EA6DEBC 0x23F1B +0x8EA6DEBD 0x23EED +0x8EA6DEBE 0x2F90E +0x8EA6DEBF 0x23EF2 +0x8EA6DEC0 0x3D46 +0x8EA6DEC1 0x23EDC +0x8EA6DEC2 0x23EE9 +0x8EA6DEC3 0x23F1D +0x8EA6DEC4 0x23EDA +0x8EA6DEC5 0x23EE6 +0x8EA6DEC6 0x24313 +0x8EA6DEC7 0x24315 +0x8EA6DEC8 0x24316 +0x8EA6DEC9 0x2433C +0x8EA6DECA 0x2430B +0x8EA6DECB 0x2431C +0x8EA6DECC 0x2433A +0x8EA6DECD 0x2433D +0x8EA6DECE 0x2439A +0x8EA6DECF 0x2431D +0x8EA6DED0 0x24309 +0x8EA6DED1 0x24308 +0x8EA6DED2 0x2433B +0x8EA6DED3 0x24522 +0x8EA6DED4 0x24526 +0x8EA6DED5 0x24525 +0x8EA6DED6 0x24524 +0x8EA6DED7 0x2039B +0x8EA6DED8 0x2458F +0x8EA6DED9 0x24590 +0x8EA6DEDA 0x245E6 +0x8EA6DEDB 0x245E3 +0x8EA6DEDC 0x245E5 +0x8EA6DEDD 0x24611 +0x8EA6DEDE 0x2F925 +0x8EA6DEDF 0x246AE +0x8EA6DEE0 0x246BE +0x8EA6DEE1 0x246B4 +0x8EA6DEE2 0x246B3 +0x8EA6DEE3 0x246AF +0x8EA6DEE4 0x24691 +0x8EA6DEE5 0x246C2 +0x8EA6DEE6 0x246B6 +0x8EA6DEE7 0x246B2 +0x8EA6DEE8 0x24857 +0x8EA6DEE9 0x2483B +0x8EA6DEEA 0x24858 +0x8EA6DEEB 0x24851 +0x8EA6DEEC 0x24841 +0x8EA6DEED 0x24839 +0x8EA6DEEE 0x3E8F +0x8EA6DEEF 0x24859 +0x8EA6DEF0 0x24845 +0x8EA6DEF1 0x24861 +0x8EA6DEF2 0x248E8 +0x8EA6DEF3 0x249FA +0x8EA6DEF4 0x249EA +0x8EA6DEF5 0x249EF +0x8EA6DEF6 0x249F2 +0x8EA6DEF7 0x249F0 +0x8EA6DEF8 0x24B08 +0x8EA6DEF9 0x24B70 +0x8EA6DEFA 0x24B6A +0x8EA6DEFB 0x24B73 +0x8EA6DEFC 0x24B68 +0x8EA6DEFD 0x24BC8 +0x8EA6DEFE 0x24BF2 +0x8EA6DFA1 0x20B7B +0x8EA6DFA2 0x24CAE +0x8EA6DFA3 0x24CAB +0x8EA6DFA4 0x24CB5 +0x8EA6DFA5 0x24CAF +0x8EA6DFA6 0x24CB2 +0x8EA6DFA7 0x24CB6 +0x8EA6DFA8 0x24CB0 +0x8EA6DFA9 0x24D1E +0x8EA6DFAA 0x24E03 +0x8EA6DFAB 0x24E06 +0x8EA6DFAC 0x24E1F +0x8EA6DFAD 0x3FAC +0x8EA6DFAE 0x24E0F +0x8EA6DFAF 0x24E02 +0x8EA6DFB0 0x24E19 +0x8EA6DFB1 0x24E18 +0x8EA6DFB2 0x24E22 +0x8EA6DFB3 0x24E15 +0x8EA6DFB4 0x24E07 +0x8EA6DFB5 0x24E0D +0x8EA6DFB6 0x24E24 +0x8EA6DFB7 0x24E0C +0x8EA6DFB8 0x24E1E +0x8EA6DFB9 0x24F89 +0x8EA6DFBA 0x24F8A +0x8EA6DFBB 0x2500A +0x8EA6DFBC 0x2500B +0x8EA6DFBD 0x25007 +0x8EA6DFBE 0x25004 +0x8EA6DFBF 0x25009 +0x8EA6DFC0 0x25084 +0x8EA6DFC1 0x25083 +0x8EA6DFC2 0x25218 +0x8EA6DFC3 0x25214 +0x8EA6DFC4 0x25205 +0x8EA6DFC5 0x25216 +0x8EA6DFC6 0x2520E +0x8EA6DFC7 0x25211 +0x8EA6DFC8 0x25208 +0x8EA6DFC9 0x2520B +0x8EA6DFCA 0x25215 +0x8EA6DFCB 0x25085 +0x8EA6DFCC 0x25237 +0x8EA6DFCD 0x2522A +0x8EA6DFCE 0x2520D +0x8EA6DFCF 0x2520F +0x8EA6DFD0 0x2537E +0x8EA6DFD1 0x25376 +0x8EA6DFD2 0x25377 +0x8EA6DFD3 0x253EC +0x8EA6DFD4 0x254FC +0x8EA6DFD5 0x25508 +0x8EA6DFD6 0x254FF +0x8EA6DFD7 0x25503 +0x8EA6DFD8 0x25510 +0x8EA6DFD9 0x25505 +0x8EA6DFDA 0x25506 +0x8EA6DFDB 0x254FA +0x8EA6DFDC 0x256C7 +0x8EA6DFDD 0x256C0 +0x8EA6DFDE 0x256C3 +0x8EA6DFDF 0x256A7 +0x8EA6DFE0 0x256A8 +0x8EA6DFE1 0x256AB +0x8EA6DFE2 0x256C1 +0x8EA6DFE3 0x256AA +0x8EA6DFE4 0x256C8 +0x8EA6DFE5 0x25743 +0x8EA6DFE6 0x25802 +0x8EA6DFE7 0x2580E +0x8EA6DFE8 0x25801 +0x8EA6DFE9 0x257FE +0x8EA6DFEA 0x25803 +0x8EA6DFEB 0x4168 +0x8EA6DFEC 0x25822 +0x8EA6DFED 0x25821 +0x8EA6DFEE 0x25807 +0x8EA6DFEF 0x25808 +0x8EA6DFF0 0x2580C +0x8EA6DFF1 0x259CA +0x8EA6DFF2 0x259BC +0x8EA6DFF3 0x259BE +0x8EA6DFF4 0x259BD +0x8EA6DFF5 0x2F95C +0x8EA6DFF6 0x259BB +0x8EA6DFF7 0x259B9 +0x8EA6DFF8 0x41AB +0x8EA6DFF9 0x259C5 +0x8EA6DFFA 0x25A99 +0x8EA6DFFB 0x25B6B +0x8EA6DFFC 0x25B93 +0x8EA6DFFD 0x25B94 +0x8EA6DFFE 0x25BA9 +0x8EA6E0A1 0x25BA0 +0x8EA6E0A2 0x25BA6 +0x8EA6E0A3 0x2F961 +0x8EA6E0A4 0x25BAB +0x8EA6E0A5 0x25B9E +0x8EA6E0A6 0x25B9B +0x8EA6E0A7 0x25B91 +0x8EA6E0A8 0x25B99 +0x8EA6E0A9 0x25EB6 +0x8EA6E0AA 0x25EB8 +0x8EA6E0AB 0x25E9A +0x8EA6E0AC 0x4291 +0x8EA6E0AD 0x25E98 +0x8EA6E0AE 0x25E9B +0x8EA6E0AF 0x25EB3 +0x8EA6E0B0 0x25EA2 +0x8EA6E0B1 0x222AA +0x8EA6E0B2 0x25EA0 +0x8EA6E0B3 0x25E9F +0x8EA6E0B4 0x2605B +0x8EA6E0B5 0x26070 +0x8EA6E0B6 0x26054 +0x8EA6E0B7 0x26071 +0x8EA6E0B8 0x26065 +0x8EA6E0B9 0x26051 +0x8EA6E0BA 0x2609D +0x8EA6E0BB 0x26061 +0x8EA6E0BC 0x2605A +0x8EA6E0BD 0x26074 +0x8EA6E0BE 0x2604C +0x8EA6E0BF 0x2604B +0x8EA6E0C0 0x2605E +0x8EA6E0C1 0x26058 +0x8EA6E0C2 0x26053 +0x8EA6E0C3 0x26052 +0x8EA6E0C4 0x2623B +0x8EA6E0C5 0x26239 +0x8EA6E0C6 0x262D6 +0x8EA6E0C7 0x262E7 +0x8EA6E0C8 0x262D7 +0x8EA6E0C9 0x262D8 +0x8EA6E0CA 0x262D9 +0x8EA6E0CB 0x262DA +0x8EA6E0CC 0x262DB +0x8EA6E0CD 0x262DC +0x8EA6E0CE 0x262E0 +0x8EA6E0CF 0x262E4 +0x8EA6E0D0 0x262DD +0x8EA6E0D1 0x262F5 +0x8EA6E0D2 0x262F1 +0x8EA6E0D3 0x26398 +0x8EA6E0D4 0x2639D +0x8EA6E0D5 0x26399 +0x8EA6E0D6 0x26450 +0x8EA6E0D7 0x26449 +0x8EA6E0D8 0x7FE4 +0x8EA6E0D9 0x26462 +0x8EA6E0DA 0x264D7 +0x8EA6E0DB 0x26501 +0x8EA6E0DC 0x264F7 +0x8EA6E0DD 0x2F97D +0x8EA6E0DE 0x2658C +0x8EA6E0DF 0x2659C +0x8EA6E0E0 0x8088 +0x8EA6E0E1 0x2661F +0x8EA6E0E2 0x2661E +0x8EA6E0E3 0x2673D +0x8EA6E0E4 0x2673F +0x8EA6E0E5 0x26711 +0x8EA6E0E6 0x26759 +0x8EA6E0E7 0x2673E +0x8EA6E0E8 0x26758 +0x8EA6E0E9 0x26800 +0x8EA6E0EA 0x2679E +0x8EA6E0EB 0x267B6 +0x8EA6E0EC 0x267AA +0x8EA6E0ED 0x267AF +0x8EA6E0EE 0x267AC +0x8EA6E0EF 0x4430 +0x8EA6E0F0 0x267C0 +0x8EA6E0F1 0x267A9 +0x8EA6E0F2 0x20B10 +0x8EA6E0F3 0x268EE +0x8EA6E0F4 0x26977 +0x8EA6E0F5 0x26979 +0x8EA6E0F6 0x2697A +0x8EA6E0F7 0x2697D +0x8EA6E0F8 0x2697F +0x8EA6E0F9 0x26983 +0x8EA6E0FA 0x26978 +0x8EA6E0FB 0x2697E +0x8EA6E0FC 0x269E4 +0x8EA6E0FD 0x269E6 +0x8EA6E0FE 0x269E5 +0x8EA6E1A1 0x445D +0x8EA6E1A2 0x26A4E +0x8EA6E1A3 0x26A59 +0x8EA6E1A4 0x4475 +0x8EA6E1A5 0x2F98E +0x8EA6E1A6 0x26A4F +0x8EA6E1A7 0x26A4A +0x8EA6E1A8 0x26AE3 +0x8EA6E1A9 0x26ADE +0x8EA6E1AA 0x26AE2 +0x8EA6E1AB 0x26C74 +0x8EA6E1AC 0x26CAC +0x8EA6E1AD 0x26C61 +0x8EA6E1AE 0x26C62 +0x8EA6E1AF 0x26C76 +0x8EA6E1B0 0x26C7A +0x8EA6E1B1 0x26C79 +0x8EA6E1B2 0x26C60 +0x8EA6E1B3 0x26D64 +0x8EA6E1B4 0x26E81 +0x8EA6E1B5 0x26DDF +0x8EA6E1B6 0x26D84 +0x8EA6E1B7 0x26D8A +0x8EA6E1B8 0x26D92 +0x8EA6E1B9 0x26D79 +0x8EA6E1BA 0x26DDE +0x8EA6E1BB 0x26D98 +0x8EA6E1BC 0x26D6C +0x8EA6E1BD 0x26DE1 +0x8EA6E1BE 0x2F9A5 +0x8EA6E1BF 0x26D7C +0x8EA6E1C0 0x26D72 +0x8EA6E1C1 0x26D81 +0x8EA6E1C2 0x26DE0 +0x8EA6E1C3 0x26D65 +0x8EA6E1C4 0x44FF +0x8EA6E1C5 0x26D6A +0x8EA6E1C6 0x26D97 +0x8EA6E1C7 0x26DAA +0x8EA6E1C8 0x26DD3 +0x8EA6E1C9 0x26DAB +0x8EA6E1CA 0x26D6E +0x8EA6E1CB 0x26DAC +0x8EA6E1CC 0x26D76 +0x8EA6E1CD 0x26D7B +0x8EA6E1CE 0x26DAD +0x8EA6E1CF 0x2F9A6 +0x8EA6E1D0 0x26D94 +0x8EA6E1D1 0x26DD7 +0x8EA6E1D2 0x26D70 +0x8EA6E1D3 0x26DD5 +0x8EA6E1D4 0x26DF1 +0x8EA6E1D5 0x26D7A +0x8EA6E1D6 0x26D68 +0x8EA6E1D7 0x26D96 +0x8EA6E1D8 0x450B +0x8EA6E1D9 0x26D73 +0x8EA6E1DA 0x26DAE +0x8EA6E1DB 0x26DDD +0x8EA6E1DC 0x26DDA +0x8EA6E1DD 0x26DAF +0x8EA6E1DE 0x26DB0 +0x8EA6E1DF 0x26DDB +0x8EA6E1E0 0x26D62 +0x8EA6E1E1 0x26DF8 +0x8EA6E1E2 0x271C2 +0x8EA6E1E3 0x271C7 +0x8EA6E1E4 0x271C8 +0x8EA6E1E5 0x271C5 +0x8EA6E1E6 0x271C3 +0x8EA6E1E7 0x271C6 +0x8EA6E1E8 0x272DE +0x8EA6E1E9 0x45C8 +0x8EA6E1EA 0x27311 +0x8EA6E1EB 0x27315 +0x8EA6E1EC 0x27328 +0x8EA6E1ED 0x27321 +0x8EA6E1EE 0x2732D +0x8EA6E1EF 0x27351 +0x8EA6E1F0 0x2732B +0x8EA6E1F1 0x27316 +0x8EA6E1F2 0x27324 +0x8EA6E1F3 0x27335 +0x8EA6E1F4 0x2731F +0x8EA6E1F5 0x27312 +0x8EA6E1F6 0x27310 +0x8EA6E1F7 0x27380 +0x8EA6E1F8 0x2733B +0x8EA6E1F9 0x27329 +0x8EA6E1FA 0x2732A +0x8EA6E1FB 0x2731B +0x8EA6E1FC 0x27318 +0x8EA6E1FD 0x27320 +0x8EA6E1FE 0x2733F +0x8EA6E2A1 0x2731C +0x8EA6E2A2 0x27326 +0x8EA6E2A3 0x2730B +0x8EA6E2A4 0x275BE +0x8EA6E2A5 0x275C4 +0x8EA6E2A6 0x275BD +0x8EA6E2A7 0x275FA +0x8EA6E2A8 0x275FB +0x8EA6E2A9 0x276B1 +0x8EA6E2AA 0x276B2 +0x8EA6E2AB 0x276B0 +0x8EA6E2AC 0x276B9 +0x8EA6E2AD 0x276A6 +0x8EA6E2AE 0x276BD +0x8EA6E2AF 0x276B6 +0x8EA6E2B0 0x276B8 +0x8EA6E2B1 0x276B4 +0x8EA6E2B2 0x276B3 +0x8EA6E2B3 0x276A7 +0x8EA6E2B4 0x276AE +0x8EA6E2B5 0x276BC +0x8EA6E2B6 0x277F2 +0x8EA6E2B7 0x277F3 +0x8EA6E2B8 0x277F4 +0x8EA6E2B9 0x2783B +0x8EA6E2BA 0x27840 +0x8EA6E2BB 0x27846 +0x8EA6E2BC 0x278F0 +0x8EA6E2BD 0x278EE +0x8EA6E2BE 0x278E8 +0x8EA6E2BF 0x278F1 +0x8EA6E2C0 0x278EB +0x8EA6E2C1 0x278EF +0x8EA6E2C2 0x279FC +0x8EA6E2C3 0x27A20 +0x8EA6E2C4 0x27A09 +0x8EA6E2C5 0x27A06 +0x8EA6E2C6 0x27A03 +0x8EA6E2C7 0x2F9CF +0x8EA6E2C8 0x27A19 +0x8EA6E2C9 0x27A24 +0x8EA6E2CA 0x27A1B +0x8EA6E2CB 0x27A1D +0x8EA6E2CC 0x279FD +0x8EA6E2CD 0x27A1E +0x8EA6E2CE 0x279F4 +0x8EA6E2CF 0x27A01 +0x8EA6E2D0 0x27A08 +0x8EA6E2D1 0x27A05 +0x8EA6E2D2 0x27A23 +0x8EA6E2D3 0x279FF +0x8EA6E2D4 0x27BEA +0x8EA6E2D5 0x27C4D +0x8EA6E2D6 0x27C4E +0x8EA6E2D7 0x27C56 +0x8EA6E2D8 0x27C57 +0x8EA6E2D9 0x27C51 +0x8EA6E2DA 0x27C55 +0x8EA6E2DB 0x27C54 +0x8EA6E2DC 0x27CCB +0x8EA6E2DD 0x27CD4 +0x8EA6E2DE 0x27CD1 +0x8EA6E2DF 0x27CCF +0x8EA6E2E0 0x27CD2 +0x8EA6E2E1 0x27CCA +0x8EA6E2E2 0x27CD6 +0x8EA6E2E3 0x27D8B +0x8EA6E2E4 0x27D88 +0x8EA6E2E5 0x27D85 +0x8EA6E2E6 0x27D89 +0x8EA6E2E7 0x21A9B +0x8EA6E2E8 0x27DBB +0x8EA6E2E9 0x27D8C +0x8EA6E2EA 0x4774 +0x8EA6E2EB 0x27D99 +0x8EA6E2EC 0x27D8A +0x8EA6E2ED 0x27EEC +0x8EA6E2EE 0x27EEF +0x8EA6E2EF 0x27EF9 +0x8EA6E2F0 0x27F09 +0x8EA6E2F1 0x27EF8 +0x8EA6E2F2 0x27EF3 +0x8EA6E2F3 0x27F00 +0x8EA6E2F4 0x27F1D +0x8EA6E2F5 0x47AC +0x8EA6E2F6 0x27EFD +0x8EA6E2F7 0x28048 +0x8EA6E2F8 0x2805C +0x8EA6E2F9 0x28055 +0x8EA6E2FA 0x2805E +0x8EA6E2FB 0x28049 +0x8EA6E2FC 0x28063 +0x8EA6E2FD 0x28060 +0x8EA6E2FE 0x28053 +0x8EA6E3A1 0x28062 +0x8EA6E3A2 0x28040 +0x8EA6E3A3 0x28249 +0x8EA6E3A4 0x2824A +0x8EA6E3A5 0x2824C +0x8EA6E3A6 0x2824D +0x8EA6E3A7 0x2830A +0x8EA6E3A8 0x28306 +0x8EA6E3A9 0x2832F +0x8EA6E3AA 0x28321 +0x8EA6E3AB 0x28307 +0x8EA6E3AC 0x28309 +0x8EA6E3AD 0x28302 +0x8EA6E3AE 0x28316 +0x8EA6E3AF 0x28303 +0x8EA6E3B0 0x2830B +0x8EA6E3B1 0x2830F +0x8EA6E3B2 0x28560 +0x8EA6E3B3 0x28568 +0x8EA6E3B4 0x2855E +0x8EA6E3B5 0x2855D +0x8EA6E3B6 0x28563 +0x8EA6E3B7 0x2855F +0x8EA6E3B8 0x28564 +0x8EA6E3B9 0x28578 +0x8EA6E3BA 0x28561 +0x8EA6E3BB 0x28569 +0x8EA6E3BC 0x28565 +0x8EA6E3BD 0x286DA +0x8EA6E3BE 0x286E6 +0x8EA6E3BF 0x286DB +0x8EA6E3C0 0x286DC +0x8EA6E3C1 0x28739 +0x8EA6E3C2 0x28757 +0x8EA6E3C3 0x28755 +0x8EA6E3C4 0x28765 +0x8EA6E3C5 0x28761 +0x8EA6E3C6 0x28754 +0x8EA6E3C7 0x28845 +0x8EA6E3C8 0x28841 +0x8EA6E3C9 0x2883E +0x8EA6E3CA 0x28837 +0x8EA6E3CB 0x28912 +0x8EA6E3CC 0x28913 +0x8EA6E3CD 0x2892C +0x8EA6E3CE 0x28996 +0x8EA6E3CF 0x2F9E9 +0x8EA6E3D0 0x2899C +0x8EA6E3D1 0x2899D +0x8EA6E3D2 0x28985 +0x8EA6E3D3 0x2F9E8 +0x8EA6E3D4 0x2899F +0x8EA6E3D5 0x289A3 +0x8EA6E3D6 0x28C82 +0x8EA6E3D7 0x28C83 +0x8EA6E3D8 0x2F9EE +0x8EA6E3D9 0x28D1D +0x8EA6E3DA 0x28D14 +0x8EA6E3DB 0x28D1F +0x8EA6E3DC 0x28D20 +0x8EA6E3DD 0x28E47 +0x8EA6E3DE 0x28E80 +0x8EA6E3DF 0x28EC9 +0x8EA6E3E0 0x28EF9 +0x8EA6E3E1 0x28F06 +0x8EA6E3E2 0x28EF0 +0x8EA6E3E3 0x28EF8 +0x8EA6E3E4 0x28EEF +0x8EA6E3E5 0x28EFD +0x8EA6E3E6 0x28EF1 +0x8EA6E3E7 0x28EFE +0x8EA6E3E8 0x28FB8 +0x8EA6E3E9 0x28FC0 +0x8EA6E3EA 0x28FC3 +0x8EA6E3EB 0x28FB5 +0x8EA6E3EC 0x28FB6 +0x8EA6E3ED 0x28FC9 +0x8EA6E3EE 0x2F9F3 +0x8EA6E3EF 0x28FBD +0x8EA6E3F0 0x28FBA +0x8EA6E3F1 0x28FBF +0x8EA6E3F2 0x28FB3 +0x8EA6E3F3 0x28FC6 +0x8EA6E3F4 0x28FB2 +0x8EA6E3F5 0x28FBC +0x8EA6E3F6 0x28FB7 +0x8EA6E3F7 0x28FB9 +0x8EA6E3F8 0x28FC8 +0x8EA6E3F9 0x290B5 +0x8EA6E3FA 0x290B3 +0x8EA6E3FB 0x4A16 +0x8EA6E3FC 0x290AC +0x8EA6E3FD 0x290A9 +0x8EA6E3FE 0x290AD +0x8EA6E4A1 0x29211 +0x8EA6E4A2 0x2920D +0x8EA6E4A3 0x29216 +0x8EA6E4A4 0x29289 +0x8EA6E4A5 0x2927C +0x8EA6E4A6 0x2928B +0x8EA6E4A7 0x2927B +0x8EA6E4A8 0x29288 +0x8EA6E4A9 0x29284 +0x8EA6E4AA 0x2939D +0x8EA6E4AB 0x29398 +0x8EA6E4AC 0x29488 +0x8EA6E4AD 0x29486 +0x8EA6E4AE 0x29482 +0x8EA6E4AF 0x2948B +0x8EA6E4B0 0x2F9FF +0x8EA6E4B1 0x29471 +0x8EA6E4B2 0x29472 +0x8EA6E4B3 0x29481 +0x8EA6E4B4 0x2948C +0x8EA6E4B5 0x29480 +0x8EA6E4B6 0x29489 +0x8EA6E4B7 0x295BB +0x8EA6E4B8 0x295C1 +0x8EA6E4B9 0x295BE +0x8EA6E4BA 0x2FA01 +0x8EA6E4BB 0x295BD +0x8EA6E4BC 0x296C1 +0x8EA6E4BD 0x296B4 +0x8EA6E4BE 0x296B7 +0x8EA6E4BF 0x296C8 +0x8EA6E4C0 0x4B3B +0x8EA6E4C1 0x296D3 +0x8EA6E4C2 0x296D0 +0x8EA6E4C3 0x296B0 +0x8EA6E4C4 0x296CA +0x8EA6E4C5 0x296CD +0x8EA6E4C6 0x29815 +0x8EA6E4C7 0x29819 +0x8EA6E4C8 0x29817 +0x8EA6E4C9 0x2983F +0x8EA6E4CA 0x29840 +0x8EA6E4CB 0x29844 +0x8EA6E4CC 0x2987C +0x8EA6E4CD 0x29878 +0x8EA6E4CE 0x29879 +0x8EA6E4CF 0x29888 +0x8EA6E4D0 0x2FA06 +0x8EA6E4D1 0x29889 +0x8EA6E4D2 0x2987D +0x8EA6E4D3 0x29A23 +0x8EA6E4D4 0x29A24 +0x8EA6E4D5 0x29A26 +0x8EA6E4D6 0x29A22 +0x8EA6E4D7 0x29A27 +0x8EA6E4D8 0x29A1F +0x8EA6E4D9 0x29AC9 +0x8EA6E4DA 0x29AC3 +0x8EA6E4DB 0x29B0A +0x8EA6E4DC 0x29B0B +0x8EA6E4DD 0x29B04 +0x8EA6E4DE 0x4BEF +0x8EA6E4DF 0x29B03 +0x8EA6E4E0 0x29B01 +0x8EA6E4E1 0x29B09 +0x8EA6E4E2 0x29C0F +0x8EA6E4E3 0x29C2E +0x8EA6E4E4 0x29C2D +0x8EA6E4E5 0x29C91 +0x8EA6E4E6 0x29C99 +0x8EA6E4E7 0x29C9E +0x8EA6E4E8 0x29C90 +0x8EA6E4E9 0x29C94 +0x8EA6E4EA 0x29C9D +0x8EA6E4EB 0x29C98 +0x8EA6E4EC 0x29C9B +0x8EA6E4ED 0x29C9C +0x8EA6E4EE 0x29C9A +0x8EA6E4EF 0x29D54 +0x8EA6E4F0 0x29F9D +0x8EA6E4F1 0x29F9F +0x8EA6E4F2 0x29FA3 +0x8EA6E4F3 0x29FA4 +0x8EA6E4F4 0x29FA5 +0x8EA6E4F5 0x2A302 +0x8EA6E4F6 0x2A417 +0x8EA6E4F7 0x2A41B +0x8EA6E4F8 0x2A419 +0x8EA6E4F9 0x2A4D1 +0x8EA6E4FA 0x21537 +0x8EA7A1A1 0x20055 +0x8EA7A1A2 0x20182 +0x8EA7A1A3 0x20189 +0x8EA7A1A4 0x20187 +0x8EA7A1A5 0x203BE +0x8EA7A1A6 0x203BD +0x8EA7A1A7 0x203CA +0x8EA7A1A8 0x203D4 +0x8EA7A1A9 0x203BC +0x8EA7A1AA 0x203C4 +0x8EA7A1AB 0x203C1 +0x8EA7A1AC 0x203C2 +0x8EA7A1AD 0x203D7 +0x8EA7A1AE 0x20370 +0x8EA7A1AF 0x203BA +0x8EA7A1B0 0x203E3 +0x8EA7A1B1 0x203BB +0x8EA7A1B2 0x204B1 +0x8EA7A1B3 0x204B6 +0x8EA7A1B4 0x204B0 +0x8EA7A1B5 0x2056C +0x8EA7A1B6 0x2060D +0x8EA7A1B7 0x20607 +0x8EA7A1B8 0x207F1 +0x8EA7A1B9 0x207F5 +0x8EA7A1BA 0x207ED +0x8EA7A1BB 0x207EF +0x8EA7A1BC 0x207EB +0x8EA7A1BD 0x207EC +0x8EA7A1BE 0x207EE +0x8EA7A1BF 0x20807 +0x8EA7A1C0 0x209C4 +0x8EA7A1C1 0x20A08 +0x8EA7A1C2 0x20AB3 +0x8EA7A1C3 0x20AAD +0x8EA7A1C4 0x20AB0 +0x8EA7A1C5 0x20B11 +0x8EA7A1C6 0x2018A +0x8EA7A1C7 0x20F83 +0x8EA7A1C8 0x20F7A +0x8EA7A1C9 0x20F82 +0x8EA7A1CA 0x20F68 +0x8EA7A1CB 0x20F71 +0x8EA7A1CC 0x20FB0 +0x8EA7A1CD 0x20FAF +0x8EA7A1CE 0x35F6 +0x8EA7A1CF 0x20F6C +0x8EA7A1D0 0x20F6F +0x8EA7A1D1 0x20F62 +0x8EA7A1D2 0x20F65 +0x8EA7A1D3 0x20F81 +0x8EA7A1D4 0x20F7F +0x8EA7A1D5 0x20F64 +0x8EA7A1D6 0x20F73 +0x8EA7A1D7 0x20F6E +0x8EA7A1D8 0x20F67 +0x8EA7A1D9 0x20F74 +0x8EA7A1DA 0x20F7D +0x8EA7A1DB 0x20F78 +0x8EA7A1DC 0x20F85 +0x8EA7A1DD 0x20FAA +0x8EA7A1DE 0x20F88 +0x8EA7A1DF 0x20FA6 +0x8EA7A1E0 0x2F84E +0x8EA7A1E1 0x20F8A +0x8EA7A1E2 0x20F84 +0x8EA7A1E3 0x5655 +0x8EA7A1E4 0x21224 +0x8EA7A1E5 0x21222 +0x8EA7A1E6 0x21223 +0x8EA7A1E7 0x21432 +0x8EA7A1E8 0x2145B +0x8EA7A1E9 0x2144F +0x8EA7A1EA 0x3667 +0x8EA7A1EB 0x21426 +0x8EA7A1EC 0x2143E +0x8EA7A1ED 0x21442 +0x8EA7A1EE 0x21447 +0x8EA7A1EF 0x21422 +0x8EA7A1F0 0x2069B +0x8EA7A1F1 0x2144A +0x8EA7A1F2 0x2141F +0x8EA7A1F3 0x21449 +0x8EA7A1F4 0x2142B +0x8EA7A1F5 0x21433 +0x8EA7A1F6 0x2F858 +0x8EA7A1F7 0x2142A +0x8EA7A1F8 0x21428 +0x8EA7A1F9 0x2153D +0x8EA7A1FA 0x2153C +0x8EA7A1FB 0x215BF +0x8EA7A1FC 0x21679 +0x8EA7A1FD 0x21680 +0x8EA7A1FE 0x2167C +0x8EA7A2A1 0x2167A +0x8EA7A2A2 0x21678 +0x8EA7A2A3 0x21882 +0x8EA7A2A4 0x2185C +0x8EA7A2A5 0x2185A +0x8EA7A2A6 0x2184B +0x8EA7A2A7 0x2187C +0x8EA7A2A8 0x2187F +0x8EA7A2A9 0x2181F +0x8EA7A2AA 0x21889 +0x8EA7A2AB 0x2188B +0x8EA7A2AC 0x21857 +0x8EA7A2AD 0x2187E +0x8EA7A2AE 0x2187D +0x8EA7A2AF 0x21853 +0x8EA7A2B0 0x21A9F +0x8EA7A2B1 0x21ABC +0x8EA7A2B2 0x21AA5 +0x8EA7A2B3 0x21A86 +0x8EA7A2B4 0x21ADC +0x8EA7A2B5 0x21AA4 +0x8EA7A2B6 0x21AB6 +0x8EA7A2B7 0x21AA2 +0x8EA7A2B8 0x21AB4 +0x8EA7A2B9 0x21B48 +0x8EA7A2BA 0x21B46 +0x8EA7A2BB 0x21BA7 +0x8EA7A2BC 0x21C14 +0x8EA7A2BD 0x21C12 +0x8EA7A2BE 0x21C11 +0x8EA7A2BF 0x21CE1 +0x8EA7A2C0 0x21CD0 +0x8EA7A2C1 0x21D26 +0x8EA7A2C2 0x21D28 +0x8EA7A2C3 0x21D29 +0x8EA7A2C4 0x21F2F +0x8EA7A2C5 0x21F0D +0x8EA7A2C6 0x21F25 +0x8EA7A2C7 0x21F14 +0x8EA7A2C8 0x21F3C +0x8EA7A2C9 0x21F0B +0x8EA7A2CA 0x21F11 +0x8EA7A2CB 0x21F30 +0x8EA7A2CC 0x21F18 +0x8EA7A2CD 0x21F19 +0x8EA7A2CE 0x21F36 +0x8EA7A2CF 0x21F17 +0x8EA7A2D0 0x21F10 +0x8EA7A2D1 0x21F15 +0x8EA7A2D2 0x22003 +0x8EA7A2D3 0x22029 +0x8EA7A2D4 0x2204C +0x8EA7A2D5 0x2213F +0x8EA7A2D6 0x2213E +0x8EA7A2D7 0x22134 +0x8EA7A2D8 0x22142 +0x8EA7A2D9 0x22135 +0x8EA7A2DA 0x207F3 +0x8EA7A2DB 0x221CD +0x8EA7A2DC 0x221D1 +0x8EA7A2DD 0x221D2 +0x8EA7A2DE 0x222AD +0x8EA7A2DF 0x222BA +0x8EA7A2E0 0x222C1 +0x8EA7A2E1 0x222BB +0x8EA7A2E2 0x222B4 +0x8EA7A2E3 0x222BC +0x8EA7A2E4 0x2236C +0x8EA7A2E5 0x22392 +0x8EA7A2E6 0x22421 +0x8EA7A2E7 0x22424 +0x8EA7A2E8 0x23F19 +0x8EA7A2E9 0x224AD +0x8EA7A2EA 0x224AE +0x8EA7A2EB 0x224AB +0x8EA7A2EC 0x224AC +0x8EA7A2ED 0x22570 +0x8EA7A2EE 0x22576 +0x8EA7A2EF 0x22571 +0x8EA7A2F0 0x22577 +0x8EA7A2F1 0x617F +0x8EA7A2F2 0x227EC +0x8EA7A2F3 0x2281C +0x8EA7A2F4 0x227FB +0x8EA7A2F5 0x227EE +0x8EA7A2F6 0x228E2 +0x8EA7A2F7 0x227FD +0x8EA7A2F8 0x2281E +0x8EA7A2F9 0x2283B +0x8EA7A2FA 0x2284A +0x8EA7A2FB 0x2F8AE +0x8EA7A2FC 0x3992 +0x8EA7A2FD 0x2287D +0x8EA7A2FE 0x22856 +0x8EA7A3A1 0x22844 +0x8EA7A3A2 0x2284B +0x8EA7A3A3 0x229FA +0x8EA7A3A4 0x229E8 +0x8EA7A3A5 0x229F8 +0x8EA7A3A6 0x229FF +0x8EA7A3A7 0x229F7 +0x8EA7A3A8 0x229F6 +0x8EA7A3A9 0x229FE +0x8EA7A3AA 0x22A07 +0x8EA7A3AB 0x22A5D +0x8EA7A3AC 0x22CD4 +0x8EA7A3AD 0x2F8C3 +0x8EA7A3AE 0x22CC8 +0x8EA7A3AF 0x22CC5 +0x8EA7A3B0 0x2F8C0 +0x8EA7A3B1 0x22CC9 +0x8EA7A3B2 0x22D4D +0x8EA7A3B3 0x22D20 +0x8EA7A3B4 0x22D36 +0x8EA7A3B5 0x22D35 +0x8EA7A3B6 0x22D88 +0x8EA7A3B7 0x22D25 +0x8EA7A3B8 0x22D21 +0x8EA7A3B9 0x22D26 +0x8EA7A3BA 0x3A45 +0x8EA7A3BB 0x22D3F +0x8EA7A3BC 0x22D3B +0x8EA7A3BD 0x22D24 +0x8EA7A3BE 0x22D43 +0x8EA7A3BF 0x22D4E +0x8EA7A3C0 0x22D4F +0x8EA7A3C1 0x22D44 +0x8EA7A3C2 0x22D40 +0x8EA7A3C3 0x22D41 +0x8EA7A3C4 0x22D39 +0x8EA7A3C5 0x22D2B +0x8EA7A3C6 0x22EDD +0x8EA7A3C7 0x22EDE +0x8EA7A3C8 0x22FCD +0x8EA7A3C9 0x22FCB +0x8EA7A3CA 0x22FDB +0x8EA7A3CB 0x22FD8 +0x8EA7A3CC 0x22FD9 +0x8EA7A3CD 0x22FD2 +0x8EA7A3CE 0x22FCA +0x8EA7A3CF 0x22FD1 +0x8EA7A3D0 0x22FD4 +0x8EA7A3D1 0x22FF9 +0x8EA7A3D2 0x22FD0 +0x8EA7A3D3 0x2305E +0x8EA7A3D4 0x2305D +0x8EA7A3D5 0x2308A +0x8EA7A3D6 0x23114 +0x8EA7A3D7 0x23283 +0x8EA7A3D8 0x23284 +0x8EA7A3D9 0x2329B +0x8EA7A3DA 0x23282 +0x8EA7A3DB 0x2327D +0x8EA7A3DC 0x2327C +0x8EA7A3DD 0x23299 +0x8EA7A3DE 0x2327E +0x8EA7A3DF 0x2329A +0x8EA7A3E0 0x23295 +0x8EA7A3E1 0x2327B +0x8EA7A3E2 0x23286 +0x8EA7A3E3 0x23348 +0x8EA7A3E4 0x23392 +0x8EA7A3E5 0x235B2 +0x8EA7A3E6 0x23642 +0x8EA7A3E7 0x23672 +0x8EA7A3E8 0x23615 +0x8EA7A3E9 0x23630 +0x8EA7A3EA 0x23643 +0x8EA7A3EB 0x2365B +0x8EA7A3EC 0x2361D +0x8EA7A3ED 0x23673 +0x8EA7A3EE 0x2362D +0x8EA7A3EF 0x3BC9 +0x8EA7A3F0 0x23621 +0x8EA7A3F1 0x2361C +0x8EA7A3F2 0x2F8EA +0x8EA7A3F3 0x23629 +0x8EA7A3F4 0x2361E +0x8EA7A3F5 0x23633 +0x8EA7A3F6 0x23910 +0x8EA7A3F7 0x2390E +0x8EA7A3F8 0x2F8F1 +0x8EA7A3F9 0x2390D +0x8EA7A3FA 0x23911 +0x8EA7A3FB 0x23912 +0x8EA7A3FC 0x23917 +0x8EA7A3FD 0x23909 +0x8EA7A3FE 0x2390F +0x8EA7A4A1 0x23998 +0x8EA7A4A2 0x23994 +0x8EA7A4A3 0x23996 +0x8EA7A4A4 0x23999 +0x8EA7A4A5 0x23995 +0x8EA7A4A6 0x23997 +0x8EA7A4A7 0x23A50 +0x8EA7A4A8 0x23A52 +0x8EA7A4A9 0x23A4D +0x8EA7A4AA 0x23A57 +0x8EA7A4AB 0x23A53 +0x8EA7A4AC 0x23A56 +0x8EA7A4AD 0x23AB8 +0x8EA7A4AE 0x23B12 +0x8EA7A4AF 0x23BF1 +0x8EA7A4B0 0x23BF0 +0x8EA7A4B1 0x23BEE +0x8EA7A4B2 0x23BEF +0x8EA7A4B3 0x23BE5 +0x8EA7A4B4 0x23BEB +0x8EA7A4B5 0x23BE7 +0x8EA7A4B6 0x23BF2 +0x8EA7A4B7 0x23BE6 +0x8EA7A4B8 0x23BF7 +0x8EA7A4B9 0x23C09 +0x8EA7A4BA 0x23C6B +0x8EA7A4BB 0x23C6A +0x8EA7A4BC 0x23E79 +0x8EA7A4BD 0x23ECD +0x8EA7A4BE 0x23EEF +0x8EA7A4BF 0x23EE4 +0x8EA7A4C0 0x23EE3 +0x8EA7A4C1 0x23F6C +0x8EA7A4C2 0x23F67 +0x8EA7A4C3 0x23F62 +0x8EA7A4C4 0x23F58 +0x8EA7A4C5 0x23F69 +0x8EA7A4C6 0x23FAB +0x8EA7A4C7 0x23F57 +0x8EA7A4C8 0x23FAD +0x8EA7A4C9 0x23F54 +0x8EA7A4CA 0x23FAE +0x8EA7A4CB 0x23F76 +0x8EA7A4CC 0x23F49 +0x8EA7A4CD 0x23F45 +0x8EA7A4CE 0x23F4F +0x8EA7A4CF 0x2F90F +0x8EA7A4D0 0x23F50 +0x8EA7A4D1 0x23F7D +0x8EA7A4D2 0x23F44 +0x8EA7A4D3 0x23F66 +0x8EA7A4D4 0x23F48 +0x8EA7A4D5 0x23FA3 +0x8EA7A4D6 0x23F51 +0x8EA7A4D7 0x23F53 +0x8EA7A4D8 0x2F910 +0x8EA7A4D9 0x23F60 +0x8EA7A4DA 0x23F47 +0x8EA7A4DB 0x23F5E +0x8EA7A4DC 0x23F85 +0x8EA7A4DD 0x23FAC +0x8EA7A4DE 0x23F6D +0x8EA7A4DF 0x23F75 +0x8EA7A4E0 0x23FA8 +0x8EA7A4E1 0x3D55 +0x8EA7A4E2 0x23F43 +0x8EA7A4E3 0x23F4E +0x8EA7A4E4 0x23F5C +0x8EA7A4E5 0x23F56 +0x8EA7A4E6 0x23F6E +0x8EA7A4E7 0x23F63 +0x8EA7A4E8 0x23F6A +0x8EA7A4E9 0x24356 +0x8EA7A4EA 0x24312 +0x8EA7A4EB 0x2435C +0x8EA7A4EC 0x24358 +0x8EA7A4ED 0x24355 +0x8EA7A4EE 0x2437E +0x8EA7A4EF 0x243A8 +0x8EA7A4F0 0x24311 +0x8EA7A4F1 0x24359 +0x8EA7A4F2 0x2435A +0x8EA7A4F3 0x24367 +0x8EA7A4F4 0x24354 +0x8EA7A4F5 0x2435B +0x8EA7A4F6 0x243F0 +0x8EA7A4F7 0x24529 +0x8EA7A4F8 0x2452C +0x8EA7A4F9 0x2452A +0x8EA7A4FA 0x24527 +0x8EA7A4FB 0x24567 +0x8EA7A4FC 0x24568 +0x8EA7A4FD 0x24593 +0x8EA7A4FE 0x24595 +0x8EA7A5A1 0x2459A +0x8EA7A5A2 0x245EE +0x8EA7A5A3 0x245F1 +0x8EA7A5A4 0x245ED +0x8EA7A5A5 0x245E9 +0x8EA7A5A6 0x246CB +0x8EA7A5A7 0x246DF +0x8EA7A5A8 0x246DB +0x8EA7A5A9 0x2483C +0x8EA7A5AA 0x2484E +0x8EA7A5AB 0x2486C +0x8EA7A5AC 0x2487B +0x8EA7A5AD 0x2487C +0x8EA7A5AE 0x24883 +0x8EA7A5AF 0x2486B +0x8EA7A5B0 0x24866 +0x8EA7A5B1 0x24863 +0x8EA7A5B2 0x248A0 +0x8EA7A5B3 0x24885 +0x8EA7A5B4 0x24868 +0x8EA7A5B5 0x248A2 +0x8EA7A5B6 0x249EC +0x8EA7A5B7 0x3EE8 +0x8EA7A5B8 0x249E7 +0x8EA7A5B9 0x24A10 +0x8EA7A5BA 0x24A18 +0x8EA7A5BB 0x24A3A +0x8EA7A5BC 0x24A1A +0x8EA7A5BD 0x24A38 +0x8EA7A5BE 0x24A41 +0x8EA7A5BF 0x24A1B +0x8EA7A5C0 0x24A14 +0x8EA7A5C1 0x24A1C +0x8EA7A5C2 0x24A1D +0x8EA7A5C3 0x24B12 +0x8EA7A5C4 0x24B0D +0x8EA7A5C5 0x24B07 +0x8EA7A5C6 0x24B7E +0x8EA7A5C7 0x24B7F +0x8EA7A5C8 0x20AB9 +0x8EA7A5C9 0x24B80 +0x8EA7A5CA 0x24B7A +0x8EA7A5CB 0x24BF3 +0x8EA7A5CC 0x24CB9 +0x8EA7A5CD 0x24CBB +0x8EA7A5CE 0x24CBA +0x8EA7A5CF 0x24CBD +0x8EA7A5D0 0x24CB7 +0x8EA7A5D1 0x24CBF +0x8EA7A5D2 0x24D21 +0x8EA7A5D3 0x24E3A +0x8EA7A5D4 0x24E3D +0x8EA7A5D5 0x24E36 +0x8EA7A5D6 0x24E49 +0x8EA7A5D7 0x24E81 +0x8EA7A5D8 0x3FB6 +0x8EA7A5D9 0x24E3F +0x8EA7A5DA 0x24E4D +0x8EA7A5DB 0x24E3E +0x8EA7A5DC 0x3FBD +0x8EA7A5DD 0x24E30 +0x8EA7A5DE 0x24E4F +0x8EA7A5DF 0x24F37 +0x8EA7A5E0 0x24F98 +0x8EA7A5E1 0x24F99 +0x8EA7A5E2 0x25011 +0x8EA7A5E3 0x2500D +0x8EA7A5E4 0x25088 +0x8EA7A5E5 0x2508A +0x8EA7A5E6 0x2521C +0x8EA7A5E7 0x25255 +0x8EA7A5E8 0x25256 +0x8EA7A5E9 0x25262 +0x8EA7A5EA 0x25257 +0x8EA7A5EB 0x25242 +0x8EA7A5EC 0x25210 +0x8EA7A5ED 0x2524D +0x8EA7A5EE 0x2525A +0x8EA7A5EF 0x25266 +0x8EA7A5F0 0x25246 +0x8EA7A5F1 0x2287E +0x8EA7A5F2 0x2524F +0x8EA7A5F3 0x262F9 +0x8EA7A5F4 0x25387 +0x8EA7A5F5 0x25384 +0x8EA7A5F6 0x253F4 +0x8EA7A5F7 0x253F5 +0x8EA7A5F8 0x253F2 +0x8EA7A5F9 0x253F7 +0x8EA7A5FA 0x25545 +0x8EA7A5FB 0x2F950 +0x8EA7A5FC 0x25549 +0x8EA7A5FD 0x25535 +0x8EA7A5FE 0x254FD +0x8EA7A6A1 0x25530 +0x8EA7A6A2 0x25543 +0x8EA7A6A3 0x25546 +0x8EA7A6A4 0x40D6 +0x8EA7A6A5 0x25533 +0x8EA7A6A6 0x256C6 +0x8EA7A6A7 0x2F956 +0x8EA7A6A8 0x256D4 +0x8EA7A6A9 0x271D8 +0x8EA7A6AA 0x256E0 +0x8EA7A6AB 0x20FA7 +0x8EA7A6AC 0x25744 +0x8EA7A6AD 0x20398 +0x8EA7A6AE 0x25854 +0x8EA7A6AF 0x2583E +0x8EA7A6B0 0x25835 +0x8EA7A6B1 0x2583A +0x8EA7A6B2 0x4171 +0x8EA7A6B3 0x25834 +0x8EA7A6B4 0x25839 +0x8EA7A6B5 0x25846 +0x8EA7A6B6 0x2585A +0x8EA7A6B7 0x2585B +0x8EA7A6B8 0x2583C +0x8EA7A6B9 0x259DC +0x8EA7A6BA 0x259D6 +0x8EA7A6BB 0x259D0 +0x8EA7A6BC 0x2F95E +0x8EA7A6BD 0x25AAC +0x8EA7A6BE 0x2F95D +0x8EA7A6BF 0x25AA5 +0x8EA7A6C0 0x25BF4 +0x8EA7A6C1 0x25C24 +0x8EA7A6C2 0x25BE0 +0x8EA7A6C3 0x25BFD +0x8EA7A6C4 0x25BF2 +0x8EA7A6C5 0x25BFC +0x8EA7A6C6 0x25C02 +0x8EA7A6C7 0x25BF1 +0x8EA7A6C8 0x25BFF +0x8EA7A6C9 0x25BD2 +0x8EA7A6CA 0x25BD8 +0x8EA7A6CB 0x25BD3 +0x8EA7A6CC 0x25BF9 +0x8EA7A6CD 0x2F963 +0x8EA7A6CE 0x25BED +0x8EA7A6CF 0x25BF7 +0x8EA7A6D0 0x25BF0 +0x8EA7A6D1 0x25BD7 +0x8EA7A6D2 0x25C09 +0x8EA7A6D3 0x25BF5 +0x8EA7A6D4 0x25EC2 +0x8EA7A6D5 0x25EC5 +0x8EA7A6D6 0x25ECF +0x8EA7A6D7 0x4298 +0x8EA7A6D8 0x25EC1 +0x8EA7A6D9 0x25EC6 +0x8EA7A6DA 0x25ED4 +0x8EA7A6DB 0x25ECE +0x8EA7A6DC 0x2609B +0x8EA7A6DD 0x26099 +0x8EA7A6DE 0x2608F +0x8EA7A6DF 0x260B7 +0x8EA7A6E0 0x26082 +0x8EA7A6E1 0x26093 +0x8EA7A6E2 0x260B4 +0x8EA7A6E3 0x260C1 +0x8EA7A6E4 0x26090 +0x8EA7A6E5 0x2609A +0x8EA7A6E6 0x26094 +0x8EA7A6E7 0x2609C +0x8EA7A6E8 0x260B5 +0x8EA7A6E9 0x2F96F +0x8EA7A6EA 0x2F96E +0x8EA7A6EB 0x2609F +0x8EA7A6EC 0x2608E +0x8EA7A6ED 0x2609E +0x8EA7A6EE 0x2623C +0x8EA7A6EF 0x26247 +0x8EA7A6F0 0x26241 +0x8EA7A6F1 0x262EB +0x8EA7A6F2 0x262EC +0x8EA7A6F3 0x262ED +0x8EA7A6F4 0x262EE +0x8EA7A6F5 0x262DF +0x8EA7A6F6 0x262F2 +0x8EA7A6F7 0x2630D +0x8EA7A6F8 0x2630E +0x8EA7A6F9 0x20186 +0x8EA7A6FA 0x263A9 +0x8EA7A6FB 0x263A4 +0x8EA7A6FC 0x263A5 +0x8EA7A6FD 0x2645F +0x8EA7A6FE 0x2645A +0x8EA7A7A1 0x26466 +0x8EA7A7A2 0x26468 +0x8EA7A7A3 0x2646A +0x8EA7A7A4 0x26464 +0x8EA7A7A5 0x26465 +0x8EA7A7A6 0x264C1 +0x8EA7A7A7 0x264D8 +0x8EA7A7A8 0x2F97B +0x8EA7A7A9 0x264D9 +0x8EA7A7AA 0x26509 +0x8EA7A7AB 0x265AA +0x8EA7A7AC 0x265A3 +0x8EA7A7AD 0x265B9 +0x8EA7A7AE 0x259E2 +0x8EA7A7AF 0x265A5 +0x8EA7A7B0 0x265AB +0x8EA7A7B1 0x26620 +0x8EA7A7B2 0x26789 +0x8EA7A7B3 0x2678B +0x8EA7A7B4 0x267DB +0x8EA7A7B5 0x267E4 +0x8EA7A7B6 0x267EF +0x8EA7A7B7 0x267E2 +0x8EA7A7B8 0x267E9 +0x8EA7A7B9 0x267F0 +0x8EA7A7BA 0x267F3 +0x8EA7A7BB 0x267DD +0x8EA7A7BC 0x2681E +0x8EA7A7BD 0x2691D +0x8EA7A7BE 0x26946 +0x8EA7A7BF 0x2697C +0x8EA7A7C0 0x26980 +0x8EA7A7C1 0x26981 +0x8EA7A7C2 0x26982 +0x8EA7A7C3 0x26987 +0x8EA7A7C4 0x26988 +0x8EA7A7C5 0x2698A +0x8EA7A7C6 0x2698C +0x8EA7A7C7 0x269E7 +0x8EA7A7C8 0x269EB +0x8EA7A7C9 0x269EA +0x8EA7A7CA 0x26A68 +0x8EA7A7CB 0x26A6B +0x8EA7A7CC 0x26A69 +0x8EA7A7CD 0x26A66 +0x8EA7A7CE 0x26A6A +0x8EA7A7CF 0x26A65 +0x8EA7A7D0 0x26AE5 +0x8EA7A7D1 0x26AE4 +0x8EA7A7D2 0x26AE6 +0x8EA7A7D3 0x26D18 +0x8EA7A7D4 0x26E24 +0x8EA7A7D5 0x26E48 +0x8EA7A7D6 0x26E2F +0x8EA7A7D7 0x26E7E +0x8EA7A7D8 0x26D89 +0x8EA7A7D9 0x26E1E +0x8EA7A7DA 0x26E49 +0x8EA7A7DB 0x26E26 +0x8EA7A7DC 0x26E09 +0x8EA7A7DD 0x26E34 +0x8EA7A7DE 0x26E2D +0x8EA7A7DF 0x26E4A +0x8EA7A7E0 0x26E15 +0x8EA7A7E1 0x2F9A9 +0x8EA7A7E2 0x26E33 +0x8EA7A7E3 0x26E28 +0x8EA7A7E4 0x26E27 +0x8EA7A7E5 0x26E20 +0x8EA7A7E6 0x26E2B +0x8EA7A7E7 0x26E29 +0x8EA7A7E8 0x26E6A +0x8EA7A7E9 0x26E0B +0x8EA7A7EA 0x26E0E +0x8EA7A7EB 0x26E1C +0x8EA7A7EC 0x26DFF +0x8EA7A7ED 0x2F9AA +0x8EA7A7EE 0x26E35 +0x8EA7A7EF 0x26E11 +0x8EA7A7F0 0x26E4B +0x8EA7A7F1 0x26E4C +0x8EA7A7F2 0x26E1F +0x8EA7A7F3 0x26E0F +0x8EA7A7F4 0x26E39 +0x8EA7A7F5 0x26E68 +0x8EA7A7F6 0x26E1D +0x8EA7A7F7 0x26E08 +0x8EA7A7F8 0x26E0C +0x8EA7A7F9 0x26E0D +0x8EA7A7FA 0x26E62 +0x8EA7A7FB 0x26EAF +0x8EA7A7FC 0x26E32 +0x8EA7A7FD 0x26E2C +0x8EA7A7FE 0x26E64 +0x8EA7A8A1 0x26E04 +0x8EA7A8A2 0x26E16 +0x8EA7A8A3 0x26E4D +0x8EA7A8A4 0x26E07 +0x8EA7A8A5 0x26EAE +0x8EA7A8A6 0x271D4 +0x8EA7A8A7 0x271D1 +0x8EA7A8A8 0x271D5 +0x8EA7A8A9 0x271D0 +0x8EA7A8AA 0x27371 +0x8EA7A8AB 0x2735D +0x8EA7A8AC 0x2735B +0x8EA7A8AD 0x2737A +0x8EA7A8AE 0x2F9BD +0x8EA7A8AF 0x2737F +0x8EA7A8B0 0x27379 +0x8EA7A8B1 0x27367 +0x8EA7A8B2 0x2739E +0x8EA7A8B3 0x27394 +0x8EA7A8B4 0x27364 +0x8EA7A8B5 0x2735E +0x8EA7A8B6 0x27381 +0x8EA7A8B7 0x2735A +0x8EA7A8B8 0x27357 +0x8EA7A8B9 0x2737C +0x8EA7A8BA 0x27398 +0x8EA7A8BB 0x27366 +0x8EA7A8BC 0x2737E +0x8EA7A8BD 0x27382 +0x8EA7A8BE 0x27368 +0x8EA7A8BF 0x2735F +0x8EA7A8C0 0x27363 +0x8EA7A8C1 0x27397 +0x8EA7A8C2 0x45CD +0x8EA7A8C3 0x27353 +0x8EA7A8C4 0x2737B +0x8EA7A8C5 0x2737D +0x8EA7A8C6 0x27378 +0x8EA7A8C7 0x27406 +0x8EA7A8C8 0x275C0 +0x8EA7A8C9 0x275C2 +0x8EA7A8CA 0x275C3 +0x8EA7A8CB 0x276DC +0x8EA7A8CC 0x276E6 +0x8EA7A8CD 0x276EC +0x8EA7A8CE 0x276F2 +0x8EA7A8CF 0x276E8 +0x8EA7A8D0 0x276EB +0x8EA7A8D1 0x276EA +0x8EA7A8D2 0x276E5 +0x8EA7A8D3 0x276E0 +0x8EA7A8D4 0x276D0 +0x8EA7A8D5 0x276D8 +0x8EA7A8D6 0x276D5 +0x8EA7A8D7 0x276D3 +0x8EA7A8D8 0x276E4 +0x8EA7A8D9 0x276F3 +0x8EA7A8DA 0x276DB +0x8EA7A8DB 0x2772F +0x8EA7A8DC 0x277F9 +0x8EA7A8DD 0x2785D +0x8EA7A8DE 0x2785B +0x8EA7A8DF 0x2784C +0x8EA7A8E0 0x27858 +0x8EA7A8E1 0x27860 +0x8EA7A8E2 0x27853 +0x8EA7A8E3 0x27850 +0x8EA7A8E4 0x27907 +0x8EA7A8E5 0x27908 +0x8EA7A8E6 0x278F4 +0x8EA7A8E7 0x278F6 +0x8EA7A8E8 0x27904 +0x8EA7A8E9 0x278FD +0x8EA7A8EA 0x27905 +0x8EA7A8EB 0x27A28 +0x8EA7A8EC 0x27A56 +0x8EA7A8ED 0x27A42 +0x8EA7A8EE 0x27A5C +0x8EA7A8EF 0x27A3D +0x8EA7A8F0 0x27A2F +0x8EA7A8F1 0x27A2B +0x8EA7A8F2 0x27A58 +0x8EA7A8F3 0x27A61 +0x8EA7A8F4 0x27A2C +0x8EA7A8F5 0x27A51 +0x8EA7A8F6 0x27A50 +0x8EA7A8F7 0x27A3C +0x8EA7A8F8 0x27A36 +0x8EA7A8F9 0x46F6 +0x8EA7A8FA 0x27A60 +0x8EA7A8FB 0x27A5B +0x8EA7A8FC 0x27A2E +0x8EA7A8FD 0x27A40 +0x8EA7A8FE 0x27A5F +0x8EA7A9A1 0x27A26 +0x8EA7A9A2 0x27A2D +0x8EA7A9A3 0x27A5E +0x8EA7A9A4 0x27A3B +0x8EA7A9A5 0x27BEF +0x8EA7A9A6 0x27BF3 +0x8EA7A9A7 0x27BEE +0x8EA7A9A8 0x27BED +0x8EA7A9A9 0x27C5A +0x8EA7A9AA 0x27C62 +0x8EA7A9AB 0x27C5B +0x8EA7A9AC 0x27C5F +0x8EA7A9AD 0x27C5E +0x8EA7A9AE 0x27C64 +0x8EA7A9AF 0x27CE0 +0x8EA7A9B0 0x27CE1 +0x8EA7A9B1 0x27CE5 +0x8EA7A9B2 0x27DA5 +0x8EA7A9B3 0x27D9B +0x8EA7A9B4 0x27D9F +0x8EA7A9B5 0x27D9C +0x8EA7A9B6 0x477A +0x8EA7A9B7 0x27DAA +0x8EA7A9B8 0x27DA4 +0x8EA7A9B9 0x27DA3 +0x8EA7A9BA 0x27E67 +0x8EA7A9BB 0x27F26 +0x8EA7A9BC 0x27F1A +0x8EA7A9BD 0x47B8 +0x8EA7A9BE 0x27F1C +0x8EA7A9BF 0x27F15 +0x8EA7A9C0 0x27F1B +0x8EA7A9C1 0x27F18 +0x8EA7A9C2 0x27F1E +0x8EA7A9C3 0x27F25 +0x8EA7A9C4 0x2F9DC +0x8EA7A9C5 0x2807B +0x8EA7A9C6 0x28075 +0x8EA7A9C7 0x28093 +0x8EA7A9C8 0x2808F +0x8EA7A9C9 0x2807C +0x8EA7A9CA 0x2809B +0x8EA7A9CB 0x28088 +0x8EA7A9CC 0x28091 +0x8EA7A9CD 0x2807E +0x8EA7A9CE 0x4801 +0x8EA7A9CF 0x28086 +0x8EA7A9D0 0x2825B +0x8EA7A9D1 0x28254 +0x8EA7A9D2 0x28335 +0x8EA7A9D3 0x28340 +0x8EA7A9D4 0x28337 +0x8EA7A9D5 0x28329 +0x8EA7A9D6 0x28326 +0x8EA7A9D7 0x28323 +0x8EA7A9D8 0x28330 +0x8EA7A9D9 0x28320 +0x8EA7A9DA 0x28328 +0x8EA7A9DB 0x28332 +0x8EA7A9DC 0x2832A +0x8EA7A9DD 0x28331 +0x8EA7A9DE 0x28324 +0x8EA7A9DF 0x28341 +0x8EA7A9E0 0x28342 +0x8EA7A9E1 0x28343 +0x8EA7A9E2 0x28325 +0x8EA7A9E3 0x28338 +0x8EA7A9E4 0x2841C +0x8EA7A9E5 0x2841D +0x8EA7A9E6 0x2841E +0x8EA7A9E7 0x284F6 +0x8EA7A9E8 0x285A5 +0x8EA7A9E9 0x28589 +0x8EA7A9EA 0x2859D +0x8EA7A9EB 0x2858A +0x8EA7A9EC 0x28587 +0x8EA7A9ED 0x285AB +0x8EA7A9EE 0x28586 +0x8EA7A9EF 0x2859E +0x8EA7A9F0 0x28593 +0x8EA7A9F1 0x285A1 +0x8EA7A9F2 0x28588 +0x8EA7A9F3 0x285A3 +0x8EA7A9F4 0x2859F +0x8EA7A9F5 0x285A0 +0x8EA7A9F6 0x286FF +0x8EA7A9F7 0x28700 +0x8EA7A9F8 0x28702 +0x8EA7A9F9 0x286F8 +0x8EA7A9FA 0x286F7 +0x8EA7A9FB 0x28701 +0x8EA7A9FC 0x28787 +0x8EA7A9FD 0x28789 +0x8EA7A9FE 0x28776 +0x8EA7AAA1 0x2876E +0x8EA7AAA2 0x28777 +0x8EA7AAA3 0x28782 +0x8EA7AAA4 0x28785 +0x8EA7AAA5 0x28783 +0x8EA7AAA6 0x28784 +0x8EA7AAA7 0x28857 +0x8EA7AAA8 0x2884B +0x8EA7AAA9 0x28856 +0x8EA7AAAA 0x2885D +0x8EA7AAAB 0x28860 +0x8EA7AAAC 0x2884D +0x8EA7AAAD 0x28855 +0x8EA7AAAE 0x28854 +0x8EA7AAAF 0x28853 +0x8EA7AAB0 0x28850 +0x8EA7AAB1 0x28863 +0x8EA7AAB2 0x28862 +0x8EA7AAB3 0x28917 +0x8EA7AAB4 0x28916 +0x8EA7AAB5 0x2892D +0x8EA7AAB6 0x289D9 +0x8EA7AAB7 0x289BF +0x8EA7AAB8 0x492F +0x8EA7AAB9 0x289B2 +0x8EA7AABA 0x289AC +0x8EA7AABB 0x289B0 +0x8EA7AABC 0x289CF +0x8EA7AABD 0x289B8 +0x8EA7AABE 0x4931 +0x8EA7AABF 0x289D3 +0x8EA7AAC0 0x289B1 +0x8EA7AAC1 0x289AF +0x8EA7AAC2 0x289CE +0x8EA7AAC3 0x289B4 +0x8EA7AAC4 0x289B7 +0x8EA7AAC5 0x289D5 +0x8EA7AAC6 0x499C +0x8EA7AAC7 0x28D38 +0x8EA7AAC8 0x28D28 +0x8EA7AAC9 0x28D3F +0x8EA7AACA 0x28D40 +0x8EA7AACB 0x28D41 +0x8EA7AACC 0x28D33 +0x8EA7AACD 0x28D2B +0x8EA7AACE 0x28D2E +0x8EA7AACF 0x28F11 +0x8EA7AAD0 0x28F18 +0x8EA7AAD1 0x28F17 +0x8EA7AAD2 0x28F19 +0x8EA7AAD3 0x28F16 +0x8EA7AAD4 0x49E6 +0x8EA7AAD5 0x28F0D +0x8EA7AAD6 0x28F26 +0x8EA7AAD7 0x28F79 +0x8EA7AAD8 0x28FD8 +0x8EA7AAD9 0x28FF3 +0x8EA7AADA 0x28FD7 +0x8EA7AADB 0x28FCC +0x8EA7AADC 0x28FCF +0x8EA7AADD 0x28FCB +0x8EA7AADE 0x28FD1 +0x8EA7AADF 0x28FCE +0x8EA7AAE0 0x28FD4 +0x8EA7AAE1 0x28FD5 +0x8EA7AAE2 0x28FD3 +0x8EA7AAE3 0x28FD6 +0x8EA7AAE4 0x28FCD +0x8EA7AAE5 0x28FDA +0x8EA7AAE6 0x28FD2 +0x8EA7AAE7 0x28FDE +0x8EA7AAE8 0x290CC +0x8EA7AAE9 0x290B8 +0x8EA7AAEA 0x290B7 +0x8EA7AAEB 0x290C2 +0x8EA7AAEC 0x290C3 +0x8EA7AAED 0x291FA +0x8EA7AAEE 0x291F9 +0x8EA7AAEF 0x2921F +0x8EA7AAF0 0x2921D +0x8EA7AAF1 0x24382 +0x8EA7AAF2 0x292A6 +0x8EA7AAF3 0x29290 +0x8EA7AAF4 0x2929E +0x8EA7AAF5 0x29298 +0x8EA7AAF6 0x29293 +0x8EA7AAF7 0x29292 +0x8EA7AAF8 0x292A5 +0x8EA7AAF9 0x29295 +0x8EA7AAFA 0x293A9 +0x8EA7AAFB 0x293A8 +0x8EA7AAFC 0x293AA +0x8EA7AAFD 0x293AB +0x8EA7AAFE 0x293AC +0x8EA7ABA1 0x2941F +0x8EA7ABA2 0x29422 +0x8EA7ABA3 0x294AA +0x8EA7ABA4 0x29496 +0x8EA7ABA5 0x29491 +0x8EA7ABA6 0x294AB +0x8EA7ABA7 0x294A2 +0x8EA7ABA8 0x294A4 +0x8EA7ABA9 0x2949D +0x8EA7ABAA 0x29497 +0x8EA7ABAB 0x2947D +0x8EA7ABAC 0x2949F +0x8EA7ABAD 0x2949C +0x8EA7ABAE 0x29499 +0x8EA7ABAF 0x294A6 +0x8EA7ABB0 0x29492 +0x8EA7ABB1 0x294A7 +0x8EA7ABB2 0x295C9 +0x8EA7ABB3 0x295C8 +0x8EA7ABB4 0x295C7 +0x8EA7ABB5 0x295CB +0x8EA7ABB6 0x29674 +0x8EA7ABB7 0x296C9 +0x8EA7ABB8 0x4B38 +0x8EA7ABB9 0x296D2 +0x8EA7ABBA 0x296DB +0x8EA7ABBB 0x296EB +0x8EA7ABBC 0x296E9 +0x8EA7ABBD 0x296EF +0x8EA7ABBE 0x296EE +0x8EA7ABBF 0x296F9 +0x8EA7ABC0 0x296DE +0x8EA7ABC1 0x29816 +0x8EA7ABC2 0x29845 +0x8EA7ABC3 0x2987F +0x8EA7ABC4 0x29898 +0x8EA7ABC5 0x2989F +0x8EA7ABC6 0x29886 +0x8EA7ABC7 0x29890 +0x8EA7ABC8 0x2989A +0x8EA7ABC9 0x2989D +0x8EA7ABCA 0x2988D +0x8EA7ABCB 0x2989C +0x8EA7ABCC 0x298A0 +0x8EA7ABCD 0x298A7 +0x8EA7ABCE 0x2988F +0x8EA7ABCF 0x29A41 +0x8EA7ABD0 0x29A35 +0x8EA7ABD1 0x29A37 +0x8EA7ABD2 0x29A30 +0x8EA7ABD3 0x29A3A +0x8EA7ABD4 0x29A36 +0x8EA7ABD5 0x2FA08 +0x8EA7ABD6 0x29ACA +0x8EA7ABD7 0x29B12 +0x8EA7ABD8 0x29B15 +0x8EA7ABD9 0x29B22 +0x8EA7ABDA 0x29B13 +0x8EA7ABDB 0x29B18 +0x8EA7ABDC 0x29B21 +0x8EA7ABDD 0x29C10 +0x8EA7ABDE 0x29C20 +0x8EA7ABDF 0x29C2F +0x8EA7ABE0 0x29CA5 +0x8EA7ABE1 0x29CA3 +0x8EA7ABE2 0x29CB6 +0x8EA7ABE3 0x29CAB +0x8EA7ABE4 0x29D68 +0x8EA7ABE5 0x29D67 +0x8EA7ABE6 0x29D6F +0x8EA7ABE7 0x29D77 +0x8EA7ABE8 0x29D64 +0x8EA7ABE9 0x29D78 +0x8EA7ABEA 0x4C3A +0x8EA7ABEB 0x29D76 +0x8EA7ABEC 0x29D6E +0x8EA7ABED 0x4CB1 +0x8EA7ABEE 0x29FD0 +0x8EA7ABEF 0x29FB3 +0x8EA7ABF0 0x29FCB +0x8EA7ABF1 0x29FD6 +0x8EA7ABF2 0x29FB1 +0x8EA7ABF3 0x29FB4 +0x8EA7ABF4 0x29FD7 +0x8EA7ABF5 0x29FC6 +0x8EA7ABF6 0x29FBA +0x8EA7ABF7 0x29FD1 +0x8EA7ABF8 0x29FD2 +0x8EA7ABF9 0x29FB5 +0x8EA7ABFA 0x29FC4 +0x8EA7ABFB 0x29FCC +0x8EA7ABFC 0x29FBB +0x8EA7ABFD 0x29FB2 +0x8EA7ABFE 0x2A25B +0x8EA7ACA1 0x2A25A +0x8EA7ACA2 0x2A259 +0x8EA7ACA3 0x2A299 +0x8EA7ACA4 0x2A294 +0x8EA7ACA5 0x2A296 +0x8EA7ACA6 0x2A293 +0x8EA7ACA7 0x2A291 +0x8EA7ACA8 0x2A28F +0x8EA7ACA9 0x2A298 +0x8EA7ACAA 0x2A30C +0x8EA7ACAB 0x2A30A +0x8EA7ACAC 0x2A30E +0x8EA7ACAD 0x2A312 +0x8EA7ACAE 0x2A311 +0x8EA7ACAF 0x2A30B +0x8EA7ACB0 0x2A39A +0x8EA7ACB1 0x4D47 +0x8EA7ACB2 0x2A3B4 +0x8EA7ACB3 0x4D51 +0x8EA7ACB4 0x2A41C +0x8EA7ACB5 0x2A420 +0x8EA7ACB6 0x2A421 +0x8EA7ACB7 0x2A4D3 +0x8EA7ACB8 0x2A4D2 +0x8EA7ACB9 0x2A538 +0x8EA7ACBB 0x24CCF +0x8EA7ACBC 0x2011D +0x8EA7ACBD 0x20192 +0x8EA7ACBE 0x2018F +0x8EA7ACBF 0x2018C +0x8EA7ACC0 0x203EA +0x8EA7ACC1 0x204B9 +0x8EA7ACC2 0x2056E +0x8EA7ACC3 0x205A0 +0x8EA7ACC4 0x291DD +0x8EA7ACC5 0x20612 +0x8EA7ACC6 0x20617 +0x8EA7ACC7 0x2066D +0x8EA7ACC8 0x20805 +0x8EA7ACC9 0x207FB +0x8EA7ACCA 0x207FD +0x8EA7ACCB 0x20806 +0x8EA7ACCC 0x20800 +0x8EA7ACCD 0x207FF +0x8EA7ACCE 0x207FE +0x8EA7ACCF 0x208B6 +0x8EA7ACD0 0x20905 +0x8EA7ACD1 0x20907 +0x8EA7ACD2 0x20ABC +0x8EA7ACD3 0x20ABB +0x8EA7ACD4 0x20B8B +0x8EA7ACD5 0x20B87 +0x8EA7ACD6 0x27BFB +0x8EA7ACD7 0x20FE7 +0x8EA7ACD8 0x20FE6 +0x8EA7ACD9 0x20FE2 +0x8EA7ACDA 0x285D3 +0x8EA7ACDB 0x20FD9 +0x8EA7ACDC 0x20FCA +0x8EA7ACDD 0x21012 +0x8EA7ACDE 0x21010 +0x8EA7ACDF 0x20FDC +0x8EA7ACE0 0x20FD0 +0x8EA7ACE1 0x20F8B +0x8EA7ACE2 0x21013 +0x8EA7ACE3 0x22A10 +0x8EA7ACE4 0x20FDA +0x8EA7ACE5 0x2F84F +0x8EA7ACE6 0x20FFD +0x8EA7ACE7 0x20FE5 +0x8EA7ACE8 0x20FCC +0x8EA7ACE9 0x21039 +0x8EA7ACEA 0x20FC7 +0x8EA7ACEB 0x20FD8 +0x8EA7ACEC 0x21460 +0x8EA7ACED 0x21464 +0x8EA7ACEE 0x21486 +0x8EA7ACEF 0x2145E +0x8EA7ACF0 0x21466 +0x8EA7ACF1 0x2145F +0x8EA7ACF2 0x21477 +0x8EA7ACF3 0x21482 +0x8EA7ACF4 0x21496 +0x8EA7ACF5 0x2153E +0x8EA7ACF6 0x21579 +0x8EA7ACF7 0x2157A +0x8EA7ACF8 0x21688 +0x8EA7ACF9 0x21689 +0x8EA7ACFA 0x2168C +0x8EA7ACFB 0x243E0 +0x8EA7ACFC 0x2167B +0x8EA7ACFD 0x21686 +0x8EA7ACFE 0x21894 +0x8EA7ADA1 0x21897 +0x8EA7ADA2 0x218B7 +0x8EA7ADA3 0x218B5 +0x8EA7ADA4 0x218B8 +0x8EA7ADA5 0x21893 +0x8EA7ADA6 0x218B2 +0x8EA7ADA7 0x218B4 +0x8EA7ADA8 0x21899 +0x8EA7ADA9 0x218C3 +0x8EA7ADAA 0x2189D +0x8EA7ADAB 0x2189B +0x8EA7ADAC 0x218A3 +0x8EA7ADAD 0x3747 +0x8EA7ADAE 0x2199F +0x8EA7ADAF 0x2199E +0x8EA7ADB0 0x219A3 +0x8EA7ADB1 0x219A0 +0x8EA7ADB2 0x219A1 +0x8EA7ADB3 0x21AC5 +0x8EA7ADB4 0x21AC6 +0x8EA7ADB5 0x21ABE +0x8EA7ADB6 0x21AC4 +0x8EA7ADB7 0x21ABF +0x8EA7ADB8 0x21B4C +0x8EA7ADB9 0x21B4A +0x8EA7ADBA 0x21BB1 +0x8EA7ADBB 0x21C15 +0x8EA7ADBC 0x21C17 +0x8EA7ADBD 0x21C10 +0x8EA7ADBE 0x21C18 +0x8EA7ADBF 0x21CE0 +0x8EA7ADC0 0x21CDF +0x8EA7ADC1 0x21D27 +0x8EA7ADC2 0x21F43 +0x8EA7ADC3 0x21F48 +0x8EA7ADC4 0x21F1D +0x8EA7ADC5 0x21F50 +0x8EA7ADC6 0x21F58 +0x8EA7ADC7 0x21F47 +0x8EA7ADC8 0x21F54 +0x8EA7ADC9 0x21F53 +0x8EA7ADCA 0x21F40 +0x8EA7ADCB 0x21F55 +0x8EA7ADCC 0x3817 +0x8EA7ADCD 0x21F5A +0x8EA7ADCE 0x22470 +0x8EA7ADCF 0x2215B +0x8EA7ADD0 0x2214D +0x8EA7ADD1 0x22156 +0x8EA7ADD2 0x2214F +0x8EA7ADD3 0x2F887 +0x8EA7ADD4 0x22159 +0x8EA7ADD5 0x2F888 +0x8EA7ADD6 0x22154 +0x8EA7ADD7 0x22153 +0x8EA7ADD8 0x22150 +0x8EA7ADD9 0x222B3 +0x8EA7ADDA 0x2236E +0x8EA7ADDB 0x38A3 +0x8EA7ADDC 0x2236F +0x8EA7ADDD 0x22393 +0x8EA7ADDE 0x22429 +0x8EA7ADDF 0x22425 +0x8EA7ADE0 0x22428 +0x8EA7ADE1 0x2246F +0x8EA7ADE2 0x232B8 +0x8EA7ADE3 0x2F897 +0x8EA7ADE4 0x224B3 +0x8EA7ADE5 0x22579 +0x8EA7ADE6 0x2257E +0x8EA7ADE7 0x2257C +0x8EA7ADE8 0x22583 +0x8EA7ADE9 0x2F8AC +0x8EA7ADEA 0x22800 +0x8EA7ADEB 0x22834 +0x8EA7ADEC 0x22865 +0x8EA7ADED 0x22836 +0x8EA7ADEE 0x228A7 +0x8EA7ADEF 0x22859 +0x8EA7ADF0 0x22858 +0x8EA7ADF1 0x22831 +0x8EA7ADF2 0x22862 +0x8EA7ADF3 0x22838 +0x8EA7ADF4 0x22873 +0x8EA7ADF5 0x2283E +0x8EA7ADF6 0x22855 +0x8EA7ADF7 0x22854 +0x8EA7ADF8 0x22895 +0x8EA7ADF9 0x2F8AD +0x8EA7ADFA 0x228A5 +0x8EA7ADFB 0x22894 +0x8EA7ADFC 0x2289A +0x8EA7ADFD 0x2289B +0x8EA7ADFE 0x22899 +0x8EA7AEA1 0x2289F +0x8EA7AEA2 0x22853 +0x8EA7AEA3 0x22A12 +0x8EA7AEA4 0x22A0A +0x8EA7AEA5 0x22A09 +0x8EA7AEA6 0x22A0C +0x8EA7AEA7 0x22A0B +0x8EA7AEA8 0x22A0E +0x8EA7AEA9 0x22A0D +0x8EA7AEAA 0x22A08 +0x8EA7AEAB 0x22D38 +0x8EA7AEAC 0x22D3A +0x8EA7AEAD 0x22D37 +0x8EA7AEAE 0x22D3D +0x8EA7AEAF 0x22D2D +0x8EA7AEB0 0x22D82 +0x8EA7AEB1 0x22D95 +0x8EA7AEB2 0x22D87 +0x8EA7AEB3 0x22D9D +0x8EA7AEB4 0x22DB5 +0x8EA7AEB5 0x22D81 +0x8EA7AEB6 0x22DC7 +0x8EA7AEB7 0x22D9B +0x8EA7AEB8 0x22D98 +0x8EA7AEB9 0x22D94 +0x8EA7AEBA 0x22D86 +0x8EA7AEBB 0x22D90 +0x8EA7AEBC 0x22D34 +0x8EA7AEBD 0x22D8E +0x8EA7AEBE 0x22D85 +0x8EA7AEBF 0x22DA6 +0x8EA7AEC0 0x22D96 +0x8EA7AEC1 0x22FEA +0x8EA7AEC2 0x22FDF +0x8EA7AEC3 0x232BD +0x8EA7AEC4 0x22FF7 +0x8EA7AEC5 0x22FEB +0x8EA7AEC6 0x22FE0 +0x8EA7AEC7 0x22FE8 +0x8EA7AEC8 0x22FE1 +0x8EA7AEC9 0x22FE9 +0x8EA7AECA 0x22FEE +0x8EA7AECB 0x22FE5 +0x8EA7AECC 0x22FEC +0x8EA7AECD 0x23063 +0x8EA7AECE 0x230C6 +0x8EA7AECF 0x230C2 +0x8EA7AED0 0x230C1 +0x8EA7AED1 0x230C0 +0x8EA7AED2 0x230C3 +0x8EA7AED3 0x23118 +0x8EA7AED4 0x232AE +0x8EA7AED5 0x232A3 +0x8EA7AED6 0x232C5 +0x8EA7AED7 0x232A0 +0x8EA7AED8 0x232B4 +0x8EA7AED9 0x232A5 +0x8EA7AEDA 0x3B1E +0x8EA7AEDB 0x232A4 +0x8EA7AEDC 0x232A8 +0x8EA7AEDD 0x232A6 +0x8EA7AEDE 0x236A8 +0x8EA7AEDF 0x2368D +0x8EA7AEE0 0x23682 +0x8EA7AEE1 0x2369E +0x8EA7AEE2 0x23689 +0x8EA7AEE3 0x23683 +0x8EA7AEE4 0x23691 +0x8EA7AEE5 0x236A6 +0x8EA7AEE6 0x2369A +0x8EA7AEE7 0x23690 +0x8EA7AEE8 0x23685 +0x8EA7AEE9 0x2367D +0x8EA7AEEA 0x2F8EC +0x8EA7AEEB 0x2369B +0x8EA7AEEC 0x236A5 +0x8EA7AEED 0x236F0 +0x8EA7AEEE 0x23696 +0x8EA7AEEF 0x23688 +0x8EA7AEF0 0x236D6 +0x8EA7AEF1 0x236D8 +0x8EA7AEF2 0x23686 +0x8EA7AEF3 0x236A4 +0x8EA7AEF4 0x23697 +0x8EA7AEF5 0x2391C +0x8EA7AEF6 0x23919 +0x8EA7AEF7 0x2399E +0x8EA7AEF8 0x2399F +0x8EA7AEF9 0x2399D +0x8EA7AEFA 0x2399C +0x8EA7AEFB 0x23A5D +0x8EA7AEFC 0x23A5E +0x8EA7AEFD 0x23A73 +0x8EA7AEFE 0x23A63 +0x8EA7AFA1 0x23ABE +0x8EA7AFA2 0x23AC1 +0x8EA7AFA3 0x23ABC +0x8EA7AFA4 0x23ABF +0x8EA7AFA5 0x23ABB +0x8EA7AFA6 0x23ABD +0x8EA7AFA7 0x23B13 +0x8EA7AFA8 0x23B14 +0x8EA7AFA9 0x23BF8 +0x8EA7AFAA 0x23BFA +0x8EA7AFAB 0x23C06 +0x8EA7AFAC 0x23BFE +0x8EA7AFAD 0x23C51 +0x8EA7AFAE 0x2400B +0x8EA7AFAF 0x23FF1 +0x8EA7AFB0 0x23FA9 +0x8EA7AFB1 0x23FD5 +0x8EA7AFB2 0x23FDC +0x8EA7AFB3 0x23FCB +0x8EA7AFB4 0x23FF2 +0x8EA7AFB5 0x2405F +0x8EA7AFB6 0x23FDB +0x8EA7AFB7 0x23FD6 +0x8EA7AFB8 0x23FD9 +0x8EA7AFB9 0x23FD1 +0x8EA7AFBA 0x23FCF +0x8EA7AFBB 0x23FD8 +0x8EA7AFBC 0x23FE0 +0x8EA7AFBD 0x23FD4 +0x8EA7AFBE 0x23FF3 +0x8EA7AFBF 0x24005 +0x8EA7AFC0 0x23FCE +0x8EA7AFC1 0x23FF4 +0x8EA7AFC2 0x2F912 +0x8EA7AFC3 0x23FDA +0x8EA7AFC4 0x2400E +0x8EA7AFC5 0x24006 +0x8EA7AFC6 0x23FD7 +0x8EA7AFC7 0x23FCD +0x8EA7AFC8 0x24007 +0x8EA7AFC9 0x23FE1 +0x8EA7AFCA 0x24008 +0x8EA7AFCB 0x243BE +0x8EA7AFCC 0x243EF +0x8EA7AFCD 0x243D9 +0x8EA7AFCE 0x243DA +0x8EA7AFCF 0x71D7 +0x8EA7AFD0 0x243A0 +0x8EA7AFD1 0x243DF +0x8EA7AFD2 0x2439E +0x8EA7AFD3 0x243BF +0x8EA7AFD4 0x243AF +0x8EA7AFD5 0x243A7 +0x8EA7AFD6 0x243AA +0x8EA7AFD7 0x243F4 +0x8EA7AFD8 0x243AE +0x8EA7AFD9 0x243B5 +0x8EA7AFDA 0x243B8 +0x8EA7AFDB 0x243DB +0x8EA7AFDC 0x243C0 +0x8EA7AFDD 0x243B7 +0x8EA7AFDE 0x243A2 +0x8EA7AFDF 0x243DD +0x8EA7AFE0 0x243A1 +0x8EA7AFE1 0x243A5 +0x8EA7AFE2 0x243B4 +0x8EA7AFE3 0x243A6 +0x8EA7AFE4 0x243AB +0x8EA7AFE5 0x243AC +0x8EA7AFE6 0x2439F +0x8EA7AFE7 0x243B1 +0x8EA7AFE8 0x243FC +0x8EA7AFE9 0x2452E +0x8EA7AFEA 0x24530 +0x8EA7AFEB 0x24599 +0x8EA7AFEC 0x245F8 +0x8EA7AFED 0x245F6 +0x8EA7AFEE 0x246F4 +0x8EA7AFEF 0x246EB +0x8EA7AFF0 0x246E1 +0x8EA7AFF1 0x246E4 +0x8EA7AFF2 0x24875 +0x8EA7AFF3 0x24869 +0x8EA7AFF4 0x3E9A +0x8EA7AFF5 0x24899 +0x8EA7AFF6 0x2489E +0x8EA7AFF7 0x24894 +0x8EA7AFF8 0x24893 +0x8EA7AFF9 0x24891 +0x8EA7AFFA 0x24A19 +0x8EA7AFFB 0x24A17 +0x8EA7AFFC 0x24A49 +0x8EA7AFFD 0x24A47 +0x8EA7AFFE 0x24A48 +0x8EA7B0A1 0x24A52 +0x8EA7B0A2 0x24A40 +0x8EA7B0A3 0x24A63 +0x8EA7B0A4 0x24A46 +0x8EA7B0A5 0x24A5F +0x8EA7B0A6 0x24B0E +0x8EA7B0A7 0x24B85 +0x8EA7B0A8 0x24B87 +0x8EA7B0A9 0x24BCB +0x8EA7B0AA 0x24BCC +0x8EA7B0AB 0x24BC9 +0x8EA7B0AC 0x24CCB +0x8EA7B0AD 0x21CE7 +0x8EA7B0AE 0x24D20 +0x8EA7B0AF 0x24E5F +0x8EA7B0B0 0x24E60 +0x8EA7B0B1 0x24E6A +0x8EA7B0B2 0x24E76 +0x8EA7B0B3 0x24E73 +0x8EA7B0B4 0x24E71 +0x8EA7B0B5 0x24E66 +0x8EA7B0B6 0x3FC2 +0x8EA7B0B7 0x24E6B +0x8EA7B0B8 0x24E79 +0x8EA7B0B9 0x24E7B +0x8EA7B0BA 0x24F3C +0x8EA7B0BB 0x24F9E +0x8EA7B0BC 0x24F9C +0x8EA7B0BD 0x2501C +0x8EA7B0BE 0x2501E +0x8EA7B0BF 0x25021 +0x8EA7B0C0 0x25096 +0x8EA7B0C1 0x250A1 +0x8EA7B0C2 0x250B6 +0x8EA7B0C3 0x250A0 +0x8EA7B0C4 0x25094 +0x8EA7B0C5 0x25097 +0x8EA7B0C6 0x25281 +0x8EA7B0C7 0x25286 +0x8EA7B0C8 0x252C0 +0x8EA7B0C9 0x2528A +0x8EA7B0CA 0x2F94B +0x8EA7B0CB 0x25285 +0x8EA7B0CC 0x25295 +0x8EA7B0CD 0x25249 +0x8EA7B0CE 0x25282 +0x8EA7B0CF 0x25284 +0x8EA7B0D0 0x22878 +0x8EA7B0D1 0x25290 +0x8EA7B0D2 0x252B1 +0x8EA7B0D3 0x253FE +0x8EA7B0D4 0x253FB +0x8EA7B0D5 0x25550 +0x8EA7B0D6 0x25556 +0x8EA7B0D7 0x2555A +0x8EA7B0D8 0x2554C +0x8EA7B0D9 0x40DC +0x8EA7B0DA 0x25557 +0x8EA7B0DB 0x256E1 +0x8EA7B0DC 0x256D9 +0x8EA7B0DD 0x256DB +0x8EA7B0DE 0x256F4 +0x8EA7B0DF 0x25745 +0x8EA7B0E0 0x25747 +0x8EA7B0E1 0x25874 +0x8EA7B0E2 0x2586B +0x8EA7B0E3 0x25868 +0x8EA7B0E4 0x25869 +0x8EA7B0E5 0x25879 +0x8EA7B0E6 0x2F95B +0x8EA7B0E7 0x25880 +0x8EA7B0E8 0x25881 +0x8EA7B0E9 0x25861 +0x8EA7B0EA 0x25870 +0x8EA7B0EB 0x2586F +0x8EA7B0EC 0x25873 +0x8EA7B0ED 0x2585D +0x8EA7B0EE 0x259FA +0x8EA7B0EF 0x41B3 +0x8EA7B0F0 0x259F3 +0x8EA7B0F1 0x25A0A +0x8EA7B0F2 0x25A17 +0x8EA7B0F3 0x2F95F +0x8EA7B0F4 0x25AB0 +0x8EA7B0F5 0x25C3E +0x8EA7B0F6 0x25C46 +0x8EA7B0F7 0x25C4F +0x8EA7B0F8 0x25C44 +0x8EA7B0F9 0x25C69 +0x8EA7B0FA 0x25C33 +0x8EA7B0FB 0x25C2F +0x8EA7B0FC 0x25C4E +0x8EA7B0FD 0x25C3A +0x8EA7B0FE 0x25C2B +0x8EA7B1A1 0x25CA9 +0x8EA7B1A2 0x25C50 +0x8EA7B1A3 0x25C45 +0x8EA7B1A4 0x25C37 +0x8EA7B1A5 0x25C25 +0x8EA7B1A6 0x25C2C +0x8EA7B1A7 0x25C3F +0x8EA7B1A8 0x25C34 +0x8EA7B1A9 0x25C29 +0x8EA7B1AA 0x25C1E +0x8EA7B1AB 0x25C3D +0x8EA7B1AC 0x25EED +0x8EA7B1AD 0x2F966 +0x8EA7B1AE 0x25EF3 +0x8EA7B1AF 0x25EEA +0x8EA7B1B0 0x25EEB +0x8EA7B1B1 0x260CC +0x8EA7B1B2 0x260CE +0x8EA7B1B3 0x260D0 +0x8EA7B1B4 0x260E3 +0x8EA7B1B5 0x260E0 +0x8EA7B1B6 0x260D1 +0x8EA7B1B7 0x260DC +0x8EA7B1B8 0x260DD +0x8EA7B1B9 0x260F0 +0x8EA7B1BA 0x260DB +0x8EA7B1BB 0x260E5 +0x8EA7B1BC 0x260F1 +0x8EA7B1BD 0x260C9 +0x8EA7B1BE 0x260E8 +0x8EA7B1BF 0x260E7 +0x8EA7B1C0 0x260C8 +0x8EA7B1C1 0x260DE +0x8EA7B1C2 0x260CD +0x8EA7B1C3 0x260C5 +0x8EA7B1C4 0x260C6 +0x8EA7B1C5 0x260E4 +0x8EA7B1C6 0x260C3 +0x8EA7B1C7 0x262FB +0x8EA7B1C8 0x262FC +0x8EA7B1C9 0x262FE +0x8EA7B1CA 0x26303 +0x8EA7B1CB 0x26300 +0x8EA7B1CC 0x262FD +0x8EA7B1CD 0x26305 +0x8EA7B1CE 0x26313 +0x8EA7B1CF 0x263A7 +0x8EA7B1D0 0x263B4 +0x8EA7B1D1 0x26470 +0x8EA7B1D2 0x26474 +0x8EA7B1D3 0x26471 +0x8EA7B1D4 0x26475 +0x8EA7B1D5 0x2647D +0x8EA7B1D6 0x26473 +0x8EA7B1D7 0x264C4 +0x8EA7B1D8 0x264C3 +0x8EA7B1D9 0x264DE +0x8EA7B1DA 0x264DD +0x8EA7B1DB 0x26511 +0x8EA7B1DC 0x2650F +0x8EA7B1DD 0x26510 +0x8EA7B1DE 0x265C3 +0x8EA7B1DF 0x265C2 +0x8EA7B1E0 0x265CA +0x8EA7B1E1 0x265C1 +0x8EA7B1E2 0x26623 +0x8EA7B1E3 0x267B1 +0x8EA7B1E4 0x26824 +0x8EA7B1E5 0x26811 +0x8EA7B1E6 0x26825 +0x8EA7B1E7 0x2680A +0x8EA7B1E8 0x2681F +0x8EA7B1E9 0x26820 +0x8EA7B1EA 0x26814 +0x8EA7B1EB 0x26828 +0x8EA7B1EC 0x26803 +0x8EA7B1ED 0x26812 +0x8EA7B1EE 0x2680B +0x8EA7B1EF 0x26817 +0x8EA7B1F0 0x22A11 +0x8EA7B1F1 0x26949 +0x8EA7B1F2 0x26989 +0x8EA7B1F3 0x26990 +0x8EA7B1F4 0x2698F +0x8EA7B1F5 0x26996 +0x8EA7B1F6 0x26995 +0x8EA7B1F7 0x26993 +0x8EA7B1F8 0x269ED +0x8EA7B1F9 0x269F0 +0x8EA7B1FA 0x243DE +0x8EA7B1FB 0x26A85 +0x8EA7B1FC 0x26A77 +0x8EA7B1FD 0x26A7A +0x8EA7B1FE 0x26A84 +0x8EA7B2A1 0x26A79 +0x8EA7B2A2 0x26A7D +0x8EA7B2A3 0x26A7B +0x8EA7B2A4 0x26AED +0x8EA7B2A5 0x26AEC +0x8EA7B2A6 0x26DF6 +0x8EA7B2A7 0x26D9B +0x8EA7B2A8 0x26E9D +0x8EA7B2A9 0x26F11 +0x8EA7B2AA 0x26EC4 +0x8EA7B2AB 0x26EC8 +0x8EA7B2AC 0x26EDF +0x8EA7B2AD 0x26EBF +0x8EA7B2AE 0x26EB3 +0x8EA7B2AF 0x26EBA +0x8EA7B2B0 0x26F10 +0x8EA7B2B1 0x26F06 +0x8EA7B2B2 0x26E88 +0x8EA7B2B3 0x26E9A +0x8EA7B2B4 0x26EE0 +0x8EA7B2B5 0x26ECC +0x8EA7B2B6 0x26EB5 +0x8EA7B2B7 0x26EE1 +0x8EA7B2B8 0x26EBC +0x8EA7B2B9 0x26EC6 +0x8EA7B2BA 0x26F0B +0x8EA7B2BB 0x26EA4 +0x8EA7B2BC 0x26E95 +0x8EA7B2BD 0x26EA3 +0x8EA7B2BE 0x26EE2 +0x8EA7B2BF 0x26ECD +0x8EA7B2C0 0x26EE3 +0x8EA7B2C1 0x26EAB +0x8EA7B2C2 0x26ECB +0x8EA7B2C3 0x26E8F +0x8EA7B2C4 0x2F9AB +0x8EA7B2C5 0x26EA9 +0x8EA7B2C6 0x26F24 +0x8EA7B2C7 0x26EE4 +0x8EA7B2C8 0x26F12 +0x8EA7B2C9 0x26EE5 +0x8EA7B2CA 0x26F67 +0x8EA7B2CB 0x26EAA +0x8EA7B2CC 0x26EA0 +0x8EA7B2CD 0x26EE6 +0x8EA7B2CE 0x26EC1 +0x8EA7B2CF 0x26EE7 +0x8EA7B2D0 0x26F0D +0x8EA7B2D1 0x26E86 +0x8EA7B2D2 0x26EB0 +0x8EA7B2D3 0x26E8B +0x8EA7B2D4 0x26EE8 +0x8EA7B2D5 0x26EC9 +0x8EA7B2D6 0x26F19 +0x8EA7B2D7 0x26EC0 +0x8EA7B2D8 0x26F0C +0x8EA7B2D9 0x26EE9 +0x8EA7B2DA 0x26EEA +0x8EA7B2DB 0x271ED +0x8EA7B2DC 0x271E3 +0x8EA7B2DD 0x271E4 +0x8EA7B2DE 0x271E8 +0x8EA7B2DF 0x271D2 +0x8EA7B2E0 0x271E2 +0x8EA7B2E1 0x8666 +0x8EA7B2E2 0x273CF +0x8EA7B2E3 0x273D1 +0x8EA7B2E4 0x273C3 +0x8EA7B2E5 0x273C9 +0x8EA7B2E6 0x273EA +0x8EA7B2E7 0x273B4 +0x8EA7B2E8 0x273DC +0x8EA7B2E9 0x273BD +0x8EA7B2EA 0x273E6 +0x8EA7B2EB 0x273C8 +0x8EA7B2EC 0x273EC +0x8EA7B2ED 0x273B2 +0x8EA7B2EE 0x273A9 +0x8EA7B2EF 0x273D3 +0x8EA7B2F0 0x273C0 +0x8EA7B2F1 0x273E9 +0x8EA7B2F2 0x273D5 +0x8EA7B2F3 0x45D9 +0x8EA7B2F4 0x273C5 +0x8EA7B2F5 0x45DD +0x8EA7B2F6 0x273CB +0x8EA7B2F7 0x273D0 +0x8EA7B2F8 0x273D2 +0x8EA7B2F9 0x273E4 +0x8EA7B2FA 0x273E8 +0x8EA7B2FB 0x273CD +0x8EA7B2FC 0x273B6 +0x8EA7B2FD 0x273AA +0x8EA7B2FE 0x273D4 +0x8EA7B3A1 0x28449 +0x8EA7B3A2 0x273C1 +0x8EA7B3A3 0x273DD +0x8EA7B3A4 0x273CE +0x8EA7B3A5 0x275C9 +0x8EA7B3A6 0x275CA +0x8EA7B3A7 0x276FD +0x8EA7B3A8 0x276D9 +0x8EA7B3A9 0x276FF +0x8EA7B3AA 0x27704 +0x8EA7B3AB 0x276FA +0x8EA7B3AC 0x27706 +0x8EA7B3AD 0x27715 +0x8EA7B3AE 0x27711 +0x8EA7B3AF 0x27707 +0x8EA7B3B0 0x2770B +0x8EA7B3B1 0x277FC +0x8EA7B3B2 0x277FD +0x8EA7B3B3 0x2786D +0x8EA7B3B4 0x27865 +0x8EA7B3B5 0x27914 +0x8EA7B3B6 0x27913 +0x8EA7B3B7 0x2790C +0x8EA7B3B8 0x2790B +0x8EA7B3B9 0x27918 +0x8EA7B3BA 0x27922 +0x8EA7B3BB 0x27A7D +0x8EA7B3BC 0x27A6F +0x8EA7B3BD 0x27A75 +0x8EA7B3BE 0x27A7B +0x8EA7B3BF 0x27A80 +0x8EA7B3C0 0x27A7F +0x8EA7B3C1 0x27A96 +0x8EA7B3C2 0x27A6D +0x8EA7B3C3 0x27A6B +0x8EA7B3C4 0x27A86 +0x8EA7B3C5 0x27A73 +0x8EA7B3C6 0x27A62 +0x8EA7B3C7 0x27A77 +0x8EA7B3C8 0x27A81 +0x8EA7B3C9 0x27A69 +0x8EA7B3CA 0x27A82 +0x8EA7B3CB 0x27A97 +0x8EA7B3CC 0x27A84 +0x8EA7B3CD 0x46FC +0x8EA7B3CE 0x27A78 +0x8EA7B3CF 0x2F9D0 +0x8EA7B3D0 0x27A7A +0x8EA7B3D1 0x27A6A +0x8EA7B3D2 0x27A65 +0x8EA7B3D3 0x27A7E +0x8EA7B3D4 0x27A94 +0x8EA7B3D5 0x27BC2 +0x8EA7B3D6 0x27BC1 +0x8EA7B3D7 0x27BF9 +0x8EA7B3D8 0x27C71 +0x8EA7B3D9 0x27C6B +0x8EA7B3DA 0x27C6D +0x8EA7B3DB 0x27C6F +0x8EA7B3DC 0x27C6E +0x8EA7B3DD 0x27CF2 +0x8EA7B3DE 0x27CE8 +0x8EA7B3DF 0x27CEF +0x8EA7B3E0 0x27CE9 +0x8EA7B3E1 0x27CEA +0x8EA7B3E2 0x27CED +0x8EA7B3E3 0x27CF3 +0x8EA7B3E4 0x27CE6 +0x8EA7B3E5 0x27DC9 +0x8EA7B3E6 0x27DB4 +0x8EA7B3E7 0x27DB3 +0x8EA7B3E8 0x27DB9 +0x8EA7B3E9 0x27DCA +0x8EA7B3EA 0x27DB1 +0x8EA7B3EB 0x27DB6 +0x8EA7B3EC 0x27DC7 +0x8EA7B3ED 0x27DC4 +0x8EA7B3EE 0x27DB7 +0x8EA7B3EF 0x27E6F +0x8EA7B3F0 0x27F33 +0x8EA7B3F1 0x27F32 +0x8EA7B3F2 0x27F1F +0x8EA7B3F3 0x2F9D9 +0x8EA7B3F4 0x27F2B +0x8EA7B3F5 0x27F30 +0x8EA7B3F6 0x27F36 +0x8EA7B3F7 0x27F42 +0x8EA7B3F8 0x27F41 +0x8EA7B3F9 0x2F9D8 +0x8EA7B3FA 0x280A5 +0x8EA7B3FB 0x280AB +0x8EA7B3FC 0x280A9 +0x8EA7B3FD 0x280B3 +0x8EA7B3FE 0x280A7 +0x8EA7B4A1 0x280A0 +0x8EA7B4A2 0x280D2 +0x8EA7B4A3 0x280A8 +0x8EA7B4A4 0x280B6 +0x8EA7B4A5 0x280AC +0x8EA7B4A6 0x280AE +0x8EA7B4A7 0x280E6 +0x8EA7B4A8 0x28265 +0x8EA7B4A9 0x28347 +0x8EA7B4AA 0x28363 +0x8EA7B4AB 0x2834D +0x8EA7B4AC 0x2835F +0x8EA7B4AD 0x2834B +0x8EA7B4AE 0x28360 +0x8EA7B4AF 0x28349 +0x8EA7B4B0 0x28353 +0x8EA7B4B1 0x2F9DF +0x8EA7B4B2 0x8F3A +0x8EA7B4B3 0x28357 +0x8EA7B4B4 0x2834E +0x8EA7B4B5 0x28352 +0x8EA7B4B6 0x28354 +0x8EA7B4B7 0x28420 +0x8EA7B4B8 0x28422 +0x8EA7B4B9 0x285C1 +0x8EA7B4BA 0x285D7 +0x8EA7B4BB 0x285D5 +0x8EA7B4BC 0x285C4 +0x8EA7B4BD 0x285D0 +0x8EA7B4BE 0x285BB +0x8EA7B4BF 0x285E2 +0x8EA7B4C0 0x285CB +0x8EA7B4C1 0x285B8 +0x8EA7B4C2 0x285BF +0x8EA7B4C3 0x285D8 +0x8EA7B4C4 0x285C0 +0x8EA7B4C5 0x285BA +0x8EA7B4C6 0x285B4 +0x8EA7B4C7 0x285BC +0x8EA7B4C8 0x285D4 +0x8EA7B4C9 0x285ED +0x8EA7B4CA 0x285C2 +0x8EA7B4CB 0x285D9 +0x8EA7B4CC 0x285CC +0x8EA7B4CD 0x2872F +0x8EA7B4CE 0x28723 +0x8EA7B4CF 0x28796 +0x8EA7B4D0 0x2878D +0x8EA7B4D1 0x2879E +0x8EA7B4D2 0x28799 +0x8EA7B4D3 0x28883 +0x8EA7B4D4 0x4907 +0x8EA7B4D5 0x2886A +0x8EA7B4D6 0x28869 +0x8EA7B4D7 0x28875 +0x8EA7B4D8 0x2886C +0x8EA7B4D9 0x28880 +0x8EA7B4DA 0x2886E +0x8EA7B4DB 0x28881 +0x8EA7B4DC 0x28877 +0x8EA7B4DD 0x28876 +0x8EA7B4DE 0x28873 +0x8EA7B4DF 0x28870 +0x8EA7B4E0 0x28884 +0x8EA7B4E1 0x28919 +0x8EA7B4E2 0x289F2 +0x8EA7B4E3 0x933D +0x8EA7B4E4 0x289EC +0x8EA7B4E5 0x289EB +0x8EA7B4E6 0x289F6 +0x8EA7B4E7 0x289EF +0x8EA7B4E8 0x289F4 +0x8EA7B4E9 0x289EE +0x8EA7B4EA 0x289F3 +0x8EA7B4EB 0x289ED +0x8EA7B4EC 0x28C9B +0x8EA7B4ED 0x28C98 +0x8EA7B4EE 0x28C94 +0x8EA7B4EF 0x2147A +0x8EA7B4F0 0x28C9A +0x8EA7B4F1 0x2F9F0 +0x8EA7B4F2 0x28D4C +0x8EA7B4F3 0x49A8 +0x8EA7B4F4 0x28D57 +0x8EA7B4F5 0x28D51 +0x8EA7B4F6 0x28D62 +0x8EA7B4F7 0x28D52 +0x8EA7B4F8 0x28D5C +0x8EA7B4F9 0x28D53 +0x8EA7B4FA 0x2F9EF +0x8EA7B4FB 0x28E85 +0x8EA7B4FC 0x28F2D +0x8EA7B4FD 0x28F3E +0x8EA7B4FE 0x28F30 +0x8EA7B5A1 0x28F7D +0x8EA7B5A2 0x28FE6 +0x8EA7B5A3 0x28FF6 +0x8EA7B5A4 0x28FE4 +0x8EA7B5A5 0x28FE9 +0x8EA7B5A6 0x28FEC +0x8EA7B5A7 0x28FF2 +0x8EA7B5A8 0x28FE8 +0x8EA7B5A9 0x28FE3 +0x8EA7B5AA 0x28FEB +0x8EA7B5AB 0x28FF0 +0x8EA7B5AC 0x28FEA +0x8EA7B5AD 0x28FE7 +0x8EA7B5AE 0x28FFD +0x8EA7B5AF 0x28FE5 +0x8EA7B5B0 0x28FEE +0x8EA7B5B1 0x28FF5 +0x8EA7B5B2 0x28FF9 +0x8EA7B5B3 0x28FF1 +0x8EA7B5B4 0x28FF4 +0x8EA7B5B5 0x2F9F4 +0x8EA7B5B6 0x29011 +0x8EA7B5B7 0x290DE +0x8EA7B5B8 0x290D8 +0x8EA7B5B9 0x290DD +0x8EA7B5BA 0x290DB +0x8EA7B5BB 0x290D3 +0x8EA7B5BC 0x290E1 +0x8EA7B5BD 0x291DE +0x8EA7B5BE 0x291FC +0x8EA7B5BF 0x29228 +0x8EA7B5C0 0x292B7 +0x8EA7B5C1 0x292B8 +0x8EA7B5C2 0x292C7 +0x8EA7B5C3 0x292B2 +0x8EA7B5C4 0x292A9 +0x8EA7B5C5 0x292B9 +0x8EA7B5C6 0x292BC +0x8EA7B5C7 0x292B3 +0x8EA7B5C8 0x292D1 +0x8EA7B5C9 0x293B0 +0x8EA7B5CA 0x293B1 +0x8EA7B5CB 0x293B6 +0x8EA7B5CC 0x29404 +0x8EA7B5CD 0x2942C +0x8EA7B5CE 0x294C1 +0x8EA7B5CF 0x2949E +0x8EA7B5D0 0x294BA +0x8EA7B5D1 0x4ACA +0x8EA7B5D2 0x294D1 +0x8EA7B5D3 0x294D3 +0x8EA7B5D4 0x294D4 +0x8EA7B5D5 0x294D5 +0x8EA7B5D6 0x294C5 +0x8EA7B5D7 0x294B6 +0x8EA7B5D8 0x294B2 +0x8EA7B5D9 0x294B5 +0x8EA7B5DA 0x294C3 +0x8EA7B5DB 0x294B9 +0x8EA7B5DC 0x294C6 +0x8EA7B5DD 0x295D6 +0x8EA7B5DE 0x295E0 +0x8EA7B5DF 0x295DB +0x8EA7B5E0 0x295D7 +0x8EA7B5E1 0x295DD +0x8EA7B5E2 0x29715 +0x8EA7B5E3 0x2970C +0x8EA7B5E4 0x2970F +0x8EA7B5E5 0x2970E +0x8EA7B5E6 0x296FE +0x8EA7B5E7 0x29704 +0x8EA7B5E8 0x2970B +0x8EA7B5E9 0x29702 +0x8EA7B5EA 0x296FF +0x8EA7B5EB 0x29708 +0x8EA7B5EC 0x29710 +0x8EA7B5ED 0x29717 +0x8EA7B5EE 0x29713 +0x8EA7B5EF 0x29706 +0x8EA7B5F0 0x29709 +0x8EA7B5F1 0x29824 +0x8EA7B5F2 0x29826 +0x8EA7B5F3 0x29825 +0x8EA7B5F4 0x29848 +0x8EA7B5F5 0x298B5 +0x8EA7B5F6 0x298D2 +0x8EA7B5F7 0x298D5 +0x8EA7B5F8 0x298C4 +0x8EA7B5F9 0x298AF +0x8EA7B5FA 0x298AD +0x8EA7B5FB 0x298C1 +0x8EA7B5FC 0x298C0 +0x8EA7B5FD 0x298CC +0x8EA7B5FE 0x298CD +0x8EA7B6A1 0x298C3 +0x8EA7B6A2 0x298C8 +0x8EA7B6A3 0x298C5 +0x8EA7B6A4 0x298BA +0x8EA7B6A5 0x298D0 +0x8EA7B6A6 0x298C2 +0x8EA7B6A7 0x298CE +0x8EA7B6A8 0x4B8D +0x8EA7B6A9 0x29A43 +0x8EA7B6AA 0x29A42 +0x8EA7B6AB 0x29A40 +0x8EA7B6AC 0x29A31 +0x8EA7B6AD 0x29ACF +0x8EA7B6AE 0x29ACE +0x8EA7B6AF 0x29B30 +0x8EA7B6B0 0x29B34 +0x8EA7B6B1 0x29B32 +0x8EA7B6B2 0x29B43 +0x8EA7B6B3 0x29B3C +0x8EA7B6B4 0x29C11 +0x8EA7B6B5 0x29C35 +0x8EA7B6B6 0x29C34 +0x8EA7B6B7 0x29C37 +0x8EA7B6B8 0x29C31 +0x8EA7B6B9 0x29CBF +0x8EA7B6BA 0x29CBC +0x8EA7B6BB 0x29CC2 +0x8EA7B6BC 0x29CC9 +0x8EA7B6BD 0x29D83 +0x8EA7B6BE 0x29D8B +0x8EA7B6BF 0x29DA0 +0x8EA7B6C0 0x29D8D +0x8EA7B6C1 0x29D8C +0x8EA7B6C2 0x29D9A +0x8EA7B6C3 0x29D8A +0x8EA7B6C4 0x29D91 +0x8EA7B6C5 0x29FF1 +0x8EA7B6C6 0x2A00F +0x8EA7B6C7 0x2A001 +0x8EA7B6C8 0x2A007 +0x8EA7B6C9 0x2A00C +0x8EA7B6CA 0x4CC0 +0x8EA7B6CB 0x29FDC +0x8EA7B6CC 0x29FEE +0x8EA7B6CD 0x29FF7 +0x8EA7B6CE 0x29FF2 +0x8EA7B6CF 0x29FF8 +0x8EA7B6D0 0x29FEB +0x8EA7B6D1 0x4CCA +0x8EA7B6D2 0x29FE6 +0x8EA7B6D3 0x29FED +0x8EA7B6D4 0x29FE9 +0x8EA7B6D5 0x2A008 +0x8EA7B6D6 0x2A000 +0x8EA7B6D7 0x29FE5 +0x8EA7B6D8 0x29FFC +0x8EA7B6D9 0x2A261 +0x8EA7B6DA 0x2A25E +0x8EA7B6DB 0x2A25F +0x8EA7B6DC 0x4D25 +0x8EA7B6DD 0x2A29B +0x8EA7B6DE 0x2A316 +0x8EA7B6DF 0x2A315 +0x8EA7B6E0 0x2A320 +0x8EA7B6E1 0x2A314 +0x8EA7B6E2 0x2A31A +0x8EA7B6E3 0x2A317 +0x8EA7B6E4 0x2A39C +0x8EA7B6E5 0x4D4A +0x8EA7B6E6 0x2A3F1 +0x8EA7B6E7 0x4D53 +0x8EA7B6E8 0x2A3F0 +0x8EA7B6E9 0x2A428 +0x8EA7B6EA 0x2A424 +0x8EA7B6EB 0x2A42A +0x8EA7B6EC 0x2A42B +0x8EA7B6ED 0x2A4D5 +0x8EA7B6EE 0x2A504 +0x8EA7B6EF 0x2A505 +0x8EA7B6F0 0x2A591 +0x8EA7B6F1 0x2A592 +0x8EA7B6F2 0x2A6A6 +0x8EA7B6F3 0x20109 +0x8EA7B6F4 0x20422 +0x8EA7B6F5 0x2041A +0x8EA7B6F6 0x2040E +0x8EA7B6F7 0x2041B +0x8EA7B6F8 0x20408 +0x8EA7B6F9 0x250B3 +0x8EA7B6FA 0x2F81C +0x8EA7B6FB 0x2069D +0x8EA7B6FC 0x20812 +0x8EA7B6FD 0x2081E +0x8EA7B6FE 0x208BB +0x8EA7B7A1 0x208BF +0x8EA7B7A2 0x208BC +0x8EA7B7A3 0x20908 +0x8EA7B7A4 0x20909 +0x8EA7B7A5 0x20963 +0x8EA7B7A6 0x209C8 +0x8EA7B7A7 0x23728 +0x8EA7B7A8 0x20B8E +0x8EA7B7A9 0x20B8D +0x8EA7B7AA 0x21043 +0x8EA7B7AB 0x2104D +0x8EA7B7AC 0x2106D +0x8EA7B7AD 0x21042 +0x8EA7B7AE 0x21052 +0x8EA7B7AF 0x21051 +0x8EA7B7B0 0x21069 +0x8EA7B7B1 0x21050 +0x8EA7B7B2 0x21056 +0x8EA7B7B3 0x2106C +0x8EA7B7B4 0x21044 +0x8EA7B7B5 0x21045 +0x8EA7B7B6 0x2106B +0x8EA7B7B7 0x3605 +0x8EA7B7B8 0x21068 +0x8EA7B7B9 0x21057 +0x8EA7B7BA 0x2122E +0x8EA7B7BB 0x21231 +0x8EA7B7BC 0x2122D +0x8EA7B7BD 0x2148B +0x8EA7B7BE 0x214B2 +0x8EA7B7BF 0x2148D +0x8EA7B7C0 0x214A3 +0x8EA7B7C1 0x214A4 +0x8EA7B7C2 0x21490 +0x8EA7B7C3 0x21489 +0x8EA7B7C4 0x2148E +0x8EA7B7C5 0x21492 +0x8EA7B7C6 0x2157B +0x8EA7B7C7 0x21690 +0x8EA7B7C8 0x2168F +0x8EA7B7C9 0x218E9 +0x8EA7B7CA 0x218CD +0x8EA7B7CB 0x218C5 +0x8EA7B7CC 0x218D0 +0x8EA7B7CD 0x218C9 +0x8EA7B7CE 0x218D1 +0x8EA7B7CF 0x218C7 +0x8EA7B7D0 0x218D2 +0x8EA7B7D1 0x2185F +0x8EA7B7D2 0x218E1 +0x8EA7B7D3 0x218CC +0x8EA7B7D4 0x218C6 +0x8EA7B7D5 0x218E4 +0x8EA7B7D6 0x219A9 +0x8EA7B7D7 0x21AD3 +0x8EA7B7D8 0x21ADA +0x8EA7B7D9 0x21AD2 +0x8EA7B7DA 0x21ADB +0x8EA7B7DB 0x21B4D +0x8EA7B7DC 0x21B4E +0x8EA7B7DD 0x21C1C +0x8EA7B7DE 0x21CE8 +0x8EA7B7DF 0x21F6C +0x8EA7B7E0 0x21F5F +0x8EA7B7E1 0x21F66 +0x8EA7B7E2 0x21F64 +0x8EA7B7E3 0x21F78 +0x8EA7B7E4 0x21F65 +0x8EA7B7E5 0x21F6D +0x8EA7B7E6 0x21F61 +0x8EA7B7E7 0x21F7A +0x8EA7B7E8 0x22007 +0x8EA7B7E9 0x22166 +0x8EA7B7EA 0x22168 +0x8EA7B7EB 0x22162 +0x8EA7B7EC 0x222D3 +0x8EA7B7ED 0x222D4 +0x8EA7B7EE 0x222D1 +0x8EA7B7EF 0x222DC +0x8EA7B7F0 0x22373 +0x8EA7B7F1 0x22372 +0x8EA7B7F2 0x2242D +0x8EA7B7F3 0x2242C +0x8EA7B7F4 0x2242F +0x8EA7B7F5 0x22472 +0x8EA7B7F6 0x224B4 +0x8EA7B7F7 0x22589 +0x8EA7B7F8 0x228CD +0x8EA7B7F9 0x228A6 +0x8EA7B7FA 0x228A2 +0x8EA7B7FB 0x228A0 +0x8EA7B7FC 0x22846 +0x8EA7B7FD 0x228A1 +0x8EA7B7FE 0x26857 +0x8EA7B8A1 0x228A3 +0x8EA7B8A2 0x228B1 +0x8EA7B8A3 0x228DB +0x8EA7B8A4 0x228F6 +0x8EA7B8A5 0x228DC +0x8EA7B8A6 0x228D6 +0x8EA7B8A7 0x22A13 +0x8EA7B8A8 0x22D9C +0x8EA7B8A9 0x22D97 +0x8EA7B8AA 0x22DD8 +0x8EA7B8AB 0x22DE4 +0x8EA7B8AC 0x22DD4 +0x8EA7B8AD 0x22DE5 +0x8EA7B8AE 0x22DDB +0x8EA7B8AF 0x22DD0 +0x8EA7B8B0 0x22DDA +0x8EA7B8B1 0x22DCC +0x8EA7B8B2 0x22DDC +0x8EA7B8B3 0x22DED +0x8EA7B8B4 0x22DD3 +0x8EA7B8B5 0x22DD1 +0x8EA7B8B6 0x22DCE +0x8EA7B8B7 0x22DD9 +0x8EA7B8B8 0x22DDD +0x8EA7B8B9 0x2F8C6 +0x8EA7B8BA 0x22EE6 +0x8EA7B8BB 0x22EE5 +0x8EA7B8BC 0x22EE9 +0x8EA7B8BD 0x22FFF +0x8EA7B8BE 0x22FFE +0x8EA7B8BF 0x2300E +0x8EA7B8C0 0x2308C +0x8EA7B8C1 0x230CA +0x8EA7B8C2 0x230CB +0x8EA7B8C3 0x2311A +0x8EA7B8C4 0x232D7 +0x8EA7B8C5 0x232CF +0x8EA7B8C6 0x232D0 +0x8EA7B8C7 0x232C9 +0x8EA7B8C8 0x232CC +0x8EA7B8C9 0x232D3 +0x8EA7B8CA 0x233A4 +0x8EA7B8CB 0x233A3 +0x8EA7B8CC 0x23681 +0x8EA7B8CD 0x23726 +0x8EA7B8CE 0x236F3 +0x8EA7B8CF 0x23727 +0x8EA7B8D0 0x236F2 +0x8EA7B8D1 0x236FF +0x8EA7B8D2 0x236F5 +0x8EA7B8D3 0x236FC +0x8EA7B8D4 0x2370E +0x8EA7B8D5 0x3BF0 +0x8EA7B8D6 0x236F6 +0x8EA7B8D7 0x23700 +0x8EA7B8D8 0x23723 +0x8EA7B8D9 0x23705 +0x8EA7B8DA 0x23725 +0x8EA7B8DB 0x23708 +0x8EA7B8DC 0x23750 +0x8EA7B8DD 0x23925 +0x8EA7B8DE 0x23920 +0x8EA7B8DF 0x23923 +0x8EA7B8E0 0x23921 +0x8EA7B8E1 0x239A1 +0x8EA7B8E2 0x23A69 +0x8EA7B8E3 0x23A6C +0x8EA7B8E4 0x23A68 +0x8EA7B8E5 0x23A6B +0x8EA7B8E6 0x23ACC +0x8EA7B8E7 0x23ACD +0x8EA7B8E8 0x23C10 +0x8EA7B8E9 0x23C0D +0x8EA7B8EA 0x23C0A +0x8EA7B8EB 0x23C16 +0x8EA7B8EC 0x23C14 +0x8EA7B8ED 0x23C52 +0x8EA7B8EE 0x24028 +0x8EA7B8EF 0x2402E +0x8EA7B8F0 0x2402C +0x8EA7B8F1 0x2404D +0x8EA7B8F2 0x24049 +0x8EA7B8F3 0x24031 +0x8EA7B8F4 0x24030 +0x8EA7B8F5 0x24033 +0x8EA7B8F6 0x2402D +0x8EA7B8F7 0x24036 +0x8EA7B8F8 0x2403E +0x8EA7B8F9 0x2402F +0x8EA7B8FA 0x24027 +0x8EA7B8FB 0x24034 +0x8EA7B8FC 0x2404C +0x8EA7B8FD 0x243FE +0x8EA7B8FE 0x24412 +0x8EA7B9A1 0x2441F +0x8EA7B9A2 0x24417 +0x8EA7B9A3 0x243F5 +0x8EA7B9A4 0x24415 +0x8EA7B9A5 0x243F7 +0x8EA7B9A6 0x3E02 +0x8EA7B9A7 0x21F7D +0x8EA7B9A8 0x243FA +0x8EA7B9A9 0x243F9 +0x8EA7B9AA 0x2444B +0x8EA7B9AB 0x2459C +0x8EA7B9AC 0x2459D +0x8EA7B9AD 0x3E23 +0x8EA7B9AE 0x246F0 +0x8EA7B9AF 0x246F6 +0x8EA7B9B0 0x246EF +0x8EA7B9B1 0x2489D +0x8EA7B9B2 0x2489A +0x8EA7B9B3 0x248A7 +0x8EA7B9B4 0x248AF +0x8EA7B9B5 0x248AA +0x8EA7B9B6 0x24A64 +0x8EA7B9B7 0x24A86 +0x8EA7B9B8 0x24A75 +0x8EA7B9B9 0x24A70 +0x8EA7B9BA 0x24A84 +0x8EA7B9BB 0x24A6B +0x8EA7B9BC 0x24A85 +0x8EA7B9BD 0x24A6C +0x8EA7B9BE 0x24B17 +0x8EA7B9BF 0x24B94 +0x8EA7B9C0 0x24B93 +0x8EA7B9C1 0x24CD2 +0x8EA7B9C2 0x24CD7 +0x8EA7B9C3 0x24CD4 +0x8EA7B9C4 0x24EA6 +0x8EA7B9C5 0x24EA7 +0x8EA7B9C6 0x24E9C +0x8EA7B9C7 0x24E8B +0x8EA7B9C8 0x24E8D +0x8EA7B9C9 0x24E98 +0x8EA7B9CA 0x24EB9 +0x8EA7B9CB 0x24E9B +0x8EA7B9CC 0x24E9D +0x8EA7B9CD 0x24E99 +0x8EA7B9CE 0x24EA8 +0x8EA7B9CF 0x24E91 +0x8EA7B9D0 0x24E87 +0x8EA7B9D1 0x24E9A +0x8EA7B9D2 0x24FA6 +0x8EA7B9D3 0x2501F +0x8EA7B9D4 0x250A7 +0x8EA7B9D5 0x250B1 +0x8EA7B9D6 0x250B2 +0x8EA7B9D7 0x250B7 +0x8EA7B9D8 0x252D0 +0x8EA7B9D9 0x252B3 +0x8EA7B9DA 0x252B5 +0x8EA7B9DB 0x252C4 +0x8EA7B9DC 0x252C3 +0x8EA7B9DD 0x252BC +0x8EA7B9DE 0x252B2 +0x8EA7B9DF 0x252BA +0x8EA7B9E0 0x252BB +0x8EA7B9E1 0x252C2 +0x8EA7B9E2 0x252CD +0x8EA7B9E3 0x252BE +0x8EA7B9E4 0x252B7 +0x8EA7B9E5 0x2538F +0x8EA7B9E6 0x25403 +0x8EA7B9E7 0x25404 +0x8EA7B9E8 0x25571 +0x8EA7B9E9 0x25577 +0x8EA7B9EA 0x25574 +0x8EA7B9EB 0x2558B +0x8EA7B9EC 0x2557A +0x8EA7B9ED 0x2F951 +0x8EA7B9EE 0x2558C +0x8EA7B9EF 0x25573 +0x8EA7B9F0 0x256FF +0x8EA7B9F1 0x256FB +0x8EA7B9F2 0x256FD +0x8EA7B9F3 0x256F0 +0x8EA7B9F4 0x256F3 +0x8EA7B9F5 0x256FC +0x8EA7B9F6 0x256F2 +0x8EA7B9F7 0x25892 +0x8EA7B9F8 0x2589E +0x8EA7B9F9 0x258AE +0x8EA7B9FA 0x25896 +0x8EA7B9FB 0x25A14 +0x8EA7B9FC 0x25A12 +0x8EA7B9FD 0x25A13 +0x8EA7B9FE 0x25A16 +0x8EA7BAA1 0x25A0F +0x8EA7BAA2 0x25AB6 +0x8EA7BAA3 0x25ABD +0x8EA7BAA4 0x25C8C +0x8EA7BAA5 0x25CAE +0x8EA7BAA6 0x25CAC +0x8EA7BAA7 0x25CAB +0x8EA7BAA8 0x25C99 +0x8EA7BAA9 0x25C92 +0x8EA7BAAA 0x25CBB +0x8EA7BAAB 0x25C9E +0x8EA7BAAC 0x25C7E +0x8EA7BAAD 0x25CAF +0x8EA7BAAE 0x25CBC +0x8EA7BAAF 0x25C98 +0x8EA7BAB0 0x25F01 +0x8EA7BAB1 0x25F09 +0x8EA7BAB2 0x25F06 +0x8EA7BAB3 0x2F967 +0x8EA7BAB4 0x25F07 +0x8EA7BAB5 0x25F08 +0x8EA7BAB6 0x260CF +0x8EA7BAB7 0x2610E +0x8EA7BAB8 0x26132 +0x8EA7BAB9 0x4315 +0x8EA7BABA 0x26112 +0x8EA7BABB 0x26116 +0x8EA7BABC 0x26117 +0x8EA7BABD 0x2611B +0x8EA7BABE 0x26115 +0x8EA7BABF 0x26131 +0x8EA7BAC0 0x26118 +0x8EA7BAC1 0x2611A +0x8EA7BAC2 0x26110 +0x8EA7BAC3 0x2610A +0x8EA7BAC4 0x26109 +0x8EA7BAC5 0x2624F +0x8EA7BAC6 0x2F973 +0x8EA7BAC7 0x2630F +0x8EA7BAC8 0x26310 +0x8EA7BAC9 0x2F975 +0x8EA7BACA 0x26328 +0x8EA7BACB 0x26311 +0x8EA7BACC 0x26316 +0x8EA7BACD 0x26317 +0x8EA7BACE 0x26302 +0x8EA7BACF 0x263BB +0x8EA7BAD0 0x263BA +0x8EA7BAD1 0x263C3 +0x8EA7BAD2 0x263BC +0x8EA7BAD3 0x2648A +0x8EA7BAD4 0x26484 +0x8EA7BAD5 0x26486 +0x8EA7BAD6 0x264E0 +0x8EA7BAD7 0x26517 +0x8EA7BAD8 0x26518 +0x8EA7BAD9 0x2651E +0x8EA7BADA 0x26515 +0x8EA7BADB 0x265D3 +0x8EA7BADC 0x265DA +0x8EA7BADD 0x265D9 +0x8EA7BADE 0x267E6 +0x8EA7BADF 0x267F4 +0x8EA7BAE0 0x267E1 +0x8EA7BAE1 0x26869 +0x8EA7BAE2 0x26840 +0x8EA7BAE3 0x26858 +0x8EA7BAE4 0x2686C +0x8EA7BAE5 0x2684D +0x8EA7BAE6 0x26921 +0x8EA7BAE7 0x26999 +0x8EA7BAE8 0x269F1 +0x8EA7BAE9 0x23F68 +0x8EA7BAEA 0x26A86 +0x8EA7BAEB 0x26F5B +0x8EA7BAEC 0x26F5C +0x8EA7BAED 0x26F77 +0x8EA7BAEE 0x26F2C +0x8EA7BAEF 0x2F9AD +0x8EA7BAF0 0x26F58 +0x8EA7BAF1 0x26F64 +0x8EA7BAF2 0x26F61 +0x8EA7BAF3 0x26F48 +0x8EA7BAF4 0x26F97 +0x8EA7BAF5 0x26F59 +0x8EA7BAF6 0x26F29 +0x8EA7BAF7 0x26F62 +0x8EA7BAF8 0x26F2E +0x8EA7BAF9 0x26F68 +0x8EA7BAFA 0x26F90 +0x8EA7BAFB 0x26F3A +0x8EA7BAFC 0x26F3D +0x8EA7BAFD 0x26F5E +0x8EA7BAFE 0x26F46 +0x8EA7BBA1 0x26F69 +0x8EA7BBA2 0x26F65 +0x8EA7BBA3 0x26F3E +0x8EA7BBA4 0x26F49 +0x8EA7BBA5 0x26F56 +0x8EA7BBA6 0x26FE1 +0x8EA7BBA7 0x26F78 +0x8EA7BBA8 0x26F79 +0x8EA7BBA9 0x26F66 +0x8EA7BBAA 0x26F4A +0x8EA7BBAB 0x26F35 +0x8EA7BBAC 0x26F7A +0x8EA7BBAD 0x26F92 +0x8EA7BBAE 0x26F60 +0x8EA7BBAF 0x26F36 +0x8EA7BBB0 0x26F51 +0x8EA7BBB1 0x26F42 +0x8EA7BBB2 0x455D +0x8EA7BBB3 0x26F3F +0x8EA7BBB4 0x26F7B +0x8EA7BBB5 0x26F5D +0x8EA7BBB6 0x26F94 +0x8EA7BBB7 0x26F6A +0x8EA7BBB8 0x2F9B5 +0x8EA7BBB9 0x271F2 +0x8EA7BBBA 0x273BB +0x8EA7BBBB 0x2741B +0x8EA7BBBC 0x2741A +0x8EA7BBBD 0x27433 +0x8EA7BBBE 0x27417 +0x8EA7BBBF 0x2740A +0x8EA7BBC0 0x27415 +0x8EA7BBC1 0x27412 +0x8EA7BBC2 0x27401 +0x8EA7BBC3 0x2742D +0x8EA7BBC4 0x273FD +0x8EA7BBC5 0x27423 +0x8EA7BBC6 0x27405 +0x8EA7BBC7 0x27411 +0x8EA7BBC8 0x27400 +0x8EA7BBC9 0x2741C +0x8EA7BBCA 0x27435 +0x8EA7BBCB 0x2742E +0x8EA7BBCC 0x27436 +0x8EA7BBCD 0x20ABF +0x8EA7BBCE 0x2742F +0x8EA7BBCF 0x2740C +0x8EA7BBD0 0x27409 +0x8EA7BBD1 0x27431 +0x8EA7BBD2 0x273FC +0x8EA7BBD3 0x2740F +0x8EA7BBD4 0x27418 +0x8EA7BBD5 0x27402 +0x8EA7BBD6 0x27600 +0x8EA7BBD7 0x2771F +0x8EA7BBD8 0x27737 +0x8EA7BBD9 0x465A +0x8EA7BBDA 0x27738 +0x8EA7BBDB 0x2772B +0x8EA7BBDC 0x2772E +0x8EA7BBDD 0x27721 +0x8EA7BBDE 0x27730 +0x8EA7BBDF 0x27729 +0x8EA7BBE0 0x27731 +0x8EA7BBE1 0x2F9C9 +0x8EA7BBE2 0x27701 +0x8EA7BBE3 0x2772C +0x8EA7BBE4 0x27722 +0x8EA7BBE5 0x277FF +0x8EA7BBE6 0x27877 +0x8EA7BBE7 0x27867 +0x8EA7BBE8 0x2787F +0x8EA7BBE9 0x2787D +0x8EA7BBEA 0x2787B +0x8EA7BBEB 0x2787E +0x8EA7BBEC 0x2791E +0x8EA7BBED 0x2791C +0x8EA7BBEE 0x27921 +0x8EA7BBEF 0x27926 +0x8EA7BBF0 0x27927 +0x8EA7BBF1 0x27929 +0x8EA7BBF2 0x2792C +0x8EA7BBF3 0x2791D +0x8EA7BBF4 0x2792B +0x8EA7BBF5 0x27ABF +0x8EA7BBF6 0x27AA4 +0x8EA7BBF7 0x27AAA +0x8EA7BBF8 0x27AAE +0x8EA7BBF9 0x27A9F +0x8EA7BBFA 0x27AD0 +0x8EA7BBFB 0x27AB1 +0x8EA7BBFC 0x27AAD +0x8EA7BBFD 0x27A9B +0x8EA7BBFE 0x27AB2 +0x8EA7BCA1 0x27AA9 +0x8EA7BCA2 0x27AB3 +0x8EA7BCA3 0x27AB4 +0x8EA7BCA4 0x27ABA +0x8EA7BCA5 0x27AA5 +0x8EA7BCA6 0x27AB7 +0x8EA7BCA7 0x27AAC +0x8EA7BCA8 0x27ACB +0x8EA7BCA9 0x27ACF +0x8EA7BCAA 0x27BC6 +0x8EA7BCAB 0x27C01 +0x8EA7BCAC 0x27BFF +0x8EA7BCAD 0x27BFD +0x8EA7BCAE 0x27C77 +0x8EA7BCAF 0x27C78 +0x8EA7BCB0 0x27C76 +0x8EA7BCB1 0x27CF7 +0x8EA7BCB2 0x27DCC +0x8EA7BCB3 0x4785 +0x8EA7BCB4 0x27DD4 +0x8EA7BCB5 0x27DD7 +0x8EA7BCB6 0x27DD5 +0x8EA7BCB7 0x27DD6 +0x8EA7BCB8 0x27DD3 +0x8EA7BCB9 0x27F5D +0x8EA7BCBA 0x27F55 +0x8EA7BCBB 0x280E0 +0x8EA7BCBC 0x28148 +0x8EA7BCBD 0x280EE +0x8EA7BCBE 0x280DB +0x8EA7BCBF 0x280E7 +0x8EA7BCC0 0x280D6 +0x8EA7BCC1 0x280E5 +0x8EA7BCC2 0x280E1 +0x8EA7BCC3 0x280DD +0x8EA7BCC4 0x280E2 +0x8EA7BCC5 0x28270 +0x8EA7BCC6 0x28266 +0x8EA7BCC7 0x2826F +0x8EA7BCC8 0x2826E +0x8EA7BCC9 0x28381 +0x8EA7BCCA 0x28369 +0x8EA7BCCB 0x2836E +0x8EA7BCCC 0x2836D +0x8EA7BCCD 0x2836C +0x8EA7BCCE 0x28384 +0x8EA7BCCF 0x28385 +0x8EA7BCD0 0x28371 +0x8EA7BCD1 0x28373 +0x8EA7BCD2 0x2836A +0x8EA7BCD3 0x2836F +0x8EA7BCD4 0x2837B +0x8EA7BCD5 0x2856A +0x8EA7BCD6 0x2857C +0x8EA7BCD7 0x2857D +0x8EA7BCD8 0x28581 +0x8EA7BCD9 0x285FA +0x8EA7BCDA 0x28605 +0x8EA7BCDB 0x285EB +0x8EA7BCDC 0x285FB +0x8EA7BCDD 0x285E9 +0x8EA7BCDE 0x285EF +0x8EA7BCDF 0x285FC +0x8EA7BCE0 0x285E7 +0x8EA7BCE1 0x2F9E1 +0x8EA7BCE2 0x285EE +0x8EA7BCE3 0x285FD +0x8EA7BCE4 0x28732 +0x8EA7BCE5 0x287A7 +0x8EA7BCE6 0x287B5 +0x8EA7BCE7 0x287B1 +0x8EA7BCE8 0x287B9 +0x8EA7BCE9 0x287A8 +0x8EA7BCEA 0x287B3 +0x8EA7BCEB 0x2F9E6 +0x8EA7BCEC 0x2888A +0x8EA7BCED 0x28891 +0x8EA7BCEE 0x2888D +0x8EA7BCEF 0x28899 +0x8EA7BCF0 0x490B +0x8EA7BCF1 0x2889A +0x8EA7BCF2 0x2889B +0x8EA7BCF3 0x28892 +0x8EA7BCF4 0x2888F +0x8EA7BCF5 0x288AB +0x8EA7BCF6 0x24CDB +0x8EA7BCF7 0x4939 +0x8EA7BCF8 0x28A75 +0x8EA7BCF9 0x28A31 +0x8EA7BCFA 0x28A38 +0x8EA7BCFB 0x4937 +0x8EA7BCFC 0x28A35 +0x8EA7BCFD 0x28A69 +0x8EA7BCFE 0x28A3B +0x8EA7BDA1 0x28A3D +0x8EA7BDA2 0x28A6C +0x8EA7BDA3 0x28A79 +0x8EA7BDA4 0x28A3C +0x8EA7BDA5 0x28A3E +0x8EA7BDA6 0x28C97 +0x8EA7BDA7 0x28CA5 +0x8EA7BDA8 0x28CA2 +0x8EA7BDA9 0x28C9D +0x8EA7BDAA 0x28CA1 +0x8EA7BDAB 0x28D68 +0x8EA7BDAC 0x28D6F +0x8EA7BDAD 0x28D6D +0x8EA7BDAE 0x28D72 +0x8EA7BDAF 0x28D75 +0x8EA7BDB0 0x28D77 +0x8EA7BDB1 0x28D79 +0x8EA7BDB2 0x28EB5 +0x8EA7BDB3 0x28EEA +0x8EA7BDB4 0x28EAB +0x8EA7BDB5 0x28F43 +0x8EA7BDB6 0x28F41 +0x8EA7BDB7 0x28F42 +0x8EA7BDB8 0x29009 +0x8EA7BDB9 0x29008 +0x8EA7BDBA 0x29006 +0x8EA7BDBB 0x29001 +0x8EA7BDBC 0x29003 +0x8EA7BDBD 0x29000 +0x8EA7BDBE 0x29004 +0x8EA7BDBF 0x2900A +0x8EA7BDC0 0x2900E +0x8EA7BDC1 0x2900D +0x8EA7BDC2 0x29007 +0x8EA7BDC3 0x2900F +0x8EA7BDC4 0x29014 +0x8EA7BDC5 0x29002 +0x8EA7BDC6 0x29015 +0x8EA7BDC7 0x2900C +0x8EA7BDC8 0x29010 +0x8EA7BDC9 0x29005 +0x8EA7BDCA 0x290FD +0x8EA7BDCB 0x290FF +0x8EA7BDCC 0x29104 +0x8EA7BDCD 0x29100 +0x8EA7BDCE 0x29109 +0x8EA7BDCF 0x2922B +0x8EA7BDD0 0x2F9F7 +0x8EA7BDD1 0x29231 +0x8EA7BDD2 0x292DB +0x8EA7BDD3 0x292C5 +0x8EA7BDD4 0x292D3 +0x8EA7BDD5 0x292CE +0x8EA7BDD6 0x4A6B +0x8EA7BDD7 0x292C9 +0x8EA7BDD8 0x292BF +0x8EA7BDD9 0x292CB +0x8EA7BDDA 0x292C0 +0x8EA7BDDB 0x292D0 +0x8EA7BDDC 0x292D4 +0x8EA7BDDD 0x293C1 +0x8EA7BDDE 0x293B9 +0x8EA7BDDF 0x293BB +0x8EA7BDE0 0x293C3 +0x8EA7BDE1 0x293C9 +0x8EA7BDE2 0x29407 +0x8EA7BDE3 0x2942D +0x8EA7BDE4 0x294F8 +0x8EA7BDE5 0x294E1 +0x8EA7BDE6 0x294FA +0x8EA7BDE7 0x294EF +0x8EA7BDE8 0x294FD +0x8EA7BDE9 0x4ACD +0x8EA7BDEA 0x294EB +0x8EA7BDEB 0x294F1 +0x8EA7BDEC 0x294ED +0x8EA7BDED 0x294FE +0x8EA7BDEE 0x295F8 +0x8EA7BDEF 0x29603 +0x8EA7BDF0 0x295EE +0x8EA7BDF1 0x295E8 +0x8EA7BDF2 0x29601 +0x8EA7BDF3 0x296EC +0x8EA7BDF4 0x29722 +0x8EA7BDF5 0x29714 +0x8EA7BDF6 0x29734 +0x8EA7BDF7 0x2972F +0x8EA7BDF8 0x29739 +0x8EA7BDF9 0x29741 +0x8EA7BDFA 0x2973C +0x8EA7BDFB 0x29749 +0x8EA7BDFC 0x29758 +0x8EA7BDFD 0x2973A +0x8EA7BDFE 0x29742 +0x8EA7BEA1 0x2973F +0x8EA7BEA2 0x29822 +0x8EA7BEA3 0x29823 +0x8EA7BEA4 0x2984A +0x8EA7BEA5 0x298DC +0x8EA7BEA6 0x298D9 +0x8EA7BEA7 0x298DB +0x8EA7BEA8 0x298E2 +0x8EA7BEA9 0x2FA07 +0x8EA7BEAA 0x298DF +0x8EA7BEAB 0x298E0 +0x8EA7BEAC 0x298D7 +0x8EA7BEAD 0x29A4F +0x8EA7BEAE 0x29A46 +0x8EA7BEAF 0x29A53 +0x8EA7BEB0 0x29A55 +0x8EA7BEB1 0x29A4E +0x8EA7BEB2 0x29A4A +0x8EA7BEB3 0x29A4C +0x8EA7BEB4 0x29A63 +0x8EA7BEB5 0x29B51 +0x8EA7BEB6 0x29B53 +0x8EA7BEB7 0x29B58 +0x8EA7BEB8 0x29B4D +0x8EA7BEB9 0x29B5A +0x8EA7BEBA 0x29B49 +0x8EA7BEBB 0x29B5D +0x8EA7BEBC 0x29C12 +0x8EA7BEBD 0x29C3C +0x8EA7BEBE 0x29CD1 +0x8EA7BEBF 0x29CDF +0x8EA7BEC0 0x29CD6 +0x8EA7BEC1 0x29CD8 +0x8EA7BEC2 0x29CE0 +0x8EA7BEC3 0x29CD9 +0x8EA7BEC4 0x29DB1 +0x8EA7BEC5 0x29DAC +0x8EA7BEC6 0x29DAA +0x8EA7BEC7 0x29DEE +0x8EA7BEC8 0x29DBD +0x8EA7BEC9 0x4C4D +0x8EA7BECA 0x29DC3 +0x8EA7BECB 0x29DA8 +0x8EA7BECC 0x29DAE +0x8EA7BECD 0x29DAB +0x8EA7BECE 0x2A01D +0x8EA7BECF 0x2A027 +0x8EA7BED0 0x2A038 +0x8EA7BED1 0x2A012 +0x8EA7BED2 0x2A048 +0x8EA7BED3 0x2A02B +0x8EA7BED4 0x2A016 +0x8EA7BED5 0x2A019 +0x8EA7BED6 0x2A03D +0x8EA7BED7 0x2A023 +0x8EA7BED8 0x2A02A +0x8EA7BED9 0x2A264 +0x8EA7BEDA 0x2A2AD +0x8EA7BEDB 0x2A2AC +0x8EA7BEDC 0x2FA14 +0x8EA7BEDD 0x2A2B1 +0x8EA7BEDE 0x2A2AF +0x8EA7BEDF 0x2A32C +0x8EA7BEE0 0x2A324 +0x8EA7BEE1 0x2A325 +0x8EA7BEE2 0x2A328 +0x8EA7BEE3 0x2A3F9 +0x8EA7BEE4 0x2A3F7 +0x8EA7BEE5 0x2A3FD +0x8EA7BEE6 0x2A3FE +0x8EA7BEE7 0x2A439 +0x8EA7BEE8 0x2A433 +0x8EA7BEE9 0x2A4D7 +0x8EA7BEEA 0x2A4D8 +0x8EA7BEEB 0x2A4E4 +0x8EA7BEEC 0x214A1 +0x8EA7BEED 0x2A50E +0x8EA7BEEE 0x2A53B +0x8EA7BEEF 0x2A544 +0x8EA7BEF0 0x2A542 +0x8EA7BEF1 0x2A594 +0x8EA7BEF2 0x2A593 +0x8EA7BEF3 0x2A5D5 +0x8EA7BEF4 0x2A6A7 +0x8EA7BEF5 0x20431 +0x8EA7BEF6 0x20423 +0x8EA7BEF7 0x20428 +0x8EA7BEF8 0x20427 +0x8EA7BEF9 0x204C6 +0x8EA7BEFA 0x205A3 +0x8EA7BEFB 0x20621 +0x8EA7BEFC 0x2081B +0x8EA7BEFD 0x3510 +0x8EA7BEFE 0x208C1 +0x8EA7BFA1 0x208C3 +0x8EA7BFA2 0x2092A +0x8EA7BFA3 0x20969 +0x8EA7BFA4 0x20A27 +0x8EA7BFA5 0x210B6 +0x8EA7BFA6 0x210A7 +0x8EA7BFA7 0x210A4 +0x8EA7BFA8 0x210A6 +0x8EA7BFA9 0x21090 +0x8EA7BFAA 0x2109E +0x8EA7BFAB 0x21094 +0x8EA7BFAC 0x210A8 +0x8EA7BFAD 0x210A5 +0x8EA7BFAE 0x210A2 +0x8EA7BFAF 0x21091 +0x8EA7BFB0 0x367B +0x8EA7BFB1 0x214BC +0x8EA7BFB2 0x214BD +0x8EA7BFB3 0x214B4 +0x8EA7BFB4 0x214B0 +0x8EA7BFB5 0x214E4 +0x8EA7BFB6 0x21545 +0x8EA7BFB7 0x2154B +0x8EA7BFB8 0x2157E +0x8EA7BFB9 0x2157F +0x8EA7BFBA 0x2157D +0x8EA7BFBB 0x215C3 +0x8EA7BFBC 0x218FC +0x8EA7BFBD 0x218F7 +0x8EA7BFBE 0x218F0 +0x8EA7BFBF 0x218ED +0x8EA7BFC0 0x218F1 +0x8EA7BFC1 0x218F8 +0x8EA7BFC2 0x21AE9 +0x8EA7BFC3 0x21CEB +0x8EA7BFC4 0x381D +0x8EA7BFC5 0x21F90 +0x8EA7BFC6 0x21F8D +0x8EA7BFC7 0x21F86 +0x8EA7BFC8 0x21F91 +0x8EA7BFC9 0x21F8A +0x8EA7BFCA 0x22008 +0x8EA7BFCB 0x22050 +0x8EA7BFCC 0x222EA +0x8EA7BFCD 0x222E6 +0x8EA7BFCE 0x222E2 +0x8EA7BFCF 0x222E7 +0x8EA7BFD0 0x222ED +0x8EA7BFD1 0x222E1 +0x8EA7BFD2 0x22434 +0x8EA7BFD3 0x22476 +0x8EA7BFD4 0x22475 +0x8EA7BFD5 0x22473 +0x8EA7BFD6 0x224B5 +0x8EA7BFD7 0x22590 +0x8EA7BFD8 0x22592 +0x8EA7BFD9 0x228E1 +0x8EA7BFDA 0x228DF +0x8EA7BFDB 0x228D5 +0x8EA7BFDC 0x228F2 +0x8EA7BFDD 0x228FE +0x8EA7BFDE 0x22913 +0x8EA7BFDF 0x2292E +0x8EA7BFE0 0x22A19 +0x8EA7BFE1 0x22E08 +0x8EA7BFE2 0x64F5 +0x8EA7BFE3 0x22E05 +0x8EA7BFE4 0x22E09 +0x8EA7BFE5 0x22E06 +0x8EA7BFE6 0x22E03 +0x8EA7BFE7 0x22DFD +0x8EA7BFE8 0x22DFC +0x8EA7BFE9 0x22E02 +0x8EA7BFEA 0x22E42 +0x8EA7BFEB 0x2301A +0x8EA7BFEC 0x23011 +0x8EA7BFED 0x23015 +0x8EA7BFEE 0x23016 +0x8EA7BFEF 0x230CC +0x8EA7BFF0 0x230CF +0x8EA7BFF1 0x230D0 +0x8EA7BFF2 0x23122 +0x8EA7BFF3 0x2311E +0x8EA7BFF4 0x23121 +0x8EA7BFF5 0x232E5 +0x8EA7BFF6 0x3B27 +0x8EA7BFF7 0x23354 +0x8EA7BFF8 0x232EF +0x8EA7BFF9 0x23353 +0x8EA7BFFA 0x23351 +0x8EA7BFFB 0x233AD +0x8EA7BFFC 0x23767 +0x8EA7BFFD 0x23768 +0x8EA7BFFE 0x237A4 +0x8EA7C0A1 0x23777 +0x8EA7C0A2 0x23789 +0x8EA7C0A3 0x23744 +0x8EA7C0A4 0x2378B +0x8EA7C0A5 0x23779 +0x8EA7C0A6 0x2375B +0x8EA7C0A7 0x23743 +0x8EA7C0A8 0x23757 +0x8EA7C0A9 0x2374A +0x8EA7C0AA 0x2377C +0x8EA7C0AB 0x23746 +0x8EA7C0AC 0x2377B +0x8EA7C0AD 0x23756 +0x8EA7C0AE 0x239A8 +0x8EA7C0AF 0x23A76 +0x8EA7C0B0 0x23A72 +0x8EA7C0B1 0x23AD6 +0x8EA7C0B2 0x23AD8 +0x8EA7C0B3 0x23AD1 +0x8EA7C0B4 0x23C22 +0x8EA7C0B5 0x23C20 +0x8EA7C0B6 0x23C23 +0x8EA7C0B7 0x23C1E +0x8EA7C0B8 0x23C6E +0x8EA7C0B9 0x240A3 +0x8EA7C0BA 0x24077 +0x8EA7C0BB 0x240A6 +0x8EA7C0BC 0x2406D +0x8EA7C0BD 0x240A2 +0x8EA7C0BE 0x2407C +0x8EA7C0BF 0x24084 +0x8EA7C0C0 0x24068 +0x8EA7C0C1 0x24074 +0x8EA7C0C2 0x24086 +0x8EA7C0C3 0x240A5 +0x8EA7C0C4 0x2407B +0x8EA7C0C5 0x2407A +0x8EA7C0C6 0x24069 +0x8EA7C0C7 0x24072 +0x8EA7C0C8 0x24076 +0x8EA7C0C9 0x2444A +0x8EA7C0CA 0x24437 +0x8EA7C0CB 0x2442A +0x8EA7C0CC 0x2442D +0x8EA7C0CD 0x24446 +0x8EA7C0CE 0x24428 +0x8EA7C0CF 0x24426 +0x8EA7C0D0 0x24442 +0x8EA7C0D1 0x2442C +0x8EA7C0D2 0x24438 +0x8EA7C0D3 0x2442B +0x8EA7C0D4 0x24433 +0x8EA7C0D5 0x24445 +0x8EA7C0D6 0x24539 +0x8EA7C0D7 0x246F9 +0x8EA7C0D8 0x246FA +0x8EA7C0D9 0x248B8 +0x8EA7C0DA 0x248B7 +0x8EA7C0DB 0x248BB +0x8EA7C0DC 0x248B9 +0x8EA7C0DD 0x248B4 +0x8EA7C0DE 0x24A6F +0x8EA7C0DF 0x24A87 +0x8EA7C0E0 0x24A8F +0x8EA7C0E1 0x24AA2 +0x8EA7C0E2 0x24AA3 +0x8EA7C0E3 0x2F931 +0x8EA7C0E4 0x24B9B +0x8EA7C0E5 0x24B9D +0x8EA7C0E6 0x24BCE +0x8EA7C0E7 0x3FCF +0x8EA7C0E8 0x24EBD +0x8EA7C0E9 0x24EBF +0x8EA7C0EA 0x24E92 +0x8EA7C0EB 0x3FCD +0x8EA7C0EC 0x24EEF +0x8EA7C0ED 0x24EC9 +0x8EA7C0EE 0x24FA4 +0x8EA7C0EF 0x24FA8 +0x8EA7C0F0 0x24FAA +0x8EA7C0F1 0x25028 +0x8EA7C0F2 0x25024 +0x8EA7C0F3 0x25025 +0x8EA7C0F4 0x25026 +0x8EA7C0F5 0x250A9 +0x8EA7C0F6 0x250BA +0x8EA7C0F7 0x250BE +0x8EA7C0F8 0x250BC +0x8EA7C0F9 0x250C0 +0x8EA7C0FA 0x252F0 +0x8EA7C0FB 0x252DF +0x8EA7C0FC 0x252E0 +0x8EA7C0FD 0x252ED +0x8EA7C0FE 0x252DB +0x8EA7C1A1 0x252FB +0x8EA7C1A2 0x252B9 +0x8EA7C1A3 0x252DA +0x8EA7C1A4 0x252EB +0x8EA7C1A5 0x252EC +0x8EA7C1A6 0x2559A +0x8EA7C1A7 0x2559F +0x8EA7C1A8 0x2559B +0x8EA7C1A9 0x25597 +0x8EA7C1AA 0x255A1 +0x8EA7C1AB 0x2570F +0x8EA7C1AC 0x25705 +0x8EA7C1AD 0x25748 +0x8EA7C1AE 0x4182 +0x8EA7C1AF 0x258BC +0x8EA7C1B0 0x258BA +0x8EA7C1B1 0x25ABF +0x8EA7C1B2 0x25D01 +0x8EA7C1B3 0x25CE8 +0x8EA7C1B4 0x25CEF +0x8EA7C1B5 0x25CE4 +0x8EA7C1B6 0x25CE6 +0x8EA7C1B7 0x25D02 +0x8EA7C1B8 0x25CEB +0x8EA7C1B9 0x25CE0 +0x8EA7C1BA 0x25CED +0x8EA7C1BB 0x25CD9 +0x8EA7C1BC 0x2F964 +0x8EA7C1BD 0x25D14 +0x8EA7C1BE 0x25CEE +0x8EA7C1BF 0x4252 +0x8EA7C1C0 0x25D13 +0x8EA7C1C1 0x25CF9 +0x8EA7C1C2 0x25CF8 +0x8EA7C1C3 0x25F25 +0x8EA7C1C4 0x2F969 +0x8EA7C1C5 0x25F19 +0x8EA7C1C6 0x25F20 +0x8EA7C1C7 0x25F43 +0x8EA7C1C8 0x25F3F +0x8EA7C1C9 0x26145 +0x8EA7C1CA 0x2614C +0x8EA7C1CB 0x26149 +0x8EA7C1CC 0x2614F +0x8EA7C1CD 0x26141 +0x8EA7C1CE 0x2613E +0x8EA7C1CF 0x2614D +0x8EA7C1D0 0x26152 +0x8EA7C1D1 0x2614A +0x8EA7C1D2 0x2614E +0x8EA7C1D3 0x26173 +0x8EA7C1D4 0x26142 +0x8EA7C1D5 0x26151 +0x8EA7C1D6 0x26155 +0x8EA7C1D7 0x26150 +0x8EA7C1D8 0x2616C +0x8EA7C1DA 0x2616A +0x8EA7C1DB 0x26153 +0x8EA7C1DC 0x26168 +0x8EA7C1DD 0x26255 +0x8EA7C1DE 0x26256 +0x8EA7C1DF 0x2631C +0x8EA7C1E0 0x2631D +0x8EA7C1E1 0x7F80 +0x8EA7C1E2 0x2631E +0x8EA7C1E3 0x26323 +0x8EA7C1E4 0x2631F +0x8EA7C1E5 0x263E1 +0x8EA7C1E6 0x263CD +0x8EA7C1E7 0x263CB +0x8EA7C1E8 0x263CC +0x8EA7C1E9 0x263C8 +0x8EA7C1EA 0x263C9 +0x8EA7C1EB 0x2649B +0x8EA7C1EC 0x26494 +0x8EA7C1ED 0x26492 +0x8EA7C1EE 0x26496 +0x8EA7C1EF 0x26493 +0x8EA7C1F0 0x26495 +0x8EA7C1F1 0x2648F +0x8EA7C1F2 0x2651D +0x8EA7C1F3 0x26522 +0x8EA7C1F4 0x26521 +0x8EA7C1F5 0x265E9 +0x8EA7C1F6 0x265EF +0x8EA7C1F7 0x265E0 +0x8EA7C1F8 0x265E6 +0x8EA7C1F9 0x265E4 +0x8EA7C1FA 0x26829 +0x8EA7C1FB 0x2682C +0x8EA7C1FC 0x26876 +0x8EA7C1FD 0x26883 +0x8EA7C1FE 0x26878 +0x8EA7C2A1 0x2683C +0x8EA7C2A2 0x24443 +0x8EA7C2A3 0x2687A +0x8EA7C2A4 0x4451 +0x8EA7C2A5 0x268F2 +0x8EA7C2A6 0x2699E +0x8EA7C2A7 0x2699B +0x8EA7C2A8 0x2699A +0x8EA7C2A9 0x269F6 +0x8EA7C2AA 0x269F5 +0x8EA7C2AB 0x26AA5 +0x8EA7C2AC 0x26A93 +0x8EA7C2AD 0x26AA4 +0x8EA7C2AE 0x26E82 +0x8EA7C2AF 0x26EC7 +0x8EA7C2B0 0x26FB7 +0x8EA7C2B1 0x2701D +0x8EA7C2B2 0x26FE2 +0x8EA7C2B3 0x26FD7 +0x8EA7C2B4 0x26FE3 +0x8EA7C2B5 0x26FE4 +0x8EA7C2B6 0x26FBC +0x8EA7C2B7 0x26FD3 +0x8EA7C2B8 0x455A +0x8EA7C2B9 0x26F5A +0x8EA7C2BA 0x26FD2 +0x8EA7C2BB 0x26F2D +0x8EA7C2BC 0x2F9AF +0x8EA7C2BD 0x26FC4 +0x8EA7C2BE 0x26FD0 +0x8EA7C2BF 0x26FE5 +0x8EA7C2C0 0x27005 +0x8EA7C2C1 0x27007 +0x8EA7C2C2 0x26FE6 +0x8EA7C2C3 0x2701B +0x8EA7C2C4 0x26FE7 +0x8EA7C2C5 0x26FD8 +0x8EA7C2C6 0x26FBE +0x8EA7C2C7 0x27017 +0x8EA7C2C8 0x26FB4 +0x8EA7C2C9 0x26FD9 +0x8EA7C2CA 0x26FE8 +0x8EA7C2CB 0x26FAD +0x8EA7C2CC 0x26FAF +0x8EA7C2CD 0x26FC8 +0x8EA7C2CE 0x26FE9 +0x8EA7C2CF 0x26FEA +0x8EA7C2D0 0x271FE +0x8EA7C2D1 0x271FB +0x8EA7C2D2 0x27200 +0x8EA7C2D3 0x27472 +0x8EA7C2D4 0x27470 +0x8EA7C2D5 0x27446 +0x8EA7C2D6 0x27459 +0x8EA7C2D7 0x2745E +0x8EA7C2D8 0x27448 +0x8EA7C2D9 0x2744F +0x8EA7C2DA 0x27471 +0x8EA7C2DB 0x27460 +0x8EA7C2DC 0x2745F +0x8EA7C2DD 0x2746E +0x8EA7C2DE 0x27473 +0x8EA7C2DF 0x2F9C0 +0x8EA7C2E0 0x2F9BF +0x8EA7C2E1 0x27447 +0x8EA7C2E2 0x2746D +0x8EA7C2E3 0x2746F +0x8EA7C2E4 0x27481 +0x8EA7C2E5 0x2746C +0x8EA7C2E6 0x27478 +0x8EA7C2E7 0x27483 +0x8EA7C2E8 0x27449 +0x8EA7C2E9 0x27468 +0x8EA7C2EA 0x27474 +0x8EA7C2EB 0x27463 +0x8EA7C2EC 0x2746A +0x8EA7C2ED 0x26885 +0x8EA7C2EE 0x27465 +0x8EA7C2EF 0x27462 +0x8EA7C2F0 0x274C8 +0x8EA7C2F1 0x275D0 +0x8EA7C2F2 0x275D4 +0x8EA7C2F3 0x275D1 +0x8EA7C2F4 0x27603 +0x8EA7C2F5 0x27742 +0x8EA7C2F6 0x27763 +0x8EA7C2F7 0x27756 +0x8EA7C2F8 0x2775B +0x8EA7C2F9 0x27755 +0x8EA7C2FA 0x27750 +0x8EA7C2FB 0x2772D +0x8EA7C2FC 0x27744 +0x8EA7C2FD 0x27748 +0x8EA7C2FE 0x27745 +0x8EA7C3A1 0x27782 +0x8EA7C3A2 0x4665 +0x8EA7C3A3 0x27762 +0x8EA7C3A4 0x27885 +0x8EA7C3A5 0x2788D +0x8EA7C3A6 0x27936 +0x8EA7C3A7 0x2792F +0x8EA7C3A8 0x27931 +0x8EA7C3A9 0x27937 +0x8EA7C3AA 0x27AA7 +0x8EA7C3AB 0x27AD9 +0x8EA7C3AC 0x27AF0 +0x8EA7C3AD 0x27AF2 +0x8EA7C3AE 0x27AFD +0x8EA7C3AF 0x27AE8 +0x8EA7C3B0 0x27AEB +0x8EA7C3B1 0x27AEE +0x8EA7C3B2 0x27AE0 +0x8EA7C3B3 0x27AE9 +0x8EA7C3B4 0x27AED +0x8EA7C3B5 0x27AD6 +0x8EA7C3B6 0x27AF8 +0x8EA7C3B7 0x27AD4 +0x8EA7C3B8 0x27ADF +0x8EA7C3B9 0x27AE7 +0x8EA7C3BA 0x27AD8 +0x8EA7C3BB 0x27AE3 +0x8EA7C3BC 0x27AEF +0x8EA7C3BD 0x27B0F +0x8EA7C3BE 0x27BCA +0x8EA7C3BF 0x21546 +0x8EA7C3C0 0x27C05 +0x8EA7C3C1 0x27C0C +0x8EA7C3C2 0x27C0D +0x8EA7C3C3 0x27C7F +0x8EA7C3C4 0x27C80 +0x8EA7C3C5 0x27C81 +0x8EA7C3C6 0x27D01 +0x8EA7C3C7 0x27D03 +0x8EA7C3C8 0x27DF2 +0x8EA7C3C9 0x27DE2 +0x8EA7C3CA 0x27DE3 +0x8EA7C3CB 0x27DDE +0x8EA7C3CC 0x27DE9 +0x8EA7C3CD 0x27DE8 +0x8EA7C3CE 0x27DE0 +0x8EA7C3CF 0x27E01 +0x8EA7C3D0 0x27DF5 +0x8EA7C3D1 0x27DE4 +0x8EA7C3D2 0x8D01 +0x8EA7C3D3 0x27E77 +0x8EA7C3D4 0x27F74 +0x8EA7C3D5 0x27F6F +0x8EA7C3D6 0x27F62 +0x8EA7C3D7 0x27F61 +0x8EA7C3D8 0x27F6D +0x8EA7C3D9 0x27F73 +0x8EA7C3DA 0x27F6A +0x8EA7C3DB 0x27F69 +0x8EA7C3DC 0x28112 +0x8EA7C3DD 0x2812D +0x8EA7C3DE 0x28114 +0x8EA7C3DF 0x2810F +0x8EA7C3E0 0x28129 +0x8EA7C3E1 0x28116 +0x8EA7C3E2 0x28103 +0x8EA7C3E3 0x28146 +0x8EA7C3E4 0x2815C +0x8EA7C3E5 0x28111 +0x8EA7C3E6 0x28106 +0x8EA7C3E7 0x280DC +0x8EA7C3E8 0x2812B +0x8EA7C3E9 0x2812A +0x8EA7C3EA 0x2812C +0x8EA7C3EB 0x28127 +0x8EA7C3EC 0x2827A +0x8EA7C3ED 0x2839C +0x8EA7C3EE 0x28399 +0x8EA7C3EF 0x28395 +0x8EA7C3F0 0x2838B +0x8EA7C3F1 0x28398 +0x8EA7C3F2 0x28396 +0x8EA7C3F3 0x28432 +0x8EA7C3F4 0x285A4 +0x8EA7C3F5 0x285AA +0x8EA7C3F6 0x2861B +0x8EA7C3F7 0x48AF +0x8EA7C3F8 0x2860D +0x8EA7C3F9 0x2861C +0x8EA7C3FA 0x2860A +0x8EA7C3FB 0x28620 +0x8EA7C3FC 0x28608 +0x8EA7C3FD 0x2861A +0x8EA7C3FE 0x28613 +0x8EA7C4A1 0x28611 +0x8EA7C4A2 0x2875D +0x8EA7C4A3 0x2875F +0x8EA7C4A4 0x2875E +0x8EA7C4A5 0x28760 +0x8EA7C4A6 0x287BB +0x8EA7C4A7 0x287BC +0x8EA7C4A8 0x287C1 +0x8EA7C4A9 0x287C0 +0x8EA7C4AA 0x287C8 +0x8EA7C4AB 0x287CE +0x8EA7C4AC 0x288A7 +0x8EA7C4AD 0x288B2 +0x8EA7C4AE 0x288B6 +0x8EA7C4AF 0x288A5 +0x8EA7C4B0 0x288BA +0x8EA7C4B1 0x288B5 +0x8EA7C4B2 0x288AD +0x8EA7C4B3 0x288A4 +0x8EA7C4B4 0x288D3 +0x8EA7C4B5 0x288B0 +0x8EA7C4B6 0x288B1 +0x8EA7C4B7 0x2891D +0x8EA7C4B8 0x28A8D +0x8EA7C4B9 0x4941 +0x8EA7C4BA 0x28A91 +0x8EA7C4BB 0x28AB6 +0x8EA7C4BC 0x28AB7 +0x8EA7C4BD 0x28ABD +0x8EA7C4BE 0x28ABC +0x8EA7C4BF 0x28A96 +0x8EA7C4C0 0x28A94 +0x8EA7C4C1 0x28AA0 +0x8EA7C4C2 0x28CA8 +0x8EA7C4C3 0x28CA6 +0x8EA7C4C4 0x28D84 +0x8EA7C4C5 0x28D96 +0x8EA7C4C6 0x28D88 +0x8EA7C4C7 0x28D9A +0x8EA7C4C8 0x28ED1 +0x8EA7C4C9 0x28ECF +0x8EA7C4CA 0x28F50 +0x8EA7C4CB 0x28F51 +0x8EA7C4CC 0x28F4E +0x8EA7C4CD 0x28F80 +0x8EA7C4CE 0x28F81 +0x8EA7C4CF 0x2901B +0x8EA7C4D0 0x29017 +0x8EA7C4D1 0x29020 +0x8EA7C4D2 0x29019 +0x8EA7C4D3 0x2901A +0x8EA7C4D4 0x29021 +0x8EA7C4D5 0x2901E +0x8EA7C4D6 0x29018 +0x8EA7C4D7 0x2901D +0x8EA7C4D8 0x4A29 +0x8EA7C4D9 0x2912D +0x8EA7C4DA 0x29124 +0x8EA7C4DB 0x29127 +0x8EA7C4DC 0x2912E +0x8EA7C4DD 0x29125 +0x8EA7C4DE 0x2911C +0x8EA7C4DF 0x29119 +0x8EA7C4E0 0x4A2A +0x8EA7C4E1 0x29123 +0x8EA7C4E2 0x2911F +0x8EA7C4E3 0x2911A +0x8EA7C4E4 0x2912B +0x8EA7C4E5 0x2911E +0x8EA7C4E6 0x291E0 +0x8EA7C4E7 0x29233 +0x8EA7C4E8 0x292E6 +0x8EA7C4E9 0x292FC +0x8EA7C4EA 0x292E5 +0x8EA7C4EB 0x292F8 +0x8EA7C4EC 0x292F6 +0x8EA7C4ED 0x292EA +0x8EA7C4EE 0x292F2 +0x8EA7C4EF 0x292ED +0x8EA7C4F0 0x292EB +0x8EA7C4F1 0x292F0 +0x8EA7C4F2 0x292F1 +0x8EA7C4F3 0x293C6 +0x8EA7C4F4 0x293C8 +0x8EA7C4F5 0x293CE +0x8EA7C4F6 0x293C5 +0x8EA7C4F7 0x4A96 +0x8EA7C4F8 0x293CB +0x8EA7C4F9 0x29513 +0x8EA7C4FA 0x29514 +0x8EA7C4FB 0x29507 +0x8EA7C4FC 0x2950C +0x8EA7C4FD 0x2961A +0x8EA7C4FE 0x4B12 +0x8EA7C5A1 0x29617 +0x8EA7C5A2 0x29606 +0x8EA7C5A3 0x29616 +0x8EA7C5A4 0x29607 +0x8EA7C5A5 0x29610 +0x8EA7C5A6 0x29609 +0x8EA7C5A7 0x29619 +0x8EA7C5A8 0x29615 +0x8EA7C5A9 0x2976E +0x8EA7C5AA 0x2973B +0x8EA7C5AB 0x2973E +0x8EA7C5AC 0x2976C +0x8EA7C5AD 0x29765 +0x8EA7C5AE 0x29764 +0x8EA7C5AF 0x29759 +0x8EA7C5B0 0x2977C +0x8EA7C5B1 0x29770 +0x8EA7C5B2 0x29779 +0x8EA7C5B3 0x2982C +0x8EA7C5B4 0x29852 +0x8EA7C5B5 0x29851 +0x8EA7C5B6 0x2984C +0x8EA7C5B7 0x29900 +0x8EA7C5B8 0x29910 +0x8EA7C5B9 0x29913 +0x8EA7C5BA 0x298FF +0x8EA7C5BB 0x298FE +0x8EA7C5BC 0x298ED +0x8EA7C5BD 0x29A5A +0x8EA7C5BE 0x29A58 +0x8EA7C5BF 0x29A5C +0x8EA7C5C0 0x29ADA +0x8EA7C5C1 0x29B78 +0x8EA7C5C2 0x29B5E +0x8EA7C5C3 0x29B67 +0x8EA7C5C4 0x29B64 +0x8EA7C5C5 0x29C13 +0x8EA7C5C6 0x29C23 +0x8EA7C5C7 0x29C41 +0x8EA7C5C8 0x29C3F +0x8EA7C5C9 0x29C40 +0x8EA7C5CA 0x29CED +0x8EA7C5CB 0x29CE3 +0x8EA7C5CC 0x29CEA +0x8EA7C5CD 0x29CF0 +0x8EA7C5CE 0x29CE6 +0x8EA7C5CF 0x29CE9 +0x8EA7C5D0 0x29CF1 +0x8EA7C5D1 0x29CEE +0x8EA7C5D2 0x29DD4 +0x8EA7C5D3 0x29DD1 +0x8EA7C5D4 0x29DDC +0x8EA7C5D5 0x29DEC +0x8EA7C5D6 0x2A069 +0x8EA7C5D7 0x2A06D +0x8EA7C5D8 0x2A057 +0x8EA7C5D9 0x2A066 +0x8EA7C5DA 0x2A0F9 +0x8EA7C5DB 0x2A04A +0x8EA7C5DC 0x2A060 +0x8EA7C5DD 0x2A056 +0x8EA7C5DE 0x2A059 +0x8EA7C5DF 0x2A04C +0x8EA7C5E0 0x2A06A +0x8EA7C5E1 0x2A062 +0x8EA7C5E2 0x2A063 +0x8EA7C5E3 0x2A070 +0x8EA7C5E4 0x2A05F +0x8EA7C5E5 0x2FA0D +0x8EA7C5E6 0x2A064 +0x8EA7C5E7 0x2A05D +0x8EA7C5E8 0x2A068 +0x8EA7C5E9 0x2A09F +0x8EA7C5EA 0x2A2BA +0x8EA7C5EB 0x2A2B8 +0x8EA7C5EC 0x2A2BC +0x8EA7C5ED 0x2A2B9 +0x8EA7C5EE 0x2A2B4 +0x8EA7C5EF 0x2A33B +0x8EA7C5F0 0x2A32D +0x8EA7C5F1 0x2A338 +0x8EA7C5F2 0x2A32F +0x8EA7C5F3 0x2A332 +0x8EA7C5F4 0x2A441 +0x8EA7C5F5 0x2A4CB +0x8EA7C5F6 0x2A4DE +0x8EA7C5F7 0x2A4DD +0x8EA7C5F8 0x2A4DA +0x8EA7C5F9 0x2A4DC +0x8EA7C5FA 0x2A510 +0x8EA7C5FB 0x2A54F +0x8EA7C5FC 0x2A549 +0x8EA7C5FD 0x2A598 +0x8EA7C5FE 0x2A596 +0x8EA7C6A1 0x2A597 +0x8EA7C6A2 0x2A5C7 +0x8EA7C6A3 0x2019C +0x8EA7C6A4 0x2A5DA +0x8EA7C6A5 0x2A5D8 +0x8EA7C6A6 0x2A6A8 +0x8EA7C6A7 0x2010A +0x8EA7C6A8 0x2019D +0x8EA7C6A9 0x204CB +0x8EA7C6AA 0x20538 +0x8EA7C6AB 0x20539 +0x8EA7C6AC 0x205A6 +0x8EA7C6AD 0x20823 +0x8EA7C6AE 0x20822 +0x8EA7C6AF 0x20821 +0x8EA7C6B0 0x209CE +0x8EA7C6B1 0x20B92 +0x8EA7C6B2 0x20B91 +0x8EA7C6B3 0x210EC +0x8EA7C6B4 0x210E0 +0x8EA7C6B5 0x210ED +0x8EA7C6B6 0x21108 +0x8EA7C6B7 0x210E5 +0x8EA7C6B8 0x210EE +0x8EA7C6B9 0x210E4 +0x8EA7C6BA 0x210EB +0x8EA7C6BB 0x210E3 +0x8EA7C6BC 0x210EA +0x8EA7C6BD 0x2110A +0x8EA7C6BE 0x2F859 +0x8EA7C6BF 0x214D1 +0x8EA7C6C0 0x214E3 +0x8EA7C6C1 0x214D4 +0x8EA7C6C2 0x214D0 +0x8EA7C6C3 0x214D9 +0x8EA7C6C4 0x367E +0x8EA7C6C5 0x58E1 +0x8EA7C6C6 0x214DA +0x8EA7C6C7 0x214D3 +0x8EA7C6C8 0x2154C +0x8EA7C6C9 0x2154D +0x8EA7C6CA 0x2157C +0x8EA7C6CB 0x21580 +0x8EA7C6CC 0x215CC +0x8EA7C6CD 0x218FF +0x8EA7C6CE 0x21908 +0x8EA7C6CF 0x2A508 +0x8EA7C6D0 0x21901 +0x8EA7C6D1 0x2F86B +0x8EA7C6D2 0x21900 +0x8EA7C6D3 0x21AED +0x8EA7C6D4 0x21AF3 +0x8EA7C6D5 0x21AEE +0x8EA7C6D6 0x21AF1 +0x8EA7C6D7 0x21AF0 +0x8EA7C6D8 0x21ADE +0x8EA7C6D9 0x21B51 +0x8EA7C6DA 0x21F82 +0x8EA7C6DB 0x21FA9 +0x8EA7C6DC 0x21F98 +0x8EA7C6DD 0x21F9D +0x8EA7C6DE 0x21F9A +0x8EA7C6DF 0x21F9E +0x8EA7C6E0 0x21F9F +0x8EA7C6E1 0x21FA6 +0x8EA7C6E2 0x21FA7 +0x8EA7C6E3 0x22009 +0x8EA7C6E4 0x2202F +0x8EA7C6E5 0x22171 +0x8EA7C6E6 0x2216D +0x8EA7C6E7 0x22172 +0x8EA7C6E8 0x222EF +0x8EA7C6E9 0x222F0 +0x8EA7C6EA 0x2243B +0x8EA7C6EB 0x22439 +0x8EA7C6EC 0x2243C +0x8EA7C6ED 0x22438 +0x8EA7C6EE 0x24BFD +0x8EA7C6EF 0x2243A +0x8EA7C6F0 0x22478 +0x8EA7C6F1 0x22479 +0x8EA7C6F2 0x22477 +0x8EA7C6F3 0x22598 +0x8EA7C6F4 0x2259C +0x8EA7C6F5 0x22599 +0x8EA7C6F6 0x2259A +0x8EA7C6F7 0x22911 +0x8EA7C6F8 0x2290A +0x8EA7C6F9 0x228FD +0x8EA7C6FA 0x2290F +0x8EA7C6FB 0x22919 +0x8EA7C6FC 0x22903 +0x8EA7C6FD 0x22915 +0x8EA7C6FE 0x2290C +0x8EA7C7A1 0x22909 +0x8EA7C7A2 0x22912 +0x8EA7C7A3 0x22934 +0x8EA7C7A4 0x2292A +0x8EA7C7A5 0x22908 +0x8EA7C7A6 0x2292D +0x8EA7C7A7 0x22928 +0x8EA7C7A8 0x2F8B1 +0x8EA7C7A9 0x2292C +0x8EA7C7AA 0x22926 +0x8EA7C7AB 0x22933 +0x8EA7C7AC 0x39A7 +0x8EA7C7AD 0x22A1A +0x8EA7C7AE 0x22A1E +0x8EA7C7AF 0x22E07 +0x8EA7C7B0 0x22E2C +0x8EA7C7B1 0x22E32 +0x8EA7C7B2 0x22E28 +0x8EA7C7B3 0x22E31 +0x8EA7C7B4 0x22E29 +0x8EA7C7B5 0x22E30 +0x8EA7C7B6 0x22E2A +0x8EA7C7B7 0x22E44 +0x8EA7C7B8 0x22E2E +0x8EA7C7B9 0x230D1 +0x8EA7C7BA 0x23124 +0x8EA7C7BB 0x232F7 +0x8EA7C7BC 0x232F4 +0x8EA7C7BD 0x232F3 +0x8EA7C7BE 0x232F8 +0x8EA7C7BF 0x237B5 +0x8EA7C7C0 0x23796 +0x8EA7C7C1 0x23798 +0x8EA7C7C2 0x23795 +0x8EA7C7C3 0x23791 +0x8EA7C7C4 0x237B2 +0x8EA7C7C5 0x2379E +0x8EA7C7C6 0x23759 +0x8EA7C7C7 0x237A3 +0x8EA7C7C8 0x2379A +0x8EA7C7C9 0x2379B +0x8EA7C7CA 0x4320 +0x8EA7C7CB 0x26183 +0x8EA7C7CC 0x23ADA +0x8EA7C7CD 0x23ADF +0x8EA7C7CE 0x23B16 +0x8EA7C7CF 0x23C1F +0x8EA7C7D0 0x23C2D +0x8EA7C7D1 0x23C2E +0x8EA7C7D2 0x23C2B +0x8EA7C7D3 0x240B8 +0x8EA7C7D4 0x240BB +0x8EA7C7D5 0x240BF +0x8EA7C7D6 0x240BA +0x8EA7C7D7 0x240D5 +0x8EA7C7D8 0x240E3 +0x8EA7C7D9 0x240C1 +0x8EA7C7DA 0x240BE +0x8EA7C7DB 0x240BD +0x8EA7C7DC 0x240B4 +0x8EA7C7DD 0x240C2 +0x8EA7C7DE 0x240A1 +0x8EA7C7DF 0x24087 +0x8EA7C7E0 0x240D7 +0x8EA7C7E1 0x240CA +0x8EA7C7E2 0x240B5 +0x8EA7C7E3 0x240DA +0x8EA7C7E4 0x240D9 +0x8EA7C7E5 0x240B3 +0x8EA7C7E6 0x240D8 +0x8EA7C7E7 0x24467 +0x8EA7C7E8 0x24471 +0x8EA7C7E9 0x24462 +0x8EA7C7EA 0x2445C +0x8EA7C7EB 0x24468 +0x8EA7C7EC 0x24452 +0x8EA7C7ED 0x24456 +0x8EA7C7EE 0x21109 +0x8EA7C7EF 0x20442 +0x8EA7C7F0 0x245A0 +0x8EA7C7F1 0x24700 +0x8EA7C7F2 0x246FE +0x8EA7C7F3 0x246FF +0x8EA7C7F4 0x248CB +0x8EA7C7F5 0x2F928 +0x8EA7C7F6 0x248CA +0x8EA7C7F7 0x248A9 +0x8EA7C7F8 0x248C8 +0x8EA7C7F9 0x24AB4 +0x8EA7C7FA 0x24AAC +0x8EA7C7FB 0x24AAA +0x8EA7C7FC 0x24AA9 +0x8EA7C7FD 0x24C0E +0x8EA7C7FE 0x24CE9 +0x8EA7C8A1 0x24CED +0x8EA7C8A2 0x24CF2 +0x8EA7C8A3 0x24CEB +0x8EA7C8A4 0x24CEE +0x8EA7C8A5 0x24EE8 +0x8EA7C8A6 0x24EDB +0x8EA7C8A7 0x24ED7 +0x8EA7C8A8 0x24EE3 +0x8EA7C8A9 0x24EE5 +0x8EA7C8AA 0x24EEE +0x8EA7C8AB 0x24ED5 +0x8EA7C8AC 0x24FB3 +0x8EA7C8AD 0x2502D +0x8EA7C8AE 0x250C1 +0x8EA7C8AF 0x250C3 +0x8EA7C8B0 0x2530C +0x8EA7C8B1 0x2530E +0x8EA7C8B2 0x25307 +0x8EA7C8B3 0x25317 +0x8EA7C8B4 0x25309 +0x8EA7C8B5 0x25316 +0x8EA7C8B6 0x2539A +0x8EA7C8B7 0x2539C +0x8EA7C8B8 0x255B4 +0x8EA7C8B9 0x255B7 +0x8EA7C8BA 0x255B3 +0x8EA7C8BB 0x2154E +0x8EA7C8BC 0x25713 +0x8EA7C8BD 0x25714 +0x8EA7C8BE 0x258E6 +0x8EA7C8BF 0x258DC +0x8EA7C8C0 0x258E8 +0x8EA7C8C1 0x258E5 +0x8EA7C8C2 0x25A2E +0x8EA7C8C3 0x25A2C +0x8EA7C8C4 0x25A2B +0x8EA7C8C5 0x25ACD +0x8EA7C8C6 0x25D3D +0x8EA7C8C7 0x25D32 +0x8EA7C8C8 0x25D2D +0x8EA7C8C9 0x25D45 +0x8EA7C8CA 0x25D3E +0x8EA7C8CB 0x25D50 +0x8EA7C8CC 0x25D25 +0x8EA7C8CD 0x25D53 +0x8EA7C8CE 0x25D23 +0x8EA7C8CF 0x25F37 +0x8EA7C8D0 0x25F38 +0x8EA7C8D1 0x25F47 +0x8EA7C8D2 0x25F3D +0x8EA7C8D3 0x25F3E +0x8EA7C8D4 0x25F49 +0x8EA7C8D5 0x25F4A +0x8EA7C8D6 0x25F1D +0x8EA7C8D7 0x7CE9 +0x8EA7C8D8 0x261A5 +0x8EA7C8D9 0x2618C +0x8EA7C8DA 0x2618D +0x8EA7C8DB 0x26189 +0x8EA7C8DC 0x26196 +0x8EA7C8DD 0x26185 +0x8EA7C8DE 0x2618F +0x8EA7C8DF 0x26177 +0x8EA7C8E0 0x2618E +0x8EA7C8E1 0x26182 +0x8EA7C8E2 0x2618A +0x8EA7C8E3 0x26188 +0x8EA7C8E4 0x2617B +0x8EA7C8E5 0x26197 +0x8EA7C8E6 0x2617D +0x8EA7C8E7 0x26179 +0x8EA7C8E8 0x26259 +0x8EA7C8E9 0x26324 +0x8EA7C8EA 0x2632D +0x8EA7C8EB 0x2632E +0x8EA7C8EC 0x2632B +0x8EA7C8ED 0x2F976 +0x8EA7C8EE 0x263DA +0x8EA7C8EF 0x263D8 +0x8EA7C8F0 0x263D6 +0x8EA7C8F1 0x26487 +0x8EA7C8F2 0x264A0 +0x8EA7C8F3 0x26528 +0x8EA7C8F4 0x26525 +0x8EA7C8F5 0x2651F +0x8EA7C8F6 0x265F3 +0x8EA7C8F7 0x265F7 +0x8EA7C8F8 0x265F6 +0x8EA7C8F9 0x2682B +0x8EA7C8FA 0x2685B +0x8EA7C8FB 0x26848 +0x8EA7C8FC 0x81CB +0x8EA7C8FD 0x2685C +0x8EA7C8FE 0x2686D +0x8EA7C9A1 0x2689D +0x8EA7C9A2 0x26899 +0x8EA7C9A3 0x2688C +0x8EA7C9A4 0x26891 +0x8EA7C9A5 0x2689B +0x8EA7C9A6 0x2689A +0x8EA7C9A7 0x2689C +0x8EA7C9A8 0x26895 +0x8EA7C9A9 0x2688D +0x8EA7C9AA 0x26896 +0x8EA7C9AB 0x268A5 +0x8EA7C9AC 0x2692A +0x8EA7C9AD 0x269A1 +0x8EA7C9AE 0x269A4 +0x8EA7C9AF 0x269AD +0x8EA7C9B0 0x26AA9 +0x8EA7C9B1 0x26AAE +0x8EA7C9B2 0x26AB0 +0x8EA7C9B3 0x2700D +0x8EA7C9B4 0x26F63 +0x8EA7C9B5 0x26F71 +0x8EA7C9B6 0x27051 +0x8EA7C9B7 0x27054 +0x8EA7C9B8 0x2702A +0x8EA7C9B9 0x27044 +0x8EA7C9BA 0x27055 +0x8EA7C9BB 0x27099 +0x8EA7C9BC 0x27039 +0x8EA7C9BD 0x2703F +0x8EA7C9BE 0x2703E +0x8EA7C9BF 0x2704F +0x8EA7C9C0 0x2704D +0x8EA7C9C1 0x27035 +0x8EA7C9C2 0x27040 +0x8EA7C9C3 0x27031 +0x8EA7C9C4 0x26FD5 +0x8EA7C9C5 0x2702B +0x8EA7C9C6 0x27033 +0x8EA7C9C7 0x27041 +0x8EA7C9C8 0x27056 +0x8EA7C9C9 0x2704C +0x8EA7C9CA 0x27046 +0x8EA7C9CB 0x2703C +0x8EA7C9CC 0x27045 +0x8EA7C9CD 0x27043 +0x8EA7C9CE 0x2703D +0x8EA7C9CF 0x27070 +0x8EA7C9D0 0x27057 +0x8EA7C9D1 0x27038 +0x8EA7C9D2 0x27058 +0x8EA7C9D3 0x4565 +0x8EA7C9D4 0x27037 +0x8EA7C9D5 0x27207 +0x8EA7C9D6 0x27206 +0x8EA7C9D7 0x27209 +0x8EA7C9D8 0x274AB +0x8EA7C9D9 0x27490 +0x8EA7C9DA 0x27493 +0x8EA7C9DB 0x274BC +0x8EA7C9DC 0x274A9 +0x8EA7C9DD 0x2749E +0x8EA7C9DE 0x274BF +0x8EA7C9DF 0x274AA +0x8EA7C9E0 0x27491 +0x8EA7C9E1 0x274A4 +0x8EA7C9E2 0x2749A +0x8EA7C9E3 0x274A7 +0x8EA7C9E4 0x274A1 +0x8EA7C9E5 0x2749C +0x8EA7C9E6 0x274A2 +0x8EA7C9E7 0x2749B +0x8EA7C9E8 0x2749F +0x8EA7C9E9 0x27494 +0x8EA7C9EA 0x2748F +0x8EA7C9EB 0x272F0 +0x8EA7C9EC 0x27492 +0x8EA7C9ED 0x27495 +0x8EA7C9EE 0x274A5 +0x8EA7C9EF 0x274A6 +0x8EA7C9F0 0x27604 +0x8EA7C9F1 0x2779C +0x8EA7C9F2 0x27779 +0x8EA7C9F3 0x2777A +0x8EA7C9F4 0x2777E +0x8EA7C9F5 0x2777B +0x8EA7C9F6 0x27771 +0x8EA7C9F7 0x27781 +0x8EA7C9F8 0x2777F +0x8EA7C9F9 0x2777C +0x8EA7C9FA 0x2777D +0x8EA7C9FB 0x27775 +0x8EA7C9FC 0x27776 +0x8EA7C9FD 0x2788E +0x8EA7C9FE 0x2788F +0x8EA7CAA1 0x2793E +0x8EA7CAA2 0x2793F +0x8EA7CAA3 0x27940 +0x8EA7CAA4 0x27941 +0x8EA7CAA5 0x4704 +0x8EA7CAA6 0x27B0D +0x8EA7CAA7 0x27B17 +0x8EA7CAA8 0x27B10 +0x8EA7CAA9 0x27B0E +0x8EA7CAAA 0x27AEA +0x8EA7CAAB 0x27B1D +0x8EA7CAAC 0x27B03 +0x8EA7CAAD 0x27B22 +0x8EA7CAAE 0x27B04 +0x8EA7CAAF 0x27B00 +0x8EA7CAB0 0x27B20 +0x8EA7CAB1 0x27B21 +0x8EA7CAB2 0x27B23 +0x8EA7CAB3 0x27B13 +0x8EA7CAB4 0x27B09 +0x8EA7CAB5 0x27B11 +0x8EA7CAB6 0x27BCB +0x8EA7CAB7 0x27BCE +0x8EA7CAB8 0x27BD0 +0x8EA7CAB9 0x27BCC +0x8EA7CABA 0x27BD4 +0x8EA7CABB 0x214DB +0x8EA7CABC 0x27C09 +0x8EA7CABD 0x27C0B +0x8EA7CABE 0x27C85 +0x8EA7CABF 0x27D06 +0x8EA7CAC0 0x27D0D +0x8EA7CAC1 0x4764 +0x8EA7CAC2 0x27D14 +0x8EA7CAC3 0x27D0F +0x8EA7CAC4 0x27E09 +0x8EA7CAC5 0x27E14 +0x8EA7CAC6 0x27E0B +0x8EA7CAC7 0x27DFC +0x8EA7CAC8 0x27E04 +0x8EA7CAC9 0x27E0A +0x8EA7CACA 0x27E00 +0x8EA7CACB 0x27DFD +0x8EA7CACC 0x27E07 +0x8EA7CACD 0x27E06 +0x8EA7CACE 0x27E11 +0x8EA7CACF 0x27E79 +0x8EA7CAD0 0x27E78 +0x8EA7CAD1 0x27F88 +0x8EA7CAD2 0x27F80 +0x8EA7CAD3 0x27F8B +0x8EA7CAD4 0x28159 +0x8EA7CAD5 0x28161 +0x8EA7CAD6 0x28175 +0x8EA7CAD7 0x4823 +0x8EA7CAD8 0x28155 +0x8EA7CAD9 0x2815B +0x8EA7CADA 0x2815F +0x8EA7CADB 0x28152 +0x8EA7CADC 0x28162 +0x8EA7CADD 0x28172 +0x8EA7CADE 0x2815D +0x8EA7CADF 0x28168 +0x8EA7CAE0 0x28171 +0x8EA7CAE1 0x28165 +0x8EA7CAE2 0x28166 +0x8EA7CAE3 0x28167 +0x8EA7CAE4 0x28176 +0x8EA7CAE5 0x2814C +0x8EA7CAE6 0x28160 +0x8EA7CAE7 0x28174 +0x8EA7CAE8 0x28150 +0x8EA7CAE9 0x2828A +0x8EA7CAEA 0x28281 +0x8EA7CAEB 0x28286 +0x8EA7CAEC 0x2827F +0x8EA7CAED 0x28280 +0x8EA7CAEE 0x283A5 +0x8EA7CAEF 0x283A7 +0x8EA7CAF0 0x283A8 +0x8EA7CAF1 0x283A6 +0x8EA7CAF2 0x283AF +0x8EA7CAF3 0x26195 +0x8EA7CAF4 0x283B1 +0x8EA7CAF5 0x28435 +0x8EA7CAF6 0x28439 +0x8EA7CAF7 0x285C3 +0x8EA7CAF8 0x28630 +0x8EA7CAF9 0x2862A +0x8EA7CAFA 0x2862B +0x8EA7CAFB 0x2862D +0x8EA7CAFC 0x2862E +0x8EA7CAFD 0x2862C +0x8EA7CAFE 0x28623 +0x8EA7CBA1 0x28621 +0x8EA7CBA2 0x28622 +0x8EA7CBA3 0x2876C +0x8EA7CBA4 0x28781 +0x8EA7CBA5 0x2878F +0x8EA7CBA6 0x28780 +0x8EA7CBA7 0x287D0 +0x8EA7CBA8 0x287CD +0x8EA7CBA9 0x287D5 +0x8EA7CBAA 0x287D4 +0x8EA7CBAB 0x288D1 +0x8EA7CBAC 0x288BE +0x8EA7CBAD 0x288CB +0x8EA7CBAE 0x288CE +0x8EA7CBAF 0x288BD +0x8EA7CBB0 0x288D0 +0x8EA7CBB1 0x28B04 +0x8EA7CBB2 0x28AD5 +0x8EA7CBB3 0x28AD0 +0x8EA7CBB4 0x28AD3 +0x8EA7CBB5 0x28AFB +0x8EA7CBB6 0x28AD8 +0x8EA7CBB7 0x28AD1 +0x8EA7CBB8 0x28AFD +0x8EA7CBB9 0x28AD9 +0x8EA7CBBA 0x28AD6 +0x8EA7CBBB 0x28AE6 +0x8EA7CBBC 0x28AF9 +0x8EA7CBBD 0x28DA1 +0x8EA7CBBE 0x28D9D +0x8EA7CBBF 0x28D9E +0x8EA7CBC0 0x95D9 +0x8EA7CBC1 0x28EFF +0x8EA7CBC2 0x28F5F +0x8EA7CBC3 0x28F57 +0x8EA7CBC4 0x28F60 +0x8EA7CBC5 0x28F59 +0x8EA7CBC6 0x2902C +0x8EA7CBC7 0x29025 +0x8EA7CBC8 0x29027 +0x8EA7CBC9 0x29030 +0x8EA7CBCA 0x29024 +0x8EA7CBCB 0x29026 +0x8EA7CBCC 0x2902D +0x8EA7CBCD 0x2902E +0x8EA7CBCE 0x29029 +0x8EA7CBCF 0x29031 +0x8EA7CBD0 0x29145 +0x8EA7CBD1 0x29147 +0x8EA7CBD2 0x29152 +0x8EA7CBD3 0x2914A +0x8EA7CBD4 0x29150 +0x8EA7CBD5 0x29146 +0x8EA7CBD6 0x2914F +0x8EA7CBD7 0x2914E +0x8EA7CBD8 0x29153 +0x8EA7CBD9 0x29321 +0x8EA7CBDA 0x29309 +0x8EA7CBDB 0x2931A +0x8EA7CBDC 0x2931B +0x8EA7CBDD 0x25315 +0x8EA7CBDE 0x29310 +0x8EA7CBDF 0x2F9F9 +0x8EA7CBE0 0x29314 +0x8EA7CBE1 0x2930E +0x8EA7CBE2 0x29312 +0x8EA7CBE3 0x2930B +0x8EA7CBE4 0x293CF +0x8EA7CBE5 0x293D2 +0x8EA7CBE6 0x293D0 +0x8EA7CBE7 0x293D4 +0x8EA7CBE8 0x293D3 +0x8EA7CBE9 0x293D1 +0x8EA7CBEA 0x20B18 +0x8EA7CBEB 0x2F9FB +0x8EA7CBEC 0x29409 +0x8EA7CBED 0x2951C +0x8EA7CBEE 0x29527 +0x8EA7CBEF 0x29525 +0x8EA7CBF0 0x2951B +0x8EA7CBF1 0x29529 +0x8EA7CBF2 0x2951F +0x8EA7CBF3 0x29530 +0x8EA7CBF4 0x29524 +0x8EA7CBF5 0x29528 +0x8EA7CBF6 0x29519 +0x8EA7CBF7 0x2952F +0x8EA7CBF8 0x29624 +0x8EA7CBF9 0x29621 +0x8EA7CBFA 0x29625 +0x8EA7CBFB 0x29626 +0x8EA7CBFC 0x29627 +0x8EA7CBFD 0x29676 +0x8EA7CBFE 0x29766 +0x8EA7CCA1 0x29775 +0x8EA7CCA2 0x29769 +0x8EA7CCA3 0x2977E +0x8EA7CCA4 0x2978F +0x8EA7CCA5 0x29774 +0x8EA7CCA6 0x27210 +0x8EA7CCA7 0x297AD +0x8EA7CCA8 0x2982B +0x8EA7CCA9 0x2982A +0x8EA7CCAA 0x29858 +0x8EA7CCAB 0x29922 +0x8EA7CCAC 0x2991D +0x8EA7CCAD 0x2992B +0x8EA7CCAE 0x2992C +0x8EA7CCAF 0x2992D +0x8EA7CCB0 0x29933 +0x8EA7CCB1 0x2991B +0x8EA7CCB2 0x29927 +0x8EA7CCB3 0x2992A +0x8EA7CCB4 0x29928 +0x8EA7CCB5 0x2993B +0x8EA7CCB6 0x29A7E +0x8EA7CCB7 0x29A71 +0x8EA7CCB8 0x29A79 +0x8EA7CCB9 0x29A78 +0x8EA7CCBA 0x29A70 +0x8EA7CCBB 0x29A6D +0x8EA7CCBC 0x29A7D +0x8EA7CCBD 0x29A75 +0x8EA7CCBE 0x29A76 +0x8EA7CCBF 0x29ADE +0x8EA7CCC0 0x29B66 +0x8EA7CCC1 0x29B83 +0x8EA7CCC2 0x29B87 +0x8EA7CCC3 0x29B7B +0x8EA7CCC4 0x29B89 +0x8EA7CCC5 0x29B86 +0x8EA7CCC6 0x29B82 +0x8EA7CCC7 0x29B7C +0x8EA7CCC8 0x29B81 +0x8EA7CCC9 0x29C43 +0x8EA7CCCA 0x29C45 +0x8EA7CCCB 0x29CF7 +0x8EA7CCCC 0x29CF9 +0x8EA7CCCD 0x29CFA +0x8EA7CCCE 0x29E05 +0x8EA7CCCF 0x29DFE +0x8EA7CCD0 0x29E0F +0x8EA7CCD1 0x29DFF +0x8EA7CCD2 0x29DFA +0x8EA7CCD3 0x29E09 +0x8EA7CCD4 0x29E20 +0x8EA7CCD5 0x29E0C +0x8EA7CCD6 0x29E3C +0x8EA7CCD7 0x29E22 +0x8EA7CCD8 0x29DF8 +0x8EA7CCD9 0x29E0A +0x8EA7CCDA 0x29E08 +0x8EA7CCDB 0x29DF7 +0x8EA7CCDC 0x2A08E +0x8EA7CCDD 0x2A077 +0x8EA7CCDE 0x2A08B +0x8EA7CCDF 0x2A0B4 +0x8EA7CCE0 0x2A08A +0x8EA7CCE1 0x2A09A +0x8EA7CCE2 0x2A079 +0x8EA7CCE3 0x2A083 +0x8EA7CCE4 0x2A07F +0x8EA7CCE5 0x2A0A1 +0x8EA7CCE6 0x2A08F +0x8EA7CCE7 0x2A0A3 +0x8EA7CCE8 0x2A081 +0x8EA7CCE9 0x2A094 +0x8EA7CCEA 0x2A07E +0x8EA7CCEB 0x2A082 +0x8EA7CCEC 0x2A090 +0x8EA7CCED 0x2A0A5 +0x8EA7CCEE 0x2A0AD +0x8EA7CCEF 0x2A09D +0x8EA7CCF0 0x2A267 +0x8EA7CCF1 0x2A269 +0x8EA7CCF2 0x2A2CB +0x8EA7CCF3 0x2A2C8 +0x8EA7CCF4 0x2A2D1 +0x8EA7CCF5 0x2A340 +0x8EA7CCF6 0x2A34B +0x8EA7CCF7 0x2A349 +0x8EA7CCF8 0x2A346 +0x8EA7CCF9 0x2A33E +0x8EA7CCFA 0x2A343 +0x8EA7CCFB 0x2A33F +0x8EA7CCFC 0x2A3A5 +0x8EA7CCFD 0x2A3A7 +0x8EA7CCFE 0x2A44E +0x8EA7CDA1 0x2A44D +0x8EA7CDA2 0x2259B +0x8EA7CDA3 0x2A4E5 +0x8EA7CDA4 0x2A4E1 +0x8EA7CDA5 0x2A4E2 +0x8EA7CDA6 0x2A516 +0x8EA7CDA7 0x2A514 +0x8EA7CDA8 0x2FA1B +0x8EA7CDA9 0x2A559 +0x8EA7CDAA 0x2A551 +0x8EA7CDAB 0x2A55F +0x8EA7CDAC 0x2A54A +0x8EA7CDAD 0x2A557 +0x8EA7CDAE 0x2A558 +0x8EA7CDAF 0x2A5CA +0x8EA7CDB0 0x2A5DB +0x8EA7CDB1 0x2A5DE +0x8EA7CDB2 0x2A5E0 +0x8EA7CDB3 0x2A5E1 +0x8EA7CDB4 0x2A5DF +0x8EA7CDB5 0x2A5E2 +0x8EA7CDB6 0x2A5E3 +0x8EA7CDB7 0x2A692 +0x8EA7CDB8 0x2A6BF +0x8EA7CDB9 0x2A6BE +0x8EA7CDBA 0x2010B +0x8EA7CDBB 0x20452 +0x8EA7CDBC 0x2044E +0x8EA7CDBD 0x34B9 +0x8EA7CDBE 0x2F813 +0x8EA7CDBF 0x205A7 +0x8EA7CDC0 0x20826 +0x8EA7CDC1 0x20827 +0x8EA7CDC2 0x208C6 +0x8EA7CDC3 0x2090B +0x8EA7CDC4 0x2096A +0x8EA7CDC5 0x20978 +0x8EA7CDC6 0x2111A +0x8EA7CDC7 0x21116 +0x8EA7CDC8 0x21119 +0x8EA7CDC9 0x21117 +0x8EA7CDCA 0x2111B +0x8EA7CDCB 0x21118 +0x8EA7CDCC 0x21120 +0x8EA7CDCD 0x21237 +0x8EA7CDCE 0x214EC +0x8EA7CDCF 0x21581 +0x8EA7CDD0 0x2923D +0x8EA7CDD1 0x2190F +0x8EA7CDD2 0x219AD +0x8EA7CDD3 0x21AFB +0x8EA7CDD4 0x21B52 +0x8EA7CDD5 0x21FAF +0x8EA7CDD6 0x21FB7 +0x8EA7CDD7 0x21FB2 +0x8EA7CDD8 0x22178 +0x8EA7CDD9 0x221AC +0x8EA7CDDA 0x22300 +0x8EA7CDDB 0x222FE +0x8EA7CDDC 0x22302 +0x8EA7CDDD 0x222FD +0x8EA7CDDE 0x22303 +0x8EA7CDDF 0x22440 +0x8EA7CDE0 0x22443 +0x8EA7CDE1 0x22442 +0x8EA7CDE2 0x224B7 +0x8EA7CDE3 0x225A2 +0x8EA7CDE4 0x22900 +0x8EA7CDE5 0x22935 +0x8EA7CDE6 0x22941 +0x8EA7CDE7 0x22905 +0x8EA7CDE8 0x20453 +0x8EA7CDE9 0x22950 +0x8EA7CDEA 0x2294E +0x8EA7CDEB 0x22953 +0x8EA7CDEC 0x22E53 +0x8EA7CDED 0x22E50 +0x8EA7CDEE 0x22E57 +0x8EA7CDEF 0x22E5F +0x8EA7CDF0 0x22E55 +0x8EA7CDF1 0x22EEA +0x8EA7CDF2 0x23026 +0x8EA7CDF3 0x29830 +0x8EA7CDF4 0x2302A +0x8EA7CDF5 0x23028 +0x8EA7CDF6 0x2302C +0x8EA7CDF7 0x2302D +0x8EA7CDF8 0x230D4 +0x8EA7CDF9 0x23307 +0x8EA7CDFA 0x23358 +0x8EA7CDFB 0x23359 +0x8EA7CDFC 0x237C5 +0x8EA7CDFD 0x237CD +0x8EA7CDFE 0x237C7 +0x8EA7CEA1 0x237E8 +0x8EA7CEA2 0x3C4B +0x8EA7CEA3 0x23932 +0x8EA7CEA4 0x2A697 +0x8EA7CEA5 0x23ADE +0x8EA7CEA6 0x23C32 +0x8EA7CEA7 0x20AC8 +0x8EA7CEA8 0x2F915 +0x8EA7CEA9 0x240F1 +0x8EA7CEAA 0x240F0 +0x8EA7CEAB 0x240EC +0x8EA7CEAC 0x24109 +0x8EA7CEAD 0x240F9 +0x8EA7CEAE 0x240F5 +0x8EA7CEAF 0x240FE +0x8EA7CEB0 0x24474 +0x8EA7CEB1 0x24481 +0x8EA7CEB2 0x2447C +0x8EA7CEB3 0x24475 +0x8EA7CEB4 0x24489 +0x8EA7CEB5 0x24482 +0x8EA7CEB6 0x24497 +0x8EA7CEB7 0x24486 +0x8EA7CEB8 0x2447D +0x8EA7CEB9 0x24493 +0x8EA7CEBA 0x2449C +0x8EA7CEBB 0x24476 +0x8EA7CEBC 0x24480 +0x8EA7CEBD 0x24545 +0x8EA7CEBE 0x206A1 +0x8EA7CEBF 0x24703 +0x8EA7CEC0 0x248C9 +0x8EA7CEC1 0x248CD +0x8EA7CEC2 0x248D0 +0x8EA7CEC3 0x24AAD +0x8EA7CEC4 0x24AC5 +0x8EA7CEC5 0x24BA2 +0x8EA7CEC6 0x24CEC +0x8EA7CEC7 0x24CF6 +0x8EA7CEC8 0x24CF3 +0x8EA7CEC9 0x24EF3 +0x8EA7CECA 0x24EFA +0x8EA7CECB 0x24EF9 +0x8EA7CECC 0x24EF5 +0x8EA7CECD 0x24EF4 +0x8EA7CECE 0x24EF8 +0x8EA7CECF 0x24FB6 +0x8EA7CED0 0x24FB4 +0x8EA7CED1 0x25032 +0x8EA7CED2 0x250CD +0x8EA7CED3 0x250C8 +0x8EA7CED4 0x250CE +0x8EA7CED5 0x250CA +0x8EA7CED6 0x2532A +0x8EA7CED7 0x25321 +0x8EA7CED8 0x2531D +0x8EA7CED9 0x255BD +0x8EA7CEDA 0x255BE +0x8EA7CEDB 0x255C2 +0x8EA7CEDC 0x40F1 +0x8EA7CEDD 0x255C9 +0x8EA7CEDE 0x2571F +0x8EA7CEDF 0x258F1 +0x8EA7CEE0 0x258ED +0x8EA7CEE1 0x258F2 +0x8EA7CEE2 0x258E0 +0x8EA7CEE3 0x258F7 +0x8EA7CEE4 0x25A30 +0x8EA7CEE5 0x25A37 +0x8EA7CEE6 0x25A31 +0x8EA7CEE7 0x25A36 +0x8EA7CEE8 0x25AC8 +0x8EA7CEE9 0x25D6D +0x8EA7CEEA 0x25D69 +0x8EA7CEEB 0x25D7D +0x8EA7CEEC 0x25D61 +0x8EA7CEED 0x25D70 +0x8EA7CEEE 0x25D71 +0x8EA7CEEF 0x25D73 +0x8EA7CEF0 0x25D76 +0x8EA7CEF1 0x25D75 +0x8EA7CEF2 0x25D78 +0x8EA7CEF3 0x25D79 +0x8EA7CEF4 0x25D64 +0x8EA7CEF5 0x25D6E +0x8EA7CEF6 0x25F51 +0x8EA7CEF7 0x25F4F +0x8EA7CEF8 0x25F22 +0x8EA7CEF9 0x261AF +0x8EA7CEFA 0x261AA +0x8EA7CEFB 0x261A3 +0x8EA7CEFC 0x2619D +0x8EA7CEFD 0x2619C +0x8EA7CEFE 0x261A1 +0x8EA7CFA1 0x261B6 +0x8EA7CFA2 0x261AC +0x8EA7CFA3 0x261A2 +0x8EA7CFA4 0x261A7 +0x8EA7CFA5 0x261B0 +0x8EA7CFA6 0x261A9 +0x8EA7CFA7 0x261C3 +0x8EA7CFA8 0x26331 +0x8EA7CFA9 0x26332 +0x8EA7CFAA 0x26333 +0x8EA7CFAB 0x26334 +0x8EA7CFAC 0x26337 +0x8EA7CFAD 0x2633C +0x8EA7CFAE 0x263D9 +0x8EA7CFAF 0x263DD +0x8EA7CFB0 0x263DE +0x8EA7CFB1 0x263DF +0x8EA7CFB2 0x263E0 +0x8EA7CFB3 0x264A5 +0x8EA7CFB4 0x264AA +0x8EA7CFB5 0x264A2 +0x8EA7CFB6 0x264A3 +0x8EA7CFB7 0x26604 +0x8EA7CFB8 0x26603 +0x8EA7CFB9 0x265FE +0x8EA7CFBA 0x26628 +0x8EA7CFBB 0x268AF +0x8EA7CFBC 0x268AD +0x8EA7CFBD 0x268A6 +0x8EA7CFBE 0x269AC +0x8EA7CFBF 0x269A5 +0x8EA7CFC0 0x269B0 +0x8EA7CFC1 0x269B1 +0x8EA7CFC2 0x26A01 +0x8EA7CFC3 0x26AB2 +0x8EA7CFC4 0x26AD2 +0x8EA7CFC5 0x26AF1 +0x8EA7CFC6 0x26FD1 +0x8EA7CFC7 0x27047 +0x8EA7CFC8 0x270C9 +0x8EA7CFC9 0x270A7 +0x8EA7CFCA 0x270C8 +0x8EA7CFCB 0x27095 +0x8EA7CFCC 0x2708E +0x8EA7CFCD 0x27091 +0x8EA7CFCE 0x2707D +0x8EA7CFCF 0x270EE +0x8EA7CFD0 0x2708D +0x8EA7CFD1 0x2708C +0x8EA7CFD2 0x270B0 +0x8EA7CFD3 0x27096 +0x8EA7CFD4 0x27042 +0x8EA7CFD5 0x2707C +0x8EA7CFD6 0x270B1 +0x8EA7CFD7 0x270B2 +0x8EA7CFD8 0x27084 +0x8EA7CFD9 0x2709D +0x8EA7CFDA 0x270A1 +0x8EA7CFDB 0x27098 +0x8EA7CFDC 0x270B3 +0x8EA7CFDD 0x27022 +0x8EA7CFDE 0x2707B +0x8EA7CFDF 0x2708A +0x8EA7CFE0 0x270CE +0x8EA7CFE1 0x27080 +0x8EA7CFE2 0x27097 +0x8EA7CFE3 0x270B4 +0x8EA7CFE4 0x270B5 +0x8EA7CFE5 0x2709A +0x8EA7CFE6 0x2709F +0x8EA7CFE7 0x27093 +0x8EA7CFE8 0x27212 +0x8EA7CFE9 0x2720B +0x8EA7CFEA 0x2720E +0x8EA7CFEB 0x274A3 +0x8EA7CFEC 0x274CC +0x8EA7CFED 0x274DC +0x8EA7CFEE 0x274E1 +0x8EA7CFEF 0x274DE +0x8EA7CFF0 0x274D2 +0x8EA7CFF1 0x274DB +0x8EA7CFF2 0x274D9 +0x8EA7CFF3 0x274D7 +0x8EA7CFF4 0x274D4 +0x8EA7CFF5 0x274C9 +0x8EA7CFF6 0x274EB +0x8EA7CFF7 0x274DA +0x8EA7CFF8 0x274D1 +0x8EA7CFF9 0x27504 +0x8EA7CFFA 0x274CA +0x8EA7CFFB 0x274E2 +0x8EA7CFFC 0x275D7 +0x8EA7CFFD 0x2778C +0x8EA7CFFE 0x27799 +0x8EA7D0A1 0x277A2 +0x8EA7D0A2 0x27796 +0x8EA7D0A3 0x27794 +0x8EA7D0A4 0x2779F +0x8EA7D0A5 0x4667 +0x8EA7D0A6 0x2778E +0x8EA7D0A7 0x27803 +0x8EA7D0A8 0x27894 +0x8EA7D0A9 0x27893 +0x8EA7D0AA 0x27944 +0x8EA7D0AB 0x27B2F +0x8EA7D0AC 0x27B35 +0x8EA7D0AD 0x27B2B +0x8EA7D0AE 0x27B32 +0x8EA7D0AF 0x27B2D +0x8EA7D0B0 0x27B36 +0x8EA7D0B1 0x4714 +0x8EA7D0B2 0x27B31 +0x8EA7D0B3 0x27B12 +0x8EA7D0B4 0x27B33 +0x8EA7D0B5 0x27B1F +0x8EA7D0B6 0x27B34 +0x8EA7D0B7 0x27B40 +0x8EA7D0B8 0x27B3F +0x8EA7D0B9 0x27B41 +0x8EA7D0BA 0x27BD3 +0x8EA7D0BB 0x27C89 +0x8EA7D0BC 0x27D18 +0x8EA7D0BD 0x27D10 +0x8EA7D0BE 0x27E1A +0x8EA7D0BF 0x27E25 +0x8EA7D0C0 0x27E1E +0x8EA7D0C1 0x27F92 +0x8EA7D0C2 0x27F95 +0x8EA7D0C3 0x27F93 +0x8EA7D0C4 0x28184 +0x8EA7D0C5 0x2819A +0x8EA7D0C6 0x28189 +0x8EA7D0C7 0x2818D +0x8EA7D0C8 0x28188 +0x8EA7D0C9 0x28191 +0x8EA7D0CA 0x2819B +0x8EA7D0CB 0x2819C +0x8EA7D0CC 0x29548 +0x8EA7D0CD 0x2828E +0x8EA7D0CE 0x28292 +0x8EA7D0CF 0x283C5 +0x8EA7D0D0 0x283C1 +0x8EA7D0D1 0x283B8 +0x8EA7D0D2 0x283BE +0x8EA7D0D3 0x283B5 +0x8EA7D0D4 0x283C7 +0x8EA7D0D5 0x2843C +0x8EA7D0D6 0x4889 +0x8EA7D0D7 0x285EC +0x8EA7D0D8 0x2863F +0x8EA7D0D9 0x28639 +0x8EA7D0DA 0x28637 +0x8EA7D0DB 0x287A1 +0x8EA7D0DC 0x28794 +0x8EA7D0DD 0x287A0 +0x8EA7D0DE 0x287DE +0x8EA7D0DF 0x287DB +0x8EA7D0E0 0x287DF +0x8EA7D0E1 0x287DC +0x8EA7D0E2 0x288D6 +0x8EA7D0E3 0x288DC +0x8EA7D0E4 0x288DD +0x8EA7D0E5 0x288E0 +0x8EA7D0E6 0x288E3 +0x8EA7D0E7 0x288E1 +0x8EA7D0E8 0x28B18 +0x8EA7D0E9 0x28B19 +0x8EA7D0EA 0x28B53 +0x8EA7D0EB 0x2F9EC +0x8EA7D0EC 0x28B44 +0x8EA7D0ED 0x28B0E +0x8EA7D0EE 0x28B0F +0x8EA7D0EF 0x28B47 +0x8EA7D0F0 0x28B17 +0x8EA7D0F1 0x28B1D +0x8EA7D0F2 0x28B11 +0x8EA7D0F3 0x28CB4 +0x8EA7D0F4 0x28CB6 +0x8EA7D0F5 0x28DB7 +0x8EA7D0F6 0x28DBE +0x8EA7D0F7 0x28DC2 +0x8EA7D0F8 0x28DB4 +0x8EA7D0F9 0x28F31 +0x8EA7D0FA 0x28F15 +0x8EA7D0FB 0x28F83 +0x8EA7D0FC 0x2903B +0x8EA7D0FD 0x29036 +0x8EA7D0FE 0x29042 +0x8EA7D1A1 0x29050 +0x8EA7D1A2 0x29040 +0x8EA7D1A3 0x29034 +0x8EA7D1A4 0x29038 +0x8EA7D1A5 0x2903D +0x8EA7D1A6 0x2903E +0x8EA7D1A7 0x29035 +0x8EA7D1A8 0x2903A +0x8EA7D1A9 0x29046 +0x8EA7D1AA 0x29037 +0x8EA7D1AB 0x29039 +0x8EA7D1AC 0x29045 +0x8EA7D1AD 0x29177 +0x8EA7D1AE 0x2915D +0x8EA7D1AF 0x2916A +0x8EA7D1B0 0x29176 +0x8EA7D1B1 0x2916B +0x8EA7D1B2 0x2916C +0x8EA7D1B3 0x29165 +0x8EA7D1B4 0x29164 +0x8EA7D1B5 0x29171 +0x8EA7D1B6 0x2915F +0x8EA7D1B7 0x29172 +0x8EA7D1B8 0x291FE +0x8EA7D1B9 0x291FF +0x8EA7D1BA 0x2923E +0x8EA7D1BB 0x2932B +0x8EA7D1BC 0x29336 +0x8EA7D1BD 0x2932D +0x8EA7D1BE 0x29339 +0x8EA7D1BF 0x2933F +0x8EA7D1C0 0x2933B +0x8EA7D1C1 0x29333 +0x8EA7D1C2 0x29342 +0x8EA7D1C3 0x2933A +0x8EA7D1C4 0x293D5 +0x8EA7D1C5 0x293D8 +0x8EA7D1C6 0x293D9 +0x8EA7D1C7 0x2940D +0x8EA7D1C8 0x2940A +0x8EA7D1C9 0x29439 +0x8EA7D1CA 0x2943A +0x8EA7D1CB 0x2953D +0x8EA7D1CC 0x29545 +0x8EA7D1CD 0x2953A +0x8EA7D1CE 0x29537 +0x8EA7D1CF 0x2953E +0x8EA7D1D0 0x29542 +0x8EA7D1D1 0x29787 +0x8EA7D1D2 0x2978C +0x8EA7D1D3 0x29782 +0x8EA7D1D4 0x2976B +0x8EA7D1D5 0x297A0 +0x8EA7D1D6 0x2979A +0x8EA7D1D7 0x29790 +0x8EA7D1D8 0x2978E +0x8EA7D1D9 0x297A1 +0x8EA7D1DA 0x297BD +0x8EA7D1DB 0x297B2 +0x8EA7D1DC 0x297B5 +0x8EA7D1DD 0x297B7 +0x8EA7D1DE 0x297AA +0x8EA7D1DF 0x297A2 +0x8EA7D1E0 0x297A5 +0x8EA7D1E1 0x297AE +0x8EA7D1E2 0x297AB +0x8EA7D1E3 0x297BC +0x8EA7D1E4 0x29832 +0x8EA7D1E5 0x2985A +0x8EA7D1E6 0x29964 +0x8EA7D1E7 0x2995C +0x8EA7D1E8 0x2994D +0x8EA7D1E9 0x2993F +0x8EA7D1EA 0x2993E +0x8EA7D1EB 0x29952 +0x8EA7D1EC 0x29958 +0x8EA7D1ED 0x29957 +0x8EA7D1EE 0x2995E +0x8EA7D1EF 0x29953 +0x8EA7D1F0 0x29954 +0x8EA7D1F1 0x29956 +0x8EA7D1F2 0x28F65 +0x8EA7D1F3 0x29A84 +0x8EA7D1F4 0x29A85 +0x8EA7D1F5 0x29A86 +0x8EA7D1F6 0x29B97 +0x8EA7D1F7 0x29BA1 +0x8EA7D1F8 0x29BA2 +0x8EA7D1F9 0x4C0B +0x8EA7D1FA 0x2FA0A +0x8EA7D1FB 0x29BA3 +0x8EA7D1FC 0x29BA6 +0x8EA7D1FD 0x4C17 +0x8EA7D1FE 0x29C15 +0x8EA7D2A1 0x29C24 +0x8EA7D2A2 0x29C4A +0x8EA7D2A3 0x29C49 +0x8EA7D2A4 0x29C48 +0x8EA7D2A5 0x29C4B +0x8EA7D2A6 0x29D0E +0x8EA7D2A7 0x29962 +0x8EA7D2A8 0x29D0B +0x8EA7D2A9 0x29D0A +0x8EA7D2AA 0x29D08 +0x8EA7D2AB 0x29D06 +0x8EA7D2AC 0x29E43 +0x8EA7D2AD 0x29E47 +0x8EA7D2AE 0x29E3F +0x8EA7D2AF 0x29E46 +0x8EA7D2B0 0x29E50 +0x8EA7D2B1 0x4C6D +0x8EA7D2B2 0x29E4B +0x8EA7D2B3 0x4C70 +0x8EA7D2B4 0x29E52 +0x8EA7D2B5 0x2A0D7 +0x8EA7D2B6 0x2A0BF +0x8EA7D2B7 0x2A0D8 +0x8EA7D2B8 0x2A0E0 +0x8EA7D2B9 0x2A0E7 +0x8EA7D2BA 0x2A0B8 +0x8EA7D2BB 0x2A0D5 +0x8EA7D2BC 0x2A0EF +0x8EA7D2BD 0x2A0E6 +0x8EA7D2BE 0x2A0E4 +0x8EA7D2BF 0x2A0D4 +0x8EA7D2C0 0x2A0D6 +0x8EA7D2C1 0x2A0EA +0x8EA7D2C2 0x4CED +0x8EA7D2C3 0x2A0BB +0x8EA7D2C4 0x2A0E9 +0x8EA7D2C5 0x2FA10 +0x8EA7D2C6 0x2A26D +0x8EA7D2C7 0x2A270 +0x8EA7D2C8 0x2A273 +0x8EA7D2C9 0x2A272 +0x8EA7D2CA 0x2A2D4 +0x8EA7D2CB 0x2A2CE +0x8EA7D2CC 0x2A2D5 +0x8EA7D2CD 0x2A35A +0x8EA7D2CE 0x2A358 +0x8EA7D2CF 0x2A352 +0x8EA7D2D0 0x2A350 +0x8EA7D2D1 0x2A355 +0x8EA7D2D2 0x2A34E +0x8EA7D2D3 0x2A34D +0x8EA7D2D4 0x2A3CB +0x8EA7D2D5 0x2A3CC +0x8EA7D2D6 0x2A3CD +0x8EA7D2D7 0x2A3D1 +0x8EA7D2D8 0x2A458 +0x8EA7D2D9 0x2A463 +0x8EA7D2DA 0x2A45E +0x8EA7D2DB 0x2A454 +0x8EA7D2DC 0x2A45B +0x8EA7D2DD 0x2A4E9 +0x8EA7D2DE 0x2A4E7 +0x8EA7D2DF 0x2A4E8 +0x8EA7D2E0 0x2A51D +0x8EA7D2E1 0x2A567 +0x8EA7D2E2 0x2A55A +0x8EA7D2E3 0x2A55C +0x8EA7D2E4 0x2A55B +0x8EA7D2E5 0x2A561 +0x8EA7D2E6 0x2A5A1 +0x8EA7D2E7 0x4D8D +0x8EA7D2E8 0x2A5A4 +0x8EA7D2E9 0x2A5E9 +0x8EA7D2EA 0x2A5EF +0x8EA7D2EB 0x2A5E5 +0x8EA7D2EC 0x2A5F5 +0x8EA7D2ED 0x2A5EB +0x8EA7D2EE 0x2A5ED +0x8EA7D2EF 0x2A696 +0x8EA7D2F0 0x2A695 +0x8EA7D2F1 0x2A6B3 +0x8EA7D2F2 0x2A6B5 +0x8EA7D2F3 0x2A6B1 +0x8EA7D2F4 0x34A7 +0x8EA7D2F5 0x2044D +0x8EA7D2F6 0x20624 +0x8EA7D2F7 0x2082B +0x8EA7D2F8 0x209CF +0x8EA7D2F9 0x20AC9 +0x8EA7D2FA 0x21136 +0x8EA7D2FB 0x21131 +0x8EA7D2FC 0x21154 +0x8EA7D2FD 0x2113A +0x8EA7D2FE 0x21138 +0x8EA7D3A1 0x21239 +0x8EA7D3A2 0x21238 +0x8EA7D3A3 0x214F4 +0x8EA7D3A4 0x214F3 +0x8EA7D3A5 0x214F6 +0x8EA7D3A6 0x214FC +0x8EA7D3A7 0x214F5 +0x8EA7D3A8 0x214F1 +0x8EA7D3A9 0x2169C +0x8EA7D3AA 0x21918 +0x8EA7D3AB 0x2191A +0x8EA7D3AC 0x21AFC +0x8EA7D3AD 0x21AFE +0x8EA7D3AE 0x21B03 +0x8EA7D3AF 0x21B53 +0x8EA7D3B0 0x21D2B +0x8EA7D3B1 0x21FC6 +0x8EA7D3B2 0x21FC1 +0x8EA7D3B3 0x2217B +0x8EA7D3B4 0x22306 +0x8EA7D3B5 0x22449 +0x8EA7D3B6 0x224B8 +0x8EA7D3B7 0x225A3 +0x8EA7D3B8 0x22952 +0x8EA7D3B9 0x2294D +0x8EA7D3BA 0x2295F +0x8EA7D3BB 0x2295E +0x8EA7D3BC 0x22961 +0x8EA7D3BD 0x22A23 +0x8EA7D3BE 0x22E8C +0x8EA7D3BF 0x22E6F +0x8EA7D3C0 0x22E75 +0x8EA7D3C1 0x22E74 +0x8EA7D3C2 0x22E71 +0x8EA7D3C3 0x22E70 +0x8EA7D3C4 0x22E6C +0x8EA7D3C5 0x23126 +0x8EA7D3C6 0x23308 +0x8EA7D3C7 0x6707 +0x8EA7D3C8 0x237F0 +0x8EA7D3C9 0x237EF +0x8EA7D3CA 0x237FB +0x8EA7D3CB 0x23810 +0x8EA7D3CC 0x2380C +0x8EA7D3CD 0x237F6 +0x8EA7D3CE 0x237FE +0x8EA7D3CF 0x23A7C +0x8EA7D3D0 0x23AE1 +0x8EA7D3D1 0x23C38 +0x8EA7D3D2 0x23C6F +0x8EA7D3D3 0x24118 +0x8EA7D3D4 0x24115 +0x8EA7D3D5 0x2411C +0x8EA7D3D6 0x24110 +0x8EA7D3D7 0x24135 +0x8EA7D3D8 0x2F917 +0x8EA7D3D9 0x24117 +0x8EA7D3DA 0x2411D +0x8EA7D3DB 0x24126 +0x8EA7D3DC 0x24128 +0x8EA7D3DD 0x24129 +0x8EA7D3DE 0x2412A +0x8EA7D3DF 0x2411A +0x8EA7D3E0 0x2F916 +0x8EA7D3E1 0x22307 +0x8EA7D3E2 0x244AB +0x8EA7D3E3 0x244AC +0x8EA7D3E4 0x244A1 +0x8EA7D3E5 0x244AE +0x8EA7D3E6 0x244A3 +0x8EA7D3E7 0x244A7 +0x8EA7D3E8 0x24548 +0x8EA7D3E9 0x24604 +0x8EA7D3EA 0x246FD +0x8EA7D3EB 0x3E5A +0x8EA7D3EC 0x24708 +0x8EA7D3ED 0x248D2 +0x8EA7D3EE 0x24AC6 +0x8EA7D3EF 0x24ABE +0x8EA7D3F0 0x24B1C +0x8EA7D3F1 0x24BA6 +0x8EA7D3F2 0x24BA7 +0x8EA7D3F3 0x24BAB +0x8EA7D3F4 0x24C00 +0x8EA7D3F5 0x24CFB +0x8EA7D3F6 0x24CFC +0x8EA7D3F7 0x24CF9 +0x8EA7D3F8 0x24D01 +0x8EA7D3F9 0x24F06 +0x8EA7D3FA 0x24F04 +0x8EA7D3FB 0x2F93C +0x8EA7D3FC 0x25034 +0x8EA7D3FD 0x25336 +0x8EA7D3FE 0x25332 +0x8EA7D4A1 0x25342 +0x8EA7D4A2 0x2532D +0x8EA7D4A3 0x25335 +0x8EA7D4A4 0x255D8 +0x8EA7D4A5 0x25723 +0x8EA7D4A6 0x25720 +0x8EA7D4A7 0x25901 +0x8EA7D4A8 0x25900 +0x8EA7D4A9 0x25903 +0x8EA7D4AA 0x2A6BC +0x8EA7D4AB 0x25A3C +0x8EA7D4AC 0x25A41 +0x8EA7D4AD 0x25A35 +0x8EA7D4AE 0x25AC9 +0x8EA7D4AF 0x25D8E +0x8EA7D4B0 0x25D9E +0x8EA7D4B1 0x25D99 +0x8EA7D4B2 0x25DB4 +0x8EA7D4B3 0x25DAA +0x8EA7D4B4 0x25D9F +0x8EA7D4B5 0x25D96 +0x8EA7D4B6 0x25D9D +0x8EA7D4B7 0x25DC3 +0x8EA7D4B8 0x25D74 +0x8EA7D4B9 0x25DAB +0x8EA7D4BA 0x42AF +0x8EA7D4BB 0x25F63 +0x8EA7D4BC 0x25F5B +0x8EA7D4BD 0x25F5A +0x8EA7D4BE 0x261C5 +0x8EA7D4BF 0x261C4 +0x8EA7D4C0 0x261CF +0x8EA7D4C1 0x261C8 +0x8EA7D4C2 0x261A4 +0x8EA7D4C3 0x261BD +0x8EA7D4C4 0x261D3 +0x8EA7D4C5 0x26260 +0x8EA7D4C6 0x2633B +0x8EA7D4C7 0x263E3 +0x8EA7D4C8 0x263E7 +0x8EA7D4C9 0x264A8 +0x8EA7D4CA 0x264AC +0x8EA7D4CB 0x264A9 +0x8EA7D4CC 0x2652A +0x8EA7D4CD 0x26608 +0x8EA7D4CE 0x26609 +0x8EA7D4CF 0x268B9 +0x8EA7D4D0 0x26AC1 +0x8EA7D4D1 0x26AC2 +0x8EA7D4D2 0x26AB8 +0x8EA7D4D3 0x270E1 +0x8EA7D4D4 0x270EB +0x8EA7D4D5 0x270E5 +0x8EA7D4D6 0x270FA +0x8EA7D4D7 0x270E4 +0x8EA7D4D8 0x2710B +0x8EA7D4D9 0x270D7 +0x8EA7D4DA 0x270EF +0x8EA7D4DB 0x270E0 +0x8EA7D4DC 0x270EC +0x8EA7D4DD 0x270FB +0x8EA7D4DE 0x2F9B0 +0x8EA7D4DF 0x270D3 +0x8EA7D4E0 0x270E6 +0x8EA7D4E1 0x270FC +0x8EA7D4E2 0x270E3 +0x8EA7D4E3 0x270CF +0x8EA7D4E4 0x270DA +0x8EA7D4E5 0x270DC +0x8EA7D4E6 0x270D2 +0x8EA7D4E7 0x270A4 +0x8EA7D4E8 0x456B +0x8EA7D4E9 0x27217 +0x8EA7D4EA 0x27216 +0x8EA7D4EB 0x274F2 +0x8EA7D4EC 0x274FC +0x8EA7D4ED 0x27518 +0x8EA7D4EE 0x274F6 +0x8EA7D4EF 0x274FE +0x8EA7D4F0 0x274F3 +0x8EA7D4F1 0x274F7 +0x8EA7D4F2 0x27501 +0x8EA7D4F3 0x274F9 +0x8EA7D4F4 0x27506 +0x8EA7D4F5 0x274F5 +0x8EA7D4F6 0x27510 +0x8EA7D4F7 0x274DF +0x8EA7D4F8 0x27503 +0x8EA7D4F9 0x27508 +0x8EA7D4FA 0x275D8 +0x8EA7D4FB 0x27605 +0x8EA7D4FC 0x27797 +0x8EA7D4FD 0x277B3 +0x8EA7D4FE 0x277AE +0x8EA7D5A1 0x277AF +0x8EA7D5A2 0x277A7 +0x8EA7D5A3 0x277B1 +0x8EA7D5A4 0x277A8 +0x8EA7D5A5 0x277AC +0x8EA7D5A6 0x277AB +0x8EA7D5A7 0x27804 +0x8EA7D5A8 0x2789A +0x8EA7D5A9 0x2794A +0x8EA7D5AA 0x27B42 +0x8EA7D5AB 0x27B58 +0x8EA7D5AC 0x27B4B +0x8EA7D5AD 0x27B45 +0x8EA7D5AE 0x27B49 +0x8EA7D5AF 0x27B4C +0x8EA7D5B0 0x27B59 +0x8EA7D5B1 0x27B56 +0x8EA7D5B2 0x471B +0x8EA7D5B3 0x27B46 +0x8EA7D5B4 0x27B44 +0x8EA7D5B5 0x27B5B +0x8EA7D5B6 0x27B69 +0x8EA7D5B7 0x27C8E +0x8EA7D5B8 0x27C8F +0x8EA7D5B9 0x27D1E +0x8EA7D5BA 0x268BC +0x8EA7D5BB 0x27E2F +0x8EA7D5BC 0x27F9E +0x8EA7D5BD 0x27F9D +0x8EA7D5BE 0x27F9F +0x8EA7D5BF 0x27F9C +0x8EA7D5C0 0x281B4 +0x8EA7D5C1 0x281AE +0x8EA7D5C2 0x281AB +0x8EA7D5C3 0x281B3 +0x8EA7D5C4 0x281AF +0x8EA7D5C5 0x281C2 +0x8EA7D5C6 0x28293 +0x8EA7D5C7 0x28295 +0x8EA7D5C8 0x28296 +0x8EA7D5C9 0x28297 +0x8EA7D5CA 0x283CF +0x8EA7D5CB 0x283CE +0x8EA7D5CC 0x283CB +0x8EA7D5CD 0x2844B +0x8EA7D5CE 0x28646 +0x8EA7D5CF 0x28643 +0x8EA7D5D0 0x28645 +0x8EA7D5D1 0x28651 +0x8EA7D5D2 0x287AE +0x8EA7D5D3 0x287AF +0x8EA7D5D4 0x287B0 +0x8EA7D5D5 0x287B8 +0x8EA7D5D6 0x287E2 +0x8EA7D5D7 0x287E3 +0x8EA7D5D8 0x287E6 +0x8EA7D5D9 0x288ED +0x8EA7D5DA 0x288EA +0x8EA7D5DB 0x2893A +0x8EA7D5DC 0x28B59 +0x8EA7D5DD 0x28B84 +0x8EA7D5DE 0x28B5F +0x8EA7D5DF 0x28B7C +0x8EA7D5E0 0x28B5C +0x8EA7D5E1 0x28B58 +0x8EA7D5E2 0x28B55 +0x8EA7D5E3 0x28B5D +0x8EA7D5E4 0x28B7E +0x8EA7D5E5 0x28B80 +0x8EA7D5E6 0x28B83 +0x8EA7D5E7 0x28B57 +0x8EA7D5E8 0x4963 +0x8EA7D5E9 0x28B5E +0x8EA7D5EA 0x28CBA +0x8EA7D5EB 0x28DD5 +0x8EA7D5EC 0x28F58 +0x8EA7D5ED 0x28F68 +0x8EA7D5EE 0x28F67 +0x8EA7D5EF 0x2904A +0x8EA7D5F0 0x2904C +0x8EA7D5F1 0x29052 +0x8EA7D5F2 0x29049 +0x8EA7D5F3 0x2904E +0x8EA7D5F4 0x29047 +0x8EA7D5F5 0x2904D +0x8EA7D5F6 0x2904B +0x8EA7D5F7 0x2904F +0x8EA7D5F8 0x2917E +0x8EA7D5F9 0x29187 +0x8EA7D5FA 0x29183 +0x8EA7D5FB 0x29189 +0x8EA7D5FC 0x24ACA +0x8EA7D5FD 0x29186 +0x8EA7D5FE 0x29188 +0x8EA7D6A1 0x29247 +0x8EA7D6A2 0x29242 +0x8EA7D6A3 0x29249 +0x8EA7D6A4 0x29248 +0x8EA7D6A5 0x4A80 +0x8EA7D6A6 0x4A84 +0x8EA7D6A7 0x4A7F +0x8EA7D6A8 0x29344 +0x8EA7D6A9 0x29351 +0x8EA7D6AA 0x29346 +0x8EA7D6AB 0x29347 +0x8EA7D6AC 0x293E4 +0x8EA7D6AD 0x2940F +0x8EA7D6AE 0x2943F +0x8EA7D6AF 0x2954B +0x8EA7D6B0 0x29557 +0x8EA7D6B1 0x29552 +0x8EA7D6B2 0x4AF1 +0x8EA7D6B3 0x29551 +0x8EA7D6B4 0x29558 +0x8EA7D6B5 0x2955E +0x8EA7D6B6 0x29553 +0x8EA7D6B7 0x2955D +0x8EA7D6B8 0x2954D +0x8EA7D6B9 0x2963C +0x8EA7D6BA 0x2963F +0x8EA7D6BB 0x29646 +0x8EA7D6BC 0x2963E +0x8EA7D6BD 0x29644 +0x8EA7D6BE 0x29645 +0x8EA7D6BF 0x29641 +0x8EA7D6C0 0x29638 +0x8EA7D6C1 0x29642 +0x8EA7D6C2 0x29643 +0x8EA7D6C3 0x2967A +0x8EA7D6C4 0x297A3 +0x8EA7D6C5 0x297BA +0x8EA7D6C6 0x297C0 +0x8EA7D6C7 0x297C4 +0x8EA7D6C8 0x297C6 +0x8EA7D6C9 0x297CB +0x8EA7D6CA 0x29861 +0x8EA7D6CB 0x2997A +0x8EA7D6CC 0x29973 +0x8EA7D6CD 0x29972 +0x8EA7D6CE 0x29974 +0x8EA7D6CF 0x29980 +0x8EA7D6D0 0x29981 +0x8EA7D6D1 0x9A47 +0x8EA7D6D2 0x29A95 +0x8EA7D6D3 0x29A8F +0x8EA7D6D4 0x29A90 +0x8EA7D6D5 0x29A92 +0x8EA7D6D6 0x29A94 +0x8EA7D6D7 0x29A8B +0x8EA7D6D8 0x29AE6 +0x8EA7D6D9 0x29BB2 +0x8EA7D6DA 0x29BB8 +0x8EA7D6DB 0x29BBD +0x8EA7D6DC 0x29BBE +0x8EA7D6DD 0x29BCE +0x8EA7D6DE 0x29BBA +0x8EA7D6DF 0x29C16 +0x8EA7D6E0 0x29C26 +0x8EA7D6E1 0x29C25 +0x8EA7D6E2 0x29C4C +0x8EA7D6E3 0x29C50 +0x8EA7D6E4 0x29C4E +0x8EA7D6E5 0x29C51 +0x8EA7D6E6 0x29C52 +0x8EA7D6E7 0x29D14 +0x8EA7D6E8 0x29D15 +0x8EA7D6E9 0x29D1B +0x8EA7D6EA 0x29E82 +0x8EA7D6EB 0x29E99 +0x8EA7D6EC 0x29E9A +0x8EA7D6ED 0x29E7D +0x8EA7D6EE 0x29E85 +0x8EA7D6EF 0x29E86 +0x8EA7D6F0 0x29E9C +0x8EA7D6F1 0x29E79 +0x8EA7D6F2 0x29E7B +0x8EA7D6F3 0x29E80 +0x8EA7D6F4 0x29E83 +0x8EA7D6F5 0x29E81 +0x8EA7D6F6 0x2A11E +0x8EA7D6F7 0x2A11B +0x8EA7D6F8 0x2A12A +0x8EA7D6F9 0x2A0FB +0x8EA7D6FA 0x2A105 +0x8EA7D6FB 0x2A120 +0x8EA7D6FC 0x2A111 +0x8EA7D6FD 0x2A104 +0x8EA7D6FE 0x2A0FD +0x8EA7D7A1 0x2A103 +0x8EA7D7A2 0x2A110 +0x8EA7D7A3 0x2A118 +0x8EA7D7A4 0x2A10A +0x8EA7D7A5 0x2A14E +0x8EA7D7A6 0x2A109 +0x8EA7D7A7 0x2A107 +0x8EA7D7A8 0x2A11C +0x8EA7D7A9 0x4D1C +0x8EA7D7AA 0x2A277 +0x8EA7D7AB 0x2A276 +0x8EA7D7AC 0x2A2D8 +0x8EA7D7AD 0x2A2D9 +0x8EA7D7AE 0x2A361 +0x8EA7D7AF 0x2A35C +0x8EA7D7B0 0x2A35E +0x8EA7D7B1 0x2A360 +0x8EA7D7B2 0x2A3AA +0x8EA7D7B3 0x2A3D6 +0x8EA7D7B4 0x2A3D8 +0x8EA7D7B5 0x2A409 +0x8EA7D7B6 0x2A408 +0x8EA7D7B7 0x2A46B +0x8EA7D7B8 0x2A465 +0x8EA7D7B9 0x2A473 +0x8EA7D7BA 0x2A474 +0x8EA7D7BB 0x2A4ED +0x8EA7D7BC 0x2A524 +0x8EA7D7BD 0x2A525 +0x8EA7D7BE 0x2A56A +0x8EA7D7BF 0x2A5A7 +0x8EA7D7C0 0x2A5A8 +0x8EA7D7C1 0x2A60B +0x8EA7D7C2 0x2A5FA +0x8EA7D7C3 0x2A5F9 +0x8EA7D7C4 0x2A5FF +0x8EA7D7C5 0x2A604 +0x8EA7D7C6 0x2A5F6 +0x8EA7D7C7 0x2A605 +0x8EA7D7C8 0x2A699 +0x8EA7D7C9 0x2A6AB +0x8EA7D7CA 0x2A6BD +0x8EA7D7CB 0x2A6B8 +0x8EA7D7CC 0x34A8 +0x8EA7D7CD 0x20464 +0x8EA7D7CE 0x2045A +0x8EA7D7CF 0x20572 +0x8EA7D7D0 0x2097A +0x8EA7D7D1 0x20B95 +0x8EA7D7D2 0x2115F +0x8EA7D7D3 0x21161 +0x8EA7D7D4 0x2115E +0x8EA7D7D5 0x2115A +0x8EA7D7D6 0x2115C +0x8EA7D7D7 0x2115D +0x8EA7D7D8 0x2116E +0x8EA7D7D9 0x21157 +0x8EA7D7DA 0x21158 +0x8EA7D7DB 0x21502 +0x8EA7D7DC 0x2150B +0x8EA7D7DD 0x21508 +0x8EA7D7DE 0x21551 +0x8EA7D7DF 0x21925 +0x8EA7D7E0 0x21928 +0x8EA7D7E1 0x21923 +0x8EA7D7E2 0x21921 +0x8EA7D7E3 0x21924 +0x8EA7D7E4 0x21929 +0x8EA7D7E5 0x21B06 +0x8EA7D7E6 0x21B0A +0x8EA7D7E7 0x21FCA +0x8EA7D7E8 0x21FCC +0x8EA7D7E9 0x21FCB +0x8EA7D7EA 0x21FCF +0x8EA7D7EB 0x2217F +0x8EA7D7EC 0x2217C +0x8EA7D7ED 0x221D6 +0x8EA7D7EE 0x22309 +0x8EA7D7EF 0x2230B +0x8EA7D7F0 0x22376 +0x8EA7D7F1 0x2247D +0x8EA7D7F2 0x225A5 +0x8EA7D7F3 0x2295B +0x8EA7D7F4 0x2295C +0x8EA7D7F5 0x2295D +0x8EA7D7F6 0x22965 +0x8EA7D7F7 0x22E6D +0x8EA7D7F8 0x22E82 +0x8EA7D7F9 0x22E83 +0x8EA7D7FA 0x22E87 +0x8EA7D7FB 0x22E95 +0x8EA7D7FC 0x22E8A +0x8EA7D7FD 0x230D6 +0x8EA7D7FE 0x23128 +0x8EA7D8A1 0x2330D +0x8EA7D8A2 0x2382E +0x8EA7D8A3 0x2F8EE +0x8EA7D8A4 0x2382D +0x8EA7D8A5 0x23821 +0x8EA7D8A6 0x23819 +0x8EA7D8A7 0x2393B +0x8EA7D8A8 0x2393C +0x8EA7D8A9 0x2393A +0x8EA7D8AA 0x23A7E +0x8EA7D8AB 0x23C3B +0x8EA7D8AC 0x24147 +0x8EA7D8AD 0x24139 +0x8EA7D8AE 0x24134 +0x8EA7D8AF 0x24136 +0x8EA7D8B0 0x24146 +0x8EA7D8B1 0x2413B +0x8EA7D8B2 0x24141 +0x8EA7D8B3 0x24145 +0x8EA7D8B4 0x244C0 +0x8EA7D8B5 0x244C4 +0x8EA7D8B6 0x244BA +0x8EA7D8B7 0x244BD +0x8EA7D8B8 0x244BE +0x8EA7D8B9 0x245A3 +0x8EA7D8BA 0x2470C +0x8EA7D8BB 0x248D9 +0x8EA7D8BC 0x24ACD +0x8EA7D8BD 0x24BAE +0x8EA7D8BE 0x24CFF +0x8EA7D8BF 0x24D24 +0x8EA7D8C0 0x24FBB +0x8EA7D8C1 0x24FBC +0x8EA7D8C2 0x25036 +0x8EA7D8C3 0x250D5 +0x8EA7D8C4 0x250D3 +0x8EA7D8C5 0x250D6 +0x8EA7D8C6 0x2533C +0x8EA7D8C7 0x2533F +0x8EA7D8C8 0x255DE +0x8EA7D8C9 0x255E3 +0x8EA7D8CA 0x25727 +0x8EA7D8CB 0x25729 +0x8EA7D8CC 0x418B +0x8EA7D8CD 0x25905 +0x8EA7D8CE 0x25907 +0x8EA7D8CF 0x2590C +0x8EA7D8D0 0x25AD0 +0x8EA7D8D1 0x25DBE +0x8EA7D8D2 0x25DBC +0x8EA7D8D3 0x25DD0 +0x8EA7D8D4 0x25DC2 +0x8EA7D8D5 0x25DB5 +0x8EA7D8D6 0x25DC9 +0x8EA7D8D7 0x25F66 +0x8EA7D8D8 0x432B +0x8EA7D8D9 0x261D5 +0x8EA7D8DA 0x261E2 +0x8EA7D8DB 0x261DC +0x8EA7D8DC 0x261E3 +0x8EA7D8DD 0x261DA +0x8EA7D8DE 0x261C2 +0x8EA7D8DF 0x261E8 +0x8EA7D8E0 0x263E9 +0x8EA7D8E1 0x264AF +0x8EA7D8E2 0x264AD +0x8EA7D8E3 0x264AE +0x8EA7D8E4 0x2660B +0x8EA7D8E5 0x268C1 +0x8EA7D8E6 0x269B6 +0x8EA7D8E7 0x269B9 +0x8EA7D8E8 0x26AC0 +0x8EA7D8E9 0x270A5 +0x8EA7D8EA 0x27128 +0x8EA7D8EB 0x27122 +0x8EA7D8EC 0x27129 +0x8EA7D8ED 0x27118 +0x8EA7D8EE 0x2711F +0x8EA7D8EF 0x2711C +0x8EA7D8F0 0x27112 +0x8EA7D8F1 0x2712A +0x8EA7D8F2 0x457A +0x8EA7D8F3 0x27121 +0x8EA7D8F4 0x2712B +0x8EA7D8F5 0x27117 +0x8EA7D8F6 0x270F0 +0x8EA7D8F7 0x27116 +0x8EA7D8F8 0x27123 +0x8EA7D8F9 0x2752B +0x8EA7D8FA 0x27526 +0x8EA7D8FB 0x2753D +0x8EA7D8FC 0x27522 +0x8EA7D8FD 0x2753A +0x8EA7D8FE 0x27531 +0x8EA7D9A1 0x27532 +0x8EA7D9A2 0x27554 +0x8EA7D9A3 0x27521 +0x8EA7D9A4 0x27535 +0x8EA7D9A5 0x4609 +0x8EA7D9A6 0x2752E +0x8EA7D9A7 0x27530 +0x8EA7D9A8 0x2752F +0x8EA7D9A9 0x27536 +0x8EA7D9AA 0x275DA +0x8EA7D9AB 0x275D9 +0x8EA7D9AC 0x277BB +0x8EA7D9AD 0x277BC +0x8EA7D9AE 0x277B7 +0x8EA7D9AF 0x277C2 +0x8EA7D9B0 0x277BD +0x8EA7D9B1 0x277B2 +0x8EA7D9B2 0x466D +0x8EA7D9B3 0x25344 +0x8EA7D9B4 0x25DD1 +0x8EA7D9B5 0x27B52 +0x8EA7D9B6 0x27B6B +0x8EA7D9B7 0x27B67 +0x8EA7D9B8 0x471F +0x8EA7D9B9 0x27B61 +0x8EA7D9BA 0x27B6C +0x8EA7D9BB 0x27B51 +0x8EA7D9BC 0x27B74 +0x8EA7D9BD 0x27B77 +0x8EA7D9BE 0x27B6F +0x8EA7D9BF 0x27B6D +0x8EA7D9C0 0x27B68 +0x8EA7D9C1 0x2F9D1 +0x8EA7D9C2 0x27B84 +0x8EA7D9C3 0x27C90 +0x8EA7D9C4 0x27C92 +0x8EA7D9C5 0x27C93 +0x8EA7D9C6 0x27D1F +0x8EA7D9C7 0x27E31 +0x8EA7D9C8 0x27E38 +0x8EA7D9C9 0x27E39 +0x8EA7D9CA 0x27E37 +0x8EA7D9CB 0x27FAB +0x8EA7D9CC 0x281C3 +0x8EA7D9CD 0x281C8 +0x8EA7D9CE 0x281CB +0x8EA7D9CF 0x281CF +0x8EA7D9D0 0x28298 +0x8EA7D9D1 0x283D4 +0x8EA7D9D2 0x283D3 +0x8EA7D9D3 0x283D8 +0x8EA7D9D4 0x283D9 +0x8EA7D9D5 0x283DD +0x8EA7D9D6 0x283D1 +0x8EA7D9D7 0x283D6 +0x8EA7D9D8 0x2843E +0x8EA7D9D9 0x28658 +0x8EA7D9DA 0x28657 +0x8EA7D9DB 0x28655 +0x8EA7D9DC 0x287C4 +0x8EA7D9DD 0x287E4 +0x8EA7D9DE 0x288EE +0x8EA7D9DF 0x288EF +0x8EA7D9E0 0x288F3 +0x8EA7D9E1 0x288F2 +0x8EA7D9E2 0x288F0 +0x8EA7D9E3 0x28BAB +0x8EA7D9E4 0x28B9A +0x8EA7D9E5 0x28BAF +0x8EA7D9E6 0x28B97 +0x8EA7D9E7 0x496A +0x8EA7D9E8 0x496C +0x8EA7D9E9 0x28BBF +0x8EA7D9EA 0x28B94 +0x8EA7D9EB 0x28B93 +0x8EA7D9EC 0x28CBE +0x8EA7D9ED 0x28CBB +0x8EA7D9EE 0x28CBC +0x8EA7D9EF 0x28DD9 +0x8EA7D9F0 0x28F6C +0x8EA7D9F1 0x29053 +0x8EA7D9F2 0x29054 +0x8EA7D9F3 0x2905B +0x8EA7D9F4 0x29058 +0x8EA7D9F5 0x29056 +0x8EA7D9F6 0x29057 +0x8EA7D9F7 0x2919F +0x8EA7D9F8 0x29194 +0x8EA7D9F9 0x29196 +0x8EA7D9FA 0x29197 +0x8EA7D9FB 0x2924A +0x8EA7D9FC 0x2924B +0x8EA7D9FD 0x29355 +0x8EA7D9FE 0x2935A +0x8EA7DAA1 0x2935E +0x8EA7DAA2 0x2935F +0x8EA7DAA3 0x29359 +0x8EA7DAA4 0x2935B +0x8EA7DAA5 0x29358 +0x8EA7DAA6 0x29354 +0x8EA7DAA7 0x293E8 +0x8EA7DAA8 0x293EB +0x8EA7DAA9 0x293EC +0x8EA7DAAA 0x29413 +0x8EA7DAAB 0x29566 +0x8EA7DAAC 0x2956B +0x8EA7DAAD 0x29562 +0x8EA7DAAE 0x29569 +0x8EA7DAAF 0x29563 +0x8EA7DAB0 0x2955F +0x8EA7DAB1 0x2954E +0x8EA7DAB2 0x29648 +0x8EA7DAB3 0x2964A +0x8EA7DAB4 0x297E3 +0x8EA7DAB5 0x297DB +0x8EA7DAB6 0x297D8 +0x8EA7DAB7 0x297D6 +0x8EA7DAB8 0x29986 +0x8EA7DAB9 0x29990 +0x8EA7DABA 0x29991 +0x8EA7DABB 0x29988 +0x8EA7DABC 0x29994 +0x8EA7DABD 0x29983 +0x8EA7DABE 0x4BB2 +0x8EA7DABF 0x2999C +0x8EA7DAC0 0x2998D +0x8EA7DAC1 0x29985 +0x8EA7DAC2 0x29A98 +0x8EA7DAC3 0x29A9A +0x8EA7DAC4 0x29A9C +0x8EA7DAC5 0x29AE7 +0x8EA7DAC6 0x29BC5 +0x8EA7DAC7 0x29BD0 +0x8EA7DAC8 0x29BD1 +0x8EA7DAC9 0x29C19 +0x8EA7DACA 0x29C27 +0x8EA7DACB 0x4C1D +0x8EA7DACC 0x29C54 +0x8EA7DACD 0x29D2D +0x8EA7DACE 0x29D22 +0x8EA7DACF 0x4C2D +0x8EA7DAD0 0x29D1F +0x8EA7DAD1 0x29EBD +0x8EA7DAD2 0x29EAE +0x8EA7DAD3 0x29EBB +0x8EA7DAD4 0x29EAD +0x8EA7DAD5 0x29EBC +0x8EA7DAD6 0x29EB9 +0x8EA7DAD7 0x29EB4 +0x8EA7DAD8 0x29ECB +0x8EA7DAD9 0x29EB7 +0x8EA7DADA 0x29EB3 +0x8EA7DADB 0x29EBA +0x8EA7DADC 0x29EB6 +0x8EA7DADD 0x29ECD +0x8EA7DADE 0x29EBE +0x8EA7DADF 0x29EC9 +0x8EA7DAE0 0x2FA0B +0x8EA7DAE1 0x2A15F +0x8EA7DAE2 0x2A13B +0x8EA7DAE3 0x2A161 +0x8EA7DAE4 0x2A15C +0x8EA7DAE5 0x2A18A +0x8EA7DAE6 0x2A15A +0x8EA7DAE7 0x2A14D +0x8EA7DAE8 0x2A146 +0x8EA7DAE9 0x2A144 +0x8EA7DAEA 0x2A13D +0x8EA7DAEB 0x2A140 +0x8EA7DAEC 0x2A13C +0x8EA7DAED 0x2A18C +0x8EA7DAEE 0x2A141 +0x8EA7DAEF 0x2A14C +0x8EA7DAF0 0x2A13E +0x8EA7DAF1 0x2A14A +0x8EA7DAF2 0x2A27C +0x8EA7DAF3 0x2A27A +0x8EA7DAF4 0x2A365 +0x8EA7DAF5 0x2A36E +0x8EA7DAF6 0x2A369 +0x8EA7DAF7 0x2A36A +0x8EA7DAF8 0x2A36F +0x8EA7DAF9 0x2A36C +0x8EA7DAFA 0x2A370 +0x8EA7DAFB 0x2A368 +0x8EA7DAFC 0x2A36B +0x8EA7DAFD 0x4D45 +0x8EA7DAFE 0x2A3AC +0x8EA7DBA1 0x2A3DE +0x8EA7DBA2 0x2A3DD +0x8EA7DBA3 0x2A3DC +0x8EA7DBA4 0x244C5 +0x8EA7DBA5 0x2A48C +0x8EA7DBA6 0x2A483 +0x8EA7DBA7 0x2A482 +0x8EA7DBA8 0x2A488 +0x8EA7DBA9 0x2A485 +0x8EA7DBAA 0x2A481 +0x8EA7DBAB 0x2A4F5 +0x8EA7DBAC 0x2A4EF +0x8EA7DBAD 0x2A4F4 +0x8EA7DBAE 0x2A4F2 +0x8EA7DBAF 0x2A4F6 +0x8EA7DBB0 0x2A4F3 +0x8EA7DBB1 0x2A4F0 +0x8EA7DBB2 0x2A4F1 +0x8EA7DBB3 0x2A52B +0x8EA7DBB4 0x2A527 +0x8EA7DBB5 0x2A528 +0x8EA7DBB6 0x2A56C +0x8EA7DBB7 0x2A5AE +0x8EA7DBB8 0x2A60E +0x8EA7DBB9 0x2A61B +0x8EA7DBBA 0x2A616 +0x8EA7DBBB 0x2A61F +0x8EA7DBBC 0x2A622 +0x8EA7DBBD 0x2A620 +0x8EA7DBBE 0x2A621 +0x8EA7DBBF 0x2A614 +0x8EA7DBC0 0x2A613 +0x8EA7DBC1 0x2A69D +0x8EA7DBC2 0x2A69C +0x8EA7DBC3 0x2A69E +0x8EA7DBC4 0x2A69F +0x8EA7DBC5 0x2046B +0x8EA7DBC6 0x208C8 +0x8EA7DBC7 0x21178 +0x8EA7DBC8 0x21176 +0x8EA7DBC9 0x21170 +0x8EA7DBCA 0x21171 +0x8EA7DBCB 0x2150A +0x8EA7DBCC 0x2192C +0x8EA7DBCD 0x22311 +0x8EA7DBCE 0x2247E +0x8EA7DBCF 0x22957 +0x8EA7DBD0 0x22966 +0x8EA7DBD1 0x22969 +0x8EA7DBD2 0x22967 +0x8EA7DBD3 0x22968 +0x8EA7DBD4 0x22971 +0x8EA7DBD5 0x2296F +0x8EA7DBD6 0x2A3AE +0x8EA7DBD7 0x22E8B +0x8EA7DBD8 0x22E96 +0x8EA7DBD9 0x23035 +0x8EA7DBDA 0x2303A +0x8EA7DBDB 0x2306B +0x8EA7DBDC 0x23316 +0x8EA7DBDD 0x23843 +0x8EA7DBDE 0x23846 +0x8EA7DBDF 0x2383F +0x8EA7DBE0 0x2383B +0x8EA7DBE1 0x2383D +0x8EA7DBE2 0x239B1 +0x8EA7DBE3 0x239B2 +0x8EA7DBE4 0x23AE4 +0x8EA7DBE5 0x23C40 +0x8EA7DBE6 0x2415D +0x8EA7DBE7 0x24151 +0x8EA7DBE8 0x2414D +0x8EA7DBE9 0x2414C +0x8EA7DBEA 0x2415B +0x8EA7DBEB 0x244D4 +0x8EA7DBEC 0x244D2 +0x8EA7DBED 0x244CA +0x8EA7DBEE 0x244C8 +0x8EA7DBEF 0x244D0 +0x8EA7DBF0 0x244C9 +0x8EA7DBF1 0x24549 +0x8EA7DBF2 0x245A4 +0x8EA7DBF3 0x24712 +0x8EA7DBF4 0x2470F +0x8EA7DBF5 0x24711 +0x8EA7DBF6 0x248DB +0x8EA7DBF7 0x248DD +0x8EA7DBF8 0x248DC +0x8EA7DBF9 0x24AD4 +0x8EA7DBFA 0x24B21 +0x8EA7DBFB 0x24BB2 +0x8EA7DBFC 0x24D04 +0x8EA7DBFD 0x24D02 +0x8EA7DBFE 0x24F11 +0x8EA7DCA1 0x24F16 +0x8EA7DCA2 0x24F10 +0x8EA7DCA3 0x24FBE +0x8EA7DCA4 0x2721A +0x8EA7DCA5 0x2534C +0x8EA7DCA6 0x2534A +0x8EA7DCA7 0x255F2 +0x8EA7DCA8 0x255F1 +0x8EA7DCA9 0x2572A +0x8EA7DCAA 0x2572C +0x8EA7DCAB 0x2572F +0x8EA7DCAC 0x25731 +0x8EA7DCAD 0x25911 +0x8EA7DCAE 0x25912 +0x8EA7DCAF 0x25A4B +0x8EA7DCB0 0x25DDB +0x8EA7DCB1 0x25DD6 +0x8EA7DCB2 0x25DDD +0x8EA7DCB3 0x25DE2 +0x8EA7DCB4 0x25DE4 +0x8EA7DCB5 0x25DE0 +0x8EA7DCB6 0x25DDF +0x8EA7DCB7 0x25DE3 +0x8EA7DCB8 0x25F6E +0x8EA7DCB9 0x25F71 +0x8EA7DCBA 0x261E9 +0x8EA7DCBB 0x261EA +0x8EA7DCBC 0x26263 +0x8EA7DCBD 0x263EB +0x8EA7DCBE 0x263EA +0x8EA7DCBF 0x268BD +0x8EA7DCC0 0x268BB +0x8EA7DCC1 0x268C6 +0x8EA7DCC2 0x268CC +0x8EA7DCC3 0x268C8 +0x8EA7DCC4 0x244CF +0x8EA7DCC5 0x268C9 +0x8EA7DCC6 0x268CA +0x8EA7DCC7 0x268CF +0x8EA7DCC8 0x268D0 +0x8EA7DCC9 0x269BA +0x8EA7DCCA 0x269FB +0x8EA7DCCB 0x26A03 +0x8EA7DCCC 0x26AC4 +0x8EA7DCCD 0x27149 +0x8EA7DCCE 0x27153 +0x8EA7DCCF 0x27136 +0x8EA7DCD0 0x2714A +0x8EA7DCD1 0x27141 +0x8EA7DCD2 0x2714E +0x8EA7DCD3 0x27119 +0x8EA7DCD4 0x2714D +0x8EA7DCD5 0x27145 +0x8EA7DCD6 0x2714C +0x8EA7DCD7 0x27147 +0x8EA7DCD8 0x27148 +0x8EA7DCD9 0x2714F +0x8EA7DCDA 0x27137 +0x8EA7DCDB 0x27142 +0x8EA7DCDC 0x2754A +0x8EA7DCDD 0x27546 +0x8EA7DCDE 0x460A +0x8EA7DCDF 0x27549 +0x8EA7DCE0 0x2754F +0x8EA7DCE1 0x27551 +0x8EA7DCE2 0x2754C +0x8EA7DCE3 0x460C +0x8EA7DCE4 0x27606 +0x8EA7DCE5 0x27951 +0x8EA7DCE6 0x27B7A +0x8EA7DCE7 0x27B83 +0x8EA7DCE8 0x27B7E +0x8EA7DCE9 0x27B7F +0x8EA7DCEA 0x27B80 +0x8EA7DCEB 0x24BB5 +0x8EA7DCEC 0x27C91 +0x8EA7DCED 0x27C94 +0x8EA7DCEE 0x27C95 +0x8EA7DCEF 0x27D21 +0x8EA7DCF0 0x27D20 +0x8EA7DCF1 0x27E3D +0x8EA7DCF2 0x27E40 +0x8EA7DCF3 0x27E46 +0x8EA7DCF4 0x27E84 +0x8EA7DCF5 0x27FAC +0x8EA7DCF6 0x27FAD +0x8EA7DCF7 0x482E +0x8EA7DCF8 0x281DA +0x8EA7DCF9 0x281D9 +0x8EA7DCFA 0x283E2 +0x8EA7DCFB 0x283E1 +0x8EA7DCFC 0x283E3 +0x8EA7DCFD 0x283E4 +0x8EA7DCFE 0x283DE +0x8EA7DDA1 0x283DF +0x8EA7DDA2 0x28641 +0x8EA7DDA3 0x28659 +0x8EA7DDA4 0x2865C +0x8EA7DDA5 0x2865A +0x8EA7DDA6 0x287E8 +0x8EA7DDA7 0x288F6 +0x8EA7DDA8 0x288FC +0x8EA7DDA9 0x288F7 +0x8EA7DDAA 0x288FA +0x8EA7DDAB 0x288F9 +0x8EA7DDAC 0x28BC4 +0x8EA7DDAD 0x28BBE +0x8EA7DDAE 0x28BD2 +0x8EA7DDAF 0x28BBD +0x8EA7DDB0 0x28B95 +0x8EA7DDB1 0x28BD4 +0x8EA7DDB2 0x28DE4 +0x8EA7DDB3 0x29061 +0x8EA7DDB4 0x29062 +0x8EA7DDB5 0x29063 +0x8EA7DDB6 0x29064 +0x8EA7DDB7 0x29060 +0x8EA7DDB8 0x2905C +0x8EA7DDB9 0x2905D +0x8EA7DDBA 0x2905E +0x8EA7DDBB 0x291A5 +0x8EA7DDBC 0x291A6 +0x8EA7DDBD 0x2924C +0x8EA7DDBE 0x29368 +0x8EA7DDBF 0x2936E +0x8EA7DDC0 0x29371 +0x8EA7DDC1 0x2936B +0x8EA7DDC2 0x2936F +0x8EA7DDC3 0x293EE +0x8EA7DDC4 0x293F1 +0x8EA7DDC5 0x293F0 +0x8EA7DDC6 0x293EF +0x8EA7DDC7 0x29415 +0x8EA7DDC8 0x29414 +0x8EA7DDC9 0x28F6E +0x8EA7DDCA 0x29447 +0x8EA7DDCB 0x2957C +0x8EA7DDCC 0x2957A +0x8EA7DDCD 0x29574 +0x8EA7DDCE 0x29576 +0x8EA7DDCF 0x2956E +0x8EA7DDD0 0x29578 +0x8EA7DDD1 0x2956D +0x8EA7DDD2 0x2956C +0x8EA7DDD3 0x2964E +0x8EA7DDD4 0x297D7 +0x8EA7DDD5 0x297EA +0x8EA7DDD6 0x297E5 +0x8EA7DDD7 0x29864 +0x8EA7DDD8 0x299B3 +0x8EA7DDD9 0x299A3 +0x8EA7DDDA 0x299A5 +0x8EA7DDDB 0x299A7 +0x8EA7DDDC 0x299A2 +0x8EA7DDDD 0x2999F +0x8EA7DDDE 0x299A6 +0x8EA7DDDF 0x2999E +0x8EA7DDE0 0x299A8 +0x8EA7DDE1 0x29AA9 +0x8EA7DDE2 0x29AA6 +0x8EA7DDE3 0x29AAA +0x8EA7DDE4 0x29AAB +0x8EA7DDE5 0x29AA0 +0x8EA7DDE6 0x29AA1 +0x8EA7DDE7 0x29AA8 +0x8EA7DDE8 0x29AE8 +0x8EA7DDE9 0x29AE9 +0x8EA7DDEA 0x29AEA +0x8EA7DDEB 0x29BE4 +0x8EA7DDEC 0x29BDF +0x8EA7DDED 0x29BE0 +0x8EA7DDEE 0x29C28 +0x8EA7DDEF 0x29C5D +0x8EA7DDF0 0x29C5B +0x8EA7DDF1 0x29C56 +0x8EA7DDF2 0x29C57 +0x8EA7DDF3 0x29C5F +0x8EA7DDF4 0x29C62 +0x8EA7DDF5 0x29EE1 +0x8EA7DDF6 0x29EE3 +0x8EA7DDF7 0x29EDE +0x8EA7DDF8 0x29ED9 +0x8EA7DDF9 0x29EE8 +0x8EA7DDFA 0x29EF2 +0x8EA7DDFB 0x29EF6 +0x8EA7DDFC 0x29EE6 +0x8EA7DDFD 0x29EF4 +0x8EA7DDFE 0x29EF5 +0x8EA7DEA1 0x29EE5 +0x8EA7DEA2 0x29EE2 +0x8EA7DEA3 0x4C8D +0x8EA7DEA4 0x2A196 +0x8EA7DEA5 0x2A1AA +0x8EA7DEA6 0x2A197 +0x8EA7DEA7 0x2A170 +0x8EA7DEA8 0x2A1A1 +0x8EA7DEA9 0x2A19D +0x8EA7DEAA 0x2A1A9 +0x8EA7DEAB 0x2A16F +0x8EA7DEAC 0x2A17E +0x8EA7DEAD 0x2A194 +0x8EA7DEAE 0x2A19A +0x8EA7DEAF 0x2A173 +0x8EA7DEB0 0x2A187 +0x8EA7DEB1 0x2A171 +0x8EA7DEB2 0x2A177 +0x8EA7DEB3 0x2A188 +0x8EA7DEB4 0x2A18D +0x8EA7DEB5 0x2A185 +0x8EA7DEB6 0x2A178 +0x8EA7DEB7 0x2A1AD +0x8EA7DEB8 0x2A280 +0x8EA7DEB9 0x2A281 +0x8EA7DEBA 0x2A2E5 +0x8EA7DEBB 0x2A2E7 +0x8EA7DEBC 0x2A37C +0x8EA7DEBD 0x2A3AF +0x8EA7DEBE 0x2A3E1 +0x8EA7DEBF 0x2A496 +0x8EA7DEC0 0x2A4A3 +0x8EA7DEC1 0x2A490 +0x8EA7DEC2 0x2A4F8 +0x8EA7DEC3 0x2A52E +0x8EA7DEC4 0x2A575 +0x8EA7DEC5 0x2A57E +0x8EA7DEC6 0x2A57D +0x8EA7DEC7 0x2A57B +0x8EA7DEC8 0x2A578 +0x8EA7DEC9 0x2A5B0 +0x8EA7DECA 0x2A634 +0x8EA7DECB 0x2A636 +0x8EA7DECC 0x2A630 +0x8EA7DECD 0x2FA1D +0x8EA7DECE 0x2A62E +0x8EA7DECF 0x2A637 +0x8EA7DED0 0x20ACE +0x8EA7DED1 0x20B97 +0x8EA7DED2 0x20B98 +0x8EA7DED3 0x2117C +0x8EA7DED4 0x2117E +0x8EA7DED5 0x2117D +0x8EA7DED6 0x2117F +0x8EA7DED7 0x2150F +0x8EA7DED8 0x216A4 +0x8EA7DED9 0x21931 +0x8EA7DEDA 0x2192E +0x8EA7DEDB 0x2192F +0x8EA7DEDC 0x21932 +0x8EA7DEDD 0x21D2C +0x8EA7DEDE 0x21FD4 +0x8EA7DEDF 0x21FDC +0x8EA7DEE0 0x21FD8 +0x8EA7DEE1 0x2200E +0x8EA7DEE2 0x22183 +0x8EA7DEE3 0x22184 +0x8EA7DEE4 0x22312 +0x8EA7DEE5 0x22972 +0x8EA7DEE6 0x2297C +0x8EA7DEE7 0x2297E +0x8EA7DEE8 0x22EA6 +0x8EA7DEE9 0x22EA0 +0x8EA7DEEA 0x22E9E +0x8EA7DEEB 0x22EA2 +0x8EA7DEEC 0x2312A +0x8EA7DEED 0x23318 +0x8EA7DEEE 0x2384D +0x8EA7DEEF 0x23858 +0x8EA7DEF0 0x2385B +0x8EA7DEF1 0x25914 +0x8EA7DEF2 0x2F8F2 +0x8EA7DEF3 0x23AE6 +0x8EA7DEF4 0x24164 +0x8EA7DEF5 0x24168 +0x8EA7DEF6 0x24160 +0x8EA7DEF7 0x24162 +0x8EA7DEF8 0x244D7 +0x8EA7DEF9 0x2454B +0x8EA7DEFA 0x248E0 +0x8EA7DEFB 0x24B22 +0x8EA7DEFC 0x24D05 +0x8EA7DEFD 0x24F19 +0x8EA7DEFE 0x24F1A +0x8EA7DFA1 0x24FC3 +0x8EA7DFA2 0x250D8 +0x8EA7DFA3 0x250DC +0x8EA7DFA4 0x2534F +0x8EA7DFA5 0x255F7 +0x8EA7DFA6 0x255F4 +0x8EA7DFA7 0x255F8 +0x8EA7DFA8 0x25913 +0x8EA7DFA9 0x25A50 +0x8EA7DFAA 0x25DF0 +0x8EA7DFAB 0x25DE9 +0x8EA7DFAC 0x25DEF +0x8EA7DFAD 0x25DED +0x8EA7DFAE 0x25DEA +0x8EA7DFAF 0x25DF8 +0x8EA7DFB0 0x25E05 +0x8EA7DFB1 0x25DF2 +0x8EA7DFB2 0x25F72 +0x8EA7DFB3 0x4331 +0x8EA7DFB4 0x261F9 +0x8EA7DFB5 0x261F3 +0x8EA7DFB6 0x261F6 +0x8EA7DFB7 0x261F2 +0x8EA7DFB8 0x261F7 +0x8EA7DFB9 0x26266 +0x8EA7DFBA 0x26265 +0x8EA7DFBB 0x26340 +0x8EA7DFBC 0x2F977 +0x8EA7DFBD 0x268D1 +0x8EA7DFBE 0x268D3 +0x8EA7DFBF 0x26A04 +0x8EA7DFC0 0x27159 +0x8EA7DFC1 0x27160 +0x8EA7DFC2 0x2715B +0x8EA7DFC3 0x2715D +0x8EA7DFC4 0x2715E +0x8EA7DFC5 0x27169 +0x8EA7DFC6 0x2715C +0x8EA7DFC7 0x27161 +0x8EA7DFC8 0x2716A +0x8EA7DFC9 0x2715F +0x8EA7DFCA 0x2754E +0x8EA7DFCB 0x2755C +0x8EA7DFCC 0x27560 +0x8EA7DFCD 0x27563 +0x8EA7DFCE 0x275DB +0x8EA7DFCF 0x277CA +0x8EA7DFD0 0x277C9 +0x8EA7DFD1 0x277C8 +0x8EA7DFD2 0x278A5 +0x8EA7DFD3 0x278A3 +0x8EA7DFD4 0x27B8E +0x8EA7DFD5 0x27B87 +0x8EA7DFD6 0x27B89 +0x8EA7DFD7 0x27B85 +0x8EA7DFD8 0x27B86 +0x8EA7DFD9 0x27B8F +0x8EA7DFDA 0x27B8A +0x8EA7DFDB 0x27B90 +0x8EA7DFDC 0x27C98 +0x8EA7DFDD 0x27C9B +0x8EA7DFDE 0x27E47 +0x8EA7DFDF 0x27E49 +0x8EA7DFE0 0x27E48 +0x8EA7DFE1 0x281E5 +0x8EA7DFE2 0x281EA +0x8EA7DFE3 0x281ED +0x8EA7DFE4 0x283F0 +0x8EA7DFE5 0x283EF +0x8EA7DFE6 0x283F2 +0x8EA7DFE7 0x283EC +0x8EA7DFE8 0x28440 +0x8EA7DFE9 0x28660 +0x8EA7DFEA 0x2865F +0x8EA7DFEB 0x287EB +0x8EA7DFEC 0x287EC +0x8EA7DFED 0x28900 +0x8EA7DFEE 0x28901 +0x8EA7DFEF 0x28BE2 +0x8EA7DFF0 0x28BDF +0x8EA7DFF1 0x28BE0 +0x8EA7DFF2 0x28BE1 +0x8EA7DFF3 0x28BE3 +0x8EA7DFF4 0x28CC3 +0x8EA7DFF5 0x28DEB +0x8EA7DFF6 0x28DEA +0x8EA7DFF7 0x28F61 +0x8EA7DFF8 0x28F71 +0x8EA7DFF9 0x2906B +0x8EA7DFFA 0x29068 +0x8EA7DFFB 0x29069 +0x8EA7DFFC 0x29067 +0x8EA7DFFD 0x291B0 +0x8EA7DFFE 0x291B1 +0x8EA7E0A1 0x291B2 +0x8EA7E0A2 0x29251 +0x8EA7E0A3 0x29374 +0x8EA7E0A4 0x2957F +0x8EA7E0A5 0x29584 +0x8EA7E0A6 0x29653 +0x8EA7E0A7 0x29654 +0x8EA7E0A8 0x297F0 +0x8EA7E0A9 0x297F4 +0x8EA7E0AA 0x297F1 +0x8EA7E0AB 0x29837 +0x8EA7E0AC 0x299BF +0x8EA7E0AD 0x4BBC +0x8EA7E0AE 0x4BBB +0x8EA7E0AF 0x299BD +0x8EA7E0B0 0x299BE +0x8EA7E0B1 0x299B7 +0x8EA7E0B2 0x299C0 +0x8EA7E0B3 0x299BA +0x8EA7E0B4 0x299B8 +0x8EA7E0B5 0x299BC +0x8EA7E0B6 0x299BB +0x8EA7E0B7 0x29AEB +0x8EA7E0B8 0x29BE7 +0x8EA7E0B9 0x29C1D +0x8EA7E0BA 0x29C1C +0x8EA7E0BB 0x29C63 +0x8EA7E0BC 0x2244B +0x8EA7E0BD 0x29D38 +0x8EA7E0BE 0x29D36 +0x8EA7E0BF 0x29D34 +0x8EA7E0C0 0x29D37 +0x8EA7E0C1 0x29F06 +0x8EA7E0C2 0x29F1C +0x8EA7E0C3 0x29F02 +0x8EA7E0C4 0x29F1D +0x8EA7E0C5 0x29F1E +0x8EA7E0C6 0x29EE0 +0x8EA7E0C7 0x29F11 +0x8EA7E0C8 0x29F18 +0x8EA7E0C9 0x29F21 +0x8EA7E0CA 0x29F20 +0x8EA7E0CB 0x29F10 +0x8EA7E0CC 0x2A1BD +0x8EA7E0CD 0x2A1AE +0x8EA7E0CE 0x2A1B5 +0x8EA7E0CF 0x2A1B8 +0x8EA7E0D0 0x2A1B9 +0x8EA7E0D1 0x2A1BE +0x8EA7E0D2 0x2A1C4 +0x8EA7E0D3 0x2A1BC +0x8EA7E0D4 0x2A1BA +0x8EA7E0D5 0x2A283 +0x8EA7E0D6 0x2A2EA +0x8EA7E0D7 0x2A2EC +0x8EA7E0D8 0x2A37E +0x8EA7E0D9 0x2A37B +0x8EA7E0DA 0x2A3E5 +0x8EA7E0DB 0x2A4A7 +0x8EA7E0DC 0x2A49E +0x8EA7E0DD 0x2A49A +0x8EA7E0DE 0x2A52F +0x8EA7E0DF 0x2A531 +0x8EA7E0E0 0x2A583 +0x8EA7E0E1 0x2A5B5 +0x8EA7E0E2 0x2A646 +0x8EA7E0E3 0x2A641 +0x8EA7E0E4 0x2A643 +0x8EA7E0E5 0x2A63D +0x8EA7E0E6 0x2A642 +0x8EA7E0E7 0x2A63B +0x8EA7E0E8 0x2A647 +0x8EA7E0E9 0x2096B +0x8EA7E0EA 0x209D0 +0x8EA7E0EB 0x2118E +0x8EA7E0EC 0x21B11 +0x8EA7E0ED 0x2F871 +0x8EA7E0EE 0x2F889 +0x8EA7E0EF 0x2244C +0x8EA7E0F0 0x2312B +0x8EA7E0F1 0x2384F +0x8EA7E0F2 0x2385E +0x8EA7E0F3 0x23863 +0x8EA7E0F4 0x2386B +0x8EA7E0F5 0x2393F +0x8EA7E0F6 0x23AE9 +0x8EA7E0F7 0x2416D +0x8EA7E0F8 0x2416B +0x8EA7E0F9 0x2416A +0x8EA7E0FA 0x29F2A +0x8EA7E0FB 0x244E0 +0x8EA7E0FC 0x244DD +0x8EA7E0FD 0x244E1 +0x8EA7E0FE 0x244DE +0x8EA7E1A1 0x244DC +0x8EA7E1A2 0x2454D +0x8EA7E1A3 0x24716 +0x8EA7E1A4 0x248E3 +0x8EA7E1A5 0x24AE5 +0x8EA7E1A6 0x24AE4 +0x8EA7E1A7 0x24F1D +0x8EA7E1A8 0x2574B +0x8EA7E1A9 0x2A6C1 +0x8EA7E1AA 0x25A4E +0x8EA7E1AB 0x25AD6 +0x8EA7E1AC 0x25DFD +0x8EA7E1AD 0x25E07 +0x8EA7E1AE 0x25DFE +0x8EA7E1AF 0x25E03 +0x8EA7E1B0 0x25E0B +0x8EA7E1B1 0x25DFF +0x8EA7E1B2 0x25F7A +0x8EA7E1B3 0x25F77 +0x8EA7E1B4 0x261FB +0x8EA7E1B5 0x26343 +0x8EA7E1B6 0x263ED +0x8EA7E1B7 0x269BC +0x8EA7E1B8 0x244DF +0x8EA7E1B9 0x26A05 +0x8EA7E1BA 0x26AC6 +0x8EA7E1BB 0x26AC5 +0x8EA7E1BC 0x27174 +0x8EA7E1BD 0x27173 +0x8EA7E1BE 0x27172 +0x8EA7E1BF 0x27178 +0x8EA7E1C0 0x27573 +0x8EA7E1C1 0x2757A +0x8EA7E1C2 0x24F1C +0x8EA7E1C3 0x27576 +0x8EA7E1C4 0x27575 +0x8EA7E1C5 0x27577 +0x8EA7E1C6 0x277CF +0x8EA7E1C7 0x277CE +0x8EA7E1C8 0x277CD +0x8EA7E1C9 0x278A8 +0x8EA7E1CA 0x27B98 +0x8EA7E1CB 0x27B92 +0x8EA7E1CC 0x27B94 +0x8EA7E1CD 0x27C9A +0x8EA7E1CE 0x27FB4 +0x8EA7E1CF 0x281EB +0x8EA7E1D0 0x281F4 +0x8EA7E1D1 0x281F3 +0x8EA7E1D2 0x281EE +0x8EA7E1D3 0x281F2 +0x8EA7E1D4 0x281F0 +0x8EA7E1D5 0x28664 +0x8EA7E1D6 0x28C05 +0x8EA7E1D7 0x28BFB +0x8EA7E1D8 0x28BFC +0x8EA7E1D9 0x28DF3 +0x8EA7E1DA 0x2906C +0x8EA7E1DB 0x291BA +0x8EA7E1DC 0x29379 +0x8EA7E1DD 0x2937E +0x8EA7E1DE 0x29378 +0x8EA7E1DF 0x293F4 +0x8EA7E1E0 0x29416 +0x8EA7E1E1 0x29657 +0x8EA7E1E2 0x299C8 +0x8EA7E1E3 0x299C3 +0x8EA7E1E4 0x299CE +0x8EA7E1E5 0x29AB3 +0x8EA7E1E6 0x29AED +0x8EA7E1E7 0x29AEE +0x8EA7E1E8 0x29BF1 +0x8EA7E1E9 0x29BF8 +0x8EA7E1EA 0x4C14 +0x8EA7E1EB 0x29C64 +0x8EA7E1EC 0x29C65 +0x8EA7E1ED 0x29F35 +0x8EA7E1EE 0x29F29 +0x8EA7E1EF 0x29F2C +0x8EA7E1F0 0x29F31 +0x8EA7E1F1 0x29F2B +0x8EA7E1F2 0x29F2E +0x8EA7E1F3 0x29F25 +0x8EA7E1F4 0x2A1DA +0x8EA7E1F5 0x2A1E0 +0x8EA7E1F6 0x2A1D4 +0x8EA7E1F7 0x2A1E1 +0x8EA7E1F8 0x2A1DD +0x8EA7E1F9 0x2A3E7 +0x8EA7E1FA 0x2A412 +0x8EA7E1FB 0x2A4AE +0x8EA7E1FC 0x2A4AF +0x8EA7E1FD 0x2A586 +0x8EA7E1FE 0x2A585 +0x8EA7E2A1 0x2A5D1 +0x8EA7E2A2 0x2A658 +0x8EA7E2A3 0x2A63F +0x8EA7E2A4 0x2A652 +0x8EA7E2A5 0x2A64B +0x8EA7E2A6 0x2A653 +0x8EA7E2A7 0x2A650 +0x8EA7E2A8 0x2A656 +0x8EA7E2A9 0x2A657 +0x8EA7E2AA 0x2A6CD +0x8EA7E2AB 0x2A6CB +0x8EA7E2AC 0x20831 +0x8EA7E2AD 0x20830 +0x8EA7E2AE 0x209D1 +0x8EA7E2AF 0x361C +0x8EA7E2B0 0x21192 +0x8EA7E2B1 0x21190 +0x8EA7E2B2 0x2118F +0x8EA7E2B3 0x21193 +0x8EA7E2B4 0x21191 +0x8EA7E2B5 0x3772 +0x8EA7E2B6 0x22313 +0x8EA7E2B7 0x2247F +0x8EA7E2B8 0x22EAC +0x8EA7E2B9 0x24170 +0x8EA7E2BA 0x244E5 +0x8EA7E2BB 0x24B23 +0x8EA7E2BC 0x24B24 +0x8EA7E2BD 0x24D08 +0x8EA7E2BE 0x24D07 +0x8EA7E2BF 0x24F1F +0x8EA7E2C0 0x24F20 +0x8EA7E2C1 0x24F21 +0x8EA7E2C2 0x250E1 +0x8EA7E2C3 0x25354 +0x8EA7E2C4 0x25357 +0x8EA7E2C5 0x25355 +0x8EA7E2C6 0x255FA +0x8EA7E2C7 0x25738 +0x8EA7E2C8 0x27186 +0x8EA7E2C9 0x25737 +0x8EA7E2CA 0x25A53 +0x8EA7E2CB 0x25F7E +0x8EA7E2CC 0x25F7B +0x8EA7E2CD 0x2F971 +0x8EA7E2CE 0x261FD +0x8EA7E2CF 0x261FC +0x8EA7E2D0 0x26346 +0x8EA7E2D1 0x26932 +0x8EA7E2D2 0x26AC7 +0x8EA7E2D3 0x27171 +0x8EA7E2D4 0x27183 +0x8EA7E2D5 0x2716F +0x8EA7E2D6 0x2717E +0x8EA7E2D7 0x2717D +0x8EA7E2D8 0x27181 +0x8EA7E2D9 0x2717C +0x8EA7E2DA 0x2758A +0x8EA7E2DB 0x2757E +0x8EA7E2DC 0x27580 +0x8EA7E2DD 0x2757D +0x8EA7E2DE 0x2757F +0x8EA7E2DF 0x27582 +0x8EA7E2E0 0x277D4 +0x8EA7E2E1 0x277D0 +0x8EA7E2E2 0x277D2 +0x8EA7E2E3 0x27955 +0x8EA7E2E4 0x27B9B +0x8EA7E2E5 0x27B9A +0x8EA7E2E6 0x27E4E +0x8EA7E2E7 0x281F1 +0x8EA7E2E8 0x283F8 +0x8EA7E2E9 0x283FD +0x8EA7E2EA 0x2865E +0x8EA7E2EB 0x28666 +0x8EA7E2EC 0x28905 +0x8EA7E2ED 0x28C0A +0x8EA7E2EE 0x28C0B +0x8EA7E2EF 0x28C0E +0x8EA7E2F0 0x28C0D +0x8EA7E2F1 0x28C11 +0x8EA7E2F2 0x28C09 +0x8EA7E2F3 0x28C10 +0x8EA7E2F4 0x28C0C +0x8EA7E2F5 0x28C12 +0x8EA7E2F6 0x28CC4 +0x8EA7E2F7 0x28DF7 +0x8EA7E2F8 0x28DF8 +0x8EA7E2F9 0x28F6A +0x8EA7E2FA 0x28F6B +0x8EA7E2FB 0x291C0 +0x8EA7E2FC 0x291C2 +0x8EA7E2FD 0x29385 +0x8EA7E2FE 0x29380 +0x8EA7E3A1 0x29384 +0x8EA7E3A2 0x29381 +0x8EA7E3A3 0x291C4 +0x8EA7E3A4 0x2958B +0x8EA7E3A5 0x2958D +0x8EA7E3A6 0x2958E +0x8EA7E3A7 0x29AB7 +0x8EA7E3A8 0x29AB9 +0x8EA7E3A9 0x29AEF +0x8EA7E3AA 0x29BFB +0x8EA7E3AB 0x29BFF +0x8EA7E3AC 0x29C67 +0x8EA7E3AD 0x29C68 +0x8EA7E3AE 0x29C69 +0x8EA7E3AF 0x29D3F +0x8EA7E3B0 0x29F3C +0x8EA7E3B1 0x29F4C +0x8EA7E3B2 0x29F3D +0x8EA7E3B3 0x29F3E +0x8EA7E3B4 0x29F3F +0x8EA7E3B5 0x29F3B +0x8EA7E3B6 0x2A1FF +0x8EA7E3B7 0x4D0E +0x8EA7E3B8 0x2A1F6 +0x8EA7E3B9 0x2A1EE +0x8EA7E3BA 0x2A1FC +0x8EA7E3BB 0x2A1F8 +0x8EA7E3BC 0x2A201 +0x8EA7E3BD 0x2A1FA +0x8EA7E3BE 0x2A288 +0x8EA7E3BF 0x2A380 +0x8EA7E3C0 0x2A411 +0x8EA7E3C1 0x2A4FE +0x8EA7E3C2 0x2A500 +0x8EA7E3C3 0x2A535 +0x8EA7E3C4 0x2503C +0x8EA7E3C5 0x2A5BD +0x8EA7E3C6 0x2A5BB +0x8EA7E3C7 0x2A65C +0x8EA7E3C8 0x2A65A +0x8EA7E3C9 0x2A6D1 +0x8EA7E3CA 0x2A6D0 +0x8EA7E3CB 0x20A0B +0x8EA7E3CC 0x23873 +0x8EA7E3CD 0x21939 +0x8EA7E3CE 0x21B1A +0x8EA7E3CF 0x21FE3 +0x8EA7E3D0 0x22187 +0x8EA7E3D1 0x22377 +0x8EA7E3D2 0x22378 +0x8EA7E3D3 0x22EB1 +0x8EA7E3D4 0x2386A +0x8EA7E3D5 0x23874 +0x8EA7E3D6 0x23AEB +0x8EA7E3D7 0x2417B +0x8EA7E3D8 0x245A5 +0x8EA7E3D9 0x248E4 +0x8EA7E3DA 0x24D0B +0x8EA7E3DB 0x24D0E +0x8EA7E3DC 0x24D0C +0x8EA7E3DD 0x25739 +0x8EA7E3DE 0x25E10 +0x8EA7E3DF 0x25E11 +0x8EA7E3E0 0x25E16 +0x8EA7E3E1 0x25F81 +0x8EA7E3E2 0x25F80 +0x8EA7E3E3 0x261FE +0x8EA7E3E4 0x26201 +0x8EA7E3E5 0x26200 +0x8EA7E3E6 0x26347 +0x8EA7E3E7 0x263EF +0x8EA7E3E8 0x27188 +0x8EA7E3E9 0x2758B +0x8EA7E3EA 0x2758D +0x8EA7E3EB 0x27587 +0x8EA7E3EC 0x27585 +0x8EA7E3ED 0x2758F +0x8EA7E3EE 0x27584 +0x8EA7E3EF 0x27588 +0x8EA7E3F0 0x2758E +0x8EA7E3F1 0x2758C +0x8EA7E3F2 0x277D7 +0x8EA7E3F3 0x277D6 +0x8EA7E3F4 0x27B9F +0x8EA7E3F5 0x22188 +0x8EA7E3F6 0x28203 +0x8EA7E3F7 0x283FE +0x8EA7E3F8 0x287EF +0x8EA7E3F9 0x28909 +0x8EA7E3FA 0x28908 +0x8EA7E3FB 0x28C20 +0x8EA7E3FC 0x28C24 +0x8EA7E3FD 0x28C1F +0x8EA7E3FE 0x29070 +0x8EA7E4A1 0x29256 +0x8EA7E4A2 0x293F7 +0x8EA7E4A3 0x293F8 +0x8EA7E4A4 0x293F6 +0x8EA7E4A5 0x29590 +0x8EA7E4A6 0x2965E +0x8EA7E4A7 0x297F7 +0x8EA7E4A8 0x299D6 +0x8EA7E4A9 0x299D5 +0x8EA7E4AA 0x29ABB +0x8EA7E4AB 0x29AF0 +0x8EA7E4AC 0x29C01 +0x8EA7E4AD 0x29C6C +0x8EA7E4AE 0x29D41 +0x8EA7E4AF 0x29D42 +0x8EA7E4B0 0x29F4F +0x8EA7E4B1 0x29F53 +0x8EA7E4B2 0x29F58 +0x8EA7E4B3 0x2A212 +0x8EA7E4B4 0x2A204 +0x8EA7E4B5 0x2A213 +0x8EA7E4B6 0x2A205 +0x8EA7E4B7 0x2A20D +0x8EA7E4B8 0x2A382 +0x8EA7E4B9 0x2A381 +0x8EA7E4BA 0x2A4B5 +0x8EA7E4BB 0x2A4BA +0x8EA7E4BC 0x2A5BE +0x8EA7E4BD 0x2A665 +0x8EA7E4BE 0x2A663 +0x8EA7E4BF 0x2A66E +0x8EA7E4C0 0x2A66A +0x8EA7E4C1 0x2A66C +0x8EA7E4C2 0x2A6C4 +0x8EA7E4C3 0x2096C +0x8EA7E4C4 0x27BA5 +0x8EA7E4C5 0x21B12 +0x8EA7E4C6 0x2244D +0x8EA7E4C7 0x2331F +0x8EA7E4C8 0x23877 +0x8EA7E4C9 0x23878 +0x8EA7E4CA 0x23C44 +0x8EA7E4CB 0x2417C +0x8EA7E4CC 0x244EB +0x8EA7E4CD 0x244EA +0x8EA7E4CE 0x244EC +0x8EA7E4CF 0x245A7 +0x8EA7E4D0 0x24719 +0x8EA7E4D1 0x24F23 +0x8EA7E4D2 0x7674 +0x8EA7E4D3 0x25601 +0x8EA7E4D4 0x25E1C +0x8EA7E4D5 0x26203 +0x8EA7E4D6 0x26348 +0x8EA7E4D7 0x268DA +0x8EA7E4D8 0x27191 +0x8EA7E4D9 0x27192 +0x8EA7E4DA 0x27596 +0x8EA7E4DB 0x27597 +0x8EA7E4DC 0x27591 +0x8EA7E4DD 0x27593 +0x8EA7E4DE 0x277D8 +0x8EA7E4DF 0x277D5 +0x8EA7E4E0 0x27957 +0x8EA7E4E1 0x27958 +0x8EA7E4E2 0x27BA2 +0x8EA7E4E3 0x28205 +0x8EA7E4E4 0x283FA +0x8EA7E4E5 0x2890C +0x8EA7E4E6 0x2890A +0x8EA7E4E7 0x28C2E +0x8EA7E4E8 0x28C29 +0x8EA7E4E9 0x28C2F +0x8EA7E4EA 0x28CC5 +0x8EA7E4EB 0x29072 +0x8EA7E4EC 0x291C8 +0x8EA7E4ED 0x2925A +0x8EA7E4EE 0x29259 +0x8EA7E4EF 0x29389 +0x8EA7E4F0 0x29388 +0x8EA7E4F1 0x299DB +0x8EA7E4F2 0x299D9 +0x8EA7E4F3 0x299DA +0x8EA7E4F4 0x29ABC +0x8EA7E4F5 0x4BEC +0x8EA7E4F6 0x29C06 +0x8EA7E4F7 0x29C05 +0x8EA7E4F8 0x29C6F +0x8EA7E4F9 0x29C6D +0x8EA7E4FA 0x29C70 +0x8EA7E4FB 0x29F60 +0x8EA7E4FC 0x29F5E +0x8EA7E4FD 0x29F63 +0x8EA7E4FE 0x29F5A +0x8EA7E5A1 0x29F5F +0x8EA7E5A2 0x2A219 +0x8EA7E5A3 0x2A21D +0x8EA7E5A4 0x2A21B +0x8EA7E5A5 0x2A222 +0x8EA7E5A6 0x2A21C +0x8EA7E5A7 0x2A21E +0x8EA7E5A8 0x2A2F7 +0x8EA7E5A9 0x2A384 +0x8EA7E5AA 0x2A415 +0x8EA7E5AB 0x2A4B8 +0x8EA7E5AC 0x2A4C1 +0x8EA7E5AD 0x2A501 +0x8EA7E5AE 0x2A50A +0x8EA7E5AF 0x2A5D2 +0x8EA7E5B0 0x2A675 +0x8EA7E5B1 0x2A674 +0x8EA7E5B2 0x2A672 +0x8EA7E5B3 0x20AD0 +0x8EA7E5B4 0x21B1B +0x8EA7E5B5 0x22010 +0x8EA7E5B6 0x22379 +0x8EA7E5B7 0x244ED +0x8EA7E5B8 0x24BB9 +0x8EA7E5B9 0x24F24 +0x8EA7E5BA 0x24FC5 +0x8EA7E5BB 0x25603 +0x8EA7E5BC 0x2634A +0x8EA7E5BD 0x268F7 +0x8EA7E5BE 0x269C1 +0x8EA7E5BF 0x269C2 +0x8EA7E5C0 0x27194 +0x8EA7E5C1 0x27599 +0x8EA7E5C2 0x2759A +0x8EA7E5C3 0x2795A +0x8EA7E5C4 0x27BA8 +0x8EA7E5C5 0x27C25 +0x8EA7E5C6 0x27C9E +0x8EA7E5C7 0x28441 +0x8EA7E5C8 0x28C32 +0x8EA7E5C9 0x28C33 +0x8EA7E5CA 0x291CB +0x8EA7E5CB 0x291CA +0x8EA7E5CC 0x291CC +0x8EA7E5CD 0x29593 +0x8EA7E5CE 0x299E0 +0x8EA7E5CF 0x29C71 +0x8EA7E5D0 0x29F6B +0x8EA7E5D1 0x2A22B +0x8EA7E5D2 0x2A229 +0x8EA7E5D3 0x2A21A +0x8EA7E5D4 0x2A226 +0x8EA7E5D5 0x2A227 +0x8EA7E5D6 0x2A22A +0x8EA7E5D7 0x2A2F8 +0x8EA7E5D8 0x2503D +0x8EA7E5D9 0x2A676 +0x8EA7E5DA 0x21518 +0x8EA7E5DB 0x2387A +0x8EA7E5DC 0x2417F +0x8EA7E5DD 0x4279 +0x8EA7E5DE 0x263F0 +0x8EA7E5DF 0x2719A +0x8EA7E5E0 0x27196 +0x8EA7E5E1 0x2759E +0x8EA7E5E2 0x2759D +0x8EA7E5E3 0x275DC +0x8EA7E5E4 0x277DA +0x8EA7E5E5 0x2820B +0x8EA7E5E6 0x28402 +0x8EA7E5E7 0x28442 +0x8EA7E5E8 0x28667 +0x8EA7E5E9 0x2938B +0x8EA7E5EA 0x299E2 +0x8EA7E5EB 0x29F71 +0x8EA7E5EC 0x2A22F +0x8EA7E5ED 0x2A22E +0x8EA7E5EE 0x2A4C6 +0x8EA7E5EF 0x2A58E +0x8EA7E5F0 0x2A67B +0x8EA7E5F1 0x2A677 +0x8EA7E5F2 0x2A678 +0x8EA7E5F3 0x2A67C +0x8EA7E5F4 0x2387C +0x8EA7E5F5 0x26207 +0x8EA7E5F6 0x27197 +0x8EA7E5F7 0x27BD9 +0x8EA7E5F8 0x2890D +0x8EA7E5F9 0x2890E +0x8EA7E5FA 0x299E3 +0x8EA7E5FB 0x299E4 +0x8EA7E5FC 0x29AF3 +0x8EA7E5FD 0x29C75 +0x8EA7E5FE 0x2A237 +0x8EA7E6A1 0x2A235 +0x8EA7E6A2 0x2A58F +0x8EA7E6A3 0x2A680 +0x8EA7E6A4 0x2A67F +0x8EA7E6A5 0x2A6D4 +0x8EA7E6A6 0x22EB4 +0x8EA7E6A7 0x2A3EC +0x8EA7E6A8 0x28F75 +0x8EA7E6A9 0x24D10 +0x8EA7E6AA 0x26269 +0x8EA7E6AB 0x275A4 +0x8EA7E6AC 0x277DB +0x8EA7E6AD 0x291D1 +0x8EA7E6AE 0x2938D +0x8EA7E6AF 0x29F76 +0x8EA7E6B0 0x2A239 +0x8EA7E6B1 0x2A684 +0x8EA7E6B2 0x2A682 +0x8EA7E6B3 0x20AD2 +0x8EA7E6B4 0x244EE +0x8EA7E6B5 0x24D11 +0x8EA7E6B6 0x25F84 +0x8EA7E6B7 0x28F74 +0x8EA7E6B8 0x2938F +0x8EA7E6B9 0x2938E +0x8EA7E6BA 0x2A23B +0x8EA7E6BB 0x208CB +0x8EA7E6BC 0x2A688 +0x8EA7E6BD 0x2A686 +0x8EA7E6BE 0x2335C +0x8EA7E6BF 0x253A4 +0x8EA7E6C0 0x29075 +0x8EA7E6C1 0x2A68B +0x8EA7E6C2 0x21519 +0x8EA7E6C3 0x27C9F +0x8EA7E6C4 0x299E5 +0x8EA7E6C5 0x2A240 +0x8EA7E6C6 0x24D12 +0x8EA7E6C7 0x2A2FB +0x8EA7E6C8 0x2A68C +0x8EA7E6C9 0x253A5 +0x8EA7E6CA 0x29C77 +0x8EA7E6CB 0x29C78 +0x8EA7E6CC 0x2A6D6 +0x8EA7E6CD 0x277DF +0x8EA7E6CE 0x291D2 +0x8EA7E6CF 0x2151A +0x8EA7E6D0 0x27BA9 +0x8EA7E6D1 0x291D3 +0x8EA7E6D2 0x2A4CA +0x8EA7E6D3 0x269C4 +0x8EA7E6D4 0x278B1 +0x8EA7E6D5 0x29664 +0x8EAFA1A1 0x20002 +0x8EAFA1A2 0x2008C +0x8EAFA1A3 0x200D4 +0x8EAFA1A4 0x201A5 +0x8EAFA1A5 0x20092 +0x8EAFA1A6 0x20093 +0x8EAFA1A7 0x200D8 +0x8EAFA1A8 0x200D9 +0x8EAFA1A9 0x201A7 +0x8EAFA1AA 0x2062B +0x8EAFA1AB 0x2062C +0x8EAFA1AC 0x2062D +0x8EAFA1AD 0x20630 +0x8EAFA1AE 0x2062E +0x8EAFA1AF 0x206AB +0x8EAFA1B0 0x5301 +0x8EAFA1B1 0x2092D +0x8EAFA1B2 0x2096D +0x8EAFA1B3 0x2F834 +0x8EAFA1B4 0x20A0F +0x8EAFA1B6 0x20B9D +0x8EAFA1B7 0x211A2 +0x8EAFA1B8 0x215D4 +0x8EAFA1B9 0x21B56 +0x8EAFA1BA 0x21BC3 +0x8EAFA1BB 0x22014 +0x8EAFA1BD 0x2471A +0x8EAFA1BE 0x2000F +0x8EAFA1BF 0x20010 +0x8EAFA1C0 0x2009A +0x8EAFA1C1 0x2009B +0x8EAFA1C3 0x201AC +0x8EAFA1C4 0x3436 +0x8EAFA1C5 0x20097 +0x8EAFA1C6 0x20546 +0x8EAFA1C7 0x434F +0x8EAFA1C8 0x20576 +0x8EAFA1C9 0x20577 +0x8EAFA1CA 0x205AE +0x8EAFA1CB 0x2063A +0x8EAFA1CC 0x2067D +0x8EAFA1CD 0x21BC5 +0x8EAFA1CE 0x20BA8 +0x8EAFA1D0 0x53FA +0x8EAFA1D1 0x21241 +0x8EAFA1D2 0x21242 +0x8EAFA1D3 0x215D8 +0x8EAFA1D4 0x215D9 +0x8EAFA1D5 0x216AA +0x8EAFA1D6 0x216AB +0x8EAFA1D7 0x21942 +0x8EAFA1D8 0x21941 +0x8EAFA1D9 0x9F99 +0x8EAFA1DA 0x21BC6 +0x8EAFA1DC 0x21D35 +0x8EAFA1DD 0x21D36 +0x8EAFA1DE 0x21D37 +0x8EAFA1DF 0x2F883 +0x8EAFA1E0 0x2634D +0x8EAFA1E2 0x221B5 +0x8EAFA1E3 0x22317 +0x8EAFA1E4 0x22482 +0x8EAFA1E5 0x233B6 +0x8EAFA1E6 0x6C49 +0x8EAFA1E7 0x23C72 +0x8EAFA1E8 0x2455C +0x8EAFA1E9 0x245A8 +0x8EAFA1EA 0x8FB7 +0x8EAFA1EB 0x215E3 +0x8EAFA1EC 0x3406 +0x8EAFA1EE 0x200E6 +0x8EAFA1EF 0x20144 +0x8EAFA1F0 0x20145 +0x8EAFA1F1 0x4F29 +0x8EAFA1F2 0x343E +0x8EAFA1F3 0x201C4 +0x8EAFA1F4 0x201C5 +0x8EAFA1F5 0x201C6 +0x8EAFA1F6 0x201C7 +0x8EAFA1F7 0x201C8 +0x8EAFA1F8 0x201C9 +0x8EAFA1F9 0x201CA +0x8EAFA1FA 0x201D4 +0x8EAFA1FB 0x2057D +0x8EAFA1FC 0x26272 +0x8EAFA1FD 0x205B2 +0x8EAFA1FE 0x205B4 +0x8EAFA2A1 0x20682 +0x8EAFA2A2 0x206C7 +0x8EAFA2A3 0x206C8 +0x8EAFA2A5 0x2083C +0x8EAFA2A6 0x2083D +0x8EAFA2A7 0x2083E +0x8EAFA2A8 0x2083F +0x8EAFA2A9 0x2F824 +0x8EAFA2AA 0x208D3 +0x8EAFA2AB 0x20147 +0x8EAFA2AC 0x534E +0x8EAFA2AD 0x20A3D +0x8EAFA2AE 0x20AE2 +0x8EAFA2AF 0x20BB8 +0x8EAFA2B0 0x20BB9 +0x8EAFA2B1 0x20BC2 +0x8EAFA2B2 0x20BBA +0x8EAFA2B3 0x20BC6 +0x8EAFA2B4 0x20BBB +0x8EAFA2B5 0x211AD +0x8EAFA2B6 0x2124C +0x8EAFA2B7 0x2124D +0x8EAFA2B9 0x216B2 +0x8EAFA2BA 0x216B3 +0x8EAFA2BB 0x216B4 +0x8EAFA2BC 0x216B5 +0x8EAFA2BD 0x219C3 +0x8EAFA2BE 0x219C4 +0x8EAFA2BF 0x219C5 +0x8EAFA2C0 0x219C6 +0x8EAFA2C1 0x219C7 +0x8EAFA2C3 0x21BCE +0x8EAFA2C4 0x21C30 +0x8EAFA2C5 0x21D47 +0x8EAFA2C6 0x21D48 +0x8EAFA2C7 0x5C81 +0x8EAFA2C8 0x2205C +0x8EAFA2CA 0x2205F +0x8EAFA2CB 0x22318 +0x8EAFA2CC 0x22319 +0x8EAFA2CD 0x2237E +0x8EAFA2CE 0x5F10 +0x8EAFA2CF 0x225B0 +0x8EAFA2D0 0x22A75 +0x8EAFA2D1 0x6268 +0x8EAFA2D2 0x22A76 +0x8EAFA2D3 0x23041 +0x8EAFA2D4 0x23142 +0x8EAFA2D6 0x233BD +0x8EAFA2D7 0x6742 +0x8EAFA2D8 0x6740 +0x8EAFA2D9 0x51EA +0x8EAFA2DA 0x23B1E +0x8EAFA2DB 0x23B1F +0x8EAFA2DC 0x23C87 +0x8EAFA2DD 0x6C62 +0x8EAFA2DE 0x23C78 +0x8EAFA2DF 0x24188 +0x8EAFA2E0 0x24189 +0x8EAFA2E1 0x2418A +0x8EAFA2E2 0x24617 +0x8EAFA2E3 0x24615 +0x8EAFA2E6 0x7391 +0x8EAFA2E7 0x250E5 +0x8EAFA2E8 0x25609 +0x8EAFA2E9 0x2573B +0x8EAFA2EA 0x2574F +0x8EAFA2EC 0x2662E +0x8EAFA2ED 0x2662F +0x8EAFA2EE 0x26AFF +0x8EAFA2EF 0x26AFD +0x8EAFA2F0 0x26AFE +0x8EAFA2F1 0x8FBB +0x8EAFA2F2 0x8FBC +0x8EAFA2F4 0x20023 +0x8EAFA2F5 0x200EA +0x8EAFA2F6 0x2012A +0x8EAFA2F7 0x20149 +0x8EAFA2F8 0x2014A +0x8EAFA2F9 0x2014B +0x8EAFA2FA 0x201DF +0x8EAFA2FB 0x201E0 +0x8EAFA2FC 0x201E1 +0x8EAFA2FD 0x201E2 +0x8EAFA2FE 0x205C1 +0x8EAFA3A1 0x201E3 +0x8EAFA3A2 0x201E4 +0x8EAFA3A3 0x201E5 +0x8EAFA3A4 0x205C0 +0x8EAFA3A5 0x201E6 +0x8EAFA3A6 0x201F7 +0x8EAFA3A8 0x201E7 +0x8EAFA3A9 0x201E8 +0x8EAFA3AA 0x201E9 +0x8EAFA3AB 0x201EA +0x8EAFA3AC 0x201EB +0x8EAFA3AD 0x2050E +0x8EAFA3AE 0x20580 +0x8EAFA3AF 0x20581 +0x8EAFA3B0 0x205BA +0x8EAFA3B1 0x205BB +0x8EAFA3B2 0x205BC +0x8EAFA3B3 0x205BD +0x8EAFA3B4 0x2063F +0x8EAFA3B5 0x20640 +0x8EAFA3B6 0x20688 +0x8EAFA3B7 0x2F81F +0x8EAFA3B8 0x20846 +0x8EAFA3BA 0x20847 +0x8EAFA3BB 0x20848 +0x8EAFA3BC 0x20936 +0x8EAFA3BD 0x20972 +0x8EAFA3BE 0x20996 +0x8EAFA3BF 0x20A47 +0x8EAFA3C0 0x20AE7 +0x8EAFA3C1 0x20B34 +0x8EAFA3C2 0x20B35 +0x8EAFA3C3 0x20B36 +0x8EAFA3C4 0x20B37 +0x8EAFA3C5 0x20BE3 +0x8EAFA3C6 0x20BE4 +0x8EAFA3C7 0x20BE5 +0x8EAFA3C8 0x20BEB +0x8EAFA3C9 0x3575 +0x8EAFA3CA 0x20BE6 +0x8EAFA3CB 0x20BE7 +0x8EAFA3CC 0x20BE8 +0x8EAFA3CF 0x211B9 +0x8EAFA3D0 0x56E8 +0x8EAFA3D1 0x211BA +0x8EAFA3D2 0x575B +0x8EAFA3D3 0x21263 +0x8EAFA3D4 0x21264 +0x8EAFA3D6 0x21265 +0x8EAFA3D8 0x21266 +0x8EAFA3D9 0x2127C +0x8EAFA3DA 0x21267 +0x8EAFA3DB 0x2F85A +0x8EAFA3DC 0x21559 +0x8EAFA3DD 0x215E9 +0x8EAFA3DE 0x215EA +0x8EAFA3DF 0x215EB +0x8EAFA3E0 0x215EC +0x8EAFA3E1 0x215ED +0x8EAFA3E2 0x215EE +0x8EAFA3E3 0x215EF +0x8EAFA3E4 0x216BF +0x8EAFA3E5 0x216CB +0x8EAFA3E6 0x216C3 +0x8EAFA3E7 0x216D5 +0x8EAFA3E8 0x216C4 +0x8EAFA3E9 0x216C5 +0x8EAFA3EA 0x216D3 +0x8EAFA3EB 0x216C6 +0x8EAFA3EC 0x216C7 +0x8EAFA3ED 0x216C8 +0x8EAFA3EE 0x216C9 +0x8EAFA3EF 0x216CA +0x8EAFA3F0 0x2194A +0x8EAFA3F2 0x219D1 +0x8EAFA3F3 0x21B61 +0x8EAFA3F4 0x21C37 +0x8EAFA3F6 0x21D64 +0x8EAFA3F7 0x21D66 +0x8EAFA3F8 0x5C99 +0x8EAFA3F9 0x21D67 +0x8EAFA3FA 0x21D68 +0x8EAFA3FB 0x21D69 +0x8EAFA3FC 0x5C97 +0x8EAFA3FD 0x21D73 +0x8EAFA3FE 0x21D6A +0x8EAFA4A1 0x21D6B +0x8EAFA4A2 0x6762 +0x8EAFA4A4 0x22072 +0x8EAFA4A5 0x383C +0x8EAFA4A6 0x221B9 +0x8EAFA4A7 0x2231C +0x8EAFA4A8 0x22336 +0x8EAFA4A9 0x223BC +0x8EAFA4AA 0x223BE +0x8EAFA4AB 0x223BF +0x8EAFA4AC 0x223C0 +0x8EAFA4AD 0x22487 +0x8EAFA4AE 0x225DC +0x8EAFA4AF 0x225DD +0x8EAFA4B0 0x225F5 +0x8EAFA4B1 0x225DE +0x8EAFA4B2 0x225DF +0x8EAFA4B3 0x2F89E +0x8EAFA4B4 0x225E0 +0x8EAFA4B5 0x225E1 +0x8EAFA4B6 0x225E2 +0x8EAFA4B7 0x22A2C +0x8EAFA4B8 0x22A2D +0x8EAFA4B9 0x62A4 +0x8EAFA4BA 0x22AA9 +0x8EAFA4BB 0x22A9C +0x8EAFA4BC 0x22A9D +0x8EAFA4BD 0x22A9E +0x8EAFA4BE 0x22A9F +0x8EAFA4BF 0x22AA0 +0x8EAFA4C0 0x22AA1 +0x8EAFA4C1 0x22AA2 +0x8EAFA4C3 0x22AA3 +0x8EAFA4C4 0x22AA4 +0x8EAFA4C5 0x22AA7 +0x8EAFA4C6 0x23042 +0x8EAFA4C7 0x23093 +0x8EAFA4C8 0x23151 +0x8EAFA4CA 0x23152 +0x8EAFA4CB 0x23144 +0x8EAFA4CC 0x23153 +0x8EAFA4CD 0x23322 +0x8EAFA4CE 0x233C6 +0x8EAFA4CF 0x233C7 +0x8EAFA4D0 0x233C9 +0x8EAFA4D1 0x2F8DD +0x8EAFA4D2 0x233CA +0x8EAFA4D3 0x6766 +0x8EAFA4D4 0x233C8 +0x8EAFA4D5 0x23B24 +0x8EAFA4D6 0x23B25 +0x8EAFA4D7 0x23B26 +0x8EAFA4D9 0x23B27 +0x8EAFA4DA 0x23B28 +0x8EAFA4DC 0x23C58 +0x8EAFA4DD 0x2F8FB +0x8EAFA4DE 0x23CA7 +0x8EAFA4DF 0x23C88 +0x8EAFA4E0 0x23C89 +0x8EAFA4E1 0x23CA5 +0x8EAFA4E2 0x23CA8 +0x8EAFA4E3 0x23CA9 +0x8EAFA4E4 0x23CAA +0x8EAFA4E5 0x23CAB +0x8EAFA4E6 0x23CAC +0x8EAFA4E7 0x23CAD +0x8EAFA4E8 0x6CA3 +0x8EAFA4E9 0x23C79 +0x8EAFA4EB 0x24194 +0x8EAFA4EC 0x24195 +0x8EAFA4ED 0x24196 +0x8EAFA4EE 0x3DA5 +0x8EAFA4F0 0x24197 +0x8EAFA4F1 0x707F +0x8EAFA4F2 0x24198 +0x8EAFA4F3 0x2454E +0x8EAFA4F4 0x2454F +0x8EAFA4F5 0x24619 +0x8EAFA4F7 0x24741 +0x8EAFA4F8 0x2F92A +0x8EAFA4F9 0x248F7 +0x8EAFA4FA 0x24C04 +0x8EAFA4FB 0x24C19 +0x8EAFA4FC 0x24C17 +0x8EAFA4FD 0x25040 +0x8EAFA4FE 0x250EC +0x8EAFA5A1 0x2541B +0x8EAFA5A2 0x2541C +0x8EAFA5A3 0x77F6 +0x8EAFA5A4 0x2560E +0x8EAFA5A5 0x25752 +0x8EAFA5A6 0x25AD8 +0x8EAFA5A7 0x25E26 +0x8EAFA5A8 0x26274 +0x8EAFA5AA 0x26275 +0x8EAFA5AB 0x269C6 +0x8EAFA5AC 0x26B0B +0x8EAFA5AD 0x26B0C +0x8EAFA5AE 0x26B0D +0x8EAFA5AF 0x26B0E +0x8EAFA5B0 0x26B0F +0x8EAFA5B1 0x26B10 +0x8EAFA5B2 0x8FC8 +0x8EAFA5B3 0x28459 +0x8EAFA5B4 0x2845A +0x8EAFA5B5 0x28683 +0x8EAFA5B6 0x28684 +0x8EAFA5B7 0x28685 +0x8EAFA5B9 0x95F5 +0x8EAFA5BA 0x28E20 +0x8EAFA5BB 0x28E21 +0x8EAFA5BC 0x28E22 +0x8EAFA5BD 0x28E23 +0x8EAFA5BE 0x28E24 +0x8EAFA5BF 0x28E29 +0x8EAFA5C0 0x200F4 +0x8EAFA5C2 0x2158F +0x8EAFA5C3 0x20151 +0x8EAFA5C4 0x4FAB +0x8EAFA5C5 0x20217 +0x8EAFA5C6 0x20218 +0x8EAFA5C7 0x2025B +0x8EAFA5C8 0x20219 +0x8EAFA5C9 0x2021A +0x8EAFA5CA 0x3453 +0x8EAFA5CB 0x2021B +0x8EAFA5CC 0x2021C +0x8EAFA5CD 0x2021D +0x8EAFA5CE 0x2021E +0x8EAFA5CF 0x2021F +0x8EAFA5D0 0x20220 +0x8EAFA5D1 0x20221 +0x8EAFA5D2 0x2048B +0x8EAFA5D3 0x20488 +0x8EAFA5D4 0x5C2D +0x8EAFA5D5 0x20585 +0x8EAFA5D6 0x26287 +0x8EAFA5D7 0x205C7 +0x8EAFA5D8 0x2064C +0x8EAFA5D9 0x2064D +0x8EAFA5DA 0x206FC +0x8EAFA5DB 0x206FD +0x8EAFA5DC 0x206FE +0x8EAFA5DD 0x206FF +0x8EAFA5E0 0x20856 +0x8EAFA5E1 0x20857 +0x8EAFA5E2 0x20858 +0x8EAFA5E3 0x20859 +0x8EAFA5E4 0x208DC +0x8EAFA5E5 0x208DD +0x8EAFA5E6 0x20973 +0x8EAFA5E7 0x2099D +0x8EAFA5E8 0x209A1 +0x8EAFA5E9 0x2099E +0x8EAFA5EA 0x2099F +0x8EAFA5EB 0x209A0 +0x8EAFA5EC 0x209E6 +0x8EAFA5ED 0x20A51 +0x8EAFA5EE 0x20A52 +0x8EAFA5EF 0x20B3D +0x8EAFA5F0 0x20C22 +0x8EAFA5F1 0x549C +0x8EAFA5F2 0x20C23 +0x8EAFA5F3 0x20C24 +0x8EAFA5F4 0x20C25 +0x8EAFA5F5 0x20C26 +0x8EAFA5F6 0x20C27 +0x8EAFA5F7 0x20C28 +0x8EAFA5F8 0x20C29 +0x8EAFA5F9 0x20C2A +0x8EAFA5FA 0x20C2B +0x8EAFA5FC 0x20C40 +0x8EAFA5FD 0x20C2C +0x8EAFA5FE 0x20C2D +0x8EAFA6A1 0x20C2E +0x8EAFA6A2 0x20C2F +0x8EAFA6A3 0x20C30 +0x8EAFA6A4 0x211D0 +0x8EAFA6A5 0x212A8 +0x8EAFA6A6 0x21294 +0x8EAFA6A7 0x21295 +0x8EAFA6A8 0x21296 +0x8EAFA6A9 0x21297 +0x8EAFA6AA 0x21298 +0x8EAFA6AB 0x2129C +0x8EAFA6AC 0x2129B +0x8EAFA6AE 0x212A1 +0x8EAFA6AF 0x212A0 +0x8EAFA6B0 0x21299 +0x8EAFA6B1 0x2129A +0x8EAFA6B2 0x212A7 +0x8EAFA6B3 0x5788 +0x8EAFA6B4 0x21564 +0x8EAFA6B6 0x21600 +0x8EAFA6B7 0x21601 +0x8EAFA6BA 0x216E5 +0x8EAFA6BB 0x216E9 +0x8EAFA6BC 0x216FB +0x8EAFA6BD 0x216FC +0x8EAFA6BE 0x216EA +0x8EAFA6BF 0x216EB +0x8EAFA6C0 0x216EC +0x8EAFA6C1 0x216ED +0x8EAFA6C2 0x216EE +0x8EAFA6C3 0x216EF +0x8EAFA6C4 0x216FA +0x8EAFA6C5 0x216F0 +0x8EAFA6C6 0x216F1 +0x8EAFA6C7 0x216F2 +0x8EAFA6C8 0x216F3 +0x8EAFA6C9 0x216F4 +0x8EAFA6CA 0x21952 +0x8EAFA6CB 0x21953 +0x8EAFA6CC 0x21954 +0x8EAFA6CD 0x21955 +0x8EAFA6CE 0x21958 +0x8EAFA6CF 0x21956 +0x8EAFA6D1 0x219DD +0x8EAFA6D2 0x219DE +0x8EAFA6D3 0x219E3 +0x8EAFA6D4 0x219DF +0x8EAFA6D5 0x219E0 +0x8EAFA6D6 0x21B22 +0x8EAFA6D7 0x21B23 +0x8EAFA6D8 0x21B68 +0x8EAFA6D9 0x21BDF +0x8EAFA6DA 0x34AC +0x8EAFA6DB 0x21C44 +0x8EAFA6DC 0x21D94 +0x8EAFA6DD 0x21D95 +0x8EAFA6DE 0x21D96 +0x8EAFA6DF 0x21D97 +0x8EAFA6E0 0x21D98 +0x8EAFA6E1 0x21D99 +0x8EAFA6E2 0x2F879 +0x8EAFA6E3 0x21D9A +0x8EAFA6E4 0x21D9B +0x8EAFA6E5 0x21D9D +0x8EAFA6E6 0x21D9E +0x8EAFA6E7 0x21D9F +0x8EAFA6E8 0x21DA0 +0x8EAFA6E9 0x21FF3 +0x8EAFA6EA 0x21FF2 +0x8EAFA6EB 0x2201F +0x8EAFA6EC 0x22088 +0x8EAFA6ED 0x2218F +0x8EAFA6EE 0x22190 +0x8EAFA6F0 0x221FD +0x8EAFA6F1 0x221FE +0x8EAFA6F2 0x221FF +0x8EAFA6F3 0x22200 +0x8EAFA6F4 0x22201 +0x8EAFA6F5 0x2261A +0x8EAFA6F7 0x225E3 +0x8EAFA6F8 0x225E4 +0x8EAFA6F9 0x225E5 +0x8EAFA6FA 0x225E6 +0x8EAFA6FB 0x225E7 +0x8EAFA6FC 0x225EB +0x8EAFA6FD 0x225E8 +0x8EAFA6FE 0x225E9 +0x8EAFA7A1 0x225EA +0x8EAFA7A2 0x2261D +0x8EAFA7A3 0x229A4 +0x8EAFA7A4 0x229A3 +0x8EAFA7A5 0x22AD4 +0x8EAFA7A6 0x22AC6 +0x8EAFA7A7 0x22AC7 +0x8EAFA7A8 0x22AC8 +0x8EAFA7A9 0x22AC9 +0x8EAFA7AA 0x22ACA +0x8EAFA7AB 0x22ACB +0x8EAFA7AC 0x22ACC +0x8EAFA7AD 0x22ACD +0x8EAFA7AE 0x39DE +0x8EAFA7AF 0x22ACE +0x8EAFA7B0 0x62C3 +0x8EAFA7B1 0x22EB8 +0x8EAFA7B2 0x22EB9 +0x8EAFA7B3 0x22EBA +0x8EAFA7B4 0x2306E +0x8EAFA7B5 0x230DB +0x8EAFA7B6 0x230DC +0x8EAFA7B7 0x23168 +0x8EAFA7B8 0x23169 +0x8EAFA7B9 0x2316A +0x8EAFA7BA 0x2316B +0x8EAFA7BB 0x2316C +0x8EAFA7BC 0x2316D +0x8EAFA7BD 0x2316E +0x8EAFA7BE 0x6619 +0x8EAFA7BF 0x23324 +0x8EAFA7C0 0x23325 +0x8EAFA7C2 0x23400 +0x8EAFA7C3 0x233E5 +0x8EAFA7C4 0x233F9 +0x8EAFA7C5 0x233E7 +0x8EAFA7C6 0x233E8 +0x8EAFA7C7 0x233E9 +0x8EAFA7C8 0x233FE +0x8EAFA7C9 0x233EA +0x8EAFA7CA 0x233EB +0x8EAFA7CB 0x233EC +0x8EAFA7CC 0x3B49 +0x8EAFA7CD 0x233ED +0x8EAFA7CE 0x67A1 +0x8EAFA7CF 0x233EE +0x8EAFA7D0 0x67A6 +0x8EAFA7D1 0x233EF +0x8EAFA7D3 0x23417 +0x8EAFA7D4 0x233F0 +0x8EAFA7D5 0x233F1 +0x8EAFA7D6 0x23894 +0x8EAFA7D7 0x2395B +0x8EAFA7D8 0x2395C +0x8EAFA7D9 0x2395D +0x8EAFA7DA 0x23B2F +0x8EAFA7DB 0x3C91 +0x8EAFA7DC 0x23B30 +0x8EAFA7DD 0x23B31 +0x8EAFA7DE 0x23B32 +0x8EAFA7DF 0x23B33 +0x8EAFA7E0 0x23CCC +0x8EAFA7E1 0x23CCD +0x8EAFA7E2 0x23CCE +0x8EAFA7E3 0x23CAE +0x8EAFA7E4 0x23CAF +0x8EAFA7E5 0x23CB0 +0x8EAFA7E6 0x3CD3 +0x8EAFA7E7 0x23CCF +0x8EAFA7E8 0x23CD0 +0x8EAFA7E9 0x23CD1 +0x8EAFA7EA 0x23CD2 +0x8EAFA7EB 0x23CD3 +0x8EAFA7ED 0x23CD4 +0x8EAFA7EE 0x3DA9 +0x8EAFA7EF 0x241A6 +0x8EAFA7F0 0x241A7 +0x8EAFA7F1 0x241A8 +0x8EAFA7F2 0x241B0 +0x8EAFA7F3 0x241A9 +0x8EAFA7F4 0x241AA +0x8EAFA7F5 0x241AB +0x8EAFA7F6 0x241AC +0x8EAFA7F7 0x241AD +0x8EAFA7F8 0x244FB +0x8EAFA7F9 0x244FC +0x8EAFA7FB 0x2462D +0x8EAFA7FC 0x2462E +0x8EAFA7FD 0x24650 +0x8EAFA7FE 0x2462F +0x8EAFA8A1 0x24630 +0x8EAFA8A2 0x24765 +0x8EAFA8A3 0x248E6 +0x8EAFA8A4 0x2490C +0x8EAFA8A5 0x24902 +0x8EAFA8A6 0x24903 +0x8EAFA8A7 0x24904 +0x8EAFA8A8 0x24905 +0x8EAFA8A9 0x24906 +0x8EAFA8AB 0x24BC0 +0x8EAFA8AC 0x24C24 +0x8EAFA8AD 0x24C25 +0x8EAFA8AE 0x24D16 +0x8EAFA8AF 0x24D32 +0x8EAFA8B0 0x25420 +0x8EAFA8B1 0x25421 +0x8EAFA8B2 0x25422 +0x8EAFA8B3 0x25423 +0x8EAFA8B4 0x77FE +0x8EAFA8B5 0x25425 +0x8EAFA8B6 0x25619 +0x8EAFA8B7 0x25624 +0x8EAFA8B8 0x2561A +0x8EAFA8B9 0x2561B +0x8EAFA8BA 0x2561C +0x8EAFA8BB 0x2561D +0x8EAFA8BC 0x2F952 +0x8EAFA8BD 0x2561E +0x8EAFA8BE 0x2575A +0x8EAFA8BF 0x2575B +0x8EAFA8C0 0x2575C +0x8EAFA8C1 0x2575D +0x8EAFA8C2 0x2575E +0x8EAFA8C3 0x25931 +0x8EAFA8C5 0x25E29 +0x8EAFA8C7 0x25F88 +0x8EAFA8C8 0x25F89 +0x8EAFA8C9 0x26289 +0x8EAFA8CA 0x7F57 +0x8EAFA8CB 0x26356 +0x8EAFA8CC 0x264D1 +0x8EAFA8CD 0x264E6 +0x8EAFA8CE 0x26532 +0x8EAFA8CF 0x26533 +0x8EAFA8D0 0x26652 +0x8EAFA8D1 0x26653 +0x8EAFA8D2 0x43D5 +0x8EAFA8D3 0x26654 +0x8EAFA8D4 0x26655 +0x8EAFA8D7 0x26B29 +0x8EAFA8D8 0x26B2A +0x8EAFA8D9 0x26B2B +0x8EAFA8DA 0x26B2C +0x8EAFA8DB 0x26B2D +0x8EAFA8DC 0x2F992 +0x8EAFA8DD 0x26B2E +0x8EAFA8DE 0x26B2F +0x8EAFA8DF 0x26B30 +0x8EAFA8E0 0x26B31 +0x8EAFA8E1 0x26B32 +0x8EAFA8E2 0x26B33 +0x8EAFA8E3 0x82C5 +0x8EAFA8E4 0x26B34 +0x8EAFA8E5 0x2719B +0x8EAFA8E6 0x27223 +0x8EAFA8E7 0x27224 +0x8EAFA8E9 0x27225 +0x8EAFA8EA 0x27227 +0x8EAFA8EB 0x27616 +0x8EAFA8EC 0x27CA0 +0x8EAFA8ED 0x2846F +0x8EAFA8EE 0x8FDF +0x8EAFA8EF 0x28470 +0x8EAFA8F0 0x28471 +0x8EAFA8F1 0x8FDC +0x8EAFA8F2 0x488C +0x8EAFA8F3 0x28472 +0x8EAFA8F4 0x28473 +0x8EAFA8F5 0x28474 +0x8EAFA8F6 0x2869C +0x8EAFA8F7 0x286AA +0x8EAFA8F8 0x2869D +0x8EAFA8F9 0x2869E +0x8EAFA8FA 0x4099 +0x8EAFA8FB 0x286AB +0x8EAFA8FC 0x2869F +0x8EAFA8FD 0x28E35 +0x8EAFA8FE 0x28E38 +0x8EAFA9A1 0x2A38D +0x8EAFA9A2 0x20035 +0x8EAFA9A3 0x20036 +0x8EAFA9A4 0x25AEE +0x8EAFA9A5 0x200B4 +0x8EAFA9A6 0x2A6C9 +0x8EAFA9A7 0x20132 +0x8EAFA9A8 0x20155 +0x8EAFA9A9 0x20244 +0x8EAFA9AA 0x20245 +0x8EAFA9AB 0x20246 +0x8EAFA9AC 0x20247 +0x8EAFA9AD 0x4FE4 +0x8EAFA9AE 0x20248 +0x8EAFA9AF 0x20249 +0x8EAFA9B1 0x2024A +0x8EAFA9B2 0x2024B +0x8EAFA9B3 0x2024C +0x8EAFA9B4 0x2024D +0x8EAFA9B5 0x2024E +0x8EAFA9B6 0x2024F +0x8EAFA9B7 0x20250 +0x8EAFA9B8 0x20251 +0x8EAFA9B9 0x26299 +0x8EAFA9BA 0x205D1 +0x8EAFA9BC 0x205D2 +0x8EAFA9BD 0x205D3 +0x8EAFA9BE 0x205D4 +0x8EAFA9BF 0x205D5 +0x8EAFA9C0 0x20721 +0x8EAFA9C1 0x20722 +0x8EAFA9C2 0x20723 +0x8EAFA9C3 0x20868 +0x8EAFA9C4 0x20869 +0x8EAFA9C5 0x2086A +0x8EAFA9C6 0x208E2 +0x8EAFA9C7 0x20945 +0x8EAFA9C8 0x209EC +0x8EAFA9C9 0x209ED +0x8EAFA9CA 0x209EE +0x8EAFA9CB 0x209EF +0x8EAFA9CD 0x20A62 +0x8EAFA9CE 0x20A63 +0x8EAFA9CF 0x20AF4 +0x8EAFA9D0 0x2006F +0x8EAFA9D1 0x20B44 +0x8EAFA9D2 0x20B45 +0x8EAFA9D3 0x20C79 +0x8EAFA9D4 0x551B +0x8EAFA9D5 0x20C7A +0x8EAFA9D6 0x20C7B +0x8EAFA9D7 0x20C7C +0x8EAFA9D8 0x20C7D +0x8EAFA9D9 0x20C7E +0x8EAFA9DA 0x20C7F +0x8EAFA9DB 0x20C80 +0x8EAFA9DC 0x3588 +0x8EAFA9DE 0x20C81 +0x8EAFA9DF 0x20C82 +0x8EAFA9E0 0x20C83 +0x8EAFA9E1 0x20C84 +0x8EAFA9E2 0x20C85 +0x8EAFA9E3 0x20C86 +0x8EAFA9E4 0x20C87 +0x8EAFA9E5 0x20C8F +0x8EAFA9E6 0x20C88 +0x8EAFA9E7 0x20C89 +0x8EAFA9E8 0x212C5 +0x8EAFA9E9 0x212C6 +0x8EAFA9EA 0x57AA +0x8EAFA9EB 0x212C7 +0x8EAFA9EC 0x212C8 +0x8EAFA9ED 0x212C9 +0x8EAFA9EE 0x212CA +0x8EAFA9EF 0x212CB +0x8EAFA9F0 0x212CC +0x8EAFA9F1 0x57AB +0x8EAFA9F2 0x212CD +0x8EAFA9F3 0x212CE +0x8EAFA9F4 0x212E3 +0x8EAFA9F5 0x212CF +0x8EAFA9F6 0x212D0 +0x8EAFA9F7 0x212D1 +0x8EAFA9F8 0x212D2 +0x8EAFA9F9 0x212D3 +0x8EAFA9FA 0x212C4 +0x8EAFA9FB 0x212D4 +0x8EAFA9FC 0x212D5 +0x8EAFA9FD 0x212D6 +0x8EAFA9FE 0x21520 +0x8EAFAAA1 0x21521 +0x8EAFAAA2 0x2161A +0x8EAFAAA3 0x21612 +0x8EAFAAA4 0x21614 +0x8EAFAAA5 0x21615 +0x8EAFAAA6 0x21616 +0x8EAFAAA7 0x21619 +0x8EAFAAA8 0x21617 +0x8EAFAAA9 0x21618 +0x8EAFAAAA 0x36C9 +0x8EAFAAAB 0x2F861 +0x8EAFAAAD 0x21712 +0x8EAFAAAE 0x21713 +0x8EAFAAAF 0x21714 +0x8EAFAAB0 0x21715 +0x8EAFAAB1 0x21716 +0x8EAFAAB2 0x21717 +0x8EAFAAB3 0x21718 +0x8EAFAAB4 0x21719 +0x8EAFAAB5 0x21961 +0x8EAFAAB6 0x21962 +0x8EAFAAB7 0x21963 +0x8EAFAAB8 0x219F5 +0x8EAFAAB9 0x5BA9 +0x8EAFAABA 0x219F6 +0x8EAFAABB 0x219F7 +0x8EAFAABC 0x219F8 +0x8EAFAABD 0x21B29 +0x8EAFAABE 0x3917 +0x8EAFAABF 0x21C5D +0x8EAFAAC0 0x21C57 +0x8EAFAAC1 0x21C58 +0x8EAFAAC2 0x21C59 +0x8EAFAAC3 0x21C5A +0x8EAFAAC4 0x21C5B +0x8EAFAAC5 0x21DBB +0x8EAFAAC6 0x21DD1 +0x8EAFAAC7 0x21DBC +0x8EAFAAC8 0x21DBD +0x8EAFAAC9 0x268DF +0x8EAFAACA 0x21DD0 +0x8EAFAACB 0x21DBE +0x8EAFAACC 0x21DBF +0x8EAFAACD 0x21DC0 +0x8EAFAACE 0x21DC1 +0x8EAFAACF 0x21DC2 +0x8EAFAAD0 0x21DC3 +0x8EAFAAD1 0x21DC4 +0x8EAFAAD2 0x26B6C +0x8EAFAAD3 0x220A1 +0x8EAFAAD4 0x220A2 +0x8EAFAAD5 0x220A3 +0x8EAFAAD6 0x22193 +0x8EAFAAD7 0x2220D +0x8EAFAAD8 0x2220F +0x8EAFAAD9 0x2220E +0x8EAFAADA 0x22210 +0x8EAFAADB 0x22211 +0x8EAFAADC 0x22212 +0x8EAFAADD 0x2F895 +0x8EAFAADE 0x224E5 +0x8EAFAADF 0x2262F +0x8EAFAAE1 0x22657 +0x8EAFAAE2 0x22630 +0x8EAFAAE3 0x22668 +0x8EAFAAE4 0x2262B +0x8EAFAAE5 0x22631 +0x8EAFAAE6 0x22658 +0x8EAFAAE7 0x2F8A2 +0x8EAFAAE8 0x22632 +0x8EAFAAE9 0x22659 +0x8EAFAAEB 0x2265A +0x8EAFAAEC 0x22633 +0x8EAFAAED 0x2265B +0x8EAFAAEE 0x2265C +0x8EAFAAEF 0x2265D +0x8EAFAAF0 0x2261E +0x8EAFAAF1 0x229AE +0x8EAFAAF2 0x229AF +0x8EAFAAF3 0x22A3B +0x8EAFAAF4 0x22A3C +0x8EAFAAF5 0x22A3D +0x8EAFAAF6 0x22B07 +0x8EAFAAF7 0x22B08 +0x8EAFAAF8 0x22B09 +0x8EAFAAF9 0x22B0A +0x8EAFAAFA 0x22B0B +0x8EAFAAFB 0x22B0C +0x8EAFAAFC 0x22B0D +0x8EAFAAFD 0x22B0E +0x8EAFAAFE 0x22B0F +0x8EAFABA1 0x22B10 +0x8EAFABA2 0x22B22 +0x8EAFABA3 0x22B11 +0x8EAFABA4 0x22B12 +0x8EAFABA5 0x22B13 +0x8EAFABA6 0x22B14 +0x8EAFABA7 0x22B15 +0x8EAFABA8 0x22B16 +0x8EAFABA9 0x22B17 +0x8EAFABAA 0x22B18 +0x8EAFABAB 0x2F8B8 +0x8EAFABAD 0x23046 +0x8EAFABAE 0x23047 +0x8EAFABAF 0x23048 +0x8EAFABB0 0x230E1 +0x8EAFABB1 0x23181 +0x8EAFABB2 0x23183 +0x8EAFABB3 0x20C75 +0x8EAFABB5 0x23185 +0x8EAFABB6 0x23186 +0x8EAFABB7 0x2332A +0x8EAFABB8 0x2F8D1 +0x8EAFABB9 0x2332B +0x8EAFABBA 0x2336B +0x8EAFABBB 0x23418 +0x8EAFABBC 0x23419 +0x8EAFABBD 0x2341A +0x8EAFABBF 0x2341B +0x8EAFABC0 0x2341C +0x8EAFABC1 0x2341D +0x8EAFABC2 0x2341E +0x8EAFABC3 0x2341F +0x8EAFABC4 0x23420 +0x8EAFABC5 0x23421 +0x8EAFABC6 0x23422 +0x8EAFABC7 0x23423 +0x8EAFABC8 0x6811 +0x8EAFABC9 0x23424 +0x8EAFABCA 0x23425 +0x8EAFABCB 0x23426 +0x8EAFABCC 0x23427 +0x8EAFABCD 0x23428 +0x8EAFABCE 0x23429 +0x8EAFABCF 0x2342A +0x8EAFABD0 0x239EF +0x8EAFABD1 0x23B49 +0x8EAFABD2 0x23B4A +0x8EAFABD3 0x23B4B +0x8EAFABD4 0x23B4C +0x8EAFABD5 0x23B4D +0x8EAFABD6 0x23B4E +0x8EAFABD7 0x23B4F +0x8EAFABD8 0x23B50 +0x8EAFABD9 0x23B51 +0x8EAFABDA 0x23B52 +0x8EAFABDB 0x23B53 +0x8EAFABDC 0x23B54 +0x8EAFABDD 0x23B5A +0x8EAFABDE 0x23B55 +0x8EAFABDF 0x23C5F +0x8EAFABE0 0x23D02 +0x8EAFABE1 0x23D03 +0x8EAFABE2 0x23D04 +0x8EAFABE3 0x23D05 +0x8EAFABE4 0x23CD5 +0x8EAFABE5 0x23D06 +0x8EAFABE6 0x23D07 +0x8EAFABE7 0x23CD6 +0x8EAFABE8 0x23D08 +0x8EAFABE9 0x23D09 +0x8EAFABEA 0x23D0A +0x8EAFABEB 0x23D0B +0x8EAFABEC 0x23CD7 +0x8EAFABED 0x23D0C +0x8EAFABEE 0x23D0D +0x8EAFABEF 0x241C8 +0x8EAFABF0 0x241C9 +0x8EAFABF1 0x241CA +0x8EAFABF2 0x241CB +0x8EAFABF3 0x241CC +0x8EAFABF4 0x241CD +0x8EAFABF5 0x241CE +0x8EAFABF6 0x241CF +0x8EAFABF7 0x241D0 +0x8EAFABF8 0x241D1 +0x8EAFABF9 0x241D2 +0x8EAFABFA 0x7551 +0x8EAFABFB 0x241D3 +0x8EAFABFC 0x241D4 +0x8EAFABFD 0x241D5 +0x8EAFABFE 0x241D6 +0x8EAFACA1 0x241D7 +0x8EAFACA2 0x241E2 +0x8EAFACA3 0x241D8 +0x8EAFACA4 0x24504 +0x8EAFACA5 0x24505 +0x8EAFACA6 0x24506 +0x8EAFACA8 0x24643 +0x8EAFACA9 0x24644 +0x8EAFACAA 0x24784 +0x8EAFACAB 0x2478F +0x8EAFACAC 0x24785 +0x8EAFACAD 0x24786 +0x8EAFACAE 0x2492F +0x8EAFACAF 0x2491A +0x8EAFACB0 0x2491B +0x8EAFACB1 0x2491C +0x8EAFACB2 0x3EBD +0x8EAFACB3 0x2491D +0x8EAFACB4 0x2491E +0x8EAFACB5 0x2491F +0x8EAFACB6 0x24920 +0x8EAFACB7 0x24921 +0x8EAFACB8 0x24922 +0x8EAFACB9 0x2F92C +0x8EAFACBA 0x24923 +0x8EAFACBB 0x24924 +0x8EAFACBC 0x2490E +0x8EAFACBD 0x24925 +0x8EAFACBE 0x2492B +0x8EAFACBF 0x2492C +0x8EAFACC0 0x2490B +0x8EAFACC1 0x24AEE +0x8EAFACC3 0x24BC3 +0x8EAFACC4 0x24BD8 +0x8EAFACC5 0x24BD9 +0x8EAFACC6 0x24C38 +0x8EAFACC7 0x24C39 +0x8EAFACC8 0x24C3A +0x8EAFACC9 0x24C3B +0x8EAFACCA 0x7553 +0x8EAFACCB 0x24C3C +0x8EAFACCC 0x24C3D +0x8EAFACCD 0x24C3E +0x8EAFACCE 0x24C3F +0x8EAFACCF 0x24C40 +0x8EAFACD0 0x24D48 +0x8EAFACD1 0x24D4C +0x8EAFACD2 0x24F28 +0x8EAFACD3 0x24F51 +0x8EAFACD4 0x24F52 +0x8EAFACD5 0x2504C +0x8EAFACD6 0x25123 +0x8EAFACD7 0x2F945 +0x8EAFACD8 0x25124 +0x8EAFACD9 0x25431 +0x8EAFACDA 0x25432 +0x8EAFACDB 0x25433 +0x8EAFACDC 0x7818 +0x8EAFACDD 0x25434 +0x8EAFACDE 0x25435 +0x8EAFACDF 0x25436 +0x8EAFACE0 0x25440 +0x8EAFACE1 0x25437 +0x8EAFACE3 0x25438 +0x8EAFACE4 0x2543D +0x8EAFACE5 0x25638 +0x8EAFACE6 0x25639 +0x8EAFACE7 0x2563A +0x8EAFACE8 0x2563B +0x8EAFACE9 0x2563C +0x8EAFACEA 0x2564C +0x8EAFACEB 0x25773 +0x8EAFACEC 0x25774 +0x8EAFACED 0x4133 +0x8EAFACEE 0x25775 +0x8EAFACEF 0x25776 +0x8EAFACF0 0x25779 +0x8EAFACF1 0x25941 +0x8EAFACF2 0x25942 +0x8EAFACF3 0x25943 +0x8EAFACF4 0x25A5B +0x8EAFACF6 0x7AD7 +0x8EAFACF7 0x238A6 +0x8EAFACF8 0x25A5C +0x8EAFACF9 0x25AE5 +0x8EAFACFA 0x25AE6 +0x8EAFACFB 0x25AE7 +0x8EAFACFC 0x25AE8 +0x8EAFACFD 0x25AED +0x8EAFACFE 0x25E30 +0x8EAFADA1 0x7C7E +0x8EAFADA2 0x25E31 +0x8EAFADA3 0x25F94 +0x8EAFADA4 0x26351 +0x8EAFADA5 0x263FD +0x8EAFADA6 0x263FE +0x8EAFADA7 0x264E9 +0x8EAFADA9 0x266B3 +0x8EAFADAA 0x26684 +0x8EAFADAB 0x26694 +0x8EAFADAD 0x2669C +0x8EAFADAF 0x26685 +0x8EAFADB0 0x26900 +0x8EAFADB1 0x26937 +0x8EAFADB2 0x26957 +0x8EAFADB3 0x26B54 +0x8EAFADB4 0x26B68 +0x8EAFADB5 0x26B55 +0x8EAFADB6 0x26B5C +0x8EAFADB7 0x26B56 +0x8EAFADB8 0x26B57 +0x8EAFADB9 0x26B58 +0x8EAFADBA 0x26B59 +0x8EAFADBB 0x26B5A +0x8EAFADBC 0x26B5B +0x8EAFADBD 0x27234 +0x8EAFADBE 0x867E +0x8EAFADBF 0x27235 +0x8EAFADC1 0x27239 +0x8EAFADC2 0x27236 +0x8EAFADC3 0x27237 +0x8EAFADC4 0x27238 +0x8EAFADC5 0x275E5 +0x8EAFADC6 0x27659 +0x8EAFADC8 0x2763A +0x8EAFADC9 0x2763B +0x8EAFADCA 0x27D28 +0x8EAFADCB 0x27E89 +0x8EAFADCD 0x27E8A +0x8EAFADCE 0x27E8B +0x8EAFADCF 0x27E8C +0x8EAFADD0 0x27E8D +0x8EAFADD1 0x27FBC +0x8EAFADD2 0x282A3 +0x8EAFADD3 0x4844 +0x8EAFADD4 0x282A4 +0x8EAFADD5 0x28493 +0x8EAFADD6 0x28494 +0x8EAFADD7 0x28495 +0x8EAFADD8 0x28496 +0x8EAFADD9 0x28497 +0x8EAFADDA 0x286B9 +0x8EAFADDB 0x28E4F +0x8EAFADDC 0x28E50 +0x8EAFADDD 0x28E51 +0x8EAFADDE 0x29076 +0x8EAFADE0 0x200FB +0x8EAFADE1 0x20083 +0x8EAFADE2 0x20138 +0x8EAFADE3 0x2015D +0x8EAFADE4 0x20271 +0x8EAFADE6 0x20277 +0x8EAFADE7 0x20278 +0x8EAFADE8 0x2F807 +0x8EAFADE9 0x202C3 +0x8EAFADEA 0x20279 +0x8EAFADEB 0x2027A +0x8EAFADEC 0x2027B +0x8EAFADED 0x2027C +0x8EAFADEE 0x20272 +0x8EAFADEF 0x2027D +0x8EAFADF0 0x202A0 +0x8EAFADF1 0x2027E +0x8EAFADF2 0x2027F +0x8EAFADF3 0x20280 +0x8EAFADF4 0x20281 +0x8EAFADF5 0x20282 +0x8EAFADF6 0x20283 +0x8EAFADF7 0x2029E +0x8EAFADF8 0x20284 +0x8EAFADF9 0x20285 +0x8EAFADFA 0x20286 +0x8EAFADFB 0x20287 +0x8EAFADFC 0x20288 +0x8EAFADFD 0x20493 +0x8EAFADFE 0x20494 +0x8EAFAEA1 0x20495 +0x8EAFAEA2 0x204EF +0x8EAFAEA3 0x204F0 +0x8EAFAEA5 0x2058D +0x8EAFAEA6 0x2058F +0x8EAFAEA7 0x20590 +0x8EAFAEA8 0x20591 +0x8EAFAEA9 0x20592 +0x8EAFAEAA 0x205DE +0x8EAFAEAB 0x205E1 +0x8EAFAEAC 0x20653 +0x8EAFAEAD 0x5266 +0x8EAFAEAE 0x2074A +0x8EAFAEAF 0x2074B +0x8EAFAEB0 0x2074C +0x8EAFAEB1 0x20751 +0x8EAFAEB2 0x2074D +0x8EAFAEB3 0x20748 +0x8EAFAEB4 0x20874 +0x8EAFAEB5 0x20875 +0x8EAFAEB6 0x20920 +0x8EAFAEB7 0x20921 +0x8EAFAEB8 0x209A5 +0x8EAFAEB9 0x209A6 +0x8EAFAEBA 0x20A73 +0x8EAFAEBB 0x20A74 +0x8EAFAEBC 0x20B50 +0x8EAFAEBD 0x20B51 +0x8EAFAEBE 0x20B52 +0x8EAFAEBF 0x20B53 +0x8EAFAEC0 0x20CDB +0x8EAFAEC1 0x20CDC +0x8EAFAEC2 0x5520 +0x8EAFAEC3 0x20CDD +0x8EAFAEC4 0x20CDE +0x8EAFAEC5 0x20CFF +0x8EAFAEC8 0x20CDF +0x8EAFAEC9 0x20CE0 +0x8EAFAECA 0x5521 +0x8EAFAECB 0x20CE1 +0x8EAFAECC 0x20CE2 +0x8EAFAECD 0x20CE3 +0x8EAFAECE 0x20CE4 +0x8EAFAECF 0x20CE5 +0x8EAFAED0 0x20CE6 +0x8EAFAED1 0x20CE7 +0x8EAFAED2 0x20CE8 +0x8EAFAED3 0x20CE9 +0x8EAFAED4 0x20CEA +0x8EAFAED5 0x21307 +0x8EAFAED6 0x21308 +0x8EAFAED7 0x21309 +0x8EAFAED8 0x2130A +0x8EAFAED9 0x2130B +0x8EAFAEDA 0x2130C +0x8EAFAEDB 0x2130D +0x8EAFAEDC 0x57D7 +0x8EAFAEDD 0x2131A +0x8EAFAEDE 0x2130E +0x8EAFAEDF 0x2130F +0x8EAFAEE0 0x21310 +0x8EAFAEE1 0x2131C +0x8EAFAEE2 0x21527 +0x8EAFAEE3 0x21566 +0x8EAFAEE4 0x21598 +0x8EAFAEE5 0x21599 +0x8EAFAEE6 0x21633 +0x8EAFAEE7 0x21624 +0x8EAFAEE8 0x21625 +0x8EAFAEE9 0x21626 +0x8EAFAEEB 0x36E1 +0x8EAFAEEC 0x2173E +0x8EAFAEED 0x2F864 +0x8EAFAEEE 0x2173F +0x8EAFAEEF 0x21757 +0x8EAFAEF0 0x21740 +0x8EAFAEF1 0x21741 +0x8EAFAEF2 0x21758 +0x8EAFAEF3 0x21742 +0x8EAFAEF4 0x21743 +0x8EAFAEF5 0x21744 +0x8EAFAEF6 0x21745 +0x8EAFAEF7 0x21746 +0x8EAFAEF8 0x36E2 +0x8EAFAEF9 0x21747 +0x8EAFAEFA 0x2196B +0x8EAFAEFB 0x2196C +0x8EAFAEFC 0x21A10 +0x8EAFAEFD 0x21A11 +0x8EAFAEFE 0x5BBE +0x8EAFAFA1 0x21B75 +0x8EAFAFA2 0x21BEF +0x8EAFAFA3 0x21C6A +0x8EAFAFA4 0x21C6B +0x8EAFAFA6 0x21C6C +0x8EAFAFA7 0x21C6D +0x8EAFAFA8 0x21C6E +0x8EAFAFA9 0x21DEF +0x8EAFAFAA 0x21DF0 +0x8EAFAFAB 0x21DF1 +0x8EAFAFAC 0x21DF2 +0x8EAFAFAD 0x21DF3 +0x8EAFAFAE 0x21DF4 +0x8EAFAFAF 0x21DF5 +0x8EAFAFB0 0x21DFF +0x8EAFAFB1 0x21DF6 +0x8EAFAFB2 0x21E02 +0x8EAFAFB3 0x21DF7 +0x8EAFAFB4 0x22022 +0x8EAFAFB5 0x220C4 +0x8EAFAFB6 0x220C3 +0x8EAFAFB7 0x22228 +0x8EAFAFB8 0x387C +0x8EAFAFB9 0x22320 +0x8EAFAFBA 0x22325 +0x8EAFAFBB 0x22322 +0x8EAFAFBC 0x22323 +0x8EAFAFBD 0x223EB +0x8EAFAFBE 0x38E3 +0x8EAFAFBF 0x224F9 +0x8EAFAFC0 0x224FA +0x8EAFAFC1 0x22699 +0x8EAFAFC2 0x2269A +0x8EAFAFC3 0x2269B +0x8EAFAFC4 0x22663 +0x8EAFAFC6 0x2265E +0x8EAFAFC7 0x2265F +0x8EAFAFC8 0x22660 +0x8EAFAFC9 0x2269C +0x8EAFAFCA 0x22661 +0x8EAFAFCB 0x2269D +0x8EAFAFCC 0x22B54 +0x8EAFAFCD 0x22B55 +0x8EAFAFCE 0x22B56 +0x8EAFAFCF 0x22B57 +0x8EAFAFD0 0x22B58 +0x8EAFAFD1 0x22B59 +0x8EAFAFD2 0x22B5A +0x8EAFAFD3 0x22B19 +0x8EAFAFD4 0x22B6A +0x8EAFAFD5 0x22B5B +0x8EAFAFD6 0x22B5C +0x8EAFAFD7 0x22B5D +0x8EAFAFD8 0x22B66 +0x8EAFAFDA 0x22B5E +0x8EAFAFDB 0x22B5F +0x8EAFAFDC 0x22B1A +0x8EAFAFDD 0x22B60 +0x8EAFAFDE 0x22B61 +0x8EAFAFE0 0x22B62 +0x8EAFAFE1 0x22B1B +0x8EAFAFE2 0x22B63 +0x8EAFAFE3 0x26410 +0x8EAFAFE4 0x26411 +0x8EAFAFE5 0x2304C +0x8EAFAFE6 0x2309B +0x8EAFAFE7 0x230EB +0x8EAFAFE8 0x230EC +0x8EAFAFE9 0x230ED +0x8EAFAFEA 0x230EE +0x8EAFAFEB 0x231A3 +0x8EAFAFEC 0x231A8 +0x8EAFAFED 0x231A6 +0x8EAFAFEE 0x3AEC +0x8EAFAFEF 0x2332F +0x8EAFAFF0 0x23330 +0x8EAFAFF1 0x23331 +0x8EAFAFF2 0x23332 +0x8EAFAFF3 0x23333 +0x8EAFAFF4 0x2344F +0x8EAFAFF5 0x23451 +0x8EAFAFF6 0x23452 +0x8EAFAFF7 0x2347D +0x8EAFAFF8 0x23453 +0x8EAFAFF9 0x23454 +0x8EAFAFFA 0x23455 +0x8EAFAFFB 0x23456 +0x8EAFAFFC 0x23457 +0x8EAFAFFD 0x23458 +0x8EAFAFFE 0x23459 +0x8EAFB0A1 0x2345A +0x8EAFB0A2 0x2345B +0x8EAFB0A3 0x2345C +0x8EAFB0A4 0x6857 +0x8EAFB0A5 0x2345D +0x8EAFB0A6 0x2345E +0x8EAFB0A7 0x2345F +0x8EAFB0A8 0x2346F +0x8EAFB0A9 0x23460 +0x8EAFB0AA 0x23461 +0x8EAFB0AB 0x23462 +0x8EAFB0AC 0x23463 +0x8EAFB0AD 0x23472 +0x8EAFB0AE 0x23464 +0x8EAFB0B0 0x2346E +0x8EAFB0B1 0x238B5 +0x8EAFB0B2 0x23B65 +0x8EAFB0B3 0x23B66 +0x8EAFB0B4 0x23B67 +0x8EAFB0B5 0x23B68 +0x8EAFB0B6 0x23B69 +0x8EAFB0B7 0x23B6A +0x8EAFB0B8 0x23B6B +0x8EAFB0B9 0x23B6C +0x8EAFB0BA 0x23D0E +0x8EAFB0BB 0x23D43 +0x8EAFB0BD 0x23D0F +0x8EAFB0BE 0x23D44 +0x8EAFB0BF 0x23D45 +0x8EAFB0C0 0x23D46 +0x8EAFB0C1 0x23D47 +0x8EAFB0C2 0x23D48 +0x8EAFB0C3 0x23D49 +0x8EAFB0C4 0x23D10 +0x8EAFB0C5 0x23D4A +0x8EAFB0C6 0x23D4B +0x8EAFB0C7 0x23D4C +0x8EAFB0C8 0x23D4D +0x8EAFB0C9 0x3CDF +0x8EAFB0CA 0x23D4E +0x8EAFB0CB 0x23D4F +0x8EAFB0CC 0x23D50 +0x8EAFB0CD 0x23D51 +0x8EAFB0CE 0x23D52 +0x8EAFB0CF 0x23D53 +0x8EAFB0D0 0x23D54 +0x8EAFB0D1 0x23D55 +0x8EAFB0D2 0x23D56 +0x8EAFB0D3 0x23D57 +0x8EAFB0D4 0x23D58 +0x8EAFB0D5 0x23D59 +0x8EAFB0D6 0x23D5A +0x8EAFB0D7 0x23D1D +0x8EAFB0D8 0x23D5B +0x8EAFB0D9 0x23D5C +0x8EAFB0DA 0x23D5D +0x8EAFB0DB 0x2F906 +0x8EAFB0DD 0x241FE +0x8EAFB0DE 0x241FF +0x8EAFB0DF 0x24200 +0x8EAFB0E0 0x24201 +0x8EAFB0E1 0x24202 +0x8EAFB0E2 0x24203 +0x8EAFB0E3 0x24204 +0x8EAFB0E4 0x24205 +0x8EAFB0E5 0x24206 +0x8EAFB0E6 0x24207 +0x8EAFB0E7 0x24218 +0x8EAFB0E8 0x24208 +0x8EAFB0E9 0x24209 +0x8EAFB0EA 0x241F3 +0x8EAFB0EB 0x2420A +0x8EAFB0EC 0x2420B +0x8EAFB0ED 0x2421B +0x8EAFB0EE 0x2420C +0x8EAFB0EF 0x2420D +0x8EAFB0F0 0x2420E +0x8EAFB0F1 0x2420F +0x8EAFB0F2 0x24210 +0x8EAFB0F3 0x2450F +0x8EAFB0F4 0x24561 +0x8EAFB0F5 0x24579 +0x8EAFB0F6 0x247C1 +0x8EAFB0F7 0x247AC +0x8EAFB0F8 0x247AD +0x8EAFB0F9 0x24943 +0x8EAFB0FA 0x24944 +0x8EAFB0FB 0x24945 +0x8EAFB0FC 0x24946 +0x8EAFB0FD 0x24947 +0x8EAFB0FE 0x24948 +0x8EAFB1A1 0x24949 +0x8EAFB1A2 0x24964 +0x8EAFB1A3 0x2494A +0x8EAFB1A4 0x2494B +0x8EAFB1A5 0x2494C +0x8EAFB1A6 0x2494D +0x8EAFB1A7 0x3EC7 +0x8EAFB1A8 0x2F92D +0x8EAFB1A9 0x24B39 +0x8EAFB1AA 0x24C57 +0x8EAFB1AB 0x24C58 +0x8EAFB1AC 0x24C59 +0x8EAFB1AD 0x24C5F +0x8EAFB1AE 0x24C5A +0x8EAFB1AF 0x24D6A +0x8EAFB1B0 0x24F2B +0x8EAFB1B1 0x24F5D +0x8EAFB1B2 0x24F5E +0x8EAFB1B3 0x24F5F +0x8EAFB1B5 0x24F60 +0x8EAFB1B6 0x24F61 +0x8EAFB1B7 0x25058 +0x8EAFB1B8 0x25059 +0x8EAFB1B9 0x2514A +0x8EAFB1BA 0x2514B +0x8EAFB1BB 0x2514C +0x8EAFB1BC 0x2514D +0x8EAFB1BD 0x2514E +0x8EAFB1BE 0x25457 +0x8EAFB1BF 0x253B3 +0x8EAFB1C0 0x253B4 +0x8EAFB1C1 0x2546E +0x8EAFB1C2 0x2545B +0x8EAFB1C3 0x2545C +0x8EAFB1C5 0x2545D +0x8EAFB1C6 0x2545E +0x8EAFB1C8 0x2546C +0x8EAFB1C9 0x2563D +0x8EAFB1CA 0x25654 +0x8EAFB1CB 0x2563E +0x8EAFB1CC 0x25655 +0x8EAFB1CD 0x25656 +0x8EAFB1CE 0x2563F +0x8EAFB1CF 0x25657 +0x8EAFB1D0 0x25658 +0x8EAFB1D1 0x25659 +0x8EAFB1D2 0x2565A +0x8EAFB1D3 0x2565B +0x8EAFB1D4 0x2565C +0x8EAFB1D5 0x25788 +0x8EAFB1D6 0x25789 +0x8EAFB1D8 0x25958 +0x8EAFB1D9 0x25959 +0x8EAFB1DA 0x2595A +0x8EAFB1DC 0x25A67 +0x8EAFB1DD 0x25A68 +0x8EAFB1DE 0x25A69 +0x8EAFB1DF 0x25A6A +0x8EAFB1E1 0x25A6B +0x8EAFB1E2 0x25A6C +0x8EAFB1E3 0x25AFE +0x8EAFB1E4 0x25AFF +0x8EAFB1E5 0x25B00 +0x8EAFB1E6 0x25B01 +0x8EAFB1E7 0x25B02 +0x8EAFB1E8 0x25B03 +0x8EAFB1E9 0x25B04 +0x8EAFB1EA 0x25B05 +0x8EAFB1EB 0x25E39 +0x8EAFB1EC 0x25E3A +0x8EAFB1ED 0x25E3B +0x8EAFB1EE 0x25E3C +0x8EAFB1F1 0x25FB2 +0x8EAFB1F2 0x25FB3 +0x8EAFB1F3 0x25FB4 +0x8EAFB1F4 0x25FB5 +0x8EAFB1F5 0x25FB6 +0x8EAFB1F6 0x25FB7 +0x8EAFB1F7 0x25FB8 +0x8EAFB1F8 0x7F3C +0x8EAFB1F9 0x262A2 +0x8EAFB1FA 0x26361 +0x8EAFB1FB 0x26362 +0x8EAFB1FC 0x26414 +0x8EAFB1FE 0x264EB +0x8EAFB2A1 0x26542 +0x8EAFB2A2 0x26548 +0x8EAFB2A4 0x26543 +0x8EAFB2A5 0x2654E +0x8EAFB2A6 0x26544 +0x8EAFB2A7 0x26545 +0x8EAFB2A8 0x266B4 +0x8EAFB2A9 0x266B5 +0x8EAFB2AD 0x266B6 +0x8EAFB2AF 0x268E1 +0x8EAFB2B0 0x26905 +0x8EAFB2B2 0x8273 +0x8EAFB2B3 0x26B9A +0x8EAFB2B5 0x26B9B +0x8EAFB2B6 0x26B9C +0x8EAFB2B7 0x26B9D +0x8EAFB2B8 0x26B9E +0x8EAFB2B9 0x26B9F +0x8EAFB2BA 0x2F99A +0x8EAFB2BB 0x26BA0 +0x8EAFB2BC 0x26BA1 +0x8EAFB2BD 0x26BA2 +0x8EAFB2BE 0x26BB5 +0x8EAFB2BF 0x26BA3 +0x8EAFB2C0 0x26BA4 +0x8EAFB2C2 0x26BA5 +0x8EAFB2C3 0x26BA6 +0x8EAFB2C4 0x26BA7 +0x8EAFB2C5 0x26BA8 +0x8EAFB2C6 0x26BAF +0x8EAFB2C7 0x26BA9 +0x8EAFB2C8 0x26BAA +0x8EAFB2C9 0x26BAB +0x8EAFB2CA 0x26BAC +0x8EAFB2CB 0x26BAD +0x8EAFB2CC 0x26BB3 +0x8EAFB2CE 0x271A0 +0x8EAFB2CF 0x27256 +0x8EAFB2D0 0x27634 +0x8EAFB2D1 0x4627 +0x8EAFB2D2 0x2763C +0x8EAFB2D3 0x2780C +0x8EAFB2D5 0x27C3E +0x8EAFB2D6 0x27CA3 +0x8EAFB2D7 0x27D30 +0x8EAFB2D8 0x27D31 +0x8EAFB2D9 0x27E97 +0x8EAFB2DA 0x27E98 +0x8EAFB2DB 0x27E99 +0x8EAFB2DC 0x27E9A +0x8EAFB2DD 0x27E9B +0x8EAFB2DE 0x282B2 +0x8EAFB2DF 0x282AB +0x8EAFB2E0 0x282AC +0x8EAFB2E1 0x286FC +0x8EAFB2E2 0x286E8 +0x8EAFB2E3 0x286E9 +0x8EAFB2E4 0x286EA +0x8EAFB2E5 0x287F1 +0x8EAFB2E6 0x2893F +0x8EAFB2E7 0x28CCE +0x8EAFB2E8 0x28E6D +0x8EAFB2E9 0x28E6E +0x8EAFB2EA 0x28E6F +0x8EAFB2EB 0x28E70 +0x8EAFB2EC 0x28E71 +0x8EAFB2ED 0x28E72 +0x8EAFB2EE 0x28E73 +0x8EAFB2EF 0x96BE +0x8EAFB2F0 0x29078 +0x8EAFB2F1 0x2983A +0x8EAFB2F2 0x20167 +0x8EAFB2F3 0x66FA +0x8EAFB2F4 0x20164 +0x8EAFB2F5 0x20165 +0x8EAFB2F6 0x20307 +0x8EAFB2F7 0x202C4 +0x8EAFB2F8 0x202C5 +0x8EAFB2F9 0x202C6 +0x8EAFB2FA 0x202C7 +0x8EAFB2FB 0x202C8 +0x8EAFB2FC 0x202C9 +0x8EAFB2FD 0x202E5 +0x8EAFB2FE 0x202CA +0x8EAFB3A1 0x202CB +0x8EAFB3A3 0x202CC +0x8EAFB3A4 0x202CD +0x8EAFB3A5 0x202CE +0x8EAFB3A6 0x202CF +0x8EAFB3A7 0x202D0 +0x8EAFB3A8 0x20497 +0x8EAFB3A9 0x2049A +0x8EAFB3AA 0x2049B +0x8EAFB3AB 0x205EA +0x8EAFB3AC 0x205EC +0x8EAFB3AD 0x205ED +0x8EAFB3AE 0x205F7 +0x8EAFB3AF 0x205EE +0x8EAFB3B0 0x205EF +0x8EAFB3B1 0x2065B +0x8EAFB3B2 0x2065C +0x8EAFB3B3 0x2065D +0x8EAFB3B4 0x2076D +0x8EAFB3B5 0x2076E +0x8EAFB3B7 0x2076F +0x8EAFB3B8 0x20881 +0x8EAFB3B9 0x20882 +0x8EAFB3BA 0x2094F +0x8EAFB3BB 0x209AD +0x8EAFB3BC 0x2870A +0x8EAFB3BD 0x20A7E +0x8EAFB3BE 0x20B69 +0x8EAFB3BF 0x20D54 +0x8EAFB3C0 0x20D55 +0x8EAFB3C1 0x20D56 +0x8EAFB3C2 0x20D57 +0x8EAFB3C3 0x35AB +0x8EAFB3C4 0x20D58 +0x8EAFB3C5 0x20D59 +0x8EAFB3C6 0x20D5A +0x8EAFB3C7 0x20D5B +0x8EAFB3C8 0x20D5C +0x8EAFB3C9 0x20D5D +0x8EAFB3CC 0x20D5E +0x8EAFB3CD 0x20D5F +0x8EAFB3CE 0x2133B +0x8EAFB3CF 0x21336 +0x8EAFB3D0 0x2133C +0x8EAFB3D1 0x2133D +0x8EAFB3D2 0x2133E +0x8EAFB3D3 0x2133F +0x8EAFB3D4 0x21340 +0x8EAFB3D5 0x21341 +0x8EAFB3D6 0x21342 +0x8EAFB3D7 0x364B +0x8EAFB3D8 0x21343 +0x8EAFB3D9 0x21344 +0x8EAFB3DA 0x21345 +0x8EAFB3DB 0x21337 +0x8EAFB3DE 0x21346 +0x8EAFB3DF 0x21347 +0x8EAFB3E0 0x21348 +0x8EAFB3E1 0x21349 +0x8EAFB3E2 0x2152D +0x8EAFB3E3 0x215A5 +0x8EAFB3E4 0x2163D +0x8EAFB3E5 0x2163F +0x8EAFB3E6 0x2196E +0x8EAFB3E7 0x217E7 +0x8EAFB3E8 0x21775 +0x8EAFB3E9 0x21776 +0x8EAFB3EA 0x21777 +0x8EAFB3EB 0x21778 +0x8EAFB3EC 0x21779 +0x8EAFB3ED 0x2177A +0x8EAFB3EE 0x2177B +0x8EAFB3EF 0x2177C +0x8EAFB3F0 0x2178E +0x8EAFB3F1 0x2177D +0x8EAFB3F2 0x2177E +0x8EAFB3F3 0x5A72 +0x8EAFB3F4 0x2177F +0x8EAFB3F5 0x21780 +0x8EAFB3F6 0x21781 +0x8EAFB3F7 0x21782 +0x8EAFB3F8 0x21783 +0x8EAFB3F9 0x21784 +0x8EAFB3FA 0x21785 +0x8EAFB3FB 0x21786 +0x8EAFB3FC 0x21787 +0x8EAFB3FD 0x21788 +0x8EAFB3FE 0x21789 +0x8EAFB4A1 0x2178A +0x8EAFB4A2 0x2178B +0x8EAFB4A3 0x2178C +0x8EAFB4A4 0x2196F +0x8EAFB4A5 0x21970 +0x8EAFB4A6 0x21971 +0x8EAFB4A7 0x21972 +0x8EAFB4A8 0x21A2A +0x8EAFB4A9 0x21A2B +0x8EAFB4AA 0x21A2C +0x8EAFB4AB 0x21A2D +0x8EAFB4AC 0x21A2E +0x8EAFB4AD 0x21A2F +0x8EAFB4AE 0x21A30 +0x8EAFB4AF 0x21A31 +0x8EAFB4B0 0x21B83 +0x8EAFB4B1 0x21C84 +0x8EAFB4B2 0x21C85 +0x8EAFB4B3 0x21C93 +0x8EAFB4B5 0x21C86 +0x8EAFB4B6 0x21C87 +0x8EAFB4B7 0x21C88 +0x8EAFB4B8 0x21C89 +0x8EAFB4B9 0x21C8A +0x8EAFB4BA 0x21C8B +0x8EAFB4BB 0x21E36 +0x8EAFB4BC 0x21E38 +0x8EAFB4BD 0x21E39 +0x8EAFB4BE 0x21E3A +0x8EAFB4BF 0x37E2 +0x8EAFB4C0 0x21E3B +0x8EAFB4C1 0x21E3C +0x8EAFB4C2 0x21E3D +0x8EAFB4C3 0x21E3E +0x8EAFB4C4 0x21E3F +0x8EAFB4C6 0x21E40 +0x8EAFB4C7 0x21E41 +0x8EAFB4C8 0x21E42 +0x8EAFB4C9 0x220DE +0x8EAFB4CA 0x220DF +0x8EAFB4CB 0x220E0 +0x8EAFB4CC 0x220E1 +0x8EAFB4CD 0x2224A +0x8EAFB4CE 0x2224B +0x8EAFB4CF 0x2224C +0x8EAFB4D0 0x2224D +0x8EAFB4D1 0x2224E +0x8EAFB4D2 0x2224F +0x8EAFB4D3 0x22250 +0x8EAFB4D4 0x22327 +0x8EAFB4D5 0x223F9 +0x8EAFB4D6 0x223FA +0x8EAFB4D7 0x223FB +0x8EAFB4D8 0x22498 +0x8EAFB4D9 0x22499 +0x8EAFB4DA 0x2249A +0x8EAFB4DC 0x2251E +0x8EAFB4DD 0x2269E +0x8EAFB4DE 0x226F7 +0x8EAFB4DF 0x2269F +0x8EAFB4E0 0x226A0 +0x8EAFB4E1 0x226F0 +0x8EAFB4E2 0x226F8 +0x8EAFB4E3 0x226F9 +0x8EAFB4E4 0x226A1 +0x8EAFB4E5 0x226A2 +0x8EAFB4E6 0x226A3 +0x8EAFB4E7 0x226A4 +0x8EAFB4E8 0x226A5 +0x8EAFB4E9 0x226FA +0x8EAFB4EA 0x226FB +0x8EAFB4EB 0x226FC +0x8EAFB4EC 0x226FD +0x8EAFB4ED 0x226FE +0x8EAFB4EE 0x2271F +0x8EAFB4EF 0x226FF +0x8EAFB4F0 0x22700 +0x8EAFB4F1 0x2278C +0x8EAFB4F2 0x22701 +0x8EAFB4F3 0x229C2 +0x8EAFB4F4 0x229C3 +0x8EAFB4F6 0x229D3 +0x8EAFB4F7 0x22A4E +0x8EAFB4F8 0x22BAF +0x8EAFB4F9 0x22BB0 +0x8EAFB4FA 0x22BB1 +0x8EAFB4FB 0x22BB2 +0x8EAFB4FC 0x22BB3 +0x8EAFB4FD 0x22BC6 +0x8EAFB4FE 0x22BB4 +0x8EAFB5A2 0x22BB5 +0x8EAFB5A3 0x22BB6 +0x8EAFB5A4 0x22BB7 +0x8EAFB5A5 0x22BB8 +0x8EAFB5A6 0x22BB9 +0x8EAFB5A7 0x22BBA +0x8EAFB5A8 0x22BBB +0x8EAFB5A9 0x22BBC +0x8EAFB5AA 0x22BBD +0x8EAFB5AB 0x22BBE +0x8EAFB5AC 0x22BBF +0x8EAFB5AD 0x22BC1 +0x8EAFB5AE 0x22BC0 +0x8EAFB5AF 0x22BC2 +0x8EAFB5B0 0x22BC3 +0x8EAFB5B1 0x22F51 +0x8EAFB5B2 0x22F52 +0x8EAFB5B3 0x22F53 +0x8EAFB5B4 0x22F54 +0x8EAFB5B5 0x22F55 +0x8EAFB5B6 0x2305A +0x8EAFB5B7 0x23050 +0x8EAFB5B8 0x23051 +0x8EAFB5B9 0x23078 +0x8EAFB5BA 0x230F8 +0x8EAFB5BB 0x230F9 +0x8EAFB5BC 0x231C6 +0x8EAFB5BD 0x231CB +0x8EAFB5BE 0x231CC +0x8EAFB5BF 0x231CD +0x8EAFB5C0 0x231CE +0x8EAFB5C1 0x231CF +0x8EAFB5C2 0x231D0 +0x8EAFB5C3 0x231D1 +0x8EAFB5C4 0x231D2 +0x8EAFB5C5 0x231D3 +0x8EAFB5C6 0x231D4 +0x8EAFB5C7 0x231D5 +0x8EAFB5C9 0x23337 +0x8EAFB5CA 0x23338 +0x8EAFB5CB 0x23373 +0x8EAFB5CC 0x23490 +0x8EAFB5CD 0x23491 +0x8EAFB5CE 0x234BF +0x8EAFB5CF 0x23492 +0x8EAFB5D0 0x23493 +0x8EAFB5D1 0x23494 +0x8EAFB5D2 0x23495 +0x8EAFB5D3 0x23496 +0x8EAFB5D4 0x23497 +0x8EAFB5D5 0x23498 +0x8EAFB5D6 0x23499 +0x8EAFB5D7 0x68BD +0x8EAFB5D8 0x2349A +0x8EAFB5D9 0x2349B +0x8EAFB5DA 0x2349C +0x8EAFB5DB 0x2349D +0x8EAFB5DC 0x2349E +0x8EAFB5DD 0x2349F +0x8EAFB5DE 0x234A0 +0x8EAFB5DF 0x234A1 +0x8EAFB5E0 0x234A2 +0x8EAFB5E1 0x234A3 +0x8EAFB5E2 0x234A4 +0x8EAFB5E3 0x234A5 +0x8EAFB5E5 0x234A6 +0x8EAFB5E6 0x234A7 +0x8EAFB5E7 0x238BF +0x8EAFB5E8 0x238C0 +0x8EAFB5E9 0x238C1 +0x8EAFB5EA 0x238C2 +0x8EAFB5EB 0x238C3 +0x8EAFB5EC 0x238C4 +0x8EAFB5ED 0x238C5 +0x8EAFB5EE 0x238C6 +0x8EAFB5EF 0x23975 +0x8EAFB5F0 0x23A43 +0x8EAFB5F1 0x23A12 +0x8EAFB5F2 0x23A9F +0x8EAFB5F3 0x23A91 +0x8EAFB5F4 0x2F8F6 +0x8EAFB5F5 0x23A92 +0x8EAFB5F6 0x23A93 +0x8EAFB5F7 0x23A94 +0x8EAFB5F8 0x23B7E +0x8EAFB5F9 0x23B7F +0x8EAFB5FA 0x23B80 +0x8EAFB5FB 0x23B81 +0x8EAFB5FC 0x23B82 +0x8EAFB5FD 0x23C4C +0x8EAFB5FE 0x23C63 +0x8EAFB6A1 0x23DC0 +0x8EAFB6A2 0x23DC1 +0x8EAFB6A3 0x23DC2 +0x8EAFB6A4 0x2423A +0x8EAFB6A5 0x23DC3 +0x8EAFB6A6 0x23DC4 +0x8EAFB6A7 0x23DC5 +0x8EAFB6A8 0x23DC6 +0x8EAFB6A9 0x6E15 +0x8EAFB6AA 0x23DC7 +0x8EAFB6AC 0x23DC8 +0x8EAFB6AD 0x23D73 +0x8EAFB6AE 0x23DC9 +0x8EAFB6AF 0x23DCA +0x8EAFB6B0 0x23DCB +0x8EAFB6B1 0x23DCC +0x8EAFB6B2 0x23DCD +0x8EAFB6B3 0x3D0E +0x8EAFB6B6 0x23DCE +0x8EAFB6B7 0x23DCF +0x8EAFB6B8 0x23DD0 +0x8EAFB6B9 0x23DD1 +0x8EAFB6BA 0x23DD2 +0x8EAFB6BB 0x23DD3 +0x8EAFB6BC 0x23DD4 +0x8EAFB6BD 0x23DD5 +0x8EAFB6BE 0x2423B +0x8EAFB6BF 0x2423C +0x8EAFB6C0 0x2423D +0x8EAFB6C1 0x2423E +0x8EAFB6C3 0x2423F +0x8EAFB6C4 0x24240 +0x8EAFB6C5 0x24241 +0x8EAFB6C6 0x24242 +0x8EAFB6C7 0x24243 +0x8EAFB6C8 0x3DC1 +0x8EAFB6C9 0x24244 +0x8EAFB6CA 0x24245 +0x8EAFB6CB 0x24259 +0x8EAFB6CC 0x24246 +0x8EAFB6CD 0x24247 +0x8EAFB6CE 0x24248 +0x8EAFB6D0 0x24249 +0x8EAFB6D1 0x24513 +0x8EAFB6D2 0x24582 +0x8EAFB6D3 0x24583 +0x8EAFB6D4 0x24666 +0x8EAFB6D5 0x24667 +0x8EAFB6D6 0x24965 +0x8EAFB6D7 0x7413 +0x8EAFB6D8 0x24966 +0x8EAFB6D9 0x3ED9 +0x8EAFB6DA 0x24975 +0x8EAFB6DB 0x24974 +0x8EAFB6DC 0x24967 +0x8EAFB6DD 0x2496D +0x8EAFB6DE 0x24976 +0x8EAFB6DF 0x24968 +0x8EAFB6E0 0x24969 +0x8EAFB6E1 0x2496A +0x8EAFB6E2 0x2496B +0x8EAFB6E3 0x2494F +0x8EAFB6E4 0x2496C +0x8EAFB6E5 0x24AF8 +0x8EAFB6E6 0x24B45 +0x8EAFB6E7 0x74F8 +0x8EAFB6E8 0x24B46 +0x8EAFB6E9 0x24BE4 +0x8EAFB6EA 0x24C85 +0x8EAFB6EB 0x24C6F +0x8EAFB6EC 0x24C70 +0x8EAFB6ED 0x24D82 +0x8EAFB6EE 0x24D83 +0x8EAFB6EF 0x24D84 +0x8EAFB6F0 0x24D8B +0x8EAFB6F1 0x24F2D +0x8EAFB6F2 0x24F68 +0x8EAFB6F3 0x24F69 +0x8EAFB6F4 0x24F77 +0x8EAFB6F5 0x24F64 +0x8EAFB6F6 0x24F6A +0x8EAFB6F8 0x24FF2 +0x8EAFB6F9 0x24FE2 +0x8EAFB6FA 0x25063 +0x8EAFB6FB 0x25064 +0x8EAFB6FC 0x25065 +0x8EAFB6FD 0x25066 +0x8EAFB6FE 0x7B3D +0x8EAFB7A1 0x25067 +0x8EAFB7A2 0x25068 +0x8EAFB7A3 0x76D8 +0x8EAFB7A5 0x25172 +0x8EAFB7A6 0x2517D +0x8EAFB7A7 0x25369 +0x8EAFB7A8 0x25484 +0x8EAFB7A9 0x25486 +0x8EAFB7AA 0x25487 +0x8EAFB7AB 0x25488 +0x8EAFB7AC 0x2549E +0x8EAFB7AE 0x25489 +0x8EAFB7AF 0x2548A +0x8EAFB7B0 0x25496 +0x8EAFB7B1 0x2548B +0x8EAFB7B2 0x2548C +0x8EAFB7B3 0x2548D +0x8EAFB7B4 0x25679 +0x8EAFB7B5 0x25683 +0x8EAFB7B6 0x2567A +0x8EAFB7B7 0x2565D +0x8EAFB7B8 0x2567B +0x8EAFB7BA 0x2579F +0x8EAFB7BB 0x4148 +0x8EAFB7BC 0x257A0 +0x8EAFB7BD 0x257A1 +0x8EAFB7BE 0x257A2 +0x8EAFB7BF 0x79FC +0x8EAFB7C0 0x2596A +0x8EAFB7C1 0x2596B +0x8EAFB7C2 0x2596C +0x8EAFB7C3 0x2596D +0x8EAFB7C4 0x2596E +0x8EAFB7C5 0x25A78 +0x8EAFB7C7 0x25A79 +0x8EAFB7C8 0x25A7C +0x8EAFB7C9 0x25B21 +0x8EAFB7CA 0x25B22 +0x8EAFB7CB 0x25B23 +0x8EAFB7CC 0x25B24 +0x8EAFB7CD 0x7B39 +0x8EAFB7CE 0x25B25 +0x8EAFB7CF 0x25B26 +0x8EAFB7D0 0x25E51 +0x8EAFB7D1 0x25E52 +0x8EAFB7D2 0x25E56 +0x8EAFB7D4 0x7D4B +0x8EAFB7D5 0x25FE1 +0x8EAFB7D8 0x25FD6 +0x8EAFB7D9 0x25FD7 +0x8EAFB7DA 0x25FD8 +0x8EAFB7DB 0x25FD9 +0x8EAFB7DC 0x262B5 +0x8EAFB7DD 0x2636C +0x8EAFB7DE 0x2636F +0x8EAFB7DF 0x26370 +0x8EAFB7E0 0x264BC +0x8EAFB7E1 0x264BD +0x8EAFB7E2 0x264ED +0x8EAFB7E3 0x2655B +0x8EAFB7E4 0x2655C +0x8EAFB7E5 0x2655D +0x8EAFB7E6 0x2655E +0x8EAFB7E7 0x26686 +0x8EAFB7E8 0x26687 +0x8EAFB7E9 0x266ED +0x8EAFB7EB 0x266EE +0x8EAFB7ED 0x2690E +0x8EAFB7EE 0x2690F +0x8EAFB7F0 0x26A2D +0x8EAFB7F1 0x26A2A +0x8EAFB7F2 0x26A2E +0x8EAFB7F3 0x26ACC +0x8EAFB7F4 0x26BF9 +0x8EAFB7F5 0x26BFA +0x8EAFB7F6 0x26BFB +0x8EAFB7F7 0x26BFC +0x8EAFB7F8 0x83B9 +0x8EAFB7F9 0x26BFD +0x8EAFB7FA 0x26C1B +0x8EAFB7FB 0x26BFE +0x8EAFB7FC 0x26BFF +0x8EAFB7FD 0x26C00 +0x8EAFB7FE 0x26C01 +0x8EAFB8A1 0x26C02 +0x8EAFB8A2 0x26C03 +0x8EAFB8A3 0x26C21 +0x8EAFB8A4 0x26C04 +0x8EAFB8A5 0x26C05 +0x8EAFB8A6 0x26C06 +0x8EAFB8A7 0x26C07 +0x8EAFB8A8 0x26C08 +0x8EAFB8A9 0x26C09 +0x8EAFB8AA 0x26C0A +0x8EAFB8AB 0x26C0B +0x8EAFB8AC 0x26C0C +0x8EAFB8AD 0x26C0D +0x8EAFB8AE 0x26C0E +0x8EAFB8AF 0x26C0F +0x8EAFB8B0 0x26C10 +0x8EAFB8B1 0x26C11 +0x8EAFB8B2 0x26C12 +0x8EAFB8B3 0x26C13 +0x8EAFB8B4 0x26C14 +0x8EAFB8B5 0x26C15 +0x8EAFB8B6 0x2727B +0x8EAFB8B7 0x2727C +0x8EAFB8B8 0x2727D +0x8EAFB8B9 0x2727E +0x8EAFB8BA 0x86CF +0x8EAFB8BB 0x2727F +0x8EAFB8BC 0x27280 +0x8EAFB8BD 0x27266 +0x8EAFB8BE 0x27281 +0x8EAFB8BF 0x27282 +0x8EAFB8C0 0x27283 +0x8EAFB8C1 0x275B2 +0x8EAFB8C3 0x2767F +0x8EAFB8C4 0x27672 +0x8EAFB8C5 0x2765A +0x8EAFB8C6 0x277EB +0x8EAFB8C7 0x27815 +0x8EAFB8C9 0x27816 +0x8EAFB8CA 0x2F9CA +0x8EAFB8CB 0x27817 +0x8EAFB8CD 0x278C5 +0x8EAFB8CE 0x278C6 +0x8EAFB8CF 0x278C7 +0x8EAFB8D0 0x27988 +0x8EAFB8D1 0x27989 +0x8EAFB8D3 0x2798A +0x8EAFB8D4 0x2798B +0x8EAFB8D5 0x2798C +0x8EAFB8D6 0x2798D +0x8EAFB8D7 0x27BDF +0x8EAFB8D9 0x27D3B +0x8EAFB8DA 0x27D3C +0x8EAFB8DB 0x27D3D +0x8EAFB8DC 0x27D3E +0x8EAFB8DD 0x27D3F +0x8EAFB8DE 0x27D40 +0x8EAFB8DF 0x27D41 +0x8EAFB8E0 0x27D42 +0x8EAFB8E1 0x27E5C +0x8EAFB8E2 0x27EAF +0x8EAFB8E3 0x27EA9 +0x8EAFB8E4 0x27EAA +0x8EAFB8E5 0x27EAB +0x8EAFB8E6 0x27EAC +0x8EAFB8E7 0x27EB5 +0x8EAFB8E8 0x27EAD +0x8EAFB8E9 0x27EAE +0x8EAFB8EA 0x27FE2 +0x8EAFB8EB 0x28224 +0x8EAFB8EC 0x8EAE +0x8EAFB8ED 0x282C4 +0x8EAFB8EF 0x284EA +0x8EAFB8F0 0x284D3 +0x8EAFB8F1 0x284D4 +0x8EAFB8F2 0x284D5 +0x8EAFB8F3 0x28686 +0x8EAFB8F5 0x28687 +0x8EAFB8F6 0x286FD +0x8EAFB8F7 0x28805 +0x8EAFB8F8 0x28949 +0x8EAFB8F9 0x28C5F +0x8EAFB8FA 0x28CD3 +0x8EAFB8FB 0x28CD5 +0x8EAFB8FC 0x28E8A +0x8EAFB8FD 0x28E8B +0x8EAFB8FE 0x28E8C +0x8EAFB9A1 0x28E8D +0x8EAFB9A2 0x28E8E +0x8EAFB9A3 0x28E8F +0x8EAFB9A4 0x28E90 +0x8EAFB9A5 0x28E91 +0x8EAFB9A6 0x28E92 +0x8EAFB9A7 0x28E93 +0x8EAFB9A8 0x2907D +0x8EAFB9A9 0x2907E +0x8EAFB9AA 0x96EB +0x8EAFB9AD 0x291EC +0x8EAFB9AE 0x2925B +0x8EAFB9AF 0x29C87 +0x8EAFB9B0 0x29C86 +0x8EAFB9B2 0x20046 +0x8EAFB9B3 0x20047 +0x8EAFB9B4 0x20102 +0x8EAFB9B5 0x2016D +0x8EAFB9B6 0x2016E +0x8EAFB9B7 0x2016F +0x8EAFB9B8 0x2030D +0x8EAFB9B9 0x2030E +0x8EAFB9BA 0x2030F +0x8EAFB9BB 0x20310 +0x8EAFB9BC 0x20311 +0x8EAFB9BD 0x20312 +0x8EAFB9BE 0x20313 +0x8EAFB9BF 0x20314 +0x8EAFB9C0 0x2049F +0x8EAFB9C1 0x204A0 +0x8EAFB9C2 0x204A1 +0x8EAFB9C3 0x204A3 +0x8EAFB9C4 0x20521 +0x8EAFB9C5 0x20522 +0x8EAFB9C6 0x2337C +0x8EAFB9C7 0x20595 +0x8EAFB9C8 0x20596 +0x8EAFB9C9 0x20661 +0x8EAFB9CA 0x20667 +0x8EAFB9CB 0x20791 +0x8EAFB9CC 0x20792 +0x8EAFB9CD 0x20793 +0x8EAFB9CE 0x20794 +0x8EAFB9CF 0x2088A +0x8EAFB9D0 0x2088B +0x8EAFB9D1 0x208F7 +0x8EAFB9D2 0x20924 +0x8EAFB9D3 0x209B0 +0x8EAFB9D4 0x209B1 +0x8EAFB9D5 0x20A8E +0x8EAFB9D6 0x20B04 +0x8EAFB9D7 0x20B6A +0x8EAFB9D8 0x20B6B +0x8EAFB9D9 0x20B6C +0x8EAFB9DA 0x20B6D +0x8EAFB9DB 0x20DE8 +0x8EAFB9DC 0x20E0C +0x8EAFB9DD 0x20DE9 +0x8EAFB9DE 0x20DEA +0x8EAFB9DF 0x20E0D +0x8EAFB9E1 0x20DEB +0x8EAFB9E2 0x20DEC +0x8EAFB9E3 0x20DED +0x8EAFB9E4 0x20DEE +0x8EAFB9E5 0x20DEF +0x8EAFB9E6 0x20DF0 +0x8EAFB9E7 0x20DF1 +0x8EAFB9E8 0x20DF2 +0x8EAFB9E9 0x20E16 +0x8EAFB9EA 0x20DF3 +0x8EAFB9EB 0x20E04 +0x8EAFB9EC 0x20E1D +0x8EAFB9ED 0x20DF4 +0x8EAFB9EE 0x20DF5 +0x8EAFB9EF 0x20DF6 +0x8EAFB9F0 0x20DF7 +0x8EAFB9F1 0x55B0 +0x8EAFB9F2 0x21202 +0x8EAFB9F3 0x21203 +0x8EAFB9F4 0x21204 +0x8EAFB9F5 0x2139A +0x8EAFB9F6 0x2137C +0x8EAFB9F7 0x213C5 +0x8EAFB9F8 0x2137D +0x8EAFB9F9 0x2137E +0x8EAFB9FA 0x2137F +0x8EAFB9FB 0x21380 +0x8EAFB9FC 0x21381 +0x8EAFB9FD 0x5840 +0x8EAFB9FE 0x5842 +0x8EAFBAA1 0x21382 +0x8EAFBAA2 0x21383 +0x8EAFBAA3 0x21384 +0x8EAFBAA4 0x21385 +0x8EAFBAA5 0x21386 +0x8EAFBAA6 0x21387 +0x8EAFBAA7 0x215AE +0x8EAFBAA8 0x2164D +0x8EAFBAA9 0x217B0 +0x8EAFBAAA 0x217DC +0x8EAFBAAB 0x217B6 +0x8EAFBAAC 0x217B7 +0x8EAFBAAD 0x217B8 +0x8EAFBAAE 0x217B9 +0x8EAFBAAF 0x217BA +0x8EAFBAB0 0x217BB +0x8EAFBAB1 0x217DB +0x8EAFBAB2 0x217BC +0x8EAFBAB3 0x217BD +0x8EAFBAB4 0x217BE +0x8EAFBAB6 0x217BF +0x8EAFBAB7 0x217C0 +0x8EAFBAB8 0x217C1 +0x8EAFBAB9 0x217C2 +0x8EAFBABA 0x217C3 +0x8EAFBABB 0x217CE +0x8EAFBABC 0x3701 +0x8EAFBABD 0x217D9 +0x8EAFBABE 0x217C4 +0x8EAFBABF 0x217C5 +0x8EAFBAC0 0x217DA +0x8EAFBAC1 0x217C6 +0x8EAFBAC2 0x217C7 +0x8EAFBAC3 0x217C8 +0x8EAFBAC4 0x217C9 +0x8EAFBAC5 0x217CA +0x8EAFBAC6 0x2197E +0x8EAFBAC7 0x2197B +0x8EAFBAC8 0x21A4E +0x8EAFBAC9 0x21A4F +0x8EAFBACA 0x21A50 +0x8EAFBACB 0x21A51 +0x8EAFBACC 0x21A52 +0x8EAFBACD 0x21A53 +0x8EAFBACE 0x21A54 +0x8EAFBACF 0x21A55 +0x8EAFBAD0 0x21B8F +0x8EAFBAD1 0x21BFC +0x8EAFBAD2 0x21CA6 +0x8EAFBAD3 0x21CA7 +0x8EAFBAD4 0x21CA8 +0x8EAFBAD5 0x21D23 +0x8EAFBAD6 0x21E8B +0x8EAFBAD8 0x21E8C +0x8EAFBAD9 0x21E8D +0x8EAFBADA 0x21E8E +0x8EAFBADB 0x21E8F +0x8EAFBADC 0x21EA4 +0x8EAFBADD 0x20599 +0x8EAFBADE 0x22024 +0x8EAFBADF 0x22046 +0x8EAFBAE0 0x22047 +0x8EAFBAE1 0x22048 +0x8EAFBAE2 0x220FD +0x8EAFBAE3 0x220FE +0x8EAFBAE5 0x2226E +0x8EAFBAE6 0x2227C +0x8EAFBAE7 0x2226F +0x8EAFBAE8 0x22270 +0x8EAFBAE9 0x22271 +0x8EAFBAEA 0x22272 +0x8EAFBAEB 0x22329 +0x8EAFBAEC 0x2232A +0x8EAFBAED 0x2235F +0x8EAFBAEE 0x224A2 +0x8EAFBAEF 0x22530 +0x8EAFBAF0 0x2252B +0x8EAFBAF1 0x22761 +0x8EAFBAF2 0x22702 +0x8EAFBAF3 0x22703 +0x8EAFBAF4 0x22704 +0x8EAFBAF5 0x22705 +0x8EAFBAF6 0x22706 +0x8EAFBAF7 0x22707 +0x8EAFBAF9 0x22708 +0x8EAFBAFA 0x22709 +0x8EAFBAFB 0x22762 +0x8EAFBAFC 0x2270A +0x8EAFBAFD 0x2270B +0x8EAFBAFE 0x2270C +0x8EAFBBA1 0x2270D +0x8EAFBBA2 0x2270E +0x8EAFBBA3 0x22763 +0x8EAFBBA4 0x22727 +0x8EAFBBA5 0x2270F +0x8EAFBBA7 0x2271B +0x8EAFBBA8 0x22764 +0x8EAFBBA9 0x22710 +0x8EAFBBAA 0x22711 +0x8EAFBBAB 0x22781 +0x8EAFBBAC 0x22712 +0x8EAFBBAD 0x22765 +0x8EAFBBAE 0x22713 +0x8EAFBBAF 0x229CE +0x8EAFBBB0 0x22C29 +0x8EAFBBB1 0x22BC4 +0x8EAFBBB2 0x22C2A +0x8EAFBBB4 0x22C2B +0x8EAFBBB5 0x22C2C +0x8EAFBBB6 0x22C2D +0x8EAFBBB7 0x22C2E +0x8EAFBBB8 0x22C2F +0x8EAFBBB9 0x22C30 +0x8EAFBBBA 0x22C31 +0x8EAFBBBB 0x22C32 +0x8EAFBBBC 0x22C33 +0x8EAFBBBD 0x22C34 +0x8EAFBBBF 0x22C35 +0x8EAFBBC0 0x22C36 +0x8EAFBBC1 0x22BE3 +0x8EAFBBC2 0x22C37 +0x8EAFBBC3 0x22C38 +0x8EAFBBC4 0x22C39 +0x8EAFBBC5 0x22C3A +0x8EAFBBC6 0x22C3B +0x8EAFBBC7 0x22C4D +0x8EAFBBC8 0x22C3C +0x8EAFBBC9 0x22C3D +0x8EAFBBCA 0x22C3E +0x8EAFBBCC 0x22ED0 +0x8EAFBBCD 0x22ED1 +0x8EAFBBCE 0x23055 +0x8EAFBBCF 0x23102 +0x8EAFBBD0 0x23104 +0x8EAFBBD1 0x231FC +0x8EAFBBD2 0x23207 +0x8EAFBBD3 0x231FD +0x8EAFBBD4 0x231FE +0x8EAFBBD6 0x231FF +0x8EAFBBD7 0x23200 +0x8EAFBBD8 0x23208 +0x8EAFBBD9 0x23201 +0x8EAFBBDA 0x23202 +0x8EAFBBDB 0x23235 +0x8EAFBBDC 0x23203 +0x8EAFBBDD 0x23204 +0x8EAFBBDF 0x2333B +0x8EAFBBE0 0x23389 +0x8EAFBBE1 0x23381 +0x8EAFBBE2 0x23382 +0x8EAFBBE3 0x26733 +0x8EAFBBE4 0x234EB +0x8EAFBBE5 0x234EC +0x8EAFBBE7 0x234ED +0x8EAFBBE8 0x234EE +0x8EAFBBE9 0x234EF +0x8EAFBBEB 0x234F0 +0x8EAFBBEC 0x234F1 +0x8EAFBBED 0x234F2 +0x8EAFBBEE 0x692B +0x8EAFBBEF 0x234F3 +0x8EAFBBF0 0x6916 +0x8EAFBBF1 0x234F4 +0x8EAFBBF2 0x234F5 +0x8EAFBBF3 0x2004B +0x8EAFBBF4 0x234F6 +0x8EAFBBF5 0x234F7 +0x8EAFBBF6 0x234F8 +0x8EAFBBF7 0x234F9 +0x8EAFBBF8 0x234FA +0x8EAFBBF9 0x234FB +0x8EAFBBFA 0x234FC +0x8EAFBBFB 0x234FD +0x8EAFBBFC 0x234FE +0x8EAFBBFD 0x234FF +0x8EAFBBFE 0x23500 +0x8EAFBCA1 0x691B +0x8EAFBCA2 0x23501 +0x8EAFBCA3 0x23502 +0x8EAFBCA4 0x23503 +0x8EAFBCA5 0x23504 +0x8EAFBCA6 0x23505 +0x8EAFBCA7 0x23506 +0x8EAFBCA8 0x23507 +0x8EAFBCA9 0x6927 +0x8EAFBCAA 0x23508 +0x8EAFBCAB 0x23509 +0x8EAFBCAC 0x2350A +0x8EAFBCAD 0x2350B +0x8EAFBCAE 0x2350C +0x8EAFBCAF 0x2350D +0x8EAFBCB0 0x238D7 +0x8EAFBCB1 0x238D8 +0x8EAFBCB2 0x23A29 +0x8EAFBCB3 0x23A9C +0x8EAFBCB4 0x23AF8 +0x8EAFBCB5 0x23B98 +0x8EAFBCB6 0x23BA4 +0x8EAFBCB7 0x23B99 +0x8EAFBCB8 0x23B9A +0x8EAFBCB9 0x23B9B +0x8EAFBCBA 0x23B97 +0x8EAFBCBB 0x23B9C +0x8EAFBCBC 0x6BF5 +0x8EAFBCBD 0x23B9D +0x8EAFBCBF 0x23B9E +0x8EAFBCC0 0x23B9F +0x8EAFBCC1 0x23C65 +0x8EAFBCC2 0x23DD6 +0x8EAFBCC3 0x3D20 +0x8EAFBCC4 0x23E32 +0x8EAFBCC5 0x23E33 +0x8EAFBCC6 0x23E34 +0x8EAFBCC7 0x6E82 +0x8EAFBCC8 0x23E35 +0x8EAFBCC9 0x23E36 +0x8EAFBCCA 0x23E37 +0x8EAFBCCB 0x23DD7 +0x8EAFBCCD 0x23DD8 +0x8EAFBCCE 0x23E38 +0x8EAFBCCF 0x23E39 +0x8EAFBCD0 0x23E3A +0x8EAFBCD1 0x23E3B +0x8EAFBCD2 0x23E3C +0x8EAFBCD3 0x23E3D +0x8EAFBCD4 0x23E3E +0x8EAFBCD5 0x23E3F +0x8EAFBCD6 0x23E40 +0x8EAFBCD7 0x23DD9 +0x8EAFBCD8 0x23E41 +0x8EAFBCD9 0x23E42 +0x8EAFBCDA 0x3D21 +0x8EAFBCDB 0x23E43 +0x8EAFBCDC 0x23E44 +0x8EAFBCDD 0x6E7A +0x8EAFBCDE 0x2427C +0x8EAFBCDF 0x2427D +0x8EAFBCE0 0x2427E +0x8EAFBCE1 0x2427F +0x8EAFBCE2 0x24280 +0x8EAFBCE3 0x24281 +0x8EAFBCE4 0x24282 +0x8EAFBCE6 0x24283 +0x8EAFBCE7 0x24284 +0x8EAFBCE8 0x24285 +0x8EAFBCE9 0x24286 +0x8EAFBCEA 0x242A5 +0x8EAFBCEB 0x24287 +0x8EAFBCEC 0x24288 +0x8EAFBCED 0x24289 +0x8EAFBCEE 0x2428A +0x8EAFBCEF 0x2428B +0x8EAFBCF0 0x2428C +0x8EAFBCF1 0x2428D +0x8EAFBCF2 0x2428E +0x8EAFBCF5 0x2428F +0x8EAFBCF7 0x24290 +0x8EAFBCF8 0x24291 +0x8EAFBCF9 0x24292 +0x8EAFBCFA 0x24293 +0x8EAFBCFB 0x24294 +0x8EAFBCFC 0x24295 +0x8EAFBCFE 0x7129 +0x8EAFBDA1 0x24296 +0x8EAFBDA2 0x24556 +0x8EAFBDA3 0x24557 +0x8EAFBDA4 0x245E1 +0x8EAFBDA5 0x2460E +0x8EAFBDA6 0x2460F +0x8EAFBDA7 0x2467A +0x8EAFBDA8 0x2467B +0x8EAFBDA9 0x2468B +0x8EAFBDAA 0x247F2 +0x8EAFBDAB 0x247F3 +0x8EAFBDAC 0x24993 +0x8EAFBDAD 0x24994 +0x8EAFBDAE 0x24995 +0x8EAFBDAF 0x24996 +0x8EAFBDB0 0x24997 +0x8EAFBDB1 0x249AD +0x8EAFBDB2 0x24998 +0x8EAFBDB3 0x249AB +0x8EAFBDB4 0x2497B +0x8EAFBDB5 0x24999 +0x8EAFBDB6 0x2499A +0x8EAFBDB7 0x2499B +0x8EAFBDB8 0x24985 +0x8EAFBDB9 0x2499C +0x8EAFBDBA 0x2499D +0x8EAFBDBB 0x3EDA +0x8EAFBDBD 0x249AC +0x8EAFBDBE 0x24979 +0x8EAFBDBF 0x2499E +0x8EAFBDC0 0x249A4 +0x8EAFBDC1 0x24AFD +0x8EAFBDC2 0x24BEB +0x8EAFBDC3 0x24BEA +0x8EAFBDC4 0x24C8F +0x8EAFBDC5 0x24C90 +0x8EAFBDC6 0x24C86 +0x8EAFBDC7 0x24C87 +0x8EAFBDC8 0x24C88 +0x8EAFBDC9 0x24DAC +0x8EAFBDCA 0x24DAD +0x8EAFBDCB 0x24FEC +0x8EAFBDCC 0x25073 +0x8EAFBDCD 0x25074 +0x8EAFBDCF 0x251AA +0x8EAFBDD0 0x251AB +0x8EAFBDD1 0x251AC +0x8EAFBDD2 0x253D1 +0x8EAFBDD3 0x253D7 +0x8EAFBDD4 0x254B9 +0x8EAFBDD5 0x254BA +0x8EAFBDD6 0x254BB +0x8EAFBDD7 0x254BC +0x8EAFBDD8 0x2568E +0x8EAFBDD9 0x2568F +0x8EAFBDDA 0x25690 +0x8EAFBDDB 0x2567C +0x8EAFBDDC 0x25691 +0x8EAFBDDD 0x25692 +0x8EAFBDDE 0x25693 +0x8EAFBDDF 0x25694 +0x8EAFBDE0 0x2F954 +0x8EAFBDE1 0x2569A +0x8EAFBDE2 0x25695 +0x8EAFBDE3 0x25696 +0x8EAFBDE4 0x25697 +0x8EAFBDE5 0x257BD +0x8EAFBDE6 0x257C7 +0x8EAFBDE7 0x257BE +0x8EAFBDE9 0x257BF +0x8EAFBDEB 0x25993 +0x8EAFBDEC 0x21A5E +0x8EAFBDED 0x25A86 +0x8EAFBDEE 0x25A87 +0x8EAFBDEF 0x25A88 +0x8EAFBDF0 0x25A89 +0x8EAFBDF1 0x25B41 +0x8EAFBDF2 0x25B42 +0x8EAFBDF3 0x25B43 +0x8EAFBDF4 0x25B44 +0x8EAFBDF5 0x25B45 +0x8EAFBDF6 0x25B46 +0x8EAFBDF7 0x25B4A +0x8EAFBDF8 0x25B47 +0x8EAFBDF9 0x25B48 +0x8EAFBDFA 0x25B49 +0x8EAFBDFB 0x25E6B +0x8EAFBDFC 0x25E66 +0x8EAFBDFE 0x25E67 +0x8EAFBEA1 0x7CAB +0x8EAFBEA2 0x25E68 +0x8EAFBEA3 0x7CAC +0x8EAFBEA5 0x25FFD +0x8EAFBEA6 0x25FFE +0x8EAFBEA7 0x25FFF +0x8EAFBEA8 0x26000 +0x8EAFBEA9 0x26001 +0x8EAFBEAA 0x26002 +0x8EAFBEAB 0x26003 +0x8EAFBEAC 0x26004 +0x8EAFBEAD 0x26005 +0x8EAFBEAE 0x26006 +0x8EAFBEAF 0x26233 +0x8EAFBEB0 0x262C2 +0x8EAFBEB1 0x262D0 +0x8EAFBEB2 0x2F974 +0x8EAFBEB3 0x26395 +0x8EAFBEB4 0x26396 +0x8EAFBEB5 0x26435 +0x8EAFBEB6 0x26436 +0x8EAFBEB7 0x26567 +0x8EAFBEB8 0x26568 +0x8EAFBEB9 0x26569 +0x8EAFBEBA 0x2656A +0x8EAFBEBB 0x26572 +0x8EAFBEBC 0x2656B +0x8EAFBEBD 0x2656C +0x8EAFBEBE 0x2656D +0x8EAFBEBF 0x2656E +0x8EAFBEC0 0x2656F +0x8EAFBEC1 0x26722 +0x8EAFBEC4 0x26723 +0x8EAFBEC5 0x26741 +0x8EAFBEC6 0x26724 +0x8EAFBEC7 0x26725 +0x8EAFBEC8 0x26726 +0x8EAFBEC9 0x26727 +0x8EAFBECA 0x26728 +0x8EAFBECB 0x26729 +0x8EAFBECC 0x266B7 +0x8EAFBED0 0x269DA +0x8EAFBED1 0x26ACF +0x8EAFBED2 0x26ADA +0x8EAFBED3 0x26C89 +0x8EAFBED4 0x26CB7 +0x8EAFBED5 0x26C8A +0x8EAFBED6 0x26C8B +0x8EAFBED7 0x26D5E +0x8EAFBED8 0x26C8C +0x8EAFBEDA 0x26C8D +0x8EAFBEDB 0x26C8E +0x8EAFBEDC 0x26C8F +0x8EAFBEDD 0x26C90 +0x8EAFBEDE 0x26C91 +0x8EAFBEDF 0x26C92 +0x8EAFBEE0 0x26C93 +0x8EAFBEE1 0x26C94 +0x8EAFBEE2 0x26CB6 +0x8EAFBEE3 0x26C95 +0x8EAFBEE4 0x26C96 +0x8EAFBEE5 0x26C97 +0x8EAFBEE6 0x83F7 +0x8EAFBEE8 0x26C98 +0x8EAFBEE9 0x26C99 +0x8EAFBEEA 0x26C9A +0x8EAFBEEB 0x44EA +0x8EAFBEED 0x26C9B +0x8EAFBEEE 0x26CBD +0x8EAFBEEF 0x26C9C +0x8EAFBEF0 0x26C9D +0x8EAFBEF1 0x26C9E +0x8EAFBEF2 0x26C9F +0x8EAFBEF3 0x26CC0 +0x8EAFBEF4 0x26CA0 +0x8EAFBEF5 0x26CA1 +0x8EAFBEF6 0x26CA2 +0x8EAFBEF7 0x26CA3 +0x8EAFBEF8 0x26CA4 +0x8EAFBEF9 0x26CA5 +0x8EAFBEFA 0x26CA6 +0x8EAFBEFB 0x26CA7 +0x8EAFBEFC 0x26CA8 +0x8EAFBEFD 0x26CA9 +0x8EAFBEFE 0x26CAA +0x8EAFBFA2 0x271B4 +0x8EAFBFA3 0x271B5 +0x8EAFBFA4 0x271B6 +0x8EAFBFA5 0x272B9 +0x8EAFBFA6 0x272BA +0x8EAFBFA7 0x272BB +0x8EAFBFA8 0x27291 +0x8EAFBFA9 0x272BC +0x8EAFBFAA 0x275EE +0x8EAFBFAB 0x275EF +0x8EAFBFAC 0x27696 +0x8EAFBFAD 0x27697 +0x8EAFBFAE 0x27673 +0x8EAFBFAF 0x27698 +0x8EAFBFB0 0x27699 +0x8EAFBFB1 0x277ED +0x8EAFBFB2 0x277EE +0x8EAFBFB3 0x278DE +0x8EAFBFB4 0x279B0 +0x8EAFBFB5 0x279B1 +0x8EAFBFB6 0x279B2 +0x8EAFBFB7 0x279B3 +0x8EAFBFB8 0x279B4 +0x8EAFBFB9 0x279B5 +0x8EAFBFBA 0x279B6 +0x8EAFBFBB 0x2F9CE +0x8EAFBFBC 0x279B7 +0x8EAFBFBD 0x27BE3 +0x8EAFBFBE 0x27CB9 +0x8EAFBFBF 0x27D55 +0x8EAFBFC0 0x27D7E +0x8EAFBFC1 0x27D56 +0x8EAFBFC2 0x27D57 +0x8EAFBFC3 0x27D58 +0x8EAFBFC4 0x27D59 +0x8EAFBFC5 0x27D5A +0x8EAFBFC7 0x27EC4 +0x8EAFBFC8 0x27EC5 +0x8EAFBFC9 0x27EC6 +0x8EAFBFCA 0x27EC7 +0x8EAFBFCB 0x27EC8 +0x8EAFBFCC 0x27EC9 +0x8EAFBFCD 0x27EEE +0x8EAFBFCE 0x27ECF +0x8EAFBFCF 0x27ECA +0x8EAFBFD0 0x27ECB +0x8EAFBFD1 0x27ECC +0x8EAFBFD2 0x28009 +0x8EAFBFD3 0x2F9DA +0x8EAFBFD4 0x28003 +0x8EAFBFD5 0x2822F +0x8EAFBFD6 0x28230 +0x8EAFBFD7 0x28231 +0x8EAFBFD8 0x28232 +0x8EAFBFD9 0x2850E +0x8EAFBFDA 0x2850F +0x8EAFBFDB 0x28510 +0x8EAFBFDC 0x28511 +0x8EAFBFDD 0x28512 +0x8EAFBFDF 0x28513 +0x8EAFBFE0 0x28514 +0x8EAFBFE1 0x28515 +0x8EAFBFE2 0x284FF +0x8EAFBFE3 0x2871F +0x8EAFBFE4 0x28720 +0x8EAFBFE5 0x28721 +0x8EAFBFE6 0x2872D +0x8EAFBFE8 0x2881B +0x8EAFBFE9 0x2881C +0x8EAFBFEA 0x2881D +0x8EAFBFEB 0x2881E +0x8EAFBFEC 0x28953 +0x8EAFBFED 0x28954 +0x8EAFBFEE 0x28955 +0x8EAFBFEF 0x28956 +0x8EAFBFF0 0x28964 +0x8EAFBFF1 0x28959 +0x8EAFBFF2 0x28957 +0x8EAFBFF4 0x28958 +0x8EAFBFF5 0x28C6B +0x8EAFBFF6 0x4989 +0x8EAFBFF8 0x28CE7 +0x8EAFBFF9 0x28CE8 +0x8EAFBFFA 0x28CE9 +0x8EAFBFFB 0x28CEA +0x8EAFBFFC 0x28CEB +0x8EAFBFFD 0x28CEC +0x8EAFBFFE 0x9596 +0x8EAFC0A1 0x28CED +0x8EAFC0A2 0x28EB1 +0x8EAFC0A3 0x28EB4 +0x8EAFC0A5 0x2908A +0x8EAFC0A6 0x2908D +0x8EAFC0A7 0x2908C +0x8EAFC0A8 0x291F2 +0x8EAFC0A9 0x291F3 +0x8EAFC0AB 0x22108 +0x8EAFC0AC 0x29417 +0x8EAFC0AD 0x4AB2 +0x8EAFC0AE 0x2959F +0x8EAFC0AF 0x296A0 +0x8EAFC0B1 0x2986D +0x8EAFC0B2 0x2307D +0x8EAFC0B3 0x29F90 +0x8EAFC0B4 0x2A5C4 +0x8EAFC0B5 0x2004C +0x8EAFC0B6 0x20174 +0x8EAFC0B7 0x20175 +0x8EAFC0B8 0x20176 +0x8EAFC0B9 0x20349 +0x8EAFC0BA 0x2034A +0x8EAFC0BB 0x2034B +0x8EAFC0BC 0x2034C +0x8EAFC0BD 0x2034D +0x8EAFC0BE 0x2034E +0x8EAFC0BF 0x2034F +0x8EAFC0C0 0x20350 +0x8EAFC0C1 0x20351 +0x8EAFC0C2 0x20352 +0x8EAFC0C3 0x20353 +0x8EAFC0C4 0x20354 +0x8EAFC0C5 0x20355 +0x8EAFC0C6 0x20356 +0x8EAFC0C7 0x204A4 +0x8EAFC0C8 0x204A9 +0x8EAFC0C9 0x2052A +0x8EAFC0CA 0x2052B +0x8EAFC0CB 0x207B3 +0x8EAFC0CC 0x207C1 +0x8EAFC0CD 0x20898 +0x8EAFC0CE 0x208FB +0x8EAFC0CF 0x208FC +0x8EAFC0D0 0x209BC +0x8EAFC0D1 0x20A96 +0x8EAFC0D2 0x20B0A +0x8EAFC0D4 0x20EA2 +0x8EAFC0D6 0x20E81 +0x8EAFC0D7 0x20E82 +0x8EAFC0D8 0x20E83 +0x8EAFC0D9 0x20E84 +0x8EAFC0DA 0x20E85 +0x8EAFC0DB 0x20E86 +0x8EAFC0DC 0x20E87 +0x8EAFC0DD 0x20E88 +0x8EAFC0DE 0x20E89 +0x8EAFC0DF 0x20E8A +0x8EAFC0E0 0x20E8B +0x8EAFC0E1 0x20E8C +0x8EAFC0E2 0x55F1 +0x8EAFC0E3 0x20E8D +0x8EAFC0E4 0x20ED1 +0x8EAFC0E5 0x21214 +0x8EAFC0E6 0x213C9 +0x8EAFC0E7 0x213CA +0x8EAFC0E8 0x213CB +0x8EAFC0E9 0x29AFD +0x8EAFC0EA 0x213CC +0x8EAFC0EB 0x213CD +0x8EAFC0EC 0x213CE +0x8EAFC0ED 0x213CF +0x8EAFC0EE 0x213D0 +0x8EAFC0EF 0x213D1 +0x8EAFC0F0 0x213D2 +0x8EAFC0F1 0x213D3 +0x8EAFC0F2 0x213D4 +0x8EAFC0F3 0x213D5 +0x8EAFC0F4 0x21571 +0x8EAFC0F5 0x2004D +0x8EAFC0F6 0x21662 +0x8EAFC0F7 0x2180E +0x8EAFC0F8 0x217FE +0x8EAFC0F9 0x217FF +0x8EAFC0FA 0x21800 +0x8EAFC0FC 0x21801 +0x8EAFC0FD 0x21802 +0x8EAFC0FE 0x21803 +0x8EAFC1A1 0x21815 +0x8EAFC1A2 0x21804 +0x8EAFC1A3 0x21805 +0x8EAFC1A5 0x21987 +0x8EAFC1A6 0x21989 +0x8EAFC1A7 0x21A6E +0x8EAFC1A8 0x21A6F +0x8EAFC1A9 0x21A70 +0x8EAFC1AA 0x21A71 +0x8EAFC1AB 0x2F86E +0x8EAFC1AC 0x21A72 +0x8EAFC1AD 0x21A73 +0x8EAFC1AE 0x21A74 +0x8EAFC1AF 0x21B9D +0x8EAFC1B0 0x21CB8 +0x8EAFC1B1 0x21CB9 +0x8EAFC1B2 0x21CBA +0x8EAFC1B3 0x21EC2 +0x8EAFC1B4 0x21EC3 +0x8EAFC1B5 0x21ED5 +0x8EAFC1B6 0x21EC4 +0x8EAFC1B7 0x21EC0 +0x8EAFC1B8 0x21EC5 +0x8EAFC1B9 0x21EC6 +0x8EAFC1BA 0x2228A +0x8EAFC1BB 0x2228B +0x8EAFC1BC 0x2228C +0x8EAFC1BD 0x22364 +0x8EAFC1BE 0x25B8C +0x8EAFC1BF 0x5F41 +0x8EAFC1C0 0x2240D +0x8EAFC1C1 0x224A8 +0x8EAFC1C2 0x2253B +0x8EAFC1C3 0x2253C +0x8EAFC1C4 0x2253D +0x8EAFC1C5 0x2253E +0x8EAFC1C6 0x2253F +0x8EAFC1C7 0x22540 +0x8EAFC1C8 0x22766 +0x8EAFC1C9 0x227CB +0x8EAFC1CA 0x227B7 +0x8EAFC1CB 0x227B8 +0x8EAFC1CC 0x227B9 +0x8EAFC1CD 0x227BA +0x8EAFC1CE 0x22767 +0x8EAFC1CF 0x227BB +0x8EAFC1D0 0x22768 +0x8EAFC1D1 0x22769 +0x8EAFC1D2 0x2276A +0x8EAFC1D3 0x227BC +0x8EAFC1D5 0x229DB +0x8EAFC1D6 0x22C81 +0x8EAFC1D7 0x22C82 +0x8EAFC1D8 0x22C83 +0x8EAFC1D9 0x22C84 +0x8EAFC1DA 0x22C85 +0x8EAFC1DB 0x22C86 +0x8EAFC1DC 0x22C87 +0x8EAFC1DD 0x22C88 +0x8EAFC1DE 0x22C89 +0x8EAFC1DF 0x2F8BF +0x8EAFC1E0 0x22C8A +0x8EAFC1E1 0x22C8B +0x8EAFC1E3 0x22C8C +0x8EAFC1E4 0x22C8D +0x8EAFC1E5 0x22C8E +0x8EAFC1E6 0x22C8F +0x8EAFC1E7 0x22C90 +0x8EAFC1E8 0x22CA1 +0x8EAFC1E9 0x22C91 +0x8EAFC1EA 0x22ED6 +0x8EAFC1EB 0x22F9F +0x8EAFC1EC 0x23058 +0x8EAFC1ED 0x23085 +0x8EAFC1EE 0x2310B +0x8EAFC1EF 0x2310C +0x8EAFC1F0 0x23237 +0x8EAFC1F1 0x23238 +0x8EAFC1F2 0x2F8CE +0x8EAFC1F3 0x23239 +0x8EAFC1F4 0x2323A +0x8EAFC1F5 0x2323B +0x8EAFC1F6 0x2323C +0x8EAFC1F7 0x2323D +0x8EAFC1F8 0x2323E +0x8EAFC1F9 0x23240 +0x8EAFC1FA 0x23241 +0x8EAFC1FB 0x23242 +0x8EAFC1FD 0x23243 +0x8EAFC1FE 0x2338A +0x8EAFC2A1 0x2338B +0x8EAFC2A2 0x23590 +0x8EAFC2A3 0x23559 +0x8EAFC2A4 0x2355B +0x8EAFC2A5 0x2355C +0x8EAFC2A6 0x2355D +0x8EAFC2A7 0x2355E +0x8EAFC2A8 0x698A +0x8EAFC2A9 0x2355F +0x8EAFC2AA 0x23560 +0x8EAFC2AB 0x23561 +0x8EAFC2AC 0x23562 +0x8EAFC2AD 0x23563 +0x8EAFC2AE 0x23564 +0x8EAFC2AF 0x23593 +0x8EAFC2B0 0x23565 +0x8EAFC2B1 0x23566 +0x8EAFC2B2 0x23567 +0x8EAFC2B3 0x23568 +0x8EAFC2B4 0x23569 +0x8EAFC2B5 0x2356A +0x8EAFC2B6 0x2356B +0x8EAFC2B7 0x23595 +0x8EAFC2B8 0x2356C +0x8EAFC2B9 0x2356D +0x8EAFC2BA 0x2356E +0x8EAFC2BB 0x2356F +0x8EAFC2BC 0x698C +0x8EAFC2BD 0x23570 +0x8EAFC2BE 0x23571 +0x8EAFC2BF 0x23572 +0x8EAFC2C0 0x23573 +0x8EAFC2C1 0x23574 +0x8EAFC2C2 0x23575 +0x8EAFC2C3 0x23576 +0x8EAFC2C4 0x23577 +0x8EAFC2C5 0x23578 +0x8EAFC2C6 0x23579 +0x8EAFC2C7 0x6980 +0x8EAFC2C8 0x2357A +0x8EAFC2C9 0x697F +0x8EAFC2CA 0x2357B +0x8EAFC2CB 0x235A9 +0x8EAFC2CC 0x2357C +0x8EAFC2CD 0x238F1 +0x8EAFC2CE 0x238EB +0x8EAFC2CF 0x2398A +0x8EAFC2D0 0x23A3D +0x8EAFC2D1 0x23AA6 +0x8EAFC2D2 0x23AA7 +0x8EAFC2D3 0x23BBA +0x8EAFC2D5 0x23BBB +0x8EAFC2D6 0x23BBC +0x8EAFC2D7 0x23BBD +0x8EAFC2D8 0x23E91 +0x8EAFC2D9 0x23E92 +0x8EAFC2DA 0x23E93 +0x8EAFC2DB 0x23E94 +0x8EAFC2DC 0x23E95 +0x8EAFC2DD 0x23E96 +0x8EAFC2DE 0x23E97 +0x8EAFC2DF 0x23DDA +0x8EAFC2E0 0x23E98 +0x8EAFC2E1 0x23E99 +0x8EAFC2E2 0x23E9A +0x8EAFC2E5 0x23E9B +0x8EAFC2E6 0x23E9C +0x8EAFC2E7 0x23E9D +0x8EAFC2E8 0x23E9E +0x8EAFC2E9 0x23E9F +0x8EAFC2EA 0x23EA0 +0x8EAFC2EB 0x23EBF +0x8EAFC2EC 0x23EA1 +0x8EAFC2ED 0x23EA2 +0x8EAFC2EE 0x23EA3 +0x8EAFC2EF 0x23EA4 +0x8EAFC2F0 0x23EA5 +0x8EAFC2F1 0x23EA6 +0x8EAFC2F2 0x23EA7 +0x8EAFC2F3 0x23E5B +0x8EAFC2F4 0x2F90D +0x8EAFC2F5 0x23EA8 +0x8EAFC2F6 0x242CB +0x8EAFC2F8 0x3DDA +0x8EAFC2F9 0x242CC +0x8EAFC2FA 0x2434F +0x8EAFC2FB 0x242CD +0x8EAFC2FC 0x242CE +0x8EAFC2FD 0x242CF +0x8EAFC2FE 0x2434E +0x8EAFC3A1 0x242D0 +0x8EAFC3A2 0x242D1 +0x8EAFC3A3 0x242D2 +0x8EAFC3A5 0x242D3 +0x8EAFC3A6 0x242D4 +0x8EAFC3A7 0x242D5 +0x8EAFC3A8 0x242D6 +0x8EAFC3A9 0x242D7 +0x8EAFC3AA 0x242D8 +0x8EAFC3AB 0x242D9 +0x8EAFC3AC 0x242FA +0x8EAFC3AD 0x242DA +0x8EAFC3AE 0x242DB +0x8EAFC3AF 0x2F91C +0x8EAFC3B0 0x242DC +0x8EAFC3B3 0x242DD +0x8EAFC3B4 0x242DE +0x8EAFC3B5 0x242DF +0x8EAFC3B6 0x242E0 +0x8EAFC3B7 0x242E1 +0x8EAFC3B8 0x242E2 +0x8EAFC3B9 0x242E3 +0x8EAFC3BA 0x242E4 +0x8EAFC3BB 0x242E5 +0x8EAFC3BC 0x3DDB +0x8EAFC3BD 0x242E6 +0x8EAFC3BE 0x242E7 +0x8EAFC3BF 0x2458E +0x8EAFC3C0 0x24698 +0x8EAFC3C1 0x24699 +0x8EAFC3C3 0x2480A +0x8EAFC3C5 0x24826 +0x8EAFC3C6 0x24827 +0x8EAFC3C7 0x249BD +0x8EAFC3C8 0x249DF +0x8EAFC3C9 0x3EE2 +0x8EAFC3CA 0x249BE +0x8EAFC3CB 0x249DE +0x8EAFC3CC 0x249BF +0x8EAFC3CD 0x249C0 +0x8EAFC3CE 0x249C1 +0x8EAFC3CF 0x249C2 +0x8EAFC3D0 0x2499F +0x8EAFC3D1 0x249C3 +0x8EAFC3D2 0x249C4 +0x8EAFC3D3 0x249C5 +0x8EAFC3D4 0x249C6 +0x8EAFC3D5 0x249C7 +0x8EAFC3D6 0x3EE3 +0x8EAFC3D7 0x249C8 +0x8EAFC3D8 0x249C9 +0x8EAFC3D9 0x249E3 +0x8EAFC3DA 0x249CA +0x8EAFC3DB 0x249CB +0x8EAFC3DC 0x249CC +0x8EAFC3DD 0x249CD +0x8EAFC3DE 0x249CE +0x8EAFC3DF 0x249CF +0x8EAFC3E0 0x249D0 +0x8EAFC3E1 0x249D1 +0x8EAFC3E2 0x249D2 +0x8EAFC3E3 0x249D3 +0x8EAFC3E4 0x2F92F +0x8EAFC3E5 0x249D4 +0x8EAFC3E6 0x24B04 +0x8EAFC3E7 0x24B65 +0x8EAFC3E8 0x24BEE +0x8EAFC3E9 0x24CA0 +0x8EAFC3EA 0x24CA1 +0x8EAFC3EB 0x24DDD +0x8EAFC3EC 0x24DDE +0x8EAFC3ED 0x24F83 +0x8EAFC3EE 0x24FFA +0x8EAFC3EF 0x2507F +0x8EAFC3F0 0x25080 +0x8EAFC3F1 0x251E8 +0x8EAFC3F2 0x251E9 +0x8EAFC3F3 0x251EA +0x8EAFC3F4 0x235A6 +0x8EAFC3F5 0x253E1 +0x8EAFC3F7 0x254DB +0x8EAFC3F8 0x254DC +0x8EAFC3F9 0x254DD +0x8EAFC3FA 0x254DE +0x8EAFC3FB 0x254DF +0x8EAFC3FC 0x254E0 +0x8EAFC3FD 0x254E1 +0x8EAFC3FE 0x254E2 +0x8EAFC4A1 0x254E3 +0x8EAFC4A2 0x254E4 +0x8EAFC4A3 0x254E5 +0x8EAFC4A4 0x254E6 +0x8EAFC4A5 0x789C +0x8EAFC4A6 0x254E7 +0x8EAFC4A7 0x256B0 +0x8EAFC4A8 0x25698 +0x8EAFC4A9 0x256B1 +0x8EAFC4AA 0x25699 +0x8EAFC4AB 0x256B2 +0x8EAFC4AC 0x256B3 +0x8EAFC4AD 0x256B4 +0x8EAFC4AE 0x256B5 +0x8EAFC4AF 0x256B6 +0x8EAFC4B0 0x256B7 +0x8EAFC4B1 0x256B8 +0x8EAFC4B2 0x256B9 +0x8EAFC4B3 0x257E2 +0x8EAFC4B4 0x257E3 +0x8EAFC4B5 0x257E4 +0x8EAFC4B6 0x257E5 +0x8EAFC4B7 0x257E6 +0x8EAFC4B8 0x257E7 +0x8EAFC4B9 0x257E8 +0x8EAFC4BA 0x257E9 +0x8EAFC4BB 0x259AD +0x8EAFC4BC 0x259CF +0x8EAFC4BD 0x259AE +0x8EAFC4BE 0x259AF +0x8EAFC4BF 0x259B0 +0x8EAFC4C0 0x259B1 +0x8EAFC4C1 0x25A92 +0x8EAFC4C2 0x25A93 +0x8EAFC4C3 0x25A94 +0x8EAFC4C4 0x25B79 +0x8EAFC4C5 0x7B7B +0x8EAFC4C6 0x25B7A +0x8EAFC4C7 0x25B7B +0x8EAFC4C8 0x25B7C +0x8EAFC4C9 0x25B7D +0x8EAFC4CA 0x25B7E +0x8EAFC4CB 0x25B7F +0x8EAFC4CC 0x25B80 +0x8EAFC4CD 0x25B81 +0x8EAFC4CE 0x25B82 +0x8EAFC4CF 0x25B83 +0x8EAFC4D0 0x25B84 +0x8EAFC4D1 0x25E97 +0x8EAFC4D2 0x25E84 +0x8EAFC4D3 0x25E85 +0x8EAFC4D4 0x25E89 +0x8EAFC4D5 0x25E86 +0x8EAFC4D6 0x25E87 +0x8EAFC4D7 0x2602C +0x8EAFC4D8 0x2602D +0x8EAFC4D9 0x2602E +0x8EAFC4DA 0x2602F +0x8EAFC4DB 0x26030 +0x8EAFC4DC 0x26031 +0x8EAFC4DD 0x26032 +0x8EAFC4DE 0x26033 +0x8EAFC4DF 0x26034 +0x8EAFC4E0 0x26035 +0x8EAFC4E1 0x26036 +0x8EAFC4E2 0x26037 +0x8EAFC4E3 0x262D2 +0x8EAFC4E4 0x26444 +0x8EAFC4E5 0x26500 +0x8EAFC4E6 0x26583 +0x8EAFC4E7 0x26584 +0x8EAFC4E8 0x2F986 +0x8EAFC4E9 0x2677A +0x8EAFC4EA 0x2677B +0x8EAFC4EB 0x2677C +0x8EAFC4EC 0x2677D +0x8EAFC4ED 0x2677E +0x8EAFC4EF 0x2677F +0x8EAFC4F0 0x26787 +0x8EAFC4F1 0x26780 +0x8EAFC4F2 0x26A43 +0x8EAFC4F3 0x26D34 +0x8EAFC4F4 0x4749 +0x8EAFC4F5 0x26D35 +0x8EAFC4F6 0x26D36 +0x8EAFC4F7 0x26D37 +0x8EAFC4F8 0x26D38 +0x8EAFC4F9 0x26D39 +0x8EAFC4FA 0x26D3A +0x8EAFC4FB 0x26D3B +0x8EAFC4FC 0x26D3C +0x8EAFC4FD 0x26D3D +0x8EAFC4FE 0x26D3E +0x8EAFC5A1 0x26D3F +0x8EAFC5A2 0x26D40 +0x8EAFC5A3 0x26D41 +0x8EAFC5A4 0x26D42 +0x8EAFC5A5 0x26D43 +0x8EAFC5A6 0x26D44 +0x8EAFC5A7 0x26D45 +0x8EAFC5A8 0x26D46 +0x8EAFC5A9 0x26D47 +0x8EAFC5AA 0x26D48 +0x8EAFC5AB 0x26D49 +0x8EAFC5AC 0x26D4A +0x8EAFC5AE 0x26D4B +0x8EAFC5AF 0x26D4C +0x8EAFC5B0 0x26D4D +0x8EAFC5B1 0x26D4E +0x8EAFC5B2 0x272E7 +0x8EAFC5B3 0x272E8 +0x8EAFC5B4 0x272E9 +0x8EAFC5B5 0x272EA +0x8EAFC5B6 0x272EB +0x8EAFC5B7 0x272EC +0x8EAFC5B8 0x272ED +0x8EAFC5B9 0x272EE +0x8EAFC5BA 0x275F7 +0x8EAFC5BB 0x2769A +0x8EAFC5BC 0x276CD +0x8EAFC5BD 0x2F9C8 +0x8EAFC5BE 0x276A3 +0x8EAFC5BF 0x276CE +0x8EAFC5C0 0x27831 +0x8EAFC5C1 0x27832 +0x8EAFC5C2 0x27833 +0x8EAFC5C3 0x279E4 +0x8EAFC5C5 0x279E5 +0x8EAFC5C6 0x279E6 +0x8EAFC5C7 0x27CC8 +0x8EAFC5C8 0x27D74 +0x8EAFC5C9 0x27D75 +0x8EAFC5CA 0x27D76 +0x8EAFC5CB 0x27D77 +0x8EAFC5CC 0x27D78 +0x8EAFC5CD 0x27D79 +0x8EAFC5CE 0x27D7A +0x8EAFC5CF 0x27E61 +0x8EAFC5D0 0x27EDF +0x8EAFC5D1 0x27EE0 +0x8EAFC5D2 0x27EE1 +0x8EAFC5D3 0x27EE2 +0x8EAFC5D4 0x27EE3 +0x8EAFC5D5 0x27EE4 +0x8EAFC5D6 0x27EE5 +0x8EAFC5D7 0x27EE6 +0x8EAFC5D8 0x47F3 +0x8EAFC5D9 0x28031 +0x8EAFC5DA 0x2823D +0x8EAFC5DB 0x2823E +0x8EAFC5DC 0x2823F +0x8EAFC5DD 0x282F4 +0x8EAFC5DE 0x282F5 +0x8EAFC5DF 0x282F6 +0x8EAFC5E1 0x28417 +0x8EAFC5E2 0x28541 +0x8EAFC5E3 0x28542 +0x8EAFC5E4 0x28543 +0x8EAFC5E5 0x28544 +0x8EAFC5E6 0x28545 +0x8EAFC5E7 0x28546 +0x8EAFC5E8 0x28547 +0x8EAFC5E9 0x28548 +0x8EAFC5EA 0x28549 +0x8EAFC5EB 0x2854A +0x8EAFC5EC 0x2854B +0x8EAFC5ED 0x90D2 +0x8EAFC5EE 0x286BA +0x8EAFC5EF 0x28744 +0x8EAFC5F0 0x2892A +0x8EAFC5F1 0x2896D +0x8EAFC5F2 0x9274 +0x8EAFC5F3 0x2F9E7 +0x8EAFC5F4 0x2897E +0x8EAFC5F5 0x2896E +0x8EAFC5F6 0x2896F +0x8EAFC5F7 0x28970 +0x8EAFC5F8 0x28971 +0x8EAFC5F9 0x28976 +0x8EAFC5FA 0x28C79 +0x8EAFC5FB 0x95A0 +0x8EAFC5FD 0x28D04 +0x8EAFC5FE 0x28CF8 +0x8EAFC6A1 0x28D05 +0x8EAFC6A2 0x28EDA +0x8EAFC6A3 0x28EDB +0x8EAFC6A4 0x28EDC +0x8EAFC6A5 0x28EDD +0x8EAFC6A6 0x28EDE +0x8EAFC6A7 0x28EDF +0x8EAFC6A8 0x28EE0 +0x8EAFC6A9 0x28EE1 +0x8EAFC6AA 0x290C5 +0x8EAFC6AB 0x2909A +0x8EAFC6AC 0x2909B +0x8EAFC6AD 0x2909C +0x8EAFC6AE 0x291D8 +0x8EAFC6AF 0x291D9 +0x8EAFC6B0 0x291DA +0x8EAFC6B1 0x2926E +0x8EAFC6B2 0x4A57 +0x8EAFC6B3 0x2946B +0x8EAFC6B4 0x27D83 +0x8EAFC6B6 0x296D6 +0x8EAFC6B7 0x296BD +0x8EAFC6B9 0x2322E +0x8EAFC6BA 0x29AFC +0x8EAFC6BB 0x29D53 +0x8EAFC6BC 0x29DB7 +0x8EAFC6BD 0x2A28C +0x8EAFC6BE 0x2A38E +0x8EAFC6BF 0x2A2FF +0x8EAFC6C0 0x20076 +0x8EAFC6C1 0x20106 +0x8EAFC6C2 0x2017E +0x8EAFC6C3 0x20384 +0x8EAFC6C4 0x20385 +0x8EAFC6C5 0x20386 +0x8EAFC6C6 0x20387 +0x8EAFC6C7 0x20388 +0x8EAFC6C8 0x203A7 +0x8EAFC6C9 0x20389 +0x8EAFC6CA 0x2038A +0x8EAFC6CB 0x2038B +0x8EAFC6CC 0x2038C +0x8EAFC6CD 0x2038D +0x8EAFC6CE 0x2038E +0x8EAFC6CF 0x2038F +0x8EAFC6D0 0x203A3 +0x8EAFC6D1 0x20390 +0x8EAFC6D2 0x20391 +0x8EAFC6D3 0x20392 +0x8EAFC6D4 0x20393 +0x8EAFC6D5 0x203AC +0x8EAFC6D6 0x20394 +0x8EAFC6D7 0x20395 +0x8EAFC6D8 0x20396 +0x8EAFC6D9 0x204AA +0x8EAFC6DA 0x204AB +0x8EAFC6DB 0x2059E +0x8EAFC6DC 0x51A9 +0x8EAFC6DD 0x20608 +0x8EAFC6DE 0x20609 +0x8EAFC6DF 0x20668 +0x8EAFC6E0 0x20669 +0x8EAFC6E1 0x2066A +0x8EAFC6E2 0x2069A +0x8EAFC6E3 0x207D9 +0x8EAFC6E4 0x207DA +0x8EAFC6E5 0x207DB +0x8EAFC6E6 0x208A8 +0x8EAFC6E7 0x20901 +0x8EAFC6E8 0x20928 +0x8EAFC6E9 0x20977 +0x8EAFC6EA 0x209BD +0x8EAFC6EB 0x209BE +0x8EAFC6EC 0x20F60 +0x8EAFC6ED 0x20AA0 +0x8EAFC6EE 0x20AA2 +0x8EAFC6EF 0x20B0F +0x8EAFC6F0 0x20B85 +0x8EAFC6F1 0x20EFE +0x8EAFC6F2 0x20EFF +0x8EAFC6F3 0x20F00 +0x8EAFC6F4 0x20F01 +0x8EAFC6F5 0x20F16 +0x8EAFC6F6 0x20F02 +0x8EAFC6F7 0x20F03 +0x8EAFC6F8 0x20F04 +0x8EAFC6F9 0x20F05 +0x8EAFC6FA 0x20F06 +0x8EAFC6FB 0x20F07 +0x8EAFC6FC 0x20F08 +0x8EAFC6FD 0x20F22 +0x8EAFC6FE 0x20F09 +0x8EAFC7A1 0x20F0A +0x8EAFC7A2 0x20F0B +0x8EAFC7A3 0x20F0C +0x8EAFC7A4 0x20F14 +0x8EAFC7A5 0x20F29 +0x8EAFC7A6 0x20E6E +0x8EAFC7A7 0x20F0D +0x8EAFC7A8 0x20F0E +0x8EAFC7A9 0x20F0F +0x8EAFC7AA 0x20F10 +0x8EAFC7AB 0x20F11 +0x8EAFC7AC 0x20F12 +0x8EAFC7AD 0x20F13 +0x8EAFC7AE 0x2121B +0x8EAFC7AF 0x2121C +0x8EAFC7B0 0x2121D +0x8EAFC7B1 0x21413 +0x8EAFC7B2 0x213FF +0x8EAFC7B3 0x21400 +0x8EAFC7B4 0x21401 +0x8EAFC7B5 0x21402 +0x8EAFC7B6 0x21403 +0x8EAFC7B7 0x21404 +0x8EAFC7B8 0x2140A +0x8EAFC7B9 0x21405 +0x8EAFC7BA 0x21406 +0x8EAFC7BB 0x21407 +0x8EAFC7BC 0x21408 +0x8EAFC7BD 0x2153A +0x8EAFC7BE 0x21573 +0x8EAFC7BF 0x2166F +0x8EAFC7C0 0x21670 +0x8EAFC7C1 0x21671 +0x8EAFC7C2 0x20052 +0x8EAFC7C4 0x21A9A +0x8EAFC7C5 0x21860 +0x8EAFC7C6 0x2F869 +0x8EAFC7C7 0x2182B +0x8EAFC7C8 0x21824 +0x8EAFC7C9 0x2182C +0x8EAFC7CA 0x2182D +0x8EAFC7CB 0x2182E +0x8EAFC7CC 0x2182F +0x8EAFC7CD 0x21830 +0x8EAFC7CE 0x21831 +0x8EAFC7CF 0x21832 +0x8EAFC7D0 0x21833 +0x8EAFC7D1 0x21834 +0x8EAFC7D2 0x21835 +0x8EAFC7D3 0x21845 +0x8EAFC7D4 0x21836 +0x8EAFC7D5 0x21992 +0x8EAFC7D6 0x21993 +0x8EAFC7D7 0x21A88 +0x8EAFC7D8 0x21A89 +0x8EAFC7D9 0x21A8A +0x8EAFC7DA 0x21A8B +0x8EAFC7DB 0x21B3F +0x8EAFC7DD 0x21CCA +0x8EAFC7DE 0x21EF6 +0x8EAFC7DF 0x21EF7 +0x8EAFC7E0 0x21EF8 +0x8EAFC7E1 0x21EF9 +0x8EAFC7E2 0x2212B +0x8EAFC7E4 0x221A4 +0x8EAFC7E5 0x221CE +0x8EAFC7E7 0x2229E +0x8EAFC7E8 0x2229F +0x8EAFC7E9 0x222A0 +0x8EAFC7EA 0x222A1 +0x8EAFC7EB 0x222A2 +0x8EAFC7EC 0x222A3 +0x8EAFC7ED 0x222A4 +0x8EAFC7EE 0x222A5 +0x8EAFC7EF 0x222A6 +0x8EAFC7F0 0x22418 +0x8EAFC7F1 0x22560 +0x8EAFC7F2 0x22561 +0x8EAFC7F3 0x22562 +0x8EAFC7F4 0x22563 +0x8EAFC7F5 0x22564 +0x8EAFC7F6 0x227BD +0x8EAFC7F7 0x227BE +0x8EAFC7F8 0x2280B +0x8EAFC7F9 0x227BF +0x8EAFC7FA 0x227C0 +0x8EAFC7FC 0x2280C +0x8EAFC7FD 0x2278D +0x8EAFC7FE 0x2280D +0x8EAFC8A1 0x2280E +0x8EAFC8A2 0x2285E +0x8EAFC8A3 0x2280F +0x8EAFC8A4 0x22810 +0x8EAFC8A5 0x227C1 +0x8EAFC8A6 0x22811 +0x8EAFC8A8 0x227C2 +0x8EAFC8A9 0x229EA +0x8EAFC8AA 0x229EB +0x8EAFC8AB 0x22CE3 +0x8EAFC8AC 0x22CE4 +0x8EAFC8AD 0x22CE5 +0x8EAFC8AE 0x22CE6 +0x8EAFC8AF 0x22CE7 +0x8EAFC8B0 0x22C92 +0x8EAFC8B1 0x22D4A +0x8EAFC8B3 0x22CE8 +0x8EAFC8B4 0x22CE9 +0x8EAFC8B5 0x22CEA +0x8EAFC8B6 0x22D01 +0x8EAFC8B7 0x22CEB +0x8EAFC8B8 0x22CEC +0x8EAFC8B9 0x22CEF +0x8EAFC8BA 0x22CED +0x8EAFC8BB 0x22CEE +0x8EAFC8BC 0x22CF0 +0x8EAFC8BD 0x22CF1 +0x8EAFC8BE 0x22CF2 +0x8EAFC8BF 0x22CF3 +0x8EAFC8C0 0x22CF4 +0x8EAFC8C1 0x22CF5 +0x8EAFC8C2 0x22CF6 +0x8EAFC8C3 0x22CF7 +0x8EAFC8C4 0x22CF8 +0x8EAFC8C5 0x22CF9 +0x8EAFC8C6 0x22CFE +0x8EAFC8C7 0x22CFA +0x8EAFC8C8 0x22CFB +0x8EAFC8C9 0x22CFC +0x8EAFC8CA 0x23263 +0x8EAFC8CB 0x23264 +0x8EAFC8CC 0x23265 +0x8EAFC8CD 0x23266 +0x8EAFC8CE 0x23267 +0x8EAFC8CF 0x23268 +0x8EAFC8D0 0x2360B +0x8EAFC8D1 0x2360D +0x8EAFC8D2 0x3BBC +0x8EAFC8D3 0x2360E +0x8EAFC8D4 0x2360F +0x8EAFC8D5 0x3BA4 +0x8EAFC8D6 0x23614 +0x8EAFC8D7 0x235D4 +0x8EAFC8D8 0x235D5 +0x8EAFC8D9 0x235D6 +0x8EAFC8DA 0x235D7 +0x8EAFC8DB 0x235D8 +0x8EAFC8DC 0x235D9 +0x8EAFC8DD 0x235DA +0x8EAFC8DE 0x235DB +0x8EAFC8DF 0x235DC +0x8EAFC8E0 0x235DD +0x8EAFC8E1 0x235DE +0x8EAFC8E2 0x235DF +0x8EAFC8E3 0x235E0 +0x8EAFC8E4 0x235E1 +0x8EAFC8E5 0x235E2 +0x8EAFC8E6 0x235E3 +0x8EAFC8E7 0x235E4 +0x8EAFC8E8 0x235E5 +0x8EAFC8E9 0x235E6 +0x8EAFC8EA 0x235E7 +0x8EAFC8EB 0x235E8 +0x8EAFC8EC 0x235E9 +0x8EAFC8ED 0x235EA +0x8EAFC8EE 0x235EB +0x8EAFC8EF 0x235EC +0x8EAFC8F0 0x236EC +0x8EAFC8F1 0x235ED +0x8EAFC8F2 0x235EE +0x8EAFC8F3 0x235EF +0x8EAFC8F4 0x23600 +0x8EAFC8F5 0x235F0 +0x8EAFC8F6 0x23904 +0x8EAFC8F8 0x23905 +0x8EAFC8F9 0x2F8F3 +0x8EAFC8FA 0x23AB5 +0x8EAFC8FB 0x2F8F9 +0x8EAFC8FC 0x23BD6 +0x8EAFC8FD 0x23BD7 +0x8EAFC8FE 0x23BD8 +0x8EAFC9A1 0x23BD9 +0x8EAFC9A2 0x23EA9 +0x8EAFC9A3 0x23F00 +0x8EAFC9A4 0x23F01 +0x8EAFC9A5 0x23F02 +0x8EAFC9A6 0x23F03 +0x8EAFC9A7 0x23F04 +0x8EAFC9A8 0x23F05 +0x8EAFC9A9 0x23F06 +0x8EAFC9AA 0x23F3F +0x8EAFC9AB 0x23F07 +0x8EAFC9AC 0x23F08 +0x8EAFC9AD 0x23F09 +0x8EAFC9AE 0x23F0A +0x8EAFC9AF 0x23EB6 +0x8EAFC9B0 0x23F0B +0x8EAFC9B1 0x23F0C +0x8EAFC9B4 0x23F0D +0x8EAFC9B6 0x23F0E +0x8EAFC9B7 0x23F0F +0x8EAFC9B8 0x23F10 +0x8EAFC9B9 0x23F11 +0x8EAFC9BA 0x23F12 +0x8EAFC9BB 0x23F35 +0x8EAFC9BC 0x23F13 +0x8EAFC9BD 0x23F14 +0x8EAFC9BE 0x23EAA +0x8EAFC9C0 0x23FC1 +0x8EAFC9C1 0x23F15 +0x8EAFC9C2 0x23F16 +0x8EAFC9C3 0x23F17 +0x8EAFC9C4 0x2431E +0x8EAFC9C5 0x2431F +0x8EAFC9C6 0x24320 +0x8EAFC9C7 0x24321 +0x8EAFC9C9 0x24322 +0x8EAFC9CA 0x24323 +0x8EAFC9CB 0x7195 +0x8EAFC9CC 0x24324 +0x8EAFC9CD 0x24325 +0x8EAFC9CE 0x24326 +0x8EAFC9CF 0x24327 +0x8EAFC9D0 0x24328 +0x8EAFC9D1 0x24329 +0x8EAFC9D2 0x2432A +0x8EAFC9D3 0x2432B +0x8EAFC9D4 0x24307 +0x8EAFC9D5 0x2432C +0x8EAFC9D6 0x2432D +0x8EAFC9D7 0x2432E +0x8EAFC9D8 0x3DE8 +0x8EAFC9DA 0x2432F +0x8EAFC9DB 0x24330 +0x8EAFC9DC 0x24348 +0x8EAFC9DD 0x24331 +0x8EAFC9DE 0x24332 +0x8EAFC9DF 0x7198 +0x8EAFC9E0 0x24333 +0x8EAFC9E2 0x24334 +0x8EAFC9E3 0x24335 +0x8EAFC9E4 0x24336 +0x8EAFC9E5 0x24559 +0x8EAFC9E6 0x24591 +0x8EAFC9E7 0x245E7 +0x8EAFC9E8 0x246B8 +0x8EAFC9E9 0x246B9 +0x8EAFC9EA 0x246BA +0x8EAFC9EB 0x246BB +0x8EAFC9EC 0x246C8 +0x8EAFC9ED 0x2484D +0x8EAFC9EE 0x24889 +0x8EAFC9EF 0x24850 +0x8EAFC9F0 0x24828 +0x8EAFC9F1 0x249FB +0x8EAFC9F2 0x249FC +0x8EAFC9F3 0x249FD +0x8EAFC9F4 0x249FE +0x8EAFC9F5 0x249FF +0x8EAFC9F6 0x7478 +0x8EAFC9F7 0x24A00 +0x8EAFC9F8 0x24A01 +0x8EAFC9F9 0x24A02 +0x8EAFC9FA 0x249E4 +0x8EAFC9FB 0x249E5 +0x8EAFC9FC 0x24A03 +0x8EAFC9FD 0x24A04 +0x8EAFC9FE 0x24A05 +0x8EAFCAA1 0x24A06 +0x8EAFCAA2 0x24A07 +0x8EAFCAA3 0x24A13 +0x8EAFCAA4 0x24A08 +0x8EAFCAA5 0x24A09 +0x8EAFCAA6 0x249E6 +0x8EAFCAA7 0x24A0A +0x8EAFCAA8 0x24A0B +0x8EAFCAA9 0x24A0C +0x8EAFCAAA 0x24B0B +0x8EAFCAAB 0x24BF4 +0x8EAFCAAC 0x24C0A +0x8EAFCAAD 0x24CB1 +0x8EAFCAAE 0x24E1D +0x8EAFCAAF 0x2F93B +0x8EAFCAB0 0x24F8B +0x8EAFCAB1 0x24F8C +0x8EAFCAB2 0x24F8F +0x8EAFCAB3 0x24F8D +0x8EAFCAB4 0x24F8E +0x8EAFCAB5 0x25006 +0x8EAFCAB6 0x25086 +0x8EAFCAB7 0x25222 +0x8EAFCAB8 0x25223 +0x8EAFCAB9 0x25224 +0x8EAFCABA 0x25225 +0x8EAFCABB 0x25226 +0x8EAFCABC 0x25227 +0x8EAFCABD 0x25228 +0x8EAFCABE 0x253F1 +0x8EAFCABF 0x78B9 +0x8EAFCAC0 0x25523 +0x8EAFCAC1 0x25512 +0x8EAFCAC3 0x25513 +0x8EAFCAC4 0x25514 +0x8EAFCAC5 0x25515 +0x8EAFCAC6 0x25516 +0x8EAFCAC7 0x25517 +0x8EAFCAC8 0x25518 +0x8EAFCAC9 0x25519 +0x8EAFCACA 0x2554B +0x8EAFCACB 0x2551A +0x8EAFCACC 0x2551B +0x8EAFCACD 0x2551C +0x8EAFCACF 0x2551D +0x8EAFCAD0 0x2551E +0x8EAFCAD1 0x2551F +0x8EAFCAD2 0x25520 +0x8EAFCAD3 0x256CA +0x8EAFCAD4 0x222AC +0x8EAFCAD5 0x256CB +0x8EAFCAD6 0x256CC +0x8EAFCAD7 0x256CD +0x8EAFCAD8 0x256CE +0x8EAFCADA 0x256CF +0x8EAFCADB 0x25810 +0x8EAFCADC 0x25811 +0x8EAFCADD 0x25812 +0x8EAFCADE 0x25813 +0x8EAFCADF 0x25814 +0x8EAFCAE0 0x2580F +0x8EAFCAE1 0x25815 +0x8EAFCAE2 0x25816 +0x8EAFCAE3 0x25817 +0x8EAFCAE4 0x7A33 +0x8EAFCAE5 0x25818 +0x8EAFCAE6 0x259C6 +0x8EAFCAE7 0x25A9F +0x8EAFCAE8 0x25AA0 +0x8EAFCAE9 0x25AA4 +0x8EAFCAEA 0x25AA1 +0x8EAFCAEB 0x25BB5 +0x8EAFCAEC 0x25BB6 +0x8EAFCAED 0x25BB7 +0x8EAFCAEE 0x25BB8 +0x8EAFCAEF 0x25BB9 +0x8EAFCAF0 0x25BBA +0x8EAFCAF1 0x25BD0 +0x8EAFCAF2 0x25BC6 +0x8EAFCAF3 0x25BBB +0x8EAFCAF4 0x25BBC +0x8EAFCAF5 0x25BBD +0x8EAFCAF6 0x25BBE +0x8EAFCAF7 0x25BBF +0x8EAFCAF8 0x25BC0 +0x8EAFCAF9 0x25BC1 +0x8EAFCAFA 0x25BC2 +0x8EAFCAFB 0x2F960 +0x8EAFCAFC 0x25EA7 +0x8EAFCAFD 0x25EA8 +0x8EAFCAFE 0x25EA9 +0x8EAFCBA1 0x25EAA +0x8EAFCBA2 0x25EAB +0x8EAFCBA3 0x25EAC +0x8EAFCBA4 0x25EBC +0x8EAFCBA5 0x25EAD +0x8EAFCBA6 0x25EAE +0x8EAFCBA7 0x7CC0 +0x8EAFCBA8 0x25EAF +0x8EAFCBA9 0x25EB0 +0x8EAFCBAA 0x25EB1 +0x8EAFCBAB 0x7CC1 +0x8EAFCBAC 0x25EB4 +0x8EAFCBAD 0x25EB2 +0x8EAFCBAE 0x26066 +0x8EAFCBAF 0x26067 +0x8EAFCBB0 0x26068 +0x8EAFCBB1 0x26069 +0x8EAFCBB2 0x2606A +0x8EAFCBB3 0x2606B +0x8EAFCBB4 0x2606C +0x8EAFCBB5 0x2606D +0x8EAFCBB6 0x2606E +0x8EAFCBB7 0x2606F +0x8EAFCBB9 0x2623E +0x8EAFCBBA 0x2623F +0x8EAFCBBB 0x26240 +0x8EAFCBBC 0x262E8 +0x8EAFCBBD 0x26452 +0x8EAFCBBE 0x26453 +0x8EAFCBBF 0x26454 +0x8EAFCBC0 0x26455 +0x8EAFCBC1 0x26591 +0x8EAFCBC2 0x26592 +0x8EAFCBC3 0x26593 +0x8EAFCBC4 0x26594 +0x8EAFCBC5 0x26595 +0x8EAFCBC6 0x26596 +0x8EAFCBC7 0x26597 +0x8EAFCBC8 0x26598 +0x8EAFCBCA 0x26599 +0x8EAFCBCB 0x2659A +0x8EAFCBCC 0x2659B +0x8EAFCBCD 0x267B7 +0x8EAFCBCE 0x267B8 +0x8EAFCBCF 0x267B9 +0x8EAFCBD1 0x267BA +0x8EAFCBD2 0x267BB +0x8EAFCBD3 0x267BD +0x8EAFCBD5 0x267BC +0x8EAFCBD6 0x2F988 +0x8EAFCBD7 0x2F987 +0x8EAFCBD8 0x268EB +0x8EAFCBD9 0x268EC +0x8EAFCBDA 0x26916 +0x8EAFCBDB 0x26944 +0x8EAFCBDC 0x269E3 +0x8EAFCBDD 0x26A58 +0x8EAFCBDE 0x26A53 +0x8EAFCBDF 0x26A54 +0x8EAFCBE0 0x26AE0 +0x8EAFCBE1 0x26DB1 +0x8EAFCBE2 0x26DB2 +0x8EAFCBE3 0x26DB3 +0x8EAFCBE4 0x26DEA +0x8EAFCBE6 0x26DB4 +0x8EAFCBE7 0x26DF0 +0x8EAFCBE8 0x26DB5 +0x8EAFCBE9 0x26DB6 +0x8EAFCBEA 0x26DB7 +0x8EAFCBEB 0x26DB8 +0x8EAFCBEC 0x26DB9 +0x8EAFCBED 0x26DBA +0x8EAFCBEE 0x26DBB +0x8EAFCBEF 0x26DBC +0x8EAFCBF0 0x26DBD +0x8EAFCBF1 0x26DBE +0x8EAFCBF2 0x26DBF +0x8EAFCBF3 0x26DC0 +0x8EAFCBF4 0x26DC1 +0x8EAFCBF5 0x26DC2 +0x8EAFCBF6 0x26DC3 +0x8EAFCBF8 0x26DC4 +0x8EAFCBF9 0x26DC5 +0x8EAFCBFA 0x26DC6 +0x8EAFCBFB 0x26DFC +0x8EAFCBFC 0x26DC7 +0x8EAFCBFD 0x26DC8 +0x8EAFCBFE 0x26DC9 +0x8EAFCCA1 0x26DCA +0x8EAFCCA2 0x26DCB +0x8EAFCCA3 0x26DCC +0x8EAFCCA4 0x26E84 +0x8EAFCCA5 0x26DCD +0x8EAFCCA6 0x26DCE +0x8EAFCCA7 0x26DCF +0x8EAFCCA8 0x26DD0 +0x8EAFCCA9 0x26DD1 +0x8EAFCCAA 0x26DD2 +0x8EAFCCAB 0x271CA +0x8EAFCCAC 0x271CB +0x8EAFCCAD 0x27336 +0x8EAFCCAE 0x27337 +0x8EAFCCAF 0x2739F +0x8EAFCCB0 0x27338 +0x8EAFCCB1 0x27339 +0x8EAFCCB2 0x2733A +0x8EAFCCB3 0x8744 +0x8EAFCCB4 0x276BE +0x8EAFCCB5 0x276F0 +0x8EAFCCB6 0x276BF +0x8EAFCCB7 0x276C0 +0x8EAFCCB8 0x277F7 +0x8EAFCCB9 0x277F8 +0x8EAFCCBA 0x277FA +0x8EAFCCBB 0x27843 +0x8EAFCCBC 0x27844 +0x8EAFCCBD 0x27A0F +0x8EAFCCBE 0x27A10 +0x8EAFCCBF 0x27A11 +0x8EAFCCC0 0x27A12 +0x8EAFCCC1 0x8AAD +0x8EAFCCC2 0x27A13 +0x8EAFCCC3 0x27A14 +0x8EAFCCC4 0x27A15 +0x8EAFCCC5 0x27A16 +0x8EAFCCC8 0x27CD3 +0x8EAFCCC9 0x27CD7 +0x8EAFCCCB 0x27DB0 +0x8EAFCCCC 0x27D98 +0x8EAFCCCD 0x27D90 +0x8EAFCCCE 0x27D91 +0x8EAFCCCF 0x27D92 +0x8EAFCCD0 0x27D97 +0x8EAFCCD1 0x27D93 +0x8EAFCCD2 0x27E64 +0x8EAFCCD3 0x27F01 +0x8EAFCCD4 0x27F02 +0x8EAFCCD5 0x27F03 +0x8EAFCCD6 0x27F04 +0x8EAFCCD7 0x27F05 +0x8EAFCCD8 0x27F06 +0x8EAFCCD9 0x27F07 +0x8EAFCCDA 0x2805A +0x8EAFCCDB 0x2805B +0x8EAFCCDC 0x2824E +0x8EAFCCDD 0x2824F +0x8EAFCCDE 0x28250 +0x8EAFCCDF 0x28319 +0x8EAFCCE0 0x2831A +0x8EAFCCE1 0x2831B +0x8EAFCCE3 0x2831C +0x8EAFCCE5 0x28419 +0x8EAFCCE6 0x2841A +0x8EAFCCE7 0x4886 +0x8EAFCCE8 0x2898A +0x8EAFCCE9 0x2856E +0x8EAFCCEA 0x2856F +0x8EAFCCEB 0x9064 +0x8EAFCCEC 0x28570 +0x8EAFCCED 0x28571 +0x8EAFCCEE 0x28572 +0x8EAFCCEF 0x28573 +0x8EAFCCF0 0x28574 +0x8EAFCCF1 0x28575 +0x8EAFCCF2 0x28576 +0x8EAFCCF3 0x2883A +0x8EAFCCF4 0x2883B +0x8EAFCCF5 0x2883C +0x8EAFCCF6 0x2885A +0x8EAFCCF7 0x2883D +0x8EAFCCF8 0x28842 +0x8EAFCCF9 0x2898B +0x8EAFCCFA 0x289A0 +0x8EAFCCFB 0x2898C +0x8EAFCCFC 0x2898D +0x8EAFCCFD 0x2898E +0x8EAFCCFE 0x289AB +0x8EAFCDA1 0x2898F +0x8EAFCDA2 0x9277 +0x8EAFCDA3 0x28990 +0x8EAFCDA4 0x28991 +0x8EAFCDA5 0x28992 +0x8EAFCDA6 0x289AA +0x8EAFCDA7 0x92AF +0x8EAFCDA8 0x28993 +0x8EAFCDA9 0x28994 +0x8EAFCDAA 0x2899E +0x8EAFCDAB 0x289A8 +0x8EAFCDAE 0x28F00 +0x8EAFCDAF 0x28F01 +0x8EAFCDB0 0x28F02 +0x8EAFCDB1 0x28F03 +0x8EAFCDB2 0x28F04 +0x8EAFCDB3 0x28F05 +0x8EAFCDB4 0x28FC4 +0x8EAFCDB5 0x28FC5 +0x8EAFCDB7 0x290AE +0x8EAFCDB8 0x290B2 +0x8EAFCDBB 0x291F7 +0x8EAFCDBC 0x29213 +0x8EAFCDBD 0x2939E +0x8EAFCDBE 0x29485 +0x8EAFCDBF 0x25380 +0x8EAFCDC0 0x294C8 +0x8EAFCDC1 0x29841 +0x8EAFCDC2 0x29881 +0x8EAFCDC3 0x29882 +0x8EAFCDC4 0x29883 +0x8EAFCDC5 0x29884 +0x8EAFCDC6 0x29AC4 +0x8EAFCDC7 0x29AC5 +0x8EAFCDC8 0x29AC6 +0x8EAFCDC9 0x29C95 +0x8EAFCDCA 0x29C96 +0x8EAFCDCB 0x29C97 +0x8EAFCDCC 0x29D58 +0x8EAFCDCD 0x29D59 +0x8EAFCDCF 0x29FA9 +0x8EAFCDD0 0x29FAA +0x8EAFCDD1 0x29FAB +0x8EAFCDD2 0x2A28E +0x8EAFCDD3 0x2A303 +0x8EAFCDD4 0x2A3B3 +0x8EAFCDD5 0x20B82 +0x8EAFCDD6 0x20053 +0x8EAFCDD7 0x20183 +0x8EAFCDD8 0x20184 +0x8EAFCDD9 0x20185 +0x8EAFCDDA 0x203CC +0x8EAFCDDB 0x203CD +0x8EAFCDDC 0x203CE +0x8EAFCDDD 0x203CF +0x8EAFCDDE 0x203D0 +0x8EAFCDE0 0x203D1 +0x8EAFCDE1 0x203D2 +0x8EAFCDE2 0x203DA +0x8EAFCDE3 0x204B3 +0x8EAFCDE4 0x204B4 +0x8EAFCDE6 0x20613 +0x8EAFCDE7 0x2060E +0x8EAFCDE8 0x2066B +0x8EAFCDE9 0x20903 +0x8EAFCDEA 0x20961 +0x8EAFCDEB 0x209C1 +0x8EAFCDEC 0x209C2 +0x8EAFCDED 0x20AB5 +0x8EAFCDEE 0x20140 +0x8EAFCDEF 0x20F98 +0x8EAFCDF0 0x20F99 +0x8EAFCDF1 0x20F9A +0x8EAFCDF2 0x20F9B +0x8EAFCDF3 0x20F9C +0x8EAFCDF4 0x20F9D +0x8EAFCDF5 0x20F9E +0x8EAFCDF6 0x20F9F +0x8EAFCDF7 0x20FEE +0x8EAFCDF8 0x20FA0 +0x8EAFCDF9 0x20FA1 +0x8EAFCDFA 0x20F86 +0x8EAFCDFB 0x21225 +0x8EAFCDFC 0x21434 +0x8EAFCDFD 0x21435 +0x8EAFCDFE 0x21451 +0x8EAFCEA1 0x2142D +0x8EAFCEA2 0x24362 +0x8EAFCEA3 0x21454 +0x8EAFCEA4 0x21452 +0x8EAFCEA5 0x366D +0x8EAFCEA6 0x21436 +0x8EAFCEA7 0x21437 +0x8EAFCEA8 0x21438 +0x8EAFCEA9 0x21439 +0x8EAFCEAA 0x2143A +0x8EAFCEAB 0x2143B +0x8EAFCEAC 0x21468 +0x8EAFCEAD 0x2143C +0x8EAFCEAE 0x366E +0x8EAFCEAF 0x21577 +0x8EAFCEB0 0x23296 +0x8EAFCEB1 0x2167E +0x8EAFCEB2 0x2167F +0x8EAFCEB3 0x21869 +0x8EAFCEB4 0x2186A +0x8EAFCEB5 0x2186B +0x8EAFCEB6 0x2186C +0x8EAFCEB7 0x2186D +0x8EAFCEB8 0x2186E +0x8EAFCEB9 0x2186F +0x8EAFCEBA 0x2185D +0x8EAFCEBB 0x21870 +0x8EAFCEBC 0x21885 +0x8EAFCEBD 0x21871 +0x8EAFCEBE 0x21872 +0x8EAFCEBF 0x21873 +0x8EAFCEC0 0x21874 +0x8EAFCEC1 0x21875 +0x8EAFCEC2 0x21876 +0x8EAFCEC3 0x21884 +0x8EAFCEC4 0x21877 +0x8EAFCEC5 0x21883 +0x8EAFCEC6 0x2199A +0x8EAFCEC7 0x21AA7 +0x8EAFCEC8 0x21AA8 +0x8EAFCEC9 0x21AA9 +0x8EAFCECA 0x21AAA +0x8EAFCECB 0x21AAB +0x8EAFCECC 0x21AAC +0x8EAFCECD 0x21AB7 +0x8EAFCECE 0x21AAD +0x8EAFCECF 0x21AAE +0x8EAFCED1 0x21B45 +0x8EAFCED2 0x21CD3 +0x8EAFCED3 0x21CD4 +0x8EAFCED4 0x21CD5 +0x8EAFCED5 0x21CD6 +0x8EAFCED6 0x21CD7 +0x8EAFCED7 0x21F26 +0x8EAFCED8 0x21F27 +0x8EAFCED9 0x21F28 +0x8EAFCEDB 0x21F29 +0x8EAFCEDC 0x21F2A +0x8EAFCEDD 0x22005 +0x8EAFCEDE 0x5E64 +0x8EAFCEDF 0x221D0 +0x8EAFCEE0 0x222B7 +0x8EAFCEE2 0x222B8 +0x8EAFCEE3 0x222B9 +0x8EAFCEE4 0x22422 +0x8EAFCEE5 0x22423 +0x8EAFCEE6 0x22573 +0x8EAFCEE7 0x22574 +0x8EAFCEE8 0x2288F +0x8EAFCEE9 0x22812 +0x8EAFCEEA 0x22813 +0x8EAFCEEB 0x22814 +0x8EAFCEEC 0x22815 +0x8EAFCEED 0x22816 +0x8EAFCEEE 0x22817 +0x8EAFCEEF 0x22818 +0x8EAFCEF0 0x22861 +0x8EAFCEF1 0x22866 +0x8EAFCEF2 0x22867 +0x8EAFCEF3 0x22819 +0x8EAFCEF4 0x22868 +0x8EAFCEF5 0x2281A +0x8EAFCEF6 0x22869 +0x8EAFCEF7 0x22A04 +0x8EAFCEF8 0x22A05 +0x8EAFCEFA 0x22A06 +0x8EAFCEFB 0x229FD +0x8EAFCEFC 0x22D50 +0x8EAFCEFD 0x22D51 +0x8EAFCEFE 0x22D52 +0x8EAFCFA1 0x22D53 +0x8EAFCFA2 0x22D54 +0x8EAFCFA3 0x22D55 +0x8EAFCFA4 0x22D63 +0x8EAFCFA5 0x2F8C4 +0x8EAFCFA6 0x22D56 +0x8EAFCFA7 0x22D57 +0x8EAFCFA8 0x22D58 +0x8EAFCFA9 0x22D59 +0x8EAFCFAA 0x22D5A +0x8EAFCFAB 0x22D5B +0x8EAFCFAD 0x22D5C +0x8EAFCFAE 0x22D5D +0x8EAFCFAF 0x22D5E +0x8EAFCFB0 0x22D5F +0x8EAFCFB1 0x22FD7 +0x8EAFCFB3 0x23060 +0x8EAFCFB4 0x23061 +0x8EAFCFB5 0x23117 +0x8EAFCFB6 0x23139 +0x8EAFCFB7 0x2328F +0x8EAFCFB8 0x232C8 +0x8EAFCFB9 0x23290 +0x8EAFCFBA 0x23291 +0x8EAFCFBB 0x23398 +0x8EAFCFBC 0x23399 +0x8EAFCFBD 0x23644 +0x8EAFCFBE 0x23645 +0x8EAFCFBF 0x23646 +0x8EAFCFC0 0x23659 +0x8EAFCFC1 0x236EE +0x8EAFCFC2 0x6A2B +0x8EAFCFC3 0x23647 +0x8EAFCFC4 0x23648 +0x8EAFCFC6 0x23649 +0x8EAFCFC7 0x2364A +0x8EAFCFC8 0x2364B +0x8EAFCFC9 0x2364C +0x8EAFCFCA 0x2364D +0x8EAFCFCB 0x2364E +0x8EAFCFCC 0x2364F +0x8EAFCFCD 0x23650 +0x8EAFCFCE 0x23651 +0x8EAFCFCF 0x23652 +0x8EAFCFD0 0x23653 +0x8EAFCFD1 0x23654 +0x8EAFCFD2 0x23655 +0x8EAFCFD3 0x23656 +0x8EAFCFD4 0x23915 +0x8EAFCFD5 0x2399A +0x8EAFCFD6 0x23A58 +0x8EAFCFD7 0x23AFC +0x8EAFCFD8 0x23AFD +0x8EAFCFD9 0x23F86 +0x8EAFCFDA 0x23F87 +0x8EAFCFDB 0x23F88 +0x8EAFCFDC 0x23F89 +0x8EAFCFDD 0x23F8A +0x8EAFCFDE 0x23F8B +0x8EAFCFDF 0x23F8C +0x8EAFCFE1 0x2401F +0x8EAFCFE2 0x23F8D +0x8EAFCFE3 0x23F8E +0x8EAFCFE4 0x23F8F +0x8EAFCFE5 0x23F90 +0x8EAFCFE6 0x23F91 +0x8EAFCFE7 0x23F92 +0x8EAFCFE8 0x23F93 +0x8EAFCFE9 0x2F911 +0x8EAFCFEA 0x23F94 +0x8EAFCFEB 0x23F95 +0x8EAFCFEC 0x23ECA +0x8EAFCFED 0x23F18 +0x8EAFCFEF 0x23F96 +0x8EAFCFF0 0x23F97 +0x8EAFCFF1 0x23F98 +0x8EAFCFF2 0x23F99 +0x8EAFCFF3 0x23F9A +0x8EAFCFF4 0x23F9B +0x8EAFCFF5 0x23F9C +0x8EAFCFF6 0x23F9D +0x8EAFCFF7 0x23F9E +0x8EAFCFF8 0x23F9F +0x8EAFCFF9 0x6F46 +0x8EAFCFFB 0x23FA0 +0x8EAFCFFC 0x23FA1 +0x8EAFCFFD 0x6F9A +0x8EAFCFFE 0x23FB7 +0x8EAFD0A2 0x24396 +0x8EAFD0A3 0x24368 +0x8EAFD0A4 0x24369 +0x8EAFD0A5 0x2438C +0x8EAFD0A6 0x2436A +0x8EAFD0A7 0x2436B +0x8EAFD0A8 0x2436C +0x8EAFD0A9 0x2436D +0x8EAFD0AA 0x2436E +0x8EAFD0AB 0x2436F +0x8EAFD0AC 0x2437F +0x8EAFD0AD 0x24384 +0x8EAFD0AE 0x24370 +0x8EAFD0AF 0x24371 +0x8EAFD0B0 0x24385 +0x8EAFD0B1 0x24372 +0x8EAFD0B2 0x24373 +0x8EAFD0B3 0x24374 +0x8EAFD0B4 0x24375 +0x8EAFD0B5 0x24376 +0x8EAFD0B7 0x24377 +0x8EAFD0B8 0x24378 +0x8EAFD0B9 0x24379 +0x8EAFD0BA 0x2437A +0x8EAFD0BB 0x2437B +0x8EAFD0BC 0x2437C +0x8EAFD0BD 0x2F91E +0x8EAFD0BE 0x24594 +0x8EAFD0BF 0x246D5 +0x8EAFD0C0 0x24829 +0x8EAFD0C1 0x24A2B +0x8EAFD0C2 0x24A2C +0x8EAFD0C3 0x24A2D +0x8EAFD0C4 0x24A2E +0x8EAFD0C5 0x24A2F +0x8EAFD0C6 0x24A30 +0x8EAFD0C7 0x24A3E +0x8EAFD0C8 0x24A31 +0x8EAFD0C9 0x24A32 +0x8EAFD0CA 0x24A33 +0x8EAFD0CB 0x24A34 +0x8EAFD0CC 0x24A35 +0x8EAFD0CD 0x24B11 +0x8EAFD0CE 0x3F53 +0x8EAFD0CF 0x24CC0 +0x8EAFD0D0 0x24E42 +0x8EAFD0D1 0x24E43 +0x8EAFD0D2 0x24E44 +0x8EAFD0D3 0x24E45 +0x8EAFD0D4 0x24E46 +0x8EAFD0D5 0x2508C +0x8EAFD0D6 0x2508D +0x8EAFD0D7 0x2508E +0x8EAFD0D8 0x2508F +0x8EAFD0D9 0x25090 +0x8EAFD0DA 0x25091 +0x8EAFD0DB 0x25263 +0x8EAFD0DC 0x25264 +0x8EAFD0DD 0x25265 +0x8EAFD0DF 0x2F94A +0x8EAFD0E1 0x253F6 +0x8EAFD0E2 0x25536 +0x8EAFD0E3 0x25537 +0x8EAFD0E4 0x2552C +0x8EAFD0E5 0x25538 +0x8EAFD0E6 0x25539 +0x8EAFD0E8 0x2553A +0x8EAFD0E9 0x256E3 +0x8EAFD0EA 0x256E2 +0x8EAFD0EB 0x256F5 +0x8EAFD0EC 0x25847 +0x8EAFD0EE 0x25848 +0x8EAFD0EF 0x25849 +0x8EAFD0F0 0x2584A +0x8EAFD0F1 0x2584B +0x8EAFD0F2 0x2584C +0x8EAFD0F3 0x25AA8 +0x8EAFD0F4 0x25AA9 +0x8EAFD0F5 0x25AAA +0x8EAFD0F7 0x25C0B +0x8EAFD0F8 0x25C06 +0x8EAFD0F9 0x25C73 +0x8EAFD0FA 0x25C0C +0x8EAFD0FB 0x25C0D +0x8EAFD0FC 0x25C0E +0x8EAFD0FD 0x25C0F +0x8EAFD0FE 0x25C10 +0x8EAFD1A2 0x25C11 +0x8EAFD1A3 0x2F962 +0x8EAFD1A4 0x25C12 +0x8EAFD1A5 0x25C14 +0x8EAFD1A6 0x25C15 +0x8EAFD1A7 0x25C16 +0x8EAFD1A9 0x25C13 +0x8EAFD1AA 0x25C17 +0x8EAFD1AB 0x25ED9 +0x8EAFD1AC 0x25EDA +0x8EAFD1AD 0x25EDB +0x8EAFD1AF 0x25EDC +0x8EAFD1B0 0x260A6 +0x8EAFD1B1 0x260A7 +0x8EAFD1B2 0x260A8 +0x8EAFD1B3 0x260A9 +0x8EAFD1B4 0x260AA +0x8EAFD1B5 0x260AB +0x8EAFD1B7 0x2F96D +0x8EAFD1B8 0x260AC +0x8EAFD1B9 0x260AD +0x8EAFD1BA 0x260AE +0x8EAFD1BD 0x260AF +0x8EAFD1BE 0x260B0 +0x8EAFD1BF 0x260B1 +0x8EAFD1C0 0x26244 +0x8EAFD1C1 0x26245 +0x8EAFD1C2 0x262F7 +0x8EAFD1C3 0x262F8 +0x8EAFD1C4 0x2646B +0x8EAFD1C5 0x2646C +0x8EAFD1C6 0x26461 +0x8EAFD1C7 0x26512 +0x8EAFD1C8 0x265AF +0x8EAFD1C9 0x265B0 +0x8EAFD1CA 0x265B1 +0x8EAFD1CB 0x265B2 +0x8EAFD1CC 0x265B3 +0x8EAFD1CD 0x265B4 +0x8EAFD1CE 0x265B5 +0x8EAFD1CF 0x265B6 +0x8EAFD1D0 0x26622 +0x8EAFD1D1 0x267EA +0x8EAFD1D2 0x267EB +0x8EAFD1D3 0x267EC +0x8EAFD1D4 0x267ED +0x8EAFD1D5 0x443D +0x8EAFD1D6 0x268ED +0x8EAFD1D7 0x2691B +0x8EAFD1D8 0x26947 +0x8EAFD1D9 0x269E8 +0x8EAFD1DA 0x26AD0 +0x8EAFD1DB 0x26AE7 +0x8EAFD1DC 0x26AE8 +0x8EAFD1DD 0x26AE9 +0x8EAFD1DE 0x26E4E +0x8EAFD1DF 0x26E4F +0x8EAFD1E0 0x26E50 +0x8EAFD1E1 0x26E72 +0x8EAFD1E2 0x26E51 +0x8EAFD1E3 0x26E52 +0x8EAFD1E4 0x2F9A7 +0x8EAFD1E5 0x4526 +0x8EAFD1E6 0x26E53 +0x8EAFD1E7 0x26E54 +0x8EAFD1E8 0x26E55 +0x8EAFD1E9 0x26E56 +0x8EAFD1EA 0x26E57 +0x8EAFD1EB 0x26E77 +0x8EAFD1EC 0x26E58 +0x8EAFD1ED 0x26E59 +0x8EAFD1EE 0x26E5A +0x8EAFD1EF 0x26E5B +0x8EAFD1F0 0x26E5C +0x8EAFD1F1 0x26E6E +0x8EAFD1F2 0x26E5D +0x8EAFD1F3 0x4527 +0x8EAFD1F5 0x26E5E +0x8EAFD1F6 0x4528 +0x8EAFD1F7 0x26E5F +0x8EAFD1F9 0x271D7 +0x8EAFD1FA 0x27389 +0x8EAFD1FB 0x2738A +0x8EAFD1FD 0x2F9BE +0x8EAFD1FE 0x2738B +0x8EAFD2A1 0x2738C +0x8EAFD2A2 0x2738D +0x8EAFD2A3 0x2738E +0x8EAFD2A4 0x2F9BC +0x8EAFD2A5 0x2738F +0x8EAFD2A7 0x2739A +0x8EAFD2A8 0x27390 +0x8EAFD2A9 0x27391 +0x8EAFD2AA 0x27392 +0x8EAFD2AB 0x27393 +0x8EAFD2AC 0x27712 +0x8EAFD2AD 0x276F1 +0x8EAFD2AF 0x277FE +0x8EAFD2B0 0x277FB +0x8EAFD2B1 0x27857 +0x8EAFD2B2 0x27A49 +0x8EAFD2B3 0x27A4A +0x8EAFD2B4 0x27A4B +0x8EAFD2B5 0x27A4C +0x8EAFD2B7 0x27A4D +0x8EAFD2B8 0x27A59 +0x8EAFD2B9 0x27A4E +0x8EAFD2BA 0x27A4F +0x8EAFD2BB 0x27BF4 +0x8EAFD2BC 0x27C65 +0x8EAFD2BD 0x27DA6 +0x8EAFD2BE 0x27DA7 +0x8EAFD2BF 0x27DA8 +0x8EAFD2C0 0x27F22 +0x8EAFD2C1 0x27F23 +0x8EAFD2C2 0x2808B +0x8EAFD2C3 0x2808C +0x8EAFD2C4 0x2808D +0x8EAFD2C5 0x2808E +0x8EAFD2C6 0x28258 +0x8EAFD2C8 0x28259 +0x8EAFD2C9 0x2833B +0x8EAFD2CA 0x2833C +0x8EAFD2CB 0x2833D +0x8EAFD2CC 0x2833E +0x8EAFD2CD 0x28448 +0x8EAFD2CE 0x28594 +0x8EAFD2CF 0x28595 +0x8EAFD2D0 0x28596 +0x8EAFD2D1 0x28597 +0x8EAFD2D2 0x28598 +0x8EAFD2D3 0x2877D +0x8EAFD2D4 0x286FE +0x8EAFD2D5 0x2877E +0x8EAFD2D6 0x2877F +0x8EAFD2D8 0x2885B +0x8EAFD2D9 0x2885C +0x8EAFD2DA 0x289E4 +0x8EAFD2DB 0x289C1 +0x8EAFD2DC 0x289FD +0x8EAFD2DD 0x289C2 +0x8EAFD2DE 0x289D6 +0x8EAFD2DF 0x289C3 +0x8EAFD2E0 0x289C4 +0x8EAFD2E2 0x289DC +0x8EAFD2E3 0x289C5 +0x8EAFD2E4 0x289C6 +0x8EAFD2E5 0x289C7 +0x8EAFD2E6 0x289E1 +0x8EAFD2E7 0x289C8 +0x8EAFD2E8 0x289C9 +0x8EAFD2E9 0x289CA +0x8EAFD2EA 0x289CB +0x8EAFD2EB 0x92F2 +0x8EAFD2EC 0x289CC +0x8EAFD2ED 0x289CD +0x8EAFD2EE 0x28D35 +0x8EAFD2EF 0x28D36 +0x8EAFD2F0 0x28D47 +0x8EAFD2F1 0x28D37 +0x8EAFD2F2 0x28F1B +0x8EAFD2F3 0x28F1C +0x8EAFD2F4 0x28F1D +0x8EAFD2F5 0x28F1E +0x8EAFD2F6 0x28F1F +0x8EAFD2F7 0x28F20 +0x8EAFD2F8 0x28F7B +0x8EAFD2F9 0x28F7A +0x8EAFD2FA 0x28FFE +0x8EAFD2FB 0x290C6 +0x8EAFD2FC 0x290C7 +0x8EAFD2FD 0x290C8 +0x8EAFD2FE 0x290C9 +0x8EAFD3A1 0x290CA +0x8EAFD3A3 0x294A0 +0x8EAFD3A4 0x294A1 +0x8EAFD3A5 0x295CC +0x8EAFD3A6 0x295CD +0x8EAFD3A7 0x296F1 +0x8EAFD3A8 0x296D7 +0x8EAFD3A9 0x29842 +0x8EAFD3AA 0x29846 +0x8EAFD3AB 0x298A3 +0x8EAFD3AC 0x298A5 +0x8EAFD3AD 0x298A6 +0x8EAFD3AE 0x29ACB +0x8EAFD3AF 0x29ACC +0x8EAFD3B0 0x29B26 +0x8EAFD3B1 0x29B27 +0x8EAFD3B2 0x29B28 +0x8EAFD3B3 0x29B29 +0x8EAFD3B4 0x29CAE +0x8EAFD3B5 0x29CAF +0x8EAFD3B6 0x29CB0 +0x8EAFD3B7 0x29D73 +0x8EAFD3B9 0x29D7C +0x8EAFD3BA 0x29D74 +0x8EAFD3BC 0x29F80 +0x8EAFD3BD 0x29D75 +0x8EAFD3BE 0x9B79 +0x8EAFD3C0 0x29FCF +0x8EAFD3C2 0x2A38F +0x8EAFD3C3 0x20670 +0x8EAFD3C4 0x20085 +0x8EAFD3C5 0x20397 +0x8EAFD3C6 0x203F6 +0x8EAFD3C7 0x203F7 +0x8EAFD3C8 0x203F8 +0x8EAFD3C9 0x203FA +0x8EAFD3CA 0x203FB +0x8EAFD3CB 0x204BA +0x8EAFD3CC 0x204BB +0x8EAFD3CD 0x204BC +0x8EAFD3CE 0x204BD +0x8EAFD3CF 0x20534 +0x8EAFD3D0 0x20535 +0x8EAFD3D1 0x205A2 +0x8EAFD3D2 0x20614 +0x8EAFD3D3 0x20611 +0x8EAFD3D4 0x2066E +0x8EAFD3D5 0x2066F +0x8EAFD3D6 0x20808 +0x8EAFD3D7 0x208B8 +0x8EAFD3D8 0x20A09 +0x8EAFD3D9 0x20ABD +0x8EAFD3DA 0x20ABE +0x8EAFD3DB 0x20B88 +0x8EAFD3DC 0x20FFE +0x8EAFD3DD 0x567A +0x8EAFD3DE 0x20FFF +0x8EAFD3DF 0x21000 +0x8EAFD3E0 0x21001 +0x8EAFD3E1 0x21002 +0x8EAFD3E2 0x21003 +0x8EAFD3E3 0x21004 +0x8EAFD3E4 0x21005 +0x8EAFD3E5 0x21006 +0x8EAFD3E7 0x21007 +0x8EAFD3E8 0x21008 +0x8EAFD3E9 0x21009 +0x8EAFD3EA 0x2100A +0x8EAFD3EB 0x2100B +0x8EAFD3EC 0x2100C +0x8EAFD3ED 0x2100D +0x8EAFD3EE 0x2100E +0x8EAFD3EF 0x2100F +0x8EAFD3F3 0x2122C +0x8EAFD3F4 0x2146B +0x8EAFD3F6 0x2146C +0x8EAFD3F7 0x21487 +0x8EAFD3F8 0x2146D +0x8EAFD3F9 0x21578 +0x8EAFD3FA 0x2168B +0x8EAFD3FB 0x218A4 +0x8EAFD3FC 0x218A5 +0x8EAFD3FD 0x218A6 +0x8EAFD3FE 0x218A7 +0x8EAFD4A1 0x218BE +0x8EAFD4A2 0x218A8 +0x8EAFD4A3 0x218A9 +0x8EAFD4A4 0x218AA +0x8EAFD4A5 0x2188D +0x8EAFD4A6 0x218AB +0x8EAFD4A7 0x218AC +0x8EAFD4A8 0x218BF +0x8EAFD4AA 0x372C +0x8EAFD4AB 0x218AD +0x8EAFD4AC 0x218AE +0x8EAFD4AD 0x219A4 +0x8EAFD4AE 0x219A5 +0x8EAFD4AF 0x21AC7 +0x8EAFD4B0 0x21AC8 +0x8EAFD4B1 0x21AC9 +0x8EAFD4B2 0x27DBC +0x8EAFD4B3 0x21ACA +0x8EAFD4B4 0x21ACB +0x8EAFD4B5 0x21ACC +0x8EAFD4B6 0x21ACD +0x8EAFD4B7 0x21ACE +0x8EAFD4B8 0x21C19 +0x8EAFD4B9 0x21CE6 +0x8EAFD4BA 0x21F4C +0x8EAFD4BB 0x21F4D +0x8EAFD4BC 0x21F4E +0x8EAFD4BD 0x22006 +0x8EAFD4BF 0x222CD +0x8EAFD4C0 0x222CE +0x8EAFD4C1 0x222CF +0x8EAFD4C2 0x222D0 +0x8EAFD4C3 0x5F5C +0x8EAFD4C4 0x22581 +0x8EAFD4C5 0x22582 +0x8EAFD4C6 0x20533 +0x8EAFD4C7 0x2286A +0x8EAFD4C8 0x2286B +0x8EAFD4C9 0x228B2 +0x8EAFD4CA 0x2286C +0x8EAFD4CB 0x2286D +0x8EAFD4CC 0x228CC +0x8EAFD4CD 0x228AE +0x8EAFD4CE 0x228B3 +0x8EAFD4CF 0x22891 +0x8EAFD4D1 0x2286E +0x8EAFD4D2 0x228B4 +0x8EAFD4D3 0x2286F +0x8EAFD4D4 0x22DC9 +0x8EAFD4D5 0x22DA7 +0x8EAFD4D6 0x22DA8 +0x8EAFD4D7 0x22DA9 +0x8EAFD4D8 0x22DAA +0x8EAFD4D9 0x22DAB +0x8EAFD4DA 0x22DAC +0x8EAFD4DB 0x22DAD +0x8EAFD4DC 0x22DAE +0x8EAFD4DD 0x22DAF +0x8EAFD4DE 0x22DB0 +0x8EAFD4DF 0x22D60 +0x8EAFD4E0 0x22DB1 +0x8EAFD4E1 0x22EE1 +0x8EAFD4E2 0x22FE3 +0x8EAFD4E3 0x22FF6 +0x8EAFD4E4 0x65D9 +0x8EAFD4E5 0x232AF +0x8EAFD4E6 0x232B0 +0x8EAFD4E7 0x232B1 +0x8EAFD4E8 0x232BA +0x8EAFD4E9 0x232B2 +0x8EAFD4EA 0x232B3 +0x8EAFD4EB 0x2334C +0x8EAFD4ED 0x233A0 +0x8EAFD4EE 0x233A1 +0x8EAFD4EF 0x236B0 +0x8EAFD4F0 0x236B1 +0x8EAFD4F1 0x236B2 +0x8EAFD4F2 0x236B3 +0x8EAFD4F3 0x236B4 +0x8EAFD4F4 0x2F8EB +0x8EAFD4F5 0x236B5 +0x8EAFD4F6 0x236B6 +0x8EAFD4F7 0x236B7 +0x8EAFD4F8 0x236B8 +0x8EAFD4F9 0x236B9 +0x8EAFD4FA 0x236BA +0x8EAFD4FB 0x6A72 +0x8EAFD4FC 0x236BB +0x8EAFD4FD 0x236BC +0x8EAFD4FE 0x236BD +0x8EAFD5A1 0x236BE +0x8EAFD5A2 0x236BF +0x8EAFD5A3 0x236DF +0x8EAFD5A4 0x236C0 +0x8EAFD5A5 0x236C1 +0x8EAFD5A6 0x236C2 +0x8EAFD5A7 0x236C3 +0x8EAFD5A8 0x236C4 +0x8EAFD5A9 0x6A78 +0x8EAFD5AB 0x236C5 +0x8EAFD5AC 0x236C6 +0x8EAFD5AD 0x236C7 +0x8EAFD5AE 0x236C8 +0x8EAFD5AF 0x236C9 +0x8EAFD5B0 0x236CA +0x8EAFD5B1 0x2373C +0x8EAFD5B2 0x236CB +0x8EAFD5B3 0x236CC +0x8EAFD5B4 0x236CD +0x8EAFD5B5 0x236CE +0x8EAFD5B6 0x236CF +0x8EAFD5B7 0x236D0 +0x8EAFD5B8 0x236D1 +0x8EAFD5B9 0x6B5A +0x8EAFD5BA 0x2391D +0x8EAFD5BB 0x2391E +0x8EAFD5BC 0x23A64 +0x8EAFD5BD 0x23A65 +0x8EAFD5BE 0x23AC5 +0x8EAFD5BF 0x23AC6 +0x8EAFD5C0 0x23AC7 +0x8EAFD5C1 0x23AFF +0x8EAFD5C2 0x23BFF +0x8EAFD5C3 0x23C00 +0x8EAFD5C4 0x23C01 +0x8EAFD5C5 0x23C02 +0x8EAFD5C6 0x23FF5 +0x8EAFD5C7 0x2405C +0x8EAFD5C8 0x23FF6 +0x8EAFD5C9 0x23FF7 +0x8EAFD5CA 0x23FB0 +0x8EAFD5CB 0x23FF8 +0x8EAFD5CC 0x23FF9 +0x8EAFD5CD 0x2405D +0x8EAFD5CE 0x24050 +0x8EAFD5CF 0x23FFA +0x8EAFD5D0 0x23FFB +0x8EAFD5D1 0x23FA2 +0x8EAFD5D2 0x23FFC +0x8EAFD5D3 0x23FFD +0x8EAFD5D4 0x23FFE +0x8EAFD5D5 0x23FFF +0x8EAFD5D6 0x2F913 +0x8EAFD5D7 0x24000 +0x8EAFD5D8 0x2F91F +0x8EAFD5D9 0x243C1 +0x8EAFD5DA 0x243C2 +0x8EAFD5DB 0x243C3 +0x8EAFD5DC 0x243C4 +0x8EAFD5DD 0x243C5 +0x8EAFD5DE 0x243C6 +0x8EAFD5DF 0x243C7 +0x8EAFD5E0 0x243C8 +0x8EAFD5E1 0x243C9 +0x8EAFD5E2 0x243CA +0x8EAFD5E3 0x243CB +0x8EAFD5E4 0x290EF +0x8EAFD5E5 0x243D7 +0x8EAFD5E6 0x243CC +0x8EAFD5E7 0x243CD +0x8EAFD5E8 0x243CE +0x8EAFD5E9 0x24422 +0x8EAFD5EA 0x243CF +0x8EAFD5EB 0x243D0 +0x8EAFD5ED 0x243D1 +0x8EAFD5EE 0x243D2 +0x8EAFD5EF 0x243E9 +0x8EAFD5F0 0x243D3 +0x8EAFD5F1 0x243D4 +0x8EAFD5F2 0x243D5 +0x8EAFD5F3 0x24538 +0x8EAFD5F4 0x2103B +0x8EAFD5F5 0x2487D +0x8EAFD5F6 0x2056F +0x8EAFD5F7 0x248A1 +0x8EAFD5F8 0x24A53 +0x8EAFD5F9 0x24A54 +0x8EAFD5FA 0x3EFB +0x8EAFD5FB 0x24A55 +0x8EAFD5FC 0x24A3C +0x8EAFD5FD 0x24A56 +0x8EAFD6A1 0x24A66 +0x8EAFD6A2 0x3EFC +0x8EAFD6A3 0x24A57 +0x8EAFD6A4 0x24A58 +0x8EAFD6A5 0x24A59 +0x8EAFD6A6 0x24A5A +0x8EAFD6A7 0x24A5B +0x8EAFD6A8 0x24A67 +0x8EAFD6A9 0x24A5C +0x8EAFD6AC 0x24A6A +0x8EAFD6AD 0x24A5D +0x8EAFD6AE 0x24A3D +0x8EAFD6AF 0x24A5E +0x8EAFD6B0 0x24A65 +0x8EAFD6B1 0x24CE1 +0x8EAFD6B2 0x24CCD +0x8EAFD6B3 0x2A011 +0x8EAFD6B4 0x24E6F +0x8EAFD6B5 0x24E70 +0x8EAFD6B6 0x2501A +0x8EAFD6B7 0x2509A +0x8EAFD6B8 0x2509B +0x8EAFD6B9 0x2509C +0x8EAFD6BA 0x2509E +0x8EAFD6BB 0x2509F +0x8EAFD6BC 0x2F93F +0x8EAFD6BD 0x2528E +0x8EAFD6BF 0x253FD +0x8EAFD6C1 0x2555E +0x8EAFD6C2 0x2555F +0x8EAFD6C3 0x25560 +0x8EAFD6C4 0x25565 +0x8EAFD6C5 0x25567 +0x8EAFD6C6 0x25568 +0x8EAFD6C7 0x25569 +0x8EAFD6C9 0x2556A +0x8EAFD6CA 0x2558F +0x8EAFD6CB 0x2556B +0x8EAFD6CC 0x2556C +0x8EAFD6CD 0x2556D +0x8EAFD6CE 0x256F7 +0x8EAFD6CF 0x256F8 +0x8EAFD6D0 0x256F9 +0x8EAFD6D1 0x256E4 +0x8EAFD6D2 0x256FA +0x8EAFD6D3 0x258B1 +0x8EAFD6D4 0x25875 +0x8EAFD6D5 0x25876 +0x8EAFD6D6 0x259FF +0x8EAFD6D7 0x25A00 +0x8EAFD6D8 0x25A01 +0x8EAFD6D9 0x25A02 +0x8EAFD6DA 0x25A03 +0x8EAFD6DB 0x25AAE +0x8EAFD6DC 0x25AAD +0x8EAFD6DD 0x25C51 +0x8EAFD6DE 0x25C52 +0x8EAFD6E0 0x25C53 +0x8EAFD6E1 0x25C54 +0x8EAFD6E2 0x25C55 +0x8EAFD6E3 0x25C56 +0x8EAFD6E4 0x25C57 +0x8EAFD6E5 0x25C58 +0x8EAFD6E6 0x25C59 +0x8EAFD6E7 0x25C5A +0x8EAFD6E8 0x25C5B +0x8EAFD6E9 0x25C5C +0x8EAFD6EA 0x25C5D +0x8EAFD6EB 0x25C5E +0x8EAFD6EC 0x25C5F +0x8EAFD6ED 0x25C60 +0x8EAFD6EE 0x25C61 +0x8EAFD6EF 0x25C62 +0x8EAFD6F0 0x25C63 +0x8EAFD6F1 0x25C64 +0x8EAFD6F2 0x25C4C +0x8EAFD6F3 0x25C66 +0x8EAFD6F4 0x25EF1 +0x8EAFD6F5 0x25EF2 +0x8EAFD6F6 0x260F2 +0x8EAFD6F7 0x260F3 +0x8EAFD6F8 0x260F4 +0x8EAFD6F9 0x260F5 +0x8EAFD6FA 0x260F6 +0x8EAFD6FB 0x260F7 +0x8EAFD6FC 0x260F8 +0x8EAFD6FD 0x260F9 +0x8EAFD6FE 0x260FA +0x8EAFD7A1 0x2624C +0x8EAFD7A2 0x2624B +0x8EAFD7A3 0x2631B +0x8EAFD7A4 0x263CE +0x8EAFD7A5 0x263B3 +0x8EAFD7A6 0x2647F +0x8EAFD7A7 0x2F979 +0x8EAFD7A8 0x2F97C +0x8EAFD7A9 0x2651A +0x8EAFD7AA 0x265C4 +0x8EAFD7AB 0x265C5 +0x8EAFD7AC 0x265C6 +0x8EAFD7AD 0x265C7 +0x8EAFD7AE 0x265C8 +0x8EAFD7AF 0x265C9 +0x8EAFD7B1 0x26819 +0x8EAFD7B2 0x2681C +0x8EAFD7B3 0x2681A +0x8EAFD7B4 0x2694C +0x8EAFD7B5 0x2698E +0x8EAFD7B6 0x26A7E +0x8EAFD7B7 0x26EEB +0x8EAFD7B8 0x26EEC +0x8EAFD7B9 0x26EED +0x8EAFD7BA 0x26EEE +0x8EAFD7BB 0x26EEF +0x8EAFD7BC 0x26EF0 +0x8EAFD7BD 0x26EF1 +0x8EAFD7BE 0x26ED8 +0x8EAFD7BF 0x26ED9 +0x8EAFD7C0 0x26EDA +0x8EAFD7C1 0x26EDB +0x8EAFD7C2 0x26EF2 +0x8EAFD7C3 0x26EF3 +0x8EAFD7C4 0x26EF4 +0x8EAFD7C5 0x26F07 +0x8EAFD7C7 0x2F9AC +0x8EAFD7C9 0x26EF5 +0x8EAFD7CA 0x26F15 +0x8EAFD7CC 0x26EF6 +0x8EAFD7CD 0x26EF7 +0x8EAFD7CE 0x26EF8 +0x8EAFD7CF 0x26EF9 +0x8EAFD7D0 0x26EFA +0x8EAFD7D1 0x26EFB +0x8EAFD7D2 0x26EFC +0x8EAFD7D3 0x26EFD +0x8EAFD7D4 0x26EFE +0x8EAFD7D5 0x26FA7 +0x8EAFD7D6 0x26EFF +0x8EAFD7D7 0x26F00 +0x8EAFD7D8 0x26F01 +0x8EAFD7D9 0x26F02 +0x8EAFD7DA 0x26F03 +0x8EAFD7DB 0x26F04 +0x8EAFD7DC 0x26F05 +0x8EAFD7DD 0x271E9 +0x8EAFD7DE 0x271EA +0x8EAFD7DF 0x271EB +0x8EAFD7E0 0x273DE +0x8EAFD7E1 0x273DF +0x8EAFD7E3 0x273E0 +0x8EAFD7E4 0x273E1 +0x8EAFD7E5 0x273E2 +0x8EAFD7E6 0x273E3 +0x8EAFD7E7 0x2773E +0x8EAFD7E8 0x2773F +0x8EAFD7E9 0x27740 +0x8EAFD7EA 0x27741 +0x8EAFD7EB 0x27871 +0x8EAFD7EC 0x27872 +0x8EAFD7ED 0x27873 +0x8EAFD7EE 0x27A88 +0x8EAFD7EF 0x27A89 +0x8EAFD7F0 0x27A8A +0x8EAFD7F1 0x27A8B +0x8EAFD7F2 0x27A8C +0x8EAFD7F3 0x27A8D +0x8EAFD7F4 0x27A8E +0x8EAFD7F5 0x27A8F +0x8EAFD7F6 0x27A90 +0x8EAFD7F7 0x27A91 +0x8EAFD7F8 0x27A92 +0x8EAFD7FA 0x27CF1 +0x8EAFD7FB 0x27DBE +0x8EAFD7FC 0x27DBF +0x8EAFD7FD 0x27DC0 +0x8EAFD7FE 0x27DC1 +0x8EAFD8A1 0x27DC2 +0x8EAFD8A2 0x27DC3 +0x8EAFD8A3 0x27E6E +0x8EAFD8A4 0x27F37 +0x8EAFD8A5 0x27F57 +0x8EAFD8A6 0x27F38 +0x8EAFD8A7 0x27F39 +0x8EAFD8A8 0x27F3A +0x8EAFD8A9 0x27F3B +0x8EAFD8AA 0x27F3C +0x8EAFD8AB 0x27F3D +0x8EAFD8AC 0x27F3E +0x8EAFD8AD 0x27F27 +0x8EAFD8AE 0x27F3F +0x8EAFD8B1 0x280C0 +0x8EAFD8B2 0x280C1 +0x8EAFD8B3 0x8EBE +0x8EAFD8B4 0x28267 +0x8EAFD8B6 0x28268 +0x8EAFD8B7 0x28358 +0x8EAFD8B8 0x28365 +0x8EAFD8B9 0x28359 +0x8EAFD8BA 0x2835A +0x8EAFD8BB 0x28424 +0x8EAFD8BC 0x285CD +0x8EAFD8BD 0x285CE +0x8EAFD8BE 0x285CF +0x8EAFD8BF 0x285D2 +0x8EAFD8C0 0x2879F +0x8EAFD8C1 0x28722 +0x8EAFD8C2 0x2887D +0x8EAFD8C3 0x2887E +0x8EAFD8C4 0x289FF +0x8EAFD8C5 0x28A25 +0x8EAFD8C6 0x28A00 +0x8EAFD8C7 0x28A01 +0x8EAFD8C8 0x933B +0x8EAFD8C9 0x28A02 +0x8EAFD8CA 0x28A03 +0x8EAFD8CB 0x28A04 +0x8EAFD8CC 0xFA28 +0x8EAFD8CD 0x28A05 +0x8EAFD8CE 0x28A06 +0x8EAFD8CF 0x28A07 +0x8EAFD8D0 0x28A16 +0x8EAFD8D1 0x28A08 +0x8EAFD8D2 0x28A17 +0x8EAFD8D3 0x28A09 +0x8EAFD8D4 0x28A0A +0x8EAFD8D5 0x9340 +0x8EAFD8D6 0x28A0B +0x8EAFD8D7 0x28A0C +0x8EAFD8D8 0x28A29 +0x8EAFD8D9 0x933A +0x8EAFD8DA 0x28A0D +0x8EAFD8DC 0x28A0E +0x8EAFD8DD 0x28A10 +0x8EAFD8DE 0x28A11 +0x8EAFD8DF 0x28A1D +0x8EAFD8E0 0x28A12 +0x8EAFD8E1 0x28A13 +0x8EAFD8E3 0x28A14 +0x8EAFD8E4 0x28A15 +0x8EAFD8E5 0x28C8D +0x8EAFD8E6 0x28D54 +0x8EAFD8E7 0x28D55 +0x8EAFD8E8 0x28D56 +0x8EAFD8E9 0x28F33 +0x8EAFD8EA 0x28F34 +0x8EAFD8EB 0x28F35 +0x8EAFD8EC 0x28F36 +0x8EAFD8ED 0x28FFA +0x8EAFD8EE 0x290E3 +0x8EAFD8EF 0x290E6 +0x8EAFD8F0 0x290ED +0x8EAFD8F1 0x290E7 +0x8EAFD8F2 0x290E8 +0x8EAFD8F3 0x290E9 +0x8EAFD8F4 0x290EA +0x8EAFD8F5 0x290EB +0x8EAFD8F6 0x29227 +0x8EAFD8F7 0x29220 +0x8EAFD8F8 0x2F9F8 +0x8EAFD8F9 0x2942A +0x8EAFD8FA 0x294C9 +0x8EAFD8FC 0x294CA +0x8EAFD8FD 0x294CB +0x8EAFD8FE 0x294D9 +0x8EAFD9A1 0x294CC +0x8EAFD9A2 0x294CD +0x8EAFD9A3 0x294CE +0x8EAFD9A5 0x295E1 +0x8EAFD9A6 0x2971B +0x8EAFD9A7 0x2971C +0x8EAFD9A8 0x2971D +0x8EAFD9A9 0x2971E +0x8EAFD9AA 0x29847 +0x8EAFD9AB 0x298D1 +0x8EAFD9AC 0x298C9 +0x8EAFD9AD 0x29AD0 +0x8EAFD9AE 0x29AD1 +0x8EAFD9AF 0x29B3F +0x8EAFD9B0 0x29B40 +0x8EAFD9B1 0x29B41 +0x8EAFD9B2 0x2FA09 +0x8EAFD9B3 0x29B42 +0x8EAFD9B4 0x29CC4 +0x8EAFD9B5 0x29D9B +0x8EAFD9B6 0x29D92 +0x8EAFD9B7 0x29D93 +0x8EAFD9B8 0x9B96 +0x8EAFD9B9 0x29D94 +0x8EAFD9BA 0x29D95 +0x8EAFD9BD 0x29FF3 +0x8EAFD9BE 0x29FF4 +0x8EAFD9BF 0x29FF5 +0x8EAFD9C0 0x29FF6 +0x8EAFD9C1 0x2A260 +0x8EAFD9C2 0x2A29E +0x8EAFD9C3 0x2A2A0 +0x8EAFD9C4 0x2A2A1 +0x8EAFD9C5 0x2A31C +0x8EAFD9C6 0x2A39F +0x8EAFD9C7 0x20056 +0x8EAFD9C8 0x20412 +0x8EAFD9C9 0x2041F +0x8EAFD9CA 0x20415 +0x8EAFD9CB 0x20416 +0x8EAFD9CC 0x20417 +0x8EAFD9CD 0x2F80C +0x8EAFD9CE 0x20418 +0x8EAFD9CF 0x204C2 +0x8EAFD9D0 0x204C3 +0x8EAFD9D1 0x204C4 +0x8EAFD9D2 0x205A1 +0x8EAFD9D3 0x2061B +0x8EAFD9D4 0x2061C +0x8EAFD9D5 0x20671 +0x8EAFD9D6 0x20813 +0x8EAFD9D7 0x20B17 +0x8EAFD9D8 0x20B8F +0x8EAFD9D9 0x2105F +0x8EAFD9DA 0x21060 +0x8EAFD9DB 0x210AC +0x8EAFD9DE 0x21061 +0x8EAFD9DF 0x21062 +0x8EAFD9E0 0x21063 +0x8EAFD9E1 0x21064 +0x8EAFD9E2 0x21065 +0x8EAFD9E4 0x21499 +0x8EAFD9E5 0x2149A +0x8EAFD9E6 0x2149B +0x8EAFD9E7 0x2149C +0x8EAFD9E8 0x2149D +0x8EAFD9E9 0x2149E +0x8EAFD9EA 0x2149F +0x8EAFD9EB 0x214A0 +0x8EAFD9EC 0x218DA +0x8EAFD9ED 0x218DB +0x8EAFD9EE 0x218DC +0x8EAFD9EF 0x218DD +0x8EAFD9F0 0x218DE +0x8EAFD9F1 0x218DF +0x8EAFD9F2 0x21AD5 +0x8EAFD9F3 0x21AD6 +0x8EAFD9F4 0x21AD7 +0x8EAFD9F5 0x21AD8 +0x8EAFD9F6 0x21AE0 +0x8EAFD9F7 0x21BB4 +0x8EAFD9F9 0x21F6E +0x8EAFD9FA 0x21F6F +0x8EAFD9FB 0x21F70 +0x8EAFD9FC 0x22163 +0x8EAFD9FE 0x222D5 +0x8EAFDAA1 0x222D6 +0x8EAFDAA2 0x222D7 +0x8EAFDAA3 0x222D8 +0x8EAFDAA4 0x22430 +0x8EAFDAA5 0x228B5 +0x8EAFDAA6 0x228B6 +0x8EAFDAA7 0x228C1 +0x8EAFDAA8 0x228F7 +0x8EAFDAA9 0x39A0 +0x8EAFDAAA 0x228CB +0x8EAFDAAB 0x228E8 +0x8EAFDAAD 0x228E9 +0x8EAFDAAE 0x228B7 +0x8EAFDAAF 0x22A15 +0x8EAFDAB0 0x22DE6 +0x8EAFDAB1 0x22DE7 +0x8EAFDAB2 0x22DE8 +0x8EAFDAB3 0x22DE9 +0x8EAFDAB4 0x22DEA +0x8EAFDAB5 0x22DEB +0x8EAFDAB6 0x2F8CA +0x8EAFDAB7 0x2300B +0x8EAFDAB8 0x2300C +0x8EAFDAB9 0x23064 +0x8EAFDABA 0x232D4 +0x8EAFDABB 0x232D5 +0x8EAFDABC 0x232D6 +0x8EAFDABD 0x232D8 +0x8EAFDABE 0x233A5 +0x8EAFDABF 0x2005B +0x8EAFDAC0 0x2370F +0x8EAFDAC1 0x23710 +0x8EAFDAC3 0x23711 +0x8EAFDAC4 0x23712 +0x8EAFDAC5 0x23713 +0x8EAFDAC6 0x23714 +0x8EAFDAC7 0x23715 +0x8EAFDAC8 0x23716 +0x8EAFDAC9 0x23717 +0x8EAFDACA 0x23718 +0x8EAFDACB 0x23719 +0x8EAFDACC 0x2371A +0x8EAFDACD 0x2372F +0x8EAFDACE 0x2371B +0x8EAFDACF 0x2371C +0x8EAFDAD0 0x2373F +0x8EAFDAD1 0x2371D +0x8EAFDAD2 0x2371E +0x8EAFDAD3 0x2372C +0x8EAFDAD4 0x2371F +0x8EAFDAD5 0x23924 +0x8EAFDAD6 0x239A4 +0x8EAFDAD7 0x239A5 +0x8EAFDAD8 0x26251 +0x8EAFDAD9 0x23AFE +0x8EAFDADA 0x23C11 +0x8EAFDADB 0x23C12 +0x8EAFDADC 0x23C13 +0x8EAFDADD 0x23C54 +0x8EAFDADE 0x2405E +0x8EAFDADF 0x24021 +0x8EAFDAE0 0x2403F +0x8EAFDAE1 0x24040 +0x8EAFDAE2 0x24041 +0x8EAFDAE3 0x24042 +0x8EAFDAE4 0x24043 +0x8EAFDAE5 0x24044 +0x8EAFDAE6 0x24020 +0x8EAFDAE7 0x24045 +0x8EAFDAE9 0x24046 +0x8EAFDAEA 0x240B0 +0x8EAFDAEB 0x24047 +0x8EAFDAEC 0x24057 +0x8EAFDAED 0x24001 +0x8EAFDAEE 0x240B1 +0x8EAFDAEF 0x2405A +0x8EAFDAF0 0x24048 +0x8EAFDAF1 0x24404 +0x8EAFDAF2 0x24405 +0x8EAFDAF3 0x71F5 +0x8EAFDAF4 0x2444F +0x8EAFDAF5 0x24450 +0x8EAFDAF6 0x24406 +0x8EAFDAF7 0x24407 +0x8EAFDAF8 0x24408 +0x8EAFDAF9 0x24409 +0x8EAFDAFA 0x2440A +0x8EAFDAFB 0x2440B +0x8EAFDAFC 0x2440C +0x8EAFDAFD 0x2440D +0x8EAFDAFE 0x2440E +0x8EAFDBA1 0x2440F +0x8EAFDBA2 0x24410 +0x8EAFDBA3 0x24411 +0x8EAFDBA4 0x24533 +0x8EAFDBA5 0x24534 +0x8EAFDBA6 0x24535 +0x8EAFDBA7 0x245FC +0x8EAFDBA8 0x245FD +0x8EAFDBA9 0x248B0 +0x8EAFDBAA 0x248B1 +0x8EAFDBAB 0x248B2 +0x8EAFDBAC 0x248B3 +0x8EAFDBAD 0x3F01 +0x8EAFDBAE 0x24A7B +0x8EAFDBAF 0x24A7C +0x8EAFDBB0 0x24A7D +0x8EAFDBB1 0x24A7E +0x8EAFDBB2 0x24A7F +0x8EAFDBB3 0x24A80 +0x8EAFDBB4 0x24A81 +0x8EAFDBB5 0x24A82 +0x8EAFDBB6 0x24BF9 +0x8EAFDBB7 0x24CDA +0x8EAFDBB8 0x24EA1 +0x8EAFDBBB 0x250AD +0x8EAFDBBC 0x250AE +0x8EAFDBBE 0x252C8 +0x8EAFDBBF 0x252C9 +0x8EAFDBC0 0x252CA +0x8EAFDBC1 0x25582 +0x8EAFDBC2 0x25583 +0x8EAFDBC3 0x25584 +0x8EAFDBC4 0x25585 +0x8EAFDBC5 0x25586 +0x8EAFDBC6 0x25587 +0x8EAFDBC7 0x25588 +0x8EAFDBC8 0x25589 +0x8EAFDBC9 0x2558A +0x8EAFDBCB 0x25707 +0x8EAFDBCC 0x25708 +0x8EAFDBCD 0x25701 +0x8EAFDBCE 0x25709 +0x8EAFDBCF 0x25702 +0x8EAFDBD0 0x2570A +0x8EAFDBD1 0x2570B +0x8EAFDBD2 0x2570C +0x8EAFDBD3 0x258A7 +0x8EAFDBD4 0x25898 +0x8EAFDBD5 0x25899 +0x8EAFDBD6 0x2589A +0x8EAFDBD7 0x2589B +0x8EAFDBD8 0x2589C +0x8EAFDBD9 0x7A50 +0x8EAFDBDA 0x2589D +0x8EAFDBDB 0x25A1A +0x8EAFDBDC 0x25AB2 +0x8EAFDBDD 0x25CB0 +0x8EAFDBDE 0x25CB1 +0x8EAFDBDF 0x7C14 +0x8EAFDBE0 0x25CB2 +0x8EAFDBE1 0x25CB3 +0x8EAFDBE2 0x25CB4 +0x8EAFDBE3 0x25CB5 +0x8EAFDBE4 0x25CB6 +0x8EAFDBE5 0x25CC0 +0x8EAFDBE6 0x25CB7 +0x8EAFDBE7 0x25CB8 +0x8EAFDBE8 0x25CB9 +0x8EAFDBE9 0x25CBA +0x8EAFDBEA 0x25D1D +0x8EAFDBEB 0x25F0C +0x8EAFDBEC 0x25F0D +0x8EAFDBED 0x25F0E +0x8EAFDBEE 0x25F35 +0x8EAFDBEF 0x25F0F +0x8EAFDBF0 0x25F10 +0x8EAFDBF1 0x25F11 +0x8EAFDBF2 0x25F12 +0x8EAFDBF3 0x26122 +0x8EAFDBF4 0x26123 +0x8EAFDBF5 0x26124 +0x8EAFDBF7 0x26125 +0x8EAFDBF8 0x26126 +0x8EAFDBF9 0x26127 +0x8EAFDBFA 0x26128 +0x8EAFDBFB 0x26129 +0x8EAFDBFC 0x2612A +0x8EAFDBFD 0x2612B +0x8EAFDBFE 0x2612C +0x8EAFDCA1 0x2612D +0x8EAFDCA2 0x2612E +0x8EAFDCA3 0x26252 +0x8EAFDCA4 0x26253 +0x8EAFDCA5 0x26319 +0x8EAFDCA6 0x263BF +0x8EAFDCA7 0x2648B +0x8EAFDCA8 0x2648C +0x8EAFDCA9 0x26523 +0x8EAFDCAA 0x26524 +0x8EAFDCAB 0x265F1 +0x8EAFDCAC 0x265D8 +0x8EAFDCAD 0x2F97F +0x8EAFDCAE 0x2684E +0x8EAFDCAF 0x2684F +0x8EAFDCB0 0x26855 +0x8EAFDCB1 0x26850 +0x8EAFDCB2 0x26851 +0x8EAFDCB3 0x26852 +0x8EAFDCB4 0x26853 +0x8EAFDCB5 0x26802 +0x8EAFDCB6 0x26854 +0x8EAFDCB7 0x268F1 +0x8EAFDCB8 0x26924 +0x8EAFDCB9 0x26AD1 +0x8EAFDCBA 0x26F7C +0x8EAFDCBB 0x26F7D +0x8EAFDCBC 0x26F7E +0x8EAFDCBD 0x26F7F +0x8EAFDCBE 0x26F80 +0x8EAFDCBF 0x26F9F +0x8EAFDCC0 0x26F81 +0x8EAFDCC1 0x26F82 +0x8EAFDCC2 0x26F83 +0x8EAFDCC3 0x26F84 +0x8EAFDCC4 0x26F85 +0x8EAFDCC5 0x26F86 +0x8EAFDCC6 0x26F87 +0x8EAFDCC7 0x26F88 +0x8EAFDCC8 0x26F9B +0x8EAFDCC9 0x26F89 +0x8EAFDCCA 0x26F8A +0x8EAFDCCB 0x26F8B +0x8EAFDCCC 0x26F8C +0x8EAFDCCE 0x26FA1 +0x8EAFDCCF 0x26F8D +0x8EAFDCD0 0x26F8E +0x8EAFDCD1 0x271F3 +0x8EAFDCD2 0x271F4 +0x8EAFDCD3 0x271F5 +0x8EAFDCD4 0x27424 +0x8EAFDCD5 0x27425 +0x8EAFDCD6 0x27426 +0x8EAFDCD7 0x27427 +0x8EAFDCD8 0x27428 +0x8EAFDCD9 0x27429 +0x8EAFDCDA 0x2742A +0x8EAFDCDC 0x2742B +0x8EAFDCDD 0x275CD +0x8EAFDCDE 0x27601 +0x8EAFDCDF 0x2258D +0x8EAFDCE0 0x27770 +0x8EAFDCE1 0x27880 +0x8EAFDCE2 0x27881 +0x8EAFDCE3 0x27AC0 +0x8EAFDCE4 0x27AC1 +0x8EAFDCE5 0x27AC2 +0x8EAFDCE6 0x27AC3 +0x8EAFDCE7 0x27AC4 +0x8EAFDCE8 0x27AC5 +0x8EAFDCE9 0x27AC6 +0x8EAFDCEA 0x27AC7 +0x8EAFDCEB 0x27AC8 +0x8EAFDCEC 0x27CFE +0x8EAFDCEE 0x27DD9 +0x8EAFDCEF 0x27DDC +0x8EAFDCF0 0x27DDA +0x8EAFDCF1 0x27E75 +0x8EAFDCF2 0x27F58 +0x8EAFDCF3 0x27F59 +0x8EAFDCF4 0x27F5A +0x8EAFDCF5 0x27F5B +0x8EAFDCF6 0x27F5C +0x8EAFDCF7 0x280EC +0x8EAFDCF8 0x481A +0x8EAFDCF9 0x280F3 +0x8EAFDCFA 0x28272 +0x8EAFDCFB 0x28273 +0x8EAFDCFC 0x28382 +0x8EAFDCFD 0x28383 +0x8EAFDCFE 0x2842A +0x8EAFDDA1 0x2842B +0x8EAFDDA2 0x2842C +0x8EAFDDA3 0x2842D +0x8EAFDDA4 0x285F6 +0x8EAFDDA5 0x28600 +0x8EAFDDA6 0x285F7 +0x8EAFDDA7 0x285F8 +0x8EAFDDA8 0x285F9 +0x8EAFDDAA 0x28894 +0x8EAFDDAB 0x28895 +0x8EAFDDAC 0x28896 +0x8EAFDDAD 0x2891B +0x8EAFDDAE 0x28A86 +0x8EAFDDAF 0x28A4C +0x8EAFDDB0 0x28A4D +0x8EAFDDB1 0x28A83 +0x8EAFDDB3 0x28A82 +0x8EAFDDB4 0x28A4E +0x8EAFDDB5 0x28A4F +0x8EAFDDB6 0x28A50 +0x8EAFDDB7 0x28A51 +0x8EAFDDB8 0x28A81 +0x8EAFDDB9 0x9387 +0x8EAFDDBA 0x28A52 +0x8EAFDDBB 0x28A53 +0x8EAFDDBC 0x28A54 +0x8EAFDDBD 0x28A55 +0x8EAFDDBF 0x28A56 +0x8EAFDDC0 0x28A57 +0x8EAFDDC1 0x9385 +0x8EAFDDC2 0x28A58 +0x8EAFDDC3 0x28A5B +0x8EAFDDC4 0x28A5C +0x8EAFDDC5 0x28A5D +0x8EAFDDC6 0x28A5E +0x8EAFDDC7 0x28A5F +0x8EAFDDC8 0x28A60 +0x8EAFDDC9 0x28A61 +0x8EAFDDCA 0x28A7C +0x8EAFDDCB 0x28A62 +0x8EAFDDCC 0x493C +0x8EAFDDCE 0x28A63 +0x8EAFDDCF 0x28A64 +0x8EAFDDD0 0x28D73 +0x8EAFDDD1 0x28F45 +0x8EAFDDD2 0x28F46 +0x8EAFDDD3 0x28F47 +0x8EAFDDD4 0x28F4C +0x8EAFDDD5 0x29012 +0x8EAFDDD7 0x29013 +0x8EAFDDD8 0x29139 +0x8EAFDDD9 0x29103 +0x8EAFDDDA 0x2910D +0x8EAFDDDB 0x29230 +0x8EAFDDDC 0x292D5 +0x8EAFDDDD 0x293C0 +0x8EAFDDDE 0x294F2 +0x8EAFDDDF 0x294F3 +0x8EAFDDE0 0x294F4 +0x8EAFDDE1 0x294F5 +0x8EAFDDE2 0x294F6 +0x8EAFDDE3 0x294F7 +0x8EAFDDE4 0x295FA +0x8EAFDDE5 0x295FB +0x8EAFDDE6 0x29745 +0x8EAFDDE7 0x29746 +0x8EAFDDE8 0x29849 +0x8EAFDDE9 0x298E7 +0x8EAFDDEA 0x298E8 +0x8EAFDDEB 0x29AD8 +0x8EAFDDEC 0x29AD9 +0x8EAFDDED 0x29B55 +0x8EAFDDEE 0x29B56 +0x8EAFDDEF 0x29B57 +0x8EAFDDF0 0x29CDA +0x8EAFDDF1 0x29CDB +0x8EAFDDF2 0x29CDC +0x8EAFDDF3 0x29DB8 +0x8EAFDDF4 0x29DB9 +0x8EAFDDF5 0x29DBA +0x8EAFDDF6 0x9BB1 +0x8EAFDDF7 0x29DBB +0x8EAFDDF8 0x29F89 +0x8EAFDDF9 0x29DBC +0x8EAFDDFA 0x2A030 +0x8EAFDDFB 0x2A031 +0x8EAFDDFC 0x2A032 +0x8EAFDDFD 0x2A033 +0x8EAFDEA1 0x2A034 +0x8EAFDEA2 0x2A035 +0x8EAFDEA3 0x2A036 +0x8EAFDEA4 0x9D47 +0x8EAFDEA5 0x2A037 +0x8EAFDEA6 0x2A2B2 +0x8EAFDEA7 0x2A390 +0x8EAFDEA8 0x2A326 +0x8EAFDEA9 0x2A3A2 +0x8EAFDEAA 0x2A438 +0x8EAFDEAC 0x2042E +0x8EAFDEAE 0x2042F +0x8EAFDEAF 0x20430 +0x8EAFDEB0 0x2042A +0x8EAFDEB1 0x2042B +0x8EAFDEB2 0x204C9 +0x8EAFDEB3 0x20537 +0x8EAFDEB4 0x20620 +0x8EAFDEB5 0x20672 +0x8EAFDEB6 0x2081F +0x8EAFDEB7 0x20965 +0x8EAFDEB8 0x209CA +0x8EAFDEB9 0x20AC0 +0x8EAFDEBA 0x20AC1 +0x8EAFDEBB 0x20AC2 +0x8EAFDEBC 0x210B7 +0x8EAFDEBD 0x210B8 +0x8EAFDEBE 0x210B9 +0x8EAFDEBF 0x210BA +0x8EAFDEC0 0x210BB +0x8EAFDEC3 0x210BC +0x8EAFDEC4 0x210BD +0x8EAFDEC5 0x210BE +0x8EAFDEC6 0x210F2 +0x8EAFDEC7 0x214B5 +0x8EAFDEC8 0x214B7 +0x8EAFDEC9 0x214B8 +0x8EAFDECA 0x210DF +0x8EAFDECB 0x214B9 +0x8EAFDECC 0x214D5 +0x8EAFDECD 0x214BA +0x8EAFDECE 0x214BB +0x8EAFDECF 0x2154A +0x8EAFDED0 0x218F2 +0x8EAFDED1 0x218F3 +0x8EAFDED2 0x218F4 +0x8EAFDED3 0x218FA +0x8EAFDED4 0x218F5 +0x8EAFDED5 0x21902 +0x8EAFDED6 0x21AE2 +0x8EAFDED7 0x21AE3 +0x8EAFDED8 0x21F8E +0x8EAFDED9 0x21F8B +0x8EAFDEDA 0x222E4 +0x8EAFDEDB 0x222EB +0x8EAFDEDC 0x222E5 +0x8EAFDEDD 0x22435 +0x8EAFDEDE 0x22593 +0x8EAFDEDF 0x228EA +0x8EAFDEE0 0x228EB +0x8EAFDEE2 0x228EC +0x8EAFDEE3 0x228ED +0x8EAFDEE4 0x22917 +0x8EAFDEE5 0x228EE +0x8EAFDEE6 0x228EF +0x8EAFDEE7 0x228F0 +0x8EAFDEE8 0x22E0E +0x8EAFDEE9 0x22E0F +0x8EAFDEEA 0x22E10 +0x8EAFDEEB 0x22E19 +0x8EAFDEEC 0x22E18 +0x8EAFDEED 0x22E11 +0x8EAFDEEE 0x22E12 +0x8EAFDEEF 0x22E13 +0x8EAFDEF0 0x2F8C7 +0x8EAFDEF1 0x22E14 +0x8EAFDEF2 0x22E15 +0x8EAFDEF3 0x3A6B +0x8EAFDEF4 0x22E16 +0x8EAFDEF5 0x23065 +0x8EAFDEF6 0x232EA +0x8EAFDEF7 0x232EB +0x8EAFDEF8 0x232EC +0x8EAFDEF9 0x232ED +0x8EAFDEFB 0x232EE +0x8EAFDEFC 0x233AC +0x8EAFDEFD 0x237C2 +0x8EAFDEFE 0x23769 +0x8EAFDFA1 0x23781 +0x8EAFDFA2 0x2376A +0x8EAFDFA3 0x2376B +0x8EAFDFA4 0x2376C +0x8EAFDFA5 0x2376D +0x8EAFDFA6 0x2376E +0x8EAFDFA7 0x2376F +0x8EAFDFA8 0x23770 +0x8EAFDFA9 0x3BF4 +0x8EAFDFAA 0x23771 +0x8EAFDFAB 0x23772 +0x8EAFDFAC 0x23773 +0x8EAFDFAD 0x2378C +0x8EAFDFAE 0x23774 +0x8EAFDFAF 0x23775 +0x8EAFDFB0 0x23776 +0x8EAFDFB1 0x23C24 +0x8EAFDFB2 0x23C2A +0x8EAFDFB3 0x2408E +0x8EAFDFB4 0x240AF +0x8EAFDFB5 0x2408F +0x8EAFDFB6 0x24090 +0x8EAFDFB7 0x24091 +0x8EAFDFB9 0x24092 +0x8EAFDFBA 0x24093 +0x8EAFDFBB 0x24094 +0x8EAFDFBC 0x24095 +0x8EAFDFBD 0x24096 +0x8EAFDFBE 0x24097 +0x8EAFDFBF 0x24098 +0x8EAFDFC0 0x24099 +0x8EAFDFC1 0x2409A +0x8EAFDFC2 0x2409B +0x8EAFDFC3 0x2409C +0x8EAFDFC4 0x24439 +0x8EAFDFC5 0x2443B +0x8EAFDFC6 0x2443A +0x8EAFDFC7 0x2443C +0x8EAFDFC8 0x2443D +0x8EAFDFC9 0x2443E +0x8EAFDFCA 0x2443F +0x8EAFDFCB 0x24470 +0x8EAFDFCC 0x24440 +0x8EAFDFCD 0x24441 +0x8EAFDFCE 0x248C0 +0x8EAFDFCF 0x248C1 +0x8EAFDFD0 0x24AA4 +0x8EAFDFD1 0x24A97 +0x8EAFDFD2 0x24AA5 +0x8EAFDFD3 0x24A98 +0x8EAFDFD4 0x24A99 +0x8EAFDFD5 0x24A9A +0x8EAFDFD7 0x24A9B +0x8EAFDFD8 0x24AA6 +0x8EAFDFD9 0x24A9C +0x8EAFDFDA 0x24A9D +0x8EAFDFDB 0x24A9E +0x8EAFDFDC 0x24A9F +0x8EAFDFDD 0x28ACE +0x8EAFDFDE 0x24AC8 +0x8EAFDFDF 0x24AA0 +0x8EAFDFE0 0x24B19 +0x8EAFDFE1 0x24C0D +0x8EAFDFE2 0x250BF +0x8EAFDFE3 0x252E9 +0x8EAFDFE4 0x252EA +0x8EAFDFE5 0x255A2 +0x8EAFDFE6 0x255A3 +0x8EAFDFE7 0x255A4 +0x8EAFDFE8 0x255A5 +0x8EAFDFE9 0x255A6 +0x8EAFDFEA 0x25715 +0x8EAFDFEB 0x25717 +0x8EAFDFEC 0x258BF +0x8EAFDFED 0x258C0 +0x8EAFDFEE 0x258C1 +0x8EAFDFEF 0x258C2 +0x8EAFDFF0 0x258C3 +0x8EAFDFF1 0x258C4 +0x8EAFDFF2 0x258C5 +0x8EAFDFF3 0x2190D +0x8EAFDFF4 0x25A23 +0x8EAFDFF5 0x25ABE +0x8EAFDFF6 0x25D03 +0x8EAFDFF7 0x25D04 +0x8EAFDFF8 0x25D05 +0x8EAFDFF9 0x25D06 +0x8EAFDFFA 0x25D07 +0x8EAFDFFB 0x25D08 +0x8EAFDFFC 0x25D09 +0x8EAFDFFD 0x25D0A +0x8EAFDFFE 0x25D0B +0x8EAFE0A1 0x25D0C +0x8EAFE0A2 0x25D20 +0x8EAFE0A3 0x25D0D +0x8EAFE0A4 0x25D0E +0x8EAFE0A5 0x25D0F +0x8EAFE0A7 0x25F26 +0x8EAFE0A8 0x25F27 +0x8EAFE0A9 0x25F28 +0x8EAFE0AA 0x2615D +0x8EAFE0AB 0x2615E +0x8EAFE0AC 0x2615F +0x8EAFE0AD 0x26160 +0x8EAFE0AE 0x26161 +0x8EAFE0AF 0x26162 +0x8EAFE0B0 0x26163 +0x8EAFE0B1 0x26164 +0x8EAFE0B2 0x26165 +0x8EAFE0B3 0x26257 +0x8EAFE0B4 0x263CF +0x8EAFE0B5 0x263D0 +0x8EAFE0B6 0x26499 +0x8EAFE0B7 0x2649A +0x8EAFE0B8 0x265EA +0x8EAFE0B9 0x265EB +0x8EAFE0BA 0x265EC +0x8EAFE0BB 0x2687E +0x8EAFE0BC 0x2687F +0x8EAFE0BD 0x26880 +0x8EAFE0C0 0x26881 +0x8EAFE0C1 0x26882 +0x8EAFE0C2 0x268F3 +0x8EAFE0C3 0x26925 +0x8EAFE0C4 0x2699F +0x8EAFE0C5 0x269A0 +0x8EAFE0C6 0x269F3 +0x8EAFE0C7 0x26A00 +0x8EAFE0C8 0x26FEB +0x8EAFE0C9 0x26FEC +0x8EAFE0CA 0x26FED +0x8EAFE0CB 0x26FEE +0x8EAFE0CC 0x26FEF +0x8EAFE0CE 0x455C +0x8EAFE0CF 0x26FF0 +0x8EAFE0D0 0x26FF1 +0x8EAFE0D1 0x26FF2 +0x8EAFE0D2 0x26FF3 +0x8EAFE0D3 0x26FF4 +0x8EAFE0D4 0x26FF5 +0x8EAFE0D5 0x26FF9 +0x8EAFE0D6 0x26FFA +0x8EAFE0D7 0x26FFB +0x8EAFE0D8 0x26FFC +0x8EAFE0D9 0x26FFD +0x8EAFE0DA 0x26FFE +0x8EAFE0DB 0x26FFF +0x8EAFE0DC 0x27000 +0x8EAFE0DD 0x2F9AE +0x8EAFE0DE 0x27001 +0x8EAFE0DF 0x27002 +0x8EAFE0E0 0x27203 +0x8EAFE0E1 0x27486 +0x8EAFE0E2 0x27479 +0x8EAFE0E4 0x2747A +0x8EAFE0E5 0x2747B +0x8EAFE0E6 0x2747C +0x8EAFE0E7 0x27484 +0x8EAFE0E8 0x2747D +0x8EAFE0E9 0x2747E +0x8EAFE0EA 0x2747F +0x8EAFE0EB 0x27786 +0x8EAFE0EC 0x27787 +0x8EAFE0ED 0x27800 +0x8EAFE0EE 0x27801 +0x8EAFE0EF 0x27888 +0x8EAFE0F0 0x27889 +0x8EAFE0F1 0x2788A +0x8EAFE0F2 0x27AF5 +0x8EAFE0F4 0x27B25 +0x8EAFE0F5 0x27AF6 +0x8EAFE0F6 0x27DEB +0x8EAFE0F7 0x27DEC +0x8EAFE0F8 0x27DED +0x8EAFE0F9 0x27DEE +0x8EAFE0FA 0x4787 +0x8EAFE0FB 0x27DEF +0x8EAFE0FC 0x27DF0 +0x8EAFE0FD 0x27F6C +0x8EAFE0FE 0x28121 +0x8EAFE1A1 0x28122 +0x8EAFE1A2 0x28123 +0x8EAFE1A3 0x28124 +0x8EAFE1A4 0x28125 +0x8EAFE1A5 0x28126 +0x8EAFE1A6 0x2827B +0x8EAFE1A7 0x2827C +0x8EAFE1A8 0x28391 +0x8EAFE1A9 0x28392 +0x8EAFE1AA 0x28393 +0x8EAFE1AB 0x2860E +0x8EAFE1AC 0x2860F +0x8EAFE1AD 0x28610 +0x8EAFE1AE 0x288B3 +0x8EAFE1AF 0x28936 +0x8EAFE1B0 0x28AC6 +0x8EAFE1B1 0x28AA1 +0x8EAFE1B2 0x28AA2 +0x8EAFE1B3 0x93B9 +0x8EAFE1B4 0x28AA3 +0x8EAFE1B5 0x28ACC +0x8EAFE1B6 0x28AA4 +0x8EAFE1B7 0x28AA5 +0x8EAFE1B8 0x28AA6 +0x8EAFE1B9 0x28ACB +0x8EAFE1BA 0x28AA7 +0x8EAFE1BC 0x28AA8 +0x8EAFE1BD 0x28AA9 +0x8EAFE1BE 0x28AAA +0x8EAFE1C0 0x28AAB +0x8EAFE1C1 0x28AAC +0x8EAFE1C2 0x28AAD +0x8EAFE1C3 0x93BF +0x8EAFE1C4 0x28AAE +0x8EAFE1C5 0x28AAF +0x8EAFE1C6 0x28AB0 +0x8EAFE1C7 0x28D8C +0x8EAFE1C8 0x28D8D +0x8EAFE1C9 0x28D8E +0x8EAFE1CA 0x2F9F1 +0x8EAFE1CB 0x28D92 +0x8EAFE1CC 0x28D8F +0x8EAFE1CD 0x28F52 +0x8EAFE1CE 0x28F53 +0x8EAFE1CF 0x28F54 +0x8EAFE1D0 0x28F55 +0x8EAFE1D1 0x29129 +0x8EAFE1D3 0x292F3 +0x8EAFE1D4 0x292F4 +0x8EAFE1D5 0x2950D +0x8EAFE1D6 0x2950E +0x8EAFE1D7 0x2950F +0x8EAFE1D8 0x29510 +0x8EAFE1D9 0x29614 +0x8EAFE1DA 0x29771 +0x8EAFE1DB 0x29772 +0x8EAFE1DC 0x2990F +0x8EAFE1DD 0x29904 +0x8EAFE1DE 0x29906 +0x8EAFE1E0 0x29907 +0x8EAFE1E1 0x29ADC +0x8EAFE1E2 0x29ADD +0x8EAFE1E3 0x29B6D +0x8EAFE1E4 0x29B79 +0x8EAFE1E5 0x29B6E +0x8EAFE1E7 0x29CEC +0x8EAFE1E8 0x29DDD +0x8EAFE1E9 0x29DDE +0x8EAFE1EA 0x29DDF +0x8EAFE1EB 0x29DE0 +0x8EAFE1EC 0x29DE1 +0x8EAFE1ED 0x29DE2 +0x8EAFE1EE 0x29DE3 +0x8EAFE1EF 0x29DE4 +0x8EAFE1F0 0x29E3A +0x8EAFE1F1 0x29DE5 +0x8EAFE1F2 0x9BCF +0x8EAFE1F3 0x29DE6 +0x8EAFE1F4 0x2A06B +0x8EAFE1F5 0x2A06C +0x8EAFE1F6 0x2444E +0x8EAFE1F7 0x9D64 +0x8EAFE1F8 0x2A2BD +0x8EAFE1F9 0x2A2BE +0x8EAFE1FA 0x2A2BF +0x8EAFE1FB 0x2A334 +0x8EAFE1FC 0x9EBF +0x8EAFE1FD 0x2A512 +0x8EAFE1FE 0x20440 +0x8EAFE2A1 0x20441 +0x8EAFE2A2 0x21102 +0x8EAFE2A3 0x21103 +0x8EAFE2A4 0x21104 +0x8EAFE2A5 0x21105 +0x8EAFE2A6 0x21106 +0x8EAFE2A7 0x214D7 +0x8EAFE2A8 0x214CC +0x8EAFE2A9 0x21698 +0x8EAFE2AA 0x21906 +0x8EAFE2AB 0x21907 +0x8EAFE2AC 0x219AF +0x8EAFE2AD 0x219B0 +0x8EAFE2AE 0x21AEA +0x8EAFE2AF 0x21AF2 +0x8EAFE2B0 0x21FA2 +0x8EAFE2B1 0x21FA3 +0x8EAFE2B2 0x21FA4 +0x8EAFE2B3 0x22176 +0x8EAFE2B4 0x222F5 +0x8EAFE2B5 0x222F6 +0x8EAFE2B6 0x222F7 +0x8EAFE2B8 0x2293B +0x8EAFE2B9 0x22925 +0x8EAFE2BA 0x2293A +0x8EAFE2BB 0x2293C +0x8EAFE2BC 0x2293D +0x8EAFE2BD 0x2293E +0x8EAFE2BE 0x22E37 +0x8EAFE2BF 0x22E38 +0x8EAFE2C0 0x22E39 +0x8EAFE2C1 0x22E3A +0x8EAFE2C2 0x22E3B +0x8EAFE2C3 0x22E3C +0x8EAFE2C4 0x22E3D +0x8EAFE2C5 0x22E3E +0x8EAFE2C6 0x22E3F +0x8EAFE2C7 0x22E4B +0x8EAFE2C9 0x22E40 +0x8EAFE2CA 0x23022 +0x8EAFE2CB 0x23067 +0x8EAFE2CC 0x230D3 +0x8EAFE2CD 0x232FA +0x8EAFE2CF 0x237BC +0x8EAFE2D2 0x237A5 +0x8EAFE2D3 0x3C07 +0x8EAFE2D4 0x237B6 +0x8EAFE2D6 0x237A6 +0x8EAFE2D7 0x237BB +0x8EAFE2D8 0x237A7 +0x8EAFE2D9 0x237A8 +0x8EAFE2DA 0x237A9 +0x8EAFE2DB 0x237AA +0x8EAFE2DC 0x237AB +0x8EAFE2DD 0x237AC +0x8EAFE2DE 0x237BF +0x8EAFE2DF 0x237AD +0x8EAFE2E0 0x237AE +0x8EAFE2E1 0x237AF +0x8EAFE2E2 0x2392E +0x8EAFE2E3 0x23B00 +0x8EAFE2E4 0x2409D +0x8EAFE2E5 0x2409E +0x8EAFE2E6 0x240CB +0x8EAFE2E7 0x240CC +0x8EAFE2E8 0x240CD +0x8EAFE2E9 0x240CE +0x8EAFE2EA 0x240CF +0x8EAFE2EC 0x2409F +0x8EAFE2ED 0x240D0 +0x8EAFE2EE 0x240D1 +0x8EAFE2EF 0x240D2 +0x8EAFE2F0 0x240D3 +0x8EAFE2F1 0x240D4 +0x8EAFE2F4 0x2445D +0x8EAFE2F5 0x2445E +0x8EAFE2F6 0x2445F +0x8EAFE2F7 0x24460 +0x8EAFE2F8 0x3F05 +0x8EAFE2F9 0x24ABA +0x8EAFE2FA 0x24ABC +0x8EAFE2FB 0x3F06 +0x8EAFE2FC 0x24AB5 +0x8EAFE2FD 0x24ABD +0x8EAFE2FE 0x24AB6 +0x8EAFE3A1 0x24AB7 +0x8EAFE3A2 0x24AB8 +0x8EAFE3A3 0x24AA8 +0x8EAFE3A4 0x2F932 +0x8EAFE3A5 0x24BFE +0x8EAFE3A6 0x24BFC +0x8EAFE3A7 0x24EE1 +0x8EAFE3A8 0x250C4 +0x8EAFE3A9 0x250C5 +0x8EAFE3AA 0x25314 +0x8EAFE3AB 0x255AE +0x8EAFE3AC 0x255AF +0x8EAFE3AD 0x255B0 +0x8EAFE3AE 0x255B1 +0x8EAFE3AF 0x255B9 +0x8EAFE3B0 0x258E7 +0x8EAFE3B1 0x25D46 +0x8EAFE3B3 0x25D47 +0x8EAFE3B4 0x25D48 +0x8EAFE3B5 0x25D49 +0x8EAFE3B6 0x25D1E +0x8EAFE3B7 0x25D1F +0x8EAFE3B8 0x25D4A +0x8EAFE3B9 0x25D4B +0x8EAFE3BA 0x25D4C +0x8EAFE3BB 0x25D4D +0x8EAFE3BC 0x25D4E +0x8EAFE3BE 0x25F46 +0x8EAFE3BF 0x25F4B +0x8EAFE3C0 0x26190 +0x8EAFE3C1 0x26191 +0x8EAFE3C3 0x26192 +0x8EAFE3C4 0x26193 +0x8EAFE3C5 0x26194 +0x8EAFE3C6 0x2625B +0x8EAFE3C7 0x265F2 +0x8EAFE3C8 0x265F8 +0x8EAFE3C9 0x265F9 +0x8EAFE3CA 0x26894 +0x8EAFE3CB 0x268A4 +0x8EAFE3CC 0x26897 +0x8EAFE3CD 0x26898 +0x8EAFE3CE 0x26929 +0x8EAFE3CF 0x269AE +0x8EAFE3D0 0x26AAF +0x8EAFE3D1 0x27059 +0x8EAFE3D2 0x2705A +0x8EAFE3D4 0x2705B +0x8EAFE3D5 0x2705C +0x8EAFE3D6 0x2705D +0x8EAFE3D7 0x2705E +0x8EAFE3D8 0x2705F +0x8EAFE3D9 0x27060 +0x8EAFE3DA 0x27061 +0x8EAFE3DB 0x26FAA +0x8EAFE3DC 0x27062 +0x8EAFE3DD 0x27063 +0x8EAFE3DE 0x27064 +0x8EAFE3DF 0x27065 +0x8EAFE3E0 0x27066 +0x8EAFE3E1 0x27067 +0x8EAFE3E2 0x27068 +0x8EAFE3E3 0x27069 +0x8EAFE3E4 0x2706A +0x8EAFE3E5 0x2706B +0x8EAFE3E6 0x2706C +0x8EAFE3E7 0x2706D +0x8EAFE3E8 0x2706E +0x8EAFE3E9 0x2706F +0x8EAFE3EB 0x274B2 +0x8EAFE3EC 0x274B3 +0x8EAFE3ED 0x274B4 +0x8EAFE3EE 0x45F9 +0x8EAFE3EF 0x274B5 +0x8EAFE3F0 0x274B6 +0x8EAFE3F1 0x274B7 +0x8EAFE3F2 0x274B8 +0x8EAFE3F3 0x274B9 +0x8EAFE3F4 0x274BA +0x8EAFE3F5 0x274BB +0x8EAFE3F6 0x27788 +0x8EAFE3F7 0x89B8 +0x8EAFE3F8 0x27B19 +0x8EAFE3F9 0x27B1A +0x8EAFE3FA 0x27B1B +0x8EAFE3FB 0x27C16 +0x8EAFE3FC 0x27E0C +0x8EAFE3FD 0x27E0D +0x8EAFE3FE 0x27E0E +0x8EAFE4A1 0x27E0F +0x8EAFE4A3 0x27F83 +0x8EAFE4A4 0x27F84 +0x8EAFE4A5 0x27F85 +0x8EAFE4A6 0x28283 +0x8EAFE4A7 0x28284 +0x8EAFE4A8 0x283B0 +0x8EAFE4AA 0x28626 +0x8EAFE4AB 0x28627 +0x8EAFE4AC 0x28636 +0x8EAFE4AD 0x28628 +0x8EAFE4AE 0x28629 +0x8EAFE4B1 0x28AE7 +0x8EAFE4B2 0x28AE8 +0x8EAFE4B3 0x28AE9 +0x8EAFE4B4 0x4953 +0x8EAFE4B5 0x28AEA +0x8EAFE4B6 0x28AEB +0x8EAFE4B8 0x28AEC +0x8EAFE4B9 0x28AED +0x8EAFE4BA 0x28AEE +0x8EAFE4BB 0x28AEF +0x8EAFE4BC 0x28AF0 +0x8EAFE4BD 0x28AF1 +0x8EAFE4BE 0x28B0C +0x8EAFE4BF 0x28AF2 +0x8EAFE4C0 0x28AF3 +0x8EAFE4C1 0x28AF4 +0x8EAFE4C2 0x28AF5 +0x8EAFE4C3 0x28AF6 +0x8EAFE4C4 0x28AF7 +0x8EAFE4C5 0x28AF8 +0x8EAFE4C6 0x28DA3 +0x8EAFE4C7 0x28DA4 +0x8EAFE4C8 0x28DA5 +0x8EAFE4C9 0x28DA6 +0x8EAFE4CA 0x28DA7 +0x8EAFE4CC 0x28F5C +0x8EAFE4CE 0x2914B +0x8EAFE4CF 0x291E1 +0x8EAFE4D0 0x29315 +0x8EAFE4D2 0x29316 +0x8EAFE4D3 0x29317 +0x8EAFE4D4 0x2952C +0x8EAFE4D5 0x2952D +0x8EAFE4D6 0x29622 +0x8EAFE4D7 0x29623 +0x8EAFE4D8 0x29796 +0x8EAFE4D9 0x29797 +0x8EAFE4DB 0x2992E +0x8EAFE4DC 0x29930 +0x8EAFE4DD 0x29931 +0x8EAFE4DF 0x29ADF +0x8EAFE4E0 0x29B8B +0x8EAFE4E1 0x29B8C +0x8EAFE4E3 0x29B8D +0x8EAFE4E4 0x29CFC +0x8EAFE4E5 0x29CFD +0x8EAFE4E6 0x29CFE +0x8EAFE4E7 0x29CFF +0x8EAFE4E8 0x29E17 +0x8EAFE4E9 0x29E2D +0x8EAFE4EA 0x29E18 +0x8EAFE4EB 0x9BF3 +0x8EAFE4EC 0x29E19 +0x8EAFE4EE 0x29E12 +0x8EAFE4EF 0x29E1A +0x8EAFE4F0 0x29E1B +0x8EAFE4F1 0x29E1C +0x8EAFE4F2 0x4C69 +0x8EAFE4F4 0x2A097 +0x8EAFE4F5 0x4CE5 +0x8EAFE4F6 0x2A098 +0x8EAFE4F7 0x2A099 +0x8EAFE4F9 0x2A3C4 +0x8EAFE4FA 0x2044F +0x8EAFE4FB 0x204CD +0x8EAFE4FC 0x20AC7 +0x8EAFE4FD 0x2111C +0x8EAFE4FE 0x2111D +0x8EAFE5A1 0x2111E +0x8EAFE5A2 0x214E7 +0x8EAFE5A3 0x214E9 +0x8EAFE5A4 0x214EA +0x8EAFE5A5 0x214EB +0x8EAFE5A6 0x21915 +0x8EAFE5A7 0x21CF1 +0x8EAFE5A8 0x21CF2 +0x8EAFE5A9 0x21FB6 +0x8EAFE5AA 0x225A0 +0x8EAFE5AB 0x2294A +0x8EAFE5AC 0x22A20 +0x8EAFE5AD 0x22E60 +0x8EAFE5AE 0x22E61 +0x8EAFE5AF 0x22E41 +0x8EAFE5B0 0x22E62 +0x8EAFE5B1 0x23303 +0x8EAFE5B2 0x23304 +0x8EAFE5B3 0x237D9 +0x8EAFE5B4 0x237DA +0x8EAFE5B5 0x237DB +0x8EAFE5B6 0x237DC +0x8EAFE5B7 0x237DD +0x8EAFE5B9 0x237DE +0x8EAFE5BA 0x237DF +0x8EAFE5BB 0x237E0 +0x8EAFE5BC 0x237E1 +0x8EAFE5BD 0x237E2 +0x8EAFE5BE 0x3C12 +0x8EAFE5BF 0x237E3 +0x8EAFE5C1 0x23C31 +0x8EAFE5C2 0x24105 +0x8EAFE5C3 0x24106 +0x8EAFE5C4 0x24107 +0x8EAFE5C5 0x24472 +0x8EAFE5C6 0x2448A +0x8EAFE5C7 0x2448B +0x8EAFE5C8 0x24488 +0x8EAFE5CA 0x2448C +0x8EAFE5CB 0x2448D +0x8EAFE5CC 0x2448E +0x8EAFE5CD 0x2448F +0x8EAFE5CE 0x24490 +0x8EAFE5CF 0x24542 +0x8EAFE5D0 0x24543 +0x8EAFE5D2 0x24AC1 +0x8EAFE5D3 0x24AC2 +0x8EAFE5D4 0x24AC3 +0x8EAFE5D5 0x24AC4 +0x8EAFE5D6 0x250CB +0x8EAFE5D7 0x25322 +0x8EAFE5DA 0x255C3 +0x8EAFE5DB 0x255C4 +0x8EAFE5DC 0x255C5 +0x8EAFE5DD 0x255C6 +0x8EAFE5DE 0x2571E +0x8EAFE5DF 0x25725 +0x8EAFE5E0 0x258F3 +0x8EAFE5E1 0x258F4 +0x8EAFE5E3 0x258F5 +0x8EAFE5E4 0x25A38 +0x8EAFE5E5 0x25A48 +0x8EAFE5E6 0x25ACA +0x8EAFE5E7 0x7C4F +0x8EAFE5E8 0x25D7A +0x8EAFE5E9 0x25D7B +0x8EAFE5EA 0x25F55 +0x8EAFE5EB 0x25F56 +0x8EAFE5EC 0x261B1 +0x8EAFE5ED 0x261B2 +0x8EAFE5EE 0x261B3 +0x8EAFE5F0 0x261B4 +0x8EAFE5F1 0x261B5 +0x8EAFE5F2 0x264A4 +0x8EAFE5F3 0x26600 +0x8EAFE5F4 0x26601 +0x8EAFE5F5 0x26602 +0x8EAFE5F6 0x268AC +0x8EAFE5F8 0x269B3 +0x8EAFE5F9 0x270B6 +0x8EAFE5FA 0x270B7 +0x8EAFE5FB 0x270B8 +0x8EAFE5FC 0x270B9 +0x8EAFE5FD 0x270BA +0x8EAFE5FE 0x270BB +0x8EAFE6A1 0x270BC +0x8EAFE6A2 0x270BD +0x8EAFE6A3 0x270BE +0x8EAFE6A4 0x270BF +0x8EAFE6A5 0x270C0 +0x8EAFE6A6 0x270C1 +0x8EAFE6A7 0x270C2 +0x8EAFE6A8 0x270C3 +0x8EAFE6A9 0x270C4 +0x8EAFE6AA 0x270C5 +0x8EAFE6AB 0x270C6 +0x8EAFE6AC 0x270C7 +0x8EAFE6AD 0x274E3 +0x8EAFE6AE 0x274E4 +0x8EAFE6AF 0x274E5 +0x8EAFE6B0 0x274E6 +0x8EAFE6B1 0x274E7 +0x8EAFE6B3 0x277B5 +0x8EAFE6B4 0x277A1 +0x8EAFE6B5 0x27895 +0x8EAFE6B6 0x27B3B +0x8EAFE6B7 0x27B3C +0x8EAFE6B8 0x27B3D +0x8EAFE6B9 0x27B3E +0x8EAFE6BA 0x27C14 +0x8EAFE6BB 0x27E20 +0x8EAFE6BC 0x27E21 +0x8EAFE6BD 0x27E22 +0x8EAFE6BE 0x27E23 +0x8EAFE6BF 0x27E24 +0x8EAFE6C0 0x27F96 +0x8EAFE6C1 0x27F97 +0x8EAFE6C2 0x27F98 +0x8EAFE6C3 0x28194 +0x8EAFE6C4 0x28195 +0x8EAFE6C5 0x28196 +0x8EAFE6C6 0x28197 +0x8EAFE6C7 0x28198 +0x8EAFE6C8 0x2828F +0x8EAFE6C9 0x28290 +0x8EAFE6CA 0x283BC +0x8EAFE6CB 0x2843B +0x8EAFE6CC 0x2863D +0x8EAFE6CE 0x288DF +0x8EAFE6CF 0x2891E +0x8EAFE6D0 0x28B23 +0x8EAFE6D1 0x28B24 +0x8EAFE6D2 0x28B49 +0x8EAFE6D3 0x28B25 +0x8EAFE6D4 0x28B26 +0x8EAFE6D5 0x28B27 +0x8EAFE6D6 0x28B28 +0x8EAFE6D7 0x9425 +0x8EAFE6D8 0x28B29 +0x8EAFE6D9 0x28B2A +0x8EAFE6DA 0x28B2E +0x8EAFE6DB 0x28B2F +0x8EAFE6DC 0x28B4E +0x8EAFE6DD 0x28B30 +0x8EAFE6DE 0x2F9EB +0x8EAFE6DF 0x28B31 +0x8EAFE6E0 0x28B32 +0x8EAFE6E1 0x28B33 +0x8EAFE6E2 0x28B34 +0x8EAFE6E3 0x28B35 +0x8EAFE6E4 0x28B36 +0x8EAFE6E6 0x28B37 +0x8EAFE6E7 0x28B50 +0x8EAFE6E8 0x28B38 +0x8EAFE6EA 0x28B39 +0x8EAFE6EB 0x28B3A +0x8EAFE6EC 0x28B3B +0x8EAFE6ED 0x28B3C +0x8EAFE6EE 0x28B3D +0x8EAFE6EF 0x28B3E +0x8EAFE6F0 0x28DB8 +0x8EAFE6F1 0x28DB9 +0x8EAFE6F2 0x28F62 +0x8EAFE6F3 0x28F63 +0x8EAFE6F4 0x29041 +0x8EAFE6F5 0x2916D +0x8EAFE6F7 0x29352 +0x8EAFE6F8 0x29337 +0x8EAFE6F9 0x293DB +0x8EAFE6FA 0x2953F +0x8EAFE6FB 0x29634 +0x8EAFE6FC 0x2985B +0x8EAFE6FD 0x29946 +0x8EAFE6FE 0x2995A +0x8EAFE7A1 0x2995B +0x8EAFE7A2 0x29AE1 +0x8EAFE7A3 0x29AE2 +0x8EAFE7A4 0x29AE3 +0x8EAFE7A5 0x29AE4 +0x8EAFE7A6 0x29BA7 +0x8EAFE7A7 0x29BA8 +0x8EAFE7A8 0x29BA9 +0x8EAFE7A9 0x29D0F +0x8EAFE7AA 0x29D2B +0x8EAFE7AB 0x29E56 +0x8EAFE7AC 0x29E57 +0x8EAFE7AD 0x29E58 +0x8EAFE7AE 0x29E5E +0x8EAFE7AF 0x29E59 +0x8EAFE7B0 0x29E5A +0x8EAFE7B1 0x29E5B +0x8EAFE7B2 0x29E5C +0x8EAFE7B4 0x29E68 +0x8EAFE7B6 0x2A12C +0x8EAFE7B7 0x2A0E2 +0x8EAFE7B8 0x2A0F3 +0x8EAFE7B9 0x2A2D2 +0x8EAFE7BA 0x2A356 +0x8EAFE7BB 0x2A3CE +0x8EAFE7BC 0x2A461 +0x8EAFE7BD 0x2A69B +0x8EAFE7BE 0x2A6B4 +0x8EAFE7BF 0x2045C +0x8EAFE7C0 0x2F810 +0x8EAFE7C1 0x204D2 +0x8EAFE7C2 0x20571 +0x8EAFE7C3 0x20673 +0x8EAFE7C4 0x2082C +0x8EAFE7C5 0x20B94 +0x8EAFE7C7 0x2113F +0x8EAFE7C8 0x21140 +0x8EAFE7C9 0x214F9 +0x8EAFE7CA 0x214FA +0x8EAFE7CB 0x214FD +0x8EAFE7CC 0x214FB +0x8EAFE7CD 0x2191C +0x8EAFE7CE 0x2191D +0x8EAFE7CF 0x21AFF +0x8EAFE7D0 0x21B00 +0x8EAFE7D1 0x21CF7 +0x8EAFE7D2 0x24CFE +0x8EAFE7D4 0x224B6 +0x8EAFE7D5 0x22954 +0x8EAFE7D6 0x22E77 +0x8EAFE7D7 0x22E79 +0x8EAFE7D8 0x22E7A +0x8EAFE7D9 0x22E7B +0x8EAFE7DA 0x23069 +0x8EAFE7DB 0x23802 +0x8EAFE7DC 0x23803 +0x8EAFE7DD 0x23804 +0x8EAFE7DE 0x23805 +0x8EAFE7DF 0x23806 +0x8EAFE7E0 0x23807 +0x8EAFE7E1 0x23808 +0x8EAFE7E2 0x23809 +0x8EAFE7E3 0x2380A +0x8EAFE7E4 0x2380B +0x8EAFE7E5 0x23835 +0x8EAFE7E7 0x23C39 +0x8EAFE7E8 0x2411E +0x8EAFE7E9 0x2411F +0x8EAFE7EA 0x24120 +0x8EAFE7EB 0x24121 +0x8EAFE7ED 0x24122 +0x8EAFE7EE 0x24123 +0x8EAFE7EF 0x24124 +0x8EAFE7F0 0x2412C +0x8EAFE7F1 0x244B3 +0x8EAFE7F2 0x244B5 +0x8EAFE7F3 0x244B6 +0x8EAFE7F4 0x244B7 +0x8EAFE7F5 0x244B8 +0x8EAFE7F6 0x24AD0 +0x8EAFE7F7 0x24CFA +0x8EAFE7F8 0x24F07 +0x8EAFE7F9 0x24FBD +0x8EAFE7FA 0x250D7 +0x8EAFE7FB 0x250D2 +0x8EAFE7FC 0x255DB +0x8EAFE7FD 0x255D6 +0x8EAFE7FE 0x2045D +0x8EAFE8A1 0x25A43 +0x8EAFE8A2 0x25ACF +0x8EAFE8A3 0x25DA3 +0x8EAFE8A4 0x25DA4 +0x8EAFE8A5 0x25DA5 +0x8EAFE8A6 0x25DA6 +0x8EAFE8A7 0x25DA7 +0x8EAFE8A8 0x25DA8 +0x8EAFE8A9 0x25DA9 +0x8EAFE8AA 0x25F5D +0x8EAFE8AB 0x25F5E +0x8EAFE8AC 0x261C9 +0x8EAFE8AD 0x261CA +0x8EAFE8AE 0x261CB +0x8EAFE8AF 0x261CC +0x8EAFE8B0 0x26606 +0x8EAFE8B1 0x26607 +0x8EAFE8B3 0x268C5 +0x8EAFE8B4 0x268F5 +0x8EAFE8B5 0x269B4 +0x8EAFE8B6 0x269B8 +0x8EAFE8B7 0x269B5 +0x8EAFE8B8 0x270FD +0x8EAFE8B9 0x4577 +0x8EAFE8BA 0x270FE +0x8EAFE8BB 0x270FF +0x8EAFE8BC 0x27100 +0x8EAFE8BD 0x27101 +0x8EAFE8BE 0x27102 +0x8EAFE8BF 0x27103 +0x8EAFE8C0 0x27109 +0x8EAFE8C1 0x27104 +0x8EAFE8C2 0x27105 +0x8EAFE8C3 0x27106 +0x8EAFE8C4 0x27107 +0x8EAFE8C5 0x27511 +0x8EAFE8C6 0x27512 +0x8EAFE8C7 0x27513 +0x8EAFE8C8 0x27514 +0x8EAFE8C9 0x27515 +0x8EAFE8CA 0x8977 +0x8EAFE8CB 0x27898 +0x8EAFE8CC 0x27899 +0x8EAFE8CD 0x27E3C +0x8EAFE8CE 0x27E2D +0x8EAFE8CF 0x27E2E +0x8EAFE8D1 0x281BB +0x8EAFE8D2 0x281BC +0x8EAFE8D3 0x4878 +0x8EAFE8D4 0x2843D +0x8EAFE8D5 0x28647 +0x8EAFE8D6 0x28648 +0x8EAFE8D7 0x28649 +0x8EAFE8D8 0x2864A +0x8EAFE8D9 0x287E1 +0x8EAFE8DA 0x287E7 +0x8EAFE8DB 0x288EB +0x8EAFE8DC 0x28920 +0x8EAFE8DD 0x28938 +0x8EAFE8DE 0x28B62 +0x8EAFE8DF 0x28B67 +0x8EAFE8E0 0x28B68 +0x8EAFE8E1 0x28B69 +0x8EAFE8E2 0x28B6A +0x8EAFE8E3 0x28B6B +0x8EAFE8E4 0x28B6D +0x8EAFE8E5 0x28B6E +0x8EAFE8E6 0x28B6F +0x8EAFE8E7 0x28B70 +0x8EAFE8E8 0x28B71 +0x8EAFE8E9 0x28B72 +0x8EAFE8EA 0x28B8F +0x8EAFE8EB 0x28B73 +0x8EAFE8EC 0x28B74 +0x8EAFE8ED 0x28B75 +0x8EAFE8EE 0x28B76 +0x8EAFE8EF 0x28B77 +0x8EAFE8F0 0x28DC9 +0x8EAFE8F1 0x28DCA +0x8EAFE8F2 0x95E6 +0x8EAFE8F3 0x28DCB +0x8EAFE8F4 0x28DCC +0x8EAFE8F5 0x28DCD +0x8EAFE8F6 0x29051 +0x8EAFE8F9 0x29245 +0x8EAFE8FA 0x29559 +0x8EAFE8FB 0x2955A +0x8EAFE8FC 0x2955B +0x8EAFE8FD 0x29640 +0x8EAFE8FE 0x297CF +0x8EAFE9A1 0x2985E +0x8EAFE9A2 0x2997B +0x8EAFE9A3 0x29A93 +0x8EAFE9A4 0x29BBC +0x8EAFE9A5 0x29D16 +0x8EAFE9A6 0x29D30 +0x8EAFE9A8 0x29E8D +0x8EAFE9A9 0x29E8E +0x8EAFE9AA 0x9C2F +0x8EAFE9AB 0x29E8F +0x8EAFE9AC 0x29E90 +0x8EAFE9AD 0x29E91 +0x8EAFE9AE 0x29E92 +0x8EAFE9AF 0x29E93 +0x8EAFE9B0 0x29E94 +0x8EAFE9B1 0x29E95 +0x8EAFE9B2 0x29E96 +0x8EAFE9B3 0x2A123 +0x8EAFE9B4 0x2A114 +0x8EAFE9B5 0x2A2DB +0x8EAFE9B6 0x2A40A +0x8EAFE9B7 0x2A5CE +0x8EAFE9B8 0x20466 +0x8EAFE9B9 0x20468 +0x8EAFE9BA 0x20467 +0x8EAFE9BB 0x204D3 +0x8EAFE9BC 0x21163 +0x8EAFE9BD 0x21504 +0x8EAFE9BE 0x2169E +0x8EAFE9BF 0x21926 +0x8EAFE9C0 0x2192A +0x8EAFE9C1 0x2296C +0x8EAFE9C2 0x22964 +0x8EAFE9C3 0x22E8F +0x8EAFE9C4 0x22E90 +0x8EAFE9C5 0x23034 +0x8EAFE9C6 0x2330E +0x8EAFE9C7 0x23825 +0x8EAFE9C8 0x23826 +0x8EAFE9C9 0x23827 +0x8EAFE9CB 0x23828 +0x8EAFE9CC 0x6B0C +0x8EAFE9CE 0x23829 +0x8EAFE9CF 0x2382A +0x8EAFE9D0 0x2382B +0x8EAFE9D1 0x2382C +0x8EAFE9D2 0x23C3E +0x8EAFE9D3 0x24142 +0x8EAFE9D4 0x24143 +0x8EAFE9D5 0x24133 +0x8EAFE9D6 0x244C1 +0x8EAFE9D7 0x244C2 +0x8EAFE9D8 0x244C3 +0x8EAFE9D9 0x24AD6 +0x8EAFE9DA 0x24AD7 +0x8EAFE9DB 0x255E1 +0x8EAFE9DC 0x255E2 +0x8EAFE9DD 0x2572B +0x8EAFE9DE 0x25AD1 +0x8EAFE9DF 0x25DCC +0x8EAFE9E0 0x25DCD +0x8EAFE9E1 0x25DCE +0x8EAFE9E2 0x25DCF +0x8EAFE9E3 0x261DE +0x8EAFE9E4 0x261DF +0x8EAFE9E5 0x261E0 +0x8EAFE9E6 0x261E1 +0x8EAFE9E7 0x268F6 +0x8EAFE9E8 0x2712C +0x8EAFE9EA 0x27154 +0x8EAFE9EB 0x2712D +0x8EAFE9EC 0x2712E +0x8EAFE9ED 0x27541 +0x8EAFE9EE 0x27542 +0x8EAFE9EF 0x277C7 +0x8EAFE9F0 0x278A0 +0x8EAFE9F1 0x278A1 +0x8EAFE9F2 0x27B70 +0x8EAFE9F3 0x27B71 +0x8EAFE9F4 0x27B72 +0x8EAFE9F6 0x27E34 +0x8EAFE9F7 0x27E35 +0x8EAFE9F8 0x27E36 +0x8EAFE9F9 0x27FA6 +0x8EAFE9FA 0x281CC +0x8EAFE9FC 0x28299 +0x8EAFE9FD 0x288F4 +0x8EAFE9FE 0x28B9B +0x8EAFEAA1 0x28B9E +0x8EAFEAA2 0x28B9F +0x8EAFEAA3 0x28BA0 +0x8EAFEAA4 0x28BA1 +0x8EAFEAA5 0x28BA2 +0x8EAFEAA6 0x28BA3 +0x8EAFEAA7 0x28BA4 +0x8EAFEAA8 0x28BA5 +0x8EAFEAA9 0x28BA6 +0x8EAFEAAA 0x28BA7 +0x8EAFEAAB 0x28BA8 +0x8EAFEAAC 0x28DDB +0x8EAFEAAD 0x28DDC +0x8EAFEAAE 0x28DDD +0x8EAFEAAF 0x28DD7 +0x8EAFEAB0 0x28DDE +0x8EAFEAB1 0x28DDF +0x8EAFEAB2 0x29059 +0x8EAFEAB3 0x29446 +0x8EAFEAB4 0x29565 +0x8EAFEAB5 0x29649 +0x8EAFEAB7 0x297DD +0x8EAFEAB8 0x29995 +0x8EAFEAB9 0x29996 +0x8EAFEABA 0x29997 +0x8EAFEABB 0x29BD4 +0x8EAFEABC 0x29BD6 +0x8EAFEABD 0x29D26 +0x8EAFEABE 0x9C47 +0x8EAFEABF 0x4C88 +0x8EAFEAC0 0x29EC8 +0x8EAFEAC1 0x29EC5 +0x8EAFEAC2 0x29EC6 +0x8EAFEAC3 0x29EC7 +0x8EAFEAC4 0x2A151 +0x8EAFEAC5 0x2A152 +0x8EAFEAC6 0x2A153 +0x8EAFEAC7 0x2A154 +0x8EAFEAC8 0x2A155 +0x8EAFEAC9 0x2A2DE +0x8EAFEACB 0x2046D +0x8EAFEACC 0x204D5 +0x8EAFEACD 0x21172 +0x8EAFEACE 0x221AE +0x8EAFEACF 0x2230F +0x8EAFEAD0 0x2296B +0x8EAFEAD1 0x2296D +0x8EAFEAD2 0x2296E +0x8EAFEAD3 0x22978 +0x8EAFEAD4 0x22E98 +0x8EAFEAD5 0x22E99 +0x8EAFEAD6 0x22E9A +0x8EAFEAD7 0x23844 +0x8EAFEAD8 0x2385C +0x8EAFEAD9 0x23845 +0x8EAFEADA 0x23B01 +0x8EAFEADB 0x24158 +0x8EAFEADC 0x24159 +0x8EAFEADD 0x2415A +0x8EAFEADF 0x244D9 +0x8EAFEAE0 0x244D6 +0x8EAFEAE1 0x24ADA +0x8EAFEAE2 0x24ADF +0x8EAFEAE3 0x24ADB +0x8EAFEAE4 0x24D03 +0x8EAFEAE5 0x255EF +0x8EAFEAE6 0x7936 +0x8EAFEAE7 0x25733 +0x8EAFEAE8 0x25AD2 +0x8EAFEAE9 0x25DE1 +0x8EAFEAEA 0x25F6F +0x8EAFEAEB 0x26264 +0x8EAFEAEC 0x2660E +0x8EAFEAED 0x27150 +0x8EAFEAEE 0x27151 +0x8EAFEAEF 0x27152 +0x8EAFEAF0 0x27556 +0x8EAFEAF1 0x27557 +0x8EAFEAF2 0x27558 +0x8EAFEAF4 0x27B81 +0x8EAFEAF5 0x27B82 +0x8EAFEAF6 0x27C1D +0x8EAFEAF7 0x27C1E +0x8EAFEAF8 0x27E43 +0x8EAFEAF9 0x27FAA +0x8EAFEAFA 0x288FD +0x8EAFEAFC 0x28BC6 +0x8EAFEAFD 0x28BC7 +0x8EAFEAFE 0x28BD9 +0x8EAFEBA1 0x28BD7 +0x8EAFEBA3 0x28BC8 +0x8EAFEBA4 0x28BC9 +0x8EAFEBA5 0x28BCA +0x8EAFEBA6 0x28BCB +0x8EAFEBA7 0x28BDA +0x8EAFEBA9 0x28BCC +0x8EAFEBAA 0x28BCD +0x8EAFEBAB 0x28BCE +0x8EAFEBAC 0x28BCF +0x8EAFEBAD 0x28BD0 +0x8EAFEBAE 0x28BD1 +0x8EAFEBAF 0x28BBC +0x8EAFEBB0 0x28DE1 +0x8EAFEBB1 0x28DE2 +0x8EAFEBB2 0x28DE3 +0x8EAFEBB3 0x291A9 +0x8EAFEBB4 0x2924E +0x8EAFEBB5 0x29577 +0x8EAFEBB8 0x299AC +0x8EAFEBB9 0x299AD +0x8EAFEBBA 0x29AB6 +0x8EAFEBBB 0x29BE5 +0x8EAFEBBC 0x29EF8 +0x8EAFEBBD 0x29EEA +0x8EAFEBBE 0x29F8D +0x8EAFEBBF 0x29EEB +0x8EAFEBC0 0x2A195 +0x8EAFEBC1 0x2046E +0x8EAFEBC2 0x204D8 +0x8EAFEBC3 0x21183 +0x8EAFEBC4 0x216A3 +0x8EAFEBC5 0x21930 +0x8EAFEBC6 0x21B0F +0x8EAFEBC7 0x22979 +0x8EAFEBC8 0x2297A +0x8EAFEBC9 0x22EA7 +0x8EAFEBCA 0x22EA8 +0x8EAFEBCB 0x22EA9 +0x8EAFEBCC 0x22EAA +0x8EAFEBCD 0x23319 +0x8EAFEBCE 0x23850 +0x8EAFEBCF 0x23851 +0x8EAFEBD0 0x23852 +0x8EAFEBD1 0x6B15 +0x8EAFEBD2 0x23868 +0x8EAFEBD3 0x23853 +0x8EAFEBD4 0x23854 +0x8EAFEBD5 0x248E2 +0x8EAFEBD6 0x24ADC +0x8EAFEBD7 0x25915 +0x8EAFEBD8 0x25916 +0x8EAFEBD9 0x25A4F +0x8EAFEBDA 0x25DF5 +0x8EAFEBDB 0x25DF6 +0x8EAFEBDC 0x25DF7 +0x8EAFEBDD 0x261F4 +0x8EAFEBDE 0x264CC +0x8EAFEBDF 0x2660F +0x8EAFEBE0 0x27166 +0x8EAFEBE1 0x27167 +0x8EAFEBE3 0x27168 +0x8EAFEBE4 0x278A4 +0x8EAFEBE5 0x27B8B +0x8EAFEBE6 0x27B8C +0x8EAFEBE7 0x281FA +0x8EAFEBE8 0x28BE6 +0x8EAFEBE9 0x28BED +0x8EAFEBEA 0x28BEE +0x8EAFEBEB 0x28BEF +0x8EAFEBEC 0x28BF0 +0x8EAFEBED 0x28BFE +0x8EAFEBEE 0x28DE7 +0x8EAFEBEF 0x28DE8 +0x8EAFEBF0 0x291B3 +0x8EAFEBF1 0x291E4 +0x8EAFEBF2 0x29583 +0x8EAFEBF3 0x29AEC +0x8EAFEBF5 0x29F16 +0x8EAFEBF8 0x29F17 +0x8EAFEBF9 0x2A1C3 +0x8EAFEBFA 0x2A1AC +0x8EAFEBFB 0x2A2ED +0x8EAFEBFE 0x2A5B4 +0x8EAFECA2 0x2118A +0x8EAFECA3 0x2118B +0x8EAFECA4 0x21934 +0x8EAFECA5 0x21B14 +0x8EAFECA6 0x21FDF +0x8EAFECA7 0x224BB +0x8EAFECA8 0x2297F +0x8EAFECA9 0x22981 +0x8EAFECAA 0x22EAD +0x8EAFECAB 0x22EAE +0x8EAFECAC 0x23862 +0x8EAFECAD 0x2386E +0x8EAFECAF 0x2416E +0x8EAFECB1 0x24717 +0x8EAFECB2 0x24AE6 +0x8EAFECB3 0x24C10 +0x8EAFECB4 0x25919 +0x8EAFECB6 0x26610 +0x8EAFECB7 0x26AF2 +0x8EAFECB8 0x27176 +0x8EAFECB9 0x27177 +0x8EAFECBA 0x27B95 +0x8EAFECBB 0x27B96 +0x8EAFECBC 0x28C00 +0x8EAFECBD 0x28C01 +0x8EAFECBE 0x28C31 +0x8EAFECBF 0x2F9ED +0x8EAFECC0 0x28C1C +0x8EAFECC1 0x2906D +0x8EAFECC2 0x29BF4 +0x8EAFECC3 0x29BF5 +0x8EAFECC4 0x29D3D +0x8EAFECC5 0x29F32 +0x8EAFECC6 0x29F33 +0x8EAFECC7 0x2A2F4 +0x8EAFECC9 0x20473 +0x8EAFECCA 0x21937 +0x8EAFECCC 0x23871 +0x8EAFECCD 0x25E0F +0x8EAFECCF 0x25E0E +0x8EAFECD0 0x26611 +0x8EAFECD1 0x27185 +0x8EAFECD2 0x28C14 +0x8EAFECD3 0x28C15 +0x8EAFECD4 0x28C16 +0x8EAFECD5 0x28C17 +0x8EAFECD6 0x28C18 +0x8EAFECD7 0x28C19 +0x8EAFECD8 0x28C1A +0x8EAFECD9 0x291C3 +0x8EAFECDA 0x29F42 +0x8EAFECDB 0x29F43 +0x8EAFECDC 0x29F44 +0x8EAFECDD 0x29F48 +0x8EAFECDE 0x2A1FB +0x8EAFECDF 0x216A5 +0x8EAFECE0 0x219B8 +0x8EAFECE1 0x22EB2 +0x8EAFECE2 0x2303D +0x8EAFECE3 0x23872 +0x8EAFECE4 0x244E7 +0x8EAFECE5 0x244E8 +0x8EAFECE6 0x25359 +0x8EAFECE7 0x2573A +0x8EAFECE8 0x25E14 +0x8EAFECE9 0x261FF +0x8EAFECEA 0x269C0 +0x8EAFECEB 0x2718D +0x8EAFECEC 0x4584 +0x8EAFECED 0x2718E +0x8EAFECEF 0x28C22 +0x8EAFECF2 0x29C04 +0x8EAFECF3 0x29C29 +0x8EAFECF4 0x29F51 +0x8EAFECF5 0x29F66 +0x8EAFECF6 0x2A20E +0x8EAFECF7 0x2FA13 +0x8EAFECF9 0x2119B +0x8EAFECFA 0x2119C +0x8EAFECFB 0x22316 +0x8EAFECFC 0x22986 +0x8EAFECFD 0x22987 +0x8EAFEDA1 0x28C2C +0x8EAFEDA2 0x28C30 +0x8EAFEDA3 0x28C28 +0x8EAFEDA4 0x2965F +0x8EAFEDA6 0x2417E +0x8EAFEDA7 0x25E19 +0x8EAFEDA8 0x2820A +0x8EAFEDA9 0x28C36 +0x8EAFEDAA 0x28DFC +0x8EAFEDAB 0x29F6D +0x8EAFEDAC 0x29F6E +0x8EAFEDAD 0x2A6C6 +0x8EAFEDAE 0x53B5 +0x8EAFEDAF 0x2387B +0x8EAFEDB0 0x26206 +0x8EAFEDB1 0x2759F +0x8EAFEDB2 0x2A232 +0x8EAFEDB3 0x2820D +0x8EAFEDB4 0x2298B +0x8EAFEDB5 0x28C3B +0x8EAFEDB7 0x2A23D +0x8EAFEDB8 0x28C3C +0x8EAFEDB9 0x28C3D +0xA1A1 0x3000 +0xA1A2 0xFF0C +0xA1A3 0x3001 +0xA1A4 0x3002 +0xA1A5 0xFF0E +0xA1A6 0x30FB +0xA1A7 0xFF1B +0xA1A8 0xFF1A +0xA1A9 0xFF1F +0xA1AA 0xFF01 +0xA1AB 0xFE30 +0xA1AC 0x2026 +0xA1AD 0x2025 +0xA1AE 0xFE50 +0xA1AF 0xFE51 +0xA1B0 0xFE52 +0xA1B1 0x00B7 +0xA1B2 0xFE54 +0xA1B3 0xFE55 +0xA1B4 0xFE56 +0xA1B5 0xFE57 +0xA1B6 0xFE31 +0xA1B7 0x2014 +0xA1B8 0xFE32 +0xA1B9 0x2013 +0xA1BE 0xFF08 +0xA1BF 0xFF09 +0xA1C0 0xFE35 +0xA1C1 0xFE36 +0xA1C2 0xFF5B +0xA1C3 0xFF5D +0xA1C4 0xFE37 +0xA1C5 0xFE38 +0xA1C6 0x3014 +0xA1C7 0x3015 +0xA1C8 0xFE39 +0xA1C9 0xFE3A +0xA1CA 0x3010 +0xA1CB 0x3011 +0xA1CC 0xFE3B +0xA1CD 0xFE3C +0xA1CE 0x300A +0xA1CF 0x300B +0xA1D0 0xFE3D +0xA1D1 0xFE3E +0xA1D2 0x3008 +0xA1D3 0x3009 +0xA1D4 0xFE3F +0xA1D5 0xFE40 +0xA1D6 0x300C +0xA1D7 0x300D +0xA1D8 0xFE41 +0xA1D9 0xFE42 +0xA1DA 0x300E +0xA1DB 0x300F +0xA1DC 0xFE43 +0xA1DD 0xFE44 +0xA1DE 0xFE59 +0xA1DF 0xFE5A +0xA1E0 0xFE5B +0xA1E1 0xFE5C +0xA1E2 0xFE5D +0xA1E3 0xFE5E +0xA1E4 0x2018 +0xA1E5 0x2019 +0xA1E6 0x201C +0xA1E7 0x201D +0xA1E8 0x301D +0xA1E9 0x301E +0xA1EA 0x2032 +0xA1EB 0x2035 +0xA1EC 0xFF03 +0xA1ED 0xFF06 +0xA1EE 0xFF0A +0xA1EF 0x203B +0xA1F0 0x00A7 +0xA1F1 0x3003 +0xA1F2 0x25CB +0xA1F3 0x25CF +0xA1F4 0x25B3 +0xA1F5 0x25B2 +0xA1F6 0x25CE +0xA1F7 0x2606 +0xA1F8 0x2605 +0xA1F9 0x25C7 +0xA1FA 0x25C6 +0xA1FB 0x25A1 +0xA1FC 0x25A0 +0xA1FD 0x25BD +0xA1FE 0x25BC +0xA2A1 0x32A3 +0xA2A2 0x2105 +0xA2A3 0x203E +0xA2A5 0xFF3F +0xA2A7 0xFE49 +0xA2A8 0xFE4A +0xA2A9 0xFE4D +0xA2AA 0xFE4E +0xA2AB 0xFE4B +0xA2AC 0xFE4C +0xA2AD 0xFE5F +0xA2AE 0xFE60 +0xA2AF 0xFE61 +0xA2B0 0xFF0B +0xA2B1 0xFF0D +0xA2B2 0x00D7 +0xA2B3 0x00F7 +0xA2B4 0x00B1 +0xA2B5 0x221A +0xA2B6 0xFF1C +0xA2B7 0xFF1E +0xA2B8 0xFF1D +0xA2B9 0x2266 +0xA2BA 0x2267 +0xA2BB 0x2260 +0xA2BC 0x221E +0xA2BD 0x2252 +0xA2BE 0x2261 +0xA2BF 0xFE62 +0xA2C0 0xFE63 +0xA2C1 0xFE64 +0xA2C2 0xFE66 +0xA2C3 0xFE65 +0xA2C4 0x223C +0xA2C5 0x2229 +0xA2C6 0x222A +0xA2C7 0x22A5 +0xA2C8 0x2220 +0xA2C9 0x221F +0xA2CA 0x22BF +0xA2CB 0x33D2 +0xA2CC 0x33D1 +0xA2CD 0x222B +0xA2CE 0x222E +0xA2CF 0x2235 +0xA2D0 0x2234 +0xA2D1 0x2640 +0xA2D2 0x2642 +0xA2D3 0x2641 +0xA2D4 0x2609 +0xA2D5 0x2191 +0xA2D6 0x2193 +0xA2D7 0x2192 +0xA2D8 0x2190 +0xA2D9 0x2196 +0xA2DA 0x2197 +0xA2DB 0x2199 +0xA2DC 0x2198 +0xA2DD 0x2016 +0xA2DE 0xFF5C +0xA2DF 0xFF0F +0xA2E0 0xFF3C +0xA2E1 0x2215 +0xA2E2 0xFE68 +0xA2E3 0xFF04 +0xA2E4 0xFFE5 +0xA2E5 0x3012 +0xA2E6 0xFFE0 +0xA2E7 0xFFE1 +0xA2E8 0xFF05 +0xA2E9 0xFF20 +0xA2EA 0x2103 +0xA2EB 0x2109 +0xA2EC 0xFE69 +0xA2ED 0xFE6A +0xA2EE 0xFE6B +0xA2EF 0x33D5 +0xA2F0 0x339C +0xA2F1 0x339D +0xA2F2 0x339E +0xA2F3 0x33CE +0xA2F4 0x33A1 +0xA2F5 0x338E +0xA2F6 0x338F +0xA2F7 0x33C4 +0xA2F8 0x00B0 +0xA2F9 0x5159 +0xA2FA 0x515B +0xA2FB 0x515E +0xA2FC 0x515D +0xA2FD 0x5161 +0xA2FE 0x5163 +0xA3A1 0x55E7 +0xA3A2 0x74E9 +0xA3A3 0x7CCE +0xA3A4 0x2581 +0xA3A5 0x2582 +0xA3A6 0x2583 +0xA3A7 0x2584 +0xA3A8 0x2585 +0xA3A9 0x2586 +0xA3AA 0x2587 +0xA3AB 0x2588 +0xA3AC 0x258F +0xA3AD 0x258E +0xA3AE 0x258D +0xA3AF 0x258C +0xA3B0 0x258B +0xA3B1 0x258A +0xA3B2 0x2589 +0xA3B3 0x253C +0xA3B4 0x2534 +0xA3B5 0x252C +0xA3B6 0x2524 +0xA3B7 0x251C +0xA3B8 0x2594 +0xA3B9 0x2500 +0xA3BA 0x2502 +0xA3BB 0x2595 +0xA3BC 0x250C +0xA3BD 0x2510 +0xA3BE 0x2514 +0xA3BF 0x2518 +0xA3C0 0x256D +0xA3C1 0x256E +0xA3C2 0x2570 +0xA3C3 0x256F +0xA3C4 0x2550 +0xA3C5 0x255E +0xA3C6 0x256A +0xA3C7 0x2561 +0xA3C8 0x25E2 +0xA3C9 0x25E3 +0xA3CA 0x25E5 +0xA3CB 0x25E4 +0xA3CC 0x2571 +0xA3CD 0x2572 +0xA3CE 0x2573 +0xA4A1 0xFF10 +0xA4A2 0xFF11 +0xA4A3 0xFF12 +0xA4A4 0xFF13 +0xA4A5 0xFF14 +0xA4A6 0xFF15 +0xA4A7 0xFF16 +0xA4A8 0xFF17 +0xA4A9 0xFF18 +0xA4AA 0xFF19 +0xA4AB 0x2160 +0xA4AC 0x2161 +0xA4AD 0x2162 +0xA4AE 0x2163 +0xA4AF 0x2164 +0xA4B0 0x2165 +0xA4B1 0x2166 +0xA4B2 0x2167 +0xA4B3 0x2168 +0xA4B4 0x2169 +0xA4B5 0x3021 +0xA4B6 0x3022 +0xA4B7 0x3023 +0xA4B8 0x3024 +0xA4B9 0x3025 +0xA4BA 0x3026 +0xA4BB 0x3027 +0xA4BC 0x3028 +0xA4BD 0x3029 +0xA4BF 0x5344 +0xA4C1 0xFF21 +0xA4C2 0xFF22 +0xA4C3 0xFF23 +0xA4C4 0xFF24 +0xA4C5 0xFF25 +0xA4C6 0xFF26 +0xA4C7 0xFF27 +0xA4C8 0xFF28 +0xA4C9 0xFF29 +0xA4CA 0xFF2A +0xA4CB 0xFF2B +0xA4CC 0xFF2C +0xA4CD 0xFF2D +0xA4CE 0xFF2E +0xA4CF 0xFF2F +0xA4D0 0xFF30 +0xA4D1 0xFF31 +0xA4D2 0xFF32 +0xA4D3 0xFF33 +0xA4D4 0xFF34 +0xA4D5 0xFF35 +0xA4D6 0xFF36 +0xA4D7 0xFF37 +0xA4D8 0xFF38 +0xA4D9 0xFF39 +0xA4DA 0xFF3A +0xA4DB 0xFF41 +0xA4DC 0xFF42 +0xA4DD 0xFF43 +0xA4DE 0xFF44 +0xA4DF 0xFF45 +0xA4E0 0xFF46 +0xA4E1 0xFF47 +0xA4E2 0xFF48 +0xA4E3 0xFF49 +0xA4E4 0xFF4A +0xA4E5 0xFF4B +0xA4E6 0xFF4C +0xA4E7 0xFF4D +0xA4E8 0xFF4E +0xA4E9 0xFF4F +0xA4EA 0xFF50 +0xA4EB 0xFF51 +0xA4EC 0xFF52 +0xA4ED 0xFF53 +0xA4EE 0xFF54 +0xA4EF 0xFF55 +0xA4F0 0xFF56 +0xA4F1 0xFF57 +0xA4F2 0xFF58 +0xA4F3 0xFF59 +0xA4F4 0xFF5A +0xA4F5 0x0391 +0xA4F6 0x0392 +0xA4F7 0x0393 +0xA4F8 0x0394 +0xA4F9 0x0395 +0xA4FA 0x0396 +0xA4FB 0x0397 +0xA4FC 0x0398 +0xA4FD 0x0399 +0xA4FE 0x039A +0xA5A1 0x039B +0xA5A2 0x039C +0xA5A3 0x039D +0xA5A4 0x039E +0xA5A5 0x039F +0xA5A6 0x03A0 +0xA5A7 0x03A1 +0xA5A8 0x03A3 +0xA5A9 0x03A4 +0xA5AA 0x03A5 +0xA5AB 0x03A6 +0xA5AC 0x03A7 +0xA5AD 0x03A8 +0xA5AE 0x03A9 +0xA5AF 0x03B1 +0xA5B0 0x03B2 +0xA5B1 0x03B3 +0xA5B2 0x03B4 +0xA5B3 0x03B5 +0xA5B4 0x03B6 +0xA5B5 0x03B7 +0xA5B6 0x03B8 +0xA5B7 0x03B9 +0xA5B8 0x03BA +0xA5B9 0x03BB +0xA5BA 0x03BC +0xA5BB 0x03BD +0xA5BC 0x03BE +0xA5BD 0x03BF +0xA5BE 0x03C0 +0xA5BF 0x03C1 +0xA5C0 0x03C3 +0xA5C1 0x03C4 +0xA5C2 0x03C5 +0xA5C3 0x03C6 +0xA5C4 0x03C7 +0xA5C5 0x03C8 +0xA5C6 0x03C9 +0xA5C7 0x3105 +0xA5C8 0x3106 +0xA5C9 0x3107 +0xA5CA 0x3108 +0xA5CB 0x3109 +0xA5CC 0x310A +0xA5CD 0x310B +0xA5CE 0x310C +0xA5CF 0x310D +0xA5D0 0x310E +0xA5D1 0x310F +0xA5D2 0x3110 +0xA5D3 0x3111 +0xA5D4 0x3112 +0xA5D5 0x3113 +0xA5D6 0x3114 +0xA5D7 0x3115 +0xA5D8 0x3116 +0xA5D9 0x3117 +0xA5DA 0x3118 +0xA5DB 0x3119 +0xA5DC 0x311A +0xA5DD 0x311B +0xA5DE 0x311C +0xA5DF 0x311D +0xA5E0 0x311E +0xA5E1 0x311F +0xA5E2 0x3120 +0xA5E3 0x3121 +0xA5E4 0x3122 +0xA5E5 0x3123 +0xA5E6 0x3124 +0xA5E7 0x3125 +0xA5E8 0x3126 +0xA5E9 0x3127 +0xA5EA 0x3128 +0xA5EB 0x3129 +0xA5EC 0x02D9 +0xA5ED 0x02C9 +0xA5EE 0x02CA +0xA5EF 0x02C7 +0xA5F0 0x02CB +0xA6A1 0x2460 +0xA6A2 0x2461 +0xA6A3 0x2462 +0xA6A4 0x2463 +0xA6A5 0x2464 +0xA6A6 0x2465 +0xA6A7 0x2466 +0xA6A8 0x2467 +0xA6A9 0x2468 +0xA6AA 0x2469 +0xA6AB 0x2474 +0xA6AC 0x2475 +0xA6AD 0x2476 +0xA6AE 0x2477 +0xA6AF 0x2478 +0xA6B0 0x2479 +0xA6B1 0x247A +0xA6B2 0x247B +0xA6B3 0x247C +0xA6B4 0x247D +0xA6B5 0x2170 +0xA6B6 0x2171 +0xA6B7 0x2172 +0xA6B8 0x2173 +0xA6B9 0x2174 +0xA6BA 0x2175 +0xA6BB 0x2176 +0xA6BC 0x2177 +0xA6BD 0x2178 +0xA6BE 0x2179 +0xA7A8 0x4EA0 +0xA7AF 0x51AB +0xA7B4 0x52F9 +0xC2A1 0x2400 +0xC2A2 0x2401 +0xC2A3 0x2402 +0xC2A4 0x2403 +0xC2A5 0x2404 +0xC2A6 0x2405 +0xC2A7 0x2406 +0xC2A8 0x2407 +0xC2A9 0x2408 +0xC2AA 0x2409 +0xC2AB 0x240A +0xC2AC 0x240B +0xC2AD 0x240C +0xC2AE 0x240D +0xC2AF 0x240E +0xC2B0 0x240F +0xC2B1 0x2410 +0xC2B2 0x2411 +0xC2B3 0x2412 +0xC2B4 0x2413 +0xC2B5 0x2414 +0xC2B6 0x2415 +0xC2B7 0x2416 +0xC2B8 0x2417 +0xC2B9 0x2418 +0xC2BA 0x2419 +0xC2BB 0x241A +0xC2BC 0x241B +0xC2BD 0x241C +0xC2BE 0x241D +0xC2BF 0x241E +0xC2C0 0x241F +0xC2C1 0x2421 +0xC2C2 0x20AC +0xC4A1 0x4E00 +0xC4A2 0x4E59 +0xC4A3 0x4E01 +0xC4A4 0x4E03 +0xC4A5 0x4E43 +0xC4A6 0x4E5D +0xC4A7 0x4E86 +0xC4A8 0x4E8C +0xC4A9 0x4EBA +0xC4AA 0x513F +0xC4AB 0x5165 +0xC4AC 0x516B +0xC4AD 0x51E0 +0xC4AE 0x5200 +0xC4AF 0x5201 +0xC4B0 0x529B +0xC4B1 0x5315 +0xC4B2 0x5341 +0xC4B3 0x535C +0xC4B4 0x53C8 +0xC4B5 0x4E09 +0xC4B6 0x4E0B +0xC4B7 0x4E08 +0xC4B8 0x4E0A +0xC4B9 0x4E2B +0xC4BA 0x4E38 +0xC4BB 0x51E1 +0xC4BC 0x4E45 +0xC4BD 0x4E48 +0xC4BE 0x4E5F +0xC4BF 0x4E5E +0xC4C0 0x4E8E +0xC4C1 0x4EA1 +0xC4C2 0x5140 +0xC4C3 0x5203 +0xC4C4 0x52FA +0xC4C5 0x5343 +0xC4C6 0x53C9 +0xC4C7 0x53E3 +0xC4C8 0x571F +0xC4C9 0x58EB +0xC4CA 0x5915 +0xC4CB 0x5927 +0xC4CC 0x5973 +0xC4CD 0x5B50 +0xC4CE 0x5B51 +0xC4CF 0x5B53 +0xC4D0 0x5BF8 +0xC4D1 0x5C0F +0xC4D2 0x5C22 +0xC4D3 0x5C38 +0xC4D4 0x5C71 +0xC4D5 0x5DDD +0xC4D6 0x5DE5 +0xC4D7 0x5DF1 +0xC4D8 0x5DF2 +0xC4D9 0x5DF3 +0xC4DA 0x5DFE +0xC4DB 0x5E72 +0xC4DC 0x5EFE +0xC4DD 0x5F0B +0xC4DE 0x5F13 +0xC4DF 0x624D +0xC4E0 0x4E11 +0xC4E1 0x4E10 +0xC4E2 0x4E0D +0xC4E3 0x4E2D +0xC4E4 0x4E30 +0xC4E5 0x4E39 +0xC4E6 0x4E4B +0xC4E7 0x5C39 +0xC4E8 0x4E88 +0xC4E9 0x4E91 +0xC4EA 0x4E95 +0xC4EB 0x4E92 +0xC4EC 0x4E94 +0xC4ED 0x4EA2 +0xC4EE 0x4EC1 +0xC4EF 0x4EC0 +0xC4F0 0x4EC3 +0xC4F1 0x4EC6 +0xC4F2 0x4EC7 +0xC4F3 0x4ECD +0xC4F4 0x4ECA +0xC4F5 0x4ECB +0xC4F6 0x4EC4 +0xC4F7 0x5143 +0xC4F8 0x5141 +0xC4F9 0x5167 +0xC4FA 0x516D +0xC4FB 0x516E +0xC4FC 0x516C +0xC4FD 0x5197 +0xC4FE 0x51F6 +0xC5A1 0x5206 +0xC5A2 0x5207 +0xC5A3 0x5208 +0xC5A4 0x52FB +0xC5A5 0x52FE +0xC5A6 0x52FF +0xC5A7 0x5316 +0xC5A8 0x5339 +0xC5A9 0x5348 +0xC5AA 0x5347 +0xC5AB 0x5345 +0xC5AC 0x535E +0xC5AD 0x5384 +0xC5AE 0x53CB +0xC5AF 0x53CA +0xC5B0 0x53CD +0xC5B1 0x58EC +0xC5B2 0x5929 +0xC5B3 0x592B +0xC5B4 0x592A +0xC5B5 0x592D +0xC5B6 0x5B54 +0xC5B7 0x5C11 +0xC5B8 0x5C24 +0xC5B9 0x5C3A +0xC5BA 0x5C6F +0xC5BB 0x5DF4 +0xC5BC 0x5E7B +0xC5BD 0x5EFF +0xC5BE 0x5F14 +0xC5BF 0x5F15 +0xC5C0 0x5FC3 +0xC5C1 0x6208 +0xC5C2 0x6236 +0xC5C3 0x624B +0xC5C4 0x624E +0xC5C5 0x652F +0xC5C6 0x6587 +0xC5C7 0x6597 +0xC5C8 0x65A4 +0xC5C9 0x65B9 +0xC5CA 0x65E5 +0xC5CB 0x66F0 +0xC5CC 0x6708 +0xC5CD 0x6728 +0xC5CE 0x6B20 +0xC5CF 0x6B62 +0xC5D0 0x6B79 +0xC5D1 0x6BCB +0xC5D2 0x6BD4 +0xC5D3 0x6BDB +0xC5D4 0x6C0F +0xC5D5 0x6C34 +0xC5D6 0x706B +0xC5D7 0x722A +0xC5D8 0x7236 +0xC5D9 0x723B +0xC5DA 0x7247 +0xC5DB 0x7259 +0xC5DC 0x725B +0xC5DD 0x72AC +0xC5DE 0x738B +0xC5DF 0x4E19 +0xC5E0 0x4E16 +0xC5E1 0x4E15 +0xC5E2 0x4E14 +0xC5E3 0x4E18 +0xC5E4 0x4E3B +0xC5E5 0x4E4D +0xC5E6 0x4E4F +0xC5E7 0x4E4E +0xC5E8 0x4EE5 +0xC5E9 0x4ED8 +0xC5EA 0x4ED4 +0xC5EB 0x4ED5 +0xC5EC 0x4ED6 +0xC5ED 0x4ED7 +0xC5EE 0x4EE3 +0xC5EF 0x4EE4 +0xC5F0 0x4ED9 +0xC5F1 0x4EDE +0xC5F2 0x5145 +0xC5F3 0x5144 +0xC5F4 0x5189 +0xC5F5 0x518A +0xC5F6 0x51AC +0xC5F7 0x51F9 +0xC5F8 0x51FA +0xC5F9 0x51F8 +0xC5FA 0x520A +0xC5FB 0x52A0 +0xC5FC 0x529F +0xC5FD 0x5305 +0xC5FE 0x5306 +0xC6A1 0x5317 +0xC6A2 0x531D +0xC6A3 0x4EDF +0xC6A4 0x534A +0xC6A5 0x5349 +0xC6A6 0x5361 +0xC6A7 0x5360 +0xC6A8 0x536F +0xC6A9 0x536E +0xC6AA 0x53BB +0xC6AB 0x53EF +0xC6AC 0x53E4 +0xC6AD 0x53F3 +0xC6AE 0x53EC +0xC6AF 0x53EE +0xC6B0 0x53E9 +0xC6B1 0x53E8 +0xC6B2 0x53FC +0xC6B3 0x53F8 +0xC6B4 0x53F5 +0xC6B5 0x53EB +0xC6B6 0x53E6 +0xC6B7 0x53EA +0xC6B8 0x53F2 +0xC6B9 0x53F1 +0xC6BA 0x53F0 +0xC6BB 0x53E5 +0xC6BC 0x53ED +0xC6BD 0x53FB +0xC6BE 0x56DB +0xC6BF 0x56DA +0xC6C0 0x5916 +0xC6C1 0x592E +0xC6C2 0x5931 +0xC6C3 0x5974 +0xC6C4 0x5976 +0xC6C5 0x5B55 +0xC6C6 0x5B83 +0xC6C7 0x5C3C +0xC6C8 0x5DE8 +0xC6C9 0x5DE7 +0xC6CA 0x5DE6 +0xC6CB 0x5E02 +0xC6CC 0x5E03 +0xC6CD 0x5E73 +0xC6CE 0x5E7C +0xC6CF 0x5F01 +0xC6D0 0x5F18 +0xC6D1 0x5F17 +0xC6D2 0x5FC5 +0xC6D3 0x620A +0xC6D4 0x6253 +0xC6D5 0x6254 +0xC6D6 0x6252 +0xC6D7 0x6251 +0xC6D8 0x65A5 +0xC6D9 0x65E6 +0xC6DA 0x672E +0xC6DB 0x672C +0xC6DC 0x672A +0xC6DD 0x672B +0xC6DE 0x672D +0xC6DF 0x6B63 +0xC6E0 0x6BCD +0xC6E1 0x6C11 +0xC6E2 0x6C10 +0xC6E3 0x6C38 +0xC6E4 0x6C41 +0xC6E5 0x6C40 +0xC6E6 0x6C3E +0xC6E7 0x72AF +0xC6E8 0x7384 +0xC6E9 0x7389 +0xC6EA 0x74DC +0xC6EB 0x74E6 +0xC6EC 0x7518 +0xC6ED 0x751F +0xC6EE 0x7528 +0xC6EF 0x7529 +0xC6F0 0x7530 +0xC6F1 0x7531 +0xC6F2 0x7532 +0xC6F3 0x7533 +0xC6F4 0x758B +0xC6F5 0x767D +0xC6F6 0x76AE +0xC6F7 0x76BF +0xC6F8 0x76EE +0xC6F9 0x77DB +0xC6FA 0x77E2 +0xC6FB 0x77F3 +0xC6FC 0x793A +0xC6FD 0x79BE +0xC6FE 0x7A74 +0xC7A1 0x7ACB +0xC7A2 0x4E1E +0xC7A3 0x4E1F +0xC7A4 0x4E52 +0xC7A5 0x4E53 +0xC7A6 0x4E69 +0xC7A7 0x4E99 +0xC7A8 0x4EA4 +0xC7A9 0x4EA6 +0xC7AA 0x4EA5 +0xC7AB 0x4EFF +0xC7AC 0x4F09 +0xC7AD 0x4F19 +0xC7AE 0x4F0A +0xC7AF 0x4F15 +0xC7B0 0x4F0D +0xC7B1 0x4F10 +0xC7B2 0x4F11 +0xC7B3 0x4F0F +0xC7B4 0x4EF2 +0xC7B5 0x4EF6 +0xC7B6 0x4EFB +0xC7B7 0x4EF0 +0xC7B8 0x4EF3 +0xC7B9 0x4EFD +0xC7BA 0x4F01 +0xC7BB 0x4F0B +0xC7BC 0x5149 +0xC7BD 0x5147 +0xC7BE 0x5146 +0xC7BF 0x5148 +0xC7C0 0x5168 +0xC7C1 0x5171 +0xC7C2 0x518D +0xC7C3 0x51B0 +0xC7C4 0x5217 +0xC7C5 0x5211 +0xC7C6 0x5212 +0xC7C7 0x520E +0xC7C8 0x5216 +0xC7C9 0x52A3 +0xC7CA 0x5308 +0xC7CB 0x5321 +0xC7CC 0x5320 +0xC7CD 0x5370 +0xC7CE 0x5371 +0xC7CF 0x5409 +0xC7D0 0x540F +0xC7D1 0x540C +0xC7D2 0x540A +0xC7D3 0x5410 +0xC7D4 0x5401 +0xC7D5 0x540B +0xC7D6 0x5404 +0xC7D7 0x5411 +0xC7D8 0x540D +0xC7D9 0x5408 +0xC7DA 0x5403 +0xC7DB 0x540E +0xC7DC 0x5406 +0xC7DD 0x5412 +0xC7DE 0x56E0 +0xC7DF 0x56DE +0xC7E0 0x56DD +0xC7E1 0x5733 +0xC7E2 0x5730 +0xC7E3 0x5728 +0xC7E4 0x572D +0xC7E5 0x572C +0xC7E6 0x572F +0xC7E7 0x5729 +0xC7E8 0x5919 +0xC7E9 0x591A +0xC7EA 0x5937 +0xC7EB 0x5938 +0xC7EC 0x5984 +0xC7ED 0x5978 +0xC7EE 0x5983 +0xC7EF 0x597D +0xC7F0 0x5979 +0xC7F1 0x5982 +0xC7F2 0x5981 +0xC7F3 0x5B57 +0xC7F4 0x5B58 +0xC7F5 0x5B87 +0xC7F6 0x5B88 +0xC7F7 0x5B85 +0xC7F8 0x5B89 +0xC7F9 0x5BFA +0xC7FA 0x5C16 +0xC7FB 0x5C79 +0xC7FC 0x5DDE +0xC7FD 0x5E06 +0xC7FE 0x5E76 +0xC8A1 0x5E74 +0xC8A2 0x5F0F +0xC8A3 0x5F1B +0xC8A4 0x5FD9 +0xC8A5 0x5FD6 +0xC8A6 0x620E +0xC8A7 0x620C +0xC8A8 0x620D +0xC8A9 0x6210 +0xC8AA 0x6263 +0xC8AB 0x625B +0xC8AC 0x6258 +0xC8AD 0x6536 +0xC8AE 0x65E9 +0xC8AF 0x65E8 +0xC8B0 0x65EC +0xC8B1 0x65ED +0xC8B2 0x66F2 +0xC8B3 0x66F3 +0xC8B4 0x6709 +0xC8B5 0x673D +0xC8B6 0x6734 +0xC8B7 0x6731 +0xC8B8 0x6735 +0xC8B9 0x6B21 +0xC8BA 0x6B64 +0xC8BB 0x6B7B +0xC8BC 0x6C16 +0xC8BD 0x6C5D +0xC8BE 0x6C57 +0xC8BF 0x6C59 +0xC8C0 0x6C5F +0xC8C1 0x6C60 +0xC8C2 0x6C50 +0xC8C3 0x6C55 +0xC8C4 0x6C61 +0xC8C5 0x6C5B +0xC8C6 0x6C4D +0xC8C7 0x6C4E +0xC8C8 0x7070 +0xC8C9 0x725F +0xC8CA 0x725D +0xC8CB 0x767E +0xC8CC 0x7AF9 +0xC8CD 0x7C73 +0xC8CE 0x7CF8 +0xC8CF 0x7F36 +0xC8D0 0x7F8A +0xC8D1 0x7FBD +0xC8D2 0x8001 +0xC8D3 0x8003 +0xC8D4 0x800C +0xC8D5 0x8012 +0xC8D6 0x8033 +0xC8D7 0x807F +0xC8D8 0x8089 +0xC8D9 0x808B +0xC8DA 0x808C +0xC8DB 0x81E3 +0xC8DC 0x81EA +0xC8DD 0x81F3 +0xC8DE 0x81FC +0xC8DF 0x820C +0xC8E0 0x821B +0xC8E1 0x821F +0xC8E2 0x826E +0xC8E3 0x8272 +0xC8E4 0x827E +0xC8E5 0x866B +0xC8E6 0x8840 +0xC8E7 0x884C +0xC8E8 0x8863 +0xC8E9 0x897F +0xC8EA 0x9621 +0xC8EB 0x4E32 +0xC8EC 0x4EA8 +0xC8ED 0x4F4D +0xC8EE 0x4F4F +0xC8EF 0x4F47 +0xC8F0 0x4F57 +0xC8F1 0x4F5E +0xC8F2 0x4F34 +0xC8F3 0x4F5B +0xC8F4 0x4F55 +0xC8F5 0x4F30 +0xC8F6 0x4F50 +0xC8F7 0x4F51 +0xC8F8 0x4F3D +0xC8F9 0x4F3A +0xC8FA 0x4F38 +0xC8FB 0x4F43 +0xC8FC 0x4F54 +0xC8FD 0x4F3C +0xC8FE 0x4F46 +0xC9A1 0x4F63 +0xC9A2 0x4F5C +0xC9A3 0x4F60 +0xC9A4 0x4F2F +0xC9A5 0x4F4E +0xC9A6 0x4F36 +0xC9A7 0x4F59 +0xC9A8 0x4F5D +0xC9A9 0x4F48 +0xC9AA 0x4F5A +0xC9AB 0x514C +0xC9AC 0x514B +0xC9AD 0x514D +0xC9AE 0x5175 +0xC9AF 0x51B6 +0xC9B0 0x51B7 +0xC9B1 0x5225 +0xC9B2 0x5224 +0xC9B3 0x5229 +0xC9B4 0x522A +0xC9B5 0x5228 +0xC9B6 0x52AB +0xC9B7 0x52A9 +0xC9B8 0x52AA +0xC9B9 0x52AC +0xC9BA 0x5323 +0xC9BB 0x5373 +0xC9BC 0x5375 +0xC9BD 0x541D +0xC9BE 0x542D +0xC9BF 0x541E +0xC9C0 0x543E +0xC9C1 0x5426 +0xC9C2 0x544E +0xC9C3 0x5427 +0xC9C4 0x5446 +0xC9C5 0x5443 +0xC9C6 0x5433 +0xC9C7 0x5448 +0xC9C8 0x5442 +0xC9C9 0x541B +0xC9CA 0x5429 +0xC9CB 0x544A +0xC9CC 0x5439 +0xC9CD 0x543B +0xC9CE 0x5438 +0xC9CF 0x542E +0xC9D0 0x5435 +0xC9D1 0x5436 +0xC9D2 0x5420 +0xC9D3 0x543C +0xC9D4 0x5440 +0xC9D5 0x5431 +0xC9D6 0x542B +0xC9D7 0x541F +0xC9D8 0x542C +0xC9D9 0x56EA +0xC9DA 0x56F0 +0xC9DB 0x56E4 +0xC9DC 0x56EB +0xC9DD 0x574A +0xC9DE 0x5751 +0xC9DF 0x5740 +0xC9E0 0x574D +0xC9E1 0x5747 +0xC9E2 0x574E +0xC9E3 0x573E +0xC9E4 0x5750 +0xC9E5 0x574F +0xC9E6 0x573B +0xC9E7 0x58EF +0xC9E8 0x593E +0xC9E9 0x599D +0xC9EA 0x5992 +0xC9EB 0x59A8 +0xC9EC 0x599E +0xC9ED 0x59A3 +0xC9EE 0x5999 +0xC9EF 0x5996 +0xC9F0 0x598D +0xC9F1 0x59A4 +0xC9F2 0x5993 +0xC9F3 0x598A +0xC9F4 0x59A5 +0xC9F5 0x5B5D +0xC9F6 0x5B5C +0xC9F7 0x5B5A +0xC9F8 0x5B5B +0xC9F9 0x5B8C +0xC9FA 0x5B8B +0xC9FB 0x5B8F +0xC9FC 0x5C2C +0xC9FD 0x5C40 +0xC9FE 0x5C41 +0xCAA1 0x5C3F +0xCAA2 0x5C3E +0xCAA3 0x5C90 +0xCAA4 0x5C91 +0xCAA5 0x5C94 +0xCAA6 0x5C8C +0xCAA7 0x5DEB +0xCAA8 0x5E0C +0xCAA9 0x5E8F +0xCAAA 0x5E87 +0xCAAB 0x5E8A +0xCAAC 0x5EF7 +0xCAAD 0x5F04 +0xCAAE 0x5F1F +0xCAAF 0x5F64 +0xCAB0 0x5F62 +0xCAB1 0x5F77 +0xCAB2 0x5F79 +0xCAB3 0x5FD8 +0xCAB4 0x5FCC +0xCAB5 0x5FD7 +0xCAB6 0x5FCD +0xCAB7 0x5FF1 +0xCAB8 0x5FEB +0xCAB9 0x5FF8 +0xCABA 0x5FEA +0xCABB 0x6212 +0xCABC 0x6211 +0xCABD 0x6284 +0xCABE 0x6297 +0xCABF 0x6296 +0xCAC0 0x6280 +0xCAC1 0x6276 +0xCAC2 0x6289 +0xCAC3 0x626D +0xCAC4 0x628A +0xCAC5 0x627C +0xCAC6 0x627E +0xCAC7 0x6279 +0xCAC8 0x6273 +0xCAC9 0x6292 +0xCACA 0x626F +0xCACB 0x6298 +0xCACC 0x626E +0xCACD 0x6295 +0xCACE 0x6293 +0xCACF 0x6291 +0xCAD0 0x6286 +0xCAD1 0x6539 +0xCAD2 0x653B +0xCAD3 0x6538 +0xCAD4 0x65F1 +0xCAD5 0x66F4 +0xCAD6 0x675F +0xCAD7 0x674E +0xCAD8 0x674F +0xCAD9 0x6750 +0xCADA 0x6751 +0xCADB 0x675C +0xCADC 0x6756 +0xCADD 0x675E +0xCADE 0x6749 +0xCADF 0x6746 +0xCAE0 0x6760 +0xCAE1 0x6753 +0xCAE2 0x6757 +0xCAE3 0x6B65 +0xCAE4 0x6BCF +0xCAE5 0x6C42 +0xCAE6 0x6C5E +0xCAE7 0x6C99 +0xCAE8 0x6C81 +0xCAE9 0x6C88 +0xCAEA 0x6C89 +0xCAEB 0x6C85 +0xCAEC 0x6C9B +0xCAED 0x6C6A +0xCAEE 0x6C7A +0xCAEF 0x6C90 +0xCAF0 0x6C70 +0xCAF1 0x6C8C +0xCAF2 0x6C68 +0xCAF3 0x6C96 +0xCAF4 0x6C92 +0xCAF5 0x6C7D +0xCAF6 0x6C83 +0xCAF7 0x6C72 +0xCAF8 0x6C7E +0xCAF9 0x6C74 +0xCAFA 0x6C86 +0xCAFB 0x6C76 +0xCAFC 0x6C8D +0xCAFD 0x6C94 +0xCAFE 0x6C98 +0xCBA1 0x6C82 +0xCBA2 0x7076 +0xCBA3 0x707C +0xCBA4 0x707D +0xCBA5 0x7078 +0xCBA6 0x7262 +0xCBA7 0x7261 +0xCBA8 0x7260 +0xCBA9 0x72C4 +0xCBAA 0x72C2 +0xCBAB 0x7396 +0xCBAC 0x752C +0xCBAD 0x752B +0xCBAE 0x7537 +0xCBAF 0x7538 +0xCBB0 0x7682 +0xCBB1 0x76EF +0xCBB2 0x77E3 +0xCBB3 0x79C1 +0xCBB4 0x79C0 +0xCBB5 0x79BF +0xCBB6 0x7A76 +0xCBB7 0x7CFB +0xCBB8 0x7F55 +0xCBB9 0x8096 +0xCBBA 0x8093 +0xCBBB 0x809D +0xCBBC 0x8098 +0xCBBD 0x809B +0xCBBE 0x809A +0xCBBF 0x80B2 +0xCBC0 0x826F +0xCBC1 0x8292 +0xCBC2 0x828B +0xCBC3 0x828D +0xCBC4 0x898B +0xCBC5 0x89D2 +0xCBC6 0x8A00 +0xCBC7 0x8C37 +0xCBC8 0x8C46 +0xCBC9 0x8C55 +0xCBCA 0x8C9D +0xCBCB 0x8D64 +0xCBCC 0x8D70 +0xCBCD 0x8DB3 +0xCBCE 0x8EAB +0xCBCF 0x8ECA +0xCBD0 0x8F9B +0xCBD1 0x8FB0 +0xCBD2 0x8FC2 +0xCBD3 0x8FC6 +0xCBD4 0x8FC5 +0xCBD5 0x8FC4 +0xCBD6 0x5DE1 +0xCBD7 0x9091 +0xCBD8 0x90A2 +0xCBD9 0x90AA +0xCBDA 0x90A6 +0xCBDB 0x90A3 +0xCBDC 0x9149 +0xCBDD 0x91C6 +0xCBDE 0x91CC +0xCBDF 0x9632 +0xCBE0 0x962E +0xCBE1 0x9631 +0xCBE2 0x962A +0xCBE3 0x962C +0xCBE4 0x4E26 +0xCBE5 0x4E56 +0xCBE6 0x4E73 +0xCBE7 0x4E8B +0xCBE8 0x4E9B +0xCBE9 0x4E9E +0xCBEA 0x4EAB +0xCBEB 0x4EAC +0xCBEC 0x4F6F +0xCBED 0x4F9D +0xCBEE 0x4F8D +0xCBEF 0x4F73 +0xCBF0 0x4F7F +0xCBF1 0x4F6C +0xCBF2 0x4F9B +0xCBF3 0x4F8B +0xCBF4 0x4F86 +0xCBF5 0x4F83 +0xCBF6 0x4F70 +0xCBF7 0x4F75 +0xCBF8 0x4F88 +0xCBF9 0x4F69 +0xCBFA 0x4F7B +0xCBFB 0x4F96 +0xCBFC 0x4F7E +0xCBFD 0x4F8F +0xCBFE 0x4F91 +0xCCA1 0x4F7A +0xCCA2 0x5154 +0xCCA3 0x5152 +0xCCA4 0x5155 +0xCCA5 0x5169 +0xCCA6 0x5177 +0xCCA7 0x5176 +0xCCA8 0x5178 +0xCCA9 0x51BD +0xCCAA 0x51FD +0xCCAB 0x523B +0xCCAC 0x5238 +0xCCAD 0x5237 +0xCCAE 0x523A +0xCCAF 0x5230 +0xCCB0 0x522E +0xCCB1 0x5236 +0xCCB2 0x5241 +0xCCB3 0x52BE +0xCCB4 0x52BB +0xCCB5 0x5352 +0xCCB6 0x5354 +0xCCB7 0x5353 +0xCCB8 0x5351 +0xCCB9 0x5366 +0xCCBA 0x5377 +0xCCBB 0x5378 +0xCCBC 0x5379 +0xCCBD 0x53D6 +0xCCBE 0x53D4 +0xCCBF 0x53D7 +0xCCC0 0x5473 +0xCCC1 0x5475 +0xCCC2 0x5496 +0xCCC3 0x5478 +0xCCC4 0x5495 +0xCCC5 0x5480 +0xCCC6 0x547B +0xCCC7 0x5477 +0xCCC8 0x5484 +0xCCC9 0x5492 +0xCCCA 0x5486 +0xCCCB 0x547C +0xCCCC 0x5490 +0xCCCD 0x5471 +0xCCCE 0x5476 +0xCCCF 0x548C +0xCCD0 0x549A +0xCCD1 0x5462 +0xCCD2 0x5468 +0xCCD3 0x548B +0xCCD4 0x547D +0xCCD5 0x548E +0xCCD6 0x56FA +0xCCD7 0x5783 +0xCCD8 0x5777 +0xCCD9 0x576A +0xCCDA 0x5769 +0xCCDB 0x5761 +0xCCDC 0x5766 +0xCCDD 0x5764 +0xCCDE 0x577C +0xCCDF 0x591C +0xCCE0 0x5949 +0xCCE1 0x5947 +0xCCE2 0x5948 +0xCCE3 0x5944 +0xCCE4 0x5954 +0xCCE5 0x59BE +0xCCE6 0x59BB +0xCCE7 0x59D4 +0xCCE8 0x59B9 +0xCCE9 0x59AE +0xCCEA 0x59D1 +0xCCEB 0x59C6 +0xCCEC 0x59D0 +0xCCED 0x59CD +0xCCEE 0x59CB +0xCCEF 0x59D3 +0xCCF0 0x59CA +0xCCF1 0x59AF +0xCCF2 0x59B3 +0xCCF3 0x59D2 +0xCCF4 0x59C5 +0xCCF5 0x5B5F +0xCCF6 0x5B64 +0xCCF7 0x5B63 +0xCCF8 0x5B97 +0xCCF9 0x5B9A +0xCCFA 0x5B98 +0xCCFB 0x5B9C +0xCCFC 0x5B99 +0xCCFD 0x5B9B +0xCCFE 0x5C1A +0xCDA1 0x5C48 +0xCDA2 0x5C45 +0xCDA3 0x5C46 +0xCDA4 0x5CB7 +0xCDA5 0x5CA1 +0xCDA6 0x5CB8 +0xCDA7 0x5CA9 +0xCDA8 0x5CAB +0xCDA9 0x5CB1 +0xCDAA 0x5CB3 +0xCDAB 0x5E18 +0xCDAC 0x5E1A +0xCDAD 0x5E16 +0xCDAE 0x5E15 +0xCDAF 0x5E1B +0xCDB0 0x5E11 +0xCDB1 0x5E78 +0xCDB2 0x5E9A +0xCDB3 0x5E97 +0xCDB4 0x5E9C +0xCDB5 0x5E95 +0xCDB6 0x5E96 +0xCDB7 0x5EF6 +0xCDB8 0x5F26 +0xCDB9 0x5F27 +0xCDBA 0x5F29 +0xCDBB 0x5F80 +0xCDBC 0x5F81 +0xCDBD 0x5F7F +0xCDBE 0x5F7C +0xCDBF 0x5FDD +0xCDC0 0x5FE0 +0xCDC1 0x5FFD +0xCDC2 0x5FF5 +0xCDC3 0x5FFF +0xCDC4 0x600F +0xCDC5 0x6014 +0xCDC6 0x602F +0xCDC7 0x6035 +0xCDC8 0x6016 +0xCDC9 0x602A +0xCDCA 0x6015 +0xCDCB 0x6021 +0xCDCC 0x6027 +0xCDCD 0x6029 +0xCDCE 0x602B +0xCDCF 0x601B +0xCDD0 0x6216 +0xCDD1 0x6215 +0xCDD2 0x623F +0xCDD3 0x623E +0xCDD4 0x6240 +0xCDD5 0x627F +0xCDD6 0x62C9 +0xCDD7 0x62CC +0xCDD8 0x62C4 +0xCDD9 0x62BF +0xCDDA 0x62C2 +0xCDDB 0x62B9 +0xCDDC 0x62D2 +0xCDDD 0x62DB +0xCDDE 0x62AB +0xCDDF 0x62D3 +0xCDE0 0x62D4 +0xCDE1 0x62CB +0xCDE2 0x62C8 +0xCDE3 0x62A8 +0xCDE4 0x62BD +0xCDE5 0x62BC +0xCDE6 0x62D0 +0xCDE7 0x62D9 +0xCDE8 0x62C7 +0xCDE9 0x62CD +0xCDEA 0x62B5 +0xCDEB 0x62DA +0xCDEC 0x62B1 +0xCDED 0x62D8 +0xCDEE 0x62D6 +0xCDEF 0x62D7 +0xCDF0 0x62C6 +0xCDF1 0x62AC +0xCDF2 0x62CE +0xCDF3 0x653E +0xCDF4 0x65A7 +0xCDF5 0x65BC +0xCDF6 0x65FA +0xCDF7 0x6614 +0xCDF8 0x6613 +0xCDF9 0x660C +0xCDFA 0x6606 +0xCDFB 0x6602 +0xCDFC 0x660E +0xCDFD 0x6600 +0xCDFE 0x660F +0xCEA1 0x6615 +0xCEA2 0x660A +0xCEA3 0x6607 +0xCEA4 0x670D +0xCEA5 0x670B +0xCEA6 0x676D +0xCEA7 0x678B +0xCEA8 0x6795 +0xCEA9 0x6771 +0xCEAA 0x679C +0xCEAB 0x6773 +0xCEAC 0x6777 +0xCEAD 0x6787 +0xCEAE 0x679D +0xCEAF 0x6797 +0xCEB0 0x676F +0xCEB1 0x6770 +0xCEB2 0x677F +0xCEB3 0x6789 +0xCEB4 0x677E +0xCEB5 0x6790 +0xCEB6 0x6775 +0xCEB7 0x679A +0xCEB8 0x6793 +0xCEB9 0x677C +0xCEBA 0x676A +0xCEBB 0x6772 +0xCEBC 0x6B23 +0xCEBD 0x6B66 +0xCEBE 0x6B67 +0xCEBF 0x6B7F +0xCEC0 0x6C13 +0xCEC1 0x6C1B +0xCEC2 0x6CE3 +0xCEC3 0x6CE8 +0xCEC4 0x6CF3 +0xCEC5 0x6CB1 +0xCEC6 0x6CCC +0xCEC7 0x6CE5 +0xCEC8 0x6CB3 +0xCEC9 0x6CBD +0xCECA 0x6CBE +0xCECB 0x6CBC +0xCECC 0x6CE2 +0xCECD 0x6CAB +0xCECE 0x6CD5 +0xCECF 0x6CD3 +0xCED0 0x6CB8 +0xCED1 0x6CC4 +0xCED2 0x6CB9 +0xCED3 0x6CC1 +0xCED4 0x6CAE +0xCED5 0x6CD7 +0xCED6 0x6CC5 +0xCED7 0x6CF1 +0xCED8 0x6CBF +0xCED9 0x6CBB +0xCEDA 0x6CE1 +0xCEDB 0x6CDB +0xCEDC 0x6CCA +0xCEDD 0x6CAC +0xCEDE 0x6CEF +0xCEDF 0x6CDC +0xCEE0 0x6CD6 +0xCEE1 0x6CE0 +0xCEE2 0x7095 +0xCEE3 0x708E +0xCEE4 0x7092 +0xCEE5 0x708A +0xCEE6 0x7099 +0xCEE7 0x722C +0xCEE8 0x722D +0xCEE9 0x7238 +0xCEEA 0x7248 +0xCEEB 0x7267 +0xCEEC 0x7269 +0xCEED 0x72C0 +0xCEEE 0x72CE +0xCEEF 0x72D9 +0xCEF0 0x72D7 +0xCEF1 0x72D0 +0xCEF2 0x73A9 +0xCEF3 0x73A8 +0xCEF4 0x739F +0xCEF5 0x73AB +0xCEF6 0x73A5 +0xCEF7 0x753D +0xCEF8 0x759D +0xCEF9 0x7599 +0xCEFA 0x759A +0xCEFB 0x7684 +0xCEFC 0x76C2 +0xCEFD 0x76F2 +0xCEFE 0x76F4 +0xCFA1 0x77E5 +0xCFA2 0x77FD +0xCFA3 0x793E +0xCFA4 0x7940 +0xCFA5 0x7941 +0xCFA6 0x79C9 +0xCFA7 0x79C8 +0xCFA8 0x7A7A +0xCFA9 0x7A79 +0xCFAA 0x7AFA +0xCFAB 0x7CFE +0xCFAC 0x7F54 +0xCFAD 0x7F8C +0xCFAE 0x7F8B +0xCFAF 0x8005 +0xCFB0 0x80BA +0xCFB1 0x80A5 +0xCFB2 0x80A2 +0xCFB3 0x80B1 +0xCFB4 0x80A1 +0xCFB5 0x80AB +0xCFB6 0x80A9 +0xCFB7 0x80B4 +0xCFB8 0x80AA +0xCFB9 0x80AF +0xCFBA 0x81E5 +0xCFBB 0x81FE +0xCFBC 0x820D +0xCFBD 0x82B3 +0xCFBE 0x829D +0xCFBF 0x8299 +0xCFC0 0x82AD +0xCFC1 0x82BD +0xCFC2 0x829F +0xCFC3 0x82B9 +0xCFC4 0x82B1 +0xCFC5 0x82AC +0xCFC6 0x82A5 +0xCFC7 0x82AF +0xCFC8 0x82B8 +0xCFC9 0x82A3 +0xCFCA 0x82B0 +0xCFCB 0x82BE +0xCFCC 0x82B7 +0xCFCD 0x864E +0xCFCE 0x8671 +0xCFCF 0x521D +0xCFD0 0x8868 +0xCFD1 0x8ECB +0xCFD2 0x8FCE +0xCFD3 0x8FD4 +0xCFD4 0x8FD1 +0xCFD5 0x90B5 +0xCFD6 0x90B8 +0xCFD7 0x90B1 +0xCFD8 0x90B6 +0xCFD9 0x91C7 +0xCFDA 0x91D1 +0xCFDB 0x9577 +0xCFDC 0x9580 +0xCFDD 0x961C +0xCFDE 0x9640 +0xCFDF 0x963F +0xCFE0 0x963B +0xCFE1 0x9644 +0xCFE2 0x9642 +0xCFE3 0x96B9 +0xCFE4 0x96E8 +0xCFE5 0x9752 +0xCFE6 0x975E +0xCFE7 0x4E9F +0xCFE8 0x4EAD +0xCFE9 0x4EAE +0xCFEA 0x4FE1 +0xCFEB 0x4FB5 +0xCFEC 0x4FAF +0xCFED 0x4FBF +0xCFEE 0x4FE0 +0xCFEF 0x4FD1 +0xCFF0 0x4FCF +0xCFF1 0x4FDD +0xCFF2 0x4FC3 +0xCFF3 0x4FB6 +0xCFF4 0x4FD8 +0xCFF5 0x4FDF +0xCFF6 0x4FCA +0xCFF7 0x4FD7 +0xCFF8 0x4FAE +0xCFF9 0x4FD0 +0xCFFA 0x4FC4 +0xCFFB 0x4FC2 +0xCFFC 0x4FDA +0xCFFD 0x4FCE +0xCFFE 0x4FDE +0xD0A1 0x4FB7 +0xD0A2 0x5157 +0xD0A3 0x5192 +0xD0A4 0x5191 +0xD0A5 0x51A0 +0xD0A6 0x524E +0xD0A7 0x5243 +0xD0A8 0x524A +0xD0A9 0x524D +0xD0AA 0x524C +0xD0AB 0x524B +0xD0AC 0x5247 +0xD0AD 0x52C7 +0xD0AE 0x52C9 +0xD0AF 0x52C3 +0xD0B0 0x52C1 +0xD0B1 0x530D +0xD0B2 0x5357 +0xD0B3 0x537B +0xD0B4 0x539A +0xD0B5 0x53DB +0xD0B6 0x54AC +0xD0B7 0x54C0 +0xD0B8 0x54A8 +0xD0B9 0x54CE +0xD0BA 0x54C9 +0xD0BB 0x54B8 +0xD0BC 0x54A6 +0xD0BD 0x54B3 +0xD0BE 0x54C7 +0xD0BF 0x54C2 +0xD0C0 0x54BD +0xD0C1 0x54AA +0xD0C2 0x54C1 +0xD0C3 0x54C4 +0xD0C4 0x54C8 +0xD0C5 0x54AF +0xD0C6 0x54AB +0xD0C7 0x54B1 +0xD0C8 0x54BB +0xD0C9 0x54A9 +0xD0CA 0x54A7 +0xD0CB 0x54BF +0xD0CC 0x56FF +0xD0CD 0x5782 +0xD0CE 0x578B +0xD0CF 0x57A0 +0xD0D0 0x57A3 +0xD0D1 0x57A2 +0xD0D2 0x57CE +0xD0D3 0x57AE +0xD0D4 0x5793 +0xD0D5 0x5955 +0xD0D6 0x5951 +0xD0D7 0x594F +0xD0D8 0x594E +0xD0D9 0x5950 +0xD0DA 0x59DC +0xD0DB 0x59D8 +0xD0DC 0x59FF +0xD0DD 0x59E3 +0xD0DE 0x59E8 +0xD0DF 0x5A03 +0xD0E0 0x59E5 +0xD0E1 0x59EA +0xD0E2 0x59DA +0xD0E3 0x59E6 +0xD0E4 0x5A01 +0xD0E5 0x59FB +0xD0E6 0x5B69 +0xD0E7 0x5BA3 +0xD0E8 0x5BA6 +0xD0E9 0x5BA4 +0xD0EA 0x5BA2 +0xD0EB 0x5BA5 +0xD0EC 0x5C01 +0xD0ED 0x5C4E +0xD0EE 0x5C4F +0xD0EF 0x5C4D +0xD0F0 0x5C4B +0xD0F1 0x5CD9 +0xD0F2 0x5CD2 +0xD0F3 0x5DF7 +0xD0F4 0x5E1D +0xD0F5 0x5E25 +0xD0F6 0x5E1F +0xD0F7 0x5E7D +0xD0F8 0x5EA0 +0xD0F9 0x5EA6 +0xD0FA 0x5EFA +0xD0FB 0x5F08 +0xD0FC 0x5F2D +0xD0FD 0x5F65 +0xD0FE 0x5F88 +0xD1A1 0x5F85 +0xD1A2 0x5F8A +0xD1A3 0x5F8B +0xD1A4 0x5F87 +0xD1A5 0x5F8C +0xD1A6 0x5F89 +0xD1A7 0x6012 +0xD1A8 0x601D +0xD1A9 0x6020 +0xD1AA 0x6025 +0xD1AB 0x600E +0xD1AC 0x6028 +0xD1AD 0x604D +0xD1AE 0x6070 +0xD1AF 0x6068 +0xD1B0 0x6062 +0xD1B1 0x6046 +0xD1B2 0x6043 +0xD1B3 0x606C +0xD1B4 0x606B +0xD1B5 0x606A +0xD1B6 0x6064 +0xD1B7 0x6241 +0xD1B8 0x62DC +0xD1B9 0x6316 +0xD1BA 0x6309 +0xD1BB 0x62FC +0xD1BC 0x62ED +0xD1BD 0x6301 +0xD1BE 0x62EE +0xD1BF 0x62FD +0xD1C0 0x6307 +0xD1C1 0x62F1 +0xD1C2 0x62F7 +0xD1C3 0x62EF +0xD1C4 0x62EC +0xD1C5 0x62FE +0xD1C6 0x62F4 +0xD1C7 0x6311 +0xD1C8 0x6302 +0xD1C9 0x653F +0xD1CA 0x6545 +0xD1CB 0x65AB +0xD1CC 0x65BD +0xD1CD 0x65E2 +0xD1CE 0x6625 +0xD1CF 0x662D +0xD1D0 0x6620 +0xD1D1 0x6627 +0xD1D2 0x662F +0xD1D3 0x661F +0xD1D4 0x6628 +0xD1D5 0x6631 +0xD1D6 0x6624 +0xD1D7 0x66F7 +0xD1D8 0x67FF +0xD1D9 0x67D3 +0xD1DA 0x67F1 +0xD1DB 0x67D4 +0xD1DC 0x67D0 +0xD1DD 0x67EC +0xD1DE 0x67B6 +0xD1DF 0x67AF +0xD1E0 0x67F5 +0xD1E1 0x67E9 +0xD1E2 0x67EF +0xD1E3 0x67C4 +0xD1E4 0x67D1 +0xD1E5 0x67B4 +0xD1E6 0x67DA +0xD1E7 0x67E5 +0xD1E8 0x67B8 +0xD1E9 0x67CF +0xD1EA 0x67DE +0xD1EB 0x67F3 +0xD1EC 0x67B0 +0xD1ED 0x67D9 +0xD1EE 0x67E2 +0xD1EF 0x67DD +0xD1F0 0x67D2 +0xD1F1 0x6B6A +0xD1F2 0x6B83 +0xD1F3 0x6B86 +0xD1F4 0x6BB5 +0xD1F5 0x6BD2 +0xD1F6 0x6BD7 +0xD1F7 0x6C1F +0xD1F8 0x6CC9 +0xD1F9 0x6D0B +0xD1FA 0x6D32 +0xD1FB 0x6D2A +0xD1FC 0x6D41 +0xD1FD 0x6D25 +0xD1FE 0x6D0C +0xD2A1 0x6D31 +0xD2A2 0x6D1E +0xD2A3 0x6D17 +0xD2A4 0x6D3B +0xD2A5 0x6D3D +0xD2A6 0x6D3E +0xD2A7 0x6D36 +0xD2A8 0x6D1B +0xD2A9 0x6CF5 +0xD2AA 0x6D39 +0xD2AB 0x6D27 +0xD2AC 0x6D38 +0xD2AD 0x6D29 +0xD2AE 0x6D2E +0xD2AF 0x6D35 +0xD2B0 0x6D0E +0xD2B1 0x6D2B +0xD2B2 0x70AB +0xD2B3 0x70BA +0xD2B4 0x70B3 +0xD2B5 0x70AC +0xD2B6 0x70AF +0xD2B7 0x70AD +0xD2B8 0x70B8 +0xD2B9 0x70AE +0xD2BA 0x70A4 +0xD2BB 0x7230 +0xD2BC 0x7272 +0xD2BD 0x726F +0xD2BE 0x7274 +0xD2BF 0x72E9 +0xD2C0 0x72E0 +0xD2C1 0x72E1 +0xD2C2 0x73B7 +0xD2C3 0x73CA +0xD2C4 0x73BB +0xD2C5 0x73B2 +0xD2C6 0x73CD +0xD2C7 0x73C0 +0xD2C8 0x73B3 +0xD2C9 0x751A +0xD2CA 0x752D +0xD2CB 0x754F +0xD2CC 0x754C +0xD2CD 0x754E +0xD2CE 0x754B +0xD2CF 0x75AB +0xD2D0 0x75A4 +0xD2D1 0x75A5 +0xD2D2 0x75A2 +0xD2D3 0x75A3 +0xD2D4 0x7678 +0xD2D5 0x7686 +0xD2D6 0x7687 +0xD2D7 0x7688 +0xD2D8 0x76C8 +0xD2D9 0x76C6 +0xD2DA 0x76C3 +0xD2DB 0x76C5 +0xD2DC 0x7701 +0xD2DD 0x76F9 +0xD2DE 0x76F8 +0xD2DF 0x7709 +0xD2E0 0x770B +0xD2E1 0x76FE +0xD2E2 0x76FC +0xD2E3 0x7707 +0xD2E4 0x77DC +0xD2E5 0x7802 +0xD2E6 0x7814 +0xD2E7 0x780C +0xD2E8 0x780D +0xD2E9 0x7946 +0xD2EA 0x7949 +0xD2EB 0x7948 +0xD2EC 0x7947 +0xD2ED 0x79B9 +0xD2EE 0x79BA +0xD2EF 0x79D1 +0xD2F0 0x79D2 +0xD2F1 0x79CB +0xD2F2 0x7A7F +0xD2F3 0x7A81 +0xD2F4 0x7AFF +0xD2F5 0x7AFD +0xD2F6 0x7C7D +0xD2F7 0x7D02 +0xD2F8 0x7D05 +0xD2F9 0x7D00 +0xD2FA 0x7D09 +0xD2FB 0x7D07 +0xD2FC 0x7D04 +0xD2FD 0x7D06 +0xD2FE 0x7F38 +0xD3A1 0x7F8E +0xD3A2 0x7FBF +0xD3A3 0x8010 +0xD3A4 0x800D +0xD3A5 0x8011 +0xD3A6 0x8036 +0xD3A7 0x80D6 +0xD3A8 0x80E5 +0xD3A9 0x80DA +0xD3AA 0x80C3 +0xD3AB 0x80C4 +0xD3AC 0x80CC +0xD3AD 0x80E1 +0xD3AE 0x80DB +0xD3AF 0x80CE +0xD3B0 0x80DE +0xD3B1 0x80E4 +0xD3B2 0x80DD +0xD3B3 0x81F4 +0xD3B4 0x8222 +0xD3B5 0x82E7 +0xD3B6 0x8303 +0xD3B7 0x8305 +0xD3B8 0x82E3 +0xD3B9 0x82DB +0xD3BA 0x82E6 +0xD3BB 0x8304 +0xD3BC 0x82E5 +0xD3BD 0x8302 +0xD3BE 0x8309 +0xD3BF 0x82D2 +0xD3C0 0x82D7 +0xD3C1 0x82F1 +0xD3C2 0x8301 +0xD3C3 0x82DC +0xD3C4 0x82D4 +0xD3C5 0x82D1 +0xD3C6 0x82DE +0xD3C7 0x82D3 +0xD3C8 0x82DF +0xD3C9 0x82EF +0xD3CA 0x8306 +0xD3CB 0x8650 +0xD3CC 0x8679 +0xD3CD 0x867B +0xD3CE 0x867A +0xD3CF 0x884D +0xD3D0 0x886B +0xD3D1 0x8981 +0xD3D2 0x89D4 +0xD3D3 0x8A08 +0xD3D4 0x8A02 +0xD3D5 0x8A03 +0xD3D6 0x8C9E +0xD3D7 0x8CA0 +0xD3D8 0x8D74 +0xD3D9 0x8D73 +0xD3DA 0x8DB4 +0xD3DB 0x8ECD +0xD3DC 0x8ECC +0xD3DD 0x8FF0 +0xD3DE 0x8FE6 +0xD3DF 0x8FE2 +0xD3E0 0x8FEA +0xD3E1 0x8FE5 +0xD3E2 0x8FED +0xD3E3 0x8FEB +0xD3E4 0x8FE4 +0xD3E5 0x8FE8 +0xD3E6 0x90CA +0xD3E7 0x90CE +0xD3E8 0x90C1 +0xD3E9 0x90C3 +0xD3EA 0x914B +0xD3EB 0x914A +0xD3EC 0x91CD +0xD3ED 0x9582 +0xD3EE 0x9650 +0xD3EF 0x964B +0xD3F0 0x964C +0xD3F1 0x964D +0xD3F2 0x9762 +0xD3F3 0x9769 +0xD3F4 0x97CB +0xD3F5 0x97ED +0xD3F6 0x97F3 +0xD3F7 0x9801 +0xD3F8 0x98A8 +0xD3F9 0x98DB +0xD3FA 0x98DF +0xD3FB 0x9996 +0xD3FC 0x9999 +0xD3FD 0x4E58 +0xD3FE 0x4EB3 +0xD4A1 0x500C +0xD4A2 0x500D +0xD4A3 0x5023 +0xD4A4 0x4FEF +0xD4A5 0x5026 +0xD4A6 0x5025 +0xD4A7 0x4FF8 +0xD4A8 0x5029 +0xD4A9 0x5016 +0xD4AA 0x5006 +0xD4AB 0x503C +0xD4AC 0x501F +0xD4AD 0x501A +0xD4AE 0x5012 +0xD4AF 0x5011 +0xD4B0 0x4FFA +0xD4B1 0x5000 +0xD4B2 0x5014 +0xD4B3 0x5028 +0xD4B4 0x4FF1 +0xD4B5 0x5021 +0xD4B6 0x500B +0xD4B7 0x5019 +0xD4B8 0x5018 +0xD4B9 0x4FF3 +0xD4BA 0x4FEE +0xD4BB 0x502D +0xD4BC 0x502A +0xD4BD 0x4FFE +0xD4BE 0x502B +0xD4BF 0x5009 +0xD4C0 0x517C +0xD4C1 0x51A4 +0xD4C2 0x51A5 +0xD4C3 0x51A2 +0xD4C4 0x51CD +0xD4C5 0x51CC +0xD4C6 0x51C6 +0xD4C7 0x51CB +0xD4C8 0x5256 +0xD4C9 0x525C +0xD4CA 0x5254 +0xD4CB 0x525B +0xD4CC 0x525D +0xD4CD 0x532A +0xD4CE 0x537F +0xD4CF 0x539F +0xD4D0 0x539D +0xD4D1 0x53DF +0xD4D2 0x54E8 +0xD4D3 0x5510 +0xD4D4 0x5501 +0xD4D5 0x5537 +0xD4D6 0x54FC +0xD4D7 0x54E5 +0xD4D8 0x54F2 +0xD4D9 0x5506 +0xD4DA 0x54FA +0xD4DB 0x5514 +0xD4DC 0x54E9 +0xD4DD 0x54ED +0xD4DE 0x54E1 +0xD4DF 0x5509 +0xD4E0 0x54EE +0xD4E1 0x54EA +0xD4E2 0x54E6 +0xD4E3 0x5527 +0xD4E4 0x5507 +0xD4E5 0x54FD +0xD4E6 0x550F +0xD4E7 0x5703 +0xD4E8 0x5704 +0xD4E9 0x57C2 +0xD4EA 0x57D4 +0xD4EB 0x57CB +0xD4EC 0x57C3 +0xD4ED 0x5809 +0xD4EE 0x590F +0xD4EF 0x5957 +0xD4F0 0x5958 +0xD4F1 0x595A +0xD4F2 0x5A11 +0xD4F3 0x5A18 +0xD4F4 0x5A1C +0xD4F5 0x5A1F +0xD4F6 0x5A1B +0xD4F7 0x5A13 +0xD4F8 0x59EC +0xD4F9 0x5A20 +0xD4FA 0x5A23 +0xD4FB 0x5A29 +0xD4FC 0x5A25 +0xD4FD 0x5A0C +0xD4FE 0x5A09 +0xD5A1 0x5B6B +0xD5A2 0x5C58 +0xD5A3 0x5BB0 +0xD5A4 0x5BB3 +0xD5A5 0x5BB6 +0xD5A6 0x5BB4 +0xD5A7 0x5BAE +0xD5A8 0x5BB5 +0xD5A9 0x5BB9 +0xD5AA 0x5BB8 +0xD5AB 0x5C04 +0xD5AC 0x5C51 +0xD5AD 0x5C55 +0xD5AE 0x5C50 +0xD5AF 0x5CED +0xD5B0 0x5CFD +0xD5B1 0x5CFB +0xD5B2 0x5CEA +0xD5B3 0x5CE8 +0xD5B4 0x5CF0 +0xD5B5 0x5CF6 +0xD5B6 0x5D01 +0xD5B7 0x5CF4 +0xD5B8 0x5DEE +0xD5B9 0x5E2D +0xD5BA 0x5E2B +0xD5BB 0x5EAB +0xD5BC 0x5EAD +0xD5BD 0x5EA7 +0xD5BE 0x5F31 +0xD5BF 0x5F92 +0xD5C0 0x5F91 +0xD5C1 0x5F90 +0xD5C2 0x6059 +0xD5C3 0x6063 +0xD5C4 0x6065 +0xD5C5 0x6050 +0xD5C6 0x6055 +0xD5C7 0x606D +0xD5C8 0x6069 +0xD5C9 0x606F +0xD5CA 0x6084 +0xD5CB 0x609F +0xD5CC 0x609A +0xD5CD 0x608D +0xD5CE 0x6094 +0xD5CF 0x608C +0xD5D0 0x6085 +0xD5D1 0x6096 +0xD5D2 0x6247 +0xD5D3 0x62F3 +0xD5D4 0x6308 +0xD5D5 0x62FF +0xD5D6 0x634E +0xD5D7 0x633E +0xD5D8 0x632F +0xD5D9 0x6355 +0xD5DA 0x6342 +0xD5DB 0x6346 +0xD5DC 0x634F +0xD5DD 0x6349 +0xD5DE 0x633A +0xD5DF 0x6350 +0xD5E0 0x633D +0xD5E1 0x632A +0xD5E2 0x632B +0xD5E3 0x6328 +0xD5E4 0x634D +0xD5E5 0x634C +0xD5E6 0x6548 +0xD5E7 0x6549 +0xD5E8 0x6599 +0xD5E9 0x65C1 +0xD5EA 0x65C5 +0xD5EB 0x6642 +0xD5EC 0x6649 +0xD5ED 0x664F +0xD5EE 0x6643 +0xD5EF 0x6652 +0xD5F0 0x664C +0xD5F1 0x6645 +0xD5F2 0x6641 +0xD5F3 0x66F8 +0xD5F4 0x6714 +0xD5F5 0x6715 +0xD5F6 0x6717 +0xD5F7 0x6821 +0xD5F8 0x6838 +0xD5F9 0x6848 +0xD5FA 0x6846 +0xD5FB 0x6853 +0xD5FC 0x6839 +0xD5FD 0x6842 +0xD5FE 0x6854 +0xD6A1 0x6829 +0xD6A2 0x68B3 +0xD6A3 0x6817 +0xD6A4 0x684C +0xD6A5 0x6851 +0xD6A6 0x683D +0xD6A7 0x67F4 +0xD6A8 0x6850 +0xD6A9 0x6840 +0xD6AA 0x683C +0xD6AB 0x6843 +0xD6AC 0x682A +0xD6AD 0x6845 +0xD6AE 0x6813 +0xD6AF 0x6818 +0xD6B0 0x6841 +0xD6B1 0x6B8A +0xD6B2 0x6B89 +0xD6B3 0x6BB7 +0xD6B4 0x6C23 +0xD6B5 0x6C27 +0xD6B6 0x6C28 +0xD6B7 0x6C26 +0xD6B8 0x6C24 +0xD6B9 0x6CF0 +0xD6BA 0x6D6A +0xD6BB 0x6D95 +0xD6BC 0x6D88 +0xD6BD 0x6D87 +0xD6BE 0x6D66 +0xD6BF 0x6D78 +0xD6C0 0x6D77 +0xD6C1 0x6D59 +0xD6C2 0x6D93 +0xD6C3 0x6D6C +0xD6C4 0x6D89 +0xD6C5 0x6D6E +0xD6C6 0x6D5A +0xD6C7 0x6D74 +0xD6C8 0x6D69 +0xD6C9 0x6D8C +0xD6CA 0x6D8A +0xD6CB 0x6D79 +0xD6CC 0x6D85 +0xD6CD 0x6D65 +0xD6CE 0x6D94 +0xD6CF 0x70CA +0xD6D0 0x70D8 +0xD6D1 0x70E4 +0xD6D2 0x70D9 +0xD6D3 0x70C8 +0xD6D4 0x70CF +0xD6D5 0x7239 +0xD6D6 0x7279 +0xD6D7 0x72FC +0xD6D8 0x72F9 +0xD6D9 0x72FD +0xD6DA 0x72F8 +0xD6DB 0x72F7 +0xD6DC 0x7386 +0xD6DD 0x73ED +0xD6DE 0x7409 +0xD6DF 0x73EE +0xD6E0 0x73E0 +0xD6E1 0x73EA +0xD6E2 0x73DE +0xD6E3 0x7554 +0xD6E4 0x755D +0xD6E5 0x755C +0xD6E6 0x755A +0xD6E7 0x7559 +0xD6E8 0x75BE +0xD6E9 0x75C5 +0xD6EA 0x75C7 +0xD6EB 0x75B2 +0xD6EC 0x75B3 +0xD6ED 0x75BD +0xD6EE 0x75BC +0xD6EF 0x75B9 +0xD6F0 0x75C2 +0xD6F1 0x75B8 +0xD6F2 0x768B +0xD6F3 0x76B0 +0xD6F4 0x76CA +0xD6F5 0x76CD +0xD6F6 0x76CE +0xD6F7 0x7729 +0xD6F8 0x771F +0xD6F9 0x7720 +0xD6FA 0x7728 +0xD6FB 0x77E9 +0xD6FC 0x7830 +0xD6FD 0x7827 +0xD6FE 0x7838 +0xD7A1 0x781D +0xD7A2 0x7834 +0xD7A3 0x7837 +0xD7A4 0x7825 +0xD7A5 0x782D +0xD7A6 0x7820 +0xD7A7 0x781F +0xD7A8 0x7832 +0xD7A9 0x7955 +0xD7AA 0x7950 +0xD7AB 0x7960 +0xD7AC 0x795F +0xD7AD 0x7956 +0xD7AE 0x795E +0xD7AF 0x795D +0xD7B0 0x7957 +0xD7B1 0x795A +0xD7B2 0x79E4 +0xD7B3 0x79E3 +0xD7B4 0x79E7 +0xD7B5 0x79DF +0xD7B6 0x79E6 +0xD7B7 0x79E9 +0xD7B8 0x79D8 +0xD7B9 0x7A84 +0xD7BA 0x7A88 +0xD7BB 0x7AD9 +0xD7BC 0x7B06 +0xD7BD 0x7B11 +0xD7BE 0x7C89 +0xD7BF 0x7D21 +0xD7C0 0x7D17 +0xD7C1 0x7D0B +0xD7C2 0x7D0A +0xD7C3 0x7D20 +0xD7C4 0x7D22 +0xD7C5 0x7D14 +0xD7C6 0x7D10 +0xD7C7 0x7D15 +0xD7C8 0x7D1A +0xD7C9 0x7D1C +0xD7CA 0x7D0D +0xD7CB 0x7D19 +0xD7CC 0x7D1B +0xD7CD 0x7F3A +0xD7CE 0x7F5F +0xD7CF 0x7F94 +0xD7D0 0x7FC5 +0xD7D1 0x7FC1 +0xD7D2 0x8006 +0xD7D3 0x8004 +0xD7D4 0x8018 +0xD7D5 0x8015 +0xD7D6 0x8019 +0xD7D7 0x8017 +0xD7D8 0x803D +0xD7D9 0x803F +0xD7DA 0x80F1 +0xD7DB 0x8102 +0xD7DC 0x80F0 +0xD7DD 0x8105 +0xD7DE 0x80ED +0xD7DF 0x80F4 +0xD7E0 0x8106 +0xD7E1 0x80F8 +0xD7E2 0x80F3 +0xD7E3 0x8108 +0xD7E4 0x80FD +0xD7E5 0x810A +0xD7E6 0x80FC +0xD7E7 0x80EF +0xD7E8 0x81ED +0xD7E9 0x81EC +0xD7EA 0x8200 +0xD7EB 0x8210 +0xD7EC 0x822A +0xD7ED 0x822B +0xD7EE 0x8228 +0xD7EF 0x822C +0xD7F0 0x82BB +0xD7F1 0x832B +0xD7F2 0x8352 +0xD7F3 0x8354 +0xD7F4 0x834A +0xD7F5 0x8338 +0xD7F6 0x8350 +0xD7F7 0x8349 +0xD7F8 0x8335 +0xD7F9 0x8334 +0xD7FA 0x834F +0xD7FB 0x8332 +0xD7FC 0x8339 +0xD7FD 0x8336 +0xD7FE 0x8317 +0xD8A1 0x8340 +0xD8A2 0x8331 +0xD8A3 0x8328 +0xD8A4 0x8343 +0xD8A5 0x8654 +0xD8A6 0x868A +0xD8A7 0x86AA +0xD8A8 0x8693 +0xD8A9 0x86A4 +0xD8AA 0x86A9 +0xD8AB 0x868C +0xD8AC 0x86A3 +0xD8AD 0x869C +0xD8AE 0x8870 +0xD8AF 0x8877 +0xD8B0 0x8881 +0xD8B1 0x8882 +0xD8B2 0x887D +0xD8B3 0x8879 +0xD8B4 0x8A18 +0xD8B5 0x8A10 +0xD8B6 0x8A0E +0xD8B7 0x8A0C +0xD8B8 0x8A15 +0xD8B9 0x8A0A +0xD8BA 0x8A17 +0xD8BB 0x8A13 +0xD8BC 0x8A16 +0xD8BD 0x8A0F +0xD8BE 0x8A11 +0xD8BF 0x8C48 +0xD8C0 0x8C7A +0xD8C1 0x8C79 +0xD8C2 0x8CA1 +0xD8C3 0x8CA2 +0xD8C4 0x8D77 +0xD8C5 0x8EAC +0xD8C6 0x8ED2 +0xD8C7 0x8ED4 +0xD8C8 0x8ECF +0xD8C9 0x8FB1 +0xD8CA 0x9001 +0xD8CB 0x9006 +0xD8CC 0x8FF7 +0xD8CD 0x9000 +0xD8CE 0x8FFA +0xD8CF 0x8FF4 +0xD8D0 0x9003 +0xD8D1 0x8FFD +0xD8D2 0x9005 +0xD8D3 0x8FF8 +0xD8D4 0x9095 +0xD8D5 0x90E1 +0xD8D6 0x90DD +0xD8D7 0x90E2 +0xD8D8 0x9152 +0xD8D9 0x914D +0xD8DA 0x914C +0xD8DB 0x91D8 +0xD8DC 0x91DD +0xD8DD 0x91D7 +0xD8DE 0x91DC +0xD8DF 0x91D9 +0xD8E0 0x9583 +0xD8E1 0x9662 +0xD8E2 0x9663 +0xD8E3 0x9661 +0xD8E4 0x965B +0xD8E5 0x965D +0xD8E6 0x9664 +0xD8E7 0x9658 +0xD8E8 0x965E +0xD8E9 0x96BB +0xD8EA 0x98E2 +0xD8EB 0x99AC +0xD8EC 0x9AA8 +0xD8ED 0x9AD8 +0xD8EE 0x9B25 +0xD8EF 0x9B32 +0xD8F0 0x9B3C +0xD8F1 0x4E7E +0xD8F2 0x507A +0xD8F3 0x507D +0xD8F4 0x505C +0xD8F5 0x5047 +0xD8F6 0x5043 +0xD8F7 0x504C +0xD8F8 0x505A +0xD8F9 0x5049 +0xD8FA 0x5065 +0xD8FB 0x5076 +0xD8FC 0x504E +0xD8FD 0x5055 +0xD8FE 0x5075 +0xD9A1 0x5074 +0xD9A2 0x5077 +0xD9A3 0x504F +0xD9A4 0x500F +0xD9A5 0x506F +0xD9A6 0x506D +0xD9A7 0x515C +0xD9A8 0x5195 +0xD9A9 0x51F0 +0xD9AA 0x526A +0xD9AB 0x526F +0xD9AC 0x52D2 +0xD9AD 0x52D9 +0xD9AE 0x52D8 +0xD9AF 0x52D5 +0xD9B0 0x5310 +0xD9B1 0x530F +0xD9B2 0x5319 +0xD9B3 0x533F +0xD9B4 0x5340 +0xD9B5 0x533E +0xD9B6 0x53C3 +0xD9B7 0x66FC +0xD9B8 0x5546 +0xD9B9 0x556A +0xD9BA 0x5566 +0xD9BB 0x5544 +0xD9BC 0x555E +0xD9BD 0x5561 +0xD9BE 0x5543 +0xD9BF 0x554A +0xD9C0 0x5531 +0xD9C1 0x5556 +0xD9C2 0x554F +0xD9C3 0x5555 +0xD9C4 0x552F +0xD9C5 0x5564 +0xD9C6 0x5538 +0xD9C7 0x552E +0xD9C8 0x555C +0xD9C9 0x552C +0xD9CA 0x5563 +0xD9CB 0x5533 +0xD9CC 0x5541 +0xD9CD 0x5557 +0xD9CE 0x5708 +0xD9CF 0x570B +0xD9D0 0x5709 +0xD9D1 0x57DF +0xD9D2 0x5805 +0xD9D3 0x580A +0xD9D4 0x5806 +0xD9D5 0x57E0 +0xD9D6 0x57E4 +0xD9D7 0x57FA +0xD9D8 0x5802 +0xD9D9 0x5835 +0xD9DA 0x57F7 +0xD9DB 0x57F9 +0xD9DC 0x5920 +0xD9DD 0x5962 +0xD9DE 0x5A36 +0xD9DF 0x5A41 +0xD9E0 0x5A49 +0xD9E1 0x5A66 +0xD9E2 0x5A6A +0xD9E3 0x5A40 +0xD9E4 0x5A3C +0xD9E5 0x5A62 +0xD9E6 0x5A5A +0xD9E7 0x5A46 +0xD9E8 0x5A4A +0xD9E9 0x5B70 +0xD9EA 0x5BC7 +0xD9EB 0x5BC5 +0xD9EC 0x5BC4 +0xD9ED 0x5BC2 +0xD9EE 0x5BBF +0xD9EF 0x5BC6 +0xD9F0 0x5C09 +0xD9F1 0x5C08 +0xD9F2 0x5C07 +0xD9F3 0x5C60 +0xD9F4 0x5C5C +0xD9F5 0x5C5D +0xD9F6 0x5D07 +0xD9F7 0x5D06 +0xD9F8 0x5D0E +0xD9F9 0x5D1B +0xD9FA 0x5D16 +0xD9FB 0x5D22 +0xD9FC 0x5D11 +0xD9FD 0x5D29 +0xD9FE 0x5D14 +0xDAA1 0x5D19 +0xDAA2 0x5D24 +0xDAA3 0x5D27 +0xDAA4 0x5D17 +0xDAA5 0x5DE2 +0xDAA6 0x5E38 +0xDAA7 0x5E36 +0xDAA8 0x5E33 +0xDAA9 0x5E37 +0xDAAA 0x5EB7 +0xDAAB 0x5EB8 +0xDAAC 0x5EB6 +0xDAAD 0x5EB5 +0xDAAE 0x5EBE +0xDAAF 0x5F35 +0xDAB0 0x5F37 +0xDAB1 0x5F57 +0xDAB2 0x5F6C +0xDAB3 0x5F69 +0xDAB4 0x5F6B +0xDAB5 0x5F97 +0xDAB6 0x5F99 +0xDAB7 0x5F9E +0xDAB8 0x5F98 +0xDAB9 0x5FA1 +0xDABA 0x5FA0 +0xDABB 0x5F9C +0xDABC 0x607F +0xDABD 0x60A3 +0xDABE 0x6089 +0xDABF 0x60A0 +0xDAC0 0x60A8 +0xDAC1 0x60CB +0xDAC2 0x60B4 +0xDAC3 0x60E6 +0xDAC4 0x60BD +0xDAC5 0x60C5 +0xDAC6 0x60BB +0xDAC7 0x60B5 +0xDAC8 0x60DC +0xDAC9 0x60BC +0xDACA 0x60D8 +0xDACB 0x60D5 +0xDACC 0x60C6 +0xDACD 0x60DF +0xDACE 0x60B8 +0xDACF 0x60DA +0xDAD0 0x60C7 +0xDAD1 0x621A +0xDAD2 0x621B +0xDAD3 0x6248 +0xDAD4 0x63A0 +0xDAD5 0x63A7 +0xDAD6 0x6372 +0xDAD7 0x6396 +0xDAD8 0x63A2 +0xDAD9 0x63A5 +0xDADA 0x6377 +0xDADB 0x6367 +0xDADC 0x6398 +0xDADD 0x63AA +0xDADE 0x6371 +0xDADF 0x63A9 +0xDAE0 0x6389 +0xDAE1 0x6383 +0xDAE2 0x639B +0xDAE3 0x636B +0xDAE4 0x63A8 +0xDAE5 0x6384 +0xDAE6 0x6388 +0xDAE7 0x6399 +0xDAE8 0x63A1 +0xDAE9 0x63AC +0xDAEA 0x6392 +0xDAEB 0x638F +0xDAEC 0x6380 +0xDAED 0x637B +0xDAEE 0x6369 +0xDAEF 0x6368 +0xDAF0 0x637A +0xDAF1 0x655D +0xDAF2 0x6556 +0xDAF3 0x6551 +0xDAF4 0x6559 +0xDAF5 0x6557 +0xDAF6 0x555F +0xDAF7 0x654F +0xDAF8 0x6558 +0xDAF9 0x6555 +0xDAFA 0x6554 +0xDAFB 0x659C +0xDAFC 0x659B +0xDAFD 0x65AC +0xDAFE 0x65CF +0xDBA1 0x65CB +0xDBA2 0x65CC +0xDBA3 0x65CE +0xDBA4 0x665D +0xDBA5 0x665A +0xDBA6 0x6664 +0xDBA7 0x6668 +0xDBA8 0x6666 +0xDBA9 0x665E +0xDBAA 0x66F9 +0xDBAB 0x52D7 +0xDBAC 0x671B +0xDBAD 0x6881 +0xDBAE 0x68AF +0xDBAF 0x68A2 +0xDBB0 0x6893 +0xDBB1 0x68B5 +0xDBB2 0x687F +0xDBB3 0x6876 +0xDBB4 0x68B1 +0xDBB5 0x68A7 +0xDBB6 0x6897 +0xDBB7 0x68B0 +0xDBB8 0x6883 +0xDBB9 0x68C4 +0xDBBA 0x68AD +0xDBBB 0x6886 +0xDBBC 0x6885 +0xDBBD 0x6894 +0xDBBE 0x689D +0xDBBF 0x68A8 +0xDBC0 0x689F +0xDBC1 0x68A1 +0xDBC2 0x6882 +0xDBC3 0x6B32 +0xDBC4 0x6BBA +0xDBC5 0x6BEB +0xDBC6 0x6BEC +0xDBC7 0x6C2B +0xDBC8 0x6D8E +0xDBC9 0x6DBC +0xDBCA 0x6DF3 +0xDBCB 0x6DD9 +0xDBCC 0x6DB2 +0xDBCD 0x6DE1 +0xDBCE 0x6DCC +0xDBCF 0x6DE4 +0xDBD0 0x6DFB +0xDBD1 0x6DFA +0xDBD2 0x6E05 +0xDBD3 0x6DC7 +0xDBD4 0x6DCB +0xDBD5 0x6DAF +0xDBD6 0x6DD1 +0xDBD7 0x6DAE +0xDBD8 0x6DDE +0xDBD9 0x6DF9 +0xDBDA 0x6DB8 +0xDBDB 0x6DF7 +0xDBDC 0x6DF5 +0xDBDD 0x6DC5 +0xDBDE 0x6DD2 +0xDBDF 0x6E1A +0xDBE0 0x6DB5 +0xDBE1 0x6DDA +0xDBE2 0x6DEB +0xDBE3 0x6DD8 +0xDBE4 0x6DEA +0xDBE5 0x6DF1 +0xDBE6 0x6DEE +0xDBE7 0x6DE8 +0xDBE8 0x6DC6 +0xDBE9 0x6DC4 +0xDBEA 0x6DAA +0xDBEB 0x6DEC +0xDBEC 0x6DBF +0xDBED 0x6DE6 +0xDBEE 0x70F9 +0xDBEF 0x7109 +0xDBF0 0x710A +0xDBF1 0x70FD +0xDBF2 0x70EF +0xDBF3 0x723D +0xDBF4 0x727D +0xDBF5 0x7281 +0xDBF6 0x731C +0xDBF7 0x731B +0xDBF8 0x7316 +0xDBF9 0x7313 +0xDBFA 0x7319 +0xDBFB 0x7387 +0xDBFC 0x7405 +0xDBFD 0x740A +0xDBFE 0x7403 +0xDCA1 0x7406 +0xDCA2 0x73FE +0xDCA3 0x740D +0xDCA4 0x74E0 +0xDCA5 0x74F6 +0xDCA6 0x74F7 +0xDCA7 0x751C +0xDCA8 0x7522 +0xDCA9 0x7565 +0xDCAA 0x7566 +0xDCAB 0x7562 +0xDCAC 0x7570 +0xDCAD 0x758F +0xDCAE 0x75D4 +0xDCAF 0x75D5 +0xDCB0 0x75B5 +0xDCB1 0x75CA +0xDCB2 0x75CD +0xDCB3 0x768E +0xDCB4 0x76D4 +0xDCB5 0x76D2 +0xDCB6 0x76DB +0xDCB7 0x7737 +0xDCB8 0x773E +0xDCB9 0x773C +0xDCBA 0x7736 +0xDCBB 0x7738 +0xDCBC 0x773A +0xDCBD 0x786B +0xDCBE 0x7843 +0xDCBF 0x784E +0xDCC0 0x7965 +0xDCC1 0x7968 +0xDCC2 0x796D +0xDCC3 0x79FB +0xDCC4 0x7A92 +0xDCC5 0x7A95 +0xDCC6 0x7B20 +0xDCC7 0x7B28 +0xDCC8 0x7B1B +0xDCC9 0x7B2C +0xDCCA 0x7B26 +0xDCCB 0x7B19 +0xDCCC 0x7B1E +0xDCCD 0x7B2E +0xDCCE 0x7C92 +0xDCCF 0x7C97 +0xDCD0 0x7C95 +0xDCD1 0x7D46 +0xDCD2 0x7D43 +0xDCD3 0x7D71 +0xDCD4 0x7D2E +0xDCD5 0x7D39 +0xDCD6 0x7D3C +0xDCD7 0x7D40 +0xDCD8 0x7D30 +0xDCD9 0x7D33 +0xDCDA 0x7D44 +0xDCDB 0x7D2F +0xDCDC 0x7D42 +0xDCDD 0x7D32 +0xDCDE 0x7D31 +0xDCDF 0x7F3D +0xDCE0 0x7F9E +0xDCE1 0x7F9A +0xDCE2 0x7FCC +0xDCE3 0x7FCE +0xDCE4 0x7FD2 +0xDCE5 0x801C +0xDCE6 0x804A +0xDCE7 0x8046 +0xDCE8 0x812F +0xDCE9 0x8116 +0xDCEA 0x8123 +0xDCEB 0x812B +0xDCEC 0x8129 +0xDCED 0x8130 +0xDCEE 0x8124 +0xDCEF 0x8202 +0xDCF0 0x8235 +0xDCF1 0x8237 +0xDCF2 0x8236 +0xDCF3 0x8239 +0xDCF4 0x838E +0xDCF5 0x839E +0xDCF6 0x8398 +0xDCF7 0x8378 +0xDCF8 0x83A2 +0xDCF9 0x8396 +0xDCFA 0x83BD +0xDCFB 0x83AB +0xDCFC 0x8392 +0xDCFD 0x838A +0xDCFE 0x8393 +0xDDA1 0x8389 +0xDDA2 0x83A0 +0xDDA3 0x8377 +0xDDA4 0x837B +0xDDA5 0x837C +0xDDA6 0x8386 +0xDDA7 0x83A7 +0xDDA8 0x8655 +0xDDA9 0x5F6A +0xDDAA 0x86C7 +0xDDAB 0x86C0 +0xDDAC 0x86B6 +0xDDAD 0x86C4 +0xDDAE 0x86B5 +0xDDAF 0x86C6 +0xDDB0 0x86CB +0xDDB1 0x86B1 +0xDDB2 0x86AF +0xDDB3 0x86C9 +0xDDB4 0x8853 +0xDDB5 0x889E +0xDDB6 0x8888 +0xDDB7 0x88AB +0xDDB8 0x8892 +0xDDB9 0x8896 +0xDDBA 0x888D +0xDDBB 0x888B +0xDDBC 0x8993 +0xDDBD 0x898F +0xDDBE 0x8A2A +0xDDBF 0x8A1D +0xDDC0 0x8A23 +0xDDC1 0x8A25 +0xDDC2 0x8A31 +0xDDC3 0x8A2D +0xDDC4 0x8A1F +0xDDC5 0x8A1B +0xDDC6 0x8A22 +0xDDC7 0x8C49 +0xDDC8 0x8C5A +0xDDC9 0x8CA9 +0xDDCA 0x8CAC +0xDDCB 0x8CAB +0xDDCC 0x8CA8 +0xDDCD 0x8CAA +0xDDCE 0x8CA7 +0xDDCF 0x8D67 +0xDDD0 0x8D66 +0xDDD1 0x8DBE +0xDDD2 0x8DBA +0xDDD3 0x8EDB +0xDDD4 0x8EDF +0xDDD5 0x9019 +0xDDD6 0x900D +0xDDD7 0x901A +0xDDD8 0x9017 +0xDDD9 0x9023 +0xDDDA 0x901F +0xDDDB 0x901D +0xDDDC 0x9010 +0xDDDD 0x9015 +0xDDDE 0x901E +0xDDDF 0x9020 +0xDDE0 0x900F +0xDDE1 0x9022 +0xDDE2 0x9016 +0xDDE3 0x901B +0xDDE4 0x9014 +0xDDE5 0x90E8 +0xDDE6 0x90ED +0xDDE7 0x90FD +0xDDE8 0x9157 +0xDDE9 0x91CE +0xDDEA 0x91F5 +0xDDEB 0x91E6 +0xDDEC 0x91E3 +0xDDED 0x91E7 +0xDDEE 0x91ED +0xDDEF 0x91E9 +0xDDF0 0x9589 +0xDDF1 0x966A +0xDDF2 0x9675 +0xDDF3 0x9673 +0xDDF4 0x9678 +0xDDF5 0x9670 +0xDDF6 0x9674 +0xDDF7 0x9676 +0xDDF8 0x9677 +0xDDF9 0x966C +0xDDFA 0x96C0 +0xDDFB 0x96EA +0xDDFC 0x96E9 +0xDDFD 0x7AE0 +0xDDFE 0x7ADF +0xDEA1 0x9802 +0xDEA2 0x9803 +0xDEA3 0x9B5A +0xDEA4 0x9CE5 +0xDEA5 0x9E75 +0xDEA6 0x9E7F +0xDEA7 0x9EA5 +0xDEA8 0x9EBB +0xDEA9 0x50A2 +0xDEAA 0x508D +0xDEAB 0x5085 +0xDEAC 0x5099 +0xDEAD 0x5091 +0xDEAE 0x5080 +0xDEAF 0x5096 +0xDEB0 0x5098 +0xDEB1 0x509A +0xDEB2 0x6700 +0xDEB3 0x51F1 +0xDEB4 0x5272 +0xDEB5 0x5274 +0xDEB6 0x5275 +0xDEB7 0x5269 +0xDEB8 0x52DE +0xDEB9 0x52DD +0xDEBA 0x52DB +0xDEBB 0x535A +0xDEBC 0x53A5 +0xDEBD 0x557B +0xDEBE 0x5580 +0xDEBF 0x55A7 +0xDEC0 0x557C +0xDEC1 0x558A +0xDEC2 0x559D +0xDEC3 0x5598 +0xDEC4 0x5582 +0xDEC5 0x559C +0xDEC6 0x55AA +0xDEC7 0x5594 +0xDEC8 0x5587 +0xDEC9 0x558B +0xDECA 0x5583 +0xDECB 0x55B3 +0xDECC 0x55AE +0xDECD 0x559F +0xDECE 0x553E +0xDECF 0x55B2 +0xDED0 0x559A +0xDED1 0x55BB +0xDED2 0x55AC +0xDED3 0x55B1 +0xDED4 0x557E +0xDED5 0x5589 +0xDED6 0x55AB +0xDED7 0x5599 +0xDED8 0x570D +0xDED9 0x582F +0xDEDA 0x582A +0xDEDB 0x5834 +0xDEDC 0x5824 +0xDEDD 0x5830 +0xDEDE 0x5831 +0xDEDF 0x5821 +0xDEE0 0x581D +0xDEE1 0x5820 +0xDEE2 0x58F9 +0xDEE3 0x58FA +0xDEE4 0x5960 +0xDEE5 0x5A77 +0xDEE6 0x5A9A +0xDEE7 0x5A7F +0xDEE8 0x5A92 +0xDEE9 0x5A9B +0xDEEA 0x5AA7 +0xDEEB 0x5B73 +0xDEEC 0x5B71 +0xDEED 0x5BD2 +0xDEEE 0x5BCC +0xDEEF 0x5BD3 +0xDEF0 0x5BD0 +0xDEF1 0x5C0A +0xDEF2 0x5C0B +0xDEF3 0x5C31 +0xDEF4 0x5D4C +0xDEF5 0x5D50 +0xDEF6 0x5D34 +0xDEF7 0x5D47 +0xDEF8 0x5DFD +0xDEF9 0x5E45 +0xDEFA 0x5E3D +0xDEFB 0x5E40 +0xDEFC 0x5E43 +0xDEFD 0x5E7E +0xDEFE 0x5ECA +0xDFA1 0x5EC1 +0xDFA2 0x5EC2 +0xDFA3 0x5EC4 +0xDFA4 0x5F3C +0xDFA5 0x5F6D +0xDFA6 0x5FA9 +0xDFA7 0x5FAA +0xDFA8 0x5FA8 +0xDFA9 0x60D1 +0xDFAA 0x60E1 +0xDFAB 0x60B2 +0xDFAC 0x60B6 +0xDFAD 0x60E0 +0xDFAE 0x611C +0xDFAF 0x6123 +0xDFB0 0x60FA +0xDFB1 0x6115 +0xDFB2 0x60F0 +0xDFB3 0x60FB +0xDFB4 0x60F4 +0xDFB5 0x6168 +0xDFB6 0x60F1 +0xDFB7 0x610E +0xDFB8 0x60F6 +0xDFB9 0x6109 +0xDFBA 0x6100 +0xDFBB 0x6112 +0xDFBC 0x621F +0xDFBD 0x6249 +0xDFBE 0x63A3 +0xDFBF 0x638C +0xDFC0 0x63CF +0xDFC1 0x63C0 +0xDFC2 0x63E9 +0xDFC3 0x63C9 +0xDFC4 0x63C6 +0xDFC5 0x63CD +0xDFC6 0x63D2 +0xDFC7 0x63E3 +0xDFC8 0x63D0 +0xDFC9 0x63E1 +0xDFCA 0x63D6 +0xDFCB 0x63ED +0xDFCC 0x63EE +0xDFCD 0x6376 +0xDFCE 0x63F4 +0xDFCF 0x63EA +0xDFD0 0x63DB +0xDFD1 0x6452 +0xDFD2 0x63DA +0xDFD3 0x63F9 +0xDFD4 0x655E +0xDFD5 0x6566 +0xDFD6 0x6562 +0xDFD7 0x6563 +0xDFD8 0x6591 +0xDFD9 0x6590 +0xDFDA 0x65AF +0xDFDB 0x666E +0xDFDC 0x6670 +0xDFDD 0x6674 +0xDFDE 0x6676 +0xDFDF 0x666F +0xDFE0 0x6691 +0xDFE1 0x667A +0xDFE2 0x667E +0xDFE3 0x6677 +0xDFE4 0x66FE +0xDFE5 0x66FF +0xDFE6 0x671F +0xDFE7 0x671D +0xDFE8 0x68FA +0xDFE9 0x68D5 +0xDFEA 0x68E0 +0xDFEB 0x68D8 +0xDFEC 0x68D7 +0xDFED 0x6905 +0xDFEE 0x68DF +0xDFEF 0x68F5 +0xDFF0 0x68EE +0xDFF1 0x68E7 +0xDFF2 0x68F9 +0xDFF3 0x68D2 +0xDFF4 0x68F2 +0xDFF5 0x68E3 +0xDFF6 0x68CB +0xDFF7 0x68CD +0xDFF8 0x690D +0xDFF9 0x6912 +0xDFFA 0x690E +0xDFFB 0x68C9 +0xDFFC 0x68DA +0xDFFD 0x696E +0xDFFE 0x68FB +0xE0A1 0x6B3E +0xE0A2 0x6B3A +0xE0A3 0x6B3D +0xE0A4 0x6B98 +0xE0A5 0x6B96 +0xE0A6 0x6BBC +0xE0A7 0x6BEF +0xE0A8 0x6C2E +0xE0A9 0x6C2F +0xE0AA 0x6C2C +0xE0AB 0x6E2F +0xE0AC 0x6E38 +0xE0AD 0x6E54 +0xE0AE 0x6E21 +0xE0AF 0x6E32 +0xE0B0 0x6E67 +0xE0B1 0x6E4A +0xE0B2 0x6E20 +0xE0B3 0x6E25 +0xE0B4 0x6E23 +0xE0B5 0x6E1B +0xE0B6 0x6E5B +0xE0B7 0x6E58 +0xE0B8 0x6E24 +0xE0B9 0x6E56 +0xE0BA 0x6E6E +0xE0BB 0x6E2D +0xE0BC 0x6E26 +0xE0BD 0x6E6F +0xE0BE 0x6E34 +0xE0BF 0x6E4D +0xE0C0 0x6E3A +0xE0C1 0x6E2C +0xE0C2 0x6E43 +0xE0C3 0x6E1D +0xE0C4 0x6E3E +0xE0C5 0x6ECB +0xE0C6 0x6E89 +0xE0C7 0x6E19 +0xE0C8 0x6E4E +0xE0C9 0x6E63 +0xE0CA 0x6E44 +0xE0CB 0x6E72 +0xE0CC 0x6E69 +0xE0CD 0x6E5F +0xE0CE 0x7119 +0xE0CF 0x711A +0xE0D0 0x7126 +0xE0D1 0x7130 +0xE0D2 0x7121 +0xE0D3 0x7136 +0xE0D4 0x716E +0xE0D5 0x711C +0xE0D6 0x724C +0xE0D7 0x7284 +0xE0D8 0x7280 +0xE0D9 0x7336 +0xE0DA 0x7325 +0xE0DB 0x7334 +0xE0DC 0x7329 +0xE0DD 0x743A +0xE0DE 0x742A +0xE0DF 0x7433 +0xE0E0 0x7422 +0xE0E1 0x7425 +0xE0E2 0x7435 +0xE0E3 0x7436 +0xE0E4 0x7434 +0xE0E5 0x742F +0xE0E6 0x741B +0xE0E7 0x7426 +0xE0E8 0x7428 +0xE0E9 0x7525 +0xE0EA 0x7526 +0xE0EB 0x756B +0xE0EC 0x756A +0xE0ED 0x75E2 +0xE0EE 0x75DB +0xE0EF 0x75E3 +0xE0F0 0x75D9 +0xE0F1 0x75D8 +0xE0F2 0x75DE +0xE0F3 0x75E0 +0xE0F4 0x767B +0xE0F5 0x767C +0xE0F6 0x7696 +0xE0F7 0x7693 +0xE0F8 0x76B4 +0xE0F9 0x76DC +0xE0FA 0x774F +0xE0FB 0x77ED +0xE0FC 0x785D +0xE0FD 0x786C +0xE0FE 0x786F +0xE1A1 0x7A0D +0xE1A2 0x7A08 +0xE1A3 0x7A0B +0xE1A4 0x7A05 +0xE1A5 0x7A00 +0xE1A6 0x7A98 +0xE1A7 0x7A97 +0xE1A8 0x7A96 +0xE1A9 0x7AE5 +0xE1AA 0x7AE3 +0xE1AB 0x7B49 +0xE1AC 0x7B56 +0xE1AD 0x7B46 +0xE1AE 0x7B50 +0xE1AF 0x7B52 +0xE1B0 0x7B54 +0xE1B1 0x7B4D +0xE1B2 0x7B4B +0xE1B3 0x7B4F +0xE1B4 0x7B51 +0xE1B5 0x7C9F +0xE1B6 0x7CA5 +0xE1B7 0x7D5E +0xE1B8 0x7D50 +0xE1B9 0x7D68 +0xE1BA 0x7D55 +0xE1BB 0x7D2B +0xE1BC 0x7D6E +0xE1BD 0x7D72 +0xE1BE 0x7D61 +0xE1BF 0x7D66 +0xE1C0 0x7D62 +0xE1C1 0x7D70 +0xE1C2 0x7D73 +0xE1C3 0x5584 +0xE1C4 0x7FD4 +0xE1C5 0x7FD5 +0xE1C6 0x800B +0xE1C7 0x8052 +0xE1C8 0x8085 +0xE1C9 0x8155 +0xE1CA 0x8154 +0xE1CB 0x814B +0xE1CC 0x8151 +0xE1CD 0x814E +0xE1CE 0x8139 +0xE1CF 0x8146 +0xE1D0 0x813E +0xE1D1 0x814C +0xE1D2 0x8153 +0xE1D3 0x8174 +0xE1D4 0x8212 +0xE1D5 0x821C +0xE1D6 0x83E9 +0xE1D7 0x8403 +0xE1D8 0x83F8 +0xE1D9 0x840D +0xE1DA 0x83E0 +0xE1DB 0x83C5 +0xE1DC 0x840B +0xE1DD 0x83C1 +0xE1DE 0x83EF +0xE1DF 0x83F1 +0xE1E0 0x83F4 +0xE1E1 0x8457 +0xE1E2 0x840A +0xE1E3 0x83F0 +0xE1E4 0x840C +0xE1E5 0x83CC +0xE1E6 0x83FD +0xE1E7 0x83F2 +0xE1E8 0x83CA +0xE1E9 0x8438 +0xE1EA 0x840E +0xE1EB 0x8404 +0xE1EC 0x83DC +0xE1ED 0x8407 +0xE1EE 0x83D4 +0xE1EF 0x83DF +0xE1F0 0x865B +0xE1F1 0x86DF +0xE1F2 0x86D9 +0xE1F3 0x86ED +0xE1F4 0x86D4 +0xE1F5 0x86DB +0xE1F6 0x86E4 +0xE1F7 0x86D0 +0xE1F8 0x86DE +0xE1F9 0x8857 +0xE1FA 0x88C1 +0xE1FB 0x88C2 +0xE1FC 0x88B1 +0xE1FD 0x8983 +0xE1FE 0x8996 +0xE2A1 0x8A3B +0xE2A2 0x8A60 +0xE2A3 0x8A55 +0xE2A4 0x8A5E +0xE2A5 0x8A3C +0xE2A6 0x8A41 +0xE2A7 0x8A54 +0xE2A8 0x8A5B +0xE2A9 0x8A50 +0xE2AA 0x8A46 +0xE2AB 0x8A34 +0xE2AC 0x8A3A +0xE2AD 0x8A36 +0xE2AE 0x8A56 +0xE2AF 0x8C61 +0xE2B0 0x8C82 +0xE2B1 0x8CAF +0xE2B2 0x8CBC +0xE2B3 0x8CB3 +0xE2B4 0x8CBD +0xE2B5 0x8CC1 +0xE2B6 0x8CBB +0xE2B7 0x8CC0 +0xE2B8 0x8CB4 +0xE2B9 0x8CB7 +0xE2BA 0x8CB6 +0xE2BB 0x8CBF +0xE2BC 0x8CB8 +0xE2BD 0x8D8A +0xE2BE 0x8D85 +0xE2BF 0x8D81 +0xE2C0 0x8DCE +0xE2C1 0x8DDD +0xE2C2 0x8DCB +0xE2C3 0x8DDA +0xE2C4 0x8DD1 +0xE2C5 0x8DCC +0xE2C6 0x8DDB +0xE2C7 0x8DC6 +0xE2C8 0x8EFB +0xE2C9 0x8EF8 +0xE2CA 0x8EFC +0xE2CB 0x8F9C +0xE2CC 0x902E +0xE2CD 0x9035 +0xE2CE 0x9031 +0xE2CF 0x9038 +0xE2D0 0x9032 +0xE2D1 0x9036 +0xE2D2 0x9102 +0xE2D3 0x90F5 +0xE2D4 0x9109 +0xE2D5 0x90FE +0xE2D6 0x9163 +0xE2D7 0x9165 +0xE2D8 0x91CF +0xE2D9 0x9214 +0xE2DA 0x9215 +0xE2DB 0x9223 +0xE2DC 0x9209 +0xE2DD 0x921E +0xE2DE 0x920D +0xE2DF 0x9210 +0xE2E0 0x9207 +0xE2E1 0x9211 +0xE2E2 0x9594 +0xE2E3 0x958F +0xE2E4 0x958B +0xE2E5 0x9591 +0xE2E6 0x9593 +0xE2E7 0x9592 +0xE2E8 0x958E +0xE2E9 0x968A +0xE2EA 0x968E +0xE2EB 0x968B +0xE2EC 0x967D +0xE2ED 0x9685 +0xE2EE 0x9686 +0xE2EF 0x968D +0xE2F0 0x9672 +0xE2F1 0x9684 +0xE2F2 0x96C1 +0xE2F3 0x96C5 +0xE2F4 0x96C4 +0xE2F5 0x96C6 +0xE2F6 0x96C7 +0xE2F7 0x96EF +0xE2F8 0x96F2 +0xE2F9 0x97CC +0xE2FA 0x9805 +0xE2FB 0x9806 +0xE2FC 0x9808 +0xE2FD 0x98E7 +0xE2FE 0x98EA +0xE3A1 0x98EF +0xE3A2 0x98E9 +0xE3A3 0x98F2 +0xE3A4 0x98ED +0xE3A5 0x99AE +0xE3A6 0x99AD +0xE3A7 0x9EC3 +0xE3A8 0x9ECD +0xE3A9 0x9ED1 +0xE3AA 0x4E82 +0xE3AB 0x50AD +0xE3AC 0x50B5 +0xE3AD 0x50B2 +0xE3AE 0x50B3 +0xE3AF 0x50C5 +0xE3B0 0x50BE +0xE3B1 0x50AC +0xE3B2 0x50B7 +0xE3B3 0x50BB +0xE3B4 0x50AF +0xE3B5 0x50C7 +0xE3B6 0x527F +0xE3B7 0x5277 +0xE3B8 0x527D +0xE3B9 0x52DF +0xE3BA 0x52E6 +0xE3BB 0x52E4 +0xE3BC 0x52E2 +0xE3BD 0x52E3 +0xE3BE 0x532F +0xE3BF 0x55DF +0xE3C0 0x55E8 +0xE3C1 0x55D3 +0xE3C2 0x55E6 +0xE3C3 0x55CE +0xE3C4 0x55DC +0xE3C5 0x55C7 +0xE3C6 0x55D1 +0xE3C7 0x55E3 +0xE3C8 0x55E4 +0xE3C9 0x55EF +0xE3CA 0x55DA +0xE3CB 0x55E1 +0xE3CC 0x55C5 +0xE3CD 0x55C6 +0xE3CE 0x55E5 +0xE3CF 0x55C9 +0xE3D0 0x5712 +0xE3D1 0x5713 +0xE3D2 0x585E +0xE3D3 0x5851 +0xE3D4 0x5858 +0xE3D5 0x5857 +0xE3D6 0x585A +0xE3D7 0x5854 +0xE3D8 0x586B +0xE3D9 0x584C +0xE3DA 0x586D +0xE3DB 0x584A +0xE3DC 0x5862 +0xE3DD 0x5852 +0xE3DE 0x584B +0xE3DF 0x5967 +0xE3E0 0x5AC1 +0xE3E1 0x5AC9 +0xE3E2 0x5ACC +0xE3E3 0x5ABE +0xE3E4 0x5ABD +0xE3E5 0x5ABC +0xE3E6 0x5AB3 +0xE3E7 0x5AC2 +0xE3E8 0x5AB2 +0xE3E9 0x5D69 +0xE3EA 0x5D6F +0xE3EB 0x5E4C +0xE3EC 0x5E79 +0xE3ED 0x5EC9 +0xE3EE 0x5EC8 +0xE3EF 0x5F12 +0xE3F0 0x5F59 +0xE3F1 0x5FAC +0xE3F2 0x5FAE +0xE3F3 0x611A +0xE3F4 0x610F +0xE3F5 0x6148 +0xE3F6 0x611F +0xE3F7 0x60F3 +0xE3F8 0x611B +0xE3F9 0x60F9 +0xE3FA 0x6101 +0xE3FB 0x6108 +0xE3FC 0x614E +0xE3FD 0x614C +0xE3FE 0x6144 +0xE4A1 0x614D +0xE4A2 0x613E +0xE4A3 0x6134 +0xE4A4 0x6127 +0xE4A5 0x610D +0xE4A6 0x6106 +0xE4A7 0x6137 +0xE4A8 0x6221 +0xE4A9 0x6222 +0xE4AA 0x6413 +0xE4AB 0x643E +0xE4AC 0x641E +0xE4AD 0x642A +0xE4AE 0x642D +0xE4AF 0x643D +0xE4B0 0x642C +0xE4B1 0x640F +0xE4B2 0x641C +0xE4B3 0x6414 +0xE4B4 0x640D +0xE4B5 0x6436 +0xE4B6 0x6416 +0xE4B7 0x6417 +0xE4B8 0x6406 +0xE4B9 0x656C +0xE4BA 0x659F +0xE4BB 0x65B0 +0xE4BC 0x6697 +0xE4BD 0x6689 +0xE4BE 0x6687 +0xE4BF 0x6688 +0xE4C0 0x6696 +0xE4C1 0x6684 +0xE4C2 0x6698 +0xE4C3 0x668D +0xE4C4 0x6703 +0xE4C5 0x6994 +0xE4C6 0x696D +0xE4C7 0x695A +0xE4C8 0x6977 +0xE4C9 0x6960 +0xE4CA 0x6954 +0xE4CB 0x6975 +0xE4CC 0x6930 +0xE4CD 0x6982 +0xE4CE 0x694A +0xE4CF 0x6968 +0xE4D0 0x696B +0xE4D1 0x695E +0xE4D2 0x6953 +0xE4D3 0x6979 +0xE4D4 0x6986 +0xE4D5 0x695D +0xE4D6 0x6963 +0xE4D7 0x695B +0xE4D8 0x6B47 +0xE4D9 0x6B72 +0xE4DA 0x6BC0 +0xE4DB 0x6BBF +0xE4DC 0x6BD3 +0xE4DD 0x6BFD +0xE4DE 0x6EA2 +0xE4DF 0x6EAF +0xE4E0 0x6ED3 +0xE4E1 0x6EB6 +0xE4E2 0x6EC2 +0xE4E3 0x6E90 +0xE4E4 0x6E9D +0xE4E5 0x6EC7 +0xE4E6 0x6EC5 +0xE4E7 0x6EA5 +0xE4E8 0x6E98 +0xE4E9 0x6EBC +0xE4EA 0x6EBA +0xE4EB 0x6EAB +0xE4EC 0x6ED1 +0xE4ED 0x6E96 +0xE4EE 0x6E9C +0xE4EF 0x6EC4 +0xE4F0 0x6ED4 +0xE4F1 0x6EAA +0xE4F2 0x6EA7 +0xE4F3 0x6EB4 +0xE4F4 0x714E +0xE4F5 0x7159 +0xE4F6 0x7169 +0xE4F7 0x7164 +0xE4F8 0x7149 +0xE4F9 0x7167 +0xE4FA 0x715C +0xE4FB 0x716C +0xE4FC 0x7166 +0xE4FD 0x714C +0xE4FE 0x7165 +0xE5A1 0x715E +0xE5A2 0x7146 +0xE5A3 0x7168 +0xE5A4 0x7156 +0xE5A5 0x723A +0xE5A6 0x7252 +0xE5A7 0x7337 +0xE5A8 0x7345 +0xE5A9 0x733F +0xE5AA 0x733E +0xE5AB 0x746F +0xE5AC 0x745A +0xE5AD 0x7455 +0xE5AE 0x745F +0xE5AF 0x745E +0xE5B0 0x7441 +0xE5B1 0x743F +0xE5B2 0x7459 +0xE5B3 0x745B +0xE5B4 0x745C +0xE5B5 0x7576 +0xE5B6 0x7578 +0xE5B7 0x7600 +0xE5B8 0x75F0 +0xE5B9 0x7601 +0xE5BA 0x75F2 +0xE5BB 0x75F1 +0xE5BC 0x75FA +0xE5BD 0x75FF +0xE5BE 0x75F4 +0xE5BF 0x75F3 +0xE5C0 0x76DE +0xE5C1 0x76DF +0xE5C2 0x775B +0xE5C3 0x776B +0xE5C4 0x7766 +0xE5C5 0x775E +0xE5C6 0x7763 +0xE5C7 0x7779 +0xE5C8 0x776A +0xE5C9 0x776C +0xE5CA 0x775C +0xE5CB 0x7765 +0xE5CC 0x7768 +0xE5CD 0x7762 +0xE5CE 0x77EE +0xE5CF 0x788E +0xE5D0 0x78B0 +0xE5D1 0x7897 +0xE5D2 0x7898 +0xE5D3 0x788C +0xE5D4 0x7889 +0xE5D5 0x787C +0xE5D6 0x7891 +0xE5D7 0x7893 +0xE5D8 0x787F +0xE5D9 0x797A +0xE5DA 0x797F +0xE5DB 0x7981 +0xE5DC 0x842C +0xE5DD 0x79BD +0xE5DE 0x7A1C +0xE5DF 0x7A1A +0xE5E0 0x7A20 +0xE5E1 0x7A14 +0xE5E2 0x7A1F +0xE5E3 0x7A1E +0xE5E4 0x7A9F +0xE5E5 0x7AA0 +0xE5E6 0x7B77 +0xE5E7 0x7BC0 +0xE5E8 0x7B60 +0xE5E9 0x7B6E +0xE5EA 0x7B67 +0xE5EB 0x7CB1 +0xE5EC 0x7CB3 +0xE5ED 0x7CB5 +0xE5EE 0x7D93 +0xE5EF 0x7D79 +0xE5F0 0x7D91 +0xE5F1 0x7D81 +0xE5F2 0x7D8F +0xE5F3 0x7D5B +0xE5F4 0x7F6E +0xE5F5 0x7F69 +0xE5F6 0x7F6A +0xE5F7 0x7F72 +0xE5F8 0x7FA9 +0xE5F9 0x7FA8 +0xE5FA 0x7FA4 +0xE5FB 0x8056 +0xE5FC 0x8058 +0xE5FD 0x8086 +0xE5FE 0x8084 +0xE6A1 0x8171 +0xE6A2 0x8170 +0xE6A3 0x8178 +0xE6A4 0x8165 +0xE6A5 0x816E +0xE6A6 0x8173 +0xE6A7 0x816B +0xE6A8 0x8179 +0xE6A9 0x817A +0xE6AA 0x8166 +0xE6AB 0x8205 +0xE6AC 0x8247 +0xE6AD 0x8482 +0xE6AE 0x8477 +0xE6AF 0x843D +0xE6B0 0x8431 +0xE6B1 0x8475 +0xE6B2 0x8466 +0xE6B3 0x846B +0xE6B4 0x8449 +0xE6B5 0x846C +0xE6B6 0x845B +0xE6B7 0x843C +0xE6B8 0x8435 +0xE6B9 0x8461 +0xE6BA 0x8463 +0xE6BB 0x8469 +0xE6BC 0x846D +0xE6BD 0x8446 +0xE6BE 0x865E +0xE6BF 0x865C +0xE6C0 0x865F +0xE6C1 0x86F9 +0xE6C2 0x8713 +0xE6C3 0x8708 +0xE6C4 0x8707 +0xE6C5 0x8700 +0xE6C6 0x86FE +0xE6C7 0x86FB +0xE6C8 0x8702 +0xE6C9 0x8703 +0xE6CA 0x8706 +0xE6CB 0x870A +0xE6CC 0x8859 +0xE6CD 0x88DF +0xE6CE 0x88D4 +0xE6CF 0x88D9 +0xE6D0 0x88DC +0xE6D1 0x88D8 +0xE6D2 0x88DD +0xE6D3 0x88E1 +0xE6D4 0x88CA +0xE6D5 0x88D5 +0xE6D6 0x88D2 +0xE6D7 0x899C +0xE6D8 0x89E3 +0xE6D9 0x8A6B +0xE6DA 0x8A72 +0xE6DB 0x8A73 +0xE6DC 0x8A66 +0xE6DD 0x8A69 +0xE6DE 0x8A70 +0xE6DF 0x8A87 +0xE6E0 0x8A7C +0xE6E1 0x8A63 +0xE6E2 0x8AA0 +0xE6E3 0x8A71 +0xE6E4 0x8A85 +0xE6E5 0x8A6D +0xE6E6 0x8A62 +0xE6E7 0x8A6E +0xE6E8 0x8A6C +0xE6E9 0x8A79 +0xE6EA 0x8A7B +0xE6EB 0x8A3E +0xE6EC 0x8A68 +0xE6ED 0x8C62 +0xE6EE 0x8C8A +0xE6EF 0x8C89 +0xE6F0 0x8CCA +0xE6F1 0x8CC7 +0xE6F2 0x8CC8 +0xE6F3 0x8CC4 +0xE6F4 0x8CB2 +0xE6F5 0x8CC3 +0xE6F6 0x8CC2 +0xE6F7 0x8CC5 +0xE6F8 0x8DE1 +0xE6F9 0x8DDF +0xE6FA 0x8DE8 +0xE6FB 0x8DEF +0xE6FC 0x8DF3 +0xE6FD 0x8DFA +0xE6FE 0x8DEA +0xE7A1 0x8DE4 +0xE7A2 0x8DE6 +0xE7A3 0x8EB2 +0xE7A4 0x8F03 +0xE7A5 0x8F09 +0xE7A6 0x8EFE +0xE7A7 0x8F0A +0xE7A8 0x8F9F +0xE7A9 0x8FB2 +0xE7AA 0x904B +0xE7AB 0x904A +0xE7AC 0x9053 +0xE7AD 0x9042 +0xE7AE 0x9054 +0xE7AF 0x903C +0xE7B0 0x9055 +0xE7B1 0x9050 +0xE7B2 0x9047 +0xE7B3 0x904F +0xE7B4 0x904E +0xE7B5 0x904D +0xE7B6 0x9051 +0xE7B7 0x903E +0xE7B8 0x9041 +0xE7B9 0x9112 +0xE7BA 0x9117 +0xE7BB 0x916C +0xE7BC 0x916A +0xE7BD 0x9169 +0xE7BE 0x91C9 +0xE7BF 0x9237 +0xE7C0 0x9257 +0xE7C1 0x9238 +0xE7C2 0x923D +0xE7C3 0x9240 +0xE7C4 0x923E +0xE7C5 0x925B +0xE7C6 0x924B +0xE7C7 0x9264 +0xE7C8 0x9251 +0xE7C9 0x9234 +0xE7CA 0x9249 +0xE7CB 0x924D +0xE7CC 0x9245 +0xE7CD 0x9239 +0xE7CE 0x923F +0xE7CF 0x925A +0xE7D0 0x9598 +0xE7D1 0x9698 +0xE7D2 0x9694 +0xE7D3 0x9695 +0xE7D4 0x96CD +0xE7D5 0x96CB +0xE7D6 0x96C9 +0xE7D7 0x96CA +0xE7D8 0x96F7 +0xE7D9 0x96FB +0xE7DA 0x96F9 +0xE7DB 0x96F6 +0xE7DC 0x9756 +0xE7DD 0x9774 +0xE7DE 0x9776 +0xE7DF 0x9810 +0xE7E0 0x9811 +0xE7E1 0x9813 +0xE7E2 0x980A +0xE7E3 0x9812 +0xE7E4 0x980C +0xE7E5 0x98FC +0xE7E6 0x98F4 +0xE7E7 0x98FD +0xE7E8 0x98FE +0xE7E9 0x99B3 +0xE7EA 0x99B1 +0xE7EB 0x99B4 +0xE7EC 0x9AE1 +0xE7ED 0x9CE9 +0xE7EE 0x9E82 +0xE7EF 0x9F0E +0xE7F0 0x9F13 +0xE7F1 0x9F20 +0xE7F2 0x50E7 +0xE7F3 0x50EE +0xE7F4 0x50E5 +0xE7F5 0x50D6 +0xE7F6 0x50ED +0xE7F7 0x50DA +0xE7F8 0x50D5 +0xE7F9 0x50CF +0xE7FA 0x50D1 +0xE7FB 0x50F1 +0xE7FC 0x50CE +0xE7FD 0x50E9 +0xE7FE 0x5162 +0xE8A1 0x51F3 +0xE8A2 0x5283 +0xE8A3 0x5282 +0xE8A4 0x5331 +0xE8A5 0x53AD +0xE8A6 0x55FE +0xE8A7 0x5600 +0xE8A8 0x561B +0xE8A9 0x5617 +0xE8AA 0x55FD +0xE8AB 0x5614 +0xE8AC 0x5606 +0xE8AD 0x5609 +0xE8AE 0x560D +0xE8AF 0x560E +0xE8B0 0x55F7 +0xE8B1 0x5616 +0xE8B2 0x561F +0xE8B3 0x5608 +0xE8B4 0x5610 +0xE8B5 0x55F6 +0xE8B6 0x5718 +0xE8B7 0x5716 +0xE8B8 0x5875 +0xE8B9 0x587E +0xE8BA 0x5883 +0xE8BB 0x5893 +0xE8BC 0x588A +0xE8BD 0x5879 +0xE8BE 0x5885 +0xE8BF 0x587D +0xE8C0 0x58FD +0xE8C1 0x5925 +0xE8C2 0x5922 +0xE8C3 0x5924 +0xE8C4 0x596A +0xE8C5 0x5969 +0xE8C6 0x5AE1 +0xE8C7 0x5AE6 +0xE8C8 0x5AE9 +0xE8C9 0x5AD7 +0xE8CA 0x5AD6 +0xE8CB 0x5AD8 +0xE8CC 0x5AE3 +0xE8CD 0x5B75 +0xE8CE 0x5BDE +0xE8CF 0x5BE7 +0xE8D0 0x5BE1 +0xE8D1 0x5BE5 +0xE8D2 0x5BE6 +0xE8D3 0x5BE8 +0xE8D4 0x5BE2 +0xE8D5 0x5BE4 +0xE8D6 0x5BDF +0xE8D7 0x5C0D +0xE8D8 0x5C62 +0xE8D9 0x5D84 +0xE8DA 0x5D87 +0xE8DB 0x5E5B +0xE8DC 0x5E63 +0xE8DD 0x5E55 +0xE8DE 0x5E57 +0xE8DF 0x5E54 +0xE8E0 0x5ED3 +0xE8E1 0x5ED6 +0xE8E2 0x5F0A +0xE8E3 0x5F46 +0xE8E4 0x5F70 +0xE8E5 0x5FB9 +0xE8E6 0x6147 +0xE8E7 0x613F +0xE8E8 0x614B +0xE8E9 0x6177 +0xE8EA 0x6162 +0xE8EB 0x6163 +0xE8EC 0x615F +0xE8ED 0x615A +0xE8EE 0x6158 +0xE8EF 0x6175 +0xE8F0 0x622A +0xE8F1 0x6487 +0xE8F2 0x6458 +0xE8F3 0x6454 +0xE8F4 0x64A4 +0xE8F5 0x6478 +0xE8F6 0x645F +0xE8F7 0x647A +0xE8F8 0x6451 +0xE8F9 0x6467 +0xE8FA 0x6434 +0xE8FB 0x646D +0xE8FC 0x647B +0xE8FD 0x6572 +0xE8FE 0x65A1 +0xE9A1 0x65D7 +0xE9A2 0x65D6 +0xE9A3 0x66A2 +0xE9A4 0x66A8 +0xE9A5 0x669D +0xE9A6 0x699C +0xE9A7 0x69A8 +0xE9A8 0x6995 +0xE9A9 0x69C1 +0xE9AA 0x69AE +0xE9AB 0x69D3 +0xE9AC 0x69CB +0xE9AD 0x699B +0xE9AE 0x69B7 +0xE9AF 0x69BB +0xE9B0 0x69AB +0xE9B1 0x69B4 +0xE9B2 0x69D0 +0xE9B3 0x69CD +0xE9B4 0x69AD +0xE9B5 0x69CC +0xE9B6 0x69A6 +0xE9B7 0x69C3 +0xE9B8 0x69A3 +0xE9B9 0x6B49 +0xE9BA 0x6B4C +0xE9BB 0x6C33 +0xE9BC 0x6F33 +0xE9BD 0x6F14 +0xE9BE 0x6EFE +0xE9BF 0x6F13 +0xE9C0 0x6EF4 +0xE9C1 0x6F29 +0xE9C2 0x6F3E +0xE9C3 0x6F20 +0xE9C4 0x6F2C +0xE9C5 0x6F0F +0xE9C6 0x6F02 +0xE9C7 0x6F22 +0xE9C8 0x6EFF +0xE9C9 0x6EEF +0xE9CA 0x6F06 +0xE9CB 0x6F31 +0xE9CC 0x6F38 +0xE9CD 0x6F32 +0xE9CE 0x6F23 +0xE9CF 0x6F15 +0xE9D0 0x6F2B +0xE9D1 0x6F2F +0xE9D2 0x6F88 +0xE9D3 0x6F2A +0xE9D4 0x6EEC +0xE9D5 0x6F01 +0xE9D6 0x6EF2 +0xE9D7 0x6ECC +0xE9D8 0x6EF7 +0xE9D9 0x7194 +0xE9DA 0x7199 +0xE9DB 0x717D +0xE9DC 0x718A +0xE9DD 0x7184 +0xE9DE 0x7192 +0xE9DF 0x723E +0xE9E0 0x7292 +0xE9E1 0x7296 +0xE9E2 0x7344 +0xE9E3 0x7350 +0xE9E4 0x7464 +0xE9E5 0x7463 +0xE9E6 0x746A +0xE9E7 0x7470 +0xE9E8 0x746D +0xE9E9 0x7504 +0xE9EA 0x7591 +0xE9EB 0x7627 +0xE9EC 0x760D +0xE9ED 0x760B +0xE9EE 0x7609 +0xE9EF 0x7613 +0xE9F0 0x76E1 +0xE9F1 0x76E3 +0xE9F2 0x7784 +0xE9F3 0x777D +0xE9F4 0x777F +0xE9F5 0x7761 +0xE9F6 0x78C1 +0xE9F7 0x789F +0xE9F8 0x78A7 +0xE9F9 0x78B3 +0xE9FA 0x78A9 +0xE9FB 0x78A3 +0xE9FC 0x798E +0xE9FD 0x798F +0xE9FE 0x798D +0xEAA1 0x7A2E +0xEAA2 0x7A31 +0xEAA3 0x7AAA +0xEAA4 0x7AA9 +0xEAA5 0x7AED +0xEAA6 0x7AEF +0xEAA7 0x7BA1 +0xEAA8 0x7B95 +0xEAA9 0x7B8B +0xEAAA 0x7B75 +0xEAAB 0x7B97 +0xEAAC 0x7B9D +0xEAAD 0x7B94 +0xEAAE 0x7B8F +0xEAAF 0x7BB8 +0xEAB0 0x7B87 +0xEAB1 0x7B84 +0xEAB2 0x7CB9 +0xEAB3 0x7CBD +0xEAB4 0x7CBE +0xEAB5 0x7DBB +0xEAB6 0x7DB0 +0xEAB7 0x7D9C +0xEAB8 0x7DBD +0xEAB9 0x7DBE +0xEABA 0x7DA0 +0xEABB 0x7DCA +0xEABC 0x7DB4 +0xEABD 0x7DB2 +0xEABE 0x7DB1 +0xEABF 0x7DBA +0xEAC0 0x7DA2 +0xEAC1 0x7DBF +0xEAC2 0x7DB5 +0xEAC3 0x7DB8 +0xEAC4 0x7DAD +0xEAC5 0x7DD2 +0xEAC6 0x7DC7 +0xEAC7 0x7DAC +0xEAC8 0x7F70 +0xEAC9 0x7FE0 +0xEACA 0x7FE1 +0xEACB 0x7FDF +0xEACC 0x805E +0xEACD 0x805A +0xEACE 0x8087 +0xEACF 0x8150 +0xEAD0 0x8180 +0xEAD1 0x818F +0xEAD2 0x8188 +0xEAD3 0x818A +0xEAD4 0x817F +0xEAD5 0x8182 +0xEAD6 0x81E7 +0xEAD7 0x81FA +0xEAD8 0x8207 +0xEAD9 0x8214 +0xEADA 0x821E +0xEADB 0x824B +0xEADC 0x84C9 +0xEADD 0x84BF +0xEADE 0x84C6 +0xEADF 0x84C4 +0xEAE0 0x8499 +0xEAE1 0x849E +0xEAE2 0x84B2 +0xEAE3 0x849C +0xEAE4 0x84CB +0xEAE5 0x84B8 +0xEAE6 0x84C0 +0xEAE7 0x84D3 +0xEAE8 0x8490 +0xEAE9 0x84BC +0xEAEA 0x84D1 +0xEAEB 0x84CA +0xEAEC 0x873F +0xEAED 0x871C +0xEAEE 0x873B +0xEAEF 0x8722 +0xEAF0 0x8725 +0xEAF1 0x8734 +0xEAF2 0x8718 +0xEAF3 0x8755 +0xEAF4 0x8737 +0xEAF5 0x8729 +0xEAF6 0x88F3 +0xEAF7 0x8902 +0xEAF8 0x88F4 +0xEAF9 0x88F9 +0xEAFA 0x88F8 +0xEAFB 0x88FD +0xEAFC 0x88E8 +0xEAFD 0x891A +0xEAFE 0x88EF +0xEBA1 0x8AA6 +0xEBA2 0x8A8C +0xEBA3 0x8A9E +0xEBA4 0x8AA3 +0xEBA5 0x8A8D +0xEBA6 0x8AA1 +0xEBA7 0x8A93 +0xEBA8 0x8AA4 +0xEBA9 0x8AAA +0xEBAA 0x8AA5 +0xEBAB 0x8AA8 +0xEBAC 0x8A98 +0xEBAD 0x8A91 +0xEBAE 0x8A9A +0xEBAF 0x8AA7 +0xEBB0 0x8C6A +0xEBB1 0x8C8D +0xEBB2 0x8C8C +0xEBB3 0x8CD3 +0xEBB4 0x8CD1 +0xEBB5 0x8CD2 +0xEBB6 0x8D6B +0xEBB7 0x8D99 +0xEBB8 0x8D95 +0xEBB9 0x8DFC +0xEBBA 0x8F14 +0xEBBB 0x8F12 +0xEBBC 0x8F15 +0xEBBD 0x8F13 +0xEBBE 0x8FA3 +0xEBBF 0x9060 +0xEBC0 0x9058 +0xEBC1 0x905C +0xEBC2 0x9063 +0xEBC3 0x9059 +0xEBC4 0x905E +0xEBC5 0x9062 +0xEBC6 0x905D +0xEBC7 0x905B +0xEBC8 0x9119 +0xEBC9 0x9118 +0xEBCA 0x911E +0xEBCB 0x9175 +0xEBCC 0x9178 +0xEBCD 0x9177 +0xEBCE 0x9174 +0xEBCF 0x9278 +0xEBD0 0x92AC +0xEBD1 0x9280 +0xEBD2 0x9285 +0xEBD3 0x9298 +0xEBD4 0x9296 +0xEBD5 0x927B +0xEBD6 0x9293 +0xEBD7 0x929C +0xEBD8 0x92A8 +0xEBD9 0x927C +0xEBDA 0x9291 +0xEBDB 0x95A1 +0xEBDC 0x95A8 +0xEBDD 0x95A9 +0xEBDE 0x95A3 +0xEBDF 0x95A5 +0xEBE0 0x95A4 +0xEBE1 0x9699 +0xEBE2 0x969C +0xEBE3 0x969B +0xEBE4 0x96CC +0xEBE5 0x96D2 +0xEBE6 0x9700 +0xEBE7 0x977C +0xEBE8 0x9785 +0xEBE9 0x97F6 +0xEBEA 0x9817 +0xEBEB 0x9818 +0xEBEC 0x98AF +0xEBED 0x98B1 +0xEBEE 0x9903 +0xEBEF 0x9905 +0xEBF0 0x990C +0xEBF1 0x9909 +0xEBF2 0x99C1 +0xEBF3 0x9AAF +0xEBF4 0x9AB0 +0xEBF5 0x9AE6 +0xEBF6 0x9B41 +0xEBF7 0x9B42 +0xEBF8 0x9CF4 +0xEBF9 0x9CF6 +0xEBFA 0x9CF3 +0xEBFB 0x9EBC +0xEBFC 0x9F3B +0xEBFD 0x9F4A +0xEBFE 0x5104 +0xECA1 0x5100 +0xECA2 0x50FB +0xECA3 0x50F5 +0xECA4 0x50F9 +0xECA5 0x5102 +0xECA6 0x5108 +0xECA7 0x5109 +0xECA8 0x5105 +0xECA9 0x51DC +0xECAA 0x5287 +0xECAB 0x5288 +0xECAC 0x5289 +0xECAD 0x528D +0xECAE 0x528A +0xECAF 0x52F0 +0xECB0 0x53B2 +0xECB1 0x562E +0xECB2 0x563B +0xECB3 0x5639 +0xECB4 0x5632 +0xECB5 0x563F +0xECB6 0x5634 +0xECB7 0x5629 +0xECB8 0x5653 +0xECB9 0x564E +0xECBA 0x5657 +0xECBB 0x5674 +0xECBC 0x5636 +0xECBD 0x562F +0xECBE 0x5630 +0xECBF 0x5880 +0xECC0 0x589F +0xECC1 0x589E +0xECC2 0x58B3 +0xECC3 0x589C +0xECC4 0x58AE +0xECC5 0x58A9 +0xECC6 0x58A6 +0xECC7 0x596D +0xECC8 0x5B09 +0xECC9 0x5AFB +0xECCA 0x5B0B +0xECCB 0x5AF5 +0xECCC 0x5B0C +0xECCD 0x5B08 +0xECCE 0x5BEE +0xECCF 0x5BEC +0xECD0 0x5BE9 +0xECD1 0x5BEB +0xECD2 0x5C64 +0xECD3 0x5C65 +0xECD4 0x5D9D +0xECD5 0x5D94 +0xECD6 0x5E62 +0xECD7 0x5E5F +0xECD8 0x5E61 +0xECD9 0x5EE2 +0xECDA 0x5EDA +0xECDB 0x5EDF +0xECDC 0x5EDD +0xECDD 0x5EE3 +0xECDE 0x5EE0 +0xECDF 0x5F48 +0xECE0 0x5F71 +0xECE1 0x5FB7 +0xECE2 0x5FB5 +0xECE3 0x6176 +0xECE4 0x6167 +0xECE5 0x616E +0xECE6 0x615D +0xECE7 0x6155 +0xECE8 0x6182 +0xECE9 0x617C +0xECEA 0x6170 +0xECEB 0x616B +0xECEC 0x617E +0xECED 0x61A7 +0xECEE 0x6190 +0xECEF 0x61AB +0xECF0 0x618E +0xECF1 0x61AC +0xECF2 0x619A +0xECF3 0x61A4 +0xECF4 0x6194 +0xECF5 0x61AE +0xECF6 0x622E +0xECF7 0x6469 +0xECF8 0x646F +0xECF9 0x6479 +0xECFA 0x649E +0xECFB 0x64B2 +0xECFC 0x6488 +0xECFD 0x6490 +0xECFE 0x64B0 +0xEDA1 0x64A5 +0xEDA2 0x6493 +0xEDA3 0x6495 +0xEDA4 0x64A9 +0xEDA5 0x6492 +0xEDA6 0x64AE +0xEDA7 0x64AD +0xEDA8 0x64AB +0xEDA9 0x649A +0xEDAA 0x64AC +0xEDAB 0x6499 +0xEDAC 0x64A2 +0xEDAD 0x64B3 +0xEDAE 0x6575 +0xEDAF 0x6577 +0xEDB0 0x6578 +0xEDB1 0x66AE +0xEDB2 0x66AB +0xEDB3 0x66B4 +0xEDB4 0x66B1 +0xEDB5 0x6A23 +0xEDB6 0x6A1F +0xEDB7 0x69E8 +0xEDB8 0x6A01 +0xEDB9 0x6A1E +0xEDBA 0x6A19 +0xEDBB 0x69FD +0xEDBC 0x6A21 +0xEDBD 0x6A13 +0xEDBE 0x6A0A +0xEDBF 0x69F3 +0xEDC0 0x6A02 +0xEDC1 0x6A05 +0xEDC2 0x69ED +0xEDC3 0x6A11 +0xEDC4 0x6B50 +0xEDC5 0x6B4E +0xEDC6 0x6BA4 +0xEDC7 0x6BC5 +0xEDC8 0x6BC6 +0xEDC9 0x6F3F +0xEDCA 0x6F7C +0xEDCB 0x6F84 +0xEDCC 0x6F51 +0xEDCD 0x6F66 +0xEDCE 0x6F54 +0xEDCF 0x6F86 +0xEDD0 0x6F6D +0xEDD1 0x6F5B +0xEDD2 0x6F78 +0xEDD3 0x6F6E +0xEDD4 0x6F8E +0xEDD5 0x6F7A +0xEDD6 0x6F70 +0xEDD7 0x6F64 +0xEDD8 0x6F97 +0xEDD9 0x6F58 +0xEDDA 0x6ED5 +0xEDDB 0x6F6F +0xEDDC 0x6F60 +0xEDDD 0x6F5F +0xEDDE 0x719F +0xEDDF 0x71AC +0xEDE0 0x71B1 +0xEDE1 0x71A8 +0xEDE2 0x7256 +0xEDE3 0x729B +0xEDE4 0x734E +0xEDE5 0x7357 +0xEDE6 0x7469 +0xEDE7 0x748B +0xEDE8 0x7483 +0xEDE9 0x747E +0xEDEA 0x7480 +0xEDEB 0x757F +0xEDEC 0x7620 +0xEDED 0x7629 +0xEDEE 0x761F +0xEDEF 0x7624 +0xEDF0 0x7626 +0xEDF1 0x7621 +0xEDF2 0x7622 +0xEDF3 0x769A +0xEDF4 0x76BA +0xEDF5 0x76E4 +0xEDF6 0x778E +0xEDF7 0x7787 +0xEDF8 0x778C +0xEDF9 0x7791 +0xEDFA 0x778B +0xEDFB 0x78CB +0xEDFC 0x78C5 +0xEDFD 0x78BA +0xEDFE 0x78CA +0xEEA1 0x78BE +0xEEA2 0x78D5 +0xEEA3 0x78BC +0xEEA4 0x78D0 +0xEEA5 0x7A3F +0xEEA6 0x7A3C +0xEEA7 0x7A40 +0xEEA8 0x7A3D +0xEEA9 0x7A37 +0xEEAA 0x7A3B +0xEEAB 0x7AAF +0xEEAC 0x7AAE +0xEEAD 0x7BAD +0xEEAE 0x7BB1 +0xEEAF 0x7BC4 +0xEEB0 0x7BB4 +0xEEB1 0x7BC6 +0xEEB2 0x7BC7 +0xEEB3 0x7BC1 +0xEEB4 0x7BA0 +0xEEB5 0x7BCC +0xEEB6 0x7CCA +0xEEB7 0x7DE0 +0xEEB8 0x7DF4 +0xEEB9 0x7DEF +0xEEBA 0x7DFB +0xEEBB 0x7DD8 +0xEEBC 0x7DEC +0xEEBD 0x7DDD +0xEEBE 0x7DE8 +0xEEBF 0x7DE3 +0xEEC0 0x7DDA +0xEEC1 0x7DDE +0xEEC2 0x7DE9 +0xEEC3 0x7D9E +0xEEC4 0x7DD9 +0xEEC5 0x7DF2 +0xEEC6 0x7DF9 +0xEEC7 0x7F75 +0xEEC8 0x7F77 +0xEEC9 0x7FAF +0xEECA 0x7FE9 +0xEECB 0x8026 +0xEECC 0x819B +0xEECD 0x819C +0xEECE 0x819D +0xEECF 0x81A0 +0xEED0 0x819A +0xEED1 0x8198 +0xEED2 0x8517 +0xEED3 0x853D +0xEED4 0x851A +0xEED5 0x84EE +0xEED6 0x852C +0xEED7 0x852D +0xEED8 0x8513 +0xEED9 0x8511 +0xEEDA 0x8523 +0xEEDB 0x8521 +0xEEDC 0x8514 +0xEEDD 0x84EC +0xEEDE 0x8525 +0xEEDF 0x84FF +0xEEE0 0x8506 +0xEEE1 0x8782 +0xEEE2 0x8774 +0xEEE3 0x8776 +0xEEE4 0x8760 +0xEEE5 0x8766 +0xEEE6 0x8778 +0xEEE7 0x8768 +0xEEE8 0x8759 +0xEEE9 0x8757 +0xEEEA 0x874C +0xEEEB 0x8753 +0xEEEC 0x885B +0xEEED 0x885D +0xEEEE 0x8910 +0xEEEF 0x8907 +0xEEF0 0x8912 +0xEEF1 0x8913 +0xEEF2 0x8915 +0xEEF3 0x890A +0xEEF4 0x8ABC +0xEEF5 0x8AD2 +0xEEF6 0x8AC7 +0xEEF7 0x8AC4 +0xEEF8 0x8A95 +0xEEF9 0x8ACB +0xEEFA 0x8AF8 +0xEEFB 0x8AB2 +0xEEFC 0x8AC9 +0xEEFD 0x8AC2 +0xEEFE 0x8ABF +0xEFA1 0x8AB0 +0xEFA2 0x8AD6 +0xEFA3 0x8ACD +0xEFA4 0x8AB6 +0xEFA5 0x8AB9 +0xEFA6 0x8ADB +0xEFA7 0x8C4C +0xEFA8 0x8C4E +0xEFA9 0x8C6C +0xEFAA 0x8CE0 +0xEFAB 0x8CDE +0xEFAC 0x8CE6 +0xEFAD 0x8CE4 +0xEFAE 0x8CEC +0xEFAF 0x8CED +0xEFB0 0x8CE2 +0xEFB1 0x8CE3 +0xEFB2 0x8CDC +0xEFB3 0x8CEA +0xEFB4 0x8CE1 +0xEFB5 0x8D6D +0xEFB6 0x8D9F +0xEFB7 0x8DA3 +0xEFB8 0x8E2B +0xEFB9 0x8E10 +0xEFBA 0x8E1D +0xEFBB 0x8E22 +0xEFBC 0x8E0F +0xEFBD 0x8E29 +0xEFBE 0x8E1F +0xEFBF 0x8E21 +0xEFC0 0x8E1E +0xEFC1 0x8EBA +0xEFC2 0x8F1D +0xEFC3 0x8F1B +0xEFC4 0x8F1F +0xEFC5 0x8F29 +0xEFC6 0x8F26 +0xEFC7 0x8F2A +0xEFC8 0x8F1C +0xEFC9 0x8F1E +0xEFCA 0x8F25 +0xEFCB 0x9069 +0xEFCC 0x906E +0xEFCD 0x9068 +0xEFCE 0x906D +0xEFCF 0x9077 +0xEFD0 0x9130 +0xEFD1 0x912D +0xEFD2 0x9127 +0xEFD3 0x9131 +0xEFD4 0x9187 +0xEFD5 0x9189 +0xEFD6 0x918B +0xEFD7 0x9183 +0xEFD8 0x92C5 +0xEFD9 0x92BB +0xEFDA 0x92B7 +0xEFDB 0x92EA +0xEFDC 0x92E4 +0xEFDD 0x92C1 +0xEFDE 0x92B3 +0xEFDF 0x92BC +0xEFE0 0x92D2 +0xEFE1 0x92C7 +0xEFE2 0x92F0 +0xEFE3 0x92B2 +0xEFE4 0x95AD +0xEFE5 0x95B1 +0xEFE6 0x9704 +0xEFE7 0x9706 +0xEFE8 0x9707 +0xEFE9 0x9709 +0xEFEA 0x9760 +0xEFEB 0x978D +0xEFEC 0x978B +0xEFED 0x978F +0xEFEE 0x9821 +0xEFEF 0x982B +0xEFF0 0x981C +0xEFF1 0x98B3 +0xEFF2 0x990A +0xEFF3 0x9913 +0xEFF4 0x9912 +0xEFF5 0x9918 +0xEFF6 0x99DD +0xEFF7 0x99D0 +0xEFF8 0x99DF +0xEFF9 0x99DB +0xEFFA 0x99D1 +0xEFFB 0x99D5 +0xEFFC 0x99D2 +0xEFFD 0x99D9 +0xEFFE 0x9AB7 +0xF0A1 0x9AEE +0xF0A2 0x9AEF +0xF0A3 0x9B27 +0xF0A4 0x9B45 +0xF0A5 0x9B44 +0xF0A6 0x9B77 +0xF0A7 0x9B6F +0xF0A8 0x9D06 +0xF0A9 0x9D09 +0xF0AA 0x9D03 +0xF0AB 0x9EA9 +0xF0AC 0x9EBE +0xF0AD 0x9ECE +0xF0AE 0x58A8 +0xF0AF 0x9F52 +0xF0B0 0x5112 +0xF0B1 0x5118 +0xF0B2 0x5114 +0xF0B3 0x5110 +0xF0B4 0x5115 +0xF0B5 0x5180 +0xF0B6 0x51AA +0xF0B7 0x51DD +0xF0B8 0x5291 +0xF0B9 0x5293 +0xF0BA 0x52F3 +0xF0BB 0x5659 +0xF0BC 0x566B +0xF0BD 0x5679 +0xF0BE 0x5669 +0xF0BF 0x5664 +0xF0C0 0x5678 +0xF0C1 0x566A +0xF0C2 0x5668 +0xF0C3 0x5665 +0xF0C4 0x5671 +0xF0C5 0x566F +0xF0C6 0x566C +0xF0C7 0x5662 +0xF0C8 0x5676 +0xF0C9 0x58C1 +0xF0CA 0x58BE +0xF0CB 0x58C7 +0xF0CC 0x58C5 +0xF0CD 0x596E +0xF0CE 0x5B1D +0xF0CF 0x5B34 +0xF0D0 0x5B78 +0xF0D1 0x5BF0 +0xF0D2 0x5C0E +0xF0D3 0x5F4A +0xF0D4 0x61B2 +0xF0D5 0x6191 +0xF0D6 0x61A9 +0xF0D7 0x618A +0xF0D8 0x61CD +0xF0D9 0x61B6 +0xF0DA 0x61BE +0xF0DB 0x61CA +0xF0DC 0x61C8 +0xF0DD 0x6230 +0xF0DE 0x64C5 +0xF0DF 0x64C1 +0xF0E0 0x64CB +0xF0E1 0x64BB +0xF0E2 0x64BC +0xF0E3 0x64DA +0xF0E4 0x64C4 +0xF0E5 0x64C7 +0xF0E6 0x64C2 +0xF0E7 0x64CD +0xF0E8 0x64BF +0xF0E9 0x64D2 +0xF0EA 0x64D4 +0xF0EB 0x64BE +0xF0EC 0x6574 +0xF0ED 0x66C6 +0xF0EE 0x66C9 +0xF0EF 0x66B9 +0xF0F0 0x66C4 +0xF0F1 0x66C7 +0xF0F2 0x66B8 +0xF0F3 0x6A3D +0xF0F4 0x6A38 +0xF0F5 0x6A3A +0xF0F6 0x6A59 +0xF0F7 0x6A6B +0xF0F8 0x6A58 +0xF0F9 0x6A39 +0xF0FA 0x6A44 +0xF0FB 0x6A62 +0xF0FC 0x6A61 +0xF0FD 0x6A4B +0xF0FE 0x6A47 +0xF1A1 0x6A35 +0xF1A2 0x6A5F +0xF1A3 0x6A48 +0xF1A4 0x6B59 +0xF1A5 0x6B77 +0xF1A6 0x6C05 +0xF1A7 0x6FC2 +0xF1A8 0x6FB1 +0xF1A9 0x6FA1 +0xF1AA 0x6FC3 +0xF1AB 0x6FA4 +0xF1AC 0x6FC1 +0xF1AD 0x6FA7 +0xF1AE 0x6FB3 +0xF1AF 0x6FC0 +0xF1B0 0x6FB9 +0xF1B1 0x6FB6 +0xF1B2 0x6FA6 +0xF1B3 0x6FA0 +0xF1B4 0x6FB4 +0xF1B5 0x71BE +0xF1B6 0x71C9 +0xF1B7 0x71D0 +0xF1B8 0x71D2 +0xF1B9 0x71C8 +0xF1BA 0x71D5 +0xF1BB 0x71B9 +0xF1BC 0x71CE +0xF1BD 0x71D9 +0xF1BE 0x71DC +0xF1BF 0x71C3 +0xF1C0 0x71C4 +0xF1C1 0x7368 +0xF1C2 0x749C +0xF1C3 0x74A3 +0xF1C4 0x7498 +0xF1C5 0x749F +0xF1C6 0x749E +0xF1C7 0x74E2 +0xF1C8 0x750C +0xF1C9 0x750D +0xF1CA 0x7634 +0xF1CB 0x7638 +0xF1CC 0x763A +0xF1CD 0x76E7 +0xF1CE 0x76E5 +0xF1CF 0x77A0 +0xF1D0 0x779E +0xF1D1 0x779F +0xF1D2 0x77A5 +0xF1D3 0x78E8 +0xF1D4 0x78DA +0xF1D5 0x78EC +0xF1D6 0x78E7 +0xF1D7 0x79A6 +0xF1D8 0x7A4D +0xF1D9 0x7A4E +0xF1DA 0x7A46 +0xF1DB 0x7A4C +0xF1DC 0x7A4B +0xF1DD 0x7ABA +0xF1DE 0x7BD9 +0xF1DF 0x7C11 +0xF1E0 0x7BC9 +0xF1E1 0x7BE4 +0xF1E2 0x7BDB +0xF1E3 0x7BE1 +0xF1E4 0x7BE9 +0xF1E5 0x7BE6 +0xF1E6 0x7CD5 +0xF1E7 0x7CD6 +0xF1E8 0x7E0A +0xF1E9 0x7E11 +0xF1EA 0x7E08 +0xF1EB 0x7E1B +0xF1EC 0x7E23 +0xF1ED 0x7E1E +0xF1EE 0x7E1D +0xF1EF 0x7E09 +0xF1F0 0x7E10 +0xF1F1 0x7F79 +0xF1F2 0x7FB2 +0xF1F3 0x7FF0 +0xF1F4 0x7FF1 +0xF1F5 0x7FEE +0xF1F6 0x8028 +0xF1F7 0x81B3 +0xF1F8 0x81A9 +0xF1F9 0x81A8 +0xF1FA 0x81FB +0xF1FB 0x8208 +0xF1FC 0x8258 +0xF1FD 0x8259 +0xF1FE 0x854A +0xF2A1 0x8559 +0xF2A2 0x8548 +0xF2A3 0x8568 +0xF2A4 0x8569 +0xF2A5 0x8543 +0xF2A6 0x8549 +0xF2A7 0x856D +0xF2A8 0x856A +0xF2A9 0x855E +0xF2AA 0x8783 +0xF2AB 0x879F +0xF2AC 0x879E +0xF2AD 0x87A2 +0xF2AE 0x878D +0xF2AF 0x8861 +0xF2B0 0x892A +0xF2B1 0x8932 +0xF2B2 0x8925 +0xF2B3 0x892B +0xF2B4 0x8921 +0xF2B5 0x89AA +0xF2B6 0x89A6 +0xF2B7 0x8AE6 +0xF2B8 0x8AFA +0xF2B9 0x8AEB +0xF2BA 0x8AF1 +0xF2BB 0x8B00 +0xF2BC 0x8ADC +0xF2BD 0x8AE7 +0xF2BE 0x8AEE +0xF2BF 0x8AFE +0xF2C0 0x8B01 +0xF2C1 0x8B02 +0xF2C2 0x8AF7 +0xF2C3 0x8AED +0xF2C4 0x8AF3 +0xF2C5 0x8AF6 +0xF2C6 0x8AFC +0xF2C7 0x8C6B +0xF2C8 0x8C6D +0xF2C9 0x8C93 +0xF2CA 0x8CF4 +0xF2CB 0x8E44 +0xF2CC 0x8E31 +0xF2CD 0x8E34 +0xF2CE 0x8E42 +0xF2CF 0x8E39 +0xF2D0 0x8E35 +0xF2D1 0x8F3B +0xF2D2 0x8F2F +0xF2D3 0x8F38 +0xF2D4 0x8F33 +0xF2D5 0x8FA8 +0xF2D6 0x8FA6 +0xF2D7 0x9075 +0xF2D8 0x9074 +0xF2D9 0x9078 +0xF2DA 0x9072 +0xF2DB 0x907C +0xF2DC 0x907A +0xF2DD 0x9134 +0xF2DE 0x9192 +0xF2DF 0x9320 +0xF2E0 0x9336 +0xF2E1 0x92F8 +0xF2E2 0x9333 +0xF2E3 0x932F +0xF2E4 0x9322 +0xF2E5 0x92FC +0xF2E6 0x932B +0xF2E7 0x9304 +0xF2E8 0x931A +0xF2E9 0x9310 +0xF2EA 0x9326 +0xF2EB 0x9321 +0xF2EC 0x9315 +0xF2ED 0x932E +0xF2EE 0x9319 +0xF2EF 0x95BB +0xF2F0 0x96A7 +0xF2F1 0x96A8 +0xF2F2 0x96AA +0xF2F3 0x96D5 +0xF2F4 0x970E +0xF2F5 0x9711 +0xF2F6 0x9716 +0xF2F7 0x970D +0xF2F8 0x9713 +0xF2F9 0x970F +0xF2FA 0x975B +0xF2FB 0x975C +0xF2FC 0x9766 +0xF2FD 0x9798 +0xF2FE 0x9830 +0xF3A1 0x9838 +0xF3A2 0x983B +0xF3A3 0x9837 +0xF3A4 0x982D +0xF3A5 0x9839 +0xF3A6 0x9824 +0xF3A7 0x9910 +0xF3A8 0x9928 +0xF3A9 0x991E +0xF3AA 0x991B +0xF3AB 0x9921 +0xF3AC 0x991A +0xF3AD 0x99ED +0xF3AE 0x99E2 +0xF3AF 0x99F1 +0xF3B0 0x9AB8 +0xF3B1 0x9ABC +0xF3B2 0x9AFB +0xF3B3 0x9AED +0xF3B4 0x9B28 +0xF3B5 0x9B91 +0xF3B6 0x9D15 +0xF3B7 0x9D23 +0xF3B8 0x9D26 +0xF3B9 0x9D28 +0xF3BA 0x9D12 +0xF3BB 0x9D1B +0xF3BC 0x9ED8 +0xF3BD 0x9ED4 +0xF3BE 0x9F8D +0xF3BF 0x9F9C +0xF3C0 0x512A +0xF3C1 0x511F +0xF3C2 0x5121 +0xF3C3 0x5132 +0xF3C4 0x52F5 +0xF3C5 0x568E +0xF3C6 0x5680 +0xF3C7 0x5690 +0xF3C8 0x5685 +0xF3C9 0x5687 +0xF3CA 0x568F +0xF3CB 0x58D5 +0xF3CC 0x58D3 +0xF3CD 0x58D1 +0xF3CE 0x58CE +0xF3CF 0x5B30 +0xF3D0 0x5B2A +0xF3D1 0x5B24 +0xF3D2 0x5B7A +0xF3D3 0x5C37 +0xF3D4 0x5C68 +0xF3D5 0x5DBC +0xF3D6 0x5DBA +0xF3D7 0x5DBD +0xF3D8 0x5DB8 +0xF3D9 0x5E6B +0xF3DA 0x5F4C +0xF3DB 0x5FBD +0xF3DC 0x61C9 +0xF3DD 0x61C2 +0xF3DE 0x61C7 +0xF3DF 0x61E6 +0xF3E0 0x61CB +0xF3E1 0x6232 +0xF3E2 0x6234 +0xF3E3 0x64CE +0xF3E4 0x64CA +0xF3E5 0x64D8 +0xF3E6 0x64E0 +0xF3E7 0x64F0 +0xF3E8 0x64E6 +0xF3E9 0x64EC +0xF3EA 0x64F1 +0xF3EB 0x64E2 +0xF3EC 0x64ED +0xF3ED 0x6582 +0xF3EE 0x6583 +0xF3EF 0x66D9 +0xF3F0 0x66D6 +0xF3F1 0x6A80 +0xF3F2 0x6A94 +0xF3F3 0x6A84 +0xF3F4 0x6AA2 +0xF3F5 0x6A9C +0xF3F6 0x6ADB +0xF3F7 0x6AA3 +0xF3F8 0x6A7E +0xF3F9 0x6A97 +0xF3FA 0x6A90 +0xF3FB 0x6AA0 +0xF3FC 0x6B5C +0xF3FD 0x6BAE +0xF3FE 0x6BDA +0xF4A1 0x6C08 +0xF4A2 0x6FD8 +0xF4A3 0x6FF1 +0xF4A4 0x6FDF +0xF4A5 0x6FE0 +0xF4A6 0x6FDB +0xF4A7 0x6FE4 +0xF4A8 0x6FEB +0xF4A9 0x6FEF +0xF4AA 0x6F80 +0xF4AB 0x6FEC +0xF4AC 0x6FE1 +0xF4AD 0x6FE9 +0xF4AE 0x6FD5 +0xF4AF 0x6FEE +0xF4B0 0x6FF0 +0xF4B1 0x71E7 +0xF4B2 0x71DF +0xF4B3 0x71EE +0xF4B4 0x71E6 +0xF4B5 0x71E5 +0xF4B6 0x71ED +0xF4B7 0x71EC +0xF4B8 0x71F4 +0xF4B9 0x71E0 +0xF4BA 0x7235 +0xF4BB 0x7246 +0xF4BC 0x7370 +0xF4BD 0x7372 +0xF4BE 0x74A9 +0xF4BF 0x74B0 +0xF4C0 0x74A6 +0xF4C1 0x74A8 +0xF4C2 0x7646 +0xF4C3 0x7642 +0xF4C4 0x764C +0xF4C5 0x76EA +0xF4C6 0x77B3 +0xF4C7 0x77AA +0xF4C8 0x77B0 +0xF4C9 0x77AC +0xF4CA 0x77A7 +0xF4CB 0x77AD +0xF4CC 0x77EF +0xF4CD 0x78F7 +0xF4CE 0x78FA +0xF4CF 0x78F4 +0xF4D0 0x78EF +0xF4D1 0x7901 +0xF4D2 0x79A7 +0xF4D3 0x79AA +0xF4D4 0x7A57 +0xF4D5 0x7ABF +0xF4D6 0x7C07 +0xF4D7 0x7C0D +0xF4D8 0x7BFE +0xF4D9 0x7BF7 +0xF4DA 0x7C0C +0xF4DB 0x7BE0 +0xF4DC 0x7CE0 +0xF4DD 0x7CDC +0xF4DE 0x7CDE +0xF4DF 0x7CE2 +0xF4E0 0x7CDF +0xF4E1 0x7CD9 +0xF4E2 0x7CDD +0xF4E3 0x7E2E +0xF4E4 0x7E3E +0xF4E5 0x7E46 +0xF4E6 0x7E37 +0xF4E7 0x7E32 +0xF4E8 0x7E43 +0xF4E9 0x7E2B +0xF4EA 0x7E3D +0xF4EB 0x7E31 +0xF4EC 0x7E45 +0xF4ED 0x7E41 +0xF4EE 0x7E34 +0xF4EF 0x7E39 +0xF4F0 0x7E48 +0xF4F1 0x7E35 +0xF4F2 0x7E3F +0xF4F3 0x7E2F +0xF4F4 0x7F44 +0xF4F5 0x7FF3 +0xF4F6 0x7FFC +0xF4F7 0x8071 +0xF4F8 0x8072 +0xF4F9 0x8070 +0xF4FA 0x806F +0xF4FB 0x8073 +0xF4FC 0x81C6 +0xF4FD 0x81C3 +0xF4FE 0x81BA +0xF5A1 0x81C2 +0xF5A2 0x81C0 +0xF5A3 0x81BF +0xF5A4 0x81BD +0xF5A5 0x81C9 +0xF5A6 0x81BE +0xF5A7 0x81E8 +0xF5A8 0x8209 +0xF5A9 0x8271 +0xF5AA 0x85AA +0xF5AB 0x8584 +0xF5AC 0x857E +0xF5AD 0x859C +0xF5AE 0x8591 +0xF5AF 0x8594 +0xF5B0 0x85AF +0xF5B1 0x859B +0xF5B2 0x8587 +0xF5B3 0x85A8 +0xF5B4 0x858A +0xF5B5 0x85A6 +0xF5B6 0x8667 +0xF5B7 0x87C0 +0xF5B8 0x87D1 +0xF5B9 0x87B3 +0xF5BA 0x87D2 +0xF5BB 0x87C6 +0xF5BC 0x87AB +0xF5BD 0x87BB +0xF5BE 0x87BA +0xF5BF 0x87C8 +0xF5C0 0x87CB +0xF5C1 0x893B +0xF5C2 0x8936 +0xF5C3 0x8944 +0xF5C4 0x8938 +0xF5C5 0x893D +0xF5C6 0x89AC +0xF5C7 0x8B0E +0xF5C8 0x8B17 +0xF5C9 0x8B19 +0xF5CA 0x8B1B +0xF5CB 0x8B0A +0xF5CC 0x8B20 +0xF5CD 0x8B1D +0xF5CE 0x8B04 +0xF5CF 0x8B10 +0xF5D0 0x8C41 +0xF5D1 0x8C3F +0xF5D2 0x8C73 +0xF5D3 0x8CFA +0xF5D4 0x8CFD +0xF5D5 0x8CFC +0xF5D6 0x8CF8 +0xF5D7 0x8CFB +0xF5D8 0x8DA8 +0xF5D9 0x8E49 +0xF5DA 0x8E4B +0xF5DB 0x8E48 +0xF5DC 0x8E4A +0xF5DD 0x8F44 +0xF5DE 0x8F3E +0xF5DF 0x8F42 +0xF5E0 0x8F45 +0xF5E1 0x8F3F +0xF5E2 0x907F +0xF5E3 0x907D +0xF5E4 0x9084 +0xF5E5 0x9081 +0xF5E6 0x9082 +0xF5E7 0x9080 +0xF5E8 0x9139 +0xF5E9 0x91A3 +0xF5EA 0x919E +0xF5EB 0x919C +0xF5EC 0x934D +0xF5ED 0x9382 +0xF5EE 0x9328 +0xF5EF 0x9375 +0xF5F0 0x934A +0xF5F1 0x9365 +0xF5F2 0x934B +0xF5F3 0x9318 +0xF5F4 0x937E +0xF5F5 0x936C +0xF5F6 0x935B +0xF5F7 0x9370 +0xF5F8 0x935A +0xF5F9 0x9354 +0xF5FA 0x95CA +0xF5FB 0x95CB +0xF5FC 0x95CC +0xF5FD 0x95C8 +0xF5FE 0x95C6 +0xF6A1 0x96B1 +0xF6A2 0x96B8 +0xF6A3 0x96D6 +0xF6A4 0x971C +0xF6A5 0x971E +0xF6A6 0x97A0 +0xF6A7 0x97D3 +0xF6A8 0x9846 +0xF6A9 0x98B6 +0xF6AA 0x9935 +0xF6AB 0x9A01 +0xF6AC 0x99FF +0xF6AD 0x9BAE +0xF6AE 0x9BAB +0xF6AF 0x9BAA +0xF6B0 0x9BAD +0xF6B1 0x9D3B +0xF6B2 0x9D3F +0xF6B3 0x9E8B +0xF6B4 0x9ECF +0xF6B5 0x9EDE +0xF6B6 0x9EDC +0xF6B7 0x9EDD +0xF6B8 0x9EDB +0xF6B9 0x9F3E +0xF6BA 0x9F4B +0xF6BB 0x53E2 +0xF6BC 0x5695 +0xF6BD 0x56AE +0xF6BE 0x58D9 +0xF6BF 0x58D8 +0xF6C0 0x5B38 +0xF6C1 0x5F5E +0xF6C2 0x61E3 +0xF6C3 0x6233 +0xF6C4 0x64F4 +0xF6C5 0x64F2 +0xF6C6 0x64FE +0xF6C7 0x6506 +0xF6C8 0x64FA +0xF6C9 0x64FB +0xF6CA 0x64F7 +0xF6CB 0x65B7 +0xF6CC 0x66DC +0xF6CD 0x6726 +0xF6CE 0x6AB3 +0xF6CF 0x6AAC +0xF6D0 0x6AC3 +0xF6D1 0x6ABB +0xF6D2 0x6AB8 +0xF6D3 0x6AC2 +0xF6D4 0x6AAE +0xF6D5 0x6AAF +0xF6D6 0x6B5F +0xF6D7 0x6B78 +0xF6D8 0x6BAF +0xF6D9 0x7009 +0xF6DA 0x700B +0xF6DB 0x6FFE +0xF6DC 0x7006 +0xF6DD 0x6FFA +0xF6DE 0x7011 +0xF6DF 0x700F +0xF6E0 0x71FB +0xF6E1 0x71FC +0xF6E2 0x71FE +0xF6E3 0x71F8 +0xF6E4 0x7377 +0xF6E5 0x7375 +0xF6E6 0x74A7 +0xF6E7 0x74BF +0xF6E8 0x7515 +0xF6E9 0x7656 +0xF6EA 0x7658 +0xF6EB 0x7652 +0xF6EC 0x77BD +0xF6ED 0x77BF +0xF6EE 0x77BB +0xF6EF 0x77BC +0xF6F0 0x790E +0xF6F1 0x79AE +0xF6F2 0x7A61 +0xF6F3 0x7A62 +0xF6F4 0x7A60 +0xF6F5 0x7AC4 +0xF6F6 0x7AC5 +0xF6F7 0x7C2B +0xF6F8 0x7C27 +0xF6F9 0x7C2A +0xF6FA 0x7C1E +0xF6FB 0x7C23 +0xF6FC 0x7C21 +0xF6FD 0x7CE7 +0xF6FE 0x7E54 +0xF7A1 0x7E55 +0xF7A2 0x7E5E +0xF7A3 0x7E5A +0xF7A4 0x7E61 +0xF7A5 0x7E52 +0xF7A6 0x7E59 +0xF7A7 0x7F48 +0xF7A8 0x7FF9 +0xF7A9 0x7FFB +0xF7AA 0x8077 +0xF7AB 0x8076 +0xF7AC 0x81CD +0xF7AD 0x81CF +0xF7AE 0x820A +0xF7AF 0x85CF +0xF7B0 0x85A9 +0xF7B1 0x85CD +0xF7B2 0x85D0 +0xF7B3 0x85C9 +0xF7B4 0x85B0 +0xF7B5 0x85BA +0xF7B6 0x85B9 +0xF7B7 0x87EF +0xF7B8 0x87EC +0xF7B9 0x87F2 +0xF7BA 0x87E0 +0xF7BB 0x8986 +0xF7BC 0x89B2 +0xF7BD 0x89F4 +0xF7BE 0x8B28 +0xF7BF 0x8B39 +0xF7C0 0x8B2C +0xF7C1 0x8B2B +0xF7C2 0x8C50 +0xF7C3 0x8D05 +0xF7C4 0x8E59 +0xF7C5 0x8E63 +0xF7C6 0x8E66 +0xF7C7 0x8E64 +0xF7C8 0x8E5F +0xF7C9 0x8E55 +0xF7CA 0x8EC0 +0xF7CB 0x8F49 +0xF7CC 0x8F4D +0xF7CD 0x9087 +0xF7CE 0x9083 +0xF7CF 0x9088 +0xF7D0 0x91AB +0xF7D1 0x91AC +0xF7D2 0x91D0 +0xF7D3 0x9394 +0xF7D4 0x938A +0xF7D5 0x9396 +0xF7D6 0x93A2 +0xF7D7 0x93B3 +0xF7D8 0x93AE +0xF7D9 0x93AC +0xF7DA 0x93B0 +0xF7DB 0x9398 +0xF7DC 0x939A +0xF7DD 0x9397 +0xF7DE 0x95D4 +0xF7DF 0x95D6 +0xF7E0 0x95D0 +0xF7E1 0x95D5 +0xF7E2 0x96E2 +0xF7E3 0x96DC +0xF7E4 0x96D9 +0xF7E5 0x96DB +0xF7E6 0x96DE +0xF7E7 0x9724 +0xF7E8 0x97A3 +0xF7E9 0x97A6 +0xF7EA 0x97AD +0xF7EB 0x97F9 +0xF7EC 0x984D +0xF7ED 0x984F +0xF7EE 0x984C +0xF7EF 0x984E +0xF7F0 0x9853 +0xF7F1 0x98BA +0xF7F2 0x993E +0xF7F3 0x993F +0xF7F4 0x993D +0xF7F5 0x992E +0xF7F6 0x99A5 +0xF7F7 0x9A0E +0xF7F8 0x9AC1 +0xF7F9 0x9B03 +0xF7FA 0x9B06 +0xF7FB 0x9B4F +0xF7FC 0x9B4E +0xF7FD 0x9B4D +0xF7FE 0x9BCA +0xF8A1 0x9BC9 +0xF8A2 0x9BFD +0xF8A3 0x9BC8 +0xF8A4 0x9BC0 +0xF8A5 0x9D51 +0xF8A6 0x9D5D +0xF8A7 0x9D60 +0xF8A8 0x9EE0 +0xF8A9 0x9F15 +0xF8AA 0x9F2C +0xF8AB 0x5133 +0xF8AC 0x56A5 +0xF8AD 0x56A8 +0xF8AE 0x58DE +0xF8AF 0x58DF +0xF8B0 0x58E2 +0xF8B1 0x5BF5 +0xF8B2 0x9F90 +0xF8B3 0x5EEC +0xF8B4 0x61F2 +0xF8B5 0x61F7 +0xF8B6 0x61F6 +0xF8B7 0x61F5 +0xF8B8 0x6500 +0xF8B9 0x650F +0xF8BA 0x66E0 +0xF8BB 0x66DD +0xF8BC 0x6AE5 +0xF8BD 0x6ADD +0xF8BE 0x6ADA +0xF8BF 0x6AD3 +0xF8C0 0x701B +0xF8C1 0x701F +0xF8C2 0x7028 +0xF8C3 0x701A +0xF8C4 0x701D +0xF8C5 0x7015 +0xF8C6 0x7018 +0xF8C7 0x7206 +0xF8C8 0x720D +0xF8C9 0x7258 +0xF8CA 0x72A2 +0xF8CB 0x7378 +0xF8CC 0x737A +0xF8CD 0x74BD +0xF8CE 0x74CA +0xF8CF 0x74E3 +0xF8D0 0x7587 +0xF8D1 0x7586 +0xF8D2 0x765F +0xF8D3 0x7661 +0xF8D4 0x77C7 +0xF8D5 0x7919 +0xF8D6 0x79B1 +0xF8D7 0x7A6B +0xF8D8 0x7A69 +0xF8D9 0x7C3E +0xF8DA 0x7C3F +0xF8DB 0x7C38 +0xF8DC 0x7C3D +0xF8DD 0x7C37 +0xF8DE 0x7C40 +0xF8DF 0x7E6B +0xF8E0 0x7E6D +0xF8E1 0x7E79 +0xF8E2 0x7E69 +0xF8E3 0x7E6A +0xF8E4 0x7E73 +0xF8E5 0x7F85 +0xF8E6 0x7FB6 +0xF8E7 0x7FB9 +0xF8E8 0x7FB8 +0xF8E9 0x81D8 +0xF8EA 0x85E9 +0xF8EB 0x85DD +0xF8EC 0x85EA +0xF8ED 0x85D5 +0xF8EE 0x85E4 +0xF8EF 0x85E5 +0xF8F0 0x85F7 +0xF8F1 0x87FB +0xF8F2 0x8805 +0xF8F3 0x880D +0xF8F4 0x87F9 +0xF8F5 0x87FE +0xF8F6 0x8960 +0xF8F7 0x895F +0xF8F8 0x8956 +0xF8F9 0x895E +0xF8FA 0x8B41 +0xF8FB 0x8B5C +0xF8FC 0x8B58 +0xF8FD 0x8B49 +0xF8FE 0x8B5A +0xF9A1 0x8B4E +0xF9A2 0x8B4F +0xF9A3 0x8B46 +0xF9A4 0x8B59 +0xF9A5 0x8D08 +0xF9A6 0x8D0A +0xF9A7 0x8E7C +0xF9A8 0x8E72 +0xF9A9 0x8E87 +0xF9AA 0x8E76 +0xF9AB 0x8E6C +0xF9AC 0x8E7A +0xF9AD 0x8E74 +0xF9AE 0x8F54 +0xF9AF 0x8F4E +0xF9B0 0x8FAD +0xF9B1 0x908A +0xF9B2 0x908B +0xF9B3 0x91B1 +0xF9B4 0x91AE +0xF9B5 0x93E1 +0xF9B6 0x93D1 +0xF9B7 0x93DF +0xF9B8 0x93C3 +0xF9B9 0x93C8 +0xF9BA 0x93DC +0xF9BB 0x93DD +0xF9BC 0x93D6 +0xF9BD 0x93E2 +0xF9BE 0x93CD +0xF9BF 0x93D8 +0xF9C0 0x93E4 +0xF9C1 0x93D7 +0xF9C2 0x93E8 +0xF9C3 0x95DC +0xF9C4 0x96B4 +0xF9C5 0x96E3 +0xF9C6 0x972A +0xF9C7 0x9727 +0xF9C8 0x9761 +0xF9C9 0x97DC +0xF9CA 0x97FB +0xF9CB 0x985E +0xF9CC 0x9858 +0xF9CD 0x985B +0xF9CE 0x98BC +0xF9CF 0x9945 +0xF9D0 0x9949 +0xF9D1 0x9A16 +0xF9D2 0x9A19 +0xF9D3 0x9B0D +0xF9D4 0x9BE8 +0xF9D5 0x9BE7 +0xF9D6 0x9BD6 +0xF9D7 0x9BDB +0xF9D8 0x9D89 +0xF9D9 0x9D61 +0xF9DA 0x9D72 +0xF9DB 0x9D6A +0xF9DC 0x9D6C +0xF9DD 0x9E92 +0xF9DE 0x9E97 +0xF9DF 0x9E93 +0xF9E0 0x9EB4 +0xF9E1 0x52F8 +0xF9E2 0x56B7 +0xF9E3 0x56B6 +0xF9E4 0x56B4 +0xF9E5 0x56BC +0xF9E6 0x58E4 +0xF9E7 0x5B40 +0xF9E8 0x5B43 +0xF9E9 0x5B7D +0xF9EA 0x5BF6 +0xF9EB 0x5DC9 +0xF9EC 0x61F8 +0xF9ED 0x61FA +0xF9EE 0x6518 +0xF9EF 0x6514 +0xF9F0 0x6519 +0xF9F1 0x66E6 +0xF9F2 0x6727 +0xF9F3 0x6AEC +0xF9F4 0x703E +0xF9F5 0x7030 +0xF9F6 0x7032 +0xF9F7 0x7210 +0xF9F8 0x737B +0xF9F9 0x74CF +0xF9FA 0x7662 +0xF9FB 0x7665 +0xF9FC 0x7926 +0xF9FD 0x792A +0xF9FE 0x792C +0xFAA1 0x792B +0xFAA2 0x7AC7 +0xFAA3 0x7AF6 +0xFAA4 0x7C4C +0xFAA5 0x7C43 +0xFAA6 0x7C4D +0xFAA7 0x7CEF +0xFAA8 0x7CF0 +0xFAA9 0x8FAE +0xFAAA 0x7E7D +0xFAAB 0x7E7C +0xFAAC 0x7E82 +0xFAAD 0x7F4C +0xFAAE 0x8000 +0xFAAF 0x81DA +0xFAB0 0x8266 +0xFAB1 0x85FB +0xFAB2 0x85F9 +0xFAB3 0x8611 +0xFAB4 0x85FA +0xFAB5 0x8606 +0xFAB6 0x860B +0xFAB7 0x8607 +0xFAB8 0x860A +0xFAB9 0x8814 +0xFABA 0x8815 +0xFABB 0x8964 +0xFABC 0x89BA +0xFABD 0x89F8 +0xFABE 0x8B70 +0xFABF 0x8B6C +0xFAC0 0x8B66 +0xFAC1 0x8B6F +0xFAC2 0x8B5F +0xFAC3 0x8B6B +0xFAC4 0x8D0F +0xFAC5 0x8D0D +0xFAC6 0x8E89 +0xFAC7 0x8E81 +0xFAC8 0x8E85 +0xFAC9 0x8E82 +0xFACA 0x91B4 +0xFACB 0x91CB +0xFACC 0x9418 +0xFACD 0x9403 +0xFACE 0x93FD +0xFACF 0x95E1 +0xFAD0 0x9730 +0xFAD1 0x98C4 +0xFAD2 0x9952 +0xFAD3 0x9951 +0xFAD4 0x99A8 +0xFAD5 0x9A2B +0xFAD6 0x9A30 +0xFAD7 0x9A37 +0xFAD8 0x9A35 +0xFAD9 0x9C13 +0xFADA 0x9C0D +0xFADB 0x9E79 +0xFADC 0x9EB5 +0xFADD 0x9EE8 +0xFADE 0x9F2F +0xFADF 0x9F5F +0xFAE0 0x9F63 +0xFAE1 0x9F61 +0xFAE2 0x5137 +0xFAE3 0x5138 +0xFAE4 0x56C1 +0xFAE5 0x56C0 +0xFAE6 0x56C2 +0xFAE7 0x5914 +0xFAE8 0x5C6C +0xFAE9 0x5DCD +0xFAEA 0x61FC +0xFAEB 0x61FE +0xFAEC 0x651D +0xFAED 0x651C +0xFAEE 0x6595 +0xFAEF 0x66E9 +0xFAF0 0x6AFB +0xFAF1 0x6B04 +0xFAF2 0x6AFA +0xFAF3 0x6BB2 +0xFAF4 0x704C +0xFAF5 0x721B +0xFAF6 0x72A7 +0xFAF7 0x74D6 +0xFAF8 0x74D4 +0xFAF9 0x7669 +0xFAFA 0x77D3 +0xFAFB 0x7C50 +0xFAFC 0x7E8F +0xFAFD 0x7E8C +0xFAFE 0x7FBC +0xFBA1 0x8617 +0xFBA2 0x862D +0xFBA3 0x861A +0xFBA4 0x8823 +0xFBA5 0x8822 +0xFBA6 0x8821 +0xFBA7 0x881F +0xFBA8 0x896A +0xFBA9 0x896C +0xFBAA 0x89BD +0xFBAB 0x8B74 +0xFBAC 0x8B77 +0xFBAD 0x8B7D +0xFBAE 0x8D13 +0xFBAF 0x8E8A +0xFBB0 0x8E8D +0xFBB1 0x8E8B +0xFBB2 0x8F5F +0xFBB3 0x8FAF +0xFBB4 0x91BA +0xFBB5 0x942E +0xFBB6 0x9433 +0xFBB7 0x9435 +0xFBB8 0x943A +0xFBB9 0x9438 +0xFBBA 0x9432 +0xFBBB 0x942B +0xFBBC 0x95E2 +0xFBBD 0x9738 +0xFBBE 0x9739 +0xFBBF 0x9732 +0xFBC0 0x97FF +0xFBC1 0x9867 +0xFBC2 0x9865 +0xFBC3 0x9957 +0xFBC4 0x9A45 +0xFBC5 0x9A43 +0xFBC6 0x9A40 +0xFBC7 0x9A3E +0xFBC8 0x9ACF +0xFBC9 0x9B54 +0xFBCA 0x9B51 +0xFBCB 0x9C2D +0xFBCC 0x9C25 +0xFBCD 0x9DAF +0xFBCE 0x9DB4 +0xFBCF 0x9DC2 +0xFBD0 0x9DB8 +0xFBD1 0x9E9D +0xFBD2 0x9EEF +0xFBD3 0x9F19 +0xFBD4 0x9F5C +0xFBD5 0x9F66 +0xFBD6 0x9F67 +0xFBD7 0x513C +0xFBD8 0x513B +0xFBD9 0x56C8 +0xFBDA 0x56CA +0xFBDB 0x56C9 +0xFBDC 0x5B7F +0xFBDD 0x5DD4 +0xFBDE 0x5DD2 +0xFBDF 0x5F4E +0xFBE0 0x61FF +0xFBE1 0x6524 +0xFBE2 0x6B0A +0xFBE3 0x6B61 +0xFBE4 0x7051 +0xFBE5 0x7058 +0xFBE6 0x7380 +0xFBE7 0x74E4 +0xFBE8 0x758A +0xFBE9 0x766E +0xFBEA 0x766C +0xFBEB 0x79B3 +0xFBEC 0x7C60 +0xFBED 0x7C5F +0xFBEE 0x807E +0xFBEF 0x807D +0xFBF0 0x81DF +0xFBF1 0x8972 +0xFBF2 0x896F +0xFBF3 0x89FC +0xFBF4 0x8B80 +0xFBF5 0x8D16 +0xFBF6 0x8D17 +0xFBF7 0x8E91 +0xFBF8 0x8E93 +0xFBF9 0x8F61 +0xFBFA 0x9148 +0xFBFB 0x9444 +0xFBFC 0x9451 +0xFBFD 0x9452 +0xFBFE 0x973D +0xFCA1 0x973E +0xFCA2 0x97C3 +0xFCA3 0x97C1 +0xFCA4 0x986B +0xFCA5 0x9955 +0xFCA6 0x9A55 +0xFCA7 0x9A4D +0xFCA8 0x9AD2 +0xFCA9 0x9B1A +0xFCAA 0x9C49 +0xFCAB 0x9C31 +0xFCAC 0x9C3E +0xFCAD 0x9C3B +0xFCAE 0x9DD3 +0xFCAF 0x9DD7 +0xFCB0 0x9F34 +0xFCB1 0x9F6C +0xFCB2 0x9F6A +0xFCB3 0x9F94 +0xFCB4 0x56CC +0xFCB5 0x5DD6 +0xFCB6 0x6200 +0xFCB7 0x6523 +0xFCB8 0x652B +0xFCB9 0x652A +0xFCBA 0x66EC +0xFCBB 0x6B10 +0xFCBC 0x74DA +0xFCBD 0x7ACA +0xFCBE 0x7C64 +0xFCBF 0x7C63 +0xFCC0 0x7C65 +0xFCC1 0x7E93 +0xFCC2 0x7E96 +0xFCC3 0x7E94 +0xFCC4 0x81E2 +0xFCC5 0x8638 +0xFCC6 0x863F +0xFCC7 0x8831 +0xFCC8 0x8B8A +0xFCC9 0x9090 +0xFCCA 0x908F +0xFCCB 0x9463 +0xFCCC 0x9460 +0xFCCD 0x9464 +0xFCCE 0x9768 +0xFCCF 0x986F +0xFCD0 0x995C +0xFCD1 0x9A5A +0xFCD2 0x9A5B +0xFCD3 0x9A57 +0xFCD4 0x9AD3 +0xFCD5 0x9AD4 +0xFCD6 0x9AD1 +0xFCD7 0x9C54 +0xFCD8 0x9C57 +0xFCD9 0x9C56 +0xFCDA 0x9DE5 +0xFCDB 0x9E9F +0xFCDC 0x9EF4 +0xFCDD 0x56D1 +0xFCDE 0x58E9 +0xFCDF 0x652C +0xFCE0 0x705E +0xFCE1 0x7671 +0xFCE2 0x7672 +0xFCE3 0x77D7 +0xFCE4 0x7F50 +0xFCE5 0x7F88 +0xFCE6 0x8836 +0xFCE7 0x8839 +0xFCE8 0x8862 +0xFCE9 0x8B93 +0xFCEA 0x8B92 +0xFCEB 0x8B96 +0xFCEC 0x8277 +0xFCED 0x8D1B +0xFCEE 0x91C0 +0xFCEF 0x946A +0xFCF0 0x9742 +0xFCF1 0x9748 +0xFCF2 0x9744 +0xFCF3 0x97C6 +0xFCF4 0x9870 +0xFCF5 0x9A5F +0xFCF6 0x9B22 +0xFCF7 0x9B58 +0xFCF8 0x9C5F +0xFCF9 0x9DF9 +0xFCFA 0x9DFA +0xFCFB 0x9E7C +0xFCFC 0x9E7D +0xFCFD 0x9F07 +0xFCFE 0x9F77 +0xFDA1 0x9F72 +0xFDA2 0x5EF3 +0xFDA3 0x6B16 +0xFDA4 0x7063 +0xFDA5 0x7C6C +0xFDA6 0x7C6E +0xFDA7 0x883B +0xFDA8 0x89C0 +0xFDA9 0x8EA1 +0xFDAA 0x91C1 +0xFDAB 0x9472 +0xFDAC 0x9470 +0xFDAD 0x9871 +0xFDAE 0x995E +0xFDAF 0x9AD6 +0xFDB0 0x9B23 +0xFDB1 0x9ECC +0xFDB2 0x7064 +0xFDB3 0x77DA +0xFDB4 0x8B9A +0xFDB5 0x9477 +0xFDB6 0x97C9 +0xFDB7 0x9A62 +0xFDB8 0x9A65 +0xFDB9 0x7E9C +0xFDBA 0x8B9C +0xFDBB 0x8EAA +0xFDBC 0x91C5 +0xFDBD 0x947D +0xFDBE 0x947E +0xFDBF 0x947C +0xFDC0 0x9C77 +0xFDC1 0x9C78 +0xFDC2 0x9EF7 +0xFDC3 0x8C54 +0xFDC4 0x947F +0xFDC5 0x9E1A +0xFDC6 0x7228 +0xFDC7 0x9A6A +0xFDC8 0x9B31 +0xFDC9 0x9E1B +0xFDCA 0x9E1E +0xFDCB 0x7C72 diff --git a/3rdPartner/libiconv/tests/GB18030-BMP.TXT b/3rdPartner/libiconv/tests/GB18030-BMP.TXT new file mode 100644 index 0000000..6df3bd5 --- /dev/null +++ b/3rdPartner/libiconv/tests/GB18030-BMP.TXT @@ -0,0 +1,63488 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x81308130 0x0080 +0x81308131 0x0081 +0x81308132 0x0082 +0x81308133 0x0083 +0x81308134 0x0084 +0x81308135 0x0085 +0x81308136 0x0086 +0x81308137 0x0087 +0x81308138 0x0088 +0x81308139 0x0089 +0x81308230 0x008A +0x81308231 0x008B +0x81308232 0x008C +0x81308233 0x008D +0x81308234 0x008E +0x81308235 0x008F +0x81308236 0x0090 +0x81308237 0x0091 +0x81308238 0x0092 +0x81308239 0x0093 +0x81308330 0x0094 +0x81308331 0x0095 +0x81308332 0x0096 +0x81308333 0x0097 +0x81308334 0x0098 +0x81308335 0x0099 +0x81308336 0x009A +0x81308337 0x009B +0x81308338 0x009C +0x81308339 0x009D +0x81308430 0x009E +0x81308431 0x009F +0x81308432 0x00A0 +0x81308433 0x00A1 +0x81308434 0x00A2 +0x81308435 0x00A3 +0x81308436 0x00A5 +0x81308437 0x00A6 +0x81308438 0x00A9 +0x81308439 0x00AA +0x81308530 0x00AB +0x81308531 0x00AC +0x81308532 0x00AD +0x81308533 0x00AE +0x81308534 0x00AF +0x81308535 0x00B2 +0x81308536 0x00B3 +0x81308537 0x00B4 +0x81308538 0x00B5 +0x81308539 0x00B6 +0x81308630 0x00B8 +0x81308631 0x00B9 +0x81308632 0x00BA +0x81308633 0x00BB +0x81308634 0x00BC +0x81308635 0x00BD +0x81308636 0x00BE +0x81308637 0x00BF +0x81308638 0x00C0 +0x81308639 0x00C1 +0x81308730 0x00C2 +0x81308731 0x00C3 +0x81308732 0x00C4 +0x81308733 0x00C5 +0x81308734 0x00C6 +0x81308735 0x00C7 +0x81308736 0x00C8 +0x81308737 0x00C9 +0x81308738 0x00CA +0x81308739 0x00CB +0x81308830 0x00CC +0x81308831 0x00CD +0x81308832 0x00CE +0x81308833 0x00CF +0x81308834 0x00D0 +0x81308835 0x00D1 +0x81308836 0x00D2 +0x81308837 0x00D3 +0x81308838 0x00D4 +0x81308839 0x00D5 +0x81308930 0x00D6 +0x81308931 0x00D8 +0x81308932 0x00D9 +0x81308933 0x00DA +0x81308934 0x00DB +0x81308935 0x00DC +0x81308936 0x00DD +0x81308937 0x00DE +0x81308938 0x00DF +0x81308939 0x00E2 +0x81308A30 0x00E3 +0x81308A31 0x00E4 +0x81308A32 0x00E5 +0x81308A33 0x00E6 +0x81308A34 0x00E7 +0x81308A35 0x00EB +0x81308A36 0x00EE +0x81308A37 0x00EF +0x81308A38 0x00F0 +0x81308A39 0x00F1 +0x81308B30 0x00F4 +0x81308B31 0x00F5 +0x81308B32 0x00F6 +0x81308B33 0x00F8 +0x81308B34 0x00FB +0x81308B35 0x00FD +0x81308B36 0x00FE +0x81308B37 0x00FF +0x81308B38 0x0100 +0x81308B39 0x0102 +0x81308C30 0x0103 +0x81308C31 0x0104 +0x81308C32 0x0105 +0x81308C33 0x0106 +0x81308C34 0x0107 +0x81308C35 0x0108 +0x81308C36 0x0109 +0x81308C37 0x010A +0x81308C38 0x010B +0x81308C39 0x010C +0x81308D30 0x010D +0x81308D31 0x010E +0x81308D32 0x010F +0x81308D33 0x0110 +0x81308D34 0x0111 +0x81308D35 0x0112 +0x81308D36 0x0114 +0x81308D37 0x0115 +0x81308D38 0x0116 +0x81308D39 0x0117 +0x81308E30 0x0118 +0x81308E31 0x0119 +0x81308E32 0x011A +0x81308E33 0x011C +0x81308E34 0x011D +0x81308E35 0x011E +0x81308E36 0x011F +0x81308E37 0x0120 +0x81308E38 0x0121 +0x81308E39 0x0122 +0x81308F30 0x0123 +0x81308F31 0x0124 +0x81308F32 0x0125 +0x81308F33 0x0126 +0x81308F34 0x0127 +0x81308F35 0x0128 +0x81308F36 0x0129 +0x81308F37 0x012A +0x81308F38 0x012C +0x81308F39 0x012D +0x81309030 0x012E +0x81309031 0x012F +0x81309032 0x0130 +0x81309033 0x0131 +0x81309034 0x0132 +0x81309035 0x0133 +0x81309036 0x0134 +0x81309037 0x0135 +0x81309038 0x0136 +0x81309039 0x0137 +0x81309130 0x0138 +0x81309131 0x0139 +0x81309132 0x013A +0x81309133 0x013B +0x81309134 0x013C +0x81309135 0x013D +0x81309136 0x013E +0x81309137 0x013F +0x81309138 0x0140 +0x81309139 0x0141 +0x81309230 0x0142 +0x81309231 0x0143 +0x81309232 0x0145 +0x81309233 0x0146 +0x81309234 0x0147 +0x81309235 0x0149 +0x81309236 0x014A +0x81309237 0x014B +0x81309238 0x014C +0x81309239 0x014E +0x81309330 0x014F +0x81309331 0x0150 +0x81309332 0x0151 +0x81309333 0x0152 +0x81309334 0x0153 +0x81309335 0x0154 +0x81309336 0x0155 +0x81309337 0x0156 +0x81309338 0x0157 +0x81309339 0x0158 +0x81309430 0x0159 +0x81309431 0x015A +0x81309432 0x015B +0x81309433 0x015C +0x81309434 0x015D +0x81309435 0x015E +0x81309436 0x015F +0x81309437 0x0160 +0x81309438 0x0161 +0x81309439 0x0162 +0x81309530 0x0163 +0x81309531 0x0164 +0x81309532 0x0165 +0x81309533 0x0166 +0x81309534 0x0167 +0x81309535 0x0168 +0x81309536 0x0169 +0x81309537 0x016A +0x81309538 0x016C +0x81309539 0x016D +0x81309630 0x016E +0x81309631 0x016F +0x81309632 0x0170 +0x81309633 0x0171 +0x81309634 0x0172 +0x81309635 0x0173 +0x81309636 0x0174 +0x81309637 0x0175 +0x81309638 0x0176 +0x81309639 0x0177 +0x81309730 0x0178 +0x81309731 0x0179 +0x81309732 0x017A +0x81309733 0x017B +0x81309734 0x017C +0x81309735 0x017D +0x81309736 0x017E +0x81309737 0x017F +0x81309738 0x0180 +0x81309739 0x0181 +0x81309830 0x0182 +0x81309831 0x0183 +0x81309832 0x0184 +0x81309833 0x0185 +0x81309834 0x0186 +0x81309835 0x0187 +0x81309836 0x0188 +0x81309837 0x0189 +0x81309838 0x018A +0x81309839 0x018B +0x81309930 0x018C +0x81309931 0x018D +0x81309932 0x018E +0x81309933 0x018F +0x81309934 0x0190 +0x81309935 0x0191 +0x81309936 0x0192 +0x81309937 0x0193 +0x81309938 0x0194 +0x81309939 0x0195 +0x81309A30 0x0196 +0x81309A31 0x0197 +0x81309A32 0x0198 +0x81309A33 0x0199 +0x81309A34 0x019A +0x81309A35 0x019B +0x81309A36 0x019C +0x81309A37 0x019D +0x81309A38 0x019E +0x81309A39 0x019F +0x81309B30 0x01A0 +0x81309B31 0x01A1 +0x81309B32 0x01A2 +0x81309B33 0x01A3 +0x81309B34 0x01A4 +0x81309B35 0x01A5 +0x81309B36 0x01A6 +0x81309B37 0x01A7 +0x81309B38 0x01A8 +0x81309B39 0x01A9 +0x81309C30 0x01AA +0x81309C31 0x01AB +0x81309C32 0x01AC +0x81309C33 0x01AD +0x81309C34 0x01AE +0x81309C35 0x01AF +0x81309C36 0x01B0 +0x81309C37 0x01B1 +0x81309C38 0x01B2 +0x81309C39 0x01B3 +0x81309D30 0x01B4 +0x81309D31 0x01B5 +0x81309D32 0x01B6 +0x81309D33 0x01B7 +0x81309D34 0x01B8 +0x81309D35 0x01B9 +0x81309D36 0x01BA +0x81309D37 0x01BB +0x81309D38 0x01BC +0x81309D39 0x01BD +0x81309E30 0x01BE +0x81309E31 0x01BF +0x81309E32 0x01C0 +0x81309E33 0x01C1 +0x81309E34 0x01C2 +0x81309E35 0x01C3 +0x81309E36 0x01C4 +0x81309E37 0x01C5 +0x81309E38 0x01C6 +0x81309E39 0x01C7 +0x81309F30 0x01C8 +0x81309F31 0x01C9 +0x81309F32 0x01CA +0x81309F33 0x01CB +0x81309F34 0x01CC +0x81309F35 0x01CD +0x81309F36 0x01CF +0x81309F37 0x01D1 +0x81309F38 0x01D3 +0x81309F39 0x01D5 +0x8130A030 0x01D7 +0x8130A031 0x01D9 +0x8130A032 0x01DB +0x8130A033 0x01DD +0x8130A034 0x01DE +0x8130A035 0x01DF +0x8130A036 0x01E0 +0x8130A037 0x01E1 +0x8130A038 0x01E2 +0x8130A039 0x01E3 +0x8130A130 0x01E4 +0x8130A131 0x01E5 +0x8130A132 0x01E6 +0x8130A133 0x01E7 +0x8130A134 0x01E8 +0x8130A135 0x01E9 +0x8130A136 0x01EA +0x8130A137 0x01EB +0x8130A138 0x01EC +0x8130A139 0x01ED +0x8130A230 0x01EE +0x8130A231 0x01EF +0x8130A232 0x01F0 +0x8130A233 0x01F1 +0x8130A234 0x01F2 +0x8130A235 0x01F3 +0x8130A236 0x01F4 +0x8130A237 0x01F5 +0x8130A238 0x01F6 +0x8130A239 0x01F7 +0x8130A330 0x01F8 +0x8130A331 0x01FA +0x8130A332 0x01FB +0x8130A333 0x01FC +0x8130A334 0x01FD +0x8130A335 0x01FE +0x8130A336 0x01FF +0x8130A337 0x0200 +0x8130A338 0x0201 +0x8130A339 0x0202 +0x8130A430 0x0203 +0x8130A431 0x0204 +0x8130A432 0x0205 +0x8130A433 0x0206 +0x8130A434 0x0207 +0x8130A435 0x0208 +0x8130A436 0x0209 +0x8130A437 0x020A +0x8130A438 0x020B +0x8130A439 0x020C +0x8130A530 0x020D +0x8130A531 0x020E +0x8130A532 0x020F +0x8130A533 0x0210 +0x8130A534 0x0211 +0x8130A535 0x0212 +0x8130A536 0x0213 +0x8130A537 0x0214 +0x8130A538 0x0215 +0x8130A539 0x0216 +0x8130A630 0x0217 +0x8130A631 0x0218 +0x8130A632 0x0219 +0x8130A633 0x021A +0x8130A634 0x021B +0x8130A635 0x021C +0x8130A636 0x021D +0x8130A637 0x021E +0x8130A638 0x021F +0x8130A639 0x0220 +0x8130A730 0x0221 +0x8130A731 0x0222 +0x8130A732 0x0223 +0x8130A733 0x0224 +0x8130A734 0x0225 +0x8130A735 0x0226 +0x8130A736 0x0227 +0x8130A737 0x0228 +0x8130A738 0x0229 +0x8130A739 0x022A +0x8130A830 0x022B +0x8130A831 0x022C +0x8130A832 0x022D +0x8130A833 0x022E +0x8130A834 0x022F +0x8130A835 0x0230 +0x8130A836 0x0231 +0x8130A837 0x0232 +0x8130A838 0x0233 +0x8130A839 0x0234 +0x8130A930 0x0235 +0x8130A931 0x0236 +0x8130A932 0x0237 +0x8130A933 0x0238 +0x8130A934 0x0239 +0x8130A935 0x023A +0x8130A936 0x023B +0x8130A937 0x023C +0x8130A938 0x023D +0x8130A939 0x023E +0x8130AA30 0x023F +0x8130AA31 0x0240 +0x8130AA32 0x0241 +0x8130AA33 0x0242 +0x8130AA34 0x0243 +0x8130AA35 0x0244 +0x8130AA36 0x0245 +0x8130AA37 0x0246 +0x8130AA38 0x0247 +0x8130AA39 0x0248 +0x8130AB30 0x0249 +0x8130AB31 0x024A +0x8130AB32 0x024B +0x8130AB33 0x024C +0x8130AB34 0x024D +0x8130AB35 0x024E +0x8130AB36 0x024F +0x8130AB37 0x0250 +0x8130AB38 0x0252 +0x8130AB39 0x0253 +0x8130AC30 0x0254 +0x8130AC31 0x0255 +0x8130AC32 0x0256 +0x8130AC33 0x0257 +0x8130AC34 0x0258 +0x8130AC35 0x0259 +0x8130AC36 0x025A +0x8130AC37 0x025B +0x8130AC38 0x025C +0x8130AC39 0x025D +0x8130AD30 0x025E +0x8130AD31 0x025F +0x8130AD32 0x0260 +0x8130AD33 0x0262 +0x8130AD34 0x0263 +0x8130AD35 0x0264 +0x8130AD36 0x0265 +0x8130AD37 0x0266 +0x8130AD38 0x0267 +0x8130AD39 0x0268 +0x8130AE30 0x0269 +0x8130AE31 0x026A +0x8130AE32 0x026B +0x8130AE33 0x026C +0x8130AE34 0x026D +0x8130AE35 0x026E +0x8130AE36 0x026F +0x8130AE37 0x0270 +0x8130AE38 0x0271 +0x8130AE39 0x0272 +0x8130AF30 0x0273 +0x8130AF31 0x0274 +0x8130AF32 0x0275 +0x8130AF33 0x0276 +0x8130AF34 0x0277 +0x8130AF35 0x0278 +0x8130AF36 0x0279 +0x8130AF37 0x027A +0x8130AF38 0x027B +0x8130AF39 0x027C +0x8130B030 0x027D +0x8130B031 0x027E +0x8130B032 0x027F +0x8130B033 0x0280 +0x8130B034 0x0281 +0x8130B035 0x0282 +0x8130B036 0x0283 +0x8130B037 0x0284 +0x8130B038 0x0285 +0x8130B039 0x0286 +0x8130B130 0x0287 +0x8130B131 0x0288 +0x8130B132 0x0289 +0x8130B133 0x028A +0x8130B134 0x028B +0x8130B135 0x028C +0x8130B136 0x028D +0x8130B137 0x028E +0x8130B138 0x028F +0x8130B139 0x0290 +0x8130B230 0x0291 +0x8130B231 0x0292 +0x8130B232 0x0293 +0x8130B233 0x0294 +0x8130B234 0x0295 +0x8130B235 0x0296 +0x8130B236 0x0297 +0x8130B237 0x0298 +0x8130B238 0x0299 +0x8130B239 0x029A +0x8130B330 0x029B +0x8130B331 0x029C +0x8130B332 0x029D +0x8130B333 0x029E +0x8130B334 0x029F +0x8130B335 0x02A0 +0x8130B336 0x02A1 +0x8130B337 0x02A2 +0x8130B338 0x02A3 +0x8130B339 0x02A4 +0x8130B430 0x02A5 +0x8130B431 0x02A6 +0x8130B432 0x02A7 +0x8130B433 0x02A8 +0x8130B434 0x02A9 +0x8130B435 0x02AA +0x8130B436 0x02AB +0x8130B437 0x02AC +0x8130B438 0x02AD +0x8130B439 0x02AE +0x8130B530 0x02AF +0x8130B531 0x02B0 +0x8130B532 0x02B1 +0x8130B533 0x02B2 +0x8130B534 0x02B3 +0x8130B535 0x02B4 +0x8130B536 0x02B5 +0x8130B537 0x02B6 +0x8130B538 0x02B7 +0x8130B539 0x02B8 +0x8130B630 0x02B9 +0x8130B631 0x02BA +0x8130B632 0x02BB +0x8130B633 0x02BC +0x8130B634 0x02BD +0x8130B635 0x02BE +0x8130B636 0x02BF +0x8130B637 0x02C0 +0x8130B638 0x02C1 +0x8130B639 0x02C2 +0x8130B730 0x02C3 +0x8130B731 0x02C4 +0x8130B732 0x02C5 +0x8130B733 0x02C6 +0x8130B734 0x02C8 +0x8130B735 0x02CC +0x8130B736 0x02CD +0x8130B737 0x02CE +0x8130B738 0x02CF +0x8130B739 0x02D0 +0x8130B830 0x02D1 +0x8130B831 0x02D2 +0x8130B832 0x02D3 +0x8130B833 0x02D4 +0x8130B834 0x02D5 +0x8130B835 0x02D6 +0x8130B836 0x02D7 +0x8130B837 0x02D8 +0x8130B838 0x02DA +0x8130B839 0x02DB +0x8130B930 0x02DC +0x8130B931 0x02DD +0x8130B932 0x02DE +0x8130B933 0x02DF +0x8130B934 0x02E0 +0x8130B935 0x02E1 +0x8130B936 0x02E2 +0x8130B937 0x02E3 +0x8130B938 0x02E4 +0x8130B939 0x02E5 +0x8130BA30 0x02E6 +0x8130BA31 0x02E7 +0x8130BA32 0x02E8 +0x8130BA33 0x02E9 +0x8130BA34 0x02EA +0x8130BA35 0x02EB +0x8130BA36 0x02EC +0x8130BA37 0x02ED +0x8130BA38 0x02EE +0x8130BA39 0x02EF +0x8130BB30 0x02F0 +0x8130BB31 0x02F1 +0x8130BB32 0x02F2 +0x8130BB33 0x02F3 +0x8130BB34 0x02F4 +0x8130BB35 0x02F5 +0x8130BB36 0x02F6 +0x8130BB37 0x02F7 +0x8130BB38 0x02F8 +0x8130BB39 0x02F9 +0x8130BC30 0x02FA +0x8130BC31 0x02FB +0x8130BC32 0x02FC +0x8130BC33 0x02FD +0x8130BC34 0x02FE +0x8130BC35 0x02FF +0x8130BC36 0x0300 +0x8130BC37 0x0301 +0x8130BC38 0x0302 +0x8130BC39 0x0303 +0x8130BD30 0x0304 +0x8130BD31 0x0305 +0x8130BD32 0x0306 +0x8130BD33 0x0307 +0x8130BD34 0x0308 +0x8130BD35 0x0309 +0x8130BD36 0x030A +0x8130BD37 0x030B +0x8130BD38 0x030C +0x8130BD39 0x030D +0x8130BE30 0x030E +0x8130BE31 0x030F +0x8130BE32 0x0310 +0x8130BE33 0x0311 +0x8130BE34 0x0312 +0x8130BE35 0x0313 +0x8130BE36 0x0314 +0x8130BE37 0x0315 +0x8130BE38 0x0316 +0x8130BE39 0x0317 +0x8130BF30 0x0318 +0x8130BF31 0x0319 +0x8130BF32 0x031A +0x8130BF33 0x031B +0x8130BF34 0x031C +0x8130BF35 0x031D +0x8130BF36 0x031E +0x8130BF37 0x031F +0x8130BF38 0x0320 +0x8130BF39 0x0321 +0x8130C030 0x0322 +0x8130C031 0x0323 +0x8130C032 0x0324 +0x8130C033 0x0325 +0x8130C034 0x0326 +0x8130C035 0x0327 +0x8130C036 0x0328 +0x8130C037 0x0329 +0x8130C038 0x032A +0x8130C039 0x032B +0x8130C130 0x032C +0x8130C131 0x032D +0x8130C132 0x032E +0x8130C133 0x032F +0x8130C134 0x0330 +0x8130C135 0x0331 +0x8130C136 0x0332 +0x8130C137 0x0333 +0x8130C138 0x0334 +0x8130C139 0x0335 +0x8130C230 0x0336 +0x8130C231 0x0337 +0x8130C232 0x0338 +0x8130C233 0x0339 +0x8130C234 0x033A +0x8130C235 0x033B +0x8130C236 0x033C +0x8130C237 0x033D +0x8130C238 0x033E +0x8130C239 0x033F +0x8130C330 0x0340 +0x8130C331 0x0341 +0x8130C332 0x0342 +0x8130C333 0x0343 +0x8130C334 0x0344 +0x8130C335 0x0345 +0x8130C336 0x0346 +0x8130C337 0x0347 +0x8130C338 0x0348 +0x8130C339 0x0349 +0x8130C430 0x034A +0x8130C431 0x034B +0x8130C432 0x034C +0x8130C433 0x034D +0x8130C434 0x034E +0x8130C435 0x034F +0x8130C436 0x0350 +0x8130C437 0x0351 +0x8130C438 0x0352 +0x8130C439 0x0353 +0x8130C530 0x0354 +0x8130C531 0x0355 +0x8130C532 0x0356 +0x8130C533 0x0357 +0x8130C534 0x0358 +0x8130C535 0x0359 +0x8130C536 0x035A +0x8130C537 0x035B +0x8130C538 0x035C +0x8130C539 0x035D +0x8130C630 0x035E +0x8130C631 0x035F +0x8130C632 0x0360 +0x8130C633 0x0361 +0x8130C634 0x0362 +0x8130C635 0x0363 +0x8130C636 0x0364 +0x8130C637 0x0365 +0x8130C638 0x0366 +0x8130C639 0x0367 +0x8130C730 0x0368 +0x8130C731 0x0369 +0x8130C732 0x036A +0x8130C733 0x036B +0x8130C734 0x036C +0x8130C735 0x036D +0x8130C736 0x036E +0x8130C737 0x036F +0x8130C738 0x0370 +0x8130C739 0x0371 +0x8130C830 0x0372 +0x8130C831 0x0373 +0x8130C832 0x0374 +0x8130C833 0x0375 +0x8130C834 0x0376 +0x8130C835 0x0377 +0x8130C836 0x0378 +0x8130C837 0x0379 +0x8130C838 0x037A +0x8130C839 0x037B +0x8130C930 0x037C +0x8130C931 0x037D +0x8130C932 0x037E +0x8130C933 0x037F +0x8130C934 0x0380 +0x8130C935 0x0381 +0x8130C936 0x0382 +0x8130C937 0x0383 +0x8130C938 0x0384 +0x8130C939 0x0385 +0x8130CA30 0x0386 +0x8130CA31 0x0387 +0x8130CA32 0x0388 +0x8130CA33 0x0389 +0x8130CA34 0x038A +0x8130CA35 0x038B +0x8130CA36 0x038C +0x8130CA37 0x038D +0x8130CA38 0x038E +0x8130CA39 0x038F +0x8130CB30 0x0390 +0x8130CB31 0x03A2 +0x8130CB32 0x03AA +0x8130CB33 0x03AB +0x8130CB34 0x03AC +0x8130CB35 0x03AD +0x8130CB36 0x03AE +0x8130CB37 0x03AF +0x8130CB38 0x03B0 +0x8130CB39 0x03C2 +0x8130CC30 0x03CA +0x8130CC31 0x03CB +0x8130CC32 0x03CC +0x8130CC33 0x03CD +0x8130CC34 0x03CE +0x8130CC35 0x03CF +0x8130CC36 0x03D0 +0x8130CC37 0x03D1 +0x8130CC38 0x03D2 +0x8130CC39 0x03D3 +0x8130CD30 0x03D4 +0x8130CD31 0x03D5 +0x8130CD32 0x03D6 +0x8130CD33 0x03D7 +0x8130CD34 0x03D8 +0x8130CD35 0x03D9 +0x8130CD36 0x03DA +0x8130CD37 0x03DB +0x8130CD38 0x03DC +0x8130CD39 0x03DD +0x8130CE30 0x03DE +0x8130CE31 0x03DF +0x8130CE32 0x03E0 +0x8130CE33 0x03E1 +0x8130CE34 0x03E2 +0x8130CE35 0x03E3 +0x8130CE36 0x03E4 +0x8130CE37 0x03E5 +0x8130CE38 0x03E6 +0x8130CE39 0x03E7 +0x8130CF30 0x03E8 +0x8130CF31 0x03E9 +0x8130CF32 0x03EA +0x8130CF33 0x03EB +0x8130CF34 0x03EC +0x8130CF35 0x03ED +0x8130CF36 0x03EE +0x8130CF37 0x03EF +0x8130CF38 0x03F0 +0x8130CF39 0x03F1 +0x8130D030 0x03F2 +0x8130D031 0x03F3 +0x8130D032 0x03F4 +0x8130D033 0x03F5 +0x8130D034 0x03F6 +0x8130D035 0x03F7 +0x8130D036 0x03F8 +0x8130D037 0x03F9 +0x8130D038 0x03FA +0x8130D039 0x03FB +0x8130D130 0x03FC +0x8130D131 0x03FD +0x8130D132 0x03FE +0x8130D133 0x03FF +0x8130D134 0x0400 +0x8130D135 0x0402 +0x8130D136 0x0403 +0x8130D137 0x0404 +0x8130D138 0x0405 +0x8130D139 0x0406 +0x8130D230 0x0407 +0x8130D231 0x0408 +0x8130D232 0x0409 +0x8130D233 0x040A +0x8130D234 0x040B +0x8130D235 0x040C +0x8130D236 0x040D +0x8130D237 0x040E +0x8130D238 0x040F +0x8130D239 0x0450 +0x8130D330 0x0452 +0x8130D331 0x0453 +0x8130D332 0x0454 +0x8130D333 0x0455 +0x8130D334 0x0456 +0x8130D335 0x0457 +0x8130D336 0x0458 +0x8130D337 0x0459 +0x8130D338 0x045A +0x8130D339 0x045B +0x8130D430 0x045C +0x8130D431 0x045D +0x8130D432 0x045E +0x8130D433 0x045F +0x8130D434 0x0460 +0x8130D435 0x0461 +0x8130D436 0x0462 +0x8130D437 0x0463 +0x8130D438 0x0464 +0x8130D439 0x0465 +0x8130D530 0x0466 +0x8130D531 0x0467 +0x8130D532 0x0468 +0x8130D533 0x0469 +0x8130D534 0x046A +0x8130D535 0x046B +0x8130D536 0x046C +0x8130D537 0x046D +0x8130D538 0x046E +0x8130D539 0x046F +0x8130D630 0x0470 +0x8130D631 0x0471 +0x8130D632 0x0472 +0x8130D633 0x0473 +0x8130D634 0x0474 +0x8130D635 0x0475 +0x8130D636 0x0476 +0x8130D637 0x0477 +0x8130D638 0x0478 +0x8130D639 0x0479 +0x8130D730 0x047A +0x8130D731 0x047B +0x8130D732 0x047C +0x8130D733 0x047D +0x8130D734 0x047E +0x8130D735 0x047F +0x8130D736 0x0480 +0x8130D737 0x0481 +0x8130D738 0x0482 +0x8130D739 0x0483 +0x8130D830 0x0484 +0x8130D831 0x0485 +0x8130D832 0x0486 +0x8130D833 0x0487 +0x8130D834 0x0488 +0x8130D835 0x0489 +0x8130D836 0x048A +0x8130D837 0x048B +0x8130D838 0x048C +0x8130D839 0x048D +0x8130D930 0x048E +0x8130D931 0x048F +0x8130D932 0x0490 +0x8130D933 0x0491 +0x8130D934 0x0492 +0x8130D935 0x0493 +0x8130D936 0x0494 +0x8130D937 0x0495 +0x8130D938 0x0496 +0x8130D939 0x0497 +0x8130DA30 0x0498 +0x8130DA31 0x0499 +0x8130DA32 0x049A +0x8130DA33 0x049B +0x8130DA34 0x049C +0x8130DA35 0x049D +0x8130DA36 0x049E +0x8130DA37 0x049F +0x8130DA38 0x04A0 +0x8130DA39 0x04A1 +0x8130DB30 0x04A2 +0x8130DB31 0x04A3 +0x8130DB32 0x04A4 +0x8130DB33 0x04A5 +0x8130DB34 0x04A6 +0x8130DB35 0x04A7 +0x8130DB36 0x04A8 +0x8130DB37 0x04A9 +0x8130DB38 0x04AA +0x8130DB39 0x04AB +0x8130DC30 0x04AC +0x8130DC31 0x04AD +0x8130DC32 0x04AE +0x8130DC33 0x04AF +0x8130DC34 0x04B0 +0x8130DC35 0x04B1 +0x8130DC36 0x04B2 +0x8130DC37 0x04B3 +0x8130DC38 0x04B4 +0x8130DC39 0x04B5 +0x8130DD30 0x04B6 +0x8130DD31 0x04B7 +0x8130DD32 0x04B8 +0x8130DD33 0x04B9 +0x8130DD34 0x04BA +0x8130DD35 0x04BB +0x8130DD36 0x04BC +0x8130DD37 0x04BD +0x8130DD38 0x04BE +0x8130DD39 0x04BF +0x8130DE30 0x04C0 +0x8130DE31 0x04C1 +0x8130DE32 0x04C2 +0x8130DE33 0x04C3 +0x8130DE34 0x04C4 +0x8130DE35 0x04C5 +0x8130DE36 0x04C6 +0x8130DE37 0x04C7 +0x8130DE38 0x04C8 +0x8130DE39 0x04C9 +0x8130DF30 0x04CA +0x8130DF31 0x04CB +0x8130DF32 0x04CC +0x8130DF33 0x04CD +0x8130DF34 0x04CE +0x8130DF35 0x04CF +0x8130DF36 0x04D0 +0x8130DF37 0x04D1 +0x8130DF38 0x04D2 +0x8130DF39 0x04D3 +0x8130E030 0x04D4 +0x8130E031 0x04D5 +0x8130E032 0x04D6 +0x8130E033 0x04D7 +0x8130E034 0x04D8 +0x8130E035 0x04D9 +0x8130E036 0x04DA +0x8130E037 0x04DB +0x8130E038 0x04DC +0x8130E039 0x04DD +0x8130E130 0x04DE +0x8130E131 0x04DF +0x8130E132 0x04E0 +0x8130E133 0x04E1 +0x8130E134 0x04E2 +0x8130E135 0x04E3 +0x8130E136 0x04E4 +0x8130E137 0x04E5 +0x8130E138 0x04E6 +0x8130E139 0x04E7 +0x8130E230 0x04E8 +0x8130E231 0x04E9 +0x8130E232 0x04EA +0x8130E233 0x04EB +0x8130E234 0x04EC +0x8130E235 0x04ED +0x8130E236 0x04EE +0x8130E237 0x04EF +0x8130E238 0x04F0 +0x8130E239 0x04F1 +0x8130E330 0x04F2 +0x8130E331 0x04F3 +0x8130E332 0x04F4 +0x8130E333 0x04F5 +0x8130E334 0x04F6 +0x8130E335 0x04F7 +0x8130E336 0x04F8 +0x8130E337 0x04F9 +0x8130E338 0x04FA +0x8130E339 0x04FB +0x8130E430 0x04FC +0x8130E431 0x04FD +0x8130E432 0x04FE +0x8130E433 0x04FF +0x8130E434 0x0500 +0x8130E435 0x0501 +0x8130E436 0x0502 +0x8130E437 0x0503 +0x8130E438 0x0504 +0x8130E439 0x0505 +0x8130E530 0x0506 +0x8130E531 0x0507 +0x8130E532 0x0508 +0x8130E533 0x0509 +0x8130E534 0x050A +0x8130E535 0x050B +0x8130E536 0x050C +0x8130E537 0x050D +0x8130E538 0x050E +0x8130E539 0x050F +0x8130E630 0x0510 +0x8130E631 0x0511 +0x8130E632 0x0512 +0x8130E633 0x0513 +0x8130E634 0x0514 +0x8130E635 0x0515 +0x8130E636 0x0516 +0x8130E637 0x0517 +0x8130E638 0x0518 +0x8130E639 0x0519 +0x8130E730 0x051A +0x8130E731 0x051B +0x8130E732 0x051C +0x8130E733 0x051D +0x8130E734 0x051E +0x8130E735 0x051F +0x8130E736 0x0520 +0x8130E737 0x0521 +0x8130E738 0x0522 +0x8130E739 0x0523 +0x8130E830 0x0524 +0x8130E831 0x0525 +0x8130E832 0x0526 +0x8130E833 0x0527 +0x8130E834 0x0528 +0x8130E835 0x0529 +0x8130E836 0x052A +0x8130E837 0x052B +0x8130E838 0x052C +0x8130E839 0x052D +0x8130E930 0x052E +0x8130E931 0x052F +0x8130E932 0x0530 +0x8130E933 0x0531 +0x8130E934 0x0532 +0x8130E935 0x0533 +0x8130E936 0x0534 +0x8130E937 0x0535 +0x8130E938 0x0536 +0x8130E939 0x0537 +0x8130EA30 0x0538 +0x8130EA31 0x0539 +0x8130EA32 0x053A +0x8130EA33 0x053B +0x8130EA34 0x053C +0x8130EA35 0x053D +0x8130EA36 0x053E +0x8130EA37 0x053F +0x8130EA38 0x0540 +0x8130EA39 0x0541 +0x8130EB30 0x0542 +0x8130EB31 0x0543 +0x8130EB32 0x0544 +0x8130EB33 0x0545 +0x8130EB34 0x0546 +0x8130EB35 0x0547 +0x8130EB36 0x0548 +0x8130EB37 0x0549 +0x8130EB38 0x054A +0x8130EB39 0x054B +0x8130EC30 0x054C +0x8130EC31 0x054D +0x8130EC32 0x054E +0x8130EC33 0x054F +0x8130EC34 0x0550 +0x8130EC35 0x0551 +0x8130EC36 0x0552 +0x8130EC37 0x0553 +0x8130EC38 0x0554 +0x8130EC39 0x0555 +0x8130ED30 0x0556 +0x8130ED31 0x0557 +0x8130ED32 0x0558 +0x8130ED33 0x0559 +0x8130ED34 0x055A +0x8130ED35 0x055B +0x8130ED36 0x055C +0x8130ED37 0x055D +0x8130ED38 0x055E +0x8130ED39 0x055F +0x8130EE30 0x0560 +0x8130EE31 0x0561 +0x8130EE32 0x0562 +0x8130EE33 0x0563 +0x8130EE34 0x0564 +0x8130EE35 0x0565 +0x8130EE36 0x0566 +0x8130EE37 0x0567 +0x8130EE38 0x0568 +0x8130EE39 0x0569 +0x8130EF30 0x056A +0x8130EF31 0x056B +0x8130EF32 0x056C +0x8130EF33 0x056D +0x8130EF34 0x056E +0x8130EF35 0x056F +0x8130EF36 0x0570 +0x8130EF37 0x0571 +0x8130EF38 0x0572 +0x8130EF39 0x0573 +0x8130F030 0x0574 +0x8130F031 0x0575 +0x8130F032 0x0576 +0x8130F033 0x0577 +0x8130F034 0x0578 +0x8130F035 0x0579 +0x8130F036 0x057A +0x8130F037 0x057B +0x8130F038 0x057C +0x8130F039 0x057D +0x8130F130 0x057E +0x8130F131 0x057F +0x8130F132 0x0580 +0x8130F133 0x0581 +0x8130F134 0x0582 +0x8130F135 0x0583 +0x8130F136 0x0584 +0x8130F137 0x0585 +0x8130F138 0x0586 +0x8130F139 0x0587 +0x8130F230 0x0588 +0x8130F231 0x0589 +0x8130F232 0x058A +0x8130F233 0x058B +0x8130F234 0x058C +0x8130F235 0x058D +0x8130F236 0x058E +0x8130F237 0x058F +0x8130F238 0x0590 +0x8130F239 0x0591 +0x8130F330 0x0592 +0x8130F331 0x0593 +0x8130F332 0x0594 +0x8130F333 0x0595 +0x8130F334 0x0596 +0x8130F335 0x0597 +0x8130F336 0x0598 +0x8130F337 0x0599 +0x8130F338 0x059A +0x8130F339 0x059B +0x8130F430 0x059C +0x8130F431 0x059D +0x8130F432 0x059E +0x8130F433 0x059F +0x8130F434 0x05A0 +0x8130F435 0x05A1 +0x8130F436 0x05A2 +0x8130F437 0x05A3 +0x8130F438 0x05A4 +0x8130F439 0x05A5 +0x8130F530 0x05A6 +0x8130F531 0x05A7 +0x8130F532 0x05A8 +0x8130F533 0x05A9 +0x8130F534 0x05AA +0x8130F535 0x05AB +0x8130F536 0x05AC +0x8130F537 0x05AD +0x8130F538 0x05AE +0x8130F539 0x05AF +0x8130F630 0x05B0 +0x8130F631 0x05B1 +0x8130F632 0x05B2 +0x8130F633 0x05B3 +0x8130F634 0x05B4 +0x8130F635 0x05B5 +0x8130F636 0x05B6 +0x8130F637 0x05B7 +0x8130F638 0x05B8 +0x8130F639 0x05B9 +0x8130F730 0x05BA +0x8130F731 0x05BB +0x8130F732 0x05BC +0x8130F733 0x05BD +0x8130F734 0x05BE +0x8130F735 0x05BF +0x8130F736 0x05C0 +0x8130F737 0x05C1 +0x8130F738 0x05C2 +0x8130F739 0x05C3 +0x8130F830 0x05C4 +0x8130F831 0x05C5 +0x8130F832 0x05C6 +0x8130F833 0x05C7 +0x8130F834 0x05C8 +0x8130F835 0x05C9 +0x8130F836 0x05CA +0x8130F837 0x05CB +0x8130F838 0x05CC +0x8130F839 0x05CD +0x8130F930 0x05CE +0x8130F931 0x05CF +0x8130F932 0x05D0 +0x8130F933 0x05D1 +0x8130F934 0x05D2 +0x8130F935 0x05D3 +0x8130F936 0x05D4 +0x8130F937 0x05D5 +0x8130F938 0x05D6 +0x8130F939 0x05D7 +0x8130FA30 0x05D8 +0x8130FA31 0x05D9 +0x8130FA32 0x05DA +0x8130FA33 0x05DB +0x8130FA34 0x05DC +0x8130FA35 0x05DD +0x8130FA36 0x05DE +0x8130FA37 0x05DF +0x8130FA38 0x05E0 +0x8130FA39 0x05E1 +0x8130FB30 0x05E2 +0x8130FB31 0x05E3 +0x8130FB32 0x05E4 +0x8130FB33 0x05E5 +0x8130FB34 0x05E6 +0x8130FB35 0x05E7 +0x8130FB36 0x05E8 +0x8130FB37 0x05E9 +0x8130FB38 0x05EA +0x8130FB39 0x05EB +0x8130FC30 0x05EC +0x8130FC31 0x05ED +0x8130FC32 0x05EE +0x8130FC33 0x05EF +0x8130FC34 0x05F0 +0x8130FC35 0x05F1 +0x8130FC36 0x05F2 +0x8130FC37 0x05F3 +0x8130FC38 0x05F4 +0x8130FC39 0x05F5 +0x8130FD30 0x05F6 +0x8130FD31 0x05F7 +0x8130FD32 0x05F8 +0x8130FD33 0x05F9 +0x8130FD34 0x05FA +0x8130FD35 0x05FB +0x8130FD36 0x05FC +0x8130FD37 0x05FD +0x8130FD38 0x05FE +0x8130FD39 0x05FF +0x8130FE30 0x0600 +0x8130FE31 0x0601 +0x8130FE32 0x0602 +0x8130FE33 0x0603 +0x8130FE34 0x0604 +0x8130FE35 0x0605 +0x8130FE36 0x0606 +0x8130FE37 0x0607 +0x8130FE38 0x0608 +0x8130FE39 0x0609 +0x81318130 0x060A +0x81318131 0x060B +0x81318132 0x060C +0x81318133 0x060D +0x81318134 0x060E +0x81318135 0x060F +0x81318136 0x0610 +0x81318137 0x0611 +0x81318138 0x0612 +0x81318139 0x0613 +0x81318230 0x0614 +0x81318231 0x0615 +0x81318232 0x0616 +0x81318233 0x0617 +0x81318234 0x0618 +0x81318235 0x0619 +0x81318236 0x061A +0x81318237 0x061B +0x81318238 0x061C +0x81318239 0x061D +0x81318330 0x061E +0x81318331 0x061F +0x81318332 0x0620 +0x81318333 0x0621 +0x81318334 0x0622 +0x81318335 0x0623 +0x81318336 0x0624 +0x81318337 0x0625 +0x81318338 0x0626 +0x81318339 0x0627 +0x81318430 0x0628 +0x81318431 0x0629 +0x81318432 0x062A +0x81318433 0x062B +0x81318434 0x062C +0x81318435 0x062D +0x81318436 0x062E +0x81318437 0x062F +0x81318438 0x0630 +0x81318439 0x0631 +0x81318530 0x0632 +0x81318531 0x0633 +0x81318532 0x0634 +0x81318533 0x0635 +0x81318534 0x0636 +0x81318535 0x0637 +0x81318536 0x0638 +0x81318537 0x0639 +0x81318538 0x063A +0x81318539 0x063B +0x81318630 0x063C +0x81318631 0x063D +0x81318632 0x063E +0x81318633 0x063F +0x81318634 0x0640 +0x81318635 0x0641 +0x81318636 0x0642 +0x81318637 0x0643 +0x81318638 0x0644 +0x81318639 0x0645 +0x81318730 0x0646 +0x81318731 0x0647 +0x81318732 0x0648 +0x81318733 0x0649 +0x81318734 0x064A +0x81318735 0x064B +0x81318736 0x064C +0x81318737 0x064D +0x81318738 0x064E +0x81318739 0x064F +0x81318830 0x0650 +0x81318831 0x0651 +0x81318832 0x0652 +0x81318833 0x0653 +0x81318834 0x0654 +0x81318835 0x0655 +0x81318836 0x0656 +0x81318837 0x0657 +0x81318838 0x0658 +0x81318839 0x0659 +0x81318930 0x065A +0x81318931 0x065B +0x81318932 0x065C +0x81318933 0x065D +0x81318934 0x065E +0x81318935 0x065F +0x81318936 0x0660 +0x81318937 0x0661 +0x81318938 0x0662 +0x81318939 0x0663 +0x81318A30 0x0664 +0x81318A31 0x0665 +0x81318A32 0x0666 +0x81318A33 0x0667 +0x81318A34 0x0668 +0x81318A35 0x0669 +0x81318A36 0x066A +0x81318A37 0x066B +0x81318A38 0x066C +0x81318A39 0x066D +0x81318B30 0x066E +0x81318B31 0x066F +0x81318B32 0x0670 +0x81318B33 0x0671 +0x81318B34 0x0672 +0x81318B35 0x0673 +0x81318B36 0x0674 +0x81318B37 0x0675 +0x81318B38 0x0676 +0x81318B39 0x0677 +0x81318C30 0x0678 +0x81318C31 0x0679 +0x81318C32 0x067A +0x81318C33 0x067B +0x81318C34 0x067C +0x81318C35 0x067D +0x81318C36 0x067E +0x81318C37 0x067F +0x81318C38 0x0680 +0x81318C39 0x0681 +0x81318D30 0x0682 +0x81318D31 0x0683 +0x81318D32 0x0684 +0x81318D33 0x0685 +0x81318D34 0x0686 +0x81318D35 0x0687 +0x81318D36 0x0688 +0x81318D37 0x0689 +0x81318D38 0x068A +0x81318D39 0x068B +0x81318E30 0x068C +0x81318E31 0x068D +0x81318E32 0x068E +0x81318E33 0x068F +0x81318E34 0x0690 +0x81318E35 0x0691 +0x81318E36 0x0692 +0x81318E37 0x0693 +0x81318E38 0x0694 +0x81318E39 0x0695 +0x81318F30 0x0696 +0x81318F31 0x0697 +0x81318F32 0x0698 +0x81318F33 0x0699 +0x81318F34 0x069A +0x81318F35 0x069B +0x81318F36 0x069C +0x81318F37 0x069D +0x81318F38 0x069E +0x81318F39 0x069F +0x81319030 0x06A0 +0x81319031 0x06A1 +0x81319032 0x06A2 +0x81319033 0x06A3 +0x81319034 0x06A4 +0x81319035 0x06A5 +0x81319036 0x06A6 +0x81319037 0x06A7 +0x81319038 0x06A8 +0x81319039 0x06A9 +0x81319130 0x06AA +0x81319131 0x06AB +0x81319132 0x06AC +0x81319133 0x06AD +0x81319134 0x06AE +0x81319135 0x06AF +0x81319136 0x06B0 +0x81319137 0x06B1 +0x81319138 0x06B2 +0x81319139 0x06B3 +0x81319230 0x06B4 +0x81319231 0x06B5 +0x81319232 0x06B6 +0x81319233 0x06B7 +0x81319234 0x06B8 +0x81319235 0x06B9 +0x81319236 0x06BA +0x81319237 0x06BB +0x81319238 0x06BC +0x81319239 0x06BD +0x81319330 0x06BE +0x81319331 0x06BF +0x81319332 0x06C0 +0x81319333 0x06C1 +0x81319334 0x06C2 +0x81319335 0x06C3 +0x81319336 0x06C4 +0x81319337 0x06C5 +0x81319338 0x06C6 +0x81319339 0x06C7 +0x81319430 0x06C8 +0x81319431 0x06C9 +0x81319432 0x06CA +0x81319433 0x06CB +0x81319434 0x06CC +0x81319435 0x06CD +0x81319436 0x06CE +0x81319437 0x06CF +0x81319438 0x06D0 +0x81319439 0x06D1 +0x81319530 0x06D2 +0x81319531 0x06D3 +0x81319532 0x06D4 +0x81319533 0x06D5 +0x81319534 0x06D6 +0x81319535 0x06D7 +0x81319536 0x06D8 +0x81319537 0x06D9 +0x81319538 0x06DA +0x81319539 0x06DB +0x81319630 0x06DC +0x81319631 0x06DD +0x81319632 0x06DE +0x81319633 0x06DF +0x81319634 0x06E0 +0x81319635 0x06E1 +0x81319636 0x06E2 +0x81319637 0x06E3 +0x81319638 0x06E4 +0x81319639 0x06E5 +0x81319730 0x06E6 +0x81319731 0x06E7 +0x81319732 0x06E8 +0x81319733 0x06E9 +0x81319734 0x06EA +0x81319735 0x06EB +0x81319736 0x06EC +0x81319737 0x06ED +0x81319738 0x06EE +0x81319739 0x06EF +0x81319830 0x06F0 +0x81319831 0x06F1 +0x81319832 0x06F2 +0x81319833 0x06F3 +0x81319834 0x06F4 +0x81319835 0x06F5 +0x81319836 0x06F6 +0x81319837 0x06F7 +0x81319838 0x06F8 +0x81319839 0x06F9 +0x81319930 0x06FA +0x81319931 0x06FB +0x81319932 0x06FC +0x81319933 0x06FD +0x81319934 0x06FE +0x81319935 0x06FF +0x81319936 0x0700 +0x81319937 0x0701 +0x81319938 0x0702 +0x81319939 0x0703 +0x81319A30 0x0704 +0x81319A31 0x0705 +0x81319A32 0x0706 +0x81319A33 0x0707 +0x81319A34 0x0708 +0x81319A35 0x0709 +0x81319A36 0x070A +0x81319A37 0x070B +0x81319A38 0x070C +0x81319A39 0x070D +0x81319B30 0x070E +0x81319B31 0x070F +0x81319B32 0x0710 +0x81319B33 0x0711 +0x81319B34 0x0712 +0x81319B35 0x0713 +0x81319B36 0x0714 +0x81319B37 0x0715 +0x81319B38 0x0716 +0x81319B39 0x0717 +0x81319C30 0x0718 +0x81319C31 0x0719 +0x81319C32 0x071A +0x81319C33 0x071B +0x81319C34 0x071C +0x81319C35 0x071D +0x81319C36 0x071E +0x81319C37 0x071F +0x81319C38 0x0720 +0x81319C39 0x0721 +0x81319D30 0x0722 +0x81319D31 0x0723 +0x81319D32 0x0724 +0x81319D33 0x0725 +0x81319D34 0x0726 +0x81319D35 0x0727 +0x81319D36 0x0728 +0x81319D37 0x0729 +0x81319D38 0x072A +0x81319D39 0x072B +0x81319E30 0x072C +0x81319E31 0x072D +0x81319E32 0x072E +0x81319E33 0x072F +0x81319E34 0x0730 +0x81319E35 0x0731 +0x81319E36 0x0732 +0x81319E37 0x0733 +0x81319E38 0x0734 +0x81319E39 0x0735 +0x81319F30 0x0736 +0x81319F31 0x0737 +0x81319F32 0x0738 +0x81319F33 0x0739 +0x81319F34 0x073A +0x81319F35 0x073B +0x81319F36 0x073C +0x81319F37 0x073D +0x81319F38 0x073E +0x81319F39 0x073F +0x8131A030 0x0740 +0x8131A031 0x0741 +0x8131A032 0x0742 +0x8131A033 0x0743 +0x8131A034 0x0744 +0x8131A035 0x0745 +0x8131A036 0x0746 +0x8131A037 0x0747 +0x8131A038 0x0748 +0x8131A039 0x0749 +0x8131A130 0x074A +0x8131A131 0x074B +0x8131A132 0x074C +0x8131A133 0x074D +0x8131A134 0x074E +0x8131A135 0x074F +0x8131A136 0x0750 +0x8131A137 0x0751 +0x8131A138 0x0752 +0x8131A139 0x0753 +0x8131A230 0x0754 +0x8131A231 0x0755 +0x8131A232 0x0756 +0x8131A233 0x0757 +0x8131A234 0x0758 +0x8131A235 0x0759 +0x8131A236 0x075A +0x8131A237 0x075B +0x8131A238 0x075C +0x8131A239 0x075D +0x8131A330 0x075E +0x8131A331 0x075F +0x8131A332 0x0760 +0x8131A333 0x0761 +0x8131A334 0x0762 +0x8131A335 0x0763 +0x8131A336 0x0764 +0x8131A337 0x0765 +0x8131A338 0x0766 +0x8131A339 0x0767 +0x8131A430 0x0768 +0x8131A431 0x0769 +0x8131A432 0x076A +0x8131A433 0x076B +0x8131A434 0x076C +0x8131A435 0x076D +0x8131A436 0x076E +0x8131A437 0x076F +0x8131A438 0x0770 +0x8131A439 0x0771 +0x8131A530 0x0772 +0x8131A531 0x0773 +0x8131A532 0x0774 +0x8131A533 0x0775 +0x8131A534 0x0776 +0x8131A535 0x0777 +0x8131A536 0x0778 +0x8131A537 0x0779 +0x8131A538 0x077A +0x8131A539 0x077B +0x8131A630 0x077C +0x8131A631 0x077D +0x8131A632 0x077E +0x8131A633 0x077F +0x8131A634 0x0780 +0x8131A635 0x0781 +0x8131A636 0x0782 +0x8131A637 0x0783 +0x8131A638 0x0784 +0x8131A639 0x0785 +0x8131A730 0x0786 +0x8131A731 0x0787 +0x8131A732 0x0788 +0x8131A733 0x0789 +0x8131A734 0x078A +0x8131A735 0x078B +0x8131A736 0x078C +0x8131A737 0x078D +0x8131A738 0x078E +0x8131A739 0x078F +0x8131A830 0x0790 +0x8131A831 0x0791 +0x8131A832 0x0792 +0x8131A833 0x0793 +0x8131A834 0x0794 +0x8131A835 0x0795 +0x8131A836 0x0796 +0x8131A837 0x0797 +0x8131A838 0x0798 +0x8131A839 0x0799 +0x8131A930 0x079A +0x8131A931 0x079B +0x8131A932 0x079C +0x8131A933 0x079D +0x8131A934 0x079E +0x8131A935 0x079F +0x8131A936 0x07A0 +0x8131A937 0x07A1 +0x8131A938 0x07A2 +0x8131A939 0x07A3 +0x8131AA30 0x07A4 +0x8131AA31 0x07A5 +0x8131AA32 0x07A6 +0x8131AA33 0x07A7 +0x8131AA34 0x07A8 +0x8131AA35 0x07A9 +0x8131AA36 0x07AA +0x8131AA37 0x07AB +0x8131AA38 0x07AC +0x8131AA39 0x07AD +0x8131AB30 0x07AE +0x8131AB31 0x07AF +0x8131AB32 0x07B0 +0x8131AB33 0x07B1 +0x8131AB34 0x07B2 +0x8131AB35 0x07B3 +0x8131AB36 0x07B4 +0x8131AB37 0x07B5 +0x8131AB38 0x07B6 +0x8131AB39 0x07B7 +0x8131AC30 0x07B8 +0x8131AC31 0x07B9 +0x8131AC32 0x07BA +0x8131AC33 0x07BB +0x8131AC34 0x07BC +0x8131AC35 0x07BD +0x8131AC36 0x07BE +0x8131AC37 0x07BF +0x8131AC38 0x07C0 +0x8131AC39 0x07C1 +0x8131AD30 0x07C2 +0x8131AD31 0x07C3 +0x8131AD32 0x07C4 +0x8131AD33 0x07C5 +0x8131AD34 0x07C6 +0x8131AD35 0x07C7 +0x8131AD36 0x07C8 +0x8131AD37 0x07C9 +0x8131AD38 0x07CA +0x8131AD39 0x07CB +0x8131AE30 0x07CC +0x8131AE31 0x07CD +0x8131AE32 0x07CE +0x8131AE33 0x07CF +0x8131AE34 0x07D0 +0x8131AE35 0x07D1 +0x8131AE36 0x07D2 +0x8131AE37 0x07D3 +0x8131AE38 0x07D4 +0x8131AE39 0x07D5 +0x8131AF30 0x07D6 +0x8131AF31 0x07D7 +0x8131AF32 0x07D8 +0x8131AF33 0x07D9 +0x8131AF34 0x07DA +0x8131AF35 0x07DB +0x8131AF36 0x07DC +0x8131AF37 0x07DD +0x8131AF38 0x07DE +0x8131AF39 0x07DF +0x8131B030 0x07E0 +0x8131B031 0x07E1 +0x8131B032 0x07E2 +0x8131B033 0x07E3 +0x8131B034 0x07E4 +0x8131B035 0x07E5 +0x8131B036 0x07E6 +0x8131B037 0x07E7 +0x8131B038 0x07E8 +0x8131B039 0x07E9 +0x8131B130 0x07EA +0x8131B131 0x07EB +0x8131B132 0x07EC +0x8131B133 0x07ED +0x8131B134 0x07EE +0x8131B135 0x07EF +0x8131B136 0x07F0 +0x8131B137 0x07F1 +0x8131B138 0x07F2 +0x8131B139 0x07F3 +0x8131B230 0x07F4 +0x8131B231 0x07F5 +0x8131B232 0x07F6 +0x8131B233 0x07F7 +0x8131B234 0x07F8 +0x8131B235 0x07F9 +0x8131B236 0x07FA +0x8131B237 0x07FB +0x8131B238 0x07FC +0x8131B239 0x07FD +0x8131B330 0x07FE +0x8131B331 0x07FF +0x8131B332 0x0800 +0x8131B333 0x0801 +0x8131B334 0x0802 +0x8131B335 0x0803 +0x8131B336 0x0804 +0x8131B337 0x0805 +0x8131B338 0x0806 +0x8131B339 0x0807 +0x8131B430 0x0808 +0x8131B431 0x0809 +0x8131B432 0x080A +0x8131B433 0x080B +0x8131B434 0x080C +0x8131B435 0x080D +0x8131B436 0x080E +0x8131B437 0x080F +0x8131B438 0x0810 +0x8131B439 0x0811 +0x8131B530 0x0812 +0x8131B531 0x0813 +0x8131B532 0x0814 +0x8131B533 0x0815 +0x8131B534 0x0816 +0x8131B535 0x0817 +0x8131B536 0x0818 +0x8131B537 0x0819 +0x8131B538 0x081A +0x8131B539 0x081B +0x8131B630 0x081C +0x8131B631 0x081D +0x8131B632 0x081E +0x8131B633 0x081F +0x8131B634 0x0820 +0x8131B635 0x0821 +0x8131B636 0x0822 +0x8131B637 0x0823 +0x8131B638 0x0824 +0x8131B639 0x0825 +0x8131B730 0x0826 +0x8131B731 0x0827 +0x8131B732 0x0828 +0x8131B733 0x0829 +0x8131B734 0x082A +0x8131B735 0x082B +0x8131B736 0x082C +0x8131B737 0x082D +0x8131B738 0x082E +0x8131B739 0x082F +0x8131B830 0x0830 +0x8131B831 0x0831 +0x8131B832 0x0832 +0x8131B833 0x0833 +0x8131B834 0x0834 +0x8131B835 0x0835 +0x8131B836 0x0836 +0x8131B837 0x0837 +0x8131B838 0x0838 +0x8131B839 0x0839 +0x8131B930 0x083A +0x8131B931 0x083B +0x8131B932 0x083C +0x8131B933 0x083D +0x8131B934 0x083E +0x8131B935 0x083F +0x8131B936 0x0840 +0x8131B937 0x0841 +0x8131B938 0x0842 +0x8131B939 0x0843 +0x8131BA30 0x0844 +0x8131BA31 0x0845 +0x8131BA32 0x0846 +0x8131BA33 0x0847 +0x8131BA34 0x0848 +0x8131BA35 0x0849 +0x8131BA36 0x084A +0x8131BA37 0x084B +0x8131BA38 0x084C +0x8131BA39 0x084D +0x8131BB30 0x084E +0x8131BB31 0x084F +0x8131BB32 0x0850 +0x8131BB33 0x0851 +0x8131BB34 0x0852 +0x8131BB35 0x0853 +0x8131BB36 0x0854 +0x8131BB37 0x0855 +0x8131BB38 0x0856 +0x8131BB39 0x0857 +0x8131BC30 0x0858 +0x8131BC31 0x0859 +0x8131BC32 0x085A +0x8131BC33 0x085B +0x8131BC34 0x085C +0x8131BC35 0x085D +0x8131BC36 0x085E +0x8131BC37 0x085F +0x8131BC38 0x0860 +0x8131BC39 0x0861 +0x8131BD30 0x0862 +0x8131BD31 0x0863 +0x8131BD32 0x0864 +0x8131BD33 0x0865 +0x8131BD34 0x0866 +0x8131BD35 0x0867 +0x8131BD36 0x0868 +0x8131BD37 0x0869 +0x8131BD38 0x086A +0x8131BD39 0x086B +0x8131BE30 0x086C +0x8131BE31 0x086D +0x8131BE32 0x086E +0x8131BE33 0x086F +0x8131BE34 0x0870 +0x8131BE35 0x0871 +0x8131BE36 0x0872 +0x8131BE37 0x0873 +0x8131BE38 0x0874 +0x8131BE39 0x0875 +0x8131BF30 0x0876 +0x8131BF31 0x0877 +0x8131BF32 0x0878 +0x8131BF33 0x0879 +0x8131BF34 0x087A +0x8131BF35 0x087B +0x8131BF36 0x087C +0x8131BF37 0x087D +0x8131BF38 0x087E +0x8131BF39 0x087F +0x8131C030 0x0880 +0x8131C031 0x0881 +0x8131C032 0x0882 +0x8131C033 0x0883 +0x8131C034 0x0884 +0x8131C035 0x0885 +0x8131C036 0x0886 +0x8131C037 0x0887 +0x8131C038 0x0888 +0x8131C039 0x0889 +0x8131C130 0x088A +0x8131C131 0x088B +0x8131C132 0x088C +0x8131C133 0x088D +0x8131C134 0x088E +0x8131C135 0x088F +0x8131C136 0x0890 +0x8131C137 0x0891 +0x8131C138 0x0892 +0x8131C139 0x0893 +0x8131C230 0x0894 +0x8131C231 0x0895 +0x8131C232 0x0896 +0x8131C233 0x0897 +0x8131C234 0x0898 +0x8131C235 0x0899 +0x8131C236 0x089A +0x8131C237 0x089B +0x8131C238 0x089C +0x8131C239 0x089D +0x8131C330 0x089E +0x8131C331 0x089F +0x8131C332 0x08A0 +0x8131C333 0x08A1 +0x8131C334 0x08A2 +0x8131C335 0x08A3 +0x8131C336 0x08A4 +0x8131C337 0x08A5 +0x8131C338 0x08A6 +0x8131C339 0x08A7 +0x8131C430 0x08A8 +0x8131C431 0x08A9 +0x8131C432 0x08AA +0x8131C433 0x08AB +0x8131C434 0x08AC +0x8131C435 0x08AD +0x8131C436 0x08AE +0x8131C437 0x08AF +0x8131C438 0x08B0 +0x8131C439 0x08B1 +0x8131C530 0x08B2 +0x8131C531 0x08B3 +0x8131C532 0x08B4 +0x8131C533 0x08B5 +0x8131C534 0x08B6 +0x8131C535 0x08B7 +0x8131C536 0x08B8 +0x8131C537 0x08B9 +0x8131C538 0x08BA +0x8131C539 0x08BB +0x8131C630 0x08BC +0x8131C631 0x08BD +0x8131C632 0x08BE +0x8131C633 0x08BF +0x8131C634 0x08C0 +0x8131C635 0x08C1 +0x8131C636 0x08C2 +0x8131C637 0x08C3 +0x8131C638 0x08C4 +0x8131C639 0x08C5 +0x8131C730 0x08C6 +0x8131C731 0x08C7 +0x8131C732 0x08C8 +0x8131C733 0x08C9 +0x8131C734 0x08CA +0x8131C735 0x08CB +0x8131C736 0x08CC +0x8131C737 0x08CD +0x8131C738 0x08CE +0x8131C739 0x08CF +0x8131C830 0x08D0 +0x8131C831 0x08D1 +0x8131C832 0x08D2 +0x8131C833 0x08D3 +0x8131C834 0x08D4 +0x8131C835 0x08D5 +0x8131C836 0x08D6 +0x8131C837 0x08D7 +0x8131C838 0x08D8 +0x8131C839 0x08D9 +0x8131C930 0x08DA +0x8131C931 0x08DB +0x8131C932 0x08DC +0x8131C933 0x08DD +0x8131C934 0x08DE +0x8131C935 0x08DF +0x8131C936 0x08E0 +0x8131C937 0x08E1 +0x8131C938 0x08E2 +0x8131C939 0x08E3 +0x8131CA30 0x08E4 +0x8131CA31 0x08E5 +0x8131CA32 0x08E6 +0x8131CA33 0x08E7 +0x8131CA34 0x08E8 +0x8131CA35 0x08E9 +0x8131CA36 0x08EA +0x8131CA37 0x08EB +0x8131CA38 0x08EC +0x8131CA39 0x08ED +0x8131CB30 0x08EE +0x8131CB31 0x08EF +0x8131CB32 0x08F0 +0x8131CB33 0x08F1 +0x8131CB34 0x08F2 +0x8131CB35 0x08F3 +0x8131CB36 0x08F4 +0x8131CB37 0x08F5 +0x8131CB38 0x08F6 +0x8131CB39 0x08F7 +0x8131CC30 0x08F8 +0x8131CC31 0x08F9 +0x8131CC32 0x08FA +0x8131CC33 0x08FB +0x8131CC34 0x08FC +0x8131CC35 0x08FD +0x8131CC36 0x08FE +0x8131CC37 0x08FF +0x8131CC38 0x0900 +0x8131CC39 0x0901 +0x8131CD30 0x0902 +0x8131CD31 0x0903 +0x8131CD32 0x0904 +0x8131CD33 0x0905 +0x8131CD34 0x0906 +0x8131CD35 0x0907 +0x8131CD36 0x0908 +0x8131CD37 0x0909 +0x8131CD38 0x090A +0x8131CD39 0x090B +0x8131CE30 0x090C +0x8131CE31 0x090D +0x8131CE32 0x090E +0x8131CE33 0x090F +0x8131CE34 0x0910 +0x8131CE35 0x0911 +0x8131CE36 0x0912 +0x8131CE37 0x0913 +0x8131CE38 0x0914 +0x8131CE39 0x0915 +0x8131CF30 0x0916 +0x8131CF31 0x0917 +0x8131CF32 0x0918 +0x8131CF33 0x0919 +0x8131CF34 0x091A +0x8131CF35 0x091B +0x8131CF36 0x091C +0x8131CF37 0x091D +0x8131CF38 0x091E +0x8131CF39 0x091F +0x8131D030 0x0920 +0x8131D031 0x0921 +0x8131D032 0x0922 +0x8131D033 0x0923 +0x8131D034 0x0924 +0x8131D035 0x0925 +0x8131D036 0x0926 +0x8131D037 0x0927 +0x8131D038 0x0928 +0x8131D039 0x0929 +0x8131D130 0x092A +0x8131D131 0x092B +0x8131D132 0x092C +0x8131D133 0x092D +0x8131D134 0x092E +0x8131D135 0x092F +0x8131D136 0x0930 +0x8131D137 0x0931 +0x8131D138 0x0932 +0x8131D139 0x0933 +0x8131D230 0x0934 +0x8131D231 0x0935 +0x8131D232 0x0936 +0x8131D233 0x0937 +0x8131D234 0x0938 +0x8131D235 0x0939 +0x8131D236 0x093A +0x8131D237 0x093B +0x8131D238 0x093C +0x8131D239 0x093D +0x8131D330 0x093E +0x8131D331 0x093F +0x8131D332 0x0940 +0x8131D333 0x0941 +0x8131D334 0x0942 +0x8131D335 0x0943 +0x8131D336 0x0944 +0x8131D337 0x0945 +0x8131D338 0x0946 +0x8131D339 0x0947 +0x8131D430 0x0948 +0x8131D431 0x0949 +0x8131D432 0x094A +0x8131D433 0x094B +0x8131D434 0x094C +0x8131D435 0x094D +0x8131D436 0x094E +0x8131D437 0x094F +0x8131D438 0x0950 +0x8131D439 0x0951 +0x8131D530 0x0952 +0x8131D531 0x0953 +0x8131D532 0x0954 +0x8131D533 0x0955 +0x8131D534 0x0956 +0x8131D535 0x0957 +0x8131D536 0x0958 +0x8131D537 0x0959 +0x8131D538 0x095A +0x8131D539 0x095B +0x8131D630 0x095C +0x8131D631 0x095D +0x8131D632 0x095E +0x8131D633 0x095F +0x8131D634 0x0960 +0x8131D635 0x0961 +0x8131D636 0x0962 +0x8131D637 0x0963 +0x8131D638 0x0964 +0x8131D639 0x0965 +0x8131D730 0x0966 +0x8131D731 0x0967 +0x8131D732 0x0968 +0x8131D733 0x0969 +0x8131D734 0x096A +0x8131D735 0x096B +0x8131D736 0x096C +0x8131D737 0x096D +0x8131D738 0x096E +0x8131D739 0x096F +0x8131D830 0x0970 +0x8131D831 0x0971 +0x8131D832 0x0972 +0x8131D833 0x0973 +0x8131D834 0x0974 +0x8131D835 0x0975 +0x8131D836 0x0976 +0x8131D837 0x0977 +0x8131D838 0x0978 +0x8131D839 0x0979 +0x8131D930 0x097A +0x8131D931 0x097B +0x8131D932 0x097C +0x8131D933 0x097D +0x8131D934 0x097E +0x8131D935 0x097F +0x8131D936 0x0980 +0x8131D937 0x0981 +0x8131D938 0x0982 +0x8131D939 0x0983 +0x8131DA30 0x0984 +0x8131DA31 0x0985 +0x8131DA32 0x0986 +0x8131DA33 0x0987 +0x8131DA34 0x0988 +0x8131DA35 0x0989 +0x8131DA36 0x098A +0x8131DA37 0x098B +0x8131DA38 0x098C +0x8131DA39 0x098D +0x8131DB30 0x098E +0x8131DB31 0x098F +0x8131DB32 0x0990 +0x8131DB33 0x0991 +0x8131DB34 0x0992 +0x8131DB35 0x0993 +0x8131DB36 0x0994 +0x8131DB37 0x0995 +0x8131DB38 0x0996 +0x8131DB39 0x0997 +0x8131DC30 0x0998 +0x8131DC31 0x0999 +0x8131DC32 0x099A +0x8131DC33 0x099B +0x8131DC34 0x099C +0x8131DC35 0x099D +0x8131DC36 0x099E +0x8131DC37 0x099F +0x8131DC38 0x09A0 +0x8131DC39 0x09A1 +0x8131DD30 0x09A2 +0x8131DD31 0x09A3 +0x8131DD32 0x09A4 +0x8131DD33 0x09A5 +0x8131DD34 0x09A6 +0x8131DD35 0x09A7 +0x8131DD36 0x09A8 +0x8131DD37 0x09A9 +0x8131DD38 0x09AA +0x8131DD39 0x09AB +0x8131DE30 0x09AC +0x8131DE31 0x09AD +0x8131DE32 0x09AE +0x8131DE33 0x09AF +0x8131DE34 0x09B0 +0x8131DE35 0x09B1 +0x8131DE36 0x09B2 +0x8131DE37 0x09B3 +0x8131DE38 0x09B4 +0x8131DE39 0x09B5 +0x8131DF30 0x09B6 +0x8131DF31 0x09B7 +0x8131DF32 0x09B8 +0x8131DF33 0x09B9 +0x8131DF34 0x09BA +0x8131DF35 0x09BB +0x8131DF36 0x09BC +0x8131DF37 0x09BD +0x8131DF38 0x09BE +0x8131DF39 0x09BF +0x8131E030 0x09C0 +0x8131E031 0x09C1 +0x8131E032 0x09C2 +0x8131E033 0x09C3 +0x8131E034 0x09C4 +0x8131E035 0x09C5 +0x8131E036 0x09C6 +0x8131E037 0x09C7 +0x8131E038 0x09C8 +0x8131E039 0x09C9 +0x8131E130 0x09CA +0x8131E131 0x09CB +0x8131E132 0x09CC +0x8131E133 0x09CD +0x8131E134 0x09CE +0x8131E135 0x09CF +0x8131E136 0x09D0 +0x8131E137 0x09D1 +0x8131E138 0x09D2 +0x8131E139 0x09D3 +0x8131E230 0x09D4 +0x8131E231 0x09D5 +0x8131E232 0x09D6 +0x8131E233 0x09D7 +0x8131E234 0x09D8 +0x8131E235 0x09D9 +0x8131E236 0x09DA +0x8131E237 0x09DB +0x8131E238 0x09DC +0x8131E239 0x09DD +0x8131E330 0x09DE +0x8131E331 0x09DF +0x8131E332 0x09E0 +0x8131E333 0x09E1 +0x8131E334 0x09E2 +0x8131E335 0x09E3 +0x8131E336 0x09E4 +0x8131E337 0x09E5 +0x8131E338 0x09E6 +0x8131E339 0x09E7 +0x8131E430 0x09E8 +0x8131E431 0x09E9 +0x8131E432 0x09EA +0x8131E433 0x09EB +0x8131E434 0x09EC +0x8131E435 0x09ED +0x8131E436 0x09EE +0x8131E437 0x09EF +0x8131E438 0x09F0 +0x8131E439 0x09F1 +0x8131E530 0x09F2 +0x8131E531 0x09F3 +0x8131E532 0x09F4 +0x8131E533 0x09F5 +0x8131E534 0x09F6 +0x8131E535 0x09F7 +0x8131E536 0x09F8 +0x8131E537 0x09F9 +0x8131E538 0x09FA +0x8131E539 0x09FB +0x8131E630 0x09FC +0x8131E631 0x09FD +0x8131E632 0x09FE +0x8131E633 0x09FF +0x8131E634 0x0A00 +0x8131E635 0x0A01 +0x8131E636 0x0A02 +0x8131E637 0x0A03 +0x8131E638 0x0A04 +0x8131E639 0x0A05 +0x8131E730 0x0A06 +0x8131E731 0x0A07 +0x8131E732 0x0A08 +0x8131E733 0x0A09 +0x8131E734 0x0A0A +0x8131E735 0x0A0B +0x8131E736 0x0A0C +0x8131E737 0x0A0D +0x8131E738 0x0A0E +0x8131E739 0x0A0F +0x8131E830 0x0A10 +0x8131E831 0x0A11 +0x8131E832 0x0A12 +0x8131E833 0x0A13 +0x8131E834 0x0A14 +0x8131E835 0x0A15 +0x8131E836 0x0A16 +0x8131E837 0x0A17 +0x8131E838 0x0A18 +0x8131E839 0x0A19 +0x8131E930 0x0A1A +0x8131E931 0x0A1B +0x8131E932 0x0A1C +0x8131E933 0x0A1D +0x8131E934 0x0A1E +0x8131E935 0x0A1F +0x8131E936 0x0A20 +0x8131E937 0x0A21 +0x8131E938 0x0A22 +0x8131E939 0x0A23 +0x8131EA30 0x0A24 +0x8131EA31 0x0A25 +0x8131EA32 0x0A26 +0x8131EA33 0x0A27 +0x8131EA34 0x0A28 +0x8131EA35 0x0A29 +0x8131EA36 0x0A2A +0x8131EA37 0x0A2B +0x8131EA38 0x0A2C +0x8131EA39 0x0A2D +0x8131EB30 0x0A2E +0x8131EB31 0x0A2F +0x8131EB32 0x0A30 +0x8131EB33 0x0A31 +0x8131EB34 0x0A32 +0x8131EB35 0x0A33 +0x8131EB36 0x0A34 +0x8131EB37 0x0A35 +0x8131EB38 0x0A36 +0x8131EB39 0x0A37 +0x8131EC30 0x0A38 +0x8131EC31 0x0A39 +0x8131EC32 0x0A3A +0x8131EC33 0x0A3B +0x8131EC34 0x0A3C +0x8131EC35 0x0A3D +0x8131EC36 0x0A3E +0x8131EC37 0x0A3F +0x8131EC38 0x0A40 +0x8131EC39 0x0A41 +0x8131ED30 0x0A42 +0x8131ED31 0x0A43 +0x8131ED32 0x0A44 +0x8131ED33 0x0A45 +0x8131ED34 0x0A46 +0x8131ED35 0x0A47 +0x8131ED36 0x0A48 +0x8131ED37 0x0A49 +0x8131ED38 0x0A4A +0x8131ED39 0x0A4B +0x8131EE30 0x0A4C +0x8131EE31 0x0A4D +0x8131EE32 0x0A4E +0x8131EE33 0x0A4F +0x8131EE34 0x0A50 +0x8131EE35 0x0A51 +0x8131EE36 0x0A52 +0x8131EE37 0x0A53 +0x8131EE38 0x0A54 +0x8131EE39 0x0A55 +0x8131EF30 0x0A56 +0x8131EF31 0x0A57 +0x8131EF32 0x0A58 +0x8131EF33 0x0A59 +0x8131EF34 0x0A5A +0x8131EF35 0x0A5B +0x8131EF36 0x0A5C +0x8131EF37 0x0A5D +0x8131EF38 0x0A5E +0x8131EF39 0x0A5F +0x8131F030 0x0A60 +0x8131F031 0x0A61 +0x8131F032 0x0A62 +0x8131F033 0x0A63 +0x8131F034 0x0A64 +0x8131F035 0x0A65 +0x8131F036 0x0A66 +0x8131F037 0x0A67 +0x8131F038 0x0A68 +0x8131F039 0x0A69 +0x8131F130 0x0A6A +0x8131F131 0x0A6B +0x8131F132 0x0A6C +0x8131F133 0x0A6D +0x8131F134 0x0A6E +0x8131F135 0x0A6F +0x8131F136 0x0A70 +0x8131F137 0x0A71 +0x8131F138 0x0A72 +0x8131F139 0x0A73 +0x8131F230 0x0A74 +0x8131F231 0x0A75 +0x8131F232 0x0A76 +0x8131F233 0x0A77 +0x8131F234 0x0A78 +0x8131F235 0x0A79 +0x8131F236 0x0A7A +0x8131F237 0x0A7B +0x8131F238 0x0A7C +0x8131F239 0x0A7D +0x8131F330 0x0A7E +0x8131F331 0x0A7F +0x8131F332 0x0A80 +0x8131F333 0x0A81 +0x8131F334 0x0A82 +0x8131F335 0x0A83 +0x8131F336 0x0A84 +0x8131F337 0x0A85 +0x8131F338 0x0A86 +0x8131F339 0x0A87 +0x8131F430 0x0A88 +0x8131F431 0x0A89 +0x8131F432 0x0A8A +0x8131F433 0x0A8B +0x8131F434 0x0A8C +0x8131F435 0x0A8D +0x8131F436 0x0A8E +0x8131F437 0x0A8F +0x8131F438 0x0A90 +0x8131F439 0x0A91 +0x8131F530 0x0A92 +0x8131F531 0x0A93 +0x8131F532 0x0A94 +0x8131F533 0x0A95 +0x8131F534 0x0A96 +0x8131F535 0x0A97 +0x8131F536 0x0A98 +0x8131F537 0x0A99 +0x8131F538 0x0A9A +0x8131F539 0x0A9B +0x8131F630 0x0A9C +0x8131F631 0x0A9D +0x8131F632 0x0A9E +0x8131F633 0x0A9F +0x8131F634 0x0AA0 +0x8131F635 0x0AA1 +0x8131F636 0x0AA2 +0x8131F637 0x0AA3 +0x8131F638 0x0AA4 +0x8131F639 0x0AA5 +0x8131F730 0x0AA6 +0x8131F731 0x0AA7 +0x8131F732 0x0AA8 +0x8131F733 0x0AA9 +0x8131F734 0x0AAA +0x8131F735 0x0AAB +0x8131F736 0x0AAC +0x8131F737 0x0AAD +0x8131F738 0x0AAE +0x8131F739 0x0AAF +0x8131F830 0x0AB0 +0x8131F831 0x0AB1 +0x8131F832 0x0AB2 +0x8131F833 0x0AB3 +0x8131F834 0x0AB4 +0x8131F835 0x0AB5 +0x8131F836 0x0AB6 +0x8131F837 0x0AB7 +0x8131F838 0x0AB8 +0x8131F839 0x0AB9 +0x8131F930 0x0ABA +0x8131F931 0x0ABB +0x8131F932 0x0ABC +0x8131F933 0x0ABD +0x8131F934 0x0ABE +0x8131F935 0x0ABF +0x8131F936 0x0AC0 +0x8131F937 0x0AC1 +0x8131F938 0x0AC2 +0x8131F939 0x0AC3 +0x8131FA30 0x0AC4 +0x8131FA31 0x0AC5 +0x8131FA32 0x0AC6 +0x8131FA33 0x0AC7 +0x8131FA34 0x0AC8 +0x8131FA35 0x0AC9 +0x8131FA36 0x0ACA +0x8131FA37 0x0ACB +0x8131FA38 0x0ACC +0x8131FA39 0x0ACD +0x8131FB30 0x0ACE +0x8131FB31 0x0ACF +0x8131FB32 0x0AD0 +0x8131FB33 0x0AD1 +0x8131FB34 0x0AD2 +0x8131FB35 0x0AD3 +0x8131FB36 0x0AD4 +0x8131FB37 0x0AD5 +0x8131FB38 0x0AD6 +0x8131FB39 0x0AD7 +0x8131FC30 0x0AD8 +0x8131FC31 0x0AD9 +0x8131FC32 0x0ADA +0x8131FC33 0x0ADB +0x8131FC34 0x0ADC +0x8131FC35 0x0ADD +0x8131FC36 0x0ADE +0x8131FC37 0x0ADF +0x8131FC38 0x0AE0 +0x8131FC39 0x0AE1 +0x8131FD30 0x0AE2 +0x8131FD31 0x0AE3 +0x8131FD32 0x0AE4 +0x8131FD33 0x0AE5 +0x8131FD34 0x0AE6 +0x8131FD35 0x0AE7 +0x8131FD36 0x0AE8 +0x8131FD37 0x0AE9 +0x8131FD38 0x0AEA +0x8131FD39 0x0AEB +0x8131FE30 0x0AEC +0x8131FE31 0x0AED +0x8131FE32 0x0AEE +0x8131FE33 0x0AEF +0x8131FE34 0x0AF0 +0x8131FE35 0x0AF1 +0x8131FE36 0x0AF2 +0x8131FE37 0x0AF3 +0x8131FE38 0x0AF4 +0x8131FE39 0x0AF5 +0x81328130 0x0AF6 +0x81328131 0x0AF7 +0x81328132 0x0AF8 +0x81328133 0x0AF9 +0x81328134 0x0AFA +0x81328135 0x0AFB +0x81328136 0x0AFC +0x81328137 0x0AFD +0x81328138 0x0AFE +0x81328139 0x0AFF +0x81328230 0x0B00 +0x81328231 0x0B01 +0x81328232 0x0B02 +0x81328233 0x0B03 +0x81328234 0x0B04 +0x81328235 0x0B05 +0x81328236 0x0B06 +0x81328237 0x0B07 +0x81328238 0x0B08 +0x81328239 0x0B09 +0x81328330 0x0B0A +0x81328331 0x0B0B +0x81328332 0x0B0C +0x81328333 0x0B0D +0x81328334 0x0B0E +0x81328335 0x0B0F +0x81328336 0x0B10 +0x81328337 0x0B11 +0x81328338 0x0B12 +0x81328339 0x0B13 +0x81328430 0x0B14 +0x81328431 0x0B15 +0x81328432 0x0B16 +0x81328433 0x0B17 +0x81328434 0x0B18 +0x81328435 0x0B19 +0x81328436 0x0B1A +0x81328437 0x0B1B +0x81328438 0x0B1C +0x81328439 0x0B1D +0x81328530 0x0B1E +0x81328531 0x0B1F +0x81328532 0x0B20 +0x81328533 0x0B21 +0x81328534 0x0B22 +0x81328535 0x0B23 +0x81328536 0x0B24 +0x81328537 0x0B25 +0x81328538 0x0B26 +0x81328539 0x0B27 +0x81328630 0x0B28 +0x81328631 0x0B29 +0x81328632 0x0B2A +0x81328633 0x0B2B +0x81328634 0x0B2C +0x81328635 0x0B2D +0x81328636 0x0B2E +0x81328637 0x0B2F +0x81328638 0x0B30 +0x81328639 0x0B31 +0x81328730 0x0B32 +0x81328731 0x0B33 +0x81328732 0x0B34 +0x81328733 0x0B35 +0x81328734 0x0B36 +0x81328735 0x0B37 +0x81328736 0x0B38 +0x81328737 0x0B39 +0x81328738 0x0B3A +0x81328739 0x0B3B +0x81328830 0x0B3C +0x81328831 0x0B3D +0x81328832 0x0B3E +0x81328833 0x0B3F +0x81328834 0x0B40 +0x81328835 0x0B41 +0x81328836 0x0B42 +0x81328837 0x0B43 +0x81328838 0x0B44 +0x81328839 0x0B45 +0x81328930 0x0B46 +0x81328931 0x0B47 +0x81328932 0x0B48 +0x81328933 0x0B49 +0x81328934 0x0B4A +0x81328935 0x0B4B +0x81328936 0x0B4C +0x81328937 0x0B4D +0x81328938 0x0B4E +0x81328939 0x0B4F +0x81328A30 0x0B50 +0x81328A31 0x0B51 +0x81328A32 0x0B52 +0x81328A33 0x0B53 +0x81328A34 0x0B54 +0x81328A35 0x0B55 +0x81328A36 0x0B56 +0x81328A37 0x0B57 +0x81328A38 0x0B58 +0x81328A39 0x0B59 +0x81328B30 0x0B5A +0x81328B31 0x0B5B +0x81328B32 0x0B5C +0x81328B33 0x0B5D +0x81328B34 0x0B5E +0x81328B35 0x0B5F +0x81328B36 0x0B60 +0x81328B37 0x0B61 +0x81328B38 0x0B62 +0x81328B39 0x0B63 +0x81328C30 0x0B64 +0x81328C31 0x0B65 +0x81328C32 0x0B66 +0x81328C33 0x0B67 +0x81328C34 0x0B68 +0x81328C35 0x0B69 +0x81328C36 0x0B6A +0x81328C37 0x0B6B +0x81328C38 0x0B6C +0x81328C39 0x0B6D +0x81328D30 0x0B6E +0x81328D31 0x0B6F +0x81328D32 0x0B70 +0x81328D33 0x0B71 +0x81328D34 0x0B72 +0x81328D35 0x0B73 +0x81328D36 0x0B74 +0x81328D37 0x0B75 +0x81328D38 0x0B76 +0x81328D39 0x0B77 +0x81328E30 0x0B78 +0x81328E31 0x0B79 +0x81328E32 0x0B7A +0x81328E33 0x0B7B +0x81328E34 0x0B7C +0x81328E35 0x0B7D +0x81328E36 0x0B7E +0x81328E37 0x0B7F +0x81328E38 0x0B80 +0x81328E39 0x0B81 +0x81328F30 0x0B82 +0x81328F31 0x0B83 +0x81328F32 0x0B84 +0x81328F33 0x0B85 +0x81328F34 0x0B86 +0x81328F35 0x0B87 +0x81328F36 0x0B88 +0x81328F37 0x0B89 +0x81328F38 0x0B8A +0x81328F39 0x0B8B +0x81329030 0x0B8C +0x81329031 0x0B8D +0x81329032 0x0B8E +0x81329033 0x0B8F +0x81329034 0x0B90 +0x81329035 0x0B91 +0x81329036 0x0B92 +0x81329037 0x0B93 +0x81329038 0x0B94 +0x81329039 0x0B95 +0x81329130 0x0B96 +0x81329131 0x0B97 +0x81329132 0x0B98 +0x81329133 0x0B99 +0x81329134 0x0B9A +0x81329135 0x0B9B +0x81329136 0x0B9C +0x81329137 0x0B9D +0x81329138 0x0B9E +0x81329139 0x0B9F +0x81329230 0x0BA0 +0x81329231 0x0BA1 +0x81329232 0x0BA2 +0x81329233 0x0BA3 +0x81329234 0x0BA4 +0x81329235 0x0BA5 +0x81329236 0x0BA6 +0x81329237 0x0BA7 +0x81329238 0x0BA8 +0x81329239 0x0BA9 +0x81329330 0x0BAA +0x81329331 0x0BAB +0x81329332 0x0BAC +0x81329333 0x0BAD +0x81329334 0x0BAE +0x81329335 0x0BAF +0x81329336 0x0BB0 +0x81329337 0x0BB1 +0x81329338 0x0BB2 +0x81329339 0x0BB3 +0x81329430 0x0BB4 +0x81329431 0x0BB5 +0x81329432 0x0BB6 +0x81329433 0x0BB7 +0x81329434 0x0BB8 +0x81329435 0x0BB9 +0x81329436 0x0BBA +0x81329437 0x0BBB +0x81329438 0x0BBC +0x81329439 0x0BBD +0x81329530 0x0BBE +0x81329531 0x0BBF +0x81329532 0x0BC0 +0x81329533 0x0BC1 +0x81329534 0x0BC2 +0x81329535 0x0BC3 +0x81329536 0x0BC4 +0x81329537 0x0BC5 +0x81329538 0x0BC6 +0x81329539 0x0BC7 +0x81329630 0x0BC8 +0x81329631 0x0BC9 +0x81329632 0x0BCA +0x81329633 0x0BCB +0x81329634 0x0BCC +0x81329635 0x0BCD +0x81329636 0x0BCE +0x81329637 0x0BCF +0x81329638 0x0BD0 +0x81329639 0x0BD1 +0x81329730 0x0BD2 +0x81329731 0x0BD3 +0x81329732 0x0BD4 +0x81329733 0x0BD5 +0x81329734 0x0BD6 +0x81329735 0x0BD7 +0x81329736 0x0BD8 +0x81329737 0x0BD9 +0x81329738 0x0BDA +0x81329739 0x0BDB +0x81329830 0x0BDC +0x81329831 0x0BDD +0x81329832 0x0BDE +0x81329833 0x0BDF +0x81329834 0x0BE0 +0x81329835 0x0BE1 +0x81329836 0x0BE2 +0x81329837 0x0BE3 +0x81329838 0x0BE4 +0x81329839 0x0BE5 +0x81329930 0x0BE6 +0x81329931 0x0BE7 +0x81329932 0x0BE8 +0x81329933 0x0BE9 +0x81329934 0x0BEA +0x81329935 0x0BEB +0x81329936 0x0BEC +0x81329937 0x0BED +0x81329938 0x0BEE +0x81329939 0x0BEF +0x81329A30 0x0BF0 +0x81329A31 0x0BF1 +0x81329A32 0x0BF2 +0x81329A33 0x0BF3 +0x81329A34 0x0BF4 +0x81329A35 0x0BF5 +0x81329A36 0x0BF6 +0x81329A37 0x0BF7 +0x81329A38 0x0BF8 +0x81329A39 0x0BF9 +0x81329B30 0x0BFA +0x81329B31 0x0BFB +0x81329B32 0x0BFC +0x81329B33 0x0BFD +0x81329B34 0x0BFE +0x81329B35 0x0BFF +0x81329B36 0x0C00 +0x81329B37 0x0C01 +0x81329B38 0x0C02 +0x81329B39 0x0C03 +0x81329C30 0x0C04 +0x81329C31 0x0C05 +0x81329C32 0x0C06 +0x81329C33 0x0C07 +0x81329C34 0x0C08 +0x81329C35 0x0C09 +0x81329C36 0x0C0A +0x81329C37 0x0C0B +0x81329C38 0x0C0C +0x81329C39 0x0C0D +0x81329D30 0x0C0E +0x81329D31 0x0C0F +0x81329D32 0x0C10 +0x81329D33 0x0C11 +0x81329D34 0x0C12 +0x81329D35 0x0C13 +0x81329D36 0x0C14 +0x81329D37 0x0C15 +0x81329D38 0x0C16 +0x81329D39 0x0C17 +0x81329E30 0x0C18 +0x81329E31 0x0C19 +0x81329E32 0x0C1A +0x81329E33 0x0C1B +0x81329E34 0x0C1C +0x81329E35 0x0C1D +0x81329E36 0x0C1E +0x81329E37 0x0C1F +0x81329E38 0x0C20 +0x81329E39 0x0C21 +0x81329F30 0x0C22 +0x81329F31 0x0C23 +0x81329F32 0x0C24 +0x81329F33 0x0C25 +0x81329F34 0x0C26 +0x81329F35 0x0C27 +0x81329F36 0x0C28 +0x81329F37 0x0C29 +0x81329F38 0x0C2A +0x81329F39 0x0C2B +0x8132A030 0x0C2C +0x8132A031 0x0C2D +0x8132A032 0x0C2E +0x8132A033 0x0C2F +0x8132A034 0x0C30 +0x8132A035 0x0C31 +0x8132A036 0x0C32 +0x8132A037 0x0C33 +0x8132A038 0x0C34 +0x8132A039 0x0C35 +0x8132A130 0x0C36 +0x8132A131 0x0C37 +0x8132A132 0x0C38 +0x8132A133 0x0C39 +0x8132A134 0x0C3A +0x8132A135 0x0C3B +0x8132A136 0x0C3C +0x8132A137 0x0C3D +0x8132A138 0x0C3E +0x8132A139 0x0C3F +0x8132A230 0x0C40 +0x8132A231 0x0C41 +0x8132A232 0x0C42 +0x8132A233 0x0C43 +0x8132A234 0x0C44 +0x8132A235 0x0C45 +0x8132A236 0x0C46 +0x8132A237 0x0C47 +0x8132A238 0x0C48 +0x8132A239 0x0C49 +0x8132A330 0x0C4A +0x8132A331 0x0C4B +0x8132A332 0x0C4C +0x8132A333 0x0C4D +0x8132A334 0x0C4E +0x8132A335 0x0C4F +0x8132A336 0x0C50 +0x8132A337 0x0C51 +0x8132A338 0x0C52 +0x8132A339 0x0C53 +0x8132A430 0x0C54 +0x8132A431 0x0C55 +0x8132A432 0x0C56 +0x8132A433 0x0C57 +0x8132A434 0x0C58 +0x8132A435 0x0C59 +0x8132A436 0x0C5A +0x8132A437 0x0C5B +0x8132A438 0x0C5C +0x8132A439 0x0C5D +0x8132A530 0x0C5E +0x8132A531 0x0C5F +0x8132A532 0x0C60 +0x8132A533 0x0C61 +0x8132A534 0x0C62 +0x8132A535 0x0C63 +0x8132A536 0x0C64 +0x8132A537 0x0C65 +0x8132A538 0x0C66 +0x8132A539 0x0C67 +0x8132A630 0x0C68 +0x8132A631 0x0C69 +0x8132A632 0x0C6A +0x8132A633 0x0C6B +0x8132A634 0x0C6C +0x8132A635 0x0C6D +0x8132A636 0x0C6E +0x8132A637 0x0C6F +0x8132A638 0x0C70 +0x8132A639 0x0C71 +0x8132A730 0x0C72 +0x8132A731 0x0C73 +0x8132A732 0x0C74 +0x8132A733 0x0C75 +0x8132A734 0x0C76 +0x8132A735 0x0C77 +0x8132A736 0x0C78 +0x8132A737 0x0C79 +0x8132A738 0x0C7A +0x8132A739 0x0C7B +0x8132A830 0x0C7C +0x8132A831 0x0C7D +0x8132A832 0x0C7E +0x8132A833 0x0C7F +0x8132A834 0x0C80 +0x8132A835 0x0C81 +0x8132A836 0x0C82 +0x8132A837 0x0C83 +0x8132A838 0x0C84 +0x8132A839 0x0C85 +0x8132A930 0x0C86 +0x8132A931 0x0C87 +0x8132A932 0x0C88 +0x8132A933 0x0C89 +0x8132A934 0x0C8A +0x8132A935 0x0C8B +0x8132A936 0x0C8C +0x8132A937 0x0C8D +0x8132A938 0x0C8E +0x8132A939 0x0C8F +0x8132AA30 0x0C90 +0x8132AA31 0x0C91 +0x8132AA32 0x0C92 +0x8132AA33 0x0C93 +0x8132AA34 0x0C94 +0x8132AA35 0x0C95 +0x8132AA36 0x0C96 +0x8132AA37 0x0C97 +0x8132AA38 0x0C98 +0x8132AA39 0x0C99 +0x8132AB30 0x0C9A +0x8132AB31 0x0C9B +0x8132AB32 0x0C9C +0x8132AB33 0x0C9D +0x8132AB34 0x0C9E +0x8132AB35 0x0C9F +0x8132AB36 0x0CA0 +0x8132AB37 0x0CA1 +0x8132AB38 0x0CA2 +0x8132AB39 0x0CA3 +0x8132AC30 0x0CA4 +0x8132AC31 0x0CA5 +0x8132AC32 0x0CA6 +0x8132AC33 0x0CA7 +0x8132AC34 0x0CA8 +0x8132AC35 0x0CA9 +0x8132AC36 0x0CAA +0x8132AC37 0x0CAB +0x8132AC38 0x0CAC +0x8132AC39 0x0CAD +0x8132AD30 0x0CAE +0x8132AD31 0x0CAF +0x8132AD32 0x0CB0 +0x8132AD33 0x0CB1 +0x8132AD34 0x0CB2 +0x8132AD35 0x0CB3 +0x8132AD36 0x0CB4 +0x8132AD37 0x0CB5 +0x8132AD38 0x0CB6 +0x8132AD39 0x0CB7 +0x8132AE30 0x0CB8 +0x8132AE31 0x0CB9 +0x8132AE32 0x0CBA +0x8132AE33 0x0CBB +0x8132AE34 0x0CBC +0x8132AE35 0x0CBD +0x8132AE36 0x0CBE +0x8132AE37 0x0CBF +0x8132AE38 0x0CC0 +0x8132AE39 0x0CC1 +0x8132AF30 0x0CC2 +0x8132AF31 0x0CC3 +0x8132AF32 0x0CC4 +0x8132AF33 0x0CC5 +0x8132AF34 0x0CC6 +0x8132AF35 0x0CC7 +0x8132AF36 0x0CC8 +0x8132AF37 0x0CC9 +0x8132AF38 0x0CCA +0x8132AF39 0x0CCB +0x8132B030 0x0CCC +0x8132B031 0x0CCD +0x8132B032 0x0CCE +0x8132B033 0x0CCF +0x8132B034 0x0CD0 +0x8132B035 0x0CD1 +0x8132B036 0x0CD2 +0x8132B037 0x0CD3 +0x8132B038 0x0CD4 +0x8132B039 0x0CD5 +0x8132B130 0x0CD6 +0x8132B131 0x0CD7 +0x8132B132 0x0CD8 +0x8132B133 0x0CD9 +0x8132B134 0x0CDA +0x8132B135 0x0CDB +0x8132B136 0x0CDC +0x8132B137 0x0CDD +0x8132B138 0x0CDE +0x8132B139 0x0CDF +0x8132B230 0x0CE0 +0x8132B231 0x0CE1 +0x8132B232 0x0CE2 +0x8132B233 0x0CE3 +0x8132B234 0x0CE4 +0x8132B235 0x0CE5 +0x8132B236 0x0CE6 +0x8132B237 0x0CE7 +0x8132B238 0x0CE8 +0x8132B239 0x0CE9 +0x8132B330 0x0CEA +0x8132B331 0x0CEB +0x8132B332 0x0CEC +0x8132B333 0x0CED +0x8132B334 0x0CEE +0x8132B335 0x0CEF +0x8132B336 0x0CF0 +0x8132B337 0x0CF1 +0x8132B338 0x0CF2 +0x8132B339 0x0CF3 +0x8132B430 0x0CF4 +0x8132B431 0x0CF5 +0x8132B432 0x0CF6 +0x8132B433 0x0CF7 +0x8132B434 0x0CF8 +0x8132B435 0x0CF9 +0x8132B436 0x0CFA +0x8132B437 0x0CFB +0x8132B438 0x0CFC +0x8132B439 0x0CFD +0x8132B530 0x0CFE +0x8132B531 0x0CFF +0x8132B532 0x0D00 +0x8132B533 0x0D01 +0x8132B534 0x0D02 +0x8132B535 0x0D03 +0x8132B536 0x0D04 +0x8132B537 0x0D05 +0x8132B538 0x0D06 +0x8132B539 0x0D07 +0x8132B630 0x0D08 +0x8132B631 0x0D09 +0x8132B632 0x0D0A +0x8132B633 0x0D0B +0x8132B634 0x0D0C +0x8132B635 0x0D0D +0x8132B636 0x0D0E +0x8132B637 0x0D0F +0x8132B638 0x0D10 +0x8132B639 0x0D11 +0x8132B730 0x0D12 +0x8132B731 0x0D13 +0x8132B732 0x0D14 +0x8132B733 0x0D15 +0x8132B734 0x0D16 +0x8132B735 0x0D17 +0x8132B736 0x0D18 +0x8132B737 0x0D19 +0x8132B738 0x0D1A +0x8132B739 0x0D1B +0x8132B830 0x0D1C +0x8132B831 0x0D1D +0x8132B832 0x0D1E +0x8132B833 0x0D1F +0x8132B834 0x0D20 +0x8132B835 0x0D21 +0x8132B836 0x0D22 +0x8132B837 0x0D23 +0x8132B838 0x0D24 +0x8132B839 0x0D25 +0x8132B930 0x0D26 +0x8132B931 0x0D27 +0x8132B932 0x0D28 +0x8132B933 0x0D29 +0x8132B934 0x0D2A +0x8132B935 0x0D2B +0x8132B936 0x0D2C +0x8132B937 0x0D2D +0x8132B938 0x0D2E +0x8132B939 0x0D2F +0x8132BA30 0x0D30 +0x8132BA31 0x0D31 +0x8132BA32 0x0D32 +0x8132BA33 0x0D33 +0x8132BA34 0x0D34 +0x8132BA35 0x0D35 +0x8132BA36 0x0D36 +0x8132BA37 0x0D37 +0x8132BA38 0x0D38 +0x8132BA39 0x0D39 +0x8132BB30 0x0D3A +0x8132BB31 0x0D3B +0x8132BB32 0x0D3C +0x8132BB33 0x0D3D +0x8132BB34 0x0D3E +0x8132BB35 0x0D3F +0x8132BB36 0x0D40 +0x8132BB37 0x0D41 +0x8132BB38 0x0D42 +0x8132BB39 0x0D43 +0x8132BC30 0x0D44 +0x8132BC31 0x0D45 +0x8132BC32 0x0D46 +0x8132BC33 0x0D47 +0x8132BC34 0x0D48 +0x8132BC35 0x0D49 +0x8132BC36 0x0D4A +0x8132BC37 0x0D4B +0x8132BC38 0x0D4C +0x8132BC39 0x0D4D +0x8132BD30 0x0D4E +0x8132BD31 0x0D4F +0x8132BD32 0x0D50 +0x8132BD33 0x0D51 +0x8132BD34 0x0D52 +0x8132BD35 0x0D53 +0x8132BD36 0x0D54 +0x8132BD37 0x0D55 +0x8132BD38 0x0D56 +0x8132BD39 0x0D57 +0x8132BE30 0x0D58 +0x8132BE31 0x0D59 +0x8132BE32 0x0D5A +0x8132BE33 0x0D5B +0x8132BE34 0x0D5C +0x8132BE35 0x0D5D +0x8132BE36 0x0D5E +0x8132BE37 0x0D5F +0x8132BE38 0x0D60 +0x8132BE39 0x0D61 +0x8132BF30 0x0D62 +0x8132BF31 0x0D63 +0x8132BF32 0x0D64 +0x8132BF33 0x0D65 +0x8132BF34 0x0D66 +0x8132BF35 0x0D67 +0x8132BF36 0x0D68 +0x8132BF37 0x0D69 +0x8132BF38 0x0D6A +0x8132BF39 0x0D6B +0x8132C030 0x0D6C +0x8132C031 0x0D6D +0x8132C032 0x0D6E +0x8132C033 0x0D6F +0x8132C034 0x0D70 +0x8132C035 0x0D71 +0x8132C036 0x0D72 +0x8132C037 0x0D73 +0x8132C038 0x0D74 +0x8132C039 0x0D75 +0x8132C130 0x0D76 +0x8132C131 0x0D77 +0x8132C132 0x0D78 +0x8132C133 0x0D79 +0x8132C134 0x0D7A +0x8132C135 0x0D7B +0x8132C136 0x0D7C +0x8132C137 0x0D7D +0x8132C138 0x0D7E +0x8132C139 0x0D7F +0x8132C230 0x0D80 +0x8132C231 0x0D81 +0x8132C232 0x0D82 +0x8132C233 0x0D83 +0x8132C234 0x0D84 +0x8132C235 0x0D85 +0x8132C236 0x0D86 +0x8132C237 0x0D87 +0x8132C238 0x0D88 +0x8132C239 0x0D89 +0x8132C330 0x0D8A +0x8132C331 0x0D8B +0x8132C332 0x0D8C +0x8132C333 0x0D8D +0x8132C334 0x0D8E +0x8132C335 0x0D8F +0x8132C336 0x0D90 +0x8132C337 0x0D91 +0x8132C338 0x0D92 +0x8132C339 0x0D93 +0x8132C430 0x0D94 +0x8132C431 0x0D95 +0x8132C432 0x0D96 +0x8132C433 0x0D97 +0x8132C434 0x0D98 +0x8132C435 0x0D99 +0x8132C436 0x0D9A +0x8132C437 0x0D9B +0x8132C438 0x0D9C +0x8132C439 0x0D9D +0x8132C530 0x0D9E +0x8132C531 0x0D9F +0x8132C532 0x0DA0 +0x8132C533 0x0DA1 +0x8132C534 0x0DA2 +0x8132C535 0x0DA3 +0x8132C536 0x0DA4 +0x8132C537 0x0DA5 +0x8132C538 0x0DA6 +0x8132C539 0x0DA7 +0x8132C630 0x0DA8 +0x8132C631 0x0DA9 +0x8132C632 0x0DAA +0x8132C633 0x0DAB +0x8132C634 0x0DAC +0x8132C635 0x0DAD +0x8132C636 0x0DAE +0x8132C637 0x0DAF +0x8132C638 0x0DB0 +0x8132C639 0x0DB1 +0x8132C730 0x0DB2 +0x8132C731 0x0DB3 +0x8132C732 0x0DB4 +0x8132C733 0x0DB5 +0x8132C734 0x0DB6 +0x8132C735 0x0DB7 +0x8132C736 0x0DB8 +0x8132C737 0x0DB9 +0x8132C738 0x0DBA +0x8132C739 0x0DBB +0x8132C830 0x0DBC +0x8132C831 0x0DBD +0x8132C832 0x0DBE +0x8132C833 0x0DBF +0x8132C834 0x0DC0 +0x8132C835 0x0DC1 +0x8132C836 0x0DC2 +0x8132C837 0x0DC3 +0x8132C838 0x0DC4 +0x8132C839 0x0DC5 +0x8132C930 0x0DC6 +0x8132C931 0x0DC7 +0x8132C932 0x0DC8 +0x8132C933 0x0DC9 +0x8132C934 0x0DCA +0x8132C935 0x0DCB +0x8132C936 0x0DCC +0x8132C937 0x0DCD +0x8132C938 0x0DCE +0x8132C939 0x0DCF +0x8132CA30 0x0DD0 +0x8132CA31 0x0DD1 +0x8132CA32 0x0DD2 +0x8132CA33 0x0DD3 +0x8132CA34 0x0DD4 +0x8132CA35 0x0DD5 +0x8132CA36 0x0DD6 +0x8132CA37 0x0DD7 +0x8132CA38 0x0DD8 +0x8132CA39 0x0DD9 +0x8132CB30 0x0DDA +0x8132CB31 0x0DDB +0x8132CB32 0x0DDC +0x8132CB33 0x0DDD +0x8132CB34 0x0DDE +0x8132CB35 0x0DDF +0x8132CB36 0x0DE0 +0x8132CB37 0x0DE1 +0x8132CB38 0x0DE2 +0x8132CB39 0x0DE3 +0x8132CC30 0x0DE4 +0x8132CC31 0x0DE5 +0x8132CC32 0x0DE6 +0x8132CC33 0x0DE7 +0x8132CC34 0x0DE8 +0x8132CC35 0x0DE9 +0x8132CC36 0x0DEA +0x8132CC37 0x0DEB +0x8132CC38 0x0DEC +0x8132CC39 0x0DED +0x8132CD30 0x0DEE +0x8132CD31 0x0DEF +0x8132CD32 0x0DF0 +0x8132CD33 0x0DF1 +0x8132CD34 0x0DF2 +0x8132CD35 0x0DF3 +0x8132CD36 0x0DF4 +0x8132CD37 0x0DF5 +0x8132CD38 0x0DF6 +0x8132CD39 0x0DF7 +0x8132CE30 0x0DF8 +0x8132CE31 0x0DF9 +0x8132CE32 0x0DFA +0x8132CE33 0x0DFB +0x8132CE34 0x0DFC +0x8132CE35 0x0DFD +0x8132CE36 0x0DFE +0x8132CE37 0x0DFF +0x8132CE38 0x0E00 +0x8132CE39 0x0E01 +0x8132CF30 0x0E02 +0x8132CF31 0x0E03 +0x8132CF32 0x0E04 +0x8132CF33 0x0E05 +0x8132CF34 0x0E06 +0x8132CF35 0x0E07 +0x8132CF36 0x0E08 +0x8132CF37 0x0E09 +0x8132CF38 0x0E0A +0x8132CF39 0x0E0B +0x8132D030 0x0E0C +0x8132D031 0x0E0D +0x8132D032 0x0E0E +0x8132D033 0x0E0F +0x8132D034 0x0E10 +0x8132D035 0x0E11 +0x8132D036 0x0E12 +0x8132D037 0x0E13 +0x8132D038 0x0E14 +0x8132D039 0x0E15 +0x8132D130 0x0E16 +0x8132D131 0x0E17 +0x8132D132 0x0E18 +0x8132D133 0x0E19 +0x8132D134 0x0E1A +0x8132D135 0x0E1B +0x8132D136 0x0E1C +0x8132D137 0x0E1D +0x8132D138 0x0E1E +0x8132D139 0x0E1F +0x8132D230 0x0E20 +0x8132D231 0x0E21 +0x8132D232 0x0E22 +0x8132D233 0x0E23 +0x8132D234 0x0E24 +0x8132D235 0x0E25 +0x8132D236 0x0E26 +0x8132D237 0x0E27 +0x8132D238 0x0E28 +0x8132D239 0x0E29 +0x8132D330 0x0E2A +0x8132D331 0x0E2B +0x8132D332 0x0E2C +0x8132D333 0x0E2D +0x8132D334 0x0E2E +0x8132D335 0x0E2F +0x8132D336 0x0E30 +0x8132D337 0x0E31 +0x8132D338 0x0E32 +0x8132D339 0x0E33 +0x8132D430 0x0E34 +0x8132D431 0x0E35 +0x8132D432 0x0E36 +0x8132D433 0x0E37 +0x8132D434 0x0E38 +0x8132D435 0x0E39 +0x8132D436 0x0E3A +0x8132D437 0x0E3B +0x8132D438 0x0E3C +0x8132D439 0x0E3D +0x8132D530 0x0E3E +0x8132D531 0x0E3F +0x8132D532 0x0E40 +0x8132D533 0x0E41 +0x8132D534 0x0E42 +0x8132D535 0x0E43 +0x8132D536 0x0E44 +0x8132D537 0x0E45 +0x8132D538 0x0E46 +0x8132D539 0x0E47 +0x8132D630 0x0E48 +0x8132D631 0x0E49 +0x8132D632 0x0E4A +0x8132D633 0x0E4B +0x8132D634 0x0E4C +0x8132D635 0x0E4D +0x8132D636 0x0E4E +0x8132D637 0x0E4F +0x8132D638 0x0E50 +0x8132D639 0x0E51 +0x8132D730 0x0E52 +0x8132D731 0x0E53 +0x8132D732 0x0E54 +0x8132D733 0x0E55 +0x8132D734 0x0E56 +0x8132D735 0x0E57 +0x8132D736 0x0E58 +0x8132D737 0x0E59 +0x8132D738 0x0E5A +0x8132D739 0x0E5B +0x8132D830 0x0E5C +0x8132D831 0x0E5D +0x8132D832 0x0E5E +0x8132D833 0x0E5F +0x8132D834 0x0E60 +0x8132D835 0x0E61 +0x8132D836 0x0E62 +0x8132D837 0x0E63 +0x8132D838 0x0E64 +0x8132D839 0x0E65 +0x8132D930 0x0E66 +0x8132D931 0x0E67 +0x8132D932 0x0E68 +0x8132D933 0x0E69 +0x8132D934 0x0E6A +0x8132D935 0x0E6B +0x8132D936 0x0E6C +0x8132D937 0x0E6D +0x8132D938 0x0E6E +0x8132D939 0x0E6F +0x8132DA30 0x0E70 +0x8132DA31 0x0E71 +0x8132DA32 0x0E72 +0x8132DA33 0x0E73 +0x8132DA34 0x0E74 +0x8132DA35 0x0E75 +0x8132DA36 0x0E76 +0x8132DA37 0x0E77 +0x8132DA38 0x0E78 +0x8132DA39 0x0E79 +0x8132DB30 0x0E7A +0x8132DB31 0x0E7B +0x8132DB32 0x0E7C +0x8132DB33 0x0E7D +0x8132DB34 0x0E7E +0x8132DB35 0x0E7F +0x8132DB36 0x0E80 +0x8132DB37 0x0E81 +0x8132DB38 0x0E82 +0x8132DB39 0x0E83 +0x8132DC30 0x0E84 +0x8132DC31 0x0E85 +0x8132DC32 0x0E86 +0x8132DC33 0x0E87 +0x8132DC34 0x0E88 +0x8132DC35 0x0E89 +0x8132DC36 0x0E8A +0x8132DC37 0x0E8B +0x8132DC38 0x0E8C +0x8132DC39 0x0E8D +0x8132DD30 0x0E8E +0x8132DD31 0x0E8F +0x8132DD32 0x0E90 +0x8132DD33 0x0E91 +0x8132DD34 0x0E92 +0x8132DD35 0x0E93 +0x8132DD36 0x0E94 +0x8132DD37 0x0E95 +0x8132DD38 0x0E96 +0x8132DD39 0x0E97 +0x8132DE30 0x0E98 +0x8132DE31 0x0E99 +0x8132DE32 0x0E9A +0x8132DE33 0x0E9B +0x8132DE34 0x0E9C +0x8132DE35 0x0E9D +0x8132DE36 0x0E9E +0x8132DE37 0x0E9F +0x8132DE38 0x0EA0 +0x8132DE39 0x0EA1 +0x8132DF30 0x0EA2 +0x8132DF31 0x0EA3 +0x8132DF32 0x0EA4 +0x8132DF33 0x0EA5 +0x8132DF34 0x0EA6 +0x8132DF35 0x0EA7 +0x8132DF36 0x0EA8 +0x8132DF37 0x0EA9 +0x8132DF38 0x0EAA +0x8132DF39 0x0EAB +0x8132E030 0x0EAC +0x8132E031 0x0EAD +0x8132E032 0x0EAE +0x8132E033 0x0EAF +0x8132E034 0x0EB0 +0x8132E035 0x0EB1 +0x8132E036 0x0EB2 +0x8132E037 0x0EB3 +0x8132E038 0x0EB4 +0x8132E039 0x0EB5 +0x8132E130 0x0EB6 +0x8132E131 0x0EB7 +0x8132E132 0x0EB8 +0x8132E133 0x0EB9 +0x8132E134 0x0EBA +0x8132E135 0x0EBB +0x8132E136 0x0EBC +0x8132E137 0x0EBD +0x8132E138 0x0EBE +0x8132E139 0x0EBF +0x8132E230 0x0EC0 +0x8132E231 0x0EC1 +0x8132E232 0x0EC2 +0x8132E233 0x0EC3 +0x8132E234 0x0EC4 +0x8132E235 0x0EC5 +0x8132E236 0x0EC6 +0x8132E237 0x0EC7 +0x8132E238 0x0EC8 +0x8132E239 0x0EC9 +0x8132E330 0x0ECA +0x8132E331 0x0ECB +0x8132E332 0x0ECC +0x8132E333 0x0ECD +0x8132E334 0x0ECE +0x8132E335 0x0ECF +0x8132E336 0x0ED0 +0x8132E337 0x0ED1 +0x8132E338 0x0ED2 +0x8132E339 0x0ED3 +0x8132E430 0x0ED4 +0x8132E431 0x0ED5 +0x8132E432 0x0ED6 +0x8132E433 0x0ED7 +0x8132E434 0x0ED8 +0x8132E435 0x0ED9 +0x8132E436 0x0EDA +0x8132E437 0x0EDB +0x8132E438 0x0EDC +0x8132E439 0x0EDD +0x8132E530 0x0EDE +0x8132E531 0x0EDF +0x8132E532 0x0EE0 +0x8132E533 0x0EE1 +0x8132E534 0x0EE2 +0x8132E535 0x0EE3 +0x8132E536 0x0EE4 +0x8132E537 0x0EE5 +0x8132E538 0x0EE6 +0x8132E539 0x0EE7 +0x8132E630 0x0EE8 +0x8132E631 0x0EE9 +0x8132E632 0x0EEA +0x8132E633 0x0EEB +0x8132E634 0x0EEC +0x8132E635 0x0EED +0x8132E636 0x0EEE +0x8132E637 0x0EEF +0x8132E638 0x0EF0 +0x8132E639 0x0EF1 +0x8132E730 0x0EF2 +0x8132E731 0x0EF3 +0x8132E732 0x0EF4 +0x8132E733 0x0EF5 +0x8132E734 0x0EF6 +0x8132E735 0x0EF7 +0x8132E736 0x0EF8 +0x8132E737 0x0EF9 +0x8132E738 0x0EFA +0x8132E739 0x0EFB +0x8132E830 0x0EFC +0x8132E831 0x0EFD +0x8132E832 0x0EFE +0x8132E833 0x0EFF +0x8132E834 0x0F00 +0x8132E835 0x0F01 +0x8132E836 0x0F02 +0x8132E837 0x0F03 +0x8132E838 0x0F04 +0x8132E839 0x0F05 +0x8132E930 0x0F06 +0x8132E931 0x0F07 +0x8132E932 0x0F08 +0x8132E933 0x0F09 +0x8132E934 0x0F0A +0x8132E935 0x0F0B +0x8132E936 0x0F0C +0x8132E937 0x0F0D +0x8132E938 0x0F0E +0x8132E939 0x0F0F +0x8132EA30 0x0F10 +0x8132EA31 0x0F11 +0x8132EA32 0x0F12 +0x8132EA33 0x0F13 +0x8132EA34 0x0F14 +0x8132EA35 0x0F15 +0x8132EA36 0x0F16 +0x8132EA37 0x0F17 +0x8132EA38 0x0F18 +0x8132EA39 0x0F19 +0x8132EB30 0x0F1A +0x8132EB31 0x0F1B +0x8132EB32 0x0F1C +0x8132EB33 0x0F1D +0x8132EB34 0x0F1E +0x8132EB35 0x0F1F +0x8132EB36 0x0F20 +0x8132EB37 0x0F21 +0x8132EB38 0x0F22 +0x8132EB39 0x0F23 +0x8132EC30 0x0F24 +0x8132EC31 0x0F25 +0x8132EC32 0x0F26 +0x8132EC33 0x0F27 +0x8132EC34 0x0F28 +0x8132EC35 0x0F29 +0x8132EC36 0x0F2A +0x8132EC37 0x0F2B +0x8132EC38 0x0F2C +0x8132EC39 0x0F2D +0x8132ED30 0x0F2E +0x8132ED31 0x0F2F +0x8132ED32 0x0F30 +0x8132ED33 0x0F31 +0x8132ED34 0x0F32 +0x8132ED35 0x0F33 +0x8132ED36 0x0F34 +0x8132ED37 0x0F35 +0x8132ED38 0x0F36 +0x8132ED39 0x0F37 +0x8132EE30 0x0F38 +0x8132EE31 0x0F39 +0x8132EE32 0x0F3A +0x8132EE33 0x0F3B +0x8132EE34 0x0F3C +0x8132EE35 0x0F3D +0x8132EE36 0x0F3E +0x8132EE37 0x0F3F +0x8132EE38 0x0F40 +0x8132EE39 0x0F41 +0x8132EF30 0x0F42 +0x8132EF31 0x0F43 +0x8132EF32 0x0F44 +0x8132EF33 0x0F45 +0x8132EF34 0x0F46 +0x8132EF35 0x0F47 +0x8132EF36 0x0F48 +0x8132EF37 0x0F49 +0x8132EF38 0x0F4A +0x8132EF39 0x0F4B +0x8132F030 0x0F4C +0x8132F031 0x0F4D +0x8132F032 0x0F4E +0x8132F033 0x0F4F +0x8132F034 0x0F50 +0x8132F035 0x0F51 +0x8132F036 0x0F52 +0x8132F037 0x0F53 +0x8132F038 0x0F54 +0x8132F039 0x0F55 +0x8132F130 0x0F56 +0x8132F131 0x0F57 +0x8132F132 0x0F58 +0x8132F133 0x0F59 +0x8132F134 0x0F5A +0x8132F135 0x0F5B +0x8132F136 0x0F5C +0x8132F137 0x0F5D +0x8132F138 0x0F5E +0x8132F139 0x0F5F +0x8132F230 0x0F60 +0x8132F231 0x0F61 +0x8132F232 0x0F62 +0x8132F233 0x0F63 +0x8132F234 0x0F64 +0x8132F235 0x0F65 +0x8132F236 0x0F66 +0x8132F237 0x0F67 +0x8132F238 0x0F68 +0x8132F239 0x0F69 +0x8132F330 0x0F6A +0x8132F331 0x0F6B +0x8132F332 0x0F6C +0x8132F333 0x0F6D +0x8132F334 0x0F6E +0x8132F335 0x0F6F +0x8132F336 0x0F70 +0x8132F337 0x0F71 +0x8132F338 0x0F72 +0x8132F339 0x0F73 +0x8132F430 0x0F74 +0x8132F431 0x0F75 +0x8132F432 0x0F76 +0x8132F433 0x0F77 +0x8132F434 0x0F78 +0x8132F435 0x0F79 +0x8132F436 0x0F7A +0x8132F437 0x0F7B +0x8132F438 0x0F7C +0x8132F439 0x0F7D +0x8132F530 0x0F7E +0x8132F531 0x0F7F +0x8132F532 0x0F80 +0x8132F533 0x0F81 +0x8132F534 0x0F82 +0x8132F535 0x0F83 +0x8132F536 0x0F84 +0x8132F537 0x0F85 +0x8132F538 0x0F86 +0x8132F539 0x0F87 +0x8132F630 0x0F88 +0x8132F631 0x0F89 +0x8132F632 0x0F8A +0x8132F633 0x0F8B +0x8132F634 0x0F8C +0x8132F635 0x0F8D +0x8132F636 0x0F8E +0x8132F637 0x0F8F +0x8132F638 0x0F90 +0x8132F639 0x0F91 +0x8132F730 0x0F92 +0x8132F731 0x0F93 +0x8132F732 0x0F94 +0x8132F733 0x0F95 +0x8132F734 0x0F96 +0x8132F735 0x0F97 +0x8132F736 0x0F98 +0x8132F737 0x0F99 +0x8132F738 0x0F9A +0x8132F739 0x0F9B +0x8132F830 0x0F9C +0x8132F831 0x0F9D +0x8132F832 0x0F9E +0x8132F833 0x0F9F +0x8132F834 0x0FA0 +0x8132F835 0x0FA1 +0x8132F836 0x0FA2 +0x8132F837 0x0FA3 +0x8132F838 0x0FA4 +0x8132F839 0x0FA5 +0x8132F930 0x0FA6 +0x8132F931 0x0FA7 +0x8132F932 0x0FA8 +0x8132F933 0x0FA9 +0x8132F934 0x0FAA +0x8132F935 0x0FAB +0x8132F936 0x0FAC +0x8132F937 0x0FAD +0x8132F938 0x0FAE +0x8132F939 0x0FAF +0x8132FA30 0x0FB0 +0x8132FA31 0x0FB1 +0x8132FA32 0x0FB2 +0x8132FA33 0x0FB3 +0x8132FA34 0x0FB4 +0x8132FA35 0x0FB5 +0x8132FA36 0x0FB6 +0x8132FA37 0x0FB7 +0x8132FA38 0x0FB8 +0x8132FA39 0x0FB9 +0x8132FB30 0x0FBA +0x8132FB31 0x0FBB +0x8132FB32 0x0FBC +0x8132FB33 0x0FBD +0x8132FB34 0x0FBE +0x8132FB35 0x0FBF +0x8132FB36 0x0FC0 +0x8132FB37 0x0FC1 +0x8132FB38 0x0FC2 +0x8132FB39 0x0FC3 +0x8132FC30 0x0FC4 +0x8132FC31 0x0FC5 +0x8132FC32 0x0FC6 +0x8132FC33 0x0FC7 +0x8132FC34 0x0FC8 +0x8132FC35 0x0FC9 +0x8132FC36 0x0FCA +0x8132FC37 0x0FCB +0x8132FC38 0x0FCC +0x8132FC39 0x0FCD +0x8132FD30 0x0FCE +0x8132FD31 0x0FCF +0x8132FD32 0x0FD0 +0x8132FD33 0x0FD1 +0x8132FD34 0x0FD2 +0x8132FD35 0x0FD3 +0x8132FD36 0x0FD4 +0x8132FD37 0x0FD5 +0x8132FD38 0x0FD6 +0x8132FD39 0x0FD7 +0x8132FE30 0x0FD8 +0x8132FE31 0x0FD9 +0x8132FE32 0x0FDA +0x8132FE33 0x0FDB +0x8132FE34 0x0FDC +0x8132FE35 0x0FDD +0x8132FE36 0x0FDE +0x8132FE37 0x0FDF +0x8132FE38 0x0FE0 +0x8132FE39 0x0FE1 +0x81338130 0x0FE2 +0x81338131 0x0FE3 +0x81338132 0x0FE4 +0x81338133 0x0FE5 +0x81338134 0x0FE6 +0x81338135 0x0FE7 +0x81338136 0x0FE8 +0x81338137 0x0FE9 +0x81338138 0x0FEA +0x81338139 0x0FEB +0x81338230 0x0FEC +0x81338231 0x0FED +0x81338232 0x0FEE +0x81338233 0x0FEF +0x81338234 0x0FF0 +0x81338235 0x0FF1 +0x81338236 0x0FF2 +0x81338237 0x0FF3 +0x81338238 0x0FF4 +0x81338239 0x0FF5 +0x81338330 0x0FF6 +0x81338331 0x0FF7 +0x81338332 0x0FF8 +0x81338333 0x0FF9 +0x81338334 0x0FFA +0x81338335 0x0FFB +0x81338336 0x0FFC +0x81338337 0x0FFD +0x81338338 0x0FFE +0x81338339 0x0FFF +0x81338430 0x1000 +0x81338431 0x1001 +0x81338432 0x1002 +0x81338433 0x1003 +0x81338434 0x1004 +0x81338435 0x1005 +0x81338436 0x1006 +0x81338437 0x1007 +0x81338438 0x1008 +0x81338439 0x1009 +0x81338530 0x100A +0x81338531 0x100B +0x81338532 0x100C +0x81338533 0x100D +0x81338534 0x100E +0x81338535 0x100F +0x81338536 0x1010 +0x81338537 0x1011 +0x81338538 0x1012 +0x81338539 0x1013 +0x81338630 0x1014 +0x81338631 0x1015 +0x81338632 0x1016 +0x81338633 0x1017 +0x81338634 0x1018 +0x81338635 0x1019 +0x81338636 0x101A +0x81338637 0x101B +0x81338638 0x101C +0x81338639 0x101D +0x81338730 0x101E +0x81338731 0x101F +0x81338732 0x1020 +0x81338733 0x1021 +0x81338734 0x1022 +0x81338735 0x1023 +0x81338736 0x1024 +0x81338737 0x1025 +0x81338738 0x1026 +0x81338739 0x1027 +0x81338830 0x1028 +0x81338831 0x1029 +0x81338832 0x102A +0x81338833 0x102B +0x81338834 0x102C +0x81338835 0x102D +0x81338836 0x102E +0x81338837 0x102F +0x81338838 0x1030 +0x81338839 0x1031 +0x81338930 0x1032 +0x81338931 0x1033 +0x81338932 0x1034 +0x81338933 0x1035 +0x81338934 0x1036 +0x81338935 0x1037 +0x81338936 0x1038 +0x81338937 0x1039 +0x81338938 0x103A +0x81338939 0x103B +0x81338A30 0x103C +0x81338A31 0x103D +0x81338A32 0x103E +0x81338A33 0x103F +0x81338A34 0x1040 +0x81338A35 0x1041 +0x81338A36 0x1042 +0x81338A37 0x1043 +0x81338A38 0x1044 +0x81338A39 0x1045 +0x81338B30 0x1046 +0x81338B31 0x1047 +0x81338B32 0x1048 +0x81338B33 0x1049 +0x81338B34 0x104A +0x81338B35 0x104B +0x81338B36 0x104C +0x81338B37 0x104D +0x81338B38 0x104E +0x81338B39 0x104F +0x81338C30 0x1050 +0x81338C31 0x1051 +0x81338C32 0x1052 +0x81338C33 0x1053 +0x81338C34 0x1054 +0x81338C35 0x1055 +0x81338C36 0x1056 +0x81338C37 0x1057 +0x81338C38 0x1058 +0x81338C39 0x1059 +0x81338D30 0x105A +0x81338D31 0x105B +0x81338D32 0x105C +0x81338D33 0x105D +0x81338D34 0x105E +0x81338D35 0x105F +0x81338D36 0x1060 +0x81338D37 0x1061 +0x81338D38 0x1062 +0x81338D39 0x1063 +0x81338E30 0x1064 +0x81338E31 0x1065 +0x81338E32 0x1066 +0x81338E33 0x1067 +0x81338E34 0x1068 +0x81338E35 0x1069 +0x81338E36 0x106A +0x81338E37 0x106B +0x81338E38 0x106C +0x81338E39 0x106D +0x81338F30 0x106E +0x81338F31 0x106F +0x81338F32 0x1070 +0x81338F33 0x1071 +0x81338F34 0x1072 +0x81338F35 0x1073 +0x81338F36 0x1074 +0x81338F37 0x1075 +0x81338F38 0x1076 +0x81338F39 0x1077 +0x81339030 0x1078 +0x81339031 0x1079 +0x81339032 0x107A +0x81339033 0x107B +0x81339034 0x107C +0x81339035 0x107D +0x81339036 0x107E +0x81339037 0x107F +0x81339038 0x1080 +0x81339039 0x1081 +0x81339130 0x1082 +0x81339131 0x1083 +0x81339132 0x1084 +0x81339133 0x1085 +0x81339134 0x1086 +0x81339135 0x1087 +0x81339136 0x1088 +0x81339137 0x1089 +0x81339138 0x108A +0x81339139 0x108B +0x81339230 0x108C +0x81339231 0x108D +0x81339232 0x108E +0x81339233 0x108F +0x81339234 0x1090 +0x81339235 0x1091 +0x81339236 0x1092 +0x81339237 0x1093 +0x81339238 0x1094 +0x81339239 0x1095 +0x81339330 0x1096 +0x81339331 0x1097 +0x81339332 0x1098 +0x81339333 0x1099 +0x81339334 0x109A +0x81339335 0x109B +0x81339336 0x109C +0x81339337 0x109D +0x81339338 0x109E +0x81339339 0x109F +0x81339430 0x10A0 +0x81339431 0x10A1 +0x81339432 0x10A2 +0x81339433 0x10A3 +0x81339434 0x10A4 +0x81339435 0x10A5 +0x81339436 0x10A6 +0x81339437 0x10A7 +0x81339438 0x10A8 +0x81339439 0x10A9 +0x81339530 0x10AA +0x81339531 0x10AB +0x81339532 0x10AC +0x81339533 0x10AD +0x81339534 0x10AE +0x81339535 0x10AF +0x81339536 0x10B0 +0x81339537 0x10B1 +0x81339538 0x10B2 +0x81339539 0x10B3 +0x81339630 0x10B4 +0x81339631 0x10B5 +0x81339632 0x10B6 +0x81339633 0x10B7 +0x81339634 0x10B8 +0x81339635 0x10B9 +0x81339636 0x10BA +0x81339637 0x10BB +0x81339638 0x10BC +0x81339639 0x10BD +0x81339730 0x10BE +0x81339731 0x10BF +0x81339732 0x10C0 +0x81339733 0x10C1 +0x81339734 0x10C2 +0x81339735 0x10C3 +0x81339736 0x10C4 +0x81339737 0x10C5 +0x81339738 0x10C6 +0x81339739 0x10C7 +0x81339830 0x10C8 +0x81339831 0x10C9 +0x81339832 0x10CA +0x81339833 0x10CB +0x81339834 0x10CC +0x81339835 0x10CD +0x81339836 0x10CE +0x81339837 0x10CF +0x81339838 0x10D0 +0x81339839 0x10D1 +0x81339930 0x10D2 +0x81339931 0x10D3 +0x81339932 0x10D4 +0x81339933 0x10D5 +0x81339934 0x10D6 +0x81339935 0x10D7 +0x81339936 0x10D8 +0x81339937 0x10D9 +0x81339938 0x10DA +0x81339939 0x10DB +0x81339A30 0x10DC +0x81339A31 0x10DD +0x81339A32 0x10DE +0x81339A33 0x10DF +0x81339A34 0x10E0 +0x81339A35 0x10E1 +0x81339A36 0x10E2 +0x81339A37 0x10E3 +0x81339A38 0x10E4 +0x81339A39 0x10E5 +0x81339B30 0x10E6 +0x81339B31 0x10E7 +0x81339B32 0x10E8 +0x81339B33 0x10E9 +0x81339B34 0x10EA +0x81339B35 0x10EB +0x81339B36 0x10EC +0x81339B37 0x10ED +0x81339B38 0x10EE +0x81339B39 0x10EF +0x81339C30 0x10F0 +0x81339C31 0x10F1 +0x81339C32 0x10F2 +0x81339C33 0x10F3 +0x81339C34 0x10F4 +0x81339C35 0x10F5 +0x81339C36 0x10F6 +0x81339C37 0x10F7 +0x81339C38 0x10F8 +0x81339C39 0x10F9 +0x81339D30 0x10FA +0x81339D31 0x10FB +0x81339D32 0x10FC +0x81339D33 0x10FD +0x81339D34 0x10FE +0x81339D35 0x10FF +0x81339D36 0x1100 +0x81339D37 0x1101 +0x81339D38 0x1102 +0x81339D39 0x1103 +0x81339E30 0x1104 +0x81339E31 0x1105 +0x81339E32 0x1106 +0x81339E33 0x1107 +0x81339E34 0x1108 +0x81339E35 0x1109 +0x81339E36 0x110A +0x81339E37 0x110B +0x81339E38 0x110C +0x81339E39 0x110D +0x81339F30 0x110E +0x81339F31 0x110F +0x81339F32 0x1110 +0x81339F33 0x1111 +0x81339F34 0x1112 +0x81339F35 0x1113 +0x81339F36 0x1114 +0x81339F37 0x1115 +0x81339F38 0x1116 +0x81339F39 0x1117 +0x8133A030 0x1118 +0x8133A031 0x1119 +0x8133A032 0x111A +0x8133A033 0x111B +0x8133A034 0x111C +0x8133A035 0x111D +0x8133A036 0x111E +0x8133A037 0x111F +0x8133A038 0x1120 +0x8133A039 0x1121 +0x8133A130 0x1122 +0x8133A131 0x1123 +0x8133A132 0x1124 +0x8133A133 0x1125 +0x8133A134 0x1126 +0x8133A135 0x1127 +0x8133A136 0x1128 +0x8133A137 0x1129 +0x8133A138 0x112A +0x8133A139 0x112B +0x8133A230 0x112C +0x8133A231 0x112D +0x8133A232 0x112E +0x8133A233 0x112F +0x8133A234 0x1130 +0x8133A235 0x1131 +0x8133A236 0x1132 +0x8133A237 0x1133 +0x8133A238 0x1134 +0x8133A239 0x1135 +0x8133A330 0x1136 +0x8133A331 0x1137 +0x8133A332 0x1138 +0x8133A333 0x1139 +0x8133A334 0x113A +0x8133A335 0x113B +0x8133A336 0x113C +0x8133A337 0x113D +0x8133A338 0x113E +0x8133A339 0x113F +0x8133A430 0x1140 +0x8133A431 0x1141 +0x8133A432 0x1142 +0x8133A433 0x1143 +0x8133A434 0x1144 +0x8133A435 0x1145 +0x8133A436 0x1146 +0x8133A437 0x1147 +0x8133A438 0x1148 +0x8133A439 0x1149 +0x8133A530 0x114A +0x8133A531 0x114B +0x8133A532 0x114C +0x8133A533 0x114D +0x8133A534 0x114E +0x8133A535 0x114F +0x8133A536 0x1150 +0x8133A537 0x1151 +0x8133A538 0x1152 +0x8133A539 0x1153 +0x8133A630 0x1154 +0x8133A631 0x1155 +0x8133A632 0x1156 +0x8133A633 0x1157 +0x8133A634 0x1158 +0x8133A635 0x1159 +0x8133A636 0x115A +0x8133A637 0x115B +0x8133A638 0x115C +0x8133A639 0x115D +0x8133A730 0x115E +0x8133A731 0x115F +0x8133A732 0x1160 +0x8133A733 0x1161 +0x8133A734 0x1162 +0x8133A735 0x1163 +0x8133A736 0x1164 +0x8133A737 0x1165 +0x8133A738 0x1166 +0x8133A739 0x1167 +0x8133A830 0x1168 +0x8133A831 0x1169 +0x8133A832 0x116A +0x8133A833 0x116B +0x8133A834 0x116C +0x8133A835 0x116D +0x8133A836 0x116E +0x8133A837 0x116F +0x8133A838 0x1170 +0x8133A839 0x1171 +0x8133A930 0x1172 +0x8133A931 0x1173 +0x8133A932 0x1174 +0x8133A933 0x1175 +0x8133A934 0x1176 +0x8133A935 0x1177 +0x8133A936 0x1178 +0x8133A937 0x1179 +0x8133A938 0x117A +0x8133A939 0x117B +0x8133AA30 0x117C +0x8133AA31 0x117D +0x8133AA32 0x117E +0x8133AA33 0x117F +0x8133AA34 0x1180 +0x8133AA35 0x1181 +0x8133AA36 0x1182 +0x8133AA37 0x1183 +0x8133AA38 0x1184 +0x8133AA39 0x1185 +0x8133AB30 0x1186 +0x8133AB31 0x1187 +0x8133AB32 0x1188 +0x8133AB33 0x1189 +0x8133AB34 0x118A +0x8133AB35 0x118B +0x8133AB36 0x118C +0x8133AB37 0x118D +0x8133AB38 0x118E +0x8133AB39 0x118F +0x8133AC30 0x1190 +0x8133AC31 0x1191 +0x8133AC32 0x1192 +0x8133AC33 0x1193 +0x8133AC34 0x1194 +0x8133AC35 0x1195 +0x8133AC36 0x1196 +0x8133AC37 0x1197 +0x8133AC38 0x1198 +0x8133AC39 0x1199 +0x8133AD30 0x119A +0x8133AD31 0x119B +0x8133AD32 0x119C +0x8133AD33 0x119D +0x8133AD34 0x119E +0x8133AD35 0x119F +0x8133AD36 0x11A0 +0x8133AD37 0x11A1 +0x8133AD38 0x11A2 +0x8133AD39 0x11A3 +0x8133AE30 0x11A4 +0x8133AE31 0x11A5 +0x8133AE32 0x11A6 +0x8133AE33 0x11A7 +0x8133AE34 0x11A8 +0x8133AE35 0x11A9 +0x8133AE36 0x11AA +0x8133AE37 0x11AB +0x8133AE38 0x11AC +0x8133AE39 0x11AD +0x8133AF30 0x11AE +0x8133AF31 0x11AF +0x8133AF32 0x11B0 +0x8133AF33 0x11B1 +0x8133AF34 0x11B2 +0x8133AF35 0x11B3 +0x8133AF36 0x11B4 +0x8133AF37 0x11B5 +0x8133AF38 0x11B6 +0x8133AF39 0x11B7 +0x8133B030 0x11B8 +0x8133B031 0x11B9 +0x8133B032 0x11BA +0x8133B033 0x11BB +0x8133B034 0x11BC +0x8133B035 0x11BD +0x8133B036 0x11BE +0x8133B037 0x11BF +0x8133B038 0x11C0 +0x8133B039 0x11C1 +0x8133B130 0x11C2 +0x8133B131 0x11C3 +0x8133B132 0x11C4 +0x8133B133 0x11C5 +0x8133B134 0x11C6 +0x8133B135 0x11C7 +0x8133B136 0x11C8 +0x8133B137 0x11C9 +0x8133B138 0x11CA +0x8133B139 0x11CB +0x8133B230 0x11CC +0x8133B231 0x11CD +0x8133B232 0x11CE +0x8133B233 0x11CF +0x8133B234 0x11D0 +0x8133B235 0x11D1 +0x8133B236 0x11D2 +0x8133B237 0x11D3 +0x8133B238 0x11D4 +0x8133B239 0x11D5 +0x8133B330 0x11D6 +0x8133B331 0x11D7 +0x8133B332 0x11D8 +0x8133B333 0x11D9 +0x8133B334 0x11DA +0x8133B335 0x11DB +0x8133B336 0x11DC +0x8133B337 0x11DD +0x8133B338 0x11DE +0x8133B339 0x11DF +0x8133B430 0x11E0 +0x8133B431 0x11E1 +0x8133B432 0x11E2 +0x8133B433 0x11E3 +0x8133B434 0x11E4 +0x8133B435 0x11E5 +0x8133B436 0x11E6 +0x8133B437 0x11E7 +0x8133B438 0x11E8 +0x8133B439 0x11E9 +0x8133B530 0x11EA +0x8133B531 0x11EB +0x8133B532 0x11EC +0x8133B533 0x11ED +0x8133B534 0x11EE +0x8133B535 0x11EF +0x8133B536 0x11F0 +0x8133B537 0x11F1 +0x8133B538 0x11F2 +0x8133B539 0x11F3 +0x8133B630 0x11F4 +0x8133B631 0x11F5 +0x8133B632 0x11F6 +0x8133B633 0x11F7 +0x8133B634 0x11F8 +0x8133B635 0x11F9 +0x8133B636 0x11FA +0x8133B637 0x11FB +0x8133B638 0x11FC +0x8133B639 0x11FD +0x8133B730 0x11FE +0x8133B731 0x11FF +0x8133B732 0x1200 +0x8133B733 0x1201 +0x8133B734 0x1202 +0x8133B735 0x1203 +0x8133B736 0x1204 +0x8133B737 0x1205 +0x8133B738 0x1206 +0x8133B739 0x1207 +0x8133B830 0x1208 +0x8133B831 0x1209 +0x8133B832 0x120A +0x8133B833 0x120B +0x8133B834 0x120C +0x8133B835 0x120D +0x8133B836 0x120E +0x8133B837 0x120F +0x8133B838 0x1210 +0x8133B839 0x1211 +0x8133B930 0x1212 +0x8133B931 0x1213 +0x8133B932 0x1214 +0x8133B933 0x1215 +0x8133B934 0x1216 +0x8133B935 0x1217 +0x8133B936 0x1218 +0x8133B937 0x1219 +0x8133B938 0x121A +0x8133B939 0x121B +0x8133BA30 0x121C +0x8133BA31 0x121D +0x8133BA32 0x121E +0x8133BA33 0x121F +0x8133BA34 0x1220 +0x8133BA35 0x1221 +0x8133BA36 0x1222 +0x8133BA37 0x1223 +0x8133BA38 0x1224 +0x8133BA39 0x1225 +0x8133BB30 0x1226 +0x8133BB31 0x1227 +0x8133BB32 0x1228 +0x8133BB33 0x1229 +0x8133BB34 0x122A +0x8133BB35 0x122B +0x8133BB36 0x122C +0x8133BB37 0x122D +0x8133BB38 0x122E +0x8133BB39 0x122F +0x8133BC30 0x1230 +0x8133BC31 0x1231 +0x8133BC32 0x1232 +0x8133BC33 0x1233 +0x8133BC34 0x1234 +0x8133BC35 0x1235 +0x8133BC36 0x1236 +0x8133BC37 0x1237 +0x8133BC38 0x1238 +0x8133BC39 0x1239 +0x8133BD30 0x123A +0x8133BD31 0x123B +0x8133BD32 0x123C +0x8133BD33 0x123D +0x8133BD34 0x123E +0x8133BD35 0x123F +0x8133BD36 0x1240 +0x8133BD37 0x1241 +0x8133BD38 0x1242 +0x8133BD39 0x1243 +0x8133BE30 0x1244 +0x8133BE31 0x1245 +0x8133BE32 0x1246 +0x8133BE33 0x1247 +0x8133BE34 0x1248 +0x8133BE35 0x1249 +0x8133BE36 0x124A +0x8133BE37 0x124B +0x8133BE38 0x124C +0x8133BE39 0x124D +0x8133BF30 0x124E +0x8133BF31 0x124F +0x8133BF32 0x1250 +0x8133BF33 0x1251 +0x8133BF34 0x1252 +0x8133BF35 0x1253 +0x8133BF36 0x1254 +0x8133BF37 0x1255 +0x8133BF38 0x1256 +0x8133BF39 0x1257 +0x8133C030 0x1258 +0x8133C031 0x1259 +0x8133C032 0x125A +0x8133C033 0x125B +0x8133C034 0x125C +0x8133C035 0x125D +0x8133C036 0x125E +0x8133C037 0x125F +0x8133C038 0x1260 +0x8133C039 0x1261 +0x8133C130 0x1262 +0x8133C131 0x1263 +0x8133C132 0x1264 +0x8133C133 0x1265 +0x8133C134 0x1266 +0x8133C135 0x1267 +0x8133C136 0x1268 +0x8133C137 0x1269 +0x8133C138 0x126A +0x8133C139 0x126B +0x8133C230 0x126C +0x8133C231 0x126D +0x8133C232 0x126E +0x8133C233 0x126F +0x8133C234 0x1270 +0x8133C235 0x1271 +0x8133C236 0x1272 +0x8133C237 0x1273 +0x8133C238 0x1274 +0x8133C239 0x1275 +0x8133C330 0x1276 +0x8133C331 0x1277 +0x8133C332 0x1278 +0x8133C333 0x1279 +0x8133C334 0x127A +0x8133C335 0x127B +0x8133C336 0x127C +0x8133C337 0x127D +0x8133C338 0x127E +0x8133C339 0x127F +0x8133C430 0x1280 +0x8133C431 0x1281 +0x8133C432 0x1282 +0x8133C433 0x1283 +0x8133C434 0x1284 +0x8133C435 0x1285 +0x8133C436 0x1286 +0x8133C437 0x1287 +0x8133C438 0x1288 +0x8133C439 0x1289 +0x8133C530 0x128A +0x8133C531 0x128B +0x8133C532 0x128C +0x8133C533 0x128D +0x8133C534 0x128E +0x8133C535 0x128F +0x8133C536 0x1290 +0x8133C537 0x1291 +0x8133C538 0x1292 +0x8133C539 0x1293 +0x8133C630 0x1294 +0x8133C631 0x1295 +0x8133C632 0x1296 +0x8133C633 0x1297 +0x8133C634 0x1298 +0x8133C635 0x1299 +0x8133C636 0x129A +0x8133C637 0x129B +0x8133C638 0x129C +0x8133C639 0x129D +0x8133C730 0x129E +0x8133C731 0x129F +0x8133C732 0x12A0 +0x8133C733 0x12A1 +0x8133C734 0x12A2 +0x8133C735 0x12A3 +0x8133C736 0x12A4 +0x8133C737 0x12A5 +0x8133C738 0x12A6 +0x8133C739 0x12A7 +0x8133C830 0x12A8 +0x8133C831 0x12A9 +0x8133C832 0x12AA +0x8133C833 0x12AB +0x8133C834 0x12AC +0x8133C835 0x12AD +0x8133C836 0x12AE +0x8133C837 0x12AF +0x8133C838 0x12B0 +0x8133C839 0x12B1 +0x8133C930 0x12B2 +0x8133C931 0x12B3 +0x8133C932 0x12B4 +0x8133C933 0x12B5 +0x8133C934 0x12B6 +0x8133C935 0x12B7 +0x8133C936 0x12B8 +0x8133C937 0x12B9 +0x8133C938 0x12BA +0x8133C939 0x12BB +0x8133CA30 0x12BC +0x8133CA31 0x12BD +0x8133CA32 0x12BE +0x8133CA33 0x12BF +0x8133CA34 0x12C0 +0x8133CA35 0x12C1 +0x8133CA36 0x12C2 +0x8133CA37 0x12C3 +0x8133CA38 0x12C4 +0x8133CA39 0x12C5 +0x8133CB30 0x12C6 +0x8133CB31 0x12C7 +0x8133CB32 0x12C8 +0x8133CB33 0x12C9 +0x8133CB34 0x12CA +0x8133CB35 0x12CB +0x8133CB36 0x12CC +0x8133CB37 0x12CD +0x8133CB38 0x12CE +0x8133CB39 0x12CF +0x8133CC30 0x12D0 +0x8133CC31 0x12D1 +0x8133CC32 0x12D2 +0x8133CC33 0x12D3 +0x8133CC34 0x12D4 +0x8133CC35 0x12D5 +0x8133CC36 0x12D6 +0x8133CC37 0x12D7 +0x8133CC38 0x12D8 +0x8133CC39 0x12D9 +0x8133CD30 0x12DA +0x8133CD31 0x12DB +0x8133CD32 0x12DC +0x8133CD33 0x12DD +0x8133CD34 0x12DE +0x8133CD35 0x12DF +0x8133CD36 0x12E0 +0x8133CD37 0x12E1 +0x8133CD38 0x12E2 +0x8133CD39 0x12E3 +0x8133CE30 0x12E4 +0x8133CE31 0x12E5 +0x8133CE32 0x12E6 +0x8133CE33 0x12E7 +0x8133CE34 0x12E8 +0x8133CE35 0x12E9 +0x8133CE36 0x12EA +0x8133CE37 0x12EB +0x8133CE38 0x12EC +0x8133CE39 0x12ED +0x8133CF30 0x12EE +0x8133CF31 0x12EF +0x8133CF32 0x12F0 +0x8133CF33 0x12F1 +0x8133CF34 0x12F2 +0x8133CF35 0x12F3 +0x8133CF36 0x12F4 +0x8133CF37 0x12F5 +0x8133CF38 0x12F6 +0x8133CF39 0x12F7 +0x8133D030 0x12F8 +0x8133D031 0x12F9 +0x8133D032 0x12FA +0x8133D033 0x12FB +0x8133D034 0x12FC +0x8133D035 0x12FD +0x8133D036 0x12FE +0x8133D037 0x12FF +0x8133D038 0x1300 +0x8133D039 0x1301 +0x8133D130 0x1302 +0x8133D131 0x1303 +0x8133D132 0x1304 +0x8133D133 0x1305 +0x8133D134 0x1306 +0x8133D135 0x1307 +0x8133D136 0x1308 +0x8133D137 0x1309 +0x8133D138 0x130A +0x8133D139 0x130B +0x8133D230 0x130C +0x8133D231 0x130D +0x8133D232 0x130E +0x8133D233 0x130F +0x8133D234 0x1310 +0x8133D235 0x1311 +0x8133D236 0x1312 +0x8133D237 0x1313 +0x8133D238 0x1314 +0x8133D239 0x1315 +0x8133D330 0x1316 +0x8133D331 0x1317 +0x8133D332 0x1318 +0x8133D333 0x1319 +0x8133D334 0x131A +0x8133D335 0x131B +0x8133D336 0x131C +0x8133D337 0x131D +0x8133D338 0x131E +0x8133D339 0x131F +0x8133D430 0x1320 +0x8133D431 0x1321 +0x8133D432 0x1322 +0x8133D433 0x1323 +0x8133D434 0x1324 +0x8133D435 0x1325 +0x8133D436 0x1326 +0x8133D437 0x1327 +0x8133D438 0x1328 +0x8133D439 0x1329 +0x8133D530 0x132A +0x8133D531 0x132B +0x8133D532 0x132C +0x8133D533 0x132D +0x8133D534 0x132E +0x8133D535 0x132F +0x8133D536 0x1330 +0x8133D537 0x1331 +0x8133D538 0x1332 +0x8133D539 0x1333 +0x8133D630 0x1334 +0x8133D631 0x1335 +0x8133D632 0x1336 +0x8133D633 0x1337 +0x8133D634 0x1338 +0x8133D635 0x1339 +0x8133D636 0x133A +0x8133D637 0x133B +0x8133D638 0x133C +0x8133D639 0x133D +0x8133D730 0x133E +0x8133D731 0x133F +0x8133D732 0x1340 +0x8133D733 0x1341 +0x8133D734 0x1342 +0x8133D735 0x1343 +0x8133D736 0x1344 +0x8133D737 0x1345 +0x8133D738 0x1346 +0x8133D739 0x1347 +0x8133D830 0x1348 +0x8133D831 0x1349 +0x8133D832 0x134A +0x8133D833 0x134B +0x8133D834 0x134C +0x8133D835 0x134D +0x8133D836 0x134E +0x8133D837 0x134F +0x8133D838 0x1350 +0x8133D839 0x1351 +0x8133D930 0x1352 +0x8133D931 0x1353 +0x8133D932 0x1354 +0x8133D933 0x1355 +0x8133D934 0x1356 +0x8133D935 0x1357 +0x8133D936 0x1358 +0x8133D937 0x1359 +0x8133D938 0x135A +0x8133D939 0x135B +0x8133DA30 0x135C +0x8133DA31 0x135D +0x8133DA32 0x135E +0x8133DA33 0x135F +0x8133DA34 0x1360 +0x8133DA35 0x1361 +0x8133DA36 0x1362 +0x8133DA37 0x1363 +0x8133DA38 0x1364 +0x8133DA39 0x1365 +0x8133DB30 0x1366 +0x8133DB31 0x1367 +0x8133DB32 0x1368 +0x8133DB33 0x1369 +0x8133DB34 0x136A +0x8133DB35 0x136B +0x8133DB36 0x136C +0x8133DB37 0x136D +0x8133DB38 0x136E +0x8133DB39 0x136F +0x8133DC30 0x1370 +0x8133DC31 0x1371 +0x8133DC32 0x1372 +0x8133DC33 0x1373 +0x8133DC34 0x1374 +0x8133DC35 0x1375 +0x8133DC36 0x1376 +0x8133DC37 0x1377 +0x8133DC38 0x1378 +0x8133DC39 0x1379 +0x8133DD30 0x137A +0x8133DD31 0x137B +0x8133DD32 0x137C +0x8133DD33 0x137D +0x8133DD34 0x137E +0x8133DD35 0x137F +0x8133DD36 0x1380 +0x8133DD37 0x1381 +0x8133DD38 0x1382 +0x8133DD39 0x1383 +0x8133DE30 0x1384 +0x8133DE31 0x1385 +0x8133DE32 0x1386 +0x8133DE33 0x1387 +0x8133DE34 0x1388 +0x8133DE35 0x1389 +0x8133DE36 0x138A +0x8133DE37 0x138B +0x8133DE38 0x138C +0x8133DE39 0x138D +0x8133DF30 0x138E +0x8133DF31 0x138F +0x8133DF32 0x1390 +0x8133DF33 0x1391 +0x8133DF34 0x1392 +0x8133DF35 0x1393 +0x8133DF36 0x1394 +0x8133DF37 0x1395 +0x8133DF38 0x1396 +0x8133DF39 0x1397 +0x8133E030 0x1398 +0x8133E031 0x1399 +0x8133E032 0x139A +0x8133E033 0x139B +0x8133E034 0x139C +0x8133E035 0x139D +0x8133E036 0x139E +0x8133E037 0x139F +0x8133E038 0x13A0 +0x8133E039 0x13A1 +0x8133E130 0x13A2 +0x8133E131 0x13A3 +0x8133E132 0x13A4 +0x8133E133 0x13A5 +0x8133E134 0x13A6 +0x8133E135 0x13A7 +0x8133E136 0x13A8 +0x8133E137 0x13A9 +0x8133E138 0x13AA +0x8133E139 0x13AB +0x8133E230 0x13AC +0x8133E231 0x13AD +0x8133E232 0x13AE +0x8133E233 0x13AF +0x8133E234 0x13B0 +0x8133E235 0x13B1 +0x8133E236 0x13B2 +0x8133E237 0x13B3 +0x8133E238 0x13B4 +0x8133E239 0x13B5 +0x8133E330 0x13B6 +0x8133E331 0x13B7 +0x8133E332 0x13B8 +0x8133E333 0x13B9 +0x8133E334 0x13BA +0x8133E335 0x13BB +0x8133E336 0x13BC +0x8133E337 0x13BD +0x8133E338 0x13BE +0x8133E339 0x13BF +0x8133E430 0x13C0 +0x8133E431 0x13C1 +0x8133E432 0x13C2 +0x8133E433 0x13C3 +0x8133E434 0x13C4 +0x8133E435 0x13C5 +0x8133E436 0x13C6 +0x8133E437 0x13C7 +0x8133E438 0x13C8 +0x8133E439 0x13C9 +0x8133E530 0x13CA +0x8133E531 0x13CB +0x8133E532 0x13CC +0x8133E533 0x13CD +0x8133E534 0x13CE +0x8133E535 0x13CF +0x8133E536 0x13D0 +0x8133E537 0x13D1 +0x8133E538 0x13D2 +0x8133E539 0x13D3 +0x8133E630 0x13D4 +0x8133E631 0x13D5 +0x8133E632 0x13D6 +0x8133E633 0x13D7 +0x8133E634 0x13D8 +0x8133E635 0x13D9 +0x8133E636 0x13DA +0x8133E637 0x13DB +0x8133E638 0x13DC +0x8133E639 0x13DD +0x8133E730 0x13DE +0x8133E731 0x13DF +0x8133E732 0x13E0 +0x8133E733 0x13E1 +0x8133E734 0x13E2 +0x8133E735 0x13E3 +0x8133E736 0x13E4 +0x8133E737 0x13E5 +0x8133E738 0x13E6 +0x8133E739 0x13E7 +0x8133E830 0x13E8 +0x8133E831 0x13E9 +0x8133E832 0x13EA +0x8133E833 0x13EB +0x8133E834 0x13EC +0x8133E835 0x13ED +0x8133E836 0x13EE +0x8133E837 0x13EF +0x8133E838 0x13F0 +0x8133E839 0x13F1 +0x8133E930 0x13F2 +0x8133E931 0x13F3 +0x8133E932 0x13F4 +0x8133E933 0x13F5 +0x8133E934 0x13F6 +0x8133E935 0x13F7 +0x8133E936 0x13F8 +0x8133E937 0x13F9 +0x8133E938 0x13FA +0x8133E939 0x13FB +0x8133EA30 0x13FC +0x8133EA31 0x13FD +0x8133EA32 0x13FE +0x8133EA33 0x13FF +0x8133EA34 0x1400 +0x8133EA35 0x1401 +0x8133EA36 0x1402 +0x8133EA37 0x1403 +0x8133EA38 0x1404 +0x8133EA39 0x1405 +0x8133EB30 0x1406 +0x8133EB31 0x1407 +0x8133EB32 0x1408 +0x8133EB33 0x1409 +0x8133EB34 0x140A +0x8133EB35 0x140B +0x8133EB36 0x140C +0x8133EB37 0x140D +0x8133EB38 0x140E +0x8133EB39 0x140F +0x8133EC30 0x1410 +0x8133EC31 0x1411 +0x8133EC32 0x1412 +0x8133EC33 0x1413 +0x8133EC34 0x1414 +0x8133EC35 0x1415 +0x8133EC36 0x1416 +0x8133EC37 0x1417 +0x8133EC38 0x1418 +0x8133EC39 0x1419 +0x8133ED30 0x141A +0x8133ED31 0x141B +0x8133ED32 0x141C +0x8133ED33 0x141D +0x8133ED34 0x141E +0x8133ED35 0x141F +0x8133ED36 0x1420 +0x8133ED37 0x1421 +0x8133ED38 0x1422 +0x8133ED39 0x1423 +0x8133EE30 0x1424 +0x8133EE31 0x1425 +0x8133EE32 0x1426 +0x8133EE33 0x1427 +0x8133EE34 0x1428 +0x8133EE35 0x1429 +0x8133EE36 0x142A +0x8133EE37 0x142B +0x8133EE38 0x142C +0x8133EE39 0x142D +0x8133EF30 0x142E +0x8133EF31 0x142F +0x8133EF32 0x1430 +0x8133EF33 0x1431 +0x8133EF34 0x1432 +0x8133EF35 0x1433 +0x8133EF36 0x1434 +0x8133EF37 0x1435 +0x8133EF38 0x1436 +0x8133EF39 0x1437 +0x8133F030 0x1438 +0x8133F031 0x1439 +0x8133F032 0x143A +0x8133F033 0x143B +0x8133F034 0x143C +0x8133F035 0x143D +0x8133F036 0x143E +0x8133F037 0x143F +0x8133F038 0x1440 +0x8133F039 0x1441 +0x8133F130 0x1442 +0x8133F131 0x1443 +0x8133F132 0x1444 +0x8133F133 0x1445 +0x8133F134 0x1446 +0x8133F135 0x1447 +0x8133F136 0x1448 +0x8133F137 0x1449 +0x8133F138 0x144A +0x8133F139 0x144B +0x8133F230 0x144C +0x8133F231 0x144D +0x8133F232 0x144E +0x8133F233 0x144F +0x8133F234 0x1450 +0x8133F235 0x1451 +0x8133F236 0x1452 +0x8133F237 0x1453 +0x8133F238 0x1454 +0x8133F239 0x1455 +0x8133F330 0x1456 +0x8133F331 0x1457 +0x8133F332 0x1458 +0x8133F333 0x1459 +0x8133F334 0x145A +0x8133F335 0x145B +0x8133F336 0x145C +0x8133F337 0x145D +0x8133F338 0x145E +0x8133F339 0x145F +0x8133F430 0x1460 +0x8133F431 0x1461 +0x8133F432 0x1462 +0x8133F433 0x1463 +0x8133F434 0x1464 +0x8133F435 0x1465 +0x8133F436 0x1466 +0x8133F437 0x1467 +0x8133F438 0x1468 +0x8133F439 0x1469 +0x8133F530 0x146A +0x8133F531 0x146B +0x8133F532 0x146C +0x8133F533 0x146D +0x8133F534 0x146E +0x8133F535 0x146F +0x8133F536 0x1470 +0x8133F537 0x1471 +0x8133F538 0x1472 +0x8133F539 0x1473 +0x8133F630 0x1474 +0x8133F631 0x1475 +0x8133F632 0x1476 +0x8133F633 0x1477 +0x8133F634 0x1478 +0x8133F635 0x1479 +0x8133F636 0x147A +0x8133F637 0x147B +0x8133F638 0x147C +0x8133F639 0x147D +0x8133F730 0x147E +0x8133F731 0x147F +0x8133F732 0x1480 +0x8133F733 0x1481 +0x8133F734 0x1482 +0x8133F735 0x1483 +0x8133F736 0x1484 +0x8133F737 0x1485 +0x8133F738 0x1486 +0x8133F739 0x1487 +0x8133F830 0x1488 +0x8133F831 0x1489 +0x8133F832 0x148A +0x8133F833 0x148B +0x8133F834 0x148C +0x8133F835 0x148D +0x8133F836 0x148E +0x8133F837 0x148F +0x8133F838 0x1490 +0x8133F839 0x1491 +0x8133F930 0x1492 +0x8133F931 0x1493 +0x8133F932 0x1494 +0x8133F933 0x1495 +0x8133F934 0x1496 +0x8133F935 0x1497 +0x8133F936 0x1498 +0x8133F937 0x1499 +0x8133F938 0x149A +0x8133F939 0x149B +0x8133FA30 0x149C +0x8133FA31 0x149D +0x8133FA32 0x149E +0x8133FA33 0x149F +0x8133FA34 0x14A0 +0x8133FA35 0x14A1 +0x8133FA36 0x14A2 +0x8133FA37 0x14A3 +0x8133FA38 0x14A4 +0x8133FA39 0x14A5 +0x8133FB30 0x14A6 +0x8133FB31 0x14A7 +0x8133FB32 0x14A8 +0x8133FB33 0x14A9 +0x8133FB34 0x14AA +0x8133FB35 0x14AB +0x8133FB36 0x14AC +0x8133FB37 0x14AD +0x8133FB38 0x14AE +0x8133FB39 0x14AF +0x8133FC30 0x14B0 +0x8133FC31 0x14B1 +0x8133FC32 0x14B2 +0x8133FC33 0x14B3 +0x8133FC34 0x14B4 +0x8133FC35 0x14B5 +0x8133FC36 0x14B6 +0x8133FC37 0x14B7 +0x8133FC38 0x14B8 +0x8133FC39 0x14B9 +0x8133FD30 0x14BA +0x8133FD31 0x14BB +0x8133FD32 0x14BC +0x8133FD33 0x14BD +0x8133FD34 0x14BE +0x8133FD35 0x14BF +0x8133FD36 0x14C0 +0x8133FD37 0x14C1 +0x8133FD38 0x14C2 +0x8133FD39 0x14C3 +0x8133FE30 0x14C4 +0x8133FE31 0x14C5 +0x8133FE32 0x14C6 +0x8133FE33 0x14C7 +0x8133FE34 0x14C8 +0x8133FE35 0x14C9 +0x8133FE36 0x14CA +0x8133FE37 0x14CB +0x8133FE38 0x14CC +0x8133FE39 0x14CD +0x81348130 0x14CE +0x81348131 0x14CF +0x81348132 0x14D0 +0x81348133 0x14D1 +0x81348134 0x14D2 +0x81348135 0x14D3 +0x81348136 0x14D4 +0x81348137 0x14D5 +0x81348138 0x14D6 +0x81348139 0x14D7 +0x81348230 0x14D8 +0x81348231 0x14D9 +0x81348232 0x14DA +0x81348233 0x14DB +0x81348234 0x14DC +0x81348235 0x14DD +0x81348236 0x14DE +0x81348237 0x14DF +0x81348238 0x14E0 +0x81348239 0x14E1 +0x81348330 0x14E2 +0x81348331 0x14E3 +0x81348332 0x14E4 +0x81348333 0x14E5 +0x81348334 0x14E6 +0x81348335 0x14E7 +0x81348336 0x14E8 +0x81348337 0x14E9 +0x81348338 0x14EA +0x81348339 0x14EB +0x81348430 0x14EC +0x81348431 0x14ED +0x81348432 0x14EE +0x81348433 0x14EF +0x81348434 0x14F0 +0x81348435 0x14F1 +0x81348436 0x14F2 +0x81348437 0x14F3 +0x81348438 0x14F4 +0x81348439 0x14F5 +0x81348530 0x14F6 +0x81348531 0x14F7 +0x81348532 0x14F8 +0x81348533 0x14F9 +0x81348534 0x14FA +0x81348535 0x14FB +0x81348536 0x14FC +0x81348537 0x14FD +0x81348538 0x14FE +0x81348539 0x14FF +0x81348630 0x1500 +0x81348631 0x1501 +0x81348632 0x1502 +0x81348633 0x1503 +0x81348634 0x1504 +0x81348635 0x1505 +0x81348636 0x1506 +0x81348637 0x1507 +0x81348638 0x1508 +0x81348639 0x1509 +0x81348730 0x150A +0x81348731 0x150B +0x81348732 0x150C +0x81348733 0x150D +0x81348734 0x150E +0x81348735 0x150F +0x81348736 0x1510 +0x81348737 0x1511 +0x81348738 0x1512 +0x81348739 0x1513 +0x81348830 0x1514 +0x81348831 0x1515 +0x81348832 0x1516 +0x81348833 0x1517 +0x81348834 0x1518 +0x81348835 0x1519 +0x81348836 0x151A +0x81348837 0x151B +0x81348838 0x151C +0x81348839 0x151D +0x81348930 0x151E +0x81348931 0x151F +0x81348932 0x1520 +0x81348933 0x1521 +0x81348934 0x1522 +0x81348935 0x1523 +0x81348936 0x1524 +0x81348937 0x1525 +0x81348938 0x1526 +0x81348939 0x1527 +0x81348A30 0x1528 +0x81348A31 0x1529 +0x81348A32 0x152A +0x81348A33 0x152B +0x81348A34 0x152C +0x81348A35 0x152D +0x81348A36 0x152E +0x81348A37 0x152F +0x81348A38 0x1530 +0x81348A39 0x1531 +0x81348B30 0x1532 +0x81348B31 0x1533 +0x81348B32 0x1534 +0x81348B33 0x1535 +0x81348B34 0x1536 +0x81348B35 0x1537 +0x81348B36 0x1538 +0x81348B37 0x1539 +0x81348B38 0x153A +0x81348B39 0x153B +0x81348C30 0x153C +0x81348C31 0x153D +0x81348C32 0x153E +0x81348C33 0x153F +0x81348C34 0x1540 +0x81348C35 0x1541 +0x81348C36 0x1542 +0x81348C37 0x1543 +0x81348C38 0x1544 +0x81348C39 0x1545 +0x81348D30 0x1546 +0x81348D31 0x1547 +0x81348D32 0x1548 +0x81348D33 0x1549 +0x81348D34 0x154A +0x81348D35 0x154B +0x81348D36 0x154C +0x81348D37 0x154D +0x81348D38 0x154E +0x81348D39 0x154F +0x81348E30 0x1550 +0x81348E31 0x1551 +0x81348E32 0x1552 +0x81348E33 0x1553 +0x81348E34 0x1554 +0x81348E35 0x1555 +0x81348E36 0x1556 +0x81348E37 0x1557 +0x81348E38 0x1558 +0x81348E39 0x1559 +0x81348F30 0x155A +0x81348F31 0x155B +0x81348F32 0x155C +0x81348F33 0x155D +0x81348F34 0x155E +0x81348F35 0x155F +0x81348F36 0x1560 +0x81348F37 0x1561 +0x81348F38 0x1562 +0x81348F39 0x1563 +0x81349030 0x1564 +0x81349031 0x1565 +0x81349032 0x1566 +0x81349033 0x1567 +0x81349034 0x1568 +0x81349035 0x1569 +0x81349036 0x156A +0x81349037 0x156B +0x81349038 0x156C +0x81349039 0x156D +0x81349130 0x156E +0x81349131 0x156F +0x81349132 0x1570 +0x81349133 0x1571 +0x81349134 0x1572 +0x81349135 0x1573 +0x81349136 0x1574 +0x81349137 0x1575 +0x81349138 0x1576 +0x81349139 0x1577 +0x81349230 0x1578 +0x81349231 0x1579 +0x81349232 0x157A +0x81349233 0x157B +0x81349234 0x157C +0x81349235 0x157D +0x81349236 0x157E +0x81349237 0x157F +0x81349238 0x1580 +0x81349239 0x1581 +0x81349330 0x1582 +0x81349331 0x1583 +0x81349332 0x1584 +0x81349333 0x1585 +0x81349334 0x1586 +0x81349335 0x1587 +0x81349336 0x1588 +0x81349337 0x1589 +0x81349338 0x158A +0x81349339 0x158B +0x81349430 0x158C +0x81349431 0x158D +0x81349432 0x158E +0x81349433 0x158F +0x81349434 0x1590 +0x81349435 0x1591 +0x81349436 0x1592 +0x81349437 0x1593 +0x81349438 0x1594 +0x81349439 0x1595 +0x81349530 0x1596 +0x81349531 0x1597 +0x81349532 0x1598 +0x81349533 0x1599 +0x81349534 0x159A +0x81349535 0x159B +0x81349536 0x159C +0x81349537 0x159D +0x81349538 0x159E +0x81349539 0x159F +0x81349630 0x15A0 +0x81349631 0x15A1 +0x81349632 0x15A2 +0x81349633 0x15A3 +0x81349634 0x15A4 +0x81349635 0x15A5 +0x81349636 0x15A6 +0x81349637 0x15A7 +0x81349638 0x15A8 +0x81349639 0x15A9 +0x81349730 0x15AA +0x81349731 0x15AB +0x81349732 0x15AC +0x81349733 0x15AD +0x81349734 0x15AE +0x81349735 0x15AF +0x81349736 0x15B0 +0x81349737 0x15B1 +0x81349738 0x15B2 +0x81349739 0x15B3 +0x81349830 0x15B4 +0x81349831 0x15B5 +0x81349832 0x15B6 +0x81349833 0x15B7 +0x81349834 0x15B8 +0x81349835 0x15B9 +0x81349836 0x15BA +0x81349837 0x15BB +0x81349838 0x15BC +0x81349839 0x15BD +0x81349930 0x15BE +0x81349931 0x15BF +0x81349932 0x15C0 +0x81349933 0x15C1 +0x81349934 0x15C2 +0x81349935 0x15C3 +0x81349936 0x15C4 +0x81349937 0x15C5 +0x81349938 0x15C6 +0x81349939 0x15C7 +0x81349A30 0x15C8 +0x81349A31 0x15C9 +0x81349A32 0x15CA +0x81349A33 0x15CB +0x81349A34 0x15CC +0x81349A35 0x15CD +0x81349A36 0x15CE +0x81349A37 0x15CF +0x81349A38 0x15D0 +0x81349A39 0x15D1 +0x81349B30 0x15D2 +0x81349B31 0x15D3 +0x81349B32 0x15D4 +0x81349B33 0x15D5 +0x81349B34 0x15D6 +0x81349B35 0x15D7 +0x81349B36 0x15D8 +0x81349B37 0x15D9 +0x81349B38 0x15DA +0x81349B39 0x15DB +0x81349C30 0x15DC +0x81349C31 0x15DD +0x81349C32 0x15DE +0x81349C33 0x15DF +0x81349C34 0x15E0 +0x81349C35 0x15E1 +0x81349C36 0x15E2 +0x81349C37 0x15E3 +0x81349C38 0x15E4 +0x81349C39 0x15E5 +0x81349D30 0x15E6 +0x81349D31 0x15E7 +0x81349D32 0x15E8 +0x81349D33 0x15E9 +0x81349D34 0x15EA +0x81349D35 0x15EB +0x81349D36 0x15EC +0x81349D37 0x15ED +0x81349D38 0x15EE +0x81349D39 0x15EF +0x81349E30 0x15F0 +0x81349E31 0x15F1 +0x81349E32 0x15F2 +0x81349E33 0x15F3 +0x81349E34 0x15F4 +0x81349E35 0x15F5 +0x81349E36 0x15F6 +0x81349E37 0x15F7 +0x81349E38 0x15F8 +0x81349E39 0x15F9 +0x81349F30 0x15FA +0x81349F31 0x15FB +0x81349F32 0x15FC +0x81349F33 0x15FD +0x81349F34 0x15FE +0x81349F35 0x15FF +0x81349F36 0x1600 +0x81349F37 0x1601 +0x81349F38 0x1602 +0x81349F39 0x1603 +0x8134A030 0x1604 +0x8134A031 0x1605 +0x8134A032 0x1606 +0x8134A033 0x1607 +0x8134A034 0x1608 +0x8134A035 0x1609 +0x8134A036 0x160A +0x8134A037 0x160B +0x8134A038 0x160C +0x8134A039 0x160D +0x8134A130 0x160E +0x8134A131 0x160F +0x8134A132 0x1610 +0x8134A133 0x1611 +0x8134A134 0x1612 +0x8134A135 0x1613 +0x8134A136 0x1614 +0x8134A137 0x1615 +0x8134A138 0x1616 +0x8134A139 0x1617 +0x8134A230 0x1618 +0x8134A231 0x1619 +0x8134A232 0x161A +0x8134A233 0x161B +0x8134A234 0x161C +0x8134A235 0x161D +0x8134A236 0x161E +0x8134A237 0x161F +0x8134A238 0x1620 +0x8134A239 0x1621 +0x8134A330 0x1622 +0x8134A331 0x1623 +0x8134A332 0x1624 +0x8134A333 0x1625 +0x8134A334 0x1626 +0x8134A335 0x1627 +0x8134A336 0x1628 +0x8134A337 0x1629 +0x8134A338 0x162A +0x8134A339 0x162B +0x8134A430 0x162C +0x8134A431 0x162D +0x8134A432 0x162E +0x8134A433 0x162F +0x8134A434 0x1630 +0x8134A435 0x1631 +0x8134A436 0x1632 +0x8134A437 0x1633 +0x8134A438 0x1634 +0x8134A439 0x1635 +0x8134A530 0x1636 +0x8134A531 0x1637 +0x8134A532 0x1638 +0x8134A533 0x1639 +0x8134A534 0x163A +0x8134A535 0x163B +0x8134A536 0x163C +0x8134A537 0x163D +0x8134A538 0x163E +0x8134A539 0x163F +0x8134A630 0x1640 +0x8134A631 0x1641 +0x8134A632 0x1642 +0x8134A633 0x1643 +0x8134A634 0x1644 +0x8134A635 0x1645 +0x8134A636 0x1646 +0x8134A637 0x1647 +0x8134A638 0x1648 +0x8134A639 0x1649 +0x8134A730 0x164A +0x8134A731 0x164B +0x8134A732 0x164C +0x8134A733 0x164D +0x8134A734 0x164E +0x8134A735 0x164F +0x8134A736 0x1650 +0x8134A737 0x1651 +0x8134A738 0x1652 +0x8134A739 0x1653 +0x8134A830 0x1654 +0x8134A831 0x1655 +0x8134A832 0x1656 +0x8134A833 0x1657 +0x8134A834 0x1658 +0x8134A835 0x1659 +0x8134A836 0x165A +0x8134A837 0x165B +0x8134A838 0x165C +0x8134A839 0x165D +0x8134A930 0x165E +0x8134A931 0x165F +0x8134A932 0x1660 +0x8134A933 0x1661 +0x8134A934 0x1662 +0x8134A935 0x1663 +0x8134A936 0x1664 +0x8134A937 0x1665 +0x8134A938 0x1666 +0x8134A939 0x1667 +0x8134AA30 0x1668 +0x8134AA31 0x1669 +0x8134AA32 0x166A +0x8134AA33 0x166B +0x8134AA34 0x166C +0x8134AA35 0x166D +0x8134AA36 0x166E +0x8134AA37 0x166F +0x8134AA38 0x1670 +0x8134AA39 0x1671 +0x8134AB30 0x1672 +0x8134AB31 0x1673 +0x8134AB32 0x1674 +0x8134AB33 0x1675 +0x8134AB34 0x1676 +0x8134AB35 0x1677 +0x8134AB36 0x1678 +0x8134AB37 0x1679 +0x8134AB38 0x167A +0x8134AB39 0x167B +0x8134AC30 0x167C +0x8134AC31 0x167D +0x8134AC32 0x167E +0x8134AC33 0x167F +0x8134AC34 0x1680 +0x8134AC35 0x1681 +0x8134AC36 0x1682 +0x8134AC37 0x1683 +0x8134AC38 0x1684 +0x8134AC39 0x1685 +0x8134AD30 0x1686 +0x8134AD31 0x1687 +0x8134AD32 0x1688 +0x8134AD33 0x1689 +0x8134AD34 0x168A +0x8134AD35 0x168B +0x8134AD36 0x168C +0x8134AD37 0x168D +0x8134AD38 0x168E +0x8134AD39 0x168F +0x8134AE30 0x1690 +0x8134AE31 0x1691 +0x8134AE32 0x1692 +0x8134AE33 0x1693 +0x8134AE34 0x1694 +0x8134AE35 0x1695 +0x8134AE36 0x1696 +0x8134AE37 0x1697 +0x8134AE38 0x1698 +0x8134AE39 0x1699 +0x8134AF30 0x169A +0x8134AF31 0x169B +0x8134AF32 0x169C +0x8134AF33 0x169D +0x8134AF34 0x169E +0x8134AF35 0x169F +0x8134AF36 0x16A0 +0x8134AF37 0x16A1 +0x8134AF38 0x16A2 +0x8134AF39 0x16A3 +0x8134B030 0x16A4 +0x8134B031 0x16A5 +0x8134B032 0x16A6 +0x8134B033 0x16A7 +0x8134B034 0x16A8 +0x8134B035 0x16A9 +0x8134B036 0x16AA +0x8134B037 0x16AB +0x8134B038 0x16AC +0x8134B039 0x16AD +0x8134B130 0x16AE +0x8134B131 0x16AF +0x8134B132 0x16B0 +0x8134B133 0x16B1 +0x8134B134 0x16B2 +0x8134B135 0x16B3 +0x8134B136 0x16B4 +0x8134B137 0x16B5 +0x8134B138 0x16B6 +0x8134B139 0x16B7 +0x8134B230 0x16B8 +0x8134B231 0x16B9 +0x8134B232 0x16BA +0x8134B233 0x16BB +0x8134B234 0x16BC +0x8134B235 0x16BD +0x8134B236 0x16BE +0x8134B237 0x16BF +0x8134B238 0x16C0 +0x8134B239 0x16C1 +0x8134B330 0x16C2 +0x8134B331 0x16C3 +0x8134B332 0x16C4 +0x8134B333 0x16C5 +0x8134B334 0x16C6 +0x8134B335 0x16C7 +0x8134B336 0x16C8 +0x8134B337 0x16C9 +0x8134B338 0x16CA +0x8134B339 0x16CB +0x8134B430 0x16CC +0x8134B431 0x16CD +0x8134B432 0x16CE +0x8134B433 0x16CF +0x8134B434 0x16D0 +0x8134B435 0x16D1 +0x8134B436 0x16D2 +0x8134B437 0x16D3 +0x8134B438 0x16D4 +0x8134B439 0x16D5 +0x8134B530 0x16D6 +0x8134B531 0x16D7 +0x8134B532 0x16D8 +0x8134B533 0x16D9 +0x8134B534 0x16DA +0x8134B535 0x16DB +0x8134B536 0x16DC +0x8134B537 0x16DD +0x8134B538 0x16DE +0x8134B539 0x16DF +0x8134B630 0x16E0 +0x8134B631 0x16E1 +0x8134B632 0x16E2 +0x8134B633 0x16E3 +0x8134B634 0x16E4 +0x8134B635 0x16E5 +0x8134B636 0x16E6 +0x8134B637 0x16E7 +0x8134B638 0x16E8 +0x8134B639 0x16E9 +0x8134B730 0x16EA +0x8134B731 0x16EB +0x8134B732 0x16EC +0x8134B733 0x16ED +0x8134B734 0x16EE +0x8134B735 0x16EF +0x8134B736 0x16F0 +0x8134B737 0x16F1 +0x8134B738 0x16F2 +0x8134B739 0x16F3 +0x8134B830 0x16F4 +0x8134B831 0x16F5 +0x8134B832 0x16F6 +0x8134B833 0x16F7 +0x8134B834 0x16F8 +0x8134B835 0x16F9 +0x8134B836 0x16FA +0x8134B837 0x16FB +0x8134B838 0x16FC +0x8134B839 0x16FD +0x8134B930 0x16FE +0x8134B931 0x16FF +0x8134B932 0x1700 +0x8134B933 0x1701 +0x8134B934 0x1702 +0x8134B935 0x1703 +0x8134B936 0x1704 +0x8134B937 0x1705 +0x8134B938 0x1706 +0x8134B939 0x1707 +0x8134BA30 0x1708 +0x8134BA31 0x1709 +0x8134BA32 0x170A +0x8134BA33 0x170B +0x8134BA34 0x170C +0x8134BA35 0x170D +0x8134BA36 0x170E +0x8134BA37 0x170F +0x8134BA38 0x1710 +0x8134BA39 0x1711 +0x8134BB30 0x1712 +0x8134BB31 0x1713 +0x8134BB32 0x1714 +0x8134BB33 0x1715 +0x8134BB34 0x1716 +0x8134BB35 0x1717 +0x8134BB36 0x1718 +0x8134BB37 0x1719 +0x8134BB38 0x171A +0x8134BB39 0x171B +0x8134BC30 0x171C +0x8134BC31 0x171D +0x8134BC32 0x171E +0x8134BC33 0x171F +0x8134BC34 0x1720 +0x8134BC35 0x1721 +0x8134BC36 0x1722 +0x8134BC37 0x1723 +0x8134BC38 0x1724 +0x8134BC39 0x1725 +0x8134BD30 0x1726 +0x8134BD31 0x1727 +0x8134BD32 0x1728 +0x8134BD33 0x1729 +0x8134BD34 0x172A +0x8134BD35 0x172B +0x8134BD36 0x172C +0x8134BD37 0x172D +0x8134BD38 0x172E +0x8134BD39 0x172F +0x8134BE30 0x1730 +0x8134BE31 0x1731 +0x8134BE32 0x1732 +0x8134BE33 0x1733 +0x8134BE34 0x1734 +0x8134BE35 0x1735 +0x8134BE36 0x1736 +0x8134BE37 0x1737 +0x8134BE38 0x1738 +0x8134BE39 0x1739 +0x8134BF30 0x173A +0x8134BF31 0x173B +0x8134BF32 0x173C +0x8134BF33 0x173D +0x8134BF34 0x173E +0x8134BF35 0x173F +0x8134BF36 0x1740 +0x8134BF37 0x1741 +0x8134BF38 0x1742 +0x8134BF39 0x1743 +0x8134C030 0x1744 +0x8134C031 0x1745 +0x8134C032 0x1746 +0x8134C033 0x1747 +0x8134C034 0x1748 +0x8134C035 0x1749 +0x8134C036 0x174A +0x8134C037 0x174B +0x8134C038 0x174C +0x8134C039 0x174D +0x8134C130 0x174E +0x8134C131 0x174F +0x8134C132 0x1750 +0x8134C133 0x1751 +0x8134C134 0x1752 +0x8134C135 0x1753 +0x8134C136 0x1754 +0x8134C137 0x1755 +0x8134C138 0x1756 +0x8134C139 0x1757 +0x8134C230 0x1758 +0x8134C231 0x1759 +0x8134C232 0x175A +0x8134C233 0x175B +0x8134C234 0x175C +0x8134C235 0x175D +0x8134C236 0x175E +0x8134C237 0x175F +0x8134C238 0x1760 +0x8134C239 0x1761 +0x8134C330 0x1762 +0x8134C331 0x1763 +0x8134C332 0x1764 +0x8134C333 0x1765 +0x8134C334 0x1766 +0x8134C335 0x1767 +0x8134C336 0x1768 +0x8134C337 0x1769 +0x8134C338 0x176A +0x8134C339 0x176B +0x8134C430 0x176C +0x8134C431 0x176D +0x8134C432 0x176E +0x8134C433 0x176F +0x8134C434 0x1770 +0x8134C435 0x1771 +0x8134C436 0x1772 +0x8134C437 0x1773 +0x8134C438 0x1774 +0x8134C439 0x1775 +0x8134C530 0x1776 +0x8134C531 0x1777 +0x8134C532 0x1778 +0x8134C533 0x1779 +0x8134C534 0x177A +0x8134C535 0x177B +0x8134C536 0x177C +0x8134C537 0x177D +0x8134C538 0x177E +0x8134C539 0x177F +0x8134C630 0x1780 +0x8134C631 0x1781 +0x8134C632 0x1782 +0x8134C633 0x1783 +0x8134C634 0x1784 +0x8134C635 0x1785 +0x8134C636 0x1786 +0x8134C637 0x1787 +0x8134C638 0x1788 +0x8134C639 0x1789 +0x8134C730 0x178A +0x8134C731 0x178B +0x8134C732 0x178C +0x8134C733 0x178D +0x8134C734 0x178E +0x8134C735 0x178F +0x8134C736 0x1790 +0x8134C737 0x1791 +0x8134C738 0x1792 +0x8134C739 0x1793 +0x8134C830 0x1794 +0x8134C831 0x1795 +0x8134C832 0x1796 +0x8134C833 0x1797 +0x8134C834 0x1798 +0x8134C835 0x1799 +0x8134C836 0x179A +0x8134C837 0x179B +0x8134C838 0x179C +0x8134C839 0x179D +0x8134C930 0x179E +0x8134C931 0x179F +0x8134C932 0x17A0 +0x8134C933 0x17A1 +0x8134C934 0x17A2 +0x8134C935 0x17A3 +0x8134C936 0x17A4 +0x8134C937 0x17A5 +0x8134C938 0x17A6 +0x8134C939 0x17A7 +0x8134CA30 0x17A8 +0x8134CA31 0x17A9 +0x8134CA32 0x17AA +0x8134CA33 0x17AB +0x8134CA34 0x17AC +0x8134CA35 0x17AD +0x8134CA36 0x17AE +0x8134CA37 0x17AF +0x8134CA38 0x17B0 +0x8134CA39 0x17B1 +0x8134CB30 0x17B2 +0x8134CB31 0x17B3 +0x8134CB32 0x17B4 +0x8134CB33 0x17B5 +0x8134CB34 0x17B6 +0x8134CB35 0x17B7 +0x8134CB36 0x17B8 +0x8134CB37 0x17B9 +0x8134CB38 0x17BA +0x8134CB39 0x17BB +0x8134CC30 0x17BC +0x8134CC31 0x17BD +0x8134CC32 0x17BE +0x8134CC33 0x17BF +0x8134CC34 0x17C0 +0x8134CC35 0x17C1 +0x8134CC36 0x17C2 +0x8134CC37 0x17C3 +0x8134CC38 0x17C4 +0x8134CC39 0x17C5 +0x8134CD30 0x17C6 +0x8134CD31 0x17C7 +0x8134CD32 0x17C8 +0x8134CD33 0x17C9 +0x8134CD34 0x17CA +0x8134CD35 0x17CB +0x8134CD36 0x17CC +0x8134CD37 0x17CD +0x8134CD38 0x17CE +0x8134CD39 0x17CF +0x8134CE30 0x17D0 +0x8134CE31 0x17D1 +0x8134CE32 0x17D2 +0x8134CE33 0x17D3 +0x8134CE34 0x17D4 +0x8134CE35 0x17D5 +0x8134CE36 0x17D6 +0x8134CE37 0x17D7 +0x8134CE38 0x17D8 +0x8134CE39 0x17D9 +0x8134CF30 0x17DA +0x8134CF31 0x17DB +0x8134CF32 0x17DC +0x8134CF33 0x17DD +0x8134CF34 0x17DE +0x8134CF35 0x17DF +0x8134CF36 0x17E0 +0x8134CF37 0x17E1 +0x8134CF38 0x17E2 +0x8134CF39 0x17E3 +0x8134D030 0x17E4 +0x8134D031 0x17E5 +0x8134D032 0x17E6 +0x8134D033 0x17E7 +0x8134D034 0x17E8 +0x8134D035 0x17E9 +0x8134D036 0x17EA +0x8134D037 0x17EB +0x8134D038 0x17EC +0x8134D039 0x17ED +0x8134D130 0x17EE +0x8134D131 0x17EF +0x8134D132 0x17F0 +0x8134D133 0x17F1 +0x8134D134 0x17F2 +0x8134D135 0x17F3 +0x8134D136 0x17F4 +0x8134D137 0x17F5 +0x8134D138 0x17F6 +0x8134D139 0x17F7 +0x8134D230 0x17F8 +0x8134D231 0x17F9 +0x8134D232 0x17FA +0x8134D233 0x17FB +0x8134D234 0x17FC +0x8134D235 0x17FD +0x8134D236 0x17FE +0x8134D237 0x17FF +0x8134D238 0x1800 +0x8134D239 0x1801 +0x8134D330 0x1802 +0x8134D331 0x1803 +0x8134D332 0x1804 +0x8134D333 0x1805 +0x8134D334 0x1806 +0x8134D335 0x1807 +0x8134D336 0x1808 +0x8134D337 0x1809 +0x8134D338 0x180A +0x8134D339 0x180B +0x8134D430 0x180C +0x8134D431 0x180D +0x8134D432 0x180E +0x8134D433 0x180F +0x8134D434 0x1810 +0x8134D435 0x1811 +0x8134D436 0x1812 +0x8134D437 0x1813 +0x8134D438 0x1814 +0x8134D439 0x1815 +0x8134D530 0x1816 +0x8134D531 0x1817 +0x8134D532 0x1818 +0x8134D533 0x1819 +0x8134D534 0x181A +0x8134D535 0x181B +0x8134D536 0x181C +0x8134D537 0x181D +0x8134D538 0x181E +0x8134D539 0x181F +0x8134D630 0x1820 +0x8134D631 0x1821 +0x8134D632 0x1822 +0x8134D633 0x1823 +0x8134D634 0x1824 +0x8134D635 0x1825 +0x8134D636 0x1826 +0x8134D637 0x1827 +0x8134D638 0x1828 +0x8134D639 0x1829 +0x8134D730 0x182A +0x8134D731 0x182B +0x8134D732 0x182C +0x8134D733 0x182D +0x8134D734 0x182E +0x8134D735 0x182F +0x8134D736 0x1830 +0x8134D737 0x1831 +0x8134D738 0x1832 +0x8134D739 0x1833 +0x8134D830 0x1834 +0x8134D831 0x1835 +0x8134D832 0x1836 +0x8134D833 0x1837 +0x8134D834 0x1838 +0x8134D835 0x1839 +0x8134D836 0x183A +0x8134D837 0x183B +0x8134D838 0x183C +0x8134D839 0x183D +0x8134D930 0x183E +0x8134D931 0x183F +0x8134D932 0x1840 +0x8134D933 0x1841 +0x8134D934 0x1842 +0x8134D935 0x1843 +0x8134D936 0x1844 +0x8134D937 0x1845 +0x8134D938 0x1846 +0x8134D939 0x1847 +0x8134DA30 0x1848 +0x8134DA31 0x1849 +0x8134DA32 0x184A +0x8134DA33 0x184B +0x8134DA34 0x184C +0x8134DA35 0x184D +0x8134DA36 0x184E +0x8134DA37 0x184F +0x8134DA38 0x1850 +0x8134DA39 0x1851 +0x8134DB30 0x1852 +0x8134DB31 0x1853 +0x8134DB32 0x1854 +0x8134DB33 0x1855 +0x8134DB34 0x1856 +0x8134DB35 0x1857 +0x8134DB36 0x1858 +0x8134DB37 0x1859 +0x8134DB38 0x185A +0x8134DB39 0x185B +0x8134DC30 0x185C +0x8134DC31 0x185D +0x8134DC32 0x185E +0x8134DC33 0x185F +0x8134DC34 0x1860 +0x8134DC35 0x1861 +0x8134DC36 0x1862 +0x8134DC37 0x1863 +0x8134DC38 0x1864 +0x8134DC39 0x1865 +0x8134DD30 0x1866 +0x8134DD31 0x1867 +0x8134DD32 0x1868 +0x8134DD33 0x1869 +0x8134DD34 0x186A +0x8134DD35 0x186B +0x8134DD36 0x186C +0x8134DD37 0x186D +0x8134DD38 0x186E +0x8134DD39 0x186F +0x8134DE30 0x1870 +0x8134DE31 0x1871 +0x8134DE32 0x1872 +0x8134DE33 0x1873 +0x8134DE34 0x1874 +0x8134DE35 0x1875 +0x8134DE36 0x1876 +0x8134DE37 0x1877 +0x8134DE38 0x1878 +0x8134DE39 0x1879 +0x8134DF30 0x187A +0x8134DF31 0x187B +0x8134DF32 0x187C +0x8134DF33 0x187D +0x8134DF34 0x187E +0x8134DF35 0x187F +0x8134DF36 0x1880 +0x8134DF37 0x1881 +0x8134DF38 0x1882 +0x8134DF39 0x1883 +0x8134E030 0x1884 +0x8134E031 0x1885 +0x8134E032 0x1886 +0x8134E033 0x1887 +0x8134E034 0x1888 +0x8134E035 0x1889 +0x8134E036 0x188A +0x8134E037 0x188B +0x8134E038 0x188C +0x8134E039 0x188D +0x8134E130 0x188E +0x8134E131 0x188F +0x8134E132 0x1890 +0x8134E133 0x1891 +0x8134E134 0x1892 +0x8134E135 0x1893 +0x8134E136 0x1894 +0x8134E137 0x1895 +0x8134E138 0x1896 +0x8134E139 0x1897 +0x8134E230 0x1898 +0x8134E231 0x1899 +0x8134E232 0x189A +0x8134E233 0x189B +0x8134E234 0x189C +0x8134E235 0x189D +0x8134E236 0x189E +0x8134E237 0x189F +0x8134E238 0x18A0 +0x8134E239 0x18A1 +0x8134E330 0x18A2 +0x8134E331 0x18A3 +0x8134E332 0x18A4 +0x8134E333 0x18A5 +0x8134E334 0x18A6 +0x8134E335 0x18A7 +0x8134E336 0x18A8 +0x8134E337 0x18A9 +0x8134E338 0x18AA +0x8134E339 0x18AB +0x8134E430 0x18AC +0x8134E431 0x18AD +0x8134E432 0x18AE +0x8134E433 0x18AF +0x8134E434 0x18B0 +0x8134E435 0x18B1 +0x8134E436 0x18B2 +0x8134E437 0x18B3 +0x8134E438 0x18B4 +0x8134E439 0x18B5 +0x8134E530 0x18B6 +0x8134E531 0x18B7 +0x8134E532 0x18B8 +0x8134E533 0x18B9 +0x8134E534 0x18BA +0x8134E535 0x18BB +0x8134E536 0x18BC +0x8134E537 0x18BD +0x8134E538 0x18BE +0x8134E539 0x18BF +0x8134E630 0x18C0 +0x8134E631 0x18C1 +0x8134E632 0x18C2 +0x8134E633 0x18C3 +0x8134E634 0x18C4 +0x8134E635 0x18C5 +0x8134E636 0x18C6 +0x8134E637 0x18C7 +0x8134E638 0x18C8 +0x8134E639 0x18C9 +0x8134E730 0x18CA +0x8134E731 0x18CB +0x8134E732 0x18CC +0x8134E733 0x18CD +0x8134E734 0x18CE +0x8134E735 0x18CF +0x8134E736 0x18D0 +0x8134E737 0x18D1 +0x8134E738 0x18D2 +0x8134E739 0x18D3 +0x8134E830 0x18D4 +0x8134E831 0x18D5 +0x8134E832 0x18D6 +0x8134E833 0x18D7 +0x8134E834 0x18D8 +0x8134E835 0x18D9 +0x8134E836 0x18DA +0x8134E837 0x18DB +0x8134E838 0x18DC +0x8134E839 0x18DD +0x8134E930 0x18DE +0x8134E931 0x18DF +0x8134E932 0x18E0 +0x8134E933 0x18E1 +0x8134E934 0x18E2 +0x8134E935 0x18E3 +0x8134E936 0x18E4 +0x8134E937 0x18E5 +0x8134E938 0x18E6 +0x8134E939 0x18E7 +0x8134EA30 0x18E8 +0x8134EA31 0x18E9 +0x8134EA32 0x18EA +0x8134EA33 0x18EB +0x8134EA34 0x18EC +0x8134EA35 0x18ED +0x8134EA36 0x18EE +0x8134EA37 0x18EF +0x8134EA38 0x18F0 +0x8134EA39 0x18F1 +0x8134EB30 0x18F2 +0x8134EB31 0x18F3 +0x8134EB32 0x18F4 +0x8134EB33 0x18F5 +0x8134EB34 0x18F6 +0x8134EB35 0x18F7 +0x8134EB36 0x18F8 +0x8134EB37 0x18F9 +0x8134EB38 0x18FA +0x8134EB39 0x18FB +0x8134EC30 0x18FC +0x8134EC31 0x18FD +0x8134EC32 0x18FE +0x8134EC33 0x18FF +0x8134EC34 0x1900 +0x8134EC35 0x1901 +0x8134EC36 0x1902 +0x8134EC37 0x1903 +0x8134EC38 0x1904 +0x8134EC39 0x1905 +0x8134ED30 0x1906 +0x8134ED31 0x1907 +0x8134ED32 0x1908 +0x8134ED33 0x1909 +0x8134ED34 0x190A +0x8134ED35 0x190B +0x8134ED36 0x190C +0x8134ED37 0x190D +0x8134ED38 0x190E +0x8134ED39 0x190F +0x8134EE30 0x1910 +0x8134EE31 0x1911 +0x8134EE32 0x1912 +0x8134EE33 0x1913 +0x8134EE34 0x1914 +0x8134EE35 0x1915 +0x8134EE36 0x1916 +0x8134EE37 0x1917 +0x8134EE38 0x1918 +0x8134EE39 0x1919 +0x8134EF30 0x191A +0x8134EF31 0x191B +0x8134EF32 0x191C +0x8134EF33 0x191D +0x8134EF34 0x191E +0x8134EF35 0x191F +0x8134EF36 0x1920 +0x8134EF37 0x1921 +0x8134EF38 0x1922 +0x8134EF39 0x1923 +0x8134F030 0x1924 +0x8134F031 0x1925 +0x8134F032 0x1926 +0x8134F033 0x1927 +0x8134F034 0x1928 +0x8134F035 0x1929 +0x8134F036 0x192A +0x8134F037 0x192B +0x8134F038 0x192C +0x8134F039 0x192D +0x8134F130 0x192E +0x8134F131 0x192F +0x8134F132 0x1930 +0x8134F133 0x1931 +0x8134F134 0x1932 +0x8134F135 0x1933 +0x8134F136 0x1934 +0x8134F137 0x1935 +0x8134F138 0x1936 +0x8134F139 0x1937 +0x8134F230 0x1938 +0x8134F231 0x1939 +0x8134F232 0x193A +0x8134F233 0x193B +0x8134F234 0x193C +0x8134F235 0x193D +0x8134F236 0x193E +0x8134F237 0x193F +0x8134F238 0x1940 +0x8134F239 0x1941 +0x8134F330 0x1942 +0x8134F331 0x1943 +0x8134F332 0x1944 +0x8134F333 0x1945 +0x8134F334 0x1946 +0x8134F335 0x1947 +0x8134F336 0x1948 +0x8134F337 0x1949 +0x8134F338 0x194A +0x8134F339 0x194B +0x8134F430 0x194C +0x8134F431 0x194D +0x8134F432 0x194E +0x8134F433 0x194F +0x8134F434 0x1950 +0x8134F435 0x1951 +0x8134F436 0x1952 +0x8134F437 0x1953 +0x8134F438 0x1954 +0x8134F439 0x1955 +0x8134F530 0x1956 +0x8134F531 0x1957 +0x8134F532 0x1958 +0x8134F533 0x1959 +0x8134F534 0x195A +0x8134F535 0x195B +0x8134F536 0x195C +0x8134F537 0x195D +0x8134F538 0x195E +0x8134F539 0x195F +0x8134F630 0x1960 +0x8134F631 0x1961 +0x8134F632 0x1962 +0x8134F633 0x1963 +0x8134F634 0x1964 +0x8134F635 0x1965 +0x8134F636 0x1966 +0x8134F637 0x1967 +0x8134F638 0x1968 +0x8134F639 0x1969 +0x8134F730 0x196A +0x8134F731 0x196B +0x8134F732 0x196C +0x8134F733 0x196D +0x8134F734 0x196E +0x8134F735 0x196F +0x8134F736 0x1970 +0x8134F737 0x1971 +0x8134F738 0x1972 +0x8134F739 0x1973 +0x8134F830 0x1974 +0x8134F831 0x1975 +0x8134F832 0x1976 +0x8134F833 0x1977 +0x8134F834 0x1978 +0x8134F835 0x1979 +0x8134F836 0x197A +0x8134F837 0x197B +0x8134F838 0x197C +0x8134F839 0x197D +0x8134F930 0x197E +0x8134F931 0x197F +0x8134F932 0x1980 +0x8134F933 0x1981 +0x8134F934 0x1982 +0x8134F935 0x1983 +0x8134F936 0x1984 +0x8134F937 0x1985 +0x8134F938 0x1986 +0x8134F939 0x1987 +0x8134FA30 0x1988 +0x8134FA31 0x1989 +0x8134FA32 0x198A +0x8134FA33 0x198B +0x8134FA34 0x198C +0x8134FA35 0x198D +0x8134FA36 0x198E +0x8134FA37 0x198F +0x8134FA38 0x1990 +0x8134FA39 0x1991 +0x8134FB30 0x1992 +0x8134FB31 0x1993 +0x8134FB32 0x1994 +0x8134FB33 0x1995 +0x8134FB34 0x1996 +0x8134FB35 0x1997 +0x8134FB36 0x1998 +0x8134FB37 0x1999 +0x8134FB38 0x199A +0x8134FB39 0x199B +0x8134FC30 0x199C +0x8134FC31 0x199D +0x8134FC32 0x199E +0x8134FC33 0x199F +0x8134FC34 0x19A0 +0x8134FC35 0x19A1 +0x8134FC36 0x19A2 +0x8134FC37 0x19A3 +0x8134FC38 0x19A4 +0x8134FC39 0x19A5 +0x8134FD30 0x19A6 +0x8134FD31 0x19A7 +0x8134FD32 0x19A8 +0x8134FD33 0x19A9 +0x8134FD34 0x19AA +0x8134FD35 0x19AB +0x8134FD36 0x19AC +0x8134FD37 0x19AD +0x8134FD38 0x19AE +0x8134FD39 0x19AF +0x8134FE30 0x19B0 +0x8134FE31 0x19B1 +0x8134FE32 0x19B2 +0x8134FE33 0x19B3 +0x8134FE34 0x19B4 +0x8134FE35 0x19B5 +0x8134FE36 0x19B6 +0x8134FE37 0x19B7 +0x8134FE38 0x19B8 +0x8134FE39 0x19B9 +0x81358130 0x19BA +0x81358131 0x19BB +0x81358132 0x19BC +0x81358133 0x19BD +0x81358134 0x19BE +0x81358135 0x19BF +0x81358136 0x19C0 +0x81358137 0x19C1 +0x81358138 0x19C2 +0x81358139 0x19C3 +0x81358230 0x19C4 +0x81358231 0x19C5 +0x81358232 0x19C6 +0x81358233 0x19C7 +0x81358234 0x19C8 +0x81358235 0x19C9 +0x81358236 0x19CA +0x81358237 0x19CB +0x81358238 0x19CC +0x81358239 0x19CD +0x81358330 0x19CE +0x81358331 0x19CF +0x81358332 0x19D0 +0x81358333 0x19D1 +0x81358334 0x19D2 +0x81358335 0x19D3 +0x81358336 0x19D4 +0x81358337 0x19D5 +0x81358338 0x19D6 +0x81358339 0x19D7 +0x81358430 0x19D8 +0x81358431 0x19D9 +0x81358432 0x19DA +0x81358433 0x19DB +0x81358434 0x19DC +0x81358435 0x19DD +0x81358436 0x19DE +0x81358437 0x19DF +0x81358438 0x19E0 +0x81358439 0x19E1 +0x81358530 0x19E2 +0x81358531 0x19E3 +0x81358532 0x19E4 +0x81358533 0x19E5 +0x81358534 0x19E6 +0x81358535 0x19E7 +0x81358536 0x19E8 +0x81358537 0x19E9 +0x81358538 0x19EA +0x81358539 0x19EB +0x81358630 0x19EC +0x81358631 0x19ED +0x81358632 0x19EE +0x81358633 0x19EF +0x81358634 0x19F0 +0x81358635 0x19F1 +0x81358636 0x19F2 +0x81358637 0x19F3 +0x81358638 0x19F4 +0x81358639 0x19F5 +0x81358730 0x19F6 +0x81358731 0x19F7 +0x81358732 0x19F8 +0x81358733 0x19F9 +0x81358734 0x19FA +0x81358735 0x19FB +0x81358736 0x19FC +0x81358737 0x19FD +0x81358738 0x19FE +0x81358739 0x19FF +0x81358830 0x1A00 +0x81358831 0x1A01 +0x81358832 0x1A02 +0x81358833 0x1A03 +0x81358834 0x1A04 +0x81358835 0x1A05 +0x81358836 0x1A06 +0x81358837 0x1A07 +0x81358838 0x1A08 +0x81358839 0x1A09 +0x81358930 0x1A0A +0x81358931 0x1A0B +0x81358932 0x1A0C +0x81358933 0x1A0D +0x81358934 0x1A0E +0x81358935 0x1A0F +0x81358936 0x1A10 +0x81358937 0x1A11 +0x81358938 0x1A12 +0x81358939 0x1A13 +0x81358A30 0x1A14 +0x81358A31 0x1A15 +0x81358A32 0x1A16 +0x81358A33 0x1A17 +0x81358A34 0x1A18 +0x81358A35 0x1A19 +0x81358A36 0x1A1A +0x81358A37 0x1A1B +0x81358A38 0x1A1C +0x81358A39 0x1A1D +0x81358B30 0x1A1E +0x81358B31 0x1A1F +0x81358B32 0x1A20 +0x81358B33 0x1A21 +0x81358B34 0x1A22 +0x81358B35 0x1A23 +0x81358B36 0x1A24 +0x81358B37 0x1A25 +0x81358B38 0x1A26 +0x81358B39 0x1A27 +0x81358C30 0x1A28 +0x81358C31 0x1A29 +0x81358C32 0x1A2A +0x81358C33 0x1A2B +0x81358C34 0x1A2C +0x81358C35 0x1A2D +0x81358C36 0x1A2E +0x81358C37 0x1A2F +0x81358C38 0x1A30 +0x81358C39 0x1A31 +0x81358D30 0x1A32 +0x81358D31 0x1A33 +0x81358D32 0x1A34 +0x81358D33 0x1A35 +0x81358D34 0x1A36 +0x81358D35 0x1A37 +0x81358D36 0x1A38 +0x81358D37 0x1A39 +0x81358D38 0x1A3A +0x81358D39 0x1A3B +0x81358E30 0x1A3C +0x81358E31 0x1A3D +0x81358E32 0x1A3E +0x81358E33 0x1A3F +0x81358E34 0x1A40 +0x81358E35 0x1A41 +0x81358E36 0x1A42 +0x81358E37 0x1A43 +0x81358E38 0x1A44 +0x81358E39 0x1A45 +0x81358F30 0x1A46 +0x81358F31 0x1A47 +0x81358F32 0x1A48 +0x81358F33 0x1A49 +0x81358F34 0x1A4A +0x81358F35 0x1A4B +0x81358F36 0x1A4C +0x81358F37 0x1A4D +0x81358F38 0x1A4E +0x81358F39 0x1A4F +0x81359030 0x1A50 +0x81359031 0x1A51 +0x81359032 0x1A52 +0x81359033 0x1A53 +0x81359034 0x1A54 +0x81359035 0x1A55 +0x81359036 0x1A56 +0x81359037 0x1A57 +0x81359038 0x1A58 +0x81359039 0x1A59 +0x81359130 0x1A5A +0x81359131 0x1A5B +0x81359132 0x1A5C +0x81359133 0x1A5D +0x81359134 0x1A5E +0x81359135 0x1A5F +0x81359136 0x1A60 +0x81359137 0x1A61 +0x81359138 0x1A62 +0x81359139 0x1A63 +0x81359230 0x1A64 +0x81359231 0x1A65 +0x81359232 0x1A66 +0x81359233 0x1A67 +0x81359234 0x1A68 +0x81359235 0x1A69 +0x81359236 0x1A6A +0x81359237 0x1A6B +0x81359238 0x1A6C +0x81359239 0x1A6D +0x81359330 0x1A6E +0x81359331 0x1A6F +0x81359332 0x1A70 +0x81359333 0x1A71 +0x81359334 0x1A72 +0x81359335 0x1A73 +0x81359336 0x1A74 +0x81359337 0x1A75 +0x81359338 0x1A76 +0x81359339 0x1A77 +0x81359430 0x1A78 +0x81359431 0x1A79 +0x81359432 0x1A7A +0x81359433 0x1A7B +0x81359434 0x1A7C +0x81359435 0x1A7D +0x81359436 0x1A7E +0x81359437 0x1A7F +0x81359438 0x1A80 +0x81359439 0x1A81 +0x81359530 0x1A82 +0x81359531 0x1A83 +0x81359532 0x1A84 +0x81359533 0x1A85 +0x81359534 0x1A86 +0x81359535 0x1A87 +0x81359536 0x1A88 +0x81359537 0x1A89 +0x81359538 0x1A8A +0x81359539 0x1A8B +0x81359630 0x1A8C +0x81359631 0x1A8D +0x81359632 0x1A8E +0x81359633 0x1A8F +0x81359634 0x1A90 +0x81359635 0x1A91 +0x81359636 0x1A92 +0x81359637 0x1A93 +0x81359638 0x1A94 +0x81359639 0x1A95 +0x81359730 0x1A96 +0x81359731 0x1A97 +0x81359732 0x1A98 +0x81359733 0x1A99 +0x81359734 0x1A9A +0x81359735 0x1A9B +0x81359736 0x1A9C +0x81359737 0x1A9D +0x81359738 0x1A9E +0x81359739 0x1A9F +0x81359830 0x1AA0 +0x81359831 0x1AA1 +0x81359832 0x1AA2 +0x81359833 0x1AA3 +0x81359834 0x1AA4 +0x81359835 0x1AA5 +0x81359836 0x1AA6 +0x81359837 0x1AA7 +0x81359838 0x1AA8 +0x81359839 0x1AA9 +0x81359930 0x1AAA +0x81359931 0x1AAB +0x81359932 0x1AAC +0x81359933 0x1AAD +0x81359934 0x1AAE +0x81359935 0x1AAF +0x81359936 0x1AB0 +0x81359937 0x1AB1 +0x81359938 0x1AB2 +0x81359939 0x1AB3 +0x81359A30 0x1AB4 +0x81359A31 0x1AB5 +0x81359A32 0x1AB6 +0x81359A33 0x1AB7 +0x81359A34 0x1AB8 +0x81359A35 0x1AB9 +0x81359A36 0x1ABA +0x81359A37 0x1ABB +0x81359A38 0x1ABC +0x81359A39 0x1ABD +0x81359B30 0x1ABE +0x81359B31 0x1ABF +0x81359B32 0x1AC0 +0x81359B33 0x1AC1 +0x81359B34 0x1AC2 +0x81359B35 0x1AC3 +0x81359B36 0x1AC4 +0x81359B37 0x1AC5 +0x81359B38 0x1AC6 +0x81359B39 0x1AC7 +0x81359C30 0x1AC8 +0x81359C31 0x1AC9 +0x81359C32 0x1ACA +0x81359C33 0x1ACB +0x81359C34 0x1ACC +0x81359C35 0x1ACD +0x81359C36 0x1ACE +0x81359C37 0x1ACF +0x81359C38 0x1AD0 +0x81359C39 0x1AD1 +0x81359D30 0x1AD2 +0x81359D31 0x1AD3 +0x81359D32 0x1AD4 +0x81359D33 0x1AD5 +0x81359D34 0x1AD6 +0x81359D35 0x1AD7 +0x81359D36 0x1AD8 +0x81359D37 0x1AD9 +0x81359D38 0x1ADA +0x81359D39 0x1ADB +0x81359E30 0x1ADC +0x81359E31 0x1ADD +0x81359E32 0x1ADE +0x81359E33 0x1ADF +0x81359E34 0x1AE0 +0x81359E35 0x1AE1 +0x81359E36 0x1AE2 +0x81359E37 0x1AE3 +0x81359E38 0x1AE4 +0x81359E39 0x1AE5 +0x81359F30 0x1AE6 +0x81359F31 0x1AE7 +0x81359F32 0x1AE8 +0x81359F33 0x1AE9 +0x81359F34 0x1AEA +0x81359F35 0x1AEB +0x81359F36 0x1AEC +0x81359F37 0x1AED +0x81359F38 0x1AEE +0x81359F39 0x1AEF +0x8135A030 0x1AF0 +0x8135A031 0x1AF1 +0x8135A032 0x1AF2 +0x8135A033 0x1AF3 +0x8135A034 0x1AF4 +0x8135A035 0x1AF5 +0x8135A036 0x1AF6 +0x8135A037 0x1AF7 +0x8135A038 0x1AF8 +0x8135A039 0x1AF9 +0x8135A130 0x1AFA +0x8135A131 0x1AFB +0x8135A132 0x1AFC +0x8135A133 0x1AFD +0x8135A134 0x1AFE +0x8135A135 0x1AFF +0x8135A136 0x1B00 +0x8135A137 0x1B01 +0x8135A138 0x1B02 +0x8135A139 0x1B03 +0x8135A230 0x1B04 +0x8135A231 0x1B05 +0x8135A232 0x1B06 +0x8135A233 0x1B07 +0x8135A234 0x1B08 +0x8135A235 0x1B09 +0x8135A236 0x1B0A +0x8135A237 0x1B0B +0x8135A238 0x1B0C +0x8135A239 0x1B0D +0x8135A330 0x1B0E +0x8135A331 0x1B0F +0x8135A332 0x1B10 +0x8135A333 0x1B11 +0x8135A334 0x1B12 +0x8135A335 0x1B13 +0x8135A336 0x1B14 +0x8135A337 0x1B15 +0x8135A338 0x1B16 +0x8135A339 0x1B17 +0x8135A430 0x1B18 +0x8135A431 0x1B19 +0x8135A432 0x1B1A +0x8135A433 0x1B1B +0x8135A434 0x1B1C +0x8135A435 0x1B1D +0x8135A436 0x1B1E +0x8135A437 0x1B1F +0x8135A438 0x1B20 +0x8135A439 0x1B21 +0x8135A530 0x1B22 +0x8135A531 0x1B23 +0x8135A532 0x1B24 +0x8135A533 0x1B25 +0x8135A534 0x1B26 +0x8135A535 0x1B27 +0x8135A536 0x1B28 +0x8135A537 0x1B29 +0x8135A538 0x1B2A +0x8135A539 0x1B2B +0x8135A630 0x1B2C +0x8135A631 0x1B2D +0x8135A632 0x1B2E +0x8135A633 0x1B2F +0x8135A634 0x1B30 +0x8135A635 0x1B31 +0x8135A636 0x1B32 +0x8135A637 0x1B33 +0x8135A638 0x1B34 +0x8135A639 0x1B35 +0x8135A730 0x1B36 +0x8135A731 0x1B37 +0x8135A732 0x1B38 +0x8135A733 0x1B39 +0x8135A734 0x1B3A +0x8135A735 0x1B3B +0x8135A736 0x1B3C +0x8135A737 0x1B3D +0x8135A738 0x1B3E +0x8135A739 0x1B3F +0x8135A830 0x1B40 +0x8135A831 0x1B41 +0x8135A832 0x1B42 +0x8135A833 0x1B43 +0x8135A834 0x1B44 +0x8135A835 0x1B45 +0x8135A836 0x1B46 +0x8135A837 0x1B47 +0x8135A838 0x1B48 +0x8135A839 0x1B49 +0x8135A930 0x1B4A +0x8135A931 0x1B4B +0x8135A932 0x1B4C +0x8135A933 0x1B4D +0x8135A934 0x1B4E +0x8135A935 0x1B4F +0x8135A936 0x1B50 +0x8135A937 0x1B51 +0x8135A938 0x1B52 +0x8135A939 0x1B53 +0x8135AA30 0x1B54 +0x8135AA31 0x1B55 +0x8135AA32 0x1B56 +0x8135AA33 0x1B57 +0x8135AA34 0x1B58 +0x8135AA35 0x1B59 +0x8135AA36 0x1B5A +0x8135AA37 0x1B5B +0x8135AA38 0x1B5C +0x8135AA39 0x1B5D +0x8135AB30 0x1B5E +0x8135AB31 0x1B5F +0x8135AB32 0x1B60 +0x8135AB33 0x1B61 +0x8135AB34 0x1B62 +0x8135AB35 0x1B63 +0x8135AB36 0x1B64 +0x8135AB37 0x1B65 +0x8135AB38 0x1B66 +0x8135AB39 0x1B67 +0x8135AC30 0x1B68 +0x8135AC31 0x1B69 +0x8135AC32 0x1B6A +0x8135AC33 0x1B6B +0x8135AC34 0x1B6C +0x8135AC35 0x1B6D +0x8135AC36 0x1B6E +0x8135AC37 0x1B6F +0x8135AC38 0x1B70 +0x8135AC39 0x1B71 +0x8135AD30 0x1B72 +0x8135AD31 0x1B73 +0x8135AD32 0x1B74 +0x8135AD33 0x1B75 +0x8135AD34 0x1B76 +0x8135AD35 0x1B77 +0x8135AD36 0x1B78 +0x8135AD37 0x1B79 +0x8135AD38 0x1B7A +0x8135AD39 0x1B7B +0x8135AE30 0x1B7C +0x8135AE31 0x1B7D +0x8135AE32 0x1B7E +0x8135AE33 0x1B7F +0x8135AE34 0x1B80 +0x8135AE35 0x1B81 +0x8135AE36 0x1B82 +0x8135AE37 0x1B83 +0x8135AE38 0x1B84 +0x8135AE39 0x1B85 +0x8135AF30 0x1B86 +0x8135AF31 0x1B87 +0x8135AF32 0x1B88 +0x8135AF33 0x1B89 +0x8135AF34 0x1B8A +0x8135AF35 0x1B8B +0x8135AF36 0x1B8C +0x8135AF37 0x1B8D +0x8135AF38 0x1B8E +0x8135AF39 0x1B8F +0x8135B030 0x1B90 +0x8135B031 0x1B91 +0x8135B032 0x1B92 +0x8135B033 0x1B93 +0x8135B034 0x1B94 +0x8135B035 0x1B95 +0x8135B036 0x1B96 +0x8135B037 0x1B97 +0x8135B038 0x1B98 +0x8135B039 0x1B99 +0x8135B130 0x1B9A +0x8135B131 0x1B9B +0x8135B132 0x1B9C +0x8135B133 0x1B9D +0x8135B134 0x1B9E +0x8135B135 0x1B9F +0x8135B136 0x1BA0 +0x8135B137 0x1BA1 +0x8135B138 0x1BA2 +0x8135B139 0x1BA3 +0x8135B230 0x1BA4 +0x8135B231 0x1BA5 +0x8135B232 0x1BA6 +0x8135B233 0x1BA7 +0x8135B234 0x1BA8 +0x8135B235 0x1BA9 +0x8135B236 0x1BAA +0x8135B237 0x1BAB +0x8135B238 0x1BAC +0x8135B239 0x1BAD +0x8135B330 0x1BAE +0x8135B331 0x1BAF +0x8135B332 0x1BB0 +0x8135B333 0x1BB1 +0x8135B334 0x1BB2 +0x8135B335 0x1BB3 +0x8135B336 0x1BB4 +0x8135B337 0x1BB5 +0x8135B338 0x1BB6 +0x8135B339 0x1BB7 +0x8135B430 0x1BB8 +0x8135B431 0x1BB9 +0x8135B432 0x1BBA +0x8135B433 0x1BBB +0x8135B434 0x1BBC +0x8135B435 0x1BBD +0x8135B436 0x1BBE +0x8135B437 0x1BBF +0x8135B438 0x1BC0 +0x8135B439 0x1BC1 +0x8135B530 0x1BC2 +0x8135B531 0x1BC3 +0x8135B532 0x1BC4 +0x8135B533 0x1BC5 +0x8135B534 0x1BC6 +0x8135B535 0x1BC7 +0x8135B536 0x1BC8 +0x8135B537 0x1BC9 +0x8135B538 0x1BCA +0x8135B539 0x1BCB +0x8135B630 0x1BCC +0x8135B631 0x1BCD +0x8135B632 0x1BCE +0x8135B633 0x1BCF +0x8135B634 0x1BD0 +0x8135B635 0x1BD1 +0x8135B636 0x1BD2 +0x8135B637 0x1BD3 +0x8135B638 0x1BD4 +0x8135B639 0x1BD5 +0x8135B730 0x1BD6 +0x8135B731 0x1BD7 +0x8135B732 0x1BD8 +0x8135B733 0x1BD9 +0x8135B734 0x1BDA +0x8135B735 0x1BDB +0x8135B736 0x1BDC +0x8135B737 0x1BDD +0x8135B738 0x1BDE +0x8135B739 0x1BDF +0x8135B830 0x1BE0 +0x8135B831 0x1BE1 +0x8135B832 0x1BE2 +0x8135B833 0x1BE3 +0x8135B834 0x1BE4 +0x8135B835 0x1BE5 +0x8135B836 0x1BE6 +0x8135B837 0x1BE7 +0x8135B838 0x1BE8 +0x8135B839 0x1BE9 +0x8135B930 0x1BEA +0x8135B931 0x1BEB +0x8135B932 0x1BEC +0x8135B933 0x1BED +0x8135B934 0x1BEE +0x8135B935 0x1BEF +0x8135B936 0x1BF0 +0x8135B937 0x1BF1 +0x8135B938 0x1BF2 +0x8135B939 0x1BF3 +0x8135BA30 0x1BF4 +0x8135BA31 0x1BF5 +0x8135BA32 0x1BF6 +0x8135BA33 0x1BF7 +0x8135BA34 0x1BF8 +0x8135BA35 0x1BF9 +0x8135BA36 0x1BFA +0x8135BA37 0x1BFB +0x8135BA38 0x1BFC +0x8135BA39 0x1BFD +0x8135BB30 0x1BFE +0x8135BB31 0x1BFF +0x8135BB32 0x1C00 +0x8135BB33 0x1C01 +0x8135BB34 0x1C02 +0x8135BB35 0x1C03 +0x8135BB36 0x1C04 +0x8135BB37 0x1C05 +0x8135BB38 0x1C06 +0x8135BB39 0x1C07 +0x8135BC30 0x1C08 +0x8135BC31 0x1C09 +0x8135BC32 0x1C0A +0x8135BC33 0x1C0B +0x8135BC34 0x1C0C +0x8135BC35 0x1C0D +0x8135BC36 0x1C0E +0x8135BC37 0x1C0F +0x8135BC38 0x1C10 +0x8135BC39 0x1C11 +0x8135BD30 0x1C12 +0x8135BD31 0x1C13 +0x8135BD32 0x1C14 +0x8135BD33 0x1C15 +0x8135BD34 0x1C16 +0x8135BD35 0x1C17 +0x8135BD36 0x1C18 +0x8135BD37 0x1C19 +0x8135BD38 0x1C1A +0x8135BD39 0x1C1B +0x8135BE30 0x1C1C +0x8135BE31 0x1C1D +0x8135BE32 0x1C1E +0x8135BE33 0x1C1F +0x8135BE34 0x1C20 +0x8135BE35 0x1C21 +0x8135BE36 0x1C22 +0x8135BE37 0x1C23 +0x8135BE38 0x1C24 +0x8135BE39 0x1C25 +0x8135BF30 0x1C26 +0x8135BF31 0x1C27 +0x8135BF32 0x1C28 +0x8135BF33 0x1C29 +0x8135BF34 0x1C2A +0x8135BF35 0x1C2B +0x8135BF36 0x1C2C +0x8135BF37 0x1C2D +0x8135BF38 0x1C2E +0x8135BF39 0x1C2F +0x8135C030 0x1C30 +0x8135C031 0x1C31 +0x8135C032 0x1C32 +0x8135C033 0x1C33 +0x8135C034 0x1C34 +0x8135C035 0x1C35 +0x8135C036 0x1C36 +0x8135C037 0x1C37 +0x8135C038 0x1C38 +0x8135C039 0x1C39 +0x8135C130 0x1C3A +0x8135C131 0x1C3B +0x8135C132 0x1C3C +0x8135C133 0x1C3D +0x8135C134 0x1C3E +0x8135C135 0x1C3F +0x8135C136 0x1C40 +0x8135C137 0x1C41 +0x8135C138 0x1C42 +0x8135C139 0x1C43 +0x8135C230 0x1C44 +0x8135C231 0x1C45 +0x8135C232 0x1C46 +0x8135C233 0x1C47 +0x8135C234 0x1C48 +0x8135C235 0x1C49 +0x8135C236 0x1C4A +0x8135C237 0x1C4B +0x8135C238 0x1C4C +0x8135C239 0x1C4D +0x8135C330 0x1C4E +0x8135C331 0x1C4F +0x8135C332 0x1C50 +0x8135C333 0x1C51 +0x8135C334 0x1C52 +0x8135C335 0x1C53 +0x8135C336 0x1C54 +0x8135C337 0x1C55 +0x8135C338 0x1C56 +0x8135C339 0x1C57 +0x8135C430 0x1C58 +0x8135C431 0x1C59 +0x8135C432 0x1C5A +0x8135C433 0x1C5B +0x8135C434 0x1C5C +0x8135C435 0x1C5D +0x8135C436 0x1C5E +0x8135C437 0x1C5F +0x8135C438 0x1C60 +0x8135C439 0x1C61 +0x8135C530 0x1C62 +0x8135C531 0x1C63 +0x8135C532 0x1C64 +0x8135C533 0x1C65 +0x8135C534 0x1C66 +0x8135C535 0x1C67 +0x8135C536 0x1C68 +0x8135C537 0x1C69 +0x8135C538 0x1C6A +0x8135C539 0x1C6B +0x8135C630 0x1C6C +0x8135C631 0x1C6D +0x8135C632 0x1C6E +0x8135C633 0x1C6F +0x8135C634 0x1C70 +0x8135C635 0x1C71 +0x8135C636 0x1C72 +0x8135C637 0x1C73 +0x8135C638 0x1C74 +0x8135C639 0x1C75 +0x8135C730 0x1C76 +0x8135C731 0x1C77 +0x8135C732 0x1C78 +0x8135C733 0x1C79 +0x8135C734 0x1C7A +0x8135C735 0x1C7B +0x8135C736 0x1C7C +0x8135C737 0x1C7D +0x8135C738 0x1C7E +0x8135C739 0x1C7F +0x8135C830 0x1C80 +0x8135C831 0x1C81 +0x8135C832 0x1C82 +0x8135C833 0x1C83 +0x8135C834 0x1C84 +0x8135C835 0x1C85 +0x8135C836 0x1C86 +0x8135C837 0x1C87 +0x8135C838 0x1C88 +0x8135C839 0x1C89 +0x8135C930 0x1C8A +0x8135C931 0x1C8B +0x8135C932 0x1C8C +0x8135C933 0x1C8D +0x8135C934 0x1C8E +0x8135C935 0x1C8F +0x8135C936 0x1C90 +0x8135C937 0x1C91 +0x8135C938 0x1C92 +0x8135C939 0x1C93 +0x8135CA30 0x1C94 +0x8135CA31 0x1C95 +0x8135CA32 0x1C96 +0x8135CA33 0x1C97 +0x8135CA34 0x1C98 +0x8135CA35 0x1C99 +0x8135CA36 0x1C9A +0x8135CA37 0x1C9B +0x8135CA38 0x1C9C +0x8135CA39 0x1C9D +0x8135CB30 0x1C9E +0x8135CB31 0x1C9F +0x8135CB32 0x1CA0 +0x8135CB33 0x1CA1 +0x8135CB34 0x1CA2 +0x8135CB35 0x1CA3 +0x8135CB36 0x1CA4 +0x8135CB37 0x1CA5 +0x8135CB38 0x1CA6 +0x8135CB39 0x1CA7 +0x8135CC30 0x1CA8 +0x8135CC31 0x1CA9 +0x8135CC32 0x1CAA +0x8135CC33 0x1CAB +0x8135CC34 0x1CAC +0x8135CC35 0x1CAD +0x8135CC36 0x1CAE +0x8135CC37 0x1CAF +0x8135CC38 0x1CB0 +0x8135CC39 0x1CB1 +0x8135CD30 0x1CB2 +0x8135CD31 0x1CB3 +0x8135CD32 0x1CB4 +0x8135CD33 0x1CB5 +0x8135CD34 0x1CB6 +0x8135CD35 0x1CB7 +0x8135CD36 0x1CB8 +0x8135CD37 0x1CB9 +0x8135CD38 0x1CBA +0x8135CD39 0x1CBB +0x8135CE30 0x1CBC +0x8135CE31 0x1CBD +0x8135CE32 0x1CBE +0x8135CE33 0x1CBF +0x8135CE34 0x1CC0 +0x8135CE35 0x1CC1 +0x8135CE36 0x1CC2 +0x8135CE37 0x1CC3 +0x8135CE38 0x1CC4 +0x8135CE39 0x1CC5 +0x8135CF30 0x1CC6 +0x8135CF31 0x1CC7 +0x8135CF32 0x1CC8 +0x8135CF33 0x1CC9 +0x8135CF34 0x1CCA +0x8135CF35 0x1CCB +0x8135CF36 0x1CCC +0x8135CF37 0x1CCD +0x8135CF38 0x1CCE +0x8135CF39 0x1CCF +0x8135D030 0x1CD0 +0x8135D031 0x1CD1 +0x8135D032 0x1CD2 +0x8135D033 0x1CD3 +0x8135D034 0x1CD4 +0x8135D035 0x1CD5 +0x8135D036 0x1CD6 +0x8135D037 0x1CD7 +0x8135D038 0x1CD8 +0x8135D039 0x1CD9 +0x8135D130 0x1CDA +0x8135D131 0x1CDB +0x8135D132 0x1CDC +0x8135D133 0x1CDD +0x8135D134 0x1CDE +0x8135D135 0x1CDF +0x8135D136 0x1CE0 +0x8135D137 0x1CE1 +0x8135D138 0x1CE2 +0x8135D139 0x1CE3 +0x8135D230 0x1CE4 +0x8135D231 0x1CE5 +0x8135D232 0x1CE6 +0x8135D233 0x1CE7 +0x8135D234 0x1CE8 +0x8135D235 0x1CE9 +0x8135D236 0x1CEA +0x8135D237 0x1CEB +0x8135D238 0x1CEC +0x8135D239 0x1CED +0x8135D330 0x1CEE +0x8135D331 0x1CEF +0x8135D332 0x1CF0 +0x8135D333 0x1CF1 +0x8135D334 0x1CF2 +0x8135D335 0x1CF3 +0x8135D336 0x1CF4 +0x8135D337 0x1CF5 +0x8135D338 0x1CF6 +0x8135D339 0x1CF7 +0x8135D430 0x1CF8 +0x8135D431 0x1CF9 +0x8135D432 0x1CFA +0x8135D433 0x1CFB +0x8135D434 0x1CFC +0x8135D435 0x1CFD +0x8135D436 0x1CFE +0x8135D437 0x1CFF +0x8135D438 0x1D00 +0x8135D439 0x1D01 +0x8135D530 0x1D02 +0x8135D531 0x1D03 +0x8135D532 0x1D04 +0x8135D533 0x1D05 +0x8135D534 0x1D06 +0x8135D535 0x1D07 +0x8135D536 0x1D08 +0x8135D537 0x1D09 +0x8135D538 0x1D0A +0x8135D539 0x1D0B +0x8135D630 0x1D0C +0x8135D631 0x1D0D +0x8135D632 0x1D0E +0x8135D633 0x1D0F +0x8135D634 0x1D10 +0x8135D635 0x1D11 +0x8135D636 0x1D12 +0x8135D637 0x1D13 +0x8135D638 0x1D14 +0x8135D639 0x1D15 +0x8135D730 0x1D16 +0x8135D731 0x1D17 +0x8135D732 0x1D18 +0x8135D733 0x1D19 +0x8135D734 0x1D1A +0x8135D735 0x1D1B +0x8135D736 0x1D1C +0x8135D737 0x1D1D +0x8135D738 0x1D1E +0x8135D739 0x1D1F +0x8135D830 0x1D20 +0x8135D831 0x1D21 +0x8135D832 0x1D22 +0x8135D833 0x1D23 +0x8135D834 0x1D24 +0x8135D835 0x1D25 +0x8135D836 0x1D26 +0x8135D837 0x1D27 +0x8135D838 0x1D28 +0x8135D839 0x1D29 +0x8135D930 0x1D2A +0x8135D931 0x1D2B +0x8135D932 0x1D2C +0x8135D933 0x1D2D +0x8135D934 0x1D2E +0x8135D935 0x1D2F +0x8135D936 0x1D30 +0x8135D937 0x1D31 +0x8135D938 0x1D32 +0x8135D939 0x1D33 +0x8135DA30 0x1D34 +0x8135DA31 0x1D35 +0x8135DA32 0x1D36 +0x8135DA33 0x1D37 +0x8135DA34 0x1D38 +0x8135DA35 0x1D39 +0x8135DA36 0x1D3A +0x8135DA37 0x1D3B +0x8135DA38 0x1D3C +0x8135DA39 0x1D3D +0x8135DB30 0x1D3E +0x8135DB31 0x1D3F +0x8135DB32 0x1D40 +0x8135DB33 0x1D41 +0x8135DB34 0x1D42 +0x8135DB35 0x1D43 +0x8135DB36 0x1D44 +0x8135DB37 0x1D45 +0x8135DB38 0x1D46 +0x8135DB39 0x1D47 +0x8135DC30 0x1D48 +0x8135DC31 0x1D49 +0x8135DC32 0x1D4A +0x8135DC33 0x1D4B +0x8135DC34 0x1D4C +0x8135DC35 0x1D4D +0x8135DC36 0x1D4E +0x8135DC37 0x1D4F +0x8135DC38 0x1D50 +0x8135DC39 0x1D51 +0x8135DD30 0x1D52 +0x8135DD31 0x1D53 +0x8135DD32 0x1D54 +0x8135DD33 0x1D55 +0x8135DD34 0x1D56 +0x8135DD35 0x1D57 +0x8135DD36 0x1D58 +0x8135DD37 0x1D59 +0x8135DD38 0x1D5A +0x8135DD39 0x1D5B +0x8135DE30 0x1D5C +0x8135DE31 0x1D5D +0x8135DE32 0x1D5E +0x8135DE33 0x1D5F +0x8135DE34 0x1D60 +0x8135DE35 0x1D61 +0x8135DE36 0x1D62 +0x8135DE37 0x1D63 +0x8135DE38 0x1D64 +0x8135DE39 0x1D65 +0x8135DF30 0x1D66 +0x8135DF31 0x1D67 +0x8135DF32 0x1D68 +0x8135DF33 0x1D69 +0x8135DF34 0x1D6A +0x8135DF35 0x1D6B +0x8135DF36 0x1D6C +0x8135DF37 0x1D6D +0x8135DF38 0x1D6E +0x8135DF39 0x1D6F +0x8135E030 0x1D70 +0x8135E031 0x1D71 +0x8135E032 0x1D72 +0x8135E033 0x1D73 +0x8135E034 0x1D74 +0x8135E035 0x1D75 +0x8135E036 0x1D76 +0x8135E037 0x1D77 +0x8135E038 0x1D78 +0x8135E039 0x1D79 +0x8135E130 0x1D7A +0x8135E131 0x1D7B +0x8135E132 0x1D7C +0x8135E133 0x1D7D +0x8135E134 0x1D7E +0x8135E135 0x1D7F +0x8135E136 0x1D80 +0x8135E137 0x1D81 +0x8135E138 0x1D82 +0x8135E139 0x1D83 +0x8135E230 0x1D84 +0x8135E231 0x1D85 +0x8135E232 0x1D86 +0x8135E233 0x1D87 +0x8135E234 0x1D88 +0x8135E235 0x1D89 +0x8135E236 0x1D8A +0x8135E237 0x1D8B +0x8135E238 0x1D8C +0x8135E239 0x1D8D +0x8135E330 0x1D8E +0x8135E331 0x1D8F +0x8135E332 0x1D90 +0x8135E333 0x1D91 +0x8135E334 0x1D92 +0x8135E335 0x1D93 +0x8135E336 0x1D94 +0x8135E337 0x1D95 +0x8135E338 0x1D96 +0x8135E339 0x1D97 +0x8135E430 0x1D98 +0x8135E431 0x1D99 +0x8135E432 0x1D9A +0x8135E433 0x1D9B +0x8135E434 0x1D9C +0x8135E435 0x1D9D +0x8135E436 0x1D9E +0x8135E437 0x1D9F +0x8135E438 0x1DA0 +0x8135E439 0x1DA1 +0x8135E530 0x1DA2 +0x8135E531 0x1DA3 +0x8135E532 0x1DA4 +0x8135E533 0x1DA5 +0x8135E534 0x1DA6 +0x8135E535 0x1DA7 +0x8135E536 0x1DA8 +0x8135E537 0x1DA9 +0x8135E538 0x1DAA +0x8135E539 0x1DAB +0x8135E630 0x1DAC +0x8135E631 0x1DAD +0x8135E632 0x1DAE +0x8135E633 0x1DAF +0x8135E634 0x1DB0 +0x8135E635 0x1DB1 +0x8135E636 0x1DB2 +0x8135E637 0x1DB3 +0x8135E638 0x1DB4 +0x8135E639 0x1DB5 +0x8135E730 0x1DB6 +0x8135E731 0x1DB7 +0x8135E732 0x1DB8 +0x8135E733 0x1DB9 +0x8135E734 0x1DBA +0x8135E735 0x1DBB +0x8135E736 0x1DBC +0x8135E737 0x1DBD +0x8135E738 0x1DBE +0x8135E739 0x1DBF +0x8135E830 0x1DC0 +0x8135E831 0x1DC1 +0x8135E832 0x1DC2 +0x8135E833 0x1DC3 +0x8135E834 0x1DC4 +0x8135E835 0x1DC5 +0x8135E836 0x1DC6 +0x8135E837 0x1DC7 +0x8135E838 0x1DC8 +0x8135E839 0x1DC9 +0x8135E930 0x1DCA +0x8135E931 0x1DCB +0x8135E932 0x1DCC +0x8135E933 0x1DCD +0x8135E934 0x1DCE +0x8135E935 0x1DCF +0x8135E936 0x1DD0 +0x8135E937 0x1DD1 +0x8135E938 0x1DD2 +0x8135E939 0x1DD3 +0x8135EA30 0x1DD4 +0x8135EA31 0x1DD5 +0x8135EA32 0x1DD6 +0x8135EA33 0x1DD7 +0x8135EA34 0x1DD8 +0x8135EA35 0x1DD9 +0x8135EA36 0x1DDA +0x8135EA37 0x1DDB +0x8135EA38 0x1DDC +0x8135EA39 0x1DDD +0x8135EB30 0x1DDE +0x8135EB31 0x1DDF +0x8135EB32 0x1DE0 +0x8135EB33 0x1DE1 +0x8135EB34 0x1DE2 +0x8135EB35 0x1DE3 +0x8135EB36 0x1DE4 +0x8135EB37 0x1DE5 +0x8135EB38 0x1DE6 +0x8135EB39 0x1DE7 +0x8135EC30 0x1DE8 +0x8135EC31 0x1DE9 +0x8135EC32 0x1DEA +0x8135EC33 0x1DEB +0x8135EC34 0x1DEC +0x8135EC35 0x1DED +0x8135EC36 0x1DEE +0x8135EC37 0x1DEF +0x8135EC38 0x1DF0 +0x8135EC39 0x1DF1 +0x8135ED30 0x1DF2 +0x8135ED31 0x1DF3 +0x8135ED32 0x1DF4 +0x8135ED33 0x1DF5 +0x8135ED34 0x1DF6 +0x8135ED35 0x1DF7 +0x8135ED36 0x1DF8 +0x8135ED37 0x1DF9 +0x8135ED38 0x1DFA +0x8135ED39 0x1DFB +0x8135EE30 0x1DFC +0x8135EE31 0x1DFD +0x8135EE32 0x1DFE +0x8135EE33 0x1DFF +0x8135EE34 0x1E00 +0x8135EE35 0x1E01 +0x8135EE36 0x1E02 +0x8135EE37 0x1E03 +0x8135EE38 0x1E04 +0x8135EE39 0x1E05 +0x8135EF30 0x1E06 +0x8135EF31 0x1E07 +0x8135EF32 0x1E08 +0x8135EF33 0x1E09 +0x8135EF34 0x1E0A +0x8135EF35 0x1E0B +0x8135EF36 0x1E0C +0x8135EF37 0x1E0D +0x8135EF38 0x1E0E +0x8135EF39 0x1E0F +0x8135F030 0x1E10 +0x8135F031 0x1E11 +0x8135F032 0x1E12 +0x8135F033 0x1E13 +0x8135F034 0x1E14 +0x8135F035 0x1E15 +0x8135F036 0x1E16 +0x8135F037 0x1E17 +0x8135F038 0x1E18 +0x8135F039 0x1E19 +0x8135F130 0x1E1A +0x8135F131 0x1E1B +0x8135F132 0x1E1C +0x8135F133 0x1E1D +0x8135F134 0x1E1E +0x8135F135 0x1E1F +0x8135F136 0x1E20 +0x8135F137 0x1E21 +0x8135F138 0x1E22 +0x8135F139 0x1E23 +0x8135F230 0x1E24 +0x8135F231 0x1E25 +0x8135F232 0x1E26 +0x8135F233 0x1E27 +0x8135F234 0x1E28 +0x8135F235 0x1E29 +0x8135F236 0x1E2A +0x8135F237 0x1E2B +0x8135F238 0x1E2C +0x8135F239 0x1E2D +0x8135F330 0x1E2E +0x8135F331 0x1E2F +0x8135F332 0x1E30 +0x8135F333 0x1E31 +0x8135F334 0x1E32 +0x8135F335 0x1E33 +0x8135F336 0x1E34 +0x8135F337 0x1E35 +0x8135F338 0x1E36 +0x8135F339 0x1E37 +0x8135F430 0x1E38 +0x8135F431 0x1E39 +0x8135F432 0x1E3A +0x8135F433 0x1E3B +0x8135F434 0x1E3C +0x8135F435 0x1E3D +0x8135F436 0x1E3E +0x8135F437 0xE7C7 +0x8135F438 0x1E40 +0x8135F439 0x1E41 +0x8135F530 0x1E42 +0x8135F531 0x1E43 +0x8135F532 0x1E44 +0x8135F533 0x1E45 +0x8135F534 0x1E46 +0x8135F535 0x1E47 +0x8135F536 0x1E48 +0x8135F537 0x1E49 +0x8135F538 0x1E4A +0x8135F539 0x1E4B +0x8135F630 0x1E4C +0x8135F631 0x1E4D +0x8135F632 0x1E4E +0x8135F633 0x1E4F +0x8135F634 0x1E50 +0x8135F635 0x1E51 +0x8135F636 0x1E52 +0x8135F637 0x1E53 +0x8135F638 0x1E54 +0x8135F639 0x1E55 +0x8135F730 0x1E56 +0x8135F731 0x1E57 +0x8135F732 0x1E58 +0x8135F733 0x1E59 +0x8135F734 0x1E5A +0x8135F735 0x1E5B +0x8135F736 0x1E5C +0x8135F737 0x1E5D +0x8135F738 0x1E5E +0x8135F739 0x1E5F +0x8135F830 0x1E60 +0x8135F831 0x1E61 +0x8135F832 0x1E62 +0x8135F833 0x1E63 +0x8135F834 0x1E64 +0x8135F835 0x1E65 +0x8135F836 0x1E66 +0x8135F837 0x1E67 +0x8135F838 0x1E68 +0x8135F839 0x1E69 +0x8135F930 0x1E6A +0x8135F931 0x1E6B +0x8135F932 0x1E6C +0x8135F933 0x1E6D +0x8135F934 0x1E6E +0x8135F935 0x1E6F +0x8135F936 0x1E70 +0x8135F937 0x1E71 +0x8135F938 0x1E72 +0x8135F939 0x1E73 +0x8135FA30 0x1E74 +0x8135FA31 0x1E75 +0x8135FA32 0x1E76 +0x8135FA33 0x1E77 +0x8135FA34 0x1E78 +0x8135FA35 0x1E79 +0x8135FA36 0x1E7A +0x8135FA37 0x1E7B +0x8135FA38 0x1E7C +0x8135FA39 0x1E7D +0x8135FB30 0x1E7E +0x8135FB31 0x1E7F +0x8135FB32 0x1E80 +0x8135FB33 0x1E81 +0x8135FB34 0x1E82 +0x8135FB35 0x1E83 +0x8135FB36 0x1E84 +0x8135FB37 0x1E85 +0x8135FB38 0x1E86 +0x8135FB39 0x1E87 +0x8135FC30 0x1E88 +0x8135FC31 0x1E89 +0x8135FC32 0x1E8A +0x8135FC33 0x1E8B +0x8135FC34 0x1E8C +0x8135FC35 0x1E8D +0x8135FC36 0x1E8E +0x8135FC37 0x1E8F +0x8135FC38 0x1E90 +0x8135FC39 0x1E91 +0x8135FD30 0x1E92 +0x8135FD31 0x1E93 +0x8135FD32 0x1E94 +0x8135FD33 0x1E95 +0x8135FD34 0x1E96 +0x8135FD35 0x1E97 +0x8135FD36 0x1E98 +0x8135FD37 0x1E99 +0x8135FD38 0x1E9A +0x8135FD39 0x1E9B +0x8135FE30 0x1E9C +0x8135FE31 0x1E9D +0x8135FE32 0x1E9E +0x8135FE33 0x1E9F +0x8135FE34 0x1EA0 +0x8135FE35 0x1EA1 +0x8135FE36 0x1EA2 +0x8135FE37 0x1EA3 +0x8135FE38 0x1EA4 +0x8135FE39 0x1EA5 +0x81368130 0x1EA6 +0x81368131 0x1EA7 +0x81368132 0x1EA8 +0x81368133 0x1EA9 +0x81368134 0x1EAA +0x81368135 0x1EAB +0x81368136 0x1EAC +0x81368137 0x1EAD +0x81368138 0x1EAE +0x81368139 0x1EAF +0x81368230 0x1EB0 +0x81368231 0x1EB1 +0x81368232 0x1EB2 +0x81368233 0x1EB3 +0x81368234 0x1EB4 +0x81368235 0x1EB5 +0x81368236 0x1EB6 +0x81368237 0x1EB7 +0x81368238 0x1EB8 +0x81368239 0x1EB9 +0x81368330 0x1EBA +0x81368331 0x1EBB +0x81368332 0x1EBC +0x81368333 0x1EBD +0x81368334 0x1EBE +0x81368335 0x1EBF +0x81368336 0x1EC0 +0x81368337 0x1EC1 +0x81368338 0x1EC2 +0x81368339 0x1EC3 +0x81368430 0x1EC4 +0x81368431 0x1EC5 +0x81368432 0x1EC6 +0x81368433 0x1EC7 +0x81368434 0x1EC8 +0x81368435 0x1EC9 +0x81368436 0x1ECA +0x81368437 0x1ECB +0x81368438 0x1ECC +0x81368439 0x1ECD +0x81368530 0x1ECE +0x81368531 0x1ECF +0x81368532 0x1ED0 +0x81368533 0x1ED1 +0x81368534 0x1ED2 +0x81368535 0x1ED3 +0x81368536 0x1ED4 +0x81368537 0x1ED5 +0x81368538 0x1ED6 +0x81368539 0x1ED7 +0x81368630 0x1ED8 +0x81368631 0x1ED9 +0x81368632 0x1EDA +0x81368633 0x1EDB +0x81368634 0x1EDC +0x81368635 0x1EDD +0x81368636 0x1EDE +0x81368637 0x1EDF +0x81368638 0x1EE0 +0x81368639 0x1EE1 +0x81368730 0x1EE2 +0x81368731 0x1EE3 +0x81368732 0x1EE4 +0x81368733 0x1EE5 +0x81368734 0x1EE6 +0x81368735 0x1EE7 +0x81368736 0x1EE8 +0x81368737 0x1EE9 +0x81368738 0x1EEA +0x81368739 0x1EEB +0x81368830 0x1EEC +0x81368831 0x1EED +0x81368832 0x1EEE +0x81368833 0x1EEF +0x81368834 0x1EF0 +0x81368835 0x1EF1 +0x81368836 0x1EF2 +0x81368837 0x1EF3 +0x81368838 0x1EF4 +0x81368839 0x1EF5 +0x81368930 0x1EF6 +0x81368931 0x1EF7 +0x81368932 0x1EF8 +0x81368933 0x1EF9 +0x81368934 0x1EFA +0x81368935 0x1EFB +0x81368936 0x1EFC +0x81368937 0x1EFD +0x81368938 0x1EFE +0x81368939 0x1EFF +0x81368A30 0x1F00 +0x81368A31 0x1F01 +0x81368A32 0x1F02 +0x81368A33 0x1F03 +0x81368A34 0x1F04 +0x81368A35 0x1F05 +0x81368A36 0x1F06 +0x81368A37 0x1F07 +0x81368A38 0x1F08 +0x81368A39 0x1F09 +0x81368B30 0x1F0A +0x81368B31 0x1F0B +0x81368B32 0x1F0C +0x81368B33 0x1F0D +0x81368B34 0x1F0E +0x81368B35 0x1F0F +0x81368B36 0x1F10 +0x81368B37 0x1F11 +0x81368B38 0x1F12 +0x81368B39 0x1F13 +0x81368C30 0x1F14 +0x81368C31 0x1F15 +0x81368C32 0x1F16 +0x81368C33 0x1F17 +0x81368C34 0x1F18 +0x81368C35 0x1F19 +0x81368C36 0x1F1A +0x81368C37 0x1F1B +0x81368C38 0x1F1C +0x81368C39 0x1F1D +0x81368D30 0x1F1E +0x81368D31 0x1F1F +0x81368D32 0x1F20 +0x81368D33 0x1F21 +0x81368D34 0x1F22 +0x81368D35 0x1F23 +0x81368D36 0x1F24 +0x81368D37 0x1F25 +0x81368D38 0x1F26 +0x81368D39 0x1F27 +0x81368E30 0x1F28 +0x81368E31 0x1F29 +0x81368E32 0x1F2A +0x81368E33 0x1F2B +0x81368E34 0x1F2C +0x81368E35 0x1F2D +0x81368E36 0x1F2E +0x81368E37 0x1F2F +0x81368E38 0x1F30 +0x81368E39 0x1F31 +0x81368F30 0x1F32 +0x81368F31 0x1F33 +0x81368F32 0x1F34 +0x81368F33 0x1F35 +0x81368F34 0x1F36 +0x81368F35 0x1F37 +0x81368F36 0x1F38 +0x81368F37 0x1F39 +0x81368F38 0x1F3A +0x81368F39 0x1F3B +0x81369030 0x1F3C +0x81369031 0x1F3D +0x81369032 0x1F3E +0x81369033 0x1F3F +0x81369034 0x1F40 +0x81369035 0x1F41 +0x81369036 0x1F42 +0x81369037 0x1F43 +0x81369038 0x1F44 +0x81369039 0x1F45 +0x81369130 0x1F46 +0x81369131 0x1F47 +0x81369132 0x1F48 +0x81369133 0x1F49 +0x81369134 0x1F4A +0x81369135 0x1F4B +0x81369136 0x1F4C +0x81369137 0x1F4D +0x81369138 0x1F4E +0x81369139 0x1F4F +0x81369230 0x1F50 +0x81369231 0x1F51 +0x81369232 0x1F52 +0x81369233 0x1F53 +0x81369234 0x1F54 +0x81369235 0x1F55 +0x81369236 0x1F56 +0x81369237 0x1F57 +0x81369238 0x1F58 +0x81369239 0x1F59 +0x81369330 0x1F5A +0x81369331 0x1F5B +0x81369332 0x1F5C +0x81369333 0x1F5D +0x81369334 0x1F5E +0x81369335 0x1F5F +0x81369336 0x1F60 +0x81369337 0x1F61 +0x81369338 0x1F62 +0x81369339 0x1F63 +0x81369430 0x1F64 +0x81369431 0x1F65 +0x81369432 0x1F66 +0x81369433 0x1F67 +0x81369434 0x1F68 +0x81369435 0x1F69 +0x81369436 0x1F6A +0x81369437 0x1F6B +0x81369438 0x1F6C +0x81369439 0x1F6D +0x81369530 0x1F6E +0x81369531 0x1F6F +0x81369532 0x1F70 +0x81369533 0x1F71 +0x81369534 0x1F72 +0x81369535 0x1F73 +0x81369536 0x1F74 +0x81369537 0x1F75 +0x81369538 0x1F76 +0x81369539 0x1F77 +0x81369630 0x1F78 +0x81369631 0x1F79 +0x81369632 0x1F7A +0x81369633 0x1F7B +0x81369634 0x1F7C +0x81369635 0x1F7D +0x81369636 0x1F7E +0x81369637 0x1F7F +0x81369638 0x1F80 +0x81369639 0x1F81 +0x81369730 0x1F82 +0x81369731 0x1F83 +0x81369732 0x1F84 +0x81369733 0x1F85 +0x81369734 0x1F86 +0x81369735 0x1F87 +0x81369736 0x1F88 +0x81369737 0x1F89 +0x81369738 0x1F8A +0x81369739 0x1F8B +0x81369830 0x1F8C +0x81369831 0x1F8D +0x81369832 0x1F8E +0x81369833 0x1F8F +0x81369834 0x1F90 +0x81369835 0x1F91 +0x81369836 0x1F92 +0x81369837 0x1F93 +0x81369838 0x1F94 +0x81369839 0x1F95 +0x81369930 0x1F96 +0x81369931 0x1F97 +0x81369932 0x1F98 +0x81369933 0x1F99 +0x81369934 0x1F9A +0x81369935 0x1F9B +0x81369936 0x1F9C +0x81369937 0x1F9D +0x81369938 0x1F9E +0x81369939 0x1F9F +0x81369A30 0x1FA0 +0x81369A31 0x1FA1 +0x81369A32 0x1FA2 +0x81369A33 0x1FA3 +0x81369A34 0x1FA4 +0x81369A35 0x1FA5 +0x81369A36 0x1FA6 +0x81369A37 0x1FA7 +0x81369A38 0x1FA8 +0x81369A39 0x1FA9 +0x81369B30 0x1FAA +0x81369B31 0x1FAB +0x81369B32 0x1FAC +0x81369B33 0x1FAD +0x81369B34 0x1FAE +0x81369B35 0x1FAF +0x81369B36 0x1FB0 +0x81369B37 0x1FB1 +0x81369B38 0x1FB2 +0x81369B39 0x1FB3 +0x81369C30 0x1FB4 +0x81369C31 0x1FB5 +0x81369C32 0x1FB6 +0x81369C33 0x1FB7 +0x81369C34 0x1FB8 +0x81369C35 0x1FB9 +0x81369C36 0x1FBA +0x81369C37 0x1FBB +0x81369C38 0x1FBC +0x81369C39 0x1FBD +0x81369D30 0x1FBE +0x81369D31 0x1FBF +0x81369D32 0x1FC0 +0x81369D33 0x1FC1 +0x81369D34 0x1FC2 +0x81369D35 0x1FC3 +0x81369D36 0x1FC4 +0x81369D37 0x1FC5 +0x81369D38 0x1FC6 +0x81369D39 0x1FC7 +0x81369E30 0x1FC8 +0x81369E31 0x1FC9 +0x81369E32 0x1FCA +0x81369E33 0x1FCB +0x81369E34 0x1FCC +0x81369E35 0x1FCD +0x81369E36 0x1FCE +0x81369E37 0x1FCF +0x81369E38 0x1FD0 +0x81369E39 0x1FD1 +0x81369F30 0x1FD2 +0x81369F31 0x1FD3 +0x81369F32 0x1FD4 +0x81369F33 0x1FD5 +0x81369F34 0x1FD6 +0x81369F35 0x1FD7 +0x81369F36 0x1FD8 +0x81369F37 0x1FD9 +0x81369F38 0x1FDA +0x81369F39 0x1FDB +0x8136A030 0x1FDC +0x8136A031 0x1FDD +0x8136A032 0x1FDE +0x8136A033 0x1FDF +0x8136A034 0x1FE0 +0x8136A035 0x1FE1 +0x8136A036 0x1FE2 +0x8136A037 0x1FE3 +0x8136A038 0x1FE4 +0x8136A039 0x1FE5 +0x8136A130 0x1FE6 +0x8136A131 0x1FE7 +0x8136A132 0x1FE8 +0x8136A133 0x1FE9 +0x8136A134 0x1FEA +0x8136A135 0x1FEB +0x8136A136 0x1FEC +0x8136A137 0x1FED +0x8136A138 0x1FEE +0x8136A139 0x1FEF +0x8136A230 0x1FF0 +0x8136A231 0x1FF1 +0x8136A232 0x1FF2 +0x8136A233 0x1FF3 +0x8136A234 0x1FF4 +0x8136A235 0x1FF5 +0x8136A236 0x1FF6 +0x8136A237 0x1FF7 +0x8136A238 0x1FF8 +0x8136A239 0x1FF9 +0x8136A330 0x1FFA +0x8136A331 0x1FFB +0x8136A332 0x1FFC +0x8136A333 0x1FFD +0x8136A334 0x1FFE +0x8136A335 0x1FFF +0x8136A336 0x2000 +0x8136A337 0x2001 +0x8136A338 0x2002 +0x8136A339 0x2003 +0x8136A430 0x2004 +0x8136A431 0x2005 +0x8136A432 0x2006 +0x8136A433 0x2007 +0x8136A434 0x2008 +0x8136A435 0x2009 +0x8136A436 0x200A +0x8136A437 0x200B +0x8136A438 0x200C +0x8136A439 0x200D +0x8136A530 0x200E +0x8136A531 0x200F +0x8136A532 0x2011 +0x8136A533 0x2012 +0x8136A534 0x2017 +0x8136A535 0x201A +0x8136A536 0x201B +0x8136A537 0x201E +0x8136A538 0x201F +0x8136A539 0x2020 +0x8136A630 0x2021 +0x8136A631 0x2022 +0x8136A632 0x2023 +0x8136A633 0x2024 +0x8136A634 0x2027 +0x8136A635 0x2028 +0x8136A636 0x2029 +0x8136A637 0x202A +0x8136A638 0x202B +0x8136A639 0x202C +0x8136A730 0x202D +0x8136A731 0x202E +0x8136A732 0x202F +0x8136A733 0x2031 +0x8136A734 0x2034 +0x8136A735 0x2036 +0x8136A736 0x2037 +0x8136A737 0x2038 +0x8136A738 0x2039 +0x8136A739 0x203A +0x8136A830 0x203C +0x8136A831 0x203D +0x8136A832 0x203E +0x8136A833 0x203F +0x8136A834 0x2040 +0x8136A835 0x2041 +0x8136A836 0x2042 +0x8136A837 0x2043 +0x8136A838 0x2044 +0x8136A839 0x2045 +0x8136A930 0x2046 +0x8136A931 0x2047 +0x8136A932 0x2048 +0x8136A933 0x2049 +0x8136A934 0x204A +0x8136A935 0x204B +0x8136A936 0x204C +0x8136A937 0x204D +0x8136A938 0x204E +0x8136A939 0x204F +0x8136AA30 0x2050 +0x8136AA31 0x2051 +0x8136AA32 0x2052 +0x8136AA33 0x2053 +0x8136AA34 0x2054 +0x8136AA35 0x2055 +0x8136AA36 0x2056 +0x8136AA37 0x2057 +0x8136AA38 0x2058 +0x8136AA39 0x2059 +0x8136AB30 0x205A +0x8136AB31 0x205B +0x8136AB32 0x205C +0x8136AB33 0x205D +0x8136AB34 0x205E +0x8136AB35 0x205F +0x8136AB36 0x2060 +0x8136AB37 0x2061 +0x8136AB38 0x2062 +0x8136AB39 0x2063 +0x8136AC30 0x2064 +0x8136AC31 0x2065 +0x8136AC32 0x2066 +0x8136AC33 0x2067 +0x8136AC34 0x2068 +0x8136AC35 0x2069 +0x8136AC36 0x206A +0x8136AC37 0x206B +0x8136AC38 0x206C +0x8136AC39 0x206D +0x8136AD30 0x206E +0x8136AD31 0x206F +0x8136AD32 0x2070 +0x8136AD33 0x2071 +0x8136AD34 0x2072 +0x8136AD35 0x2073 +0x8136AD36 0x2074 +0x8136AD37 0x2075 +0x8136AD38 0x2076 +0x8136AD39 0x2077 +0x8136AE30 0x2078 +0x8136AE31 0x2079 +0x8136AE32 0x207A +0x8136AE33 0x207B +0x8136AE34 0x207C +0x8136AE35 0x207D +0x8136AE36 0x207E +0x8136AE37 0x207F +0x8136AE38 0x2080 +0x8136AE39 0x2081 +0x8136AF30 0x2082 +0x8136AF31 0x2083 +0x8136AF32 0x2084 +0x8136AF33 0x2085 +0x8136AF34 0x2086 +0x8136AF35 0x2087 +0x8136AF36 0x2088 +0x8136AF37 0x2089 +0x8136AF38 0x208A +0x8136AF39 0x208B +0x8136B030 0x208C +0x8136B031 0x208D +0x8136B032 0x208E +0x8136B033 0x208F +0x8136B034 0x2090 +0x8136B035 0x2091 +0x8136B036 0x2092 +0x8136B037 0x2093 +0x8136B038 0x2094 +0x8136B039 0x2095 +0x8136B130 0x2096 +0x8136B131 0x2097 +0x8136B132 0x2098 +0x8136B133 0x2099 +0x8136B134 0x209A +0x8136B135 0x209B +0x8136B136 0x209C +0x8136B137 0x209D +0x8136B138 0x209E +0x8136B139 0x209F +0x8136B230 0x20A0 +0x8136B231 0x20A1 +0x8136B232 0x20A2 +0x8136B233 0x20A3 +0x8136B234 0x20A4 +0x8136B235 0x20A5 +0x8136B236 0x20A6 +0x8136B237 0x20A7 +0x8136B238 0x20A8 +0x8136B239 0x20A9 +0x8136B330 0x20AA +0x8136B331 0x20AB +0x8136B332 0x20AD +0x8136B333 0x20AE +0x8136B334 0x20AF +0x8136B335 0x20B0 +0x8136B336 0x20B1 +0x8136B337 0x20B2 +0x8136B338 0x20B3 +0x8136B339 0x20B4 +0x8136B430 0x20B5 +0x8136B431 0x20B6 +0x8136B432 0x20B7 +0x8136B433 0x20B8 +0x8136B434 0x20B9 +0x8136B435 0x20BA +0x8136B436 0x20BB +0x8136B437 0x20BC +0x8136B438 0x20BD +0x8136B439 0x20BE +0x8136B530 0x20BF +0x8136B531 0x20C0 +0x8136B532 0x20C1 +0x8136B533 0x20C2 +0x8136B534 0x20C3 +0x8136B535 0x20C4 +0x8136B536 0x20C5 +0x8136B537 0x20C6 +0x8136B538 0x20C7 +0x8136B539 0x20C8 +0x8136B630 0x20C9 +0x8136B631 0x20CA +0x8136B632 0x20CB +0x8136B633 0x20CC +0x8136B634 0x20CD +0x8136B635 0x20CE +0x8136B636 0x20CF +0x8136B637 0x20D0 +0x8136B638 0x20D1 +0x8136B639 0x20D2 +0x8136B730 0x20D3 +0x8136B731 0x20D4 +0x8136B732 0x20D5 +0x8136B733 0x20D6 +0x8136B734 0x20D7 +0x8136B735 0x20D8 +0x8136B736 0x20D9 +0x8136B737 0x20DA +0x8136B738 0x20DB +0x8136B739 0x20DC +0x8136B830 0x20DD +0x8136B831 0x20DE +0x8136B832 0x20DF +0x8136B833 0x20E0 +0x8136B834 0x20E1 +0x8136B835 0x20E2 +0x8136B836 0x20E3 +0x8136B837 0x20E4 +0x8136B838 0x20E5 +0x8136B839 0x20E6 +0x8136B930 0x20E7 +0x8136B931 0x20E8 +0x8136B932 0x20E9 +0x8136B933 0x20EA +0x8136B934 0x20EB +0x8136B935 0x20EC +0x8136B936 0x20ED +0x8136B937 0x20EE +0x8136B938 0x20EF +0x8136B939 0x20F0 +0x8136BA30 0x20F1 +0x8136BA31 0x20F2 +0x8136BA32 0x20F3 +0x8136BA33 0x20F4 +0x8136BA34 0x20F5 +0x8136BA35 0x20F6 +0x8136BA36 0x20F7 +0x8136BA37 0x20F8 +0x8136BA38 0x20F9 +0x8136BA39 0x20FA +0x8136BB30 0x20FB +0x8136BB31 0x20FC +0x8136BB32 0x20FD +0x8136BB33 0x20FE +0x8136BB34 0x20FF +0x8136BB35 0x2100 +0x8136BB36 0x2101 +0x8136BB37 0x2102 +0x8136BB38 0x2104 +0x8136BB39 0x2106 +0x8136BC30 0x2107 +0x8136BC31 0x2108 +0x8136BC32 0x210A +0x8136BC33 0x210B +0x8136BC34 0x210C +0x8136BC35 0x210D +0x8136BC36 0x210E +0x8136BC37 0x210F +0x8136BC38 0x2110 +0x8136BC39 0x2111 +0x8136BD30 0x2112 +0x8136BD31 0x2113 +0x8136BD32 0x2114 +0x8136BD33 0x2115 +0x8136BD34 0x2117 +0x8136BD35 0x2118 +0x8136BD36 0x2119 +0x8136BD37 0x211A +0x8136BD38 0x211B +0x8136BD39 0x211C +0x8136BE30 0x211D +0x8136BE31 0x211E +0x8136BE32 0x211F +0x8136BE33 0x2120 +0x8136BE34 0x2122 +0x8136BE35 0x2123 +0x8136BE36 0x2124 +0x8136BE37 0x2125 +0x8136BE38 0x2126 +0x8136BE39 0x2127 +0x8136BF30 0x2128 +0x8136BF31 0x2129 +0x8136BF32 0x212A +0x8136BF33 0x212B +0x8136BF34 0x212C +0x8136BF35 0x212D +0x8136BF36 0x212E +0x8136BF37 0x212F +0x8136BF38 0x2130 +0x8136BF39 0x2131 +0x8136C030 0x2132 +0x8136C031 0x2133 +0x8136C032 0x2134 +0x8136C033 0x2135 +0x8136C034 0x2136 +0x8136C035 0x2137 +0x8136C036 0x2138 +0x8136C037 0x2139 +0x8136C038 0x213A +0x8136C039 0x213B +0x8136C130 0x213C +0x8136C131 0x213D +0x8136C132 0x213E +0x8136C133 0x213F +0x8136C134 0x2140 +0x8136C135 0x2141 +0x8136C136 0x2142 +0x8136C137 0x2143 +0x8136C138 0x2144 +0x8136C139 0x2145 +0x8136C230 0x2146 +0x8136C231 0x2147 +0x8136C232 0x2148 +0x8136C233 0x2149 +0x8136C234 0x214A +0x8136C235 0x214B +0x8136C236 0x214C +0x8136C237 0x214D +0x8136C238 0x214E +0x8136C239 0x214F +0x8136C330 0x2150 +0x8136C331 0x2151 +0x8136C332 0x2152 +0x8136C333 0x2153 +0x8136C334 0x2154 +0x8136C335 0x2155 +0x8136C336 0x2156 +0x8136C337 0x2157 +0x8136C338 0x2158 +0x8136C339 0x2159 +0x8136C430 0x215A +0x8136C431 0x215B +0x8136C432 0x215C +0x8136C433 0x215D +0x8136C434 0x215E +0x8136C435 0x215F +0x8136C436 0x216C +0x8136C437 0x216D +0x8136C438 0x216E +0x8136C439 0x216F +0x8136C530 0x217A +0x8136C531 0x217B +0x8136C532 0x217C +0x8136C533 0x217D +0x8136C534 0x217E +0x8136C535 0x217F +0x8136C536 0x2180 +0x8136C537 0x2181 +0x8136C538 0x2182 +0x8136C539 0x2183 +0x8136C630 0x2184 +0x8136C631 0x2185 +0x8136C632 0x2186 +0x8136C633 0x2187 +0x8136C634 0x2188 +0x8136C635 0x2189 +0x8136C636 0x218A +0x8136C637 0x218B +0x8136C638 0x218C +0x8136C639 0x218D +0x8136C730 0x218E +0x8136C731 0x218F +0x8136C732 0x2194 +0x8136C733 0x2195 +0x8136C734 0x219A +0x8136C735 0x219B +0x8136C736 0x219C +0x8136C737 0x219D +0x8136C738 0x219E +0x8136C739 0x219F +0x8136C830 0x21A0 +0x8136C831 0x21A1 +0x8136C832 0x21A2 +0x8136C833 0x21A3 +0x8136C834 0x21A4 +0x8136C835 0x21A5 +0x8136C836 0x21A6 +0x8136C837 0x21A7 +0x8136C838 0x21A8 +0x8136C839 0x21A9 +0x8136C930 0x21AA +0x8136C931 0x21AB +0x8136C932 0x21AC +0x8136C933 0x21AD +0x8136C934 0x21AE +0x8136C935 0x21AF +0x8136C936 0x21B0 +0x8136C937 0x21B1 +0x8136C938 0x21B2 +0x8136C939 0x21B3 +0x8136CA30 0x21B4 +0x8136CA31 0x21B5 +0x8136CA32 0x21B6 +0x8136CA33 0x21B7 +0x8136CA34 0x21B8 +0x8136CA35 0x21B9 +0x8136CA36 0x21BA +0x8136CA37 0x21BB +0x8136CA38 0x21BC +0x8136CA39 0x21BD +0x8136CB30 0x21BE +0x8136CB31 0x21BF +0x8136CB32 0x21C0 +0x8136CB33 0x21C1 +0x8136CB34 0x21C2 +0x8136CB35 0x21C3 +0x8136CB36 0x21C4 +0x8136CB37 0x21C5 +0x8136CB38 0x21C6 +0x8136CB39 0x21C7 +0x8136CC30 0x21C8 +0x8136CC31 0x21C9 +0x8136CC32 0x21CA +0x8136CC33 0x21CB +0x8136CC34 0x21CC +0x8136CC35 0x21CD +0x8136CC36 0x21CE +0x8136CC37 0x21CF +0x8136CC38 0x21D0 +0x8136CC39 0x21D1 +0x8136CD30 0x21D2 +0x8136CD31 0x21D3 +0x8136CD32 0x21D4 +0x8136CD33 0x21D5 +0x8136CD34 0x21D6 +0x8136CD35 0x21D7 +0x8136CD36 0x21D8 +0x8136CD37 0x21D9 +0x8136CD38 0x21DA +0x8136CD39 0x21DB +0x8136CE30 0x21DC +0x8136CE31 0x21DD +0x8136CE32 0x21DE +0x8136CE33 0x21DF +0x8136CE34 0x21E0 +0x8136CE35 0x21E1 +0x8136CE36 0x21E2 +0x8136CE37 0x21E3 +0x8136CE38 0x21E4 +0x8136CE39 0x21E5 +0x8136CF30 0x21E6 +0x8136CF31 0x21E7 +0x8136CF32 0x21E8 +0x8136CF33 0x21E9 +0x8136CF34 0x21EA +0x8136CF35 0x21EB +0x8136CF36 0x21EC +0x8136CF37 0x21ED +0x8136CF38 0x21EE +0x8136CF39 0x21EF +0x8136D030 0x21F0 +0x8136D031 0x21F1 +0x8136D032 0x21F2 +0x8136D033 0x21F3 +0x8136D034 0x21F4 +0x8136D035 0x21F5 +0x8136D036 0x21F6 +0x8136D037 0x21F7 +0x8136D038 0x21F8 +0x8136D039 0x21F9 +0x8136D130 0x21FA +0x8136D131 0x21FB +0x8136D132 0x21FC +0x8136D133 0x21FD +0x8136D134 0x21FE +0x8136D135 0x21FF +0x8136D136 0x2200 +0x8136D137 0x2201 +0x8136D138 0x2202 +0x8136D139 0x2203 +0x8136D230 0x2204 +0x8136D231 0x2205 +0x8136D232 0x2206 +0x8136D233 0x2207 +0x8136D234 0x2209 +0x8136D235 0x220A +0x8136D236 0x220B +0x8136D237 0x220C +0x8136D238 0x220D +0x8136D239 0x220E +0x8136D330 0x2210 +0x8136D331 0x2212 +0x8136D332 0x2213 +0x8136D333 0x2214 +0x8136D334 0x2216 +0x8136D335 0x2217 +0x8136D336 0x2218 +0x8136D337 0x2219 +0x8136D338 0x221B +0x8136D339 0x221C +0x8136D430 0x2221 +0x8136D431 0x2222 +0x8136D432 0x2224 +0x8136D433 0x2226 +0x8136D434 0x222C +0x8136D435 0x222D +0x8136D436 0x222F +0x8136D437 0x2230 +0x8136D438 0x2231 +0x8136D439 0x2232 +0x8136D530 0x2233 +0x8136D531 0x2238 +0x8136D532 0x2239 +0x8136D533 0x223A +0x8136D534 0x223B +0x8136D535 0x223C +0x8136D536 0x223E +0x8136D537 0x223F +0x8136D538 0x2240 +0x8136D539 0x2241 +0x8136D630 0x2242 +0x8136D631 0x2243 +0x8136D632 0x2244 +0x8136D633 0x2245 +0x8136D634 0x2246 +0x8136D635 0x2247 +0x8136D636 0x2249 +0x8136D637 0x224A +0x8136D638 0x224B +0x8136D639 0x224D +0x8136D730 0x224E +0x8136D731 0x224F +0x8136D732 0x2250 +0x8136D733 0x2251 +0x8136D734 0x2253 +0x8136D735 0x2254 +0x8136D736 0x2255 +0x8136D737 0x2256 +0x8136D738 0x2257 +0x8136D739 0x2258 +0x8136D830 0x2259 +0x8136D831 0x225A +0x8136D832 0x225B +0x8136D833 0x225C +0x8136D834 0x225D +0x8136D835 0x225E +0x8136D836 0x225F +0x8136D837 0x2262 +0x8136D838 0x2263 +0x8136D839 0x2268 +0x8136D930 0x2269 +0x8136D931 0x226A +0x8136D932 0x226B +0x8136D933 0x226C +0x8136D934 0x226D +0x8136D935 0x2270 +0x8136D936 0x2271 +0x8136D937 0x2272 +0x8136D938 0x2273 +0x8136D939 0x2274 +0x8136DA30 0x2275 +0x8136DA31 0x2276 +0x8136DA32 0x2277 +0x8136DA33 0x2278 +0x8136DA34 0x2279 +0x8136DA35 0x227A +0x8136DA36 0x227B +0x8136DA37 0x227C +0x8136DA38 0x227D +0x8136DA39 0x227E +0x8136DB30 0x227F +0x8136DB31 0x2280 +0x8136DB32 0x2281 +0x8136DB33 0x2282 +0x8136DB34 0x2283 +0x8136DB35 0x2284 +0x8136DB36 0x2285 +0x8136DB37 0x2286 +0x8136DB38 0x2287 +0x8136DB39 0x2288 +0x8136DC30 0x2289 +0x8136DC31 0x228A +0x8136DC32 0x228B +0x8136DC33 0x228C +0x8136DC34 0x228D +0x8136DC35 0x228E +0x8136DC36 0x228F +0x8136DC37 0x2290 +0x8136DC38 0x2291 +0x8136DC39 0x2292 +0x8136DD30 0x2293 +0x8136DD31 0x2294 +0x8136DD32 0x2296 +0x8136DD33 0x2297 +0x8136DD34 0x2298 +0x8136DD35 0x229A +0x8136DD36 0x229B +0x8136DD37 0x229C +0x8136DD38 0x229D +0x8136DD39 0x229E +0x8136DE30 0x229F +0x8136DE31 0x22A0 +0x8136DE32 0x22A1 +0x8136DE33 0x22A2 +0x8136DE34 0x22A3 +0x8136DE35 0x22A4 +0x8136DE36 0x22A6 +0x8136DE37 0x22A7 +0x8136DE38 0x22A8 +0x8136DE39 0x22A9 +0x8136DF30 0x22AA +0x8136DF31 0x22AB +0x8136DF32 0x22AC +0x8136DF33 0x22AD +0x8136DF34 0x22AE +0x8136DF35 0x22AF +0x8136DF36 0x22B0 +0x8136DF37 0x22B1 +0x8136DF38 0x22B2 +0x8136DF39 0x22B3 +0x8136E030 0x22B4 +0x8136E031 0x22B5 +0x8136E032 0x22B6 +0x8136E033 0x22B7 +0x8136E034 0x22B8 +0x8136E035 0x22B9 +0x8136E036 0x22BA +0x8136E037 0x22BB +0x8136E038 0x22BC +0x8136E039 0x22BD +0x8136E130 0x22BE +0x8136E131 0x22C0 +0x8136E132 0x22C1 +0x8136E133 0x22C2 +0x8136E134 0x22C3 +0x8136E135 0x22C4 +0x8136E136 0x22C5 +0x8136E137 0x22C6 +0x8136E138 0x22C7 +0x8136E139 0x22C8 +0x8136E230 0x22C9 +0x8136E231 0x22CA +0x8136E232 0x22CB +0x8136E233 0x22CC +0x8136E234 0x22CD +0x8136E235 0x22CE +0x8136E236 0x22CF +0x8136E237 0x22D0 +0x8136E238 0x22D1 +0x8136E239 0x22D2 +0x8136E330 0x22D3 +0x8136E331 0x22D4 +0x8136E332 0x22D5 +0x8136E333 0x22D6 +0x8136E334 0x22D7 +0x8136E335 0x22D8 +0x8136E336 0x22D9 +0x8136E337 0x22DA +0x8136E338 0x22DB +0x8136E339 0x22DC +0x8136E430 0x22DD +0x8136E431 0x22DE +0x8136E432 0x22DF +0x8136E433 0x22E0 +0x8136E434 0x22E1 +0x8136E435 0x22E2 +0x8136E436 0x22E3 +0x8136E437 0x22E4 +0x8136E438 0x22E5 +0x8136E439 0x22E6 +0x8136E530 0x22E7 +0x8136E531 0x22E8 +0x8136E532 0x22E9 +0x8136E533 0x22EA +0x8136E534 0x22EB +0x8136E535 0x22EC +0x8136E536 0x22ED +0x8136E537 0x22EE +0x8136E538 0x22EF +0x8136E539 0x22F0 +0x8136E630 0x22F1 +0x8136E631 0x22F2 +0x8136E632 0x22F3 +0x8136E633 0x22F4 +0x8136E634 0x22F5 +0x8136E635 0x22F6 +0x8136E636 0x22F7 +0x8136E637 0x22F8 +0x8136E638 0x22F9 +0x8136E639 0x22FA +0x8136E730 0x22FB +0x8136E731 0x22FC +0x8136E732 0x22FD +0x8136E733 0x22FE +0x8136E734 0x22FF +0x8136E735 0x2300 +0x8136E736 0x2301 +0x8136E737 0x2302 +0x8136E738 0x2303 +0x8136E739 0x2304 +0x8136E830 0x2305 +0x8136E831 0x2306 +0x8136E832 0x2307 +0x8136E833 0x2308 +0x8136E834 0x2309 +0x8136E835 0x230A +0x8136E836 0x230B +0x8136E837 0x230C +0x8136E838 0x230D +0x8136E839 0x230E +0x8136E930 0x230F +0x8136E931 0x2310 +0x8136E932 0x2311 +0x8136E933 0x2313 +0x8136E934 0x2314 +0x8136E935 0x2315 +0x8136E936 0x2316 +0x8136E937 0x2317 +0x8136E938 0x2318 +0x8136E939 0x2319 +0x8136EA30 0x231A +0x8136EA31 0x231B +0x8136EA32 0x231C +0x8136EA33 0x231D +0x8136EA34 0x231E +0x8136EA35 0x231F +0x8136EA36 0x2320 +0x8136EA37 0x2321 +0x8136EA38 0x2322 +0x8136EA39 0x2323 +0x8136EB30 0x2324 +0x8136EB31 0x2325 +0x8136EB32 0x2326 +0x8136EB33 0x2327 +0x8136EB34 0x2328 +0x8136EB35 0x2329 +0x8136EB36 0x232A +0x8136EB37 0x232B +0x8136EB38 0x232C +0x8136EB39 0x232D +0x8136EC30 0x232E +0x8136EC31 0x232F +0x8136EC32 0x2330 +0x8136EC33 0x2331 +0x8136EC34 0x2332 +0x8136EC35 0x2333 +0x8136EC36 0x2334 +0x8136EC37 0x2335 +0x8136EC38 0x2336 +0x8136EC39 0x2337 +0x8136ED30 0x2338 +0x8136ED31 0x2339 +0x8136ED32 0x233A +0x8136ED33 0x233B +0x8136ED34 0x233C +0x8136ED35 0x233D +0x8136ED36 0x233E +0x8136ED37 0x233F +0x8136ED38 0x2340 +0x8136ED39 0x2341 +0x8136EE30 0x2342 +0x8136EE31 0x2343 +0x8136EE32 0x2344 +0x8136EE33 0x2345 +0x8136EE34 0x2346 +0x8136EE35 0x2347 +0x8136EE36 0x2348 +0x8136EE37 0x2349 +0x8136EE38 0x234A +0x8136EE39 0x234B +0x8136EF30 0x234C +0x8136EF31 0x234D +0x8136EF32 0x234E +0x8136EF33 0x234F +0x8136EF34 0x2350 +0x8136EF35 0x2351 +0x8136EF36 0x2352 +0x8136EF37 0x2353 +0x8136EF38 0x2354 +0x8136EF39 0x2355 +0x8136F030 0x2356 +0x8136F031 0x2357 +0x8136F032 0x2358 +0x8136F033 0x2359 +0x8136F034 0x235A +0x8136F035 0x235B +0x8136F036 0x235C +0x8136F037 0x235D +0x8136F038 0x235E +0x8136F039 0x235F +0x8136F130 0x2360 +0x8136F131 0x2361 +0x8136F132 0x2362 +0x8136F133 0x2363 +0x8136F134 0x2364 +0x8136F135 0x2365 +0x8136F136 0x2366 +0x8136F137 0x2367 +0x8136F138 0x2368 +0x8136F139 0x2369 +0x8136F230 0x236A +0x8136F231 0x236B +0x8136F232 0x236C +0x8136F233 0x236D +0x8136F234 0x236E +0x8136F235 0x236F +0x8136F236 0x2370 +0x8136F237 0x2371 +0x8136F238 0x2372 +0x8136F239 0x2373 +0x8136F330 0x2374 +0x8136F331 0x2375 +0x8136F332 0x2376 +0x8136F333 0x2377 +0x8136F334 0x2378 +0x8136F335 0x2379 +0x8136F336 0x237A +0x8136F337 0x237B +0x8136F338 0x237C +0x8136F339 0x237D +0x8136F430 0x237E +0x8136F431 0x237F +0x8136F432 0x2380 +0x8136F433 0x2381 +0x8136F434 0x2382 +0x8136F435 0x2383 +0x8136F436 0x2384 +0x8136F437 0x2385 +0x8136F438 0x2386 +0x8136F439 0x2387 +0x8136F530 0x2388 +0x8136F531 0x2389 +0x8136F532 0x238A +0x8136F533 0x238B +0x8136F534 0x238C +0x8136F535 0x238D +0x8136F536 0x238E +0x8136F537 0x238F +0x8136F538 0x2390 +0x8136F539 0x2391 +0x8136F630 0x2392 +0x8136F631 0x2393 +0x8136F632 0x2394 +0x8136F633 0x2395 +0x8136F634 0x2396 +0x8136F635 0x2397 +0x8136F636 0x2398 +0x8136F637 0x2399 +0x8136F638 0x239A +0x8136F639 0x239B +0x8136F730 0x239C +0x8136F731 0x239D +0x8136F732 0x239E +0x8136F733 0x239F +0x8136F734 0x23A0 +0x8136F735 0x23A1 +0x8136F736 0x23A2 +0x8136F737 0x23A3 +0x8136F738 0x23A4 +0x8136F739 0x23A5 +0x8136F830 0x23A6 +0x8136F831 0x23A7 +0x8136F832 0x23A8 +0x8136F833 0x23A9 +0x8136F834 0x23AA +0x8136F835 0x23AB +0x8136F836 0x23AC +0x8136F837 0x23AD +0x8136F838 0x23AE +0x8136F839 0x23AF +0x8136F930 0x23B0 +0x8136F931 0x23B1 +0x8136F932 0x23B2 +0x8136F933 0x23B3 +0x8136F934 0x23B4 +0x8136F935 0x23B5 +0x8136F936 0x23B6 +0x8136F937 0x23B7 +0x8136F938 0x23B8 +0x8136F939 0x23B9 +0x8136FA30 0x23BA +0x8136FA31 0x23BB +0x8136FA32 0x23BC +0x8136FA33 0x23BD +0x8136FA34 0x23BE +0x8136FA35 0x23BF +0x8136FA36 0x23C0 +0x8136FA37 0x23C1 +0x8136FA38 0x23C2 +0x8136FA39 0x23C3 +0x8136FB30 0x23C4 +0x8136FB31 0x23C5 +0x8136FB32 0x23C6 +0x8136FB33 0x23C7 +0x8136FB34 0x23C8 +0x8136FB35 0x23C9 +0x8136FB36 0x23CA +0x8136FB37 0x23CB +0x8136FB38 0x23CC +0x8136FB39 0x23CD +0x8136FC30 0x23CE +0x8136FC31 0x23CF +0x8136FC32 0x23D0 +0x8136FC33 0x23D1 +0x8136FC34 0x23D2 +0x8136FC35 0x23D3 +0x8136FC36 0x23D4 +0x8136FC37 0x23D5 +0x8136FC38 0x23D6 +0x8136FC39 0x23D7 +0x8136FD30 0x23D8 +0x8136FD31 0x23D9 +0x8136FD32 0x23DA +0x8136FD33 0x23DB +0x8136FD34 0x23DC +0x8136FD35 0x23DD +0x8136FD36 0x23DE +0x8136FD37 0x23DF +0x8136FD38 0x23E0 +0x8136FD39 0x23E1 +0x8136FE30 0x23E2 +0x8136FE31 0x23E3 +0x8136FE32 0x23E4 +0x8136FE33 0x23E5 +0x8136FE34 0x23E6 +0x8136FE35 0x23E7 +0x8136FE36 0x23E8 +0x8136FE37 0x23E9 +0x8136FE38 0x23EA +0x8136FE39 0x23EB +0x81378130 0x23EC +0x81378131 0x23ED +0x81378132 0x23EE +0x81378133 0x23EF +0x81378134 0x23F0 +0x81378135 0x23F1 +0x81378136 0x23F2 +0x81378137 0x23F3 +0x81378138 0x23F4 +0x81378139 0x23F5 +0x81378230 0x23F6 +0x81378231 0x23F7 +0x81378232 0x23F8 +0x81378233 0x23F9 +0x81378234 0x23FA +0x81378235 0x23FB +0x81378236 0x23FC +0x81378237 0x23FD +0x81378238 0x23FE +0x81378239 0x23FF +0x81378330 0x2400 +0x81378331 0x2401 +0x81378332 0x2402 +0x81378333 0x2403 +0x81378334 0x2404 +0x81378335 0x2405 +0x81378336 0x2406 +0x81378337 0x2407 +0x81378338 0x2408 +0x81378339 0x2409 +0x81378430 0x240A +0x81378431 0x240B +0x81378432 0x240C +0x81378433 0x240D +0x81378434 0x240E +0x81378435 0x240F +0x81378436 0x2410 +0x81378437 0x2411 +0x81378438 0x2412 +0x81378439 0x2413 +0x81378530 0x2414 +0x81378531 0x2415 +0x81378532 0x2416 +0x81378533 0x2417 +0x81378534 0x2418 +0x81378535 0x2419 +0x81378536 0x241A +0x81378537 0x241B +0x81378538 0x241C +0x81378539 0x241D +0x81378630 0x241E +0x81378631 0x241F +0x81378632 0x2420 +0x81378633 0x2421 +0x81378634 0x2422 +0x81378635 0x2423 +0x81378636 0x2424 +0x81378637 0x2425 +0x81378638 0x2426 +0x81378639 0x2427 +0x81378730 0x2428 +0x81378731 0x2429 +0x81378732 0x242A +0x81378733 0x242B +0x81378734 0x242C +0x81378735 0x242D +0x81378736 0x242E +0x81378737 0x242F +0x81378738 0x2430 +0x81378739 0x2431 +0x81378830 0x2432 +0x81378831 0x2433 +0x81378832 0x2434 +0x81378833 0x2435 +0x81378834 0x2436 +0x81378835 0x2437 +0x81378836 0x2438 +0x81378837 0x2439 +0x81378838 0x243A +0x81378839 0x243B +0x81378930 0x243C +0x81378931 0x243D +0x81378932 0x243E +0x81378933 0x243F +0x81378934 0x2440 +0x81378935 0x2441 +0x81378936 0x2442 +0x81378937 0x2443 +0x81378938 0x2444 +0x81378939 0x2445 +0x81378A30 0x2446 +0x81378A31 0x2447 +0x81378A32 0x2448 +0x81378A33 0x2449 +0x81378A34 0x244A +0x81378A35 0x244B +0x81378A36 0x244C +0x81378A37 0x244D +0x81378A38 0x244E +0x81378A39 0x244F +0x81378B30 0x2450 +0x81378B31 0x2451 +0x81378B32 0x2452 +0x81378B33 0x2453 +0x81378B34 0x2454 +0x81378B35 0x2455 +0x81378B36 0x2456 +0x81378B37 0x2457 +0x81378B38 0x2458 +0x81378B39 0x2459 +0x81378C30 0x245A +0x81378C31 0x245B +0x81378C32 0x245C +0x81378C33 0x245D +0x81378C34 0x245E +0x81378C35 0x245F +0x81378C36 0x246A +0x81378C37 0x246B +0x81378C38 0x246C +0x81378C39 0x246D +0x81378D30 0x246E +0x81378D31 0x246F +0x81378D32 0x2470 +0x81378D33 0x2471 +0x81378D34 0x2472 +0x81378D35 0x2473 +0x81378D36 0x249C +0x81378D37 0x249D +0x81378D38 0x249E +0x81378D39 0x249F +0x81378E30 0x24A0 +0x81378E31 0x24A1 +0x81378E32 0x24A2 +0x81378E33 0x24A3 +0x81378E34 0x24A4 +0x81378E35 0x24A5 +0x81378E36 0x24A6 +0x81378E37 0x24A7 +0x81378E38 0x24A8 +0x81378E39 0x24A9 +0x81378F30 0x24AA +0x81378F31 0x24AB +0x81378F32 0x24AC +0x81378F33 0x24AD +0x81378F34 0x24AE +0x81378F35 0x24AF +0x81378F36 0x24B0 +0x81378F37 0x24B1 +0x81378F38 0x24B2 +0x81378F39 0x24B3 +0x81379030 0x24B4 +0x81379031 0x24B5 +0x81379032 0x24B6 +0x81379033 0x24B7 +0x81379034 0x24B8 +0x81379035 0x24B9 +0x81379036 0x24BA +0x81379037 0x24BB +0x81379038 0x24BC +0x81379039 0x24BD +0x81379130 0x24BE +0x81379131 0x24BF +0x81379132 0x24C0 +0x81379133 0x24C1 +0x81379134 0x24C2 +0x81379135 0x24C3 +0x81379136 0x24C4 +0x81379137 0x24C5 +0x81379138 0x24C6 +0x81379139 0x24C7 +0x81379230 0x24C8 +0x81379231 0x24C9 +0x81379232 0x24CA +0x81379233 0x24CB +0x81379234 0x24CC +0x81379235 0x24CD +0x81379236 0x24CE +0x81379237 0x24CF +0x81379238 0x24D0 +0x81379239 0x24D1 +0x81379330 0x24D2 +0x81379331 0x24D3 +0x81379332 0x24D4 +0x81379333 0x24D5 +0x81379334 0x24D6 +0x81379335 0x24D7 +0x81379336 0x24D8 +0x81379337 0x24D9 +0x81379338 0x24DA +0x81379339 0x24DB +0x81379430 0x24DC +0x81379431 0x24DD +0x81379432 0x24DE +0x81379433 0x24DF +0x81379434 0x24E0 +0x81379435 0x24E1 +0x81379436 0x24E2 +0x81379437 0x24E3 +0x81379438 0x24E4 +0x81379439 0x24E5 +0x81379530 0x24E6 +0x81379531 0x24E7 +0x81379532 0x24E8 +0x81379533 0x24E9 +0x81379534 0x24EA +0x81379535 0x24EB +0x81379536 0x24EC +0x81379537 0x24ED +0x81379538 0x24EE +0x81379539 0x24EF +0x81379630 0x24F0 +0x81379631 0x24F1 +0x81379632 0x24F2 +0x81379633 0x24F3 +0x81379634 0x24F4 +0x81379635 0x24F5 +0x81379636 0x24F6 +0x81379637 0x24F7 +0x81379638 0x24F8 +0x81379639 0x24F9 +0x81379730 0x24FA +0x81379731 0x24FB +0x81379732 0x24FC +0x81379733 0x24FD +0x81379734 0x24FE +0x81379735 0x24FF +0x81379736 0x254C +0x81379737 0x254D +0x81379738 0x254E +0x81379739 0x254F +0x81379830 0x2574 +0x81379831 0x2575 +0x81379832 0x2576 +0x81379833 0x2577 +0x81379834 0x2578 +0x81379835 0x2579 +0x81379836 0x257A +0x81379837 0x257B +0x81379838 0x257C +0x81379839 0x257D +0x81379930 0x257E +0x81379931 0x257F +0x81379932 0x2580 +0x81379933 0x2590 +0x81379934 0x2591 +0x81379935 0x2592 +0x81379936 0x2596 +0x81379937 0x2597 +0x81379938 0x2598 +0x81379939 0x2599 +0x81379A30 0x259A +0x81379A31 0x259B +0x81379A32 0x259C +0x81379A33 0x259D +0x81379A34 0x259E +0x81379A35 0x259F +0x81379A36 0x25A2 +0x81379A37 0x25A3 +0x81379A38 0x25A4 +0x81379A39 0x25A5 +0x81379B30 0x25A6 +0x81379B31 0x25A7 +0x81379B32 0x25A8 +0x81379B33 0x25A9 +0x81379B34 0x25AA +0x81379B35 0x25AB +0x81379B36 0x25AC +0x81379B37 0x25AD +0x81379B38 0x25AE +0x81379B39 0x25AF +0x81379C30 0x25B0 +0x81379C31 0x25B1 +0x81379C32 0x25B4 +0x81379C33 0x25B5 +0x81379C34 0x25B6 +0x81379C35 0x25B7 +0x81379C36 0x25B8 +0x81379C37 0x25B9 +0x81379C38 0x25BA +0x81379C39 0x25BB +0x81379D30 0x25BE +0x81379D31 0x25BF +0x81379D32 0x25C0 +0x81379D33 0x25C1 +0x81379D34 0x25C2 +0x81379D35 0x25C3 +0x81379D36 0x25C4 +0x81379D37 0x25C5 +0x81379D38 0x25C8 +0x81379D39 0x25C9 +0x81379E30 0x25CA +0x81379E31 0x25CC +0x81379E32 0x25CD +0x81379E33 0x25D0 +0x81379E34 0x25D1 +0x81379E35 0x25D2 +0x81379E36 0x25D3 +0x81379E37 0x25D4 +0x81379E38 0x25D5 +0x81379E39 0x25D6 +0x81379F30 0x25D7 +0x81379F31 0x25D8 +0x81379F32 0x25D9 +0x81379F33 0x25DA +0x81379F34 0x25DB +0x81379F35 0x25DC +0x81379F36 0x25DD +0x81379F37 0x25DE +0x81379F38 0x25DF +0x81379F39 0x25E0 +0x8137A030 0x25E1 +0x8137A031 0x25E6 +0x8137A032 0x25E7 +0x8137A033 0x25E8 +0x8137A034 0x25E9 +0x8137A035 0x25EA +0x8137A036 0x25EB +0x8137A037 0x25EC +0x8137A038 0x25ED +0x8137A039 0x25EE +0x8137A130 0x25EF +0x8137A131 0x25F0 +0x8137A132 0x25F1 +0x8137A133 0x25F2 +0x8137A134 0x25F3 +0x8137A135 0x25F4 +0x8137A136 0x25F5 +0x8137A137 0x25F6 +0x8137A138 0x25F7 +0x8137A139 0x25F8 +0x8137A230 0x25F9 +0x8137A231 0x25FA +0x8137A232 0x25FB +0x8137A233 0x25FC +0x8137A234 0x25FD +0x8137A235 0x25FE +0x8137A236 0x25FF +0x8137A237 0x2600 +0x8137A238 0x2601 +0x8137A239 0x2602 +0x8137A330 0x2603 +0x8137A331 0x2604 +0x8137A332 0x2607 +0x8137A333 0x2608 +0x8137A334 0x260A +0x8137A335 0x260B +0x8137A336 0x260C +0x8137A337 0x260D +0x8137A338 0x260E +0x8137A339 0x260F +0x8137A430 0x2610 +0x8137A431 0x2611 +0x8137A432 0x2612 +0x8137A433 0x2613 +0x8137A434 0x2614 +0x8137A435 0x2615 +0x8137A436 0x2616 +0x8137A437 0x2617 +0x8137A438 0x2618 +0x8137A439 0x2619 +0x8137A530 0x261A +0x8137A531 0x261B +0x8137A532 0x261C +0x8137A533 0x261D +0x8137A534 0x261E +0x8137A535 0x261F +0x8137A536 0x2620 +0x8137A537 0x2621 +0x8137A538 0x2622 +0x8137A539 0x2623 +0x8137A630 0x2624 +0x8137A631 0x2625 +0x8137A632 0x2626 +0x8137A633 0x2627 +0x8137A634 0x2628 +0x8137A635 0x2629 +0x8137A636 0x262A +0x8137A637 0x262B +0x8137A638 0x262C +0x8137A639 0x262D +0x8137A730 0x262E +0x8137A731 0x262F +0x8137A732 0x2630 +0x8137A733 0x2631 +0x8137A734 0x2632 +0x8137A735 0x2633 +0x8137A736 0x2634 +0x8137A737 0x2635 +0x8137A738 0x2636 +0x8137A739 0x2637 +0x8137A830 0x2638 +0x8137A831 0x2639 +0x8137A832 0x263A +0x8137A833 0x263B +0x8137A834 0x263C +0x8137A835 0x263D +0x8137A836 0x263E +0x8137A837 0x263F +0x8137A838 0x2641 +0x8137A839 0x2643 +0x8137A930 0x2644 +0x8137A931 0x2645 +0x8137A932 0x2646 +0x8137A933 0x2647 +0x8137A934 0x2648 +0x8137A935 0x2649 +0x8137A936 0x264A +0x8137A937 0x264B +0x8137A938 0x264C +0x8137A939 0x264D +0x8137AA30 0x264E +0x8137AA31 0x264F +0x8137AA32 0x2650 +0x8137AA33 0x2651 +0x8137AA34 0x2652 +0x8137AA35 0x2653 +0x8137AA36 0x2654 +0x8137AA37 0x2655 +0x8137AA38 0x2656 +0x8137AA39 0x2657 +0x8137AB30 0x2658 +0x8137AB31 0x2659 +0x8137AB32 0x265A +0x8137AB33 0x265B +0x8137AB34 0x265C +0x8137AB35 0x265D +0x8137AB36 0x265E +0x8137AB37 0x265F +0x8137AB38 0x2660 +0x8137AB39 0x2661 +0x8137AC30 0x2662 +0x8137AC31 0x2663 +0x8137AC32 0x2664 +0x8137AC33 0x2665 +0x8137AC34 0x2666 +0x8137AC35 0x2667 +0x8137AC36 0x2668 +0x8137AC37 0x2669 +0x8137AC38 0x266A +0x8137AC39 0x266B +0x8137AD30 0x266C +0x8137AD31 0x266D +0x8137AD32 0x266E +0x8137AD33 0x266F +0x8137AD34 0x2670 +0x8137AD35 0x2671 +0x8137AD36 0x2672 +0x8137AD37 0x2673 +0x8137AD38 0x2674 +0x8137AD39 0x2675 +0x8137AE30 0x2676 +0x8137AE31 0x2677 +0x8137AE32 0x2678 +0x8137AE33 0x2679 +0x8137AE34 0x267A +0x8137AE35 0x267B +0x8137AE36 0x267C +0x8137AE37 0x267D +0x8137AE38 0x267E +0x8137AE39 0x267F +0x8137AF30 0x2680 +0x8137AF31 0x2681 +0x8137AF32 0x2682 +0x8137AF33 0x2683 +0x8137AF34 0x2684 +0x8137AF35 0x2685 +0x8137AF36 0x2686 +0x8137AF37 0x2687 +0x8137AF38 0x2688 +0x8137AF39 0x2689 +0x8137B030 0x268A +0x8137B031 0x268B +0x8137B032 0x268C +0x8137B033 0x268D +0x8137B034 0x268E +0x8137B035 0x268F +0x8137B036 0x2690 +0x8137B037 0x2691 +0x8137B038 0x2692 +0x8137B039 0x2693 +0x8137B130 0x2694 +0x8137B131 0x2695 +0x8137B132 0x2696 +0x8137B133 0x2697 +0x8137B134 0x2698 +0x8137B135 0x2699 +0x8137B136 0x269A +0x8137B137 0x269B +0x8137B138 0x269C +0x8137B139 0x269D +0x8137B230 0x269E +0x8137B231 0x269F +0x8137B232 0x26A0 +0x8137B233 0x26A1 +0x8137B234 0x26A2 +0x8137B235 0x26A3 +0x8137B236 0x26A4 +0x8137B237 0x26A5 +0x8137B238 0x26A6 +0x8137B239 0x26A7 +0x8137B330 0x26A8 +0x8137B331 0x26A9 +0x8137B332 0x26AA +0x8137B333 0x26AB +0x8137B334 0x26AC +0x8137B335 0x26AD +0x8137B336 0x26AE +0x8137B337 0x26AF +0x8137B338 0x26B0 +0x8137B339 0x26B1 +0x8137B430 0x26B2 +0x8137B431 0x26B3 +0x8137B432 0x26B4 +0x8137B433 0x26B5 +0x8137B434 0x26B6 +0x8137B435 0x26B7 +0x8137B436 0x26B8 +0x8137B437 0x26B9 +0x8137B438 0x26BA +0x8137B439 0x26BB +0x8137B530 0x26BC +0x8137B531 0x26BD +0x8137B532 0x26BE +0x8137B533 0x26BF +0x8137B534 0x26C0 +0x8137B535 0x26C1 +0x8137B536 0x26C2 +0x8137B537 0x26C3 +0x8137B538 0x26C4 +0x8137B539 0x26C5 +0x8137B630 0x26C6 +0x8137B631 0x26C7 +0x8137B632 0x26C8 +0x8137B633 0x26C9 +0x8137B634 0x26CA +0x8137B635 0x26CB +0x8137B636 0x26CC +0x8137B637 0x26CD +0x8137B638 0x26CE +0x8137B639 0x26CF +0x8137B730 0x26D0 +0x8137B731 0x26D1 +0x8137B732 0x26D2 +0x8137B733 0x26D3 +0x8137B734 0x26D4 +0x8137B735 0x26D5 +0x8137B736 0x26D6 +0x8137B737 0x26D7 +0x8137B738 0x26D8 +0x8137B739 0x26D9 +0x8137B830 0x26DA +0x8137B831 0x26DB +0x8137B832 0x26DC +0x8137B833 0x26DD +0x8137B834 0x26DE +0x8137B835 0x26DF +0x8137B836 0x26E0 +0x8137B837 0x26E1 +0x8137B838 0x26E2 +0x8137B839 0x26E3 +0x8137B930 0x26E4 +0x8137B931 0x26E5 +0x8137B932 0x26E6 +0x8137B933 0x26E7 +0x8137B934 0x26E8 +0x8137B935 0x26E9 +0x8137B936 0x26EA +0x8137B937 0x26EB +0x8137B938 0x26EC +0x8137B939 0x26ED +0x8137BA30 0x26EE +0x8137BA31 0x26EF +0x8137BA32 0x26F0 +0x8137BA33 0x26F1 +0x8137BA34 0x26F2 +0x8137BA35 0x26F3 +0x8137BA36 0x26F4 +0x8137BA37 0x26F5 +0x8137BA38 0x26F6 +0x8137BA39 0x26F7 +0x8137BB30 0x26F8 +0x8137BB31 0x26F9 +0x8137BB32 0x26FA +0x8137BB33 0x26FB +0x8137BB34 0x26FC +0x8137BB35 0x26FD +0x8137BB36 0x26FE +0x8137BB37 0x26FF +0x8137BB38 0x2700 +0x8137BB39 0x2701 +0x8137BC30 0x2702 +0x8137BC31 0x2703 +0x8137BC32 0x2704 +0x8137BC33 0x2705 +0x8137BC34 0x2706 +0x8137BC35 0x2707 +0x8137BC36 0x2708 +0x8137BC37 0x2709 +0x8137BC38 0x270A +0x8137BC39 0x270B +0x8137BD30 0x270C +0x8137BD31 0x270D +0x8137BD32 0x270E +0x8137BD33 0x270F +0x8137BD34 0x2710 +0x8137BD35 0x2711 +0x8137BD36 0x2712 +0x8137BD37 0x2713 +0x8137BD38 0x2714 +0x8137BD39 0x2715 +0x8137BE30 0x2716 +0x8137BE31 0x2717 +0x8137BE32 0x2718 +0x8137BE33 0x2719 +0x8137BE34 0x271A +0x8137BE35 0x271B +0x8137BE36 0x271C +0x8137BE37 0x271D +0x8137BE38 0x271E +0x8137BE39 0x271F +0x8137BF30 0x2720 +0x8137BF31 0x2721 +0x8137BF32 0x2722 +0x8137BF33 0x2723 +0x8137BF34 0x2724 +0x8137BF35 0x2725 +0x8137BF36 0x2726 +0x8137BF37 0x2727 +0x8137BF38 0x2728 +0x8137BF39 0x2729 +0x8137C030 0x272A +0x8137C031 0x272B +0x8137C032 0x272C +0x8137C033 0x272D +0x8137C034 0x272E +0x8137C035 0x272F +0x8137C036 0x2730 +0x8137C037 0x2731 +0x8137C038 0x2732 +0x8137C039 0x2733 +0x8137C130 0x2734 +0x8137C131 0x2735 +0x8137C132 0x2736 +0x8137C133 0x2737 +0x8137C134 0x2738 +0x8137C135 0x2739 +0x8137C136 0x273A +0x8137C137 0x273B +0x8137C138 0x273C +0x8137C139 0x273D +0x8137C230 0x273E +0x8137C231 0x273F +0x8137C232 0x2740 +0x8137C233 0x2741 +0x8137C234 0x2742 +0x8137C235 0x2743 +0x8137C236 0x2744 +0x8137C237 0x2745 +0x8137C238 0x2746 +0x8137C239 0x2747 +0x8137C330 0x2748 +0x8137C331 0x2749 +0x8137C332 0x274A +0x8137C333 0x274B +0x8137C334 0x274C +0x8137C335 0x274D +0x8137C336 0x274E +0x8137C337 0x274F +0x8137C338 0x2750 +0x8137C339 0x2751 +0x8137C430 0x2752 +0x8137C431 0x2753 +0x8137C432 0x2754 +0x8137C433 0x2755 +0x8137C434 0x2756 +0x8137C435 0x2757 +0x8137C436 0x2758 +0x8137C437 0x2759 +0x8137C438 0x275A +0x8137C439 0x275B +0x8137C530 0x275C +0x8137C531 0x275D +0x8137C532 0x275E +0x8137C533 0x275F +0x8137C534 0x2760 +0x8137C535 0x2761 +0x8137C536 0x2762 +0x8137C537 0x2763 +0x8137C538 0x2764 +0x8137C539 0x2765 +0x8137C630 0x2766 +0x8137C631 0x2767 +0x8137C632 0x2768 +0x8137C633 0x2769 +0x8137C634 0x276A +0x8137C635 0x276B +0x8137C636 0x276C +0x8137C637 0x276D +0x8137C638 0x276E +0x8137C639 0x276F +0x8137C730 0x2770 +0x8137C731 0x2771 +0x8137C732 0x2772 +0x8137C733 0x2773 +0x8137C734 0x2774 +0x8137C735 0x2775 +0x8137C736 0x2776 +0x8137C737 0x2777 +0x8137C738 0x2778 +0x8137C739 0x2779 +0x8137C830 0x277A +0x8137C831 0x277B +0x8137C832 0x277C +0x8137C833 0x277D +0x8137C834 0x277E +0x8137C835 0x277F +0x8137C836 0x2780 +0x8137C837 0x2781 +0x8137C838 0x2782 +0x8137C839 0x2783 +0x8137C930 0x2784 +0x8137C931 0x2785 +0x8137C932 0x2786 +0x8137C933 0x2787 +0x8137C934 0x2788 +0x8137C935 0x2789 +0x8137C936 0x278A +0x8137C937 0x278B +0x8137C938 0x278C +0x8137C939 0x278D +0x8137CA30 0x278E +0x8137CA31 0x278F +0x8137CA32 0x2790 +0x8137CA33 0x2791 +0x8137CA34 0x2792 +0x8137CA35 0x2793 +0x8137CA36 0x2794 +0x8137CA37 0x2795 +0x8137CA38 0x2796 +0x8137CA39 0x2797 +0x8137CB30 0x2798 +0x8137CB31 0x2799 +0x8137CB32 0x279A +0x8137CB33 0x279B +0x8137CB34 0x279C +0x8137CB35 0x279D +0x8137CB36 0x279E +0x8137CB37 0x279F +0x8137CB38 0x27A0 +0x8137CB39 0x27A1 +0x8137CC30 0x27A2 +0x8137CC31 0x27A3 +0x8137CC32 0x27A4 +0x8137CC33 0x27A5 +0x8137CC34 0x27A6 +0x8137CC35 0x27A7 +0x8137CC36 0x27A8 +0x8137CC37 0x27A9 +0x8137CC38 0x27AA +0x8137CC39 0x27AB +0x8137CD30 0x27AC +0x8137CD31 0x27AD +0x8137CD32 0x27AE +0x8137CD33 0x27AF +0x8137CD34 0x27B0 +0x8137CD35 0x27B1 +0x8137CD36 0x27B2 +0x8137CD37 0x27B3 +0x8137CD38 0x27B4 +0x8137CD39 0x27B5 +0x8137CE30 0x27B6 +0x8137CE31 0x27B7 +0x8137CE32 0x27B8 +0x8137CE33 0x27B9 +0x8137CE34 0x27BA +0x8137CE35 0x27BB +0x8137CE36 0x27BC +0x8137CE37 0x27BD +0x8137CE38 0x27BE +0x8137CE39 0x27BF +0x8137CF30 0x27C0 +0x8137CF31 0x27C1 +0x8137CF32 0x27C2 +0x8137CF33 0x27C3 +0x8137CF34 0x27C4 +0x8137CF35 0x27C5 +0x8137CF36 0x27C6 +0x8137CF37 0x27C7 +0x8137CF38 0x27C8 +0x8137CF39 0x27C9 +0x8137D030 0x27CA +0x8137D031 0x27CB +0x8137D032 0x27CC +0x8137D033 0x27CD +0x8137D034 0x27CE +0x8137D035 0x27CF +0x8137D036 0x27D0 +0x8137D037 0x27D1 +0x8137D038 0x27D2 +0x8137D039 0x27D3 +0x8137D130 0x27D4 +0x8137D131 0x27D5 +0x8137D132 0x27D6 +0x8137D133 0x27D7 +0x8137D134 0x27D8 +0x8137D135 0x27D9 +0x8137D136 0x27DA +0x8137D137 0x27DB +0x8137D138 0x27DC +0x8137D139 0x27DD +0x8137D230 0x27DE +0x8137D231 0x27DF +0x8137D232 0x27E0 +0x8137D233 0x27E1 +0x8137D234 0x27E2 +0x8137D235 0x27E3 +0x8137D236 0x27E4 +0x8137D237 0x27E5 +0x8137D238 0x27E6 +0x8137D239 0x27E7 +0x8137D330 0x27E8 +0x8137D331 0x27E9 +0x8137D332 0x27EA +0x8137D333 0x27EB +0x8137D334 0x27EC +0x8137D335 0x27ED +0x8137D336 0x27EE +0x8137D337 0x27EF +0x8137D338 0x27F0 +0x8137D339 0x27F1 +0x8137D430 0x27F2 +0x8137D431 0x27F3 +0x8137D432 0x27F4 +0x8137D433 0x27F5 +0x8137D434 0x27F6 +0x8137D435 0x27F7 +0x8137D436 0x27F8 +0x8137D437 0x27F9 +0x8137D438 0x27FA +0x8137D439 0x27FB +0x8137D530 0x27FC +0x8137D531 0x27FD +0x8137D532 0x27FE +0x8137D533 0x27FF +0x8137D534 0x2800 +0x8137D535 0x2801 +0x8137D536 0x2802 +0x8137D537 0x2803 +0x8137D538 0x2804 +0x8137D539 0x2805 +0x8137D630 0x2806 +0x8137D631 0x2807 +0x8137D632 0x2808 +0x8137D633 0x2809 +0x8137D634 0x280A +0x8137D635 0x280B +0x8137D636 0x280C +0x8137D637 0x280D +0x8137D638 0x280E +0x8137D639 0x280F +0x8137D730 0x2810 +0x8137D731 0x2811 +0x8137D732 0x2812 +0x8137D733 0x2813 +0x8137D734 0x2814 +0x8137D735 0x2815 +0x8137D736 0x2816 +0x8137D737 0x2817 +0x8137D738 0x2818 +0x8137D739 0x2819 +0x8137D830 0x281A +0x8137D831 0x281B +0x8137D832 0x281C +0x8137D833 0x281D +0x8137D834 0x281E +0x8137D835 0x281F +0x8137D836 0x2820 +0x8137D837 0x2821 +0x8137D838 0x2822 +0x8137D839 0x2823 +0x8137D930 0x2824 +0x8137D931 0x2825 +0x8137D932 0x2826 +0x8137D933 0x2827 +0x8137D934 0x2828 +0x8137D935 0x2829 +0x8137D936 0x282A +0x8137D937 0x282B +0x8137D938 0x282C +0x8137D939 0x282D +0x8137DA30 0x282E +0x8137DA31 0x282F +0x8137DA32 0x2830 +0x8137DA33 0x2831 +0x8137DA34 0x2832 +0x8137DA35 0x2833 +0x8137DA36 0x2834 +0x8137DA37 0x2835 +0x8137DA38 0x2836 +0x8137DA39 0x2837 +0x8137DB30 0x2838 +0x8137DB31 0x2839 +0x8137DB32 0x283A +0x8137DB33 0x283B +0x8137DB34 0x283C +0x8137DB35 0x283D +0x8137DB36 0x283E +0x8137DB37 0x283F +0x8137DB38 0x2840 +0x8137DB39 0x2841 +0x8137DC30 0x2842 +0x8137DC31 0x2843 +0x8137DC32 0x2844 +0x8137DC33 0x2845 +0x8137DC34 0x2846 +0x8137DC35 0x2847 +0x8137DC36 0x2848 +0x8137DC37 0x2849 +0x8137DC38 0x284A +0x8137DC39 0x284B +0x8137DD30 0x284C +0x8137DD31 0x284D +0x8137DD32 0x284E +0x8137DD33 0x284F +0x8137DD34 0x2850 +0x8137DD35 0x2851 +0x8137DD36 0x2852 +0x8137DD37 0x2853 +0x8137DD38 0x2854 +0x8137DD39 0x2855 +0x8137DE30 0x2856 +0x8137DE31 0x2857 +0x8137DE32 0x2858 +0x8137DE33 0x2859 +0x8137DE34 0x285A +0x8137DE35 0x285B +0x8137DE36 0x285C +0x8137DE37 0x285D +0x8137DE38 0x285E +0x8137DE39 0x285F +0x8137DF30 0x2860 +0x8137DF31 0x2861 +0x8137DF32 0x2862 +0x8137DF33 0x2863 +0x8137DF34 0x2864 +0x8137DF35 0x2865 +0x8137DF36 0x2866 +0x8137DF37 0x2867 +0x8137DF38 0x2868 +0x8137DF39 0x2869 +0x8137E030 0x286A +0x8137E031 0x286B +0x8137E032 0x286C +0x8137E033 0x286D +0x8137E034 0x286E +0x8137E035 0x286F +0x8137E036 0x2870 +0x8137E037 0x2871 +0x8137E038 0x2872 +0x8137E039 0x2873 +0x8137E130 0x2874 +0x8137E131 0x2875 +0x8137E132 0x2876 +0x8137E133 0x2877 +0x8137E134 0x2878 +0x8137E135 0x2879 +0x8137E136 0x287A +0x8137E137 0x287B +0x8137E138 0x287C +0x8137E139 0x287D +0x8137E230 0x287E +0x8137E231 0x287F +0x8137E232 0x2880 +0x8137E233 0x2881 +0x8137E234 0x2882 +0x8137E235 0x2883 +0x8137E236 0x2884 +0x8137E237 0x2885 +0x8137E238 0x2886 +0x8137E239 0x2887 +0x8137E330 0x2888 +0x8137E331 0x2889 +0x8137E332 0x288A +0x8137E333 0x288B +0x8137E334 0x288C +0x8137E335 0x288D +0x8137E336 0x288E +0x8137E337 0x288F +0x8137E338 0x2890 +0x8137E339 0x2891 +0x8137E430 0x2892 +0x8137E431 0x2893 +0x8137E432 0x2894 +0x8137E433 0x2895 +0x8137E434 0x2896 +0x8137E435 0x2897 +0x8137E436 0x2898 +0x8137E437 0x2899 +0x8137E438 0x289A +0x8137E439 0x289B +0x8137E530 0x289C +0x8137E531 0x289D +0x8137E532 0x289E +0x8137E533 0x289F +0x8137E534 0x28A0 +0x8137E535 0x28A1 +0x8137E536 0x28A2 +0x8137E537 0x28A3 +0x8137E538 0x28A4 +0x8137E539 0x28A5 +0x8137E630 0x28A6 +0x8137E631 0x28A7 +0x8137E632 0x28A8 +0x8137E633 0x28A9 +0x8137E634 0x28AA +0x8137E635 0x28AB +0x8137E636 0x28AC +0x8137E637 0x28AD +0x8137E638 0x28AE +0x8137E639 0x28AF +0x8137E730 0x28B0 +0x8137E731 0x28B1 +0x8137E732 0x28B2 +0x8137E733 0x28B3 +0x8137E734 0x28B4 +0x8137E735 0x28B5 +0x8137E736 0x28B6 +0x8137E737 0x28B7 +0x8137E738 0x28B8 +0x8137E739 0x28B9 +0x8137E830 0x28BA +0x8137E831 0x28BB +0x8137E832 0x28BC +0x8137E833 0x28BD +0x8137E834 0x28BE +0x8137E835 0x28BF +0x8137E836 0x28C0 +0x8137E837 0x28C1 +0x8137E838 0x28C2 +0x8137E839 0x28C3 +0x8137E930 0x28C4 +0x8137E931 0x28C5 +0x8137E932 0x28C6 +0x8137E933 0x28C7 +0x8137E934 0x28C8 +0x8137E935 0x28C9 +0x8137E936 0x28CA +0x8137E937 0x28CB +0x8137E938 0x28CC +0x8137E939 0x28CD +0x8137EA30 0x28CE +0x8137EA31 0x28CF +0x8137EA32 0x28D0 +0x8137EA33 0x28D1 +0x8137EA34 0x28D2 +0x8137EA35 0x28D3 +0x8137EA36 0x28D4 +0x8137EA37 0x28D5 +0x8137EA38 0x28D6 +0x8137EA39 0x28D7 +0x8137EB30 0x28D8 +0x8137EB31 0x28D9 +0x8137EB32 0x28DA +0x8137EB33 0x28DB +0x8137EB34 0x28DC +0x8137EB35 0x28DD +0x8137EB36 0x28DE +0x8137EB37 0x28DF +0x8137EB38 0x28E0 +0x8137EB39 0x28E1 +0x8137EC30 0x28E2 +0x8137EC31 0x28E3 +0x8137EC32 0x28E4 +0x8137EC33 0x28E5 +0x8137EC34 0x28E6 +0x8137EC35 0x28E7 +0x8137EC36 0x28E8 +0x8137EC37 0x28E9 +0x8137EC38 0x28EA +0x8137EC39 0x28EB +0x8137ED30 0x28EC +0x8137ED31 0x28ED +0x8137ED32 0x28EE +0x8137ED33 0x28EF +0x8137ED34 0x28F0 +0x8137ED35 0x28F1 +0x8137ED36 0x28F2 +0x8137ED37 0x28F3 +0x8137ED38 0x28F4 +0x8137ED39 0x28F5 +0x8137EE30 0x28F6 +0x8137EE31 0x28F7 +0x8137EE32 0x28F8 +0x8137EE33 0x28F9 +0x8137EE34 0x28FA +0x8137EE35 0x28FB +0x8137EE36 0x28FC +0x8137EE37 0x28FD +0x8137EE38 0x28FE +0x8137EE39 0x28FF +0x8137EF30 0x2900 +0x8137EF31 0x2901 +0x8137EF32 0x2902 +0x8137EF33 0x2903 +0x8137EF34 0x2904 +0x8137EF35 0x2905 +0x8137EF36 0x2906 +0x8137EF37 0x2907 +0x8137EF38 0x2908 +0x8137EF39 0x2909 +0x8137F030 0x290A +0x8137F031 0x290B +0x8137F032 0x290C +0x8137F033 0x290D +0x8137F034 0x290E +0x8137F035 0x290F +0x8137F036 0x2910 +0x8137F037 0x2911 +0x8137F038 0x2912 +0x8137F039 0x2913 +0x8137F130 0x2914 +0x8137F131 0x2915 +0x8137F132 0x2916 +0x8137F133 0x2917 +0x8137F134 0x2918 +0x8137F135 0x2919 +0x8137F136 0x291A +0x8137F137 0x291B +0x8137F138 0x291C +0x8137F139 0x291D +0x8137F230 0x291E +0x8137F231 0x291F +0x8137F232 0x2920 +0x8137F233 0x2921 +0x8137F234 0x2922 +0x8137F235 0x2923 +0x8137F236 0x2924 +0x8137F237 0x2925 +0x8137F238 0x2926 +0x8137F239 0x2927 +0x8137F330 0x2928 +0x8137F331 0x2929 +0x8137F332 0x292A +0x8137F333 0x292B +0x8137F334 0x292C +0x8137F335 0x292D +0x8137F336 0x292E +0x8137F337 0x292F +0x8137F338 0x2930 +0x8137F339 0x2931 +0x8137F430 0x2932 +0x8137F431 0x2933 +0x8137F432 0x2934 +0x8137F433 0x2935 +0x8137F434 0x2936 +0x8137F435 0x2937 +0x8137F436 0x2938 +0x8137F437 0x2939 +0x8137F438 0x293A +0x8137F439 0x293B +0x8137F530 0x293C +0x8137F531 0x293D +0x8137F532 0x293E +0x8137F533 0x293F +0x8137F534 0x2940 +0x8137F535 0x2941 +0x8137F536 0x2942 +0x8137F537 0x2943 +0x8137F538 0x2944 +0x8137F539 0x2945 +0x8137F630 0x2946 +0x8137F631 0x2947 +0x8137F632 0x2948 +0x8137F633 0x2949 +0x8137F634 0x294A +0x8137F635 0x294B +0x8137F636 0x294C +0x8137F637 0x294D +0x8137F638 0x294E +0x8137F639 0x294F +0x8137F730 0x2950 +0x8137F731 0x2951 +0x8137F732 0x2952 +0x8137F733 0x2953 +0x8137F734 0x2954 +0x8137F735 0x2955 +0x8137F736 0x2956 +0x8137F737 0x2957 +0x8137F738 0x2958 +0x8137F739 0x2959 +0x8137F830 0x295A +0x8137F831 0x295B +0x8137F832 0x295C +0x8137F833 0x295D +0x8137F834 0x295E +0x8137F835 0x295F +0x8137F836 0x2960 +0x8137F837 0x2961 +0x8137F838 0x2962 +0x8137F839 0x2963 +0x8137F930 0x2964 +0x8137F931 0x2965 +0x8137F932 0x2966 +0x8137F933 0x2967 +0x8137F934 0x2968 +0x8137F935 0x2969 +0x8137F936 0x296A +0x8137F937 0x296B +0x8137F938 0x296C +0x8137F939 0x296D +0x8137FA30 0x296E +0x8137FA31 0x296F +0x8137FA32 0x2970 +0x8137FA33 0x2971 +0x8137FA34 0x2972 +0x8137FA35 0x2973 +0x8137FA36 0x2974 +0x8137FA37 0x2975 +0x8137FA38 0x2976 +0x8137FA39 0x2977 +0x8137FB30 0x2978 +0x8137FB31 0x2979 +0x8137FB32 0x297A +0x8137FB33 0x297B +0x8137FB34 0x297C +0x8137FB35 0x297D +0x8137FB36 0x297E +0x8137FB37 0x297F +0x8137FB38 0x2980 +0x8137FB39 0x2981 +0x8137FC30 0x2982 +0x8137FC31 0x2983 +0x8137FC32 0x2984 +0x8137FC33 0x2985 +0x8137FC34 0x2986 +0x8137FC35 0x2987 +0x8137FC36 0x2988 +0x8137FC37 0x2989 +0x8137FC38 0x298A +0x8137FC39 0x298B +0x8137FD30 0x298C +0x8137FD31 0x298D +0x8137FD32 0x298E +0x8137FD33 0x298F +0x8137FD34 0x2990 +0x8137FD35 0x2991 +0x8137FD36 0x2992 +0x8137FD37 0x2993 +0x8137FD38 0x2994 +0x8137FD39 0x2995 +0x8137FE30 0x2996 +0x8137FE31 0x2997 +0x8137FE32 0x2998 +0x8137FE33 0x2999 +0x8137FE34 0x299A +0x8137FE35 0x299B +0x8137FE36 0x299C +0x8137FE37 0x299D +0x8137FE38 0x299E +0x8137FE39 0x299F +0x81388130 0x29A0 +0x81388131 0x29A1 +0x81388132 0x29A2 +0x81388133 0x29A3 +0x81388134 0x29A4 +0x81388135 0x29A5 +0x81388136 0x29A6 +0x81388137 0x29A7 +0x81388138 0x29A8 +0x81388139 0x29A9 +0x81388230 0x29AA +0x81388231 0x29AB +0x81388232 0x29AC +0x81388233 0x29AD +0x81388234 0x29AE +0x81388235 0x29AF +0x81388236 0x29B0 +0x81388237 0x29B1 +0x81388238 0x29B2 +0x81388239 0x29B3 +0x81388330 0x29B4 +0x81388331 0x29B5 +0x81388332 0x29B6 +0x81388333 0x29B7 +0x81388334 0x29B8 +0x81388335 0x29B9 +0x81388336 0x29BA +0x81388337 0x29BB +0x81388338 0x29BC +0x81388339 0x29BD +0x81388430 0x29BE +0x81388431 0x29BF +0x81388432 0x29C0 +0x81388433 0x29C1 +0x81388434 0x29C2 +0x81388435 0x29C3 +0x81388436 0x29C4 +0x81388437 0x29C5 +0x81388438 0x29C6 +0x81388439 0x29C7 +0x81388530 0x29C8 +0x81388531 0x29C9 +0x81388532 0x29CA +0x81388533 0x29CB +0x81388534 0x29CC +0x81388535 0x29CD +0x81388536 0x29CE +0x81388537 0x29CF +0x81388538 0x29D0 +0x81388539 0x29D1 +0x81388630 0x29D2 +0x81388631 0x29D3 +0x81388632 0x29D4 +0x81388633 0x29D5 +0x81388634 0x29D6 +0x81388635 0x29D7 +0x81388636 0x29D8 +0x81388637 0x29D9 +0x81388638 0x29DA +0x81388639 0x29DB +0x81388730 0x29DC +0x81388731 0x29DD +0x81388732 0x29DE +0x81388733 0x29DF +0x81388734 0x29E0 +0x81388735 0x29E1 +0x81388736 0x29E2 +0x81388737 0x29E3 +0x81388738 0x29E4 +0x81388739 0x29E5 +0x81388830 0x29E6 +0x81388831 0x29E7 +0x81388832 0x29E8 +0x81388833 0x29E9 +0x81388834 0x29EA +0x81388835 0x29EB +0x81388836 0x29EC +0x81388837 0x29ED +0x81388838 0x29EE +0x81388839 0x29EF +0x81388930 0x29F0 +0x81388931 0x29F1 +0x81388932 0x29F2 +0x81388933 0x29F3 +0x81388934 0x29F4 +0x81388935 0x29F5 +0x81388936 0x29F6 +0x81388937 0x29F7 +0x81388938 0x29F8 +0x81388939 0x29F9 +0x81388A30 0x29FA +0x81388A31 0x29FB +0x81388A32 0x29FC +0x81388A33 0x29FD +0x81388A34 0x29FE +0x81388A35 0x29FF +0x81388A36 0x2A00 +0x81388A37 0x2A01 +0x81388A38 0x2A02 +0x81388A39 0x2A03 +0x81388B30 0x2A04 +0x81388B31 0x2A05 +0x81388B32 0x2A06 +0x81388B33 0x2A07 +0x81388B34 0x2A08 +0x81388B35 0x2A09 +0x81388B36 0x2A0A +0x81388B37 0x2A0B +0x81388B38 0x2A0C +0x81388B39 0x2A0D +0x81388C30 0x2A0E +0x81388C31 0x2A0F +0x81388C32 0x2A10 +0x81388C33 0x2A11 +0x81388C34 0x2A12 +0x81388C35 0x2A13 +0x81388C36 0x2A14 +0x81388C37 0x2A15 +0x81388C38 0x2A16 +0x81388C39 0x2A17 +0x81388D30 0x2A18 +0x81388D31 0x2A19 +0x81388D32 0x2A1A +0x81388D33 0x2A1B +0x81388D34 0x2A1C +0x81388D35 0x2A1D +0x81388D36 0x2A1E +0x81388D37 0x2A1F +0x81388D38 0x2A20 +0x81388D39 0x2A21 +0x81388E30 0x2A22 +0x81388E31 0x2A23 +0x81388E32 0x2A24 +0x81388E33 0x2A25 +0x81388E34 0x2A26 +0x81388E35 0x2A27 +0x81388E36 0x2A28 +0x81388E37 0x2A29 +0x81388E38 0x2A2A +0x81388E39 0x2A2B +0x81388F30 0x2A2C +0x81388F31 0x2A2D +0x81388F32 0x2A2E +0x81388F33 0x2A2F +0x81388F34 0x2A30 +0x81388F35 0x2A31 +0x81388F36 0x2A32 +0x81388F37 0x2A33 +0x81388F38 0x2A34 +0x81388F39 0x2A35 +0x81389030 0x2A36 +0x81389031 0x2A37 +0x81389032 0x2A38 +0x81389033 0x2A39 +0x81389034 0x2A3A +0x81389035 0x2A3B +0x81389036 0x2A3C +0x81389037 0x2A3D +0x81389038 0x2A3E +0x81389039 0x2A3F +0x81389130 0x2A40 +0x81389131 0x2A41 +0x81389132 0x2A42 +0x81389133 0x2A43 +0x81389134 0x2A44 +0x81389135 0x2A45 +0x81389136 0x2A46 +0x81389137 0x2A47 +0x81389138 0x2A48 +0x81389139 0x2A49 +0x81389230 0x2A4A +0x81389231 0x2A4B +0x81389232 0x2A4C +0x81389233 0x2A4D +0x81389234 0x2A4E +0x81389235 0x2A4F +0x81389236 0x2A50 +0x81389237 0x2A51 +0x81389238 0x2A52 +0x81389239 0x2A53 +0x81389330 0x2A54 +0x81389331 0x2A55 +0x81389332 0x2A56 +0x81389333 0x2A57 +0x81389334 0x2A58 +0x81389335 0x2A59 +0x81389336 0x2A5A +0x81389337 0x2A5B +0x81389338 0x2A5C +0x81389339 0x2A5D +0x81389430 0x2A5E +0x81389431 0x2A5F +0x81389432 0x2A60 +0x81389433 0x2A61 +0x81389434 0x2A62 +0x81389435 0x2A63 +0x81389436 0x2A64 +0x81389437 0x2A65 +0x81389438 0x2A66 +0x81389439 0x2A67 +0x81389530 0x2A68 +0x81389531 0x2A69 +0x81389532 0x2A6A +0x81389533 0x2A6B +0x81389534 0x2A6C +0x81389535 0x2A6D +0x81389536 0x2A6E +0x81389537 0x2A6F +0x81389538 0x2A70 +0x81389539 0x2A71 +0x81389630 0x2A72 +0x81389631 0x2A73 +0x81389632 0x2A74 +0x81389633 0x2A75 +0x81389634 0x2A76 +0x81389635 0x2A77 +0x81389636 0x2A78 +0x81389637 0x2A79 +0x81389638 0x2A7A +0x81389639 0x2A7B +0x81389730 0x2A7C +0x81389731 0x2A7D +0x81389732 0x2A7E +0x81389733 0x2A7F +0x81389734 0x2A80 +0x81389735 0x2A81 +0x81389736 0x2A82 +0x81389737 0x2A83 +0x81389738 0x2A84 +0x81389739 0x2A85 +0x81389830 0x2A86 +0x81389831 0x2A87 +0x81389832 0x2A88 +0x81389833 0x2A89 +0x81389834 0x2A8A +0x81389835 0x2A8B +0x81389836 0x2A8C +0x81389837 0x2A8D +0x81389838 0x2A8E +0x81389839 0x2A8F +0x81389930 0x2A90 +0x81389931 0x2A91 +0x81389932 0x2A92 +0x81389933 0x2A93 +0x81389934 0x2A94 +0x81389935 0x2A95 +0x81389936 0x2A96 +0x81389937 0x2A97 +0x81389938 0x2A98 +0x81389939 0x2A99 +0x81389A30 0x2A9A +0x81389A31 0x2A9B +0x81389A32 0x2A9C +0x81389A33 0x2A9D +0x81389A34 0x2A9E +0x81389A35 0x2A9F +0x81389A36 0x2AA0 +0x81389A37 0x2AA1 +0x81389A38 0x2AA2 +0x81389A39 0x2AA3 +0x81389B30 0x2AA4 +0x81389B31 0x2AA5 +0x81389B32 0x2AA6 +0x81389B33 0x2AA7 +0x81389B34 0x2AA8 +0x81389B35 0x2AA9 +0x81389B36 0x2AAA +0x81389B37 0x2AAB +0x81389B38 0x2AAC +0x81389B39 0x2AAD +0x81389C30 0x2AAE +0x81389C31 0x2AAF +0x81389C32 0x2AB0 +0x81389C33 0x2AB1 +0x81389C34 0x2AB2 +0x81389C35 0x2AB3 +0x81389C36 0x2AB4 +0x81389C37 0x2AB5 +0x81389C38 0x2AB6 +0x81389C39 0x2AB7 +0x81389D30 0x2AB8 +0x81389D31 0x2AB9 +0x81389D32 0x2ABA +0x81389D33 0x2ABB +0x81389D34 0x2ABC +0x81389D35 0x2ABD +0x81389D36 0x2ABE +0x81389D37 0x2ABF +0x81389D38 0x2AC0 +0x81389D39 0x2AC1 +0x81389E30 0x2AC2 +0x81389E31 0x2AC3 +0x81389E32 0x2AC4 +0x81389E33 0x2AC5 +0x81389E34 0x2AC6 +0x81389E35 0x2AC7 +0x81389E36 0x2AC8 +0x81389E37 0x2AC9 +0x81389E38 0x2ACA +0x81389E39 0x2ACB +0x81389F30 0x2ACC +0x81389F31 0x2ACD +0x81389F32 0x2ACE +0x81389F33 0x2ACF +0x81389F34 0x2AD0 +0x81389F35 0x2AD1 +0x81389F36 0x2AD2 +0x81389F37 0x2AD3 +0x81389F38 0x2AD4 +0x81389F39 0x2AD5 +0x8138A030 0x2AD6 +0x8138A031 0x2AD7 +0x8138A032 0x2AD8 +0x8138A033 0x2AD9 +0x8138A034 0x2ADA +0x8138A035 0x2ADB +0x8138A036 0x2ADC +0x8138A037 0x2ADD +0x8138A038 0x2ADE +0x8138A039 0x2ADF +0x8138A130 0x2AE0 +0x8138A131 0x2AE1 +0x8138A132 0x2AE2 +0x8138A133 0x2AE3 +0x8138A134 0x2AE4 +0x8138A135 0x2AE5 +0x8138A136 0x2AE6 +0x8138A137 0x2AE7 +0x8138A138 0x2AE8 +0x8138A139 0x2AE9 +0x8138A230 0x2AEA +0x8138A231 0x2AEB +0x8138A232 0x2AEC +0x8138A233 0x2AED +0x8138A234 0x2AEE +0x8138A235 0x2AEF +0x8138A236 0x2AF0 +0x8138A237 0x2AF1 +0x8138A238 0x2AF2 +0x8138A239 0x2AF3 +0x8138A330 0x2AF4 +0x8138A331 0x2AF5 +0x8138A332 0x2AF6 +0x8138A333 0x2AF7 +0x8138A334 0x2AF8 +0x8138A335 0x2AF9 +0x8138A336 0x2AFA +0x8138A337 0x2AFB +0x8138A338 0x2AFC +0x8138A339 0x2AFD +0x8138A430 0x2AFE +0x8138A431 0x2AFF +0x8138A432 0x2B00 +0x8138A433 0x2B01 +0x8138A434 0x2B02 +0x8138A435 0x2B03 +0x8138A436 0x2B04 +0x8138A437 0x2B05 +0x8138A438 0x2B06 +0x8138A439 0x2B07 +0x8138A530 0x2B08 +0x8138A531 0x2B09 +0x8138A532 0x2B0A +0x8138A533 0x2B0B +0x8138A534 0x2B0C +0x8138A535 0x2B0D +0x8138A536 0x2B0E +0x8138A537 0x2B0F +0x8138A538 0x2B10 +0x8138A539 0x2B11 +0x8138A630 0x2B12 +0x8138A631 0x2B13 +0x8138A632 0x2B14 +0x8138A633 0x2B15 +0x8138A634 0x2B16 +0x8138A635 0x2B17 +0x8138A636 0x2B18 +0x8138A637 0x2B19 +0x8138A638 0x2B1A +0x8138A639 0x2B1B +0x8138A730 0x2B1C +0x8138A731 0x2B1D +0x8138A732 0x2B1E +0x8138A733 0x2B1F +0x8138A734 0x2B20 +0x8138A735 0x2B21 +0x8138A736 0x2B22 +0x8138A737 0x2B23 +0x8138A738 0x2B24 +0x8138A739 0x2B25 +0x8138A830 0x2B26 +0x8138A831 0x2B27 +0x8138A832 0x2B28 +0x8138A833 0x2B29 +0x8138A834 0x2B2A +0x8138A835 0x2B2B +0x8138A836 0x2B2C +0x8138A837 0x2B2D +0x8138A838 0x2B2E +0x8138A839 0x2B2F +0x8138A930 0x2B30 +0x8138A931 0x2B31 +0x8138A932 0x2B32 +0x8138A933 0x2B33 +0x8138A934 0x2B34 +0x8138A935 0x2B35 +0x8138A936 0x2B36 +0x8138A937 0x2B37 +0x8138A938 0x2B38 +0x8138A939 0x2B39 +0x8138AA30 0x2B3A +0x8138AA31 0x2B3B +0x8138AA32 0x2B3C +0x8138AA33 0x2B3D +0x8138AA34 0x2B3E +0x8138AA35 0x2B3F +0x8138AA36 0x2B40 +0x8138AA37 0x2B41 +0x8138AA38 0x2B42 +0x8138AA39 0x2B43 +0x8138AB30 0x2B44 +0x8138AB31 0x2B45 +0x8138AB32 0x2B46 +0x8138AB33 0x2B47 +0x8138AB34 0x2B48 +0x8138AB35 0x2B49 +0x8138AB36 0x2B4A +0x8138AB37 0x2B4B +0x8138AB38 0x2B4C +0x8138AB39 0x2B4D +0x8138AC30 0x2B4E +0x8138AC31 0x2B4F +0x8138AC32 0x2B50 +0x8138AC33 0x2B51 +0x8138AC34 0x2B52 +0x8138AC35 0x2B53 +0x8138AC36 0x2B54 +0x8138AC37 0x2B55 +0x8138AC38 0x2B56 +0x8138AC39 0x2B57 +0x8138AD30 0x2B58 +0x8138AD31 0x2B59 +0x8138AD32 0x2B5A +0x8138AD33 0x2B5B +0x8138AD34 0x2B5C +0x8138AD35 0x2B5D +0x8138AD36 0x2B5E +0x8138AD37 0x2B5F +0x8138AD38 0x2B60 +0x8138AD39 0x2B61 +0x8138AE30 0x2B62 +0x8138AE31 0x2B63 +0x8138AE32 0x2B64 +0x8138AE33 0x2B65 +0x8138AE34 0x2B66 +0x8138AE35 0x2B67 +0x8138AE36 0x2B68 +0x8138AE37 0x2B69 +0x8138AE38 0x2B6A +0x8138AE39 0x2B6B +0x8138AF30 0x2B6C +0x8138AF31 0x2B6D +0x8138AF32 0x2B6E +0x8138AF33 0x2B6F +0x8138AF34 0x2B70 +0x8138AF35 0x2B71 +0x8138AF36 0x2B72 +0x8138AF37 0x2B73 +0x8138AF38 0x2B74 +0x8138AF39 0x2B75 +0x8138B030 0x2B76 +0x8138B031 0x2B77 +0x8138B032 0x2B78 +0x8138B033 0x2B79 +0x8138B034 0x2B7A +0x8138B035 0x2B7B +0x8138B036 0x2B7C +0x8138B037 0x2B7D +0x8138B038 0x2B7E +0x8138B039 0x2B7F +0x8138B130 0x2B80 +0x8138B131 0x2B81 +0x8138B132 0x2B82 +0x8138B133 0x2B83 +0x8138B134 0x2B84 +0x8138B135 0x2B85 +0x8138B136 0x2B86 +0x8138B137 0x2B87 +0x8138B138 0x2B88 +0x8138B139 0x2B89 +0x8138B230 0x2B8A +0x8138B231 0x2B8B +0x8138B232 0x2B8C +0x8138B233 0x2B8D +0x8138B234 0x2B8E +0x8138B235 0x2B8F +0x8138B236 0x2B90 +0x8138B237 0x2B91 +0x8138B238 0x2B92 +0x8138B239 0x2B93 +0x8138B330 0x2B94 +0x8138B331 0x2B95 +0x8138B332 0x2B96 +0x8138B333 0x2B97 +0x8138B334 0x2B98 +0x8138B335 0x2B99 +0x8138B336 0x2B9A +0x8138B337 0x2B9B +0x8138B338 0x2B9C +0x8138B339 0x2B9D +0x8138B430 0x2B9E +0x8138B431 0x2B9F +0x8138B432 0x2BA0 +0x8138B433 0x2BA1 +0x8138B434 0x2BA2 +0x8138B435 0x2BA3 +0x8138B436 0x2BA4 +0x8138B437 0x2BA5 +0x8138B438 0x2BA6 +0x8138B439 0x2BA7 +0x8138B530 0x2BA8 +0x8138B531 0x2BA9 +0x8138B532 0x2BAA +0x8138B533 0x2BAB +0x8138B534 0x2BAC +0x8138B535 0x2BAD +0x8138B536 0x2BAE +0x8138B537 0x2BAF +0x8138B538 0x2BB0 +0x8138B539 0x2BB1 +0x8138B630 0x2BB2 +0x8138B631 0x2BB3 +0x8138B632 0x2BB4 +0x8138B633 0x2BB5 +0x8138B634 0x2BB6 +0x8138B635 0x2BB7 +0x8138B636 0x2BB8 +0x8138B637 0x2BB9 +0x8138B638 0x2BBA +0x8138B639 0x2BBB +0x8138B730 0x2BBC +0x8138B731 0x2BBD +0x8138B732 0x2BBE +0x8138B733 0x2BBF +0x8138B734 0x2BC0 +0x8138B735 0x2BC1 +0x8138B736 0x2BC2 +0x8138B737 0x2BC3 +0x8138B738 0x2BC4 +0x8138B739 0x2BC5 +0x8138B830 0x2BC6 +0x8138B831 0x2BC7 +0x8138B832 0x2BC8 +0x8138B833 0x2BC9 +0x8138B834 0x2BCA +0x8138B835 0x2BCB +0x8138B836 0x2BCC +0x8138B837 0x2BCD +0x8138B838 0x2BCE +0x8138B839 0x2BCF +0x8138B930 0x2BD0 +0x8138B931 0x2BD1 +0x8138B932 0x2BD2 +0x8138B933 0x2BD3 +0x8138B934 0x2BD4 +0x8138B935 0x2BD5 +0x8138B936 0x2BD6 +0x8138B937 0x2BD7 +0x8138B938 0x2BD8 +0x8138B939 0x2BD9 +0x8138BA30 0x2BDA +0x8138BA31 0x2BDB +0x8138BA32 0x2BDC +0x8138BA33 0x2BDD +0x8138BA34 0x2BDE +0x8138BA35 0x2BDF +0x8138BA36 0x2BE0 +0x8138BA37 0x2BE1 +0x8138BA38 0x2BE2 +0x8138BA39 0x2BE3 +0x8138BB30 0x2BE4 +0x8138BB31 0x2BE5 +0x8138BB32 0x2BE6 +0x8138BB33 0x2BE7 +0x8138BB34 0x2BE8 +0x8138BB35 0x2BE9 +0x8138BB36 0x2BEA +0x8138BB37 0x2BEB +0x8138BB38 0x2BEC +0x8138BB39 0x2BED +0x8138BC30 0x2BEE +0x8138BC31 0x2BEF +0x8138BC32 0x2BF0 +0x8138BC33 0x2BF1 +0x8138BC34 0x2BF2 +0x8138BC35 0x2BF3 +0x8138BC36 0x2BF4 +0x8138BC37 0x2BF5 +0x8138BC38 0x2BF6 +0x8138BC39 0x2BF7 +0x8138BD30 0x2BF8 +0x8138BD31 0x2BF9 +0x8138BD32 0x2BFA +0x8138BD33 0x2BFB +0x8138BD34 0x2BFC +0x8138BD35 0x2BFD +0x8138BD36 0x2BFE +0x8138BD37 0x2BFF +0x8138BD38 0x2C00 +0x8138BD39 0x2C01 +0x8138BE30 0x2C02 +0x8138BE31 0x2C03 +0x8138BE32 0x2C04 +0x8138BE33 0x2C05 +0x8138BE34 0x2C06 +0x8138BE35 0x2C07 +0x8138BE36 0x2C08 +0x8138BE37 0x2C09 +0x8138BE38 0x2C0A +0x8138BE39 0x2C0B +0x8138BF30 0x2C0C +0x8138BF31 0x2C0D +0x8138BF32 0x2C0E +0x8138BF33 0x2C0F +0x8138BF34 0x2C10 +0x8138BF35 0x2C11 +0x8138BF36 0x2C12 +0x8138BF37 0x2C13 +0x8138BF38 0x2C14 +0x8138BF39 0x2C15 +0x8138C030 0x2C16 +0x8138C031 0x2C17 +0x8138C032 0x2C18 +0x8138C033 0x2C19 +0x8138C034 0x2C1A +0x8138C035 0x2C1B +0x8138C036 0x2C1C +0x8138C037 0x2C1D +0x8138C038 0x2C1E +0x8138C039 0x2C1F +0x8138C130 0x2C20 +0x8138C131 0x2C21 +0x8138C132 0x2C22 +0x8138C133 0x2C23 +0x8138C134 0x2C24 +0x8138C135 0x2C25 +0x8138C136 0x2C26 +0x8138C137 0x2C27 +0x8138C138 0x2C28 +0x8138C139 0x2C29 +0x8138C230 0x2C2A +0x8138C231 0x2C2B +0x8138C232 0x2C2C +0x8138C233 0x2C2D +0x8138C234 0x2C2E +0x8138C235 0x2C2F +0x8138C236 0x2C30 +0x8138C237 0x2C31 +0x8138C238 0x2C32 +0x8138C239 0x2C33 +0x8138C330 0x2C34 +0x8138C331 0x2C35 +0x8138C332 0x2C36 +0x8138C333 0x2C37 +0x8138C334 0x2C38 +0x8138C335 0x2C39 +0x8138C336 0x2C3A +0x8138C337 0x2C3B +0x8138C338 0x2C3C +0x8138C339 0x2C3D +0x8138C430 0x2C3E +0x8138C431 0x2C3F +0x8138C432 0x2C40 +0x8138C433 0x2C41 +0x8138C434 0x2C42 +0x8138C435 0x2C43 +0x8138C436 0x2C44 +0x8138C437 0x2C45 +0x8138C438 0x2C46 +0x8138C439 0x2C47 +0x8138C530 0x2C48 +0x8138C531 0x2C49 +0x8138C532 0x2C4A +0x8138C533 0x2C4B +0x8138C534 0x2C4C +0x8138C535 0x2C4D +0x8138C536 0x2C4E +0x8138C537 0x2C4F +0x8138C538 0x2C50 +0x8138C539 0x2C51 +0x8138C630 0x2C52 +0x8138C631 0x2C53 +0x8138C632 0x2C54 +0x8138C633 0x2C55 +0x8138C634 0x2C56 +0x8138C635 0x2C57 +0x8138C636 0x2C58 +0x8138C637 0x2C59 +0x8138C638 0x2C5A +0x8138C639 0x2C5B +0x8138C730 0x2C5C +0x8138C731 0x2C5D +0x8138C732 0x2C5E +0x8138C733 0x2C5F +0x8138C734 0x2C60 +0x8138C735 0x2C61 +0x8138C736 0x2C62 +0x8138C737 0x2C63 +0x8138C738 0x2C64 +0x8138C739 0x2C65 +0x8138C830 0x2C66 +0x8138C831 0x2C67 +0x8138C832 0x2C68 +0x8138C833 0x2C69 +0x8138C834 0x2C6A +0x8138C835 0x2C6B +0x8138C836 0x2C6C +0x8138C837 0x2C6D +0x8138C838 0x2C6E +0x8138C839 0x2C6F +0x8138C930 0x2C70 +0x8138C931 0x2C71 +0x8138C932 0x2C72 +0x8138C933 0x2C73 +0x8138C934 0x2C74 +0x8138C935 0x2C75 +0x8138C936 0x2C76 +0x8138C937 0x2C77 +0x8138C938 0x2C78 +0x8138C939 0x2C79 +0x8138CA30 0x2C7A +0x8138CA31 0x2C7B +0x8138CA32 0x2C7C +0x8138CA33 0x2C7D +0x8138CA34 0x2C7E +0x8138CA35 0x2C7F +0x8138CA36 0x2C80 +0x8138CA37 0x2C81 +0x8138CA38 0x2C82 +0x8138CA39 0x2C83 +0x8138CB30 0x2C84 +0x8138CB31 0x2C85 +0x8138CB32 0x2C86 +0x8138CB33 0x2C87 +0x8138CB34 0x2C88 +0x8138CB35 0x2C89 +0x8138CB36 0x2C8A +0x8138CB37 0x2C8B +0x8138CB38 0x2C8C +0x8138CB39 0x2C8D +0x8138CC30 0x2C8E +0x8138CC31 0x2C8F +0x8138CC32 0x2C90 +0x8138CC33 0x2C91 +0x8138CC34 0x2C92 +0x8138CC35 0x2C93 +0x8138CC36 0x2C94 +0x8138CC37 0x2C95 +0x8138CC38 0x2C96 +0x8138CC39 0x2C97 +0x8138CD30 0x2C98 +0x8138CD31 0x2C99 +0x8138CD32 0x2C9A +0x8138CD33 0x2C9B +0x8138CD34 0x2C9C +0x8138CD35 0x2C9D +0x8138CD36 0x2C9E +0x8138CD37 0x2C9F +0x8138CD38 0x2CA0 +0x8138CD39 0x2CA1 +0x8138CE30 0x2CA2 +0x8138CE31 0x2CA3 +0x8138CE32 0x2CA4 +0x8138CE33 0x2CA5 +0x8138CE34 0x2CA6 +0x8138CE35 0x2CA7 +0x8138CE36 0x2CA8 +0x8138CE37 0x2CA9 +0x8138CE38 0x2CAA +0x8138CE39 0x2CAB +0x8138CF30 0x2CAC +0x8138CF31 0x2CAD +0x8138CF32 0x2CAE +0x8138CF33 0x2CAF +0x8138CF34 0x2CB0 +0x8138CF35 0x2CB1 +0x8138CF36 0x2CB2 +0x8138CF37 0x2CB3 +0x8138CF38 0x2CB4 +0x8138CF39 0x2CB5 +0x8138D030 0x2CB6 +0x8138D031 0x2CB7 +0x8138D032 0x2CB8 +0x8138D033 0x2CB9 +0x8138D034 0x2CBA +0x8138D035 0x2CBB +0x8138D036 0x2CBC +0x8138D037 0x2CBD +0x8138D038 0x2CBE +0x8138D039 0x2CBF +0x8138D130 0x2CC0 +0x8138D131 0x2CC1 +0x8138D132 0x2CC2 +0x8138D133 0x2CC3 +0x8138D134 0x2CC4 +0x8138D135 0x2CC5 +0x8138D136 0x2CC6 +0x8138D137 0x2CC7 +0x8138D138 0x2CC8 +0x8138D139 0x2CC9 +0x8138D230 0x2CCA +0x8138D231 0x2CCB +0x8138D232 0x2CCC +0x8138D233 0x2CCD +0x8138D234 0x2CCE +0x8138D235 0x2CCF +0x8138D236 0x2CD0 +0x8138D237 0x2CD1 +0x8138D238 0x2CD2 +0x8138D239 0x2CD3 +0x8138D330 0x2CD4 +0x8138D331 0x2CD5 +0x8138D332 0x2CD6 +0x8138D333 0x2CD7 +0x8138D334 0x2CD8 +0x8138D335 0x2CD9 +0x8138D336 0x2CDA +0x8138D337 0x2CDB +0x8138D338 0x2CDC +0x8138D339 0x2CDD +0x8138D430 0x2CDE +0x8138D431 0x2CDF +0x8138D432 0x2CE0 +0x8138D433 0x2CE1 +0x8138D434 0x2CE2 +0x8138D435 0x2CE3 +0x8138D436 0x2CE4 +0x8138D437 0x2CE5 +0x8138D438 0x2CE6 +0x8138D439 0x2CE7 +0x8138D530 0x2CE8 +0x8138D531 0x2CE9 +0x8138D532 0x2CEA +0x8138D533 0x2CEB +0x8138D534 0x2CEC +0x8138D535 0x2CED +0x8138D536 0x2CEE +0x8138D537 0x2CEF +0x8138D538 0x2CF0 +0x8138D539 0x2CF1 +0x8138D630 0x2CF2 +0x8138D631 0x2CF3 +0x8138D632 0x2CF4 +0x8138D633 0x2CF5 +0x8138D634 0x2CF6 +0x8138D635 0x2CF7 +0x8138D636 0x2CF8 +0x8138D637 0x2CF9 +0x8138D638 0x2CFA +0x8138D639 0x2CFB +0x8138D730 0x2CFC +0x8138D731 0x2CFD +0x8138D732 0x2CFE +0x8138D733 0x2CFF +0x8138D734 0x2D00 +0x8138D735 0x2D01 +0x8138D736 0x2D02 +0x8138D737 0x2D03 +0x8138D738 0x2D04 +0x8138D739 0x2D05 +0x8138D830 0x2D06 +0x8138D831 0x2D07 +0x8138D832 0x2D08 +0x8138D833 0x2D09 +0x8138D834 0x2D0A +0x8138D835 0x2D0B +0x8138D836 0x2D0C +0x8138D837 0x2D0D +0x8138D838 0x2D0E +0x8138D839 0x2D0F +0x8138D930 0x2D10 +0x8138D931 0x2D11 +0x8138D932 0x2D12 +0x8138D933 0x2D13 +0x8138D934 0x2D14 +0x8138D935 0x2D15 +0x8138D936 0x2D16 +0x8138D937 0x2D17 +0x8138D938 0x2D18 +0x8138D939 0x2D19 +0x8138DA30 0x2D1A +0x8138DA31 0x2D1B +0x8138DA32 0x2D1C +0x8138DA33 0x2D1D +0x8138DA34 0x2D1E +0x8138DA35 0x2D1F +0x8138DA36 0x2D20 +0x8138DA37 0x2D21 +0x8138DA38 0x2D22 +0x8138DA39 0x2D23 +0x8138DB30 0x2D24 +0x8138DB31 0x2D25 +0x8138DB32 0x2D26 +0x8138DB33 0x2D27 +0x8138DB34 0x2D28 +0x8138DB35 0x2D29 +0x8138DB36 0x2D2A +0x8138DB37 0x2D2B +0x8138DB38 0x2D2C +0x8138DB39 0x2D2D +0x8138DC30 0x2D2E +0x8138DC31 0x2D2F +0x8138DC32 0x2D30 +0x8138DC33 0x2D31 +0x8138DC34 0x2D32 +0x8138DC35 0x2D33 +0x8138DC36 0x2D34 +0x8138DC37 0x2D35 +0x8138DC38 0x2D36 +0x8138DC39 0x2D37 +0x8138DD30 0x2D38 +0x8138DD31 0x2D39 +0x8138DD32 0x2D3A +0x8138DD33 0x2D3B +0x8138DD34 0x2D3C +0x8138DD35 0x2D3D +0x8138DD36 0x2D3E +0x8138DD37 0x2D3F +0x8138DD38 0x2D40 +0x8138DD39 0x2D41 +0x8138DE30 0x2D42 +0x8138DE31 0x2D43 +0x8138DE32 0x2D44 +0x8138DE33 0x2D45 +0x8138DE34 0x2D46 +0x8138DE35 0x2D47 +0x8138DE36 0x2D48 +0x8138DE37 0x2D49 +0x8138DE38 0x2D4A +0x8138DE39 0x2D4B +0x8138DF30 0x2D4C +0x8138DF31 0x2D4D +0x8138DF32 0x2D4E +0x8138DF33 0x2D4F +0x8138DF34 0x2D50 +0x8138DF35 0x2D51 +0x8138DF36 0x2D52 +0x8138DF37 0x2D53 +0x8138DF38 0x2D54 +0x8138DF39 0x2D55 +0x8138E030 0x2D56 +0x8138E031 0x2D57 +0x8138E032 0x2D58 +0x8138E033 0x2D59 +0x8138E034 0x2D5A +0x8138E035 0x2D5B +0x8138E036 0x2D5C +0x8138E037 0x2D5D +0x8138E038 0x2D5E +0x8138E039 0x2D5F +0x8138E130 0x2D60 +0x8138E131 0x2D61 +0x8138E132 0x2D62 +0x8138E133 0x2D63 +0x8138E134 0x2D64 +0x8138E135 0x2D65 +0x8138E136 0x2D66 +0x8138E137 0x2D67 +0x8138E138 0x2D68 +0x8138E139 0x2D69 +0x8138E230 0x2D6A +0x8138E231 0x2D6B +0x8138E232 0x2D6C +0x8138E233 0x2D6D +0x8138E234 0x2D6E +0x8138E235 0x2D6F +0x8138E236 0x2D70 +0x8138E237 0x2D71 +0x8138E238 0x2D72 +0x8138E239 0x2D73 +0x8138E330 0x2D74 +0x8138E331 0x2D75 +0x8138E332 0x2D76 +0x8138E333 0x2D77 +0x8138E334 0x2D78 +0x8138E335 0x2D79 +0x8138E336 0x2D7A +0x8138E337 0x2D7B +0x8138E338 0x2D7C +0x8138E339 0x2D7D +0x8138E430 0x2D7E +0x8138E431 0x2D7F +0x8138E432 0x2D80 +0x8138E433 0x2D81 +0x8138E434 0x2D82 +0x8138E435 0x2D83 +0x8138E436 0x2D84 +0x8138E437 0x2D85 +0x8138E438 0x2D86 +0x8138E439 0x2D87 +0x8138E530 0x2D88 +0x8138E531 0x2D89 +0x8138E532 0x2D8A +0x8138E533 0x2D8B +0x8138E534 0x2D8C +0x8138E535 0x2D8D +0x8138E536 0x2D8E +0x8138E537 0x2D8F +0x8138E538 0x2D90 +0x8138E539 0x2D91 +0x8138E630 0x2D92 +0x8138E631 0x2D93 +0x8138E632 0x2D94 +0x8138E633 0x2D95 +0x8138E634 0x2D96 +0x8138E635 0x2D97 +0x8138E636 0x2D98 +0x8138E637 0x2D99 +0x8138E638 0x2D9A +0x8138E639 0x2D9B +0x8138E730 0x2D9C +0x8138E731 0x2D9D +0x8138E732 0x2D9E +0x8138E733 0x2D9F +0x8138E734 0x2DA0 +0x8138E735 0x2DA1 +0x8138E736 0x2DA2 +0x8138E737 0x2DA3 +0x8138E738 0x2DA4 +0x8138E739 0x2DA5 +0x8138E830 0x2DA6 +0x8138E831 0x2DA7 +0x8138E832 0x2DA8 +0x8138E833 0x2DA9 +0x8138E834 0x2DAA +0x8138E835 0x2DAB +0x8138E836 0x2DAC +0x8138E837 0x2DAD +0x8138E838 0x2DAE +0x8138E839 0x2DAF +0x8138E930 0x2DB0 +0x8138E931 0x2DB1 +0x8138E932 0x2DB2 +0x8138E933 0x2DB3 +0x8138E934 0x2DB4 +0x8138E935 0x2DB5 +0x8138E936 0x2DB6 +0x8138E937 0x2DB7 +0x8138E938 0x2DB8 +0x8138E939 0x2DB9 +0x8138EA30 0x2DBA +0x8138EA31 0x2DBB +0x8138EA32 0x2DBC +0x8138EA33 0x2DBD +0x8138EA34 0x2DBE +0x8138EA35 0x2DBF +0x8138EA36 0x2DC0 +0x8138EA37 0x2DC1 +0x8138EA38 0x2DC2 +0x8138EA39 0x2DC3 +0x8138EB30 0x2DC4 +0x8138EB31 0x2DC5 +0x8138EB32 0x2DC6 +0x8138EB33 0x2DC7 +0x8138EB34 0x2DC8 +0x8138EB35 0x2DC9 +0x8138EB36 0x2DCA +0x8138EB37 0x2DCB +0x8138EB38 0x2DCC +0x8138EB39 0x2DCD +0x8138EC30 0x2DCE +0x8138EC31 0x2DCF +0x8138EC32 0x2DD0 +0x8138EC33 0x2DD1 +0x8138EC34 0x2DD2 +0x8138EC35 0x2DD3 +0x8138EC36 0x2DD4 +0x8138EC37 0x2DD5 +0x8138EC38 0x2DD6 +0x8138EC39 0x2DD7 +0x8138ED30 0x2DD8 +0x8138ED31 0x2DD9 +0x8138ED32 0x2DDA +0x8138ED33 0x2DDB +0x8138ED34 0x2DDC +0x8138ED35 0x2DDD +0x8138ED36 0x2DDE +0x8138ED37 0x2DDF +0x8138ED38 0x2DE0 +0x8138ED39 0x2DE1 +0x8138EE30 0x2DE2 +0x8138EE31 0x2DE3 +0x8138EE32 0x2DE4 +0x8138EE33 0x2DE5 +0x8138EE34 0x2DE6 +0x8138EE35 0x2DE7 +0x8138EE36 0x2DE8 +0x8138EE37 0x2DE9 +0x8138EE38 0x2DEA +0x8138EE39 0x2DEB +0x8138EF30 0x2DEC +0x8138EF31 0x2DED +0x8138EF32 0x2DEE +0x8138EF33 0x2DEF +0x8138EF34 0x2DF0 +0x8138EF35 0x2DF1 +0x8138EF36 0x2DF2 +0x8138EF37 0x2DF3 +0x8138EF38 0x2DF4 +0x8138EF39 0x2DF5 +0x8138F030 0x2DF6 +0x8138F031 0x2DF7 +0x8138F032 0x2DF8 +0x8138F033 0x2DF9 +0x8138F034 0x2DFA +0x8138F035 0x2DFB +0x8138F036 0x2DFC +0x8138F037 0x2DFD +0x8138F038 0x2DFE +0x8138F039 0x2DFF +0x8138F130 0x2E00 +0x8138F131 0x2E01 +0x8138F132 0x2E02 +0x8138F133 0x2E03 +0x8138F134 0x2E04 +0x8138F135 0x2E05 +0x8138F136 0x2E06 +0x8138F137 0x2E07 +0x8138F138 0x2E08 +0x8138F139 0x2E09 +0x8138F230 0x2E0A +0x8138F231 0x2E0B +0x8138F232 0x2E0C +0x8138F233 0x2E0D +0x8138F234 0x2E0E +0x8138F235 0x2E0F +0x8138F236 0x2E10 +0x8138F237 0x2E11 +0x8138F238 0x2E12 +0x8138F239 0x2E13 +0x8138F330 0x2E14 +0x8138F331 0x2E15 +0x8138F332 0x2E16 +0x8138F333 0x2E17 +0x8138F334 0x2E18 +0x8138F335 0x2E19 +0x8138F336 0x2E1A +0x8138F337 0x2E1B +0x8138F338 0x2E1C +0x8138F339 0x2E1D +0x8138F430 0x2E1E +0x8138F431 0x2E1F +0x8138F432 0x2E20 +0x8138F433 0x2E21 +0x8138F434 0x2E22 +0x8138F435 0x2E23 +0x8138F436 0x2E24 +0x8138F437 0x2E25 +0x8138F438 0x2E26 +0x8138F439 0x2E27 +0x8138F530 0x2E28 +0x8138F531 0x2E29 +0x8138F532 0x2E2A +0x8138F533 0x2E2B +0x8138F534 0x2E2C +0x8138F535 0x2E2D +0x8138F536 0x2E2E +0x8138F537 0x2E2F +0x8138F538 0x2E30 +0x8138F539 0x2E31 +0x8138F630 0x2E32 +0x8138F631 0x2E33 +0x8138F632 0x2E34 +0x8138F633 0x2E35 +0x8138F634 0x2E36 +0x8138F635 0x2E37 +0x8138F636 0x2E38 +0x8138F637 0x2E39 +0x8138F638 0x2E3A +0x8138F639 0x2E3B +0x8138F730 0x2E3C +0x8138F731 0x2E3D +0x8138F732 0x2E3E +0x8138F733 0x2E3F +0x8138F734 0x2E40 +0x8138F735 0x2E41 +0x8138F736 0x2E42 +0x8138F737 0x2E43 +0x8138F738 0x2E44 +0x8138F739 0x2E45 +0x8138F830 0x2E46 +0x8138F831 0x2E47 +0x8138F832 0x2E48 +0x8138F833 0x2E49 +0x8138F834 0x2E4A +0x8138F835 0x2E4B +0x8138F836 0x2E4C +0x8138F837 0x2E4D +0x8138F838 0x2E4E +0x8138F839 0x2E4F +0x8138F930 0x2E50 +0x8138F931 0x2E51 +0x8138F932 0x2E52 +0x8138F933 0x2E53 +0x8138F934 0x2E54 +0x8138F935 0x2E55 +0x8138F936 0x2E56 +0x8138F937 0x2E57 +0x8138F938 0x2E58 +0x8138F939 0x2E59 +0x8138FA30 0x2E5A +0x8138FA31 0x2E5B +0x8138FA32 0x2E5C +0x8138FA33 0x2E5D +0x8138FA34 0x2E5E +0x8138FA35 0x2E5F +0x8138FA36 0x2E60 +0x8138FA37 0x2E61 +0x8138FA38 0x2E62 +0x8138FA39 0x2E63 +0x8138FB30 0x2E64 +0x8138FB31 0x2E65 +0x8138FB32 0x2E66 +0x8138FB33 0x2E67 +0x8138FB34 0x2E68 +0x8138FB35 0x2E69 +0x8138FB36 0x2E6A +0x8138FB37 0x2E6B +0x8138FB38 0x2E6C +0x8138FB39 0x2E6D +0x8138FC30 0x2E6E +0x8138FC31 0x2E6F +0x8138FC32 0x2E70 +0x8138FC33 0x2E71 +0x8138FC34 0x2E72 +0x8138FC35 0x2E73 +0x8138FC36 0x2E74 +0x8138FC37 0x2E75 +0x8138FC38 0x2E76 +0x8138FC39 0x2E77 +0x8138FD30 0x2E78 +0x8138FD31 0x2E79 +0x8138FD32 0x2E7A +0x8138FD33 0x2E7B +0x8138FD34 0x2E7C +0x8138FD35 0x2E7D +0x8138FD36 0x2E7E +0x8138FD37 0x2E7F +0x8138FD38 0x2E80 +0x8138FD39 0x2E82 +0x8138FE30 0x2E83 +0x8138FE31 0x2E85 +0x8138FE32 0x2E86 +0x8138FE33 0x2E87 +0x8138FE34 0x2E89 +0x8138FE35 0x2E8A +0x8138FE36 0x2E8D +0x8138FE37 0x2E8E +0x8138FE38 0x2E8F +0x8138FE39 0x2E90 +0x81398130 0x2E91 +0x81398131 0x2E92 +0x81398132 0x2E93 +0x81398133 0x2E94 +0x81398134 0x2E95 +0x81398135 0x2E96 +0x81398136 0x2E98 +0x81398137 0x2E99 +0x81398138 0x2E9A +0x81398139 0x2E9B +0x81398230 0x2E9C +0x81398231 0x2E9D +0x81398232 0x2E9E +0x81398233 0x2E9F +0x81398234 0x2EA0 +0x81398235 0x2EA1 +0x81398236 0x2EA2 +0x81398237 0x2EA3 +0x81398238 0x2EA4 +0x81398239 0x2EA5 +0x81398330 0x2EA6 +0x81398331 0x2EA8 +0x81398332 0x2EA9 +0x81398333 0x2EAB +0x81398334 0x2EAC +0x81398335 0x2EAD +0x81398336 0x2EAF +0x81398337 0x2EB0 +0x81398338 0x2EB1 +0x81398339 0x2EB2 +0x81398430 0x2EB4 +0x81398431 0x2EB5 +0x81398432 0x2EB8 +0x81398433 0x2EB9 +0x81398434 0x2EBA +0x81398435 0x2EBC +0x81398436 0x2EBD +0x81398437 0x2EBE +0x81398438 0x2EBF +0x81398439 0x2EC0 +0x81398530 0x2EC1 +0x81398531 0x2EC2 +0x81398532 0x2EC3 +0x81398533 0x2EC4 +0x81398534 0x2EC5 +0x81398535 0x2EC6 +0x81398536 0x2EC7 +0x81398537 0x2EC8 +0x81398538 0x2EC9 +0x81398539 0x2ECB +0x81398630 0x2ECC +0x81398631 0x2ECD +0x81398632 0x2ECE +0x81398633 0x2ECF +0x81398634 0x2ED0 +0x81398635 0x2ED1 +0x81398636 0x2ED2 +0x81398637 0x2ED3 +0x81398638 0x2ED4 +0x81398639 0x2ED5 +0x81398730 0x2ED6 +0x81398731 0x2ED7 +0x81398732 0x2ED8 +0x81398733 0x2ED9 +0x81398734 0x2EDA +0x81398735 0x2EDB +0x81398736 0x2EDC +0x81398737 0x2EDD +0x81398738 0x2EDE +0x81398739 0x2EDF +0x81398830 0x2EE0 +0x81398831 0x2EE1 +0x81398832 0x2EE2 +0x81398833 0x2EE3 +0x81398834 0x2EE4 +0x81398835 0x2EE5 +0x81398836 0x2EE6 +0x81398837 0x2EE7 +0x81398838 0x2EE8 +0x81398839 0x2EE9 +0x81398930 0x2EEA +0x81398931 0x2EEB +0x81398932 0x2EEC +0x81398933 0x2EED +0x81398934 0x2EEE +0x81398935 0x2EEF +0x81398936 0x2EF0 +0x81398937 0x2EF1 +0x81398938 0x2EF2 +0x81398939 0x2EF3 +0x81398A30 0x2EF4 +0x81398A31 0x2EF5 +0x81398A32 0x2EF6 +0x81398A33 0x2EF7 +0x81398A34 0x2EF8 +0x81398A35 0x2EF9 +0x81398A36 0x2EFA +0x81398A37 0x2EFB +0x81398A38 0x2EFC +0x81398A39 0x2EFD +0x81398B30 0x2EFE +0x81398B31 0x2EFF +0x81398B32 0x2F00 +0x81398B33 0x2F01 +0x81398B34 0x2F02 +0x81398B35 0x2F03 +0x81398B36 0x2F04 +0x81398B37 0x2F05 +0x81398B38 0x2F06 +0x81398B39 0x2F07 +0x81398C30 0x2F08 +0x81398C31 0x2F09 +0x81398C32 0x2F0A +0x81398C33 0x2F0B +0x81398C34 0x2F0C +0x81398C35 0x2F0D +0x81398C36 0x2F0E +0x81398C37 0x2F0F +0x81398C38 0x2F10 +0x81398C39 0x2F11 +0x81398D30 0x2F12 +0x81398D31 0x2F13 +0x81398D32 0x2F14 +0x81398D33 0x2F15 +0x81398D34 0x2F16 +0x81398D35 0x2F17 +0x81398D36 0x2F18 +0x81398D37 0x2F19 +0x81398D38 0x2F1A +0x81398D39 0x2F1B +0x81398E30 0x2F1C +0x81398E31 0x2F1D +0x81398E32 0x2F1E +0x81398E33 0x2F1F +0x81398E34 0x2F20 +0x81398E35 0x2F21 +0x81398E36 0x2F22 +0x81398E37 0x2F23 +0x81398E38 0x2F24 +0x81398E39 0x2F25 +0x81398F30 0x2F26 +0x81398F31 0x2F27 +0x81398F32 0x2F28 +0x81398F33 0x2F29 +0x81398F34 0x2F2A +0x81398F35 0x2F2B +0x81398F36 0x2F2C +0x81398F37 0x2F2D +0x81398F38 0x2F2E +0x81398F39 0x2F2F +0x81399030 0x2F30 +0x81399031 0x2F31 +0x81399032 0x2F32 +0x81399033 0x2F33 +0x81399034 0x2F34 +0x81399035 0x2F35 +0x81399036 0x2F36 +0x81399037 0x2F37 +0x81399038 0x2F38 +0x81399039 0x2F39 +0x81399130 0x2F3A +0x81399131 0x2F3B +0x81399132 0x2F3C +0x81399133 0x2F3D +0x81399134 0x2F3E +0x81399135 0x2F3F +0x81399136 0x2F40 +0x81399137 0x2F41 +0x81399138 0x2F42 +0x81399139 0x2F43 +0x81399230 0x2F44 +0x81399231 0x2F45 +0x81399232 0x2F46 +0x81399233 0x2F47 +0x81399234 0x2F48 +0x81399235 0x2F49 +0x81399236 0x2F4A +0x81399237 0x2F4B +0x81399238 0x2F4C +0x81399239 0x2F4D +0x81399330 0x2F4E +0x81399331 0x2F4F +0x81399332 0x2F50 +0x81399333 0x2F51 +0x81399334 0x2F52 +0x81399335 0x2F53 +0x81399336 0x2F54 +0x81399337 0x2F55 +0x81399338 0x2F56 +0x81399339 0x2F57 +0x81399430 0x2F58 +0x81399431 0x2F59 +0x81399432 0x2F5A +0x81399433 0x2F5B +0x81399434 0x2F5C +0x81399435 0x2F5D +0x81399436 0x2F5E +0x81399437 0x2F5F +0x81399438 0x2F60 +0x81399439 0x2F61 +0x81399530 0x2F62 +0x81399531 0x2F63 +0x81399532 0x2F64 +0x81399533 0x2F65 +0x81399534 0x2F66 +0x81399535 0x2F67 +0x81399536 0x2F68 +0x81399537 0x2F69 +0x81399538 0x2F6A +0x81399539 0x2F6B +0x81399630 0x2F6C +0x81399631 0x2F6D +0x81399632 0x2F6E +0x81399633 0x2F6F +0x81399634 0x2F70 +0x81399635 0x2F71 +0x81399636 0x2F72 +0x81399637 0x2F73 +0x81399638 0x2F74 +0x81399639 0x2F75 +0x81399730 0x2F76 +0x81399731 0x2F77 +0x81399732 0x2F78 +0x81399733 0x2F79 +0x81399734 0x2F7A +0x81399735 0x2F7B +0x81399736 0x2F7C +0x81399737 0x2F7D +0x81399738 0x2F7E +0x81399739 0x2F7F +0x81399830 0x2F80 +0x81399831 0x2F81 +0x81399832 0x2F82 +0x81399833 0x2F83 +0x81399834 0x2F84 +0x81399835 0x2F85 +0x81399836 0x2F86 +0x81399837 0x2F87 +0x81399838 0x2F88 +0x81399839 0x2F89 +0x81399930 0x2F8A +0x81399931 0x2F8B +0x81399932 0x2F8C +0x81399933 0x2F8D +0x81399934 0x2F8E +0x81399935 0x2F8F +0x81399936 0x2F90 +0x81399937 0x2F91 +0x81399938 0x2F92 +0x81399939 0x2F93 +0x81399A30 0x2F94 +0x81399A31 0x2F95 +0x81399A32 0x2F96 +0x81399A33 0x2F97 +0x81399A34 0x2F98 +0x81399A35 0x2F99 +0x81399A36 0x2F9A +0x81399A37 0x2F9B +0x81399A38 0x2F9C +0x81399A39 0x2F9D +0x81399B30 0x2F9E +0x81399B31 0x2F9F +0x81399B32 0x2FA0 +0x81399B33 0x2FA1 +0x81399B34 0x2FA2 +0x81399B35 0x2FA3 +0x81399B36 0x2FA4 +0x81399B37 0x2FA5 +0x81399B38 0x2FA6 +0x81399B39 0x2FA7 +0x81399C30 0x2FA8 +0x81399C31 0x2FA9 +0x81399C32 0x2FAA +0x81399C33 0x2FAB +0x81399C34 0x2FAC +0x81399C35 0x2FAD +0x81399C36 0x2FAE +0x81399C37 0x2FAF +0x81399C38 0x2FB0 +0x81399C39 0x2FB1 +0x81399D30 0x2FB2 +0x81399D31 0x2FB3 +0x81399D32 0x2FB4 +0x81399D33 0x2FB5 +0x81399D34 0x2FB6 +0x81399D35 0x2FB7 +0x81399D36 0x2FB8 +0x81399D37 0x2FB9 +0x81399D38 0x2FBA +0x81399D39 0x2FBB +0x81399E30 0x2FBC +0x81399E31 0x2FBD +0x81399E32 0x2FBE +0x81399E33 0x2FBF +0x81399E34 0x2FC0 +0x81399E35 0x2FC1 +0x81399E36 0x2FC2 +0x81399E37 0x2FC3 +0x81399E38 0x2FC4 +0x81399E39 0x2FC5 +0x81399F30 0x2FC6 +0x81399F31 0x2FC7 +0x81399F32 0x2FC8 +0x81399F33 0x2FC9 +0x81399F34 0x2FCA +0x81399F35 0x2FCB +0x81399F36 0x2FCC +0x81399F37 0x2FCD +0x81399F38 0x2FCE +0x81399F39 0x2FCF +0x8139A030 0x2FD0 +0x8139A031 0x2FD1 +0x8139A032 0x2FD2 +0x8139A033 0x2FD3 +0x8139A034 0x2FD4 +0x8139A035 0x2FD5 +0x8139A036 0x2FD6 +0x8139A037 0x2FD7 +0x8139A038 0x2FD8 +0x8139A039 0x2FD9 +0x8139A130 0x2FDA +0x8139A131 0x2FDB +0x8139A132 0x2FDC +0x8139A133 0x2FDD +0x8139A134 0x2FDE +0x8139A135 0x2FDF +0x8139A136 0x2FE0 +0x8139A137 0x2FE1 +0x8139A138 0x2FE2 +0x8139A139 0x2FE3 +0x8139A230 0x2FE4 +0x8139A231 0x2FE5 +0x8139A232 0x2FE6 +0x8139A233 0x2FE7 +0x8139A234 0x2FE8 +0x8139A235 0x2FE9 +0x8139A236 0x2FEA +0x8139A237 0x2FEB +0x8139A238 0x2FEC +0x8139A239 0x2FED +0x8139A330 0x2FEE +0x8139A331 0x2FEF +0x8139A332 0x2FFC +0x8139A333 0x2FFD +0x8139A334 0x2FFE +0x8139A335 0x2FFF +0x8139A336 0x3004 +0x8139A337 0x3018 +0x8139A338 0x3019 +0x8139A339 0x301A +0x8139A430 0x301B +0x8139A431 0x301C +0x8139A432 0x301F +0x8139A433 0x3020 +0x8139A434 0x302A +0x8139A435 0x302B +0x8139A436 0x302C +0x8139A437 0x302D +0x8139A438 0x302E +0x8139A439 0x302F +0x8139A530 0x3030 +0x8139A531 0x3031 +0x8139A532 0x3032 +0x8139A533 0x3033 +0x8139A534 0x3034 +0x8139A535 0x3035 +0x8139A536 0x3036 +0x8139A537 0x3037 +0x8139A538 0x3038 +0x8139A539 0x3039 +0x8139A630 0x303A +0x8139A631 0x303B +0x8139A632 0x303C +0x8139A633 0x303D +0x8139A634 0x303F +0x8139A635 0x3040 +0x8139A636 0x3094 +0x8139A637 0x3095 +0x8139A638 0x3096 +0x8139A639 0x3097 +0x8139A730 0x3098 +0x8139A731 0x3099 +0x8139A732 0x309A +0x8139A733 0x309F +0x8139A734 0x30A0 +0x8139A735 0x30F7 +0x8139A736 0x30F8 +0x8139A737 0x30F9 +0x8139A738 0x30FA +0x8139A739 0x30FB +0x8139A830 0x30FF +0x8139A831 0x3100 +0x8139A832 0x3101 +0x8139A833 0x3102 +0x8139A834 0x3103 +0x8139A835 0x3104 +0x8139A836 0x312A +0x8139A837 0x312B +0x8139A838 0x312C +0x8139A839 0x312D +0x8139A930 0x312E +0x8139A931 0x312F +0x8139A932 0x3130 +0x8139A933 0x3131 +0x8139A934 0x3132 +0x8139A935 0x3133 +0x8139A936 0x3134 +0x8139A937 0x3135 +0x8139A938 0x3136 +0x8139A939 0x3137 +0x8139AA30 0x3138 +0x8139AA31 0x3139 +0x8139AA32 0x313A +0x8139AA33 0x313B +0x8139AA34 0x313C +0x8139AA35 0x313D +0x8139AA36 0x313E +0x8139AA37 0x313F +0x8139AA38 0x3140 +0x8139AA39 0x3141 +0x8139AB30 0x3142 +0x8139AB31 0x3143 +0x8139AB32 0x3144 +0x8139AB33 0x3145 +0x8139AB34 0x3146 +0x8139AB35 0x3147 +0x8139AB36 0x3148 +0x8139AB37 0x3149 +0x8139AB38 0x314A +0x8139AB39 0x314B +0x8139AC30 0x314C +0x8139AC31 0x314D +0x8139AC32 0x314E +0x8139AC33 0x314F +0x8139AC34 0x3150 +0x8139AC35 0x3151 +0x8139AC36 0x3152 +0x8139AC37 0x3153 +0x8139AC38 0x3154 +0x8139AC39 0x3155 +0x8139AD30 0x3156 +0x8139AD31 0x3157 +0x8139AD32 0x3158 +0x8139AD33 0x3159 +0x8139AD34 0x315A +0x8139AD35 0x315B +0x8139AD36 0x315C +0x8139AD37 0x315D +0x8139AD38 0x315E +0x8139AD39 0x315F +0x8139AE30 0x3160 +0x8139AE31 0x3161 +0x8139AE32 0x3162 +0x8139AE33 0x3163 +0x8139AE34 0x3164 +0x8139AE35 0x3165 +0x8139AE36 0x3166 +0x8139AE37 0x3167 +0x8139AE38 0x3168 +0x8139AE39 0x3169 +0x8139AF30 0x316A +0x8139AF31 0x316B +0x8139AF32 0x316C +0x8139AF33 0x316D +0x8139AF34 0x316E +0x8139AF35 0x316F +0x8139AF36 0x3170 +0x8139AF37 0x3171 +0x8139AF38 0x3172 +0x8139AF39 0x3173 +0x8139B030 0x3174 +0x8139B031 0x3175 +0x8139B032 0x3176 +0x8139B033 0x3177 +0x8139B034 0x3178 +0x8139B035 0x3179 +0x8139B036 0x317A +0x8139B037 0x317B +0x8139B038 0x317C +0x8139B039 0x317D +0x8139B130 0x317E +0x8139B131 0x317F +0x8139B132 0x3180 +0x8139B133 0x3181 +0x8139B134 0x3182 +0x8139B135 0x3183 +0x8139B136 0x3184 +0x8139B137 0x3185 +0x8139B138 0x3186 +0x8139B139 0x3187 +0x8139B230 0x3188 +0x8139B231 0x3189 +0x8139B232 0x318A +0x8139B233 0x318B +0x8139B234 0x318C +0x8139B235 0x318D +0x8139B236 0x318E +0x8139B237 0x318F +0x8139B238 0x3190 +0x8139B239 0x3191 +0x8139B330 0x3192 +0x8139B331 0x3193 +0x8139B332 0x3194 +0x8139B333 0x3195 +0x8139B334 0x3196 +0x8139B335 0x3197 +0x8139B336 0x3198 +0x8139B337 0x3199 +0x8139B338 0x319A +0x8139B339 0x319B +0x8139B430 0x319C +0x8139B431 0x319D +0x8139B432 0x319E +0x8139B433 0x319F +0x8139B434 0x31A0 +0x8139B435 0x31A1 +0x8139B436 0x31A2 +0x8139B437 0x31A3 +0x8139B438 0x31A4 +0x8139B439 0x31A5 +0x8139B530 0x31A6 +0x8139B531 0x31A7 +0x8139B532 0x31A8 +0x8139B533 0x31A9 +0x8139B534 0x31AA +0x8139B535 0x31AB +0x8139B536 0x31AC +0x8139B537 0x31AD +0x8139B538 0x31AE +0x8139B539 0x31AF +0x8139B630 0x31B0 +0x8139B631 0x31B1 +0x8139B632 0x31B2 +0x8139B633 0x31B3 +0x8139B634 0x31B4 +0x8139B635 0x31B5 +0x8139B636 0x31B6 +0x8139B637 0x31B7 +0x8139B638 0x31B8 +0x8139B639 0x31B9 +0x8139B730 0x31BA +0x8139B731 0x31BB +0x8139B732 0x31BC +0x8139B733 0x31BD +0x8139B734 0x31BE +0x8139B735 0x31BF +0x8139B736 0x31C0 +0x8139B737 0x31C1 +0x8139B738 0x31C2 +0x8139B739 0x31C3 +0x8139B830 0x31C4 +0x8139B831 0x31C5 +0x8139B832 0x31C6 +0x8139B833 0x31C7 +0x8139B834 0x31C8 +0x8139B835 0x31C9 +0x8139B836 0x31CA +0x8139B837 0x31CB +0x8139B838 0x31CC +0x8139B839 0x31CD +0x8139B930 0x31CE +0x8139B931 0x31CF +0x8139B932 0x31D0 +0x8139B933 0x31D1 +0x8139B934 0x31D2 +0x8139B935 0x31D3 +0x8139B936 0x31D4 +0x8139B937 0x31D5 +0x8139B938 0x31D6 +0x8139B939 0x31D7 +0x8139BA30 0x31D8 +0x8139BA31 0x31D9 +0x8139BA32 0x31DA +0x8139BA33 0x31DB +0x8139BA34 0x31DC +0x8139BA35 0x31DD +0x8139BA36 0x31DE +0x8139BA37 0x31DF +0x8139BA38 0x31E0 +0x8139BA39 0x31E1 +0x8139BB30 0x31E2 +0x8139BB31 0x31E3 +0x8139BB32 0x31E4 +0x8139BB33 0x31E5 +0x8139BB34 0x31E6 +0x8139BB35 0x31E7 +0x8139BB36 0x31E8 +0x8139BB37 0x31E9 +0x8139BB38 0x31EA +0x8139BB39 0x31EB +0x8139BC30 0x31EC +0x8139BC31 0x31ED +0x8139BC32 0x31EE +0x8139BC33 0x31EF +0x8139BC34 0x31F0 +0x8139BC35 0x31F1 +0x8139BC36 0x31F2 +0x8139BC37 0x31F3 +0x8139BC38 0x31F4 +0x8139BC39 0x31F5 +0x8139BD30 0x31F6 +0x8139BD31 0x31F7 +0x8139BD32 0x31F8 +0x8139BD33 0x31F9 +0x8139BD34 0x31FA +0x8139BD35 0x31FB +0x8139BD36 0x31FC +0x8139BD37 0x31FD +0x8139BD38 0x31FE +0x8139BD39 0x31FF +0x8139BE30 0x3200 +0x8139BE31 0x3201 +0x8139BE32 0x3202 +0x8139BE33 0x3203 +0x8139BE34 0x3204 +0x8139BE35 0x3205 +0x8139BE36 0x3206 +0x8139BE37 0x3207 +0x8139BE38 0x3208 +0x8139BE39 0x3209 +0x8139BF30 0x320A +0x8139BF31 0x320B +0x8139BF32 0x320C +0x8139BF33 0x320D +0x8139BF34 0x320E +0x8139BF35 0x320F +0x8139BF36 0x3210 +0x8139BF37 0x3211 +0x8139BF38 0x3212 +0x8139BF39 0x3213 +0x8139C030 0x3214 +0x8139C031 0x3215 +0x8139C032 0x3216 +0x8139C033 0x3217 +0x8139C034 0x3218 +0x8139C035 0x3219 +0x8139C036 0x321A +0x8139C037 0x321B +0x8139C038 0x321C +0x8139C039 0x321D +0x8139C130 0x321E +0x8139C131 0x321F +0x8139C132 0x322A +0x8139C133 0x322B +0x8139C134 0x322C +0x8139C135 0x322D +0x8139C136 0x322E +0x8139C137 0x322F +0x8139C138 0x3230 +0x8139C139 0x3232 +0x8139C230 0x3233 +0x8139C231 0x3234 +0x8139C232 0x3235 +0x8139C233 0x3236 +0x8139C234 0x3237 +0x8139C235 0x3238 +0x8139C236 0x3239 +0x8139C237 0x323A +0x8139C238 0x323B +0x8139C239 0x323C +0x8139C330 0x323D +0x8139C331 0x323E +0x8139C332 0x323F +0x8139C333 0x3240 +0x8139C334 0x3241 +0x8139C335 0x3242 +0x8139C336 0x3243 +0x8139C337 0x3244 +0x8139C338 0x3245 +0x8139C339 0x3246 +0x8139C430 0x3247 +0x8139C431 0x3248 +0x8139C432 0x3249 +0x8139C433 0x324A +0x8139C434 0x324B +0x8139C435 0x324C +0x8139C436 0x324D +0x8139C437 0x324E +0x8139C438 0x324F +0x8139C439 0x3250 +0x8139C530 0x3251 +0x8139C531 0x3252 +0x8139C532 0x3253 +0x8139C533 0x3254 +0x8139C534 0x3255 +0x8139C535 0x3256 +0x8139C536 0x3257 +0x8139C537 0x3258 +0x8139C538 0x3259 +0x8139C539 0x325A +0x8139C630 0x325B +0x8139C631 0x325C +0x8139C632 0x325D +0x8139C633 0x325E +0x8139C634 0x325F +0x8139C635 0x3260 +0x8139C636 0x3261 +0x8139C637 0x3262 +0x8139C638 0x3263 +0x8139C639 0x3264 +0x8139C730 0x3265 +0x8139C731 0x3266 +0x8139C732 0x3267 +0x8139C733 0x3268 +0x8139C734 0x3269 +0x8139C735 0x326A +0x8139C736 0x326B +0x8139C737 0x326C +0x8139C738 0x326D +0x8139C739 0x326E +0x8139C830 0x326F +0x8139C831 0x3270 +0x8139C832 0x3271 +0x8139C833 0x3272 +0x8139C834 0x3273 +0x8139C835 0x3274 +0x8139C836 0x3275 +0x8139C837 0x3276 +0x8139C838 0x3277 +0x8139C839 0x3278 +0x8139C930 0x3279 +0x8139C931 0x327A +0x8139C932 0x327B +0x8139C933 0x327C +0x8139C934 0x327D +0x8139C935 0x327E +0x8139C936 0x327F +0x8139C937 0x3280 +0x8139C938 0x3281 +0x8139C939 0x3282 +0x8139CA30 0x3283 +0x8139CA31 0x3284 +0x8139CA32 0x3285 +0x8139CA33 0x3286 +0x8139CA34 0x3287 +0x8139CA35 0x3288 +0x8139CA36 0x3289 +0x8139CA37 0x328A +0x8139CA38 0x328B +0x8139CA39 0x328C +0x8139CB30 0x328D +0x8139CB31 0x328E +0x8139CB32 0x328F +0x8139CB33 0x3290 +0x8139CB34 0x3291 +0x8139CB35 0x3292 +0x8139CB36 0x3293 +0x8139CB37 0x3294 +0x8139CB38 0x3295 +0x8139CB39 0x3296 +0x8139CC30 0x3297 +0x8139CC31 0x3298 +0x8139CC32 0x3299 +0x8139CC33 0x329A +0x8139CC34 0x329B +0x8139CC35 0x329C +0x8139CC36 0x329D +0x8139CC37 0x329E +0x8139CC38 0x329F +0x8139CC39 0x32A0 +0x8139CD30 0x32A1 +0x8139CD31 0x32A2 +0x8139CD32 0x32A4 +0x8139CD33 0x32A5 +0x8139CD34 0x32A6 +0x8139CD35 0x32A7 +0x8139CD36 0x32A8 +0x8139CD37 0x32A9 +0x8139CD38 0x32AA +0x8139CD39 0x32AB +0x8139CE30 0x32AC +0x8139CE31 0x32AD +0x8139CE32 0x32AE +0x8139CE33 0x32AF +0x8139CE34 0x32B0 +0x8139CE35 0x32B1 +0x8139CE36 0x32B2 +0x8139CE37 0x32B3 +0x8139CE38 0x32B4 +0x8139CE39 0x32B5 +0x8139CF30 0x32B6 +0x8139CF31 0x32B7 +0x8139CF32 0x32B8 +0x8139CF33 0x32B9 +0x8139CF34 0x32BA +0x8139CF35 0x32BB +0x8139CF36 0x32BC +0x8139CF37 0x32BD +0x8139CF38 0x32BE +0x8139CF39 0x32BF +0x8139D030 0x32C0 +0x8139D031 0x32C1 +0x8139D032 0x32C2 +0x8139D033 0x32C3 +0x8139D034 0x32C4 +0x8139D035 0x32C5 +0x8139D036 0x32C6 +0x8139D037 0x32C7 +0x8139D038 0x32C8 +0x8139D039 0x32C9 +0x8139D130 0x32CA +0x8139D131 0x32CB +0x8139D132 0x32CC +0x8139D133 0x32CD +0x8139D134 0x32CE +0x8139D135 0x32CF +0x8139D136 0x32D0 +0x8139D137 0x32D1 +0x8139D138 0x32D2 +0x8139D139 0x32D3 +0x8139D230 0x32D4 +0x8139D231 0x32D5 +0x8139D232 0x32D6 +0x8139D233 0x32D7 +0x8139D234 0x32D8 +0x8139D235 0x32D9 +0x8139D236 0x32DA +0x8139D237 0x32DB +0x8139D238 0x32DC +0x8139D239 0x32DD +0x8139D330 0x32DE +0x8139D331 0x32DF +0x8139D332 0x32E0 +0x8139D333 0x32E1 +0x8139D334 0x32E2 +0x8139D335 0x32E3 +0x8139D336 0x32E4 +0x8139D337 0x32E5 +0x8139D338 0x32E6 +0x8139D339 0x32E7 +0x8139D430 0x32E8 +0x8139D431 0x32E9 +0x8139D432 0x32EA +0x8139D433 0x32EB +0x8139D434 0x32EC +0x8139D435 0x32ED +0x8139D436 0x32EE +0x8139D437 0x32EF +0x8139D438 0x32F0 +0x8139D439 0x32F1 +0x8139D530 0x32F2 +0x8139D531 0x32F3 +0x8139D532 0x32F4 +0x8139D533 0x32F5 +0x8139D534 0x32F6 +0x8139D535 0x32F7 +0x8139D536 0x32F8 +0x8139D537 0x32F9 +0x8139D538 0x32FA +0x8139D539 0x32FB +0x8139D630 0x32FC +0x8139D631 0x32FD +0x8139D632 0x32FE +0x8139D633 0x32FF +0x8139D634 0x3300 +0x8139D635 0x3301 +0x8139D636 0x3302 +0x8139D637 0x3303 +0x8139D638 0x3304 +0x8139D639 0x3305 +0x8139D730 0x3306 +0x8139D731 0x3307 +0x8139D732 0x3308 +0x8139D733 0x3309 +0x8139D734 0x330A +0x8139D735 0x330B +0x8139D736 0x330C +0x8139D737 0x330D +0x8139D738 0x330E +0x8139D739 0x330F +0x8139D830 0x3310 +0x8139D831 0x3311 +0x8139D832 0x3312 +0x8139D833 0x3313 +0x8139D834 0x3314 +0x8139D835 0x3315 +0x8139D836 0x3316 +0x8139D837 0x3317 +0x8139D838 0x3318 +0x8139D839 0x3319 +0x8139D930 0x331A +0x8139D931 0x331B +0x8139D932 0x331C +0x8139D933 0x331D +0x8139D934 0x331E +0x8139D935 0x331F +0x8139D936 0x3320 +0x8139D937 0x3321 +0x8139D938 0x3322 +0x8139D939 0x3323 +0x8139DA30 0x3324 +0x8139DA31 0x3325 +0x8139DA32 0x3326 +0x8139DA33 0x3327 +0x8139DA34 0x3328 +0x8139DA35 0x3329 +0x8139DA36 0x332A +0x8139DA37 0x332B +0x8139DA38 0x332C +0x8139DA39 0x332D +0x8139DB30 0x332E +0x8139DB31 0x332F +0x8139DB32 0x3330 +0x8139DB33 0x3331 +0x8139DB34 0x3332 +0x8139DB35 0x3333 +0x8139DB36 0x3334 +0x8139DB37 0x3335 +0x8139DB38 0x3336 +0x8139DB39 0x3337 +0x8139DC30 0x3338 +0x8139DC31 0x3339 +0x8139DC32 0x333A +0x8139DC33 0x333B +0x8139DC34 0x333C +0x8139DC35 0x333D +0x8139DC36 0x333E +0x8139DC37 0x333F +0x8139DC38 0x3340 +0x8139DC39 0x3341 +0x8139DD30 0x3342 +0x8139DD31 0x3343 +0x8139DD32 0x3344 +0x8139DD33 0x3345 +0x8139DD34 0x3346 +0x8139DD35 0x3347 +0x8139DD36 0x3348 +0x8139DD37 0x3349 +0x8139DD38 0x334A +0x8139DD39 0x334B +0x8139DE30 0x334C +0x8139DE31 0x334D +0x8139DE32 0x334E +0x8139DE33 0x334F +0x8139DE34 0x3350 +0x8139DE35 0x3351 +0x8139DE36 0x3352 +0x8139DE37 0x3353 +0x8139DE38 0x3354 +0x8139DE39 0x3355 +0x8139DF30 0x3356 +0x8139DF31 0x3357 +0x8139DF32 0x3358 +0x8139DF33 0x3359 +0x8139DF34 0x335A +0x8139DF35 0x335B +0x8139DF36 0x335C +0x8139DF37 0x335D +0x8139DF38 0x335E +0x8139DF39 0x335F +0x8139E030 0x3360 +0x8139E031 0x3361 +0x8139E032 0x3362 +0x8139E033 0x3363 +0x8139E034 0x3364 +0x8139E035 0x3365 +0x8139E036 0x3366 +0x8139E037 0x3367 +0x8139E038 0x3368 +0x8139E039 0x3369 +0x8139E130 0x336A +0x8139E131 0x336B +0x8139E132 0x336C +0x8139E133 0x336D +0x8139E134 0x336E +0x8139E135 0x336F +0x8139E136 0x3370 +0x8139E137 0x3371 +0x8139E138 0x3372 +0x8139E139 0x3373 +0x8139E230 0x3374 +0x8139E231 0x3375 +0x8139E232 0x3376 +0x8139E233 0x3377 +0x8139E234 0x3378 +0x8139E235 0x3379 +0x8139E236 0x337A +0x8139E237 0x337B +0x8139E238 0x337C +0x8139E239 0x337D +0x8139E330 0x337E +0x8139E331 0x337F +0x8139E332 0x3380 +0x8139E333 0x3381 +0x8139E334 0x3382 +0x8139E335 0x3383 +0x8139E336 0x3384 +0x8139E337 0x3385 +0x8139E338 0x3386 +0x8139E339 0x3387 +0x8139E430 0x3388 +0x8139E431 0x3389 +0x8139E432 0x338A +0x8139E433 0x338B +0x8139E434 0x338C +0x8139E435 0x338D +0x8139E436 0x3390 +0x8139E437 0x3391 +0x8139E438 0x3392 +0x8139E439 0x3393 +0x8139E530 0x3394 +0x8139E531 0x3395 +0x8139E532 0x3396 +0x8139E533 0x3397 +0x8139E534 0x3398 +0x8139E535 0x3399 +0x8139E536 0x339A +0x8139E537 0x339B +0x8139E538 0x339F +0x8139E539 0x33A0 +0x8139E630 0x33A2 +0x8139E631 0x33A3 +0x8139E632 0x33A4 +0x8139E633 0x33A5 +0x8139E634 0x33A6 +0x8139E635 0x33A7 +0x8139E636 0x33A8 +0x8139E637 0x33A9 +0x8139E638 0x33AA +0x8139E639 0x33AB +0x8139E730 0x33AC +0x8139E731 0x33AD +0x8139E732 0x33AE +0x8139E733 0x33AF +0x8139E734 0x33B0 +0x8139E735 0x33B1 +0x8139E736 0x33B2 +0x8139E737 0x33B3 +0x8139E738 0x33B4 +0x8139E739 0x33B5 +0x8139E830 0x33B6 +0x8139E831 0x33B7 +0x8139E832 0x33B8 +0x8139E833 0x33B9 +0x8139E834 0x33BA +0x8139E835 0x33BB +0x8139E836 0x33BC +0x8139E837 0x33BD +0x8139E838 0x33BE +0x8139E839 0x33BF +0x8139E930 0x33C0 +0x8139E931 0x33C1 +0x8139E932 0x33C2 +0x8139E933 0x33C3 +0x8139E934 0x33C5 +0x8139E935 0x33C6 +0x8139E936 0x33C7 +0x8139E937 0x33C8 +0x8139E938 0x33C9 +0x8139E939 0x33CA +0x8139EA30 0x33CB +0x8139EA31 0x33CC +0x8139EA32 0x33CD +0x8139EA33 0x33CF +0x8139EA34 0x33D0 +0x8139EA35 0x33D3 +0x8139EA36 0x33D4 +0x8139EA37 0x33D6 +0x8139EA38 0x33D7 +0x8139EA39 0x33D8 +0x8139EB30 0x33D9 +0x8139EB31 0x33DA +0x8139EB32 0x33DB +0x8139EB33 0x33DC +0x8139EB34 0x33DD +0x8139EB35 0x33DE +0x8139EB36 0x33DF +0x8139EB37 0x33E0 +0x8139EB38 0x33E1 +0x8139EB39 0x33E2 +0x8139EC30 0x33E3 +0x8139EC31 0x33E4 +0x8139EC32 0x33E5 +0x8139EC33 0x33E6 +0x8139EC34 0x33E7 +0x8139EC35 0x33E8 +0x8139EC36 0x33E9 +0x8139EC37 0x33EA +0x8139EC38 0x33EB +0x8139EC39 0x33EC +0x8139ED30 0x33ED +0x8139ED31 0x33EE +0x8139ED32 0x33EF +0x8139ED33 0x33F0 +0x8139ED34 0x33F1 +0x8139ED35 0x33F2 +0x8139ED36 0x33F3 +0x8139ED37 0x33F4 +0x8139ED38 0x33F5 +0x8139ED39 0x33F6 +0x8139EE30 0x33F7 +0x8139EE31 0x33F8 +0x8139EE32 0x33F9 +0x8139EE33 0x33FA +0x8139EE34 0x33FB +0x8139EE35 0x33FC +0x8139EE36 0x33FD +0x8139EE37 0x33FE +0x8139EE38 0x33FF +0x8139EE39 0x3400 +0x8139EF30 0x3401 +0x8139EF31 0x3402 +0x8139EF32 0x3403 +0x8139EF33 0x3404 +0x8139EF34 0x3405 +0x8139EF35 0x3406 +0x8139EF36 0x3407 +0x8139EF37 0x3408 +0x8139EF38 0x3409 +0x8139EF39 0x340A +0x8139F030 0x340B +0x8139F031 0x340C +0x8139F032 0x340D +0x8139F033 0x340E +0x8139F034 0x340F +0x8139F035 0x3410 +0x8139F036 0x3411 +0x8139F037 0x3412 +0x8139F038 0x3413 +0x8139F039 0x3414 +0x8139F130 0x3415 +0x8139F131 0x3416 +0x8139F132 0x3417 +0x8139F133 0x3418 +0x8139F134 0x3419 +0x8139F135 0x341A +0x8139F136 0x341B +0x8139F137 0x341C +0x8139F138 0x341D +0x8139F139 0x341E +0x8139F230 0x341F +0x8139F231 0x3420 +0x8139F232 0x3421 +0x8139F233 0x3422 +0x8139F234 0x3423 +0x8139F235 0x3424 +0x8139F236 0x3425 +0x8139F237 0x3426 +0x8139F238 0x3427 +0x8139F239 0x3428 +0x8139F330 0x3429 +0x8139F331 0x342A +0x8139F332 0x342B +0x8139F333 0x342C +0x8139F334 0x342D +0x8139F335 0x342E +0x8139F336 0x342F +0x8139F337 0x3430 +0x8139F338 0x3431 +0x8139F339 0x3432 +0x8139F430 0x3433 +0x8139F431 0x3434 +0x8139F432 0x3435 +0x8139F433 0x3436 +0x8139F434 0x3437 +0x8139F435 0x3438 +0x8139F436 0x3439 +0x8139F437 0x343A +0x8139F438 0x343B +0x8139F439 0x343C +0x8139F530 0x343D +0x8139F531 0x343E +0x8139F532 0x343F +0x8139F533 0x3440 +0x8139F534 0x3441 +0x8139F535 0x3442 +0x8139F536 0x3443 +0x8139F537 0x3444 +0x8139F538 0x3445 +0x8139F539 0x3446 +0x8139F630 0x3448 +0x8139F631 0x3449 +0x8139F632 0x344A +0x8139F633 0x344B +0x8139F634 0x344C +0x8139F635 0x344D +0x8139F636 0x344E +0x8139F637 0x344F +0x8139F638 0x3450 +0x8139F639 0x3451 +0x8139F730 0x3452 +0x8139F731 0x3453 +0x8139F732 0x3454 +0x8139F733 0x3455 +0x8139F734 0x3456 +0x8139F735 0x3457 +0x8139F736 0x3458 +0x8139F737 0x3459 +0x8139F738 0x345A +0x8139F739 0x345B +0x8139F830 0x345C +0x8139F831 0x345D +0x8139F832 0x345E +0x8139F833 0x345F +0x8139F834 0x3460 +0x8139F835 0x3461 +0x8139F836 0x3462 +0x8139F837 0x3463 +0x8139F838 0x3464 +0x8139F839 0x3465 +0x8139F930 0x3466 +0x8139F931 0x3467 +0x8139F932 0x3468 +0x8139F933 0x3469 +0x8139F934 0x346A +0x8139F935 0x346B +0x8139F936 0x346C +0x8139F937 0x346D +0x8139F938 0x346E +0x8139F939 0x346F +0x8139FA30 0x3470 +0x8139FA31 0x3471 +0x8139FA32 0x3472 +0x8139FA33 0x3474 +0x8139FA34 0x3475 +0x8139FA35 0x3476 +0x8139FA36 0x3477 +0x8139FA37 0x3478 +0x8139FA38 0x3479 +0x8139FA39 0x347A +0x8139FB30 0x347B +0x8139FB31 0x347C +0x8139FB32 0x347D +0x8139FB33 0x347E +0x8139FB34 0x347F +0x8139FB35 0x3480 +0x8139FB36 0x3481 +0x8139FB37 0x3482 +0x8139FB38 0x3483 +0x8139FB39 0x3484 +0x8139FC30 0x3485 +0x8139FC31 0x3486 +0x8139FC32 0x3487 +0x8139FC33 0x3488 +0x8139FC34 0x3489 +0x8139FC35 0x348A +0x8139FC36 0x348B +0x8139FC37 0x348C +0x8139FC38 0x348D +0x8139FC39 0x348E +0x8139FD30 0x348F +0x8139FD31 0x3490 +0x8139FD32 0x3491 +0x8139FD33 0x3492 +0x8139FD34 0x3493 +0x8139FD35 0x3494 +0x8139FD36 0x3495 +0x8139FD37 0x3496 +0x8139FD38 0x3497 +0x8139FD39 0x3498 +0x8139FE30 0x3499 +0x8139FE31 0x349A +0x8139FE32 0x349B +0x8139FE33 0x349C +0x8139FE34 0x349D +0x8139FE35 0x349E +0x8139FE36 0x349F +0x8139FE37 0x34A0 +0x8139FE38 0x34A1 +0x8139FE39 0x34A2 +0x8140 0x4E02 +0x8141 0x4E04 +0x8142 0x4E05 +0x8143 0x4E06 +0x8144 0x4E0F +0x8145 0x4E12 +0x8146 0x4E17 +0x8147 0x4E1F +0x8148 0x4E20 +0x8149 0x4E21 +0x814A 0x4E23 +0x814B 0x4E26 +0x814C 0x4E29 +0x814D 0x4E2E +0x814E 0x4E2F +0x814F 0x4E31 +0x8150 0x4E33 +0x8151 0x4E35 +0x8152 0x4E37 +0x8153 0x4E3C +0x8154 0x4E40 +0x8155 0x4E41 +0x8156 0x4E42 +0x8157 0x4E44 +0x8158 0x4E46 +0x8159 0x4E4A +0x815A 0x4E51 +0x815B 0x4E55 +0x815C 0x4E57 +0x815D 0x4E5A +0x815E 0x4E5B +0x815F 0x4E62 +0x8160 0x4E63 +0x8161 0x4E64 +0x8162 0x4E65 +0x8163 0x4E67 +0x8164 0x4E68 +0x8165 0x4E6A +0x8166 0x4E6B +0x8167 0x4E6C +0x8168 0x4E6D +0x8169 0x4E6E +0x816A 0x4E6F +0x816B 0x4E72 +0x816C 0x4E74 +0x816D 0x4E75 +0x816E 0x4E76 +0x816F 0x4E77 +0x8170 0x4E78 +0x8171 0x4E79 +0x8172 0x4E7A +0x8173 0x4E7B +0x8174 0x4E7C +0x8175 0x4E7D +0x8176 0x4E7F +0x8177 0x4E80 +0x8178 0x4E81 +0x8179 0x4E82 +0x817A 0x4E83 +0x817B 0x4E84 +0x817C 0x4E85 +0x817D 0x4E87 +0x817E 0x4E8A +0x8180 0x4E90 +0x8181 0x4E96 +0x8182 0x4E97 +0x8183 0x4E99 +0x8184 0x4E9C +0x8185 0x4E9D +0x8186 0x4E9E +0x8187 0x4EA3 +0x8188 0x4EAA +0x8189 0x4EAF +0x818A 0x4EB0 +0x818B 0x4EB1 +0x818C 0x4EB4 +0x818D 0x4EB6 +0x818E 0x4EB7 +0x818F 0x4EB8 +0x8190 0x4EB9 +0x8191 0x4EBC +0x8192 0x4EBD +0x8193 0x4EBE +0x8194 0x4EC8 +0x8195 0x4ECC +0x8196 0x4ECF +0x8197 0x4ED0 +0x8198 0x4ED2 +0x8199 0x4EDA +0x819A 0x4EDB +0x819B 0x4EDC +0x819C 0x4EE0 +0x819D 0x4EE2 +0x819E 0x4EE6 +0x819F 0x4EE7 +0x81A0 0x4EE9 +0x81A1 0x4EED +0x81A2 0x4EEE +0x81A3 0x4EEF +0x81A4 0x4EF1 +0x81A5 0x4EF4 +0x81A6 0x4EF8 +0x81A7 0x4EF9 +0x81A8 0x4EFA +0x81A9 0x4EFC +0x81AA 0x4EFE +0x81AB 0x4F00 +0x81AC 0x4F02 +0x81AD 0x4F03 +0x81AE 0x4F04 +0x81AF 0x4F05 +0x81B0 0x4F06 +0x81B1 0x4F07 +0x81B2 0x4F08 +0x81B3 0x4F0B +0x81B4 0x4F0C +0x81B5 0x4F12 +0x81B6 0x4F13 +0x81B7 0x4F14 +0x81B8 0x4F15 +0x81B9 0x4F16 +0x81BA 0x4F1C +0x81BB 0x4F1D +0x81BC 0x4F21 +0x81BD 0x4F23 +0x81BE 0x4F28 +0x81BF 0x4F29 +0x81C0 0x4F2C +0x81C1 0x4F2D +0x81C2 0x4F2E +0x81C3 0x4F31 +0x81C4 0x4F33 +0x81C5 0x4F35 +0x81C6 0x4F37 +0x81C7 0x4F39 +0x81C8 0x4F3B +0x81C9 0x4F3E +0x81CA 0x4F3F +0x81CB 0x4F40 +0x81CC 0x4F41 +0x81CD 0x4F42 +0x81CE 0x4F44 +0x81CF 0x4F45 +0x81D0 0x4F47 +0x81D1 0x4F48 +0x81D2 0x4F49 +0x81D3 0x4F4A +0x81D4 0x4F4B +0x81D5 0x4F4C +0x81D6 0x4F52 +0x81D7 0x4F54 +0x81D8 0x4F56 +0x81D9 0x4F61 +0x81DA 0x4F62 +0x81DB 0x4F66 +0x81DC 0x4F68 +0x81DD 0x4F6A +0x81DE 0x4F6B +0x81DF 0x4F6D +0x81E0 0x4F6E +0x81E1 0x4F71 +0x81E2 0x4F72 +0x81E3 0x4F75 +0x81E4 0x4F77 +0x81E5 0x4F78 +0x81E6 0x4F79 +0x81E7 0x4F7A +0x81E8 0x4F7D +0x81E9 0x4F80 +0x81EA 0x4F81 +0x81EB 0x4F82 +0x81EC 0x4F85 +0x81ED 0x4F86 +0x81EE 0x4F87 +0x81EF 0x4F8A +0x81F0 0x4F8C +0x81F1 0x4F8E +0x81F2 0x4F90 +0x81F3 0x4F92 +0x81F4 0x4F93 +0x81F5 0x4F95 +0x81F6 0x4F96 +0x81F7 0x4F98 +0x81F8 0x4F99 +0x81F9 0x4F9A +0x81FA 0x4F9C +0x81FB 0x4F9E +0x81FC 0x4F9F +0x81FD 0x4FA1 +0x81FE 0x4FA2 +0x82308130 0x34A3 +0x82308131 0x34A4 +0x82308132 0x34A5 +0x82308133 0x34A6 +0x82308134 0x34A7 +0x82308135 0x34A8 +0x82308136 0x34A9 +0x82308137 0x34AA +0x82308138 0x34AB +0x82308139 0x34AC +0x82308230 0x34AD +0x82308231 0x34AE +0x82308232 0x34AF +0x82308233 0x34B0 +0x82308234 0x34B1 +0x82308235 0x34B2 +0x82308236 0x34B3 +0x82308237 0x34B4 +0x82308238 0x34B5 +0x82308239 0x34B6 +0x82308330 0x34B7 +0x82308331 0x34B8 +0x82308332 0x34B9 +0x82308333 0x34BA +0x82308334 0x34BB +0x82308335 0x34BC +0x82308336 0x34BD +0x82308337 0x34BE +0x82308338 0x34BF +0x82308339 0x34C0 +0x82308430 0x34C1 +0x82308431 0x34C2 +0x82308432 0x34C3 +0x82308433 0x34C4 +0x82308434 0x34C5 +0x82308435 0x34C6 +0x82308436 0x34C7 +0x82308437 0x34C8 +0x82308438 0x34C9 +0x82308439 0x34CA +0x82308530 0x34CB +0x82308531 0x34CC +0x82308532 0x34CD +0x82308533 0x34CE +0x82308534 0x34CF +0x82308535 0x34D0 +0x82308536 0x34D1 +0x82308537 0x34D2 +0x82308538 0x34D3 +0x82308539 0x34D4 +0x82308630 0x34D5 +0x82308631 0x34D6 +0x82308632 0x34D7 +0x82308633 0x34D8 +0x82308634 0x34D9 +0x82308635 0x34DA +0x82308636 0x34DB +0x82308637 0x34DC +0x82308638 0x34DD +0x82308639 0x34DE +0x82308730 0x34DF +0x82308731 0x34E0 +0x82308732 0x34E1 +0x82308733 0x34E2 +0x82308734 0x34E3 +0x82308735 0x34E4 +0x82308736 0x34E5 +0x82308737 0x34E6 +0x82308738 0x34E7 +0x82308739 0x34E8 +0x82308830 0x34E9 +0x82308831 0x34EA +0x82308832 0x34EB +0x82308833 0x34EC +0x82308834 0x34ED +0x82308835 0x34EE +0x82308836 0x34EF +0x82308837 0x34F0 +0x82308838 0x34F1 +0x82308839 0x34F2 +0x82308930 0x34F3 +0x82308931 0x34F4 +0x82308932 0x34F5 +0x82308933 0x34F6 +0x82308934 0x34F7 +0x82308935 0x34F8 +0x82308936 0x34F9 +0x82308937 0x34FA +0x82308938 0x34FB +0x82308939 0x34FC +0x82308A30 0x34FD +0x82308A31 0x34FE +0x82308A32 0x34FF +0x82308A33 0x3500 +0x82308A34 0x3501 +0x82308A35 0x3502 +0x82308A36 0x3503 +0x82308A37 0x3504 +0x82308A38 0x3505 +0x82308A39 0x3506 +0x82308B30 0x3507 +0x82308B31 0x3508 +0x82308B32 0x3509 +0x82308B33 0x350A +0x82308B34 0x350B +0x82308B35 0x350C +0x82308B36 0x350D +0x82308B37 0x350E +0x82308B38 0x350F +0x82308B39 0x3510 +0x82308C30 0x3511 +0x82308C31 0x3512 +0x82308C32 0x3513 +0x82308C33 0x3514 +0x82308C34 0x3515 +0x82308C35 0x3516 +0x82308C36 0x3517 +0x82308C37 0x3518 +0x82308C38 0x3519 +0x82308C39 0x351A +0x82308D30 0x351B +0x82308D31 0x351C +0x82308D32 0x351D +0x82308D33 0x351E +0x82308D34 0x351F +0x82308D35 0x3520 +0x82308D36 0x3521 +0x82308D37 0x3522 +0x82308D38 0x3523 +0x82308D39 0x3524 +0x82308E30 0x3525 +0x82308E31 0x3526 +0x82308E32 0x3527 +0x82308E33 0x3528 +0x82308E34 0x3529 +0x82308E35 0x352A +0x82308E36 0x352B +0x82308E37 0x352C +0x82308E38 0x352D +0x82308E39 0x352E +0x82308F30 0x352F +0x82308F31 0x3530 +0x82308F32 0x3531 +0x82308F33 0x3532 +0x82308F34 0x3533 +0x82308F35 0x3534 +0x82308F36 0x3535 +0x82308F37 0x3536 +0x82308F38 0x3537 +0x82308F39 0x3538 +0x82309030 0x3539 +0x82309031 0x353A +0x82309032 0x353B +0x82309033 0x353C +0x82309034 0x353D +0x82309035 0x353E +0x82309036 0x353F +0x82309037 0x3540 +0x82309038 0x3541 +0x82309039 0x3542 +0x82309130 0x3543 +0x82309131 0x3544 +0x82309132 0x3545 +0x82309133 0x3546 +0x82309134 0x3547 +0x82309135 0x3548 +0x82309136 0x3549 +0x82309137 0x354A +0x82309138 0x354B +0x82309139 0x354C +0x82309230 0x354D +0x82309231 0x354E +0x82309232 0x354F +0x82309233 0x3550 +0x82309234 0x3551 +0x82309235 0x3552 +0x82309236 0x3553 +0x82309237 0x3554 +0x82309238 0x3555 +0x82309239 0x3556 +0x82309330 0x3557 +0x82309331 0x3558 +0x82309332 0x3559 +0x82309333 0x355A +0x82309334 0x355B +0x82309335 0x355C +0x82309336 0x355D +0x82309337 0x355E +0x82309338 0x355F +0x82309339 0x3560 +0x82309430 0x3561 +0x82309431 0x3562 +0x82309432 0x3563 +0x82309433 0x3564 +0x82309434 0x3565 +0x82309435 0x3566 +0x82309436 0x3567 +0x82309437 0x3568 +0x82309438 0x3569 +0x82309439 0x356A +0x82309530 0x356B +0x82309531 0x356C +0x82309532 0x356D +0x82309533 0x356E +0x82309534 0x356F +0x82309535 0x3570 +0x82309536 0x3571 +0x82309537 0x3572 +0x82309538 0x3573 +0x82309539 0x3574 +0x82309630 0x3575 +0x82309631 0x3576 +0x82309632 0x3577 +0x82309633 0x3578 +0x82309634 0x3579 +0x82309635 0x357A +0x82309636 0x357B +0x82309637 0x357C +0x82309638 0x357D +0x82309639 0x357E +0x82309730 0x357F +0x82309731 0x3580 +0x82309732 0x3581 +0x82309733 0x3582 +0x82309734 0x3583 +0x82309735 0x3584 +0x82309736 0x3585 +0x82309737 0x3586 +0x82309738 0x3587 +0x82309739 0x3588 +0x82309830 0x3589 +0x82309831 0x358A +0x82309832 0x358B +0x82309833 0x358C +0x82309834 0x358D +0x82309835 0x358E +0x82309836 0x358F +0x82309837 0x3590 +0x82309838 0x3591 +0x82309839 0x3592 +0x82309930 0x3593 +0x82309931 0x3594 +0x82309932 0x3595 +0x82309933 0x3596 +0x82309934 0x3597 +0x82309935 0x3598 +0x82309936 0x3599 +0x82309937 0x359A +0x82309938 0x359B +0x82309939 0x359C +0x82309A30 0x359D +0x82309A31 0x359F +0x82309A32 0x35A0 +0x82309A33 0x35A1 +0x82309A34 0x35A2 +0x82309A35 0x35A3 +0x82309A36 0x35A4 +0x82309A37 0x35A5 +0x82309A38 0x35A6 +0x82309A39 0x35A7 +0x82309B30 0x35A8 +0x82309B31 0x35A9 +0x82309B32 0x35AA +0x82309B33 0x35AB +0x82309B34 0x35AC +0x82309B35 0x35AD +0x82309B36 0x35AE +0x82309B37 0x35AF +0x82309B38 0x35B0 +0x82309B39 0x35B1 +0x82309C30 0x35B2 +0x82309C31 0x35B3 +0x82309C32 0x35B4 +0x82309C33 0x35B5 +0x82309C34 0x35B6 +0x82309C35 0x35B7 +0x82309C36 0x35B8 +0x82309C37 0x35B9 +0x82309C38 0x35BA +0x82309C39 0x35BB +0x82309D30 0x35BC +0x82309D31 0x35BD +0x82309D32 0x35BE +0x82309D33 0x35BF +0x82309D34 0x35C0 +0x82309D35 0x35C1 +0x82309D36 0x35C2 +0x82309D37 0x35C3 +0x82309D38 0x35C4 +0x82309D39 0x35C5 +0x82309E30 0x35C6 +0x82309E31 0x35C7 +0x82309E32 0x35C8 +0x82309E33 0x35C9 +0x82309E34 0x35CA +0x82309E35 0x35CB +0x82309E36 0x35CC +0x82309E37 0x35CD +0x82309E38 0x35CE +0x82309E39 0x35CF +0x82309F30 0x35D0 +0x82309F31 0x35D1 +0x82309F32 0x35D2 +0x82309F33 0x35D3 +0x82309F34 0x35D4 +0x82309F35 0x35D5 +0x82309F36 0x35D6 +0x82309F37 0x35D7 +0x82309F38 0x35D8 +0x82309F39 0x35D9 +0x8230A030 0x35DA +0x8230A031 0x35DB +0x8230A032 0x35DC +0x8230A033 0x35DD +0x8230A034 0x35DE +0x8230A035 0x35DF +0x8230A036 0x35E0 +0x8230A037 0x35E1 +0x8230A038 0x35E2 +0x8230A039 0x35E3 +0x8230A130 0x35E4 +0x8230A131 0x35E5 +0x8230A132 0x35E6 +0x8230A133 0x35E7 +0x8230A134 0x35E8 +0x8230A135 0x35E9 +0x8230A136 0x35EA +0x8230A137 0x35EB +0x8230A138 0x35EC +0x8230A139 0x35ED +0x8230A230 0x35EE +0x8230A231 0x35EF +0x8230A232 0x35F0 +0x8230A233 0x35F1 +0x8230A234 0x35F2 +0x8230A235 0x35F3 +0x8230A236 0x35F4 +0x8230A237 0x35F5 +0x8230A238 0x35F6 +0x8230A239 0x35F7 +0x8230A330 0x35F8 +0x8230A331 0x35F9 +0x8230A332 0x35FA +0x8230A333 0x35FB +0x8230A334 0x35FC +0x8230A335 0x35FD +0x8230A336 0x35FE +0x8230A337 0x35FF +0x8230A338 0x3600 +0x8230A339 0x3601 +0x8230A430 0x3602 +0x8230A431 0x3603 +0x8230A432 0x3604 +0x8230A433 0x3605 +0x8230A434 0x3606 +0x8230A435 0x3607 +0x8230A436 0x3608 +0x8230A437 0x3609 +0x8230A438 0x360A +0x8230A439 0x360B +0x8230A530 0x360C +0x8230A531 0x360D +0x8230A532 0x360F +0x8230A533 0x3610 +0x8230A534 0x3611 +0x8230A535 0x3612 +0x8230A536 0x3613 +0x8230A537 0x3614 +0x8230A538 0x3615 +0x8230A539 0x3616 +0x8230A630 0x3617 +0x8230A631 0x3618 +0x8230A632 0x3619 +0x8230A633 0x361B +0x8230A634 0x361C +0x8230A635 0x361D +0x8230A636 0x361E +0x8230A637 0x361F +0x8230A638 0x3620 +0x8230A639 0x3621 +0x8230A730 0x3622 +0x8230A731 0x3623 +0x8230A732 0x3624 +0x8230A733 0x3625 +0x8230A734 0x3626 +0x8230A735 0x3627 +0x8230A736 0x3628 +0x8230A737 0x3629 +0x8230A738 0x362A +0x8230A739 0x362B +0x8230A830 0x362C +0x8230A831 0x362D +0x8230A832 0x362E +0x8230A833 0x362F +0x8230A834 0x3630 +0x8230A835 0x3631 +0x8230A836 0x3632 +0x8230A837 0x3633 +0x8230A838 0x3634 +0x8230A839 0x3635 +0x8230A930 0x3636 +0x8230A931 0x3637 +0x8230A932 0x3638 +0x8230A933 0x3639 +0x8230A934 0x363A +0x8230A935 0x363B +0x8230A936 0x363C +0x8230A937 0x363D +0x8230A938 0x363E +0x8230A939 0x363F +0x8230AA30 0x3640 +0x8230AA31 0x3641 +0x8230AA32 0x3642 +0x8230AA33 0x3643 +0x8230AA34 0x3644 +0x8230AA35 0x3645 +0x8230AA36 0x3646 +0x8230AA37 0x3647 +0x8230AA38 0x3648 +0x8230AA39 0x3649 +0x8230AB30 0x364A +0x8230AB31 0x364B +0x8230AB32 0x364C +0x8230AB33 0x364D +0x8230AB34 0x364E +0x8230AB35 0x364F +0x8230AB36 0x3650 +0x8230AB37 0x3651 +0x8230AB38 0x3652 +0x8230AB39 0x3653 +0x8230AC30 0x3654 +0x8230AC31 0x3655 +0x8230AC32 0x3656 +0x8230AC33 0x3657 +0x8230AC34 0x3658 +0x8230AC35 0x3659 +0x8230AC36 0x365A +0x8230AC37 0x365B +0x8230AC38 0x365C +0x8230AC39 0x365D +0x8230AD30 0x365E +0x8230AD31 0x365F +0x8230AD32 0x3660 +0x8230AD33 0x3661 +0x8230AD34 0x3662 +0x8230AD35 0x3663 +0x8230AD36 0x3664 +0x8230AD37 0x3665 +0x8230AD38 0x3666 +0x8230AD39 0x3667 +0x8230AE30 0x3668 +0x8230AE31 0x3669 +0x8230AE32 0x366A +0x8230AE33 0x366B +0x8230AE34 0x366C +0x8230AE35 0x366D +0x8230AE36 0x366E +0x8230AE37 0x366F +0x8230AE38 0x3670 +0x8230AE39 0x3671 +0x8230AF30 0x3672 +0x8230AF31 0x3673 +0x8230AF32 0x3674 +0x8230AF33 0x3675 +0x8230AF34 0x3676 +0x8230AF35 0x3677 +0x8230AF36 0x3678 +0x8230AF37 0x3679 +0x8230AF38 0x367A +0x8230AF39 0x367B +0x8230B030 0x367C +0x8230B031 0x367D +0x8230B032 0x367E +0x8230B033 0x367F +0x8230B034 0x3680 +0x8230B035 0x3681 +0x8230B036 0x3682 +0x8230B037 0x3683 +0x8230B038 0x3684 +0x8230B039 0x3685 +0x8230B130 0x3686 +0x8230B131 0x3687 +0x8230B132 0x3688 +0x8230B133 0x3689 +0x8230B134 0x368A +0x8230B135 0x368B +0x8230B136 0x368C +0x8230B137 0x368D +0x8230B138 0x368E +0x8230B139 0x368F +0x8230B230 0x3690 +0x8230B231 0x3691 +0x8230B232 0x3692 +0x8230B233 0x3693 +0x8230B234 0x3694 +0x8230B235 0x3695 +0x8230B236 0x3696 +0x8230B237 0x3697 +0x8230B238 0x3698 +0x8230B239 0x3699 +0x8230B330 0x369A +0x8230B331 0x369B +0x8230B332 0x369C +0x8230B333 0x369D +0x8230B334 0x369E +0x8230B335 0x369F +0x8230B336 0x36A0 +0x8230B337 0x36A1 +0x8230B338 0x36A2 +0x8230B339 0x36A3 +0x8230B430 0x36A4 +0x8230B431 0x36A5 +0x8230B432 0x36A6 +0x8230B433 0x36A7 +0x8230B434 0x36A8 +0x8230B435 0x36A9 +0x8230B436 0x36AA +0x8230B437 0x36AB +0x8230B438 0x36AC +0x8230B439 0x36AD +0x8230B530 0x36AE +0x8230B531 0x36AF +0x8230B532 0x36B0 +0x8230B533 0x36B1 +0x8230B534 0x36B2 +0x8230B535 0x36B3 +0x8230B536 0x36B4 +0x8230B537 0x36B5 +0x8230B538 0x36B6 +0x8230B539 0x36B7 +0x8230B630 0x36B8 +0x8230B631 0x36B9 +0x8230B632 0x36BA +0x8230B633 0x36BB +0x8230B634 0x36BC +0x8230B635 0x36BD +0x8230B636 0x36BE +0x8230B637 0x36BF +0x8230B638 0x36C0 +0x8230B639 0x36C1 +0x8230B730 0x36C2 +0x8230B731 0x36C3 +0x8230B732 0x36C4 +0x8230B733 0x36C5 +0x8230B734 0x36C6 +0x8230B735 0x36C7 +0x8230B736 0x36C8 +0x8230B737 0x36C9 +0x8230B738 0x36CA +0x8230B739 0x36CB +0x8230B830 0x36CC +0x8230B831 0x36CD +0x8230B832 0x36CE +0x8230B833 0x36CF +0x8230B834 0x36D0 +0x8230B835 0x36D1 +0x8230B836 0x36D2 +0x8230B837 0x36D3 +0x8230B838 0x36D4 +0x8230B839 0x36D5 +0x8230B930 0x36D6 +0x8230B931 0x36D7 +0x8230B932 0x36D8 +0x8230B933 0x36D9 +0x8230B934 0x36DA +0x8230B935 0x36DB +0x8230B936 0x36DC +0x8230B937 0x36DD +0x8230B938 0x36DE +0x8230B939 0x36DF +0x8230BA30 0x36E0 +0x8230BA31 0x36E1 +0x8230BA32 0x36E2 +0x8230BA33 0x36E3 +0x8230BA34 0x36E4 +0x8230BA35 0x36E5 +0x8230BA36 0x36E6 +0x8230BA37 0x36E7 +0x8230BA38 0x36E8 +0x8230BA39 0x36E9 +0x8230BB30 0x36EA +0x8230BB31 0x36EB +0x8230BB32 0x36EC +0x8230BB33 0x36ED +0x8230BB34 0x36EE +0x8230BB35 0x36EF +0x8230BB36 0x36F0 +0x8230BB37 0x36F1 +0x8230BB38 0x36F2 +0x8230BB39 0x36F3 +0x8230BC30 0x36F4 +0x8230BC31 0x36F5 +0x8230BC32 0x36F6 +0x8230BC33 0x36F7 +0x8230BC34 0x36F8 +0x8230BC35 0x36F9 +0x8230BC36 0x36FA +0x8230BC37 0x36FB +0x8230BC38 0x36FC +0x8230BC39 0x36FD +0x8230BD30 0x36FE +0x8230BD31 0x36FF +0x8230BD32 0x3700 +0x8230BD33 0x3701 +0x8230BD34 0x3702 +0x8230BD35 0x3703 +0x8230BD36 0x3704 +0x8230BD37 0x3705 +0x8230BD38 0x3706 +0x8230BD39 0x3707 +0x8230BE30 0x3708 +0x8230BE31 0x3709 +0x8230BE32 0x370A +0x8230BE33 0x370B +0x8230BE34 0x370C +0x8230BE35 0x370D +0x8230BE36 0x370E +0x8230BE37 0x370F +0x8230BE38 0x3710 +0x8230BE39 0x3711 +0x8230BF30 0x3712 +0x8230BF31 0x3713 +0x8230BF32 0x3714 +0x8230BF33 0x3715 +0x8230BF34 0x3716 +0x8230BF35 0x3717 +0x8230BF36 0x3718 +0x8230BF37 0x3719 +0x8230BF38 0x371A +0x8230BF39 0x371B +0x8230C030 0x371C +0x8230C031 0x371D +0x8230C032 0x371E +0x8230C033 0x371F +0x8230C034 0x3720 +0x8230C035 0x3721 +0x8230C036 0x3722 +0x8230C037 0x3723 +0x8230C038 0x3724 +0x8230C039 0x3725 +0x8230C130 0x3726 +0x8230C131 0x3727 +0x8230C132 0x3728 +0x8230C133 0x3729 +0x8230C134 0x372A +0x8230C135 0x372B +0x8230C136 0x372C +0x8230C137 0x372D +0x8230C138 0x372E +0x8230C139 0x372F +0x8230C230 0x3730 +0x8230C231 0x3731 +0x8230C232 0x3732 +0x8230C233 0x3733 +0x8230C234 0x3734 +0x8230C235 0x3735 +0x8230C236 0x3736 +0x8230C237 0x3737 +0x8230C238 0x3738 +0x8230C239 0x3739 +0x8230C330 0x373A +0x8230C331 0x373B +0x8230C332 0x373C +0x8230C333 0x373D +0x8230C334 0x373E +0x8230C335 0x373F +0x8230C336 0x3740 +0x8230C337 0x3741 +0x8230C338 0x3742 +0x8230C339 0x3743 +0x8230C430 0x3744 +0x8230C431 0x3745 +0x8230C432 0x3746 +0x8230C433 0x3747 +0x8230C434 0x3748 +0x8230C435 0x3749 +0x8230C436 0x374A +0x8230C437 0x374B +0x8230C438 0x374C +0x8230C439 0x374D +0x8230C530 0x374E +0x8230C531 0x374F +0x8230C532 0x3750 +0x8230C533 0x3751 +0x8230C534 0x3752 +0x8230C535 0x3753 +0x8230C536 0x3754 +0x8230C537 0x3755 +0x8230C538 0x3756 +0x8230C539 0x3757 +0x8230C630 0x3758 +0x8230C631 0x3759 +0x8230C632 0x375A +0x8230C633 0x375B +0x8230C634 0x375C +0x8230C635 0x375D +0x8230C636 0x375E +0x8230C637 0x375F +0x8230C638 0x3760 +0x8230C639 0x3761 +0x8230C730 0x3762 +0x8230C731 0x3763 +0x8230C732 0x3764 +0x8230C733 0x3765 +0x8230C734 0x3766 +0x8230C735 0x3767 +0x8230C736 0x3768 +0x8230C737 0x3769 +0x8230C738 0x376A +0x8230C739 0x376B +0x8230C830 0x376C +0x8230C831 0x376D +0x8230C832 0x376E +0x8230C833 0x376F +0x8230C834 0x3770 +0x8230C835 0x3771 +0x8230C836 0x3772 +0x8230C837 0x3773 +0x8230C838 0x3774 +0x8230C839 0x3775 +0x8230C930 0x3776 +0x8230C931 0x3777 +0x8230C932 0x3778 +0x8230C933 0x3779 +0x8230C934 0x377A +0x8230C935 0x377B +0x8230C936 0x377C +0x8230C937 0x377D +0x8230C938 0x377E +0x8230C939 0x377F +0x8230CA30 0x3780 +0x8230CA31 0x3781 +0x8230CA32 0x3782 +0x8230CA33 0x3783 +0x8230CA34 0x3784 +0x8230CA35 0x3785 +0x8230CA36 0x3786 +0x8230CA37 0x3787 +0x8230CA38 0x3788 +0x8230CA39 0x3789 +0x8230CB30 0x378A +0x8230CB31 0x378B +0x8230CB32 0x378C +0x8230CB33 0x378D +0x8230CB34 0x378E +0x8230CB35 0x378F +0x8230CB36 0x3790 +0x8230CB37 0x3791 +0x8230CB38 0x3792 +0x8230CB39 0x3793 +0x8230CC30 0x3794 +0x8230CC31 0x3795 +0x8230CC32 0x3796 +0x8230CC33 0x3797 +0x8230CC34 0x3798 +0x8230CC35 0x3799 +0x8230CC36 0x379A +0x8230CC37 0x379B +0x8230CC38 0x379C +0x8230CC39 0x379D +0x8230CD30 0x379E +0x8230CD31 0x379F +0x8230CD32 0x37A0 +0x8230CD33 0x37A1 +0x8230CD34 0x37A2 +0x8230CD35 0x37A3 +0x8230CD36 0x37A4 +0x8230CD37 0x37A5 +0x8230CD38 0x37A6 +0x8230CD39 0x37A7 +0x8230CE30 0x37A8 +0x8230CE31 0x37A9 +0x8230CE32 0x37AA +0x8230CE33 0x37AB +0x8230CE34 0x37AC +0x8230CE35 0x37AD +0x8230CE36 0x37AE +0x8230CE37 0x37AF +0x8230CE38 0x37B0 +0x8230CE39 0x37B1 +0x8230CF30 0x37B2 +0x8230CF31 0x37B3 +0x8230CF32 0x37B4 +0x8230CF33 0x37B5 +0x8230CF34 0x37B6 +0x8230CF35 0x37B7 +0x8230CF36 0x37B8 +0x8230CF37 0x37B9 +0x8230CF38 0x37BA +0x8230CF39 0x37BB +0x8230D030 0x37BC +0x8230D031 0x37BD +0x8230D032 0x37BE +0x8230D033 0x37BF +0x8230D034 0x37C0 +0x8230D035 0x37C1 +0x8230D036 0x37C2 +0x8230D037 0x37C3 +0x8230D038 0x37C4 +0x8230D039 0x37C5 +0x8230D130 0x37C6 +0x8230D131 0x37C7 +0x8230D132 0x37C8 +0x8230D133 0x37C9 +0x8230D134 0x37CA +0x8230D135 0x37CB +0x8230D136 0x37CC +0x8230D137 0x37CD +0x8230D138 0x37CE +0x8230D139 0x37CF +0x8230D230 0x37D0 +0x8230D231 0x37D1 +0x8230D232 0x37D2 +0x8230D233 0x37D3 +0x8230D234 0x37D4 +0x8230D235 0x37D5 +0x8230D236 0x37D6 +0x8230D237 0x37D7 +0x8230D238 0x37D8 +0x8230D239 0x37D9 +0x8230D330 0x37DA +0x8230D331 0x37DB +0x8230D332 0x37DC +0x8230D333 0x37DD +0x8230D334 0x37DE +0x8230D335 0x37DF +0x8230D336 0x37E0 +0x8230D337 0x37E1 +0x8230D338 0x37E2 +0x8230D339 0x37E3 +0x8230D430 0x37E4 +0x8230D431 0x37E5 +0x8230D432 0x37E6 +0x8230D433 0x37E7 +0x8230D434 0x37E8 +0x8230D435 0x37E9 +0x8230D436 0x37EA +0x8230D437 0x37EB +0x8230D438 0x37EC +0x8230D439 0x37ED +0x8230D530 0x37EE +0x8230D531 0x37EF +0x8230D532 0x37F0 +0x8230D533 0x37F1 +0x8230D534 0x37F2 +0x8230D535 0x37F3 +0x8230D536 0x37F4 +0x8230D537 0x37F5 +0x8230D538 0x37F6 +0x8230D539 0x37F7 +0x8230D630 0x37F8 +0x8230D631 0x37F9 +0x8230D632 0x37FA +0x8230D633 0x37FB +0x8230D634 0x37FC +0x8230D635 0x37FD +0x8230D636 0x37FE +0x8230D637 0x37FF +0x8230D638 0x3800 +0x8230D639 0x3801 +0x8230D730 0x3802 +0x8230D731 0x3803 +0x8230D732 0x3804 +0x8230D733 0x3805 +0x8230D734 0x3806 +0x8230D735 0x3807 +0x8230D736 0x3808 +0x8230D737 0x3809 +0x8230D738 0x380A +0x8230D739 0x380B +0x8230D830 0x380C +0x8230D831 0x380D +0x8230D832 0x380E +0x8230D833 0x380F +0x8230D834 0x3810 +0x8230D835 0x3811 +0x8230D836 0x3812 +0x8230D837 0x3813 +0x8230D838 0x3814 +0x8230D839 0x3815 +0x8230D930 0x3816 +0x8230D931 0x3817 +0x8230D932 0x3818 +0x8230D933 0x3819 +0x8230D934 0x381A +0x8230D935 0x381B +0x8230D936 0x381C +0x8230D937 0x381D +0x8230D938 0x381E +0x8230D939 0x381F +0x8230DA30 0x3820 +0x8230DA31 0x3821 +0x8230DA32 0x3822 +0x8230DA33 0x3823 +0x8230DA34 0x3824 +0x8230DA35 0x3825 +0x8230DA36 0x3826 +0x8230DA37 0x3827 +0x8230DA38 0x3828 +0x8230DA39 0x3829 +0x8230DB30 0x382A +0x8230DB31 0x382B +0x8230DB32 0x382C +0x8230DB33 0x382D +0x8230DB34 0x382E +0x8230DB35 0x382F +0x8230DB36 0x3830 +0x8230DB37 0x3831 +0x8230DB38 0x3832 +0x8230DB39 0x3833 +0x8230DC30 0x3834 +0x8230DC31 0x3835 +0x8230DC32 0x3836 +0x8230DC33 0x3837 +0x8230DC34 0x3838 +0x8230DC35 0x3839 +0x8230DC36 0x383A +0x8230DC37 0x383B +0x8230DC38 0x383C +0x8230DC39 0x383D +0x8230DD30 0x383E +0x8230DD31 0x383F +0x8230DD32 0x3840 +0x8230DD33 0x3841 +0x8230DD34 0x3842 +0x8230DD35 0x3843 +0x8230DD36 0x3844 +0x8230DD37 0x3845 +0x8230DD38 0x3846 +0x8230DD39 0x3847 +0x8230DE30 0x3848 +0x8230DE31 0x3849 +0x8230DE32 0x384A +0x8230DE33 0x384B +0x8230DE34 0x384C +0x8230DE35 0x384D +0x8230DE36 0x384E +0x8230DE37 0x384F +0x8230DE38 0x3850 +0x8230DE39 0x3851 +0x8230DF30 0x3852 +0x8230DF31 0x3853 +0x8230DF32 0x3854 +0x8230DF33 0x3855 +0x8230DF34 0x3856 +0x8230DF35 0x3857 +0x8230DF36 0x3858 +0x8230DF37 0x3859 +0x8230DF38 0x385A +0x8230DF39 0x385B +0x8230E030 0x385C +0x8230E031 0x385D +0x8230E032 0x385E +0x8230E033 0x385F +0x8230E034 0x3860 +0x8230E035 0x3861 +0x8230E036 0x3862 +0x8230E037 0x3863 +0x8230E038 0x3864 +0x8230E039 0x3865 +0x8230E130 0x3866 +0x8230E131 0x3867 +0x8230E132 0x3868 +0x8230E133 0x3869 +0x8230E134 0x386A +0x8230E135 0x386B +0x8230E136 0x386C +0x8230E137 0x386D +0x8230E138 0x386E +0x8230E139 0x386F +0x8230E230 0x3870 +0x8230E231 0x3871 +0x8230E232 0x3872 +0x8230E233 0x3873 +0x8230E234 0x3874 +0x8230E235 0x3875 +0x8230E236 0x3876 +0x8230E237 0x3877 +0x8230E238 0x3878 +0x8230E239 0x3879 +0x8230E330 0x387A +0x8230E331 0x387B +0x8230E332 0x387C +0x8230E333 0x387D +0x8230E334 0x387E +0x8230E335 0x387F +0x8230E336 0x3880 +0x8230E337 0x3881 +0x8230E338 0x3882 +0x8230E339 0x3883 +0x8230E430 0x3884 +0x8230E431 0x3885 +0x8230E432 0x3886 +0x8230E433 0x3887 +0x8230E434 0x3888 +0x8230E435 0x3889 +0x8230E436 0x388A +0x8230E437 0x388B +0x8230E438 0x388C +0x8230E439 0x388D +0x8230E530 0x388E +0x8230E531 0x388F +0x8230E532 0x3890 +0x8230E533 0x3891 +0x8230E534 0x3892 +0x8230E535 0x3893 +0x8230E536 0x3894 +0x8230E537 0x3895 +0x8230E538 0x3896 +0x8230E539 0x3897 +0x8230E630 0x3898 +0x8230E631 0x3899 +0x8230E632 0x389A +0x8230E633 0x389B +0x8230E634 0x389C +0x8230E635 0x389D +0x8230E636 0x389E +0x8230E637 0x389F +0x8230E638 0x38A0 +0x8230E639 0x38A1 +0x8230E730 0x38A2 +0x8230E731 0x38A3 +0x8230E732 0x38A4 +0x8230E733 0x38A5 +0x8230E734 0x38A6 +0x8230E735 0x38A7 +0x8230E736 0x38A8 +0x8230E737 0x38A9 +0x8230E738 0x38AA +0x8230E739 0x38AB +0x8230E830 0x38AC +0x8230E831 0x38AD +0x8230E832 0x38AE +0x8230E833 0x38AF +0x8230E834 0x38B0 +0x8230E835 0x38B1 +0x8230E836 0x38B2 +0x8230E837 0x38B3 +0x8230E838 0x38B4 +0x8230E839 0x38B5 +0x8230E930 0x38B6 +0x8230E931 0x38B7 +0x8230E932 0x38B8 +0x8230E933 0x38B9 +0x8230E934 0x38BA +0x8230E935 0x38BB +0x8230E936 0x38BC +0x8230E937 0x38BD +0x8230E938 0x38BE +0x8230E939 0x38BF +0x8230EA30 0x38C0 +0x8230EA31 0x38C1 +0x8230EA32 0x38C2 +0x8230EA33 0x38C3 +0x8230EA34 0x38C4 +0x8230EA35 0x38C5 +0x8230EA36 0x38C6 +0x8230EA37 0x38C7 +0x8230EA38 0x38C8 +0x8230EA39 0x38C9 +0x8230EB30 0x38CA +0x8230EB31 0x38CB +0x8230EB32 0x38CC +0x8230EB33 0x38CD +0x8230EB34 0x38CE +0x8230EB35 0x38CF +0x8230EB36 0x38D0 +0x8230EB37 0x38D1 +0x8230EB38 0x38D2 +0x8230EB39 0x38D3 +0x8230EC30 0x38D4 +0x8230EC31 0x38D5 +0x8230EC32 0x38D6 +0x8230EC33 0x38D7 +0x8230EC34 0x38D8 +0x8230EC35 0x38D9 +0x8230EC36 0x38DA +0x8230EC37 0x38DB +0x8230EC38 0x38DC +0x8230EC39 0x38DD +0x8230ED30 0x38DE +0x8230ED31 0x38DF +0x8230ED32 0x38E0 +0x8230ED33 0x38E1 +0x8230ED34 0x38E2 +0x8230ED35 0x38E3 +0x8230ED36 0x38E4 +0x8230ED37 0x38E5 +0x8230ED38 0x38E6 +0x8230ED39 0x38E7 +0x8230EE30 0x38E8 +0x8230EE31 0x38E9 +0x8230EE32 0x38EA +0x8230EE33 0x38EB +0x8230EE34 0x38EC +0x8230EE35 0x38ED +0x8230EE36 0x38EE +0x8230EE37 0x38EF +0x8230EE38 0x38F0 +0x8230EE39 0x38F1 +0x8230EF30 0x38F2 +0x8230EF31 0x38F3 +0x8230EF32 0x38F4 +0x8230EF33 0x38F5 +0x8230EF34 0x38F6 +0x8230EF35 0x38F7 +0x8230EF36 0x38F8 +0x8230EF37 0x38F9 +0x8230EF38 0x38FA +0x8230EF39 0x38FB +0x8230F030 0x38FC +0x8230F031 0x38FD +0x8230F032 0x38FE +0x8230F033 0x38FF +0x8230F034 0x3900 +0x8230F035 0x3901 +0x8230F036 0x3902 +0x8230F037 0x3903 +0x8230F038 0x3904 +0x8230F039 0x3905 +0x8230F130 0x3906 +0x8230F131 0x3907 +0x8230F132 0x3908 +0x8230F133 0x3909 +0x8230F134 0x390A +0x8230F135 0x390B +0x8230F136 0x390C +0x8230F137 0x390D +0x8230F138 0x390E +0x8230F139 0x390F +0x8230F230 0x3910 +0x8230F231 0x3911 +0x8230F232 0x3912 +0x8230F233 0x3913 +0x8230F234 0x3914 +0x8230F235 0x3915 +0x8230F236 0x3916 +0x8230F237 0x3917 +0x8230F238 0x3919 +0x8230F239 0x391A +0x8230F330 0x391B +0x8230F331 0x391C +0x8230F332 0x391D +0x8230F333 0x391E +0x8230F334 0x391F +0x8230F335 0x3920 +0x8230F336 0x3921 +0x8230F337 0x3922 +0x8230F338 0x3923 +0x8230F339 0x3924 +0x8230F430 0x3925 +0x8230F431 0x3926 +0x8230F432 0x3927 +0x8230F433 0x3928 +0x8230F434 0x3929 +0x8230F435 0x392A +0x8230F436 0x392B +0x8230F437 0x392C +0x8230F438 0x392D +0x8230F439 0x392E +0x8230F530 0x392F +0x8230F531 0x3930 +0x8230F532 0x3931 +0x8230F533 0x3932 +0x8230F534 0x3933 +0x8230F535 0x3934 +0x8230F536 0x3935 +0x8230F537 0x3936 +0x8230F538 0x3937 +0x8230F539 0x3938 +0x8230F630 0x3939 +0x8230F631 0x393A +0x8230F632 0x393B +0x8230F633 0x393C +0x8230F634 0x393D +0x8230F635 0x393E +0x8230F636 0x393F +0x8230F637 0x3940 +0x8230F638 0x3941 +0x8230F639 0x3942 +0x8230F730 0x3943 +0x8230F731 0x3944 +0x8230F732 0x3945 +0x8230F733 0x3946 +0x8230F734 0x3947 +0x8230F735 0x3948 +0x8230F736 0x3949 +0x8230F737 0x394A +0x8230F738 0x394B +0x8230F739 0x394C +0x8230F830 0x394D +0x8230F831 0x394E +0x8230F832 0x394F +0x8230F833 0x3950 +0x8230F834 0x3951 +0x8230F835 0x3952 +0x8230F836 0x3953 +0x8230F837 0x3954 +0x8230F838 0x3955 +0x8230F839 0x3956 +0x8230F930 0x3957 +0x8230F931 0x3958 +0x8230F932 0x3959 +0x8230F933 0x395A +0x8230F934 0x395B +0x8230F935 0x395C +0x8230F936 0x395D +0x8230F937 0x395E +0x8230F938 0x395F +0x8230F939 0x3960 +0x8230FA30 0x3961 +0x8230FA31 0x3962 +0x8230FA32 0x3963 +0x8230FA33 0x3964 +0x8230FA34 0x3965 +0x8230FA35 0x3966 +0x8230FA36 0x3967 +0x8230FA37 0x3968 +0x8230FA38 0x3969 +0x8230FA39 0x396A +0x8230FB30 0x396B +0x8230FB31 0x396C +0x8230FB32 0x396D +0x8230FB33 0x396F +0x8230FB34 0x3970 +0x8230FB35 0x3971 +0x8230FB36 0x3972 +0x8230FB37 0x3973 +0x8230FB38 0x3974 +0x8230FB39 0x3975 +0x8230FC30 0x3976 +0x8230FC31 0x3977 +0x8230FC32 0x3978 +0x8230FC33 0x3979 +0x8230FC34 0x397A +0x8230FC35 0x397B +0x8230FC36 0x397C +0x8230FC37 0x397D +0x8230FC38 0x397E +0x8230FC39 0x397F +0x8230FD30 0x3980 +0x8230FD31 0x3981 +0x8230FD32 0x3982 +0x8230FD33 0x3983 +0x8230FD34 0x3984 +0x8230FD35 0x3985 +0x8230FD36 0x3986 +0x8230FD37 0x3987 +0x8230FD38 0x3988 +0x8230FD39 0x3989 +0x8230FE30 0x398A +0x8230FE31 0x398B +0x8230FE32 0x398C +0x8230FE33 0x398D +0x8230FE34 0x398E +0x8230FE35 0x398F +0x8230FE36 0x3990 +0x8230FE37 0x3991 +0x8230FE38 0x3992 +0x8230FE39 0x3993 +0x82318130 0x3994 +0x82318131 0x3995 +0x82318132 0x3996 +0x82318133 0x3997 +0x82318134 0x3998 +0x82318135 0x3999 +0x82318136 0x399A +0x82318137 0x399B +0x82318138 0x399C +0x82318139 0x399D +0x82318230 0x399E +0x82318231 0x399F +0x82318232 0x39A0 +0x82318233 0x39A1 +0x82318234 0x39A2 +0x82318235 0x39A3 +0x82318236 0x39A4 +0x82318237 0x39A5 +0x82318238 0x39A6 +0x82318239 0x39A7 +0x82318330 0x39A8 +0x82318331 0x39A9 +0x82318332 0x39AA +0x82318333 0x39AB +0x82318334 0x39AC +0x82318335 0x39AD +0x82318336 0x39AE +0x82318337 0x39AF +0x82318338 0x39B0 +0x82318339 0x39B1 +0x82318430 0x39B2 +0x82318431 0x39B3 +0x82318432 0x39B4 +0x82318433 0x39B5 +0x82318434 0x39B6 +0x82318435 0x39B7 +0x82318436 0x39B8 +0x82318437 0x39B9 +0x82318438 0x39BA +0x82318439 0x39BB +0x82318530 0x39BC +0x82318531 0x39BD +0x82318532 0x39BE +0x82318533 0x39BF +0x82318534 0x39C0 +0x82318535 0x39C1 +0x82318536 0x39C2 +0x82318537 0x39C3 +0x82318538 0x39C4 +0x82318539 0x39C5 +0x82318630 0x39C6 +0x82318631 0x39C7 +0x82318632 0x39C8 +0x82318633 0x39C9 +0x82318634 0x39CA +0x82318635 0x39CB +0x82318636 0x39CC +0x82318637 0x39CD +0x82318638 0x39CE +0x82318639 0x39D1 +0x82318730 0x39D2 +0x82318731 0x39D3 +0x82318732 0x39D4 +0x82318733 0x39D5 +0x82318734 0x39D6 +0x82318735 0x39D7 +0x82318736 0x39D8 +0x82318737 0x39D9 +0x82318738 0x39DA +0x82318739 0x39DB +0x82318830 0x39DC +0x82318831 0x39DD +0x82318832 0x39DE +0x82318833 0x39E0 +0x82318834 0x39E1 +0x82318835 0x39E2 +0x82318836 0x39E3 +0x82318837 0x39E4 +0x82318838 0x39E5 +0x82318839 0x39E6 +0x82318930 0x39E7 +0x82318931 0x39E8 +0x82318932 0x39E9 +0x82318933 0x39EA +0x82318934 0x39EB +0x82318935 0x39EC +0x82318936 0x39ED +0x82318937 0x39EE +0x82318938 0x39EF +0x82318939 0x39F0 +0x82318A30 0x39F1 +0x82318A31 0x39F2 +0x82318A32 0x39F3 +0x82318A33 0x39F4 +0x82318A34 0x39F5 +0x82318A35 0x39F6 +0x82318A36 0x39F7 +0x82318A37 0x39F8 +0x82318A38 0x39F9 +0x82318A39 0x39FA +0x82318B30 0x39FB +0x82318B31 0x39FC +0x82318B32 0x39FD +0x82318B33 0x39FE +0x82318B34 0x39FF +0x82318B35 0x3A00 +0x82318B36 0x3A01 +0x82318B37 0x3A02 +0x82318B38 0x3A03 +0x82318B39 0x3A04 +0x82318C30 0x3A05 +0x82318C31 0x3A06 +0x82318C32 0x3A07 +0x82318C33 0x3A08 +0x82318C34 0x3A09 +0x82318C35 0x3A0A +0x82318C36 0x3A0B +0x82318C37 0x3A0C +0x82318C38 0x3A0D +0x82318C39 0x3A0E +0x82318D30 0x3A0F +0x82318D31 0x3A10 +0x82318D32 0x3A11 +0x82318D33 0x3A12 +0x82318D34 0x3A13 +0x82318D35 0x3A14 +0x82318D36 0x3A15 +0x82318D37 0x3A16 +0x82318D38 0x3A17 +0x82318D39 0x3A18 +0x82318E30 0x3A19 +0x82318E31 0x3A1A +0x82318E32 0x3A1B +0x82318E33 0x3A1C +0x82318E34 0x3A1D +0x82318E35 0x3A1E +0x82318E36 0x3A1F +0x82318E37 0x3A20 +0x82318E38 0x3A21 +0x82318E39 0x3A22 +0x82318F30 0x3A23 +0x82318F31 0x3A24 +0x82318F32 0x3A25 +0x82318F33 0x3A26 +0x82318F34 0x3A27 +0x82318F35 0x3A28 +0x82318F36 0x3A29 +0x82318F37 0x3A2A +0x82318F38 0x3A2B +0x82318F39 0x3A2C +0x82319030 0x3A2D +0x82319031 0x3A2E +0x82319032 0x3A2F +0x82319033 0x3A30 +0x82319034 0x3A31 +0x82319035 0x3A32 +0x82319036 0x3A33 +0x82319037 0x3A34 +0x82319038 0x3A35 +0x82319039 0x3A36 +0x82319130 0x3A37 +0x82319131 0x3A38 +0x82319132 0x3A39 +0x82319133 0x3A3A +0x82319134 0x3A3B +0x82319135 0x3A3C +0x82319136 0x3A3D +0x82319137 0x3A3E +0x82319138 0x3A3F +0x82319139 0x3A40 +0x82319230 0x3A41 +0x82319231 0x3A42 +0x82319232 0x3A43 +0x82319233 0x3A44 +0x82319234 0x3A45 +0x82319235 0x3A46 +0x82319236 0x3A47 +0x82319237 0x3A48 +0x82319238 0x3A49 +0x82319239 0x3A4A +0x82319330 0x3A4B +0x82319331 0x3A4C +0x82319332 0x3A4D +0x82319333 0x3A4E +0x82319334 0x3A4F +0x82319335 0x3A50 +0x82319336 0x3A51 +0x82319337 0x3A52 +0x82319338 0x3A53 +0x82319339 0x3A54 +0x82319430 0x3A55 +0x82319431 0x3A56 +0x82319432 0x3A57 +0x82319433 0x3A58 +0x82319434 0x3A59 +0x82319435 0x3A5A +0x82319436 0x3A5B +0x82319437 0x3A5C +0x82319438 0x3A5D +0x82319439 0x3A5E +0x82319530 0x3A5F +0x82319531 0x3A60 +0x82319532 0x3A61 +0x82319533 0x3A62 +0x82319534 0x3A63 +0x82319535 0x3A64 +0x82319536 0x3A65 +0x82319537 0x3A66 +0x82319538 0x3A67 +0x82319539 0x3A68 +0x82319630 0x3A69 +0x82319631 0x3A6A +0x82319632 0x3A6B +0x82319633 0x3A6C +0x82319634 0x3A6D +0x82319635 0x3A6E +0x82319636 0x3A6F +0x82319637 0x3A70 +0x82319638 0x3A71 +0x82319639 0x3A72 +0x82319730 0x3A74 +0x82319731 0x3A75 +0x82319732 0x3A76 +0x82319733 0x3A77 +0x82319734 0x3A78 +0x82319735 0x3A79 +0x82319736 0x3A7A +0x82319737 0x3A7B +0x82319738 0x3A7C +0x82319739 0x3A7D +0x82319830 0x3A7E +0x82319831 0x3A7F +0x82319832 0x3A80 +0x82319833 0x3A81 +0x82319834 0x3A82 +0x82319835 0x3A83 +0x82319836 0x3A84 +0x82319837 0x3A85 +0x82319838 0x3A86 +0x82319839 0x3A87 +0x82319930 0x3A88 +0x82319931 0x3A89 +0x82319932 0x3A8A +0x82319933 0x3A8B +0x82319934 0x3A8C +0x82319935 0x3A8D +0x82319936 0x3A8E +0x82319937 0x3A8F +0x82319938 0x3A90 +0x82319939 0x3A91 +0x82319A30 0x3A92 +0x82319A31 0x3A93 +0x82319A32 0x3A94 +0x82319A33 0x3A95 +0x82319A34 0x3A96 +0x82319A35 0x3A97 +0x82319A36 0x3A98 +0x82319A37 0x3A99 +0x82319A38 0x3A9A +0x82319A39 0x3A9B +0x82319B30 0x3A9C +0x82319B31 0x3A9D +0x82319B32 0x3A9E +0x82319B33 0x3A9F +0x82319B34 0x3AA0 +0x82319B35 0x3AA1 +0x82319B36 0x3AA2 +0x82319B37 0x3AA3 +0x82319B38 0x3AA4 +0x82319B39 0x3AA5 +0x82319C30 0x3AA6 +0x82319C31 0x3AA7 +0x82319C32 0x3AA8 +0x82319C33 0x3AA9 +0x82319C34 0x3AAA +0x82319C35 0x3AAB +0x82319C36 0x3AAC +0x82319C37 0x3AAD +0x82319C38 0x3AAE +0x82319C39 0x3AAF +0x82319D30 0x3AB0 +0x82319D31 0x3AB1 +0x82319D32 0x3AB2 +0x82319D33 0x3AB3 +0x82319D34 0x3AB4 +0x82319D35 0x3AB5 +0x82319D36 0x3AB6 +0x82319D37 0x3AB7 +0x82319D38 0x3AB8 +0x82319D39 0x3AB9 +0x82319E30 0x3ABA +0x82319E31 0x3ABB +0x82319E32 0x3ABC +0x82319E33 0x3ABD +0x82319E34 0x3ABE +0x82319E35 0x3ABF +0x82319E36 0x3AC0 +0x82319E37 0x3AC1 +0x82319E38 0x3AC2 +0x82319E39 0x3AC3 +0x82319F30 0x3AC4 +0x82319F31 0x3AC5 +0x82319F32 0x3AC6 +0x82319F33 0x3AC7 +0x82319F34 0x3AC8 +0x82319F35 0x3AC9 +0x82319F36 0x3ACA +0x82319F37 0x3ACB +0x82319F38 0x3ACC +0x82319F39 0x3ACD +0x8231A030 0x3ACE +0x8231A031 0x3ACF +0x8231A032 0x3AD0 +0x8231A033 0x3AD1 +0x8231A034 0x3AD2 +0x8231A035 0x3AD3 +0x8231A036 0x3AD4 +0x8231A037 0x3AD5 +0x8231A038 0x3AD6 +0x8231A039 0x3AD7 +0x8231A130 0x3AD8 +0x8231A131 0x3AD9 +0x8231A132 0x3ADA +0x8231A133 0x3ADB +0x8231A134 0x3ADC +0x8231A135 0x3ADD +0x8231A136 0x3ADE +0x8231A137 0x3ADF +0x8231A138 0x3AE0 +0x8231A139 0x3AE1 +0x8231A230 0x3AE2 +0x8231A231 0x3AE3 +0x8231A232 0x3AE4 +0x8231A233 0x3AE5 +0x8231A234 0x3AE6 +0x8231A235 0x3AE7 +0x8231A236 0x3AE8 +0x8231A237 0x3AE9 +0x8231A238 0x3AEA +0x8231A239 0x3AEB +0x8231A330 0x3AEC +0x8231A331 0x3AED +0x8231A332 0x3AEE +0x8231A333 0x3AEF +0x8231A334 0x3AF0 +0x8231A335 0x3AF1 +0x8231A336 0x3AF2 +0x8231A337 0x3AF3 +0x8231A338 0x3AF4 +0x8231A339 0x3AF5 +0x8231A430 0x3AF6 +0x8231A431 0x3AF7 +0x8231A432 0x3AF8 +0x8231A433 0x3AF9 +0x8231A434 0x3AFA +0x8231A435 0x3AFB +0x8231A436 0x3AFC +0x8231A437 0x3AFD +0x8231A438 0x3AFE +0x8231A439 0x3AFF +0x8231A530 0x3B00 +0x8231A531 0x3B01 +0x8231A532 0x3B02 +0x8231A533 0x3B03 +0x8231A534 0x3B04 +0x8231A535 0x3B05 +0x8231A536 0x3B06 +0x8231A537 0x3B07 +0x8231A538 0x3B08 +0x8231A539 0x3B09 +0x8231A630 0x3B0A +0x8231A631 0x3B0B +0x8231A632 0x3B0C +0x8231A633 0x3B0D +0x8231A634 0x3B0E +0x8231A635 0x3B0F +0x8231A636 0x3B10 +0x8231A637 0x3B11 +0x8231A638 0x3B12 +0x8231A639 0x3B13 +0x8231A730 0x3B14 +0x8231A731 0x3B15 +0x8231A732 0x3B16 +0x8231A733 0x3B17 +0x8231A734 0x3B18 +0x8231A735 0x3B19 +0x8231A736 0x3B1A +0x8231A737 0x3B1B +0x8231A738 0x3B1C +0x8231A739 0x3B1D +0x8231A830 0x3B1E +0x8231A831 0x3B1F +0x8231A832 0x3B20 +0x8231A833 0x3B21 +0x8231A834 0x3B22 +0x8231A835 0x3B23 +0x8231A836 0x3B24 +0x8231A837 0x3B25 +0x8231A838 0x3B26 +0x8231A839 0x3B27 +0x8231A930 0x3B28 +0x8231A931 0x3B29 +0x8231A932 0x3B2A +0x8231A933 0x3B2B +0x8231A934 0x3B2C +0x8231A935 0x3B2D +0x8231A936 0x3B2E +0x8231A937 0x3B2F +0x8231A938 0x3B30 +0x8231A939 0x3B31 +0x8231AA30 0x3B32 +0x8231AA31 0x3B33 +0x8231AA32 0x3B34 +0x8231AA33 0x3B35 +0x8231AA34 0x3B36 +0x8231AA35 0x3B37 +0x8231AA36 0x3B38 +0x8231AA37 0x3B39 +0x8231AA38 0x3B3A +0x8231AA39 0x3B3B +0x8231AB30 0x3B3C +0x8231AB31 0x3B3D +0x8231AB32 0x3B3E +0x8231AB33 0x3B3F +0x8231AB34 0x3B40 +0x8231AB35 0x3B41 +0x8231AB36 0x3B42 +0x8231AB37 0x3B43 +0x8231AB38 0x3B44 +0x8231AB39 0x3B45 +0x8231AC30 0x3B46 +0x8231AC31 0x3B47 +0x8231AC32 0x3B48 +0x8231AC33 0x3B49 +0x8231AC34 0x3B4A +0x8231AC35 0x3B4B +0x8231AC36 0x3B4C +0x8231AC37 0x3B4D +0x8231AC38 0x3B4F +0x8231AC39 0x3B50 +0x8231AD30 0x3B51 +0x8231AD31 0x3B52 +0x8231AD32 0x3B53 +0x8231AD33 0x3B54 +0x8231AD34 0x3B55 +0x8231AD35 0x3B56 +0x8231AD36 0x3B57 +0x8231AD37 0x3B58 +0x8231AD38 0x3B59 +0x8231AD39 0x3B5A +0x8231AE30 0x3B5B +0x8231AE31 0x3B5C +0x8231AE32 0x3B5D +0x8231AE33 0x3B5E +0x8231AE34 0x3B5F +0x8231AE35 0x3B60 +0x8231AE36 0x3B61 +0x8231AE37 0x3B62 +0x8231AE38 0x3B63 +0x8231AE39 0x3B64 +0x8231AF30 0x3B65 +0x8231AF31 0x3B66 +0x8231AF32 0x3B67 +0x8231AF33 0x3B68 +0x8231AF34 0x3B69 +0x8231AF35 0x3B6A +0x8231AF36 0x3B6B +0x8231AF37 0x3B6C +0x8231AF38 0x3B6D +0x8231AF39 0x3B6E +0x8231B030 0x3B6F +0x8231B031 0x3B70 +0x8231B032 0x3B71 +0x8231B033 0x3B72 +0x8231B034 0x3B73 +0x8231B035 0x3B74 +0x8231B036 0x3B75 +0x8231B037 0x3B76 +0x8231B038 0x3B77 +0x8231B039 0x3B78 +0x8231B130 0x3B79 +0x8231B131 0x3B7A +0x8231B132 0x3B7B +0x8231B133 0x3B7C +0x8231B134 0x3B7D +0x8231B135 0x3B7E +0x8231B136 0x3B7F +0x8231B137 0x3B80 +0x8231B138 0x3B81 +0x8231B139 0x3B82 +0x8231B230 0x3B83 +0x8231B231 0x3B84 +0x8231B232 0x3B85 +0x8231B233 0x3B86 +0x8231B234 0x3B87 +0x8231B235 0x3B88 +0x8231B236 0x3B89 +0x8231B237 0x3B8A +0x8231B238 0x3B8B +0x8231B239 0x3B8C +0x8231B330 0x3B8D +0x8231B331 0x3B8E +0x8231B332 0x3B8F +0x8231B333 0x3B90 +0x8231B334 0x3B91 +0x8231B335 0x3B92 +0x8231B336 0x3B93 +0x8231B337 0x3B94 +0x8231B338 0x3B95 +0x8231B339 0x3B96 +0x8231B430 0x3B97 +0x8231B431 0x3B98 +0x8231B432 0x3B99 +0x8231B433 0x3B9A +0x8231B434 0x3B9B +0x8231B435 0x3B9C +0x8231B436 0x3B9D +0x8231B437 0x3B9E +0x8231B438 0x3B9F +0x8231B439 0x3BA0 +0x8231B530 0x3BA1 +0x8231B531 0x3BA2 +0x8231B532 0x3BA3 +0x8231B533 0x3BA4 +0x8231B534 0x3BA5 +0x8231B535 0x3BA6 +0x8231B536 0x3BA7 +0x8231B537 0x3BA8 +0x8231B538 0x3BA9 +0x8231B539 0x3BAA +0x8231B630 0x3BAB +0x8231B631 0x3BAC +0x8231B632 0x3BAD +0x8231B633 0x3BAE +0x8231B634 0x3BAF +0x8231B635 0x3BB0 +0x8231B636 0x3BB1 +0x8231B637 0x3BB2 +0x8231B638 0x3BB3 +0x8231B639 0x3BB4 +0x8231B730 0x3BB5 +0x8231B731 0x3BB6 +0x8231B732 0x3BB7 +0x8231B733 0x3BB8 +0x8231B734 0x3BB9 +0x8231B735 0x3BBA +0x8231B736 0x3BBB +0x8231B737 0x3BBC +0x8231B738 0x3BBD +0x8231B739 0x3BBE +0x8231B830 0x3BBF +0x8231B831 0x3BC0 +0x8231B832 0x3BC1 +0x8231B833 0x3BC2 +0x8231B834 0x3BC3 +0x8231B835 0x3BC4 +0x8231B836 0x3BC5 +0x8231B837 0x3BC6 +0x8231B838 0x3BC7 +0x8231B839 0x3BC8 +0x8231B930 0x3BC9 +0x8231B931 0x3BCA +0x8231B932 0x3BCB +0x8231B933 0x3BCC +0x8231B934 0x3BCD +0x8231B935 0x3BCE +0x8231B936 0x3BCF +0x8231B937 0x3BD0 +0x8231B938 0x3BD1 +0x8231B939 0x3BD2 +0x8231BA30 0x3BD3 +0x8231BA31 0x3BD4 +0x8231BA32 0x3BD5 +0x8231BA33 0x3BD6 +0x8231BA34 0x3BD7 +0x8231BA35 0x3BD8 +0x8231BA36 0x3BD9 +0x8231BA37 0x3BDA +0x8231BA38 0x3BDB +0x8231BA39 0x3BDC +0x8231BB30 0x3BDD +0x8231BB31 0x3BDE +0x8231BB32 0x3BDF +0x8231BB33 0x3BE0 +0x8231BB34 0x3BE1 +0x8231BB35 0x3BE2 +0x8231BB36 0x3BE3 +0x8231BB37 0x3BE4 +0x8231BB38 0x3BE5 +0x8231BB39 0x3BE6 +0x8231BC30 0x3BE7 +0x8231BC31 0x3BE8 +0x8231BC32 0x3BE9 +0x8231BC33 0x3BEA +0x8231BC34 0x3BEB +0x8231BC35 0x3BEC +0x8231BC36 0x3BED +0x8231BC37 0x3BEE +0x8231BC38 0x3BEF +0x8231BC39 0x3BF0 +0x8231BD30 0x3BF1 +0x8231BD31 0x3BF2 +0x8231BD32 0x3BF3 +0x8231BD33 0x3BF4 +0x8231BD34 0x3BF5 +0x8231BD35 0x3BF6 +0x8231BD36 0x3BF7 +0x8231BD37 0x3BF8 +0x8231BD38 0x3BF9 +0x8231BD39 0x3BFA +0x8231BE30 0x3BFB +0x8231BE31 0x3BFC +0x8231BE32 0x3BFD +0x8231BE33 0x3BFE +0x8231BE34 0x3BFF +0x8231BE35 0x3C00 +0x8231BE36 0x3C01 +0x8231BE37 0x3C02 +0x8231BE38 0x3C03 +0x8231BE39 0x3C04 +0x8231BF30 0x3C05 +0x8231BF31 0x3C06 +0x8231BF32 0x3C07 +0x8231BF33 0x3C08 +0x8231BF34 0x3C09 +0x8231BF35 0x3C0A +0x8231BF36 0x3C0B +0x8231BF37 0x3C0C +0x8231BF38 0x3C0D +0x8231BF39 0x3C0E +0x8231C030 0x3C0F +0x8231C031 0x3C10 +0x8231C032 0x3C11 +0x8231C033 0x3C12 +0x8231C034 0x3C13 +0x8231C035 0x3C14 +0x8231C036 0x3C15 +0x8231C037 0x3C16 +0x8231C038 0x3C17 +0x8231C039 0x3C18 +0x8231C130 0x3C19 +0x8231C131 0x3C1A +0x8231C132 0x3C1B +0x8231C133 0x3C1C +0x8231C134 0x3C1D +0x8231C135 0x3C1E +0x8231C136 0x3C1F +0x8231C137 0x3C20 +0x8231C138 0x3C21 +0x8231C139 0x3C22 +0x8231C230 0x3C23 +0x8231C231 0x3C24 +0x8231C232 0x3C25 +0x8231C233 0x3C26 +0x8231C234 0x3C27 +0x8231C235 0x3C28 +0x8231C236 0x3C29 +0x8231C237 0x3C2A +0x8231C238 0x3C2B +0x8231C239 0x3C2C +0x8231C330 0x3C2D +0x8231C331 0x3C2E +0x8231C332 0x3C2F +0x8231C333 0x3C30 +0x8231C334 0x3C31 +0x8231C335 0x3C32 +0x8231C336 0x3C33 +0x8231C337 0x3C34 +0x8231C338 0x3C35 +0x8231C339 0x3C36 +0x8231C430 0x3C37 +0x8231C431 0x3C38 +0x8231C432 0x3C39 +0x8231C433 0x3C3A +0x8231C434 0x3C3B +0x8231C435 0x3C3C +0x8231C436 0x3C3D +0x8231C437 0x3C3E +0x8231C438 0x3C3F +0x8231C439 0x3C40 +0x8231C530 0x3C41 +0x8231C531 0x3C42 +0x8231C532 0x3C43 +0x8231C533 0x3C44 +0x8231C534 0x3C45 +0x8231C535 0x3C46 +0x8231C536 0x3C47 +0x8231C537 0x3C48 +0x8231C538 0x3C49 +0x8231C539 0x3C4A +0x8231C630 0x3C4B +0x8231C631 0x3C4C +0x8231C632 0x3C4D +0x8231C633 0x3C4E +0x8231C634 0x3C4F +0x8231C635 0x3C50 +0x8231C636 0x3C51 +0x8231C637 0x3C52 +0x8231C638 0x3C53 +0x8231C639 0x3C54 +0x8231C730 0x3C55 +0x8231C731 0x3C56 +0x8231C732 0x3C57 +0x8231C733 0x3C58 +0x8231C734 0x3C59 +0x8231C735 0x3C5A +0x8231C736 0x3C5B +0x8231C737 0x3C5C +0x8231C738 0x3C5D +0x8231C739 0x3C5E +0x8231C830 0x3C5F +0x8231C831 0x3C60 +0x8231C832 0x3C61 +0x8231C833 0x3C62 +0x8231C834 0x3C63 +0x8231C835 0x3C64 +0x8231C836 0x3C65 +0x8231C837 0x3C66 +0x8231C838 0x3C67 +0x8231C839 0x3C68 +0x8231C930 0x3C69 +0x8231C931 0x3C6A +0x8231C932 0x3C6B +0x8231C933 0x3C6C +0x8231C934 0x3C6D +0x8231C935 0x3C6F +0x8231C936 0x3C70 +0x8231C937 0x3C71 +0x8231C938 0x3C72 +0x8231C939 0x3C73 +0x8231CA30 0x3C74 +0x8231CA31 0x3C75 +0x8231CA32 0x3C76 +0x8231CA33 0x3C77 +0x8231CA34 0x3C78 +0x8231CA35 0x3C79 +0x8231CA36 0x3C7A +0x8231CA37 0x3C7B +0x8231CA38 0x3C7C +0x8231CA39 0x3C7D +0x8231CB30 0x3C7E +0x8231CB31 0x3C7F +0x8231CB32 0x3C80 +0x8231CB33 0x3C81 +0x8231CB34 0x3C82 +0x8231CB35 0x3C83 +0x8231CB36 0x3C84 +0x8231CB37 0x3C85 +0x8231CB38 0x3C86 +0x8231CB39 0x3C87 +0x8231CC30 0x3C88 +0x8231CC31 0x3C89 +0x8231CC32 0x3C8A +0x8231CC33 0x3C8B +0x8231CC34 0x3C8C +0x8231CC35 0x3C8D +0x8231CC36 0x3C8E +0x8231CC37 0x3C8F +0x8231CC38 0x3C90 +0x8231CC39 0x3C91 +0x8231CD30 0x3C92 +0x8231CD31 0x3C93 +0x8231CD32 0x3C94 +0x8231CD33 0x3C95 +0x8231CD34 0x3C96 +0x8231CD35 0x3C97 +0x8231CD36 0x3C98 +0x8231CD37 0x3C99 +0x8231CD38 0x3C9A +0x8231CD39 0x3C9B +0x8231CE30 0x3C9C +0x8231CE31 0x3C9D +0x8231CE32 0x3C9E +0x8231CE33 0x3C9F +0x8231CE34 0x3CA0 +0x8231CE35 0x3CA1 +0x8231CE36 0x3CA2 +0x8231CE37 0x3CA3 +0x8231CE38 0x3CA4 +0x8231CE39 0x3CA5 +0x8231CF30 0x3CA6 +0x8231CF31 0x3CA7 +0x8231CF32 0x3CA8 +0x8231CF33 0x3CA9 +0x8231CF34 0x3CAA +0x8231CF35 0x3CAB +0x8231CF36 0x3CAC +0x8231CF37 0x3CAD +0x8231CF38 0x3CAE +0x8231CF39 0x3CAF +0x8231D030 0x3CB0 +0x8231D031 0x3CB1 +0x8231D032 0x3CB2 +0x8231D033 0x3CB3 +0x8231D034 0x3CB4 +0x8231D035 0x3CB5 +0x8231D036 0x3CB6 +0x8231D037 0x3CB7 +0x8231D038 0x3CB8 +0x8231D039 0x3CB9 +0x8231D130 0x3CBA +0x8231D131 0x3CBB +0x8231D132 0x3CBC +0x8231D133 0x3CBD +0x8231D134 0x3CBE +0x8231D135 0x3CBF +0x8231D136 0x3CC0 +0x8231D137 0x3CC1 +0x8231D138 0x3CC2 +0x8231D139 0x3CC3 +0x8231D230 0x3CC4 +0x8231D231 0x3CC5 +0x8231D232 0x3CC6 +0x8231D233 0x3CC7 +0x8231D234 0x3CC8 +0x8231D235 0x3CC9 +0x8231D236 0x3CCA +0x8231D237 0x3CCB +0x8231D238 0x3CCC +0x8231D239 0x3CCD +0x8231D330 0x3CCE +0x8231D331 0x3CCF +0x8231D332 0x3CD0 +0x8231D333 0x3CD1 +0x8231D334 0x3CD2 +0x8231D335 0x3CD3 +0x8231D336 0x3CD4 +0x8231D337 0x3CD5 +0x8231D338 0x3CD6 +0x8231D339 0x3CD7 +0x8231D430 0x3CD8 +0x8231D431 0x3CD9 +0x8231D432 0x3CDA +0x8231D433 0x3CDB +0x8231D434 0x3CDC +0x8231D435 0x3CDD +0x8231D436 0x3CDE +0x8231D437 0x3CDF +0x8231D438 0x3CE1 +0x8231D439 0x3CE2 +0x8231D530 0x3CE3 +0x8231D531 0x3CE4 +0x8231D532 0x3CE5 +0x8231D533 0x3CE6 +0x8231D534 0x3CE7 +0x8231D535 0x3CE8 +0x8231D536 0x3CE9 +0x8231D537 0x3CEA +0x8231D538 0x3CEB +0x8231D539 0x3CEC +0x8231D630 0x3CED +0x8231D631 0x3CEE +0x8231D632 0x3CEF +0x8231D633 0x3CF0 +0x8231D634 0x3CF1 +0x8231D635 0x3CF2 +0x8231D636 0x3CF3 +0x8231D637 0x3CF4 +0x8231D638 0x3CF5 +0x8231D639 0x3CF6 +0x8231D730 0x3CF7 +0x8231D731 0x3CF8 +0x8231D732 0x3CF9 +0x8231D733 0x3CFA +0x8231D734 0x3CFB +0x8231D735 0x3CFC +0x8231D736 0x3CFD +0x8231D737 0x3CFE +0x8231D738 0x3CFF +0x8231D739 0x3D00 +0x8231D830 0x3D01 +0x8231D831 0x3D02 +0x8231D832 0x3D03 +0x8231D833 0x3D04 +0x8231D834 0x3D05 +0x8231D835 0x3D06 +0x8231D836 0x3D07 +0x8231D837 0x3D08 +0x8231D838 0x3D09 +0x8231D839 0x3D0A +0x8231D930 0x3D0B +0x8231D931 0x3D0C +0x8231D932 0x3D0D +0x8231D933 0x3D0E +0x8231D934 0x3D0F +0x8231D935 0x3D10 +0x8231D936 0x3D11 +0x8231D937 0x3D12 +0x8231D938 0x3D13 +0x8231D939 0x3D14 +0x8231DA30 0x3D15 +0x8231DA31 0x3D16 +0x8231DA32 0x3D17 +0x8231DA33 0x3D18 +0x8231DA34 0x3D19 +0x8231DA35 0x3D1A +0x8231DA36 0x3D1B +0x8231DA37 0x3D1C +0x8231DA38 0x3D1D +0x8231DA39 0x3D1E +0x8231DB30 0x3D1F +0x8231DB31 0x3D20 +0x8231DB32 0x3D21 +0x8231DB33 0x3D22 +0x8231DB34 0x3D23 +0x8231DB35 0x3D24 +0x8231DB36 0x3D25 +0x8231DB37 0x3D26 +0x8231DB38 0x3D27 +0x8231DB39 0x3D28 +0x8231DC30 0x3D29 +0x8231DC31 0x3D2A +0x8231DC32 0x3D2B +0x8231DC33 0x3D2C +0x8231DC34 0x3D2D +0x8231DC35 0x3D2E +0x8231DC36 0x3D2F +0x8231DC37 0x3D30 +0x8231DC38 0x3D31 +0x8231DC39 0x3D32 +0x8231DD30 0x3D33 +0x8231DD31 0x3D34 +0x8231DD32 0x3D35 +0x8231DD33 0x3D36 +0x8231DD34 0x3D37 +0x8231DD35 0x3D38 +0x8231DD36 0x3D39 +0x8231DD37 0x3D3A +0x8231DD38 0x3D3B +0x8231DD39 0x3D3C +0x8231DE30 0x3D3D +0x8231DE31 0x3D3E +0x8231DE32 0x3D3F +0x8231DE33 0x3D40 +0x8231DE34 0x3D41 +0x8231DE35 0x3D42 +0x8231DE36 0x3D43 +0x8231DE37 0x3D44 +0x8231DE38 0x3D45 +0x8231DE39 0x3D46 +0x8231DF30 0x3D47 +0x8231DF31 0x3D48 +0x8231DF32 0x3D49 +0x8231DF33 0x3D4A +0x8231DF34 0x3D4B +0x8231DF35 0x3D4C +0x8231DF36 0x3D4D +0x8231DF37 0x3D4E +0x8231DF38 0x3D4F +0x8231DF39 0x3D50 +0x8231E030 0x3D51 +0x8231E031 0x3D52 +0x8231E032 0x3D53 +0x8231E033 0x3D54 +0x8231E034 0x3D55 +0x8231E035 0x3D56 +0x8231E036 0x3D57 +0x8231E037 0x3D58 +0x8231E038 0x3D59 +0x8231E039 0x3D5A +0x8231E130 0x3D5B +0x8231E131 0x3D5C +0x8231E132 0x3D5D +0x8231E133 0x3D5E +0x8231E134 0x3D5F +0x8231E135 0x3D60 +0x8231E136 0x3D61 +0x8231E137 0x3D62 +0x8231E138 0x3D63 +0x8231E139 0x3D64 +0x8231E230 0x3D65 +0x8231E231 0x3D66 +0x8231E232 0x3D67 +0x8231E233 0x3D68 +0x8231E234 0x3D69 +0x8231E235 0x3D6A +0x8231E236 0x3D6B +0x8231E237 0x3D6C +0x8231E238 0x3D6D +0x8231E239 0x3D6E +0x8231E330 0x3D6F +0x8231E331 0x3D70 +0x8231E332 0x3D71 +0x8231E333 0x3D72 +0x8231E334 0x3D73 +0x8231E335 0x3D74 +0x8231E336 0x3D75 +0x8231E337 0x3D76 +0x8231E338 0x3D77 +0x8231E339 0x3D78 +0x8231E430 0x3D79 +0x8231E431 0x3D7A +0x8231E432 0x3D7B +0x8231E433 0x3D7C +0x8231E434 0x3D7D +0x8231E435 0x3D7E +0x8231E436 0x3D7F +0x8231E437 0x3D80 +0x8231E438 0x3D81 +0x8231E439 0x3D82 +0x8231E530 0x3D83 +0x8231E531 0x3D84 +0x8231E532 0x3D85 +0x8231E533 0x3D86 +0x8231E534 0x3D87 +0x8231E535 0x3D88 +0x8231E536 0x3D89 +0x8231E537 0x3D8A +0x8231E538 0x3D8B +0x8231E539 0x3D8C +0x8231E630 0x3D8D +0x8231E631 0x3D8E +0x8231E632 0x3D8F +0x8231E633 0x3D90 +0x8231E634 0x3D91 +0x8231E635 0x3D92 +0x8231E636 0x3D93 +0x8231E637 0x3D94 +0x8231E638 0x3D95 +0x8231E639 0x3D96 +0x8231E730 0x3D97 +0x8231E731 0x3D98 +0x8231E732 0x3D99 +0x8231E733 0x3D9A +0x8231E734 0x3D9B +0x8231E735 0x3D9C +0x8231E736 0x3D9D +0x8231E737 0x3D9E +0x8231E738 0x3D9F +0x8231E739 0x3DA0 +0x8231E830 0x3DA1 +0x8231E831 0x3DA2 +0x8231E832 0x3DA3 +0x8231E833 0x3DA4 +0x8231E834 0x3DA5 +0x8231E835 0x3DA6 +0x8231E836 0x3DA7 +0x8231E837 0x3DA8 +0x8231E838 0x3DA9 +0x8231E839 0x3DAA +0x8231E930 0x3DAB +0x8231E931 0x3DAC +0x8231E932 0x3DAD +0x8231E933 0x3DAE +0x8231E934 0x3DAF +0x8231E935 0x3DB0 +0x8231E936 0x3DB1 +0x8231E937 0x3DB2 +0x8231E938 0x3DB3 +0x8231E939 0x3DB4 +0x8231EA30 0x3DB5 +0x8231EA31 0x3DB6 +0x8231EA32 0x3DB7 +0x8231EA33 0x3DB8 +0x8231EA34 0x3DB9 +0x8231EA35 0x3DBA +0x8231EA36 0x3DBB +0x8231EA37 0x3DBC +0x8231EA38 0x3DBD +0x8231EA39 0x3DBE +0x8231EB30 0x3DBF +0x8231EB31 0x3DC0 +0x8231EB32 0x3DC1 +0x8231EB33 0x3DC2 +0x8231EB34 0x3DC3 +0x8231EB35 0x3DC4 +0x8231EB36 0x3DC5 +0x8231EB37 0x3DC6 +0x8231EB38 0x3DC7 +0x8231EB39 0x3DC8 +0x8231EC30 0x3DC9 +0x8231EC31 0x3DCA +0x8231EC32 0x3DCB +0x8231EC33 0x3DCC +0x8231EC34 0x3DCD +0x8231EC35 0x3DCE +0x8231EC36 0x3DCF +0x8231EC37 0x3DD0 +0x8231EC38 0x3DD1 +0x8231EC39 0x3DD2 +0x8231ED30 0x3DD3 +0x8231ED31 0x3DD4 +0x8231ED32 0x3DD5 +0x8231ED33 0x3DD6 +0x8231ED34 0x3DD7 +0x8231ED35 0x3DD8 +0x8231ED36 0x3DD9 +0x8231ED37 0x3DDA +0x8231ED38 0x3DDB +0x8231ED39 0x3DDC +0x8231EE30 0x3DDD +0x8231EE31 0x3DDE +0x8231EE32 0x3DDF +0x8231EE33 0x3DE0 +0x8231EE34 0x3DE1 +0x8231EE35 0x3DE2 +0x8231EE36 0x3DE3 +0x8231EE37 0x3DE4 +0x8231EE38 0x3DE5 +0x8231EE39 0x3DE6 +0x8231EF30 0x3DE7 +0x8231EF31 0x3DE8 +0x8231EF32 0x3DE9 +0x8231EF33 0x3DEA +0x8231EF34 0x3DEB +0x8231EF35 0x3DEC +0x8231EF36 0x3DED +0x8231EF37 0x3DEE +0x8231EF38 0x3DEF +0x8231EF39 0x3DF0 +0x8231F030 0x3DF1 +0x8231F031 0x3DF2 +0x8231F032 0x3DF3 +0x8231F033 0x3DF4 +0x8231F034 0x3DF5 +0x8231F035 0x3DF6 +0x8231F036 0x3DF7 +0x8231F037 0x3DF8 +0x8231F038 0x3DF9 +0x8231F039 0x3DFA +0x8231F130 0x3DFB +0x8231F131 0x3DFC +0x8231F132 0x3DFD +0x8231F133 0x3DFE +0x8231F134 0x3DFF +0x8231F135 0x3E00 +0x8231F136 0x3E01 +0x8231F137 0x3E02 +0x8231F138 0x3E03 +0x8231F139 0x3E04 +0x8231F230 0x3E05 +0x8231F231 0x3E06 +0x8231F232 0x3E07 +0x8231F233 0x3E08 +0x8231F234 0x3E09 +0x8231F235 0x3E0A +0x8231F236 0x3E0B +0x8231F237 0x3E0C +0x8231F238 0x3E0D +0x8231F239 0x3E0E +0x8231F330 0x3E0F +0x8231F331 0x3E10 +0x8231F332 0x3E11 +0x8231F333 0x3E12 +0x8231F334 0x3E13 +0x8231F335 0x3E14 +0x8231F336 0x3E15 +0x8231F337 0x3E16 +0x8231F338 0x3E17 +0x8231F339 0x3E18 +0x8231F430 0x3E19 +0x8231F431 0x3E1A +0x8231F432 0x3E1B +0x8231F433 0x3E1C +0x8231F434 0x3E1D +0x8231F435 0x3E1E +0x8231F436 0x3E1F +0x8231F437 0x3E20 +0x8231F438 0x3E21 +0x8231F439 0x3E22 +0x8231F530 0x3E23 +0x8231F531 0x3E24 +0x8231F532 0x3E25 +0x8231F533 0x3E26 +0x8231F534 0x3E27 +0x8231F535 0x3E28 +0x8231F536 0x3E29 +0x8231F537 0x3E2A +0x8231F538 0x3E2B +0x8231F539 0x3E2C +0x8231F630 0x3E2D +0x8231F631 0x3E2E +0x8231F632 0x3E2F +0x8231F633 0x3E30 +0x8231F634 0x3E31 +0x8231F635 0x3E32 +0x8231F636 0x3E33 +0x8231F637 0x3E34 +0x8231F638 0x3E35 +0x8231F639 0x3E36 +0x8231F730 0x3E37 +0x8231F731 0x3E38 +0x8231F732 0x3E39 +0x8231F733 0x3E3A +0x8231F734 0x3E3B +0x8231F735 0x3E3C +0x8231F736 0x3E3D +0x8231F737 0x3E3E +0x8231F738 0x3E3F +0x8231F739 0x3E40 +0x8231F830 0x3E41 +0x8231F831 0x3E42 +0x8231F832 0x3E43 +0x8231F833 0x3E44 +0x8231F834 0x3E45 +0x8231F835 0x3E46 +0x8231F836 0x3E47 +0x8231F837 0x3E48 +0x8231F838 0x3E49 +0x8231F839 0x3E4A +0x8231F930 0x3E4B +0x8231F931 0x3E4C +0x8231F932 0x3E4D +0x8231F933 0x3E4E +0x8231F934 0x3E4F +0x8231F935 0x3E50 +0x8231F936 0x3E51 +0x8231F937 0x3E52 +0x8231F938 0x3E53 +0x8231F939 0x3E54 +0x8231FA30 0x3E55 +0x8231FA31 0x3E56 +0x8231FA32 0x3E57 +0x8231FA33 0x3E58 +0x8231FA34 0x3E59 +0x8231FA35 0x3E5A +0x8231FA36 0x3E5B +0x8231FA37 0x3E5C +0x8231FA38 0x3E5D +0x8231FA39 0x3E5E +0x8231FB30 0x3E5F +0x8231FB31 0x3E60 +0x8231FB32 0x3E61 +0x8231FB33 0x3E62 +0x8231FB34 0x3E63 +0x8231FB35 0x3E64 +0x8231FB36 0x3E65 +0x8231FB37 0x3E66 +0x8231FB38 0x3E67 +0x8231FB39 0x3E68 +0x8231FC30 0x3E69 +0x8231FC31 0x3E6A +0x8231FC32 0x3E6B +0x8231FC33 0x3E6C +0x8231FC34 0x3E6D +0x8231FC35 0x3E6E +0x8231FC36 0x3E6F +0x8231FC37 0x3E70 +0x8231FC38 0x3E71 +0x8231FC39 0x3E72 +0x8231FD30 0x3E73 +0x8231FD31 0x3E74 +0x8231FD32 0x3E75 +0x8231FD33 0x3E76 +0x8231FD34 0x3E77 +0x8231FD35 0x3E78 +0x8231FD36 0x3E79 +0x8231FD37 0x3E7A +0x8231FD38 0x3E7B +0x8231FD39 0x3E7C +0x8231FE30 0x3E7D +0x8231FE31 0x3E7E +0x8231FE32 0x3E7F +0x8231FE33 0x3E80 +0x8231FE34 0x3E81 +0x8231FE35 0x3E82 +0x8231FE36 0x3E83 +0x8231FE37 0x3E84 +0x8231FE38 0x3E85 +0x8231FE39 0x3E86 +0x82328130 0x3E87 +0x82328131 0x3E88 +0x82328132 0x3E89 +0x82328133 0x3E8A +0x82328134 0x3E8B +0x82328135 0x3E8C +0x82328136 0x3E8D +0x82328137 0x3E8E +0x82328138 0x3E8F +0x82328139 0x3E90 +0x82328230 0x3E91 +0x82328231 0x3E92 +0x82328232 0x3E93 +0x82328233 0x3E94 +0x82328234 0x3E95 +0x82328235 0x3E96 +0x82328236 0x3E97 +0x82328237 0x3E98 +0x82328238 0x3E99 +0x82328239 0x3E9A +0x82328330 0x3E9B +0x82328331 0x3E9C +0x82328332 0x3E9D +0x82328333 0x3E9E +0x82328334 0x3E9F +0x82328335 0x3EA0 +0x82328336 0x3EA1 +0x82328337 0x3EA2 +0x82328338 0x3EA3 +0x82328339 0x3EA4 +0x82328430 0x3EA5 +0x82328431 0x3EA6 +0x82328432 0x3EA7 +0x82328433 0x3EA8 +0x82328434 0x3EA9 +0x82328435 0x3EAA +0x82328436 0x3EAB +0x82328437 0x3EAC +0x82328438 0x3EAD +0x82328439 0x3EAE +0x82328530 0x3EAF +0x82328531 0x3EB0 +0x82328532 0x3EB1 +0x82328533 0x3EB2 +0x82328534 0x3EB3 +0x82328535 0x3EB4 +0x82328536 0x3EB5 +0x82328537 0x3EB6 +0x82328538 0x3EB7 +0x82328539 0x3EB8 +0x82328630 0x3EB9 +0x82328631 0x3EBA +0x82328632 0x3EBB +0x82328633 0x3EBC +0x82328634 0x3EBD +0x82328635 0x3EBE +0x82328636 0x3EBF +0x82328637 0x3EC0 +0x82328638 0x3EC1 +0x82328639 0x3EC2 +0x82328730 0x3EC3 +0x82328731 0x3EC4 +0x82328732 0x3EC5 +0x82328733 0x3EC6 +0x82328734 0x3EC7 +0x82328735 0x3EC8 +0x82328736 0x3EC9 +0x82328737 0x3ECA +0x82328738 0x3ECB +0x82328739 0x3ECC +0x82328830 0x3ECD +0x82328831 0x3ECE +0x82328832 0x3ECF +0x82328833 0x3ED0 +0x82328834 0x3ED1 +0x82328835 0x3ED2 +0x82328836 0x3ED3 +0x82328837 0x3ED4 +0x82328838 0x3ED5 +0x82328839 0x3ED6 +0x82328930 0x3ED7 +0x82328931 0x3ED8 +0x82328932 0x3ED9 +0x82328933 0x3EDA +0x82328934 0x3EDB +0x82328935 0x3EDC +0x82328936 0x3EDD +0x82328937 0x3EDE +0x82328938 0x3EDF +0x82328939 0x3EE0 +0x82328A30 0x3EE1 +0x82328A31 0x3EE2 +0x82328A32 0x3EE3 +0x82328A33 0x3EE4 +0x82328A34 0x3EE5 +0x82328A35 0x3EE6 +0x82328A36 0x3EE7 +0x82328A37 0x3EE8 +0x82328A38 0x3EE9 +0x82328A39 0x3EEA +0x82328B30 0x3EEB +0x82328B31 0x3EEC +0x82328B32 0x3EED +0x82328B33 0x3EEE +0x82328B34 0x3EEF +0x82328B35 0x3EF0 +0x82328B36 0x3EF1 +0x82328B37 0x3EF2 +0x82328B38 0x3EF3 +0x82328B39 0x3EF4 +0x82328C30 0x3EF5 +0x82328C31 0x3EF6 +0x82328C32 0x3EF7 +0x82328C33 0x3EF8 +0x82328C34 0x3EF9 +0x82328C35 0x3EFA +0x82328C36 0x3EFB +0x82328C37 0x3EFC +0x82328C38 0x3EFD +0x82328C39 0x3EFE +0x82328D30 0x3EFF +0x82328D31 0x3F00 +0x82328D32 0x3F01 +0x82328D33 0x3F02 +0x82328D34 0x3F03 +0x82328D35 0x3F04 +0x82328D36 0x3F05 +0x82328D37 0x3F06 +0x82328D38 0x3F07 +0x82328D39 0x3F08 +0x82328E30 0x3F09 +0x82328E31 0x3F0A +0x82328E32 0x3F0B +0x82328E33 0x3F0C +0x82328E34 0x3F0D +0x82328E35 0x3F0E +0x82328E36 0x3F0F +0x82328E37 0x3F10 +0x82328E38 0x3F11 +0x82328E39 0x3F12 +0x82328F30 0x3F13 +0x82328F31 0x3F14 +0x82328F32 0x3F15 +0x82328F33 0x3F16 +0x82328F34 0x3F17 +0x82328F35 0x3F18 +0x82328F36 0x3F19 +0x82328F37 0x3F1A +0x82328F38 0x3F1B +0x82328F39 0x3F1C +0x82329030 0x3F1D +0x82329031 0x3F1E +0x82329032 0x3F1F +0x82329033 0x3F20 +0x82329034 0x3F21 +0x82329035 0x3F22 +0x82329036 0x3F23 +0x82329037 0x3F24 +0x82329038 0x3F25 +0x82329039 0x3F26 +0x82329130 0x3F27 +0x82329131 0x3F28 +0x82329132 0x3F29 +0x82329133 0x3F2A +0x82329134 0x3F2B +0x82329135 0x3F2C +0x82329136 0x3F2D +0x82329137 0x3F2E +0x82329138 0x3F2F +0x82329139 0x3F30 +0x82329230 0x3F31 +0x82329231 0x3F32 +0x82329232 0x3F33 +0x82329233 0x3F34 +0x82329234 0x3F35 +0x82329235 0x3F36 +0x82329236 0x3F37 +0x82329237 0x3F38 +0x82329238 0x3F39 +0x82329239 0x3F3A +0x82329330 0x3F3B +0x82329331 0x3F3C +0x82329332 0x3F3D +0x82329333 0x3F3E +0x82329334 0x3F3F +0x82329335 0x3F40 +0x82329336 0x3F41 +0x82329337 0x3F42 +0x82329338 0x3F43 +0x82329339 0x3F44 +0x82329430 0x3F45 +0x82329431 0x3F46 +0x82329432 0x3F47 +0x82329433 0x3F48 +0x82329434 0x3F49 +0x82329435 0x3F4A +0x82329436 0x3F4B +0x82329437 0x3F4C +0x82329438 0x3F4D +0x82329439 0x3F4E +0x82329530 0x3F4F +0x82329531 0x3F50 +0x82329532 0x3F51 +0x82329533 0x3F52 +0x82329534 0x3F53 +0x82329535 0x3F54 +0x82329536 0x3F55 +0x82329537 0x3F56 +0x82329538 0x3F57 +0x82329539 0x3F58 +0x82329630 0x3F59 +0x82329631 0x3F5A +0x82329632 0x3F5B +0x82329633 0x3F5C +0x82329634 0x3F5D +0x82329635 0x3F5E +0x82329636 0x3F5F +0x82329637 0x3F60 +0x82329638 0x3F61 +0x82329639 0x3F62 +0x82329730 0x3F63 +0x82329731 0x3F64 +0x82329732 0x3F65 +0x82329733 0x3F66 +0x82329734 0x3F67 +0x82329735 0x3F68 +0x82329736 0x3F69 +0x82329737 0x3F6A +0x82329738 0x3F6B +0x82329739 0x3F6C +0x82329830 0x3F6D +0x82329831 0x3F6E +0x82329832 0x3F6F +0x82329833 0x3F70 +0x82329834 0x3F71 +0x82329835 0x3F72 +0x82329836 0x3F73 +0x82329837 0x3F74 +0x82329838 0x3F75 +0x82329839 0x3F76 +0x82329930 0x3F77 +0x82329931 0x3F78 +0x82329932 0x3F79 +0x82329933 0x3F7A +0x82329934 0x3F7B +0x82329935 0x3F7C +0x82329936 0x3F7D +0x82329937 0x3F7E +0x82329938 0x3F7F +0x82329939 0x3F80 +0x82329A30 0x3F81 +0x82329A31 0x3F82 +0x82329A32 0x3F83 +0x82329A33 0x3F84 +0x82329A34 0x3F85 +0x82329A35 0x3F86 +0x82329A36 0x3F87 +0x82329A37 0x3F88 +0x82329A38 0x3F89 +0x82329A39 0x3F8A +0x82329B30 0x3F8B +0x82329B31 0x3F8C +0x82329B32 0x3F8D +0x82329B33 0x3F8E +0x82329B34 0x3F8F +0x82329B35 0x3F90 +0x82329B36 0x3F91 +0x82329B37 0x3F92 +0x82329B38 0x3F93 +0x82329B39 0x3F94 +0x82329C30 0x3F95 +0x82329C31 0x3F96 +0x82329C32 0x3F97 +0x82329C33 0x3F98 +0x82329C34 0x3F99 +0x82329C35 0x3F9A +0x82329C36 0x3F9B +0x82329C37 0x3F9C +0x82329C38 0x3F9D +0x82329C39 0x3F9E +0x82329D30 0x3F9F +0x82329D31 0x3FA0 +0x82329D32 0x3FA1 +0x82329D33 0x3FA2 +0x82329D34 0x3FA3 +0x82329D35 0x3FA4 +0x82329D36 0x3FA5 +0x82329D37 0x3FA6 +0x82329D38 0x3FA7 +0x82329D39 0x3FA8 +0x82329E30 0x3FA9 +0x82329E31 0x3FAA +0x82329E32 0x3FAB +0x82329E33 0x3FAC +0x82329E34 0x3FAD +0x82329E35 0x3FAE +0x82329E36 0x3FAF +0x82329E37 0x3FB0 +0x82329E38 0x3FB1 +0x82329E39 0x3FB2 +0x82329F30 0x3FB3 +0x82329F31 0x3FB4 +0x82329F32 0x3FB5 +0x82329F33 0x3FB6 +0x82329F34 0x3FB7 +0x82329F35 0x3FB8 +0x82329F36 0x3FB9 +0x82329F37 0x3FBA +0x82329F38 0x3FBB +0x82329F39 0x3FBC +0x8232A030 0x3FBD +0x8232A031 0x3FBE +0x8232A032 0x3FBF +0x8232A033 0x3FC0 +0x8232A034 0x3FC1 +0x8232A035 0x3FC2 +0x8232A036 0x3FC3 +0x8232A037 0x3FC4 +0x8232A038 0x3FC5 +0x8232A039 0x3FC6 +0x8232A130 0x3FC7 +0x8232A131 0x3FC8 +0x8232A132 0x3FC9 +0x8232A133 0x3FCA +0x8232A134 0x3FCB +0x8232A135 0x3FCC +0x8232A136 0x3FCD +0x8232A137 0x3FCE +0x8232A138 0x3FCF +0x8232A139 0x3FD0 +0x8232A230 0x3FD1 +0x8232A231 0x3FD2 +0x8232A232 0x3FD3 +0x8232A233 0x3FD4 +0x8232A234 0x3FD5 +0x8232A235 0x3FD6 +0x8232A236 0x3FD7 +0x8232A237 0x3FD8 +0x8232A238 0x3FD9 +0x8232A239 0x3FDA +0x8232A330 0x3FDB +0x8232A331 0x3FDC +0x8232A332 0x3FDD +0x8232A333 0x3FDE +0x8232A334 0x3FDF +0x8232A335 0x3FE0 +0x8232A336 0x3FE1 +0x8232A337 0x3FE2 +0x8232A338 0x3FE3 +0x8232A339 0x3FE4 +0x8232A430 0x3FE5 +0x8232A431 0x3FE6 +0x8232A432 0x3FE7 +0x8232A433 0x3FE8 +0x8232A434 0x3FE9 +0x8232A435 0x3FEA +0x8232A436 0x3FEB +0x8232A437 0x3FEC +0x8232A438 0x3FED +0x8232A439 0x3FEE +0x8232A530 0x3FEF +0x8232A531 0x3FF0 +0x8232A532 0x3FF1 +0x8232A533 0x3FF2 +0x8232A534 0x3FF3 +0x8232A535 0x3FF4 +0x8232A536 0x3FF5 +0x8232A537 0x3FF6 +0x8232A538 0x3FF7 +0x8232A539 0x3FF8 +0x8232A630 0x3FF9 +0x8232A631 0x3FFA +0x8232A632 0x3FFB +0x8232A633 0x3FFC +0x8232A634 0x3FFD +0x8232A635 0x3FFE +0x8232A636 0x3FFF +0x8232A637 0x4000 +0x8232A638 0x4001 +0x8232A639 0x4002 +0x8232A730 0x4003 +0x8232A731 0x4004 +0x8232A732 0x4005 +0x8232A733 0x4006 +0x8232A734 0x4007 +0x8232A735 0x4008 +0x8232A736 0x4009 +0x8232A737 0x400A +0x8232A738 0x400B +0x8232A739 0x400C +0x8232A830 0x400D +0x8232A831 0x400E +0x8232A832 0x400F +0x8232A833 0x4010 +0x8232A834 0x4011 +0x8232A835 0x4012 +0x8232A836 0x4013 +0x8232A837 0x4014 +0x8232A838 0x4015 +0x8232A839 0x4016 +0x8232A930 0x4017 +0x8232A931 0x4018 +0x8232A932 0x4019 +0x8232A933 0x401A +0x8232A934 0x401B +0x8232A935 0x401C +0x8232A936 0x401D +0x8232A937 0x401E +0x8232A938 0x401F +0x8232A939 0x4020 +0x8232AA30 0x4021 +0x8232AA31 0x4022 +0x8232AA32 0x4023 +0x8232AA33 0x4024 +0x8232AA34 0x4025 +0x8232AA35 0x4026 +0x8232AA36 0x4027 +0x8232AA37 0x4028 +0x8232AA38 0x4029 +0x8232AA39 0x402A +0x8232AB30 0x402B +0x8232AB31 0x402C +0x8232AB32 0x402D +0x8232AB33 0x402E +0x8232AB34 0x402F +0x8232AB35 0x4030 +0x8232AB36 0x4031 +0x8232AB37 0x4032 +0x8232AB38 0x4033 +0x8232AB39 0x4034 +0x8232AC30 0x4035 +0x8232AC31 0x4036 +0x8232AC32 0x4037 +0x8232AC33 0x4038 +0x8232AC34 0x4039 +0x8232AC35 0x403A +0x8232AC36 0x403B +0x8232AC37 0x403C +0x8232AC38 0x403D +0x8232AC39 0x403E +0x8232AD30 0x403F +0x8232AD31 0x4040 +0x8232AD32 0x4041 +0x8232AD33 0x4042 +0x8232AD34 0x4043 +0x8232AD35 0x4044 +0x8232AD36 0x4045 +0x8232AD37 0x4046 +0x8232AD38 0x4047 +0x8232AD39 0x4048 +0x8232AE30 0x4049 +0x8232AE31 0x404A +0x8232AE32 0x404B +0x8232AE33 0x404C +0x8232AE34 0x404D +0x8232AE35 0x404E +0x8232AE36 0x404F +0x8232AE37 0x4050 +0x8232AE38 0x4051 +0x8232AE39 0x4052 +0x8232AF30 0x4053 +0x8232AF31 0x4054 +0x8232AF32 0x4055 +0x8232AF33 0x4057 +0x8232AF34 0x4058 +0x8232AF35 0x4059 +0x8232AF36 0x405A +0x8232AF37 0x405B +0x8232AF38 0x405C +0x8232AF39 0x405D +0x8232B030 0x405E +0x8232B031 0x405F +0x8232B032 0x4060 +0x8232B033 0x4061 +0x8232B034 0x4062 +0x8232B035 0x4063 +0x8232B036 0x4064 +0x8232B037 0x4065 +0x8232B038 0x4066 +0x8232B039 0x4067 +0x8232B130 0x4068 +0x8232B131 0x4069 +0x8232B132 0x406A +0x8232B133 0x406B +0x8232B134 0x406C +0x8232B135 0x406D +0x8232B136 0x406E +0x8232B137 0x406F +0x8232B138 0x4070 +0x8232B139 0x4071 +0x8232B230 0x4072 +0x8232B231 0x4073 +0x8232B232 0x4074 +0x8232B233 0x4075 +0x8232B234 0x4076 +0x8232B235 0x4077 +0x8232B236 0x4078 +0x8232B237 0x4079 +0x8232B238 0x407A +0x8232B239 0x407B +0x8232B330 0x407C +0x8232B331 0x407D +0x8232B332 0x407E +0x8232B333 0x407F +0x8232B334 0x4080 +0x8232B335 0x4081 +0x8232B336 0x4082 +0x8232B337 0x4083 +0x8232B338 0x4084 +0x8232B339 0x4085 +0x8232B430 0x4086 +0x8232B431 0x4087 +0x8232B432 0x4088 +0x8232B433 0x4089 +0x8232B434 0x408A +0x8232B435 0x408B +0x8232B436 0x408C +0x8232B437 0x408D +0x8232B438 0x408E +0x8232B439 0x408F +0x8232B530 0x4090 +0x8232B531 0x4091 +0x8232B532 0x4092 +0x8232B533 0x4093 +0x8232B534 0x4094 +0x8232B535 0x4095 +0x8232B536 0x4096 +0x8232B537 0x4097 +0x8232B538 0x4098 +0x8232B539 0x4099 +0x8232B630 0x409A +0x8232B631 0x409B +0x8232B632 0x409C +0x8232B633 0x409D +0x8232B634 0x409E +0x8232B635 0x409F +0x8232B636 0x40A0 +0x8232B637 0x40A1 +0x8232B638 0x40A2 +0x8232B639 0x40A3 +0x8232B730 0x40A4 +0x8232B731 0x40A5 +0x8232B732 0x40A6 +0x8232B733 0x40A7 +0x8232B734 0x40A8 +0x8232B735 0x40A9 +0x8232B736 0x40AA +0x8232B737 0x40AB +0x8232B738 0x40AC +0x8232B739 0x40AD +0x8232B830 0x40AE +0x8232B831 0x40AF +0x8232B832 0x40B0 +0x8232B833 0x40B1 +0x8232B834 0x40B2 +0x8232B835 0x40B3 +0x8232B836 0x40B4 +0x8232B837 0x40B5 +0x8232B838 0x40B6 +0x8232B839 0x40B7 +0x8232B930 0x40B8 +0x8232B931 0x40B9 +0x8232B932 0x40BA +0x8232B933 0x40BB +0x8232B934 0x40BC +0x8232B935 0x40BD +0x8232B936 0x40BE +0x8232B937 0x40BF +0x8232B938 0x40C0 +0x8232B939 0x40C1 +0x8232BA30 0x40C2 +0x8232BA31 0x40C3 +0x8232BA32 0x40C4 +0x8232BA33 0x40C5 +0x8232BA34 0x40C6 +0x8232BA35 0x40C7 +0x8232BA36 0x40C8 +0x8232BA37 0x40C9 +0x8232BA38 0x40CA +0x8232BA39 0x40CB +0x8232BB30 0x40CC +0x8232BB31 0x40CD +0x8232BB32 0x40CE +0x8232BB33 0x40CF +0x8232BB34 0x40D0 +0x8232BB35 0x40D1 +0x8232BB36 0x40D2 +0x8232BB37 0x40D3 +0x8232BB38 0x40D4 +0x8232BB39 0x40D5 +0x8232BC30 0x40D6 +0x8232BC31 0x40D7 +0x8232BC32 0x40D8 +0x8232BC33 0x40D9 +0x8232BC34 0x40DA +0x8232BC35 0x40DB +0x8232BC36 0x40DC +0x8232BC37 0x40DD +0x8232BC38 0x40DE +0x8232BC39 0x40DF +0x8232BD30 0x40E0 +0x8232BD31 0x40E1 +0x8232BD32 0x40E2 +0x8232BD33 0x40E3 +0x8232BD34 0x40E4 +0x8232BD35 0x40E5 +0x8232BD36 0x40E6 +0x8232BD37 0x40E7 +0x8232BD38 0x40E8 +0x8232BD39 0x40E9 +0x8232BE30 0x40EA +0x8232BE31 0x40EB +0x8232BE32 0x40EC +0x8232BE33 0x40ED +0x8232BE34 0x40EE +0x8232BE35 0x40EF +0x8232BE36 0x40F0 +0x8232BE37 0x40F1 +0x8232BE38 0x40F2 +0x8232BE39 0x40F3 +0x8232BF30 0x40F4 +0x8232BF31 0x40F5 +0x8232BF32 0x40F6 +0x8232BF33 0x40F7 +0x8232BF34 0x40F8 +0x8232BF35 0x40F9 +0x8232BF36 0x40FA +0x8232BF37 0x40FB +0x8232BF38 0x40FC +0x8232BF39 0x40FD +0x8232C030 0x40FE +0x8232C031 0x40FF +0x8232C032 0x4100 +0x8232C033 0x4101 +0x8232C034 0x4102 +0x8232C035 0x4103 +0x8232C036 0x4104 +0x8232C037 0x4105 +0x8232C038 0x4106 +0x8232C039 0x4107 +0x8232C130 0x4108 +0x8232C131 0x4109 +0x8232C132 0x410A +0x8232C133 0x410B +0x8232C134 0x410C +0x8232C135 0x410D +0x8232C136 0x410E +0x8232C137 0x410F +0x8232C138 0x4110 +0x8232C139 0x4111 +0x8232C230 0x4112 +0x8232C231 0x4113 +0x8232C232 0x4114 +0x8232C233 0x4115 +0x8232C234 0x4116 +0x8232C235 0x4117 +0x8232C236 0x4118 +0x8232C237 0x4119 +0x8232C238 0x411A +0x8232C239 0x411B +0x8232C330 0x411C +0x8232C331 0x411D +0x8232C332 0x411E +0x8232C333 0x411F +0x8232C334 0x4120 +0x8232C335 0x4121 +0x8232C336 0x4122 +0x8232C337 0x4123 +0x8232C338 0x4124 +0x8232C339 0x4125 +0x8232C430 0x4126 +0x8232C431 0x4127 +0x8232C432 0x4128 +0x8232C433 0x4129 +0x8232C434 0x412A +0x8232C435 0x412B +0x8232C436 0x412C +0x8232C437 0x412D +0x8232C438 0x412E +0x8232C439 0x412F +0x8232C530 0x4130 +0x8232C531 0x4131 +0x8232C532 0x4132 +0x8232C533 0x4133 +0x8232C534 0x4134 +0x8232C535 0x4135 +0x8232C536 0x4136 +0x8232C537 0x4137 +0x8232C538 0x4138 +0x8232C539 0x4139 +0x8232C630 0x413A +0x8232C631 0x413B +0x8232C632 0x413C +0x8232C633 0x413D +0x8232C634 0x413E +0x8232C635 0x413F +0x8232C636 0x4140 +0x8232C637 0x4141 +0x8232C638 0x4142 +0x8232C639 0x4143 +0x8232C730 0x4144 +0x8232C731 0x4145 +0x8232C732 0x4146 +0x8232C733 0x4147 +0x8232C734 0x4148 +0x8232C735 0x4149 +0x8232C736 0x414A +0x8232C737 0x414B +0x8232C738 0x414C +0x8232C739 0x414D +0x8232C830 0x414E +0x8232C831 0x414F +0x8232C832 0x4150 +0x8232C833 0x4151 +0x8232C834 0x4152 +0x8232C835 0x4153 +0x8232C836 0x4154 +0x8232C837 0x4155 +0x8232C838 0x4156 +0x8232C839 0x4157 +0x8232C930 0x4158 +0x8232C931 0x4159 +0x8232C932 0x415A +0x8232C933 0x415B +0x8232C934 0x415C +0x8232C935 0x415D +0x8232C936 0x415E +0x8232C937 0x4160 +0x8232C938 0x4161 +0x8232C939 0x4162 +0x8232CA30 0x4163 +0x8232CA31 0x4164 +0x8232CA32 0x4165 +0x8232CA33 0x4166 +0x8232CA34 0x4167 +0x8232CA35 0x4168 +0x8232CA36 0x4169 +0x8232CA37 0x416A +0x8232CA38 0x416B +0x8232CA39 0x416C +0x8232CB30 0x416D +0x8232CB31 0x416E +0x8232CB32 0x416F +0x8232CB33 0x4170 +0x8232CB34 0x4171 +0x8232CB35 0x4172 +0x8232CB36 0x4173 +0x8232CB37 0x4174 +0x8232CB38 0x4175 +0x8232CB39 0x4176 +0x8232CC30 0x4177 +0x8232CC31 0x4178 +0x8232CC32 0x4179 +0x8232CC33 0x417A +0x8232CC34 0x417B +0x8232CC35 0x417C +0x8232CC36 0x417D +0x8232CC37 0x417E +0x8232CC38 0x417F +0x8232CC39 0x4180 +0x8232CD30 0x4181 +0x8232CD31 0x4182 +0x8232CD32 0x4183 +0x8232CD33 0x4184 +0x8232CD34 0x4185 +0x8232CD35 0x4186 +0x8232CD36 0x4187 +0x8232CD37 0x4188 +0x8232CD38 0x4189 +0x8232CD39 0x418A +0x8232CE30 0x418B +0x8232CE31 0x418C +0x8232CE32 0x418D +0x8232CE33 0x418E +0x8232CE34 0x418F +0x8232CE35 0x4190 +0x8232CE36 0x4191 +0x8232CE37 0x4192 +0x8232CE38 0x4193 +0x8232CE39 0x4194 +0x8232CF30 0x4195 +0x8232CF31 0x4196 +0x8232CF32 0x4197 +0x8232CF33 0x4198 +0x8232CF34 0x4199 +0x8232CF35 0x419A +0x8232CF36 0x419B +0x8232CF37 0x419C +0x8232CF38 0x419D +0x8232CF39 0x419E +0x8232D030 0x419F +0x8232D031 0x41A0 +0x8232D032 0x41A1 +0x8232D033 0x41A2 +0x8232D034 0x41A3 +0x8232D035 0x41A4 +0x8232D036 0x41A5 +0x8232D037 0x41A6 +0x8232D038 0x41A7 +0x8232D039 0x41A8 +0x8232D130 0x41A9 +0x8232D131 0x41AA +0x8232D132 0x41AB +0x8232D133 0x41AC +0x8232D134 0x41AD +0x8232D135 0x41AE +0x8232D136 0x41AF +0x8232D137 0x41B0 +0x8232D138 0x41B1 +0x8232D139 0x41B2 +0x8232D230 0x41B3 +0x8232D231 0x41B4 +0x8232D232 0x41B5 +0x8232D233 0x41B6 +0x8232D234 0x41B7 +0x8232D235 0x41B8 +0x8232D236 0x41B9 +0x8232D237 0x41BA +0x8232D238 0x41BB +0x8232D239 0x41BC +0x8232D330 0x41BD +0x8232D331 0x41BE +0x8232D332 0x41BF +0x8232D333 0x41C0 +0x8232D334 0x41C1 +0x8232D335 0x41C2 +0x8232D336 0x41C3 +0x8232D337 0x41C4 +0x8232D338 0x41C5 +0x8232D339 0x41C6 +0x8232D430 0x41C7 +0x8232D431 0x41C8 +0x8232D432 0x41C9 +0x8232D433 0x41CA +0x8232D434 0x41CB +0x8232D435 0x41CC +0x8232D436 0x41CD +0x8232D437 0x41CE +0x8232D438 0x41CF +0x8232D439 0x41D0 +0x8232D530 0x41D1 +0x8232D531 0x41D2 +0x8232D532 0x41D3 +0x8232D533 0x41D4 +0x8232D534 0x41D5 +0x8232D535 0x41D6 +0x8232D536 0x41D7 +0x8232D537 0x41D8 +0x8232D538 0x41D9 +0x8232D539 0x41DA +0x8232D630 0x41DB +0x8232D631 0x41DC +0x8232D632 0x41DD +0x8232D633 0x41DE +0x8232D634 0x41DF +0x8232D635 0x41E0 +0x8232D636 0x41E1 +0x8232D637 0x41E2 +0x8232D638 0x41E3 +0x8232D639 0x41E4 +0x8232D730 0x41E5 +0x8232D731 0x41E6 +0x8232D732 0x41E7 +0x8232D733 0x41E8 +0x8232D734 0x41E9 +0x8232D735 0x41EA +0x8232D736 0x41EB +0x8232D737 0x41EC +0x8232D738 0x41ED +0x8232D739 0x41EE +0x8232D830 0x41EF +0x8232D831 0x41F0 +0x8232D832 0x41F1 +0x8232D833 0x41F2 +0x8232D834 0x41F3 +0x8232D835 0x41F4 +0x8232D836 0x41F5 +0x8232D837 0x41F6 +0x8232D838 0x41F7 +0x8232D839 0x41F8 +0x8232D930 0x41F9 +0x8232D931 0x41FA +0x8232D932 0x41FB +0x8232D933 0x41FC +0x8232D934 0x41FD +0x8232D935 0x41FE +0x8232D936 0x41FF +0x8232D937 0x4200 +0x8232D938 0x4201 +0x8232D939 0x4202 +0x8232DA30 0x4203 +0x8232DA31 0x4204 +0x8232DA32 0x4205 +0x8232DA33 0x4206 +0x8232DA34 0x4207 +0x8232DA35 0x4208 +0x8232DA36 0x4209 +0x8232DA37 0x420A +0x8232DA38 0x420B +0x8232DA39 0x420C +0x8232DB30 0x420D +0x8232DB31 0x420E +0x8232DB32 0x420F +0x8232DB33 0x4210 +0x8232DB34 0x4211 +0x8232DB35 0x4212 +0x8232DB36 0x4213 +0x8232DB37 0x4214 +0x8232DB38 0x4215 +0x8232DB39 0x4216 +0x8232DC30 0x4217 +0x8232DC31 0x4218 +0x8232DC32 0x4219 +0x8232DC33 0x421A +0x8232DC34 0x421B +0x8232DC35 0x421C +0x8232DC36 0x421D +0x8232DC37 0x421E +0x8232DC38 0x421F +0x8232DC39 0x4220 +0x8232DD30 0x4221 +0x8232DD31 0x4222 +0x8232DD32 0x4223 +0x8232DD33 0x4224 +0x8232DD34 0x4225 +0x8232DD35 0x4226 +0x8232DD36 0x4227 +0x8232DD37 0x4228 +0x8232DD38 0x4229 +0x8232DD39 0x422A +0x8232DE30 0x422B +0x8232DE31 0x422C +0x8232DE32 0x422D +0x8232DE33 0x422E +0x8232DE34 0x422F +0x8232DE35 0x4230 +0x8232DE36 0x4231 +0x8232DE37 0x4232 +0x8232DE38 0x4233 +0x8232DE39 0x4234 +0x8232DF30 0x4235 +0x8232DF31 0x4236 +0x8232DF32 0x4237 +0x8232DF33 0x4238 +0x8232DF34 0x4239 +0x8232DF35 0x423A +0x8232DF36 0x423B +0x8232DF37 0x423C +0x8232DF38 0x423D +0x8232DF39 0x423E +0x8232E030 0x423F +0x8232E031 0x4240 +0x8232E032 0x4241 +0x8232E033 0x4242 +0x8232E034 0x4243 +0x8232E035 0x4244 +0x8232E036 0x4245 +0x8232E037 0x4246 +0x8232E038 0x4247 +0x8232E039 0x4248 +0x8232E130 0x4249 +0x8232E131 0x424A +0x8232E132 0x424B +0x8232E133 0x424C +0x8232E134 0x424D +0x8232E135 0x424E +0x8232E136 0x424F +0x8232E137 0x4250 +0x8232E138 0x4251 +0x8232E139 0x4252 +0x8232E230 0x4253 +0x8232E231 0x4254 +0x8232E232 0x4255 +0x8232E233 0x4256 +0x8232E234 0x4257 +0x8232E235 0x4258 +0x8232E236 0x4259 +0x8232E237 0x425A +0x8232E238 0x425B +0x8232E239 0x425C +0x8232E330 0x425D +0x8232E331 0x425E +0x8232E332 0x425F +0x8232E333 0x4260 +0x8232E334 0x4261 +0x8232E335 0x4262 +0x8232E336 0x4263 +0x8232E337 0x4264 +0x8232E338 0x4265 +0x8232E339 0x4266 +0x8232E430 0x4267 +0x8232E431 0x4268 +0x8232E432 0x4269 +0x8232E433 0x426A +0x8232E434 0x426B +0x8232E435 0x426C +0x8232E436 0x426D +0x8232E437 0x426E +0x8232E438 0x426F +0x8232E439 0x4270 +0x8232E530 0x4271 +0x8232E531 0x4272 +0x8232E532 0x4273 +0x8232E533 0x4274 +0x8232E534 0x4275 +0x8232E535 0x4276 +0x8232E536 0x4277 +0x8232E537 0x4278 +0x8232E538 0x4279 +0x8232E539 0x427A +0x8232E630 0x427B +0x8232E631 0x427C +0x8232E632 0x427D +0x8232E633 0x427E +0x8232E634 0x427F +0x8232E635 0x4280 +0x8232E636 0x4281 +0x8232E637 0x4282 +0x8232E638 0x4283 +0x8232E639 0x4284 +0x8232E730 0x4285 +0x8232E731 0x4286 +0x8232E732 0x4287 +0x8232E733 0x4288 +0x8232E734 0x4289 +0x8232E735 0x428A +0x8232E736 0x428B +0x8232E737 0x428C +0x8232E738 0x428D +0x8232E739 0x428E +0x8232E830 0x428F +0x8232E831 0x4290 +0x8232E832 0x4291 +0x8232E833 0x4292 +0x8232E834 0x4293 +0x8232E835 0x4294 +0x8232E836 0x4295 +0x8232E837 0x4296 +0x8232E838 0x4297 +0x8232E839 0x4298 +0x8232E930 0x4299 +0x8232E931 0x429A +0x8232E932 0x429B +0x8232E933 0x429C +0x8232E934 0x429D +0x8232E935 0x429E +0x8232E936 0x429F +0x8232E937 0x42A0 +0x8232E938 0x42A1 +0x8232E939 0x42A2 +0x8232EA30 0x42A3 +0x8232EA31 0x42A4 +0x8232EA32 0x42A5 +0x8232EA33 0x42A6 +0x8232EA34 0x42A7 +0x8232EA35 0x42A8 +0x8232EA36 0x42A9 +0x8232EA37 0x42AA +0x8232EA38 0x42AB +0x8232EA39 0x42AC +0x8232EB30 0x42AD +0x8232EB31 0x42AE +0x8232EB32 0x42AF +0x8232EB33 0x42B0 +0x8232EB34 0x42B1 +0x8232EB35 0x42B2 +0x8232EB36 0x42B3 +0x8232EB37 0x42B4 +0x8232EB38 0x42B5 +0x8232EB39 0x42B6 +0x8232EC30 0x42B7 +0x8232EC31 0x42B8 +0x8232EC32 0x42B9 +0x8232EC33 0x42BA +0x8232EC34 0x42BB +0x8232EC35 0x42BC +0x8232EC36 0x42BD +0x8232EC37 0x42BE +0x8232EC38 0x42BF +0x8232EC39 0x42C0 +0x8232ED30 0x42C1 +0x8232ED31 0x42C2 +0x8232ED32 0x42C3 +0x8232ED33 0x42C4 +0x8232ED34 0x42C5 +0x8232ED35 0x42C6 +0x8232ED36 0x42C7 +0x8232ED37 0x42C8 +0x8232ED38 0x42C9 +0x8232ED39 0x42CA +0x8232EE30 0x42CB +0x8232EE31 0x42CC +0x8232EE32 0x42CD +0x8232EE33 0x42CE +0x8232EE34 0x42CF +0x8232EE35 0x42D0 +0x8232EE36 0x42D1 +0x8232EE37 0x42D2 +0x8232EE38 0x42D3 +0x8232EE39 0x42D4 +0x8232EF30 0x42D5 +0x8232EF31 0x42D6 +0x8232EF32 0x42D7 +0x8232EF33 0x42D8 +0x8232EF34 0x42D9 +0x8232EF35 0x42DA +0x8232EF36 0x42DB +0x8232EF37 0x42DC +0x8232EF38 0x42DD +0x8232EF39 0x42DE +0x8232F030 0x42DF +0x8232F031 0x42E0 +0x8232F032 0x42E1 +0x8232F033 0x42E2 +0x8232F034 0x42E3 +0x8232F035 0x42E4 +0x8232F036 0x42E5 +0x8232F037 0x42E6 +0x8232F038 0x42E7 +0x8232F039 0x42E8 +0x8232F130 0x42E9 +0x8232F131 0x42EA +0x8232F132 0x42EB +0x8232F133 0x42EC +0x8232F134 0x42ED +0x8232F135 0x42EE +0x8232F136 0x42EF +0x8232F137 0x42F0 +0x8232F138 0x42F1 +0x8232F139 0x42F2 +0x8232F230 0x42F3 +0x8232F231 0x42F4 +0x8232F232 0x42F5 +0x8232F233 0x42F6 +0x8232F234 0x42F7 +0x8232F235 0x42F8 +0x8232F236 0x42F9 +0x8232F237 0x42FA +0x8232F238 0x42FB +0x8232F239 0x42FC +0x8232F330 0x42FD +0x8232F331 0x42FE +0x8232F332 0x42FF +0x8232F333 0x4300 +0x8232F334 0x4301 +0x8232F335 0x4302 +0x8232F336 0x4303 +0x8232F337 0x4304 +0x8232F338 0x4305 +0x8232F339 0x4306 +0x8232F430 0x4307 +0x8232F431 0x4308 +0x8232F432 0x4309 +0x8232F433 0x430A +0x8232F434 0x430B +0x8232F435 0x430C +0x8232F436 0x430D +0x8232F437 0x430E +0x8232F438 0x430F +0x8232F439 0x4310 +0x8232F530 0x4311 +0x8232F531 0x4312 +0x8232F532 0x4313 +0x8232F533 0x4314 +0x8232F534 0x4315 +0x8232F535 0x4316 +0x8232F536 0x4317 +0x8232F537 0x4318 +0x8232F538 0x4319 +0x8232F539 0x431A +0x8232F630 0x431B +0x8232F631 0x431C +0x8232F632 0x431D +0x8232F633 0x431E +0x8232F634 0x431F +0x8232F635 0x4320 +0x8232F636 0x4321 +0x8232F637 0x4322 +0x8232F638 0x4323 +0x8232F639 0x4324 +0x8232F730 0x4325 +0x8232F731 0x4326 +0x8232F732 0x4327 +0x8232F733 0x4328 +0x8232F734 0x4329 +0x8232F735 0x432A +0x8232F736 0x432B +0x8232F737 0x432C +0x8232F738 0x432D +0x8232F739 0x432E +0x8232F830 0x432F +0x8232F831 0x4330 +0x8232F832 0x4331 +0x8232F833 0x4332 +0x8232F834 0x4333 +0x8232F835 0x4334 +0x8232F836 0x4335 +0x8232F837 0x4336 +0x8232F838 0x4338 +0x8232F839 0x4339 +0x8232F930 0x433A +0x8232F931 0x433B +0x8232F932 0x433C +0x8232F933 0x433D +0x8232F934 0x433E +0x8232F935 0x433F +0x8232F936 0x4340 +0x8232F937 0x4341 +0x8232F938 0x4342 +0x8232F939 0x4343 +0x8232FA30 0x4344 +0x8232FA31 0x4345 +0x8232FA32 0x4346 +0x8232FA33 0x4347 +0x8232FA34 0x4348 +0x8232FA35 0x4349 +0x8232FA36 0x434A +0x8232FA37 0x434B +0x8232FA38 0x434C +0x8232FA39 0x434D +0x8232FB30 0x434E +0x8232FB31 0x434F +0x8232FB32 0x4350 +0x8232FB33 0x4351 +0x8232FB34 0x4352 +0x8232FB35 0x4353 +0x8232FB36 0x4354 +0x8232FB37 0x4355 +0x8232FB38 0x4356 +0x8232FB39 0x4357 +0x8232FC30 0x4358 +0x8232FC31 0x4359 +0x8232FC32 0x435A +0x8232FC33 0x435B +0x8232FC34 0x435C +0x8232FC35 0x435D +0x8232FC36 0x435E +0x8232FC37 0x435F +0x8232FC38 0x4360 +0x8232FC39 0x4361 +0x8232FD30 0x4362 +0x8232FD31 0x4363 +0x8232FD32 0x4364 +0x8232FD33 0x4365 +0x8232FD34 0x4366 +0x8232FD35 0x4367 +0x8232FD36 0x4368 +0x8232FD37 0x4369 +0x8232FD38 0x436A +0x8232FD39 0x436B +0x8232FE30 0x436C +0x8232FE31 0x436D +0x8232FE32 0x436E +0x8232FE33 0x436F +0x8232FE34 0x4370 +0x8232FE35 0x4371 +0x8232FE36 0x4372 +0x8232FE37 0x4373 +0x8232FE38 0x4374 +0x8232FE39 0x4375 +0x82338130 0x4376 +0x82338131 0x4377 +0x82338132 0x4378 +0x82338133 0x4379 +0x82338134 0x437A +0x82338135 0x437B +0x82338136 0x437C +0x82338137 0x437D +0x82338138 0x437E +0x82338139 0x437F +0x82338230 0x4380 +0x82338231 0x4381 +0x82338232 0x4382 +0x82338233 0x4383 +0x82338234 0x4384 +0x82338235 0x4385 +0x82338236 0x4386 +0x82338237 0x4387 +0x82338238 0x4388 +0x82338239 0x4389 +0x82338330 0x438A +0x82338331 0x438B +0x82338332 0x438C +0x82338333 0x438D +0x82338334 0x438E +0x82338335 0x438F +0x82338336 0x4390 +0x82338337 0x4391 +0x82338338 0x4392 +0x82338339 0x4393 +0x82338430 0x4394 +0x82338431 0x4395 +0x82338432 0x4396 +0x82338433 0x4397 +0x82338434 0x4398 +0x82338435 0x4399 +0x82338436 0x439A +0x82338437 0x439B +0x82338438 0x439C +0x82338439 0x439D +0x82338530 0x439E +0x82338531 0x439F +0x82338532 0x43A0 +0x82338533 0x43A1 +0x82338534 0x43A2 +0x82338535 0x43A3 +0x82338536 0x43A4 +0x82338537 0x43A5 +0x82338538 0x43A6 +0x82338539 0x43A7 +0x82338630 0x43A8 +0x82338631 0x43A9 +0x82338632 0x43AA +0x82338633 0x43AB +0x82338634 0x43AD +0x82338635 0x43AE +0x82338636 0x43AF +0x82338637 0x43B0 +0x82338638 0x43B2 +0x82338639 0x43B3 +0x82338730 0x43B4 +0x82338731 0x43B5 +0x82338732 0x43B6 +0x82338733 0x43B7 +0x82338734 0x43B8 +0x82338735 0x43B9 +0x82338736 0x43BA +0x82338737 0x43BB +0x82338738 0x43BC +0x82338739 0x43BD +0x82338830 0x43BE +0x82338831 0x43BF +0x82338832 0x43C0 +0x82338833 0x43C1 +0x82338834 0x43C2 +0x82338835 0x43C3 +0x82338836 0x43C4 +0x82338837 0x43C5 +0x82338838 0x43C6 +0x82338839 0x43C7 +0x82338930 0x43C8 +0x82338931 0x43C9 +0x82338932 0x43CA +0x82338933 0x43CB +0x82338934 0x43CC +0x82338935 0x43CD +0x82338936 0x43CE +0x82338937 0x43CF +0x82338938 0x43D0 +0x82338939 0x43D1 +0x82338A30 0x43D2 +0x82338A31 0x43D3 +0x82338A32 0x43D4 +0x82338A33 0x43D5 +0x82338A34 0x43D6 +0x82338A35 0x43D7 +0x82338A36 0x43D8 +0x82338A37 0x43D9 +0x82338A38 0x43DA +0x82338A39 0x43DB +0x82338B30 0x43DC +0x82338B31 0x43DE +0x82338B32 0x43DF +0x82338B33 0x43E0 +0x82338B34 0x43E1 +0x82338B35 0x43E2 +0x82338B36 0x43E3 +0x82338B37 0x43E4 +0x82338B38 0x43E5 +0x82338B39 0x43E6 +0x82338C30 0x43E7 +0x82338C31 0x43E8 +0x82338C32 0x43E9 +0x82338C33 0x43EA +0x82338C34 0x43EB +0x82338C35 0x43EC +0x82338C36 0x43ED +0x82338C37 0x43EE +0x82338C38 0x43EF +0x82338C39 0x43F0 +0x82338D30 0x43F1 +0x82338D31 0x43F2 +0x82338D32 0x43F3 +0x82338D33 0x43F4 +0x82338D34 0x43F5 +0x82338D35 0x43F6 +0x82338D36 0x43F7 +0x82338D37 0x43F8 +0x82338D38 0x43F9 +0x82338D39 0x43FA +0x82338E30 0x43FB +0x82338E31 0x43FC +0x82338E32 0x43FD +0x82338E33 0x43FE +0x82338E34 0x43FF +0x82338E35 0x4400 +0x82338E36 0x4401 +0x82338E37 0x4402 +0x82338E38 0x4403 +0x82338E39 0x4404 +0x82338F30 0x4405 +0x82338F31 0x4406 +0x82338F32 0x4407 +0x82338F33 0x4408 +0x82338F34 0x4409 +0x82338F35 0x440A +0x82338F36 0x440B +0x82338F37 0x440C +0x82338F38 0x440D +0x82338F39 0x440E +0x82339030 0x440F +0x82339031 0x4410 +0x82339032 0x4411 +0x82339033 0x4412 +0x82339034 0x4413 +0x82339035 0x4414 +0x82339036 0x4415 +0x82339037 0x4416 +0x82339038 0x4417 +0x82339039 0x4418 +0x82339130 0x4419 +0x82339131 0x441A +0x82339132 0x441B +0x82339133 0x441C +0x82339134 0x441D +0x82339135 0x441E +0x82339136 0x441F +0x82339137 0x4420 +0x82339138 0x4421 +0x82339139 0x4422 +0x82339230 0x4423 +0x82339231 0x4424 +0x82339232 0x4425 +0x82339233 0x4426 +0x82339234 0x4427 +0x82339235 0x4428 +0x82339236 0x4429 +0x82339237 0x442A +0x82339238 0x442B +0x82339239 0x442C +0x82339330 0x442D +0x82339331 0x442E +0x82339332 0x442F +0x82339333 0x4430 +0x82339334 0x4431 +0x82339335 0x4432 +0x82339336 0x4433 +0x82339337 0x4434 +0x82339338 0x4435 +0x82339339 0x4436 +0x82339430 0x4437 +0x82339431 0x4438 +0x82339432 0x4439 +0x82339433 0x443A +0x82339434 0x443B +0x82339435 0x443C +0x82339436 0x443D +0x82339437 0x443E +0x82339438 0x443F +0x82339439 0x4440 +0x82339530 0x4441 +0x82339531 0x4442 +0x82339532 0x4443 +0x82339533 0x4444 +0x82339534 0x4445 +0x82339535 0x4446 +0x82339536 0x4447 +0x82339537 0x4448 +0x82339538 0x4449 +0x82339539 0x444A +0x82339630 0x444B +0x82339631 0x444C +0x82339632 0x444D +0x82339633 0x444E +0x82339634 0x444F +0x82339635 0x4450 +0x82339636 0x4451 +0x82339637 0x4452 +0x82339638 0x4453 +0x82339639 0x4454 +0x82339730 0x4455 +0x82339731 0x4456 +0x82339732 0x4457 +0x82339733 0x4458 +0x82339734 0x4459 +0x82339735 0x445A +0x82339736 0x445B +0x82339737 0x445C +0x82339738 0x445D +0x82339739 0x445E +0x82339830 0x445F +0x82339831 0x4460 +0x82339832 0x4461 +0x82339833 0x4462 +0x82339834 0x4463 +0x82339835 0x4464 +0x82339836 0x4465 +0x82339837 0x4466 +0x82339838 0x4467 +0x82339839 0x4468 +0x82339930 0x4469 +0x82339931 0x446A +0x82339932 0x446B +0x82339933 0x446C +0x82339934 0x446D +0x82339935 0x446E +0x82339936 0x446F +0x82339937 0x4470 +0x82339938 0x4471 +0x82339939 0x4472 +0x82339A30 0x4473 +0x82339A31 0x4474 +0x82339A32 0x4475 +0x82339A33 0x4476 +0x82339A34 0x4477 +0x82339A35 0x4478 +0x82339A36 0x4479 +0x82339A37 0x447A +0x82339A38 0x447B +0x82339A39 0x447C +0x82339B30 0x447D +0x82339B31 0x447E +0x82339B32 0x447F +0x82339B33 0x4480 +0x82339B34 0x4481 +0x82339B35 0x4482 +0x82339B36 0x4483 +0x82339B37 0x4484 +0x82339B38 0x4485 +0x82339B39 0x4486 +0x82339C30 0x4487 +0x82339C31 0x4488 +0x82339C32 0x4489 +0x82339C33 0x448A +0x82339C34 0x448B +0x82339C35 0x448C +0x82339C36 0x448D +0x82339C37 0x448E +0x82339C38 0x448F +0x82339C39 0x4490 +0x82339D30 0x4491 +0x82339D31 0x4492 +0x82339D32 0x4493 +0x82339D33 0x4494 +0x82339D34 0x4495 +0x82339D35 0x4496 +0x82339D36 0x4497 +0x82339D37 0x4498 +0x82339D38 0x4499 +0x82339D39 0x449A +0x82339E30 0x449B +0x82339E31 0x449C +0x82339E32 0x449D +0x82339E33 0x449E +0x82339E34 0x449F +0x82339E35 0x44A0 +0x82339E36 0x44A1 +0x82339E37 0x44A2 +0x82339E38 0x44A3 +0x82339E39 0x44A4 +0x82339F30 0x44A5 +0x82339F31 0x44A6 +0x82339F32 0x44A7 +0x82339F33 0x44A8 +0x82339F34 0x44A9 +0x82339F35 0x44AA +0x82339F36 0x44AB +0x82339F37 0x44AC +0x82339F38 0x44AD +0x82339F39 0x44AE +0x8233A030 0x44AF +0x8233A031 0x44B0 +0x8233A032 0x44B1 +0x8233A033 0x44B2 +0x8233A034 0x44B3 +0x8233A035 0x44B4 +0x8233A036 0x44B5 +0x8233A037 0x44B6 +0x8233A038 0x44B7 +0x8233A039 0x44B8 +0x8233A130 0x44B9 +0x8233A131 0x44BA +0x8233A132 0x44BB +0x8233A133 0x44BC +0x8233A134 0x44BD +0x8233A135 0x44BE +0x8233A136 0x44BF +0x8233A137 0x44C0 +0x8233A138 0x44C1 +0x8233A139 0x44C2 +0x8233A230 0x44C3 +0x8233A231 0x44C4 +0x8233A232 0x44C5 +0x8233A233 0x44C6 +0x8233A234 0x44C7 +0x8233A235 0x44C8 +0x8233A236 0x44C9 +0x8233A237 0x44CA +0x8233A238 0x44CB +0x8233A239 0x44CC +0x8233A330 0x44CD +0x8233A331 0x44CE +0x8233A332 0x44CF +0x8233A333 0x44D0 +0x8233A334 0x44D1 +0x8233A335 0x44D2 +0x8233A336 0x44D3 +0x8233A337 0x44D4 +0x8233A338 0x44D5 +0x8233A339 0x44D7 +0x8233A430 0x44D8 +0x8233A431 0x44D9 +0x8233A432 0x44DA +0x8233A433 0x44DB +0x8233A434 0x44DC +0x8233A435 0x44DD +0x8233A436 0x44DE +0x8233A437 0x44DF +0x8233A438 0x44E0 +0x8233A439 0x44E1 +0x8233A530 0x44E2 +0x8233A531 0x44E3 +0x8233A532 0x44E4 +0x8233A533 0x44E5 +0x8233A534 0x44E6 +0x8233A535 0x44E7 +0x8233A536 0x44E8 +0x8233A537 0x44E9 +0x8233A538 0x44EA +0x8233A539 0x44EB +0x8233A630 0x44EC +0x8233A631 0x44ED +0x8233A632 0x44EE +0x8233A633 0x44EF +0x8233A634 0x44F0 +0x8233A635 0x44F1 +0x8233A636 0x44F2 +0x8233A637 0x44F3 +0x8233A638 0x44F4 +0x8233A639 0x44F5 +0x8233A730 0x44F6 +0x8233A731 0x44F7 +0x8233A732 0x44F8 +0x8233A733 0x44F9 +0x8233A734 0x44FA +0x8233A735 0x44FB +0x8233A736 0x44FC +0x8233A737 0x44FD +0x8233A738 0x44FE +0x8233A739 0x44FF +0x8233A830 0x4500 +0x8233A831 0x4501 +0x8233A832 0x4502 +0x8233A833 0x4503 +0x8233A834 0x4504 +0x8233A835 0x4505 +0x8233A836 0x4506 +0x8233A837 0x4507 +0x8233A838 0x4508 +0x8233A839 0x4509 +0x8233A930 0x450A +0x8233A931 0x450B +0x8233A932 0x450C +0x8233A933 0x450D +0x8233A934 0x450E +0x8233A935 0x450F +0x8233A936 0x4510 +0x8233A937 0x4511 +0x8233A938 0x4512 +0x8233A939 0x4513 +0x8233AA30 0x4514 +0x8233AA31 0x4515 +0x8233AA32 0x4516 +0x8233AA33 0x4517 +0x8233AA34 0x4518 +0x8233AA35 0x4519 +0x8233AA36 0x451A +0x8233AA37 0x451B +0x8233AA38 0x451C +0x8233AA39 0x451D +0x8233AB30 0x451E +0x8233AB31 0x451F +0x8233AB32 0x4520 +0x8233AB33 0x4521 +0x8233AB34 0x4522 +0x8233AB35 0x4523 +0x8233AB36 0x4524 +0x8233AB37 0x4525 +0x8233AB38 0x4526 +0x8233AB39 0x4527 +0x8233AC30 0x4528 +0x8233AC31 0x4529 +0x8233AC32 0x452A +0x8233AC33 0x452B +0x8233AC34 0x452C +0x8233AC35 0x452D +0x8233AC36 0x452E +0x8233AC37 0x452F +0x8233AC38 0x4530 +0x8233AC39 0x4531 +0x8233AD30 0x4532 +0x8233AD31 0x4533 +0x8233AD32 0x4534 +0x8233AD33 0x4535 +0x8233AD34 0x4536 +0x8233AD35 0x4537 +0x8233AD36 0x4538 +0x8233AD37 0x4539 +0x8233AD38 0x453A +0x8233AD39 0x453B +0x8233AE30 0x453C +0x8233AE31 0x453D +0x8233AE32 0x453E +0x8233AE33 0x453F +0x8233AE34 0x4540 +0x8233AE35 0x4541 +0x8233AE36 0x4542 +0x8233AE37 0x4543 +0x8233AE38 0x4544 +0x8233AE39 0x4545 +0x8233AF30 0x4546 +0x8233AF31 0x4547 +0x8233AF32 0x4548 +0x8233AF33 0x4549 +0x8233AF34 0x454A +0x8233AF35 0x454B +0x8233AF36 0x454C +0x8233AF37 0x454D +0x8233AF38 0x454E +0x8233AF39 0x454F +0x8233B030 0x4550 +0x8233B031 0x4551 +0x8233B032 0x4552 +0x8233B033 0x4553 +0x8233B034 0x4554 +0x8233B035 0x4555 +0x8233B036 0x4556 +0x8233B037 0x4557 +0x8233B038 0x4558 +0x8233B039 0x4559 +0x8233B130 0x455A +0x8233B131 0x455B +0x8233B132 0x455C +0x8233B133 0x455D +0x8233B134 0x455E +0x8233B135 0x455F +0x8233B136 0x4560 +0x8233B137 0x4561 +0x8233B138 0x4562 +0x8233B139 0x4563 +0x8233B230 0x4564 +0x8233B231 0x4565 +0x8233B232 0x4566 +0x8233B233 0x4567 +0x8233B234 0x4568 +0x8233B235 0x4569 +0x8233B236 0x456A +0x8233B237 0x456B +0x8233B238 0x456C +0x8233B239 0x456D +0x8233B330 0x456E +0x8233B331 0x456F +0x8233B332 0x4570 +0x8233B333 0x4571 +0x8233B334 0x4572 +0x8233B335 0x4573 +0x8233B336 0x4574 +0x8233B337 0x4575 +0x8233B338 0x4576 +0x8233B339 0x4577 +0x8233B430 0x4578 +0x8233B431 0x4579 +0x8233B432 0x457A +0x8233B433 0x457B +0x8233B434 0x457C +0x8233B435 0x457D +0x8233B436 0x457E +0x8233B437 0x457F +0x8233B438 0x4580 +0x8233B439 0x4581 +0x8233B530 0x4582 +0x8233B531 0x4583 +0x8233B532 0x4584 +0x8233B533 0x4585 +0x8233B534 0x4586 +0x8233B535 0x4587 +0x8233B536 0x4588 +0x8233B537 0x4589 +0x8233B538 0x458A +0x8233B539 0x458B +0x8233B630 0x458C +0x8233B631 0x458D +0x8233B632 0x458E +0x8233B633 0x458F +0x8233B634 0x4590 +0x8233B635 0x4591 +0x8233B636 0x4592 +0x8233B637 0x4593 +0x8233B638 0x4594 +0x8233B639 0x4595 +0x8233B730 0x4596 +0x8233B731 0x4597 +0x8233B732 0x4598 +0x8233B733 0x4599 +0x8233B734 0x459A +0x8233B735 0x459B +0x8233B736 0x459C +0x8233B737 0x459D +0x8233B738 0x459E +0x8233B739 0x459F +0x8233B830 0x45A0 +0x8233B831 0x45A1 +0x8233B832 0x45A2 +0x8233B833 0x45A3 +0x8233B834 0x45A4 +0x8233B835 0x45A5 +0x8233B836 0x45A6 +0x8233B837 0x45A7 +0x8233B838 0x45A8 +0x8233B839 0x45A9 +0x8233B930 0x45AA +0x8233B931 0x45AB +0x8233B932 0x45AC +0x8233B933 0x45AD +0x8233B934 0x45AE +0x8233B935 0x45AF +0x8233B936 0x45B0 +0x8233B937 0x45B1 +0x8233B938 0x45B2 +0x8233B939 0x45B3 +0x8233BA30 0x45B4 +0x8233BA31 0x45B5 +0x8233BA32 0x45B6 +0x8233BA33 0x45B7 +0x8233BA34 0x45B8 +0x8233BA35 0x45B9 +0x8233BA36 0x45BA +0x8233BA37 0x45BB +0x8233BA38 0x45BC +0x8233BA39 0x45BD +0x8233BB30 0x45BE +0x8233BB31 0x45BF +0x8233BB32 0x45C0 +0x8233BB33 0x45C1 +0x8233BB34 0x45C2 +0x8233BB35 0x45C3 +0x8233BB36 0x45C4 +0x8233BB37 0x45C5 +0x8233BB38 0x45C6 +0x8233BB39 0x45C7 +0x8233BC30 0x45C8 +0x8233BC31 0x45C9 +0x8233BC32 0x45CA +0x8233BC33 0x45CB +0x8233BC34 0x45CC +0x8233BC35 0x45CD +0x8233BC36 0x45CE +0x8233BC37 0x45CF +0x8233BC38 0x45D0 +0x8233BC39 0x45D1 +0x8233BD30 0x45D2 +0x8233BD31 0x45D3 +0x8233BD32 0x45D4 +0x8233BD33 0x45D5 +0x8233BD34 0x45D6 +0x8233BD35 0x45D7 +0x8233BD36 0x45D8 +0x8233BD37 0x45D9 +0x8233BD38 0x45DA +0x8233BD39 0x45DB +0x8233BE30 0x45DC +0x8233BE31 0x45DD +0x8233BE32 0x45DE +0x8233BE33 0x45DF +0x8233BE34 0x45E0 +0x8233BE35 0x45E1 +0x8233BE36 0x45E2 +0x8233BE37 0x45E3 +0x8233BE38 0x45E4 +0x8233BE39 0x45E5 +0x8233BF30 0x45E6 +0x8233BF31 0x45E7 +0x8233BF32 0x45E8 +0x8233BF33 0x45E9 +0x8233BF34 0x45EA +0x8233BF35 0x45EB +0x8233BF36 0x45EC +0x8233BF37 0x45ED +0x8233BF38 0x45EE +0x8233BF39 0x45EF +0x8233C030 0x45F0 +0x8233C031 0x45F1 +0x8233C032 0x45F2 +0x8233C033 0x45F3 +0x8233C034 0x45F4 +0x8233C035 0x45F5 +0x8233C036 0x45F6 +0x8233C037 0x45F7 +0x8233C038 0x45F8 +0x8233C039 0x45F9 +0x8233C130 0x45FA +0x8233C131 0x45FB +0x8233C132 0x45FC +0x8233C133 0x45FD +0x8233C134 0x45FE +0x8233C135 0x45FF +0x8233C136 0x4600 +0x8233C137 0x4601 +0x8233C138 0x4602 +0x8233C139 0x4603 +0x8233C230 0x4604 +0x8233C231 0x4605 +0x8233C232 0x4606 +0x8233C233 0x4607 +0x8233C234 0x4608 +0x8233C235 0x4609 +0x8233C236 0x460A +0x8233C237 0x460B +0x8233C238 0x460C +0x8233C239 0x460D +0x8233C330 0x460E +0x8233C331 0x460F +0x8233C332 0x4610 +0x8233C333 0x4611 +0x8233C334 0x4612 +0x8233C335 0x4613 +0x8233C336 0x4614 +0x8233C337 0x4615 +0x8233C338 0x4616 +0x8233C339 0x4617 +0x8233C430 0x4618 +0x8233C431 0x4619 +0x8233C432 0x461A +0x8233C433 0x461B +0x8233C434 0x461C +0x8233C435 0x461D +0x8233C436 0x461E +0x8233C437 0x461F +0x8233C438 0x4620 +0x8233C439 0x4621 +0x8233C530 0x4622 +0x8233C531 0x4623 +0x8233C532 0x4624 +0x8233C533 0x4625 +0x8233C534 0x4626 +0x8233C535 0x4627 +0x8233C536 0x4628 +0x8233C537 0x4629 +0x8233C538 0x462A +0x8233C539 0x462B +0x8233C630 0x462C +0x8233C631 0x462D +0x8233C632 0x462E +0x8233C633 0x462F +0x8233C634 0x4630 +0x8233C635 0x4631 +0x8233C636 0x4632 +0x8233C637 0x4633 +0x8233C638 0x4634 +0x8233C639 0x4635 +0x8233C730 0x4636 +0x8233C731 0x4637 +0x8233C732 0x4638 +0x8233C733 0x4639 +0x8233C734 0x463A +0x8233C735 0x463B +0x8233C736 0x463C +0x8233C737 0x463D +0x8233C738 0x463E +0x8233C739 0x463F +0x8233C830 0x4640 +0x8233C831 0x4641 +0x8233C832 0x4642 +0x8233C833 0x4643 +0x8233C834 0x4644 +0x8233C835 0x4645 +0x8233C836 0x4646 +0x8233C837 0x4647 +0x8233C838 0x4648 +0x8233C839 0x4649 +0x8233C930 0x464A +0x8233C931 0x464B +0x8233C932 0x464D +0x8233C933 0x464E +0x8233C934 0x464F +0x8233C935 0x4650 +0x8233C936 0x4651 +0x8233C937 0x4652 +0x8233C938 0x4653 +0x8233C939 0x4654 +0x8233CA30 0x4655 +0x8233CA31 0x4656 +0x8233CA32 0x4657 +0x8233CA33 0x4658 +0x8233CA34 0x4659 +0x8233CA35 0x465A +0x8233CA36 0x465B +0x8233CA37 0x465C +0x8233CA38 0x465D +0x8233CA39 0x465E +0x8233CB30 0x465F +0x8233CB31 0x4660 +0x8233CB32 0x4662 +0x8233CB33 0x4663 +0x8233CB34 0x4664 +0x8233CB35 0x4665 +0x8233CB36 0x4666 +0x8233CB37 0x4667 +0x8233CB38 0x4668 +0x8233CB39 0x4669 +0x8233CC30 0x466A +0x8233CC31 0x466B +0x8233CC32 0x466C +0x8233CC33 0x466D +0x8233CC34 0x466E +0x8233CC35 0x466F +0x8233CC36 0x4670 +0x8233CC37 0x4671 +0x8233CC38 0x4672 +0x8233CC39 0x4673 +0x8233CD30 0x4674 +0x8233CD31 0x4675 +0x8233CD32 0x4676 +0x8233CD33 0x4677 +0x8233CD34 0x4678 +0x8233CD35 0x4679 +0x8233CD36 0x467A +0x8233CD37 0x467B +0x8233CD38 0x467C +0x8233CD39 0x467D +0x8233CE30 0x467E +0x8233CE31 0x467F +0x8233CE32 0x4680 +0x8233CE33 0x4681 +0x8233CE34 0x4682 +0x8233CE35 0x4683 +0x8233CE36 0x4684 +0x8233CE37 0x4685 +0x8233CE38 0x4686 +0x8233CE39 0x4687 +0x8233CF30 0x4688 +0x8233CF31 0x4689 +0x8233CF32 0x468A +0x8233CF33 0x468B +0x8233CF34 0x468C +0x8233CF35 0x468D +0x8233CF36 0x468E +0x8233CF37 0x468F +0x8233CF38 0x4690 +0x8233CF39 0x4691 +0x8233D030 0x4692 +0x8233D031 0x4693 +0x8233D032 0x4694 +0x8233D033 0x4695 +0x8233D034 0x4696 +0x8233D035 0x4697 +0x8233D036 0x4698 +0x8233D037 0x4699 +0x8233D038 0x469A +0x8233D039 0x469B +0x8233D130 0x469C +0x8233D131 0x469D +0x8233D132 0x469E +0x8233D133 0x469F +0x8233D134 0x46A0 +0x8233D135 0x46A1 +0x8233D136 0x46A2 +0x8233D137 0x46A3 +0x8233D138 0x46A4 +0x8233D139 0x46A5 +0x8233D230 0x46A6 +0x8233D231 0x46A7 +0x8233D232 0x46A8 +0x8233D233 0x46A9 +0x8233D234 0x46AA +0x8233D235 0x46AB +0x8233D236 0x46AC +0x8233D237 0x46AD +0x8233D238 0x46AE +0x8233D239 0x46AF +0x8233D330 0x46B0 +0x8233D331 0x46B1 +0x8233D332 0x46B2 +0x8233D333 0x46B3 +0x8233D334 0x46B4 +0x8233D335 0x46B5 +0x8233D336 0x46B6 +0x8233D337 0x46B7 +0x8233D338 0x46B8 +0x8233D339 0x46B9 +0x8233D430 0x46BA +0x8233D431 0x46BB +0x8233D432 0x46BC +0x8233D433 0x46BD +0x8233D434 0x46BE +0x8233D435 0x46BF +0x8233D436 0x46C0 +0x8233D437 0x46C1 +0x8233D438 0x46C2 +0x8233D439 0x46C3 +0x8233D530 0x46C4 +0x8233D531 0x46C5 +0x8233D532 0x46C6 +0x8233D533 0x46C7 +0x8233D534 0x46C8 +0x8233D535 0x46C9 +0x8233D536 0x46CA +0x8233D537 0x46CB +0x8233D538 0x46CC +0x8233D539 0x46CD +0x8233D630 0x46CE +0x8233D631 0x46CF +0x8233D632 0x46D0 +0x8233D633 0x46D1 +0x8233D634 0x46D2 +0x8233D635 0x46D3 +0x8233D636 0x46D4 +0x8233D637 0x46D5 +0x8233D638 0x46D6 +0x8233D639 0x46D7 +0x8233D730 0x46D8 +0x8233D731 0x46D9 +0x8233D732 0x46DA +0x8233D733 0x46DB +0x8233D734 0x46DC +0x8233D735 0x46DD +0x8233D736 0x46DE +0x8233D737 0x46DF +0x8233D738 0x46E0 +0x8233D739 0x46E1 +0x8233D830 0x46E2 +0x8233D831 0x46E3 +0x8233D832 0x46E4 +0x8233D833 0x46E5 +0x8233D834 0x46E6 +0x8233D835 0x46E7 +0x8233D836 0x46E8 +0x8233D837 0x46E9 +0x8233D838 0x46EA +0x8233D839 0x46EB +0x8233D930 0x46EC +0x8233D931 0x46ED +0x8233D932 0x46EE +0x8233D933 0x46EF +0x8233D934 0x46F0 +0x8233D935 0x46F1 +0x8233D936 0x46F2 +0x8233D937 0x46F3 +0x8233D938 0x46F4 +0x8233D939 0x46F5 +0x8233DA30 0x46F6 +0x8233DA31 0x46F7 +0x8233DA32 0x46F8 +0x8233DA33 0x46F9 +0x8233DA34 0x46FA +0x8233DA35 0x46FB +0x8233DA36 0x46FC +0x8233DA37 0x46FD +0x8233DA38 0x46FE +0x8233DA39 0x46FF +0x8233DB30 0x4700 +0x8233DB31 0x4701 +0x8233DB32 0x4702 +0x8233DB33 0x4703 +0x8233DB34 0x4704 +0x8233DB35 0x4705 +0x8233DB36 0x4706 +0x8233DB37 0x4707 +0x8233DB38 0x4708 +0x8233DB39 0x4709 +0x8233DC30 0x470A +0x8233DC31 0x470B +0x8233DC32 0x470C +0x8233DC33 0x470D +0x8233DC34 0x470E +0x8233DC35 0x470F +0x8233DC36 0x4710 +0x8233DC37 0x4711 +0x8233DC38 0x4712 +0x8233DC39 0x4713 +0x8233DD30 0x4714 +0x8233DD31 0x4715 +0x8233DD32 0x4716 +0x8233DD33 0x4717 +0x8233DD34 0x4718 +0x8233DD35 0x4719 +0x8233DD36 0x471A +0x8233DD37 0x471B +0x8233DD38 0x471C +0x8233DD39 0x471D +0x8233DE30 0x471E +0x8233DE31 0x471F +0x8233DE32 0x4720 +0x8233DE33 0x4721 +0x8233DE34 0x4722 +0x8233DE35 0x4724 +0x8233DE36 0x4725 +0x8233DE37 0x4726 +0x8233DE38 0x4727 +0x8233DE39 0x4728 +0x8233DF30 0x472A +0x8233DF31 0x472B +0x8233DF32 0x472C +0x8233DF33 0x472D +0x8233DF34 0x472E +0x8233DF35 0x472F +0x8233DF36 0x4730 +0x8233DF37 0x4731 +0x8233DF38 0x4732 +0x8233DF39 0x4733 +0x8233E030 0x4734 +0x8233E031 0x4735 +0x8233E032 0x4736 +0x8233E033 0x4737 +0x8233E034 0x4738 +0x8233E035 0x4739 +0x8233E036 0x473A +0x8233E037 0x473B +0x8233E038 0x473C +0x8233E039 0x473D +0x8233E130 0x473E +0x8233E131 0x473F +0x8233E132 0x4740 +0x8233E133 0x4741 +0x8233E134 0x4742 +0x8233E135 0x4743 +0x8233E136 0x4744 +0x8233E137 0x4745 +0x8233E138 0x4746 +0x8233E139 0x4747 +0x8233E230 0x4748 +0x8233E231 0x4749 +0x8233E232 0x474A +0x8233E233 0x474B +0x8233E234 0x474C +0x8233E235 0x474D +0x8233E236 0x474E +0x8233E237 0x474F +0x8233E238 0x4750 +0x8233E239 0x4751 +0x8233E330 0x4752 +0x8233E331 0x4753 +0x8233E332 0x4754 +0x8233E333 0x4755 +0x8233E334 0x4756 +0x8233E335 0x4757 +0x8233E336 0x4758 +0x8233E337 0x4759 +0x8233E338 0x475A +0x8233E339 0x475B +0x8233E430 0x475C +0x8233E431 0x475D +0x8233E432 0x475E +0x8233E433 0x475F +0x8233E434 0x4760 +0x8233E435 0x4761 +0x8233E436 0x4762 +0x8233E437 0x4763 +0x8233E438 0x4764 +0x8233E439 0x4765 +0x8233E530 0x4766 +0x8233E531 0x4767 +0x8233E532 0x4768 +0x8233E533 0x4769 +0x8233E534 0x476A +0x8233E535 0x476B +0x8233E536 0x476C +0x8233E537 0x476D +0x8233E538 0x476E +0x8233E539 0x476F +0x8233E630 0x4770 +0x8233E631 0x4771 +0x8233E632 0x4772 +0x8233E633 0x4773 +0x8233E634 0x4774 +0x8233E635 0x4775 +0x8233E636 0x4776 +0x8233E637 0x4777 +0x8233E638 0x4778 +0x8233E639 0x4779 +0x8233E730 0x477A +0x8233E731 0x477B +0x8233E732 0x477D +0x8233E733 0x477E +0x8233E734 0x477F +0x8233E735 0x4780 +0x8233E736 0x4781 +0x8233E737 0x4782 +0x8233E738 0x4783 +0x8233E739 0x4784 +0x8233E830 0x4785 +0x8233E831 0x4786 +0x8233E832 0x4787 +0x8233E833 0x4788 +0x8233E834 0x4789 +0x8233E835 0x478A +0x8233E836 0x478B +0x8233E837 0x478C +0x8233E838 0x478E +0x8233E839 0x478F +0x8233E930 0x4790 +0x8233E931 0x4791 +0x8233E932 0x4792 +0x8233E933 0x4793 +0x8233E934 0x4794 +0x8233E935 0x4795 +0x8233E936 0x4796 +0x8233E937 0x4797 +0x8233E938 0x4798 +0x8233E939 0x4799 +0x8233EA30 0x479A +0x8233EA31 0x479B +0x8233EA32 0x479C +0x8233EA33 0x479D +0x8233EA34 0x479E +0x8233EA35 0x479F +0x8233EA36 0x47A0 +0x8233EA37 0x47A1 +0x8233EA38 0x47A2 +0x8233EA39 0x47A3 +0x8233EB30 0x47A4 +0x8233EB31 0x47A5 +0x8233EB32 0x47A6 +0x8233EB33 0x47A7 +0x8233EB34 0x47A8 +0x8233EB35 0x47A9 +0x8233EB36 0x47AA +0x8233EB37 0x47AB +0x8233EB38 0x47AC +0x8233EB39 0x47AD +0x8233EC30 0x47AE +0x8233EC31 0x47AF +0x8233EC32 0x47B0 +0x8233EC33 0x47B1 +0x8233EC34 0x47B2 +0x8233EC35 0x47B3 +0x8233EC36 0x47B4 +0x8233EC37 0x47B5 +0x8233EC38 0x47B6 +0x8233EC39 0x47B7 +0x8233ED30 0x47B8 +0x8233ED31 0x47B9 +0x8233ED32 0x47BA +0x8233ED33 0x47BB +0x8233ED34 0x47BC +0x8233ED35 0x47BD +0x8233ED36 0x47BE +0x8233ED37 0x47BF +0x8233ED38 0x47C0 +0x8233ED39 0x47C1 +0x8233EE30 0x47C2 +0x8233EE31 0x47C3 +0x8233EE32 0x47C4 +0x8233EE33 0x47C5 +0x8233EE34 0x47C6 +0x8233EE35 0x47C7 +0x8233EE36 0x47C8 +0x8233EE37 0x47C9 +0x8233EE38 0x47CA +0x8233EE39 0x47CB +0x8233EF30 0x47CC +0x8233EF31 0x47CD +0x8233EF32 0x47CE +0x8233EF33 0x47CF +0x8233EF34 0x47D0 +0x8233EF35 0x47D1 +0x8233EF36 0x47D2 +0x8233EF37 0x47D3 +0x8233EF38 0x47D4 +0x8233EF39 0x47D5 +0x8233F030 0x47D6 +0x8233F031 0x47D7 +0x8233F032 0x47D8 +0x8233F033 0x47D9 +0x8233F034 0x47DA +0x8233F035 0x47DB +0x8233F036 0x47DC +0x8233F037 0x47DD +0x8233F038 0x47DE +0x8233F039 0x47DF +0x8233F130 0x47E0 +0x8233F131 0x47E1 +0x8233F132 0x47E2 +0x8233F133 0x47E3 +0x8233F134 0x47E4 +0x8233F135 0x47E5 +0x8233F136 0x47E6 +0x8233F137 0x47E7 +0x8233F138 0x47E8 +0x8233F139 0x47E9 +0x8233F230 0x47EA +0x8233F231 0x47EB +0x8233F232 0x47EC +0x8233F233 0x47ED +0x8233F234 0x47EE +0x8233F235 0x47EF +0x8233F236 0x47F0 +0x8233F237 0x47F1 +0x8233F238 0x47F2 +0x8233F239 0x47F3 +0x8233F330 0x47F4 +0x8233F331 0x47F5 +0x8233F332 0x47F6 +0x8233F333 0x47F7 +0x8233F334 0x47F8 +0x8233F335 0x47F9 +0x8233F336 0x47FA +0x8233F337 0x47FB +0x8233F338 0x47FC +0x8233F339 0x47FD +0x8233F430 0x47FE +0x8233F431 0x47FF +0x8233F432 0x4800 +0x8233F433 0x4801 +0x8233F434 0x4802 +0x8233F435 0x4803 +0x8233F436 0x4804 +0x8233F437 0x4805 +0x8233F438 0x4806 +0x8233F439 0x4807 +0x8233F530 0x4808 +0x8233F531 0x4809 +0x8233F532 0x480A +0x8233F533 0x480B +0x8233F534 0x480C +0x8233F535 0x480D +0x8233F536 0x480E +0x8233F537 0x480F +0x8233F538 0x4810 +0x8233F539 0x4811 +0x8233F630 0x4812 +0x8233F631 0x4813 +0x8233F632 0x4814 +0x8233F633 0x4815 +0x8233F634 0x4816 +0x8233F635 0x4817 +0x8233F636 0x4818 +0x8233F637 0x4819 +0x8233F638 0x481A +0x8233F639 0x481B +0x8233F730 0x481C +0x8233F731 0x481D +0x8233F732 0x481E +0x8233F733 0x481F +0x8233F734 0x4820 +0x8233F735 0x4821 +0x8233F736 0x4822 +0x8233F737 0x4823 +0x8233F738 0x4824 +0x8233F739 0x4825 +0x8233F830 0x4826 +0x8233F831 0x4827 +0x8233F832 0x4828 +0x8233F833 0x4829 +0x8233F834 0x482A +0x8233F835 0x482B +0x8233F836 0x482C +0x8233F837 0x482D +0x8233F838 0x482E +0x8233F839 0x482F +0x8233F930 0x4830 +0x8233F931 0x4831 +0x8233F932 0x4832 +0x8233F933 0x4833 +0x8233F934 0x4834 +0x8233F935 0x4835 +0x8233F936 0x4836 +0x8233F937 0x4837 +0x8233F938 0x4838 +0x8233F939 0x4839 +0x8233FA30 0x483A +0x8233FA31 0x483B +0x8233FA32 0x483C +0x8233FA33 0x483D +0x8233FA34 0x483E +0x8233FA35 0x483F +0x8233FA36 0x4840 +0x8233FA37 0x4841 +0x8233FA38 0x4842 +0x8233FA39 0x4843 +0x8233FB30 0x4844 +0x8233FB31 0x4845 +0x8233FB32 0x4846 +0x8233FB33 0x4847 +0x8233FB34 0x4848 +0x8233FB35 0x4849 +0x8233FB36 0x484A +0x8233FB37 0x484B +0x8233FB38 0x484C +0x8233FB39 0x484D +0x8233FC30 0x484E +0x8233FC31 0x484F +0x8233FC32 0x4850 +0x8233FC33 0x4851 +0x8233FC34 0x4852 +0x8233FC35 0x4853 +0x8233FC36 0x4854 +0x8233FC37 0x4855 +0x8233FC38 0x4856 +0x8233FC39 0x4857 +0x8233FD30 0x4858 +0x8233FD31 0x4859 +0x8233FD32 0x485A +0x8233FD33 0x485B +0x8233FD34 0x485C +0x8233FD35 0x485D +0x8233FD36 0x485E +0x8233FD37 0x485F +0x8233FD38 0x4860 +0x8233FD39 0x4861 +0x8233FE30 0x4862 +0x8233FE31 0x4863 +0x8233FE32 0x4864 +0x8233FE33 0x4865 +0x8233FE34 0x4866 +0x8233FE35 0x4867 +0x8233FE36 0x4868 +0x8233FE37 0x4869 +0x8233FE38 0x486A +0x8233FE39 0x486B +0x82348130 0x486C +0x82348131 0x486D +0x82348132 0x486E +0x82348133 0x486F +0x82348134 0x4870 +0x82348135 0x4871 +0x82348136 0x4872 +0x82348137 0x4873 +0x82348138 0x4874 +0x82348139 0x4875 +0x82348230 0x4876 +0x82348231 0x4877 +0x82348232 0x4878 +0x82348233 0x4879 +0x82348234 0x487A +0x82348235 0x487B +0x82348236 0x487C +0x82348237 0x487D +0x82348238 0x487E +0x82348239 0x487F +0x82348330 0x4880 +0x82348331 0x4881 +0x82348332 0x4882 +0x82348333 0x4883 +0x82348334 0x4884 +0x82348335 0x4885 +0x82348336 0x4886 +0x82348337 0x4887 +0x82348338 0x4888 +0x82348339 0x4889 +0x82348430 0x488A +0x82348431 0x488B +0x82348432 0x488C +0x82348433 0x488D +0x82348434 0x488E +0x82348435 0x488F +0x82348436 0x4890 +0x82348437 0x4891 +0x82348438 0x4892 +0x82348439 0x4893 +0x82348530 0x4894 +0x82348531 0x4895 +0x82348532 0x4896 +0x82348533 0x4897 +0x82348534 0x4898 +0x82348535 0x4899 +0x82348536 0x489A +0x82348537 0x489B +0x82348538 0x489C +0x82348539 0x489D +0x82348630 0x489E +0x82348631 0x489F +0x82348632 0x48A0 +0x82348633 0x48A1 +0x82348634 0x48A2 +0x82348635 0x48A3 +0x82348636 0x48A4 +0x82348637 0x48A5 +0x82348638 0x48A6 +0x82348639 0x48A7 +0x82348730 0x48A8 +0x82348731 0x48A9 +0x82348732 0x48AA +0x82348733 0x48AB +0x82348734 0x48AC +0x82348735 0x48AD +0x82348736 0x48AE +0x82348737 0x48AF +0x82348738 0x48B0 +0x82348739 0x48B1 +0x82348830 0x48B2 +0x82348831 0x48B3 +0x82348832 0x48B4 +0x82348833 0x48B5 +0x82348834 0x48B6 +0x82348835 0x48B7 +0x82348836 0x48B8 +0x82348837 0x48B9 +0x82348838 0x48BA +0x82348839 0x48BB +0x82348930 0x48BC +0x82348931 0x48BD +0x82348932 0x48BE +0x82348933 0x48BF +0x82348934 0x48C0 +0x82348935 0x48C1 +0x82348936 0x48C2 +0x82348937 0x48C3 +0x82348938 0x48C4 +0x82348939 0x48C5 +0x82348A30 0x48C6 +0x82348A31 0x48C7 +0x82348A32 0x48C8 +0x82348A33 0x48C9 +0x82348A34 0x48CA +0x82348A35 0x48CB +0x82348A36 0x48CC +0x82348A37 0x48CD +0x82348A38 0x48CE +0x82348A39 0x48CF +0x82348B30 0x48D0 +0x82348B31 0x48D1 +0x82348B32 0x48D2 +0x82348B33 0x48D3 +0x82348B34 0x48D4 +0x82348B35 0x48D5 +0x82348B36 0x48D6 +0x82348B37 0x48D7 +0x82348B38 0x48D8 +0x82348B39 0x48D9 +0x82348C30 0x48DA +0x82348C31 0x48DB +0x82348C32 0x48DC +0x82348C33 0x48DD +0x82348C34 0x48DE +0x82348C35 0x48DF +0x82348C36 0x48E0 +0x82348C37 0x48E1 +0x82348C38 0x48E2 +0x82348C39 0x48E3 +0x82348D30 0x48E4 +0x82348D31 0x48E5 +0x82348D32 0x48E6 +0x82348D33 0x48E7 +0x82348D34 0x48E8 +0x82348D35 0x48E9 +0x82348D36 0x48EA +0x82348D37 0x48EB +0x82348D38 0x48EC +0x82348D39 0x48ED +0x82348E30 0x48EE +0x82348E31 0x48EF +0x82348E32 0x48F0 +0x82348E33 0x48F1 +0x82348E34 0x48F2 +0x82348E35 0x48F3 +0x82348E36 0x48F4 +0x82348E37 0x48F5 +0x82348E38 0x48F6 +0x82348E39 0x48F7 +0x82348F30 0x48F8 +0x82348F31 0x48F9 +0x82348F32 0x48FA +0x82348F33 0x48FB +0x82348F34 0x48FC +0x82348F35 0x48FD +0x82348F36 0x48FE +0x82348F37 0x48FF +0x82348F38 0x4900 +0x82348F39 0x4901 +0x82349030 0x4902 +0x82349031 0x4903 +0x82349032 0x4904 +0x82349033 0x4905 +0x82349034 0x4906 +0x82349035 0x4907 +0x82349036 0x4908 +0x82349037 0x4909 +0x82349038 0x490A +0x82349039 0x490B +0x82349130 0x490C +0x82349131 0x490D +0x82349132 0x490E +0x82349133 0x490F +0x82349134 0x4910 +0x82349135 0x4911 +0x82349136 0x4912 +0x82349137 0x4913 +0x82349138 0x4914 +0x82349139 0x4915 +0x82349230 0x4916 +0x82349231 0x4917 +0x82349232 0x4918 +0x82349233 0x4919 +0x82349234 0x491A +0x82349235 0x491B +0x82349236 0x491C +0x82349237 0x491D +0x82349238 0x491E +0x82349239 0x491F +0x82349330 0x4920 +0x82349331 0x4921 +0x82349332 0x4922 +0x82349333 0x4923 +0x82349334 0x4924 +0x82349335 0x4925 +0x82349336 0x4926 +0x82349337 0x4927 +0x82349338 0x4928 +0x82349339 0x4929 +0x82349430 0x492A +0x82349431 0x492B +0x82349432 0x492C +0x82349433 0x492D +0x82349434 0x492E +0x82349435 0x492F +0x82349436 0x4930 +0x82349437 0x4931 +0x82349438 0x4932 +0x82349439 0x4933 +0x82349530 0x4934 +0x82349531 0x4935 +0x82349532 0x4936 +0x82349533 0x4937 +0x82349534 0x4938 +0x82349535 0x4939 +0x82349536 0x493A +0x82349537 0x493B +0x82349538 0x493C +0x82349539 0x493D +0x82349630 0x493E +0x82349631 0x493F +0x82349632 0x4940 +0x82349633 0x4941 +0x82349634 0x4942 +0x82349635 0x4943 +0x82349636 0x4944 +0x82349637 0x4945 +0x82349638 0x4946 +0x82349639 0x4948 +0x82349730 0x4949 +0x82349731 0x494A +0x82349732 0x494B +0x82349733 0x494C +0x82349734 0x494D +0x82349735 0x494E +0x82349736 0x494F +0x82349737 0x4950 +0x82349738 0x4951 +0x82349739 0x4952 +0x82349830 0x4953 +0x82349831 0x4954 +0x82349832 0x4955 +0x82349833 0x4956 +0x82349834 0x4957 +0x82349835 0x4958 +0x82349836 0x4959 +0x82349837 0x495A +0x82349838 0x495B +0x82349839 0x495C +0x82349930 0x495D +0x82349931 0x495E +0x82349932 0x495F +0x82349933 0x4960 +0x82349934 0x4961 +0x82349935 0x4962 +0x82349936 0x4963 +0x82349937 0x4964 +0x82349938 0x4965 +0x82349939 0x4966 +0x82349A30 0x4967 +0x82349A31 0x4968 +0x82349A32 0x4969 +0x82349A33 0x496A +0x82349A34 0x496B +0x82349A35 0x496C +0x82349A36 0x496D +0x82349A37 0x496E +0x82349A38 0x496F +0x82349A39 0x4970 +0x82349B30 0x4971 +0x82349B31 0x4972 +0x82349B32 0x4973 +0x82349B33 0x4974 +0x82349B34 0x4975 +0x82349B35 0x4976 +0x82349B36 0x4977 +0x82349B37 0x4978 +0x82349B38 0x4979 +0x82349B39 0x497B +0x82349C30 0x497C +0x82349C31 0x497E +0x82349C32 0x497F +0x82349C33 0x4980 +0x82349C34 0x4981 +0x82349C35 0x4984 +0x82349C36 0x4987 +0x82349C37 0x4988 +0x82349C38 0x4989 +0x82349C39 0x498A +0x82349D30 0x498B +0x82349D31 0x498C +0x82349D32 0x498D +0x82349D33 0x498E +0x82349D34 0x498F +0x82349D35 0x4990 +0x82349D36 0x4991 +0x82349D37 0x4992 +0x82349D38 0x4993 +0x82349D39 0x4994 +0x82349E30 0x4995 +0x82349E31 0x4996 +0x82349E32 0x4997 +0x82349E33 0x4998 +0x82349E34 0x4999 +0x82349E35 0x499A +0x82349E36 0x499C +0x82349E37 0x499D +0x82349E38 0x499E +0x82349E39 0x49A0 +0x82349F30 0x49A1 +0x82349F31 0x49A2 +0x82349F32 0x49A3 +0x82349F33 0x49A4 +0x82349F34 0x49A5 +0x82349F35 0x49A6 +0x82349F36 0x49A7 +0x82349F37 0x49A8 +0x82349F38 0x49A9 +0x82349F39 0x49AA +0x8234A030 0x49AB +0x8234A031 0x49AC +0x8234A032 0x49AD +0x8234A033 0x49AE +0x8234A034 0x49AF +0x8234A035 0x49B0 +0x8234A036 0x49B1 +0x8234A037 0x49B2 +0x8234A038 0x49B3 +0x8234A039 0x49B4 +0x8234A130 0x49B5 +0x8234A131 0x49B8 +0x8234A132 0x49B9 +0x8234A133 0x49BA +0x8234A134 0x49BB +0x8234A135 0x49BC +0x8234A136 0x49BD +0x8234A137 0x49BE +0x8234A138 0x49BF +0x8234A139 0x49C0 +0x8234A230 0x49C1 +0x8234A231 0x49C2 +0x8234A232 0x49C3 +0x8234A233 0x49C4 +0x8234A234 0x49C5 +0x8234A235 0x49C6 +0x8234A236 0x49C7 +0x8234A237 0x49C8 +0x8234A238 0x49C9 +0x8234A239 0x49CA +0x8234A330 0x49CB +0x8234A331 0x49CC +0x8234A332 0x49CD +0x8234A333 0x49CE +0x8234A334 0x49CF +0x8234A335 0x49D0 +0x8234A336 0x49D1 +0x8234A337 0x49D2 +0x8234A338 0x49D3 +0x8234A339 0x49D4 +0x8234A430 0x49D5 +0x8234A431 0x49D6 +0x8234A432 0x49D7 +0x8234A433 0x49D8 +0x8234A434 0x49D9 +0x8234A435 0x49DA +0x8234A436 0x49DB +0x8234A437 0x49DC +0x8234A438 0x49DD +0x8234A439 0x49DE +0x8234A530 0x49DF +0x8234A531 0x49E0 +0x8234A532 0x49E1 +0x8234A533 0x49E2 +0x8234A534 0x49E3 +0x8234A535 0x49E4 +0x8234A536 0x49E5 +0x8234A537 0x49E6 +0x8234A538 0x49E7 +0x8234A539 0x49E8 +0x8234A630 0x49E9 +0x8234A631 0x49EA +0x8234A632 0x49EB +0x8234A633 0x49EC +0x8234A634 0x49ED +0x8234A635 0x49EE +0x8234A636 0x49EF +0x8234A637 0x49F0 +0x8234A638 0x49F1 +0x8234A639 0x49F2 +0x8234A730 0x49F3 +0x8234A731 0x49F4 +0x8234A732 0x49F5 +0x8234A733 0x49F6 +0x8234A734 0x49F7 +0x8234A735 0x49F8 +0x8234A736 0x49F9 +0x8234A737 0x49FA +0x8234A738 0x49FB +0x8234A739 0x49FC +0x8234A830 0x49FD +0x8234A831 0x49FE +0x8234A832 0x49FF +0x8234A833 0x4A00 +0x8234A834 0x4A01 +0x8234A835 0x4A02 +0x8234A836 0x4A03 +0x8234A837 0x4A04 +0x8234A838 0x4A05 +0x8234A839 0x4A06 +0x8234A930 0x4A07 +0x8234A931 0x4A08 +0x8234A932 0x4A09 +0x8234A933 0x4A0A +0x8234A934 0x4A0B +0x8234A935 0x4A0C +0x8234A936 0x4A0D +0x8234A937 0x4A0E +0x8234A938 0x4A0F +0x8234A939 0x4A10 +0x8234AA30 0x4A11 +0x8234AA31 0x4A12 +0x8234AA32 0x4A13 +0x8234AA33 0x4A14 +0x8234AA34 0x4A15 +0x8234AA35 0x4A16 +0x8234AA36 0x4A17 +0x8234AA37 0x4A18 +0x8234AA38 0x4A19 +0x8234AA39 0x4A1A +0x8234AB30 0x4A1B +0x8234AB31 0x4A1C +0x8234AB32 0x4A1D +0x8234AB33 0x4A1E +0x8234AB34 0x4A1F +0x8234AB35 0x4A20 +0x8234AB36 0x4A21 +0x8234AB37 0x4A22 +0x8234AB38 0x4A23 +0x8234AB39 0x4A24 +0x8234AC30 0x4A25 +0x8234AC31 0x4A26 +0x8234AC32 0x4A27 +0x8234AC33 0x4A28 +0x8234AC34 0x4A29 +0x8234AC35 0x4A2A +0x8234AC36 0x4A2B +0x8234AC37 0x4A2C +0x8234AC38 0x4A2D +0x8234AC39 0x4A2E +0x8234AD30 0x4A2F +0x8234AD31 0x4A30 +0x8234AD32 0x4A31 +0x8234AD33 0x4A32 +0x8234AD34 0x4A33 +0x8234AD35 0x4A34 +0x8234AD36 0x4A35 +0x8234AD37 0x4A36 +0x8234AD38 0x4A37 +0x8234AD39 0x4A38 +0x8234AE30 0x4A39 +0x8234AE31 0x4A3A +0x8234AE32 0x4A3B +0x8234AE33 0x4A3C +0x8234AE34 0x4A3D +0x8234AE35 0x4A3E +0x8234AE36 0x4A3F +0x8234AE37 0x4A40 +0x8234AE38 0x4A41 +0x8234AE39 0x4A42 +0x8234AF30 0x4A43 +0x8234AF31 0x4A44 +0x8234AF32 0x4A45 +0x8234AF33 0x4A46 +0x8234AF34 0x4A47 +0x8234AF35 0x4A48 +0x8234AF36 0x4A49 +0x8234AF37 0x4A4A +0x8234AF38 0x4A4B +0x8234AF39 0x4A4C +0x8234B030 0x4A4D +0x8234B031 0x4A4E +0x8234B032 0x4A4F +0x8234B033 0x4A50 +0x8234B034 0x4A51 +0x8234B035 0x4A52 +0x8234B036 0x4A53 +0x8234B037 0x4A54 +0x8234B038 0x4A55 +0x8234B039 0x4A56 +0x8234B130 0x4A57 +0x8234B131 0x4A58 +0x8234B132 0x4A59 +0x8234B133 0x4A5A +0x8234B134 0x4A5B +0x8234B135 0x4A5C +0x8234B136 0x4A5D +0x8234B137 0x4A5E +0x8234B138 0x4A5F +0x8234B139 0x4A60 +0x8234B230 0x4A61 +0x8234B231 0x4A62 +0x8234B232 0x4A63 +0x8234B233 0x4A64 +0x8234B234 0x4A65 +0x8234B235 0x4A66 +0x8234B236 0x4A67 +0x8234B237 0x4A68 +0x8234B238 0x4A69 +0x8234B239 0x4A6A +0x8234B330 0x4A6B +0x8234B331 0x4A6C +0x8234B332 0x4A6D +0x8234B333 0x4A6E +0x8234B334 0x4A6F +0x8234B335 0x4A70 +0x8234B336 0x4A71 +0x8234B337 0x4A72 +0x8234B338 0x4A73 +0x8234B339 0x4A74 +0x8234B430 0x4A75 +0x8234B431 0x4A76 +0x8234B432 0x4A77 +0x8234B433 0x4A78 +0x8234B434 0x4A79 +0x8234B435 0x4A7A +0x8234B436 0x4A7B +0x8234B437 0x4A7C +0x8234B438 0x4A7D +0x8234B439 0x4A7E +0x8234B530 0x4A7F +0x8234B531 0x4A80 +0x8234B532 0x4A81 +0x8234B533 0x4A82 +0x8234B534 0x4A83 +0x8234B535 0x4A84 +0x8234B536 0x4A85 +0x8234B537 0x4A86 +0x8234B538 0x4A87 +0x8234B539 0x4A88 +0x8234B630 0x4A89 +0x8234B631 0x4A8A +0x8234B632 0x4A8B +0x8234B633 0x4A8C +0x8234B634 0x4A8D +0x8234B635 0x4A8E +0x8234B636 0x4A8F +0x8234B637 0x4A90 +0x8234B638 0x4A91 +0x8234B639 0x4A92 +0x8234B730 0x4A93 +0x8234B731 0x4A94 +0x8234B732 0x4A95 +0x8234B733 0x4A96 +0x8234B734 0x4A97 +0x8234B735 0x4A98 +0x8234B736 0x4A99 +0x8234B737 0x4A9A +0x8234B738 0x4A9B +0x8234B739 0x4A9C +0x8234B830 0x4A9D +0x8234B831 0x4A9E +0x8234B832 0x4A9F +0x8234B833 0x4AA0 +0x8234B834 0x4AA1 +0x8234B835 0x4AA2 +0x8234B836 0x4AA3 +0x8234B837 0x4AA4 +0x8234B838 0x4AA5 +0x8234B839 0x4AA6 +0x8234B930 0x4AA7 +0x8234B931 0x4AA8 +0x8234B932 0x4AA9 +0x8234B933 0x4AAA +0x8234B934 0x4AAB +0x8234B935 0x4AAC +0x8234B936 0x4AAD +0x8234B937 0x4AAE +0x8234B938 0x4AAF +0x8234B939 0x4AB0 +0x8234BA30 0x4AB1 +0x8234BA31 0x4AB2 +0x8234BA32 0x4AB3 +0x8234BA33 0x4AB4 +0x8234BA34 0x4AB5 +0x8234BA35 0x4AB6 +0x8234BA36 0x4AB7 +0x8234BA37 0x4AB8 +0x8234BA38 0x4AB9 +0x8234BA39 0x4ABA +0x8234BB30 0x4ABB +0x8234BB31 0x4ABC +0x8234BB32 0x4ABD +0x8234BB33 0x4ABE +0x8234BB34 0x4ABF +0x8234BB35 0x4AC0 +0x8234BB36 0x4AC1 +0x8234BB37 0x4AC2 +0x8234BB38 0x4AC3 +0x8234BB39 0x4AC4 +0x8234BC30 0x4AC5 +0x8234BC31 0x4AC6 +0x8234BC32 0x4AC7 +0x8234BC33 0x4AC8 +0x8234BC34 0x4AC9 +0x8234BC35 0x4ACA +0x8234BC36 0x4ACB +0x8234BC37 0x4ACC +0x8234BC38 0x4ACD +0x8234BC39 0x4ACE +0x8234BD30 0x4ACF +0x8234BD31 0x4AD0 +0x8234BD32 0x4AD1 +0x8234BD33 0x4AD2 +0x8234BD34 0x4AD3 +0x8234BD35 0x4AD4 +0x8234BD36 0x4AD5 +0x8234BD37 0x4AD6 +0x8234BD38 0x4AD7 +0x8234BD39 0x4AD8 +0x8234BE30 0x4AD9 +0x8234BE31 0x4ADA +0x8234BE32 0x4ADB +0x8234BE33 0x4ADC +0x8234BE34 0x4ADD +0x8234BE35 0x4ADE +0x8234BE36 0x4ADF +0x8234BE37 0x4AE0 +0x8234BE38 0x4AE1 +0x8234BE39 0x4AE2 +0x8234BF30 0x4AE3 +0x8234BF31 0x4AE4 +0x8234BF32 0x4AE5 +0x8234BF33 0x4AE6 +0x8234BF34 0x4AE7 +0x8234BF35 0x4AE8 +0x8234BF36 0x4AE9 +0x8234BF37 0x4AEA +0x8234BF38 0x4AEB +0x8234BF39 0x4AEC +0x8234C030 0x4AED +0x8234C031 0x4AEE +0x8234C032 0x4AEF +0x8234C033 0x4AF0 +0x8234C034 0x4AF1 +0x8234C035 0x4AF2 +0x8234C036 0x4AF3 +0x8234C037 0x4AF4 +0x8234C038 0x4AF5 +0x8234C039 0x4AF6 +0x8234C130 0x4AF7 +0x8234C131 0x4AF8 +0x8234C132 0x4AF9 +0x8234C133 0x4AFA +0x8234C134 0x4AFB +0x8234C135 0x4AFC +0x8234C136 0x4AFD +0x8234C137 0x4AFE +0x8234C138 0x4AFF +0x8234C139 0x4B00 +0x8234C230 0x4B01 +0x8234C231 0x4B02 +0x8234C232 0x4B03 +0x8234C233 0x4B04 +0x8234C234 0x4B05 +0x8234C235 0x4B06 +0x8234C236 0x4B07 +0x8234C237 0x4B08 +0x8234C238 0x4B09 +0x8234C239 0x4B0A +0x8234C330 0x4B0B +0x8234C331 0x4B0C +0x8234C332 0x4B0D +0x8234C333 0x4B0E +0x8234C334 0x4B0F +0x8234C335 0x4B10 +0x8234C336 0x4B11 +0x8234C337 0x4B12 +0x8234C338 0x4B13 +0x8234C339 0x4B14 +0x8234C430 0x4B15 +0x8234C431 0x4B16 +0x8234C432 0x4B17 +0x8234C433 0x4B18 +0x8234C434 0x4B19 +0x8234C435 0x4B1A +0x8234C436 0x4B1B +0x8234C437 0x4B1C +0x8234C438 0x4B1D +0x8234C439 0x4B1E +0x8234C530 0x4B1F +0x8234C531 0x4B20 +0x8234C532 0x4B21 +0x8234C533 0x4B22 +0x8234C534 0x4B23 +0x8234C535 0x4B24 +0x8234C536 0x4B25 +0x8234C537 0x4B26 +0x8234C538 0x4B27 +0x8234C539 0x4B28 +0x8234C630 0x4B29 +0x8234C631 0x4B2A +0x8234C632 0x4B2B +0x8234C633 0x4B2C +0x8234C634 0x4B2D +0x8234C635 0x4B2E +0x8234C636 0x4B2F +0x8234C637 0x4B30 +0x8234C638 0x4B31 +0x8234C639 0x4B32 +0x8234C730 0x4B33 +0x8234C731 0x4B34 +0x8234C732 0x4B35 +0x8234C733 0x4B36 +0x8234C734 0x4B37 +0x8234C735 0x4B38 +0x8234C736 0x4B39 +0x8234C737 0x4B3A +0x8234C738 0x4B3B +0x8234C739 0x4B3C +0x8234C830 0x4B3D +0x8234C831 0x4B3E +0x8234C832 0x4B3F +0x8234C833 0x4B40 +0x8234C834 0x4B41 +0x8234C835 0x4B42 +0x8234C836 0x4B43 +0x8234C837 0x4B44 +0x8234C838 0x4B45 +0x8234C839 0x4B46 +0x8234C930 0x4B47 +0x8234C931 0x4B48 +0x8234C932 0x4B49 +0x8234C933 0x4B4A +0x8234C934 0x4B4B +0x8234C935 0x4B4C +0x8234C936 0x4B4D +0x8234C937 0x4B4E +0x8234C938 0x4B4F +0x8234C939 0x4B50 +0x8234CA30 0x4B51 +0x8234CA31 0x4B52 +0x8234CA32 0x4B53 +0x8234CA33 0x4B54 +0x8234CA34 0x4B55 +0x8234CA35 0x4B56 +0x8234CA36 0x4B57 +0x8234CA37 0x4B58 +0x8234CA38 0x4B59 +0x8234CA39 0x4B5A +0x8234CB30 0x4B5B +0x8234CB31 0x4B5C +0x8234CB32 0x4B5D +0x8234CB33 0x4B5E +0x8234CB34 0x4B5F +0x8234CB35 0x4B60 +0x8234CB36 0x4B61 +0x8234CB37 0x4B62 +0x8234CB38 0x4B63 +0x8234CB39 0x4B64 +0x8234CC30 0x4B65 +0x8234CC31 0x4B66 +0x8234CC32 0x4B67 +0x8234CC33 0x4B68 +0x8234CC34 0x4B69 +0x8234CC35 0x4B6A +0x8234CC36 0x4B6B +0x8234CC37 0x4B6C +0x8234CC38 0x4B6D +0x8234CC39 0x4B6E +0x8234CD30 0x4B6F +0x8234CD31 0x4B70 +0x8234CD32 0x4B71 +0x8234CD33 0x4B72 +0x8234CD34 0x4B73 +0x8234CD35 0x4B74 +0x8234CD36 0x4B75 +0x8234CD37 0x4B76 +0x8234CD38 0x4B77 +0x8234CD39 0x4B78 +0x8234CE30 0x4B79 +0x8234CE31 0x4B7A +0x8234CE32 0x4B7B +0x8234CE33 0x4B7C +0x8234CE34 0x4B7D +0x8234CE35 0x4B7E +0x8234CE36 0x4B7F +0x8234CE37 0x4B80 +0x8234CE38 0x4B81 +0x8234CE39 0x4B82 +0x8234CF30 0x4B83 +0x8234CF31 0x4B84 +0x8234CF32 0x4B85 +0x8234CF33 0x4B86 +0x8234CF34 0x4B87 +0x8234CF35 0x4B88 +0x8234CF36 0x4B89 +0x8234CF37 0x4B8A +0x8234CF38 0x4B8B +0x8234CF39 0x4B8C +0x8234D030 0x4B8D +0x8234D031 0x4B8E +0x8234D032 0x4B8F +0x8234D033 0x4B90 +0x8234D034 0x4B91 +0x8234D035 0x4B92 +0x8234D036 0x4B93 +0x8234D037 0x4B94 +0x8234D038 0x4B95 +0x8234D039 0x4B96 +0x8234D130 0x4B97 +0x8234D131 0x4B98 +0x8234D132 0x4B99 +0x8234D133 0x4B9A +0x8234D134 0x4B9B +0x8234D135 0x4B9C +0x8234D136 0x4B9D +0x8234D137 0x4B9E +0x8234D138 0x4B9F +0x8234D139 0x4BA0 +0x8234D230 0x4BA1 +0x8234D231 0x4BA2 +0x8234D232 0x4BA3 +0x8234D233 0x4BA4 +0x8234D234 0x4BA5 +0x8234D235 0x4BA6 +0x8234D236 0x4BA7 +0x8234D237 0x4BA8 +0x8234D238 0x4BA9 +0x8234D239 0x4BAA +0x8234D330 0x4BAB +0x8234D331 0x4BAC +0x8234D332 0x4BAD +0x8234D333 0x4BAE +0x8234D334 0x4BAF +0x8234D335 0x4BB0 +0x8234D336 0x4BB1 +0x8234D337 0x4BB2 +0x8234D338 0x4BB3 +0x8234D339 0x4BB4 +0x8234D430 0x4BB5 +0x8234D431 0x4BB6 +0x8234D432 0x4BB7 +0x8234D433 0x4BB8 +0x8234D434 0x4BB9 +0x8234D435 0x4BBA +0x8234D436 0x4BBB +0x8234D437 0x4BBC +0x8234D438 0x4BBD +0x8234D439 0x4BBE +0x8234D530 0x4BBF +0x8234D531 0x4BC0 +0x8234D532 0x4BC1 +0x8234D533 0x4BC2 +0x8234D534 0x4BC3 +0x8234D535 0x4BC4 +0x8234D536 0x4BC5 +0x8234D537 0x4BC6 +0x8234D538 0x4BC7 +0x8234D539 0x4BC8 +0x8234D630 0x4BC9 +0x8234D631 0x4BCA +0x8234D632 0x4BCB +0x8234D633 0x4BCC +0x8234D634 0x4BCD +0x8234D635 0x4BCE +0x8234D636 0x4BCF +0x8234D637 0x4BD0 +0x8234D638 0x4BD1 +0x8234D639 0x4BD2 +0x8234D730 0x4BD3 +0x8234D731 0x4BD4 +0x8234D732 0x4BD5 +0x8234D733 0x4BD6 +0x8234D734 0x4BD7 +0x8234D735 0x4BD8 +0x8234D736 0x4BD9 +0x8234D737 0x4BDA +0x8234D738 0x4BDB +0x8234D739 0x4BDC +0x8234D830 0x4BDD +0x8234D831 0x4BDE +0x8234D832 0x4BDF +0x8234D833 0x4BE0 +0x8234D834 0x4BE1 +0x8234D835 0x4BE2 +0x8234D836 0x4BE3 +0x8234D837 0x4BE4 +0x8234D838 0x4BE5 +0x8234D839 0x4BE6 +0x8234D930 0x4BE7 +0x8234D931 0x4BE8 +0x8234D932 0x4BE9 +0x8234D933 0x4BEA +0x8234D934 0x4BEB +0x8234D935 0x4BEC +0x8234D936 0x4BED +0x8234D937 0x4BEE +0x8234D938 0x4BEF +0x8234D939 0x4BF0 +0x8234DA30 0x4BF1 +0x8234DA31 0x4BF2 +0x8234DA32 0x4BF3 +0x8234DA33 0x4BF4 +0x8234DA34 0x4BF5 +0x8234DA35 0x4BF6 +0x8234DA36 0x4BF7 +0x8234DA37 0x4BF8 +0x8234DA38 0x4BF9 +0x8234DA39 0x4BFA +0x8234DB30 0x4BFB +0x8234DB31 0x4BFC +0x8234DB32 0x4BFD +0x8234DB33 0x4BFE +0x8234DB34 0x4BFF +0x8234DB35 0x4C00 +0x8234DB36 0x4C01 +0x8234DB37 0x4C02 +0x8234DB38 0x4C03 +0x8234DB39 0x4C04 +0x8234DC30 0x4C05 +0x8234DC31 0x4C06 +0x8234DC32 0x4C07 +0x8234DC33 0x4C08 +0x8234DC34 0x4C09 +0x8234DC35 0x4C0A +0x8234DC36 0x4C0B +0x8234DC37 0x4C0C +0x8234DC38 0x4C0D +0x8234DC39 0x4C0E +0x8234DD30 0x4C0F +0x8234DD31 0x4C10 +0x8234DD32 0x4C11 +0x8234DD33 0x4C12 +0x8234DD34 0x4C13 +0x8234DD35 0x4C14 +0x8234DD36 0x4C15 +0x8234DD37 0x4C16 +0x8234DD38 0x4C17 +0x8234DD39 0x4C18 +0x8234DE30 0x4C19 +0x8234DE31 0x4C1A +0x8234DE32 0x4C1B +0x8234DE33 0x4C1C +0x8234DE34 0x4C1D +0x8234DE35 0x4C1E +0x8234DE36 0x4C1F +0x8234DE37 0x4C20 +0x8234DE38 0x4C21 +0x8234DE39 0x4C22 +0x8234DF30 0x4C23 +0x8234DF31 0x4C24 +0x8234DF32 0x4C25 +0x8234DF33 0x4C26 +0x8234DF34 0x4C27 +0x8234DF35 0x4C28 +0x8234DF36 0x4C29 +0x8234DF37 0x4C2A +0x8234DF38 0x4C2B +0x8234DF39 0x4C2C +0x8234E030 0x4C2D +0x8234E031 0x4C2E +0x8234E032 0x4C2F +0x8234E033 0x4C30 +0x8234E034 0x4C31 +0x8234E035 0x4C32 +0x8234E036 0x4C33 +0x8234E037 0x4C34 +0x8234E038 0x4C35 +0x8234E039 0x4C36 +0x8234E130 0x4C37 +0x8234E131 0x4C38 +0x8234E132 0x4C39 +0x8234E133 0x4C3A +0x8234E134 0x4C3B +0x8234E135 0x4C3C +0x8234E136 0x4C3D +0x8234E137 0x4C3E +0x8234E138 0x4C3F +0x8234E139 0x4C40 +0x8234E230 0x4C41 +0x8234E231 0x4C42 +0x8234E232 0x4C43 +0x8234E233 0x4C44 +0x8234E234 0x4C45 +0x8234E235 0x4C46 +0x8234E236 0x4C47 +0x8234E237 0x4C48 +0x8234E238 0x4C49 +0x8234E239 0x4C4A +0x8234E330 0x4C4B +0x8234E331 0x4C4C +0x8234E332 0x4C4D +0x8234E333 0x4C4E +0x8234E334 0x4C4F +0x8234E335 0x4C50 +0x8234E336 0x4C51 +0x8234E337 0x4C52 +0x8234E338 0x4C53 +0x8234E339 0x4C54 +0x8234E430 0x4C55 +0x8234E431 0x4C56 +0x8234E432 0x4C57 +0x8234E433 0x4C58 +0x8234E434 0x4C59 +0x8234E435 0x4C5A +0x8234E436 0x4C5B +0x8234E437 0x4C5C +0x8234E438 0x4C5D +0x8234E439 0x4C5E +0x8234E530 0x4C5F +0x8234E531 0x4C60 +0x8234E532 0x4C61 +0x8234E533 0x4C62 +0x8234E534 0x4C63 +0x8234E535 0x4C64 +0x8234E536 0x4C65 +0x8234E537 0x4C66 +0x8234E538 0x4C67 +0x8234E539 0x4C68 +0x8234E630 0x4C69 +0x8234E631 0x4C6A +0x8234E632 0x4C6B +0x8234E633 0x4C6C +0x8234E634 0x4C6D +0x8234E635 0x4C6E +0x8234E636 0x4C6F +0x8234E637 0x4C70 +0x8234E638 0x4C71 +0x8234E639 0x4C72 +0x8234E730 0x4C73 +0x8234E731 0x4C74 +0x8234E732 0x4C75 +0x8234E733 0x4C76 +0x8234E734 0x4C78 +0x8234E735 0x4C79 +0x8234E736 0x4C7A +0x8234E737 0x4C7B +0x8234E738 0x4C7C +0x8234E739 0x4C7D +0x8234E830 0x4C7E +0x8234E831 0x4C7F +0x8234E832 0x4C80 +0x8234E833 0x4C81 +0x8234E834 0x4C82 +0x8234E835 0x4C83 +0x8234E836 0x4C84 +0x8234E837 0x4C85 +0x8234E838 0x4C86 +0x8234E839 0x4C87 +0x8234E930 0x4C88 +0x8234E931 0x4C89 +0x8234E932 0x4C8A +0x8234E933 0x4C8B +0x8234E934 0x4C8C +0x8234E935 0x4C8D +0x8234E936 0x4C8E +0x8234E937 0x4C8F +0x8234E938 0x4C90 +0x8234E939 0x4C91 +0x8234EA30 0x4C92 +0x8234EA31 0x4C93 +0x8234EA32 0x4C94 +0x8234EA33 0x4C95 +0x8234EA34 0x4C96 +0x8234EA35 0x4C97 +0x8234EA36 0x4C98 +0x8234EA37 0x4C99 +0x8234EA38 0x4C9A +0x8234EA39 0x4C9B +0x8234EB30 0x4C9C +0x8234EB31 0x4C9D +0x8234EB32 0x4C9E +0x8234EB33 0x4CA4 +0x8234EB34 0x4CA5 +0x8234EB35 0x4CA6 +0x8234EB36 0x4CA7 +0x8234EB37 0x4CA8 +0x8234EB38 0x4CA9 +0x8234EB39 0x4CAA +0x8234EC30 0x4CAB +0x8234EC31 0x4CAC +0x8234EC32 0x4CAD +0x8234EC33 0x4CAE +0x8234EC34 0x4CAF +0x8234EC35 0x4CB0 +0x8234EC36 0x4CB1 +0x8234EC37 0x4CB2 +0x8234EC38 0x4CB3 +0x8234EC39 0x4CB4 +0x8234ED30 0x4CB5 +0x8234ED31 0x4CB6 +0x8234ED32 0x4CB7 +0x8234ED33 0x4CB8 +0x8234ED34 0x4CB9 +0x8234ED35 0x4CBA +0x8234ED36 0x4CBB +0x8234ED37 0x4CBC +0x8234ED38 0x4CBD +0x8234ED39 0x4CBE +0x8234EE30 0x4CBF +0x8234EE31 0x4CC0 +0x8234EE32 0x4CC1 +0x8234EE33 0x4CC2 +0x8234EE34 0x4CC3 +0x8234EE35 0x4CC4 +0x8234EE36 0x4CC5 +0x8234EE37 0x4CC6 +0x8234EE38 0x4CC7 +0x8234EE39 0x4CC8 +0x8234EF30 0x4CC9 +0x8234EF31 0x4CCA +0x8234EF32 0x4CCB +0x8234EF33 0x4CCC +0x8234EF34 0x4CCD +0x8234EF35 0x4CCE +0x8234EF36 0x4CCF +0x8234EF37 0x4CD0 +0x8234EF38 0x4CD1 +0x8234EF39 0x4CD2 +0x8234F030 0x4CD3 +0x8234F031 0x4CD4 +0x8234F032 0x4CD5 +0x8234F033 0x4CD6 +0x8234F034 0x4CD7 +0x8234F035 0x4CD8 +0x8234F036 0x4CD9 +0x8234F037 0x4CDA +0x8234F038 0x4CDB +0x8234F039 0x4CDC +0x8234F130 0x4CDD +0x8234F131 0x4CDE +0x8234F132 0x4CDF +0x8234F133 0x4CE0 +0x8234F134 0x4CE1 +0x8234F135 0x4CE2 +0x8234F136 0x4CE3 +0x8234F137 0x4CE4 +0x8234F138 0x4CE5 +0x8234F139 0x4CE6 +0x8234F230 0x4CE7 +0x8234F231 0x4CE8 +0x8234F232 0x4CE9 +0x8234F233 0x4CEA +0x8234F234 0x4CEB +0x8234F235 0x4CEC +0x8234F236 0x4CED +0x8234F237 0x4CEE +0x8234F238 0x4CEF +0x8234F239 0x4CF0 +0x8234F330 0x4CF1 +0x8234F331 0x4CF2 +0x8234F332 0x4CF3 +0x8234F333 0x4CF4 +0x8234F334 0x4CF5 +0x8234F335 0x4CF6 +0x8234F336 0x4CF7 +0x8234F337 0x4CF8 +0x8234F338 0x4CF9 +0x8234F339 0x4CFA +0x8234F430 0x4CFB +0x8234F431 0x4CFC +0x8234F432 0x4CFD +0x8234F433 0x4CFE +0x8234F434 0x4CFF +0x8234F435 0x4D00 +0x8234F436 0x4D01 +0x8234F437 0x4D02 +0x8234F438 0x4D03 +0x8234F439 0x4D04 +0x8234F530 0x4D05 +0x8234F531 0x4D06 +0x8234F532 0x4D07 +0x8234F533 0x4D08 +0x8234F534 0x4D09 +0x8234F535 0x4D0A +0x8234F536 0x4D0B +0x8234F537 0x4D0C +0x8234F538 0x4D0D +0x8234F539 0x4D0E +0x8234F630 0x4D0F +0x8234F631 0x4D10 +0x8234F632 0x4D11 +0x8234F633 0x4D12 +0x8234F634 0x4D1A +0x8234F635 0x4D1B +0x8234F636 0x4D1C +0x8234F637 0x4D1D +0x8234F638 0x4D1E +0x8234F639 0x4D1F +0x8234F730 0x4D20 +0x8234F731 0x4D21 +0x8234F732 0x4D22 +0x8234F733 0x4D23 +0x8234F734 0x4D24 +0x8234F735 0x4D25 +0x8234F736 0x4D26 +0x8234F737 0x4D27 +0x8234F738 0x4D28 +0x8234F739 0x4D29 +0x8234F830 0x4D2A +0x8234F831 0x4D2B +0x8234F832 0x4D2C +0x8234F833 0x4D2D +0x8234F834 0x4D2E +0x8234F835 0x4D2F +0x8234F836 0x4D30 +0x8234F837 0x4D31 +0x8234F838 0x4D32 +0x8234F839 0x4D33 +0x8234F930 0x4D34 +0x8234F931 0x4D35 +0x8234F932 0x4D36 +0x8234F933 0x4D37 +0x8234F934 0x4D38 +0x8234F935 0x4D39 +0x8234F936 0x4D3A +0x8234F937 0x4D3B +0x8234F938 0x4D3C +0x8234F939 0x4D3D +0x8234FA30 0x4D3E +0x8234FA31 0x4D3F +0x8234FA32 0x4D40 +0x8234FA33 0x4D41 +0x8234FA34 0x4D42 +0x8234FA35 0x4D43 +0x8234FA36 0x4D44 +0x8234FA37 0x4D45 +0x8234FA38 0x4D46 +0x8234FA39 0x4D47 +0x8234FB30 0x4D48 +0x8234FB31 0x4D49 +0x8234FB32 0x4D4A +0x8234FB33 0x4D4B +0x8234FB34 0x4D4C +0x8234FB35 0x4D4D +0x8234FB36 0x4D4E +0x8234FB37 0x4D4F +0x8234FB38 0x4D50 +0x8234FB39 0x4D51 +0x8234FC30 0x4D52 +0x8234FC31 0x4D53 +0x8234FC32 0x4D54 +0x8234FC33 0x4D55 +0x8234FC34 0x4D56 +0x8234FC35 0x4D57 +0x8234FC36 0x4D58 +0x8234FC37 0x4D59 +0x8234FC38 0x4D5A +0x8234FC39 0x4D5B +0x8234FD30 0x4D5C +0x8234FD31 0x4D5D +0x8234FD32 0x4D5E +0x8234FD33 0x4D5F +0x8234FD34 0x4D60 +0x8234FD35 0x4D61 +0x8234FD36 0x4D62 +0x8234FD37 0x4D63 +0x8234FD38 0x4D64 +0x8234FD39 0x4D65 +0x8234FE30 0x4D66 +0x8234FE31 0x4D67 +0x8234FE32 0x4D68 +0x8234FE33 0x4D69 +0x8234FE34 0x4D6A +0x8234FE35 0x4D6B +0x8234FE36 0x4D6C +0x8234FE37 0x4D6D +0x8234FE38 0x4D6E +0x8234FE39 0x4D6F +0x82358130 0x4D70 +0x82358131 0x4D71 +0x82358132 0x4D72 +0x82358133 0x4D73 +0x82358134 0x4D74 +0x82358135 0x4D75 +0x82358136 0x4D76 +0x82358137 0x4D77 +0x82358138 0x4D78 +0x82358139 0x4D79 +0x82358230 0x4D7A +0x82358231 0x4D7B +0x82358232 0x4D7C +0x82358233 0x4D7D +0x82358234 0x4D7E +0x82358235 0x4D7F +0x82358236 0x4D80 +0x82358237 0x4D81 +0x82358238 0x4D82 +0x82358239 0x4D83 +0x82358330 0x4D84 +0x82358331 0x4D85 +0x82358332 0x4D86 +0x82358333 0x4D87 +0x82358334 0x4D88 +0x82358335 0x4D89 +0x82358336 0x4D8A +0x82358337 0x4D8B +0x82358338 0x4D8C +0x82358339 0x4D8D +0x82358430 0x4D8E +0x82358431 0x4D8F +0x82358432 0x4D90 +0x82358433 0x4D91 +0x82358434 0x4D92 +0x82358435 0x4D93 +0x82358436 0x4D94 +0x82358437 0x4D95 +0x82358438 0x4D96 +0x82358439 0x4D97 +0x82358530 0x4D98 +0x82358531 0x4D99 +0x82358532 0x4D9A +0x82358533 0x4D9B +0x82358534 0x4D9C +0x82358535 0x4D9D +0x82358536 0x4D9E +0x82358537 0x4D9F +0x82358538 0x4DA0 +0x82358539 0x4DA1 +0x82358630 0x4DA2 +0x82358631 0x4DA3 +0x82358632 0x4DA4 +0x82358633 0x4DA5 +0x82358634 0x4DA6 +0x82358635 0x4DA7 +0x82358636 0x4DA8 +0x82358637 0x4DA9 +0x82358638 0x4DAA +0x82358639 0x4DAB +0x82358730 0x4DAC +0x82358731 0x4DAD +0x82358732 0x4DAF +0x82358733 0x4DB0 +0x82358734 0x4DB1 +0x82358735 0x4DB2 +0x82358736 0x4DB3 +0x82358737 0x4DB4 +0x82358738 0x4DB5 +0x82358739 0x4DB6 +0x82358830 0x4DB7 +0x82358831 0x4DB8 +0x82358832 0x4DB9 +0x82358833 0x4DBA +0x82358834 0x4DBB +0x82358835 0x4DBC +0x82358836 0x4DBD +0x82358837 0x4DBE +0x82358838 0x4DBF +0x82358839 0x4DC0 +0x82358930 0x4DC1 +0x82358931 0x4DC2 +0x82358932 0x4DC3 +0x82358933 0x4DC4 +0x82358934 0x4DC5 +0x82358935 0x4DC6 +0x82358936 0x4DC7 +0x82358937 0x4DC8 +0x82358938 0x4DC9 +0x82358939 0x4DCA +0x82358A30 0x4DCB +0x82358A31 0x4DCC +0x82358A32 0x4DCD +0x82358A33 0x4DCE +0x82358A34 0x4DCF +0x82358A35 0x4DD0 +0x82358A36 0x4DD1 +0x82358A37 0x4DD2 +0x82358A38 0x4DD3 +0x82358A39 0x4DD4 +0x82358B30 0x4DD5 +0x82358B31 0x4DD6 +0x82358B32 0x4DD7 +0x82358B33 0x4DD8 +0x82358B34 0x4DD9 +0x82358B35 0x4DDA +0x82358B36 0x4DDB +0x82358B37 0x4DDC +0x82358B38 0x4DDD +0x82358B39 0x4DDE +0x82358C30 0x4DDF +0x82358C31 0x4DE0 +0x82358C32 0x4DE1 +0x82358C33 0x4DE2 +0x82358C34 0x4DE3 +0x82358C35 0x4DE4 +0x82358C36 0x4DE5 +0x82358C37 0x4DE6 +0x82358C38 0x4DE7 +0x82358C39 0x4DE8 +0x82358D30 0x4DE9 +0x82358D31 0x4DEA +0x82358D32 0x4DEB +0x82358D33 0x4DEC +0x82358D34 0x4DED +0x82358D35 0x4DEE +0x82358D36 0x4DEF +0x82358D37 0x4DF0 +0x82358D38 0x4DF1 +0x82358D39 0x4DF2 +0x82358E30 0x4DF3 +0x82358E31 0x4DF4 +0x82358E32 0x4DF5 +0x82358E33 0x4DF6 +0x82358E34 0x4DF7 +0x82358E35 0x4DF8 +0x82358E36 0x4DF9 +0x82358E37 0x4DFA +0x82358E38 0x4DFB +0x82358E39 0x4DFC +0x82358F30 0x4DFD +0x82358F31 0x4DFE +0x82358F32 0x4DFF +0x82358F33 0x9FA6 +0x82358F34 0x9FA7 +0x82358F35 0x9FA8 +0x82358F36 0x9FA9 +0x82358F37 0x9FAA +0x82358F38 0x9FAB +0x82358F39 0x9FAC +0x82359030 0x9FAD +0x82359031 0x9FAE +0x82359032 0x9FAF +0x82359033 0x9FB0 +0x82359034 0x9FB1 +0x82359035 0x9FB2 +0x82359036 0x9FB3 +0x82359037 0x9FB4 +0x82359038 0x9FB5 +0x82359039 0x9FB6 +0x82359130 0x9FB7 +0x82359131 0x9FB8 +0x82359132 0x9FB9 +0x82359133 0x9FBA +0x82359134 0x9FBB +0x82359135 0x9FBC +0x82359136 0x9FBD +0x82359137 0x9FBE +0x82359138 0x9FBF +0x82359139 0x9FC0 +0x82359230 0x9FC1 +0x82359231 0x9FC2 +0x82359232 0x9FC3 +0x82359233 0x9FC4 +0x82359234 0x9FC5 +0x82359235 0x9FC6 +0x82359236 0x9FC7 +0x82359237 0x9FC8 +0x82359238 0x9FC9 +0x82359239 0x9FCA +0x82359330 0x9FCB +0x82359331 0x9FCC +0x82359332 0x9FCD +0x82359333 0x9FCE +0x82359334 0x9FCF +0x82359335 0x9FD0 +0x82359336 0x9FD1 +0x82359337 0x9FD2 +0x82359338 0x9FD3 +0x82359339 0x9FD4 +0x82359430 0x9FD5 +0x82359431 0x9FD6 +0x82359432 0x9FD7 +0x82359433 0x9FD8 +0x82359434 0x9FD9 +0x82359435 0x9FDA +0x82359436 0x9FDB +0x82359437 0x9FDC +0x82359438 0x9FDD +0x82359439 0x9FDE +0x82359530 0x9FDF +0x82359531 0x9FE0 +0x82359532 0x9FE1 +0x82359533 0x9FE2 +0x82359534 0x9FE3 +0x82359535 0x9FE4 +0x82359536 0x9FE5 +0x82359537 0x9FE6 +0x82359538 0x9FE7 +0x82359539 0x9FE8 +0x82359630 0x9FE9 +0x82359631 0x9FEA +0x82359632 0x9FEB +0x82359633 0x9FEC +0x82359634 0x9FED +0x82359635 0x9FEE +0x82359636 0x9FEF +0x82359637 0x9FF0 +0x82359638 0x9FF1 +0x82359639 0x9FF2 +0x82359730 0x9FF3 +0x82359731 0x9FF4 +0x82359732 0x9FF5 +0x82359733 0x9FF6 +0x82359734 0x9FF7 +0x82359735 0x9FF8 +0x82359736 0x9FF9 +0x82359737 0x9FFA +0x82359738 0x9FFB +0x82359739 0x9FFC +0x82359830 0x9FFD +0x82359831 0x9FFE +0x82359832 0x9FFF +0x82359833 0xA000 +0x82359834 0xA001 +0x82359835 0xA002 +0x82359836 0xA003 +0x82359837 0xA004 +0x82359838 0xA005 +0x82359839 0xA006 +0x82359930 0xA007 +0x82359931 0xA008 +0x82359932 0xA009 +0x82359933 0xA00A +0x82359934 0xA00B +0x82359935 0xA00C +0x82359936 0xA00D +0x82359937 0xA00E +0x82359938 0xA00F +0x82359939 0xA010 +0x82359A30 0xA011 +0x82359A31 0xA012 +0x82359A32 0xA013 +0x82359A33 0xA014 +0x82359A34 0xA015 +0x82359A35 0xA016 +0x82359A36 0xA017 +0x82359A37 0xA018 +0x82359A38 0xA019 +0x82359A39 0xA01A +0x82359B30 0xA01B +0x82359B31 0xA01C +0x82359B32 0xA01D +0x82359B33 0xA01E +0x82359B34 0xA01F +0x82359B35 0xA020 +0x82359B36 0xA021 +0x82359B37 0xA022 +0x82359B38 0xA023 +0x82359B39 0xA024 +0x82359C30 0xA025 +0x82359C31 0xA026 +0x82359C32 0xA027 +0x82359C33 0xA028 +0x82359C34 0xA029 +0x82359C35 0xA02A +0x82359C36 0xA02B +0x82359C37 0xA02C +0x82359C38 0xA02D +0x82359C39 0xA02E +0x82359D30 0xA02F +0x82359D31 0xA030 +0x82359D32 0xA031 +0x82359D33 0xA032 +0x82359D34 0xA033 +0x82359D35 0xA034 +0x82359D36 0xA035 +0x82359D37 0xA036 +0x82359D38 0xA037 +0x82359D39 0xA038 +0x82359E30 0xA039 +0x82359E31 0xA03A +0x82359E32 0xA03B +0x82359E33 0xA03C +0x82359E34 0xA03D +0x82359E35 0xA03E +0x82359E36 0xA03F +0x82359E37 0xA040 +0x82359E38 0xA041 +0x82359E39 0xA042 +0x82359F30 0xA043 +0x82359F31 0xA044 +0x82359F32 0xA045 +0x82359F33 0xA046 +0x82359F34 0xA047 +0x82359F35 0xA048 +0x82359F36 0xA049 +0x82359F37 0xA04A +0x82359F38 0xA04B +0x82359F39 0xA04C +0x8235A030 0xA04D +0x8235A031 0xA04E +0x8235A032 0xA04F +0x8235A033 0xA050 +0x8235A034 0xA051 +0x8235A035 0xA052 +0x8235A036 0xA053 +0x8235A037 0xA054 +0x8235A038 0xA055 +0x8235A039 0xA056 +0x8235A130 0xA057 +0x8235A131 0xA058 +0x8235A132 0xA059 +0x8235A133 0xA05A +0x8235A134 0xA05B +0x8235A135 0xA05C +0x8235A136 0xA05D +0x8235A137 0xA05E +0x8235A138 0xA05F +0x8235A139 0xA060 +0x8235A230 0xA061 +0x8235A231 0xA062 +0x8235A232 0xA063 +0x8235A233 0xA064 +0x8235A234 0xA065 +0x8235A235 0xA066 +0x8235A236 0xA067 +0x8235A237 0xA068 +0x8235A238 0xA069 +0x8235A239 0xA06A +0x8235A330 0xA06B +0x8235A331 0xA06C +0x8235A332 0xA06D +0x8235A333 0xA06E +0x8235A334 0xA06F +0x8235A335 0xA070 +0x8235A336 0xA071 +0x8235A337 0xA072 +0x8235A338 0xA073 +0x8235A339 0xA074 +0x8235A430 0xA075 +0x8235A431 0xA076 +0x8235A432 0xA077 +0x8235A433 0xA078 +0x8235A434 0xA079 +0x8235A435 0xA07A +0x8235A436 0xA07B +0x8235A437 0xA07C +0x8235A438 0xA07D +0x8235A439 0xA07E +0x8235A530 0xA07F +0x8235A531 0xA080 +0x8235A532 0xA081 +0x8235A533 0xA082 +0x8235A534 0xA083 +0x8235A535 0xA084 +0x8235A536 0xA085 +0x8235A537 0xA086 +0x8235A538 0xA087 +0x8235A539 0xA088 +0x8235A630 0xA089 +0x8235A631 0xA08A +0x8235A632 0xA08B +0x8235A633 0xA08C +0x8235A634 0xA08D +0x8235A635 0xA08E +0x8235A636 0xA08F +0x8235A637 0xA090 +0x8235A638 0xA091 +0x8235A639 0xA092 +0x8235A730 0xA093 +0x8235A731 0xA094 +0x8235A732 0xA095 +0x8235A733 0xA096 +0x8235A734 0xA097 +0x8235A735 0xA098 +0x8235A736 0xA099 +0x8235A737 0xA09A +0x8235A738 0xA09B +0x8235A739 0xA09C +0x8235A830 0xA09D +0x8235A831 0xA09E +0x8235A832 0xA09F +0x8235A833 0xA0A0 +0x8235A834 0xA0A1 +0x8235A835 0xA0A2 +0x8235A836 0xA0A3 +0x8235A837 0xA0A4 +0x8235A838 0xA0A5 +0x8235A839 0xA0A6 +0x8235A930 0xA0A7 +0x8235A931 0xA0A8 +0x8235A932 0xA0A9 +0x8235A933 0xA0AA +0x8235A934 0xA0AB +0x8235A935 0xA0AC +0x8235A936 0xA0AD +0x8235A937 0xA0AE +0x8235A938 0xA0AF +0x8235A939 0xA0B0 +0x8235AA30 0xA0B1 +0x8235AA31 0xA0B2 +0x8235AA32 0xA0B3 +0x8235AA33 0xA0B4 +0x8235AA34 0xA0B5 +0x8235AA35 0xA0B6 +0x8235AA36 0xA0B7 +0x8235AA37 0xA0B8 +0x8235AA38 0xA0B9 +0x8235AA39 0xA0BA +0x8235AB30 0xA0BB +0x8235AB31 0xA0BC +0x8235AB32 0xA0BD +0x8235AB33 0xA0BE +0x8235AB34 0xA0BF +0x8235AB35 0xA0C0 +0x8235AB36 0xA0C1 +0x8235AB37 0xA0C2 +0x8235AB38 0xA0C3 +0x8235AB39 0xA0C4 +0x8235AC30 0xA0C5 +0x8235AC31 0xA0C6 +0x8235AC32 0xA0C7 +0x8235AC33 0xA0C8 +0x8235AC34 0xA0C9 +0x8235AC35 0xA0CA +0x8235AC36 0xA0CB +0x8235AC37 0xA0CC +0x8235AC38 0xA0CD +0x8235AC39 0xA0CE +0x8235AD30 0xA0CF +0x8235AD31 0xA0D0 +0x8235AD32 0xA0D1 +0x8235AD33 0xA0D2 +0x8235AD34 0xA0D3 +0x8235AD35 0xA0D4 +0x8235AD36 0xA0D5 +0x8235AD37 0xA0D6 +0x8235AD38 0xA0D7 +0x8235AD39 0xA0D8 +0x8235AE30 0xA0D9 +0x8235AE31 0xA0DA +0x8235AE32 0xA0DB +0x8235AE33 0xA0DC +0x8235AE34 0xA0DD +0x8235AE35 0xA0DE +0x8235AE36 0xA0DF +0x8235AE37 0xA0E0 +0x8235AE38 0xA0E1 +0x8235AE39 0xA0E2 +0x8235AF30 0xA0E3 +0x8235AF31 0xA0E4 +0x8235AF32 0xA0E5 +0x8235AF33 0xA0E6 +0x8235AF34 0xA0E7 +0x8235AF35 0xA0E8 +0x8235AF36 0xA0E9 +0x8235AF37 0xA0EA +0x8235AF38 0xA0EB +0x8235AF39 0xA0EC +0x8235B030 0xA0ED +0x8235B031 0xA0EE +0x8235B032 0xA0EF +0x8235B033 0xA0F0 +0x8235B034 0xA0F1 +0x8235B035 0xA0F2 +0x8235B036 0xA0F3 +0x8235B037 0xA0F4 +0x8235B038 0xA0F5 +0x8235B039 0xA0F6 +0x8235B130 0xA0F7 +0x8235B131 0xA0F8 +0x8235B132 0xA0F9 +0x8235B133 0xA0FA +0x8235B134 0xA0FB +0x8235B135 0xA0FC +0x8235B136 0xA0FD +0x8235B137 0xA0FE +0x8235B138 0xA0FF +0x8235B139 0xA100 +0x8235B230 0xA101 +0x8235B231 0xA102 +0x8235B232 0xA103 +0x8235B233 0xA104 +0x8235B234 0xA105 +0x8235B235 0xA106 +0x8235B236 0xA107 +0x8235B237 0xA108 +0x8235B238 0xA109 +0x8235B239 0xA10A +0x8235B330 0xA10B +0x8235B331 0xA10C +0x8235B332 0xA10D +0x8235B333 0xA10E +0x8235B334 0xA10F +0x8235B335 0xA110 +0x8235B336 0xA111 +0x8235B337 0xA112 +0x8235B338 0xA113 +0x8235B339 0xA114 +0x8235B430 0xA115 +0x8235B431 0xA116 +0x8235B432 0xA117 +0x8235B433 0xA118 +0x8235B434 0xA119 +0x8235B435 0xA11A +0x8235B436 0xA11B +0x8235B437 0xA11C +0x8235B438 0xA11D +0x8235B439 0xA11E +0x8235B530 0xA11F +0x8235B531 0xA120 +0x8235B532 0xA121 +0x8235B533 0xA122 +0x8235B534 0xA123 +0x8235B535 0xA124 +0x8235B536 0xA125 +0x8235B537 0xA126 +0x8235B538 0xA127 +0x8235B539 0xA128 +0x8235B630 0xA129 +0x8235B631 0xA12A +0x8235B632 0xA12B +0x8235B633 0xA12C +0x8235B634 0xA12D +0x8235B635 0xA12E +0x8235B636 0xA12F +0x8235B637 0xA130 +0x8235B638 0xA131 +0x8235B639 0xA132 +0x8235B730 0xA133 +0x8235B731 0xA134 +0x8235B732 0xA135 +0x8235B733 0xA136 +0x8235B734 0xA137 +0x8235B735 0xA138 +0x8235B736 0xA139 +0x8235B737 0xA13A +0x8235B738 0xA13B +0x8235B739 0xA13C +0x8235B830 0xA13D +0x8235B831 0xA13E +0x8235B832 0xA13F +0x8235B833 0xA140 +0x8235B834 0xA141 +0x8235B835 0xA142 +0x8235B836 0xA143 +0x8235B837 0xA144 +0x8235B838 0xA145 +0x8235B839 0xA146 +0x8235B930 0xA147 +0x8235B931 0xA148 +0x8235B932 0xA149 +0x8235B933 0xA14A +0x8235B934 0xA14B +0x8235B935 0xA14C +0x8235B936 0xA14D +0x8235B937 0xA14E +0x8235B938 0xA14F +0x8235B939 0xA150 +0x8235BA30 0xA151 +0x8235BA31 0xA152 +0x8235BA32 0xA153 +0x8235BA33 0xA154 +0x8235BA34 0xA155 +0x8235BA35 0xA156 +0x8235BA36 0xA157 +0x8235BA37 0xA158 +0x8235BA38 0xA159 +0x8235BA39 0xA15A +0x8235BB30 0xA15B +0x8235BB31 0xA15C +0x8235BB32 0xA15D +0x8235BB33 0xA15E +0x8235BB34 0xA15F +0x8235BB35 0xA160 +0x8235BB36 0xA161 +0x8235BB37 0xA162 +0x8235BB38 0xA163 +0x8235BB39 0xA164 +0x8235BC30 0xA165 +0x8235BC31 0xA166 +0x8235BC32 0xA167 +0x8235BC33 0xA168 +0x8235BC34 0xA169 +0x8235BC35 0xA16A +0x8235BC36 0xA16B +0x8235BC37 0xA16C +0x8235BC38 0xA16D +0x8235BC39 0xA16E +0x8235BD30 0xA16F +0x8235BD31 0xA170 +0x8235BD32 0xA171 +0x8235BD33 0xA172 +0x8235BD34 0xA173 +0x8235BD35 0xA174 +0x8235BD36 0xA175 +0x8235BD37 0xA176 +0x8235BD38 0xA177 +0x8235BD39 0xA178 +0x8235BE30 0xA179 +0x8235BE31 0xA17A +0x8235BE32 0xA17B +0x8235BE33 0xA17C +0x8235BE34 0xA17D +0x8235BE35 0xA17E +0x8235BE36 0xA17F +0x8235BE37 0xA180 +0x8235BE38 0xA181 +0x8235BE39 0xA182 +0x8235BF30 0xA183 +0x8235BF31 0xA184 +0x8235BF32 0xA185 +0x8235BF33 0xA186 +0x8235BF34 0xA187 +0x8235BF35 0xA188 +0x8235BF36 0xA189 +0x8235BF37 0xA18A +0x8235BF38 0xA18B +0x8235BF39 0xA18C +0x8235C030 0xA18D +0x8235C031 0xA18E +0x8235C032 0xA18F +0x8235C033 0xA190 +0x8235C034 0xA191 +0x8235C035 0xA192 +0x8235C036 0xA193 +0x8235C037 0xA194 +0x8235C038 0xA195 +0x8235C039 0xA196 +0x8235C130 0xA197 +0x8235C131 0xA198 +0x8235C132 0xA199 +0x8235C133 0xA19A +0x8235C134 0xA19B +0x8235C135 0xA19C +0x8235C136 0xA19D +0x8235C137 0xA19E +0x8235C138 0xA19F +0x8235C139 0xA1A0 +0x8235C230 0xA1A1 +0x8235C231 0xA1A2 +0x8235C232 0xA1A3 +0x8235C233 0xA1A4 +0x8235C234 0xA1A5 +0x8235C235 0xA1A6 +0x8235C236 0xA1A7 +0x8235C237 0xA1A8 +0x8235C238 0xA1A9 +0x8235C239 0xA1AA +0x8235C330 0xA1AB +0x8235C331 0xA1AC +0x8235C332 0xA1AD +0x8235C333 0xA1AE +0x8235C334 0xA1AF +0x8235C335 0xA1B0 +0x8235C336 0xA1B1 +0x8235C337 0xA1B2 +0x8235C338 0xA1B3 +0x8235C339 0xA1B4 +0x8235C430 0xA1B5 +0x8235C431 0xA1B6 +0x8235C432 0xA1B7 +0x8235C433 0xA1B8 +0x8235C434 0xA1B9 +0x8235C435 0xA1BA +0x8235C436 0xA1BB +0x8235C437 0xA1BC +0x8235C438 0xA1BD +0x8235C439 0xA1BE +0x8235C530 0xA1BF +0x8235C531 0xA1C0 +0x8235C532 0xA1C1 +0x8235C533 0xA1C2 +0x8235C534 0xA1C3 +0x8235C535 0xA1C4 +0x8235C536 0xA1C5 +0x8235C537 0xA1C6 +0x8235C538 0xA1C7 +0x8235C539 0xA1C8 +0x8235C630 0xA1C9 +0x8235C631 0xA1CA +0x8235C632 0xA1CB +0x8235C633 0xA1CC +0x8235C634 0xA1CD +0x8235C635 0xA1CE +0x8235C636 0xA1CF +0x8235C637 0xA1D0 +0x8235C638 0xA1D1 +0x8235C639 0xA1D2 +0x8235C730 0xA1D3 +0x8235C731 0xA1D4 +0x8235C732 0xA1D5 +0x8235C733 0xA1D6 +0x8235C734 0xA1D7 +0x8235C735 0xA1D8 +0x8235C736 0xA1D9 +0x8235C737 0xA1DA +0x8235C738 0xA1DB +0x8235C739 0xA1DC +0x8235C830 0xA1DD +0x8235C831 0xA1DE +0x8235C832 0xA1DF +0x8235C833 0xA1E0 +0x8235C834 0xA1E1 +0x8235C835 0xA1E2 +0x8235C836 0xA1E3 +0x8235C837 0xA1E4 +0x8235C838 0xA1E5 +0x8235C839 0xA1E6 +0x8235C930 0xA1E7 +0x8235C931 0xA1E8 +0x8235C932 0xA1E9 +0x8235C933 0xA1EA +0x8235C934 0xA1EB +0x8235C935 0xA1EC +0x8235C936 0xA1ED +0x8235C937 0xA1EE +0x8235C938 0xA1EF +0x8235C939 0xA1F0 +0x8235CA30 0xA1F1 +0x8235CA31 0xA1F2 +0x8235CA32 0xA1F3 +0x8235CA33 0xA1F4 +0x8235CA34 0xA1F5 +0x8235CA35 0xA1F6 +0x8235CA36 0xA1F7 +0x8235CA37 0xA1F8 +0x8235CA38 0xA1F9 +0x8235CA39 0xA1FA +0x8235CB30 0xA1FB +0x8235CB31 0xA1FC +0x8235CB32 0xA1FD +0x8235CB33 0xA1FE +0x8235CB34 0xA1FF +0x8235CB35 0xA200 +0x8235CB36 0xA201 +0x8235CB37 0xA202 +0x8235CB38 0xA203 +0x8235CB39 0xA204 +0x8235CC30 0xA205 +0x8235CC31 0xA206 +0x8235CC32 0xA207 +0x8235CC33 0xA208 +0x8235CC34 0xA209 +0x8235CC35 0xA20A +0x8235CC36 0xA20B +0x8235CC37 0xA20C +0x8235CC38 0xA20D +0x8235CC39 0xA20E +0x8235CD30 0xA20F +0x8235CD31 0xA210 +0x8235CD32 0xA211 +0x8235CD33 0xA212 +0x8235CD34 0xA213 +0x8235CD35 0xA214 +0x8235CD36 0xA215 +0x8235CD37 0xA216 +0x8235CD38 0xA217 +0x8235CD39 0xA218 +0x8235CE30 0xA219 +0x8235CE31 0xA21A +0x8235CE32 0xA21B +0x8235CE33 0xA21C +0x8235CE34 0xA21D +0x8235CE35 0xA21E +0x8235CE36 0xA21F +0x8235CE37 0xA220 +0x8235CE38 0xA221 +0x8235CE39 0xA222 +0x8235CF30 0xA223 +0x8235CF31 0xA224 +0x8235CF32 0xA225 +0x8235CF33 0xA226 +0x8235CF34 0xA227 +0x8235CF35 0xA228 +0x8235CF36 0xA229 +0x8235CF37 0xA22A +0x8235CF38 0xA22B +0x8235CF39 0xA22C +0x8235D030 0xA22D +0x8235D031 0xA22E +0x8235D032 0xA22F +0x8235D033 0xA230 +0x8235D034 0xA231 +0x8235D035 0xA232 +0x8235D036 0xA233 +0x8235D037 0xA234 +0x8235D038 0xA235 +0x8235D039 0xA236 +0x8235D130 0xA237 +0x8235D131 0xA238 +0x8235D132 0xA239 +0x8235D133 0xA23A +0x8235D134 0xA23B +0x8235D135 0xA23C +0x8235D136 0xA23D +0x8235D137 0xA23E +0x8235D138 0xA23F +0x8235D139 0xA240 +0x8235D230 0xA241 +0x8235D231 0xA242 +0x8235D232 0xA243 +0x8235D233 0xA244 +0x8235D234 0xA245 +0x8235D235 0xA246 +0x8235D236 0xA247 +0x8235D237 0xA248 +0x8235D238 0xA249 +0x8235D239 0xA24A +0x8235D330 0xA24B +0x8235D331 0xA24C +0x8235D332 0xA24D +0x8235D333 0xA24E +0x8235D334 0xA24F +0x8235D335 0xA250 +0x8235D336 0xA251 +0x8235D337 0xA252 +0x8235D338 0xA253 +0x8235D339 0xA254 +0x8235D430 0xA255 +0x8235D431 0xA256 +0x8235D432 0xA257 +0x8235D433 0xA258 +0x8235D434 0xA259 +0x8235D435 0xA25A +0x8235D436 0xA25B +0x8235D437 0xA25C +0x8235D438 0xA25D +0x8235D439 0xA25E +0x8235D530 0xA25F +0x8235D531 0xA260 +0x8235D532 0xA261 +0x8235D533 0xA262 +0x8235D534 0xA263 +0x8235D535 0xA264 +0x8235D536 0xA265 +0x8235D537 0xA266 +0x8235D538 0xA267 +0x8235D539 0xA268 +0x8235D630 0xA269 +0x8235D631 0xA26A +0x8235D632 0xA26B +0x8235D633 0xA26C +0x8235D634 0xA26D +0x8235D635 0xA26E +0x8235D636 0xA26F +0x8235D637 0xA270 +0x8235D638 0xA271 +0x8235D639 0xA272 +0x8235D730 0xA273 +0x8235D731 0xA274 +0x8235D732 0xA275 +0x8235D733 0xA276 +0x8235D734 0xA277 +0x8235D735 0xA278 +0x8235D736 0xA279 +0x8235D737 0xA27A +0x8235D738 0xA27B +0x8235D739 0xA27C +0x8235D830 0xA27D +0x8235D831 0xA27E +0x8235D832 0xA27F +0x8235D833 0xA280 +0x8235D834 0xA281 +0x8235D835 0xA282 +0x8235D836 0xA283 +0x8235D837 0xA284 +0x8235D838 0xA285 +0x8235D839 0xA286 +0x8235D930 0xA287 +0x8235D931 0xA288 +0x8235D932 0xA289 +0x8235D933 0xA28A +0x8235D934 0xA28B +0x8235D935 0xA28C +0x8235D936 0xA28D +0x8235D937 0xA28E +0x8235D938 0xA28F +0x8235D939 0xA290 +0x8235DA30 0xA291 +0x8235DA31 0xA292 +0x8235DA32 0xA293 +0x8235DA33 0xA294 +0x8235DA34 0xA295 +0x8235DA35 0xA296 +0x8235DA36 0xA297 +0x8235DA37 0xA298 +0x8235DA38 0xA299 +0x8235DA39 0xA29A +0x8235DB30 0xA29B +0x8235DB31 0xA29C +0x8235DB32 0xA29D +0x8235DB33 0xA29E +0x8235DB34 0xA29F +0x8235DB35 0xA2A0 +0x8235DB36 0xA2A1 +0x8235DB37 0xA2A2 +0x8235DB38 0xA2A3 +0x8235DB39 0xA2A4 +0x8235DC30 0xA2A5 +0x8235DC31 0xA2A6 +0x8235DC32 0xA2A7 +0x8235DC33 0xA2A8 +0x8235DC34 0xA2A9 +0x8235DC35 0xA2AA +0x8235DC36 0xA2AB +0x8235DC37 0xA2AC +0x8235DC38 0xA2AD +0x8235DC39 0xA2AE +0x8235DD30 0xA2AF +0x8235DD31 0xA2B0 +0x8235DD32 0xA2B1 +0x8235DD33 0xA2B2 +0x8235DD34 0xA2B3 +0x8235DD35 0xA2B4 +0x8235DD36 0xA2B5 +0x8235DD37 0xA2B6 +0x8235DD38 0xA2B7 +0x8235DD39 0xA2B8 +0x8235DE30 0xA2B9 +0x8235DE31 0xA2BA +0x8235DE32 0xA2BB +0x8235DE33 0xA2BC +0x8235DE34 0xA2BD +0x8235DE35 0xA2BE +0x8235DE36 0xA2BF +0x8235DE37 0xA2C0 +0x8235DE38 0xA2C1 +0x8235DE39 0xA2C2 +0x8235DF30 0xA2C3 +0x8235DF31 0xA2C4 +0x8235DF32 0xA2C5 +0x8235DF33 0xA2C6 +0x8235DF34 0xA2C7 +0x8235DF35 0xA2C8 +0x8235DF36 0xA2C9 +0x8235DF37 0xA2CA +0x8235DF38 0xA2CB +0x8235DF39 0xA2CC +0x8235E030 0xA2CD +0x8235E031 0xA2CE +0x8235E032 0xA2CF +0x8235E033 0xA2D0 +0x8235E034 0xA2D1 +0x8235E035 0xA2D2 +0x8235E036 0xA2D3 +0x8235E037 0xA2D4 +0x8235E038 0xA2D5 +0x8235E039 0xA2D6 +0x8235E130 0xA2D7 +0x8235E131 0xA2D8 +0x8235E132 0xA2D9 +0x8235E133 0xA2DA +0x8235E134 0xA2DB +0x8235E135 0xA2DC +0x8235E136 0xA2DD +0x8235E137 0xA2DE +0x8235E138 0xA2DF +0x8235E139 0xA2E0 +0x8235E230 0xA2E1 +0x8235E231 0xA2E2 +0x8235E232 0xA2E3 +0x8235E233 0xA2E4 +0x8235E234 0xA2E5 +0x8235E235 0xA2E6 +0x8235E236 0xA2E7 +0x8235E237 0xA2E8 +0x8235E238 0xA2E9 +0x8235E239 0xA2EA +0x8235E330 0xA2EB +0x8235E331 0xA2EC +0x8235E332 0xA2ED +0x8235E333 0xA2EE +0x8235E334 0xA2EF +0x8235E335 0xA2F0 +0x8235E336 0xA2F1 +0x8235E337 0xA2F2 +0x8235E338 0xA2F3 +0x8235E339 0xA2F4 +0x8235E430 0xA2F5 +0x8235E431 0xA2F6 +0x8235E432 0xA2F7 +0x8235E433 0xA2F8 +0x8235E434 0xA2F9 +0x8235E435 0xA2FA +0x8235E436 0xA2FB +0x8235E437 0xA2FC +0x8235E438 0xA2FD +0x8235E439 0xA2FE +0x8235E530 0xA2FF +0x8235E531 0xA300 +0x8235E532 0xA301 +0x8235E533 0xA302 +0x8235E534 0xA303 +0x8235E535 0xA304 +0x8235E536 0xA305 +0x8235E537 0xA306 +0x8235E538 0xA307 +0x8235E539 0xA308 +0x8235E630 0xA309 +0x8235E631 0xA30A +0x8235E632 0xA30B +0x8235E633 0xA30C +0x8235E634 0xA30D +0x8235E635 0xA30E +0x8235E636 0xA30F +0x8235E637 0xA310 +0x8235E638 0xA311 +0x8235E639 0xA312 +0x8235E730 0xA313 +0x8235E731 0xA314 +0x8235E732 0xA315 +0x8235E733 0xA316 +0x8235E734 0xA317 +0x8235E735 0xA318 +0x8235E736 0xA319 +0x8235E737 0xA31A +0x8235E738 0xA31B +0x8235E739 0xA31C +0x8235E830 0xA31D +0x8235E831 0xA31E +0x8235E832 0xA31F +0x8235E833 0xA320 +0x8235E834 0xA321 +0x8235E835 0xA322 +0x8235E836 0xA323 +0x8235E837 0xA324 +0x8235E838 0xA325 +0x8235E839 0xA326 +0x8235E930 0xA327 +0x8235E931 0xA328 +0x8235E932 0xA329 +0x8235E933 0xA32A +0x8235E934 0xA32B +0x8235E935 0xA32C +0x8235E936 0xA32D +0x8235E937 0xA32E +0x8235E938 0xA32F +0x8235E939 0xA330 +0x8235EA30 0xA331 +0x8235EA31 0xA332 +0x8235EA32 0xA333 +0x8235EA33 0xA334 +0x8235EA34 0xA335 +0x8235EA35 0xA336 +0x8235EA36 0xA337 +0x8235EA37 0xA338 +0x8235EA38 0xA339 +0x8235EA39 0xA33A +0x8235EB30 0xA33B +0x8235EB31 0xA33C +0x8235EB32 0xA33D +0x8235EB33 0xA33E +0x8235EB34 0xA33F +0x8235EB35 0xA340 +0x8235EB36 0xA341 +0x8235EB37 0xA342 +0x8235EB38 0xA343 +0x8235EB39 0xA344 +0x8235EC30 0xA345 +0x8235EC31 0xA346 +0x8235EC32 0xA347 +0x8235EC33 0xA348 +0x8235EC34 0xA349 +0x8235EC35 0xA34A +0x8235EC36 0xA34B +0x8235EC37 0xA34C +0x8235EC38 0xA34D +0x8235EC39 0xA34E +0x8235ED30 0xA34F +0x8235ED31 0xA350 +0x8235ED32 0xA351 +0x8235ED33 0xA352 +0x8235ED34 0xA353 +0x8235ED35 0xA354 +0x8235ED36 0xA355 +0x8235ED37 0xA356 +0x8235ED38 0xA357 +0x8235ED39 0xA358 +0x8235EE30 0xA359 +0x8235EE31 0xA35A +0x8235EE32 0xA35B +0x8235EE33 0xA35C +0x8235EE34 0xA35D +0x8235EE35 0xA35E +0x8235EE36 0xA35F +0x8235EE37 0xA360 +0x8235EE38 0xA361 +0x8235EE39 0xA362 +0x8235EF30 0xA363 +0x8235EF31 0xA364 +0x8235EF32 0xA365 +0x8235EF33 0xA366 +0x8235EF34 0xA367 +0x8235EF35 0xA368 +0x8235EF36 0xA369 +0x8235EF37 0xA36A +0x8235EF38 0xA36B +0x8235EF39 0xA36C +0x8235F030 0xA36D +0x8235F031 0xA36E +0x8235F032 0xA36F +0x8235F033 0xA370 +0x8235F034 0xA371 +0x8235F035 0xA372 +0x8235F036 0xA373 +0x8235F037 0xA374 +0x8235F038 0xA375 +0x8235F039 0xA376 +0x8235F130 0xA377 +0x8235F131 0xA378 +0x8235F132 0xA379 +0x8235F133 0xA37A +0x8235F134 0xA37B +0x8235F135 0xA37C +0x8235F136 0xA37D +0x8235F137 0xA37E +0x8235F138 0xA37F +0x8235F139 0xA380 +0x8235F230 0xA381 +0x8235F231 0xA382 +0x8235F232 0xA383 +0x8235F233 0xA384 +0x8235F234 0xA385 +0x8235F235 0xA386 +0x8235F236 0xA387 +0x8235F237 0xA388 +0x8235F238 0xA389 +0x8235F239 0xA38A +0x8235F330 0xA38B +0x8235F331 0xA38C +0x8235F332 0xA38D +0x8235F333 0xA38E +0x8235F334 0xA38F +0x8235F335 0xA390 +0x8235F336 0xA391 +0x8235F337 0xA392 +0x8235F338 0xA393 +0x8235F339 0xA394 +0x8235F430 0xA395 +0x8235F431 0xA396 +0x8235F432 0xA397 +0x8235F433 0xA398 +0x8235F434 0xA399 +0x8235F435 0xA39A +0x8235F436 0xA39B +0x8235F437 0xA39C +0x8235F438 0xA39D +0x8235F439 0xA39E +0x8235F530 0xA39F +0x8235F531 0xA3A0 +0x8235F532 0xA3A1 +0x8235F533 0xA3A2 +0x8235F534 0xA3A3 +0x8235F535 0xA3A4 +0x8235F536 0xA3A5 +0x8235F537 0xA3A6 +0x8235F538 0xA3A7 +0x8235F539 0xA3A8 +0x8235F630 0xA3A9 +0x8235F631 0xA3AA +0x8235F632 0xA3AB +0x8235F633 0xA3AC +0x8235F634 0xA3AD +0x8235F635 0xA3AE +0x8235F636 0xA3AF +0x8235F637 0xA3B0 +0x8235F638 0xA3B1 +0x8235F639 0xA3B2 +0x8235F730 0xA3B3 +0x8235F731 0xA3B4 +0x8235F732 0xA3B5 +0x8235F733 0xA3B6 +0x8235F734 0xA3B7 +0x8235F735 0xA3B8 +0x8235F736 0xA3B9 +0x8235F737 0xA3BA +0x8235F738 0xA3BB +0x8235F739 0xA3BC +0x8235F830 0xA3BD +0x8235F831 0xA3BE +0x8235F832 0xA3BF +0x8235F833 0xA3C0 +0x8235F834 0xA3C1 +0x8235F835 0xA3C2 +0x8235F836 0xA3C3 +0x8235F837 0xA3C4 +0x8235F838 0xA3C5 +0x8235F839 0xA3C6 +0x8235F930 0xA3C7 +0x8235F931 0xA3C8 +0x8235F932 0xA3C9 +0x8235F933 0xA3CA +0x8235F934 0xA3CB +0x8235F935 0xA3CC +0x8235F936 0xA3CD +0x8235F937 0xA3CE +0x8235F938 0xA3CF +0x8235F939 0xA3D0 +0x8235FA30 0xA3D1 +0x8235FA31 0xA3D2 +0x8235FA32 0xA3D3 +0x8235FA33 0xA3D4 +0x8235FA34 0xA3D5 +0x8235FA35 0xA3D6 +0x8235FA36 0xA3D7 +0x8235FA37 0xA3D8 +0x8235FA38 0xA3D9 +0x8235FA39 0xA3DA +0x8235FB30 0xA3DB +0x8235FB31 0xA3DC +0x8235FB32 0xA3DD +0x8235FB33 0xA3DE +0x8235FB34 0xA3DF +0x8235FB35 0xA3E0 +0x8235FB36 0xA3E1 +0x8235FB37 0xA3E2 +0x8235FB38 0xA3E3 +0x8235FB39 0xA3E4 +0x8235FC30 0xA3E5 +0x8235FC31 0xA3E6 +0x8235FC32 0xA3E7 +0x8235FC33 0xA3E8 +0x8235FC34 0xA3E9 +0x8235FC35 0xA3EA +0x8235FC36 0xA3EB +0x8235FC37 0xA3EC +0x8235FC38 0xA3ED +0x8235FC39 0xA3EE +0x8235FD30 0xA3EF +0x8235FD31 0xA3F0 +0x8235FD32 0xA3F1 +0x8235FD33 0xA3F2 +0x8235FD34 0xA3F3 +0x8235FD35 0xA3F4 +0x8235FD36 0xA3F5 +0x8235FD37 0xA3F6 +0x8235FD38 0xA3F7 +0x8235FD39 0xA3F8 +0x8235FE30 0xA3F9 +0x8235FE31 0xA3FA +0x8235FE32 0xA3FB +0x8235FE33 0xA3FC +0x8235FE34 0xA3FD +0x8235FE35 0xA3FE +0x8235FE36 0xA3FF +0x8235FE37 0xA400 +0x8235FE38 0xA401 +0x8235FE39 0xA402 +0x82368130 0xA403 +0x82368131 0xA404 +0x82368132 0xA405 +0x82368133 0xA406 +0x82368134 0xA407 +0x82368135 0xA408 +0x82368136 0xA409 +0x82368137 0xA40A +0x82368138 0xA40B +0x82368139 0xA40C +0x82368230 0xA40D +0x82368231 0xA40E +0x82368232 0xA40F +0x82368233 0xA410 +0x82368234 0xA411 +0x82368235 0xA412 +0x82368236 0xA413 +0x82368237 0xA414 +0x82368238 0xA415 +0x82368239 0xA416 +0x82368330 0xA417 +0x82368331 0xA418 +0x82368332 0xA419 +0x82368333 0xA41A +0x82368334 0xA41B +0x82368335 0xA41C +0x82368336 0xA41D +0x82368337 0xA41E +0x82368338 0xA41F +0x82368339 0xA420 +0x82368430 0xA421 +0x82368431 0xA422 +0x82368432 0xA423 +0x82368433 0xA424 +0x82368434 0xA425 +0x82368435 0xA426 +0x82368436 0xA427 +0x82368437 0xA428 +0x82368438 0xA429 +0x82368439 0xA42A +0x82368530 0xA42B +0x82368531 0xA42C +0x82368532 0xA42D +0x82368533 0xA42E +0x82368534 0xA42F +0x82368535 0xA430 +0x82368536 0xA431 +0x82368537 0xA432 +0x82368538 0xA433 +0x82368539 0xA434 +0x82368630 0xA435 +0x82368631 0xA436 +0x82368632 0xA437 +0x82368633 0xA438 +0x82368634 0xA439 +0x82368635 0xA43A +0x82368636 0xA43B +0x82368637 0xA43C +0x82368638 0xA43D +0x82368639 0xA43E +0x82368730 0xA43F +0x82368731 0xA440 +0x82368732 0xA441 +0x82368733 0xA442 +0x82368734 0xA443 +0x82368735 0xA444 +0x82368736 0xA445 +0x82368737 0xA446 +0x82368738 0xA447 +0x82368739 0xA448 +0x82368830 0xA449 +0x82368831 0xA44A +0x82368832 0xA44B +0x82368833 0xA44C +0x82368834 0xA44D +0x82368835 0xA44E +0x82368836 0xA44F +0x82368837 0xA450 +0x82368838 0xA451 +0x82368839 0xA452 +0x82368930 0xA453 +0x82368931 0xA454 +0x82368932 0xA455 +0x82368933 0xA456 +0x82368934 0xA457 +0x82368935 0xA458 +0x82368936 0xA459 +0x82368937 0xA45A +0x82368938 0xA45B +0x82368939 0xA45C +0x82368A30 0xA45D +0x82368A31 0xA45E +0x82368A32 0xA45F +0x82368A33 0xA460 +0x82368A34 0xA461 +0x82368A35 0xA462 +0x82368A36 0xA463 +0x82368A37 0xA464 +0x82368A38 0xA465 +0x82368A39 0xA466 +0x82368B30 0xA467 +0x82368B31 0xA468 +0x82368B32 0xA469 +0x82368B33 0xA46A +0x82368B34 0xA46B +0x82368B35 0xA46C +0x82368B36 0xA46D +0x82368B37 0xA46E +0x82368B38 0xA46F +0x82368B39 0xA470 +0x82368C30 0xA471 +0x82368C31 0xA472 +0x82368C32 0xA473 +0x82368C33 0xA474 +0x82368C34 0xA475 +0x82368C35 0xA476 +0x82368C36 0xA477 +0x82368C37 0xA478 +0x82368C38 0xA479 +0x82368C39 0xA47A +0x82368D30 0xA47B +0x82368D31 0xA47C +0x82368D32 0xA47D +0x82368D33 0xA47E +0x82368D34 0xA47F +0x82368D35 0xA480 +0x82368D36 0xA481 +0x82368D37 0xA482 +0x82368D38 0xA483 +0x82368D39 0xA484 +0x82368E30 0xA485 +0x82368E31 0xA486 +0x82368E32 0xA487 +0x82368E33 0xA488 +0x82368E34 0xA489 +0x82368E35 0xA48A +0x82368E36 0xA48B +0x82368E37 0xA48C +0x82368E38 0xA48D +0x82368E39 0xA48E +0x82368F30 0xA48F +0x82368F31 0xA490 +0x82368F32 0xA491 +0x82368F33 0xA492 +0x82368F34 0xA493 +0x82368F35 0xA494 +0x82368F36 0xA495 +0x82368F37 0xA496 +0x82368F38 0xA497 +0x82368F39 0xA498 +0x82369030 0xA499 +0x82369031 0xA49A +0x82369032 0xA49B +0x82369033 0xA49C +0x82369034 0xA49D +0x82369035 0xA49E +0x82369036 0xA49F +0x82369037 0xA4A0 +0x82369038 0xA4A1 +0x82369039 0xA4A2 +0x82369130 0xA4A3 +0x82369131 0xA4A4 +0x82369132 0xA4A5 +0x82369133 0xA4A6 +0x82369134 0xA4A7 +0x82369135 0xA4A8 +0x82369136 0xA4A9 +0x82369137 0xA4AA +0x82369138 0xA4AB +0x82369139 0xA4AC +0x82369230 0xA4AD +0x82369231 0xA4AE +0x82369232 0xA4AF +0x82369233 0xA4B0 +0x82369234 0xA4B1 +0x82369235 0xA4B2 +0x82369236 0xA4B3 +0x82369237 0xA4B4 +0x82369238 0xA4B5 +0x82369239 0xA4B6 +0x82369330 0xA4B7 +0x82369331 0xA4B8 +0x82369332 0xA4B9 +0x82369333 0xA4BA +0x82369334 0xA4BB +0x82369335 0xA4BC +0x82369336 0xA4BD +0x82369337 0xA4BE +0x82369338 0xA4BF +0x82369339 0xA4C0 +0x82369430 0xA4C1 +0x82369431 0xA4C2 +0x82369432 0xA4C3 +0x82369433 0xA4C4 +0x82369434 0xA4C5 +0x82369435 0xA4C6 +0x82369436 0xA4C7 +0x82369437 0xA4C8 +0x82369438 0xA4C9 +0x82369439 0xA4CA +0x82369530 0xA4CB +0x82369531 0xA4CC +0x82369532 0xA4CD +0x82369533 0xA4CE +0x82369534 0xA4CF +0x82369535 0xA4D0 +0x82369536 0xA4D1 +0x82369537 0xA4D2 +0x82369538 0xA4D3 +0x82369539 0xA4D4 +0x82369630 0xA4D5 +0x82369631 0xA4D6 +0x82369632 0xA4D7 +0x82369633 0xA4D8 +0x82369634 0xA4D9 +0x82369635 0xA4DA +0x82369636 0xA4DB +0x82369637 0xA4DC +0x82369638 0xA4DD +0x82369639 0xA4DE +0x82369730 0xA4DF +0x82369731 0xA4E0 +0x82369732 0xA4E1 +0x82369733 0xA4E2 +0x82369734 0xA4E3 +0x82369735 0xA4E4 +0x82369736 0xA4E5 +0x82369737 0xA4E6 +0x82369738 0xA4E7 +0x82369739 0xA4E8 +0x82369830 0xA4E9 +0x82369831 0xA4EA +0x82369832 0xA4EB +0x82369833 0xA4EC +0x82369834 0xA4ED +0x82369835 0xA4EE +0x82369836 0xA4EF +0x82369837 0xA4F0 +0x82369838 0xA4F1 +0x82369839 0xA4F2 +0x82369930 0xA4F3 +0x82369931 0xA4F4 +0x82369932 0xA4F5 +0x82369933 0xA4F6 +0x82369934 0xA4F7 +0x82369935 0xA4F8 +0x82369936 0xA4F9 +0x82369937 0xA4FA +0x82369938 0xA4FB +0x82369939 0xA4FC +0x82369A30 0xA4FD +0x82369A31 0xA4FE +0x82369A32 0xA4FF +0x82369A33 0xA500 +0x82369A34 0xA501 +0x82369A35 0xA502 +0x82369A36 0xA503 +0x82369A37 0xA504 +0x82369A38 0xA505 +0x82369A39 0xA506 +0x82369B30 0xA507 +0x82369B31 0xA508 +0x82369B32 0xA509 +0x82369B33 0xA50A +0x82369B34 0xA50B +0x82369B35 0xA50C +0x82369B36 0xA50D +0x82369B37 0xA50E +0x82369B38 0xA50F +0x82369B39 0xA510 +0x82369C30 0xA511 +0x82369C31 0xA512 +0x82369C32 0xA513 +0x82369C33 0xA514 +0x82369C34 0xA515 +0x82369C35 0xA516 +0x82369C36 0xA517 +0x82369C37 0xA518 +0x82369C38 0xA519 +0x82369C39 0xA51A +0x82369D30 0xA51B +0x82369D31 0xA51C +0x82369D32 0xA51D +0x82369D33 0xA51E +0x82369D34 0xA51F +0x82369D35 0xA520 +0x82369D36 0xA521 +0x82369D37 0xA522 +0x82369D38 0xA523 +0x82369D39 0xA524 +0x82369E30 0xA525 +0x82369E31 0xA526 +0x82369E32 0xA527 +0x82369E33 0xA528 +0x82369E34 0xA529 +0x82369E35 0xA52A +0x82369E36 0xA52B +0x82369E37 0xA52C +0x82369E38 0xA52D +0x82369E39 0xA52E +0x82369F30 0xA52F +0x82369F31 0xA530 +0x82369F32 0xA531 +0x82369F33 0xA532 +0x82369F34 0xA533 +0x82369F35 0xA534 +0x82369F36 0xA535 +0x82369F37 0xA536 +0x82369F38 0xA537 +0x82369F39 0xA538 +0x8236A030 0xA539 +0x8236A031 0xA53A +0x8236A032 0xA53B +0x8236A033 0xA53C +0x8236A034 0xA53D +0x8236A035 0xA53E +0x8236A036 0xA53F +0x8236A037 0xA540 +0x8236A038 0xA541 +0x8236A039 0xA542 +0x8236A130 0xA543 +0x8236A131 0xA544 +0x8236A132 0xA545 +0x8236A133 0xA546 +0x8236A134 0xA547 +0x8236A135 0xA548 +0x8236A136 0xA549 +0x8236A137 0xA54A +0x8236A138 0xA54B +0x8236A139 0xA54C +0x8236A230 0xA54D +0x8236A231 0xA54E +0x8236A232 0xA54F +0x8236A233 0xA550 +0x8236A234 0xA551 +0x8236A235 0xA552 +0x8236A236 0xA553 +0x8236A237 0xA554 +0x8236A238 0xA555 +0x8236A239 0xA556 +0x8236A330 0xA557 +0x8236A331 0xA558 +0x8236A332 0xA559 +0x8236A333 0xA55A +0x8236A334 0xA55B +0x8236A335 0xA55C +0x8236A336 0xA55D +0x8236A337 0xA55E +0x8236A338 0xA55F +0x8236A339 0xA560 +0x8236A430 0xA561 +0x8236A431 0xA562 +0x8236A432 0xA563 +0x8236A433 0xA564 +0x8236A434 0xA565 +0x8236A435 0xA566 +0x8236A436 0xA567 +0x8236A437 0xA568 +0x8236A438 0xA569 +0x8236A439 0xA56A +0x8236A530 0xA56B +0x8236A531 0xA56C +0x8236A532 0xA56D +0x8236A533 0xA56E +0x8236A534 0xA56F +0x8236A535 0xA570 +0x8236A536 0xA571 +0x8236A537 0xA572 +0x8236A538 0xA573 +0x8236A539 0xA574 +0x8236A630 0xA575 +0x8236A631 0xA576 +0x8236A632 0xA577 +0x8236A633 0xA578 +0x8236A634 0xA579 +0x8236A635 0xA57A +0x8236A636 0xA57B +0x8236A637 0xA57C +0x8236A638 0xA57D +0x8236A639 0xA57E +0x8236A730 0xA57F +0x8236A731 0xA580 +0x8236A732 0xA581 +0x8236A733 0xA582 +0x8236A734 0xA583 +0x8236A735 0xA584 +0x8236A736 0xA585 +0x8236A737 0xA586 +0x8236A738 0xA587 +0x8236A739 0xA588 +0x8236A830 0xA589 +0x8236A831 0xA58A +0x8236A832 0xA58B +0x8236A833 0xA58C +0x8236A834 0xA58D +0x8236A835 0xA58E +0x8236A836 0xA58F +0x8236A837 0xA590 +0x8236A838 0xA591 +0x8236A839 0xA592 +0x8236A930 0xA593 +0x8236A931 0xA594 +0x8236A932 0xA595 +0x8236A933 0xA596 +0x8236A934 0xA597 +0x8236A935 0xA598 +0x8236A936 0xA599 +0x8236A937 0xA59A +0x8236A938 0xA59B +0x8236A939 0xA59C +0x8236AA30 0xA59D +0x8236AA31 0xA59E +0x8236AA32 0xA59F +0x8236AA33 0xA5A0 +0x8236AA34 0xA5A1 +0x8236AA35 0xA5A2 +0x8236AA36 0xA5A3 +0x8236AA37 0xA5A4 +0x8236AA38 0xA5A5 +0x8236AA39 0xA5A6 +0x8236AB30 0xA5A7 +0x8236AB31 0xA5A8 +0x8236AB32 0xA5A9 +0x8236AB33 0xA5AA +0x8236AB34 0xA5AB +0x8236AB35 0xA5AC +0x8236AB36 0xA5AD +0x8236AB37 0xA5AE +0x8236AB38 0xA5AF +0x8236AB39 0xA5B0 +0x8236AC30 0xA5B1 +0x8236AC31 0xA5B2 +0x8236AC32 0xA5B3 +0x8236AC33 0xA5B4 +0x8236AC34 0xA5B5 +0x8236AC35 0xA5B6 +0x8236AC36 0xA5B7 +0x8236AC37 0xA5B8 +0x8236AC38 0xA5B9 +0x8236AC39 0xA5BA +0x8236AD30 0xA5BB +0x8236AD31 0xA5BC +0x8236AD32 0xA5BD +0x8236AD33 0xA5BE +0x8236AD34 0xA5BF +0x8236AD35 0xA5C0 +0x8236AD36 0xA5C1 +0x8236AD37 0xA5C2 +0x8236AD38 0xA5C3 +0x8236AD39 0xA5C4 +0x8236AE30 0xA5C5 +0x8236AE31 0xA5C6 +0x8236AE32 0xA5C7 +0x8236AE33 0xA5C8 +0x8236AE34 0xA5C9 +0x8236AE35 0xA5CA +0x8236AE36 0xA5CB +0x8236AE37 0xA5CC +0x8236AE38 0xA5CD +0x8236AE39 0xA5CE +0x8236AF30 0xA5CF +0x8236AF31 0xA5D0 +0x8236AF32 0xA5D1 +0x8236AF33 0xA5D2 +0x8236AF34 0xA5D3 +0x8236AF35 0xA5D4 +0x8236AF36 0xA5D5 +0x8236AF37 0xA5D6 +0x8236AF38 0xA5D7 +0x8236AF39 0xA5D8 +0x8236B030 0xA5D9 +0x8236B031 0xA5DA +0x8236B032 0xA5DB +0x8236B033 0xA5DC +0x8236B034 0xA5DD +0x8236B035 0xA5DE +0x8236B036 0xA5DF +0x8236B037 0xA5E0 +0x8236B038 0xA5E1 +0x8236B039 0xA5E2 +0x8236B130 0xA5E3 +0x8236B131 0xA5E4 +0x8236B132 0xA5E5 +0x8236B133 0xA5E6 +0x8236B134 0xA5E7 +0x8236B135 0xA5E8 +0x8236B136 0xA5E9 +0x8236B137 0xA5EA +0x8236B138 0xA5EB +0x8236B139 0xA5EC +0x8236B230 0xA5ED +0x8236B231 0xA5EE +0x8236B232 0xA5EF +0x8236B233 0xA5F0 +0x8236B234 0xA5F1 +0x8236B235 0xA5F2 +0x8236B236 0xA5F3 +0x8236B237 0xA5F4 +0x8236B238 0xA5F5 +0x8236B239 0xA5F6 +0x8236B330 0xA5F7 +0x8236B331 0xA5F8 +0x8236B332 0xA5F9 +0x8236B333 0xA5FA +0x8236B334 0xA5FB +0x8236B335 0xA5FC +0x8236B336 0xA5FD +0x8236B337 0xA5FE +0x8236B338 0xA5FF +0x8236B339 0xA600 +0x8236B430 0xA601 +0x8236B431 0xA602 +0x8236B432 0xA603 +0x8236B433 0xA604 +0x8236B434 0xA605 +0x8236B435 0xA606 +0x8236B436 0xA607 +0x8236B437 0xA608 +0x8236B438 0xA609 +0x8236B439 0xA60A +0x8236B530 0xA60B +0x8236B531 0xA60C +0x8236B532 0xA60D +0x8236B533 0xA60E +0x8236B534 0xA60F +0x8236B535 0xA610 +0x8236B536 0xA611 +0x8236B537 0xA612 +0x8236B538 0xA613 +0x8236B539 0xA614 +0x8236B630 0xA615 +0x8236B631 0xA616 +0x8236B632 0xA617 +0x8236B633 0xA618 +0x8236B634 0xA619 +0x8236B635 0xA61A +0x8236B636 0xA61B +0x8236B637 0xA61C +0x8236B638 0xA61D +0x8236B639 0xA61E +0x8236B730 0xA61F +0x8236B731 0xA620 +0x8236B732 0xA621 +0x8236B733 0xA622 +0x8236B734 0xA623 +0x8236B735 0xA624 +0x8236B736 0xA625 +0x8236B737 0xA626 +0x8236B738 0xA627 +0x8236B739 0xA628 +0x8236B830 0xA629 +0x8236B831 0xA62A +0x8236B832 0xA62B +0x8236B833 0xA62C +0x8236B834 0xA62D +0x8236B835 0xA62E +0x8236B836 0xA62F +0x8236B837 0xA630 +0x8236B838 0xA631 +0x8236B839 0xA632 +0x8236B930 0xA633 +0x8236B931 0xA634 +0x8236B932 0xA635 +0x8236B933 0xA636 +0x8236B934 0xA637 +0x8236B935 0xA638 +0x8236B936 0xA639 +0x8236B937 0xA63A +0x8236B938 0xA63B +0x8236B939 0xA63C +0x8236BA30 0xA63D +0x8236BA31 0xA63E +0x8236BA32 0xA63F +0x8236BA33 0xA640 +0x8236BA34 0xA641 +0x8236BA35 0xA642 +0x8236BA36 0xA643 +0x8236BA37 0xA644 +0x8236BA38 0xA645 +0x8236BA39 0xA646 +0x8236BB30 0xA647 +0x8236BB31 0xA648 +0x8236BB32 0xA649 +0x8236BB33 0xA64A +0x8236BB34 0xA64B +0x8236BB35 0xA64C +0x8236BB36 0xA64D +0x8236BB37 0xA64E +0x8236BB38 0xA64F +0x8236BB39 0xA650 +0x8236BC30 0xA651 +0x8236BC31 0xA652 +0x8236BC32 0xA653 +0x8236BC33 0xA654 +0x8236BC34 0xA655 +0x8236BC35 0xA656 +0x8236BC36 0xA657 +0x8236BC37 0xA658 +0x8236BC38 0xA659 +0x8236BC39 0xA65A +0x8236BD30 0xA65B +0x8236BD31 0xA65C +0x8236BD32 0xA65D +0x8236BD33 0xA65E +0x8236BD34 0xA65F +0x8236BD35 0xA660 +0x8236BD36 0xA661 +0x8236BD37 0xA662 +0x8236BD38 0xA663 +0x8236BD39 0xA664 +0x8236BE30 0xA665 +0x8236BE31 0xA666 +0x8236BE32 0xA667 +0x8236BE33 0xA668 +0x8236BE34 0xA669 +0x8236BE35 0xA66A +0x8236BE36 0xA66B +0x8236BE37 0xA66C +0x8236BE38 0xA66D +0x8236BE39 0xA66E +0x8236BF30 0xA66F +0x8236BF31 0xA670 +0x8236BF32 0xA671 +0x8236BF33 0xA672 +0x8236BF34 0xA673 +0x8236BF35 0xA674 +0x8236BF36 0xA675 +0x8236BF37 0xA676 +0x8236BF38 0xA677 +0x8236BF39 0xA678 +0x8236C030 0xA679 +0x8236C031 0xA67A +0x8236C032 0xA67B +0x8236C033 0xA67C +0x8236C034 0xA67D +0x8236C035 0xA67E +0x8236C036 0xA67F +0x8236C037 0xA680 +0x8236C038 0xA681 +0x8236C039 0xA682 +0x8236C130 0xA683 +0x8236C131 0xA684 +0x8236C132 0xA685 +0x8236C133 0xA686 +0x8236C134 0xA687 +0x8236C135 0xA688 +0x8236C136 0xA689 +0x8236C137 0xA68A +0x8236C138 0xA68B +0x8236C139 0xA68C +0x8236C230 0xA68D +0x8236C231 0xA68E +0x8236C232 0xA68F +0x8236C233 0xA690 +0x8236C234 0xA691 +0x8236C235 0xA692 +0x8236C236 0xA693 +0x8236C237 0xA694 +0x8236C238 0xA695 +0x8236C239 0xA696 +0x8236C330 0xA697 +0x8236C331 0xA698 +0x8236C332 0xA699 +0x8236C333 0xA69A +0x8236C334 0xA69B +0x8236C335 0xA69C +0x8236C336 0xA69D +0x8236C337 0xA69E +0x8236C338 0xA69F +0x8236C339 0xA6A0 +0x8236C430 0xA6A1 +0x8236C431 0xA6A2 +0x8236C432 0xA6A3 +0x8236C433 0xA6A4 +0x8236C434 0xA6A5 +0x8236C435 0xA6A6 +0x8236C436 0xA6A7 +0x8236C437 0xA6A8 +0x8236C438 0xA6A9 +0x8236C439 0xA6AA +0x8236C530 0xA6AB +0x8236C531 0xA6AC +0x8236C532 0xA6AD +0x8236C533 0xA6AE +0x8236C534 0xA6AF +0x8236C535 0xA6B0 +0x8236C536 0xA6B1 +0x8236C537 0xA6B2 +0x8236C538 0xA6B3 +0x8236C539 0xA6B4 +0x8236C630 0xA6B5 +0x8236C631 0xA6B6 +0x8236C632 0xA6B7 +0x8236C633 0xA6B8 +0x8236C634 0xA6B9 +0x8236C635 0xA6BA +0x8236C636 0xA6BB +0x8236C637 0xA6BC +0x8236C638 0xA6BD +0x8236C639 0xA6BE +0x8236C730 0xA6BF +0x8236C731 0xA6C0 +0x8236C732 0xA6C1 +0x8236C733 0xA6C2 +0x8236C734 0xA6C3 +0x8236C735 0xA6C4 +0x8236C736 0xA6C5 +0x8236C737 0xA6C6 +0x8236C738 0xA6C7 +0x8236C739 0xA6C8 +0x8236C830 0xA6C9 +0x8236C831 0xA6CA +0x8236C832 0xA6CB +0x8236C833 0xA6CC +0x8236C834 0xA6CD +0x8236C835 0xA6CE +0x8236C836 0xA6CF +0x8236C837 0xA6D0 +0x8236C838 0xA6D1 +0x8236C839 0xA6D2 +0x8236C930 0xA6D3 +0x8236C931 0xA6D4 +0x8236C932 0xA6D5 +0x8236C933 0xA6D6 +0x8236C934 0xA6D7 +0x8236C935 0xA6D8 +0x8236C936 0xA6D9 +0x8236C937 0xA6DA +0x8236C938 0xA6DB +0x8236C939 0xA6DC +0x8236CA30 0xA6DD +0x8236CA31 0xA6DE +0x8236CA32 0xA6DF +0x8236CA33 0xA6E0 +0x8236CA34 0xA6E1 +0x8236CA35 0xA6E2 +0x8236CA36 0xA6E3 +0x8236CA37 0xA6E4 +0x8236CA38 0xA6E5 +0x8236CA39 0xA6E6 +0x8236CB30 0xA6E7 +0x8236CB31 0xA6E8 +0x8236CB32 0xA6E9 +0x8236CB33 0xA6EA +0x8236CB34 0xA6EB +0x8236CB35 0xA6EC +0x8236CB36 0xA6ED +0x8236CB37 0xA6EE +0x8236CB38 0xA6EF +0x8236CB39 0xA6F0 +0x8236CC30 0xA6F1 +0x8236CC31 0xA6F2 +0x8236CC32 0xA6F3 +0x8236CC33 0xA6F4 +0x8236CC34 0xA6F5 +0x8236CC35 0xA6F6 +0x8236CC36 0xA6F7 +0x8236CC37 0xA6F8 +0x8236CC38 0xA6F9 +0x8236CC39 0xA6FA +0x8236CD30 0xA6FB +0x8236CD31 0xA6FC +0x8236CD32 0xA6FD +0x8236CD33 0xA6FE +0x8236CD34 0xA6FF +0x8236CD35 0xA700 +0x8236CD36 0xA701 +0x8236CD37 0xA702 +0x8236CD38 0xA703 +0x8236CD39 0xA704 +0x8236CE30 0xA705 +0x8236CE31 0xA706 +0x8236CE32 0xA707 +0x8236CE33 0xA708 +0x8236CE34 0xA709 +0x8236CE35 0xA70A +0x8236CE36 0xA70B +0x8236CE37 0xA70C +0x8236CE38 0xA70D +0x8236CE39 0xA70E +0x8236CF30 0xA70F +0x8236CF31 0xA710 +0x8236CF32 0xA711 +0x8236CF33 0xA712 +0x8236CF34 0xA713 +0x8236CF35 0xA714 +0x8236CF36 0xA715 +0x8236CF37 0xA716 +0x8236CF38 0xA717 +0x8236CF39 0xA718 +0x8236D030 0xA719 +0x8236D031 0xA71A +0x8236D032 0xA71B +0x8236D033 0xA71C +0x8236D034 0xA71D +0x8236D035 0xA71E +0x8236D036 0xA71F +0x8236D037 0xA720 +0x8236D038 0xA721 +0x8236D039 0xA722 +0x8236D130 0xA723 +0x8236D131 0xA724 +0x8236D132 0xA725 +0x8236D133 0xA726 +0x8236D134 0xA727 +0x8236D135 0xA728 +0x8236D136 0xA729 +0x8236D137 0xA72A +0x8236D138 0xA72B +0x8236D139 0xA72C +0x8236D230 0xA72D +0x8236D231 0xA72E +0x8236D232 0xA72F +0x8236D233 0xA730 +0x8236D234 0xA731 +0x8236D235 0xA732 +0x8236D236 0xA733 +0x8236D237 0xA734 +0x8236D238 0xA735 +0x8236D239 0xA736 +0x8236D330 0xA737 +0x8236D331 0xA738 +0x8236D332 0xA739 +0x8236D333 0xA73A +0x8236D334 0xA73B +0x8236D335 0xA73C +0x8236D336 0xA73D +0x8236D337 0xA73E +0x8236D338 0xA73F +0x8236D339 0xA740 +0x8236D430 0xA741 +0x8236D431 0xA742 +0x8236D432 0xA743 +0x8236D433 0xA744 +0x8236D434 0xA745 +0x8236D435 0xA746 +0x8236D436 0xA747 +0x8236D437 0xA748 +0x8236D438 0xA749 +0x8236D439 0xA74A +0x8236D530 0xA74B +0x8236D531 0xA74C +0x8236D532 0xA74D +0x8236D533 0xA74E +0x8236D534 0xA74F +0x8236D535 0xA750 +0x8236D536 0xA751 +0x8236D537 0xA752 +0x8236D538 0xA753 +0x8236D539 0xA754 +0x8236D630 0xA755 +0x8236D631 0xA756 +0x8236D632 0xA757 +0x8236D633 0xA758 +0x8236D634 0xA759 +0x8236D635 0xA75A +0x8236D636 0xA75B +0x8236D637 0xA75C +0x8236D638 0xA75D +0x8236D639 0xA75E +0x8236D730 0xA75F +0x8236D731 0xA760 +0x8236D732 0xA761 +0x8236D733 0xA762 +0x8236D734 0xA763 +0x8236D735 0xA764 +0x8236D736 0xA765 +0x8236D737 0xA766 +0x8236D738 0xA767 +0x8236D739 0xA768 +0x8236D830 0xA769 +0x8236D831 0xA76A +0x8236D832 0xA76B +0x8236D833 0xA76C +0x8236D834 0xA76D +0x8236D835 0xA76E +0x8236D836 0xA76F +0x8236D837 0xA770 +0x8236D838 0xA771 +0x8236D839 0xA772 +0x8236D930 0xA773 +0x8236D931 0xA774 +0x8236D932 0xA775 +0x8236D933 0xA776 +0x8236D934 0xA777 +0x8236D935 0xA778 +0x8236D936 0xA779 +0x8236D937 0xA77A +0x8236D938 0xA77B +0x8236D939 0xA77C +0x8236DA30 0xA77D +0x8236DA31 0xA77E +0x8236DA32 0xA77F +0x8236DA33 0xA780 +0x8236DA34 0xA781 +0x8236DA35 0xA782 +0x8236DA36 0xA783 +0x8236DA37 0xA784 +0x8236DA38 0xA785 +0x8236DA39 0xA786 +0x8236DB30 0xA787 +0x8236DB31 0xA788 +0x8236DB32 0xA789 +0x8236DB33 0xA78A +0x8236DB34 0xA78B +0x8236DB35 0xA78C +0x8236DB36 0xA78D +0x8236DB37 0xA78E +0x8236DB38 0xA78F +0x8236DB39 0xA790 +0x8236DC30 0xA791 +0x8236DC31 0xA792 +0x8236DC32 0xA793 +0x8236DC33 0xA794 +0x8236DC34 0xA795 +0x8236DC35 0xA796 +0x8236DC36 0xA797 +0x8236DC37 0xA798 +0x8236DC38 0xA799 +0x8236DC39 0xA79A +0x8236DD30 0xA79B +0x8236DD31 0xA79C +0x8236DD32 0xA79D +0x8236DD33 0xA79E +0x8236DD34 0xA79F +0x8236DD35 0xA7A0 +0x8236DD36 0xA7A1 +0x8236DD37 0xA7A2 +0x8236DD38 0xA7A3 +0x8236DD39 0xA7A4 +0x8236DE30 0xA7A5 +0x8236DE31 0xA7A6 +0x8236DE32 0xA7A7 +0x8236DE33 0xA7A8 +0x8236DE34 0xA7A9 +0x8236DE35 0xA7AA +0x8236DE36 0xA7AB +0x8236DE37 0xA7AC +0x8236DE38 0xA7AD +0x8236DE39 0xA7AE +0x8236DF30 0xA7AF +0x8236DF31 0xA7B0 +0x8236DF32 0xA7B1 +0x8236DF33 0xA7B2 +0x8236DF34 0xA7B3 +0x8236DF35 0xA7B4 +0x8236DF36 0xA7B5 +0x8236DF37 0xA7B6 +0x8236DF38 0xA7B7 +0x8236DF39 0xA7B8 +0x8236E030 0xA7B9 +0x8236E031 0xA7BA +0x8236E032 0xA7BB +0x8236E033 0xA7BC +0x8236E034 0xA7BD +0x8236E035 0xA7BE +0x8236E036 0xA7BF +0x8236E037 0xA7C0 +0x8236E038 0xA7C1 +0x8236E039 0xA7C2 +0x8236E130 0xA7C3 +0x8236E131 0xA7C4 +0x8236E132 0xA7C5 +0x8236E133 0xA7C6 +0x8236E134 0xA7C7 +0x8236E135 0xA7C8 +0x8236E136 0xA7C9 +0x8236E137 0xA7CA +0x8236E138 0xA7CB +0x8236E139 0xA7CC +0x8236E230 0xA7CD +0x8236E231 0xA7CE +0x8236E232 0xA7CF +0x8236E233 0xA7D0 +0x8236E234 0xA7D1 +0x8236E235 0xA7D2 +0x8236E236 0xA7D3 +0x8236E237 0xA7D4 +0x8236E238 0xA7D5 +0x8236E239 0xA7D6 +0x8236E330 0xA7D7 +0x8236E331 0xA7D8 +0x8236E332 0xA7D9 +0x8236E333 0xA7DA +0x8236E334 0xA7DB +0x8236E335 0xA7DC +0x8236E336 0xA7DD +0x8236E337 0xA7DE +0x8236E338 0xA7DF +0x8236E339 0xA7E0 +0x8236E430 0xA7E1 +0x8236E431 0xA7E2 +0x8236E432 0xA7E3 +0x8236E433 0xA7E4 +0x8236E434 0xA7E5 +0x8236E435 0xA7E6 +0x8236E436 0xA7E7 +0x8236E437 0xA7E8 +0x8236E438 0xA7E9 +0x8236E439 0xA7EA +0x8236E530 0xA7EB +0x8236E531 0xA7EC +0x8236E532 0xA7ED +0x8236E533 0xA7EE +0x8236E534 0xA7EF +0x8236E535 0xA7F0 +0x8236E536 0xA7F1 +0x8236E537 0xA7F2 +0x8236E538 0xA7F3 +0x8236E539 0xA7F4 +0x8236E630 0xA7F5 +0x8236E631 0xA7F6 +0x8236E632 0xA7F7 +0x8236E633 0xA7F8 +0x8236E634 0xA7F9 +0x8236E635 0xA7FA +0x8236E636 0xA7FB +0x8236E637 0xA7FC +0x8236E638 0xA7FD +0x8236E639 0xA7FE +0x8236E730 0xA7FF +0x8236E731 0xA800 +0x8236E732 0xA801 +0x8236E733 0xA802 +0x8236E734 0xA803 +0x8236E735 0xA804 +0x8236E736 0xA805 +0x8236E737 0xA806 +0x8236E738 0xA807 +0x8236E739 0xA808 +0x8236E830 0xA809 +0x8236E831 0xA80A +0x8236E832 0xA80B +0x8236E833 0xA80C +0x8236E834 0xA80D +0x8236E835 0xA80E +0x8236E836 0xA80F +0x8236E837 0xA810 +0x8236E838 0xA811 +0x8236E839 0xA812 +0x8236E930 0xA813 +0x8236E931 0xA814 +0x8236E932 0xA815 +0x8236E933 0xA816 +0x8236E934 0xA817 +0x8236E935 0xA818 +0x8236E936 0xA819 +0x8236E937 0xA81A +0x8236E938 0xA81B +0x8236E939 0xA81C +0x8236EA30 0xA81D +0x8236EA31 0xA81E +0x8236EA32 0xA81F +0x8236EA33 0xA820 +0x8236EA34 0xA821 +0x8236EA35 0xA822 +0x8236EA36 0xA823 +0x8236EA37 0xA824 +0x8236EA38 0xA825 +0x8236EA39 0xA826 +0x8236EB30 0xA827 +0x8236EB31 0xA828 +0x8236EB32 0xA829 +0x8236EB33 0xA82A +0x8236EB34 0xA82B +0x8236EB35 0xA82C +0x8236EB36 0xA82D +0x8236EB37 0xA82E +0x8236EB38 0xA82F +0x8236EB39 0xA830 +0x8236EC30 0xA831 +0x8236EC31 0xA832 +0x8236EC32 0xA833 +0x8236EC33 0xA834 +0x8236EC34 0xA835 +0x8236EC35 0xA836 +0x8236EC36 0xA837 +0x8236EC37 0xA838 +0x8236EC38 0xA839 +0x8236EC39 0xA83A +0x8236ED30 0xA83B +0x8236ED31 0xA83C +0x8236ED32 0xA83D +0x8236ED33 0xA83E +0x8236ED34 0xA83F +0x8236ED35 0xA840 +0x8236ED36 0xA841 +0x8236ED37 0xA842 +0x8236ED38 0xA843 +0x8236ED39 0xA844 +0x8236EE30 0xA845 +0x8236EE31 0xA846 +0x8236EE32 0xA847 +0x8236EE33 0xA848 +0x8236EE34 0xA849 +0x8236EE35 0xA84A +0x8236EE36 0xA84B +0x8236EE37 0xA84C +0x8236EE38 0xA84D +0x8236EE39 0xA84E +0x8236EF30 0xA84F +0x8236EF31 0xA850 +0x8236EF32 0xA851 +0x8236EF33 0xA852 +0x8236EF34 0xA853 +0x8236EF35 0xA854 +0x8236EF36 0xA855 +0x8236EF37 0xA856 +0x8236EF38 0xA857 +0x8236EF39 0xA858 +0x8236F030 0xA859 +0x8236F031 0xA85A +0x8236F032 0xA85B +0x8236F033 0xA85C +0x8236F034 0xA85D +0x8236F035 0xA85E +0x8236F036 0xA85F +0x8236F037 0xA860 +0x8236F038 0xA861 +0x8236F039 0xA862 +0x8236F130 0xA863 +0x8236F131 0xA864 +0x8236F132 0xA865 +0x8236F133 0xA866 +0x8236F134 0xA867 +0x8236F135 0xA868 +0x8236F136 0xA869 +0x8236F137 0xA86A +0x8236F138 0xA86B +0x8236F139 0xA86C +0x8236F230 0xA86D +0x8236F231 0xA86E +0x8236F232 0xA86F +0x8236F233 0xA870 +0x8236F234 0xA871 +0x8236F235 0xA872 +0x8236F236 0xA873 +0x8236F237 0xA874 +0x8236F238 0xA875 +0x8236F239 0xA876 +0x8236F330 0xA877 +0x8236F331 0xA878 +0x8236F332 0xA879 +0x8236F333 0xA87A +0x8236F334 0xA87B +0x8236F335 0xA87C +0x8236F336 0xA87D +0x8236F337 0xA87E +0x8236F338 0xA87F +0x8236F339 0xA880 +0x8236F430 0xA881 +0x8236F431 0xA882 +0x8236F432 0xA883 +0x8236F433 0xA884 +0x8236F434 0xA885 +0x8236F435 0xA886 +0x8236F436 0xA887 +0x8236F437 0xA888 +0x8236F438 0xA889 +0x8236F439 0xA88A +0x8236F530 0xA88B +0x8236F531 0xA88C +0x8236F532 0xA88D +0x8236F533 0xA88E +0x8236F534 0xA88F +0x8236F535 0xA890 +0x8236F536 0xA891 +0x8236F537 0xA892 +0x8236F538 0xA893 +0x8236F539 0xA894 +0x8236F630 0xA895 +0x8236F631 0xA896 +0x8236F632 0xA897 +0x8236F633 0xA898 +0x8236F634 0xA899 +0x8236F635 0xA89A +0x8236F636 0xA89B +0x8236F637 0xA89C +0x8236F638 0xA89D +0x8236F639 0xA89E +0x8236F730 0xA89F +0x8236F731 0xA8A0 +0x8236F732 0xA8A1 +0x8236F733 0xA8A2 +0x8236F734 0xA8A3 +0x8236F735 0xA8A4 +0x8236F736 0xA8A5 +0x8236F737 0xA8A6 +0x8236F738 0xA8A7 +0x8236F739 0xA8A8 +0x8236F830 0xA8A9 +0x8236F831 0xA8AA +0x8236F832 0xA8AB +0x8236F833 0xA8AC +0x8236F834 0xA8AD +0x8236F835 0xA8AE +0x8236F836 0xA8AF +0x8236F837 0xA8B0 +0x8236F838 0xA8B1 +0x8236F839 0xA8B2 +0x8236F930 0xA8B3 +0x8236F931 0xA8B4 +0x8236F932 0xA8B5 +0x8236F933 0xA8B6 +0x8236F934 0xA8B7 +0x8236F935 0xA8B8 +0x8236F936 0xA8B9 +0x8236F937 0xA8BA +0x8236F938 0xA8BB +0x8236F939 0xA8BC +0x8236FA30 0xA8BD +0x8236FA31 0xA8BE +0x8236FA32 0xA8BF +0x8236FA33 0xA8C0 +0x8236FA34 0xA8C1 +0x8236FA35 0xA8C2 +0x8236FA36 0xA8C3 +0x8236FA37 0xA8C4 +0x8236FA38 0xA8C5 +0x8236FA39 0xA8C6 +0x8236FB30 0xA8C7 +0x8236FB31 0xA8C8 +0x8236FB32 0xA8C9 +0x8236FB33 0xA8CA +0x8236FB34 0xA8CB +0x8236FB35 0xA8CC +0x8236FB36 0xA8CD +0x8236FB37 0xA8CE +0x8236FB38 0xA8CF +0x8236FB39 0xA8D0 +0x8236FC30 0xA8D1 +0x8236FC31 0xA8D2 +0x8236FC32 0xA8D3 +0x8236FC33 0xA8D4 +0x8236FC34 0xA8D5 +0x8236FC35 0xA8D6 +0x8236FC36 0xA8D7 +0x8236FC37 0xA8D8 +0x8236FC38 0xA8D9 +0x8236FC39 0xA8DA +0x8236FD30 0xA8DB +0x8236FD31 0xA8DC +0x8236FD32 0xA8DD +0x8236FD33 0xA8DE +0x8236FD34 0xA8DF +0x8236FD35 0xA8E0 +0x8236FD36 0xA8E1 +0x8236FD37 0xA8E2 +0x8236FD38 0xA8E3 +0x8236FD39 0xA8E4 +0x8236FE30 0xA8E5 +0x8236FE31 0xA8E6 +0x8236FE32 0xA8E7 +0x8236FE33 0xA8E8 +0x8236FE34 0xA8E9 +0x8236FE35 0xA8EA +0x8236FE36 0xA8EB +0x8236FE37 0xA8EC +0x8236FE38 0xA8ED +0x8236FE39 0xA8EE +0x82378130 0xA8EF +0x82378131 0xA8F0 +0x82378132 0xA8F1 +0x82378133 0xA8F2 +0x82378134 0xA8F3 +0x82378135 0xA8F4 +0x82378136 0xA8F5 +0x82378137 0xA8F6 +0x82378138 0xA8F7 +0x82378139 0xA8F8 +0x82378230 0xA8F9 +0x82378231 0xA8FA +0x82378232 0xA8FB +0x82378233 0xA8FC +0x82378234 0xA8FD +0x82378235 0xA8FE +0x82378236 0xA8FF +0x82378237 0xA900 +0x82378238 0xA901 +0x82378239 0xA902 +0x82378330 0xA903 +0x82378331 0xA904 +0x82378332 0xA905 +0x82378333 0xA906 +0x82378334 0xA907 +0x82378335 0xA908 +0x82378336 0xA909 +0x82378337 0xA90A +0x82378338 0xA90B +0x82378339 0xA90C +0x82378430 0xA90D +0x82378431 0xA90E +0x82378432 0xA90F +0x82378433 0xA910 +0x82378434 0xA911 +0x82378435 0xA912 +0x82378436 0xA913 +0x82378437 0xA914 +0x82378438 0xA915 +0x82378439 0xA916 +0x82378530 0xA917 +0x82378531 0xA918 +0x82378532 0xA919 +0x82378533 0xA91A +0x82378534 0xA91B +0x82378535 0xA91C +0x82378536 0xA91D +0x82378537 0xA91E +0x82378538 0xA91F +0x82378539 0xA920 +0x82378630 0xA921 +0x82378631 0xA922 +0x82378632 0xA923 +0x82378633 0xA924 +0x82378634 0xA925 +0x82378635 0xA926 +0x82378636 0xA927 +0x82378637 0xA928 +0x82378638 0xA929 +0x82378639 0xA92A +0x82378730 0xA92B +0x82378731 0xA92C +0x82378732 0xA92D +0x82378733 0xA92E +0x82378734 0xA92F +0x82378735 0xA930 +0x82378736 0xA931 +0x82378737 0xA932 +0x82378738 0xA933 +0x82378739 0xA934 +0x82378830 0xA935 +0x82378831 0xA936 +0x82378832 0xA937 +0x82378833 0xA938 +0x82378834 0xA939 +0x82378835 0xA93A +0x82378836 0xA93B +0x82378837 0xA93C +0x82378838 0xA93D +0x82378839 0xA93E +0x82378930 0xA93F +0x82378931 0xA940 +0x82378932 0xA941 +0x82378933 0xA942 +0x82378934 0xA943 +0x82378935 0xA944 +0x82378936 0xA945 +0x82378937 0xA946 +0x82378938 0xA947 +0x82378939 0xA948 +0x82378A30 0xA949 +0x82378A31 0xA94A +0x82378A32 0xA94B +0x82378A33 0xA94C +0x82378A34 0xA94D +0x82378A35 0xA94E +0x82378A36 0xA94F +0x82378A37 0xA950 +0x82378A38 0xA951 +0x82378A39 0xA952 +0x82378B30 0xA953 +0x82378B31 0xA954 +0x82378B32 0xA955 +0x82378B33 0xA956 +0x82378B34 0xA957 +0x82378B35 0xA958 +0x82378B36 0xA959 +0x82378B37 0xA95A +0x82378B38 0xA95B +0x82378B39 0xA95C +0x82378C30 0xA95D +0x82378C31 0xA95E +0x82378C32 0xA95F +0x82378C33 0xA960 +0x82378C34 0xA961 +0x82378C35 0xA962 +0x82378C36 0xA963 +0x82378C37 0xA964 +0x82378C38 0xA965 +0x82378C39 0xA966 +0x82378D30 0xA967 +0x82378D31 0xA968 +0x82378D32 0xA969 +0x82378D33 0xA96A +0x82378D34 0xA96B +0x82378D35 0xA96C +0x82378D36 0xA96D +0x82378D37 0xA96E +0x82378D38 0xA96F +0x82378D39 0xA970 +0x82378E30 0xA971 +0x82378E31 0xA972 +0x82378E32 0xA973 +0x82378E33 0xA974 +0x82378E34 0xA975 +0x82378E35 0xA976 +0x82378E36 0xA977 +0x82378E37 0xA978 +0x82378E38 0xA979 +0x82378E39 0xA97A +0x82378F30 0xA97B +0x82378F31 0xA97C +0x82378F32 0xA97D +0x82378F33 0xA97E +0x82378F34 0xA97F +0x82378F35 0xA980 +0x82378F36 0xA981 +0x82378F37 0xA982 +0x82378F38 0xA983 +0x82378F39 0xA984 +0x82379030 0xA985 +0x82379031 0xA986 +0x82379032 0xA987 +0x82379033 0xA988 +0x82379034 0xA989 +0x82379035 0xA98A +0x82379036 0xA98B +0x82379037 0xA98C +0x82379038 0xA98D +0x82379039 0xA98E +0x82379130 0xA98F +0x82379131 0xA990 +0x82379132 0xA991 +0x82379133 0xA992 +0x82379134 0xA993 +0x82379135 0xA994 +0x82379136 0xA995 +0x82379137 0xA996 +0x82379138 0xA997 +0x82379139 0xA998 +0x82379230 0xA999 +0x82379231 0xA99A +0x82379232 0xA99B +0x82379233 0xA99C +0x82379234 0xA99D +0x82379235 0xA99E +0x82379236 0xA99F +0x82379237 0xA9A0 +0x82379238 0xA9A1 +0x82379239 0xA9A2 +0x82379330 0xA9A3 +0x82379331 0xA9A4 +0x82379332 0xA9A5 +0x82379333 0xA9A6 +0x82379334 0xA9A7 +0x82379335 0xA9A8 +0x82379336 0xA9A9 +0x82379337 0xA9AA +0x82379338 0xA9AB +0x82379339 0xA9AC +0x82379430 0xA9AD +0x82379431 0xA9AE +0x82379432 0xA9AF +0x82379433 0xA9B0 +0x82379434 0xA9B1 +0x82379435 0xA9B2 +0x82379436 0xA9B3 +0x82379437 0xA9B4 +0x82379438 0xA9B5 +0x82379439 0xA9B6 +0x82379530 0xA9B7 +0x82379531 0xA9B8 +0x82379532 0xA9B9 +0x82379533 0xA9BA +0x82379534 0xA9BB +0x82379535 0xA9BC +0x82379536 0xA9BD +0x82379537 0xA9BE +0x82379538 0xA9BF +0x82379539 0xA9C0 +0x82379630 0xA9C1 +0x82379631 0xA9C2 +0x82379632 0xA9C3 +0x82379633 0xA9C4 +0x82379634 0xA9C5 +0x82379635 0xA9C6 +0x82379636 0xA9C7 +0x82379637 0xA9C8 +0x82379638 0xA9C9 +0x82379639 0xA9CA +0x82379730 0xA9CB +0x82379731 0xA9CC +0x82379732 0xA9CD +0x82379733 0xA9CE +0x82379734 0xA9CF +0x82379735 0xA9D0 +0x82379736 0xA9D1 +0x82379737 0xA9D2 +0x82379738 0xA9D3 +0x82379739 0xA9D4 +0x82379830 0xA9D5 +0x82379831 0xA9D6 +0x82379832 0xA9D7 +0x82379833 0xA9D8 +0x82379834 0xA9D9 +0x82379835 0xA9DA +0x82379836 0xA9DB +0x82379837 0xA9DC +0x82379838 0xA9DD +0x82379839 0xA9DE +0x82379930 0xA9DF +0x82379931 0xA9E0 +0x82379932 0xA9E1 +0x82379933 0xA9E2 +0x82379934 0xA9E3 +0x82379935 0xA9E4 +0x82379936 0xA9E5 +0x82379937 0xA9E6 +0x82379938 0xA9E7 +0x82379939 0xA9E8 +0x82379A30 0xA9E9 +0x82379A31 0xA9EA +0x82379A32 0xA9EB +0x82379A33 0xA9EC +0x82379A34 0xA9ED +0x82379A35 0xA9EE +0x82379A36 0xA9EF +0x82379A37 0xA9F0 +0x82379A38 0xA9F1 +0x82379A39 0xA9F2 +0x82379B30 0xA9F3 +0x82379B31 0xA9F4 +0x82379B32 0xA9F5 +0x82379B33 0xA9F6 +0x82379B34 0xA9F7 +0x82379B35 0xA9F8 +0x82379B36 0xA9F9 +0x82379B37 0xA9FA +0x82379B38 0xA9FB +0x82379B39 0xA9FC +0x82379C30 0xA9FD +0x82379C31 0xA9FE +0x82379C32 0xA9FF +0x82379C33 0xAA00 +0x82379C34 0xAA01 +0x82379C35 0xAA02 +0x82379C36 0xAA03 +0x82379C37 0xAA04 +0x82379C38 0xAA05 +0x82379C39 0xAA06 +0x82379D30 0xAA07 +0x82379D31 0xAA08 +0x82379D32 0xAA09 +0x82379D33 0xAA0A +0x82379D34 0xAA0B +0x82379D35 0xAA0C +0x82379D36 0xAA0D +0x82379D37 0xAA0E +0x82379D38 0xAA0F +0x82379D39 0xAA10 +0x82379E30 0xAA11 +0x82379E31 0xAA12 +0x82379E32 0xAA13 +0x82379E33 0xAA14 +0x82379E34 0xAA15 +0x82379E35 0xAA16 +0x82379E36 0xAA17 +0x82379E37 0xAA18 +0x82379E38 0xAA19 +0x82379E39 0xAA1A +0x82379F30 0xAA1B +0x82379F31 0xAA1C +0x82379F32 0xAA1D +0x82379F33 0xAA1E +0x82379F34 0xAA1F +0x82379F35 0xAA20 +0x82379F36 0xAA21 +0x82379F37 0xAA22 +0x82379F38 0xAA23 +0x82379F39 0xAA24 +0x8237A030 0xAA25 +0x8237A031 0xAA26 +0x8237A032 0xAA27 +0x8237A033 0xAA28 +0x8237A034 0xAA29 +0x8237A035 0xAA2A +0x8237A036 0xAA2B +0x8237A037 0xAA2C +0x8237A038 0xAA2D +0x8237A039 0xAA2E +0x8237A130 0xAA2F +0x8237A131 0xAA30 +0x8237A132 0xAA31 +0x8237A133 0xAA32 +0x8237A134 0xAA33 +0x8237A135 0xAA34 +0x8237A136 0xAA35 +0x8237A137 0xAA36 +0x8237A138 0xAA37 +0x8237A139 0xAA38 +0x8237A230 0xAA39 +0x8237A231 0xAA3A +0x8237A232 0xAA3B +0x8237A233 0xAA3C +0x8237A234 0xAA3D +0x8237A235 0xAA3E +0x8237A236 0xAA3F +0x8237A237 0xAA40 +0x8237A238 0xAA41 +0x8237A239 0xAA42 +0x8237A330 0xAA43 +0x8237A331 0xAA44 +0x8237A332 0xAA45 +0x8237A333 0xAA46 +0x8237A334 0xAA47 +0x8237A335 0xAA48 +0x8237A336 0xAA49 +0x8237A337 0xAA4A +0x8237A338 0xAA4B +0x8237A339 0xAA4C +0x8237A430 0xAA4D +0x8237A431 0xAA4E +0x8237A432 0xAA4F +0x8237A433 0xAA50 +0x8237A434 0xAA51 +0x8237A435 0xAA52 +0x8237A436 0xAA53 +0x8237A437 0xAA54 +0x8237A438 0xAA55 +0x8237A439 0xAA56 +0x8237A530 0xAA57 +0x8237A531 0xAA58 +0x8237A532 0xAA59 +0x8237A533 0xAA5A +0x8237A534 0xAA5B +0x8237A535 0xAA5C +0x8237A536 0xAA5D +0x8237A537 0xAA5E +0x8237A538 0xAA5F +0x8237A539 0xAA60 +0x8237A630 0xAA61 +0x8237A631 0xAA62 +0x8237A632 0xAA63 +0x8237A633 0xAA64 +0x8237A634 0xAA65 +0x8237A635 0xAA66 +0x8237A636 0xAA67 +0x8237A637 0xAA68 +0x8237A638 0xAA69 +0x8237A639 0xAA6A +0x8237A730 0xAA6B +0x8237A731 0xAA6C +0x8237A732 0xAA6D +0x8237A733 0xAA6E +0x8237A734 0xAA6F +0x8237A735 0xAA70 +0x8237A736 0xAA71 +0x8237A737 0xAA72 +0x8237A738 0xAA73 +0x8237A739 0xAA74 +0x8237A830 0xAA75 +0x8237A831 0xAA76 +0x8237A832 0xAA77 +0x8237A833 0xAA78 +0x8237A834 0xAA79 +0x8237A835 0xAA7A +0x8237A836 0xAA7B +0x8237A837 0xAA7C +0x8237A838 0xAA7D +0x8237A839 0xAA7E +0x8237A930 0xAA7F +0x8237A931 0xAA80 +0x8237A932 0xAA81 +0x8237A933 0xAA82 +0x8237A934 0xAA83 +0x8237A935 0xAA84 +0x8237A936 0xAA85 +0x8237A937 0xAA86 +0x8237A938 0xAA87 +0x8237A939 0xAA88 +0x8237AA30 0xAA89 +0x8237AA31 0xAA8A +0x8237AA32 0xAA8B +0x8237AA33 0xAA8C +0x8237AA34 0xAA8D +0x8237AA35 0xAA8E +0x8237AA36 0xAA8F +0x8237AA37 0xAA90 +0x8237AA38 0xAA91 +0x8237AA39 0xAA92 +0x8237AB30 0xAA93 +0x8237AB31 0xAA94 +0x8237AB32 0xAA95 +0x8237AB33 0xAA96 +0x8237AB34 0xAA97 +0x8237AB35 0xAA98 +0x8237AB36 0xAA99 +0x8237AB37 0xAA9A +0x8237AB38 0xAA9B +0x8237AB39 0xAA9C +0x8237AC30 0xAA9D +0x8237AC31 0xAA9E +0x8237AC32 0xAA9F +0x8237AC33 0xAAA0 +0x8237AC34 0xAAA1 +0x8237AC35 0xAAA2 +0x8237AC36 0xAAA3 +0x8237AC37 0xAAA4 +0x8237AC38 0xAAA5 +0x8237AC39 0xAAA6 +0x8237AD30 0xAAA7 +0x8237AD31 0xAAA8 +0x8237AD32 0xAAA9 +0x8237AD33 0xAAAA +0x8237AD34 0xAAAB +0x8237AD35 0xAAAC +0x8237AD36 0xAAAD +0x8237AD37 0xAAAE +0x8237AD38 0xAAAF +0x8237AD39 0xAAB0 +0x8237AE30 0xAAB1 +0x8237AE31 0xAAB2 +0x8237AE32 0xAAB3 +0x8237AE33 0xAAB4 +0x8237AE34 0xAAB5 +0x8237AE35 0xAAB6 +0x8237AE36 0xAAB7 +0x8237AE37 0xAAB8 +0x8237AE38 0xAAB9 +0x8237AE39 0xAABA +0x8237AF30 0xAABB +0x8237AF31 0xAABC +0x8237AF32 0xAABD +0x8237AF33 0xAABE +0x8237AF34 0xAABF +0x8237AF35 0xAAC0 +0x8237AF36 0xAAC1 +0x8237AF37 0xAAC2 +0x8237AF38 0xAAC3 +0x8237AF39 0xAAC4 +0x8237B030 0xAAC5 +0x8237B031 0xAAC6 +0x8237B032 0xAAC7 +0x8237B033 0xAAC8 +0x8237B034 0xAAC9 +0x8237B035 0xAACA +0x8237B036 0xAACB +0x8237B037 0xAACC +0x8237B038 0xAACD +0x8237B039 0xAACE +0x8237B130 0xAACF +0x8237B131 0xAAD0 +0x8237B132 0xAAD1 +0x8237B133 0xAAD2 +0x8237B134 0xAAD3 +0x8237B135 0xAAD4 +0x8237B136 0xAAD5 +0x8237B137 0xAAD6 +0x8237B138 0xAAD7 +0x8237B139 0xAAD8 +0x8237B230 0xAAD9 +0x8237B231 0xAADA +0x8237B232 0xAADB +0x8237B233 0xAADC +0x8237B234 0xAADD +0x8237B235 0xAADE +0x8237B236 0xAADF +0x8237B237 0xAAE0 +0x8237B238 0xAAE1 +0x8237B239 0xAAE2 +0x8237B330 0xAAE3 +0x8237B331 0xAAE4 +0x8237B332 0xAAE5 +0x8237B333 0xAAE6 +0x8237B334 0xAAE7 +0x8237B335 0xAAE8 +0x8237B336 0xAAE9 +0x8237B337 0xAAEA +0x8237B338 0xAAEB +0x8237B339 0xAAEC +0x8237B430 0xAAED +0x8237B431 0xAAEE +0x8237B432 0xAAEF +0x8237B433 0xAAF0 +0x8237B434 0xAAF1 +0x8237B435 0xAAF2 +0x8237B436 0xAAF3 +0x8237B437 0xAAF4 +0x8237B438 0xAAF5 +0x8237B439 0xAAF6 +0x8237B530 0xAAF7 +0x8237B531 0xAAF8 +0x8237B532 0xAAF9 +0x8237B533 0xAAFA +0x8237B534 0xAAFB +0x8237B535 0xAAFC +0x8237B536 0xAAFD +0x8237B537 0xAAFE +0x8237B538 0xAAFF +0x8237B539 0xAB00 +0x8237B630 0xAB01 +0x8237B631 0xAB02 +0x8237B632 0xAB03 +0x8237B633 0xAB04 +0x8237B634 0xAB05 +0x8237B635 0xAB06 +0x8237B636 0xAB07 +0x8237B637 0xAB08 +0x8237B638 0xAB09 +0x8237B639 0xAB0A +0x8237B730 0xAB0B +0x8237B731 0xAB0C +0x8237B732 0xAB0D +0x8237B733 0xAB0E +0x8237B734 0xAB0F +0x8237B735 0xAB10 +0x8237B736 0xAB11 +0x8237B737 0xAB12 +0x8237B738 0xAB13 +0x8237B739 0xAB14 +0x8237B830 0xAB15 +0x8237B831 0xAB16 +0x8237B832 0xAB17 +0x8237B833 0xAB18 +0x8237B834 0xAB19 +0x8237B835 0xAB1A +0x8237B836 0xAB1B +0x8237B837 0xAB1C +0x8237B838 0xAB1D +0x8237B839 0xAB1E +0x8237B930 0xAB1F +0x8237B931 0xAB20 +0x8237B932 0xAB21 +0x8237B933 0xAB22 +0x8237B934 0xAB23 +0x8237B935 0xAB24 +0x8237B936 0xAB25 +0x8237B937 0xAB26 +0x8237B938 0xAB27 +0x8237B939 0xAB28 +0x8237BA30 0xAB29 +0x8237BA31 0xAB2A +0x8237BA32 0xAB2B +0x8237BA33 0xAB2C +0x8237BA34 0xAB2D +0x8237BA35 0xAB2E +0x8237BA36 0xAB2F +0x8237BA37 0xAB30 +0x8237BA38 0xAB31 +0x8237BA39 0xAB32 +0x8237BB30 0xAB33 +0x8237BB31 0xAB34 +0x8237BB32 0xAB35 +0x8237BB33 0xAB36 +0x8237BB34 0xAB37 +0x8237BB35 0xAB38 +0x8237BB36 0xAB39 +0x8237BB37 0xAB3A +0x8237BB38 0xAB3B +0x8237BB39 0xAB3C +0x8237BC30 0xAB3D +0x8237BC31 0xAB3E +0x8237BC32 0xAB3F +0x8237BC33 0xAB40 +0x8237BC34 0xAB41 +0x8237BC35 0xAB42 +0x8237BC36 0xAB43 +0x8237BC37 0xAB44 +0x8237BC38 0xAB45 +0x8237BC39 0xAB46 +0x8237BD30 0xAB47 +0x8237BD31 0xAB48 +0x8237BD32 0xAB49 +0x8237BD33 0xAB4A +0x8237BD34 0xAB4B +0x8237BD35 0xAB4C +0x8237BD36 0xAB4D +0x8237BD37 0xAB4E +0x8237BD38 0xAB4F +0x8237BD39 0xAB50 +0x8237BE30 0xAB51 +0x8237BE31 0xAB52 +0x8237BE32 0xAB53 +0x8237BE33 0xAB54 +0x8237BE34 0xAB55 +0x8237BE35 0xAB56 +0x8237BE36 0xAB57 +0x8237BE37 0xAB58 +0x8237BE38 0xAB59 +0x8237BE39 0xAB5A +0x8237BF30 0xAB5B +0x8237BF31 0xAB5C +0x8237BF32 0xAB5D +0x8237BF33 0xAB5E +0x8237BF34 0xAB5F +0x8237BF35 0xAB60 +0x8237BF36 0xAB61 +0x8237BF37 0xAB62 +0x8237BF38 0xAB63 +0x8237BF39 0xAB64 +0x8237C030 0xAB65 +0x8237C031 0xAB66 +0x8237C032 0xAB67 +0x8237C033 0xAB68 +0x8237C034 0xAB69 +0x8237C035 0xAB6A +0x8237C036 0xAB6B +0x8237C037 0xAB6C +0x8237C038 0xAB6D +0x8237C039 0xAB6E +0x8237C130 0xAB6F +0x8237C131 0xAB70 +0x8237C132 0xAB71 +0x8237C133 0xAB72 +0x8237C134 0xAB73 +0x8237C135 0xAB74 +0x8237C136 0xAB75 +0x8237C137 0xAB76 +0x8237C138 0xAB77 +0x8237C139 0xAB78 +0x8237C230 0xAB79 +0x8237C231 0xAB7A +0x8237C232 0xAB7B +0x8237C233 0xAB7C +0x8237C234 0xAB7D +0x8237C235 0xAB7E +0x8237C236 0xAB7F +0x8237C237 0xAB80 +0x8237C238 0xAB81 +0x8237C239 0xAB82 +0x8237C330 0xAB83 +0x8237C331 0xAB84 +0x8237C332 0xAB85 +0x8237C333 0xAB86 +0x8237C334 0xAB87 +0x8237C335 0xAB88 +0x8237C336 0xAB89 +0x8237C337 0xAB8A +0x8237C338 0xAB8B +0x8237C339 0xAB8C +0x8237C430 0xAB8D +0x8237C431 0xAB8E +0x8237C432 0xAB8F +0x8237C433 0xAB90 +0x8237C434 0xAB91 +0x8237C435 0xAB92 +0x8237C436 0xAB93 +0x8237C437 0xAB94 +0x8237C438 0xAB95 +0x8237C439 0xAB96 +0x8237C530 0xAB97 +0x8237C531 0xAB98 +0x8237C532 0xAB99 +0x8237C533 0xAB9A +0x8237C534 0xAB9B +0x8237C535 0xAB9C +0x8237C536 0xAB9D +0x8237C537 0xAB9E +0x8237C538 0xAB9F +0x8237C539 0xABA0 +0x8237C630 0xABA1 +0x8237C631 0xABA2 +0x8237C632 0xABA3 +0x8237C633 0xABA4 +0x8237C634 0xABA5 +0x8237C635 0xABA6 +0x8237C636 0xABA7 +0x8237C637 0xABA8 +0x8237C638 0xABA9 +0x8237C639 0xABAA +0x8237C730 0xABAB +0x8237C731 0xABAC +0x8237C732 0xABAD +0x8237C733 0xABAE +0x8237C734 0xABAF +0x8237C735 0xABB0 +0x8237C736 0xABB1 +0x8237C737 0xABB2 +0x8237C738 0xABB3 +0x8237C739 0xABB4 +0x8237C830 0xABB5 +0x8237C831 0xABB6 +0x8237C832 0xABB7 +0x8237C833 0xABB8 +0x8237C834 0xABB9 +0x8237C835 0xABBA +0x8237C836 0xABBB +0x8237C837 0xABBC +0x8237C838 0xABBD +0x8237C839 0xABBE +0x8237C930 0xABBF +0x8237C931 0xABC0 +0x8237C932 0xABC1 +0x8237C933 0xABC2 +0x8237C934 0xABC3 +0x8237C935 0xABC4 +0x8237C936 0xABC5 +0x8237C937 0xABC6 +0x8237C938 0xABC7 +0x8237C939 0xABC8 +0x8237CA30 0xABC9 +0x8237CA31 0xABCA +0x8237CA32 0xABCB +0x8237CA33 0xABCC +0x8237CA34 0xABCD +0x8237CA35 0xABCE +0x8237CA36 0xABCF +0x8237CA37 0xABD0 +0x8237CA38 0xABD1 +0x8237CA39 0xABD2 +0x8237CB30 0xABD3 +0x8237CB31 0xABD4 +0x8237CB32 0xABD5 +0x8237CB33 0xABD6 +0x8237CB34 0xABD7 +0x8237CB35 0xABD8 +0x8237CB36 0xABD9 +0x8237CB37 0xABDA +0x8237CB38 0xABDB +0x8237CB39 0xABDC +0x8237CC30 0xABDD +0x8237CC31 0xABDE +0x8237CC32 0xABDF +0x8237CC33 0xABE0 +0x8237CC34 0xABE1 +0x8237CC35 0xABE2 +0x8237CC36 0xABE3 +0x8237CC37 0xABE4 +0x8237CC38 0xABE5 +0x8237CC39 0xABE6 +0x8237CD30 0xABE7 +0x8237CD31 0xABE8 +0x8237CD32 0xABE9 +0x8237CD33 0xABEA +0x8237CD34 0xABEB +0x8237CD35 0xABEC +0x8237CD36 0xABED +0x8237CD37 0xABEE +0x8237CD38 0xABEF +0x8237CD39 0xABF0 +0x8237CE30 0xABF1 +0x8237CE31 0xABF2 +0x8237CE32 0xABF3 +0x8237CE33 0xABF4 +0x8237CE34 0xABF5 +0x8237CE35 0xABF6 +0x8237CE36 0xABF7 +0x8237CE37 0xABF8 +0x8237CE38 0xABF9 +0x8237CE39 0xABFA +0x8237CF30 0xABFB +0x8237CF31 0xABFC +0x8237CF32 0xABFD +0x8237CF33 0xABFE +0x8237CF34 0xABFF +0x8237CF35 0xAC00 +0x8237CF36 0xAC01 +0x8237CF37 0xAC02 +0x8237CF38 0xAC03 +0x8237CF39 0xAC04 +0x8237D030 0xAC05 +0x8237D031 0xAC06 +0x8237D032 0xAC07 +0x8237D033 0xAC08 +0x8237D034 0xAC09 +0x8237D035 0xAC0A +0x8237D036 0xAC0B +0x8237D037 0xAC0C +0x8237D038 0xAC0D +0x8237D039 0xAC0E +0x8237D130 0xAC0F +0x8237D131 0xAC10 +0x8237D132 0xAC11 +0x8237D133 0xAC12 +0x8237D134 0xAC13 +0x8237D135 0xAC14 +0x8237D136 0xAC15 +0x8237D137 0xAC16 +0x8237D138 0xAC17 +0x8237D139 0xAC18 +0x8237D230 0xAC19 +0x8237D231 0xAC1A +0x8237D232 0xAC1B +0x8237D233 0xAC1C +0x8237D234 0xAC1D +0x8237D235 0xAC1E +0x8237D236 0xAC1F +0x8237D237 0xAC20 +0x8237D238 0xAC21 +0x8237D239 0xAC22 +0x8237D330 0xAC23 +0x8237D331 0xAC24 +0x8237D332 0xAC25 +0x8237D333 0xAC26 +0x8237D334 0xAC27 +0x8237D335 0xAC28 +0x8237D336 0xAC29 +0x8237D337 0xAC2A +0x8237D338 0xAC2B +0x8237D339 0xAC2C +0x8237D430 0xAC2D +0x8237D431 0xAC2E +0x8237D432 0xAC2F +0x8237D433 0xAC30 +0x8237D434 0xAC31 +0x8237D435 0xAC32 +0x8237D436 0xAC33 +0x8237D437 0xAC34 +0x8237D438 0xAC35 +0x8237D439 0xAC36 +0x8237D530 0xAC37 +0x8237D531 0xAC38 +0x8237D532 0xAC39 +0x8237D533 0xAC3A +0x8237D534 0xAC3B +0x8237D535 0xAC3C +0x8237D536 0xAC3D +0x8237D537 0xAC3E +0x8237D538 0xAC3F +0x8237D539 0xAC40 +0x8237D630 0xAC41 +0x8237D631 0xAC42 +0x8237D632 0xAC43 +0x8237D633 0xAC44 +0x8237D634 0xAC45 +0x8237D635 0xAC46 +0x8237D636 0xAC47 +0x8237D637 0xAC48 +0x8237D638 0xAC49 +0x8237D639 0xAC4A +0x8237D730 0xAC4B +0x8237D731 0xAC4C +0x8237D732 0xAC4D +0x8237D733 0xAC4E +0x8237D734 0xAC4F +0x8237D735 0xAC50 +0x8237D736 0xAC51 +0x8237D737 0xAC52 +0x8237D738 0xAC53 +0x8237D739 0xAC54 +0x8237D830 0xAC55 +0x8237D831 0xAC56 +0x8237D832 0xAC57 +0x8237D833 0xAC58 +0x8237D834 0xAC59 +0x8237D835 0xAC5A +0x8237D836 0xAC5B +0x8237D837 0xAC5C +0x8237D838 0xAC5D +0x8237D839 0xAC5E +0x8237D930 0xAC5F +0x8237D931 0xAC60 +0x8237D932 0xAC61 +0x8237D933 0xAC62 +0x8237D934 0xAC63 +0x8237D935 0xAC64 +0x8237D936 0xAC65 +0x8237D937 0xAC66 +0x8237D938 0xAC67 +0x8237D939 0xAC68 +0x8237DA30 0xAC69 +0x8237DA31 0xAC6A +0x8237DA32 0xAC6B +0x8237DA33 0xAC6C +0x8237DA34 0xAC6D +0x8237DA35 0xAC6E +0x8237DA36 0xAC6F +0x8237DA37 0xAC70 +0x8237DA38 0xAC71 +0x8237DA39 0xAC72 +0x8237DB30 0xAC73 +0x8237DB31 0xAC74 +0x8237DB32 0xAC75 +0x8237DB33 0xAC76 +0x8237DB34 0xAC77 +0x8237DB35 0xAC78 +0x8237DB36 0xAC79 +0x8237DB37 0xAC7A +0x8237DB38 0xAC7B +0x8237DB39 0xAC7C +0x8237DC30 0xAC7D +0x8237DC31 0xAC7E +0x8237DC32 0xAC7F +0x8237DC33 0xAC80 +0x8237DC34 0xAC81 +0x8237DC35 0xAC82 +0x8237DC36 0xAC83 +0x8237DC37 0xAC84 +0x8237DC38 0xAC85 +0x8237DC39 0xAC86 +0x8237DD30 0xAC87 +0x8237DD31 0xAC88 +0x8237DD32 0xAC89 +0x8237DD33 0xAC8A +0x8237DD34 0xAC8B +0x8237DD35 0xAC8C +0x8237DD36 0xAC8D +0x8237DD37 0xAC8E +0x8237DD38 0xAC8F +0x8237DD39 0xAC90 +0x8237DE30 0xAC91 +0x8237DE31 0xAC92 +0x8237DE32 0xAC93 +0x8237DE33 0xAC94 +0x8237DE34 0xAC95 +0x8237DE35 0xAC96 +0x8237DE36 0xAC97 +0x8237DE37 0xAC98 +0x8237DE38 0xAC99 +0x8237DE39 0xAC9A +0x8237DF30 0xAC9B +0x8237DF31 0xAC9C +0x8237DF32 0xAC9D +0x8237DF33 0xAC9E +0x8237DF34 0xAC9F +0x8237DF35 0xACA0 +0x8237DF36 0xACA1 +0x8237DF37 0xACA2 +0x8237DF38 0xACA3 +0x8237DF39 0xACA4 +0x8237E030 0xACA5 +0x8237E031 0xACA6 +0x8237E032 0xACA7 +0x8237E033 0xACA8 +0x8237E034 0xACA9 +0x8237E035 0xACAA +0x8237E036 0xACAB +0x8237E037 0xACAC +0x8237E038 0xACAD +0x8237E039 0xACAE +0x8237E130 0xACAF +0x8237E131 0xACB0 +0x8237E132 0xACB1 +0x8237E133 0xACB2 +0x8237E134 0xACB3 +0x8237E135 0xACB4 +0x8237E136 0xACB5 +0x8237E137 0xACB6 +0x8237E138 0xACB7 +0x8237E139 0xACB8 +0x8237E230 0xACB9 +0x8237E231 0xACBA +0x8237E232 0xACBB +0x8237E233 0xACBC +0x8237E234 0xACBD +0x8237E235 0xACBE +0x8237E236 0xACBF +0x8237E237 0xACC0 +0x8237E238 0xACC1 +0x8237E239 0xACC2 +0x8237E330 0xACC3 +0x8237E331 0xACC4 +0x8237E332 0xACC5 +0x8237E333 0xACC6 +0x8237E334 0xACC7 +0x8237E335 0xACC8 +0x8237E336 0xACC9 +0x8237E337 0xACCA +0x8237E338 0xACCB +0x8237E339 0xACCC +0x8237E430 0xACCD +0x8237E431 0xACCE +0x8237E432 0xACCF +0x8237E433 0xACD0 +0x8237E434 0xACD1 +0x8237E435 0xACD2 +0x8237E436 0xACD3 +0x8237E437 0xACD4 +0x8237E438 0xACD5 +0x8237E439 0xACD6 +0x8237E530 0xACD7 +0x8237E531 0xACD8 +0x8237E532 0xACD9 +0x8237E533 0xACDA +0x8237E534 0xACDB +0x8237E535 0xACDC +0x8237E536 0xACDD +0x8237E537 0xACDE +0x8237E538 0xACDF +0x8237E539 0xACE0 +0x8237E630 0xACE1 +0x8237E631 0xACE2 +0x8237E632 0xACE3 +0x8237E633 0xACE4 +0x8237E634 0xACE5 +0x8237E635 0xACE6 +0x8237E636 0xACE7 +0x8237E637 0xACE8 +0x8237E638 0xACE9 +0x8237E639 0xACEA +0x8237E730 0xACEB +0x8237E731 0xACEC +0x8237E732 0xACED +0x8237E733 0xACEE +0x8237E734 0xACEF +0x8237E735 0xACF0 +0x8237E736 0xACF1 +0x8237E737 0xACF2 +0x8237E738 0xACF3 +0x8237E739 0xACF4 +0x8237E830 0xACF5 +0x8237E831 0xACF6 +0x8237E832 0xACF7 +0x8237E833 0xACF8 +0x8237E834 0xACF9 +0x8237E835 0xACFA +0x8237E836 0xACFB +0x8237E837 0xACFC +0x8237E838 0xACFD +0x8237E839 0xACFE +0x8237E930 0xACFF +0x8237E931 0xAD00 +0x8237E932 0xAD01 +0x8237E933 0xAD02 +0x8237E934 0xAD03 +0x8237E935 0xAD04 +0x8237E936 0xAD05 +0x8237E937 0xAD06 +0x8237E938 0xAD07 +0x8237E939 0xAD08 +0x8237EA30 0xAD09 +0x8237EA31 0xAD0A +0x8237EA32 0xAD0B +0x8237EA33 0xAD0C +0x8237EA34 0xAD0D +0x8237EA35 0xAD0E +0x8237EA36 0xAD0F +0x8237EA37 0xAD10 +0x8237EA38 0xAD11 +0x8237EA39 0xAD12 +0x8237EB30 0xAD13 +0x8237EB31 0xAD14 +0x8237EB32 0xAD15 +0x8237EB33 0xAD16 +0x8237EB34 0xAD17 +0x8237EB35 0xAD18 +0x8237EB36 0xAD19 +0x8237EB37 0xAD1A +0x8237EB38 0xAD1B +0x8237EB39 0xAD1C +0x8237EC30 0xAD1D +0x8237EC31 0xAD1E +0x8237EC32 0xAD1F +0x8237EC33 0xAD20 +0x8237EC34 0xAD21 +0x8237EC35 0xAD22 +0x8237EC36 0xAD23 +0x8237EC37 0xAD24 +0x8237EC38 0xAD25 +0x8237EC39 0xAD26 +0x8237ED30 0xAD27 +0x8237ED31 0xAD28 +0x8237ED32 0xAD29 +0x8237ED33 0xAD2A +0x8237ED34 0xAD2B +0x8237ED35 0xAD2C +0x8237ED36 0xAD2D +0x8237ED37 0xAD2E +0x8237ED38 0xAD2F +0x8237ED39 0xAD30 +0x8237EE30 0xAD31 +0x8237EE31 0xAD32 +0x8237EE32 0xAD33 +0x8237EE33 0xAD34 +0x8237EE34 0xAD35 +0x8237EE35 0xAD36 +0x8237EE36 0xAD37 +0x8237EE37 0xAD38 +0x8237EE38 0xAD39 +0x8237EE39 0xAD3A +0x8237EF30 0xAD3B +0x8237EF31 0xAD3C +0x8237EF32 0xAD3D +0x8237EF33 0xAD3E +0x8237EF34 0xAD3F +0x8237EF35 0xAD40 +0x8237EF36 0xAD41 +0x8237EF37 0xAD42 +0x8237EF38 0xAD43 +0x8237EF39 0xAD44 +0x8237F030 0xAD45 +0x8237F031 0xAD46 +0x8237F032 0xAD47 +0x8237F033 0xAD48 +0x8237F034 0xAD49 +0x8237F035 0xAD4A +0x8237F036 0xAD4B +0x8237F037 0xAD4C +0x8237F038 0xAD4D +0x8237F039 0xAD4E +0x8237F130 0xAD4F +0x8237F131 0xAD50 +0x8237F132 0xAD51 +0x8237F133 0xAD52 +0x8237F134 0xAD53 +0x8237F135 0xAD54 +0x8237F136 0xAD55 +0x8237F137 0xAD56 +0x8237F138 0xAD57 +0x8237F139 0xAD58 +0x8237F230 0xAD59 +0x8237F231 0xAD5A +0x8237F232 0xAD5B +0x8237F233 0xAD5C +0x8237F234 0xAD5D +0x8237F235 0xAD5E +0x8237F236 0xAD5F +0x8237F237 0xAD60 +0x8237F238 0xAD61 +0x8237F239 0xAD62 +0x8237F330 0xAD63 +0x8237F331 0xAD64 +0x8237F332 0xAD65 +0x8237F333 0xAD66 +0x8237F334 0xAD67 +0x8237F335 0xAD68 +0x8237F336 0xAD69 +0x8237F337 0xAD6A +0x8237F338 0xAD6B +0x8237F339 0xAD6C +0x8237F430 0xAD6D +0x8237F431 0xAD6E +0x8237F432 0xAD6F +0x8237F433 0xAD70 +0x8237F434 0xAD71 +0x8237F435 0xAD72 +0x8237F436 0xAD73 +0x8237F437 0xAD74 +0x8237F438 0xAD75 +0x8237F439 0xAD76 +0x8237F530 0xAD77 +0x8237F531 0xAD78 +0x8237F532 0xAD79 +0x8237F533 0xAD7A +0x8237F534 0xAD7B +0x8237F535 0xAD7C +0x8237F536 0xAD7D +0x8237F537 0xAD7E +0x8237F538 0xAD7F +0x8237F539 0xAD80 +0x8237F630 0xAD81 +0x8237F631 0xAD82 +0x8237F632 0xAD83 +0x8237F633 0xAD84 +0x8237F634 0xAD85 +0x8237F635 0xAD86 +0x8237F636 0xAD87 +0x8237F637 0xAD88 +0x8237F638 0xAD89 +0x8237F639 0xAD8A +0x8237F730 0xAD8B +0x8237F731 0xAD8C +0x8237F732 0xAD8D +0x8237F733 0xAD8E +0x8237F734 0xAD8F +0x8237F735 0xAD90 +0x8237F736 0xAD91 +0x8237F737 0xAD92 +0x8237F738 0xAD93 +0x8237F739 0xAD94 +0x8237F830 0xAD95 +0x8237F831 0xAD96 +0x8237F832 0xAD97 +0x8237F833 0xAD98 +0x8237F834 0xAD99 +0x8237F835 0xAD9A +0x8237F836 0xAD9B +0x8237F837 0xAD9C +0x8237F838 0xAD9D +0x8237F839 0xAD9E +0x8237F930 0xAD9F +0x8237F931 0xADA0 +0x8237F932 0xADA1 +0x8237F933 0xADA2 +0x8237F934 0xADA3 +0x8237F935 0xADA4 +0x8237F936 0xADA5 +0x8237F937 0xADA6 +0x8237F938 0xADA7 +0x8237F939 0xADA8 +0x8237FA30 0xADA9 +0x8237FA31 0xADAA +0x8237FA32 0xADAB +0x8237FA33 0xADAC +0x8237FA34 0xADAD +0x8237FA35 0xADAE +0x8237FA36 0xADAF +0x8237FA37 0xADB0 +0x8237FA38 0xADB1 +0x8237FA39 0xADB2 +0x8237FB30 0xADB3 +0x8237FB31 0xADB4 +0x8237FB32 0xADB5 +0x8237FB33 0xADB6 +0x8237FB34 0xADB7 +0x8237FB35 0xADB8 +0x8237FB36 0xADB9 +0x8237FB37 0xADBA +0x8237FB38 0xADBB +0x8237FB39 0xADBC +0x8237FC30 0xADBD +0x8237FC31 0xADBE +0x8237FC32 0xADBF +0x8237FC33 0xADC0 +0x8237FC34 0xADC1 +0x8237FC35 0xADC2 +0x8237FC36 0xADC3 +0x8237FC37 0xADC4 +0x8237FC38 0xADC5 +0x8237FC39 0xADC6 +0x8237FD30 0xADC7 +0x8237FD31 0xADC8 +0x8237FD32 0xADC9 +0x8237FD33 0xADCA +0x8237FD34 0xADCB +0x8237FD35 0xADCC +0x8237FD36 0xADCD +0x8237FD37 0xADCE +0x8237FD38 0xADCF +0x8237FD39 0xADD0 +0x8237FE30 0xADD1 +0x8237FE31 0xADD2 +0x8237FE32 0xADD3 +0x8237FE33 0xADD4 +0x8237FE34 0xADD5 +0x8237FE35 0xADD6 +0x8237FE36 0xADD7 +0x8237FE37 0xADD8 +0x8237FE38 0xADD9 +0x8237FE39 0xADDA +0x82388130 0xADDB +0x82388131 0xADDC +0x82388132 0xADDD +0x82388133 0xADDE +0x82388134 0xADDF +0x82388135 0xADE0 +0x82388136 0xADE1 +0x82388137 0xADE2 +0x82388138 0xADE3 +0x82388139 0xADE4 +0x82388230 0xADE5 +0x82388231 0xADE6 +0x82388232 0xADE7 +0x82388233 0xADE8 +0x82388234 0xADE9 +0x82388235 0xADEA +0x82388236 0xADEB +0x82388237 0xADEC +0x82388238 0xADED +0x82388239 0xADEE +0x82388330 0xADEF +0x82388331 0xADF0 +0x82388332 0xADF1 +0x82388333 0xADF2 +0x82388334 0xADF3 +0x82388335 0xADF4 +0x82388336 0xADF5 +0x82388337 0xADF6 +0x82388338 0xADF7 +0x82388339 0xADF8 +0x82388430 0xADF9 +0x82388431 0xADFA +0x82388432 0xADFB +0x82388433 0xADFC +0x82388434 0xADFD +0x82388435 0xADFE +0x82388436 0xADFF +0x82388437 0xAE00 +0x82388438 0xAE01 +0x82388439 0xAE02 +0x82388530 0xAE03 +0x82388531 0xAE04 +0x82388532 0xAE05 +0x82388533 0xAE06 +0x82388534 0xAE07 +0x82388535 0xAE08 +0x82388536 0xAE09 +0x82388537 0xAE0A +0x82388538 0xAE0B +0x82388539 0xAE0C +0x82388630 0xAE0D +0x82388631 0xAE0E +0x82388632 0xAE0F +0x82388633 0xAE10 +0x82388634 0xAE11 +0x82388635 0xAE12 +0x82388636 0xAE13 +0x82388637 0xAE14 +0x82388638 0xAE15 +0x82388639 0xAE16 +0x82388730 0xAE17 +0x82388731 0xAE18 +0x82388732 0xAE19 +0x82388733 0xAE1A +0x82388734 0xAE1B +0x82388735 0xAE1C +0x82388736 0xAE1D +0x82388737 0xAE1E +0x82388738 0xAE1F +0x82388739 0xAE20 +0x82388830 0xAE21 +0x82388831 0xAE22 +0x82388832 0xAE23 +0x82388833 0xAE24 +0x82388834 0xAE25 +0x82388835 0xAE26 +0x82388836 0xAE27 +0x82388837 0xAE28 +0x82388838 0xAE29 +0x82388839 0xAE2A +0x82388930 0xAE2B +0x82388931 0xAE2C +0x82388932 0xAE2D +0x82388933 0xAE2E +0x82388934 0xAE2F +0x82388935 0xAE30 +0x82388936 0xAE31 +0x82388937 0xAE32 +0x82388938 0xAE33 +0x82388939 0xAE34 +0x82388A30 0xAE35 +0x82388A31 0xAE36 +0x82388A32 0xAE37 +0x82388A33 0xAE38 +0x82388A34 0xAE39 +0x82388A35 0xAE3A +0x82388A36 0xAE3B +0x82388A37 0xAE3C +0x82388A38 0xAE3D +0x82388A39 0xAE3E +0x82388B30 0xAE3F +0x82388B31 0xAE40 +0x82388B32 0xAE41 +0x82388B33 0xAE42 +0x82388B34 0xAE43 +0x82388B35 0xAE44 +0x82388B36 0xAE45 +0x82388B37 0xAE46 +0x82388B38 0xAE47 +0x82388B39 0xAE48 +0x82388C30 0xAE49 +0x82388C31 0xAE4A +0x82388C32 0xAE4B +0x82388C33 0xAE4C +0x82388C34 0xAE4D +0x82388C35 0xAE4E +0x82388C36 0xAE4F +0x82388C37 0xAE50 +0x82388C38 0xAE51 +0x82388C39 0xAE52 +0x82388D30 0xAE53 +0x82388D31 0xAE54 +0x82388D32 0xAE55 +0x82388D33 0xAE56 +0x82388D34 0xAE57 +0x82388D35 0xAE58 +0x82388D36 0xAE59 +0x82388D37 0xAE5A +0x82388D38 0xAE5B +0x82388D39 0xAE5C +0x82388E30 0xAE5D +0x82388E31 0xAE5E +0x82388E32 0xAE5F +0x82388E33 0xAE60 +0x82388E34 0xAE61 +0x82388E35 0xAE62 +0x82388E36 0xAE63 +0x82388E37 0xAE64 +0x82388E38 0xAE65 +0x82388E39 0xAE66 +0x82388F30 0xAE67 +0x82388F31 0xAE68 +0x82388F32 0xAE69 +0x82388F33 0xAE6A +0x82388F34 0xAE6B +0x82388F35 0xAE6C +0x82388F36 0xAE6D +0x82388F37 0xAE6E +0x82388F38 0xAE6F +0x82388F39 0xAE70 +0x82389030 0xAE71 +0x82389031 0xAE72 +0x82389032 0xAE73 +0x82389033 0xAE74 +0x82389034 0xAE75 +0x82389035 0xAE76 +0x82389036 0xAE77 +0x82389037 0xAE78 +0x82389038 0xAE79 +0x82389039 0xAE7A +0x82389130 0xAE7B +0x82389131 0xAE7C +0x82389132 0xAE7D +0x82389133 0xAE7E +0x82389134 0xAE7F +0x82389135 0xAE80 +0x82389136 0xAE81 +0x82389137 0xAE82 +0x82389138 0xAE83 +0x82389139 0xAE84 +0x82389230 0xAE85 +0x82389231 0xAE86 +0x82389232 0xAE87 +0x82389233 0xAE88 +0x82389234 0xAE89 +0x82389235 0xAE8A +0x82389236 0xAE8B +0x82389237 0xAE8C +0x82389238 0xAE8D +0x82389239 0xAE8E +0x82389330 0xAE8F +0x82389331 0xAE90 +0x82389332 0xAE91 +0x82389333 0xAE92 +0x82389334 0xAE93 +0x82389335 0xAE94 +0x82389336 0xAE95 +0x82389337 0xAE96 +0x82389338 0xAE97 +0x82389339 0xAE98 +0x82389430 0xAE99 +0x82389431 0xAE9A +0x82389432 0xAE9B +0x82389433 0xAE9C +0x82389434 0xAE9D +0x82389435 0xAE9E +0x82389436 0xAE9F +0x82389437 0xAEA0 +0x82389438 0xAEA1 +0x82389439 0xAEA2 +0x82389530 0xAEA3 +0x82389531 0xAEA4 +0x82389532 0xAEA5 +0x82389533 0xAEA6 +0x82389534 0xAEA7 +0x82389535 0xAEA8 +0x82389536 0xAEA9 +0x82389537 0xAEAA +0x82389538 0xAEAB +0x82389539 0xAEAC +0x82389630 0xAEAD +0x82389631 0xAEAE +0x82389632 0xAEAF +0x82389633 0xAEB0 +0x82389634 0xAEB1 +0x82389635 0xAEB2 +0x82389636 0xAEB3 +0x82389637 0xAEB4 +0x82389638 0xAEB5 +0x82389639 0xAEB6 +0x82389730 0xAEB7 +0x82389731 0xAEB8 +0x82389732 0xAEB9 +0x82389733 0xAEBA +0x82389734 0xAEBB +0x82389735 0xAEBC +0x82389736 0xAEBD +0x82389737 0xAEBE +0x82389738 0xAEBF +0x82389739 0xAEC0 +0x82389830 0xAEC1 +0x82389831 0xAEC2 +0x82389832 0xAEC3 +0x82389833 0xAEC4 +0x82389834 0xAEC5 +0x82389835 0xAEC6 +0x82389836 0xAEC7 +0x82389837 0xAEC8 +0x82389838 0xAEC9 +0x82389839 0xAECA +0x82389930 0xAECB +0x82389931 0xAECC +0x82389932 0xAECD +0x82389933 0xAECE +0x82389934 0xAECF +0x82389935 0xAED0 +0x82389936 0xAED1 +0x82389937 0xAED2 +0x82389938 0xAED3 +0x82389939 0xAED4 +0x82389A30 0xAED5 +0x82389A31 0xAED6 +0x82389A32 0xAED7 +0x82389A33 0xAED8 +0x82389A34 0xAED9 +0x82389A35 0xAEDA +0x82389A36 0xAEDB +0x82389A37 0xAEDC +0x82389A38 0xAEDD +0x82389A39 0xAEDE +0x82389B30 0xAEDF +0x82389B31 0xAEE0 +0x82389B32 0xAEE1 +0x82389B33 0xAEE2 +0x82389B34 0xAEE3 +0x82389B35 0xAEE4 +0x82389B36 0xAEE5 +0x82389B37 0xAEE6 +0x82389B38 0xAEE7 +0x82389B39 0xAEE8 +0x82389C30 0xAEE9 +0x82389C31 0xAEEA +0x82389C32 0xAEEB +0x82389C33 0xAEEC +0x82389C34 0xAEED +0x82389C35 0xAEEE +0x82389C36 0xAEEF +0x82389C37 0xAEF0 +0x82389C38 0xAEF1 +0x82389C39 0xAEF2 +0x82389D30 0xAEF3 +0x82389D31 0xAEF4 +0x82389D32 0xAEF5 +0x82389D33 0xAEF6 +0x82389D34 0xAEF7 +0x82389D35 0xAEF8 +0x82389D36 0xAEF9 +0x82389D37 0xAEFA +0x82389D38 0xAEFB +0x82389D39 0xAEFC +0x82389E30 0xAEFD +0x82389E31 0xAEFE +0x82389E32 0xAEFF +0x82389E33 0xAF00 +0x82389E34 0xAF01 +0x82389E35 0xAF02 +0x82389E36 0xAF03 +0x82389E37 0xAF04 +0x82389E38 0xAF05 +0x82389E39 0xAF06 +0x82389F30 0xAF07 +0x82389F31 0xAF08 +0x82389F32 0xAF09 +0x82389F33 0xAF0A +0x82389F34 0xAF0B +0x82389F35 0xAF0C +0x82389F36 0xAF0D +0x82389F37 0xAF0E +0x82389F38 0xAF0F +0x82389F39 0xAF10 +0x8238A030 0xAF11 +0x8238A031 0xAF12 +0x8238A032 0xAF13 +0x8238A033 0xAF14 +0x8238A034 0xAF15 +0x8238A035 0xAF16 +0x8238A036 0xAF17 +0x8238A037 0xAF18 +0x8238A038 0xAF19 +0x8238A039 0xAF1A +0x8238A130 0xAF1B +0x8238A131 0xAF1C +0x8238A132 0xAF1D +0x8238A133 0xAF1E +0x8238A134 0xAF1F +0x8238A135 0xAF20 +0x8238A136 0xAF21 +0x8238A137 0xAF22 +0x8238A138 0xAF23 +0x8238A139 0xAF24 +0x8238A230 0xAF25 +0x8238A231 0xAF26 +0x8238A232 0xAF27 +0x8238A233 0xAF28 +0x8238A234 0xAF29 +0x8238A235 0xAF2A +0x8238A236 0xAF2B +0x8238A237 0xAF2C +0x8238A238 0xAF2D +0x8238A239 0xAF2E +0x8238A330 0xAF2F +0x8238A331 0xAF30 +0x8238A332 0xAF31 +0x8238A333 0xAF32 +0x8238A334 0xAF33 +0x8238A335 0xAF34 +0x8238A336 0xAF35 +0x8238A337 0xAF36 +0x8238A338 0xAF37 +0x8238A339 0xAF38 +0x8238A430 0xAF39 +0x8238A431 0xAF3A +0x8238A432 0xAF3B +0x8238A433 0xAF3C +0x8238A434 0xAF3D +0x8238A435 0xAF3E +0x8238A436 0xAF3F +0x8238A437 0xAF40 +0x8238A438 0xAF41 +0x8238A439 0xAF42 +0x8238A530 0xAF43 +0x8238A531 0xAF44 +0x8238A532 0xAF45 +0x8238A533 0xAF46 +0x8238A534 0xAF47 +0x8238A535 0xAF48 +0x8238A536 0xAF49 +0x8238A537 0xAF4A +0x8238A538 0xAF4B +0x8238A539 0xAF4C +0x8238A630 0xAF4D +0x8238A631 0xAF4E +0x8238A632 0xAF4F +0x8238A633 0xAF50 +0x8238A634 0xAF51 +0x8238A635 0xAF52 +0x8238A636 0xAF53 +0x8238A637 0xAF54 +0x8238A638 0xAF55 +0x8238A639 0xAF56 +0x8238A730 0xAF57 +0x8238A731 0xAF58 +0x8238A732 0xAF59 +0x8238A733 0xAF5A +0x8238A734 0xAF5B +0x8238A735 0xAF5C +0x8238A736 0xAF5D +0x8238A737 0xAF5E +0x8238A738 0xAF5F +0x8238A739 0xAF60 +0x8238A830 0xAF61 +0x8238A831 0xAF62 +0x8238A832 0xAF63 +0x8238A833 0xAF64 +0x8238A834 0xAF65 +0x8238A835 0xAF66 +0x8238A836 0xAF67 +0x8238A837 0xAF68 +0x8238A838 0xAF69 +0x8238A839 0xAF6A +0x8238A930 0xAF6B +0x8238A931 0xAF6C +0x8238A932 0xAF6D +0x8238A933 0xAF6E +0x8238A934 0xAF6F +0x8238A935 0xAF70 +0x8238A936 0xAF71 +0x8238A937 0xAF72 +0x8238A938 0xAF73 +0x8238A939 0xAF74 +0x8238AA30 0xAF75 +0x8238AA31 0xAF76 +0x8238AA32 0xAF77 +0x8238AA33 0xAF78 +0x8238AA34 0xAF79 +0x8238AA35 0xAF7A +0x8238AA36 0xAF7B +0x8238AA37 0xAF7C +0x8238AA38 0xAF7D +0x8238AA39 0xAF7E +0x8238AB30 0xAF7F +0x8238AB31 0xAF80 +0x8238AB32 0xAF81 +0x8238AB33 0xAF82 +0x8238AB34 0xAF83 +0x8238AB35 0xAF84 +0x8238AB36 0xAF85 +0x8238AB37 0xAF86 +0x8238AB38 0xAF87 +0x8238AB39 0xAF88 +0x8238AC30 0xAF89 +0x8238AC31 0xAF8A +0x8238AC32 0xAF8B +0x8238AC33 0xAF8C +0x8238AC34 0xAF8D +0x8238AC35 0xAF8E +0x8238AC36 0xAF8F +0x8238AC37 0xAF90 +0x8238AC38 0xAF91 +0x8238AC39 0xAF92 +0x8238AD30 0xAF93 +0x8238AD31 0xAF94 +0x8238AD32 0xAF95 +0x8238AD33 0xAF96 +0x8238AD34 0xAF97 +0x8238AD35 0xAF98 +0x8238AD36 0xAF99 +0x8238AD37 0xAF9A +0x8238AD38 0xAF9B +0x8238AD39 0xAF9C +0x8238AE30 0xAF9D +0x8238AE31 0xAF9E +0x8238AE32 0xAF9F +0x8238AE33 0xAFA0 +0x8238AE34 0xAFA1 +0x8238AE35 0xAFA2 +0x8238AE36 0xAFA3 +0x8238AE37 0xAFA4 +0x8238AE38 0xAFA5 +0x8238AE39 0xAFA6 +0x8238AF30 0xAFA7 +0x8238AF31 0xAFA8 +0x8238AF32 0xAFA9 +0x8238AF33 0xAFAA +0x8238AF34 0xAFAB +0x8238AF35 0xAFAC +0x8238AF36 0xAFAD +0x8238AF37 0xAFAE +0x8238AF38 0xAFAF +0x8238AF39 0xAFB0 +0x8238B030 0xAFB1 +0x8238B031 0xAFB2 +0x8238B032 0xAFB3 +0x8238B033 0xAFB4 +0x8238B034 0xAFB5 +0x8238B035 0xAFB6 +0x8238B036 0xAFB7 +0x8238B037 0xAFB8 +0x8238B038 0xAFB9 +0x8238B039 0xAFBA +0x8238B130 0xAFBB +0x8238B131 0xAFBC +0x8238B132 0xAFBD +0x8238B133 0xAFBE +0x8238B134 0xAFBF +0x8238B135 0xAFC0 +0x8238B136 0xAFC1 +0x8238B137 0xAFC2 +0x8238B138 0xAFC3 +0x8238B139 0xAFC4 +0x8238B230 0xAFC5 +0x8238B231 0xAFC6 +0x8238B232 0xAFC7 +0x8238B233 0xAFC8 +0x8238B234 0xAFC9 +0x8238B235 0xAFCA +0x8238B236 0xAFCB +0x8238B237 0xAFCC +0x8238B238 0xAFCD +0x8238B239 0xAFCE +0x8238B330 0xAFCF +0x8238B331 0xAFD0 +0x8238B332 0xAFD1 +0x8238B333 0xAFD2 +0x8238B334 0xAFD3 +0x8238B335 0xAFD4 +0x8238B336 0xAFD5 +0x8238B337 0xAFD6 +0x8238B338 0xAFD7 +0x8238B339 0xAFD8 +0x8238B430 0xAFD9 +0x8238B431 0xAFDA +0x8238B432 0xAFDB +0x8238B433 0xAFDC +0x8238B434 0xAFDD +0x8238B435 0xAFDE +0x8238B436 0xAFDF +0x8238B437 0xAFE0 +0x8238B438 0xAFE1 +0x8238B439 0xAFE2 +0x8238B530 0xAFE3 +0x8238B531 0xAFE4 +0x8238B532 0xAFE5 +0x8238B533 0xAFE6 +0x8238B534 0xAFE7 +0x8238B535 0xAFE8 +0x8238B536 0xAFE9 +0x8238B537 0xAFEA +0x8238B538 0xAFEB +0x8238B539 0xAFEC +0x8238B630 0xAFED +0x8238B631 0xAFEE +0x8238B632 0xAFEF +0x8238B633 0xAFF0 +0x8238B634 0xAFF1 +0x8238B635 0xAFF2 +0x8238B636 0xAFF3 +0x8238B637 0xAFF4 +0x8238B638 0xAFF5 +0x8238B639 0xAFF6 +0x8238B730 0xAFF7 +0x8238B731 0xAFF8 +0x8238B732 0xAFF9 +0x8238B733 0xAFFA +0x8238B734 0xAFFB +0x8238B735 0xAFFC +0x8238B736 0xAFFD +0x8238B737 0xAFFE +0x8238B738 0xAFFF +0x8238B739 0xB000 +0x8238B830 0xB001 +0x8238B831 0xB002 +0x8238B832 0xB003 +0x8238B833 0xB004 +0x8238B834 0xB005 +0x8238B835 0xB006 +0x8238B836 0xB007 +0x8238B837 0xB008 +0x8238B838 0xB009 +0x8238B839 0xB00A +0x8238B930 0xB00B +0x8238B931 0xB00C +0x8238B932 0xB00D +0x8238B933 0xB00E +0x8238B934 0xB00F +0x8238B935 0xB010 +0x8238B936 0xB011 +0x8238B937 0xB012 +0x8238B938 0xB013 +0x8238B939 0xB014 +0x8238BA30 0xB015 +0x8238BA31 0xB016 +0x8238BA32 0xB017 +0x8238BA33 0xB018 +0x8238BA34 0xB019 +0x8238BA35 0xB01A +0x8238BA36 0xB01B +0x8238BA37 0xB01C +0x8238BA38 0xB01D +0x8238BA39 0xB01E +0x8238BB30 0xB01F +0x8238BB31 0xB020 +0x8238BB32 0xB021 +0x8238BB33 0xB022 +0x8238BB34 0xB023 +0x8238BB35 0xB024 +0x8238BB36 0xB025 +0x8238BB37 0xB026 +0x8238BB38 0xB027 +0x8238BB39 0xB028 +0x8238BC30 0xB029 +0x8238BC31 0xB02A +0x8238BC32 0xB02B +0x8238BC33 0xB02C +0x8238BC34 0xB02D +0x8238BC35 0xB02E +0x8238BC36 0xB02F +0x8238BC37 0xB030 +0x8238BC38 0xB031 +0x8238BC39 0xB032 +0x8238BD30 0xB033 +0x8238BD31 0xB034 +0x8238BD32 0xB035 +0x8238BD33 0xB036 +0x8238BD34 0xB037 +0x8238BD35 0xB038 +0x8238BD36 0xB039 +0x8238BD37 0xB03A +0x8238BD38 0xB03B +0x8238BD39 0xB03C +0x8238BE30 0xB03D +0x8238BE31 0xB03E +0x8238BE32 0xB03F +0x8238BE33 0xB040 +0x8238BE34 0xB041 +0x8238BE35 0xB042 +0x8238BE36 0xB043 +0x8238BE37 0xB044 +0x8238BE38 0xB045 +0x8238BE39 0xB046 +0x8238BF30 0xB047 +0x8238BF31 0xB048 +0x8238BF32 0xB049 +0x8238BF33 0xB04A +0x8238BF34 0xB04B +0x8238BF35 0xB04C +0x8238BF36 0xB04D +0x8238BF37 0xB04E +0x8238BF38 0xB04F +0x8238BF39 0xB050 +0x8238C030 0xB051 +0x8238C031 0xB052 +0x8238C032 0xB053 +0x8238C033 0xB054 +0x8238C034 0xB055 +0x8238C035 0xB056 +0x8238C036 0xB057 +0x8238C037 0xB058 +0x8238C038 0xB059 +0x8238C039 0xB05A +0x8238C130 0xB05B +0x8238C131 0xB05C +0x8238C132 0xB05D +0x8238C133 0xB05E +0x8238C134 0xB05F +0x8238C135 0xB060 +0x8238C136 0xB061 +0x8238C137 0xB062 +0x8238C138 0xB063 +0x8238C139 0xB064 +0x8238C230 0xB065 +0x8238C231 0xB066 +0x8238C232 0xB067 +0x8238C233 0xB068 +0x8238C234 0xB069 +0x8238C235 0xB06A +0x8238C236 0xB06B +0x8238C237 0xB06C +0x8238C238 0xB06D +0x8238C239 0xB06E +0x8238C330 0xB06F +0x8238C331 0xB070 +0x8238C332 0xB071 +0x8238C333 0xB072 +0x8238C334 0xB073 +0x8238C335 0xB074 +0x8238C336 0xB075 +0x8238C337 0xB076 +0x8238C338 0xB077 +0x8238C339 0xB078 +0x8238C430 0xB079 +0x8238C431 0xB07A +0x8238C432 0xB07B +0x8238C433 0xB07C +0x8238C434 0xB07D +0x8238C435 0xB07E +0x8238C436 0xB07F +0x8238C437 0xB080 +0x8238C438 0xB081 +0x8238C439 0xB082 +0x8238C530 0xB083 +0x8238C531 0xB084 +0x8238C532 0xB085 +0x8238C533 0xB086 +0x8238C534 0xB087 +0x8238C535 0xB088 +0x8238C536 0xB089 +0x8238C537 0xB08A +0x8238C538 0xB08B +0x8238C539 0xB08C +0x8238C630 0xB08D +0x8238C631 0xB08E +0x8238C632 0xB08F +0x8238C633 0xB090 +0x8238C634 0xB091 +0x8238C635 0xB092 +0x8238C636 0xB093 +0x8238C637 0xB094 +0x8238C638 0xB095 +0x8238C639 0xB096 +0x8238C730 0xB097 +0x8238C731 0xB098 +0x8238C732 0xB099 +0x8238C733 0xB09A +0x8238C734 0xB09B +0x8238C735 0xB09C +0x8238C736 0xB09D +0x8238C737 0xB09E +0x8238C738 0xB09F +0x8238C739 0xB0A0 +0x8238C830 0xB0A1 +0x8238C831 0xB0A2 +0x8238C832 0xB0A3 +0x8238C833 0xB0A4 +0x8238C834 0xB0A5 +0x8238C835 0xB0A6 +0x8238C836 0xB0A7 +0x8238C837 0xB0A8 +0x8238C838 0xB0A9 +0x8238C839 0xB0AA +0x8238C930 0xB0AB +0x8238C931 0xB0AC +0x8238C932 0xB0AD +0x8238C933 0xB0AE +0x8238C934 0xB0AF +0x8238C935 0xB0B0 +0x8238C936 0xB0B1 +0x8238C937 0xB0B2 +0x8238C938 0xB0B3 +0x8238C939 0xB0B4 +0x8238CA30 0xB0B5 +0x8238CA31 0xB0B6 +0x8238CA32 0xB0B7 +0x8238CA33 0xB0B8 +0x8238CA34 0xB0B9 +0x8238CA35 0xB0BA +0x8238CA36 0xB0BB +0x8238CA37 0xB0BC +0x8238CA38 0xB0BD +0x8238CA39 0xB0BE +0x8238CB30 0xB0BF +0x8238CB31 0xB0C0 +0x8238CB32 0xB0C1 +0x8238CB33 0xB0C2 +0x8238CB34 0xB0C3 +0x8238CB35 0xB0C4 +0x8238CB36 0xB0C5 +0x8238CB37 0xB0C6 +0x8238CB38 0xB0C7 +0x8238CB39 0xB0C8 +0x8238CC30 0xB0C9 +0x8238CC31 0xB0CA +0x8238CC32 0xB0CB +0x8238CC33 0xB0CC +0x8238CC34 0xB0CD +0x8238CC35 0xB0CE +0x8238CC36 0xB0CF +0x8238CC37 0xB0D0 +0x8238CC38 0xB0D1 +0x8238CC39 0xB0D2 +0x8238CD30 0xB0D3 +0x8238CD31 0xB0D4 +0x8238CD32 0xB0D5 +0x8238CD33 0xB0D6 +0x8238CD34 0xB0D7 +0x8238CD35 0xB0D8 +0x8238CD36 0xB0D9 +0x8238CD37 0xB0DA +0x8238CD38 0xB0DB +0x8238CD39 0xB0DC +0x8238CE30 0xB0DD +0x8238CE31 0xB0DE +0x8238CE32 0xB0DF +0x8238CE33 0xB0E0 +0x8238CE34 0xB0E1 +0x8238CE35 0xB0E2 +0x8238CE36 0xB0E3 +0x8238CE37 0xB0E4 +0x8238CE38 0xB0E5 +0x8238CE39 0xB0E6 +0x8238CF30 0xB0E7 +0x8238CF31 0xB0E8 +0x8238CF32 0xB0E9 +0x8238CF33 0xB0EA +0x8238CF34 0xB0EB +0x8238CF35 0xB0EC +0x8238CF36 0xB0ED +0x8238CF37 0xB0EE +0x8238CF38 0xB0EF +0x8238CF39 0xB0F0 +0x8238D030 0xB0F1 +0x8238D031 0xB0F2 +0x8238D032 0xB0F3 +0x8238D033 0xB0F4 +0x8238D034 0xB0F5 +0x8238D035 0xB0F6 +0x8238D036 0xB0F7 +0x8238D037 0xB0F8 +0x8238D038 0xB0F9 +0x8238D039 0xB0FA +0x8238D130 0xB0FB +0x8238D131 0xB0FC +0x8238D132 0xB0FD +0x8238D133 0xB0FE +0x8238D134 0xB0FF +0x8238D135 0xB100 +0x8238D136 0xB101 +0x8238D137 0xB102 +0x8238D138 0xB103 +0x8238D139 0xB104 +0x8238D230 0xB105 +0x8238D231 0xB106 +0x8238D232 0xB107 +0x8238D233 0xB108 +0x8238D234 0xB109 +0x8238D235 0xB10A +0x8238D236 0xB10B +0x8238D237 0xB10C +0x8238D238 0xB10D +0x8238D239 0xB10E +0x8238D330 0xB10F +0x8238D331 0xB110 +0x8238D332 0xB111 +0x8238D333 0xB112 +0x8238D334 0xB113 +0x8238D335 0xB114 +0x8238D336 0xB115 +0x8238D337 0xB116 +0x8238D338 0xB117 +0x8238D339 0xB118 +0x8238D430 0xB119 +0x8238D431 0xB11A +0x8238D432 0xB11B +0x8238D433 0xB11C +0x8238D434 0xB11D +0x8238D435 0xB11E +0x8238D436 0xB11F +0x8238D437 0xB120 +0x8238D438 0xB121 +0x8238D439 0xB122 +0x8238D530 0xB123 +0x8238D531 0xB124 +0x8238D532 0xB125 +0x8238D533 0xB126 +0x8238D534 0xB127 +0x8238D535 0xB128 +0x8238D536 0xB129 +0x8238D537 0xB12A +0x8238D538 0xB12B +0x8238D539 0xB12C +0x8238D630 0xB12D +0x8238D631 0xB12E +0x8238D632 0xB12F +0x8238D633 0xB130 +0x8238D634 0xB131 +0x8238D635 0xB132 +0x8238D636 0xB133 +0x8238D637 0xB134 +0x8238D638 0xB135 +0x8238D639 0xB136 +0x8238D730 0xB137 +0x8238D731 0xB138 +0x8238D732 0xB139 +0x8238D733 0xB13A +0x8238D734 0xB13B +0x8238D735 0xB13C +0x8238D736 0xB13D +0x8238D737 0xB13E +0x8238D738 0xB13F +0x8238D739 0xB140 +0x8238D830 0xB141 +0x8238D831 0xB142 +0x8238D832 0xB143 +0x8238D833 0xB144 +0x8238D834 0xB145 +0x8238D835 0xB146 +0x8238D836 0xB147 +0x8238D837 0xB148 +0x8238D838 0xB149 +0x8238D839 0xB14A +0x8238D930 0xB14B +0x8238D931 0xB14C +0x8238D932 0xB14D +0x8238D933 0xB14E +0x8238D934 0xB14F +0x8238D935 0xB150 +0x8238D936 0xB151 +0x8238D937 0xB152 +0x8238D938 0xB153 +0x8238D939 0xB154 +0x8238DA30 0xB155 +0x8238DA31 0xB156 +0x8238DA32 0xB157 +0x8238DA33 0xB158 +0x8238DA34 0xB159 +0x8238DA35 0xB15A +0x8238DA36 0xB15B +0x8238DA37 0xB15C +0x8238DA38 0xB15D +0x8238DA39 0xB15E +0x8238DB30 0xB15F +0x8238DB31 0xB160 +0x8238DB32 0xB161 +0x8238DB33 0xB162 +0x8238DB34 0xB163 +0x8238DB35 0xB164 +0x8238DB36 0xB165 +0x8238DB37 0xB166 +0x8238DB38 0xB167 +0x8238DB39 0xB168 +0x8238DC30 0xB169 +0x8238DC31 0xB16A +0x8238DC32 0xB16B +0x8238DC33 0xB16C +0x8238DC34 0xB16D +0x8238DC35 0xB16E +0x8238DC36 0xB16F +0x8238DC37 0xB170 +0x8238DC38 0xB171 +0x8238DC39 0xB172 +0x8238DD30 0xB173 +0x8238DD31 0xB174 +0x8238DD32 0xB175 +0x8238DD33 0xB176 +0x8238DD34 0xB177 +0x8238DD35 0xB178 +0x8238DD36 0xB179 +0x8238DD37 0xB17A +0x8238DD38 0xB17B +0x8238DD39 0xB17C +0x8238DE30 0xB17D +0x8238DE31 0xB17E +0x8238DE32 0xB17F +0x8238DE33 0xB180 +0x8238DE34 0xB181 +0x8238DE35 0xB182 +0x8238DE36 0xB183 +0x8238DE37 0xB184 +0x8238DE38 0xB185 +0x8238DE39 0xB186 +0x8238DF30 0xB187 +0x8238DF31 0xB188 +0x8238DF32 0xB189 +0x8238DF33 0xB18A +0x8238DF34 0xB18B +0x8238DF35 0xB18C +0x8238DF36 0xB18D +0x8238DF37 0xB18E +0x8238DF38 0xB18F +0x8238DF39 0xB190 +0x8238E030 0xB191 +0x8238E031 0xB192 +0x8238E032 0xB193 +0x8238E033 0xB194 +0x8238E034 0xB195 +0x8238E035 0xB196 +0x8238E036 0xB197 +0x8238E037 0xB198 +0x8238E038 0xB199 +0x8238E039 0xB19A +0x8238E130 0xB19B +0x8238E131 0xB19C +0x8238E132 0xB19D +0x8238E133 0xB19E +0x8238E134 0xB19F +0x8238E135 0xB1A0 +0x8238E136 0xB1A1 +0x8238E137 0xB1A2 +0x8238E138 0xB1A3 +0x8238E139 0xB1A4 +0x8238E230 0xB1A5 +0x8238E231 0xB1A6 +0x8238E232 0xB1A7 +0x8238E233 0xB1A8 +0x8238E234 0xB1A9 +0x8238E235 0xB1AA +0x8238E236 0xB1AB +0x8238E237 0xB1AC +0x8238E238 0xB1AD +0x8238E239 0xB1AE +0x8238E330 0xB1AF +0x8238E331 0xB1B0 +0x8238E332 0xB1B1 +0x8238E333 0xB1B2 +0x8238E334 0xB1B3 +0x8238E335 0xB1B4 +0x8238E336 0xB1B5 +0x8238E337 0xB1B6 +0x8238E338 0xB1B7 +0x8238E339 0xB1B8 +0x8238E430 0xB1B9 +0x8238E431 0xB1BA +0x8238E432 0xB1BB +0x8238E433 0xB1BC +0x8238E434 0xB1BD +0x8238E435 0xB1BE +0x8238E436 0xB1BF +0x8238E437 0xB1C0 +0x8238E438 0xB1C1 +0x8238E439 0xB1C2 +0x8238E530 0xB1C3 +0x8238E531 0xB1C4 +0x8238E532 0xB1C5 +0x8238E533 0xB1C6 +0x8238E534 0xB1C7 +0x8238E535 0xB1C8 +0x8238E536 0xB1C9 +0x8238E537 0xB1CA +0x8238E538 0xB1CB +0x8238E539 0xB1CC +0x8238E630 0xB1CD +0x8238E631 0xB1CE +0x8238E632 0xB1CF +0x8238E633 0xB1D0 +0x8238E634 0xB1D1 +0x8238E635 0xB1D2 +0x8238E636 0xB1D3 +0x8238E637 0xB1D4 +0x8238E638 0xB1D5 +0x8238E639 0xB1D6 +0x8238E730 0xB1D7 +0x8238E731 0xB1D8 +0x8238E732 0xB1D9 +0x8238E733 0xB1DA +0x8238E734 0xB1DB +0x8238E735 0xB1DC +0x8238E736 0xB1DD +0x8238E737 0xB1DE +0x8238E738 0xB1DF +0x8238E739 0xB1E0 +0x8238E830 0xB1E1 +0x8238E831 0xB1E2 +0x8238E832 0xB1E3 +0x8238E833 0xB1E4 +0x8238E834 0xB1E5 +0x8238E835 0xB1E6 +0x8238E836 0xB1E7 +0x8238E837 0xB1E8 +0x8238E838 0xB1E9 +0x8238E839 0xB1EA +0x8238E930 0xB1EB +0x8238E931 0xB1EC +0x8238E932 0xB1ED +0x8238E933 0xB1EE +0x8238E934 0xB1EF +0x8238E935 0xB1F0 +0x8238E936 0xB1F1 +0x8238E937 0xB1F2 +0x8238E938 0xB1F3 +0x8238E939 0xB1F4 +0x8238EA30 0xB1F5 +0x8238EA31 0xB1F6 +0x8238EA32 0xB1F7 +0x8238EA33 0xB1F8 +0x8238EA34 0xB1F9 +0x8238EA35 0xB1FA +0x8238EA36 0xB1FB +0x8238EA37 0xB1FC +0x8238EA38 0xB1FD +0x8238EA39 0xB1FE +0x8238EB30 0xB1FF +0x8238EB31 0xB200 +0x8238EB32 0xB201 +0x8238EB33 0xB202 +0x8238EB34 0xB203 +0x8238EB35 0xB204 +0x8238EB36 0xB205 +0x8238EB37 0xB206 +0x8238EB38 0xB207 +0x8238EB39 0xB208 +0x8238EC30 0xB209 +0x8238EC31 0xB20A +0x8238EC32 0xB20B +0x8238EC33 0xB20C +0x8238EC34 0xB20D +0x8238EC35 0xB20E +0x8238EC36 0xB20F +0x8238EC37 0xB210 +0x8238EC38 0xB211 +0x8238EC39 0xB212 +0x8238ED30 0xB213 +0x8238ED31 0xB214 +0x8238ED32 0xB215 +0x8238ED33 0xB216 +0x8238ED34 0xB217 +0x8238ED35 0xB218 +0x8238ED36 0xB219 +0x8238ED37 0xB21A +0x8238ED38 0xB21B +0x8238ED39 0xB21C +0x8238EE30 0xB21D +0x8238EE31 0xB21E +0x8238EE32 0xB21F +0x8238EE33 0xB220 +0x8238EE34 0xB221 +0x8238EE35 0xB222 +0x8238EE36 0xB223 +0x8238EE37 0xB224 +0x8238EE38 0xB225 +0x8238EE39 0xB226 +0x8238EF30 0xB227 +0x8238EF31 0xB228 +0x8238EF32 0xB229 +0x8238EF33 0xB22A +0x8238EF34 0xB22B +0x8238EF35 0xB22C +0x8238EF36 0xB22D +0x8238EF37 0xB22E +0x8238EF38 0xB22F +0x8238EF39 0xB230 +0x8238F030 0xB231 +0x8238F031 0xB232 +0x8238F032 0xB233 +0x8238F033 0xB234 +0x8238F034 0xB235 +0x8238F035 0xB236 +0x8238F036 0xB237 +0x8238F037 0xB238 +0x8238F038 0xB239 +0x8238F039 0xB23A +0x8238F130 0xB23B +0x8238F131 0xB23C +0x8238F132 0xB23D +0x8238F133 0xB23E +0x8238F134 0xB23F +0x8238F135 0xB240 +0x8238F136 0xB241 +0x8238F137 0xB242 +0x8238F138 0xB243 +0x8238F139 0xB244 +0x8238F230 0xB245 +0x8238F231 0xB246 +0x8238F232 0xB247 +0x8238F233 0xB248 +0x8238F234 0xB249 +0x8238F235 0xB24A +0x8238F236 0xB24B +0x8238F237 0xB24C +0x8238F238 0xB24D +0x8238F239 0xB24E +0x8238F330 0xB24F +0x8238F331 0xB250 +0x8238F332 0xB251 +0x8238F333 0xB252 +0x8238F334 0xB253 +0x8238F335 0xB254 +0x8238F336 0xB255 +0x8238F337 0xB256 +0x8238F338 0xB257 +0x8238F339 0xB258 +0x8238F430 0xB259 +0x8238F431 0xB25A +0x8238F432 0xB25B +0x8238F433 0xB25C +0x8238F434 0xB25D +0x8238F435 0xB25E +0x8238F436 0xB25F +0x8238F437 0xB260 +0x8238F438 0xB261 +0x8238F439 0xB262 +0x8238F530 0xB263 +0x8238F531 0xB264 +0x8238F532 0xB265 +0x8238F533 0xB266 +0x8238F534 0xB267 +0x8238F535 0xB268 +0x8238F536 0xB269 +0x8238F537 0xB26A +0x8238F538 0xB26B +0x8238F539 0xB26C +0x8238F630 0xB26D +0x8238F631 0xB26E +0x8238F632 0xB26F +0x8238F633 0xB270 +0x8238F634 0xB271 +0x8238F635 0xB272 +0x8238F636 0xB273 +0x8238F637 0xB274 +0x8238F638 0xB275 +0x8238F639 0xB276 +0x8238F730 0xB277 +0x8238F731 0xB278 +0x8238F732 0xB279 +0x8238F733 0xB27A +0x8238F734 0xB27B +0x8238F735 0xB27C +0x8238F736 0xB27D +0x8238F737 0xB27E +0x8238F738 0xB27F +0x8238F739 0xB280 +0x8238F830 0xB281 +0x8238F831 0xB282 +0x8238F832 0xB283 +0x8238F833 0xB284 +0x8238F834 0xB285 +0x8238F835 0xB286 +0x8238F836 0xB287 +0x8238F837 0xB288 +0x8238F838 0xB289 +0x8238F839 0xB28A +0x8238F930 0xB28B +0x8238F931 0xB28C +0x8238F932 0xB28D +0x8238F933 0xB28E +0x8238F934 0xB28F +0x8238F935 0xB290 +0x8238F936 0xB291 +0x8238F937 0xB292 +0x8238F938 0xB293 +0x8238F939 0xB294 +0x8238FA30 0xB295 +0x8238FA31 0xB296 +0x8238FA32 0xB297 +0x8238FA33 0xB298 +0x8238FA34 0xB299 +0x8238FA35 0xB29A +0x8238FA36 0xB29B +0x8238FA37 0xB29C +0x8238FA38 0xB29D +0x8238FA39 0xB29E +0x8238FB30 0xB29F +0x8238FB31 0xB2A0 +0x8238FB32 0xB2A1 +0x8238FB33 0xB2A2 +0x8238FB34 0xB2A3 +0x8238FB35 0xB2A4 +0x8238FB36 0xB2A5 +0x8238FB37 0xB2A6 +0x8238FB38 0xB2A7 +0x8238FB39 0xB2A8 +0x8238FC30 0xB2A9 +0x8238FC31 0xB2AA +0x8238FC32 0xB2AB +0x8238FC33 0xB2AC +0x8238FC34 0xB2AD +0x8238FC35 0xB2AE +0x8238FC36 0xB2AF +0x8238FC37 0xB2B0 +0x8238FC38 0xB2B1 +0x8238FC39 0xB2B2 +0x8238FD30 0xB2B3 +0x8238FD31 0xB2B4 +0x8238FD32 0xB2B5 +0x8238FD33 0xB2B6 +0x8238FD34 0xB2B7 +0x8238FD35 0xB2B8 +0x8238FD36 0xB2B9 +0x8238FD37 0xB2BA +0x8238FD38 0xB2BB +0x8238FD39 0xB2BC +0x8238FE30 0xB2BD +0x8238FE31 0xB2BE +0x8238FE32 0xB2BF +0x8238FE33 0xB2C0 +0x8238FE34 0xB2C1 +0x8238FE35 0xB2C2 +0x8238FE36 0xB2C3 +0x8238FE37 0xB2C4 +0x8238FE38 0xB2C5 +0x8238FE39 0xB2C6 +0x82398130 0xB2C7 +0x82398131 0xB2C8 +0x82398132 0xB2C9 +0x82398133 0xB2CA +0x82398134 0xB2CB +0x82398135 0xB2CC +0x82398136 0xB2CD +0x82398137 0xB2CE +0x82398138 0xB2CF +0x82398139 0xB2D0 +0x82398230 0xB2D1 +0x82398231 0xB2D2 +0x82398232 0xB2D3 +0x82398233 0xB2D4 +0x82398234 0xB2D5 +0x82398235 0xB2D6 +0x82398236 0xB2D7 +0x82398237 0xB2D8 +0x82398238 0xB2D9 +0x82398239 0xB2DA +0x82398330 0xB2DB +0x82398331 0xB2DC +0x82398332 0xB2DD +0x82398333 0xB2DE +0x82398334 0xB2DF +0x82398335 0xB2E0 +0x82398336 0xB2E1 +0x82398337 0xB2E2 +0x82398338 0xB2E3 +0x82398339 0xB2E4 +0x82398430 0xB2E5 +0x82398431 0xB2E6 +0x82398432 0xB2E7 +0x82398433 0xB2E8 +0x82398434 0xB2E9 +0x82398435 0xB2EA +0x82398436 0xB2EB +0x82398437 0xB2EC +0x82398438 0xB2ED +0x82398439 0xB2EE +0x82398530 0xB2EF +0x82398531 0xB2F0 +0x82398532 0xB2F1 +0x82398533 0xB2F2 +0x82398534 0xB2F3 +0x82398535 0xB2F4 +0x82398536 0xB2F5 +0x82398537 0xB2F6 +0x82398538 0xB2F7 +0x82398539 0xB2F8 +0x82398630 0xB2F9 +0x82398631 0xB2FA +0x82398632 0xB2FB +0x82398633 0xB2FC +0x82398634 0xB2FD +0x82398635 0xB2FE +0x82398636 0xB2FF +0x82398637 0xB300 +0x82398638 0xB301 +0x82398639 0xB302 +0x82398730 0xB303 +0x82398731 0xB304 +0x82398732 0xB305 +0x82398733 0xB306 +0x82398734 0xB307 +0x82398735 0xB308 +0x82398736 0xB309 +0x82398737 0xB30A +0x82398738 0xB30B +0x82398739 0xB30C +0x82398830 0xB30D +0x82398831 0xB30E +0x82398832 0xB30F +0x82398833 0xB310 +0x82398834 0xB311 +0x82398835 0xB312 +0x82398836 0xB313 +0x82398837 0xB314 +0x82398838 0xB315 +0x82398839 0xB316 +0x82398930 0xB317 +0x82398931 0xB318 +0x82398932 0xB319 +0x82398933 0xB31A +0x82398934 0xB31B +0x82398935 0xB31C +0x82398936 0xB31D +0x82398937 0xB31E +0x82398938 0xB31F +0x82398939 0xB320 +0x82398A30 0xB321 +0x82398A31 0xB322 +0x82398A32 0xB323 +0x82398A33 0xB324 +0x82398A34 0xB325 +0x82398A35 0xB326 +0x82398A36 0xB327 +0x82398A37 0xB328 +0x82398A38 0xB329 +0x82398A39 0xB32A +0x82398B30 0xB32B +0x82398B31 0xB32C +0x82398B32 0xB32D +0x82398B33 0xB32E +0x82398B34 0xB32F +0x82398B35 0xB330 +0x82398B36 0xB331 +0x82398B37 0xB332 +0x82398B38 0xB333 +0x82398B39 0xB334 +0x82398C30 0xB335 +0x82398C31 0xB336 +0x82398C32 0xB337 +0x82398C33 0xB338 +0x82398C34 0xB339 +0x82398C35 0xB33A +0x82398C36 0xB33B +0x82398C37 0xB33C +0x82398C38 0xB33D +0x82398C39 0xB33E +0x82398D30 0xB33F +0x82398D31 0xB340 +0x82398D32 0xB341 +0x82398D33 0xB342 +0x82398D34 0xB343 +0x82398D35 0xB344 +0x82398D36 0xB345 +0x82398D37 0xB346 +0x82398D38 0xB347 +0x82398D39 0xB348 +0x82398E30 0xB349 +0x82398E31 0xB34A +0x82398E32 0xB34B +0x82398E33 0xB34C +0x82398E34 0xB34D +0x82398E35 0xB34E +0x82398E36 0xB34F +0x82398E37 0xB350 +0x82398E38 0xB351 +0x82398E39 0xB352 +0x82398F30 0xB353 +0x82398F31 0xB354 +0x82398F32 0xB355 +0x82398F33 0xB356 +0x82398F34 0xB357 +0x82398F35 0xB358 +0x82398F36 0xB359 +0x82398F37 0xB35A +0x82398F38 0xB35B +0x82398F39 0xB35C +0x82399030 0xB35D +0x82399031 0xB35E +0x82399032 0xB35F +0x82399033 0xB360 +0x82399034 0xB361 +0x82399035 0xB362 +0x82399036 0xB363 +0x82399037 0xB364 +0x82399038 0xB365 +0x82399039 0xB366 +0x82399130 0xB367 +0x82399131 0xB368 +0x82399132 0xB369 +0x82399133 0xB36A +0x82399134 0xB36B +0x82399135 0xB36C +0x82399136 0xB36D +0x82399137 0xB36E +0x82399138 0xB36F +0x82399139 0xB370 +0x82399230 0xB371 +0x82399231 0xB372 +0x82399232 0xB373 +0x82399233 0xB374 +0x82399234 0xB375 +0x82399235 0xB376 +0x82399236 0xB377 +0x82399237 0xB378 +0x82399238 0xB379 +0x82399239 0xB37A +0x82399330 0xB37B +0x82399331 0xB37C +0x82399332 0xB37D +0x82399333 0xB37E +0x82399334 0xB37F +0x82399335 0xB380 +0x82399336 0xB381 +0x82399337 0xB382 +0x82399338 0xB383 +0x82399339 0xB384 +0x82399430 0xB385 +0x82399431 0xB386 +0x82399432 0xB387 +0x82399433 0xB388 +0x82399434 0xB389 +0x82399435 0xB38A +0x82399436 0xB38B +0x82399437 0xB38C +0x82399438 0xB38D +0x82399439 0xB38E +0x82399530 0xB38F +0x82399531 0xB390 +0x82399532 0xB391 +0x82399533 0xB392 +0x82399534 0xB393 +0x82399535 0xB394 +0x82399536 0xB395 +0x82399537 0xB396 +0x82399538 0xB397 +0x82399539 0xB398 +0x82399630 0xB399 +0x82399631 0xB39A +0x82399632 0xB39B +0x82399633 0xB39C +0x82399634 0xB39D +0x82399635 0xB39E +0x82399636 0xB39F +0x82399637 0xB3A0 +0x82399638 0xB3A1 +0x82399639 0xB3A2 +0x82399730 0xB3A3 +0x82399731 0xB3A4 +0x82399732 0xB3A5 +0x82399733 0xB3A6 +0x82399734 0xB3A7 +0x82399735 0xB3A8 +0x82399736 0xB3A9 +0x82399737 0xB3AA +0x82399738 0xB3AB +0x82399739 0xB3AC +0x82399830 0xB3AD +0x82399831 0xB3AE +0x82399832 0xB3AF +0x82399833 0xB3B0 +0x82399834 0xB3B1 +0x82399835 0xB3B2 +0x82399836 0xB3B3 +0x82399837 0xB3B4 +0x82399838 0xB3B5 +0x82399839 0xB3B6 +0x82399930 0xB3B7 +0x82399931 0xB3B8 +0x82399932 0xB3B9 +0x82399933 0xB3BA +0x82399934 0xB3BB +0x82399935 0xB3BC +0x82399936 0xB3BD +0x82399937 0xB3BE +0x82399938 0xB3BF +0x82399939 0xB3C0 +0x82399A30 0xB3C1 +0x82399A31 0xB3C2 +0x82399A32 0xB3C3 +0x82399A33 0xB3C4 +0x82399A34 0xB3C5 +0x82399A35 0xB3C6 +0x82399A36 0xB3C7 +0x82399A37 0xB3C8 +0x82399A38 0xB3C9 +0x82399A39 0xB3CA +0x82399B30 0xB3CB +0x82399B31 0xB3CC +0x82399B32 0xB3CD +0x82399B33 0xB3CE +0x82399B34 0xB3CF +0x82399B35 0xB3D0 +0x82399B36 0xB3D1 +0x82399B37 0xB3D2 +0x82399B38 0xB3D3 +0x82399B39 0xB3D4 +0x82399C30 0xB3D5 +0x82399C31 0xB3D6 +0x82399C32 0xB3D7 +0x82399C33 0xB3D8 +0x82399C34 0xB3D9 +0x82399C35 0xB3DA +0x82399C36 0xB3DB +0x82399C37 0xB3DC +0x82399C38 0xB3DD +0x82399C39 0xB3DE +0x82399D30 0xB3DF +0x82399D31 0xB3E0 +0x82399D32 0xB3E1 +0x82399D33 0xB3E2 +0x82399D34 0xB3E3 +0x82399D35 0xB3E4 +0x82399D36 0xB3E5 +0x82399D37 0xB3E6 +0x82399D38 0xB3E7 +0x82399D39 0xB3E8 +0x82399E30 0xB3E9 +0x82399E31 0xB3EA +0x82399E32 0xB3EB +0x82399E33 0xB3EC +0x82399E34 0xB3ED +0x82399E35 0xB3EE +0x82399E36 0xB3EF +0x82399E37 0xB3F0 +0x82399E38 0xB3F1 +0x82399E39 0xB3F2 +0x82399F30 0xB3F3 +0x82399F31 0xB3F4 +0x82399F32 0xB3F5 +0x82399F33 0xB3F6 +0x82399F34 0xB3F7 +0x82399F35 0xB3F8 +0x82399F36 0xB3F9 +0x82399F37 0xB3FA +0x82399F38 0xB3FB +0x82399F39 0xB3FC +0x8239A030 0xB3FD +0x8239A031 0xB3FE +0x8239A032 0xB3FF +0x8239A033 0xB400 +0x8239A034 0xB401 +0x8239A035 0xB402 +0x8239A036 0xB403 +0x8239A037 0xB404 +0x8239A038 0xB405 +0x8239A039 0xB406 +0x8239A130 0xB407 +0x8239A131 0xB408 +0x8239A132 0xB409 +0x8239A133 0xB40A +0x8239A134 0xB40B +0x8239A135 0xB40C +0x8239A136 0xB40D +0x8239A137 0xB40E +0x8239A138 0xB40F +0x8239A139 0xB410 +0x8239A230 0xB411 +0x8239A231 0xB412 +0x8239A232 0xB413 +0x8239A233 0xB414 +0x8239A234 0xB415 +0x8239A235 0xB416 +0x8239A236 0xB417 +0x8239A237 0xB418 +0x8239A238 0xB419 +0x8239A239 0xB41A +0x8239A330 0xB41B +0x8239A331 0xB41C +0x8239A332 0xB41D +0x8239A333 0xB41E +0x8239A334 0xB41F +0x8239A335 0xB420 +0x8239A336 0xB421 +0x8239A337 0xB422 +0x8239A338 0xB423 +0x8239A339 0xB424 +0x8239A430 0xB425 +0x8239A431 0xB426 +0x8239A432 0xB427 +0x8239A433 0xB428 +0x8239A434 0xB429 +0x8239A435 0xB42A +0x8239A436 0xB42B +0x8239A437 0xB42C +0x8239A438 0xB42D +0x8239A439 0xB42E +0x8239A530 0xB42F +0x8239A531 0xB430 +0x8239A532 0xB431 +0x8239A533 0xB432 +0x8239A534 0xB433 +0x8239A535 0xB434 +0x8239A536 0xB435 +0x8239A537 0xB436 +0x8239A538 0xB437 +0x8239A539 0xB438 +0x8239A630 0xB439 +0x8239A631 0xB43A +0x8239A632 0xB43B +0x8239A633 0xB43C +0x8239A634 0xB43D +0x8239A635 0xB43E +0x8239A636 0xB43F +0x8239A637 0xB440 +0x8239A638 0xB441 +0x8239A639 0xB442 +0x8239A730 0xB443 +0x8239A731 0xB444 +0x8239A732 0xB445 +0x8239A733 0xB446 +0x8239A734 0xB447 +0x8239A735 0xB448 +0x8239A736 0xB449 +0x8239A737 0xB44A +0x8239A738 0xB44B +0x8239A739 0xB44C +0x8239A830 0xB44D +0x8239A831 0xB44E +0x8239A832 0xB44F +0x8239A833 0xB450 +0x8239A834 0xB451 +0x8239A835 0xB452 +0x8239A836 0xB453 +0x8239A837 0xB454 +0x8239A838 0xB455 +0x8239A839 0xB456 +0x8239A930 0xB457 +0x8239A931 0xB458 +0x8239A932 0xB459 +0x8239A933 0xB45A +0x8239A934 0xB45B +0x8239A935 0xB45C +0x8239A936 0xB45D +0x8239A937 0xB45E +0x8239A938 0xB45F +0x8239A939 0xB460 +0x8239AA30 0xB461 +0x8239AA31 0xB462 +0x8239AA32 0xB463 +0x8239AA33 0xB464 +0x8239AA34 0xB465 +0x8239AA35 0xB466 +0x8239AA36 0xB467 +0x8239AA37 0xB468 +0x8239AA38 0xB469 +0x8239AA39 0xB46A +0x8239AB30 0xB46B +0x8239AB31 0xB46C +0x8239AB32 0xB46D +0x8239AB33 0xB46E +0x8239AB34 0xB46F +0x8239AB35 0xB470 +0x8239AB36 0xB471 +0x8239AB37 0xB472 +0x8239AB38 0xB473 +0x8239AB39 0xB474 +0x8239AC30 0xB475 +0x8239AC31 0xB476 +0x8239AC32 0xB477 +0x8239AC33 0xB478 +0x8239AC34 0xB479 +0x8239AC35 0xB47A +0x8239AC36 0xB47B +0x8239AC37 0xB47C +0x8239AC38 0xB47D +0x8239AC39 0xB47E +0x8239AD30 0xB47F +0x8239AD31 0xB480 +0x8239AD32 0xB481 +0x8239AD33 0xB482 +0x8239AD34 0xB483 +0x8239AD35 0xB484 +0x8239AD36 0xB485 +0x8239AD37 0xB486 +0x8239AD38 0xB487 +0x8239AD39 0xB488 +0x8239AE30 0xB489 +0x8239AE31 0xB48A +0x8239AE32 0xB48B +0x8239AE33 0xB48C +0x8239AE34 0xB48D +0x8239AE35 0xB48E +0x8239AE36 0xB48F +0x8239AE37 0xB490 +0x8239AE38 0xB491 +0x8239AE39 0xB492 +0x8239AF30 0xB493 +0x8239AF31 0xB494 +0x8239AF32 0xB495 +0x8239AF33 0xB496 +0x8239AF34 0xB497 +0x8239AF35 0xB498 +0x8239AF36 0xB499 +0x8239AF37 0xB49A +0x8239AF38 0xB49B +0x8239AF39 0xB49C +0x8239B030 0xB49D +0x8239B031 0xB49E +0x8239B032 0xB49F +0x8239B033 0xB4A0 +0x8239B034 0xB4A1 +0x8239B035 0xB4A2 +0x8239B036 0xB4A3 +0x8239B037 0xB4A4 +0x8239B038 0xB4A5 +0x8239B039 0xB4A6 +0x8239B130 0xB4A7 +0x8239B131 0xB4A8 +0x8239B132 0xB4A9 +0x8239B133 0xB4AA +0x8239B134 0xB4AB +0x8239B135 0xB4AC +0x8239B136 0xB4AD +0x8239B137 0xB4AE +0x8239B138 0xB4AF +0x8239B139 0xB4B0 +0x8239B230 0xB4B1 +0x8239B231 0xB4B2 +0x8239B232 0xB4B3 +0x8239B233 0xB4B4 +0x8239B234 0xB4B5 +0x8239B235 0xB4B6 +0x8239B236 0xB4B7 +0x8239B237 0xB4B8 +0x8239B238 0xB4B9 +0x8239B239 0xB4BA +0x8239B330 0xB4BB +0x8239B331 0xB4BC +0x8239B332 0xB4BD +0x8239B333 0xB4BE +0x8239B334 0xB4BF +0x8239B335 0xB4C0 +0x8239B336 0xB4C1 +0x8239B337 0xB4C2 +0x8239B338 0xB4C3 +0x8239B339 0xB4C4 +0x8239B430 0xB4C5 +0x8239B431 0xB4C6 +0x8239B432 0xB4C7 +0x8239B433 0xB4C8 +0x8239B434 0xB4C9 +0x8239B435 0xB4CA +0x8239B436 0xB4CB +0x8239B437 0xB4CC +0x8239B438 0xB4CD +0x8239B439 0xB4CE +0x8239B530 0xB4CF +0x8239B531 0xB4D0 +0x8239B532 0xB4D1 +0x8239B533 0xB4D2 +0x8239B534 0xB4D3 +0x8239B535 0xB4D4 +0x8239B536 0xB4D5 +0x8239B537 0xB4D6 +0x8239B538 0xB4D7 +0x8239B539 0xB4D8 +0x8239B630 0xB4D9 +0x8239B631 0xB4DA +0x8239B632 0xB4DB +0x8239B633 0xB4DC +0x8239B634 0xB4DD +0x8239B635 0xB4DE +0x8239B636 0xB4DF +0x8239B637 0xB4E0 +0x8239B638 0xB4E1 +0x8239B639 0xB4E2 +0x8239B730 0xB4E3 +0x8239B731 0xB4E4 +0x8239B732 0xB4E5 +0x8239B733 0xB4E6 +0x8239B734 0xB4E7 +0x8239B735 0xB4E8 +0x8239B736 0xB4E9 +0x8239B737 0xB4EA +0x8239B738 0xB4EB +0x8239B739 0xB4EC +0x8239B830 0xB4ED +0x8239B831 0xB4EE +0x8239B832 0xB4EF +0x8239B833 0xB4F0 +0x8239B834 0xB4F1 +0x8239B835 0xB4F2 +0x8239B836 0xB4F3 +0x8239B837 0xB4F4 +0x8239B838 0xB4F5 +0x8239B839 0xB4F6 +0x8239B930 0xB4F7 +0x8239B931 0xB4F8 +0x8239B932 0xB4F9 +0x8239B933 0xB4FA +0x8239B934 0xB4FB +0x8239B935 0xB4FC +0x8239B936 0xB4FD +0x8239B937 0xB4FE +0x8239B938 0xB4FF +0x8239B939 0xB500 +0x8239BA30 0xB501 +0x8239BA31 0xB502 +0x8239BA32 0xB503 +0x8239BA33 0xB504 +0x8239BA34 0xB505 +0x8239BA35 0xB506 +0x8239BA36 0xB507 +0x8239BA37 0xB508 +0x8239BA38 0xB509 +0x8239BA39 0xB50A +0x8239BB30 0xB50B +0x8239BB31 0xB50C +0x8239BB32 0xB50D +0x8239BB33 0xB50E +0x8239BB34 0xB50F +0x8239BB35 0xB510 +0x8239BB36 0xB511 +0x8239BB37 0xB512 +0x8239BB38 0xB513 +0x8239BB39 0xB514 +0x8239BC30 0xB515 +0x8239BC31 0xB516 +0x8239BC32 0xB517 +0x8239BC33 0xB518 +0x8239BC34 0xB519 +0x8239BC35 0xB51A +0x8239BC36 0xB51B +0x8239BC37 0xB51C +0x8239BC38 0xB51D +0x8239BC39 0xB51E +0x8239BD30 0xB51F +0x8239BD31 0xB520 +0x8239BD32 0xB521 +0x8239BD33 0xB522 +0x8239BD34 0xB523 +0x8239BD35 0xB524 +0x8239BD36 0xB525 +0x8239BD37 0xB526 +0x8239BD38 0xB527 +0x8239BD39 0xB528 +0x8239BE30 0xB529 +0x8239BE31 0xB52A +0x8239BE32 0xB52B +0x8239BE33 0xB52C +0x8239BE34 0xB52D +0x8239BE35 0xB52E +0x8239BE36 0xB52F +0x8239BE37 0xB530 +0x8239BE38 0xB531 +0x8239BE39 0xB532 +0x8239BF30 0xB533 +0x8239BF31 0xB534 +0x8239BF32 0xB535 +0x8239BF33 0xB536 +0x8239BF34 0xB537 +0x8239BF35 0xB538 +0x8239BF36 0xB539 +0x8239BF37 0xB53A +0x8239BF38 0xB53B +0x8239BF39 0xB53C +0x8239C030 0xB53D +0x8239C031 0xB53E +0x8239C032 0xB53F +0x8239C033 0xB540 +0x8239C034 0xB541 +0x8239C035 0xB542 +0x8239C036 0xB543 +0x8239C037 0xB544 +0x8239C038 0xB545 +0x8239C039 0xB546 +0x8239C130 0xB547 +0x8239C131 0xB548 +0x8239C132 0xB549 +0x8239C133 0xB54A +0x8239C134 0xB54B +0x8239C135 0xB54C +0x8239C136 0xB54D +0x8239C137 0xB54E +0x8239C138 0xB54F +0x8239C139 0xB550 +0x8239C230 0xB551 +0x8239C231 0xB552 +0x8239C232 0xB553 +0x8239C233 0xB554 +0x8239C234 0xB555 +0x8239C235 0xB556 +0x8239C236 0xB557 +0x8239C237 0xB558 +0x8239C238 0xB559 +0x8239C239 0xB55A +0x8239C330 0xB55B +0x8239C331 0xB55C +0x8239C332 0xB55D +0x8239C333 0xB55E +0x8239C334 0xB55F +0x8239C335 0xB560 +0x8239C336 0xB561 +0x8239C337 0xB562 +0x8239C338 0xB563 +0x8239C339 0xB564 +0x8239C430 0xB565 +0x8239C431 0xB566 +0x8239C432 0xB567 +0x8239C433 0xB568 +0x8239C434 0xB569 +0x8239C435 0xB56A +0x8239C436 0xB56B +0x8239C437 0xB56C +0x8239C438 0xB56D +0x8239C439 0xB56E +0x8239C530 0xB56F +0x8239C531 0xB570 +0x8239C532 0xB571 +0x8239C533 0xB572 +0x8239C534 0xB573 +0x8239C535 0xB574 +0x8239C536 0xB575 +0x8239C537 0xB576 +0x8239C538 0xB577 +0x8239C539 0xB578 +0x8239C630 0xB579 +0x8239C631 0xB57A +0x8239C632 0xB57B +0x8239C633 0xB57C +0x8239C634 0xB57D +0x8239C635 0xB57E +0x8239C636 0xB57F +0x8239C637 0xB580 +0x8239C638 0xB581 +0x8239C639 0xB582 +0x8239C730 0xB583 +0x8239C731 0xB584 +0x8239C732 0xB585 +0x8239C733 0xB586 +0x8239C734 0xB587 +0x8239C735 0xB588 +0x8239C736 0xB589 +0x8239C737 0xB58A +0x8239C738 0xB58B +0x8239C739 0xB58C +0x8239C830 0xB58D +0x8239C831 0xB58E +0x8239C832 0xB58F +0x8239C833 0xB590 +0x8239C834 0xB591 +0x8239C835 0xB592 +0x8239C836 0xB593 +0x8239C837 0xB594 +0x8239C838 0xB595 +0x8239C839 0xB596 +0x8239C930 0xB597 +0x8239C931 0xB598 +0x8239C932 0xB599 +0x8239C933 0xB59A +0x8239C934 0xB59B +0x8239C935 0xB59C +0x8239C936 0xB59D +0x8239C937 0xB59E +0x8239C938 0xB59F +0x8239C939 0xB5A0 +0x8239CA30 0xB5A1 +0x8239CA31 0xB5A2 +0x8239CA32 0xB5A3 +0x8239CA33 0xB5A4 +0x8239CA34 0xB5A5 +0x8239CA35 0xB5A6 +0x8239CA36 0xB5A7 +0x8239CA37 0xB5A8 +0x8239CA38 0xB5A9 +0x8239CA39 0xB5AA +0x8239CB30 0xB5AB +0x8239CB31 0xB5AC +0x8239CB32 0xB5AD +0x8239CB33 0xB5AE +0x8239CB34 0xB5AF +0x8239CB35 0xB5B0 +0x8239CB36 0xB5B1 +0x8239CB37 0xB5B2 +0x8239CB38 0xB5B3 +0x8239CB39 0xB5B4 +0x8239CC30 0xB5B5 +0x8239CC31 0xB5B6 +0x8239CC32 0xB5B7 +0x8239CC33 0xB5B8 +0x8239CC34 0xB5B9 +0x8239CC35 0xB5BA +0x8239CC36 0xB5BB +0x8239CC37 0xB5BC +0x8239CC38 0xB5BD +0x8239CC39 0xB5BE +0x8239CD30 0xB5BF +0x8239CD31 0xB5C0 +0x8239CD32 0xB5C1 +0x8239CD33 0xB5C2 +0x8239CD34 0xB5C3 +0x8239CD35 0xB5C4 +0x8239CD36 0xB5C5 +0x8239CD37 0xB5C6 +0x8239CD38 0xB5C7 +0x8239CD39 0xB5C8 +0x8239CE30 0xB5C9 +0x8239CE31 0xB5CA +0x8239CE32 0xB5CB +0x8239CE33 0xB5CC +0x8239CE34 0xB5CD +0x8239CE35 0xB5CE +0x8239CE36 0xB5CF +0x8239CE37 0xB5D0 +0x8239CE38 0xB5D1 +0x8239CE39 0xB5D2 +0x8239CF30 0xB5D3 +0x8239CF31 0xB5D4 +0x8239CF32 0xB5D5 +0x8239CF33 0xB5D6 +0x8239CF34 0xB5D7 +0x8239CF35 0xB5D8 +0x8239CF36 0xB5D9 +0x8239CF37 0xB5DA +0x8239CF38 0xB5DB +0x8239CF39 0xB5DC +0x8239D030 0xB5DD +0x8239D031 0xB5DE +0x8239D032 0xB5DF +0x8239D033 0xB5E0 +0x8239D034 0xB5E1 +0x8239D035 0xB5E2 +0x8239D036 0xB5E3 +0x8239D037 0xB5E4 +0x8239D038 0xB5E5 +0x8239D039 0xB5E6 +0x8239D130 0xB5E7 +0x8239D131 0xB5E8 +0x8239D132 0xB5E9 +0x8239D133 0xB5EA +0x8239D134 0xB5EB +0x8239D135 0xB5EC +0x8239D136 0xB5ED +0x8239D137 0xB5EE +0x8239D138 0xB5EF +0x8239D139 0xB5F0 +0x8239D230 0xB5F1 +0x8239D231 0xB5F2 +0x8239D232 0xB5F3 +0x8239D233 0xB5F4 +0x8239D234 0xB5F5 +0x8239D235 0xB5F6 +0x8239D236 0xB5F7 +0x8239D237 0xB5F8 +0x8239D238 0xB5F9 +0x8239D239 0xB5FA +0x8239D330 0xB5FB +0x8239D331 0xB5FC +0x8239D332 0xB5FD +0x8239D333 0xB5FE +0x8239D334 0xB5FF +0x8239D335 0xB600 +0x8239D336 0xB601 +0x8239D337 0xB602 +0x8239D338 0xB603 +0x8239D339 0xB604 +0x8239D430 0xB605 +0x8239D431 0xB606 +0x8239D432 0xB607 +0x8239D433 0xB608 +0x8239D434 0xB609 +0x8239D435 0xB60A +0x8239D436 0xB60B +0x8239D437 0xB60C +0x8239D438 0xB60D +0x8239D439 0xB60E +0x8239D530 0xB60F +0x8239D531 0xB610 +0x8239D532 0xB611 +0x8239D533 0xB612 +0x8239D534 0xB613 +0x8239D535 0xB614 +0x8239D536 0xB615 +0x8239D537 0xB616 +0x8239D538 0xB617 +0x8239D539 0xB618 +0x8239D630 0xB619 +0x8239D631 0xB61A +0x8239D632 0xB61B +0x8239D633 0xB61C +0x8239D634 0xB61D +0x8239D635 0xB61E +0x8239D636 0xB61F +0x8239D637 0xB620 +0x8239D638 0xB621 +0x8239D639 0xB622 +0x8239D730 0xB623 +0x8239D731 0xB624 +0x8239D732 0xB625 +0x8239D733 0xB626 +0x8239D734 0xB627 +0x8239D735 0xB628 +0x8239D736 0xB629 +0x8239D737 0xB62A +0x8239D738 0xB62B +0x8239D739 0xB62C +0x8239D830 0xB62D +0x8239D831 0xB62E +0x8239D832 0xB62F +0x8239D833 0xB630 +0x8239D834 0xB631 +0x8239D835 0xB632 +0x8239D836 0xB633 +0x8239D837 0xB634 +0x8239D838 0xB635 +0x8239D839 0xB636 +0x8239D930 0xB637 +0x8239D931 0xB638 +0x8239D932 0xB639 +0x8239D933 0xB63A +0x8239D934 0xB63B +0x8239D935 0xB63C +0x8239D936 0xB63D +0x8239D937 0xB63E +0x8239D938 0xB63F +0x8239D939 0xB640 +0x8239DA30 0xB641 +0x8239DA31 0xB642 +0x8239DA32 0xB643 +0x8239DA33 0xB644 +0x8239DA34 0xB645 +0x8239DA35 0xB646 +0x8239DA36 0xB647 +0x8239DA37 0xB648 +0x8239DA38 0xB649 +0x8239DA39 0xB64A +0x8239DB30 0xB64B +0x8239DB31 0xB64C +0x8239DB32 0xB64D +0x8239DB33 0xB64E +0x8239DB34 0xB64F +0x8239DB35 0xB650 +0x8239DB36 0xB651 +0x8239DB37 0xB652 +0x8239DB38 0xB653 +0x8239DB39 0xB654 +0x8239DC30 0xB655 +0x8239DC31 0xB656 +0x8239DC32 0xB657 +0x8239DC33 0xB658 +0x8239DC34 0xB659 +0x8239DC35 0xB65A +0x8239DC36 0xB65B +0x8239DC37 0xB65C +0x8239DC38 0xB65D +0x8239DC39 0xB65E +0x8239DD30 0xB65F +0x8239DD31 0xB660 +0x8239DD32 0xB661 +0x8239DD33 0xB662 +0x8239DD34 0xB663 +0x8239DD35 0xB664 +0x8239DD36 0xB665 +0x8239DD37 0xB666 +0x8239DD38 0xB667 +0x8239DD39 0xB668 +0x8239DE30 0xB669 +0x8239DE31 0xB66A +0x8239DE32 0xB66B +0x8239DE33 0xB66C +0x8239DE34 0xB66D +0x8239DE35 0xB66E +0x8239DE36 0xB66F +0x8239DE37 0xB670 +0x8239DE38 0xB671 +0x8239DE39 0xB672 +0x8239DF30 0xB673 +0x8239DF31 0xB674 +0x8239DF32 0xB675 +0x8239DF33 0xB676 +0x8239DF34 0xB677 +0x8239DF35 0xB678 +0x8239DF36 0xB679 +0x8239DF37 0xB67A +0x8239DF38 0xB67B +0x8239DF39 0xB67C +0x8239E030 0xB67D +0x8239E031 0xB67E +0x8239E032 0xB67F +0x8239E033 0xB680 +0x8239E034 0xB681 +0x8239E035 0xB682 +0x8239E036 0xB683 +0x8239E037 0xB684 +0x8239E038 0xB685 +0x8239E039 0xB686 +0x8239E130 0xB687 +0x8239E131 0xB688 +0x8239E132 0xB689 +0x8239E133 0xB68A +0x8239E134 0xB68B +0x8239E135 0xB68C +0x8239E136 0xB68D +0x8239E137 0xB68E +0x8239E138 0xB68F +0x8239E139 0xB690 +0x8239E230 0xB691 +0x8239E231 0xB692 +0x8239E232 0xB693 +0x8239E233 0xB694 +0x8239E234 0xB695 +0x8239E235 0xB696 +0x8239E236 0xB697 +0x8239E237 0xB698 +0x8239E238 0xB699 +0x8239E239 0xB69A +0x8239E330 0xB69B +0x8239E331 0xB69C +0x8239E332 0xB69D +0x8239E333 0xB69E +0x8239E334 0xB69F +0x8239E335 0xB6A0 +0x8239E336 0xB6A1 +0x8239E337 0xB6A2 +0x8239E338 0xB6A3 +0x8239E339 0xB6A4 +0x8239E430 0xB6A5 +0x8239E431 0xB6A6 +0x8239E432 0xB6A7 +0x8239E433 0xB6A8 +0x8239E434 0xB6A9 +0x8239E435 0xB6AA +0x8239E436 0xB6AB +0x8239E437 0xB6AC +0x8239E438 0xB6AD +0x8239E439 0xB6AE +0x8239E530 0xB6AF +0x8239E531 0xB6B0 +0x8239E532 0xB6B1 +0x8239E533 0xB6B2 +0x8239E534 0xB6B3 +0x8239E535 0xB6B4 +0x8239E536 0xB6B5 +0x8239E537 0xB6B6 +0x8239E538 0xB6B7 +0x8239E539 0xB6B8 +0x8239E630 0xB6B9 +0x8239E631 0xB6BA +0x8239E632 0xB6BB +0x8239E633 0xB6BC +0x8239E634 0xB6BD +0x8239E635 0xB6BE +0x8239E636 0xB6BF +0x8239E637 0xB6C0 +0x8239E638 0xB6C1 +0x8239E639 0xB6C2 +0x8239E730 0xB6C3 +0x8239E731 0xB6C4 +0x8239E732 0xB6C5 +0x8239E733 0xB6C6 +0x8239E734 0xB6C7 +0x8239E735 0xB6C8 +0x8239E736 0xB6C9 +0x8239E737 0xB6CA +0x8239E738 0xB6CB +0x8239E739 0xB6CC +0x8239E830 0xB6CD +0x8239E831 0xB6CE +0x8239E832 0xB6CF +0x8239E833 0xB6D0 +0x8239E834 0xB6D1 +0x8239E835 0xB6D2 +0x8239E836 0xB6D3 +0x8239E837 0xB6D4 +0x8239E838 0xB6D5 +0x8239E839 0xB6D6 +0x8239E930 0xB6D7 +0x8239E931 0xB6D8 +0x8239E932 0xB6D9 +0x8239E933 0xB6DA +0x8239E934 0xB6DB +0x8239E935 0xB6DC +0x8239E936 0xB6DD +0x8239E937 0xB6DE +0x8239E938 0xB6DF +0x8239E939 0xB6E0 +0x8239EA30 0xB6E1 +0x8239EA31 0xB6E2 +0x8239EA32 0xB6E3 +0x8239EA33 0xB6E4 +0x8239EA34 0xB6E5 +0x8239EA35 0xB6E6 +0x8239EA36 0xB6E7 +0x8239EA37 0xB6E8 +0x8239EA38 0xB6E9 +0x8239EA39 0xB6EA +0x8239EB30 0xB6EB +0x8239EB31 0xB6EC +0x8239EB32 0xB6ED +0x8239EB33 0xB6EE +0x8239EB34 0xB6EF +0x8239EB35 0xB6F0 +0x8239EB36 0xB6F1 +0x8239EB37 0xB6F2 +0x8239EB38 0xB6F3 +0x8239EB39 0xB6F4 +0x8239EC30 0xB6F5 +0x8239EC31 0xB6F6 +0x8239EC32 0xB6F7 +0x8239EC33 0xB6F8 +0x8239EC34 0xB6F9 +0x8239EC35 0xB6FA +0x8239EC36 0xB6FB +0x8239EC37 0xB6FC +0x8239EC38 0xB6FD +0x8239EC39 0xB6FE +0x8239ED30 0xB6FF +0x8239ED31 0xB700 +0x8239ED32 0xB701 +0x8239ED33 0xB702 +0x8239ED34 0xB703 +0x8239ED35 0xB704 +0x8239ED36 0xB705 +0x8239ED37 0xB706 +0x8239ED38 0xB707 +0x8239ED39 0xB708 +0x8239EE30 0xB709 +0x8239EE31 0xB70A +0x8239EE32 0xB70B +0x8239EE33 0xB70C +0x8239EE34 0xB70D +0x8239EE35 0xB70E +0x8239EE36 0xB70F +0x8239EE37 0xB710 +0x8239EE38 0xB711 +0x8239EE39 0xB712 +0x8239EF30 0xB713 +0x8239EF31 0xB714 +0x8239EF32 0xB715 +0x8239EF33 0xB716 +0x8239EF34 0xB717 +0x8239EF35 0xB718 +0x8239EF36 0xB719 +0x8239EF37 0xB71A +0x8239EF38 0xB71B +0x8239EF39 0xB71C +0x8239F030 0xB71D +0x8239F031 0xB71E +0x8239F032 0xB71F +0x8239F033 0xB720 +0x8239F034 0xB721 +0x8239F035 0xB722 +0x8239F036 0xB723 +0x8239F037 0xB724 +0x8239F038 0xB725 +0x8239F039 0xB726 +0x8239F130 0xB727 +0x8239F131 0xB728 +0x8239F132 0xB729 +0x8239F133 0xB72A +0x8239F134 0xB72B +0x8239F135 0xB72C +0x8239F136 0xB72D +0x8239F137 0xB72E +0x8239F138 0xB72F +0x8239F139 0xB730 +0x8239F230 0xB731 +0x8239F231 0xB732 +0x8239F232 0xB733 +0x8239F233 0xB734 +0x8239F234 0xB735 +0x8239F235 0xB736 +0x8239F236 0xB737 +0x8239F237 0xB738 +0x8239F238 0xB739 +0x8239F239 0xB73A +0x8239F330 0xB73B +0x8239F331 0xB73C +0x8239F332 0xB73D +0x8239F333 0xB73E +0x8239F334 0xB73F +0x8239F335 0xB740 +0x8239F336 0xB741 +0x8239F337 0xB742 +0x8239F338 0xB743 +0x8239F339 0xB744 +0x8239F430 0xB745 +0x8239F431 0xB746 +0x8239F432 0xB747 +0x8239F433 0xB748 +0x8239F434 0xB749 +0x8239F435 0xB74A +0x8239F436 0xB74B +0x8239F437 0xB74C +0x8239F438 0xB74D +0x8239F439 0xB74E +0x8239F530 0xB74F +0x8239F531 0xB750 +0x8239F532 0xB751 +0x8239F533 0xB752 +0x8239F534 0xB753 +0x8239F535 0xB754 +0x8239F536 0xB755 +0x8239F537 0xB756 +0x8239F538 0xB757 +0x8239F539 0xB758 +0x8239F630 0xB759 +0x8239F631 0xB75A +0x8239F632 0xB75B +0x8239F633 0xB75C +0x8239F634 0xB75D +0x8239F635 0xB75E +0x8239F636 0xB75F +0x8239F637 0xB760 +0x8239F638 0xB761 +0x8239F639 0xB762 +0x8239F730 0xB763 +0x8239F731 0xB764 +0x8239F732 0xB765 +0x8239F733 0xB766 +0x8239F734 0xB767 +0x8239F735 0xB768 +0x8239F736 0xB769 +0x8239F737 0xB76A +0x8239F738 0xB76B +0x8239F739 0xB76C +0x8239F830 0xB76D +0x8239F831 0xB76E +0x8239F832 0xB76F +0x8239F833 0xB770 +0x8239F834 0xB771 +0x8239F835 0xB772 +0x8239F836 0xB773 +0x8239F837 0xB774 +0x8239F838 0xB775 +0x8239F839 0xB776 +0x8239F930 0xB777 +0x8239F931 0xB778 +0x8239F932 0xB779 +0x8239F933 0xB77A +0x8239F934 0xB77B +0x8239F935 0xB77C +0x8239F936 0xB77D +0x8239F937 0xB77E +0x8239F938 0xB77F +0x8239F939 0xB780 +0x8239FA30 0xB781 +0x8239FA31 0xB782 +0x8239FA32 0xB783 +0x8239FA33 0xB784 +0x8239FA34 0xB785 +0x8239FA35 0xB786 +0x8239FA36 0xB787 +0x8239FA37 0xB788 +0x8239FA38 0xB789 +0x8239FA39 0xB78A +0x8239FB30 0xB78B +0x8239FB31 0xB78C +0x8239FB32 0xB78D +0x8239FB33 0xB78E +0x8239FB34 0xB78F +0x8239FB35 0xB790 +0x8239FB36 0xB791 +0x8239FB37 0xB792 +0x8239FB38 0xB793 +0x8239FB39 0xB794 +0x8239FC30 0xB795 +0x8239FC31 0xB796 +0x8239FC32 0xB797 +0x8239FC33 0xB798 +0x8239FC34 0xB799 +0x8239FC35 0xB79A +0x8239FC36 0xB79B +0x8239FC37 0xB79C +0x8239FC38 0xB79D +0x8239FC39 0xB79E +0x8239FD30 0xB79F +0x8239FD31 0xB7A0 +0x8239FD32 0xB7A1 +0x8239FD33 0xB7A2 +0x8239FD34 0xB7A3 +0x8239FD35 0xB7A4 +0x8239FD36 0xB7A5 +0x8239FD37 0xB7A6 +0x8239FD38 0xB7A7 +0x8239FD39 0xB7A8 +0x8239FE30 0xB7A9 +0x8239FE31 0xB7AA +0x8239FE32 0xB7AB +0x8239FE33 0xB7AC +0x8239FE34 0xB7AD +0x8239FE35 0xB7AE +0x8239FE36 0xB7AF +0x8239FE37 0xB7B0 +0x8239FE38 0xB7B1 +0x8239FE39 0xB7B2 +0x8240 0x4FA4 +0x8241 0x4FAB +0x8242 0x4FAD +0x8243 0x4FB0 +0x8244 0x4FB1 +0x8245 0x4FB2 +0x8246 0x4FB3 +0x8247 0x4FB4 +0x8248 0x4FB6 +0x8249 0x4FB7 +0x824A 0x4FB8 +0x824B 0x4FB9 +0x824C 0x4FBA +0x824D 0x4FBB +0x824E 0x4FBC +0x824F 0x4FBD +0x8250 0x4FBE +0x8251 0x4FC0 +0x8252 0x4FC1 +0x8253 0x4FC2 +0x8254 0x4FC6 +0x8255 0x4FC7 +0x8256 0x4FC8 +0x8257 0x4FC9 +0x8258 0x4FCB +0x8259 0x4FCC +0x825A 0x4FCD +0x825B 0x4FD2 +0x825C 0x4FD3 +0x825D 0x4FD4 +0x825E 0x4FD5 +0x825F 0x4FD6 +0x8260 0x4FD9 +0x8261 0x4FDB +0x8262 0x4FE0 +0x8263 0x4FE2 +0x8264 0x4FE4 +0x8265 0x4FE5 +0x8266 0x4FE7 +0x8267 0x4FEB +0x8268 0x4FEC +0x8269 0x4FF0 +0x826A 0x4FF2 +0x826B 0x4FF4 +0x826C 0x4FF5 +0x826D 0x4FF6 +0x826E 0x4FF7 +0x826F 0x4FF9 +0x8270 0x4FFB +0x8271 0x4FFC +0x8272 0x4FFD +0x8273 0x4FFF +0x8274 0x5000 +0x8275 0x5001 +0x8276 0x5002 +0x8277 0x5003 +0x8278 0x5004 +0x8279 0x5005 +0x827A 0x5006 +0x827B 0x5007 +0x827C 0x5008 +0x827D 0x5009 +0x827E 0x500A +0x8280 0x500B +0x8281 0x500E +0x8282 0x5010 +0x8283 0x5011 +0x8284 0x5013 +0x8285 0x5015 +0x8286 0x5016 +0x8287 0x5017 +0x8288 0x501B +0x8289 0x501D +0x828A 0x501E +0x828B 0x5020 +0x828C 0x5022 +0x828D 0x5023 +0x828E 0x5024 +0x828F 0x5027 +0x8290 0x502B +0x8291 0x502F +0x8292 0x5030 +0x8293 0x5031 +0x8294 0x5032 +0x8295 0x5033 +0x8296 0x5034 +0x8297 0x5035 +0x8298 0x5036 +0x8299 0x5037 +0x829A 0x5038 +0x829B 0x5039 +0x829C 0x503B +0x829D 0x503D +0x829E 0x503F +0x829F 0x5040 +0x82A0 0x5041 +0x82A1 0x5042 +0x82A2 0x5044 +0x82A3 0x5045 +0x82A4 0x5046 +0x82A5 0x5049 +0x82A6 0x504A +0x82A7 0x504B +0x82A8 0x504D +0x82A9 0x5050 +0x82AA 0x5051 +0x82AB 0x5052 +0x82AC 0x5053 +0x82AD 0x5054 +0x82AE 0x5056 +0x82AF 0x5057 +0x82B0 0x5058 +0x82B1 0x5059 +0x82B2 0x505B +0x82B3 0x505D +0x82B4 0x505E +0x82B5 0x505F +0x82B6 0x5060 +0x82B7 0x5061 +0x82B8 0x5062 +0x82B9 0x5063 +0x82BA 0x5064 +0x82BB 0x5066 +0x82BC 0x5067 +0x82BD 0x5068 +0x82BE 0x5069 +0x82BF 0x506A +0x82C0 0x506B +0x82C1 0x506D +0x82C2 0x506E +0x82C3 0x506F +0x82C4 0x5070 +0x82C5 0x5071 +0x82C6 0x5072 +0x82C7 0x5073 +0x82C8 0x5074 +0x82C9 0x5075 +0x82CA 0x5078 +0x82CB 0x5079 +0x82CC 0x507A +0x82CD 0x507C +0x82CE 0x507D +0x82CF 0x5081 +0x82D0 0x5082 +0x82D1 0x5083 +0x82D2 0x5084 +0x82D3 0x5086 +0x82D4 0x5087 +0x82D5 0x5089 +0x82D6 0x508A +0x82D7 0x508B +0x82D8 0x508C +0x82D9 0x508E +0x82DA 0x508F +0x82DB 0x5090 +0x82DC 0x5091 +0x82DD 0x5092 +0x82DE 0x5093 +0x82DF 0x5094 +0x82E0 0x5095 +0x82E1 0x5096 +0x82E2 0x5097 +0x82E3 0x5098 +0x82E4 0x5099 +0x82E5 0x509A +0x82E6 0x509B +0x82E7 0x509C +0x82E8 0x509D +0x82E9 0x509E +0x82EA 0x509F +0x82EB 0x50A0 +0x82EC 0x50A1 +0x82ED 0x50A2 +0x82EE 0x50A4 +0x82EF 0x50A6 +0x82F0 0x50AA +0x82F1 0x50AB +0x82F2 0x50AD +0x82F3 0x50AE +0x82F4 0x50AF +0x82F5 0x50B0 +0x82F6 0x50B1 +0x82F7 0x50B3 +0x82F8 0x50B4 +0x82F9 0x50B5 +0x82FA 0x50B6 +0x82FB 0x50B7 +0x82FC 0x50B8 +0x82FD 0x50B9 +0x82FE 0x50BC +0x83308130 0xB7B3 +0x83308131 0xB7B4 +0x83308132 0xB7B5 +0x83308133 0xB7B6 +0x83308134 0xB7B7 +0x83308135 0xB7B8 +0x83308136 0xB7B9 +0x83308137 0xB7BA +0x83308138 0xB7BB +0x83308139 0xB7BC +0x83308230 0xB7BD +0x83308231 0xB7BE +0x83308232 0xB7BF +0x83308233 0xB7C0 +0x83308234 0xB7C1 +0x83308235 0xB7C2 +0x83308236 0xB7C3 +0x83308237 0xB7C4 +0x83308238 0xB7C5 +0x83308239 0xB7C6 +0x83308330 0xB7C7 +0x83308331 0xB7C8 +0x83308332 0xB7C9 +0x83308333 0xB7CA +0x83308334 0xB7CB +0x83308335 0xB7CC +0x83308336 0xB7CD +0x83308337 0xB7CE +0x83308338 0xB7CF +0x83308339 0xB7D0 +0x83308430 0xB7D1 +0x83308431 0xB7D2 +0x83308432 0xB7D3 +0x83308433 0xB7D4 +0x83308434 0xB7D5 +0x83308435 0xB7D6 +0x83308436 0xB7D7 +0x83308437 0xB7D8 +0x83308438 0xB7D9 +0x83308439 0xB7DA +0x83308530 0xB7DB +0x83308531 0xB7DC +0x83308532 0xB7DD +0x83308533 0xB7DE +0x83308534 0xB7DF +0x83308535 0xB7E0 +0x83308536 0xB7E1 +0x83308537 0xB7E2 +0x83308538 0xB7E3 +0x83308539 0xB7E4 +0x83308630 0xB7E5 +0x83308631 0xB7E6 +0x83308632 0xB7E7 +0x83308633 0xB7E8 +0x83308634 0xB7E9 +0x83308635 0xB7EA +0x83308636 0xB7EB +0x83308637 0xB7EC +0x83308638 0xB7ED +0x83308639 0xB7EE +0x83308730 0xB7EF +0x83308731 0xB7F0 +0x83308732 0xB7F1 +0x83308733 0xB7F2 +0x83308734 0xB7F3 +0x83308735 0xB7F4 +0x83308736 0xB7F5 +0x83308737 0xB7F6 +0x83308738 0xB7F7 +0x83308739 0xB7F8 +0x83308830 0xB7F9 +0x83308831 0xB7FA +0x83308832 0xB7FB +0x83308833 0xB7FC +0x83308834 0xB7FD +0x83308835 0xB7FE +0x83308836 0xB7FF +0x83308837 0xB800 +0x83308838 0xB801 +0x83308839 0xB802 +0x83308930 0xB803 +0x83308931 0xB804 +0x83308932 0xB805 +0x83308933 0xB806 +0x83308934 0xB807 +0x83308935 0xB808 +0x83308936 0xB809 +0x83308937 0xB80A +0x83308938 0xB80B +0x83308939 0xB80C +0x83308A30 0xB80D +0x83308A31 0xB80E +0x83308A32 0xB80F +0x83308A33 0xB810 +0x83308A34 0xB811 +0x83308A35 0xB812 +0x83308A36 0xB813 +0x83308A37 0xB814 +0x83308A38 0xB815 +0x83308A39 0xB816 +0x83308B30 0xB817 +0x83308B31 0xB818 +0x83308B32 0xB819 +0x83308B33 0xB81A +0x83308B34 0xB81B +0x83308B35 0xB81C +0x83308B36 0xB81D +0x83308B37 0xB81E +0x83308B38 0xB81F +0x83308B39 0xB820 +0x83308C30 0xB821 +0x83308C31 0xB822 +0x83308C32 0xB823 +0x83308C33 0xB824 +0x83308C34 0xB825 +0x83308C35 0xB826 +0x83308C36 0xB827 +0x83308C37 0xB828 +0x83308C38 0xB829 +0x83308C39 0xB82A +0x83308D30 0xB82B +0x83308D31 0xB82C +0x83308D32 0xB82D +0x83308D33 0xB82E +0x83308D34 0xB82F +0x83308D35 0xB830 +0x83308D36 0xB831 +0x83308D37 0xB832 +0x83308D38 0xB833 +0x83308D39 0xB834 +0x83308E30 0xB835 +0x83308E31 0xB836 +0x83308E32 0xB837 +0x83308E33 0xB838 +0x83308E34 0xB839 +0x83308E35 0xB83A +0x83308E36 0xB83B +0x83308E37 0xB83C +0x83308E38 0xB83D +0x83308E39 0xB83E +0x83308F30 0xB83F +0x83308F31 0xB840 +0x83308F32 0xB841 +0x83308F33 0xB842 +0x83308F34 0xB843 +0x83308F35 0xB844 +0x83308F36 0xB845 +0x83308F37 0xB846 +0x83308F38 0xB847 +0x83308F39 0xB848 +0x83309030 0xB849 +0x83309031 0xB84A +0x83309032 0xB84B +0x83309033 0xB84C +0x83309034 0xB84D +0x83309035 0xB84E +0x83309036 0xB84F +0x83309037 0xB850 +0x83309038 0xB851 +0x83309039 0xB852 +0x83309130 0xB853 +0x83309131 0xB854 +0x83309132 0xB855 +0x83309133 0xB856 +0x83309134 0xB857 +0x83309135 0xB858 +0x83309136 0xB859 +0x83309137 0xB85A +0x83309138 0xB85B +0x83309139 0xB85C +0x83309230 0xB85D +0x83309231 0xB85E +0x83309232 0xB85F +0x83309233 0xB860 +0x83309234 0xB861 +0x83309235 0xB862 +0x83309236 0xB863 +0x83309237 0xB864 +0x83309238 0xB865 +0x83309239 0xB866 +0x83309330 0xB867 +0x83309331 0xB868 +0x83309332 0xB869 +0x83309333 0xB86A +0x83309334 0xB86B +0x83309335 0xB86C +0x83309336 0xB86D +0x83309337 0xB86E +0x83309338 0xB86F +0x83309339 0xB870 +0x83309430 0xB871 +0x83309431 0xB872 +0x83309432 0xB873 +0x83309433 0xB874 +0x83309434 0xB875 +0x83309435 0xB876 +0x83309436 0xB877 +0x83309437 0xB878 +0x83309438 0xB879 +0x83309439 0xB87A +0x83309530 0xB87B +0x83309531 0xB87C +0x83309532 0xB87D +0x83309533 0xB87E +0x83309534 0xB87F +0x83309535 0xB880 +0x83309536 0xB881 +0x83309537 0xB882 +0x83309538 0xB883 +0x83309539 0xB884 +0x83309630 0xB885 +0x83309631 0xB886 +0x83309632 0xB887 +0x83309633 0xB888 +0x83309634 0xB889 +0x83309635 0xB88A +0x83309636 0xB88B +0x83309637 0xB88C +0x83309638 0xB88D +0x83309639 0xB88E +0x83309730 0xB88F +0x83309731 0xB890 +0x83309732 0xB891 +0x83309733 0xB892 +0x83309734 0xB893 +0x83309735 0xB894 +0x83309736 0xB895 +0x83309737 0xB896 +0x83309738 0xB897 +0x83309739 0xB898 +0x83309830 0xB899 +0x83309831 0xB89A +0x83309832 0xB89B +0x83309833 0xB89C +0x83309834 0xB89D +0x83309835 0xB89E +0x83309836 0xB89F +0x83309837 0xB8A0 +0x83309838 0xB8A1 +0x83309839 0xB8A2 +0x83309930 0xB8A3 +0x83309931 0xB8A4 +0x83309932 0xB8A5 +0x83309933 0xB8A6 +0x83309934 0xB8A7 +0x83309935 0xB8A8 +0x83309936 0xB8A9 +0x83309937 0xB8AA +0x83309938 0xB8AB +0x83309939 0xB8AC +0x83309A30 0xB8AD +0x83309A31 0xB8AE +0x83309A32 0xB8AF +0x83309A33 0xB8B0 +0x83309A34 0xB8B1 +0x83309A35 0xB8B2 +0x83309A36 0xB8B3 +0x83309A37 0xB8B4 +0x83309A38 0xB8B5 +0x83309A39 0xB8B6 +0x83309B30 0xB8B7 +0x83309B31 0xB8B8 +0x83309B32 0xB8B9 +0x83309B33 0xB8BA +0x83309B34 0xB8BB +0x83309B35 0xB8BC +0x83309B36 0xB8BD +0x83309B37 0xB8BE +0x83309B38 0xB8BF +0x83309B39 0xB8C0 +0x83309C30 0xB8C1 +0x83309C31 0xB8C2 +0x83309C32 0xB8C3 +0x83309C33 0xB8C4 +0x83309C34 0xB8C5 +0x83309C35 0xB8C6 +0x83309C36 0xB8C7 +0x83309C37 0xB8C8 +0x83309C38 0xB8C9 +0x83309C39 0xB8CA +0x83309D30 0xB8CB +0x83309D31 0xB8CC +0x83309D32 0xB8CD +0x83309D33 0xB8CE +0x83309D34 0xB8CF +0x83309D35 0xB8D0 +0x83309D36 0xB8D1 +0x83309D37 0xB8D2 +0x83309D38 0xB8D3 +0x83309D39 0xB8D4 +0x83309E30 0xB8D5 +0x83309E31 0xB8D6 +0x83309E32 0xB8D7 +0x83309E33 0xB8D8 +0x83309E34 0xB8D9 +0x83309E35 0xB8DA +0x83309E36 0xB8DB +0x83309E37 0xB8DC +0x83309E38 0xB8DD +0x83309E39 0xB8DE +0x83309F30 0xB8DF +0x83309F31 0xB8E0 +0x83309F32 0xB8E1 +0x83309F33 0xB8E2 +0x83309F34 0xB8E3 +0x83309F35 0xB8E4 +0x83309F36 0xB8E5 +0x83309F37 0xB8E6 +0x83309F38 0xB8E7 +0x83309F39 0xB8E8 +0x8330A030 0xB8E9 +0x8330A031 0xB8EA +0x8330A032 0xB8EB +0x8330A033 0xB8EC +0x8330A034 0xB8ED +0x8330A035 0xB8EE +0x8330A036 0xB8EF +0x8330A037 0xB8F0 +0x8330A038 0xB8F1 +0x8330A039 0xB8F2 +0x8330A130 0xB8F3 +0x8330A131 0xB8F4 +0x8330A132 0xB8F5 +0x8330A133 0xB8F6 +0x8330A134 0xB8F7 +0x8330A135 0xB8F8 +0x8330A136 0xB8F9 +0x8330A137 0xB8FA +0x8330A138 0xB8FB +0x8330A139 0xB8FC +0x8330A230 0xB8FD +0x8330A231 0xB8FE +0x8330A232 0xB8FF +0x8330A233 0xB900 +0x8330A234 0xB901 +0x8330A235 0xB902 +0x8330A236 0xB903 +0x8330A237 0xB904 +0x8330A238 0xB905 +0x8330A239 0xB906 +0x8330A330 0xB907 +0x8330A331 0xB908 +0x8330A332 0xB909 +0x8330A333 0xB90A +0x8330A334 0xB90B +0x8330A335 0xB90C +0x8330A336 0xB90D +0x8330A337 0xB90E +0x8330A338 0xB90F +0x8330A339 0xB910 +0x8330A430 0xB911 +0x8330A431 0xB912 +0x8330A432 0xB913 +0x8330A433 0xB914 +0x8330A434 0xB915 +0x8330A435 0xB916 +0x8330A436 0xB917 +0x8330A437 0xB918 +0x8330A438 0xB919 +0x8330A439 0xB91A +0x8330A530 0xB91B +0x8330A531 0xB91C +0x8330A532 0xB91D +0x8330A533 0xB91E +0x8330A534 0xB91F +0x8330A535 0xB920 +0x8330A536 0xB921 +0x8330A537 0xB922 +0x8330A538 0xB923 +0x8330A539 0xB924 +0x8330A630 0xB925 +0x8330A631 0xB926 +0x8330A632 0xB927 +0x8330A633 0xB928 +0x8330A634 0xB929 +0x8330A635 0xB92A +0x8330A636 0xB92B +0x8330A637 0xB92C +0x8330A638 0xB92D +0x8330A639 0xB92E +0x8330A730 0xB92F +0x8330A731 0xB930 +0x8330A732 0xB931 +0x8330A733 0xB932 +0x8330A734 0xB933 +0x8330A735 0xB934 +0x8330A736 0xB935 +0x8330A737 0xB936 +0x8330A738 0xB937 +0x8330A739 0xB938 +0x8330A830 0xB939 +0x8330A831 0xB93A +0x8330A832 0xB93B +0x8330A833 0xB93C +0x8330A834 0xB93D +0x8330A835 0xB93E +0x8330A836 0xB93F +0x8330A837 0xB940 +0x8330A838 0xB941 +0x8330A839 0xB942 +0x8330A930 0xB943 +0x8330A931 0xB944 +0x8330A932 0xB945 +0x8330A933 0xB946 +0x8330A934 0xB947 +0x8330A935 0xB948 +0x8330A936 0xB949 +0x8330A937 0xB94A +0x8330A938 0xB94B +0x8330A939 0xB94C +0x8330AA30 0xB94D +0x8330AA31 0xB94E +0x8330AA32 0xB94F +0x8330AA33 0xB950 +0x8330AA34 0xB951 +0x8330AA35 0xB952 +0x8330AA36 0xB953 +0x8330AA37 0xB954 +0x8330AA38 0xB955 +0x8330AA39 0xB956 +0x8330AB30 0xB957 +0x8330AB31 0xB958 +0x8330AB32 0xB959 +0x8330AB33 0xB95A +0x8330AB34 0xB95B +0x8330AB35 0xB95C +0x8330AB36 0xB95D +0x8330AB37 0xB95E +0x8330AB38 0xB95F +0x8330AB39 0xB960 +0x8330AC30 0xB961 +0x8330AC31 0xB962 +0x8330AC32 0xB963 +0x8330AC33 0xB964 +0x8330AC34 0xB965 +0x8330AC35 0xB966 +0x8330AC36 0xB967 +0x8330AC37 0xB968 +0x8330AC38 0xB969 +0x8330AC39 0xB96A +0x8330AD30 0xB96B +0x8330AD31 0xB96C +0x8330AD32 0xB96D +0x8330AD33 0xB96E +0x8330AD34 0xB96F +0x8330AD35 0xB970 +0x8330AD36 0xB971 +0x8330AD37 0xB972 +0x8330AD38 0xB973 +0x8330AD39 0xB974 +0x8330AE30 0xB975 +0x8330AE31 0xB976 +0x8330AE32 0xB977 +0x8330AE33 0xB978 +0x8330AE34 0xB979 +0x8330AE35 0xB97A +0x8330AE36 0xB97B +0x8330AE37 0xB97C +0x8330AE38 0xB97D +0x8330AE39 0xB97E +0x8330AF30 0xB97F +0x8330AF31 0xB980 +0x8330AF32 0xB981 +0x8330AF33 0xB982 +0x8330AF34 0xB983 +0x8330AF35 0xB984 +0x8330AF36 0xB985 +0x8330AF37 0xB986 +0x8330AF38 0xB987 +0x8330AF39 0xB988 +0x8330B030 0xB989 +0x8330B031 0xB98A +0x8330B032 0xB98B +0x8330B033 0xB98C +0x8330B034 0xB98D +0x8330B035 0xB98E +0x8330B036 0xB98F +0x8330B037 0xB990 +0x8330B038 0xB991 +0x8330B039 0xB992 +0x8330B130 0xB993 +0x8330B131 0xB994 +0x8330B132 0xB995 +0x8330B133 0xB996 +0x8330B134 0xB997 +0x8330B135 0xB998 +0x8330B136 0xB999 +0x8330B137 0xB99A +0x8330B138 0xB99B +0x8330B139 0xB99C +0x8330B230 0xB99D +0x8330B231 0xB99E +0x8330B232 0xB99F +0x8330B233 0xB9A0 +0x8330B234 0xB9A1 +0x8330B235 0xB9A2 +0x8330B236 0xB9A3 +0x8330B237 0xB9A4 +0x8330B238 0xB9A5 +0x8330B239 0xB9A6 +0x8330B330 0xB9A7 +0x8330B331 0xB9A8 +0x8330B332 0xB9A9 +0x8330B333 0xB9AA +0x8330B334 0xB9AB +0x8330B335 0xB9AC +0x8330B336 0xB9AD +0x8330B337 0xB9AE +0x8330B338 0xB9AF +0x8330B339 0xB9B0 +0x8330B430 0xB9B1 +0x8330B431 0xB9B2 +0x8330B432 0xB9B3 +0x8330B433 0xB9B4 +0x8330B434 0xB9B5 +0x8330B435 0xB9B6 +0x8330B436 0xB9B7 +0x8330B437 0xB9B8 +0x8330B438 0xB9B9 +0x8330B439 0xB9BA +0x8330B530 0xB9BB +0x8330B531 0xB9BC +0x8330B532 0xB9BD +0x8330B533 0xB9BE +0x8330B534 0xB9BF +0x8330B535 0xB9C0 +0x8330B536 0xB9C1 +0x8330B537 0xB9C2 +0x8330B538 0xB9C3 +0x8330B539 0xB9C4 +0x8330B630 0xB9C5 +0x8330B631 0xB9C6 +0x8330B632 0xB9C7 +0x8330B633 0xB9C8 +0x8330B634 0xB9C9 +0x8330B635 0xB9CA +0x8330B636 0xB9CB +0x8330B637 0xB9CC +0x8330B638 0xB9CD +0x8330B639 0xB9CE +0x8330B730 0xB9CF +0x8330B731 0xB9D0 +0x8330B732 0xB9D1 +0x8330B733 0xB9D2 +0x8330B734 0xB9D3 +0x8330B735 0xB9D4 +0x8330B736 0xB9D5 +0x8330B737 0xB9D6 +0x8330B738 0xB9D7 +0x8330B739 0xB9D8 +0x8330B830 0xB9D9 +0x8330B831 0xB9DA +0x8330B832 0xB9DB +0x8330B833 0xB9DC +0x8330B834 0xB9DD +0x8330B835 0xB9DE +0x8330B836 0xB9DF +0x8330B837 0xB9E0 +0x8330B838 0xB9E1 +0x8330B839 0xB9E2 +0x8330B930 0xB9E3 +0x8330B931 0xB9E4 +0x8330B932 0xB9E5 +0x8330B933 0xB9E6 +0x8330B934 0xB9E7 +0x8330B935 0xB9E8 +0x8330B936 0xB9E9 +0x8330B937 0xB9EA +0x8330B938 0xB9EB +0x8330B939 0xB9EC +0x8330BA30 0xB9ED +0x8330BA31 0xB9EE +0x8330BA32 0xB9EF +0x8330BA33 0xB9F0 +0x8330BA34 0xB9F1 +0x8330BA35 0xB9F2 +0x8330BA36 0xB9F3 +0x8330BA37 0xB9F4 +0x8330BA38 0xB9F5 +0x8330BA39 0xB9F6 +0x8330BB30 0xB9F7 +0x8330BB31 0xB9F8 +0x8330BB32 0xB9F9 +0x8330BB33 0xB9FA +0x8330BB34 0xB9FB +0x8330BB35 0xB9FC +0x8330BB36 0xB9FD +0x8330BB37 0xB9FE +0x8330BB38 0xB9FF +0x8330BB39 0xBA00 +0x8330BC30 0xBA01 +0x8330BC31 0xBA02 +0x8330BC32 0xBA03 +0x8330BC33 0xBA04 +0x8330BC34 0xBA05 +0x8330BC35 0xBA06 +0x8330BC36 0xBA07 +0x8330BC37 0xBA08 +0x8330BC38 0xBA09 +0x8330BC39 0xBA0A +0x8330BD30 0xBA0B +0x8330BD31 0xBA0C +0x8330BD32 0xBA0D +0x8330BD33 0xBA0E +0x8330BD34 0xBA0F +0x8330BD35 0xBA10 +0x8330BD36 0xBA11 +0x8330BD37 0xBA12 +0x8330BD38 0xBA13 +0x8330BD39 0xBA14 +0x8330BE30 0xBA15 +0x8330BE31 0xBA16 +0x8330BE32 0xBA17 +0x8330BE33 0xBA18 +0x8330BE34 0xBA19 +0x8330BE35 0xBA1A +0x8330BE36 0xBA1B +0x8330BE37 0xBA1C +0x8330BE38 0xBA1D +0x8330BE39 0xBA1E +0x8330BF30 0xBA1F +0x8330BF31 0xBA20 +0x8330BF32 0xBA21 +0x8330BF33 0xBA22 +0x8330BF34 0xBA23 +0x8330BF35 0xBA24 +0x8330BF36 0xBA25 +0x8330BF37 0xBA26 +0x8330BF38 0xBA27 +0x8330BF39 0xBA28 +0x8330C030 0xBA29 +0x8330C031 0xBA2A +0x8330C032 0xBA2B +0x8330C033 0xBA2C +0x8330C034 0xBA2D +0x8330C035 0xBA2E +0x8330C036 0xBA2F +0x8330C037 0xBA30 +0x8330C038 0xBA31 +0x8330C039 0xBA32 +0x8330C130 0xBA33 +0x8330C131 0xBA34 +0x8330C132 0xBA35 +0x8330C133 0xBA36 +0x8330C134 0xBA37 +0x8330C135 0xBA38 +0x8330C136 0xBA39 +0x8330C137 0xBA3A +0x8330C138 0xBA3B +0x8330C139 0xBA3C +0x8330C230 0xBA3D +0x8330C231 0xBA3E +0x8330C232 0xBA3F +0x8330C233 0xBA40 +0x8330C234 0xBA41 +0x8330C235 0xBA42 +0x8330C236 0xBA43 +0x8330C237 0xBA44 +0x8330C238 0xBA45 +0x8330C239 0xBA46 +0x8330C330 0xBA47 +0x8330C331 0xBA48 +0x8330C332 0xBA49 +0x8330C333 0xBA4A +0x8330C334 0xBA4B +0x8330C335 0xBA4C +0x8330C336 0xBA4D +0x8330C337 0xBA4E +0x8330C338 0xBA4F +0x8330C339 0xBA50 +0x8330C430 0xBA51 +0x8330C431 0xBA52 +0x8330C432 0xBA53 +0x8330C433 0xBA54 +0x8330C434 0xBA55 +0x8330C435 0xBA56 +0x8330C436 0xBA57 +0x8330C437 0xBA58 +0x8330C438 0xBA59 +0x8330C439 0xBA5A +0x8330C530 0xBA5B +0x8330C531 0xBA5C +0x8330C532 0xBA5D +0x8330C533 0xBA5E +0x8330C534 0xBA5F +0x8330C535 0xBA60 +0x8330C536 0xBA61 +0x8330C537 0xBA62 +0x8330C538 0xBA63 +0x8330C539 0xBA64 +0x8330C630 0xBA65 +0x8330C631 0xBA66 +0x8330C632 0xBA67 +0x8330C633 0xBA68 +0x8330C634 0xBA69 +0x8330C635 0xBA6A +0x8330C636 0xBA6B +0x8330C637 0xBA6C +0x8330C638 0xBA6D +0x8330C639 0xBA6E +0x8330C730 0xBA6F +0x8330C731 0xBA70 +0x8330C732 0xBA71 +0x8330C733 0xBA72 +0x8330C734 0xBA73 +0x8330C735 0xBA74 +0x8330C736 0xBA75 +0x8330C737 0xBA76 +0x8330C738 0xBA77 +0x8330C739 0xBA78 +0x8330C830 0xBA79 +0x8330C831 0xBA7A +0x8330C832 0xBA7B +0x8330C833 0xBA7C +0x8330C834 0xBA7D +0x8330C835 0xBA7E +0x8330C836 0xBA7F +0x8330C837 0xBA80 +0x8330C838 0xBA81 +0x8330C839 0xBA82 +0x8330C930 0xBA83 +0x8330C931 0xBA84 +0x8330C932 0xBA85 +0x8330C933 0xBA86 +0x8330C934 0xBA87 +0x8330C935 0xBA88 +0x8330C936 0xBA89 +0x8330C937 0xBA8A +0x8330C938 0xBA8B +0x8330C939 0xBA8C +0x8330CA30 0xBA8D +0x8330CA31 0xBA8E +0x8330CA32 0xBA8F +0x8330CA33 0xBA90 +0x8330CA34 0xBA91 +0x8330CA35 0xBA92 +0x8330CA36 0xBA93 +0x8330CA37 0xBA94 +0x8330CA38 0xBA95 +0x8330CA39 0xBA96 +0x8330CB30 0xBA97 +0x8330CB31 0xBA98 +0x8330CB32 0xBA99 +0x8330CB33 0xBA9A +0x8330CB34 0xBA9B +0x8330CB35 0xBA9C +0x8330CB36 0xBA9D +0x8330CB37 0xBA9E +0x8330CB38 0xBA9F +0x8330CB39 0xBAA0 +0x8330CC30 0xBAA1 +0x8330CC31 0xBAA2 +0x8330CC32 0xBAA3 +0x8330CC33 0xBAA4 +0x8330CC34 0xBAA5 +0x8330CC35 0xBAA6 +0x8330CC36 0xBAA7 +0x8330CC37 0xBAA8 +0x8330CC38 0xBAA9 +0x8330CC39 0xBAAA +0x8330CD30 0xBAAB +0x8330CD31 0xBAAC +0x8330CD32 0xBAAD +0x8330CD33 0xBAAE +0x8330CD34 0xBAAF +0x8330CD35 0xBAB0 +0x8330CD36 0xBAB1 +0x8330CD37 0xBAB2 +0x8330CD38 0xBAB3 +0x8330CD39 0xBAB4 +0x8330CE30 0xBAB5 +0x8330CE31 0xBAB6 +0x8330CE32 0xBAB7 +0x8330CE33 0xBAB8 +0x8330CE34 0xBAB9 +0x8330CE35 0xBABA +0x8330CE36 0xBABB +0x8330CE37 0xBABC +0x8330CE38 0xBABD +0x8330CE39 0xBABE +0x8330CF30 0xBABF +0x8330CF31 0xBAC0 +0x8330CF32 0xBAC1 +0x8330CF33 0xBAC2 +0x8330CF34 0xBAC3 +0x8330CF35 0xBAC4 +0x8330CF36 0xBAC5 +0x8330CF37 0xBAC6 +0x8330CF38 0xBAC7 +0x8330CF39 0xBAC8 +0x8330D030 0xBAC9 +0x8330D031 0xBACA +0x8330D032 0xBACB +0x8330D033 0xBACC +0x8330D034 0xBACD +0x8330D035 0xBACE +0x8330D036 0xBACF +0x8330D037 0xBAD0 +0x8330D038 0xBAD1 +0x8330D039 0xBAD2 +0x8330D130 0xBAD3 +0x8330D131 0xBAD4 +0x8330D132 0xBAD5 +0x8330D133 0xBAD6 +0x8330D134 0xBAD7 +0x8330D135 0xBAD8 +0x8330D136 0xBAD9 +0x8330D137 0xBADA +0x8330D138 0xBADB +0x8330D139 0xBADC +0x8330D230 0xBADD +0x8330D231 0xBADE +0x8330D232 0xBADF +0x8330D233 0xBAE0 +0x8330D234 0xBAE1 +0x8330D235 0xBAE2 +0x8330D236 0xBAE3 +0x8330D237 0xBAE4 +0x8330D238 0xBAE5 +0x8330D239 0xBAE6 +0x8330D330 0xBAE7 +0x8330D331 0xBAE8 +0x8330D332 0xBAE9 +0x8330D333 0xBAEA +0x8330D334 0xBAEB +0x8330D335 0xBAEC +0x8330D336 0xBAED +0x8330D337 0xBAEE +0x8330D338 0xBAEF +0x8330D339 0xBAF0 +0x8330D430 0xBAF1 +0x8330D431 0xBAF2 +0x8330D432 0xBAF3 +0x8330D433 0xBAF4 +0x8330D434 0xBAF5 +0x8330D435 0xBAF6 +0x8330D436 0xBAF7 +0x8330D437 0xBAF8 +0x8330D438 0xBAF9 +0x8330D439 0xBAFA +0x8330D530 0xBAFB +0x8330D531 0xBAFC +0x8330D532 0xBAFD +0x8330D533 0xBAFE +0x8330D534 0xBAFF +0x8330D535 0xBB00 +0x8330D536 0xBB01 +0x8330D537 0xBB02 +0x8330D538 0xBB03 +0x8330D539 0xBB04 +0x8330D630 0xBB05 +0x8330D631 0xBB06 +0x8330D632 0xBB07 +0x8330D633 0xBB08 +0x8330D634 0xBB09 +0x8330D635 0xBB0A +0x8330D636 0xBB0B +0x8330D637 0xBB0C +0x8330D638 0xBB0D +0x8330D639 0xBB0E +0x8330D730 0xBB0F +0x8330D731 0xBB10 +0x8330D732 0xBB11 +0x8330D733 0xBB12 +0x8330D734 0xBB13 +0x8330D735 0xBB14 +0x8330D736 0xBB15 +0x8330D737 0xBB16 +0x8330D738 0xBB17 +0x8330D739 0xBB18 +0x8330D830 0xBB19 +0x8330D831 0xBB1A +0x8330D832 0xBB1B +0x8330D833 0xBB1C +0x8330D834 0xBB1D +0x8330D835 0xBB1E +0x8330D836 0xBB1F +0x8330D837 0xBB20 +0x8330D838 0xBB21 +0x8330D839 0xBB22 +0x8330D930 0xBB23 +0x8330D931 0xBB24 +0x8330D932 0xBB25 +0x8330D933 0xBB26 +0x8330D934 0xBB27 +0x8330D935 0xBB28 +0x8330D936 0xBB29 +0x8330D937 0xBB2A +0x8330D938 0xBB2B +0x8330D939 0xBB2C +0x8330DA30 0xBB2D +0x8330DA31 0xBB2E +0x8330DA32 0xBB2F +0x8330DA33 0xBB30 +0x8330DA34 0xBB31 +0x8330DA35 0xBB32 +0x8330DA36 0xBB33 +0x8330DA37 0xBB34 +0x8330DA38 0xBB35 +0x8330DA39 0xBB36 +0x8330DB30 0xBB37 +0x8330DB31 0xBB38 +0x8330DB32 0xBB39 +0x8330DB33 0xBB3A +0x8330DB34 0xBB3B +0x8330DB35 0xBB3C +0x8330DB36 0xBB3D +0x8330DB37 0xBB3E +0x8330DB38 0xBB3F +0x8330DB39 0xBB40 +0x8330DC30 0xBB41 +0x8330DC31 0xBB42 +0x8330DC32 0xBB43 +0x8330DC33 0xBB44 +0x8330DC34 0xBB45 +0x8330DC35 0xBB46 +0x8330DC36 0xBB47 +0x8330DC37 0xBB48 +0x8330DC38 0xBB49 +0x8330DC39 0xBB4A +0x8330DD30 0xBB4B +0x8330DD31 0xBB4C +0x8330DD32 0xBB4D +0x8330DD33 0xBB4E +0x8330DD34 0xBB4F +0x8330DD35 0xBB50 +0x8330DD36 0xBB51 +0x8330DD37 0xBB52 +0x8330DD38 0xBB53 +0x8330DD39 0xBB54 +0x8330DE30 0xBB55 +0x8330DE31 0xBB56 +0x8330DE32 0xBB57 +0x8330DE33 0xBB58 +0x8330DE34 0xBB59 +0x8330DE35 0xBB5A +0x8330DE36 0xBB5B +0x8330DE37 0xBB5C +0x8330DE38 0xBB5D +0x8330DE39 0xBB5E +0x8330DF30 0xBB5F +0x8330DF31 0xBB60 +0x8330DF32 0xBB61 +0x8330DF33 0xBB62 +0x8330DF34 0xBB63 +0x8330DF35 0xBB64 +0x8330DF36 0xBB65 +0x8330DF37 0xBB66 +0x8330DF38 0xBB67 +0x8330DF39 0xBB68 +0x8330E030 0xBB69 +0x8330E031 0xBB6A +0x8330E032 0xBB6B +0x8330E033 0xBB6C +0x8330E034 0xBB6D +0x8330E035 0xBB6E +0x8330E036 0xBB6F +0x8330E037 0xBB70 +0x8330E038 0xBB71 +0x8330E039 0xBB72 +0x8330E130 0xBB73 +0x8330E131 0xBB74 +0x8330E132 0xBB75 +0x8330E133 0xBB76 +0x8330E134 0xBB77 +0x8330E135 0xBB78 +0x8330E136 0xBB79 +0x8330E137 0xBB7A +0x8330E138 0xBB7B +0x8330E139 0xBB7C +0x8330E230 0xBB7D +0x8330E231 0xBB7E +0x8330E232 0xBB7F +0x8330E233 0xBB80 +0x8330E234 0xBB81 +0x8330E235 0xBB82 +0x8330E236 0xBB83 +0x8330E237 0xBB84 +0x8330E238 0xBB85 +0x8330E239 0xBB86 +0x8330E330 0xBB87 +0x8330E331 0xBB88 +0x8330E332 0xBB89 +0x8330E333 0xBB8A +0x8330E334 0xBB8B +0x8330E335 0xBB8C +0x8330E336 0xBB8D +0x8330E337 0xBB8E +0x8330E338 0xBB8F +0x8330E339 0xBB90 +0x8330E430 0xBB91 +0x8330E431 0xBB92 +0x8330E432 0xBB93 +0x8330E433 0xBB94 +0x8330E434 0xBB95 +0x8330E435 0xBB96 +0x8330E436 0xBB97 +0x8330E437 0xBB98 +0x8330E438 0xBB99 +0x8330E439 0xBB9A +0x8330E530 0xBB9B +0x8330E531 0xBB9C +0x8330E532 0xBB9D +0x8330E533 0xBB9E +0x8330E534 0xBB9F +0x8330E535 0xBBA0 +0x8330E536 0xBBA1 +0x8330E537 0xBBA2 +0x8330E538 0xBBA3 +0x8330E539 0xBBA4 +0x8330E630 0xBBA5 +0x8330E631 0xBBA6 +0x8330E632 0xBBA7 +0x8330E633 0xBBA8 +0x8330E634 0xBBA9 +0x8330E635 0xBBAA +0x8330E636 0xBBAB +0x8330E637 0xBBAC +0x8330E638 0xBBAD +0x8330E639 0xBBAE +0x8330E730 0xBBAF +0x8330E731 0xBBB0 +0x8330E732 0xBBB1 +0x8330E733 0xBBB2 +0x8330E734 0xBBB3 +0x8330E735 0xBBB4 +0x8330E736 0xBBB5 +0x8330E737 0xBBB6 +0x8330E738 0xBBB7 +0x8330E739 0xBBB8 +0x8330E830 0xBBB9 +0x8330E831 0xBBBA +0x8330E832 0xBBBB +0x8330E833 0xBBBC +0x8330E834 0xBBBD +0x8330E835 0xBBBE +0x8330E836 0xBBBF +0x8330E837 0xBBC0 +0x8330E838 0xBBC1 +0x8330E839 0xBBC2 +0x8330E930 0xBBC3 +0x8330E931 0xBBC4 +0x8330E932 0xBBC5 +0x8330E933 0xBBC6 +0x8330E934 0xBBC7 +0x8330E935 0xBBC8 +0x8330E936 0xBBC9 +0x8330E937 0xBBCA +0x8330E938 0xBBCB +0x8330E939 0xBBCC +0x8330EA30 0xBBCD +0x8330EA31 0xBBCE +0x8330EA32 0xBBCF +0x8330EA33 0xBBD0 +0x8330EA34 0xBBD1 +0x8330EA35 0xBBD2 +0x8330EA36 0xBBD3 +0x8330EA37 0xBBD4 +0x8330EA38 0xBBD5 +0x8330EA39 0xBBD6 +0x8330EB30 0xBBD7 +0x8330EB31 0xBBD8 +0x8330EB32 0xBBD9 +0x8330EB33 0xBBDA +0x8330EB34 0xBBDB +0x8330EB35 0xBBDC +0x8330EB36 0xBBDD +0x8330EB37 0xBBDE +0x8330EB38 0xBBDF +0x8330EB39 0xBBE0 +0x8330EC30 0xBBE1 +0x8330EC31 0xBBE2 +0x8330EC32 0xBBE3 +0x8330EC33 0xBBE4 +0x8330EC34 0xBBE5 +0x8330EC35 0xBBE6 +0x8330EC36 0xBBE7 +0x8330EC37 0xBBE8 +0x8330EC38 0xBBE9 +0x8330EC39 0xBBEA +0x8330ED30 0xBBEB +0x8330ED31 0xBBEC +0x8330ED32 0xBBED +0x8330ED33 0xBBEE +0x8330ED34 0xBBEF +0x8330ED35 0xBBF0 +0x8330ED36 0xBBF1 +0x8330ED37 0xBBF2 +0x8330ED38 0xBBF3 +0x8330ED39 0xBBF4 +0x8330EE30 0xBBF5 +0x8330EE31 0xBBF6 +0x8330EE32 0xBBF7 +0x8330EE33 0xBBF8 +0x8330EE34 0xBBF9 +0x8330EE35 0xBBFA +0x8330EE36 0xBBFB +0x8330EE37 0xBBFC +0x8330EE38 0xBBFD +0x8330EE39 0xBBFE +0x8330EF30 0xBBFF +0x8330EF31 0xBC00 +0x8330EF32 0xBC01 +0x8330EF33 0xBC02 +0x8330EF34 0xBC03 +0x8330EF35 0xBC04 +0x8330EF36 0xBC05 +0x8330EF37 0xBC06 +0x8330EF38 0xBC07 +0x8330EF39 0xBC08 +0x8330F030 0xBC09 +0x8330F031 0xBC0A +0x8330F032 0xBC0B +0x8330F033 0xBC0C +0x8330F034 0xBC0D +0x8330F035 0xBC0E +0x8330F036 0xBC0F +0x8330F037 0xBC10 +0x8330F038 0xBC11 +0x8330F039 0xBC12 +0x8330F130 0xBC13 +0x8330F131 0xBC14 +0x8330F132 0xBC15 +0x8330F133 0xBC16 +0x8330F134 0xBC17 +0x8330F135 0xBC18 +0x8330F136 0xBC19 +0x8330F137 0xBC1A +0x8330F138 0xBC1B +0x8330F139 0xBC1C +0x8330F230 0xBC1D +0x8330F231 0xBC1E +0x8330F232 0xBC1F +0x8330F233 0xBC20 +0x8330F234 0xBC21 +0x8330F235 0xBC22 +0x8330F236 0xBC23 +0x8330F237 0xBC24 +0x8330F238 0xBC25 +0x8330F239 0xBC26 +0x8330F330 0xBC27 +0x8330F331 0xBC28 +0x8330F332 0xBC29 +0x8330F333 0xBC2A +0x8330F334 0xBC2B +0x8330F335 0xBC2C +0x8330F336 0xBC2D +0x8330F337 0xBC2E +0x8330F338 0xBC2F +0x8330F339 0xBC30 +0x8330F430 0xBC31 +0x8330F431 0xBC32 +0x8330F432 0xBC33 +0x8330F433 0xBC34 +0x8330F434 0xBC35 +0x8330F435 0xBC36 +0x8330F436 0xBC37 +0x8330F437 0xBC38 +0x8330F438 0xBC39 +0x8330F439 0xBC3A +0x8330F530 0xBC3B +0x8330F531 0xBC3C +0x8330F532 0xBC3D +0x8330F533 0xBC3E +0x8330F534 0xBC3F +0x8330F535 0xBC40 +0x8330F536 0xBC41 +0x8330F537 0xBC42 +0x8330F538 0xBC43 +0x8330F539 0xBC44 +0x8330F630 0xBC45 +0x8330F631 0xBC46 +0x8330F632 0xBC47 +0x8330F633 0xBC48 +0x8330F634 0xBC49 +0x8330F635 0xBC4A +0x8330F636 0xBC4B +0x8330F637 0xBC4C +0x8330F638 0xBC4D +0x8330F639 0xBC4E +0x8330F730 0xBC4F +0x8330F731 0xBC50 +0x8330F732 0xBC51 +0x8330F733 0xBC52 +0x8330F734 0xBC53 +0x8330F735 0xBC54 +0x8330F736 0xBC55 +0x8330F737 0xBC56 +0x8330F738 0xBC57 +0x8330F739 0xBC58 +0x8330F830 0xBC59 +0x8330F831 0xBC5A +0x8330F832 0xBC5B +0x8330F833 0xBC5C +0x8330F834 0xBC5D +0x8330F835 0xBC5E +0x8330F836 0xBC5F +0x8330F837 0xBC60 +0x8330F838 0xBC61 +0x8330F839 0xBC62 +0x8330F930 0xBC63 +0x8330F931 0xBC64 +0x8330F932 0xBC65 +0x8330F933 0xBC66 +0x8330F934 0xBC67 +0x8330F935 0xBC68 +0x8330F936 0xBC69 +0x8330F937 0xBC6A +0x8330F938 0xBC6B +0x8330F939 0xBC6C +0x8330FA30 0xBC6D +0x8330FA31 0xBC6E +0x8330FA32 0xBC6F +0x8330FA33 0xBC70 +0x8330FA34 0xBC71 +0x8330FA35 0xBC72 +0x8330FA36 0xBC73 +0x8330FA37 0xBC74 +0x8330FA38 0xBC75 +0x8330FA39 0xBC76 +0x8330FB30 0xBC77 +0x8330FB31 0xBC78 +0x8330FB32 0xBC79 +0x8330FB33 0xBC7A +0x8330FB34 0xBC7B +0x8330FB35 0xBC7C +0x8330FB36 0xBC7D +0x8330FB37 0xBC7E +0x8330FB38 0xBC7F +0x8330FB39 0xBC80 +0x8330FC30 0xBC81 +0x8330FC31 0xBC82 +0x8330FC32 0xBC83 +0x8330FC33 0xBC84 +0x8330FC34 0xBC85 +0x8330FC35 0xBC86 +0x8330FC36 0xBC87 +0x8330FC37 0xBC88 +0x8330FC38 0xBC89 +0x8330FC39 0xBC8A +0x8330FD30 0xBC8B +0x8330FD31 0xBC8C +0x8330FD32 0xBC8D +0x8330FD33 0xBC8E +0x8330FD34 0xBC8F +0x8330FD35 0xBC90 +0x8330FD36 0xBC91 +0x8330FD37 0xBC92 +0x8330FD38 0xBC93 +0x8330FD39 0xBC94 +0x8330FE30 0xBC95 +0x8330FE31 0xBC96 +0x8330FE32 0xBC97 +0x8330FE33 0xBC98 +0x8330FE34 0xBC99 +0x8330FE35 0xBC9A +0x8330FE36 0xBC9B +0x8330FE37 0xBC9C +0x8330FE38 0xBC9D +0x8330FE39 0xBC9E +0x83318130 0xBC9F +0x83318131 0xBCA0 +0x83318132 0xBCA1 +0x83318133 0xBCA2 +0x83318134 0xBCA3 +0x83318135 0xBCA4 +0x83318136 0xBCA5 +0x83318137 0xBCA6 +0x83318138 0xBCA7 +0x83318139 0xBCA8 +0x83318230 0xBCA9 +0x83318231 0xBCAA +0x83318232 0xBCAB +0x83318233 0xBCAC +0x83318234 0xBCAD +0x83318235 0xBCAE +0x83318236 0xBCAF +0x83318237 0xBCB0 +0x83318238 0xBCB1 +0x83318239 0xBCB2 +0x83318330 0xBCB3 +0x83318331 0xBCB4 +0x83318332 0xBCB5 +0x83318333 0xBCB6 +0x83318334 0xBCB7 +0x83318335 0xBCB8 +0x83318336 0xBCB9 +0x83318337 0xBCBA +0x83318338 0xBCBB +0x83318339 0xBCBC +0x83318430 0xBCBD +0x83318431 0xBCBE +0x83318432 0xBCBF +0x83318433 0xBCC0 +0x83318434 0xBCC1 +0x83318435 0xBCC2 +0x83318436 0xBCC3 +0x83318437 0xBCC4 +0x83318438 0xBCC5 +0x83318439 0xBCC6 +0x83318530 0xBCC7 +0x83318531 0xBCC8 +0x83318532 0xBCC9 +0x83318533 0xBCCA +0x83318534 0xBCCB +0x83318535 0xBCCC +0x83318536 0xBCCD +0x83318537 0xBCCE +0x83318538 0xBCCF +0x83318539 0xBCD0 +0x83318630 0xBCD1 +0x83318631 0xBCD2 +0x83318632 0xBCD3 +0x83318633 0xBCD4 +0x83318634 0xBCD5 +0x83318635 0xBCD6 +0x83318636 0xBCD7 +0x83318637 0xBCD8 +0x83318638 0xBCD9 +0x83318639 0xBCDA +0x83318730 0xBCDB +0x83318731 0xBCDC +0x83318732 0xBCDD +0x83318733 0xBCDE +0x83318734 0xBCDF +0x83318735 0xBCE0 +0x83318736 0xBCE1 +0x83318737 0xBCE2 +0x83318738 0xBCE3 +0x83318739 0xBCE4 +0x83318830 0xBCE5 +0x83318831 0xBCE6 +0x83318832 0xBCE7 +0x83318833 0xBCE8 +0x83318834 0xBCE9 +0x83318835 0xBCEA +0x83318836 0xBCEB +0x83318837 0xBCEC +0x83318838 0xBCED +0x83318839 0xBCEE +0x83318930 0xBCEF +0x83318931 0xBCF0 +0x83318932 0xBCF1 +0x83318933 0xBCF2 +0x83318934 0xBCF3 +0x83318935 0xBCF4 +0x83318936 0xBCF5 +0x83318937 0xBCF6 +0x83318938 0xBCF7 +0x83318939 0xBCF8 +0x83318A30 0xBCF9 +0x83318A31 0xBCFA +0x83318A32 0xBCFB +0x83318A33 0xBCFC +0x83318A34 0xBCFD +0x83318A35 0xBCFE +0x83318A36 0xBCFF +0x83318A37 0xBD00 +0x83318A38 0xBD01 +0x83318A39 0xBD02 +0x83318B30 0xBD03 +0x83318B31 0xBD04 +0x83318B32 0xBD05 +0x83318B33 0xBD06 +0x83318B34 0xBD07 +0x83318B35 0xBD08 +0x83318B36 0xBD09 +0x83318B37 0xBD0A +0x83318B38 0xBD0B +0x83318B39 0xBD0C +0x83318C30 0xBD0D +0x83318C31 0xBD0E +0x83318C32 0xBD0F +0x83318C33 0xBD10 +0x83318C34 0xBD11 +0x83318C35 0xBD12 +0x83318C36 0xBD13 +0x83318C37 0xBD14 +0x83318C38 0xBD15 +0x83318C39 0xBD16 +0x83318D30 0xBD17 +0x83318D31 0xBD18 +0x83318D32 0xBD19 +0x83318D33 0xBD1A +0x83318D34 0xBD1B +0x83318D35 0xBD1C +0x83318D36 0xBD1D +0x83318D37 0xBD1E +0x83318D38 0xBD1F +0x83318D39 0xBD20 +0x83318E30 0xBD21 +0x83318E31 0xBD22 +0x83318E32 0xBD23 +0x83318E33 0xBD24 +0x83318E34 0xBD25 +0x83318E35 0xBD26 +0x83318E36 0xBD27 +0x83318E37 0xBD28 +0x83318E38 0xBD29 +0x83318E39 0xBD2A +0x83318F30 0xBD2B +0x83318F31 0xBD2C +0x83318F32 0xBD2D +0x83318F33 0xBD2E +0x83318F34 0xBD2F +0x83318F35 0xBD30 +0x83318F36 0xBD31 +0x83318F37 0xBD32 +0x83318F38 0xBD33 +0x83318F39 0xBD34 +0x83319030 0xBD35 +0x83319031 0xBD36 +0x83319032 0xBD37 +0x83319033 0xBD38 +0x83319034 0xBD39 +0x83319035 0xBD3A +0x83319036 0xBD3B +0x83319037 0xBD3C +0x83319038 0xBD3D +0x83319039 0xBD3E +0x83319130 0xBD3F +0x83319131 0xBD40 +0x83319132 0xBD41 +0x83319133 0xBD42 +0x83319134 0xBD43 +0x83319135 0xBD44 +0x83319136 0xBD45 +0x83319137 0xBD46 +0x83319138 0xBD47 +0x83319139 0xBD48 +0x83319230 0xBD49 +0x83319231 0xBD4A +0x83319232 0xBD4B +0x83319233 0xBD4C +0x83319234 0xBD4D +0x83319235 0xBD4E +0x83319236 0xBD4F +0x83319237 0xBD50 +0x83319238 0xBD51 +0x83319239 0xBD52 +0x83319330 0xBD53 +0x83319331 0xBD54 +0x83319332 0xBD55 +0x83319333 0xBD56 +0x83319334 0xBD57 +0x83319335 0xBD58 +0x83319336 0xBD59 +0x83319337 0xBD5A +0x83319338 0xBD5B +0x83319339 0xBD5C +0x83319430 0xBD5D +0x83319431 0xBD5E +0x83319432 0xBD5F +0x83319433 0xBD60 +0x83319434 0xBD61 +0x83319435 0xBD62 +0x83319436 0xBD63 +0x83319437 0xBD64 +0x83319438 0xBD65 +0x83319439 0xBD66 +0x83319530 0xBD67 +0x83319531 0xBD68 +0x83319532 0xBD69 +0x83319533 0xBD6A +0x83319534 0xBD6B +0x83319535 0xBD6C +0x83319536 0xBD6D +0x83319537 0xBD6E +0x83319538 0xBD6F +0x83319539 0xBD70 +0x83319630 0xBD71 +0x83319631 0xBD72 +0x83319632 0xBD73 +0x83319633 0xBD74 +0x83319634 0xBD75 +0x83319635 0xBD76 +0x83319636 0xBD77 +0x83319637 0xBD78 +0x83319638 0xBD79 +0x83319639 0xBD7A +0x83319730 0xBD7B +0x83319731 0xBD7C +0x83319732 0xBD7D +0x83319733 0xBD7E +0x83319734 0xBD7F +0x83319735 0xBD80 +0x83319736 0xBD81 +0x83319737 0xBD82 +0x83319738 0xBD83 +0x83319739 0xBD84 +0x83319830 0xBD85 +0x83319831 0xBD86 +0x83319832 0xBD87 +0x83319833 0xBD88 +0x83319834 0xBD89 +0x83319835 0xBD8A +0x83319836 0xBD8B +0x83319837 0xBD8C +0x83319838 0xBD8D +0x83319839 0xBD8E +0x83319930 0xBD8F +0x83319931 0xBD90 +0x83319932 0xBD91 +0x83319933 0xBD92 +0x83319934 0xBD93 +0x83319935 0xBD94 +0x83319936 0xBD95 +0x83319937 0xBD96 +0x83319938 0xBD97 +0x83319939 0xBD98 +0x83319A30 0xBD99 +0x83319A31 0xBD9A +0x83319A32 0xBD9B +0x83319A33 0xBD9C +0x83319A34 0xBD9D +0x83319A35 0xBD9E +0x83319A36 0xBD9F +0x83319A37 0xBDA0 +0x83319A38 0xBDA1 +0x83319A39 0xBDA2 +0x83319B30 0xBDA3 +0x83319B31 0xBDA4 +0x83319B32 0xBDA5 +0x83319B33 0xBDA6 +0x83319B34 0xBDA7 +0x83319B35 0xBDA8 +0x83319B36 0xBDA9 +0x83319B37 0xBDAA +0x83319B38 0xBDAB +0x83319B39 0xBDAC +0x83319C30 0xBDAD +0x83319C31 0xBDAE +0x83319C32 0xBDAF +0x83319C33 0xBDB0 +0x83319C34 0xBDB1 +0x83319C35 0xBDB2 +0x83319C36 0xBDB3 +0x83319C37 0xBDB4 +0x83319C38 0xBDB5 +0x83319C39 0xBDB6 +0x83319D30 0xBDB7 +0x83319D31 0xBDB8 +0x83319D32 0xBDB9 +0x83319D33 0xBDBA +0x83319D34 0xBDBB +0x83319D35 0xBDBC +0x83319D36 0xBDBD +0x83319D37 0xBDBE +0x83319D38 0xBDBF +0x83319D39 0xBDC0 +0x83319E30 0xBDC1 +0x83319E31 0xBDC2 +0x83319E32 0xBDC3 +0x83319E33 0xBDC4 +0x83319E34 0xBDC5 +0x83319E35 0xBDC6 +0x83319E36 0xBDC7 +0x83319E37 0xBDC8 +0x83319E38 0xBDC9 +0x83319E39 0xBDCA +0x83319F30 0xBDCB +0x83319F31 0xBDCC +0x83319F32 0xBDCD +0x83319F33 0xBDCE +0x83319F34 0xBDCF +0x83319F35 0xBDD0 +0x83319F36 0xBDD1 +0x83319F37 0xBDD2 +0x83319F38 0xBDD3 +0x83319F39 0xBDD4 +0x8331A030 0xBDD5 +0x8331A031 0xBDD6 +0x8331A032 0xBDD7 +0x8331A033 0xBDD8 +0x8331A034 0xBDD9 +0x8331A035 0xBDDA +0x8331A036 0xBDDB +0x8331A037 0xBDDC +0x8331A038 0xBDDD +0x8331A039 0xBDDE +0x8331A130 0xBDDF +0x8331A131 0xBDE0 +0x8331A132 0xBDE1 +0x8331A133 0xBDE2 +0x8331A134 0xBDE3 +0x8331A135 0xBDE4 +0x8331A136 0xBDE5 +0x8331A137 0xBDE6 +0x8331A138 0xBDE7 +0x8331A139 0xBDE8 +0x8331A230 0xBDE9 +0x8331A231 0xBDEA +0x8331A232 0xBDEB +0x8331A233 0xBDEC +0x8331A234 0xBDED +0x8331A235 0xBDEE +0x8331A236 0xBDEF +0x8331A237 0xBDF0 +0x8331A238 0xBDF1 +0x8331A239 0xBDF2 +0x8331A330 0xBDF3 +0x8331A331 0xBDF4 +0x8331A332 0xBDF5 +0x8331A333 0xBDF6 +0x8331A334 0xBDF7 +0x8331A335 0xBDF8 +0x8331A336 0xBDF9 +0x8331A337 0xBDFA +0x8331A338 0xBDFB +0x8331A339 0xBDFC +0x8331A430 0xBDFD +0x8331A431 0xBDFE +0x8331A432 0xBDFF +0x8331A433 0xBE00 +0x8331A434 0xBE01 +0x8331A435 0xBE02 +0x8331A436 0xBE03 +0x8331A437 0xBE04 +0x8331A438 0xBE05 +0x8331A439 0xBE06 +0x8331A530 0xBE07 +0x8331A531 0xBE08 +0x8331A532 0xBE09 +0x8331A533 0xBE0A +0x8331A534 0xBE0B +0x8331A535 0xBE0C +0x8331A536 0xBE0D +0x8331A537 0xBE0E +0x8331A538 0xBE0F +0x8331A539 0xBE10 +0x8331A630 0xBE11 +0x8331A631 0xBE12 +0x8331A632 0xBE13 +0x8331A633 0xBE14 +0x8331A634 0xBE15 +0x8331A635 0xBE16 +0x8331A636 0xBE17 +0x8331A637 0xBE18 +0x8331A638 0xBE19 +0x8331A639 0xBE1A +0x8331A730 0xBE1B +0x8331A731 0xBE1C +0x8331A732 0xBE1D +0x8331A733 0xBE1E +0x8331A734 0xBE1F +0x8331A735 0xBE20 +0x8331A736 0xBE21 +0x8331A737 0xBE22 +0x8331A738 0xBE23 +0x8331A739 0xBE24 +0x8331A830 0xBE25 +0x8331A831 0xBE26 +0x8331A832 0xBE27 +0x8331A833 0xBE28 +0x8331A834 0xBE29 +0x8331A835 0xBE2A +0x8331A836 0xBE2B +0x8331A837 0xBE2C +0x8331A838 0xBE2D +0x8331A839 0xBE2E +0x8331A930 0xBE2F +0x8331A931 0xBE30 +0x8331A932 0xBE31 +0x8331A933 0xBE32 +0x8331A934 0xBE33 +0x8331A935 0xBE34 +0x8331A936 0xBE35 +0x8331A937 0xBE36 +0x8331A938 0xBE37 +0x8331A939 0xBE38 +0x8331AA30 0xBE39 +0x8331AA31 0xBE3A +0x8331AA32 0xBE3B +0x8331AA33 0xBE3C +0x8331AA34 0xBE3D +0x8331AA35 0xBE3E +0x8331AA36 0xBE3F +0x8331AA37 0xBE40 +0x8331AA38 0xBE41 +0x8331AA39 0xBE42 +0x8331AB30 0xBE43 +0x8331AB31 0xBE44 +0x8331AB32 0xBE45 +0x8331AB33 0xBE46 +0x8331AB34 0xBE47 +0x8331AB35 0xBE48 +0x8331AB36 0xBE49 +0x8331AB37 0xBE4A +0x8331AB38 0xBE4B +0x8331AB39 0xBE4C +0x8331AC30 0xBE4D +0x8331AC31 0xBE4E +0x8331AC32 0xBE4F +0x8331AC33 0xBE50 +0x8331AC34 0xBE51 +0x8331AC35 0xBE52 +0x8331AC36 0xBE53 +0x8331AC37 0xBE54 +0x8331AC38 0xBE55 +0x8331AC39 0xBE56 +0x8331AD30 0xBE57 +0x8331AD31 0xBE58 +0x8331AD32 0xBE59 +0x8331AD33 0xBE5A +0x8331AD34 0xBE5B +0x8331AD35 0xBE5C +0x8331AD36 0xBE5D +0x8331AD37 0xBE5E +0x8331AD38 0xBE5F +0x8331AD39 0xBE60 +0x8331AE30 0xBE61 +0x8331AE31 0xBE62 +0x8331AE32 0xBE63 +0x8331AE33 0xBE64 +0x8331AE34 0xBE65 +0x8331AE35 0xBE66 +0x8331AE36 0xBE67 +0x8331AE37 0xBE68 +0x8331AE38 0xBE69 +0x8331AE39 0xBE6A +0x8331AF30 0xBE6B +0x8331AF31 0xBE6C +0x8331AF32 0xBE6D +0x8331AF33 0xBE6E +0x8331AF34 0xBE6F +0x8331AF35 0xBE70 +0x8331AF36 0xBE71 +0x8331AF37 0xBE72 +0x8331AF38 0xBE73 +0x8331AF39 0xBE74 +0x8331B030 0xBE75 +0x8331B031 0xBE76 +0x8331B032 0xBE77 +0x8331B033 0xBE78 +0x8331B034 0xBE79 +0x8331B035 0xBE7A +0x8331B036 0xBE7B +0x8331B037 0xBE7C +0x8331B038 0xBE7D +0x8331B039 0xBE7E +0x8331B130 0xBE7F +0x8331B131 0xBE80 +0x8331B132 0xBE81 +0x8331B133 0xBE82 +0x8331B134 0xBE83 +0x8331B135 0xBE84 +0x8331B136 0xBE85 +0x8331B137 0xBE86 +0x8331B138 0xBE87 +0x8331B139 0xBE88 +0x8331B230 0xBE89 +0x8331B231 0xBE8A +0x8331B232 0xBE8B +0x8331B233 0xBE8C +0x8331B234 0xBE8D +0x8331B235 0xBE8E +0x8331B236 0xBE8F +0x8331B237 0xBE90 +0x8331B238 0xBE91 +0x8331B239 0xBE92 +0x8331B330 0xBE93 +0x8331B331 0xBE94 +0x8331B332 0xBE95 +0x8331B333 0xBE96 +0x8331B334 0xBE97 +0x8331B335 0xBE98 +0x8331B336 0xBE99 +0x8331B337 0xBE9A +0x8331B338 0xBE9B +0x8331B339 0xBE9C +0x8331B430 0xBE9D +0x8331B431 0xBE9E +0x8331B432 0xBE9F +0x8331B433 0xBEA0 +0x8331B434 0xBEA1 +0x8331B435 0xBEA2 +0x8331B436 0xBEA3 +0x8331B437 0xBEA4 +0x8331B438 0xBEA5 +0x8331B439 0xBEA6 +0x8331B530 0xBEA7 +0x8331B531 0xBEA8 +0x8331B532 0xBEA9 +0x8331B533 0xBEAA +0x8331B534 0xBEAB +0x8331B535 0xBEAC +0x8331B536 0xBEAD +0x8331B537 0xBEAE +0x8331B538 0xBEAF +0x8331B539 0xBEB0 +0x8331B630 0xBEB1 +0x8331B631 0xBEB2 +0x8331B632 0xBEB3 +0x8331B633 0xBEB4 +0x8331B634 0xBEB5 +0x8331B635 0xBEB6 +0x8331B636 0xBEB7 +0x8331B637 0xBEB8 +0x8331B638 0xBEB9 +0x8331B639 0xBEBA +0x8331B730 0xBEBB +0x8331B731 0xBEBC +0x8331B732 0xBEBD +0x8331B733 0xBEBE +0x8331B734 0xBEBF +0x8331B735 0xBEC0 +0x8331B736 0xBEC1 +0x8331B737 0xBEC2 +0x8331B738 0xBEC3 +0x8331B739 0xBEC4 +0x8331B830 0xBEC5 +0x8331B831 0xBEC6 +0x8331B832 0xBEC7 +0x8331B833 0xBEC8 +0x8331B834 0xBEC9 +0x8331B835 0xBECA +0x8331B836 0xBECB +0x8331B837 0xBECC +0x8331B838 0xBECD +0x8331B839 0xBECE +0x8331B930 0xBECF +0x8331B931 0xBED0 +0x8331B932 0xBED1 +0x8331B933 0xBED2 +0x8331B934 0xBED3 +0x8331B935 0xBED4 +0x8331B936 0xBED5 +0x8331B937 0xBED6 +0x8331B938 0xBED7 +0x8331B939 0xBED8 +0x8331BA30 0xBED9 +0x8331BA31 0xBEDA +0x8331BA32 0xBEDB +0x8331BA33 0xBEDC +0x8331BA34 0xBEDD +0x8331BA35 0xBEDE +0x8331BA36 0xBEDF +0x8331BA37 0xBEE0 +0x8331BA38 0xBEE1 +0x8331BA39 0xBEE2 +0x8331BB30 0xBEE3 +0x8331BB31 0xBEE4 +0x8331BB32 0xBEE5 +0x8331BB33 0xBEE6 +0x8331BB34 0xBEE7 +0x8331BB35 0xBEE8 +0x8331BB36 0xBEE9 +0x8331BB37 0xBEEA +0x8331BB38 0xBEEB +0x8331BB39 0xBEEC +0x8331BC30 0xBEED +0x8331BC31 0xBEEE +0x8331BC32 0xBEEF +0x8331BC33 0xBEF0 +0x8331BC34 0xBEF1 +0x8331BC35 0xBEF2 +0x8331BC36 0xBEF3 +0x8331BC37 0xBEF4 +0x8331BC38 0xBEF5 +0x8331BC39 0xBEF6 +0x8331BD30 0xBEF7 +0x8331BD31 0xBEF8 +0x8331BD32 0xBEF9 +0x8331BD33 0xBEFA +0x8331BD34 0xBEFB +0x8331BD35 0xBEFC +0x8331BD36 0xBEFD +0x8331BD37 0xBEFE +0x8331BD38 0xBEFF +0x8331BD39 0xBF00 +0x8331BE30 0xBF01 +0x8331BE31 0xBF02 +0x8331BE32 0xBF03 +0x8331BE33 0xBF04 +0x8331BE34 0xBF05 +0x8331BE35 0xBF06 +0x8331BE36 0xBF07 +0x8331BE37 0xBF08 +0x8331BE38 0xBF09 +0x8331BE39 0xBF0A +0x8331BF30 0xBF0B +0x8331BF31 0xBF0C +0x8331BF32 0xBF0D +0x8331BF33 0xBF0E +0x8331BF34 0xBF0F +0x8331BF35 0xBF10 +0x8331BF36 0xBF11 +0x8331BF37 0xBF12 +0x8331BF38 0xBF13 +0x8331BF39 0xBF14 +0x8331C030 0xBF15 +0x8331C031 0xBF16 +0x8331C032 0xBF17 +0x8331C033 0xBF18 +0x8331C034 0xBF19 +0x8331C035 0xBF1A +0x8331C036 0xBF1B +0x8331C037 0xBF1C +0x8331C038 0xBF1D +0x8331C039 0xBF1E +0x8331C130 0xBF1F +0x8331C131 0xBF20 +0x8331C132 0xBF21 +0x8331C133 0xBF22 +0x8331C134 0xBF23 +0x8331C135 0xBF24 +0x8331C136 0xBF25 +0x8331C137 0xBF26 +0x8331C138 0xBF27 +0x8331C139 0xBF28 +0x8331C230 0xBF29 +0x8331C231 0xBF2A +0x8331C232 0xBF2B +0x8331C233 0xBF2C +0x8331C234 0xBF2D +0x8331C235 0xBF2E +0x8331C236 0xBF2F +0x8331C237 0xBF30 +0x8331C238 0xBF31 +0x8331C239 0xBF32 +0x8331C330 0xBF33 +0x8331C331 0xBF34 +0x8331C332 0xBF35 +0x8331C333 0xBF36 +0x8331C334 0xBF37 +0x8331C335 0xBF38 +0x8331C336 0xBF39 +0x8331C337 0xBF3A +0x8331C338 0xBF3B +0x8331C339 0xBF3C +0x8331C430 0xBF3D +0x8331C431 0xBF3E +0x8331C432 0xBF3F +0x8331C433 0xBF40 +0x8331C434 0xBF41 +0x8331C435 0xBF42 +0x8331C436 0xBF43 +0x8331C437 0xBF44 +0x8331C438 0xBF45 +0x8331C439 0xBF46 +0x8331C530 0xBF47 +0x8331C531 0xBF48 +0x8331C532 0xBF49 +0x8331C533 0xBF4A +0x8331C534 0xBF4B +0x8331C535 0xBF4C +0x8331C536 0xBF4D +0x8331C537 0xBF4E +0x8331C538 0xBF4F +0x8331C539 0xBF50 +0x8331C630 0xBF51 +0x8331C631 0xBF52 +0x8331C632 0xBF53 +0x8331C633 0xBF54 +0x8331C634 0xBF55 +0x8331C635 0xBF56 +0x8331C636 0xBF57 +0x8331C637 0xBF58 +0x8331C638 0xBF59 +0x8331C639 0xBF5A +0x8331C730 0xBF5B +0x8331C731 0xBF5C +0x8331C732 0xBF5D +0x8331C733 0xBF5E +0x8331C734 0xBF5F +0x8331C735 0xBF60 +0x8331C736 0xBF61 +0x8331C737 0xBF62 +0x8331C738 0xBF63 +0x8331C739 0xBF64 +0x8331C830 0xBF65 +0x8331C831 0xBF66 +0x8331C832 0xBF67 +0x8331C833 0xBF68 +0x8331C834 0xBF69 +0x8331C835 0xBF6A +0x8331C836 0xBF6B +0x8331C837 0xBF6C +0x8331C838 0xBF6D +0x8331C839 0xBF6E +0x8331C930 0xBF6F +0x8331C931 0xBF70 +0x8331C932 0xBF71 +0x8331C933 0xBF72 +0x8331C934 0xBF73 +0x8331C935 0xBF74 +0x8331C936 0xBF75 +0x8331C937 0xBF76 +0x8331C938 0xBF77 +0x8331C939 0xBF78 +0x8331CA30 0xBF79 +0x8331CA31 0xBF7A +0x8331CA32 0xBF7B +0x8331CA33 0xBF7C +0x8331CA34 0xBF7D +0x8331CA35 0xBF7E +0x8331CA36 0xBF7F +0x8331CA37 0xBF80 +0x8331CA38 0xBF81 +0x8331CA39 0xBF82 +0x8331CB30 0xBF83 +0x8331CB31 0xBF84 +0x8331CB32 0xBF85 +0x8331CB33 0xBF86 +0x8331CB34 0xBF87 +0x8331CB35 0xBF88 +0x8331CB36 0xBF89 +0x8331CB37 0xBF8A +0x8331CB38 0xBF8B +0x8331CB39 0xBF8C +0x8331CC30 0xBF8D +0x8331CC31 0xBF8E +0x8331CC32 0xBF8F +0x8331CC33 0xBF90 +0x8331CC34 0xBF91 +0x8331CC35 0xBF92 +0x8331CC36 0xBF93 +0x8331CC37 0xBF94 +0x8331CC38 0xBF95 +0x8331CC39 0xBF96 +0x8331CD30 0xBF97 +0x8331CD31 0xBF98 +0x8331CD32 0xBF99 +0x8331CD33 0xBF9A +0x8331CD34 0xBF9B +0x8331CD35 0xBF9C +0x8331CD36 0xBF9D +0x8331CD37 0xBF9E +0x8331CD38 0xBF9F +0x8331CD39 0xBFA0 +0x8331CE30 0xBFA1 +0x8331CE31 0xBFA2 +0x8331CE32 0xBFA3 +0x8331CE33 0xBFA4 +0x8331CE34 0xBFA5 +0x8331CE35 0xBFA6 +0x8331CE36 0xBFA7 +0x8331CE37 0xBFA8 +0x8331CE38 0xBFA9 +0x8331CE39 0xBFAA +0x8331CF30 0xBFAB +0x8331CF31 0xBFAC +0x8331CF32 0xBFAD +0x8331CF33 0xBFAE +0x8331CF34 0xBFAF +0x8331CF35 0xBFB0 +0x8331CF36 0xBFB1 +0x8331CF37 0xBFB2 +0x8331CF38 0xBFB3 +0x8331CF39 0xBFB4 +0x8331D030 0xBFB5 +0x8331D031 0xBFB6 +0x8331D032 0xBFB7 +0x8331D033 0xBFB8 +0x8331D034 0xBFB9 +0x8331D035 0xBFBA +0x8331D036 0xBFBB +0x8331D037 0xBFBC +0x8331D038 0xBFBD +0x8331D039 0xBFBE +0x8331D130 0xBFBF +0x8331D131 0xBFC0 +0x8331D132 0xBFC1 +0x8331D133 0xBFC2 +0x8331D134 0xBFC3 +0x8331D135 0xBFC4 +0x8331D136 0xBFC5 +0x8331D137 0xBFC6 +0x8331D138 0xBFC7 +0x8331D139 0xBFC8 +0x8331D230 0xBFC9 +0x8331D231 0xBFCA +0x8331D232 0xBFCB +0x8331D233 0xBFCC +0x8331D234 0xBFCD +0x8331D235 0xBFCE +0x8331D236 0xBFCF +0x8331D237 0xBFD0 +0x8331D238 0xBFD1 +0x8331D239 0xBFD2 +0x8331D330 0xBFD3 +0x8331D331 0xBFD4 +0x8331D332 0xBFD5 +0x8331D333 0xBFD6 +0x8331D334 0xBFD7 +0x8331D335 0xBFD8 +0x8331D336 0xBFD9 +0x8331D337 0xBFDA +0x8331D338 0xBFDB +0x8331D339 0xBFDC +0x8331D430 0xBFDD +0x8331D431 0xBFDE +0x8331D432 0xBFDF +0x8331D433 0xBFE0 +0x8331D434 0xBFE1 +0x8331D435 0xBFE2 +0x8331D436 0xBFE3 +0x8331D437 0xBFE4 +0x8331D438 0xBFE5 +0x8331D439 0xBFE6 +0x8331D530 0xBFE7 +0x8331D531 0xBFE8 +0x8331D532 0xBFE9 +0x8331D533 0xBFEA +0x8331D534 0xBFEB +0x8331D535 0xBFEC +0x8331D536 0xBFED +0x8331D537 0xBFEE +0x8331D538 0xBFEF +0x8331D539 0xBFF0 +0x8331D630 0xBFF1 +0x8331D631 0xBFF2 +0x8331D632 0xBFF3 +0x8331D633 0xBFF4 +0x8331D634 0xBFF5 +0x8331D635 0xBFF6 +0x8331D636 0xBFF7 +0x8331D637 0xBFF8 +0x8331D638 0xBFF9 +0x8331D639 0xBFFA +0x8331D730 0xBFFB +0x8331D731 0xBFFC +0x8331D732 0xBFFD +0x8331D733 0xBFFE +0x8331D734 0xBFFF +0x8331D735 0xC000 +0x8331D736 0xC001 +0x8331D737 0xC002 +0x8331D738 0xC003 +0x8331D739 0xC004 +0x8331D830 0xC005 +0x8331D831 0xC006 +0x8331D832 0xC007 +0x8331D833 0xC008 +0x8331D834 0xC009 +0x8331D835 0xC00A +0x8331D836 0xC00B +0x8331D837 0xC00C +0x8331D838 0xC00D +0x8331D839 0xC00E +0x8331D930 0xC00F +0x8331D931 0xC010 +0x8331D932 0xC011 +0x8331D933 0xC012 +0x8331D934 0xC013 +0x8331D935 0xC014 +0x8331D936 0xC015 +0x8331D937 0xC016 +0x8331D938 0xC017 +0x8331D939 0xC018 +0x8331DA30 0xC019 +0x8331DA31 0xC01A +0x8331DA32 0xC01B +0x8331DA33 0xC01C +0x8331DA34 0xC01D +0x8331DA35 0xC01E +0x8331DA36 0xC01F +0x8331DA37 0xC020 +0x8331DA38 0xC021 +0x8331DA39 0xC022 +0x8331DB30 0xC023 +0x8331DB31 0xC024 +0x8331DB32 0xC025 +0x8331DB33 0xC026 +0x8331DB34 0xC027 +0x8331DB35 0xC028 +0x8331DB36 0xC029 +0x8331DB37 0xC02A +0x8331DB38 0xC02B +0x8331DB39 0xC02C +0x8331DC30 0xC02D +0x8331DC31 0xC02E +0x8331DC32 0xC02F +0x8331DC33 0xC030 +0x8331DC34 0xC031 +0x8331DC35 0xC032 +0x8331DC36 0xC033 +0x8331DC37 0xC034 +0x8331DC38 0xC035 +0x8331DC39 0xC036 +0x8331DD30 0xC037 +0x8331DD31 0xC038 +0x8331DD32 0xC039 +0x8331DD33 0xC03A +0x8331DD34 0xC03B +0x8331DD35 0xC03C +0x8331DD36 0xC03D +0x8331DD37 0xC03E +0x8331DD38 0xC03F +0x8331DD39 0xC040 +0x8331DE30 0xC041 +0x8331DE31 0xC042 +0x8331DE32 0xC043 +0x8331DE33 0xC044 +0x8331DE34 0xC045 +0x8331DE35 0xC046 +0x8331DE36 0xC047 +0x8331DE37 0xC048 +0x8331DE38 0xC049 +0x8331DE39 0xC04A +0x8331DF30 0xC04B +0x8331DF31 0xC04C +0x8331DF32 0xC04D +0x8331DF33 0xC04E +0x8331DF34 0xC04F +0x8331DF35 0xC050 +0x8331DF36 0xC051 +0x8331DF37 0xC052 +0x8331DF38 0xC053 +0x8331DF39 0xC054 +0x8331E030 0xC055 +0x8331E031 0xC056 +0x8331E032 0xC057 +0x8331E033 0xC058 +0x8331E034 0xC059 +0x8331E035 0xC05A +0x8331E036 0xC05B +0x8331E037 0xC05C +0x8331E038 0xC05D +0x8331E039 0xC05E +0x8331E130 0xC05F +0x8331E131 0xC060 +0x8331E132 0xC061 +0x8331E133 0xC062 +0x8331E134 0xC063 +0x8331E135 0xC064 +0x8331E136 0xC065 +0x8331E137 0xC066 +0x8331E138 0xC067 +0x8331E139 0xC068 +0x8331E230 0xC069 +0x8331E231 0xC06A +0x8331E232 0xC06B +0x8331E233 0xC06C +0x8331E234 0xC06D +0x8331E235 0xC06E +0x8331E236 0xC06F +0x8331E237 0xC070 +0x8331E238 0xC071 +0x8331E239 0xC072 +0x8331E330 0xC073 +0x8331E331 0xC074 +0x8331E332 0xC075 +0x8331E333 0xC076 +0x8331E334 0xC077 +0x8331E335 0xC078 +0x8331E336 0xC079 +0x8331E337 0xC07A +0x8331E338 0xC07B +0x8331E339 0xC07C +0x8331E430 0xC07D +0x8331E431 0xC07E +0x8331E432 0xC07F +0x8331E433 0xC080 +0x8331E434 0xC081 +0x8331E435 0xC082 +0x8331E436 0xC083 +0x8331E437 0xC084 +0x8331E438 0xC085 +0x8331E439 0xC086 +0x8331E530 0xC087 +0x8331E531 0xC088 +0x8331E532 0xC089 +0x8331E533 0xC08A +0x8331E534 0xC08B +0x8331E535 0xC08C +0x8331E536 0xC08D +0x8331E537 0xC08E +0x8331E538 0xC08F +0x8331E539 0xC090 +0x8331E630 0xC091 +0x8331E631 0xC092 +0x8331E632 0xC093 +0x8331E633 0xC094 +0x8331E634 0xC095 +0x8331E635 0xC096 +0x8331E636 0xC097 +0x8331E637 0xC098 +0x8331E638 0xC099 +0x8331E639 0xC09A +0x8331E730 0xC09B +0x8331E731 0xC09C +0x8331E732 0xC09D +0x8331E733 0xC09E +0x8331E734 0xC09F +0x8331E735 0xC0A0 +0x8331E736 0xC0A1 +0x8331E737 0xC0A2 +0x8331E738 0xC0A3 +0x8331E739 0xC0A4 +0x8331E830 0xC0A5 +0x8331E831 0xC0A6 +0x8331E832 0xC0A7 +0x8331E833 0xC0A8 +0x8331E834 0xC0A9 +0x8331E835 0xC0AA +0x8331E836 0xC0AB +0x8331E837 0xC0AC +0x8331E838 0xC0AD +0x8331E839 0xC0AE +0x8331E930 0xC0AF +0x8331E931 0xC0B0 +0x8331E932 0xC0B1 +0x8331E933 0xC0B2 +0x8331E934 0xC0B3 +0x8331E935 0xC0B4 +0x8331E936 0xC0B5 +0x8331E937 0xC0B6 +0x8331E938 0xC0B7 +0x8331E939 0xC0B8 +0x8331EA30 0xC0B9 +0x8331EA31 0xC0BA +0x8331EA32 0xC0BB +0x8331EA33 0xC0BC +0x8331EA34 0xC0BD +0x8331EA35 0xC0BE +0x8331EA36 0xC0BF +0x8331EA37 0xC0C0 +0x8331EA38 0xC0C1 +0x8331EA39 0xC0C2 +0x8331EB30 0xC0C3 +0x8331EB31 0xC0C4 +0x8331EB32 0xC0C5 +0x8331EB33 0xC0C6 +0x8331EB34 0xC0C7 +0x8331EB35 0xC0C8 +0x8331EB36 0xC0C9 +0x8331EB37 0xC0CA +0x8331EB38 0xC0CB +0x8331EB39 0xC0CC +0x8331EC30 0xC0CD +0x8331EC31 0xC0CE +0x8331EC32 0xC0CF +0x8331EC33 0xC0D0 +0x8331EC34 0xC0D1 +0x8331EC35 0xC0D2 +0x8331EC36 0xC0D3 +0x8331EC37 0xC0D4 +0x8331EC38 0xC0D5 +0x8331EC39 0xC0D6 +0x8331ED30 0xC0D7 +0x8331ED31 0xC0D8 +0x8331ED32 0xC0D9 +0x8331ED33 0xC0DA +0x8331ED34 0xC0DB +0x8331ED35 0xC0DC +0x8331ED36 0xC0DD +0x8331ED37 0xC0DE +0x8331ED38 0xC0DF +0x8331ED39 0xC0E0 +0x8331EE30 0xC0E1 +0x8331EE31 0xC0E2 +0x8331EE32 0xC0E3 +0x8331EE33 0xC0E4 +0x8331EE34 0xC0E5 +0x8331EE35 0xC0E6 +0x8331EE36 0xC0E7 +0x8331EE37 0xC0E8 +0x8331EE38 0xC0E9 +0x8331EE39 0xC0EA +0x8331EF30 0xC0EB +0x8331EF31 0xC0EC +0x8331EF32 0xC0ED +0x8331EF33 0xC0EE +0x8331EF34 0xC0EF +0x8331EF35 0xC0F0 +0x8331EF36 0xC0F1 +0x8331EF37 0xC0F2 +0x8331EF38 0xC0F3 +0x8331EF39 0xC0F4 +0x8331F030 0xC0F5 +0x8331F031 0xC0F6 +0x8331F032 0xC0F7 +0x8331F033 0xC0F8 +0x8331F034 0xC0F9 +0x8331F035 0xC0FA +0x8331F036 0xC0FB +0x8331F037 0xC0FC +0x8331F038 0xC0FD +0x8331F039 0xC0FE +0x8331F130 0xC0FF +0x8331F131 0xC100 +0x8331F132 0xC101 +0x8331F133 0xC102 +0x8331F134 0xC103 +0x8331F135 0xC104 +0x8331F136 0xC105 +0x8331F137 0xC106 +0x8331F138 0xC107 +0x8331F139 0xC108 +0x8331F230 0xC109 +0x8331F231 0xC10A +0x8331F232 0xC10B +0x8331F233 0xC10C +0x8331F234 0xC10D +0x8331F235 0xC10E +0x8331F236 0xC10F +0x8331F237 0xC110 +0x8331F238 0xC111 +0x8331F239 0xC112 +0x8331F330 0xC113 +0x8331F331 0xC114 +0x8331F332 0xC115 +0x8331F333 0xC116 +0x8331F334 0xC117 +0x8331F335 0xC118 +0x8331F336 0xC119 +0x8331F337 0xC11A +0x8331F338 0xC11B +0x8331F339 0xC11C +0x8331F430 0xC11D +0x8331F431 0xC11E +0x8331F432 0xC11F +0x8331F433 0xC120 +0x8331F434 0xC121 +0x8331F435 0xC122 +0x8331F436 0xC123 +0x8331F437 0xC124 +0x8331F438 0xC125 +0x8331F439 0xC126 +0x8331F530 0xC127 +0x8331F531 0xC128 +0x8331F532 0xC129 +0x8331F533 0xC12A +0x8331F534 0xC12B +0x8331F535 0xC12C +0x8331F536 0xC12D +0x8331F537 0xC12E +0x8331F538 0xC12F +0x8331F539 0xC130 +0x8331F630 0xC131 +0x8331F631 0xC132 +0x8331F632 0xC133 +0x8331F633 0xC134 +0x8331F634 0xC135 +0x8331F635 0xC136 +0x8331F636 0xC137 +0x8331F637 0xC138 +0x8331F638 0xC139 +0x8331F639 0xC13A +0x8331F730 0xC13B +0x8331F731 0xC13C +0x8331F732 0xC13D +0x8331F733 0xC13E +0x8331F734 0xC13F +0x8331F735 0xC140 +0x8331F736 0xC141 +0x8331F737 0xC142 +0x8331F738 0xC143 +0x8331F739 0xC144 +0x8331F830 0xC145 +0x8331F831 0xC146 +0x8331F832 0xC147 +0x8331F833 0xC148 +0x8331F834 0xC149 +0x8331F835 0xC14A +0x8331F836 0xC14B +0x8331F837 0xC14C +0x8331F838 0xC14D +0x8331F839 0xC14E +0x8331F930 0xC14F +0x8331F931 0xC150 +0x8331F932 0xC151 +0x8331F933 0xC152 +0x8331F934 0xC153 +0x8331F935 0xC154 +0x8331F936 0xC155 +0x8331F937 0xC156 +0x8331F938 0xC157 +0x8331F939 0xC158 +0x8331FA30 0xC159 +0x8331FA31 0xC15A +0x8331FA32 0xC15B +0x8331FA33 0xC15C +0x8331FA34 0xC15D +0x8331FA35 0xC15E +0x8331FA36 0xC15F +0x8331FA37 0xC160 +0x8331FA38 0xC161 +0x8331FA39 0xC162 +0x8331FB30 0xC163 +0x8331FB31 0xC164 +0x8331FB32 0xC165 +0x8331FB33 0xC166 +0x8331FB34 0xC167 +0x8331FB35 0xC168 +0x8331FB36 0xC169 +0x8331FB37 0xC16A +0x8331FB38 0xC16B +0x8331FB39 0xC16C +0x8331FC30 0xC16D +0x8331FC31 0xC16E +0x8331FC32 0xC16F +0x8331FC33 0xC170 +0x8331FC34 0xC171 +0x8331FC35 0xC172 +0x8331FC36 0xC173 +0x8331FC37 0xC174 +0x8331FC38 0xC175 +0x8331FC39 0xC176 +0x8331FD30 0xC177 +0x8331FD31 0xC178 +0x8331FD32 0xC179 +0x8331FD33 0xC17A +0x8331FD34 0xC17B +0x8331FD35 0xC17C +0x8331FD36 0xC17D +0x8331FD37 0xC17E +0x8331FD38 0xC17F +0x8331FD39 0xC180 +0x8331FE30 0xC181 +0x8331FE31 0xC182 +0x8331FE32 0xC183 +0x8331FE33 0xC184 +0x8331FE34 0xC185 +0x8331FE35 0xC186 +0x8331FE36 0xC187 +0x8331FE37 0xC188 +0x8331FE38 0xC189 +0x8331FE39 0xC18A +0x83328130 0xC18B +0x83328131 0xC18C +0x83328132 0xC18D +0x83328133 0xC18E +0x83328134 0xC18F +0x83328135 0xC190 +0x83328136 0xC191 +0x83328137 0xC192 +0x83328138 0xC193 +0x83328139 0xC194 +0x83328230 0xC195 +0x83328231 0xC196 +0x83328232 0xC197 +0x83328233 0xC198 +0x83328234 0xC199 +0x83328235 0xC19A +0x83328236 0xC19B +0x83328237 0xC19C +0x83328238 0xC19D +0x83328239 0xC19E +0x83328330 0xC19F +0x83328331 0xC1A0 +0x83328332 0xC1A1 +0x83328333 0xC1A2 +0x83328334 0xC1A3 +0x83328335 0xC1A4 +0x83328336 0xC1A5 +0x83328337 0xC1A6 +0x83328338 0xC1A7 +0x83328339 0xC1A8 +0x83328430 0xC1A9 +0x83328431 0xC1AA +0x83328432 0xC1AB +0x83328433 0xC1AC +0x83328434 0xC1AD +0x83328435 0xC1AE +0x83328436 0xC1AF +0x83328437 0xC1B0 +0x83328438 0xC1B1 +0x83328439 0xC1B2 +0x83328530 0xC1B3 +0x83328531 0xC1B4 +0x83328532 0xC1B5 +0x83328533 0xC1B6 +0x83328534 0xC1B7 +0x83328535 0xC1B8 +0x83328536 0xC1B9 +0x83328537 0xC1BA +0x83328538 0xC1BB +0x83328539 0xC1BC +0x83328630 0xC1BD +0x83328631 0xC1BE +0x83328632 0xC1BF +0x83328633 0xC1C0 +0x83328634 0xC1C1 +0x83328635 0xC1C2 +0x83328636 0xC1C3 +0x83328637 0xC1C4 +0x83328638 0xC1C5 +0x83328639 0xC1C6 +0x83328730 0xC1C7 +0x83328731 0xC1C8 +0x83328732 0xC1C9 +0x83328733 0xC1CA +0x83328734 0xC1CB +0x83328735 0xC1CC +0x83328736 0xC1CD +0x83328737 0xC1CE +0x83328738 0xC1CF +0x83328739 0xC1D0 +0x83328830 0xC1D1 +0x83328831 0xC1D2 +0x83328832 0xC1D3 +0x83328833 0xC1D4 +0x83328834 0xC1D5 +0x83328835 0xC1D6 +0x83328836 0xC1D7 +0x83328837 0xC1D8 +0x83328838 0xC1D9 +0x83328839 0xC1DA +0x83328930 0xC1DB +0x83328931 0xC1DC +0x83328932 0xC1DD +0x83328933 0xC1DE +0x83328934 0xC1DF +0x83328935 0xC1E0 +0x83328936 0xC1E1 +0x83328937 0xC1E2 +0x83328938 0xC1E3 +0x83328939 0xC1E4 +0x83328A30 0xC1E5 +0x83328A31 0xC1E6 +0x83328A32 0xC1E7 +0x83328A33 0xC1E8 +0x83328A34 0xC1E9 +0x83328A35 0xC1EA +0x83328A36 0xC1EB +0x83328A37 0xC1EC +0x83328A38 0xC1ED +0x83328A39 0xC1EE +0x83328B30 0xC1EF +0x83328B31 0xC1F0 +0x83328B32 0xC1F1 +0x83328B33 0xC1F2 +0x83328B34 0xC1F3 +0x83328B35 0xC1F4 +0x83328B36 0xC1F5 +0x83328B37 0xC1F6 +0x83328B38 0xC1F7 +0x83328B39 0xC1F8 +0x83328C30 0xC1F9 +0x83328C31 0xC1FA +0x83328C32 0xC1FB +0x83328C33 0xC1FC +0x83328C34 0xC1FD +0x83328C35 0xC1FE +0x83328C36 0xC1FF +0x83328C37 0xC200 +0x83328C38 0xC201 +0x83328C39 0xC202 +0x83328D30 0xC203 +0x83328D31 0xC204 +0x83328D32 0xC205 +0x83328D33 0xC206 +0x83328D34 0xC207 +0x83328D35 0xC208 +0x83328D36 0xC209 +0x83328D37 0xC20A +0x83328D38 0xC20B +0x83328D39 0xC20C +0x83328E30 0xC20D +0x83328E31 0xC20E +0x83328E32 0xC20F +0x83328E33 0xC210 +0x83328E34 0xC211 +0x83328E35 0xC212 +0x83328E36 0xC213 +0x83328E37 0xC214 +0x83328E38 0xC215 +0x83328E39 0xC216 +0x83328F30 0xC217 +0x83328F31 0xC218 +0x83328F32 0xC219 +0x83328F33 0xC21A +0x83328F34 0xC21B +0x83328F35 0xC21C +0x83328F36 0xC21D +0x83328F37 0xC21E +0x83328F38 0xC21F +0x83328F39 0xC220 +0x83329030 0xC221 +0x83329031 0xC222 +0x83329032 0xC223 +0x83329033 0xC224 +0x83329034 0xC225 +0x83329035 0xC226 +0x83329036 0xC227 +0x83329037 0xC228 +0x83329038 0xC229 +0x83329039 0xC22A +0x83329130 0xC22B +0x83329131 0xC22C +0x83329132 0xC22D +0x83329133 0xC22E +0x83329134 0xC22F +0x83329135 0xC230 +0x83329136 0xC231 +0x83329137 0xC232 +0x83329138 0xC233 +0x83329139 0xC234 +0x83329230 0xC235 +0x83329231 0xC236 +0x83329232 0xC237 +0x83329233 0xC238 +0x83329234 0xC239 +0x83329235 0xC23A +0x83329236 0xC23B +0x83329237 0xC23C +0x83329238 0xC23D +0x83329239 0xC23E +0x83329330 0xC23F +0x83329331 0xC240 +0x83329332 0xC241 +0x83329333 0xC242 +0x83329334 0xC243 +0x83329335 0xC244 +0x83329336 0xC245 +0x83329337 0xC246 +0x83329338 0xC247 +0x83329339 0xC248 +0x83329430 0xC249 +0x83329431 0xC24A +0x83329432 0xC24B +0x83329433 0xC24C +0x83329434 0xC24D +0x83329435 0xC24E +0x83329436 0xC24F +0x83329437 0xC250 +0x83329438 0xC251 +0x83329439 0xC252 +0x83329530 0xC253 +0x83329531 0xC254 +0x83329532 0xC255 +0x83329533 0xC256 +0x83329534 0xC257 +0x83329535 0xC258 +0x83329536 0xC259 +0x83329537 0xC25A +0x83329538 0xC25B +0x83329539 0xC25C +0x83329630 0xC25D +0x83329631 0xC25E +0x83329632 0xC25F +0x83329633 0xC260 +0x83329634 0xC261 +0x83329635 0xC262 +0x83329636 0xC263 +0x83329637 0xC264 +0x83329638 0xC265 +0x83329639 0xC266 +0x83329730 0xC267 +0x83329731 0xC268 +0x83329732 0xC269 +0x83329733 0xC26A +0x83329734 0xC26B +0x83329735 0xC26C +0x83329736 0xC26D +0x83329737 0xC26E +0x83329738 0xC26F +0x83329739 0xC270 +0x83329830 0xC271 +0x83329831 0xC272 +0x83329832 0xC273 +0x83329833 0xC274 +0x83329834 0xC275 +0x83329835 0xC276 +0x83329836 0xC277 +0x83329837 0xC278 +0x83329838 0xC279 +0x83329839 0xC27A +0x83329930 0xC27B +0x83329931 0xC27C +0x83329932 0xC27D +0x83329933 0xC27E +0x83329934 0xC27F +0x83329935 0xC280 +0x83329936 0xC281 +0x83329937 0xC282 +0x83329938 0xC283 +0x83329939 0xC284 +0x83329A30 0xC285 +0x83329A31 0xC286 +0x83329A32 0xC287 +0x83329A33 0xC288 +0x83329A34 0xC289 +0x83329A35 0xC28A +0x83329A36 0xC28B +0x83329A37 0xC28C +0x83329A38 0xC28D +0x83329A39 0xC28E +0x83329B30 0xC28F +0x83329B31 0xC290 +0x83329B32 0xC291 +0x83329B33 0xC292 +0x83329B34 0xC293 +0x83329B35 0xC294 +0x83329B36 0xC295 +0x83329B37 0xC296 +0x83329B38 0xC297 +0x83329B39 0xC298 +0x83329C30 0xC299 +0x83329C31 0xC29A +0x83329C32 0xC29B +0x83329C33 0xC29C +0x83329C34 0xC29D +0x83329C35 0xC29E +0x83329C36 0xC29F +0x83329C37 0xC2A0 +0x83329C38 0xC2A1 +0x83329C39 0xC2A2 +0x83329D30 0xC2A3 +0x83329D31 0xC2A4 +0x83329D32 0xC2A5 +0x83329D33 0xC2A6 +0x83329D34 0xC2A7 +0x83329D35 0xC2A8 +0x83329D36 0xC2A9 +0x83329D37 0xC2AA +0x83329D38 0xC2AB +0x83329D39 0xC2AC +0x83329E30 0xC2AD +0x83329E31 0xC2AE +0x83329E32 0xC2AF +0x83329E33 0xC2B0 +0x83329E34 0xC2B1 +0x83329E35 0xC2B2 +0x83329E36 0xC2B3 +0x83329E37 0xC2B4 +0x83329E38 0xC2B5 +0x83329E39 0xC2B6 +0x83329F30 0xC2B7 +0x83329F31 0xC2B8 +0x83329F32 0xC2B9 +0x83329F33 0xC2BA +0x83329F34 0xC2BB +0x83329F35 0xC2BC +0x83329F36 0xC2BD +0x83329F37 0xC2BE +0x83329F38 0xC2BF +0x83329F39 0xC2C0 +0x8332A030 0xC2C1 +0x8332A031 0xC2C2 +0x8332A032 0xC2C3 +0x8332A033 0xC2C4 +0x8332A034 0xC2C5 +0x8332A035 0xC2C6 +0x8332A036 0xC2C7 +0x8332A037 0xC2C8 +0x8332A038 0xC2C9 +0x8332A039 0xC2CA +0x8332A130 0xC2CB +0x8332A131 0xC2CC +0x8332A132 0xC2CD +0x8332A133 0xC2CE +0x8332A134 0xC2CF +0x8332A135 0xC2D0 +0x8332A136 0xC2D1 +0x8332A137 0xC2D2 +0x8332A138 0xC2D3 +0x8332A139 0xC2D4 +0x8332A230 0xC2D5 +0x8332A231 0xC2D6 +0x8332A232 0xC2D7 +0x8332A233 0xC2D8 +0x8332A234 0xC2D9 +0x8332A235 0xC2DA +0x8332A236 0xC2DB +0x8332A237 0xC2DC +0x8332A238 0xC2DD +0x8332A239 0xC2DE +0x8332A330 0xC2DF +0x8332A331 0xC2E0 +0x8332A332 0xC2E1 +0x8332A333 0xC2E2 +0x8332A334 0xC2E3 +0x8332A335 0xC2E4 +0x8332A336 0xC2E5 +0x8332A337 0xC2E6 +0x8332A338 0xC2E7 +0x8332A339 0xC2E8 +0x8332A430 0xC2E9 +0x8332A431 0xC2EA +0x8332A432 0xC2EB +0x8332A433 0xC2EC +0x8332A434 0xC2ED +0x8332A435 0xC2EE +0x8332A436 0xC2EF +0x8332A437 0xC2F0 +0x8332A438 0xC2F1 +0x8332A439 0xC2F2 +0x8332A530 0xC2F3 +0x8332A531 0xC2F4 +0x8332A532 0xC2F5 +0x8332A533 0xC2F6 +0x8332A534 0xC2F7 +0x8332A535 0xC2F8 +0x8332A536 0xC2F9 +0x8332A537 0xC2FA +0x8332A538 0xC2FB +0x8332A539 0xC2FC +0x8332A630 0xC2FD +0x8332A631 0xC2FE +0x8332A632 0xC2FF +0x8332A633 0xC300 +0x8332A634 0xC301 +0x8332A635 0xC302 +0x8332A636 0xC303 +0x8332A637 0xC304 +0x8332A638 0xC305 +0x8332A639 0xC306 +0x8332A730 0xC307 +0x8332A731 0xC308 +0x8332A732 0xC309 +0x8332A733 0xC30A +0x8332A734 0xC30B +0x8332A735 0xC30C +0x8332A736 0xC30D +0x8332A737 0xC30E +0x8332A738 0xC30F +0x8332A739 0xC310 +0x8332A830 0xC311 +0x8332A831 0xC312 +0x8332A832 0xC313 +0x8332A833 0xC314 +0x8332A834 0xC315 +0x8332A835 0xC316 +0x8332A836 0xC317 +0x8332A837 0xC318 +0x8332A838 0xC319 +0x8332A839 0xC31A +0x8332A930 0xC31B +0x8332A931 0xC31C +0x8332A932 0xC31D +0x8332A933 0xC31E +0x8332A934 0xC31F +0x8332A935 0xC320 +0x8332A936 0xC321 +0x8332A937 0xC322 +0x8332A938 0xC323 +0x8332A939 0xC324 +0x8332AA30 0xC325 +0x8332AA31 0xC326 +0x8332AA32 0xC327 +0x8332AA33 0xC328 +0x8332AA34 0xC329 +0x8332AA35 0xC32A +0x8332AA36 0xC32B +0x8332AA37 0xC32C +0x8332AA38 0xC32D +0x8332AA39 0xC32E +0x8332AB30 0xC32F +0x8332AB31 0xC330 +0x8332AB32 0xC331 +0x8332AB33 0xC332 +0x8332AB34 0xC333 +0x8332AB35 0xC334 +0x8332AB36 0xC335 +0x8332AB37 0xC336 +0x8332AB38 0xC337 +0x8332AB39 0xC338 +0x8332AC30 0xC339 +0x8332AC31 0xC33A +0x8332AC32 0xC33B +0x8332AC33 0xC33C +0x8332AC34 0xC33D +0x8332AC35 0xC33E +0x8332AC36 0xC33F +0x8332AC37 0xC340 +0x8332AC38 0xC341 +0x8332AC39 0xC342 +0x8332AD30 0xC343 +0x8332AD31 0xC344 +0x8332AD32 0xC345 +0x8332AD33 0xC346 +0x8332AD34 0xC347 +0x8332AD35 0xC348 +0x8332AD36 0xC349 +0x8332AD37 0xC34A +0x8332AD38 0xC34B +0x8332AD39 0xC34C +0x8332AE30 0xC34D +0x8332AE31 0xC34E +0x8332AE32 0xC34F +0x8332AE33 0xC350 +0x8332AE34 0xC351 +0x8332AE35 0xC352 +0x8332AE36 0xC353 +0x8332AE37 0xC354 +0x8332AE38 0xC355 +0x8332AE39 0xC356 +0x8332AF30 0xC357 +0x8332AF31 0xC358 +0x8332AF32 0xC359 +0x8332AF33 0xC35A +0x8332AF34 0xC35B +0x8332AF35 0xC35C +0x8332AF36 0xC35D +0x8332AF37 0xC35E +0x8332AF38 0xC35F +0x8332AF39 0xC360 +0x8332B030 0xC361 +0x8332B031 0xC362 +0x8332B032 0xC363 +0x8332B033 0xC364 +0x8332B034 0xC365 +0x8332B035 0xC366 +0x8332B036 0xC367 +0x8332B037 0xC368 +0x8332B038 0xC369 +0x8332B039 0xC36A +0x8332B130 0xC36B +0x8332B131 0xC36C +0x8332B132 0xC36D +0x8332B133 0xC36E +0x8332B134 0xC36F +0x8332B135 0xC370 +0x8332B136 0xC371 +0x8332B137 0xC372 +0x8332B138 0xC373 +0x8332B139 0xC374 +0x8332B230 0xC375 +0x8332B231 0xC376 +0x8332B232 0xC377 +0x8332B233 0xC378 +0x8332B234 0xC379 +0x8332B235 0xC37A +0x8332B236 0xC37B +0x8332B237 0xC37C +0x8332B238 0xC37D +0x8332B239 0xC37E +0x8332B330 0xC37F +0x8332B331 0xC380 +0x8332B332 0xC381 +0x8332B333 0xC382 +0x8332B334 0xC383 +0x8332B335 0xC384 +0x8332B336 0xC385 +0x8332B337 0xC386 +0x8332B338 0xC387 +0x8332B339 0xC388 +0x8332B430 0xC389 +0x8332B431 0xC38A +0x8332B432 0xC38B +0x8332B433 0xC38C +0x8332B434 0xC38D +0x8332B435 0xC38E +0x8332B436 0xC38F +0x8332B437 0xC390 +0x8332B438 0xC391 +0x8332B439 0xC392 +0x8332B530 0xC393 +0x8332B531 0xC394 +0x8332B532 0xC395 +0x8332B533 0xC396 +0x8332B534 0xC397 +0x8332B535 0xC398 +0x8332B536 0xC399 +0x8332B537 0xC39A +0x8332B538 0xC39B +0x8332B539 0xC39C +0x8332B630 0xC39D +0x8332B631 0xC39E +0x8332B632 0xC39F +0x8332B633 0xC3A0 +0x8332B634 0xC3A1 +0x8332B635 0xC3A2 +0x8332B636 0xC3A3 +0x8332B637 0xC3A4 +0x8332B638 0xC3A5 +0x8332B639 0xC3A6 +0x8332B730 0xC3A7 +0x8332B731 0xC3A8 +0x8332B732 0xC3A9 +0x8332B733 0xC3AA +0x8332B734 0xC3AB +0x8332B735 0xC3AC +0x8332B736 0xC3AD +0x8332B737 0xC3AE +0x8332B738 0xC3AF +0x8332B739 0xC3B0 +0x8332B830 0xC3B1 +0x8332B831 0xC3B2 +0x8332B832 0xC3B3 +0x8332B833 0xC3B4 +0x8332B834 0xC3B5 +0x8332B835 0xC3B6 +0x8332B836 0xC3B7 +0x8332B837 0xC3B8 +0x8332B838 0xC3B9 +0x8332B839 0xC3BA +0x8332B930 0xC3BB +0x8332B931 0xC3BC +0x8332B932 0xC3BD +0x8332B933 0xC3BE +0x8332B934 0xC3BF +0x8332B935 0xC3C0 +0x8332B936 0xC3C1 +0x8332B937 0xC3C2 +0x8332B938 0xC3C3 +0x8332B939 0xC3C4 +0x8332BA30 0xC3C5 +0x8332BA31 0xC3C6 +0x8332BA32 0xC3C7 +0x8332BA33 0xC3C8 +0x8332BA34 0xC3C9 +0x8332BA35 0xC3CA +0x8332BA36 0xC3CB +0x8332BA37 0xC3CC +0x8332BA38 0xC3CD +0x8332BA39 0xC3CE +0x8332BB30 0xC3CF +0x8332BB31 0xC3D0 +0x8332BB32 0xC3D1 +0x8332BB33 0xC3D2 +0x8332BB34 0xC3D3 +0x8332BB35 0xC3D4 +0x8332BB36 0xC3D5 +0x8332BB37 0xC3D6 +0x8332BB38 0xC3D7 +0x8332BB39 0xC3D8 +0x8332BC30 0xC3D9 +0x8332BC31 0xC3DA +0x8332BC32 0xC3DB +0x8332BC33 0xC3DC +0x8332BC34 0xC3DD +0x8332BC35 0xC3DE +0x8332BC36 0xC3DF +0x8332BC37 0xC3E0 +0x8332BC38 0xC3E1 +0x8332BC39 0xC3E2 +0x8332BD30 0xC3E3 +0x8332BD31 0xC3E4 +0x8332BD32 0xC3E5 +0x8332BD33 0xC3E6 +0x8332BD34 0xC3E7 +0x8332BD35 0xC3E8 +0x8332BD36 0xC3E9 +0x8332BD37 0xC3EA +0x8332BD38 0xC3EB +0x8332BD39 0xC3EC +0x8332BE30 0xC3ED +0x8332BE31 0xC3EE +0x8332BE32 0xC3EF +0x8332BE33 0xC3F0 +0x8332BE34 0xC3F1 +0x8332BE35 0xC3F2 +0x8332BE36 0xC3F3 +0x8332BE37 0xC3F4 +0x8332BE38 0xC3F5 +0x8332BE39 0xC3F6 +0x8332BF30 0xC3F7 +0x8332BF31 0xC3F8 +0x8332BF32 0xC3F9 +0x8332BF33 0xC3FA +0x8332BF34 0xC3FB +0x8332BF35 0xC3FC +0x8332BF36 0xC3FD +0x8332BF37 0xC3FE +0x8332BF38 0xC3FF +0x8332BF39 0xC400 +0x8332C030 0xC401 +0x8332C031 0xC402 +0x8332C032 0xC403 +0x8332C033 0xC404 +0x8332C034 0xC405 +0x8332C035 0xC406 +0x8332C036 0xC407 +0x8332C037 0xC408 +0x8332C038 0xC409 +0x8332C039 0xC40A +0x8332C130 0xC40B +0x8332C131 0xC40C +0x8332C132 0xC40D +0x8332C133 0xC40E +0x8332C134 0xC40F +0x8332C135 0xC410 +0x8332C136 0xC411 +0x8332C137 0xC412 +0x8332C138 0xC413 +0x8332C139 0xC414 +0x8332C230 0xC415 +0x8332C231 0xC416 +0x8332C232 0xC417 +0x8332C233 0xC418 +0x8332C234 0xC419 +0x8332C235 0xC41A +0x8332C236 0xC41B +0x8332C237 0xC41C +0x8332C238 0xC41D +0x8332C239 0xC41E +0x8332C330 0xC41F +0x8332C331 0xC420 +0x8332C332 0xC421 +0x8332C333 0xC422 +0x8332C334 0xC423 +0x8332C335 0xC424 +0x8332C336 0xC425 +0x8332C337 0xC426 +0x8332C338 0xC427 +0x8332C339 0xC428 +0x8332C430 0xC429 +0x8332C431 0xC42A +0x8332C432 0xC42B +0x8332C433 0xC42C +0x8332C434 0xC42D +0x8332C435 0xC42E +0x8332C436 0xC42F +0x8332C437 0xC430 +0x8332C438 0xC431 +0x8332C439 0xC432 +0x8332C530 0xC433 +0x8332C531 0xC434 +0x8332C532 0xC435 +0x8332C533 0xC436 +0x8332C534 0xC437 +0x8332C535 0xC438 +0x8332C536 0xC439 +0x8332C537 0xC43A +0x8332C538 0xC43B +0x8332C539 0xC43C +0x8332C630 0xC43D +0x8332C631 0xC43E +0x8332C632 0xC43F +0x8332C633 0xC440 +0x8332C634 0xC441 +0x8332C635 0xC442 +0x8332C636 0xC443 +0x8332C637 0xC444 +0x8332C638 0xC445 +0x8332C639 0xC446 +0x8332C730 0xC447 +0x8332C731 0xC448 +0x8332C732 0xC449 +0x8332C733 0xC44A +0x8332C734 0xC44B +0x8332C735 0xC44C +0x8332C736 0xC44D +0x8332C737 0xC44E +0x8332C738 0xC44F +0x8332C739 0xC450 +0x8332C830 0xC451 +0x8332C831 0xC452 +0x8332C832 0xC453 +0x8332C833 0xC454 +0x8332C834 0xC455 +0x8332C835 0xC456 +0x8332C836 0xC457 +0x8332C837 0xC458 +0x8332C838 0xC459 +0x8332C839 0xC45A +0x8332C930 0xC45B +0x8332C931 0xC45C +0x8332C932 0xC45D +0x8332C933 0xC45E +0x8332C934 0xC45F +0x8332C935 0xC460 +0x8332C936 0xC461 +0x8332C937 0xC462 +0x8332C938 0xC463 +0x8332C939 0xC464 +0x8332CA30 0xC465 +0x8332CA31 0xC466 +0x8332CA32 0xC467 +0x8332CA33 0xC468 +0x8332CA34 0xC469 +0x8332CA35 0xC46A +0x8332CA36 0xC46B +0x8332CA37 0xC46C +0x8332CA38 0xC46D +0x8332CA39 0xC46E +0x8332CB30 0xC46F +0x8332CB31 0xC470 +0x8332CB32 0xC471 +0x8332CB33 0xC472 +0x8332CB34 0xC473 +0x8332CB35 0xC474 +0x8332CB36 0xC475 +0x8332CB37 0xC476 +0x8332CB38 0xC477 +0x8332CB39 0xC478 +0x8332CC30 0xC479 +0x8332CC31 0xC47A +0x8332CC32 0xC47B +0x8332CC33 0xC47C +0x8332CC34 0xC47D +0x8332CC35 0xC47E +0x8332CC36 0xC47F +0x8332CC37 0xC480 +0x8332CC38 0xC481 +0x8332CC39 0xC482 +0x8332CD30 0xC483 +0x8332CD31 0xC484 +0x8332CD32 0xC485 +0x8332CD33 0xC486 +0x8332CD34 0xC487 +0x8332CD35 0xC488 +0x8332CD36 0xC489 +0x8332CD37 0xC48A +0x8332CD38 0xC48B +0x8332CD39 0xC48C +0x8332CE30 0xC48D +0x8332CE31 0xC48E +0x8332CE32 0xC48F +0x8332CE33 0xC490 +0x8332CE34 0xC491 +0x8332CE35 0xC492 +0x8332CE36 0xC493 +0x8332CE37 0xC494 +0x8332CE38 0xC495 +0x8332CE39 0xC496 +0x8332CF30 0xC497 +0x8332CF31 0xC498 +0x8332CF32 0xC499 +0x8332CF33 0xC49A +0x8332CF34 0xC49B +0x8332CF35 0xC49C +0x8332CF36 0xC49D +0x8332CF37 0xC49E +0x8332CF38 0xC49F +0x8332CF39 0xC4A0 +0x8332D030 0xC4A1 +0x8332D031 0xC4A2 +0x8332D032 0xC4A3 +0x8332D033 0xC4A4 +0x8332D034 0xC4A5 +0x8332D035 0xC4A6 +0x8332D036 0xC4A7 +0x8332D037 0xC4A8 +0x8332D038 0xC4A9 +0x8332D039 0xC4AA +0x8332D130 0xC4AB +0x8332D131 0xC4AC +0x8332D132 0xC4AD +0x8332D133 0xC4AE +0x8332D134 0xC4AF +0x8332D135 0xC4B0 +0x8332D136 0xC4B1 +0x8332D137 0xC4B2 +0x8332D138 0xC4B3 +0x8332D139 0xC4B4 +0x8332D230 0xC4B5 +0x8332D231 0xC4B6 +0x8332D232 0xC4B7 +0x8332D233 0xC4B8 +0x8332D234 0xC4B9 +0x8332D235 0xC4BA +0x8332D236 0xC4BB +0x8332D237 0xC4BC +0x8332D238 0xC4BD +0x8332D239 0xC4BE +0x8332D330 0xC4BF +0x8332D331 0xC4C0 +0x8332D332 0xC4C1 +0x8332D333 0xC4C2 +0x8332D334 0xC4C3 +0x8332D335 0xC4C4 +0x8332D336 0xC4C5 +0x8332D337 0xC4C6 +0x8332D338 0xC4C7 +0x8332D339 0xC4C8 +0x8332D430 0xC4C9 +0x8332D431 0xC4CA +0x8332D432 0xC4CB +0x8332D433 0xC4CC +0x8332D434 0xC4CD +0x8332D435 0xC4CE +0x8332D436 0xC4CF +0x8332D437 0xC4D0 +0x8332D438 0xC4D1 +0x8332D439 0xC4D2 +0x8332D530 0xC4D3 +0x8332D531 0xC4D4 +0x8332D532 0xC4D5 +0x8332D533 0xC4D6 +0x8332D534 0xC4D7 +0x8332D535 0xC4D8 +0x8332D536 0xC4D9 +0x8332D537 0xC4DA +0x8332D538 0xC4DB +0x8332D539 0xC4DC +0x8332D630 0xC4DD +0x8332D631 0xC4DE +0x8332D632 0xC4DF +0x8332D633 0xC4E0 +0x8332D634 0xC4E1 +0x8332D635 0xC4E2 +0x8332D636 0xC4E3 +0x8332D637 0xC4E4 +0x8332D638 0xC4E5 +0x8332D639 0xC4E6 +0x8332D730 0xC4E7 +0x8332D731 0xC4E8 +0x8332D732 0xC4E9 +0x8332D733 0xC4EA +0x8332D734 0xC4EB +0x8332D735 0xC4EC +0x8332D736 0xC4ED +0x8332D737 0xC4EE +0x8332D738 0xC4EF +0x8332D739 0xC4F0 +0x8332D830 0xC4F1 +0x8332D831 0xC4F2 +0x8332D832 0xC4F3 +0x8332D833 0xC4F4 +0x8332D834 0xC4F5 +0x8332D835 0xC4F6 +0x8332D836 0xC4F7 +0x8332D837 0xC4F8 +0x8332D838 0xC4F9 +0x8332D839 0xC4FA +0x8332D930 0xC4FB +0x8332D931 0xC4FC +0x8332D932 0xC4FD +0x8332D933 0xC4FE +0x8332D934 0xC4FF +0x8332D935 0xC500 +0x8332D936 0xC501 +0x8332D937 0xC502 +0x8332D938 0xC503 +0x8332D939 0xC504 +0x8332DA30 0xC505 +0x8332DA31 0xC506 +0x8332DA32 0xC507 +0x8332DA33 0xC508 +0x8332DA34 0xC509 +0x8332DA35 0xC50A +0x8332DA36 0xC50B +0x8332DA37 0xC50C +0x8332DA38 0xC50D +0x8332DA39 0xC50E +0x8332DB30 0xC50F +0x8332DB31 0xC510 +0x8332DB32 0xC511 +0x8332DB33 0xC512 +0x8332DB34 0xC513 +0x8332DB35 0xC514 +0x8332DB36 0xC515 +0x8332DB37 0xC516 +0x8332DB38 0xC517 +0x8332DB39 0xC518 +0x8332DC30 0xC519 +0x8332DC31 0xC51A +0x8332DC32 0xC51B +0x8332DC33 0xC51C +0x8332DC34 0xC51D +0x8332DC35 0xC51E +0x8332DC36 0xC51F +0x8332DC37 0xC520 +0x8332DC38 0xC521 +0x8332DC39 0xC522 +0x8332DD30 0xC523 +0x8332DD31 0xC524 +0x8332DD32 0xC525 +0x8332DD33 0xC526 +0x8332DD34 0xC527 +0x8332DD35 0xC528 +0x8332DD36 0xC529 +0x8332DD37 0xC52A +0x8332DD38 0xC52B +0x8332DD39 0xC52C +0x8332DE30 0xC52D +0x8332DE31 0xC52E +0x8332DE32 0xC52F +0x8332DE33 0xC530 +0x8332DE34 0xC531 +0x8332DE35 0xC532 +0x8332DE36 0xC533 +0x8332DE37 0xC534 +0x8332DE38 0xC535 +0x8332DE39 0xC536 +0x8332DF30 0xC537 +0x8332DF31 0xC538 +0x8332DF32 0xC539 +0x8332DF33 0xC53A +0x8332DF34 0xC53B +0x8332DF35 0xC53C +0x8332DF36 0xC53D +0x8332DF37 0xC53E +0x8332DF38 0xC53F +0x8332DF39 0xC540 +0x8332E030 0xC541 +0x8332E031 0xC542 +0x8332E032 0xC543 +0x8332E033 0xC544 +0x8332E034 0xC545 +0x8332E035 0xC546 +0x8332E036 0xC547 +0x8332E037 0xC548 +0x8332E038 0xC549 +0x8332E039 0xC54A +0x8332E130 0xC54B +0x8332E131 0xC54C +0x8332E132 0xC54D +0x8332E133 0xC54E +0x8332E134 0xC54F +0x8332E135 0xC550 +0x8332E136 0xC551 +0x8332E137 0xC552 +0x8332E138 0xC553 +0x8332E139 0xC554 +0x8332E230 0xC555 +0x8332E231 0xC556 +0x8332E232 0xC557 +0x8332E233 0xC558 +0x8332E234 0xC559 +0x8332E235 0xC55A +0x8332E236 0xC55B +0x8332E237 0xC55C +0x8332E238 0xC55D +0x8332E239 0xC55E +0x8332E330 0xC55F +0x8332E331 0xC560 +0x8332E332 0xC561 +0x8332E333 0xC562 +0x8332E334 0xC563 +0x8332E335 0xC564 +0x8332E336 0xC565 +0x8332E337 0xC566 +0x8332E338 0xC567 +0x8332E339 0xC568 +0x8332E430 0xC569 +0x8332E431 0xC56A +0x8332E432 0xC56B +0x8332E433 0xC56C +0x8332E434 0xC56D +0x8332E435 0xC56E +0x8332E436 0xC56F +0x8332E437 0xC570 +0x8332E438 0xC571 +0x8332E439 0xC572 +0x8332E530 0xC573 +0x8332E531 0xC574 +0x8332E532 0xC575 +0x8332E533 0xC576 +0x8332E534 0xC577 +0x8332E535 0xC578 +0x8332E536 0xC579 +0x8332E537 0xC57A +0x8332E538 0xC57B +0x8332E539 0xC57C +0x8332E630 0xC57D +0x8332E631 0xC57E +0x8332E632 0xC57F +0x8332E633 0xC580 +0x8332E634 0xC581 +0x8332E635 0xC582 +0x8332E636 0xC583 +0x8332E637 0xC584 +0x8332E638 0xC585 +0x8332E639 0xC586 +0x8332E730 0xC587 +0x8332E731 0xC588 +0x8332E732 0xC589 +0x8332E733 0xC58A +0x8332E734 0xC58B +0x8332E735 0xC58C +0x8332E736 0xC58D +0x8332E737 0xC58E +0x8332E738 0xC58F +0x8332E739 0xC590 +0x8332E830 0xC591 +0x8332E831 0xC592 +0x8332E832 0xC593 +0x8332E833 0xC594 +0x8332E834 0xC595 +0x8332E835 0xC596 +0x8332E836 0xC597 +0x8332E837 0xC598 +0x8332E838 0xC599 +0x8332E839 0xC59A +0x8332E930 0xC59B +0x8332E931 0xC59C +0x8332E932 0xC59D +0x8332E933 0xC59E +0x8332E934 0xC59F +0x8332E935 0xC5A0 +0x8332E936 0xC5A1 +0x8332E937 0xC5A2 +0x8332E938 0xC5A3 +0x8332E939 0xC5A4 +0x8332EA30 0xC5A5 +0x8332EA31 0xC5A6 +0x8332EA32 0xC5A7 +0x8332EA33 0xC5A8 +0x8332EA34 0xC5A9 +0x8332EA35 0xC5AA +0x8332EA36 0xC5AB +0x8332EA37 0xC5AC +0x8332EA38 0xC5AD +0x8332EA39 0xC5AE +0x8332EB30 0xC5AF +0x8332EB31 0xC5B0 +0x8332EB32 0xC5B1 +0x8332EB33 0xC5B2 +0x8332EB34 0xC5B3 +0x8332EB35 0xC5B4 +0x8332EB36 0xC5B5 +0x8332EB37 0xC5B6 +0x8332EB38 0xC5B7 +0x8332EB39 0xC5B8 +0x8332EC30 0xC5B9 +0x8332EC31 0xC5BA +0x8332EC32 0xC5BB +0x8332EC33 0xC5BC +0x8332EC34 0xC5BD +0x8332EC35 0xC5BE +0x8332EC36 0xC5BF +0x8332EC37 0xC5C0 +0x8332EC38 0xC5C1 +0x8332EC39 0xC5C2 +0x8332ED30 0xC5C3 +0x8332ED31 0xC5C4 +0x8332ED32 0xC5C5 +0x8332ED33 0xC5C6 +0x8332ED34 0xC5C7 +0x8332ED35 0xC5C8 +0x8332ED36 0xC5C9 +0x8332ED37 0xC5CA +0x8332ED38 0xC5CB +0x8332ED39 0xC5CC +0x8332EE30 0xC5CD +0x8332EE31 0xC5CE +0x8332EE32 0xC5CF +0x8332EE33 0xC5D0 +0x8332EE34 0xC5D1 +0x8332EE35 0xC5D2 +0x8332EE36 0xC5D3 +0x8332EE37 0xC5D4 +0x8332EE38 0xC5D5 +0x8332EE39 0xC5D6 +0x8332EF30 0xC5D7 +0x8332EF31 0xC5D8 +0x8332EF32 0xC5D9 +0x8332EF33 0xC5DA +0x8332EF34 0xC5DB +0x8332EF35 0xC5DC +0x8332EF36 0xC5DD +0x8332EF37 0xC5DE +0x8332EF38 0xC5DF +0x8332EF39 0xC5E0 +0x8332F030 0xC5E1 +0x8332F031 0xC5E2 +0x8332F032 0xC5E3 +0x8332F033 0xC5E4 +0x8332F034 0xC5E5 +0x8332F035 0xC5E6 +0x8332F036 0xC5E7 +0x8332F037 0xC5E8 +0x8332F038 0xC5E9 +0x8332F039 0xC5EA +0x8332F130 0xC5EB +0x8332F131 0xC5EC +0x8332F132 0xC5ED +0x8332F133 0xC5EE +0x8332F134 0xC5EF +0x8332F135 0xC5F0 +0x8332F136 0xC5F1 +0x8332F137 0xC5F2 +0x8332F138 0xC5F3 +0x8332F139 0xC5F4 +0x8332F230 0xC5F5 +0x8332F231 0xC5F6 +0x8332F232 0xC5F7 +0x8332F233 0xC5F8 +0x8332F234 0xC5F9 +0x8332F235 0xC5FA +0x8332F236 0xC5FB +0x8332F237 0xC5FC +0x8332F238 0xC5FD +0x8332F239 0xC5FE +0x8332F330 0xC5FF +0x8332F331 0xC600 +0x8332F332 0xC601 +0x8332F333 0xC602 +0x8332F334 0xC603 +0x8332F335 0xC604 +0x8332F336 0xC605 +0x8332F337 0xC606 +0x8332F338 0xC607 +0x8332F339 0xC608 +0x8332F430 0xC609 +0x8332F431 0xC60A +0x8332F432 0xC60B +0x8332F433 0xC60C +0x8332F434 0xC60D +0x8332F435 0xC60E +0x8332F436 0xC60F +0x8332F437 0xC610 +0x8332F438 0xC611 +0x8332F439 0xC612 +0x8332F530 0xC613 +0x8332F531 0xC614 +0x8332F532 0xC615 +0x8332F533 0xC616 +0x8332F534 0xC617 +0x8332F535 0xC618 +0x8332F536 0xC619 +0x8332F537 0xC61A +0x8332F538 0xC61B +0x8332F539 0xC61C +0x8332F630 0xC61D +0x8332F631 0xC61E +0x8332F632 0xC61F +0x8332F633 0xC620 +0x8332F634 0xC621 +0x8332F635 0xC622 +0x8332F636 0xC623 +0x8332F637 0xC624 +0x8332F638 0xC625 +0x8332F639 0xC626 +0x8332F730 0xC627 +0x8332F731 0xC628 +0x8332F732 0xC629 +0x8332F733 0xC62A +0x8332F734 0xC62B +0x8332F735 0xC62C +0x8332F736 0xC62D +0x8332F737 0xC62E +0x8332F738 0xC62F +0x8332F739 0xC630 +0x8332F830 0xC631 +0x8332F831 0xC632 +0x8332F832 0xC633 +0x8332F833 0xC634 +0x8332F834 0xC635 +0x8332F835 0xC636 +0x8332F836 0xC637 +0x8332F837 0xC638 +0x8332F838 0xC639 +0x8332F839 0xC63A +0x8332F930 0xC63B +0x8332F931 0xC63C +0x8332F932 0xC63D +0x8332F933 0xC63E +0x8332F934 0xC63F +0x8332F935 0xC640 +0x8332F936 0xC641 +0x8332F937 0xC642 +0x8332F938 0xC643 +0x8332F939 0xC644 +0x8332FA30 0xC645 +0x8332FA31 0xC646 +0x8332FA32 0xC647 +0x8332FA33 0xC648 +0x8332FA34 0xC649 +0x8332FA35 0xC64A +0x8332FA36 0xC64B +0x8332FA37 0xC64C +0x8332FA38 0xC64D +0x8332FA39 0xC64E +0x8332FB30 0xC64F +0x8332FB31 0xC650 +0x8332FB32 0xC651 +0x8332FB33 0xC652 +0x8332FB34 0xC653 +0x8332FB35 0xC654 +0x8332FB36 0xC655 +0x8332FB37 0xC656 +0x8332FB38 0xC657 +0x8332FB39 0xC658 +0x8332FC30 0xC659 +0x8332FC31 0xC65A +0x8332FC32 0xC65B +0x8332FC33 0xC65C +0x8332FC34 0xC65D +0x8332FC35 0xC65E +0x8332FC36 0xC65F +0x8332FC37 0xC660 +0x8332FC38 0xC661 +0x8332FC39 0xC662 +0x8332FD30 0xC663 +0x8332FD31 0xC664 +0x8332FD32 0xC665 +0x8332FD33 0xC666 +0x8332FD34 0xC667 +0x8332FD35 0xC668 +0x8332FD36 0xC669 +0x8332FD37 0xC66A +0x8332FD38 0xC66B +0x8332FD39 0xC66C +0x8332FE30 0xC66D +0x8332FE31 0xC66E +0x8332FE32 0xC66F +0x8332FE33 0xC670 +0x8332FE34 0xC671 +0x8332FE35 0xC672 +0x8332FE36 0xC673 +0x8332FE37 0xC674 +0x8332FE38 0xC675 +0x8332FE39 0xC676 +0x83338130 0xC677 +0x83338131 0xC678 +0x83338132 0xC679 +0x83338133 0xC67A +0x83338134 0xC67B +0x83338135 0xC67C +0x83338136 0xC67D +0x83338137 0xC67E +0x83338138 0xC67F +0x83338139 0xC680 +0x83338230 0xC681 +0x83338231 0xC682 +0x83338232 0xC683 +0x83338233 0xC684 +0x83338234 0xC685 +0x83338235 0xC686 +0x83338236 0xC687 +0x83338237 0xC688 +0x83338238 0xC689 +0x83338239 0xC68A +0x83338330 0xC68B +0x83338331 0xC68C +0x83338332 0xC68D +0x83338333 0xC68E +0x83338334 0xC68F +0x83338335 0xC690 +0x83338336 0xC691 +0x83338337 0xC692 +0x83338338 0xC693 +0x83338339 0xC694 +0x83338430 0xC695 +0x83338431 0xC696 +0x83338432 0xC697 +0x83338433 0xC698 +0x83338434 0xC699 +0x83338435 0xC69A +0x83338436 0xC69B +0x83338437 0xC69C +0x83338438 0xC69D +0x83338439 0xC69E +0x83338530 0xC69F +0x83338531 0xC6A0 +0x83338532 0xC6A1 +0x83338533 0xC6A2 +0x83338534 0xC6A3 +0x83338535 0xC6A4 +0x83338536 0xC6A5 +0x83338537 0xC6A6 +0x83338538 0xC6A7 +0x83338539 0xC6A8 +0x83338630 0xC6A9 +0x83338631 0xC6AA +0x83338632 0xC6AB +0x83338633 0xC6AC +0x83338634 0xC6AD +0x83338635 0xC6AE +0x83338636 0xC6AF +0x83338637 0xC6B0 +0x83338638 0xC6B1 +0x83338639 0xC6B2 +0x83338730 0xC6B3 +0x83338731 0xC6B4 +0x83338732 0xC6B5 +0x83338733 0xC6B6 +0x83338734 0xC6B7 +0x83338735 0xC6B8 +0x83338736 0xC6B9 +0x83338737 0xC6BA +0x83338738 0xC6BB +0x83338739 0xC6BC +0x83338830 0xC6BD +0x83338831 0xC6BE +0x83338832 0xC6BF +0x83338833 0xC6C0 +0x83338834 0xC6C1 +0x83338835 0xC6C2 +0x83338836 0xC6C3 +0x83338837 0xC6C4 +0x83338838 0xC6C5 +0x83338839 0xC6C6 +0x83338930 0xC6C7 +0x83338931 0xC6C8 +0x83338932 0xC6C9 +0x83338933 0xC6CA +0x83338934 0xC6CB +0x83338935 0xC6CC +0x83338936 0xC6CD +0x83338937 0xC6CE +0x83338938 0xC6CF +0x83338939 0xC6D0 +0x83338A30 0xC6D1 +0x83338A31 0xC6D2 +0x83338A32 0xC6D3 +0x83338A33 0xC6D4 +0x83338A34 0xC6D5 +0x83338A35 0xC6D6 +0x83338A36 0xC6D7 +0x83338A37 0xC6D8 +0x83338A38 0xC6D9 +0x83338A39 0xC6DA +0x83338B30 0xC6DB +0x83338B31 0xC6DC +0x83338B32 0xC6DD +0x83338B33 0xC6DE +0x83338B34 0xC6DF +0x83338B35 0xC6E0 +0x83338B36 0xC6E1 +0x83338B37 0xC6E2 +0x83338B38 0xC6E3 +0x83338B39 0xC6E4 +0x83338C30 0xC6E5 +0x83338C31 0xC6E6 +0x83338C32 0xC6E7 +0x83338C33 0xC6E8 +0x83338C34 0xC6E9 +0x83338C35 0xC6EA +0x83338C36 0xC6EB +0x83338C37 0xC6EC +0x83338C38 0xC6ED +0x83338C39 0xC6EE +0x83338D30 0xC6EF +0x83338D31 0xC6F0 +0x83338D32 0xC6F1 +0x83338D33 0xC6F2 +0x83338D34 0xC6F3 +0x83338D35 0xC6F4 +0x83338D36 0xC6F5 +0x83338D37 0xC6F6 +0x83338D38 0xC6F7 +0x83338D39 0xC6F8 +0x83338E30 0xC6F9 +0x83338E31 0xC6FA +0x83338E32 0xC6FB +0x83338E33 0xC6FC +0x83338E34 0xC6FD +0x83338E35 0xC6FE +0x83338E36 0xC6FF +0x83338E37 0xC700 +0x83338E38 0xC701 +0x83338E39 0xC702 +0x83338F30 0xC703 +0x83338F31 0xC704 +0x83338F32 0xC705 +0x83338F33 0xC706 +0x83338F34 0xC707 +0x83338F35 0xC708 +0x83338F36 0xC709 +0x83338F37 0xC70A +0x83338F38 0xC70B +0x83338F39 0xC70C +0x83339030 0xC70D +0x83339031 0xC70E +0x83339032 0xC70F +0x83339033 0xC710 +0x83339034 0xC711 +0x83339035 0xC712 +0x83339036 0xC713 +0x83339037 0xC714 +0x83339038 0xC715 +0x83339039 0xC716 +0x83339130 0xC717 +0x83339131 0xC718 +0x83339132 0xC719 +0x83339133 0xC71A +0x83339134 0xC71B +0x83339135 0xC71C +0x83339136 0xC71D +0x83339137 0xC71E +0x83339138 0xC71F +0x83339139 0xC720 +0x83339230 0xC721 +0x83339231 0xC722 +0x83339232 0xC723 +0x83339233 0xC724 +0x83339234 0xC725 +0x83339235 0xC726 +0x83339236 0xC727 +0x83339237 0xC728 +0x83339238 0xC729 +0x83339239 0xC72A +0x83339330 0xC72B +0x83339331 0xC72C +0x83339332 0xC72D +0x83339333 0xC72E +0x83339334 0xC72F +0x83339335 0xC730 +0x83339336 0xC731 +0x83339337 0xC732 +0x83339338 0xC733 +0x83339339 0xC734 +0x83339430 0xC735 +0x83339431 0xC736 +0x83339432 0xC737 +0x83339433 0xC738 +0x83339434 0xC739 +0x83339435 0xC73A +0x83339436 0xC73B +0x83339437 0xC73C +0x83339438 0xC73D +0x83339439 0xC73E +0x83339530 0xC73F +0x83339531 0xC740 +0x83339532 0xC741 +0x83339533 0xC742 +0x83339534 0xC743 +0x83339535 0xC744 +0x83339536 0xC745 +0x83339537 0xC746 +0x83339538 0xC747 +0x83339539 0xC748 +0x83339630 0xC749 +0x83339631 0xC74A +0x83339632 0xC74B +0x83339633 0xC74C +0x83339634 0xC74D +0x83339635 0xC74E +0x83339636 0xC74F +0x83339637 0xC750 +0x83339638 0xC751 +0x83339639 0xC752 +0x83339730 0xC753 +0x83339731 0xC754 +0x83339732 0xC755 +0x83339733 0xC756 +0x83339734 0xC757 +0x83339735 0xC758 +0x83339736 0xC759 +0x83339737 0xC75A +0x83339738 0xC75B +0x83339739 0xC75C +0x83339830 0xC75D +0x83339831 0xC75E +0x83339832 0xC75F +0x83339833 0xC760 +0x83339834 0xC761 +0x83339835 0xC762 +0x83339836 0xC763 +0x83339837 0xC764 +0x83339838 0xC765 +0x83339839 0xC766 +0x83339930 0xC767 +0x83339931 0xC768 +0x83339932 0xC769 +0x83339933 0xC76A +0x83339934 0xC76B +0x83339935 0xC76C +0x83339936 0xC76D +0x83339937 0xC76E +0x83339938 0xC76F +0x83339939 0xC770 +0x83339A30 0xC771 +0x83339A31 0xC772 +0x83339A32 0xC773 +0x83339A33 0xC774 +0x83339A34 0xC775 +0x83339A35 0xC776 +0x83339A36 0xC777 +0x83339A37 0xC778 +0x83339A38 0xC779 +0x83339A39 0xC77A +0x83339B30 0xC77B +0x83339B31 0xC77C +0x83339B32 0xC77D +0x83339B33 0xC77E +0x83339B34 0xC77F +0x83339B35 0xC780 +0x83339B36 0xC781 +0x83339B37 0xC782 +0x83339B38 0xC783 +0x83339B39 0xC784 +0x83339C30 0xC785 +0x83339C31 0xC786 +0x83339C32 0xC787 +0x83339C33 0xC788 +0x83339C34 0xC789 +0x83339C35 0xC78A +0x83339C36 0xC78B +0x83339C37 0xC78C +0x83339C38 0xC78D +0x83339C39 0xC78E +0x83339D30 0xC78F +0x83339D31 0xC790 +0x83339D32 0xC791 +0x83339D33 0xC792 +0x83339D34 0xC793 +0x83339D35 0xC794 +0x83339D36 0xC795 +0x83339D37 0xC796 +0x83339D38 0xC797 +0x83339D39 0xC798 +0x83339E30 0xC799 +0x83339E31 0xC79A +0x83339E32 0xC79B +0x83339E33 0xC79C +0x83339E34 0xC79D +0x83339E35 0xC79E +0x83339E36 0xC79F +0x83339E37 0xC7A0 +0x83339E38 0xC7A1 +0x83339E39 0xC7A2 +0x83339F30 0xC7A3 +0x83339F31 0xC7A4 +0x83339F32 0xC7A5 +0x83339F33 0xC7A6 +0x83339F34 0xC7A7 +0x83339F35 0xC7A8 +0x83339F36 0xC7A9 +0x83339F37 0xC7AA +0x83339F38 0xC7AB +0x83339F39 0xC7AC +0x8333A030 0xC7AD +0x8333A031 0xC7AE +0x8333A032 0xC7AF +0x8333A033 0xC7B0 +0x8333A034 0xC7B1 +0x8333A035 0xC7B2 +0x8333A036 0xC7B3 +0x8333A037 0xC7B4 +0x8333A038 0xC7B5 +0x8333A039 0xC7B6 +0x8333A130 0xC7B7 +0x8333A131 0xC7B8 +0x8333A132 0xC7B9 +0x8333A133 0xC7BA +0x8333A134 0xC7BB +0x8333A135 0xC7BC +0x8333A136 0xC7BD +0x8333A137 0xC7BE +0x8333A138 0xC7BF +0x8333A139 0xC7C0 +0x8333A230 0xC7C1 +0x8333A231 0xC7C2 +0x8333A232 0xC7C3 +0x8333A233 0xC7C4 +0x8333A234 0xC7C5 +0x8333A235 0xC7C6 +0x8333A236 0xC7C7 +0x8333A237 0xC7C8 +0x8333A238 0xC7C9 +0x8333A239 0xC7CA +0x8333A330 0xC7CB +0x8333A331 0xC7CC +0x8333A332 0xC7CD +0x8333A333 0xC7CE +0x8333A334 0xC7CF +0x8333A335 0xC7D0 +0x8333A336 0xC7D1 +0x8333A337 0xC7D2 +0x8333A338 0xC7D3 +0x8333A339 0xC7D4 +0x8333A430 0xC7D5 +0x8333A431 0xC7D6 +0x8333A432 0xC7D7 +0x8333A433 0xC7D8 +0x8333A434 0xC7D9 +0x8333A435 0xC7DA +0x8333A436 0xC7DB +0x8333A437 0xC7DC +0x8333A438 0xC7DD +0x8333A439 0xC7DE +0x8333A530 0xC7DF +0x8333A531 0xC7E0 +0x8333A532 0xC7E1 +0x8333A533 0xC7E2 +0x8333A534 0xC7E3 +0x8333A535 0xC7E4 +0x8333A536 0xC7E5 +0x8333A537 0xC7E6 +0x8333A538 0xC7E7 +0x8333A539 0xC7E8 +0x8333A630 0xC7E9 +0x8333A631 0xC7EA +0x8333A632 0xC7EB +0x8333A633 0xC7EC +0x8333A634 0xC7ED +0x8333A635 0xC7EE +0x8333A636 0xC7EF +0x8333A637 0xC7F0 +0x8333A638 0xC7F1 +0x8333A639 0xC7F2 +0x8333A730 0xC7F3 +0x8333A731 0xC7F4 +0x8333A732 0xC7F5 +0x8333A733 0xC7F6 +0x8333A734 0xC7F7 +0x8333A735 0xC7F8 +0x8333A736 0xC7F9 +0x8333A737 0xC7FA +0x8333A738 0xC7FB +0x8333A739 0xC7FC +0x8333A830 0xC7FD +0x8333A831 0xC7FE +0x8333A832 0xC7FF +0x8333A833 0xC800 +0x8333A834 0xC801 +0x8333A835 0xC802 +0x8333A836 0xC803 +0x8333A837 0xC804 +0x8333A838 0xC805 +0x8333A839 0xC806 +0x8333A930 0xC807 +0x8333A931 0xC808 +0x8333A932 0xC809 +0x8333A933 0xC80A +0x8333A934 0xC80B +0x8333A935 0xC80C +0x8333A936 0xC80D +0x8333A937 0xC80E +0x8333A938 0xC80F +0x8333A939 0xC810 +0x8333AA30 0xC811 +0x8333AA31 0xC812 +0x8333AA32 0xC813 +0x8333AA33 0xC814 +0x8333AA34 0xC815 +0x8333AA35 0xC816 +0x8333AA36 0xC817 +0x8333AA37 0xC818 +0x8333AA38 0xC819 +0x8333AA39 0xC81A +0x8333AB30 0xC81B +0x8333AB31 0xC81C +0x8333AB32 0xC81D +0x8333AB33 0xC81E +0x8333AB34 0xC81F +0x8333AB35 0xC820 +0x8333AB36 0xC821 +0x8333AB37 0xC822 +0x8333AB38 0xC823 +0x8333AB39 0xC824 +0x8333AC30 0xC825 +0x8333AC31 0xC826 +0x8333AC32 0xC827 +0x8333AC33 0xC828 +0x8333AC34 0xC829 +0x8333AC35 0xC82A +0x8333AC36 0xC82B +0x8333AC37 0xC82C +0x8333AC38 0xC82D +0x8333AC39 0xC82E +0x8333AD30 0xC82F +0x8333AD31 0xC830 +0x8333AD32 0xC831 +0x8333AD33 0xC832 +0x8333AD34 0xC833 +0x8333AD35 0xC834 +0x8333AD36 0xC835 +0x8333AD37 0xC836 +0x8333AD38 0xC837 +0x8333AD39 0xC838 +0x8333AE30 0xC839 +0x8333AE31 0xC83A +0x8333AE32 0xC83B +0x8333AE33 0xC83C +0x8333AE34 0xC83D +0x8333AE35 0xC83E +0x8333AE36 0xC83F +0x8333AE37 0xC840 +0x8333AE38 0xC841 +0x8333AE39 0xC842 +0x8333AF30 0xC843 +0x8333AF31 0xC844 +0x8333AF32 0xC845 +0x8333AF33 0xC846 +0x8333AF34 0xC847 +0x8333AF35 0xC848 +0x8333AF36 0xC849 +0x8333AF37 0xC84A +0x8333AF38 0xC84B +0x8333AF39 0xC84C +0x8333B030 0xC84D +0x8333B031 0xC84E +0x8333B032 0xC84F +0x8333B033 0xC850 +0x8333B034 0xC851 +0x8333B035 0xC852 +0x8333B036 0xC853 +0x8333B037 0xC854 +0x8333B038 0xC855 +0x8333B039 0xC856 +0x8333B130 0xC857 +0x8333B131 0xC858 +0x8333B132 0xC859 +0x8333B133 0xC85A +0x8333B134 0xC85B +0x8333B135 0xC85C +0x8333B136 0xC85D +0x8333B137 0xC85E +0x8333B138 0xC85F +0x8333B139 0xC860 +0x8333B230 0xC861 +0x8333B231 0xC862 +0x8333B232 0xC863 +0x8333B233 0xC864 +0x8333B234 0xC865 +0x8333B235 0xC866 +0x8333B236 0xC867 +0x8333B237 0xC868 +0x8333B238 0xC869 +0x8333B239 0xC86A +0x8333B330 0xC86B +0x8333B331 0xC86C +0x8333B332 0xC86D +0x8333B333 0xC86E +0x8333B334 0xC86F +0x8333B335 0xC870 +0x8333B336 0xC871 +0x8333B337 0xC872 +0x8333B338 0xC873 +0x8333B339 0xC874 +0x8333B430 0xC875 +0x8333B431 0xC876 +0x8333B432 0xC877 +0x8333B433 0xC878 +0x8333B434 0xC879 +0x8333B435 0xC87A +0x8333B436 0xC87B +0x8333B437 0xC87C +0x8333B438 0xC87D +0x8333B439 0xC87E +0x8333B530 0xC87F +0x8333B531 0xC880 +0x8333B532 0xC881 +0x8333B533 0xC882 +0x8333B534 0xC883 +0x8333B535 0xC884 +0x8333B536 0xC885 +0x8333B537 0xC886 +0x8333B538 0xC887 +0x8333B539 0xC888 +0x8333B630 0xC889 +0x8333B631 0xC88A +0x8333B632 0xC88B +0x8333B633 0xC88C +0x8333B634 0xC88D +0x8333B635 0xC88E +0x8333B636 0xC88F +0x8333B637 0xC890 +0x8333B638 0xC891 +0x8333B639 0xC892 +0x8333B730 0xC893 +0x8333B731 0xC894 +0x8333B732 0xC895 +0x8333B733 0xC896 +0x8333B734 0xC897 +0x8333B735 0xC898 +0x8333B736 0xC899 +0x8333B737 0xC89A +0x8333B738 0xC89B +0x8333B739 0xC89C +0x8333B830 0xC89D +0x8333B831 0xC89E +0x8333B832 0xC89F +0x8333B833 0xC8A0 +0x8333B834 0xC8A1 +0x8333B835 0xC8A2 +0x8333B836 0xC8A3 +0x8333B837 0xC8A4 +0x8333B838 0xC8A5 +0x8333B839 0xC8A6 +0x8333B930 0xC8A7 +0x8333B931 0xC8A8 +0x8333B932 0xC8A9 +0x8333B933 0xC8AA +0x8333B934 0xC8AB +0x8333B935 0xC8AC +0x8333B936 0xC8AD +0x8333B937 0xC8AE +0x8333B938 0xC8AF +0x8333B939 0xC8B0 +0x8333BA30 0xC8B1 +0x8333BA31 0xC8B2 +0x8333BA32 0xC8B3 +0x8333BA33 0xC8B4 +0x8333BA34 0xC8B5 +0x8333BA35 0xC8B6 +0x8333BA36 0xC8B7 +0x8333BA37 0xC8B8 +0x8333BA38 0xC8B9 +0x8333BA39 0xC8BA +0x8333BB30 0xC8BB +0x8333BB31 0xC8BC +0x8333BB32 0xC8BD +0x8333BB33 0xC8BE +0x8333BB34 0xC8BF +0x8333BB35 0xC8C0 +0x8333BB36 0xC8C1 +0x8333BB37 0xC8C2 +0x8333BB38 0xC8C3 +0x8333BB39 0xC8C4 +0x8333BC30 0xC8C5 +0x8333BC31 0xC8C6 +0x8333BC32 0xC8C7 +0x8333BC33 0xC8C8 +0x8333BC34 0xC8C9 +0x8333BC35 0xC8CA +0x8333BC36 0xC8CB +0x8333BC37 0xC8CC +0x8333BC38 0xC8CD +0x8333BC39 0xC8CE +0x8333BD30 0xC8CF +0x8333BD31 0xC8D0 +0x8333BD32 0xC8D1 +0x8333BD33 0xC8D2 +0x8333BD34 0xC8D3 +0x8333BD35 0xC8D4 +0x8333BD36 0xC8D5 +0x8333BD37 0xC8D6 +0x8333BD38 0xC8D7 +0x8333BD39 0xC8D8 +0x8333BE30 0xC8D9 +0x8333BE31 0xC8DA +0x8333BE32 0xC8DB +0x8333BE33 0xC8DC +0x8333BE34 0xC8DD +0x8333BE35 0xC8DE +0x8333BE36 0xC8DF +0x8333BE37 0xC8E0 +0x8333BE38 0xC8E1 +0x8333BE39 0xC8E2 +0x8333BF30 0xC8E3 +0x8333BF31 0xC8E4 +0x8333BF32 0xC8E5 +0x8333BF33 0xC8E6 +0x8333BF34 0xC8E7 +0x8333BF35 0xC8E8 +0x8333BF36 0xC8E9 +0x8333BF37 0xC8EA +0x8333BF38 0xC8EB +0x8333BF39 0xC8EC +0x8333C030 0xC8ED +0x8333C031 0xC8EE +0x8333C032 0xC8EF +0x8333C033 0xC8F0 +0x8333C034 0xC8F1 +0x8333C035 0xC8F2 +0x8333C036 0xC8F3 +0x8333C037 0xC8F4 +0x8333C038 0xC8F5 +0x8333C039 0xC8F6 +0x8333C130 0xC8F7 +0x8333C131 0xC8F8 +0x8333C132 0xC8F9 +0x8333C133 0xC8FA +0x8333C134 0xC8FB +0x8333C135 0xC8FC +0x8333C136 0xC8FD +0x8333C137 0xC8FE +0x8333C138 0xC8FF +0x8333C139 0xC900 +0x8333C230 0xC901 +0x8333C231 0xC902 +0x8333C232 0xC903 +0x8333C233 0xC904 +0x8333C234 0xC905 +0x8333C235 0xC906 +0x8333C236 0xC907 +0x8333C237 0xC908 +0x8333C238 0xC909 +0x8333C239 0xC90A +0x8333C330 0xC90B +0x8333C331 0xC90C +0x8333C332 0xC90D +0x8333C333 0xC90E +0x8333C334 0xC90F +0x8333C335 0xC910 +0x8333C336 0xC911 +0x8333C337 0xC912 +0x8333C338 0xC913 +0x8333C339 0xC914 +0x8333C430 0xC915 +0x8333C431 0xC916 +0x8333C432 0xC917 +0x8333C433 0xC918 +0x8333C434 0xC919 +0x8333C435 0xC91A +0x8333C436 0xC91B +0x8333C437 0xC91C +0x8333C438 0xC91D +0x8333C439 0xC91E +0x8333C530 0xC91F +0x8333C531 0xC920 +0x8333C532 0xC921 +0x8333C533 0xC922 +0x8333C534 0xC923 +0x8333C535 0xC924 +0x8333C536 0xC925 +0x8333C537 0xC926 +0x8333C538 0xC927 +0x8333C539 0xC928 +0x8333C630 0xC929 +0x8333C631 0xC92A +0x8333C632 0xC92B +0x8333C633 0xC92C +0x8333C634 0xC92D +0x8333C635 0xC92E +0x8333C636 0xC92F +0x8333C637 0xC930 +0x8333C638 0xC931 +0x8333C639 0xC932 +0x8333C730 0xC933 +0x8333C731 0xC934 +0x8333C732 0xC935 +0x8333C733 0xC936 +0x8333C734 0xC937 +0x8333C735 0xC938 +0x8333C736 0xC939 +0x8333C737 0xC93A +0x8333C738 0xC93B +0x8333C739 0xC93C +0x8333C830 0xC93D +0x8333C831 0xC93E +0x8333C832 0xC93F +0x8333C833 0xC940 +0x8333C834 0xC941 +0x8333C835 0xC942 +0x8333C836 0xC943 +0x8333C837 0xC944 +0x8333C838 0xC945 +0x8333C839 0xC946 +0x8333C930 0xC947 +0x8333C931 0xC948 +0x8333C932 0xC949 +0x8333C933 0xC94A +0x8333C934 0xC94B +0x8333C935 0xC94C +0x8333C936 0xC94D +0x8333C937 0xC94E +0x8333C938 0xC94F +0x8333C939 0xC950 +0x8333CA30 0xC951 +0x8333CA31 0xC952 +0x8333CA32 0xC953 +0x8333CA33 0xC954 +0x8333CA34 0xC955 +0x8333CA35 0xC956 +0x8333CA36 0xC957 +0x8333CA37 0xC958 +0x8333CA38 0xC959 +0x8333CA39 0xC95A +0x8333CB30 0xC95B +0x8333CB31 0xC95C +0x8333CB32 0xC95D +0x8333CB33 0xC95E +0x8333CB34 0xC95F +0x8333CB35 0xC960 +0x8333CB36 0xC961 +0x8333CB37 0xC962 +0x8333CB38 0xC963 +0x8333CB39 0xC964 +0x8333CC30 0xC965 +0x8333CC31 0xC966 +0x8333CC32 0xC967 +0x8333CC33 0xC968 +0x8333CC34 0xC969 +0x8333CC35 0xC96A +0x8333CC36 0xC96B +0x8333CC37 0xC96C +0x8333CC38 0xC96D +0x8333CC39 0xC96E +0x8333CD30 0xC96F +0x8333CD31 0xC970 +0x8333CD32 0xC971 +0x8333CD33 0xC972 +0x8333CD34 0xC973 +0x8333CD35 0xC974 +0x8333CD36 0xC975 +0x8333CD37 0xC976 +0x8333CD38 0xC977 +0x8333CD39 0xC978 +0x8333CE30 0xC979 +0x8333CE31 0xC97A +0x8333CE32 0xC97B +0x8333CE33 0xC97C +0x8333CE34 0xC97D +0x8333CE35 0xC97E +0x8333CE36 0xC97F +0x8333CE37 0xC980 +0x8333CE38 0xC981 +0x8333CE39 0xC982 +0x8333CF30 0xC983 +0x8333CF31 0xC984 +0x8333CF32 0xC985 +0x8333CF33 0xC986 +0x8333CF34 0xC987 +0x8333CF35 0xC988 +0x8333CF36 0xC989 +0x8333CF37 0xC98A +0x8333CF38 0xC98B +0x8333CF39 0xC98C +0x8333D030 0xC98D +0x8333D031 0xC98E +0x8333D032 0xC98F +0x8333D033 0xC990 +0x8333D034 0xC991 +0x8333D035 0xC992 +0x8333D036 0xC993 +0x8333D037 0xC994 +0x8333D038 0xC995 +0x8333D039 0xC996 +0x8333D130 0xC997 +0x8333D131 0xC998 +0x8333D132 0xC999 +0x8333D133 0xC99A +0x8333D134 0xC99B +0x8333D135 0xC99C +0x8333D136 0xC99D +0x8333D137 0xC99E +0x8333D138 0xC99F +0x8333D139 0xC9A0 +0x8333D230 0xC9A1 +0x8333D231 0xC9A2 +0x8333D232 0xC9A3 +0x8333D233 0xC9A4 +0x8333D234 0xC9A5 +0x8333D235 0xC9A6 +0x8333D236 0xC9A7 +0x8333D237 0xC9A8 +0x8333D238 0xC9A9 +0x8333D239 0xC9AA +0x8333D330 0xC9AB +0x8333D331 0xC9AC +0x8333D332 0xC9AD +0x8333D333 0xC9AE +0x8333D334 0xC9AF +0x8333D335 0xC9B0 +0x8333D336 0xC9B1 +0x8333D337 0xC9B2 +0x8333D338 0xC9B3 +0x8333D339 0xC9B4 +0x8333D430 0xC9B5 +0x8333D431 0xC9B6 +0x8333D432 0xC9B7 +0x8333D433 0xC9B8 +0x8333D434 0xC9B9 +0x8333D435 0xC9BA +0x8333D436 0xC9BB +0x8333D437 0xC9BC +0x8333D438 0xC9BD +0x8333D439 0xC9BE +0x8333D530 0xC9BF +0x8333D531 0xC9C0 +0x8333D532 0xC9C1 +0x8333D533 0xC9C2 +0x8333D534 0xC9C3 +0x8333D535 0xC9C4 +0x8333D536 0xC9C5 +0x8333D537 0xC9C6 +0x8333D538 0xC9C7 +0x8333D539 0xC9C8 +0x8333D630 0xC9C9 +0x8333D631 0xC9CA +0x8333D632 0xC9CB +0x8333D633 0xC9CC +0x8333D634 0xC9CD +0x8333D635 0xC9CE +0x8333D636 0xC9CF +0x8333D637 0xC9D0 +0x8333D638 0xC9D1 +0x8333D639 0xC9D2 +0x8333D730 0xC9D3 +0x8333D731 0xC9D4 +0x8333D732 0xC9D5 +0x8333D733 0xC9D6 +0x8333D734 0xC9D7 +0x8333D735 0xC9D8 +0x8333D736 0xC9D9 +0x8333D737 0xC9DA +0x8333D738 0xC9DB +0x8333D739 0xC9DC +0x8333D830 0xC9DD +0x8333D831 0xC9DE +0x8333D832 0xC9DF +0x8333D833 0xC9E0 +0x8333D834 0xC9E1 +0x8333D835 0xC9E2 +0x8333D836 0xC9E3 +0x8333D837 0xC9E4 +0x8333D838 0xC9E5 +0x8333D839 0xC9E6 +0x8333D930 0xC9E7 +0x8333D931 0xC9E8 +0x8333D932 0xC9E9 +0x8333D933 0xC9EA +0x8333D934 0xC9EB +0x8333D935 0xC9EC +0x8333D936 0xC9ED +0x8333D937 0xC9EE +0x8333D938 0xC9EF +0x8333D939 0xC9F0 +0x8333DA30 0xC9F1 +0x8333DA31 0xC9F2 +0x8333DA32 0xC9F3 +0x8333DA33 0xC9F4 +0x8333DA34 0xC9F5 +0x8333DA35 0xC9F6 +0x8333DA36 0xC9F7 +0x8333DA37 0xC9F8 +0x8333DA38 0xC9F9 +0x8333DA39 0xC9FA +0x8333DB30 0xC9FB +0x8333DB31 0xC9FC +0x8333DB32 0xC9FD +0x8333DB33 0xC9FE +0x8333DB34 0xC9FF +0x8333DB35 0xCA00 +0x8333DB36 0xCA01 +0x8333DB37 0xCA02 +0x8333DB38 0xCA03 +0x8333DB39 0xCA04 +0x8333DC30 0xCA05 +0x8333DC31 0xCA06 +0x8333DC32 0xCA07 +0x8333DC33 0xCA08 +0x8333DC34 0xCA09 +0x8333DC35 0xCA0A +0x8333DC36 0xCA0B +0x8333DC37 0xCA0C +0x8333DC38 0xCA0D +0x8333DC39 0xCA0E +0x8333DD30 0xCA0F +0x8333DD31 0xCA10 +0x8333DD32 0xCA11 +0x8333DD33 0xCA12 +0x8333DD34 0xCA13 +0x8333DD35 0xCA14 +0x8333DD36 0xCA15 +0x8333DD37 0xCA16 +0x8333DD38 0xCA17 +0x8333DD39 0xCA18 +0x8333DE30 0xCA19 +0x8333DE31 0xCA1A +0x8333DE32 0xCA1B +0x8333DE33 0xCA1C +0x8333DE34 0xCA1D +0x8333DE35 0xCA1E +0x8333DE36 0xCA1F +0x8333DE37 0xCA20 +0x8333DE38 0xCA21 +0x8333DE39 0xCA22 +0x8333DF30 0xCA23 +0x8333DF31 0xCA24 +0x8333DF32 0xCA25 +0x8333DF33 0xCA26 +0x8333DF34 0xCA27 +0x8333DF35 0xCA28 +0x8333DF36 0xCA29 +0x8333DF37 0xCA2A +0x8333DF38 0xCA2B +0x8333DF39 0xCA2C +0x8333E030 0xCA2D +0x8333E031 0xCA2E +0x8333E032 0xCA2F +0x8333E033 0xCA30 +0x8333E034 0xCA31 +0x8333E035 0xCA32 +0x8333E036 0xCA33 +0x8333E037 0xCA34 +0x8333E038 0xCA35 +0x8333E039 0xCA36 +0x8333E130 0xCA37 +0x8333E131 0xCA38 +0x8333E132 0xCA39 +0x8333E133 0xCA3A +0x8333E134 0xCA3B +0x8333E135 0xCA3C +0x8333E136 0xCA3D +0x8333E137 0xCA3E +0x8333E138 0xCA3F +0x8333E139 0xCA40 +0x8333E230 0xCA41 +0x8333E231 0xCA42 +0x8333E232 0xCA43 +0x8333E233 0xCA44 +0x8333E234 0xCA45 +0x8333E235 0xCA46 +0x8333E236 0xCA47 +0x8333E237 0xCA48 +0x8333E238 0xCA49 +0x8333E239 0xCA4A +0x8333E330 0xCA4B +0x8333E331 0xCA4C +0x8333E332 0xCA4D +0x8333E333 0xCA4E +0x8333E334 0xCA4F +0x8333E335 0xCA50 +0x8333E336 0xCA51 +0x8333E337 0xCA52 +0x8333E338 0xCA53 +0x8333E339 0xCA54 +0x8333E430 0xCA55 +0x8333E431 0xCA56 +0x8333E432 0xCA57 +0x8333E433 0xCA58 +0x8333E434 0xCA59 +0x8333E435 0xCA5A +0x8333E436 0xCA5B +0x8333E437 0xCA5C +0x8333E438 0xCA5D +0x8333E439 0xCA5E +0x8333E530 0xCA5F +0x8333E531 0xCA60 +0x8333E532 0xCA61 +0x8333E533 0xCA62 +0x8333E534 0xCA63 +0x8333E535 0xCA64 +0x8333E536 0xCA65 +0x8333E537 0xCA66 +0x8333E538 0xCA67 +0x8333E539 0xCA68 +0x8333E630 0xCA69 +0x8333E631 0xCA6A +0x8333E632 0xCA6B +0x8333E633 0xCA6C +0x8333E634 0xCA6D +0x8333E635 0xCA6E +0x8333E636 0xCA6F +0x8333E637 0xCA70 +0x8333E638 0xCA71 +0x8333E639 0xCA72 +0x8333E730 0xCA73 +0x8333E731 0xCA74 +0x8333E732 0xCA75 +0x8333E733 0xCA76 +0x8333E734 0xCA77 +0x8333E735 0xCA78 +0x8333E736 0xCA79 +0x8333E737 0xCA7A +0x8333E738 0xCA7B +0x8333E739 0xCA7C +0x8333E830 0xCA7D +0x8333E831 0xCA7E +0x8333E832 0xCA7F +0x8333E833 0xCA80 +0x8333E834 0xCA81 +0x8333E835 0xCA82 +0x8333E836 0xCA83 +0x8333E837 0xCA84 +0x8333E838 0xCA85 +0x8333E839 0xCA86 +0x8333E930 0xCA87 +0x8333E931 0xCA88 +0x8333E932 0xCA89 +0x8333E933 0xCA8A +0x8333E934 0xCA8B +0x8333E935 0xCA8C +0x8333E936 0xCA8D +0x8333E937 0xCA8E +0x8333E938 0xCA8F +0x8333E939 0xCA90 +0x8333EA30 0xCA91 +0x8333EA31 0xCA92 +0x8333EA32 0xCA93 +0x8333EA33 0xCA94 +0x8333EA34 0xCA95 +0x8333EA35 0xCA96 +0x8333EA36 0xCA97 +0x8333EA37 0xCA98 +0x8333EA38 0xCA99 +0x8333EA39 0xCA9A +0x8333EB30 0xCA9B +0x8333EB31 0xCA9C +0x8333EB32 0xCA9D +0x8333EB33 0xCA9E +0x8333EB34 0xCA9F +0x8333EB35 0xCAA0 +0x8333EB36 0xCAA1 +0x8333EB37 0xCAA2 +0x8333EB38 0xCAA3 +0x8333EB39 0xCAA4 +0x8333EC30 0xCAA5 +0x8333EC31 0xCAA6 +0x8333EC32 0xCAA7 +0x8333EC33 0xCAA8 +0x8333EC34 0xCAA9 +0x8333EC35 0xCAAA +0x8333EC36 0xCAAB +0x8333EC37 0xCAAC +0x8333EC38 0xCAAD +0x8333EC39 0xCAAE +0x8333ED30 0xCAAF +0x8333ED31 0xCAB0 +0x8333ED32 0xCAB1 +0x8333ED33 0xCAB2 +0x8333ED34 0xCAB3 +0x8333ED35 0xCAB4 +0x8333ED36 0xCAB5 +0x8333ED37 0xCAB6 +0x8333ED38 0xCAB7 +0x8333ED39 0xCAB8 +0x8333EE30 0xCAB9 +0x8333EE31 0xCABA +0x8333EE32 0xCABB +0x8333EE33 0xCABC +0x8333EE34 0xCABD +0x8333EE35 0xCABE +0x8333EE36 0xCABF +0x8333EE37 0xCAC0 +0x8333EE38 0xCAC1 +0x8333EE39 0xCAC2 +0x8333EF30 0xCAC3 +0x8333EF31 0xCAC4 +0x8333EF32 0xCAC5 +0x8333EF33 0xCAC6 +0x8333EF34 0xCAC7 +0x8333EF35 0xCAC8 +0x8333EF36 0xCAC9 +0x8333EF37 0xCACA +0x8333EF38 0xCACB +0x8333EF39 0xCACC +0x8333F030 0xCACD +0x8333F031 0xCACE +0x8333F032 0xCACF +0x8333F033 0xCAD0 +0x8333F034 0xCAD1 +0x8333F035 0xCAD2 +0x8333F036 0xCAD3 +0x8333F037 0xCAD4 +0x8333F038 0xCAD5 +0x8333F039 0xCAD6 +0x8333F130 0xCAD7 +0x8333F131 0xCAD8 +0x8333F132 0xCAD9 +0x8333F133 0xCADA +0x8333F134 0xCADB +0x8333F135 0xCADC +0x8333F136 0xCADD +0x8333F137 0xCADE +0x8333F138 0xCADF +0x8333F139 0xCAE0 +0x8333F230 0xCAE1 +0x8333F231 0xCAE2 +0x8333F232 0xCAE3 +0x8333F233 0xCAE4 +0x8333F234 0xCAE5 +0x8333F235 0xCAE6 +0x8333F236 0xCAE7 +0x8333F237 0xCAE8 +0x8333F238 0xCAE9 +0x8333F239 0xCAEA +0x8333F330 0xCAEB +0x8333F331 0xCAEC +0x8333F332 0xCAED +0x8333F333 0xCAEE +0x8333F334 0xCAEF +0x8333F335 0xCAF0 +0x8333F336 0xCAF1 +0x8333F337 0xCAF2 +0x8333F338 0xCAF3 +0x8333F339 0xCAF4 +0x8333F430 0xCAF5 +0x8333F431 0xCAF6 +0x8333F432 0xCAF7 +0x8333F433 0xCAF8 +0x8333F434 0xCAF9 +0x8333F435 0xCAFA +0x8333F436 0xCAFB +0x8333F437 0xCAFC +0x8333F438 0xCAFD +0x8333F439 0xCAFE +0x8333F530 0xCAFF +0x8333F531 0xCB00 +0x8333F532 0xCB01 +0x8333F533 0xCB02 +0x8333F534 0xCB03 +0x8333F535 0xCB04 +0x8333F536 0xCB05 +0x8333F537 0xCB06 +0x8333F538 0xCB07 +0x8333F539 0xCB08 +0x8333F630 0xCB09 +0x8333F631 0xCB0A +0x8333F632 0xCB0B +0x8333F633 0xCB0C +0x8333F634 0xCB0D +0x8333F635 0xCB0E +0x8333F636 0xCB0F +0x8333F637 0xCB10 +0x8333F638 0xCB11 +0x8333F639 0xCB12 +0x8333F730 0xCB13 +0x8333F731 0xCB14 +0x8333F732 0xCB15 +0x8333F733 0xCB16 +0x8333F734 0xCB17 +0x8333F735 0xCB18 +0x8333F736 0xCB19 +0x8333F737 0xCB1A +0x8333F738 0xCB1B +0x8333F739 0xCB1C +0x8333F830 0xCB1D +0x8333F831 0xCB1E +0x8333F832 0xCB1F +0x8333F833 0xCB20 +0x8333F834 0xCB21 +0x8333F835 0xCB22 +0x8333F836 0xCB23 +0x8333F837 0xCB24 +0x8333F838 0xCB25 +0x8333F839 0xCB26 +0x8333F930 0xCB27 +0x8333F931 0xCB28 +0x8333F932 0xCB29 +0x8333F933 0xCB2A +0x8333F934 0xCB2B +0x8333F935 0xCB2C +0x8333F936 0xCB2D +0x8333F937 0xCB2E +0x8333F938 0xCB2F +0x8333F939 0xCB30 +0x8333FA30 0xCB31 +0x8333FA31 0xCB32 +0x8333FA32 0xCB33 +0x8333FA33 0xCB34 +0x8333FA34 0xCB35 +0x8333FA35 0xCB36 +0x8333FA36 0xCB37 +0x8333FA37 0xCB38 +0x8333FA38 0xCB39 +0x8333FA39 0xCB3A +0x8333FB30 0xCB3B +0x8333FB31 0xCB3C +0x8333FB32 0xCB3D +0x8333FB33 0xCB3E +0x8333FB34 0xCB3F +0x8333FB35 0xCB40 +0x8333FB36 0xCB41 +0x8333FB37 0xCB42 +0x8333FB38 0xCB43 +0x8333FB39 0xCB44 +0x8333FC30 0xCB45 +0x8333FC31 0xCB46 +0x8333FC32 0xCB47 +0x8333FC33 0xCB48 +0x8333FC34 0xCB49 +0x8333FC35 0xCB4A +0x8333FC36 0xCB4B +0x8333FC37 0xCB4C +0x8333FC38 0xCB4D +0x8333FC39 0xCB4E +0x8333FD30 0xCB4F +0x8333FD31 0xCB50 +0x8333FD32 0xCB51 +0x8333FD33 0xCB52 +0x8333FD34 0xCB53 +0x8333FD35 0xCB54 +0x8333FD36 0xCB55 +0x8333FD37 0xCB56 +0x8333FD38 0xCB57 +0x8333FD39 0xCB58 +0x8333FE30 0xCB59 +0x8333FE31 0xCB5A +0x8333FE32 0xCB5B +0x8333FE33 0xCB5C +0x8333FE34 0xCB5D +0x8333FE35 0xCB5E +0x8333FE36 0xCB5F +0x8333FE37 0xCB60 +0x8333FE38 0xCB61 +0x8333FE39 0xCB62 +0x83348130 0xCB63 +0x83348131 0xCB64 +0x83348132 0xCB65 +0x83348133 0xCB66 +0x83348134 0xCB67 +0x83348135 0xCB68 +0x83348136 0xCB69 +0x83348137 0xCB6A +0x83348138 0xCB6B +0x83348139 0xCB6C +0x83348230 0xCB6D +0x83348231 0xCB6E +0x83348232 0xCB6F +0x83348233 0xCB70 +0x83348234 0xCB71 +0x83348235 0xCB72 +0x83348236 0xCB73 +0x83348237 0xCB74 +0x83348238 0xCB75 +0x83348239 0xCB76 +0x83348330 0xCB77 +0x83348331 0xCB78 +0x83348332 0xCB79 +0x83348333 0xCB7A +0x83348334 0xCB7B +0x83348335 0xCB7C +0x83348336 0xCB7D +0x83348337 0xCB7E +0x83348338 0xCB7F +0x83348339 0xCB80 +0x83348430 0xCB81 +0x83348431 0xCB82 +0x83348432 0xCB83 +0x83348433 0xCB84 +0x83348434 0xCB85 +0x83348435 0xCB86 +0x83348436 0xCB87 +0x83348437 0xCB88 +0x83348438 0xCB89 +0x83348439 0xCB8A +0x83348530 0xCB8B +0x83348531 0xCB8C +0x83348532 0xCB8D +0x83348533 0xCB8E +0x83348534 0xCB8F +0x83348535 0xCB90 +0x83348536 0xCB91 +0x83348537 0xCB92 +0x83348538 0xCB93 +0x83348539 0xCB94 +0x83348630 0xCB95 +0x83348631 0xCB96 +0x83348632 0xCB97 +0x83348633 0xCB98 +0x83348634 0xCB99 +0x83348635 0xCB9A +0x83348636 0xCB9B +0x83348637 0xCB9C +0x83348638 0xCB9D +0x83348639 0xCB9E +0x83348730 0xCB9F +0x83348731 0xCBA0 +0x83348732 0xCBA1 +0x83348733 0xCBA2 +0x83348734 0xCBA3 +0x83348735 0xCBA4 +0x83348736 0xCBA5 +0x83348737 0xCBA6 +0x83348738 0xCBA7 +0x83348739 0xCBA8 +0x83348830 0xCBA9 +0x83348831 0xCBAA +0x83348832 0xCBAB +0x83348833 0xCBAC +0x83348834 0xCBAD +0x83348835 0xCBAE +0x83348836 0xCBAF +0x83348837 0xCBB0 +0x83348838 0xCBB1 +0x83348839 0xCBB2 +0x83348930 0xCBB3 +0x83348931 0xCBB4 +0x83348932 0xCBB5 +0x83348933 0xCBB6 +0x83348934 0xCBB7 +0x83348935 0xCBB8 +0x83348936 0xCBB9 +0x83348937 0xCBBA +0x83348938 0xCBBB +0x83348939 0xCBBC +0x83348A30 0xCBBD +0x83348A31 0xCBBE +0x83348A32 0xCBBF +0x83348A33 0xCBC0 +0x83348A34 0xCBC1 +0x83348A35 0xCBC2 +0x83348A36 0xCBC3 +0x83348A37 0xCBC4 +0x83348A38 0xCBC5 +0x83348A39 0xCBC6 +0x83348B30 0xCBC7 +0x83348B31 0xCBC8 +0x83348B32 0xCBC9 +0x83348B33 0xCBCA +0x83348B34 0xCBCB +0x83348B35 0xCBCC +0x83348B36 0xCBCD +0x83348B37 0xCBCE +0x83348B38 0xCBCF +0x83348B39 0xCBD0 +0x83348C30 0xCBD1 +0x83348C31 0xCBD2 +0x83348C32 0xCBD3 +0x83348C33 0xCBD4 +0x83348C34 0xCBD5 +0x83348C35 0xCBD6 +0x83348C36 0xCBD7 +0x83348C37 0xCBD8 +0x83348C38 0xCBD9 +0x83348C39 0xCBDA +0x83348D30 0xCBDB +0x83348D31 0xCBDC +0x83348D32 0xCBDD +0x83348D33 0xCBDE +0x83348D34 0xCBDF +0x83348D35 0xCBE0 +0x83348D36 0xCBE1 +0x83348D37 0xCBE2 +0x83348D38 0xCBE3 +0x83348D39 0xCBE4 +0x83348E30 0xCBE5 +0x83348E31 0xCBE6 +0x83348E32 0xCBE7 +0x83348E33 0xCBE8 +0x83348E34 0xCBE9 +0x83348E35 0xCBEA +0x83348E36 0xCBEB +0x83348E37 0xCBEC +0x83348E38 0xCBED +0x83348E39 0xCBEE +0x83348F30 0xCBEF +0x83348F31 0xCBF0 +0x83348F32 0xCBF1 +0x83348F33 0xCBF2 +0x83348F34 0xCBF3 +0x83348F35 0xCBF4 +0x83348F36 0xCBF5 +0x83348F37 0xCBF6 +0x83348F38 0xCBF7 +0x83348F39 0xCBF8 +0x83349030 0xCBF9 +0x83349031 0xCBFA +0x83349032 0xCBFB +0x83349033 0xCBFC +0x83349034 0xCBFD +0x83349035 0xCBFE +0x83349036 0xCBFF +0x83349037 0xCC00 +0x83349038 0xCC01 +0x83349039 0xCC02 +0x83349130 0xCC03 +0x83349131 0xCC04 +0x83349132 0xCC05 +0x83349133 0xCC06 +0x83349134 0xCC07 +0x83349135 0xCC08 +0x83349136 0xCC09 +0x83349137 0xCC0A +0x83349138 0xCC0B +0x83349139 0xCC0C +0x83349230 0xCC0D +0x83349231 0xCC0E +0x83349232 0xCC0F +0x83349233 0xCC10 +0x83349234 0xCC11 +0x83349235 0xCC12 +0x83349236 0xCC13 +0x83349237 0xCC14 +0x83349238 0xCC15 +0x83349239 0xCC16 +0x83349330 0xCC17 +0x83349331 0xCC18 +0x83349332 0xCC19 +0x83349333 0xCC1A +0x83349334 0xCC1B +0x83349335 0xCC1C +0x83349336 0xCC1D +0x83349337 0xCC1E +0x83349338 0xCC1F +0x83349339 0xCC20 +0x83349430 0xCC21 +0x83349431 0xCC22 +0x83349432 0xCC23 +0x83349433 0xCC24 +0x83349434 0xCC25 +0x83349435 0xCC26 +0x83349436 0xCC27 +0x83349437 0xCC28 +0x83349438 0xCC29 +0x83349439 0xCC2A +0x83349530 0xCC2B +0x83349531 0xCC2C +0x83349532 0xCC2D +0x83349533 0xCC2E +0x83349534 0xCC2F +0x83349535 0xCC30 +0x83349536 0xCC31 +0x83349537 0xCC32 +0x83349538 0xCC33 +0x83349539 0xCC34 +0x83349630 0xCC35 +0x83349631 0xCC36 +0x83349632 0xCC37 +0x83349633 0xCC38 +0x83349634 0xCC39 +0x83349635 0xCC3A +0x83349636 0xCC3B +0x83349637 0xCC3C +0x83349638 0xCC3D +0x83349639 0xCC3E +0x83349730 0xCC3F +0x83349731 0xCC40 +0x83349732 0xCC41 +0x83349733 0xCC42 +0x83349734 0xCC43 +0x83349735 0xCC44 +0x83349736 0xCC45 +0x83349737 0xCC46 +0x83349738 0xCC47 +0x83349739 0xCC48 +0x83349830 0xCC49 +0x83349831 0xCC4A +0x83349832 0xCC4B +0x83349833 0xCC4C +0x83349834 0xCC4D +0x83349835 0xCC4E +0x83349836 0xCC4F +0x83349837 0xCC50 +0x83349838 0xCC51 +0x83349839 0xCC52 +0x83349930 0xCC53 +0x83349931 0xCC54 +0x83349932 0xCC55 +0x83349933 0xCC56 +0x83349934 0xCC57 +0x83349935 0xCC58 +0x83349936 0xCC59 +0x83349937 0xCC5A +0x83349938 0xCC5B +0x83349939 0xCC5C +0x83349A30 0xCC5D +0x83349A31 0xCC5E +0x83349A32 0xCC5F +0x83349A33 0xCC60 +0x83349A34 0xCC61 +0x83349A35 0xCC62 +0x83349A36 0xCC63 +0x83349A37 0xCC64 +0x83349A38 0xCC65 +0x83349A39 0xCC66 +0x83349B30 0xCC67 +0x83349B31 0xCC68 +0x83349B32 0xCC69 +0x83349B33 0xCC6A +0x83349B34 0xCC6B +0x83349B35 0xCC6C +0x83349B36 0xCC6D +0x83349B37 0xCC6E +0x83349B38 0xCC6F +0x83349B39 0xCC70 +0x83349C30 0xCC71 +0x83349C31 0xCC72 +0x83349C32 0xCC73 +0x83349C33 0xCC74 +0x83349C34 0xCC75 +0x83349C35 0xCC76 +0x83349C36 0xCC77 +0x83349C37 0xCC78 +0x83349C38 0xCC79 +0x83349C39 0xCC7A +0x83349D30 0xCC7B +0x83349D31 0xCC7C +0x83349D32 0xCC7D +0x83349D33 0xCC7E +0x83349D34 0xCC7F +0x83349D35 0xCC80 +0x83349D36 0xCC81 +0x83349D37 0xCC82 +0x83349D38 0xCC83 +0x83349D39 0xCC84 +0x83349E30 0xCC85 +0x83349E31 0xCC86 +0x83349E32 0xCC87 +0x83349E33 0xCC88 +0x83349E34 0xCC89 +0x83349E35 0xCC8A +0x83349E36 0xCC8B +0x83349E37 0xCC8C +0x83349E38 0xCC8D +0x83349E39 0xCC8E +0x83349F30 0xCC8F +0x83349F31 0xCC90 +0x83349F32 0xCC91 +0x83349F33 0xCC92 +0x83349F34 0xCC93 +0x83349F35 0xCC94 +0x83349F36 0xCC95 +0x83349F37 0xCC96 +0x83349F38 0xCC97 +0x83349F39 0xCC98 +0x8334A030 0xCC99 +0x8334A031 0xCC9A +0x8334A032 0xCC9B +0x8334A033 0xCC9C +0x8334A034 0xCC9D +0x8334A035 0xCC9E +0x8334A036 0xCC9F +0x8334A037 0xCCA0 +0x8334A038 0xCCA1 +0x8334A039 0xCCA2 +0x8334A130 0xCCA3 +0x8334A131 0xCCA4 +0x8334A132 0xCCA5 +0x8334A133 0xCCA6 +0x8334A134 0xCCA7 +0x8334A135 0xCCA8 +0x8334A136 0xCCA9 +0x8334A137 0xCCAA +0x8334A138 0xCCAB +0x8334A139 0xCCAC +0x8334A230 0xCCAD +0x8334A231 0xCCAE +0x8334A232 0xCCAF +0x8334A233 0xCCB0 +0x8334A234 0xCCB1 +0x8334A235 0xCCB2 +0x8334A236 0xCCB3 +0x8334A237 0xCCB4 +0x8334A238 0xCCB5 +0x8334A239 0xCCB6 +0x8334A330 0xCCB7 +0x8334A331 0xCCB8 +0x8334A332 0xCCB9 +0x8334A333 0xCCBA +0x8334A334 0xCCBB +0x8334A335 0xCCBC +0x8334A336 0xCCBD +0x8334A337 0xCCBE +0x8334A338 0xCCBF +0x8334A339 0xCCC0 +0x8334A430 0xCCC1 +0x8334A431 0xCCC2 +0x8334A432 0xCCC3 +0x8334A433 0xCCC4 +0x8334A434 0xCCC5 +0x8334A435 0xCCC6 +0x8334A436 0xCCC7 +0x8334A437 0xCCC8 +0x8334A438 0xCCC9 +0x8334A439 0xCCCA +0x8334A530 0xCCCB +0x8334A531 0xCCCC +0x8334A532 0xCCCD +0x8334A533 0xCCCE +0x8334A534 0xCCCF +0x8334A535 0xCCD0 +0x8334A536 0xCCD1 +0x8334A537 0xCCD2 +0x8334A538 0xCCD3 +0x8334A539 0xCCD4 +0x8334A630 0xCCD5 +0x8334A631 0xCCD6 +0x8334A632 0xCCD7 +0x8334A633 0xCCD8 +0x8334A634 0xCCD9 +0x8334A635 0xCCDA +0x8334A636 0xCCDB +0x8334A637 0xCCDC +0x8334A638 0xCCDD +0x8334A639 0xCCDE +0x8334A730 0xCCDF +0x8334A731 0xCCE0 +0x8334A732 0xCCE1 +0x8334A733 0xCCE2 +0x8334A734 0xCCE3 +0x8334A735 0xCCE4 +0x8334A736 0xCCE5 +0x8334A737 0xCCE6 +0x8334A738 0xCCE7 +0x8334A739 0xCCE8 +0x8334A830 0xCCE9 +0x8334A831 0xCCEA +0x8334A832 0xCCEB +0x8334A833 0xCCEC +0x8334A834 0xCCED +0x8334A835 0xCCEE +0x8334A836 0xCCEF +0x8334A837 0xCCF0 +0x8334A838 0xCCF1 +0x8334A839 0xCCF2 +0x8334A930 0xCCF3 +0x8334A931 0xCCF4 +0x8334A932 0xCCF5 +0x8334A933 0xCCF6 +0x8334A934 0xCCF7 +0x8334A935 0xCCF8 +0x8334A936 0xCCF9 +0x8334A937 0xCCFA +0x8334A938 0xCCFB +0x8334A939 0xCCFC +0x8334AA30 0xCCFD +0x8334AA31 0xCCFE +0x8334AA32 0xCCFF +0x8334AA33 0xCD00 +0x8334AA34 0xCD01 +0x8334AA35 0xCD02 +0x8334AA36 0xCD03 +0x8334AA37 0xCD04 +0x8334AA38 0xCD05 +0x8334AA39 0xCD06 +0x8334AB30 0xCD07 +0x8334AB31 0xCD08 +0x8334AB32 0xCD09 +0x8334AB33 0xCD0A +0x8334AB34 0xCD0B +0x8334AB35 0xCD0C +0x8334AB36 0xCD0D +0x8334AB37 0xCD0E +0x8334AB38 0xCD0F +0x8334AB39 0xCD10 +0x8334AC30 0xCD11 +0x8334AC31 0xCD12 +0x8334AC32 0xCD13 +0x8334AC33 0xCD14 +0x8334AC34 0xCD15 +0x8334AC35 0xCD16 +0x8334AC36 0xCD17 +0x8334AC37 0xCD18 +0x8334AC38 0xCD19 +0x8334AC39 0xCD1A +0x8334AD30 0xCD1B +0x8334AD31 0xCD1C +0x8334AD32 0xCD1D +0x8334AD33 0xCD1E +0x8334AD34 0xCD1F +0x8334AD35 0xCD20 +0x8334AD36 0xCD21 +0x8334AD37 0xCD22 +0x8334AD38 0xCD23 +0x8334AD39 0xCD24 +0x8334AE30 0xCD25 +0x8334AE31 0xCD26 +0x8334AE32 0xCD27 +0x8334AE33 0xCD28 +0x8334AE34 0xCD29 +0x8334AE35 0xCD2A +0x8334AE36 0xCD2B +0x8334AE37 0xCD2C +0x8334AE38 0xCD2D +0x8334AE39 0xCD2E +0x8334AF30 0xCD2F +0x8334AF31 0xCD30 +0x8334AF32 0xCD31 +0x8334AF33 0xCD32 +0x8334AF34 0xCD33 +0x8334AF35 0xCD34 +0x8334AF36 0xCD35 +0x8334AF37 0xCD36 +0x8334AF38 0xCD37 +0x8334AF39 0xCD38 +0x8334B030 0xCD39 +0x8334B031 0xCD3A +0x8334B032 0xCD3B +0x8334B033 0xCD3C +0x8334B034 0xCD3D +0x8334B035 0xCD3E +0x8334B036 0xCD3F +0x8334B037 0xCD40 +0x8334B038 0xCD41 +0x8334B039 0xCD42 +0x8334B130 0xCD43 +0x8334B131 0xCD44 +0x8334B132 0xCD45 +0x8334B133 0xCD46 +0x8334B134 0xCD47 +0x8334B135 0xCD48 +0x8334B136 0xCD49 +0x8334B137 0xCD4A +0x8334B138 0xCD4B +0x8334B139 0xCD4C +0x8334B230 0xCD4D +0x8334B231 0xCD4E +0x8334B232 0xCD4F +0x8334B233 0xCD50 +0x8334B234 0xCD51 +0x8334B235 0xCD52 +0x8334B236 0xCD53 +0x8334B237 0xCD54 +0x8334B238 0xCD55 +0x8334B239 0xCD56 +0x8334B330 0xCD57 +0x8334B331 0xCD58 +0x8334B332 0xCD59 +0x8334B333 0xCD5A +0x8334B334 0xCD5B +0x8334B335 0xCD5C +0x8334B336 0xCD5D +0x8334B337 0xCD5E +0x8334B338 0xCD5F +0x8334B339 0xCD60 +0x8334B430 0xCD61 +0x8334B431 0xCD62 +0x8334B432 0xCD63 +0x8334B433 0xCD64 +0x8334B434 0xCD65 +0x8334B435 0xCD66 +0x8334B436 0xCD67 +0x8334B437 0xCD68 +0x8334B438 0xCD69 +0x8334B439 0xCD6A +0x8334B530 0xCD6B +0x8334B531 0xCD6C +0x8334B532 0xCD6D +0x8334B533 0xCD6E +0x8334B534 0xCD6F +0x8334B535 0xCD70 +0x8334B536 0xCD71 +0x8334B537 0xCD72 +0x8334B538 0xCD73 +0x8334B539 0xCD74 +0x8334B630 0xCD75 +0x8334B631 0xCD76 +0x8334B632 0xCD77 +0x8334B633 0xCD78 +0x8334B634 0xCD79 +0x8334B635 0xCD7A +0x8334B636 0xCD7B +0x8334B637 0xCD7C +0x8334B638 0xCD7D +0x8334B639 0xCD7E +0x8334B730 0xCD7F +0x8334B731 0xCD80 +0x8334B732 0xCD81 +0x8334B733 0xCD82 +0x8334B734 0xCD83 +0x8334B735 0xCD84 +0x8334B736 0xCD85 +0x8334B737 0xCD86 +0x8334B738 0xCD87 +0x8334B739 0xCD88 +0x8334B830 0xCD89 +0x8334B831 0xCD8A +0x8334B832 0xCD8B +0x8334B833 0xCD8C +0x8334B834 0xCD8D +0x8334B835 0xCD8E +0x8334B836 0xCD8F +0x8334B837 0xCD90 +0x8334B838 0xCD91 +0x8334B839 0xCD92 +0x8334B930 0xCD93 +0x8334B931 0xCD94 +0x8334B932 0xCD95 +0x8334B933 0xCD96 +0x8334B934 0xCD97 +0x8334B935 0xCD98 +0x8334B936 0xCD99 +0x8334B937 0xCD9A +0x8334B938 0xCD9B +0x8334B939 0xCD9C +0x8334BA30 0xCD9D +0x8334BA31 0xCD9E +0x8334BA32 0xCD9F +0x8334BA33 0xCDA0 +0x8334BA34 0xCDA1 +0x8334BA35 0xCDA2 +0x8334BA36 0xCDA3 +0x8334BA37 0xCDA4 +0x8334BA38 0xCDA5 +0x8334BA39 0xCDA6 +0x8334BB30 0xCDA7 +0x8334BB31 0xCDA8 +0x8334BB32 0xCDA9 +0x8334BB33 0xCDAA +0x8334BB34 0xCDAB +0x8334BB35 0xCDAC +0x8334BB36 0xCDAD +0x8334BB37 0xCDAE +0x8334BB38 0xCDAF +0x8334BB39 0xCDB0 +0x8334BC30 0xCDB1 +0x8334BC31 0xCDB2 +0x8334BC32 0xCDB3 +0x8334BC33 0xCDB4 +0x8334BC34 0xCDB5 +0x8334BC35 0xCDB6 +0x8334BC36 0xCDB7 +0x8334BC37 0xCDB8 +0x8334BC38 0xCDB9 +0x8334BC39 0xCDBA +0x8334BD30 0xCDBB +0x8334BD31 0xCDBC +0x8334BD32 0xCDBD +0x8334BD33 0xCDBE +0x8334BD34 0xCDBF +0x8334BD35 0xCDC0 +0x8334BD36 0xCDC1 +0x8334BD37 0xCDC2 +0x8334BD38 0xCDC3 +0x8334BD39 0xCDC4 +0x8334BE30 0xCDC5 +0x8334BE31 0xCDC6 +0x8334BE32 0xCDC7 +0x8334BE33 0xCDC8 +0x8334BE34 0xCDC9 +0x8334BE35 0xCDCA +0x8334BE36 0xCDCB +0x8334BE37 0xCDCC +0x8334BE38 0xCDCD +0x8334BE39 0xCDCE +0x8334BF30 0xCDCF +0x8334BF31 0xCDD0 +0x8334BF32 0xCDD1 +0x8334BF33 0xCDD2 +0x8334BF34 0xCDD3 +0x8334BF35 0xCDD4 +0x8334BF36 0xCDD5 +0x8334BF37 0xCDD6 +0x8334BF38 0xCDD7 +0x8334BF39 0xCDD8 +0x8334C030 0xCDD9 +0x8334C031 0xCDDA +0x8334C032 0xCDDB +0x8334C033 0xCDDC +0x8334C034 0xCDDD +0x8334C035 0xCDDE +0x8334C036 0xCDDF +0x8334C037 0xCDE0 +0x8334C038 0xCDE1 +0x8334C039 0xCDE2 +0x8334C130 0xCDE3 +0x8334C131 0xCDE4 +0x8334C132 0xCDE5 +0x8334C133 0xCDE6 +0x8334C134 0xCDE7 +0x8334C135 0xCDE8 +0x8334C136 0xCDE9 +0x8334C137 0xCDEA +0x8334C138 0xCDEB +0x8334C139 0xCDEC +0x8334C230 0xCDED +0x8334C231 0xCDEE +0x8334C232 0xCDEF +0x8334C233 0xCDF0 +0x8334C234 0xCDF1 +0x8334C235 0xCDF2 +0x8334C236 0xCDF3 +0x8334C237 0xCDF4 +0x8334C238 0xCDF5 +0x8334C239 0xCDF6 +0x8334C330 0xCDF7 +0x8334C331 0xCDF8 +0x8334C332 0xCDF9 +0x8334C333 0xCDFA +0x8334C334 0xCDFB +0x8334C335 0xCDFC +0x8334C336 0xCDFD +0x8334C337 0xCDFE +0x8334C338 0xCDFF +0x8334C339 0xCE00 +0x8334C430 0xCE01 +0x8334C431 0xCE02 +0x8334C432 0xCE03 +0x8334C433 0xCE04 +0x8334C434 0xCE05 +0x8334C435 0xCE06 +0x8334C436 0xCE07 +0x8334C437 0xCE08 +0x8334C438 0xCE09 +0x8334C439 0xCE0A +0x8334C530 0xCE0B +0x8334C531 0xCE0C +0x8334C532 0xCE0D +0x8334C533 0xCE0E +0x8334C534 0xCE0F +0x8334C535 0xCE10 +0x8334C536 0xCE11 +0x8334C537 0xCE12 +0x8334C538 0xCE13 +0x8334C539 0xCE14 +0x8334C630 0xCE15 +0x8334C631 0xCE16 +0x8334C632 0xCE17 +0x8334C633 0xCE18 +0x8334C634 0xCE19 +0x8334C635 0xCE1A +0x8334C636 0xCE1B +0x8334C637 0xCE1C +0x8334C638 0xCE1D +0x8334C639 0xCE1E +0x8334C730 0xCE1F +0x8334C731 0xCE20 +0x8334C732 0xCE21 +0x8334C733 0xCE22 +0x8334C734 0xCE23 +0x8334C735 0xCE24 +0x8334C736 0xCE25 +0x8334C737 0xCE26 +0x8334C738 0xCE27 +0x8334C739 0xCE28 +0x8334C830 0xCE29 +0x8334C831 0xCE2A +0x8334C832 0xCE2B +0x8334C833 0xCE2C +0x8334C834 0xCE2D +0x8334C835 0xCE2E +0x8334C836 0xCE2F +0x8334C837 0xCE30 +0x8334C838 0xCE31 +0x8334C839 0xCE32 +0x8334C930 0xCE33 +0x8334C931 0xCE34 +0x8334C932 0xCE35 +0x8334C933 0xCE36 +0x8334C934 0xCE37 +0x8334C935 0xCE38 +0x8334C936 0xCE39 +0x8334C937 0xCE3A +0x8334C938 0xCE3B +0x8334C939 0xCE3C +0x8334CA30 0xCE3D +0x8334CA31 0xCE3E +0x8334CA32 0xCE3F +0x8334CA33 0xCE40 +0x8334CA34 0xCE41 +0x8334CA35 0xCE42 +0x8334CA36 0xCE43 +0x8334CA37 0xCE44 +0x8334CA38 0xCE45 +0x8334CA39 0xCE46 +0x8334CB30 0xCE47 +0x8334CB31 0xCE48 +0x8334CB32 0xCE49 +0x8334CB33 0xCE4A +0x8334CB34 0xCE4B +0x8334CB35 0xCE4C +0x8334CB36 0xCE4D +0x8334CB37 0xCE4E +0x8334CB38 0xCE4F +0x8334CB39 0xCE50 +0x8334CC30 0xCE51 +0x8334CC31 0xCE52 +0x8334CC32 0xCE53 +0x8334CC33 0xCE54 +0x8334CC34 0xCE55 +0x8334CC35 0xCE56 +0x8334CC36 0xCE57 +0x8334CC37 0xCE58 +0x8334CC38 0xCE59 +0x8334CC39 0xCE5A +0x8334CD30 0xCE5B +0x8334CD31 0xCE5C +0x8334CD32 0xCE5D +0x8334CD33 0xCE5E +0x8334CD34 0xCE5F +0x8334CD35 0xCE60 +0x8334CD36 0xCE61 +0x8334CD37 0xCE62 +0x8334CD38 0xCE63 +0x8334CD39 0xCE64 +0x8334CE30 0xCE65 +0x8334CE31 0xCE66 +0x8334CE32 0xCE67 +0x8334CE33 0xCE68 +0x8334CE34 0xCE69 +0x8334CE35 0xCE6A +0x8334CE36 0xCE6B +0x8334CE37 0xCE6C +0x8334CE38 0xCE6D +0x8334CE39 0xCE6E +0x8334CF30 0xCE6F +0x8334CF31 0xCE70 +0x8334CF32 0xCE71 +0x8334CF33 0xCE72 +0x8334CF34 0xCE73 +0x8334CF35 0xCE74 +0x8334CF36 0xCE75 +0x8334CF37 0xCE76 +0x8334CF38 0xCE77 +0x8334CF39 0xCE78 +0x8334D030 0xCE79 +0x8334D031 0xCE7A +0x8334D032 0xCE7B +0x8334D033 0xCE7C +0x8334D034 0xCE7D +0x8334D035 0xCE7E +0x8334D036 0xCE7F +0x8334D037 0xCE80 +0x8334D038 0xCE81 +0x8334D039 0xCE82 +0x8334D130 0xCE83 +0x8334D131 0xCE84 +0x8334D132 0xCE85 +0x8334D133 0xCE86 +0x8334D134 0xCE87 +0x8334D135 0xCE88 +0x8334D136 0xCE89 +0x8334D137 0xCE8A +0x8334D138 0xCE8B +0x8334D139 0xCE8C +0x8334D230 0xCE8D +0x8334D231 0xCE8E +0x8334D232 0xCE8F +0x8334D233 0xCE90 +0x8334D234 0xCE91 +0x8334D235 0xCE92 +0x8334D236 0xCE93 +0x8334D237 0xCE94 +0x8334D238 0xCE95 +0x8334D239 0xCE96 +0x8334D330 0xCE97 +0x8334D331 0xCE98 +0x8334D332 0xCE99 +0x8334D333 0xCE9A +0x8334D334 0xCE9B +0x8334D335 0xCE9C +0x8334D336 0xCE9D +0x8334D337 0xCE9E +0x8334D338 0xCE9F +0x8334D339 0xCEA0 +0x8334D430 0xCEA1 +0x8334D431 0xCEA2 +0x8334D432 0xCEA3 +0x8334D433 0xCEA4 +0x8334D434 0xCEA5 +0x8334D435 0xCEA6 +0x8334D436 0xCEA7 +0x8334D437 0xCEA8 +0x8334D438 0xCEA9 +0x8334D439 0xCEAA +0x8334D530 0xCEAB +0x8334D531 0xCEAC +0x8334D532 0xCEAD +0x8334D533 0xCEAE +0x8334D534 0xCEAF +0x8334D535 0xCEB0 +0x8334D536 0xCEB1 +0x8334D537 0xCEB2 +0x8334D538 0xCEB3 +0x8334D539 0xCEB4 +0x8334D630 0xCEB5 +0x8334D631 0xCEB6 +0x8334D632 0xCEB7 +0x8334D633 0xCEB8 +0x8334D634 0xCEB9 +0x8334D635 0xCEBA +0x8334D636 0xCEBB +0x8334D637 0xCEBC +0x8334D638 0xCEBD +0x8334D639 0xCEBE +0x8334D730 0xCEBF +0x8334D731 0xCEC0 +0x8334D732 0xCEC1 +0x8334D733 0xCEC2 +0x8334D734 0xCEC3 +0x8334D735 0xCEC4 +0x8334D736 0xCEC5 +0x8334D737 0xCEC6 +0x8334D738 0xCEC7 +0x8334D739 0xCEC8 +0x8334D830 0xCEC9 +0x8334D831 0xCECA +0x8334D832 0xCECB +0x8334D833 0xCECC +0x8334D834 0xCECD +0x8334D835 0xCECE +0x8334D836 0xCECF +0x8334D837 0xCED0 +0x8334D838 0xCED1 +0x8334D839 0xCED2 +0x8334D930 0xCED3 +0x8334D931 0xCED4 +0x8334D932 0xCED5 +0x8334D933 0xCED6 +0x8334D934 0xCED7 +0x8334D935 0xCED8 +0x8334D936 0xCED9 +0x8334D937 0xCEDA +0x8334D938 0xCEDB +0x8334D939 0xCEDC +0x8334DA30 0xCEDD +0x8334DA31 0xCEDE +0x8334DA32 0xCEDF +0x8334DA33 0xCEE0 +0x8334DA34 0xCEE1 +0x8334DA35 0xCEE2 +0x8334DA36 0xCEE3 +0x8334DA37 0xCEE4 +0x8334DA38 0xCEE5 +0x8334DA39 0xCEE6 +0x8334DB30 0xCEE7 +0x8334DB31 0xCEE8 +0x8334DB32 0xCEE9 +0x8334DB33 0xCEEA +0x8334DB34 0xCEEB +0x8334DB35 0xCEEC +0x8334DB36 0xCEED +0x8334DB37 0xCEEE +0x8334DB38 0xCEEF +0x8334DB39 0xCEF0 +0x8334DC30 0xCEF1 +0x8334DC31 0xCEF2 +0x8334DC32 0xCEF3 +0x8334DC33 0xCEF4 +0x8334DC34 0xCEF5 +0x8334DC35 0xCEF6 +0x8334DC36 0xCEF7 +0x8334DC37 0xCEF8 +0x8334DC38 0xCEF9 +0x8334DC39 0xCEFA +0x8334DD30 0xCEFB +0x8334DD31 0xCEFC +0x8334DD32 0xCEFD +0x8334DD33 0xCEFE +0x8334DD34 0xCEFF +0x8334DD35 0xCF00 +0x8334DD36 0xCF01 +0x8334DD37 0xCF02 +0x8334DD38 0xCF03 +0x8334DD39 0xCF04 +0x8334DE30 0xCF05 +0x8334DE31 0xCF06 +0x8334DE32 0xCF07 +0x8334DE33 0xCF08 +0x8334DE34 0xCF09 +0x8334DE35 0xCF0A +0x8334DE36 0xCF0B +0x8334DE37 0xCF0C +0x8334DE38 0xCF0D +0x8334DE39 0xCF0E +0x8334DF30 0xCF0F +0x8334DF31 0xCF10 +0x8334DF32 0xCF11 +0x8334DF33 0xCF12 +0x8334DF34 0xCF13 +0x8334DF35 0xCF14 +0x8334DF36 0xCF15 +0x8334DF37 0xCF16 +0x8334DF38 0xCF17 +0x8334DF39 0xCF18 +0x8334E030 0xCF19 +0x8334E031 0xCF1A +0x8334E032 0xCF1B +0x8334E033 0xCF1C +0x8334E034 0xCF1D +0x8334E035 0xCF1E +0x8334E036 0xCF1F +0x8334E037 0xCF20 +0x8334E038 0xCF21 +0x8334E039 0xCF22 +0x8334E130 0xCF23 +0x8334E131 0xCF24 +0x8334E132 0xCF25 +0x8334E133 0xCF26 +0x8334E134 0xCF27 +0x8334E135 0xCF28 +0x8334E136 0xCF29 +0x8334E137 0xCF2A +0x8334E138 0xCF2B +0x8334E139 0xCF2C +0x8334E230 0xCF2D +0x8334E231 0xCF2E +0x8334E232 0xCF2F +0x8334E233 0xCF30 +0x8334E234 0xCF31 +0x8334E235 0xCF32 +0x8334E236 0xCF33 +0x8334E237 0xCF34 +0x8334E238 0xCF35 +0x8334E239 0xCF36 +0x8334E330 0xCF37 +0x8334E331 0xCF38 +0x8334E332 0xCF39 +0x8334E333 0xCF3A +0x8334E334 0xCF3B +0x8334E335 0xCF3C +0x8334E336 0xCF3D +0x8334E337 0xCF3E +0x8334E338 0xCF3F +0x8334E339 0xCF40 +0x8334E430 0xCF41 +0x8334E431 0xCF42 +0x8334E432 0xCF43 +0x8334E433 0xCF44 +0x8334E434 0xCF45 +0x8334E435 0xCF46 +0x8334E436 0xCF47 +0x8334E437 0xCF48 +0x8334E438 0xCF49 +0x8334E439 0xCF4A +0x8334E530 0xCF4B +0x8334E531 0xCF4C +0x8334E532 0xCF4D +0x8334E533 0xCF4E +0x8334E534 0xCF4F +0x8334E535 0xCF50 +0x8334E536 0xCF51 +0x8334E537 0xCF52 +0x8334E538 0xCF53 +0x8334E539 0xCF54 +0x8334E630 0xCF55 +0x8334E631 0xCF56 +0x8334E632 0xCF57 +0x8334E633 0xCF58 +0x8334E634 0xCF59 +0x8334E635 0xCF5A +0x8334E636 0xCF5B +0x8334E637 0xCF5C +0x8334E638 0xCF5D +0x8334E639 0xCF5E +0x8334E730 0xCF5F +0x8334E731 0xCF60 +0x8334E732 0xCF61 +0x8334E733 0xCF62 +0x8334E734 0xCF63 +0x8334E735 0xCF64 +0x8334E736 0xCF65 +0x8334E737 0xCF66 +0x8334E738 0xCF67 +0x8334E739 0xCF68 +0x8334E830 0xCF69 +0x8334E831 0xCF6A +0x8334E832 0xCF6B +0x8334E833 0xCF6C +0x8334E834 0xCF6D +0x8334E835 0xCF6E +0x8334E836 0xCF6F +0x8334E837 0xCF70 +0x8334E838 0xCF71 +0x8334E839 0xCF72 +0x8334E930 0xCF73 +0x8334E931 0xCF74 +0x8334E932 0xCF75 +0x8334E933 0xCF76 +0x8334E934 0xCF77 +0x8334E935 0xCF78 +0x8334E936 0xCF79 +0x8334E937 0xCF7A +0x8334E938 0xCF7B +0x8334E939 0xCF7C +0x8334EA30 0xCF7D +0x8334EA31 0xCF7E +0x8334EA32 0xCF7F +0x8334EA33 0xCF80 +0x8334EA34 0xCF81 +0x8334EA35 0xCF82 +0x8334EA36 0xCF83 +0x8334EA37 0xCF84 +0x8334EA38 0xCF85 +0x8334EA39 0xCF86 +0x8334EB30 0xCF87 +0x8334EB31 0xCF88 +0x8334EB32 0xCF89 +0x8334EB33 0xCF8A +0x8334EB34 0xCF8B +0x8334EB35 0xCF8C +0x8334EB36 0xCF8D +0x8334EB37 0xCF8E +0x8334EB38 0xCF8F +0x8334EB39 0xCF90 +0x8334EC30 0xCF91 +0x8334EC31 0xCF92 +0x8334EC32 0xCF93 +0x8334EC33 0xCF94 +0x8334EC34 0xCF95 +0x8334EC35 0xCF96 +0x8334EC36 0xCF97 +0x8334EC37 0xCF98 +0x8334EC38 0xCF99 +0x8334EC39 0xCF9A +0x8334ED30 0xCF9B +0x8334ED31 0xCF9C +0x8334ED32 0xCF9D +0x8334ED33 0xCF9E +0x8334ED34 0xCF9F +0x8334ED35 0xCFA0 +0x8334ED36 0xCFA1 +0x8334ED37 0xCFA2 +0x8334ED38 0xCFA3 +0x8334ED39 0xCFA4 +0x8334EE30 0xCFA5 +0x8334EE31 0xCFA6 +0x8334EE32 0xCFA7 +0x8334EE33 0xCFA8 +0x8334EE34 0xCFA9 +0x8334EE35 0xCFAA +0x8334EE36 0xCFAB +0x8334EE37 0xCFAC +0x8334EE38 0xCFAD +0x8334EE39 0xCFAE +0x8334EF30 0xCFAF +0x8334EF31 0xCFB0 +0x8334EF32 0xCFB1 +0x8334EF33 0xCFB2 +0x8334EF34 0xCFB3 +0x8334EF35 0xCFB4 +0x8334EF36 0xCFB5 +0x8334EF37 0xCFB6 +0x8334EF38 0xCFB7 +0x8334EF39 0xCFB8 +0x8334F030 0xCFB9 +0x8334F031 0xCFBA +0x8334F032 0xCFBB +0x8334F033 0xCFBC +0x8334F034 0xCFBD +0x8334F035 0xCFBE +0x8334F036 0xCFBF +0x8334F037 0xCFC0 +0x8334F038 0xCFC1 +0x8334F039 0xCFC2 +0x8334F130 0xCFC3 +0x8334F131 0xCFC4 +0x8334F132 0xCFC5 +0x8334F133 0xCFC6 +0x8334F134 0xCFC7 +0x8334F135 0xCFC8 +0x8334F136 0xCFC9 +0x8334F137 0xCFCA +0x8334F138 0xCFCB +0x8334F139 0xCFCC +0x8334F230 0xCFCD +0x8334F231 0xCFCE +0x8334F232 0xCFCF +0x8334F233 0xCFD0 +0x8334F234 0xCFD1 +0x8334F235 0xCFD2 +0x8334F236 0xCFD3 +0x8334F237 0xCFD4 +0x8334F238 0xCFD5 +0x8334F239 0xCFD6 +0x8334F330 0xCFD7 +0x8334F331 0xCFD8 +0x8334F332 0xCFD9 +0x8334F333 0xCFDA +0x8334F334 0xCFDB +0x8334F335 0xCFDC +0x8334F336 0xCFDD +0x8334F337 0xCFDE +0x8334F338 0xCFDF +0x8334F339 0xCFE0 +0x8334F430 0xCFE1 +0x8334F431 0xCFE2 +0x8334F432 0xCFE3 +0x8334F433 0xCFE4 +0x8334F434 0xCFE5 +0x8334F435 0xCFE6 +0x8334F436 0xCFE7 +0x8334F437 0xCFE8 +0x8334F438 0xCFE9 +0x8334F439 0xCFEA +0x8334F530 0xCFEB +0x8334F531 0xCFEC +0x8334F532 0xCFED +0x8334F533 0xCFEE +0x8334F534 0xCFEF +0x8334F535 0xCFF0 +0x8334F536 0xCFF1 +0x8334F537 0xCFF2 +0x8334F538 0xCFF3 +0x8334F539 0xCFF4 +0x8334F630 0xCFF5 +0x8334F631 0xCFF6 +0x8334F632 0xCFF7 +0x8334F633 0xCFF8 +0x8334F634 0xCFF9 +0x8334F635 0xCFFA +0x8334F636 0xCFFB +0x8334F637 0xCFFC +0x8334F638 0xCFFD +0x8334F639 0xCFFE +0x8334F730 0xCFFF +0x8334F731 0xD000 +0x8334F732 0xD001 +0x8334F733 0xD002 +0x8334F734 0xD003 +0x8334F735 0xD004 +0x8334F736 0xD005 +0x8334F737 0xD006 +0x8334F738 0xD007 +0x8334F739 0xD008 +0x8334F830 0xD009 +0x8334F831 0xD00A +0x8334F832 0xD00B +0x8334F833 0xD00C +0x8334F834 0xD00D +0x8334F835 0xD00E +0x8334F836 0xD00F +0x8334F837 0xD010 +0x8334F838 0xD011 +0x8334F839 0xD012 +0x8334F930 0xD013 +0x8334F931 0xD014 +0x8334F932 0xD015 +0x8334F933 0xD016 +0x8334F934 0xD017 +0x8334F935 0xD018 +0x8334F936 0xD019 +0x8334F937 0xD01A +0x8334F938 0xD01B +0x8334F939 0xD01C +0x8334FA30 0xD01D +0x8334FA31 0xD01E +0x8334FA32 0xD01F +0x8334FA33 0xD020 +0x8334FA34 0xD021 +0x8334FA35 0xD022 +0x8334FA36 0xD023 +0x8334FA37 0xD024 +0x8334FA38 0xD025 +0x8334FA39 0xD026 +0x8334FB30 0xD027 +0x8334FB31 0xD028 +0x8334FB32 0xD029 +0x8334FB33 0xD02A +0x8334FB34 0xD02B +0x8334FB35 0xD02C +0x8334FB36 0xD02D +0x8334FB37 0xD02E +0x8334FB38 0xD02F +0x8334FB39 0xD030 +0x8334FC30 0xD031 +0x8334FC31 0xD032 +0x8334FC32 0xD033 +0x8334FC33 0xD034 +0x8334FC34 0xD035 +0x8334FC35 0xD036 +0x8334FC36 0xD037 +0x8334FC37 0xD038 +0x8334FC38 0xD039 +0x8334FC39 0xD03A +0x8334FD30 0xD03B +0x8334FD31 0xD03C +0x8334FD32 0xD03D +0x8334FD33 0xD03E +0x8334FD34 0xD03F +0x8334FD35 0xD040 +0x8334FD36 0xD041 +0x8334FD37 0xD042 +0x8334FD38 0xD043 +0x8334FD39 0xD044 +0x8334FE30 0xD045 +0x8334FE31 0xD046 +0x8334FE32 0xD047 +0x8334FE33 0xD048 +0x8334FE34 0xD049 +0x8334FE35 0xD04A +0x8334FE36 0xD04B +0x8334FE37 0xD04C +0x8334FE38 0xD04D +0x8334FE39 0xD04E +0x83358130 0xD04F +0x83358131 0xD050 +0x83358132 0xD051 +0x83358133 0xD052 +0x83358134 0xD053 +0x83358135 0xD054 +0x83358136 0xD055 +0x83358137 0xD056 +0x83358138 0xD057 +0x83358139 0xD058 +0x83358230 0xD059 +0x83358231 0xD05A +0x83358232 0xD05B +0x83358233 0xD05C +0x83358234 0xD05D +0x83358235 0xD05E +0x83358236 0xD05F +0x83358237 0xD060 +0x83358238 0xD061 +0x83358239 0xD062 +0x83358330 0xD063 +0x83358331 0xD064 +0x83358332 0xD065 +0x83358333 0xD066 +0x83358334 0xD067 +0x83358335 0xD068 +0x83358336 0xD069 +0x83358337 0xD06A +0x83358338 0xD06B +0x83358339 0xD06C +0x83358430 0xD06D +0x83358431 0xD06E +0x83358432 0xD06F +0x83358433 0xD070 +0x83358434 0xD071 +0x83358435 0xD072 +0x83358436 0xD073 +0x83358437 0xD074 +0x83358438 0xD075 +0x83358439 0xD076 +0x83358530 0xD077 +0x83358531 0xD078 +0x83358532 0xD079 +0x83358533 0xD07A +0x83358534 0xD07B +0x83358535 0xD07C +0x83358536 0xD07D +0x83358537 0xD07E +0x83358538 0xD07F +0x83358539 0xD080 +0x83358630 0xD081 +0x83358631 0xD082 +0x83358632 0xD083 +0x83358633 0xD084 +0x83358634 0xD085 +0x83358635 0xD086 +0x83358636 0xD087 +0x83358637 0xD088 +0x83358638 0xD089 +0x83358639 0xD08A +0x83358730 0xD08B +0x83358731 0xD08C +0x83358732 0xD08D +0x83358733 0xD08E +0x83358734 0xD08F +0x83358735 0xD090 +0x83358736 0xD091 +0x83358737 0xD092 +0x83358738 0xD093 +0x83358739 0xD094 +0x83358830 0xD095 +0x83358831 0xD096 +0x83358832 0xD097 +0x83358833 0xD098 +0x83358834 0xD099 +0x83358835 0xD09A +0x83358836 0xD09B +0x83358837 0xD09C +0x83358838 0xD09D +0x83358839 0xD09E +0x83358930 0xD09F +0x83358931 0xD0A0 +0x83358932 0xD0A1 +0x83358933 0xD0A2 +0x83358934 0xD0A3 +0x83358935 0xD0A4 +0x83358936 0xD0A5 +0x83358937 0xD0A6 +0x83358938 0xD0A7 +0x83358939 0xD0A8 +0x83358A30 0xD0A9 +0x83358A31 0xD0AA +0x83358A32 0xD0AB +0x83358A33 0xD0AC +0x83358A34 0xD0AD +0x83358A35 0xD0AE +0x83358A36 0xD0AF +0x83358A37 0xD0B0 +0x83358A38 0xD0B1 +0x83358A39 0xD0B2 +0x83358B30 0xD0B3 +0x83358B31 0xD0B4 +0x83358B32 0xD0B5 +0x83358B33 0xD0B6 +0x83358B34 0xD0B7 +0x83358B35 0xD0B8 +0x83358B36 0xD0B9 +0x83358B37 0xD0BA +0x83358B38 0xD0BB +0x83358B39 0xD0BC +0x83358C30 0xD0BD +0x83358C31 0xD0BE +0x83358C32 0xD0BF +0x83358C33 0xD0C0 +0x83358C34 0xD0C1 +0x83358C35 0xD0C2 +0x83358C36 0xD0C3 +0x83358C37 0xD0C4 +0x83358C38 0xD0C5 +0x83358C39 0xD0C6 +0x83358D30 0xD0C7 +0x83358D31 0xD0C8 +0x83358D32 0xD0C9 +0x83358D33 0xD0CA +0x83358D34 0xD0CB +0x83358D35 0xD0CC +0x83358D36 0xD0CD +0x83358D37 0xD0CE +0x83358D38 0xD0CF +0x83358D39 0xD0D0 +0x83358E30 0xD0D1 +0x83358E31 0xD0D2 +0x83358E32 0xD0D3 +0x83358E33 0xD0D4 +0x83358E34 0xD0D5 +0x83358E35 0xD0D6 +0x83358E36 0xD0D7 +0x83358E37 0xD0D8 +0x83358E38 0xD0D9 +0x83358E39 0xD0DA +0x83358F30 0xD0DB +0x83358F31 0xD0DC +0x83358F32 0xD0DD +0x83358F33 0xD0DE +0x83358F34 0xD0DF +0x83358F35 0xD0E0 +0x83358F36 0xD0E1 +0x83358F37 0xD0E2 +0x83358F38 0xD0E3 +0x83358F39 0xD0E4 +0x83359030 0xD0E5 +0x83359031 0xD0E6 +0x83359032 0xD0E7 +0x83359033 0xD0E8 +0x83359034 0xD0E9 +0x83359035 0xD0EA +0x83359036 0xD0EB +0x83359037 0xD0EC +0x83359038 0xD0ED +0x83359039 0xD0EE +0x83359130 0xD0EF +0x83359131 0xD0F0 +0x83359132 0xD0F1 +0x83359133 0xD0F2 +0x83359134 0xD0F3 +0x83359135 0xD0F4 +0x83359136 0xD0F5 +0x83359137 0xD0F6 +0x83359138 0xD0F7 +0x83359139 0xD0F8 +0x83359230 0xD0F9 +0x83359231 0xD0FA +0x83359232 0xD0FB +0x83359233 0xD0FC +0x83359234 0xD0FD +0x83359235 0xD0FE +0x83359236 0xD0FF +0x83359237 0xD100 +0x83359238 0xD101 +0x83359239 0xD102 +0x83359330 0xD103 +0x83359331 0xD104 +0x83359332 0xD105 +0x83359333 0xD106 +0x83359334 0xD107 +0x83359335 0xD108 +0x83359336 0xD109 +0x83359337 0xD10A +0x83359338 0xD10B +0x83359339 0xD10C +0x83359430 0xD10D +0x83359431 0xD10E +0x83359432 0xD10F +0x83359433 0xD110 +0x83359434 0xD111 +0x83359435 0xD112 +0x83359436 0xD113 +0x83359437 0xD114 +0x83359438 0xD115 +0x83359439 0xD116 +0x83359530 0xD117 +0x83359531 0xD118 +0x83359532 0xD119 +0x83359533 0xD11A +0x83359534 0xD11B +0x83359535 0xD11C +0x83359536 0xD11D +0x83359537 0xD11E +0x83359538 0xD11F +0x83359539 0xD120 +0x83359630 0xD121 +0x83359631 0xD122 +0x83359632 0xD123 +0x83359633 0xD124 +0x83359634 0xD125 +0x83359635 0xD126 +0x83359636 0xD127 +0x83359637 0xD128 +0x83359638 0xD129 +0x83359639 0xD12A +0x83359730 0xD12B +0x83359731 0xD12C +0x83359732 0xD12D +0x83359733 0xD12E +0x83359734 0xD12F +0x83359735 0xD130 +0x83359736 0xD131 +0x83359737 0xD132 +0x83359738 0xD133 +0x83359739 0xD134 +0x83359830 0xD135 +0x83359831 0xD136 +0x83359832 0xD137 +0x83359833 0xD138 +0x83359834 0xD139 +0x83359835 0xD13A +0x83359836 0xD13B +0x83359837 0xD13C +0x83359838 0xD13D +0x83359839 0xD13E +0x83359930 0xD13F +0x83359931 0xD140 +0x83359932 0xD141 +0x83359933 0xD142 +0x83359934 0xD143 +0x83359935 0xD144 +0x83359936 0xD145 +0x83359937 0xD146 +0x83359938 0xD147 +0x83359939 0xD148 +0x83359A30 0xD149 +0x83359A31 0xD14A +0x83359A32 0xD14B +0x83359A33 0xD14C +0x83359A34 0xD14D +0x83359A35 0xD14E +0x83359A36 0xD14F +0x83359A37 0xD150 +0x83359A38 0xD151 +0x83359A39 0xD152 +0x83359B30 0xD153 +0x83359B31 0xD154 +0x83359B32 0xD155 +0x83359B33 0xD156 +0x83359B34 0xD157 +0x83359B35 0xD158 +0x83359B36 0xD159 +0x83359B37 0xD15A +0x83359B38 0xD15B +0x83359B39 0xD15C +0x83359C30 0xD15D +0x83359C31 0xD15E +0x83359C32 0xD15F +0x83359C33 0xD160 +0x83359C34 0xD161 +0x83359C35 0xD162 +0x83359C36 0xD163 +0x83359C37 0xD164 +0x83359C38 0xD165 +0x83359C39 0xD166 +0x83359D30 0xD167 +0x83359D31 0xD168 +0x83359D32 0xD169 +0x83359D33 0xD16A +0x83359D34 0xD16B +0x83359D35 0xD16C +0x83359D36 0xD16D +0x83359D37 0xD16E +0x83359D38 0xD16F +0x83359D39 0xD170 +0x83359E30 0xD171 +0x83359E31 0xD172 +0x83359E32 0xD173 +0x83359E33 0xD174 +0x83359E34 0xD175 +0x83359E35 0xD176 +0x83359E36 0xD177 +0x83359E37 0xD178 +0x83359E38 0xD179 +0x83359E39 0xD17A +0x83359F30 0xD17B +0x83359F31 0xD17C +0x83359F32 0xD17D +0x83359F33 0xD17E +0x83359F34 0xD17F +0x83359F35 0xD180 +0x83359F36 0xD181 +0x83359F37 0xD182 +0x83359F38 0xD183 +0x83359F39 0xD184 +0x8335A030 0xD185 +0x8335A031 0xD186 +0x8335A032 0xD187 +0x8335A033 0xD188 +0x8335A034 0xD189 +0x8335A035 0xD18A +0x8335A036 0xD18B +0x8335A037 0xD18C +0x8335A038 0xD18D +0x8335A039 0xD18E +0x8335A130 0xD18F +0x8335A131 0xD190 +0x8335A132 0xD191 +0x8335A133 0xD192 +0x8335A134 0xD193 +0x8335A135 0xD194 +0x8335A136 0xD195 +0x8335A137 0xD196 +0x8335A138 0xD197 +0x8335A139 0xD198 +0x8335A230 0xD199 +0x8335A231 0xD19A +0x8335A232 0xD19B +0x8335A233 0xD19C +0x8335A234 0xD19D +0x8335A235 0xD19E +0x8335A236 0xD19F +0x8335A237 0xD1A0 +0x8335A238 0xD1A1 +0x8335A239 0xD1A2 +0x8335A330 0xD1A3 +0x8335A331 0xD1A4 +0x8335A332 0xD1A5 +0x8335A333 0xD1A6 +0x8335A334 0xD1A7 +0x8335A335 0xD1A8 +0x8335A336 0xD1A9 +0x8335A337 0xD1AA +0x8335A338 0xD1AB +0x8335A339 0xD1AC +0x8335A430 0xD1AD +0x8335A431 0xD1AE +0x8335A432 0xD1AF +0x8335A433 0xD1B0 +0x8335A434 0xD1B1 +0x8335A435 0xD1B2 +0x8335A436 0xD1B3 +0x8335A437 0xD1B4 +0x8335A438 0xD1B5 +0x8335A439 0xD1B6 +0x8335A530 0xD1B7 +0x8335A531 0xD1B8 +0x8335A532 0xD1B9 +0x8335A533 0xD1BA +0x8335A534 0xD1BB +0x8335A535 0xD1BC +0x8335A536 0xD1BD +0x8335A537 0xD1BE +0x8335A538 0xD1BF +0x8335A539 0xD1C0 +0x8335A630 0xD1C1 +0x8335A631 0xD1C2 +0x8335A632 0xD1C3 +0x8335A633 0xD1C4 +0x8335A634 0xD1C5 +0x8335A635 0xD1C6 +0x8335A636 0xD1C7 +0x8335A637 0xD1C8 +0x8335A638 0xD1C9 +0x8335A639 0xD1CA +0x8335A730 0xD1CB +0x8335A731 0xD1CC +0x8335A732 0xD1CD +0x8335A733 0xD1CE +0x8335A734 0xD1CF +0x8335A735 0xD1D0 +0x8335A736 0xD1D1 +0x8335A737 0xD1D2 +0x8335A738 0xD1D3 +0x8335A739 0xD1D4 +0x8335A830 0xD1D5 +0x8335A831 0xD1D6 +0x8335A832 0xD1D7 +0x8335A833 0xD1D8 +0x8335A834 0xD1D9 +0x8335A835 0xD1DA +0x8335A836 0xD1DB +0x8335A837 0xD1DC +0x8335A838 0xD1DD +0x8335A839 0xD1DE +0x8335A930 0xD1DF +0x8335A931 0xD1E0 +0x8335A932 0xD1E1 +0x8335A933 0xD1E2 +0x8335A934 0xD1E3 +0x8335A935 0xD1E4 +0x8335A936 0xD1E5 +0x8335A937 0xD1E6 +0x8335A938 0xD1E7 +0x8335A939 0xD1E8 +0x8335AA30 0xD1E9 +0x8335AA31 0xD1EA +0x8335AA32 0xD1EB +0x8335AA33 0xD1EC +0x8335AA34 0xD1ED +0x8335AA35 0xD1EE +0x8335AA36 0xD1EF +0x8335AA37 0xD1F0 +0x8335AA38 0xD1F1 +0x8335AA39 0xD1F2 +0x8335AB30 0xD1F3 +0x8335AB31 0xD1F4 +0x8335AB32 0xD1F5 +0x8335AB33 0xD1F6 +0x8335AB34 0xD1F7 +0x8335AB35 0xD1F8 +0x8335AB36 0xD1F9 +0x8335AB37 0xD1FA +0x8335AB38 0xD1FB +0x8335AB39 0xD1FC +0x8335AC30 0xD1FD +0x8335AC31 0xD1FE +0x8335AC32 0xD1FF +0x8335AC33 0xD200 +0x8335AC34 0xD201 +0x8335AC35 0xD202 +0x8335AC36 0xD203 +0x8335AC37 0xD204 +0x8335AC38 0xD205 +0x8335AC39 0xD206 +0x8335AD30 0xD207 +0x8335AD31 0xD208 +0x8335AD32 0xD209 +0x8335AD33 0xD20A +0x8335AD34 0xD20B +0x8335AD35 0xD20C +0x8335AD36 0xD20D +0x8335AD37 0xD20E +0x8335AD38 0xD20F +0x8335AD39 0xD210 +0x8335AE30 0xD211 +0x8335AE31 0xD212 +0x8335AE32 0xD213 +0x8335AE33 0xD214 +0x8335AE34 0xD215 +0x8335AE35 0xD216 +0x8335AE36 0xD217 +0x8335AE37 0xD218 +0x8335AE38 0xD219 +0x8335AE39 0xD21A +0x8335AF30 0xD21B +0x8335AF31 0xD21C +0x8335AF32 0xD21D +0x8335AF33 0xD21E +0x8335AF34 0xD21F +0x8335AF35 0xD220 +0x8335AF36 0xD221 +0x8335AF37 0xD222 +0x8335AF38 0xD223 +0x8335AF39 0xD224 +0x8335B030 0xD225 +0x8335B031 0xD226 +0x8335B032 0xD227 +0x8335B033 0xD228 +0x8335B034 0xD229 +0x8335B035 0xD22A +0x8335B036 0xD22B +0x8335B037 0xD22C +0x8335B038 0xD22D +0x8335B039 0xD22E +0x8335B130 0xD22F +0x8335B131 0xD230 +0x8335B132 0xD231 +0x8335B133 0xD232 +0x8335B134 0xD233 +0x8335B135 0xD234 +0x8335B136 0xD235 +0x8335B137 0xD236 +0x8335B138 0xD237 +0x8335B139 0xD238 +0x8335B230 0xD239 +0x8335B231 0xD23A +0x8335B232 0xD23B +0x8335B233 0xD23C +0x8335B234 0xD23D +0x8335B235 0xD23E +0x8335B236 0xD23F +0x8335B237 0xD240 +0x8335B238 0xD241 +0x8335B239 0xD242 +0x8335B330 0xD243 +0x8335B331 0xD244 +0x8335B332 0xD245 +0x8335B333 0xD246 +0x8335B334 0xD247 +0x8335B335 0xD248 +0x8335B336 0xD249 +0x8335B337 0xD24A +0x8335B338 0xD24B +0x8335B339 0xD24C +0x8335B430 0xD24D +0x8335B431 0xD24E +0x8335B432 0xD24F +0x8335B433 0xD250 +0x8335B434 0xD251 +0x8335B435 0xD252 +0x8335B436 0xD253 +0x8335B437 0xD254 +0x8335B438 0xD255 +0x8335B439 0xD256 +0x8335B530 0xD257 +0x8335B531 0xD258 +0x8335B532 0xD259 +0x8335B533 0xD25A +0x8335B534 0xD25B +0x8335B535 0xD25C +0x8335B536 0xD25D +0x8335B537 0xD25E +0x8335B538 0xD25F +0x8335B539 0xD260 +0x8335B630 0xD261 +0x8335B631 0xD262 +0x8335B632 0xD263 +0x8335B633 0xD264 +0x8335B634 0xD265 +0x8335B635 0xD266 +0x8335B636 0xD267 +0x8335B637 0xD268 +0x8335B638 0xD269 +0x8335B639 0xD26A +0x8335B730 0xD26B +0x8335B731 0xD26C +0x8335B732 0xD26D +0x8335B733 0xD26E +0x8335B734 0xD26F +0x8335B735 0xD270 +0x8335B736 0xD271 +0x8335B737 0xD272 +0x8335B738 0xD273 +0x8335B739 0xD274 +0x8335B830 0xD275 +0x8335B831 0xD276 +0x8335B832 0xD277 +0x8335B833 0xD278 +0x8335B834 0xD279 +0x8335B835 0xD27A +0x8335B836 0xD27B +0x8335B837 0xD27C +0x8335B838 0xD27D +0x8335B839 0xD27E +0x8335B930 0xD27F +0x8335B931 0xD280 +0x8335B932 0xD281 +0x8335B933 0xD282 +0x8335B934 0xD283 +0x8335B935 0xD284 +0x8335B936 0xD285 +0x8335B937 0xD286 +0x8335B938 0xD287 +0x8335B939 0xD288 +0x8335BA30 0xD289 +0x8335BA31 0xD28A +0x8335BA32 0xD28B +0x8335BA33 0xD28C +0x8335BA34 0xD28D +0x8335BA35 0xD28E +0x8335BA36 0xD28F +0x8335BA37 0xD290 +0x8335BA38 0xD291 +0x8335BA39 0xD292 +0x8335BB30 0xD293 +0x8335BB31 0xD294 +0x8335BB32 0xD295 +0x8335BB33 0xD296 +0x8335BB34 0xD297 +0x8335BB35 0xD298 +0x8335BB36 0xD299 +0x8335BB37 0xD29A +0x8335BB38 0xD29B +0x8335BB39 0xD29C +0x8335BC30 0xD29D +0x8335BC31 0xD29E +0x8335BC32 0xD29F +0x8335BC33 0xD2A0 +0x8335BC34 0xD2A1 +0x8335BC35 0xD2A2 +0x8335BC36 0xD2A3 +0x8335BC37 0xD2A4 +0x8335BC38 0xD2A5 +0x8335BC39 0xD2A6 +0x8335BD30 0xD2A7 +0x8335BD31 0xD2A8 +0x8335BD32 0xD2A9 +0x8335BD33 0xD2AA +0x8335BD34 0xD2AB +0x8335BD35 0xD2AC +0x8335BD36 0xD2AD +0x8335BD37 0xD2AE +0x8335BD38 0xD2AF +0x8335BD39 0xD2B0 +0x8335BE30 0xD2B1 +0x8335BE31 0xD2B2 +0x8335BE32 0xD2B3 +0x8335BE33 0xD2B4 +0x8335BE34 0xD2B5 +0x8335BE35 0xD2B6 +0x8335BE36 0xD2B7 +0x8335BE37 0xD2B8 +0x8335BE38 0xD2B9 +0x8335BE39 0xD2BA +0x8335BF30 0xD2BB +0x8335BF31 0xD2BC +0x8335BF32 0xD2BD +0x8335BF33 0xD2BE +0x8335BF34 0xD2BF +0x8335BF35 0xD2C0 +0x8335BF36 0xD2C1 +0x8335BF37 0xD2C2 +0x8335BF38 0xD2C3 +0x8335BF39 0xD2C4 +0x8335C030 0xD2C5 +0x8335C031 0xD2C6 +0x8335C032 0xD2C7 +0x8335C033 0xD2C8 +0x8335C034 0xD2C9 +0x8335C035 0xD2CA +0x8335C036 0xD2CB +0x8335C037 0xD2CC +0x8335C038 0xD2CD +0x8335C039 0xD2CE +0x8335C130 0xD2CF +0x8335C131 0xD2D0 +0x8335C132 0xD2D1 +0x8335C133 0xD2D2 +0x8335C134 0xD2D3 +0x8335C135 0xD2D4 +0x8335C136 0xD2D5 +0x8335C137 0xD2D6 +0x8335C138 0xD2D7 +0x8335C139 0xD2D8 +0x8335C230 0xD2D9 +0x8335C231 0xD2DA +0x8335C232 0xD2DB +0x8335C233 0xD2DC +0x8335C234 0xD2DD +0x8335C235 0xD2DE +0x8335C236 0xD2DF +0x8335C237 0xD2E0 +0x8335C238 0xD2E1 +0x8335C239 0xD2E2 +0x8335C330 0xD2E3 +0x8335C331 0xD2E4 +0x8335C332 0xD2E5 +0x8335C333 0xD2E6 +0x8335C334 0xD2E7 +0x8335C335 0xD2E8 +0x8335C336 0xD2E9 +0x8335C337 0xD2EA +0x8335C338 0xD2EB +0x8335C339 0xD2EC +0x8335C430 0xD2ED +0x8335C431 0xD2EE +0x8335C432 0xD2EF +0x8335C433 0xD2F0 +0x8335C434 0xD2F1 +0x8335C435 0xD2F2 +0x8335C436 0xD2F3 +0x8335C437 0xD2F4 +0x8335C438 0xD2F5 +0x8335C439 0xD2F6 +0x8335C530 0xD2F7 +0x8335C531 0xD2F8 +0x8335C532 0xD2F9 +0x8335C533 0xD2FA +0x8335C534 0xD2FB +0x8335C535 0xD2FC +0x8335C536 0xD2FD +0x8335C537 0xD2FE +0x8335C538 0xD2FF +0x8335C539 0xD300 +0x8335C630 0xD301 +0x8335C631 0xD302 +0x8335C632 0xD303 +0x8335C633 0xD304 +0x8335C634 0xD305 +0x8335C635 0xD306 +0x8335C636 0xD307 +0x8335C637 0xD308 +0x8335C638 0xD309 +0x8335C639 0xD30A +0x8335C730 0xD30B +0x8335C731 0xD30C +0x8335C732 0xD30D +0x8335C733 0xD30E +0x8335C734 0xD30F +0x8335C735 0xD310 +0x8335C736 0xD311 +0x8335C737 0xD312 +0x8335C738 0xD313 +0x8335C739 0xD314 +0x8335C830 0xD315 +0x8335C831 0xD316 +0x8335C832 0xD317 +0x8335C833 0xD318 +0x8335C834 0xD319 +0x8335C835 0xD31A +0x8335C836 0xD31B +0x8335C837 0xD31C +0x8335C838 0xD31D +0x8335C839 0xD31E +0x8335C930 0xD31F +0x8335C931 0xD320 +0x8335C932 0xD321 +0x8335C933 0xD322 +0x8335C934 0xD323 +0x8335C935 0xD324 +0x8335C936 0xD325 +0x8335C937 0xD326 +0x8335C938 0xD327 +0x8335C939 0xD328 +0x8335CA30 0xD329 +0x8335CA31 0xD32A +0x8335CA32 0xD32B +0x8335CA33 0xD32C +0x8335CA34 0xD32D +0x8335CA35 0xD32E +0x8335CA36 0xD32F +0x8335CA37 0xD330 +0x8335CA38 0xD331 +0x8335CA39 0xD332 +0x8335CB30 0xD333 +0x8335CB31 0xD334 +0x8335CB32 0xD335 +0x8335CB33 0xD336 +0x8335CB34 0xD337 +0x8335CB35 0xD338 +0x8335CB36 0xD339 +0x8335CB37 0xD33A +0x8335CB38 0xD33B +0x8335CB39 0xD33C +0x8335CC30 0xD33D +0x8335CC31 0xD33E +0x8335CC32 0xD33F +0x8335CC33 0xD340 +0x8335CC34 0xD341 +0x8335CC35 0xD342 +0x8335CC36 0xD343 +0x8335CC37 0xD344 +0x8335CC38 0xD345 +0x8335CC39 0xD346 +0x8335CD30 0xD347 +0x8335CD31 0xD348 +0x8335CD32 0xD349 +0x8335CD33 0xD34A +0x8335CD34 0xD34B +0x8335CD35 0xD34C +0x8335CD36 0xD34D +0x8335CD37 0xD34E +0x8335CD38 0xD34F +0x8335CD39 0xD350 +0x8335CE30 0xD351 +0x8335CE31 0xD352 +0x8335CE32 0xD353 +0x8335CE33 0xD354 +0x8335CE34 0xD355 +0x8335CE35 0xD356 +0x8335CE36 0xD357 +0x8335CE37 0xD358 +0x8335CE38 0xD359 +0x8335CE39 0xD35A +0x8335CF30 0xD35B +0x8335CF31 0xD35C +0x8335CF32 0xD35D +0x8335CF33 0xD35E +0x8335CF34 0xD35F +0x8335CF35 0xD360 +0x8335CF36 0xD361 +0x8335CF37 0xD362 +0x8335CF38 0xD363 +0x8335CF39 0xD364 +0x8335D030 0xD365 +0x8335D031 0xD366 +0x8335D032 0xD367 +0x8335D033 0xD368 +0x8335D034 0xD369 +0x8335D035 0xD36A +0x8335D036 0xD36B +0x8335D037 0xD36C +0x8335D038 0xD36D +0x8335D039 0xD36E +0x8335D130 0xD36F +0x8335D131 0xD370 +0x8335D132 0xD371 +0x8335D133 0xD372 +0x8335D134 0xD373 +0x8335D135 0xD374 +0x8335D136 0xD375 +0x8335D137 0xD376 +0x8335D138 0xD377 +0x8335D139 0xD378 +0x8335D230 0xD379 +0x8335D231 0xD37A +0x8335D232 0xD37B +0x8335D233 0xD37C +0x8335D234 0xD37D +0x8335D235 0xD37E +0x8335D236 0xD37F +0x8335D237 0xD380 +0x8335D238 0xD381 +0x8335D239 0xD382 +0x8335D330 0xD383 +0x8335D331 0xD384 +0x8335D332 0xD385 +0x8335D333 0xD386 +0x8335D334 0xD387 +0x8335D335 0xD388 +0x8335D336 0xD389 +0x8335D337 0xD38A +0x8335D338 0xD38B +0x8335D339 0xD38C +0x8335D430 0xD38D +0x8335D431 0xD38E +0x8335D432 0xD38F +0x8335D433 0xD390 +0x8335D434 0xD391 +0x8335D435 0xD392 +0x8335D436 0xD393 +0x8335D437 0xD394 +0x8335D438 0xD395 +0x8335D439 0xD396 +0x8335D530 0xD397 +0x8335D531 0xD398 +0x8335D532 0xD399 +0x8335D533 0xD39A +0x8335D534 0xD39B +0x8335D535 0xD39C +0x8335D536 0xD39D +0x8335D537 0xD39E +0x8335D538 0xD39F +0x8335D539 0xD3A0 +0x8335D630 0xD3A1 +0x8335D631 0xD3A2 +0x8335D632 0xD3A3 +0x8335D633 0xD3A4 +0x8335D634 0xD3A5 +0x8335D635 0xD3A6 +0x8335D636 0xD3A7 +0x8335D637 0xD3A8 +0x8335D638 0xD3A9 +0x8335D639 0xD3AA +0x8335D730 0xD3AB +0x8335D731 0xD3AC +0x8335D732 0xD3AD +0x8335D733 0xD3AE +0x8335D734 0xD3AF +0x8335D735 0xD3B0 +0x8335D736 0xD3B1 +0x8335D737 0xD3B2 +0x8335D738 0xD3B3 +0x8335D739 0xD3B4 +0x8335D830 0xD3B5 +0x8335D831 0xD3B6 +0x8335D832 0xD3B7 +0x8335D833 0xD3B8 +0x8335D834 0xD3B9 +0x8335D835 0xD3BA +0x8335D836 0xD3BB +0x8335D837 0xD3BC +0x8335D838 0xD3BD +0x8335D839 0xD3BE +0x8335D930 0xD3BF +0x8335D931 0xD3C0 +0x8335D932 0xD3C1 +0x8335D933 0xD3C2 +0x8335D934 0xD3C3 +0x8335D935 0xD3C4 +0x8335D936 0xD3C5 +0x8335D937 0xD3C6 +0x8335D938 0xD3C7 +0x8335D939 0xD3C8 +0x8335DA30 0xD3C9 +0x8335DA31 0xD3CA +0x8335DA32 0xD3CB +0x8335DA33 0xD3CC +0x8335DA34 0xD3CD +0x8335DA35 0xD3CE +0x8335DA36 0xD3CF +0x8335DA37 0xD3D0 +0x8335DA38 0xD3D1 +0x8335DA39 0xD3D2 +0x8335DB30 0xD3D3 +0x8335DB31 0xD3D4 +0x8335DB32 0xD3D5 +0x8335DB33 0xD3D6 +0x8335DB34 0xD3D7 +0x8335DB35 0xD3D8 +0x8335DB36 0xD3D9 +0x8335DB37 0xD3DA +0x8335DB38 0xD3DB +0x8335DB39 0xD3DC +0x8335DC30 0xD3DD +0x8335DC31 0xD3DE +0x8335DC32 0xD3DF +0x8335DC33 0xD3E0 +0x8335DC34 0xD3E1 +0x8335DC35 0xD3E2 +0x8335DC36 0xD3E3 +0x8335DC37 0xD3E4 +0x8335DC38 0xD3E5 +0x8335DC39 0xD3E6 +0x8335DD30 0xD3E7 +0x8335DD31 0xD3E8 +0x8335DD32 0xD3E9 +0x8335DD33 0xD3EA +0x8335DD34 0xD3EB +0x8335DD35 0xD3EC +0x8335DD36 0xD3ED +0x8335DD37 0xD3EE +0x8335DD38 0xD3EF +0x8335DD39 0xD3F0 +0x8335DE30 0xD3F1 +0x8335DE31 0xD3F2 +0x8335DE32 0xD3F3 +0x8335DE33 0xD3F4 +0x8335DE34 0xD3F5 +0x8335DE35 0xD3F6 +0x8335DE36 0xD3F7 +0x8335DE37 0xD3F8 +0x8335DE38 0xD3F9 +0x8335DE39 0xD3FA +0x8335DF30 0xD3FB +0x8335DF31 0xD3FC +0x8335DF32 0xD3FD +0x8335DF33 0xD3FE +0x8335DF34 0xD3FF +0x8335DF35 0xD400 +0x8335DF36 0xD401 +0x8335DF37 0xD402 +0x8335DF38 0xD403 +0x8335DF39 0xD404 +0x8335E030 0xD405 +0x8335E031 0xD406 +0x8335E032 0xD407 +0x8335E033 0xD408 +0x8335E034 0xD409 +0x8335E035 0xD40A +0x8335E036 0xD40B +0x8335E037 0xD40C +0x8335E038 0xD40D +0x8335E039 0xD40E +0x8335E130 0xD40F +0x8335E131 0xD410 +0x8335E132 0xD411 +0x8335E133 0xD412 +0x8335E134 0xD413 +0x8335E135 0xD414 +0x8335E136 0xD415 +0x8335E137 0xD416 +0x8335E138 0xD417 +0x8335E139 0xD418 +0x8335E230 0xD419 +0x8335E231 0xD41A +0x8335E232 0xD41B +0x8335E233 0xD41C +0x8335E234 0xD41D +0x8335E235 0xD41E +0x8335E236 0xD41F +0x8335E237 0xD420 +0x8335E238 0xD421 +0x8335E239 0xD422 +0x8335E330 0xD423 +0x8335E331 0xD424 +0x8335E332 0xD425 +0x8335E333 0xD426 +0x8335E334 0xD427 +0x8335E335 0xD428 +0x8335E336 0xD429 +0x8335E337 0xD42A +0x8335E338 0xD42B +0x8335E339 0xD42C +0x8335E430 0xD42D +0x8335E431 0xD42E +0x8335E432 0xD42F +0x8335E433 0xD430 +0x8335E434 0xD431 +0x8335E435 0xD432 +0x8335E436 0xD433 +0x8335E437 0xD434 +0x8335E438 0xD435 +0x8335E439 0xD436 +0x8335E530 0xD437 +0x8335E531 0xD438 +0x8335E532 0xD439 +0x8335E533 0xD43A +0x8335E534 0xD43B +0x8335E535 0xD43C +0x8335E536 0xD43D +0x8335E537 0xD43E +0x8335E538 0xD43F +0x8335E539 0xD440 +0x8335E630 0xD441 +0x8335E631 0xD442 +0x8335E632 0xD443 +0x8335E633 0xD444 +0x8335E634 0xD445 +0x8335E635 0xD446 +0x8335E636 0xD447 +0x8335E637 0xD448 +0x8335E638 0xD449 +0x8335E639 0xD44A +0x8335E730 0xD44B +0x8335E731 0xD44C +0x8335E732 0xD44D +0x8335E733 0xD44E +0x8335E734 0xD44F +0x8335E735 0xD450 +0x8335E736 0xD451 +0x8335E737 0xD452 +0x8335E738 0xD453 +0x8335E739 0xD454 +0x8335E830 0xD455 +0x8335E831 0xD456 +0x8335E832 0xD457 +0x8335E833 0xD458 +0x8335E834 0xD459 +0x8335E835 0xD45A +0x8335E836 0xD45B +0x8335E837 0xD45C +0x8335E838 0xD45D +0x8335E839 0xD45E +0x8335E930 0xD45F +0x8335E931 0xD460 +0x8335E932 0xD461 +0x8335E933 0xD462 +0x8335E934 0xD463 +0x8335E935 0xD464 +0x8335E936 0xD465 +0x8335E937 0xD466 +0x8335E938 0xD467 +0x8335E939 0xD468 +0x8335EA30 0xD469 +0x8335EA31 0xD46A +0x8335EA32 0xD46B +0x8335EA33 0xD46C +0x8335EA34 0xD46D +0x8335EA35 0xD46E +0x8335EA36 0xD46F +0x8335EA37 0xD470 +0x8335EA38 0xD471 +0x8335EA39 0xD472 +0x8335EB30 0xD473 +0x8335EB31 0xD474 +0x8335EB32 0xD475 +0x8335EB33 0xD476 +0x8335EB34 0xD477 +0x8335EB35 0xD478 +0x8335EB36 0xD479 +0x8335EB37 0xD47A +0x8335EB38 0xD47B +0x8335EB39 0xD47C +0x8335EC30 0xD47D +0x8335EC31 0xD47E +0x8335EC32 0xD47F +0x8335EC33 0xD480 +0x8335EC34 0xD481 +0x8335EC35 0xD482 +0x8335EC36 0xD483 +0x8335EC37 0xD484 +0x8335EC38 0xD485 +0x8335EC39 0xD486 +0x8335ED30 0xD487 +0x8335ED31 0xD488 +0x8335ED32 0xD489 +0x8335ED33 0xD48A +0x8335ED34 0xD48B +0x8335ED35 0xD48C +0x8335ED36 0xD48D +0x8335ED37 0xD48E +0x8335ED38 0xD48F +0x8335ED39 0xD490 +0x8335EE30 0xD491 +0x8335EE31 0xD492 +0x8335EE32 0xD493 +0x8335EE33 0xD494 +0x8335EE34 0xD495 +0x8335EE35 0xD496 +0x8335EE36 0xD497 +0x8335EE37 0xD498 +0x8335EE38 0xD499 +0x8335EE39 0xD49A +0x8335EF30 0xD49B +0x8335EF31 0xD49C +0x8335EF32 0xD49D +0x8335EF33 0xD49E +0x8335EF34 0xD49F +0x8335EF35 0xD4A0 +0x8335EF36 0xD4A1 +0x8335EF37 0xD4A2 +0x8335EF38 0xD4A3 +0x8335EF39 0xD4A4 +0x8335F030 0xD4A5 +0x8335F031 0xD4A6 +0x8335F032 0xD4A7 +0x8335F033 0xD4A8 +0x8335F034 0xD4A9 +0x8335F035 0xD4AA +0x8335F036 0xD4AB +0x8335F037 0xD4AC +0x8335F038 0xD4AD +0x8335F039 0xD4AE +0x8335F130 0xD4AF +0x8335F131 0xD4B0 +0x8335F132 0xD4B1 +0x8335F133 0xD4B2 +0x8335F134 0xD4B3 +0x8335F135 0xD4B4 +0x8335F136 0xD4B5 +0x8335F137 0xD4B6 +0x8335F138 0xD4B7 +0x8335F139 0xD4B8 +0x8335F230 0xD4B9 +0x8335F231 0xD4BA +0x8335F232 0xD4BB +0x8335F233 0xD4BC +0x8335F234 0xD4BD +0x8335F235 0xD4BE +0x8335F236 0xD4BF +0x8335F237 0xD4C0 +0x8335F238 0xD4C1 +0x8335F239 0xD4C2 +0x8335F330 0xD4C3 +0x8335F331 0xD4C4 +0x8335F332 0xD4C5 +0x8335F333 0xD4C6 +0x8335F334 0xD4C7 +0x8335F335 0xD4C8 +0x8335F336 0xD4C9 +0x8335F337 0xD4CA +0x8335F338 0xD4CB +0x8335F339 0xD4CC +0x8335F430 0xD4CD +0x8335F431 0xD4CE +0x8335F432 0xD4CF +0x8335F433 0xD4D0 +0x8335F434 0xD4D1 +0x8335F435 0xD4D2 +0x8335F436 0xD4D3 +0x8335F437 0xD4D4 +0x8335F438 0xD4D5 +0x8335F439 0xD4D6 +0x8335F530 0xD4D7 +0x8335F531 0xD4D8 +0x8335F532 0xD4D9 +0x8335F533 0xD4DA +0x8335F534 0xD4DB +0x8335F535 0xD4DC +0x8335F536 0xD4DD +0x8335F537 0xD4DE +0x8335F538 0xD4DF +0x8335F539 0xD4E0 +0x8335F630 0xD4E1 +0x8335F631 0xD4E2 +0x8335F632 0xD4E3 +0x8335F633 0xD4E4 +0x8335F634 0xD4E5 +0x8335F635 0xD4E6 +0x8335F636 0xD4E7 +0x8335F637 0xD4E8 +0x8335F638 0xD4E9 +0x8335F639 0xD4EA +0x8335F730 0xD4EB +0x8335F731 0xD4EC +0x8335F732 0xD4ED +0x8335F733 0xD4EE +0x8335F734 0xD4EF +0x8335F735 0xD4F0 +0x8335F736 0xD4F1 +0x8335F737 0xD4F2 +0x8335F738 0xD4F3 +0x8335F739 0xD4F4 +0x8335F830 0xD4F5 +0x8335F831 0xD4F6 +0x8335F832 0xD4F7 +0x8335F833 0xD4F8 +0x8335F834 0xD4F9 +0x8335F835 0xD4FA +0x8335F836 0xD4FB +0x8335F837 0xD4FC +0x8335F838 0xD4FD +0x8335F839 0xD4FE +0x8335F930 0xD4FF +0x8335F931 0xD500 +0x8335F932 0xD501 +0x8335F933 0xD502 +0x8335F934 0xD503 +0x8335F935 0xD504 +0x8335F936 0xD505 +0x8335F937 0xD506 +0x8335F938 0xD507 +0x8335F939 0xD508 +0x8335FA30 0xD509 +0x8335FA31 0xD50A +0x8335FA32 0xD50B +0x8335FA33 0xD50C +0x8335FA34 0xD50D +0x8335FA35 0xD50E +0x8335FA36 0xD50F +0x8335FA37 0xD510 +0x8335FA38 0xD511 +0x8335FA39 0xD512 +0x8335FB30 0xD513 +0x8335FB31 0xD514 +0x8335FB32 0xD515 +0x8335FB33 0xD516 +0x8335FB34 0xD517 +0x8335FB35 0xD518 +0x8335FB36 0xD519 +0x8335FB37 0xD51A +0x8335FB38 0xD51B +0x8335FB39 0xD51C +0x8335FC30 0xD51D +0x8335FC31 0xD51E +0x8335FC32 0xD51F +0x8335FC33 0xD520 +0x8335FC34 0xD521 +0x8335FC35 0xD522 +0x8335FC36 0xD523 +0x8335FC37 0xD524 +0x8335FC38 0xD525 +0x8335FC39 0xD526 +0x8335FD30 0xD527 +0x8335FD31 0xD528 +0x8335FD32 0xD529 +0x8335FD33 0xD52A +0x8335FD34 0xD52B +0x8335FD35 0xD52C +0x8335FD36 0xD52D +0x8335FD37 0xD52E +0x8335FD38 0xD52F +0x8335FD39 0xD530 +0x8335FE30 0xD531 +0x8335FE31 0xD532 +0x8335FE32 0xD533 +0x8335FE33 0xD534 +0x8335FE34 0xD535 +0x8335FE35 0xD536 +0x8335FE36 0xD537 +0x8335FE37 0xD538 +0x8335FE38 0xD539 +0x8335FE39 0xD53A +0x83368130 0xD53B +0x83368131 0xD53C +0x83368132 0xD53D +0x83368133 0xD53E +0x83368134 0xD53F +0x83368135 0xD540 +0x83368136 0xD541 +0x83368137 0xD542 +0x83368138 0xD543 +0x83368139 0xD544 +0x83368230 0xD545 +0x83368231 0xD546 +0x83368232 0xD547 +0x83368233 0xD548 +0x83368234 0xD549 +0x83368235 0xD54A +0x83368236 0xD54B +0x83368237 0xD54C +0x83368238 0xD54D +0x83368239 0xD54E +0x83368330 0xD54F +0x83368331 0xD550 +0x83368332 0xD551 +0x83368333 0xD552 +0x83368334 0xD553 +0x83368335 0xD554 +0x83368336 0xD555 +0x83368337 0xD556 +0x83368338 0xD557 +0x83368339 0xD558 +0x83368430 0xD559 +0x83368431 0xD55A +0x83368432 0xD55B +0x83368433 0xD55C +0x83368434 0xD55D +0x83368435 0xD55E +0x83368436 0xD55F +0x83368437 0xD560 +0x83368438 0xD561 +0x83368439 0xD562 +0x83368530 0xD563 +0x83368531 0xD564 +0x83368532 0xD565 +0x83368533 0xD566 +0x83368534 0xD567 +0x83368535 0xD568 +0x83368536 0xD569 +0x83368537 0xD56A +0x83368538 0xD56B +0x83368539 0xD56C +0x83368630 0xD56D +0x83368631 0xD56E +0x83368632 0xD56F +0x83368633 0xD570 +0x83368634 0xD571 +0x83368635 0xD572 +0x83368636 0xD573 +0x83368637 0xD574 +0x83368638 0xD575 +0x83368639 0xD576 +0x83368730 0xD577 +0x83368731 0xD578 +0x83368732 0xD579 +0x83368733 0xD57A +0x83368734 0xD57B +0x83368735 0xD57C +0x83368736 0xD57D +0x83368737 0xD57E +0x83368738 0xD57F +0x83368739 0xD580 +0x83368830 0xD581 +0x83368831 0xD582 +0x83368832 0xD583 +0x83368833 0xD584 +0x83368834 0xD585 +0x83368835 0xD586 +0x83368836 0xD587 +0x83368837 0xD588 +0x83368838 0xD589 +0x83368839 0xD58A +0x83368930 0xD58B +0x83368931 0xD58C +0x83368932 0xD58D +0x83368933 0xD58E +0x83368934 0xD58F +0x83368935 0xD590 +0x83368936 0xD591 +0x83368937 0xD592 +0x83368938 0xD593 +0x83368939 0xD594 +0x83368A30 0xD595 +0x83368A31 0xD596 +0x83368A32 0xD597 +0x83368A33 0xD598 +0x83368A34 0xD599 +0x83368A35 0xD59A +0x83368A36 0xD59B +0x83368A37 0xD59C +0x83368A38 0xD59D +0x83368A39 0xD59E +0x83368B30 0xD59F +0x83368B31 0xD5A0 +0x83368B32 0xD5A1 +0x83368B33 0xD5A2 +0x83368B34 0xD5A3 +0x83368B35 0xD5A4 +0x83368B36 0xD5A5 +0x83368B37 0xD5A6 +0x83368B38 0xD5A7 +0x83368B39 0xD5A8 +0x83368C30 0xD5A9 +0x83368C31 0xD5AA +0x83368C32 0xD5AB +0x83368C33 0xD5AC +0x83368C34 0xD5AD +0x83368C35 0xD5AE +0x83368C36 0xD5AF +0x83368C37 0xD5B0 +0x83368C38 0xD5B1 +0x83368C39 0xD5B2 +0x83368D30 0xD5B3 +0x83368D31 0xD5B4 +0x83368D32 0xD5B5 +0x83368D33 0xD5B6 +0x83368D34 0xD5B7 +0x83368D35 0xD5B8 +0x83368D36 0xD5B9 +0x83368D37 0xD5BA +0x83368D38 0xD5BB +0x83368D39 0xD5BC +0x83368E30 0xD5BD +0x83368E31 0xD5BE +0x83368E32 0xD5BF +0x83368E33 0xD5C0 +0x83368E34 0xD5C1 +0x83368E35 0xD5C2 +0x83368E36 0xD5C3 +0x83368E37 0xD5C4 +0x83368E38 0xD5C5 +0x83368E39 0xD5C6 +0x83368F30 0xD5C7 +0x83368F31 0xD5C8 +0x83368F32 0xD5C9 +0x83368F33 0xD5CA +0x83368F34 0xD5CB +0x83368F35 0xD5CC +0x83368F36 0xD5CD +0x83368F37 0xD5CE +0x83368F38 0xD5CF +0x83368F39 0xD5D0 +0x83369030 0xD5D1 +0x83369031 0xD5D2 +0x83369032 0xD5D3 +0x83369033 0xD5D4 +0x83369034 0xD5D5 +0x83369035 0xD5D6 +0x83369036 0xD5D7 +0x83369037 0xD5D8 +0x83369038 0xD5D9 +0x83369039 0xD5DA +0x83369130 0xD5DB +0x83369131 0xD5DC +0x83369132 0xD5DD +0x83369133 0xD5DE +0x83369134 0xD5DF +0x83369135 0xD5E0 +0x83369136 0xD5E1 +0x83369137 0xD5E2 +0x83369138 0xD5E3 +0x83369139 0xD5E4 +0x83369230 0xD5E5 +0x83369231 0xD5E6 +0x83369232 0xD5E7 +0x83369233 0xD5E8 +0x83369234 0xD5E9 +0x83369235 0xD5EA +0x83369236 0xD5EB +0x83369237 0xD5EC +0x83369238 0xD5ED +0x83369239 0xD5EE +0x83369330 0xD5EF +0x83369331 0xD5F0 +0x83369332 0xD5F1 +0x83369333 0xD5F2 +0x83369334 0xD5F3 +0x83369335 0xD5F4 +0x83369336 0xD5F5 +0x83369337 0xD5F6 +0x83369338 0xD5F7 +0x83369339 0xD5F8 +0x83369430 0xD5F9 +0x83369431 0xD5FA +0x83369432 0xD5FB +0x83369433 0xD5FC +0x83369434 0xD5FD +0x83369435 0xD5FE +0x83369436 0xD5FF +0x83369437 0xD600 +0x83369438 0xD601 +0x83369439 0xD602 +0x83369530 0xD603 +0x83369531 0xD604 +0x83369532 0xD605 +0x83369533 0xD606 +0x83369534 0xD607 +0x83369535 0xD608 +0x83369536 0xD609 +0x83369537 0xD60A +0x83369538 0xD60B +0x83369539 0xD60C +0x83369630 0xD60D +0x83369631 0xD60E +0x83369632 0xD60F +0x83369633 0xD610 +0x83369634 0xD611 +0x83369635 0xD612 +0x83369636 0xD613 +0x83369637 0xD614 +0x83369638 0xD615 +0x83369639 0xD616 +0x83369730 0xD617 +0x83369731 0xD618 +0x83369732 0xD619 +0x83369733 0xD61A +0x83369734 0xD61B +0x83369735 0xD61C +0x83369736 0xD61D +0x83369737 0xD61E +0x83369738 0xD61F +0x83369739 0xD620 +0x83369830 0xD621 +0x83369831 0xD622 +0x83369832 0xD623 +0x83369833 0xD624 +0x83369834 0xD625 +0x83369835 0xD626 +0x83369836 0xD627 +0x83369837 0xD628 +0x83369838 0xD629 +0x83369839 0xD62A +0x83369930 0xD62B +0x83369931 0xD62C +0x83369932 0xD62D +0x83369933 0xD62E +0x83369934 0xD62F +0x83369935 0xD630 +0x83369936 0xD631 +0x83369937 0xD632 +0x83369938 0xD633 +0x83369939 0xD634 +0x83369A30 0xD635 +0x83369A31 0xD636 +0x83369A32 0xD637 +0x83369A33 0xD638 +0x83369A34 0xD639 +0x83369A35 0xD63A +0x83369A36 0xD63B +0x83369A37 0xD63C +0x83369A38 0xD63D +0x83369A39 0xD63E +0x83369B30 0xD63F +0x83369B31 0xD640 +0x83369B32 0xD641 +0x83369B33 0xD642 +0x83369B34 0xD643 +0x83369B35 0xD644 +0x83369B36 0xD645 +0x83369B37 0xD646 +0x83369B38 0xD647 +0x83369B39 0xD648 +0x83369C30 0xD649 +0x83369C31 0xD64A +0x83369C32 0xD64B +0x83369C33 0xD64C +0x83369C34 0xD64D +0x83369C35 0xD64E +0x83369C36 0xD64F +0x83369C37 0xD650 +0x83369C38 0xD651 +0x83369C39 0xD652 +0x83369D30 0xD653 +0x83369D31 0xD654 +0x83369D32 0xD655 +0x83369D33 0xD656 +0x83369D34 0xD657 +0x83369D35 0xD658 +0x83369D36 0xD659 +0x83369D37 0xD65A +0x83369D38 0xD65B +0x83369D39 0xD65C +0x83369E30 0xD65D +0x83369E31 0xD65E +0x83369E32 0xD65F +0x83369E33 0xD660 +0x83369E34 0xD661 +0x83369E35 0xD662 +0x83369E36 0xD663 +0x83369E37 0xD664 +0x83369E38 0xD665 +0x83369E39 0xD666 +0x83369F30 0xD667 +0x83369F31 0xD668 +0x83369F32 0xD669 +0x83369F33 0xD66A +0x83369F34 0xD66B +0x83369F35 0xD66C +0x83369F36 0xD66D +0x83369F37 0xD66E +0x83369F38 0xD66F +0x83369F39 0xD670 +0x8336A030 0xD671 +0x8336A031 0xD672 +0x8336A032 0xD673 +0x8336A033 0xD674 +0x8336A034 0xD675 +0x8336A035 0xD676 +0x8336A036 0xD677 +0x8336A037 0xD678 +0x8336A038 0xD679 +0x8336A039 0xD67A +0x8336A130 0xD67B +0x8336A131 0xD67C +0x8336A132 0xD67D +0x8336A133 0xD67E +0x8336A134 0xD67F +0x8336A135 0xD680 +0x8336A136 0xD681 +0x8336A137 0xD682 +0x8336A138 0xD683 +0x8336A139 0xD684 +0x8336A230 0xD685 +0x8336A231 0xD686 +0x8336A232 0xD687 +0x8336A233 0xD688 +0x8336A234 0xD689 +0x8336A235 0xD68A +0x8336A236 0xD68B +0x8336A237 0xD68C +0x8336A238 0xD68D +0x8336A239 0xD68E +0x8336A330 0xD68F +0x8336A331 0xD690 +0x8336A332 0xD691 +0x8336A333 0xD692 +0x8336A334 0xD693 +0x8336A335 0xD694 +0x8336A336 0xD695 +0x8336A337 0xD696 +0x8336A338 0xD697 +0x8336A339 0xD698 +0x8336A430 0xD699 +0x8336A431 0xD69A +0x8336A432 0xD69B +0x8336A433 0xD69C +0x8336A434 0xD69D +0x8336A435 0xD69E +0x8336A436 0xD69F +0x8336A437 0xD6A0 +0x8336A438 0xD6A1 +0x8336A439 0xD6A2 +0x8336A530 0xD6A3 +0x8336A531 0xD6A4 +0x8336A532 0xD6A5 +0x8336A533 0xD6A6 +0x8336A534 0xD6A7 +0x8336A535 0xD6A8 +0x8336A536 0xD6A9 +0x8336A537 0xD6AA +0x8336A538 0xD6AB +0x8336A539 0xD6AC +0x8336A630 0xD6AD +0x8336A631 0xD6AE +0x8336A632 0xD6AF +0x8336A633 0xD6B0 +0x8336A634 0xD6B1 +0x8336A635 0xD6B2 +0x8336A636 0xD6B3 +0x8336A637 0xD6B4 +0x8336A638 0xD6B5 +0x8336A639 0xD6B6 +0x8336A730 0xD6B7 +0x8336A731 0xD6B8 +0x8336A732 0xD6B9 +0x8336A733 0xD6BA +0x8336A734 0xD6BB +0x8336A735 0xD6BC +0x8336A736 0xD6BD +0x8336A737 0xD6BE +0x8336A738 0xD6BF +0x8336A739 0xD6C0 +0x8336A830 0xD6C1 +0x8336A831 0xD6C2 +0x8336A832 0xD6C3 +0x8336A833 0xD6C4 +0x8336A834 0xD6C5 +0x8336A835 0xD6C6 +0x8336A836 0xD6C7 +0x8336A837 0xD6C8 +0x8336A838 0xD6C9 +0x8336A839 0xD6CA +0x8336A930 0xD6CB +0x8336A931 0xD6CC +0x8336A932 0xD6CD +0x8336A933 0xD6CE +0x8336A934 0xD6CF +0x8336A935 0xD6D0 +0x8336A936 0xD6D1 +0x8336A937 0xD6D2 +0x8336A938 0xD6D3 +0x8336A939 0xD6D4 +0x8336AA30 0xD6D5 +0x8336AA31 0xD6D6 +0x8336AA32 0xD6D7 +0x8336AA33 0xD6D8 +0x8336AA34 0xD6D9 +0x8336AA35 0xD6DA +0x8336AA36 0xD6DB +0x8336AA37 0xD6DC +0x8336AA38 0xD6DD +0x8336AA39 0xD6DE +0x8336AB30 0xD6DF +0x8336AB31 0xD6E0 +0x8336AB32 0xD6E1 +0x8336AB33 0xD6E2 +0x8336AB34 0xD6E3 +0x8336AB35 0xD6E4 +0x8336AB36 0xD6E5 +0x8336AB37 0xD6E6 +0x8336AB38 0xD6E7 +0x8336AB39 0xD6E8 +0x8336AC30 0xD6E9 +0x8336AC31 0xD6EA +0x8336AC32 0xD6EB +0x8336AC33 0xD6EC +0x8336AC34 0xD6ED +0x8336AC35 0xD6EE +0x8336AC36 0xD6EF +0x8336AC37 0xD6F0 +0x8336AC38 0xD6F1 +0x8336AC39 0xD6F2 +0x8336AD30 0xD6F3 +0x8336AD31 0xD6F4 +0x8336AD32 0xD6F5 +0x8336AD33 0xD6F6 +0x8336AD34 0xD6F7 +0x8336AD35 0xD6F8 +0x8336AD36 0xD6F9 +0x8336AD37 0xD6FA +0x8336AD38 0xD6FB +0x8336AD39 0xD6FC +0x8336AE30 0xD6FD +0x8336AE31 0xD6FE +0x8336AE32 0xD6FF +0x8336AE33 0xD700 +0x8336AE34 0xD701 +0x8336AE35 0xD702 +0x8336AE36 0xD703 +0x8336AE37 0xD704 +0x8336AE38 0xD705 +0x8336AE39 0xD706 +0x8336AF30 0xD707 +0x8336AF31 0xD708 +0x8336AF32 0xD709 +0x8336AF33 0xD70A +0x8336AF34 0xD70B +0x8336AF35 0xD70C +0x8336AF36 0xD70D +0x8336AF37 0xD70E +0x8336AF38 0xD70F +0x8336AF39 0xD710 +0x8336B030 0xD711 +0x8336B031 0xD712 +0x8336B032 0xD713 +0x8336B033 0xD714 +0x8336B034 0xD715 +0x8336B035 0xD716 +0x8336B036 0xD717 +0x8336B037 0xD718 +0x8336B038 0xD719 +0x8336B039 0xD71A +0x8336B130 0xD71B +0x8336B131 0xD71C +0x8336B132 0xD71D +0x8336B133 0xD71E +0x8336B134 0xD71F +0x8336B135 0xD720 +0x8336B136 0xD721 +0x8336B137 0xD722 +0x8336B138 0xD723 +0x8336B139 0xD724 +0x8336B230 0xD725 +0x8336B231 0xD726 +0x8336B232 0xD727 +0x8336B233 0xD728 +0x8336B234 0xD729 +0x8336B235 0xD72A +0x8336B236 0xD72B +0x8336B237 0xD72C +0x8336B238 0xD72D +0x8336B239 0xD72E +0x8336B330 0xD72F +0x8336B331 0xD730 +0x8336B332 0xD731 +0x8336B333 0xD732 +0x8336B334 0xD733 +0x8336B335 0xD734 +0x8336B336 0xD735 +0x8336B337 0xD736 +0x8336B338 0xD737 +0x8336B339 0xD738 +0x8336B430 0xD739 +0x8336B431 0xD73A +0x8336B432 0xD73B +0x8336B433 0xD73C +0x8336B434 0xD73D +0x8336B435 0xD73E +0x8336B436 0xD73F +0x8336B437 0xD740 +0x8336B438 0xD741 +0x8336B439 0xD742 +0x8336B530 0xD743 +0x8336B531 0xD744 +0x8336B532 0xD745 +0x8336B533 0xD746 +0x8336B534 0xD747 +0x8336B535 0xD748 +0x8336B536 0xD749 +0x8336B537 0xD74A +0x8336B538 0xD74B +0x8336B539 0xD74C +0x8336B630 0xD74D +0x8336B631 0xD74E +0x8336B632 0xD74F +0x8336B633 0xD750 +0x8336B634 0xD751 +0x8336B635 0xD752 +0x8336B636 0xD753 +0x8336B637 0xD754 +0x8336B638 0xD755 +0x8336B639 0xD756 +0x8336B730 0xD757 +0x8336B731 0xD758 +0x8336B732 0xD759 +0x8336B733 0xD75A +0x8336B734 0xD75B +0x8336B735 0xD75C +0x8336B736 0xD75D +0x8336B737 0xD75E +0x8336B738 0xD75F +0x8336B739 0xD760 +0x8336B830 0xD761 +0x8336B831 0xD762 +0x8336B832 0xD763 +0x8336B833 0xD764 +0x8336B834 0xD765 +0x8336B835 0xD766 +0x8336B836 0xD767 +0x8336B837 0xD768 +0x8336B838 0xD769 +0x8336B839 0xD76A +0x8336B930 0xD76B +0x8336B931 0xD76C +0x8336B932 0xD76D +0x8336B933 0xD76E +0x8336B934 0xD76F +0x8336B935 0xD770 +0x8336B936 0xD771 +0x8336B937 0xD772 +0x8336B938 0xD773 +0x8336B939 0xD774 +0x8336BA30 0xD775 +0x8336BA31 0xD776 +0x8336BA32 0xD777 +0x8336BA33 0xD778 +0x8336BA34 0xD779 +0x8336BA35 0xD77A +0x8336BA36 0xD77B +0x8336BA37 0xD77C +0x8336BA38 0xD77D +0x8336BA39 0xD77E +0x8336BB30 0xD77F +0x8336BB31 0xD780 +0x8336BB32 0xD781 +0x8336BB33 0xD782 +0x8336BB34 0xD783 +0x8336BB35 0xD784 +0x8336BB36 0xD785 +0x8336BB37 0xD786 +0x8336BB38 0xD787 +0x8336BB39 0xD788 +0x8336BC30 0xD789 +0x8336BC31 0xD78A +0x8336BC32 0xD78B +0x8336BC33 0xD78C +0x8336BC34 0xD78D +0x8336BC35 0xD78E +0x8336BC36 0xD78F +0x8336BC37 0xD790 +0x8336BC38 0xD791 +0x8336BC39 0xD792 +0x8336BD30 0xD793 +0x8336BD31 0xD794 +0x8336BD32 0xD795 +0x8336BD33 0xD796 +0x8336BD34 0xD797 +0x8336BD35 0xD798 +0x8336BD36 0xD799 +0x8336BD37 0xD79A +0x8336BD38 0xD79B +0x8336BD39 0xD79C +0x8336BE30 0xD79D +0x8336BE31 0xD79E +0x8336BE32 0xD79F +0x8336BE33 0xD7A0 +0x8336BE34 0xD7A1 +0x8336BE35 0xD7A2 +0x8336BE36 0xD7A3 +0x8336BE37 0xD7A4 +0x8336BE38 0xD7A5 +0x8336BE39 0xD7A6 +0x8336BF30 0xD7A7 +0x8336BF31 0xD7A8 +0x8336BF32 0xD7A9 +0x8336BF33 0xD7AA +0x8336BF34 0xD7AB +0x8336BF35 0xD7AC +0x8336BF36 0xD7AD +0x8336BF37 0xD7AE +0x8336BF38 0xD7AF +0x8336BF39 0xD7B0 +0x8336C030 0xD7B1 +0x8336C031 0xD7B2 +0x8336C032 0xD7B3 +0x8336C033 0xD7B4 +0x8336C034 0xD7B5 +0x8336C035 0xD7B6 +0x8336C036 0xD7B7 +0x8336C037 0xD7B8 +0x8336C038 0xD7B9 +0x8336C039 0xD7BA +0x8336C130 0xD7BB +0x8336C131 0xD7BC +0x8336C132 0xD7BD +0x8336C133 0xD7BE +0x8336C134 0xD7BF +0x8336C135 0xD7C0 +0x8336C136 0xD7C1 +0x8336C137 0xD7C2 +0x8336C138 0xD7C3 +0x8336C139 0xD7C4 +0x8336C230 0xD7C5 +0x8336C231 0xD7C6 +0x8336C232 0xD7C7 +0x8336C233 0xD7C8 +0x8336C234 0xD7C9 +0x8336C235 0xD7CA +0x8336C236 0xD7CB +0x8336C237 0xD7CC +0x8336C238 0xD7CD +0x8336C239 0xD7CE +0x8336C330 0xD7CF +0x8336C331 0xD7D0 +0x8336C332 0xD7D1 +0x8336C333 0xD7D2 +0x8336C334 0xD7D3 +0x8336C335 0xD7D4 +0x8336C336 0xD7D5 +0x8336C337 0xD7D6 +0x8336C338 0xD7D7 +0x8336C339 0xD7D8 +0x8336C430 0xD7D9 +0x8336C431 0xD7DA +0x8336C432 0xD7DB +0x8336C433 0xD7DC +0x8336C434 0xD7DD +0x8336C435 0xD7DE +0x8336C436 0xD7DF +0x8336C437 0xD7E0 +0x8336C438 0xD7E1 +0x8336C439 0xD7E2 +0x8336C530 0xD7E3 +0x8336C531 0xD7E4 +0x8336C532 0xD7E5 +0x8336C533 0xD7E6 +0x8336C534 0xD7E7 +0x8336C535 0xD7E8 +0x8336C536 0xD7E9 +0x8336C537 0xD7EA +0x8336C538 0xD7EB +0x8336C539 0xD7EC +0x8336C630 0xD7ED +0x8336C631 0xD7EE +0x8336C632 0xD7EF +0x8336C633 0xD7F0 +0x8336C634 0xD7F1 +0x8336C635 0xD7F2 +0x8336C636 0xD7F3 +0x8336C637 0xD7F4 +0x8336C638 0xD7F5 +0x8336C639 0xD7F6 +0x8336C730 0xD7F7 +0x8336C731 0xD7F8 +0x8336C732 0xD7F9 +0x8336C733 0xD7FA +0x8336C734 0xD7FB +0x8336C735 0xD7FC +0x8336C736 0xD7FD +0x8336C737 0xD7FE +0x8336C738 0xD7FF +0x8336C739 0xE76C +0x8336C830 0xE7C8 +0x8336C831 0xE7E7 +0x8336C832 0xE7E8 +0x8336C833 0xE7E9 +0x8336C834 0xE7EA +0x8336C835 0xE7EB +0x8336C836 0xE7EC +0x8336C837 0xE7ED +0x8336C838 0xE7EE +0x8336C839 0xE7EF +0x8336C930 0xE7F0 +0x8336C931 0xE7F1 +0x8336C932 0xE7F2 +0x8336C933 0xE7F3 +0x8336C934 0xE815 +0x8336C935 0xE819 +0x8336C936 0xE81A +0x8336C937 0xE81B +0x8336C938 0xE81C +0x8336C939 0xE81D +0x8336CA30 0xE81F +0x8336CA31 0xE820 +0x8336CA32 0xE821 +0x8336CA33 0xE822 +0x8336CA34 0xE823 +0x8336CA35 0xE824 +0x8336CA36 0xE825 +0x8336CA37 0xE827 +0x8336CA38 0xE828 +0x8336CA39 0xE829 +0x8336CB30 0xE82A +0x8336CB31 0xE82D +0x8336CB32 0xE82E +0x8336CB33 0xE82F +0x8336CB34 0xE830 +0x8336CB35 0xE833 +0x8336CB36 0xE834 +0x8336CB37 0xE835 +0x8336CB38 0xE836 +0x8336CB39 0xE837 +0x8336CC30 0xE838 +0x8336CC31 0xE839 +0x8336CC32 0xE83A +0x8336CC33 0xE83C +0x8336CC34 0xE83D +0x8336CC35 0xE83E +0x8336CC36 0xE83F +0x8336CC37 0xE840 +0x8336CC38 0xE841 +0x8336CC39 0xE842 +0x8336CD30 0xE844 +0x8336CD31 0xE845 +0x8336CD32 0xE846 +0x8336CD33 0xE847 +0x8336CD34 0xE848 +0x8336CD35 0xE849 +0x8336CD36 0xE84A +0x8336CD37 0xE84B +0x8336CD38 0xE84C +0x8336CD39 0xE84D +0x8336CE30 0xE84E +0x8336CE31 0xE84F +0x8336CE32 0xE850 +0x8336CE33 0xE851 +0x8336CE34 0xE852 +0x8336CE35 0xE853 +0x8336CE36 0xE856 +0x8336CE37 0xE857 +0x8336CE38 0xE858 +0x8336CE39 0xE859 +0x8336CF30 0xE85A +0x8336CF31 0xE85B +0x8336CF32 0xE85C +0x8336CF33 0xE85D +0x8336CF34 0xE85E +0x8336CF35 0xE85F +0x8336CF36 0xE860 +0x8336CF37 0xE861 +0x8336CF38 0xE862 +0x8336CF39 0xE863 +0x8336D030 0xE865 +0x8336D031 0xE866 +0x8336D032 0xE867 +0x8336D033 0xE868 +0x8336D034 0xE869 +0x8336D035 0xE86A +0x8336D036 0xE86B +0x8336D037 0xE86C +0x8336D038 0xE86D +0x8336D039 0xE86E +0x8336D130 0xE86F +0x8336D131 0xE870 +0x8336D132 0xE871 +0x8336D133 0xE872 +0x8336D134 0xE873 +0x8336D135 0xE874 +0x8336D136 0xE875 +0x8336D137 0xE876 +0x8336D138 0xE877 +0x8336D139 0xE878 +0x8336D230 0xE879 +0x8336D231 0xE87A +0x8336D232 0xE87B +0x8336D233 0xE87C +0x8336D234 0xE87D +0x8336D235 0xE87E +0x8336D236 0xE87F +0x8336D237 0xE880 +0x8336D238 0xE881 +0x8336D239 0xE882 +0x8336D330 0xE883 +0x8336D331 0xE884 +0x8336D332 0xE885 +0x8336D333 0xE886 +0x8336D334 0xE887 +0x8336D335 0xE888 +0x8336D336 0xE889 +0x8336D337 0xE88A +0x8336D338 0xE88B +0x8336D339 0xE88C +0x8336D430 0xE88D +0x8336D431 0xE88E +0x8336D432 0xE88F +0x8336D433 0xE890 +0x8336D434 0xE891 +0x8336D435 0xE892 +0x8336D436 0xE893 +0x8336D437 0xE894 +0x8336D438 0xE895 +0x8336D439 0xE896 +0x8336D530 0xE897 +0x8336D531 0xE898 +0x8336D532 0xE899 +0x8336D533 0xE89A +0x8336D534 0xE89B +0x8336D535 0xE89C +0x8336D536 0xE89D +0x8336D537 0xE89E +0x8336D538 0xE89F +0x8336D539 0xE8A0 +0x8336D630 0xE8A1 +0x8336D631 0xE8A2 +0x8336D632 0xE8A3 +0x8336D633 0xE8A4 +0x8336D634 0xE8A5 +0x8336D635 0xE8A6 +0x8336D636 0xE8A7 +0x8336D637 0xE8A8 +0x8336D638 0xE8A9 +0x8336D639 0xE8AA +0x8336D730 0xE8AB +0x8336D731 0xE8AC +0x8336D732 0xE8AD +0x8336D733 0xE8AE +0x8336D734 0xE8AF +0x8336D735 0xE8B0 +0x8336D736 0xE8B1 +0x8336D737 0xE8B2 +0x8336D738 0xE8B3 +0x8336D739 0xE8B4 +0x8336D830 0xE8B5 +0x8336D831 0xE8B6 +0x8336D832 0xE8B7 +0x8336D833 0xE8B8 +0x8336D834 0xE8B9 +0x8336D835 0xE8BA +0x8336D836 0xE8BB +0x8336D837 0xE8BC +0x8336D838 0xE8BD +0x8336D839 0xE8BE +0x8336D930 0xE8BF +0x8336D931 0xE8C0 +0x8336D932 0xE8C1 +0x8336D933 0xE8C2 +0x8336D934 0xE8C3 +0x8336D935 0xE8C4 +0x8336D936 0xE8C5 +0x8336D937 0xE8C6 +0x8336D938 0xE8C7 +0x8336D939 0xE8C8 +0x8336DA30 0xE8C9 +0x8336DA31 0xE8CA +0x8336DA32 0xE8CB +0x8336DA33 0xE8CC +0x8336DA34 0xE8CD +0x8336DA35 0xE8CE +0x8336DA36 0xE8CF +0x8336DA37 0xE8D0 +0x8336DA38 0xE8D1 +0x8336DA39 0xE8D2 +0x8336DB30 0xE8D3 +0x8336DB31 0xE8D4 +0x8336DB32 0xE8D5 +0x8336DB33 0xE8D6 +0x8336DB34 0xE8D7 +0x8336DB35 0xE8D8 +0x8336DB36 0xE8D9 +0x8336DB37 0xE8DA +0x8336DB38 0xE8DB +0x8336DB39 0xE8DC +0x8336DC30 0xE8DD +0x8336DC31 0xE8DE +0x8336DC32 0xE8DF +0x8336DC33 0xE8E0 +0x8336DC34 0xE8E1 +0x8336DC35 0xE8E2 +0x8336DC36 0xE8E3 +0x8336DC37 0xE8E4 +0x8336DC38 0xE8E5 +0x8336DC39 0xE8E6 +0x8336DD30 0xE8E7 +0x8336DD31 0xE8E8 +0x8336DD32 0xE8E9 +0x8336DD33 0xE8EA +0x8336DD34 0xE8EB +0x8336DD35 0xE8EC +0x8336DD36 0xE8ED +0x8336DD37 0xE8EE +0x8336DD38 0xE8EF +0x8336DD39 0xE8F0 +0x8336DE30 0xE8F1 +0x8336DE31 0xE8F2 +0x8336DE32 0xE8F3 +0x8336DE33 0xE8F4 +0x8336DE34 0xE8F5 +0x8336DE35 0xE8F6 +0x8336DE36 0xE8F7 +0x8336DE37 0xE8F8 +0x8336DE38 0xE8F9 +0x8336DE39 0xE8FA +0x8336DF30 0xE8FB +0x8336DF31 0xE8FC +0x8336DF32 0xE8FD +0x8336DF33 0xE8FE +0x8336DF34 0xE8FF +0x8336DF35 0xE900 +0x8336DF36 0xE901 +0x8336DF37 0xE902 +0x8336DF38 0xE903 +0x8336DF39 0xE904 +0x8336E030 0xE905 +0x8336E031 0xE906 +0x8336E032 0xE907 +0x8336E033 0xE908 +0x8336E034 0xE909 +0x8336E035 0xE90A +0x8336E036 0xE90B +0x8336E037 0xE90C +0x8336E038 0xE90D +0x8336E039 0xE90E +0x8336E130 0xE90F +0x8336E131 0xE910 +0x8336E132 0xE911 +0x8336E133 0xE912 +0x8336E134 0xE913 +0x8336E135 0xE914 +0x8336E136 0xE915 +0x8336E137 0xE916 +0x8336E138 0xE917 +0x8336E139 0xE918 +0x8336E230 0xE919 +0x8336E231 0xE91A +0x8336E232 0xE91B +0x8336E233 0xE91C +0x8336E234 0xE91D +0x8336E235 0xE91E +0x8336E236 0xE91F +0x8336E237 0xE920 +0x8336E238 0xE921 +0x8336E239 0xE922 +0x8336E330 0xE923 +0x8336E331 0xE924 +0x8336E332 0xE925 +0x8336E333 0xE926 +0x8336E334 0xE927 +0x8336E335 0xE928 +0x8336E336 0xE929 +0x8336E337 0xE92A +0x8336E338 0xE92B +0x8336E339 0xE92C +0x8336E430 0xE92D +0x8336E431 0xE92E +0x8336E432 0xE92F +0x8336E433 0xE930 +0x8336E434 0xE931 +0x8336E435 0xE932 +0x8336E436 0xE933 +0x8336E437 0xE934 +0x8336E438 0xE935 +0x8336E439 0xE936 +0x8336E530 0xE937 +0x8336E531 0xE938 +0x8336E532 0xE939 +0x8336E533 0xE93A +0x8336E534 0xE93B +0x8336E535 0xE93C +0x8336E536 0xE93D +0x8336E537 0xE93E +0x8336E538 0xE93F +0x8336E539 0xE940 +0x8336E630 0xE941 +0x8336E631 0xE942 +0x8336E632 0xE943 +0x8336E633 0xE944 +0x8336E634 0xE945 +0x8336E635 0xE946 +0x8336E636 0xE947 +0x8336E637 0xE948 +0x8336E638 0xE949 +0x8336E639 0xE94A +0x8336E730 0xE94B +0x8336E731 0xE94C +0x8336E732 0xE94D +0x8336E733 0xE94E +0x8336E734 0xE94F +0x8336E735 0xE950 +0x8336E736 0xE951 +0x8336E737 0xE952 +0x8336E738 0xE953 +0x8336E739 0xE954 +0x8336E830 0xE955 +0x8336E831 0xE956 +0x8336E832 0xE957 +0x8336E833 0xE958 +0x8336E834 0xE959 +0x8336E835 0xE95A +0x8336E836 0xE95B +0x8336E837 0xE95C +0x8336E838 0xE95D +0x8336E839 0xE95E +0x8336E930 0xE95F +0x8336E931 0xE960 +0x8336E932 0xE961 +0x8336E933 0xE962 +0x8336E934 0xE963 +0x8336E935 0xE964 +0x8336E936 0xE965 +0x8336E937 0xE966 +0x8336E938 0xE967 +0x8336E939 0xE968 +0x8336EA30 0xE969 +0x8336EA31 0xE96A +0x8336EA32 0xE96B +0x8336EA33 0xE96C +0x8336EA34 0xE96D +0x8336EA35 0xE96E +0x8336EA36 0xE96F +0x8336EA37 0xE970 +0x8336EA38 0xE971 +0x8336EA39 0xE972 +0x8336EB30 0xE973 +0x8336EB31 0xE974 +0x8336EB32 0xE975 +0x8336EB33 0xE976 +0x8336EB34 0xE977 +0x8336EB35 0xE978 +0x8336EB36 0xE979 +0x8336EB37 0xE97A +0x8336EB38 0xE97B +0x8336EB39 0xE97C +0x8336EC30 0xE97D +0x8336EC31 0xE97E +0x8336EC32 0xE97F +0x8336EC33 0xE980 +0x8336EC34 0xE981 +0x8336EC35 0xE982 +0x8336EC36 0xE983 +0x8336EC37 0xE984 +0x8336EC38 0xE985 +0x8336EC39 0xE986 +0x8336ED30 0xE987 +0x8336ED31 0xE988 +0x8336ED32 0xE989 +0x8336ED33 0xE98A +0x8336ED34 0xE98B +0x8336ED35 0xE98C +0x8336ED36 0xE98D +0x8336ED37 0xE98E +0x8336ED38 0xE98F +0x8336ED39 0xE990 +0x8336EE30 0xE991 +0x8336EE31 0xE992 +0x8336EE32 0xE993 +0x8336EE33 0xE994 +0x8336EE34 0xE995 +0x8336EE35 0xE996 +0x8336EE36 0xE997 +0x8336EE37 0xE998 +0x8336EE38 0xE999 +0x8336EE39 0xE99A +0x8336EF30 0xE99B +0x8336EF31 0xE99C +0x8336EF32 0xE99D +0x8336EF33 0xE99E +0x8336EF34 0xE99F +0x8336EF35 0xE9A0 +0x8336EF36 0xE9A1 +0x8336EF37 0xE9A2 +0x8336EF38 0xE9A3 +0x8336EF39 0xE9A4 +0x8336F030 0xE9A5 +0x8336F031 0xE9A6 +0x8336F032 0xE9A7 +0x8336F033 0xE9A8 +0x8336F034 0xE9A9 +0x8336F035 0xE9AA +0x8336F036 0xE9AB +0x8336F037 0xE9AC +0x8336F038 0xE9AD +0x8336F039 0xE9AE +0x8336F130 0xE9AF +0x8336F131 0xE9B0 +0x8336F132 0xE9B1 +0x8336F133 0xE9B2 +0x8336F134 0xE9B3 +0x8336F135 0xE9B4 +0x8336F136 0xE9B5 +0x8336F137 0xE9B6 +0x8336F138 0xE9B7 +0x8336F139 0xE9B8 +0x8336F230 0xE9B9 +0x8336F231 0xE9BA +0x8336F232 0xE9BB +0x8336F233 0xE9BC +0x8336F234 0xE9BD +0x8336F235 0xE9BE +0x8336F236 0xE9BF +0x8336F237 0xE9C0 +0x8336F238 0xE9C1 +0x8336F239 0xE9C2 +0x8336F330 0xE9C3 +0x8336F331 0xE9C4 +0x8336F332 0xE9C5 +0x8336F333 0xE9C6 +0x8336F334 0xE9C7 +0x8336F335 0xE9C8 +0x8336F336 0xE9C9 +0x8336F337 0xE9CA +0x8336F338 0xE9CB +0x8336F339 0xE9CC +0x8336F430 0xE9CD +0x8336F431 0xE9CE +0x8336F432 0xE9CF +0x8336F433 0xE9D0 +0x8336F434 0xE9D1 +0x8336F435 0xE9D2 +0x8336F436 0xE9D3 +0x8336F437 0xE9D4 +0x8336F438 0xE9D5 +0x8336F439 0xE9D6 +0x8336F530 0xE9D7 +0x8336F531 0xE9D8 +0x8336F532 0xE9D9 +0x8336F533 0xE9DA +0x8336F534 0xE9DB +0x8336F535 0xE9DC +0x8336F536 0xE9DD +0x8336F537 0xE9DE +0x8336F538 0xE9DF +0x8336F539 0xE9E0 +0x8336F630 0xE9E1 +0x8336F631 0xE9E2 +0x8336F632 0xE9E3 +0x8336F633 0xE9E4 +0x8336F634 0xE9E5 +0x8336F635 0xE9E6 +0x8336F636 0xE9E7 +0x8336F637 0xE9E8 +0x8336F638 0xE9E9 +0x8336F639 0xE9EA +0x8336F730 0xE9EB +0x8336F731 0xE9EC +0x8336F732 0xE9ED +0x8336F733 0xE9EE +0x8336F734 0xE9EF +0x8336F735 0xE9F0 +0x8336F736 0xE9F1 +0x8336F737 0xE9F2 +0x8336F738 0xE9F3 +0x8336F739 0xE9F4 +0x8336F830 0xE9F5 +0x8336F831 0xE9F6 +0x8336F832 0xE9F7 +0x8336F833 0xE9F8 +0x8336F834 0xE9F9 +0x8336F835 0xE9FA +0x8336F836 0xE9FB +0x8336F837 0xE9FC +0x8336F838 0xE9FD +0x8336F839 0xE9FE +0x8336F930 0xE9FF +0x8336F931 0xEA00 +0x8336F932 0xEA01 +0x8336F933 0xEA02 +0x8336F934 0xEA03 +0x8336F935 0xEA04 +0x8336F936 0xEA05 +0x8336F937 0xEA06 +0x8336F938 0xEA07 +0x8336F939 0xEA08 +0x8336FA30 0xEA09 +0x8336FA31 0xEA0A +0x8336FA32 0xEA0B +0x8336FA33 0xEA0C +0x8336FA34 0xEA0D +0x8336FA35 0xEA0E +0x8336FA36 0xEA0F +0x8336FA37 0xEA10 +0x8336FA38 0xEA11 +0x8336FA39 0xEA12 +0x8336FB30 0xEA13 +0x8336FB31 0xEA14 +0x8336FB32 0xEA15 +0x8336FB33 0xEA16 +0x8336FB34 0xEA17 +0x8336FB35 0xEA18 +0x8336FB36 0xEA19 +0x8336FB37 0xEA1A +0x8336FB38 0xEA1B +0x8336FB39 0xEA1C +0x8336FC30 0xEA1D +0x8336FC31 0xEA1E +0x8336FC32 0xEA1F +0x8336FC33 0xEA20 +0x8336FC34 0xEA21 +0x8336FC35 0xEA22 +0x8336FC36 0xEA23 +0x8336FC37 0xEA24 +0x8336FC38 0xEA25 +0x8336FC39 0xEA26 +0x8336FD30 0xEA27 +0x8336FD31 0xEA28 +0x8336FD32 0xEA29 +0x8336FD33 0xEA2A +0x8336FD34 0xEA2B +0x8336FD35 0xEA2C +0x8336FD36 0xEA2D +0x8336FD37 0xEA2E +0x8336FD38 0xEA2F +0x8336FD39 0xEA30 +0x8336FE30 0xEA31 +0x8336FE31 0xEA32 +0x8336FE32 0xEA33 +0x8336FE33 0xEA34 +0x8336FE34 0xEA35 +0x8336FE35 0xEA36 +0x8336FE36 0xEA37 +0x8336FE37 0xEA38 +0x8336FE38 0xEA39 +0x8336FE39 0xEA3A +0x83378130 0xEA3B +0x83378131 0xEA3C +0x83378132 0xEA3D +0x83378133 0xEA3E +0x83378134 0xEA3F +0x83378135 0xEA40 +0x83378136 0xEA41 +0x83378137 0xEA42 +0x83378138 0xEA43 +0x83378139 0xEA44 +0x83378230 0xEA45 +0x83378231 0xEA46 +0x83378232 0xEA47 +0x83378233 0xEA48 +0x83378234 0xEA49 +0x83378235 0xEA4A +0x83378236 0xEA4B +0x83378237 0xEA4C +0x83378238 0xEA4D +0x83378239 0xEA4E +0x83378330 0xEA4F +0x83378331 0xEA50 +0x83378332 0xEA51 +0x83378333 0xEA52 +0x83378334 0xEA53 +0x83378335 0xEA54 +0x83378336 0xEA55 +0x83378337 0xEA56 +0x83378338 0xEA57 +0x83378339 0xEA58 +0x83378430 0xEA59 +0x83378431 0xEA5A +0x83378432 0xEA5B +0x83378433 0xEA5C +0x83378434 0xEA5D +0x83378435 0xEA5E +0x83378436 0xEA5F +0x83378437 0xEA60 +0x83378438 0xEA61 +0x83378439 0xEA62 +0x83378530 0xEA63 +0x83378531 0xEA64 +0x83378532 0xEA65 +0x83378533 0xEA66 +0x83378534 0xEA67 +0x83378535 0xEA68 +0x83378536 0xEA69 +0x83378537 0xEA6A +0x83378538 0xEA6B +0x83378539 0xEA6C +0x83378630 0xEA6D +0x83378631 0xEA6E +0x83378632 0xEA6F +0x83378633 0xEA70 +0x83378634 0xEA71 +0x83378635 0xEA72 +0x83378636 0xEA73 +0x83378637 0xEA74 +0x83378638 0xEA75 +0x83378639 0xEA76 +0x83378730 0xEA77 +0x83378731 0xEA78 +0x83378732 0xEA79 +0x83378733 0xEA7A +0x83378734 0xEA7B +0x83378735 0xEA7C +0x83378736 0xEA7D +0x83378737 0xEA7E +0x83378738 0xEA7F +0x83378739 0xEA80 +0x83378830 0xEA81 +0x83378831 0xEA82 +0x83378832 0xEA83 +0x83378833 0xEA84 +0x83378834 0xEA85 +0x83378835 0xEA86 +0x83378836 0xEA87 +0x83378837 0xEA88 +0x83378838 0xEA89 +0x83378839 0xEA8A +0x83378930 0xEA8B +0x83378931 0xEA8C +0x83378932 0xEA8D +0x83378933 0xEA8E +0x83378934 0xEA8F +0x83378935 0xEA90 +0x83378936 0xEA91 +0x83378937 0xEA92 +0x83378938 0xEA93 +0x83378939 0xEA94 +0x83378A30 0xEA95 +0x83378A31 0xEA96 +0x83378A32 0xEA97 +0x83378A33 0xEA98 +0x83378A34 0xEA99 +0x83378A35 0xEA9A +0x83378A36 0xEA9B +0x83378A37 0xEA9C +0x83378A38 0xEA9D +0x83378A39 0xEA9E +0x83378B30 0xEA9F +0x83378B31 0xEAA0 +0x83378B32 0xEAA1 +0x83378B33 0xEAA2 +0x83378B34 0xEAA3 +0x83378B35 0xEAA4 +0x83378B36 0xEAA5 +0x83378B37 0xEAA6 +0x83378B38 0xEAA7 +0x83378B39 0xEAA8 +0x83378C30 0xEAA9 +0x83378C31 0xEAAA +0x83378C32 0xEAAB +0x83378C33 0xEAAC +0x83378C34 0xEAAD +0x83378C35 0xEAAE +0x83378C36 0xEAAF +0x83378C37 0xEAB0 +0x83378C38 0xEAB1 +0x83378C39 0xEAB2 +0x83378D30 0xEAB3 +0x83378D31 0xEAB4 +0x83378D32 0xEAB5 +0x83378D33 0xEAB6 +0x83378D34 0xEAB7 +0x83378D35 0xEAB8 +0x83378D36 0xEAB9 +0x83378D37 0xEABA +0x83378D38 0xEABB +0x83378D39 0xEABC +0x83378E30 0xEABD +0x83378E31 0xEABE +0x83378E32 0xEABF +0x83378E33 0xEAC0 +0x83378E34 0xEAC1 +0x83378E35 0xEAC2 +0x83378E36 0xEAC3 +0x83378E37 0xEAC4 +0x83378E38 0xEAC5 +0x83378E39 0xEAC6 +0x83378F30 0xEAC7 +0x83378F31 0xEAC8 +0x83378F32 0xEAC9 +0x83378F33 0xEACA +0x83378F34 0xEACB +0x83378F35 0xEACC +0x83378F36 0xEACD +0x83378F37 0xEACE +0x83378F38 0xEACF +0x83378F39 0xEAD0 +0x83379030 0xEAD1 +0x83379031 0xEAD2 +0x83379032 0xEAD3 +0x83379033 0xEAD4 +0x83379034 0xEAD5 +0x83379035 0xEAD6 +0x83379036 0xEAD7 +0x83379037 0xEAD8 +0x83379038 0xEAD9 +0x83379039 0xEADA +0x83379130 0xEADB +0x83379131 0xEADC +0x83379132 0xEADD +0x83379133 0xEADE +0x83379134 0xEADF +0x83379135 0xEAE0 +0x83379136 0xEAE1 +0x83379137 0xEAE2 +0x83379138 0xEAE3 +0x83379139 0xEAE4 +0x83379230 0xEAE5 +0x83379231 0xEAE6 +0x83379232 0xEAE7 +0x83379233 0xEAE8 +0x83379234 0xEAE9 +0x83379235 0xEAEA +0x83379236 0xEAEB +0x83379237 0xEAEC +0x83379238 0xEAED +0x83379239 0xEAEE +0x83379330 0xEAEF +0x83379331 0xEAF0 +0x83379332 0xEAF1 +0x83379333 0xEAF2 +0x83379334 0xEAF3 +0x83379335 0xEAF4 +0x83379336 0xEAF5 +0x83379337 0xEAF6 +0x83379338 0xEAF7 +0x83379339 0xEAF8 +0x83379430 0xEAF9 +0x83379431 0xEAFA +0x83379432 0xEAFB +0x83379433 0xEAFC +0x83379434 0xEAFD +0x83379435 0xEAFE +0x83379436 0xEAFF +0x83379437 0xEB00 +0x83379438 0xEB01 +0x83379439 0xEB02 +0x83379530 0xEB03 +0x83379531 0xEB04 +0x83379532 0xEB05 +0x83379533 0xEB06 +0x83379534 0xEB07 +0x83379535 0xEB08 +0x83379536 0xEB09 +0x83379537 0xEB0A +0x83379538 0xEB0B +0x83379539 0xEB0C +0x83379630 0xEB0D +0x83379631 0xEB0E +0x83379632 0xEB0F +0x83379633 0xEB10 +0x83379634 0xEB11 +0x83379635 0xEB12 +0x83379636 0xEB13 +0x83379637 0xEB14 +0x83379638 0xEB15 +0x83379639 0xEB16 +0x83379730 0xEB17 +0x83379731 0xEB18 +0x83379732 0xEB19 +0x83379733 0xEB1A +0x83379734 0xEB1B +0x83379735 0xEB1C +0x83379736 0xEB1D +0x83379737 0xEB1E +0x83379738 0xEB1F +0x83379739 0xEB20 +0x83379830 0xEB21 +0x83379831 0xEB22 +0x83379832 0xEB23 +0x83379833 0xEB24 +0x83379834 0xEB25 +0x83379835 0xEB26 +0x83379836 0xEB27 +0x83379837 0xEB28 +0x83379838 0xEB29 +0x83379839 0xEB2A +0x83379930 0xEB2B +0x83379931 0xEB2C +0x83379932 0xEB2D +0x83379933 0xEB2E +0x83379934 0xEB2F +0x83379935 0xEB30 +0x83379936 0xEB31 +0x83379937 0xEB32 +0x83379938 0xEB33 +0x83379939 0xEB34 +0x83379A30 0xEB35 +0x83379A31 0xEB36 +0x83379A32 0xEB37 +0x83379A33 0xEB38 +0x83379A34 0xEB39 +0x83379A35 0xEB3A +0x83379A36 0xEB3B +0x83379A37 0xEB3C +0x83379A38 0xEB3D +0x83379A39 0xEB3E +0x83379B30 0xEB3F +0x83379B31 0xEB40 +0x83379B32 0xEB41 +0x83379B33 0xEB42 +0x83379B34 0xEB43 +0x83379B35 0xEB44 +0x83379B36 0xEB45 +0x83379B37 0xEB46 +0x83379B38 0xEB47 +0x83379B39 0xEB48 +0x83379C30 0xEB49 +0x83379C31 0xEB4A +0x83379C32 0xEB4B +0x83379C33 0xEB4C +0x83379C34 0xEB4D +0x83379C35 0xEB4E +0x83379C36 0xEB4F +0x83379C37 0xEB50 +0x83379C38 0xEB51 +0x83379C39 0xEB52 +0x83379D30 0xEB53 +0x83379D31 0xEB54 +0x83379D32 0xEB55 +0x83379D33 0xEB56 +0x83379D34 0xEB57 +0x83379D35 0xEB58 +0x83379D36 0xEB59 +0x83379D37 0xEB5A +0x83379D38 0xEB5B +0x83379D39 0xEB5C +0x83379E30 0xEB5D +0x83379E31 0xEB5E +0x83379E32 0xEB5F +0x83379E33 0xEB60 +0x83379E34 0xEB61 +0x83379E35 0xEB62 +0x83379E36 0xEB63 +0x83379E37 0xEB64 +0x83379E38 0xEB65 +0x83379E39 0xEB66 +0x83379F30 0xEB67 +0x83379F31 0xEB68 +0x83379F32 0xEB69 +0x83379F33 0xEB6A +0x83379F34 0xEB6B +0x83379F35 0xEB6C +0x83379F36 0xEB6D +0x83379F37 0xEB6E +0x83379F38 0xEB6F +0x83379F39 0xEB70 +0x8337A030 0xEB71 +0x8337A031 0xEB72 +0x8337A032 0xEB73 +0x8337A033 0xEB74 +0x8337A034 0xEB75 +0x8337A035 0xEB76 +0x8337A036 0xEB77 +0x8337A037 0xEB78 +0x8337A038 0xEB79 +0x8337A039 0xEB7A +0x8337A130 0xEB7B +0x8337A131 0xEB7C +0x8337A132 0xEB7D +0x8337A133 0xEB7E +0x8337A134 0xEB7F +0x8337A135 0xEB80 +0x8337A136 0xEB81 +0x8337A137 0xEB82 +0x8337A138 0xEB83 +0x8337A139 0xEB84 +0x8337A230 0xEB85 +0x8337A231 0xEB86 +0x8337A232 0xEB87 +0x8337A233 0xEB88 +0x8337A234 0xEB89 +0x8337A235 0xEB8A +0x8337A236 0xEB8B +0x8337A237 0xEB8C +0x8337A238 0xEB8D +0x8337A239 0xEB8E +0x8337A330 0xEB8F +0x8337A331 0xEB90 +0x8337A332 0xEB91 +0x8337A333 0xEB92 +0x8337A334 0xEB93 +0x8337A335 0xEB94 +0x8337A336 0xEB95 +0x8337A337 0xEB96 +0x8337A338 0xEB97 +0x8337A339 0xEB98 +0x8337A430 0xEB99 +0x8337A431 0xEB9A +0x8337A432 0xEB9B +0x8337A433 0xEB9C +0x8337A434 0xEB9D +0x8337A435 0xEB9E +0x8337A436 0xEB9F +0x8337A437 0xEBA0 +0x8337A438 0xEBA1 +0x8337A439 0xEBA2 +0x8337A530 0xEBA3 +0x8337A531 0xEBA4 +0x8337A532 0xEBA5 +0x8337A533 0xEBA6 +0x8337A534 0xEBA7 +0x8337A535 0xEBA8 +0x8337A536 0xEBA9 +0x8337A537 0xEBAA +0x8337A538 0xEBAB +0x8337A539 0xEBAC +0x8337A630 0xEBAD +0x8337A631 0xEBAE +0x8337A632 0xEBAF +0x8337A633 0xEBB0 +0x8337A634 0xEBB1 +0x8337A635 0xEBB2 +0x8337A636 0xEBB3 +0x8337A637 0xEBB4 +0x8337A638 0xEBB5 +0x8337A639 0xEBB6 +0x8337A730 0xEBB7 +0x8337A731 0xEBB8 +0x8337A732 0xEBB9 +0x8337A733 0xEBBA +0x8337A734 0xEBBB +0x8337A735 0xEBBC +0x8337A736 0xEBBD +0x8337A737 0xEBBE +0x8337A738 0xEBBF +0x8337A739 0xEBC0 +0x8337A830 0xEBC1 +0x8337A831 0xEBC2 +0x8337A832 0xEBC3 +0x8337A833 0xEBC4 +0x8337A834 0xEBC5 +0x8337A835 0xEBC6 +0x8337A836 0xEBC7 +0x8337A837 0xEBC8 +0x8337A838 0xEBC9 +0x8337A839 0xEBCA +0x8337A930 0xEBCB +0x8337A931 0xEBCC +0x8337A932 0xEBCD +0x8337A933 0xEBCE +0x8337A934 0xEBCF +0x8337A935 0xEBD0 +0x8337A936 0xEBD1 +0x8337A937 0xEBD2 +0x8337A938 0xEBD3 +0x8337A939 0xEBD4 +0x8337AA30 0xEBD5 +0x8337AA31 0xEBD6 +0x8337AA32 0xEBD7 +0x8337AA33 0xEBD8 +0x8337AA34 0xEBD9 +0x8337AA35 0xEBDA +0x8337AA36 0xEBDB +0x8337AA37 0xEBDC +0x8337AA38 0xEBDD +0x8337AA39 0xEBDE +0x8337AB30 0xEBDF +0x8337AB31 0xEBE0 +0x8337AB32 0xEBE1 +0x8337AB33 0xEBE2 +0x8337AB34 0xEBE3 +0x8337AB35 0xEBE4 +0x8337AB36 0xEBE5 +0x8337AB37 0xEBE6 +0x8337AB38 0xEBE7 +0x8337AB39 0xEBE8 +0x8337AC30 0xEBE9 +0x8337AC31 0xEBEA +0x8337AC32 0xEBEB +0x8337AC33 0xEBEC +0x8337AC34 0xEBED +0x8337AC35 0xEBEE +0x8337AC36 0xEBEF +0x8337AC37 0xEBF0 +0x8337AC38 0xEBF1 +0x8337AC39 0xEBF2 +0x8337AD30 0xEBF3 +0x8337AD31 0xEBF4 +0x8337AD32 0xEBF5 +0x8337AD33 0xEBF6 +0x8337AD34 0xEBF7 +0x8337AD35 0xEBF8 +0x8337AD36 0xEBF9 +0x8337AD37 0xEBFA +0x8337AD38 0xEBFB +0x8337AD39 0xEBFC +0x8337AE30 0xEBFD +0x8337AE31 0xEBFE +0x8337AE32 0xEBFF +0x8337AE33 0xEC00 +0x8337AE34 0xEC01 +0x8337AE35 0xEC02 +0x8337AE36 0xEC03 +0x8337AE37 0xEC04 +0x8337AE38 0xEC05 +0x8337AE39 0xEC06 +0x8337AF30 0xEC07 +0x8337AF31 0xEC08 +0x8337AF32 0xEC09 +0x8337AF33 0xEC0A +0x8337AF34 0xEC0B +0x8337AF35 0xEC0C +0x8337AF36 0xEC0D +0x8337AF37 0xEC0E +0x8337AF38 0xEC0F +0x8337AF39 0xEC10 +0x8337B030 0xEC11 +0x8337B031 0xEC12 +0x8337B032 0xEC13 +0x8337B033 0xEC14 +0x8337B034 0xEC15 +0x8337B035 0xEC16 +0x8337B036 0xEC17 +0x8337B037 0xEC18 +0x8337B038 0xEC19 +0x8337B039 0xEC1A +0x8337B130 0xEC1B +0x8337B131 0xEC1C +0x8337B132 0xEC1D +0x8337B133 0xEC1E +0x8337B134 0xEC1F +0x8337B135 0xEC20 +0x8337B136 0xEC21 +0x8337B137 0xEC22 +0x8337B138 0xEC23 +0x8337B139 0xEC24 +0x8337B230 0xEC25 +0x8337B231 0xEC26 +0x8337B232 0xEC27 +0x8337B233 0xEC28 +0x8337B234 0xEC29 +0x8337B235 0xEC2A +0x8337B236 0xEC2B +0x8337B237 0xEC2C +0x8337B238 0xEC2D +0x8337B239 0xEC2E +0x8337B330 0xEC2F +0x8337B331 0xEC30 +0x8337B332 0xEC31 +0x8337B333 0xEC32 +0x8337B334 0xEC33 +0x8337B335 0xEC34 +0x8337B336 0xEC35 +0x8337B337 0xEC36 +0x8337B338 0xEC37 +0x8337B339 0xEC38 +0x8337B430 0xEC39 +0x8337B431 0xEC3A +0x8337B432 0xEC3B +0x8337B433 0xEC3C +0x8337B434 0xEC3D +0x8337B435 0xEC3E +0x8337B436 0xEC3F +0x8337B437 0xEC40 +0x8337B438 0xEC41 +0x8337B439 0xEC42 +0x8337B530 0xEC43 +0x8337B531 0xEC44 +0x8337B532 0xEC45 +0x8337B533 0xEC46 +0x8337B534 0xEC47 +0x8337B535 0xEC48 +0x8337B536 0xEC49 +0x8337B537 0xEC4A +0x8337B538 0xEC4B +0x8337B539 0xEC4C +0x8337B630 0xEC4D +0x8337B631 0xEC4E +0x8337B632 0xEC4F +0x8337B633 0xEC50 +0x8337B634 0xEC51 +0x8337B635 0xEC52 +0x8337B636 0xEC53 +0x8337B637 0xEC54 +0x8337B638 0xEC55 +0x8337B639 0xEC56 +0x8337B730 0xEC57 +0x8337B731 0xEC58 +0x8337B732 0xEC59 +0x8337B733 0xEC5A +0x8337B734 0xEC5B +0x8337B735 0xEC5C +0x8337B736 0xEC5D +0x8337B737 0xEC5E +0x8337B738 0xEC5F +0x8337B739 0xEC60 +0x8337B830 0xEC61 +0x8337B831 0xEC62 +0x8337B832 0xEC63 +0x8337B833 0xEC64 +0x8337B834 0xEC65 +0x8337B835 0xEC66 +0x8337B836 0xEC67 +0x8337B837 0xEC68 +0x8337B838 0xEC69 +0x8337B839 0xEC6A +0x8337B930 0xEC6B +0x8337B931 0xEC6C +0x8337B932 0xEC6D +0x8337B933 0xEC6E +0x8337B934 0xEC6F +0x8337B935 0xEC70 +0x8337B936 0xEC71 +0x8337B937 0xEC72 +0x8337B938 0xEC73 +0x8337B939 0xEC74 +0x8337BA30 0xEC75 +0x8337BA31 0xEC76 +0x8337BA32 0xEC77 +0x8337BA33 0xEC78 +0x8337BA34 0xEC79 +0x8337BA35 0xEC7A +0x8337BA36 0xEC7B +0x8337BA37 0xEC7C +0x8337BA38 0xEC7D +0x8337BA39 0xEC7E +0x8337BB30 0xEC7F +0x8337BB31 0xEC80 +0x8337BB32 0xEC81 +0x8337BB33 0xEC82 +0x8337BB34 0xEC83 +0x8337BB35 0xEC84 +0x8337BB36 0xEC85 +0x8337BB37 0xEC86 +0x8337BB38 0xEC87 +0x8337BB39 0xEC88 +0x8337BC30 0xEC89 +0x8337BC31 0xEC8A +0x8337BC32 0xEC8B +0x8337BC33 0xEC8C +0x8337BC34 0xEC8D +0x8337BC35 0xEC8E +0x8337BC36 0xEC8F +0x8337BC37 0xEC90 +0x8337BC38 0xEC91 +0x8337BC39 0xEC92 +0x8337BD30 0xEC93 +0x8337BD31 0xEC94 +0x8337BD32 0xEC95 +0x8337BD33 0xEC96 +0x8337BD34 0xEC97 +0x8337BD35 0xEC98 +0x8337BD36 0xEC99 +0x8337BD37 0xEC9A +0x8337BD38 0xEC9B +0x8337BD39 0xEC9C +0x8337BE30 0xEC9D +0x8337BE31 0xEC9E +0x8337BE32 0xEC9F +0x8337BE33 0xECA0 +0x8337BE34 0xECA1 +0x8337BE35 0xECA2 +0x8337BE36 0xECA3 +0x8337BE37 0xECA4 +0x8337BE38 0xECA5 +0x8337BE39 0xECA6 +0x8337BF30 0xECA7 +0x8337BF31 0xECA8 +0x8337BF32 0xECA9 +0x8337BF33 0xECAA +0x8337BF34 0xECAB +0x8337BF35 0xECAC +0x8337BF36 0xECAD +0x8337BF37 0xECAE +0x8337BF38 0xECAF +0x8337BF39 0xECB0 +0x8337C030 0xECB1 +0x8337C031 0xECB2 +0x8337C032 0xECB3 +0x8337C033 0xECB4 +0x8337C034 0xECB5 +0x8337C035 0xECB6 +0x8337C036 0xECB7 +0x8337C037 0xECB8 +0x8337C038 0xECB9 +0x8337C039 0xECBA +0x8337C130 0xECBB +0x8337C131 0xECBC +0x8337C132 0xECBD +0x8337C133 0xECBE +0x8337C134 0xECBF +0x8337C135 0xECC0 +0x8337C136 0xECC1 +0x8337C137 0xECC2 +0x8337C138 0xECC3 +0x8337C139 0xECC4 +0x8337C230 0xECC5 +0x8337C231 0xECC6 +0x8337C232 0xECC7 +0x8337C233 0xECC8 +0x8337C234 0xECC9 +0x8337C235 0xECCA +0x8337C236 0xECCB +0x8337C237 0xECCC +0x8337C238 0xECCD +0x8337C239 0xECCE +0x8337C330 0xECCF +0x8337C331 0xECD0 +0x8337C332 0xECD1 +0x8337C333 0xECD2 +0x8337C334 0xECD3 +0x8337C335 0xECD4 +0x8337C336 0xECD5 +0x8337C337 0xECD6 +0x8337C338 0xECD7 +0x8337C339 0xECD8 +0x8337C430 0xECD9 +0x8337C431 0xECDA +0x8337C432 0xECDB +0x8337C433 0xECDC +0x8337C434 0xECDD +0x8337C435 0xECDE +0x8337C436 0xECDF +0x8337C437 0xECE0 +0x8337C438 0xECE1 +0x8337C439 0xECE2 +0x8337C530 0xECE3 +0x8337C531 0xECE4 +0x8337C532 0xECE5 +0x8337C533 0xECE6 +0x8337C534 0xECE7 +0x8337C535 0xECE8 +0x8337C536 0xECE9 +0x8337C537 0xECEA +0x8337C538 0xECEB +0x8337C539 0xECEC +0x8337C630 0xECED +0x8337C631 0xECEE +0x8337C632 0xECEF +0x8337C633 0xECF0 +0x8337C634 0xECF1 +0x8337C635 0xECF2 +0x8337C636 0xECF3 +0x8337C637 0xECF4 +0x8337C638 0xECF5 +0x8337C639 0xECF6 +0x8337C730 0xECF7 +0x8337C731 0xECF8 +0x8337C732 0xECF9 +0x8337C733 0xECFA +0x8337C734 0xECFB +0x8337C735 0xECFC +0x8337C736 0xECFD +0x8337C737 0xECFE +0x8337C738 0xECFF +0x8337C739 0xED00 +0x8337C830 0xED01 +0x8337C831 0xED02 +0x8337C832 0xED03 +0x8337C833 0xED04 +0x8337C834 0xED05 +0x8337C835 0xED06 +0x8337C836 0xED07 +0x8337C837 0xED08 +0x8337C838 0xED09 +0x8337C839 0xED0A +0x8337C930 0xED0B +0x8337C931 0xED0C +0x8337C932 0xED0D +0x8337C933 0xED0E +0x8337C934 0xED0F +0x8337C935 0xED10 +0x8337C936 0xED11 +0x8337C937 0xED12 +0x8337C938 0xED13 +0x8337C939 0xED14 +0x8337CA30 0xED15 +0x8337CA31 0xED16 +0x8337CA32 0xED17 +0x8337CA33 0xED18 +0x8337CA34 0xED19 +0x8337CA35 0xED1A +0x8337CA36 0xED1B +0x8337CA37 0xED1C +0x8337CA38 0xED1D +0x8337CA39 0xED1E +0x8337CB30 0xED1F +0x8337CB31 0xED20 +0x8337CB32 0xED21 +0x8337CB33 0xED22 +0x8337CB34 0xED23 +0x8337CB35 0xED24 +0x8337CB36 0xED25 +0x8337CB37 0xED26 +0x8337CB38 0xED27 +0x8337CB39 0xED28 +0x8337CC30 0xED29 +0x8337CC31 0xED2A +0x8337CC32 0xED2B +0x8337CC33 0xED2C +0x8337CC34 0xED2D +0x8337CC35 0xED2E +0x8337CC36 0xED2F +0x8337CC37 0xED30 +0x8337CC38 0xED31 +0x8337CC39 0xED32 +0x8337CD30 0xED33 +0x8337CD31 0xED34 +0x8337CD32 0xED35 +0x8337CD33 0xED36 +0x8337CD34 0xED37 +0x8337CD35 0xED38 +0x8337CD36 0xED39 +0x8337CD37 0xED3A +0x8337CD38 0xED3B +0x8337CD39 0xED3C +0x8337CE30 0xED3D +0x8337CE31 0xED3E +0x8337CE32 0xED3F +0x8337CE33 0xED40 +0x8337CE34 0xED41 +0x8337CE35 0xED42 +0x8337CE36 0xED43 +0x8337CE37 0xED44 +0x8337CE38 0xED45 +0x8337CE39 0xED46 +0x8337CF30 0xED47 +0x8337CF31 0xED48 +0x8337CF32 0xED49 +0x8337CF33 0xED4A +0x8337CF34 0xED4B +0x8337CF35 0xED4C +0x8337CF36 0xED4D +0x8337CF37 0xED4E +0x8337CF38 0xED4F +0x8337CF39 0xED50 +0x8337D030 0xED51 +0x8337D031 0xED52 +0x8337D032 0xED53 +0x8337D033 0xED54 +0x8337D034 0xED55 +0x8337D035 0xED56 +0x8337D036 0xED57 +0x8337D037 0xED58 +0x8337D038 0xED59 +0x8337D039 0xED5A +0x8337D130 0xED5B +0x8337D131 0xED5C +0x8337D132 0xED5D +0x8337D133 0xED5E +0x8337D134 0xED5F +0x8337D135 0xED60 +0x8337D136 0xED61 +0x8337D137 0xED62 +0x8337D138 0xED63 +0x8337D139 0xED64 +0x8337D230 0xED65 +0x8337D231 0xED66 +0x8337D232 0xED67 +0x8337D233 0xED68 +0x8337D234 0xED69 +0x8337D235 0xED6A +0x8337D236 0xED6B +0x8337D237 0xED6C +0x8337D238 0xED6D +0x8337D239 0xED6E +0x8337D330 0xED6F +0x8337D331 0xED70 +0x8337D332 0xED71 +0x8337D333 0xED72 +0x8337D334 0xED73 +0x8337D335 0xED74 +0x8337D336 0xED75 +0x8337D337 0xED76 +0x8337D338 0xED77 +0x8337D339 0xED78 +0x8337D430 0xED79 +0x8337D431 0xED7A +0x8337D432 0xED7B +0x8337D433 0xED7C +0x8337D434 0xED7D +0x8337D435 0xED7E +0x8337D436 0xED7F +0x8337D437 0xED80 +0x8337D438 0xED81 +0x8337D439 0xED82 +0x8337D530 0xED83 +0x8337D531 0xED84 +0x8337D532 0xED85 +0x8337D533 0xED86 +0x8337D534 0xED87 +0x8337D535 0xED88 +0x8337D536 0xED89 +0x8337D537 0xED8A +0x8337D538 0xED8B +0x8337D539 0xED8C +0x8337D630 0xED8D +0x8337D631 0xED8E +0x8337D632 0xED8F +0x8337D633 0xED90 +0x8337D634 0xED91 +0x8337D635 0xED92 +0x8337D636 0xED93 +0x8337D637 0xED94 +0x8337D638 0xED95 +0x8337D639 0xED96 +0x8337D730 0xED97 +0x8337D731 0xED98 +0x8337D732 0xED99 +0x8337D733 0xED9A +0x8337D734 0xED9B +0x8337D735 0xED9C +0x8337D736 0xED9D +0x8337D737 0xED9E +0x8337D738 0xED9F +0x8337D739 0xEDA0 +0x8337D830 0xEDA1 +0x8337D831 0xEDA2 +0x8337D832 0xEDA3 +0x8337D833 0xEDA4 +0x8337D834 0xEDA5 +0x8337D835 0xEDA6 +0x8337D836 0xEDA7 +0x8337D837 0xEDA8 +0x8337D838 0xEDA9 +0x8337D839 0xEDAA +0x8337D930 0xEDAB +0x8337D931 0xEDAC +0x8337D932 0xEDAD +0x8337D933 0xEDAE +0x8337D934 0xEDAF +0x8337D935 0xEDB0 +0x8337D936 0xEDB1 +0x8337D937 0xEDB2 +0x8337D938 0xEDB3 +0x8337D939 0xEDB4 +0x8337DA30 0xEDB5 +0x8337DA31 0xEDB6 +0x8337DA32 0xEDB7 +0x8337DA33 0xEDB8 +0x8337DA34 0xEDB9 +0x8337DA35 0xEDBA +0x8337DA36 0xEDBB +0x8337DA37 0xEDBC +0x8337DA38 0xEDBD +0x8337DA39 0xEDBE +0x8337DB30 0xEDBF +0x8337DB31 0xEDC0 +0x8337DB32 0xEDC1 +0x8337DB33 0xEDC2 +0x8337DB34 0xEDC3 +0x8337DB35 0xEDC4 +0x8337DB36 0xEDC5 +0x8337DB37 0xEDC6 +0x8337DB38 0xEDC7 +0x8337DB39 0xEDC8 +0x8337DC30 0xEDC9 +0x8337DC31 0xEDCA +0x8337DC32 0xEDCB +0x8337DC33 0xEDCC +0x8337DC34 0xEDCD +0x8337DC35 0xEDCE +0x8337DC36 0xEDCF +0x8337DC37 0xEDD0 +0x8337DC38 0xEDD1 +0x8337DC39 0xEDD2 +0x8337DD30 0xEDD3 +0x8337DD31 0xEDD4 +0x8337DD32 0xEDD5 +0x8337DD33 0xEDD6 +0x8337DD34 0xEDD7 +0x8337DD35 0xEDD8 +0x8337DD36 0xEDD9 +0x8337DD37 0xEDDA +0x8337DD38 0xEDDB +0x8337DD39 0xEDDC +0x8337DE30 0xEDDD +0x8337DE31 0xEDDE +0x8337DE32 0xEDDF +0x8337DE33 0xEDE0 +0x8337DE34 0xEDE1 +0x8337DE35 0xEDE2 +0x8337DE36 0xEDE3 +0x8337DE37 0xEDE4 +0x8337DE38 0xEDE5 +0x8337DE39 0xEDE6 +0x8337DF30 0xEDE7 +0x8337DF31 0xEDE8 +0x8337DF32 0xEDE9 +0x8337DF33 0xEDEA +0x8337DF34 0xEDEB +0x8337DF35 0xEDEC +0x8337DF36 0xEDED +0x8337DF37 0xEDEE +0x8337DF38 0xEDEF +0x8337DF39 0xEDF0 +0x8337E030 0xEDF1 +0x8337E031 0xEDF2 +0x8337E032 0xEDF3 +0x8337E033 0xEDF4 +0x8337E034 0xEDF5 +0x8337E035 0xEDF6 +0x8337E036 0xEDF7 +0x8337E037 0xEDF8 +0x8337E038 0xEDF9 +0x8337E039 0xEDFA +0x8337E130 0xEDFB +0x8337E131 0xEDFC +0x8337E132 0xEDFD +0x8337E133 0xEDFE +0x8337E134 0xEDFF +0x8337E135 0xEE00 +0x8337E136 0xEE01 +0x8337E137 0xEE02 +0x8337E138 0xEE03 +0x8337E139 0xEE04 +0x8337E230 0xEE05 +0x8337E231 0xEE06 +0x8337E232 0xEE07 +0x8337E233 0xEE08 +0x8337E234 0xEE09 +0x8337E235 0xEE0A +0x8337E236 0xEE0B +0x8337E237 0xEE0C +0x8337E238 0xEE0D +0x8337E239 0xEE0E +0x8337E330 0xEE0F +0x8337E331 0xEE10 +0x8337E332 0xEE11 +0x8337E333 0xEE12 +0x8337E334 0xEE13 +0x8337E335 0xEE14 +0x8337E336 0xEE15 +0x8337E337 0xEE16 +0x8337E338 0xEE17 +0x8337E339 0xEE18 +0x8337E430 0xEE19 +0x8337E431 0xEE1A +0x8337E432 0xEE1B +0x8337E433 0xEE1C +0x8337E434 0xEE1D +0x8337E435 0xEE1E +0x8337E436 0xEE1F +0x8337E437 0xEE20 +0x8337E438 0xEE21 +0x8337E439 0xEE22 +0x8337E530 0xEE23 +0x8337E531 0xEE24 +0x8337E532 0xEE25 +0x8337E533 0xEE26 +0x8337E534 0xEE27 +0x8337E535 0xEE28 +0x8337E536 0xEE29 +0x8337E537 0xEE2A +0x8337E538 0xEE2B +0x8337E539 0xEE2C +0x8337E630 0xEE2D +0x8337E631 0xEE2E +0x8337E632 0xEE2F +0x8337E633 0xEE30 +0x8337E634 0xEE31 +0x8337E635 0xEE32 +0x8337E636 0xEE33 +0x8337E637 0xEE34 +0x8337E638 0xEE35 +0x8337E639 0xEE36 +0x8337E730 0xEE37 +0x8337E731 0xEE38 +0x8337E732 0xEE39 +0x8337E733 0xEE3A +0x8337E734 0xEE3B +0x8337E735 0xEE3C +0x8337E736 0xEE3D +0x8337E737 0xEE3E +0x8337E738 0xEE3F +0x8337E739 0xEE40 +0x8337E830 0xEE41 +0x8337E831 0xEE42 +0x8337E832 0xEE43 +0x8337E833 0xEE44 +0x8337E834 0xEE45 +0x8337E835 0xEE46 +0x8337E836 0xEE47 +0x8337E837 0xEE48 +0x8337E838 0xEE49 +0x8337E839 0xEE4A +0x8337E930 0xEE4B +0x8337E931 0xEE4C +0x8337E932 0xEE4D +0x8337E933 0xEE4E +0x8337E934 0xEE4F +0x8337E935 0xEE50 +0x8337E936 0xEE51 +0x8337E937 0xEE52 +0x8337E938 0xEE53 +0x8337E939 0xEE54 +0x8337EA30 0xEE55 +0x8337EA31 0xEE56 +0x8337EA32 0xEE57 +0x8337EA33 0xEE58 +0x8337EA34 0xEE59 +0x8337EA35 0xEE5A +0x8337EA36 0xEE5B +0x8337EA37 0xEE5C +0x8337EA38 0xEE5D +0x8337EA39 0xEE5E +0x8337EB30 0xEE5F +0x8337EB31 0xEE60 +0x8337EB32 0xEE61 +0x8337EB33 0xEE62 +0x8337EB34 0xEE63 +0x8337EB35 0xEE64 +0x8337EB36 0xEE65 +0x8337EB37 0xEE66 +0x8337EB38 0xEE67 +0x8337EB39 0xEE68 +0x8337EC30 0xEE69 +0x8337EC31 0xEE6A +0x8337EC32 0xEE6B +0x8337EC33 0xEE6C +0x8337EC34 0xEE6D +0x8337EC35 0xEE6E +0x8337EC36 0xEE6F +0x8337EC37 0xEE70 +0x8337EC38 0xEE71 +0x8337EC39 0xEE72 +0x8337ED30 0xEE73 +0x8337ED31 0xEE74 +0x8337ED32 0xEE75 +0x8337ED33 0xEE76 +0x8337ED34 0xEE77 +0x8337ED35 0xEE78 +0x8337ED36 0xEE79 +0x8337ED37 0xEE7A +0x8337ED38 0xEE7B +0x8337ED39 0xEE7C +0x8337EE30 0xEE7D +0x8337EE31 0xEE7E +0x8337EE32 0xEE7F +0x8337EE33 0xEE80 +0x8337EE34 0xEE81 +0x8337EE35 0xEE82 +0x8337EE36 0xEE83 +0x8337EE37 0xEE84 +0x8337EE38 0xEE85 +0x8337EE39 0xEE86 +0x8337EF30 0xEE87 +0x8337EF31 0xEE88 +0x8337EF32 0xEE89 +0x8337EF33 0xEE8A +0x8337EF34 0xEE8B +0x8337EF35 0xEE8C +0x8337EF36 0xEE8D +0x8337EF37 0xEE8E +0x8337EF38 0xEE8F +0x8337EF39 0xEE90 +0x8337F030 0xEE91 +0x8337F031 0xEE92 +0x8337F032 0xEE93 +0x8337F033 0xEE94 +0x8337F034 0xEE95 +0x8337F035 0xEE96 +0x8337F036 0xEE97 +0x8337F037 0xEE98 +0x8337F038 0xEE99 +0x8337F039 0xEE9A +0x8337F130 0xEE9B +0x8337F131 0xEE9C +0x8337F132 0xEE9D +0x8337F133 0xEE9E +0x8337F134 0xEE9F +0x8337F135 0xEEA0 +0x8337F136 0xEEA1 +0x8337F137 0xEEA2 +0x8337F138 0xEEA3 +0x8337F139 0xEEA4 +0x8337F230 0xEEA5 +0x8337F231 0xEEA6 +0x8337F232 0xEEA7 +0x8337F233 0xEEA8 +0x8337F234 0xEEA9 +0x8337F235 0xEEAA +0x8337F236 0xEEAB +0x8337F237 0xEEAC +0x8337F238 0xEEAD +0x8337F239 0xEEAE +0x8337F330 0xEEAF +0x8337F331 0xEEB0 +0x8337F332 0xEEB1 +0x8337F333 0xEEB2 +0x8337F334 0xEEB3 +0x8337F335 0xEEB4 +0x8337F336 0xEEB5 +0x8337F337 0xEEB6 +0x8337F338 0xEEB7 +0x8337F339 0xEEB8 +0x8337F430 0xEEB9 +0x8337F431 0xEEBA +0x8337F432 0xEEBB +0x8337F433 0xEEBC +0x8337F434 0xEEBD +0x8337F435 0xEEBE +0x8337F436 0xEEBF +0x8337F437 0xEEC0 +0x8337F438 0xEEC1 +0x8337F439 0xEEC2 +0x8337F530 0xEEC3 +0x8337F531 0xEEC4 +0x8337F532 0xEEC5 +0x8337F533 0xEEC6 +0x8337F534 0xEEC7 +0x8337F535 0xEEC8 +0x8337F536 0xEEC9 +0x8337F537 0xEECA +0x8337F538 0xEECB +0x8337F539 0xEECC +0x8337F630 0xEECD +0x8337F631 0xEECE +0x8337F632 0xEECF +0x8337F633 0xEED0 +0x8337F634 0xEED1 +0x8337F635 0xEED2 +0x8337F636 0xEED3 +0x8337F637 0xEED4 +0x8337F638 0xEED5 +0x8337F639 0xEED6 +0x8337F730 0xEED7 +0x8337F731 0xEED8 +0x8337F732 0xEED9 +0x8337F733 0xEEDA +0x8337F734 0xEEDB +0x8337F735 0xEEDC +0x8337F736 0xEEDD +0x8337F737 0xEEDE +0x8337F738 0xEEDF +0x8337F739 0xEEE0 +0x8337F830 0xEEE1 +0x8337F831 0xEEE2 +0x8337F832 0xEEE3 +0x8337F833 0xEEE4 +0x8337F834 0xEEE5 +0x8337F835 0xEEE6 +0x8337F836 0xEEE7 +0x8337F837 0xEEE8 +0x8337F838 0xEEE9 +0x8337F839 0xEEEA +0x8337F930 0xEEEB +0x8337F931 0xEEEC +0x8337F932 0xEEED +0x8337F933 0xEEEE +0x8337F934 0xEEEF +0x8337F935 0xEEF0 +0x8337F936 0xEEF1 +0x8337F937 0xEEF2 +0x8337F938 0xEEF3 +0x8337F939 0xEEF4 +0x8337FA30 0xEEF5 +0x8337FA31 0xEEF6 +0x8337FA32 0xEEF7 +0x8337FA33 0xEEF8 +0x8337FA34 0xEEF9 +0x8337FA35 0xEEFA +0x8337FA36 0xEEFB +0x8337FA37 0xEEFC +0x8337FA38 0xEEFD +0x8337FA39 0xEEFE +0x8337FB30 0xEEFF +0x8337FB31 0xEF00 +0x8337FB32 0xEF01 +0x8337FB33 0xEF02 +0x8337FB34 0xEF03 +0x8337FB35 0xEF04 +0x8337FB36 0xEF05 +0x8337FB37 0xEF06 +0x8337FB38 0xEF07 +0x8337FB39 0xEF08 +0x8337FC30 0xEF09 +0x8337FC31 0xEF0A +0x8337FC32 0xEF0B +0x8337FC33 0xEF0C +0x8337FC34 0xEF0D +0x8337FC35 0xEF0E +0x8337FC36 0xEF0F +0x8337FC37 0xEF10 +0x8337FC38 0xEF11 +0x8337FC39 0xEF12 +0x8337FD30 0xEF13 +0x8337FD31 0xEF14 +0x8337FD32 0xEF15 +0x8337FD33 0xEF16 +0x8337FD34 0xEF17 +0x8337FD35 0xEF18 +0x8337FD36 0xEF19 +0x8337FD37 0xEF1A +0x8337FD38 0xEF1B +0x8337FD39 0xEF1C +0x8337FE30 0xEF1D +0x8337FE31 0xEF1E +0x8337FE32 0xEF1F +0x8337FE33 0xEF20 +0x8337FE34 0xEF21 +0x8337FE35 0xEF22 +0x8337FE36 0xEF23 +0x8337FE37 0xEF24 +0x8337FE38 0xEF25 +0x8337FE39 0xEF26 +0x83388130 0xEF27 +0x83388131 0xEF28 +0x83388132 0xEF29 +0x83388133 0xEF2A +0x83388134 0xEF2B +0x83388135 0xEF2C +0x83388136 0xEF2D +0x83388137 0xEF2E +0x83388138 0xEF2F +0x83388139 0xEF30 +0x83388230 0xEF31 +0x83388231 0xEF32 +0x83388232 0xEF33 +0x83388233 0xEF34 +0x83388234 0xEF35 +0x83388235 0xEF36 +0x83388236 0xEF37 +0x83388237 0xEF38 +0x83388238 0xEF39 +0x83388239 0xEF3A +0x83388330 0xEF3B +0x83388331 0xEF3C +0x83388332 0xEF3D +0x83388333 0xEF3E +0x83388334 0xEF3F +0x83388335 0xEF40 +0x83388336 0xEF41 +0x83388337 0xEF42 +0x83388338 0xEF43 +0x83388339 0xEF44 +0x83388430 0xEF45 +0x83388431 0xEF46 +0x83388432 0xEF47 +0x83388433 0xEF48 +0x83388434 0xEF49 +0x83388435 0xEF4A +0x83388436 0xEF4B +0x83388437 0xEF4C +0x83388438 0xEF4D +0x83388439 0xEF4E +0x83388530 0xEF4F +0x83388531 0xEF50 +0x83388532 0xEF51 +0x83388533 0xEF52 +0x83388534 0xEF53 +0x83388535 0xEF54 +0x83388536 0xEF55 +0x83388537 0xEF56 +0x83388538 0xEF57 +0x83388539 0xEF58 +0x83388630 0xEF59 +0x83388631 0xEF5A +0x83388632 0xEF5B +0x83388633 0xEF5C +0x83388634 0xEF5D +0x83388635 0xEF5E +0x83388636 0xEF5F +0x83388637 0xEF60 +0x83388638 0xEF61 +0x83388639 0xEF62 +0x83388730 0xEF63 +0x83388731 0xEF64 +0x83388732 0xEF65 +0x83388733 0xEF66 +0x83388734 0xEF67 +0x83388735 0xEF68 +0x83388736 0xEF69 +0x83388737 0xEF6A +0x83388738 0xEF6B +0x83388739 0xEF6C +0x83388830 0xEF6D +0x83388831 0xEF6E +0x83388832 0xEF6F +0x83388833 0xEF70 +0x83388834 0xEF71 +0x83388835 0xEF72 +0x83388836 0xEF73 +0x83388837 0xEF74 +0x83388838 0xEF75 +0x83388839 0xEF76 +0x83388930 0xEF77 +0x83388931 0xEF78 +0x83388932 0xEF79 +0x83388933 0xEF7A +0x83388934 0xEF7B +0x83388935 0xEF7C +0x83388936 0xEF7D +0x83388937 0xEF7E +0x83388938 0xEF7F +0x83388939 0xEF80 +0x83388A30 0xEF81 +0x83388A31 0xEF82 +0x83388A32 0xEF83 +0x83388A33 0xEF84 +0x83388A34 0xEF85 +0x83388A35 0xEF86 +0x83388A36 0xEF87 +0x83388A37 0xEF88 +0x83388A38 0xEF89 +0x83388A39 0xEF8A +0x83388B30 0xEF8B +0x83388B31 0xEF8C +0x83388B32 0xEF8D +0x83388B33 0xEF8E +0x83388B34 0xEF8F +0x83388B35 0xEF90 +0x83388B36 0xEF91 +0x83388B37 0xEF92 +0x83388B38 0xEF93 +0x83388B39 0xEF94 +0x83388C30 0xEF95 +0x83388C31 0xEF96 +0x83388C32 0xEF97 +0x83388C33 0xEF98 +0x83388C34 0xEF99 +0x83388C35 0xEF9A +0x83388C36 0xEF9B +0x83388C37 0xEF9C +0x83388C38 0xEF9D +0x83388C39 0xEF9E +0x83388D30 0xEF9F +0x83388D31 0xEFA0 +0x83388D32 0xEFA1 +0x83388D33 0xEFA2 +0x83388D34 0xEFA3 +0x83388D35 0xEFA4 +0x83388D36 0xEFA5 +0x83388D37 0xEFA6 +0x83388D38 0xEFA7 +0x83388D39 0xEFA8 +0x83388E30 0xEFA9 +0x83388E31 0xEFAA +0x83388E32 0xEFAB +0x83388E33 0xEFAC +0x83388E34 0xEFAD +0x83388E35 0xEFAE +0x83388E36 0xEFAF +0x83388E37 0xEFB0 +0x83388E38 0xEFB1 +0x83388E39 0xEFB2 +0x83388F30 0xEFB3 +0x83388F31 0xEFB4 +0x83388F32 0xEFB5 +0x83388F33 0xEFB6 +0x83388F34 0xEFB7 +0x83388F35 0xEFB8 +0x83388F36 0xEFB9 +0x83388F37 0xEFBA +0x83388F38 0xEFBB +0x83388F39 0xEFBC +0x83389030 0xEFBD +0x83389031 0xEFBE +0x83389032 0xEFBF +0x83389033 0xEFC0 +0x83389034 0xEFC1 +0x83389035 0xEFC2 +0x83389036 0xEFC3 +0x83389037 0xEFC4 +0x83389038 0xEFC5 +0x83389039 0xEFC6 +0x83389130 0xEFC7 +0x83389131 0xEFC8 +0x83389132 0xEFC9 +0x83389133 0xEFCA +0x83389134 0xEFCB +0x83389135 0xEFCC +0x83389136 0xEFCD +0x83389137 0xEFCE +0x83389138 0xEFCF +0x83389139 0xEFD0 +0x83389230 0xEFD1 +0x83389231 0xEFD2 +0x83389232 0xEFD3 +0x83389233 0xEFD4 +0x83389234 0xEFD5 +0x83389235 0xEFD6 +0x83389236 0xEFD7 +0x83389237 0xEFD8 +0x83389238 0xEFD9 +0x83389239 0xEFDA +0x83389330 0xEFDB +0x83389331 0xEFDC +0x83389332 0xEFDD +0x83389333 0xEFDE +0x83389334 0xEFDF +0x83389335 0xEFE0 +0x83389336 0xEFE1 +0x83389337 0xEFE2 +0x83389338 0xEFE3 +0x83389339 0xEFE4 +0x83389430 0xEFE5 +0x83389431 0xEFE6 +0x83389432 0xEFE7 +0x83389433 0xEFE8 +0x83389434 0xEFE9 +0x83389435 0xEFEA +0x83389436 0xEFEB +0x83389437 0xEFEC +0x83389438 0xEFED +0x83389439 0xEFEE +0x83389530 0xEFEF +0x83389531 0xEFF0 +0x83389532 0xEFF1 +0x83389533 0xEFF2 +0x83389534 0xEFF3 +0x83389535 0xEFF4 +0x83389536 0xEFF5 +0x83389537 0xEFF6 +0x83389538 0xEFF7 +0x83389539 0xEFF8 +0x83389630 0xEFF9 +0x83389631 0xEFFA +0x83389632 0xEFFB +0x83389633 0xEFFC +0x83389634 0xEFFD +0x83389635 0xEFFE +0x83389636 0xEFFF +0x83389637 0xF000 +0x83389638 0xF001 +0x83389639 0xF002 +0x83389730 0xF003 +0x83389731 0xF004 +0x83389732 0xF005 +0x83389733 0xF006 +0x83389734 0xF007 +0x83389735 0xF008 +0x83389736 0xF009 +0x83389737 0xF00A +0x83389738 0xF00B +0x83389739 0xF00C +0x83389830 0xF00D +0x83389831 0xF00E +0x83389832 0xF00F +0x83389833 0xF010 +0x83389834 0xF011 +0x83389835 0xF012 +0x83389836 0xF013 +0x83389837 0xF014 +0x83389838 0xF015 +0x83389839 0xF016 +0x83389930 0xF017 +0x83389931 0xF018 +0x83389932 0xF019 +0x83389933 0xF01A +0x83389934 0xF01B +0x83389935 0xF01C +0x83389936 0xF01D +0x83389937 0xF01E +0x83389938 0xF01F +0x83389939 0xF020 +0x83389A30 0xF021 +0x83389A31 0xF022 +0x83389A32 0xF023 +0x83389A33 0xF024 +0x83389A34 0xF025 +0x83389A35 0xF026 +0x83389A36 0xF027 +0x83389A37 0xF028 +0x83389A38 0xF029 +0x83389A39 0xF02A +0x83389B30 0xF02B +0x83389B31 0xF02C +0x83389B32 0xF02D +0x83389B33 0xF02E +0x83389B34 0xF02F +0x83389B35 0xF030 +0x83389B36 0xF031 +0x83389B37 0xF032 +0x83389B38 0xF033 +0x83389B39 0xF034 +0x83389C30 0xF035 +0x83389C31 0xF036 +0x83389C32 0xF037 +0x83389C33 0xF038 +0x83389C34 0xF039 +0x83389C35 0xF03A +0x83389C36 0xF03B +0x83389C37 0xF03C +0x83389C38 0xF03D +0x83389C39 0xF03E +0x83389D30 0xF03F +0x83389D31 0xF040 +0x83389D32 0xF041 +0x83389D33 0xF042 +0x83389D34 0xF043 +0x83389D35 0xF044 +0x83389D36 0xF045 +0x83389D37 0xF046 +0x83389D38 0xF047 +0x83389D39 0xF048 +0x83389E30 0xF049 +0x83389E31 0xF04A +0x83389E32 0xF04B +0x83389E33 0xF04C +0x83389E34 0xF04D +0x83389E35 0xF04E +0x83389E36 0xF04F +0x83389E37 0xF050 +0x83389E38 0xF051 +0x83389E39 0xF052 +0x83389F30 0xF053 +0x83389F31 0xF054 +0x83389F32 0xF055 +0x83389F33 0xF056 +0x83389F34 0xF057 +0x83389F35 0xF058 +0x83389F36 0xF059 +0x83389F37 0xF05A +0x83389F38 0xF05B +0x83389F39 0xF05C +0x8338A030 0xF05D +0x8338A031 0xF05E +0x8338A032 0xF05F +0x8338A033 0xF060 +0x8338A034 0xF061 +0x8338A035 0xF062 +0x8338A036 0xF063 +0x8338A037 0xF064 +0x8338A038 0xF065 +0x8338A039 0xF066 +0x8338A130 0xF067 +0x8338A131 0xF068 +0x8338A132 0xF069 +0x8338A133 0xF06A +0x8338A134 0xF06B +0x8338A135 0xF06C +0x8338A136 0xF06D +0x8338A137 0xF06E +0x8338A138 0xF06F +0x8338A139 0xF070 +0x8338A230 0xF071 +0x8338A231 0xF072 +0x8338A232 0xF073 +0x8338A233 0xF074 +0x8338A234 0xF075 +0x8338A235 0xF076 +0x8338A236 0xF077 +0x8338A237 0xF078 +0x8338A238 0xF079 +0x8338A239 0xF07A +0x8338A330 0xF07B +0x8338A331 0xF07C +0x8338A332 0xF07D +0x8338A333 0xF07E +0x8338A334 0xF07F +0x8338A335 0xF080 +0x8338A336 0xF081 +0x8338A337 0xF082 +0x8338A338 0xF083 +0x8338A339 0xF084 +0x8338A430 0xF085 +0x8338A431 0xF086 +0x8338A432 0xF087 +0x8338A433 0xF088 +0x8338A434 0xF089 +0x8338A435 0xF08A +0x8338A436 0xF08B +0x8338A437 0xF08C +0x8338A438 0xF08D +0x8338A439 0xF08E +0x8338A530 0xF08F +0x8338A531 0xF090 +0x8338A532 0xF091 +0x8338A533 0xF092 +0x8338A534 0xF093 +0x8338A535 0xF094 +0x8338A536 0xF095 +0x8338A537 0xF096 +0x8338A538 0xF097 +0x8338A539 0xF098 +0x8338A630 0xF099 +0x8338A631 0xF09A +0x8338A632 0xF09B +0x8338A633 0xF09C +0x8338A634 0xF09D +0x8338A635 0xF09E +0x8338A636 0xF09F +0x8338A637 0xF0A0 +0x8338A638 0xF0A1 +0x8338A639 0xF0A2 +0x8338A730 0xF0A3 +0x8338A731 0xF0A4 +0x8338A732 0xF0A5 +0x8338A733 0xF0A6 +0x8338A734 0xF0A7 +0x8338A735 0xF0A8 +0x8338A736 0xF0A9 +0x8338A737 0xF0AA +0x8338A738 0xF0AB +0x8338A739 0xF0AC +0x8338A830 0xF0AD +0x8338A831 0xF0AE +0x8338A832 0xF0AF +0x8338A833 0xF0B0 +0x8338A834 0xF0B1 +0x8338A835 0xF0B2 +0x8338A836 0xF0B3 +0x8338A837 0xF0B4 +0x8338A838 0xF0B5 +0x8338A839 0xF0B6 +0x8338A930 0xF0B7 +0x8338A931 0xF0B8 +0x8338A932 0xF0B9 +0x8338A933 0xF0BA +0x8338A934 0xF0BB +0x8338A935 0xF0BC +0x8338A936 0xF0BD +0x8338A937 0xF0BE +0x8338A938 0xF0BF +0x8338A939 0xF0C0 +0x8338AA30 0xF0C1 +0x8338AA31 0xF0C2 +0x8338AA32 0xF0C3 +0x8338AA33 0xF0C4 +0x8338AA34 0xF0C5 +0x8338AA35 0xF0C6 +0x8338AA36 0xF0C7 +0x8338AA37 0xF0C8 +0x8338AA38 0xF0C9 +0x8338AA39 0xF0CA +0x8338AB30 0xF0CB +0x8338AB31 0xF0CC +0x8338AB32 0xF0CD +0x8338AB33 0xF0CE +0x8338AB34 0xF0CF +0x8338AB35 0xF0D0 +0x8338AB36 0xF0D1 +0x8338AB37 0xF0D2 +0x8338AB38 0xF0D3 +0x8338AB39 0xF0D4 +0x8338AC30 0xF0D5 +0x8338AC31 0xF0D6 +0x8338AC32 0xF0D7 +0x8338AC33 0xF0D8 +0x8338AC34 0xF0D9 +0x8338AC35 0xF0DA +0x8338AC36 0xF0DB +0x8338AC37 0xF0DC +0x8338AC38 0xF0DD +0x8338AC39 0xF0DE +0x8338AD30 0xF0DF +0x8338AD31 0xF0E0 +0x8338AD32 0xF0E1 +0x8338AD33 0xF0E2 +0x8338AD34 0xF0E3 +0x8338AD35 0xF0E4 +0x8338AD36 0xF0E5 +0x8338AD37 0xF0E6 +0x8338AD38 0xF0E7 +0x8338AD39 0xF0E8 +0x8338AE30 0xF0E9 +0x8338AE31 0xF0EA +0x8338AE32 0xF0EB +0x8338AE33 0xF0EC +0x8338AE34 0xF0ED +0x8338AE35 0xF0EE +0x8338AE36 0xF0EF +0x8338AE37 0xF0F0 +0x8338AE38 0xF0F1 +0x8338AE39 0xF0F2 +0x8338AF30 0xF0F3 +0x8338AF31 0xF0F4 +0x8338AF32 0xF0F5 +0x8338AF33 0xF0F6 +0x8338AF34 0xF0F7 +0x8338AF35 0xF0F8 +0x8338AF36 0xF0F9 +0x8338AF37 0xF0FA +0x8338AF38 0xF0FB +0x8338AF39 0xF0FC +0x8338B030 0xF0FD +0x8338B031 0xF0FE +0x8338B032 0xF0FF +0x8338B033 0xF100 +0x8338B034 0xF101 +0x8338B035 0xF102 +0x8338B036 0xF103 +0x8338B037 0xF104 +0x8338B038 0xF105 +0x8338B039 0xF106 +0x8338B130 0xF107 +0x8338B131 0xF108 +0x8338B132 0xF109 +0x8338B133 0xF10A +0x8338B134 0xF10B +0x8338B135 0xF10C +0x8338B136 0xF10D +0x8338B137 0xF10E +0x8338B138 0xF10F +0x8338B139 0xF110 +0x8338B230 0xF111 +0x8338B231 0xF112 +0x8338B232 0xF113 +0x8338B233 0xF114 +0x8338B234 0xF115 +0x8338B235 0xF116 +0x8338B236 0xF117 +0x8338B237 0xF118 +0x8338B238 0xF119 +0x8338B239 0xF11A +0x8338B330 0xF11B +0x8338B331 0xF11C +0x8338B332 0xF11D +0x8338B333 0xF11E +0x8338B334 0xF11F +0x8338B335 0xF120 +0x8338B336 0xF121 +0x8338B337 0xF122 +0x8338B338 0xF123 +0x8338B339 0xF124 +0x8338B430 0xF125 +0x8338B431 0xF126 +0x8338B432 0xF127 +0x8338B433 0xF128 +0x8338B434 0xF129 +0x8338B435 0xF12A +0x8338B436 0xF12B +0x8338B437 0xF12C +0x8338B438 0xF12D +0x8338B439 0xF12E +0x8338B530 0xF12F +0x8338B531 0xF130 +0x8338B532 0xF131 +0x8338B533 0xF132 +0x8338B534 0xF133 +0x8338B535 0xF134 +0x8338B536 0xF135 +0x8338B537 0xF136 +0x8338B538 0xF137 +0x8338B539 0xF138 +0x8338B630 0xF139 +0x8338B631 0xF13A +0x8338B632 0xF13B +0x8338B633 0xF13C +0x8338B634 0xF13D +0x8338B635 0xF13E +0x8338B636 0xF13F +0x8338B637 0xF140 +0x8338B638 0xF141 +0x8338B639 0xF142 +0x8338B730 0xF143 +0x8338B731 0xF144 +0x8338B732 0xF145 +0x8338B733 0xF146 +0x8338B734 0xF147 +0x8338B735 0xF148 +0x8338B736 0xF149 +0x8338B737 0xF14A +0x8338B738 0xF14B +0x8338B739 0xF14C +0x8338B830 0xF14D +0x8338B831 0xF14E +0x8338B832 0xF14F +0x8338B833 0xF150 +0x8338B834 0xF151 +0x8338B835 0xF152 +0x8338B836 0xF153 +0x8338B837 0xF154 +0x8338B838 0xF155 +0x8338B839 0xF156 +0x8338B930 0xF157 +0x8338B931 0xF158 +0x8338B932 0xF159 +0x8338B933 0xF15A +0x8338B934 0xF15B +0x8338B935 0xF15C +0x8338B936 0xF15D +0x8338B937 0xF15E +0x8338B938 0xF15F +0x8338B939 0xF160 +0x8338BA30 0xF161 +0x8338BA31 0xF162 +0x8338BA32 0xF163 +0x8338BA33 0xF164 +0x8338BA34 0xF165 +0x8338BA35 0xF166 +0x8338BA36 0xF167 +0x8338BA37 0xF168 +0x8338BA38 0xF169 +0x8338BA39 0xF16A +0x8338BB30 0xF16B +0x8338BB31 0xF16C +0x8338BB32 0xF16D +0x8338BB33 0xF16E +0x8338BB34 0xF16F +0x8338BB35 0xF170 +0x8338BB36 0xF171 +0x8338BB37 0xF172 +0x8338BB38 0xF173 +0x8338BB39 0xF174 +0x8338BC30 0xF175 +0x8338BC31 0xF176 +0x8338BC32 0xF177 +0x8338BC33 0xF178 +0x8338BC34 0xF179 +0x8338BC35 0xF17A +0x8338BC36 0xF17B +0x8338BC37 0xF17C +0x8338BC38 0xF17D +0x8338BC39 0xF17E +0x8338BD30 0xF17F +0x8338BD31 0xF180 +0x8338BD32 0xF181 +0x8338BD33 0xF182 +0x8338BD34 0xF183 +0x8338BD35 0xF184 +0x8338BD36 0xF185 +0x8338BD37 0xF186 +0x8338BD38 0xF187 +0x8338BD39 0xF188 +0x8338BE30 0xF189 +0x8338BE31 0xF18A +0x8338BE32 0xF18B +0x8338BE33 0xF18C +0x8338BE34 0xF18D +0x8338BE35 0xF18E +0x8338BE36 0xF18F +0x8338BE37 0xF190 +0x8338BE38 0xF191 +0x8338BE39 0xF192 +0x8338BF30 0xF193 +0x8338BF31 0xF194 +0x8338BF32 0xF195 +0x8338BF33 0xF196 +0x8338BF34 0xF197 +0x8338BF35 0xF198 +0x8338BF36 0xF199 +0x8338BF37 0xF19A +0x8338BF38 0xF19B +0x8338BF39 0xF19C +0x8338C030 0xF19D +0x8338C031 0xF19E +0x8338C032 0xF19F +0x8338C033 0xF1A0 +0x8338C034 0xF1A1 +0x8338C035 0xF1A2 +0x8338C036 0xF1A3 +0x8338C037 0xF1A4 +0x8338C038 0xF1A5 +0x8338C039 0xF1A6 +0x8338C130 0xF1A7 +0x8338C131 0xF1A8 +0x8338C132 0xF1A9 +0x8338C133 0xF1AA +0x8338C134 0xF1AB +0x8338C135 0xF1AC +0x8338C136 0xF1AD +0x8338C137 0xF1AE +0x8338C138 0xF1AF +0x8338C139 0xF1B0 +0x8338C230 0xF1B1 +0x8338C231 0xF1B2 +0x8338C232 0xF1B3 +0x8338C233 0xF1B4 +0x8338C234 0xF1B5 +0x8338C235 0xF1B6 +0x8338C236 0xF1B7 +0x8338C237 0xF1B8 +0x8338C238 0xF1B9 +0x8338C239 0xF1BA +0x8338C330 0xF1BB +0x8338C331 0xF1BC +0x8338C332 0xF1BD +0x8338C333 0xF1BE +0x8338C334 0xF1BF +0x8338C335 0xF1C0 +0x8338C336 0xF1C1 +0x8338C337 0xF1C2 +0x8338C338 0xF1C3 +0x8338C339 0xF1C4 +0x8338C430 0xF1C5 +0x8338C431 0xF1C6 +0x8338C432 0xF1C7 +0x8338C433 0xF1C8 +0x8338C434 0xF1C9 +0x8338C435 0xF1CA +0x8338C436 0xF1CB +0x8338C437 0xF1CC +0x8338C438 0xF1CD +0x8338C439 0xF1CE +0x8338C530 0xF1CF +0x8338C531 0xF1D0 +0x8338C532 0xF1D1 +0x8338C533 0xF1D2 +0x8338C534 0xF1D3 +0x8338C535 0xF1D4 +0x8338C536 0xF1D5 +0x8338C537 0xF1D6 +0x8338C538 0xF1D7 +0x8338C539 0xF1D8 +0x8338C630 0xF1D9 +0x8338C631 0xF1DA +0x8338C632 0xF1DB +0x8338C633 0xF1DC +0x8338C634 0xF1DD +0x8338C635 0xF1DE +0x8338C636 0xF1DF +0x8338C637 0xF1E0 +0x8338C638 0xF1E1 +0x8338C639 0xF1E2 +0x8338C730 0xF1E3 +0x8338C731 0xF1E4 +0x8338C732 0xF1E5 +0x8338C733 0xF1E6 +0x8338C734 0xF1E7 +0x8338C735 0xF1E8 +0x8338C736 0xF1E9 +0x8338C737 0xF1EA +0x8338C738 0xF1EB +0x8338C739 0xF1EC +0x8338C830 0xF1ED +0x8338C831 0xF1EE +0x8338C832 0xF1EF +0x8338C833 0xF1F0 +0x8338C834 0xF1F1 +0x8338C835 0xF1F2 +0x8338C836 0xF1F3 +0x8338C837 0xF1F4 +0x8338C838 0xF1F5 +0x8338C839 0xF1F6 +0x8338C930 0xF1F7 +0x8338C931 0xF1F8 +0x8338C932 0xF1F9 +0x8338C933 0xF1FA +0x8338C934 0xF1FB +0x8338C935 0xF1FC +0x8338C936 0xF1FD +0x8338C937 0xF1FE +0x8338C938 0xF1FF +0x8338C939 0xF200 +0x8338CA30 0xF201 +0x8338CA31 0xF202 +0x8338CA32 0xF203 +0x8338CA33 0xF204 +0x8338CA34 0xF205 +0x8338CA35 0xF206 +0x8338CA36 0xF207 +0x8338CA37 0xF208 +0x8338CA38 0xF209 +0x8338CA39 0xF20A +0x8338CB30 0xF20B +0x8338CB31 0xF20C +0x8338CB32 0xF20D +0x8338CB33 0xF20E +0x8338CB34 0xF20F +0x8338CB35 0xF210 +0x8338CB36 0xF211 +0x8338CB37 0xF212 +0x8338CB38 0xF213 +0x8338CB39 0xF214 +0x8338CC30 0xF215 +0x8338CC31 0xF216 +0x8338CC32 0xF217 +0x8338CC33 0xF218 +0x8338CC34 0xF219 +0x8338CC35 0xF21A +0x8338CC36 0xF21B +0x8338CC37 0xF21C +0x8338CC38 0xF21D +0x8338CC39 0xF21E +0x8338CD30 0xF21F +0x8338CD31 0xF220 +0x8338CD32 0xF221 +0x8338CD33 0xF222 +0x8338CD34 0xF223 +0x8338CD35 0xF224 +0x8338CD36 0xF225 +0x8338CD37 0xF226 +0x8338CD38 0xF227 +0x8338CD39 0xF228 +0x8338CE30 0xF229 +0x8338CE31 0xF22A +0x8338CE32 0xF22B +0x8338CE33 0xF22C +0x8338CE34 0xF22D +0x8338CE35 0xF22E +0x8338CE36 0xF22F +0x8338CE37 0xF230 +0x8338CE38 0xF231 +0x8338CE39 0xF232 +0x8338CF30 0xF233 +0x8338CF31 0xF234 +0x8338CF32 0xF235 +0x8338CF33 0xF236 +0x8338CF34 0xF237 +0x8338CF35 0xF238 +0x8338CF36 0xF239 +0x8338CF37 0xF23A +0x8338CF38 0xF23B +0x8338CF39 0xF23C +0x8338D030 0xF23D +0x8338D031 0xF23E +0x8338D032 0xF23F +0x8338D033 0xF240 +0x8338D034 0xF241 +0x8338D035 0xF242 +0x8338D036 0xF243 +0x8338D037 0xF244 +0x8338D038 0xF245 +0x8338D039 0xF246 +0x8338D130 0xF247 +0x8338D131 0xF248 +0x8338D132 0xF249 +0x8338D133 0xF24A +0x8338D134 0xF24B +0x8338D135 0xF24C +0x8338D136 0xF24D +0x8338D137 0xF24E +0x8338D138 0xF24F +0x8338D139 0xF250 +0x8338D230 0xF251 +0x8338D231 0xF252 +0x8338D232 0xF253 +0x8338D233 0xF254 +0x8338D234 0xF255 +0x8338D235 0xF256 +0x8338D236 0xF257 +0x8338D237 0xF258 +0x8338D238 0xF259 +0x8338D239 0xF25A +0x8338D330 0xF25B +0x8338D331 0xF25C +0x8338D332 0xF25D +0x8338D333 0xF25E +0x8338D334 0xF25F +0x8338D335 0xF260 +0x8338D336 0xF261 +0x8338D337 0xF262 +0x8338D338 0xF263 +0x8338D339 0xF264 +0x8338D430 0xF265 +0x8338D431 0xF266 +0x8338D432 0xF267 +0x8338D433 0xF268 +0x8338D434 0xF269 +0x8338D435 0xF26A +0x8338D436 0xF26B +0x8338D437 0xF26C +0x8338D438 0xF26D +0x8338D439 0xF26E +0x8338D530 0xF26F +0x8338D531 0xF270 +0x8338D532 0xF271 +0x8338D533 0xF272 +0x8338D534 0xF273 +0x8338D535 0xF274 +0x8338D536 0xF275 +0x8338D537 0xF276 +0x8338D538 0xF277 +0x8338D539 0xF278 +0x8338D630 0xF279 +0x8338D631 0xF27A +0x8338D632 0xF27B +0x8338D633 0xF27C +0x8338D634 0xF27D +0x8338D635 0xF27E +0x8338D636 0xF27F +0x8338D637 0xF280 +0x8338D638 0xF281 +0x8338D639 0xF282 +0x8338D730 0xF283 +0x8338D731 0xF284 +0x8338D732 0xF285 +0x8338D733 0xF286 +0x8338D734 0xF287 +0x8338D735 0xF288 +0x8338D736 0xF289 +0x8338D737 0xF28A +0x8338D738 0xF28B +0x8338D739 0xF28C +0x8338D830 0xF28D +0x8338D831 0xF28E +0x8338D832 0xF28F +0x8338D833 0xF290 +0x8338D834 0xF291 +0x8338D835 0xF292 +0x8338D836 0xF293 +0x8338D837 0xF294 +0x8338D838 0xF295 +0x8338D839 0xF296 +0x8338D930 0xF297 +0x8338D931 0xF298 +0x8338D932 0xF299 +0x8338D933 0xF29A +0x8338D934 0xF29B +0x8338D935 0xF29C +0x8338D936 0xF29D +0x8338D937 0xF29E +0x8338D938 0xF29F +0x8338D939 0xF2A0 +0x8338DA30 0xF2A1 +0x8338DA31 0xF2A2 +0x8338DA32 0xF2A3 +0x8338DA33 0xF2A4 +0x8338DA34 0xF2A5 +0x8338DA35 0xF2A6 +0x8338DA36 0xF2A7 +0x8338DA37 0xF2A8 +0x8338DA38 0xF2A9 +0x8338DA39 0xF2AA +0x8338DB30 0xF2AB +0x8338DB31 0xF2AC +0x8338DB32 0xF2AD +0x8338DB33 0xF2AE +0x8338DB34 0xF2AF +0x8338DB35 0xF2B0 +0x8338DB36 0xF2B1 +0x8338DB37 0xF2B2 +0x8338DB38 0xF2B3 +0x8338DB39 0xF2B4 +0x8338DC30 0xF2B5 +0x8338DC31 0xF2B6 +0x8338DC32 0xF2B7 +0x8338DC33 0xF2B8 +0x8338DC34 0xF2B9 +0x8338DC35 0xF2BA +0x8338DC36 0xF2BB +0x8338DC37 0xF2BC +0x8338DC38 0xF2BD +0x8338DC39 0xF2BE +0x8338DD30 0xF2BF +0x8338DD31 0xF2C0 +0x8338DD32 0xF2C1 +0x8338DD33 0xF2C2 +0x8338DD34 0xF2C3 +0x8338DD35 0xF2C4 +0x8338DD36 0xF2C5 +0x8338DD37 0xF2C6 +0x8338DD38 0xF2C7 +0x8338DD39 0xF2C8 +0x8338DE30 0xF2C9 +0x8338DE31 0xF2CA +0x8338DE32 0xF2CB +0x8338DE33 0xF2CC +0x8338DE34 0xF2CD +0x8338DE35 0xF2CE +0x8338DE36 0xF2CF +0x8338DE37 0xF2D0 +0x8338DE38 0xF2D1 +0x8338DE39 0xF2D2 +0x8338DF30 0xF2D3 +0x8338DF31 0xF2D4 +0x8338DF32 0xF2D5 +0x8338DF33 0xF2D6 +0x8338DF34 0xF2D7 +0x8338DF35 0xF2D8 +0x8338DF36 0xF2D9 +0x8338DF37 0xF2DA +0x8338DF38 0xF2DB +0x8338DF39 0xF2DC +0x8338E030 0xF2DD +0x8338E031 0xF2DE +0x8338E032 0xF2DF +0x8338E033 0xF2E0 +0x8338E034 0xF2E1 +0x8338E035 0xF2E2 +0x8338E036 0xF2E3 +0x8338E037 0xF2E4 +0x8338E038 0xF2E5 +0x8338E039 0xF2E6 +0x8338E130 0xF2E7 +0x8338E131 0xF2E8 +0x8338E132 0xF2E9 +0x8338E133 0xF2EA +0x8338E134 0xF2EB +0x8338E135 0xF2EC +0x8338E136 0xF2ED +0x8338E137 0xF2EE +0x8338E138 0xF2EF +0x8338E139 0xF2F0 +0x8338E230 0xF2F1 +0x8338E231 0xF2F2 +0x8338E232 0xF2F3 +0x8338E233 0xF2F4 +0x8338E234 0xF2F5 +0x8338E235 0xF2F6 +0x8338E236 0xF2F7 +0x8338E237 0xF2F8 +0x8338E238 0xF2F9 +0x8338E239 0xF2FA +0x8338E330 0xF2FB +0x8338E331 0xF2FC +0x8338E332 0xF2FD +0x8338E333 0xF2FE +0x8338E334 0xF2FF +0x8338E335 0xF300 +0x8338E336 0xF301 +0x8338E337 0xF302 +0x8338E338 0xF303 +0x8338E339 0xF304 +0x8338E430 0xF305 +0x8338E431 0xF306 +0x8338E432 0xF307 +0x8338E433 0xF308 +0x8338E434 0xF309 +0x8338E435 0xF30A +0x8338E436 0xF30B +0x8338E437 0xF30C +0x8338E438 0xF30D +0x8338E439 0xF30E +0x8338E530 0xF30F +0x8338E531 0xF310 +0x8338E532 0xF311 +0x8338E533 0xF312 +0x8338E534 0xF313 +0x8338E535 0xF314 +0x8338E536 0xF315 +0x8338E537 0xF316 +0x8338E538 0xF317 +0x8338E539 0xF318 +0x8338E630 0xF319 +0x8338E631 0xF31A +0x8338E632 0xF31B +0x8338E633 0xF31C +0x8338E634 0xF31D +0x8338E635 0xF31E +0x8338E636 0xF31F +0x8338E637 0xF320 +0x8338E638 0xF321 +0x8338E639 0xF322 +0x8338E730 0xF323 +0x8338E731 0xF324 +0x8338E732 0xF325 +0x8338E733 0xF326 +0x8338E734 0xF327 +0x8338E735 0xF328 +0x8338E736 0xF329 +0x8338E737 0xF32A +0x8338E738 0xF32B +0x8338E739 0xF32C +0x8338E830 0xF32D +0x8338E831 0xF32E +0x8338E832 0xF32F +0x8338E833 0xF330 +0x8338E834 0xF331 +0x8338E835 0xF332 +0x8338E836 0xF333 +0x8338E837 0xF334 +0x8338E838 0xF335 +0x8338E839 0xF336 +0x8338E930 0xF337 +0x8338E931 0xF338 +0x8338E932 0xF339 +0x8338E933 0xF33A +0x8338E934 0xF33B +0x8338E935 0xF33C +0x8338E936 0xF33D +0x8338E937 0xF33E +0x8338E938 0xF33F +0x8338E939 0xF340 +0x8338EA30 0xF341 +0x8338EA31 0xF342 +0x8338EA32 0xF343 +0x8338EA33 0xF344 +0x8338EA34 0xF345 +0x8338EA35 0xF346 +0x8338EA36 0xF347 +0x8338EA37 0xF348 +0x8338EA38 0xF349 +0x8338EA39 0xF34A +0x8338EB30 0xF34B +0x8338EB31 0xF34C +0x8338EB32 0xF34D +0x8338EB33 0xF34E +0x8338EB34 0xF34F +0x8338EB35 0xF350 +0x8338EB36 0xF351 +0x8338EB37 0xF352 +0x8338EB38 0xF353 +0x8338EB39 0xF354 +0x8338EC30 0xF355 +0x8338EC31 0xF356 +0x8338EC32 0xF357 +0x8338EC33 0xF358 +0x8338EC34 0xF359 +0x8338EC35 0xF35A +0x8338EC36 0xF35B +0x8338EC37 0xF35C +0x8338EC38 0xF35D +0x8338EC39 0xF35E +0x8338ED30 0xF35F +0x8338ED31 0xF360 +0x8338ED32 0xF361 +0x8338ED33 0xF362 +0x8338ED34 0xF363 +0x8338ED35 0xF364 +0x8338ED36 0xF365 +0x8338ED37 0xF366 +0x8338ED38 0xF367 +0x8338ED39 0xF368 +0x8338EE30 0xF369 +0x8338EE31 0xF36A +0x8338EE32 0xF36B +0x8338EE33 0xF36C +0x8338EE34 0xF36D +0x8338EE35 0xF36E +0x8338EE36 0xF36F +0x8338EE37 0xF370 +0x8338EE38 0xF371 +0x8338EE39 0xF372 +0x8338EF30 0xF373 +0x8338EF31 0xF374 +0x8338EF32 0xF375 +0x8338EF33 0xF376 +0x8338EF34 0xF377 +0x8338EF35 0xF378 +0x8338EF36 0xF379 +0x8338EF37 0xF37A +0x8338EF38 0xF37B +0x8338EF39 0xF37C +0x8338F030 0xF37D +0x8338F031 0xF37E +0x8338F032 0xF37F +0x8338F033 0xF380 +0x8338F034 0xF381 +0x8338F035 0xF382 +0x8338F036 0xF383 +0x8338F037 0xF384 +0x8338F038 0xF385 +0x8338F039 0xF386 +0x8338F130 0xF387 +0x8338F131 0xF388 +0x8338F132 0xF389 +0x8338F133 0xF38A +0x8338F134 0xF38B +0x8338F135 0xF38C +0x8338F136 0xF38D +0x8338F137 0xF38E +0x8338F138 0xF38F +0x8338F139 0xF390 +0x8338F230 0xF391 +0x8338F231 0xF392 +0x8338F232 0xF393 +0x8338F233 0xF394 +0x8338F234 0xF395 +0x8338F235 0xF396 +0x8338F236 0xF397 +0x8338F237 0xF398 +0x8338F238 0xF399 +0x8338F239 0xF39A +0x8338F330 0xF39B +0x8338F331 0xF39C +0x8338F332 0xF39D +0x8338F333 0xF39E +0x8338F334 0xF39F +0x8338F335 0xF3A0 +0x8338F336 0xF3A1 +0x8338F337 0xF3A2 +0x8338F338 0xF3A3 +0x8338F339 0xF3A4 +0x8338F430 0xF3A5 +0x8338F431 0xF3A6 +0x8338F432 0xF3A7 +0x8338F433 0xF3A8 +0x8338F434 0xF3A9 +0x8338F435 0xF3AA +0x8338F436 0xF3AB +0x8338F437 0xF3AC +0x8338F438 0xF3AD +0x8338F439 0xF3AE +0x8338F530 0xF3AF +0x8338F531 0xF3B0 +0x8338F532 0xF3B1 +0x8338F533 0xF3B2 +0x8338F534 0xF3B3 +0x8338F535 0xF3B4 +0x8338F536 0xF3B5 +0x8338F537 0xF3B6 +0x8338F538 0xF3B7 +0x8338F539 0xF3B8 +0x8338F630 0xF3B9 +0x8338F631 0xF3BA +0x8338F632 0xF3BB +0x8338F633 0xF3BC +0x8338F634 0xF3BD +0x8338F635 0xF3BE +0x8338F636 0xF3BF +0x8338F637 0xF3C0 +0x8338F638 0xF3C1 +0x8338F639 0xF3C2 +0x8338F730 0xF3C3 +0x8338F731 0xF3C4 +0x8338F732 0xF3C5 +0x8338F733 0xF3C6 +0x8338F734 0xF3C7 +0x8338F735 0xF3C8 +0x8338F736 0xF3C9 +0x8338F737 0xF3CA +0x8338F738 0xF3CB +0x8338F739 0xF3CC +0x8338F830 0xF3CD +0x8338F831 0xF3CE +0x8338F832 0xF3CF +0x8338F833 0xF3D0 +0x8338F834 0xF3D1 +0x8338F835 0xF3D2 +0x8338F836 0xF3D3 +0x8338F837 0xF3D4 +0x8338F838 0xF3D5 +0x8338F839 0xF3D6 +0x8338F930 0xF3D7 +0x8338F931 0xF3D8 +0x8338F932 0xF3D9 +0x8338F933 0xF3DA +0x8338F934 0xF3DB +0x8338F935 0xF3DC +0x8338F936 0xF3DD +0x8338F937 0xF3DE +0x8338F938 0xF3DF +0x8338F939 0xF3E0 +0x8338FA30 0xF3E1 +0x8338FA31 0xF3E2 +0x8338FA32 0xF3E3 +0x8338FA33 0xF3E4 +0x8338FA34 0xF3E5 +0x8338FA35 0xF3E6 +0x8338FA36 0xF3E7 +0x8338FA37 0xF3E8 +0x8338FA38 0xF3E9 +0x8338FA39 0xF3EA +0x8338FB30 0xF3EB +0x8338FB31 0xF3EC +0x8338FB32 0xF3ED +0x8338FB33 0xF3EE +0x8338FB34 0xF3EF +0x8338FB35 0xF3F0 +0x8338FB36 0xF3F1 +0x8338FB37 0xF3F2 +0x8338FB38 0xF3F3 +0x8338FB39 0xF3F4 +0x8338FC30 0xF3F5 +0x8338FC31 0xF3F6 +0x8338FC32 0xF3F7 +0x8338FC33 0xF3F8 +0x8338FC34 0xF3F9 +0x8338FC35 0xF3FA +0x8338FC36 0xF3FB +0x8338FC37 0xF3FC +0x8338FC38 0xF3FD +0x8338FC39 0xF3FE +0x8338FD30 0xF3FF +0x8338FD31 0xF400 +0x8338FD32 0xF401 +0x8338FD33 0xF402 +0x8338FD34 0xF403 +0x8338FD35 0xF404 +0x8338FD36 0xF405 +0x8338FD37 0xF406 +0x8338FD38 0xF407 +0x8338FD39 0xF408 +0x8338FE30 0xF409 +0x8338FE31 0xF40A +0x8338FE32 0xF40B +0x8338FE33 0xF40C +0x8338FE34 0xF40D +0x8338FE35 0xF40E +0x8338FE36 0xF40F +0x8338FE37 0xF410 +0x8338FE38 0xF411 +0x8338FE39 0xF412 +0x83398130 0xF413 +0x83398131 0xF414 +0x83398132 0xF415 +0x83398133 0xF416 +0x83398134 0xF417 +0x83398135 0xF418 +0x83398136 0xF419 +0x83398137 0xF41A +0x83398138 0xF41B +0x83398139 0xF41C +0x83398230 0xF41D +0x83398231 0xF41E +0x83398232 0xF41F +0x83398233 0xF420 +0x83398234 0xF421 +0x83398235 0xF422 +0x83398236 0xF423 +0x83398237 0xF424 +0x83398238 0xF425 +0x83398239 0xF426 +0x83398330 0xF427 +0x83398331 0xF428 +0x83398332 0xF429 +0x83398333 0xF42A +0x83398334 0xF42B +0x83398335 0xF42C +0x83398336 0xF42D +0x83398337 0xF42E +0x83398338 0xF42F +0x83398339 0xF430 +0x83398430 0xF431 +0x83398431 0xF432 +0x83398432 0xF433 +0x83398433 0xF434 +0x83398434 0xF435 +0x83398435 0xF436 +0x83398436 0xF437 +0x83398437 0xF438 +0x83398438 0xF439 +0x83398439 0xF43A +0x83398530 0xF43B +0x83398531 0xF43C +0x83398532 0xF43D +0x83398533 0xF43E +0x83398534 0xF43F +0x83398535 0xF440 +0x83398536 0xF441 +0x83398537 0xF442 +0x83398538 0xF443 +0x83398539 0xF444 +0x83398630 0xF445 +0x83398631 0xF446 +0x83398632 0xF447 +0x83398633 0xF448 +0x83398634 0xF449 +0x83398635 0xF44A +0x83398636 0xF44B +0x83398637 0xF44C +0x83398638 0xF44D +0x83398639 0xF44E +0x83398730 0xF44F +0x83398731 0xF450 +0x83398732 0xF451 +0x83398733 0xF452 +0x83398734 0xF453 +0x83398735 0xF454 +0x83398736 0xF455 +0x83398737 0xF456 +0x83398738 0xF457 +0x83398739 0xF458 +0x83398830 0xF459 +0x83398831 0xF45A +0x83398832 0xF45B +0x83398833 0xF45C +0x83398834 0xF45D +0x83398835 0xF45E +0x83398836 0xF45F +0x83398837 0xF460 +0x83398838 0xF461 +0x83398839 0xF462 +0x83398930 0xF463 +0x83398931 0xF464 +0x83398932 0xF465 +0x83398933 0xF466 +0x83398934 0xF467 +0x83398935 0xF468 +0x83398936 0xF469 +0x83398937 0xF46A +0x83398938 0xF46B +0x83398939 0xF46C +0x83398A30 0xF46D +0x83398A31 0xF46E +0x83398A32 0xF46F +0x83398A33 0xF470 +0x83398A34 0xF471 +0x83398A35 0xF472 +0x83398A36 0xF473 +0x83398A37 0xF474 +0x83398A38 0xF475 +0x83398A39 0xF476 +0x83398B30 0xF477 +0x83398B31 0xF478 +0x83398B32 0xF479 +0x83398B33 0xF47A +0x83398B34 0xF47B +0x83398B35 0xF47C +0x83398B36 0xF47D +0x83398B37 0xF47E +0x83398B38 0xF47F +0x83398B39 0xF480 +0x83398C30 0xF481 +0x83398C31 0xF482 +0x83398C32 0xF483 +0x83398C33 0xF484 +0x83398C34 0xF485 +0x83398C35 0xF486 +0x83398C36 0xF487 +0x83398C37 0xF488 +0x83398C38 0xF489 +0x83398C39 0xF48A +0x83398D30 0xF48B +0x83398D31 0xF48C +0x83398D32 0xF48D +0x83398D33 0xF48E +0x83398D34 0xF48F +0x83398D35 0xF490 +0x83398D36 0xF491 +0x83398D37 0xF492 +0x83398D38 0xF493 +0x83398D39 0xF494 +0x83398E30 0xF495 +0x83398E31 0xF496 +0x83398E32 0xF497 +0x83398E33 0xF498 +0x83398E34 0xF499 +0x83398E35 0xF49A +0x83398E36 0xF49B +0x83398E37 0xF49C +0x83398E38 0xF49D +0x83398E39 0xF49E +0x83398F30 0xF49F +0x83398F31 0xF4A0 +0x83398F32 0xF4A1 +0x83398F33 0xF4A2 +0x83398F34 0xF4A3 +0x83398F35 0xF4A4 +0x83398F36 0xF4A5 +0x83398F37 0xF4A6 +0x83398F38 0xF4A7 +0x83398F39 0xF4A8 +0x83399030 0xF4A9 +0x83399031 0xF4AA +0x83399032 0xF4AB +0x83399033 0xF4AC +0x83399034 0xF4AD +0x83399035 0xF4AE +0x83399036 0xF4AF +0x83399037 0xF4B0 +0x83399038 0xF4B1 +0x83399039 0xF4B2 +0x83399130 0xF4B3 +0x83399131 0xF4B4 +0x83399132 0xF4B5 +0x83399133 0xF4B6 +0x83399134 0xF4B7 +0x83399135 0xF4B8 +0x83399136 0xF4B9 +0x83399137 0xF4BA +0x83399138 0xF4BB +0x83399139 0xF4BC +0x83399230 0xF4BD +0x83399231 0xF4BE +0x83399232 0xF4BF +0x83399233 0xF4C0 +0x83399234 0xF4C1 +0x83399235 0xF4C2 +0x83399236 0xF4C3 +0x83399237 0xF4C4 +0x83399238 0xF4C5 +0x83399239 0xF4C6 +0x83399330 0xF4C7 +0x83399331 0xF4C8 +0x83399332 0xF4C9 +0x83399333 0xF4CA +0x83399334 0xF4CB +0x83399335 0xF4CC +0x83399336 0xF4CD +0x83399337 0xF4CE +0x83399338 0xF4CF +0x83399339 0xF4D0 +0x83399430 0xF4D1 +0x83399431 0xF4D2 +0x83399432 0xF4D3 +0x83399433 0xF4D4 +0x83399434 0xF4D5 +0x83399435 0xF4D6 +0x83399436 0xF4D7 +0x83399437 0xF4D8 +0x83399438 0xF4D9 +0x83399439 0xF4DA +0x83399530 0xF4DB +0x83399531 0xF4DC +0x83399532 0xF4DD +0x83399533 0xF4DE +0x83399534 0xF4DF +0x83399535 0xF4E0 +0x83399536 0xF4E1 +0x83399537 0xF4E2 +0x83399538 0xF4E3 +0x83399539 0xF4E4 +0x83399630 0xF4E5 +0x83399631 0xF4E6 +0x83399632 0xF4E7 +0x83399633 0xF4E8 +0x83399634 0xF4E9 +0x83399635 0xF4EA +0x83399636 0xF4EB +0x83399637 0xF4EC +0x83399638 0xF4ED +0x83399639 0xF4EE +0x83399730 0xF4EF +0x83399731 0xF4F0 +0x83399732 0xF4F1 +0x83399733 0xF4F2 +0x83399734 0xF4F3 +0x83399735 0xF4F4 +0x83399736 0xF4F5 +0x83399737 0xF4F6 +0x83399738 0xF4F7 +0x83399739 0xF4F8 +0x83399830 0xF4F9 +0x83399831 0xF4FA +0x83399832 0xF4FB +0x83399833 0xF4FC +0x83399834 0xF4FD +0x83399835 0xF4FE +0x83399836 0xF4FF +0x83399837 0xF500 +0x83399838 0xF501 +0x83399839 0xF502 +0x83399930 0xF503 +0x83399931 0xF504 +0x83399932 0xF505 +0x83399933 0xF506 +0x83399934 0xF507 +0x83399935 0xF508 +0x83399936 0xF509 +0x83399937 0xF50A +0x83399938 0xF50B +0x83399939 0xF50C +0x83399A30 0xF50D +0x83399A31 0xF50E +0x83399A32 0xF50F +0x83399A33 0xF510 +0x83399A34 0xF511 +0x83399A35 0xF512 +0x83399A36 0xF513 +0x83399A37 0xF514 +0x83399A38 0xF515 +0x83399A39 0xF516 +0x83399B30 0xF517 +0x83399B31 0xF518 +0x83399B32 0xF519 +0x83399B33 0xF51A +0x83399B34 0xF51B +0x83399B35 0xF51C +0x83399B36 0xF51D +0x83399B37 0xF51E +0x83399B38 0xF51F +0x83399B39 0xF520 +0x83399C30 0xF521 +0x83399C31 0xF522 +0x83399C32 0xF523 +0x83399C33 0xF524 +0x83399C34 0xF525 +0x83399C35 0xF526 +0x83399C36 0xF527 +0x83399C37 0xF528 +0x83399C38 0xF529 +0x83399C39 0xF52A +0x83399D30 0xF52B +0x83399D31 0xF52C +0x83399D32 0xF52D +0x83399D33 0xF52E +0x83399D34 0xF52F +0x83399D35 0xF530 +0x83399D36 0xF531 +0x83399D37 0xF532 +0x83399D38 0xF533 +0x83399D39 0xF534 +0x83399E30 0xF535 +0x83399E31 0xF536 +0x83399E32 0xF537 +0x83399E33 0xF538 +0x83399E34 0xF539 +0x83399E35 0xF53A +0x83399E36 0xF53B +0x83399E37 0xF53C +0x83399E38 0xF53D +0x83399E39 0xF53E +0x83399F30 0xF53F +0x83399F31 0xF540 +0x83399F32 0xF541 +0x83399F33 0xF542 +0x83399F34 0xF543 +0x83399F35 0xF544 +0x83399F36 0xF545 +0x83399F37 0xF546 +0x83399F38 0xF547 +0x83399F39 0xF548 +0x8339A030 0xF549 +0x8339A031 0xF54A +0x8339A032 0xF54B +0x8339A033 0xF54C +0x8339A034 0xF54D +0x8339A035 0xF54E +0x8339A036 0xF54F +0x8339A037 0xF550 +0x8339A038 0xF551 +0x8339A039 0xF552 +0x8339A130 0xF553 +0x8339A131 0xF554 +0x8339A132 0xF555 +0x8339A133 0xF556 +0x8339A134 0xF557 +0x8339A135 0xF558 +0x8339A136 0xF559 +0x8339A137 0xF55A +0x8339A138 0xF55B +0x8339A139 0xF55C +0x8339A230 0xF55D +0x8339A231 0xF55E +0x8339A232 0xF55F +0x8339A233 0xF560 +0x8339A234 0xF561 +0x8339A235 0xF562 +0x8339A236 0xF563 +0x8339A237 0xF564 +0x8339A238 0xF565 +0x8339A239 0xF566 +0x8339A330 0xF567 +0x8339A331 0xF568 +0x8339A332 0xF569 +0x8339A333 0xF56A +0x8339A334 0xF56B +0x8339A335 0xF56C +0x8339A336 0xF56D +0x8339A337 0xF56E +0x8339A338 0xF56F +0x8339A339 0xF570 +0x8339A430 0xF571 +0x8339A431 0xF572 +0x8339A432 0xF573 +0x8339A433 0xF574 +0x8339A434 0xF575 +0x8339A435 0xF576 +0x8339A436 0xF577 +0x8339A437 0xF578 +0x8339A438 0xF579 +0x8339A439 0xF57A +0x8339A530 0xF57B +0x8339A531 0xF57C +0x8339A532 0xF57D +0x8339A533 0xF57E +0x8339A534 0xF57F +0x8339A535 0xF580 +0x8339A536 0xF581 +0x8339A537 0xF582 +0x8339A538 0xF583 +0x8339A539 0xF584 +0x8339A630 0xF585 +0x8339A631 0xF586 +0x8339A632 0xF587 +0x8339A633 0xF588 +0x8339A634 0xF589 +0x8339A635 0xF58A +0x8339A636 0xF58B +0x8339A637 0xF58C +0x8339A638 0xF58D +0x8339A639 0xF58E +0x8339A730 0xF58F +0x8339A731 0xF590 +0x8339A732 0xF591 +0x8339A733 0xF592 +0x8339A734 0xF593 +0x8339A735 0xF594 +0x8339A736 0xF595 +0x8339A737 0xF596 +0x8339A738 0xF597 +0x8339A739 0xF598 +0x8339A830 0xF599 +0x8339A831 0xF59A +0x8339A832 0xF59B +0x8339A833 0xF59C +0x8339A834 0xF59D +0x8339A835 0xF59E +0x8339A836 0xF59F +0x8339A837 0xF5A0 +0x8339A838 0xF5A1 +0x8339A839 0xF5A2 +0x8339A930 0xF5A3 +0x8339A931 0xF5A4 +0x8339A932 0xF5A5 +0x8339A933 0xF5A6 +0x8339A934 0xF5A7 +0x8339A935 0xF5A8 +0x8339A936 0xF5A9 +0x8339A937 0xF5AA +0x8339A938 0xF5AB +0x8339A939 0xF5AC +0x8339AA30 0xF5AD +0x8339AA31 0xF5AE +0x8339AA32 0xF5AF +0x8339AA33 0xF5B0 +0x8339AA34 0xF5B1 +0x8339AA35 0xF5B2 +0x8339AA36 0xF5B3 +0x8339AA37 0xF5B4 +0x8339AA38 0xF5B5 +0x8339AA39 0xF5B6 +0x8339AB30 0xF5B7 +0x8339AB31 0xF5B8 +0x8339AB32 0xF5B9 +0x8339AB33 0xF5BA +0x8339AB34 0xF5BB +0x8339AB35 0xF5BC +0x8339AB36 0xF5BD +0x8339AB37 0xF5BE +0x8339AB38 0xF5BF +0x8339AB39 0xF5C0 +0x8339AC30 0xF5C1 +0x8339AC31 0xF5C2 +0x8339AC32 0xF5C3 +0x8339AC33 0xF5C4 +0x8339AC34 0xF5C5 +0x8339AC35 0xF5C6 +0x8339AC36 0xF5C7 +0x8339AC37 0xF5C8 +0x8339AC38 0xF5C9 +0x8339AC39 0xF5CA +0x8339AD30 0xF5CB +0x8339AD31 0xF5CC +0x8339AD32 0xF5CD +0x8339AD33 0xF5CE +0x8339AD34 0xF5CF +0x8339AD35 0xF5D0 +0x8339AD36 0xF5D1 +0x8339AD37 0xF5D2 +0x8339AD38 0xF5D3 +0x8339AD39 0xF5D4 +0x8339AE30 0xF5D5 +0x8339AE31 0xF5D6 +0x8339AE32 0xF5D7 +0x8339AE33 0xF5D8 +0x8339AE34 0xF5D9 +0x8339AE35 0xF5DA +0x8339AE36 0xF5DB +0x8339AE37 0xF5DC +0x8339AE38 0xF5DD +0x8339AE39 0xF5DE +0x8339AF30 0xF5DF +0x8339AF31 0xF5E0 +0x8339AF32 0xF5E1 +0x8339AF33 0xF5E2 +0x8339AF34 0xF5E3 +0x8339AF35 0xF5E4 +0x8339AF36 0xF5E5 +0x8339AF37 0xF5E6 +0x8339AF38 0xF5E7 +0x8339AF39 0xF5E8 +0x8339B030 0xF5E9 +0x8339B031 0xF5EA +0x8339B032 0xF5EB +0x8339B033 0xF5EC +0x8339B034 0xF5ED +0x8339B035 0xF5EE +0x8339B036 0xF5EF +0x8339B037 0xF5F0 +0x8339B038 0xF5F1 +0x8339B039 0xF5F2 +0x8339B130 0xF5F3 +0x8339B131 0xF5F4 +0x8339B132 0xF5F5 +0x8339B133 0xF5F6 +0x8339B134 0xF5F7 +0x8339B135 0xF5F8 +0x8339B136 0xF5F9 +0x8339B137 0xF5FA +0x8339B138 0xF5FB +0x8339B139 0xF5FC +0x8339B230 0xF5FD +0x8339B231 0xF5FE +0x8339B232 0xF5FF +0x8339B233 0xF600 +0x8339B234 0xF601 +0x8339B235 0xF602 +0x8339B236 0xF603 +0x8339B237 0xF604 +0x8339B238 0xF605 +0x8339B239 0xF606 +0x8339B330 0xF607 +0x8339B331 0xF608 +0x8339B332 0xF609 +0x8339B333 0xF60A +0x8339B334 0xF60B +0x8339B335 0xF60C +0x8339B336 0xF60D +0x8339B337 0xF60E +0x8339B338 0xF60F +0x8339B339 0xF610 +0x8339B430 0xF611 +0x8339B431 0xF612 +0x8339B432 0xF613 +0x8339B433 0xF614 +0x8339B434 0xF615 +0x8339B435 0xF616 +0x8339B436 0xF617 +0x8339B437 0xF618 +0x8339B438 0xF619 +0x8339B439 0xF61A +0x8339B530 0xF61B +0x8339B531 0xF61C +0x8339B532 0xF61D +0x8339B533 0xF61E +0x8339B534 0xF61F +0x8339B535 0xF620 +0x8339B536 0xF621 +0x8339B537 0xF622 +0x8339B538 0xF623 +0x8339B539 0xF624 +0x8339B630 0xF625 +0x8339B631 0xF626 +0x8339B632 0xF627 +0x8339B633 0xF628 +0x8339B634 0xF629 +0x8339B635 0xF62A +0x8339B636 0xF62B +0x8339B637 0xF62C +0x8339B638 0xF62D +0x8339B639 0xF62E +0x8339B730 0xF62F +0x8339B731 0xF630 +0x8339B732 0xF631 +0x8339B733 0xF632 +0x8339B734 0xF633 +0x8339B735 0xF634 +0x8339B736 0xF635 +0x8339B737 0xF636 +0x8339B738 0xF637 +0x8339B739 0xF638 +0x8339B830 0xF639 +0x8339B831 0xF63A +0x8339B832 0xF63B +0x8339B833 0xF63C +0x8339B834 0xF63D +0x8339B835 0xF63E +0x8339B836 0xF63F +0x8339B837 0xF640 +0x8339B838 0xF641 +0x8339B839 0xF642 +0x8339B930 0xF643 +0x8339B931 0xF644 +0x8339B932 0xF645 +0x8339B933 0xF646 +0x8339B934 0xF647 +0x8339B935 0xF648 +0x8339B936 0xF649 +0x8339B937 0xF64A +0x8339B938 0xF64B +0x8339B939 0xF64C +0x8339BA30 0xF64D +0x8339BA31 0xF64E +0x8339BA32 0xF64F +0x8339BA33 0xF650 +0x8339BA34 0xF651 +0x8339BA35 0xF652 +0x8339BA36 0xF653 +0x8339BA37 0xF654 +0x8339BA38 0xF655 +0x8339BA39 0xF656 +0x8339BB30 0xF657 +0x8339BB31 0xF658 +0x8339BB32 0xF659 +0x8339BB33 0xF65A +0x8339BB34 0xF65B +0x8339BB35 0xF65C +0x8339BB36 0xF65D +0x8339BB37 0xF65E +0x8339BB38 0xF65F +0x8339BB39 0xF660 +0x8339BC30 0xF661 +0x8339BC31 0xF662 +0x8339BC32 0xF663 +0x8339BC33 0xF664 +0x8339BC34 0xF665 +0x8339BC35 0xF666 +0x8339BC36 0xF667 +0x8339BC37 0xF668 +0x8339BC38 0xF669 +0x8339BC39 0xF66A +0x8339BD30 0xF66B +0x8339BD31 0xF66C +0x8339BD32 0xF66D +0x8339BD33 0xF66E +0x8339BD34 0xF66F +0x8339BD35 0xF670 +0x8339BD36 0xF671 +0x8339BD37 0xF672 +0x8339BD38 0xF673 +0x8339BD39 0xF674 +0x8339BE30 0xF675 +0x8339BE31 0xF676 +0x8339BE32 0xF677 +0x8339BE33 0xF678 +0x8339BE34 0xF679 +0x8339BE35 0xF67A +0x8339BE36 0xF67B +0x8339BE37 0xF67C +0x8339BE38 0xF67D +0x8339BE39 0xF67E +0x8339BF30 0xF67F +0x8339BF31 0xF680 +0x8339BF32 0xF681 +0x8339BF33 0xF682 +0x8339BF34 0xF683 +0x8339BF35 0xF684 +0x8339BF36 0xF685 +0x8339BF37 0xF686 +0x8339BF38 0xF687 +0x8339BF39 0xF688 +0x8339C030 0xF689 +0x8339C031 0xF68A +0x8339C032 0xF68B +0x8339C033 0xF68C +0x8339C034 0xF68D +0x8339C035 0xF68E +0x8339C036 0xF68F +0x8339C037 0xF690 +0x8339C038 0xF691 +0x8339C039 0xF692 +0x8339C130 0xF693 +0x8339C131 0xF694 +0x8339C132 0xF695 +0x8339C133 0xF696 +0x8339C134 0xF697 +0x8339C135 0xF698 +0x8339C136 0xF699 +0x8339C137 0xF69A +0x8339C138 0xF69B +0x8339C139 0xF69C +0x8339C230 0xF69D +0x8339C231 0xF69E +0x8339C232 0xF69F +0x8339C233 0xF6A0 +0x8339C234 0xF6A1 +0x8339C235 0xF6A2 +0x8339C236 0xF6A3 +0x8339C237 0xF6A4 +0x8339C238 0xF6A5 +0x8339C239 0xF6A6 +0x8339C330 0xF6A7 +0x8339C331 0xF6A8 +0x8339C332 0xF6A9 +0x8339C333 0xF6AA +0x8339C334 0xF6AB +0x8339C335 0xF6AC +0x8339C336 0xF6AD +0x8339C337 0xF6AE +0x8339C338 0xF6AF +0x8339C339 0xF6B0 +0x8339C430 0xF6B1 +0x8339C431 0xF6B2 +0x8339C432 0xF6B3 +0x8339C433 0xF6B4 +0x8339C434 0xF6B5 +0x8339C435 0xF6B6 +0x8339C436 0xF6B7 +0x8339C437 0xF6B8 +0x8339C438 0xF6B9 +0x8339C439 0xF6BA +0x8339C530 0xF6BB +0x8339C531 0xF6BC +0x8339C532 0xF6BD +0x8339C533 0xF6BE +0x8339C534 0xF6BF +0x8339C535 0xF6C0 +0x8339C536 0xF6C1 +0x8339C537 0xF6C2 +0x8339C538 0xF6C3 +0x8339C539 0xF6C4 +0x8339C630 0xF6C5 +0x8339C631 0xF6C6 +0x8339C632 0xF6C7 +0x8339C633 0xF6C8 +0x8339C634 0xF6C9 +0x8339C635 0xF6CA +0x8339C636 0xF6CB +0x8339C637 0xF6CC +0x8339C638 0xF6CD +0x8339C639 0xF6CE +0x8339C730 0xF6CF +0x8339C731 0xF6D0 +0x8339C732 0xF6D1 +0x8339C733 0xF6D2 +0x8339C734 0xF6D3 +0x8339C735 0xF6D4 +0x8339C736 0xF6D5 +0x8339C737 0xF6D6 +0x8339C738 0xF6D7 +0x8339C739 0xF6D8 +0x8339C830 0xF6D9 +0x8339C831 0xF6DA +0x8339C832 0xF6DB +0x8339C833 0xF6DC +0x8339C834 0xF6DD +0x8339C835 0xF6DE +0x8339C836 0xF6DF +0x8339C837 0xF6E0 +0x8339C838 0xF6E1 +0x8339C839 0xF6E2 +0x8339C930 0xF6E3 +0x8339C931 0xF6E4 +0x8339C932 0xF6E5 +0x8339C933 0xF6E6 +0x8339C934 0xF6E7 +0x8339C935 0xF6E8 +0x8339C936 0xF6E9 +0x8339C937 0xF6EA +0x8339C938 0xF6EB +0x8339C939 0xF6EC +0x8339CA30 0xF6ED +0x8339CA31 0xF6EE +0x8339CA32 0xF6EF +0x8339CA33 0xF6F0 +0x8339CA34 0xF6F1 +0x8339CA35 0xF6F2 +0x8339CA36 0xF6F3 +0x8339CA37 0xF6F4 +0x8339CA38 0xF6F5 +0x8339CA39 0xF6F6 +0x8339CB30 0xF6F7 +0x8339CB31 0xF6F8 +0x8339CB32 0xF6F9 +0x8339CB33 0xF6FA +0x8339CB34 0xF6FB +0x8339CB35 0xF6FC +0x8339CB36 0xF6FD +0x8339CB37 0xF6FE +0x8339CB38 0xF6FF +0x8339CB39 0xF700 +0x8339CC30 0xF701 +0x8339CC31 0xF702 +0x8339CC32 0xF703 +0x8339CC33 0xF704 +0x8339CC34 0xF705 +0x8339CC35 0xF706 +0x8339CC36 0xF707 +0x8339CC37 0xF708 +0x8339CC38 0xF709 +0x8339CC39 0xF70A +0x8339CD30 0xF70B +0x8339CD31 0xF70C +0x8339CD32 0xF70D +0x8339CD33 0xF70E +0x8339CD34 0xF70F +0x8339CD35 0xF710 +0x8339CD36 0xF711 +0x8339CD37 0xF712 +0x8339CD38 0xF713 +0x8339CD39 0xF714 +0x8339CE30 0xF715 +0x8339CE31 0xF716 +0x8339CE32 0xF717 +0x8339CE33 0xF718 +0x8339CE34 0xF719 +0x8339CE35 0xF71A +0x8339CE36 0xF71B +0x8339CE37 0xF71C +0x8339CE38 0xF71D +0x8339CE39 0xF71E +0x8339CF30 0xF71F +0x8339CF31 0xF720 +0x8339CF32 0xF721 +0x8339CF33 0xF722 +0x8339CF34 0xF723 +0x8339CF35 0xF724 +0x8339CF36 0xF725 +0x8339CF37 0xF726 +0x8339CF38 0xF727 +0x8339CF39 0xF728 +0x8339D030 0xF729 +0x8339D031 0xF72A +0x8339D032 0xF72B +0x8339D033 0xF72C +0x8339D034 0xF72D +0x8339D035 0xF72E +0x8339D036 0xF72F +0x8339D037 0xF730 +0x8339D038 0xF731 +0x8339D039 0xF732 +0x8339D130 0xF733 +0x8339D131 0xF734 +0x8339D132 0xF735 +0x8339D133 0xF736 +0x8339D134 0xF737 +0x8339D135 0xF738 +0x8339D136 0xF739 +0x8339D137 0xF73A +0x8339D138 0xF73B +0x8339D139 0xF73C +0x8339D230 0xF73D +0x8339D231 0xF73E +0x8339D232 0xF73F +0x8339D233 0xF740 +0x8339D234 0xF741 +0x8339D235 0xF742 +0x8339D236 0xF743 +0x8339D237 0xF744 +0x8339D238 0xF745 +0x8339D239 0xF746 +0x8339D330 0xF747 +0x8339D331 0xF748 +0x8339D332 0xF749 +0x8339D333 0xF74A +0x8339D334 0xF74B +0x8339D335 0xF74C +0x8339D336 0xF74D +0x8339D337 0xF74E +0x8339D338 0xF74F +0x8339D339 0xF750 +0x8339D430 0xF751 +0x8339D431 0xF752 +0x8339D432 0xF753 +0x8339D433 0xF754 +0x8339D434 0xF755 +0x8339D435 0xF756 +0x8339D436 0xF757 +0x8339D437 0xF758 +0x8339D438 0xF759 +0x8339D439 0xF75A +0x8339D530 0xF75B +0x8339D531 0xF75C +0x8339D532 0xF75D +0x8339D533 0xF75E +0x8339D534 0xF75F +0x8339D535 0xF760 +0x8339D536 0xF761 +0x8339D537 0xF762 +0x8339D538 0xF763 +0x8339D539 0xF764 +0x8339D630 0xF765 +0x8339D631 0xF766 +0x8339D632 0xF767 +0x8339D633 0xF768 +0x8339D634 0xF769 +0x8339D635 0xF76A +0x8339D636 0xF76B +0x8339D637 0xF76C +0x8339D638 0xF76D +0x8339D639 0xF76E +0x8339D730 0xF76F +0x8339D731 0xF770 +0x8339D732 0xF771 +0x8339D733 0xF772 +0x8339D734 0xF773 +0x8339D735 0xF774 +0x8339D736 0xF775 +0x8339D737 0xF776 +0x8339D738 0xF777 +0x8339D739 0xF778 +0x8339D830 0xF779 +0x8339D831 0xF77A +0x8339D832 0xF77B +0x8339D833 0xF77C +0x8339D834 0xF77D +0x8339D835 0xF77E +0x8339D836 0xF77F +0x8339D837 0xF780 +0x8339D838 0xF781 +0x8339D839 0xF782 +0x8339D930 0xF783 +0x8339D931 0xF784 +0x8339D932 0xF785 +0x8339D933 0xF786 +0x8339D934 0xF787 +0x8339D935 0xF788 +0x8339D936 0xF789 +0x8339D937 0xF78A +0x8339D938 0xF78B +0x8339D939 0xF78C +0x8339DA30 0xF78D +0x8339DA31 0xF78E +0x8339DA32 0xF78F +0x8339DA33 0xF790 +0x8339DA34 0xF791 +0x8339DA35 0xF792 +0x8339DA36 0xF793 +0x8339DA37 0xF794 +0x8339DA38 0xF795 +0x8339DA39 0xF796 +0x8339DB30 0xF797 +0x8339DB31 0xF798 +0x8339DB32 0xF799 +0x8339DB33 0xF79A +0x8339DB34 0xF79B +0x8339DB35 0xF79C +0x8339DB36 0xF79D +0x8339DB37 0xF79E +0x8339DB38 0xF79F +0x8339DB39 0xF7A0 +0x8339DC30 0xF7A1 +0x8339DC31 0xF7A2 +0x8339DC32 0xF7A3 +0x8339DC33 0xF7A4 +0x8339DC34 0xF7A5 +0x8339DC35 0xF7A6 +0x8339DC36 0xF7A7 +0x8339DC37 0xF7A8 +0x8339DC38 0xF7A9 +0x8339DC39 0xF7AA +0x8339DD30 0xF7AB +0x8339DD31 0xF7AC +0x8339DD32 0xF7AD +0x8339DD33 0xF7AE +0x8339DD34 0xF7AF +0x8339DD35 0xF7B0 +0x8339DD36 0xF7B1 +0x8339DD37 0xF7B2 +0x8339DD38 0xF7B3 +0x8339DD39 0xF7B4 +0x8339DE30 0xF7B5 +0x8339DE31 0xF7B6 +0x8339DE32 0xF7B7 +0x8339DE33 0xF7B8 +0x8339DE34 0xF7B9 +0x8339DE35 0xF7BA +0x8339DE36 0xF7BB +0x8339DE37 0xF7BC +0x8339DE38 0xF7BD +0x8339DE39 0xF7BE +0x8339DF30 0xF7BF +0x8339DF31 0xF7C0 +0x8339DF32 0xF7C1 +0x8339DF33 0xF7C2 +0x8339DF34 0xF7C3 +0x8339DF35 0xF7C4 +0x8339DF36 0xF7C5 +0x8339DF37 0xF7C6 +0x8339DF38 0xF7C7 +0x8339DF39 0xF7C8 +0x8339E030 0xF7C9 +0x8339E031 0xF7CA +0x8339E032 0xF7CB +0x8339E033 0xF7CC +0x8339E034 0xF7CD +0x8339E035 0xF7CE +0x8339E036 0xF7CF +0x8339E037 0xF7D0 +0x8339E038 0xF7D1 +0x8339E039 0xF7D2 +0x8339E130 0xF7D3 +0x8339E131 0xF7D4 +0x8339E132 0xF7D5 +0x8339E133 0xF7D6 +0x8339E134 0xF7D7 +0x8339E135 0xF7D8 +0x8339E136 0xF7D9 +0x8339E137 0xF7DA +0x8339E138 0xF7DB +0x8339E139 0xF7DC +0x8339E230 0xF7DD +0x8339E231 0xF7DE +0x8339E232 0xF7DF +0x8339E233 0xF7E0 +0x8339E234 0xF7E1 +0x8339E235 0xF7E2 +0x8339E236 0xF7E3 +0x8339E237 0xF7E4 +0x8339E238 0xF7E5 +0x8339E239 0xF7E6 +0x8339E330 0xF7E7 +0x8339E331 0xF7E8 +0x8339E332 0xF7E9 +0x8339E333 0xF7EA +0x8339E334 0xF7EB +0x8339E335 0xF7EC +0x8339E336 0xF7ED +0x8339E337 0xF7EE +0x8339E338 0xF7EF +0x8339E339 0xF7F0 +0x8339E430 0xF7F1 +0x8339E431 0xF7F2 +0x8339E432 0xF7F3 +0x8339E433 0xF7F4 +0x8339E434 0xF7F5 +0x8339E435 0xF7F6 +0x8339E436 0xF7F7 +0x8339E437 0xF7F8 +0x8339E438 0xF7F9 +0x8339E439 0xF7FA +0x8339E530 0xF7FB +0x8339E531 0xF7FC +0x8339E532 0xF7FD +0x8339E533 0xF7FE +0x8339E534 0xF7FF +0x8339E535 0xF800 +0x8339E536 0xF801 +0x8339E537 0xF802 +0x8339E538 0xF803 +0x8339E539 0xF804 +0x8339E630 0xF805 +0x8339E631 0xF806 +0x8339E632 0xF807 +0x8339E633 0xF808 +0x8339E634 0xF809 +0x8339E635 0xF80A +0x8339E636 0xF80B +0x8339E637 0xF80C +0x8339E638 0xF80D +0x8339E639 0xF80E +0x8339E730 0xF80F +0x8339E731 0xF810 +0x8339E732 0xF811 +0x8339E733 0xF812 +0x8339E734 0xF813 +0x8339E735 0xF814 +0x8339E736 0xF815 +0x8339E737 0xF816 +0x8339E738 0xF817 +0x8339E739 0xF818 +0x8339E830 0xF819 +0x8339E831 0xF81A +0x8339E832 0xF81B +0x8339E833 0xF81C +0x8339E834 0xF81D +0x8339E835 0xF81E +0x8339E836 0xF81F +0x8339E837 0xF820 +0x8339E838 0xF821 +0x8339E839 0xF822 +0x8339E930 0xF823 +0x8339E931 0xF824 +0x8339E932 0xF825 +0x8339E933 0xF826 +0x8339E934 0xF827 +0x8339E935 0xF828 +0x8339E936 0xF829 +0x8339E937 0xF82A +0x8339E938 0xF82B +0x8339E939 0xF82C +0x8339EA30 0xF82D +0x8339EA31 0xF82E +0x8339EA32 0xF82F +0x8339EA33 0xF830 +0x8339EA34 0xF831 +0x8339EA35 0xF832 +0x8339EA36 0xF833 +0x8339EA37 0xF834 +0x8339EA38 0xF835 +0x8339EA39 0xF836 +0x8339EB30 0xF837 +0x8339EB31 0xF838 +0x8339EB32 0xF839 +0x8339EB33 0xF83A +0x8339EB34 0xF83B +0x8339EB35 0xF83C +0x8339EB36 0xF83D +0x8339EB37 0xF83E +0x8339EB38 0xF83F +0x8339EB39 0xF840 +0x8339EC30 0xF841 +0x8339EC31 0xF842 +0x8339EC32 0xF843 +0x8339EC33 0xF844 +0x8339EC34 0xF845 +0x8339EC35 0xF846 +0x8339EC36 0xF847 +0x8339EC37 0xF848 +0x8339EC38 0xF849 +0x8339EC39 0xF84A +0x8339ED30 0xF84B +0x8339ED31 0xF84C +0x8339ED32 0xF84D +0x8339ED33 0xF84E +0x8339ED34 0xF84F +0x8339ED35 0xF850 +0x8339ED36 0xF851 +0x8339ED37 0xF852 +0x8339ED38 0xF853 +0x8339ED39 0xF854 +0x8339EE30 0xF855 +0x8339EE31 0xF856 +0x8339EE32 0xF857 +0x8339EE33 0xF858 +0x8339EE34 0xF859 +0x8339EE35 0xF85A +0x8339EE36 0xF85B +0x8339EE37 0xF85C +0x8339EE38 0xF85D +0x8339EE39 0xF85E +0x8339EF30 0xF85F +0x8339EF31 0xF860 +0x8339EF32 0xF861 +0x8339EF33 0xF862 +0x8339EF34 0xF863 +0x8339EF35 0xF864 +0x8339EF36 0xF865 +0x8339EF37 0xF866 +0x8339EF38 0xF867 +0x8339EF39 0xF868 +0x8339F030 0xF869 +0x8339F031 0xF86A +0x8339F032 0xF86B +0x8339F033 0xF86C +0x8339F034 0xF86D +0x8339F035 0xF86E +0x8339F036 0xF86F +0x8339F037 0xF870 +0x8339F038 0xF871 +0x8339F039 0xF872 +0x8339F130 0xF873 +0x8339F131 0xF874 +0x8339F132 0xF875 +0x8339F133 0xF876 +0x8339F134 0xF877 +0x8339F135 0xF878 +0x8339F136 0xF879 +0x8339F137 0xF87A +0x8339F138 0xF87B +0x8339F139 0xF87C +0x8339F230 0xF87D +0x8339F231 0xF87E +0x8339F232 0xF87F +0x8339F233 0xF880 +0x8339F234 0xF881 +0x8339F235 0xF882 +0x8339F236 0xF883 +0x8339F237 0xF884 +0x8339F238 0xF885 +0x8339F239 0xF886 +0x8339F330 0xF887 +0x8339F331 0xF888 +0x8339F332 0xF889 +0x8339F333 0xF88A +0x8339F334 0xF88B +0x8339F335 0xF88C +0x8339F336 0xF88D +0x8339F337 0xF88E +0x8339F338 0xF88F +0x8339F339 0xF890 +0x8339F430 0xF891 +0x8339F431 0xF892 +0x8339F432 0xF893 +0x8339F433 0xF894 +0x8339F434 0xF895 +0x8339F435 0xF896 +0x8339F436 0xF897 +0x8339F437 0xF898 +0x8339F438 0xF899 +0x8339F439 0xF89A +0x8339F530 0xF89B +0x8339F531 0xF89C +0x8339F532 0xF89D +0x8339F533 0xF89E +0x8339F534 0xF89F +0x8339F535 0xF8A0 +0x8339F536 0xF8A1 +0x8339F537 0xF8A2 +0x8339F538 0xF8A3 +0x8339F539 0xF8A4 +0x8339F630 0xF8A5 +0x8339F631 0xF8A6 +0x8339F632 0xF8A7 +0x8339F633 0xF8A8 +0x8339F634 0xF8A9 +0x8339F635 0xF8AA +0x8339F636 0xF8AB +0x8339F637 0xF8AC +0x8339F638 0xF8AD +0x8339F639 0xF8AE +0x8339F730 0xF8AF +0x8339F731 0xF8B0 +0x8339F732 0xF8B1 +0x8339F733 0xF8B2 +0x8339F734 0xF8B3 +0x8339F735 0xF8B4 +0x8339F736 0xF8B5 +0x8339F737 0xF8B6 +0x8339F738 0xF8B7 +0x8339F739 0xF8B8 +0x8339F830 0xF8B9 +0x8339F831 0xF8BA +0x8339F832 0xF8BB +0x8339F833 0xF8BC +0x8339F834 0xF8BD +0x8339F835 0xF8BE +0x8339F836 0xF8BF +0x8339F837 0xF8C0 +0x8339F838 0xF8C1 +0x8339F839 0xF8C2 +0x8339F930 0xF8C3 +0x8339F931 0xF8C4 +0x8339F932 0xF8C5 +0x8339F933 0xF8C6 +0x8339F934 0xF8C7 +0x8339F935 0xF8C8 +0x8339F936 0xF8C9 +0x8339F937 0xF8CA +0x8339F938 0xF8CB +0x8339F939 0xF8CC +0x8339FA30 0xF8CD +0x8339FA31 0xF8CE +0x8339FA32 0xF8CF +0x8339FA33 0xF8D0 +0x8339FA34 0xF8D1 +0x8339FA35 0xF8D2 +0x8339FA36 0xF8D3 +0x8339FA37 0xF8D4 +0x8339FA38 0xF8D5 +0x8339FA39 0xF8D6 +0x8339FB30 0xF8D7 +0x8339FB31 0xF8D8 +0x8339FB32 0xF8D9 +0x8339FB33 0xF8DA +0x8339FB34 0xF8DB +0x8339FB35 0xF8DC +0x8339FB36 0xF8DD +0x8339FB37 0xF8DE +0x8339FB38 0xF8DF +0x8339FB39 0xF8E0 +0x8339FC30 0xF8E1 +0x8339FC31 0xF8E2 +0x8339FC32 0xF8E3 +0x8339FC33 0xF8E4 +0x8339FC34 0xF8E5 +0x8339FC35 0xF8E6 +0x8339FC36 0xF8E7 +0x8339FC37 0xF8E8 +0x8339FC38 0xF8E9 +0x8339FC39 0xF8EA +0x8339FD30 0xF8EB +0x8339FD31 0xF8EC +0x8339FD32 0xF8ED +0x8339FD33 0xF8EE +0x8339FD34 0xF8EF +0x8339FD35 0xF8F0 +0x8339FD36 0xF8F1 +0x8339FD37 0xF8F2 +0x8339FD38 0xF8F3 +0x8339FD39 0xF8F4 +0x8339FE30 0xF8F5 +0x8339FE31 0xF8F6 +0x8339FE32 0xF8F7 +0x8339FE33 0xF8F8 +0x8339FE34 0xF8F9 +0x8339FE35 0xF8FA +0x8339FE36 0xF8FB +0x8339FE37 0xF8FC +0x8339FE38 0xF8FD +0x8339FE39 0xF8FE +0x8340 0x50BD +0x8341 0x50BE +0x8342 0x50BF +0x8343 0x50C0 +0x8344 0x50C1 +0x8345 0x50C2 +0x8346 0x50C3 +0x8347 0x50C4 +0x8348 0x50C5 +0x8349 0x50C6 +0x834A 0x50C7 +0x834B 0x50C8 +0x834C 0x50C9 +0x834D 0x50CA +0x834E 0x50CB +0x834F 0x50CC +0x8350 0x50CD +0x8351 0x50CE +0x8352 0x50D0 +0x8353 0x50D1 +0x8354 0x50D2 +0x8355 0x50D3 +0x8356 0x50D4 +0x8357 0x50D5 +0x8358 0x50D7 +0x8359 0x50D8 +0x835A 0x50D9 +0x835B 0x50DB +0x835C 0x50DC +0x835D 0x50DD +0x835E 0x50DE +0x835F 0x50DF +0x8360 0x50E0 +0x8361 0x50E1 +0x8362 0x50E2 +0x8363 0x50E3 +0x8364 0x50E4 +0x8365 0x50E5 +0x8366 0x50E8 +0x8367 0x50E9 +0x8368 0x50EA +0x8369 0x50EB +0x836A 0x50EF +0x836B 0x50F0 +0x836C 0x50F1 +0x836D 0x50F2 +0x836E 0x50F4 +0x836F 0x50F6 +0x8370 0x50F7 +0x8371 0x50F8 +0x8372 0x50F9 +0x8373 0x50FA +0x8374 0x50FC +0x8375 0x50FD +0x8376 0x50FE +0x8377 0x50FF +0x8378 0x5100 +0x8379 0x5101 +0x837A 0x5102 +0x837B 0x5103 +0x837C 0x5104 +0x837D 0x5105 +0x837E 0x5108 +0x8380 0x5109 +0x8381 0x510A +0x8382 0x510C +0x8383 0x510D +0x8384 0x510E +0x8385 0x510F +0x8386 0x5110 +0x8387 0x5111 +0x8388 0x5113 +0x8389 0x5114 +0x838A 0x5115 +0x838B 0x5116 +0x838C 0x5117 +0x838D 0x5118 +0x838E 0x5119 +0x838F 0x511A +0x8390 0x511B +0x8391 0x511C +0x8392 0x511D +0x8393 0x511E +0x8394 0x511F +0x8395 0x5120 +0x8396 0x5122 +0x8397 0x5123 +0x8398 0x5124 +0x8399 0x5125 +0x839A 0x5126 +0x839B 0x5127 +0x839C 0x5128 +0x839D 0x5129 +0x839E 0x512A +0x839F 0x512B +0x83A0 0x512C +0x83A1 0x512D +0x83A2 0x512E +0x83A3 0x512F +0x83A4 0x5130 +0x83A5 0x5131 +0x83A6 0x5132 +0x83A7 0x5133 +0x83A8 0x5134 +0x83A9 0x5135 +0x83AA 0x5136 +0x83AB 0x5137 +0x83AC 0x5138 +0x83AD 0x5139 +0x83AE 0x513A +0x83AF 0x513B +0x83B0 0x513C +0x83B1 0x513D +0x83B2 0x513E +0x83B3 0x5142 +0x83B4 0x5147 +0x83B5 0x514A +0x83B6 0x514C +0x83B7 0x514E +0x83B8 0x514F +0x83B9 0x5150 +0x83BA 0x5152 +0x83BB 0x5153 +0x83BC 0x5157 +0x83BD 0x5158 +0x83BE 0x5159 +0x83BF 0x515B +0x83C0 0x515D +0x83C1 0x515E +0x83C2 0x515F +0x83C3 0x5160 +0x83C4 0x5161 +0x83C5 0x5163 +0x83C6 0x5164 +0x83C7 0x5166 +0x83C8 0x5167 +0x83C9 0x5169 +0x83CA 0x516A +0x83CB 0x516F +0x83CC 0x5172 +0x83CD 0x517A +0x83CE 0x517E +0x83CF 0x517F +0x83D0 0x5183 +0x83D1 0x5184 +0x83D2 0x5186 +0x83D3 0x5187 +0x83D4 0x518A +0x83D5 0x518B +0x83D6 0x518E +0x83D7 0x518F +0x83D8 0x5190 +0x83D9 0x5191 +0x83DA 0x5193 +0x83DB 0x5194 +0x83DC 0x5198 +0x83DD 0x519A +0x83DE 0x519D +0x83DF 0x519E +0x83E0 0x519F +0x83E1 0x51A1 +0x83E2 0x51A3 +0x83E3 0x51A6 +0x83E4 0x51A7 +0x83E5 0x51A8 +0x83E6 0x51A9 +0x83E7 0x51AA +0x83E8 0x51AD +0x83E9 0x51AE +0x83EA 0x51B4 +0x83EB 0x51B8 +0x83EC 0x51B9 +0x83ED 0x51BA +0x83EE 0x51BE +0x83EF 0x51BF +0x83F0 0x51C1 +0x83F1 0x51C2 +0x83F2 0x51C3 +0x83F3 0x51C5 +0x83F4 0x51C8 +0x83F5 0x51CA +0x83F6 0x51CD +0x83F7 0x51CE +0x83F8 0x51D0 +0x83F9 0x51D2 +0x83FA 0x51D3 +0x83FB 0x51D4 +0x83FC 0x51D5 +0x83FD 0x51D6 +0x83FE 0x51D7 +0x84308130 0xF8FF +0x84308131 0xF900 +0x84308132 0xF901 +0x84308133 0xF902 +0x84308134 0xF903 +0x84308135 0xF904 +0x84308136 0xF905 +0x84308137 0xF906 +0x84308138 0xF907 +0x84308139 0xF908 +0x84308230 0xF909 +0x84308231 0xF90A +0x84308232 0xF90B +0x84308233 0xF90C +0x84308234 0xF90D +0x84308235 0xF90E +0x84308236 0xF90F +0x84308237 0xF910 +0x84308238 0xF911 +0x84308239 0xF912 +0x84308330 0xF913 +0x84308331 0xF914 +0x84308332 0xF915 +0x84308333 0xF916 +0x84308334 0xF917 +0x84308335 0xF918 +0x84308336 0xF919 +0x84308337 0xF91A +0x84308338 0xF91B +0x84308339 0xF91C +0x84308430 0xF91D +0x84308431 0xF91E +0x84308432 0xF91F +0x84308433 0xF920 +0x84308434 0xF921 +0x84308435 0xF922 +0x84308436 0xF923 +0x84308437 0xF924 +0x84308438 0xF925 +0x84308439 0xF926 +0x84308530 0xF927 +0x84308531 0xF928 +0x84308532 0xF929 +0x84308533 0xF92A +0x84308534 0xF92B +0x84308535 0xF92D +0x84308536 0xF92E +0x84308537 0xF92F +0x84308538 0xF930 +0x84308539 0xF931 +0x84308630 0xF932 +0x84308631 0xF933 +0x84308632 0xF934 +0x84308633 0xF935 +0x84308634 0xF936 +0x84308635 0xF937 +0x84308636 0xF938 +0x84308637 0xF939 +0x84308638 0xF93A +0x84308639 0xF93B +0x84308730 0xF93C +0x84308731 0xF93D +0x84308732 0xF93E +0x84308733 0xF93F +0x84308734 0xF940 +0x84308735 0xF941 +0x84308736 0xF942 +0x84308737 0xF943 +0x84308738 0xF944 +0x84308739 0xF945 +0x84308830 0xF946 +0x84308831 0xF947 +0x84308832 0xF948 +0x84308833 0xF949 +0x84308834 0xF94A +0x84308835 0xF94B +0x84308836 0xF94C +0x84308837 0xF94D +0x84308838 0xF94E +0x84308839 0xF94F +0x84308930 0xF950 +0x84308931 0xF951 +0x84308932 0xF952 +0x84308933 0xF953 +0x84308934 0xF954 +0x84308935 0xF955 +0x84308936 0xF956 +0x84308937 0xF957 +0x84308938 0xF958 +0x84308939 0xF959 +0x84308A30 0xF95A +0x84308A31 0xF95B +0x84308A32 0xF95C +0x84308A33 0xF95D +0x84308A34 0xF95E +0x84308A35 0xF95F +0x84308A36 0xF960 +0x84308A37 0xF961 +0x84308A38 0xF962 +0x84308A39 0xF963 +0x84308B30 0xF964 +0x84308B31 0xF965 +0x84308B32 0xF966 +0x84308B33 0xF967 +0x84308B34 0xF968 +0x84308B35 0xF969 +0x84308B36 0xF96A +0x84308B37 0xF96B +0x84308B38 0xF96C +0x84308B39 0xF96D +0x84308C30 0xF96E +0x84308C31 0xF96F +0x84308C32 0xF970 +0x84308C33 0xF971 +0x84308C34 0xF972 +0x84308C35 0xF973 +0x84308C36 0xF974 +0x84308C37 0xF975 +0x84308C38 0xF976 +0x84308C39 0xF977 +0x84308D30 0xF978 +0x84308D31 0xF97A +0x84308D32 0xF97B +0x84308D33 0xF97C +0x84308D34 0xF97D +0x84308D35 0xF97E +0x84308D36 0xF97F +0x84308D37 0xF980 +0x84308D38 0xF981 +0x84308D39 0xF982 +0x84308E30 0xF983 +0x84308E31 0xF984 +0x84308E32 0xF985 +0x84308E33 0xF986 +0x84308E34 0xF987 +0x84308E35 0xF988 +0x84308E36 0xF989 +0x84308E37 0xF98A +0x84308E38 0xF98B +0x84308E39 0xF98C +0x84308F30 0xF98D +0x84308F31 0xF98E +0x84308F32 0xF98F +0x84308F33 0xF990 +0x84308F34 0xF991 +0x84308F35 0xF992 +0x84308F36 0xF993 +0x84308F37 0xF994 +0x84308F38 0xF996 +0x84308F39 0xF997 +0x84309030 0xF998 +0x84309031 0xF999 +0x84309032 0xF99A +0x84309033 0xF99B +0x84309034 0xF99C +0x84309035 0xF99D +0x84309036 0xF99E +0x84309037 0xF99F +0x84309038 0xF9A0 +0x84309039 0xF9A1 +0x84309130 0xF9A2 +0x84309131 0xF9A3 +0x84309132 0xF9A4 +0x84309133 0xF9A5 +0x84309134 0xF9A6 +0x84309135 0xF9A7 +0x84309136 0xF9A8 +0x84309137 0xF9A9 +0x84309138 0xF9AA +0x84309139 0xF9AB +0x84309230 0xF9AC +0x84309231 0xF9AD +0x84309232 0xF9AE +0x84309233 0xF9AF +0x84309234 0xF9B0 +0x84309235 0xF9B1 +0x84309236 0xF9B2 +0x84309237 0xF9B3 +0x84309238 0xF9B4 +0x84309239 0xF9B5 +0x84309330 0xF9B6 +0x84309331 0xF9B7 +0x84309332 0xF9B8 +0x84309333 0xF9B9 +0x84309334 0xF9BA +0x84309335 0xF9BB +0x84309336 0xF9BC +0x84309337 0xF9BD +0x84309338 0xF9BE +0x84309339 0xF9BF +0x84309430 0xF9C0 +0x84309431 0xF9C1 +0x84309432 0xF9C2 +0x84309433 0xF9C3 +0x84309434 0xF9C4 +0x84309435 0xF9C5 +0x84309436 0xF9C6 +0x84309437 0xF9C7 +0x84309438 0xF9C8 +0x84309439 0xF9C9 +0x84309530 0xF9CA +0x84309531 0xF9CB +0x84309532 0xF9CC +0x84309533 0xF9CD +0x84309534 0xF9CE +0x84309535 0xF9CF +0x84309536 0xF9D0 +0x84309537 0xF9D1 +0x84309538 0xF9D2 +0x84309539 0xF9D3 +0x84309630 0xF9D4 +0x84309631 0xF9D5 +0x84309632 0xF9D6 +0x84309633 0xF9D7 +0x84309634 0xF9D8 +0x84309635 0xF9D9 +0x84309636 0xF9DA +0x84309637 0xF9DB +0x84309638 0xF9DC +0x84309639 0xF9DD +0x84309730 0xF9DE +0x84309731 0xF9DF +0x84309732 0xF9E0 +0x84309733 0xF9E1 +0x84309734 0xF9E2 +0x84309735 0xF9E3 +0x84309736 0xF9E4 +0x84309737 0xF9E5 +0x84309738 0xF9E6 +0x84309739 0xF9E8 +0x84309830 0xF9E9 +0x84309831 0xF9EA +0x84309832 0xF9EB +0x84309833 0xF9EC +0x84309834 0xF9ED +0x84309835 0xF9EE +0x84309836 0xF9EF +0x84309837 0xF9F0 +0x84309838 0xF9F2 +0x84309839 0xF9F3 +0x84309930 0xF9F4 +0x84309931 0xF9F5 +0x84309932 0xF9F6 +0x84309933 0xF9F7 +0x84309934 0xF9F8 +0x84309935 0xF9F9 +0x84309936 0xF9FA +0x84309937 0xF9FB +0x84309938 0xF9FC +0x84309939 0xF9FD +0x84309A30 0xF9FE +0x84309A31 0xF9FF +0x84309A32 0xFA00 +0x84309A33 0xFA01 +0x84309A34 0xFA02 +0x84309A35 0xFA03 +0x84309A36 0xFA04 +0x84309A37 0xFA05 +0x84309A38 0xFA06 +0x84309A39 0xFA07 +0x84309B30 0xFA08 +0x84309B31 0xFA09 +0x84309B32 0xFA0A +0x84309B33 0xFA0B +0x84309B34 0xFA10 +0x84309B35 0xFA12 +0x84309B36 0xFA15 +0x84309B37 0xFA16 +0x84309B38 0xFA17 +0x84309B39 0xFA19 +0x84309C30 0xFA1A +0x84309C31 0xFA1B +0x84309C32 0xFA1C +0x84309C33 0xFA1D +0x84309C34 0xFA1E +0x84309C35 0xFA22 +0x84309C36 0xFA25 +0x84309C37 0xFA26 +0x84309C38 0xFA2A +0x84309C39 0xFA2B +0x84309D30 0xFA2C +0x84309D31 0xFA2D +0x84309D32 0xFA2E +0x84309D33 0xFA2F +0x84309D34 0xFA30 +0x84309D35 0xFA31 +0x84309D36 0xFA32 +0x84309D37 0xFA33 +0x84309D38 0xFA34 +0x84309D39 0xFA35 +0x84309E30 0xFA36 +0x84309E31 0xFA37 +0x84309E32 0xFA38 +0x84309E33 0xFA39 +0x84309E34 0xFA3A +0x84309E35 0xFA3B +0x84309E36 0xFA3C +0x84309E37 0xFA3D +0x84309E38 0xFA3E +0x84309E39 0xFA3F +0x84309F30 0xFA40 +0x84309F31 0xFA41 +0x84309F32 0xFA42 +0x84309F33 0xFA43 +0x84309F34 0xFA44 +0x84309F35 0xFA45 +0x84309F36 0xFA46 +0x84309F37 0xFA47 +0x84309F38 0xFA48 +0x84309F39 0xFA49 +0x8430A030 0xFA4A +0x8430A031 0xFA4B +0x8430A032 0xFA4C +0x8430A033 0xFA4D +0x8430A034 0xFA4E +0x8430A035 0xFA4F +0x8430A036 0xFA50 +0x8430A037 0xFA51 +0x8430A038 0xFA52 +0x8430A039 0xFA53 +0x8430A130 0xFA54 +0x8430A131 0xFA55 +0x8430A132 0xFA56 +0x8430A133 0xFA57 +0x8430A134 0xFA58 +0x8430A135 0xFA59 +0x8430A136 0xFA5A +0x8430A137 0xFA5B +0x8430A138 0xFA5C +0x8430A139 0xFA5D +0x8430A230 0xFA5E +0x8430A231 0xFA5F +0x8430A232 0xFA60 +0x8430A233 0xFA61 +0x8430A234 0xFA62 +0x8430A235 0xFA63 +0x8430A236 0xFA64 +0x8430A237 0xFA65 +0x8430A238 0xFA66 +0x8430A239 0xFA67 +0x8430A330 0xFA68 +0x8430A331 0xFA69 +0x8430A332 0xFA6A +0x8430A333 0xFA6B +0x8430A334 0xFA6C +0x8430A335 0xFA6D +0x8430A336 0xFA6E +0x8430A337 0xFA6F +0x8430A338 0xFA70 +0x8430A339 0xFA71 +0x8430A430 0xFA72 +0x8430A431 0xFA73 +0x8430A432 0xFA74 +0x8430A433 0xFA75 +0x8430A434 0xFA76 +0x8430A435 0xFA77 +0x8430A436 0xFA78 +0x8430A437 0xFA79 +0x8430A438 0xFA7A +0x8430A439 0xFA7B +0x8430A530 0xFA7C +0x8430A531 0xFA7D +0x8430A532 0xFA7E +0x8430A533 0xFA7F +0x8430A534 0xFA80 +0x8430A535 0xFA81 +0x8430A536 0xFA82 +0x8430A537 0xFA83 +0x8430A538 0xFA84 +0x8430A539 0xFA85 +0x8430A630 0xFA86 +0x8430A631 0xFA87 +0x8430A632 0xFA88 +0x8430A633 0xFA89 +0x8430A634 0xFA8A +0x8430A635 0xFA8B +0x8430A636 0xFA8C +0x8430A637 0xFA8D +0x8430A638 0xFA8E +0x8430A639 0xFA8F +0x8430A730 0xFA90 +0x8430A731 0xFA91 +0x8430A732 0xFA92 +0x8430A733 0xFA93 +0x8430A734 0xFA94 +0x8430A735 0xFA95 +0x8430A736 0xFA96 +0x8430A737 0xFA97 +0x8430A738 0xFA98 +0x8430A739 0xFA99 +0x8430A830 0xFA9A +0x8430A831 0xFA9B +0x8430A832 0xFA9C +0x8430A833 0xFA9D +0x8430A834 0xFA9E +0x8430A835 0xFA9F +0x8430A836 0xFAA0 +0x8430A837 0xFAA1 +0x8430A838 0xFAA2 +0x8430A839 0xFAA3 +0x8430A930 0xFAA4 +0x8430A931 0xFAA5 +0x8430A932 0xFAA6 +0x8430A933 0xFAA7 +0x8430A934 0xFAA8 +0x8430A935 0xFAA9 +0x8430A936 0xFAAA +0x8430A937 0xFAAB +0x8430A938 0xFAAC +0x8430A939 0xFAAD +0x8430AA30 0xFAAE +0x8430AA31 0xFAAF +0x8430AA32 0xFAB0 +0x8430AA33 0xFAB1 +0x8430AA34 0xFAB2 +0x8430AA35 0xFAB3 +0x8430AA36 0xFAB4 +0x8430AA37 0xFAB5 +0x8430AA38 0xFAB6 +0x8430AA39 0xFAB7 +0x8430AB30 0xFAB8 +0x8430AB31 0xFAB9 +0x8430AB32 0xFABA +0x8430AB33 0xFABB +0x8430AB34 0xFABC +0x8430AB35 0xFABD +0x8430AB36 0xFABE +0x8430AB37 0xFABF +0x8430AB38 0xFAC0 +0x8430AB39 0xFAC1 +0x8430AC30 0xFAC2 +0x8430AC31 0xFAC3 +0x8430AC32 0xFAC4 +0x8430AC33 0xFAC5 +0x8430AC34 0xFAC6 +0x8430AC35 0xFAC7 +0x8430AC36 0xFAC8 +0x8430AC37 0xFAC9 +0x8430AC38 0xFACA +0x8430AC39 0xFACB +0x8430AD30 0xFACC +0x8430AD31 0xFACD +0x8430AD32 0xFACE +0x8430AD33 0xFACF +0x8430AD34 0xFAD0 +0x8430AD35 0xFAD1 +0x8430AD36 0xFAD2 +0x8430AD37 0xFAD3 +0x8430AD38 0xFAD4 +0x8430AD39 0xFAD5 +0x8430AE30 0xFAD6 +0x8430AE31 0xFAD7 +0x8430AE32 0xFAD8 +0x8430AE33 0xFAD9 +0x8430AE34 0xFADA +0x8430AE35 0xFADB +0x8430AE36 0xFADC +0x8430AE37 0xFADD +0x8430AE38 0xFADE +0x8430AE39 0xFADF +0x8430AF30 0xFAE0 +0x8430AF31 0xFAE1 +0x8430AF32 0xFAE2 +0x8430AF33 0xFAE3 +0x8430AF34 0xFAE4 +0x8430AF35 0xFAE5 +0x8430AF36 0xFAE6 +0x8430AF37 0xFAE7 +0x8430AF38 0xFAE8 +0x8430AF39 0xFAE9 +0x8430B030 0xFAEA +0x8430B031 0xFAEB +0x8430B032 0xFAEC +0x8430B033 0xFAED +0x8430B034 0xFAEE +0x8430B035 0xFAEF +0x8430B036 0xFAF0 +0x8430B037 0xFAF1 +0x8430B038 0xFAF2 +0x8430B039 0xFAF3 +0x8430B130 0xFAF4 +0x8430B131 0xFAF5 +0x8430B132 0xFAF6 +0x8430B133 0xFAF7 +0x8430B134 0xFAF8 +0x8430B135 0xFAF9 +0x8430B136 0xFAFA +0x8430B137 0xFAFB +0x8430B138 0xFAFC +0x8430B139 0xFAFD +0x8430B230 0xFAFE +0x8430B231 0xFAFF +0x8430B232 0xFB00 +0x8430B233 0xFB01 +0x8430B234 0xFB02 +0x8430B235 0xFB03 +0x8430B236 0xFB04 +0x8430B237 0xFB05 +0x8430B238 0xFB06 +0x8430B239 0xFB07 +0x8430B330 0xFB08 +0x8430B331 0xFB09 +0x8430B332 0xFB0A +0x8430B333 0xFB0B +0x8430B334 0xFB0C +0x8430B335 0xFB0D +0x8430B336 0xFB0E +0x8430B337 0xFB0F +0x8430B338 0xFB10 +0x8430B339 0xFB11 +0x8430B430 0xFB12 +0x8430B431 0xFB13 +0x8430B432 0xFB14 +0x8430B433 0xFB15 +0x8430B434 0xFB16 +0x8430B435 0xFB17 +0x8430B436 0xFB18 +0x8430B437 0xFB19 +0x8430B438 0xFB1A +0x8430B439 0xFB1B +0x8430B530 0xFB1C +0x8430B531 0xFB1D +0x8430B532 0xFB1E +0x8430B533 0xFB1F +0x8430B534 0xFB20 +0x8430B535 0xFB21 +0x8430B536 0xFB22 +0x8430B537 0xFB23 +0x8430B538 0xFB24 +0x8430B539 0xFB25 +0x8430B630 0xFB26 +0x8430B631 0xFB27 +0x8430B632 0xFB28 +0x8430B633 0xFB29 +0x8430B634 0xFB2A +0x8430B635 0xFB2B +0x8430B636 0xFB2C +0x8430B637 0xFB2D +0x8430B638 0xFB2E +0x8430B639 0xFB2F +0x8430B730 0xFB30 +0x8430B731 0xFB31 +0x8430B732 0xFB32 +0x8430B733 0xFB33 +0x8430B734 0xFB34 +0x8430B735 0xFB35 +0x8430B736 0xFB36 +0x8430B737 0xFB37 +0x8430B738 0xFB38 +0x8430B739 0xFB39 +0x8430B830 0xFB3A +0x8430B831 0xFB3B +0x8430B832 0xFB3C +0x8430B833 0xFB3D +0x8430B834 0xFB3E +0x8430B835 0xFB3F +0x8430B836 0xFB40 +0x8430B837 0xFB41 +0x8430B838 0xFB42 +0x8430B839 0xFB43 +0x8430B930 0xFB44 +0x8430B931 0xFB45 +0x8430B932 0xFB46 +0x8430B933 0xFB47 +0x8430B934 0xFB48 +0x8430B935 0xFB49 +0x8430B936 0xFB4A +0x8430B937 0xFB4B +0x8430B938 0xFB4C +0x8430B939 0xFB4D +0x8430BA30 0xFB4E +0x8430BA31 0xFB4F +0x8430BA32 0xFB50 +0x8430BA33 0xFB51 +0x8430BA34 0xFB52 +0x8430BA35 0xFB53 +0x8430BA36 0xFB54 +0x8430BA37 0xFB55 +0x8430BA38 0xFB56 +0x8430BA39 0xFB57 +0x8430BB30 0xFB58 +0x8430BB31 0xFB59 +0x8430BB32 0xFB5A +0x8430BB33 0xFB5B +0x8430BB34 0xFB5C +0x8430BB35 0xFB5D +0x8430BB36 0xFB5E +0x8430BB37 0xFB5F +0x8430BB38 0xFB60 +0x8430BB39 0xFB61 +0x8430BC30 0xFB62 +0x8430BC31 0xFB63 +0x8430BC32 0xFB64 +0x8430BC33 0xFB65 +0x8430BC34 0xFB66 +0x8430BC35 0xFB67 +0x8430BC36 0xFB68 +0x8430BC37 0xFB69 +0x8430BC38 0xFB6A +0x8430BC39 0xFB6B +0x8430BD30 0xFB6C +0x8430BD31 0xFB6D +0x8430BD32 0xFB6E +0x8430BD33 0xFB6F +0x8430BD34 0xFB70 +0x8430BD35 0xFB71 +0x8430BD36 0xFB72 +0x8430BD37 0xFB73 +0x8430BD38 0xFB74 +0x8430BD39 0xFB75 +0x8430BE30 0xFB76 +0x8430BE31 0xFB77 +0x8430BE32 0xFB78 +0x8430BE33 0xFB79 +0x8430BE34 0xFB7A +0x8430BE35 0xFB7B +0x8430BE36 0xFB7C +0x8430BE37 0xFB7D +0x8430BE38 0xFB7E +0x8430BE39 0xFB7F +0x8430BF30 0xFB80 +0x8430BF31 0xFB81 +0x8430BF32 0xFB82 +0x8430BF33 0xFB83 +0x8430BF34 0xFB84 +0x8430BF35 0xFB85 +0x8430BF36 0xFB86 +0x8430BF37 0xFB87 +0x8430BF38 0xFB88 +0x8430BF39 0xFB89 +0x8430C030 0xFB8A +0x8430C031 0xFB8B +0x8430C032 0xFB8C +0x8430C033 0xFB8D +0x8430C034 0xFB8E +0x8430C035 0xFB8F +0x8430C036 0xFB90 +0x8430C037 0xFB91 +0x8430C038 0xFB92 +0x8430C039 0xFB93 +0x8430C130 0xFB94 +0x8430C131 0xFB95 +0x8430C132 0xFB96 +0x8430C133 0xFB97 +0x8430C134 0xFB98 +0x8430C135 0xFB99 +0x8430C136 0xFB9A +0x8430C137 0xFB9B +0x8430C138 0xFB9C +0x8430C139 0xFB9D +0x8430C230 0xFB9E +0x8430C231 0xFB9F +0x8430C232 0xFBA0 +0x8430C233 0xFBA1 +0x8430C234 0xFBA2 +0x8430C235 0xFBA3 +0x8430C236 0xFBA4 +0x8430C237 0xFBA5 +0x8430C238 0xFBA6 +0x8430C239 0xFBA7 +0x8430C330 0xFBA8 +0x8430C331 0xFBA9 +0x8430C332 0xFBAA +0x8430C333 0xFBAB +0x8430C334 0xFBAC +0x8430C335 0xFBAD +0x8430C336 0xFBAE +0x8430C337 0xFBAF +0x8430C338 0xFBB0 +0x8430C339 0xFBB1 +0x8430C430 0xFBB2 +0x8430C431 0xFBB3 +0x8430C432 0xFBB4 +0x8430C433 0xFBB5 +0x8430C434 0xFBB6 +0x8430C435 0xFBB7 +0x8430C436 0xFBB8 +0x8430C437 0xFBB9 +0x8430C438 0xFBBA +0x8430C439 0xFBBB +0x8430C530 0xFBBC +0x8430C531 0xFBBD +0x8430C532 0xFBBE +0x8430C533 0xFBBF +0x8430C534 0xFBC0 +0x8430C535 0xFBC1 +0x8430C536 0xFBC2 +0x8430C537 0xFBC3 +0x8430C538 0xFBC4 +0x8430C539 0xFBC5 +0x8430C630 0xFBC6 +0x8430C631 0xFBC7 +0x8430C632 0xFBC8 +0x8430C633 0xFBC9 +0x8430C634 0xFBCA +0x8430C635 0xFBCB +0x8430C636 0xFBCC +0x8430C637 0xFBCD +0x8430C638 0xFBCE +0x8430C639 0xFBCF +0x8430C730 0xFBD0 +0x8430C731 0xFBD1 +0x8430C732 0xFBD2 +0x8430C733 0xFBD3 +0x8430C734 0xFBD4 +0x8430C735 0xFBD5 +0x8430C736 0xFBD6 +0x8430C737 0xFBD7 +0x8430C738 0xFBD8 +0x8430C739 0xFBD9 +0x8430C830 0xFBDA +0x8430C831 0xFBDB +0x8430C832 0xFBDC +0x8430C833 0xFBDD +0x8430C834 0xFBDE +0x8430C835 0xFBDF +0x8430C836 0xFBE0 +0x8430C837 0xFBE1 +0x8430C838 0xFBE2 +0x8430C839 0xFBE3 +0x8430C930 0xFBE4 +0x8430C931 0xFBE5 +0x8430C932 0xFBE6 +0x8430C933 0xFBE7 +0x8430C934 0xFBE8 +0x8430C935 0xFBE9 +0x8430C936 0xFBEA +0x8430C937 0xFBEB +0x8430C938 0xFBEC +0x8430C939 0xFBED +0x8430CA30 0xFBEE +0x8430CA31 0xFBEF +0x8430CA32 0xFBF0 +0x8430CA33 0xFBF1 +0x8430CA34 0xFBF2 +0x8430CA35 0xFBF3 +0x8430CA36 0xFBF4 +0x8430CA37 0xFBF5 +0x8430CA38 0xFBF6 +0x8430CA39 0xFBF7 +0x8430CB30 0xFBF8 +0x8430CB31 0xFBF9 +0x8430CB32 0xFBFA +0x8430CB33 0xFBFB +0x8430CB34 0xFBFC +0x8430CB35 0xFBFD +0x8430CB36 0xFBFE +0x8430CB37 0xFBFF +0x8430CB38 0xFC00 +0x8430CB39 0xFC01 +0x8430CC30 0xFC02 +0x8430CC31 0xFC03 +0x8430CC32 0xFC04 +0x8430CC33 0xFC05 +0x8430CC34 0xFC06 +0x8430CC35 0xFC07 +0x8430CC36 0xFC08 +0x8430CC37 0xFC09 +0x8430CC38 0xFC0A +0x8430CC39 0xFC0B +0x8430CD30 0xFC0C +0x8430CD31 0xFC0D +0x8430CD32 0xFC0E +0x8430CD33 0xFC0F +0x8430CD34 0xFC10 +0x8430CD35 0xFC11 +0x8430CD36 0xFC12 +0x8430CD37 0xFC13 +0x8430CD38 0xFC14 +0x8430CD39 0xFC15 +0x8430CE30 0xFC16 +0x8430CE31 0xFC17 +0x8430CE32 0xFC18 +0x8430CE33 0xFC19 +0x8430CE34 0xFC1A +0x8430CE35 0xFC1B +0x8430CE36 0xFC1C +0x8430CE37 0xFC1D +0x8430CE38 0xFC1E +0x8430CE39 0xFC1F +0x8430CF30 0xFC20 +0x8430CF31 0xFC21 +0x8430CF32 0xFC22 +0x8430CF33 0xFC23 +0x8430CF34 0xFC24 +0x8430CF35 0xFC25 +0x8430CF36 0xFC26 +0x8430CF37 0xFC27 +0x8430CF38 0xFC28 +0x8430CF39 0xFC29 +0x8430D030 0xFC2A +0x8430D031 0xFC2B +0x8430D032 0xFC2C +0x8430D033 0xFC2D +0x8430D034 0xFC2E +0x8430D035 0xFC2F +0x8430D036 0xFC30 +0x8430D037 0xFC31 +0x8430D038 0xFC32 +0x8430D039 0xFC33 +0x8430D130 0xFC34 +0x8430D131 0xFC35 +0x8430D132 0xFC36 +0x8430D133 0xFC37 +0x8430D134 0xFC38 +0x8430D135 0xFC39 +0x8430D136 0xFC3A +0x8430D137 0xFC3B +0x8430D138 0xFC3C +0x8430D139 0xFC3D +0x8430D230 0xFC3E +0x8430D231 0xFC3F +0x8430D232 0xFC40 +0x8430D233 0xFC41 +0x8430D234 0xFC42 +0x8430D235 0xFC43 +0x8430D236 0xFC44 +0x8430D237 0xFC45 +0x8430D238 0xFC46 +0x8430D239 0xFC47 +0x8430D330 0xFC48 +0x8430D331 0xFC49 +0x8430D332 0xFC4A +0x8430D333 0xFC4B +0x8430D334 0xFC4C +0x8430D335 0xFC4D +0x8430D336 0xFC4E +0x8430D337 0xFC4F +0x8430D338 0xFC50 +0x8430D339 0xFC51 +0x8430D430 0xFC52 +0x8430D431 0xFC53 +0x8430D432 0xFC54 +0x8430D433 0xFC55 +0x8430D434 0xFC56 +0x8430D435 0xFC57 +0x8430D436 0xFC58 +0x8430D437 0xFC59 +0x8430D438 0xFC5A +0x8430D439 0xFC5B +0x8430D530 0xFC5C +0x8430D531 0xFC5D +0x8430D532 0xFC5E +0x8430D533 0xFC5F +0x8430D534 0xFC60 +0x8430D535 0xFC61 +0x8430D536 0xFC62 +0x8430D537 0xFC63 +0x8430D538 0xFC64 +0x8430D539 0xFC65 +0x8430D630 0xFC66 +0x8430D631 0xFC67 +0x8430D632 0xFC68 +0x8430D633 0xFC69 +0x8430D634 0xFC6A +0x8430D635 0xFC6B +0x8430D636 0xFC6C +0x8430D637 0xFC6D +0x8430D638 0xFC6E +0x8430D639 0xFC6F +0x8430D730 0xFC70 +0x8430D731 0xFC71 +0x8430D732 0xFC72 +0x8430D733 0xFC73 +0x8430D734 0xFC74 +0x8430D735 0xFC75 +0x8430D736 0xFC76 +0x8430D737 0xFC77 +0x8430D738 0xFC78 +0x8430D739 0xFC79 +0x8430D830 0xFC7A +0x8430D831 0xFC7B +0x8430D832 0xFC7C +0x8430D833 0xFC7D +0x8430D834 0xFC7E +0x8430D835 0xFC7F +0x8430D836 0xFC80 +0x8430D837 0xFC81 +0x8430D838 0xFC82 +0x8430D839 0xFC83 +0x8430D930 0xFC84 +0x8430D931 0xFC85 +0x8430D932 0xFC86 +0x8430D933 0xFC87 +0x8430D934 0xFC88 +0x8430D935 0xFC89 +0x8430D936 0xFC8A +0x8430D937 0xFC8B +0x8430D938 0xFC8C +0x8430D939 0xFC8D +0x8430DA30 0xFC8E +0x8430DA31 0xFC8F +0x8430DA32 0xFC90 +0x8430DA33 0xFC91 +0x8430DA34 0xFC92 +0x8430DA35 0xFC93 +0x8430DA36 0xFC94 +0x8430DA37 0xFC95 +0x8430DA38 0xFC96 +0x8430DA39 0xFC97 +0x8430DB30 0xFC98 +0x8430DB31 0xFC99 +0x8430DB32 0xFC9A +0x8430DB33 0xFC9B +0x8430DB34 0xFC9C +0x8430DB35 0xFC9D +0x8430DB36 0xFC9E +0x8430DB37 0xFC9F +0x8430DB38 0xFCA0 +0x8430DB39 0xFCA1 +0x8430DC30 0xFCA2 +0x8430DC31 0xFCA3 +0x8430DC32 0xFCA4 +0x8430DC33 0xFCA5 +0x8430DC34 0xFCA6 +0x8430DC35 0xFCA7 +0x8430DC36 0xFCA8 +0x8430DC37 0xFCA9 +0x8430DC38 0xFCAA +0x8430DC39 0xFCAB +0x8430DD30 0xFCAC +0x8430DD31 0xFCAD +0x8430DD32 0xFCAE +0x8430DD33 0xFCAF +0x8430DD34 0xFCB0 +0x8430DD35 0xFCB1 +0x8430DD36 0xFCB2 +0x8430DD37 0xFCB3 +0x8430DD38 0xFCB4 +0x8430DD39 0xFCB5 +0x8430DE30 0xFCB6 +0x8430DE31 0xFCB7 +0x8430DE32 0xFCB8 +0x8430DE33 0xFCB9 +0x8430DE34 0xFCBA +0x8430DE35 0xFCBB +0x8430DE36 0xFCBC +0x8430DE37 0xFCBD +0x8430DE38 0xFCBE +0x8430DE39 0xFCBF +0x8430DF30 0xFCC0 +0x8430DF31 0xFCC1 +0x8430DF32 0xFCC2 +0x8430DF33 0xFCC3 +0x8430DF34 0xFCC4 +0x8430DF35 0xFCC5 +0x8430DF36 0xFCC6 +0x8430DF37 0xFCC7 +0x8430DF38 0xFCC8 +0x8430DF39 0xFCC9 +0x8430E030 0xFCCA +0x8430E031 0xFCCB +0x8430E032 0xFCCC +0x8430E033 0xFCCD +0x8430E034 0xFCCE +0x8430E035 0xFCCF +0x8430E036 0xFCD0 +0x8430E037 0xFCD1 +0x8430E038 0xFCD2 +0x8430E039 0xFCD3 +0x8430E130 0xFCD4 +0x8430E131 0xFCD5 +0x8430E132 0xFCD6 +0x8430E133 0xFCD7 +0x8430E134 0xFCD8 +0x8430E135 0xFCD9 +0x8430E136 0xFCDA +0x8430E137 0xFCDB +0x8430E138 0xFCDC +0x8430E139 0xFCDD +0x8430E230 0xFCDE +0x8430E231 0xFCDF +0x8430E232 0xFCE0 +0x8430E233 0xFCE1 +0x8430E234 0xFCE2 +0x8430E235 0xFCE3 +0x8430E236 0xFCE4 +0x8430E237 0xFCE5 +0x8430E238 0xFCE6 +0x8430E239 0xFCE7 +0x8430E330 0xFCE8 +0x8430E331 0xFCE9 +0x8430E332 0xFCEA +0x8430E333 0xFCEB +0x8430E334 0xFCEC +0x8430E335 0xFCED +0x8430E336 0xFCEE +0x8430E337 0xFCEF +0x8430E338 0xFCF0 +0x8430E339 0xFCF1 +0x8430E430 0xFCF2 +0x8430E431 0xFCF3 +0x8430E432 0xFCF4 +0x8430E433 0xFCF5 +0x8430E434 0xFCF6 +0x8430E435 0xFCF7 +0x8430E436 0xFCF8 +0x8430E437 0xFCF9 +0x8430E438 0xFCFA +0x8430E439 0xFCFB +0x8430E530 0xFCFC +0x8430E531 0xFCFD +0x8430E532 0xFCFE +0x8430E533 0xFCFF +0x8430E534 0xFD00 +0x8430E535 0xFD01 +0x8430E536 0xFD02 +0x8430E537 0xFD03 +0x8430E538 0xFD04 +0x8430E539 0xFD05 +0x8430E630 0xFD06 +0x8430E631 0xFD07 +0x8430E632 0xFD08 +0x8430E633 0xFD09 +0x8430E634 0xFD0A +0x8430E635 0xFD0B +0x8430E636 0xFD0C +0x8430E637 0xFD0D +0x8430E638 0xFD0E +0x8430E639 0xFD0F +0x8430E730 0xFD10 +0x8430E731 0xFD11 +0x8430E732 0xFD12 +0x8430E733 0xFD13 +0x8430E734 0xFD14 +0x8430E735 0xFD15 +0x8430E736 0xFD16 +0x8430E737 0xFD17 +0x8430E738 0xFD18 +0x8430E739 0xFD19 +0x8430E830 0xFD1A +0x8430E831 0xFD1B +0x8430E832 0xFD1C +0x8430E833 0xFD1D +0x8430E834 0xFD1E +0x8430E835 0xFD1F +0x8430E836 0xFD20 +0x8430E837 0xFD21 +0x8430E838 0xFD22 +0x8430E839 0xFD23 +0x8430E930 0xFD24 +0x8430E931 0xFD25 +0x8430E932 0xFD26 +0x8430E933 0xFD27 +0x8430E934 0xFD28 +0x8430E935 0xFD29 +0x8430E936 0xFD2A +0x8430E937 0xFD2B +0x8430E938 0xFD2C +0x8430E939 0xFD2D +0x8430EA30 0xFD2E +0x8430EA31 0xFD2F +0x8430EA32 0xFD30 +0x8430EA33 0xFD31 +0x8430EA34 0xFD32 +0x8430EA35 0xFD33 +0x8430EA36 0xFD34 +0x8430EA37 0xFD35 +0x8430EA38 0xFD36 +0x8430EA39 0xFD37 +0x8430EB30 0xFD38 +0x8430EB31 0xFD39 +0x8430EB32 0xFD3A +0x8430EB33 0xFD3B +0x8430EB34 0xFD3C +0x8430EB35 0xFD3D +0x8430EB36 0xFD3E +0x8430EB37 0xFD3F +0x8430EB38 0xFD40 +0x8430EB39 0xFD41 +0x8430EC30 0xFD42 +0x8430EC31 0xFD43 +0x8430EC32 0xFD44 +0x8430EC33 0xFD45 +0x8430EC34 0xFD46 +0x8430EC35 0xFD47 +0x8430EC36 0xFD48 +0x8430EC37 0xFD49 +0x8430EC38 0xFD4A +0x8430EC39 0xFD4B +0x8430ED30 0xFD4C +0x8430ED31 0xFD4D +0x8430ED32 0xFD4E +0x8430ED33 0xFD4F +0x8430ED34 0xFD50 +0x8430ED35 0xFD51 +0x8430ED36 0xFD52 +0x8430ED37 0xFD53 +0x8430ED38 0xFD54 +0x8430ED39 0xFD55 +0x8430EE30 0xFD56 +0x8430EE31 0xFD57 +0x8430EE32 0xFD58 +0x8430EE33 0xFD59 +0x8430EE34 0xFD5A +0x8430EE35 0xFD5B +0x8430EE36 0xFD5C +0x8430EE37 0xFD5D +0x8430EE38 0xFD5E +0x8430EE39 0xFD5F +0x8430EF30 0xFD60 +0x8430EF31 0xFD61 +0x8430EF32 0xFD62 +0x8430EF33 0xFD63 +0x8430EF34 0xFD64 +0x8430EF35 0xFD65 +0x8430EF36 0xFD66 +0x8430EF37 0xFD67 +0x8430EF38 0xFD68 +0x8430EF39 0xFD69 +0x8430F030 0xFD6A +0x8430F031 0xFD6B +0x8430F032 0xFD6C +0x8430F033 0xFD6D +0x8430F034 0xFD6E +0x8430F035 0xFD6F +0x8430F036 0xFD70 +0x8430F037 0xFD71 +0x8430F038 0xFD72 +0x8430F039 0xFD73 +0x8430F130 0xFD74 +0x8430F131 0xFD75 +0x8430F132 0xFD76 +0x8430F133 0xFD77 +0x8430F134 0xFD78 +0x8430F135 0xFD79 +0x8430F136 0xFD7A +0x8430F137 0xFD7B +0x8430F138 0xFD7C +0x8430F139 0xFD7D +0x8430F230 0xFD7E +0x8430F231 0xFD7F +0x8430F232 0xFD80 +0x8430F233 0xFD81 +0x8430F234 0xFD82 +0x8430F235 0xFD83 +0x8430F236 0xFD84 +0x8430F237 0xFD85 +0x8430F238 0xFD86 +0x8430F239 0xFD87 +0x8430F330 0xFD88 +0x8430F331 0xFD89 +0x8430F332 0xFD8A +0x8430F333 0xFD8B +0x8430F334 0xFD8C +0x8430F335 0xFD8D +0x8430F336 0xFD8E +0x8430F337 0xFD8F +0x8430F338 0xFD90 +0x8430F339 0xFD91 +0x8430F430 0xFD92 +0x8430F431 0xFD93 +0x8430F432 0xFD94 +0x8430F433 0xFD95 +0x8430F434 0xFD96 +0x8430F435 0xFD97 +0x8430F436 0xFD98 +0x8430F437 0xFD99 +0x8430F438 0xFD9A +0x8430F439 0xFD9B +0x8430F530 0xFD9C +0x8430F531 0xFD9D +0x8430F532 0xFD9E +0x8430F533 0xFD9F +0x8430F534 0xFDA0 +0x8430F535 0xFDA1 +0x8430F536 0xFDA2 +0x8430F537 0xFDA3 +0x8430F538 0xFDA4 +0x8430F539 0xFDA5 +0x8430F630 0xFDA6 +0x8430F631 0xFDA7 +0x8430F632 0xFDA8 +0x8430F633 0xFDA9 +0x8430F634 0xFDAA +0x8430F635 0xFDAB +0x8430F636 0xFDAC +0x8430F637 0xFDAD +0x8430F638 0xFDAE +0x8430F639 0xFDAF +0x8430F730 0xFDB0 +0x8430F731 0xFDB1 +0x8430F732 0xFDB2 +0x8430F733 0xFDB3 +0x8430F734 0xFDB4 +0x8430F735 0xFDB5 +0x8430F736 0xFDB6 +0x8430F737 0xFDB7 +0x8430F738 0xFDB8 +0x8430F739 0xFDB9 +0x8430F830 0xFDBA +0x8430F831 0xFDBB +0x8430F832 0xFDBC +0x8430F833 0xFDBD +0x8430F834 0xFDBE +0x8430F835 0xFDBF +0x8430F836 0xFDC0 +0x8430F837 0xFDC1 +0x8430F838 0xFDC2 +0x8430F839 0xFDC3 +0x8430F930 0xFDC4 +0x8430F931 0xFDC5 +0x8430F932 0xFDC6 +0x8430F933 0xFDC7 +0x8430F934 0xFDC8 +0x8430F935 0xFDC9 +0x8430F936 0xFDCA +0x8430F937 0xFDCB +0x8430F938 0xFDCC +0x8430F939 0xFDCD +0x8430FA30 0xFDCE +0x8430FA31 0xFDCF +0x8430FA32 0xFDD0 +0x8430FA33 0xFDD1 +0x8430FA34 0xFDD2 +0x8430FA35 0xFDD3 +0x8430FA36 0xFDD4 +0x8430FA37 0xFDD5 +0x8430FA38 0xFDD6 +0x8430FA39 0xFDD7 +0x8430FB30 0xFDD8 +0x8430FB31 0xFDD9 +0x8430FB32 0xFDDA +0x8430FB33 0xFDDB +0x8430FB34 0xFDDC +0x8430FB35 0xFDDD +0x8430FB36 0xFDDE +0x8430FB37 0xFDDF +0x8430FB38 0xFDE0 +0x8430FB39 0xFDE1 +0x8430FC30 0xFDE2 +0x8430FC31 0xFDE3 +0x8430FC32 0xFDE4 +0x8430FC33 0xFDE5 +0x8430FC34 0xFDE6 +0x8430FC35 0xFDE7 +0x8430FC36 0xFDE8 +0x8430FC37 0xFDE9 +0x8430FC38 0xFDEA +0x8430FC39 0xFDEB +0x8430FD30 0xFDEC +0x8430FD31 0xFDED +0x8430FD32 0xFDEE +0x8430FD33 0xFDEF +0x8430FD34 0xFDF0 +0x8430FD35 0xFDF1 +0x8430FD36 0xFDF2 +0x8430FD37 0xFDF3 +0x8430FD38 0xFDF4 +0x8430FD39 0xFDF5 +0x8430FE30 0xFDF6 +0x8430FE31 0xFDF7 +0x8430FE32 0xFDF8 +0x8430FE33 0xFDF9 +0x8430FE34 0xFDFA +0x8430FE35 0xFDFB +0x8430FE36 0xFDFC +0x8430FE37 0xFDFD +0x8430FE38 0xFDFE +0x8430FE39 0xFDFF +0x84318130 0xFE00 +0x84318131 0xFE01 +0x84318132 0xFE02 +0x84318133 0xFE03 +0x84318134 0xFE04 +0x84318135 0xFE05 +0x84318136 0xFE06 +0x84318137 0xFE07 +0x84318138 0xFE08 +0x84318139 0xFE09 +0x84318230 0xFE0A +0x84318231 0xFE0B +0x84318232 0xFE0C +0x84318233 0xFE0D +0x84318234 0xFE0E +0x84318235 0xFE0F +0x84318236 0xFE10 +0x84318237 0xFE11 +0x84318238 0xFE12 +0x84318239 0xFE13 +0x84318330 0xFE14 +0x84318331 0xFE15 +0x84318332 0xFE16 +0x84318333 0xFE17 +0x84318334 0xFE18 +0x84318335 0xFE19 +0x84318336 0xFE1A +0x84318337 0xFE1B +0x84318338 0xFE1C +0x84318339 0xFE1D +0x84318430 0xFE1E +0x84318431 0xFE1F +0x84318432 0xFE20 +0x84318433 0xFE21 +0x84318434 0xFE22 +0x84318435 0xFE23 +0x84318436 0xFE24 +0x84318437 0xFE25 +0x84318438 0xFE26 +0x84318439 0xFE27 +0x84318530 0xFE28 +0x84318531 0xFE29 +0x84318532 0xFE2A +0x84318533 0xFE2B +0x84318534 0xFE2C +0x84318535 0xFE2D +0x84318536 0xFE2E +0x84318537 0xFE2F +0x84318538 0xFE32 +0x84318539 0xFE45 +0x84318630 0xFE46 +0x84318631 0xFE47 +0x84318632 0xFE48 +0x84318633 0xFE53 +0x84318634 0xFE58 +0x84318635 0xFE67 +0x84318636 0xFE6C +0x84318637 0xFE6D +0x84318638 0xFE6E +0x84318639 0xFE6F +0x84318730 0xFE70 +0x84318731 0xFE71 +0x84318732 0xFE72 +0x84318733 0xFE73 +0x84318734 0xFE74 +0x84318735 0xFE75 +0x84318736 0xFE76 +0x84318737 0xFE77 +0x84318738 0xFE78 +0x84318739 0xFE79 +0x84318830 0xFE7A +0x84318831 0xFE7B +0x84318832 0xFE7C +0x84318833 0xFE7D +0x84318834 0xFE7E +0x84318835 0xFE7F +0x84318836 0xFE80 +0x84318837 0xFE81 +0x84318838 0xFE82 +0x84318839 0xFE83 +0x84318930 0xFE84 +0x84318931 0xFE85 +0x84318932 0xFE86 +0x84318933 0xFE87 +0x84318934 0xFE88 +0x84318935 0xFE89 +0x84318936 0xFE8A +0x84318937 0xFE8B +0x84318938 0xFE8C +0x84318939 0xFE8D +0x84318A30 0xFE8E +0x84318A31 0xFE8F +0x84318A32 0xFE90 +0x84318A33 0xFE91 +0x84318A34 0xFE92 +0x84318A35 0xFE93 +0x84318A36 0xFE94 +0x84318A37 0xFE95 +0x84318A38 0xFE96 +0x84318A39 0xFE97 +0x84318B30 0xFE98 +0x84318B31 0xFE99 +0x84318B32 0xFE9A +0x84318B33 0xFE9B +0x84318B34 0xFE9C +0x84318B35 0xFE9D +0x84318B36 0xFE9E +0x84318B37 0xFE9F +0x84318B38 0xFEA0 +0x84318B39 0xFEA1 +0x84318C30 0xFEA2 +0x84318C31 0xFEA3 +0x84318C32 0xFEA4 +0x84318C33 0xFEA5 +0x84318C34 0xFEA6 +0x84318C35 0xFEA7 +0x84318C36 0xFEA8 +0x84318C37 0xFEA9 +0x84318C38 0xFEAA +0x84318C39 0xFEAB +0x84318D30 0xFEAC +0x84318D31 0xFEAD +0x84318D32 0xFEAE +0x84318D33 0xFEAF +0x84318D34 0xFEB0 +0x84318D35 0xFEB1 +0x84318D36 0xFEB2 +0x84318D37 0xFEB3 +0x84318D38 0xFEB4 +0x84318D39 0xFEB5 +0x84318E30 0xFEB6 +0x84318E31 0xFEB7 +0x84318E32 0xFEB8 +0x84318E33 0xFEB9 +0x84318E34 0xFEBA +0x84318E35 0xFEBB +0x84318E36 0xFEBC +0x84318E37 0xFEBD +0x84318E38 0xFEBE +0x84318E39 0xFEBF +0x84318F30 0xFEC0 +0x84318F31 0xFEC1 +0x84318F32 0xFEC2 +0x84318F33 0xFEC3 +0x84318F34 0xFEC4 +0x84318F35 0xFEC5 +0x84318F36 0xFEC6 +0x84318F37 0xFEC7 +0x84318F38 0xFEC8 +0x84318F39 0xFEC9 +0x84319030 0xFECA +0x84319031 0xFECB +0x84319032 0xFECC +0x84319033 0xFECD +0x84319034 0xFECE +0x84319035 0xFECF +0x84319036 0xFED0 +0x84319037 0xFED1 +0x84319038 0xFED2 +0x84319039 0xFED3 +0x84319130 0xFED4 +0x84319131 0xFED5 +0x84319132 0xFED6 +0x84319133 0xFED7 +0x84319134 0xFED8 +0x84319135 0xFED9 +0x84319136 0xFEDA +0x84319137 0xFEDB +0x84319138 0xFEDC +0x84319139 0xFEDD +0x84319230 0xFEDE +0x84319231 0xFEDF +0x84319232 0xFEE0 +0x84319233 0xFEE1 +0x84319234 0xFEE2 +0x84319235 0xFEE3 +0x84319236 0xFEE4 +0x84319237 0xFEE5 +0x84319238 0xFEE6 +0x84319239 0xFEE7 +0x84319330 0xFEE8 +0x84319331 0xFEE9 +0x84319332 0xFEEA +0x84319333 0xFEEB +0x84319334 0xFEEC +0x84319335 0xFEED +0x84319336 0xFEEE +0x84319337 0xFEEF +0x84319338 0xFEF0 +0x84319339 0xFEF1 +0x84319430 0xFEF2 +0x84319431 0xFEF3 +0x84319432 0xFEF4 +0x84319433 0xFEF5 +0x84319434 0xFEF6 +0x84319435 0xFEF7 +0x84319436 0xFEF8 +0x84319437 0xFEF9 +0x84319438 0xFEFA +0x84319439 0xFEFB +0x84319530 0xFEFC +0x84319531 0xFEFD +0x84319532 0xFEFE +0x84319533 0xFEFF +0x84319534 0xFF00 +0x84319535 0xFF5F +0x84319536 0xFF60 +0x84319537 0xFF61 +0x84319538 0xFF62 +0x84319539 0xFF63 +0x84319630 0xFF64 +0x84319631 0xFF65 +0x84319632 0xFF66 +0x84319633 0xFF67 +0x84319634 0xFF68 +0x84319635 0xFF69 +0x84319636 0xFF6A +0x84319637 0xFF6B +0x84319638 0xFF6C +0x84319639 0xFF6D +0x84319730 0xFF6E +0x84319731 0xFF6F +0x84319732 0xFF70 +0x84319733 0xFF71 +0x84319734 0xFF72 +0x84319735 0xFF73 +0x84319736 0xFF74 +0x84319737 0xFF75 +0x84319738 0xFF76 +0x84319739 0xFF77 +0x84319830 0xFF78 +0x84319831 0xFF79 +0x84319832 0xFF7A +0x84319833 0xFF7B +0x84319834 0xFF7C +0x84319835 0xFF7D +0x84319836 0xFF7E +0x84319837 0xFF7F +0x84319838 0xFF80 +0x84319839 0xFF81 +0x84319930 0xFF82 +0x84319931 0xFF83 +0x84319932 0xFF84 +0x84319933 0xFF85 +0x84319934 0xFF86 +0x84319935 0xFF87 +0x84319936 0xFF88 +0x84319937 0xFF89 +0x84319938 0xFF8A +0x84319939 0xFF8B +0x84319A30 0xFF8C +0x84319A31 0xFF8D +0x84319A32 0xFF8E +0x84319A33 0xFF8F +0x84319A34 0xFF90 +0x84319A35 0xFF91 +0x84319A36 0xFF92 +0x84319A37 0xFF93 +0x84319A38 0xFF94 +0x84319A39 0xFF95 +0x84319B30 0xFF96 +0x84319B31 0xFF97 +0x84319B32 0xFF98 +0x84319B33 0xFF99 +0x84319B34 0xFF9A +0x84319B35 0xFF9B +0x84319B36 0xFF9C +0x84319B37 0xFF9D +0x84319B38 0xFF9E +0x84319B39 0xFF9F +0x84319C30 0xFFA0 +0x84319C31 0xFFA1 +0x84319C32 0xFFA2 +0x84319C33 0xFFA3 +0x84319C34 0xFFA4 +0x84319C35 0xFFA5 +0x84319C36 0xFFA6 +0x84319C37 0xFFA7 +0x84319C38 0xFFA8 +0x84319C39 0xFFA9 +0x84319D30 0xFFAA +0x84319D31 0xFFAB +0x84319D32 0xFFAC +0x84319D33 0xFFAD +0x84319D34 0xFFAE +0x84319D35 0xFFAF +0x84319D36 0xFFB0 +0x84319D37 0xFFB1 +0x84319D38 0xFFB2 +0x84319D39 0xFFB3 +0x84319E30 0xFFB4 +0x84319E31 0xFFB5 +0x84319E32 0xFFB6 +0x84319E33 0xFFB7 +0x84319E34 0xFFB8 +0x84319E35 0xFFB9 +0x84319E36 0xFFBA +0x84319E37 0xFFBB +0x84319E38 0xFFBC +0x84319E39 0xFFBD +0x84319F30 0xFFBE +0x84319F31 0xFFBF +0x84319F32 0xFFC0 +0x84319F33 0xFFC1 +0x84319F34 0xFFC2 +0x84319F35 0xFFC3 +0x84319F36 0xFFC4 +0x84319F37 0xFFC5 +0x84319F38 0xFFC6 +0x84319F39 0xFFC7 +0x8431A030 0xFFC8 +0x8431A031 0xFFC9 +0x8431A032 0xFFCA +0x8431A033 0xFFCB +0x8431A034 0xFFCC +0x8431A035 0xFFCD +0x8431A036 0xFFCE +0x8431A037 0xFFCF +0x8431A038 0xFFD0 +0x8431A039 0xFFD1 +0x8431A130 0xFFD2 +0x8431A131 0xFFD3 +0x8431A132 0xFFD4 +0x8431A133 0xFFD5 +0x8431A134 0xFFD6 +0x8431A135 0xFFD7 +0x8431A136 0xFFD8 +0x8431A137 0xFFD9 +0x8431A138 0xFFDA +0x8431A139 0xFFDB +0x8431A230 0xFFDC +0x8431A231 0xFFDD +0x8431A232 0xFFDE +0x8431A233 0xFFDF +0x8431A234 0xFFE6 +0x8431A235 0xFFE7 +0x8431A236 0xFFE8 +0x8431A237 0xFFE9 +0x8431A238 0xFFEA +0x8431A239 0xFFEB +0x8431A330 0xFFEC +0x8431A331 0xFFED +0x8431A332 0xFFEE +0x8431A333 0xFFEF +0x8431A334 0xFFF0 +0x8431A335 0xFFF1 +0x8431A336 0xFFF2 +0x8431A337 0xFFF3 +0x8431A338 0xFFF4 +0x8431A339 0xFFF5 +0x8431A430 0xFFF6 +0x8431A431 0xFFF7 +0x8431A432 0xFFF8 +0x8431A433 0xFFF9 +0x8431A434 0xFFFA +0x8431A435 0xFFFB +0x8431A436 0xFFFC +0x8431A437 0xFFFD +0x8431A438 0xFFFE +0x8431A439 0xFFFF +0x8440 0x51D8 +0x8441 0x51D9 +0x8442 0x51DA +0x8443 0x51DC +0x8444 0x51DE +0x8445 0x51DF +0x8446 0x51E2 +0x8447 0x51E3 +0x8448 0x51E5 +0x8449 0x51E6 +0x844A 0x51E7 +0x844B 0x51E8 +0x844C 0x51E9 +0x844D 0x51EA +0x844E 0x51EC +0x844F 0x51EE +0x8450 0x51F1 +0x8451 0x51F2 +0x8452 0x51F4 +0x8453 0x51F7 +0x8454 0x51FE +0x8455 0x5204 +0x8456 0x5205 +0x8457 0x5209 +0x8458 0x520B +0x8459 0x520C +0x845A 0x520F +0x845B 0x5210 +0x845C 0x5213 +0x845D 0x5214 +0x845E 0x5215 +0x845F 0x521C +0x8460 0x521E +0x8461 0x521F +0x8462 0x5221 +0x8463 0x5222 +0x8464 0x5223 +0x8465 0x5225 +0x8466 0x5226 +0x8467 0x5227 +0x8468 0x522A +0x8469 0x522C +0x846A 0x522F +0x846B 0x5231 +0x846C 0x5232 +0x846D 0x5234 +0x846E 0x5235 +0x846F 0x523C +0x8470 0x523E +0x8471 0x5244 +0x8472 0x5245 +0x8473 0x5246 +0x8474 0x5247 +0x8475 0x5248 +0x8476 0x5249 +0x8477 0x524B +0x8478 0x524E +0x8479 0x524F +0x847A 0x5252 +0x847B 0x5253 +0x847C 0x5255 +0x847D 0x5257 +0x847E 0x5258 +0x8480 0x5259 +0x8481 0x525A +0x8482 0x525B +0x8483 0x525D +0x8484 0x525F +0x8485 0x5260 +0x8486 0x5262 +0x8487 0x5263 +0x8488 0x5264 +0x8489 0x5266 +0x848A 0x5268 +0x848B 0x526B +0x848C 0x526C +0x848D 0x526D +0x848E 0x526E +0x848F 0x5270 +0x8490 0x5271 +0x8491 0x5273 +0x8492 0x5274 +0x8493 0x5275 +0x8494 0x5276 +0x8495 0x5277 +0x8496 0x5278 +0x8497 0x5279 +0x8498 0x527A +0x8499 0x527B +0x849A 0x527C +0x849B 0x527E +0x849C 0x5280 +0x849D 0x5283 +0x849E 0x5284 +0x849F 0x5285 +0x84A0 0x5286 +0x84A1 0x5287 +0x84A2 0x5289 +0x84A3 0x528A +0x84A4 0x528B +0x84A5 0x528C +0x84A6 0x528D +0x84A7 0x528E +0x84A8 0x528F +0x84A9 0x5291 +0x84AA 0x5292 +0x84AB 0x5294 +0x84AC 0x5295 +0x84AD 0x5296 +0x84AE 0x5297 +0x84AF 0x5298 +0x84B0 0x5299 +0x84B1 0x529A +0x84B2 0x529C +0x84B3 0x52A4 +0x84B4 0x52A5 +0x84B5 0x52A6 +0x84B6 0x52A7 +0x84B7 0x52AE +0x84B8 0x52AF +0x84B9 0x52B0 +0x84BA 0x52B4 +0x84BB 0x52B5 +0x84BC 0x52B6 +0x84BD 0x52B7 +0x84BE 0x52B8 +0x84BF 0x52B9 +0x84C0 0x52BA +0x84C1 0x52BB +0x84C2 0x52BC +0x84C3 0x52BD +0x84C4 0x52C0 +0x84C5 0x52C1 +0x84C6 0x52C2 +0x84C7 0x52C4 +0x84C8 0x52C5 +0x84C9 0x52C6 +0x84CA 0x52C8 +0x84CB 0x52CA +0x84CC 0x52CC +0x84CD 0x52CD +0x84CE 0x52CE +0x84CF 0x52CF +0x84D0 0x52D1 +0x84D1 0x52D3 +0x84D2 0x52D4 +0x84D3 0x52D5 +0x84D4 0x52D7 +0x84D5 0x52D9 +0x84D6 0x52DA +0x84D7 0x52DB +0x84D8 0x52DC +0x84D9 0x52DD +0x84DA 0x52DE +0x84DB 0x52E0 +0x84DC 0x52E1 +0x84DD 0x52E2 +0x84DE 0x52E3 +0x84DF 0x52E5 +0x84E0 0x52E6 +0x84E1 0x52E7 +0x84E2 0x52E8 +0x84E3 0x52E9 +0x84E4 0x52EA +0x84E5 0x52EB +0x84E6 0x52EC +0x84E7 0x52ED +0x84E8 0x52EE +0x84E9 0x52EF +0x84EA 0x52F1 +0x84EB 0x52F2 +0x84EC 0x52F3 +0x84ED 0x52F4 +0x84EE 0x52F5 +0x84EF 0x52F6 +0x84F0 0x52F7 +0x84F1 0x52F8 +0x84F2 0x52FB +0x84F3 0x52FC +0x84F4 0x52FD +0x84F5 0x5301 +0x84F6 0x5302 +0x84F7 0x5303 +0x84F8 0x5304 +0x84F9 0x5307 +0x84FA 0x5309 +0x84FB 0x530A +0x84FC 0x530B +0x84FD 0x530C +0x84FE 0x530E +0x8540 0x5311 +0x8541 0x5312 +0x8542 0x5313 +0x8543 0x5314 +0x8544 0x5318 +0x8545 0x531B +0x8546 0x531C +0x8547 0x531E +0x8548 0x531F +0x8549 0x5322 +0x854A 0x5324 +0x854B 0x5325 +0x854C 0x5327 +0x854D 0x5328 +0x854E 0x5329 +0x854F 0x532B +0x8550 0x532C +0x8551 0x532D +0x8552 0x532F +0x8553 0x5330 +0x8554 0x5331 +0x8555 0x5332 +0x8556 0x5333 +0x8557 0x5334 +0x8558 0x5335 +0x8559 0x5336 +0x855A 0x5337 +0x855B 0x5338 +0x855C 0x533C +0x855D 0x533D +0x855E 0x5340 +0x855F 0x5342 +0x8560 0x5344 +0x8561 0x5346 +0x8562 0x534B +0x8563 0x534C +0x8564 0x534D +0x8565 0x5350 +0x8566 0x5354 +0x8567 0x5358 +0x8568 0x5359 +0x8569 0x535B +0x856A 0x535D +0x856B 0x5365 +0x856C 0x5368 +0x856D 0x536A +0x856E 0x536C +0x856F 0x536D +0x8570 0x5372 +0x8571 0x5376 +0x8572 0x5379 +0x8573 0x537B +0x8574 0x537C +0x8575 0x537D +0x8576 0x537E +0x8577 0x5380 +0x8578 0x5381 +0x8579 0x5383 +0x857A 0x5387 +0x857B 0x5388 +0x857C 0x538A +0x857D 0x538E +0x857E 0x538F +0x8580 0x5390 +0x8581 0x5391 +0x8582 0x5392 +0x8583 0x5393 +0x8584 0x5394 +0x8585 0x5396 +0x8586 0x5397 +0x8587 0x5399 +0x8588 0x539B +0x8589 0x539C +0x858A 0x539E +0x858B 0x53A0 +0x858C 0x53A1 +0x858D 0x53A4 +0x858E 0x53A7 +0x858F 0x53AA +0x8590 0x53AB +0x8591 0x53AC +0x8592 0x53AD +0x8593 0x53AF +0x8594 0x53B0 +0x8595 0x53B1 +0x8596 0x53B2 +0x8597 0x53B3 +0x8598 0x53B4 +0x8599 0x53B5 +0x859A 0x53B7 +0x859B 0x53B8 +0x859C 0x53B9 +0x859D 0x53BA +0x859E 0x53BC +0x859F 0x53BD +0x85A0 0x53BE +0x85A1 0x53C0 +0x85A2 0x53C3 +0x85A3 0x53C4 +0x85A4 0x53C5 +0x85A5 0x53C6 +0x85A6 0x53C7 +0x85A7 0x53CE +0x85A8 0x53CF +0x85A9 0x53D0 +0x85AA 0x53D2 +0x85AB 0x53D3 +0x85AC 0x53D5 +0x85AD 0x53DA +0x85AE 0x53DC +0x85AF 0x53DD +0x85B0 0x53DE +0x85B1 0x53E1 +0x85B2 0x53E2 +0x85B3 0x53E7 +0x85B4 0x53F4 +0x85B5 0x53FA +0x85B6 0x53FE +0x85B7 0x53FF +0x85B8 0x5400 +0x85B9 0x5402 +0x85BA 0x5405 +0x85BB 0x5407 +0x85BC 0x540B +0x85BD 0x5414 +0x85BE 0x5418 +0x85BF 0x5419 +0x85C0 0x541A +0x85C1 0x541C +0x85C2 0x5422 +0x85C3 0x5424 +0x85C4 0x5425 +0x85C5 0x542A +0x85C6 0x5430 +0x85C7 0x5433 +0x85C8 0x5436 +0x85C9 0x5437 +0x85CA 0x543A +0x85CB 0x543D +0x85CC 0x543F +0x85CD 0x5441 +0x85CE 0x5442 +0x85CF 0x5444 +0x85D0 0x5445 +0x85D1 0x5447 +0x85D2 0x5449 +0x85D3 0x544C +0x85D4 0x544D +0x85D5 0x544E +0x85D6 0x544F +0x85D7 0x5451 +0x85D8 0x545A +0x85D9 0x545D +0x85DA 0x545E +0x85DB 0x545F +0x85DC 0x5460 +0x85DD 0x5461 +0x85DE 0x5463 +0x85DF 0x5465 +0x85E0 0x5467 +0x85E1 0x5469 +0x85E2 0x546A +0x85E3 0x546B +0x85E4 0x546C +0x85E5 0x546D +0x85E6 0x546E +0x85E7 0x546F +0x85E8 0x5470 +0x85E9 0x5474 +0x85EA 0x5479 +0x85EB 0x547A +0x85EC 0x547E +0x85ED 0x547F +0x85EE 0x5481 +0x85EF 0x5483 +0x85F0 0x5485 +0x85F1 0x5487 +0x85F2 0x5488 +0x85F3 0x5489 +0x85F4 0x548A +0x85F5 0x548D +0x85F6 0x5491 +0x85F7 0x5493 +0x85F8 0x5497 +0x85F9 0x5498 +0x85FA 0x549C +0x85FB 0x549E +0x85FC 0x549F +0x85FD 0x54A0 +0x85FE 0x54A1 +0x8640 0x54A2 +0x8641 0x54A5 +0x8642 0x54AE +0x8643 0x54B0 +0x8644 0x54B2 +0x8645 0x54B5 +0x8646 0x54B6 +0x8647 0x54B7 +0x8648 0x54B9 +0x8649 0x54BA +0x864A 0x54BC +0x864B 0x54BE +0x864C 0x54C3 +0x864D 0x54C5 +0x864E 0x54CA +0x864F 0x54CB +0x8650 0x54D6 +0x8651 0x54D8 +0x8652 0x54DB +0x8653 0x54E0 +0x8654 0x54E1 +0x8655 0x54E2 +0x8656 0x54E3 +0x8657 0x54E4 +0x8658 0x54EB +0x8659 0x54EC +0x865A 0x54EF +0x865B 0x54F0 +0x865C 0x54F1 +0x865D 0x54F4 +0x865E 0x54F5 +0x865F 0x54F6 +0x8660 0x54F7 +0x8661 0x54F8 +0x8662 0x54F9 +0x8663 0x54FB +0x8664 0x54FE +0x8665 0x5500 +0x8666 0x5502 +0x8667 0x5503 +0x8668 0x5504 +0x8669 0x5505 +0x866A 0x5508 +0x866B 0x550A +0x866C 0x550B +0x866D 0x550C +0x866E 0x550D +0x866F 0x550E +0x8670 0x5512 +0x8671 0x5513 +0x8672 0x5515 +0x8673 0x5516 +0x8674 0x5517 +0x8675 0x5518 +0x8676 0x5519 +0x8677 0x551A +0x8678 0x551C +0x8679 0x551D +0x867A 0x551E +0x867B 0x551F +0x867C 0x5521 +0x867D 0x5525 +0x867E 0x5526 +0x8680 0x5528 +0x8681 0x5529 +0x8682 0x552B +0x8683 0x552D +0x8684 0x5532 +0x8685 0x5534 +0x8686 0x5535 +0x8687 0x5536 +0x8688 0x5538 +0x8689 0x5539 +0x868A 0x553A +0x868B 0x553B +0x868C 0x553D +0x868D 0x5540 +0x868E 0x5542 +0x868F 0x5545 +0x8690 0x5547 +0x8691 0x5548 +0x8692 0x554B +0x8693 0x554C +0x8694 0x554D +0x8695 0x554E +0x8696 0x554F +0x8697 0x5551 +0x8698 0x5552 +0x8699 0x5553 +0x869A 0x5554 +0x869B 0x5557 +0x869C 0x5558 +0x869D 0x5559 +0x869E 0x555A +0x869F 0x555B +0x86A0 0x555D +0x86A1 0x555E +0x86A2 0x555F +0x86A3 0x5560 +0x86A4 0x5562 +0x86A5 0x5563 +0x86A6 0x5568 +0x86A7 0x5569 +0x86A8 0x556B +0x86A9 0x556F +0x86AA 0x5570 +0x86AB 0x5571 +0x86AC 0x5572 +0x86AD 0x5573 +0x86AE 0x5574 +0x86AF 0x5579 +0x86B0 0x557A +0x86B1 0x557D +0x86B2 0x557F +0x86B3 0x5585 +0x86B4 0x5586 +0x86B5 0x558C +0x86B6 0x558D +0x86B7 0x558E +0x86B8 0x5590 +0x86B9 0x5592 +0x86BA 0x5593 +0x86BB 0x5595 +0x86BC 0x5596 +0x86BD 0x5597 +0x86BE 0x559A +0x86BF 0x559B +0x86C0 0x559E +0x86C1 0x55A0 +0x86C2 0x55A1 +0x86C3 0x55A2 +0x86C4 0x55A3 +0x86C5 0x55A4 +0x86C6 0x55A5 +0x86C7 0x55A6 +0x86C8 0x55A8 +0x86C9 0x55A9 +0x86CA 0x55AA +0x86CB 0x55AB +0x86CC 0x55AC +0x86CD 0x55AD +0x86CE 0x55AE +0x86CF 0x55AF +0x86D0 0x55B0 +0x86D1 0x55B2 +0x86D2 0x55B4 +0x86D3 0x55B6 +0x86D4 0x55B8 +0x86D5 0x55BA +0x86D6 0x55BC +0x86D7 0x55BF +0x86D8 0x55C0 +0x86D9 0x55C1 +0x86DA 0x55C2 +0x86DB 0x55C3 +0x86DC 0x55C6 +0x86DD 0x55C7 +0x86DE 0x55C8 +0x86DF 0x55CA +0x86E0 0x55CB +0x86E1 0x55CE +0x86E2 0x55CF +0x86E3 0x55D0 +0x86E4 0x55D5 +0x86E5 0x55D7 +0x86E6 0x55D8 +0x86E7 0x55D9 +0x86E8 0x55DA +0x86E9 0x55DB +0x86EA 0x55DE +0x86EB 0x55E0 +0x86EC 0x55E2 +0x86ED 0x55E7 +0x86EE 0x55E9 +0x86EF 0x55ED +0x86F0 0x55EE +0x86F1 0x55F0 +0x86F2 0x55F1 +0x86F3 0x55F4 +0x86F4 0x55F6 +0x86F5 0x55F8 +0x86F6 0x55F9 +0x86F7 0x55FA +0x86F8 0x55FB +0x86F9 0x55FC +0x86FA 0x55FF +0x86FB 0x5602 +0x86FC 0x5603 +0x86FD 0x5604 +0x86FE 0x5605 +0x8740 0x5606 +0x8741 0x5607 +0x8742 0x560A +0x8743 0x560B +0x8744 0x560D +0x8745 0x5610 +0x8746 0x5611 +0x8747 0x5612 +0x8748 0x5613 +0x8749 0x5614 +0x874A 0x5615 +0x874B 0x5616 +0x874C 0x5617 +0x874D 0x5619 +0x874E 0x561A +0x874F 0x561C +0x8750 0x561D +0x8751 0x5620 +0x8752 0x5621 +0x8753 0x5622 +0x8754 0x5625 +0x8755 0x5626 +0x8756 0x5628 +0x8757 0x5629 +0x8758 0x562A +0x8759 0x562B +0x875A 0x562E +0x875B 0x562F +0x875C 0x5630 +0x875D 0x5633 +0x875E 0x5635 +0x875F 0x5637 +0x8760 0x5638 +0x8761 0x563A +0x8762 0x563C +0x8763 0x563D +0x8764 0x563E +0x8765 0x5640 +0x8766 0x5641 +0x8767 0x5642 +0x8768 0x5643 +0x8769 0x5644 +0x876A 0x5645 +0x876B 0x5646 +0x876C 0x5647 +0x876D 0x5648 +0x876E 0x5649 +0x876F 0x564A +0x8770 0x564B +0x8771 0x564F +0x8772 0x5650 +0x8773 0x5651 +0x8774 0x5652 +0x8775 0x5653 +0x8776 0x5655 +0x8777 0x5656 +0x8778 0x565A +0x8779 0x565B +0x877A 0x565D +0x877B 0x565E +0x877C 0x565F +0x877D 0x5660 +0x877E 0x5661 +0x8780 0x5663 +0x8781 0x5665 +0x8782 0x5666 +0x8783 0x5667 +0x8784 0x566D +0x8785 0x566E +0x8786 0x566F +0x8787 0x5670 +0x8788 0x5672 +0x8789 0x5673 +0x878A 0x5674 +0x878B 0x5675 +0x878C 0x5677 +0x878D 0x5678 +0x878E 0x5679 +0x878F 0x567A +0x8790 0x567D +0x8791 0x567E +0x8792 0x567F +0x8793 0x5680 +0x8794 0x5681 +0x8795 0x5682 +0x8796 0x5683 +0x8797 0x5684 +0x8798 0x5687 +0x8799 0x5688 +0x879A 0x5689 +0x879B 0x568A +0x879C 0x568B +0x879D 0x568C +0x879E 0x568D +0x879F 0x5690 +0x87A0 0x5691 +0x87A1 0x5692 +0x87A2 0x5694 +0x87A3 0x5695 +0x87A4 0x5696 +0x87A5 0x5697 +0x87A6 0x5698 +0x87A7 0x5699 +0x87A8 0x569A +0x87A9 0x569B +0x87AA 0x569C +0x87AB 0x569D +0x87AC 0x569E +0x87AD 0x569F +0x87AE 0x56A0 +0x87AF 0x56A1 +0x87B0 0x56A2 +0x87B1 0x56A4 +0x87B2 0x56A5 +0x87B3 0x56A6 +0x87B4 0x56A7 +0x87B5 0x56A8 +0x87B6 0x56A9 +0x87B7 0x56AA +0x87B8 0x56AB +0x87B9 0x56AC +0x87BA 0x56AD +0x87BB 0x56AE +0x87BC 0x56B0 +0x87BD 0x56B1 +0x87BE 0x56B2 +0x87BF 0x56B3 +0x87C0 0x56B4 +0x87C1 0x56B5 +0x87C2 0x56B6 +0x87C3 0x56B8 +0x87C4 0x56B9 +0x87C5 0x56BA +0x87C6 0x56BB +0x87C7 0x56BD +0x87C8 0x56BE +0x87C9 0x56BF +0x87CA 0x56C0 +0x87CB 0x56C1 +0x87CC 0x56C2 +0x87CD 0x56C3 +0x87CE 0x56C4 +0x87CF 0x56C5 +0x87D0 0x56C6 +0x87D1 0x56C7 +0x87D2 0x56C8 +0x87D3 0x56C9 +0x87D4 0x56CB +0x87D5 0x56CC +0x87D6 0x56CD +0x87D7 0x56CE +0x87D8 0x56CF +0x87D9 0x56D0 +0x87DA 0x56D1 +0x87DB 0x56D2 +0x87DC 0x56D3 +0x87DD 0x56D5 +0x87DE 0x56D6 +0x87DF 0x56D8 +0x87E0 0x56D9 +0x87E1 0x56DC +0x87E2 0x56E3 +0x87E3 0x56E5 +0x87E4 0x56E6 +0x87E5 0x56E7 +0x87E6 0x56E8 +0x87E7 0x56E9 +0x87E8 0x56EA +0x87E9 0x56EC +0x87EA 0x56EE +0x87EB 0x56EF +0x87EC 0x56F2 +0x87ED 0x56F3 +0x87EE 0x56F6 +0x87EF 0x56F7 +0x87F0 0x56F8 +0x87F1 0x56FB +0x87F2 0x56FC +0x87F3 0x5700 +0x87F4 0x5701 +0x87F5 0x5702 +0x87F6 0x5705 +0x87F7 0x5707 +0x87F8 0x570B +0x87F9 0x570C +0x87FA 0x570D +0x87FB 0x570E +0x87FC 0x570F +0x87FD 0x5710 +0x87FE 0x5711 +0x8840 0x5712 +0x8841 0x5713 +0x8842 0x5714 +0x8843 0x5715 +0x8844 0x5716 +0x8845 0x5717 +0x8846 0x5718 +0x8847 0x5719 +0x8848 0x571A +0x8849 0x571B +0x884A 0x571D +0x884B 0x571E +0x884C 0x5720 +0x884D 0x5721 +0x884E 0x5722 +0x884F 0x5724 +0x8850 0x5725 +0x8851 0x5726 +0x8852 0x5727 +0x8853 0x572B +0x8854 0x5731 +0x8855 0x5732 +0x8856 0x5734 +0x8857 0x5735 +0x8858 0x5736 +0x8859 0x5737 +0x885A 0x5738 +0x885B 0x573C +0x885C 0x573D +0x885D 0x573F +0x885E 0x5741 +0x885F 0x5743 +0x8860 0x5744 +0x8861 0x5745 +0x8862 0x5746 +0x8863 0x5748 +0x8864 0x5749 +0x8865 0x574B +0x8866 0x5752 +0x8867 0x5753 +0x8868 0x5754 +0x8869 0x5755 +0x886A 0x5756 +0x886B 0x5758 +0x886C 0x5759 +0x886D 0x5762 +0x886E 0x5763 +0x886F 0x5765 +0x8870 0x5767 +0x8871 0x576C +0x8872 0x576E +0x8873 0x5770 +0x8874 0x5771 +0x8875 0x5772 +0x8876 0x5774 +0x8877 0x5775 +0x8878 0x5778 +0x8879 0x5779 +0x887A 0x577A +0x887B 0x577D +0x887C 0x577E +0x887D 0x577F +0x887E 0x5780 +0x8880 0x5781 +0x8881 0x5787 +0x8882 0x5788 +0x8883 0x5789 +0x8884 0x578A +0x8885 0x578D +0x8886 0x578E +0x8887 0x578F +0x8888 0x5790 +0x8889 0x5791 +0x888A 0x5794 +0x888B 0x5795 +0x888C 0x5796 +0x888D 0x5797 +0x888E 0x5798 +0x888F 0x5799 +0x8890 0x579A +0x8891 0x579C +0x8892 0x579D +0x8893 0x579E +0x8894 0x579F +0x8895 0x57A5 +0x8896 0x57A8 +0x8897 0x57AA +0x8898 0x57AC +0x8899 0x57AF +0x889A 0x57B0 +0x889B 0x57B1 +0x889C 0x57B3 +0x889D 0x57B5 +0x889E 0x57B6 +0x889F 0x57B7 +0x88A0 0x57B9 +0x88A1 0x57BA +0x88A2 0x57BB +0x88A3 0x57BC +0x88A4 0x57BD +0x88A5 0x57BE +0x88A6 0x57BF +0x88A7 0x57C0 +0x88A8 0x57C1 +0x88A9 0x57C4 +0x88AA 0x57C5 +0x88AB 0x57C6 +0x88AC 0x57C7 +0x88AD 0x57C8 +0x88AE 0x57C9 +0x88AF 0x57CA +0x88B0 0x57CC +0x88B1 0x57CD +0x88B2 0x57D0 +0x88B3 0x57D1 +0x88B4 0x57D3 +0x88B5 0x57D6 +0x88B6 0x57D7 +0x88B7 0x57DB +0x88B8 0x57DC +0x88B9 0x57DE +0x88BA 0x57E1 +0x88BB 0x57E2 +0x88BC 0x57E3 +0x88BD 0x57E5 +0x88BE 0x57E6 +0x88BF 0x57E7 +0x88C0 0x57E8 +0x88C1 0x57E9 +0x88C2 0x57EA +0x88C3 0x57EB +0x88C4 0x57EC +0x88C5 0x57EE +0x88C6 0x57F0 +0x88C7 0x57F1 +0x88C8 0x57F2 +0x88C9 0x57F3 +0x88CA 0x57F5 +0x88CB 0x57F6 +0x88CC 0x57F7 +0x88CD 0x57FB +0x88CE 0x57FC +0x88CF 0x57FE +0x88D0 0x57FF +0x88D1 0x5801 +0x88D2 0x5803 +0x88D3 0x5804 +0x88D4 0x5805 +0x88D5 0x5808 +0x88D6 0x5809 +0x88D7 0x580A +0x88D8 0x580C +0x88D9 0x580E +0x88DA 0x580F +0x88DB 0x5810 +0x88DC 0x5812 +0x88DD 0x5813 +0x88DE 0x5814 +0x88DF 0x5816 +0x88E0 0x5817 +0x88E1 0x5818 +0x88E2 0x581A +0x88E3 0x581B +0x88E4 0x581C +0x88E5 0x581D +0x88E6 0x581F +0x88E7 0x5822 +0x88E8 0x5823 +0x88E9 0x5825 +0x88EA 0x5826 +0x88EB 0x5827 +0x88EC 0x5828 +0x88ED 0x5829 +0x88EE 0x582B +0x88EF 0x582C +0x88F0 0x582D +0x88F1 0x582E +0x88F2 0x582F +0x88F3 0x5831 +0x88F4 0x5832 +0x88F5 0x5833 +0x88F6 0x5834 +0x88F7 0x5836 +0x88F8 0x5837 +0x88F9 0x5838 +0x88FA 0x5839 +0x88FB 0x583A +0x88FC 0x583B +0x88FD 0x583C +0x88FE 0x583D +0x8940 0x583E +0x8941 0x583F +0x8942 0x5840 +0x8943 0x5841 +0x8944 0x5842 +0x8945 0x5843 +0x8946 0x5845 +0x8947 0x5846 +0x8948 0x5847 +0x8949 0x5848 +0x894A 0x5849 +0x894B 0x584A +0x894C 0x584B +0x894D 0x584E +0x894E 0x584F +0x894F 0x5850 +0x8950 0x5852 +0x8951 0x5853 +0x8952 0x5855 +0x8953 0x5856 +0x8954 0x5857 +0x8955 0x5859 +0x8956 0x585A +0x8957 0x585B +0x8958 0x585C +0x8959 0x585D +0x895A 0x585F +0x895B 0x5860 +0x895C 0x5861 +0x895D 0x5862 +0x895E 0x5863 +0x895F 0x5864 +0x8960 0x5866 +0x8961 0x5867 +0x8962 0x5868 +0x8963 0x5869 +0x8964 0x586A +0x8965 0x586D +0x8966 0x586E +0x8967 0x586F +0x8968 0x5870 +0x8969 0x5871 +0x896A 0x5872 +0x896B 0x5873 +0x896C 0x5874 +0x896D 0x5875 +0x896E 0x5876 +0x896F 0x5877 +0x8970 0x5878 +0x8971 0x5879 +0x8972 0x587A +0x8973 0x587B +0x8974 0x587C +0x8975 0x587D +0x8976 0x587F +0x8977 0x5882 +0x8978 0x5884 +0x8979 0x5886 +0x897A 0x5887 +0x897B 0x5888 +0x897C 0x588A +0x897D 0x588B +0x897E 0x588C +0x8980 0x588D +0x8981 0x588E +0x8982 0x588F +0x8983 0x5890 +0x8984 0x5891 +0x8985 0x5894 +0x8986 0x5895 +0x8987 0x5896 +0x8988 0x5897 +0x8989 0x5898 +0x898A 0x589B +0x898B 0x589C +0x898C 0x589D +0x898D 0x58A0 +0x898E 0x58A1 +0x898F 0x58A2 +0x8990 0x58A3 +0x8991 0x58A4 +0x8992 0x58A5 +0x8993 0x58A6 +0x8994 0x58A7 +0x8995 0x58AA +0x8996 0x58AB +0x8997 0x58AC +0x8998 0x58AD +0x8999 0x58AE +0x899A 0x58AF +0x899B 0x58B0 +0x899C 0x58B1 +0x899D 0x58B2 +0x899E 0x58B3 +0x899F 0x58B4 +0x89A0 0x58B5 +0x89A1 0x58B6 +0x89A2 0x58B7 +0x89A3 0x58B8 +0x89A4 0x58B9 +0x89A5 0x58BA +0x89A6 0x58BB +0x89A7 0x58BD +0x89A8 0x58BE +0x89A9 0x58BF +0x89AA 0x58C0 +0x89AB 0x58C2 +0x89AC 0x58C3 +0x89AD 0x58C4 +0x89AE 0x58C6 +0x89AF 0x58C7 +0x89B0 0x58C8 +0x89B1 0x58C9 +0x89B2 0x58CA +0x89B3 0x58CB +0x89B4 0x58CC +0x89B5 0x58CD +0x89B6 0x58CE +0x89B7 0x58CF +0x89B8 0x58D0 +0x89B9 0x58D2 +0x89BA 0x58D3 +0x89BB 0x58D4 +0x89BC 0x58D6 +0x89BD 0x58D7 +0x89BE 0x58D8 +0x89BF 0x58D9 +0x89C0 0x58DA +0x89C1 0x58DB +0x89C2 0x58DC +0x89C3 0x58DD +0x89C4 0x58DE +0x89C5 0x58DF +0x89C6 0x58E0 +0x89C7 0x58E1 +0x89C8 0x58E2 +0x89C9 0x58E3 +0x89CA 0x58E5 +0x89CB 0x58E6 +0x89CC 0x58E7 +0x89CD 0x58E8 +0x89CE 0x58E9 +0x89CF 0x58EA +0x89D0 0x58ED +0x89D1 0x58EF +0x89D2 0x58F1 +0x89D3 0x58F2 +0x89D4 0x58F4 +0x89D5 0x58F5 +0x89D6 0x58F7 +0x89D7 0x58F8 +0x89D8 0x58FA +0x89D9 0x58FB +0x89DA 0x58FC +0x89DB 0x58FD +0x89DC 0x58FE +0x89DD 0x58FF +0x89DE 0x5900 +0x89DF 0x5901 +0x89E0 0x5903 +0x89E1 0x5905 +0x89E2 0x5906 +0x89E3 0x5908 +0x89E4 0x5909 +0x89E5 0x590A +0x89E6 0x590B +0x89E7 0x590C +0x89E8 0x590E +0x89E9 0x5910 +0x89EA 0x5911 +0x89EB 0x5912 +0x89EC 0x5913 +0x89ED 0x5917 +0x89EE 0x5918 +0x89EF 0x591B +0x89F0 0x591D +0x89F1 0x591E +0x89F2 0x5920 +0x89F3 0x5921 +0x89F4 0x5922 +0x89F5 0x5923 +0x89F6 0x5926 +0x89F7 0x5928 +0x89F8 0x592C +0x89F9 0x5930 +0x89FA 0x5932 +0x89FB 0x5933 +0x89FC 0x5935 +0x89FD 0x5936 +0x89FE 0x593B +0x8A40 0x593D +0x8A41 0x593E +0x8A42 0x593F +0x8A43 0x5940 +0x8A44 0x5943 +0x8A45 0x5945 +0x8A46 0x5946 +0x8A47 0x594A +0x8A48 0x594C +0x8A49 0x594D +0x8A4A 0x5950 +0x8A4B 0x5952 +0x8A4C 0x5953 +0x8A4D 0x5959 +0x8A4E 0x595B +0x8A4F 0x595C +0x8A50 0x595D +0x8A51 0x595E +0x8A52 0x595F +0x8A53 0x5961 +0x8A54 0x5963 +0x8A55 0x5964 +0x8A56 0x5966 +0x8A57 0x5967 +0x8A58 0x5968 +0x8A59 0x5969 +0x8A5A 0x596A +0x8A5B 0x596B +0x8A5C 0x596C +0x8A5D 0x596D +0x8A5E 0x596E +0x8A5F 0x596F +0x8A60 0x5970 +0x8A61 0x5971 +0x8A62 0x5972 +0x8A63 0x5975 +0x8A64 0x5977 +0x8A65 0x597A +0x8A66 0x597B +0x8A67 0x597C +0x8A68 0x597E +0x8A69 0x597F +0x8A6A 0x5980 +0x8A6B 0x5985 +0x8A6C 0x5989 +0x8A6D 0x598B +0x8A6E 0x598C +0x8A6F 0x598E +0x8A70 0x598F +0x8A71 0x5990 +0x8A72 0x5991 +0x8A73 0x5994 +0x8A74 0x5995 +0x8A75 0x5998 +0x8A76 0x599A +0x8A77 0x599B +0x8A78 0x599C +0x8A79 0x599D +0x8A7A 0x599F +0x8A7B 0x59A0 +0x8A7C 0x59A1 +0x8A7D 0x59A2 +0x8A7E 0x59A6 +0x8A80 0x59A7 +0x8A81 0x59AC +0x8A82 0x59AD +0x8A83 0x59B0 +0x8A84 0x59B1 +0x8A85 0x59B3 +0x8A86 0x59B4 +0x8A87 0x59B5 +0x8A88 0x59B6 +0x8A89 0x59B7 +0x8A8A 0x59B8 +0x8A8B 0x59BA +0x8A8C 0x59BC +0x8A8D 0x59BD +0x8A8E 0x59BF +0x8A8F 0x59C0 +0x8A90 0x59C1 +0x8A91 0x59C2 +0x8A92 0x59C3 +0x8A93 0x59C4 +0x8A94 0x59C5 +0x8A95 0x59C7 +0x8A96 0x59C8 +0x8A97 0x59C9 +0x8A98 0x59CC +0x8A99 0x59CD +0x8A9A 0x59CE +0x8A9B 0x59CF +0x8A9C 0x59D5 +0x8A9D 0x59D6 +0x8A9E 0x59D9 +0x8A9F 0x59DB +0x8AA0 0x59DE +0x8AA1 0x59DF +0x8AA2 0x59E0 +0x8AA3 0x59E1 +0x8AA4 0x59E2 +0x8AA5 0x59E4 +0x8AA6 0x59E6 +0x8AA7 0x59E7 +0x8AA8 0x59E9 +0x8AA9 0x59EA +0x8AAA 0x59EB +0x8AAB 0x59ED +0x8AAC 0x59EE +0x8AAD 0x59EF +0x8AAE 0x59F0 +0x8AAF 0x59F1 +0x8AB0 0x59F2 +0x8AB1 0x59F3 +0x8AB2 0x59F4 +0x8AB3 0x59F5 +0x8AB4 0x59F6 +0x8AB5 0x59F7 +0x8AB6 0x59F8 +0x8AB7 0x59FA +0x8AB8 0x59FC +0x8AB9 0x59FD +0x8ABA 0x59FE +0x8ABB 0x5A00 +0x8ABC 0x5A02 +0x8ABD 0x5A0A +0x8ABE 0x5A0B +0x8ABF 0x5A0D +0x8AC0 0x5A0E +0x8AC1 0x5A0F +0x8AC2 0x5A10 +0x8AC3 0x5A12 +0x8AC4 0x5A14 +0x8AC5 0x5A15 +0x8AC6 0x5A16 +0x8AC7 0x5A17 +0x8AC8 0x5A19 +0x8AC9 0x5A1A +0x8ACA 0x5A1B +0x8ACB 0x5A1D +0x8ACC 0x5A1E +0x8ACD 0x5A21 +0x8ACE 0x5A22 +0x8ACF 0x5A24 +0x8AD0 0x5A26 +0x8AD1 0x5A27 +0x8AD2 0x5A28 +0x8AD3 0x5A2A +0x8AD4 0x5A2B +0x8AD5 0x5A2C +0x8AD6 0x5A2D +0x8AD7 0x5A2E +0x8AD8 0x5A2F +0x8AD9 0x5A30 +0x8ADA 0x5A33 +0x8ADB 0x5A35 +0x8ADC 0x5A37 +0x8ADD 0x5A38 +0x8ADE 0x5A39 +0x8ADF 0x5A3A +0x8AE0 0x5A3B +0x8AE1 0x5A3D +0x8AE2 0x5A3E +0x8AE3 0x5A3F +0x8AE4 0x5A41 +0x8AE5 0x5A42 +0x8AE6 0x5A43 +0x8AE7 0x5A44 +0x8AE8 0x5A45 +0x8AE9 0x5A47 +0x8AEA 0x5A48 +0x8AEB 0x5A4B +0x8AEC 0x5A4C +0x8AED 0x5A4D +0x8AEE 0x5A4E +0x8AEF 0x5A4F +0x8AF0 0x5A50 +0x8AF1 0x5A51 +0x8AF2 0x5A52 +0x8AF3 0x5A53 +0x8AF4 0x5A54 +0x8AF5 0x5A56 +0x8AF6 0x5A57 +0x8AF7 0x5A58 +0x8AF8 0x5A59 +0x8AF9 0x5A5B +0x8AFA 0x5A5C +0x8AFB 0x5A5D +0x8AFC 0x5A5E +0x8AFD 0x5A5F +0x8AFE 0x5A60 +0x8B40 0x5A61 +0x8B41 0x5A63 +0x8B42 0x5A64 +0x8B43 0x5A65 +0x8B44 0x5A66 +0x8B45 0x5A68 +0x8B46 0x5A69 +0x8B47 0x5A6B +0x8B48 0x5A6C +0x8B49 0x5A6D +0x8B4A 0x5A6E +0x8B4B 0x5A6F +0x8B4C 0x5A70 +0x8B4D 0x5A71 +0x8B4E 0x5A72 +0x8B4F 0x5A73 +0x8B50 0x5A78 +0x8B51 0x5A79 +0x8B52 0x5A7B +0x8B53 0x5A7C +0x8B54 0x5A7D +0x8B55 0x5A7E +0x8B56 0x5A80 +0x8B57 0x5A81 +0x8B58 0x5A82 +0x8B59 0x5A83 +0x8B5A 0x5A84 +0x8B5B 0x5A85 +0x8B5C 0x5A86 +0x8B5D 0x5A87 +0x8B5E 0x5A88 +0x8B5F 0x5A89 +0x8B60 0x5A8A +0x8B61 0x5A8B +0x8B62 0x5A8C +0x8B63 0x5A8D +0x8B64 0x5A8E +0x8B65 0x5A8F +0x8B66 0x5A90 +0x8B67 0x5A91 +0x8B68 0x5A93 +0x8B69 0x5A94 +0x8B6A 0x5A95 +0x8B6B 0x5A96 +0x8B6C 0x5A97 +0x8B6D 0x5A98 +0x8B6E 0x5A99 +0x8B6F 0x5A9C +0x8B70 0x5A9D +0x8B71 0x5A9E +0x8B72 0x5A9F +0x8B73 0x5AA0 +0x8B74 0x5AA1 +0x8B75 0x5AA2 +0x8B76 0x5AA3 +0x8B77 0x5AA4 +0x8B78 0x5AA5 +0x8B79 0x5AA6 +0x8B7A 0x5AA7 +0x8B7B 0x5AA8 +0x8B7C 0x5AA9 +0x8B7D 0x5AAB +0x8B7E 0x5AAC +0x8B80 0x5AAD +0x8B81 0x5AAE +0x8B82 0x5AAF +0x8B83 0x5AB0 +0x8B84 0x5AB1 +0x8B85 0x5AB4 +0x8B86 0x5AB6 +0x8B87 0x5AB7 +0x8B88 0x5AB9 +0x8B89 0x5ABA +0x8B8A 0x5ABB +0x8B8B 0x5ABC +0x8B8C 0x5ABD +0x8B8D 0x5ABF +0x8B8E 0x5AC0 +0x8B8F 0x5AC3 +0x8B90 0x5AC4 +0x8B91 0x5AC5 +0x8B92 0x5AC6 +0x8B93 0x5AC7 +0x8B94 0x5AC8 +0x8B95 0x5ACA +0x8B96 0x5ACB +0x8B97 0x5ACD +0x8B98 0x5ACE +0x8B99 0x5ACF +0x8B9A 0x5AD0 +0x8B9B 0x5AD1 +0x8B9C 0x5AD3 +0x8B9D 0x5AD5 +0x8B9E 0x5AD7 +0x8B9F 0x5AD9 +0x8BA0 0x5ADA +0x8BA1 0x5ADB +0x8BA2 0x5ADD +0x8BA3 0x5ADE +0x8BA4 0x5ADF +0x8BA5 0x5AE2 +0x8BA6 0x5AE4 +0x8BA7 0x5AE5 +0x8BA8 0x5AE7 +0x8BA9 0x5AE8 +0x8BAA 0x5AEA +0x8BAB 0x5AEC +0x8BAC 0x5AED +0x8BAD 0x5AEE +0x8BAE 0x5AEF +0x8BAF 0x5AF0 +0x8BB0 0x5AF2 +0x8BB1 0x5AF3 +0x8BB2 0x5AF4 +0x8BB3 0x5AF5 +0x8BB4 0x5AF6 +0x8BB5 0x5AF7 +0x8BB6 0x5AF8 +0x8BB7 0x5AF9 +0x8BB8 0x5AFA +0x8BB9 0x5AFB +0x8BBA 0x5AFC +0x8BBB 0x5AFD +0x8BBC 0x5AFE +0x8BBD 0x5AFF +0x8BBE 0x5B00 +0x8BBF 0x5B01 +0x8BC0 0x5B02 +0x8BC1 0x5B03 +0x8BC2 0x5B04 +0x8BC3 0x5B05 +0x8BC4 0x5B06 +0x8BC5 0x5B07 +0x8BC6 0x5B08 +0x8BC7 0x5B0A +0x8BC8 0x5B0B +0x8BC9 0x5B0C +0x8BCA 0x5B0D +0x8BCB 0x5B0E +0x8BCC 0x5B0F +0x8BCD 0x5B10 +0x8BCE 0x5B11 +0x8BCF 0x5B12 +0x8BD0 0x5B13 +0x8BD1 0x5B14 +0x8BD2 0x5B15 +0x8BD3 0x5B18 +0x8BD4 0x5B19 +0x8BD5 0x5B1A +0x8BD6 0x5B1B +0x8BD7 0x5B1C +0x8BD8 0x5B1D +0x8BD9 0x5B1E +0x8BDA 0x5B1F +0x8BDB 0x5B20 +0x8BDC 0x5B21 +0x8BDD 0x5B22 +0x8BDE 0x5B23 +0x8BDF 0x5B24 +0x8BE0 0x5B25 +0x8BE1 0x5B26 +0x8BE2 0x5B27 +0x8BE3 0x5B28 +0x8BE4 0x5B29 +0x8BE5 0x5B2A +0x8BE6 0x5B2B +0x8BE7 0x5B2C +0x8BE8 0x5B2D +0x8BE9 0x5B2E +0x8BEA 0x5B2F +0x8BEB 0x5B30 +0x8BEC 0x5B31 +0x8BED 0x5B33 +0x8BEE 0x5B35 +0x8BEF 0x5B36 +0x8BF0 0x5B38 +0x8BF1 0x5B39 +0x8BF2 0x5B3A +0x8BF3 0x5B3B +0x8BF4 0x5B3C +0x8BF5 0x5B3D +0x8BF6 0x5B3E +0x8BF7 0x5B3F +0x8BF8 0x5B41 +0x8BF9 0x5B42 +0x8BFA 0x5B43 +0x8BFB 0x5B44 +0x8BFC 0x5B45 +0x8BFD 0x5B46 +0x8BFE 0x5B47 +0x8C40 0x5B48 +0x8C41 0x5B49 +0x8C42 0x5B4A +0x8C43 0x5B4B +0x8C44 0x5B4C +0x8C45 0x5B4D +0x8C46 0x5B4E +0x8C47 0x5B4F +0x8C48 0x5B52 +0x8C49 0x5B56 +0x8C4A 0x5B5E +0x8C4B 0x5B60 +0x8C4C 0x5B61 +0x8C4D 0x5B67 +0x8C4E 0x5B68 +0x8C4F 0x5B6B +0x8C50 0x5B6D +0x8C51 0x5B6E +0x8C52 0x5B6F +0x8C53 0x5B72 +0x8C54 0x5B74 +0x8C55 0x5B76 +0x8C56 0x5B77 +0x8C57 0x5B78 +0x8C58 0x5B79 +0x8C59 0x5B7B +0x8C5A 0x5B7C +0x8C5B 0x5B7E +0x8C5C 0x5B7F +0x8C5D 0x5B82 +0x8C5E 0x5B86 +0x8C5F 0x5B8A +0x8C60 0x5B8D +0x8C61 0x5B8E +0x8C62 0x5B90 +0x8C63 0x5B91 +0x8C64 0x5B92 +0x8C65 0x5B94 +0x8C66 0x5B96 +0x8C67 0x5B9F +0x8C68 0x5BA7 +0x8C69 0x5BA8 +0x8C6A 0x5BA9 +0x8C6B 0x5BAC +0x8C6C 0x5BAD +0x8C6D 0x5BAE +0x8C6E 0x5BAF +0x8C6F 0x5BB1 +0x8C70 0x5BB2 +0x8C71 0x5BB7 +0x8C72 0x5BBA +0x8C73 0x5BBB +0x8C74 0x5BBC +0x8C75 0x5BC0 +0x8C76 0x5BC1 +0x8C77 0x5BC3 +0x8C78 0x5BC8 +0x8C79 0x5BC9 +0x8C7A 0x5BCA +0x8C7B 0x5BCB +0x8C7C 0x5BCD +0x8C7D 0x5BCE +0x8C7E 0x5BCF +0x8C80 0x5BD1 +0x8C81 0x5BD4 +0x8C82 0x5BD5 +0x8C83 0x5BD6 +0x8C84 0x5BD7 +0x8C85 0x5BD8 +0x8C86 0x5BD9 +0x8C87 0x5BDA +0x8C88 0x5BDB +0x8C89 0x5BDC +0x8C8A 0x5BE0 +0x8C8B 0x5BE2 +0x8C8C 0x5BE3 +0x8C8D 0x5BE6 +0x8C8E 0x5BE7 +0x8C8F 0x5BE9 +0x8C90 0x5BEA +0x8C91 0x5BEB +0x8C92 0x5BEC +0x8C93 0x5BED +0x8C94 0x5BEF +0x8C95 0x5BF1 +0x8C96 0x5BF2 +0x8C97 0x5BF3 +0x8C98 0x5BF4 +0x8C99 0x5BF5 +0x8C9A 0x5BF6 +0x8C9B 0x5BF7 +0x8C9C 0x5BFD +0x8C9D 0x5BFE +0x8C9E 0x5C00 +0x8C9F 0x5C02 +0x8CA0 0x5C03 +0x8CA1 0x5C05 +0x8CA2 0x5C07 +0x8CA3 0x5C08 +0x8CA4 0x5C0B +0x8CA5 0x5C0C +0x8CA6 0x5C0D +0x8CA7 0x5C0E +0x8CA8 0x5C10 +0x8CA9 0x5C12 +0x8CAA 0x5C13 +0x8CAB 0x5C17 +0x8CAC 0x5C19 +0x8CAD 0x5C1B +0x8CAE 0x5C1E +0x8CAF 0x5C1F +0x8CB0 0x5C20 +0x8CB1 0x5C21 +0x8CB2 0x5C23 +0x8CB3 0x5C26 +0x8CB4 0x5C28 +0x8CB5 0x5C29 +0x8CB6 0x5C2A +0x8CB7 0x5C2B +0x8CB8 0x5C2D +0x8CB9 0x5C2E +0x8CBA 0x5C2F +0x8CBB 0x5C30 +0x8CBC 0x5C32 +0x8CBD 0x5C33 +0x8CBE 0x5C35 +0x8CBF 0x5C36 +0x8CC0 0x5C37 +0x8CC1 0x5C43 +0x8CC2 0x5C44 +0x8CC3 0x5C46 +0x8CC4 0x5C47 +0x8CC5 0x5C4C +0x8CC6 0x5C4D +0x8CC7 0x5C52 +0x8CC8 0x5C53 +0x8CC9 0x5C54 +0x8CCA 0x5C56 +0x8CCB 0x5C57 +0x8CCC 0x5C58 +0x8CCD 0x5C5A +0x8CCE 0x5C5B +0x8CCF 0x5C5C +0x8CD0 0x5C5D +0x8CD1 0x5C5F +0x8CD2 0x5C62 +0x8CD3 0x5C64 +0x8CD4 0x5C67 +0x8CD5 0x5C68 +0x8CD6 0x5C69 +0x8CD7 0x5C6A +0x8CD8 0x5C6B +0x8CD9 0x5C6C +0x8CDA 0x5C6D +0x8CDB 0x5C70 +0x8CDC 0x5C72 +0x8CDD 0x5C73 +0x8CDE 0x5C74 +0x8CDF 0x5C75 +0x8CE0 0x5C76 +0x8CE1 0x5C77 +0x8CE2 0x5C78 +0x8CE3 0x5C7B +0x8CE4 0x5C7C +0x8CE5 0x5C7D +0x8CE6 0x5C7E +0x8CE7 0x5C80 +0x8CE8 0x5C83 +0x8CE9 0x5C84 +0x8CEA 0x5C85 +0x8CEB 0x5C86 +0x8CEC 0x5C87 +0x8CED 0x5C89 +0x8CEE 0x5C8A +0x8CEF 0x5C8B +0x8CF0 0x5C8E +0x8CF1 0x5C8F +0x8CF2 0x5C92 +0x8CF3 0x5C93 +0x8CF4 0x5C95 +0x8CF5 0x5C9D +0x8CF6 0x5C9E +0x8CF7 0x5C9F +0x8CF8 0x5CA0 +0x8CF9 0x5CA1 +0x8CFA 0x5CA4 +0x8CFB 0x5CA5 +0x8CFC 0x5CA6 +0x8CFD 0x5CA7 +0x8CFE 0x5CA8 +0x8D40 0x5CAA +0x8D41 0x5CAE +0x8D42 0x5CAF +0x8D43 0x5CB0 +0x8D44 0x5CB2 +0x8D45 0x5CB4 +0x8D46 0x5CB6 +0x8D47 0x5CB9 +0x8D48 0x5CBA +0x8D49 0x5CBB +0x8D4A 0x5CBC +0x8D4B 0x5CBE +0x8D4C 0x5CC0 +0x8D4D 0x5CC2 +0x8D4E 0x5CC3 +0x8D4F 0x5CC5 +0x8D50 0x5CC6 +0x8D51 0x5CC7 +0x8D52 0x5CC8 +0x8D53 0x5CC9 +0x8D54 0x5CCA +0x8D55 0x5CCC +0x8D56 0x5CCD +0x8D57 0x5CCE +0x8D58 0x5CCF +0x8D59 0x5CD0 +0x8D5A 0x5CD1 +0x8D5B 0x5CD3 +0x8D5C 0x5CD4 +0x8D5D 0x5CD5 +0x8D5E 0x5CD6 +0x8D5F 0x5CD7 +0x8D60 0x5CD8 +0x8D61 0x5CDA +0x8D62 0x5CDB +0x8D63 0x5CDC +0x8D64 0x5CDD +0x8D65 0x5CDE +0x8D66 0x5CDF +0x8D67 0x5CE0 +0x8D68 0x5CE2 +0x8D69 0x5CE3 +0x8D6A 0x5CE7 +0x8D6B 0x5CE9 +0x8D6C 0x5CEB +0x8D6D 0x5CEC +0x8D6E 0x5CEE +0x8D6F 0x5CEF +0x8D70 0x5CF1 +0x8D71 0x5CF2 +0x8D72 0x5CF3 +0x8D73 0x5CF4 +0x8D74 0x5CF5 +0x8D75 0x5CF6 +0x8D76 0x5CF7 +0x8D77 0x5CF8 +0x8D78 0x5CF9 +0x8D79 0x5CFA +0x8D7A 0x5CFC +0x8D7B 0x5CFD +0x8D7C 0x5CFE +0x8D7D 0x5CFF +0x8D7E 0x5D00 +0x8D80 0x5D01 +0x8D81 0x5D04 +0x8D82 0x5D05 +0x8D83 0x5D08 +0x8D84 0x5D09 +0x8D85 0x5D0A +0x8D86 0x5D0B +0x8D87 0x5D0C +0x8D88 0x5D0D +0x8D89 0x5D0F +0x8D8A 0x5D10 +0x8D8B 0x5D11 +0x8D8C 0x5D12 +0x8D8D 0x5D13 +0x8D8E 0x5D15 +0x8D8F 0x5D17 +0x8D90 0x5D18 +0x8D91 0x5D19 +0x8D92 0x5D1A +0x8D93 0x5D1C +0x8D94 0x5D1D +0x8D95 0x5D1F +0x8D96 0x5D20 +0x8D97 0x5D21 +0x8D98 0x5D22 +0x8D99 0x5D23 +0x8D9A 0x5D25 +0x8D9B 0x5D28 +0x8D9C 0x5D2A +0x8D9D 0x5D2B +0x8D9E 0x5D2C +0x8D9F 0x5D2F +0x8DA0 0x5D30 +0x8DA1 0x5D31 +0x8DA2 0x5D32 +0x8DA3 0x5D33 +0x8DA4 0x5D35 +0x8DA5 0x5D36 +0x8DA6 0x5D37 +0x8DA7 0x5D38 +0x8DA8 0x5D39 +0x8DA9 0x5D3A +0x8DAA 0x5D3B +0x8DAB 0x5D3C +0x8DAC 0x5D3F +0x8DAD 0x5D40 +0x8DAE 0x5D41 +0x8DAF 0x5D42 +0x8DB0 0x5D43 +0x8DB1 0x5D44 +0x8DB2 0x5D45 +0x8DB3 0x5D46 +0x8DB4 0x5D48 +0x8DB5 0x5D49 +0x8DB6 0x5D4D +0x8DB7 0x5D4E +0x8DB8 0x5D4F +0x8DB9 0x5D50 +0x8DBA 0x5D51 +0x8DBB 0x5D52 +0x8DBC 0x5D53 +0x8DBD 0x5D54 +0x8DBE 0x5D55 +0x8DBF 0x5D56 +0x8DC0 0x5D57 +0x8DC1 0x5D59 +0x8DC2 0x5D5A +0x8DC3 0x5D5C +0x8DC4 0x5D5E +0x8DC5 0x5D5F +0x8DC6 0x5D60 +0x8DC7 0x5D61 +0x8DC8 0x5D62 +0x8DC9 0x5D63 +0x8DCA 0x5D64 +0x8DCB 0x5D65 +0x8DCC 0x5D66 +0x8DCD 0x5D67 +0x8DCE 0x5D68 +0x8DCF 0x5D6A +0x8DD0 0x5D6D +0x8DD1 0x5D6E +0x8DD2 0x5D70 +0x8DD3 0x5D71 +0x8DD4 0x5D72 +0x8DD5 0x5D73 +0x8DD6 0x5D75 +0x8DD7 0x5D76 +0x8DD8 0x5D77 +0x8DD9 0x5D78 +0x8DDA 0x5D79 +0x8DDB 0x5D7A +0x8DDC 0x5D7B +0x8DDD 0x5D7C +0x8DDE 0x5D7D +0x8DDF 0x5D7E +0x8DE0 0x5D7F +0x8DE1 0x5D80 +0x8DE2 0x5D81 +0x8DE3 0x5D83 +0x8DE4 0x5D84 +0x8DE5 0x5D85 +0x8DE6 0x5D86 +0x8DE7 0x5D87 +0x8DE8 0x5D88 +0x8DE9 0x5D89 +0x8DEA 0x5D8A +0x8DEB 0x5D8B +0x8DEC 0x5D8C +0x8DED 0x5D8D +0x8DEE 0x5D8E +0x8DEF 0x5D8F +0x8DF0 0x5D90 +0x8DF1 0x5D91 +0x8DF2 0x5D92 +0x8DF3 0x5D93 +0x8DF4 0x5D94 +0x8DF5 0x5D95 +0x8DF6 0x5D96 +0x8DF7 0x5D97 +0x8DF8 0x5D98 +0x8DF9 0x5D9A +0x8DFA 0x5D9B +0x8DFB 0x5D9C +0x8DFC 0x5D9E +0x8DFD 0x5D9F +0x8DFE 0x5DA0 +0x8E40 0x5DA1 +0x8E41 0x5DA2 +0x8E42 0x5DA3 +0x8E43 0x5DA4 +0x8E44 0x5DA5 +0x8E45 0x5DA6 +0x8E46 0x5DA7 +0x8E47 0x5DA8 +0x8E48 0x5DA9 +0x8E49 0x5DAA +0x8E4A 0x5DAB +0x8E4B 0x5DAC +0x8E4C 0x5DAD +0x8E4D 0x5DAE +0x8E4E 0x5DAF +0x8E4F 0x5DB0 +0x8E50 0x5DB1 +0x8E51 0x5DB2 +0x8E52 0x5DB3 +0x8E53 0x5DB4 +0x8E54 0x5DB5 +0x8E55 0x5DB6 +0x8E56 0x5DB8 +0x8E57 0x5DB9 +0x8E58 0x5DBA +0x8E59 0x5DBB +0x8E5A 0x5DBC +0x8E5B 0x5DBD +0x8E5C 0x5DBE +0x8E5D 0x5DBF +0x8E5E 0x5DC0 +0x8E5F 0x5DC1 +0x8E60 0x5DC2 +0x8E61 0x5DC3 +0x8E62 0x5DC4 +0x8E63 0x5DC6 +0x8E64 0x5DC7 +0x8E65 0x5DC8 +0x8E66 0x5DC9 +0x8E67 0x5DCA +0x8E68 0x5DCB +0x8E69 0x5DCC +0x8E6A 0x5DCE +0x8E6B 0x5DCF +0x8E6C 0x5DD0 +0x8E6D 0x5DD1 +0x8E6E 0x5DD2 +0x8E6F 0x5DD3 +0x8E70 0x5DD4 +0x8E71 0x5DD5 +0x8E72 0x5DD6 +0x8E73 0x5DD7 +0x8E74 0x5DD8 +0x8E75 0x5DD9 +0x8E76 0x5DDA +0x8E77 0x5DDC +0x8E78 0x5DDF +0x8E79 0x5DE0 +0x8E7A 0x5DE3 +0x8E7B 0x5DE4 +0x8E7C 0x5DEA +0x8E7D 0x5DEC +0x8E7E 0x5DED +0x8E80 0x5DF0 +0x8E81 0x5DF5 +0x8E82 0x5DF6 +0x8E83 0x5DF8 +0x8E84 0x5DF9 +0x8E85 0x5DFA +0x8E86 0x5DFB +0x8E87 0x5DFC +0x8E88 0x5DFF +0x8E89 0x5E00 +0x8E8A 0x5E04 +0x8E8B 0x5E07 +0x8E8C 0x5E09 +0x8E8D 0x5E0A +0x8E8E 0x5E0B +0x8E8F 0x5E0D +0x8E90 0x5E0E +0x8E91 0x5E12 +0x8E92 0x5E13 +0x8E93 0x5E17 +0x8E94 0x5E1E +0x8E95 0x5E1F +0x8E96 0x5E20 +0x8E97 0x5E21 +0x8E98 0x5E22 +0x8E99 0x5E23 +0x8E9A 0x5E24 +0x8E9B 0x5E25 +0x8E9C 0x5E28 +0x8E9D 0x5E29 +0x8E9E 0x5E2A +0x8E9F 0x5E2B +0x8EA0 0x5E2C +0x8EA1 0x5E2F +0x8EA2 0x5E30 +0x8EA3 0x5E32 +0x8EA4 0x5E33 +0x8EA5 0x5E34 +0x8EA6 0x5E35 +0x8EA7 0x5E36 +0x8EA8 0x5E39 +0x8EA9 0x5E3A +0x8EAA 0x5E3E +0x8EAB 0x5E3F +0x8EAC 0x5E40 +0x8EAD 0x5E41 +0x8EAE 0x5E43 +0x8EAF 0x5E46 +0x8EB0 0x5E47 +0x8EB1 0x5E48 +0x8EB2 0x5E49 +0x8EB3 0x5E4A +0x8EB4 0x5E4B +0x8EB5 0x5E4D +0x8EB6 0x5E4E +0x8EB7 0x5E4F +0x8EB8 0x5E50 +0x8EB9 0x5E51 +0x8EBA 0x5E52 +0x8EBB 0x5E53 +0x8EBC 0x5E56 +0x8EBD 0x5E57 +0x8EBE 0x5E58 +0x8EBF 0x5E59 +0x8EC0 0x5E5A +0x8EC1 0x5E5C +0x8EC2 0x5E5D +0x8EC3 0x5E5F +0x8EC4 0x5E60 +0x8EC5 0x5E63 +0x8EC6 0x5E64 +0x8EC7 0x5E65 +0x8EC8 0x5E66 +0x8EC9 0x5E67 +0x8ECA 0x5E68 +0x8ECB 0x5E69 +0x8ECC 0x5E6A +0x8ECD 0x5E6B +0x8ECE 0x5E6C +0x8ECF 0x5E6D +0x8ED0 0x5E6E +0x8ED1 0x5E6F +0x8ED2 0x5E70 +0x8ED3 0x5E71 +0x8ED4 0x5E75 +0x8ED5 0x5E77 +0x8ED6 0x5E79 +0x8ED7 0x5E7E +0x8ED8 0x5E81 +0x8ED9 0x5E82 +0x8EDA 0x5E83 +0x8EDB 0x5E85 +0x8EDC 0x5E88 +0x8EDD 0x5E89 +0x8EDE 0x5E8C +0x8EDF 0x5E8D +0x8EE0 0x5E8E +0x8EE1 0x5E92 +0x8EE2 0x5E98 +0x8EE3 0x5E9B +0x8EE4 0x5E9D +0x8EE5 0x5EA1 +0x8EE6 0x5EA2 +0x8EE7 0x5EA3 +0x8EE8 0x5EA4 +0x8EE9 0x5EA8 +0x8EEA 0x5EA9 +0x8EEB 0x5EAA +0x8EEC 0x5EAB +0x8EED 0x5EAC +0x8EEE 0x5EAE +0x8EEF 0x5EAF +0x8EF0 0x5EB0 +0x8EF1 0x5EB1 +0x8EF2 0x5EB2 +0x8EF3 0x5EB4 +0x8EF4 0x5EBA +0x8EF5 0x5EBB +0x8EF6 0x5EBC +0x8EF7 0x5EBD +0x8EF8 0x5EBF +0x8EF9 0x5EC0 +0x8EFA 0x5EC1 +0x8EFB 0x5EC2 +0x8EFC 0x5EC3 +0x8EFD 0x5EC4 +0x8EFE 0x5EC5 +0x8F40 0x5EC6 +0x8F41 0x5EC7 +0x8F42 0x5EC8 +0x8F43 0x5ECB +0x8F44 0x5ECC +0x8F45 0x5ECD +0x8F46 0x5ECE +0x8F47 0x5ECF +0x8F48 0x5ED0 +0x8F49 0x5ED4 +0x8F4A 0x5ED5 +0x8F4B 0x5ED7 +0x8F4C 0x5ED8 +0x8F4D 0x5ED9 +0x8F4E 0x5EDA +0x8F4F 0x5EDC +0x8F50 0x5EDD +0x8F51 0x5EDE +0x8F52 0x5EDF +0x8F53 0x5EE0 +0x8F54 0x5EE1 +0x8F55 0x5EE2 +0x8F56 0x5EE3 +0x8F57 0x5EE4 +0x8F58 0x5EE5 +0x8F59 0x5EE6 +0x8F5A 0x5EE7 +0x8F5B 0x5EE9 +0x8F5C 0x5EEB +0x8F5D 0x5EEC +0x8F5E 0x5EED +0x8F5F 0x5EEE +0x8F60 0x5EEF +0x8F61 0x5EF0 +0x8F62 0x5EF1 +0x8F63 0x5EF2 +0x8F64 0x5EF3 +0x8F65 0x5EF5 +0x8F66 0x5EF8 +0x8F67 0x5EF9 +0x8F68 0x5EFB +0x8F69 0x5EFC +0x8F6A 0x5EFD +0x8F6B 0x5F05 +0x8F6C 0x5F06 +0x8F6D 0x5F07 +0x8F6E 0x5F09 +0x8F6F 0x5F0C +0x8F70 0x5F0D +0x8F71 0x5F0E +0x8F72 0x5F10 +0x8F73 0x5F12 +0x8F74 0x5F14 +0x8F75 0x5F16 +0x8F76 0x5F19 +0x8F77 0x5F1A +0x8F78 0x5F1C +0x8F79 0x5F1D +0x8F7A 0x5F1E +0x8F7B 0x5F21 +0x8F7C 0x5F22 +0x8F7D 0x5F23 +0x8F7E 0x5F24 +0x8F80 0x5F28 +0x8F81 0x5F2B +0x8F82 0x5F2C +0x8F83 0x5F2E +0x8F84 0x5F30 +0x8F85 0x5F32 +0x8F86 0x5F33 +0x8F87 0x5F34 +0x8F88 0x5F35 +0x8F89 0x5F36 +0x8F8A 0x5F37 +0x8F8B 0x5F38 +0x8F8C 0x5F3B +0x8F8D 0x5F3D +0x8F8E 0x5F3E +0x8F8F 0x5F3F +0x8F90 0x5F41 +0x8F91 0x5F42 +0x8F92 0x5F43 +0x8F93 0x5F44 +0x8F94 0x5F45 +0x8F95 0x5F46 +0x8F96 0x5F47 +0x8F97 0x5F48 +0x8F98 0x5F49 +0x8F99 0x5F4A +0x8F9A 0x5F4B +0x8F9B 0x5F4C +0x8F9C 0x5F4D +0x8F9D 0x5F4E +0x8F9E 0x5F4F +0x8F9F 0x5F51 +0x8FA0 0x5F54 +0x8FA1 0x5F59 +0x8FA2 0x5F5A +0x8FA3 0x5F5B +0x8FA4 0x5F5C +0x8FA5 0x5F5E +0x8FA6 0x5F5F +0x8FA7 0x5F60 +0x8FA8 0x5F63 +0x8FA9 0x5F65 +0x8FAA 0x5F67 +0x8FAB 0x5F68 +0x8FAC 0x5F6B +0x8FAD 0x5F6E +0x8FAE 0x5F6F +0x8FAF 0x5F72 +0x8FB0 0x5F74 +0x8FB1 0x5F75 +0x8FB2 0x5F76 +0x8FB3 0x5F78 +0x8FB4 0x5F7A +0x8FB5 0x5F7D +0x8FB6 0x5F7E +0x8FB7 0x5F7F +0x8FB8 0x5F83 +0x8FB9 0x5F86 +0x8FBA 0x5F8D +0x8FBB 0x5F8E +0x8FBC 0x5F8F +0x8FBD 0x5F91 +0x8FBE 0x5F93 +0x8FBF 0x5F94 +0x8FC0 0x5F96 +0x8FC1 0x5F9A +0x8FC2 0x5F9B +0x8FC3 0x5F9D +0x8FC4 0x5F9E +0x8FC5 0x5F9F +0x8FC6 0x5FA0 +0x8FC7 0x5FA2 +0x8FC8 0x5FA3 +0x8FC9 0x5FA4 +0x8FCA 0x5FA5 +0x8FCB 0x5FA6 +0x8FCC 0x5FA7 +0x8FCD 0x5FA9 +0x8FCE 0x5FAB +0x8FCF 0x5FAC +0x8FD0 0x5FAF +0x8FD1 0x5FB0 +0x8FD2 0x5FB1 +0x8FD3 0x5FB2 +0x8FD4 0x5FB3 +0x8FD5 0x5FB4 +0x8FD6 0x5FB6 +0x8FD7 0x5FB8 +0x8FD8 0x5FB9 +0x8FD9 0x5FBA +0x8FDA 0x5FBB +0x8FDB 0x5FBE +0x8FDC 0x5FBF +0x8FDD 0x5FC0 +0x8FDE 0x5FC1 +0x8FDF 0x5FC2 +0x8FE0 0x5FC7 +0x8FE1 0x5FC8 +0x8FE2 0x5FCA +0x8FE3 0x5FCB +0x8FE4 0x5FCE +0x8FE5 0x5FD3 +0x8FE6 0x5FD4 +0x8FE7 0x5FD5 +0x8FE8 0x5FDA +0x8FE9 0x5FDB +0x8FEA 0x5FDC +0x8FEB 0x5FDE +0x8FEC 0x5FDF +0x8FED 0x5FE2 +0x8FEE 0x5FE3 +0x8FEF 0x5FE5 +0x8FF0 0x5FE6 +0x8FF1 0x5FE8 +0x8FF2 0x5FE9 +0x8FF3 0x5FEC +0x8FF4 0x5FEF +0x8FF5 0x5FF0 +0x8FF6 0x5FF2 +0x8FF7 0x5FF3 +0x8FF8 0x5FF4 +0x8FF9 0x5FF6 +0x8FFA 0x5FF7 +0x8FFB 0x5FF9 +0x8FFC 0x5FFA +0x8FFD 0x5FFC +0x8FFE 0x6007 +0x9040 0x6008 +0x9041 0x6009 +0x9042 0x600B +0x9043 0x600C +0x9044 0x6010 +0x9045 0x6011 +0x9046 0x6013 +0x9047 0x6017 +0x9048 0x6018 +0x9049 0x601A +0x904A 0x601E +0x904B 0x601F +0x904C 0x6022 +0x904D 0x6023 +0x904E 0x6024 +0x904F 0x602C +0x9050 0x602D +0x9051 0x602E +0x9052 0x6030 +0x9053 0x6031 +0x9054 0x6032 +0x9055 0x6033 +0x9056 0x6034 +0x9057 0x6036 +0x9058 0x6037 +0x9059 0x6038 +0x905A 0x6039 +0x905B 0x603A +0x905C 0x603D +0x905D 0x603E +0x905E 0x6040 +0x905F 0x6044 +0x9060 0x6045 +0x9061 0x6046 +0x9062 0x6047 +0x9063 0x6048 +0x9064 0x6049 +0x9065 0x604A +0x9066 0x604C +0x9067 0x604E +0x9068 0x604F +0x9069 0x6051 +0x906A 0x6053 +0x906B 0x6054 +0x906C 0x6056 +0x906D 0x6057 +0x906E 0x6058 +0x906F 0x605B +0x9070 0x605C +0x9071 0x605E +0x9072 0x605F +0x9073 0x6060 +0x9074 0x6061 +0x9075 0x6065 +0x9076 0x6066 +0x9077 0x606E +0x9078 0x6071 +0x9079 0x6072 +0x907A 0x6074 +0x907B 0x6075 +0x907C 0x6077 +0x907D 0x607E +0x907E 0x6080 +0x9080 0x6081 +0x9081 0x6082 +0x9082 0x6085 +0x9083 0x6086 +0x9084 0x6087 +0x9085 0x6088 +0x9086 0x608A +0x9087 0x608B +0x9088 0x608E +0x9089 0x608F +0x908A 0x6090 +0x908B 0x6091 +0x908C 0x6093 +0x908D 0x6095 +0x908E 0x6097 +0x908F 0x6098 +0x9090 0x6099 +0x9091 0x609C +0x9092 0x609E +0x9093 0x60A1 +0x9094 0x60A2 +0x9095 0x60A4 +0x9096 0x60A5 +0x9097 0x60A7 +0x9098 0x60A9 +0x9099 0x60AA +0x909A 0x60AE +0x909B 0x60B0 +0x909C 0x60B3 +0x909D 0x60B5 +0x909E 0x60B6 +0x909F 0x60B7 +0x90A0 0x60B9 +0x90A1 0x60BA +0x90A2 0x60BD +0x90A3 0x60BE +0x90A4 0x60BF +0x90A5 0x60C0 +0x90A6 0x60C1 +0x90A7 0x60C2 +0x90A8 0x60C3 +0x90A9 0x60C4 +0x90AA 0x60C7 +0x90AB 0x60C8 +0x90AC 0x60C9 +0x90AD 0x60CC +0x90AE 0x60CD +0x90AF 0x60CE +0x90B0 0x60CF +0x90B1 0x60D0 +0x90B2 0x60D2 +0x90B3 0x60D3 +0x90B4 0x60D4 +0x90B5 0x60D6 +0x90B6 0x60D7 +0x90B7 0x60D9 +0x90B8 0x60DB +0x90B9 0x60DE +0x90BA 0x60E1 +0x90BB 0x60E2 +0x90BC 0x60E3 +0x90BD 0x60E4 +0x90BE 0x60E5 +0x90BF 0x60EA +0x90C0 0x60F1 +0x90C1 0x60F2 +0x90C2 0x60F5 +0x90C3 0x60F7 +0x90C4 0x60F8 +0x90C5 0x60FB +0x90C6 0x60FC +0x90C7 0x60FD +0x90C8 0x60FE +0x90C9 0x60FF +0x90CA 0x6102 +0x90CB 0x6103 +0x90CC 0x6104 +0x90CD 0x6105 +0x90CE 0x6107 +0x90CF 0x610A +0x90D0 0x610B +0x90D1 0x610C +0x90D2 0x6110 +0x90D3 0x6111 +0x90D4 0x6112 +0x90D5 0x6113 +0x90D6 0x6114 +0x90D7 0x6116 +0x90D8 0x6117 +0x90D9 0x6118 +0x90DA 0x6119 +0x90DB 0x611B +0x90DC 0x611C +0x90DD 0x611D +0x90DE 0x611E +0x90DF 0x6121 +0x90E0 0x6122 +0x90E1 0x6125 +0x90E2 0x6128 +0x90E3 0x6129 +0x90E4 0x612A +0x90E5 0x612C +0x90E6 0x612D +0x90E7 0x612E +0x90E8 0x612F +0x90E9 0x6130 +0x90EA 0x6131 +0x90EB 0x6132 +0x90EC 0x6133 +0x90ED 0x6134 +0x90EE 0x6135 +0x90EF 0x6136 +0x90F0 0x6137 +0x90F1 0x6138 +0x90F2 0x6139 +0x90F3 0x613A +0x90F4 0x613B +0x90F5 0x613C +0x90F6 0x613D +0x90F7 0x613E +0x90F8 0x6140 +0x90F9 0x6141 +0x90FA 0x6142 +0x90FB 0x6143 +0x90FC 0x6144 +0x90FD 0x6145 +0x90FE 0x6146 +0x9140 0x6147 +0x9141 0x6149 +0x9142 0x614B +0x9143 0x614D +0x9144 0x614F +0x9145 0x6150 +0x9146 0x6152 +0x9147 0x6153 +0x9148 0x6154 +0x9149 0x6156 +0x914A 0x6157 +0x914B 0x6158 +0x914C 0x6159 +0x914D 0x615A +0x914E 0x615B +0x914F 0x615C +0x9150 0x615E +0x9151 0x615F +0x9152 0x6160 +0x9153 0x6161 +0x9154 0x6163 +0x9155 0x6164 +0x9156 0x6165 +0x9157 0x6166 +0x9158 0x6169 +0x9159 0x616A +0x915A 0x616B +0x915B 0x616C +0x915C 0x616D +0x915D 0x616E +0x915E 0x616F +0x915F 0x6171 +0x9160 0x6172 +0x9161 0x6173 +0x9162 0x6174 +0x9163 0x6176 +0x9164 0x6178 +0x9165 0x6179 +0x9166 0x617A +0x9167 0x617B +0x9168 0x617C +0x9169 0x617D +0x916A 0x617E +0x916B 0x617F +0x916C 0x6180 +0x916D 0x6181 +0x916E 0x6182 +0x916F 0x6183 +0x9170 0x6184 +0x9171 0x6185 +0x9172 0x6186 +0x9173 0x6187 +0x9174 0x6188 +0x9175 0x6189 +0x9176 0x618A +0x9177 0x618C +0x9178 0x618D +0x9179 0x618F +0x917A 0x6190 +0x917B 0x6191 +0x917C 0x6192 +0x917D 0x6193 +0x917E 0x6195 +0x9180 0x6196 +0x9181 0x6197 +0x9182 0x6198 +0x9183 0x6199 +0x9184 0x619A +0x9185 0x619B +0x9186 0x619C +0x9187 0x619E +0x9188 0x619F +0x9189 0x61A0 +0x918A 0x61A1 +0x918B 0x61A2 +0x918C 0x61A3 +0x918D 0x61A4 +0x918E 0x61A5 +0x918F 0x61A6 +0x9190 0x61AA +0x9191 0x61AB +0x9192 0x61AD +0x9193 0x61AE +0x9194 0x61AF +0x9195 0x61B0 +0x9196 0x61B1 +0x9197 0x61B2 +0x9198 0x61B3 +0x9199 0x61B4 +0x919A 0x61B5 +0x919B 0x61B6 +0x919C 0x61B8 +0x919D 0x61B9 +0x919E 0x61BA +0x919F 0x61BB +0x91A0 0x61BC +0x91A1 0x61BD +0x91A2 0x61BF +0x91A3 0x61C0 +0x91A4 0x61C1 +0x91A5 0x61C3 +0x91A6 0x61C4 +0x91A7 0x61C5 +0x91A8 0x61C6 +0x91A9 0x61C7 +0x91AA 0x61C9 +0x91AB 0x61CC +0x91AC 0x61CD +0x91AD 0x61CE +0x91AE 0x61CF +0x91AF 0x61D0 +0x91B0 0x61D3 +0x91B1 0x61D5 +0x91B2 0x61D6 +0x91B3 0x61D7 +0x91B4 0x61D8 +0x91B5 0x61D9 +0x91B6 0x61DA +0x91B7 0x61DB +0x91B8 0x61DC +0x91B9 0x61DD +0x91BA 0x61DE +0x91BB 0x61DF +0x91BC 0x61E0 +0x91BD 0x61E1 +0x91BE 0x61E2 +0x91BF 0x61E3 +0x91C0 0x61E4 +0x91C1 0x61E5 +0x91C2 0x61E7 +0x91C3 0x61E8 +0x91C4 0x61E9 +0x91C5 0x61EA +0x91C6 0x61EB +0x91C7 0x61EC +0x91C8 0x61ED +0x91C9 0x61EE +0x91CA 0x61EF +0x91CB 0x61F0 +0x91CC 0x61F1 +0x91CD 0x61F2 +0x91CE 0x61F3 +0x91CF 0x61F4 +0x91D0 0x61F6 +0x91D1 0x61F7 +0x91D2 0x61F8 +0x91D3 0x61F9 +0x91D4 0x61FA +0x91D5 0x61FB +0x91D6 0x61FC +0x91D7 0x61FD +0x91D8 0x61FE +0x91D9 0x6200 +0x91DA 0x6201 +0x91DB 0x6202 +0x91DC 0x6203 +0x91DD 0x6204 +0x91DE 0x6205 +0x91DF 0x6207 +0x91E0 0x6209 +0x91E1 0x6213 +0x91E2 0x6214 +0x91E3 0x6219 +0x91E4 0x621C +0x91E5 0x621D +0x91E6 0x621E +0x91E7 0x6220 +0x91E8 0x6223 +0x91E9 0x6226 +0x91EA 0x6227 +0x91EB 0x6228 +0x91EC 0x6229 +0x91ED 0x622B +0x91EE 0x622D +0x91EF 0x622F +0x91F0 0x6230 +0x91F1 0x6231 +0x91F2 0x6232 +0x91F3 0x6235 +0x91F4 0x6236 +0x91F5 0x6238 +0x91F6 0x6239 +0x91F7 0x623A +0x91F8 0x623B +0x91F9 0x623C +0x91FA 0x6242 +0x91FB 0x6244 +0x91FC 0x6245 +0x91FD 0x6246 +0x91FE 0x624A +0x9240 0x624F +0x9241 0x6250 +0x9242 0x6255 +0x9243 0x6256 +0x9244 0x6257 +0x9245 0x6259 +0x9246 0x625A +0x9247 0x625C +0x9248 0x625D +0x9249 0x625E +0x924A 0x625F +0x924B 0x6260 +0x924C 0x6261 +0x924D 0x6262 +0x924E 0x6264 +0x924F 0x6265 +0x9250 0x6268 +0x9251 0x6271 +0x9252 0x6272 +0x9253 0x6274 +0x9254 0x6275 +0x9255 0x6277 +0x9256 0x6278 +0x9257 0x627A +0x9258 0x627B +0x9259 0x627D +0x925A 0x6281 +0x925B 0x6282 +0x925C 0x6283 +0x925D 0x6285 +0x925E 0x6286 +0x925F 0x6287 +0x9260 0x6288 +0x9261 0x628B +0x9262 0x628C +0x9263 0x628D +0x9264 0x628E +0x9265 0x628F +0x9266 0x6290 +0x9267 0x6294 +0x9268 0x6299 +0x9269 0x629C +0x926A 0x629D +0x926B 0x629E +0x926C 0x62A3 +0x926D 0x62A6 +0x926E 0x62A7 +0x926F 0x62A9 +0x9270 0x62AA +0x9271 0x62AD +0x9272 0x62AE +0x9273 0x62AF +0x9274 0x62B0 +0x9275 0x62B2 +0x9276 0x62B3 +0x9277 0x62B4 +0x9278 0x62B6 +0x9279 0x62B7 +0x927A 0x62B8 +0x927B 0x62BA +0x927C 0x62BE +0x927D 0x62C0 +0x927E 0x62C1 +0x9280 0x62C3 +0x9281 0x62CB +0x9282 0x62CF +0x9283 0x62D1 +0x9284 0x62D5 +0x9285 0x62DD +0x9286 0x62DE +0x9287 0x62E0 +0x9288 0x62E1 +0x9289 0x62E4 +0x928A 0x62EA +0x928B 0x62EB +0x928C 0x62F0 +0x928D 0x62F2 +0x928E 0x62F5 +0x928F 0x62F8 +0x9290 0x62F9 +0x9291 0x62FA +0x9292 0x62FB +0x9293 0x6300 +0x9294 0x6303 +0x9295 0x6304 +0x9296 0x6305 +0x9297 0x6306 +0x9298 0x630A +0x9299 0x630B +0x929A 0x630C +0x929B 0x630D +0x929C 0x630F +0x929D 0x6310 +0x929E 0x6312 +0x929F 0x6313 +0x92A0 0x6314 +0x92A1 0x6315 +0x92A2 0x6317 +0x92A3 0x6318 +0x92A4 0x6319 +0x92A5 0x631C +0x92A6 0x6326 +0x92A7 0x6327 +0x92A8 0x6329 +0x92A9 0x632C +0x92AA 0x632D +0x92AB 0x632E +0x92AC 0x6330 +0x92AD 0x6331 +0x92AE 0x6333 +0x92AF 0x6334 +0x92B0 0x6335 +0x92B1 0x6336 +0x92B2 0x6337 +0x92B3 0x6338 +0x92B4 0x633B +0x92B5 0x633C +0x92B6 0x633E +0x92B7 0x633F +0x92B8 0x6340 +0x92B9 0x6341 +0x92BA 0x6344 +0x92BB 0x6347 +0x92BC 0x6348 +0x92BD 0x634A +0x92BE 0x6351 +0x92BF 0x6352 +0x92C0 0x6353 +0x92C1 0x6354 +0x92C2 0x6356 +0x92C3 0x6357 +0x92C4 0x6358 +0x92C5 0x6359 +0x92C6 0x635A +0x92C7 0x635B +0x92C8 0x635C +0x92C9 0x635D +0x92CA 0x6360 +0x92CB 0x6364 +0x92CC 0x6365 +0x92CD 0x6366 +0x92CE 0x6368 +0x92CF 0x636A +0x92D0 0x636B +0x92D1 0x636C +0x92D2 0x636F +0x92D3 0x6370 +0x92D4 0x6372 +0x92D5 0x6373 +0x92D6 0x6374 +0x92D7 0x6375 +0x92D8 0x6378 +0x92D9 0x6379 +0x92DA 0x637C +0x92DB 0x637D +0x92DC 0x637E +0x92DD 0x637F +0x92DE 0x6381 +0x92DF 0x6383 +0x92E0 0x6384 +0x92E1 0x6385 +0x92E2 0x6386 +0x92E3 0x638B +0x92E4 0x638D +0x92E5 0x6391 +0x92E6 0x6393 +0x92E7 0x6394 +0x92E8 0x6395 +0x92E9 0x6397 +0x92EA 0x6399 +0x92EB 0x639A +0x92EC 0x639B +0x92ED 0x639C +0x92EE 0x639D +0x92EF 0x639E +0x92F0 0x639F +0x92F1 0x63A1 +0x92F2 0x63A4 +0x92F3 0x63A6 +0x92F4 0x63AB +0x92F5 0x63AF +0x92F6 0x63B1 +0x92F7 0x63B2 +0x92F8 0x63B5 +0x92F9 0x63B6 +0x92FA 0x63B9 +0x92FB 0x63BB +0x92FC 0x63BD +0x92FD 0x63BF +0x92FE 0x63C0 +0x9340 0x63C1 +0x9341 0x63C2 +0x9342 0x63C3 +0x9343 0x63C5 +0x9344 0x63C7 +0x9345 0x63C8 +0x9346 0x63CA +0x9347 0x63CB +0x9348 0x63CC +0x9349 0x63D1 +0x934A 0x63D3 +0x934B 0x63D4 +0x934C 0x63D5 +0x934D 0x63D7 +0x934E 0x63D8 +0x934F 0x63D9 +0x9350 0x63DA +0x9351 0x63DB +0x9352 0x63DC +0x9353 0x63DD +0x9354 0x63DF +0x9355 0x63E2 +0x9356 0x63E4 +0x9357 0x63E5 +0x9358 0x63E6 +0x9359 0x63E7 +0x935A 0x63E8 +0x935B 0x63EB +0x935C 0x63EC +0x935D 0x63EE +0x935E 0x63EF +0x935F 0x63F0 +0x9360 0x63F1 +0x9361 0x63F3 +0x9362 0x63F5 +0x9363 0x63F7 +0x9364 0x63F9 +0x9365 0x63FA +0x9366 0x63FB +0x9367 0x63FC +0x9368 0x63FE +0x9369 0x6403 +0x936A 0x6404 +0x936B 0x6406 +0x936C 0x6407 +0x936D 0x6408 +0x936E 0x6409 +0x936F 0x640A +0x9370 0x640D +0x9371 0x640E +0x9372 0x6411 +0x9373 0x6412 +0x9374 0x6415 +0x9375 0x6416 +0x9376 0x6417 +0x9377 0x6418 +0x9378 0x6419 +0x9379 0x641A +0x937A 0x641D +0x937B 0x641F +0x937C 0x6422 +0x937D 0x6423 +0x937E 0x6424 +0x9380 0x6425 +0x9381 0x6427 +0x9382 0x6428 +0x9383 0x6429 +0x9384 0x642B +0x9385 0x642E +0x9386 0x642F +0x9387 0x6430 +0x9388 0x6431 +0x9389 0x6432 +0x938A 0x6433 +0x938B 0x6435 +0x938C 0x6436 +0x938D 0x6437 +0x938E 0x6438 +0x938F 0x6439 +0x9390 0x643B +0x9391 0x643C +0x9392 0x643E +0x9393 0x6440 +0x9394 0x6442 +0x9395 0x6443 +0x9396 0x6449 +0x9397 0x644B +0x9398 0x644C +0x9399 0x644D +0x939A 0x644E +0x939B 0x644F +0x939C 0x6450 +0x939D 0x6451 +0x939E 0x6453 +0x939F 0x6455 +0x93A0 0x6456 +0x93A1 0x6457 +0x93A2 0x6459 +0x93A3 0x645A +0x93A4 0x645B +0x93A5 0x645C +0x93A6 0x645D +0x93A7 0x645F +0x93A8 0x6460 +0x93A9 0x6461 +0x93AA 0x6462 +0x93AB 0x6463 +0x93AC 0x6464 +0x93AD 0x6465 +0x93AE 0x6466 +0x93AF 0x6468 +0x93B0 0x646A +0x93B1 0x646B +0x93B2 0x646C +0x93B3 0x646E +0x93B4 0x646F +0x93B5 0x6470 +0x93B6 0x6471 +0x93B7 0x6472 +0x93B8 0x6473 +0x93B9 0x6474 +0x93BA 0x6475 +0x93BB 0x6476 +0x93BC 0x6477 +0x93BD 0x647B +0x93BE 0x647C +0x93BF 0x647D +0x93C0 0x647E +0x93C1 0x647F +0x93C2 0x6480 +0x93C3 0x6481 +0x93C4 0x6483 +0x93C5 0x6486 +0x93C6 0x6488 +0x93C7 0x6489 +0x93C8 0x648A +0x93C9 0x648B +0x93CA 0x648C +0x93CB 0x648D +0x93CC 0x648E +0x93CD 0x648F +0x93CE 0x6490 +0x93CF 0x6493 +0x93D0 0x6494 +0x93D1 0x6497 +0x93D2 0x6498 +0x93D3 0x649A +0x93D4 0x649B +0x93D5 0x649C +0x93D6 0x649D +0x93D7 0x649F +0x93D8 0x64A0 +0x93D9 0x64A1 +0x93DA 0x64A2 +0x93DB 0x64A3 +0x93DC 0x64A5 +0x93DD 0x64A6 +0x93DE 0x64A7 +0x93DF 0x64A8 +0x93E0 0x64AA +0x93E1 0x64AB +0x93E2 0x64AF +0x93E3 0x64B1 +0x93E4 0x64B2 +0x93E5 0x64B3 +0x93E6 0x64B4 +0x93E7 0x64B6 +0x93E8 0x64B9 +0x93E9 0x64BB +0x93EA 0x64BD +0x93EB 0x64BE +0x93EC 0x64BF +0x93ED 0x64C1 +0x93EE 0x64C3 +0x93EF 0x64C4 +0x93F0 0x64C6 +0x93F1 0x64C7 +0x93F2 0x64C8 +0x93F3 0x64C9 +0x93F4 0x64CA +0x93F5 0x64CB +0x93F6 0x64CC +0x93F7 0x64CF +0x93F8 0x64D1 +0x93F9 0x64D3 +0x93FA 0x64D4 +0x93FB 0x64D5 +0x93FC 0x64D6 +0x93FD 0x64D9 +0x93FE 0x64DA +0x9440 0x64DB +0x9441 0x64DC +0x9442 0x64DD +0x9443 0x64DF +0x9444 0x64E0 +0x9445 0x64E1 +0x9446 0x64E3 +0x9447 0x64E5 +0x9448 0x64E7 +0x9449 0x64E8 +0x944A 0x64E9 +0x944B 0x64EA +0x944C 0x64EB +0x944D 0x64EC +0x944E 0x64ED +0x944F 0x64EE +0x9450 0x64EF +0x9451 0x64F0 +0x9452 0x64F1 +0x9453 0x64F2 +0x9454 0x64F3 +0x9455 0x64F4 +0x9456 0x64F5 +0x9457 0x64F6 +0x9458 0x64F7 +0x9459 0x64F8 +0x945A 0x64F9 +0x945B 0x64FA +0x945C 0x64FB +0x945D 0x64FC +0x945E 0x64FD +0x945F 0x64FE +0x9460 0x64FF +0x9461 0x6501 +0x9462 0x6502 +0x9463 0x6503 +0x9464 0x6504 +0x9465 0x6505 +0x9466 0x6506 +0x9467 0x6507 +0x9468 0x6508 +0x9469 0x650A +0x946A 0x650B +0x946B 0x650C +0x946C 0x650D +0x946D 0x650E +0x946E 0x650F +0x946F 0x6510 +0x9470 0x6511 +0x9471 0x6513 +0x9472 0x6514 +0x9473 0x6515 +0x9474 0x6516 +0x9475 0x6517 +0x9476 0x6519 +0x9477 0x651A +0x9478 0x651B +0x9479 0x651C +0x947A 0x651D +0x947B 0x651E +0x947C 0x651F +0x947D 0x6520 +0x947E 0x6521 +0x9480 0x6522 +0x9481 0x6523 +0x9482 0x6524 +0x9483 0x6526 +0x9484 0x6527 +0x9485 0x6528 +0x9486 0x6529 +0x9487 0x652A +0x9488 0x652C +0x9489 0x652D +0x948A 0x6530 +0x948B 0x6531 +0x948C 0x6532 +0x948D 0x6533 +0x948E 0x6537 +0x948F 0x653A +0x9490 0x653C +0x9491 0x653D +0x9492 0x6540 +0x9493 0x6541 +0x9494 0x6542 +0x9495 0x6543 +0x9496 0x6544 +0x9497 0x6546 +0x9498 0x6547 +0x9499 0x654A +0x949A 0x654B +0x949B 0x654D +0x949C 0x654E +0x949D 0x6550 +0x949E 0x6552 +0x949F 0x6553 +0x94A0 0x6554 +0x94A1 0x6557 +0x94A2 0x6558 +0x94A3 0x655A +0x94A4 0x655C +0x94A5 0x655F +0x94A6 0x6560 +0x94A7 0x6561 +0x94A8 0x6564 +0x94A9 0x6565 +0x94AA 0x6567 +0x94AB 0x6568 +0x94AC 0x6569 +0x94AD 0x656A +0x94AE 0x656D +0x94AF 0x656E +0x94B0 0x656F +0x94B1 0x6571 +0x94B2 0x6573 +0x94B3 0x6575 +0x94B4 0x6576 +0x94B5 0x6578 +0x94B6 0x6579 +0x94B7 0x657A +0x94B8 0x657B +0x94B9 0x657C +0x94BA 0x657D +0x94BB 0x657E +0x94BC 0x657F +0x94BD 0x6580 +0x94BE 0x6581 +0x94BF 0x6582 +0x94C0 0x6583 +0x94C1 0x6584 +0x94C2 0x6585 +0x94C3 0x6586 +0x94C4 0x6588 +0x94C5 0x6589 +0x94C6 0x658A +0x94C7 0x658D +0x94C8 0x658E +0x94C9 0x658F +0x94CA 0x6592 +0x94CB 0x6594 +0x94CC 0x6595 +0x94CD 0x6596 +0x94CE 0x6598 +0x94CF 0x659A +0x94D0 0x659D +0x94D1 0x659E +0x94D2 0x65A0 +0x94D3 0x65A2 +0x94D4 0x65A3 +0x94D5 0x65A6 +0x94D6 0x65A8 +0x94D7 0x65AA +0x94D8 0x65AC +0x94D9 0x65AE +0x94DA 0x65B1 +0x94DB 0x65B2 +0x94DC 0x65B3 +0x94DD 0x65B4 +0x94DE 0x65B5 +0x94DF 0x65B6 +0x94E0 0x65B7 +0x94E1 0x65B8 +0x94E2 0x65BA +0x94E3 0x65BB +0x94E4 0x65BE +0x94E5 0x65BF +0x94E6 0x65C0 +0x94E7 0x65C2 +0x94E8 0x65C7 +0x94E9 0x65C8 +0x94EA 0x65C9 +0x94EB 0x65CA +0x94EC 0x65CD +0x94ED 0x65D0 +0x94EE 0x65D1 +0x94EF 0x65D3 +0x94F0 0x65D4 +0x94F1 0x65D5 +0x94F2 0x65D8 +0x94F3 0x65D9 +0x94F4 0x65DA +0x94F5 0x65DB +0x94F6 0x65DC +0x94F7 0x65DD +0x94F8 0x65DE +0x94F9 0x65DF +0x94FA 0x65E1 +0x94FB 0x65E3 +0x94FC 0x65E4 +0x94FD 0x65EA +0x94FE 0x65EB +0x9540 0x65F2 +0x9541 0x65F3 +0x9542 0x65F4 +0x9543 0x65F5 +0x9544 0x65F8 +0x9545 0x65F9 +0x9546 0x65FB +0x9547 0x65FC +0x9548 0x65FD +0x9549 0x65FE +0x954A 0x65FF +0x954B 0x6601 +0x954C 0x6604 +0x954D 0x6605 +0x954E 0x6607 +0x954F 0x6608 +0x9550 0x6609 +0x9551 0x660B +0x9552 0x660D +0x9553 0x6610 +0x9554 0x6611 +0x9555 0x6612 +0x9556 0x6616 +0x9557 0x6617 +0x9558 0x6618 +0x9559 0x661A +0x955A 0x661B +0x955B 0x661C +0x955C 0x661E +0x955D 0x6621 +0x955E 0x6622 +0x955F 0x6623 +0x9560 0x6624 +0x9561 0x6626 +0x9562 0x6629 +0x9563 0x662A +0x9564 0x662B +0x9565 0x662C +0x9566 0x662E +0x9567 0x6630 +0x9568 0x6632 +0x9569 0x6633 +0x956A 0x6637 +0x956B 0x6638 +0x956C 0x6639 +0x956D 0x663A +0x956E 0x663B +0x956F 0x663D +0x9570 0x663F +0x9571 0x6640 +0x9572 0x6642 +0x9573 0x6644 +0x9574 0x6645 +0x9575 0x6646 +0x9576 0x6647 +0x9577 0x6648 +0x9578 0x6649 +0x9579 0x664A +0x957A 0x664D +0x957B 0x664E +0x957C 0x6650 +0x957D 0x6651 +0x957E 0x6658 +0x9580 0x6659 +0x9581 0x665B +0x9582 0x665C +0x9583 0x665D +0x9584 0x665E +0x9585 0x6660 +0x9586 0x6662 +0x9587 0x6663 +0x9588 0x6665 +0x9589 0x6667 +0x958A 0x6669 +0x958B 0x666A +0x958C 0x666B +0x958D 0x666C +0x958E 0x666D +0x958F 0x6671 +0x9590 0x6672 +0x9591 0x6673 +0x9592 0x6675 +0x9593 0x6678 +0x9594 0x6679 +0x9595 0x667B +0x9596 0x667C +0x9597 0x667D +0x9598 0x667F +0x9599 0x6680 +0x959A 0x6681 +0x959B 0x6683 +0x959C 0x6685 +0x959D 0x6686 +0x959E 0x6688 +0x959F 0x6689 +0x95A0 0x668A +0x95A1 0x668B +0x95A2 0x668D +0x95A3 0x668E +0x95A4 0x668F +0x95A5 0x6690 +0x95A6 0x6692 +0x95A7 0x6693 +0x95A8 0x6694 +0x95A9 0x6695 +0x95AA 0x6698 +0x95AB 0x6699 +0x95AC 0x669A +0x95AD 0x669B +0x95AE 0x669C +0x95AF 0x669E +0x95B0 0x669F +0x95B1 0x66A0 +0x95B2 0x66A1 +0x95B3 0x66A2 +0x95B4 0x66A3 +0x95B5 0x66A4 +0x95B6 0x66A5 +0x95B7 0x66A6 +0x95B8 0x66A9 +0x95B9 0x66AA +0x95BA 0x66AB +0x95BB 0x66AC +0x95BC 0x66AD +0x95BD 0x66AF +0x95BE 0x66B0 +0x95BF 0x66B1 +0x95C0 0x66B2 +0x95C1 0x66B3 +0x95C2 0x66B5 +0x95C3 0x66B6 +0x95C4 0x66B7 +0x95C5 0x66B8 +0x95C6 0x66BA +0x95C7 0x66BB +0x95C8 0x66BC +0x95C9 0x66BD +0x95CA 0x66BF +0x95CB 0x66C0 +0x95CC 0x66C1 +0x95CD 0x66C2 +0x95CE 0x66C3 +0x95CF 0x66C4 +0x95D0 0x66C5 +0x95D1 0x66C6 +0x95D2 0x66C7 +0x95D3 0x66C8 +0x95D4 0x66C9 +0x95D5 0x66CA +0x95D6 0x66CB +0x95D7 0x66CC +0x95D8 0x66CD +0x95D9 0x66CE +0x95DA 0x66CF +0x95DB 0x66D0 +0x95DC 0x66D1 +0x95DD 0x66D2 +0x95DE 0x66D3 +0x95DF 0x66D4 +0x95E0 0x66D5 +0x95E1 0x66D6 +0x95E2 0x66D7 +0x95E3 0x66D8 +0x95E4 0x66DA +0x95E5 0x66DE +0x95E6 0x66DF +0x95E7 0x66E0 +0x95E8 0x66E1 +0x95E9 0x66E2 +0x95EA 0x66E3 +0x95EB 0x66E4 +0x95EC 0x66E5 +0x95ED 0x66E7 +0x95EE 0x66E8 +0x95EF 0x66EA +0x95F0 0x66EB +0x95F1 0x66EC +0x95F2 0x66ED +0x95F3 0x66EE +0x95F4 0x66EF +0x95F5 0x66F1 +0x95F6 0x66F5 +0x95F7 0x66F6 +0x95F8 0x66F8 +0x95F9 0x66FA +0x95FA 0x66FB +0x95FB 0x66FD +0x95FC 0x6701 +0x95FD 0x6702 +0x95FE 0x6703 +0x9640 0x6704 +0x9641 0x6705 +0x9642 0x6706 +0x9643 0x6707 +0x9644 0x670C +0x9645 0x670E +0x9646 0x670F +0x9647 0x6711 +0x9648 0x6712 +0x9649 0x6713 +0x964A 0x6716 +0x964B 0x6718 +0x964C 0x6719 +0x964D 0x671A +0x964E 0x671C +0x964F 0x671E +0x9650 0x6720 +0x9651 0x6721 +0x9652 0x6722 +0x9653 0x6723 +0x9654 0x6724 +0x9655 0x6725 +0x9656 0x6727 +0x9657 0x6729 +0x9658 0x672E +0x9659 0x6730 +0x965A 0x6732 +0x965B 0x6733 +0x965C 0x6736 +0x965D 0x6737 +0x965E 0x6738 +0x965F 0x6739 +0x9660 0x673B +0x9661 0x673C +0x9662 0x673E +0x9663 0x673F +0x9664 0x6741 +0x9665 0x6744 +0x9666 0x6745 +0x9667 0x6747 +0x9668 0x674A +0x9669 0x674B +0x966A 0x674D +0x966B 0x6752 +0x966C 0x6754 +0x966D 0x6755 +0x966E 0x6757 +0x966F 0x6758 +0x9670 0x6759 +0x9671 0x675A +0x9672 0x675B +0x9673 0x675D +0x9674 0x6762 +0x9675 0x6763 +0x9676 0x6764 +0x9677 0x6766 +0x9678 0x6767 +0x9679 0x676B +0x967A 0x676C +0x967B 0x676E +0x967C 0x6771 +0x967D 0x6774 +0x967E 0x6776 +0x9680 0x6778 +0x9681 0x6779 +0x9682 0x677A +0x9683 0x677B +0x9684 0x677D +0x9685 0x6780 +0x9686 0x6782 +0x9687 0x6783 +0x9688 0x6785 +0x9689 0x6786 +0x968A 0x6788 +0x968B 0x678A +0x968C 0x678C +0x968D 0x678D +0x968E 0x678E +0x968F 0x678F +0x9690 0x6791 +0x9691 0x6792 +0x9692 0x6793 +0x9693 0x6794 +0x9694 0x6796 +0x9695 0x6799 +0x9696 0x679B +0x9697 0x679F +0x9698 0x67A0 +0x9699 0x67A1 +0x969A 0x67A4 +0x969B 0x67A6 +0x969C 0x67A9 +0x969D 0x67AC +0x969E 0x67AE +0x969F 0x67B1 +0x96A0 0x67B2 +0x96A1 0x67B4 +0x96A2 0x67B9 +0x96A3 0x67BA +0x96A4 0x67BB +0x96A5 0x67BC +0x96A6 0x67BD +0x96A7 0x67BE +0x96A8 0x67BF +0x96A9 0x67C0 +0x96AA 0x67C2 +0x96AB 0x67C5 +0x96AC 0x67C6 +0x96AD 0x67C7 +0x96AE 0x67C8 +0x96AF 0x67C9 +0x96B0 0x67CA +0x96B1 0x67CB +0x96B2 0x67CC +0x96B3 0x67CD +0x96B4 0x67CE +0x96B5 0x67D5 +0x96B6 0x67D6 +0x96B7 0x67D7 +0x96B8 0x67DB +0x96B9 0x67DF +0x96BA 0x67E1 +0x96BB 0x67E3 +0x96BC 0x67E4 +0x96BD 0x67E6 +0x96BE 0x67E7 +0x96BF 0x67E8 +0x96C0 0x67EA +0x96C1 0x67EB +0x96C2 0x67ED +0x96C3 0x67EE +0x96C4 0x67F2 +0x96C5 0x67F5 +0x96C6 0x67F6 +0x96C7 0x67F7 +0x96C8 0x67F8 +0x96C9 0x67F9 +0x96CA 0x67FA +0x96CB 0x67FB +0x96CC 0x67FC +0x96CD 0x67FE +0x96CE 0x6801 +0x96CF 0x6802 +0x96D0 0x6803 +0x96D1 0x6804 +0x96D2 0x6806 +0x96D3 0x680D +0x96D4 0x6810 +0x96D5 0x6812 +0x96D6 0x6814 +0x96D7 0x6815 +0x96D8 0x6818 +0x96D9 0x6819 +0x96DA 0x681A +0x96DB 0x681B +0x96DC 0x681C +0x96DD 0x681E +0x96DE 0x681F +0x96DF 0x6820 +0x96E0 0x6822 +0x96E1 0x6823 +0x96E2 0x6824 +0x96E3 0x6825 +0x96E4 0x6826 +0x96E5 0x6827 +0x96E6 0x6828 +0x96E7 0x682B +0x96E8 0x682C +0x96E9 0x682D +0x96EA 0x682E +0x96EB 0x682F +0x96EC 0x6830 +0x96ED 0x6831 +0x96EE 0x6834 +0x96EF 0x6835 +0x96F0 0x6836 +0x96F1 0x683A +0x96F2 0x683B +0x96F3 0x683F +0x96F4 0x6847 +0x96F5 0x684B +0x96F6 0x684D +0x96F7 0x684F +0x96F8 0x6852 +0x96F9 0x6856 +0x96FA 0x6857 +0x96FB 0x6858 +0x96FC 0x6859 +0x96FD 0x685A +0x96FE 0x685B +0x9740 0x685C +0x9741 0x685D +0x9742 0x685E +0x9743 0x685F +0x9744 0x686A +0x9745 0x686C +0x9746 0x686D +0x9747 0x686E +0x9748 0x686F +0x9749 0x6870 +0x974A 0x6871 +0x974B 0x6872 +0x974C 0x6873 +0x974D 0x6875 +0x974E 0x6878 +0x974F 0x6879 +0x9750 0x687A +0x9751 0x687B +0x9752 0x687C +0x9753 0x687D +0x9754 0x687E +0x9755 0x687F +0x9756 0x6880 +0x9757 0x6882 +0x9758 0x6884 +0x9759 0x6887 +0x975A 0x6888 +0x975B 0x6889 +0x975C 0x688A +0x975D 0x688B +0x975E 0x688C +0x975F 0x688D +0x9760 0x688E +0x9761 0x6890 +0x9762 0x6891 +0x9763 0x6892 +0x9764 0x6894 +0x9765 0x6895 +0x9766 0x6896 +0x9767 0x6898 +0x9768 0x6899 +0x9769 0x689A +0x976A 0x689B +0x976B 0x689C +0x976C 0x689D +0x976D 0x689E +0x976E 0x689F +0x976F 0x68A0 +0x9770 0x68A1 +0x9771 0x68A3 +0x9772 0x68A4 +0x9773 0x68A5 +0x9774 0x68A9 +0x9775 0x68AA +0x9776 0x68AB +0x9777 0x68AC +0x9778 0x68AE +0x9779 0x68B1 +0x977A 0x68B2 +0x977B 0x68B4 +0x977C 0x68B6 +0x977D 0x68B7 +0x977E 0x68B8 +0x9780 0x68B9 +0x9781 0x68BA +0x9782 0x68BB +0x9783 0x68BC +0x9784 0x68BD +0x9785 0x68BE +0x9786 0x68BF +0x9787 0x68C1 +0x9788 0x68C3 +0x9789 0x68C4 +0x978A 0x68C5 +0x978B 0x68C6 +0x978C 0x68C7 +0x978D 0x68C8 +0x978E 0x68CA +0x978F 0x68CC +0x9790 0x68CE +0x9791 0x68CF +0x9792 0x68D0 +0x9793 0x68D1 +0x9794 0x68D3 +0x9795 0x68D4 +0x9796 0x68D6 +0x9797 0x68D7 +0x9798 0x68D9 +0x9799 0x68DB +0x979A 0x68DC +0x979B 0x68DD +0x979C 0x68DE +0x979D 0x68DF +0x979E 0x68E1 +0x979F 0x68E2 +0x97A0 0x68E4 +0x97A1 0x68E5 +0x97A2 0x68E6 +0x97A3 0x68E7 +0x97A4 0x68E8 +0x97A5 0x68E9 +0x97A6 0x68EA +0x97A7 0x68EB +0x97A8 0x68EC +0x97A9 0x68ED +0x97AA 0x68EF +0x97AB 0x68F2 +0x97AC 0x68F3 +0x97AD 0x68F4 +0x97AE 0x68F6 +0x97AF 0x68F7 +0x97B0 0x68F8 +0x97B1 0x68FB +0x97B2 0x68FD +0x97B3 0x68FE +0x97B4 0x68FF +0x97B5 0x6900 +0x97B6 0x6902 +0x97B7 0x6903 +0x97B8 0x6904 +0x97B9 0x6906 +0x97BA 0x6907 +0x97BB 0x6908 +0x97BC 0x6909 +0x97BD 0x690A +0x97BE 0x690C +0x97BF 0x690F +0x97C0 0x6911 +0x97C1 0x6913 +0x97C2 0x6914 +0x97C3 0x6915 +0x97C4 0x6916 +0x97C5 0x6917 +0x97C6 0x6918 +0x97C7 0x6919 +0x97C8 0x691A +0x97C9 0x691B +0x97CA 0x691C +0x97CB 0x691D +0x97CC 0x691E +0x97CD 0x6921 +0x97CE 0x6922 +0x97CF 0x6923 +0x97D0 0x6925 +0x97D1 0x6926 +0x97D2 0x6927 +0x97D3 0x6928 +0x97D4 0x6929 +0x97D5 0x692A +0x97D6 0x692B +0x97D7 0x692C +0x97D8 0x692E +0x97D9 0x692F +0x97DA 0x6931 +0x97DB 0x6932 +0x97DC 0x6933 +0x97DD 0x6935 +0x97DE 0x6936 +0x97DF 0x6937 +0x97E0 0x6938 +0x97E1 0x693A +0x97E2 0x693B +0x97E3 0x693C +0x97E4 0x693E +0x97E5 0x6940 +0x97E6 0x6941 +0x97E7 0x6943 +0x97E8 0x6944 +0x97E9 0x6945 +0x97EA 0x6946 +0x97EB 0x6947 +0x97EC 0x6948 +0x97ED 0x6949 +0x97EE 0x694A +0x97EF 0x694B +0x97F0 0x694C +0x97F1 0x694D +0x97F2 0x694E +0x97F3 0x694F +0x97F4 0x6950 +0x97F5 0x6951 +0x97F6 0x6952 +0x97F7 0x6953 +0x97F8 0x6955 +0x97F9 0x6956 +0x97FA 0x6958 +0x97FB 0x6959 +0x97FC 0x695B +0x97FD 0x695C +0x97FE 0x695F +0x9840 0x6961 +0x9841 0x6962 +0x9842 0x6964 +0x9843 0x6965 +0x9844 0x6967 +0x9845 0x6968 +0x9846 0x6969 +0x9847 0x696A +0x9848 0x696C +0x9849 0x696D +0x984A 0x696F +0x984B 0x6970 +0x984C 0x6972 +0x984D 0x6973 +0x984E 0x6974 +0x984F 0x6975 +0x9850 0x6976 +0x9851 0x697A +0x9852 0x697B +0x9853 0x697D +0x9854 0x697E +0x9855 0x697F +0x9856 0x6981 +0x9857 0x6983 +0x9858 0x6985 +0x9859 0x698A +0x985A 0x698B +0x985B 0x698C +0x985C 0x698E +0x985D 0x698F +0x985E 0x6990 +0x985F 0x6991 +0x9860 0x6992 +0x9861 0x6993 +0x9862 0x6996 +0x9863 0x6997 +0x9864 0x6999 +0x9865 0x699A +0x9866 0x699D +0x9867 0x699E +0x9868 0x699F +0x9869 0x69A0 +0x986A 0x69A1 +0x986B 0x69A2 +0x986C 0x69A3 +0x986D 0x69A4 +0x986E 0x69A5 +0x986F 0x69A6 +0x9870 0x69A9 +0x9871 0x69AA +0x9872 0x69AC +0x9873 0x69AE +0x9874 0x69AF +0x9875 0x69B0 +0x9876 0x69B2 +0x9877 0x69B3 +0x9878 0x69B5 +0x9879 0x69B6 +0x987A 0x69B8 +0x987B 0x69B9 +0x987C 0x69BA +0x987D 0x69BC +0x987E 0x69BD +0x9880 0x69BE +0x9881 0x69BF +0x9882 0x69C0 +0x9883 0x69C2 +0x9884 0x69C3 +0x9885 0x69C4 +0x9886 0x69C5 +0x9887 0x69C6 +0x9888 0x69C7 +0x9889 0x69C8 +0x988A 0x69C9 +0x988B 0x69CB +0x988C 0x69CD +0x988D 0x69CF +0x988E 0x69D1 +0x988F 0x69D2 +0x9890 0x69D3 +0x9891 0x69D5 +0x9892 0x69D6 +0x9893 0x69D7 +0x9894 0x69D8 +0x9895 0x69D9 +0x9896 0x69DA +0x9897 0x69DC +0x9898 0x69DD +0x9899 0x69DE +0x989A 0x69E1 +0x989B 0x69E2 +0x989C 0x69E3 +0x989D 0x69E4 +0x989E 0x69E5 +0x989F 0x69E6 +0x98A0 0x69E7 +0x98A1 0x69E8 +0x98A2 0x69E9 +0x98A3 0x69EA +0x98A4 0x69EB +0x98A5 0x69EC +0x98A6 0x69EE +0x98A7 0x69EF +0x98A8 0x69F0 +0x98A9 0x69F1 +0x98AA 0x69F3 +0x98AB 0x69F4 +0x98AC 0x69F5 +0x98AD 0x69F6 +0x98AE 0x69F7 +0x98AF 0x69F8 +0x98B0 0x69F9 +0x98B1 0x69FA +0x98B2 0x69FB +0x98B3 0x69FC +0x98B4 0x69FE +0x98B5 0x6A00 +0x98B6 0x6A01 +0x98B7 0x6A02 +0x98B8 0x6A03 +0x98B9 0x6A04 +0x98BA 0x6A05 +0x98BB 0x6A06 +0x98BC 0x6A07 +0x98BD 0x6A08 +0x98BE 0x6A09 +0x98BF 0x6A0B +0x98C0 0x6A0C +0x98C1 0x6A0D +0x98C2 0x6A0E +0x98C3 0x6A0F +0x98C4 0x6A10 +0x98C5 0x6A11 +0x98C6 0x6A12 +0x98C7 0x6A13 +0x98C8 0x6A14 +0x98C9 0x6A15 +0x98CA 0x6A16 +0x98CB 0x6A19 +0x98CC 0x6A1A +0x98CD 0x6A1B +0x98CE 0x6A1C +0x98CF 0x6A1D +0x98D0 0x6A1E +0x98D1 0x6A20 +0x98D2 0x6A22 +0x98D3 0x6A23 +0x98D4 0x6A24 +0x98D5 0x6A25 +0x98D6 0x6A26 +0x98D7 0x6A27 +0x98D8 0x6A29 +0x98D9 0x6A2B +0x98DA 0x6A2C +0x98DB 0x6A2D +0x98DC 0x6A2E +0x98DD 0x6A30 +0x98DE 0x6A32 +0x98DF 0x6A33 +0x98E0 0x6A34 +0x98E1 0x6A36 +0x98E2 0x6A37 +0x98E3 0x6A38 +0x98E4 0x6A39 +0x98E5 0x6A3A +0x98E6 0x6A3B +0x98E7 0x6A3C +0x98E8 0x6A3F +0x98E9 0x6A40 +0x98EA 0x6A41 +0x98EB 0x6A42 +0x98EC 0x6A43 +0x98ED 0x6A45 +0x98EE 0x6A46 +0x98EF 0x6A48 +0x98F0 0x6A49 +0x98F1 0x6A4A +0x98F2 0x6A4B +0x98F3 0x6A4C +0x98F4 0x6A4D +0x98F5 0x6A4E +0x98F6 0x6A4F +0x98F7 0x6A51 +0x98F8 0x6A52 +0x98F9 0x6A53 +0x98FA 0x6A54 +0x98FB 0x6A55 +0x98FC 0x6A56 +0x98FD 0x6A57 +0x98FE 0x6A5A +0x9940 0x6A5C +0x9941 0x6A5D +0x9942 0x6A5E +0x9943 0x6A5F +0x9944 0x6A60 +0x9945 0x6A62 +0x9946 0x6A63 +0x9947 0x6A64 +0x9948 0x6A66 +0x9949 0x6A67 +0x994A 0x6A68 +0x994B 0x6A69 +0x994C 0x6A6A +0x994D 0x6A6B +0x994E 0x6A6C +0x994F 0x6A6D +0x9950 0x6A6E +0x9951 0x6A6F +0x9952 0x6A70 +0x9953 0x6A72 +0x9954 0x6A73 +0x9955 0x6A74 +0x9956 0x6A75 +0x9957 0x6A76 +0x9958 0x6A77 +0x9959 0x6A78 +0x995A 0x6A7A +0x995B 0x6A7B +0x995C 0x6A7D +0x995D 0x6A7E +0x995E 0x6A7F +0x995F 0x6A81 +0x9960 0x6A82 +0x9961 0x6A83 +0x9962 0x6A85 +0x9963 0x6A86 +0x9964 0x6A87 +0x9965 0x6A88 +0x9966 0x6A89 +0x9967 0x6A8A +0x9968 0x6A8B +0x9969 0x6A8C +0x996A 0x6A8D +0x996B 0x6A8F +0x996C 0x6A92 +0x996D 0x6A93 +0x996E 0x6A94 +0x996F 0x6A95 +0x9970 0x6A96 +0x9971 0x6A98 +0x9972 0x6A99 +0x9973 0x6A9A +0x9974 0x6A9B +0x9975 0x6A9C +0x9976 0x6A9D +0x9977 0x6A9E +0x9978 0x6A9F +0x9979 0x6AA1 +0x997A 0x6AA2 +0x997B 0x6AA3 +0x997C 0x6AA4 +0x997D 0x6AA5 +0x997E 0x6AA6 +0x9980 0x6AA7 +0x9981 0x6AA8 +0x9982 0x6AAA +0x9983 0x6AAD +0x9984 0x6AAE +0x9985 0x6AAF +0x9986 0x6AB0 +0x9987 0x6AB1 +0x9988 0x6AB2 +0x9989 0x6AB3 +0x998A 0x6AB4 +0x998B 0x6AB5 +0x998C 0x6AB6 +0x998D 0x6AB7 +0x998E 0x6AB8 +0x998F 0x6AB9 +0x9990 0x6ABA +0x9991 0x6ABB +0x9992 0x6ABC +0x9993 0x6ABD +0x9994 0x6ABE +0x9995 0x6ABF +0x9996 0x6AC0 +0x9997 0x6AC1 +0x9998 0x6AC2 +0x9999 0x6AC3 +0x999A 0x6AC4 +0x999B 0x6AC5 +0x999C 0x6AC6 +0x999D 0x6AC7 +0x999E 0x6AC8 +0x999F 0x6AC9 +0x99A0 0x6ACA +0x99A1 0x6ACB +0x99A2 0x6ACC +0x99A3 0x6ACD +0x99A4 0x6ACE +0x99A5 0x6ACF +0x99A6 0x6AD0 +0x99A7 0x6AD1 +0x99A8 0x6AD2 +0x99A9 0x6AD3 +0x99AA 0x6AD4 +0x99AB 0x6AD5 +0x99AC 0x6AD6 +0x99AD 0x6AD7 +0x99AE 0x6AD8 +0x99AF 0x6AD9 +0x99B0 0x6ADA +0x99B1 0x6ADB +0x99B2 0x6ADC +0x99B3 0x6ADD +0x99B4 0x6ADE +0x99B5 0x6ADF +0x99B6 0x6AE0 +0x99B7 0x6AE1 +0x99B8 0x6AE2 +0x99B9 0x6AE3 +0x99BA 0x6AE4 +0x99BB 0x6AE5 +0x99BC 0x6AE6 +0x99BD 0x6AE7 +0x99BE 0x6AE8 +0x99BF 0x6AE9 +0x99C0 0x6AEA +0x99C1 0x6AEB +0x99C2 0x6AEC +0x99C3 0x6AED +0x99C4 0x6AEE +0x99C5 0x6AEF +0x99C6 0x6AF0 +0x99C7 0x6AF1 +0x99C8 0x6AF2 +0x99C9 0x6AF3 +0x99CA 0x6AF4 +0x99CB 0x6AF5 +0x99CC 0x6AF6 +0x99CD 0x6AF7 +0x99CE 0x6AF8 +0x99CF 0x6AF9 +0x99D0 0x6AFA +0x99D1 0x6AFB +0x99D2 0x6AFC +0x99D3 0x6AFD +0x99D4 0x6AFE +0x99D5 0x6AFF +0x99D6 0x6B00 +0x99D7 0x6B01 +0x99D8 0x6B02 +0x99D9 0x6B03 +0x99DA 0x6B04 +0x99DB 0x6B05 +0x99DC 0x6B06 +0x99DD 0x6B07 +0x99DE 0x6B08 +0x99DF 0x6B09 +0x99E0 0x6B0A +0x99E1 0x6B0B +0x99E2 0x6B0C +0x99E3 0x6B0D +0x99E4 0x6B0E +0x99E5 0x6B0F +0x99E6 0x6B10 +0x99E7 0x6B11 +0x99E8 0x6B12 +0x99E9 0x6B13 +0x99EA 0x6B14 +0x99EB 0x6B15 +0x99EC 0x6B16 +0x99ED 0x6B17 +0x99EE 0x6B18 +0x99EF 0x6B19 +0x99F0 0x6B1A +0x99F1 0x6B1B +0x99F2 0x6B1C +0x99F3 0x6B1D +0x99F4 0x6B1E +0x99F5 0x6B1F +0x99F6 0x6B25 +0x99F7 0x6B26 +0x99F8 0x6B28 +0x99F9 0x6B29 +0x99FA 0x6B2A +0x99FB 0x6B2B +0x99FC 0x6B2C +0x99FD 0x6B2D +0x99FE 0x6B2E +0x9A40 0x6B2F +0x9A41 0x6B30 +0x9A42 0x6B31 +0x9A43 0x6B33 +0x9A44 0x6B34 +0x9A45 0x6B35 +0x9A46 0x6B36 +0x9A47 0x6B38 +0x9A48 0x6B3B +0x9A49 0x6B3C +0x9A4A 0x6B3D +0x9A4B 0x6B3F +0x9A4C 0x6B40 +0x9A4D 0x6B41 +0x9A4E 0x6B42 +0x9A4F 0x6B44 +0x9A50 0x6B45 +0x9A51 0x6B48 +0x9A52 0x6B4A +0x9A53 0x6B4B +0x9A54 0x6B4D +0x9A55 0x6B4E +0x9A56 0x6B4F +0x9A57 0x6B50 +0x9A58 0x6B51 +0x9A59 0x6B52 +0x9A5A 0x6B53 +0x9A5B 0x6B54 +0x9A5C 0x6B55 +0x9A5D 0x6B56 +0x9A5E 0x6B57 +0x9A5F 0x6B58 +0x9A60 0x6B5A +0x9A61 0x6B5B +0x9A62 0x6B5C +0x9A63 0x6B5D +0x9A64 0x6B5E +0x9A65 0x6B5F +0x9A66 0x6B60 +0x9A67 0x6B61 +0x9A68 0x6B68 +0x9A69 0x6B69 +0x9A6A 0x6B6B +0x9A6B 0x6B6C +0x9A6C 0x6B6D +0x9A6D 0x6B6E +0x9A6E 0x6B6F +0x9A6F 0x6B70 +0x9A70 0x6B71 +0x9A71 0x6B72 +0x9A72 0x6B73 +0x9A73 0x6B74 +0x9A74 0x6B75 +0x9A75 0x6B76 +0x9A76 0x6B77 +0x9A77 0x6B78 +0x9A78 0x6B7A +0x9A79 0x6B7D +0x9A7A 0x6B7E +0x9A7B 0x6B7F +0x9A7C 0x6B80 +0x9A7D 0x6B85 +0x9A7E 0x6B88 +0x9A80 0x6B8C +0x9A81 0x6B8E +0x9A82 0x6B8F +0x9A83 0x6B90 +0x9A84 0x6B91 +0x9A85 0x6B94 +0x9A86 0x6B95 +0x9A87 0x6B97 +0x9A88 0x6B98 +0x9A89 0x6B99 +0x9A8A 0x6B9C +0x9A8B 0x6B9D +0x9A8C 0x6B9E +0x9A8D 0x6B9F +0x9A8E 0x6BA0 +0x9A8F 0x6BA2 +0x9A90 0x6BA3 +0x9A91 0x6BA4 +0x9A92 0x6BA5 +0x9A93 0x6BA6 +0x9A94 0x6BA7 +0x9A95 0x6BA8 +0x9A96 0x6BA9 +0x9A97 0x6BAB +0x9A98 0x6BAC +0x9A99 0x6BAD +0x9A9A 0x6BAE +0x9A9B 0x6BAF +0x9A9C 0x6BB0 +0x9A9D 0x6BB1 +0x9A9E 0x6BB2 +0x9A9F 0x6BB6 +0x9AA0 0x6BB8 +0x9AA1 0x6BB9 +0x9AA2 0x6BBA +0x9AA3 0x6BBB +0x9AA4 0x6BBC +0x9AA5 0x6BBD +0x9AA6 0x6BBE +0x9AA7 0x6BC0 +0x9AA8 0x6BC3 +0x9AA9 0x6BC4 +0x9AAA 0x6BC6 +0x9AAB 0x6BC7 +0x9AAC 0x6BC8 +0x9AAD 0x6BC9 +0x9AAE 0x6BCA +0x9AAF 0x6BCC +0x9AB0 0x6BCE +0x9AB1 0x6BD0 +0x9AB2 0x6BD1 +0x9AB3 0x6BD8 +0x9AB4 0x6BDA +0x9AB5 0x6BDC +0x9AB6 0x6BDD +0x9AB7 0x6BDE +0x9AB8 0x6BDF +0x9AB9 0x6BE0 +0x9ABA 0x6BE2 +0x9ABB 0x6BE3 +0x9ABC 0x6BE4 +0x9ABD 0x6BE5 +0x9ABE 0x6BE6 +0x9ABF 0x6BE7 +0x9AC0 0x6BE8 +0x9AC1 0x6BE9 +0x9AC2 0x6BEC +0x9AC3 0x6BED +0x9AC4 0x6BEE +0x9AC5 0x6BF0 +0x9AC6 0x6BF1 +0x9AC7 0x6BF2 +0x9AC8 0x6BF4 +0x9AC9 0x6BF6 +0x9ACA 0x6BF7 +0x9ACB 0x6BF8 +0x9ACC 0x6BFA +0x9ACD 0x6BFB +0x9ACE 0x6BFC +0x9ACF 0x6BFE +0x9AD0 0x6BFF +0x9AD1 0x6C00 +0x9AD2 0x6C01 +0x9AD3 0x6C02 +0x9AD4 0x6C03 +0x9AD5 0x6C04 +0x9AD6 0x6C08 +0x9AD7 0x6C09 +0x9AD8 0x6C0A +0x9AD9 0x6C0B +0x9ADA 0x6C0C +0x9ADB 0x6C0E +0x9ADC 0x6C12 +0x9ADD 0x6C17 +0x9ADE 0x6C1C +0x9ADF 0x6C1D +0x9AE0 0x6C1E +0x9AE1 0x6C20 +0x9AE2 0x6C23 +0x9AE3 0x6C25 +0x9AE4 0x6C2B +0x9AE5 0x6C2C +0x9AE6 0x6C2D +0x9AE7 0x6C31 +0x9AE8 0x6C33 +0x9AE9 0x6C36 +0x9AEA 0x6C37 +0x9AEB 0x6C39 +0x9AEC 0x6C3A +0x9AED 0x6C3B +0x9AEE 0x6C3C +0x9AEF 0x6C3E +0x9AF0 0x6C3F +0x9AF1 0x6C43 +0x9AF2 0x6C44 +0x9AF3 0x6C45 +0x9AF4 0x6C48 +0x9AF5 0x6C4B +0x9AF6 0x6C4C +0x9AF7 0x6C4D +0x9AF8 0x6C4E +0x9AF9 0x6C4F +0x9AFA 0x6C51 +0x9AFB 0x6C52 +0x9AFC 0x6C53 +0x9AFD 0x6C56 +0x9AFE 0x6C58 +0x9B40 0x6C59 +0x9B41 0x6C5A +0x9B42 0x6C62 +0x9B43 0x6C63 +0x9B44 0x6C65 +0x9B45 0x6C66 +0x9B46 0x6C67 +0x9B47 0x6C6B +0x9B48 0x6C6C +0x9B49 0x6C6D +0x9B4A 0x6C6E +0x9B4B 0x6C6F +0x9B4C 0x6C71 +0x9B4D 0x6C73 +0x9B4E 0x6C75 +0x9B4F 0x6C77 +0x9B50 0x6C78 +0x9B51 0x6C7A +0x9B52 0x6C7B +0x9B53 0x6C7C +0x9B54 0x6C7F +0x9B55 0x6C80 +0x9B56 0x6C84 +0x9B57 0x6C87 +0x9B58 0x6C8A +0x9B59 0x6C8B +0x9B5A 0x6C8D +0x9B5B 0x6C8E +0x9B5C 0x6C91 +0x9B5D 0x6C92 +0x9B5E 0x6C95 +0x9B5F 0x6C96 +0x9B60 0x6C97 +0x9B61 0x6C98 +0x9B62 0x6C9A +0x9B63 0x6C9C +0x9B64 0x6C9D +0x9B65 0x6C9E +0x9B66 0x6CA0 +0x9B67 0x6CA2 +0x9B68 0x6CA8 +0x9B69 0x6CAC +0x9B6A 0x6CAF +0x9B6B 0x6CB0 +0x9B6C 0x6CB4 +0x9B6D 0x6CB5 +0x9B6E 0x6CB6 +0x9B6F 0x6CB7 +0x9B70 0x6CBA +0x9B71 0x6CC0 +0x9B72 0x6CC1 +0x9B73 0x6CC2 +0x9B74 0x6CC3 +0x9B75 0x6CC6 +0x9B76 0x6CC7 +0x9B77 0x6CC8 +0x9B78 0x6CCB +0x9B79 0x6CCD +0x9B7A 0x6CCE +0x9B7B 0x6CCF +0x9B7C 0x6CD1 +0x9B7D 0x6CD2 +0x9B7E 0x6CD8 +0x9B80 0x6CD9 +0x9B81 0x6CDA +0x9B82 0x6CDC +0x9B83 0x6CDD +0x9B84 0x6CDF +0x9B85 0x6CE4 +0x9B86 0x6CE6 +0x9B87 0x6CE7 +0x9B88 0x6CE9 +0x9B89 0x6CEC +0x9B8A 0x6CED +0x9B8B 0x6CF2 +0x9B8C 0x6CF4 +0x9B8D 0x6CF9 +0x9B8E 0x6CFF +0x9B8F 0x6D00 +0x9B90 0x6D02 +0x9B91 0x6D03 +0x9B92 0x6D05 +0x9B93 0x6D06 +0x9B94 0x6D08 +0x9B95 0x6D09 +0x9B96 0x6D0A +0x9B97 0x6D0D +0x9B98 0x6D0F +0x9B99 0x6D10 +0x9B9A 0x6D11 +0x9B9B 0x6D13 +0x9B9C 0x6D14 +0x9B9D 0x6D15 +0x9B9E 0x6D16 +0x9B9F 0x6D18 +0x9BA0 0x6D1C +0x9BA1 0x6D1D +0x9BA2 0x6D1F +0x9BA3 0x6D20 +0x9BA4 0x6D21 +0x9BA5 0x6D22 +0x9BA6 0x6D23 +0x9BA7 0x6D24 +0x9BA8 0x6D26 +0x9BA9 0x6D28 +0x9BAA 0x6D29 +0x9BAB 0x6D2C +0x9BAC 0x6D2D +0x9BAD 0x6D2F +0x9BAE 0x6D30 +0x9BAF 0x6D34 +0x9BB0 0x6D36 +0x9BB1 0x6D37 +0x9BB2 0x6D38 +0x9BB3 0x6D3A +0x9BB4 0x6D3F +0x9BB5 0x6D40 +0x9BB6 0x6D42 +0x9BB7 0x6D44 +0x9BB8 0x6D49 +0x9BB9 0x6D4C +0x9BBA 0x6D50 +0x9BBB 0x6D55 +0x9BBC 0x6D56 +0x9BBD 0x6D57 +0x9BBE 0x6D58 +0x9BBF 0x6D5B +0x9BC0 0x6D5D +0x9BC1 0x6D5F +0x9BC2 0x6D61 +0x9BC3 0x6D62 +0x9BC4 0x6D64 +0x9BC5 0x6D65 +0x9BC6 0x6D67 +0x9BC7 0x6D68 +0x9BC8 0x6D6B +0x9BC9 0x6D6C +0x9BCA 0x6D6D +0x9BCB 0x6D70 +0x9BCC 0x6D71 +0x9BCD 0x6D72 +0x9BCE 0x6D73 +0x9BCF 0x6D75 +0x9BD0 0x6D76 +0x9BD1 0x6D79 +0x9BD2 0x6D7A +0x9BD3 0x6D7B +0x9BD4 0x6D7D +0x9BD5 0x6D7E +0x9BD6 0x6D7F +0x9BD7 0x6D80 +0x9BD8 0x6D81 +0x9BD9 0x6D83 +0x9BDA 0x6D84 +0x9BDB 0x6D86 +0x9BDC 0x6D87 +0x9BDD 0x6D8A +0x9BDE 0x6D8B +0x9BDF 0x6D8D +0x9BE0 0x6D8F +0x9BE1 0x6D90 +0x9BE2 0x6D92 +0x9BE3 0x6D96 +0x9BE4 0x6D97 +0x9BE5 0x6D98 +0x9BE6 0x6D99 +0x9BE7 0x6D9A +0x9BE8 0x6D9C +0x9BE9 0x6DA2 +0x9BEA 0x6DA5 +0x9BEB 0x6DAC +0x9BEC 0x6DAD +0x9BED 0x6DB0 +0x9BEE 0x6DB1 +0x9BEF 0x6DB3 +0x9BF0 0x6DB4 +0x9BF1 0x6DB6 +0x9BF2 0x6DB7 +0x9BF3 0x6DB9 +0x9BF4 0x6DBA +0x9BF5 0x6DBB +0x9BF6 0x6DBC +0x9BF7 0x6DBD +0x9BF8 0x6DBE +0x9BF9 0x6DC1 +0x9BFA 0x6DC2 +0x9BFB 0x6DC3 +0x9BFC 0x6DC8 +0x9BFD 0x6DC9 +0x9BFE 0x6DCA +0x9C40 0x6DCD +0x9C41 0x6DCE +0x9C42 0x6DCF +0x9C43 0x6DD0 +0x9C44 0x6DD2 +0x9C45 0x6DD3 +0x9C46 0x6DD4 +0x9C47 0x6DD5 +0x9C48 0x6DD7 +0x9C49 0x6DDA +0x9C4A 0x6DDB +0x9C4B 0x6DDC +0x9C4C 0x6DDF +0x9C4D 0x6DE2 +0x9C4E 0x6DE3 +0x9C4F 0x6DE5 +0x9C50 0x6DE7 +0x9C51 0x6DE8 +0x9C52 0x6DE9 +0x9C53 0x6DEA +0x9C54 0x6DED +0x9C55 0x6DEF +0x9C56 0x6DF0 +0x9C57 0x6DF2 +0x9C58 0x6DF4 +0x9C59 0x6DF5 +0x9C5A 0x6DF6 +0x9C5B 0x6DF8 +0x9C5C 0x6DFA +0x9C5D 0x6DFD +0x9C5E 0x6DFE +0x9C5F 0x6DFF +0x9C60 0x6E00 +0x9C61 0x6E01 +0x9C62 0x6E02 +0x9C63 0x6E03 +0x9C64 0x6E04 +0x9C65 0x6E06 +0x9C66 0x6E07 +0x9C67 0x6E08 +0x9C68 0x6E09 +0x9C69 0x6E0B +0x9C6A 0x6E0F +0x9C6B 0x6E12 +0x9C6C 0x6E13 +0x9C6D 0x6E15 +0x9C6E 0x6E18 +0x9C6F 0x6E19 +0x9C70 0x6E1B +0x9C71 0x6E1C +0x9C72 0x6E1E +0x9C73 0x6E1F +0x9C74 0x6E22 +0x9C75 0x6E26 +0x9C76 0x6E27 +0x9C77 0x6E28 +0x9C78 0x6E2A +0x9C79 0x6E2C +0x9C7A 0x6E2E +0x9C7B 0x6E30 +0x9C7C 0x6E31 +0x9C7D 0x6E33 +0x9C7E 0x6E35 +0x9C80 0x6E36 +0x9C81 0x6E37 +0x9C82 0x6E39 +0x9C83 0x6E3B +0x9C84 0x6E3C +0x9C85 0x6E3D +0x9C86 0x6E3E +0x9C87 0x6E3F +0x9C88 0x6E40 +0x9C89 0x6E41 +0x9C8A 0x6E42 +0x9C8B 0x6E45 +0x9C8C 0x6E46 +0x9C8D 0x6E47 +0x9C8E 0x6E48 +0x9C8F 0x6E49 +0x9C90 0x6E4A +0x9C91 0x6E4B +0x9C92 0x6E4C +0x9C93 0x6E4F +0x9C94 0x6E50 +0x9C95 0x6E51 +0x9C96 0x6E52 +0x9C97 0x6E55 +0x9C98 0x6E57 +0x9C99 0x6E59 +0x9C9A 0x6E5A +0x9C9B 0x6E5C +0x9C9C 0x6E5D +0x9C9D 0x6E5E +0x9C9E 0x6E60 +0x9C9F 0x6E61 +0x9CA0 0x6E62 +0x9CA1 0x6E63 +0x9CA2 0x6E64 +0x9CA3 0x6E65 +0x9CA4 0x6E66 +0x9CA5 0x6E67 +0x9CA6 0x6E68 +0x9CA7 0x6E69 +0x9CA8 0x6E6A +0x9CA9 0x6E6C +0x9CAA 0x6E6D +0x9CAB 0x6E6F +0x9CAC 0x6E70 +0x9CAD 0x6E71 +0x9CAE 0x6E72 +0x9CAF 0x6E73 +0x9CB0 0x6E74 +0x9CB1 0x6E75 +0x9CB2 0x6E76 +0x9CB3 0x6E77 +0x9CB4 0x6E78 +0x9CB5 0x6E79 +0x9CB6 0x6E7A +0x9CB7 0x6E7B +0x9CB8 0x6E7C +0x9CB9 0x6E7D +0x9CBA 0x6E80 +0x9CBB 0x6E81 +0x9CBC 0x6E82 +0x9CBD 0x6E84 +0x9CBE 0x6E87 +0x9CBF 0x6E88 +0x9CC0 0x6E8A +0x9CC1 0x6E8B +0x9CC2 0x6E8C +0x9CC3 0x6E8D +0x9CC4 0x6E8E +0x9CC5 0x6E91 +0x9CC6 0x6E92 +0x9CC7 0x6E93 +0x9CC8 0x6E94 +0x9CC9 0x6E95 +0x9CCA 0x6E96 +0x9CCB 0x6E97 +0x9CCC 0x6E99 +0x9CCD 0x6E9A +0x9CCE 0x6E9B +0x9CCF 0x6E9D +0x9CD0 0x6E9E +0x9CD1 0x6EA0 +0x9CD2 0x6EA1 +0x9CD3 0x6EA3 +0x9CD4 0x6EA4 +0x9CD5 0x6EA6 +0x9CD6 0x6EA8 +0x9CD7 0x6EA9 +0x9CD8 0x6EAB +0x9CD9 0x6EAC +0x9CDA 0x6EAD +0x9CDB 0x6EAE +0x9CDC 0x6EB0 +0x9CDD 0x6EB3 +0x9CDE 0x6EB5 +0x9CDF 0x6EB8 +0x9CE0 0x6EB9 +0x9CE1 0x6EBC +0x9CE2 0x6EBE +0x9CE3 0x6EBF +0x9CE4 0x6EC0 +0x9CE5 0x6EC3 +0x9CE6 0x6EC4 +0x9CE7 0x6EC5 +0x9CE8 0x6EC6 +0x9CE9 0x6EC8 +0x9CEA 0x6EC9 +0x9CEB 0x6ECA +0x9CEC 0x6ECC +0x9CED 0x6ECD +0x9CEE 0x6ECE +0x9CEF 0x6ED0 +0x9CF0 0x6ED2 +0x9CF1 0x6ED6 +0x9CF2 0x6ED8 +0x9CF3 0x6ED9 +0x9CF4 0x6EDB +0x9CF5 0x6EDC +0x9CF6 0x6EDD +0x9CF7 0x6EE3 +0x9CF8 0x6EE7 +0x9CF9 0x6EEA +0x9CFA 0x6EEB +0x9CFB 0x6EEC +0x9CFC 0x6EED +0x9CFD 0x6EEE +0x9CFE 0x6EEF +0x9D40 0x6EF0 +0x9D41 0x6EF1 +0x9D42 0x6EF2 +0x9D43 0x6EF3 +0x9D44 0x6EF5 +0x9D45 0x6EF6 +0x9D46 0x6EF7 +0x9D47 0x6EF8 +0x9D48 0x6EFA +0x9D49 0x6EFB +0x9D4A 0x6EFC +0x9D4B 0x6EFD +0x9D4C 0x6EFE +0x9D4D 0x6EFF +0x9D4E 0x6F00 +0x9D4F 0x6F01 +0x9D50 0x6F03 +0x9D51 0x6F04 +0x9D52 0x6F05 +0x9D53 0x6F07 +0x9D54 0x6F08 +0x9D55 0x6F0A +0x9D56 0x6F0B +0x9D57 0x6F0C +0x9D58 0x6F0D +0x9D59 0x6F0E +0x9D5A 0x6F10 +0x9D5B 0x6F11 +0x9D5C 0x6F12 +0x9D5D 0x6F16 +0x9D5E 0x6F17 +0x9D5F 0x6F18 +0x9D60 0x6F19 +0x9D61 0x6F1A +0x9D62 0x6F1B +0x9D63 0x6F1C +0x9D64 0x6F1D +0x9D65 0x6F1E +0x9D66 0x6F1F +0x9D67 0x6F21 +0x9D68 0x6F22 +0x9D69 0x6F23 +0x9D6A 0x6F25 +0x9D6B 0x6F26 +0x9D6C 0x6F27 +0x9D6D 0x6F28 +0x9D6E 0x6F2C +0x9D6F 0x6F2E +0x9D70 0x6F30 +0x9D71 0x6F32 +0x9D72 0x6F34 +0x9D73 0x6F35 +0x9D74 0x6F37 +0x9D75 0x6F38 +0x9D76 0x6F39 +0x9D77 0x6F3A +0x9D78 0x6F3B +0x9D79 0x6F3C +0x9D7A 0x6F3D +0x9D7B 0x6F3F +0x9D7C 0x6F40 +0x9D7D 0x6F41 +0x9D7E 0x6F42 +0x9D80 0x6F43 +0x9D81 0x6F44 +0x9D82 0x6F45 +0x9D83 0x6F48 +0x9D84 0x6F49 +0x9D85 0x6F4A +0x9D86 0x6F4C +0x9D87 0x6F4E +0x9D88 0x6F4F +0x9D89 0x6F50 +0x9D8A 0x6F51 +0x9D8B 0x6F52 +0x9D8C 0x6F53 +0x9D8D 0x6F54 +0x9D8E 0x6F55 +0x9D8F 0x6F56 +0x9D90 0x6F57 +0x9D91 0x6F59 +0x9D92 0x6F5A +0x9D93 0x6F5B +0x9D94 0x6F5D +0x9D95 0x6F5F +0x9D96 0x6F60 +0x9D97 0x6F61 +0x9D98 0x6F63 +0x9D99 0x6F64 +0x9D9A 0x6F65 +0x9D9B 0x6F67 +0x9D9C 0x6F68 +0x9D9D 0x6F69 +0x9D9E 0x6F6A +0x9D9F 0x6F6B +0x9DA0 0x6F6C +0x9DA1 0x6F6F +0x9DA2 0x6F70 +0x9DA3 0x6F71 +0x9DA4 0x6F73 +0x9DA5 0x6F75 +0x9DA6 0x6F76 +0x9DA7 0x6F77 +0x9DA8 0x6F79 +0x9DA9 0x6F7B +0x9DAA 0x6F7D +0x9DAB 0x6F7E +0x9DAC 0x6F7F +0x9DAD 0x6F80 +0x9DAE 0x6F81 +0x9DAF 0x6F82 +0x9DB0 0x6F83 +0x9DB1 0x6F85 +0x9DB2 0x6F86 +0x9DB3 0x6F87 +0x9DB4 0x6F8A +0x9DB5 0x6F8B +0x9DB6 0x6F8F +0x9DB7 0x6F90 +0x9DB8 0x6F91 +0x9DB9 0x6F92 +0x9DBA 0x6F93 +0x9DBB 0x6F94 +0x9DBC 0x6F95 +0x9DBD 0x6F96 +0x9DBE 0x6F97 +0x9DBF 0x6F98 +0x9DC0 0x6F99 +0x9DC1 0x6F9A +0x9DC2 0x6F9B +0x9DC3 0x6F9D +0x9DC4 0x6F9E +0x9DC5 0x6F9F +0x9DC6 0x6FA0 +0x9DC7 0x6FA2 +0x9DC8 0x6FA3 +0x9DC9 0x6FA4 +0x9DCA 0x6FA5 +0x9DCB 0x6FA6 +0x9DCC 0x6FA8 +0x9DCD 0x6FA9 +0x9DCE 0x6FAA +0x9DCF 0x6FAB +0x9DD0 0x6FAC +0x9DD1 0x6FAD +0x9DD2 0x6FAE +0x9DD3 0x6FAF +0x9DD4 0x6FB0 +0x9DD5 0x6FB1 +0x9DD6 0x6FB2 +0x9DD7 0x6FB4 +0x9DD8 0x6FB5 +0x9DD9 0x6FB7 +0x9DDA 0x6FB8 +0x9DDB 0x6FBA +0x9DDC 0x6FBB +0x9DDD 0x6FBC +0x9DDE 0x6FBD +0x9DDF 0x6FBE +0x9DE0 0x6FBF +0x9DE1 0x6FC1 +0x9DE2 0x6FC3 +0x9DE3 0x6FC4 +0x9DE4 0x6FC5 +0x9DE5 0x6FC6 +0x9DE6 0x6FC7 +0x9DE7 0x6FC8 +0x9DE8 0x6FCA +0x9DE9 0x6FCB +0x9DEA 0x6FCC +0x9DEB 0x6FCD +0x9DEC 0x6FCE +0x9DED 0x6FCF +0x9DEE 0x6FD0 +0x9DEF 0x6FD3 +0x9DF0 0x6FD4 +0x9DF1 0x6FD5 +0x9DF2 0x6FD6 +0x9DF3 0x6FD7 +0x9DF4 0x6FD8 +0x9DF5 0x6FD9 +0x9DF6 0x6FDA +0x9DF7 0x6FDB +0x9DF8 0x6FDC +0x9DF9 0x6FDD +0x9DFA 0x6FDF +0x9DFB 0x6FE2 +0x9DFC 0x6FE3 +0x9DFD 0x6FE4 +0x9DFE 0x6FE5 +0x9E40 0x6FE6 +0x9E41 0x6FE7 +0x9E42 0x6FE8 +0x9E43 0x6FE9 +0x9E44 0x6FEA +0x9E45 0x6FEB +0x9E46 0x6FEC +0x9E47 0x6FED +0x9E48 0x6FF0 +0x9E49 0x6FF1 +0x9E4A 0x6FF2 +0x9E4B 0x6FF3 +0x9E4C 0x6FF4 +0x9E4D 0x6FF5 +0x9E4E 0x6FF6 +0x9E4F 0x6FF7 +0x9E50 0x6FF8 +0x9E51 0x6FF9 +0x9E52 0x6FFA +0x9E53 0x6FFB +0x9E54 0x6FFC +0x9E55 0x6FFD +0x9E56 0x6FFE +0x9E57 0x6FFF +0x9E58 0x7000 +0x9E59 0x7001 +0x9E5A 0x7002 +0x9E5B 0x7003 +0x9E5C 0x7004 +0x9E5D 0x7005 +0x9E5E 0x7006 +0x9E5F 0x7007 +0x9E60 0x7008 +0x9E61 0x7009 +0x9E62 0x700A +0x9E63 0x700B +0x9E64 0x700C +0x9E65 0x700D +0x9E66 0x700E +0x9E67 0x700F +0x9E68 0x7010 +0x9E69 0x7012 +0x9E6A 0x7013 +0x9E6B 0x7014 +0x9E6C 0x7015 +0x9E6D 0x7016 +0x9E6E 0x7017 +0x9E6F 0x7018 +0x9E70 0x7019 +0x9E71 0x701C +0x9E72 0x701D +0x9E73 0x701E +0x9E74 0x701F +0x9E75 0x7020 +0x9E76 0x7021 +0x9E77 0x7022 +0x9E78 0x7024 +0x9E79 0x7025 +0x9E7A 0x7026 +0x9E7B 0x7027 +0x9E7C 0x7028 +0x9E7D 0x7029 +0x9E7E 0x702A +0x9E80 0x702B +0x9E81 0x702C +0x9E82 0x702D +0x9E83 0x702E +0x9E84 0x702F +0x9E85 0x7030 +0x9E86 0x7031 +0x9E87 0x7032 +0x9E88 0x7033 +0x9E89 0x7034 +0x9E8A 0x7036 +0x9E8B 0x7037 +0x9E8C 0x7038 +0x9E8D 0x703A +0x9E8E 0x703B +0x9E8F 0x703C +0x9E90 0x703D +0x9E91 0x703E +0x9E92 0x703F +0x9E93 0x7040 +0x9E94 0x7041 +0x9E95 0x7042 +0x9E96 0x7043 +0x9E97 0x7044 +0x9E98 0x7045 +0x9E99 0x7046 +0x9E9A 0x7047 +0x9E9B 0x7048 +0x9E9C 0x7049 +0x9E9D 0x704A +0x9E9E 0x704B +0x9E9F 0x704D +0x9EA0 0x704E +0x9EA1 0x7050 +0x9EA2 0x7051 +0x9EA3 0x7052 +0x9EA4 0x7053 +0x9EA5 0x7054 +0x9EA6 0x7055 +0x9EA7 0x7056 +0x9EA8 0x7057 +0x9EA9 0x7058 +0x9EAA 0x7059 +0x9EAB 0x705A +0x9EAC 0x705B +0x9EAD 0x705C +0x9EAE 0x705D +0x9EAF 0x705F +0x9EB0 0x7060 +0x9EB1 0x7061 +0x9EB2 0x7062 +0x9EB3 0x7063 +0x9EB4 0x7064 +0x9EB5 0x7065 +0x9EB6 0x7066 +0x9EB7 0x7067 +0x9EB8 0x7068 +0x9EB9 0x7069 +0x9EBA 0x706A +0x9EBB 0x706E +0x9EBC 0x7071 +0x9EBD 0x7072 +0x9EBE 0x7073 +0x9EBF 0x7074 +0x9EC0 0x7077 +0x9EC1 0x7079 +0x9EC2 0x707A +0x9EC3 0x707B +0x9EC4 0x707D +0x9EC5 0x7081 +0x9EC6 0x7082 +0x9EC7 0x7083 +0x9EC8 0x7084 +0x9EC9 0x7086 +0x9ECA 0x7087 +0x9ECB 0x7088 +0x9ECC 0x708B +0x9ECD 0x708C +0x9ECE 0x708D +0x9ECF 0x708F +0x9ED0 0x7090 +0x9ED1 0x7091 +0x9ED2 0x7093 +0x9ED3 0x7097 +0x9ED4 0x7098 +0x9ED5 0x709A +0x9ED6 0x709B +0x9ED7 0x709E +0x9ED8 0x709F +0x9ED9 0x70A0 +0x9EDA 0x70A1 +0x9EDB 0x70A2 +0x9EDC 0x70A3 +0x9EDD 0x70A4 +0x9EDE 0x70A5 +0x9EDF 0x70A6 +0x9EE0 0x70A7 +0x9EE1 0x70A8 +0x9EE2 0x70A9 +0x9EE3 0x70AA +0x9EE4 0x70B0 +0x9EE5 0x70B2 +0x9EE6 0x70B4 +0x9EE7 0x70B5 +0x9EE8 0x70B6 +0x9EE9 0x70BA +0x9EEA 0x70BE +0x9EEB 0x70BF +0x9EEC 0x70C4 +0x9EED 0x70C5 +0x9EEE 0x70C6 +0x9EEF 0x70C7 +0x9EF0 0x70C9 +0x9EF1 0x70CB +0x9EF2 0x70CC +0x9EF3 0x70CD +0x9EF4 0x70CE +0x9EF5 0x70CF +0x9EF6 0x70D0 +0x9EF7 0x70D1 +0x9EF8 0x70D2 +0x9EF9 0x70D3 +0x9EFA 0x70D4 +0x9EFB 0x70D5 +0x9EFC 0x70D6 +0x9EFD 0x70D7 +0x9EFE 0x70DA +0x9F40 0x70DC +0x9F41 0x70DD +0x9F42 0x70DE +0x9F43 0x70E0 +0x9F44 0x70E1 +0x9F45 0x70E2 +0x9F46 0x70E3 +0x9F47 0x70E5 +0x9F48 0x70EA +0x9F49 0x70EE +0x9F4A 0x70F0 +0x9F4B 0x70F1 +0x9F4C 0x70F2 +0x9F4D 0x70F3 +0x9F4E 0x70F4 +0x9F4F 0x70F5 +0x9F50 0x70F6 +0x9F51 0x70F8 +0x9F52 0x70FA +0x9F53 0x70FB +0x9F54 0x70FC +0x9F55 0x70FE +0x9F56 0x70FF +0x9F57 0x7100 +0x9F58 0x7101 +0x9F59 0x7102 +0x9F5A 0x7103 +0x9F5B 0x7104 +0x9F5C 0x7105 +0x9F5D 0x7106 +0x9F5E 0x7107 +0x9F5F 0x7108 +0x9F60 0x710B +0x9F61 0x710C +0x9F62 0x710D +0x9F63 0x710E +0x9F64 0x710F +0x9F65 0x7111 +0x9F66 0x7112 +0x9F67 0x7114 +0x9F68 0x7117 +0x9F69 0x711B +0x9F6A 0x711C +0x9F6B 0x711D +0x9F6C 0x711E +0x9F6D 0x711F +0x9F6E 0x7120 +0x9F6F 0x7121 +0x9F70 0x7122 +0x9F71 0x7123 +0x9F72 0x7124 +0x9F73 0x7125 +0x9F74 0x7127 +0x9F75 0x7128 +0x9F76 0x7129 +0x9F77 0x712A +0x9F78 0x712B +0x9F79 0x712C +0x9F7A 0x712D +0x9F7B 0x712E +0x9F7C 0x7132 +0x9F7D 0x7133 +0x9F7E 0x7134 +0x9F80 0x7135 +0x9F81 0x7137 +0x9F82 0x7138 +0x9F83 0x7139 +0x9F84 0x713A +0x9F85 0x713B +0x9F86 0x713C +0x9F87 0x713D +0x9F88 0x713E +0x9F89 0x713F +0x9F8A 0x7140 +0x9F8B 0x7141 +0x9F8C 0x7142 +0x9F8D 0x7143 +0x9F8E 0x7144 +0x9F8F 0x7146 +0x9F90 0x7147 +0x9F91 0x7148 +0x9F92 0x7149 +0x9F93 0x714B +0x9F94 0x714D +0x9F95 0x714F +0x9F96 0x7150 +0x9F97 0x7151 +0x9F98 0x7152 +0x9F99 0x7153 +0x9F9A 0x7154 +0x9F9B 0x7155 +0x9F9C 0x7156 +0x9F9D 0x7157 +0x9F9E 0x7158 +0x9F9F 0x7159 +0x9FA0 0x715A +0x9FA1 0x715B +0x9FA2 0x715D +0x9FA3 0x715F +0x9FA4 0x7160 +0x9FA5 0x7161 +0x9FA6 0x7162 +0x9FA7 0x7163 +0x9FA8 0x7165 +0x9FA9 0x7169 +0x9FAA 0x716A +0x9FAB 0x716B +0x9FAC 0x716C +0x9FAD 0x716D +0x9FAE 0x716F +0x9FAF 0x7170 +0x9FB0 0x7171 +0x9FB1 0x7174 +0x9FB2 0x7175 +0x9FB3 0x7176 +0x9FB4 0x7177 +0x9FB5 0x7179 +0x9FB6 0x717B +0x9FB7 0x717C +0x9FB8 0x717E +0x9FB9 0x717F +0x9FBA 0x7180 +0x9FBB 0x7181 +0x9FBC 0x7182 +0x9FBD 0x7183 +0x9FBE 0x7185 +0x9FBF 0x7186 +0x9FC0 0x7187 +0x9FC1 0x7188 +0x9FC2 0x7189 +0x9FC3 0x718B +0x9FC4 0x718C +0x9FC5 0x718D +0x9FC6 0x718E +0x9FC7 0x7190 +0x9FC8 0x7191 +0x9FC9 0x7192 +0x9FCA 0x7193 +0x9FCB 0x7195 +0x9FCC 0x7196 +0x9FCD 0x7197 +0x9FCE 0x719A +0x9FCF 0x719B +0x9FD0 0x719C +0x9FD1 0x719D +0x9FD2 0x719E +0x9FD3 0x71A1 +0x9FD4 0x71A2 +0x9FD5 0x71A3 +0x9FD6 0x71A4 +0x9FD7 0x71A5 +0x9FD8 0x71A6 +0x9FD9 0x71A7 +0x9FDA 0x71A9 +0x9FDB 0x71AA +0x9FDC 0x71AB +0x9FDD 0x71AD +0x9FDE 0x71AE +0x9FDF 0x71AF +0x9FE0 0x71B0 +0x9FE1 0x71B1 +0x9FE2 0x71B2 +0x9FE3 0x71B4 +0x9FE4 0x71B6 +0x9FE5 0x71B7 +0x9FE6 0x71B8 +0x9FE7 0x71BA +0x9FE8 0x71BB +0x9FE9 0x71BC +0x9FEA 0x71BD +0x9FEB 0x71BE +0x9FEC 0x71BF +0x9FED 0x71C0 +0x9FEE 0x71C1 +0x9FEF 0x71C2 +0x9FF0 0x71C4 +0x9FF1 0x71C5 +0x9FF2 0x71C6 +0x9FF3 0x71C7 +0x9FF4 0x71C8 +0x9FF5 0x71C9 +0x9FF6 0x71CA +0x9FF7 0x71CB +0x9FF8 0x71CC +0x9FF9 0x71CD +0x9FFA 0x71CF +0x9FFB 0x71D0 +0x9FFC 0x71D1 +0x9FFD 0x71D2 +0x9FFE 0x71D3 +0xA040 0x71D6 +0xA041 0x71D7 +0xA042 0x71D8 +0xA043 0x71D9 +0xA044 0x71DA +0xA045 0x71DB +0xA046 0x71DC +0xA047 0x71DD +0xA048 0x71DE +0xA049 0x71DF +0xA04A 0x71E1 +0xA04B 0x71E2 +0xA04C 0x71E3 +0xA04D 0x71E4 +0xA04E 0x71E6 +0xA04F 0x71E8 +0xA050 0x71E9 +0xA051 0x71EA +0xA052 0x71EB +0xA053 0x71EC +0xA054 0x71ED +0xA055 0x71EF +0xA056 0x71F0 +0xA057 0x71F1 +0xA058 0x71F2 +0xA059 0x71F3 +0xA05A 0x71F4 +0xA05B 0x71F5 +0xA05C 0x71F6 +0xA05D 0x71F7 +0xA05E 0x71F8 +0xA05F 0x71FA +0xA060 0x71FB +0xA061 0x71FC +0xA062 0x71FD +0xA063 0x71FE +0xA064 0x71FF +0xA065 0x7200 +0xA066 0x7201 +0xA067 0x7202 +0xA068 0x7203 +0xA069 0x7204 +0xA06A 0x7205 +0xA06B 0x7207 +0xA06C 0x7208 +0xA06D 0x7209 +0xA06E 0x720A +0xA06F 0x720B +0xA070 0x720C +0xA071 0x720D +0xA072 0x720E +0xA073 0x720F +0xA074 0x7210 +0xA075 0x7211 +0xA076 0x7212 +0xA077 0x7213 +0xA078 0x7214 +0xA079 0x7215 +0xA07A 0x7216 +0xA07B 0x7217 +0xA07C 0x7218 +0xA07D 0x7219 +0xA07E 0x721A +0xA080 0x721B +0xA081 0x721C +0xA082 0x721E +0xA083 0x721F +0xA084 0x7220 +0xA085 0x7221 +0xA086 0x7222 +0xA087 0x7223 +0xA088 0x7224 +0xA089 0x7225 +0xA08A 0x7226 +0xA08B 0x7227 +0xA08C 0x7229 +0xA08D 0x722B +0xA08E 0x722D +0xA08F 0x722E +0xA090 0x722F +0xA091 0x7232 +0xA092 0x7233 +0xA093 0x7234 +0xA094 0x723A +0xA095 0x723C +0xA096 0x723E +0xA097 0x7240 +0xA098 0x7241 +0xA099 0x7242 +0xA09A 0x7243 +0xA09B 0x7244 +0xA09C 0x7245 +0xA09D 0x7246 +0xA09E 0x7249 +0xA09F 0x724A +0xA0A0 0x724B +0xA0A1 0x724E +0xA0A2 0x724F +0xA0A3 0x7250 +0xA0A4 0x7251 +0xA0A5 0x7253 +0xA0A6 0x7254 +0xA0A7 0x7255 +0xA0A8 0x7257 +0xA0A9 0x7258 +0xA0AA 0x725A +0xA0AB 0x725C +0xA0AC 0x725E +0xA0AD 0x7260 +0xA0AE 0x7263 +0xA0AF 0x7264 +0xA0B0 0x7265 +0xA0B1 0x7268 +0xA0B2 0x726A +0xA0B3 0x726B +0xA0B4 0x726C +0xA0B5 0x726D +0xA0B6 0x7270 +0xA0B7 0x7271 +0xA0B8 0x7273 +0xA0B9 0x7274 +0xA0BA 0x7276 +0xA0BB 0x7277 +0xA0BC 0x7278 +0xA0BD 0x727B +0xA0BE 0x727C +0xA0BF 0x727D +0xA0C0 0x7282 +0xA0C1 0x7283 +0xA0C2 0x7285 +0xA0C3 0x7286 +0xA0C4 0x7287 +0xA0C5 0x7288 +0xA0C6 0x7289 +0xA0C7 0x728C +0xA0C8 0x728E +0xA0C9 0x7290 +0xA0CA 0x7291 +0xA0CB 0x7293 +0xA0CC 0x7294 +0xA0CD 0x7295 +0xA0CE 0x7296 +0xA0CF 0x7297 +0xA0D0 0x7298 +0xA0D1 0x7299 +0xA0D2 0x729A +0xA0D3 0x729B +0xA0D4 0x729C +0xA0D5 0x729D +0xA0D6 0x729E +0xA0D7 0x72A0 +0xA0D8 0x72A1 +0xA0D9 0x72A2 +0xA0DA 0x72A3 +0xA0DB 0x72A4 +0xA0DC 0x72A5 +0xA0DD 0x72A6 +0xA0DE 0x72A7 +0xA0DF 0x72A8 +0xA0E0 0x72A9 +0xA0E1 0x72AA +0xA0E2 0x72AB +0xA0E3 0x72AE +0xA0E4 0x72B1 +0xA0E5 0x72B2 +0xA0E6 0x72B3 +0xA0E7 0x72B5 +0xA0E8 0x72BA +0xA0E9 0x72BB +0xA0EA 0x72BC +0xA0EB 0x72BD +0xA0EC 0x72BE +0xA0ED 0x72BF +0xA0EE 0x72C0 +0xA0EF 0x72C5 +0xA0F0 0x72C6 +0xA0F1 0x72C7 +0xA0F2 0x72C9 +0xA0F3 0x72CA +0xA0F4 0x72CB +0xA0F5 0x72CC +0xA0F6 0x72CF +0xA0F7 0x72D1 +0xA0F8 0x72D3 +0xA0F9 0x72D4 +0xA0FA 0x72D5 +0xA0FB 0x72D6 +0xA0FC 0x72D8 +0xA0FD 0x72DA +0xA0FE 0x72DB +0xA140 0xE4C6 +0xA141 0xE4C7 +0xA142 0xE4C8 +0xA143 0xE4C9 +0xA144 0xE4CA +0xA145 0xE4CB +0xA146 0xE4CC +0xA147 0xE4CD +0xA148 0xE4CE +0xA149 0xE4CF +0xA14A 0xE4D0 +0xA14B 0xE4D1 +0xA14C 0xE4D2 +0xA14D 0xE4D3 +0xA14E 0xE4D4 +0xA14F 0xE4D5 +0xA150 0xE4D6 +0xA151 0xE4D7 +0xA152 0xE4D8 +0xA153 0xE4D9 +0xA154 0xE4DA +0xA155 0xE4DB +0xA156 0xE4DC +0xA157 0xE4DD +0xA158 0xE4DE +0xA159 0xE4DF +0xA15A 0xE4E0 +0xA15B 0xE4E1 +0xA15C 0xE4E2 +0xA15D 0xE4E3 +0xA15E 0xE4E4 +0xA15F 0xE4E5 +0xA160 0xE4E6 +0xA161 0xE4E7 +0xA162 0xE4E8 +0xA163 0xE4E9 +0xA164 0xE4EA +0xA165 0xE4EB +0xA166 0xE4EC +0xA167 0xE4ED +0xA168 0xE4EE +0xA169 0xE4EF +0xA16A 0xE4F0 +0xA16B 0xE4F1 +0xA16C 0xE4F2 +0xA16D 0xE4F3 +0xA16E 0xE4F4 +0xA16F 0xE4F5 +0xA170 0xE4F6 +0xA171 0xE4F7 +0xA172 0xE4F8 +0xA173 0xE4F9 +0xA174 0xE4FA +0xA175 0xE4FB +0xA176 0xE4FC +0xA177 0xE4FD +0xA178 0xE4FE +0xA179 0xE4FF +0xA17A 0xE500 +0xA17B 0xE501 +0xA17C 0xE502 +0xA17D 0xE503 +0xA17E 0xE504 +0xA180 0xE505 +0xA181 0xE506 +0xA182 0xE507 +0xA183 0xE508 +0xA184 0xE509 +0xA185 0xE50A +0xA186 0xE50B +0xA187 0xE50C +0xA188 0xE50D +0xA189 0xE50E +0xA18A 0xE50F +0xA18B 0xE510 +0xA18C 0xE511 +0xA18D 0xE512 +0xA18E 0xE513 +0xA18F 0xE514 +0xA190 0xE515 +0xA191 0xE516 +0xA192 0xE517 +0xA193 0xE518 +0xA194 0xE519 +0xA195 0xE51A +0xA196 0xE51B +0xA197 0xE51C +0xA198 0xE51D +0xA199 0xE51E +0xA19A 0xE51F +0xA19B 0xE520 +0xA19C 0xE521 +0xA19D 0xE522 +0xA19E 0xE523 +0xA19F 0xE524 +0xA1A0 0xE525 +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x00B7 +0xA1A5 0x02C9 +0xA1A6 0x02C7 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x3005 +0xA1AA 0x2014 +0xA1AB 0xFF5E +0xA1AC 0x2016 +0xA1AD 0x2026 +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3016 +0xA1BD 0x3017 +0xA1BE 0x3010 +0xA1BF 0x3011 +0xA1C0 0x00B1 +0xA1C1 0x00D7 +0xA1C2 0x00F7 +0xA1C3 0x2236 +0xA1C4 0x2227 +0xA1C5 0x2228 +0xA1C6 0x2211 +0xA1C7 0x220F +0xA1C8 0x222A +0xA1C9 0x2229 +0xA1CA 0x2208 +0xA1CB 0x2237 +0xA1CC 0x221A +0xA1CD 0x22A5 +0xA1CE 0x2225 +0xA1CF 0x2220 +0xA1D0 0x2312 +0xA1D1 0x2299 +0xA1D2 0x222B +0xA1D3 0x222E +0xA1D4 0x2261 +0xA1D5 0x224C +0xA1D6 0x2248 +0xA1D7 0x223D +0xA1D8 0x221D +0xA1D9 0x2260 +0xA1DA 0x226E +0xA1DB 0x226F +0xA1DC 0x2264 +0xA1DD 0x2265 +0xA1DE 0x221E +0xA1DF 0x2235 +0xA1E0 0x2234 +0xA1E1 0x2642 +0xA1E2 0x2640 +0xA1E3 0x00B0 +0xA1E4 0x2032 +0xA1E5 0x2033 +0xA1E6 0x2103 +0xA1E7 0xFF04 +0xA1E8 0x00A4 +0xA1E9 0xFFE0 +0xA1EA 0xFFE1 +0xA1EB 0x2030 +0xA1EC 0x00A7 +0xA1ED 0x2116 +0xA1EE 0x2606 +0xA1EF 0x2605 +0xA1F0 0x25CB +0xA1F1 0x25CF +0xA1F2 0x25CE +0xA1F3 0x25C7 +0xA1F4 0x25C6 +0xA1F5 0x25A1 +0xA1F6 0x25A0 +0xA1F7 0x25B3 +0xA1F8 0x25B2 +0xA1F9 0x203B +0xA1FA 0x2192 +0xA1FB 0x2190 +0xA1FC 0x2191 +0xA1FD 0x2193 +0xA1FE 0x3013 +0xA240 0xE526 +0xA241 0xE527 +0xA242 0xE528 +0xA243 0xE529 +0xA244 0xE52A +0xA245 0xE52B +0xA246 0xE52C +0xA247 0xE52D +0xA248 0xE52E +0xA249 0xE52F +0xA24A 0xE530 +0xA24B 0xE531 +0xA24C 0xE532 +0xA24D 0xE533 +0xA24E 0xE534 +0xA24F 0xE535 +0xA250 0xE536 +0xA251 0xE537 +0xA252 0xE538 +0xA253 0xE539 +0xA254 0xE53A +0xA255 0xE53B +0xA256 0xE53C +0xA257 0xE53D +0xA258 0xE53E +0xA259 0xE53F +0xA25A 0xE540 +0xA25B 0xE541 +0xA25C 0xE542 +0xA25D 0xE543 +0xA25E 0xE544 +0xA25F 0xE545 +0xA260 0xE546 +0xA261 0xE547 +0xA262 0xE548 +0xA263 0xE549 +0xA264 0xE54A +0xA265 0xE54B +0xA266 0xE54C +0xA267 0xE54D +0xA268 0xE54E +0xA269 0xE54F +0xA26A 0xE550 +0xA26B 0xE551 +0xA26C 0xE552 +0xA26D 0xE553 +0xA26E 0xE554 +0xA26F 0xE555 +0xA270 0xE556 +0xA271 0xE557 +0xA272 0xE558 +0xA273 0xE559 +0xA274 0xE55A +0xA275 0xE55B +0xA276 0xE55C +0xA277 0xE55D +0xA278 0xE55E +0xA279 0xE55F +0xA27A 0xE560 +0xA27B 0xE561 +0xA27C 0xE562 +0xA27D 0xE563 +0xA27E 0xE564 +0xA280 0xE565 +0xA281 0xE566 +0xA282 0xE567 +0xA283 0xE568 +0xA284 0xE569 +0xA285 0xE56A +0xA286 0xE56B +0xA287 0xE56C +0xA288 0xE56D +0xA289 0xE56E +0xA28A 0xE56F +0xA28B 0xE570 +0xA28C 0xE571 +0xA28D 0xE572 +0xA28E 0xE573 +0xA28F 0xE574 +0xA290 0xE575 +0xA291 0xE576 +0xA292 0xE577 +0xA293 0xE578 +0xA294 0xE579 +0xA295 0xE57A +0xA296 0xE57B +0xA297 0xE57C +0xA298 0xE57D +0xA299 0xE57E +0xA29A 0xE57F +0xA29B 0xE580 +0xA29C 0xE581 +0xA29D 0xE582 +0xA29E 0xE583 +0xA29F 0xE584 +0xA2A0 0xE585 +0xA2A1 0x2170 +0xA2A2 0x2171 +0xA2A3 0x2172 +0xA2A4 0x2173 +0xA2A5 0x2174 +0xA2A6 0x2175 +0xA2A7 0x2176 +0xA2A8 0x2177 +0xA2A9 0x2178 +0xA2AA 0x2179 +0xA2AB 0xE766 +0xA2AC 0xE767 +0xA2AD 0xE768 +0xA2AE 0xE769 +0xA2AF 0xE76A +0xA2B0 0xE76B +0xA2B1 0x2488 +0xA2B2 0x2489 +0xA2B3 0x248A +0xA2B4 0x248B +0xA2B5 0x248C +0xA2B6 0x248D +0xA2B7 0x248E +0xA2B8 0x248F +0xA2B9 0x2490 +0xA2BA 0x2491 +0xA2BB 0x2492 +0xA2BC 0x2493 +0xA2BD 0x2494 +0xA2BE 0x2495 +0xA2BF 0x2496 +0xA2C0 0x2497 +0xA2C1 0x2498 +0xA2C2 0x2499 +0xA2C3 0x249A +0xA2C4 0x249B +0xA2C5 0x2474 +0xA2C6 0x2475 +0xA2C7 0x2476 +0xA2C8 0x2477 +0xA2C9 0x2478 +0xA2CA 0x2479 +0xA2CB 0x247A +0xA2CC 0x247B +0xA2CD 0x247C +0xA2CE 0x247D +0xA2CF 0x247E +0xA2D0 0x247F +0xA2D1 0x2480 +0xA2D2 0x2481 +0xA2D3 0x2482 +0xA2D4 0x2483 +0xA2D5 0x2484 +0xA2D6 0x2485 +0xA2D7 0x2486 +0xA2D8 0x2487 +0xA2D9 0x2460 +0xA2DA 0x2461 +0xA2DB 0x2462 +0xA2DC 0x2463 +0xA2DD 0x2464 +0xA2DE 0x2465 +0xA2DF 0x2466 +0xA2E0 0x2467 +0xA2E1 0x2468 +0xA2E2 0x2469 +0xA2E3 0x20AC +0xA2E4 0xE76D +0xA2E5 0x3220 +0xA2E6 0x3221 +0xA2E7 0x3222 +0xA2E8 0x3223 +0xA2E9 0x3224 +0xA2EA 0x3225 +0xA2EB 0x3226 +0xA2EC 0x3227 +0xA2ED 0x3228 +0xA2EE 0x3229 +0xA2EF 0xE76E +0xA2F0 0xE76F +0xA2F1 0x2160 +0xA2F2 0x2161 +0xA2F3 0x2162 +0xA2F4 0x2163 +0xA2F5 0x2164 +0xA2F6 0x2165 +0xA2F7 0x2166 +0xA2F8 0x2167 +0xA2F9 0x2168 +0xA2FA 0x2169 +0xA2FB 0x216A +0xA2FC 0x216B +0xA2FD 0xE770 +0xA2FE 0xE771 +0xA340 0xE586 +0xA341 0xE587 +0xA342 0xE588 +0xA343 0xE589 +0xA344 0xE58A +0xA345 0xE58B +0xA346 0xE58C +0xA347 0xE58D +0xA348 0xE58E +0xA349 0xE58F +0xA34A 0xE590 +0xA34B 0xE591 +0xA34C 0xE592 +0xA34D 0xE593 +0xA34E 0xE594 +0xA34F 0xE595 +0xA350 0xE596 +0xA351 0xE597 +0xA352 0xE598 +0xA353 0xE599 +0xA354 0xE59A +0xA355 0xE59B +0xA356 0xE59C +0xA357 0xE59D +0xA358 0xE59E +0xA359 0xE59F +0xA35A 0xE5A0 +0xA35B 0xE5A1 +0xA35C 0xE5A2 +0xA35D 0xE5A3 +0xA35E 0xE5A4 +0xA35F 0xE5A5 +0xA360 0xE5A6 +0xA361 0xE5A7 +0xA362 0xE5A8 +0xA363 0xE5A9 +0xA364 0xE5AA +0xA365 0xE5AB +0xA366 0xE5AC +0xA367 0xE5AD +0xA368 0xE5AE +0xA369 0xE5AF +0xA36A 0xE5B0 +0xA36B 0xE5B1 +0xA36C 0xE5B2 +0xA36D 0xE5B3 +0xA36E 0xE5B4 +0xA36F 0xE5B5 +0xA370 0xE5B6 +0xA371 0xE5B7 +0xA372 0xE5B8 +0xA373 0xE5B9 +0xA374 0xE5BA +0xA375 0xE5BB +0xA376 0xE5BC +0xA377 0xE5BD +0xA378 0xE5BE +0xA379 0xE5BF +0xA37A 0xE5C0 +0xA37B 0xE5C1 +0xA37C 0xE5C2 +0xA37D 0xE5C3 +0xA37E 0xE5C4 +0xA380 0xE5C5 +0xA381 0xE5C6 +0xA382 0xE5C7 +0xA383 0xE5C8 +0xA384 0xE5C9 +0xA385 0xE5CA +0xA386 0xE5CB +0xA387 0xE5CC +0xA388 0xE5CD +0xA389 0xE5CE +0xA38A 0xE5CF +0xA38B 0xE5D0 +0xA38C 0xE5D1 +0xA38D 0xE5D2 +0xA38E 0xE5D3 +0xA38F 0xE5D4 +0xA390 0xE5D5 +0xA391 0xE5D6 +0xA392 0xE5D7 +0xA393 0xE5D8 +0xA394 0xE5D9 +0xA395 0xE5DA +0xA396 0xE5DB +0xA397 0xE5DC +0xA398 0xE5DD +0xA399 0xE5DE +0xA39A 0xE5DF +0xA39B 0xE5E0 +0xA39C 0xE5E1 +0xA39D 0xE5E2 +0xA39E 0xE5E3 +0xA39F 0xE5E4 +0xA3A0 0xE5E5 +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFFE5 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFF3C +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA440 0xE5E6 +0xA441 0xE5E7 +0xA442 0xE5E8 +0xA443 0xE5E9 +0xA444 0xE5EA +0xA445 0xE5EB +0xA446 0xE5EC +0xA447 0xE5ED +0xA448 0xE5EE +0xA449 0xE5EF +0xA44A 0xE5F0 +0xA44B 0xE5F1 +0xA44C 0xE5F2 +0xA44D 0xE5F3 +0xA44E 0xE5F4 +0xA44F 0xE5F5 +0xA450 0xE5F6 +0xA451 0xE5F7 +0xA452 0xE5F8 +0xA453 0xE5F9 +0xA454 0xE5FA +0xA455 0xE5FB +0xA456 0xE5FC +0xA457 0xE5FD +0xA458 0xE5FE +0xA459 0xE5FF +0xA45A 0xE600 +0xA45B 0xE601 +0xA45C 0xE602 +0xA45D 0xE603 +0xA45E 0xE604 +0xA45F 0xE605 +0xA460 0xE606 +0xA461 0xE607 +0xA462 0xE608 +0xA463 0xE609 +0xA464 0xE60A +0xA465 0xE60B +0xA466 0xE60C +0xA467 0xE60D +0xA468 0xE60E +0xA469 0xE60F +0xA46A 0xE610 +0xA46B 0xE611 +0xA46C 0xE612 +0xA46D 0xE613 +0xA46E 0xE614 +0xA46F 0xE615 +0xA470 0xE616 +0xA471 0xE617 +0xA472 0xE618 +0xA473 0xE619 +0xA474 0xE61A +0xA475 0xE61B +0xA476 0xE61C +0xA477 0xE61D +0xA478 0xE61E +0xA479 0xE61F +0xA47A 0xE620 +0xA47B 0xE621 +0xA47C 0xE622 +0xA47D 0xE623 +0xA47E 0xE624 +0xA480 0xE625 +0xA481 0xE626 +0xA482 0xE627 +0xA483 0xE628 +0xA484 0xE629 +0xA485 0xE62A +0xA486 0xE62B +0xA487 0xE62C +0xA488 0xE62D +0xA489 0xE62E +0xA48A 0xE62F +0xA48B 0xE630 +0xA48C 0xE631 +0xA48D 0xE632 +0xA48E 0xE633 +0xA48F 0xE634 +0xA490 0xE635 +0xA491 0xE636 +0xA492 0xE637 +0xA493 0xE638 +0xA494 0xE639 +0xA495 0xE63A +0xA496 0xE63B +0xA497 0xE63C +0xA498 0xE63D +0xA499 0xE63E +0xA49A 0xE63F +0xA49B 0xE640 +0xA49C 0xE641 +0xA49D 0xE642 +0xA49E 0xE643 +0xA49F 0xE644 +0xA4A0 0xE645 +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA4F4 0xE772 +0xA4F5 0xE773 +0xA4F6 0xE774 +0xA4F7 0xE775 +0xA4F8 0xE776 +0xA4F9 0xE777 +0xA4FA 0xE778 +0xA4FB 0xE779 +0xA4FC 0xE77A +0xA4FD 0xE77B +0xA4FE 0xE77C +0xA540 0xE646 +0xA541 0xE647 +0xA542 0xE648 +0xA543 0xE649 +0xA544 0xE64A +0xA545 0xE64B +0xA546 0xE64C +0xA547 0xE64D +0xA548 0xE64E +0xA549 0xE64F +0xA54A 0xE650 +0xA54B 0xE651 +0xA54C 0xE652 +0xA54D 0xE653 +0xA54E 0xE654 +0xA54F 0xE655 +0xA550 0xE656 +0xA551 0xE657 +0xA552 0xE658 +0xA553 0xE659 +0xA554 0xE65A +0xA555 0xE65B +0xA556 0xE65C +0xA557 0xE65D +0xA558 0xE65E +0xA559 0xE65F +0xA55A 0xE660 +0xA55B 0xE661 +0xA55C 0xE662 +0xA55D 0xE663 +0xA55E 0xE664 +0xA55F 0xE665 +0xA560 0xE666 +0xA561 0xE667 +0xA562 0xE668 +0xA563 0xE669 +0xA564 0xE66A +0xA565 0xE66B +0xA566 0xE66C +0xA567 0xE66D +0xA568 0xE66E +0xA569 0xE66F +0xA56A 0xE670 +0xA56B 0xE671 +0xA56C 0xE672 +0xA56D 0xE673 +0xA56E 0xE674 +0xA56F 0xE675 +0xA570 0xE676 +0xA571 0xE677 +0xA572 0xE678 +0xA573 0xE679 +0xA574 0xE67A +0xA575 0xE67B +0xA576 0xE67C +0xA577 0xE67D +0xA578 0xE67E +0xA579 0xE67F +0xA57A 0xE680 +0xA57B 0xE681 +0xA57C 0xE682 +0xA57D 0xE683 +0xA57E 0xE684 +0xA580 0xE685 +0xA581 0xE686 +0xA582 0xE687 +0xA583 0xE688 +0xA584 0xE689 +0xA585 0xE68A +0xA586 0xE68B +0xA587 0xE68C +0xA588 0xE68D +0xA589 0xE68E +0xA58A 0xE68F +0xA58B 0xE690 +0xA58C 0xE691 +0xA58D 0xE692 +0xA58E 0xE693 +0xA58F 0xE694 +0xA590 0xE695 +0xA591 0xE696 +0xA592 0xE697 +0xA593 0xE698 +0xA594 0xE699 +0xA595 0xE69A +0xA596 0xE69B +0xA597 0xE69C +0xA598 0xE69D +0xA599 0xE69E +0xA59A 0xE69F +0xA59B 0xE6A0 +0xA59C 0xE6A1 +0xA59D 0xE6A2 +0xA59E 0xE6A3 +0xA59F 0xE6A4 +0xA5A0 0xE6A5 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA5F7 0xE77D +0xA5F8 0xE77E +0xA5F9 0xE77F +0xA5FA 0xE780 +0xA5FB 0xE781 +0xA5FC 0xE782 +0xA5FD 0xE783 +0xA5FE 0xE784 +0xA640 0xE6A6 +0xA641 0xE6A7 +0xA642 0xE6A8 +0xA643 0xE6A9 +0xA644 0xE6AA +0xA645 0xE6AB +0xA646 0xE6AC +0xA647 0xE6AD +0xA648 0xE6AE +0xA649 0xE6AF +0xA64A 0xE6B0 +0xA64B 0xE6B1 +0xA64C 0xE6B2 +0xA64D 0xE6B3 +0xA64E 0xE6B4 +0xA64F 0xE6B5 +0xA650 0xE6B6 +0xA651 0xE6B7 +0xA652 0xE6B8 +0xA653 0xE6B9 +0xA654 0xE6BA +0xA655 0xE6BB +0xA656 0xE6BC +0xA657 0xE6BD +0xA658 0xE6BE +0xA659 0xE6BF +0xA65A 0xE6C0 +0xA65B 0xE6C1 +0xA65C 0xE6C2 +0xA65D 0xE6C3 +0xA65E 0xE6C4 +0xA65F 0xE6C5 +0xA660 0xE6C6 +0xA661 0xE6C7 +0xA662 0xE6C8 +0xA663 0xE6C9 +0xA664 0xE6CA +0xA665 0xE6CB +0xA666 0xE6CC +0xA667 0xE6CD +0xA668 0xE6CE +0xA669 0xE6CF +0xA66A 0xE6D0 +0xA66B 0xE6D1 +0xA66C 0xE6D2 +0xA66D 0xE6D3 +0xA66E 0xE6D4 +0xA66F 0xE6D5 +0xA670 0xE6D6 +0xA671 0xE6D7 +0xA672 0xE6D8 +0xA673 0xE6D9 +0xA674 0xE6DA +0xA675 0xE6DB +0xA676 0xE6DC +0xA677 0xE6DD +0xA678 0xE6DE +0xA679 0xE6DF +0xA67A 0xE6E0 +0xA67B 0xE6E1 +0xA67C 0xE6E2 +0xA67D 0xE6E3 +0xA67E 0xE6E4 +0xA680 0xE6E5 +0xA681 0xE6E6 +0xA682 0xE6E7 +0xA683 0xE6E8 +0xA684 0xE6E9 +0xA685 0xE6EA +0xA686 0xE6EB +0xA687 0xE6EC +0xA688 0xE6ED +0xA689 0xE6EE +0xA68A 0xE6EF +0xA68B 0xE6F0 +0xA68C 0xE6F1 +0xA68D 0xE6F2 +0xA68E 0xE6F3 +0xA68F 0xE6F4 +0xA690 0xE6F5 +0xA691 0xE6F6 +0xA692 0xE6F7 +0xA693 0xE6F8 +0xA694 0xE6F9 +0xA695 0xE6FA +0xA696 0xE6FB +0xA697 0xE6FC +0xA698 0xE6FD +0xA699 0xE6FE +0xA69A 0xE6FF +0xA69B 0xE700 +0xA69C 0xE701 +0xA69D 0xE702 +0xA69E 0xE703 +0xA69F 0xE704 +0xA6A0 0xE705 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6B9 0xE785 +0xA6BA 0xE786 +0xA6BB 0xE787 +0xA6BC 0xE788 +0xA6BD 0xE789 +0xA6BE 0xE78A +0xA6BF 0xE78B +0xA6C0 0xE78C +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA6D9 0xFE10 +0xA6DA 0xFE12 +0xA6DB 0xFE11 +0xA6DC 0xFE13 +0xA6DD 0xFE14 +0xA6DE 0xFE15 +0xA6DF 0xFE16 +0xA6E0 0xFE35 +0xA6E1 0xFE36 +0xA6E2 0xFE39 +0xA6E3 0xFE3A +0xA6E4 0xFE3F +0xA6E5 0xFE40 +0xA6E6 0xFE3D +0xA6E7 0xFE3E +0xA6E8 0xFE41 +0xA6E9 0xFE42 +0xA6EA 0xFE43 +0xA6EB 0xFE44 +0xA6EC 0xFE17 +0xA6ED 0xFE18 +0xA6EE 0xFE3B +0xA6EF 0xFE3C +0xA6F0 0xFE37 +0xA6F1 0xFE38 +0xA6F2 0xFE31 +0xA6F3 0xFE19 +0xA6F4 0xFE33 +0xA6F5 0xFE34 +0xA6F6 0xE797 +0xA6F7 0xE798 +0xA6F8 0xE799 +0xA6F9 0xE79A +0xA6FA 0xE79B +0xA6FB 0xE79C +0xA6FC 0xE79D +0xA6FD 0xE79E +0xA6FE 0xE79F +0xA740 0xE706 +0xA741 0xE707 +0xA742 0xE708 +0xA743 0xE709 +0xA744 0xE70A +0xA745 0xE70B +0xA746 0xE70C +0xA747 0xE70D +0xA748 0xE70E +0xA749 0xE70F +0xA74A 0xE710 +0xA74B 0xE711 +0xA74C 0xE712 +0xA74D 0xE713 +0xA74E 0xE714 +0xA74F 0xE715 +0xA750 0xE716 +0xA751 0xE717 +0xA752 0xE718 +0xA753 0xE719 +0xA754 0xE71A +0xA755 0xE71B +0xA756 0xE71C +0xA757 0xE71D +0xA758 0xE71E +0xA759 0xE71F +0xA75A 0xE720 +0xA75B 0xE721 +0xA75C 0xE722 +0xA75D 0xE723 +0xA75E 0xE724 +0xA75F 0xE725 +0xA760 0xE726 +0xA761 0xE727 +0xA762 0xE728 +0xA763 0xE729 +0xA764 0xE72A +0xA765 0xE72B +0xA766 0xE72C +0xA767 0xE72D +0xA768 0xE72E +0xA769 0xE72F +0xA76A 0xE730 +0xA76B 0xE731 +0xA76C 0xE732 +0xA76D 0xE733 +0xA76E 0xE734 +0xA76F 0xE735 +0xA770 0xE736 +0xA771 0xE737 +0xA772 0xE738 +0xA773 0xE739 +0xA774 0xE73A +0xA775 0xE73B +0xA776 0xE73C +0xA777 0xE73D +0xA778 0xE73E +0xA779 0xE73F +0xA77A 0xE740 +0xA77B 0xE741 +0xA77C 0xE742 +0xA77D 0xE743 +0xA77E 0xE744 +0xA780 0xE745 +0xA781 0xE746 +0xA782 0xE747 +0xA783 0xE748 +0xA784 0xE749 +0xA785 0xE74A +0xA786 0xE74B +0xA787 0xE74C +0xA788 0xE74D +0xA789 0xE74E +0xA78A 0xE74F +0xA78B 0xE750 +0xA78C 0xE751 +0xA78D 0xE752 +0xA78E 0xE753 +0xA78F 0xE754 +0xA790 0xE755 +0xA791 0xE756 +0xA792 0xE757 +0xA793 0xE758 +0xA794 0xE759 +0xA795 0xE75A +0xA796 0xE75B +0xA797 0xE75C +0xA798 0xE75D +0xA799 0xE75E +0xA79A 0xE75F +0xA79B 0xE760 +0xA79C 0xE761 +0xA79D 0xE762 +0xA79E 0xE763 +0xA79F 0xE764 +0xA7A0 0xE765 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7C2 0xE7A0 +0xA7C3 0xE7A1 +0xA7C4 0xE7A2 +0xA7C5 0xE7A3 +0xA7C6 0xE7A4 +0xA7C7 0xE7A5 +0xA7C8 0xE7A6 +0xA7C9 0xE7A7 +0xA7CA 0xE7A8 +0xA7CB 0xE7A9 +0xA7CC 0xE7AA +0xA7CD 0xE7AB +0xA7CE 0xE7AC +0xA7CF 0xE7AD +0xA7D0 0xE7AE +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA7F2 0xE7AF +0xA7F3 0xE7B0 +0xA7F4 0xE7B1 +0xA7F5 0xE7B2 +0xA7F6 0xE7B3 +0xA7F7 0xE7B4 +0xA7F8 0xE7B5 +0xA7F9 0xE7B6 +0xA7FA 0xE7B7 +0xA7FB 0xE7B8 +0xA7FC 0xE7B9 +0xA7FD 0xE7BA +0xA7FE 0xE7BB +0xA840 0x02CA +0xA841 0x02CB +0xA842 0x02D9 +0xA843 0x2013 +0xA844 0x2015 +0xA845 0x2025 +0xA846 0x2035 +0xA847 0x2105 +0xA848 0x2109 +0xA849 0x2196 +0xA84A 0x2197 +0xA84B 0x2198 +0xA84C 0x2199 +0xA84D 0x2215 +0xA84E 0x221F +0xA84F 0x2223 +0xA850 0x2252 +0xA851 0x2266 +0xA852 0x2267 +0xA853 0x22BF +0xA854 0x2550 +0xA855 0x2551 +0xA856 0x2552 +0xA857 0x2553 +0xA858 0x2554 +0xA859 0x2555 +0xA85A 0x2556 +0xA85B 0x2557 +0xA85C 0x2558 +0xA85D 0x2559 +0xA85E 0x255A +0xA85F 0x255B +0xA860 0x255C +0xA861 0x255D +0xA862 0x255E +0xA863 0x255F +0xA864 0x2560 +0xA865 0x2561 +0xA866 0x2562 +0xA867 0x2563 +0xA868 0x2564 +0xA869 0x2565 +0xA86A 0x2566 +0xA86B 0x2567 +0xA86C 0x2568 +0xA86D 0x2569 +0xA86E 0x256A +0xA86F 0x256B +0xA870 0x256C +0xA871 0x256D +0xA872 0x256E +0xA873 0x256F +0xA874 0x2570 +0xA875 0x2571 +0xA876 0x2572 +0xA877 0x2573 +0xA878 0x2581 +0xA879 0x2582 +0xA87A 0x2583 +0xA87B 0x2584 +0xA87C 0x2585 +0xA87D 0x2586 +0xA87E 0x2587 +0xA880 0x2588 +0xA881 0x2589 +0xA882 0x258A +0xA883 0x258B +0xA884 0x258C +0xA885 0x258D +0xA886 0x258E +0xA887 0x258F +0xA888 0x2593 +0xA889 0x2594 +0xA88A 0x2595 +0xA88B 0x25BC +0xA88C 0x25BD +0xA88D 0x25E2 +0xA88E 0x25E3 +0xA88F 0x25E4 +0xA890 0x25E5 +0xA891 0x2609 +0xA892 0x2295 +0xA893 0x3012 +0xA894 0x301D +0xA895 0x301E +0xA896 0xE7BC +0xA897 0xE7BD +0xA898 0xE7BE +0xA899 0xE7BF +0xA89A 0xE7C0 +0xA89B 0xE7C1 +0xA89C 0xE7C2 +0xA89D 0xE7C3 +0xA89E 0xE7C4 +0xA89F 0xE7C5 +0xA8A0 0xE7C6 +0xA8A1 0x0101 +0xA8A2 0x00E1 +0xA8A3 0x01CE +0xA8A4 0x00E0 +0xA8A5 0x0113 +0xA8A6 0x00E9 +0xA8A7 0x011B +0xA8A8 0x00E8 +0xA8A9 0x012B +0xA8AA 0x00ED +0xA8AB 0x01D0 +0xA8AC 0x00EC +0xA8AD 0x014D +0xA8AE 0x00F3 +0xA8AF 0x01D2 +0xA8B0 0x00F2 +0xA8B1 0x016B +0xA8B2 0x00FA +0xA8B3 0x01D4 +0xA8B4 0x00F9 +0xA8B5 0x01D6 +0xA8B6 0x01D8 +0xA8B7 0x01DA +0xA8B8 0x01DC +0xA8B9 0x00FC +0xA8BA 0x00EA +0xA8BB 0x0251 +0xA8BC 0x1E3F +0xA8BD 0x0144 +0xA8BE 0x0148 +0xA8BF 0x01F9 +0xA8C0 0x0261 +0xA8C1 0xE7C9 +0xA8C2 0xE7CA +0xA8C3 0xE7CB +0xA8C4 0xE7CC +0xA8C5 0x3105 +0xA8C6 0x3106 +0xA8C7 0x3107 +0xA8C8 0x3108 +0xA8C9 0x3109 +0xA8CA 0x310A +0xA8CB 0x310B +0xA8CC 0x310C +0xA8CD 0x310D +0xA8CE 0x310E +0xA8CF 0x310F +0xA8D0 0x3110 +0xA8D1 0x3111 +0xA8D2 0x3112 +0xA8D3 0x3113 +0xA8D4 0x3114 +0xA8D5 0x3115 +0xA8D6 0x3116 +0xA8D7 0x3117 +0xA8D8 0x3118 +0xA8D9 0x3119 +0xA8DA 0x311A +0xA8DB 0x311B +0xA8DC 0x311C +0xA8DD 0x311D +0xA8DE 0x311E +0xA8DF 0x311F +0xA8E0 0x3120 +0xA8E1 0x3121 +0xA8E2 0x3122 +0xA8E3 0x3123 +0xA8E4 0x3124 +0xA8E5 0x3125 +0xA8E6 0x3126 +0xA8E7 0x3127 +0xA8E8 0x3128 +0xA8E9 0x3129 +0xA8EA 0xE7CD +0xA8EB 0xE7CE +0xA8EC 0xE7CF +0xA8ED 0xE7D0 +0xA8EE 0xE7D1 +0xA8EF 0xE7D2 +0xA8F0 0xE7D3 +0xA8F1 0xE7D4 +0xA8F2 0xE7D5 +0xA8F3 0xE7D6 +0xA8F4 0xE7D7 +0xA8F5 0xE7D8 +0xA8F6 0xE7D9 +0xA8F7 0xE7DA +0xA8F8 0xE7DB +0xA8F9 0xE7DC +0xA8FA 0xE7DD +0xA8FB 0xE7DE +0xA8FC 0xE7DF +0xA8FD 0xE7E0 +0xA8FE 0xE7E1 +0xA940 0x3021 +0xA941 0x3022 +0xA942 0x3023 +0xA943 0x3024 +0xA944 0x3025 +0xA945 0x3026 +0xA946 0x3027 +0xA947 0x3028 +0xA948 0x3029 +0xA949 0x32A3 +0xA94A 0x338E +0xA94B 0x338F +0xA94C 0x339C +0xA94D 0x339D +0xA94E 0x339E +0xA94F 0x33A1 +0xA950 0x33C4 +0xA951 0x33CE +0xA952 0x33D1 +0xA953 0x33D2 +0xA954 0x33D5 +0xA955 0xFE30 +0xA956 0xFFE2 +0xA957 0xFFE4 +0xA958 0xE7E2 +0xA959 0x2121 +0xA95A 0x3231 +0xA95B 0xE7E3 +0xA95C 0x2010 +0xA95D 0xE7E4 +0xA95E 0xE7E5 +0xA95F 0xE7E6 +0xA960 0x30FC +0xA961 0x309B +0xA962 0x309C +0xA963 0x30FD +0xA964 0x30FE +0xA965 0x3006 +0xA966 0x309D +0xA967 0x309E +0xA968 0xFE49 +0xA969 0xFE4A +0xA96A 0xFE4B +0xA96B 0xFE4C +0xA96C 0xFE4D +0xA96D 0xFE4E +0xA96E 0xFE4F +0xA96F 0xFE50 +0xA970 0xFE51 +0xA971 0xFE52 +0xA972 0xFE54 +0xA973 0xFE55 +0xA974 0xFE56 +0xA975 0xFE57 +0xA976 0xFE59 +0xA977 0xFE5A +0xA978 0xFE5B +0xA979 0xFE5C +0xA97A 0xFE5D +0xA97B 0xFE5E +0xA97C 0xFE5F +0xA97D 0xFE60 +0xA97E 0xFE61 +0xA980 0xFE62 +0xA981 0xFE63 +0xA982 0xFE64 +0xA983 0xFE65 +0xA984 0xFE66 +0xA985 0xFE68 +0xA986 0xFE69 +0xA987 0xFE6A +0xA988 0xFE6B +0xA989 0x303E +0xA98A 0x2FF0 +0xA98B 0x2FF1 +0xA98C 0x2FF2 +0xA98D 0x2FF3 +0xA98E 0x2FF4 +0xA98F 0x2FF5 +0xA990 0x2FF6 +0xA991 0x2FF7 +0xA992 0x2FF8 +0xA993 0x2FF9 +0xA994 0x2FFA +0xA995 0x2FFB +0xA996 0x3007 +0xA997 0xE7F4 +0xA998 0xE7F5 +0xA999 0xE7F6 +0xA99A 0xE7F7 +0xA99B 0xE7F8 +0xA99C 0xE7F9 +0xA99D 0xE7FA +0xA99E 0xE7FB +0xA99F 0xE7FC +0xA9A0 0xE7FD +0xA9A1 0xE7FE +0xA9A2 0xE7FF +0xA9A3 0xE800 +0xA9A4 0x2500 +0xA9A5 0x2501 +0xA9A6 0x2502 +0xA9A7 0x2503 +0xA9A8 0x2504 +0xA9A9 0x2505 +0xA9AA 0x2506 +0xA9AB 0x2507 +0xA9AC 0x2508 +0xA9AD 0x2509 +0xA9AE 0x250A +0xA9AF 0x250B +0xA9B0 0x250C +0xA9B1 0x250D +0xA9B2 0x250E +0xA9B3 0x250F +0xA9B4 0x2510 +0xA9B5 0x2511 +0xA9B6 0x2512 +0xA9B7 0x2513 +0xA9B8 0x2514 +0xA9B9 0x2515 +0xA9BA 0x2516 +0xA9BB 0x2517 +0xA9BC 0x2518 +0xA9BD 0x2519 +0xA9BE 0x251A +0xA9BF 0x251B +0xA9C0 0x251C +0xA9C1 0x251D +0xA9C2 0x251E +0xA9C3 0x251F +0xA9C4 0x2520 +0xA9C5 0x2521 +0xA9C6 0x2522 +0xA9C7 0x2523 +0xA9C8 0x2524 +0xA9C9 0x2525 +0xA9CA 0x2526 +0xA9CB 0x2527 +0xA9CC 0x2528 +0xA9CD 0x2529 +0xA9CE 0x252A +0xA9CF 0x252B +0xA9D0 0x252C +0xA9D1 0x252D +0xA9D2 0x252E +0xA9D3 0x252F +0xA9D4 0x2530 +0xA9D5 0x2531 +0xA9D6 0x2532 +0xA9D7 0x2533 +0xA9D8 0x2534 +0xA9D9 0x2535 +0xA9DA 0x2536 +0xA9DB 0x2537 +0xA9DC 0x2538 +0xA9DD 0x2539 +0xA9DE 0x253A +0xA9DF 0x253B +0xA9E0 0x253C +0xA9E1 0x253D +0xA9E2 0x253E +0xA9E3 0x253F +0xA9E4 0x2540 +0xA9E5 0x2541 +0xA9E6 0x2542 +0xA9E7 0x2543 +0xA9E8 0x2544 +0xA9E9 0x2545 +0xA9EA 0x2546 +0xA9EB 0x2547 +0xA9EC 0x2548 +0xA9ED 0x2549 +0xA9EE 0x254A +0xA9EF 0x254B +0xA9F0 0xE801 +0xA9F1 0xE802 +0xA9F2 0xE803 +0xA9F3 0xE804 +0xA9F4 0xE805 +0xA9F5 0xE806 +0xA9F6 0xE807 +0xA9F7 0xE808 +0xA9F8 0xE809 +0xA9F9 0xE80A +0xA9FA 0xE80B +0xA9FB 0xE80C +0xA9FC 0xE80D +0xA9FD 0xE80E +0xA9FE 0xE80F +0xAA40 0x72DC +0xAA41 0x72DD +0xAA42 0x72DF +0xAA43 0x72E2 +0xAA44 0x72E3 +0xAA45 0x72E4 +0xAA46 0x72E5 +0xAA47 0x72E6 +0xAA48 0x72E7 +0xAA49 0x72EA +0xAA4A 0x72EB +0xAA4B 0x72F5 +0xAA4C 0x72F6 +0xAA4D 0x72F9 +0xAA4E 0x72FD +0xAA4F 0x72FE +0xAA50 0x72FF +0xAA51 0x7300 +0xAA52 0x7302 +0xAA53 0x7304 +0xAA54 0x7305 +0xAA55 0x7306 +0xAA56 0x7307 +0xAA57 0x7308 +0xAA58 0x7309 +0xAA59 0x730B +0xAA5A 0x730C +0xAA5B 0x730D +0xAA5C 0x730F +0xAA5D 0x7310 +0xAA5E 0x7311 +0xAA5F 0x7312 +0xAA60 0x7314 +0xAA61 0x7318 +0xAA62 0x7319 +0xAA63 0x731A +0xAA64 0x731F +0xAA65 0x7320 +0xAA66 0x7323 +0xAA67 0x7324 +0xAA68 0x7326 +0xAA69 0x7327 +0xAA6A 0x7328 +0xAA6B 0x732D +0xAA6C 0x732F +0xAA6D 0x7330 +0xAA6E 0x7332 +0xAA6F 0x7333 +0xAA70 0x7335 +0xAA71 0x7336 +0xAA72 0x733A +0xAA73 0x733B +0xAA74 0x733C +0xAA75 0x733D +0xAA76 0x7340 +0xAA77 0x7341 +0xAA78 0x7342 +0xAA79 0x7343 +0xAA7A 0x7344 +0xAA7B 0x7345 +0xAA7C 0x7346 +0xAA7D 0x7347 +0xAA7E 0x7348 +0xAA80 0x7349 +0xAA81 0x734A +0xAA82 0x734B +0xAA83 0x734C +0xAA84 0x734E +0xAA85 0x734F +0xAA86 0x7351 +0xAA87 0x7353 +0xAA88 0x7354 +0xAA89 0x7355 +0xAA8A 0x7356 +0xAA8B 0x7358 +0xAA8C 0x7359 +0xAA8D 0x735A +0xAA8E 0x735B +0xAA8F 0x735C +0xAA90 0x735D +0xAA91 0x735E +0xAA92 0x735F +0xAA93 0x7361 +0xAA94 0x7362 +0xAA95 0x7363 +0xAA96 0x7364 +0xAA97 0x7365 +0xAA98 0x7366 +0xAA99 0x7367 +0xAA9A 0x7368 +0xAA9B 0x7369 +0xAA9C 0x736A +0xAA9D 0x736B +0xAA9E 0x736E +0xAA9F 0x7370 +0xAAA0 0x7371 +0xAAA1 0xE000 +0xAAA2 0xE001 +0xAAA3 0xE002 +0xAAA4 0xE003 +0xAAA5 0xE004 +0xAAA6 0xE005 +0xAAA7 0xE006 +0xAAA8 0xE007 +0xAAA9 0xE008 +0xAAAA 0xE009 +0xAAAB 0xE00A +0xAAAC 0xE00B +0xAAAD 0xE00C +0xAAAE 0xE00D +0xAAAF 0xE00E +0xAAB0 0xE00F +0xAAB1 0xE010 +0xAAB2 0xE011 +0xAAB3 0xE012 +0xAAB4 0xE013 +0xAAB5 0xE014 +0xAAB6 0xE015 +0xAAB7 0xE016 +0xAAB8 0xE017 +0xAAB9 0xE018 +0xAABA 0xE019 +0xAABB 0xE01A +0xAABC 0xE01B +0xAABD 0xE01C +0xAABE 0xE01D +0xAABF 0xE01E +0xAAC0 0xE01F +0xAAC1 0xE020 +0xAAC2 0xE021 +0xAAC3 0xE022 +0xAAC4 0xE023 +0xAAC5 0xE024 +0xAAC6 0xE025 +0xAAC7 0xE026 +0xAAC8 0xE027 +0xAAC9 0xE028 +0xAACA 0xE029 +0xAACB 0xE02A +0xAACC 0xE02B +0xAACD 0xE02C +0xAACE 0xE02D +0xAACF 0xE02E +0xAAD0 0xE02F +0xAAD1 0xE030 +0xAAD2 0xE031 +0xAAD3 0xE032 +0xAAD4 0xE033 +0xAAD5 0xE034 +0xAAD6 0xE035 +0xAAD7 0xE036 +0xAAD8 0xE037 +0xAAD9 0xE038 +0xAADA 0xE039 +0xAADB 0xE03A +0xAADC 0xE03B +0xAADD 0xE03C +0xAADE 0xE03D +0xAADF 0xE03E +0xAAE0 0xE03F +0xAAE1 0xE040 +0xAAE2 0xE041 +0xAAE3 0xE042 +0xAAE4 0xE043 +0xAAE5 0xE044 +0xAAE6 0xE045 +0xAAE7 0xE046 +0xAAE8 0xE047 +0xAAE9 0xE048 +0xAAEA 0xE049 +0xAAEB 0xE04A +0xAAEC 0xE04B +0xAAED 0xE04C +0xAAEE 0xE04D +0xAAEF 0xE04E +0xAAF0 0xE04F +0xAAF1 0xE050 +0xAAF2 0xE051 +0xAAF3 0xE052 +0xAAF4 0xE053 +0xAAF5 0xE054 +0xAAF6 0xE055 +0xAAF7 0xE056 +0xAAF8 0xE057 +0xAAF9 0xE058 +0xAAFA 0xE059 +0xAAFB 0xE05A +0xAAFC 0xE05B +0xAAFD 0xE05C +0xAAFE 0xE05D +0xAB40 0x7372 +0xAB41 0x7373 +0xAB42 0x7374 +0xAB43 0x7375 +0xAB44 0x7376 +0xAB45 0x7377 +0xAB46 0x7378 +0xAB47 0x7379 +0xAB48 0x737A +0xAB49 0x737B +0xAB4A 0x737C +0xAB4B 0x737D +0xAB4C 0x737F +0xAB4D 0x7380 +0xAB4E 0x7381 +0xAB4F 0x7382 +0xAB50 0x7383 +0xAB51 0x7385 +0xAB52 0x7386 +0xAB53 0x7388 +0xAB54 0x738A +0xAB55 0x738C +0xAB56 0x738D +0xAB57 0x738F +0xAB58 0x7390 +0xAB59 0x7392 +0xAB5A 0x7393 +0xAB5B 0x7394 +0xAB5C 0x7395 +0xAB5D 0x7397 +0xAB5E 0x7398 +0xAB5F 0x7399 +0xAB60 0x739A +0xAB61 0x739C +0xAB62 0x739D +0xAB63 0x739E +0xAB64 0x73A0 +0xAB65 0x73A1 +0xAB66 0x73A3 +0xAB67 0x73A4 +0xAB68 0x73A5 +0xAB69 0x73A6 +0xAB6A 0x73A7 +0xAB6B 0x73A8 +0xAB6C 0x73AA +0xAB6D 0x73AC +0xAB6E 0x73AD +0xAB6F 0x73B1 +0xAB70 0x73B4 +0xAB71 0x73B5 +0xAB72 0x73B6 +0xAB73 0x73B8 +0xAB74 0x73B9 +0xAB75 0x73BC +0xAB76 0x73BD +0xAB77 0x73BE +0xAB78 0x73BF +0xAB79 0x73C1 +0xAB7A 0x73C3 +0xAB7B 0x73C4 +0xAB7C 0x73C5 +0xAB7D 0x73C6 +0xAB7E 0x73C7 +0xAB80 0x73CB +0xAB81 0x73CC +0xAB82 0x73CE +0xAB83 0x73D2 +0xAB84 0x73D3 +0xAB85 0x73D4 +0xAB86 0x73D5 +0xAB87 0x73D6 +0xAB88 0x73D7 +0xAB89 0x73D8 +0xAB8A 0x73DA +0xAB8B 0x73DB +0xAB8C 0x73DC +0xAB8D 0x73DD +0xAB8E 0x73DF +0xAB8F 0x73E1 +0xAB90 0x73E2 +0xAB91 0x73E3 +0xAB92 0x73E4 +0xAB93 0x73E6 +0xAB94 0x73E8 +0xAB95 0x73EA +0xAB96 0x73EB +0xAB97 0x73EC +0xAB98 0x73EE +0xAB99 0x73EF +0xAB9A 0x73F0 +0xAB9B 0x73F1 +0xAB9C 0x73F3 +0xAB9D 0x73F4 +0xAB9E 0x73F5 +0xAB9F 0x73F6 +0xABA0 0x73F7 +0xABA1 0xE05E +0xABA2 0xE05F +0xABA3 0xE060 +0xABA4 0xE061 +0xABA5 0xE062 +0xABA6 0xE063 +0xABA7 0xE064 +0xABA8 0xE065 +0xABA9 0xE066 +0xABAA 0xE067 +0xABAB 0xE068 +0xABAC 0xE069 +0xABAD 0xE06A +0xABAE 0xE06B +0xABAF 0xE06C +0xABB0 0xE06D +0xABB1 0xE06E +0xABB2 0xE06F +0xABB3 0xE070 +0xABB4 0xE071 +0xABB5 0xE072 +0xABB6 0xE073 +0xABB7 0xE074 +0xABB8 0xE075 +0xABB9 0xE076 +0xABBA 0xE077 +0xABBB 0xE078 +0xABBC 0xE079 +0xABBD 0xE07A +0xABBE 0xE07B +0xABBF 0xE07C +0xABC0 0xE07D +0xABC1 0xE07E +0xABC2 0xE07F +0xABC3 0xE080 +0xABC4 0xE081 +0xABC5 0xE082 +0xABC6 0xE083 +0xABC7 0xE084 +0xABC8 0xE085 +0xABC9 0xE086 +0xABCA 0xE087 +0xABCB 0xE088 +0xABCC 0xE089 +0xABCD 0xE08A +0xABCE 0xE08B +0xABCF 0xE08C +0xABD0 0xE08D +0xABD1 0xE08E +0xABD2 0xE08F +0xABD3 0xE090 +0xABD4 0xE091 +0xABD5 0xE092 +0xABD6 0xE093 +0xABD7 0xE094 +0xABD8 0xE095 +0xABD9 0xE096 +0xABDA 0xE097 +0xABDB 0xE098 +0xABDC 0xE099 +0xABDD 0xE09A +0xABDE 0xE09B +0xABDF 0xE09C +0xABE0 0xE09D +0xABE1 0xE09E +0xABE2 0xE09F +0xABE3 0xE0A0 +0xABE4 0xE0A1 +0xABE5 0xE0A2 +0xABE6 0xE0A3 +0xABE7 0xE0A4 +0xABE8 0xE0A5 +0xABE9 0xE0A6 +0xABEA 0xE0A7 +0xABEB 0xE0A8 +0xABEC 0xE0A9 +0xABED 0xE0AA +0xABEE 0xE0AB +0xABEF 0xE0AC +0xABF0 0xE0AD +0xABF1 0xE0AE +0xABF2 0xE0AF +0xABF3 0xE0B0 +0xABF4 0xE0B1 +0xABF5 0xE0B2 +0xABF6 0xE0B3 +0xABF7 0xE0B4 +0xABF8 0xE0B5 +0xABF9 0xE0B6 +0xABFA 0xE0B7 +0xABFB 0xE0B8 +0xABFC 0xE0B9 +0xABFD 0xE0BA +0xABFE 0xE0BB +0xAC40 0x73F8 +0xAC41 0x73F9 +0xAC42 0x73FA +0xAC43 0x73FB +0xAC44 0x73FC +0xAC45 0x73FD +0xAC46 0x73FE +0xAC47 0x73FF +0xAC48 0x7400 +0xAC49 0x7401 +0xAC4A 0x7402 +0xAC4B 0x7404 +0xAC4C 0x7407 +0xAC4D 0x7408 +0xAC4E 0x740B +0xAC4F 0x740C +0xAC50 0x740D +0xAC51 0x740E +0xAC52 0x7411 +0xAC53 0x7412 +0xAC54 0x7413 +0xAC55 0x7414 +0xAC56 0x7415 +0xAC57 0x7416 +0xAC58 0x7417 +0xAC59 0x7418 +0xAC5A 0x7419 +0xAC5B 0x741C +0xAC5C 0x741D +0xAC5D 0x741E +0xAC5E 0x741F +0xAC5F 0x7420 +0xAC60 0x7421 +0xAC61 0x7423 +0xAC62 0x7424 +0xAC63 0x7427 +0xAC64 0x7429 +0xAC65 0x742B +0xAC66 0x742D +0xAC67 0x742F +0xAC68 0x7431 +0xAC69 0x7432 +0xAC6A 0x7437 +0xAC6B 0x7438 +0xAC6C 0x7439 +0xAC6D 0x743A +0xAC6E 0x743B +0xAC6F 0x743D +0xAC70 0x743E +0xAC71 0x743F +0xAC72 0x7440 +0xAC73 0x7442 +0xAC74 0x7443 +0xAC75 0x7444 +0xAC76 0x7445 +0xAC77 0x7446 +0xAC78 0x7447 +0xAC79 0x7448 +0xAC7A 0x7449 +0xAC7B 0x744A +0xAC7C 0x744B +0xAC7D 0x744C +0xAC7E 0x744D +0xAC80 0x744E +0xAC81 0x744F +0xAC82 0x7450 +0xAC83 0x7451 +0xAC84 0x7452 +0xAC85 0x7453 +0xAC86 0x7454 +0xAC87 0x7456 +0xAC88 0x7458 +0xAC89 0x745D +0xAC8A 0x7460 +0xAC8B 0x7461 +0xAC8C 0x7462 +0xAC8D 0x7463 +0xAC8E 0x7464 +0xAC8F 0x7465 +0xAC90 0x7466 +0xAC91 0x7467 +0xAC92 0x7468 +0xAC93 0x7469 +0xAC94 0x746A +0xAC95 0x746B +0xAC96 0x746C +0xAC97 0x746E +0xAC98 0x746F +0xAC99 0x7471 +0xAC9A 0x7472 +0xAC9B 0x7473 +0xAC9C 0x7474 +0xAC9D 0x7475 +0xAC9E 0x7478 +0xAC9F 0x7479 +0xACA0 0x747A +0xACA1 0xE0BC +0xACA2 0xE0BD +0xACA3 0xE0BE +0xACA4 0xE0BF +0xACA5 0xE0C0 +0xACA6 0xE0C1 +0xACA7 0xE0C2 +0xACA8 0xE0C3 +0xACA9 0xE0C4 +0xACAA 0xE0C5 +0xACAB 0xE0C6 +0xACAC 0xE0C7 +0xACAD 0xE0C8 +0xACAE 0xE0C9 +0xACAF 0xE0CA +0xACB0 0xE0CB +0xACB1 0xE0CC +0xACB2 0xE0CD +0xACB3 0xE0CE +0xACB4 0xE0CF +0xACB5 0xE0D0 +0xACB6 0xE0D1 +0xACB7 0xE0D2 +0xACB8 0xE0D3 +0xACB9 0xE0D4 +0xACBA 0xE0D5 +0xACBB 0xE0D6 +0xACBC 0xE0D7 +0xACBD 0xE0D8 +0xACBE 0xE0D9 +0xACBF 0xE0DA +0xACC0 0xE0DB +0xACC1 0xE0DC +0xACC2 0xE0DD +0xACC3 0xE0DE +0xACC4 0xE0DF +0xACC5 0xE0E0 +0xACC6 0xE0E1 +0xACC7 0xE0E2 +0xACC8 0xE0E3 +0xACC9 0xE0E4 +0xACCA 0xE0E5 +0xACCB 0xE0E6 +0xACCC 0xE0E7 +0xACCD 0xE0E8 +0xACCE 0xE0E9 +0xACCF 0xE0EA +0xACD0 0xE0EB +0xACD1 0xE0EC +0xACD2 0xE0ED +0xACD3 0xE0EE +0xACD4 0xE0EF +0xACD5 0xE0F0 +0xACD6 0xE0F1 +0xACD7 0xE0F2 +0xACD8 0xE0F3 +0xACD9 0xE0F4 +0xACDA 0xE0F5 +0xACDB 0xE0F6 +0xACDC 0xE0F7 +0xACDD 0xE0F8 +0xACDE 0xE0F9 +0xACDF 0xE0FA +0xACE0 0xE0FB +0xACE1 0xE0FC +0xACE2 0xE0FD +0xACE3 0xE0FE +0xACE4 0xE0FF +0xACE5 0xE100 +0xACE6 0xE101 +0xACE7 0xE102 +0xACE8 0xE103 +0xACE9 0xE104 +0xACEA 0xE105 +0xACEB 0xE106 +0xACEC 0xE107 +0xACED 0xE108 +0xACEE 0xE109 +0xACEF 0xE10A +0xACF0 0xE10B +0xACF1 0xE10C +0xACF2 0xE10D +0xACF3 0xE10E +0xACF4 0xE10F +0xACF5 0xE110 +0xACF6 0xE111 +0xACF7 0xE112 +0xACF8 0xE113 +0xACF9 0xE114 +0xACFA 0xE115 +0xACFB 0xE116 +0xACFC 0xE117 +0xACFD 0xE118 +0xACFE 0xE119 +0xAD40 0x747B +0xAD41 0x747C +0xAD42 0x747D +0xAD43 0x747F +0xAD44 0x7482 +0xAD45 0x7484 +0xAD46 0x7485 +0xAD47 0x7486 +0xAD48 0x7488 +0xAD49 0x7489 +0xAD4A 0x748A +0xAD4B 0x748C +0xAD4C 0x748D +0xAD4D 0x748F +0xAD4E 0x7491 +0xAD4F 0x7492 +0xAD50 0x7493 +0xAD51 0x7494 +0xAD52 0x7495 +0xAD53 0x7496 +0xAD54 0x7497 +0xAD55 0x7498 +0xAD56 0x7499 +0xAD57 0x749A +0xAD58 0x749B +0xAD59 0x749D +0xAD5A 0x749F +0xAD5B 0x74A0 +0xAD5C 0x74A1 +0xAD5D 0x74A2 +0xAD5E 0x74A3 +0xAD5F 0x74A4 +0xAD60 0x74A5 +0xAD61 0x74A6 +0xAD62 0x74AA +0xAD63 0x74AB +0xAD64 0x74AC +0xAD65 0x74AD +0xAD66 0x74AE +0xAD67 0x74AF +0xAD68 0x74B0 +0xAD69 0x74B1 +0xAD6A 0x74B2 +0xAD6B 0x74B3 +0xAD6C 0x74B4 +0xAD6D 0x74B5 +0xAD6E 0x74B6 +0xAD6F 0x74B7 +0xAD70 0x74B8 +0xAD71 0x74B9 +0xAD72 0x74BB +0xAD73 0x74BC +0xAD74 0x74BD +0xAD75 0x74BE +0xAD76 0x74BF +0xAD77 0x74C0 +0xAD78 0x74C1 +0xAD79 0x74C2 +0xAD7A 0x74C3 +0xAD7B 0x74C4 +0xAD7C 0x74C5 +0xAD7D 0x74C6 +0xAD7E 0x74C7 +0xAD80 0x74C8 +0xAD81 0x74C9 +0xAD82 0x74CA +0xAD83 0x74CB +0xAD84 0x74CC +0xAD85 0x74CD +0xAD86 0x74CE +0xAD87 0x74CF +0xAD88 0x74D0 +0xAD89 0x74D1 +0xAD8A 0x74D3 +0xAD8B 0x74D4 +0xAD8C 0x74D5 +0xAD8D 0x74D6 +0xAD8E 0x74D7 +0xAD8F 0x74D8 +0xAD90 0x74D9 +0xAD91 0x74DA +0xAD92 0x74DB +0xAD93 0x74DD +0xAD94 0x74DF +0xAD95 0x74E1 +0xAD96 0x74E5 +0xAD97 0x74E7 +0xAD98 0x74E8 +0xAD99 0x74E9 +0xAD9A 0x74EA +0xAD9B 0x74EB +0xAD9C 0x74EC +0xAD9D 0x74ED +0xAD9E 0x74F0 +0xAD9F 0x74F1 +0xADA0 0x74F2 +0xADA1 0xE11A +0xADA2 0xE11B +0xADA3 0xE11C +0xADA4 0xE11D +0xADA5 0xE11E +0xADA6 0xE11F +0xADA7 0xE120 +0xADA8 0xE121 +0xADA9 0xE122 +0xADAA 0xE123 +0xADAB 0xE124 +0xADAC 0xE125 +0xADAD 0xE126 +0xADAE 0xE127 +0xADAF 0xE128 +0xADB0 0xE129 +0xADB1 0xE12A +0xADB2 0xE12B +0xADB3 0xE12C +0xADB4 0xE12D +0xADB5 0xE12E +0xADB6 0xE12F +0xADB7 0xE130 +0xADB8 0xE131 +0xADB9 0xE132 +0xADBA 0xE133 +0xADBB 0xE134 +0xADBC 0xE135 +0xADBD 0xE136 +0xADBE 0xE137 +0xADBF 0xE138 +0xADC0 0xE139 +0xADC1 0xE13A +0xADC2 0xE13B +0xADC3 0xE13C +0xADC4 0xE13D +0xADC5 0xE13E +0xADC6 0xE13F +0xADC7 0xE140 +0xADC8 0xE141 +0xADC9 0xE142 +0xADCA 0xE143 +0xADCB 0xE144 +0xADCC 0xE145 +0xADCD 0xE146 +0xADCE 0xE147 +0xADCF 0xE148 +0xADD0 0xE149 +0xADD1 0xE14A +0xADD2 0xE14B +0xADD3 0xE14C +0xADD4 0xE14D +0xADD5 0xE14E +0xADD6 0xE14F +0xADD7 0xE150 +0xADD8 0xE151 +0xADD9 0xE152 +0xADDA 0xE153 +0xADDB 0xE154 +0xADDC 0xE155 +0xADDD 0xE156 +0xADDE 0xE157 +0xADDF 0xE158 +0xADE0 0xE159 +0xADE1 0xE15A +0xADE2 0xE15B +0xADE3 0xE15C +0xADE4 0xE15D +0xADE5 0xE15E +0xADE6 0xE15F +0xADE7 0xE160 +0xADE8 0xE161 +0xADE9 0xE162 +0xADEA 0xE163 +0xADEB 0xE164 +0xADEC 0xE165 +0xADED 0xE166 +0xADEE 0xE167 +0xADEF 0xE168 +0xADF0 0xE169 +0xADF1 0xE16A +0xADF2 0xE16B +0xADF3 0xE16C +0xADF4 0xE16D +0xADF5 0xE16E +0xADF6 0xE16F +0xADF7 0xE170 +0xADF8 0xE171 +0xADF9 0xE172 +0xADFA 0xE173 +0xADFB 0xE174 +0xADFC 0xE175 +0xADFD 0xE176 +0xADFE 0xE177 +0xAE40 0x74F3 +0xAE41 0x74F5 +0xAE42 0x74F8 +0xAE43 0x74F9 +0xAE44 0x74FA +0xAE45 0x74FB +0xAE46 0x74FC +0xAE47 0x74FD +0xAE48 0x74FE +0xAE49 0x7500 +0xAE4A 0x7501 +0xAE4B 0x7502 +0xAE4C 0x7503 +0xAE4D 0x7505 +0xAE4E 0x7506 +0xAE4F 0x7507 +0xAE50 0x7508 +0xAE51 0x7509 +0xAE52 0x750A +0xAE53 0x750B +0xAE54 0x750C +0xAE55 0x750E +0xAE56 0x7510 +0xAE57 0x7512 +0xAE58 0x7514 +0xAE59 0x7515 +0xAE5A 0x7516 +0xAE5B 0x7517 +0xAE5C 0x751B +0xAE5D 0x751D +0xAE5E 0x751E +0xAE5F 0x7520 +0xAE60 0x7521 +0xAE61 0x7522 +0xAE62 0x7523 +0xAE63 0x7524 +0xAE64 0x7526 +0xAE65 0x7527 +0xAE66 0x752A +0xAE67 0x752E +0xAE68 0x7534 +0xAE69 0x7536 +0xAE6A 0x7539 +0xAE6B 0x753C +0xAE6C 0x753D +0xAE6D 0x753F +0xAE6E 0x7541 +0xAE6F 0x7542 +0xAE70 0x7543 +0xAE71 0x7544 +0xAE72 0x7546 +0xAE73 0x7547 +0xAE74 0x7549 +0xAE75 0x754A +0xAE76 0x754D +0xAE77 0x7550 +0xAE78 0x7551 +0xAE79 0x7552 +0xAE7A 0x7553 +0xAE7B 0x7555 +0xAE7C 0x7556 +0xAE7D 0x7557 +0xAE7E 0x7558 +0xAE80 0x755D +0xAE81 0x755E +0xAE82 0x755F +0xAE83 0x7560 +0xAE84 0x7561 +0xAE85 0x7562 +0xAE86 0x7563 +0xAE87 0x7564 +0xAE88 0x7567 +0xAE89 0x7568 +0xAE8A 0x7569 +0xAE8B 0x756B +0xAE8C 0x756C +0xAE8D 0x756D +0xAE8E 0x756E +0xAE8F 0x756F +0xAE90 0x7570 +0xAE91 0x7571 +0xAE92 0x7573 +0xAE93 0x7575 +0xAE94 0x7576 +0xAE95 0x7577 +0xAE96 0x757A +0xAE97 0x757B +0xAE98 0x757C +0xAE99 0x757D +0xAE9A 0x757E +0xAE9B 0x7580 +0xAE9C 0x7581 +0xAE9D 0x7582 +0xAE9E 0x7584 +0xAE9F 0x7585 +0xAEA0 0x7587 +0xAEA1 0xE178 +0xAEA2 0xE179 +0xAEA3 0xE17A +0xAEA4 0xE17B +0xAEA5 0xE17C +0xAEA6 0xE17D +0xAEA7 0xE17E +0xAEA8 0xE17F +0xAEA9 0xE180 +0xAEAA 0xE181 +0xAEAB 0xE182 +0xAEAC 0xE183 +0xAEAD 0xE184 +0xAEAE 0xE185 +0xAEAF 0xE186 +0xAEB0 0xE187 +0xAEB1 0xE188 +0xAEB2 0xE189 +0xAEB3 0xE18A +0xAEB4 0xE18B +0xAEB5 0xE18C +0xAEB6 0xE18D +0xAEB7 0xE18E +0xAEB8 0xE18F +0xAEB9 0xE190 +0xAEBA 0xE191 +0xAEBB 0xE192 +0xAEBC 0xE193 +0xAEBD 0xE194 +0xAEBE 0xE195 +0xAEBF 0xE196 +0xAEC0 0xE197 +0xAEC1 0xE198 +0xAEC2 0xE199 +0xAEC3 0xE19A +0xAEC4 0xE19B +0xAEC5 0xE19C +0xAEC6 0xE19D +0xAEC7 0xE19E +0xAEC8 0xE19F +0xAEC9 0xE1A0 +0xAECA 0xE1A1 +0xAECB 0xE1A2 +0xAECC 0xE1A3 +0xAECD 0xE1A4 +0xAECE 0xE1A5 +0xAECF 0xE1A6 +0xAED0 0xE1A7 +0xAED1 0xE1A8 +0xAED2 0xE1A9 +0xAED3 0xE1AA +0xAED4 0xE1AB +0xAED5 0xE1AC +0xAED6 0xE1AD +0xAED7 0xE1AE +0xAED8 0xE1AF +0xAED9 0xE1B0 +0xAEDA 0xE1B1 +0xAEDB 0xE1B2 +0xAEDC 0xE1B3 +0xAEDD 0xE1B4 +0xAEDE 0xE1B5 +0xAEDF 0xE1B6 +0xAEE0 0xE1B7 +0xAEE1 0xE1B8 +0xAEE2 0xE1B9 +0xAEE3 0xE1BA +0xAEE4 0xE1BB +0xAEE5 0xE1BC +0xAEE6 0xE1BD +0xAEE7 0xE1BE +0xAEE8 0xE1BF +0xAEE9 0xE1C0 +0xAEEA 0xE1C1 +0xAEEB 0xE1C2 +0xAEEC 0xE1C3 +0xAEED 0xE1C4 +0xAEEE 0xE1C5 +0xAEEF 0xE1C6 +0xAEF0 0xE1C7 +0xAEF1 0xE1C8 +0xAEF2 0xE1C9 +0xAEF3 0xE1CA +0xAEF4 0xE1CB +0xAEF5 0xE1CC +0xAEF6 0xE1CD +0xAEF7 0xE1CE +0xAEF8 0xE1CF +0xAEF9 0xE1D0 +0xAEFA 0xE1D1 +0xAEFB 0xE1D2 +0xAEFC 0xE1D3 +0xAEFD 0xE1D4 +0xAEFE 0xE1D5 +0xAF40 0x7588 +0xAF41 0x7589 +0xAF42 0x758A +0xAF43 0x758C +0xAF44 0x758D +0xAF45 0x758E +0xAF46 0x7590 +0xAF47 0x7593 +0xAF48 0x7595 +0xAF49 0x7598 +0xAF4A 0x759B +0xAF4B 0x759C +0xAF4C 0x759E +0xAF4D 0x75A2 +0xAF4E 0x75A6 +0xAF4F 0x75A7 +0xAF50 0x75A8 +0xAF51 0x75A9 +0xAF52 0x75AA +0xAF53 0x75AD +0xAF54 0x75B6 +0xAF55 0x75B7 +0xAF56 0x75BA +0xAF57 0x75BB +0xAF58 0x75BF +0xAF59 0x75C0 +0xAF5A 0x75C1 +0xAF5B 0x75C6 +0xAF5C 0x75CB +0xAF5D 0x75CC +0xAF5E 0x75CE +0xAF5F 0x75CF +0xAF60 0x75D0 +0xAF61 0x75D1 +0xAF62 0x75D3 +0xAF63 0x75D7 +0xAF64 0x75D9 +0xAF65 0x75DA +0xAF66 0x75DC +0xAF67 0x75DD +0xAF68 0x75DF +0xAF69 0x75E0 +0xAF6A 0x75E1 +0xAF6B 0x75E5 +0xAF6C 0x75E9 +0xAF6D 0x75EC +0xAF6E 0x75ED +0xAF6F 0x75EE +0xAF70 0x75EF +0xAF71 0x75F2 +0xAF72 0x75F3 +0xAF73 0x75F5 +0xAF74 0x75F6 +0xAF75 0x75F7 +0xAF76 0x75F8 +0xAF77 0x75FA +0xAF78 0x75FB +0xAF79 0x75FD +0xAF7A 0x75FE +0xAF7B 0x7602 +0xAF7C 0x7604 +0xAF7D 0x7606 +0xAF7E 0x7607 +0xAF80 0x7608 +0xAF81 0x7609 +0xAF82 0x760B +0xAF83 0x760D +0xAF84 0x760E +0xAF85 0x760F +0xAF86 0x7611 +0xAF87 0x7612 +0xAF88 0x7613 +0xAF89 0x7614 +0xAF8A 0x7616 +0xAF8B 0x761A +0xAF8C 0x761C +0xAF8D 0x761D +0xAF8E 0x761E +0xAF8F 0x7621 +0xAF90 0x7623 +0xAF91 0x7627 +0xAF92 0x7628 +0xAF93 0x762C +0xAF94 0x762E +0xAF95 0x762F +0xAF96 0x7631 +0xAF97 0x7632 +0xAF98 0x7636 +0xAF99 0x7637 +0xAF9A 0x7639 +0xAF9B 0x763A +0xAF9C 0x763B +0xAF9D 0x763D +0xAF9E 0x7641 +0xAF9F 0x7642 +0xAFA0 0x7644 +0xAFA1 0xE1D6 +0xAFA2 0xE1D7 +0xAFA3 0xE1D8 +0xAFA4 0xE1D9 +0xAFA5 0xE1DA +0xAFA6 0xE1DB +0xAFA7 0xE1DC +0xAFA8 0xE1DD +0xAFA9 0xE1DE +0xAFAA 0xE1DF +0xAFAB 0xE1E0 +0xAFAC 0xE1E1 +0xAFAD 0xE1E2 +0xAFAE 0xE1E3 +0xAFAF 0xE1E4 +0xAFB0 0xE1E5 +0xAFB1 0xE1E6 +0xAFB2 0xE1E7 +0xAFB3 0xE1E8 +0xAFB4 0xE1E9 +0xAFB5 0xE1EA +0xAFB6 0xE1EB +0xAFB7 0xE1EC +0xAFB8 0xE1ED +0xAFB9 0xE1EE +0xAFBA 0xE1EF +0xAFBB 0xE1F0 +0xAFBC 0xE1F1 +0xAFBD 0xE1F2 +0xAFBE 0xE1F3 +0xAFBF 0xE1F4 +0xAFC0 0xE1F5 +0xAFC1 0xE1F6 +0xAFC2 0xE1F7 +0xAFC3 0xE1F8 +0xAFC4 0xE1F9 +0xAFC5 0xE1FA +0xAFC6 0xE1FB +0xAFC7 0xE1FC +0xAFC8 0xE1FD +0xAFC9 0xE1FE +0xAFCA 0xE1FF +0xAFCB 0xE200 +0xAFCC 0xE201 +0xAFCD 0xE202 +0xAFCE 0xE203 +0xAFCF 0xE204 +0xAFD0 0xE205 +0xAFD1 0xE206 +0xAFD2 0xE207 +0xAFD3 0xE208 +0xAFD4 0xE209 +0xAFD5 0xE20A +0xAFD6 0xE20B +0xAFD7 0xE20C +0xAFD8 0xE20D +0xAFD9 0xE20E +0xAFDA 0xE20F +0xAFDB 0xE210 +0xAFDC 0xE211 +0xAFDD 0xE212 +0xAFDE 0xE213 +0xAFDF 0xE214 +0xAFE0 0xE215 +0xAFE1 0xE216 +0xAFE2 0xE217 +0xAFE3 0xE218 +0xAFE4 0xE219 +0xAFE5 0xE21A +0xAFE6 0xE21B +0xAFE7 0xE21C +0xAFE8 0xE21D +0xAFE9 0xE21E +0xAFEA 0xE21F +0xAFEB 0xE220 +0xAFEC 0xE221 +0xAFED 0xE222 +0xAFEE 0xE223 +0xAFEF 0xE224 +0xAFF0 0xE225 +0xAFF1 0xE226 +0xAFF2 0xE227 +0xAFF3 0xE228 +0xAFF4 0xE229 +0xAFF5 0xE22A +0xAFF6 0xE22B +0xAFF7 0xE22C +0xAFF8 0xE22D +0xAFF9 0xE22E +0xAFFA 0xE22F +0xAFFB 0xE230 +0xAFFC 0xE231 +0xAFFD 0xE232 +0xAFFE 0xE233 +0xB040 0x7645 +0xB041 0x7646 +0xB042 0x7647 +0xB043 0x7648 +0xB044 0x7649 +0xB045 0x764A +0xB046 0x764B +0xB047 0x764E +0xB048 0x764F +0xB049 0x7650 +0xB04A 0x7651 +0xB04B 0x7652 +0xB04C 0x7653 +0xB04D 0x7655 +0xB04E 0x7657 +0xB04F 0x7658 +0xB050 0x7659 +0xB051 0x765A +0xB052 0x765B +0xB053 0x765D +0xB054 0x765F +0xB055 0x7660 +0xB056 0x7661 +0xB057 0x7662 +0xB058 0x7664 +0xB059 0x7665 +0xB05A 0x7666 +0xB05B 0x7667 +0xB05C 0x7668 +0xB05D 0x7669 +0xB05E 0x766A +0xB05F 0x766C +0xB060 0x766D +0xB061 0x766E +0xB062 0x7670 +0xB063 0x7671 +0xB064 0x7672 +0xB065 0x7673 +0xB066 0x7674 +0xB067 0x7675 +0xB068 0x7676 +0xB069 0x7677 +0xB06A 0x7679 +0xB06B 0x767A +0xB06C 0x767C +0xB06D 0x767F +0xB06E 0x7680 +0xB06F 0x7681 +0xB070 0x7683 +0xB071 0x7685 +0xB072 0x7689 +0xB073 0x768A +0xB074 0x768C +0xB075 0x768D +0xB076 0x768F +0xB077 0x7690 +0xB078 0x7692 +0xB079 0x7694 +0xB07A 0x7695 +0xB07B 0x7697 +0xB07C 0x7698 +0xB07D 0x769A +0xB07E 0x769B +0xB080 0x769C +0xB081 0x769D +0xB082 0x769E +0xB083 0x769F +0xB084 0x76A0 +0xB085 0x76A1 +0xB086 0x76A2 +0xB087 0x76A3 +0xB088 0x76A5 +0xB089 0x76A6 +0xB08A 0x76A7 +0xB08B 0x76A8 +0xB08C 0x76A9 +0xB08D 0x76AA +0xB08E 0x76AB +0xB08F 0x76AC +0xB090 0x76AD +0xB091 0x76AF +0xB092 0x76B0 +0xB093 0x76B3 +0xB094 0x76B5 +0xB095 0x76B6 +0xB096 0x76B7 +0xB097 0x76B8 +0xB098 0x76B9 +0xB099 0x76BA +0xB09A 0x76BB +0xB09B 0x76BC +0xB09C 0x76BD +0xB09D 0x76BE +0xB09E 0x76C0 +0xB09F 0x76C1 +0xB0A0 0x76C3 +0xB0A1 0x554A +0xB0A2 0x963F +0xB0A3 0x57C3 +0xB0A4 0x6328 +0xB0A5 0x54CE +0xB0A6 0x5509 +0xB0A7 0x54C0 +0xB0A8 0x7691 +0xB0A9 0x764C +0xB0AA 0x853C +0xB0AB 0x77EE +0xB0AC 0x827E +0xB0AD 0x788D +0xB0AE 0x7231 +0xB0AF 0x9698 +0xB0B0 0x978D +0xB0B1 0x6C28 +0xB0B2 0x5B89 +0xB0B3 0x4FFA +0xB0B4 0x6309 +0xB0B5 0x6697 +0xB0B6 0x5CB8 +0xB0B7 0x80FA +0xB0B8 0x6848 +0xB0B9 0x80AE +0xB0BA 0x6602 +0xB0BB 0x76CE +0xB0BC 0x51F9 +0xB0BD 0x6556 +0xB0BE 0x71AC +0xB0BF 0x7FF1 +0xB0C0 0x8884 +0xB0C1 0x50B2 +0xB0C2 0x5965 +0xB0C3 0x61CA +0xB0C4 0x6FB3 +0xB0C5 0x82AD +0xB0C6 0x634C +0xB0C7 0x6252 +0xB0C8 0x53ED +0xB0C9 0x5427 +0xB0CA 0x7B06 +0xB0CB 0x516B +0xB0CC 0x75A4 +0xB0CD 0x5DF4 +0xB0CE 0x62D4 +0xB0CF 0x8DCB +0xB0D0 0x9776 +0xB0D1 0x628A +0xB0D2 0x8019 +0xB0D3 0x575D +0xB0D4 0x9738 +0xB0D5 0x7F62 +0xB0D6 0x7238 +0xB0D7 0x767D +0xB0D8 0x67CF +0xB0D9 0x767E +0xB0DA 0x6446 +0xB0DB 0x4F70 +0xB0DC 0x8D25 +0xB0DD 0x62DC +0xB0DE 0x7A17 +0xB0DF 0x6591 +0xB0E0 0x73ED +0xB0E1 0x642C +0xB0E2 0x6273 +0xB0E3 0x822C +0xB0E4 0x9881 +0xB0E5 0x677F +0xB0E6 0x7248 +0xB0E7 0x626E +0xB0E8 0x62CC +0xB0E9 0x4F34 +0xB0EA 0x74E3 +0xB0EB 0x534A +0xB0EC 0x529E +0xB0ED 0x7ECA +0xB0EE 0x90A6 +0xB0EF 0x5E2E +0xB0F0 0x6886 +0xB0F1 0x699C +0xB0F2 0x8180 +0xB0F3 0x7ED1 +0xB0F4 0x68D2 +0xB0F5 0x78C5 +0xB0F6 0x868C +0xB0F7 0x9551 +0xB0F8 0x508D +0xB0F9 0x8C24 +0xB0FA 0x82DE +0xB0FB 0x80DE +0xB0FC 0x5305 +0xB0FD 0x8912 +0xB0FE 0x5265 +0xB140 0x76C4 +0xB141 0x76C7 +0xB142 0x76C9 +0xB143 0x76CB +0xB144 0x76CC +0xB145 0x76D3 +0xB146 0x76D5 +0xB147 0x76D9 +0xB148 0x76DA +0xB149 0x76DC +0xB14A 0x76DD +0xB14B 0x76DE +0xB14C 0x76E0 +0xB14D 0x76E1 +0xB14E 0x76E2 +0xB14F 0x76E3 +0xB150 0x76E4 +0xB151 0x76E6 +0xB152 0x76E7 +0xB153 0x76E8 +0xB154 0x76E9 +0xB155 0x76EA +0xB156 0x76EB +0xB157 0x76EC +0xB158 0x76ED +0xB159 0x76F0 +0xB15A 0x76F3 +0xB15B 0x76F5 +0xB15C 0x76F6 +0xB15D 0x76F7 +0xB15E 0x76FA +0xB15F 0x76FB +0xB160 0x76FD +0xB161 0x76FF +0xB162 0x7700 +0xB163 0x7702 +0xB164 0x7703 +0xB165 0x7705 +0xB166 0x7706 +0xB167 0x770A +0xB168 0x770C +0xB169 0x770E +0xB16A 0x770F +0xB16B 0x7710 +0xB16C 0x7711 +0xB16D 0x7712 +0xB16E 0x7713 +0xB16F 0x7714 +0xB170 0x7715 +0xB171 0x7716 +0xB172 0x7717 +0xB173 0x7718 +0xB174 0x771B +0xB175 0x771C +0xB176 0x771D +0xB177 0x771E +0xB178 0x7721 +0xB179 0x7723 +0xB17A 0x7724 +0xB17B 0x7725 +0xB17C 0x7727 +0xB17D 0x772A +0xB17E 0x772B +0xB180 0x772C +0xB181 0x772E +0xB182 0x7730 +0xB183 0x7731 +0xB184 0x7732 +0xB185 0x7733 +0xB186 0x7734 +0xB187 0x7739 +0xB188 0x773B +0xB189 0x773D +0xB18A 0x773E +0xB18B 0x773F +0xB18C 0x7742 +0xB18D 0x7744 +0xB18E 0x7745 +0xB18F 0x7746 +0xB190 0x7748 +0xB191 0x7749 +0xB192 0x774A +0xB193 0x774B +0xB194 0x774C +0xB195 0x774D +0xB196 0x774E +0xB197 0x774F +0xB198 0x7752 +0xB199 0x7753 +0xB19A 0x7754 +0xB19B 0x7755 +0xB19C 0x7756 +0xB19D 0x7757 +0xB19E 0x7758 +0xB19F 0x7759 +0xB1A0 0x775C +0xB1A1 0x8584 +0xB1A2 0x96F9 +0xB1A3 0x4FDD +0xB1A4 0x5821 +0xB1A5 0x9971 +0xB1A6 0x5B9D +0xB1A7 0x62B1 +0xB1A8 0x62A5 +0xB1A9 0x66B4 +0xB1AA 0x8C79 +0xB1AB 0x9C8D +0xB1AC 0x7206 +0xB1AD 0x676F +0xB1AE 0x7891 +0xB1AF 0x60B2 +0xB1B0 0x5351 +0xB1B1 0x5317 +0xB1B2 0x8F88 +0xB1B3 0x80CC +0xB1B4 0x8D1D +0xB1B5 0x94A1 +0xB1B6 0x500D +0xB1B7 0x72C8 +0xB1B8 0x5907 +0xB1B9 0x60EB +0xB1BA 0x7119 +0xB1BB 0x88AB +0xB1BC 0x5954 +0xB1BD 0x82EF +0xB1BE 0x672C +0xB1BF 0x7B28 +0xB1C0 0x5D29 +0xB1C1 0x7EF7 +0xB1C2 0x752D +0xB1C3 0x6CF5 +0xB1C4 0x8E66 +0xB1C5 0x8FF8 +0xB1C6 0x903C +0xB1C7 0x9F3B +0xB1C8 0x6BD4 +0xB1C9 0x9119 +0xB1CA 0x7B14 +0xB1CB 0x5F7C +0xB1CC 0x78A7 +0xB1CD 0x84D6 +0xB1CE 0x853D +0xB1CF 0x6BD5 +0xB1D0 0x6BD9 +0xB1D1 0x6BD6 +0xB1D2 0x5E01 +0xB1D3 0x5E87 +0xB1D4 0x75F9 +0xB1D5 0x95ED +0xB1D6 0x655D +0xB1D7 0x5F0A +0xB1D8 0x5FC5 +0xB1D9 0x8F9F +0xB1DA 0x58C1 +0xB1DB 0x81C2 +0xB1DC 0x907F +0xB1DD 0x965B +0xB1DE 0x97AD +0xB1DF 0x8FB9 +0xB1E0 0x7F16 +0xB1E1 0x8D2C +0xB1E2 0x6241 +0xB1E3 0x4FBF +0xB1E4 0x53D8 +0xB1E5 0x535E +0xB1E6 0x8FA8 +0xB1E7 0x8FA9 +0xB1E8 0x8FAB +0xB1E9 0x904D +0xB1EA 0x6807 +0xB1EB 0x5F6A +0xB1EC 0x8198 +0xB1ED 0x8868 +0xB1EE 0x9CD6 +0xB1EF 0x618B +0xB1F0 0x522B +0xB1F1 0x762A +0xB1F2 0x5F6C +0xB1F3 0x658C +0xB1F4 0x6FD2 +0xB1F5 0x6EE8 +0xB1F6 0x5BBE +0xB1F7 0x6448 +0xB1F8 0x5175 +0xB1F9 0x51B0 +0xB1FA 0x67C4 +0xB1FB 0x4E19 +0xB1FC 0x79C9 +0xB1FD 0x997C +0xB1FE 0x70B3 +0xB240 0x775D +0xB241 0x775E +0xB242 0x775F +0xB243 0x7760 +0xB244 0x7764 +0xB245 0x7767 +0xB246 0x7769 +0xB247 0x776A +0xB248 0x776D +0xB249 0x776E +0xB24A 0x776F +0xB24B 0x7770 +0xB24C 0x7771 +0xB24D 0x7772 +0xB24E 0x7773 +0xB24F 0x7774 +0xB250 0x7775 +0xB251 0x7776 +0xB252 0x7777 +0xB253 0x7778 +0xB254 0x777A +0xB255 0x777B +0xB256 0x777C +0xB257 0x7781 +0xB258 0x7782 +0xB259 0x7783 +0xB25A 0x7786 +0xB25B 0x7787 +0xB25C 0x7788 +0xB25D 0x7789 +0xB25E 0x778A +0xB25F 0x778B +0xB260 0x778F +0xB261 0x7790 +0xB262 0x7793 +0xB263 0x7794 +0xB264 0x7795 +0xB265 0x7796 +0xB266 0x7797 +0xB267 0x7798 +0xB268 0x7799 +0xB269 0x779A +0xB26A 0x779B +0xB26B 0x779C +0xB26C 0x779D +0xB26D 0x779E +0xB26E 0x77A1 +0xB26F 0x77A3 +0xB270 0x77A4 +0xB271 0x77A6 +0xB272 0x77A8 +0xB273 0x77AB +0xB274 0x77AD +0xB275 0x77AE +0xB276 0x77AF +0xB277 0x77B1 +0xB278 0x77B2 +0xB279 0x77B4 +0xB27A 0x77B6 +0xB27B 0x77B7 +0xB27C 0x77B8 +0xB27D 0x77B9 +0xB27E 0x77BA +0xB280 0x77BC +0xB281 0x77BE +0xB282 0x77C0 +0xB283 0x77C1 +0xB284 0x77C2 +0xB285 0x77C3 +0xB286 0x77C4 +0xB287 0x77C5 +0xB288 0x77C6 +0xB289 0x77C7 +0xB28A 0x77C8 +0xB28B 0x77C9 +0xB28C 0x77CA +0xB28D 0x77CB +0xB28E 0x77CC +0xB28F 0x77CE +0xB290 0x77CF +0xB291 0x77D0 +0xB292 0x77D1 +0xB293 0x77D2 +0xB294 0x77D3 +0xB295 0x77D4 +0xB296 0x77D5 +0xB297 0x77D6 +0xB298 0x77D8 +0xB299 0x77D9 +0xB29A 0x77DA +0xB29B 0x77DD +0xB29C 0x77DE +0xB29D 0x77DF +0xB29E 0x77E0 +0xB29F 0x77E1 +0xB2A0 0x77E4 +0xB2A1 0x75C5 +0xB2A2 0x5E76 +0xB2A3 0x73BB +0xB2A4 0x83E0 +0xB2A5 0x64AD +0xB2A6 0x62E8 +0xB2A7 0x94B5 +0xB2A8 0x6CE2 +0xB2A9 0x535A +0xB2AA 0x52C3 +0xB2AB 0x640F +0xB2AC 0x94C2 +0xB2AD 0x7B94 +0xB2AE 0x4F2F +0xB2AF 0x5E1B +0xB2B0 0x8236 +0xB2B1 0x8116 +0xB2B2 0x818A +0xB2B3 0x6E24 +0xB2B4 0x6CCA +0xB2B5 0x9A73 +0xB2B6 0x6355 +0xB2B7 0x535C +0xB2B8 0x54FA +0xB2B9 0x8865 +0xB2BA 0x57E0 +0xB2BB 0x4E0D +0xB2BC 0x5E03 +0xB2BD 0x6B65 +0xB2BE 0x7C3F +0xB2BF 0x90E8 +0xB2C0 0x6016 +0xB2C1 0x64E6 +0xB2C2 0x731C +0xB2C3 0x88C1 +0xB2C4 0x6750 +0xB2C5 0x624D +0xB2C6 0x8D22 +0xB2C7 0x776C +0xB2C8 0x8E29 +0xB2C9 0x91C7 +0xB2CA 0x5F69 +0xB2CB 0x83DC +0xB2CC 0x8521 +0xB2CD 0x9910 +0xB2CE 0x53C2 +0xB2CF 0x8695 +0xB2D0 0x6B8B +0xB2D1 0x60ED +0xB2D2 0x60E8 +0xB2D3 0x707F +0xB2D4 0x82CD +0xB2D5 0x8231 +0xB2D6 0x4ED3 +0xB2D7 0x6CA7 +0xB2D8 0x85CF +0xB2D9 0x64CD +0xB2DA 0x7CD9 +0xB2DB 0x69FD +0xB2DC 0x66F9 +0xB2DD 0x8349 +0xB2DE 0x5395 +0xB2DF 0x7B56 +0xB2E0 0x4FA7 +0xB2E1 0x518C +0xB2E2 0x6D4B +0xB2E3 0x5C42 +0xB2E4 0x8E6D +0xB2E5 0x63D2 +0xB2E6 0x53C9 +0xB2E7 0x832C +0xB2E8 0x8336 +0xB2E9 0x67E5 +0xB2EA 0x78B4 +0xB2EB 0x643D +0xB2EC 0x5BDF +0xB2ED 0x5C94 +0xB2EE 0x5DEE +0xB2EF 0x8BE7 +0xB2F0 0x62C6 +0xB2F1 0x67F4 +0xB2F2 0x8C7A +0xB2F3 0x6400 +0xB2F4 0x63BA +0xB2F5 0x8749 +0xB2F6 0x998B +0xB2F7 0x8C17 +0xB2F8 0x7F20 +0xB2F9 0x94F2 +0xB2FA 0x4EA7 +0xB2FB 0x9610 +0xB2FC 0x98A4 +0xB2FD 0x660C +0xB2FE 0x7316 +0xB340 0x77E6 +0xB341 0x77E8 +0xB342 0x77EA +0xB343 0x77EF +0xB344 0x77F0 +0xB345 0x77F1 +0xB346 0x77F2 +0xB347 0x77F4 +0xB348 0x77F5 +0xB349 0x77F7 +0xB34A 0x77F9 +0xB34B 0x77FA +0xB34C 0x77FB +0xB34D 0x77FC +0xB34E 0x7803 +0xB34F 0x7804 +0xB350 0x7805 +0xB351 0x7806 +0xB352 0x7807 +0xB353 0x7808 +0xB354 0x780A +0xB355 0x780B +0xB356 0x780E +0xB357 0x780F +0xB358 0x7810 +0xB359 0x7813 +0xB35A 0x7815 +0xB35B 0x7819 +0xB35C 0x781B +0xB35D 0x781E +0xB35E 0x7820 +0xB35F 0x7821 +0xB360 0x7822 +0xB361 0x7824 +0xB362 0x7828 +0xB363 0x782A +0xB364 0x782B +0xB365 0x782E +0xB366 0x782F +0xB367 0x7831 +0xB368 0x7832 +0xB369 0x7833 +0xB36A 0x7835 +0xB36B 0x7836 +0xB36C 0x783D +0xB36D 0x783F +0xB36E 0x7841 +0xB36F 0x7842 +0xB370 0x7843 +0xB371 0x7844 +0xB372 0x7846 +0xB373 0x7848 +0xB374 0x7849 +0xB375 0x784A +0xB376 0x784B +0xB377 0x784D +0xB378 0x784F +0xB379 0x7851 +0xB37A 0x7853 +0xB37B 0x7854 +0xB37C 0x7858 +0xB37D 0x7859 +0xB37E 0x785A +0xB380 0x785B +0xB381 0x785C +0xB382 0x785E +0xB383 0x785F +0xB384 0x7860 +0xB385 0x7861 +0xB386 0x7862 +0xB387 0x7863 +0xB388 0x7864 +0xB389 0x7865 +0xB38A 0x7866 +0xB38B 0x7867 +0xB38C 0x7868 +0xB38D 0x7869 +0xB38E 0x786F +0xB38F 0x7870 +0xB390 0x7871 +0xB391 0x7872 +0xB392 0x7873 +0xB393 0x7874 +0xB394 0x7875 +0xB395 0x7876 +0xB396 0x7878 +0xB397 0x7879 +0xB398 0x787A +0xB399 0x787B +0xB39A 0x787D +0xB39B 0x787E +0xB39C 0x787F +0xB39D 0x7880 +0xB39E 0x7881 +0xB39F 0x7882 +0xB3A0 0x7883 +0xB3A1 0x573A +0xB3A2 0x5C1D +0xB3A3 0x5E38 +0xB3A4 0x957F +0xB3A5 0x507F +0xB3A6 0x80A0 +0xB3A7 0x5382 +0xB3A8 0x655E +0xB3A9 0x7545 +0xB3AA 0x5531 +0xB3AB 0x5021 +0xB3AC 0x8D85 +0xB3AD 0x6284 +0xB3AE 0x949E +0xB3AF 0x671D +0xB3B0 0x5632 +0xB3B1 0x6F6E +0xB3B2 0x5DE2 +0xB3B3 0x5435 +0xB3B4 0x7092 +0xB3B5 0x8F66 +0xB3B6 0x626F +0xB3B7 0x64A4 +0xB3B8 0x63A3 +0xB3B9 0x5F7B +0xB3BA 0x6F88 +0xB3BB 0x90F4 +0xB3BC 0x81E3 +0xB3BD 0x8FB0 +0xB3BE 0x5C18 +0xB3BF 0x6668 +0xB3C0 0x5FF1 +0xB3C1 0x6C89 +0xB3C2 0x9648 +0xB3C3 0x8D81 +0xB3C4 0x886C +0xB3C5 0x6491 +0xB3C6 0x79F0 +0xB3C7 0x57CE +0xB3C8 0x6A59 +0xB3C9 0x6210 +0xB3CA 0x5448 +0xB3CB 0x4E58 +0xB3CC 0x7A0B +0xB3CD 0x60E9 +0xB3CE 0x6F84 +0xB3CF 0x8BDA +0xB3D0 0x627F +0xB3D1 0x901E +0xB3D2 0x9A8B +0xB3D3 0x79E4 +0xB3D4 0x5403 +0xB3D5 0x75F4 +0xB3D6 0x6301 +0xB3D7 0x5319 +0xB3D8 0x6C60 +0xB3D9 0x8FDF +0xB3DA 0x5F1B +0xB3DB 0x9A70 +0xB3DC 0x803B +0xB3DD 0x9F7F +0xB3DE 0x4F88 +0xB3DF 0x5C3A +0xB3E0 0x8D64 +0xB3E1 0x7FC5 +0xB3E2 0x65A5 +0xB3E3 0x70BD +0xB3E4 0x5145 +0xB3E5 0x51B2 +0xB3E6 0x866B +0xB3E7 0x5D07 +0xB3E8 0x5BA0 +0xB3E9 0x62BD +0xB3EA 0x916C +0xB3EB 0x7574 +0xB3EC 0x8E0C +0xB3ED 0x7A20 +0xB3EE 0x6101 +0xB3EF 0x7B79 +0xB3F0 0x4EC7 +0xB3F1 0x7EF8 +0xB3F2 0x7785 +0xB3F3 0x4E11 +0xB3F4 0x81ED +0xB3F5 0x521D +0xB3F6 0x51FA +0xB3F7 0x6A71 +0xB3F8 0x53A8 +0xB3F9 0x8E87 +0xB3FA 0x9504 +0xB3FB 0x96CF +0xB3FC 0x6EC1 +0xB3FD 0x9664 +0xB3FE 0x695A +0xB440 0x7884 +0xB441 0x7885 +0xB442 0x7886 +0xB443 0x7888 +0xB444 0x788A +0xB445 0x788B +0xB446 0x788F +0xB447 0x7890 +0xB448 0x7892 +0xB449 0x7894 +0xB44A 0x7895 +0xB44B 0x7896 +0xB44C 0x7899 +0xB44D 0x789D +0xB44E 0x789E +0xB44F 0x78A0 +0xB450 0x78A2 +0xB451 0x78A4 +0xB452 0x78A6 +0xB453 0x78A8 +0xB454 0x78A9 +0xB455 0x78AA +0xB456 0x78AB +0xB457 0x78AC +0xB458 0x78AD +0xB459 0x78AE +0xB45A 0x78AF +0xB45B 0x78B5 +0xB45C 0x78B6 +0xB45D 0x78B7 +0xB45E 0x78B8 +0xB45F 0x78BA +0xB460 0x78BB +0xB461 0x78BC +0xB462 0x78BD +0xB463 0x78BF +0xB464 0x78C0 +0xB465 0x78C2 +0xB466 0x78C3 +0xB467 0x78C4 +0xB468 0x78C6 +0xB469 0x78C7 +0xB46A 0x78C8 +0xB46B 0x78CC +0xB46C 0x78CD +0xB46D 0x78CE +0xB46E 0x78CF +0xB46F 0x78D1 +0xB470 0x78D2 +0xB471 0x78D3 +0xB472 0x78D6 +0xB473 0x78D7 +0xB474 0x78D8 +0xB475 0x78DA +0xB476 0x78DB +0xB477 0x78DC +0xB478 0x78DD +0xB479 0x78DE +0xB47A 0x78DF +0xB47B 0x78E0 +0xB47C 0x78E1 +0xB47D 0x78E2 +0xB47E 0x78E3 +0xB480 0x78E4 +0xB481 0x78E5 +0xB482 0x78E6 +0xB483 0x78E7 +0xB484 0x78E9 +0xB485 0x78EA +0xB486 0x78EB +0xB487 0x78ED +0xB488 0x78EE +0xB489 0x78EF +0xB48A 0x78F0 +0xB48B 0x78F1 +0xB48C 0x78F3 +0xB48D 0x78F5 +0xB48E 0x78F6 +0xB48F 0x78F8 +0xB490 0x78F9 +0xB491 0x78FB +0xB492 0x78FC +0xB493 0x78FD +0xB494 0x78FE +0xB495 0x78FF +0xB496 0x7900 +0xB497 0x7902 +0xB498 0x7903 +0xB499 0x7904 +0xB49A 0x7906 +0xB49B 0x7907 +0xB49C 0x7908 +0xB49D 0x7909 +0xB49E 0x790A +0xB49F 0x790B +0xB4A0 0x790C +0xB4A1 0x7840 +0xB4A2 0x50A8 +0xB4A3 0x77D7 +0xB4A4 0x6410 +0xB4A5 0x89E6 +0xB4A6 0x5904 +0xB4A7 0x63E3 +0xB4A8 0x5DDD +0xB4A9 0x7A7F +0xB4AA 0x693D +0xB4AB 0x4F20 +0xB4AC 0x8239 +0xB4AD 0x5598 +0xB4AE 0x4E32 +0xB4AF 0x75AE +0xB4B0 0x7A97 +0xB4B1 0x5E62 +0xB4B2 0x5E8A +0xB4B3 0x95EF +0xB4B4 0x521B +0xB4B5 0x5439 +0xB4B6 0x708A +0xB4B7 0x6376 +0xB4B8 0x9524 +0xB4B9 0x5782 +0xB4BA 0x6625 +0xB4BB 0x693F +0xB4BC 0x9187 +0xB4BD 0x5507 +0xB4BE 0x6DF3 +0xB4BF 0x7EAF +0xB4C0 0x8822 +0xB4C1 0x6233 +0xB4C2 0x7EF0 +0xB4C3 0x75B5 +0xB4C4 0x8328 +0xB4C5 0x78C1 +0xB4C6 0x96CC +0xB4C7 0x8F9E +0xB4C8 0x6148 +0xB4C9 0x74F7 +0xB4CA 0x8BCD +0xB4CB 0x6B64 +0xB4CC 0x523A +0xB4CD 0x8D50 +0xB4CE 0x6B21 +0xB4CF 0x806A +0xB4D0 0x8471 +0xB4D1 0x56F1 +0xB4D2 0x5306 +0xB4D3 0x4ECE +0xB4D4 0x4E1B +0xB4D5 0x51D1 +0xB4D6 0x7C97 +0xB4D7 0x918B +0xB4D8 0x7C07 +0xB4D9 0x4FC3 +0xB4DA 0x8E7F +0xB4DB 0x7BE1 +0xB4DC 0x7A9C +0xB4DD 0x6467 +0xB4DE 0x5D14 +0xB4DF 0x50AC +0xB4E0 0x8106 +0xB4E1 0x7601 +0xB4E2 0x7CB9 +0xB4E3 0x6DEC +0xB4E4 0x7FE0 +0xB4E5 0x6751 +0xB4E6 0x5B58 +0xB4E7 0x5BF8 +0xB4E8 0x78CB +0xB4E9 0x64AE +0xB4EA 0x6413 +0xB4EB 0x63AA +0xB4EC 0x632B +0xB4ED 0x9519 +0xB4EE 0x642D +0xB4EF 0x8FBE +0xB4F0 0x7B54 +0xB4F1 0x7629 +0xB4F2 0x6253 +0xB4F3 0x5927 +0xB4F4 0x5446 +0xB4F5 0x6B79 +0xB4F6 0x50A3 +0xB4F7 0x6234 +0xB4F8 0x5E26 +0xB4F9 0x6B86 +0xB4FA 0x4EE3 +0xB4FB 0x8D37 +0xB4FC 0x888B +0xB4FD 0x5F85 +0xB4FE 0x902E +0xB540 0x790D +0xB541 0x790E +0xB542 0x790F +0xB543 0x7910 +0xB544 0x7911 +0xB545 0x7912 +0xB546 0x7914 +0xB547 0x7915 +0xB548 0x7916 +0xB549 0x7917 +0xB54A 0x7918 +0xB54B 0x7919 +0xB54C 0x791A +0xB54D 0x791B +0xB54E 0x791C +0xB54F 0x791D +0xB550 0x791F +0xB551 0x7920 +0xB552 0x7921 +0xB553 0x7922 +0xB554 0x7923 +0xB555 0x7925 +0xB556 0x7926 +0xB557 0x7927 +0xB558 0x7928 +0xB559 0x7929 +0xB55A 0x792A +0xB55B 0x792B +0xB55C 0x792C +0xB55D 0x792D +0xB55E 0x792E +0xB55F 0x792F +0xB560 0x7930 +0xB561 0x7931 +0xB562 0x7932 +0xB563 0x7933 +0xB564 0x7935 +0xB565 0x7936 +0xB566 0x7937 +0xB567 0x7938 +0xB568 0x7939 +0xB569 0x793D +0xB56A 0x793F +0xB56B 0x7942 +0xB56C 0x7943 +0xB56D 0x7944 +0xB56E 0x7945 +0xB56F 0x7947 +0xB570 0x794A +0xB571 0x794B +0xB572 0x794C +0xB573 0x794D +0xB574 0x794E +0xB575 0x794F +0xB576 0x7950 +0xB577 0x7951 +0xB578 0x7952 +0xB579 0x7954 +0xB57A 0x7955 +0xB57B 0x7958 +0xB57C 0x7959 +0xB57D 0x7961 +0xB57E 0x7963 +0xB580 0x7964 +0xB581 0x7966 +0xB582 0x7969 +0xB583 0x796A +0xB584 0x796B +0xB585 0x796C +0xB586 0x796E +0xB587 0x7970 +0xB588 0x7971 +0xB589 0x7972 +0xB58A 0x7973 +0xB58B 0x7974 +0xB58C 0x7975 +0xB58D 0x7976 +0xB58E 0x7979 +0xB58F 0x797B +0xB590 0x797C +0xB591 0x797D +0xB592 0x797E +0xB593 0x797F +0xB594 0x7982 +0xB595 0x7983 +0xB596 0x7986 +0xB597 0x7987 +0xB598 0x7988 +0xB599 0x7989 +0xB59A 0x798B +0xB59B 0x798C +0xB59C 0x798D +0xB59D 0x798E +0xB59E 0x7990 +0xB59F 0x7991 +0xB5A0 0x7992 +0xB5A1 0x6020 +0xB5A2 0x803D +0xB5A3 0x62C5 +0xB5A4 0x4E39 +0xB5A5 0x5355 +0xB5A6 0x90F8 +0xB5A7 0x63B8 +0xB5A8 0x80C6 +0xB5A9 0x65E6 +0xB5AA 0x6C2E +0xB5AB 0x4F46 +0xB5AC 0x60EE +0xB5AD 0x6DE1 +0xB5AE 0x8BDE +0xB5AF 0x5F39 +0xB5B0 0x86CB +0xB5B1 0x5F53 +0xB5B2 0x6321 +0xB5B3 0x515A +0xB5B4 0x8361 +0xB5B5 0x6863 +0xB5B6 0x5200 +0xB5B7 0x6363 +0xB5B8 0x8E48 +0xB5B9 0x5012 +0xB5BA 0x5C9B +0xB5BB 0x7977 +0xB5BC 0x5BFC +0xB5BD 0x5230 +0xB5BE 0x7A3B +0xB5BF 0x60BC +0xB5C0 0x9053 +0xB5C1 0x76D7 +0xB5C2 0x5FB7 +0xB5C3 0x5F97 +0xB5C4 0x7684 +0xB5C5 0x8E6C +0xB5C6 0x706F +0xB5C7 0x767B +0xB5C8 0x7B49 +0xB5C9 0x77AA +0xB5CA 0x51F3 +0xB5CB 0x9093 +0xB5CC 0x5824 +0xB5CD 0x4F4E +0xB5CE 0x6EF4 +0xB5CF 0x8FEA +0xB5D0 0x654C +0xB5D1 0x7B1B +0xB5D2 0x72C4 +0xB5D3 0x6DA4 +0xB5D4 0x7FDF +0xB5D5 0x5AE1 +0xB5D6 0x62B5 +0xB5D7 0x5E95 +0xB5D8 0x5730 +0xB5D9 0x8482 +0xB5DA 0x7B2C +0xB5DB 0x5E1D +0xB5DC 0x5F1F +0xB5DD 0x9012 +0xB5DE 0x7F14 +0xB5DF 0x98A0 +0xB5E0 0x6382 +0xB5E1 0x6EC7 +0xB5E2 0x7898 +0xB5E3 0x70B9 +0xB5E4 0x5178 +0xB5E5 0x975B +0xB5E6 0x57AB +0xB5E7 0x7535 +0xB5E8 0x4F43 +0xB5E9 0x7538 +0xB5EA 0x5E97 +0xB5EB 0x60E6 +0xB5EC 0x5960 +0xB5ED 0x6DC0 +0xB5EE 0x6BBF +0xB5EF 0x7889 +0xB5F0 0x53FC +0xB5F1 0x96D5 +0xB5F2 0x51CB +0xB5F3 0x5201 +0xB5F4 0x6389 +0xB5F5 0x540A +0xB5F6 0x9493 +0xB5F7 0x8C03 +0xB5F8 0x8DCC +0xB5F9 0x7239 +0xB5FA 0x789F +0xB5FB 0x8776 +0xB5FC 0x8FED +0xB5FD 0x8C0D +0xB5FE 0x53E0 +0xB640 0x7993 +0xB641 0x7994 +0xB642 0x7995 +0xB643 0x7996 +0xB644 0x7997 +0xB645 0x7998 +0xB646 0x7999 +0xB647 0x799B +0xB648 0x799C +0xB649 0x799D +0xB64A 0x799E +0xB64B 0x799F +0xB64C 0x79A0 +0xB64D 0x79A1 +0xB64E 0x79A2 +0xB64F 0x79A3 +0xB650 0x79A4 +0xB651 0x79A5 +0xB652 0x79A6 +0xB653 0x79A8 +0xB654 0x79A9 +0xB655 0x79AA +0xB656 0x79AB +0xB657 0x79AC +0xB658 0x79AD +0xB659 0x79AE +0xB65A 0x79AF +0xB65B 0x79B0 +0xB65C 0x79B1 +0xB65D 0x79B2 +0xB65E 0x79B4 +0xB65F 0x79B5 +0xB660 0x79B6 +0xB661 0x79B7 +0xB662 0x79B8 +0xB663 0x79BC +0xB664 0x79BF +0xB665 0x79C2 +0xB666 0x79C4 +0xB667 0x79C5 +0xB668 0x79C7 +0xB669 0x79C8 +0xB66A 0x79CA +0xB66B 0x79CC +0xB66C 0x79CE +0xB66D 0x79CF +0xB66E 0x79D0 +0xB66F 0x79D3 +0xB670 0x79D4 +0xB671 0x79D6 +0xB672 0x79D7 +0xB673 0x79D9 +0xB674 0x79DA +0xB675 0x79DB +0xB676 0x79DC +0xB677 0x79DD +0xB678 0x79DE +0xB679 0x79E0 +0xB67A 0x79E1 +0xB67B 0x79E2 +0xB67C 0x79E5 +0xB67D 0x79E8 +0xB67E 0x79EA +0xB680 0x79EC +0xB681 0x79EE +0xB682 0x79F1 +0xB683 0x79F2 +0xB684 0x79F3 +0xB685 0x79F4 +0xB686 0x79F5 +0xB687 0x79F6 +0xB688 0x79F7 +0xB689 0x79F9 +0xB68A 0x79FA +0xB68B 0x79FC +0xB68C 0x79FE +0xB68D 0x79FF +0xB68E 0x7A01 +0xB68F 0x7A04 +0xB690 0x7A05 +0xB691 0x7A07 +0xB692 0x7A08 +0xB693 0x7A09 +0xB694 0x7A0A +0xB695 0x7A0C +0xB696 0x7A0F +0xB697 0x7A10 +0xB698 0x7A11 +0xB699 0x7A12 +0xB69A 0x7A13 +0xB69B 0x7A15 +0xB69C 0x7A16 +0xB69D 0x7A18 +0xB69E 0x7A19 +0xB69F 0x7A1B +0xB6A0 0x7A1C +0xB6A1 0x4E01 +0xB6A2 0x76EF +0xB6A3 0x53EE +0xB6A4 0x9489 +0xB6A5 0x9876 +0xB6A6 0x9F0E +0xB6A7 0x952D +0xB6A8 0x5B9A +0xB6A9 0x8BA2 +0xB6AA 0x4E22 +0xB6AB 0x4E1C +0xB6AC 0x51AC +0xB6AD 0x8463 +0xB6AE 0x61C2 +0xB6AF 0x52A8 +0xB6B0 0x680B +0xB6B1 0x4F97 +0xB6B2 0x606B +0xB6B3 0x51BB +0xB6B4 0x6D1E +0xB6B5 0x515C +0xB6B6 0x6296 +0xB6B7 0x6597 +0xB6B8 0x9661 +0xB6B9 0x8C46 +0xB6BA 0x9017 +0xB6BB 0x75D8 +0xB6BC 0x90FD +0xB6BD 0x7763 +0xB6BE 0x6BD2 +0xB6BF 0x728A +0xB6C0 0x72EC +0xB6C1 0x8BFB +0xB6C2 0x5835 +0xB6C3 0x7779 +0xB6C4 0x8D4C +0xB6C5 0x675C +0xB6C6 0x9540 +0xB6C7 0x809A +0xB6C8 0x5EA6 +0xB6C9 0x6E21 +0xB6CA 0x5992 +0xB6CB 0x7AEF +0xB6CC 0x77ED +0xB6CD 0x953B +0xB6CE 0x6BB5 +0xB6CF 0x65AD +0xB6D0 0x7F0E +0xB6D1 0x5806 +0xB6D2 0x5151 +0xB6D3 0x961F +0xB6D4 0x5BF9 +0xB6D5 0x58A9 +0xB6D6 0x5428 +0xB6D7 0x8E72 +0xB6D8 0x6566 +0xB6D9 0x987F +0xB6DA 0x56E4 +0xB6DB 0x949D +0xB6DC 0x76FE +0xB6DD 0x9041 +0xB6DE 0x6387 +0xB6DF 0x54C6 +0xB6E0 0x591A +0xB6E1 0x593A +0xB6E2 0x579B +0xB6E3 0x8EB2 +0xB6E4 0x6735 +0xB6E5 0x8DFA +0xB6E6 0x8235 +0xB6E7 0x5241 +0xB6E8 0x60F0 +0xB6E9 0x5815 +0xB6EA 0x86FE +0xB6EB 0x5CE8 +0xB6EC 0x9E45 +0xB6ED 0x4FC4 +0xB6EE 0x989D +0xB6EF 0x8BB9 +0xB6F0 0x5A25 +0xB6F1 0x6076 +0xB6F2 0x5384 +0xB6F3 0x627C +0xB6F4 0x904F +0xB6F5 0x9102 +0xB6F6 0x997F +0xB6F7 0x6069 +0xB6F8 0x800C +0xB6F9 0x513F +0xB6FA 0x8033 +0xB6FB 0x5C14 +0xB6FC 0x9975 +0xB6FD 0x6D31 +0xB6FE 0x4E8C +0xB740 0x7A1D +0xB741 0x7A1F +0xB742 0x7A21 +0xB743 0x7A22 +0xB744 0x7A24 +0xB745 0x7A25 +0xB746 0x7A26 +0xB747 0x7A27 +0xB748 0x7A28 +0xB749 0x7A29 +0xB74A 0x7A2A +0xB74B 0x7A2B +0xB74C 0x7A2C +0xB74D 0x7A2D +0xB74E 0x7A2E +0xB74F 0x7A2F +0xB750 0x7A30 +0xB751 0x7A31 +0xB752 0x7A32 +0xB753 0x7A34 +0xB754 0x7A35 +0xB755 0x7A36 +0xB756 0x7A38 +0xB757 0x7A3A +0xB758 0x7A3E +0xB759 0x7A40 +0xB75A 0x7A41 +0xB75B 0x7A42 +0xB75C 0x7A43 +0xB75D 0x7A44 +0xB75E 0x7A45 +0xB75F 0x7A47 +0xB760 0x7A48 +0xB761 0x7A49 +0xB762 0x7A4A +0xB763 0x7A4B +0xB764 0x7A4C +0xB765 0x7A4D +0xB766 0x7A4E +0xB767 0x7A4F +0xB768 0x7A50 +0xB769 0x7A52 +0xB76A 0x7A53 +0xB76B 0x7A54 +0xB76C 0x7A55 +0xB76D 0x7A56 +0xB76E 0x7A58 +0xB76F 0x7A59 +0xB770 0x7A5A +0xB771 0x7A5B +0xB772 0x7A5C +0xB773 0x7A5D +0xB774 0x7A5E +0xB775 0x7A5F +0xB776 0x7A60 +0xB777 0x7A61 +0xB778 0x7A62 +0xB779 0x7A63 +0xB77A 0x7A64 +0xB77B 0x7A65 +0xB77C 0x7A66 +0xB77D 0x7A67 +0xB77E 0x7A68 +0xB780 0x7A69 +0xB781 0x7A6A +0xB782 0x7A6B +0xB783 0x7A6C +0xB784 0x7A6D +0xB785 0x7A6E +0xB786 0x7A6F +0xB787 0x7A71 +0xB788 0x7A72 +0xB789 0x7A73 +0xB78A 0x7A75 +0xB78B 0x7A7B +0xB78C 0x7A7C +0xB78D 0x7A7D +0xB78E 0x7A7E +0xB78F 0x7A82 +0xB790 0x7A85 +0xB791 0x7A87 +0xB792 0x7A89 +0xB793 0x7A8A +0xB794 0x7A8B +0xB795 0x7A8C +0xB796 0x7A8E +0xB797 0x7A8F +0xB798 0x7A90 +0xB799 0x7A93 +0xB79A 0x7A94 +0xB79B 0x7A99 +0xB79C 0x7A9A +0xB79D 0x7A9B +0xB79E 0x7A9E +0xB79F 0x7AA1 +0xB7A0 0x7AA2 +0xB7A1 0x8D30 +0xB7A2 0x53D1 +0xB7A3 0x7F5A +0xB7A4 0x7B4F +0xB7A5 0x4F10 +0xB7A6 0x4E4F +0xB7A7 0x9600 +0xB7A8 0x6CD5 +0xB7A9 0x73D0 +0xB7AA 0x85E9 +0xB7AB 0x5E06 +0xB7AC 0x756A +0xB7AD 0x7FFB +0xB7AE 0x6A0A +0xB7AF 0x77FE +0xB7B0 0x9492 +0xB7B1 0x7E41 +0xB7B2 0x51E1 +0xB7B3 0x70E6 +0xB7B4 0x53CD +0xB7B5 0x8FD4 +0xB7B6 0x8303 +0xB7B7 0x8D29 +0xB7B8 0x72AF +0xB7B9 0x996D +0xB7BA 0x6CDB +0xB7BB 0x574A +0xB7BC 0x82B3 +0xB7BD 0x65B9 +0xB7BE 0x80AA +0xB7BF 0x623F +0xB7C0 0x9632 +0xB7C1 0x59A8 +0xB7C2 0x4EFF +0xB7C3 0x8BBF +0xB7C4 0x7EBA +0xB7C5 0x653E +0xB7C6 0x83F2 +0xB7C7 0x975E +0xB7C8 0x5561 +0xB7C9 0x98DE +0xB7CA 0x80A5 +0xB7CB 0x532A +0xB7CC 0x8BFD +0xB7CD 0x5420 +0xB7CE 0x80BA +0xB7CF 0x5E9F +0xB7D0 0x6CB8 +0xB7D1 0x8D39 +0xB7D2 0x82AC +0xB7D3 0x915A +0xB7D4 0x5429 +0xB7D5 0x6C1B +0xB7D6 0x5206 +0xB7D7 0x7EB7 +0xB7D8 0x575F +0xB7D9 0x711A +0xB7DA 0x6C7E +0xB7DB 0x7C89 +0xB7DC 0x594B +0xB7DD 0x4EFD +0xB7DE 0x5FFF +0xB7DF 0x6124 +0xB7E0 0x7CAA +0xB7E1 0x4E30 +0xB7E2 0x5C01 +0xB7E3 0x67AB +0xB7E4 0x8702 +0xB7E5 0x5CF0 +0xB7E6 0x950B +0xB7E7 0x98CE +0xB7E8 0x75AF +0xB7E9 0x70FD +0xB7EA 0x9022 +0xB7EB 0x51AF +0xB7EC 0x7F1D +0xB7ED 0x8BBD +0xB7EE 0x5949 +0xB7EF 0x51E4 +0xB7F0 0x4F5B +0xB7F1 0x5426 +0xB7F2 0x592B +0xB7F3 0x6577 +0xB7F4 0x80A4 +0xB7F5 0x5B75 +0xB7F6 0x6276 +0xB7F7 0x62C2 +0xB7F8 0x8F90 +0xB7F9 0x5E45 +0xB7FA 0x6C1F +0xB7FB 0x7B26 +0xB7FC 0x4F0F +0xB7FD 0x4FD8 +0xB7FE 0x670D +0xB840 0x7AA3 +0xB841 0x7AA4 +0xB842 0x7AA7 +0xB843 0x7AA9 +0xB844 0x7AAA +0xB845 0x7AAB +0xB846 0x7AAE +0xB847 0x7AAF +0xB848 0x7AB0 +0xB849 0x7AB1 +0xB84A 0x7AB2 +0xB84B 0x7AB4 +0xB84C 0x7AB5 +0xB84D 0x7AB6 +0xB84E 0x7AB7 +0xB84F 0x7AB8 +0xB850 0x7AB9 +0xB851 0x7ABA +0xB852 0x7ABB +0xB853 0x7ABC +0xB854 0x7ABD +0xB855 0x7ABE +0xB856 0x7AC0 +0xB857 0x7AC1 +0xB858 0x7AC2 +0xB859 0x7AC3 +0xB85A 0x7AC4 +0xB85B 0x7AC5 +0xB85C 0x7AC6 +0xB85D 0x7AC7 +0xB85E 0x7AC8 +0xB85F 0x7AC9 +0xB860 0x7ACA +0xB861 0x7ACC +0xB862 0x7ACD +0xB863 0x7ACE +0xB864 0x7ACF +0xB865 0x7AD0 +0xB866 0x7AD1 +0xB867 0x7AD2 +0xB868 0x7AD3 +0xB869 0x7AD4 +0xB86A 0x7AD5 +0xB86B 0x7AD7 +0xB86C 0x7AD8 +0xB86D 0x7ADA +0xB86E 0x7ADB +0xB86F 0x7ADC +0xB870 0x7ADD +0xB871 0x7AE1 +0xB872 0x7AE2 +0xB873 0x7AE4 +0xB874 0x7AE7 +0xB875 0x7AE8 +0xB876 0x7AE9 +0xB877 0x7AEA +0xB878 0x7AEB +0xB879 0x7AEC +0xB87A 0x7AEE +0xB87B 0x7AF0 +0xB87C 0x7AF1 +0xB87D 0x7AF2 +0xB87E 0x7AF3 +0xB880 0x7AF4 +0xB881 0x7AF5 +0xB882 0x7AF6 +0xB883 0x7AF7 +0xB884 0x7AF8 +0xB885 0x7AFB +0xB886 0x7AFC +0xB887 0x7AFE +0xB888 0x7B00 +0xB889 0x7B01 +0xB88A 0x7B02 +0xB88B 0x7B05 +0xB88C 0x7B07 +0xB88D 0x7B09 +0xB88E 0x7B0C +0xB88F 0x7B0D +0xB890 0x7B0E +0xB891 0x7B10 +0xB892 0x7B12 +0xB893 0x7B13 +0xB894 0x7B16 +0xB895 0x7B17 +0xB896 0x7B18 +0xB897 0x7B1A +0xB898 0x7B1C +0xB899 0x7B1D +0xB89A 0x7B1F +0xB89B 0x7B21 +0xB89C 0x7B22 +0xB89D 0x7B23 +0xB89E 0x7B27 +0xB89F 0x7B29 +0xB8A0 0x7B2D +0xB8A1 0x6D6E +0xB8A2 0x6DAA +0xB8A3 0x798F +0xB8A4 0x88B1 +0xB8A5 0x5F17 +0xB8A6 0x752B +0xB8A7 0x629A +0xB8A8 0x8F85 +0xB8A9 0x4FEF +0xB8AA 0x91DC +0xB8AB 0x65A7 +0xB8AC 0x812F +0xB8AD 0x8151 +0xB8AE 0x5E9C +0xB8AF 0x8150 +0xB8B0 0x8D74 +0xB8B1 0x526F +0xB8B2 0x8986 +0xB8B3 0x8D4B +0xB8B4 0x590D +0xB8B5 0x5085 +0xB8B6 0x4ED8 +0xB8B7 0x961C +0xB8B8 0x7236 +0xB8B9 0x8179 +0xB8BA 0x8D1F +0xB8BB 0x5BCC +0xB8BC 0x8BA3 +0xB8BD 0x9644 +0xB8BE 0x5987 +0xB8BF 0x7F1A +0xB8C0 0x5490 +0xB8C1 0x5676 +0xB8C2 0x560E +0xB8C3 0x8BE5 +0xB8C4 0x6539 +0xB8C5 0x6982 +0xB8C6 0x9499 +0xB8C7 0x76D6 +0xB8C8 0x6E89 +0xB8C9 0x5E72 +0xB8CA 0x7518 +0xB8CB 0x6746 +0xB8CC 0x67D1 +0xB8CD 0x7AFF +0xB8CE 0x809D +0xB8CF 0x8D76 +0xB8D0 0x611F +0xB8D1 0x79C6 +0xB8D2 0x6562 +0xB8D3 0x8D63 +0xB8D4 0x5188 +0xB8D5 0x521A +0xB8D6 0x94A2 +0xB8D7 0x7F38 +0xB8D8 0x809B +0xB8D9 0x7EB2 +0xB8DA 0x5C97 +0xB8DB 0x6E2F +0xB8DC 0x6760 +0xB8DD 0x7BD9 +0xB8DE 0x768B +0xB8DF 0x9AD8 +0xB8E0 0x818F +0xB8E1 0x7F94 +0xB8E2 0x7CD5 +0xB8E3 0x641E +0xB8E4 0x9550 +0xB8E5 0x7A3F +0xB8E6 0x544A +0xB8E7 0x54E5 +0xB8E8 0x6B4C +0xB8E9 0x6401 +0xB8EA 0x6208 +0xB8EB 0x9E3D +0xB8EC 0x80F3 +0xB8ED 0x7599 +0xB8EE 0x5272 +0xB8EF 0x9769 +0xB8F0 0x845B +0xB8F1 0x683C +0xB8F2 0x86E4 +0xB8F3 0x9601 +0xB8F4 0x9694 +0xB8F5 0x94EC +0xB8F6 0x4E2A +0xB8F7 0x5404 +0xB8F8 0x7ED9 +0xB8F9 0x6839 +0xB8FA 0x8DDF +0xB8FB 0x8015 +0xB8FC 0x66F4 +0xB8FD 0x5E9A +0xB8FE 0x7FB9 +0xB940 0x7B2F +0xB941 0x7B30 +0xB942 0x7B32 +0xB943 0x7B34 +0xB944 0x7B35 +0xB945 0x7B36 +0xB946 0x7B37 +0xB947 0x7B39 +0xB948 0x7B3B +0xB949 0x7B3D +0xB94A 0x7B3F +0xB94B 0x7B40 +0xB94C 0x7B41 +0xB94D 0x7B42 +0xB94E 0x7B43 +0xB94F 0x7B44 +0xB950 0x7B46 +0xB951 0x7B48 +0xB952 0x7B4A +0xB953 0x7B4D +0xB954 0x7B4E +0xB955 0x7B53 +0xB956 0x7B55 +0xB957 0x7B57 +0xB958 0x7B59 +0xB959 0x7B5C +0xB95A 0x7B5E +0xB95B 0x7B5F +0xB95C 0x7B61 +0xB95D 0x7B63 +0xB95E 0x7B64 +0xB95F 0x7B65 +0xB960 0x7B66 +0xB961 0x7B67 +0xB962 0x7B68 +0xB963 0x7B69 +0xB964 0x7B6A +0xB965 0x7B6B +0xB966 0x7B6C +0xB967 0x7B6D +0xB968 0x7B6F +0xB969 0x7B70 +0xB96A 0x7B73 +0xB96B 0x7B74 +0xB96C 0x7B76 +0xB96D 0x7B78 +0xB96E 0x7B7A +0xB96F 0x7B7C +0xB970 0x7B7D +0xB971 0x7B7F +0xB972 0x7B81 +0xB973 0x7B82 +0xB974 0x7B83 +0xB975 0x7B84 +0xB976 0x7B86 +0xB977 0x7B87 +0xB978 0x7B88 +0xB979 0x7B89 +0xB97A 0x7B8A +0xB97B 0x7B8B +0xB97C 0x7B8C +0xB97D 0x7B8E +0xB97E 0x7B8F +0xB980 0x7B91 +0xB981 0x7B92 +0xB982 0x7B93 +0xB983 0x7B96 +0xB984 0x7B98 +0xB985 0x7B99 +0xB986 0x7B9A +0xB987 0x7B9B +0xB988 0x7B9E +0xB989 0x7B9F +0xB98A 0x7BA0 +0xB98B 0x7BA3 +0xB98C 0x7BA4 +0xB98D 0x7BA5 +0xB98E 0x7BAE +0xB98F 0x7BAF +0xB990 0x7BB0 +0xB991 0x7BB2 +0xB992 0x7BB3 +0xB993 0x7BB5 +0xB994 0x7BB6 +0xB995 0x7BB7 +0xB996 0x7BB9 +0xB997 0x7BBA +0xB998 0x7BBB +0xB999 0x7BBC +0xB99A 0x7BBD +0xB99B 0x7BBE +0xB99C 0x7BBF +0xB99D 0x7BC0 +0xB99E 0x7BC2 +0xB99F 0x7BC3 +0xB9A0 0x7BC4 +0xB9A1 0x57C2 +0xB9A2 0x803F +0xB9A3 0x6897 +0xB9A4 0x5DE5 +0xB9A5 0x653B +0xB9A6 0x529F +0xB9A7 0x606D +0xB9A8 0x9F9A +0xB9A9 0x4F9B +0xB9AA 0x8EAC +0xB9AB 0x516C +0xB9AC 0x5BAB +0xB9AD 0x5F13 +0xB9AE 0x5DE9 +0xB9AF 0x6C5E +0xB9B0 0x62F1 +0xB9B1 0x8D21 +0xB9B2 0x5171 +0xB9B3 0x94A9 +0xB9B4 0x52FE +0xB9B5 0x6C9F +0xB9B6 0x82DF +0xB9B7 0x72D7 +0xB9B8 0x57A2 +0xB9B9 0x6784 +0xB9BA 0x8D2D +0xB9BB 0x591F +0xB9BC 0x8F9C +0xB9BD 0x83C7 +0xB9BE 0x5495 +0xB9BF 0x7B8D +0xB9C0 0x4F30 +0xB9C1 0x6CBD +0xB9C2 0x5B64 +0xB9C3 0x59D1 +0xB9C4 0x9F13 +0xB9C5 0x53E4 +0xB9C6 0x86CA +0xB9C7 0x9AA8 +0xB9C8 0x8C37 +0xB9C9 0x80A1 +0xB9CA 0x6545 +0xB9CB 0x987E +0xB9CC 0x56FA +0xB9CD 0x96C7 +0xB9CE 0x522E +0xB9CF 0x74DC +0xB9D0 0x5250 +0xB9D1 0x5BE1 +0xB9D2 0x6302 +0xB9D3 0x8902 +0xB9D4 0x4E56 +0xB9D5 0x62D0 +0xB9D6 0x602A +0xB9D7 0x68FA +0xB9D8 0x5173 +0xB9D9 0x5B98 +0xB9DA 0x51A0 +0xB9DB 0x89C2 +0xB9DC 0x7BA1 +0xB9DD 0x9986 +0xB9DE 0x7F50 +0xB9DF 0x60EF +0xB9E0 0x704C +0xB9E1 0x8D2F +0xB9E2 0x5149 +0xB9E3 0x5E7F +0xB9E4 0x901B +0xB9E5 0x7470 +0xB9E6 0x89C4 +0xB9E7 0x572D +0xB9E8 0x7845 +0xB9E9 0x5F52 +0xB9EA 0x9F9F +0xB9EB 0x95FA +0xB9EC 0x8F68 +0xB9ED 0x9B3C +0xB9EE 0x8BE1 +0xB9EF 0x7678 +0xB9F0 0x6842 +0xB9F1 0x67DC +0xB9F2 0x8DEA +0xB9F3 0x8D35 +0xB9F4 0x523D +0xB9F5 0x8F8A +0xB9F6 0x6EDA +0xB9F7 0x68CD +0xB9F8 0x9505 +0xB9F9 0x90ED +0xB9FA 0x56FD +0xB9FB 0x679C +0xB9FC 0x88F9 +0xB9FD 0x8FC7 +0xB9FE 0x54C8 +0xBA40 0x7BC5 +0xBA41 0x7BC8 +0xBA42 0x7BC9 +0xBA43 0x7BCA +0xBA44 0x7BCB +0xBA45 0x7BCD +0xBA46 0x7BCE +0xBA47 0x7BCF +0xBA48 0x7BD0 +0xBA49 0x7BD2 +0xBA4A 0x7BD4 +0xBA4B 0x7BD5 +0xBA4C 0x7BD6 +0xBA4D 0x7BD7 +0xBA4E 0x7BD8 +0xBA4F 0x7BDB +0xBA50 0x7BDC +0xBA51 0x7BDE +0xBA52 0x7BDF +0xBA53 0x7BE0 +0xBA54 0x7BE2 +0xBA55 0x7BE3 +0xBA56 0x7BE4 +0xBA57 0x7BE7 +0xBA58 0x7BE8 +0xBA59 0x7BE9 +0xBA5A 0x7BEB +0xBA5B 0x7BEC +0xBA5C 0x7BED +0xBA5D 0x7BEF +0xBA5E 0x7BF0 +0xBA5F 0x7BF2 +0xBA60 0x7BF3 +0xBA61 0x7BF4 +0xBA62 0x7BF5 +0xBA63 0x7BF6 +0xBA64 0x7BF8 +0xBA65 0x7BF9 +0xBA66 0x7BFA +0xBA67 0x7BFB +0xBA68 0x7BFD +0xBA69 0x7BFF +0xBA6A 0x7C00 +0xBA6B 0x7C01 +0xBA6C 0x7C02 +0xBA6D 0x7C03 +0xBA6E 0x7C04 +0xBA6F 0x7C05 +0xBA70 0x7C06 +0xBA71 0x7C08 +0xBA72 0x7C09 +0xBA73 0x7C0A +0xBA74 0x7C0D +0xBA75 0x7C0E +0xBA76 0x7C10 +0xBA77 0x7C11 +0xBA78 0x7C12 +0xBA79 0x7C13 +0xBA7A 0x7C14 +0xBA7B 0x7C15 +0xBA7C 0x7C17 +0xBA7D 0x7C18 +0xBA7E 0x7C19 +0xBA80 0x7C1A +0xBA81 0x7C1B +0xBA82 0x7C1C +0xBA83 0x7C1D +0xBA84 0x7C1E +0xBA85 0x7C20 +0xBA86 0x7C21 +0xBA87 0x7C22 +0xBA88 0x7C23 +0xBA89 0x7C24 +0xBA8A 0x7C25 +0xBA8B 0x7C28 +0xBA8C 0x7C29 +0xBA8D 0x7C2B +0xBA8E 0x7C2C +0xBA8F 0x7C2D +0xBA90 0x7C2E +0xBA91 0x7C2F +0xBA92 0x7C30 +0xBA93 0x7C31 +0xBA94 0x7C32 +0xBA95 0x7C33 +0xBA96 0x7C34 +0xBA97 0x7C35 +0xBA98 0x7C36 +0xBA99 0x7C37 +0xBA9A 0x7C39 +0xBA9B 0x7C3A +0xBA9C 0x7C3B +0xBA9D 0x7C3C +0xBA9E 0x7C3D +0xBA9F 0x7C3E +0xBAA0 0x7C42 +0xBAA1 0x9AB8 +0xBAA2 0x5B69 +0xBAA3 0x6D77 +0xBAA4 0x6C26 +0xBAA5 0x4EA5 +0xBAA6 0x5BB3 +0xBAA7 0x9A87 +0xBAA8 0x9163 +0xBAA9 0x61A8 +0xBAAA 0x90AF +0xBAAB 0x97E9 +0xBAAC 0x542B +0xBAAD 0x6DB5 +0xBAAE 0x5BD2 +0xBAAF 0x51FD +0xBAB0 0x558A +0xBAB1 0x7F55 +0xBAB2 0x7FF0 +0xBAB3 0x64BC +0xBAB4 0x634D +0xBAB5 0x65F1 +0xBAB6 0x61BE +0xBAB7 0x608D +0xBAB8 0x710A +0xBAB9 0x6C57 +0xBABA 0x6C49 +0xBABB 0x592F +0xBABC 0x676D +0xBABD 0x822A +0xBABE 0x58D5 +0xBABF 0x568E +0xBAC0 0x8C6A +0xBAC1 0x6BEB +0xBAC2 0x90DD +0xBAC3 0x597D +0xBAC4 0x8017 +0xBAC5 0x53F7 +0xBAC6 0x6D69 +0xBAC7 0x5475 +0xBAC8 0x559D +0xBAC9 0x8377 +0xBACA 0x83CF +0xBACB 0x6838 +0xBACC 0x79BE +0xBACD 0x548C +0xBACE 0x4F55 +0xBACF 0x5408 +0xBAD0 0x76D2 +0xBAD1 0x8C89 +0xBAD2 0x9602 +0xBAD3 0x6CB3 +0xBAD4 0x6DB8 +0xBAD5 0x8D6B +0xBAD6 0x8910 +0xBAD7 0x9E64 +0xBAD8 0x8D3A +0xBAD9 0x563F +0xBADA 0x9ED1 +0xBADB 0x75D5 +0xBADC 0x5F88 +0xBADD 0x72E0 +0xBADE 0x6068 +0xBADF 0x54FC +0xBAE0 0x4EA8 +0xBAE1 0x6A2A +0xBAE2 0x8861 +0xBAE3 0x6052 +0xBAE4 0x8F70 +0xBAE5 0x54C4 +0xBAE6 0x70D8 +0xBAE7 0x8679 +0xBAE8 0x9E3F +0xBAE9 0x6D2A +0xBAEA 0x5B8F +0xBAEB 0x5F18 +0xBAEC 0x7EA2 +0xBAED 0x5589 +0xBAEE 0x4FAF +0xBAEF 0x7334 +0xBAF0 0x543C +0xBAF1 0x539A +0xBAF2 0x5019 +0xBAF3 0x540E +0xBAF4 0x547C +0xBAF5 0x4E4E +0xBAF6 0x5FFD +0xBAF7 0x745A +0xBAF8 0x58F6 +0xBAF9 0x846B +0xBAFA 0x80E1 +0xBAFB 0x8774 +0xBAFC 0x72D0 +0xBAFD 0x7CCA +0xBAFE 0x6E56 +0xBB40 0x7C43 +0xBB41 0x7C44 +0xBB42 0x7C45 +0xBB43 0x7C46 +0xBB44 0x7C47 +0xBB45 0x7C48 +0xBB46 0x7C49 +0xBB47 0x7C4A +0xBB48 0x7C4B +0xBB49 0x7C4C +0xBB4A 0x7C4E +0xBB4B 0x7C4F +0xBB4C 0x7C50 +0xBB4D 0x7C51 +0xBB4E 0x7C52 +0xBB4F 0x7C53 +0xBB50 0x7C54 +0xBB51 0x7C55 +0xBB52 0x7C56 +0xBB53 0x7C57 +0xBB54 0x7C58 +0xBB55 0x7C59 +0xBB56 0x7C5A +0xBB57 0x7C5B +0xBB58 0x7C5C +0xBB59 0x7C5D +0xBB5A 0x7C5E +0xBB5B 0x7C5F +0xBB5C 0x7C60 +0xBB5D 0x7C61 +0xBB5E 0x7C62 +0xBB5F 0x7C63 +0xBB60 0x7C64 +0xBB61 0x7C65 +0xBB62 0x7C66 +0xBB63 0x7C67 +0xBB64 0x7C68 +0xBB65 0x7C69 +0xBB66 0x7C6A +0xBB67 0x7C6B +0xBB68 0x7C6C +0xBB69 0x7C6D +0xBB6A 0x7C6E +0xBB6B 0x7C6F +0xBB6C 0x7C70 +0xBB6D 0x7C71 +0xBB6E 0x7C72 +0xBB6F 0x7C75 +0xBB70 0x7C76 +0xBB71 0x7C77 +0xBB72 0x7C78 +0xBB73 0x7C79 +0xBB74 0x7C7A +0xBB75 0x7C7E +0xBB76 0x7C7F +0xBB77 0x7C80 +0xBB78 0x7C81 +0xBB79 0x7C82 +0xBB7A 0x7C83 +0xBB7B 0x7C84 +0xBB7C 0x7C85 +0xBB7D 0x7C86 +0xBB7E 0x7C87 +0xBB80 0x7C88 +0xBB81 0x7C8A +0xBB82 0x7C8B +0xBB83 0x7C8C +0xBB84 0x7C8D +0xBB85 0x7C8E +0xBB86 0x7C8F +0xBB87 0x7C90 +0xBB88 0x7C93 +0xBB89 0x7C94 +0xBB8A 0x7C96 +0xBB8B 0x7C99 +0xBB8C 0x7C9A +0xBB8D 0x7C9B +0xBB8E 0x7CA0 +0xBB8F 0x7CA1 +0xBB90 0x7CA3 +0xBB91 0x7CA6 +0xBB92 0x7CA7 +0xBB93 0x7CA8 +0xBB94 0x7CA9 +0xBB95 0x7CAB +0xBB96 0x7CAC +0xBB97 0x7CAD +0xBB98 0x7CAF +0xBB99 0x7CB0 +0xBB9A 0x7CB4 +0xBB9B 0x7CB5 +0xBB9C 0x7CB6 +0xBB9D 0x7CB7 +0xBB9E 0x7CB8 +0xBB9F 0x7CBA +0xBBA0 0x7CBB +0xBBA1 0x5F27 +0xBBA2 0x864E +0xBBA3 0x552C +0xBBA4 0x62A4 +0xBBA5 0x4E92 +0xBBA6 0x6CAA +0xBBA7 0x6237 +0xBBA8 0x82B1 +0xBBA9 0x54D7 +0xBBAA 0x534E +0xBBAB 0x733E +0xBBAC 0x6ED1 +0xBBAD 0x753B +0xBBAE 0x5212 +0xBBAF 0x5316 +0xBBB0 0x8BDD +0xBBB1 0x69D0 +0xBBB2 0x5F8A +0xBBB3 0x6000 +0xBBB4 0x6DEE +0xBBB5 0x574F +0xBBB6 0x6B22 +0xBBB7 0x73AF +0xBBB8 0x6853 +0xBBB9 0x8FD8 +0xBBBA 0x7F13 +0xBBBB 0x6362 +0xBBBC 0x60A3 +0xBBBD 0x5524 +0xBBBE 0x75EA +0xBBBF 0x8C62 +0xBBC0 0x7115 +0xBBC1 0x6DA3 +0xBBC2 0x5BA6 +0xBBC3 0x5E7B +0xBBC4 0x8352 +0xBBC5 0x614C +0xBBC6 0x9EC4 +0xBBC7 0x78FA +0xBBC8 0x8757 +0xBBC9 0x7C27 +0xBBCA 0x7687 +0xBBCB 0x51F0 +0xBBCC 0x60F6 +0xBBCD 0x714C +0xBBCE 0x6643 +0xBBCF 0x5E4C +0xBBD0 0x604D +0xBBD1 0x8C0E +0xBBD2 0x7070 +0xBBD3 0x6325 +0xBBD4 0x8F89 +0xBBD5 0x5FBD +0xBBD6 0x6062 +0xBBD7 0x86D4 +0xBBD8 0x56DE +0xBBD9 0x6BC1 +0xBBDA 0x6094 +0xBBDB 0x6167 +0xBBDC 0x5349 +0xBBDD 0x60E0 +0xBBDE 0x6666 +0xBBDF 0x8D3F +0xBBE0 0x79FD +0xBBE1 0x4F1A +0xBBE2 0x70E9 +0xBBE3 0x6C47 +0xBBE4 0x8BB3 +0xBBE5 0x8BF2 +0xBBE6 0x7ED8 +0xBBE7 0x8364 +0xBBE8 0x660F +0xBBE9 0x5A5A +0xBBEA 0x9B42 +0xBBEB 0x6D51 +0xBBEC 0x6DF7 +0xBBED 0x8C41 +0xBBEE 0x6D3B +0xBBEF 0x4F19 +0xBBF0 0x706B +0xBBF1 0x83B7 +0xBBF2 0x6216 +0xBBF3 0x60D1 +0xBBF4 0x970D +0xBBF5 0x8D27 +0xBBF6 0x7978 +0xBBF7 0x51FB +0xBBF8 0x573E +0xBBF9 0x57FA +0xBBFA 0x673A +0xBBFB 0x7578 +0xBBFC 0x7A3D +0xBBFD 0x79EF +0xBBFE 0x7B95 +0xBC40 0x7CBF +0xBC41 0x7CC0 +0xBC42 0x7CC2 +0xBC43 0x7CC3 +0xBC44 0x7CC4 +0xBC45 0x7CC6 +0xBC46 0x7CC9 +0xBC47 0x7CCB +0xBC48 0x7CCE +0xBC49 0x7CCF +0xBC4A 0x7CD0 +0xBC4B 0x7CD1 +0xBC4C 0x7CD2 +0xBC4D 0x7CD3 +0xBC4E 0x7CD4 +0xBC4F 0x7CD8 +0xBC50 0x7CDA +0xBC51 0x7CDB +0xBC52 0x7CDD +0xBC53 0x7CDE +0xBC54 0x7CE1 +0xBC55 0x7CE2 +0xBC56 0x7CE3 +0xBC57 0x7CE4 +0xBC58 0x7CE5 +0xBC59 0x7CE6 +0xBC5A 0x7CE7 +0xBC5B 0x7CE9 +0xBC5C 0x7CEA +0xBC5D 0x7CEB +0xBC5E 0x7CEC +0xBC5F 0x7CED +0xBC60 0x7CEE +0xBC61 0x7CF0 +0xBC62 0x7CF1 +0xBC63 0x7CF2 +0xBC64 0x7CF3 +0xBC65 0x7CF4 +0xBC66 0x7CF5 +0xBC67 0x7CF6 +0xBC68 0x7CF7 +0xBC69 0x7CF9 +0xBC6A 0x7CFA +0xBC6B 0x7CFC +0xBC6C 0x7CFD +0xBC6D 0x7CFE +0xBC6E 0x7CFF +0xBC6F 0x7D00 +0xBC70 0x7D01 +0xBC71 0x7D02 +0xBC72 0x7D03 +0xBC73 0x7D04 +0xBC74 0x7D05 +0xBC75 0x7D06 +0xBC76 0x7D07 +0xBC77 0x7D08 +0xBC78 0x7D09 +0xBC79 0x7D0B +0xBC7A 0x7D0C +0xBC7B 0x7D0D +0xBC7C 0x7D0E +0xBC7D 0x7D0F +0xBC7E 0x7D10 +0xBC80 0x7D11 +0xBC81 0x7D12 +0xBC82 0x7D13 +0xBC83 0x7D14 +0xBC84 0x7D15 +0xBC85 0x7D16 +0xBC86 0x7D17 +0xBC87 0x7D18 +0xBC88 0x7D19 +0xBC89 0x7D1A +0xBC8A 0x7D1B +0xBC8B 0x7D1C +0xBC8C 0x7D1D +0xBC8D 0x7D1E +0xBC8E 0x7D1F +0xBC8F 0x7D21 +0xBC90 0x7D23 +0xBC91 0x7D24 +0xBC92 0x7D25 +0xBC93 0x7D26 +0xBC94 0x7D28 +0xBC95 0x7D29 +0xBC96 0x7D2A +0xBC97 0x7D2C +0xBC98 0x7D2D +0xBC99 0x7D2E +0xBC9A 0x7D30 +0xBC9B 0x7D31 +0xBC9C 0x7D32 +0xBC9D 0x7D33 +0xBC9E 0x7D34 +0xBC9F 0x7D35 +0xBCA0 0x7D36 +0xBCA1 0x808C +0xBCA2 0x9965 +0xBCA3 0x8FF9 +0xBCA4 0x6FC0 +0xBCA5 0x8BA5 +0xBCA6 0x9E21 +0xBCA7 0x59EC +0xBCA8 0x7EE9 +0xBCA9 0x7F09 +0xBCAA 0x5409 +0xBCAB 0x6781 +0xBCAC 0x68D8 +0xBCAD 0x8F91 +0xBCAE 0x7C4D +0xBCAF 0x96C6 +0xBCB0 0x53CA +0xBCB1 0x6025 +0xBCB2 0x75BE +0xBCB3 0x6C72 +0xBCB4 0x5373 +0xBCB5 0x5AC9 +0xBCB6 0x7EA7 +0xBCB7 0x6324 +0xBCB8 0x51E0 +0xBCB9 0x810A +0xBCBA 0x5DF1 +0xBCBB 0x84DF +0xBCBC 0x6280 +0xBCBD 0x5180 +0xBCBE 0x5B63 +0xBCBF 0x4F0E +0xBCC0 0x796D +0xBCC1 0x5242 +0xBCC2 0x60B8 +0xBCC3 0x6D4E +0xBCC4 0x5BC4 +0xBCC5 0x5BC2 +0xBCC6 0x8BA1 +0xBCC7 0x8BB0 +0xBCC8 0x65E2 +0xBCC9 0x5FCC +0xBCCA 0x9645 +0xBCCB 0x5993 +0xBCCC 0x7EE7 +0xBCCD 0x7EAA +0xBCCE 0x5609 +0xBCCF 0x67B7 +0xBCD0 0x5939 +0xBCD1 0x4F73 +0xBCD2 0x5BB6 +0xBCD3 0x52A0 +0xBCD4 0x835A +0xBCD5 0x988A +0xBCD6 0x8D3E +0xBCD7 0x7532 +0xBCD8 0x94BE +0xBCD9 0x5047 +0xBCDA 0x7A3C +0xBCDB 0x4EF7 +0xBCDC 0x67B6 +0xBCDD 0x9A7E +0xBCDE 0x5AC1 +0xBCDF 0x6B7C +0xBCE0 0x76D1 +0xBCE1 0x575A +0xBCE2 0x5C16 +0xBCE3 0x7B3A +0xBCE4 0x95F4 +0xBCE5 0x714E +0xBCE6 0x517C +0xBCE7 0x80A9 +0xBCE8 0x8270 +0xBCE9 0x5978 +0xBCEA 0x7F04 +0xBCEB 0x8327 +0xBCEC 0x68C0 +0xBCED 0x67EC +0xBCEE 0x78B1 +0xBCEF 0x7877 +0xBCF0 0x62E3 +0xBCF1 0x6361 +0xBCF2 0x7B80 +0xBCF3 0x4FED +0xBCF4 0x526A +0xBCF5 0x51CF +0xBCF6 0x8350 +0xBCF7 0x69DB +0xBCF8 0x9274 +0xBCF9 0x8DF5 +0xBCFA 0x8D31 +0xBCFB 0x89C1 +0xBCFC 0x952E +0xBCFD 0x7BAD +0xBCFE 0x4EF6 +0xBD40 0x7D37 +0xBD41 0x7D38 +0xBD42 0x7D39 +0xBD43 0x7D3A +0xBD44 0x7D3B +0xBD45 0x7D3C +0xBD46 0x7D3D +0xBD47 0x7D3E +0xBD48 0x7D3F +0xBD49 0x7D40 +0xBD4A 0x7D41 +0xBD4B 0x7D42 +0xBD4C 0x7D43 +0xBD4D 0x7D44 +0xBD4E 0x7D45 +0xBD4F 0x7D46 +0xBD50 0x7D47 +0xBD51 0x7D48 +0xBD52 0x7D49 +0xBD53 0x7D4A +0xBD54 0x7D4B +0xBD55 0x7D4C +0xBD56 0x7D4D +0xBD57 0x7D4E +0xBD58 0x7D4F +0xBD59 0x7D50 +0xBD5A 0x7D51 +0xBD5B 0x7D52 +0xBD5C 0x7D53 +0xBD5D 0x7D54 +0xBD5E 0x7D55 +0xBD5F 0x7D56 +0xBD60 0x7D57 +0xBD61 0x7D58 +0xBD62 0x7D59 +0xBD63 0x7D5A +0xBD64 0x7D5B +0xBD65 0x7D5C +0xBD66 0x7D5D +0xBD67 0x7D5E +0xBD68 0x7D5F +0xBD69 0x7D60 +0xBD6A 0x7D61 +0xBD6B 0x7D62 +0xBD6C 0x7D63 +0xBD6D 0x7D64 +0xBD6E 0x7D65 +0xBD6F 0x7D66 +0xBD70 0x7D67 +0xBD71 0x7D68 +0xBD72 0x7D69 +0xBD73 0x7D6A +0xBD74 0x7D6B +0xBD75 0x7D6C +0xBD76 0x7D6D +0xBD77 0x7D6F +0xBD78 0x7D70 +0xBD79 0x7D71 +0xBD7A 0x7D72 +0xBD7B 0x7D73 +0xBD7C 0x7D74 +0xBD7D 0x7D75 +0xBD7E 0x7D76 +0xBD80 0x7D78 +0xBD81 0x7D79 +0xBD82 0x7D7A +0xBD83 0x7D7B +0xBD84 0x7D7C +0xBD85 0x7D7D +0xBD86 0x7D7E +0xBD87 0x7D7F +0xBD88 0x7D80 +0xBD89 0x7D81 +0xBD8A 0x7D82 +0xBD8B 0x7D83 +0xBD8C 0x7D84 +0xBD8D 0x7D85 +0xBD8E 0x7D86 +0xBD8F 0x7D87 +0xBD90 0x7D88 +0xBD91 0x7D89 +0xBD92 0x7D8A +0xBD93 0x7D8B +0xBD94 0x7D8C +0xBD95 0x7D8D +0xBD96 0x7D8E +0xBD97 0x7D8F +0xBD98 0x7D90 +0xBD99 0x7D91 +0xBD9A 0x7D92 +0xBD9B 0x7D93 +0xBD9C 0x7D94 +0xBD9D 0x7D95 +0xBD9E 0x7D96 +0xBD9F 0x7D97 +0xBDA0 0x7D98 +0xBDA1 0x5065 +0xBDA2 0x8230 +0xBDA3 0x5251 +0xBDA4 0x996F +0xBDA5 0x6E10 +0xBDA6 0x6E85 +0xBDA7 0x6DA7 +0xBDA8 0x5EFA +0xBDA9 0x50F5 +0xBDAA 0x59DC +0xBDAB 0x5C06 +0xBDAC 0x6D46 +0xBDAD 0x6C5F +0xBDAE 0x7586 +0xBDAF 0x848B +0xBDB0 0x6868 +0xBDB1 0x5956 +0xBDB2 0x8BB2 +0xBDB3 0x5320 +0xBDB4 0x9171 +0xBDB5 0x964D +0xBDB6 0x8549 +0xBDB7 0x6912 +0xBDB8 0x7901 +0xBDB9 0x7126 +0xBDBA 0x80F6 +0xBDBB 0x4EA4 +0xBDBC 0x90CA +0xBDBD 0x6D47 +0xBDBE 0x9A84 +0xBDBF 0x5A07 +0xBDC0 0x56BC +0xBDC1 0x6405 +0xBDC2 0x94F0 +0xBDC3 0x77EB +0xBDC4 0x4FA5 +0xBDC5 0x811A +0xBDC6 0x72E1 +0xBDC7 0x89D2 +0xBDC8 0x997A +0xBDC9 0x7F34 +0xBDCA 0x7EDE +0xBDCB 0x527F +0xBDCC 0x6559 +0xBDCD 0x9175 +0xBDCE 0x8F7F +0xBDCF 0x8F83 +0xBDD0 0x53EB +0xBDD1 0x7A96 +0xBDD2 0x63ED +0xBDD3 0x63A5 +0xBDD4 0x7686 +0xBDD5 0x79F8 +0xBDD6 0x8857 +0xBDD7 0x9636 +0xBDD8 0x622A +0xBDD9 0x52AB +0xBDDA 0x8282 +0xBDDB 0x6854 +0xBDDC 0x6770 +0xBDDD 0x6377 +0xBDDE 0x776B +0xBDDF 0x7AED +0xBDE0 0x6D01 +0xBDE1 0x7ED3 +0xBDE2 0x89E3 +0xBDE3 0x59D0 +0xBDE4 0x6212 +0xBDE5 0x85C9 +0xBDE6 0x82A5 +0xBDE7 0x754C +0xBDE8 0x501F +0xBDE9 0x4ECB +0xBDEA 0x75A5 +0xBDEB 0x8BEB +0xBDEC 0x5C4A +0xBDED 0x5DFE +0xBDEE 0x7B4B +0xBDEF 0x65A4 +0xBDF0 0x91D1 +0xBDF1 0x4ECA +0xBDF2 0x6D25 +0xBDF3 0x895F +0xBDF4 0x7D27 +0xBDF5 0x9526 +0xBDF6 0x4EC5 +0xBDF7 0x8C28 +0xBDF8 0x8FDB +0xBDF9 0x9773 +0xBDFA 0x664B +0xBDFB 0x7981 +0xBDFC 0x8FD1 +0xBDFD 0x70EC +0xBDFE 0x6D78 +0xBE40 0x7D99 +0xBE41 0x7D9A +0xBE42 0x7D9B +0xBE43 0x7D9C +0xBE44 0x7D9D +0xBE45 0x7D9E +0xBE46 0x7D9F +0xBE47 0x7DA0 +0xBE48 0x7DA1 +0xBE49 0x7DA2 +0xBE4A 0x7DA3 +0xBE4B 0x7DA4 +0xBE4C 0x7DA5 +0xBE4D 0x7DA7 +0xBE4E 0x7DA8 +0xBE4F 0x7DA9 +0xBE50 0x7DAA +0xBE51 0x7DAB +0xBE52 0x7DAC +0xBE53 0x7DAD +0xBE54 0x7DAF +0xBE55 0x7DB0 +0xBE56 0x7DB1 +0xBE57 0x7DB2 +0xBE58 0x7DB3 +0xBE59 0x7DB4 +0xBE5A 0x7DB5 +0xBE5B 0x7DB6 +0xBE5C 0x7DB7 +0xBE5D 0x7DB8 +0xBE5E 0x7DB9 +0xBE5F 0x7DBA +0xBE60 0x7DBB +0xBE61 0x7DBC +0xBE62 0x7DBD +0xBE63 0x7DBE +0xBE64 0x7DBF +0xBE65 0x7DC0 +0xBE66 0x7DC1 +0xBE67 0x7DC2 +0xBE68 0x7DC3 +0xBE69 0x7DC4 +0xBE6A 0x7DC5 +0xBE6B 0x7DC6 +0xBE6C 0x7DC7 +0xBE6D 0x7DC8 +0xBE6E 0x7DC9 +0xBE6F 0x7DCA +0xBE70 0x7DCB +0xBE71 0x7DCC +0xBE72 0x7DCD +0xBE73 0x7DCE +0xBE74 0x7DCF +0xBE75 0x7DD0 +0xBE76 0x7DD1 +0xBE77 0x7DD2 +0xBE78 0x7DD3 +0xBE79 0x7DD4 +0xBE7A 0x7DD5 +0xBE7B 0x7DD6 +0xBE7C 0x7DD7 +0xBE7D 0x7DD8 +0xBE7E 0x7DD9 +0xBE80 0x7DDA +0xBE81 0x7DDB +0xBE82 0x7DDC +0xBE83 0x7DDD +0xBE84 0x7DDE +0xBE85 0x7DDF +0xBE86 0x7DE0 +0xBE87 0x7DE1 +0xBE88 0x7DE2 +0xBE89 0x7DE3 +0xBE8A 0x7DE4 +0xBE8B 0x7DE5 +0xBE8C 0x7DE6 +0xBE8D 0x7DE7 +0xBE8E 0x7DE8 +0xBE8F 0x7DE9 +0xBE90 0x7DEA +0xBE91 0x7DEB +0xBE92 0x7DEC +0xBE93 0x7DED +0xBE94 0x7DEE +0xBE95 0x7DEF +0xBE96 0x7DF0 +0xBE97 0x7DF1 +0xBE98 0x7DF2 +0xBE99 0x7DF3 +0xBE9A 0x7DF4 +0xBE9B 0x7DF5 +0xBE9C 0x7DF6 +0xBE9D 0x7DF7 +0xBE9E 0x7DF8 +0xBE9F 0x7DF9 +0xBEA0 0x7DFA +0xBEA1 0x5C3D +0xBEA2 0x52B2 +0xBEA3 0x8346 +0xBEA4 0x5162 +0xBEA5 0x830E +0xBEA6 0x775B +0xBEA7 0x6676 +0xBEA8 0x9CB8 +0xBEA9 0x4EAC +0xBEAA 0x60CA +0xBEAB 0x7CBE +0xBEAC 0x7CB3 +0xBEAD 0x7ECF +0xBEAE 0x4E95 +0xBEAF 0x8B66 +0xBEB0 0x666F +0xBEB1 0x9888 +0xBEB2 0x9759 +0xBEB3 0x5883 +0xBEB4 0x656C +0xBEB5 0x955C +0xBEB6 0x5F84 +0xBEB7 0x75C9 +0xBEB8 0x9756 +0xBEB9 0x7ADF +0xBEBA 0x7ADE +0xBEBB 0x51C0 +0xBEBC 0x70AF +0xBEBD 0x7A98 +0xBEBE 0x63EA +0xBEBF 0x7A76 +0xBEC0 0x7EA0 +0xBEC1 0x7396 +0xBEC2 0x97ED +0xBEC3 0x4E45 +0xBEC4 0x7078 +0xBEC5 0x4E5D +0xBEC6 0x9152 +0xBEC7 0x53A9 +0xBEC8 0x6551 +0xBEC9 0x65E7 +0xBECA 0x81FC +0xBECB 0x8205 +0xBECC 0x548E +0xBECD 0x5C31 +0xBECE 0x759A +0xBECF 0x97A0 +0xBED0 0x62D8 +0xBED1 0x72D9 +0xBED2 0x75BD +0xBED3 0x5C45 +0xBED4 0x9A79 +0xBED5 0x83CA +0xBED6 0x5C40 +0xBED7 0x5480 +0xBED8 0x77E9 +0xBED9 0x4E3E +0xBEDA 0x6CAE +0xBEDB 0x805A +0xBEDC 0x62D2 +0xBEDD 0x636E +0xBEDE 0x5DE8 +0xBEDF 0x5177 +0xBEE0 0x8DDD +0xBEE1 0x8E1E +0xBEE2 0x952F +0xBEE3 0x4FF1 +0xBEE4 0x53E5 +0xBEE5 0x60E7 +0xBEE6 0x70AC +0xBEE7 0x5267 +0xBEE8 0x6350 +0xBEE9 0x9E43 +0xBEEA 0x5A1F +0xBEEB 0x5026 +0xBEEC 0x7737 +0xBEED 0x5377 +0xBEEE 0x7EE2 +0xBEEF 0x6485 +0xBEF0 0x652B +0xBEF1 0x6289 +0xBEF2 0x6398 +0xBEF3 0x5014 +0xBEF4 0x7235 +0xBEF5 0x89C9 +0xBEF6 0x51B3 +0xBEF7 0x8BC0 +0xBEF8 0x7EDD +0xBEF9 0x5747 +0xBEFA 0x83CC +0xBEFB 0x94A7 +0xBEFC 0x519B +0xBEFD 0x541B +0xBEFE 0x5CFB +0xBF40 0x7DFB +0xBF41 0x7DFC +0xBF42 0x7DFD +0xBF43 0x7DFE +0xBF44 0x7DFF +0xBF45 0x7E00 +0xBF46 0x7E01 +0xBF47 0x7E02 +0xBF48 0x7E03 +0xBF49 0x7E04 +0xBF4A 0x7E05 +0xBF4B 0x7E06 +0xBF4C 0x7E07 +0xBF4D 0x7E08 +0xBF4E 0x7E09 +0xBF4F 0x7E0A +0xBF50 0x7E0B +0xBF51 0x7E0C +0xBF52 0x7E0D +0xBF53 0x7E0E +0xBF54 0x7E0F +0xBF55 0x7E10 +0xBF56 0x7E11 +0xBF57 0x7E12 +0xBF58 0x7E13 +0xBF59 0x7E14 +0xBF5A 0x7E15 +0xBF5B 0x7E16 +0xBF5C 0x7E17 +0xBF5D 0x7E18 +0xBF5E 0x7E19 +0xBF5F 0x7E1A +0xBF60 0x7E1B +0xBF61 0x7E1C +0xBF62 0x7E1D +0xBF63 0x7E1E +0xBF64 0x7E1F +0xBF65 0x7E20 +0xBF66 0x7E21 +0xBF67 0x7E22 +0xBF68 0x7E23 +0xBF69 0x7E24 +0xBF6A 0x7E25 +0xBF6B 0x7E26 +0xBF6C 0x7E27 +0xBF6D 0x7E28 +0xBF6E 0x7E29 +0xBF6F 0x7E2A +0xBF70 0x7E2B +0xBF71 0x7E2C +0xBF72 0x7E2D +0xBF73 0x7E2E +0xBF74 0x7E2F +0xBF75 0x7E30 +0xBF76 0x7E31 +0xBF77 0x7E32 +0xBF78 0x7E33 +0xBF79 0x7E34 +0xBF7A 0x7E35 +0xBF7B 0x7E36 +0xBF7C 0x7E37 +0xBF7D 0x7E38 +0xBF7E 0x7E39 +0xBF80 0x7E3A +0xBF81 0x7E3C +0xBF82 0x7E3D +0xBF83 0x7E3E +0xBF84 0x7E3F +0xBF85 0x7E40 +0xBF86 0x7E42 +0xBF87 0x7E43 +0xBF88 0x7E44 +0xBF89 0x7E45 +0xBF8A 0x7E46 +0xBF8B 0x7E48 +0xBF8C 0x7E49 +0xBF8D 0x7E4A +0xBF8E 0x7E4B +0xBF8F 0x7E4C +0xBF90 0x7E4D +0xBF91 0x7E4E +0xBF92 0x7E4F +0xBF93 0x7E50 +0xBF94 0x7E51 +0xBF95 0x7E52 +0xBF96 0x7E53 +0xBF97 0x7E54 +0xBF98 0x7E55 +0xBF99 0x7E56 +0xBF9A 0x7E57 +0xBF9B 0x7E58 +0xBF9C 0x7E59 +0xBF9D 0x7E5A +0xBF9E 0x7E5B +0xBF9F 0x7E5C +0xBFA0 0x7E5D +0xBFA1 0x4FCA +0xBFA2 0x7AE3 +0xBFA3 0x6D5A +0xBFA4 0x90E1 +0xBFA5 0x9A8F +0xBFA6 0x5580 +0xBFA7 0x5496 +0xBFA8 0x5361 +0xBFA9 0x54AF +0xBFAA 0x5F00 +0xBFAB 0x63E9 +0xBFAC 0x6977 +0xBFAD 0x51EF +0xBFAE 0x6168 +0xBFAF 0x520A +0xBFB0 0x582A +0xBFB1 0x52D8 +0xBFB2 0x574E +0xBFB3 0x780D +0xBFB4 0x770B +0xBFB5 0x5EB7 +0xBFB6 0x6177 +0xBFB7 0x7CE0 +0xBFB8 0x625B +0xBFB9 0x6297 +0xBFBA 0x4EA2 +0xBFBB 0x7095 +0xBFBC 0x8003 +0xBFBD 0x62F7 +0xBFBE 0x70E4 +0xBFBF 0x9760 +0xBFC0 0x5777 +0xBFC1 0x82DB +0xBFC2 0x67EF +0xBFC3 0x68F5 +0xBFC4 0x78D5 +0xBFC5 0x9897 +0xBFC6 0x79D1 +0xBFC7 0x58F3 +0xBFC8 0x54B3 +0xBFC9 0x53EF +0xBFCA 0x6E34 +0xBFCB 0x514B +0xBFCC 0x523B +0xBFCD 0x5BA2 +0xBFCE 0x8BFE +0xBFCF 0x80AF +0xBFD0 0x5543 +0xBFD1 0x57A6 +0xBFD2 0x6073 +0xBFD3 0x5751 +0xBFD4 0x542D +0xBFD5 0x7A7A +0xBFD6 0x6050 +0xBFD7 0x5B54 +0xBFD8 0x63A7 +0xBFD9 0x62A0 +0xBFDA 0x53E3 +0xBFDB 0x6263 +0xBFDC 0x5BC7 +0xBFDD 0x67AF +0xBFDE 0x54ED +0xBFDF 0x7A9F +0xBFE0 0x82E6 +0xBFE1 0x9177 +0xBFE2 0x5E93 +0xBFE3 0x88E4 +0xBFE4 0x5938 +0xBFE5 0x57AE +0xBFE6 0x630E +0xBFE7 0x8DE8 +0xBFE8 0x80EF +0xBFE9 0x5757 +0xBFEA 0x7B77 +0xBFEB 0x4FA9 +0xBFEC 0x5FEB +0xBFED 0x5BBD +0xBFEE 0x6B3E +0xBFEF 0x5321 +0xBFF0 0x7B50 +0xBFF1 0x72C2 +0xBFF2 0x6846 +0xBFF3 0x77FF +0xBFF4 0x7736 +0xBFF5 0x65F7 +0xBFF6 0x51B5 +0xBFF7 0x4E8F +0xBFF8 0x76D4 +0xBFF9 0x5CBF +0xBFFA 0x7AA5 +0xBFFB 0x8475 +0xBFFC 0x594E +0xBFFD 0x9B41 +0xBFFE 0x5080 +0xC040 0x7E5E +0xC041 0x7E5F +0xC042 0x7E60 +0xC043 0x7E61 +0xC044 0x7E62 +0xC045 0x7E63 +0xC046 0x7E64 +0xC047 0x7E65 +0xC048 0x7E66 +0xC049 0x7E67 +0xC04A 0x7E68 +0xC04B 0x7E69 +0xC04C 0x7E6A +0xC04D 0x7E6B +0xC04E 0x7E6C +0xC04F 0x7E6D +0xC050 0x7E6E +0xC051 0x7E6F +0xC052 0x7E70 +0xC053 0x7E71 +0xC054 0x7E72 +0xC055 0x7E73 +0xC056 0x7E74 +0xC057 0x7E75 +0xC058 0x7E76 +0xC059 0x7E77 +0xC05A 0x7E78 +0xC05B 0x7E79 +0xC05C 0x7E7A +0xC05D 0x7E7B +0xC05E 0x7E7C +0xC05F 0x7E7D +0xC060 0x7E7E +0xC061 0x7E7F +0xC062 0x7E80 +0xC063 0x7E81 +0xC064 0x7E83 +0xC065 0x7E84 +0xC066 0x7E85 +0xC067 0x7E86 +0xC068 0x7E87 +0xC069 0x7E88 +0xC06A 0x7E89 +0xC06B 0x7E8A +0xC06C 0x7E8B +0xC06D 0x7E8C +0xC06E 0x7E8D +0xC06F 0x7E8E +0xC070 0x7E8F +0xC071 0x7E90 +0xC072 0x7E91 +0xC073 0x7E92 +0xC074 0x7E93 +0xC075 0x7E94 +0xC076 0x7E95 +0xC077 0x7E96 +0xC078 0x7E97 +0xC079 0x7E98 +0xC07A 0x7E99 +0xC07B 0x7E9A +0xC07C 0x7E9C +0xC07D 0x7E9D +0xC07E 0x7E9E +0xC080 0x7EAE +0xC081 0x7EB4 +0xC082 0x7EBB +0xC083 0x7EBC +0xC084 0x7ED6 +0xC085 0x7EE4 +0xC086 0x7EEC +0xC087 0x7EF9 +0xC088 0x7F0A +0xC089 0x7F10 +0xC08A 0x7F1E +0xC08B 0x7F37 +0xC08C 0x7F39 +0xC08D 0x7F3B +0xC08E 0x7F3C +0xC08F 0x7F3D +0xC090 0x7F3E +0xC091 0x7F3F +0xC092 0x7F40 +0xC093 0x7F41 +0xC094 0x7F43 +0xC095 0x7F46 +0xC096 0x7F47 +0xC097 0x7F48 +0xC098 0x7F49 +0xC099 0x7F4A +0xC09A 0x7F4B +0xC09B 0x7F4C +0xC09C 0x7F4D +0xC09D 0x7F4E +0xC09E 0x7F4F +0xC09F 0x7F52 +0xC0A0 0x7F53 +0xC0A1 0x9988 +0xC0A2 0x6127 +0xC0A3 0x6E83 +0xC0A4 0x5764 +0xC0A5 0x6606 +0xC0A6 0x6346 +0xC0A7 0x56F0 +0xC0A8 0x62EC +0xC0A9 0x6269 +0xC0AA 0x5ED3 +0xC0AB 0x9614 +0xC0AC 0x5783 +0xC0AD 0x62C9 +0xC0AE 0x5587 +0xC0AF 0x8721 +0xC0B0 0x814A +0xC0B1 0x8FA3 +0xC0B2 0x5566 +0xC0B3 0x83B1 +0xC0B4 0x6765 +0xC0B5 0x8D56 +0xC0B6 0x84DD +0xC0B7 0x5A6A +0xC0B8 0x680F +0xC0B9 0x62E6 +0xC0BA 0x7BEE +0xC0BB 0x9611 +0xC0BC 0x5170 +0xC0BD 0x6F9C +0xC0BE 0x8C30 +0xC0BF 0x63FD +0xC0C0 0x89C8 +0xC0C1 0x61D2 +0xC0C2 0x7F06 +0xC0C3 0x70C2 +0xC0C4 0x6EE5 +0xC0C5 0x7405 +0xC0C6 0x6994 +0xC0C7 0x72FC +0xC0C8 0x5ECA +0xC0C9 0x90CE +0xC0CA 0x6717 +0xC0CB 0x6D6A +0xC0CC 0x635E +0xC0CD 0x52B3 +0xC0CE 0x7262 +0xC0CF 0x8001 +0xC0D0 0x4F6C +0xC0D1 0x59E5 +0xC0D2 0x916A +0xC0D3 0x70D9 +0xC0D4 0x6D9D +0xC0D5 0x52D2 +0xC0D6 0x4E50 +0xC0D7 0x96F7 +0xC0D8 0x956D +0xC0D9 0x857E +0xC0DA 0x78CA +0xC0DB 0x7D2F +0xC0DC 0x5121 +0xC0DD 0x5792 +0xC0DE 0x64C2 +0xC0DF 0x808B +0xC0E0 0x7C7B +0xC0E1 0x6CEA +0xC0E2 0x68F1 +0xC0E3 0x695E +0xC0E4 0x51B7 +0xC0E5 0x5398 +0xC0E6 0x68A8 +0xC0E7 0x7281 +0xC0E8 0x9ECE +0xC0E9 0x7BF1 +0xC0EA 0x72F8 +0xC0EB 0x79BB +0xC0EC 0x6F13 +0xC0ED 0x7406 +0xC0EE 0x674E +0xC0EF 0x91CC +0xC0F0 0x9CA4 +0xC0F1 0x793C +0xC0F2 0x8389 +0xC0F3 0x8354 +0xC0F4 0x540F +0xC0F5 0x6817 +0xC0F6 0x4E3D +0xC0F7 0x5389 +0xC0F8 0x52B1 +0xC0F9 0x783E +0xC0FA 0x5386 +0xC0FB 0x5229 +0xC0FC 0x5088 +0xC0FD 0x4F8B +0xC0FE 0x4FD0 +0xC140 0x7F56 +0xC141 0x7F59 +0xC142 0x7F5B +0xC143 0x7F5C +0xC144 0x7F5D +0xC145 0x7F5E +0xC146 0x7F60 +0xC147 0x7F63 +0xC148 0x7F64 +0xC149 0x7F65 +0xC14A 0x7F66 +0xC14B 0x7F67 +0xC14C 0x7F6B +0xC14D 0x7F6C +0xC14E 0x7F6D +0xC14F 0x7F6F +0xC150 0x7F70 +0xC151 0x7F73 +0xC152 0x7F75 +0xC153 0x7F76 +0xC154 0x7F77 +0xC155 0x7F78 +0xC156 0x7F7A +0xC157 0x7F7B +0xC158 0x7F7C +0xC159 0x7F7D +0xC15A 0x7F7F +0xC15B 0x7F80 +0xC15C 0x7F82 +0xC15D 0x7F83 +0xC15E 0x7F84 +0xC15F 0x7F85 +0xC160 0x7F86 +0xC161 0x7F87 +0xC162 0x7F88 +0xC163 0x7F89 +0xC164 0x7F8B +0xC165 0x7F8D +0xC166 0x7F8F +0xC167 0x7F90 +0xC168 0x7F91 +0xC169 0x7F92 +0xC16A 0x7F93 +0xC16B 0x7F95 +0xC16C 0x7F96 +0xC16D 0x7F97 +0xC16E 0x7F98 +0xC16F 0x7F99 +0xC170 0x7F9B +0xC171 0x7F9C +0xC172 0x7FA0 +0xC173 0x7FA2 +0xC174 0x7FA3 +0xC175 0x7FA5 +0xC176 0x7FA6 +0xC177 0x7FA8 +0xC178 0x7FA9 +0xC179 0x7FAA +0xC17A 0x7FAB +0xC17B 0x7FAC +0xC17C 0x7FAD +0xC17D 0x7FAE +0xC17E 0x7FB1 +0xC180 0x7FB3 +0xC181 0x7FB4 +0xC182 0x7FB5 +0xC183 0x7FB6 +0xC184 0x7FB7 +0xC185 0x7FBA +0xC186 0x7FBB +0xC187 0x7FBE +0xC188 0x7FC0 +0xC189 0x7FC2 +0xC18A 0x7FC3 +0xC18B 0x7FC4 +0xC18C 0x7FC6 +0xC18D 0x7FC7 +0xC18E 0x7FC8 +0xC18F 0x7FC9 +0xC190 0x7FCB +0xC191 0x7FCD +0xC192 0x7FCF +0xC193 0x7FD0 +0xC194 0x7FD1 +0xC195 0x7FD2 +0xC196 0x7FD3 +0xC197 0x7FD6 +0xC198 0x7FD7 +0xC199 0x7FD9 +0xC19A 0x7FDA +0xC19B 0x7FDB +0xC19C 0x7FDC +0xC19D 0x7FDD +0xC19E 0x7FDE +0xC19F 0x7FE2 +0xC1A0 0x7FE3 +0xC1A1 0x75E2 +0xC1A2 0x7ACB +0xC1A3 0x7C92 +0xC1A4 0x6CA5 +0xC1A5 0x96B6 +0xC1A6 0x529B +0xC1A7 0x7483 +0xC1A8 0x54E9 +0xC1A9 0x4FE9 +0xC1AA 0x8054 +0xC1AB 0x83B2 +0xC1AC 0x8FDE +0xC1AD 0x9570 +0xC1AE 0x5EC9 +0xC1AF 0x601C +0xC1B0 0x6D9F +0xC1B1 0x5E18 +0xC1B2 0x655B +0xC1B3 0x8138 +0xC1B4 0x94FE +0xC1B5 0x604B +0xC1B6 0x70BC +0xC1B7 0x7EC3 +0xC1B8 0x7CAE +0xC1B9 0x51C9 +0xC1BA 0x6881 +0xC1BB 0x7CB1 +0xC1BC 0x826F +0xC1BD 0x4E24 +0xC1BE 0x8F86 +0xC1BF 0x91CF +0xC1C0 0x667E +0xC1C1 0x4EAE +0xC1C2 0x8C05 +0xC1C3 0x64A9 +0xC1C4 0x804A +0xC1C5 0x50DA +0xC1C6 0x7597 +0xC1C7 0x71CE +0xC1C8 0x5BE5 +0xC1C9 0x8FBD +0xC1CA 0x6F66 +0xC1CB 0x4E86 +0xC1CC 0x6482 +0xC1CD 0x9563 +0xC1CE 0x5ED6 +0xC1CF 0x6599 +0xC1D0 0x5217 +0xC1D1 0x88C2 +0xC1D2 0x70C8 +0xC1D3 0x52A3 +0xC1D4 0x730E +0xC1D5 0x7433 +0xC1D6 0x6797 +0xC1D7 0x78F7 +0xC1D8 0x9716 +0xC1D9 0x4E34 +0xC1DA 0x90BB +0xC1DB 0x9CDE +0xC1DC 0x6DCB +0xC1DD 0x51DB +0xC1DE 0x8D41 +0xC1DF 0x541D +0xC1E0 0x62CE +0xC1E1 0x73B2 +0xC1E2 0x83F1 +0xC1E3 0x96F6 +0xC1E4 0x9F84 +0xC1E5 0x94C3 +0xC1E6 0x4F36 +0xC1E7 0x7F9A +0xC1E8 0x51CC +0xC1E9 0x7075 +0xC1EA 0x9675 +0xC1EB 0x5CAD +0xC1EC 0x9886 +0xC1ED 0x53E6 +0xC1EE 0x4EE4 +0xC1EF 0x6E9C +0xC1F0 0x7409 +0xC1F1 0x69B4 +0xC1F2 0x786B +0xC1F3 0x998F +0xC1F4 0x7559 +0xC1F5 0x5218 +0xC1F6 0x7624 +0xC1F7 0x6D41 +0xC1F8 0x67F3 +0xC1F9 0x516D +0xC1FA 0x9F99 +0xC1FB 0x804B +0xC1FC 0x5499 +0xC1FD 0x7B3C +0xC1FE 0x7ABF +0xC240 0x7FE4 +0xC241 0x7FE7 +0xC242 0x7FE8 +0xC243 0x7FEA +0xC244 0x7FEB +0xC245 0x7FEC +0xC246 0x7FED +0xC247 0x7FEF +0xC248 0x7FF2 +0xC249 0x7FF4 +0xC24A 0x7FF5 +0xC24B 0x7FF6 +0xC24C 0x7FF7 +0xC24D 0x7FF8 +0xC24E 0x7FF9 +0xC24F 0x7FFA +0xC250 0x7FFD +0xC251 0x7FFE +0xC252 0x7FFF +0xC253 0x8002 +0xC254 0x8007 +0xC255 0x8008 +0xC256 0x8009 +0xC257 0x800A +0xC258 0x800E +0xC259 0x800F +0xC25A 0x8011 +0xC25B 0x8013 +0xC25C 0x801A +0xC25D 0x801B +0xC25E 0x801D +0xC25F 0x801E +0xC260 0x801F +0xC261 0x8021 +0xC262 0x8023 +0xC263 0x8024 +0xC264 0x802B +0xC265 0x802C +0xC266 0x802D +0xC267 0x802E +0xC268 0x802F +0xC269 0x8030 +0xC26A 0x8032 +0xC26B 0x8034 +0xC26C 0x8039 +0xC26D 0x803A +0xC26E 0x803C +0xC26F 0x803E +0xC270 0x8040 +0xC271 0x8041 +0xC272 0x8044 +0xC273 0x8045 +0xC274 0x8047 +0xC275 0x8048 +0xC276 0x8049 +0xC277 0x804E +0xC278 0x804F +0xC279 0x8050 +0xC27A 0x8051 +0xC27B 0x8053 +0xC27C 0x8055 +0xC27D 0x8056 +0xC27E 0x8057 +0xC280 0x8059 +0xC281 0x805B +0xC282 0x805C +0xC283 0x805D +0xC284 0x805E +0xC285 0x805F +0xC286 0x8060 +0xC287 0x8061 +0xC288 0x8062 +0xC289 0x8063 +0xC28A 0x8064 +0xC28B 0x8065 +0xC28C 0x8066 +0xC28D 0x8067 +0xC28E 0x8068 +0xC28F 0x806B +0xC290 0x806C +0xC291 0x806D +0xC292 0x806E +0xC293 0x806F +0xC294 0x8070 +0xC295 0x8072 +0xC296 0x8073 +0xC297 0x8074 +0xC298 0x8075 +0xC299 0x8076 +0xC29A 0x8077 +0xC29B 0x8078 +0xC29C 0x8079 +0xC29D 0x807A +0xC29E 0x807B +0xC29F 0x807C +0xC2A0 0x807D +0xC2A1 0x9686 +0xC2A2 0x5784 +0xC2A3 0x62E2 +0xC2A4 0x9647 +0xC2A5 0x697C +0xC2A6 0x5A04 +0xC2A7 0x6402 +0xC2A8 0x7BD3 +0xC2A9 0x6F0F +0xC2AA 0x964B +0xC2AB 0x82A6 +0xC2AC 0x5362 +0xC2AD 0x9885 +0xC2AE 0x5E90 +0xC2AF 0x7089 +0xC2B0 0x63B3 +0xC2B1 0x5364 +0xC2B2 0x864F +0xC2B3 0x9C81 +0xC2B4 0x9E93 +0xC2B5 0x788C +0xC2B6 0x9732 +0xC2B7 0x8DEF +0xC2B8 0x8D42 +0xC2B9 0x9E7F +0xC2BA 0x6F5E +0xC2BB 0x7984 +0xC2BC 0x5F55 +0xC2BD 0x9646 +0xC2BE 0x622E +0xC2BF 0x9A74 +0xC2C0 0x5415 +0xC2C1 0x94DD +0xC2C2 0x4FA3 +0xC2C3 0x65C5 +0xC2C4 0x5C65 +0xC2C5 0x5C61 +0xC2C6 0x7F15 +0xC2C7 0x8651 +0xC2C8 0x6C2F +0xC2C9 0x5F8B +0xC2CA 0x7387 +0xC2CB 0x6EE4 +0xC2CC 0x7EFF +0xC2CD 0x5CE6 +0xC2CE 0x631B +0xC2CF 0x5B6A +0xC2D0 0x6EE6 +0xC2D1 0x5375 +0xC2D2 0x4E71 +0xC2D3 0x63A0 +0xC2D4 0x7565 +0xC2D5 0x62A1 +0xC2D6 0x8F6E +0xC2D7 0x4F26 +0xC2D8 0x4ED1 +0xC2D9 0x6CA6 +0xC2DA 0x7EB6 +0xC2DB 0x8BBA +0xC2DC 0x841D +0xC2DD 0x87BA +0xC2DE 0x7F57 +0xC2DF 0x903B +0xC2E0 0x9523 +0xC2E1 0x7BA9 +0xC2E2 0x9AA1 +0xC2E3 0x88F8 +0xC2E4 0x843D +0xC2E5 0x6D1B +0xC2E6 0x9A86 +0xC2E7 0x7EDC +0xC2E8 0x5988 +0xC2E9 0x9EBB +0xC2EA 0x739B +0xC2EB 0x7801 +0xC2EC 0x8682 +0xC2ED 0x9A6C +0xC2EE 0x9A82 +0xC2EF 0x561B +0xC2F0 0x5417 +0xC2F1 0x57CB +0xC2F2 0x4E70 +0xC2F3 0x9EA6 +0xC2F4 0x5356 +0xC2F5 0x8FC8 +0xC2F6 0x8109 +0xC2F7 0x7792 +0xC2F8 0x9992 +0xC2F9 0x86EE +0xC2FA 0x6EE1 +0xC2FB 0x8513 +0xC2FC 0x66FC +0xC2FD 0x6162 +0xC2FE 0x6F2B +0xC340 0x807E +0xC341 0x8081 +0xC342 0x8082 +0xC343 0x8085 +0xC344 0x8088 +0xC345 0x808A +0xC346 0x808D +0xC347 0x808E +0xC348 0x808F +0xC349 0x8090 +0xC34A 0x8091 +0xC34B 0x8092 +0xC34C 0x8094 +0xC34D 0x8095 +0xC34E 0x8097 +0xC34F 0x8099 +0xC350 0x809E +0xC351 0x80A3 +0xC352 0x80A6 +0xC353 0x80A7 +0xC354 0x80A8 +0xC355 0x80AC +0xC356 0x80B0 +0xC357 0x80B3 +0xC358 0x80B5 +0xC359 0x80B6 +0xC35A 0x80B8 +0xC35B 0x80B9 +0xC35C 0x80BB +0xC35D 0x80C5 +0xC35E 0x80C7 +0xC35F 0x80C8 +0xC360 0x80C9 +0xC361 0x80CA +0xC362 0x80CB +0xC363 0x80CF +0xC364 0x80D0 +0xC365 0x80D1 +0xC366 0x80D2 +0xC367 0x80D3 +0xC368 0x80D4 +0xC369 0x80D5 +0xC36A 0x80D8 +0xC36B 0x80DF +0xC36C 0x80E0 +0xC36D 0x80E2 +0xC36E 0x80E3 +0xC36F 0x80E6 +0xC370 0x80EE +0xC371 0x80F5 +0xC372 0x80F7 +0xC373 0x80F9 +0xC374 0x80FB +0xC375 0x80FE +0xC376 0x80FF +0xC377 0x8100 +0xC378 0x8101 +0xC379 0x8103 +0xC37A 0x8104 +0xC37B 0x8105 +0xC37C 0x8107 +0xC37D 0x8108 +0xC37E 0x810B +0xC380 0x810C +0xC381 0x8115 +0xC382 0x8117 +0xC383 0x8119 +0xC384 0x811B +0xC385 0x811C +0xC386 0x811D +0xC387 0x811F +0xC388 0x8120 +0xC389 0x8121 +0xC38A 0x8122 +0xC38B 0x8123 +0xC38C 0x8124 +0xC38D 0x8125 +0xC38E 0x8126 +0xC38F 0x8127 +0xC390 0x8128 +0xC391 0x8129 +0xC392 0x812A +0xC393 0x812B +0xC394 0x812D +0xC395 0x812E +0xC396 0x8130 +0xC397 0x8133 +0xC398 0x8134 +0xC399 0x8135 +0xC39A 0x8137 +0xC39B 0x8139 +0xC39C 0x813A +0xC39D 0x813B +0xC39E 0x813C +0xC39F 0x813D +0xC3A0 0x813F +0xC3A1 0x8C29 +0xC3A2 0x8292 +0xC3A3 0x832B +0xC3A4 0x76F2 +0xC3A5 0x6C13 +0xC3A6 0x5FD9 +0xC3A7 0x83BD +0xC3A8 0x732B +0xC3A9 0x8305 +0xC3AA 0x951A +0xC3AB 0x6BDB +0xC3AC 0x77DB +0xC3AD 0x94C6 +0xC3AE 0x536F +0xC3AF 0x8302 +0xC3B0 0x5192 +0xC3B1 0x5E3D +0xC3B2 0x8C8C +0xC3B3 0x8D38 +0xC3B4 0x4E48 +0xC3B5 0x73AB +0xC3B6 0x679A +0xC3B7 0x6885 +0xC3B8 0x9176 +0xC3B9 0x9709 +0xC3BA 0x7164 +0xC3BB 0x6CA1 +0xC3BC 0x7709 +0xC3BD 0x5A92 +0xC3BE 0x9541 +0xC3BF 0x6BCF +0xC3C0 0x7F8E +0xC3C1 0x6627 +0xC3C2 0x5BD0 +0xC3C3 0x59B9 +0xC3C4 0x5A9A +0xC3C5 0x95E8 +0xC3C6 0x95F7 +0xC3C7 0x4EEC +0xC3C8 0x840C +0xC3C9 0x8499 +0xC3CA 0x6AAC +0xC3CB 0x76DF +0xC3CC 0x9530 +0xC3CD 0x731B +0xC3CE 0x68A6 +0xC3CF 0x5B5F +0xC3D0 0x772F +0xC3D1 0x919A +0xC3D2 0x9761 +0xC3D3 0x7CDC +0xC3D4 0x8FF7 +0xC3D5 0x8C1C +0xC3D6 0x5F25 +0xC3D7 0x7C73 +0xC3D8 0x79D8 +0xC3D9 0x89C5 +0xC3DA 0x6CCC +0xC3DB 0x871C +0xC3DC 0x5BC6 +0xC3DD 0x5E42 +0xC3DE 0x68C9 +0xC3DF 0x7720 +0xC3E0 0x7EF5 +0xC3E1 0x5195 +0xC3E2 0x514D +0xC3E3 0x52C9 +0xC3E4 0x5A29 +0xC3E5 0x7F05 +0xC3E6 0x9762 +0xC3E7 0x82D7 +0xC3E8 0x63CF +0xC3E9 0x7784 +0xC3EA 0x85D0 +0xC3EB 0x79D2 +0xC3EC 0x6E3A +0xC3ED 0x5E99 +0xC3EE 0x5999 +0xC3EF 0x8511 +0xC3F0 0x706D +0xC3F1 0x6C11 +0xC3F2 0x62BF +0xC3F3 0x76BF +0xC3F4 0x654F +0xC3F5 0x60AF +0xC3F6 0x95FD +0xC3F7 0x660E +0xC3F8 0x879F +0xC3F9 0x9E23 +0xC3FA 0x94ED +0xC3FB 0x540D +0xC3FC 0x547D +0xC3FD 0x8C2C +0xC3FE 0x6478 +0xC440 0x8140 +0xC441 0x8141 +0xC442 0x8142 +0xC443 0x8143 +0xC444 0x8144 +0xC445 0x8145 +0xC446 0x8147 +0xC447 0x8149 +0xC448 0x814D +0xC449 0x814E +0xC44A 0x814F +0xC44B 0x8152 +0xC44C 0x8156 +0xC44D 0x8157 +0xC44E 0x8158 +0xC44F 0x815B +0xC450 0x815C +0xC451 0x815D +0xC452 0x815E +0xC453 0x815F +0xC454 0x8161 +0xC455 0x8162 +0xC456 0x8163 +0xC457 0x8164 +0xC458 0x8166 +0xC459 0x8168 +0xC45A 0x816A +0xC45B 0x816B +0xC45C 0x816C +0xC45D 0x816F +0xC45E 0x8172 +0xC45F 0x8173 +0xC460 0x8175 +0xC461 0x8176 +0xC462 0x8177 +0xC463 0x8178 +0xC464 0x8181 +0xC465 0x8183 +0xC466 0x8184 +0xC467 0x8185 +0xC468 0x8186 +0xC469 0x8187 +0xC46A 0x8189 +0xC46B 0x818B +0xC46C 0x818C +0xC46D 0x818D +0xC46E 0x818E +0xC46F 0x8190 +0xC470 0x8192 +0xC471 0x8193 +0xC472 0x8194 +0xC473 0x8195 +0xC474 0x8196 +0xC475 0x8197 +0xC476 0x8199 +0xC477 0x819A +0xC478 0x819E +0xC479 0x819F +0xC47A 0x81A0 +0xC47B 0x81A1 +0xC47C 0x81A2 +0xC47D 0x81A4 +0xC47E 0x81A5 +0xC480 0x81A7 +0xC481 0x81A9 +0xC482 0x81AB +0xC483 0x81AC +0xC484 0x81AD +0xC485 0x81AE +0xC486 0x81AF +0xC487 0x81B0 +0xC488 0x81B1 +0xC489 0x81B2 +0xC48A 0x81B4 +0xC48B 0x81B5 +0xC48C 0x81B6 +0xC48D 0x81B7 +0xC48E 0x81B8 +0xC48F 0x81B9 +0xC490 0x81BC +0xC491 0x81BD +0xC492 0x81BE +0xC493 0x81BF +0xC494 0x81C4 +0xC495 0x81C5 +0xC496 0x81C7 +0xC497 0x81C8 +0xC498 0x81C9 +0xC499 0x81CB +0xC49A 0x81CD +0xC49B 0x81CE +0xC49C 0x81CF +0xC49D 0x81D0 +0xC49E 0x81D1 +0xC49F 0x81D2 +0xC4A0 0x81D3 +0xC4A1 0x6479 +0xC4A2 0x8611 +0xC4A3 0x6A21 +0xC4A4 0x819C +0xC4A5 0x78E8 +0xC4A6 0x6469 +0xC4A7 0x9B54 +0xC4A8 0x62B9 +0xC4A9 0x672B +0xC4AA 0x83AB +0xC4AB 0x58A8 +0xC4AC 0x9ED8 +0xC4AD 0x6CAB +0xC4AE 0x6F20 +0xC4AF 0x5BDE +0xC4B0 0x964C +0xC4B1 0x8C0B +0xC4B2 0x725F +0xC4B3 0x67D0 +0xC4B4 0x62C7 +0xC4B5 0x7261 +0xC4B6 0x4EA9 +0xC4B7 0x59C6 +0xC4B8 0x6BCD +0xC4B9 0x5893 +0xC4BA 0x66AE +0xC4BB 0x5E55 +0xC4BC 0x52DF +0xC4BD 0x6155 +0xC4BE 0x6728 +0xC4BF 0x76EE +0xC4C0 0x7766 +0xC4C1 0x7267 +0xC4C2 0x7A46 +0xC4C3 0x62FF +0xC4C4 0x54EA +0xC4C5 0x5450 +0xC4C6 0x94A0 +0xC4C7 0x90A3 +0xC4C8 0x5A1C +0xC4C9 0x7EB3 +0xC4CA 0x6C16 +0xC4CB 0x4E43 +0xC4CC 0x5976 +0xC4CD 0x8010 +0xC4CE 0x5948 +0xC4CF 0x5357 +0xC4D0 0x7537 +0xC4D1 0x96BE +0xC4D2 0x56CA +0xC4D3 0x6320 +0xC4D4 0x8111 +0xC4D5 0x607C +0xC4D6 0x95F9 +0xC4D7 0x6DD6 +0xC4D8 0x5462 +0xC4D9 0x9981 +0xC4DA 0x5185 +0xC4DB 0x5AE9 +0xC4DC 0x80FD +0xC4DD 0x59AE +0xC4DE 0x9713 +0xC4DF 0x502A +0xC4E0 0x6CE5 +0xC4E1 0x5C3C +0xC4E2 0x62DF +0xC4E3 0x4F60 +0xC4E4 0x533F +0xC4E5 0x817B +0xC4E6 0x9006 +0xC4E7 0x6EBA +0xC4E8 0x852B +0xC4E9 0x62C8 +0xC4EA 0x5E74 +0xC4EB 0x78BE +0xC4EC 0x64B5 +0xC4ED 0x637B +0xC4EE 0x5FF5 +0xC4EF 0x5A18 +0xC4F0 0x917F +0xC4F1 0x9E1F +0xC4F2 0x5C3F +0xC4F3 0x634F +0xC4F4 0x8042 +0xC4F5 0x5B7D +0xC4F6 0x556E +0xC4F7 0x954A +0xC4F8 0x954D +0xC4F9 0x6D85 +0xC4FA 0x60A8 +0xC4FB 0x67E0 +0xC4FC 0x72DE +0xC4FD 0x51DD +0xC4FE 0x5B81 +0xC540 0x81D4 +0xC541 0x81D5 +0xC542 0x81D6 +0xC543 0x81D7 +0xC544 0x81D8 +0xC545 0x81D9 +0xC546 0x81DA +0xC547 0x81DB +0xC548 0x81DC +0xC549 0x81DD +0xC54A 0x81DE +0xC54B 0x81DF +0xC54C 0x81E0 +0xC54D 0x81E1 +0xC54E 0x81E2 +0xC54F 0x81E4 +0xC550 0x81E5 +0xC551 0x81E6 +0xC552 0x81E8 +0xC553 0x81E9 +0xC554 0x81EB +0xC555 0x81EE +0xC556 0x81EF +0xC557 0x81F0 +0xC558 0x81F1 +0xC559 0x81F2 +0xC55A 0x81F5 +0xC55B 0x81F6 +0xC55C 0x81F7 +0xC55D 0x81F8 +0xC55E 0x81F9 +0xC55F 0x81FA +0xC560 0x81FD +0xC561 0x81FF +0xC562 0x8203 +0xC563 0x8207 +0xC564 0x8208 +0xC565 0x8209 +0xC566 0x820A +0xC567 0x820B +0xC568 0x820E +0xC569 0x820F +0xC56A 0x8211 +0xC56B 0x8213 +0xC56C 0x8215 +0xC56D 0x8216 +0xC56E 0x8217 +0xC56F 0x8218 +0xC570 0x8219 +0xC571 0x821A +0xC572 0x821D +0xC573 0x8220 +0xC574 0x8224 +0xC575 0x8225 +0xC576 0x8226 +0xC577 0x8227 +0xC578 0x8229 +0xC579 0x822E +0xC57A 0x8232 +0xC57B 0x823A +0xC57C 0x823C +0xC57D 0x823D +0xC57E 0x823F +0xC580 0x8240 +0xC581 0x8241 +0xC582 0x8242 +0xC583 0x8243 +0xC584 0x8245 +0xC585 0x8246 +0xC586 0x8248 +0xC587 0x824A +0xC588 0x824C +0xC589 0x824D +0xC58A 0x824E +0xC58B 0x8250 +0xC58C 0x8251 +0xC58D 0x8252 +0xC58E 0x8253 +0xC58F 0x8254 +0xC590 0x8255 +0xC591 0x8256 +0xC592 0x8257 +0xC593 0x8259 +0xC594 0x825B +0xC595 0x825C +0xC596 0x825D +0xC597 0x825E +0xC598 0x8260 +0xC599 0x8261 +0xC59A 0x8262 +0xC59B 0x8263 +0xC59C 0x8264 +0xC59D 0x8265 +0xC59E 0x8266 +0xC59F 0x8267 +0xC5A0 0x8269 +0xC5A1 0x62E7 +0xC5A2 0x6CDE +0xC5A3 0x725B +0xC5A4 0x626D +0xC5A5 0x94AE +0xC5A6 0x7EBD +0xC5A7 0x8113 +0xC5A8 0x6D53 +0xC5A9 0x519C +0xC5AA 0x5F04 +0xC5AB 0x5974 +0xC5AC 0x52AA +0xC5AD 0x6012 +0xC5AE 0x5973 +0xC5AF 0x6696 +0xC5B0 0x8650 +0xC5B1 0x759F +0xC5B2 0x632A +0xC5B3 0x61E6 +0xC5B4 0x7CEF +0xC5B5 0x8BFA +0xC5B6 0x54E6 +0xC5B7 0x6B27 +0xC5B8 0x9E25 +0xC5B9 0x6BB4 +0xC5BA 0x85D5 +0xC5BB 0x5455 +0xC5BC 0x5076 +0xC5BD 0x6CA4 +0xC5BE 0x556A +0xC5BF 0x8DB4 +0xC5C0 0x722C +0xC5C1 0x5E15 +0xC5C2 0x6015 +0xC5C3 0x7436 +0xC5C4 0x62CD +0xC5C5 0x6392 +0xC5C6 0x724C +0xC5C7 0x5F98 +0xC5C8 0x6E43 +0xC5C9 0x6D3E +0xC5CA 0x6500 +0xC5CB 0x6F58 +0xC5CC 0x76D8 +0xC5CD 0x78D0 +0xC5CE 0x76FC +0xC5CF 0x7554 +0xC5D0 0x5224 +0xC5D1 0x53DB +0xC5D2 0x4E53 +0xC5D3 0x5E9E +0xC5D4 0x65C1 +0xC5D5 0x802A +0xC5D6 0x80D6 +0xC5D7 0x629B +0xC5D8 0x5486 +0xC5D9 0x5228 +0xC5DA 0x70AE +0xC5DB 0x888D +0xC5DC 0x8DD1 +0xC5DD 0x6CE1 +0xC5DE 0x5478 +0xC5DF 0x80DA +0xC5E0 0x57F9 +0xC5E1 0x88F4 +0xC5E2 0x8D54 +0xC5E3 0x966A +0xC5E4 0x914D +0xC5E5 0x4F69 +0xC5E6 0x6C9B +0xC5E7 0x55B7 +0xC5E8 0x76C6 +0xC5E9 0x7830 +0xC5EA 0x62A8 +0xC5EB 0x70F9 +0xC5EC 0x6F8E +0xC5ED 0x5F6D +0xC5EE 0x84EC +0xC5EF 0x68DA +0xC5F0 0x787C +0xC5F1 0x7BF7 +0xC5F2 0x81A8 +0xC5F3 0x670B +0xC5F4 0x9E4F +0xC5F5 0x6367 +0xC5F6 0x78B0 +0xC5F7 0x576F +0xC5F8 0x7812 +0xC5F9 0x9739 +0xC5FA 0x6279 +0xC5FB 0x62AB +0xC5FC 0x5288 +0xC5FD 0x7435 +0xC5FE 0x6BD7 +0xC640 0x826A +0xC641 0x826B +0xC642 0x826C +0xC643 0x826D +0xC644 0x8271 +0xC645 0x8275 +0xC646 0x8276 +0xC647 0x8277 +0xC648 0x8278 +0xC649 0x827B +0xC64A 0x827C +0xC64B 0x8280 +0xC64C 0x8281 +0xC64D 0x8283 +0xC64E 0x8285 +0xC64F 0x8286 +0xC650 0x8287 +0xC651 0x8289 +0xC652 0x828C +0xC653 0x8290 +0xC654 0x8293 +0xC655 0x8294 +0xC656 0x8295 +0xC657 0x8296 +0xC658 0x829A +0xC659 0x829B +0xC65A 0x829E +0xC65B 0x82A0 +0xC65C 0x82A2 +0xC65D 0x82A3 +0xC65E 0x82A7 +0xC65F 0x82B2 +0xC660 0x82B5 +0xC661 0x82B6 +0xC662 0x82BA +0xC663 0x82BB +0xC664 0x82BC +0xC665 0x82BF +0xC666 0x82C0 +0xC667 0x82C2 +0xC668 0x82C3 +0xC669 0x82C5 +0xC66A 0x82C6 +0xC66B 0x82C9 +0xC66C 0x82D0 +0xC66D 0x82D6 +0xC66E 0x82D9 +0xC66F 0x82DA +0xC670 0x82DD +0xC671 0x82E2 +0xC672 0x82E7 +0xC673 0x82E8 +0xC674 0x82E9 +0xC675 0x82EA +0xC676 0x82EC +0xC677 0x82ED +0xC678 0x82EE +0xC679 0x82F0 +0xC67A 0x82F2 +0xC67B 0x82F3 +0xC67C 0x82F5 +0xC67D 0x82F6 +0xC67E 0x82F8 +0xC680 0x82FA +0xC681 0x82FC +0xC682 0x82FD +0xC683 0x82FE +0xC684 0x82FF +0xC685 0x8300 +0xC686 0x830A +0xC687 0x830B +0xC688 0x830D +0xC689 0x8310 +0xC68A 0x8312 +0xC68B 0x8313 +0xC68C 0x8316 +0xC68D 0x8318 +0xC68E 0x8319 +0xC68F 0x831D +0xC690 0x831E +0xC691 0x831F +0xC692 0x8320 +0xC693 0x8321 +0xC694 0x8322 +0xC695 0x8323 +0xC696 0x8324 +0xC697 0x8325 +0xC698 0x8326 +0xC699 0x8329 +0xC69A 0x832A +0xC69B 0x832E +0xC69C 0x8330 +0xC69D 0x8332 +0xC69E 0x8337 +0xC69F 0x833B +0xC6A0 0x833D +0xC6A1 0x5564 +0xC6A2 0x813E +0xC6A3 0x75B2 +0xC6A4 0x76AE +0xC6A5 0x5339 +0xC6A6 0x75DE +0xC6A7 0x50FB +0xC6A8 0x5C41 +0xC6A9 0x8B6C +0xC6AA 0x7BC7 +0xC6AB 0x504F +0xC6AC 0x7247 +0xC6AD 0x9A97 +0xC6AE 0x98D8 +0xC6AF 0x6F02 +0xC6B0 0x74E2 +0xC6B1 0x7968 +0xC6B2 0x6487 +0xC6B3 0x77A5 +0xC6B4 0x62FC +0xC6B5 0x9891 +0xC6B6 0x8D2B +0xC6B7 0x54C1 +0xC6B8 0x8058 +0xC6B9 0x4E52 +0xC6BA 0x576A +0xC6BB 0x82F9 +0xC6BC 0x840D +0xC6BD 0x5E73 +0xC6BE 0x51ED +0xC6BF 0x74F6 +0xC6C0 0x8BC4 +0xC6C1 0x5C4F +0xC6C2 0x5761 +0xC6C3 0x6CFC +0xC6C4 0x9887 +0xC6C5 0x5A46 +0xC6C6 0x7834 +0xC6C7 0x9B44 +0xC6C8 0x8FEB +0xC6C9 0x7C95 +0xC6CA 0x5256 +0xC6CB 0x6251 +0xC6CC 0x94FA +0xC6CD 0x4EC6 +0xC6CE 0x8386 +0xC6CF 0x8461 +0xC6D0 0x83E9 +0xC6D1 0x84B2 +0xC6D2 0x57D4 +0xC6D3 0x6734 +0xC6D4 0x5703 +0xC6D5 0x666E +0xC6D6 0x6D66 +0xC6D7 0x8C31 +0xC6D8 0x66DD +0xC6D9 0x7011 +0xC6DA 0x671F +0xC6DB 0x6B3A +0xC6DC 0x6816 +0xC6DD 0x621A +0xC6DE 0x59BB +0xC6DF 0x4E03 +0xC6E0 0x51C4 +0xC6E1 0x6F06 +0xC6E2 0x67D2 +0xC6E3 0x6C8F +0xC6E4 0x5176 +0xC6E5 0x68CB +0xC6E6 0x5947 +0xC6E7 0x6B67 +0xC6E8 0x7566 +0xC6E9 0x5D0E +0xC6EA 0x8110 +0xC6EB 0x9F50 +0xC6EC 0x65D7 +0xC6ED 0x7948 +0xC6EE 0x7941 +0xC6EF 0x9A91 +0xC6F0 0x8D77 +0xC6F1 0x5C82 +0xC6F2 0x4E5E +0xC6F3 0x4F01 +0xC6F4 0x542F +0xC6F5 0x5951 +0xC6F6 0x780C +0xC6F7 0x5668 +0xC6F8 0x6C14 +0xC6F9 0x8FC4 +0xC6FA 0x5F03 +0xC6FB 0x6C7D +0xC6FC 0x6CE3 +0xC6FD 0x8BAB +0xC6FE 0x6390 +0xC740 0x833E +0xC741 0x833F +0xC742 0x8341 +0xC743 0x8342 +0xC744 0x8344 +0xC745 0x8345 +0xC746 0x8348 +0xC747 0x834A +0xC748 0x834B +0xC749 0x834C +0xC74A 0x834D +0xC74B 0x834E +0xC74C 0x8353 +0xC74D 0x8355 +0xC74E 0x8356 +0xC74F 0x8357 +0xC750 0x8358 +0xC751 0x8359 +0xC752 0x835D +0xC753 0x8362 +0xC754 0x8370 +0xC755 0x8371 +0xC756 0x8372 +0xC757 0x8373 +0xC758 0x8374 +0xC759 0x8375 +0xC75A 0x8376 +0xC75B 0x8379 +0xC75C 0x837A +0xC75D 0x837E +0xC75E 0x837F +0xC75F 0x8380 +0xC760 0x8381 +0xC761 0x8382 +0xC762 0x8383 +0xC763 0x8384 +0xC764 0x8387 +0xC765 0x8388 +0xC766 0x838A +0xC767 0x838B +0xC768 0x838C +0xC769 0x838D +0xC76A 0x838F +0xC76B 0x8390 +0xC76C 0x8391 +0xC76D 0x8394 +0xC76E 0x8395 +0xC76F 0x8396 +0xC770 0x8397 +0xC771 0x8399 +0xC772 0x839A +0xC773 0x839D +0xC774 0x839F +0xC775 0x83A1 +0xC776 0x83A2 +0xC777 0x83A3 +0xC778 0x83A4 +0xC779 0x83A5 +0xC77A 0x83A6 +0xC77B 0x83A7 +0xC77C 0x83AC +0xC77D 0x83AD +0xC77E 0x83AE +0xC780 0x83AF +0xC781 0x83B5 +0xC782 0x83BB +0xC783 0x83BE +0xC784 0x83BF +0xC785 0x83C2 +0xC786 0x83C3 +0xC787 0x83C4 +0xC788 0x83C6 +0xC789 0x83C8 +0xC78A 0x83C9 +0xC78B 0x83CB +0xC78C 0x83CD +0xC78D 0x83CE +0xC78E 0x83D0 +0xC78F 0x83D1 +0xC790 0x83D2 +0xC791 0x83D3 +0xC792 0x83D5 +0xC793 0x83D7 +0xC794 0x83D9 +0xC795 0x83DA +0xC796 0x83DB +0xC797 0x83DE +0xC798 0x83E2 +0xC799 0x83E3 +0xC79A 0x83E4 +0xC79B 0x83E6 +0xC79C 0x83E7 +0xC79D 0x83E8 +0xC79E 0x83EB +0xC79F 0x83EC +0xC7A0 0x83ED +0xC7A1 0x6070 +0xC7A2 0x6D3D +0xC7A3 0x7275 +0xC7A4 0x6266 +0xC7A5 0x948E +0xC7A6 0x94C5 +0xC7A7 0x5343 +0xC7A8 0x8FC1 +0xC7A9 0x7B7E +0xC7AA 0x4EDF +0xC7AB 0x8C26 +0xC7AC 0x4E7E +0xC7AD 0x9ED4 +0xC7AE 0x94B1 +0xC7AF 0x94B3 +0xC7B0 0x524D +0xC7B1 0x6F5C +0xC7B2 0x9063 +0xC7B3 0x6D45 +0xC7B4 0x8C34 +0xC7B5 0x5811 +0xC7B6 0x5D4C +0xC7B7 0x6B20 +0xC7B8 0x6B49 +0xC7B9 0x67AA +0xC7BA 0x545B +0xC7BB 0x8154 +0xC7BC 0x7F8C +0xC7BD 0x5899 +0xC7BE 0x8537 +0xC7BF 0x5F3A +0xC7C0 0x62A2 +0xC7C1 0x6A47 +0xC7C2 0x9539 +0xC7C3 0x6572 +0xC7C4 0x6084 +0xC7C5 0x6865 +0xC7C6 0x77A7 +0xC7C7 0x4E54 +0xC7C8 0x4FA8 +0xC7C9 0x5DE7 +0xC7CA 0x9798 +0xC7CB 0x64AC +0xC7CC 0x7FD8 +0xC7CD 0x5CED +0xC7CE 0x4FCF +0xC7CF 0x7A8D +0xC7D0 0x5207 +0xC7D1 0x8304 +0xC7D2 0x4E14 +0xC7D3 0x602F +0xC7D4 0x7A83 +0xC7D5 0x94A6 +0xC7D6 0x4FB5 +0xC7D7 0x4EB2 +0xC7D8 0x79E6 +0xC7D9 0x7434 +0xC7DA 0x52E4 +0xC7DB 0x82B9 +0xC7DC 0x64D2 +0xC7DD 0x79BD +0xC7DE 0x5BDD +0xC7DF 0x6C81 +0xC7E0 0x9752 +0xC7E1 0x8F7B +0xC7E2 0x6C22 +0xC7E3 0x503E +0xC7E4 0x537F +0xC7E5 0x6E05 +0xC7E6 0x64CE +0xC7E7 0x6674 +0xC7E8 0x6C30 +0xC7E9 0x60C5 +0xC7EA 0x9877 +0xC7EB 0x8BF7 +0xC7EC 0x5E86 +0xC7ED 0x743C +0xC7EE 0x7A77 +0xC7EF 0x79CB +0xC7F0 0x4E18 +0xC7F1 0x90B1 +0xC7F2 0x7403 +0xC7F3 0x6C42 +0xC7F4 0x56DA +0xC7F5 0x914B +0xC7F6 0x6CC5 +0xC7F7 0x8D8B +0xC7F8 0x533A +0xC7F9 0x86C6 +0xC7FA 0x66F2 +0xC7FB 0x8EAF +0xC7FC 0x5C48 +0xC7FD 0x9A71 +0xC7FE 0x6E20 +0xC840 0x83EE +0xC841 0x83EF +0xC842 0x83F3 +0xC843 0x83F4 +0xC844 0x83F5 +0xC845 0x83F6 +0xC846 0x83F7 +0xC847 0x83FA +0xC848 0x83FB +0xC849 0x83FC +0xC84A 0x83FE +0xC84B 0x83FF +0xC84C 0x8400 +0xC84D 0x8402 +0xC84E 0x8405 +0xC84F 0x8407 +0xC850 0x8408 +0xC851 0x8409 +0xC852 0x840A +0xC853 0x8410 +0xC854 0x8412 +0xC855 0x8413 +0xC856 0x8414 +0xC857 0x8415 +0xC858 0x8416 +0xC859 0x8417 +0xC85A 0x8419 +0xC85B 0x841A +0xC85C 0x841B +0xC85D 0x841E +0xC85E 0x841F +0xC85F 0x8420 +0xC860 0x8421 +0xC861 0x8422 +0xC862 0x8423 +0xC863 0x8429 +0xC864 0x842A +0xC865 0x842B +0xC866 0x842C +0xC867 0x842D +0xC868 0x842E +0xC869 0x842F +0xC86A 0x8430 +0xC86B 0x8432 +0xC86C 0x8433 +0xC86D 0x8434 +0xC86E 0x8435 +0xC86F 0x8436 +0xC870 0x8437 +0xC871 0x8439 +0xC872 0x843A +0xC873 0x843B +0xC874 0x843E +0xC875 0x843F +0xC876 0x8440 +0xC877 0x8441 +0xC878 0x8442 +0xC879 0x8443 +0xC87A 0x8444 +0xC87B 0x8445 +0xC87C 0x8447 +0xC87D 0x8448 +0xC87E 0x8449 +0xC880 0x844A +0xC881 0x844B +0xC882 0x844C +0xC883 0x844D +0xC884 0x844E +0xC885 0x844F +0xC886 0x8450 +0xC887 0x8452 +0xC888 0x8453 +0xC889 0x8454 +0xC88A 0x8455 +0xC88B 0x8456 +0xC88C 0x8458 +0xC88D 0x845D +0xC88E 0x845E +0xC88F 0x845F +0xC890 0x8460 +0xC891 0x8462 +0xC892 0x8464 +0xC893 0x8465 +0xC894 0x8466 +0xC895 0x8467 +0xC896 0x8468 +0xC897 0x846A +0xC898 0x846E +0xC899 0x846F +0xC89A 0x8470 +0xC89B 0x8472 +0xC89C 0x8474 +0xC89D 0x8477 +0xC89E 0x8479 +0xC89F 0x847B +0xC8A0 0x847C +0xC8A1 0x53D6 +0xC8A2 0x5A36 +0xC8A3 0x9F8B +0xC8A4 0x8DA3 +0xC8A5 0x53BB +0xC8A6 0x5708 +0xC8A7 0x98A7 +0xC8A8 0x6743 +0xC8A9 0x919B +0xC8AA 0x6CC9 +0xC8AB 0x5168 +0xC8AC 0x75CA +0xC8AD 0x62F3 +0xC8AE 0x72AC +0xC8AF 0x5238 +0xC8B0 0x529D +0xC8B1 0x7F3A +0xC8B2 0x7094 +0xC8B3 0x7638 +0xC8B4 0x5374 +0xC8B5 0x9E4A +0xC8B6 0x69B7 +0xC8B7 0x786E +0xC8B8 0x96C0 +0xC8B9 0x88D9 +0xC8BA 0x7FA4 +0xC8BB 0x7136 +0xC8BC 0x71C3 +0xC8BD 0x5189 +0xC8BE 0x67D3 +0xC8BF 0x74E4 +0xC8C0 0x58E4 +0xC8C1 0x6518 +0xC8C2 0x56B7 +0xC8C3 0x8BA9 +0xC8C4 0x9976 +0xC8C5 0x6270 +0xC8C6 0x7ED5 +0xC8C7 0x60F9 +0xC8C8 0x70ED +0xC8C9 0x58EC +0xC8CA 0x4EC1 +0xC8CB 0x4EBA +0xC8CC 0x5FCD +0xC8CD 0x97E7 +0xC8CE 0x4EFB +0xC8CF 0x8BA4 +0xC8D0 0x5203 +0xC8D1 0x598A +0xC8D2 0x7EAB +0xC8D3 0x6254 +0xC8D4 0x4ECD +0xC8D5 0x65E5 +0xC8D6 0x620E +0xC8D7 0x8338 +0xC8D8 0x84C9 +0xC8D9 0x8363 +0xC8DA 0x878D +0xC8DB 0x7194 +0xC8DC 0x6EB6 +0xC8DD 0x5BB9 +0xC8DE 0x7ED2 +0xC8DF 0x5197 +0xC8E0 0x63C9 +0xC8E1 0x67D4 +0xC8E2 0x8089 +0xC8E3 0x8339 +0xC8E4 0x8815 +0xC8E5 0x5112 +0xC8E6 0x5B7A +0xC8E7 0x5982 +0xC8E8 0x8FB1 +0xC8E9 0x4E73 +0xC8EA 0x6C5D +0xC8EB 0x5165 +0xC8EC 0x8925 +0xC8ED 0x8F6F +0xC8EE 0x962E +0xC8EF 0x854A +0xC8F0 0x745E +0xC8F1 0x9510 +0xC8F2 0x95F0 +0xC8F3 0x6DA6 +0xC8F4 0x82E5 +0xC8F5 0x5F31 +0xC8F6 0x6492 +0xC8F7 0x6D12 +0xC8F8 0x8428 +0xC8F9 0x816E +0xC8FA 0x9CC3 +0xC8FB 0x585E +0xC8FC 0x8D5B +0xC8FD 0x4E09 +0xC8FE 0x53C1 +0xC940 0x847D +0xC941 0x847E +0xC942 0x847F +0xC943 0x8480 +0xC944 0x8481 +0xC945 0x8483 +0xC946 0x8484 +0xC947 0x8485 +0xC948 0x8486 +0xC949 0x848A +0xC94A 0x848D +0xC94B 0x848F +0xC94C 0x8490 +0xC94D 0x8491 +0xC94E 0x8492 +0xC94F 0x8493 +0xC950 0x8494 +0xC951 0x8495 +0xC952 0x8496 +0xC953 0x8498 +0xC954 0x849A +0xC955 0x849B +0xC956 0x849D +0xC957 0x849E +0xC958 0x849F +0xC959 0x84A0 +0xC95A 0x84A2 +0xC95B 0x84A3 +0xC95C 0x84A4 +0xC95D 0x84A5 +0xC95E 0x84A6 +0xC95F 0x84A7 +0xC960 0x84A8 +0xC961 0x84A9 +0xC962 0x84AA +0xC963 0x84AB +0xC964 0x84AC +0xC965 0x84AD +0xC966 0x84AE +0xC967 0x84B0 +0xC968 0x84B1 +0xC969 0x84B3 +0xC96A 0x84B5 +0xC96B 0x84B6 +0xC96C 0x84B7 +0xC96D 0x84BB +0xC96E 0x84BC +0xC96F 0x84BE +0xC970 0x84C0 +0xC971 0x84C2 +0xC972 0x84C3 +0xC973 0x84C5 +0xC974 0x84C6 +0xC975 0x84C7 +0xC976 0x84C8 +0xC977 0x84CB +0xC978 0x84CC +0xC979 0x84CE +0xC97A 0x84CF +0xC97B 0x84D2 +0xC97C 0x84D4 +0xC97D 0x84D5 +0xC97E 0x84D7 +0xC980 0x84D8 +0xC981 0x84D9 +0xC982 0x84DA +0xC983 0x84DB +0xC984 0x84DC +0xC985 0x84DE +0xC986 0x84E1 +0xC987 0x84E2 +0xC988 0x84E4 +0xC989 0x84E7 +0xC98A 0x84E8 +0xC98B 0x84E9 +0xC98C 0x84EA +0xC98D 0x84EB +0xC98E 0x84ED +0xC98F 0x84EE +0xC990 0x84EF +0xC991 0x84F1 +0xC992 0x84F2 +0xC993 0x84F3 +0xC994 0x84F4 +0xC995 0x84F5 +0xC996 0x84F6 +0xC997 0x84F7 +0xC998 0x84F8 +0xC999 0x84F9 +0xC99A 0x84FA +0xC99B 0x84FB +0xC99C 0x84FD +0xC99D 0x84FE +0xC99E 0x8500 +0xC99F 0x8501 +0xC9A0 0x8502 +0xC9A1 0x4F1E +0xC9A2 0x6563 +0xC9A3 0x6851 +0xC9A4 0x55D3 +0xC9A5 0x4E27 +0xC9A6 0x6414 +0xC9A7 0x9A9A +0xC9A8 0x626B +0xC9A9 0x5AC2 +0xC9AA 0x745F +0xC9AB 0x8272 +0xC9AC 0x6DA9 +0xC9AD 0x68EE +0xC9AE 0x50E7 +0xC9AF 0x838E +0xC9B0 0x7802 +0xC9B1 0x6740 +0xC9B2 0x5239 +0xC9B3 0x6C99 +0xC9B4 0x7EB1 +0xC9B5 0x50BB +0xC9B6 0x5565 +0xC9B7 0x715E +0xC9B8 0x7B5B +0xC9B9 0x6652 +0xC9BA 0x73CA +0xC9BB 0x82EB +0xC9BC 0x6749 +0xC9BD 0x5C71 +0xC9BE 0x5220 +0xC9BF 0x717D +0xC9C0 0x886B +0xC9C1 0x95EA +0xC9C2 0x9655 +0xC9C3 0x64C5 +0xC9C4 0x8D61 +0xC9C5 0x81B3 +0xC9C6 0x5584 +0xC9C7 0x6C55 +0xC9C8 0x6247 +0xC9C9 0x7F2E +0xC9CA 0x5892 +0xC9CB 0x4F24 +0xC9CC 0x5546 +0xC9CD 0x8D4F +0xC9CE 0x664C +0xC9CF 0x4E0A +0xC9D0 0x5C1A +0xC9D1 0x88F3 +0xC9D2 0x68A2 +0xC9D3 0x634E +0xC9D4 0x7A0D +0xC9D5 0x70E7 +0xC9D6 0x828D +0xC9D7 0x52FA +0xC9D8 0x97F6 +0xC9D9 0x5C11 +0xC9DA 0x54E8 +0xC9DB 0x90B5 +0xC9DC 0x7ECD +0xC9DD 0x5962 +0xC9DE 0x8D4A +0xC9DF 0x86C7 +0xC9E0 0x820C +0xC9E1 0x820D +0xC9E2 0x8D66 +0xC9E3 0x6444 +0xC9E4 0x5C04 +0xC9E5 0x6151 +0xC9E6 0x6D89 +0xC9E7 0x793E +0xC9E8 0x8BBE +0xC9E9 0x7837 +0xC9EA 0x7533 +0xC9EB 0x547B +0xC9EC 0x4F38 +0xC9ED 0x8EAB +0xC9EE 0x6DF1 +0xC9EF 0x5A20 +0xC9F0 0x7EC5 +0xC9F1 0x795E +0xC9F2 0x6C88 +0xC9F3 0x5BA1 +0xC9F4 0x5A76 +0xC9F5 0x751A +0xC9F6 0x80BE +0xC9F7 0x614E +0xC9F8 0x6E17 +0xC9F9 0x58F0 +0xC9FA 0x751F +0xC9FB 0x7525 +0xC9FC 0x7272 +0xC9FD 0x5347 +0xC9FE 0x7EF3 +0xCA40 0x8503 +0xCA41 0x8504 +0xCA42 0x8505 +0xCA43 0x8506 +0xCA44 0x8507 +0xCA45 0x8508 +0xCA46 0x8509 +0xCA47 0x850A +0xCA48 0x850B +0xCA49 0x850D +0xCA4A 0x850E +0xCA4B 0x850F +0xCA4C 0x8510 +0xCA4D 0x8512 +0xCA4E 0x8514 +0xCA4F 0x8515 +0xCA50 0x8516 +0xCA51 0x8518 +0xCA52 0x8519 +0xCA53 0x851B +0xCA54 0x851C +0xCA55 0x851D +0xCA56 0x851E +0xCA57 0x8520 +0xCA58 0x8522 +0xCA59 0x8523 +0xCA5A 0x8524 +0xCA5B 0x8525 +0xCA5C 0x8526 +0xCA5D 0x8527 +0xCA5E 0x8528 +0xCA5F 0x8529 +0xCA60 0x852A +0xCA61 0x852D +0xCA62 0x852E +0xCA63 0x852F +0xCA64 0x8530 +0xCA65 0x8531 +0xCA66 0x8532 +0xCA67 0x8533 +0xCA68 0x8534 +0xCA69 0x8535 +0xCA6A 0x8536 +0xCA6B 0x853E +0xCA6C 0x853F +0xCA6D 0x8540 +0xCA6E 0x8541 +0xCA6F 0x8542 +0xCA70 0x8544 +0xCA71 0x8545 +0xCA72 0x8546 +0xCA73 0x8547 +0xCA74 0x854B +0xCA75 0x854C +0xCA76 0x854D +0xCA77 0x854E +0xCA78 0x854F +0xCA79 0x8550 +0xCA7A 0x8551 +0xCA7B 0x8552 +0xCA7C 0x8553 +0xCA7D 0x8554 +0xCA7E 0x8555 +0xCA80 0x8557 +0xCA81 0x8558 +0xCA82 0x855A +0xCA83 0x855B +0xCA84 0x855C +0xCA85 0x855D +0xCA86 0x855F +0xCA87 0x8560 +0xCA88 0x8561 +0xCA89 0x8562 +0xCA8A 0x8563 +0xCA8B 0x8565 +0xCA8C 0x8566 +0xCA8D 0x8567 +0xCA8E 0x8569 +0xCA8F 0x856A +0xCA90 0x856B +0xCA91 0x856C +0xCA92 0x856D +0xCA93 0x856E +0xCA94 0x856F +0xCA95 0x8570 +0xCA96 0x8571 +0xCA97 0x8573 +0xCA98 0x8575 +0xCA99 0x8576 +0xCA9A 0x8577 +0xCA9B 0x8578 +0xCA9C 0x857C +0xCA9D 0x857D +0xCA9E 0x857F +0xCA9F 0x8580 +0xCAA0 0x8581 +0xCAA1 0x7701 +0xCAA2 0x76DB +0xCAA3 0x5269 +0xCAA4 0x80DC +0xCAA5 0x5723 +0xCAA6 0x5E08 +0xCAA7 0x5931 +0xCAA8 0x72EE +0xCAA9 0x65BD +0xCAAA 0x6E7F +0xCAAB 0x8BD7 +0xCAAC 0x5C38 +0xCAAD 0x8671 +0xCAAE 0x5341 +0xCAAF 0x77F3 +0xCAB0 0x62FE +0xCAB1 0x65F6 +0xCAB2 0x4EC0 +0xCAB3 0x98DF +0xCAB4 0x8680 +0xCAB5 0x5B9E +0xCAB6 0x8BC6 +0xCAB7 0x53F2 +0xCAB8 0x77E2 +0xCAB9 0x4F7F +0xCABA 0x5C4E +0xCABB 0x9A76 +0xCABC 0x59CB +0xCABD 0x5F0F +0xCABE 0x793A +0xCABF 0x58EB +0xCAC0 0x4E16 +0xCAC1 0x67FF +0xCAC2 0x4E8B +0xCAC3 0x62ED +0xCAC4 0x8A93 +0xCAC5 0x901D +0xCAC6 0x52BF +0xCAC7 0x662F +0xCAC8 0x55DC +0xCAC9 0x566C +0xCACA 0x9002 +0xCACB 0x4ED5 +0xCACC 0x4F8D +0xCACD 0x91CA +0xCACE 0x9970 +0xCACF 0x6C0F +0xCAD0 0x5E02 +0xCAD1 0x6043 +0xCAD2 0x5BA4 +0xCAD3 0x89C6 +0xCAD4 0x8BD5 +0xCAD5 0x6536 +0xCAD6 0x624B +0xCAD7 0x9996 +0xCAD8 0x5B88 +0xCAD9 0x5BFF +0xCADA 0x6388 +0xCADB 0x552E +0xCADC 0x53D7 +0xCADD 0x7626 +0xCADE 0x517D +0xCADF 0x852C +0xCAE0 0x67A2 +0xCAE1 0x68B3 +0xCAE2 0x6B8A +0xCAE3 0x6292 +0xCAE4 0x8F93 +0xCAE5 0x53D4 +0xCAE6 0x8212 +0xCAE7 0x6DD1 +0xCAE8 0x758F +0xCAE9 0x4E66 +0xCAEA 0x8D4E +0xCAEB 0x5B70 +0xCAEC 0x719F +0xCAED 0x85AF +0xCAEE 0x6691 +0xCAEF 0x66D9 +0xCAF0 0x7F72 +0xCAF1 0x8700 +0xCAF2 0x9ECD +0xCAF3 0x9F20 +0xCAF4 0x5C5E +0xCAF5 0x672F +0xCAF6 0x8FF0 +0xCAF7 0x6811 +0xCAF8 0x675F +0xCAF9 0x620D +0xCAFA 0x7AD6 +0xCAFB 0x5885 +0xCAFC 0x5EB6 +0xCAFD 0x6570 +0xCAFE 0x6F31 +0xCB40 0x8582 +0xCB41 0x8583 +0xCB42 0x8586 +0xCB43 0x8588 +0xCB44 0x8589 +0xCB45 0x858A +0xCB46 0x858B +0xCB47 0x858C +0xCB48 0x858D +0xCB49 0x858E +0xCB4A 0x8590 +0xCB4B 0x8591 +0xCB4C 0x8592 +0xCB4D 0x8593 +0xCB4E 0x8594 +0xCB4F 0x8595 +0xCB50 0x8596 +0xCB51 0x8597 +0xCB52 0x8598 +0xCB53 0x8599 +0xCB54 0x859A +0xCB55 0x859D +0xCB56 0x859E +0xCB57 0x859F +0xCB58 0x85A0 +0xCB59 0x85A1 +0xCB5A 0x85A2 +0xCB5B 0x85A3 +0xCB5C 0x85A5 +0xCB5D 0x85A6 +0xCB5E 0x85A7 +0xCB5F 0x85A9 +0xCB60 0x85AB +0xCB61 0x85AC +0xCB62 0x85AD +0xCB63 0x85B1 +0xCB64 0x85B2 +0xCB65 0x85B3 +0xCB66 0x85B4 +0xCB67 0x85B5 +0xCB68 0x85B6 +0xCB69 0x85B8 +0xCB6A 0x85BA +0xCB6B 0x85BB +0xCB6C 0x85BC +0xCB6D 0x85BD +0xCB6E 0x85BE +0xCB6F 0x85BF +0xCB70 0x85C0 +0xCB71 0x85C2 +0xCB72 0x85C3 +0xCB73 0x85C4 +0xCB74 0x85C5 +0xCB75 0x85C6 +0xCB76 0x85C7 +0xCB77 0x85C8 +0xCB78 0x85CA +0xCB79 0x85CB +0xCB7A 0x85CC +0xCB7B 0x85CD +0xCB7C 0x85CE +0xCB7D 0x85D1 +0xCB7E 0x85D2 +0xCB80 0x85D4 +0xCB81 0x85D6 +0xCB82 0x85D7 +0xCB83 0x85D8 +0xCB84 0x85D9 +0xCB85 0x85DA +0xCB86 0x85DB +0xCB87 0x85DD +0xCB88 0x85DE +0xCB89 0x85DF +0xCB8A 0x85E0 +0xCB8B 0x85E1 +0xCB8C 0x85E2 +0xCB8D 0x85E3 +0xCB8E 0x85E5 +0xCB8F 0x85E6 +0xCB90 0x85E7 +0xCB91 0x85E8 +0xCB92 0x85EA +0xCB93 0x85EB +0xCB94 0x85EC +0xCB95 0x85ED +0xCB96 0x85EE +0xCB97 0x85EF +0xCB98 0x85F0 +0xCB99 0x85F1 +0xCB9A 0x85F2 +0xCB9B 0x85F3 +0xCB9C 0x85F4 +0xCB9D 0x85F5 +0xCB9E 0x85F6 +0xCB9F 0x85F7 +0xCBA0 0x85F8 +0xCBA1 0x6055 +0xCBA2 0x5237 +0xCBA3 0x800D +0xCBA4 0x6454 +0xCBA5 0x8870 +0xCBA6 0x7529 +0xCBA7 0x5E05 +0xCBA8 0x6813 +0xCBA9 0x62F4 +0xCBAA 0x971C +0xCBAB 0x53CC +0xCBAC 0x723D +0xCBAD 0x8C01 +0xCBAE 0x6C34 +0xCBAF 0x7761 +0xCBB0 0x7A0E +0xCBB1 0x542E +0xCBB2 0x77AC +0xCBB3 0x987A +0xCBB4 0x821C +0xCBB5 0x8BF4 +0xCBB6 0x7855 +0xCBB7 0x6714 +0xCBB8 0x70C1 +0xCBB9 0x65AF +0xCBBA 0x6495 +0xCBBB 0x5636 +0xCBBC 0x601D +0xCBBD 0x79C1 +0xCBBE 0x53F8 +0xCBBF 0x4E1D +0xCBC0 0x6B7B +0xCBC1 0x8086 +0xCBC2 0x5BFA +0xCBC3 0x55E3 +0xCBC4 0x56DB +0xCBC5 0x4F3A +0xCBC6 0x4F3C +0xCBC7 0x9972 +0xCBC8 0x5DF3 +0xCBC9 0x677E +0xCBCA 0x8038 +0xCBCB 0x6002 +0xCBCC 0x9882 +0xCBCD 0x9001 +0xCBCE 0x5B8B +0xCBCF 0x8BBC +0xCBD0 0x8BF5 +0xCBD1 0x641C +0xCBD2 0x8258 +0xCBD3 0x64DE +0xCBD4 0x55FD +0xCBD5 0x82CF +0xCBD6 0x9165 +0xCBD7 0x4FD7 +0xCBD8 0x7D20 +0xCBD9 0x901F +0xCBDA 0x7C9F +0xCBDB 0x50F3 +0xCBDC 0x5851 +0xCBDD 0x6EAF +0xCBDE 0x5BBF +0xCBDF 0x8BC9 +0xCBE0 0x8083 +0xCBE1 0x9178 +0xCBE2 0x849C +0xCBE3 0x7B97 +0xCBE4 0x867D +0xCBE5 0x968B +0xCBE6 0x968F +0xCBE7 0x7EE5 +0xCBE8 0x9AD3 +0xCBE9 0x788E +0xCBEA 0x5C81 +0xCBEB 0x7A57 +0xCBEC 0x9042 +0xCBED 0x96A7 +0xCBEE 0x795F +0xCBEF 0x5B59 +0xCBF0 0x635F +0xCBF1 0x7B0B +0xCBF2 0x84D1 +0xCBF3 0x68AD +0xCBF4 0x5506 +0xCBF5 0x7F29 +0xCBF6 0x7410 +0xCBF7 0x7D22 +0xCBF8 0x9501 +0xCBF9 0x6240 +0xCBFA 0x584C +0xCBFB 0x4ED6 +0xCBFC 0x5B83 +0xCBFD 0x5979 +0xCBFE 0x5854 +0xCC40 0x85F9 +0xCC41 0x85FA +0xCC42 0x85FC +0xCC43 0x85FD +0xCC44 0x85FE +0xCC45 0x8600 +0xCC46 0x8601 +0xCC47 0x8602 +0xCC48 0x8603 +0xCC49 0x8604 +0xCC4A 0x8606 +0xCC4B 0x8607 +0xCC4C 0x8608 +0xCC4D 0x8609 +0xCC4E 0x860A +0xCC4F 0x860B +0xCC50 0x860C +0xCC51 0x860D +0xCC52 0x860E +0xCC53 0x860F +0xCC54 0x8610 +0xCC55 0x8612 +0xCC56 0x8613 +0xCC57 0x8614 +0xCC58 0x8615 +0xCC59 0x8617 +0xCC5A 0x8618 +0xCC5B 0x8619 +0xCC5C 0x861A +0xCC5D 0x861B +0xCC5E 0x861C +0xCC5F 0x861D +0xCC60 0x861E +0xCC61 0x861F +0xCC62 0x8620 +0xCC63 0x8621 +0xCC64 0x8622 +0xCC65 0x8623 +0xCC66 0x8624 +0xCC67 0x8625 +0xCC68 0x8626 +0xCC69 0x8628 +0xCC6A 0x862A +0xCC6B 0x862B +0xCC6C 0x862C +0xCC6D 0x862D +0xCC6E 0x862E +0xCC6F 0x862F +0xCC70 0x8630 +0xCC71 0x8631 +0xCC72 0x8632 +0xCC73 0x8633 +0xCC74 0x8634 +0xCC75 0x8635 +0xCC76 0x8636 +0xCC77 0x8637 +0xCC78 0x8639 +0xCC79 0x863A +0xCC7A 0x863B +0xCC7B 0x863D +0xCC7C 0x863E +0xCC7D 0x863F +0xCC7E 0x8640 +0xCC80 0x8641 +0xCC81 0x8642 +0xCC82 0x8643 +0xCC83 0x8644 +0xCC84 0x8645 +0xCC85 0x8646 +0xCC86 0x8647 +0xCC87 0x8648 +0xCC88 0x8649 +0xCC89 0x864A +0xCC8A 0x864B +0xCC8B 0x864C +0xCC8C 0x8652 +0xCC8D 0x8653 +0xCC8E 0x8655 +0xCC8F 0x8656 +0xCC90 0x8657 +0xCC91 0x8658 +0xCC92 0x8659 +0xCC93 0x865B +0xCC94 0x865C +0xCC95 0x865D +0xCC96 0x865F +0xCC97 0x8660 +0xCC98 0x8661 +0xCC99 0x8663 +0xCC9A 0x8664 +0xCC9B 0x8665 +0xCC9C 0x8666 +0xCC9D 0x8667 +0xCC9E 0x8668 +0xCC9F 0x8669 +0xCCA0 0x866A +0xCCA1 0x736D +0xCCA2 0x631E +0xCCA3 0x8E4B +0xCCA4 0x8E0F +0xCCA5 0x80CE +0xCCA6 0x82D4 +0xCCA7 0x62AC +0xCCA8 0x53F0 +0xCCA9 0x6CF0 +0xCCAA 0x915E +0xCCAB 0x592A +0xCCAC 0x6001 +0xCCAD 0x6C70 +0xCCAE 0x574D +0xCCAF 0x644A +0xCCB0 0x8D2A +0xCCB1 0x762B +0xCCB2 0x6EE9 +0xCCB3 0x575B +0xCCB4 0x6A80 +0xCCB5 0x75F0 +0xCCB6 0x6F6D +0xCCB7 0x8C2D +0xCCB8 0x8C08 +0xCCB9 0x5766 +0xCCBA 0x6BEF +0xCCBB 0x8892 +0xCCBC 0x78B3 +0xCCBD 0x63A2 +0xCCBE 0x53F9 +0xCCBF 0x70AD +0xCCC0 0x6C64 +0xCCC1 0x5858 +0xCCC2 0x642A +0xCCC3 0x5802 +0xCCC4 0x68E0 +0xCCC5 0x819B +0xCCC6 0x5510 +0xCCC7 0x7CD6 +0xCCC8 0x5018 +0xCCC9 0x8EBA +0xCCCA 0x6DCC +0xCCCB 0x8D9F +0xCCCC 0x70EB +0xCCCD 0x638F +0xCCCE 0x6D9B +0xCCCF 0x6ED4 +0xCCD0 0x7EE6 +0xCCD1 0x8404 +0xCCD2 0x6843 +0xCCD3 0x9003 +0xCCD4 0x6DD8 +0xCCD5 0x9676 +0xCCD6 0x8BA8 +0xCCD7 0x5957 +0xCCD8 0x7279 +0xCCD9 0x85E4 +0xCCDA 0x817E +0xCCDB 0x75BC +0xCCDC 0x8A8A +0xCCDD 0x68AF +0xCCDE 0x5254 +0xCCDF 0x8E22 +0xCCE0 0x9511 +0xCCE1 0x63D0 +0xCCE2 0x9898 +0xCCE3 0x8E44 +0xCCE4 0x557C +0xCCE5 0x4F53 +0xCCE6 0x66FF +0xCCE7 0x568F +0xCCE8 0x60D5 +0xCCE9 0x6D95 +0xCCEA 0x5243 +0xCCEB 0x5C49 +0xCCEC 0x5929 +0xCCED 0x6DFB +0xCCEE 0x586B +0xCCEF 0x7530 +0xCCF0 0x751C +0xCCF1 0x606C +0xCCF2 0x8214 +0xCCF3 0x8146 +0xCCF4 0x6311 +0xCCF5 0x6761 +0xCCF6 0x8FE2 +0xCCF7 0x773A +0xCCF8 0x8DF3 +0xCCF9 0x8D34 +0xCCFA 0x94C1 +0xCCFB 0x5E16 +0xCCFC 0x5385 +0xCCFD 0x542C +0xCCFE 0x70C3 +0xCD40 0x866D +0xCD41 0x866F +0xCD42 0x8670 +0xCD43 0x8672 +0xCD44 0x8673 +0xCD45 0x8674 +0xCD46 0x8675 +0xCD47 0x8676 +0xCD48 0x8677 +0xCD49 0x8678 +0xCD4A 0x8683 +0xCD4B 0x8684 +0xCD4C 0x8685 +0xCD4D 0x8686 +0xCD4E 0x8687 +0xCD4F 0x8688 +0xCD50 0x8689 +0xCD51 0x868E +0xCD52 0x868F +0xCD53 0x8690 +0xCD54 0x8691 +0xCD55 0x8692 +0xCD56 0x8694 +0xCD57 0x8696 +0xCD58 0x8697 +0xCD59 0x8698 +0xCD5A 0x8699 +0xCD5B 0x869A +0xCD5C 0x869B +0xCD5D 0x869E +0xCD5E 0x869F +0xCD5F 0x86A0 +0xCD60 0x86A1 +0xCD61 0x86A2 +0xCD62 0x86A5 +0xCD63 0x86A6 +0xCD64 0x86AB +0xCD65 0x86AD +0xCD66 0x86AE +0xCD67 0x86B2 +0xCD68 0x86B3 +0xCD69 0x86B7 +0xCD6A 0x86B8 +0xCD6B 0x86B9 +0xCD6C 0x86BB +0xCD6D 0x86BC +0xCD6E 0x86BD +0xCD6F 0x86BE +0xCD70 0x86BF +0xCD71 0x86C1 +0xCD72 0x86C2 +0xCD73 0x86C3 +0xCD74 0x86C5 +0xCD75 0x86C8 +0xCD76 0x86CC +0xCD77 0x86CD +0xCD78 0x86D2 +0xCD79 0x86D3 +0xCD7A 0x86D5 +0xCD7B 0x86D6 +0xCD7C 0x86D7 +0xCD7D 0x86DA +0xCD7E 0x86DC +0xCD80 0x86DD +0xCD81 0x86E0 +0xCD82 0x86E1 +0xCD83 0x86E2 +0xCD84 0x86E3 +0xCD85 0x86E5 +0xCD86 0x86E6 +0xCD87 0x86E7 +0xCD88 0x86E8 +0xCD89 0x86EA +0xCD8A 0x86EB +0xCD8B 0x86EC +0xCD8C 0x86EF +0xCD8D 0x86F5 +0xCD8E 0x86F6 +0xCD8F 0x86F7 +0xCD90 0x86FA +0xCD91 0x86FB +0xCD92 0x86FC +0xCD93 0x86FD +0xCD94 0x86FF +0xCD95 0x8701 +0xCD96 0x8704 +0xCD97 0x8705 +0xCD98 0x8706 +0xCD99 0x870B +0xCD9A 0x870C +0xCD9B 0x870E +0xCD9C 0x870F +0xCD9D 0x8710 +0xCD9E 0x8711 +0xCD9F 0x8714 +0xCDA0 0x8716 +0xCDA1 0x6C40 +0xCDA2 0x5EF7 +0xCDA3 0x505C +0xCDA4 0x4EAD +0xCDA5 0x5EAD +0xCDA6 0x633A +0xCDA7 0x8247 +0xCDA8 0x901A +0xCDA9 0x6850 +0xCDAA 0x916E +0xCDAB 0x77B3 +0xCDAC 0x540C +0xCDAD 0x94DC +0xCDAE 0x5F64 +0xCDAF 0x7AE5 +0xCDB0 0x6876 +0xCDB1 0x6345 +0xCDB2 0x7B52 +0xCDB3 0x7EDF +0xCDB4 0x75DB +0xCDB5 0x5077 +0xCDB6 0x6295 +0xCDB7 0x5934 +0xCDB8 0x900F +0xCDB9 0x51F8 +0xCDBA 0x79C3 +0xCDBB 0x7A81 +0xCDBC 0x56FE +0xCDBD 0x5F92 +0xCDBE 0x9014 +0xCDBF 0x6D82 +0xCDC0 0x5C60 +0xCDC1 0x571F +0xCDC2 0x5410 +0xCDC3 0x5154 +0xCDC4 0x6E4D +0xCDC5 0x56E2 +0xCDC6 0x63A8 +0xCDC7 0x9893 +0xCDC8 0x817F +0xCDC9 0x8715 +0xCDCA 0x892A +0xCDCB 0x9000 +0xCDCC 0x541E +0xCDCD 0x5C6F +0xCDCE 0x81C0 +0xCDCF 0x62D6 +0xCDD0 0x6258 +0xCDD1 0x8131 +0xCDD2 0x9E35 +0xCDD3 0x9640 +0xCDD4 0x9A6E +0xCDD5 0x9A7C +0xCDD6 0x692D +0xCDD7 0x59A5 +0xCDD8 0x62D3 +0xCDD9 0x553E +0xCDDA 0x6316 +0xCDDB 0x54C7 +0xCDDC 0x86D9 +0xCDDD 0x6D3C +0xCDDE 0x5A03 +0xCDDF 0x74E6 +0xCDE0 0x889C +0xCDE1 0x6B6A +0xCDE2 0x5916 +0xCDE3 0x8C4C +0xCDE4 0x5F2F +0xCDE5 0x6E7E +0xCDE6 0x73A9 +0xCDE7 0x987D +0xCDE8 0x4E38 +0xCDE9 0x70F7 +0xCDEA 0x5B8C +0xCDEB 0x7897 +0xCDEC 0x633D +0xCDED 0x665A +0xCDEE 0x7696 +0xCDEF 0x60CB +0xCDF0 0x5B9B +0xCDF1 0x5A49 +0xCDF2 0x4E07 +0xCDF3 0x8155 +0xCDF4 0x6C6A +0xCDF5 0x738B +0xCDF6 0x4EA1 +0xCDF7 0x6789 +0xCDF8 0x7F51 +0xCDF9 0x5F80 +0xCDFA 0x65FA +0xCDFB 0x671B +0xCDFC 0x5FD8 +0xCDFD 0x5984 +0xCDFE 0x5A01 +0xCE40 0x8719 +0xCE41 0x871B +0xCE42 0x871D +0xCE43 0x871F +0xCE44 0x8720 +0xCE45 0x8724 +0xCE46 0x8726 +0xCE47 0x8727 +0xCE48 0x8728 +0xCE49 0x872A +0xCE4A 0x872B +0xCE4B 0x872C +0xCE4C 0x872D +0xCE4D 0x872F +0xCE4E 0x8730 +0xCE4F 0x8732 +0xCE50 0x8733 +0xCE51 0x8735 +0xCE52 0x8736 +0xCE53 0x8738 +0xCE54 0x8739 +0xCE55 0x873A +0xCE56 0x873C +0xCE57 0x873D +0xCE58 0x8740 +0xCE59 0x8741 +0xCE5A 0x8742 +0xCE5B 0x8743 +0xCE5C 0x8744 +0xCE5D 0x8745 +0xCE5E 0x8746 +0xCE5F 0x874A +0xCE60 0x874B +0xCE61 0x874D +0xCE62 0x874F +0xCE63 0x8750 +0xCE64 0x8751 +0xCE65 0x8752 +0xCE66 0x8754 +0xCE67 0x8755 +0xCE68 0x8756 +0xCE69 0x8758 +0xCE6A 0x875A +0xCE6B 0x875B +0xCE6C 0x875C +0xCE6D 0x875D +0xCE6E 0x875E +0xCE6F 0x875F +0xCE70 0x8761 +0xCE71 0x8762 +0xCE72 0x8766 +0xCE73 0x8767 +0xCE74 0x8768 +0xCE75 0x8769 +0xCE76 0x876A +0xCE77 0x876B +0xCE78 0x876C +0xCE79 0x876D +0xCE7A 0x876F +0xCE7B 0x8771 +0xCE7C 0x8772 +0xCE7D 0x8773 +0xCE7E 0x8775 +0xCE80 0x8777 +0xCE81 0x8778 +0xCE82 0x8779 +0xCE83 0x877A +0xCE84 0x877F +0xCE85 0x8780 +0xCE86 0x8781 +0xCE87 0x8784 +0xCE88 0x8786 +0xCE89 0x8787 +0xCE8A 0x8789 +0xCE8B 0x878A +0xCE8C 0x878C +0xCE8D 0x878E +0xCE8E 0x878F +0xCE8F 0x8790 +0xCE90 0x8791 +0xCE91 0x8792 +0xCE92 0x8794 +0xCE93 0x8795 +0xCE94 0x8796 +0xCE95 0x8798 +0xCE96 0x8799 +0xCE97 0x879A +0xCE98 0x879B +0xCE99 0x879C +0xCE9A 0x879D +0xCE9B 0x879E +0xCE9C 0x87A0 +0xCE9D 0x87A1 +0xCE9E 0x87A2 +0xCE9F 0x87A3 +0xCEA0 0x87A4 +0xCEA1 0x5DCD +0xCEA2 0x5FAE +0xCEA3 0x5371 +0xCEA4 0x97E6 +0xCEA5 0x8FDD +0xCEA6 0x6845 +0xCEA7 0x56F4 +0xCEA8 0x552F +0xCEA9 0x60DF +0xCEAA 0x4E3A +0xCEAB 0x6F4D +0xCEAC 0x7EF4 +0xCEAD 0x82C7 +0xCEAE 0x840E +0xCEAF 0x59D4 +0xCEB0 0x4F1F +0xCEB1 0x4F2A +0xCEB2 0x5C3E +0xCEB3 0x7EAC +0xCEB4 0x672A +0xCEB5 0x851A +0xCEB6 0x5473 +0xCEB7 0x754F +0xCEB8 0x80C3 +0xCEB9 0x5582 +0xCEBA 0x9B4F +0xCEBB 0x4F4D +0xCEBC 0x6E2D +0xCEBD 0x8C13 +0xCEBE 0x5C09 +0xCEBF 0x6170 +0xCEC0 0x536B +0xCEC1 0x761F +0xCEC2 0x6E29 +0xCEC3 0x868A +0xCEC4 0x6587 +0xCEC5 0x95FB +0xCEC6 0x7EB9 +0xCEC7 0x543B +0xCEC8 0x7A33 +0xCEC9 0x7D0A +0xCECA 0x95EE +0xCECB 0x55E1 +0xCECC 0x7FC1 +0xCECD 0x74EE +0xCECE 0x631D +0xCECF 0x8717 +0xCED0 0x6DA1 +0xCED1 0x7A9D +0xCED2 0x6211 +0xCED3 0x65A1 +0xCED4 0x5367 +0xCED5 0x63E1 +0xCED6 0x6C83 +0xCED7 0x5DEB +0xCED8 0x545C +0xCED9 0x94A8 +0xCEDA 0x4E4C +0xCEDB 0x6C61 +0xCEDC 0x8BEC +0xCEDD 0x5C4B +0xCEDE 0x65E0 +0xCEDF 0x829C +0xCEE0 0x68A7 +0xCEE1 0x543E +0xCEE2 0x5434 +0xCEE3 0x6BCB +0xCEE4 0x6B66 +0xCEE5 0x4E94 +0xCEE6 0x6342 +0xCEE7 0x5348 +0xCEE8 0x821E +0xCEE9 0x4F0D +0xCEEA 0x4FAE +0xCEEB 0x575E +0xCEEC 0x620A +0xCEED 0x96FE +0xCEEE 0x6664 +0xCEEF 0x7269 +0xCEF0 0x52FF +0xCEF1 0x52A1 +0xCEF2 0x609F +0xCEF3 0x8BEF +0xCEF4 0x6614 +0xCEF5 0x7199 +0xCEF6 0x6790 +0xCEF7 0x897F +0xCEF8 0x7852 +0xCEF9 0x77FD +0xCEFA 0x6670 +0xCEFB 0x563B +0xCEFC 0x5438 +0xCEFD 0x9521 +0xCEFE 0x727A +0xCF40 0x87A5 +0xCF41 0x87A6 +0xCF42 0x87A7 +0xCF43 0x87A9 +0xCF44 0x87AA +0xCF45 0x87AE +0xCF46 0x87B0 +0xCF47 0x87B1 +0xCF48 0x87B2 +0xCF49 0x87B4 +0xCF4A 0x87B6 +0xCF4B 0x87B7 +0xCF4C 0x87B8 +0xCF4D 0x87B9 +0xCF4E 0x87BB +0xCF4F 0x87BC +0xCF50 0x87BE +0xCF51 0x87BF +0xCF52 0x87C1 +0xCF53 0x87C2 +0xCF54 0x87C3 +0xCF55 0x87C4 +0xCF56 0x87C5 +0xCF57 0x87C7 +0xCF58 0x87C8 +0xCF59 0x87C9 +0xCF5A 0x87CC +0xCF5B 0x87CD +0xCF5C 0x87CE +0xCF5D 0x87CF +0xCF5E 0x87D0 +0xCF5F 0x87D4 +0xCF60 0x87D5 +0xCF61 0x87D6 +0xCF62 0x87D7 +0xCF63 0x87D8 +0xCF64 0x87D9 +0xCF65 0x87DA +0xCF66 0x87DC +0xCF67 0x87DD +0xCF68 0x87DE +0xCF69 0x87DF +0xCF6A 0x87E1 +0xCF6B 0x87E2 +0xCF6C 0x87E3 +0xCF6D 0x87E4 +0xCF6E 0x87E6 +0xCF6F 0x87E7 +0xCF70 0x87E8 +0xCF71 0x87E9 +0xCF72 0x87EB +0xCF73 0x87EC +0xCF74 0x87ED +0xCF75 0x87EF +0xCF76 0x87F0 +0xCF77 0x87F1 +0xCF78 0x87F2 +0xCF79 0x87F3 +0xCF7A 0x87F4 +0xCF7B 0x87F5 +0xCF7C 0x87F6 +0xCF7D 0x87F7 +0xCF7E 0x87F8 +0xCF80 0x87FA +0xCF81 0x87FB +0xCF82 0x87FC +0xCF83 0x87FD +0xCF84 0x87FF +0xCF85 0x8800 +0xCF86 0x8801 +0xCF87 0x8802 +0xCF88 0x8804 +0xCF89 0x8805 +0xCF8A 0x8806 +0xCF8B 0x8807 +0xCF8C 0x8808 +0xCF8D 0x8809 +0xCF8E 0x880B +0xCF8F 0x880C +0xCF90 0x880D +0xCF91 0x880E +0xCF92 0x880F +0xCF93 0x8810 +0xCF94 0x8811 +0xCF95 0x8812 +0xCF96 0x8814 +0xCF97 0x8817 +0xCF98 0x8818 +0xCF99 0x8819 +0xCF9A 0x881A +0xCF9B 0x881C +0xCF9C 0x881D +0xCF9D 0x881E +0xCF9E 0x881F +0xCF9F 0x8820 +0xCFA0 0x8823 +0xCFA1 0x7A00 +0xCFA2 0x606F +0xCFA3 0x5E0C +0xCFA4 0x6089 +0xCFA5 0x819D +0xCFA6 0x5915 +0xCFA7 0x60DC +0xCFA8 0x7184 +0xCFA9 0x70EF +0xCFAA 0x6EAA +0xCFAB 0x6C50 +0xCFAC 0x7280 +0xCFAD 0x6A84 +0xCFAE 0x88AD +0xCFAF 0x5E2D +0xCFB0 0x4E60 +0xCFB1 0x5AB3 +0xCFB2 0x559C +0xCFB3 0x94E3 +0xCFB4 0x6D17 +0xCFB5 0x7CFB +0xCFB6 0x9699 +0xCFB7 0x620F +0xCFB8 0x7EC6 +0xCFB9 0x778E +0xCFBA 0x867E +0xCFBB 0x5323 +0xCFBC 0x971E +0xCFBD 0x8F96 +0xCFBE 0x6687 +0xCFBF 0x5CE1 +0xCFC0 0x4FA0 +0xCFC1 0x72ED +0xCFC2 0x4E0B +0xCFC3 0x53A6 +0xCFC4 0x590F +0xCFC5 0x5413 +0xCFC6 0x6380 +0xCFC7 0x9528 +0xCFC8 0x5148 +0xCFC9 0x4ED9 +0xCFCA 0x9C9C +0xCFCB 0x7EA4 +0xCFCC 0x54B8 +0xCFCD 0x8D24 +0xCFCE 0x8854 +0xCFCF 0x8237 +0xCFD0 0x95F2 +0xCFD1 0x6D8E +0xCFD2 0x5F26 +0xCFD3 0x5ACC +0xCFD4 0x663E +0xCFD5 0x9669 +0xCFD6 0x73B0 +0xCFD7 0x732E +0xCFD8 0x53BF +0xCFD9 0x817A +0xCFDA 0x9985 +0xCFDB 0x7FA1 +0xCFDC 0x5BAA +0xCFDD 0x9677 +0xCFDE 0x9650 +0xCFDF 0x7EBF +0xCFE0 0x76F8 +0xCFE1 0x53A2 +0xCFE2 0x9576 +0xCFE3 0x9999 +0xCFE4 0x7BB1 +0xCFE5 0x8944 +0xCFE6 0x6E58 +0xCFE7 0x4E61 +0xCFE8 0x7FD4 +0xCFE9 0x7965 +0xCFEA 0x8BE6 +0xCFEB 0x60F3 +0xCFEC 0x54CD +0xCFED 0x4EAB +0xCFEE 0x9879 +0xCFEF 0x5DF7 +0xCFF0 0x6A61 +0xCFF1 0x50CF +0xCFF2 0x5411 +0xCFF3 0x8C61 +0xCFF4 0x8427 +0xCFF5 0x785D +0xCFF6 0x9704 +0xCFF7 0x524A +0xCFF8 0x54EE +0xCFF9 0x56A3 +0xCFFA 0x9500 +0xCFFB 0x6D88 +0xCFFC 0x5BB5 +0xCFFD 0x6DC6 +0xCFFE 0x6653 +0xD040 0x8824 +0xD041 0x8825 +0xD042 0x8826 +0xD043 0x8827 +0xD044 0x8828 +0xD045 0x8829 +0xD046 0x882A +0xD047 0x882B +0xD048 0x882C +0xD049 0x882D +0xD04A 0x882E +0xD04B 0x882F +0xD04C 0x8830 +0xD04D 0x8831 +0xD04E 0x8833 +0xD04F 0x8834 +0xD050 0x8835 +0xD051 0x8836 +0xD052 0x8837 +0xD053 0x8838 +0xD054 0x883A +0xD055 0x883B +0xD056 0x883D +0xD057 0x883E +0xD058 0x883F +0xD059 0x8841 +0xD05A 0x8842 +0xD05B 0x8843 +0xD05C 0x8846 +0xD05D 0x8847 +0xD05E 0x8848 +0xD05F 0x8849 +0xD060 0x884A +0xD061 0x884B +0xD062 0x884E +0xD063 0x884F +0xD064 0x8850 +0xD065 0x8851 +0xD066 0x8852 +0xD067 0x8853 +0xD068 0x8855 +0xD069 0x8856 +0xD06A 0x8858 +0xD06B 0x885A +0xD06C 0x885B +0xD06D 0x885C +0xD06E 0x885D +0xD06F 0x885E +0xD070 0x885F +0xD071 0x8860 +0xD072 0x8866 +0xD073 0x8867 +0xD074 0x886A +0xD075 0x886D +0xD076 0x886F +0xD077 0x8871 +0xD078 0x8873 +0xD079 0x8874 +0xD07A 0x8875 +0xD07B 0x8876 +0xD07C 0x8878 +0xD07D 0x8879 +0xD07E 0x887A +0xD080 0x887B +0xD081 0x887C +0xD082 0x8880 +0xD083 0x8883 +0xD084 0x8886 +0xD085 0x8887 +0xD086 0x8889 +0xD087 0x888A +0xD088 0x888C +0xD089 0x888E +0xD08A 0x888F +0xD08B 0x8890 +0xD08C 0x8891 +0xD08D 0x8893 +0xD08E 0x8894 +0xD08F 0x8895 +0xD090 0x8897 +0xD091 0x8898 +0xD092 0x8899 +0xD093 0x889A +0xD094 0x889B +0xD095 0x889D +0xD096 0x889E +0xD097 0x889F +0xD098 0x88A0 +0xD099 0x88A1 +0xD09A 0x88A3 +0xD09B 0x88A5 +0xD09C 0x88A6 +0xD09D 0x88A7 +0xD09E 0x88A8 +0xD09F 0x88A9 +0xD0A0 0x88AA +0xD0A1 0x5C0F +0xD0A2 0x5B5D +0xD0A3 0x6821 +0xD0A4 0x8096 +0xD0A5 0x5578 +0xD0A6 0x7B11 +0xD0A7 0x6548 +0xD0A8 0x6954 +0xD0A9 0x4E9B +0xD0AA 0x6B47 +0xD0AB 0x874E +0xD0AC 0x978B +0xD0AD 0x534F +0xD0AE 0x631F +0xD0AF 0x643A +0xD0B0 0x90AA +0xD0B1 0x659C +0xD0B2 0x80C1 +0xD0B3 0x8C10 +0xD0B4 0x5199 +0xD0B5 0x68B0 +0xD0B6 0x5378 +0xD0B7 0x87F9 +0xD0B8 0x61C8 +0xD0B9 0x6CC4 +0xD0BA 0x6CFB +0xD0BB 0x8C22 +0xD0BC 0x5C51 +0xD0BD 0x85AA +0xD0BE 0x82AF +0xD0BF 0x950C +0xD0C0 0x6B23 +0xD0C1 0x8F9B +0xD0C2 0x65B0 +0xD0C3 0x5FFB +0xD0C4 0x5FC3 +0xD0C5 0x4FE1 +0xD0C6 0x8845 +0xD0C7 0x661F +0xD0C8 0x8165 +0xD0C9 0x7329 +0xD0CA 0x60FA +0xD0CB 0x5174 +0xD0CC 0x5211 +0xD0CD 0x578B +0xD0CE 0x5F62 +0xD0CF 0x90A2 +0xD0D0 0x884C +0xD0D1 0x9192 +0xD0D2 0x5E78 +0xD0D3 0x674F +0xD0D4 0x6027 +0xD0D5 0x59D3 +0xD0D6 0x5144 +0xD0D7 0x51F6 +0xD0D8 0x80F8 +0xD0D9 0x5308 +0xD0DA 0x6C79 +0xD0DB 0x96C4 +0xD0DC 0x718A +0xD0DD 0x4F11 +0xD0DE 0x4FEE +0xD0DF 0x7F9E +0xD0E0 0x673D +0xD0E1 0x55C5 +0xD0E2 0x9508 +0xD0E3 0x79C0 +0xD0E4 0x8896 +0xD0E5 0x7EE3 +0xD0E6 0x589F +0xD0E7 0x620C +0xD0E8 0x9700 +0xD0E9 0x865A +0xD0EA 0x5618 +0xD0EB 0x987B +0xD0EC 0x5F90 +0xD0ED 0x8BB8 +0xD0EE 0x84C4 +0xD0EF 0x9157 +0xD0F0 0x53D9 +0xD0F1 0x65ED +0xD0F2 0x5E8F +0xD0F3 0x755C +0xD0F4 0x6064 +0xD0F5 0x7D6E +0xD0F6 0x5A7F +0xD0F7 0x7EEA +0xD0F8 0x7EED +0xD0F9 0x8F69 +0xD0FA 0x55A7 +0xD0FB 0x5BA3 +0xD0FC 0x60AC +0xD0FD 0x65CB +0xD0FE 0x7384 +0xD140 0x88AC +0xD141 0x88AE +0xD142 0x88AF +0xD143 0x88B0 +0xD144 0x88B2 +0xD145 0x88B3 +0xD146 0x88B4 +0xD147 0x88B5 +0xD148 0x88B6 +0xD149 0x88B8 +0xD14A 0x88B9 +0xD14B 0x88BA +0xD14C 0x88BB +0xD14D 0x88BD +0xD14E 0x88BE +0xD14F 0x88BF +0xD150 0x88C0 +0xD151 0x88C3 +0xD152 0x88C4 +0xD153 0x88C7 +0xD154 0x88C8 +0xD155 0x88CA +0xD156 0x88CB +0xD157 0x88CC +0xD158 0x88CD +0xD159 0x88CF +0xD15A 0x88D0 +0xD15B 0x88D1 +0xD15C 0x88D3 +0xD15D 0x88D6 +0xD15E 0x88D7 +0xD15F 0x88DA +0xD160 0x88DB +0xD161 0x88DC +0xD162 0x88DD +0xD163 0x88DE +0xD164 0x88E0 +0xD165 0x88E1 +0xD166 0x88E6 +0xD167 0x88E7 +0xD168 0x88E9 +0xD169 0x88EA +0xD16A 0x88EB +0xD16B 0x88EC +0xD16C 0x88ED +0xD16D 0x88EE +0xD16E 0x88EF +0xD16F 0x88F2 +0xD170 0x88F5 +0xD171 0x88F6 +0xD172 0x88F7 +0xD173 0x88FA +0xD174 0x88FB +0xD175 0x88FD +0xD176 0x88FF +0xD177 0x8900 +0xD178 0x8901 +0xD179 0x8903 +0xD17A 0x8904 +0xD17B 0x8905 +0xD17C 0x8906 +0xD17D 0x8907 +0xD17E 0x8908 +0xD180 0x8909 +0xD181 0x890B +0xD182 0x890C +0xD183 0x890D +0xD184 0x890E +0xD185 0x890F +0xD186 0x8911 +0xD187 0x8914 +0xD188 0x8915 +0xD189 0x8916 +0xD18A 0x8917 +0xD18B 0x8918 +0xD18C 0x891C +0xD18D 0x891D +0xD18E 0x891E +0xD18F 0x891F +0xD190 0x8920 +0xD191 0x8922 +0xD192 0x8923 +0xD193 0x8924 +0xD194 0x8926 +0xD195 0x8927 +0xD196 0x8928 +0xD197 0x8929 +0xD198 0x892C +0xD199 0x892D +0xD19A 0x892E +0xD19B 0x892F +0xD19C 0x8931 +0xD19D 0x8932 +0xD19E 0x8933 +0xD19F 0x8935 +0xD1A0 0x8937 +0xD1A1 0x9009 +0xD1A2 0x7663 +0xD1A3 0x7729 +0xD1A4 0x7EDA +0xD1A5 0x9774 +0xD1A6 0x859B +0xD1A7 0x5B66 +0xD1A8 0x7A74 +0xD1A9 0x96EA +0xD1AA 0x8840 +0xD1AB 0x52CB +0xD1AC 0x718F +0xD1AD 0x5FAA +0xD1AE 0x65EC +0xD1AF 0x8BE2 +0xD1B0 0x5BFB +0xD1B1 0x9A6F +0xD1B2 0x5DE1 +0xD1B3 0x6B89 +0xD1B4 0x6C5B +0xD1B5 0x8BAD +0xD1B6 0x8BAF +0xD1B7 0x900A +0xD1B8 0x8FC5 +0xD1B9 0x538B +0xD1BA 0x62BC +0xD1BB 0x9E26 +0xD1BC 0x9E2D +0xD1BD 0x5440 +0xD1BE 0x4E2B +0xD1BF 0x82BD +0xD1C0 0x7259 +0xD1C1 0x869C +0xD1C2 0x5D16 +0xD1C3 0x8859 +0xD1C4 0x6DAF +0xD1C5 0x96C5 +0xD1C6 0x54D1 +0xD1C7 0x4E9A +0xD1C8 0x8BB6 +0xD1C9 0x7109 +0xD1CA 0x54BD +0xD1CB 0x9609 +0xD1CC 0x70DF +0xD1CD 0x6DF9 +0xD1CE 0x76D0 +0xD1CF 0x4E25 +0xD1D0 0x7814 +0xD1D1 0x8712 +0xD1D2 0x5CA9 +0xD1D3 0x5EF6 +0xD1D4 0x8A00 +0xD1D5 0x989C +0xD1D6 0x960E +0xD1D7 0x708E +0xD1D8 0x6CBF +0xD1D9 0x5944 +0xD1DA 0x63A9 +0xD1DB 0x773C +0xD1DC 0x884D +0xD1DD 0x6F14 +0xD1DE 0x8273 +0xD1DF 0x5830 +0xD1E0 0x71D5 +0xD1E1 0x538C +0xD1E2 0x781A +0xD1E3 0x96C1 +0xD1E4 0x5501 +0xD1E5 0x5F66 +0xD1E6 0x7130 +0xD1E7 0x5BB4 +0xD1E8 0x8C1A +0xD1E9 0x9A8C +0xD1EA 0x6B83 +0xD1EB 0x592E +0xD1EC 0x9E2F +0xD1ED 0x79E7 +0xD1EE 0x6768 +0xD1EF 0x626C +0xD1F0 0x4F6F +0xD1F1 0x75A1 +0xD1F2 0x7F8A +0xD1F3 0x6D0B +0xD1F4 0x9633 +0xD1F5 0x6C27 +0xD1F6 0x4EF0 +0xD1F7 0x75D2 +0xD1F8 0x517B +0xD1F9 0x6837 +0xD1FA 0x6F3E +0xD1FB 0x9080 +0xD1FC 0x8170 +0xD1FD 0x5996 +0xD1FE 0x7476 +0xD240 0x8938 +0xD241 0x8939 +0xD242 0x893A +0xD243 0x893B +0xD244 0x893C +0xD245 0x893D +0xD246 0x893E +0xD247 0x893F +0xD248 0x8940 +0xD249 0x8942 +0xD24A 0x8943 +0xD24B 0x8945 +0xD24C 0x8946 +0xD24D 0x8947 +0xD24E 0x8948 +0xD24F 0x8949 +0xD250 0x894A +0xD251 0x894B +0xD252 0x894C +0xD253 0x894D +0xD254 0x894E +0xD255 0x894F +0xD256 0x8950 +0xD257 0x8951 +0xD258 0x8952 +0xD259 0x8953 +0xD25A 0x8954 +0xD25B 0x8955 +0xD25C 0x8956 +0xD25D 0x8957 +0xD25E 0x8958 +0xD25F 0x8959 +0xD260 0x895A +0xD261 0x895B +0xD262 0x895C +0xD263 0x895D +0xD264 0x8960 +0xD265 0x8961 +0xD266 0x8962 +0xD267 0x8963 +0xD268 0x8964 +0xD269 0x8965 +0xD26A 0x8967 +0xD26B 0x8968 +0xD26C 0x8969 +0xD26D 0x896A +0xD26E 0x896B +0xD26F 0x896C +0xD270 0x896D +0xD271 0x896E +0xD272 0x896F +0xD273 0x8970 +0xD274 0x8971 +0xD275 0x8972 +0xD276 0x8973 +0xD277 0x8974 +0xD278 0x8975 +0xD279 0x8976 +0xD27A 0x8977 +0xD27B 0x8978 +0xD27C 0x8979 +0xD27D 0x897A +0xD27E 0x897C +0xD280 0x897D +0xD281 0x897E +0xD282 0x8980 +0xD283 0x8982 +0xD284 0x8984 +0xD285 0x8985 +0xD286 0x8987 +0xD287 0x8988 +0xD288 0x8989 +0xD289 0x898A +0xD28A 0x898B +0xD28B 0x898C +0xD28C 0x898D +0xD28D 0x898E +0xD28E 0x898F +0xD28F 0x8990 +0xD290 0x8991 +0xD291 0x8992 +0xD292 0x8993 +0xD293 0x8994 +0xD294 0x8995 +0xD295 0x8996 +0xD296 0x8997 +0xD297 0x8998 +0xD298 0x8999 +0xD299 0x899A +0xD29A 0x899B +0xD29B 0x899C +0xD29C 0x899D +0xD29D 0x899E +0xD29E 0x899F +0xD29F 0x89A0 +0xD2A0 0x89A1 +0xD2A1 0x6447 +0xD2A2 0x5C27 +0xD2A3 0x9065 +0xD2A4 0x7A91 +0xD2A5 0x8C23 +0xD2A6 0x59DA +0xD2A7 0x54AC +0xD2A8 0x8200 +0xD2A9 0x836F +0xD2AA 0x8981 +0xD2AB 0x8000 +0xD2AC 0x6930 +0xD2AD 0x564E +0xD2AE 0x8036 +0xD2AF 0x7237 +0xD2B0 0x91CE +0xD2B1 0x51B6 +0xD2B2 0x4E5F +0xD2B3 0x9875 +0xD2B4 0x6396 +0xD2B5 0x4E1A +0xD2B6 0x53F6 +0xD2B7 0x66F3 +0xD2B8 0x814B +0xD2B9 0x591C +0xD2BA 0x6DB2 +0xD2BB 0x4E00 +0xD2BC 0x58F9 +0xD2BD 0x533B +0xD2BE 0x63D6 +0xD2BF 0x94F1 +0xD2C0 0x4F9D +0xD2C1 0x4F0A +0xD2C2 0x8863 +0xD2C3 0x9890 +0xD2C4 0x5937 +0xD2C5 0x9057 +0xD2C6 0x79FB +0xD2C7 0x4EEA +0xD2C8 0x80F0 +0xD2C9 0x7591 +0xD2CA 0x6C82 +0xD2CB 0x5B9C +0xD2CC 0x59E8 +0xD2CD 0x5F5D +0xD2CE 0x6905 +0xD2CF 0x8681 +0xD2D0 0x501A +0xD2D1 0x5DF2 +0xD2D2 0x4E59 +0xD2D3 0x77E3 +0xD2D4 0x4EE5 +0xD2D5 0x827A +0xD2D6 0x6291 +0xD2D7 0x6613 +0xD2D8 0x9091 +0xD2D9 0x5C79 +0xD2DA 0x4EBF +0xD2DB 0x5F79 +0xD2DC 0x81C6 +0xD2DD 0x9038 +0xD2DE 0x8084 +0xD2DF 0x75AB +0xD2E0 0x4EA6 +0xD2E1 0x88D4 +0xD2E2 0x610F +0xD2E3 0x6BC5 +0xD2E4 0x5FC6 +0xD2E5 0x4E49 +0xD2E6 0x76CA +0xD2E7 0x6EA2 +0xD2E8 0x8BE3 +0xD2E9 0x8BAE +0xD2EA 0x8C0A +0xD2EB 0x8BD1 +0xD2EC 0x5F02 +0xD2ED 0x7FFC +0xD2EE 0x7FCC +0xD2EF 0x7ECE +0xD2F0 0x8335 +0xD2F1 0x836B +0xD2F2 0x56E0 +0xD2F3 0x6BB7 +0xD2F4 0x97F3 +0xD2F5 0x9634 +0xD2F6 0x59FB +0xD2F7 0x541F +0xD2F8 0x94F6 +0xD2F9 0x6DEB +0xD2FA 0x5BC5 +0xD2FB 0x996E +0xD2FC 0x5C39 +0xD2FD 0x5F15 +0xD2FE 0x9690 +0xD340 0x89A2 +0xD341 0x89A3 +0xD342 0x89A4 +0xD343 0x89A5 +0xD344 0x89A6 +0xD345 0x89A7 +0xD346 0x89A8 +0xD347 0x89A9 +0xD348 0x89AA +0xD349 0x89AB +0xD34A 0x89AC +0xD34B 0x89AD +0xD34C 0x89AE +0xD34D 0x89AF +0xD34E 0x89B0 +0xD34F 0x89B1 +0xD350 0x89B2 +0xD351 0x89B3 +0xD352 0x89B4 +0xD353 0x89B5 +0xD354 0x89B6 +0xD355 0x89B7 +0xD356 0x89B8 +0xD357 0x89B9 +0xD358 0x89BA +0xD359 0x89BB +0xD35A 0x89BC +0xD35B 0x89BD +0xD35C 0x89BE +0xD35D 0x89BF +0xD35E 0x89C0 +0xD35F 0x89C3 +0xD360 0x89CD +0xD361 0x89D3 +0xD362 0x89D4 +0xD363 0x89D5 +0xD364 0x89D7 +0xD365 0x89D8 +0xD366 0x89D9 +0xD367 0x89DB +0xD368 0x89DD +0xD369 0x89DF +0xD36A 0x89E0 +0xD36B 0x89E1 +0xD36C 0x89E2 +0xD36D 0x89E4 +0xD36E 0x89E7 +0xD36F 0x89E8 +0xD370 0x89E9 +0xD371 0x89EA +0xD372 0x89EC +0xD373 0x89ED +0xD374 0x89EE +0xD375 0x89F0 +0xD376 0x89F1 +0xD377 0x89F2 +0xD378 0x89F4 +0xD379 0x89F5 +0xD37A 0x89F6 +0xD37B 0x89F7 +0xD37C 0x89F8 +0xD37D 0x89F9 +0xD37E 0x89FA +0xD380 0x89FB +0xD381 0x89FC +0xD382 0x89FD +0xD383 0x89FE +0xD384 0x89FF +0xD385 0x8A01 +0xD386 0x8A02 +0xD387 0x8A03 +0xD388 0x8A04 +0xD389 0x8A05 +0xD38A 0x8A06 +0xD38B 0x8A08 +0xD38C 0x8A09 +0xD38D 0x8A0A +0xD38E 0x8A0B +0xD38F 0x8A0C +0xD390 0x8A0D +0xD391 0x8A0E +0xD392 0x8A0F +0xD393 0x8A10 +0xD394 0x8A11 +0xD395 0x8A12 +0xD396 0x8A13 +0xD397 0x8A14 +0xD398 0x8A15 +0xD399 0x8A16 +0xD39A 0x8A17 +0xD39B 0x8A18 +0xD39C 0x8A19 +0xD39D 0x8A1A +0xD39E 0x8A1B +0xD39F 0x8A1C +0xD3A0 0x8A1D +0xD3A1 0x5370 +0xD3A2 0x82F1 +0xD3A3 0x6A31 +0xD3A4 0x5A74 +0xD3A5 0x9E70 +0xD3A6 0x5E94 +0xD3A7 0x7F28 +0xD3A8 0x83B9 +0xD3A9 0x8424 +0xD3AA 0x8425 +0xD3AB 0x8367 +0xD3AC 0x8747 +0xD3AD 0x8FCE +0xD3AE 0x8D62 +0xD3AF 0x76C8 +0xD3B0 0x5F71 +0xD3B1 0x9896 +0xD3B2 0x786C +0xD3B3 0x6620 +0xD3B4 0x54DF +0xD3B5 0x62E5 +0xD3B6 0x4F63 +0xD3B7 0x81C3 +0xD3B8 0x75C8 +0xD3B9 0x5EB8 +0xD3BA 0x96CD +0xD3BB 0x8E0A +0xD3BC 0x86F9 +0xD3BD 0x548F +0xD3BE 0x6CF3 +0xD3BF 0x6D8C +0xD3C0 0x6C38 +0xD3C1 0x607F +0xD3C2 0x52C7 +0xD3C3 0x7528 +0xD3C4 0x5E7D +0xD3C5 0x4F18 +0xD3C6 0x60A0 +0xD3C7 0x5FE7 +0xD3C8 0x5C24 +0xD3C9 0x7531 +0xD3CA 0x90AE +0xD3CB 0x94C0 +0xD3CC 0x72B9 +0xD3CD 0x6CB9 +0xD3CE 0x6E38 +0xD3CF 0x9149 +0xD3D0 0x6709 +0xD3D1 0x53CB +0xD3D2 0x53F3 +0xD3D3 0x4F51 +0xD3D4 0x91C9 +0xD3D5 0x8BF1 +0xD3D6 0x53C8 +0xD3D7 0x5E7C +0xD3D8 0x8FC2 +0xD3D9 0x6DE4 +0xD3DA 0x4E8E +0xD3DB 0x76C2 +0xD3DC 0x6986 +0xD3DD 0x865E +0xD3DE 0x611A +0xD3DF 0x8206 +0xD3E0 0x4F59 +0xD3E1 0x4FDE +0xD3E2 0x903E +0xD3E3 0x9C7C +0xD3E4 0x6109 +0xD3E5 0x6E1D +0xD3E6 0x6E14 +0xD3E7 0x9685 +0xD3E8 0x4E88 +0xD3E9 0x5A31 +0xD3EA 0x96E8 +0xD3EB 0x4E0E +0xD3EC 0x5C7F +0xD3ED 0x79B9 +0xD3EE 0x5B87 +0xD3EF 0x8BED +0xD3F0 0x7FBD +0xD3F1 0x7389 +0xD3F2 0x57DF +0xD3F3 0x828B +0xD3F4 0x90C1 +0xD3F5 0x5401 +0xD3F6 0x9047 +0xD3F7 0x55BB +0xD3F8 0x5CEA +0xD3F9 0x5FA1 +0xD3FA 0x6108 +0xD3FB 0x6B32 +0xD3FC 0x72F1 +0xD3FD 0x80B2 +0xD3FE 0x8A89 +0xD440 0x8A1E +0xD441 0x8A1F +0xD442 0x8A20 +0xD443 0x8A21 +0xD444 0x8A22 +0xD445 0x8A23 +0xD446 0x8A24 +0xD447 0x8A25 +0xD448 0x8A26 +0xD449 0x8A27 +0xD44A 0x8A28 +0xD44B 0x8A29 +0xD44C 0x8A2A +0xD44D 0x8A2B +0xD44E 0x8A2C +0xD44F 0x8A2D +0xD450 0x8A2E +0xD451 0x8A2F +0xD452 0x8A30 +0xD453 0x8A31 +0xD454 0x8A32 +0xD455 0x8A33 +0xD456 0x8A34 +0xD457 0x8A35 +0xD458 0x8A36 +0xD459 0x8A37 +0xD45A 0x8A38 +0xD45B 0x8A39 +0xD45C 0x8A3A +0xD45D 0x8A3B +0xD45E 0x8A3C +0xD45F 0x8A3D +0xD460 0x8A3F +0xD461 0x8A40 +0xD462 0x8A41 +0xD463 0x8A42 +0xD464 0x8A43 +0xD465 0x8A44 +0xD466 0x8A45 +0xD467 0x8A46 +0xD468 0x8A47 +0xD469 0x8A49 +0xD46A 0x8A4A +0xD46B 0x8A4B +0xD46C 0x8A4C +0xD46D 0x8A4D +0xD46E 0x8A4E +0xD46F 0x8A4F +0xD470 0x8A50 +0xD471 0x8A51 +0xD472 0x8A52 +0xD473 0x8A53 +0xD474 0x8A54 +0xD475 0x8A55 +0xD476 0x8A56 +0xD477 0x8A57 +0xD478 0x8A58 +0xD479 0x8A59 +0xD47A 0x8A5A +0xD47B 0x8A5B +0xD47C 0x8A5C +0xD47D 0x8A5D +0xD47E 0x8A5E +0xD480 0x8A5F +0xD481 0x8A60 +0xD482 0x8A61 +0xD483 0x8A62 +0xD484 0x8A63 +0xD485 0x8A64 +0xD486 0x8A65 +0xD487 0x8A66 +0xD488 0x8A67 +0xD489 0x8A68 +0xD48A 0x8A69 +0xD48B 0x8A6A +0xD48C 0x8A6B +0xD48D 0x8A6C +0xD48E 0x8A6D +0xD48F 0x8A6E +0xD490 0x8A6F +0xD491 0x8A70 +0xD492 0x8A71 +0xD493 0x8A72 +0xD494 0x8A73 +0xD495 0x8A74 +0xD496 0x8A75 +0xD497 0x8A76 +0xD498 0x8A77 +0xD499 0x8A78 +0xD49A 0x8A7A +0xD49B 0x8A7B +0xD49C 0x8A7C +0xD49D 0x8A7D +0xD49E 0x8A7E +0xD49F 0x8A7F +0xD4A0 0x8A80 +0xD4A1 0x6D74 +0xD4A2 0x5BD3 +0xD4A3 0x88D5 +0xD4A4 0x9884 +0xD4A5 0x8C6B +0xD4A6 0x9A6D +0xD4A7 0x9E33 +0xD4A8 0x6E0A +0xD4A9 0x51A4 +0xD4AA 0x5143 +0xD4AB 0x57A3 +0xD4AC 0x8881 +0xD4AD 0x539F +0xD4AE 0x63F4 +0xD4AF 0x8F95 +0xD4B0 0x56ED +0xD4B1 0x5458 +0xD4B2 0x5706 +0xD4B3 0x733F +0xD4B4 0x6E90 +0xD4B5 0x7F18 +0xD4B6 0x8FDC +0xD4B7 0x82D1 +0xD4B8 0x613F +0xD4B9 0x6028 +0xD4BA 0x9662 +0xD4BB 0x66F0 +0xD4BC 0x7EA6 +0xD4BD 0x8D8A +0xD4BE 0x8DC3 +0xD4BF 0x94A5 +0xD4C0 0x5CB3 +0xD4C1 0x7CA4 +0xD4C2 0x6708 +0xD4C3 0x60A6 +0xD4C4 0x9605 +0xD4C5 0x8018 +0xD4C6 0x4E91 +0xD4C7 0x90E7 +0xD4C8 0x5300 +0xD4C9 0x9668 +0xD4CA 0x5141 +0xD4CB 0x8FD0 +0xD4CC 0x8574 +0xD4CD 0x915D +0xD4CE 0x6655 +0xD4CF 0x97F5 +0xD4D0 0x5B55 +0xD4D1 0x531D +0xD4D2 0x7838 +0xD4D3 0x6742 +0xD4D4 0x683D +0xD4D5 0x54C9 +0xD4D6 0x707E +0xD4D7 0x5BB0 +0xD4D8 0x8F7D +0xD4D9 0x518D +0xD4DA 0x5728 +0xD4DB 0x54B1 +0xD4DC 0x6512 +0xD4DD 0x6682 +0xD4DE 0x8D5E +0xD4DF 0x8D43 +0xD4E0 0x810F +0xD4E1 0x846C +0xD4E2 0x906D +0xD4E3 0x7CDF +0xD4E4 0x51FF +0xD4E5 0x85FB +0xD4E6 0x67A3 +0xD4E7 0x65E9 +0xD4E8 0x6FA1 +0xD4E9 0x86A4 +0xD4EA 0x8E81 +0xD4EB 0x566A +0xD4EC 0x9020 +0xD4ED 0x7682 +0xD4EE 0x7076 +0xD4EF 0x71E5 +0xD4F0 0x8D23 +0xD4F1 0x62E9 +0xD4F2 0x5219 +0xD4F3 0x6CFD +0xD4F4 0x8D3C +0xD4F5 0x600E +0xD4F6 0x589E +0xD4F7 0x618E +0xD4F8 0x66FE +0xD4F9 0x8D60 +0xD4FA 0x624E +0xD4FB 0x55B3 +0xD4FC 0x6E23 +0xD4FD 0x672D +0xD4FE 0x8F67 +0xD540 0x8A81 +0xD541 0x8A82 +0xD542 0x8A83 +0xD543 0x8A84 +0xD544 0x8A85 +0xD545 0x8A86 +0xD546 0x8A87 +0xD547 0x8A88 +0xD548 0x8A8B +0xD549 0x8A8C +0xD54A 0x8A8D +0xD54B 0x8A8E +0xD54C 0x8A8F +0xD54D 0x8A90 +0xD54E 0x8A91 +0xD54F 0x8A92 +0xD550 0x8A94 +0xD551 0x8A95 +0xD552 0x8A96 +0xD553 0x8A97 +0xD554 0x8A98 +0xD555 0x8A99 +0xD556 0x8A9A +0xD557 0x8A9B +0xD558 0x8A9C +0xD559 0x8A9D +0xD55A 0x8A9E +0xD55B 0x8A9F +0xD55C 0x8AA0 +0xD55D 0x8AA1 +0xD55E 0x8AA2 +0xD55F 0x8AA3 +0xD560 0x8AA4 +0xD561 0x8AA5 +0xD562 0x8AA6 +0xD563 0x8AA7 +0xD564 0x8AA8 +0xD565 0x8AA9 +0xD566 0x8AAA +0xD567 0x8AAB +0xD568 0x8AAC +0xD569 0x8AAD +0xD56A 0x8AAE +0xD56B 0x8AAF +0xD56C 0x8AB0 +0xD56D 0x8AB1 +0xD56E 0x8AB2 +0xD56F 0x8AB3 +0xD570 0x8AB4 +0xD571 0x8AB5 +0xD572 0x8AB6 +0xD573 0x8AB7 +0xD574 0x8AB8 +0xD575 0x8AB9 +0xD576 0x8ABA +0xD577 0x8ABB +0xD578 0x8ABC +0xD579 0x8ABD +0xD57A 0x8ABE +0xD57B 0x8ABF +0xD57C 0x8AC0 +0xD57D 0x8AC1 +0xD57E 0x8AC2 +0xD580 0x8AC3 +0xD581 0x8AC4 +0xD582 0x8AC5 +0xD583 0x8AC6 +0xD584 0x8AC7 +0xD585 0x8AC8 +0xD586 0x8AC9 +0xD587 0x8ACA +0xD588 0x8ACB +0xD589 0x8ACC +0xD58A 0x8ACD +0xD58B 0x8ACE +0xD58C 0x8ACF +0xD58D 0x8AD0 +0xD58E 0x8AD1 +0xD58F 0x8AD2 +0xD590 0x8AD3 +0xD591 0x8AD4 +0xD592 0x8AD5 +0xD593 0x8AD6 +0xD594 0x8AD7 +0xD595 0x8AD8 +0xD596 0x8AD9 +0xD597 0x8ADA +0xD598 0x8ADB +0xD599 0x8ADC +0xD59A 0x8ADD +0xD59B 0x8ADE +0xD59C 0x8ADF +0xD59D 0x8AE0 +0xD59E 0x8AE1 +0xD59F 0x8AE2 +0xD5A0 0x8AE3 +0xD5A1 0x94E1 +0xD5A2 0x95F8 +0xD5A3 0x7728 +0xD5A4 0x6805 +0xD5A5 0x69A8 +0xD5A6 0x548B +0xD5A7 0x4E4D +0xD5A8 0x70B8 +0xD5A9 0x8BC8 +0xD5AA 0x6458 +0xD5AB 0x658B +0xD5AC 0x5B85 +0xD5AD 0x7A84 +0xD5AE 0x503A +0xD5AF 0x5BE8 +0xD5B0 0x77BB +0xD5B1 0x6BE1 +0xD5B2 0x8A79 +0xD5B3 0x7C98 +0xD5B4 0x6CBE +0xD5B5 0x76CF +0xD5B6 0x65A9 +0xD5B7 0x8F97 +0xD5B8 0x5D2D +0xD5B9 0x5C55 +0xD5BA 0x8638 +0xD5BB 0x6808 +0xD5BC 0x5360 +0xD5BD 0x6218 +0xD5BE 0x7AD9 +0xD5BF 0x6E5B +0xD5C0 0x7EFD +0xD5C1 0x6A1F +0xD5C2 0x7AE0 +0xD5C3 0x5F70 +0xD5C4 0x6F33 +0xD5C5 0x5F20 +0xD5C6 0x638C +0xD5C7 0x6DA8 +0xD5C8 0x6756 +0xD5C9 0x4E08 +0xD5CA 0x5E10 +0xD5CB 0x8D26 +0xD5CC 0x4ED7 +0xD5CD 0x80C0 +0xD5CE 0x7634 +0xD5CF 0x969C +0xD5D0 0x62DB +0xD5D1 0x662D +0xD5D2 0x627E +0xD5D3 0x6CBC +0xD5D4 0x8D75 +0xD5D5 0x7167 +0xD5D6 0x7F69 +0xD5D7 0x5146 +0xD5D8 0x8087 +0xD5D9 0x53EC +0xD5DA 0x906E +0xD5DB 0x6298 +0xD5DC 0x54F2 +0xD5DD 0x86F0 +0xD5DE 0x8F99 +0xD5DF 0x8005 +0xD5E0 0x9517 +0xD5E1 0x8517 +0xD5E2 0x8FD9 +0xD5E3 0x6D59 +0xD5E4 0x73CD +0xD5E5 0x659F +0xD5E6 0x771F +0xD5E7 0x7504 +0xD5E8 0x7827 +0xD5E9 0x81FB +0xD5EA 0x8D1E +0xD5EB 0x9488 +0xD5EC 0x4FA6 +0xD5ED 0x6795 +0xD5EE 0x75B9 +0xD5EF 0x8BCA +0xD5F0 0x9707 +0xD5F1 0x632F +0xD5F2 0x9547 +0xD5F3 0x9635 +0xD5F4 0x84B8 +0xD5F5 0x6323 +0xD5F6 0x7741 +0xD5F7 0x5F81 +0xD5F8 0x72F0 +0xD5F9 0x4E89 +0xD5FA 0x6014 +0xD5FB 0x6574 +0xD5FC 0x62EF +0xD5FD 0x6B63 +0xD5FE 0x653F +0xD640 0x8AE4 +0xD641 0x8AE5 +0xD642 0x8AE6 +0xD643 0x8AE7 +0xD644 0x8AE8 +0xD645 0x8AE9 +0xD646 0x8AEA +0xD647 0x8AEB +0xD648 0x8AEC +0xD649 0x8AED +0xD64A 0x8AEE +0xD64B 0x8AEF +0xD64C 0x8AF0 +0xD64D 0x8AF1 +0xD64E 0x8AF2 +0xD64F 0x8AF3 +0xD650 0x8AF4 +0xD651 0x8AF5 +0xD652 0x8AF6 +0xD653 0x8AF7 +0xD654 0x8AF8 +0xD655 0x8AF9 +0xD656 0x8AFA +0xD657 0x8AFB +0xD658 0x8AFC +0xD659 0x8AFD +0xD65A 0x8AFE +0xD65B 0x8AFF +0xD65C 0x8B00 +0xD65D 0x8B01 +0xD65E 0x8B02 +0xD65F 0x8B03 +0xD660 0x8B04 +0xD661 0x8B05 +0xD662 0x8B06 +0xD663 0x8B08 +0xD664 0x8B09 +0xD665 0x8B0A +0xD666 0x8B0B +0xD667 0x8B0C +0xD668 0x8B0D +0xD669 0x8B0E +0xD66A 0x8B0F +0xD66B 0x8B10 +0xD66C 0x8B11 +0xD66D 0x8B12 +0xD66E 0x8B13 +0xD66F 0x8B14 +0xD670 0x8B15 +0xD671 0x8B16 +0xD672 0x8B17 +0xD673 0x8B18 +0xD674 0x8B19 +0xD675 0x8B1A +0xD676 0x8B1B +0xD677 0x8B1C +0xD678 0x8B1D +0xD679 0x8B1E +0xD67A 0x8B1F +0xD67B 0x8B20 +0xD67C 0x8B21 +0xD67D 0x8B22 +0xD67E 0x8B23 +0xD680 0x8B24 +0xD681 0x8B25 +0xD682 0x8B27 +0xD683 0x8B28 +0xD684 0x8B29 +0xD685 0x8B2A +0xD686 0x8B2B +0xD687 0x8B2C +0xD688 0x8B2D +0xD689 0x8B2E +0xD68A 0x8B2F +0xD68B 0x8B30 +0xD68C 0x8B31 +0xD68D 0x8B32 +0xD68E 0x8B33 +0xD68F 0x8B34 +0xD690 0x8B35 +0xD691 0x8B36 +0xD692 0x8B37 +0xD693 0x8B38 +0xD694 0x8B39 +0xD695 0x8B3A +0xD696 0x8B3B +0xD697 0x8B3C +0xD698 0x8B3D +0xD699 0x8B3E +0xD69A 0x8B3F +0xD69B 0x8B40 +0xD69C 0x8B41 +0xD69D 0x8B42 +0xD69E 0x8B43 +0xD69F 0x8B44 +0xD6A0 0x8B45 +0xD6A1 0x5E27 +0xD6A2 0x75C7 +0xD6A3 0x90D1 +0xD6A4 0x8BC1 +0xD6A5 0x829D +0xD6A6 0x679D +0xD6A7 0x652F +0xD6A8 0x5431 +0xD6A9 0x8718 +0xD6AA 0x77E5 +0xD6AB 0x80A2 +0xD6AC 0x8102 +0xD6AD 0x6C41 +0xD6AE 0x4E4B +0xD6AF 0x7EC7 +0xD6B0 0x804C +0xD6B1 0x76F4 +0xD6B2 0x690D +0xD6B3 0x6B96 +0xD6B4 0x6267 +0xD6B5 0x503C +0xD6B6 0x4F84 +0xD6B7 0x5740 +0xD6B8 0x6307 +0xD6B9 0x6B62 +0xD6BA 0x8DBE +0xD6BB 0x53EA +0xD6BC 0x65E8 +0xD6BD 0x7EB8 +0xD6BE 0x5FD7 +0xD6BF 0x631A +0xD6C0 0x63B7 +0xD6C1 0x81F3 +0xD6C2 0x81F4 +0xD6C3 0x7F6E +0xD6C4 0x5E1C +0xD6C5 0x5CD9 +0xD6C6 0x5236 +0xD6C7 0x667A +0xD6C8 0x79E9 +0xD6C9 0x7A1A +0xD6CA 0x8D28 +0xD6CB 0x7099 +0xD6CC 0x75D4 +0xD6CD 0x6EDE +0xD6CE 0x6CBB +0xD6CF 0x7A92 +0xD6D0 0x4E2D +0xD6D1 0x76C5 +0xD6D2 0x5FE0 +0xD6D3 0x949F +0xD6D4 0x8877 +0xD6D5 0x7EC8 +0xD6D6 0x79CD +0xD6D7 0x80BF +0xD6D8 0x91CD +0xD6D9 0x4EF2 +0xD6DA 0x4F17 +0xD6DB 0x821F +0xD6DC 0x5468 +0xD6DD 0x5DDE +0xD6DE 0x6D32 +0xD6DF 0x8BCC +0xD6E0 0x7CA5 +0xD6E1 0x8F74 +0xD6E2 0x8098 +0xD6E3 0x5E1A +0xD6E4 0x5492 +0xD6E5 0x76B1 +0xD6E6 0x5B99 +0xD6E7 0x663C +0xD6E8 0x9AA4 +0xD6E9 0x73E0 +0xD6EA 0x682A +0xD6EB 0x86DB +0xD6EC 0x6731 +0xD6ED 0x732A +0xD6EE 0x8BF8 +0xD6EF 0x8BDB +0xD6F0 0x9010 +0xD6F1 0x7AF9 +0xD6F2 0x70DB +0xD6F3 0x716E +0xD6F4 0x62C4 +0xD6F5 0x77A9 +0xD6F6 0x5631 +0xD6F7 0x4E3B +0xD6F8 0x8457 +0xD6F9 0x67F1 +0xD6FA 0x52A9 +0xD6FB 0x86C0 +0xD6FC 0x8D2E +0xD6FD 0x94F8 +0xD6FE 0x7B51 +0xD740 0x8B46 +0xD741 0x8B47 +0xD742 0x8B48 +0xD743 0x8B49 +0xD744 0x8B4A +0xD745 0x8B4B +0xD746 0x8B4C +0xD747 0x8B4D +0xD748 0x8B4E +0xD749 0x8B4F +0xD74A 0x8B50 +0xD74B 0x8B51 +0xD74C 0x8B52 +0xD74D 0x8B53 +0xD74E 0x8B54 +0xD74F 0x8B55 +0xD750 0x8B56 +0xD751 0x8B57 +0xD752 0x8B58 +0xD753 0x8B59 +0xD754 0x8B5A +0xD755 0x8B5B +0xD756 0x8B5C +0xD757 0x8B5D +0xD758 0x8B5E +0xD759 0x8B5F +0xD75A 0x8B60 +0xD75B 0x8B61 +0xD75C 0x8B62 +0xD75D 0x8B63 +0xD75E 0x8B64 +0xD75F 0x8B65 +0xD760 0x8B67 +0xD761 0x8B68 +0xD762 0x8B69 +0xD763 0x8B6A +0xD764 0x8B6B +0xD765 0x8B6D +0xD766 0x8B6E +0xD767 0x8B6F +0xD768 0x8B70 +0xD769 0x8B71 +0xD76A 0x8B72 +0xD76B 0x8B73 +0xD76C 0x8B74 +0xD76D 0x8B75 +0xD76E 0x8B76 +0xD76F 0x8B77 +0xD770 0x8B78 +0xD771 0x8B79 +0xD772 0x8B7A +0xD773 0x8B7B +0xD774 0x8B7C +0xD775 0x8B7D +0xD776 0x8B7E +0xD777 0x8B7F +0xD778 0x8B80 +0xD779 0x8B81 +0xD77A 0x8B82 +0xD77B 0x8B83 +0xD77C 0x8B84 +0xD77D 0x8B85 +0xD77E 0x8B86 +0xD780 0x8B87 +0xD781 0x8B88 +0xD782 0x8B89 +0xD783 0x8B8A +0xD784 0x8B8B +0xD785 0x8B8C +0xD786 0x8B8D +0xD787 0x8B8E +0xD788 0x8B8F +0xD789 0x8B90 +0xD78A 0x8B91 +0xD78B 0x8B92 +0xD78C 0x8B93 +0xD78D 0x8B94 +0xD78E 0x8B95 +0xD78F 0x8B96 +0xD790 0x8B97 +0xD791 0x8B98 +0xD792 0x8B99 +0xD793 0x8B9A +0xD794 0x8B9B +0xD795 0x8B9C +0xD796 0x8B9D +0xD797 0x8B9E +0xD798 0x8B9F +0xD799 0x8BAC +0xD79A 0x8BB1 +0xD79B 0x8BBB +0xD79C 0x8BC7 +0xD79D 0x8BD0 +0xD79E 0x8BEA +0xD79F 0x8C09 +0xD7A0 0x8C1E +0xD7A1 0x4F4F +0xD7A2 0x6CE8 +0xD7A3 0x795D +0xD7A4 0x9A7B +0xD7A5 0x6293 +0xD7A6 0x722A +0xD7A7 0x62FD +0xD7A8 0x4E13 +0xD7A9 0x7816 +0xD7AA 0x8F6C +0xD7AB 0x64B0 +0xD7AC 0x8D5A +0xD7AD 0x7BC6 +0xD7AE 0x6869 +0xD7AF 0x5E84 +0xD7B0 0x88C5 +0xD7B1 0x5986 +0xD7B2 0x649E +0xD7B3 0x58EE +0xD7B4 0x72B6 +0xD7B5 0x690E +0xD7B6 0x9525 +0xD7B7 0x8FFD +0xD7B8 0x8D58 +0xD7B9 0x5760 +0xD7BA 0x7F00 +0xD7BB 0x8C06 +0xD7BC 0x51C6 +0xD7BD 0x6349 +0xD7BE 0x62D9 +0xD7BF 0x5353 +0xD7C0 0x684C +0xD7C1 0x7422 +0xD7C2 0x8301 +0xD7C3 0x914C +0xD7C4 0x5544 +0xD7C5 0x7740 +0xD7C6 0x707C +0xD7C7 0x6D4A +0xD7C8 0x5179 +0xD7C9 0x54A8 +0xD7CA 0x8D44 +0xD7CB 0x59FF +0xD7CC 0x6ECB +0xD7CD 0x6DC4 +0xD7CE 0x5B5C +0xD7CF 0x7D2B +0xD7D0 0x4ED4 +0xD7D1 0x7C7D +0xD7D2 0x6ED3 +0xD7D3 0x5B50 +0xD7D4 0x81EA +0xD7D5 0x6E0D +0xD7D6 0x5B57 +0xD7D7 0x9B03 +0xD7D8 0x68D5 +0xD7D9 0x8E2A +0xD7DA 0x5B97 +0xD7DB 0x7EFC +0xD7DC 0x603B +0xD7DD 0x7EB5 +0xD7DE 0x90B9 +0xD7DF 0x8D70 +0xD7E0 0x594F +0xD7E1 0x63CD +0xD7E2 0x79DF +0xD7E3 0x8DB3 +0xD7E4 0x5352 +0xD7E5 0x65CF +0xD7E6 0x7956 +0xD7E7 0x8BC5 +0xD7E8 0x963B +0xD7E9 0x7EC4 +0xD7EA 0x94BB +0xD7EB 0x7E82 +0xD7EC 0x5634 +0xD7ED 0x9189 +0xD7EE 0x6700 +0xD7EF 0x7F6A +0xD7F0 0x5C0A +0xD7F1 0x9075 +0xD7F2 0x6628 +0xD7F3 0x5DE6 +0xD7F4 0x4F50 +0xD7F5 0x67DE +0xD7F6 0x505A +0xD7F7 0x4F5C +0xD7F8 0x5750 +0xD7F9 0x5EA7 +0xD7FA 0xE810 +0xD7FB 0xE811 +0xD7FC 0xE812 +0xD7FD 0xE813 +0xD7FE 0xE814 +0xD840 0x8C38 +0xD841 0x8C39 +0xD842 0x8C3A +0xD843 0x8C3B +0xD844 0x8C3C +0xD845 0x8C3D +0xD846 0x8C3E +0xD847 0x8C3F +0xD848 0x8C40 +0xD849 0x8C42 +0xD84A 0x8C43 +0xD84B 0x8C44 +0xD84C 0x8C45 +0xD84D 0x8C48 +0xD84E 0x8C4A +0xD84F 0x8C4B +0xD850 0x8C4D +0xD851 0x8C4E +0xD852 0x8C4F +0xD853 0x8C50 +0xD854 0x8C51 +0xD855 0x8C52 +0xD856 0x8C53 +0xD857 0x8C54 +0xD858 0x8C56 +0xD859 0x8C57 +0xD85A 0x8C58 +0xD85B 0x8C59 +0xD85C 0x8C5B +0xD85D 0x8C5C +0xD85E 0x8C5D +0xD85F 0x8C5E +0xD860 0x8C5F +0xD861 0x8C60 +0xD862 0x8C63 +0xD863 0x8C64 +0xD864 0x8C65 +0xD865 0x8C66 +0xD866 0x8C67 +0xD867 0x8C68 +0xD868 0x8C69 +0xD869 0x8C6C +0xD86A 0x8C6D +0xD86B 0x8C6E +0xD86C 0x8C6F +0xD86D 0x8C70 +0xD86E 0x8C71 +0xD86F 0x8C72 +0xD870 0x8C74 +0xD871 0x8C75 +0xD872 0x8C76 +0xD873 0x8C77 +0xD874 0x8C7B +0xD875 0x8C7C +0xD876 0x8C7D +0xD877 0x8C7E +0xD878 0x8C7F +0xD879 0x8C80 +0xD87A 0x8C81 +0xD87B 0x8C83 +0xD87C 0x8C84 +0xD87D 0x8C86 +0xD87E 0x8C87 +0xD880 0x8C88 +0xD881 0x8C8B +0xD882 0x8C8D +0xD883 0x8C8E +0xD884 0x8C8F +0xD885 0x8C90 +0xD886 0x8C91 +0xD887 0x8C92 +0xD888 0x8C93 +0xD889 0x8C95 +0xD88A 0x8C96 +0xD88B 0x8C97 +0xD88C 0x8C99 +0xD88D 0x8C9A +0xD88E 0x8C9B +0xD88F 0x8C9C +0xD890 0x8C9D +0xD891 0x8C9E +0xD892 0x8C9F +0xD893 0x8CA0 +0xD894 0x8CA1 +0xD895 0x8CA2 +0xD896 0x8CA3 +0xD897 0x8CA4 +0xD898 0x8CA5 +0xD899 0x8CA6 +0xD89A 0x8CA7 +0xD89B 0x8CA8 +0xD89C 0x8CA9 +0xD89D 0x8CAA +0xD89E 0x8CAB +0xD89F 0x8CAC +0xD8A0 0x8CAD +0xD8A1 0x4E8D +0xD8A2 0x4E0C +0xD8A3 0x5140 +0xD8A4 0x4E10 +0xD8A5 0x5EFF +0xD8A6 0x5345 +0xD8A7 0x4E15 +0xD8A8 0x4E98 +0xD8A9 0x4E1E +0xD8AA 0x9B32 +0xD8AB 0x5B6C +0xD8AC 0x5669 +0xD8AD 0x4E28 +0xD8AE 0x79BA +0xD8AF 0x4E3F +0xD8B0 0x5315 +0xD8B1 0x4E47 +0xD8B2 0x592D +0xD8B3 0x723B +0xD8B4 0x536E +0xD8B5 0x6C10 +0xD8B6 0x56DF +0xD8B7 0x80E4 +0xD8B8 0x9997 +0xD8B9 0x6BD3 +0xD8BA 0x777E +0xD8BB 0x9F17 +0xD8BC 0x4E36 +0xD8BD 0x4E9F +0xD8BE 0x9F10 +0xD8BF 0x4E5C +0xD8C0 0x4E69 +0xD8C1 0x4E93 +0xD8C2 0x8288 +0xD8C3 0x5B5B +0xD8C4 0x556C +0xD8C5 0x560F +0xD8C6 0x4EC4 +0xD8C7 0x538D +0xD8C8 0x539D +0xD8C9 0x53A3 +0xD8CA 0x53A5 +0xD8CB 0x53AE +0xD8CC 0x9765 +0xD8CD 0x8D5D +0xD8CE 0x531A +0xD8CF 0x53F5 +0xD8D0 0x5326 +0xD8D1 0x532E +0xD8D2 0x533E +0xD8D3 0x8D5C +0xD8D4 0x5366 +0xD8D5 0x5363 +0xD8D6 0x5202 +0xD8D7 0x5208 +0xD8D8 0x520E +0xD8D9 0x522D +0xD8DA 0x5233 +0xD8DB 0x523F +0xD8DC 0x5240 +0xD8DD 0x524C +0xD8DE 0x525E +0xD8DF 0x5261 +0xD8E0 0x525C +0xD8E1 0x84AF +0xD8E2 0x527D +0xD8E3 0x5282 +0xD8E4 0x5281 +0xD8E5 0x5290 +0xD8E6 0x5293 +0xD8E7 0x5182 +0xD8E8 0x7F54 +0xD8E9 0x4EBB +0xD8EA 0x4EC3 +0xD8EB 0x4EC9 +0xD8EC 0x4EC2 +0xD8ED 0x4EE8 +0xD8EE 0x4EE1 +0xD8EF 0x4EEB +0xD8F0 0x4EDE +0xD8F1 0x4F1B +0xD8F2 0x4EF3 +0xD8F3 0x4F22 +0xD8F4 0x4F64 +0xD8F5 0x4EF5 +0xD8F6 0x4F25 +0xD8F7 0x4F27 +0xD8F8 0x4F09 +0xD8F9 0x4F2B +0xD8FA 0x4F5E +0xD8FB 0x4F67 +0xD8FC 0x6538 +0xD8FD 0x4F5A +0xD8FE 0x4F5D +0xD940 0x8CAE +0xD941 0x8CAF +0xD942 0x8CB0 +0xD943 0x8CB1 +0xD944 0x8CB2 +0xD945 0x8CB3 +0xD946 0x8CB4 +0xD947 0x8CB5 +0xD948 0x8CB6 +0xD949 0x8CB7 +0xD94A 0x8CB8 +0xD94B 0x8CB9 +0xD94C 0x8CBA +0xD94D 0x8CBB +0xD94E 0x8CBC +0xD94F 0x8CBD +0xD950 0x8CBE +0xD951 0x8CBF +0xD952 0x8CC0 +0xD953 0x8CC1 +0xD954 0x8CC2 +0xD955 0x8CC3 +0xD956 0x8CC4 +0xD957 0x8CC5 +0xD958 0x8CC6 +0xD959 0x8CC7 +0xD95A 0x8CC8 +0xD95B 0x8CC9 +0xD95C 0x8CCA +0xD95D 0x8CCB +0xD95E 0x8CCC +0xD95F 0x8CCD +0xD960 0x8CCE +0xD961 0x8CCF +0xD962 0x8CD0 +0xD963 0x8CD1 +0xD964 0x8CD2 +0xD965 0x8CD3 +0xD966 0x8CD4 +0xD967 0x8CD5 +0xD968 0x8CD6 +0xD969 0x8CD7 +0xD96A 0x8CD8 +0xD96B 0x8CD9 +0xD96C 0x8CDA +0xD96D 0x8CDB +0xD96E 0x8CDC +0xD96F 0x8CDD +0xD970 0x8CDE +0xD971 0x8CDF +0xD972 0x8CE0 +0xD973 0x8CE1 +0xD974 0x8CE2 +0xD975 0x8CE3 +0xD976 0x8CE4 +0xD977 0x8CE5 +0xD978 0x8CE6 +0xD979 0x8CE7 +0xD97A 0x8CE8 +0xD97B 0x8CE9 +0xD97C 0x8CEA +0xD97D 0x8CEB +0xD97E 0x8CEC +0xD980 0x8CED +0xD981 0x8CEE +0xD982 0x8CEF +0xD983 0x8CF0 +0xD984 0x8CF1 +0xD985 0x8CF2 +0xD986 0x8CF3 +0xD987 0x8CF4 +0xD988 0x8CF5 +0xD989 0x8CF6 +0xD98A 0x8CF7 +0xD98B 0x8CF8 +0xD98C 0x8CF9 +0xD98D 0x8CFA +0xD98E 0x8CFB +0xD98F 0x8CFC +0xD990 0x8CFD +0xD991 0x8CFE +0xD992 0x8CFF +0xD993 0x8D00 +0xD994 0x8D01 +0xD995 0x8D02 +0xD996 0x8D03 +0xD997 0x8D04 +0xD998 0x8D05 +0xD999 0x8D06 +0xD99A 0x8D07 +0xD99B 0x8D08 +0xD99C 0x8D09 +0xD99D 0x8D0A +0xD99E 0x8D0B +0xD99F 0x8D0C +0xD9A0 0x8D0D +0xD9A1 0x4F5F +0xD9A2 0x4F57 +0xD9A3 0x4F32 +0xD9A4 0x4F3D +0xD9A5 0x4F76 +0xD9A6 0x4F74 +0xD9A7 0x4F91 +0xD9A8 0x4F89 +0xD9A9 0x4F83 +0xD9AA 0x4F8F +0xD9AB 0x4F7E +0xD9AC 0x4F7B +0xD9AD 0x4FAA +0xD9AE 0x4F7C +0xD9AF 0x4FAC +0xD9B0 0x4F94 +0xD9B1 0x4FE6 +0xD9B2 0x4FE8 +0xD9B3 0x4FEA +0xD9B4 0x4FC5 +0xD9B5 0x4FDA +0xD9B6 0x4FE3 +0xD9B7 0x4FDC +0xD9B8 0x4FD1 +0xD9B9 0x4FDF +0xD9BA 0x4FF8 +0xD9BB 0x5029 +0xD9BC 0x504C +0xD9BD 0x4FF3 +0xD9BE 0x502C +0xD9BF 0x500F +0xD9C0 0x502E +0xD9C1 0x502D +0xD9C2 0x4FFE +0xD9C3 0x501C +0xD9C4 0x500C +0xD9C5 0x5025 +0xD9C6 0x5028 +0xD9C7 0x507E +0xD9C8 0x5043 +0xD9C9 0x5055 +0xD9CA 0x5048 +0xD9CB 0x504E +0xD9CC 0x506C +0xD9CD 0x507B +0xD9CE 0x50A5 +0xD9CF 0x50A7 +0xD9D0 0x50A9 +0xD9D1 0x50BA +0xD9D2 0x50D6 +0xD9D3 0x5106 +0xD9D4 0x50ED +0xD9D5 0x50EC +0xD9D6 0x50E6 +0xD9D7 0x50EE +0xD9D8 0x5107 +0xD9D9 0x510B +0xD9DA 0x4EDD +0xD9DB 0x6C3D +0xD9DC 0x4F58 +0xD9DD 0x4F65 +0xD9DE 0x4FCE +0xD9DF 0x9FA0 +0xD9E0 0x6C46 +0xD9E1 0x7C74 +0xD9E2 0x516E +0xD9E3 0x5DFD +0xD9E4 0x9EC9 +0xD9E5 0x9998 +0xD9E6 0x5181 +0xD9E7 0x5914 +0xD9E8 0x52F9 +0xD9E9 0x530D +0xD9EA 0x8A07 +0xD9EB 0x5310 +0xD9EC 0x51EB +0xD9ED 0x5919 +0xD9EE 0x5155 +0xD9EF 0x4EA0 +0xD9F0 0x5156 +0xD9F1 0x4EB3 +0xD9F2 0x886E +0xD9F3 0x88A4 +0xD9F4 0x4EB5 +0xD9F5 0x8114 +0xD9F6 0x88D2 +0xD9F7 0x7980 +0xD9F8 0x5B34 +0xD9F9 0x8803 +0xD9FA 0x7FB8 +0xD9FB 0x51AB +0xD9FC 0x51B1 +0xD9FD 0x51BD +0xD9FE 0x51BC +0xDA40 0x8D0E +0xDA41 0x8D0F +0xDA42 0x8D10 +0xDA43 0x8D11 +0xDA44 0x8D12 +0xDA45 0x8D13 +0xDA46 0x8D14 +0xDA47 0x8D15 +0xDA48 0x8D16 +0xDA49 0x8D17 +0xDA4A 0x8D18 +0xDA4B 0x8D19 +0xDA4C 0x8D1A +0xDA4D 0x8D1B +0xDA4E 0x8D1C +0xDA4F 0x8D20 +0xDA50 0x8D51 +0xDA51 0x8D52 +0xDA52 0x8D57 +0xDA53 0x8D5F +0xDA54 0x8D65 +0xDA55 0x8D68 +0xDA56 0x8D69 +0xDA57 0x8D6A +0xDA58 0x8D6C +0xDA59 0x8D6E +0xDA5A 0x8D6F +0xDA5B 0x8D71 +0xDA5C 0x8D72 +0xDA5D 0x8D78 +0xDA5E 0x8D79 +0xDA5F 0x8D7A +0xDA60 0x8D7B +0xDA61 0x8D7C +0xDA62 0x8D7D +0xDA63 0x8D7E +0xDA64 0x8D7F +0xDA65 0x8D80 +0xDA66 0x8D82 +0xDA67 0x8D83 +0xDA68 0x8D86 +0xDA69 0x8D87 +0xDA6A 0x8D88 +0xDA6B 0x8D89 +0xDA6C 0x8D8C +0xDA6D 0x8D8D +0xDA6E 0x8D8E +0xDA6F 0x8D8F +0xDA70 0x8D90 +0xDA71 0x8D92 +0xDA72 0x8D93 +0xDA73 0x8D95 +0xDA74 0x8D96 +0xDA75 0x8D97 +0xDA76 0x8D98 +0xDA77 0x8D99 +0xDA78 0x8D9A +0xDA79 0x8D9B +0xDA7A 0x8D9C +0xDA7B 0x8D9D +0xDA7C 0x8D9E +0xDA7D 0x8DA0 +0xDA7E 0x8DA1 +0xDA80 0x8DA2 +0xDA81 0x8DA4 +0xDA82 0x8DA5 +0xDA83 0x8DA6 +0xDA84 0x8DA7 +0xDA85 0x8DA8 +0xDA86 0x8DA9 +0xDA87 0x8DAA +0xDA88 0x8DAB +0xDA89 0x8DAC +0xDA8A 0x8DAD +0xDA8B 0x8DAE +0xDA8C 0x8DAF +0xDA8D 0x8DB0 +0xDA8E 0x8DB2 +0xDA8F 0x8DB6 +0xDA90 0x8DB7 +0xDA91 0x8DB9 +0xDA92 0x8DBB +0xDA93 0x8DBD +0xDA94 0x8DC0 +0xDA95 0x8DC1 +0xDA96 0x8DC2 +0xDA97 0x8DC5 +0xDA98 0x8DC7 +0xDA99 0x8DC8 +0xDA9A 0x8DC9 +0xDA9B 0x8DCA +0xDA9C 0x8DCD +0xDA9D 0x8DD0 +0xDA9E 0x8DD2 +0xDA9F 0x8DD3 +0xDAA0 0x8DD4 +0xDAA1 0x51C7 +0xDAA2 0x5196 +0xDAA3 0x51A2 +0xDAA4 0x51A5 +0xDAA5 0x8BA0 +0xDAA6 0x8BA6 +0xDAA7 0x8BA7 +0xDAA8 0x8BAA +0xDAA9 0x8BB4 +0xDAAA 0x8BB5 +0xDAAB 0x8BB7 +0xDAAC 0x8BC2 +0xDAAD 0x8BC3 +0xDAAE 0x8BCB +0xDAAF 0x8BCF +0xDAB0 0x8BCE +0xDAB1 0x8BD2 +0xDAB2 0x8BD3 +0xDAB3 0x8BD4 +0xDAB4 0x8BD6 +0xDAB5 0x8BD8 +0xDAB6 0x8BD9 +0xDAB7 0x8BDC +0xDAB8 0x8BDF +0xDAB9 0x8BE0 +0xDABA 0x8BE4 +0xDABB 0x8BE8 +0xDABC 0x8BE9 +0xDABD 0x8BEE +0xDABE 0x8BF0 +0xDABF 0x8BF3 +0xDAC0 0x8BF6 +0xDAC1 0x8BF9 +0xDAC2 0x8BFC +0xDAC3 0x8BFF +0xDAC4 0x8C00 +0xDAC5 0x8C02 +0xDAC6 0x8C04 +0xDAC7 0x8C07 +0xDAC8 0x8C0C +0xDAC9 0x8C0F +0xDACA 0x8C11 +0xDACB 0x8C12 +0xDACC 0x8C14 +0xDACD 0x8C15 +0xDACE 0x8C16 +0xDACF 0x8C19 +0xDAD0 0x8C1B +0xDAD1 0x8C18 +0xDAD2 0x8C1D +0xDAD3 0x8C1F +0xDAD4 0x8C20 +0xDAD5 0x8C21 +0xDAD6 0x8C25 +0xDAD7 0x8C27 +0xDAD8 0x8C2A +0xDAD9 0x8C2B +0xDADA 0x8C2E +0xDADB 0x8C2F +0xDADC 0x8C32 +0xDADD 0x8C33 +0xDADE 0x8C35 +0xDADF 0x8C36 +0xDAE0 0x5369 +0xDAE1 0x537A +0xDAE2 0x961D +0xDAE3 0x9622 +0xDAE4 0x9621 +0xDAE5 0x9631 +0xDAE6 0x962A +0xDAE7 0x963D +0xDAE8 0x963C +0xDAE9 0x9642 +0xDAEA 0x9649 +0xDAEB 0x9654 +0xDAEC 0x965F +0xDAED 0x9667 +0xDAEE 0x966C +0xDAEF 0x9672 +0xDAF0 0x9674 +0xDAF1 0x9688 +0xDAF2 0x968D +0xDAF3 0x9697 +0xDAF4 0x96B0 +0xDAF5 0x9097 +0xDAF6 0x909B +0xDAF7 0x909D +0xDAF8 0x9099 +0xDAF9 0x90AC +0xDAFA 0x90A1 +0xDAFB 0x90B4 +0xDAFC 0x90B3 +0xDAFD 0x90B6 +0xDAFE 0x90BA +0xDB40 0x8DD5 +0xDB41 0x8DD8 +0xDB42 0x8DD9 +0xDB43 0x8DDC +0xDB44 0x8DE0 +0xDB45 0x8DE1 +0xDB46 0x8DE2 +0xDB47 0x8DE5 +0xDB48 0x8DE6 +0xDB49 0x8DE7 +0xDB4A 0x8DE9 +0xDB4B 0x8DED +0xDB4C 0x8DEE +0xDB4D 0x8DF0 +0xDB4E 0x8DF1 +0xDB4F 0x8DF2 +0xDB50 0x8DF4 +0xDB51 0x8DF6 +0xDB52 0x8DFC +0xDB53 0x8DFE +0xDB54 0x8DFF +0xDB55 0x8E00 +0xDB56 0x8E01 +0xDB57 0x8E02 +0xDB58 0x8E03 +0xDB59 0x8E04 +0xDB5A 0x8E06 +0xDB5B 0x8E07 +0xDB5C 0x8E08 +0xDB5D 0x8E0B +0xDB5E 0x8E0D +0xDB5F 0x8E0E +0xDB60 0x8E10 +0xDB61 0x8E11 +0xDB62 0x8E12 +0xDB63 0x8E13 +0xDB64 0x8E15 +0xDB65 0x8E16 +0xDB66 0x8E17 +0xDB67 0x8E18 +0xDB68 0x8E19 +0xDB69 0x8E1A +0xDB6A 0x8E1B +0xDB6B 0x8E1C +0xDB6C 0x8E20 +0xDB6D 0x8E21 +0xDB6E 0x8E24 +0xDB6F 0x8E25 +0xDB70 0x8E26 +0xDB71 0x8E27 +0xDB72 0x8E28 +0xDB73 0x8E2B +0xDB74 0x8E2D +0xDB75 0x8E30 +0xDB76 0x8E32 +0xDB77 0x8E33 +0xDB78 0x8E34 +0xDB79 0x8E36 +0xDB7A 0x8E37 +0xDB7B 0x8E38 +0xDB7C 0x8E3B +0xDB7D 0x8E3C +0xDB7E 0x8E3E +0xDB80 0x8E3F +0xDB81 0x8E43 +0xDB82 0x8E45 +0xDB83 0x8E46 +0xDB84 0x8E4C +0xDB85 0x8E4D +0xDB86 0x8E4E +0xDB87 0x8E4F +0xDB88 0x8E50 +0xDB89 0x8E53 +0xDB8A 0x8E54 +0xDB8B 0x8E55 +0xDB8C 0x8E56 +0xDB8D 0x8E57 +0xDB8E 0x8E58 +0xDB8F 0x8E5A +0xDB90 0x8E5B +0xDB91 0x8E5C +0xDB92 0x8E5D +0xDB93 0x8E5E +0xDB94 0x8E5F +0xDB95 0x8E60 +0xDB96 0x8E61 +0xDB97 0x8E62 +0xDB98 0x8E63 +0xDB99 0x8E64 +0xDB9A 0x8E65 +0xDB9B 0x8E67 +0xDB9C 0x8E68 +0xDB9D 0x8E6A +0xDB9E 0x8E6B +0xDB9F 0x8E6E +0xDBA0 0x8E71 +0xDBA1 0x90B8 +0xDBA2 0x90B0 +0xDBA3 0x90CF +0xDBA4 0x90C5 +0xDBA5 0x90BE +0xDBA6 0x90D0 +0xDBA7 0x90C4 +0xDBA8 0x90C7 +0xDBA9 0x90D3 +0xDBAA 0x90E6 +0xDBAB 0x90E2 +0xDBAC 0x90DC +0xDBAD 0x90D7 +0xDBAE 0x90DB +0xDBAF 0x90EB +0xDBB0 0x90EF +0xDBB1 0x90FE +0xDBB2 0x9104 +0xDBB3 0x9122 +0xDBB4 0x911E +0xDBB5 0x9123 +0xDBB6 0x9131 +0xDBB7 0x912F +0xDBB8 0x9139 +0xDBB9 0x9143 +0xDBBA 0x9146 +0xDBBB 0x520D +0xDBBC 0x5942 +0xDBBD 0x52A2 +0xDBBE 0x52AC +0xDBBF 0x52AD +0xDBC0 0x52BE +0xDBC1 0x54FF +0xDBC2 0x52D0 +0xDBC3 0x52D6 +0xDBC4 0x52F0 +0xDBC5 0x53DF +0xDBC6 0x71EE +0xDBC7 0x77CD +0xDBC8 0x5EF4 +0xDBC9 0x51F5 +0xDBCA 0x51FC +0xDBCB 0x9B2F +0xDBCC 0x53B6 +0xDBCD 0x5F01 +0xDBCE 0x755A +0xDBCF 0x5DEF +0xDBD0 0x574C +0xDBD1 0x57A9 +0xDBD2 0x57A1 +0xDBD3 0x587E +0xDBD4 0x58BC +0xDBD5 0x58C5 +0xDBD6 0x58D1 +0xDBD7 0x5729 +0xDBD8 0x572C +0xDBD9 0x572A +0xDBDA 0x5733 +0xDBDB 0x5739 +0xDBDC 0x572E +0xDBDD 0x572F +0xDBDE 0x575C +0xDBDF 0x573B +0xDBE0 0x5742 +0xDBE1 0x5769 +0xDBE2 0x5785 +0xDBE3 0x576B +0xDBE4 0x5786 +0xDBE5 0x577C +0xDBE6 0x577B +0xDBE7 0x5768 +0xDBE8 0x576D +0xDBE9 0x5776 +0xDBEA 0x5773 +0xDBEB 0x57AD +0xDBEC 0x57A4 +0xDBED 0x578C +0xDBEE 0x57B2 +0xDBEF 0x57CF +0xDBF0 0x57A7 +0xDBF1 0x57B4 +0xDBF2 0x5793 +0xDBF3 0x57A0 +0xDBF4 0x57D5 +0xDBF5 0x57D8 +0xDBF6 0x57DA +0xDBF7 0x57D9 +0xDBF8 0x57D2 +0xDBF9 0x57B8 +0xDBFA 0x57F4 +0xDBFB 0x57EF +0xDBFC 0x57F8 +0xDBFD 0x57E4 +0xDBFE 0x57DD +0xDC40 0x8E73 +0xDC41 0x8E75 +0xDC42 0x8E77 +0xDC43 0x8E78 +0xDC44 0x8E79 +0xDC45 0x8E7A +0xDC46 0x8E7B +0xDC47 0x8E7D +0xDC48 0x8E7E +0xDC49 0x8E80 +0xDC4A 0x8E82 +0xDC4B 0x8E83 +0xDC4C 0x8E84 +0xDC4D 0x8E86 +0xDC4E 0x8E88 +0xDC4F 0x8E89 +0xDC50 0x8E8A +0xDC51 0x8E8B +0xDC52 0x8E8C +0xDC53 0x8E8D +0xDC54 0x8E8E +0xDC55 0x8E91 +0xDC56 0x8E92 +0xDC57 0x8E93 +0xDC58 0x8E95 +0xDC59 0x8E96 +0xDC5A 0x8E97 +0xDC5B 0x8E98 +0xDC5C 0x8E99 +0xDC5D 0x8E9A +0xDC5E 0x8E9B +0xDC5F 0x8E9D +0xDC60 0x8E9F +0xDC61 0x8EA0 +0xDC62 0x8EA1 +0xDC63 0x8EA2 +0xDC64 0x8EA3 +0xDC65 0x8EA4 +0xDC66 0x8EA5 +0xDC67 0x8EA6 +0xDC68 0x8EA7 +0xDC69 0x8EA8 +0xDC6A 0x8EA9 +0xDC6B 0x8EAA +0xDC6C 0x8EAD +0xDC6D 0x8EAE +0xDC6E 0x8EB0 +0xDC6F 0x8EB1 +0xDC70 0x8EB3 +0xDC71 0x8EB4 +0xDC72 0x8EB5 +0xDC73 0x8EB6 +0xDC74 0x8EB7 +0xDC75 0x8EB8 +0xDC76 0x8EB9 +0xDC77 0x8EBB +0xDC78 0x8EBC +0xDC79 0x8EBD +0xDC7A 0x8EBE +0xDC7B 0x8EBF +0xDC7C 0x8EC0 +0xDC7D 0x8EC1 +0xDC7E 0x8EC2 +0xDC80 0x8EC3 +0xDC81 0x8EC4 +0xDC82 0x8EC5 +0xDC83 0x8EC6 +0xDC84 0x8EC7 +0xDC85 0x8EC8 +0xDC86 0x8EC9 +0xDC87 0x8ECA +0xDC88 0x8ECB +0xDC89 0x8ECC +0xDC8A 0x8ECD +0xDC8B 0x8ECF +0xDC8C 0x8ED0 +0xDC8D 0x8ED1 +0xDC8E 0x8ED2 +0xDC8F 0x8ED3 +0xDC90 0x8ED4 +0xDC91 0x8ED5 +0xDC92 0x8ED6 +0xDC93 0x8ED7 +0xDC94 0x8ED8 +0xDC95 0x8ED9 +0xDC96 0x8EDA +0xDC97 0x8EDB +0xDC98 0x8EDC +0xDC99 0x8EDD +0xDC9A 0x8EDE +0xDC9B 0x8EDF +0xDC9C 0x8EE0 +0xDC9D 0x8EE1 +0xDC9E 0x8EE2 +0xDC9F 0x8EE3 +0xDCA0 0x8EE4 +0xDCA1 0x580B +0xDCA2 0x580D +0xDCA3 0x57FD +0xDCA4 0x57ED +0xDCA5 0x5800 +0xDCA6 0x581E +0xDCA7 0x5819 +0xDCA8 0x5844 +0xDCA9 0x5820 +0xDCAA 0x5865 +0xDCAB 0x586C +0xDCAC 0x5881 +0xDCAD 0x5889 +0xDCAE 0x589A +0xDCAF 0x5880 +0xDCB0 0x99A8 +0xDCB1 0x9F19 +0xDCB2 0x61FF +0xDCB3 0x8279 +0xDCB4 0x827D +0xDCB5 0x827F +0xDCB6 0x828F +0xDCB7 0x828A +0xDCB8 0x82A8 +0xDCB9 0x8284 +0xDCBA 0x828E +0xDCBB 0x8291 +0xDCBC 0x8297 +0xDCBD 0x8299 +0xDCBE 0x82AB +0xDCBF 0x82B8 +0xDCC0 0x82BE +0xDCC1 0x82B0 +0xDCC2 0x82C8 +0xDCC3 0x82CA +0xDCC4 0x82E3 +0xDCC5 0x8298 +0xDCC6 0x82B7 +0xDCC7 0x82AE +0xDCC8 0x82CB +0xDCC9 0x82CC +0xDCCA 0x82C1 +0xDCCB 0x82A9 +0xDCCC 0x82B4 +0xDCCD 0x82A1 +0xDCCE 0x82AA +0xDCCF 0x829F +0xDCD0 0x82C4 +0xDCD1 0x82CE +0xDCD2 0x82A4 +0xDCD3 0x82E1 +0xDCD4 0x8309 +0xDCD5 0x82F7 +0xDCD6 0x82E4 +0xDCD7 0x830F +0xDCD8 0x8307 +0xDCD9 0x82DC +0xDCDA 0x82F4 +0xDCDB 0x82D2 +0xDCDC 0x82D8 +0xDCDD 0x830C +0xDCDE 0x82FB +0xDCDF 0x82D3 +0xDCE0 0x8311 +0xDCE1 0x831A +0xDCE2 0x8306 +0xDCE3 0x8314 +0xDCE4 0x8315 +0xDCE5 0x82E0 +0xDCE6 0x82D5 +0xDCE7 0x831C +0xDCE8 0x8351 +0xDCE9 0x835B +0xDCEA 0x835C +0xDCEB 0x8308 +0xDCEC 0x8392 +0xDCED 0x833C +0xDCEE 0x8334 +0xDCEF 0x8331 +0xDCF0 0x839B +0xDCF1 0x835E +0xDCF2 0x832F +0xDCF3 0x834F +0xDCF4 0x8347 +0xDCF5 0x8343 +0xDCF6 0x835F +0xDCF7 0x8340 +0xDCF8 0x8317 +0xDCF9 0x8360 +0xDCFA 0x832D +0xDCFB 0x833A +0xDCFC 0x8333 +0xDCFD 0x8366 +0xDCFE 0x8365 +0xDD40 0x8EE5 +0xDD41 0x8EE6 +0xDD42 0x8EE7 +0xDD43 0x8EE8 +0xDD44 0x8EE9 +0xDD45 0x8EEA +0xDD46 0x8EEB +0xDD47 0x8EEC +0xDD48 0x8EED +0xDD49 0x8EEE +0xDD4A 0x8EEF +0xDD4B 0x8EF0 +0xDD4C 0x8EF1 +0xDD4D 0x8EF2 +0xDD4E 0x8EF3 +0xDD4F 0x8EF4 +0xDD50 0x8EF5 +0xDD51 0x8EF6 +0xDD52 0x8EF7 +0xDD53 0x8EF8 +0xDD54 0x8EF9 +0xDD55 0x8EFA +0xDD56 0x8EFB +0xDD57 0x8EFC +0xDD58 0x8EFD +0xDD59 0x8EFE +0xDD5A 0x8EFF +0xDD5B 0x8F00 +0xDD5C 0x8F01 +0xDD5D 0x8F02 +0xDD5E 0x8F03 +0xDD5F 0x8F04 +0xDD60 0x8F05 +0xDD61 0x8F06 +0xDD62 0x8F07 +0xDD63 0x8F08 +0xDD64 0x8F09 +0xDD65 0x8F0A +0xDD66 0x8F0B +0xDD67 0x8F0C +0xDD68 0x8F0D +0xDD69 0x8F0E +0xDD6A 0x8F0F +0xDD6B 0x8F10 +0xDD6C 0x8F11 +0xDD6D 0x8F12 +0xDD6E 0x8F13 +0xDD6F 0x8F14 +0xDD70 0x8F15 +0xDD71 0x8F16 +0xDD72 0x8F17 +0xDD73 0x8F18 +0xDD74 0x8F19 +0xDD75 0x8F1A +0xDD76 0x8F1B +0xDD77 0x8F1C +0xDD78 0x8F1D +0xDD79 0x8F1E +0xDD7A 0x8F1F +0xDD7B 0x8F20 +0xDD7C 0x8F21 +0xDD7D 0x8F22 +0xDD7E 0x8F23 +0xDD80 0x8F24 +0xDD81 0x8F25 +0xDD82 0x8F26 +0xDD83 0x8F27 +0xDD84 0x8F28 +0xDD85 0x8F29 +0xDD86 0x8F2A +0xDD87 0x8F2B +0xDD88 0x8F2C +0xDD89 0x8F2D +0xDD8A 0x8F2E +0xDD8B 0x8F2F +0xDD8C 0x8F30 +0xDD8D 0x8F31 +0xDD8E 0x8F32 +0xDD8F 0x8F33 +0xDD90 0x8F34 +0xDD91 0x8F35 +0xDD92 0x8F36 +0xDD93 0x8F37 +0xDD94 0x8F38 +0xDD95 0x8F39 +0xDD96 0x8F3A +0xDD97 0x8F3B +0xDD98 0x8F3C +0xDD99 0x8F3D +0xDD9A 0x8F3E +0xDD9B 0x8F3F +0xDD9C 0x8F40 +0xDD9D 0x8F41 +0xDD9E 0x8F42 +0xDD9F 0x8F43 +0xDDA0 0x8F44 +0xDDA1 0x8368 +0xDDA2 0x831B +0xDDA3 0x8369 +0xDDA4 0x836C +0xDDA5 0x836A +0xDDA6 0x836D +0xDDA7 0x836E +0xDDA8 0x83B0 +0xDDA9 0x8378 +0xDDAA 0x83B3 +0xDDAB 0x83B4 +0xDDAC 0x83A0 +0xDDAD 0x83AA +0xDDAE 0x8393 +0xDDAF 0x839C +0xDDB0 0x8385 +0xDDB1 0x837C +0xDDB2 0x83B6 +0xDDB3 0x83A9 +0xDDB4 0x837D +0xDDB5 0x83B8 +0xDDB6 0x837B +0xDDB7 0x8398 +0xDDB8 0x839E +0xDDB9 0x83A8 +0xDDBA 0x83BA +0xDDBB 0x83BC +0xDDBC 0x83C1 +0xDDBD 0x8401 +0xDDBE 0x83E5 +0xDDBF 0x83D8 +0xDDC0 0x5807 +0xDDC1 0x8418 +0xDDC2 0x840B +0xDDC3 0x83DD +0xDDC4 0x83FD +0xDDC5 0x83D6 +0xDDC6 0x841C +0xDDC7 0x8438 +0xDDC8 0x8411 +0xDDC9 0x8406 +0xDDCA 0x83D4 +0xDDCB 0x83DF +0xDDCC 0x840F +0xDDCD 0x8403 +0xDDCE 0x83F8 +0xDDCF 0x83F9 +0xDDD0 0x83EA +0xDDD1 0x83C5 +0xDDD2 0x83C0 +0xDDD3 0x8426 +0xDDD4 0x83F0 +0xDDD5 0x83E1 +0xDDD6 0x845C +0xDDD7 0x8451 +0xDDD8 0x845A +0xDDD9 0x8459 +0xDDDA 0x8473 +0xDDDB 0x8487 +0xDDDC 0x8488 +0xDDDD 0x847A +0xDDDE 0x8489 +0xDDDF 0x8478 +0xDDE0 0x843C +0xDDE1 0x8446 +0xDDE2 0x8469 +0xDDE3 0x8476 +0xDDE4 0x848C +0xDDE5 0x848E +0xDDE6 0x8431 +0xDDE7 0x846D +0xDDE8 0x84C1 +0xDDE9 0x84CD +0xDDEA 0x84D0 +0xDDEB 0x84E6 +0xDDEC 0x84BD +0xDDED 0x84D3 +0xDDEE 0x84CA +0xDDEF 0x84BF +0xDDF0 0x84BA +0xDDF1 0x84E0 +0xDDF2 0x84A1 +0xDDF3 0x84B9 +0xDDF4 0x84B4 +0xDDF5 0x8497 +0xDDF6 0x84E5 +0xDDF7 0x84E3 +0xDDF8 0x850C +0xDDF9 0x750D +0xDDFA 0x8538 +0xDDFB 0x84F0 +0xDDFC 0x8539 +0xDDFD 0x851F +0xDDFE 0x853A +0xDE40 0x8F45 +0xDE41 0x8F46 +0xDE42 0x8F47 +0xDE43 0x8F48 +0xDE44 0x8F49 +0xDE45 0x8F4A +0xDE46 0x8F4B +0xDE47 0x8F4C +0xDE48 0x8F4D +0xDE49 0x8F4E +0xDE4A 0x8F4F +0xDE4B 0x8F50 +0xDE4C 0x8F51 +0xDE4D 0x8F52 +0xDE4E 0x8F53 +0xDE4F 0x8F54 +0xDE50 0x8F55 +0xDE51 0x8F56 +0xDE52 0x8F57 +0xDE53 0x8F58 +0xDE54 0x8F59 +0xDE55 0x8F5A +0xDE56 0x8F5B +0xDE57 0x8F5C +0xDE58 0x8F5D +0xDE59 0x8F5E +0xDE5A 0x8F5F +0xDE5B 0x8F60 +0xDE5C 0x8F61 +0xDE5D 0x8F62 +0xDE5E 0x8F63 +0xDE5F 0x8F64 +0xDE60 0x8F65 +0xDE61 0x8F6A +0xDE62 0x8F80 +0xDE63 0x8F8C +0xDE64 0x8F92 +0xDE65 0x8F9D +0xDE66 0x8FA0 +0xDE67 0x8FA1 +0xDE68 0x8FA2 +0xDE69 0x8FA4 +0xDE6A 0x8FA5 +0xDE6B 0x8FA6 +0xDE6C 0x8FA7 +0xDE6D 0x8FAA +0xDE6E 0x8FAC +0xDE6F 0x8FAD +0xDE70 0x8FAE +0xDE71 0x8FAF +0xDE72 0x8FB2 +0xDE73 0x8FB3 +0xDE74 0x8FB4 +0xDE75 0x8FB5 +0xDE76 0x8FB7 +0xDE77 0x8FB8 +0xDE78 0x8FBA +0xDE79 0x8FBB +0xDE7A 0x8FBC +0xDE7B 0x8FBF +0xDE7C 0x8FC0 +0xDE7D 0x8FC3 +0xDE7E 0x8FC6 +0xDE80 0x8FC9 +0xDE81 0x8FCA +0xDE82 0x8FCB +0xDE83 0x8FCC +0xDE84 0x8FCD +0xDE85 0x8FCF +0xDE86 0x8FD2 +0xDE87 0x8FD6 +0xDE88 0x8FD7 +0xDE89 0x8FDA +0xDE8A 0x8FE0 +0xDE8B 0x8FE1 +0xDE8C 0x8FE3 +0xDE8D 0x8FE7 +0xDE8E 0x8FEC +0xDE8F 0x8FEF +0xDE90 0x8FF1 +0xDE91 0x8FF2 +0xDE92 0x8FF4 +0xDE93 0x8FF5 +0xDE94 0x8FF6 +0xDE95 0x8FFA +0xDE96 0x8FFB +0xDE97 0x8FFC +0xDE98 0x8FFE +0xDE99 0x8FFF +0xDE9A 0x9007 +0xDE9B 0x9008 +0xDE9C 0x900C +0xDE9D 0x900E +0xDE9E 0x9013 +0xDE9F 0x9015 +0xDEA0 0x9018 +0xDEA1 0x8556 +0xDEA2 0x853B +0xDEA3 0x84FF +0xDEA4 0x84FC +0xDEA5 0x8559 +0xDEA6 0x8548 +0xDEA7 0x8568 +0xDEA8 0x8564 +0xDEA9 0x855E +0xDEAA 0x857A +0xDEAB 0x77A2 +0xDEAC 0x8543 +0xDEAD 0x8572 +0xDEAE 0x857B +0xDEAF 0x85A4 +0xDEB0 0x85A8 +0xDEB1 0x8587 +0xDEB2 0x858F +0xDEB3 0x8579 +0xDEB4 0x85AE +0xDEB5 0x859C +0xDEB6 0x8585 +0xDEB7 0x85B9 +0xDEB8 0x85B7 +0xDEB9 0x85B0 +0xDEBA 0x85D3 +0xDEBB 0x85C1 +0xDEBC 0x85DC +0xDEBD 0x85FF +0xDEBE 0x8627 +0xDEBF 0x8605 +0xDEC0 0x8629 +0xDEC1 0x8616 +0xDEC2 0x863C +0xDEC3 0x5EFE +0xDEC4 0x5F08 +0xDEC5 0x593C +0xDEC6 0x5941 +0xDEC7 0x8037 +0xDEC8 0x5955 +0xDEC9 0x595A +0xDECA 0x5958 +0xDECB 0x530F +0xDECC 0x5C22 +0xDECD 0x5C25 +0xDECE 0x5C2C +0xDECF 0x5C34 +0xDED0 0x624C +0xDED1 0x626A +0xDED2 0x629F +0xDED3 0x62BB +0xDED4 0x62CA +0xDED5 0x62DA +0xDED6 0x62D7 +0xDED7 0x62EE +0xDED8 0x6322 +0xDED9 0x62F6 +0xDEDA 0x6339 +0xDEDB 0x634B +0xDEDC 0x6343 +0xDEDD 0x63AD +0xDEDE 0x63F6 +0xDEDF 0x6371 +0xDEE0 0x637A +0xDEE1 0x638E +0xDEE2 0x63B4 +0xDEE3 0x636D +0xDEE4 0x63AC +0xDEE5 0x638A +0xDEE6 0x6369 +0xDEE7 0x63AE +0xDEE8 0x63BC +0xDEE9 0x63F2 +0xDEEA 0x63F8 +0xDEEB 0x63E0 +0xDEEC 0x63FF +0xDEED 0x63C4 +0xDEEE 0x63DE +0xDEEF 0x63CE +0xDEF0 0x6452 +0xDEF1 0x63C6 +0xDEF2 0x63BE +0xDEF3 0x6445 +0xDEF4 0x6441 +0xDEF5 0x640B +0xDEF6 0x641B +0xDEF7 0x6420 +0xDEF8 0x640C +0xDEF9 0x6426 +0xDEFA 0x6421 +0xDEFB 0x645E +0xDEFC 0x6484 +0xDEFD 0x646D +0xDEFE 0x6496 +0xDF40 0x9019 +0xDF41 0x901C +0xDF42 0x9023 +0xDF43 0x9024 +0xDF44 0x9025 +0xDF45 0x9027 +0xDF46 0x9028 +0xDF47 0x9029 +0xDF48 0x902A +0xDF49 0x902B +0xDF4A 0x902C +0xDF4B 0x9030 +0xDF4C 0x9031 +0xDF4D 0x9032 +0xDF4E 0x9033 +0xDF4F 0x9034 +0xDF50 0x9037 +0xDF51 0x9039 +0xDF52 0x903A +0xDF53 0x903D +0xDF54 0x903F +0xDF55 0x9040 +0xDF56 0x9043 +0xDF57 0x9045 +0xDF58 0x9046 +0xDF59 0x9048 +0xDF5A 0x9049 +0xDF5B 0x904A +0xDF5C 0x904B +0xDF5D 0x904C +0xDF5E 0x904E +0xDF5F 0x9054 +0xDF60 0x9055 +0xDF61 0x9056 +0xDF62 0x9059 +0xDF63 0x905A +0xDF64 0x905C +0xDF65 0x905D +0xDF66 0x905E +0xDF67 0x905F +0xDF68 0x9060 +0xDF69 0x9061 +0xDF6A 0x9064 +0xDF6B 0x9066 +0xDF6C 0x9067 +0xDF6D 0x9069 +0xDF6E 0x906A +0xDF6F 0x906B +0xDF70 0x906C +0xDF71 0x906F +0xDF72 0x9070 +0xDF73 0x9071 +0xDF74 0x9072 +0xDF75 0x9073 +0xDF76 0x9076 +0xDF77 0x9077 +0xDF78 0x9078 +0xDF79 0x9079 +0xDF7A 0x907A +0xDF7B 0x907B +0xDF7C 0x907C +0xDF7D 0x907E +0xDF7E 0x9081 +0xDF80 0x9084 +0xDF81 0x9085 +0xDF82 0x9086 +0xDF83 0x9087 +0xDF84 0x9089 +0xDF85 0x908A +0xDF86 0x908C +0xDF87 0x908D +0xDF88 0x908E +0xDF89 0x908F +0xDF8A 0x9090 +0xDF8B 0x9092 +0xDF8C 0x9094 +0xDF8D 0x9096 +0xDF8E 0x9098 +0xDF8F 0x909A +0xDF90 0x909C +0xDF91 0x909E +0xDF92 0x909F +0xDF93 0x90A0 +0xDF94 0x90A4 +0xDF95 0x90A5 +0xDF96 0x90A7 +0xDF97 0x90A8 +0xDF98 0x90A9 +0xDF99 0x90AB +0xDF9A 0x90AD +0xDF9B 0x90B2 +0xDF9C 0x90B7 +0xDF9D 0x90BC +0xDF9E 0x90BD +0xDF9F 0x90BF +0xDFA0 0x90C0 +0xDFA1 0x647A +0xDFA2 0x64B7 +0xDFA3 0x64B8 +0xDFA4 0x6499 +0xDFA5 0x64BA +0xDFA6 0x64C0 +0xDFA7 0x64D0 +0xDFA8 0x64D7 +0xDFA9 0x64E4 +0xDFAA 0x64E2 +0xDFAB 0x6509 +0xDFAC 0x6525 +0xDFAD 0x652E +0xDFAE 0x5F0B +0xDFAF 0x5FD2 +0xDFB0 0x7519 +0xDFB1 0x5F11 +0xDFB2 0x535F +0xDFB3 0x53F1 +0xDFB4 0x53FD +0xDFB5 0x53E9 +0xDFB6 0x53E8 +0xDFB7 0x53FB +0xDFB8 0x5412 +0xDFB9 0x5416 +0xDFBA 0x5406 +0xDFBB 0x544B +0xDFBC 0x5452 +0xDFBD 0x5453 +0xDFBE 0x5454 +0xDFBF 0x5456 +0xDFC0 0x5443 +0xDFC1 0x5421 +0xDFC2 0x5457 +0xDFC3 0x5459 +0xDFC4 0x5423 +0xDFC5 0x5432 +0xDFC6 0x5482 +0xDFC7 0x5494 +0xDFC8 0x5477 +0xDFC9 0x5471 +0xDFCA 0x5464 +0xDFCB 0x549A +0xDFCC 0x549B +0xDFCD 0x5484 +0xDFCE 0x5476 +0xDFCF 0x5466 +0xDFD0 0x549D +0xDFD1 0x54D0 +0xDFD2 0x54AD +0xDFD3 0x54C2 +0xDFD4 0x54B4 +0xDFD5 0x54D2 +0xDFD6 0x54A7 +0xDFD7 0x54A6 +0xDFD8 0x54D3 +0xDFD9 0x54D4 +0xDFDA 0x5472 +0xDFDB 0x54A3 +0xDFDC 0x54D5 +0xDFDD 0x54BB +0xDFDE 0x54BF +0xDFDF 0x54CC +0xDFE0 0x54D9 +0xDFE1 0x54DA +0xDFE2 0x54DC +0xDFE3 0x54A9 +0xDFE4 0x54AA +0xDFE5 0x54A4 +0xDFE6 0x54DD +0xDFE7 0x54CF +0xDFE8 0x54DE +0xDFE9 0x551B +0xDFEA 0x54E7 +0xDFEB 0x5520 +0xDFEC 0x54FD +0xDFED 0x5514 +0xDFEE 0x54F3 +0xDFEF 0x5522 +0xDFF0 0x5523 +0xDFF1 0x550F +0xDFF2 0x5511 +0xDFF3 0x5527 +0xDFF4 0x552A +0xDFF5 0x5567 +0xDFF6 0x558F +0xDFF7 0x55B5 +0xDFF8 0x5549 +0xDFF9 0x556D +0xDFFA 0x5541 +0xDFFB 0x5555 +0xDFFC 0x553F +0xDFFD 0x5550 +0xDFFE 0x553C +0xE040 0x90C2 +0xE041 0x90C3 +0xE042 0x90C6 +0xE043 0x90C8 +0xE044 0x90C9 +0xE045 0x90CB +0xE046 0x90CC +0xE047 0x90CD +0xE048 0x90D2 +0xE049 0x90D4 +0xE04A 0x90D5 +0xE04B 0x90D6 +0xE04C 0x90D8 +0xE04D 0x90D9 +0xE04E 0x90DA +0xE04F 0x90DE +0xE050 0x90DF +0xE051 0x90E0 +0xE052 0x90E3 +0xE053 0x90E4 +0xE054 0x90E5 +0xE055 0x90E9 +0xE056 0x90EA +0xE057 0x90EC +0xE058 0x90EE +0xE059 0x90F0 +0xE05A 0x90F1 +0xE05B 0x90F2 +0xE05C 0x90F3 +0xE05D 0x90F5 +0xE05E 0x90F6 +0xE05F 0x90F7 +0xE060 0x90F9 +0xE061 0x90FA +0xE062 0x90FB +0xE063 0x90FC +0xE064 0x90FF +0xE065 0x9100 +0xE066 0x9101 +0xE067 0x9103 +0xE068 0x9105 +0xE069 0x9106 +0xE06A 0x9107 +0xE06B 0x9108 +0xE06C 0x9109 +0xE06D 0x910A +0xE06E 0x910B +0xE06F 0x910C +0xE070 0x910D +0xE071 0x910E +0xE072 0x910F +0xE073 0x9110 +0xE074 0x9111 +0xE075 0x9112 +0xE076 0x9113 +0xE077 0x9114 +0xE078 0x9115 +0xE079 0x9116 +0xE07A 0x9117 +0xE07B 0x9118 +0xE07C 0x911A +0xE07D 0x911B +0xE07E 0x911C +0xE080 0x911D +0xE081 0x911F +0xE082 0x9120 +0xE083 0x9121 +0xE084 0x9124 +0xE085 0x9125 +0xE086 0x9126 +0xE087 0x9127 +0xE088 0x9128 +0xE089 0x9129 +0xE08A 0x912A +0xE08B 0x912B +0xE08C 0x912C +0xE08D 0x912D +0xE08E 0x912E +0xE08F 0x9130 +0xE090 0x9132 +0xE091 0x9133 +0xE092 0x9134 +0xE093 0x9135 +0xE094 0x9136 +0xE095 0x9137 +0xE096 0x9138 +0xE097 0x913A +0xE098 0x913B +0xE099 0x913C +0xE09A 0x913D +0xE09B 0x913E +0xE09C 0x913F +0xE09D 0x9140 +0xE09E 0x9141 +0xE09F 0x9142 +0xE0A0 0x9144 +0xE0A1 0x5537 +0xE0A2 0x5556 +0xE0A3 0x5575 +0xE0A4 0x5576 +0xE0A5 0x5577 +0xE0A6 0x5533 +0xE0A7 0x5530 +0xE0A8 0x555C +0xE0A9 0x558B +0xE0AA 0x55D2 +0xE0AB 0x5583 +0xE0AC 0x55B1 +0xE0AD 0x55B9 +0xE0AE 0x5588 +0xE0AF 0x5581 +0xE0B0 0x559F +0xE0B1 0x557E +0xE0B2 0x55D6 +0xE0B3 0x5591 +0xE0B4 0x557B +0xE0B5 0x55DF +0xE0B6 0x55BD +0xE0B7 0x55BE +0xE0B8 0x5594 +0xE0B9 0x5599 +0xE0BA 0x55EA +0xE0BB 0x55F7 +0xE0BC 0x55C9 +0xE0BD 0x561F +0xE0BE 0x55D1 +0xE0BF 0x55EB +0xE0C0 0x55EC +0xE0C1 0x55D4 +0xE0C2 0x55E6 +0xE0C3 0x55DD +0xE0C4 0x55C4 +0xE0C5 0x55EF +0xE0C6 0x55E5 +0xE0C7 0x55F2 +0xE0C8 0x55F3 +0xE0C9 0x55CC +0xE0CA 0x55CD +0xE0CB 0x55E8 +0xE0CC 0x55F5 +0xE0CD 0x55E4 +0xE0CE 0x8F94 +0xE0CF 0x561E +0xE0D0 0x5608 +0xE0D1 0x560C +0xE0D2 0x5601 +0xE0D3 0x5624 +0xE0D4 0x5623 +0xE0D5 0x55FE +0xE0D6 0x5600 +0xE0D7 0x5627 +0xE0D8 0x562D +0xE0D9 0x5658 +0xE0DA 0x5639 +0xE0DB 0x5657 +0xE0DC 0x562C +0xE0DD 0x564D +0xE0DE 0x5662 +0xE0DF 0x5659 +0xE0E0 0x565C +0xE0E1 0x564C +0xE0E2 0x5654 +0xE0E3 0x5686 +0xE0E4 0x5664 +0xE0E5 0x5671 +0xE0E6 0x566B +0xE0E7 0x567B +0xE0E8 0x567C +0xE0E9 0x5685 +0xE0EA 0x5693 +0xE0EB 0x56AF +0xE0EC 0x56D4 +0xE0ED 0x56D7 +0xE0EE 0x56DD +0xE0EF 0x56E1 +0xE0F0 0x56F5 +0xE0F1 0x56EB +0xE0F2 0x56F9 +0xE0F3 0x56FF +0xE0F4 0x5704 +0xE0F5 0x570A +0xE0F6 0x5709 +0xE0F7 0x571C +0xE0F8 0x5E0F +0xE0F9 0x5E19 +0xE0FA 0x5E14 +0xE0FB 0x5E11 +0xE0FC 0x5E31 +0xE0FD 0x5E3B +0xE0FE 0x5E3C +0xE140 0x9145 +0xE141 0x9147 +0xE142 0x9148 +0xE143 0x9151 +0xE144 0x9153 +0xE145 0x9154 +0xE146 0x9155 +0xE147 0x9156 +0xE148 0x9158 +0xE149 0x9159 +0xE14A 0x915B +0xE14B 0x915C +0xE14C 0x915F +0xE14D 0x9160 +0xE14E 0x9166 +0xE14F 0x9167 +0xE150 0x9168 +0xE151 0x916B +0xE152 0x916D +0xE153 0x9173 +0xE154 0x917A +0xE155 0x917B +0xE156 0x917C +0xE157 0x9180 +0xE158 0x9181 +0xE159 0x9182 +0xE15A 0x9183 +0xE15B 0x9184 +0xE15C 0x9186 +0xE15D 0x9188 +0xE15E 0x918A +0xE15F 0x918E +0xE160 0x918F +0xE161 0x9193 +0xE162 0x9194 +0xE163 0x9195 +0xE164 0x9196 +0xE165 0x9197 +0xE166 0x9198 +0xE167 0x9199 +0xE168 0x919C +0xE169 0x919D +0xE16A 0x919E +0xE16B 0x919F +0xE16C 0x91A0 +0xE16D 0x91A1 +0xE16E 0x91A4 +0xE16F 0x91A5 +0xE170 0x91A6 +0xE171 0x91A7 +0xE172 0x91A8 +0xE173 0x91A9 +0xE174 0x91AB +0xE175 0x91AC +0xE176 0x91B0 +0xE177 0x91B1 +0xE178 0x91B2 +0xE179 0x91B3 +0xE17A 0x91B6 +0xE17B 0x91B7 +0xE17C 0x91B8 +0xE17D 0x91B9 +0xE17E 0x91BB +0xE180 0x91BC +0xE181 0x91BD +0xE182 0x91BE +0xE183 0x91BF +0xE184 0x91C0 +0xE185 0x91C1 +0xE186 0x91C2 +0xE187 0x91C3 +0xE188 0x91C4 +0xE189 0x91C5 +0xE18A 0x91C6 +0xE18B 0x91C8 +0xE18C 0x91CB +0xE18D 0x91D0 +0xE18E 0x91D2 +0xE18F 0x91D3 +0xE190 0x91D4 +0xE191 0x91D5 +0xE192 0x91D6 +0xE193 0x91D7 +0xE194 0x91D8 +0xE195 0x91D9 +0xE196 0x91DA +0xE197 0x91DB +0xE198 0x91DD +0xE199 0x91DE +0xE19A 0x91DF +0xE19B 0x91E0 +0xE19C 0x91E1 +0xE19D 0x91E2 +0xE19E 0x91E3 +0xE19F 0x91E4 +0xE1A0 0x91E5 +0xE1A1 0x5E37 +0xE1A2 0x5E44 +0xE1A3 0x5E54 +0xE1A4 0x5E5B +0xE1A5 0x5E5E +0xE1A6 0x5E61 +0xE1A7 0x5C8C +0xE1A8 0x5C7A +0xE1A9 0x5C8D +0xE1AA 0x5C90 +0xE1AB 0x5C96 +0xE1AC 0x5C88 +0xE1AD 0x5C98 +0xE1AE 0x5C99 +0xE1AF 0x5C91 +0xE1B0 0x5C9A +0xE1B1 0x5C9C +0xE1B2 0x5CB5 +0xE1B3 0x5CA2 +0xE1B4 0x5CBD +0xE1B5 0x5CAC +0xE1B6 0x5CAB +0xE1B7 0x5CB1 +0xE1B8 0x5CA3 +0xE1B9 0x5CC1 +0xE1BA 0x5CB7 +0xE1BB 0x5CC4 +0xE1BC 0x5CD2 +0xE1BD 0x5CE4 +0xE1BE 0x5CCB +0xE1BF 0x5CE5 +0xE1C0 0x5D02 +0xE1C1 0x5D03 +0xE1C2 0x5D27 +0xE1C3 0x5D26 +0xE1C4 0x5D2E +0xE1C5 0x5D24 +0xE1C6 0x5D1E +0xE1C7 0x5D06 +0xE1C8 0x5D1B +0xE1C9 0x5D58 +0xE1CA 0x5D3E +0xE1CB 0x5D34 +0xE1CC 0x5D3D +0xE1CD 0x5D6C +0xE1CE 0x5D5B +0xE1CF 0x5D6F +0xE1D0 0x5D5D +0xE1D1 0x5D6B +0xE1D2 0x5D4B +0xE1D3 0x5D4A +0xE1D4 0x5D69 +0xE1D5 0x5D74 +0xE1D6 0x5D82 +0xE1D7 0x5D99 +0xE1D8 0x5D9D +0xE1D9 0x8C73 +0xE1DA 0x5DB7 +0xE1DB 0x5DC5 +0xE1DC 0x5F73 +0xE1DD 0x5F77 +0xE1DE 0x5F82 +0xE1DF 0x5F87 +0xE1E0 0x5F89 +0xE1E1 0x5F8C +0xE1E2 0x5F95 +0xE1E3 0x5F99 +0xE1E4 0x5F9C +0xE1E5 0x5FA8 +0xE1E6 0x5FAD +0xE1E7 0x5FB5 +0xE1E8 0x5FBC +0xE1E9 0x8862 +0xE1EA 0x5F61 +0xE1EB 0x72AD +0xE1EC 0x72B0 +0xE1ED 0x72B4 +0xE1EE 0x72B7 +0xE1EF 0x72B8 +0xE1F0 0x72C3 +0xE1F1 0x72C1 +0xE1F2 0x72CE +0xE1F3 0x72CD +0xE1F4 0x72D2 +0xE1F5 0x72E8 +0xE1F6 0x72EF +0xE1F7 0x72E9 +0xE1F8 0x72F2 +0xE1F9 0x72F4 +0xE1FA 0x72F7 +0xE1FB 0x7301 +0xE1FC 0x72F3 +0xE1FD 0x7303 +0xE1FE 0x72FA +0xE240 0x91E6 +0xE241 0x91E7 +0xE242 0x91E8 +0xE243 0x91E9 +0xE244 0x91EA +0xE245 0x91EB +0xE246 0x91EC +0xE247 0x91ED +0xE248 0x91EE +0xE249 0x91EF +0xE24A 0x91F0 +0xE24B 0x91F1 +0xE24C 0x91F2 +0xE24D 0x91F3 +0xE24E 0x91F4 +0xE24F 0x91F5 +0xE250 0x91F6 +0xE251 0x91F7 +0xE252 0x91F8 +0xE253 0x91F9 +0xE254 0x91FA +0xE255 0x91FB +0xE256 0x91FC +0xE257 0x91FD +0xE258 0x91FE +0xE259 0x91FF +0xE25A 0x9200 +0xE25B 0x9201 +0xE25C 0x9202 +0xE25D 0x9203 +0xE25E 0x9204 +0xE25F 0x9205 +0xE260 0x9206 +0xE261 0x9207 +0xE262 0x9208 +0xE263 0x9209 +0xE264 0x920A +0xE265 0x920B +0xE266 0x920C +0xE267 0x920D +0xE268 0x920E +0xE269 0x920F +0xE26A 0x9210 +0xE26B 0x9211 +0xE26C 0x9212 +0xE26D 0x9213 +0xE26E 0x9214 +0xE26F 0x9215 +0xE270 0x9216 +0xE271 0x9217 +0xE272 0x9218 +0xE273 0x9219 +0xE274 0x921A +0xE275 0x921B +0xE276 0x921C +0xE277 0x921D +0xE278 0x921E +0xE279 0x921F +0xE27A 0x9220 +0xE27B 0x9221 +0xE27C 0x9222 +0xE27D 0x9223 +0xE27E 0x9224 +0xE280 0x9225 +0xE281 0x9226 +0xE282 0x9227 +0xE283 0x9228 +0xE284 0x9229 +0xE285 0x922A +0xE286 0x922B +0xE287 0x922C +0xE288 0x922D +0xE289 0x922E +0xE28A 0x922F +0xE28B 0x9230 +0xE28C 0x9231 +0xE28D 0x9232 +0xE28E 0x9233 +0xE28F 0x9234 +0xE290 0x9235 +0xE291 0x9236 +0xE292 0x9237 +0xE293 0x9238 +0xE294 0x9239 +0xE295 0x923A +0xE296 0x923B +0xE297 0x923C +0xE298 0x923D +0xE299 0x923E +0xE29A 0x923F +0xE29B 0x9240 +0xE29C 0x9241 +0xE29D 0x9242 +0xE29E 0x9243 +0xE29F 0x9244 +0xE2A0 0x9245 +0xE2A1 0x72FB +0xE2A2 0x7317 +0xE2A3 0x7313 +0xE2A4 0x7321 +0xE2A5 0x730A +0xE2A6 0x731E +0xE2A7 0x731D +0xE2A8 0x7315 +0xE2A9 0x7322 +0xE2AA 0x7339 +0xE2AB 0x7325 +0xE2AC 0x732C +0xE2AD 0x7338 +0xE2AE 0x7331 +0xE2AF 0x7350 +0xE2B0 0x734D +0xE2B1 0x7357 +0xE2B2 0x7360 +0xE2B3 0x736C +0xE2B4 0x736F +0xE2B5 0x737E +0xE2B6 0x821B +0xE2B7 0x5925 +0xE2B8 0x98E7 +0xE2B9 0x5924 +0xE2BA 0x5902 +0xE2BB 0x9963 +0xE2BC 0x9967 +0xE2BD 0x9968 +0xE2BE 0x9969 +0xE2BF 0x996A +0xE2C0 0x996B +0xE2C1 0x996C +0xE2C2 0x9974 +0xE2C3 0x9977 +0xE2C4 0x997D +0xE2C5 0x9980 +0xE2C6 0x9984 +0xE2C7 0x9987 +0xE2C8 0x998A +0xE2C9 0x998D +0xE2CA 0x9990 +0xE2CB 0x9991 +0xE2CC 0x9993 +0xE2CD 0x9994 +0xE2CE 0x9995 +0xE2CF 0x5E80 +0xE2D0 0x5E91 +0xE2D1 0x5E8B +0xE2D2 0x5E96 +0xE2D3 0x5EA5 +0xE2D4 0x5EA0 +0xE2D5 0x5EB9 +0xE2D6 0x5EB5 +0xE2D7 0x5EBE +0xE2D8 0x5EB3 +0xE2D9 0x8D53 +0xE2DA 0x5ED2 +0xE2DB 0x5ED1 +0xE2DC 0x5EDB +0xE2DD 0x5EE8 +0xE2DE 0x5EEA +0xE2DF 0x81BA +0xE2E0 0x5FC4 +0xE2E1 0x5FC9 +0xE2E2 0x5FD6 +0xE2E3 0x5FCF +0xE2E4 0x6003 +0xE2E5 0x5FEE +0xE2E6 0x6004 +0xE2E7 0x5FE1 +0xE2E8 0x5FE4 +0xE2E9 0x5FFE +0xE2EA 0x6005 +0xE2EB 0x6006 +0xE2EC 0x5FEA +0xE2ED 0x5FED +0xE2EE 0x5FF8 +0xE2EF 0x6019 +0xE2F0 0x6035 +0xE2F1 0x6026 +0xE2F2 0x601B +0xE2F3 0x600F +0xE2F4 0x600D +0xE2F5 0x6029 +0xE2F6 0x602B +0xE2F7 0x600A +0xE2F8 0x603F +0xE2F9 0x6021 +0xE2FA 0x6078 +0xE2FB 0x6079 +0xE2FC 0x607B +0xE2FD 0x607A +0xE2FE 0x6042 +0xE340 0x9246 +0xE341 0x9247 +0xE342 0x9248 +0xE343 0x9249 +0xE344 0x924A +0xE345 0x924B +0xE346 0x924C +0xE347 0x924D +0xE348 0x924E +0xE349 0x924F +0xE34A 0x9250 +0xE34B 0x9251 +0xE34C 0x9252 +0xE34D 0x9253 +0xE34E 0x9254 +0xE34F 0x9255 +0xE350 0x9256 +0xE351 0x9257 +0xE352 0x9258 +0xE353 0x9259 +0xE354 0x925A +0xE355 0x925B +0xE356 0x925C +0xE357 0x925D +0xE358 0x925E +0xE359 0x925F +0xE35A 0x9260 +0xE35B 0x9261 +0xE35C 0x9262 +0xE35D 0x9263 +0xE35E 0x9264 +0xE35F 0x9265 +0xE360 0x9266 +0xE361 0x9267 +0xE362 0x9268 +0xE363 0x9269 +0xE364 0x926A +0xE365 0x926B +0xE366 0x926C +0xE367 0x926D +0xE368 0x926E +0xE369 0x926F +0xE36A 0x9270 +0xE36B 0x9271 +0xE36C 0x9272 +0xE36D 0x9273 +0xE36E 0x9275 +0xE36F 0x9276 +0xE370 0x9277 +0xE371 0x9278 +0xE372 0x9279 +0xE373 0x927A +0xE374 0x927B +0xE375 0x927C +0xE376 0x927D +0xE377 0x927E +0xE378 0x927F +0xE379 0x9280 +0xE37A 0x9281 +0xE37B 0x9282 +0xE37C 0x9283 +0xE37D 0x9284 +0xE37E 0x9285 +0xE380 0x9286 +0xE381 0x9287 +0xE382 0x9288 +0xE383 0x9289 +0xE384 0x928A +0xE385 0x928B +0xE386 0x928C +0xE387 0x928D +0xE388 0x928F +0xE389 0x9290 +0xE38A 0x9291 +0xE38B 0x9292 +0xE38C 0x9293 +0xE38D 0x9294 +0xE38E 0x9295 +0xE38F 0x9296 +0xE390 0x9297 +0xE391 0x9298 +0xE392 0x9299 +0xE393 0x929A +0xE394 0x929B +0xE395 0x929C +0xE396 0x929D +0xE397 0x929E +0xE398 0x929F +0xE399 0x92A0 +0xE39A 0x92A1 +0xE39B 0x92A2 +0xE39C 0x92A3 +0xE39D 0x92A4 +0xE39E 0x92A5 +0xE39F 0x92A6 +0xE3A0 0x92A7 +0xE3A1 0x606A +0xE3A2 0x607D +0xE3A3 0x6096 +0xE3A4 0x609A +0xE3A5 0x60AD +0xE3A6 0x609D +0xE3A7 0x6083 +0xE3A8 0x6092 +0xE3A9 0x608C +0xE3AA 0x609B +0xE3AB 0x60EC +0xE3AC 0x60BB +0xE3AD 0x60B1 +0xE3AE 0x60DD +0xE3AF 0x60D8 +0xE3B0 0x60C6 +0xE3B1 0x60DA +0xE3B2 0x60B4 +0xE3B3 0x6120 +0xE3B4 0x6126 +0xE3B5 0x6115 +0xE3B6 0x6123 +0xE3B7 0x60F4 +0xE3B8 0x6100 +0xE3B9 0x610E +0xE3BA 0x612B +0xE3BB 0x614A +0xE3BC 0x6175 +0xE3BD 0x61AC +0xE3BE 0x6194 +0xE3BF 0x61A7 +0xE3C0 0x61B7 +0xE3C1 0x61D4 +0xE3C2 0x61F5 +0xE3C3 0x5FDD +0xE3C4 0x96B3 +0xE3C5 0x95E9 +0xE3C6 0x95EB +0xE3C7 0x95F1 +0xE3C8 0x95F3 +0xE3C9 0x95F5 +0xE3CA 0x95F6 +0xE3CB 0x95FC +0xE3CC 0x95FE +0xE3CD 0x9603 +0xE3CE 0x9604 +0xE3CF 0x9606 +0xE3D0 0x9608 +0xE3D1 0x960A +0xE3D2 0x960B +0xE3D3 0x960C +0xE3D4 0x960D +0xE3D5 0x960F +0xE3D6 0x9612 +0xE3D7 0x9615 +0xE3D8 0x9616 +0xE3D9 0x9617 +0xE3DA 0x9619 +0xE3DB 0x961A +0xE3DC 0x4E2C +0xE3DD 0x723F +0xE3DE 0x6215 +0xE3DF 0x6C35 +0xE3E0 0x6C54 +0xE3E1 0x6C5C +0xE3E2 0x6C4A +0xE3E3 0x6CA3 +0xE3E4 0x6C85 +0xE3E5 0x6C90 +0xE3E6 0x6C94 +0xE3E7 0x6C8C +0xE3E8 0x6C68 +0xE3E9 0x6C69 +0xE3EA 0x6C74 +0xE3EB 0x6C76 +0xE3EC 0x6C86 +0xE3ED 0x6CA9 +0xE3EE 0x6CD0 +0xE3EF 0x6CD4 +0xE3F0 0x6CAD +0xE3F1 0x6CF7 +0xE3F2 0x6CF8 +0xE3F3 0x6CF1 +0xE3F4 0x6CD7 +0xE3F5 0x6CB2 +0xE3F6 0x6CE0 +0xE3F7 0x6CD6 +0xE3F8 0x6CFA +0xE3F9 0x6CEB +0xE3FA 0x6CEE +0xE3FB 0x6CB1 +0xE3FC 0x6CD3 +0xE3FD 0x6CEF +0xE3FE 0x6CFE +0xE440 0x92A8 +0xE441 0x92A9 +0xE442 0x92AA +0xE443 0x92AB +0xE444 0x92AC +0xE445 0x92AD +0xE446 0x92AF +0xE447 0x92B0 +0xE448 0x92B1 +0xE449 0x92B2 +0xE44A 0x92B3 +0xE44B 0x92B4 +0xE44C 0x92B5 +0xE44D 0x92B6 +0xE44E 0x92B7 +0xE44F 0x92B8 +0xE450 0x92B9 +0xE451 0x92BA +0xE452 0x92BB +0xE453 0x92BC +0xE454 0x92BD +0xE455 0x92BE +0xE456 0x92BF +0xE457 0x92C0 +0xE458 0x92C1 +0xE459 0x92C2 +0xE45A 0x92C3 +0xE45B 0x92C4 +0xE45C 0x92C5 +0xE45D 0x92C6 +0xE45E 0x92C7 +0xE45F 0x92C9 +0xE460 0x92CA +0xE461 0x92CB +0xE462 0x92CC +0xE463 0x92CD +0xE464 0x92CE +0xE465 0x92CF +0xE466 0x92D0 +0xE467 0x92D1 +0xE468 0x92D2 +0xE469 0x92D3 +0xE46A 0x92D4 +0xE46B 0x92D5 +0xE46C 0x92D6 +0xE46D 0x92D7 +0xE46E 0x92D8 +0xE46F 0x92D9 +0xE470 0x92DA +0xE471 0x92DB +0xE472 0x92DC +0xE473 0x92DD +0xE474 0x92DE +0xE475 0x92DF +0xE476 0x92E0 +0xE477 0x92E1 +0xE478 0x92E2 +0xE479 0x92E3 +0xE47A 0x92E4 +0xE47B 0x92E5 +0xE47C 0x92E6 +0xE47D 0x92E7 +0xE47E 0x92E8 +0xE480 0x92E9 +0xE481 0x92EA +0xE482 0x92EB +0xE483 0x92EC +0xE484 0x92ED +0xE485 0x92EE +0xE486 0x92EF +0xE487 0x92F0 +0xE488 0x92F1 +0xE489 0x92F2 +0xE48A 0x92F3 +0xE48B 0x92F4 +0xE48C 0x92F5 +0xE48D 0x92F6 +0xE48E 0x92F7 +0xE48F 0x92F8 +0xE490 0x92F9 +0xE491 0x92FA +0xE492 0x92FB +0xE493 0x92FC +0xE494 0x92FD +0xE495 0x92FE +0xE496 0x92FF +0xE497 0x9300 +0xE498 0x9301 +0xE499 0x9302 +0xE49A 0x9303 +0xE49B 0x9304 +0xE49C 0x9305 +0xE49D 0x9306 +0xE49E 0x9307 +0xE49F 0x9308 +0xE4A0 0x9309 +0xE4A1 0x6D39 +0xE4A2 0x6D27 +0xE4A3 0x6D0C +0xE4A4 0x6D43 +0xE4A5 0x6D48 +0xE4A6 0x6D07 +0xE4A7 0x6D04 +0xE4A8 0x6D19 +0xE4A9 0x6D0E +0xE4AA 0x6D2B +0xE4AB 0x6D4D +0xE4AC 0x6D2E +0xE4AD 0x6D35 +0xE4AE 0x6D1A +0xE4AF 0x6D4F +0xE4B0 0x6D52 +0xE4B1 0x6D54 +0xE4B2 0x6D33 +0xE4B3 0x6D91 +0xE4B4 0x6D6F +0xE4B5 0x6D9E +0xE4B6 0x6DA0 +0xE4B7 0x6D5E +0xE4B8 0x6D93 +0xE4B9 0x6D94 +0xE4BA 0x6D5C +0xE4BB 0x6D60 +0xE4BC 0x6D7C +0xE4BD 0x6D63 +0xE4BE 0x6E1A +0xE4BF 0x6DC7 +0xE4C0 0x6DC5 +0xE4C1 0x6DDE +0xE4C2 0x6E0E +0xE4C3 0x6DBF +0xE4C4 0x6DE0 +0xE4C5 0x6E11 +0xE4C6 0x6DE6 +0xE4C7 0x6DDD +0xE4C8 0x6DD9 +0xE4C9 0x6E16 +0xE4CA 0x6DAB +0xE4CB 0x6E0C +0xE4CC 0x6DAE +0xE4CD 0x6E2B +0xE4CE 0x6E6E +0xE4CF 0x6E4E +0xE4D0 0x6E6B +0xE4D1 0x6EB2 +0xE4D2 0x6E5F +0xE4D3 0x6E86 +0xE4D4 0x6E53 +0xE4D5 0x6E54 +0xE4D6 0x6E32 +0xE4D7 0x6E25 +0xE4D8 0x6E44 +0xE4D9 0x6EDF +0xE4DA 0x6EB1 +0xE4DB 0x6E98 +0xE4DC 0x6EE0 +0xE4DD 0x6F2D +0xE4DE 0x6EE2 +0xE4DF 0x6EA5 +0xE4E0 0x6EA7 +0xE4E1 0x6EBD +0xE4E2 0x6EBB +0xE4E3 0x6EB7 +0xE4E4 0x6ED7 +0xE4E5 0x6EB4 +0xE4E6 0x6ECF +0xE4E7 0x6E8F +0xE4E8 0x6EC2 +0xE4E9 0x6E9F +0xE4EA 0x6F62 +0xE4EB 0x6F46 +0xE4EC 0x6F47 +0xE4ED 0x6F24 +0xE4EE 0x6F15 +0xE4EF 0x6EF9 +0xE4F0 0x6F2F +0xE4F1 0x6F36 +0xE4F2 0x6F4B +0xE4F3 0x6F74 +0xE4F4 0x6F2A +0xE4F5 0x6F09 +0xE4F6 0x6F29 +0xE4F7 0x6F89 +0xE4F8 0x6F8D +0xE4F9 0x6F8C +0xE4FA 0x6F78 +0xE4FB 0x6F72 +0xE4FC 0x6F7C +0xE4FD 0x6F7A +0xE4FE 0x6FD1 +0xE540 0x930A +0xE541 0x930B +0xE542 0x930C +0xE543 0x930D +0xE544 0x930E +0xE545 0x930F +0xE546 0x9310 +0xE547 0x9311 +0xE548 0x9312 +0xE549 0x9313 +0xE54A 0x9314 +0xE54B 0x9315 +0xE54C 0x9316 +0xE54D 0x9317 +0xE54E 0x9318 +0xE54F 0x9319 +0xE550 0x931A +0xE551 0x931B +0xE552 0x931C +0xE553 0x931D +0xE554 0x931E +0xE555 0x931F +0xE556 0x9320 +0xE557 0x9321 +0xE558 0x9322 +0xE559 0x9323 +0xE55A 0x9324 +0xE55B 0x9325 +0xE55C 0x9326 +0xE55D 0x9327 +0xE55E 0x9328 +0xE55F 0x9329 +0xE560 0x932A +0xE561 0x932B +0xE562 0x932C +0xE563 0x932D +0xE564 0x932E +0xE565 0x932F +0xE566 0x9330 +0xE567 0x9331 +0xE568 0x9332 +0xE569 0x9333 +0xE56A 0x9334 +0xE56B 0x9335 +0xE56C 0x9336 +0xE56D 0x9337 +0xE56E 0x9338 +0xE56F 0x9339 +0xE570 0x933A +0xE571 0x933B +0xE572 0x933C +0xE573 0x933D +0xE574 0x933F +0xE575 0x9340 +0xE576 0x9341 +0xE577 0x9342 +0xE578 0x9343 +0xE579 0x9344 +0xE57A 0x9345 +0xE57B 0x9346 +0xE57C 0x9347 +0xE57D 0x9348 +0xE57E 0x9349 +0xE580 0x934A +0xE581 0x934B +0xE582 0x934C +0xE583 0x934D +0xE584 0x934E +0xE585 0x934F +0xE586 0x9350 +0xE587 0x9351 +0xE588 0x9352 +0xE589 0x9353 +0xE58A 0x9354 +0xE58B 0x9355 +0xE58C 0x9356 +0xE58D 0x9357 +0xE58E 0x9358 +0xE58F 0x9359 +0xE590 0x935A +0xE591 0x935B +0xE592 0x935C +0xE593 0x935D +0xE594 0x935E +0xE595 0x935F +0xE596 0x9360 +0xE597 0x9361 +0xE598 0x9362 +0xE599 0x9363 +0xE59A 0x9364 +0xE59B 0x9365 +0xE59C 0x9366 +0xE59D 0x9367 +0xE59E 0x9368 +0xE59F 0x9369 +0xE5A0 0x936B +0xE5A1 0x6FC9 +0xE5A2 0x6FA7 +0xE5A3 0x6FB9 +0xE5A4 0x6FB6 +0xE5A5 0x6FC2 +0xE5A6 0x6FE1 +0xE5A7 0x6FEE +0xE5A8 0x6FDE +0xE5A9 0x6FE0 +0xE5AA 0x6FEF +0xE5AB 0x701A +0xE5AC 0x7023 +0xE5AD 0x701B +0xE5AE 0x7039 +0xE5AF 0x7035 +0xE5B0 0x704F +0xE5B1 0x705E +0xE5B2 0x5B80 +0xE5B3 0x5B84 +0xE5B4 0x5B95 +0xE5B5 0x5B93 +0xE5B6 0x5BA5 +0xE5B7 0x5BB8 +0xE5B8 0x752F +0xE5B9 0x9A9E +0xE5BA 0x6434 +0xE5BB 0x5BE4 +0xE5BC 0x5BEE +0xE5BD 0x8930 +0xE5BE 0x5BF0 +0xE5BF 0x8E47 +0xE5C0 0x8B07 +0xE5C1 0x8FB6 +0xE5C2 0x8FD3 +0xE5C3 0x8FD5 +0xE5C4 0x8FE5 +0xE5C5 0x8FEE +0xE5C6 0x8FE4 +0xE5C7 0x8FE9 +0xE5C8 0x8FE6 +0xE5C9 0x8FF3 +0xE5CA 0x8FE8 +0xE5CB 0x9005 +0xE5CC 0x9004 +0xE5CD 0x900B +0xE5CE 0x9026 +0xE5CF 0x9011 +0xE5D0 0x900D +0xE5D1 0x9016 +0xE5D2 0x9021 +0xE5D3 0x9035 +0xE5D4 0x9036 +0xE5D5 0x902D +0xE5D6 0x902F +0xE5D7 0x9044 +0xE5D8 0x9051 +0xE5D9 0x9052 +0xE5DA 0x9050 +0xE5DB 0x9068 +0xE5DC 0x9058 +0xE5DD 0x9062 +0xE5DE 0x905B +0xE5DF 0x66B9 +0xE5E0 0x9074 +0xE5E1 0x907D +0xE5E2 0x9082 +0xE5E3 0x9088 +0xE5E4 0x9083 +0xE5E5 0x908B +0xE5E6 0x5F50 +0xE5E7 0x5F57 +0xE5E8 0x5F56 +0xE5E9 0x5F58 +0xE5EA 0x5C3B +0xE5EB 0x54AB +0xE5EC 0x5C50 +0xE5ED 0x5C59 +0xE5EE 0x5B71 +0xE5EF 0x5C63 +0xE5F0 0x5C66 +0xE5F1 0x7FBC +0xE5F2 0x5F2A +0xE5F3 0x5F29 +0xE5F4 0x5F2D +0xE5F5 0x8274 +0xE5F6 0x5F3C +0xE5F7 0x9B3B +0xE5F8 0x5C6E +0xE5F9 0x5981 +0xE5FA 0x5983 +0xE5FB 0x598D +0xE5FC 0x59A9 +0xE5FD 0x59AA +0xE5FE 0x59A3 +0xE640 0x936C +0xE641 0x936D +0xE642 0x936E +0xE643 0x936F +0xE644 0x9370 +0xE645 0x9371 +0xE646 0x9372 +0xE647 0x9373 +0xE648 0x9374 +0xE649 0x9375 +0xE64A 0x9376 +0xE64B 0x9377 +0xE64C 0x9378 +0xE64D 0x9379 +0xE64E 0x937A +0xE64F 0x937B +0xE650 0x937C +0xE651 0x937D +0xE652 0x937E +0xE653 0x937F +0xE654 0x9380 +0xE655 0x9381 +0xE656 0x9382 +0xE657 0x9383 +0xE658 0x9384 +0xE659 0x9385 +0xE65A 0x9386 +0xE65B 0x9387 +0xE65C 0x9388 +0xE65D 0x9389 +0xE65E 0x938A +0xE65F 0x938B +0xE660 0x938C +0xE661 0x938D +0xE662 0x938E +0xE663 0x9390 +0xE664 0x9391 +0xE665 0x9392 +0xE666 0x9393 +0xE667 0x9394 +0xE668 0x9395 +0xE669 0x9396 +0xE66A 0x9397 +0xE66B 0x9398 +0xE66C 0x9399 +0xE66D 0x939A +0xE66E 0x939B +0xE66F 0x939C +0xE670 0x939D +0xE671 0x939E +0xE672 0x939F +0xE673 0x93A0 +0xE674 0x93A1 +0xE675 0x93A2 +0xE676 0x93A3 +0xE677 0x93A4 +0xE678 0x93A5 +0xE679 0x93A6 +0xE67A 0x93A7 +0xE67B 0x93A8 +0xE67C 0x93A9 +0xE67D 0x93AA +0xE67E 0x93AB +0xE680 0x93AC +0xE681 0x93AD +0xE682 0x93AE +0xE683 0x93AF +0xE684 0x93B0 +0xE685 0x93B1 +0xE686 0x93B2 +0xE687 0x93B3 +0xE688 0x93B4 +0xE689 0x93B5 +0xE68A 0x93B6 +0xE68B 0x93B7 +0xE68C 0x93B8 +0xE68D 0x93B9 +0xE68E 0x93BA +0xE68F 0x93BB +0xE690 0x93BC +0xE691 0x93BD +0xE692 0x93BE +0xE693 0x93BF +0xE694 0x93C0 +0xE695 0x93C1 +0xE696 0x93C2 +0xE697 0x93C3 +0xE698 0x93C4 +0xE699 0x93C5 +0xE69A 0x93C6 +0xE69B 0x93C7 +0xE69C 0x93C8 +0xE69D 0x93C9 +0xE69E 0x93CB +0xE69F 0x93CC +0xE6A0 0x93CD +0xE6A1 0x5997 +0xE6A2 0x59CA +0xE6A3 0x59AB +0xE6A4 0x599E +0xE6A5 0x59A4 +0xE6A6 0x59D2 +0xE6A7 0x59B2 +0xE6A8 0x59AF +0xE6A9 0x59D7 +0xE6AA 0x59BE +0xE6AB 0x5A05 +0xE6AC 0x5A06 +0xE6AD 0x59DD +0xE6AE 0x5A08 +0xE6AF 0x59E3 +0xE6B0 0x59D8 +0xE6B1 0x59F9 +0xE6B2 0x5A0C +0xE6B3 0x5A09 +0xE6B4 0x5A32 +0xE6B5 0x5A34 +0xE6B6 0x5A11 +0xE6B7 0x5A23 +0xE6B8 0x5A13 +0xE6B9 0x5A40 +0xE6BA 0x5A67 +0xE6BB 0x5A4A +0xE6BC 0x5A55 +0xE6BD 0x5A3C +0xE6BE 0x5A62 +0xE6BF 0x5A75 +0xE6C0 0x80EC +0xE6C1 0x5AAA +0xE6C2 0x5A9B +0xE6C3 0x5A77 +0xE6C4 0x5A7A +0xE6C5 0x5ABE +0xE6C6 0x5AEB +0xE6C7 0x5AB2 +0xE6C8 0x5AD2 +0xE6C9 0x5AD4 +0xE6CA 0x5AB8 +0xE6CB 0x5AE0 +0xE6CC 0x5AE3 +0xE6CD 0x5AF1 +0xE6CE 0x5AD6 +0xE6CF 0x5AE6 +0xE6D0 0x5AD8 +0xE6D1 0x5ADC +0xE6D2 0x5B09 +0xE6D3 0x5B17 +0xE6D4 0x5B16 +0xE6D5 0x5B32 +0xE6D6 0x5B37 +0xE6D7 0x5B40 +0xE6D8 0x5C15 +0xE6D9 0x5C1C +0xE6DA 0x5B5A +0xE6DB 0x5B65 +0xE6DC 0x5B73 +0xE6DD 0x5B51 +0xE6DE 0x5B53 +0xE6DF 0x5B62 +0xE6E0 0x9A75 +0xE6E1 0x9A77 +0xE6E2 0x9A78 +0xE6E3 0x9A7A +0xE6E4 0x9A7F +0xE6E5 0x9A7D +0xE6E6 0x9A80 +0xE6E7 0x9A81 +0xE6E8 0x9A85 +0xE6E9 0x9A88 +0xE6EA 0x9A8A +0xE6EB 0x9A90 +0xE6EC 0x9A92 +0xE6ED 0x9A93 +0xE6EE 0x9A96 +0xE6EF 0x9A98 +0xE6F0 0x9A9B +0xE6F1 0x9A9C +0xE6F2 0x9A9D +0xE6F3 0x9A9F +0xE6F4 0x9AA0 +0xE6F5 0x9AA2 +0xE6F6 0x9AA3 +0xE6F7 0x9AA5 +0xE6F8 0x9AA7 +0xE6F9 0x7E9F +0xE6FA 0x7EA1 +0xE6FB 0x7EA3 +0xE6FC 0x7EA5 +0xE6FD 0x7EA8 +0xE6FE 0x7EA9 +0xE740 0x93CE +0xE741 0x93CF +0xE742 0x93D0 +0xE743 0x93D1 +0xE744 0x93D2 +0xE745 0x93D3 +0xE746 0x93D4 +0xE747 0x93D5 +0xE748 0x93D7 +0xE749 0x93D8 +0xE74A 0x93D9 +0xE74B 0x93DA +0xE74C 0x93DB +0xE74D 0x93DC +0xE74E 0x93DD +0xE74F 0x93DE +0xE750 0x93DF +0xE751 0x93E0 +0xE752 0x93E1 +0xE753 0x93E2 +0xE754 0x93E3 +0xE755 0x93E4 +0xE756 0x93E5 +0xE757 0x93E6 +0xE758 0x93E7 +0xE759 0x93E8 +0xE75A 0x93E9 +0xE75B 0x93EA +0xE75C 0x93EB +0xE75D 0x93EC +0xE75E 0x93ED +0xE75F 0x93EE +0xE760 0x93EF +0xE761 0x93F0 +0xE762 0x93F1 +0xE763 0x93F2 +0xE764 0x93F3 +0xE765 0x93F4 +0xE766 0x93F5 +0xE767 0x93F6 +0xE768 0x93F7 +0xE769 0x93F8 +0xE76A 0x93F9 +0xE76B 0x93FA +0xE76C 0x93FB +0xE76D 0x93FC +0xE76E 0x93FD +0xE76F 0x93FE +0xE770 0x93FF +0xE771 0x9400 +0xE772 0x9401 +0xE773 0x9402 +0xE774 0x9403 +0xE775 0x9404 +0xE776 0x9405 +0xE777 0x9406 +0xE778 0x9407 +0xE779 0x9408 +0xE77A 0x9409 +0xE77B 0x940A +0xE77C 0x940B +0xE77D 0x940C +0xE77E 0x940D +0xE780 0x940E +0xE781 0x940F +0xE782 0x9410 +0xE783 0x9411 +0xE784 0x9412 +0xE785 0x9413 +0xE786 0x9414 +0xE787 0x9415 +0xE788 0x9416 +0xE789 0x9417 +0xE78A 0x9418 +0xE78B 0x9419 +0xE78C 0x941A +0xE78D 0x941B +0xE78E 0x941C +0xE78F 0x941D +0xE790 0x941E +0xE791 0x941F +0xE792 0x9420 +0xE793 0x9421 +0xE794 0x9422 +0xE795 0x9423 +0xE796 0x9424 +0xE797 0x9425 +0xE798 0x9426 +0xE799 0x9427 +0xE79A 0x9428 +0xE79B 0x9429 +0xE79C 0x942A +0xE79D 0x942B +0xE79E 0x942C +0xE79F 0x942D +0xE7A0 0x942E +0xE7A1 0x7EAD +0xE7A2 0x7EB0 +0xE7A3 0x7EBE +0xE7A4 0x7EC0 +0xE7A5 0x7EC1 +0xE7A6 0x7EC2 +0xE7A7 0x7EC9 +0xE7A8 0x7ECB +0xE7A9 0x7ECC +0xE7AA 0x7ED0 +0xE7AB 0x7ED4 +0xE7AC 0x7ED7 +0xE7AD 0x7EDB +0xE7AE 0x7EE0 +0xE7AF 0x7EE1 +0xE7B0 0x7EE8 +0xE7B1 0x7EEB +0xE7B2 0x7EEE +0xE7B3 0x7EEF +0xE7B4 0x7EF1 +0xE7B5 0x7EF2 +0xE7B6 0x7F0D +0xE7B7 0x7EF6 +0xE7B8 0x7EFA +0xE7B9 0x7EFB +0xE7BA 0x7EFE +0xE7BB 0x7F01 +0xE7BC 0x7F02 +0xE7BD 0x7F03 +0xE7BE 0x7F07 +0xE7BF 0x7F08 +0xE7C0 0x7F0B +0xE7C1 0x7F0C +0xE7C2 0x7F0F +0xE7C3 0x7F11 +0xE7C4 0x7F12 +0xE7C5 0x7F17 +0xE7C6 0x7F19 +0xE7C7 0x7F1C +0xE7C8 0x7F1B +0xE7C9 0x7F1F +0xE7CA 0x7F21 +0xE7CB 0x7F22 +0xE7CC 0x7F23 +0xE7CD 0x7F24 +0xE7CE 0x7F25 +0xE7CF 0x7F26 +0xE7D0 0x7F27 +0xE7D1 0x7F2A +0xE7D2 0x7F2B +0xE7D3 0x7F2C +0xE7D4 0x7F2D +0xE7D5 0x7F2F +0xE7D6 0x7F30 +0xE7D7 0x7F31 +0xE7D8 0x7F32 +0xE7D9 0x7F33 +0xE7DA 0x7F35 +0xE7DB 0x5E7A +0xE7DC 0x757F +0xE7DD 0x5DDB +0xE7DE 0x753E +0xE7DF 0x9095 +0xE7E0 0x738E +0xE7E1 0x7391 +0xE7E2 0x73AE +0xE7E3 0x73A2 +0xE7E4 0x739F +0xE7E5 0x73CF +0xE7E6 0x73C2 +0xE7E7 0x73D1 +0xE7E8 0x73B7 +0xE7E9 0x73B3 +0xE7EA 0x73C0 +0xE7EB 0x73C9 +0xE7EC 0x73C8 +0xE7ED 0x73E5 +0xE7EE 0x73D9 +0xE7EF 0x987C +0xE7F0 0x740A +0xE7F1 0x73E9 +0xE7F2 0x73E7 +0xE7F3 0x73DE +0xE7F4 0x73BA +0xE7F5 0x73F2 +0xE7F6 0x740F +0xE7F7 0x742A +0xE7F8 0x745B +0xE7F9 0x7426 +0xE7FA 0x7425 +0xE7FB 0x7428 +0xE7FC 0x7430 +0xE7FD 0x742E +0xE7FE 0x742C +0xE840 0x942F +0xE841 0x9430 +0xE842 0x9431 +0xE843 0x9432 +0xE844 0x9433 +0xE845 0x9434 +0xE846 0x9435 +0xE847 0x9436 +0xE848 0x9437 +0xE849 0x9438 +0xE84A 0x9439 +0xE84B 0x943A +0xE84C 0x943B +0xE84D 0x943C +0xE84E 0x943D +0xE84F 0x943F +0xE850 0x9440 +0xE851 0x9441 +0xE852 0x9442 +0xE853 0x9443 +0xE854 0x9444 +0xE855 0x9445 +0xE856 0x9446 +0xE857 0x9447 +0xE858 0x9448 +0xE859 0x9449 +0xE85A 0x944A +0xE85B 0x944B +0xE85C 0x944C +0xE85D 0x944D +0xE85E 0x944E +0xE85F 0x944F +0xE860 0x9450 +0xE861 0x9451 +0xE862 0x9452 +0xE863 0x9453 +0xE864 0x9454 +0xE865 0x9455 +0xE866 0x9456 +0xE867 0x9457 +0xE868 0x9458 +0xE869 0x9459 +0xE86A 0x945A +0xE86B 0x945B +0xE86C 0x945C +0xE86D 0x945D +0xE86E 0x945E +0xE86F 0x945F +0xE870 0x9460 +0xE871 0x9461 +0xE872 0x9462 +0xE873 0x9463 +0xE874 0x9464 +0xE875 0x9465 +0xE876 0x9466 +0xE877 0x9467 +0xE878 0x9468 +0xE879 0x9469 +0xE87A 0x946A +0xE87B 0x946C +0xE87C 0x946D +0xE87D 0x946E +0xE87E 0x946F +0xE880 0x9470 +0xE881 0x9471 +0xE882 0x9472 +0xE883 0x9473 +0xE884 0x9474 +0xE885 0x9475 +0xE886 0x9476 +0xE887 0x9477 +0xE888 0x9478 +0xE889 0x9479 +0xE88A 0x947A +0xE88B 0x947B +0xE88C 0x947C +0xE88D 0x947D +0xE88E 0x947E +0xE88F 0x947F +0xE890 0x9480 +0xE891 0x9481 +0xE892 0x9482 +0xE893 0x9483 +0xE894 0x9484 +0xE895 0x9491 +0xE896 0x9496 +0xE897 0x9498 +0xE898 0x94C7 +0xE899 0x94CF +0xE89A 0x94D3 +0xE89B 0x94D4 +0xE89C 0x94DA +0xE89D 0x94E6 +0xE89E 0x94FB +0xE89F 0x951C +0xE8A0 0x9520 +0xE8A1 0x741B +0xE8A2 0x741A +0xE8A3 0x7441 +0xE8A4 0x745C +0xE8A5 0x7457 +0xE8A6 0x7455 +0xE8A7 0x7459 +0xE8A8 0x7477 +0xE8A9 0x746D +0xE8AA 0x747E +0xE8AB 0x749C +0xE8AC 0x748E +0xE8AD 0x7480 +0xE8AE 0x7481 +0xE8AF 0x7487 +0xE8B0 0x748B +0xE8B1 0x749E +0xE8B2 0x74A8 +0xE8B3 0x74A9 +0xE8B4 0x7490 +0xE8B5 0x74A7 +0xE8B6 0x74D2 +0xE8B7 0x74BA +0xE8B8 0x97EA +0xE8B9 0x97EB +0xE8BA 0x97EC +0xE8BB 0x674C +0xE8BC 0x6753 +0xE8BD 0x675E +0xE8BE 0x6748 +0xE8BF 0x6769 +0xE8C0 0x67A5 +0xE8C1 0x6787 +0xE8C2 0x676A +0xE8C3 0x6773 +0xE8C4 0x6798 +0xE8C5 0x67A7 +0xE8C6 0x6775 +0xE8C7 0x67A8 +0xE8C8 0x679E +0xE8C9 0x67AD +0xE8CA 0x678B +0xE8CB 0x6777 +0xE8CC 0x677C +0xE8CD 0x67F0 +0xE8CE 0x6809 +0xE8CF 0x67D8 +0xE8D0 0x680A +0xE8D1 0x67E9 +0xE8D2 0x67B0 +0xE8D3 0x680C +0xE8D4 0x67D9 +0xE8D5 0x67B5 +0xE8D6 0x67DA +0xE8D7 0x67B3 +0xE8D8 0x67DD +0xE8D9 0x6800 +0xE8DA 0x67C3 +0xE8DB 0x67B8 +0xE8DC 0x67E2 +0xE8DD 0x680E +0xE8DE 0x67C1 +0xE8DF 0x67FD +0xE8E0 0x6832 +0xE8E1 0x6833 +0xE8E2 0x6860 +0xE8E3 0x6861 +0xE8E4 0x684E +0xE8E5 0x6862 +0xE8E6 0x6844 +0xE8E7 0x6864 +0xE8E8 0x6883 +0xE8E9 0x681D +0xE8EA 0x6855 +0xE8EB 0x6866 +0xE8EC 0x6841 +0xE8ED 0x6867 +0xE8EE 0x6840 +0xE8EF 0x683E +0xE8F0 0x684A +0xE8F1 0x6849 +0xE8F2 0x6829 +0xE8F3 0x68B5 +0xE8F4 0x688F +0xE8F5 0x6874 +0xE8F6 0x6877 +0xE8F7 0x6893 +0xE8F8 0x686B +0xE8F9 0x68C2 +0xE8FA 0x696E +0xE8FB 0x68FC +0xE8FC 0x691F +0xE8FD 0x6920 +0xE8FE 0x68F9 +0xE940 0x9527 +0xE941 0x9533 +0xE942 0x953D +0xE943 0x9543 +0xE944 0x9548 +0xE945 0x954B +0xE946 0x9555 +0xE947 0x955A +0xE948 0x9560 +0xE949 0x956E +0xE94A 0x9574 +0xE94B 0x9575 +0xE94C 0x9577 +0xE94D 0x9578 +0xE94E 0x9579 +0xE94F 0x957A +0xE950 0x957B +0xE951 0x957C +0xE952 0x957D +0xE953 0x957E +0xE954 0x9580 +0xE955 0x9581 +0xE956 0x9582 +0xE957 0x9583 +0xE958 0x9584 +0xE959 0x9585 +0xE95A 0x9586 +0xE95B 0x9587 +0xE95C 0x9588 +0xE95D 0x9589 +0xE95E 0x958A +0xE95F 0x958B +0xE960 0x958C +0xE961 0x958D +0xE962 0x958E +0xE963 0x958F +0xE964 0x9590 +0xE965 0x9591 +0xE966 0x9592 +0xE967 0x9593 +0xE968 0x9594 +0xE969 0x9595 +0xE96A 0x9596 +0xE96B 0x9597 +0xE96C 0x9598 +0xE96D 0x9599 +0xE96E 0x959A +0xE96F 0x959B +0xE970 0x959C +0xE971 0x959D +0xE972 0x959E +0xE973 0x959F +0xE974 0x95A0 +0xE975 0x95A1 +0xE976 0x95A2 +0xE977 0x95A3 +0xE978 0x95A4 +0xE979 0x95A5 +0xE97A 0x95A6 +0xE97B 0x95A7 +0xE97C 0x95A8 +0xE97D 0x95A9 +0xE97E 0x95AA +0xE980 0x95AB +0xE981 0x95AC +0xE982 0x95AD +0xE983 0x95AE +0xE984 0x95AF +0xE985 0x95B0 +0xE986 0x95B1 +0xE987 0x95B2 +0xE988 0x95B3 +0xE989 0x95B4 +0xE98A 0x95B5 +0xE98B 0x95B6 +0xE98C 0x95B7 +0xE98D 0x95B8 +0xE98E 0x95B9 +0xE98F 0x95BA +0xE990 0x95BB +0xE991 0x95BC +0xE992 0x95BD +0xE993 0x95BE +0xE994 0x95BF +0xE995 0x95C0 +0xE996 0x95C1 +0xE997 0x95C2 +0xE998 0x95C3 +0xE999 0x95C4 +0xE99A 0x95C5 +0xE99B 0x95C6 +0xE99C 0x95C7 +0xE99D 0x95C8 +0xE99E 0x95C9 +0xE99F 0x95CA +0xE9A0 0x95CB +0xE9A1 0x6924 +0xE9A2 0x68F0 +0xE9A3 0x690B +0xE9A4 0x6901 +0xE9A5 0x6957 +0xE9A6 0x68E3 +0xE9A7 0x6910 +0xE9A8 0x6971 +0xE9A9 0x6939 +0xE9AA 0x6960 +0xE9AB 0x6942 +0xE9AC 0x695D +0xE9AD 0x6984 +0xE9AE 0x696B +0xE9AF 0x6980 +0xE9B0 0x6998 +0xE9B1 0x6978 +0xE9B2 0x6934 +0xE9B3 0x69CC +0xE9B4 0x6987 +0xE9B5 0x6988 +0xE9B6 0x69CE +0xE9B7 0x6989 +0xE9B8 0x6966 +0xE9B9 0x6963 +0xE9BA 0x6979 +0xE9BB 0x699B +0xE9BC 0x69A7 +0xE9BD 0x69BB +0xE9BE 0x69AB +0xE9BF 0x69AD +0xE9C0 0x69D4 +0xE9C1 0x69B1 +0xE9C2 0x69C1 +0xE9C3 0x69CA +0xE9C4 0x69DF +0xE9C5 0x6995 +0xE9C6 0x69E0 +0xE9C7 0x698D +0xE9C8 0x69FF +0xE9C9 0x6A2F +0xE9CA 0x69ED +0xE9CB 0x6A17 +0xE9CC 0x6A18 +0xE9CD 0x6A65 +0xE9CE 0x69F2 +0xE9CF 0x6A44 +0xE9D0 0x6A3E +0xE9D1 0x6AA0 +0xE9D2 0x6A50 +0xE9D3 0x6A5B +0xE9D4 0x6A35 +0xE9D5 0x6A8E +0xE9D6 0x6A79 +0xE9D7 0x6A3D +0xE9D8 0x6A28 +0xE9D9 0x6A58 +0xE9DA 0x6A7C +0xE9DB 0x6A91 +0xE9DC 0x6A90 +0xE9DD 0x6AA9 +0xE9DE 0x6A97 +0xE9DF 0x6AAB +0xE9E0 0x7337 +0xE9E1 0x7352 +0xE9E2 0x6B81 +0xE9E3 0x6B82 +0xE9E4 0x6B87 +0xE9E5 0x6B84 +0xE9E6 0x6B92 +0xE9E7 0x6B93 +0xE9E8 0x6B8D +0xE9E9 0x6B9A +0xE9EA 0x6B9B +0xE9EB 0x6BA1 +0xE9EC 0x6BAA +0xE9ED 0x8F6B +0xE9EE 0x8F6D +0xE9EF 0x8F71 +0xE9F0 0x8F72 +0xE9F1 0x8F73 +0xE9F2 0x8F75 +0xE9F3 0x8F76 +0xE9F4 0x8F78 +0xE9F5 0x8F77 +0xE9F6 0x8F79 +0xE9F7 0x8F7A +0xE9F8 0x8F7C +0xE9F9 0x8F7E +0xE9FA 0x8F81 +0xE9FB 0x8F82 +0xE9FC 0x8F84 +0xE9FD 0x8F87 +0xE9FE 0x8F8B +0xEA40 0x95CC +0xEA41 0x95CD +0xEA42 0x95CE +0xEA43 0x95CF +0xEA44 0x95D0 +0xEA45 0x95D1 +0xEA46 0x95D2 +0xEA47 0x95D3 +0xEA48 0x95D4 +0xEA49 0x95D5 +0xEA4A 0x95D6 +0xEA4B 0x95D7 +0xEA4C 0x95D8 +0xEA4D 0x95D9 +0xEA4E 0x95DA +0xEA4F 0x95DB +0xEA50 0x95DC +0xEA51 0x95DD +0xEA52 0x95DE +0xEA53 0x95DF +0xEA54 0x95E0 +0xEA55 0x95E1 +0xEA56 0x95E2 +0xEA57 0x95E3 +0xEA58 0x95E4 +0xEA59 0x95E5 +0xEA5A 0x95E6 +0xEA5B 0x95E7 +0xEA5C 0x95EC +0xEA5D 0x95FF +0xEA5E 0x9607 +0xEA5F 0x9613 +0xEA60 0x9618 +0xEA61 0x961B +0xEA62 0x961E +0xEA63 0x9620 +0xEA64 0x9623 +0xEA65 0x9624 +0xEA66 0x9625 +0xEA67 0x9626 +0xEA68 0x9627 +0xEA69 0x9628 +0xEA6A 0x9629 +0xEA6B 0x962B +0xEA6C 0x962C +0xEA6D 0x962D +0xEA6E 0x962F +0xEA6F 0x9630 +0xEA70 0x9637 +0xEA71 0x9638 +0xEA72 0x9639 +0xEA73 0x963A +0xEA74 0x963E +0xEA75 0x9641 +0xEA76 0x9643 +0xEA77 0x964A +0xEA78 0x964E +0xEA79 0x964F +0xEA7A 0x9651 +0xEA7B 0x9652 +0xEA7C 0x9653 +0xEA7D 0x9656 +0xEA7E 0x9657 +0xEA80 0x9658 +0xEA81 0x9659 +0xEA82 0x965A +0xEA83 0x965C +0xEA84 0x965D +0xEA85 0x965E +0xEA86 0x9660 +0xEA87 0x9663 +0xEA88 0x9665 +0xEA89 0x9666 +0xEA8A 0x966B +0xEA8B 0x966D +0xEA8C 0x966E +0xEA8D 0x966F +0xEA8E 0x9670 +0xEA8F 0x9671 +0xEA90 0x9673 +0xEA91 0x9678 +0xEA92 0x9679 +0xEA93 0x967A +0xEA94 0x967B +0xEA95 0x967C +0xEA96 0x967D +0xEA97 0x967E +0xEA98 0x967F +0xEA99 0x9680 +0xEA9A 0x9681 +0xEA9B 0x9682 +0xEA9C 0x9683 +0xEA9D 0x9684 +0xEA9E 0x9687 +0xEA9F 0x9689 +0xEAA0 0x968A +0xEAA1 0x8F8D +0xEAA2 0x8F8E +0xEAA3 0x8F8F +0xEAA4 0x8F98 +0xEAA5 0x8F9A +0xEAA6 0x8ECE +0xEAA7 0x620B +0xEAA8 0x6217 +0xEAA9 0x621B +0xEAAA 0x621F +0xEAAB 0x6222 +0xEAAC 0x6221 +0xEAAD 0x6225 +0xEAAE 0x6224 +0xEAAF 0x622C +0xEAB0 0x81E7 +0xEAB1 0x74EF +0xEAB2 0x74F4 +0xEAB3 0x74FF +0xEAB4 0x750F +0xEAB5 0x7511 +0xEAB6 0x7513 +0xEAB7 0x6534 +0xEAB8 0x65EE +0xEAB9 0x65EF +0xEABA 0x65F0 +0xEABB 0x660A +0xEABC 0x6619 +0xEABD 0x6772 +0xEABE 0x6603 +0xEABF 0x6615 +0xEAC0 0x6600 +0xEAC1 0x7085 +0xEAC2 0x66F7 +0xEAC3 0x661D +0xEAC4 0x6634 +0xEAC5 0x6631 +0xEAC6 0x6636 +0xEAC7 0x6635 +0xEAC8 0x8006 +0xEAC9 0x665F +0xEACA 0x6654 +0xEACB 0x6641 +0xEACC 0x664F +0xEACD 0x6656 +0xEACE 0x6661 +0xEACF 0x6657 +0xEAD0 0x6677 +0xEAD1 0x6684 +0xEAD2 0x668C +0xEAD3 0x66A7 +0xEAD4 0x669D +0xEAD5 0x66BE +0xEAD6 0x66DB +0xEAD7 0x66DC +0xEAD8 0x66E6 +0xEAD9 0x66E9 +0xEADA 0x8D32 +0xEADB 0x8D33 +0xEADC 0x8D36 +0xEADD 0x8D3B +0xEADE 0x8D3D +0xEADF 0x8D40 +0xEAE0 0x8D45 +0xEAE1 0x8D46 +0xEAE2 0x8D48 +0xEAE3 0x8D49 +0xEAE4 0x8D47 +0xEAE5 0x8D4D +0xEAE6 0x8D55 +0xEAE7 0x8D59 +0xEAE8 0x89C7 +0xEAE9 0x89CA +0xEAEA 0x89CB +0xEAEB 0x89CC +0xEAEC 0x89CE +0xEAED 0x89CF +0xEAEE 0x89D0 +0xEAEF 0x89D1 +0xEAF0 0x726E +0xEAF1 0x729F +0xEAF2 0x725D +0xEAF3 0x7266 +0xEAF4 0x726F +0xEAF5 0x727E +0xEAF6 0x727F +0xEAF7 0x7284 +0xEAF8 0x728B +0xEAF9 0x728D +0xEAFA 0x728F +0xEAFB 0x7292 +0xEAFC 0x6308 +0xEAFD 0x6332 +0xEAFE 0x63B0 +0xEB40 0x968C +0xEB41 0x968E +0xEB42 0x9691 +0xEB43 0x9692 +0xEB44 0x9693 +0xEB45 0x9695 +0xEB46 0x9696 +0xEB47 0x969A +0xEB48 0x969B +0xEB49 0x969D +0xEB4A 0x969E +0xEB4B 0x969F +0xEB4C 0x96A0 +0xEB4D 0x96A1 +0xEB4E 0x96A2 +0xEB4F 0x96A3 +0xEB50 0x96A4 +0xEB51 0x96A5 +0xEB52 0x96A6 +0xEB53 0x96A8 +0xEB54 0x96A9 +0xEB55 0x96AA +0xEB56 0x96AB +0xEB57 0x96AC +0xEB58 0x96AD +0xEB59 0x96AE +0xEB5A 0x96AF +0xEB5B 0x96B1 +0xEB5C 0x96B2 +0xEB5D 0x96B4 +0xEB5E 0x96B5 +0xEB5F 0x96B7 +0xEB60 0x96B8 +0xEB61 0x96BA +0xEB62 0x96BB +0xEB63 0x96BF +0xEB64 0x96C2 +0xEB65 0x96C3 +0xEB66 0x96C8 +0xEB67 0x96CA +0xEB68 0x96CB +0xEB69 0x96D0 +0xEB6A 0x96D1 +0xEB6B 0x96D3 +0xEB6C 0x96D4 +0xEB6D 0x96D6 +0xEB6E 0x96D7 +0xEB6F 0x96D8 +0xEB70 0x96D9 +0xEB71 0x96DA +0xEB72 0x96DB +0xEB73 0x96DC +0xEB74 0x96DD +0xEB75 0x96DE +0xEB76 0x96DF +0xEB77 0x96E1 +0xEB78 0x96E2 +0xEB79 0x96E3 +0xEB7A 0x96E4 +0xEB7B 0x96E5 +0xEB7C 0x96E6 +0xEB7D 0x96E7 +0xEB7E 0x96EB +0xEB80 0x96EC +0xEB81 0x96ED +0xEB82 0x96EE +0xEB83 0x96F0 +0xEB84 0x96F1 +0xEB85 0x96F2 +0xEB86 0x96F4 +0xEB87 0x96F5 +0xEB88 0x96F8 +0xEB89 0x96FA +0xEB8A 0x96FB +0xEB8B 0x96FC +0xEB8C 0x96FD +0xEB8D 0x96FF +0xEB8E 0x9702 +0xEB8F 0x9703 +0xEB90 0x9705 +0xEB91 0x970A +0xEB92 0x970B +0xEB93 0x970C +0xEB94 0x9710 +0xEB95 0x9711 +0xEB96 0x9712 +0xEB97 0x9714 +0xEB98 0x9715 +0xEB99 0x9717 +0xEB9A 0x9718 +0xEB9B 0x9719 +0xEB9C 0x971A +0xEB9D 0x971B +0xEB9E 0x971D +0xEB9F 0x971F +0xEBA0 0x9720 +0xEBA1 0x643F +0xEBA2 0x64D8 +0xEBA3 0x8004 +0xEBA4 0x6BEA +0xEBA5 0x6BF3 +0xEBA6 0x6BFD +0xEBA7 0x6BF5 +0xEBA8 0x6BF9 +0xEBA9 0x6C05 +0xEBAA 0x6C07 +0xEBAB 0x6C06 +0xEBAC 0x6C0D +0xEBAD 0x6C15 +0xEBAE 0x6C18 +0xEBAF 0x6C19 +0xEBB0 0x6C1A +0xEBB1 0x6C21 +0xEBB2 0x6C29 +0xEBB3 0x6C24 +0xEBB4 0x6C2A +0xEBB5 0x6C32 +0xEBB6 0x6535 +0xEBB7 0x6555 +0xEBB8 0x656B +0xEBB9 0x724D +0xEBBA 0x7252 +0xEBBB 0x7256 +0xEBBC 0x7230 +0xEBBD 0x8662 +0xEBBE 0x5216 +0xEBBF 0x809F +0xEBC0 0x809C +0xEBC1 0x8093 +0xEBC2 0x80BC +0xEBC3 0x670A +0xEBC4 0x80BD +0xEBC5 0x80B1 +0xEBC6 0x80AB +0xEBC7 0x80AD +0xEBC8 0x80B4 +0xEBC9 0x80B7 +0xEBCA 0x80E7 +0xEBCB 0x80E8 +0xEBCC 0x80E9 +0xEBCD 0x80EA +0xEBCE 0x80DB +0xEBCF 0x80C2 +0xEBD0 0x80C4 +0xEBD1 0x80D9 +0xEBD2 0x80CD +0xEBD3 0x80D7 +0xEBD4 0x6710 +0xEBD5 0x80DD +0xEBD6 0x80EB +0xEBD7 0x80F1 +0xEBD8 0x80F4 +0xEBD9 0x80ED +0xEBDA 0x810D +0xEBDB 0x810E +0xEBDC 0x80F2 +0xEBDD 0x80FC +0xEBDE 0x6715 +0xEBDF 0x8112 +0xEBE0 0x8C5A +0xEBE1 0x8136 +0xEBE2 0x811E +0xEBE3 0x812C +0xEBE4 0x8118 +0xEBE5 0x8132 +0xEBE6 0x8148 +0xEBE7 0x814C +0xEBE8 0x8153 +0xEBE9 0x8174 +0xEBEA 0x8159 +0xEBEB 0x815A +0xEBEC 0x8171 +0xEBED 0x8160 +0xEBEE 0x8169 +0xEBEF 0x817C +0xEBF0 0x817D +0xEBF1 0x816D +0xEBF2 0x8167 +0xEBF3 0x584D +0xEBF4 0x5AB5 +0xEBF5 0x8188 +0xEBF6 0x8182 +0xEBF7 0x8191 +0xEBF8 0x6ED5 +0xEBF9 0x81A3 +0xEBFA 0x81AA +0xEBFB 0x81CC +0xEBFC 0x6726 +0xEBFD 0x81CA +0xEBFE 0x81BB +0xEC40 0x9721 +0xEC41 0x9722 +0xEC42 0x9723 +0xEC43 0x9724 +0xEC44 0x9725 +0xEC45 0x9726 +0xEC46 0x9727 +0xEC47 0x9728 +0xEC48 0x9729 +0xEC49 0x972B +0xEC4A 0x972C +0xEC4B 0x972E +0xEC4C 0x972F +0xEC4D 0x9731 +0xEC4E 0x9733 +0xEC4F 0x9734 +0xEC50 0x9735 +0xEC51 0x9736 +0xEC52 0x9737 +0xEC53 0x973A +0xEC54 0x973B +0xEC55 0x973C +0xEC56 0x973D +0xEC57 0x973F +0xEC58 0x9740 +0xEC59 0x9741 +0xEC5A 0x9742 +0xEC5B 0x9743 +0xEC5C 0x9744 +0xEC5D 0x9745 +0xEC5E 0x9746 +0xEC5F 0x9747 +0xEC60 0x9748 +0xEC61 0x9749 +0xEC62 0x974A +0xEC63 0x974B +0xEC64 0x974C +0xEC65 0x974D +0xEC66 0x974E +0xEC67 0x974F +0xEC68 0x9750 +0xEC69 0x9751 +0xEC6A 0x9754 +0xEC6B 0x9755 +0xEC6C 0x9757 +0xEC6D 0x9758 +0xEC6E 0x975A +0xEC6F 0x975C +0xEC70 0x975D +0xEC71 0x975F +0xEC72 0x9763 +0xEC73 0x9764 +0xEC74 0x9766 +0xEC75 0x9767 +0xEC76 0x9768 +0xEC77 0x976A +0xEC78 0x976B +0xEC79 0x976C +0xEC7A 0x976D +0xEC7B 0x976E +0xEC7C 0x976F +0xEC7D 0x9770 +0xEC7E 0x9771 +0xEC80 0x9772 +0xEC81 0x9775 +0xEC82 0x9777 +0xEC83 0x9778 +0xEC84 0x9779 +0xEC85 0x977A +0xEC86 0x977B +0xEC87 0x977D +0xEC88 0x977E +0xEC89 0x977F +0xEC8A 0x9780 +0xEC8B 0x9781 +0xEC8C 0x9782 +0xEC8D 0x9783 +0xEC8E 0x9784 +0xEC8F 0x9786 +0xEC90 0x9787 +0xEC91 0x9788 +0xEC92 0x9789 +0xEC93 0x978A +0xEC94 0x978C +0xEC95 0x978E +0xEC96 0x978F +0xEC97 0x9790 +0xEC98 0x9793 +0xEC99 0x9795 +0xEC9A 0x9796 +0xEC9B 0x9797 +0xEC9C 0x9799 +0xEC9D 0x979A +0xEC9E 0x979B +0xEC9F 0x979C +0xECA0 0x979D +0xECA1 0x81C1 +0xECA2 0x81A6 +0xECA3 0x6B24 +0xECA4 0x6B37 +0xECA5 0x6B39 +0xECA6 0x6B43 +0xECA7 0x6B46 +0xECA8 0x6B59 +0xECA9 0x98D1 +0xECAA 0x98D2 +0xECAB 0x98D3 +0xECAC 0x98D5 +0xECAD 0x98D9 +0xECAE 0x98DA +0xECAF 0x6BB3 +0xECB0 0x5F40 +0xECB1 0x6BC2 +0xECB2 0x89F3 +0xECB3 0x6590 +0xECB4 0x9F51 +0xECB5 0x6593 +0xECB6 0x65BC +0xECB7 0x65C6 +0xECB8 0x65C4 +0xECB9 0x65C3 +0xECBA 0x65CC +0xECBB 0x65CE +0xECBC 0x65D2 +0xECBD 0x65D6 +0xECBE 0x7080 +0xECBF 0x709C +0xECC0 0x7096 +0xECC1 0x709D +0xECC2 0x70BB +0xECC3 0x70C0 +0xECC4 0x70B7 +0xECC5 0x70AB +0xECC6 0x70B1 +0xECC7 0x70E8 +0xECC8 0x70CA +0xECC9 0x7110 +0xECCA 0x7113 +0xECCB 0x7116 +0xECCC 0x712F +0xECCD 0x7131 +0xECCE 0x7173 +0xECCF 0x715C +0xECD0 0x7168 +0xECD1 0x7145 +0xECD2 0x7172 +0xECD3 0x714A +0xECD4 0x7178 +0xECD5 0x717A +0xECD6 0x7198 +0xECD7 0x71B3 +0xECD8 0x71B5 +0xECD9 0x71A8 +0xECDA 0x71A0 +0xECDB 0x71E0 +0xECDC 0x71D4 +0xECDD 0x71E7 +0xECDE 0x71F9 +0xECDF 0x721D +0xECE0 0x7228 +0xECE1 0x706C +0xECE2 0x7118 +0xECE3 0x7166 +0xECE4 0x71B9 +0xECE5 0x623E +0xECE6 0x623D +0xECE7 0x6243 +0xECE8 0x6248 +0xECE9 0x6249 +0xECEA 0x793B +0xECEB 0x7940 +0xECEC 0x7946 +0xECED 0x7949 +0xECEE 0x795B +0xECEF 0x795C +0xECF0 0x7953 +0xECF1 0x795A +0xECF2 0x7962 +0xECF3 0x7957 +0xECF4 0x7960 +0xECF5 0x796F +0xECF6 0x7967 +0xECF7 0x797A +0xECF8 0x7985 +0xECF9 0x798A +0xECFA 0x799A +0xECFB 0x79A7 +0xECFC 0x79B3 +0xECFD 0x5FD1 +0xECFE 0x5FD0 +0xED40 0x979E +0xED41 0x979F +0xED42 0x97A1 +0xED43 0x97A2 +0xED44 0x97A4 +0xED45 0x97A5 +0xED46 0x97A6 +0xED47 0x97A7 +0xED48 0x97A8 +0xED49 0x97A9 +0xED4A 0x97AA +0xED4B 0x97AC +0xED4C 0x97AE +0xED4D 0x97B0 +0xED4E 0x97B1 +0xED4F 0x97B3 +0xED50 0x97B5 +0xED51 0x97B6 +0xED52 0x97B7 +0xED53 0x97B8 +0xED54 0x97B9 +0xED55 0x97BA +0xED56 0x97BB +0xED57 0x97BC +0xED58 0x97BD +0xED59 0x97BE +0xED5A 0x97BF +0xED5B 0x97C0 +0xED5C 0x97C1 +0xED5D 0x97C2 +0xED5E 0x97C3 +0xED5F 0x97C4 +0xED60 0x97C5 +0xED61 0x97C6 +0xED62 0x97C7 +0xED63 0x97C8 +0xED64 0x97C9 +0xED65 0x97CA +0xED66 0x97CB +0xED67 0x97CC +0xED68 0x97CD +0xED69 0x97CE +0xED6A 0x97CF +0xED6B 0x97D0 +0xED6C 0x97D1 +0xED6D 0x97D2 +0xED6E 0x97D3 +0xED6F 0x97D4 +0xED70 0x97D5 +0xED71 0x97D6 +0xED72 0x97D7 +0xED73 0x97D8 +0xED74 0x97D9 +0xED75 0x97DA +0xED76 0x97DB +0xED77 0x97DC +0xED78 0x97DD +0xED79 0x97DE +0xED7A 0x97DF +0xED7B 0x97E0 +0xED7C 0x97E1 +0xED7D 0x97E2 +0xED7E 0x97E3 +0xED80 0x97E4 +0xED81 0x97E5 +0xED82 0x97E8 +0xED83 0x97EE +0xED84 0x97EF +0xED85 0x97F0 +0xED86 0x97F1 +0xED87 0x97F2 +0xED88 0x97F4 +0xED89 0x97F7 +0xED8A 0x97F8 +0xED8B 0x97F9 +0xED8C 0x97FA +0xED8D 0x97FB +0xED8E 0x97FC +0xED8F 0x97FD +0xED90 0x97FE +0xED91 0x97FF +0xED92 0x9800 +0xED93 0x9801 +0xED94 0x9802 +0xED95 0x9803 +0xED96 0x9804 +0xED97 0x9805 +0xED98 0x9806 +0xED99 0x9807 +0xED9A 0x9808 +0xED9B 0x9809 +0xED9C 0x980A +0xED9D 0x980B +0xED9E 0x980C +0xED9F 0x980D +0xEDA0 0x980E +0xEDA1 0x603C +0xEDA2 0x605D +0xEDA3 0x605A +0xEDA4 0x6067 +0xEDA5 0x6041 +0xEDA6 0x6059 +0xEDA7 0x6063 +0xEDA8 0x60AB +0xEDA9 0x6106 +0xEDAA 0x610D +0xEDAB 0x615D +0xEDAC 0x61A9 +0xEDAD 0x619D +0xEDAE 0x61CB +0xEDAF 0x61D1 +0xEDB0 0x6206 +0xEDB1 0x8080 +0xEDB2 0x807F +0xEDB3 0x6C93 +0xEDB4 0x6CF6 +0xEDB5 0x6DFC +0xEDB6 0x77F6 +0xEDB7 0x77F8 +0xEDB8 0x7800 +0xEDB9 0x7809 +0xEDBA 0x7817 +0xEDBB 0x7818 +0xEDBC 0x7811 +0xEDBD 0x65AB +0xEDBE 0x782D +0xEDBF 0x781C +0xEDC0 0x781D +0xEDC1 0x7839 +0xEDC2 0x783A +0xEDC3 0x783B +0xEDC4 0x781F +0xEDC5 0x783C +0xEDC6 0x7825 +0xEDC7 0x782C +0xEDC8 0x7823 +0xEDC9 0x7829 +0xEDCA 0x784E +0xEDCB 0x786D +0xEDCC 0x7856 +0xEDCD 0x7857 +0xEDCE 0x7826 +0xEDCF 0x7850 +0xEDD0 0x7847 +0xEDD1 0x784C +0xEDD2 0x786A +0xEDD3 0x789B +0xEDD4 0x7893 +0xEDD5 0x789A +0xEDD6 0x7887 +0xEDD7 0x789C +0xEDD8 0x78A1 +0xEDD9 0x78A3 +0xEDDA 0x78B2 +0xEDDB 0x78B9 +0xEDDC 0x78A5 +0xEDDD 0x78D4 +0xEDDE 0x78D9 +0xEDDF 0x78C9 +0xEDE0 0x78EC +0xEDE1 0x78F2 +0xEDE2 0x7905 +0xEDE3 0x78F4 +0xEDE4 0x7913 +0xEDE5 0x7924 +0xEDE6 0x791E +0xEDE7 0x7934 +0xEDE8 0x9F9B +0xEDE9 0x9EF9 +0xEDEA 0x9EFB +0xEDEB 0x9EFC +0xEDEC 0x76F1 +0xEDED 0x7704 +0xEDEE 0x770D +0xEDEF 0x76F9 +0xEDF0 0x7707 +0xEDF1 0x7708 +0xEDF2 0x771A +0xEDF3 0x7722 +0xEDF4 0x7719 +0xEDF5 0x772D +0xEDF6 0x7726 +0xEDF7 0x7735 +0xEDF8 0x7738 +0xEDF9 0x7750 +0xEDFA 0x7751 +0xEDFB 0x7747 +0xEDFC 0x7743 +0xEDFD 0x775A +0xEDFE 0x7768 +0xEE40 0x980F +0xEE41 0x9810 +0xEE42 0x9811 +0xEE43 0x9812 +0xEE44 0x9813 +0xEE45 0x9814 +0xEE46 0x9815 +0xEE47 0x9816 +0xEE48 0x9817 +0xEE49 0x9818 +0xEE4A 0x9819 +0xEE4B 0x981A +0xEE4C 0x981B +0xEE4D 0x981C +0xEE4E 0x981D +0xEE4F 0x981E +0xEE50 0x981F +0xEE51 0x9820 +0xEE52 0x9821 +0xEE53 0x9822 +0xEE54 0x9823 +0xEE55 0x9824 +0xEE56 0x9825 +0xEE57 0x9826 +0xEE58 0x9827 +0xEE59 0x9828 +0xEE5A 0x9829 +0xEE5B 0x982A +0xEE5C 0x982B +0xEE5D 0x982C +0xEE5E 0x982D +0xEE5F 0x982E +0xEE60 0x982F +0xEE61 0x9830 +0xEE62 0x9831 +0xEE63 0x9832 +0xEE64 0x9833 +0xEE65 0x9834 +0xEE66 0x9835 +0xEE67 0x9836 +0xEE68 0x9837 +0xEE69 0x9838 +0xEE6A 0x9839 +0xEE6B 0x983A +0xEE6C 0x983B +0xEE6D 0x983C +0xEE6E 0x983D +0xEE6F 0x983E +0xEE70 0x983F +0xEE71 0x9840 +0xEE72 0x9841 +0xEE73 0x9842 +0xEE74 0x9843 +0xEE75 0x9844 +0xEE76 0x9845 +0xEE77 0x9846 +0xEE78 0x9847 +0xEE79 0x9848 +0xEE7A 0x9849 +0xEE7B 0x984A +0xEE7C 0x984B +0xEE7D 0x984C +0xEE7E 0x984D +0xEE80 0x984E +0xEE81 0x984F +0xEE82 0x9850 +0xEE83 0x9851 +0xEE84 0x9852 +0xEE85 0x9853 +0xEE86 0x9854 +0xEE87 0x9855 +0xEE88 0x9856 +0xEE89 0x9857 +0xEE8A 0x9858 +0xEE8B 0x9859 +0xEE8C 0x985A +0xEE8D 0x985B +0xEE8E 0x985C +0xEE8F 0x985D +0xEE90 0x985E +0xEE91 0x985F +0xEE92 0x9860 +0xEE93 0x9861 +0xEE94 0x9862 +0xEE95 0x9863 +0xEE96 0x9864 +0xEE97 0x9865 +0xEE98 0x9866 +0xEE99 0x9867 +0xEE9A 0x9868 +0xEE9B 0x9869 +0xEE9C 0x986A +0xEE9D 0x986B +0xEE9E 0x986C +0xEE9F 0x986D +0xEEA0 0x986E +0xEEA1 0x7762 +0xEEA2 0x7765 +0xEEA3 0x777F +0xEEA4 0x778D +0xEEA5 0x777D +0xEEA6 0x7780 +0xEEA7 0x778C +0xEEA8 0x7791 +0xEEA9 0x779F +0xEEAA 0x77A0 +0xEEAB 0x77B0 +0xEEAC 0x77B5 +0xEEAD 0x77BD +0xEEAE 0x753A +0xEEAF 0x7540 +0xEEB0 0x754E +0xEEB1 0x754B +0xEEB2 0x7548 +0xEEB3 0x755B +0xEEB4 0x7572 +0xEEB5 0x7579 +0xEEB6 0x7583 +0xEEB7 0x7F58 +0xEEB8 0x7F61 +0xEEB9 0x7F5F +0xEEBA 0x8A48 +0xEEBB 0x7F68 +0xEEBC 0x7F74 +0xEEBD 0x7F71 +0xEEBE 0x7F79 +0xEEBF 0x7F81 +0xEEC0 0x7F7E +0xEEC1 0x76CD +0xEEC2 0x76E5 +0xEEC3 0x8832 +0xEEC4 0x9485 +0xEEC5 0x9486 +0xEEC6 0x9487 +0xEEC7 0x948B +0xEEC8 0x948A +0xEEC9 0x948C +0xEECA 0x948D +0xEECB 0x948F +0xEECC 0x9490 +0xEECD 0x9494 +0xEECE 0x9497 +0xEECF 0x9495 +0xEED0 0x949A +0xEED1 0x949B +0xEED2 0x949C +0xEED3 0x94A3 +0xEED4 0x94A4 +0xEED5 0x94AB +0xEED6 0x94AA +0xEED7 0x94AD +0xEED8 0x94AC +0xEED9 0x94AF +0xEEDA 0x94B0 +0xEEDB 0x94B2 +0xEEDC 0x94B4 +0xEEDD 0x94B6 +0xEEDE 0x94B7 +0xEEDF 0x94B8 +0xEEE0 0x94B9 +0xEEE1 0x94BA +0xEEE2 0x94BC +0xEEE3 0x94BD +0xEEE4 0x94BF +0xEEE5 0x94C4 +0xEEE6 0x94C8 +0xEEE7 0x94C9 +0xEEE8 0x94CA +0xEEE9 0x94CB +0xEEEA 0x94CC +0xEEEB 0x94CD +0xEEEC 0x94CE +0xEEED 0x94D0 +0xEEEE 0x94D1 +0xEEEF 0x94D2 +0xEEF0 0x94D5 +0xEEF1 0x94D6 +0xEEF2 0x94D7 +0xEEF3 0x94D9 +0xEEF4 0x94D8 +0xEEF5 0x94DB +0xEEF6 0x94DE +0xEEF7 0x94DF +0xEEF8 0x94E0 +0xEEF9 0x94E2 +0xEEFA 0x94E4 +0xEEFB 0x94E5 +0xEEFC 0x94E7 +0xEEFD 0x94E8 +0xEEFE 0x94EA +0xEF40 0x986F +0xEF41 0x9870 +0xEF42 0x9871 +0xEF43 0x9872 +0xEF44 0x9873 +0xEF45 0x9874 +0xEF46 0x988B +0xEF47 0x988E +0xEF48 0x9892 +0xEF49 0x9895 +0xEF4A 0x9899 +0xEF4B 0x98A3 +0xEF4C 0x98A8 +0xEF4D 0x98A9 +0xEF4E 0x98AA +0xEF4F 0x98AB +0xEF50 0x98AC +0xEF51 0x98AD +0xEF52 0x98AE +0xEF53 0x98AF +0xEF54 0x98B0 +0xEF55 0x98B1 +0xEF56 0x98B2 +0xEF57 0x98B3 +0xEF58 0x98B4 +0xEF59 0x98B5 +0xEF5A 0x98B6 +0xEF5B 0x98B7 +0xEF5C 0x98B8 +0xEF5D 0x98B9 +0xEF5E 0x98BA +0xEF5F 0x98BB +0xEF60 0x98BC +0xEF61 0x98BD +0xEF62 0x98BE +0xEF63 0x98BF +0xEF64 0x98C0 +0xEF65 0x98C1 +0xEF66 0x98C2 +0xEF67 0x98C3 +0xEF68 0x98C4 +0xEF69 0x98C5 +0xEF6A 0x98C6 +0xEF6B 0x98C7 +0xEF6C 0x98C8 +0xEF6D 0x98C9 +0xEF6E 0x98CA +0xEF6F 0x98CB +0xEF70 0x98CC +0xEF71 0x98CD +0xEF72 0x98CF +0xEF73 0x98D0 +0xEF74 0x98D4 +0xEF75 0x98D6 +0xEF76 0x98D7 +0xEF77 0x98DB +0xEF78 0x98DC +0xEF79 0x98DD +0xEF7A 0x98E0 +0xEF7B 0x98E1 +0xEF7C 0x98E2 +0xEF7D 0x98E3 +0xEF7E 0x98E4 +0xEF80 0x98E5 +0xEF81 0x98E6 +0xEF82 0x98E9 +0xEF83 0x98EA +0xEF84 0x98EB +0xEF85 0x98EC +0xEF86 0x98ED +0xEF87 0x98EE +0xEF88 0x98EF +0xEF89 0x98F0 +0xEF8A 0x98F1 +0xEF8B 0x98F2 +0xEF8C 0x98F3 +0xEF8D 0x98F4 +0xEF8E 0x98F5 +0xEF8F 0x98F6 +0xEF90 0x98F7 +0xEF91 0x98F8 +0xEF92 0x98F9 +0xEF93 0x98FA +0xEF94 0x98FB +0xEF95 0x98FC +0xEF96 0x98FD +0xEF97 0x98FE +0xEF98 0x98FF +0xEF99 0x9900 +0xEF9A 0x9901 +0xEF9B 0x9902 +0xEF9C 0x9903 +0xEF9D 0x9904 +0xEF9E 0x9905 +0xEF9F 0x9906 +0xEFA0 0x9907 +0xEFA1 0x94E9 +0xEFA2 0x94EB +0xEFA3 0x94EE +0xEFA4 0x94EF +0xEFA5 0x94F3 +0xEFA6 0x94F4 +0xEFA7 0x94F5 +0xEFA8 0x94F7 +0xEFA9 0x94F9 +0xEFAA 0x94FC +0xEFAB 0x94FD +0xEFAC 0x94FF +0xEFAD 0x9503 +0xEFAE 0x9502 +0xEFAF 0x9506 +0xEFB0 0x9507 +0xEFB1 0x9509 +0xEFB2 0x950A +0xEFB3 0x950D +0xEFB4 0x950E +0xEFB5 0x950F +0xEFB6 0x9512 +0xEFB7 0x9513 +0xEFB8 0x9514 +0xEFB9 0x9515 +0xEFBA 0x9516 +0xEFBB 0x9518 +0xEFBC 0x951B +0xEFBD 0x951D +0xEFBE 0x951E +0xEFBF 0x951F +0xEFC0 0x9522 +0xEFC1 0x952A +0xEFC2 0x952B +0xEFC3 0x9529 +0xEFC4 0x952C +0xEFC5 0x9531 +0xEFC6 0x9532 +0xEFC7 0x9534 +0xEFC8 0x9536 +0xEFC9 0x9537 +0xEFCA 0x9538 +0xEFCB 0x953C +0xEFCC 0x953E +0xEFCD 0x953F +0xEFCE 0x9542 +0xEFCF 0x9535 +0xEFD0 0x9544 +0xEFD1 0x9545 +0xEFD2 0x9546 +0xEFD3 0x9549 +0xEFD4 0x954C +0xEFD5 0x954E +0xEFD6 0x954F +0xEFD7 0x9552 +0xEFD8 0x9553 +0xEFD9 0x9554 +0xEFDA 0x9556 +0xEFDB 0x9557 +0xEFDC 0x9558 +0xEFDD 0x9559 +0xEFDE 0x955B +0xEFDF 0x955E +0xEFE0 0x955F +0xEFE1 0x955D +0xEFE2 0x9561 +0xEFE3 0x9562 +0xEFE4 0x9564 +0xEFE5 0x9565 +0xEFE6 0x9566 +0xEFE7 0x9567 +0xEFE8 0x9568 +0xEFE9 0x9569 +0xEFEA 0x956A +0xEFEB 0x956B +0xEFEC 0x956C +0xEFED 0x956F +0xEFEE 0x9571 +0xEFEF 0x9572 +0xEFF0 0x9573 +0xEFF1 0x953A +0xEFF2 0x77E7 +0xEFF3 0x77EC +0xEFF4 0x96C9 +0xEFF5 0x79D5 +0xEFF6 0x79ED +0xEFF7 0x79E3 +0xEFF8 0x79EB +0xEFF9 0x7A06 +0xEFFA 0x5D47 +0xEFFB 0x7A03 +0xEFFC 0x7A02 +0xEFFD 0x7A1E +0xEFFE 0x7A14 +0xF040 0x9908 +0xF041 0x9909 +0xF042 0x990A +0xF043 0x990B +0xF044 0x990C +0xF045 0x990E +0xF046 0x990F +0xF047 0x9911 +0xF048 0x9912 +0xF049 0x9913 +0xF04A 0x9914 +0xF04B 0x9915 +0xF04C 0x9916 +0xF04D 0x9917 +0xF04E 0x9918 +0xF04F 0x9919 +0xF050 0x991A +0xF051 0x991B +0xF052 0x991C +0xF053 0x991D +0xF054 0x991E +0xF055 0x991F +0xF056 0x9920 +0xF057 0x9921 +0xF058 0x9922 +0xF059 0x9923 +0xF05A 0x9924 +0xF05B 0x9925 +0xF05C 0x9926 +0xF05D 0x9927 +0xF05E 0x9928 +0xF05F 0x9929 +0xF060 0x992A +0xF061 0x992B +0xF062 0x992C +0xF063 0x992D +0xF064 0x992F +0xF065 0x9930 +0xF066 0x9931 +0xF067 0x9932 +0xF068 0x9933 +0xF069 0x9934 +0xF06A 0x9935 +0xF06B 0x9936 +0xF06C 0x9937 +0xF06D 0x9938 +0xF06E 0x9939 +0xF06F 0x993A +0xF070 0x993B +0xF071 0x993C +0xF072 0x993D +0xF073 0x993E +0xF074 0x993F +0xF075 0x9940 +0xF076 0x9941 +0xF077 0x9942 +0xF078 0x9943 +0xF079 0x9944 +0xF07A 0x9945 +0xF07B 0x9946 +0xF07C 0x9947 +0xF07D 0x9948 +0xF07E 0x9949 +0xF080 0x994A +0xF081 0x994B +0xF082 0x994C +0xF083 0x994D +0xF084 0x994E +0xF085 0x994F +0xF086 0x9950 +0xF087 0x9951 +0xF088 0x9952 +0xF089 0x9953 +0xF08A 0x9956 +0xF08B 0x9957 +0xF08C 0x9958 +0xF08D 0x9959 +0xF08E 0x995A +0xF08F 0x995B +0xF090 0x995C +0xF091 0x995D +0xF092 0x995E +0xF093 0x995F +0xF094 0x9960 +0xF095 0x9961 +0xF096 0x9962 +0xF097 0x9964 +0xF098 0x9966 +0xF099 0x9973 +0xF09A 0x9978 +0xF09B 0x9979 +0xF09C 0x997B +0xF09D 0x997E +0xF09E 0x9982 +0xF09F 0x9983 +0xF0A0 0x9989 +0xF0A1 0x7A39 +0xF0A2 0x7A37 +0xF0A3 0x7A51 +0xF0A4 0x9ECF +0xF0A5 0x99A5 +0xF0A6 0x7A70 +0xF0A7 0x7688 +0xF0A8 0x768E +0xF0A9 0x7693 +0xF0AA 0x7699 +0xF0AB 0x76A4 +0xF0AC 0x74DE +0xF0AD 0x74E0 +0xF0AE 0x752C +0xF0AF 0x9E20 +0xF0B0 0x9E22 +0xF0B1 0x9E28 +0xF0B2 0x9E29 +0xF0B3 0x9E2A +0xF0B4 0x9E2B +0xF0B5 0x9E2C +0xF0B6 0x9E32 +0xF0B7 0x9E31 +0xF0B8 0x9E36 +0xF0B9 0x9E38 +0xF0BA 0x9E37 +0xF0BB 0x9E39 +0xF0BC 0x9E3A +0xF0BD 0x9E3E +0xF0BE 0x9E41 +0xF0BF 0x9E42 +0xF0C0 0x9E44 +0xF0C1 0x9E46 +0xF0C2 0x9E47 +0xF0C3 0x9E48 +0xF0C4 0x9E49 +0xF0C5 0x9E4B +0xF0C6 0x9E4C +0xF0C7 0x9E4E +0xF0C8 0x9E51 +0xF0C9 0x9E55 +0xF0CA 0x9E57 +0xF0CB 0x9E5A +0xF0CC 0x9E5B +0xF0CD 0x9E5C +0xF0CE 0x9E5E +0xF0CF 0x9E63 +0xF0D0 0x9E66 +0xF0D1 0x9E67 +0xF0D2 0x9E68 +0xF0D3 0x9E69 +0xF0D4 0x9E6A +0xF0D5 0x9E6B +0xF0D6 0x9E6C +0xF0D7 0x9E71 +0xF0D8 0x9E6D +0xF0D9 0x9E73 +0xF0DA 0x7592 +0xF0DB 0x7594 +0xF0DC 0x7596 +0xF0DD 0x75A0 +0xF0DE 0x759D +0xF0DF 0x75AC +0xF0E0 0x75A3 +0xF0E1 0x75B3 +0xF0E2 0x75B4 +0xF0E3 0x75B8 +0xF0E4 0x75C4 +0xF0E5 0x75B1 +0xF0E6 0x75B0 +0xF0E7 0x75C3 +0xF0E8 0x75C2 +0xF0E9 0x75D6 +0xF0EA 0x75CD +0xF0EB 0x75E3 +0xF0EC 0x75E8 +0xF0ED 0x75E6 +0xF0EE 0x75E4 +0xF0EF 0x75EB +0xF0F0 0x75E7 +0xF0F1 0x7603 +0xF0F2 0x75F1 +0xF0F3 0x75FC +0xF0F4 0x75FF +0xF0F5 0x7610 +0xF0F6 0x7600 +0xF0F7 0x7605 +0xF0F8 0x760C +0xF0F9 0x7617 +0xF0FA 0x760A +0xF0FB 0x7625 +0xF0FC 0x7618 +0xF0FD 0x7615 +0xF0FE 0x7619 +0xF140 0x998C +0xF141 0x998E +0xF142 0x999A +0xF143 0x999B +0xF144 0x999C +0xF145 0x999D +0xF146 0x999E +0xF147 0x999F +0xF148 0x99A0 +0xF149 0x99A1 +0xF14A 0x99A2 +0xF14B 0x99A3 +0xF14C 0x99A4 +0xF14D 0x99A6 +0xF14E 0x99A7 +0xF14F 0x99A9 +0xF150 0x99AA +0xF151 0x99AB +0xF152 0x99AC +0xF153 0x99AD +0xF154 0x99AE +0xF155 0x99AF +0xF156 0x99B0 +0xF157 0x99B1 +0xF158 0x99B2 +0xF159 0x99B3 +0xF15A 0x99B4 +0xF15B 0x99B5 +0xF15C 0x99B6 +0xF15D 0x99B7 +0xF15E 0x99B8 +0xF15F 0x99B9 +0xF160 0x99BA +0xF161 0x99BB +0xF162 0x99BC +0xF163 0x99BD +0xF164 0x99BE +0xF165 0x99BF +0xF166 0x99C0 +0xF167 0x99C1 +0xF168 0x99C2 +0xF169 0x99C3 +0xF16A 0x99C4 +0xF16B 0x99C5 +0xF16C 0x99C6 +0xF16D 0x99C7 +0xF16E 0x99C8 +0xF16F 0x99C9 +0xF170 0x99CA +0xF171 0x99CB +0xF172 0x99CC +0xF173 0x99CD +0xF174 0x99CE +0xF175 0x99CF +0xF176 0x99D0 +0xF177 0x99D1 +0xF178 0x99D2 +0xF179 0x99D3 +0xF17A 0x99D4 +0xF17B 0x99D5 +0xF17C 0x99D6 +0xF17D 0x99D7 +0xF17E 0x99D8 +0xF180 0x99D9 +0xF181 0x99DA +0xF182 0x99DB +0xF183 0x99DC +0xF184 0x99DD +0xF185 0x99DE +0xF186 0x99DF +0xF187 0x99E0 +0xF188 0x99E1 +0xF189 0x99E2 +0xF18A 0x99E3 +0xF18B 0x99E4 +0xF18C 0x99E5 +0xF18D 0x99E6 +0xF18E 0x99E7 +0xF18F 0x99E8 +0xF190 0x99E9 +0xF191 0x99EA +0xF192 0x99EB +0xF193 0x99EC +0xF194 0x99ED +0xF195 0x99EE +0xF196 0x99EF +0xF197 0x99F0 +0xF198 0x99F1 +0xF199 0x99F2 +0xF19A 0x99F3 +0xF19B 0x99F4 +0xF19C 0x99F5 +0xF19D 0x99F6 +0xF19E 0x99F7 +0xF19F 0x99F8 +0xF1A0 0x99F9 +0xF1A1 0x761B +0xF1A2 0x763C +0xF1A3 0x7622 +0xF1A4 0x7620 +0xF1A5 0x7640 +0xF1A6 0x762D +0xF1A7 0x7630 +0xF1A8 0x763F +0xF1A9 0x7635 +0xF1AA 0x7643 +0xF1AB 0x763E +0xF1AC 0x7633 +0xF1AD 0x764D +0xF1AE 0x765E +0xF1AF 0x7654 +0xF1B0 0x765C +0xF1B1 0x7656 +0xF1B2 0x766B +0xF1B3 0x766F +0xF1B4 0x7FCA +0xF1B5 0x7AE6 +0xF1B6 0x7A78 +0xF1B7 0x7A79 +0xF1B8 0x7A80 +0xF1B9 0x7A86 +0xF1BA 0x7A88 +0xF1BB 0x7A95 +0xF1BC 0x7AA6 +0xF1BD 0x7AA0 +0xF1BE 0x7AAC +0xF1BF 0x7AA8 +0xF1C0 0x7AAD +0xF1C1 0x7AB3 +0xF1C2 0x8864 +0xF1C3 0x8869 +0xF1C4 0x8872 +0xF1C5 0x887D +0xF1C6 0x887F +0xF1C7 0x8882 +0xF1C8 0x88A2 +0xF1C9 0x88C6 +0xF1CA 0x88B7 +0xF1CB 0x88BC +0xF1CC 0x88C9 +0xF1CD 0x88E2 +0xF1CE 0x88CE +0xF1CF 0x88E3 +0xF1D0 0x88E5 +0xF1D1 0x88F1 +0xF1D2 0x891A +0xF1D3 0x88FC +0xF1D4 0x88E8 +0xF1D5 0x88FE +0xF1D6 0x88F0 +0xF1D7 0x8921 +0xF1D8 0x8919 +0xF1D9 0x8913 +0xF1DA 0x891B +0xF1DB 0x890A +0xF1DC 0x8934 +0xF1DD 0x892B +0xF1DE 0x8936 +0xF1DF 0x8941 +0xF1E0 0x8966 +0xF1E1 0x897B +0xF1E2 0x758B +0xF1E3 0x80E5 +0xF1E4 0x76B2 +0xF1E5 0x76B4 +0xF1E6 0x77DC +0xF1E7 0x8012 +0xF1E8 0x8014 +0xF1E9 0x8016 +0xF1EA 0x801C +0xF1EB 0x8020 +0xF1EC 0x8022 +0xF1ED 0x8025 +0xF1EE 0x8026 +0xF1EF 0x8027 +0xF1F0 0x8029 +0xF1F1 0x8028 +0xF1F2 0x8031 +0xF1F3 0x800B +0xF1F4 0x8035 +0xF1F5 0x8043 +0xF1F6 0x8046 +0xF1F7 0x804D +0xF1F8 0x8052 +0xF1F9 0x8069 +0xF1FA 0x8071 +0xF1FB 0x8983 +0xF1FC 0x9878 +0xF1FD 0x9880 +0xF1FE 0x9883 +0xF240 0x99FA +0xF241 0x99FB +0xF242 0x99FC +0xF243 0x99FD +0xF244 0x99FE +0xF245 0x99FF +0xF246 0x9A00 +0xF247 0x9A01 +0xF248 0x9A02 +0xF249 0x9A03 +0xF24A 0x9A04 +0xF24B 0x9A05 +0xF24C 0x9A06 +0xF24D 0x9A07 +0xF24E 0x9A08 +0xF24F 0x9A09 +0xF250 0x9A0A +0xF251 0x9A0B +0xF252 0x9A0C +0xF253 0x9A0D +0xF254 0x9A0E +0xF255 0x9A0F +0xF256 0x9A10 +0xF257 0x9A11 +0xF258 0x9A12 +0xF259 0x9A13 +0xF25A 0x9A14 +0xF25B 0x9A15 +0xF25C 0x9A16 +0xF25D 0x9A17 +0xF25E 0x9A18 +0xF25F 0x9A19 +0xF260 0x9A1A +0xF261 0x9A1B +0xF262 0x9A1C +0xF263 0x9A1D +0xF264 0x9A1E +0xF265 0x9A1F +0xF266 0x9A20 +0xF267 0x9A21 +0xF268 0x9A22 +0xF269 0x9A23 +0xF26A 0x9A24 +0xF26B 0x9A25 +0xF26C 0x9A26 +0xF26D 0x9A27 +0xF26E 0x9A28 +0xF26F 0x9A29 +0xF270 0x9A2A +0xF271 0x9A2B +0xF272 0x9A2C +0xF273 0x9A2D +0xF274 0x9A2E +0xF275 0x9A2F +0xF276 0x9A30 +0xF277 0x9A31 +0xF278 0x9A32 +0xF279 0x9A33 +0xF27A 0x9A34 +0xF27B 0x9A35 +0xF27C 0x9A36 +0xF27D 0x9A37 +0xF27E 0x9A38 +0xF280 0x9A39 +0xF281 0x9A3A +0xF282 0x9A3B +0xF283 0x9A3C +0xF284 0x9A3D +0xF285 0x9A3E +0xF286 0x9A3F +0xF287 0x9A40 +0xF288 0x9A41 +0xF289 0x9A42 +0xF28A 0x9A43 +0xF28B 0x9A44 +0xF28C 0x9A45 +0xF28D 0x9A46 +0xF28E 0x9A47 +0xF28F 0x9A48 +0xF290 0x9A49 +0xF291 0x9A4A +0xF292 0x9A4B +0xF293 0x9A4C +0xF294 0x9A4D +0xF295 0x9A4E +0xF296 0x9A4F +0xF297 0x9A50 +0xF298 0x9A51 +0xF299 0x9A52 +0xF29A 0x9A53 +0xF29B 0x9A54 +0xF29C 0x9A55 +0xF29D 0x9A56 +0xF29E 0x9A57 +0xF29F 0x9A58 +0xF2A0 0x9A59 +0xF2A1 0x9889 +0xF2A2 0x988C +0xF2A3 0x988D +0xF2A4 0x988F +0xF2A5 0x9894 +0xF2A6 0x989A +0xF2A7 0x989B +0xF2A8 0x989E +0xF2A9 0x989F +0xF2AA 0x98A1 +0xF2AB 0x98A2 +0xF2AC 0x98A5 +0xF2AD 0x98A6 +0xF2AE 0x864D +0xF2AF 0x8654 +0xF2B0 0x866C +0xF2B1 0x866E +0xF2B2 0x867F +0xF2B3 0x867A +0xF2B4 0x867C +0xF2B5 0x867B +0xF2B6 0x86A8 +0xF2B7 0x868D +0xF2B8 0x868B +0xF2B9 0x86AC +0xF2BA 0x869D +0xF2BB 0x86A7 +0xF2BC 0x86A3 +0xF2BD 0x86AA +0xF2BE 0x8693 +0xF2BF 0x86A9 +0xF2C0 0x86B6 +0xF2C1 0x86C4 +0xF2C2 0x86B5 +0xF2C3 0x86CE +0xF2C4 0x86B0 +0xF2C5 0x86BA +0xF2C6 0x86B1 +0xF2C7 0x86AF +0xF2C8 0x86C9 +0xF2C9 0x86CF +0xF2CA 0x86B4 +0xF2CB 0x86E9 +0xF2CC 0x86F1 +0xF2CD 0x86F2 +0xF2CE 0x86ED +0xF2CF 0x86F3 +0xF2D0 0x86D0 +0xF2D1 0x8713 +0xF2D2 0x86DE +0xF2D3 0x86F4 +0xF2D4 0x86DF +0xF2D5 0x86D8 +0xF2D6 0x86D1 +0xF2D7 0x8703 +0xF2D8 0x8707 +0xF2D9 0x86F8 +0xF2DA 0x8708 +0xF2DB 0x870A +0xF2DC 0x870D +0xF2DD 0x8709 +0xF2DE 0x8723 +0xF2DF 0x873B +0xF2E0 0x871E +0xF2E1 0x8725 +0xF2E2 0x872E +0xF2E3 0x871A +0xF2E4 0x873E +0xF2E5 0x8748 +0xF2E6 0x8734 +0xF2E7 0x8731 +0xF2E8 0x8729 +0xF2E9 0x8737 +0xF2EA 0x873F +0xF2EB 0x8782 +0xF2EC 0x8722 +0xF2ED 0x877D +0xF2EE 0x877E +0xF2EF 0x877B +0xF2F0 0x8760 +0xF2F1 0x8770 +0xF2F2 0x874C +0xF2F3 0x876E +0xF2F4 0x878B +0xF2F5 0x8753 +0xF2F6 0x8763 +0xF2F7 0x877C +0xF2F8 0x8764 +0xF2F9 0x8759 +0xF2FA 0x8765 +0xF2FB 0x8793 +0xF2FC 0x87AF +0xF2FD 0x87A8 +0xF2FE 0x87D2 +0xF340 0x9A5A +0xF341 0x9A5B +0xF342 0x9A5C +0xF343 0x9A5D +0xF344 0x9A5E +0xF345 0x9A5F +0xF346 0x9A60 +0xF347 0x9A61 +0xF348 0x9A62 +0xF349 0x9A63 +0xF34A 0x9A64 +0xF34B 0x9A65 +0xF34C 0x9A66 +0xF34D 0x9A67 +0xF34E 0x9A68 +0xF34F 0x9A69 +0xF350 0x9A6A +0xF351 0x9A6B +0xF352 0x9A72 +0xF353 0x9A83 +0xF354 0x9A89 +0xF355 0x9A8D +0xF356 0x9A8E +0xF357 0x9A94 +0xF358 0x9A95 +0xF359 0x9A99 +0xF35A 0x9AA6 +0xF35B 0x9AA9 +0xF35C 0x9AAA +0xF35D 0x9AAB +0xF35E 0x9AAC +0xF35F 0x9AAD +0xF360 0x9AAE +0xF361 0x9AAF +0xF362 0x9AB2 +0xF363 0x9AB3 +0xF364 0x9AB4 +0xF365 0x9AB5 +0xF366 0x9AB9 +0xF367 0x9ABB +0xF368 0x9ABD +0xF369 0x9ABE +0xF36A 0x9ABF +0xF36B 0x9AC3 +0xF36C 0x9AC4 +0xF36D 0x9AC6 +0xF36E 0x9AC7 +0xF36F 0x9AC8 +0xF370 0x9AC9 +0xF371 0x9ACA +0xF372 0x9ACD +0xF373 0x9ACE +0xF374 0x9ACF +0xF375 0x9AD0 +0xF376 0x9AD2 +0xF377 0x9AD4 +0xF378 0x9AD5 +0xF379 0x9AD6 +0xF37A 0x9AD7 +0xF37B 0x9AD9 +0xF37C 0x9ADA +0xF37D 0x9ADB +0xF37E 0x9ADC +0xF380 0x9ADD +0xF381 0x9ADE +0xF382 0x9AE0 +0xF383 0x9AE2 +0xF384 0x9AE3 +0xF385 0x9AE4 +0xF386 0x9AE5 +0xF387 0x9AE7 +0xF388 0x9AE8 +0xF389 0x9AE9 +0xF38A 0x9AEA +0xF38B 0x9AEC +0xF38C 0x9AEE +0xF38D 0x9AF0 +0xF38E 0x9AF1 +0xF38F 0x9AF2 +0xF390 0x9AF3 +0xF391 0x9AF4 +0xF392 0x9AF5 +0xF393 0x9AF6 +0xF394 0x9AF7 +0xF395 0x9AF8 +0xF396 0x9AFA +0xF397 0x9AFC +0xF398 0x9AFD +0xF399 0x9AFE +0xF39A 0x9AFF +0xF39B 0x9B00 +0xF39C 0x9B01 +0xF39D 0x9B02 +0xF39E 0x9B04 +0xF39F 0x9B05 +0xF3A0 0x9B06 +0xF3A1 0x87C6 +0xF3A2 0x8788 +0xF3A3 0x8785 +0xF3A4 0x87AD +0xF3A5 0x8797 +0xF3A6 0x8783 +0xF3A7 0x87AB +0xF3A8 0x87E5 +0xF3A9 0x87AC +0xF3AA 0x87B5 +0xF3AB 0x87B3 +0xF3AC 0x87CB +0xF3AD 0x87D3 +0xF3AE 0x87BD +0xF3AF 0x87D1 +0xF3B0 0x87C0 +0xF3B1 0x87CA +0xF3B2 0x87DB +0xF3B3 0x87EA +0xF3B4 0x87E0 +0xF3B5 0x87EE +0xF3B6 0x8816 +0xF3B7 0x8813 +0xF3B8 0x87FE +0xF3B9 0x880A +0xF3BA 0x881B +0xF3BB 0x8821 +0xF3BC 0x8839 +0xF3BD 0x883C +0xF3BE 0x7F36 +0xF3BF 0x7F42 +0xF3C0 0x7F44 +0xF3C1 0x7F45 +0xF3C2 0x8210 +0xF3C3 0x7AFA +0xF3C4 0x7AFD +0xF3C5 0x7B08 +0xF3C6 0x7B03 +0xF3C7 0x7B04 +0xF3C8 0x7B15 +0xF3C9 0x7B0A +0xF3CA 0x7B2B +0xF3CB 0x7B0F +0xF3CC 0x7B47 +0xF3CD 0x7B38 +0xF3CE 0x7B2A +0xF3CF 0x7B19 +0xF3D0 0x7B2E +0xF3D1 0x7B31 +0xF3D2 0x7B20 +0xF3D3 0x7B25 +0xF3D4 0x7B24 +0xF3D5 0x7B33 +0xF3D6 0x7B3E +0xF3D7 0x7B1E +0xF3D8 0x7B58 +0xF3D9 0x7B5A +0xF3DA 0x7B45 +0xF3DB 0x7B75 +0xF3DC 0x7B4C +0xF3DD 0x7B5D +0xF3DE 0x7B60 +0xF3DF 0x7B6E +0xF3E0 0x7B7B +0xF3E1 0x7B62 +0xF3E2 0x7B72 +0xF3E3 0x7B71 +0xF3E4 0x7B90 +0xF3E5 0x7BA6 +0xF3E6 0x7BA7 +0xF3E7 0x7BB8 +0xF3E8 0x7BAC +0xF3E9 0x7B9D +0xF3EA 0x7BA8 +0xF3EB 0x7B85 +0xF3EC 0x7BAA +0xF3ED 0x7B9C +0xF3EE 0x7BA2 +0xF3EF 0x7BAB +0xF3F0 0x7BB4 +0xF3F1 0x7BD1 +0xF3F2 0x7BC1 +0xF3F3 0x7BCC +0xF3F4 0x7BDD +0xF3F5 0x7BDA +0xF3F6 0x7BE5 +0xF3F7 0x7BE6 +0xF3F8 0x7BEA +0xF3F9 0x7C0C +0xF3FA 0x7BFE +0xF3FB 0x7BFC +0xF3FC 0x7C0F +0xF3FD 0x7C16 +0xF3FE 0x7C0B +0xF440 0x9B07 +0xF441 0x9B09 +0xF442 0x9B0A +0xF443 0x9B0B +0xF444 0x9B0C +0xF445 0x9B0D +0xF446 0x9B0E +0xF447 0x9B10 +0xF448 0x9B11 +0xF449 0x9B12 +0xF44A 0x9B14 +0xF44B 0x9B15 +0xF44C 0x9B16 +0xF44D 0x9B17 +0xF44E 0x9B18 +0xF44F 0x9B19 +0xF450 0x9B1A +0xF451 0x9B1B +0xF452 0x9B1C +0xF453 0x9B1D +0xF454 0x9B1E +0xF455 0x9B20 +0xF456 0x9B21 +0xF457 0x9B22 +0xF458 0x9B24 +0xF459 0x9B25 +0xF45A 0x9B26 +0xF45B 0x9B27 +0xF45C 0x9B28 +0xF45D 0x9B29 +0xF45E 0x9B2A +0xF45F 0x9B2B +0xF460 0x9B2C +0xF461 0x9B2D +0xF462 0x9B2E +0xF463 0x9B30 +0xF464 0x9B31 +0xF465 0x9B33 +0xF466 0x9B34 +0xF467 0x9B35 +0xF468 0x9B36 +0xF469 0x9B37 +0xF46A 0x9B38 +0xF46B 0x9B39 +0xF46C 0x9B3A +0xF46D 0x9B3D +0xF46E 0x9B3E +0xF46F 0x9B3F +0xF470 0x9B40 +0xF471 0x9B46 +0xF472 0x9B4A +0xF473 0x9B4B +0xF474 0x9B4C +0xF475 0x9B4E +0xF476 0x9B50 +0xF477 0x9B52 +0xF478 0x9B53 +0xF479 0x9B55 +0xF47A 0x9B56 +0xF47B 0x9B57 +0xF47C 0x9B58 +0xF47D 0x9B59 +0xF47E 0x9B5A +0xF480 0x9B5B +0xF481 0x9B5C +0xF482 0x9B5D +0xF483 0x9B5E +0xF484 0x9B5F +0xF485 0x9B60 +0xF486 0x9B61 +0xF487 0x9B62 +0xF488 0x9B63 +0xF489 0x9B64 +0xF48A 0x9B65 +0xF48B 0x9B66 +0xF48C 0x9B67 +0xF48D 0x9B68 +0xF48E 0x9B69 +0xF48F 0x9B6A +0xF490 0x9B6B +0xF491 0x9B6C +0xF492 0x9B6D +0xF493 0x9B6E +0xF494 0x9B6F +0xF495 0x9B70 +0xF496 0x9B71 +0xF497 0x9B72 +0xF498 0x9B73 +0xF499 0x9B74 +0xF49A 0x9B75 +0xF49B 0x9B76 +0xF49C 0x9B77 +0xF49D 0x9B78 +0xF49E 0x9B79 +0xF49F 0x9B7A +0xF4A0 0x9B7B +0xF4A1 0x7C1F +0xF4A2 0x7C2A +0xF4A3 0x7C26 +0xF4A4 0x7C38 +0xF4A5 0x7C41 +0xF4A6 0x7C40 +0xF4A7 0x81FE +0xF4A8 0x8201 +0xF4A9 0x8202 +0xF4AA 0x8204 +0xF4AB 0x81EC +0xF4AC 0x8844 +0xF4AD 0x8221 +0xF4AE 0x8222 +0xF4AF 0x8223 +0xF4B0 0x822D +0xF4B1 0x822F +0xF4B2 0x8228 +0xF4B3 0x822B +0xF4B4 0x8238 +0xF4B5 0x823B +0xF4B6 0x8233 +0xF4B7 0x8234 +0xF4B8 0x823E +0xF4B9 0x8244 +0xF4BA 0x8249 +0xF4BB 0x824B +0xF4BC 0x824F +0xF4BD 0x825A +0xF4BE 0x825F +0xF4BF 0x8268 +0xF4C0 0x887E +0xF4C1 0x8885 +0xF4C2 0x8888 +0xF4C3 0x88D8 +0xF4C4 0x88DF +0xF4C5 0x895E +0xF4C6 0x7F9D +0xF4C7 0x7F9F +0xF4C8 0x7FA7 +0xF4C9 0x7FAF +0xF4CA 0x7FB0 +0xF4CB 0x7FB2 +0xF4CC 0x7C7C +0xF4CD 0x6549 +0xF4CE 0x7C91 +0xF4CF 0x7C9D +0xF4D0 0x7C9C +0xF4D1 0x7C9E +0xF4D2 0x7CA2 +0xF4D3 0x7CB2 +0xF4D4 0x7CBC +0xF4D5 0x7CBD +0xF4D6 0x7CC1 +0xF4D7 0x7CC7 +0xF4D8 0x7CCC +0xF4D9 0x7CCD +0xF4DA 0x7CC8 +0xF4DB 0x7CC5 +0xF4DC 0x7CD7 +0xF4DD 0x7CE8 +0xF4DE 0x826E +0xF4DF 0x66A8 +0xF4E0 0x7FBF +0xF4E1 0x7FCE +0xF4E2 0x7FD5 +0xF4E3 0x7FE5 +0xF4E4 0x7FE1 +0xF4E5 0x7FE6 +0xF4E6 0x7FE9 +0xF4E7 0x7FEE +0xF4E8 0x7FF3 +0xF4E9 0x7CF8 +0xF4EA 0x7D77 +0xF4EB 0x7DA6 +0xF4EC 0x7DAE +0xF4ED 0x7E47 +0xF4EE 0x7E9B +0xF4EF 0x9EB8 +0xF4F0 0x9EB4 +0xF4F1 0x8D73 +0xF4F2 0x8D84 +0xF4F3 0x8D94 +0xF4F4 0x8D91 +0xF4F5 0x8DB1 +0xF4F6 0x8D67 +0xF4F7 0x8D6D +0xF4F8 0x8C47 +0xF4F9 0x8C49 +0xF4FA 0x914A +0xF4FB 0x9150 +0xF4FC 0x914E +0xF4FD 0x914F +0xF4FE 0x9164 +0xF540 0x9B7C +0xF541 0x9B7D +0xF542 0x9B7E +0xF543 0x9B7F +0xF544 0x9B80 +0xF545 0x9B81 +0xF546 0x9B82 +0xF547 0x9B83 +0xF548 0x9B84 +0xF549 0x9B85 +0xF54A 0x9B86 +0xF54B 0x9B87 +0xF54C 0x9B88 +0xF54D 0x9B89 +0xF54E 0x9B8A +0xF54F 0x9B8B +0xF550 0x9B8C +0xF551 0x9B8D +0xF552 0x9B8E +0xF553 0x9B8F +0xF554 0x9B90 +0xF555 0x9B91 +0xF556 0x9B92 +0xF557 0x9B93 +0xF558 0x9B94 +0xF559 0x9B95 +0xF55A 0x9B96 +0xF55B 0x9B97 +0xF55C 0x9B98 +0xF55D 0x9B99 +0xF55E 0x9B9A +0xF55F 0x9B9B +0xF560 0x9B9C +0xF561 0x9B9D +0xF562 0x9B9E +0xF563 0x9B9F +0xF564 0x9BA0 +0xF565 0x9BA1 +0xF566 0x9BA2 +0xF567 0x9BA3 +0xF568 0x9BA4 +0xF569 0x9BA5 +0xF56A 0x9BA6 +0xF56B 0x9BA7 +0xF56C 0x9BA8 +0xF56D 0x9BA9 +0xF56E 0x9BAA +0xF56F 0x9BAB +0xF570 0x9BAC +0xF571 0x9BAD +0xF572 0x9BAE +0xF573 0x9BAF +0xF574 0x9BB0 +0xF575 0x9BB1 +0xF576 0x9BB2 +0xF577 0x9BB3 +0xF578 0x9BB4 +0xF579 0x9BB5 +0xF57A 0x9BB6 +0xF57B 0x9BB7 +0xF57C 0x9BB8 +0xF57D 0x9BB9 +0xF57E 0x9BBA +0xF580 0x9BBB +0xF581 0x9BBC +0xF582 0x9BBD +0xF583 0x9BBE +0xF584 0x9BBF +0xF585 0x9BC0 +0xF586 0x9BC1 +0xF587 0x9BC2 +0xF588 0x9BC3 +0xF589 0x9BC4 +0xF58A 0x9BC5 +0xF58B 0x9BC6 +0xF58C 0x9BC7 +0xF58D 0x9BC8 +0xF58E 0x9BC9 +0xF58F 0x9BCA +0xF590 0x9BCB +0xF591 0x9BCC +0xF592 0x9BCD +0xF593 0x9BCE +0xF594 0x9BCF +0xF595 0x9BD0 +0xF596 0x9BD1 +0xF597 0x9BD2 +0xF598 0x9BD3 +0xF599 0x9BD4 +0xF59A 0x9BD5 +0xF59B 0x9BD6 +0xF59C 0x9BD7 +0xF59D 0x9BD8 +0xF59E 0x9BD9 +0xF59F 0x9BDA +0xF5A0 0x9BDB +0xF5A1 0x9162 +0xF5A2 0x9161 +0xF5A3 0x9170 +0xF5A4 0x9169 +0xF5A5 0x916F +0xF5A6 0x917D +0xF5A7 0x917E +0xF5A8 0x9172 +0xF5A9 0x9174 +0xF5AA 0x9179 +0xF5AB 0x918C +0xF5AC 0x9185 +0xF5AD 0x9190 +0xF5AE 0x918D +0xF5AF 0x9191 +0xF5B0 0x91A2 +0xF5B1 0x91A3 +0xF5B2 0x91AA +0xF5B3 0x91AD +0xF5B4 0x91AE +0xF5B5 0x91AF +0xF5B6 0x91B5 +0xF5B7 0x91B4 +0xF5B8 0x91BA +0xF5B9 0x8C55 +0xF5BA 0x9E7E +0xF5BB 0x8DB8 +0xF5BC 0x8DEB +0xF5BD 0x8E05 +0xF5BE 0x8E59 +0xF5BF 0x8E69 +0xF5C0 0x8DB5 +0xF5C1 0x8DBF +0xF5C2 0x8DBC +0xF5C3 0x8DBA +0xF5C4 0x8DC4 +0xF5C5 0x8DD6 +0xF5C6 0x8DD7 +0xF5C7 0x8DDA +0xF5C8 0x8DDE +0xF5C9 0x8DCE +0xF5CA 0x8DCF +0xF5CB 0x8DDB +0xF5CC 0x8DC6 +0xF5CD 0x8DEC +0xF5CE 0x8DF7 +0xF5CF 0x8DF8 +0xF5D0 0x8DE3 +0xF5D1 0x8DF9 +0xF5D2 0x8DFB +0xF5D3 0x8DE4 +0xF5D4 0x8E09 +0xF5D5 0x8DFD +0xF5D6 0x8E14 +0xF5D7 0x8E1D +0xF5D8 0x8E1F +0xF5D9 0x8E2C +0xF5DA 0x8E2E +0xF5DB 0x8E23 +0xF5DC 0x8E2F +0xF5DD 0x8E3A +0xF5DE 0x8E40 +0xF5DF 0x8E39 +0xF5E0 0x8E35 +0xF5E1 0x8E3D +0xF5E2 0x8E31 +0xF5E3 0x8E49 +0xF5E4 0x8E41 +0xF5E5 0x8E42 +0xF5E6 0x8E51 +0xF5E7 0x8E52 +0xF5E8 0x8E4A +0xF5E9 0x8E70 +0xF5EA 0x8E76 +0xF5EB 0x8E7C +0xF5EC 0x8E6F +0xF5ED 0x8E74 +0xF5EE 0x8E85 +0xF5EF 0x8E8F +0xF5F0 0x8E94 +0xF5F1 0x8E90 +0xF5F2 0x8E9C +0xF5F3 0x8E9E +0xF5F4 0x8C78 +0xF5F5 0x8C82 +0xF5F6 0x8C8A +0xF5F7 0x8C85 +0xF5F8 0x8C98 +0xF5F9 0x8C94 +0xF5FA 0x659B +0xF5FB 0x89D6 +0xF5FC 0x89DE +0xF5FD 0x89DA +0xF5FE 0x89DC +0xF640 0x9BDC +0xF641 0x9BDD +0xF642 0x9BDE +0xF643 0x9BDF +0xF644 0x9BE0 +0xF645 0x9BE1 +0xF646 0x9BE2 +0xF647 0x9BE3 +0xF648 0x9BE4 +0xF649 0x9BE5 +0xF64A 0x9BE6 +0xF64B 0x9BE7 +0xF64C 0x9BE8 +0xF64D 0x9BE9 +0xF64E 0x9BEA +0xF64F 0x9BEB +0xF650 0x9BEC +0xF651 0x9BED +0xF652 0x9BEE +0xF653 0x9BEF +0xF654 0x9BF0 +0xF655 0x9BF1 +0xF656 0x9BF2 +0xF657 0x9BF3 +0xF658 0x9BF4 +0xF659 0x9BF5 +0xF65A 0x9BF6 +0xF65B 0x9BF7 +0xF65C 0x9BF8 +0xF65D 0x9BF9 +0xF65E 0x9BFA +0xF65F 0x9BFB +0xF660 0x9BFC +0xF661 0x9BFD +0xF662 0x9BFE +0xF663 0x9BFF +0xF664 0x9C00 +0xF665 0x9C01 +0xF666 0x9C02 +0xF667 0x9C03 +0xF668 0x9C04 +0xF669 0x9C05 +0xF66A 0x9C06 +0xF66B 0x9C07 +0xF66C 0x9C08 +0xF66D 0x9C09 +0xF66E 0x9C0A +0xF66F 0x9C0B +0xF670 0x9C0C +0xF671 0x9C0D +0xF672 0x9C0E +0xF673 0x9C0F +0xF674 0x9C10 +0xF675 0x9C11 +0xF676 0x9C12 +0xF677 0x9C13 +0xF678 0x9C14 +0xF679 0x9C15 +0xF67A 0x9C16 +0xF67B 0x9C17 +0xF67C 0x9C18 +0xF67D 0x9C19 +0xF67E 0x9C1A +0xF680 0x9C1B +0xF681 0x9C1C +0xF682 0x9C1D +0xF683 0x9C1E +0xF684 0x9C1F +0xF685 0x9C20 +0xF686 0x9C21 +0xF687 0x9C22 +0xF688 0x9C23 +0xF689 0x9C24 +0xF68A 0x9C25 +0xF68B 0x9C26 +0xF68C 0x9C27 +0xF68D 0x9C28 +0xF68E 0x9C29 +0xF68F 0x9C2A +0xF690 0x9C2B +0xF691 0x9C2C +0xF692 0x9C2D +0xF693 0x9C2E +0xF694 0x9C2F +0xF695 0x9C30 +0xF696 0x9C31 +0xF697 0x9C32 +0xF698 0x9C33 +0xF699 0x9C34 +0xF69A 0x9C35 +0xF69B 0x9C36 +0xF69C 0x9C37 +0xF69D 0x9C38 +0xF69E 0x9C39 +0xF69F 0x9C3A +0xF6A0 0x9C3B +0xF6A1 0x89E5 +0xF6A2 0x89EB +0xF6A3 0x89EF +0xF6A4 0x8A3E +0xF6A5 0x8B26 +0xF6A6 0x9753 +0xF6A7 0x96E9 +0xF6A8 0x96F3 +0xF6A9 0x96EF +0xF6AA 0x9706 +0xF6AB 0x9701 +0xF6AC 0x9708 +0xF6AD 0x970F +0xF6AE 0x970E +0xF6AF 0x972A +0xF6B0 0x972D +0xF6B1 0x9730 +0xF6B2 0x973E +0xF6B3 0x9F80 +0xF6B4 0x9F83 +0xF6B5 0x9F85 +0xF6B6 0x9F86 +0xF6B7 0x9F87 +0xF6B8 0x9F88 +0xF6B9 0x9F89 +0xF6BA 0x9F8A +0xF6BB 0x9F8C +0xF6BC 0x9EFE +0xF6BD 0x9F0B +0xF6BE 0x9F0D +0xF6BF 0x96B9 +0xF6C0 0x96BC +0xF6C1 0x96BD +0xF6C2 0x96CE +0xF6C3 0x96D2 +0xF6C4 0x77BF +0xF6C5 0x96E0 +0xF6C6 0x928E +0xF6C7 0x92AE +0xF6C8 0x92C8 +0xF6C9 0x933E +0xF6CA 0x936A +0xF6CB 0x93CA +0xF6CC 0x938F +0xF6CD 0x943E +0xF6CE 0x946B +0xF6CF 0x9C7F +0xF6D0 0x9C82 +0xF6D1 0x9C85 +0xF6D2 0x9C86 +0xF6D3 0x9C87 +0xF6D4 0x9C88 +0xF6D5 0x7A23 +0xF6D6 0x9C8B +0xF6D7 0x9C8E +0xF6D8 0x9C90 +0xF6D9 0x9C91 +0xF6DA 0x9C92 +0xF6DB 0x9C94 +0xF6DC 0x9C95 +0xF6DD 0x9C9A +0xF6DE 0x9C9B +0xF6DF 0x9C9E +0xF6E0 0x9C9F +0xF6E1 0x9CA0 +0xF6E2 0x9CA1 +0xF6E3 0x9CA2 +0xF6E4 0x9CA3 +0xF6E5 0x9CA5 +0xF6E6 0x9CA6 +0xF6E7 0x9CA7 +0xF6E8 0x9CA8 +0xF6E9 0x9CA9 +0xF6EA 0x9CAB +0xF6EB 0x9CAD +0xF6EC 0x9CAE +0xF6ED 0x9CB0 +0xF6EE 0x9CB1 +0xF6EF 0x9CB2 +0xF6F0 0x9CB3 +0xF6F1 0x9CB4 +0xF6F2 0x9CB5 +0xF6F3 0x9CB6 +0xF6F4 0x9CB7 +0xF6F5 0x9CBA +0xF6F6 0x9CBB +0xF6F7 0x9CBC +0xF6F8 0x9CBD +0xF6F9 0x9CC4 +0xF6FA 0x9CC5 +0xF6FB 0x9CC6 +0xF6FC 0x9CC7 +0xF6FD 0x9CCA +0xF6FE 0x9CCB +0xF740 0x9C3C +0xF741 0x9C3D +0xF742 0x9C3E +0xF743 0x9C3F +0xF744 0x9C40 +0xF745 0x9C41 +0xF746 0x9C42 +0xF747 0x9C43 +0xF748 0x9C44 +0xF749 0x9C45 +0xF74A 0x9C46 +0xF74B 0x9C47 +0xF74C 0x9C48 +0xF74D 0x9C49 +0xF74E 0x9C4A +0xF74F 0x9C4B +0xF750 0x9C4C +0xF751 0x9C4D +0xF752 0x9C4E +0xF753 0x9C4F +0xF754 0x9C50 +0xF755 0x9C51 +0xF756 0x9C52 +0xF757 0x9C53 +0xF758 0x9C54 +0xF759 0x9C55 +0xF75A 0x9C56 +0xF75B 0x9C57 +0xF75C 0x9C58 +0xF75D 0x9C59 +0xF75E 0x9C5A +0xF75F 0x9C5B +0xF760 0x9C5C +0xF761 0x9C5D +0xF762 0x9C5E +0xF763 0x9C5F +0xF764 0x9C60 +0xF765 0x9C61 +0xF766 0x9C62 +0xF767 0x9C63 +0xF768 0x9C64 +0xF769 0x9C65 +0xF76A 0x9C66 +0xF76B 0x9C67 +0xF76C 0x9C68 +0xF76D 0x9C69 +0xF76E 0x9C6A +0xF76F 0x9C6B +0xF770 0x9C6C +0xF771 0x9C6D +0xF772 0x9C6E +0xF773 0x9C6F +0xF774 0x9C70 +0xF775 0x9C71 +0xF776 0x9C72 +0xF777 0x9C73 +0xF778 0x9C74 +0xF779 0x9C75 +0xF77A 0x9C76 +0xF77B 0x9C77 +0xF77C 0x9C78 +0xF77D 0x9C79 +0xF77E 0x9C7A +0xF780 0x9C7B +0xF781 0x9C7D +0xF782 0x9C7E +0xF783 0x9C80 +0xF784 0x9C83 +0xF785 0x9C84 +0xF786 0x9C89 +0xF787 0x9C8A +0xF788 0x9C8C +0xF789 0x9C8F +0xF78A 0x9C93 +0xF78B 0x9C96 +0xF78C 0x9C97 +0xF78D 0x9C98 +0xF78E 0x9C99 +0xF78F 0x9C9D +0xF790 0x9CAA +0xF791 0x9CAC +0xF792 0x9CAF +0xF793 0x9CB9 +0xF794 0x9CBE +0xF795 0x9CBF +0xF796 0x9CC0 +0xF797 0x9CC1 +0xF798 0x9CC2 +0xF799 0x9CC8 +0xF79A 0x9CC9 +0xF79B 0x9CD1 +0xF79C 0x9CD2 +0xF79D 0x9CDA +0xF79E 0x9CDB +0xF79F 0x9CE0 +0xF7A0 0x9CE1 +0xF7A1 0x9CCC +0xF7A2 0x9CCD +0xF7A3 0x9CCE +0xF7A4 0x9CCF +0xF7A5 0x9CD0 +0xF7A6 0x9CD3 +0xF7A7 0x9CD4 +0xF7A8 0x9CD5 +0xF7A9 0x9CD7 +0xF7AA 0x9CD8 +0xF7AB 0x9CD9 +0xF7AC 0x9CDC +0xF7AD 0x9CDD +0xF7AE 0x9CDF +0xF7AF 0x9CE2 +0xF7B0 0x977C +0xF7B1 0x9785 +0xF7B2 0x9791 +0xF7B3 0x9792 +0xF7B4 0x9794 +0xF7B5 0x97AF +0xF7B6 0x97AB +0xF7B7 0x97A3 +0xF7B8 0x97B2 +0xF7B9 0x97B4 +0xF7BA 0x9AB1 +0xF7BB 0x9AB0 +0xF7BC 0x9AB7 +0xF7BD 0x9E58 +0xF7BE 0x9AB6 +0xF7BF 0x9ABA +0xF7C0 0x9ABC +0xF7C1 0x9AC1 +0xF7C2 0x9AC0 +0xF7C3 0x9AC5 +0xF7C4 0x9AC2 +0xF7C5 0x9ACB +0xF7C6 0x9ACC +0xF7C7 0x9AD1 +0xF7C8 0x9B45 +0xF7C9 0x9B43 +0xF7CA 0x9B47 +0xF7CB 0x9B49 +0xF7CC 0x9B48 +0xF7CD 0x9B4D +0xF7CE 0x9B51 +0xF7CF 0x98E8 +0xF7D0 0x990D +0xF7D1 0x992E +0xF7D2 0x9955 +0xF7D3 0x9954 +0xF7D4 0x9ADF +0xF7D5 0x9AE1 +0xF7D6 0x9AE6 +0xF7D7 0x9AEF +0xF7D8 0x9AEB +0xF7D9 0x9AFB +0xF7DA 0x9AED +0xF7DB 0x9AF9 +0xF7DC 0x9B08 +0xF7DD 0x9B0F +0xF7DE 0x9B13 +0xF7DF 0x9B1F +0xF7E0 0x9B23 +0xF7E1 0x9EBD +0xF7E2 0x9EBE +0xF7E3 0x7E3B +0xF7E4 0x9E82 +0xF7E5 0x9E87 +0xF7E6 0x9E88 +0xF7E7 0x9E8B +0xF7E8 0x9E92 +0xF7E9 0x93D6 +0xF7EA 0x9E9D +0xF7EB 0x9E9F +0xF7EC 0x9EDB +0xF7ED 0x9EDC +0xF7EE 0x9EDD +0xF7EF 0x9EE0 +0xF7F0 0x9EDF +0xF7F1 0x9EE2 +0xF7F2 0x9EE9 +0xF7F3 0x9EE7 +0xF7F4 0x9EE5 +0xF7F5 0x9EEA +0xF7F6 0x9EEF +0xF7F7 0x9F22 +0xF7F8 0x9F2C +0xF7F9 0x9F2F +0xF7FA 0x9F39 +0xF7FB 0x9F37 +0xF7FC 0x9F3D +0xF7FD 0x9F3E +0xF7FE 0x9F44 +0xF840 0x9CE3 +0xF841 0x9CE4 +0xF842 0x9CE5 +0xF843 0x9CE6 +0xF844 0x9CE7 +0xF845 0x9CE8 +0xF846 0x9CE9 +0xF847 0x9CEA +0xF848 0x9CEB +0xF849 0x9CEC +0xF84A 0x9CED +0xF84B 0x9CEE +0xF84C 0x9CEF +0xF84D 0x9CF0 +0xF84E 0x9CF1 +0xF84F 0x9CF2 +0xF850 0x9CF3 +0xF851 0x9CF4 +0xF852 0x9CF5 +0xF853 0x9CF6 +0xF854 0x9CF7 +0xF855 0x9CF8 +0xF856 0x9CF9 +0xF857 0x9CFA +0xF858 0x9CFB +0xF859 0x9CFC +0xF85A 0x9CFD +0xF85B 0x9CFE +0xF85C 0x9CFF +0xF85D 0x9D00 +0xF85E 0x9D01 +0xF85F 0x9D02 +0xF860 0x9D03 +0xF861 0x9D04 +0xF862 0x9D05 +0xF863 0x9D06 +0xF864 0x9D07 +0xF865 0x9D08 +0xF866 0x9D09 +0xF867 0x9D0A +0xF868 0x9D0B +0xF869 0x9D0C +0xF86A 0x9D0D +0xF86B 0x9D0E +0xF86C 0x9D0F +0xF86D 0x9D10 +0xF86E 0x9D11 +0xF86F 0x9D12 +0xF870 0x9D13 +0xF871 0x9D14 +0xF872 0x9D15 +0xF873 0x9D16 +0xF874 0x9D17 +0xF875 0x9D18 +0xF876 0x9D19 +0xF877 0x9D1A +0xF878 0x9D1B +0xF879 0x9D1C +0xF87A 0x9D1D +0xF87B 0x9D1E +0xF87C 0x9D1F +0xF87D 0x9D20 +0xF87E 0x9D21 +0xF880 0x9D22 +0xF881 0x9D23 +0xF882 0x9D24 +0xF883 0x9D25 +0xF884 0x9D26 +0xF885 0x9D27 +0xF886 0x9D28 +0xF887 0x9D29 +0xF888 0x9D2A +0xF889 0x9D2B +0xF88A 0x9D2C +0xF88B 0x9D2D +0xF88C 0x9D2E +0xF88D 0x9D2F +0xF88E 0x9D30 +0xF88F 0x9D31 +0xF890 0x9D32 +0xF891 0x9D33 +0xF892 0x9D34 +0xF893 0x9D35 +0xF894 0x9D36 +0xF895 0x9D37 +0xF896 0x9D38 +0xF897 0x9D39 +0xF898 0x9D3A +0xF899 0x9D3B +0xF89A 0x9D3C +0xF89B 0x9D3D +0xF89C 0x9D3E +0xF89D 0x9D3F +0xF89E 0x9D40 +0xF89F 0x9D41 +0xF8A0 0x9D42 +0xF8A1 0xE234 +0xF8A2 0xE235 +0xF8A3 0xE236 +0xF8A4 0xE237 +0xF8A5 0xE238 +0xF8A6 0xE239 +0xF8A7 0xE23A +0xF8A8 0xE23B +0xF8A9 0xE23C +0xF8AA 0xE23D +0xF8AB 0xE23E +0xF8AC 0xE23F +0xF8AD 0xE240 +0xF8AE 0xE241 +0xF8AF 0xE242 +0xF8B0 0xE243 +0xF8B1 0xE244 +0xF8B2 0xE245 +0xF8B3 0xE246 +0xF8B4 0xE247 +0xF8B5 0xE248 +0xF8B6 0xE249 +0xF8B7 0xE24A +0xF8B8 0xE24B +0xF8B9 0xE24C +0xF8BA 0xE24D +0xF8BB 0xE24E +0xF8BC 0xE24F +0xF8BD 0xE250 +0xF8BE 0xE251 +0xF8BF 0xE252 +0xF8C0 0xE253 +0xF8C1 0xE254 +0xF8C2 0xE255 +0xF8C3 0xE256 +0xF8C4 0xE257 +0xF8C5 0xE258 +0xF8C6 0xE259 +0xF8C7 0xE25A +0xF8C8 0xE25B +0xF8C9 0xE25C +0xF8CA 0xE25D +0xF8CB 0xE25E +0xF8CC 0xE25F +0xF8CD 0xE260 +0xF8CE 0xE261 +0xF8CF 0xE262 +0xF8D0 0xE263 +0xF8D1 0xE264 +0xF8D2 0xE265 +0xF8D3 0xE266 +0xF8D4 0xE267 +0xF8D5 0xE268 +0xF8D6 0xE269 +0xF8D7 0xE26A +0xF8D8 0xE26B +0xF8D9 0xE26C +0xF8DA 0xE26D +0xF8DB 0xE26E +0xF8DC 0xE26F +0xF8DD 0xE270 +0xF8DE 0xE271 +0xF8DF 0xE272 +0xF8E0 0xE273 +0xF8E1 0xE274 +0xF8E2 0xE275 +0xF8E3 0xE276 +0xF8E4 0xE277 +0xF8E5 0xE278 +0xF8E6 0xE279 +0xF8E7 0xE27A +0xF8E8 0xE27B +0xF8E9 0xE27C +0xF8EA 0xE27D +0xF8EB 0xE27E +0xF8EC 0xE27F +0xF8ED 0xE280 +0xF8EE 0xE281 +0xF8EF 0xE282 +0xF8F0 0xE283 +0xF8F1 0xE284 +0xF8F2 0xE285 +0xF8F3 0xE286 +0xF8F4 0xE287 +0xF8F5 0xE288 +0xF8F6 0xE289 +0xF8F7 0xE28A +0xF8F8 0xE28B +0xF8F9 0xE28C +0xF8FA 0xE28D +0xF8FB 0xE28E +0xF8FC 0xE28F +0xF8FD 0xE290 +0xF8FE 0xE291 +0xF940 0x9D43 +0xF941 0x9D44 +0xF942 0x9D45 +0xF943 0x9D46 +0xF944 0x9D47 +0xF945 0x9D48 +0xF946 0x9D49 +0xF947 0x9D4A +0xF948 0x9D4B +0xF949 0x9D4C +0xF94A 0x9D4D +0xF94B 0x9D4E +0xF94C 0x9D4F +0xF94D 0x9D50 +0xF94E 0x9D51 +0xF94F 0x9D52 +0xF950 0x9D53 +0xF951 0x9D54 +0xF952 0x9D55 +0xF953 0x9D56 +0xF954 0x9D57 +0xF955 0x9D58 +0xF956 0x9D59 +0xF957 0x9D5A +0xF958 0x9D5B +0xF959 0x9D5C +0xF95A 0x9D5D +0xF95B 0x9D5E +0xF95C 0x9D5F +0xF95D 0x9D60 +0xF95E 0x9D61 +0xF95F 0x9D62 +0xF960 0x9D63 +0xF961 0x9D64 +0xF962 0x9D65 +0xF963 0x9D66 +0xF964 0x9D67 +0xF965 0x9D68 +0xF966 0x9D69 +0xF967 0x9D6A +0xF968 0x9D6B +0xF969 0x9D6C +0xF96A 0x9D6D +0xF96B 0x9D6E +0xF96C 0x9D6F +0xF96D 0x9D70 +0xF96E 0x9D71 +0xF96F 0x9D72 +0xF970 0x9D73 +0xF971 0x9D74 +0xF972 0x9D75 +0xF973 0x9D76 +0xF974 0x9D77 +0xF975 0x9D78 +0xF976 0x9D79 +0xF977 0x9D7A +0xF978 0x9D7B +0xF979 0x9D7C +0xF97A 0x9D7D +0xF97B 0x9D7E +0xF97C 0x9D7F +0xF97D 0x9D80 +0xF97E 0x9D81 +0xF980 0x9D82 +0xF981 0x9D83 +0xF982 0x9D84 +0xF983 0x9D85 +0xF984 0x9D86 +0xF985 0x9D87 +0xF986 0x9D88 +0xF987 0x9D89 +0xF988 0x9D8A +0xF989 0x9D8B +0xF98A 0x9D8C +0xF98B 0x9D8D +0xF98C 0x9D8E +0xF98D 0x9D8F +0xF98E 0x9D90 +0xF98F 0x9D91 +0xF990 0x9D92 +0xF991 0x9D93 +0xF992 0x9D94 +0xF993 0x9D95 +0xF994 0x9D96 +0xF995 0x9D97 +0xF996 0x9D98 +0xF997 0x9D99 +0xF998 0x9D9A +0xF999 0x9D9B +0xF99A 0x9D9C +0xF99B 0x9D9D +0xF99C 0x9D9E +0xF99D 0x9D9F +0xF99E 0x9DA0 +0xF99F 0x9DA1 +0xF9A0 0x9DA2 +0xF9A1 0xE292 +0xF9A2 0xE293 +0xF9A3 0xE294 +0xF9A4 0xE295 +0xF9A5 0xE296 +0xF9A6 0xE297 +0xF9A7 0xE298 +0xF9A8 0xE299 +0xF9A9 0xE29A +0xF9AA 0xE29B +0xF9AB 0xE29C +0xF9AC 0xE29D +0xF9AD 0xE29E +0xF9AE 0xE29F +0xF9AF 0xE2A0 +0xF9B0 0xE2A1 +0xF9B1 0xE2A2 +0xF9B2 0xE2A3 +0xF9B3 0xE2A4 +0xF9B4 0xE2A5 +0xF9B5 0xE2A6 +0xF9B6 0xE2A7 +0xF9B7 0xE2A8 +0xF9B8 0xE2A9 +0xF9B9 0xE2AA +0xF9BA 0xE2AB +0xF9BB 0xE2AC +0xF9BC 0xE2AD +0xF9BD 0xE2AE +0xF9BE 0xE2AF +0xF9BF 0xE2B0 +0xF9C0 0xE2B1 +0xF9C1 0xE2B2 +0xF9C2 0xE2B3 +0xF9C3 0xE2B4 +0xF9C4 0xE2B5 +0xF9C5 0xE2B6 +0xF9C6 0xE2B7 +0xF9C7 0xE2B8 +0xF9C8 0xE2B9 +0xF9C9 0xE2BA +0xF9CA 0xE2BB +0xF9CB 0xE2BC +0xF9CC 0xE2BD +0xF9CD 0xE2BE +0xF9CE 0xE2BF +0xF9CF 0xE2C0 +0xF9D0 0xE2C1 +0xF9D1 0xE2C2 +0xF9D2 0xE2C3 +0xF9D3 0xE2C4 +0xF9D4 0xE2C5 +0xF9D5 0xE2C6 +0xF9D6 0xE2C7 +0xF9D7 0xE2C8 +0xF9D8 0xE2C9 +0xF9D9 0xE2CA +0xF9DA 0xE2CB +0xF9DB 0xE2CC +0xF9DC 0xE2CD +0xF9DD 0xE2CE +0xF9DE 0xE2CF +0xF9DF 0xE2D0 +0xF9E0 0xE2D1 +0xF9E1 0xE2D2 +0xF9E2 0xE2D3 +0xF9E3 0xE2D4 +0xF9E4 0xE2D5 +0xF9E5 0xE2D6 +0xF9E6 0xE2D7 +0xF9E7 0xE2D8 +0xF9E8 0xE2D9 +0xF9E9 0xE2DA +0xF9EA 0xE2DB +0xF9EB 0xE2DC +0xF9EC 0xE2DD +0xF9ED 0xE2DE +0xF9EE 0xE2DF +0xF9EF 0xE2E0 +0xF9F0 0xE2E1 +0xF9F1 0xE2E2 +0xF9F2 0xE2E3 +0xF9F3 0xE2E4 +0xF9F4 0xE2E5 +0xF9F5 0xE2E6 +0xF9F6 0xE2E7 +0xF9F7 0xE2E8 +0xF9F8 0xE2E9 +0xF9F9 0xE2EA +0xF9FA 0xE2EB +0xF9FB 0xE2EC +0xF9FC 0xE2ED +0xF9FD 0xE2EE +0xF9FE 0xE2EF +0xFA40 0x9DA3 +0xFA41 0x9DA4 +0xFA42 0x9DA5 +0xFA43 0x9DA6 +0xFA44 0x9DA7 +0xFA45 0x9DA8 +0xFA46 0x9DA9 +0xFA47 0x9DAA +0xFA48 0x9DAB +0xFA49 0x9DAC +0xFA4A 0x9DAD +0xFA4B 0x9DAE +0xFA4C 0x9DAF +0xFA4D 0x9DB0 +0xFA4E 0x9DB1 +0xFA4F 0x9DB2 +0xFA50 0x9DB3 +0xFA51 0x9DB4 +0xFA52 0x9DB5 +0xFA53 0x9DB6 +0xFA54 0x9DB7 +0xFA55 0x9DB8 +0xFA56 0x9DB9 +0xFA57 0x9DBA +0xFA58 0x9DBB +0xFA59 0x9DBC +0xFA5A 0x9DBD +0xFA5B 0x9DBE +0xFA5C 0x9DBF +0xFA5D 0x9DC0 +0xFA5E 0x9DC1 +0xFA5F 0x9DC2 +0xFA60 0x9DC3 +0xFA61 0x9DC4 +0xFA62 0x9DC5 +0xFA63 0x9DC6 +0xFA64 0x9DC7 +0xFA65 0x9DC8 +0xFA66 0x9DC9 +0xFA67 0x9DCA +0xFA68 0x9DCB +0xFA69 0x9DCC +0xFA6A 0x9DCD +0xFA6B 0x9DCE +0xFA6C 0x9DCF +0xFA6D 0x9DD0 +0xFA6E 0x9DD1 +0xFA6F 0x9DD2 +0xFA70 0x9DD3 +0xFA71 0x9DD4 +0xFA72 0x9DD5 +0xFA73 0x9DD6 +0xFA74 0x9DD7 +0xFA75 0x9DD8 +0xFA76 0x9DD9 +0xFA77 0x9DDA +0xFA78 0x9DDB +0xFA79 0x9DDC +0xFA7A 0x9DDD +0xFA7B 0x9DDE +0xFA7C 0x9DDF +0xFA7D 0x9DE0 +0xFA7E 0x9DE1 +0xFA80 0x9DE2 +0xFA81 0x9DE3 +0xFA82 0x9DE4 +0xFA83 0x9DE5 +0xFA84 0x9DE6 +0xFA85 0x9DE7 +0xFA86 0x9DE8 +0xFA87 0x9DE9 +0xFA88 0x9DEA +0xFA89 0x9DEB +0xFA8A 0x9DEC +0xFA8B 0x9DED +0xFA8C 0x9DEE +0xFA8D 0x9DEF +0xFA8E 0x9DF0 +0xFA8F 0x9DF1 +0xFA90 0x9DF2 +0xFA91 0x9DF3 +0xFA92 0x9DF4 +0xFA93 0x9DF5 +0xFA94 0x9DF6 +0xFA95 0x9DF7 +0xFA96 0x9DF8 +0xFA97 0x9DF9 +0xFA98 0x9DFA +0xFA99 0x9DFB +0xFA9A 0x9DFC +0xFA9B 0x9DFD +0xFA9C 0x9DFE +0xFA9D 0x9DFF +0xFA9E 0x9E00 +0xFA9F 0x9E01 +0xFAA0 0x9E02 +0xFAA1 0xE2F0 +0xFAA2 0xE2F1 +0xFAA3 0xE2F2 +0xFAA4 0xE2F3 +0xFAA5 0xE2F4 +0xFAA6 0xE2F5 +0xFAA7 0xE2F6 +0xFAA8 0xE2F7 +0xFAA9 0xE2F8 +0xFAAA 0xE2F9 +0xFAAB 0xE2FA +0xFAAC 0xE2FB +0xFAAD 0xE2FC +0xFAAE 0xE2FD +0xFAAF 0xE2FE +0xFAB0 0xE2FF +0xFAB1 0xE300 +0xFAB2 0xE301 +0xFAB3 0xE302 +0xFAB4 0xE303 +0xFAB5 0xE304 +0xFAB6 0xE305 +0xFAB7 0xE306 +0xFAB8 0xE307 +0xFAB9 0xE308 +0xFABA 0xE309 +0xFABB 0xE30A +0xFABC 0xE30B +0xFABD 0xE30C +0xFABE 0xE30D +0xFABF 0xE30E +0xFAC0 0xE30F +0xFAC1 0xE310 +0xFAC2 0xE311 +0xFAC3 0xE312 +0xFAC4 0xE313 +0xFAC5 0xE314 +0xFAC6 0xE315 +0xFAC7 0xE316 +0xFAC8 0xE317 +0xFAC9 0xE318 +0xFACA 0xE319 +0xFACB 0xE31A +0xFACC 0xE31B +0xFACD 0xE31C +0xFACE 0xE31D +0xFACF 0xE31E +0xFAD0 0xE31F +0xFAD1 0xE320 +0xFAD2 0xE321 +0xFAD3 0xE322 +0xFAD4 0xE323 +0xFAD5 0xE324 +0xFAD6 0xE325 +0xFAD7 0xE326 +0xFAD8 0xE327 +0xFAD9 0xE328 +0xFADA 0xE329 +0xFADB 0xE32A +0xFADC 0xE32B +0xFADD 0xE32C +0xFADE 0xE32D +0xFADF 0xE32E +0xFAE0 0xE32F +0xFAE1 0xE330 +0xFAE2 0xE331 +0xFAE3 0xE332 +0xFAE4 0xE333 +0xFAE5 0xE334 +0xFAE6 0xE335 +0xFAE7 0xE336 +0xFAE8 0xE337 +0xFAE9 0xE338 +0xFAEA 0xE339 +0xFAEB 0xE33A +0xFAEC 0xE33B +0xFAED 0xE33C +0xFAEE 0xE33D +0xFAEF 0xE33E +0xFAF0 0xE33F +0xFAF1 0xE340 +0xFAF2 0xE341 +0xFAF3 0xE342 +0xFAF4 0xE343 +0xFAF5 0xE344 +0xFAF6 0xE345 +0xFAF7 0xE346 +0xFAF8 0xE347 +0xFAF9 0xE348 +0xFAFA 0xE349 +0xFAFB 0xE34A +0xFAFC 0xE34B +0xFAFD 0xE34C +0xFAFE 0xE34D +0xFB40 0x9E03 +0xFB41 0x9E04 +0xFB42 0x9E05 +0xFB43 0x9E06 +0xFB44 0x9E07 +0xFB45 0x9E08 +0xFB46 0x9E09 +0xFB47 0x9E0A +0xFB48 0x9E0B +0xFB49 0x9E0C +0xFB4A 0x9E0D +0xFB4B 0x9E0E +0xFB4C 0x9E0F +0xFB4D 0x9E10 +0xFB4E 0x9E11 +0xFB4F 0x9E12 +0xFB50 0x9E13 +0xFB51 0x9E14 +0xFB52 0x9E15 +0xFB53 0x9E16 +0xFB54 0x9E17 +0xFB55 0x9E18 +0xFB56 0x9E19 +0xFB57 0x9E1A +0xFB58 0x9E1B +0xFB59 0x9E1C +0xFB5A 0x9E1D +0xFB5B 0x9E1E +0xFB5C 0x9E24 +0xFB5D 0x9E27 +0xFB5E 0x9E2E +0xFB5F 0x9E30 +0xFB60 0x9E34 +0xFB61 0x9E3B +0xFB62 0x9E3C +0xFB63 0x9E40 +0xFB64 0x9E4D +0xFB65 0x9E50 +0xFB66 0x9E52 +0xFB67 0x9E53 +0xFB68 0x9E54 +0xFB69 0x9E56 +0xFB6A 0x9E59 +0xFB6B 0x9E5D +0xFB6C 0x9E5F +0xFB6D 0x9E60 +0xFB6E 0x9E61 +0xFB6F 0x9E62 +0xFB70 0x9E65 +0xFB71 0x9E6E +0xFB72 0x9E6F +0xFB73 0x9E72 +0xFB74 0x9E74 +0xFB75 0x9E75 +0xFB76 0x9E76 +0xFB77 0x9E77 +0xFB78 0x9E78 +0xFB79 0x9E79 +0xFB7A 0x9E7A +0xFB7B 0x9E7B +0xFB7C 0x9E7C +0xFB7D 0x9E7D +0xFB7E 0x9E80 +0xFB80 0x9E81 +0xFB81 0x9E83 +0xFB82 0x9E84 +0xFB83 0x9E85 +0xFB84 0x9E86 +0xFB85 0x9E89 +0xFB86 0x9E8A +0xFB87 0x9E8C +0xFB88 0x9E8D +0xFB89 0x9E8E +0xFB8A 0x9E8F +0xFB8B 0x9E90 +0xFB8C 0x9E91 +0xFB8D 0x9E94 +0xFB8E 0x9E95 +0xFB8F 0x9E96 +0xFB90 0x9E97 +0xFB91 0x9E98 +0xFB92 0x9E99 +0xFB93 0x9E9A +0xFB94 0x9E9B +0xFB95 0x9E9C +0xFB96 0x9E9E +0xFB97 0x9EA0 +0xFB98 0x9EA1 +0xFB99 0x9EA2 +0xFB9A 0x9EA3 +0xFB9B 0x9EA4 +0xFB9C 0x9EA5 +0xFB9D 0x9EA7 +0xFB9E 0x9EA8 +0xFB9F 0x9EA9 +0xFBA0 0x9EAA +0xFBA1 0xE34E +0xFBA2 0xE34F +0xFBA3 0xE350 +0xFBA4 0xE351 +0xFBA5 0xE352 +0xFBA6 0xE353 +0xFBA7 0xE354 +0xFBA8 0xE355 +0xFBA9 0xE356 +0xFBAA 0xE357 +0xFBAB 0xE358 +0xFBAC 0xE359 +0xFBAD 0xE35A +0xFBAE 0xE35B +0xFBAF 0xE35C +0xFBB0 0xE35D +0xFBB1 0xE35E +0xFBB2 0xE35F +0xFBB3 0xE360 +0xFBB4 0xE361 +0xFBB5 0xE362 +0xFBB6 0xE363 +0xFBB7 0xE364 +0xFBB8 0xE365 +0xFBB9 0xE366 +0xFBBA 0xE367 +0xFBBB 0xE368 +0xFBBC 0xE369 +0xFBBD 0xE36A +0xFBBE 0xE36B +0xFBBF 0xE36C +0xFBC0 0xE36D +0xFBC1 0xE36E +0xFBC2 0xE36F +0xFBC3 0xE370 +0xFBC4 0xE371 +0xFBC5 0xE372 +0xFBC6 0xE373 +0xFBC7 0xE374 +0xFBC8 0xE375 +0xFBC9 0xE376 +0xFBCA 0xE377 +0xFBCB 0xE378 +0xFBCC 0xE379 +0xFBCD 0xE37A +0xFBCE 0xE37B +0xFBCF 0xE37C +0xFBD0 0xE37D +0xFBD1 0xE37E +0xFBD2 0xE37F +0xFBD3 0xE380 +0xFBD4 0xE381 +0xFBD5 0xE382 +0xFBD6 0xE383 +0xFBD7 0xE384 +0xFBD8 0xE385 +0xFBD9 0xE386 +0xFBDA 0xE387 +0xFBDB 0xE388 +0xFBDC 0xE389 +0xFBDD 0xE38A +0xFBDE 0xE38B +0xFBDF 0xE38C +0xFBE0 0xE38D +0xFBE1 0xE38E +0xFBE2 0xE38F +0xFBE3 0xE390 +0xFBE4 0xE391 +0xFBE5 0xE392 +0xFBE6 0xE393 +0xFBE7 0xE394 +0xFBE8 0xE395 +0xFBE9 0xE396 +0xFBEA 0xE397 +0xFBEB 0xE398 +0xFBEC 0xE399 +0xFBED 0xE39A +0xFBEE 0xE39B +0xFBEF 0xE39C +0xFBF0 0xE39D +0xFBF1 0xE39E +0xFBF2 0xE39F +0xFBF3 0xE3A0 +0xFBF4 0xE3A1 +0xFBF5 0xE3A2 +0xFBF6 0xE3A3 +0xFBF7 0xE3A4 +0xFBF8 0xE3A5 +0xFBF9 0xE3A6 +0xFBFA 0xE3A7 +0xFBFB 0xE3A8 +0xFBFC 0xE3A9 +0xFBFD 0xE3AA +0xFBFE 0xE3AB +0xFC40 0x9EAB +0xFC41 0x9EAC +0xFC42 0x9EAD +0xFC43 0x9EAE +0xFC44 0x9EAF +0xFC45 0x9EB0 +0xFC46 0x9EB1 +0xFC47 0x9EB2 +0xFC48 0x9EB3 +0xFC49 0x9EB5 +0xFC4A 0x9EB6 +0xFC4B 0x9EB7 +0xFC4C 0x9EB9 +0xFC4D 0x9EBA +0xFC4E 0x9EBC +0xFC4F 0x9EBF +0xFC50 0x9EC0 +0xFC51 0x9EC1 +0xFC52 0x9EC2 +0xFC53 0x9EC3 +0xFC54 0x9EC5 +0xFC55 0x9EC6 +0xFC56 0x9EC7 +0xFC57 0x9EC8 +0xFC58 0x9ECA +0xFC59 0x9ECB +0xFC5A 0x9ECC +0xFC5B 0x9ED0 +0xFC5C 0x9ED2 +0xFC5D 0x9ED3 +0xFC5E 0x9ED5 +0xFC5F 0x9ED6 +0xFC60 0x9ED7 +0xFC61 0x9ED9 +0xFC62 0x9EDA +0xFC63 0x9EDE +0xFC64 0x9EE1 +0xFC65 0x9EE3 +0xFC66 0x9EE4 +0xFC67 0x9EE6 +0xFC68 0x9EE8 +0xFC69 0x9EEB +0xFC6A 0x9EEC +0xFC6B 0x9EED +0xFC6C 0x9EEE +0xFC6D 0x9EF0 +0xFC6E 0x9EF1 +0xFC6F 0x9EF2 +0xFC70 0x9EF3 +0xFC71 0x9EF4 +0xFC72 0x9EF5 +0xFC73 0x9EF6 +0xFC74 0x9EF7 +0xFC75 0x9EF8 +0xFC76 0x9EFA +0xFC77 0x9EFD +0xFC78 0x9EFF +0xFC79 0x9F00 +0xFC7A 0x9F01 +0xFC7B 0x9F02 +0xFC7C 0x9F03 +0xFC7D 0x9F04 +0xFC7E 0x9F05 +0xFC80 0x9F06 +0xFC81 0x9F07 +0xFC82 0x9F08 +0xFC83 0x9F09 +0xFC84 0x9F0A +0xFC85 0x9F0C +0xFC86 0x9F0F +0xFC87 0x9F11 +0xFC88 0x9F12 +0xFC89 0x9F14 +0xFC8A 0x9F15 +0xFC8B 0x9F16 +0xFC8C 0x9F18 +0xFC8D 0x9F1A +0xFC8E 0x9F1B +0xFC8F 0x9F1C +0xFC90 0x9F1D +0xFC91 0x9F1E +0xFC92 0x9F1F +0xFC93 0x9F21 +0xFC94 0x9F23 +0xFC95 0x9F24 +0xFC96 0x9F25 +0xFC97 0x9F26 +0xFC98 0x9F27 +0xFC99 0x9F28 +0xFC9A 0x9F29 +0xFC9B 0x9F2A +0xFC9C 0x9F2B +0xFC9D 0x9F2D +0xFC9E 0x9F2E +0xFC9F 0x9F30 +0xFCA0 0x9F31 +0xFCA1 0xE3AC +0xFCA2 0xE3AD +0xFCA3 0xE3AE +0xFCA4 0xE3AF +0xFCA5 0xE3B0 +0xFCA6 0xE3B1 +0xFCA7 0xE3B2 +0xFCA8 0xE3B3 +0xFCA9 0xE3B4 +0xFCAA 0xE3B5 +0xFCAB 0xE3B6 +0xFCAC 0xE3B7 +0xFCAD 0xE3B8 +0xFCAE 0xE3B9 +0xFCAF 0xE3BA +0xFCB0 0xE3BB +0xFCB1 0xE3BC +0xFCB2 0xE3BD +0xFCB3 0xE3BE +0xFCB4 0xE3BF +0xFCB5 0xE3C0 +0xFCB6 0xE3C1 +0xFCB7 0xE3C2 +0xFCB8 0xE3C3 +0xFCB9 0xE3C4 +0xFCBA 0xE3C5 +0xFCBB 0xE3C6 +0xFCBC 0xE3C7 +0xFCBD 0xE3C8 +0xFCBE 0xE3C9 +0xFCBF 0xE3CA +0xFCC0 0xE3CB +0xFCC1 0xE3CC +0xFCC2 0xE3CD +0xFCC3 0xE3CE +0xFCC4 0xE3CF +0xFCC5 0xE3D0 +0xFCC6 0xE3D1 +0xFCC7 0xE3D2 +0xFCC8 0xE3D3 +0xFCC9 0xE3D4 +0xFCCA 0xE3D5 +0xFCCB 0xE3D6 +0xFCCC 0xE3D7 +0xFCCD 0xE3D8 +0xFCCE 0xE3D9 +0xFCCF 0xE3DA +0xFCD0 0xE3DB +0xFCD1 0xE3DC +0xFCD2 0xE3DD +0xFCD3 0xE3DE +0xFCD4 0xE3DF +0xFCD5 0xE3E0 +0xFCD6 0xE3E1 +0xFCD7 0xE3E2 +0xFCD8 0xE3E3 +0xFCD9 0xE3E4 +0xFCDA 0xE3E5 +0xFCDB 0xE3E6 +0xFCDC 0xE3E7 +0xFCDD 0xE3E8 +0xFCDE 0xE3E9 +0xFCDF 0xE3EA +0xFCE0 0xE3EB +0xFCE1 0xE3EC +0xFCE2 0xE3ED +0xFCE3 0xE3EE +0xFCE4 0xE3EF +0xFCE5 0xE3F0 +0xFCE6 0xE3F1 +0xFCE7 0xE3F2 +0xFCE8 0xE3F3 +0xFCE9 0xE3F4 +0xFCEA 0xE3F5 +0xFCEB 0xE3F6 +0xFCEC 0xE3F7 +0xFCED 0xE3F8 +0xFCEE 0xE3F9 +0xFCEF 0xE3FA +0xFCF0 0xE3FB +0xFCF1 0xE3FC +0xFCF2 0xE3FD +0xFCF3 0xE3FE +0xFCF4 0xE3FF +0xFCF5 0xE400 +0xFCF6 0xE401 +0xFCF7 0xE402 +0xFCF8 0xE403 +0xFCF9 0xE404 +0xFCFA 0xE405 +0xFCFB 0xE406 +0xFCFC 0xE407 +0xFCFD 0xE408 +0xFCFE 0xE409 +0xFD40 0x9F32 +0xFD41 0x9F33 +0xFD42 0x9F34 +0xFD43 0x9F35 +0xFD44 0x9F36 +0xFD45 0x9F38 +0xFD46 0x9F3A +0xFD47 0x9F3C +0xFD48 0x9F3F +0xFD49 0x9F40 +0xFD4A 0x9F41 +0xFD4B 0x9F42 +0xFD4C 0x9F43 +0xFD4D 0x9F45 +0xFD4E 0x9F46 +0xFD4F 0x9F47 +0xFD50 0x9F48 +0xFD51 0x9F49 +0xFD52 0x9F4A +0xFD53 0x9F4B +0xFD54 0x9F4C +0xFD55 0x9F4D +0xFD56 0x9F4E +0xFD57 0x9F4F +0xFD58 0x9F52 +0xFD59 0x9F53 +0xFD5A 0x9F54 +0xFD5B 0x9F55 +0xFD5C 0x9F56 +0xFD5D 0x9F57 +0xFD5E 0x9F58 +0xFD5F 0x9F59 +0xFD60 0x9F5A +0xFD61 0x9F5B +0xFD62 0x9F5C +0xFD63 0x9F5D +0xFD64 0x9F5E +0xFD65 0x9F5F +0xFD66 0x9F60 +0xFD67 0x9F61 +0xFD68 0x9F62 +0xFD69 0x9F63 +0xFD6A 0x9F64 +0xFD6B 0x9F65 +0xFD6C 0x9F66 +0xFD6D 0x9F67 +0xFD6E 0x9F68 +0xFD6F 0x9F69 +0xFD70 0x9F6A +0xFD71 0x9F6B +0xFD72 0x9F6C +0xFD73 0x9F6D +0xFD74 0x9F6E +0xFD75 0x9F6F +0xFD76 0x9F70 +0xFD77 0x9F71 +0xFD78 0x9F72 +0xFD79 0x9F73 +0xFD7A 0x9F74 +0xFD7B 0x9F75 +0xFD7C 0x9F76 +0xFD7D 0x9F77 +0xFD7E 0x9F78 +0xFD80 0x9F79 +0xFD81 0x9F7A +0xFD82 0x9F7B +0xFD83 0x9F7C +0xFD84 0x9F7D +0xFD85 0x9F7E +0xFD86 0x9F81 +0xFD87 0x9F82 +0xFD88 0x9F8D +0xFD89 0x9F8E +0xFD8A 0x9F8F +0xFD8B 0x9F90 +0xFD8C 0x9F91 +0xFD8D 0x9F92 +0xFD8E 0x9F93 +0xFD8F 0x9F94 +0xFD90 0x9F95 +0xFD91 0x9F96 +0xFD92 0x9F97 +0xFD93 0x9F98 +0xFD94 0x9F9C +0xFD95 0x9F9D +0xFD96 0x9F9E +0xFD97 0x9FA1 +0xFD98 0x9FA2 +0xFD99 0x9FA3 +0xFD9A 0x9FA4 +0xFD9B 0x9FA5 +0xFD9C 0xF92C +0xFD9D 0xF979 +0xFD9E 0xF995 +0xFD9F 0xF9E7 +0xFDA0 0xF9F1 +0xFDA1 0xE40A +0xFDA2 0xE40B +0xFDA3 0xE40C +0xFDA4 0xE40D +0xFDA5 0xE40E +0xFDA6 0xE40F +0xFDA7 0xE410 +0xFDA8 0xE411 +0xFDA9 0xE412 +0xFDAA 0xE413 +0xFDAB 0xE414 +0xFDAC 0xE415 +0xFDAD 0xE416 +0xFDAE 0xE417 +0xFDAF 0xE418 +0xFDB0 0xE419 +0xFDB1 0xE41A +0xFDB2 0xE41B +0xFDB3 0xE41C +0xFDB4 0xE41D +0xFDB5 0xE41E +0xFDB6 0xE41F +0xFDB7 0xE420 +0xFDB8 0xE421 +0xFDB9 0xE422 +0xFDBA 0xE423 +0xFDBB 0xE424 +0xFDBC 0xE425 +0xFDBD 0xE426 +0xFDBE 0xE427 +0xFDBF 0xE428 +0xFDC0 0xE429 +0xFDC1 0xE42A +0xFDC2 0xE42B +0xFDC3 0xE42C +0xFDC4 0xE42D +0xFDC5 0xE42E +0xFDC6 0xE42F +0xFDC7 0xE430 +0xFDC8 0xE431 +0xFDC9 0xE432 +0xFDCA 0xE433 +0xFDCB 0xE434 +0xFDCC 0xE435 +0xFDCD 0xE436 +0xFDCE 0xE437 +0xFDCF 0xE438 +0xFDD0 0xE439 +0xFDD1 0xE43A +0xFDD2 0xE43B +0xFDD3 0xE43C +0xFDD4 0xE43D +0xFDD5 0xE43E +0xFDD6 0xE43F +0xFDD7 0xE440 +0xFDD8 0xE441 +0xFDD9 0xE442 +0xFDDA 0xE443 +0xFDDB 0xE444 +0xFDDC 0xE445 +0xFDDD 0xE446 +0xFDDE 0xE447 +0xFDDF 0xE448 +0xFDE0 0xE449 +0xFDE1 0xE44A +0xFDE2 0xE44B +0xFDE3 0xE44C +0xFDE4 0xE44D +0xFDE5 0xE44E +0xFDE6 0xE44F +0xFDE7 0xE450 +0xFDE8 0xE451 +0xFDE9 0xE452 +0xFDEA 0xE453 +0xFDEB 0xE454 +0xFDEC 0xE455 +0xFDED 0xE456 +0xFDEE 0xE457 +0xFDEF 0xE458 +0xFDF0 0xE459 +0xFDF1 0xE45A +0xFDF2 0xE45B +0xFDF3 0xE45C +0xFDF4 0xE45D +0xFDF5 0xE45E +0xFDF6 0xE45F +0xFDF7 0xE460 +0xFDF8 0xE461 +0xFDF9 0xE462 +0xFDFA 0xE463 +0xFDFB 0xE464 +0xFDFC 0xE465 +0xFDFD 0xE466 +0xFDFE 0xE467 +0xFE40 0xFA0C +0xFE41 0xFA0D +0xFE42 0xFA0E +0xFE43 0xFA0F +0xFE44 0xFA11 +0xFE45 0xFA13 +0xFE46 0xFA14 +0xFE47 0xFA18 +0xFE48 0xFA1F +0xFE49 0xFA20 +0xFE4A 0xFA21 +0xFE4B 0xFA23 +0xFE4C 0xFA24 +0xFE4D 0xFA27 +0xFE4E 0xFA28 +0xFE4F 0xFA29 +0xFE50 0x2E81 +0xFE51 0x20087 +0xFE52 0x20089 +0xFE53 0x200CC +0xFE54 0x2E84 +0xFE55 0x3473 +0xFE56 0x3447 +0xFE57 0x2E88 +0xFE58 0x2E8B +0xFE59 0x9FB4 +0xFE5A 0x359E +0xFE5B 0x361A +0xFE5C 0x360E +0xFE5D 0x2E8C +0xFE5E 0x2E97 +0xFE5F 0x396E +0xFE60 0x3918 +0xFE61 0x9FB5 +0xFE62 0x39CF +0xFE63 0x39DF +0xFE64 0x3A73 +0xFE65 0x39D0 +0xFE66 0x9FB6 +0xFE67 0x9FB7 +0xFE68 0x3B4E +0xFE69 0x3C6E +0xFE6A 0x3CE0 +0xFE6B 0x2EA7 +0xFE6C 0x215D7 +0xFE6D 0x9FB8 +0xFE6E 0x2EAA +0xFE6F 0x4056 +0xFE70 0x415F +0xFE71 0x2EAE +0xFE72 0x4337 +0xFE73 0x2EB3 +0xFE74 0x2EB6 +0xFE75 0x2EB7 +0xFE76 0x2298F +0xFE77 0x43B1 +0xFE78 0x43AC +0xFE79 0x2EBB +0xFE7A 0x43DD +0xFE7B 0x44D6 +0xFE7C 0x4661 +0xFE7D 0x464C +0xFE7E 0x9FB9 +0xFE80 0x4723 +0xFE81 0x4729 +0xFE82 0x477C +0xFE83 0x478D +0xFE84 0x2ECA +0xFE85 0x4947 +0xFE86 0x497A +0xFE87 0x497D +0xFE88 0x4982 +0xFE89 0x4983 +0xFE8A 0x4985 +0xFE8B 0x4986 +0xFE8C 0x499F +0xFE8D 0x499B +0xFE8E 0x49B7 +0xFE8F 0x49B6 +0xFE90 0x9FBA +0xFE91 0x241FE +0xFE92 0x4CA3 +0xFE93 0x4C9F +0xFE94 0x4CA0 +0xFE95 0x4CA1 +0xFE96 0x4C77 +0xFE97 0x4CA2 +0xFE98 0x4D13 +0xFE99 0x4D14 +0xFE9A 0x4D15 +0xFE9B 0x4D16 +0xFE9C 0x4D17 +0xFE9D 0x4D18 +0xFE9E 0x4D19 +0xFE9F 0x4DAE +0xFEA0 0x9FBB +0xFEA1 0xE468 +0xFEA2 0xE469 +0xFEA3 0xE46A +0xFEA4 0xE46B +0xFEA5 0xE46C +0xFEA6 0xE46D +0xFEA7 0xE46E +0xFEA8 0xE46F +0xFEA9 0xE470 +0xFEAA 0xE471 +0xFEAB 0xE472 +0xFEAC 0xE473 +0xFEAD 0xE474 +0xFEAE 0xE475 +0xFEAF 0xE476 +0xFEB0 0xE477 +0xFEB1 0xE478 +0xFEB2 0xE479 +0xFEB3 0xE47A +0xFEB4 0xE47B +0xFEB5 0xE47C +0xFEB6 0xE47D +0xFEB7 0xE47E +0xFEB8 0xE47F +0xFEB9 0xE480 +0xFEBA 0xE481 +0xFEBB 0xE482 +0xFEBC 0xE483 +0xFEBD 0xE484 +0xFEBE 0xE485 +0xFEBF 0xE486 +0xFEC0 0xE487 +0xFEC1 0xE488 +0xFEC2 0xE489 +0xFEC3 0xE48A +0xFEC4 0xE48B +0xFEC5 0xE48C +0xFEC6 0xE48D +0xFEC7 0xE48E +0xFEC8 0xE48F +0xFEC9 0xE490 +0xFECA 0xE491 +0xFECB 0xE492 +0xFECC 0xE493 +0xFECD 0xE494 +0xFECE 0xE495 +0xFECF 0xE496 +0xFED0 0xE497 +0xFED1 0xE498 +0xFED2 0xE499 +0xFED3 0xE49A +0xFED4 0xE49B +0xFED5 0xE49C +0xFED6 0xE49D +0xFED7 0xE49E +0xFED8 0xE49F +0xFED9 0xE4A0 +0xFEDA 0xE4A1 +0xFEDB 0xE4A2 +0xFEDC 0xE4A3 +0xFEDD 0xE4A4 +0xFEDE 0xE4A5 +0xFEDF 0xE4A6 +0xFEE0 0xE4A7 +0xFEE1 0xE4A8 +0xFEE2 0xE4A9 +0xFEE3 0xE4AA +0xFEE4 0xE4AB +0xFEE5 0xE4AC +0xFEE6 0xE4AD +0xFEE7 0xE4AE +0xFEE8 0xE4AF +0xFEE9 0xE4B0 +0xFEEA 0xE4B1 +0xFEEB 0xE4B2 +0xFEEC 0xE4B3 +0xFEED 0xE4B4 +0xFEEE 0xE4B5 +0xFEEF 0xE4B6 +0xFEF0 0xE4B7 +0xFEF1 0xE4B8 +0xFEF2 0xE4B9 +0xFEF3 0xE4BA +0xFEF4 0xE4BB +0xFEF5 0xE4BC +0xFEF6 0xE4BD +0xFEF7 0xE4BE +0xFEF8 0xE4BF +0xFEF9 0xE4C0 +0xFEFA 0xE4C1 +0xFEFB 0xE4C2 +0xFEFC 0xE4C3 +0xFEFD 0xE4C4 +0xFEFE 0xE4C5 diff --git a/3rdPartner/libiconv/tests/GB18030.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/GB18030.IRREVERSIBLE.TXT new file mode 100644 index 0000000..5e84bc3 --- /dev/null +++ b/3rdPartner/libiconv/tests/GB18030.IRREVERSIBLE.TXT @@ -0,0 +1,48 @@ +0x82359037 0x9FB4 +0x82359038 0x9FB5 +0x82359039 0x9FB6 +0x82359130 0x9FB7 +0x82359131 0x9FB8 +0x82359132 0x9FB9 +0x82359133 0x9FBA +0x82359134 0x9FBB +0x84318236 0xFE10 +0x84318237 0xFE11 +0x84318238 0xFE12 +0x84318239 0xFE13 +0x84318330 0xFE14 +0x84318331 0xFE15 +0x84318332 0xFE16 +0x84318333 0xFE17 +0x84318334 0xFE18 +0x84318335 0xFE19 +0x95329031 0x20087 +0x95329033 0x20089 +0x95329730 0x200CC +0x9536B937 0x215D7 +0x9630BA35 0x2298F +0x9635B630 0x241FE +0xA6D9 0xE78D +0xA6DA 0xE78E +0xA6DB 0xE78F +0xA6DC 0xE790 +0xA6DD 0xE791 +0xA6DE 0xE792 +0xA6DF 0xE793 +0xA6EC 0xE794 +0xA6ED 0xE795 +0xA6F3 0xE796 +0xFE51 0xE816 +0xFE52 0xE817 +0xFE53 0xE818 +0xFE59 0xE81E +0xFE61 0xE826 +0xFE66 0xE82B +0xFE67 0xE82C +0xFE6C 0xE831 +0xFE6D 0xE832 +0xFE76 0xE83B +0xFE7E 0xE843 +0xFE90 0xE854 +0xFE91 0xE855 +0xFEA0 0xE864 diff --git a/3rdPartner/libiconv/tests/GBK.TXT b/3rdPartner/libiconv/tests/GBK.TXT new file mode 100644 index 0000000..bf98f4e --- /dev/null +++ b/3rdPartner/libiconv/tests/GBK.TXT @@ -0,0 +1,21919 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8140 0x4E02 +0x8141 0x4E04 +0x8142 0x4E05 +0x8143 0x4E06 +0x8144 0x4E0F +0x8145 0x4E12 +0x8146 0x4E17 +0x8147 0x4E1F +0x8148 0x4E20 +0x8149 0x4E21 +0x814A 0x4E23 +0x814B 0x4E26 +0x814C 0x4E29 +0x814D 0x4E2E +0x814E 0x4E2F +0x814F 0x4E31 +0x8150 0x4E33 +0x8151 0x4E35 +0x8152 0x4E37 +0x8153 0x4E3C +0x8154 0x4E40 +0x8155 0x4E41 +0x8156 0x4E42 +0x8157 0x4E44 +0x8158 0x4E46 +0x8159 0x4E4A +0x815A 0x4E51 +0x815B 0x4E55 +0x815C 0x4E57 +0x815D 0x4E5A +0x815E 0x4E5B +0x815F 0x4E62 +0x8160 0x4E63 +0x8161 0x4E64 +0x8162 0x4E65 +0x8163 0x4E67 +0x8164 0x4E68 +0x8165 0x4E6A +0x8166 0x4E6B +0x8167 0x4E6C +0x8168 0x4E6D +0x8169 0x4E6E +0x816A 0x4E6F +0x816B 0x4E72 +0x816C 0x4E74 +0x816D 0x4E75 +0x816E 0x4E76 +0x816F 0x4E77 +0x8170 0x4E78 +0x8171 0x4E79 +0x8172 0x4E7A +0x8173 0x4E7B +0x8174 0x4E7C +0x8175 0x4E7D +0x8176 0x4E7F +0x8177 0x4E80 +0x8178 0x4E81 +0x8179 0x4E82 +0x817A 0x4E83 +0x817B 0x4E84 +0x817C 0x4E85 +0x817D 0x4E87 +0x817E 0x4E8A +0x8180 0x4E90 +0x8181 0x4E96 +0x8182 0x4E97 +0x8183 0x4E99 +0x8184 0x4E9C +0x8185 0x4E9D +0x8186 0x4E9E +0x8187 0x4EA3 +0x8188 0x4EAA +0x8189 0x4EAF +0x818A 0x4EB0 +0x818B 0x4EB1 +0x818C 0x4EB4 +0x818D 0x4EB6 +0x818E 0x4EB7 +0x818F 0x4EB8 +0x8190 0x4EB9 +0x8191 0x4EBC +0x8192 0x4EBD +0x8193 0x4EBE +0x8194 0x4EC8 +0x8195 0x4ECC +0x8196 0x4ECF +0x8197 0x4ED0 +0x8198 0x4ED2 +0x8199 0x4EDA +0x819A 0x4EDB +0x819B 0x4EDC +0x819C 0x4EE0 +0x819D 0x4EE2 +0x819E 0x4EE6 +0x819F 0x4EE7 +0x81A0 0x4EE9 +0x81A1 0x4EED +0x81A2 0x4EEE +0x81A3 0x4EEF +0x81A4 0x4EF1 +0x81A5 0x4EF4 +0x81A6 0x4EF8 +0x81A7 0x4EF9 +0x81A8 0x4EFA +0x81A9 0x4EFC +0x81AA 0x4EFE +0x81AB 0x4F00 +0x81AC 0x4F02 +0x81AD 0x4F03 +0x81AE 0x4F04 +0x81AF 0x4F05 +0x81B0 0x4F06 +0x81B1 0x4F07 +0x81B2 0x4F08 +0x81B3 0x4F0B +0x81B4 0x4F0C +0x81B5 0x4F12 +0x81B6 0x4F13 +0x81B7 0x4F14 +0x81B8 0x4F15 +0x81B9 0x4F16 +0x81BA 0x4F1C +0x81BB 0x4F1D +0x81BC 0x4F21 +0x81BD 0x4F23 +0x81BE 0x4F28 +0x81BF 0x4F29 +0x81C0 0x4F2C +0x81C1 0x4F2D +0x81C2 0x4F2E +0x81C3 0x4F31 +0x81C4 0x4F33 +0x81C5 0x4F35 +0x81C6 0x4F37 +0x81C7 0x4F39 +0x81C8 0x4F3B +0x81C9 0x4F3E +0x81CA 0x4F3F +0x81CB 0x4F40 +0x81CC 0x4F41 +0x81CD 0x4F42 +0x81CE 0x4F44 +0x81CF 0x4F45 +0x81D0 0x4F47 +0x81D1 0x4F48 +0x81D2 0x4F49 +0x81D3 0x4F4A +0x81D4 0x4F4B +0x81D5 0x4F4C +0x81D6 0x4F52 +0x81D7 0x4F54 +0x81D8 0x4F56 +0x81D9 0x4F61 +0x81DA 0x4F62 +0x81DB 0x4F66 +0x81DC 0x4F68 +0x81DD 0x4F6A +0x81DE 0x4F6B +0x81DF 0x4F6D +0x81E0 0x4F6E +0x81E1 0x4F71 +0x81E2 0x4F72 +0x81E3 0x4F75 +0x81E4 0x4F77 +0x81E5 0x4F78 +0x81E6 0x4F79 +0x81E7 0x4F7A +0x81E8 0x4F7D +0x81E9 0x4F80 +0x81EA 0x4F81 +0x81EB 0x4F82 +0x81EC 0x4F85 +0x81ED 0x4F86 +0x81EE 0x4F87 +0x81EF 0x4F8A +0x81F0 0x4F8C +0x81F1 0x4F8E +0x81F2 0x4F90 +0x81F3 0x4F92 +0x81F4 0x4F93 +0x81F5 0x4F95 +0x81F6 0x4F96 +0x81F7 0x4F98 +0x81F8 0x4F99 +0x81F9 0x4F9A +0x81FA 0x4F9C +0x81FB 0x4F9E +0x81FC 0x4F9F +0x81FD 0x4FA1 +0x81FE 0x4FA2 +0x8240 0x4FA4 +0x8241 0x4FAB +0x8242 0x4FAD +0x8243 0x4FB0 +0x8244 0x4FB1 +0x8245 0x4FB2 +0x8246 0x4FB3 +0x8247 0x4FB4 +0x8248 0x4FB6 +0x8249 0x4FB7 +0x824A 0x4FB8 +0x824B 0x4FB9 +0x824C 0x4FBA +0x824D 0x4FBB +0x824E 0x4FBC +0x824F 0x4FBD +0x8250 0x4FBE +0x8251 0x4FC0 +0x8252 0x4FC1 +0x8253 0x4FC2 +0x8254 0x4FC6 +0x8255 0x4FC7 +0x8256 0x4FC8 +0x8257 0x4FC9 +0x8258 0x4FCB +0x8259 0x4FCC +0x825A 0x4FCD +0x825B 0x4FD2 +0x825C 0x4FD3 +0x825D 0x4FD4 +0x825E 0x4FD5 +0x825F 0x4FD6 +0x8260 0x4FD9 +0x8261 0x4FDB +0x8262 0x4FE0 +0x8263 0x4FE2 +0x8264 0x4FE4 +0x8265 0x4FE5 +0x8266 0x4FE7 +0x8267 0x4FEB +0x8268 0x4FEC +0x8269 0x4FF0 +0x826A 0x4FF2 +0x826B 0x4FF4 +0x826C 0x4FF5 +0x826D 0x4FF6 +0x826E 0x4FF7 +0x826F 0x4FF9 +0x8270 0x4FFB +0x8271 0x4FFC +0x8272 0x4FFD +0x8273 0x4FFF +0x8274 0x5000 +0x8275 0x5001 +0x8276 0x5002 +0x8277 0x5003 +0x8278 0x5004 +0x8279 0x5005 +0x827A 0x5006 +0x827B 0x5007 +0x827C 0x5008 +0x827D 0x5009 +0x827E 0x500A +0x8280 0x500B +0x8281 0x500E +0x8282 0x5010 +0x8283 0x5011 +0x8284 0x5013 +0x8285 0x5015 +0x8286 0x5016 +0x8287 0x5017 +0x8288 0x501B +0x8289 0x501D +0x828A 0x501E +0x828B 0x5020 +0x828C 0x5022 +0x828D 0x5023 +0x828E 0x5024 +0x828F 0x5027 +0x8290 0x502B +0x8291 0x502F +0x8292 0x5030 +0x8293 0x5031 +0x8294 0x5032 +0x8295 0x5033 +0x8296 0x5034 +0x8297 0x5035 +0x8298 0x5036 +0x8299 0x5037 +0x829A 0x5038 +0x829B 0x5039 +0x829C 0x503B +0x829D 0x503D +0x829E 0x503F +0x829F 0x5040 +0x82A0 0x5041 +0x82A1 0x5042 +0x82A2 0x5044 +0x82A3 0x5045 +0x82A4 0x5046 +0x82A5 0x5049 +0x82A6 0x504A +0x82A7 0x504B +0x82A8 0x504D +0x82A9 0x5050 +0x82AA 0x5051 +0x82AB 0x5052 +0x82AC 0x5053 +0x82AD 0x5054 +0x82AE 0x5056 +0x82AF 0x5057 +0x82B0 0x5058 +0x82B1 0x5059 +0x82B2 0x505B +0x82B3 0x505D +0x82B4 0x505E +0x82B5 0x505F +0x82B6 0x5060 +0x82B7 0x5061 +0x82B8 0x5062 +0x82B9 0x5063 +0x82BA 0x5064 +0x82BB 0x5066 +0x82BC 0x5067 +0x82BD 0x5068 +0x82BE 0x5069 +0x82BF 0x506A +0x82C0 0x506B +0x82C1 0x506D +0x82C2 0x506E +0x82C3 0x506F +0x82C4 0x5070 +0x82C5 0x5071 +0x82C6 0x5072 +0x82C7 0x5073 +0x82C8 0x5074 +0x82C9 0x5075 +0x82CA 0x5078 +0x82CB 0x5079 +0x82CC 0x507A +0x82CD 0x507C +0x82CE 0x507D +0x82CF 0x5081 +0x82D0 0x5082 +0x82D1 0x5083 +0x82D2 0x5084 +0x82D3 0x5086 +0x82D4 0x5087 +0x82D5 0x5089 +0x82D6 0x508A +0x82D7 0x508B +0x82D8 0x508C +0x82D9 0x508E +0x82DA 0x508F +0x82DB 0x5090 +0x82DC 0x5091 +0x82DD 0x5092 +0x82DE 0x5093 +0x82DF 0x5094 +0x82E0 0x5095 +0x82E1 0x5096 +0x82E2 0x5097 +0x82E3 0x5098 +0x82E4 0x5099 +0x82E5 0x509A +0x82E6 0x509B +0x82E7 0x509C +0x82E8 0x509D +0x82E9 0x509E +0x82EA 0x509F +0x82EB 0x50A0 +0x82EC 0x50A1 +0x82ED 0x50A2 +0x82EE 0x50A4 +0x82EF 0x50A6 +0x82F0 0x50AA +0x82F1 0x50AB +0x82F2 0x50AD +0x82F3 0x50AE +0x82F4 0x50AF +0x82F5 0x50B0 +0x82F6 0x50B1 +0x82F7 0x50B3 +0x82F8 0x50B4 +0x82F9 0x50B5 +0x82FA 0x50B6 +0x82FB 0x50B7 +0x82FC 0x50B8 +0x82FD 0x50B9 +0x82FE 0x50BC +0x8340 0x50BD +0x8341 0x50BE +0x8342 0x50BF +0x8343 0x50C0 +0x8344 0x50C1 +0x8345 0x50C2 +0x8346 0x50C3 +0x8347 0x50C4 +0x8348 0x50C5 +0x8349 0x50C6 +0x834A 0x50C7 +0x834B 0x50C8 +0x834C 0x50C9 +0x834D 0x50CA +0x834E 0x50CB +0x834F 0x50CC +0x8350 0x50CD +0x8351 0x50CE +0x8352 0x50D0 +0x8353 0x50D1 +0x8354 0x50D2 +0x8355 0x50D3 +0x8356 0x50D4 +0x8357 0x50D5 +0x8358 0x50D7 +0x8359 0x50D8 +0x835A 0x50D9 +0x835B 0x50DB +0x835C 0x50DC +0x835D 0x50DD +0x835E 0x50DE +0x835F 0x50DF +0x8360 0x50E0 +0x8361 0x50E1 +0x8362 0x50E2 +0x8363 0x50E3 +0x8364 0x50E4 +0x8365 0x50E5 +0x8366 0x50E8 +0x8367 0x50E9 +0x8368 0x50EA +0x8369 0x50EB +0x836A 0x50EF +0x836B 0x50F0 +0x836C 0x50F1 +0x836D 0x50F2 +0x836E 0x50F4 +0x836F 0x50F6 +0x8370 0x50F7 +0x8371 0x50F8 +0x8372 0x50F9 +0x8373 0x50FA +0x8374 0x50FC +0x8375 0x50FD +0x8376 0x50FE +0x8377 0x50FF +0x8378 0x5100 +0x8379 0x5101 +0x837A 0x5102 +0x837B 0x5103 +0x837C 0x5104 +0x837D 0x5105 +0x837E 0x5108 +0x8380 0x5109 +0x8381 0x510A +0x8382 0x510C +0x8383 0x510D +0x8384 0x510E +0x8385 0x510F +0x8386 0x5110 +0x8387 0x5111 +0x8388 0x5113 +0x8389 0x5114 +0x838A 0x5115 +0x838B 0x5116 +0x838C 0x5117 +0x838D 0x5118 +0x838E 0x5119 +0x838F 0x511A +0x8390 0x511B +0x8391 0x511C +0x8392 0x511D +0x8393 0x511E +0x8394 0x511F +0x8395 0x5120 +0x8396 0x5122 +0x8397 0x5123 +0x8398 0x5124 +0x8399 0x5125 +0x839A 0x5126 +0x839B 0x5127 +0x839C 0x5128 +0x839D 0x5129 +0x839E 0x512A +0x839F 0x512B +0x83A0 0x512C +0x83A1 0x512D +0x83A2 0x512E +0x83A3 0x512F +0x83A4 0x5130 +0x83A5 0x5131 +0x83A6 0x5132 +0x83A7 0x5133 +0x83A8 0x5134 +0x83A9 0x5135 +0x83AA 0x5136 +0x83AB 0x5137 +0x83AC 0x5138 +0x83AD 0x5139 +0x83AE 0x513A +0x83AF 0x513B +0x83B0 0x513C +0x83B1 0x513D +0x83B2 0x513E +0x83B3 0x5142 +0x83B4 0x5147 +0x83B5 0x514A +0x83B6 0x514C +0x83B7 0x514E +0x83B8 0x514F +0x83B9 0x5150 +0x83BA 0x5152 +0x83BB 0x5153 +0x83BC 0x5157 +0x83BD 0x5158 +0x83BE 0x5159 +0x83BF 0x515B +0x83C0 0x515D +0x83C1 0x515E +0x83C2 0x515F +0x83C3 0x5160 +0x83C4 0x5161 +0x83C5 0x5163 +0x83C6 0x5164 +0x83C7 0x5166 +0x83C8 0x5167 +0x83C9 0x5169 +0x83CA 0x516A +0x83CB 0x516F +0x83CC 0x5172 +0x83CD 0x517A +0x83CE 0x517E +0x83CF 0x517F +0x83D0 0x5183 +0x83D1 0x5184 +0x83D2 0x5186 +0x83D3 0x5187 +0x83D4 0x518A +0x83D5 0x518B +0x83D6 0x518E +0x83D7 0x518F +0x83D8 0x5190 +0x83D9 0x5191 +0x83DA 0x5193 +0x83DB 0x5194 +0x83DC 0x5198 +0x83DD 0x519A +0x83DE 0x519D +0x83DF 0x519E +0x83E0 0x519F +0x83E1 0x51A1 +0x83E2 0x51A3 +0x83E3 0x51A6 +0x83E4 0x51A7 +0x83E5 0x51A8 +0x83E6 0x51A9 +0x83E7 0x51AA +0x83E8 0x51AD +0x83E9 0x51AE +0x83EA 0x51B4 +0x83EB 0x51B8 +0x83EC 0x51B9 +0x83ED 0x51BA +0x83EE 0x51BE +0x83EF 0x51BF +0x83F0 0x51C1 +0x83F1 0x51C2 +0x83F2 0x51C3 +0x83F3 0x51C5 +0x83F4 0x51C8 +0x83F5 0x51CA +0x83F6 0x51CD +0x83F7 0x51CE +0x83F8 0x51D0 +0x83F9 0x51D2 +0x83FA 0x51D3 +0x83FB 0x51D4 +0x83FC 0x51D5 +0x83FD 0x51D6 +0x83FE 0x51D7 +0x8440 0x51D8 +0x8441 0x51D9 +0x8442 0x51DA +0x8443 0x51DC +0x8444 0x51DE +0x8445 0x51DF +0x8446 0x51E2 +0x8447 0x51E3 +0x8448 0x51E5 +0x8449 0x51E6 +0x844A 0x51E7 +0x844B 0x51E8 +0x844C 0x51E9 +0x844D 0x51EA +0x844E 0x51EC +0x844F 0x51EE +0x8450 0x51F1 +0x8451 0x51F2 +0x8452 0x51F4 +0x8453 0x51F7 +0x8454 0x51FE +0x8455 0x5204 +0x8456 0x5205 +0x8457 0x5209 +0x8458 0x520B +0x8459 0x520C +0x845A 0x520F +0x845B 0x5210 +0x845C 0x5213 +0x845D 0x5214 +0x845E 0x5215 +0x845F 0x521C +0x8460 0x521E +0x8461 0x521F +0x8462 0x5221 +0x8463 0x5222 +0x8464 0x5223 +0x8465 0x5225 +0x8466 0x5226 +0x8467 0x5227 +0x8468 0x522A +0x8469 0x522C +0x846A 0x522F +0x846B 0x5231 +0x846C 0x5232 +0x846D 0x5234 +0x846E 0x5235 +0x846F 0x523C +0x8470 0x523E +0x8471 0x5244 +0x8472 0x5245 +0x8473 0x5246 +0x8474 0x5247 +0x8475 0x5248 +0x8476 0x5249 +0x8477 0x524B +0x8478 0x524E +0x8479 0x524F +0x847A 0x5252 +0x847B 0x5253 +0x847C 0x5255 +0x847D 0x5257 +0x847E 0x5258 +0x8480 0x5259 +0x8481 0x525A +0x8482 0x525B +0x8483 0x525D +0x8484 0x525F +0x8485 0x5260 +0x8486 0x5262 +0x8487 0x5263 +0x8488 0x5264 +0x8489 0x5266 +0x848A 0x5268 +0x848B 0x526B +0x848C 0x526C +0x848D 0x526D +0x848E 0x526E +0x848F 0x5270 +0x8490 0x5271 +0x8491 0x5273 +0x8492 0x5274 +0x8493 0x5275 +0x8494 0x5276 +0x8495 0x5277 +0x8496 0x5278 +0x8497 0x5279 +0x8498 0x527A +0x8499 0x527B +0x849A 0x527C +0x849B 0x527E +0x849C 0x5280 +0x849D 0x5283 +0x849E 0x5284 +0x849F 0x5285 +0x84A0 0x5286 +0x84A1 0x5287 +0x84A2 0x5289 +0x84A3 0x528A +0x84A4 0x528B +0x84A5 0x528C +0x84A6 0x528D +0x84A7 0x528E +0x84A8 0x528F +0x84A9 0x5291 +0x84AA 0x5292 +0x84AB 0x5294 +0x84AC 0x5295 +0x84AD 0x5296 +0x84AE 0x5297 +0x84AF 0x5298 +0x84B0 0x5299 +0x84B1 0x529A +0x84B2 0x529C +0x84B3 0x52A4 +0x84B4 0x52A5 +0x84B5 0x52A6 +0x84B6 0x52A7 +0x84B7 0x52AE +0x84B8 0x52AF +0x84B9 0x52B0 +0x84BA 0x52B4 +0x84BB 0x52B5 +0x84BC 0x52B6 +0x84BD 0x52B7 +0x84BE 0x52B8 +0x84BF 0x52B9 +0x84C0 0x52BA +0x84C1 0x52BB +0x84C2 0x52BC +0x84C3 0x52BD +0x84C4 0x52C0 +0x84C5 0x52C1 +0x84C6 0x52C2 +0x84C7 0x52C4 +0x84C8 0x52C5 +0x84C9 0x52C6 +0x84CA 0x52C8 +0x84CB 0x52CA +0x84CC 0x52CC +0x84CD 0x52CD +0x84CE 0x52CE +0x84CF 0x52CF +0x84D0 0x52D1 +0x84D1 0x52D3 +0x84D2 0x52D4 +0x84D3 0x52D5 +0x84D4 0x52D7 +0x84D5 0x52D9 +0x84D6 0x52DA +0x84D7 0x52DB +0x84D8 0x52DC +0x84D9 0x52DD +0x84DA 0x52DE +0x84DB 0x52E0 +0x84DC 0x52E1 +0x84DD 0x52E2 +0x84DE 0x52E3 +0x84DF 0x52E5 +0x84E0 0x52E6 +0x84E1 0x52E7 +0x84E2 0x52E8 +0x84E3 0x52E9 +0x84E4 0x52EA +0x84E5 0x52EB +0x84E6 0x52EC +0x84E7 0x52ED +0x84E8 0x52EE +0x84E9 0x52EF +0x84EA 0x52F1 +0x84EB 0x52F2 +0x84EC 0x52F3 +0x84ED 0x52F4 +0x84EE 0x52F5 +0x84EF 0x52F6 +0x84F0 0x52F7 +0x84F1 0x52F8 +0x84F2 0x52FB +0x84F3 0x52FC +0x84F4 0x52FD +0x84F5 0x5301 +0x84F6 0x5302 +0x84F7 0x5303 +0x84F8 0x5304 +0x84F9 0x5307 +0x84FA 0x5309 +0x84FB 0x530A +0x84FC 0x530B +0x84FD 0x530C +0x84FE 0x530E +0x8540 0x5311 +0x8541 0x5312 +0x8542 0x5313 +0x8543 0x5314 +0x8544 0x5318 +0x8545 0x531B +0x8546 0x531C +0x8547 0x531E +0x8548 0x531F +0x8549 0x5322 +0x854A 0x5324 +0x854B 0x5325 +0x854C 0x5327 +0x854D 0x5328 +0x854E 0x5329 +0x854F 0x532B +0x8550 0x532C +0x8551 0x532D +0x8552 0x532F +0x8553 0x5330 +0x8554 0x5331 +0x8555 0x5332 +0x8556 0x5333 +0x8557 0x5334 +0x8558 0x5335 +0x8559 0x5336 +0x855A 0x5337 +0x855B 0x5338 +0x855C 0x533C +0x855D 0x533D +0x855E 0x5340 +0x855F 0x5342 +0x8560 0x5344 +0x8561 0x5346 +0x8562 0x534B +0x8563 0x534C +0x8564 0x534D +0x8565 0x5350 +0x8566 0x5354 +0x8567 0x5358 +0x8568 0x5359 +0x8569 0x535B +0x856A 0x535D +0x856B 0x5365 +0x856C 0x5368 +0x856D 0x536A +0x856E 0x536C +0x856F 0x536D +0x8570 0x5372 +0x8571 0x5376 +0x8572 0x5379 +0x8573 0x537B +0x8574 0x537C +0x8575 0x537D +0x8576 0x537E +0x8577 0x5380 +0x8578 0x5381 +0x8579 0x5383 +0x857A 0x5387 +0x857B 0x5388 +0x857C 0x538A +0x857D 0x538E +0x857E 0x538F +0x8580 0x5390 +0x8581 0x5391 +0x8582 0x5392 +0x8583 0x5393 +0x8584 0x5394 +0x8585 0x5396 +0x8586 0x5397 +0x8587 0x5399 +0x8588 0x539B +0x8589 0x539C +0x858A 0x539E +0x858B 0x53A0 +0x858C 0x53A1 +0x858D 0x53A4 +0x858E 0x53A7 +0x858F 0x53AA +0x8590 0x53AB +0x8591 0x53AC +0x8592 0x53AD +0x8593 0x53AF +0x8594 0x53B0 +0x8595 0x53B1 +0x8596 0x53B2 +0x8597 0x53B3 +0x8598 0x53B4 +0x8599 0x53B5 +0x859A 0x53B7 +0x859B 0x53B8 +0x859C 0x53B9 +0x859D 0x53BA +0x859E 0x53BC +0x859F 0x53BD +0x85A0 0x53BE +0x85A1 0x53C0 +0x85A2 0x53C3 +0x85A3 0x53C4 +0x85A4 0x53C5 +0x85A5 0x53C6 +0x85A6 0x53C7 +0x85A7 0x53CE +0x85A8 0x53CF +0x85A9 0x53D0 +0x85AA 0x53D2 +0x85AB 0x53D3 +0x85AC 0x53D5 +0x85AD 0x53DA +0x85AE 0x53DC +0x85AF 0x53DD +0x85B0 0x53DE +0x85B1 0x53E1 +0x85B2 0x53E2 +0x85B3 0x53E7 +0x85B4 0x53F4 +0x85B5 0x53FA +0x85B6 0x53FE +0x85B7 0x53FF +0x85B8 0x5400 +0x85B9 0x5402 +0x85BA 0x5405 +0x85BB 0x5407 +0x85BC 0x540B +0x85BD 0x5414 +0x85BE 0x5418 +0x85BF 0x5419 +0x85C0 0x541A +0x85C1 0x541C +0x85C2 0x5422 +0x85C3 0x5424 +0x85C4 0x5425 +0x85C5 0x542A +0x85C6 0x5430 +0x85C7 0x5433 +0x85C8 0x5436 +0x85C9 0x5437 +0x85CA 0x543A +0x85CB 0x543D +0x85CC 0x543F +0x85CD 0x5441 +0x85CE 0x5442 +0x85CF 0x5444 +0x85D0 0x5445 +0x85D1 0x5447 +0x85D2 0x5449 +0x85D3 0x544C +0x85D4 0x544D +0x85D5 0x544E +0x85D6 0x544F +0x85D7 0x5451 +0x85D8 0x545A +0x85D9 0x545D +0x85DA 0x545E +0x85DB 0x545F +0x85DC 0x5460 +0x85DD 0x5461 +0x85DE 0x5463 +0x85DF 0x5465 +0x85E0 0x5467 +0x85E1 0x5469 +0x85E2 0x546A +0x85E3 0x546B +0x85E4 0x546C +0x85E5 0x546D +0x85E6 0x546E +0x85E7 0x546F +0x85E8 0x5470 +0x85E9 0x5474 +0x85EA 0x5479 +0x85EB 0x547A +0x85EC 0x547E +0x85ED 0x547F +0x85EE 0x5481 +0x85EF 0x5483 +0x85F0 0x5485 +0x85F1 0x5487 +0x85F2 0x5488 +0x85F3 0x5489 +0x85F4 0x548A +0x85F5 0x548D +0x85F6 0x5491 +0x85F7 0x5493 +0x85F8 0x5497 +0x85F9 0x5498 +0x85FA 0x549C +0x85FB 0x549E +0x85FC 0x549F +0x85FD 0x54A0 +0x85FE 0x54A1 +0x8640 0x54A2 +0x8641 0x54A5 +0x8642 0x54AE +0x8643 0x54B0 +0x8644 0x54B2 +0x8645 0x54B5 +0x8646 0x54B6 +0x8647 0x54B7 +0x8648 0x54B9 +0x8649 0x54BA +0x864A 0x54BC +0x864B 0x54BE +0x864C 0x54C3 +0x864D 0x54C5 +0x864E 0x54CA +0x864F 0x54CB +0x8650 0x54D6 +0x8651 0x54D8 +0x8652 0x54DB +0x8653 0x54E0 +0x8654 0x54E1 +0x8655 0x54E2 +0x8656 0x54E3 +0x8657 0x54E4 +0x8658 0x54EB +0x8659 0x54EC +0x865A 0x54EF +0x865B 0x54F0 +0x865C 0x54F1 +0x865D 0x54F4 +0x865E 0x54F5 +0x865F 0x54F6 +0x8660 0x54F7 +0x8661 0x54F8 +0x8662 0x54F9 +0x8663 0x54FB +0x8664 0x54FE +0x8665 0x5500 +0x8666 0x5502 +0x8667 0x5503 +0x8668 0x5504 +0x8669 0x5505 +0x866A 0x5508 +0x866B 0x550A +0x866C 0x550B +0x866D 0x550C +0x866E 0x550D +0x866F 0x550E +0x8670 0x5512 +0x8671 0x5513 +0x8672 0x5515 +0x8673 0x5516 +0x8674 0x5517 +0x8675 0x5518 +0x8676 0x5519 +0x8677 0x551A +0x8678 0x551C +0x8679 0x551D +0x867A 0x551E +0x867B 0x551F +0x867C 0x5521 +0x867D 0x5525 +0x867E 0x5526 +0x8680 0x5528 +0x8681 0x5529 +0x8682 0x552B +0x8683 0x552D +0x8684 0x5532 +0x8685 0x5534 +0x8686 0x5535 +0x8687 0x5536 +0x8688 0x5538 +0x8689 0x5539 +0x868A 0x553A +0x868B 0x553B +0x868C 0x553D +0x868D 0x5540 +0x868E 0x5542 +0x868F 0x5545 +0x8690 0x5547 +0x8691 0x5548 +0x8692 0x554B +0x8693 0x554C +0x8694 0x554D +0x8695 0x554E +0x8696 0x554F +0x8697 0x5551 +0x8698 0x5552 +0x8699 0x5553 +0x869A 0x5554 +0x869B 0x5557 +0x869C 0x5558 +0x869D 0x5559 +0x869E 0x555A +0x869F 0x555B +0x86A0 0x555D +0x86A1 0x555E +0x86A2 0x555F +0x86A3 0x5560 +0x86A4 0x5562 +0x86A5 0x5563 +0x86A6 0x5568 +0x86A7 0x5569 +0x86A8 0x556B +0x86A9 0x556F +0x86AA 0x5570 +0x86AB 0x5571 +0x86AC 0x5572 +0x86AD 0x5573 +0x86AE 0x5574 +0x86AF 0x5579 +0x86B0 0x557A +0x86B1 0x557D +0x86B2 0x557F +0x86B3 0x5585 +0x86B4 0x5586 +0x86B5 0x558C +0x86B6 0x558D +0x86B7 0x558E +0x86B8 0x5590 +0x86B9 0x5592 +0x86BA 0x5593 +0x86BB 0x5595 +0x86BC 0x5596 +0x86BD 0x5597 +0x86BE 0x559A +0x86BF 0x559B +0x86C0 0x559E +0x86C1 0x55A0 +0x86C2 0x55A1 +0x86C3 0x55A2 +0x86C4 0x55A3 +0x86C5 0x55A4 +0x86C6 0x55A5 +0x86C7 0x55A6 +0x86C8 0x55A8 +0x86C9 0x55A9 +0x86CA 0x55AA +0x86CB 0x55AB +0x86CC 0x55AC +0x86CD 0x55AD +0x86CE 0x55AE +0x86CF 0x55AF +0x86D0 0x55B0 +0x86D1 0x55B2 +0x86D2 0x55B4 +0x86D3 0x55B6 +0x86D4 0x55B8 +0x86D5 0x55BA +0x86D6 0x55BC +0x86D7 0x55BF +0x86D8 0x55C0 +0x86D9 0x55C1 +0x86DA 0x55C2 +0x86DB 0x55C3 +0x86DC 0x55C6 +0x86DD 0x55C7 +0x86DE 0x55C8 +0x86DF 0x55CA +0x86E0 0x55CB +0x86E1 0x55CE +0x86E2 0x55CF +0x86E3 0x55D0 +0x86E4 0x55D5 +0x86E5 0x55D7 +0x86E6 0x55D8 +0x86E7 0x55D9 +0x86E8 0x55DA +0x86E9 0x55DB +0x86EA 0x55DE +0x86EB 0x55E0 +0x86EC 0x55E2 +0x86ED 0x55E7 +0x86EE 0x55E9 +0x86EF 0x55ED +0x86F0 0x55EE +0x86F1 0x55F0 +0x86F2 0x55F1 +0x86F3 0x55F4 +0x86F4 0x55F6 +0x86F5 0x55F8 +0x86F6 0x55F9 +0x86F7 0x55FA +0x86F8 0x55FB +0x86F9 0x55FC +0x86FA 0x55FF +0x86FB 0x5602 +0x86FC 0x5603 +0x86FD 0x5604 +0x86FE 0x5605 +0x8740 0x5606 +0x8741 0x5607 +0x8742 0x560A +0x8743 0x560B +0x8744 0x560D +0x8745 0x5610 +0x8746 0x5611 +0x8747 0x5612 +0x8748 0x5613 +0x8749 0x5614 +0x874A 0x5615 +0x874B 0x5616 +0x874C 0x5617 +0x874D 0x5619 +0x874E 0x561A +0x874F 0x561C +0x8750 0x561D +0x8751 0x5620 +0x8752 0x5621 +0x8753 0x5622 +0x8754 0x5625 +0x8755 0x5626 +0x8756 0x5628 +0x8757 0x5629 +0x8758 0x562A +0x8759 0x562B +0x875A 0x562E +0x875B 0x562F +0x875C 0x5630 +0x875D 0x5633 +0x875E 0x5635 +0x875F 0x5637 +0x8760 0x5638 +0x8761 0x563A +0x8762 0x563C +0x8763 0x563D +0x8764 0x563E +0x8765 0x5640 +0x8766 0x5641 +0x8767 0x5642 +0x8768 0x5643 +0x8769 0x5644 +0x876A 0x5645 +0x876B 0x5646 +0x876C 0x5647 +0x876D 0x5648 +0x876E 0x5649 +0x876F 0x564A +0x8770 0x564B +0x8771 0x564F +0x8772 0x5650 +0x8773 0x5651 +0x8774 0x5652 +0x8775 0x5653 +0x8776 0x5655 +0x8777 0x5656 +0x8778 0x565A +0x8779 0x565B +0x877A 0x565D +0x877B 0x565E +0x877C 0x565F +0x877D 0x5660 +0x877E 0x5661 +0x8780 0x5663 +0x8781 0x5665 +0x8782 0x5666 +0x8783 0x5667 +0x8784 0x566D +0x8785 0x566E +0x8786 0x566F +0x8787 0x5670 +0x8788 0x5672 +0x8789 0x5673 +0x878A 0x5674 +0x878B 0x5675 +0x878C 0x5677 +0x878D 0x5678 +0x878E 0x5679 +0x878F 0x567A +0x8790 0x567D +0x8791 0x567E +0x8792 0x567F +0x8793 0x5680 +0x8794 0x5681 +0x8795 0x5682 +0x8796 0x5683 +0x8797 0x5684 +0x8798 0x5687 +0x8799 0x5688 +0x879A 0x5689 +0x879B 0x568A +0x879C 0x568B +0x879D 0x568C +0x879E 0x568D +0x879F 0x5690 +0x87A0 0x5691 +0x87A1 0x5692 +0x87A2 0x5694 +0x87A3 0x5695 +0x87A4 0x5696 +0x87A5 0x5697 +0x87A6 0x5698 +0x87A7 0x5699 +0x87A8 0x569A +0x87A9 0x569B +0x87AA 0x569C +0x87AB 0x569D +0x87AC 0x569E +0x87AD 0x569F +0x87AE 0x56A0 +0x87AF 0x56A1 +0x87B0 0x56A2 +0x87B1 0x56A4 +0x87B2 0x56A5 +0x87B3 0x56A6 +0x87B4 0x56A7 +0x87B5 0x56A8 +0x87B6 0x56A9 +0x87B7 0x56AA +0x87B8 0x56AB +0x87B9 0x56AC +0x87BA 0x56AD +0x87BB 0x56AE +0x87BC 0x56B0 +0x87BD 0x56B1 +0x87BE 0x56B2 +0x87BF 0x56B3 +0x87C0 0x56B4 +0x87C1 0x56B5 +0x87C2 0x56B6 +0x87C3 0x56B8 +0x87C4 0x56B9 +0x87C5 0x56BA +0x87C6 0x56BB +0x87C7 0x56BD +0x87C8 0x56BE +0x87C9 0x56BF +0x87CA 0x56C0 +0x87CB 0x56C1 +0x87CC 0x56C2 +0x87CD 0x56C3 +0x87CE 0x56C4 +0x87CF 0x56C5 +0x87D0 0x56C6 +0x87D1 0x56C7 +0x87D2 0x56C8 +0x87D3 0x56C9 +0x87D4 0x56CB +0x87D5 0x56CC +0x87D6 0x56CD +0x87D7 0x56CE +0x87D8 0x56CF +0x87D9 0x56D0 +0x87DA 0x56D1 +0x87DB 0x56D2 +0x87DC 0x56D3 +0x87DD 0x56D5 +0x87DE 0x56D6 +0x87DF 0x56D8 +0x87E0 0x56D9 +0x87E1 0x56DC +0x87E2 0x56E3 +0x87E3 0x56E5 +0x87E4 0x56E6 +0x87E5 0x56E7 +0x87E6 0x56E8 +0x87E7 0x56E9 +0x87E8 0x56EA +0x87E9 0x56EC +0x87EA 0x56EE +0x87EB 0x56EF +0x87EC 0x56F2 +0x87ED 0x56F3 +0x87EE 0x56F6 +0x87EF 0x56F7 +0x87F0 0x56F8 +0x87F1 0x56FB +0x87F2 0x56FC +0x87F3 0x5700 +0x87F4 0x5701 +0x87F5 0x5702 +0x87F6 0x5705 +0x87F7 0x5707 +0x87F8 0x570B +0x87F9 0x570C +0x87FA 0x570D +0x87FB 0x570E +0x87FC 0x570F +0x87FD 0x5710 +0x87FE 0x5711 +0x8840 0x5712 +0x8841 0x5713 +0x8842 0x5714 +0x8843 0x5715 +0x8844 0x5716 +0x8845 0x5717 +0x8846 0x5718 +0x8847 0x5719 +0x8848 0x571A +0x8849 0x571B +0x884A 0x571D +0x884B 0x571E +0x884C 0x5720 +0x884D 0x5721 +0x884E 0x5722 +0x884F 0x5724 +0x8850 0x5725 +0x8851 0x5726 +0x8852 0x5727 +0x8853 0x572B +0x8854 0x5731 +0x8855 0x5732 +0x8856 0x5734 +0x8857 0x5735 +0x8858 0x5736 +0x8859 0x5737 +0x885A 0x5738 +0x885B 0x573C +0x885C 0x573D +0x885D 0x573F +0x885E 0x5741 +0x885F 0x5743 +0x8860 0x5744 +0x8861 0x5745 +0x8862 0x5746 +0x8863 0x5748 +0x8864 0x5749 +0x8865 0x574B +0x8866 0x5752 +0x8867 0x5753 +0x8868 0x5754 +0x8869 0x5755 +0x886A 0x5756 +0x886B 0x5758 +0x886C 0x5759 +0x886D 0x5762 +0x886E 0x5763 +0x886F 0x5765 +0x8870 0x5767 +0x8871 0x576C +0x8872 0x576E +0x8873 0x5770 +0x8874 0x5771 +0x8875 0x5772 +0x8876 0x5774 +0x8877 0x5775 +0x8878 0x5778 +0x8879 0x5779 +0x887A 0x577A +0x887B 0x577D +0x887C 0x577E +0x887D 0x577F +0x887E 0x5780 +0x8880 0x5781 +0x8881 0x5787 +0x8882 0x5788 +0x8883 0x5789 +0x8884 0x578A +0x8885 0x578D +0x8886 0x578E +0x8887 0x578F +0x8888 0x5790 +0x8889 0x5791 +0x888A 0x5794 +0x888B 0x5795 +0x888C 0x5796 +0x888D 0x5797 +0x888E 0x5798 +0x888F 0x5799 +0x8890 0x579A +0x8891 0x579C +0x8892 0x579D +0x8893 0x579E +0x8894 0x579F +0x8895 0x57A5 +0x8896 0x57A8 +0x8897 0x57AA +0x8898 0x57AC +0x8899 0x57AF +0x889A 0x57B0 +0x889B 0x57B1 +0x889C 0x57B3 +0x889D 0x57B5 +0x889E 0x57B6 +0x889F 0x57B7 +0x88A0 0x57B9 +0x88A1 0x57BA +0x88A2 0x57BB +0x88A3 0x57BC +0x88A4 0x57BD +0x88A5 0x57BE +0x88A6 0x57BF +0x88A7 0x57C0 +0x88A8 0x57C1 +0x88A9 0x57C4 +0x88AA 0x57C5 +0x88AB 0x57C6 +0x88AC 0x57C7 +0x88AD 0x57C8 +0x88AE 0x57C9 +0x88AF 0x57CA +0x88B0 0x57CC +0x88B1 0x57CD +0x88B2 0x57D0 +0x88B3 0x57D1 +0x88B4 0x57D3 +0x88B5 0x57D6 +0x88B6 0x57D7 +0x88B7 0x57DB +0x88B8 0x57DC +0x88B9 0x57DE +0x88BA 0x57E1 +0x88BB 0x57E2 +0x88BC 0x57E3 +0x88BD 0x57E5 +0x88BE 0x57E6 +0x88BF 0x57E7 +0x88C0 0x57E8 +0x88C1 0x57E9 +0x88C2 0x57EA +0x88C3 0x57EB +0x88C4 0x57EC +0x88C5 0x57EE +0x88C6 0x57F0 +0x88C7 0x57F1 +0x88C8 0x57F2 +0x88C9 0x57F3 +0x88CA 0x57F5 +0x88CB 0x57F6 +0x88CC 0x57F7 +0x88CD 0x57FB +0x88CE 0x57FC +0x88CF 0x57FE +0x88D0 0x57FF +0x88D1 0x5801 +0x88D2 0x5803 +0x88D3 0x5804 +0x88D4 0x5805 +0x88D5 0x5808 +0x88D6 0x5809 +0x88D7 0x580A +0x88D8 0x580C +0x88D9 0x580E +0x88DA 0x580F +0x88DB 0x5810 +0x88DC 0x5812 +0x88DD 0x5813 +0x88DE 0x5814 +0x88DF 0x5816 +0x88E0 0x5817 +0x88E1 0x5818 +0x88E2 0x581A +0x88E3 0x581B +0x88E4 0x581C +0x88E5 0x581D +0x88E6 0x581F +0x88E7 0x5822 +0x88E8 0x5823 +0x88E9 0x5825 +0x88EA 0x5826 +0x88EB 0x5827 +0x88EC 0x5828 +0x88ED 0x5829 +0x88EE 0x582B +0x88EF 0x582C +0x88F0 0x582D +0x88F1 0x582E +0x88F2 0x582F +0x88F3 0x5831 +0x88F4 0x5832 +0x88F5 0x5833 +0x88F6 0x5834 +0x88F7 0x5836 +0x88F8 0x5837 +0x88F9 0x5838 +0x88FA 0x5839 +0x88FB 0x583A +0x88FC 0x583B +0x88FD 0x583C +0x88FE 0x583D +0x8940 0x583E +0x8941 0x583F +0x8942 0x5840 +0x8943 0x5841 +0x8944 0x5842 +0x8945 0x5843 +0x8946 0x5845 +0x8947 0x5846 +0x8948 0x5847 +0x8949 0x5848 +0x894A 0x5849 +0x894B 0x584A +0x894C 0x584B +0x894D 0x584E +0x894E 0x584F +0x894F 0x5850 +0x8950 0x5852 +0x8951 0x5853 +0x8952 0x5855 +0x8953 0x5856 +0x8954 0x5857 +0x8955 0x5859 +0x8956 0x585A +0x8957 0x585B +0x8958 0x585C +0x8959 0x585D +0x895A 0x585F +0x895B 0x5860 +0x895C 0x5861 +0x895D 0x5862 +0x895E 0x5863 +0x895F 0x5864 +0x8960 0x5866 +0x8961 0x5867 +0x8962 0x5868 +0x8963 0x5869 +0x8964 0x586A +0x8965 0x586D +0x8966 0x586E +0x8967 0x586F +0x8968 0x5870 +0x8969 0x5871 +0x896A 0x5872 +0x896B 0x5873 +0x896C 0x5874 +0x896D 0x5875 +0x896E 0x5876 +0x896F 0x5877 +0x8970 0x5878 +0x8971 0x5879 +0x8972 0x587A +0x8973 0x587B +0x8974 0x587C +0x8975 0x587D +0x8976 0x587F +0x8977 0x5882 +0x8978 0x5884 +0x8979 0x5886 +0x897A 0x5887 +0x897B 0x5888 +0x897C 0x588A +0x897D 0x588B +0x897E 0x588C +0x8980 0x588D +0x8981 0x588E +0x8982 0x588F +0x8983 0x5890 +0x8984 0x5891 +0x8985 0x5894 +0x8986 0x5895 +0x8987 0x5896 +0x8988 0x5897 +0x8989 0x5898 +0x898A 0x589B +0x898B 0x589C +0x898C 0x589D +0x898D 0x58A0 +0x898E 0x58A1 +0x898F 0x58A2 +0x8990 0x58A3 +0x8991 0x58A4 +0x8992 0x58A5 +0x8993 0x58A6 +0x8994 0x58A7 +0x8995 0x58AA +0x8996 0x58AB +0x8997 0x58AC +0x8998 0x58AD +0x8999 0x58AE +0x899A 0x58AF +0x899B 0x58B0 +0x899C 0x58B1 +0x899D 0x58B2 +0x899E 0x58B3 +0x899F 0x58B4 +0x89A0 0x58B5 +0x89A1 0x58B6 +0x89A2 0x58B7 +0x89A3 0x58B8 +0x89A4 0x58B9 +0x89A5 0x58BA +0x89A6 0x58BB +0x89A7 0x58BD +0x89A8 0x58BE +0x89A9 0x58BF +0x89AA 0x58C0 +0x89AB 0x58C2 +0x89AC 0x58C3 +0x89AD 0x58C4 +0x89AE 0x58C6 +0x89AF 0x58C7 +0x89B0 0x58C8 +0x89B1 0x58C9 +0x89B2 0x58CA +0x89B3 0x58CB +0x89B4 0x58CC +0x89B5 0x58CD +0x89B6 0x58CE +0x89B7 0x58CF +0x89B8 0x58D0 +0x89B9 0x58D2 +0x89BA 0x58D3 +0x89BB 0x58D4 +0x89BC 0x58D6 +0x89BD 0x58D7 +0x89BE 0x58D8 +0x89BF 0x58D9 +0x89C0 0x58DA +0x89C1 0x58DB +0x89C2 0x58DC +0x89C3 0x58DD +0x89C4 0x58DE +0x89C5 0x58DF +0x89C6 0x58E0 +0x89C7 0x58E1 +0x89C8 0x58E2 +0x89C9 0x58E3 +0x89CA 0x58E5 +0x89CB 0x58E6 +0x89CC 0x58E7 +0x89CD 0x58E8 +0x89CE 0x58E9 +0x89CF 0x58EA +0x89D0 0x58ED +0x89D1 0x58EF +0x89D2 0x58F1 +0x89D3 0x58F2 +0x89D4 0x58F4 +0x89D5 0x58F5 +0x89D6 0x58F7 +0x89D7 0x58F8 +0x89D8 0x58FA +0x89D9 0x58FB +0x89DA 0x58FC +0x89DB 0x58FD +0x89DC 0x58FE +0x89DD 0x58FF +0x89DE 0x5900 +0x89DF 0x5901 +0x89E0 0x5903 +0x89E1 0x5905 +0x89E2 0x5906 +0x89E3 0x5908 +0x89E4 0x5909 +0x89E5 0x590A +0x89E6 0x590B +0x89E7 0x590C +0x89E8 0x590E +0x89E9 0x5910 +0x89EA 0x5911 +0x89EB 0x5912 +0x89EC 0x5913 +0x89ED 0x5917 +0x89EE 0x5918 +0x89EF 0x591B +0x89F0 0x591D +0x89F1 0x591E +0x89F2 0x5920 +0x89F3 0x5921 +0x89F4 0x5922 +0x89F5 0x5923 +0x89F6 0x5926 +0x89F7 0x5928 +0x89F8 0x592C +0x89F9 0x5930 +0x89FA 0x5932 +0x89FB 0x5933 +0x89FC 0x5935 +0x89FD 0x5936 +0x89FE 0x593B +0x8A40 0x593D +0x8A41 0x593E +0x8A42 0x593F +0x8A43 0x5940 +0x8A44 0x5943 +0x8A45 0x5945 +0x8A46 0x5946 +0x8A47 0x594A +0x8A48 0x594C +0x8A49 0x594D +0x8A4A 0x5950 +0x8A4B 0x5952 +0x8A4C 0x5953 +0x8A4D 0x5959 +0x8A4E 0x595B +0x8A4F 0x595C +0x8A50 0x595D +0x8A51 0x595E +0x8A52 0x595F +0x8A53 0x5961 +0x8A54 0x5963 +0x8A55 0x5964 +0x8A56 0x5966 +0x8A57 0x5967 +0x8A58 0x5968 +0x8A59 0x5969 +0x8A5A 0x596A +0x8A5B 0x596B +0x8A5C 0x596C +0x8A5D 0x596D +0x8A5E 0x596E +0x8A5F 0x596F +0x8A60 0x5970 +0x8A61 0x5971 +0x8A62 0x5972 +0x8A63 0x5975 +0x8A64 0x5977 +0x8A65 0x597A +0x8A66 0x597B +0x8A67 0x597C +0x8A68 0x597E +0x8A69 0x597F +0x8A6A 0x5980 +0x8A6B 0x5985 +0x8A6C 0x5989 +0x8A6D 0x598B +0x8A6E 0x598C +0x8A6F 0x598E +0x8A70 0x598F +0x8A71 0x5990 +0x8A72 0x5991 +0x8A73 0x5994 +0x8A74 0x5995 +0x8A75 0x5998 +0x8A76 0x599A +0x8A77 0x599B +0x8A78 0x599C +0x8A79 0x599D +0x8A7A 0x599F +0x8A7B 0x59A0 +0x8A7C 0x59A1 +0x8A7D 0x59A2 +0x8A7E 0x59A6 +0x8A80 0x59A7 +0x8A81 0x59AC +0x8A82 0x59AD +0x8A83 0x59B0 +0x8A84 0x59B1 +0x8A85 0x59B3 +0x8A86 0x59B4 +0x8A87 0x59B5 +0x8A88 0x59B6 +0x8A89 0x59B7 +0x8A8A 0x59B8 +0x8A8B 0x59BA +0x8A8C 0x59BC +0x8A8D 0x59BD +0x8A8E 0x59BF +0x8A8F 0x59C0 +0x8A90 0x59C1 +0x8A91 0x59C2 +0x8A92 0x59C3 +0x8A93 0x59C4 +0x8A94 0x59C5 +0x8A95 0x59C7 +0x8A96 0x59C8 +0x8A97 0x59C9 +0x8A98 0x59CC +0x8A99 0x59CD +0x8A9A 0x59CE +0x8A9B 0x59CF +0x8A9C 0x59D5 +0x8A9D 0x59D6 +0x8A9E 0x59D9 +0x8A9F 0x59DB +0x8AA0 0x59DE +0x8AA1 0x59DF +0x8AA2 0x59E0 +0x8AA3 0x59E1 +0x8AA4 0x59E2 +0x8AA5 0x59E4 +0x8AA6 0x59E6 +0x8AA7 0x59E7 +0x8AA8 0x59E9 +0x8AA9 0x59EA +0x8AAA 0x59EB +0x8AAB 0x59ED +0x8AAC 0x59EE +0x8AAD 0x59EF +0x8AAE 0x59F0 +0x8AAF 0x59F1 +0x8AB0 0x59F2 +0x8AB1 0x59F3 +0x8AB2 0x59F4 +0x8AB3 0x59F5 +0x8AB4 0x59F6 +0x8AB5 0x59F7 +0x8AB6 0x59F8 +0x8AB7 0x59FA +0x8AB8 0x59FC +0x8AB9 0x59FD +0x8ABA 0x59FE +0x8ABB 0x5A00 +0x8ABC 0x5A02 +0x8ABD 0x5A0A +0x8ABE 0x5A0B +0x8ABF 0x5A0D +0x8AC0 0x5A0E +0x8AC1 0x5A0F +0x8AC2 0x5A10 +0x8AC3 0x5A12 +0x8AC4 0x5A14 +0x8AC5 0x5A15 +0x8AC6 0x5A16 +0x8AC7 0x5A17 +0x8AC8 0x5A19 +0x8AC9 0x5A1A +0x8ACA 0x5A1B +0x8ACB 0x5A1D +0x8ACC 0x5A1E +0x8ACD 0x5A21 +0x8ACE 0x5A22 +0x8ACF 0x5A24 +0x8AD0 0x5A26 +0x8AD1 0x5A27 +0x8AD2 0x5A28 +0x8AD3 0x5A2A +0x8AD4 0x5A2B +0x8AD5 0x5A2C +0x8AD6 0x5A2D +0x8AD7 0x5A2E +0x8AD8 0x5A2F +0x8AD9 0x5A30 +0x8ADA 0x5A33 +0x8ADB 0x5A35 +0x8ADC 0x5A37 +0x8ADD 0x5A38 +0x8ADE 0x5A39 +0x8ADF 0x5A3A +0x8AE0 0x5A3B +0x8AE1 0x5A3D +0x8AE2 0x5A3E +0x8AE3 0x5A3F +0x8AE4 0x5A41 +0x8AE5 0x5A42 +0x8AE6 0x5A43 +0x8AE7 0x5A44 +0x8AE8 0x5A45 +0x8AE9 0x5A47 +0x8AEA 0x5A48 +0x8AEB 0x5A4B +0x8AEC 0x5A4C +0x8AED 0x5A4D +0x8AEE 0x5A4E +0x8AEF 0x5A4F +0x8AF0 0x5A50 +0x8AF1 0x5A51 +0x8AF2 0x5A52 +0x8AF3 0x5A53 +0x8AF4 0x5A54 +0x8AF5 0x5A56 +0x8AF6 0x5A57 +0x8AF7 0x5A58 +0x8AF8 0x5A59 +0x8AF9 0x5A5B +0x8AFA 0x5A5C +0x8AFB 0x5A5D +0x8AFC 0x5A5E +0x8AFD 0x5A5F +0x8AFE 0x5A60 +0x8B40 0x5A61 +0x8B41 0x5A63 +0x8B42 0x5A64 +0x8B43 0x5A65 +0x8B44 0x5A66 +0x8B45 0x5A68 +0x8B46 0x5A69 +0x8B47 0x5A6B +0x8B48 0x5A6C +0x8B49 0x5A6D +0x8B4A 0x5A6E +0x8B4B 0x5A6F +0x8B4C 0x5A70 +0x8B4D 0x5A71 +0x8B4E 0x5A72 +0x8B4F 0x5A73 +0x8B50 0x5A78 +0x8B51 0x5A79 +0x8B52 0x5A7B +0x8B53 0x5A7C +0x8B54 0x5A7D +0x8B55 0x5A7E +0x8B56 0x5A80 +0x8B57 0x5A81 +0x8B58 0x5A82 +0x8B59 0x5A83 +0x8B5A 0x5A84 +0x8B5B 0x5A85 +0x8B5C 0x5A86 +0x8B5D 0x5A87 +0x8B5E 0x5A88 +0x8B5F 0x5A89 +0x8B60 0x5A8A +0x8B61 0x5A8B +0x8B62 0x5A8C +0x8B63 0x5A8D +0x8B64 0x5A8E +0x8B65 0x5A8F +0x8B66 0x5A90 +0x8B67 0x5A91 +0x8B68 0x5A93 +0x8B69 0x5A94 +0x8B6A 0x5A95 +0x8B6B 0x5A96 +0x8B6C 0x5A97 +0x8B6D 0x5A98 +0x8B6E 0x5A99 +0x8B6F 0x5A9C +0x8B70 0x5A9D +0x8B71 0x5A9E +0x8B72 0x5A9F +0x8B73 0x5AA0 +0x8B74 0x5AA1 +0x8B75 0x5AA2 +0x8B76 0x5AA3 +0x8B77 0x5AA4 +0x8B78 0x5AA5 +0x8B79 0x5AA6 +0x8B7A 0x5AA7 +0x8B7B 0x5AA8 +0x8B7C 0x5AA9 +0x8B7D 0x5AAB +0x8B7E 0x5AAC +0x8B80 0x5AAD +0x8B81 0x5AAE +0x8B82 0x5AAF +0x8B83 0x5AB0 +0x8B84 0x5AB1 +0x8B85 0x5AB4 +0x8B86 0x5AB6 +0x8B87 0x5AB7 +0x8B88 0x5AB9 +0x8B89 0x5ABA +0x8B8A 0x5ABB +0x8B8B 0x5ABC +0x8B8C 0x5ABD +0x8B8D 0x5ABF +0x8B8E 0x5AC0 +0x8B8F 0x5AC3 +0x8B90 0x5AC4 +0x8B91 0x5AC5 +0x8B92 0x5AC6 +0x8B93 0x5AC7 +0x8B94 0x5AC8 +0x8B95 0x5ACA +0x8B96 0x5ACB +0x8B97 0x5ACD +0x8B98 0x5ACE +0x8B99 0x5ACF +0x8B9A 0x5AD0 +0x8B9B 0x5AD1 +0x8B9C 0x5AD3 +0x8B9D 0x5AD5 +0x8B9E 0x5AD7 +0x8B9F 0x5AD9 +0x8BA0 0x5ADA +0x8BA1 0x5ADB +0x8BA2 0x5ADD +0x8BA3 0x5ADE +0x8BA4 0x5ADF +0x8BA5 0x5AE2 +0x8BA6 0x5AE4 +0x8BA7 0x5AE5 +0x8BA8 0x5AE7 +0x8BA9 0x5AE8 +0x8BAA 0x5AEA +0x8BAB 0x5AEC +0x8BAC 0x5AED +0x8BAD 0x5AEE +0x8BAE 0x5AEF +0x8BAF 0x5AF0 +0x8BB0 0x5AF2 +0x8BB1 0x5AF3 +0x8BB2 0x5AF4 +0x8BB3 0x5AF5 +0x8BB4 0x5AF6 +0x8BB5 0x5AF7 +0x8BB6 0x5AF8 +0x8BB7 0x5AF9 +0x8BB8 0x5AFA +0x8BB9 0x5AFB +0x8BBA 0x5AFC +0x8BBB 0x5AFD +0x8BBC 0x5AFE +0x8BBD 0x5AFF +0x8BBE 0x5B00 +0x8BBF 0x5B01 +0x8BC0 0x5B02 +0x8BC1 0x5B03 +0x8BC2 0x5B04 +0x8BC3 0x5B05 +0x8BC4 0x5B06 +0x8BC5 0x5B07 +0x8BC6 0x5B08 +0x8BC7 0x5B0A +0x8BC8 0x5B0B +0x8BC9 0x5B0C +0x8BCA 0x5B0D +0x8BCB 0x5B0E +0x8BCC 0x5B0F +0x8BCD 0x5B10 +0x8BCE 0x5B11 +0x8BCF 0x5B12 +0x8BD0 0x5B13 +0x8BD1 0x5B14 +0x8BD2 0x5B15 +0x8BD3 0x5B18 +0x8BD4 0x5B19 +0x8BD5 0x5B1A +0x8BD6 0x5B1B +0x8BD7 0x5B1C +0x8BD8 0x5B1D +0x8BD9 0x5B1E +0x8BDA 0x5B1F +0x8BDB 0x5B20 +0x8BDC 0x5B21 +0x8BDD 0x5B22 +0x8BDE 0x5B23 +0x8BDF 0x5B24 +0x8BE0 0x5B25 +0x8BE1 0x5B26 +0x8BE2 0x5B27 +0x8BE3 0x5B28 +0x8BE4 0x5B29 +0x8BE5 0x5B2A +0x8BE6 0x5B2B +0x8BE7 0x5B2C +0x8BE8 0x5B2D +0x8BE9 0x5B2E +0x8BEA 0x5B2F +0x8BEB 0x5B30 +0x8BEC 0x5B31 +0x8BED 0x5B33 +0x8BEE 0x5B35 +0x8BEF 0x5B36 +0x8BF0 0x5B38 +0x8BF1 0x5B39 +0x8BF2 0x5B3A +0x8BF3 0x5B3B +0x8BF4 0x5B3C +0x8BF5 0x5B3D +0x8BF6 0x5B3E +0x8BF7 0x5B3F +0x8BF8 0x5B41 +0x8BF9 0x5B42 +0x8BFA 0x5B43 +0x8BFB 0x5B44 +0x8BFC 0x5B45 +0x8BFD 0x5B46 +0x8BFE 0x5B47 +0x8C40 0x5B48 +0x8C41 0x5B49 +0x8C42 0x5B4A +0x8C43 0x5B4B +0x8C44 0x5B4C +0x8C45 0x5B4D +0x8C46 0x5B4E +0x8C47 0x5B4F +0x8C48 0x5B52 +0x8C49 0x5B56 +0x8C4A 0x5B5E +0x8C4B 0x5B60 +0x8C4C 0x5B61 +0x8C4D 0x5B67 +0x8C4E 0x5B68 +0x8C4F 0x5B6B +0x8C50 0x5B6D +0x8C51 0x5B6E +0x8C52 0x5B6F +0x8C53 0x5B72 +0x8C54 0x5B74 +0x8C55 0x5B76 +0x8C56 0x5B77 +0x8C57 0x5B78 +0x8C58 0x5B79 +0x8C59 0x5B7B +0x8C5A 0x5B7C +0x8C5B 0x5B7E +0x8C5C 0x5B7F +0x8C5D 0x5B82 +0x8C5E 0x5B86 +0x8C5F 0x5B8A +0x8C60 0x5B8D +0x8C61 0x5B8E +0x8C62 0x5B90 +0x8C63 0x5B91 +0x8C64 0x5B92 +0x8C65 0x5B94 +0x8C66 0x5B96 +0x8C67 0x5B9F +0x8C68 0x5BA7 +0x8C69 0x5BA8 +0x8C6A 0x5BA9 +0x8C6B 0x5BAC +0x8C6C 0x5BAD +0x8C6D 0x5BAE +0x8C6E 0x5BAF +0x8C6F 0x5BB1 +0x8C70 0x5BB2 +0x8C71 0x5BB7 +0x8C72 0x5BBA +0x8C73 0x5BBB +0x8C74 0x5BBC +0x8C75 0x5BC0 +0x8C76 0x5BC1 +0x8C77 0x5BC3 +0x8C78 0x5BC8 +0x8C79 0x5BC9 +0x8C7A 0x5BCA +0x8C7B 0x5BCB +0x8C7C 0x5BCD +0x8C7D 0x5BCE +0x8C7E 0x5BCF +0x8C80 0x5BD1 +0x8C81 0x5BD4 +0x8C82 0x5BD5 +0x8C83 0x5BD6 +0x8C84 0x5BD7 +0x8C85 0x5BD8 +0x8C86 0x5BD9 +0x8C87 0x5BDA +0x8C88 0x5BDB +0x8C89 0x5BDC +0x8C8A 0x5BE0 +0x8C8B 0x5BE2 +0x8C8C 0x5BE3 +0x8C8D 0x5BE6 +0x8C8E 0x5BE7 +0x8C8F 0x5BE9 +0x8C90 0x5BEA +0x8C91 0x5BEB +0x8C92 0x5BEC +0x8C93 0x5BED +0x8C94 0x5BEF +0x8C95 0x5BF1 +0x8C96 0x5BF2 +0x8C97 0x5BF3 +0x8C98 0x5BF4 +0x8C99 0x5BF5 +0x8C9A 0x5BF6 +0x8C9B 0x5BF7 +0x8C9C 0x5BFD +0x8C9D 0x5BFE +0x8C9E 0x5C00 +0x8C9F 0x5C02 +0x8CA0 0x5C03 +0x8CA1 0x5C05 +0x8CA2 0x5C07 +0x8CA3 0x5C08 +0x8CA4 0x5C0B +0x8CA5 0x5C0C +0x8CA6 0x5C0D +0x8CA7 0x5C0E +0x8CA8 0x5C10 +0x8CA9 0x5C12 +0x8CAA 0x5C13 +0x8CAB 0x5C17 +0x8CAC 0x5C19 +0x8CAD 0x5C1B +0x8CAE 0x5C1E +0x8CAF 0x5C1F +0x8CB0 0x5C20 +0x8CB1 0x5C21 +0x8CB2 0x5C23 +0x8CB3 0x5C26 +0x8CB4 0x5C28 +0x8CB5 0x5C29 +0x8CB6 0x5C2A +0x8CB7 0x5C2B +0x8CB8 0x5C2D +0x8CB9 0x5C2E +0x8CBA 0x5C2F +0x8CBB 0x5C30 +0x8CBC 0x5C32 +0x8CBD 0x5C33 +0x8CBE 0x5C35 +0x8CBF 0x5C36 +0x8CC0 0x5C37 +0x8CC1 0x5C43 +0x8CC2 0x5C44 +0x8CC3 0x5C46 +0x8CC4 0x5C47 +0x8CC5 0x5C4C +0x8CC6 0x5C4D +0x8CC7 0x5C52 +0x8CC8 0x5C53 +0x8CC9 0x5C54 +0x8CCA 0x5C56 +0x8CCB 0x5C57 +0x8CCC 0x5C58 +0x8CCD 0x5C5A +0x8CCE 0x5C5B +0x8CCF 0x5C5C +0x8CD0 0x5C5D +0x8CD1 0x5C5F +0x8CD2 0x5C62 +0x8CD3 0x5C64 +0x8CD4 0x5C67 +0x8CD5 0x5C68 +0x8CD6 0x5C69 +0x8CD7 0x5C6A +0x8CD8 0x5C6B +0x8CD9 0x5C6C +0x8CDA 0x5C6D +0x8CDB 0x5C70 +0x8CDC 0x5C72 +0x8CDD 0x5C73 +0x8CDE 0x5C74 +0x8CDF 0x5C75 +0x8CE0 0x5C76 +0x8CE1 0x5C77 +0x8CE2 0x5C78 +0x8CE3 0x5C7B +0x8CE4 0x5C7C +0x8CE5 0x5C7D +0x8CE6 0x5C7E +0x8CE7 0x5C80 +0x8CE8 0x5C83 +0x8CE9 0x5C84 +0x8CEA 0x5C85 +0x8CEB 0x5C86 +0x8CEC 0x5C87 +0x8CED 0x5C89 +0x8CEE 0x5C8A +0x8CEF 0x5C8B +0x8CF0 0x5C8E +0x8CF1 0x5C8F +0x8CF2 0x5C92 +0x8CF3 0x5C93 +0x8CF4 0x5C95 +0x8CF5 0x5C9D +0x8CF6 0x5C9E +0x8CF7 0x5C9F +0x8CF8 0x5CA0 +0x8CF9 0x5CA1 +0x8CFA 0x5CA4 +0x8CFB 0x5CA5 +0x8CFC 0x5CA6 +0x8CFD 0x5CA7 +0x8CFE 0x5CA8 +0x8D40 0x5CAA +0x8D41 0x5CAE +0x8D42 0x5CAF +0x8D43 0x5CB0 +0x8D44 0x5CB2 +0x8D45 0x5CB4 +0x8D46 0x5CB6 +0x8D47 0x5CB9 +0x8D48 0x5CBA +0x8D49 0x5CBB +0x8D4A 0x5CBC +0x8D4B 0x5CBE +0x8D4C 0x5CC0 +0x8D4D 0x5CC2 +0x8D4E 0x5CC3 +0x8D4F 0x5CC5 +0x8D50 0x5CC6 +0x8D51 0x5CC7 +0x8D52 0x5CC8 +0x8D53 0x5CC9 +0x8D54 0x5CCA +0x8D55 0x5CCC +0x8D56 0x5CCD +0x8D57 0x5CCE +0x8D58 0x5CCF +0x8D59 0x5CD0 +0x8D5A 0x5CD1 +0x8D5B 0x5CD3 +0x8D5C 0x5CD4 +0x8D5D 0x5CD5 +0x8D5E 0x5CD6 +0x8D5F 0x5CD7 +0x8D60 0x5CD8 +0x8D61 0x5CDA +0x8D62 0x5CDB +0x8D63 0x5CDC +0x8D64 0x5CDD +0x8D65 0x5CDE +0x8D66 0x5CDF +0x8D67 0x5CE0 +0x8D68 0x5CE2 +0x8D69 0x5CE3 +0x8D6A 0x5CE7 +0x8D6B 0x5CE9 +0x8D6C 0x5CEB +0x8D6D 0x5CEC +0x8D6E 0x5CEE +0x8D6F 0x5CEF +0x8D70 0x5CF1 +0x8D71 0x5CF2 +0x8D72 0x5CF3 +0x8D73 0x5CF4 +0x8D74 0x5CF5 +0x8D75 0x5CF6 +0x8D76 0x5CF7 +0x8D77 0x5CF8 +0x8D78 0x5CF9 +0x8D79 0x5CFA +0x8D7A 0x5CFC +0x8D7B 0x5CFD +0x8D7C 0x5CFE +0x8D7D 0x5CFF +0x8D7E 0x5D00 +0x8D80 0x5D01 +0x8D81 0x5D04 +0x8D82 0x5D05 +0x8D83 0x5D08 +0x8D84 0x5D09 +0x8D85 0x5D0A +0x8D86 0x5D0B +0x8D87 0x5D0C +0x8D88 0x5D0D +0x8D89 0x5D0F +0x8D8A 0x5D10 +0x8D8B 0x5D11 +0x8D8C 0x5D12 +0x8D8D 0x5D13 +0x8D8E 0x5D15 +0x8D8F 0x5D17 +0x8D90 0x5D18 +0x8D91 0x5D19 +0x8D92 0x5D1A +0x8D93 0x5D1C +0x8D94 0x5D1D +0x8D95 0x5D1F +0x8D96 0x5D20 +0x8D97 0x5D21 +0x8D98 0x5D22 +0x8D99 0x5D23 +0x8D9A 0x5D25 +0x8D9B 0x5D28 +0x8D9C 0x5D2A +0x8D9D 0x5D2B +0x8D9E 0x5D2C +0x8D9F 0x5D2F +0x8DA0 0x5D30 +0x8DA1 0x5D31 +0x8DA2 0x5D32 +0x8DA3 0x5D33 +0x8DA4 0x5D35 +0x8DA5 0x5D36 +0x8DA6 0x5D37 +0x8DA7 0x5D38 +0x8DA8 0x5D39 +0x8DA9 0x5D3A +0x8DAA 0x5D3B +0x8DAB 0x5D3C +0x8DAC 0x5D3F +0x8DAD 0x5D40 +0x8DAE 0x5D41 +0x8DAF 0x5D42 +0x8DB0 0x5D43 +0x8DB1 0x5D44 +0x8DB2 0x5D45 +0x8DB3 0x5D46 +0x8DB4 0x5D48 +0x8DB5 0x5D49 +0x8DB6 0x5D4D +0x8DB7 0x5D4E +0x8DB8 0x5D4F +0x8DB9 0x5D50 +0x8DBA 0x5D51 +0x8DBB 0x5D52 +0x8DBC 0x5D53 +0x8DBD 0x5D54 +0x8DBE 0x5D55 +0x8DBF 0x5D56 +0x8DC0 0x5D57 +0x8DC1 0x5D59 +0x8DC2 0x5D5A +0x8DC3 0x5D5C +0x8DC4 0x5D5E +0x8DC5 0x5D5F +0x8DC6 0x5D60 +0x8DC7 0x5D61 +0x8DC8 0x5D62 +0x8DC9 0x5D63 +0x8DCA 0x5D64 +0x8DCB 0x5D65 +0x8DCC 0x5D66 +0x8DCD 0x5D67 +0x8DCE 0x5D68 +0x8DCF 0x5D6A +0x8DD0 0x5D6D +0x8DD1 0x5D6E +0x8DD2 0x5D70 +0x8DD3 0x5D71 +0x8DD4 0x5D72 +0x8DD5 0x5D73 +0x8DD6 0x5D75 +0x8DD7 0x5D76 +0x8DD8 0x5D77 +0x8DD9 0x5D78 +0x8DDA 0x5D79 +0x8DDB 0x5D7A +0x8DDC 0x5D7B +0x8DDD 0x5D7C +0x8DDE 0x5D7D +0x8DDF 0x5D7E +0x8DE0 0x5D7F +0x8DE1 0x5D80 +0x8DE2 0x5D81 +0x8DE3 0x5D83 +0x8DE4 0x5D84 +0x8DE5 0x5D85 +0x8DE6 0x5D86 +0x8DE7 0x5D87 +0x8DE8 0x5D88 +0x8DE9 0x5D89 +0x8DEA 0x5D8A +0x8DEB 0x5D8B +0x8DEC 0x5D8C +0x8DED 0x5D8D +0x8DEE 0x5D8E +0x8DEF 0x5D8F +0x8DF0 0x5D90 +0x8DF1 0x5D91 +0x8DF2 0x5D92 +0x8DF3 0x5D93 +0x8DF4 0x5D94 +0x8DF5 0x5D95 +0x8DF6 0x5D96 +0x8DF7 0x5D97 +0x8DF8 0x5D98 +0x8DF9 0x5D9A +0x8DFA 0x5D9B +0x8DFB 0x5D9C +0x8DFC 0x5D9E +0x8DFD 0x5D9F +0x8DFE 0x5DA0 +0x8E40 0x5DA1 +0x8E41 0x5DA2 +0x8E42 0x5DA3 +0x8E43 0x5DA4 +0x8E44 0x5DA5 +0x8E45 0x5DA6 +0x8E46 0x5DA7 +0x8E47 0x5DA8 +0x8E48 0x5DA9 +0x8E49 0x5DAA +0x8E4A 0x5DAB +0x8E4B 0x5DAC +0x8E4C 0x5DAD +0x8E4D 0x5DAE +0x8E4E 0x5DAF +0x8E4F 0x5DB0 +0x8E50 0x5DB1 +0x8E51 0x5DB2 +0x8E52 0x5DB3 +0x8E53 0x5DB4 +0x8E54 0x5DB5 +0x8E55 0x5DB6 +0x8E56 0x5DB8 +0x8E57 0x5DB9 +0x8E58 0x5DBA +0x8E59 0x5DBB +0x8E5A 0x5DBC +0x8E5B 0x5DBD +0x8E5C 0x5DBE +0x8E5D 0x5DBF +0x8E5E 0x5DC0 +0x8E5F 0x5DC1 +0x8E60 0x5DC2 +0x8E61 0x5DC3 +0x8E62 0x5DC4 +0x8E63 0x5DC6 +0x8E64 0x5DC7 +0x8E65 0x5DC8 +0x8E66 0x5DC9 +0x8E67 0x5DCA +0x8E68 0x5DCB +0x8E69 0x5DCC +0x8E6A 0x5DCE +0x8E6B 0x5DCF +0x8E6C 0x5DD0 +0x8E6D 0x5DD1 +0x8E6E 0x5DD2 +0x8E6F 0x5DD3 +0x8E70 0x5DD4 +0x8E71 0x5DD5 +0x8E72 0x5DD6 +0x8E73 0x5DD7 +0x8E74 0x5DD8 +0x8E75 0x5DD9 +0x8E76 0x5DDA +0x8E77 0x5DDC +0x8E78 0x5DDF +0x8E79 0x5DE0 +0x8E7A 0x5DE3 +0x8E7B 0x5DE4 +0x8E7C 0x5DEA +0x8E7D 0x5DEC +0x8E7E 0x5DED +0x8E80 0x5DF0 +0x8E81 0x5DF5 +0x8E82 0x5DF6 +0x8E83 0x5DF8 +0x8E84 0x5DF9 +0x8E85 0x5DFA +0x8E86 0x5DFB +0x8E87 0x5DFC +0x8E88 0x5DFF +0x8E89 0x5E00 +0x8E8A 0x5E04 +0x8E8B 0x5E07 +0x8E8C 0x5E09 +0x8E8D 0x5E0A +0x8E8E 0x5E0B +0x8E8F 0x5E0D +0x8E90 0x5E0E +0x8E91 0x5E12 +0x8E92 0x5E13 +0x8E93 0x5E17 +0x8E94 0x5E1E +0x8E95 0x5E1F +0x8E96 0x5E20 +0x8E97 0x5E21 +0x8E98 0x5E22 +0x8E99 0x5E23 +0x8E9A 0x5E24 +0x8E9B 0x5E25 +0x8E9C 0x5E28 +0x8E9D 0x5E29 +0x8E9E 0x5E2A +0x8E9F 0x5E2B +0x8EA0 0x5E2C +0x8EA1 0x5E2F +0x8EA2 0x5E30 +0x8EA3 0x5E32 +0x8EA4 0x5E33 +0x8EA5 0x5E34 +0x8EA6 0x5E35 +0x8EA7 0x5E36 +0x8EA8 0x5E39 +0x8EA9 0x5E3A +0x8EAA 0x5E3E +0x8EAB 0x5E3F +0x8EAC 0x5E40 +0x8EAD 0x5E41 +0x8EAE 0x5E43 +0x8EAF 0x5E46 +0x8EB0 0x5E47 +0x8EB1 0x5E48 +0x8EB2 0x5E49 +0x8EB3 0x5E4A +0x8EB4 0x5E4B +0x8EB5 0x5E4D +0x8EB6 0x5E4E +0x8EB7 0x5E4F +0x8EB8 0x5E50 +0x8EB9 0x5E51 +0x8EBA 0x5E52 +0x8EBB 0x5E53 +0x8EBC 0x5E56 +0x8EBD 0x5E57 +0x8EBE 0x5E58 +0x8EBF 0x5E59 +0x8EC0 0x5E5A +0x8EC1 0x5E5C +0x8EC2 0x5E5D +0x8EC3 0x5E5F +0x8EC4 0x5E60 +0x8EC5 0x5E63 +0x8EC6 0x5E64 +0x8EC7 0x5E65 +0x8EC8 0x5E66 +0x8EC9 0x5E67 +0x8ECA 0x5E68 +0x8ECB 0x5E69 +0x8ECC 0x5E6A +0x8ECD 0x5E6B +0x8ECE 0x5E6C +0x8ECF 0x5E6D +0x8ED0 0x5E6E +0x8ED1 0x5E6F +0x8ED2 0x5E70 +0x8ED3 0x5E71 +0x8ED4 0x5E75 +0x8ED5 0x5E77 +0x8ED6 0x5E79 +0x8ED7 0x5E7E +0x8ED8 0x5E81 +0x8ED9 0x5E82 +0x8EDA 0x5E83 +0x8EDB 0x5E85 +0x8EDC 0x5E88 +0x8EDD 0x5E89 +0x8EDE 0x5E8C +0x8EDF 0x5E8D +0x8EE0 0x5E8E +0x8EE1 0x5E92 +0x8EE2 0x5E98 +0x8EE3 0x5E9B +0x8EE4 0x5E9D +0x8EE5 0x5EA1 +0x8EE6 0x5EA2 +0x8EE7 0x5EA3 +0x8EE8 0x5EA4 +0x8EE9 0x5EA8 +0x8EEA 0x5EA9 +0x8EEB 0x5EAA +0x8EEC 0x5EAB +0x8EED 0x5EAC +0x8EEE 0x5EAE +0x8EEF 0x5EAF +0x8EF0 0x5EB0 +0x8EF1 0x5EB1 +0x8EF2 0x5EB2 +0x8EF3 0x5EB4 +0x8EF4 0x5EBA +0x8EF5 0x5EBB +0x8EF6 0x5EBC +0x8EF7 0x5EBD +0x8EF8 0x5EBF +0x8EF9 0x5EC0 +0x8EFA 0x5EC1 +0x8EFB 0x5EC2 +0x8EFC 0x5EC3 +0x8EFD 0x5EC4 +0x8EFE 0x5EC5 +0x8F40 0x5EC6 +0x8F41 0x5EC7 +0x8F42 0x5EC8 +0x8F43 0x5ECB +0x8F44 0x5ECC +0x8F45 0x5ECD +0x8F46 0x5ECE +0x8F47 0x5ECF +0x8F48 0x5ED0 +0x8F49 0x5ED4 +0x8F4A 0x5ED5 +0x8F4B 0x5ED7 +0x8F4C 0x5ED8 +0x8F4D 0x5ED9 +0x8F4E 0x5EDA +0x8F4F 0x5EDC +0x8F50 0x5EDD +0x8F51 0x5EDE +0x8F52 0x5EDF +0x8F53 0x5EE0 +0x8F54 0x5EE1 +0x8F55 0x5EE2 +0x8F56 0x5EE3 +0x8F57 0x5EE4 +0x8F58 0x5EE5 +0x8F59 0x5EE6 +0x8F5A 0x5EE7 +0x8F5B 0x5EE9 +0x8F5C 0x5EEB +0x8F5D 0x5EEC +0x8F5E 0x5EED +0x8F5F 0x5EEE +0x8F60 0x5EEF +0x8F61 0x5EF0 +0x8F62 0x5EF1 +0x8F63 0x5EF2 +0x8F64 0x5EF3 +0x8F65 0x5EF5 +0x8F66 0x5EF8 +0x8F67 0x5EF9 +0x8F68 0x5EFB +0x8F69 0x5EFC +0x8F6A 0x5EFD +0x8F6B 0x5F05 +0x8F6C 0x5F06 +0x8F6D 0x5F07 +0x8F6E 0x5F09 +0x8F6F 0x5F0C +0x8F70 0x5F0D +0x8F71 0x5F0E +0x8F72 0x5F10 +0x8F73 0x5F12 +0x8F74 0x5F14 +0x8F75 0x5F16 +0x8F76 0x5F19 +0x8F77 0x5F1A +0x8F78 0x5F1C +0x8F79 0x5F1D +0x8F7A 0x5F1E +0x8F7B 0x5F21 +0x8F7C 0x5F22 +0x8F7D 0x5F23 +0x8F7E 0x5F24 +0x8F80 0x5F28 +0x8F81 0x5F2B +0x8F82 0x5F2C +0x8F83 0x5F2E +0x8F84 0x5F30 +0x8F85 0x5F32 +0x8F86 0x5F33 +0x8F87 0x5F34 +0x8F88 0x5F35 +0x8F89 0x5F36 +0x8F8A 0x5F37 +0x8F8B 0x5F38 +0x8F8C 0x5F3B +0x8F8D 0x5F3D +0x8F8E 0x5F3E +0x8F8F 0x5F3F +0x8F90 0x5F41 +0x8F91 0x5F42 +0x8F92 0x5F43 +0x8F93 0x5F44 +0x8F94 0x5F45 +0x8F95 0x5F46 +0x8F96 0x5F47 +0x8F97 0x5F48 +0x8F98 0x5F49 +0x8F99 0x5F4A +0x8F9A 0x5F4B +0x8F9B 0x5F4C +0x8F9C 0x5F4D +0x8F9D 0x5F4E +0x8F9E 0x5F4F +0x8F9F 0x5F51 +0x8FA0 0x5F54 +0x8FA1 0x5F59 +0x8FA2 0x5F5A +0x8FA3 0x5F5B +0x8FA4 0x5F5C +0x8FA5 0x5F5E +0x8FA6 0x5F5F +0x8FA7 0x5F60 +0x8FA8 0x5F63 +0x8FA9 0x5F65 +0x8FAA 0x5F67 +0x8FAB 0x5F68 +0x8FAC 0x5F6B +0x8FAD 0x5F6E +0x8FAE 0x5F6F +0x8FAF 0x5F72 +0x8FB0 0x5F74 +0x8FB1 0x5F75 +0x8FB2 0x5F76 +0x8FB3 0x5F78 +0x8FB4 0x5F7A +0x8FB5 0x5F7D +0x8FB6 0x5F7E +0x8FB7 0x5F7F +0x8FB8 0x5F83 +0x8FB9 0x5F86 +0x8FBA 0x5F8D +0x8FBB 0x5F8E +0x8FBC 0x5F8F +0x8FBD 0x5F91 +0x8FBE 0x5F93 +0x8FBF 0x5F94 +0x8FC0 0x5F96 +0x8FC1 0x5F9A +0x8FC2 0x5F9B +0x8FC3 0x5F9D +0x8FC4 0x5F9E +0x8FC5 0x5F9F +0x8FC6 0x5FA0 +0x8FC7 0x5FA2 +0x8FC8 0x5FA3 +0x8FC9 0x5FA4 +0x8FCA 0x5FA5 +0x8FCB 0x5FA6 +0x8FCC 0x5FA7 +0x8FCD 0x5FA9 +0x8FCE 0x5FAB +0x8FCF 0x5FAC +0x8FD0 0x5FAF +0x8FD1 0x5FB0 +0x8FD2 0x5FB1 +0x8FD3 0x5FB2 +0x8FD4 0x5FB3 +0x8FD5 0x5FB4 +0x8FD6 0x5FB6 +0x8FD7 0x5FB8 +0x8FD8 0x5FB9 +0x8FD9 0x5FBA +0x8FDA 0x5FBB +0x8FDB 0x5FBE +0x8FDC 0x5FBF +0x8FDD 0x5FC0 +0x8FDE 0x5FC1 +0x8FDF 0x5FC2 +0x8FE0 0x5FC7 +0x8FE1 0x5FC8 +0x8FE2 0x5FCA +0x8FE3 0x5FCB +0x8FE4 0x5FCE +0x8FE5 0x5FD3 +0x8FE6 0x5FD4 +0x8FE7 0x5FD5 +0x8FE8 0x5FDA +0x8FE9 0x5FDB +0x8FEA 0x5FDC +0x8FEB 0x5FDE +0x8FEC 0x5FDF +0x8FED 0x5FE2 +0x8FEE 0x5FE3 +0x8FEF 0x5FE5 +0x8FF0 0x5FE6 +0x8FF1 0x5FE8 +0x8FF2 0x5FE9 +0x8FF3 0x5FEC +0x8FF4 0x5FEF +0x8FF5 0x5FF0 +0x8FF6 0x5FF2 +0x8FF7 0x5FF3 +0x8FF8 0x5FF4 +0x8FF9 0x5FF6 +0x8FFA 0x5FF7 +0x8FFB 0x5FF9 +0x8FFC 0x5FFA +0x8FFD 0x5FFC +0x8FFE 0x6007 +0x9040 0x6008 +0x9041 0x6009 +0x9042 0x600B +0x9043 0x600C +0x9044 0x6010 +0x9045 0x6011 +0x9046 0x6013 +0x9047 0x6017 +0x9048 0x6018 +0x9049 0x601A +0x904A 0x601E +0x904B 0x601F +0x904C 0x6022 +0x904D 0x6023 +0x904E 0x6024 +0x904F 0x602C +0x9050 0x602D +0x9051 0x602E +0x9052 0x6030 +0x9053 0x6031 +0x9054 0x6032 +0x9055 0x6033 +0x9056 0x6034 +0x9057 0x6036 +0x9058 0x6037 +0x9059 0x6038 +0x905A 0x6039 +0x905B 0x603A +0x905C 0x603D +0x905D 0x603E +0x905E 0x6040 +0x905F 0x6044 +0x9060 0x6045 +0x9061 0x6046 +0x9062 0x6047 +0x9063 0x6048 +0x9064 0x6049 +0x9065 0x604A +0x9066 0x604C +0x9067 0x604E +0x9068 0x604F +0x9069 0x6051 +0x906A 0x6053 +0x906B 0x6054 +0x906C 0x6056 +0x906D 0x6057 +0x906E 0x6058 +0x906F 0x605B +0x9070 0x605C +0x9071 0x605E +0x9072 0x605F +0x9073 0x6060 +0x9074 0x6061 +0x9075 0x6065 +0x9076 0x6066 +0x9077 0x606E +0x9078 0x6071 +0x9079 0x6072 +0x907A 0x6074 +0x907B 0x6075 +0x907C 0x6077 +0x907D 0x607E +0x907E 0x6080 +0x9080 0x6081 +0x9081 0x6082 +0x9082 0x6085 +0x9083 0x6086 +0x9084 0x6087 +0x9085 0x6088 +0x9086 0x608A +0x9087 0x608B +0x9088 0x608E +0x9089 0x608F +0x908A 0x6090 +0x908B 0x6091 +0x908C 0x6093 +0x908D 0x6095 +0x908E 0x6097 +0x908F 0x6098 +0x9090 0x6099 +0x9091 0x609C +0x9092 0x609E +0x9093 0x60A1 +0x9094 0x60A2 +0x9095 0x60A4 +0x9096 0x60A5 +0x9097 0x60A7 +0x9098 0x60A9 +0x9099 0x60AA +0x909A 0x60AE +0x909B 0x60B0 +0x909C 0x60B3 +0x909D 0x60B5 +0x909E 0x60B6 +0x909F 0x60B7 +0x90A0 0x60B9 +0x90A1 0x60BA +0x90A2 0x60BD +0x90A3 0x60BE +0x90A4 0x60BF +0x90A5 0x60C0 +0x90A6 0x60C1 +0x90A7 0x60C2 +0x90A8 0x60C3 +0x90A9 0x60C4 +0x90AA 0x60C7 +0x90AB 0x60C8 +0x90AC 0x60C9 +0x90AD 0x60CC +0x90AE 0x60CD +0x90AF 0x60CE +0x90B0 0x60CF +0x90B1 0x60D0 +0x90B2 0x60D2 +0x90B3 0x60D3 +0x90B4 0x60D4 +0x90B5 0x60D6 +0x90B6 0x60D7 +0x90B7 0x60D9 +0x90B8 0x60DB +0x90B9 0x60DE +0x90BA 0x60E1 +0x90BB 0x60E2 +0x90BC 0x60E3 +0x90BD 0x60E4 +0x90BE 0x60E5 +0x90BF 0x60EA +0x90C0 0x60F1 +0x90C1 0x60F2 +0x90C2 0x60F5 +0x90C3 0x60F7 +0x90C4 0x60F8 +0x90C5 0x60FB +0x90C6 0x60FC +0x90C7 0x60FD +0x90C8 0x60FE +0x90C9 0x60FF +0x90CA 0x6102 +0x90CB 0x6103 +0x90CC 0x6104 +0x90CD 0x6105 +0x90CE 0x6107 +0x90CF 0x610A +0x90D0 0x610B +0x90D1 0x610C +0x90D2 0x6110 +0x90D3 0x6111 +0x90D4 0x6112 +0x90D5 0x6113 +0x90D6 0x6114 +0x90D7 0x6116 +0x90D8 0x6117 +0x90D9 0x6118 +0x90DA 0x6119 +0x90DB 0x611B +0x90DC 0x611C +0x90DD 0x611D +0x90DE 0x611E +0x90DF 0x6121 +0x90E0 0x6122 +0x90E1 0x6125 +0x90E2 0x6128 +0x90E3 0x6129 +0x90E4 0x612A +0x90E5 0x612C +0x90E6 0x612D +0x90E7 0x612E +0x90E8 0x612F +0x90E9 0x6130 +0x90EA 0x6131 +0x90EB 0x6132 +0x90EC 0x6133 +0x90ED 0x6134 +0x90EE 0x6135 +0x90EF 0x6136 +0x90F0 0x6137 +0x90F1 0x6138 +0x90F2 0x6139 +0x90F3 0x613A +0x90F4 0x613B +0x90F5 0x613C +0x90F6 0x613D +0x90F7 0x613E +0x90F8 0x6140 +0x90F9 0x6141 +0x90FA 0x6142 +0x90FB 0x6143 +0x90FC 0x6144 +0x90FD 0x6145 +0x90FE 0x6146 +0x9140 0x6147 +0x9141 0x6149 +0x9142 0x614B +0x9143 0x614D +0x9144 0x614F +0x9145 0x6150 +0x9146 0x6152 +0x9147 0x6153 +0x9148 0x6154 +0x9149 0x6156 +0x914A 0x6157 +0x914B 0x6158 +0x914C 0x6159 +0x914D 0x615A +0x914E 0x615B +0x914F 0x615C +0x9150 0x615E +0x9151 0x615F +0x9152 0x6160 +0x9153 0x6161 +0x9154 0x6163 +0x9155 0x6164 +0x9156 0x6165 +0x9157 0x6166 +0x9158 0x6169 +0x9159 0x616A +0x915A 0x616B +0x915B 0x616C +0x915C 0x616D +0x915D 0x616E +0x915E 0x616F +0x915F 0x6171 +0x9160 0x6172 +0x9161 0x6173 +0x9162 0x6174 +0x9163 0x6176 +0x9164 0x6178 +0x9165 0x6179 +0x9166 0x617A +0x9167 0x617B +0x9168 0x617C +0x9169 0x617D +0x916A 0x617E +0x916B 0x617F +0x916C 0x6180 +0x916D 0x6181 +0x916E 0x6182 +0x916F 0x6183 +0x9170 0x6184 +0x9171 0x6185 +0x9172 0x6186 +0x9173 0x6187 +0x9174 0x6188 +0x9175 0x6189 +0x9176 0x618A +0x9177 0x618C +0x9178 0x618D +0x9179 0x618F +0x917A 0x6190 +0x917B 0x6191 +0x917C 0x6192 +0x917D 0x6193 +0x917E 0x6195 +0x9180 0x6196 +0x9181 0x6197 +0x9182 0x6198 +0x9183 0x6199 +0x9184 0x619A +0x9185 0x619B +0x9186 0x619C +0x9187 0x619E +0x9188 0x619F +0x9189 0x61A0 +0x918A 0x61A1 +0x918B 0x61A2 +0x918C 0x61A3 +0x918D 0x61A4 +0x918E 0x61A5 +0x918F 0x61A6 +0x9190 0x61AA +0x9191 0x61AB +0x9192 0x61AD +0x9193 0x61AE +0x9194 0x61AF +0x9195 0x61B0 +0x9196 0x61B1 +0x9197 0x61B2 +0x9198 0x61B3 +0x9199 0x61B4 +0x919A 0x61B5 +0x919B 0x61B6 +0x919C 0x61B8 +0x919D 0x61B9 +0x919E 0x61BA +0x919F 0x61BB +0x91A0 0x61BC +0x91A1 0x61BD +0x91A2 0x61BF +0x91A3 0x61C0 +0x91A4 0x61C1 +0x91A5 0x61C3 +0x91A6 0x61C4 +0x91A7 0x61C5 +0x91A8 0x61C6 +0x91A9 0x61C7 +0x91AA 0x61C9 +0x91AB 0x61CC +0x91AC 0x61CD +0x91AD 0x61CE +0x91AE 0x61CF +0x91AF 0x61D0 +0x91B0 0x61D3 +0x91B1 0x61D5 +0x91B2 0x61D6 +0x91B3 0x61D7 +0x91B4 0x61D8 +0x91B5 0x61D9 +0x91B6 0x61DA +0x91B7 0x61DB +0x91B8 0x61DC +0x91B9 0x61DD +0x91BA 0x61DE +0x91BB 0x61DF +0x91BC 0x61E0 +0x91BD 0x61E1 +0x91BE 0x61E2 +0x91BF 0x61E3 +0x91C0 0x61E4 +0x91C1 0x61E5 +0x91C2 0x61E7 +0x91C3 0x61E8 +0x91C4 0x61E9 +0x91C5 0x61EA +0x91C6 0x61EB +0x91C7 0x61EC +0x91C8 0x61ED +0x91C9 0x61EE +0x91CA 0x61EF +0x91CB 0x61F0 +0x91CC 0x61F1 +0x91CD 0x61F2 +0x91CE 0x61F3 +0x91CF 0x61F4 +0x91D0 0x61F6 +0x91D1 0x61F7 +0x91D2 0x61F8 +0x91D3 0x61F9 +0x91D4 0x61FA +0x91D5 0x61FB +0x91D6 0x61FC +0x91D7 0x61FD +0x91D8 0x61FE +0x91D9 0x6200 +0x91DA 0x6201 +0x91DB 0x6202 +0x91DC 0x6203 +0x91DD 0x6204 +0x91DE 0x6205 +0x91DF 0x6207 +0x91E0 0x6209 +0x91E1 0x6213 +0x91E2 0x6214 +0x91E3 0x6219 +0x91E4 0x621C +0x91E5 0x621D +0x91E6 0x621E +0x91E7 0x6220 +0x91E8 0x6223 +0x91E9 0x6226 +0x91EA 0x6227 +0x91EB 0x6228 +0x91EC 0x6229 +0x91ED 0x622B +0x91EE 0x622D +0x91EF 0x622F +0x91F0 0x6230 +0x91F1 0x6231 +0x91F2 0x6232 +0x91F3 0x6235 +0x91F4 0x6236 +0x91F5 0x6238 +0x91F6 0x6239 +0x91F7 0x623A +0x91F8 0x623B +0x91F9 0x623C +0x91FA 0x6242 +0x91FB 0x6244 +0x91FC 0x6245 +0x91FD 0x6246 +0x91FE 0x624A +0x9240 0x624F +0x9241 0x6250 +0x9242 0x6255 +0x9243 0x6256 +0x9244 0x6257 +0x9245 0x6259 +0x9246 0x625A +0x9247 0x625C +0x9248 0x625D +0x9249 0x625E +0x924A 0x625F +0x924B 0x6260 +0x924C 0x6261 +0x924D 0x6262 +0x924E 0x6264 +0x924F 0x6265 +0x9250 0x6268 +0x9251 0x6271 +0x9252 0x6272 +0x9253 0x6274 +0x9254 0x6275 +0x9255 0x6277 +0x9256 0x6278 +0x9257 0x627A +0x9258 0x627B +0x9259 0x627D +0x925A 0x6281 +0x925B 0x6282 +0x925C 0x6283 +0x925D 0x6285 +0x925E 0x6286 +0x925F 0x6287 +0x9260 0x6288 +0x9261 0x628B +0x9262 0x628C +0x9263 0x628D +0x9264 0x628E +0x9265 0x628F +0x9266 0x6290 +0x9267 0x6294 +0x9268 0x6299 +0x9269 0x629C +0x926A 0x629D +0x926B 0x629E +0x926C 0x62A3 +0x926D 0x62A6 +0x926E 0x62A7 +0x926F 0x62A9 +0x9270 0x62AA +0x9271 0x62AD +0x9272 0x62AE +0x9273 0x62AF +0x9274 0x62B0 +0x9275 0x62B2 +0x9276 0x62B3 +0x9277 0x62B4 +0x9278 0x62B6 +0x9279 0x62B7 +0x927A 0x62B8 +0x927B 0x62BA +0x927C 0x62BE +0x927D 0x62C0 +0x927E 0x62C1 +0x9280 0x62C3 +0x9281 0x62CB +0x9282 0x62CF +0x9283 0x62D1 +0x9284 0x62D5 +0x9285 0x62DD +0x9286 0x62DE +0x9287 0x62E0 +0x9288 0x62E1 +0x9289 0x62E4 +0x928A 0x62EA +0x928B 0x62EB +0x928C 0x62F0 +0x928D 0x62F2 +0x928E 0x62F5 +0x928F 0x62F8 +0x9290 0x62F9 +0x9291 0x62FA +0x9292 0x62FB +0x9293 0x6300 +0x9294 0x6303 +0x9295 0x6304 +0x9296 0x6305 +0x9297 0x6306 +0x9298 0x630A +0x9299 0x630B +0x929A 0x630C +0x929B 0x630D +0x929C 0x630F +0x929D 0x6310 +0x929E 0x6312 +0x929F 0x6313 +0x92A0 0x6314 +0x92A1 0x6315 +0x92A2 0x6317 +0x92A3 0x6318 +0x92A4 0x6319 +0x92A5 0x631C +0x92A6 0x6326 +0x92A7 0x6327 +0x92A8 0x6329 +0x92A9 0x632C +0x92AA 0x632D +0x92AB 0x632E +0x92AC 0x6330 +0x92AD 0x6331 +0x92AE 0x6333 +0x92AF 0x6334 +0x92B0 0x6335 +0x92B1 0x6336 +0x92B2 0x6337 +0x92B3 0x6338 +0x92B4 0x633B +0x92B5 0x633C +0x92B6 0x633E +0x92B7 0x633F +0x92B8 0x6340 +0x92B9 0x6341 +0x92BA 0x6344 +0x92BB 0x6347 +0x92BC 0x6348 +0x92BD 0x634A +0x92BE 0x6351 +0x92BF 0x6352 +0x92C0 0x6353 +0x92C1 0x6354 +0x92C2 0x6356 +0x92C3 0x6357 +0x92C4 0x6358 +0x92C5 0x6359 +0x92C6 0x635A +0x92C7 0x635B +0x92C8 0x635C +0x92C9 0x635D +0x92CA 0x6360 +0x92CB 0x6364 +0x92CC 0x6365 +0x92CD 0x6366 +0x92CE 0x6368 +0x92CF 0x636A +0x92D0 0x636B +0x92D1 0x636C +0x92D2 0x636F +0x92D3 0x6370 +0x92D4 0x6372 +0x92D5 0x6373 +0x92D6 0x6374 +0x92D7 0x6375 +0x92D8 0x6378 +0x92D9 0x6379 +0x92DA 0x637C +0x92DB 0x637D +0x92DC 0x637E +0x92DD 0x637F +0x92DE 0x6381 +0x92DF 0x6383 +0x92E0 0x6384 +0x92E1 0x6385 +0x92E2 0x6386 +0x92E3 0x638B +0x92E4 0x638D +0x92E5 0x6391 +0x92E6 0x6393 +0x92E7 0x6394 +0x92E8 0x6395 +0x92E9 0x6397 +0x92EA 0x6399 +0x92EB 0x639A +0x92EC 0x639B +0x92ED 0x639C +0x92EE 0x639D +0x92EF 0x639E +0x92F0 0x639F +0x92F1 0x63A1 +0x92F2 0x63A4 +0x92F3 0x63A6 +0x92F4 0x63AB +0x92F5 0x63AF +0x92F6 0x63B1 +0x92F7 0x63B2 +0x92F8 0x63B5 +0x92F9 0x63B6 +0x92FA 0x63B9 +0x92FB 0x63BB +0x92FC 0x63BD +0x92FD 0x63BF +0x92FE 0x63C0 +0x9340 0x63C1 +0x9341 0x63C2 +0x9342 0x63C3 +0x9343 0x63C5 +0x9344 0x63C7 +0x9345 0x63C8 +0x9346 0x63CA +0x9347 0x63CB +0x9348 0x63CC +0x9349 0x63D1 +0x934A 0x63D3 +0x934B 0x63D4 +0x934C 0x63D5 +0x934D 0x63D7 +0x934E 0x63D8 +0x934F 0x63D9 +0x9350 0x63DA +0x9351 0x63DB +0x9352 0x63DC +0x9353 0x63DD +0x9354 0x63DF +0x9355 0x63E2 +0x9356 0x63E4 +0x9357 0x63E5 +0x9358 0x63E6 +0x9359 0x63E7 +0x935A 0x63E8 +0x935B 0x63EB +0x935C 0x63EC +0x935D 0x63EE +0x935E 0x63EF +0x935F 0x63F0 +0x9360 0x63F1 +0x9361 0x63F3 +0x9362 0x63F5 +0x9363 0x63F7 +0x9364 0x63F9 +0x9365 0x63FA +0x9366 0x63FB +0x9367 0x63FC +0x9368 0x63FE +0x9369 0x6403 +0x936A 0x6404 +0x936B 0x6406 +0x936C 0x6407 +0x936D 0x6408 +0x936E 0x6409 +0x936F 0x640A +0x9370 0x640D +0x9371 0x640E +0x9372 0x6411 +0x9373 0x6412 +0x9374 0x6415 +0x9375 0x6416 +0x9376 0x6417 +0x9377 0x6418 +0x9378 0x6419 +0x9379 0x641A +0x937A 0x641D +0x937B 0x641F +0x937C 0x6422 +0x937D 0x6423 +0x937E 0x6424 +0x9380 0x6425 +0x9381 0x6427 +0x9382 0x6428 +0x9383 0x6429 +0x9384 0x642B +0x9385 0x642E +0x9386 0x642F +0x9387 0x6430 +0x9388 0x6431 +0x9389 0x6432 +0x938A 0x6433 +0x938B 0x6435 +0x938C 0x6436 +0x938D 0x6437 +0x938E 0x6438 +0x938F 0x6439 +0x9390 0x643B +0x9391 0x643C +0x9392 0x643E +0x9393 0x6440 +0x9394 0x6442 +0x9395 0x6443 +0x9396 0x6449 +0x9397 0x644B +0x9398 0x644C +0x9399 0x644D +0x939A 0x644E +0x939B 0x644F +0x939C 0x6450 +0x939D 0x6451 +0x939E 0x6453 +0x939F 0x6455 +0x93A0 0x6456 +0x93A1 0x6457 +0x93A2 0x6459 +0x93A3 0x645A +0x93A4 0x645B +0x93A5 0x645C +0x93A6 0x645D +0x93A7 0x645F +0x93A8 0x6460 +0x93A9 0x6461 +0x93AA 0x6462 +0x93AB 0x6463 +0x93AC 0x6464 +0x93AD 0x6465 +0x93AE 0x6466 +0x93AF 0x6468 +0x93B0 0x646A +0x93B1 0x646B +0x93B2 0x646C +0x93B3 0x646E +0x93B4 0x646F +0x93B5 0x6470 +0x93B6 0x6471 +0x93B7 0x6472 +0x93B8 0x6473 +0x93B9 0x6474 +0x93BA 0x6475 +0x93BB 0x6476 +0x93BC 0x6477 +0x93BD 0x647B +0x93BE 0x647C +0x93BF 0x647D +0x93C0 0x647E +0x93C1 0x647F +0x93C2 0x6480 +0x93C3 0x6481 +0x93C4 0x6483 +0x93C5 0x6486 +0x93C6 0x6488 +0x93C7 0x6489 +0x93C8 0x648A +0x93C9 0x648B +0x93CA 0x648C +0x93CB 0x648D +0x93CC 0x648E +0x93CD 0x648F +0x93CE 0x6490 +0x93CF 0x6493 +0x93D0 0x6494 +0x93D1 0x6497 +0x93D2 0x6498 +0x93D3 0x649A +0x93D4 0x649B +0x93D5 0x649C +0x93D6 0x649D +0x93D7 0x649F +0x93D8 0x64A0 +0x93D9 0x64A1 +0x93DA 0x64A2 +0x93DB 0x64A3 +0x93DC 0x64A5 +0x93DD 0x64A6 +0x93DE 0x64A7 +0x93DF 0x64A8 +0x93E0 0x64AA +0x93E1 0x64AB +0x93E2 0x64AF +0x93E3 0x64B1 +0x93E4 0x64B2 +0x93E5 0x64B3 +0x93E6 0x64B4 +0x93E7 0x64B6 +0x93E8 0x64B9 +0x93E9 0x64BB +0x93EA 0x64BD +0x93EB 0x64BE +0x93EC 0x64BF +0x93ED 0x64C1 +0x93EE 0x64C3 +0x93EF 0x64C4 +0x93F0 0x64C6 +0x93F1 0x64C7 +0x93F2 0x64C8 +0x93F3 0x64C9 +0x93F4 0x64CA +0x93F5 0x64CB +0x93F6 0x64CC +0x93F7 0x64CF +0x93F8 0x64D1 +0x93F9 0x64D3 +0x93FA 0x64D4 +0x93FB 0x64D5 +0x93FC 0x64D6 +0x93FD 0x64D9 +0x93FE 0x64DA +0x9440 0x64DB +0x9441 0x64DC +0x9442 0x64DD +0x9443 0x64DF +0x9444 0x64E0 +0x9445 0x64E1 +0x9446 0x64E3 +0x9447 0x64E5 +0x9448 0x64E7 +0x9449 0x64E8 +0x944A 0x64E9 +0x944B 0x64EA +0x944C 0x64EB +0x944D 0x64EC +0x944E 0x64ED +0x944F 0x64EE +0x9450 0x64EF +0x9451 0x64F0 +0x9452 0x64F1 +0x9453 0x64F2 +0x9454 0x64F3 +0x9455 0x64F4 +0x9456 0x64F5 +0x9457 0x64F6 +0x9458 0x64F7 +0x9459 0x64F8 +0x945A 0x64F9 +0x945B 0x64FA +0x945C 0x64FB +0x945D 0x64FC +0x945E 0x64FD +0x945F 0x64FE +0x9460 0x64FF +0x9461 0x6501 +0x9462 0x6502 +0x9463 0x6503 +0x9464 0x6504 +0x9465 0x6505 +0x9466 0x6506 +0x9467 0x6507 +0x9468 0x6508 +0x9469 0x650A +0x946A 0x650B +0x946B 0x650C +0x946C 0x650D +0x946D 0x650E +0x946E 0x650F +0x946F 0x6510 +0x9470 0x6511 +0x9471 0x6513 +0x9472 0x6514 +0x9473 0x6515 +0x9474 0x6516 +0x9475 0x6517 +0x9476 0x6519 +0x9477 0x651A +0x9478 0x651B +0x9479 0x651C +0x947A 0x651D +0x947B 0x651E +0x947C 0x651F +0x947D 0x6520 +0x947E 0x6521 +0x9480 0x6522 +0x9481 0x6523 +0x9482 0x6524 +0x9483 0x6526 +0x9484 0x6527 +0x9485 0x6528 +0x9486 0x6529 +0x9487 0x652A +0x9488 0x652C +0x9489 0x652D +0x948A 0x6530 +0x948B 0x6531 +0x948C 0x6532 +0x948D 0x6533 +0x948E 0x6537 +0x948F 0x653A +0x9490 0x653C +0x9491 0x653D +0x9492 0x6540 +0x9493 0x6541 +0x9494 0x6542 +0x9495 0x6543 +0x9496 0x6544 +0x9497 0x6546 +0x9498 0x6547 +0x9499 0x654A +0x949A 0x654B +0x949B 0x654D +0x949C 0x654E +0x949D 0x6550 +0x949E 0x6552 +0x949F 0x6553 +0x94A0 0x6554 +0x94A1 0x6557 +0x94A2 0x6558 +0x94A3 0x655A +0x94A4 0x655C +0x94A5 0x655F +0x94A6 0x6560 +0x94A7 0x6561 +0x94A8 0x6564 +0x94A9 0x6565 +0x94AA 0x6567 +0x94AB 0x6568 +0x94AC 0x6569 +0x94AD 0x656A +0x94AE 0x656D +0x94AF 0x656E +0x94B0 0x656F +0x94B1 0x6571 +0x94B2 0x6573 +0x94B3 0x6575 +0x94B4 0x6576 +0x94B5 0x6578 +0x94B6 0x6579 +0x94B7 0x657A +0x94B8 0x657B +0x94B9 0x657C +0x94BA 0x657D +0x94BB 0x657E +0x94BC 0x657F +0x94BD 0x6580 +0x94BE 0x6581 +0x94BF 0x6582 +0x94C0 0x6583 +0x94C1 0x6584 +0x94C2 0x6585 +0x94C3 0x6586 +0x94C4 0x6588 +0x94C5 0x6589 +0x94C6 0x658A +0x94C7 0x658D +0x94C8 0x658E +0x94C9 0x658F +0x94CA 0x6592 +0x94CB 0x6594 +0x94CC 0x6595 +0x94CD 0x6596 +0x94CE 0x6598 +0x94CF 0x659A +0x94D0 0x659D +0x94D1 0x659E +0x94D2 0x65A0 +0x94D3 0x65A2 +0x94D4 0x65A3 +0x94D5 0x65A6 +0x94D6 0x65A8 +0x94D7 0x65AA +0x94D8 0x65AC +0x94D9 0x65AE +0x94DA 0x65B1 +0x94DB 0x65B2 +0x94DC 0x65B3 +0x94DD 0x65B4 +0x94DE 0x65B5 +0x94DF 0x65B6 +0x94E0 0x65B7 +0x94E1 0x65B8 +0x94E2 0x65BA +0x94E3 0x65BB +0x94E4 0x65BE +0x94E5 0x65BF +0x94E6 0x65C0 +0x94E7 0x65C2 +0x94E8 0x65C7 +0x94E9 0x65C8 +0x94EA 0x65C9 +0x94EB 0x65CA +0x94EC 0x65CD +0x94ED 0x65D0 +0x94EE 0x65D1 +0x94EF 0x65D3 +0x94F0 0x65D4 +0x94F1 0x65D5 +0x94F2 0x65D8 +0x94F3 0x65D9 +0x94F4 0x65DA +0x94F5 0x65DB +0x94F6 0x65DC +0x94F7 0x65DD +0x94F8 0x65DE +0x94F9 0x65DF +0x94FA 0x65E1 +0x94FB 0x65E3 +0x94FC 0x65E4 +0x94FD 0x65EA +0x94FE 0x65EB +0x9540 0x65F2 +0x9541 0x65F3 +0x9542 0x65F4 +0x9543 0x65F5 +0x9544 0x65F8 +0x9545 0x65F9 +0x9546 0x65FB +0x9547 0x65FC +0x9548 0x65FD +0x9549 0x65FE +0x954A 0x65FF +0x954B 0x6601 +0x954C 0x6604 +0x954D 0x6605 +0x954E 0x6607 +0x954F 0x6608 +0x9550 0x6609 +0x9551 0x660B +0x9552 0x660D +0x9553 0x6610 +0x9554 0x6611 +0x9555 0x6612 +0x9556 0x6616 +0x9557 0x6617 +0x9558 0x6618 +0x9559 0x661A +0x955A 0x661B +0x955B 0x661C +0x955C 0x661E +0x955D 0x6621 +0x955E 0x6622 +0x955F 0x6623 +0x9560 0x6624 +0x9561 0x6626 +0x9562 0x6629 +0x9563 0x662A +0x9564 0x662B +0x9565 0x662C +0x9566 0x662E +0x9567 0x6630 +0x9568 0x6632 +0x9569 0x6633 +0x956A 0x6637 +0x956B 0x6638 +0x956C 0x6639 +0x956D 0x663A +0x956E 0x663B +0x956F 0x663D +0x9570 0x663F +0x9571 0x6640 +0x9572 0x6642 +0x9573 0x6644 +0x9574 0x6645 +0x9575 0x6646 +0x9576 0x6647 +0x9577 0x6648 +0x9578 0x6649 +0x9579 0x664A +0x957A 0x664D +0x957B 0x664E +0x957C 0x6650 +0x957D 0x6651 +0x957E 0x6658 +0x9580 0x6659 +0x9581 0x665B +0x9582 0x665C +0x9583 0x665D +0x9584 0x665E +0x9585 0x6660 +0x9586 0x6662 +0x9587 0x6663 +0x9588 0x6665 +0x9589 0x6667 +0x958A 0x6669 +0x958B 0x666A +0x958C 0x666B +0x958D 0x666C +0x958E 0x666D +0x958F 0x6671 +0x9590 0x6672 +0x9591 0x6673 +0x9592 0x6675 +0x9593 0x6678 +0x9594 0x6679 +0x9595 0x667B +0x9596 0x667C +0x9597 0x667D +0x9598 0x667F +0x9599 0x6680 +0x959A 0x6681 +0x959B 0x6683 +0x959C 0x6685 +0x959D 0x6686 +0x959E 0x6688 +0x959F 0x6689 +0x95A0 0x668A +0x95A1 0x668B +0x95A2 0x668D +0x95A3 0x668E +0x95A4 0x668F +0x95A5 0x6690 +0x95A6 0x6692 +0x95A7 0x6693 +0x95A8 0x6694 +0x95A9 0x6695 +0x95AA 0x6698 +0x95AB 0x6699 +0x95AC 0x669A +0x95AD 0x669B +0x95AE 0x669C +0x95AF 0x669E +0x95B0 0x669F +0x95B1 0x66A0 +0x95B2 0x66A1 +0x95B3 0x66A2 +0x95B4 0x66A3 +0x95B5 0x66A4 +0x95B6 0x66A5 +0x95B7 0x66A6 +0x95B8 0x66A9 +0x95B9 0x66AA +0x95BA 0x66AB +0x95BB 0x66AC +0x95BC 0x66AD +0x95BD 0x66AF +0x95BE 0x66B0 +0x95BF 0x66B1 +0x95C0 0x66B2 +0x95C1 0x66B3 +0x95C2 0x66B5 +0x95C3 0x66B6 +0x95C4 0x66B7 +0x95C5 0x66B8 +0x95C6 0x66BA +0x95C7 0x66BB +0x95C8 0x66BC +0x95C9 0x66BD +0x95CA 0x66BF +0x95CB 0x66C0 +0x95CC 0x66C1 +0x95CD 0x66C2 +0x95CE 0x66C3 +0x95CF 0x66C4 +0x95D0 0x66C5 +0x95D1 0x66C6 +0x95D2 0x66C7 +0x95D3 0x66C8 +0x95D4 0x66C9 +0x95D5 0x66CA +0x95D6 0x66CB +0x95D7 0x66CC +0x95D8 0x66CD +0x95D9 0x66CE +0x95DA 0x66CF +0x95DB 0x66D0 +0x95DC 0x66D1 +0x95DD 0x66D2 +0x95DE 0x66D3 +0x95DF 0x66D4 +0x95E0 0x66D5 +0x95E1 0x66D6 +0x95E2 0x66D7 +0x95E3 0x66D8 +0x95E4 0x66DA +0x95E5 0x66DE +0x95E6 0x66DF +0x95E7 0x66E0 +0x95E8 0x66E1 +0x95E9 0x66E2 +0x95EA 0x66E3 +0x95EB 0x66E4 +0x95EC 0x66E5 +0x95ED 0x66E7 +0x95EE 0x66E8 +0x95EF 0x66EA +0x95F0 0x66EB +0x95F1 0x66EC +0x95F2 0x66ED +0x95F3 0x66EE +0x95F4 0x66EF +0x95F5 0x66F1 +0x95F6 0x66F5 +0x95F7 0x66F6 +0x95F8 0x66F8 +0x95F9 0x66FA +0x95FA 0x66FB +0x95FB 0x66FD +0x95FC 0x6701 +0x95FD 0x6702 +0x95FE 0x6703 +0x9640 0x6704 +0x9641 0x6705 +0x9642 0x6706 +0x9643 0x6707 +0x9644 0x670C +0x9645 0x670E +0x9646 0x670F +0x9647 0x6711 +0x9648 0x6712 +0x9649 0x6713 +0x964A 0x6716 +0x964B 0x6718 +0x964C 0x6719 +0x964D 0x671A +0x964E 0x671C +0x964F 0x671E +0x9650 0x6720 +0x9651 0x6721 +0x9652 0x6722 +0x9653 0x6723 +0x9654 0x6724 +0x9655 0x6725 +0x9656 0x6727 +0x9657 0x6729 +0x9658 0x672E +0x9659 0x6730 +0x965A 0x6732 +0x965B 0x6733 +0x965C 0x6736 +0x965D 0x6737 +0x965E 0x6738 +0x965F 0x6739 +0x9660 0x673B +0x9661 0x673C +0x9662 0x673E +0x9663 0x673F +0x9664 0x6741 +0x9665 0x6744 +0x9666 0x6745 +0x9667 0x6747 +0x9668 0x674A +0x9669 0x674B +0x966A 0x674D +0x966B 0x6752 +0x966C 0x6754 +0x966D 0x6755 +0x966E 0x6757 +0x966F 0x6758 +0x9670 0x6759 +0x9671 0x675A +0x9672 0x675B +0x9673 0x675D +0x9674 0x6762 +0x9675 0x6763 +0x9676 0x6764 +0x9677 0x6766 +0x9678 0x6767 +0x9679 0x676B +0x967A 0x676C +0x967B 0x676E +0x967C 0x6771 +0x967D 0x6774 +0x967E 0x6776 +0x9680 0x6778 +0x9681 0x6779 +0x9682 0x677A +0x9683 0x677B +0x9684 0x677D +0x9685 0x6780 +0x9686 0x6782 +0x9687 0x6783 +0x9688 0x6785 +0x9689 0x6786 +0x968A 0x6788 +0x968B 0x678A +0x968C 0x678C +0x968D 0x678D +0x968E 0x678E +0x968F 0x678F +0x9690 0x6791 +0x9691 0x6792 +0x9692 0x6793 +0x9693 0x6794 +0x9694 0x6796 +0x9695 0x6799 +0x9696 0x679B +0x9697 0x679F +0x9698 0x67A0 +0x9699 0x67A1 +0x969A 0x67A4 +0x969B 0x67A6 +0x969C 0x67A9 +0x969D 0x67AC +0x969E 0x67AE +0x969F 0x67B1 +0x96A0 0x67B2 +0x96A1 0x67B4 +0x96A2 0x67B9 +0x96A3 0x67BA +0x96A4 0x67BB +0x96A5 0x67BC +0x96A6 0x67BD +0x96A7 0x67BE +0x96A8 0x67BF +0x96A9 0x67C0 +0x96AA 0x67C2 +0x96AB 0x67C5 +0x96AC 0x67C6 +0x96AD 0x67C7 +0x96AE 0x67C8 +0x96AF 0x67C9 +0x96B0 0x67CA +0x96B1 0x67CB +0x96B2 0x67CC +0x96B3 0x67CD +0x96B4 0x67CE +0x96B5 0x67D5 +0x96B6 0x67D6 +0x96B7 0x67D7 +0x96B8 0x67DB +0x96B9 0x67DF +0x96BA 0x67E1 +0x96BB 0x67E3 +0x96BC 0x67E4 +0x96BD 0x67E6 +0x96BE 0x67E7 +0x96BF 0x67E8 +0x96C0 0x67EA +0x96C1 0x67EB +0x96C2 0x67ED +0x96C3 0x67EE +0x96C4 0x67F2 +0x96C5 0x67F5 +0x96C6 0x67F6 +0x96C7 0x67F7 +0x96C8 0x67F8 +0x96C9 0x67F9 +0x96CA 0x67FA +0x96CB 0x67FB +0x96CC 0x67FC +0x96CD 0x67FE +0x96CE 0x6801 +0x96CF 0x6802 +0x96D0 0x6803 +0x96D1 0x6804 +0x96D2 0x6806 +0x96D3 0x680D +0x96D4 0x6810 +0x96D5 0x6812 +0x96D6 0x6814 +0x96D7 0x6815 +0x96D8 0x6818 +0x96D9 0x6819 +0x96DA 0x681A +0x96DB 0x681B +0x96DC 0x681C +0x96DD 0x681E +0x96DE 0x681F +0x96DF 0x6820 +0x96E0 0x6822 +0x96E1 0x6823 +0x96E2 0x6824 +0x96E3 0x6825 +0x96E4 0x6826 +0x96E5 0x6827 +0x96E6 0x6828 +0x96E7 0x682B +0x96E8 0x682C +0x96E9 0x682D +0x96EA 0x682E +0x96EB 0x682F +0x96EC 0x6830 +0x96ED 0x6831 +0x96EE 0x6834 +0x96EF 0x6835 +0x96F0 0x6836 +0x96F1 0x683A +0x96F2 0x683B +0x96F3 0x683F +0x96F4 0x6847 +0x96F5 0x684B +0x96F6 0x684D +0x96F7 0x684F +0x96F8 0x6852 +0x96F9 0x6856 +0x96FA 0x6857 +0x96FB 0x6858 +0x96FC 0x6859 +0x96FD 0x685A +0x96FE 0x685B +0x9740 0x685C +0x9741 0x685D +0x9742 0x685E +0x9743 0x685F +0x9744 0x686A +0x9745 0x686C +0x9746 0x686D +0x9747 0x686E +0x9748 0x686F +0x9749 0x6870 +0x974A 0x6871 +0x974B 0x6872 +0x974C 0x6873 +0x974D 0x6875 +0x974E 0x6878 +0x974F 0x6879 +0x9750 0x687A +0x9751 0x687B +0x9752 0x687C +0x9753 0x687D +0x9754 0x687E +0x9755 0x687F +0x9756 0x6880 +0x9757 0x6882 +0x9758 0x6884 +0x9759 0x6887 +0x975A 0x6888 +0x975B 0x6889 +0x975C 0x688A +0x975D 0x688B +0x975E 0x688C +0x975F 0x688D +0x9760 0x688E +0x9761 0x6890 +0x9762 0x6891 +0x9763 0x6892 +0x9764 0x6894 +0x9765 0x6895 +0x9766 0x6896 +0x9767 0x6898 +0x9768 0x6899 +0x9769 0x689A +0x976A 0x689B +0x976B 0x689C +0x976C 0x689D +0x976D 0x689E +0x976E 0x689F +0x976F 0x68A0 +0x9770 0x68A1 +0x9771 0x68A3 +0x9772 0x68A4 +0x9773 0x68A5 +0x9774 0x68A9 +0x9775 0x68AA +0x9776 0x68AB +0x9777 0x68AC +0x9778 0x68AE +0x9779 0x68B1 +0x977A 0x68B2 +0x977B 0x68B4 +0x977C 0x68B6 +0x977D 0x68B7 +0x977E 0x68B8 +0x9780 0x68B9 +0x9781 0x68BA +0x9782 0x68BB +0x9783 0x68BC +0x9784 0x68BD +0x9785 0x68BE +0x9786 0x68BF +0x9787 0x68C1 +0x9788 0x68C3 +0x9789 0x68C4 +0x978A 0x68C5 +0x978B 0x68C6 +0x978C 0x68C7 +0x978D 0x68C8 +0x978E 0x68CA +0x978F 0x68CC +0x9790 0x68CE +0x9791 0x68CF +0x9792 0x68D0 +0x9793 0x68D1 +0x9794 0x68D3 +0x9795 0x68D4 +0x9796 0x68D6 +0x9797 0x68D7 +0x9798 0x68D9 +0x9799 0x68DB +0x979A 0x68DC +0x979B 0x68DD +0x979C 0x68DE +0x979D 0x68DF +0x979E 0x68E1 +0x979F 0x68E2 +0x97A0 0x68E4 +0x97A1 0x68E5 +0x97A2 0x68E6 +0x97A3 0x68E7 +0x97A4 0x68E8 +0x97A5 0x68E9 +0x97A6 0x68EA +0x97A7 0x68EB +0x97A8 0x68EC +0x97A9 0x68ED +0x97AA 0x68EF +0x97AB 0x68F2 +0x97AC 0x68F3 +0x97AD 0x68F4 +0x97AE 0x68F6 +0x97AF 0x68F7 +0x97B0 0x68F8 +0x97B1 0x68FB +0x97B2 0x68FD +0x97B3 0x68FE +0x97B4 0x68FF +0x97B5 0x6900 +0x97B6 0x6902 +0x97B7 0x6903 +0x97B8 0x6904 +0x97B9 0x6906 +0x97BA 0x6907 +0x97BB 0x6908 +0x97BC 0x6909 +0x97BD 0x690A +0x97BE 0x690C +0x97BF 0x690F +0x97C0 0x6911 +0x97C1 0x6913 +0x97C2 0x6914 +0x97C3 0x6915 +0x97C4 0x6916 +0x97C5 0x6917 +0x97C6 0x6918 +0x97C7 0x6919 +0x97C8 0x691A +0x97C9 0x691B +0x97CA 0x691C +0x97CB 0x691D +0x97CC 0x691E +0x97CD 0x6921 +0x97CE 0x6922 +0x97CF 0x6923 +0x97D0 0x6925 +0x97D1 0x6926 +0x97D2 0x6927 +0x97D3 0x6928 +0x97D4 0x6929 +0x97D5 0x692A +0x97D6 0x692B +0x97D7 0x692C +0x97D8 0x692E +0x97D9 0x692F +0x97DA 0x6931 +0x97DB 0x6932 +0x97DC 0x6933 +0x97DD 0x6935 +0x97DE 0x6936 +0x97DF 0x6937 +0x97E0 0x6938 +0x97E1 0x693A +0x97E2 0x693B +0x97E3 0x693C +0x97E4 0x693E +0x97E5 0x6940 +0x97E6 0x6941 +0x97E7 0x6943 +0x97E8 0x6944 +0x97E9 0x6945 +0x97EA 0x6946 +0x97EB 0x6947 +0x97EC 0x6948 +0x97ED 0x6949 +0x97EE 0x694A +0x97EF 0x694B +0x97F0 0x694C +0x97F1 0x694D +0x97F2 0x694E +0x97F3 0x694F +0x97F4 0x6950 +0x97F5 0x6951 +0x97F6 0x6952 +0x97F7 0x6953 +0x97F8 0x6955 +0x97F9 0x6956 +0x97FA 0x6958 +0x97FB 0x6959 +0x97FC 0x695B +0x97FD 0x695C +0x97FE 0x695F +0x9840 0x6961 +0x9841 0x6962 +0x9842 0x6964 +0x9843 0x6965 +0x9844 0x6967 +0x9845 0x6968 +0x9846 0x6969 +0x9847 0x696A +0x9848 0x696C +0x9849 0x696D +0x984A 0x696F +0x984B 0x6970 +0x984C 0x6972 +0x984D 0x6973 +0x984E 0x6974 +0x984F 0x6975 +0x9850 0x6976 +0x9851 0x697A +0x9852 0x697B +0x9853 0x697D +0x9854 0x697E +0x9855 0x697F +0x9856 0x6981 +0x9857 0x6983 +0x9858 0x6985 +0x9859 0x698A +0x985A 0x698B +0x985B 0x698C +0x985C 0x698E +0x985D 0x698F +0x985E 0x6990 +0x985F 0x6991 +0x9860 0x6992 +0x9861 0x6993 +0x9862 0x6996 +0x9863 0x6997 +0x9864 0x6999 +0x9865 0x699A +0x9866 0x699D +0x9867 0x699E +0x9868 0x699F +0x9869 0x69A0 +0x986A 0x69A1 +0x986B 0x69A2 +0x986C 0x69A3 +0x986D 0x69A4 +0x986E 0x69A5 +0x986F 0x69A6 +0x9870 0x69A9 +0x9871 0x69AA +0x9872 0x69AC +0x9873 0x69AE +0x9874 0x69AF +0x9875 0x69B0 +0x9876 0x69B2 +0x9877 0x69B3 +0x9878 0x69B5 +0x9879 0x69B6 +0x987A 0x69B8 +0x987B 0x69B9 +0x987C 0x69BA +0x987D 0x69BC +0x987E 0x69BD +0x9880 0x69BE +0x9881 0x69BF +0x9882 0x69C0 +0x9883 0x69C2 +0x9884 0x69C3 +0x9885 0x69C4 +0x9886 0x69C5 +0x9887 0x69C6 +0x9888 0x69C7 +0x9889 0x69C8 +0x988A 0x69C9 +0x988B 0x69CB +0x988C 0x69CD +0x988D 0x69CF +0x988E 0x69D1 +0x988F 0x69D2 +0x9890 0x69D3 +0x9891 0x69D5 +0x9892 0x69D6 +0x9893 0x69D7 +0x9894 0x69D8 +0x9895 0x69D9 +0x9896 0x69DA +0x9897 0x69DC +0x9898 0x69DD +0x9899 0x69DE +0x989A 0x69E1 +0x989B 0x69E2 +0x989C 0x69E3 +0x989D 0x69E4 +0x989E 0x69E5 +0x989F 0x69E6 +0x98A0 0x69E7 +0x98A1 0x69E8 +0x98A2 0x69E9 +0x98A3 0x69EA +0x98A4 0x69EB +0x98A5 0x69EC +0x98A6 0x69EE +0x98A7 0x69EF +0x98A8 0x69F0 +0x98A9 0x69F1 +0x98AA 0x69F3 +0x98AB 0x69F4 +0x98AC 0x69F5 +0x98AD 0x69F6 +0x98AE 0x69F7 +0x98AF 0x69F8 +0x98B0 0x69F9 +0x98B1 0x69FA +0x98B2 0x69FB +0x98B3 0x69FC +0x98B4 0x69FE +0x98B5 0x6A00 +0x98B6 0x6A01 +0x98B7 0x6A02 +0x98B8 0x6A03 +0x98B9 0x6A04 +0x98BA 0x6A05 +0x98BB 0x6A06 +0x98BC 0x6A07 +0x98BD 0x6A08 +0x98BE 0x6A09 +0x98BF 0x6A0B +0x98C0 0x6A0C +0x98C1 0x6A0D +0x98C2 0x6A0E +0x98C3 0x6A0F +0x98C4 0x6A10 +0x98C5 0x6A11 +0x98C6 0x6A12 +0x98C7 0x6A13 +0x98C8 0x6A14 +0x98C9 0x6A15 +0x98CA 0x6A16 +0x98CB 0x6A19 +0x98CC 0x6A1A +0x98CD 0x6A1B +0x98CE 0x6A1C +0x98CF 0x6A1D +0x98D0 0x6A1E +0x98D1 0x6A20 +0x98D2 0x6A22 +0x98D3 0x6A23 +0x98D4 0x6A24 +0x98D5 0x6A25 +0x98D6 0x6A26 +0x98D7 0x6A27 +0x98D8 0x6A29 +0x98D9 0x6A2B +0x98DA 0x6A2C +0x98DB 0x6A2D +0x98DC 0x6A2E +0x98DD 0x6A30 +0x98DE 0x6A32 +0x98DF 0x6A33 +0x98E0 0x6A34 +0x98E1 0x6A36 +0x98E2 0x6A37 +0x98E3 0x6A38 +0x98E4 0x6A39 +0x98E5 0x6A3A +0x98E6 0x6A3B +0x98E7 0x6A3C +0x98E8 0x6A3F +0x98E9 0x6A40 +0x98EA 0x6A41 +0x98EB 0x6A42 +0x98EC 0x6A43 +0x98ED 0x6A45 +0x98EE 0x6A46 +0x98EF 0x6A48 +0x98F0 0x6A49 +0x98F1 0x6A4A +0x98F2 0x6A4B +0x98F3 0x6A4C +0x98F4 0x6A4D +0x98F5 0x6A4E +0x98F6 0x6A4F +0x98F7 0x6A51 +0x98F8 0x6A52 +0x98F9 0x6A53 +0x98FA 0x6A54 +0x98FB 0x6A55 +0x98FC 0x6A56 +0x98FD 0x6A57 +0x98FE 0x6A5A +0x9940 0x6A5C +0x9941 0x6A5D +0x9942 0x6A5E +0x9943 0x6A5F +0x9944 0x6A60 +0x9945 0x6A62 +0x9946 0x6A63 +0x9947 0x6A64 +0x9948 0x6A66 +0x9949 0x6A67 +0x994A 0x6A68 +0x994B 0x6A69 +0x994C 0x6A6A +0x994D 0x6A6B +0x994E 0x6A6C +0x994F 0x6A6D +0x9950 0x6A6E +0x9951 0x6A6F +0x9952 0x6A70 +0x9953 0x6A72 +0x9954 0x6A73 +0x9955 0x6A74 +0x9956 0x6A75 +0x9957 0x6A76 +0x9958 0x6A77 +0x9959 0x6A78 +0x995A 0x6A7A +0x995B 0x6A7B +0x995C 0x6A7D +0x995D 0x6A7E +0x995E 0x6A7F +0x995F 0x6A81 +0x9960 0x6A82 +0x9961 0x6A83 +0x9962 0x6A85 +0x9963 0x6A86 +0x9964 0x6A87 +0x9965 0x6A88 +0x9966 0x6A89 +0x9967 0x6A8A +0x9968 0x6A8B +0x9969 0x6A8C +0x996A 0x6A8D +0x996B 0x6A8F +0x996C 0x6A92 +0x996D 0x6A93 +0x996E 0x6A94 +0x996F 0x6A95 +0x9970 0x6A96 +0x9971 0x6A98 +0x9972 0x6A99 +0x9973 0x6A9A +0x9974 0x6A9B +0x9975 0x6A9C +0x9976 0x6A9D +0x9977 0x6A9E +0x9978 0x6A9F +0x9979 0x6AA1 +0x997A 0x6AA2 +0x997B 0x6AA3 +0x997C 0x6AA4 +0x997D 0x6AA5 +0x997E 0x6AA6 +0x9980 0x6AA7 +0x9981 0x6AA8 +0x9982 0x6AAA +0x9983 0x6AAD +0x9984 0x6AAE +0x9985 0x6AAF +0x9986 0x6AB0 +0x9987 0x6AB1 +0x9988 0x6AB2 +0x9989 0x6AB3 +0x998A 0x6AB4 +0x998B 0x6AB5 +0x998C 0x6AB6 +0x998D 0x6AB7 +0x998E 0x6AB8 +0x998F 0x6AB9 +0x9990 0x6ABA +0x9991 0x6ABB +0x9992 0x6ABC +0x9993 0x6ABD +0x9994 0x6ABE +0x9995 0x6ABF +0x9996 0x6AC0 +0x9997 0x6AC1 +0x9998 0x6AC2 +0x9999 0x6AC3 +0x999A 0x6AC4 +0x999B 0x6AC5 +0x999C 0x6AC6 +0x999D 0x6AC7 +0x999E 0x6AC8 +0x999F 0x6AC9 +0x99A0 0x6ACA +0x99A1 0x6ACB +0x99A2 0x6ACC +0x99A3 0x6ACD +0x99A4 0x6ACE +0x99A5 0x6ACF +0x99A6 0x6AD0 +0x99A7 0x6AD1 +0x99A8 0x6AD2 +0x99A9 0x6AD3 +0x99AA 0x6AD4 +0x99AB 0x6AD5 +0x99AC 0x6AD6 +0x99AD 0x6AD7 +0x99AE 0x6AD8 +0x99AF 0x6AD9 +0x99B0 0x6ADA +0x99B1 0x6ADB +0x99B2 0x6ADC +0x99B3 0x6ADD +0x99B4 0x6ADE +0x99B5 0x6ADF +0x99B6 0x6AE0 +0x99B7 0x6AE1 +0x99B8 0x6AE2 +0x99B9 0x6AE3 +0x99BA 0x6AE4 +0x99BB 0x6AE5 +0x99BC 0x6AE6 +0x99BD 0x6AE7 +0x99BE 0x6AE8 +0x99BF 0x6AE9 +0x99C0 0x6AEA +0x99C1 0x6AEB +0x99C2 0x6AEC +0x99C3 0x6AED +0x99C4 0x6AEE +0x99C5 0x6AEF +0x99C6 0x6AF0 +0x99C7 0x6AF1 +0x99C8 0x6AF2 +0x99C9 0x6AF3 +0x99CA 0x6AF4 +0x99CB 0x6AF5 +0x99CC 0x6AF6 +0x99CD 0x6AF7 +0x99CE 0x6AF8 +0x99CF 0x6AF9 +0x99D0 0x6AFA +0x99D1 0x6AFB +0x99D2 0x6AFC +0x99D3 0x6AFD +0x99D4 0x6AFE +0x99D5 0x6AFF +0x99D6 0x6B00 +0x99D7 0x6B01 +0x99D8 0x6B02 +0x99D9 0x6B03 +0x99DA 0x6B04 +0x99DB 0x6B05 +0x99DC 0x6B06 +0x99DD 0x6B07 +0x99DE 0x6B08 +0x99DF 0x6B09 +0x99E0 0x6B0A +0x99E1 0x6B0B +0x99E2 0x6B0C +0x99E3 0x6B0D +0x99E4 0x6B0E +0x99E5 0x6B0F +0x99E6 0x6B10 +0x99E7 0x6B11 +0x99E8 0x6B12 +0x99E9 0x6B13 +0x99EA 0x6B14 +0x99EB 0x6B15 +0x99EC 0x6B16 +0x99ED 0x6B17 +0x99EE 0x6B18 +0x99EF 0x6B19 +0x99F0 0x6B1A +0x99F1 0x6B1B +0x99F2 0x6B1C +0x99F3 0x6B1D +0x99F4 0x6B1E +0x99F5 0x6B1F +0x99F6 0x6B25 +0x99F7 0x6B26 +0x99F8 0x6B28 +0x99F9 0x6B29 +0x99FA 0x6B2A +0x99FB 0x6B2B +0x99FC 0x6B2C +0x99FD 0x6B2D +0x99FE 0x6B2E +0x9A40 0x6B2F +0x9A41 0x6B30 +0x9A42 0x6B31 +0x9A43 0x6B33 +0x9A44 0x6B34 +0x9A45 0x6B35 +0x9A46 0x6B36 +0x9A47 0x6B38 +0x9A48 0x6B3B +0x9A49 0x6B3C +0x9A4A 0x6B3D +0x9A4B 0x6B3F +0x9A4C 0x6B40 +0x9A4D 0x6B41 +0x9A4E 0x6B42 +0x9A4F 0x6B44 +0x9A50 0x6B45 +0x9A51 0x6B48 +0x9A52 0x6B4A +0x9A53 0x6B4B +0x9A54 0x6B4D +0x9A55 0x6B4E +0x9A56 0x6B4F +0x9A57 0x6B50 +0x9A58 0x6B51 +0x9A59 0x6B52 +0x9A5A 0x6B53 +0x9A5B 0x6B54 +0x9A5C 0x6B55 +0x9A5D 0x6B56 +0x9A5E 0x6B57 +0x9A5F 0x6B58 +0x9A60 0x6B5A +0x9A61 0x6B5B +0x9A62 0x6B5C +0x9A63 0x6B5D +0x9A64 0x6B5E +0x9A65 0x6B5F +0x9A66 0x6B60 +0x9A67 0x6B61 +0x9A68 0x6B68 +0x9A69 0x6B69 +0x9A6A 0x6B6B +0x9A6B 0x6B6C +0x9A6C 0x6B6D +0x9A6D 0x6B6E +0x9A6E 0x6B6F +0x9A6F 0x6B70 +0x9A70 0x6B71 +0x9A71 0x6B72 +0x9A72 0x6B73 +0x9A73 0x6B74 +0x9A74 0x6B75 +0x9A75 0x6B76 +0x9A76 0x6B77 +0x9A77 0x6B78 +0x9A78 0x6B7A +0x9A79 0x6B7D +0x9A7A 0x6B7E +0x9A7B 0x6B7F +0x9A7C 0x6B80 +0x9A7D 0x6B85 +0x9A7E 0x6B88 +0x9A80 0x6B8C +0x9A81 0x6B8E +0x9A82 0x6B8F +0x9A83 0x6B90 +0x9A84 0x6B91 +0x9A85 0x6B94 +0x9A86 0x6B95 +0x9A87 0x6B97 +0x9A88 0x6B98 +0x9A89 0x6B99 +0x9A8A 0x6B9C +0x9A8B 0x6B9D +0x9A8C 0x6B9E +0x9A8D 0x6B9F +0x9A8E 0x6BA0 +0x9A8F 0x6BA2 +0x9A90 0x6BA3 +0x9A91 0x6BA4 +0x9A92 0x6BA5 +0x9A93 0x6BA6 +0x9A94 0x6BA7 +0x9A95 0x6BA8 +0x9A96 0x6BA9 +0x9A97 0x6BAB +0x9A98 0x6BAC +0x9A99 0x6BAD +0x9A9A 0x6BAE +0x9A9B 0x6BAF +0x9A9C 0x6BB0 +0x9A9D 0x6BB1 +0x9A9E 0x6BB2 +0x9A9F 0x6BB6 +0x9AA0 0x6BB8 +0x9AA1 0x6BB9 +0x9AA2 0x6BBA +0x9AA3 0x6BBB +0x9AA4 0x6BBC +0x9AA5 0x6BBD +0x9AA6 0x6BBE +0x9AA7 0x6BC0 +0x9AA8 0x6BC3 +0x9AA9 0x6BC4 +0x9AAA 0x6BC6 +0x9AAB 0x6BC7 +0x9AAC 0x6BC8 +0x9AAD 0x6BC9 +0x9AAE 0x6BCA +0x9AAF 0x6BCC +0x9AB0 0x6BCE +0x9AB1 0x6BD0 +0x9AB2 0x6BD1 +0x9AB3 0x6BD8 +0x9AB4 0x6BDA +0x9AB5 0x6BDC +0x9AB6 0x6BDD +0x9AB7 0x6BDE +0x9AB8 0x6BDF +0x9AB9 0x6BE0 +0x9ABA 0x6BE2 +0x9ABB 0x6BE3 +0x9ABC 0x6BE4 +0x9ABD 0x6BE5 +0x9ABE 0x6BE6 +0x9ABF 0x6BE7 +0x9AC0 0x6BE8 +0x9AC1 0x6BE9 +0x9AC2 0x6BEC +0x9AC3 0x6BED +0x9AC4 0x6BEE +0x9AC5 0x6BF0 +0x9AC6 0x6BF1 +0x9AC7 0x6BF2 +0x9AC8 0x6BF4 +0x9AC9 0x6BF6 +0x9ACA 0x6BF7 +0x9ACB 0x6BF8 +0x9ACC 0x6BFA +0x9ACD 0x6BFB +0x9ACE 0x6BFC +0x9ACF 0x6BFE +0x9AD0 0x6BFF +0x9AD1 0x6C00 +0x9AD2 0x6C01 +0x9AD3 0x6C02 +0x9AD4 0x6C03 +0x9AD5 0x6C04 +0x9AD6 0x6C08 +0x9AD7 0x6C09 +0x9AD8 0x6C0A +0x9AD9 0x6C0B +0x9ADA 0x6C0C +0x9ADB 0x6C0E +0x9ADC 0x6C12 +0x9ADD 0x6C17 +0x9ADE 0x6C1C +0x9ADF 0x6C1D +0x9AE0 0x6C1E +0x9AE1 0x6C20 +0x9AE2 0x6C23 +0x9AE3 0x6C25 +0x9AE4 0x6C2B +0x9AE5 0x6C2C +0x9AE6 0x6C2D +0x9AE7 0x6C31 +0x9AE8 0x6C33 +0x9AE9 0x6C36 +0x9AEA 0x6C37 +0x9AEB 0x6C39 +0x9AEC 0x6C3A +0x9AED 0x6C3B +0x9AEE 0x6C3C +0x9AEF 0x6C3E +0x9AF0 0x6C3F +0x9AF1 0x6C43 +0x9AF2 0x6C44 +0x9AF3 0x6C45 +0x9AF4 0x6C48 +0x9AF5 0x6C4B +0x9AF6 0x6C4C +0x9AF7 0x6C4D +0x9AF8 0x6C4E +0x9AF9 0x6C4F +0x9AFA 0x6C51 +0x9AFB 0x6C52 +0x9AFC 0x6C53 +0x9AFD 0x6C56 +0x9AFE 0x6C58 +0x9B40 0x6C59 +0x9B41 0x6C5A +0x9B42 0x6C62 +0x9B43 0x6C63 +0x9B44 0x6C65 +0x9B45 0x6C66 +0x9B46 0x6C67 +0x9B47 0x6C6B +0x9B48 0x6C6C +0x9B49 0x6C6D +0x9B4A 0x6C6E +0x9B4B 0x6C6F +0x9B4C 0x6C71 +0x9B4D 0x6C73 +0x9B4E 0x6C75 +0x9B4F 0x6C77 +0x9B50 0x6C78 +0x9B51 0x6C7A +0x9B52 0x6C7B +0x9B53 0x6C7C +0x9B54 0x6C7F +0x9B55 0x6C80 +0x9B56 0x6C84 +0x9B57 0x6C87 +0x9B58 0x6C8A +0x9B59 0x6C8B +0x9B5A 0x6C8D +0x9B5B 0x6C8E +0x9B5C 0x6C91 +0x9B5D 0x6C92 +0x9B5E 0x6C95 +0x9B5F 0x6C96 +0x9B60 0x6C97 +0x9B61 0x6C98 +0x9B62 0x6C9A +0x9B63 0x6C9C +0x9B64 0x6C9D +0x9B65 0x6C9E +0x9B66 0x6CA0 +0x9B67 0x6CA2 +0x9B68 0x6CA8 +0x9B69 0x6CAC +0x9B6A 0x6CAF +0x9B6B 0x6CB0 +0x9B6C 0x6CB4 +0x9B6D 0x6CB5 +0x9B6E 0x6CB6 +0x9B6F 0x6CB7 +0x9B70 0x6CBA +0x9B71 0x6CC0 +0x9B72 0x6CC1 +0x9B73 0x6CC2 +0x9B74 0x6CC3 +0x9B75 0x6CC6 +0x9B76 0x6CC7 +0x9B77 0x6CC8 +0x9B78 0x6CCB +0x9B79 0x6CCD +0x9B7A 0x6CCE +0x9B7B 0x6CCF +0x9B7C 0x6CD1 +0x9B7D 0x6CD2 +0x9B7E 0x6CD8 +0x9B80 0x6CD9 +0x9B81 0x6CDA +0x9B82 0x6CDC +0x9B83 0x6CDD +0x9B84 0x6CDF +0x9B85 0x6CE4 +0x9B86 0x6CE6 +0x9B87 0x6CE7 +0x9B88 0x6CE9 +0x9B89 0x6CEC +0x9B8A 0x6CED +0x9B8B 0x6CF2 +0x9B8C 0x6CF4 +0x9B8D 0x6CF9 +0x9B8E 0x6CFF +0x9B8F 0x6D00 +0x9B90 0x6D02 +0x9B91 0x6D03 +0x9B92 0x6D05 +0x9B93 0x6D06 +0x9B94 0x6D08 +0x9B95 0x6D09 +0x9B96 0x6D0A +0x9B97 0x6D0D +0x9B98 0x6D0F +0x9B99 0x6D10 +0x9B9A 0x6D11 +0x9B9B 0x6D13 +0x9B9C 0x6D14 +0x9B9D 0x6D15 +0x9B9E 0x6D16 +0x9B9F 0x6D18 +0x9BA0 0x6D1C +0x9BA1 0x6D1D +0x9BA2 0x6D1F +0x9BA3 0x6D20 +0x9BA4 0x6D21 +0x9BA5 0x6D22 +0x9BA6 0x6D23 +0x9BA7 0x6D24 +0x9BA8 0x6D26 +0x9BA9 0x6D28 +0x9BAA 0x6D29 +0x9BAB 0x6D2C +0x9BAC 0x6D2D +0x9BAD 0x6D2F +0x9BAE 0x6D30 +0x9BAF 0x6D34 +0x9BB0 0x6D36 +0x9BB1 0x6D37 +0x9BB2 0x6D38 +0x9BB3 0x6D3A +0x9BB4 0x6D3F +0x9BB5 0x6D40 +0x9BB6 0x6D42 +0x9BB7 0x6D44 +0x9BB8 0x6D49 +0x9BB9 0x6D4C +0x9BBA 0x6D50 +0x9BBB 0x6D55 +0x9BBC 0x6D56 +0x9BBD 0x6D57 +0x9BBE 0x6D58 +0x9BBF 0x6D5B +0x9BC0 0x6D5D +0x9BC1 0x6D5F +0x9BC2 0x6D61 +0x9BC3 0x6D62 +0x9BC4 0x6D64 +0x9BC5 0x6D65 +0x9BC6 0x6D67 +0x9BC7 0x6D68 +0x9BC8 0x6D6B +0x9BC9 0x6D6C +0x9BCA 0x6D6D +0x9BCB 0x6D70 +0x9BCC 0x6D71 +0x9BCD 0x6D72 +0x9BCE 0x6D73 +0x9BCF 0x6D75 +0x9BD0 0x6D76 +0x9BD1 0x6D79 +0x9BD2 0x6D7A +0x9BD3 0x6D7B +0x9BD4 0x6D7D +0x9BD5 0x6D7E +0x9BD6 0x6D7F +0x9BD7 0x6D80 +0x9BD8 0x6D81 +0x9BD9 0x6D83 +0x9BDA 0x6D84 +0x9BDB 0x6D86 +0x9BDC 0x6D87 +0x9BDD 0x6D8A +0x9BDE 0x6D8B +0x9BDF 0x6D8D +0x9BE0 0x6D8F +0x9BE1 0x6D90 +0x9BE2 0x6D92 +0x9BE3 0x6D96 +0x9BE4 0x6D97 +0x9BE5 0x6D98 +0x9BE6 0x6D99 +0x9BE7 0x6D9A +0x9BE8 0x6D9C +0x9BE9 0x6DA2 +0x9BEA 0x6DA5 +0x9BEB 0x6DAC +0x9BEC 0x6DAD +0x9BED 0x6DB0 +0x9BEE 0x6DB1 +0x9BEF 0x6DB3 +0x9BF0 0x6DB4 +0x9BF1 0x6DB6 +0x9BF2 0x6DB7 +0x9BF3 0x6DB9 +0x9BF4 0x6DBA +0x9BF5 0x6DBB +0x9BF6 0x6DBC +0x9BF7 0x6DBD +0x9BF8 0x6DBE +0x9BF9 0x6DC1 +0x9BFA 0x6DC2 +0x9BFB 0x6DC3 +0x9BFC 0x6DC8 +0x9BFD 0x6DC9 +0x9BFE 0x6DCA +0x9C40 0x6DCD +0x9C41 0x6DCE +0x9C42 0x6DCF +0x9C43 0x6DD0 +0x9C44 0x6DD2 +0x9C45 0x6DD3 +0x9C46 0x6DD4 +0x9C47 0x6DD5 +0x9C48 0x6DD7 +0x9C49 0x6DDA +0x9C4A 0x6DDB +0x9C4B 0x6DDC +0x9C4C 0x6DDF +0x9C4D 0x6DE2 +0x9C4E 0x6DE3 +0x9C4F 0x6DE5 +0x9C50 0x6DE7 +0x9C51 0x6DE8 +0x9C52 0x6DE9 +0x9C53 0x6DEA +0x9C54 0x6DED +0x9C55 0x6DEF +0x9C56 0x6DF0 +0x9C57 0x6DF2 +0x9C58 0x6DF4 +0x9C59 0x6DF5 +0x9C5A 0x6DF6 +0x9C5B 0x6DF8 +0x9C5C 0x6DFA +0x9C5D 0x6DFD +0x9C5E 0x6DFE +0x9C5F 0x6DFF +0x9C60 0x6E00 +0x9C61 0x6E01 +0x9C62 0x6E02 +0x9C63 0x6E03 +0x9C64 0x6E04 +0x9C65 0x6E06 +0x9C66 0x6E07 +0x9C67 0x6E08 +0x9C68 0x6E09 +0x9C69 0x6E0B +0x9C6A 0x6E0F +0x9C6B 0x6E12 +0x9C6C 0x6E13 +0x9C6D 0x6E15 +0x9C6E 0x6E18 +0x9C6F 0x6E19 +0x9C70 0x6E1B +0x9C71 0x6E1C +0x9C72 0x6E1E +0x9C73 0x6E1F +0x9C74 0x6E22 +0x9C75 0x6E26 +0x9C76 0x6E27 +0x9C77 0x6E28 +0x9C78 0x6E2A +0x9C79 0x6E2C +0x9C7A 0x6E2E +0x9C7B 0x6E30 +0x9C7C 0x6E31 +0x9C7D 0x6E33 +0x9C7E 0x6E35 +0x9C80 0x6E36 +0x9C81 0x6E37 +0x9C82 0x6E39 +0x9C83 0x6E3B +0x9C84 0x6E3C +0x9C85 0x6E3D +0x9C86 0x6E3E +0x9C87 0x6E3F +0x9C88 0x6E40 +0x9C89 0x6E41 +0x9C8A 0x6E42 +0x9C8B 0x6E45 +0x9C8C 0x6E46 +0x9C8D 0x6E47 +0x9C8E 0x6E48 +0x9C8F 0x6E49 +0x9C90 0x6E4A +0x9C91 0x6E4B +0x9C92 0x6E4C +0x9C93 0x6E4F +0x9C94 0x6E50 +0x9C95 0x6E51 +0x9C96 0x6E52 +0x9C97 0x6E55 +0x9C98 0x6E57 +0x9C99 0x6E59 +0x9C9A 0x6E5A +0x9C9B 0x6E5C +0x9C9C 0x6E5D +0x9C9D 0x6E5E +0x9C9E 0x6E60 +0x9C9F 0x6E61 +0x9CA0 0x6E62 +0x9CA1 0x6E63 +0x9CA2 0x6E64 +0x9CA3 0x6E65 +0x9CA4 0x6E66 +0x9CA5 0x6E67 +0x9CA6 0x6E68 +0x9CA7 0x6E69 +0x9CA8 0x6E6A +0x9CA9 0x6E6C +0x9CAA 0x6E6D +0x9CAB 0x6E6F +0x9CAC 0x6E70 +0x9CAD 0x6E71 +0x9CAE 0x6E72 +0x9CAF 0x6E73 +0x9CB0 0x6E74 +0x9CB1 0x6E75 +0x9CB2 0x6E76 +0x9CB3 0x6E77 +0x9CB4 0x6E78 +0x9CB5 0x6E79 +0x9CB6 0x6E7A +0x9CB7 0x6E7B +0x9CB8 0x6E7C +0x9CB9 0x6E7D +0x9CBA 0x6E80 +0x9CBB 0x6E81 +0x9CBC 0x6E82 +0x9CBD 0x6E84 +0x9CBE 0x6E87 +0x9CBF 0x6E88 +0x9CC0 0x6E8A +0x9CC1 0x6E8B +0x9CC2 0x6E8C +0x9CC3 0x6E8D +0x9CC4 0x6E8E +0x9CC5 0x6E91 +0x9CC6 0x6E92 +0x9CC7 0x6E93 +0x9CC8 0x6E94 +0x9CC9 0x6E95 +0x9CCA 0x6E96 +0x9CCB 0x6E97 +0x9CCC 0x6E99 +0x9CCD 0x6E9A +0x9CCE 0x6E9B +0x9CCF 0x6E9D +0x9CD0 0x6E9E +0x9CD1 0x6EA0 +0x9CD2 0x6EA1 +0x9CD3 0x6EA3 +0x9CD4 0x6EA4 +0x9CD5 0x6EA6 +0x9CD6 0x6EA8 +0x9CD7 0x6EA9 +0x9CD8 0x6EAB +0x9CD9 0x6EAC +0x9CDA 0x6EAD +0x9CDB 0x6EAE +0x9CDC 0x6EB0 +0x9CDD 0x6EB3 +0x9CDE 0x6EB5 +0x9CDF 0x6EB8 +0x9CE0 0x6EB9 +0x9CE1 0x6EBC +0x9CE2 0x6EBE +0x9CE3 0x6EBF +0x9CE4 0x6EC0 +0x9CE5 0x6EC3 +0x9CE6 0x6EC4 +0x9CE7 0x6EC5 +0x9CE8 0x6EC6 +0x9CE9 0x6EC8 +0x9CEA 0x6EC9 +0x9CEB 0x6ECA +0x9CEC 0x6ECC +0x9CED 0x6ECD +0x9CEE 0x6ECE +0x9CEF 0x6ED0 +0x9CF0 0x6ED2 +0x9CF1 0x6ED6 +0x9CF2 0x6ED8 +0x9CF3 0x6ED9 +0x9CF4 0x6EDB +0x9CF5 0x6EDC +0x9CF6 0x6EDD +0x9CF7 0x6EE3 +0x9CF8 0x6EE7 +0x9CF9 0x6EEA +0x9CFA 0x6EEB +0x9CFB 0x6EEC +0x9CFC 0x6EED +0x9CFD 0x6EEE +0x9CFE 0x6EEF +0x9D40 0x6EF0 +0x9D41 0x6EF1 +0x9D42 0x6EF2 +0x9D43 0x6EF3 +0x9D44 0x6EF5 +0x9D45 0x6EF6 +0x9D46 0x6EF7 +0x9D47 0x6EF8 +0x9D48 0x6EFA +0x9D49 0x6EFB +0x9D4A 0x6EFC +0x9D4B 0x6EFD +0x9D4C 0x6EFE +0x9D4D 0x6EFF +0x9D4E 0x6F00 +0x9D4F 0x6F01 +0x9D50 0x6F03 +0x9D51 0x6F04 +0x9D52 0x6F05 +0x9D53 0x6F07 +0x9D54 0x6F08 +0x9D55 0x6F0A +0x9D56 0x6F0B +0x9D57 0x6F0C +0x9D58 0x6F0D +0x9D59 0x6F0E +0x9D5A 0x6F10 +0x9D5B 0x6F11 +0x9D5C 0x6F12 +0x9D5D 0x6F16 +0x9D5E 0x6F17 +0x9D5F 0x6F18 +0x9D60 0x6F19 +0x9D61 0x6F1A +0x9D62 0x6F1B +0x9D63 0x6F1C +0x9D64 0x6F1D +0x9D65 0x6F1E +0x9D66 0x6F1F +0x9D67 0x6F21 +0x9D68 0x6F22 +0x9D69 0x6F23 +0x9D6A 0x6F25 +0x9D6B 0x6F26 +0x9D6C 0x6F27 +0x9D6D 0x6F28 +0x9D6E 0x6F2C +0x9D6F 0x6F2E +0x9D70 0x6F30 +0x9D71 0x6F32 +0x9D72 0x6F34 +0x9D73 0x6F35 +0x9D74 0x6F37 +0x9D75 0x6F38 +0x9D76 0x6F39 +0x9D77 0x6F3A +0x9D78 0x6F3B +0x9D79 0x6F3C +0x9D7A 0x6F3D +0x9D7B 0x6F3F +0x9D7C 0x6F40 +0x9D7D 0x6F41 +0x9D7E 0x6F42 +0x9D80 0x6F43 +0x9D81 0x6F44 +0x9D82 0x6F45 +0x9D83 0x6F48 +0x9D84 0x6F49 +0x9D85 0x6F4A +0x9D86 0x6F4C +0x9D87 0x6F4E +0x9D88 0x6F4F +0x9D89 0x6F50 +0x9D8A 0x6F51 +0x9D8B 0x6F52 +0x9D8C 0x6F53 +0x9D8D 0x6F54 +0x9D8E 0x6F55 +0x9D8F 0x6F56 +0x9D90 0x6F57 +0x9D91 0x6F59 +0x9D92 0x6F5A +0x9D93 0x6F5B +0x9D94 0x6F5D +0x9D95 0x6F5F +0x9D96 0x6F60 +0x9D97 0x6F61 +0x9D98 0x6F63 +0x9D99 0x6F64 +0x9D9A 0x6F65 +0x9D9B 0x6F67 +0x9D9C 0x6F68 +0x9D9D 0x6F69 +0x9D9E 0x6F6A +0x9D9F 0x6F6B +0x9DA0 0x6F6C +0x9DA1 0x6F6F +0x9DA2 0x6F70 +0x9DA3 0x6F71 +0x9DA4 0x6F73 +0x9DA5 0x6F75 +0x9DA6 0x6F76 +0x9DA7 0x6F77 +0x9DA8 0x6F79 +0x9DA9 0x6F7B +0x9DAA 0x6F7D +0x9DAB 0x6F7E +0x9DAC 0x6F7F +0x9DAD 0x6F80 +0x9DAE 0x6F81 +0x9DAF 0x6F82 +0x9DB0 0x6F83 +0x9DB1 0x6F85 +0x9DB2 0x6F86 +0x9DB3 0x6F87 +0x9DB4 0x6F8A +0x9DB5 0x6F8B +0x9DB6 0x6F8F +0x9DB7 0x6F90 +0x9DB8 0x6F91 +0x9DB9 0x6F92 +0x9DBA 0x6F93 +0x9DBB 0x6F94 +0x9DBC 0x6F95 +0x9DBD 0x6F96 +0x9DBE 0x6F97 +0x9DBF 0x6F98 +0x9DC0 0x6F99 +0x9DC1 0x6F9A +0x9DC2 0x6F9B +0x9DC3 0x6F9D +0x9DC4 0x6F9E +0x9DC5 0x6F9F +0x9DC6 0x6FA0 +0x9DC7 0x6FA2 +0x9DC8 0x6FA3 +0x9DC9 0x6FA4 +0x9DCA 0x6FA5 +0x9DCB 0x6FA6 +0x9DCC 0x6FA8 +0x9DCD 0x6FA9 +0x9DCE 0x6FAA +0x9DCF 0x6FAB +0x9DD0 0x6FAC +0x9DD1 0x6FAD +0x9DD2 0x6FAE +0x9DD3 0x6FAF +0x9DD4 0x6FB0 +0x9DD5 0x6FB1 +0x9DD6 0x6FB2 +0x9DD7 0x6FB4 +0x9DD8 0x6FB5 +0x9DD9 0x6FB7 +0x9DDA 0x6FB8 +0x9DDB 0x6FBA +0x9DDC 0x6FBB +0x9DDD 0x6FBC +0x9DDE 0x6FBD +0x9DDF 0x6FBE +0x9DE0 0x6FBF +0x9DE1 0x6FC1 +0x9DE2 0x6FC3 +0x9DE3 0x6FC4 +0x9DE4 0x6FC5 +0x9DE5 0x6FC6 +0x9DE6 0x6FC7 +0x9DE7 0x6FC8 +0x9DE8 0x6FCA +0x9DE9 0x6FCB +0x9DEA 0x6FCC +0x9DEB 0x6FCD +0x9DEC 0x6FCE +0x9DED 0x6FCF +0x9DEE 0x6FD0 +0x9DEF 0x6FD3 +0x9DF0 0x6FD4 +0x9DF1 0x6FD5 +0x9DF2 0x6FD6 +0x9DF3 0x6FD7 +0x9DF4 0x6FD8 +0x9DF5 0x6FD9 +0x9DF6 0x6FDA +0x9DF7 0x6FDB +0x9DF8 0x6FDC +0x9DF9 0x6FDD +0x9DFA 0x6FDF +0x9DFB 0x6FE2 +0x9DFC 0x6FE3 +0x9DFD 0x6FE4 +0x9DFE 0x6FE5 +0x9E40 0x6FE6 +0x9E41 0x6FE7 +0x9E42 0x6FE8 +0x9E43 0x6FE9 +0x9E44 0x6FEA +0x9E45 0x6FEB +0x9E46 0x6FEC +0x9E47 0x6FED +0x9E48 0x6FF0 +0x9E49 0x6FF1 +0x9E4A 0x6FF2 +0x9E4B 0x6FF3 +0x9E4C 0x6FF4 +0x9E4D 0x6FF5 +0x9E4E 0x6FF6 +0x9E4F 0x6FF7 +0x9E50 0x6FF8 +0x9E51 0x6FF9 +0x9E52 0x6FFA +0x9E53 0x6FFB +0x9E54 0x6FFC +0x9E55 0x6FFD +0x9E56 0x6FFE +0x9E57 0x6FFF +0x9E58 0x7000 +0x9E59 0x7001 +0x9E5A 0x7002 +0x9E5B 0x7003 +0x9E5C 0x7004 +0x9E5D 0x7005 +0x9E5E 0x7006 +0x9E5F 0x7007 +0x9E60 0x7008 +0x9E61 0x7009 +0x9E62 0x700A +0x9E63 0x700B +0x9E64 0x700C +0x9E65 0x700D +0x9E66 0x700E +0x9E67 0x700F +0x9E68 0x7010 +0x9E69 0x7012 +0x9E6A 0x7013 +0x9E6B 0x7014 +0x9E6C 0x7015 +0x9E6D 0x7016 +0x9E6E 0x7017 +0x9E6F 0x7018 +0x9E70 0x7019 +0x9E71 0x701C +0x9E72 0x701D +0x9E73 0x701E +0x9E74 0x701F +0x9E75 0x7020 +0x9E76 0x7021 +0x9E77 0x7022 +0x9E78 0x7024 +0x9E79 0x7025 +0x9E7A 0x7026 +0x9E7B 0x7027 +0x9E7C 0x7028 +0x9E7D 0x7029 +0x9E7E 0x702A +0x9E80 0x702B +0x9E81 0x702C +0x9E82 0x702D +0x9E83 0x702E +0x9E84 0x702F +0x9E85 0x7030 +0x9E86 0x7031 +0x9E87 0x7032 +0x9E88 0x7033 +0x9E89 0x7034 +0x9E8A 0x7036 +0x9E8B 0x7037 +0x9E8C 0x7038 +0x9E8D 0x703A +0x9E8E 0x703B +0x9E8F 0x703C +0x9E90 0x703D +0x9E91 0x703E +0x9E92 0x703F +0x9E93 0x7040 +0x9E94 0x7041 +0x9E95 0x7042 +0x9E96 0x7043 +0x9E97 0x7044 +0x9E98 0x7045 +0x9E99 0x7046 +0x9E9A 0x7047 +0x9E9B 0x7048 +0x9E9C 0x7049 +0x9E9D 0x704A +0x9E9E 0x704B +0x9E9F 0x704D +0x9EA0 0x704E +0x9EA1 0x7050 +0x9EA2 0x7051 +0x9EA3 0x7052 +0x9EA4 0x7053 +0x9EA5 0x7054 +0x9EA6 0x7055 +0x9EA7 0x7056 +0x9EA8 0x7057 +0x9EA9 0x7058 +0x9EAA 0x7059 +0x9EAB 0x705A +0x9EAC 0x705B +0x9EAD 0x705C +0x9EAE 0x705D +0x9EAF 0x705F +0x9EB0 0x7060 +0x9EB1 0x7061 +0x9EB2 0x7062 +0x9EB3 0x7063 +0x9EB4 0x7064 +0x9EB5 0x7065 +0x9EB6 0x7066 +0x9EB7 0x7067 +0x9EB8 0x7068 +0x9EB9 0x7069 +0x9EBA 0x706A +0x9EBB 0x706E +0x9EBC 0x7071 +0x9EBD 0x7072 +0x9EBE 0x7073 +0x9EBF 0x7074 +0x9EC0 0x7077 +0x9EC1 0x7079 +0x9EC2 0x707A +0x9EC3 0x707B +0x9EC4 0x707D +0x9EC5 0x7081 +0x9EC6 0x7082 +0x9EC7 0x7083 +0x9EC8 0x7084 +0x9EC9 0x7086 +0x9ECA 0x7087 +0x9ECB 0x7088 +0x9ECC 0x708B +0x9ECD 0x708C +0x9ECE 0x708D +0x9ECF 0x708F +0x9ED0 0x7090 +0x9ED1 0x7091 +0x9ED2 0x7093 +0x9ED3 0x7097 +0x9ED4 0x7098 +0x9ED5 0x709A +0x9ED6 0x709B +0x9ED7 0x709E +0x9ED8 0x709F +0x9ED9 0x70A0 +0x9EDA 0x70A1 +0x9EDB 0x70A2 +0x9EDC 0x70A3 +0x9EDD 0x70A4 +0x9EDE 0x70A5 +0x9EDF 0x70A6 +0x9EE0 0x70A7 +0x9EE1 0x70A8 +0x9EE2 0x70A9 +0x9EE3 0x70AA +0x9EE4 0x70B0 +0x9EE5 0x70B2 +0x9EE6 0x70B4 +0x9EE7 0x70B5 +0x9EE8 0x70B6 +0x9EE9 0x70BA +0x9EEA 0x70BE +0x9EEB 0x70BF +0x9EEC 0x70C4 +0x9EED 0x70C5 +0x9EEE 0x70C6 +0x9EEF 0x70C7 +0x9EF0 0x70C9 +0x9EF1 0x70CB +0x9EF2 0x70CC +0x9EF3 0x70CD +0x9EF4 0x70CE +0x9EF5 0x70CF +0x9EF6 0x70D0 +0x9EF7 0x70D1 +0x9EF8 0x70D2 +0x9EF9 0x70D3 +0x9EFA 0x70D4 +0x9EFB 0x70D5 +0x9EFC 0x70D6 +0x9EFD 0x70D7 +0x9EFE 0x70DA +0x9F40 0x70DC +0x9F41 0x70DD +0x9F42 0x70DE +0x9F43 0x70E0 +0x9F44 0x70E1 +0x9F45 0x70E2 +0x9F46 0x70E3 +0x9F47 0x70E5 +0x9F48 0x70EA +0x9F49 0x70EE +0x9F4A 0x70F0 +0x9F4B 0x70F1 +0x9F4C 0x70F2 +0x9F4D 0x70F3 +0x9F4E 0x70F4 +0x9F4F 0x70F5 +0x9F50 0x70F6 +0x9F51 0x70F8 +0x9F52 0x70FA +0x9F53 0x70FB +0x9F54 0x70FC +0x9F55 0x70FE +0x9F56 0x70FF +0x9F57 0x7100 +0x9F58 0x7101 +0x9F59 0x7102 +0x9F5A 0x7103 +0x9F5B 0x7104 +0x9F5C 0x7105 +0x9F5D 0x7106 +0x9F5E 0x7107 +0x9F5F 0x7108 +0x9F60 0x710B +0x9F61 0x710C +0x9F62 0x710D +0x9F63 0x710E +0x9F64 0x710F +0x9F65 0x7111 +0x9F66 0x7112 +0x9F67 0x7114 +0x9F68 0x7117 +0x9F69 0x711B +0x9F6A 0x711C +0x9F6B 0x711D +0x9F6C 0x711E +0x9F6D 0x711F +0x9F6E 0x7120 +0x9F6F 0x7121 +0x9F70 0x7122 +0x9F71 0x7123 +0x9F72 0x7124 +0x9F73 0x7125 +0x9F74 0x7127 +0x9F75 0x7128 +0x9F76 0x7129 +0x9F77 0x712A +0x9F78 0x712B +0x9F79 0x712C +0x9F7A 0x712D +0x9F7B 0x712E +0x9F7C 0x7132 +0x9F7D 0x7133 +0x9F7E 0x7134 +0x9F80 0x7135 +0x9F81 0x7137 +0x9F82 0x7138 +0x9F83 0x7139 +0x9F84 0x713A +0x9F85 0x713B +0x9F86 0x713C +0x9F87 0x713D +0x9F88 0x713E +0x9F89 0x713F +0x9F8A 0x7140 +0x9F8B 0x7141 +0x9F8C 0x7142 +0x9F8D 0x7143 +0x9F8E 0x7144 +0x9F8F 0x7146 +0x9F90 0x7147 +0x9F91 0x7148 +0x9F92 0x7149 +0x9F93 0x714B +0x9F94 0x714D +0x9F95 0x714F +0x9F96 0x7150 +0x9F97 0x7151 +0x9F98 0x7152 +0x9F99 0x7153 +0x9F9A 0x7154 +0x9F9B 0x7155 +0x9F9C 0x7156 +0x9F9D 0x7157 +0x9F9E 0x7158 +0x9F9F 0x7159 +0x9FA0 0x715A +0x9FA1 0x715B +0x9FA2 0x715D +0x9FA3 0x715F +0x9FA4 0x7160 +0x9FA5 0x7161 +0x9FA6 0x7162 +0x9FA7 0x7163 +0x9FA8 0x7165 +0x9FA9 0x7169 +0x9FAA 0x716A +0x9FAB 0x716B +0x9FAC 0x716C +0x9FAD 0x716D +0x9FAE 0x716F +0x9FAF 0x7170 +0x9FB0 0x7171 +0x9FB1 0x7174 +0x9FB2 0x7175 +0x9FB3 0x7176 +0x9FB4 0x7177 +0x9FB5 0x7179 +0x9FB6 0x717B +0x9FB7 0x717C +0x9FB8 0x717E +0x9FB9 0x717F +0x9FBA 0x7180 +0x9FBB 0x7181 +0x9FBC 0x7182 +0x9FBD 0x7183 +0x9FBE 0x7185 +0x9FBF 0x7186 +0x9FC0 0x7187 +0x9FC1 0x7188 +0x9FC2 0x7189 +0x9FC3 0x718B +0x9FC4 0x718C +0x9FC5 0x718D +0x9FC6 0x718E +0x9FC7 0x7190 +0x9FC8 0x7191 +0x9FC9 0x7192 +0x9FCA 0x7193 +0x9FCB 0x7195 +0x9FCC 0x7196 +0x9FCD 0x7197 +0x9FCE 0x719A +0x9FCF 0x719B +0x9FD0 0x719C +0x9FD1 0x719D +0x9FD2 0x719E +0x9FD3 0x71A1 +0x9FD4 0x71A2 +0x9FD5 0x71A3 +0x9FD6 0x71A4 +0x9FD7 0x71A5 +0x9FD8 0x71A6 +0x9FD9 0x71A7 +0x9FDA 0x71A9 +0x9FDB 0x71AA +0x9FDC 0x71AB +0x9FDD 0x71AD +0x9FDE 0x71AE +0x9FDF 0x71AF +0x9FE0 0x71B0 +0x9FE1 0x71B1 +0x9FE2 0x71B2 +0x9FE3 0x71B4 +0x9FE4 0x71B6 +0x9FE5 0x71B7 +0x9FE6 0x71B8 +0x9FE7 0x71BA +0x9FE8 0x71BB +0x9FE9 0x71BC +0x9FEA 0x71BD +0x9FEB 0x71BE +0x9FEC 0x71BF +0x9FED 0x71C0 +0x9FEE 0x71C1 +0x9FEF 0x71C2 +0x9FF0 0x71C4 +0x9FF1 0x71C5 +0x9FF2 0x71C6 +0x9FF3 0x71C7 +0x9FF4 0x71C8 +0x9FF5 0x71C9 +0x9FF6 0x71CA +0x9FF7 0x71CB +0x9FF8 0x71CC +0x9FF9 0x71CD +0x9FFA 0x71CF +0x9FFB 0x71D0 +0x9FFC 0x71D1 +0x9FFD 0x71D2 +0x9FFE 0x71D3 +0xA040 0x71D6 +0xA041 0x71D7 +0xA042 0x71D8 +0xA043 0x71D9 +0xA044 0x71DA +0xA045 0x71DB +0xA046 0x71DC +0xA047 0x71DD +0xA048 0x71DE +0xA049 0x71DF +0xA04A 0x71E1 +0xA04B 0x71E2 +0xA04C 0x71E3 +0xA04D 0x71E4 +0xA04E 0x71E6 +0xA04F 0x71E8 +0xA050 0x71E9 +0xA051 0x71EA +0xA052 0x71EB +0xA053 0x71EC +0xA054 0x71ED +0xA055 0x71EF +0xA056 0x71F0 +0xA057 0x71F1 +0xA058 0x71F2 +0xA059 0x71F3 +0xA05A 0x71F4 +0xA05B 0x71F5 +0xA05C 0x71F6 +0xA05D 0x71F7 +0xA05E 0x71F8 +0xA05F 0x71FA +0xA060 0x71FB +0xA061 0x71FC +0xA062 0x71FD +0xA063 0x71FE +0xA064 0x71FF +0xA065 0x7200 +0xA066 0x7201 +0xA067 0x7202 +0xA068 0x7203 +0xA069 0x7204 +0xA06A 0x7205 +0xA06B 0x7207 +0xA06C 0x7208 +0xA06D 0x7209 +0xA06E 0x720A +0xA06F 0x720B +0xA070 0x720C +0xA071 0x720D +0xA072 0x720E +0xA073 0x720F +0xA074 0x7210 +0xA075 0x7211 +0xA076 0x7212 +0xA077 0x7213 +0xA078 0x7214 +0xA079 0x7215 +0xA07A 0x7216 +0xA07B 0x7217 +0xA07C 0x7218 +0xA07D 0x7219 +0xA07E 0x721A +0xA080 0x721B +0xA081 0x721C +0xA082 0x721E +0xA083 0x721F +0xA084 0x7220 +0xA085 0x7221 +0xA086 0x7222 +0xA087 0x7223 +0xA088 0x7224 +0xA089 0x7225 +0xA08A 0x7226 +0xA08B 0x7227 +0xA08C 0x7229 +0xA08D 0x722B +0xA08E 0x722D +0xA08F 0x722E +0xA090 0x722F +0xA091 0x7232 +0xA092 0x7233 +0xA093 0x7234 +0xA094 0x723A +0xA095 0x723C +0xA096 0x723E +0xA097 0x7240 +0xA098 0x7241 +0xA099 0x7242 +0xA09A 0x7243 +0xA09B 0x7244 +0xA09C 0x7245 +0xA09D 0x7246 +0xA09E 0x7249 +0xA09F 0x724A +0xA0A0 0x724B +0xA0A1 0x724E +0xA0A2 0x724F +0xA0A3 0x7250 +0xA0A4 0x7251 +0xA0A5 0x7253 +0xA0A6 0x7254 +0xA0A7 0x7255 +0xA0A8 0x7257 +0xA0A9 0x7258 +0xA0AA 0x725A +0xA0AB 0x725C +0xA0AC 0x725E +0xA0AD 0x7260 +0xA0AE 0x7263 +0xA0AF 0x7264 +0xA0B0 0x7265 +0xA0B1 0x7268 +0xA0B2 0x726A +0xA0B3 0x726B +0xA0B4 0x726C +0xA0B5 0x726D +0xA0B6 0x7270 +0xA0B7 0x7271 +0xA0B8 0x7273 +0xA0B9 0x7274 +0xA0BA 0x7276 +0xA0BB 0x7277 +0xA0BC 0x7278 +0xA0BD 0x727B +0xA0BE 0x727C +0xA0BF 0x727D +0xA0C0 0x7282 +0xA0C1 0x7283 +0xA0C2 0x7285 +0xA0C3 0x7286 +0xA0C4 0x7287 +0xA0C5 0x7288 +0xA0C6 0x7289 +0xA0C7 0x728C +0xA0C8 0x728E +0xA0C9 0x7290 +0xA0CA 0x7291 +0xA0CB 0x7293 +0xA0CC 0x7294 +0xA0CD 0x7295 +0xA0CE 0x7296 +0xA0CF 0x7297 +0xA0D0 0x7298 +0xA0D1 0x7299 +0xA0D2 0x729A +0xA0D3 0x729B +0xA0D4 0x729C +0xA0D5 0x729D +0xA0D6 0x729E +0xA0D7 0x72A0 +0xA0D8 0x72A1 +0xA0D9 0x72A2 +0xA0DA 0x72A3 +0xA0DB 0x72A4 +0xA0DC 0x72A5 +0xA0DD 0x72A6 +0xA0DE 0x72A7 +0xA0DF 0x72A8 +0xA0E0 0x72A9 +0xA0E1 0x72AA +0xA0E2 0x72AB +0xA0E3 0x72AE +0xA0E4 0x72B1 +0xA0E5 0x72B2 +0xA0E6 0x72B3 +0xA0E7 0x72B5 +0xA0E8 0x72BA +0xA0E9 0x72BB +0xA0EA 0x72BC +0xA0EB 0x72BD +0xA0EC 0x72BE +0xA0ED 0x72BF +0xA0EE 0x72C0 +0xA0EF 0x72C5 +0xA0F0 0x72C6 +0xA0F1 0x72C7 +0xA0F2 0x72C9 +0xA0F3 0x72CA +0xA0F4 0x72CB +0xA0F5 0x72CC +0xA0F6 0x72CF +0xA0F7 0x72D1 +0xA0F8 0x72D3 +0xA0F9 0x72D4 +0xA0FA 0x72D5 +0xA0FB 0x72D6 +0xA0FC 0x72D8 +0xA0FD 0x72DA +0xA0FE 0x72DB +0xA1A1 0x3000 +0xA1A2 0x3001 +0xA1A3 0x3002 +0xA1A4 0x00B7 +0xA1A5 0x02C9 +0xA1A6 0x02C7 +0xA1A7 0x00A8 +0xA1A8 0x3003 +0xA1A9 0x3005 +0xA1AA 0x2014 +0xA1AB 0xFF5E +0xA1AC 0x2016 +0xA1AD 0x2026 +0xA1AE 0x2018 +0xA1AF 0x2019 +0xA1B0 0x201C +0xA1B1 0x201D +0xA1B2 0x3014 +0xA1B3 0x3015 +0xA1B4 0x3008 +0xA1B5 0x3009 +0xA1B6 0x300A +0xA1B7 0x300B +0xA1B8 0x300C +0xA1B9 0x300D +0xA1BA 0x300E +0xA1BB 0x300F +0xA1BC 0x3016 +0xA1BD 0x3017 +0xA1BE 0x3010 +0xA1BF 0x3011 +0xA1C0 0x00B1 +0xA1C1 0x00D7 +0xA1C2 0x00F7 +0xA1C3 0x2236 +0xA1C4 0x2227 +0xA1C5 0x2228 +0xA1C6 0x2211 +0xA1C7 0x220F +0xA1C8 0x222A +0xA1C9 0x2229 +0xA1CA 0x2208 +0xA1CB 0x2237 +0xA1CC 0x221A +0xA1CD 0x22A5 +0xA1CE 0x2225 +0xA1CF 0x2220 +0xA1D0 0x2312 +0xA1D1 0x2299 +0xA1D2 0x222B +0xA1D3 0x222E +0xA1D4 0x2261 +0xA1D5 0x224C +0xA1D6 0x2248 +0xA1D7 0x223D +0xA1D8 0x221D +0xA1D9 0x2260 +0xA1DA 0x226E +0xA1DB 0x226F +0xA1DC 0x2264 +0xA1DD 0x2265 +0xA1DE 0x221E +0xA1DF 0x2235 +0xA1E0 0x2234 +0xA1E1 0x2642 +0xA1E2 0x2640 +0xA1E3 0x00B0 +0xA1E4 0x2032 +0xA1E5 0x2033 +0xA1E6 0x2103 +0xA1E7 0xFF04 +0xA1E8 0x00A4 +0xA1E9 0xFFE0 +0xA1EA 0xFFE1 +0xA1EB 0x2030 +0xA1EC 0x00A7 +0xA1ED 0x2116 +0xA1EE 0x2606 +0xA1EF 0x2605 +0xA1F0 0x25CB +0xA1F1 0x25CF +0xA1F2 0x25CE +0xA1F3 0x25C7 +0xA1F4 0x25C6 +0xA1F5 0x25A1 +0xA1F6 0x25A0 +0xA1F7 0x25B3 +0xA1F8 0x25B2 +0xA1F9 0x203B +0xA1FA 0x2192 +0xA1FB 0x2190 +0xA1FC 0x2191 +0xA1FD 0x2193 +0xA1FE 0x3013 +0xA2A1 0x2170 +0xA2A2 0x2171 +0xA2A3 0x2172 +0xA2A4 0x2173 +0xA2A5 0x2174 +0xA2A6 0x2175 +0xA2A7 0x2176 +0xA2A8 0x2177 +0xA2A9 0x2178 +0xA2AA 0x2179 +0xA2B1 0x2488 +0xA2B2 0x2489 +0xA2B3 0x248A +0xA2B4 0x248B +0xA2B5 0x248C +0xA2B6 0x248D +0xA2B7 0x248E +0xA2B8 0x248F +0xA2B9 0x2490 +0xA2BA 0x2491 +0xA2BB 0x2492 +0xA2BC 0x2493 +0xA2BD 0x2494 +0xA2BE 0x2495 +0xA2BF 0x2496 +0xA2C0 0x2497 +0xA2C1 0x2498 +0xA2C2 0x2499 +0xA2C3 0x249A +0xA2C4 0x249B +0xA2C5 0x2474 +0xA2C6 0x2475 +0xA2C7 0x2476 +0xA2C8 0x2477 +0xA2C9 0x2478 +0xA2CA 0x2479 +0xA2CB 0x247A +0xA2CC 0x247B +0xA2CD 0x247C +0xA2CE 0x247D +0xA2CF 0x247E +0xA2D0 0x247F +0xA2D1 0x2480 +0xA2D2 0x2481 +0xA2D3 0x2482 +0xA2D4 0x2483 +0xA2D5 0x2484 +0xA2D6 0x2485 +0xA2D7 0x2486 +0xA2D8 0x2487 +0xA2D9 0x2460 +0xA2DA 0x2461 +0xA2DB 0x2462 +0xA2DC 0x2463 +0xA2DD 0x2464 +0xA2DE 0x2465 +0xA2DF 0x2466 +0xA2E0 0x2467 +0xA2E1 0x2468 +0xA2E2 0x2469 +0xA2E5 0x3220 +0xA2E6 0x3221 +0xA2E7 0x3222 +0xA2E8 0x3223 +0xA2E9 0x3224 +0xA2EA 0x3225 +0xA2EB 0x3226 +0xA2EC 0x3227 +0xA2ED 0x3228 +0xA2EE 0x3229 +0xA2F1 0x2160 +0xA2F2 0x2161 +0xA2F3 0x2162 +0xA2F4 0x2163 +0xA2F5 0x2164 +0xA2F6 0x2165 +0xA2F7 0x2166 +0xA2F8 0x2167 +0xA2F9 0x2168 +0xA2FA 0x2169 +0xA2FB 0x216A +0xA2FC 0x216B +0xA3A1 0xFF01 +0xA3A2 0xFF02 +0xA3A3 0xFF03 +0xA3A4 0xFFE5 +0xA3A5 0xFF05 +0xA3A6 0xFF06 +0xA3A7 0xFF07 +0xA3A8 0xFF08 +0xA3A9 0xFF09 +0xA3AA 0xFF0A +0xA3AB 0xFF0B +0xA3AC 0xFF0C +0xA3AD 0xFF0D +0xA3AE 0xFF0E +0xA3AF 0xFF0F +0xA3B0 0xFF10 +0xA3B1 0xFF11 +0xA3B2 0xFF12 +0xA3B3 0xFF13 +0xA3B4 0xFF14 +0xA3B5 0xFF15 +0xA3B6 0xFF16 +0xA3B7 0xFF17 +0xA3B8 0xFF18 +0xA3B9 0xFF19 +0xA3BA 0xFF1A +0xA3BB 0xFF1B +0xA3BC 0xFF1C +0xA3BD 0xFF1D +0xA3BE 0xFF1E +0xA3BF 0xFF1F +0xA3C0 0xFF20 +0xA3C1 0xFF21 +0xA3C2 0xFF22 +0xA3C3 0xFF23 +0xA3C4 0xFF24 +0xA3C5 0xFF25 +0xA3C6 0xFF26 +0xA3C7 0xFF27 +0xA3C8 0xFF28 +0xA3C9 0xFF29 +0xA3CA 0xFF2A +0xA3CB 0xFF2B +0xA3CC 0xFF2C +0xA3CD 0xFF2D +0xA3CE 0xFF2E +0xA3CF 0xFF2F +0xA3D0 0xFF30 +0xA3D1 0xFF31 +0xA3D2 0xFF32 +0xA3D3 0xFF33 +0xA3D4 0xFF34 +0xA3D5 0xFF35 +0xA3D6 0xFF36 +0xA3D7 0xFF37 +0xA3D8 0xFF38 +0xA3D9 0xFF39 +0xA3DA 0xFF3A +0xA3DB 0xFF3B +0xA3DC 0xFF3C +0xA3DD 0xFF3D +0xA3DE 0xFF3E +0xA3DF 0xFF3F +0xA3E0 0xFF40 +0xA3E1 0xFF41 +0xA3E2 0xFF42 +0xA3E3 0xFF43 +0xA3E4 0xFF44 +0xA3E5 0xFF45 +0xA3E6 0xFF46 +0xA3E7 0xFF47 +0xA3E8 0xFF48 +0xA3E9 0xFF49 +0xA3EA 0xFF4A +0xA3EB 0xFF4B +0xA3EC 0xFF4C +0xA3ED 0xFF4D +0xA3EE 0xFF4E +0xA3EF 0xFF4F +0xA3F0 0xFF50 +0xA3F1 0xFF51 +0xA3F2 0xFF52 +0xA3F3 0xFF53 +0xA3F4 0xFF54 +0xA3F5 0xFF55 +0xA3F6 0xFF56 +0xA3F7 0xFF57 +0xA3F8 0xFF58 +0xA3F9 0xFF59 +0xA3FA 0xFF5A +0xA3FB 0xFF5B +0xA3FC 0xFF5C +0xA3FD 0xFF5D +0xA3FE 0xFFE3 +0xA4A1 0x3041 +0xA4A2 0x3042 +0xA4A3 0x3043 +0xA4A4 0x3044 +0xA4A5 0x3045 +0xA4A6 0x3046 +0xA4A7 0x3047 +0xA4A8 0x3048 +0xA4A9 0x3049 +0xA4AA 0x304A +0xA4AB 0x304B +0xA4AC 0x304C +0xA4AD 0x304D +0xA4AE 0x304E +0xA4AF 0x304F +0xA4B0 0x3050 +0xA4B1 0x3051 +0xA4B2 0x3052 +0xA4B3 0x3053 +0xA4B4 0x3054 +0xA4B5 0x3055 +0xA4B6 0x3056 +0xA4B7 0x3057 +0xA4B8 0x3058 +0xA4B9 0x3059 +0xA4BA 0x305A +0xA4BB 0x305B +0xA4BC 0x305C +0xA4BD 0x305D +0xA4BE 0x305E +0xA4BF 0x305F +0xA4C0 0x3060 +0xA4C1 0x3061 +0xA4C2 0x3062 +0xA4C3 0x3063 +0xA4C4 0x3064 +0xA4C5 0x3065 +0xA4C6 0x3066 +0xA4C7 0x3067 +0xA4C8 0x3068 +0xA4C9 0x3069 +0xA4CA 0x306A +0xA4CB 0x306B +0xA4CC 0x306C +0xA4CD 0x306D +0xA4CE 0x306E +0xA4CF 0x306F +0xA4D0 0x3070 +0xA4D1 0x3071 +0xA4D2 0x3072 +0xA4D3 0x3073 +0xA4D4 0x3074 +0xA4D5 0x3075 +0xA4D6 0x3076 +0xA4D7 0x3077 +0xA4D8 0x3078 +0xA4D9 0x3079 +0xA4DA 0x307A +0xA4DB 0x307B +0xA4DC 0x307C +0xA4DD 0x307D +0xA4DE 0x307E +0xA4DF 0x307F +0xA4E0 0x3080 +0xA4E1 0x3081 +0xA4E2 0x3082 +0xA4E3 0x3083 +0xA4E4 0x3084 +0xA4E5 0x3085 +0xA4E6 0x3086 +0xA4E7 0x3087 +0xA4E8 0x3088 +0xA4E9 0x3089 +0xA4EA 0x308A +0xA4EB 0x308B +0xA4EC 0x308C +0xA4ED 0x308D +0xA4EE 0x308E +0xA4EF 0x308F +0xA4F0 0x3090 +0xA4F1 0x3091 +0xA4F2 0x3092 +0xA4F3 0x3093 +0xA5A1 0x30A1 +0xA5A2 0x30A2 +0xA5A3 0x30A3 +0xA5A4 0x30A4 +0xA5A5 0x30A5 +0xA5A6 0x30A6 +0xA5A7 0x30A7 +0xA5A8 0x30A8 +0xA5A9 0x30A9 +0xA5AA 0x30AA +0xA5AB 0x30AB +0xA5AC 0x30AC +0xA5AD 0x30AD +0xA5AE 0x30AE +0xA5AF 0x30AF +0xA5B0 0x30B0 +0xA5B1 0x30B1 +0xA5B2 0x30B2 +0xA5B3 0x30B3 +0xA5B4 0x30B4 +0xA5B5 0x30B5 +0xA5B6 0x30B6 +0xA5B7 0x30B7 +0xA5B8 0x30B8 +0xA5B9 0x30B9 +0xA5BA 0x30BA +0xA5BB 0x30BB +0xA5BC 0x30BC +0xA5BD 0x30BD +0xA5BE 0x30BE +0xA5BF 0x30BF +0xA5C0 0x30C0 +0xA5C1 0x30C1 +0xA5C2 0x30C2 +0xA5C3 0x30C3 +0xA5C4 0x30C4 +0xA5C5 0x30C5 +0xA5C6 0x30C6 +0xA5C7 0x30C7 +0xA5C8 0x30C8 +0xA5C9 0x30C9 +0xA5CA 0x30CA +0xA5CB 0x30CB +0xA5CC 0x30CC +0xA5CD 0x30CD +0xA5CE 0x30CE +0xA5CF 0x30CF +0xA5D0 0x30D0 +0xA5D1 0x30D1 +0xA5D2 0x30D2 +0xA5D3 0x30D3 +0xA5D4 0x30D4 +0xA5D5 0x30D5 +0xA5D6 0x30D6 +0xA5D7 0x30D7 +0xA5D8 0x30D8 +0xA5D9 0x30D9 +0xA5DA 0x30DA +0xA5DB 0x30DB +0xA5DC 0x30DC +0xA5DD 0x30DD +0xA5DE 0x30DE +0xA5DF 0x30DF +0xA5E0 0x30E0 +0xA5E1 0x30E1 +0xA5E2 0x30E2 +0xA5E3 0x30E3 +0xA5E4 0x30E4 +0xA5E5 0x30E5 +0xA5E6 0x30E6 +0xA5E7 0x30E7 +0xA5E8 0x30E8 +0xA5E9 0x30E9 +0xA5EA 0x30EA +0xA5EB 0x30EB +0xA5EC 0x30EC +0xA5ED 0x30ED +0xA5EE 0x30EE +0xA5EF 0x30EF +0xA5F0 0x30F0 +0xA5F1 0x30F1 +0xA5F2 0x30F2 +0xA5F3 0x30F3 +0xA5F4 0x30F4 +0xA5F5 0x30F5 +0xA5F6 0x30F6 +0xA6A1 0x0391 +0xA6A2 0x0392 +0xA6A3 0x0393 +0xA6A4 0x0394 +0xA6A5 0x0395 +0xA6A6 0x0396 +0xA6A7 0x0397 +0xA6A8 0x0398 +0xA6A9 0x0399 +0xA6AA 0x039A +0xA6AB 0x039B +0xA6AC 0x039C +0xA6AD 0x039D +0xA6AE 0x039E +0xA6AF 0x039F +0xA6B0 0x03A0 +0xA6B1 0x03A1 +0xA6B2 0x03A3 +0xA6B3 0x03A4 +0xA6B4 0x03A5 +0xA6B5 0x03A6 +0xA6B6 0x03A7 +0xA6B7 0x03A8 +0xA6B8 0x03A9 +0xA6C1 0x03B1 +0xA6C2 0x03B2 +0xA6C3 0x03B3 +0xA6C4 0x03B4 +0xA6C5 0x03B5 +0xA6C6 0x03B6 +0xA6C7 0x03B7 +0xA6C8 0x03B8 +0xA6C9 0x03B9 +0xA6CA 0x03BA +0xA6CB 0x03BB +0xA6CC 0x03BC +0xA6CD 0x03BD +0xA6CE 0x03BE +0xA6CF 0x03BF +0xA6D0 0x03C0 +0xA6D1 0x03C1 +0xA6D2 0x03C3 +0xA6D3 0x03C4 +0xA6D4 0x03C5 +0xA6D5 0x03C6 +0xA6D6 0x03C7 +0xA6D7 0x03C8 +0xA6D8 0x03C9 +0xA6E0 0xFE35 +0xA6E1 0xFE36 +0xA6E2 0xFE39 +0xA6E3 0xFE3A +0xA6E4 0xFE3F +0xA6E5 0xFE40 +0xA6E6 0xFE3D +0xA6E7 0xFE3E +0xA6E8 0xFE41 +0xA6E9 0xFE42 +0xA6EA 0xFE43 +0xA6EB 0xFE44 +0xA6EE 0xFE3B +0xA6EF 0xFE3C +0xA6F0 0xFE37 +0xA6F1 0xFE38 +0xA6F2 0xFE31 +0xA6F4 0xFE33 +0xA6F5 0xFE34 +0xA7A1 0x0410 +0xA7A2 0x0411 +0xA7A3 0x0412 +0xA7A4 0x0413 +0xA7A5 0x0414 +0xA7A6 0x0415 +0xA7A7 0x0401 +0xA7A8 0x0416 +0xA7A9 0x0417 +0xA7AA 0x0418 +0xA7AB 0x0419 +0xA7AC 0x041A +0xA7AD 0x041B +0xA7AE 0x041C +0xA7AF 0x041D +0xA7B0 0x041E +0xA7B1 0x041F +0xA7B2 0x0420 +0xA7B3 0x0421 +0xA7B4 0x0422 +0xA7B5 0x0423 +0xA7B6 0x0424 +0xA7B7 0x0425 +0xA7B8 0x0426 +0xA7B9 0x0427 +0xA7BA 0x0428 +0xA7BB 0x0429 +0xA7BC 0x042A +0xA7BD 0x042B +0xA7BE 0x042C +0xA7BF 0x042D +0xA7C0 0x042E +0xA7C1 0x042F +0xA7D1 0x0430 +0xA7D2 0x0431 +0xA7D3 0x0432 +0xA7D4 0x0433 +0xA7D5 0x0434 +0xA7D6 0x0435 +0xA7D7 0x0451 +0xA7D8 0x0436 +0xA7D9 0x0437 +0xA7DA 0x0438 +0xA7DB 0x0439 +0xA7DC 0x043A +0xA7DD 0x043B +0xA7DE 0x043C +0xA7DF 0x043D +0xA7E0 0x043E +0xA7E1 0x043F +0xA7E2 0x0440 +0xA7E3 0x0441 +0xA7E4 0x0442 +0xA7E5 0x0443 +0xA7E6 0x0444 +0xA7E7 0x0445 +0xA7E8 0x0446 +0xA7E9 0x0447 +0xA7EA 0x0448 +0xA7EB 0x0449 +0xA7EC 0x044A +0xA7ED 0x044B +0xA7EE 0x044C +0xA7EF 0x044D +0xA7F0 0x044E +0xA7F1 0x044F +0xA840 0x02CA +0xA841 0x02CB +0xA842 0x02D9 +0xA843 0x2013 +0xA844 0x2015 +0xA845 0x2025 +0xA846 0x2035 +0xA847 0x2105 +0xA848 0x2109 +0xA849 0x2196 +0xA84A 0x2197 +0xA84B 0x2198 +0xA84C 0x2199 +0xA84D 0x2215 +0xA84E 0x221F +0xA84F 0x2223 +0xA850 0x2252 +0xA851 0x2266 +0xA852 0x2267 +0xA853 0x22BF +0xA854 0x2550 +0xA855 0x2551 +0xA856 0x2552 +0xA857 0x2553 +0xA858 0x2554 +0xA859 0x2555 +0xA85A 0x2556 +0xA85B 0x2557 +0xA85C 0x2558 +0xA85D 0x2559 +0xA85E 0x255A +0xA85F 0x255B +0xA860 0x255C +0xA861 0x255D +0xA862 0x255E +0xA863 0x255F +0xA864 0x2560 +0xA865 0x2561 +0xA866 0x2562 +0xA867 0x2563 +0xA868 0x2564 +0xA869 0x2565 +0xA86A 0x2566 +0xA86B 0x2567 +0xA86C 0x2568 +0xA86D 0x2569 +0xA86E 0x256A +0xA86F 0x256B +0xA870 0x256C +0xA871 0x256D +0xA872 0x256E +0xA873 0x256F +0xA874 0x2570 +0xA875 0x2571 +0xA876 0x2572 +0xA877 0x2573 +0xA878 0x2581 +0xA879 0x2582 +0xA87A 0x2583 +0xA87B 0x2584 +0xA87C 0x2585 +0xA87D 0x2586 +0xA87E 0x2587 +0xA880 0x2588 +0xA881 0x2589 +0xA882 0x258A +0xA883 0x258B +0xA884 0x258C +0xA885 0x258D +0xA886 0x258E +0xA887 0x258F +0xA888 0x2593 +0xA889 0x2594 +0xA88A 0x2595 +0xA88B 0x25BC +0xA88C 0x25BD +0xA88D 0x25E2 +0xA88E 0x25E3 +0xA88F 0x25E4 +0xA890 0x25E5 +0xA891 0x2609 +0xA892 0x2295 +0xA893 0x3012 +0xA894 0x301D +0xA895 0x301E +0xA8A1 0x0101 +0xA8A2 0x00E1 +0xA8A3 0x01CE +0xA8A4 0x00E0 +0xA8A5 0x0113 +0xA8A6 0x00E9 +0xA8A7 0x011B +0xA8A8 0x00E8 +0xA8A9 0x012B +0xA8AA 0x00ED +0xA8AB 0x01D0 +0xA8AC 0x00EC +0xA8AD 0x014D +0xA8AE 0x00F3 +0xA8AF 0x01D2 +0xA8B0 0x00F2 +0xA8B1 0x016B +0xA8B2 0x00FA +0xA8B3 0x01D4 +0xA8B4 0x00F9 +0xA8B5 0x01D6 +0xA8B6 0x01D8 +0xA8B7 0x01DA +0xA8B8 0x01DC +0xA8B9 0x00FC +0xA8BA 0x00EA +0xA8BB 0x0251 +0xA8BD 0x0144 +0xA8BE 0x0148 +0xA8C0 0x0261 +0xA8C5 0x3105 +0xA8C6 0x3106 +0xA8C7 0x3107 +0xA8C8 0x3108 +0xA8C9 0x3109 +0xA8CA 0x310A +0xA8CB 0x310B +0xA8CC 0x310C +0xA8CD 0x310D +0xA8CE 0x310E +0xA8CF 0x310F +0xA8D0 0x3110 +0xA8D1 0x3111 +0xA8D2 0x3112 +0xA8D3 0x3113 +0xA8D4 0x3114 +0xA8D5 0x3115 +0xA8D6 0x3116 +0xA8D7 0x3117 +0xA8D8 0x3118 +0xA8D9 0x3119 +0xA8DA 0x311A +0xA8DB 0x311B +0xA8DC 0x311C +0xA8DD 0x311D +0xA8DE 0x311E +0xA8DF 0x311F +0xA8E0 0x3120 +0xA8E1 0x3121 +0xA8E2 0x3122 +0xA8E3 0x3123 +0xA8E4 0x3124 +0xA8E5 0x3125 +0xA8E6 0x3126 +0xA8E7 0x3127 +0xA8E8 0x3128 +0xA8E9 0x3129 +0xA940 0x3021 +0xA941 0x3022 +0xA942 0x3023 +0xA943 0x3024 +0xA944 0x3025 +0xA945 0x3026 +0xA946 0x3027 +0xA947 0x3028 +0xA948 0x3029 +0xA949 0x32A3 +0xA94A 0x338E +0xA94B 0x338F +0xA94C 0x339C +0xA94D 0x339D +0xA94E 0x339E +0xA94F 0x33A1 +0xA950 0x33C4 +0xA951 0x33CE +0xA952 0x33D1 +0xA953 0x33D2 +0xA954 0x33D5 +0xA955 0xFE30 +0xA956 0xFFE2 +0xA957 0xFFE4 +0xA959 0x2121 +0xA95A 0x3231 +0xA95C 0x2010 +0xA960 0x30FC +0xA961 0x309B +0xA962 0x309C +0xA963 0x30FD +0xA964 0x30FE +0xA965 0x3006 +0xA966 0x309D +0xA967 0x309E +0xA968 0xFE49 +0xA969 0xFE4A +0xA96A 0xFE4B +0xA96B 0xFE4C +0xA96C 0xFE4D +0xA96D 0xFE4E +0xA96E 0xFE4F +0xA96F 0xFE50 +0xA970 0xFE51 +0xA971 0xFE52 +0xA972 0xFE54 +0xA973 0xFE55 +0xA974 0xFE56 +0xA975 0xFE57 +0xA976 0xFE59 +0xA977 0xFE5A +0xA978 0xFE5B +0xA979 0xFE5C +0xA97A 0xFE5D +0xA97B 0xFE5E +0xA97C 0xFE5F +0xA97D 0xFE60 +0xA97E 0xFE61 +0xA980 0xFE62 +0xA981 0xFE63 +0xA982 0xFE64 +0xA983 0xFE65 +0xA984 0xFE66 +0xA985 0xFE68 +0xA986 0xFE69 +0xA987 0xFE6A +0xA988 0xFE6B +0xA996 0x3007 +0xA9A4 0x2500 +0xA9A5 0x2501 +0xA9A6 0x2502 +0xA9A7 0x2503 +0xA9A8 0x2504 +0xA9A9 0x2505 +0xA9AA 0x2506 +0xA9AB 0x2507 +0xA9AC 0x2508 +0xA9AD 0x2509 +0xA9AE 0x250A +0xA9AF 0x250B +0xA9B0 0x250C +0xA9B1 0x250D +0xA9B2 0x250E +0xA9B3 0x250F +0xA9B4 0x2510 +0xA9B5 0x2511 +0xA9B6 0x2512 +0xA9B7 0x2513 +0xA9B8 0x2514 +0xA9B9 0x2515 +0xA9BA 0x2516 +0xA9BB 0x2517 +0xA9BC 0x2518 +0xA9BD 0x2519 +0xA9BE 0x251A +0xA9BF 0x251B +0xA9C0 0x251C +0xA9C1 0x251D +0xA9C2 0x251E +0xA9C3 0x251F +0xA9C4 0x2520 +0xA9C5 0x2521 +0xA9C6 0x2522 +0xA9C7 0x2523 +0xA9C8 0x2524 +0xA9C9 0x2525 +0xA9CA 0x2526 +0xA9CB 0x2527 +0xA9CC 0x2528 +0xA9CD 0x2529 +0xA9CE 0x252A +0xA9CF 0x252B +0xA9D0 0x252C +0xA9D1 0x252D +0xA9D2 0x252E +0xA9D3 0x252F +0xA9D4 0x2530 +0xA9D5 0x2531 +0xA9D6 0x2532 +0xA9D7 0x2533 +0xA9D8 0x2534 +0xA9D9 0x2535 +0xA9DA 0x2536 +0xA9DB 0x2537 +0xA9DC 0x2538 +0xA9DD 0x2539 +0xA9DE 0x253A +0xA9DF 0x253B +0xA9E0 0x253C +0xA9E1 0x253D +0xA9E2 0x253E +0xA9E3 0x253F +0xA9E4 0x2540 +0xA9E5 0x2541 +0xA9E6 0x2542 +0xA9E7 0x2543 +0xA9E8 0x2544 +0xA9E9 0x2545 +0xA9EA 0x2546 +0xA9EB 0x2547 +0xA9EC 0x2548 +0xA9ED 0x2549 +0xA9EE 0x254A +0xA9EF 0x254B +0xAA40 0x72DC +0xAA41 0x72DD +0xAA42 0x72DF +0xAA43 0x72E2 +0xAA44 0x72E3 +0xAA45 0x72E4 +0xAA46 0x72E5 +0xAA47 0x72E6 +0xAA48 0x72E7 +0xAA49 0x72EA +0xAA4A 0x72EB +0xAA4B 0x72F5 +0xAA4C 0x72F6 +0xAA4D 0x72F9 +0xAA4E 0x72FD +0xAA4F 0x72FE +0xAA50 0x72FF +0xAA51 0x7300 +0xAA52 0x7302 +0xAA53 0x7304 +0xAA54 0x7305 +0xAA55 0x7306 +0xAA56 0x7307 +0xAA57 0x7308 +0xAA58 0x7309 +0xAA59 0x730B +0xAA5A 0x730C +0xAA5B 0x730D +0xAA5C 0x730F +0xAA5D 0x7310 +0xAA5E 0x7311 +0xAA5F 0x7312 +0xAA60 0x7314 +0xAA61 0x7318 +0xAA62 0x7319 +0xAA63 0x731A +0xAA64 0x731F +0xAA65 0x7320 +0xAA66 0x7323 +0xAA67 0x7324 +0xAA68 0x7326 +0xAA69 0x7327 +0xAA6A 0x7328 +0xAA6B 0x732D +0xAA6C 0x732F +0xAA6D 0x7330 +0xAA6E 0x7332 +0xAA6F 0x7333 +0xAA70 0x7335 +0xAA71 0x7336 +0xAA72 0x733A +0xAA73 0x733B +0xAA74 0x733C +0xAA75 0x733D +0xAA76 0x7340 +0xAA77 0x7341 +0xAA78 0x7342 +0xAA79 0x7343 +0xAA7A 0x7344 +0xAA7B 0x7345 +0xAA7C 0x7346 +0xAA7D 0x7347 +0xAA7E 0x7348 +0xAA80 0x7349 +0xAA81 0x734A +0xAA82 0x734B +0xAA83 0x734C +0xAA84 0x734E +0xAA85 0x734F +0xAA86 0x7351 +0xAA87 0x7353 +0xAA88 0x7354 +0xAA89 0x7355 +0xAA8A 0x7356 +0xAA8B 0x7358 +0xAA8C 0x7359 +0xAA8D 0x735A +0xAA8E 0x735B +0xAA8F 0x735C +0xAA90 0x735D +0xAA91 0x735E +0xAA92 0x735F +0xAA93 0x7361 +0xAA94 0x7362 +0xAA95 0x7363 +0xAA96 0x7364 +0xAA97 0x7365 +0xAA98 0x7366 +0xAA99 0x7367 +0xAA9A 0x7368 +0xAA9B 0x7369 +0xAA9C 0x736A +0xAA9D 0x736B +0xAA9E 0x736E +0xAA9F 0x7370 +0xAAA0 0x7371 +0xAB40 0x7372 +0xAB41 0x7373 +0xAB42 0x7374 +0xAB43 0x7375 +0xAB44 0x7376 +0xAB45 0x7377 +0xAB46 0x7378 +0xAB47 0x7379 +0xAB48 0x737A +0xAB49 0x737B +0xAB4A 0x737C +0xAB4B 0x737D +0xAB4C 0x737F +0xAB4D 0x7380 +0xAB4E 0x7381 +0xAB4F 0x7382 +0xAB50 0x7383 +0xAB51 0x7385 +0xAB52 0x7386 +0xAB53 0x7388 +0xAB54 0x738A +0xAB55 0x738C +0xAB56 0x738D +0xAB57 0x738F +0xAB58 0x7390 +0xAB59 0x7392 +0xAB5A 0x7393 +0xAB5B 0x7394 +0xAB5C 0x7395 +0xAB5D 0x7397 +0xAB5E 0x7398 +0xAB5F 0x7399 +0xAB60 0x739A +0xAB61 0x739C +0xAB62 0x739D +0xAB63 0x739E +0xAB64 0x73A0 +0xAB65 0x73A1 +0xAB66 0x73A3 +0xAB67 0x73A4 +0xAB68 0x73A5 +0xAB69 0x73A6 +0xAB6A 0x73A7 +0xAB6B 0x73A8 +0xAB6C 0x73AA +0xAB6D 0x73AC +0xAB6E 0x73AD +0xAB6F 0x73B1 +0xAB70 0x73B4 +0xAB71 0x73B5 +0xAB72 0x73B6 +0xAB73 0x73B8 +0xAB74 0x73B9 +0xAB75 0x73BC +0xAB76 0x73BD +0xAB77 0x73BE +0xAB78 0x73BF +0xAB79 0x73C1 +0xAB7A 0x73C3 +0xAB7B 0x73C4 +0xAB7C 0x73C5 +0xAB7D 0x73C6 +0xAB7E 0x73C7 +0xAB80 0x73CB +0xAB81 0x73CC +0xAB82 0x73CE +0xAB83 0x73D2 +0xAB84 0x73D3 +0xAB85 0x73D4 +0xAB86 0x73D5 +0xAB87 0x73D6 +0xAB88 0x73D7 +0xAB89 0x73D8 +0xAB8A 0x73DA +0xAB8B 0x73DB +0xAB8C 0x73DC +0xAB8D 0x73DD +0xAB8E 0x73DF +0xAB8F 0x73E1 +0xAB90 0x73E2 +0xAB91 0x73E3 +0xAB92 0x73E4 +0xAB93 0x73E6 +0xAB94 0x73E8 +0xAB95 0x73EA +0xAB96 0x73EB +0xAB97 0x73EC +0xAB98 0x73EE +0xAB99 0x73EF +0xAB9A 0x73F0 +0xAB9B 0x73F1 +0xAB9C 0x73F3 +0xAB9D 0x73F4 +0xAB9E 0x73F5 +0xAB9F 0x73F6 +0xABA0 0x73F7 +0xAC40 0x73F8 +0xAC41 0x73F9 +0xAC42 0x73FA +0xAC43 0x73FB +0xAC44 0x73FC +0xAC45 0x73FD +0xAC46 0x73FE +0xAC47 0x73FF +0xAC48 0x7400 +0xAC49 0x7401 +0xAC4A 0x7402 +0xAC4B 0x7404 +0xAC4C 0x7407 +0xAC4D 0x7408 +0xAC4E 0x740B +0xAC4F 0x740C +0xAC50 0x740D +0xAC51 0x740E +0xAC52 0x7411 +0xAC53 0x7412 +0xAC54 0x7413 +0xAC55 0x7414 +0xAC56 0x7415 +0xAC57 0x7416 +0xAC58 0x7417 +0xAC59 0x7418 +0xAC5A 0x7419 +0xAC5B 0x741C +0xAC5C 0x741D +0xAC5D 0x741E +0xAC5E 0x741F +0xAC5F 0x7420 +0xAC60 0x7421 +0xAC61 0x7423 +0xAC62 0x7424 +0xAC63 0x7427 +0xAC64 0x7429 +0xAC65 0x742B +0xAC66 0x742D +0xAC67 0x742F +0xAC68 0x7431 +0xAC69 0x7432 +0xAC6A 0x7437 +0xAC6B 0x7438 +0xAC6C 0x7439 +0xAC6D 0x743A +0xAC6E 0x743B +0xAC6F 0x743D +0xAC70 0x743E +0xAC71 0x743F +0xAC72 0x7440 +0xAC73 0x7442 +0xAC74 0x7443 +0xAC75 0x7444 +0xAC76 0x7445 +0xAC77 0x7446 +0xAC78 0x7447 +0xAC79 0x7448 +0xAC7A 0x7449 +0xAC7B 0x744A +0xAC7C 0x744B +0xAC7D 0x744C +0xAC7E 0x744D +0xAC80 0x744E +0xAC81 0x744F +0xAC82 0x7450 +0xAC83 0x7451 +0xAC84 0x7452 +0xAC85 0x7453 +0xAC86 0x7454 +0xAC87 0x7456 +0xAC88 0x7458 +0xAC89 0x745D +0xAC8A 0x7460 +0xAC8B 0x7461 +0xAC8C 0x7462 +0xAC8D 0x7463 +0xAC8E 0x7464 +0xAC8F 0x7465 +0xAC90 0x7466 +0xAC91 0x7467 +0xAC92 0x7468 +0xAC93 0x7469 +0xAC94 0x746A +0xAC95 0x746B +0xAC96 0x746C +0xAC97 0x746E +0xAC98 0x746F +0xAC99 0x7471 +0xAC9A 0x7472 +0xAC9B 0x7473 +0xAC9C 0x7474 +0xAC9D 0x7475 +0xAC9E 0x7478 +0xAC9F 0x7479 +0xACA0 0x747A +0xAD40 0x747B +0xAD41 0x747C +0xAD42 0x747D +0xAD43 0x747F +0xAD44 0x7482 +0xAD45 0x7484 +0xAD46 0x7485 +0xAD47 0x7486 +0xAD48 0x7488 +0xAD49 0x7489 +0xAD4A 0x748A +0xAD4B 0x748C +0xAD4C 0x748D +0xAD4D 0x748F +0xAD4E 0x7491 +0xAD4F 0x7492 +0xAD50 0x7493 +0xAD51 0x7494 +0xAD52 0x7495 +0xAD53 0x7496 +0xAD54 0x7497 +0xAD55 0x7498 +0xAD56 0x7499 +0xAD57 0x749A +0xAD58 0x749B +0xAD59 0x749D +0xAD5A 0x749F +0xAD5B 0x74A0 +0xAD5C 0x74A1 +0xAD5D 0x74A2 +0xAD5E 0x74A3 +0xAD5F 0x74A4 +0xAD60 0x74A5 +0xAD61 0x74A6 +0xAD62 0x74AA +0xAD63 0x74AB +0xAD64 0x74AC +0xAD65 0x74AD +0xAD66 0x74AE +0xAD67 0x74AF +0xAD68 0x74B0 +0xAD69 0x74B1 +0xAD6A 0x74B2 +0xAD6B 0x74B3 +0xAD6C 0x74B4 +0xAD6D 0x74B5 +0xAD6E 0x74B6 +0xAD6F 0x74B7 +0xAD70 0x74B8 +0xAD71 0x74B9 +0xAD72 0x74BB +0xAD73 0x74BC +0xAD74 0x74BD +0xAD75 0x74BE +0xAD76 0x74BF +0xAD77 0x74C0 +0xAD78 0x74C1 +0xAD79 0x74C2 +0xAD7A 0x74C3 +0xAD7B 0x74C4 +0xAD7C 0x74C5 +0xAD7D 0x74C6 +0xAD7E 0x74C7 +0xAD80 0x74C8 +0xAD81 0x74C9 +0xAD82 0x74CA +0xAD83 0x74CB +0xAD84 0x74CC +0xAD85 0x74CD +0xAD86 0x74CE +0xAD87 0x74CF +0xAD88 0x74D0 +0xAD89 0x74D1 +0xAD8A 0x74D3 +0xAD8B 0x74D4 +0xAD8C 0x74D5 +0xAD8D 0x74D6 +0xAD8E 0x74D7 +0xAD8F 0x74D8 +0xAD90 0x74D9 +0xAD91 0x74DA +0xAD92 0x74DB +0xAD93 0x74DD +0xAD94 0x74DF +0xAD95 0x74E1 +0xAD96 0x74E5 +0xAD97 0x74E7 +0xAD98 0x74E8 +0xAD99 0x74E9 +0xAD9A 0x74EA +0xAD9B 0x74EB +0xAD9C 0x74EC +0xAD9D 0x74ED +0xAD9E 0x74F0 +0xAD9F 0x74F1 +0xADA0 0x74F2 +0xAE40 0x74F3 +0xAE41 0x74F5 +0xAE42 0x74F8 +0xAE43 0x74F9 +0xAE44 0x74FA +0xAE45 0x74FB +0xAE46 0x74FC +0xAE47 0x74FD +0xAE48 0x74FE +0xAE49 0x7500 +0xAE4A 0x7501 +0xAE4B 0x7502 +0xAE4C 0x7503 +0xAE4D 0x7505 +0xAE4E 0x7506 +0xAE4F 0x7507 +0xAE50 0x7508 +0xAE51 0x7509 +0xAE52 0x750A +0xAE53 0x750B +0xAE54 0x750C +0xAE55 0x750E +0xAE56 0x7510 +0xAE57 0x7512 +0xAE58 0x7514 +0xAE59 0x7515 +0xAE5A 0x7516 +0xAE5B 0x7517 +0xAE5C 0x751B +0xAE5D 0x751D +0xAE5E 0x751E +0xAE5F 0x7520 +0xAE60 0x7521 +0xAE61 0x7522 +0xAE62 0x7523 +0xAE63 0x7524 +0xAE64 0x7526 +0xAE65 0x7527 +0xAE66 0x752A +0xAE67 0x752E +0xAE68 0x7534 +0xAE69 0x7536 +0xAE6A 0x7539 +0xAE6B 0x753C +0xAE6C 0x753D +0xAE6D 0x753F +0xAE6E 0x7541 +0xAE6F 0x7542 +0xAE70 0x7543 +0xAE71 0x7544 +0xAE72 0x7546 +0xAE73 0x7547 +0xAE74 0x7549 +0xAE75 0x754A +0xAE76 0x754D +0xAE77 0x7550 +0xAE78 0x7551 +0xAE79 0x7552 +0xAE7A 0x7553 +0xAE7B 0x7555 +0xAE7C 0x7556 +0xAE7D 0x7557 +0xAE7E 0x7558 +0xAE80 0x755D +0xAE81 0x755E +0xAE82 0x755F +0xAE83 0x7560 +0xAE84 0x7561 +0xAE85 0x7562 +0xAE86 0x7563 +0xAE87 0x7564 +0xAE88 0x7567 +0xAE89 0x7568 +0xAE8A 0x7569 +0xAE8B 0x756B +0xAE8C 0x756C +0xAE8D 0x756D +0xAE8E 0x756E +0xAE8F 0x756F +0xAE90 0x7570 +0xAE91 0x7571 +0xAE92 0x7573 +0xAE93 0x7575 +0xAE94 0x7576 +0xAE95 0x7577 +0xAE96 0x757A +0xAE97 0x757B +0xAE98 0x757C +0xAE99 0x757D +0xAE9A 0x757E +0xAE9B 0x7580 +0xAE9C 0x7581 +0xAE9D 0x7582 +0xAE9E 0x7584 +0xAE9F 0x7585 +0xAEA0 0x7587 +0xAF40 0x7588 +0xAF41 0x7589 +0xAF42 0x758A +0xAF43 0x758C +0xAF44 0x758D +0xAF45 0x758E +0xAF46 0x7590 +0xAF47 0x7593 +0xAF48 0x7595 +0xAF49 0x7598 +0xAF4A 0x759B +0xAF4B 0x759C +0xAF4C 0x759E +0xAF4D 0x75A2 +0xAF4E 0x75A6 +0xAF4F 0x75A7 +0xAF50 0x75A8 +0xAF51 0x75A9 +0xAF52 0x75AA +0xAF53 0x75AD +0xAF54 0x75B6 +0xAF55 0x75B7 +0xAF56 0x75BA +0xAF57 0x75BB +0xAF58 0x75BF +0xAF59 0x75C0 +0xAF5A 0x75C1 +0xAF5B 0x75C6 +0xAF5C 0x75CB +0xAF5D 0x75CC +0xAF5E 0x75CE +0xAF5F 0x75CF +0xAF60 0x75D0 +0xAF61 0x75D1 +0xAF62 0x75D3 +0xAF63 0x75D7 +0xAF64 0x75D9 +0xAF65 0x75DA +0xAF66 0x75DC +0xAF67 0x75DD +0xAF68 0x75DF +0xAF69 0x75E0 +0xAF6A 0x75E1 +0xAF6B 0x75E5 +0xAF6C 0x75E9 +0xAF6D 0x75EC +0xAF6E 0x75ED +0xAF6F 0x75EE +0xAF70 0x75EF +0xAF71 0x75F2 +0xAF72 0x75F3 +0xAF73 0x75F5 +0xAF74 0x75F6 +0xAF75 0x75F7 +0xAF76 0x75F8 +0xAF77 0x75FA +0xAF78 0x75FB +0xAF79 0x75FD +0xAF7A 0x75FE +0xAF7B 0x7602 +0xAF7C 0x7604 +0xAF7D 0x7606 +0xAF7E 0x7607 +0xAF80 0x7608 +0xAF81 0x7609 +0xAF82 0x760B +0xAF83 0x760D +0xAF84 0x760E +0xAF85 0x760F +0xAF86 0x7611 +0xAF87 0x7612 +0xAF88 0x7613 +0xAF89 0x7614 +0xAF8A 0x7616 +0xAF8B 0x761A +0xAF8C 0x761C +0xAF8D 0x761D +0xAF8E 0x761E +0xAF8F 0x7621 +0xAF90 0x7623 +0xAF91 0x7627 +0xAF92 0x7628 +0xAF93 0x762C +0xAF94 0x762E +0xAF95 0x762F +0xAF96 0x7631 +0xAF97 0x7632 +0xAF98 0x7636 +0xAF99 0x7637 +0xAF9A 0x7639 +0xAF9B 0x763A +0xAF9C 0x763B +0xAF9D 0x763D +0xAF9E 0x7641 +0xAF9F 0x7642 +0xAFA0 0x7644 +0xB040 0x7645 +0xB041 0x7646 +0xB042 0x7647 +0xB043 0x7648 +0xB044 0x7649 +0xB045 0x764A +0xB046 0x764B +0xB047 0x764E +0xB048 0x764F +0xB049 0x7650 +0xB04A 0x7651 +0xB04B 0x7652 +0xB04C 0x7653 +0xB04D 0x7655 +0xB04E 0x7657 +0xB04F 0x7658 +0xB050 0x7659 +0xB051 0x765A +0xB052 0x765B +0xB053 0x765D +0xB054 0x765F +0xB055 0x7660 +0xB056 0x7661 +0xB057 0x7662 +0xB058 0x7664 +0xB059 0x7665 +0xB05A 0x7666 +0xB05B 0x7667 +0xB05C 0x7668 +0xB05D 0x7669 +0xB05E 0x766A +0xB05F 0x766C +0xB060 0x766D +0xB061 0x766E +0xB062 0x7670 +0xB063 0x7671 +0xB064 0x7672 +0xB065 0x7673 +0xB066 0x7674 +0xB067 0x7675 +0xB068 0x7676 +0xB069 0x7677 +0xB06A 0x7679 +0xB06B 0x767A +0xB06C 0x767C +0xB06D 0x767F +0xB06E 0x7680 +0xB06F 0x7681 +0xB070 0x7683 +0xB071 0x7685 +0xB072 0x7689 +0xB073 0x768A +0xB074 0x768C +0xB075 0x768D +0xB076 0x768F +0xB077 0x7690 +0xB078 0x7692 +0xB079 0x7694 +0xB07A 0x7695 +0xB07B 0x7697 +0xB07C 0x7698 +0xB07D 0x769A +0xB07E 0x769B +0xB080 0x769C +0xB081 0x769D +0xB082 0x769E +0xB083 0x769F +0xB084 0x76A0 +0xB085 0x76A1 +0xB086 0x76A2 +0xB087 0x76A3 +0xB088 0x76A5 +0xB089 0x76A6 +0xB08A 0x76A7 +0xB08B 0x76A8 +0xB08C 0x76A9 +0xB08D 0x76AA +0xB08E 0x76AB +0xB08F 0x76AC +0xB090 0x76AD +0xB091 0x76AF +0xB092 0x76B0 +0xB093 0x76B3 +0xB094 0x76B5 +0xB095 0x76B6 +0xB096 0x76B7 +0xB097 0x76B8 +0xB098 0x76B9 +0xB099 0x76BA +0xB09A 0x76BB +0xB09B 0x76BC +0xB09C 0x76BD +0xB09D 0x76BE +0xB09E 0x76C0 +0xB09F 0x76C1 +0xB0A0 0x76C3 +0xB0A1 0x554A +0xB0A2 0x963F +0xB0A3 0x57C3 +0xB0A4 0x6328 +0xB0A5 0x54CE +0xB0A6 0x5509 +0xB0A7 0x54C0 +0xB0A8 0x7691 +0xB0A9 0x764C +0xB0AA 0x853C +0xB0AB 0x77EE +0xB0AC 0x827E +0xB0AD 0x788D +0xB0AE 0x7231 +0xB0AF 0x9698 +0xB0B0 0x978D +0xB0B1 0x6C28 +0xB0B2 0x5B89 +0xB0B3 0x4FFA +0xB0B4 0x6309 +0xB0B5 0x6697 +0xB0B6 0x5CB8 +0xB0B7 0x80FA +0xB0B8 0x6848 +0xB0B9 0x80AE +0xB0BA 0x6602 +0xB0BB 0x76CE +0xB0BC 0x51F9 +0xB0BD 0x6556 +0xB0BE 0x71AC +0xB0BF 0x7FF1 +0xB0C0 0x8884 +0xB0C1 0x50B2 +0xB0C2 0x5965 +0xB0C3 0x61CA +0xB0C4 0x6FB3 +0xB0C5 0x82AD +0xB0C6 0x634C +0xB0C7 0x6252 +0xB0C8 0x53ED +0xB0C9 0x5427 +0xB0CA 0x7B06 +0xB0CB 0x516B +0xB0CC 0x75A4 +0xB0CD 0x5DF4 +0xB0CE 0x62D4 +0xB0CF 0x8DCB +0xB0D0 0x9776 +0xB0D1 0x628A +0xB0D2 0x8019 +0xB0D3 0x575D +0xB0D4 0x9738 +0xB0D5 0x7F62 +0xB0D6 0x7238 +0xB0D7 0x767D +0xB0D8 0x67CF +0xB0D9 0x767E +0xB0DA 0x6446 +0xB0DB 0x4F70 +0xB0DC 0x8D25 +0xB0DD 0x62DC +0xB0DE 0x7A17 +0xB0DF 0x6591 +0xB0E0 0x73ED +0xB0E1 0x642C +0xB0E2 0x6273 +0xB0E3 0x822C +0xB0E4 0x9881 +0xB0E5 0x677F +0xB0E6 0x7248 +0xB0E7 0x626E +0xB0E8 0x62CC +0xB0E9 0x4F34 +0xB0EA 0x74E3 +0xB0EB 0x534A +0xB0EC 0x529E +0xB0ED 0x7ECA +0xB0EE 0x90A6 +0xB0EF 0x5E2E +0xB0F0 0x6886 +0xB0F1 0x699C +0xB0F2 0x8180 +0xB0F3 0x7ED1 +0xB0F4 0x68D2 +0xB0F5 0x78C5 +0xB0F6 0x868C +0xB0F7 0x9551 +0xB0F8 0x508D +0xB0F9 0x8C24 +0xB0FA 0x82DE +0xB0FB 0x80DE +0xB0FC 0x5305 +0xB0FD 0x8912 +0xB0FE 0x5265 +0xB140 0x76C4 +0xB141 0x76C7 +0xB142 0x76C9 +0xB143 0x76CB +0xB144 0x76CC +0xB145 0x76D3 +0xB146 0x76D5 +0xB147 0x76D9 +0xB148 0x76DA +0xB149 0x76DC +0xB14A 0x76DD +0xB14B 0x76DE +0xB14C 0x76E0 +0xB14D 0x76E1 +0xB14E 0x76E2 +0xB14F 0x76E3 +0xB150 0x76E4 +0xB151 0x76E6 +0xB152 0x76E7 +0xB153 0x76E8 +0xB154 0x76E9 +0xB155 0x76EA +0xB156 0x76EB +0xB157 0x76EC +0xB158 0x76ED +0xB159 0x76F0 +0xB15A 0x76F3 +0xB15B 0x76F5 +0xB15C 0x76F6 +0xB15D 0x76F7 +0xB15E 0x76FA +0xB15F 0x76FB +0xB160 0x76FD +0xB161 0x76FF +0xB162 0x7700 +0xB163 0x7702 +0xB164 0x7703 +0xB165 0x7705 +0xB166 0x7706 +0xB167 0x770A +0xB168 0x770C +0xB169 0x770E +0xB16A 0x770F +0xB16B 0x7710 +0xB16C 0x7711 +0xB16D 0x7712 +0xB16E 0x7713 +0xB16F 0x7714 +0xB170 0x7715 +0xB171 0x7716 +0xB172 0x7717 +0xB173 0x7718 +0xB174 0x771B +0xB175 0x771C +0xB176 0x771D +0xB177 0x771E +0xB178 0x7721 +0xB179 0x7723 +0xB17A 0x7724 +0xB17B 0x7725 +0xB17C 0x7727 +0xB17D 0x772A +0xB17E 0x772B +0xB180 0x772C +0xB181 0x772E +0xB182 0x7730 +0xB183 0x7731 +0xB184 0x7732 +0xB185 0x7733 +0xB186 0x7734 +0xB187 0x7739 +0xB188 0x773B +0xB189 0x773D +0xB18A 0x773E +0xB18B 0x773F +0xB18C 0x7742 +0xB18D 0x7744 +0xB18E 0x7745 +0xB18F 0x7746 +0xB190 0x7748 +0xB191 0x7749 +0xB192 0x774A +0xB193 0x774B +0xB194 0x774C +0xB195 0x774D +0xB196 0x774E +0xB197 0x774F +0xB198 0x7752 +0xB199 0x7753 +0xB19A 0x7754 +0xB19B 0x7755 +0xB19C 0x7756 +0xB19D 0x7757 +0xB19E 0x7758 +0xB19F 0x7759 +0xB1A0 0x775C +0xB1A1 0x8584 +0xB1A2 0x96F9 +0xB1A3 0x4FDD +0xB1A4 0x5821 +0xB1A5 0x9971 +0xB1A6 0x5B9D +0xB1A7 0x62B1 +0xB1A8 0x62A5 +0xB1A9 0x66B4 +0xB1AA 0x8C79 +0xB1AB 0x9C8D +0xB1AC 0x7206 +0xB1AD 0x676F +0xB1AE 0x7891 +0xB1AF 0x60B2 +0xB1B0 0x5351 +0xB1B1 0x5317 +0xB1B2 0x8F88 +0xB1B3 0x80CC +0xB1B4 0x8D1D +0xB1B5 0x94A1 +0xB1B6 0x500D +0xB1B7 0x72C8 +0xB1B8 0x5907 +0xB1B9 0x60EB +0xB1BA 0x7119 +0xB1BB 0x88AB +0xB1BC 0x5954 +0xB1BD 0x82EF +0xB1BE 0x672C +0xB1BF 0x7B28 +0xB1C0 0x5D29 +0xB1C1 0x7EF7 +0xB1C2 0x752D +0xB1C3 0x6CF5 +0xB1C4 0x8E66 +0xB1C5 0x8FF8 +0xB1C6 0x903C +0xB1C7 0x9F3B +0xB1C8 0x6BD4 +0xB1C9 0x9119 +0xB1CA 0x7B14 +0xB1CB 0x5F7C +0xB1CC 0x78A7 +0xB1CD 0x84D6 +0xB1CE 0x853D +0xB1CF 0x6BD5 +0xB1D0 0x6BD9 +0xB1D1 0x6BD6 +0xB1D2 0x5E01 +0xB1D3 0x5E87 +0xB1D4 0x75F9 +0xB1D5 0x95ED +0xB1D6 0x655D +0xB1D7 0x5F0A +0xB1D8 0x5FC5 +0xB1D9 0x8F9F +0xB1DA 0x58C1 +0xB1DB 0x81C2 +0xB1DC 0x907F +0xB1DD 0x965B +0xB1DE 0x97AD +0xB1DF 0x8FB9 +0xB1E0 0x7F16 +0xB1E1 0x8D2C +0xB1E2 0x6241 +0xB1E3 0x4FBF +0xB1E4 0x53D8 +0xB1E5 0x535E +0xB1E6 0x8FA8 +0xB1E7 0x8FA9 +0xB1E8 0x8FAB +0xB1E9 0x904D +0xB1EA 0x6807 +0xB1EB 0x5F6A +0xB1EC 0x8198 +0xB1ED 0x8868 +0xB1EE 0x9CD6 +0xB1EF 0x618B +0xB1F0 0x522B +0xB1F1 0x762A +0xB1F2 0x5F6C +0xB1F3 0x658C +0xB1F4 0x6FD2 +0xB1F5 0x6EE8 +0xB1F6 0x5BBE +0xB1F7 0x6448 +0xB1F8 0x5175 +0xB1F9 0x51B0 +0xB1FA 0x67C4 +0xB1FB 0x4E19 +0xB1FC 0x79C9 +0xB1FD 0x997C +0xB1FE 0x70B3 +0xB240 0x775D +0xB241 0x775E +0xB242 0x775F +0xB243 0x7760 +0xB244 0x7764 +0xB245 0x7767 +0xB246 0x7769 +0xB247 0x776A +0xB248 0x776D +0xB249 0x776E +0xB24A 0x776F +0xB24B 0x7770 +0xB24C 0x7771 +0xB24D 0x7772 +0xB24E 0x7773 +0xB24F 0x7774 +0xB250 0x7775 +0xB251 0x7776 +0xB252 0x7777 +0xB253 0x7778 +0xB254 0x777A +0xB255 0x777B +0xB256 0x777C +0xB257 0x7781 +0xB258 0x7782 +0xB259 0x7783 +0xB25A 0x7786 +0xB25B 0x7787 +0xB25C 0x7788 +0xB25D 0x7789 +0xB25E 0x778A +0xB25F 0x778B +0xB260 0x778F +0xB261 0x7790 +0xB262 0x7793 +0xB263 0x7794 +0xB264 0x7795 +0xB265 0x7796 +0xB266 0x7797 +0xB267 0x7798 +0xB268 0x7799 +0xB269 0x779A +0xB26A 0x779B +0xB26B 0x779C +0xB26C 0x779D +0xB26D 0x779E +0xB26E 0x77A1 +0xB26F 0x77A3 +0xB270 0x77A4 +0xB271 0x77A6 +0xB272 0x77A8 +0xB273 0x77AB +0xB274 0x77AD +0xB275 0x77AE +0xB276 0x77AF +0xB277 0x77B1 +0xB278 0x77B2 +0xB279 0x77B4 +0xB27A 0x77B6 +0xB27B 0x77B7 +0xB27C 0x77B8 +0xB27D 0x77B9 +0xB27E 0x77BA +0xB280 0x77BC +0xB281 0x77BE +0xB282 0x77C0 +0xB283 0x77C1 +0xB284 0x77C2 +0xB285 0x77C3 +0xB286 0x77C4 +0xB287 0x77C5 +0xB288 0x77C6 +0xB289 0x77C7 +0xB28A 0x77C8 +0xB28B 0x77C9 +0xB28C 0x77CA +0xB28D 0x77CB +0xB28E 0x77CC +0xB28F 0x77CE +0xB290 0x77CF +0xB291 0x77D0 +0xB292 0x77D1 +0xB293 0x77D2 +0xB294 0x77D3 +0xB295 0x77D4 +0xB296 0x77D5 +0xB297 0x77D6 +0xB298 0x77D8 +0xB299 0x77D9 +0xB29A 0x77DA +0xB29B 0x77DD +0xB29C 0x77DE +0xB29D 0x77DF +0xB29E 0x77E0 +0xB29F 0x77E1 +0xB2A0 0x77E4 +0xB2A1 0x75C5 +0xB2A2 0x5E76 +0xB2A3 0x73BB +0xB2A4 0x83E0 +0xB2A5 0x64AD +0xB2A6 0x62E8 +0xB2A7 0x94B5 +0xB2A8 0x6CE2 +0xB2A9 0x535A +0xB2AA 0x52C3 +0xB2AB 0x640F +0xB2AC 0x94C2 +0xB2AD 0x7B94 +0xB2AE 0x4F2F +0xB2AF 0x5E1B +0xB2B0 0x8236 +0xB2B1 0x8116 +0xB2B2 0x818A +0xB2B3 0x6E24 +0xB2B4 0x6CCA +0xB2B5 0x9A73 +0xB2B6 0x6355 +0xB2B7 0x535C +0xB2B8 0x54FA +0xB2B9 0x8865 +0xB2BA 0x57E0 +0xB2BB 0x4E0D +0xB2BC 0x5E03 +0xB2BD 0x6B65 +0xB2BE 0x7C3F +0xB2BF 0x90E8 +0xB2C0 0x6016 +0xB2C1 0x64E6 +0xB2C2 0x731C +0xB2C3 0x88C1 +0xB2C4 0x6750 +0xB2C5 0x624D +0xB2C6 0x8D22 +0xB2C7 0x776C +0xB2C8 0x8E29 +0xB2C9 0x91C7 +0xB2CA 0x5F69 +0xB2CB 0x83DC +0xB2CC 0x8521 +0xB2CD 0x9910 +0xB2CE 0x53C2 +0xB2CF 0x8695 +0xB2D0 0x6B8B +0xB2D1 0x60ED +0xB2D2 0x60E8 +0xB2D3 0x707F +0xB2D4 0x82CD +0xB2D5 0x8231 +0xB2D6 0x4ED3 +0xB2D7 0x6CA7 +0xB2D8 0x85CF +0xB2D9 0x64CD +0xB2DA 0x7CD9 +0xB2DB 0x69FD +0xB2DC 0x66F9 +0xB2DD 0x8349 +0xB2DE 0x5395 +0xB2DF 0x7B56 +0xB2E0 0x4FA7 +0xB2E1 0x518C +0xB2E2 0x6D4B +0xB2E3 0x5C42 +0xB2E4 0x8E6D +0xB2E5 0x63D2 +0xB2E6 0x53C9 +0xB2E7 0x832C +0xB2E8 0x8336 +0xB2E9 0x67E5 +0xB2EA 0x78B4 +0xB2EB 0x643D +0xB2EC 0x5BDF +0xB2ED 0x5C94 +0xB2EE 0x5DEE +0xB2EF 0x8BE7 +0xB2F0 0x62C6 +0xB2F1 0x67F4 +0xB2F2 0x8C7A +0xB2F3 0x6400 +0xB2F4 0x63BA +0xB2F5 0x8749 +0xB2F6 0x998B +0xB2F7 0x8C17 +0xB2F8 0x7F20 +0xB2F9 0x94F2 +0xB2FA 0x4EA7 +0xB2FB 0x9610 +0xB2FC 0x98A4 +0xB2FD 0x660C +0xB2FE 0x7316 +0xB340 0x77E6 +0xB341 0x77E8 +0xB342 0x77EA +0xB343 0x77EF +0xB344 0x77F0 +0xB345 0x77F1 +0xB346 0x77F2 +0xB347 0x77F4 +0xB348 0x77F5 +0xB349 0x77F7 +0xB34A 0x77F9 +0xB34B 0x77FA +0xB34C 0x77FB +0xB34D 0x77FC +0xB34E 0x7803 +0xB34F 0x7804 +0xB350 0x7805 +0xB351 0x7806 +0xB352 0x7807 +0xB353 0x7808 +0xB354 0x780A +0xB355 0x780B +0xB356 0x780E +0xB357 0x780F +0xB358 0x7810 +0xB359 0x7813 +0xB35A 0x7815 +0xB35B 0x7819 +0xB35C 0x781B +0xB35D 0x781E +0xB35E 0x7820 +0xB35F 0x7821 +0xB360 0x7822 +0xB361 0x7824 +0xB362 0x7828 +0xB363 0x782A +0xB364 0x782B +0xB365 0x782E +0xB366 0x782F +0xB367 0x7831 +0xB368 0x7832 +0xB369 0x7833 +0xB36A 0x7835 +0xB36B 0x7836 +0xB36C 0x783D +0xB36D 0x783F +0xB36E 0x7841 +0xB36F 0x7842 +0xB370 0x7843 +0xB371 0x7844 +0xB372 0x7846 +0xB373 0x7848 +0xB374 0x7849 +0xB375 0x784A +0xB376 0x784B +0xB377 0x784D +0xB378 0x784F +0xB379 0x7851 +0xB37A 0x7853 +0xB37B 0x7854 +0xB37C 0x7858 +0xB37D 0x7859 +0xB37E 0x785A +0xB380 0x785B +0xB381 0x785C +0xB382 0x785E +0xB383 0x785F +0xB384 0x7860 +0xB385 0x7861 +0xB386 0x7862 +0xB387 0x7863 +0xB388 0x7864 +0xB389 0x7865 +0xB38A 0x7866 +0xB38B 0x7867 +0xB38C 0x7868 +0xB38D 0x7869 +0xB38E 0x786F +0xB38F 0x7870 +0xB390 0x7871 +0xB391 0x7872 +0xB392 0x7873 +0xB393 0x7874 +0xB394 0x7875 +0xB395 0x7876 +0xB396 0x7878 +0xB397 0x7879 +0xB398 0x787A +0xB399 0x787B +0xB39A 0x787D +0xB39B 0x787E +0xB39C 0x787F +0xB39D 0x7880 +0xB39E 0x7881 +0xB39F 0x7882 +0xB3A0 0x7883 +0xB3A1 0x573A +0xB3A2 0x5C1D +0xB3A3 0x5E38 +0xB3A4 0x957F +0xB3A5 0x507F +0xB3A6 0x80A0 +0xB3A7 0x5382 +0xB3A8 0x655E +0xB3A9 0x7545 +0xB3AA 0x5531 +0xB3AB 0x5021 +0xB3AC 0x8D85 +0xB3AD 0x6284 +0xB3AE 0x949E +0xB3AF 0x671D +0xB3B0 0x5632 +0xB3B1 0x6F6E +0xB3B2 0x5DE2 +0xB3B3 0x5435 +0xB3B4 0x7092 +0xB3B5 0x8F66 +0xB3B6 0x626F +0xB3B7 0x64A4 +0xB3B8 0x63A3 +0xB3B9 0x5F7B +0xB3BA 0x6F88 +0xB3BB 0x90F4 +0xB3BC 0x81E3 +0xB3BD 0x8FB0 +0xB3BE 0x5C18 +0xB3BF 0x6668 +0xB3C0 0x5FF1 +0xB3C1 0x6C89 +0xB3C2 0x9648 +0xB3C3 0x8D81 +0xB3C4 0x886C +0xB3C5 0x6491 +0xB3C6 0x79F0 +0xB3C7 0x57CE +0xB3C8 0x6A59 +0xB3C9 0x6210 +0xB3CA 0x5448 +0xB3CB 0x4E58 +0xB3CC 0x7A0B +0xB3CD 0x60E9 +0xB3CE 0x6F84 +0xB3CF 0x8BDA +0xB3D0 0x627F +0xB3D1 0x901E +0xB3D2 0x9A8B +0xB3D3 0x79E4 +0xB3D4 0x5403 +0xB3D5 0x75F4 +0xB3D6 0x6301 +0xB3D7 0x5319 +0xB3D8 0x6C60 +0xB3D9 0x8FDF +0xB3DA 0x5F1B +0xB3DB 0x9A70 +0xB3DC 0x803B +0xB3DD 0x9F7F +0xB3DE 0x4F88 +0xB3DF 0x5C3A +0xB3E0 0x8D64 +0xB3E1 0x7FC5 +0xB3E2 0x65A5 +0xB3E3 0x70BD +0xB3E4 0x5145 +0xB3E5 0x51B2 +0xB3E6 0x866B +0xB3E7 0x5D07 +0xB3E8 0x5BA0 +0xB3E9 0x62BD +0xB3EA 0x916C +0xB3EB 0x7574 +0xB3EC 0x8E0C +0xB3ED 0x7A20 +0xB3EE 0x6101 +0xB3EF 0x7B79 +0xB3F0 0x4EC7 +0xB3F1 0x7EF8 +0xB3F2 0x7785 +0xB3F3 0x4E11 +0xB3F4 0x81ED +0xB3F5 0x521D +0xB3F6 0x51FA +0xB3F7 0x6A71 +0xB3F8 0x53A8 +0xB3F9 0x8E87 +0xB3FA 0x9504 +0xB3FB 0x96CF +0xB3FC 0x6EC1 +0xB3FD 0x9664 +0xB3FE 0x695A +0xB440 0x7884 +0xB441 0x7885 +0xB442 0x7886 +0xB443 0x7888 +0xB444 0x788A +0xB445 0x788B +0xB446 0x788F +0xB447 0x7890 +0xB448 0x7892 +0xB449 0x7894 +0xB44A 0x7895 +0xB44B 0x7896 +0xB44C 0x7899 +0xB44D 0x789D +0xB44E 0x789E +0xB44F 0x78A0 +0xB450 0x78A2 +0xB451 0x78A4 +0xB452 0x78A6 +0xB453 0x78A8 +0xB454 0x78A9 +0xB455 0x78AA +0xB456 0x78AB +0xB457 0x78AC +0xB458 0x78AD +0xB459 0x78AE +0xB45A 0x78AF +0xB45B 0x78B5 +0xB45C 0x78B6 +0xB45D 0x78B7 +0xB45E 0x78B8 +0xB45F 0x78BA +0xB460 0x78BB +0xB461 0x78BC +0xB462 0x78BD +0xB463 0x78BF +0xB464 0x78C0 +0xB465 0x78C2 +0xB466 0x78C3 +0xB467 0x78C4 +0xB468 0x78C6 +0xB469 0x78C7 +0xB46A 0x78C8 +0xB46B 0x78CC +0xB46C 0x78CD +0xB46D 0x78CE +0xB46E 0x78CF +0xB46F 0x78D1 +0xB470 0x78D2 +0xB471 0x78D3 +0xB472 0x78D6 +0xB473 0x78D7 +0xB474 0x78D8 +0xB475 0x78DA +0xB476 0x78DB +0xB477 0x78DC +0xB478 0x78DD +0xB479 0x78DE +0xB47A 0x78DF +0xB47B 0x78E0 +0xB47C 0x78E1 +0xB47D 0x78E2 +0xB47E 0x78E3 +0xB480 0x78E4 +0xB481 0x78E5 +0xB482 0x78E6 +0xB483 0x78E7 +0xB484 0x78E9 +0xB485 0x78EA +0xB486 0x78EB +0xB487 0x78ED +0xB488 0x78EE +0xB489 0x78EF +0xB48A 0x78F0 +0xB48B 0x78F1 +0xB48C 0x78F3 +0xB48D 0x78F5 +0xB48E 0x78F6 +0xB48F 0x78F8 +0xB490 0x78F9 +0xB491 0x78FB +0xB492 0x78FC +0xB493 0x78FD +0xB494 0x78FE +0xB495 0x78FF +0xB496 0x7900 +0xB497 0x7902 +0xB498 0x7903 +0xB499 0x7904 +0xB49A 0x7906 +0xB49B 0x7907 +0xB49C 0x7908 +0xB49D 0x7909 +0xB49E 0x790A +0xB49F 0x790B +0xB4A0 0x790C +0xB4A1 0x7840 +0xB4A2 0x50A8 +0xB4A3 0x77D7 +0xB4A4 0x6410 +0xB4A5 0x89E6 +0xB4A6 0x5904 +0xB4A7 0x63E3 +0xB4A8 0x5DDD +0xB4A9 0x7A7F +0xB4AA 0x693D +0xB4AB 0x4F20 +0xB4AC 0x8239 +0xB4AD 0x5598 +0xB4AE 0x4E32 +0xB4AF 0x75AE +0xB4B0 0x7A97 +0xB4B1 0x5E62 +0xB4B2 0x5E8A +0xB4B3 0x95EF +0xB4B4 0x521B +0xB4B5 0x5439 +0xB4B6 0x708A +0xB4B7 0x6376 +0xB4B8 0x9524 +0xB4B9 0x5782 +0xB4BA 0x6625 +0xB4BB 0x693F +0xB4BC 0x9187 +0xB4BD 0x5507 +0xB4BE 0x6DF3 +0xB4BF 0x7EAF +0xB4C0 0x8822 +0xB4C1 0x6233 +0xB4C2 0x7EF0 +0xB4C3 0x75B5 +0xB4C4 0x8328 +0xB4C5 0x78C1 +0xB4C6 0x96CC +0xB4C7 0x8F9E +0xB4C8 0x6148 +0xB4C9 0x74F7 +0xB4CA 0x8BCD +0xB4CB 0x6B64 +0xB4CC 0x523A +0xB4CD 0x8D50 +0xB4CE 0x6B21 +0xB4CF 0x806A +0xB4D0 0x8471 +0xB4D1 0x56F1 +0xB4D2 0x5306 +0xB4D3 0x4ECE +0xB4D4 0x4E1B +0xB4D5 0x51D1 +0xB4D6 0x7C97 +0xB4D7 0x918B +0xB4D8 0x7C07 +0xB4D9 0x4FC3 +0xB4DA 0x8E7F +0xB4DB 0x7BE1 +0xB4DC 0x7A9C +0xB4DD 0x6467 +0xB4DE 0x5D14 +0xB4DF 0x50AC +0xB4E0 0x8106 +0xB4E1 0x7601 +0xB4E2 0x7CB9 +0xB4E3 0x6DEC +0xB4E4 0x7FE0 +0xB4E5 0x6751 +0xB4E6 0x5B58 +0xB4E7 0x5BF8 +0xB4E8 0x78CB +0xB4E9 0x64AE +0xB4EA 0x6413 +0xB4EB 0x63AA +0xB4EC 0x632B +0xB4ED 0x9519 +0xB4EE 0x642D +0xB4EF 0x8FBE +0xB4F0 0x7B54 +0xB4F1 0x7629 +0xB4F2 0x6253 +0xB4F3 0x5927 +0xB4F4 0x5446 +0xB4F5 0x6B79 +0xB4F6 0x50A3 +0xB4F7 0x6234 +0xB4F8 0x5E26 +0xB4F9 0x6B86 +0xB4FA 0x4EE3 +0xB4FB 0x8D37 +0xB4FC 0x888B +0xB4FD 0x5F85 +0xB4FE 0x902E +0xB540 0x790D +0xB541 0x790E +0xB542 0x790F +0xB543 0x7910 +0xB544 0x7911 +0xB545 0x7912 +0xB546 0x7914 +0xB547 0x7915 +0xB548 0x7916 +0xB549 0x7917 +0xB54A 0x7918 +0xB54B 0x7919 +0xB54C 0x791A +0xB54D 0x791B +0xB54E 0x791C +0xB54F 0x791D +0xB550 0x791F +0xB551 0x7920 +0xB552 0x7921 +0xB553 0x7922 +0xB554 0x7923 +0xB555 0x7925 +0xB556 0x7926 +0xB557 0x7927 +0xB558 0x7928 +0xB559 0x7929 +0xB55A 0x792A +0xB55B 0x792B +0xB55C 0x792C +0xB55D 0x792D +0xB55E 0x792E +0xB55F 0x792F +0xB560 0x7930 +0xB561 0x7931 +0xB562 0x7932 +0xB563 0x7933 +0xB564 0x7935 +0xB565 0x7936 +0xB566 0x7937 +0xB567 0x7938 +0xB568 0x7939 +0xB569 0x793D +0xB56A 0x793F +0xB56B 0x7942 +0xB56C 0x7943 +0xB56D 0x7944 +0xB56E 0x7945 +0xB56F 0x7947 +0xB570 0x794A +0xB571 0x794B +0xB572 0x794C +0xB573 0x794D +0xB574 0x794E +0xB575 0x794F +0xB576 0x7950 +0xB577 0x7951 +0xB578 0x7952 +0xB579 0x7954 +0xB57A 0x7955 +0xB57B 0x7958 +0xB57C 0x7959 +0xB57D 0x7961 +0xB57E 0x7963 +0xB580 0x7964 +0xB581 0x7966 +0xB582 0x7969 +0xB583 0x796A +0xB584 0x796B +0xB585 0x796C +0xB586 0x796E +0xB587 0x7970 +0xB588 0x7971 +0xB589 0x7972 +0xB58A 0x7973 +0xB58B 0x7974 +0xB58C 0x7975 +0xB58D 0x7976 +0xB58E 0x7979 +0xB58F 0x797B +0xB590 0x797C +0xB591 0x797D +0xB592 0x797E +0xB593 0x797F +0xB594 0x7982 +0xB595 0x7983 +0xB596 0x7986 +0xB597 0x7987 +0xB598 0x7988 +0xB599 0x7989 +0xB59A 0x798B +0xB59B 0x798C +0xB59C 0x798D +0xB59D 0x798E +0xB59E 0x7990 +0xB59F 0x7991 +0xB5A0 0x7992 +0xB5A1 0x6020 +0xB5A2 0x803D +0xB5A3 0x62C5 +0xB5A4 0x4E39 +0xB5A5 0x5355 +0xB5A6 0x90F8 +0xB5A7 0x63B8 +0xB5A8 0x80C6 +0xB5A9 0x65E6 +0xB5AA 0x6C2E +0xB5AB 0x4F46 +0xB5AC 0x60EE +0xB5AD 0x6DE1 +0xB5AE 0x8BDE +0xB5AF 0x5F39 +0xB5B0 0x86CB +0xB5B1 0x5F53 +0xB5B2 0x6321 +0xB5B3 0x515A +0xB5B4 0x8361 +0xB5B5 0x6863 +0xB5B6 0x5200 +0xB5B7 0x6363 +0xB5B8 0x8E48 +0xB5B9 0x5012 +0xB5BA 0x5C9B +0xB5BB 0x7977 +0xB5BC 0x5BFC +0xB5BD 0x5230 +0xB5BE 0x7A3B +0xB5BF 0x60BC +0xB5C0 0x9053 +0xB5C1 0x76D7 +0xB5C2 0x5FB7 +0xB5C3 0x5F97 +0xB5C4 0x7684 +0xB5C5 0x8E6C +0xB5C6 0x706F +0xB5C7 0x767B +0xB5C8 0x7B49 +0xB5C9 0x77AA +0xB5CA 0x51F3 +0xB5CB 0x9093 +0xB5CC 0x5824 +0xB5CD 0x4F4E +0xB5CE 0x6EF4 +0xB5CF 0x8FEA +0xB5D0 0x654C +0xB5D1 0x7B1B +0xB5D2 0x72C4 +0xB5D3 0x6DA4 +0xB5D4 0x7FDF +0xB5D5 0x5AE1 +0xB5D6 0x62B5 +0xB5D7 0x5E95 +0xB5D8 0x5730 +0xB5D9 0x8482 +0xB5DA 0x7B2C +0xB5DB 0x5E1D +0xB5DC 0x5F1F +0xB5DD 0x9012 +0xB5DE 0x7F14 +0xB5DF 0x98A0 +0xB5E0 0x6382 +0xB5E1 0x6EC7 +0xB5E2 0x7898 +0xB5E3 0x70B9 +0xB5E4 0x5178 +0xB5E5 0x975B +0xB5E6 0x57AB +0xB5E7 0x7535 +0xB5E8 0x4F43 +0xB5E9 0x7538 +0xB5EA 0x5E97 +0xB5EB 0x60E6 +0xB5EC 0x5960 +0xB5ED 0x6DC0 +0xB5EE 0x6BBF +0xB5EF 0x7889 +0xB5F0 0x53FC +0xB5F1 0x96D5 +0xB5F2 0x51CB +0xB5F3 0x5201 +0xB5F4 0x6389 +0xB5F5 0x540A +0xB5F6 0x9493 +0xB5F7 0x8C03 +0xB5F8 0x8DCC +0xB5F9 0x7239 +0xB5FA 0x789F +0xB5FB 0x8776 +0xB5FC 0x8FED +0xB5FD 0x8C0D +0xB5FE 0x53E0 +0xB640 0x7993 +0xB641 0x7994 +0xB642 0x7995 +0xB643 0x7996 +0xB644 0x7997 +0xB645 0x7998 +0xB646 0x7999 +0xB647 0x799B +0xB648 0x799C +0xB649 0x799D +0xB64A 0x799E +0xB64B 0x799F +0xB64C 0x79A0 +0xB64D 0x79A1 +0xB64E 0x79A2 +0xB64F 0x79A3 +0xB650 0x79A4 +0xB651 0x79A5 +0xB652 0x79A6 +0xB653 0x79A8 +0xB654 0x79A9 +0xB655 0x79AA +0xB656 0x79AB +0xB657 0x79AC +0xB658 0x79AD +0xB659 0x79AE +0xB65A 0x79AF +0xB65B 0x79B0 +0xB65C 0x79B1 +0xB65D 0x79B2 +0xB65E 0x79B4 +0xB65F 0x79B5 +0xB660 0x79B6 +0xB661 0x79B7 +0xB662 0x79B8 +0xB663 0x79BC +0xB664 0x79BF +0xB665 0x79C2 +0xB666 0x79C4 +0xB667 0x79C5 +0xB668 0x79C7 +0xB669 0x79C8 +0xB66A 0x79CA +0xB66B 0x79CC +0xB66C 0x79CE +0xB66D 0x79CF +0xB66E 0x79D0 +0xB66F 0x79D3 +0xB670 0x79D4 +0xB671 0x79D6 +0xB672 0x79D7 +0xB673 0x79D9 +0xB674 0x79DA +0xB675 0x79DB +0xB676 0x79DC +0xB677 0x79DD +0xB678 0x79DE +0xB679 0x79E0 +0xB67A 0x79E1 +0xB67B 0x79E2 +0xB67C 0x79E5 +0xB67D 0x79E8 +0xB67E 0x79EA +0xB680 0x79EC +0xB681 0x79EE +0xB682 0x79F1 +0xB683 0x79F2 +0xB684 0x79F3 +0xB685 0x79F4 +0xB686 0x79F5 +0xB687 0x79F6 +0xB688 0x79F7 +0xB689 0x79F9 +0xB68A 0x79FA +0xB68B 0x79FC +0xB68C 0x79FE +0xB68D 0x79FF +0xB68E 0x7A01 +0xB68F 0x7A04 +0xB690 0x7A05 +0xB691 0x7A07 +0xB692 0x7A08 +0xB693 0x7A09 +0xB694 0x7A0A +0xB695 0x7A0C +0xB696 0x7A0F +0xB697 0x7A10 +0xB698 0x7A11 +0xB699 0x7A12 +0xB69A 0x7A13 +0xB69B 0x7A15 +0xB69C 0x7A16 +0xB69D 0x7A18 +0xB69E 0x7A19 +0xB69F 0x7A1B +0xB6A0 0x7A1C +0xB6A1 0x4E01 +0xB6A2 0x76EF +0xB6A3 0x53EE +0xB6A4 0x9489 +0xB6A5 0x9876 +0xB6A6 0x9F0E +0xB6A7 0x952D +0xB6A8 0x5B9A +0xB6A9 0x8BA2 +0xB6AA 0x4E22 +0xB6AB 0x4E1C +0xB6AC 0x51AC +0xB6AD 0x8463 +0xB6AE 0x61C2 +0xB6AF 0x52A8 +0xB6B0 0x680B +0xB6B1 0x4F97 +0xB6B2 0x606B +0xB6B3 0x51BB +0xB6B4 0x6D1E +0xB6B5 0x515C +0xB6B6 0x6296 +0xB6B7 0x6597 +0xB6B8 0x9661 +0xB6B9 0x8C46 +0xB6BA 0x9017 +0xB6BB 0x75D8 +0xB6BC 0x90FD +0xB6BD 0x7763 +0xB6BE 0x6BD2 +0xB6BF 0x728A +0xB6C0 0x72EC +0xB6C1 0x8BFB +0xB6C2 0x5835 +0xB6C3 0x7779 +0xB6C4 0x8D4C +0xB6C5 0x675C +0xB6C6 0x9540 +0xB6C7 0x809A +0xB6C8 0x5EA6 +0xB6C9 0x6E21 +0xB6CA 0x5992 +0xB6CB 0x7AEF +0xB6CC 0x77ED +0xB6CD 0x953B +0xB6CE 0x6BB5 +0xB6CF 0x65AD +0xB6D0 0x7F0E +0xB6D1 0x5806 +0xB6D2 0x5151 +0xB6D3 0x961F +0xB6D4 0x5BF9 +0xB6D5 0x58A9 +0xB6D6 0x5428 +0xB6D7 0x8E72 +0xB6D8 0x6566 +0xB6D9 0x987F +0xB6DA 0x56E4 +0xB6DB 0x949D +0xB6DC 0x76FE +0xB6DD 0x9041 +0xB6DE 0x6387 +0xB6DF 0x54C6 +0xB6E0 0x591A +0xB6E1 0x593A +0xB6E2 0x579B +0xB6E3 0x8EB2 +0xB6E4 0x6735 +0xB6E5 0x8DFA +0xB6E6 0x8235 +0xB6E7 0x5241 +0xB6E8 0x60F0 +0xB6E9 0x5815 +0xB6EA 0x86FE +0xB6EB 0x5CE8 +0xB6EC 0x9E45 +0xB6ED 0x4FC4 +0xB6EE 0x989D +0xB6EF 0x8BB9 +0xB6F0 0x5A25 +0xB6F1 0x6076 +0xB6F2 0x5384 +0xB6F3 0x627C +0xB6F4 0x904F +0xB6F5 0x9102 +0xB6F6 0x997F +0xB6F7 0x6069 +0xB6F8 0x800C +0xB6F9 0x513F +0xB6FA 0x8033 +0xB6FB 0x5C14 +0xB6FC 0x9975 +0xB6FD 0x6D31 +0xB6FE 0x4E8C +0xB740 0x7A1D +0xB741 0x7A1F +0xB742 0x7A21 +0xB743 0x7A22 +0xB744 0x7A24 +0xB745 0x7A25 +0xB746 0x7A26 +0xB747 0x7A27 +0xB748 0x7A28 +0xB749 0x7A29 +0xB74A 0x7A2A +0xB74B 0x7A2B +0xB74C 0x7A2C +0xB74D 0x7A2D +0xB74E 0x7A2E +0xB74F 0x7A2F +0xB750 0x7A30 +0xB751 0x7A31 +0xB752 0x7A32 +0xB753 0x7A34 +0xB754 0x7A35 +0xB755 0x7A36 +0xB756 0x7A38 +0xB757 0x7A3A +0xB758 0x7A3E +0xB759 0x7A40 +0xB75A 0x7A41 +0xB75B 0x7A42 +0xB75C 0x7A43 +0xB75D 0x7A44 +0xB75E 0x7A45 +0xB75F 0x7A47 +0xB760 0x7A48 +0xB761 0x7A49 +0xB762 0x7A4A +0xB763 0x7A4B +0xB764 0x7A4C +0xB765 0x7A4D +0xB766 0x7A4E +0xB767 0x7A4F +0xB768 0x7A50 +0xB769 0x7A52 +0xB76A 0x7A53 +0xB76B 0x7A54 +0xB76C 0x7A55 +0xB76D 0x7A56 +0xB76E 0x7A58 +0xB76F 0x7A59 +0xB770 0x7A5A +0xB771 0x7A5B +0xB772 0x7A5C +0xB773 0x7A5D +0xB774 0x7A5E +0xB775 0x7A5F +0xB776 0x7A60 +0xB777 0x7A61 +0xB778 0x7A62 +0xB779 0x7A63 +0xB77A 0x7A64 +0xB77B 0x7A65 +0xB77C 0x7A66 +0xB77D 0x7A67 +0xB77E 0x7A68 +0xB780 0x7A69 +0xB781 0x7A6A +0xB782 0x7A6B +0xB783 0x7A6C +0xB784 0x7A6D +0xB785 0x7A6E +0xB786 0x7A6F +0xB787 0x7A71 +0xB788 0x7A72 +0xB789 0x7A73 +0xB78A 0x7A75 +0xB78B 0x7A7B +0xB78C 0x7A7C +0xB78D 0x7A7D +0xB78E 0x7A7E +0xB78F 0x7A82 +0xB790 0x7A85 +0xB791 0x7A87 +0xB792 0x7A89 +0xB793 0x7A8A +0xB794 0x7A8B +0xB795 0x7A8C +0xB796 0x7A8E +0xB797 0x7A8F +0xB798 0x7A90 +0xB799 0x7A93 +0xB79A 0x7A94 +0xB79B 0x7A99 +0xB79C 0x7A9A +0xB79D 0x7A9B +0xB79E 0x7A9E +0xB79F 0x7AA1 +0xB7A0 0x7AA2 +0xB7A1 0x8D30 +0xB7A2 0x53D1 +0xB7A3 0x7F5A +0xB7A4 0x7B4F +0xB7A5 0x4F10 +0xB7A6 0x4E4F +0xB7A7 0x9600 +0xB7A8 0x6CD5 +0xB7A9 0x73D0 +0xB7AA 0x85E9 +0xB7AB 0x5E06 +0xB7AC 0x756A +0xB7AD 0x7FFB +0xB7AE 0x6A0A +0xB7AF 0x77FE +0xB7B0 0x9492 +0xB7B1 0x7E41 +0xB7B2 0x51E1 +0xB7B3 0x70E6 +0xB7B4 0x53CD +0xB7B5 0x8FD4 +0xB7B6 0x8303 +0xB7B7 0x8D29 +0xB7B8 0x72AF +0xB7B9 0x996D +0xB7BA 0x6CDB +0xB7BB 0x574A +0xB7BC 0x82B3 +0xB7BD 0x65B9 +0xB7BE 0x80AA +0xB7BF 0x623F +0xB7C0 0x9632 +0xB7C1 0x59A8 +0xB7C2 0x4EFF +0xB7C3 0x8BBF +0xB7C4 0x7EBA +0xB7C5 0x653E +0xB7C6 0x83F2 +0xB7C7 0x975E +0xB7C8 0x5561 +0xB7C9 0x98DE +0xB7CA 0x80A5 +0xB7CB 0x532A +0xB7CC 0x8BFD +0xB7CD 0x5420 +0xB7CE 0x80BA +0xB7CF 0x5E9F +0xB7D0 0x6CB8 +0xB7D1 0x8D39 +0xB7D2 0x82AC +0xB7D3 0x915A +0xB7D4 0x5429 +0xB7D5 0x6C1B +0xB7D6 0x5206 +0xB7D7 0x7EB7 +0xB7D8 0x575F +0xB7D9 0x711A +0xB7DA 0x6C7E +0xB7DB 0x7C89 +0xB7DC 0x594B +0xB7DD 0x4EFD +0xB7DE 0x5FFF +0xB7DF 0x6124 +0xB7E0 0x7CAA +0xB7E1 0x4E30 +0xB7E2 0x5C01 +0xB7E3 0x67AB +0xB7E4 0x8702 +0xB7E5 0x5CF0 +0xB7E6 0x950B +0xB7E7 0x98CE +0xB7E8 0x75AF +0xB7E9 0x70FD +0xB7EA 0x9022 +0xB7EB 0x51AF +0xB7EC 0x7F1D +0xB7ED 0x8BBD +0xB7EE 0x5949 +0xB7EF 0x51E4 +0xB7F0 0x4F5B +0xB7F1 0x5426 +0xB7F2 0x592B +0xB7F3 0x6577 +0xB7F4 0x80A4 +0xB7F5 0x5B75 +0xB7F6 0x6276 +0xB7F7 0x62C2 +0xB7F8 0x8F90 +0xB7F9 0x5E45 +0xB7FA 0x6C1F +0xB7FB 0x7B26 +0xB7FC 0x4F0F +0xB7FD 0x4FD8 +0xB7FE 0x670D +0xB840 0x7AA3 +0xB841 0x7AA4 +0xB842 0x7AA7 +0xB843 0x7AA9 +0xB844 0x7AAA +0xB845 0x7AAB +0xB846 0x7AAE +0xB847 0x7AAF +0xB848 0x7AB0 +0xB849 0x7AB1 +0xB84A 0x7AB2 +0xB84B 0x7AB4 +0xB84C 0x7AB5 +0xB84D 0x7AB6 +0xB84E 0x7AB7 +0xB84F 0x7AB8 +0xB850 0x7AB9 +0xB851 0x7ABA +0xB852 0x7ABB +0xB853 0x7ABC +0xB854 0x7ABD +0xB855 0x7ABE +0xB856 0x7AC0 +0xB857 0x7AC1 +0xB858 0x7AC2 +0xB859 0x7AC3 +0xB85A 0x7AC4 +0xB85B 0x7AC5 +0xB85C 0x7AC6 +0xB85D 0x7AC7 +0xB85E 0x7AC8 +0xB85F 0x7AC9 +0xB860 0x7ACA +0xB861 0x7ACC +0xB862 0x7ACD +0xB863 0x7ACE +0xB864 0x7ACF +0xB865 0x7AD0 +0xB866 0x7AD1 +0xB867 0x7AD2 +0xB868 0x7AD3 +0xB869 0x7AD4 +0xB86A 0x7AD5 +0xB86B 0x7AD7 +0xB86C 0x7AD8 +0xB86D 0x7ADA +0xB86E 0x7ADB +0xB86F 0x7ADC +0xB870 0x7ADD +0xB871 0x7AE1 +0xB872 0x7AE2 +0xB873 0x7AE4 +0xB874 0x7AE7 +0xB875 0x7AE8 +0xB876 0x7AE9 +0xB877 0x7AEA +0xB878 0x7AEB +0xB879 0x7AEC +0xB87A 0x7AEE +0xB87B 0x7AF0 +0xB87C 0x7AF1 +0xB87D 0x7AF2 +0xB87E 0x7AF3 +0xB880 0x7AF4 +0xB881 0x7AF5 +0xB882 0x7AF6 +0xB883 0x7AF7 +0xB884 0x7AF8 +0xB885 0x7AFB +0xB886 0x7AFC +0xB887 0x7AFE +0xB888 0x7B00 +0xB889 0x7B01 +0xB88A 0x7B02 +0xB88B 0x7B05 +0xB88C 0x7B07 +0xB88D 0x7B09 +0xB88E 0x7B0C +0xB88F 0x7B0D +0xB890 0x7B0E +0xB891 0x7B10 +0xB892 0x7B12 +0xB893 0x7B13 +0xB894 0x7B16 +0xB895 0x7B17 +0xB896 0x7B18 +0xB897 0x7B1A +0xB898 0x7B1C +0xB899 0x7B1D +0xB89A 0x7B1F +0xB89B 0x7B21 +0xB89C 0x7B22 +0xB89D 0x7B23 +0xB89E 0x7B27 +0xB89F 0x7B29 +0xB8A0 0x7B2D +0xB8A1 0x6D6E +0xB8A2 0x6DAA +0xB8A3 0x798F +0xB8A4 0x88B1 +0xB8A5 0x5F17 +0xB8A6 0x752B +0xB8A7 0x629A +0xB8A8 0x8F85 +0xB8A9 0x4FEF +0xB8AA 0x91DC +0xB8AB 0x65A7 +0xB8AC 0x812F +0xB8AD 0x8151 +0xB8AE 0x5E9C +0xB8AF 0x8150 +0xB8B0 0x8D74 +0xB8B1 0x526F +0xB8B2 0x8986 +0xB8B3 0x8D4B +0xB8B4 0x590D +0xB8B5 0x5085 +0xB8B6 0x4ED8 +0xB8B7 0x961C +0xB8B8 0x7236 +0xB8B9 0x8179 +0xB8BA 0x8D1F +0xB8BB 0x5BCC +0xB8BC 0x8BA3 +0xB8BD 0x9644 +0xB8BE 0x5987 +0xB8BF 0x7F1A +0xB8C0 0x5490 +0xB8C1 0x5676 +0xB8C2 0x560E +0xB8C3 0x8BE5 +0xB8C4 0x6539 +0xB8C5 0x6982 +0xB8C6 0x9499 +0xB8C7 0x76D6 +0xB8C8 0x6E89 +0xB8C9 0x5E72 +0xB8CA 0x7518 +0xB8CB 0x6746 +0xB8CC 0x67D1 +0xB8CD 0x7AFF +0xB8CE 0x809D +0xB8CF 0x8D76 +0xB8D0 0x611F +0xB8D1 0x79C6 +0xB8D2 0x6562 +0xB8D3 0x8D63 +0xB8D4 0x5188 +0xB8D5 0x521A +0xB8D6 0x94A2 +0xB8D7 0x7F38 +0xB8D8 0x809B +0xB8D9 0x7EB2 +0xB8DA 0x5C97 +0xB8DB 0x6E2F +0xB8DC 0x6760 +0xB8DD 0x7BD9 +0xB8DE 0x768B +0xB8DF 0x9AD8 +0xB8E0 0x818F +0xB8E1 0x7F94 +0xB8E2 0x7CD5 +0xB8E3 0x641E +0xB8E4 0x9550 +0xB8E5 0x7A3F +0xB8E6 0x544A +0xB8E7 0x54E5 +0xB8E8 0x6B4C +0xB8E9 0x6401 +0xB8EA 0x6208 +0xB8EB 0x9E3D +0xB8EC 0x80F3 +0xB8ED 0x7599 +0xB8EE 0x5272 +0xB8EF 0x9769 +0xB8F0 0x845B +0xB8F1 0x683C +0xB8F2 0x86E4 +0xB8F3 0x9601 +0xB8F4 0x9694 +0xB8F5 0x94EC +0xB8F6 0x4E2A +0xB8F7 0x5404 +0xB8F8 0x7ED9 +0xB8F9 0x6839 +0xB8FA 0x8DDF +0xB8FB 0x8015 +0xB8FC 0x66F4 +0xB8FD 0x5E9A +0xB8FE 0x7FB9 +0xB940 0x7B2F +0xB941 0x7B30 +0xB942 0x7B32 +0xB943 0x7B34 +0xB944 0x7B35 +0xB945 0x7B36 +0xB946 0x7B37 +0xB947 0x7B39 +0xB948 0x7B3B +0xB949 0x7B3D +0xB94A 0x7B3F +0xB94B 0x7B40 +0xB94C 0x7B41 +0xB94D 0x7B42 +0xB94E 0x7B43 +0xB94F 0x7B44 +0xB950 0x7B46 +0xB951 0x7B48 +0xB952 0x7B4A +0xB953 0x7B4D +0xB954 0x7B4E +0xB955 0x7B53 +0xB956 0x7B55 +0xB957 0x7B57 +0xB958 0x7B59 +0xB959 0x7B5C +0xB95A 0x7B5E +0xB95B 0x7B5F +0xB95C 0x7B61 +0xB95D 0x7B63 +0xB95E 0x7B64 +0xB95F 0x7B65 +0xB960 0x7B66 +0xB961 0x7B67 +0xB962 0x7B68 +0xB963 0x7B69 +0xB964 0x7B6A +0xB965 0x7B6B +0xB966 0x7B6C +0xB967 0x7B6D +0xB968 0x7B6F +0xB969 0x7B70 +0xB96A 0x7B73 +0xB96B 0x7B74 +0xB96C 0x7B76 +0xB96D 0x7B78 +0xB96E 0x7B7A +0xB96F 0x7B7C +0xB970 0x7B7D +0xB971 0x7B7F +0xB972 0x7B81 +0xB973 0x7B82 +0xB974 0x7B83 +0xB975 0x7B84 +0xB976 0x7B86 +0xB977 0x7B87 +0xB978 0x7B88 +0xB979 0x7B89 +0xB97A 0x7B8A +0xB97B 0x7B8B +0xB97C 0x7B8C +0xB97D 0x7B8E +0xB97E 0x7B8F +0xB980 0x7B91 +0xB981 0x7B92 +0xB982 0x7B93 +0xB983 0x7B96 +0xB984 0x7B98 +0xB985 0x7B99 +0xB986 0x7B9A +0xB987 0x7B9B +0xB988 0x7B9E +0xB989 0x7B9F +0xB98A 0x7BA0 +0xB98B 0x7BA3 +0xB98C 0x7BA4 +0xB98D 0x7BA5 +0xB98E 0x7BAE +0xB98F 0x7BAF +0xB990 0x7BB0 +0xB991 0x7BB2 +0xB992 0x7BB3 +0xB993 0x7BB5 +0xB994 0x7BB6 +0xB995 0x7BB7 +0xB996 0x7BB9 +0xB997 0x7BBA +0xB998 0x7BBB +0xB999 0x7BBC +0xB99A 0x7BBD +0xB99B 0x7BBE +0xB99C 0x7BBF +0xB99D 0x7BC0 +0xB99E 0x7BC2 +0xB99F 0x7BC3 +0xB9A0 0x7BC4 +0xB9A1 0x57C2 +0xB9A2 0x803F +0xB9A3 0x6897 +0xB9A4 0x5DE5 +0xB9A5 0x653B +0xB9A6 0x529F +0xB9A7 0x606D +0xB9A8 0x9F9A +0xB9A9 0x4F9B +0xB9AA 0x8EAC +0xB9AB 0x516C +0xB9AC 0x5BAB +0xB9AD 0x5F13 +0xB9AE 0x5DE9 +0xB9AF 0x6C5E +0xB9B0 0x62F1 +0xB9B1 0x8D21 +0xB9B2 0x5171 +0xB9B3 0x94A9 +0xB9B4 0x52FE +0xB9B5 0x6C9F +0xB9B6 0x82DF +0xB9B7 0x72D7 +0xB9B8 0x57A2 +0xB9B9 0x6784 +0xB9BA 0x8D2D +0xB9BB 0x591F +0xB9BC 0x8F9C +0xB9BD 0x83C7 +0xB9BE 0x5495 +0xB9BF 0x7B8D +0xB9C0 0x4F30 +0xB9C1 0x6CBD +0xB9C2 0x5B64 +0xB9C3 0x59D1 +0xB9C4 0x9F13 +0xB9C5 0x53E4 +0xB9C6 0x86CA +0xB9C7 0x9AA8 +0xB9C8 0x8C37 +0xB9C9 0x80A1 +0xB9CA 0x6545 +0xB9CB 0x987E +0xB9CC 0x56FA +0xB9CD 0x96C7 +0xB9CE 0x522E +0xB9CF 0x74DC +0xB9D0 0x5250 +0xB9D1 0x5BE1 +0xB9D2 0x6302 +0xB9D3 0x8902 +0xB9D4 0x4E56 +0xB9D5 0x62D0 +0xB9D6 0x602A +0xB9D7 0x68FA +0xB9D8 0x5173 +0xB9D9 0x5B98 +0xB9DA 0x51A0 +0xB9DB 0x89C2 +0xB9DC 0x7BA1 +0xB9DD 0x9986 +0xB9DE 0x7F50 +0xB9DF 0x60EF +0xB9E0 0x704C +0xB9E1 0x8D2F +0xB9E2 0x5149 +0xB9E3 0x5E7F +0xB9E4 0x901B +0xB9E5 0x7470 +0xB9E6 0x89C4 +0xB9E7 0x572D +0xB9E8 0x7845 +0xB9E9 0x5F52 +0xB9EA 0x9F9F +0xB9EB 0x95FA +0xB9EC 0x8F68 +0xB9ED 0x9B3C +0xB9EE 0x8BE1 +0xB9EF 0x7678 +0xB9F0 0x6842 +0xB9F1 0x67DC +0xB9F2 0x8DEA +0xB9F3 0x8D35 +0xB9F4 0x523D +0xB9F5 0x8F8A +0xB9F6 0x6EDA +0xB9F7 0x68CD +0xB9F8 0x9505 +0xB9F9 0x90ED +0xB9FA 0x56FD +0xB9FB 0x679C +0xB9FC 0x88F9 +0xB9FD 0x8FC7 +0xB9FE 0x54C8 +0xBA40 0x7BC5 +0xBA41 0x7BC8 +0xBA42 0x7BC9 +0xBA43 0x7BCA +0xBA44 0x7BCB +0xBA45 0x7BCD +0xBA46 0x7BCE +0xBA47 0x7BCF +0xBA48 0x7BD0 +0xBA49 0x7BD2 +0xBA4A 0x7BD4 +0xBA4B 0x7BD5 +0xBA4C 0x7BD6 +0xBA4D 0x7BD7 +0xBA4E 0x7BD8 +0xBA4F 0x7BDB +0xBA50 0x7BDC +0xBA51 0x7BDE +0xBA52 0x7BDF +0xBA53 0x7BE0 +0xBA54 0x7BE2 +0xBA55 0x7BE3 +0xBA56 0x7BE4 +0xBA57 0x7BE7 +0xBA58 0x7BE8 +0xBA59 0x7BE9 +0xBA5A 0x7BEB +0xBA5B 0x7BEC +0xBA5C 0x7BED +0xBA5D 0x7BEF +0xBA5E 0x7BF0 +0xBA5F 0x7BF2 +0xBA60 0x7BF3 +0xBA61 0x7BF4 +0xBA62 0x7BF5 +0xBA63 0x7BF6 +0xBA64 0x7BF8 +0xBA65 0x7BF9 +0xBA66 0x7BFA +0xBA67 0x7BFB +0xBA68 0x7BFD +0xBA69 0x7BFF +0xBA6A 0x7C00 +0xBA6B 0x7C01 +0xBA6C 0x7C02 +0xBA6D 0x7C03 +0xBA6E 0x7C04 +0xBA6F 0x7C05 +0xBA70 0x7C06 +0xBA71 0x7C08 +0xBA72 0x7C09 +0xBA73 0x7C0A +0xBA74 0x7C0D +0xBA75 0x7C0E +0xBA76 0x7C10 +0xBA77 0x7C11 +0xBA78 0x7C12 +0xBA79 0x7C13 +0xBA7A 0x7C14 +0xBA7B 0x7C15 +0xBA7C 0x7C17 +0xBA7D 0x7C18 +0xBA7E 0x7C19 +0xBA80 0x7C1A +0xBA81 0x7C1B +0xBA82 0x7C1C +0xBA83 0x7C1D +0xBA84 0x7C1E +0xBA85 0x7C20 +0xBA86 0x7C21 +0xBA87 0x7C22 +0xBA88 0x7C23 +0xBA89 0x7C24 +0xBA8A 0x7C25 +0xBA8B 0x7C28 +0xBA8C 0x7C29 +0xBA8D 0x7C2B +0xBA8E 0x7C2C +0xBA8F 0x7C2D +0xBA90 0x7C2E +0xBA91 0x7C2F +0xBA92 0x7C30 +0xBA93 0x7C31 +0xBA94 0x7C32 +0xBA95 0x7C33 +0xBA96 0x7C34 +0xBA97 0x7C35 +0xBA98 0x7C36 +0xBA99 0x7C37 +0xBA9A 0x7C39 +0xBA9B 0x7C3A +0xBA9C 0x7C3B +0xBA9D 0x7C3C +0xBA9E 0x7C3D +0xBA9F 0x7C3E +0xBAA0 0x7C42 +0xBAA1 0x9AB8 +0xBAA2 0x5B69 +0xBAA3 0x6D77 +0xBAA4 0x6C26 +0xBAA5 0x4EA5 +0xBAA6 0x5BB3 +0xBAA7 0x9A87 +0xBAA8 0x9163 +0xBAA9 0x61A8 +0xBAAA 0x90AF +0xBAAB 0x97E9 +0xBAAC 0x542B +0xBAAD 0x6DB5 +0xBAAE 0x5BD2 +0xBAAF 0x51FD +0xBAB0 0x558A +0xBAB1 0x7F55 +0xBAB2 0x7FF0 +0xBAB3 0x64BC +0xBAB4 0x634D +0xBAB5 0x65F1 +0xBAB6 0x61BE +0xBAB7 0x608D +0xBAB8 0x710A +0xBAB9 0x6C57 +0xBABA 0x6C49 +0xBABB 0x592F +0xBABC 0x676D +0xBABD 0x822A +0xBABE 0x58D5 +0xBABF 0x568E +0xBAC0 0x8C6A +0xBAC1 0x6BEB +0xBAC2 0x90DD +0xBAC3 0x597D +0xBAC4 0x8017 +0xBAC5 0x53F7 +0xBAC6 0x6D69 +0xBAC7 0x5475 +0xBAC8 0x559D +0xBAC9 0x8377 +0xBACA 0x83CF +0xBACB 0x6838 +0xBACC 0x79BE +0xBACD 0x548C +0xBACE 0x4F55 +0xBACF 0x5408 +0xBAD0 0x76D2 +0xBAD1 0x8C89 +0xBAD2 0x9602 +0xBAD3 0x6CB3 +0xBAD4 0x6DB8 +0xBAD5 0x8D6B +0xBAD6 0x8910 +0xBAD7 0x9E64 +0xBAD8 0x8D3A +0xBAD9 0x563F +0xBADA 0x9ED1 +0xBADB 0x75D5 +0xBADC 0x5F88 +0xBADD 0x72E0 +0xBADE 0x6068 +0xBADF 0x54FC +0xBAE0 0x4EA8 +0xBAE1 0x6A2A +0xBAE2 0x8861 +0xBAE3 0x6052 +0xBAE4 0x8F70 +0xBAE5 0x54C4 +0xBAE6 0x70D8 +0xBAE7 0x8679 +0xBAE8 0x9E3F +0xBAE9 0x6D2A +0xBAEA 0x5B8F +0xBAEB 0x5F18 +0xBAEC 0x7EA2 +0xBAED 0x5589 +0xBAEE 0x4FAF +0xBAEF 0x7334 +0xBAF0 0x543C +0xBAF1 0x539A +0xBAF2 0x5019 +0xBAF3 0x540E +0xBAF4 0x547C +0xBAF5 0x4E4E +0xBAF6 0x5FFD +0xBAF7 0x745A +0xBAF8 0x58F6 +0xBAF9 0x846B +0xBAFA 0x80E1 +0xBAFB 0x8774 +0xBAFC 0x72D0 +0xBAFD 0x7CCA +0xBAFE 0x6E56 +0xBB40 0x7C43 +0xBB41 0x7C44 +0xBB42 0x7C45 +0xBB43 0x7C46 +0xBB44 0x7C47 +0xBB45 0x7C48 +0xBB46 0x7C49 +0xBB47 0x7C4A +0xBB48 0x7C4B +0xBB49 0x7C4C +0xBB4A 0x7C4E +0xBB4B 0x7C4F +0xBB4C 0x7C50 +0xBB4D 0x7C51 +0xBB4E 0x7C52 +0xBB4F 0x7C53 +0xBB50 0x7C54 +0xBB51 0x7C55 +0xBB52 0x7C56 +0xBB53 0x7C57 +0xBB54 0x7C58 +0xBB55 0x7C59 +0xBB56 0x7C5A +0xBB57 0x7C5B +0xBB58 0x7C5C +0xBB59 0x7C5D +0xBB5A 0x7C5E +0xBB5B 0x7C5F +0xBB5C 0x7C60 +0xBB5D 0x7C61 +0xBB5E 0x7C62 +0xBB5F 0x7C63 +0xBB60 0x7C64 +0xBB61 0x7C65 +0xBB62 0x7C66 +0xBB63 0x7C67 +0xBB64 0x7C68 +0xBB65 0x7C69 +0xBB66 0x7C6A +0xBB67 0x7C6B +0xBB68 0x7C6C +0xBB69 0x7C6D +0xBB6A 0x7C6E +0xBB6B 0x7C6F +0xBB6C 0x7C70 +0xBB6D 0x7C71 +0xBB6E 0x7C72 +0xBB6F 0x7C75 +0xBB70 0x7C76 +0xBB71 0x7C77 +0xBB72 0x7C78 +0xBB73 0x7C79 +0xBB74 0x7C7A +0xBB75 0x7C7E +0xBB76 0x7C7F +0xBB77 0x7C80 +0xBB78 0x7C81 +0xBB79 0x7C82 +0xBB7A 0x7C83 +0xBB7B 0x7C84 +0xBB7C 0x7C85 +0xBB7D 0x7C86 +0xBB7E 0x7C87 +0xBB80 0x7C88 +0xBB81 0x7C8A +0xBB82 0x7C8B +0xBB83 0x7C8C +0xBB84 0x7C8D +0xBB85 0x7C8E +0xBB86 0x7C8F +0xBB87 0x7C90 +0xBB88 0x7C93 +0xBB89 0x7C94 +0xBB8A 0x7C96 +0xBB8B 0x7C99 +0xBB8C 0x7C9A +0xBB8D 0x7C9B +0xBB8E 0x7CA0 +0xBB8F 0x7CA1 +0xBB90 0x7CA3 +0xBB91 0x7CA6 +0xBB92 0x7CA7 +0xBB93 0x7CA8 +0xBB94 0x7CA9 +0xBB95 0x7CAB +0xBB96 0x7CAC +0xBB97 0x7CAD +0xBB98 0x7CAF +0xBB99 0x7CB0 +0xBB9A 0x7CB4 +0xBB9B 0x7CB5 +0xBB9C 0x7CB6 +0xBB9D 0x7CB7 +0xBB9E 0x7CB8 +0xBB9F 0x7CBA +0xBBA0 0x7CBB +0xBBA1 0x5F27 +0xBBA2 0x864E +0xBBA3 0x552C +0xBBA4 0x62A4 +0xBBA5 0x4E92 +0xBBA6 0x6CAA +0xBBA7 0x6237 +0xBBA8 0x82B1 +0xBBA9 0x54D7 +0xBBAA 0x534E +0xBBAB 0x733E +0xBBAC 0x6ED1 +0xBBAD 0x753B +0xBBAE 0x5212 +0xBBAF 0x5316 +0xBBB0 0x8BDD +0xBBB1 0x69D0 +0xBBB2 0x5F8A +0xBBB3 0x6000 +0xBBB4 0x6DEE +0xBBB5 0x574F +0xBBB6 0x6B22 +0xBBB7 0x73AF +0xBBB8 0x6853 +0xBBB9 0x8FD8 +0xBBBA 0x7F13 +0xBBBB 0x6362 +0xBBBC 0x60A3 +0xBBBD 0x5524 +0xBBBE 0x75EA +0xBBBF 0x8C62 +0xBBC0 0x7115 +0xBBC1 0x6DA3 +0xBBC2 0x5BA6 +0xBBC3 0x5E7B +0xBBC4 0x8352 +0xBBC5 0x614C +0xBBC6 0x9EC4 +0xBBC7 0x78FA +0xBBC8 0x8757 +0xBBC9 0x7C27 +0xBBCA 0x7687 +0xBBCB 0x51F0 +0xBBCC 0x60F6 +0xBBCD 0x714C +0xBBCE 0x6643 +0xBBCF 0x5E4C +0xBBD0 0x604D +0xBBD1 0x8C0E +0xBBD2 0x7070 +0xBBD3 0x6325 +0xBBD4 0x8F89 +0xBBD5 0x5FBD +0xBBD6 0x6062 +0xBBD7 0x86D4 +0xBBD8 0x56DE +0xBBD9 0x6BC1 +0xBBDA 0x6094 +0xBBDB 0x6167 +0xBBDC 0x5349 +0xBBDD 0x60E0 +0xBBDE 0x6666 +0xBBDF 0x8D3F +0xBBE0 0x79FD +0xBBE1 0x4F1A +0xBBE2 0x70E9 +0xBBE3 0x6C47 +0xBBE4 0x8BB3 +0xBBE5 0x8BF2 +0xBBE6 0x7ED8 +0xBBE7 0x8364 +0xBBE8 0x660F +0xBBE9 0x5A5A +0xBBEA 0x9B42 +0xBBEB 0x6D51 +0xBBEC 0x6DF7 +0xBBED 0x8C41 +0xBBEE 0x6D3B +0xBBEF 0x4F19 +0xBBF0 0x706B +0xBBF1 0x83B7 +0xBBF2 0x6216 +0xBBF3 0x60D1 +0xBBF4 0x970D +0xBBF5 0x8D27 +0xBBF6 0x7978 +0xBBF7 0x51FB +0xBBF8 0x573E +0xBBF9 0x57FA +0xBBFA 0x673A +0xBBFB 0x7578 +0xBBFC 0x7A3D +0xBBFD 0x79EF +0xBBFE 0x7B95 +0xBC40 0x7CBF +0xBC41 0x7CC0 +0xBC42 0x7CC2 +0xBC43 0x7CC3 +0xBC44 0x7CC4 +0xBC45 0x7CC6 +0xBC46 0x7CC9 +0xBC47 0x7CCB +0xBC48 0x7CCE +0xBC49 0x7CCF +0xBC4A 0x7CD0 +0xBC4B 0x7CD1 +0xBC4C 0x7CD2 +0xBC4D 0x7CD3 +0xBC4E 0x7CD4 +0xBC4F 0x7CD8 +0xBC50 0x7CDA +0xBC51 0x7CDB +0xBC52 0x7CDD +0xBC53 0x7CDE +0xBC54 0x7CE1 +0xBC55 0x7CE2 +0xBC56 0x7CE3 +0xBC57 0x7CE4 +0xBC58 0x7CE5 +0xBC59 0x7CE6 +0xBC5A 0x7CE7 +0xBC5B 0x7CE9 +0xBC5C 0x7CEA +0xBC5D 0x7CEB +0xBC5E 0x7CEC +0xBC5F 0x7CED +0xBC60 0x7CEE +0xBC61 0x7CF0 +0xBC62 0x7CF1 +0xBC63 0x7CF2 +0xBC64 0x7CF3 +0xBC65 0x7CF4 +0xBC66 0x7CF5 +0xBC67 0x7CF6 +0xBC68 0x7CF7 +0xBC69 0x7CF9 +0xBC6A 0x7CFA +0xBC6B 0x7CFC +0xBC6C 0x7CFD +0xBC6D 0x7CFE +0xBC6E 0x7CFF +0xBC6F 0x7D00 +0xBC70 0x7D01 +0xBC71 0x7D02 +0xBC72 0x7D03 +0xBC73 0x7D04 +0xBC74 0x7D05 +0xBC75 0x7D06 +0xBC76 0x7D07 +0xBC77 0x7D08 +0xBC78 0x7D09 +0xBC79 0x7D0B +0xBC7A 0x7D0C +0xBC7B 0x7D0D +0xBC7C 0x7D0E +0xBC7D 0x7D0F +0xBC7E 0x7D10 +0xBC80 0x7D11 +0xBC81 0x7D12 +0xBC82 0x7D13 +0xBC83 0x7D14 +0xBC84 0x7D15 +0xBC85 0x7D16 +0xBC86 0x7D17 +0xBC87 0x7D18 +0xBC88 0x7D19 +0xBC89 0x7D1A +0xBC8A 0x7D1B +0xBC8B 0x7D1C +0xBC8C 0x7D1D +0xBC8D 0x7D1E +0xBC8E 0x7D1F +0xBC8F 0x7D21 +0xBC90 0x7D23 +0xBC91 0x7D24 +0xBC92 0x7D25 +0xBC93 0x7D26 +0xBC94 0x7D28 +0xBC95 0x7D29 +0xBC96 0x7D2A +0xBC97 0x7D2C +0xBC98 0x7D2D +0xBC99 0x7D2E +0xBC9A 0x7D30 +0xBC9B 0x7D31 +0xBC9C 0x7D32 +0xBC9D 0x7D33 +0xBC9E 0x7D34 +0xBC9F 0x7D35 +0xBCA0 0x7D36 +0xBCA1 0x808C +0xBCA2 0x9965 +0xBCA3 0x8FF9 +0xBCA4 0x6FC0 +0xBCA5 0x8BA5 +0xBCA6 0x9E21 +0xBCA7 0x59EC +0xBCA8 0x7EE9 +0xBCA9 0x7F09 +0xBCAA 0x5409 +0xBCAB 0x6781 +0xBCAC 0x68D8 +0xBCAD 0x8F91 +0xBCAE 0x7C4D +0xBCAF 0x96C6 +0xBCB0 0x53CA +0xBCB1 0x6025 +0xBCB2 0x75BE +0xBCB3 0x6C72 +0xBCB4 0x5373 +0xBCB5 0x5AC9 +0xBCB6 0x7EA7 +0xBCB7 0x6324 +0xBCB8 0x51E0 +0xBCB9 0x810A +0xBCBA 0x5DF1 +0xBCBB 0x84DF +0xBCBC 0x6280 +0xBCBD 0x5180 +0xBCBE 0x5B63 +0xBCBF 0x4F0E +0xBCC0 0x796D +0xBCC1 0x5242 +0xBCC2 0x60B8 +0xBCC3 0x6D4E +0xBCC4 0x5BC4 +0xBCC5 0x5BC2 +0xBCC6 0x8BA1 +0xBCC7 0x8BB0 +0xBCC8 0x65E2 +0xBCC9 0x5FCC +0xBCCA 0x9645 +0xBCCB 0x5993 +0xBCCC 0x7EE7 +0xBCCD 0x7EAA +0xBCCE 0x5609 +0xBCCF 0x67B7 +0xBCD0 0x5939 +0xBCD1 0x4F73 +0xBCD2 0x5BB6 +0xBCD3 0x52A0 +0xBCD4 0x835A +0xBCD5 0x988A +0xBCD6 0x8D3E +0xBCD7 0x7532 +0xBCD8 0x94BE +0xBCD9 0x5047 +0xBCDA 0x7A3C +0xBCDB 0x4EF7 +0xBCDC 0x67B6 +0xBCDD 0x9A7E +0xBCDE 0x5AC1 +0xBCDF 0x6B7C +0xBCE0 0x76D1 +0xBCE1 0x575A +0xBCE2 0x5C16 +0xBCE3 0x7B3A +0xBCE4 0x95F4 +0xBCE5 0x714E +0xBCE6 0x517C +0xBCE7 0x80A9 +0xBCE8 0x8270 +0xBCE9 0x5978 +0xBCEA 0x7F04 +0xBCEB 0x8327 +0xBCEC 0x68C0 +0xBCED 0x67EC +0xBCEE 0x78B1 +0xBCEF 0x7877 +0xBCF0 0x62E3 +0xBCF1 0x6361 +0xBCF2 0x7B80 +0xBCF3 0x4FED +0xBCF4 0x526A +0xBCF5 0x51CF +0xBCF6 0x8350 +0xBCF7 0x69DB +0xBCF8 0x9274 +0xBCF9 0x8DF5 +0xBCFA 0x8D31 +0xBCFB 0x89C1 +0xBCFC 0x952E +0xBCFD 0x7BAD +0xBCFE 0x4EF6 +0xBD40 0x7D37 +0xBD41 0x7D38 +0xBD42 0x7D39 +0xBD43 0x7D3A +0xBD44 0x7D3B +0xBD45 0x7D3C +0xBD46 0x7D3D +0xBD47 0x7D3E +0xBD48 0x7D3F +0xBD49 0x7D40 +0xBD4A 0x7D41 +0xBD4B 0x7D42 +0xBD4C 0x7D43 +0xBD4D 0x7D44 +0xBD4E 0x7D45 +0xBD4F 0x7D46 +0xBD50 0x7D47 +0xBD51 0x7D48 +0xBD52 0x7D49 +0xBD53 0x7D4A +0xBD54 0x7D4B +0xBD55 0x7D4C +0xBD56 0x7D4D +0xBD57 0x7D4E +0xBD58 0x7D4F +0xBD59 0x7D50 +0xBD5A 0x7D51 +0xBD5B 0x7D52 +0xBD5C 0x7D53 +0xBD5D 0x7D54 +0xBD5E 0x7D55 +0xBD5F 0x7D56 +0xBD60 0x7D57 +0xBD61 0x7D58 +0xBD62 0x7D59 +0xBD63 0x7D5A +0xBD64 0x7D5B +0xBD65 0x7D5C +0xBD66 0x7D5D +0xBD67 0x7D5E +0xBD68 0x7D5F +0xBD69 0x7D60 +0xBD6A 0x7D61 +0xBD6B 0x7D62 +0xBD6C 0x7D63 +0xBD6D 0x7D64 +0xBD6E 0x7D65 +0xBD6F 0x7D66 +0xBD70 0x7D67 +0xBD71 0x7D68 +0xBD72 0x7D69 +0xBD73 0x7D6A +0xBD74 0x7D6B +0xBD75 0x7D6C +0xBD76 0x7D6D +0xBD77 0x7D6F +0xBD78 0x7D70 +0xBD79 0x7D71 +0xBD7A 0x7D72 +0xBD7B 0x7D73 +0xBD7C 0x7D74 +0xBD7D 0x7D75 +0xBD7E 0x7D76 +0xBD80 0x7D78 +0xBD81 0x7D79 +0xBD82 0x7D7A +0xBD83 0x7D7B +0xBD84 0x7D7C +0xBD85 0x7D7D +0xBD86 0x7D7E +0xBD87 0x7D7F +0xBD88 0x7D80 +0xBD89 0x7D81 +0xBD8A 0x7D82 +0xBD8B 0x7D83 +0xBD8C 0x7D84 +0xBD8D 0x7D85 +0xBD8E 0x7D86 +0xBD8F 0x7D87 +0xBD90 0x7D88 +0xBD91 0x7D89 +0xBD92 0x7D8A +0xBD93 0x7D8B +0xBD94 0x7D8C +0xBD95 0x7D8D +0xBD96 0x7D8E +0xBD97 0x7D8F +0xBD98 0x7D90 +0xBD99 0x7D91 +0xBD9A 0x7D92 +0xBD9B 0x7D93 +0xBD9C 0x7D94 +0xBD9D 0x7D95 +0xBD9E 0x7D96 +0xBD9F 0x7D97 +0xBDA0 0x7D98 +0xBDA1 0x5065 +0xBDA2 0x8230 +0xBDA3 0x5251 +0xBDA4 0x996F +0xBDA5 0x6E10 +0xBDA6 0x6E85 +0xBDA7 0x6DA7 +0xBDA8 0x5EFA +0xBDA9 0x50F5 +0xBDAA 0x59DC +0xBDAB 0x5C06 +0xBDAC 0x6D46 +0xBDAD 0x6C5F +0xBDAE 0x7586 +0xBDAF 0x848B +0xBDB0 0x6868 +0xBDB1 0x5956 +0xBDB2 0x8BB2 +0xBDB3 0x5320 +0xBDB4 0x9171 +0xBDB5 0x964D +0xBDB6 0x8549 +0xBDB7 0x6912 +0xBDB8 0x7901 +0xBDB9 0x7126 +0xBDBA 0x80F6 +0xBDBB 0x4EA4 +0xBDBC 0x90CA +0xBDBD 0x6D47 +0xBDBE 0x9A84 +0xBDBF 0x5A07 +0xBDC0 0x56BC +0xBDC1 0x6405 +0xBDC2 0x94F0 +0xBDC3 0x77EB +0xBDC4 0x4FA5 +0xBDC5 0x811A +0xBDC6 0x72E1 +0xBDC7 0x89D2 +0xBDC8 0x997A +0xBDC9 0x7F34 +0xBDCA 0x7EDE +0xBDCB 0x527F +0xBDCC 0x6559 +0xBDCD 0x9175 +0xBDCE 0x8F7F +0xBDCF 0x8F83 +0xBDD0 0x53EB +0xBDD1 0x7A96 +0xBDD2 0x63ED +0xBDD3 0x63A5 +0xBDD4 0x7686 +0xBDD5 0x79F8 +0xBDD6 0x8857 +0xBDD7 0x9636 +0xBDD8 0x622A +0xBDD9 0x52AB +0xBDDA 0x8282 +0xBDDB 0x6854 +0xBDDC 0x6770 +0xBDDD 0x6377 +0xBDDE 0x776B +0xBDDF 0x7AED +0xBDE0 0x6D01 +0xBDE1 0x7ED3 +0xBDE2 0x89E3 +0xBDE3 0x59D0 +0xBDE4 0x6212 +0xBDE5 0x85C9 +0xBDE6 0x82A5 +0xBDE7 0x754C +0xBDE8 0x501F +0xBDE9 0x4ECB +0xBDEA 0x75A5 +0xBDEB 0x8BEB +0xBDEC 0x5C4A +0xBDED 0x5DFE +0xBDEE 0x7B4B +0xBDEF 0x65A4 +0xBDF0 0x91D1 +0xBDF1 0x4ECA +0xBDF2 0x6D25 +0xBDF3 0x895F +0xBDF4 0x7D27 +0xBDF5 0x9526 +0xBDF6 0x4EC5 +0xBDF7 0x8C28 +0xBDF8 0x8FDB +0xBDF9 0x9773 +0xBDFA 0x664B +0xBDFB 0x7981 +0xBDFC 0x8FD1 +0xBDFD 0x70EC +0xBDFE 0x6D78 +0xBE40 0x7D99 +0xBE41 0x7D9A +0xBE42 0x7D9B +0xBE43 0x7D9C +0xBE44 0x7D9D +0xBE45 0x7D9E +0xBE46 0x7D9F +0xBE47 0x7DA0 +0xBE48 0x7DA1 +0xBE49 0x7DA2 +0xBE4A 0x7DA3 +0xBE4B 0x7DA4 +0xBE4C 0x7DA5 +0xBE4D 0x7DA7 +0xBE4E 0x7DA8 +0xBE4F 0x7DA9 +0xBE50 0x7DAA +0xBE51 0x7DAB +0xBE52 0x7DAC +0xBE53 0x7DAD +0xBE54 0x7DAF +0xBE55 0x7DB0 +0xBE56 0x7DB1 +0xBE57 0x7DB2 +0xBE58 0x7DB3 +0xBE59 0x7DB4 +0xBE5A 0x7DB5 +0xBE5B 0x7DB6 +0xBE5C 0x7DB7 +0xBE5D 0x7DB8 +0xBE5E 0x7DB9 +0xBE5F 0x7DBA +0xBE60 0x7DBB +0xBE61 0x7DBC +0xBE62 0x7DBD +0xBE63 0x7DBE +0xBE64 0x7DBF +0xBE65 0x7DC0 +0xBE66 0x7DC1 +0xBE67 0x7DC2 +0xBE68 0x7DC3 +0xBE69 0x7DC4 +0xBE6A 0x7DC5 +0xBE6B 0x7DC6 +0xBE6C 0x7DC7 +0xBE6D 0x7DC8 +0xBE6E 0x7DC9 +0xBE6F 0x7DCA +0xBE70 0x7DCB +0xBE71 0x7DCC +0xBE72 0x7DCD +0xBE73 0x7DCE +0xBE74 0x7DCF +0xBE75 0x7DD0 +0xBE76 0x7DD1 +0xBE77 0x7DD2 +0xBE78 0x7DD3 +0xBE79 0x7DD4 +0xBE7A 0x7DD5 +0xBE7B 0x7DD6 +0xBE7C 0x7DD7 +0xBE7D 0x7DD8 +0xBE7E 0x7DD9 +0xBE80 0x7DDA +0xBE81 0x7DDB +0xBE82 0x7DDC +0xBE83 0x7DDD +0xBE84 0x7DDE +0xBE85 0x7DDF +0xBE86 0x7DE0 +0xBE87 0x7DE1 +0xBE88 0x7DE2 +0xBE89 0x7DE3 +0xBE8A 0x7DE4 +0xBE8B 0x7DE5 +0xBE8C 0x7DE6 +0xBE8D 0x7DE7 +0xBE8E 0x7DE8 +0xBE8F 0x7DE9 +0xBE90 0x7DEA +0xBE91 0x7DEB +0xBE92 0x7DEC +0xBE93 0x7DED +0xBE94 0x7DEE +0xBE95 0x7DEF +0xBE96 0x7DF0 +0xBE97 0x7DF1 +0xBE98 0x7DF2 +0xBE99 0x7DF3 +0xBE9A 0x7DF4 +0xBE9B 0x7DF5 +0xBE9C 0x7DF6 +0xBE9D 0x7DF7 +0xBE9E 0x7DF8 +0xBE9F 0x7DF9 +0xBEA0 0x7DFA +0xBEA1 0x5C3D +0xBEA2 0x52B2 +0xBEA3 0x8346 +0xBEA4 0x5162 +0xBEA5 0x830E +0xBEA6 0x775B +0xBEA7 0x6676 +0xBEA8 0x9CB8 +0xBEA9 0x4EAC +0xBEAA 0x60CA +0xBEAB 0x7CBE +0xBEAC 0x7CB3 +0xBEAD 0x7ECF +0xBEAE 0x4E95 +0xBEAF 0x8B66 +0xBEB0 0x666F +0xBEB1 0x9888 +0xBEB2 0x9759 +0xBEB3 0x5883 +0xBEB4 0x656C +0xBEB5 0x955C +0xBEB6 0x5F84 +0xBEB7 0x75C9 +0xBEB8 0x9756 +0xBEB9 0x7ADF +0xBEBA 0x7ADE +0xBEBB 0x51C0 +0xBEBC 0x70AF +0xBEBD 0x7A98 +0xBEBE 0x63EA +0xBEBF 0x7A76 +0xBEC0 0x7EA0 +0xBEC1 0x7396 +0xBEC2 0x97ED +0xBEC3 0x4E45 +0xBEC4 0x7078 +0xBEC5 0x4E5D +0xBEC6 0x9152 +0xBEC7 0x53A9 +0xBEC8 0x6551 +0xBEC9 0x65E7 +0xBECA 0x81FC +0xBECB 0x8205 +0xBECC 0x548E +0xBECD 0x5C31 +0xBECE 0x759A +0xBECF 0x97A0 +0xBED0 0x62D8 +0xBED1 0x72D9 +0xBED2 0x75BD +0xBED3 0x5C45 +0xBED4 0x9A79 +0xBED5 0x83CA +0xBED6 0x5C40 +0xBED7 0x5480 +0xBED8 0x77E9 +0xBED9 0x4E3E +0xBEDA 0x6CAE +0xBEDB 0x805A +0xBEDC 0x62D2 +0xBEDD 0x636E +0xBEDE 0x5DE8 +0xBEDF 0x5177 +0xBEE0 0x8DDD +0xBEE1 0x8E1E +0xBEE2 0x952F +0xBEE3 0x4FF1 +0xBEE4 0x53E5 +0xBEE5 0x60E7 +0xBEE6 0x70AC +0xBEE7 0x5267 +0xBEE8 0x6350 +0xBEE9 0x9E43 +0xBEEA 0x5A1F +0xBEEB 0x5026 +0xBEEC 0x7737 +0xBEED 0x5377 +0xBEEE 0x7EE2 +0xBEEF 0x6485 +0xBEF0 0x652B +0xBEF1 0x6289 +0xBEF2 0x6398 +0xBEF3 0x5014 +0xBEF4 0x7235 +0xBEF5 0x89C9 +0xBEF6 0x51B3 +0xBEF7 0x8BC0 +0xBEF8 0x7EDD +0xBEF9 0x5747 +0xBEFA 0x83CC +0xBEFB 0x94A7 +0xBEFC 0x519B +0xBEFD 0x541B +0xBEFE 0x5CFB +0xBF40 0x7DFB +0xBF41 0x7DFC +0xBF42 0x7DFD +0xBF43 0x7DFE +0xBF44 0x7DFF +0xBF45 0x7E00 +0xBF46 0x7E01 +0xBF47 0x7E02 +0xBF48 0x7E03 +0xBF49 0x7E04 +0xBF4A 0x7E05 +0xBF4B 0x7E06 +0xBF4C 0x7E07 +0xBF4D 0x7E08 +0xBF4E 0x7E09 +0xBF4F 0x7E0A +0xBF50 0x7E0B +0xBF51 0x7E0C +0xBF52 0x7E0D +0xBF53 0x7E0E +0xBF54 0x7E0F +0xBF55 0x7E10 +0xBF56 0x7E11 +0xBF57 0x7E12 +0xBF58 0x7E13 +0xBF59 0x7E14 +0xBF5A 0x7E15 +0xBF5B 0x7E16 +0xBF5C 0x7E17 +0xBF5D 0x7E18 +0xBF5E 0x7E19 +0xBF5F 0x7E1A +0xBF60 0x7E1B +0xBF61 0x7E1C +0xBF62 0x7E1D +0xBF63 0x7E1E +0xBF64 0x7E1F +0xBF65 0x7E20 +0xBF66 0x7E21 +0xBF67 0x7E22 +0xBF68 0x7E23 +0xBF69 0x7E24 +0xBF6A 0x7E25 +0xBF6B 0x7E26 +0xBF6C 0x7E27 +0xBF6D 0x7E28 +0xBF6E 0x7E29 +0xBF6F 0x7E2A +0xBF70 0x7E2B +0xBF71 0x7E2C +0xBF72 0x7E2D +0xBF73 0x7E2E +0xBF74 0x7E2F +0xBF75 0x7E30 +0xBF76 0x7E31 +0xBF77 0x7E32 +0xBF78 0x7E33 +0xBF79 0x7E34 +0xBF7A 0x7E35 +0xBF7B 0x7E36 +0xBF7C 0x7E37 +0xBF7D 0x7E38 +0xBF7E 0x7E39 +0xBF80 0x7E3A +0xBF81 0x7E3C +0xBF82 0x7E3D +0xBF83 0x7E3E +0xBF84 0x7E3F +0xBF85 0x7E40 +0xBF86 0x7E42 +0xBF87 0x7E43 +0xBF88 0x7E44 +0xBF89 0x7E45 +0xBF8A 0x7E46 +0xBF8B 0x7E48 +0xBF8C 0x7E49 +0xBF8D 0x7E4A +0xBF8E 0x7E4B +0xBF8F 0x7E4C +0xBF90 0x7E4D +0xBF91 0x7E4E +0xBF92 0x7E4F +0xBF93 0x7E50 +0xBF94 0x7E51 +0xBF95 0x7E52 +0xBF96 0x7E53 +0xBF97 0x7E54 +0xBF98 0x7E55 +0xBF99 0x7E56 +0xBF9A 0x7E57 +0xBF9B 0x7E58 +0xBF9C 0x7E59 +0xBF9D 0x7E5A +0xBF9E 0x7E5B +0xBF9F 0x7E5C +0xBFA0 0x7E5D +0xBFA1 0x4FCA +0xBFA2 0x7AE3 +0xBFA3 0x6D5A +0xBFA4 0x90E1 +0xBFA5 0x9A8F +0xBFA6 0x5580 +0xBFA7 0x5496 +0xBFA8 0x5361 +0xBFA9 0x54AF +0xBFAA 0x5F00 +0xBFAB 0x63E9 +0xBFAC 0x6977 +0xBFAD 0x51EF +0xBFAE 0x6168 +0xBFAF 0x520A +0xBFB0 0x582A +0xBFB1 0x52D8 +0xBFB2 0x574E +0xBFB3 0x780D +0xBFB4 0x770B +0xBFB5 0x5EB7 +0xBFB6 0x6177 +0xBFB7 0x7CE0 +0xBFB8 0x625B +0xBFB9 0x6297 +0xBFBA 0x4EA2 +0xBFBB 0x7095 +0xBFBC 0x8003 +0xBFBD 0x62F7 +0xBFBE 0x70E4 +0xBFBF 0x9760 +0xBFC0 0x5777 +0xBFC1 0x82DB +0xBFC2 0x67EF +0xBFC3 0x68F5 +0xBFC4 0x78D5 +0xBFC5 0x9897 +0xBFC6 0x79D1 +0xBFC7 0x58F3 +0xBFC8 0x54B3 +0xBFC9 0x53EF +0xBFCA 0x6E34 +0xBFCB 0x514B +0xBFCC 0x523B +0xBFCD 0x5BA2 +0xBFCE 0x8BFE +0xBFCF 0x80AF +0xBFD0 0x5543 +0xBFD1 0x57A6 +0xBFD2 0x6073 +0xBFD3 0x5751 +0xBFD4 0x542D +0xBFD5 0x7A7A +0xBFD6 0x6050 +0xBFD7 0x5B54 +0xBFD8 0x63A7 +0xBFD9 0x62A0 +0xBFDA 0x53E3 +0xBFDB 0x6263 +0xBFDC 0x5BC7 +0xBFDD 0x67AF +0xBFDE 0x54ED +0xBFDF 0x7A9F +0xBFE0 0x82E6 +0xBFE1 0x9177 +0xBFE2 0x5E93 +0xBFE3 0x88E4 +0xBFE4 0x5938 +0xBFE5 0x57AE +0xBFE6 0x630E +0xBFE7 0x8DE8 +0xBFE8 0x80EF +0xBFE9 0x5757 +0xBFEA 0x7B77 +0xBFEB 0x4FA9 +0xBFEC 0x5FEB +0xBFED 0x5BBD +0xBFEE 0x6B3E +0xBFEF 0x5321 +0xBFF0 0x7B50 +0xBFF1 0x72C2 +0xBFF2 0x6846 +0xBFF3 0x77FF +0xBFF4 0x7736 +0xBFF5 0x65F7 +0xBFF6 0x51B5 +0xBFF7 0x4E8F +0xBFF8 0x76D4 +0xBFF9 0x5CBF +0xBFFA 0x7AA5 +0xBFFB 0x8475 +0xBFFC 0x594E +0xBFFD 0x9B41 +0xBFFE 0x5080 +0xC040 0x7E5E +0xC041 0x7E5F +0xC042 0x7E60 +0xC043 0x7E61 +0xC044 0x7E62 +0xC045 0x7E63 +0xC046 0x7E64 +0xC047 0x7E65 +0xC048 0x7E66 +0xC049 0x7E67 +0xC04A 0x7E68 +0xC04B 0x7E69 +0xC04C 0x7E6A +0xC04D 0x7E6B +0xC04E 0x7E6C +0xC04F 0x7E6D +0xC050 0x7E6E +0xC051 0x7E6F +0xC052 0x7E70 +0xC053 0x7E71 +0xC054 0x7E72 +0xC055 0x7E73 +0xC056 0x7E74 +0xC057 0x7E75 +0xC058 0x7E76 +0xC059 0x7E77 +0xC05A 0x7E78 +0xC05B 0x7E79 +0xC05C 0x7E7A +0xC05D 0x7E7B +0xC05E 0x7E7C +0xC05F 0x7E7D +0xC060 0x7E7E +0xC061 0x7E7F +0xC062 0x7E80 +0xC063 0x7E81 +0xC064 0x7E83 +0xC065 0x7E84 +0xC066 0x7E85 +0xC067 0x7E86 +0xC068 0x7E87 +0xC069 0x7E88 +0xC06A 0x7E89 +0xC06B 0x7E8A +0xC06C 0x7E8B +0xC06D 0x7E8C +0xC06E 0x7E8D +0xC06F 0x7E8E +0xC070 0x7E8F +0xC071 0x7E90 +0xC072 0x7E91 +0xC073 0x7E92 +0xC074 0x7E93 +0xC075 0x7E94 +0xC076 0x7E95 +0xC077 0x7E96 +0xC078 0x7E97 +0xC079 0x7E98 +0xC07A 0x7E99 +0xC07B 0x7E9A +0xC07C 0x7E9C +0xC07D 0x7E9D +0xC07E 0x7E9E +0xC080 0x7EAE +0xC081 0x7EB4 +0xC082 0x7EBB +0xC083 0x7EBC +0xC084 0x7ED6 +0xC085 0x7EE4 +0xC086 0x7EEC +0xC087 0x7EF9 +0xC088 0x7F0A +0xC089 0x7F10 +0xC08A 0x7F1E +0xC08B 0x7F37 +0xC08C 0x7F39 +0xC08D 0x7F3B +0xC08E 0x7F3C +0xC08F 0x7F3D +0xC090 0x7F3E +0xC091 0x7F3F +0xC092 0x7F40 +0xC093 0x7F41 +0xC094 0x7F43 +0xC095 0x7F46 +0xC096 0x7F47 +0xC097 0x7F48 +0xC098 0x7F49 +0xC099 0x7F4A +0xC09A 0x7F4B +0xC09B 0x7F4C +0xC09C 0x7F4D +0xC09D 0x7F4E +0xC09E 0x7F4F +0xC09F 0x7F52 +0xC0A0 0x7F53 +0xC0A1 0x9988 +0xC0A2 0x6127 +0xC0A3 0x6E83 +0xC0A4 0x5764 +0xC0A5 0x6606 +0xC0A6 0x6346 +0xC0A7 0x56F0 +0xC0A8 0x62EC +0xC0A9 0x6269 +0xC0AA 0x5ED3 +0xC0AB 0x9614 +0xC0AC 0x5783 +0xC0AD 0x62C9 +0xC0AE 0x5587 +0xC0AF 0x8721 +0xC0B0 0x814A +0xC0B1 0x8FA3 +0xC0B2 0x5566 +0xC0B3 0x83B1 +0xC0B4 0x6765 +0xC0B5 0x8D56 +0xC0B6 0x84DD +0xC0B7 0x5A6A +0xC0B8 0x680F +0xC0B9 0x62E6 +0xC0BA 0x7BEE +0xC0BB 0x9611 +0xC0BC 0x5170 +0xC0BD 0x6F9C +0xC0BE 0x8C30 +0xC0BF 0x63FD +0xC0C0 0x89C8 +0xC0C1 0x61D2 +0xC0C2 0x7F06 +0xC0C3 0x70C2 +0xC0C4 0x6EE5 +0xC0C5 0x7405 +0xC0C6 0x6994 +0xC0C7 0x72FC +0xC0C8 0x5ECA +0xC0C9 0x90CE +0xC0CA 0x6717 +0xC0CB 0x6D6A +0xC0CC 0x635E +0xC0CD 0x52B3 +0xC0CE 0x7262 +0xC0CF 0x8001 +0xC0D0 0x4F6C +0xC0D1 0x59E5 +0xC0D2 0x916A +0xC0D3 0x70D9 +0xC0D4 0x6D9D +0xC0D5 0x52D2 +0xC0D6 0x4E50 +0xC0D7 0x96F7 +0xC0D8 0x956D +0xC0D9 0x857E +0xC0DA 0x78CA +0xC0DB 0x7D2F +0xC0DC 0x5121 +0xC0DD 0x5792 +0xC0DE 0x64C2 +0xC0DF 0x808B +0xC0E0 0x7C7B +0xC0E1 0x6CEA +0xC0E2 0x68F1 +0xC0E3 0x695E +0xC0E4 0x51B7 +0xC0E5 0x5398 +0xC0E6 0x68A8 +0xC0E7 0x7281 +0xC0E8 0x9ECE +0xC0E9 0x7BF1 +0xC0EA 0x72F8 +0xC0EB 0x79BB +0xC0EC 0x6F13 +0xC0ED 0x7406 +0xC0EE 0x674E +0xC0EF 0x91CC +0xC0F0 0x9CA4 +0xC0F1 0x793C +0xC0F2 0x8389 +0xC0F3 0x8354 +0xC0F4 0x540F +0xC0F5 0x6817 +0xC0F6 0x4E3D +0xC0F7 0x5389 +0xC0F8 0x52B1 +0xC0F9 0x783E +0xC0FA 0x5386 +0xC0FB 0x5229 +0xC0FC 0x5088 +0xC0FD 0x4F8B +0xC0FE 0x4FD0 +0xC140 0x7F56 +0xC141 0x7F59 +0xC142 0x7F5B +0xC143 0x7F5C +0xC144 0x7F5D +0xC145 0x7F5E +0xC146 0x7F60 +0xC147 0x7F63 +0xC148 0x7F64 +0xC149 0x7F65 +0xC14A 0x7F66 +0xC14B 0x7F67 +0xC14C 0x7F6B +0xC14D 0x7F6C +0xC14E 0x7F6D +0xC14F 0x7F6F +0xC150 0x7F70 +0xC151 0x7F73 +0xC152 0x7F75 +0xC153 0x7F76 +0xC154 0x7F77 +0xC155 0x7F78 +0xC156 0x7F7A +0xC157 0x7F7B +0xC158 0x7F7C +0xC159 0x7F7D +0xC15A 0x7F7F +0xC15B 0x7F80 +0xC15C 0x7F82 +0xC15D 0x7F83 +0xC15E 0x7F84 +0xC15F 0x7F85 +0xC160 0x7F86 +0xC161 0x7F87 +0xC162 0x7F88 +0xC163 0x7F89 +0xC164 0x7F8B +0xC165 0x7F8D +0xC166 0x7F8F +0xC167 0x7F90 +0xC168 0x7F91 +0xC169 0x7F92 +0xC16A 0x7F93 +0xC16B 0x7F95 +0xC16C 0x7F96 +0xC16D 0x7F97 +0xC16E 0x7F98 +0xC16F 0x7F99 +0xC170 0x7F9B +0xC171 0x7F9C +0xC172 0x7FA0 +0xC173 0x7FA2 +0xC174 0x7FA3 +0xC175 0x7FA5 +0xC176 0x7FA6 +0xC177 0x7FA8 +0xC178 0x7FA9 +0xC179 0x7FAA +0xC17A 0x7FAB +0xC17B 0x7FAC +0xC17C 0x7FAD +0xC17D 0x7FAE +0xC17E 0x7FB1 +0xC180 0x7FB3 +0xC181 0x7FB4 +0xC182 0x7FB5 +0xC183 0x7FB6 +0xC184 0x7FB7 +0xC185 0x7FBA +0xC186 0x7FBB +0xC187 0x7FBE +0xC188 0x7FC0 +0xC189 0x7FC2 +0xC18A 0x7FC3 +0xC18B 0x7FC4 +0xC18C 0x7FC6 +0xC18D 0x7FC7 +0xC18E 0x7FC8 +0xC18F 0x7FC9 +0xC190 0x7FCB +0xC191 0x7FCD +0xC192 0x7FCF +0xC193 0x7FD0 +0xC194 0x7FD1 +0xC195 0x7FD2 +0xC196 0x7FD3 +0xC197 0x7FD6 +0xC198 0x7FD7 +0xC199 0x7FD9 +0xC19A 0x7FDA +0xC19B 0x7FDB +0xC19C 0x7FDC +0xC19D 0x7FDD +0xC19E 0x7FDE +0xC19F 0x7FE2 +0xC1A0 0x7FE3 +0xC1A1 0x75E2 +0xC1A2 0x7ACB +0xC1A3 0x7C92 +0xC1A4 0x6CA5 +0xC1A5 0x96B6 +0xC1A6 0x529B +0xC1A7 0x7483 +0xC1A8 0x54E9 +0xC1A9 0x4FE9 +0xC1AA 0x8054 +0xC1AB 0x83B2 +0xC1AC 0x8FDE +0xC1AD 0x9570 +0xC1AE 0x5EC9 +0xC1AF 0x601C +0xC1B0 0x6D9F +0xC1B1 0x5E18 +0xC1B2 0x655B +0xC1B3 0x8138 +0xC1B4 0x94FE +0xC1B5 0x604B +0xC1B6 0x70BC +0xC1B7 0x7EC3 +0xC1B8 0x7CAE +0xC1B9 0x51C9 +0xC1BA 0x6881 +0xC1BB 0x7CB1 +0xC1BC 0x826F +0xC1BD 0x4E24 +0xC1BE 0x8F86 +0xC1BF 0x91CF +0xC1C0 0x667E +0xC1C1 0x4EAE +0xC1C2 0x8C05 +0xC1C3 0x64A9 +0xC1C4 0x804A +0xC1C5 0x50DA +0xC1C6 0x7597 +0xC1C7 0x71CE +0xC1C8 0x5BE5 +0xC1C9 0x8FBD +0xC1CA 0x6F66 +0xC1CB 0x4E86 +0xC1CC 0x6482 +0xC1CD 0x9563 +0xC1CE 0x5ED6 +0xC1CF 0x6599 +0xC1D0 0x5217 +0xC1D1 0x88C2 +0xC1D2 0x70C8 +0xC1D3 0x52A3 +0xC1D4 0x730E +0xC1D5 0x7433 +0xC1D6 0x6797 +0xC1D7 0x78F7 +0xC1D8 0x9716 +0xC1D9 0x4E34 +0xC1DA 0x90BB +0xC1DB 0x9CDE +0xC1DC 0x6DCB +0xC1DD 0x51DB +0xC1DE 0x8D41 +0xC1DF 0x541D +0xC1E0 0x62CE +0xC1E1 0x73B2 +0xC1E2 0x83F1 +0xC1E3 0x96F6 +0xC1E4 0x9F84 +0xC1E5 0x94C3 +0xC1E6 0x4F36 +0xC1E7 0x7F9A +0xC1E8 0x51CC +0xC1E9 0x7075 +0xC1EA 0x9675 +0xC1EB 0x5CAD +0xC1EC 0x9886 +0xC1ED 0x53E6 +0xC1EE 0x4EE4 +0xC1EF 0x6E9C +0xC1F0 0x7409 +0xC1F1 0x69B4 +0xC1F2 0x786B +0xC1F3 0x998F +0xC1F4 0x7559 +0xC1F5 0x5218 +0xC1F6 0x7624 +0xC1F7 0x6D41 +0xC1F8 0x67F3 +0xC1F9 0x516D +0xC1FA 0x9F99 +0xC1FB 0x804B +0xC1FC 0x5499 +0xC1FD 0x7B3C +0xC1FE 0x7ABF +0xC240 0x7FE4 +0xC241 0x7FE7 +0xC242 0x7FE8 +0xC243 0x7FEA +0xC244 0x7FEB +0xC245 0x7FEC +0xC246 0x7FED +0xC247 0x7FEF +0xC248 0x7FF2 +0xC249 0x7FF4 +0xC24A 0x7FF5 +0xC24B 0x7FF6 +0xC24C 0x7FF7 +0xC24D 0x7FF8 +0xC24E 0x7FF9 +0xC24F 0x7FFA +0xC250 0x7FFD +0xC251 0x7FFE +0xC252 0x7FFF +0xC253 0x8002 +0xC254 0x8007 +0xC255 0x8008 +0xC256 0x8009 +0xC257 0x800A +0xC258 0x800E +0xC259 0x800F +0xC25A 0x8011 +0xC25B 0x8013 +0xC25C 0x801A +0xC25D 0x801B +0xC25E 0x801D +0xC25F 0x801E +0xC260 0x801F +0xC261 0x8021 +0xC262 0x8023 +0xC263 0x8024 +0xC264 0x802B +0xC265 0x802C +0xC266 0x802D +0xC267 0x802E +0xC268 0x802F +0xC269 0x8030 +0xC26A 0x8032 +0xC26B 0x8034 +0xC26C 0x8039 +0xC26D 0x803A +0xC26E 0x803C +0xC26F 0x803E +0xC270 0x8040 +0xC271 0x8041 +0xC272 0x8044 +0xC273 0x8045 +0xC274 0x8047 +0xC275 0x8048 +0xC276 0x8049 +0xC277 0x804E +0xC278 0x804F +0xC279 0x8050 +0xC27A 0x8051 +0xC27B 0x8053 +0xC27C 0x8055 +0xC27D 0x8056 +0xC27E 0x8057 +0xC280 0x8059 +0xC281 0x805B +0xC282 0x805C +0xC283 0x805D +0xC284 0x805E +0xC285 0x805F +0xC286 0x8060 +0xC287 0x8061 +0xC288 0x8062 +0xC289 0x8063 +0xC28A 0x8064 +0xC28B 0x8065 +0xC28C 0x8066 +0xC28D 0x8067 +0xC28E 0x8068 +0xC28F 0x806B +0xC290 0x806C +0xC291 0x806D +0xC292 0x806E +0xC293 0x806F +0xC294 0x8070 +0xC295 0x8072 +0xC296 0x8073 +0xC297 0x8074 +0xC298 0x8075 +0xC299 0x8076 +0xC29A 0x8077 +0xC29B 0x8078 +0xC29C 0x8079 +0xC29D 0x807A +0xC29E 0x807B +0xC29F 0x807C +0xC2A0 0x807D +0xC2A1 0x9686 +0xC2A2 0x5784 +0xC2A3 0x62E2 +0xC2A4 0x9647 +0xC2A5 0x697C +0xC2A6 0x5A04 +0xC2A7 0x6402 +0xC2A8 0x7BD3 +0xC2A9 0x6F0F +0xC2AA 0x964B +0xC2AB 0x82A6 +0xC2AC 0x5362 +0xC2AD 0x9885 +0xC2AE 0x5E90 +0xC2AF 0x7089 +0xC2B0 0x63B3 +0xC2B1 0x5364 +0xC2B2 0x864F +0xC2B3 0x9C81 +0xC2B4 0x9E93 +0xC2B5 0x788C +0xC2B6 0x9732 +0xC2B7 0x8DEF +0xC2B8 0x8D42 +0xC2B9 0x9E7F +0xC2BA 0x6F5E +0xC2BB 0x7984 +0xC2BC 0x5F55 +0xC2BD 0x9646 +0xC2BE 0x622E +0xC2BF 0x9A74 +0xC2C0 0x5415 +0xC2C1 0x94DD +0xC2C2 0x4FA3 +0xC2C3 0x65C5 +0xC2C4 0x5C65 +0xC2C5 0x5C61 +0xC2C6 0x7F15 +0xC2C7 0x8651 +0xC2C8 0x6C2F +0xC2C9 0x5F8B +0xC2CA 0x7387 +0xC2CB 0x6EE4 +0xC2CC 0x7EFF +0xC2CD 0x5CE6 +0xC2CE 0x631B +0xC2CF 0x5B6A +0xC2D0 0x6EE6 +0xC2D1 0x5375 +0xC2D2 0x4E71 +0xC2D3 0x63A0 +0xC2D4 0x7565 +0xC2D5 0x62A1 +0xC2D6 0x8F6E +0xC2D7 0x4F26 +0xC2D8 0x4ED1 +0xC2D9 0x6CA6 +0xC2DA 0x7EB6 +0xC2DB 0x8BBA +0xC2DC 0x841D +0xC2DD 0x87BA +0xC2DE 0x7F57 +0xC2DF 0x903B +0xC2E0 0x9523 +0xC2E1 0x7BA9 +0xC2E2 0x9AA1 +0xC2E3 0x88F8 +0xC2E4 0x843D +0xC2E5 0x6D1B +0xC2E6 0x9A86 +0xC2E7 0x7EDC +0xC2E8 0x5988 +0xC2E9 0x9EBB +0xC2EA 0x739B +0xC2EB 0x7801 +0xC2EC 0x8682 +0xC2ED 0x9A6C +0xC2EE 0x9A82 +0xC2EF 0x561B +0xC2F0 0x5417 +0xC2F1 0x57CB +0xC2F2 0x4E70 +0xC2F3 0x9EA6 +0xC2F4 0x5356 +0xC2F5 0x8FC8 +0xC2F6 0x8109 +0xC2F7 0x7792 +0xC2F8 0x9992 +0xC2F9 0x86EE +0xC2FA 0x6EE1 +0xC2FB 0x8513 +0xC2FC 0x66FC +0xC2FD 0x6162 +0xC2FE 0x6F2B +0xC340 0x807E +0xC341 0x8081 +0xC342 0x8082 +0xC343 0x8085 +0xC344 0x8088 +0xC345 0x808A +0xC346 0x808D +0xC347 0x808E +0xC348 0x808F +0xC349 0x8090 +0xC34A 0x8091 +0xC34B 0x8092 +0xC34C 0x8094 +0xC34D 0x8095 +0xC34E 0x8097 +0xC34F 0x8099 +0xC350 0x809E +0xC351 0x80A3 +0xC352 0x80A6 +0xC353 0x80A7 +0xC354 0x80A8 +0xC355 0x80AC +0xC356 0x80B0 +0xC357 0x80B3 +0xC358 0x80B5 +0xC359 0x80B6 +0xC35A 0x80B8 +0xC35B 0x80B9 +0xC35C 0x80BB +0xC35D 0x80C5 +0xC35E 0x80C7 +0xC35F 0x80C8 +0xC360 0x80C9 +0xC361 0x80CA +0xC362 0x80CB +0xC363 0x80CF +0xC364 0x80D0 +0xC365 0x80D1 +0xC366 0x80D2 +0xC367 0x80D3 +0xC368 0x80D4 +0xC369 0x80D5 +0xC36A 0x80D8 +0xC36B 0x80DF +0xC36C 0x80E0 +0xC36D 0x80E2 +0xC36E 0x80E3 +0xC36F 0x80E6 +0xC370 0x80EE +0xC371 0x80F5 +0xC372 0x80F7 +0xC373 0x80F9 +0xC374 0x80FB +0xC375 0x80FE +0xC376 0x80FF +0xC377 0x8100 +0xC378 0x8101 +0xC379 0x8103 +0xC37A 0x8104 +0xC37B 0x8105 +0xC37C 0x8107 +0xC37D 0x8108 +0xC37E 0x810B +0xC380 0x810C +0xC381 0x8115 +0xC382 0x8117 +0xC383 0x8119 +0xC384 0x811B +0xC385 0x811C +0xC386 0x811D +0xC387 0x811F +0xC388 0x8120 +0xC389 0x8121 +0xC38A 0x8122 +0xC38B 0x8123 +0xC38C 0x8124 +0xC38D 0x8125 +0xC38E 0x8126 +0xC38F 0x8127 +0xC390 0x8128 +0xC391 0x8129 +0xC392 0x812A +0xC393 0x812B +0xC394 0x812D +0xC395 0x812E +0xC396 0x8130 +0xC397 0x8133 +0xC398 0x8134 +0xC399 0x8135 +0xC39A 0x8137 +0xC39B 0x8139 +0xC39C 0x813A +0xC39D 0x813B +0xC39E 0x813C +0xC39F 0x813D +0xC3A0 0x813F +0xC3A1 0x8C29 +0xC3A2 0x8292 +0xC3A3 0x832B +0xC3A4 0x76F2 +0xC3A5 0x6C13 +0xC3A6 0x5FD9 +0xC3A7 0x83BD +0xC3A8 0x732B +0xC3A9 0x8305 +0xC3AA 0x951A +0xC3AB 0x6BDB +0xC3AC 0x77DB +0xC3AD 0x94C6 +0xC3AE 0x536F +0xC3AF 0x8302 +0xC3B0 0x5192 +0xC3B1 0x5E3D +0xC3B2 0x8C8C +0xC3B3 0x8D38 +0xC3B4 0x4E48 +0xC3B5 0x73AB +0xC3B6 0x679A +0xC3B7 0x6885 +0xC3B8 0x9176 +0xC3B9 0x9709 +0xC3BA 0x7164 +0xC3BB 0x6CA1 +0xC3BC 0x7709 +0xC3BD 0x5A92 +0xC3BE 0x9541 +0xC3BF 0x6BCF +0xC3C0 0x7F8E +0xC3C1 0x6627 +0xC3C2 0x5BD0 +0xC3C3 0x59B9 +0xC3C4 0x5A9A +0xC3C5 0x95E8 +0xC3C6 0x95F7 +0xC3C7 0x4EEC +0xC3C8 0x840C +0xC3C9 0x8499 +0xC3CA 0x6AAC +0xC3CB 0x76DF +0xC3CC 0x9530 +0xC3CD 0x731B +0xC3CE 0x68A6 +0xC3CF 0x5B5F +0xC3D0 0x772F +0xC3D1 0x919A +0xC3D2 0x9761 +0xC3D3 0x7CDC +0xC3D4 0x8FF7 +0xC3D5 0x8C1C +0xC3D6 0x5F25 +0xC3D7 0x7C73 +0xC3D8 0x79D8 +0xC3D9 0x89C5 +0xC3DA 0x6CCC +0xC3DB 0x871C +0xC3DC 0x5BC6 +0xC3DD 0x5E42 +0xC3DE 0x68C9 +0xC3DF 0x7720 +0xC3E0 0x7EF5 +0xC3E1 0x5195 +0xC3E2 0x514D +0xC3E3 0x52C9 +0xC3E4 0x5A29 +0xC3E5 0x7F05 +0xC3E6 0x9762 +0xC3E7 0x82D7 +0xC3E8 0x63CF +0xC3E9 0x7784 +0xC3EA 0x85D0 +0xC3EB 0x79D2 +0xC3EC 0x6E3A +0xC3ED 0x5E99 +0xC3EE 0x5999 +0xC3EF 0x8511 +0xC3F0 0x706D +0xC3F1 0x6C11 +0xC3F2 0x62BF +0xC3F3 0x76BF +0xC3F4 0x654F +0xC3F5 0x60AF +0xC3F6 0x95FD +0xC3F7 0x660E +0xC3F8 0x879F +0xC3F9 0x9E23 +0xC3FA 0x94ED +0xC3FB 0x540D +0xC3FC 0x547D +0xC3FD 0x8C2C +0xC3FE 0x6478 +0xC440 0x8140 +0xC441 0x8141 +0xC442 0x8142 +0xC443 0x8143 +0xC444 0x8144 +0xC445 0x8145 +0xC446 0x8147 +0xC447 0x8149 +0xC448 0x814D +0xC449 0x814E +0xC44A 0x814F +0xC44B 0x8152 +0xC44C 0x8156 +0xC44D 0x8157 +0xC44E 0x8158 +0xC44F 0x815B +0xC450 0x815C +0xC451 0x815D +0xC452 0x815E +0xC453 0x815F +0xC454 0x8161 +0xC455 0x8162 +0xC456 0x8163 +0xC457 0x8164 +0xC458 0x8166 +0xC459 0x8168 +0xC45A 0x816A +0xC45B 0x816B +0xC45C 0x816C +0xC45D 0x816F +0xC45E 0x8172 +0xC45F 0x8173 +0xC460 0x8175 +0xC461 0x8176 +0xC462 0x8177 +0xC463 0x8178 +0xC464 0x8181 +0xC465 0x8183 +0xC466 0x8184 +0xC467 0x8185 +0xC468 0x8186 +0xC469 0x8187 +0xC46A 0x8189 +0xC46B 0x818B +0xC46C 0x818C +0xC46D 0x818D +0xC46E 0x818E +0xC46F 0x8190 +0xC470 0x8192 +0xC471 0x8193 +0xC472 0x8194 +0xC473 0x8195 +0xC474 0x8196 +0xC475 0x8197 +0xC476 0x8199 +0xC477 0x819A +0xC478 0x819E +0xC479 0x819F +0xC47A 0x81A0 +0xC47B 0x81A1 +0xC47C 0x81A2 +0xC47D 0x81A4 +0xC47E 0x81A5 +0xC480 0x81A7 +0xC481 0x81A9 +0xC482 0x81AB +0xC483 0x81AC +0xC484 0x81AD +0xC485 0x81AE +0xC486 0x81AF +0xC487 0x81B0 +0xC488 0x81B1 +0xC489 0x81B2 +0xC48A 0x81B4 +0xC48B 0x81B5 +0xC48C 0x81B6 +0xC48D 0x81B7 +0xC48E 0x81B8 +0xC48F 0x81B9 +0xC490 0x81BC +0xC491 0x81BD +0xC492 0x81BE +0xC493 0x81BF +0xC494 0x81C4 +0xC495 0x81C5 +0xC496 0x81C7 +0xC497 0x81C8 +0xC498 0x81C9 +0xC499 0x81CB +0xC49A 0x81CD +0xC49B 0x81CE +0xC49C 0x81CF +0xC49D 0x81D0 +0xC49E 0x81D1 +0xC49F 0x81D2 +0xC4A0 0x81D3 +0xC4A1 0x6479 +0xC4A2 0x8611 +0xC4A3 0x6A21 +0xC4A4 0x819C +0xC4A5 0x78E8 +0xC4A6 0x6469 +0xC4A7 0x9B54 +0xC4A8 0x62B9 +0xC4A9 0x672B +0xC4AA 0x83AB +0xC4AB 0x58A8 +0xC4AC 0x9ED8 +0xC4AD 0x6CAB +0xC4AE 0x6F20 +0xC4AF 0x5BDE +0xC4B0 0x964C +0xC4B1 0x8C0B +0xC4B2 0x725F +0xC4B3 0x67D0 +0xC4B4 0x62C7 +0xC4B5 0x7261 +0xC4B6 0x4EA9 +0xC4B7 0x59C6 +0xC4B8 0x6BCD +0xC4B9 0x5893 +0xC4BA 0x66AE +0xC4BB 0x5E55 +0xC4BC 0x52DF +0xC4BD 0x6155 +0xC4BE 0x6728 +0xC4BF 0x76EE +0xC4C0 0x7766 +0xC4C1 0x7267 +0xC4C2 0x7A46 +0xC4C3 0x62FF +0xC4C4 0x54EA +0xC4C5 0x5450 +0xC4C6 0x94A0 +0xC4C7 0x90A3 +0xC4C8 0x5A1C +0xC4C9 0x7EB3 +0xC4CA 0x6C16 +0xC4CB 0x4E43 +0xC4CC 0x5976 +0xC4CD 0x8010 +0xC4CE 0x5948 +0xC4CF 0x5357 +0xC4D0 0x7537 +0xC4D1 0x96BE +0xC4D2 0x56CA +0xC4D3 0x6320 +0xC4D4 0x8111 +0xC4D5 0x607C +0xC4D6 0x95F9 +0xC4D7 0x6DD6 +0xC4D8 0x5462 +0xC4D9 0x9981 +0xC4DA 0x5185 +0xC4DB 0x5AE9 +0xC4DC 0x80FD +0xC4DD 0x59AE +0xC4DE 0x9713 +0xC4DF 0x502A +0xC4E0 0x6CE5 +0xC4E1 0x5C3C +0xC4E2 0x62DF +0xC4E3 0x4F60 +0xC4E4 0x533F +0xC4E5 0x817B +0xC4E6 0x9006 +0xC4E7 0x6EBA +0xC4E8 0x852B +0xC4E9 0x62C8 +0xC4EA 0x5E74 +0xC4EB 0x78BE +0xC4EC 0x64B5 +0xC4ED 0x637B +0xC4EE 0x5FF5 +0xC4EF 0x5A18 +0xC4F0 0x917F +0xC4F1 0x9E1F +0xC4F2 0x5C3F +0xC4F3 0x634F +0xC4F4 0x8042 +0xC4F5 0x5B7D +0xC4F6 0x556E +0xC4F7 0x954A +0xC4F8 0x954D +0xC4F9 0x6D85 +0xC4FA 0x60A8 +0xC4FB 0x67E0 +0xC4FC 0x72DE +0xC4FD 0x51DD +0xC4FE 0x5B81 +0xC540 0x81D4 +0xC541 0x81D5 +0xC542 0x81D6 +0xC543 0x81D7 +0xC544 0x81D8 +0xC545 0x81D9 +0xC546 0x81DA +0xC547 0x81DB +0xC548 0x81DC +0xC549 0x81DD +0xC54A 0x81DE +0xC54B 0x81DF +0xC54C 0x81E0 +0xC54D 0x81E1 +0xC54E 0x81E2 +0xC54F 0x81E4 +0xC550 0x81E5 +0xC551 0x81E6 +0xC552 0x81E8 +0xC553 0x81E9 +0xC554 0x81EB +0xC555 0x81EE +0xC556 0x81EF +0xC557 0x81F0 +0xC558 0x81F1 +0xC559 0x81F2 +0xC55A 0x81F5 +0xC55B 0x81F6 +0xC55C 0x81F7 +0xC55D 0x81F8 +0xC55E 0x81F9 +0xC55F 0x81FA +0xC560 0x81FD +0xC561 0x81FF +0xC562 0x8203 +0xC563 0x8207 +0xC564 0x8208 +0xC565 0x8209 +0xC566 0x820A +0xC567 0x820B +0xC568 0x820E +0xC569 0x820F +0xC56A 0x8211 +0xC56B 0x8213 +0xC56C 0x8215 +0xC56D 0x8216 +0xC56E 0x8217 +0xC56F 0x8218 +0xC570 0x8219 +0xC571 0x821A +0xC572 0x821D +0xC573 0x8220 +0xC574 0x8224 +0xC575 0x8225 +0xC576 0x8226 +0xC577 0x8227 +0xC578 0x8229 +0xC579 0x822E +0xC57A 0x8232 +0xC57B 0x823A +0xC57C 0x823C +0xC57D 0x823D +0xC57E 0x823F +0xC580 0x8240 +0xC581 0x8241 +0xC582 0x8242 +0xC583 0x8243 +0xC584 0x8245 +0xC585 0x8246 +0xC586 0x8248 +0xC587 0x824A +0xC588 0x824C +0xC589 0x824D +0xC58A 0x824E +0xC58B 0x8250 +0xC58C 0x8251 +0xC58D 0x8252 +0xC58E 0x8253 +0xC58F 0x8254 +0xC590 0x8255 +0xC591 0x8256 +0xC592 0x8257 +0xC593 0x8259 +0xC594 0x825B +0xC595 0x825C +0xC596 0x825D +0xC597 0x825E +0xC598 0x8260 +0xC599 0x8261 +0xC59A 0x8262 +0xC59B 0x8263 +0xC59C 0x8264 +0xC59D 0x8265 +0xC59E 0x8266 +0xC59F 0x8267 +0xC5A0 0x8269 +0xC5A1 0x62E7 +0xC5A2 0x6CDE +0xC5A3 0x725B +0xC5A4 0x626D +0xC5A5 0x94AE +0xC5A6 0x7EBD +0xC5A7 0x8113 +0xC5A8 0x6D53 +0xC5A9 0x519C +0xC5AA 0x5F04 +0xC5AB 0x5974 +0xC5AC 0x52AA +0xC5AD 0x6012 +0xC5AE 0x5973 +0xC5AF 0x6696 +0xC5B0 0x8650 +0xC5B1 0x759F +0xC5B2 0x632A +0xC5B3 0x61E6 +0xC5B4 0x7CEF +0xC5B5 0x8BFA +0xC5B6 0x54E6 +0xC5B7 0x6B27 +0xC5B8 0x9E25 +0xC5B9 0x6BB4 +0xC5BA 0x85D5 +0xC5BB 0x5455 +0xC5BC 0x5076 +0xC5BD 0x6CA4 +0xC5BE 0x556A +0xC5BF 0x8DB4 +0xC5C0 0x722C +0xC5C1 0x5E15 +0xC5C2 0x6015 +0xC5C3 0x7436 +0xC5C4 0x62CD +0xC5C5 0x6392 +0xC5C6 0x724C +0xC5C7 0x5F98 +0xC5C8 0x6E43 +0xC5C9 0x6D3E +0xC5CA 0x6500 +0xC5CB 0x6F58 +0xC5CC 0x76D8 +0xC5CD 0x78D0 +0xC5CE 0x76FC +0xC5CF 0x7554 +0xC5D0 0x5224 +0xC5D1 0x53DB +0xC5D2 0x4E53 +0xC5D3 0x5E9E +0xC5D4 0x65C1 +0xC5D5 0x802A +0xC5D6 0x80D6 +0xC5D7 0x629B +0xC5D8 0x5486 +0xC5D9 0x5228 +0xC5DA 0x70AE +0xC5DB 0x888D +0xC5DC 0x8DD1 +0xC5DD 0x6CE1 +0xC5DE 0x5478 +0xC5DF 0x80DA +0xC5E0 0x57F9 +0xC5E1 0x88F4 +0xC5E2 0x8D54 +0xC5E3 0x966A +0xC5E4 0x914D +0xC5E5 0x4F69 +0xC5E6 0x6C9B +0xC5E7 0x55B7 +0xC5E8 0x76C6 +0xC5E9 0x7830 +0xC5EA 0x62A8 +0xC5EB 0x70F9 +0xC5EC 0x6F8E +0xC5ED 0x5F6D +0xC5EE 0x84EC +0xC5EF 0x68DA +0xC5F0 0x787C +0xC5F1 0x7BF7 +0xC5F2 0x81A8 +0xC5F3 0x670B +0xC5F4 0x9E4F +0xC5F5 0x6367 +0xC5F6 0x78B0 +0xC5F7 0x576F +0xC5F8 0x7812 +0xC5F9 0x9739 +0xC5FA 0x6279 +0xC5FB 0x62AB +0xC5FC 0x5288 +0xC5FD 0x7435 +0xC5FE 0x6BD7 +0xC640 0x826A +0xC641 0x826B +0xC642 0x826C +0xC643 0x826D +0xC644 0x8271 +0xC645 0x8275 +0xC646 0x8276 +0xC647 0x8277 +0xC648 0x8278 +0xC649 0x827B +0xC64A 0x827C +0xC64B 0x8280 +0xC64C 0x8281 +0xC64D 0x8283 +0xC64E 0x8285 +0xC64F 0x8286 +0xC650 0x8287 +0xC651 0x8289 +0xC652 0x828C +0xC653 0x8290 +0xC654 0x8293 +0xC655 0x8294 +0xC656 0x8295 +0xC657 0x8296 +0xC658 0x829A +0xC659 0x829B +0xC65A 0x829E +0xC65B 0x82A0 +0xC65C 0x82A2 +0xC65D 0x82A3 +0xC65E 0x82A7 +0xC65F 0x82B2 +0xC660 0x82B5 +0xC661 0x82B6 +0xC662 0x82BA +0xC663 0x82BB +0xC664 0x82BC +0xC665 0x82BF +0xC666 0x82C0 +0xC667 0x82C2 +0xC668 0x82C3 +0xC669 0x82C5 +0xC66A 0x82C6 +0xC66B 0x82C9 +0xC66C 0x82D0 +0xC66D 0x82D6 +0xC66E 0x82D9 +0xC66F 0x82DA +0xC670 0x82DD +0xC671 0x82E2 +0xC672 0x82E7 +0xC673 0x82E8 +0xC674 0x82E9 +0xC675 0x82EA +0xC676 0x82EC +0xC677 0x82ED +0xC678 0x82EE +0xC679 0x82F0 +0xC67A 0x82F2 +0xC67B 0x82F3 +0xC67C 0x82F5 +0xC67D 0x82F6 +0xC67E 0x82F8 +0xC680 0x82FA +0xC681 0x82FC +0xC682 0x82FD +0xC683 0x82FE +0xC684 0x82FF +0xC685 0x8300 +0xC686 0x830A +0xC687 0x830B +0xC688 0x830D +0xC689 0x8310 +0xC68A 0x8312 +0xC68B 0x8313 +0xC68C 0x8316 +0xC68D 0x8318 +0xC68E 0x8319 +0xC68F 0x831D +0xC690 0x831E +0xC691 0x831F +0xC692 0x8320 +0xC693 0x8321 +0xC694 0x8322 +0xC695 0x8323 +0xC696 0x8324 +0xC697 0x8325 +0xC698 0x8326 +0xC699 0x8329 +0xC69A 0x832A +0xC69B 0x832E +0xC69C 0x8330 +0xC69D 0x8332 +0xC69E 0x8337 +0xC69F 0x833B +0xC6A0 0x833D +0xC6A1 0x5564 +0xC6A2 0x813E +0xC6A3 0x75B2 +0xC6A4 0x76AE +0xC6A5 0x5339 +0xC6A6 0x75DE +0xC6A7 0x50FB +0xC6A8 0x5C41 +0xC6A9 0x8B6C +0xC6AA 0x7BC7 +0xC6AB 0x504F +0xC6AC 0x7247 +0xC6AD 0x9A97 +0xC6AE 0x98D8 +0xC6AF 0x6F02 +0xC6B0 0x74E2 +0xC6B1 0x7968 +0xC6B2 0x6487 +0xC6B3 0x77A5 +0xC6B4 0x62FC +0xC6B5 0x9891 +0xC6B6 0x8D2B +0xC6B7 0x54C1 +0xC6B8 0x8058 +0xC6B9 0x4E52 +0xC6BA 0x576A +0xC6BB 0x82F9 +0xC6BC 0x840D +0xC6BD 0x5E73 +0xC6BE 0x51ED +0xC6BF 0x74F6 +0xC6C0 0x8BC4 +0xC6C1 0x5C4F +0xC6C2 0x5761 +0xC6C3 0x6CFC +0xC6C4 0x9887 +0xC6C5 0x5A46 +0xC6C6 0x7834 +0xC6C7 0x9B44 +0xC6C8 0x8FEB +0xC6C9 0x7C95 +0xC6CA 0x5256 +0xC6CB 0x6251 +0xC6CC 0x94FA +0xC6CD 0x4EC6 +0xC6CE 0x8386 +0xC6CF 0x8461 +0xC6D0 0x83E9 +0xC6D1 0x84B2 +0xC6D2 0x57D4 +0xC6D3 0x6734 +0xC6D4 0x5703 +0xC6D5 0x666E +0xC6D6 0x6D66 +0xC6D7 0x8C31 +0xC6D8 0x66DD +0xC6D9 0x7011 +0xC6DA 0x671F +0xC6DB 0x6B3A +0xC6DC 0x6816 +0xC6DD 0x621A +0xC6DE 0x59BB +0xC6DF 0x4E03 +0xC6E0 0x51C4 +0xC6E1 0x6F06 +0xC6E2 0x67D2 +0xC6E3 0x6C8F +0xC6E4 0x5176 +0xC6E5 0x68CB +0xC6E6 0x5947 +0xC6E7 0x6B67 +0xC6E8 0x7566 +0xC6E9 0x5D0E +0xC6EA 0x8110 +0xC6EB 0x9F50 +0xC6EC 0x65D7 +0xC6ED 0x7948 +0xC6EE 0x7941 +0xC6EF 0x9A91 +0xC6F0 0x8D77 +0xC6F1 0x5C82 +0xC6F2 0x4E5E +0xC6F3 0x4F01 +0xC6F4 0x542F +0xC6F5 0x5951 +0xC6F6 0x780C +0xC6F7 0x5668 +0xC6F8 0x6C14 +0xC6F9 0x8FC4 +0xC6FA 0x5F03 +0xC6FB 0x6C7D +0xC6FC 0x6CE3 +0xC6FD 0x8BAB +0xC6FE 0x6390 +0xC740 0x833E +0xC741 0x833F +0xC742 0x8341 +0xC743 0x8342 +0xC744 0x8344 +0xC745 0x8345 +0xC746 0x8348 +0xC747 0x834A +0xC748 0x834B +0xC749 0x834C +0xC74A 0x834D +0xC74B 0x834E +0xC74C 0x8353 +0xC74D 0x8355 +0xC74E 0x8356 +0xC74F 0x8357 +0xC750 0x8358 +0xC751 0x8359 +0xC752 0x835D +0xC753 0x8362 +0xC754 0x8370 +0xC755 0x8371 +0xC756 0x8372 +0xC757 0x8373 +0xC758 0x8374 +0xC759 0x8375 +0xC75A 0x8376 +0xC75B 0x8379 +0xC75C 0x837A +0xC75D 0x837E +0xC75E 0x837F +0xC75F 0x8380 +0xC760 0x8381 +0xC761 0x8382 +0xC762 0x8383 +0xC763 0x8384 +0xC764 0x8387 +0xC765 0x8388 +0xC766 0x838A +0xC767 0x838B +0xC768 0x838C +0xC769 0x838D +0xC76A 0x838F +0xC76B 0x8390 +0xC76C 0x8391 +0xC76D 0x8394 +0xC76E 0x8395 +0xC76F 0x8396 +0xC770 0x8397 +0xC771 0x8399 +0xC772 0x839A +0xC773 0x839D +0xC774 0x839F +0xC775 0x83A1 +0xC776 0x83A2 +0xC777 0x83A3 +0xC778 0x83A4 +0xC779 0x83A5 +0xC77A 0x83A6 +0xC77B 0x83A7 +0xC77C 0x83AC +0xC77D 0x83AD +0xC77E 0x83AE +0xC780 0x83AF +0xC781 0x83B5 +0xC782 0x83BB +0xC783 0x83BE +0xC784 0x83BF +0xC785 0x83C2 +0xC786 0x83C3 +0xC787 0x83C4 +0xC788 0x83C6 +0xC789 0x83C8 +0xC78A 0x83C9 +0xC78B 0x83CB +0xC78C 0x83CD +0xC78D 0x83CE +0xC78E 0x83D0 +0xC78F 0x83D1 +0xC790 0x83D2 +0xC791 0x83D3 +0xC792 0x83D5 +0xC793 0x83D7 +0xC794 0x83D9 +0xC795 0x83DA +0xC796 0x83DB +0xC797 0x83DE +0xC798 0x83E2 +0xC799 0x83E3 +0xC79A 0x83E4 +0xC79B 0x83E6 +0xC79C 0x83E7 +0xC79D 0x83E8 +0xC79E 0x83EB +0xC79F 0x83EC +0xC7A0 0x83ED +0xC7A1 0x6070 +0xC7A2 0x6D3D +0xC7A3 0x7275 +0xC7A4 0x6266 +0xC7A5 0x948E +0xC7A6 0x94C5 +0xC7A7 0x5343 +0xC7A8 0x8FC1 +0xC7A9 0x7B7E +0xC7AA 0x4EDF +0xC7AB 0x8C26 +0xC7AC 0x4E7E +0xC7AD 0x9ED4 +0xC7AE 0x94B1 +0xC7AF 0x94B3 +0xC7B0 0x524D +0xC7B1 0x6F5C +0xC7B2 0x9063 +0xC7B3 0x6D45 +0xC7B4 0x8C34 +0xC7B5 0x5811 +0xC7B6 0x5D4C +0xC7B7 0x6B20 +0xC7B8 0x6B49 +0xC7B9 0x67AA +0xC7BA 0x545B +0xC7BB 0x8154 +0xC7BC 0x7F8C +0xC7BD 0x5899 +0xC7BE 0x8537 +0xC7BF 0x5F3A +0xC7C0 0x62A2 +0xC7C1 0x6A47 +0xC7C2 0x9539 +0xC7C3 0x6572 +0xC7C4 0x6084 +0xC7C5 0x6865 +0xC7C6 0x77A7 +0xC7C7 0x4E54 +0xC7C8 0x4FA8 +0xC7C9 0x5DE7 +0xC7CA 0x9798 +0xC7CB 0x64AC +0xC7CC 0x7FD8 +0xC7CD 0x5CED +0xC7CE 0x4FCF +0xC7CF 0x7A8D +0xC7D0 0x5207 +0xC7D1 0x8304 +0xC7D2 0x4E14 +0xC7D3 0x602F +0xC7D4 0x7A83 +0xC7D5 0x94A6 +0xC7D6 0x4FB5 +0xC7D7 0x4EB2 +0xC7D8 0x79E6 +0xC7D9 0x7434 +0xC7DA 0x52E4 +0xC7DB 0x82B9 +0xC7DC 0x64D2 +0xC7DD 0x79BD +0xC7DE 0x5BDD +0xC7DF 0x6C81 +0xC7E0 0x9752 +0xC7E1 0x8F7B +0xC7E2 0x6C22 +0xC7E3 0x503E +0xC7E4 0x537F +0xC7E5 0x6E05 +0xC7E6 0x64CE +0xC7E7 0x6674 +0xC7E8 0x6C30 +0xC7E9 0x60C5 +0xC7EA 0x9877 +0xC7EB 0x8BF7 +0xC7EC 0x5E86 +0xC7ED 0x743C +0xC7EE 0x7A77 +0xC7EF 0x79CB +0xC7F0 0x4E18 +0xC7F1 0x90B1 +0xC7F2 0x7403 +0xC7F3 0x6C42 +0xC7F4 0x56DA +0xC7F5 0x914B +0xC7F6 0x6CC5 +0xC7F7 0x8D8B +0xC7F8 0x533A +0xC7F9 0x86C6 +0xC7FA 0x66F2 +0xC7FB 0x8EAF +0xC7FC 0x5C48 +0xC7FD 0x9A71 +0xC7FE 0x6E20 +0xC840 0x83EE +0xC841 0x83EF +0xC842 0x83F3 +0xC843 0x83F4 +0xC844 0x83F5 +0xC845 0x83F6 +0xC846 0x83F7 +0xC847 0x83FA +0xC848 0x83FB +0xC849 0x83FC +0xC84A 0x83FE +0xC84B 0x83FF +0xC84C 0x8400 +0xC84D 0x8402 +0xC84E 0x8405 +0xC84F 0x8407 +0xC850 0x8408 +0xC851 0x8409 +0xC852 0x840A +0xC853 0x8410 +0xC854 0x8412 +0xC855 0x8413 +0xC856 0x8414 +0xC857 0x8415 +0xC858 0x8416 +0xC859 0x8417 +0xC85A 0x8419 +0xC85B 0x841A +0xC85C 0x841B +0xC85D 0x841E +0xC85E 0x841F +0xC85F 0x8420 +0xC860 0x8421 +0xC861 0x8422 +0xC862 0x8423 +0xC863 0x8429 +0xC864 0x842A +0xC865 0x842B +0xC866 0x842C +0xC867 0x842D +0xC868 0x842E +0xC869 0x842F +0xC86A 0x8430 +0xC86B 0x8432 +0xC86C 0x8433 +0xC86D 0x8434 +0xC86E 0x8435 +0xC86F 0x8436 +0xC870 0x8437 +0xC871 0x8439 +0xC872 0x843A +0xC873 0x843B +0xC874 0x843E +0xC875 0x843F +0xC876 0x8440 +0xC877 0x8441 +0xC878 0x8442 +0xC879 0x8443 +0xC87A 0x8444 +0xC87B 0x8445 +0xC87C 0x8447 +0xC87D 0x8448 +0xC87E 0x8449 +0xC880 0x844A +0xC881 0x844B +0xC882 0x844C +0xC883 0x844D +0xC884 0x844E +0xC885 0x844F +0xC886 0x8450 +0xC887 0x8452 +0xC888 0x8453 +0xC889 0x8454 +0xC88A 0x8455 +0xC88B 0x8456 +0xC88C 0x8458 +0xC88D 0x845D +0xC88E 0x845E +0xC88F 0x845F +0xC890 0x8460 +0xC891 0x8462 +0xC892 0x8464 +0xC893 0x8465 +0xC894 0x8466 +0xC895 0x8467 +0xC896 0x8468 +0xC897 0x846A +0xC898 0x846E +0xC899 0x846F +0xC89A 0x8470 +0xC89B 0x8472 +0xC89C 0x8474 +0xC89D 0x8477 +0xC89E 0x8479 +0xC89F 0x847B +0xC8A0 0x847C +0xC8A1 0x53D6 +0xC8A2 0x5A36 +0xC8A3 0x9F8B +0xC8A4 0x8DA3 +0xC8A5 0x53BB +0xC8A6 0x5708 +0xC8A7 0x98A7 +0xC8A8 0x6743 +0xC8A9 0x919B +0xC8AA 0x6CC9 +0xC8AB 0x5168 +0xC8AC 0x75CA +0xC8AD 0x62F3 +0xC8AE 0x72AC +0xC8AF 0x5238 +0xC8B0 0x529D +0xC8B1 0x7F3A +0xC8B2 0x7094 +0xC8B3 0x7638 +0xC8B4 0x5374 +0xC8B5 0x9E4A +0xC8B6 0x69B7 +0xC8B7 0x786E +0xC8B8 0x96C0 +0xC8B9 0x88D9 +0xC8BA 0x7FA4 +0xC8BB 0x7136 +0xC8BC 0x71C3 +0xC8BD 0x5189 +0xC8BE 0x67D3 +0xC8BF 0x74E4 +0xC8C0 0x58E4 +0xC8C1 0x6518 +0xC8C2 0x56B7 +0xC8C3 0x8BA9 +0xC8C4 0x9976 +0xC8C5 0x6270 +0xC8C6 0x7ED5 +0xC8C7 0x60F9 +0xC8C8 0x70ED +0xC8C9 0x58EC +0xC8CA 0x4EC1 +0xC8CB 0x4EBA +0xC8CC 0x5FCD +0xC8CD 0x97E7 +0xC8CE 0x4EFB +0xC8CF 0x8BA4 +0xC8D0 0x5203 +0xC8D1 0x598A +0xC8D2 0x7EAB +0xC8D3 0x6254 +0xC8D4 0x4ECD +0xC8D5 0x65E5 +0xC8D6 0x620E +0xC8D7 0x8338 +0xC8D8 0x84C9 +0xC8D9 0x8363 +0xC8DA 0x878D +0xC8DB 0x7194 +0xC8DC 0x6EB6 +0xC8DD 0x5BB9 +0xC8DE 0x7ED2 +0xC8DF 0x5197 +0xC8E0 0x63C9 +0xC8E1 0x67D4 +0xC8E2 0x8089 +0xC8E3 0x8339 +0xC8E4 0x8815 +0xC8E5 0x5112 +0xC8E6 0x5B7A +0xC8E7 0x5982 +0xC8E8 0x8FB1 +0xC8E9 0x4E73 +0xC8EA 0x6C5D +0xC8EB 0x5165 +0xC8EC 0x8925 +0xC8ED 0x8F6F +0xC8EE 0x962E +0xC8EF 0x854A +0xC8F0 0x745E +0xC8F1 0x9510 +0xC8F2 0x95F0 +0xC8F3 0x6DA6 +0xC8F4 0x82E5 +0xC8F5 0x5F31 +0xC8F6 0x6492 +0xC8F7 0x6D12 +0xC8F8 0x8428 +0xC8F9 0x816E +0xC8FA 0x9CC3 +0xC8FB 0x585E +0xC8FC 0x8D5B +0xC8FD 0x4E09 +0xC8FE 0x53C1 +0xC940 0x847D +0xC941 0x847E +0xC942 0x847F +0xC943 0x8480 +0xC944 0x8481 +0xC945 0x8483 +0xC946 0x8484 +0xC947 0x8485 +0xC948 0x8486 +0xC949 0x848A +0xC94A 0x848D +0xC94B 0x848F +0xC94C 0x8490 +0xC94D 0x8491 +0xC94E 0x8492 +0xC94F 0x8493 +0xC950 0x8494 +0xC951 0x8495 +0xC952 0x8496 +0xC953 0x8498 +0xC954 0x849A +0xC955 0x849B +0xC956 0x849D +0xC957 0x849E +0xC958 0x849F +0xC959 0x84A0 +0xC95A 0x84A2 +0xC95B 0x84A3 +0xC95C 0x84A4 +0xC95D 0x84A5 +0xC95E 0x84A6 +0xC95F 0x84A7 +0xC960 0x84A8 +0xC961 0x84A9 +0xC962 0x84AA +0xC963 0x84AB +0xC964 0x84AC +0xC965 0x84AD +0xC966 0x84AE +0xC967 0x84B0 +0xC968 0x84B1 +0xC969 0x84B3 +0xC96A 0x84B5 +0xC96B 0x84B6 +0xC96C 0x84B7 +0xC96D 0x84BB +0xC96E 0x84BC +0xC96F 0x84BE +0xC970 0x84C0 +0xC971 0x84C2 +0xC972 0x84C3 +0xC973 0x84C5 +0xC974 0x84C6 +0xC975 0x84C7 +0xC976 0x84C8 +0xC977 0x84CB +0xC978 0x84CC +0xC979 0x84CE +0xC97A 0x84CF +0xC97B 0x84D2 +0xC97C 0x84D4 +0xC97D 0x84D5 +0xC97E 0x84D7 +0xC980 0x84D8 +0xC981 0x84D9 +0xC982 0x84DA +0xC983 0x84DB +0xC984 0x84DC +0xC985 0x84DE +0xC986 0x84E1 +0xC987 0x84E2 +0xC988 0x84E4 +0xC989 0x84E7 +0xC98A 0x84E8 +0xC98B 0x84E9 +0xC98C 0x84EA +0xC98D 0x84EB +0xC98E 0x84ED +0xC98F 0x84EE +0xC990 0x84EF +0xC991 0x84F1 +0xC992 0x84F2 +0xC993 0x84F3 +0xC994 0x84F4 +0xC995 0x84F5 +0xC996 0x84F6 +0xC997 0x84F7 +0xC998 0x84F8 +0xC999 0x84F9 +0xC99A 0x84FA +0xC99B 0x84FB +0xC99C 0x84FD +0xC99D 0x84FE +0xC99E 0x8500 +0xC99F 0x8501 +0xC9A0 0x8502 +0xC9A1 0x4F1E +0xC9A2 0x6563 +0xC9A3 0x6851 +0xC9A4 0x55D3 +0xC9A5 0x4E27 +0xC9A6 0x6414 +0xC9A7 0x9A9A +0xC9A8 0x626B +0xC9A9 0x5AC2 +0xC9AA 0x745F +0xC9AB 0x8272 +0xC9AC 0x6DA9 +0xC9AD 0x68EE +0xC9AE 0x50E7 +0xC9AF 0x838E +0xC9B0 0x7802 +0xC9B1 0x6740 +0xC9B2 0x5239 +0xC9B3 0x6C99 +0xC9B4 0x7EB1 +0xC9B5 0x50BB +0xC9B6 0x5565 +0xC9B7 0x715E +0xC9B8 0x7B5B +0xC9B9 0x6652 +0xC9BA 0x73CA +0xC9BB 0x82EB +0xC9BC 0x6749 +0xC9BD 0x5C71 +0xC9BE 0x5220 +0xC9BF 0x717D +0xC9C0 0x886B +0xC9C1 0x95EA +0xC9C2 0x9655 +0xC9C3 0x64C5 +0xC9C4 0x8D61 +0xC9C5 0x81B3 +0xC9C6 0x5584 +0xC9C7 0x6C55 +0xC9C8 0x6247 +0xC9C9 0x7F2E +0xC9CA 0x5892 +0xC9CB 0x4F24 +0xC9CC 0x5546 +0xC9CD 0x8D4F +0xC9CE 0x664C +0xC9CF 0x4E0A +0xC9D0 0x5C1A +0xC9D1 0x88F3 +0xC9D2 0x68A2 +0xC9D3 0x634E +0xC9D4 0x7A0D +0xC9D5 0x70E7 +0xC9D6 0x828D +0xC9D7 0x52FA +0xC9D8 0x97F6 +0xC9D9 0x5C11 +0xC9DA 0x54E8 +0xC9DB 0x90B5 +0xC9DC 0x7ECD +0xC9DD 0x5962 +0xC9DE 0x8D4A +0xC9DF 0x86C7 +0xC9E0 0x820C +0xC9E1 0x820D +0xC9E2 0x8D66 +0xC9E3 0x6444 +0xC9E4 0x5C04 +0xC9E5 0x6151 +0xC9E6 0x6D89 +0xC9E7 0x793E +0xC9E8 0x8BBE +0xC9E9 0x7837 +0xC9EA 0x7533 +0xC9EB 0x547B +0xC9EC 0x4F38 +0xC9ED 0x8EAB +0xC9EE 0x6DF1 +0xC9EF 0x5A20 +0xC9F0 0x7EC5 +0xC9F1 0x795E +0xC9F2 0x6C88 +0xC9F3 0x5BA1 +0xC9F4 0x5A76 +0xC9F5 0x751A +0xC9F6 0x80BE +0xC9F7 0x614E +0xC9F8 0x6E17 +0xC9F9 0x58F0 +0xC9FA 0x751F +0xC9FB 0x7525 +0xC9FC 0x7272 +0xC9FD 0x5347 +0xC9FE 0x7EF3 +0xCA40 0x8503 +0xCA41 0x8504 +0xCA42 0x8505 +0xCA43 0x8506 +0xCA44 0x8507 +0xCA45 0x8508 +0xCA46 0x8509 +0xCA47 0x850A +0xCA48 0x850B +0xCA49 0x850D +0xCA4A 0x850E +0xCA4B 0x850F +0xCA4C 0x8510 +0xCA4D 0x8512 +0xCA4E 0x8514 +0xCA4F 0x8515 +0xCA50 0x8516 +0xCA51 0x8518 +0xCA52 0x8519 +0xCA53 0x851B +0xCA54 0x851C +0xCA55 0x851D +0xCA56 0x851E +0xCA57 0x8520 +0xCA58 0x8522 +0xCA59 0x8523 +0xCA5A 0x8524 +0xCA5B 0x8525 +0xCA5C 0x8526 +0xCA5D 0x8527 +0xCA5E 0x8528 +0xCA5F 0x8529 +0xCA60 0x852A +0xCA61 0x852D +0xCA62 0x852E +0xCA63 0x852F +0xCA64 0x8530 +0xCA65 0x8531 +0xCA66 0x8532 +0xCA67 0x8533 +0xCA68 0x8534 +0xCA69 0x8535 +0xCA6A 0x8536 +0xCA6B 0x853E +0xCA6C 0x853F +0xCA6D 0x8540 +0xCA6E 0x8541 +0xCA6F 0x8542 +0xCA70 0x8544 +0xCA71 0x8545 +0xCA72 0x8546 +0xCA73 0x8547 +0xCA74 0x854B +0xCA75 0x854C +0xCA76 0x854D +0xCA77 0x854E +0xCA78 0x854F +0xCA79 0x8550 +0xCA7A 0x8551 +0xCA7B 0x8552 +0xCA7C 0x8553 +0xCA7D 0x8554 +0xCA7E 0x8555 +0xCA80 0x8557 +0xCA81 0x8558 +0xCA82 0x855A +0xCA83 0x855B +0xCA84 0x855C +0xCA85 0x855D +0xCA86 0x855F +0xCA87 0x8560 +0xCA88 0x8561 +0xCA89 0x8562 +0xCA8A 0x8563 +0xCA8B 0x8565 +0xCA8C 0x8566 +0xCA8D 0x8567 +0xCA8E 0x8569 +0xCA8F 0x856A +0xCA90 0x856B +0xCA91 0x856C +0xCA92 0x856D +0xCA93 0x856E +0xCA94 0x856F +0xCA95 0x8570 +0xCA96 0x8571 +0xCA97 0x8573 +0xCA98 0x8575 +0xCA99 0x8576 +0xCA9A 0x8577 +0xCA9B 0x8578 +0xCA9C 0x857C +0xCA9D 0x857D +0xCA9E 0x857F +0xCA9F 0x8580 +0xCAA0 0x8581 +0xCAA1 0x7701 +0xCAA2 0x76DB +0xCAA3 0x5269 +0xCAA4 0x80DC +0xCAA5 0x5723 +0xCAA6 0x5E08 +0xCAA7 0x5931 +0xCAA8 0x72EE +0xCAA9 0x65BD +0xCAAA 0x6E7F +0xCAAB 0x8BD7 +0xCAAC 0x5C38 +0xCAAD 0x8671 +0xCAAE 0x5341 +0xCAAF 0x77F3 +0xCAB0 0x62FE +0xCAB1 0x65F6 +0xCAB2 0x4EC0 +0xCAB3 0x98DF +0xCAB4 0x8680 +0xCAB5 0x5B9E +0xCAB6 0x8BC6 +0xCAB7 0x53F2 +0xCAB8 0x77E2 +0xCAB9 0x4F7F +0xCABA 0x5C4E +0xCABB 0x9A76 +0xCABC 0x59CB +0xCABD 0x5F0F +0xCABE 0x793A +0xCABF 0x58EB +0xCAC0 0x4E16 +0xCAC1 0x67FF +0xCAC2 0x4E8B +0xCAC3 0x62ED +0xCAC4 0x8A93 +0xCAC5 0x901D +0xCAC6 0x52BF +0xCAC7 0x662F +0xCAC8 0x55DC +0xCAC9 0x566C +0xCACA 0x9002 +0xCACB 0x4ED5 +0xCACC 0x4F8D +0xCACD 0x91CA +0xCACE 0x9970 +0xCACF 0x6C0F +0xCAD0 0x5E02 +0xCAD1 0x6043 +0xCAD2 0x5BA4 +0xCAD3 0x89C6 +0xCAD4 0x8BD5 +0xCAD5 0x6536 +0xCAD6 0x624B +0xCAD7 0x9996 +0xCAD8 0x5B88 +0xCAD9 0x5BFF +0xCADA 0x6388 +0xCADB 0x552E +0xCADC 0x53D7 +0xCADD 0x7626 +0xCADE 0x517D +0xCADF 0x852C +0xCAE0 0x67A2 +0xCAE1 0x68B3 +0xCAE2 0x6B8A +0xCAE3 0x6292 +0xCAE4 0x8F93 +0xCAE5 0x53D4 +0xCAE6 0x8212 +0xCAE7 0x6DD1 +0xCAE8 0x758F +0xCAE9 0x4E66 +0xCAEA 0x8D4E +0xCAEB 0x5B70 +0xCAEC 0x719F +0xCAED 0x85AF +0xCAEE 0x6691 +0xCAEF 0x66D9 +0xCAF0 0x7F72 +0xCAF1 0x8700 +0xCAF2 0x9ECD +0xCAF3 0x9F20 +0xCAF4 0x5C5E +0xCAF5 0x672F +0xCAF6 0x8FF0 +0xCAF7 0x6811 +0xCAF8 0x675F +0xCAF9 0x620D +0xCAFA 0x7AD6 +0xCAFB 0x5885 +0xCAFC 0x5EB6 +0xCAFD 0x6570 +0xCAFE 0x6F31 +0xCB40 0x8582 +0xCB41 0x8583 +0xCB42 0x8586 +0xCB43 0x8588 +0xCB44 0x8589 +0xCB45 0x858A +0xCB46 0x858B +0xCB47 0x858C +0xCB48 0x858D +0xCB49 0x858E +0xCB4A 0x8590 +0xCB4B 0x8591 +0xCB4C 0x8592 +0xCB4D 0x8593 +0xCB4E 0x8594 +0xCB4F 0x8595 +0xCB50 0x8596 +0xCB51 0x8597 +0xCB52 0x8598 +0xCB53 0x8599 +0xCB54 0x859A +0xCB55 0x859D +0xCB56 0x859E +0xCB57 0x859F +0xCB58 0x85A0 +0xCB59 0x85A1 +0xCB5A 0x85A2 +0xCB5B 0x85A3 +0xCB5C 0x85A5 +0xCB5D 0x85A6 +0xCB5E 0x85A7 +0xCB5F 0x85A9 +0xCB60 0x85AB +0xCB61 0x85AC +0xCB62 0x85AD +0xCB63 0x85B1 +0xCB64 0x85B2 +0xCB65 0x85B3 +0xCB66 0x85B4 +0xCB67 0x85B5 +0xCB68 0x85B6 +0xCB69 0x85B8 +0xCB6A 0x85BA +0xCB6B 0x85BB +0xCB6C 0x85BC +0xCB6D 0x85BD +0xCB6E 0x85BE +0xCB6F 0x85BF +0xCB70 0x85C0 +0xCB71 0x85C2 +0xCB72 0x85C3 +0xCB73 0x85C4 +0xCB74 0x85C5 +0xCB75 0x85C6 +0xCB76 0x85C7 +0xCB77 0x85C8 +0xCB78 0x85CA +0xCB79 0x85CB +0xCB7A 0x85CC +0xCB7B 0x85CD +0xCB7C 0x85CE +0xCB7D 0x85D1 +0xCB7E 0x85D2 +0xCB80 0x85D4 +0xCB81 0x85D6 +0xCB82 0x85D7 +0xCB83 0x85D8 +0xCB84 0x85D9 +0xCB85 0x85DA +0xCB86 0x85DB +0xCB87 0x85DD +0xCB88 0x85DE +0xCB89 0x85DF +0xCB8A 0x85E0 +0xCB8B 0x85E1 +0xCB8C 0x85E2 +0xCB8D 0x85E3 +0xCB8E 0x85E5 +0xCB8F 0x85E6 +0xCB90 0x85E7 +0xCB91 0x85E8 +0xCB92 0x85EA +0xCB93 0x85EB +0xCB94 0x85EC +0xCB95 0x85ED +0xCB96 0x85EE +0xCB97 0x85EF +0xCB98 0x85F0 +0xCB99 0x85F1 +0xCB9A 0x85F2 +0xCB9B 0x85F3 +0xCB9C 0x85F4 +0xCB9D 0x85F5 +0xCB9E 0x85F6 +0xCB9F 0x85F7 +0xCBA0 0x85F8 +0xCBA1 0x6055 +0xCBA2 0x5237 +0xCBA3 0x800D +0xCBA4 0x6454 +0xCBA5 0x8870 +0xCBA6 0x7529 +0xCBA7 0x5E05 +0xCBA8 0x6813 +0xCBA9 0x62F4 +0xCBAA 0x971C +0xCBAB 0x53CC +0xCBAC 0x723D +0xCBAD 0x8C01 +0xCBAE 0x6C34 +0xCBAF 0x7761 +0xCBB0 0x7A0E +0xCBB1 0x542E +0xCBB2 0x77AC +0xCBB3 0x987A +0xCBB4 0x821C +0xCBB5 0x8BF4 +0xCBB6 0x7855 +0xCBB7 0x6714 +0xCBB8 0x70C1 +0xCBB9 0x65AF +0xCBBA 0x6495 +0xCBBB 0x5636 +0xCBBC 0x601D +0xCBBD 0x79C1 +0xCBBE 0x53F8 +0xCBBF 0x4E1D +0xCBC0 0x6B7B +0xCBC1 0x8086 +0xCBC2 0x5BFA +0xCBC3 0x55E3 +0xCBC4 0x56DB +0xCBC5 0x4F3A +0xCBC6 0x4F3C +0xCBC7 0x9972 +0xCBC8 0x5DF3 +0xCBC9 0x677E +0xCBCA 0x8038 +0xCBCB 0x6002 +0xCBCC 0x9882 +0xCBCD 0x9001 +0xCBCE 0x5B8B +0xCBCF 0x8BBC +0xCBD0 0x8BF5 +0xCBD1 0x641C +0xCBD2 0x8258 +0xCBD3 0x64DE +0xCBD4 0x55FD +0xCBD5 0x82CF +0xCBD6 0x9165 +0xCBD7 0x4FD7 +0xCBD8 0x7D20 +0xCBD9 0x901F +0xCBDA 0x7C9F +0xCBDB 0x50F3 +0xCBDC 0x5851 +0xCBDD 0x6EAF +0xCBDE 0x5BBF +0xCBDF 0x8BC9 +0xCBE0 0x8083 +0xCBE1 0x9178 +0xCBE2 0x849C +0xCBE3 0x7B97 +0xCBE4 0x867D +0xCBE5 0x968B +0xCBE6 0x968F +0xCBE7 0x7EE5 +0xCBE8 0x9AD3 +0xCBE9 0x788E +0xCBEA 0x5C81 +0xCBEB 0x7A57 +0xCBEC 0x9042 +0xCBED 0x96A7 +0xCBEE 0x795F +0xCBEF 0x5B59 +0xCBF0 0x635F +0xCBF1 0x7B0B +0xCBF2 0x84D1 +0xCBF3 0x68AD +0xCBF4 0x5506 +0xCBF5 0x7F29 +0xCBF6 0x7410 +0xCBF7 0x7D22 +0xCBF8 0x9501 +0xCBF9 0x6240 +0xCBFA 0x584C +0xCBFB 0x4ED6 +0xCBFC 0x5B83 +0xCBFD 0x5979 +0xCBFE 0x5854 +0xCC40 0x85F9 +0xCC41 0x85FA +0xCC42 0x85FC +0xCC43 0x85FD +0xCC44 0x85FE +0xCC45 0x8600 +0xCC46 0x8601 +0xCC47 0x8602 +0xCC48 0x8603 +0xCC49 0x8604 +0xCC4A 0x8606 +0xCC4B 0x8607 +0xCC4C 0x8608 +0xCC4D 0x8609 +0xCC4E 0x860A +0xCC4F 0x860B +0xCC50 0x860C +0xCC51 0x860D +0xCC52 0x860E +0xCC53 0x860F +0xCC54 0x8610 +0xCC55 0x8612 +0xCC56 0x8613 +0xCC57 0x8614 +0xCC58 0x8615 +0xCC59 0x8617 +0xCC5A 0x8618 +0xCC5B 0x8619 +0xCC5C 0x861A +0xCC5D 0x861B +0xCC5E 0x861C +0xCC5F 0x861D +0xCC60 0x861E +0xCC61 0x861F +0xCC62 0x8620 +0xCC63 0x8621 +0xCC64 0x8622 +0xCC65 0x8623 +0xCC66 0x8624 +0xCC67 0x8625 +0xCC68 0x8626 +0xCC69 0x8628 +0xCC6A 0x862A +0xCC6B 0x862B +0xCC6C 0x862C +0xCC6D 0x862D +0xCC6E 0x862E +0xCC6F 0x862F +0xCC70 0x8630 +0xCC71 0x8631 +0xCC72 0x8632 +0xCC73 0x8633 +0xCC74 0x8634 +0xCC75 0x8635 +0xCC76 0x8636 +0xCC77 0x8637 +0xCC78 0x8639 +0xCC79 0x863A +0xCC7A 0x863B +0xCC7B 0x863D +0xCC7C 0x863E +0xCC7D 0x863F +0xCC7E 0x8640 +0xCC80 0x8641 +0xCC81 0x8642 +0xCC82 0x8643 +0xCC83 0x8644 +0xCC84 0x8645 +0xCC85 0x8646 +0xCC86 0x8647 +0xCC87 0x8648 +0xCC88 0x8649 +0xCC89 0x864A +0xCC8A 0x864B +0xCC8B 0x864C +0xCC8C 0x8652 +0xCC8D 0x8653 +0xCC8E 0x8655 +0xCC8F 0x8656 +0xCC90 0x8657 +0xCC91 0x8658 +0xCC92 0x8659 +0xCC93 0x865B +0xCC94 0x865C +0xCC95 0x865D +0xCC96 0x865F +0xCC97 0x8660 +0xCC98 0x8661 +0xCC99 0x8663 +0xCC9A 0x8664 +0xCC9B 0x8665 +0xCC9C 0x8666 +0xCC9D 0x8667 +0xCC9E 0x8668 +0xCC9F 0x8669 +0xCCA0 0x866A +0xCCA1 0x736D +0xCCA2 0x631E +0xCCA3 0x8E4B +0xCCA4 0x8E0F +0xCCA5 0x80CE +0xCCA6 0x82D4 +0xCCA7 0x62AC +0xCCA8 0x53F0 +0xCCA9 0x6CF0 +0xCCAA 0x915E +0xCCAB 0x592A +0xCCAC 0x6001 +0xCCAD 0x6C70 +0xCCAE 0x574D +0xCCAF 0x644A +0xCCB0 0x8D2A +0xCCB1 0x762B +0xCCB2 0x6EE9 +0xCCB3 0x575B +0xCCB4 0x6A80 +0xCCB5 0x75F0 +0xCCB6 0x6F6D +0xCCB7 0x8C2D +0xCCB8 0x8C08 +0xCCB9 0x5766 +0xCCBA 0x6BEF +0xCCBB 0x8892 +0xCCBC 0x78B3 +0xCCBD 0x63A2 +0xCCBE 0x53F9 +0xCCBF 0x70AD +0xCCC0 0x6C64 +0xCCC1 0x5858 +0xCCC2 0x642A +0xCCC3 0x5802 +0xCCC4 0x68E0 +0xCCC5 0x819B +0xCCC6 0x5510 +0xCCC7 0x7CD6 +0xCCC8 0x5018 +0xCCC9 0x8EBA +0xCCCA 0x6DCC +0xCCCB 0x8D9F +0xCCCC 0x70EB +0xCCCD 0x638F +0xCCCE 0x6D9B +0xCCCF 0x6ED4 +0xCCD0 0x7EE6 +0xCCD1 0x8404 +0xCCD2 0x6843 +0xCCD3 0x9003 +0xCCD4 0x6DD8 +0xCCD5 0x9676 +0xCCD6 0x8BA8 +0xCCD7 0x5957 +0xCCD8 0x7279 +0xCCD9 0x85E4 +0xCCDA 0x817E +0xCCDB 0x75BC +0xCCDC 0x8A8A +0xCCDD 0x68AF +0xCCDE 0x5254 +0xCCDF 0x8E22 +0xCCE0 0x9511 +0xCCE1 0x63D0 +0xCCE2 0x9898 +0xCCE3 0x8E44 +0xCCE4 0x557C +0xCCE5 0x4F53 +0xCCE6 0x66FF +0xCCE7 0x568F +0xCCE8 0x60D5 +0xCCE9 0x6D95 +0xCCEA 0x5243 +0xCCEB 0x5C49 +0xCCEC 0x5929 +0xCCED 0x6DFB +0xCCEE 0x586B +0xCCEF 0x7530 +0xCCF0 0x751C +0xCCF1 0x606C +0xCCF2 0x8214 +0xCCF3 0x8146 +0xCCF4 0x6311 +0xCCF5 0x6761 +0xCCF6 0x8FE2 +0xCCF7 0x773A +0xCCF8 0x8DF3 +0xCCF9 0x8D34 +0xCCFA 0x94C1 +0xCCFB 0x5E16 +0xCCFC 0x5385 +0xCCFD 0x542C +0xCCFE 0x70C3 +0xCD40 0x866D +0xCD41 0x866F +0xCD42 0x8670 +0xCD43 0x8672 +0xCD44 0x8673 +0xCD45 0x8674 +0xCD46 0x8675 +0xCD47 0x8676 +0xCD48 0x8677 +0xCD49 0x8678 +0xCD4A 0x8683 +0xCD4B 0x8684 +0xCD4C 0x8685 +0xCD4D 0x8686 +0xCD4E 0x8687 +0xCD4F 0x8688 +0xCD50 0x8689 +0xCD51 0x868E +0xCD52 0x868F +0xCD53 0x8690 +0xCD54 0x8691 +0xCD55 0x8692 +0xCD56 0x8694 +0xCD57 0x8696 +0xCD58 0x8697 +0xCD59 0x8698 +0xCD5A 0x8699 +0xCD5B 0x869A +0xCD5C 0x869B +0xCD5D 0x869E +0xCD5E 0x869F +0xCD5F 0x86A0 +0xCD60 0x86A1 +0xCD61 0x86A2 +0xCD62 0x86A5 +0xCD63 0x86A6 +0xCD64 0x86AB +0xCD65 0x86AD +0xCD66 0x86AE +0xCD67 0x86B2 +0xCD68 0x86B3 +0xCD69 0x86B7 +0xCD6A 0x86B8 +0xCD6B 0x86B9 +0xCD6C 0x86BB +0xCD6D 0x86BC +0xCD6E 0x86BD +0xCD6F 0x86BE +0xCD70 0x86BF +0xCD71 0x86C1 +0xCD72 0x86C2 +0xCD73 0x86C3 +0xCD74 0x86C5 +0xCD75 0x86C8 +0xCD76 0x86CC +0xCD77 0x86CD +0xCD78 0x86D2 +0xCD79 0x86D3 +0xCD7A 0x86D5 +0xCD7B 0x86D6 +0xCD7C 0x86D7 +0xCD7D 0x86DA +0xCD7E 0x86DC +0xCD80 0x86DD +0xCD81 0x86E0 +0xCD82 0x86E1 +0xCD83 0x86E2 +0xCD84 0x86E3 +0xCD85 0x86E5 +0xCD86 0x86E6 +0xCD87 0x86E7 +0xCD88 0x86E8 +0xCD89 0x86EA +0xCD8A 0x86EB +0xCD8B 0x86EC +0xCD8C 0x86EF +0xCD8D 0x86F5 +0xCD8E 0x86F6 +0xCD8F 0x86F7 +0xCD90 0x86FA +0xCD91 0x86FB +0xCD92 0x86FC +0xCD93 0x86FD +0xCD94 0x86FF +0xCD95 0x8701 +0xCD96 0x8704 +0xCD97 0x8705 +0xCD98 0x8706 +0xCD99 0x870B +0xCD9A 0x870C +0xCD9B 0x870E +0xCD9C 0x870F +0xCD9D 0x8710 +0xCD9E 0x8711 +0xCD9F 0x8714 +0xCDA0 0x8716 +0xCDA1 0x6C40 +0xCDA2 0x5EF7 +0xCDA3 0x505C +0xCDA4 0x4EAD +0xCDA5 0x5EAD +0xCDA6 0x633A +0xCDA7 0x8247 +0xCDA8 0x901A +0xCDA9 0x6850 +0xCDAA 0x916E +0xCDAB 0x77B3 +0xCDAC 0x540C +0xCDAD 0x94DC +0xCDAE 0x5F64 +0xCDAF 0x7AE5 +0xCDB0 0x6876 +0xCDB1 0x6345 +0xCDB2 0x7B52 +0xCDB3 0x7EDF +0xCDB4 0x75DB +0xCDB5 0x5077 +0xCDB6 0x6295 +0xCDB7 0x5934 +0xCDB8 0x900F +0xCDB9 0x51F8 +0xCDBA 0x79C3 +0xCDBB 0x7A81 +0xCDBC 0x56FE +0xCDBD 0x5F92 +0xCDBE 0x9014 +0xCDBF 0x6D82 +0xCDC0 0x5C60 +0xCDC1 0x571F +0xCDC2 0x5410 +0xCDC3 0x5154 +0xCDC4 0x6E4D +0xCDC5 0x56E2 +0xCDC6 0x63A8 +0xCDC7 0x9893 +0xCDC8 0x817F +0xCDC9 0x8715 +0xCDCA 0x892A +0xCDCB 0x9000 +0xCDCC 0x541E +0xCDCD 0x5C6F +0xCDCE 0x81C0 +0xCDCF 0x62D6 +0xCDD0 0x6258 +0xCDD1 0x8131 +0xCDD2 0x9E35 +0xCDD3 0x9640 +0xCDD4 0x9A6E +0xCDD5 0x9A7C +0xCDD6 0x692D +0xCDD7 0x59A5 +0xCDD8 0x62D3 +0xCDD9 0x553E +0xCDDA 0x6316 +0xCDDB 0x54C7 +0xCDDC 0x86D9 +0xCDDD 0x6D3C +0xCDDE 0x5A03 +0xCDDF 0x74E6 +0xCDE0 0x889C +0xCDE1 0x6B6A +0xCDE2 0x5916 +0xCDE3 0x8C4C +0xCDE4 0x5F2F +0xCDE5 0x6E7E +0xCDE6 0x73A9 +0xCDE7 0x987D +0xCDE8 0x4E38 +0xCDE9 0x70F7 +0xCDEA 0x5B8C +0xCDEB 0x7897 +0xCDEC 0x633D +0xCDED 0x665A +0xCDEE 0x7696 +0xCDEF 0x60CB +0xCDF0 0x5B9B +0xCDF1 0x5A49 +0xCDF2 0x4E07 +0xCDF3 0x8155 +0xCDF4 0x6C6A +0xCDF5 0x738B +0xCDF6 0x4EA1 +0xCDF7 0x6789 +0xCDF8 0x7F51 +0xCDF9 0x5F80 +0xCDFA 0x65FA +0xCDFB 0x671B +0xCDFC 0x5FD8 +0xCDFD 0x5984 +0xCDFE 0x5A01 +0xCE40 0x8719 +0xCE41 0x871B +0xCE42 0x871D +0xCE43 0x871F +0xCE44 0x8720 +0xCE45 0x8724 +0xCE46 0x8726 +0xCE47 0x8727 +0xCE48 0x8728 +0xCE49 0x872A +0xCE4A 0x872B +0xCE4B 0x872C +0xCE4C 0x872D +0xCE4D 0x872F +0xCE4E 0x8730 +0xCE4F 0x8732 +0xCE50 0x8733 +0xCE51 0x8735 +0xCE52 0x8736 +0xCE53 0x8738 +0xCE54 0x8739 +0xCE55 0x873A +0xCE56 0x873C +0xCE57 0x873D +0xCE58 0x8740 +0xCE59 0x8741 +0xCE5A 0x8742 +0xCE5B 0x8743 +0xCE5C 0x8744 +0xCE5D 0x8745 +0xCE5E 0x8746 +0xCE5F 0x874A +0xCE60 0x874B +0xCE61 0x874D +0xCE62 0x874F +0xCE63 0x8750 +0xCE64 0x8751 +0xCE65 0x8752 +0xCE66 0x8754 +0xCE67 0x8755 +0xCE68 0x8756 +0xCE69 0x8758 +0xCE6A 0x875A +0xCE6B 0x875B +0xCE6C 0x875C +0xCE6D 0x875D +0xCE6E 0x875E +0xCE6F 0x875F +0xCE70 0x8761 +0xCE71 0x8762 +0xCE72 0x8766 +0xCE73 0x8767 +0xCE74 0x8768 +0xCE75 0x8769 +0xCE76 0x876A +0xCE77 0x876B +0xCE78 0x876C +0xCE79 0x876D +0xCE7A 0x876F +0xCE7B 0x8771 +0xCE7C 0x8772 +0xCE7D 0x8773 +0xCE7E 0x8775 +0xCE80 0x8777 +0xCE81 0x8778 +0xCE82 0x8779 +0xCE83 0x877A +0xCE84 0x877F +0xCE85 0x8780 +0xCE86 0x8781 +0xCE87 0x8784 +0xCE88 0x8786 +0xCE89 0x8787 +0xCE8A 0x8789 +0xCE8B 0x878A +0xCE8C 0x878C +0xCE8D 0x878E +0xCE8E 0x878F +0xCE8F 0x8790 +0xCE90 0x8791 +0xCE91 0x8792 +0xCE92 0x8794 +0xCE93 0x8795 +0xCE94 0x8796 +0xCE95 0x8798 +0xCE96 0x8799 +0xCE97 0x879A +0xCE98 0x879B +0xCE99 0x879C +0xCE9A 0x879D +0xCE9B 0x879E +0xCE9C 0x87A0 +0xCE9D 0x87A1 +0xCE9E 0x87A2 +0xCE9F 0x87A3 +0xCEA0 0x87A4 +0xCEA1 0x5DCD +0xCEA2 0x5FAE +0xCEA3 0x5371 +0xCEA4 0x97E6 +0xCEA5 0x8FDD +0xCEA6 0x6845 +0xCEA7 0x56F4 +0xCEA8 0x552F +0xCEA9 0x60DF +0xCEAA 0x4E3A +0xCEAB 0x6F4D +0xCEAC 0x7EF4 +0xCEAD 0x82C7 +0xCEAE 0x840E +0xCEAF 0x59D4 +0xCEB0 0x4F1F +0xCEB1 0x4F2A +0xCEB2 0x5C3E +0xCEB3 0x7EAC +0xCEB4 0x672A +0xCEB5 0x851A +0xCEB6 0x5473 +0xCEB7 0x754F +0xCEB8 0x80C3 +0xCEB9 0x5582 +0xCEBA 0x9B4F +0xCEBB 0x4F4D +0xCEBC 0x6E2D +0xCEBD 0x8C13 +0xCEBE 0x5C09 +0xCEBF 0x6170 +0xCEC0 0x536B +0xCEC1 0x761F +0xCEC2 0x6E29 +0xCEC3 0x868A +0xCEC4 0x6587 +0xCEC5 0x95FB +0xCEC6 0x7EB9 +0xCEC7 0x543B +0xCEC8 0x7A33 +0xCEC9 0x7D0A +0xCECA 0x95EE +0xCECB 0x55E1 +0xCECC 0x7FC1 +0xCECD 0x74EE +0xCECE 0x631D +0xCECF 0x8717 +0xCED0 0x6DA1 +0xCED1 0x7A9D +0xCED2 0x6211 +0xCED3 0x65A1 +0xCED4 0x5367 +0xCED5 0x63E1 +0xCED6 0x6C83 +0xCED7 0x5DEB +0xCED8 0x545C +0xCED9 0x94A8 +0xCEDA 0x4E4C +0xCEDB 0x6C61 +0xCEDC 0x8BEC +0xCEDD 0x5C4B +0xCEDE 0x65E0 +0xCEDF 0x829C +0xCEE0 0x68A7 +0xCEE1 0x543E +0xCEE2 0x5434 +0xCEE3 0x6BCB +0xCEE4 0x6B66 +0xCEE5 0x4E94 +0xCEE6 0x6342 +0xCEE7 0x5348 +0xCEE8 0x821E +0xCEE9 0x4F0D +0xCEEA 0x4FAE +0xCEEB 0x575E +0xCEEC 0x620A +0xCEED 0x96FE +0xCEEE 0x6664 +0xCEEF 0x7269 +0xCEF0 0x52FF +0xCEF1 0x52A1 +0xCEF2 0x609F +0xCEF3 0x8BEF +0xCEF4 0x6614 +0xCEF5 0x7199 +0xCEF6 0x6790 +0xCEF7 0x897F +0xCEF8 0x7852 +0xCEF9 0x77FD +0xCEFA 0x6670 +0xCEFB 0x563B +0xCEFC 0x5438 +0xCEFD 0x9521 +0xCEFE 0x727A +0xCF40 0x87A5 +0xCF41 0x87A6 +0xCF42 0x87A7 +0xCF43 0x87A9 +0xCF44 0x87AA +0xCF45 0x87AE +0xCF46 0x87B0 +0xCF47 0x87B1 +0xCF48 0x87B2 +0xCF49 0x87B4 +0xCF4A 0x87B6 +0xCF4B 0x87B7 +0xCF4C 0x87B8 +0xCF4D 0x87B9 +0xCF4E 0x87BB +0xCF4F 0x87BC +0xCF50 0x87BE +0xCF51 0x87BF +0xCF52 0x87C1 +0xCF53 0x87C2 +0xCF54 0x87C3 +0xCF55 0x87C4 +0xCF56 0x87C5 +0xCF57 0x87C7 +0xCF58 0x87C8 +0xCF59 0x87C9 +0xCF5A 0x87CC +0xCF5B 0x87CD +0xCF5C 0x87CE +0xCF5D 0x87CF +0xCF5E 0x87D0 +0xCF5F 0x87D4 +0xCF60 0x87D5 +0xCF61 0x87D6 +0xCF62 0x87D7 +0xCF63 0x87D8 +0xCF64 0x87D9 +0xCF65 0x87DA +0xCF66 0x87DC +0xCF67 0x87DD +0xCF68 0x87DE +0xCF69 0x87DF +0xCF6A 0x87E1 +0xCF6B 0x87E2 +0xCF6C 0x87E3 +0xCF6D 0x87E4 +0xCF6E 0x87E6 +0xCF6F 0x87E7 +0xCF70 0x87E8 +0xCF71 0x87E9 +0xCF72 0x87EB +0xCF73 0x87EC +0xCF74 0x87ED +0xCF75 0x87EF +0xCF76 0x87F0 +0xCF77 0x87F1 +0xCF78 0x87F2 +0xCF79 0x87F3 +0xCF7A 0x87F4 +0xCF7B 0x87F5 +0xCF7C 0x87F6 +0xCF7D 0x87F7 +0xCF7E 0x87F8 +0xCF80 0x87FA +0xCF81 0x87FB +0xCF82 0x87FC +0xCF83 0x87FD +0xCF84 0x87FF +0xCF85 0x8800 +0xCF86 0x8801 +0xCF87 0x8802 +0xCF88 0x8804 +0xCF89 0x8805 +0xCF8A 0x8806 +0xCF8B 0x8807 +0xCF8C 0x8808 +0xCF8D 0x8809 +0xCF8E 0x880B +0xCF8F 0x880C +0xCF90 0x880D +0xCF91 0x880E +0xCF92 0x880F +0xCF93 0x8810 +0xCF94 0x8811 +0xCF95 0x8812 +0xCF96 0x8814 +0xCF97 0x8817 +0xCF98 0x8818 +0xCF99 0x8819 +0xCF9A 0x881A +0xCF9B 0x881C +0xCF9C 0x881D +0xCF9D 0x881E +0xCF9E 0x881F +0xCF9F 0x8820 +0xCFA0 0x8823 +0xCFA1 0x7A00 +0xCFA2 0x606F +0xCFA3 0x5E0C +0xCFA4 0x6089 +0xCFA5 0x819D +0xCFA6 0x5915 +0xCFA7 0x60DC +0xCFA8 0x7184 +0xCFA9 0x70EF +0xCFAA 0x6EAA +0xCFAB 0x6C50 +0xCFAC 0x7280 +0xCFAD 0x6A84 +0xCFAE 0x88AD +0xCFAF 0x5E2D +0xCFB0 0x4E60 +0xCFB1 0x5AB3 +0xCFB2 0x559C +0xCFB3 0x94E3 +0xCFB4 0x6D17 +0xCFB5 0x7CFB +0xCFB6 0x9699 +0xCFB7 0x620F +0xCFB8 0x7EC6 +0xCFB9 0x778E +0xCFBA 0x867E +0xCFBB 0x5323 +0xCFBC 0x971E +0xCFBD 0x8F96 +0xCFBE 0x6687 +0xCFBF 0x5CE1 +0xCFC0 0x4FA0 +0xCFC1 0x72ED +0xCFC2 0x4E0B +0xCFC3 0x53A6 +0xCFC4 0x590F +0xCFC5 0x5413 +0xCFC6 0x6380 +0xCFC7 0x9528 +0xCFC8 0x5148 +0xCFC9 0x4ED9 +0xCFCA 0x9C9C +0xCFCB 0x7EA4 +0xCFCC 0x54B8 +0xCFCD 0x8D24 +0xCFCE 0x8854 +0xCFCF 0x8237 +0xCFD0 0x95F2 +0xCFD1 0x6D8E +0xCFD2 0x5F26 +0xCFD3 0x5ACC +0xCFD4 0x663E +0xCFD5 0x9669 +0xCFD6 0x73B0 +0xCFD7 0x732E +0xCFD8 0x53BF +0xCFD9 0x817A +0xCFDA 0x9985 +0xCFDB 0x7FA1 +0xCFDC 0x5BAA +0xCFDD 0x9677 +0xCFDE 0x9650 +0xCFDF 0x7EBF +0xCFE0 0x76F8 +0xCFE1 0x53A2 +0xCFE2 0x9576 +0xCFE3 0x9999 +0xCFE4 0x7BB1 +0xCFE5 0x8944 +0xCFE6 0x6E58 +0xCFE7 0x4E61 +0xCFE8 0x7FD4 +0xCFE9 0x7965 +0xCFEA 0x8BE6 +0xCFEB 0x60F3 +0xCFEC 0x54CD +0xCFED 0x4EAB +0xCFEE 0x9879 +0xCFEF 0x5DF7 +0xCFF0 0x6A61 +0xCFF1 0x50CF +0xCFF2 0x5411 +0xCFF3 0x8C61 +0xCFF4 0x8427 +0xCFF5 0x785D +0xCFF6 0x9704 +0xCFF7 0x524A +0xCFF8 0x54EE +0xCFF9 0x56A3 +0xCFFA 0x9500 +0xCFFB 0x6D88 +0xCFFC 0x5BB5 +0xCFFD 0x6DC6 +0xCFFE 0x6653 +0xD040 0x8824 +0xD041 0x8825 +0xD042 0x8826 +0xD043 0x8827 +0xD044 0x8828 +0xD045 0x8829 +0xD046 0x882A +0xD047 0x882B +0xD048 0x882C +0xD049 0x882D +0xD04A 0x882E +0xD04B 0x882F +0xD04C 0x8830 +0xD04D 0x8831 +0xD04E 0x8833 +0xD04F 0x8834 +0xD050 0x8835 +0xD051 0x8836 +0xD052 0x8837 +0xD053 0x8838 +0xD054 0x883A +0xD055 0x883B +0xD056 0x883D +0xD057 0x883E +0xD058 0x883F +0xD059 0x8841 +0xD05A 0x8842 +0xD05B 0x8843 +0xD05C 0x8846 +0xD05D 0x8847 +0xD05E 0x8848 +0xD05F 0x8849 +0xD060 0x884A +0xD061 0x884B +0xD062 0x884E +0xD063 0x884F +0xD064 0x8850 +0xD065 0x8851 +0xD066 0x8852 +0xD067 0x8853 +0xD068 0x8855 +0xD069 0x8856 +0xD06A 0x8858 +0xD06B 0x885A +0xD06C 0x885B +0xD06D 0x885C +0xD06E 0x885D +0xD06F 0x885E +0xD070 0x885F +0xD071 0x8860 +0xD072 0x8866 +0xD073 0x8867 +0xD074 0x886A +0xD075 0x886D +0xD076 0x886F +0xD077 0x8871 +0xD078 0x8873 +0xD079 0x8874 +0xD07A 0x8875 +0xD07B 0x8876 +0xD07C 0x8878 +0xD07D 0x8879 +0xD07E 0x887A +0xD080 0x887B +0xD081 0x887C +0xD082 0x8880 +0xD083 0x8883 +0xD084 0x8886 +0xD085 0x8887 +0xD086 0x8889 +0xD087 0x888A +0xD088 0x888C +0xD089 0x888E +0xD08A 0x888F +0xD08B 0x8890 +0xD08C 0x8891 +0xD08D 0x8893 +0xD08E 0x8894 +0xD08F 0x8895 +0xD090 0x8897 +0xD091 0x8898 +0xD092 0x8899 +0xD093 0x889A +0xD094 0x889B +0xD095 0x889D +0xD096 0x889E +0xD097 0x889F +0xD098 0x88A0 +0xD099 0x88A1 +0xD09A 0x88A3 +0xD09B 0x88A5 +0xD09C 0x88A6 +0xD09D 0x88A7 +0xD09E 0x88A8 +0xD09F 0x88A9 +0xD0A0 0x88AA +0xD0A1 0x5C0F +0xD0A2 0x5B5D +0xD0A3 0x6821 +0xD0A4 0x8096 +0xD0A5 0x5578 +0xD0A6 0x7B11 +0xD0A7 0x6548 +0xD0A8 0x6954 +0xD0A9 0x4E9B +0xD0AA 0x6B47 +0xD0AB 0x874E +0xD0AC 0x978B +0xD0AD 0x534F +0xD0AE 0x631F +0xD0AF 0x643A +0xD0B0 0x90AA +0xD0B1 0x659C +0xD0B2 0x80C1 +0xD0B3 0x8C10 +0xD0B4 0x5199 +0xD0B5 0x68B0 +0xD0B6 0x5378 +0xD0B7 0x87F9 +0xD0B8 0x61C8 +0xD0B9 0x6CC4 +0xD0BA 0x6CFB +0xD0BB 0x8C22 +0xD0BC 0x5C51 +0xD0BD 0x85AA +0xD0BE 0x82AF +0xD0BF 0x950C +0xD0C0 0x6B23 +0xD0C1 0x8F9B +0xD0C2 0x65B0 +0xD0C3 0x5FFB +0xD0C4 0x5FC3 +0xD0C5 0x4FE1 +0xD0C6 0x8845 +0xD0C7 0x661F +0xD0C8 0x8165 +0xD0C9 0x7329 +0xD0CA 0x60FA +0xD0CB 0x5174 +0xD0CC 0x5211 +0xD0CD 0x578B +0xD0CE 0x5F62 +0xD0CF 0x90A2 +0xD0D0 0x884C +0xD0D1 0x9192 +0xD0D2 0x5E78 +0xD0D3 0x674F +0xD0D4 0x6027 +0xD0D5 0x59D3 +0xD0D6 0x5144 +0xD0D7 0x51F6 +0xD0D8 0x80F8 +0xD0D9 0x5308 +0xD0DA 0x6C79 +0xD0DB 0x96C4 +0xD0DC 0x718A +0xD0DD 0x4F11 +0xD0DE 0x4FEE +0xD0DF 0x7F9E +0xD0E0 0x673D +0xD0E1 0x55C5 +0xD0E2 0x9508 +0xD0E3 0x79C0 +0xD0E4 0x8896 +0xD0E5 0x7EE3 +0xD0E6 0x589F +0xD0E7 0x620C +0xD0E8 0x9700 +0xD0E9 0x865A +0xD0EA 0x5618 +0xD0EB 0x987B +0xD0EC 0x5F90 +0xD0ED 0x8BB8 +0xD0EE 0x84C4 +0xD0EF 0x9157 +0xD0F0 0x53D9 +0xD0F1 0x65ED +0xD0F2 0x5E8F +0xD0F3 0x755C +0xD0F4 0x6064 +0xD0F5 0x7D6E +0xD0F6 0x5A7F +0xD0F7 0x7EEA +0xD0F8 0x7EED +0xD0F9 0x8F69 +0xD0FA 0x55A7 +0xD0FB 0x5BA3 +0xD0FC 0x60AC +0xD0FD 0x65CB +0xD0FE 0x7384 +0xD140 0x88AC +0xD141 0x88AE +0xD142 0x88AF +0xD143 0x88B0 +0xD144 0x88B2 +0xD145 0x88B3 +0xD146 0x88B4 +0xD147 0x88B5 +0xD148 0x88B6 +0xD149 0x88B8 +0xD14A 0x88B9 +0xD14B 0x88BA +0xD14C 0x88BB +0xD14D 0x88BD +0xD14E 0x88BE +0xD14F 0x88BF +0xD150 0x88C0 +0xD151 0x88C3 +0xD152 0x88C4 +0xD153 0x88C7 +0xD154 0x88C8 +0xD155 0x88CA +0xD156 0x88CB +0xD157 0x88CC +0xD158 0x88CD +0xD159 0x88CF +0xD15A 0x88D0 +0xD15B 0x88D1 +0xD15C 0x88D3 +0xD15D 0x88D6 +0xD15E 0x88D7 +0xD15F 0x88DA +0xD160 0x88DB +0xD161 0x88DC +0xD162 0x88DD +0xD163 0x88DE +0xD164 0x88E0 +0xD165 0x88E1 +0xD166 0x88E6 +0xD167 0x88E7 +0xD168 0x88E9 +0xD169 0x88EA +0xD16A 0x88EB +0xD16B 0x88EC +0xD16C 0x88ED +0xD16D 0x88EE +0xD16E 0x88EF +0xD16F 0x88F2 +0xD170 0x88F5 +0xD171 0x88F6 +0xD172 0x88F7 +0xD173 0x88FA +0xD174 0x88FB +0xD175 0x88FD +0xD176 0x88FF +0xD177 0x8900 +0xD178 0x8901 +0xD179 0x8903 +0xD17A 0x8904 +0xD17B 0x8905 +0xD17C 0x8906 +0xD17D 0x8907 +0xD17E 0x8908 +0xD180 0x8909 +0xD181 0x890B +0xD182 0x890C +0xD183 0x890D +0xD184 0x890E +0xD185 0x890F +0xD186 0x8911 +0xD187 0x8914 +0xD188 0x8915 +0xD189 0x8916 +0xD18A 0x8917 +0xD18B 0x8918 +0xD18C 0x891C +0xD18D 0x891D +0xD18E 0x891E +0xD18F 0x891F +0xD190 0x8920 +0xD191 0x8922 +0xD192 0x8923 +0xD193 0x8924 +0xD194 0x8926 +0xD195 0x8927 +0xD196 0x8928 +0xD197 0x8929 +0xD198 0x892C +0xD199 0x892D +0xD19A 0x892E +0xD19B 0x892F +0xD19C 0x8931 +0xD19D 0x8932 +0xD19E 0x8933 +0xD19F 0x8935 +0xD1A0 0x8937 +0xD1A1 0x9009 +0xD1A2 0x7663 +0xD1A3 0x7729 +0xD1A4 0x7EDA +0xD1A5 0x9774 +0xD1A6 0x859B +0xD1A7 0x5B66 +0xD1A8 0x7A74 +0xD1A9 0x96EA +0xD1AA 0x8840 +0xD1AB 0x52CB +0xD1AC 0x718F +0xD1AD 0x5FAA +0xD1AE 0x65EC +0xD1AF 0x8BE2 +0xD1B0 0x5BFB +0xD1B1 0x9A6F +0xD1B2 0x5DE1 +0xD1B3 0x6B89 +0xD1B4 0x6C5B +0xD1B5 0x8BAD +0xD1B6 0x8BAF +0xD1B7 0x900A +0xD1B8 0x8FC5 +0xD1B9 0x538B +0xD1BA 0x62BC +0xD1BB 0x9E26 +0xD1BC 0x9E2D +0xD1BD 0x5440 +0xD1BE 0x4E2B +0xD1BF 0x82BD +0xD1C0 0x7259 +0xD1C1 0x869C +0xD1C2 0x5D16 +0xD1C3 0x8859 +0xD1C4 0x6DAF +0xD1C5 0x96C5 +0xD1C6 0x54D1 +0xD1C7 0x4E9A +0xD1C8 0x8BB6 +0xD1C9 0x7109 +0xD1CA 0x54BD +0xD1CB 0x9609 +0xD1CC 0x70DF +0xD1CD 0x6DF9 +0xD1CE 0x76D0 +0xD1CF 0x4E25 +0xD1D0 0x7814 +0xD1D1 0x8712 +0xD1D2 0x5CA9 +0xD1D3 0x5EF6 +0xD1D4 0x8A00 +0xD1D5 0x989C +0xD1D6 0x960E +0xD1D7 0x708E +0xD1D8 0x6CBF +0xD1D9 0x5944 +0xD1DA 0x63A9 +0xD1DB 0x773C +0xD1DC 0x884D +0xD1DD 0x6F14 +0xD1DE 0x8273 +0xD1DF 0x5830 +0xD1E0 0x71D5 +0xD1E1 0x538C +0xD1E2 0x781A +0xD1E3 0x96C1 +0xD1E4 0x5501 +0xD1E5 0x5F66 +0xD1E6 0x7130 +0xD1E7 0x5BB4 +0xD1E8 0x8C1A +0xD1E9 0x9A8C +0xD1EA 0x6B83 +0xD1EB 0x592E +0xD1EC 0x9E2F +0xD1ED 0x79E7 +0xD1EE 0x6768 +0xD1EF 0x626C +0xD1F0 0x4F6F +0xD1F1 0x75A1 +0xD1F2 0x7F8A +0xD1F3 0x6D0B +0xD1F4 0x9633 +0xD1F5 0x6C27 +0xD1F6 0x4EF0 +0xD1F7 0x75D2 +0xD1F8 0x517B +0xD1F9 0x6837 +0xD1FA 0x6F3E +0xD1FB 0x9080 +0xD1FC 0x8170 +0xD1FD 0x5996 +0xD1FE 0x7476 +0xD240 0x8938 +0xD241 0x8939 +0xD242 0x893A +0xD243 0x893B +0xD244 0x893C +0xD245 0x893D +0xD246 0x893E +0xD247 0x893F +0xD248 0x8940 +0xD249 0x8942 +0xD24A 0x8943 +0xD24B 0x8945 +0xD24C 0x8946 +0xD24D 0x8947 +0xD24E 0x8948 +0xD24F 0x8949 +0xD250 0x894A +0xD251 0x894B +0xD252 0x894C +0xD253 0x894D +0xD254 0x894E +0xD255 0x894F +0xD256 0x8950 +0xD257 0x8951 +0xD258 0x8952 +0xD259 0x8953 +0xD25A 0x8954 +0xD25B 0x8955 +0xD25C 0x8956 +0xD25D 0x8957 +0xD25E 0x8958 +0xD25F 0x8959 +0xD260 0x895A +0xD261 0x895B +0xD262 0x895C +0xD263 0x895D +0xD264 0x8960 +0xD265 0x8961 +0xD266 0x8962 +0xD267 0x8963 +0xD268 0x8964 +0xD269 0x8965 +0xD26A 0x8967 +0xD26B 0x8968 +0xD26C 0x8969 +0xD26D 0x896A +0xD26E 0x896B +0xD26F 0x896C +0xD270 0x896D +0xD271 0x896E +0xD272 0x896F +0xD273 0x8970 +0xD274 0x8971 +0xD275 0x8972 +0xD276 0x8973 +0xD277 0x8974 +0xD278 0x8975 +0xD279 0x8976 +0xD27A 0x8977 +0xD27B 0x8978 +0xD27C 0x8979 +0xD27D 0x897A +0xD27E 0x897C +0xD280 0x897D +0xD281 0x897E +0xD282 0x8980 +0xD283 0x8982 +0xD284 0x8984 +0xD285 0x8985 +0xD286 0x8987 +0xD287 0x8988 +0xD288 0x8989 +0xD289 0x898A +0xD28A 0x898B +0xD28B 0x898C +0xD28C 0x898D +0xD28D 0x898E +0xD28E 0x898F +0xD28F 0x8990 +0xD290 0x8991 +0xD291 0x8992 +0xD292 0x8993 +0xD293 0x8994 +0xD294 0x8995 +0xD295 0x8996 +0xD296 0x8997 +0xD297 0x8998 +0xD298 0x8999 +0xD299 0x899A +0xD29A 0x899B +0xD29B 0x899C +0xD29C 0x899D +0xD29D 0x899E +0xD29E 0x899F +0xD29F 0x89A0 +0xD2A0 0x89A1 +0xD2A1 0x6447 +0xD2A2 0x5C27 +0xD2A3 0x9065 +0xD2A4 0x7A91 +0xD2A5 0x8C23 +0xD2A6 0x59DA +0xD2A7 0x54AC +0xD2A8 0x8200 +0xD2A9 0x836F +0xD2AA 0x8981 +0xD2AB 0x8000 +0xD2AC 0x6930 +0xD2AD 0x564E +0xD2AE 0x8036 +0xD2AF 0x7237 +0xD2B0 0x91CE +0xD2B1 0x51B6 +0xD2B2 0x4E5F +0xD2B3 0x9875 +0xD2B4 0x6396 +0xD2B5 0x4E1A +0xD2B6 0x53F6 +0xD2B7 0x66F3 +0xD2B8 0x814B +0xD2B9 0x591C +0xD2BA 0x6DB2 +0xD2BB 0x4E00 +0xD2BC 0x58F9 +0xD2BD 0x533B +0xD2BE 0x63D6 +0xD2BF 0x94F1 +0xD2C0 0x4F9D +0xD2C1 0x4F0A +0xD2C2 0x8863 +0xD2C3 0x9890 +0xD2C4 0x5937 +0xD2C5 0x9057 +0xD2C6 0x79FB +0xD2C7 0x4EEA +0xD2C8 0x80F0 +0xD2C9 0x7591 +0xD2CA 0x6C82 +0xD2CB 0x5B9C +0xD2CC 0x59E8 +0xD2CD 0x5F5D +0xD2CE 0x6905 +0xD2CF 0x8681 +0xD2D0 0x501A +0xD2D1 0x5DF2 +0xD2D2 0x4E59 +0xD2D3 0x77E3 +0xD2D4 0x4EE5 +0xD2D5 0x827A +0xD2D6 0x6291 +0xD2D7 0x6613 +0xD2D8 0x9091 +0xD2D9 0x5C79 +0xD2DA 0x4EBF +0xD2DB 0x5F79 +0xD2DC 0x81C6 +0xD2DD 0x9038 +0xD2DE 0x8084 +0xD2DF 0x75AB +0xD2E0 0x4EA6 +0xD2E1 0x88D4 +0xD2E2 0x610F +0xD2E3 0x6BC5 +0xD2E4 0x5FC6 +0xD2E5 0x4E49 +0xD2E6 0x76CA +0xD2E7 0x6EA2 +0xD2E8 0x8BE3 +0xD2E9 0x8BAE +0xD2EA 0x8C0A +0xD2EB 0x8BD1 +0xD2EC 0x5F02 +0xD2ED 0x7FFC +0xD2EE 0x7FCC +0xD2EF 0x7ECE +0xD2F0 0x8335 +0xD2F1 0x836B +0xD2F2 0x56E0 +0xD2F3 0x6BB7 +0xD2F4 0x97F3 +0xD2F5 0x9634 +0xD2F6 0x59FB +0xD2F7 0x541F +0xD2F8 0x94F6 +0xD2F9 0x6DEB +0xD2FA 0x5BC5 +0xD2FB 0x996E +0xD2FC 0x5C39 +0xD2FD 0x5F15 +0xD2FE 0x9690 +0xD340 0x89A2 +0xD341 0x89A3 +0xD342 0x89A4 +0xD343 0x89A5 +0xD344 0x89A6 +0xD345 0x89A7 +0xD346 0x89A8 +0xD347 0x89A9 +0xD348 0x89AA +0xD349 0x89AB +0xD34A 0x89AC +0xD34B 0x89AD +0xD34C 0x89AE +0xD34D 0x89AF +0xD34E 0x89B0 +0xD34F 0x89B1 +0xD350 0x89B2 +0xD351 0x89B3 +0xD352 0x89B4 +0xD353 0x89B5 +0xD354 0x89B6 +0xD355 0x89B7 +0xD356 0x89B8 +0xD357 0x89B9 +0xD358 0x89BA +0xD359 0x89BB +0xD35A 0x89BC +0xD35B 0x89BD +0xD35C 0x89BE +0xD35D 0x89BF +0xD35E 0x89C0 +0xD35F 0x89C3 +0xD360 0x89CD +0xD361 0x89D3 +0xD362 0x89D4 +0xD363 0x89D5 +0xD364 0x89D7 +0xD365 0x89D8 +0xD366 0x89D9 +0xD367 0x89DB +0xD368 0x89DD +0xD369 0x89DF +0xD36A 0x89E0 +0xD36B 0x89E1 +0xD36C 0x89E2 +0xD36D 0x89E4 +0xD36E 0x89E7 +0xD36F 0x89E8 +0xD370 0x89E9 +0xD371 0x89EA +0xD372 0x89EC +0xD373 0x89ED +0xD374 0x89EE +0xD375 0x89F0 +0xD376 0x89F1 +0xD377 0x89F2 +0xD378 0x89F4 +0xD379 0x89F5 +0xD37A 0x89F6 +0xD37B 0x89F7 +0xD37C 0x89F8 +0xD37D 0x89F9 +0xD37E 0x89FA +0xD380 0x89FB +0xD381 0x89FC +0xD382 0x89FD +0xD383 0x89FE +0xD384 0x89FF +0xD385 0x8A01 +0xD386 0x8A02 +0xD387 0x8A03 +0xD388 0x8A04 +0xD389 0x8A05 +0xD38A 0x8A06 +0xD38B 0x8A08 +0xD38C 0x8A09 +0xD38D 0x8A0A +0xD38E 0x8A0B +0xD38F 0x8A0C +0xD390 0x8A0D +0xD391 0x8A0E +0xD392 0x8A0F +0xD393 0x8A10 +0xD394 0x8A11 +0xD395 0x8A12 +0xD396 0x8A13 +0xD397 0x8A14 +0xD398 0x8A15 +0xD399 0x8A16 +0xD39A 0x8A17 +0xD39B 0x8A18 +0xD39C 0x8A19 +0xD39D 0x8A1A +0xD39E 0x8A1B +0xD39F 0x8A1C +0xD3A0 0x8A1D +0xD3A1 0x5370 +0xD3A2 0x82F1 +0xD3A3 0x6A31 +0xD3A4 0x5A74 +0xD3A5 0x9E70 +0xD3A6 0x5E94 +0xD3A7 0x7F28 +0xD3A8 0x83B9 +0xD3A9 0x8424 +0xD3AA 0x8425 +0xD3AB 0x8367 +0xD3AC 0x8747 +0xD3AD 0x8FCE +0xD3AE 0x8D62 +0xD3AF 0x76C8 +0xD3B0 0x5F71 +0xD3B1 0x9896 +0xD3B2 0x786C +0xD3B3 0x6620 +0xD3B4 0x54DF +0xD3B5 0x62E5 +0xD3B6 0x4F63 +0xD3B7 0x81C3 +0xD3B8 0x75C8 +0xD3B9 0x5EB8 +0xD3BA 0x96CD +0xD3BB 0x8E0A +0xD3BC 0x86F9 +0xD3BD 0x548F +0xD3BE 0x6CF3 +0xD3BF 0x6D8C +0xD3C0 0x6C38 +0xD3C1 0x607F +0xD3C2 0x52C7 +0xD3C3 0x7528 +0xD3C4 0x5E7D +0xD3C5 0x4F18 +0xD3C6 0x60A0 +0xD3C7 0x5FE7 +0xD3C8 0x5C24 +0xD3C9 0x7531 +0xD3CA 0x90AE +0xD3CB 0x94C0 +0xD3CC 0x72B9 +0xD3CD 0x6CB9 +0xD3CE 0x6E38 +0xD3CF 0x9149 +0xD3D0 0x6709 +0xD3D1 0x53CB +0xD3D2 0x53F3 +0xD3D3 0x4F51 +0xD3D4 0x91C9 +0xD3D5 0x8BF1 +0xD3D6 0x53C8 +0xD3D7 0x5E7C +0xD3D8 0x8FC2 +0xD3D9 0x6DE4 +0xD3DA 0x4E8E +0xD3DB 0x76C2 +0xD3DC 0x6986 +0xD3DD 0x865E +0xD3DE 0x611A +0xD3DF 0x8206 +0xD3E0 0x4F59 +0xD3E1 0x4FDE +0xD3E2 0x903E +0xD3E3 0x9C7C +0xD3E4 0x6109 +0xD3E5 0x6E1D +0xD3E6 0x6E14 +0xD3E7 0x9685 +0xD3E8 0x4E88 +0xD3E9 0x5A31 +0xD3EA 0x96E8 +0xD3EB 0x4E0E +0xD3EC 0x5C7F +0xD3ED 0x79B9 +0xD3EE 0x5B87 +0xD3EF 0x8BED +0xD3F0 0x7FBD +0xD3F1 0x7389 +0xD3F2 0x57DF +0xD3F3 0x828B +0xD3F4 0x90C1 +0xD3F5 0x5401 +0xD3F6 0x9047 +0xD3F7 0x55BB +0xD3F8 0x5CEA +0xD3F9 0x5FA1 +0xD3FA 0x6108 +0xD3FB 0x6B32 +0xD3FC 0x72F1 +0xD3FD 0x80B2 +0xD3FE 0x8A89 +0xD440 0x8A1E +0xD441 0x8A1F +0xD442 0x8A20 +0xD443 0x8A21 +0xD444 0x8A22 +0xD445 0x8A23 +0xD446 0x8A24 +0xD447 0x8A25 +0xD448 0x8A26 +0xD449 0x8A27 +0xD44A 0x8A28 +0xD44B 0x8A29 +0xD44C 0x8A2A +0xD44D 0x8A2B +0xD44E 0x8A2C +0xD44F 0x8A2D +0xD450 0x8A2E +0xD451 0x8A2F +0xD452 0x8A30 +0xD453 0x8A31 +0xD454 0x8A32 +0xD455 0x8A33 +0xD456 0x8A34 +0xD457 0x8A35 +0xD458 0x8A36 +0xD459 0x8A37 +0xD45A 0x8A38 +0xD45B 0x8A39 +0xD45C 0x8A3A +0xD45D 0x8A3B +0xD45E 0x8A3C +0xD45F 0x8A3D +0xD460 0x8A3F +0xD461 0x8A40 +0xD462 0x8A41 +0xD463 0x8A42 +0xD464 0x8A43 +0xD465 0x8A44 +0xD466 0x8A45 +0xD467 0x8A46 +0xD468 0x8A47 +0xD469 0x8A49 +0xD46A 0x8A4A +0xD46B 0x8A4B +0xD46C 0x8A4C +0xD46D 0x8A4D +0xD46E 0x8A4E +0xD46F 0x8A4F +0xD470 0x8A50 +0xD471 0x8A51 +0xD472 0x8A52 +0xD473 0x8A53 +0xD474 0x8A54 +0xD475 0x8A55 +0xD476 0x8A56 +0xD477 0x8A57 +0xD478 0x8A58 +0xD479 0x8A59 +0xD47A 0x8A5A +0xD47B 0x8A5B +0xD47C 0x8A5C +0xD47D 0x8A5D +0xD47E 0x8A5E +0xD480 0x8A5F +0xD481 0x8A60 +0xD482 0x8A61 +0xD483 0x8A62 +0xD484 0x8A63 +0xD485 0x8A64 +0xD486 0x8A65 +0xD487 0x8A66 +0xD488 0x8A67 +0xD489 0x8A68 +0xD48A 0x8A69 +0xD48B 0x8A6A +0xD48C 0x8A6B +0xD48D 0x8A6C +0xD48E 0x8A6D +0xD48F 0x8A6E +0xD490 0x8A6F +0xD491 0x8A70 +0xD492 0x8A71 +0xD493 0x8A72 +0xD494 0x8A73 +0xD495 0x8A74 +0xD496 0x8A75 +0xD497 0x8A76 +0xD498 0x8A77 +0xD499 0x8A78 +0xD49A 0x8A7A +0xD49B 0x8A7B +0xD49C 0x8A7C +0xD49D 0x8A7D +0xD49E 0x8A7E +0xD49F 0x8A7F +0xD4A0 0x8A80 +0xD4A1 0x6D74 +0xD4A2 0x5BD3 +0xD4A3 0x88D5 +0xD4A4 0x9884 +0xD4A5 0x8C6B +0xD4A6 0x9A6D +0xD4A7 0x9E33 +0xD4A8 0x6E0A +0xD4A9 0x51A4 +0xD4AA 0x5143 +0xD4AB 0x57A3 +0xD4AC 0x8881 +0xD4AD 0x539F +0xD4AE 0x63F4 +0xD4AF 0x8F95 +0xD4B0 0x56ED +0xD4B1 0x5458 +0xD4B2 0x5706 +0xD4B3 0x733F +0xD4B4 0x6E90 +0xD4B5 0x7F18 +0xD4B6 0x8FDC +0xD4B7 0x82D1 +0xD4B8 0x613F +0xD4B9 0x6028 +0xD4BA 0x9662 +0xD4BB 0x66F0 +0xD4BC 0x7EA6 +0xD4BD 0x8D8A +0xD4BE 0x8DC3 +0xD4BF 0x94A5 +0xD4C0 0x5CB3 +0xD4C1 0x7CA4 +0xD4C2 0x6708 +0xD4C3 0x60A6 +0xD4C4 0x9605 +0xD4C5 0x8018 +0xD4C6 0x4E91 +0xD4C7 0x90E7 +0xD4C8 0x5300 +0xD4C9 0x9668 +0xD4CA 0x5141 +0xD4CB 0x8FD0 +0xD4CC 0x8574 +0xD4CD 0x915D +0xD4CE 0x6655 +0xD4CF 0x97F5 +0xD4D0 0x5B55 +0xD4D1 0x531D +0xD4D2 0x7838 +0xD4D3 0x6742 +0xD4D4 0x683D +0xD4D5 0x54C9 +0xD4D6 0x707E +0xD4D7 0x5BB0 +0xD4D8 0x8F7D +0xD4D9 0x518D +0xD4DA 0x5728 +0xD4DB 0x54B1 +0xD4DC 0x6512 +0xD4DD 0x6682 +0xD4DE 0x8D5E +0xD4DF 0x8D43 +0xD4E0 0x810F +0xD4E1 0x846C +0xD4E2 0x906D +0xD4E3 0x7CDF +0xD4E4 0x51FF +0xD4E5 0x85FB +0xD4E6 0x67A3 +0xD4E7 0x65E9 +0xD4E8 0x6FA1 +0xD4E9 0x86A4 +0xD4EA 0x8E81 +0xD4EB 0x566A +0xD4EC 0x9020 +0xD4ED 0x7682 +0xD4EE 0x7076 +0xD4EF 0x71E5 +0xD4F0 0x8D23 +0xD4F1 0x62E9 +0xD4F2 0x5219 +0xD4F3 0x6CFD +0xD4F4 0x8D3C +0xD4F5 0x600E +0xD4F6 0x589E +0xD4F7 0x618E +0xD4F8 0x66FE +0xD4F9 0x8D60 +0xD4FA 0x624E +0xD4FB 0x55B3 +0xD4FC 0x6E23 +0xD4FD 0x672D +0xD4FE 0x8F67 +0xD540 0x8A81 +0xD541 0x8A82 +0xD542 0x8A83 +0xD543 0x8A84 +0xD544 0x8A85 +0xD545 0x8A86 +0xD546 0x8A87 +0xD547 0x8A88 +0xD548 0x8A8B +0xD549 0x8A8C +0xD54A 0x8A8D +0xD54B 0x8A8E +0xD54C 0x8A8F +0xD54D 0x8A90 +0xD54E 0x8A91 +0xD54F 0x8A92 +0xD550 0x8A94 +0xD551 0x8A95 +0xD552 0x8A96 +0xD553 0x8A97 +0xD554 0x8A98 +0xD555 0x8A99 +0xD556 0x8A9A +0xD557 0x8A9B +0xD558 0x8A9C +0xD559 0x8A9D +0xD55A 0x8A9E +0xD55B 0x8A9F +0xD55C 0x8AA0 +0xD55D 0x8AA1 +0xD55E 0x8AA2 +0xD55F 0x8AA3 +0xD560 0x8AA4 +0xD561 0x8AA5 +0xD562 0x8AA6 +0xD563 0x8AA7 +0xD564 0x8AA8 +0xD565 0x8AA9 +0xD566 0x8AAA +0xD567 0x8AAB +0xD568 0x8AAC +0xD569 0x8AAD +0xD56A 0x8AAE +0xD56B 0x8AAF +0xD56C 0x8AB0 +0xD56D 0x8AB1 +0xD56E 0x8AB2 +0xD56F 0x8AB3 +0xD570 0x8AB4 +0xD571 0x8AB5 +0xD572 0x8AB6 +0xD573 0x8AB7 +0xD574 0x8AB8 +0xD575 0x8AB9 +0xD576 0x8ABA +0xD577 0x8ABB +0xD578 0x8ABC +0xD579 0x8ABD +0xD57A 0x8ABE +0xD57B 0x8ABF +0xD57C 0x8AC0 +0xD57D 0x8AC1 +0xD57E 0x8AC2 +0xD580 0x8AC3 +0xD581 0x8AC4 +0xD582 0x8AC5 +0xD583 0x8AC6 +0xD584 0x8AC7 +0xD585 0x8AC8 +0xD586 0x8AC9 +0xD587 0x8ACA +0xD588 0x8ACB +0xD589 0x8ACC +0xD58A 0x8ACD +0xD58B 0x8ACE +0xD58C 0x8ACF +0xD58D 0x8AD0 +0xD58E 0x8AD1 +0xD58F 0x8AD2 +0xD590 0x8AD3 +0xD591 0x8AD4 +0xD592 0x8AD5 +0xD593 0x8AD6 +0xD594 0x8AD7 +0xD595 0x8AD8 +0xD596 0x8AD9 +0xD597 0x8ADA +0xD598 0x8ADB +0xD599 0x8ADC +0xD59A 0x8ADD +0xD59B 0x8ADE +0xD59C 0x8ADF +0xD59D 0x8AE0 +0xD59E 0x8AE1 +0xD59F 0x8AE2 +0xD5A0 0x8AE3 +0xD5A1 0x94E1 +0xD5A2 0x95F8 +0xD5A3 0x7728 +0xD5A4 0x6805 +0xD5A5 0x69A8 +0xD5A6 0x548B +0xD5A7 0x4E4D +0xD5A8 0x70B8 +0xD5A9 0x8BC8 +0xD5AA 0x6458 +0xD5AB 0x658B +0xD5AC 0x5B85 +0xD5AD 0x7A84 +0xD5AE 0x503A +0xD5AF 0x5BE8 +0xD5B0 0x77BB +0xD5B1 0x6BE1 +0xD5B2 0x8A79 +0xD5B3 0x7C98 +0xD5B4 0x6CBE +0xD5B5 0x76CF +0xD5B6 0x65A9 +0xD5B7 0x8F97 +0xD5B8 0x5D2D +0xD5B9 0x5C55 +0xD5BA 0x8638 +0xD5BB 0x6808 +0xD5BC 0x5360 +0xD5BD 0x6218 +0xD5BE 0x7AD9 +0xD5BF 0x6E5B +0xD5C0 0x7EFD +0xD5C1 0x6A1F +0xD5C2 0x7AE0 +0xD5C3 0x5F70 +0xD5C4 0x6F33 +0xD5C5 0x5F20 +0xD5C6 0x638C +0xD5C7 0x6DA8 +0xD5C8 0x6756 +0xD5C9 0x4E08 +0xD5CA 0x5E10 +0xD5CB 0x8D26 +0xD5CC 0x4ED7 +0xD5CD 0x80C0 +0xD5CE 0x7634 +0xD5CF 0x969C +0xD5D0 0x62DB +0xD5D1 0x662D +0xD5D2 0x627E +0xD5D3 0x6CBC +0xD5D4 0x8D75 +0xD5D5 0x7167 +0xD5D6 0x7F69 +0xD5D7 0x5146 +0xD5D8 0x8087 +0xD5D9 0x53EC +0xD5DA 0x906E +0xD5DB 0x6298 +0xD5DC 0x54F2 +0xD5DD 0x86F0 +0xD5DE 0x8F99 +0xD5DF 0x8005 +0xD5E0 0x9517 +0xD5E1 0x8517 +0xD5E2 0x8FD9 +0xD5E3 0x6D59 +0xD5E4 0x73CD +0xD5E5 0x659F +0xD5E6 0x771F +0xD5E7 0x7504 +0xD5E8 0x7827 +0xD5E9 0x81FB +0xD5EA 0x8D1E +0xD5EB 0x9488 +0xD5EC 0x4FA6 +0xD5ED 0x6795 +0xD5EE 0x75B9 +0xD5EF 0x8BCA +0xD5F0 0x9707 +0xD5F1 0x632F +0xD5F2 0x9547 +0xD5F3 0x9635 +0xD5F4 0x84B8 +0xD5F5 0x6323 +0xD5F6 0x7741 +0xD5F7 0x5F81 +0xD5F8 0x72F0 +0xD5F9 0x4E89 +0xD5FA 0x6014 +0xD5FB 0x6574 +0xD5FC 0x62EF +0xD5FD 0x6B63 +0xD5FE 0x653F +0xD640 0x8AE4 +0xD641 0x8AE5 +0xD642 0x8AE6 +0xD643 0x8AE7 +0xD644 0x8AE8 +0xD645 0x8AE9 +0xD646 0x8AEA +0xD647 0x8AEB +0xD648 0x8AEC +0xD649 0x8AED +0xD64A 0x8AEE +0xD64B 0x8AEF +0xD64C 0x8AF0 +0xD64D 0x8AF1 +0xD64E 0x8AF2 +0xD64F 0x8AF3 +0xD650 0x8AF4 +0xD651 0x8AF5 +0xD652 0x8AF6 +0xD653 0x8AF7 +0xD654 0x8AF8 +0xD655 0x8AF9 +0xD656 0x8AFA +0xD657 0x8AFB +0xD658 0x8AFC +0xD659 0x8AFD +0xD65A 0x8AFE +0xD65B 0x8AFF +0xD65C 0x8B00 +0xD65D 0x8B01 +0xD65E 0x8B02 +0xD65F 0x8B03 +0xD660 0x8B04 +0xD661 0x8B05 +0xD662 0x8B06 +0xD663 0x8B08 +0xD664 0x8B09 +0xD665 0x8B0A +0xD666 0x8B0B +0xD667 0x8B0C +0xD668 0x8B0D +0xD669 0x8B0E +0xD66A 0x8B0F +0xD66B 0x8B10 +0xD66C 0x8B11 +0xD66D 0x8B12 +0xD66E 0x8B13 +0xD66F 0x8B14 +0xD670 0x8B15 +0xD671 0x8B16 +0xD672 0x8B17 +0xD673 0x8B18 +0xD674 0x8B19 +0xD675 0x8B1A +0xD676 0x8B1B +0xD677 0x8B1C +0xD678 0x8B1D +0xD679 0x8B1E +0xD67A 0x8B1F +0xD67B 0x8B20 +0xD67C 0x8B21 +0xD67D 0x8B22 +0xD67E 0x8B23 +0xD680 0x8B24 +0xD681 0x8B25 +0xD682 0x8B27 +0xD683 0x8B28 +0xD684 0x8B29 +0xD685 0x8B2A +0xD686 0x8B2B +0xD687 0x8B2C +0xD688 0x8B2D +0xD689 0x8B2E +0xD68A 0x8B2F +0xD68B 0x8B30 +0xD68C 0x8B31 +0xD68D 0x8B32 +0xD68E 0x8B33 +0xD68F 0x8B34 +0xD690 0x8B35 +0xD691 0x8B36 +0xD692 0x8B37 +0xD693 0x8B38 +0xD694 0x8B39 +0xD695 0x8B3A +0xD696 0x8B3B +0xD697 0x8B3C +0xD698 0x8B3D +0xD699 0x8B3E +0xD69A 0x8B3F +0xD69B 0x8B40 +0xD69C 0x8B41 +0xD69D 0x8B42 +0xD69E 0x8B43 +0xD69F 0x8B44 +0xD6A0 0x8B45 +0xD6A1 0x5E27 +0xD6A2 0x75C7 +0xD6A3 0x90D1 +0xD6A4 0x8BC1 +0xD6A5 0x829D +0xD6A6 0x679D +0xD6A7 0x652F +0xD6A8 0x5431 +0xD6A9 0x8718 +0xD6AA 0x77E5 +0xD6AB 0x80A2 +0xD6AC 0x8102 +0xD6AD 0x6C41 +0xD6AE 0x4E4B +0xD6AF 0x7EC7 +0xD6B0 0x804C +0xD6B1 0x76F4 +0xD6B2 0x690D +0xD6B3 0x6B96 +0xD6B4 0x6267 +0xD6B5 0x503C +0xD6B6 0x4F84 +0xD6B7 0x5740 +0xD6B8 0x6307 +0xD6B9 0x6B62 +0xD6BA 0x8DBE +0xD6BB 0x53EA +0xD6BC 0x65E8 +0xD6BD 0x7EB8 +0xD6BE 0x5FD7 +0xD6BF 0x631A +0xD6C0 0x63B7 +0xD6C1 0x81F3 +0xD6C2 0x81F4 +0xD6C3 0x7F6E +0xD6C4 0x5E1C +0xD6C5 0x5CD9 +0xD6C6 0x5236 +0xD6C7 0x667A +0xD6C8 0x79E9 +0xD6C9 0x7A1A +0xD6CA 0x8D28 +0xD6CB 0x7099 +0xD6CC 0x75D4 +0xD6CD 0x6EDE +0xD6CE 0x6CBB +0xD6CF 0x7A92 +0xD6D0 0x4E2D +0xD6D1 0x76C5 +0xD6D2 0x5FE0 +0xD6D3 0x949F +0xD6D4 0x8877 +0xD6D5 0x7EC8 +0xD6D6 0x79CD +0xD6D7 0x80BF +0xD6D8 0x91CD +0xD6D9 0x4EF2 +0xD6DA 0x4F17 +0xD6DB 0x821F +0xD6DC 0x5468 +0xD6DD 0x5DDE +0xD6DE 0x6D32 +0xD6DF 0x8BCC +0xD6E0 0x7CA5 +0xD6E1 0x8F74 +0xD6E2 0x8098 +0xD6E3 0x5E1A +0xD6E4 0x5492 +0xD6E5 0x76B1 +0xD6E6 0x5B99 +0xD6E7 0x663C +0xD6E8 0x9AA4 +0xD6E9 0x73E0 +0xD6EA 0x682A +0xD6EB 0x86DB +0xD6EC 0x6731 +0xD6ED 0x732A +0xD6EE 0x8BF8 +0xD6EF 0x8BDB +0xD6F0 0x9010 +0xD6F1 0x7AF9 +0xD6F2 0x70DB +0xD6F3 0x716E +0xD6F4 0x62C4 +0xD6F5 0x77A9 +0xD6F6 0x5631 +0xD6F7 0x4E3B +0xD6F8 0x8457 +0xD6F9 0x67F1 +0xD6FA 0x52A9 +0xD6FB 0x86C0 +0xD6FC 0x8D2E +0xD6FD 0x94F8 +0xD6FE 0x7B51 +0xD740 0x8B46 +0xD741 0x8B47 +0xD742 0x8B48 +0xD743 0x8B49 +0xD744 0x8B4A +0xD745 0x8B4B +0xD746 0x8B4C +0xD747 0x8B4D +0xD748 0x8B4E +0xD749 0x8B4F +0xD74A 0x8B50 +0xD74B 0x8B51 +0xD74C 0x8B52 +0xD74D 0x8B53 +0xD74E 0x8B54 +0xD74F 0x8B55 +0xD750 0x8B56 +0xD751 0x8B57 +0xD752 0x8B58 +0xD753 0x8B59 +0xD754 0x8B5A +0xD755 0x8B5B +0xD756 0x8B5C +0xD757 0x8B5D +0xD758 0x8B5E +0xD759 0x8B5F +0xD75A 0x8B60 +0xD75B 0x8B61 +0xD75C 0x8B62 +0xD75D 0x8B63 +0xD75E 0x8B64 +0xD75F 0x8B65 +0xD760 0x8B67 +0xD761 0x8B68 +0xD762 0x8B69 +0xD763 0x8B6A +0xD764 0x8B6B +0xD765 0x8B6D +0xD766 0x8B6E +0xD767 0x8B6F +0xD768 0x8B70 +0xD769 0x8B71 +0xD76A 0x8B72 +0xD76B 0x8B73 +0xD76C 0x8B74 +0xD76D 0x8B75 +0xD76E 0x8B76 +0xD76F 0x8B77 +0xD770 0x8B78 +0xD771 0x8B79 +0xD772 0x8B7A +0xD773 0x8B7B +0xD774 0x8B7C +0xD775 0x8B7D +0xD776 0x8B7E +0xD777 0x8B7F +0xD778 0x8B80 +0xD779 0x8B81 +0xD77A 0x8B82 +0xD77B 0x8B83 +0xD77C 0x8B84 +0xD77D 0x8B85 +0xD77E 0x8B86 +0xD780 0x8B87 +0xD781 0x8B88 +0xD782 0x8B89 +0xD783 0x8B8A +0xD784 0x8B8B +0xD785 0x8B8C +0xD786 0x8B8D +0xD787 0x8B8E +0xD788 0x8B8F +0xD789 0x8B90 +0xD78A 0x8B91 +0xD78B 0x8B92 +0xD78C 0x8B93 +0xD78D 0x8B94 +0xD78E 0x8B95 +0xD78F 0x8B96 +0xD790 0x8B97 +0xD791 0x8B98 +0xD792 0x8B99 +0xD793 0x8B9A +0xD794 0x8B9B +0xD795 0x8B9C +0xD796 0x8B9D +0xD797 0x8B9E +0xD798 0x8B9F +0xD799 0x8BAC +0xD79A 0x8BB1 +0xD79B 0x8BBB +0xD79C 0x8BC7 +0xD79D 0x8BD0 +0xD79E 0x8BEA +0xD79F 0x8C09 +0xD7A0 0x8C1E +0xD7A1 0x4F4F +0xD7A2 0x6CE8 +0xD7A3 0x795D +0xD7A4 0x9A7B +0xD7A5 0x6293 +0xD7A6 0x722A +0xD7A7 0x62FD +0xD7A8 0x4E13 +0xD7A9 0x7816 +0xD7AA 0x8F6C +0xD7AB 0x64B0 +0xD7AC 0x8D5A +0xD7AD 0x7BC6 +0xD7AE 0x6869 +0xD7AF 0x5E84 +0xD7B0 0x88C5 +0xD7B1 0x5986 +0xD7B2 0x649E +0xD7B3 0x58EE +0xD7B4 0x72B6 +0xD7B5 0x690E +0xD7B6 0x9525 +0xD7B7 0x8FFD +0xD7B8 0x8D58 +0xD7B9 0x5760 +0xD7BA 0x7F00 +0xD7BB 0x8C06 +0xD7BC 0x51C6 +0xD7BD 0x6349 +0xD7BE 0x62D9 +0xD7BF 0x5353 +0xD7C0 0x684C +0xD7C1 0x7422 +0xD7C2 0x8301 +0xD7C3 0x914C +0xD7C4 0x5544 +0xD7C5 0x7740 +0xD7C6 0x707C +0xD7C7 0x6D4A +0xD7C8 0x5179 +0xD7C9 0x54A8 +0xD7CA 0x8D44 +0xD7CB 0x59FF +0xD7CC 0x6ECB +0xD7CD 0x6DC4 +0xD7CE 0x5B5C +0xD7CF 0x7D2B +0xD7D0 0x4ED4 +0xD7D1 0x7C7D +0xD7D2 0x6ED3 +0xD7D3 0x5B50 +0xD7D4 0x81EA +0xD7D5 0x6E0D +0xD7D6 0x5B57 +0xD7D7 0x9B03 +0xD7D8 0x68D5 +0xD7D9 0x8E2A +0xD7DA 0x5B97 +0xD7DB 0x7EFC +0xD7DC 0x603B +0xD7DD 0x7EB5 +0xD7DE 0x90B9 +0xD7DF 0x8D70 +0xD7E0 0x594F +0xD7E1 0x63CD +0xD7E2 0x79DF +0xD7E3 0x8DB3 +0xD7E4 0x5352 +0xD7E5 0x65CF +0xD7E6 0x7956 +0xD7E7 0x8BC5 +0xD7E8 0x963B +0xD7E9 0x7EC4 +0xD7EA 0x94BB +0xD7EB 0x7E82 +0xD7EC 0x5634 +0xD7ED 0x9189 +0xD7EE 0x6700 +0xD7EF 0x7F6A +0xD7F0 0x5C0A +0xD7F1 0x9075 +0xD7F2 0x6628 +0xD7F3 0x5DE6 +0xD7F4 0x4F50 +0xD7F5 0x67DE +0xD7F6 0x505A +0xD7F7 0x4F5C +0xD7F8 0x5750 +0xD7F9 0x5EA7 +0xD840 0x8C38 +0xD841 0x8C39 +0xD842 0x8C3A +0xD843 0x8C3B +0xD844 0x8C3C +0xD845 0x8C3D +0xD846 0x8C3E +0xD847 0x8C3F +0xD848 0x8C40 +0xD849 0x8C42 +0xD84A 0x8C43 +0xD84B 0x8C44 +0xD84C 0x8C45 +0xD84D 0x8C48 +0xD84E 0x8C4A +0xD84F 0x8C4B +0xD850 0x8C4D +0xD851 0x8C4E +0xD852 0x8C4F +0xD853 0x8C50 +0xD854 0x8C51 +0xD855 0x8C52 +0xD856 0x8C53 +0xD857 0x8C54 +0xD858 0x8C56 +0xD859 0x8C57 +0xD85A 0x8C58 +0xD85B 0x8C59 +0xD85C 0x8C5B +0xD85D 0x8C5C +0xD85E 0x8C5D +0xD85F 0x8C5E +0xD860 0x8C5F +0xD861 0x8C60 +0xD862 0x8C63 +0xD863 0x8C64 +0xD864 0x8C65 +0xD865 0x8C66 +0xD866 0x8C67 +0xD867 0x8C68 +0xD868 0x8C69 +0xD869 0x8C6C +0xD86A 0x8C6D +0xD86B 0x8C6E +0xD86C 0x8C6F +0xD86D 0x8C70 +0xD86E 0x8C71 +0xD86F 0x8C72 +0xD870 0x8C74 +0xD871 0x8C75 +0xD872 0x8C76 +0xD873 0x8C77 +0xD874 0x8C7B +0xD875 0x8C7C +0xD876 0x8C7D +0xD877 0x8C7E +0xD878 0x8C7F +0xD879 0x8C80 +0xD87A 0x8C81 +0xD87B 0x8C83 +0xD87C 0x8C84 +0xD87D 0x8C86 +0xD87E 0x8C87 +0xD880 0x8C88 +0xD881 0x8C8B +0xD882 0x8C8D +0xD883 0x8C8E +0xD884 0x8C8F +0xD885 0x8C90 +0xD886 0x8C91 +0xD887 0x8C92 +0xD888 0x8C93 +0xD889 0x8C95 +0xD88A 0x8C96 +0xD88B 0x8C97 +0xD88C 0x8C99 +0xD88D 0x8C9A +0xD88E 0x8C9B +0xD88F 0x8C9C +0xD890 0x8C9D +0xD891 0x8C9E +0xD892 0x8C9F +0xD893 0x8CA0 +0xD894 0x8CA1 +0xD895 0x8CA2 +0xD896 0x8CA3 +0xD897 0x8CA4 +0xD898 0x8CA5 +0xD899 0x8CA6 +0xD89A 0x8CA7 +0xD89B 0x8CA8 +0xD89C 0x8CA9 +0xD89D 0x8CAA +0xD89E 0x8CAB +0xD89F 0x8CAC +0xD8A0 0x8CAD +0xD8A1 0x4E8D +0xD8A2 0x4E0C +0xD8A3 0x5140 +0xD8A4 0x4E10 +0xD8A5 0x5EFF +0xD8A6 0x5345 +0xD8A7 0x4E15 +0xD8A8 0x4E98 +0xD8A9 0x4E1E +0xD8AA 0x9B32 +0xD8AB 0x5B6C +0xD8AC 0x5669 +0xD8AD 0x4E28 +0xD8AE 0x79BA +0xD8AF 0x4E3F +0xD8B0 0x5315 +0xD8B1 0x4E47 +0xD8B2 0x592D +0xD8B3 0x723B +0xD8B4 0x536E +0xD8B5 0x6C10 +0xD8B6 0x56DF +0xD8B7 0x80E4 +0xD8B8 0x9997 +0xD8B9 0x6BD3 +0xD8BA 0x777E +0xD8BB 0x9F17 +0xD8BC 0x4E36 +0xD8BD 0x4E9F +0xD8BE 0x9F10 +0xD8BF 0x4E5C +0xD8C0 0x4E69 +0xD8C1 0x4E93 +0xD8C2 0x8288 +0xD8C3 0x5B5B +0xD8C4 0x556C +0xD8C5 0x560F +0xD8C6 0x4EC4 +0xD8C7 0x538D +0xD8C8 0x539D +0xD8C9 0x53A3 +0xD8CA 0x53A5 +0xD8CB 0x53AE +0xD8CC 0x9765 +0xD8CD 0x8D5D +0xD8CE 0x531A +0xD8CF 0x53F5 +0xD8D0 0x5326 +0xD8D1 0x532E +0xD8D2 0x533E +0xD8D3 0x8D5C +0xD8D4 0x5366 +0xD8D5 0x5363 +0xD8D6 0x5202 +0xD8D7 0x5208 +0xD8D8 0x520E +0xD8D9 0x522D +0xD8DA 0x5233 +0xD8DB 0x523F +0xD8DC 0x5240 +0xD8DD 0x524C +0xD8DE 0x525E +0xD8DF 0x5261 +0xD8E0 0x525C +0xD8E1 0x84AF +0xD8E2 0x527D +0xD8E3 0x5282 +0xD8E4 0x5281 +0xD8E5 0x5290 +0xD8E6 0x5293 +0xD8E7 0x5182 +0xD8E8 0x7F54 +0xD8E9 0x4EBB +0xD8EA 0x4EC3 +0xD8EB 0x4EC9 +0xD8EC 0x4EC2 +0xD8ED 0x4EE8 +0xD8EE 0x4EE1 +0xD8EF 0x4EEB +0xD8F0 0x4EDE +0xD8F1 0x4F1B +0xD8F2 0x4EF3 +0xD8F3 0x4F22 +0xD8F4 0x4F64 +0xD8F5 0x4EF5 +0xD8F6 0x4F25 +0xD8F7 0x4F27 +0xD8F8 0x4F09 +0xD8F9 0x4F2B +0xD8FA 0x4F5E +0xD8FB 0x4F67 +0xD8FC 0x6538 +0xD8FD 0x4F5A +0xD8FE 0x4F5D +0xD940 0x8CAE +0xD941 0x8CAF +0xD942 0x8CB0 +0xD943 0x8CB1 +0xD944 0x8CB2 +0xD945 0x8CB3 +0xD946 0x8CB4 +0xD947 0x8CB5 +0xD948 0x8CB6 +0xD949 0x8CB7 +0xD94A 0x8CB8 +0xD94B 0x8CB9 +0xD94C 0x8CBA +0xD94D 0x8CBB +0xD94E 0x8CBC +0xD94F 0x8CBD +0xD950 0x8CBE +0xD951 0x8CBF +0xD952 0x8CC0 +0xD953 0x8CC1 +0xD954 0x8CC2 +0xD955 0x8CC3 +0xD956 0x8CC4 +0xD957 0x8CC5 +0xD958 0x8CC6 +0xD959 0x8CC7 +0xD95A 0x8CC8 +0xD95B 0x8CC9 +0xD95C 0x8CCA +0xD95D 0x8CCB +0xD95E 0x8CCC +0xD95F 0x8CCD +0xD960 0x8CCE +0xD961 0x8CCF +0xD962 0x8CD0 +0xD963 0x8CD1 +0xD964 0x8CD2 +0xD965 0x8CD3 +0xD966 0x8CD4 +0xD967 0x8CD5 +0xD968 0x8CD6 +0xD969 0x8CD7 +0xD96A 0x8CD8 +0xD96B 0x8CD9 +0xD96C 0x8CDA +0xD96D 0x8CDB +0xD96E 0x8CDC +0xD96F 0x8CDD +0xD970 0x8CDE +0xD971 0x8CDF +0xD972 0x8CE0 +0xD973 0x8CE1 +0xD974 0x8CE2 +0xD975 0x8CE3 +0xD976 0x8CE4 +0xD977 0x8CE5 +0xD978 0x8CE6 +0xD979 0x8CE7 +0xD97A 0x8CE8 +0xD97B 0x8CE9 +0xD97C 0x8CEA +0xD97D 0x8CEB +0xD97E 0x8CEC +0xD980 0x8CED +0xD981 0x8CEE +0xD982 0x8CEF +0xD983 0x8CF0 +0xD984 0x8CF1 +0xD985 0x8CF2 +0xD986 0x8CF3 +0xD987 0x8CF4 +0xD988 0x8CF5 +0xD989 0x8CF6 +0xD98A 0x8CF7 +0xD98B 0x8CF8 +0xD98C 0x8CF9 +0xD98D 0x8CFA +0xD98E 0x8CFB +0xD98F 0x8CFC +0xD990 0x8CFD +0xD991 0x8CFE +0xD992 0x8CFF +0xD993 0x8D00 +0xD994 0x8D01 +0xD995 0x8D02 +0xD996 0x8D03 +0xD997 0x8D04 +0xD998 0x8D05 +0xD999 0x8D06 +0xD99A 0x8D07 +0xD99B 0x8D08 +0xD99C 0x8D09 +0xD99D 0x8D0A +0xD99E 0x8D0B +0xD99F 0x8D0C +0xD9A0 0x8D0D +0xD9A1 0x4F5F +0xD9A2 0x4F57 +0xD9A3 0x4F32 +0xD9A4 0x4F3D +0xD9A5 0x4F76 +0xD9A6 0x4F74 +0xD9A7 0x4F91 +0xD9A8 0x4F89 +0xD9A9 0x4F83 +0xD9AA 0x4F8F +0xD9AB 0x4F7E +0xD9AC 0x4F7B +0xD9AD 0x4FAA +0xD9AE 0x4F7C +0xD9AF 0x4FAC +0xD9B0 0x4F94 +0xD9B1 0x4FE6 +0xD9B2 0x4FE8 +0xD9B3 0x4FEA +0xD9B4 0x4FC5 +0xD9B5 0x4FDA +0xD9B6 0x4FE3 +0xD9B7 0x4FDC +0xD9B8 0x4FD1 +0xD9B9 0x4FDF +0xD9BA 0x4FF8 +0xD9BB 0x5029 +0xD9BC 0x504C +0xD9BD 0x4FF3 +0xD9BE 0x502C +0xD9BF 0x500F +0xD9C0 0x502E +0xD9C1 0x502D +0xD9C2 0x4FFE +0xD9C3 0x501C +0xD9C4 0x500C +0xD9C5 0x5025 +0xD9C6 0x5028 +0xD9C7 0x507E +0xD9C8 0x5043 +0xD9C9 0x5055 +0xD9CA 0x5048 +0xD9CB 0x504E +0xD9CC 0x506C +0xD9CD 0x507B +0xD9CE 0x50A5 +0xD9CF 0x50A7 +0xD9D0 0x50A9 +0xD9D1 0x50BA +0xD9D2 0x50D6 +0xD9D3 0x5106 +0xD9D4 0x50ED +0xD9D5 0x50EC +0xD9D6 0x50E6 +0xD9D7 0x50EE +0xD9D8 0x5107 +0xD9D9 0x510B +0xD9DA 0x4EDD +0xD9DB 0x6C3D +0xD9DC 0x4F58 +0xD9DD 0x4F65 +0xD9DE 0x4FCE +0xD9DF 0x9FA0 +0xD9E0 0x6C46 +0xD9E1 0x7C74 +0xD9E2 0x516E +0xD9E3 0x5DFD +0xD9E4 0x9EC9 +0xD9E5 0x9998 +0xD9E6 0x5181 +0xD9E7 0x5914 +0xD9E8 0x52F9 +0xD9E9 0x530D +0xD9EA 0x8A07 +0xD9EB 0x5310 +0xD9EC 0x51EB +0xD9ED 0x5919 +0xD9EE 0x5155 +0xD9EF 0x4EA0 +0xD9F0 0x5156 +0xD9F1 0x4EB3 +0xD9F2 0x886E +0xD9F3 0x88A4 +0xD9F4 0x4EB5 +0xD9F5 0x8114 +0xD9F6 0x88D2 +0xD9F7 0x7980 +0xD9F8 0x5B34 +0xD9F9 0x8803 +0xD9FA 0x7FB8 +0xD9FB 0x51AB +0xD9FC 0x51B1 +0xD9FD 0x51BD +0xD9FE 0x51BC +0xDA40 0x8D0E +0xDA41 0x8D0F +0xDA42 0x8D10 +0xDA43 0x8D11 +0xDA44 0x8D12 +0xDA45 0x8D13 +0xDA46 0x8D14 +0xDA47 0x8D15 +0xDA48 0x8D16 +0xDA49 0x8D17 +0xDA4A 0x8D18 +0xDA4B 0x8D19 +0xDA4C 0x8D1A +0xDA4D 0x8D1B +0xDA4E 0x8D1C +0xDA4F 0x8D20 +0xDA50 0x8D51 +0xDA51 0x8D52 +0xDA52 0x8D57 +0xDA53 0x8D5F +0xDA54 0x8D65 +0xDA55 0x8D68 +0xDA56 0x8D69 +0xDA57 0x8D6A +0xDA58 0x8D6C +0xDA59 0x8D6E +0xDA5A 0x8D6F +0xDA5B 0x8D71 +0xDA5C 0x8D72 +0xDA5D 0x8D78 +0xDA5E 0x8D79 +0xDA5F 0x8D7A +0xDA60 0x8D7B +0xDA61 0x8D7C +0xDA62 0x8D7D +0xDA63 0x8D7E +0xDA64 0x8D7F +0xDA65 0x8D80 +0xDA66 0x8D82 +0xDA67 0x8D83 +0xDA68 0x8D86 +0xDA69 0x8D87 +0xDA6A 0x8D88 +0xDA6B 0x8D89 +0xDA6C 0x8D8C +0xDA6D 0x8D8D +0xDA6E 0x8D8E +0xDA6F 0x8D8F +0xDA70 0x8D90 +0xDA71 0x8D92 +0xDA72 0x8D93 +0xDA73 0x8D95 +0xDA74 0x8D96 +0xDA75 0x8D97 +0xDA76 0x8D98 +0xDA77 0x8D99 +0xDA78 0x8D9A +0xDA79 0x8D9B +0xDA7A 0x8D9C +0xDA7B 0x8D9D +0xDA7C 0x8D9E +0xDA7D 0x8DA0 +0xDA7E 0x8DA1 +0xDA80 0x8DA2 +0xDA81 0x8DA4 +0xDA82 0x8DA5 +0xDA83 0x8DA6 +0xDA84 0x8DA7 +0xDA85 0x8DA8 +0xDA86 0x8DA9 +0xDA87 0x8DAA +0xDA88 0x8DAB +0xDA89 0x8DAC +0xDA8A 0x8DAD +0xDA8B 0x8DAE +0xDA8C 0x8DAF +0xDA8D 0x8DB0 +0xDA8E 0x8DB2 +0xDA8F 0x8DB6 +0xDA90 0x8DB7 +0xDA91 0x8DB9 +0xDA92 0x8DBB +0xDA93 0x8DBD +0xDA94 0x8DC0 +0xDA95 0x8DC1 +0xDA96 0x8DC2 +0xDA97 0x8DC5 +0xDA98 0x8DC7 +0xDA99 0x8DC8 +0xDA9A 0x8DC9 +0xDA9B 0x8DCA +0xDA9C 0x8DCD +0xDA9D 0x8DD0 +0xDA9E 0x8DD2 +0xDA9F 0x8DD3 +0xDAA0 0x8DD4 +0xDAA1 0x51C7 +0xDAA2 0x5196 +0xDAA3 0x51A2 +0xDAA4 0x51A5 +0xDAA5 0x8BA0 +0xDAA6 0x8BA6 +0xDAA7 0x8BA7 +0xDAA8 0x8BAA +0xDAA9 0x8BB4 +0xDAAA 0x8BB5 +0xDAAB 0x8BB7 +0xDAAC 0x8BC2 +0xDAAD 0x8BC3 +0xDAAE 0x8BCB +0xDAAF 0x8BCF +0xDAB0 0x8BCE +0xDAB1 0x8BD2 +0xDAB2 0x8BD3 +0xDAB3 0x8BD4 +0xDAB4 0x8BD6 +0xDAB5 0x8BD8 +0xDAB6 0x8BD9 +0xDAB7 0x8BDC +0xDAB8 0x8BDF +0xDAB9 0x8BE0 +0xDABA 0x8BE4 +0xDABB 0x8BE8 +0xDABC 0x8BE9 +0xDABD 0x8BEE +0xDABE 0x8BF0 +0xDABF 0x8BF3 +0xDAC0 0x8BF6 +0xDAC1 0x8BF9 +0xDAC2 0x8BFC +0xDAC3 0x8BFF +0xDAC4 0x8C00 +0xDAC5 0x8C02 +0xDAC6 0x8C04 +0xDAC7 0x8C07 +0xDAC8 0x8C0C +0xDAC9 0x8C0F +0xDACA 0x8C11 +0xDACB 0x8C12 +0xDACC 0x8C14 +0xDACD 0x8C15 +0xDACE 0x8C16 +0xDACF 0x8C19 +0xDAD0 0x8C1B +0xDAD1 0x8C18 +0xDAD2 0x8C1D +0xDAD3 0x8C1F +0xDAD4 0x8C20 +0xDAD5 0x8C21 +0xDAD6 0x8C25 +0xDAD7 0x8C27 +0xDAD8 0x8C2A +0xDAD9 0x8C2B +0xDADA 0x8C2E +0xDADB 0x8C2F +0xDADC 0x8C32 +0xDADD 0x8C33 +0xDADE 0x8C35 +0xDADF 0x8C36 +0xDAE0 0x5369 +0xDAE1 0x537A +0xDAE2 0x961D +0xDAE3 0x9622 +0xDAE4 0x9621 +0xDAE5 0x9631 +0xDAE6 0x962A +0xDAE7 0x963D +0xDAE8 0x963C +0xDAE9 0x9642 +0xDAEA 0x9649 +0xDAEB 0x9654 +0xDAEC 0x965F +0xDAED 0x9667 +0xDAEE 0x966C +0xDAEF 0x9672 +0xDAF0 0x9674 +0xDAF1 0x9688 +0xDAF2 0x968D +0xDAF3 0x9697 +0xDAF4 0x96B0 +0xDAF5 0x9097 +0xDAF6 0x909B +0xDAF7 0x909D +0xDAF8 0x9099 +0xDAF9 0x90AC +0xDAFA 0x90A1 +0xDAFB 0x90B4 +0xDAFC 0x90B3 +0xDAFD 0x90B6 +0xDAFE 0x90BA +0xDB40 0x8DD5 +0xDB41 0x8DD8 +0xDB42 0x8DD9 +0xDB43 0x8DDC +0xDB44 0x8DE0 +0xDB45 0x8DE1 +0xDB46 0x8DE2 +0xDB47 0x8DE5 +0xDB48 0x8DE6 +0xDB49 0x8DE7 +0xDB4A 0x8DE9 +0xDB4B 0x8DED +0xDB4C 0x8DEE +0xDB4D 0x8DF0 +0xDB4E 0x8DF1 +0xDB4F 0x8DF2 +0xDB50 0x8DF4 +0xDB51 0x8DF6 +0xDB52 0x8DFC +0xDB53 0x8DFE +0xDB54 0x8DFF +0xDB55 0x8E00 +0xDB56 0x8E01 +0xDB57 0x8E02 +0xDB58 0x8E03 +0xDB59 0x8E04 +0xDB5A 0x8E06 +0xDB5B 0x8E07 +0xDB5C 0x8E08 +0xDB5D 0x8E0B +0xDB5E 0x8E0D +0xDB5F 0x8E0E +0xDB60 0x8E10 +0xDB61 0x8E11 +0xDB62 0x8E12 +0xDB63 0x8E13 +0xDB64 0x8E15 +0xDB65 0x8E16 +0xDB66 0x8E17 +0xDB67 0x8E18 +0xDB68 0x8E19 +0xDB69 0x8E1A +0xDB6A 0x8E1B +0xDB6B 0x8E1C +0xDB6C 0x8E20 +0xDB6D 0x8E21 +0xDB6E 0x8E24 +0xDB6F 0x8E25 +0xDB70 0x8E26 +0xDB71 0x8E27 +0xDB72 0x8E28 +0xDB73 0x8E2B +0xDB74 0x8E2D +0xDB75 0x8E30 +0xDB76 0x8E32 +0xDB77 0x8E33 +0xDB78 0x8E34 +0xDB79 0x8E36 +0xDB7A 0x8E37 +0xDB7B 0x8E38 +0xDB7C 0x8E3B +0xDB7D 0x8E3C +0xDB7E 0x8E3E +0xDB80 0x8E3F +0xDB81 0x8E43 +0xDB82 0x8E45 +0xDB83 0x8E46 +0xDB84 0x8E4C +0xDB85 0x8E4D +0xDB86 0x8E4E +0xDB87 0x8E4F +0xDB88 0x8E50 +0xDB89 0x8E53 +0xDB8A 0x8E54 +0xDB8B 0x8E55 +0xDB8C 0x8E56 +0xDB8D 0x8E57 +0xDB8E 0x8E58 +0xDB8F 0x8E5A +0xDB90 0x8E5B +0xDB91 0x8E5C +0xDB92 0x8E5D +0xDB93 0x8E5E +0xDB94 0x8E5F +0xDB95 0x8E60 +0xDB96 0x8E61 +0xDB97 0x8E62 +0xDB98 0x8E63 +0xDB99 0x8E64 +0xDB9A 0x8E65 +0xDB9B 0x8E67 +0xDB9C 0x8E68 +0xDB9D 0x8E6A +0xDB9E 0x8E6B +0xDB9F 0x8E6E +0xDBA0 0x8E71 +0xDBA1 0x90B8 +0xDBA2 0x90B0 +0xDBA3 0x90CF +0xDBA4 0x90C5 +0xDBA5 0x90BE +0xDBA6 0x90D0 +0xDBA7 0x90C4 +0xDBA8 0x90C7 +0xDBA9 0x90D3 +0xDBAA 0x90E6 +0xDBAB 0x90E2 +0xDBAC 0x90DC +0xDBAD 0x90D7 +0xDBAE 0x90DB +0xDBAF 0x90EB +0xDBB0 0x90EF +0xDBB1 0x90FE +0xDBB2 0x9104 +0xDBB3 0x9122 +0xDBB4 0x911E +0xDBB5 0x9123 +0xDBB6 0x9131 +0xDBB7 0x912F +0xDBB8 0x9139 +0xDBB9 0x9143 +0xDBBA 0x9146 +0xDBBB 0x520D +0xDBBC 0x5942 +0xDBBD 0x52A2 +0xDBBE 0x52AC +0xDBBF 0x52AD +0xDBC0 0x52BE +0xDBC1 0x54FF +0xDBC2 0x52D0 +0xDBC3 0x52D6 +0xDBC4 0x52F0 +0xDBC5 0x53DF +0xDBC6 0x71EE +0xDBC7 0x77CD +0xDBC8 0x5EF4 +0xDBC9 0x51F5 +0xDBCA 0x51FC +0xDBCB 0x9B2F +0xDBCC 0x53B6 +0xDBCD 0x5F01 +0xDBCE 0x755A +0xDBCF 0x5DEF +0xDBD0 0x574C +0xDBD1 0x57A9 +0xDBD2 0x57A1 +0xDBD3 0x587E +0xDBD4 0x58BC +0xDBD5 0x58C5 +0xDBD6 0x58D1 +0xDBD7 0x5729 +0xDBD8 0x572C +0xDBD9 0x572A +0xDBDA 0x5733 +0xDBDB 0x5739 +0xDBDC 0x572E +0xDBDD 0x572F +0xDBDE 0x575C +0xDBDF 0x573B +0xDBE0 0x5742 +0xDBE1 0x5769 +0xDBE2 0x5785 +0xDBE3 0x576B +0xDBE4 0x5786 +0xDBE5 0x577C +0xDBE6 0x577B +0xDBE7 0x5768 +0xDBE8 0x576D +0xDBE9 0x5776 +0xDBEA 0x5773 +0xDBEB 0x57AD +0xDBEC 0x57A4 +0xDBED 0x578C +0xDBEE 0x57B2 +0xDBEF 0x57CF +0xDBF0 0x57A7 +0xDBF1 0x57B4 +0xDBF2 0x5793 +0xDBF3 0x57A0 +0xDBF4 0x57D5 +0xDBF5 0x57D8 +0xDBF6 0x57DA +0xDBF7 0x57D9 +0xDBF8 0x57D2 +0xDBF9 0x57B8 +0xDBFA 0x57F4 +0xDBFB 0x57EF +0xDBFC 0x57F8 +0xDBFD 0x57E4 +0xDBFE 0x57DD +0xDC40 0x8E73 +0xDC41 0x8E75 +0xDC42 0x8E77 +0xDC43 0x8E78 +0xDC44 0x8E79 +0xDC45 0x8E7A +0xDC46 0x8E7B +0xDC47 0x8E7D +0xDC48 0x8E7E +0xDC49 0x8E80 +0xDC4A 0x8E82 +0xDC4B 0x8E83 +0xDC4C 0x8E84 +0xDC4D 0x8E86 +0xDC4E 0x8E88 +0xDC4F 0x8E89 +0xDC50 0x8E8A +0xDC51 0x8E8B +0xDC52 0x8E8C +0xDC53 0x8E8D +0xDC54 0x8E8E +0xDC55 0x8E91 +0xDC56 0x8E92 +0xDC57 0x8E93 +0xDC58 0x8E95 +0xDC59 0x8E96 +0xDC5A 0x8E97 +0xDC5B 0x8E98 +0xDC5C 0x8E99 +0xDC5D 0x8E9A +0xDC5E 0x8E9B +0xDC5F 0x8E9D +0xDC60 0x8E9F +0xDC61 0x8EA0 +0xDC62 0x8EA1 +0xDC63 0x8EA2 +0xDC64 0x8EA3 +0xDC65 0x8EA4 +0xDC66 0x8EA5 +0xDC67 0x8EA6 +0xDC68 0x8EA7 +0xDC69 0x8EA8 +0xDC6A 0x8EA9 +0xDC6B 0x8EAA +0xDC6C 0x8EAD +0xDC6D 0x8EAE +0xDC6E 0x8EB0 +0xDC6F 0x8EB1 +0xDC70 0x8EB3 +0xDC71 0x8EB4 +0xDC72 0x8EB5 +0xDC73 0x8EB6 +0xDC74 0x8EB7 +0xDC75 0x8EB8 +0xDC76 0x8EB9 +0xDC77 0x8EBB +0xDC78 0x8EBC +0xDC79 0x8EBD +0xDC7A 0x8EBE +0xDC7B 0x8EBF +0xDC7C 0x8EC0 +0xDC7D 0x8EC1 +0xDC7E 0x8EC2 +0xDC80 0x8EC3 +0xDC81 0x8EC4 +0xDC82 0x8EC5 +0xDC83 0x8EC6 +0xDC84 0x8EC7 +0xDC85 0x8EC8 +0xDC86 0x8EC9 +0xDC87 0x8ECA +0xDC88 0x8ECB +0xDC89 0x8ECC +0xDC8A 0x8ECD +0xDC8B 0x8ECF +0xDC8C 0x8ED0 +0xDC8D 0x8ED1 +0xDC8E 0x8ED2 +0xDC8F 0x8ED3 +0xDC90 0x8ED4 +0xDC91 0x8ED5 +0xDC92 0x8ED6 +0xDC93 0x8ED7 +0xDC94 0x8ED8 +0xDC95 0x8ED9 +0xDC96 0x8EDA +0xDC97 0x8EDB +0xDC98 0x8EDC +0xDC99 0x8EDD +0xDC9A 0x8EDE +0xDC9B 0x8EDF +0xDC9C 0x8EE0 +0xDC9D 0x8EE1 +0xDC9E 0x8EE2 +0xDC9F 0x8EE3 +0xDCA0 0x8EE4 +0xDCA1 0x580B +0xDCA2 0x580D +0xDCA3 0x57FD +0xDCA4 0x57ED +0xDCA5 0x5800 +0xDCA6 0x581E +0xDCA7 0x5819 +0xDCA8 0x5844 +0xDCA9 0x5820 +0xDCAA 0x5865 +0xDCAB 0x586C +0xDCAC 0x5881 +0xDCAD 0x5889 +0xDCAE 0x589A +0xDCAF 0x5880 +0xDCB0 0x99A8 +0xDCB1 0x9F19 +0xDCB2 0x61FF +0xDCB3 0x8279 +0xDCB4 0x827D +0xDCB5 0x827F +0xDCB6 0x828F +0xDCB7 0x828A +0xDCB8 0x82A8 +0xDCB9 0x8284 +0xDCBA 0x828E +0xDCBB 0x8291 +0xDCBC 0x8297 +0xDCBD 0x8299 +0xDCBE 0x82AB +0xDCBF 0x82B8 +0xDCC0 0x82BE +0xDCC1 0x82B0 +0xDCC2 0x82C8 +0xDCC3 0x82CA +0xDCC4 0x82E3 +0xDCC5 0x8298 +0xDCC6 0x82B7 +0xDCC7 0x82AE +0xDCC8 0x82CB +0xDCC9 0x82CC +0xDCCA 0x82C1 +0xDCCB 0x82A9 +0xDCCC 0x82B4 +0xDCCD 0x82A1 +0xDCCE 0x82AA +0xDCCF 0x829F +0xDCD0 0x82C4 +0xDCD1 0x82CE +0xDCD2 0x82A4 +0xDCD3 0x82E1 +0xDCD4 0x8309 +0xDCD5 0x82F7 +0xDCD6 0x82E4 +0xDCD7 0x830F +0xDCD8 0x8307 +0xDCD9 0x82DC +0xDCDA 0x82F4 +0xDCDB 0x82D2 +0xDCDC 0x82D8 +0xDCDD 0x830C +0xDCDE 0x82FB +0xDCDF 0x82D3 +0xDCE0 0x8311 +0xDCE1 0x831A +0xDCE2 0x8306 +0xDCE3 0x8314 +0xDCE4 0x8315 +0xDCE5 0x82E0 +0xDCE6 0x82D5 +0xDCE7 0x831C +0xDCE8 0x8351 +0xDCE9 0x835B +0xDCEA 0x835C +0xDCEB 0x8308 +0xDCEC 0x8392 +0xDCED 0x833C +0xDCEE 0x8334 +0xDCEF 0x8331 +0xDCF0 0x839B +0xDCF1 0x835E +0xDCF2 0x832F +0xDCF3 0x834F +0xDCF4 0x8347 +0xDCF5 0x8343 +0xDCF6 0x835F +0xDCF7 0x8340 +0xDCF8 0x8317 +0xDCF9 0x8360 +0xDCFA 0x832D +0xDCFB 0x833A +0xDCFC 0x8333 +0xDCFD 0x8366 +0xDCFE 0x8365 +0xDD40 0x8EE5 +0xDD41 0x8EE6 +0xDD42 0x8EE7 +0xDD43 0x8EE8 +0xDD44 0x8EE9 +0xDD45 0x8EEA +0xDD46 0x8EEB +0xDD47 0x8EEC +0xDD48 0x8EED +0xDD49 0x8EEE +0xDD4A 0x8EEF +0xDD4B 0x8EF0 +0xDD4C 0x8EF1 +0xDD4D 0x8EF2 +0xDD4E 0x8EF3 +0xDD4F 0x8EF4 +0xDD50 0x8EF5 +0xDD51 0x8EF6 +0xDD52 0x8EF7 +0xDD53 0x8EF8 +0xDD54 0x8EF9 +0xDD55 0x8EFA +0xDD56 0x8EFB +0xDD57 0x8EFC +0xDD58 0x8EFD +0xDD59 0x8EFE +0xDD5A 0x8EFF +0xDD5B 0x8F00 +0xDD5C 0x8F01 +0xDD5D 0x8F02 +0xDD5E 0x8F03 +0xDD5F 0x8F04 +0xDD60 0x8F05 +0xDD61 0x8F06 +0xDD62 0x8F07 +0xDD63 0x8F08 +0xDD64 0x8F09 +0xDD65 0x8F0A +0xDD66 0x8F0B +0xDD67 0x8F0C +0xDD68 0x8F0D +0xDD69 0x8F0E +0xDD6A 0x8F0F +0xDD6B 0x8F10 +0xDD6C 0x8F11 +0xDD6D 0x8F12 +0xDD6E 0x8F13 +0xDD6F 0x8F14 +0xDD70 0x8F15 +0xDD71 0x8F16 +0xDD72 0x8F17 +0xDD73 0x8F18 +0xDD74 0x8F19 +0xDD75 0x8F1A +0xDD76 0x8F1B +0xDD77 0x8F1C +0xDD78 0x8F1D +0xDD79 0x8F1E +0xDD7A 0x8F1F +0xDD7B 0x8F20 +0xDD7C 0x8F21 +0xDD7D 0x8F22 +0xDD7E 0x8F23 +0xDD80 0x8F24 +0xDD81 0x8F25 +0xDD82 0x8F26 +0xDD83 0x8F27 +0xDD84 0x8F28 +0xDD85 0x8F29 +0xDD86 0x8F2A +0xDD87 0x8F2B +0xDD88 0x8F2C +0xDD89 0x8F2D +0xDD8A 0x8F2E +0xDD8B 0x8F2F +0xDD8C 0x8F30 +0xDD8D 0x8F31 +0xDD8E 0x8F32 +0xDD8F 0x8F33 +0xDD90 0x8F34 +0xDD91 0x8F35 +0xDD92 0x8F36 +0xDD93 0x8F37 +0xDD94 0x8F38 +0xDD95 0x8F39 +0xDD96 0x8F3A +0xDD97 0x8F3B +0xDD98 0x8F3C +0xDD99 0x8F3D +0xDD9A 0x8F3E +0xDD9B 0x8F3F +0xDD9C 0x8F40 +0xDD9D 0x8F41 +0xDD9E 0x8F42 +0xDD9F 0x8F43 +0xDDA0 0x8F44 +0xDDA1 0x8368 +0xDDA2 0x831B +0xDDA3 0x8369 +0xDDA4 0x836C +0xDDA5 0x836A +0xDDA6 0x836D +0xDDA7 0x836E +0xDDA8 0x83B0 +0xDDA9 0x8378 +0xDDAA 0x83B3 +0xDDAB 0x83B4 +0xDDAC 0x83A0 +0xDDAD 0x83AA +0xDDAE 0x8393 +0xDDAF 0x839C +0xDDB0 0x8385 +0xDDB1 0x837C +0xDDB2 0x83B6 +0xDDB3 0x83A9 +0xDDB4 0x837D +0xDDB5 0x83B8 +0xDDB6 0x837B +0xDDB7 0x8398 +0xDDB8 0x839E +0xDDB9 0x83A8 +0xDDBA 0x83BA +0xDDBB 0x83BC +0xDDBC 0x83C1 +0xDDBD 0x8401 +0xDDBE 0x83E5 +0xDDBF 0x83D8 +0xDDC0 0x5807 +0xDDC1 0x8418 +0xDDC2 0x840B +0xDDC3 0x83DD +0xDDC4 0x83FD +0xDDC5 0x83D6 +0xDDC6 0x841C +0xDDC7 0x8438 +0xDDC8 0x8411 +0xDDC9 0x8406 +0xDDCA 0x83D4 +0xDDCB 0x83DF +0xDDCC 0x840F +0xDDCD 0x8403 +0xDDCE 0x83F8 +0xDDCF 0x83F9 +0xDDD0 0x83EA +0xDDD1 0x83C5 +0xDDD2 0x83C0 +0xDDD3 0x8426 +0xDDD4 0x83F0 +0xDDD5 0x83E1 +0xDDD6 0x845C +0xDDD7 0x8451 +0xDDD8 0x845A +0xDDD9 0x8459 +0xDDDA 0x8473 +0xDDDB 0x8487 +0xDDDC 0x8488 +0xDDDD 0x847A +0xDDDE 0x8489 +0xDDDF 0x8478 +0xDDE0 0x843C +0xDDE1 0x8446 +0xDDE2 0x8469 +0xDDE3 0x8476 +0xDDE4 0x848C +0xDDE5 0x848E +0xDDE6 0x8431 +0xDDE7 0x846D +0xDDE8 0x84C1 +0xDDE9 0x84CD +0xDDEA 0x84D0 +0xDDEB 0x84E6 +0xDDEC 0x84BD +0xDDED 0x84D3 +0xDDEE 0x84CA +0xDDEF 0x84BF +0xDDF0 0x84BA +0xDDF1 0x84E0 +0xDDF2 0x84A1 +0xDDF3 0x84B9 +0xDDF4 0x84B4 +0xDDF5 0x8497 +0xDDF6 0x84E5 +0xDDF7 0x84E3 +0xDDF8 0x850C +0xDDF9 0x750D +0xDDFA 0x8538 +0xDDFB 0x84F0 +0xDDFC 0x8539 +0xDDFD 0x851F +0xDDFE 0x853A +0xDE40 0x8F45 +0xDE41 0x8F46 +0xDE42 0x8F47 +0xDE43 0x8F48 +0xDE44 0x8F49 +0xDE45 0x8F4A +0xDE46 0x8F4B +0xDE47 0x8F4C +0xDE48 0x8F4D +0xDE49 0x8F4E +0xDE4A 0x8F4F +0xDE4B 0x8F50 +0xDE4C 0x8F51 +0xDE4D 0x8F52 +0xDE4E 0x8F53 +0xDE4F 0x8F54 +0xDE50 0x8F55 +0xDE51 0x8F56 +0xDE52 0x8F57 +0xDE53 0x8F58 +0xDE54 0x8F59 +0xDE55 0x8F5A +0xDE56 0x8F5B +0xDE57 0x8F5C +0xDE58 0x8F5D +0xDE59 0x8F5E +0xDE5A 0x8F5F +0xDE5B 0x8F60 +0xDE5C 0x8F61 +0xDE5D 0x8F62 +0xDE5E 0x8F63 +0xDE5F 0x8F64 +0xDE60 0x8F65 +0xDE61 0x8F6A +0xDE62 0x8F80 +0xDE63 0x8F8C +0xDE64 0x8F92 +0xDE65 0x8F9D +0xDE66 0x8FA0 +0xDE67 0x8FA1 +0xDE68 0x8FA2 +0xDE69 0x8FA4 +0xDE6A 0x8FA5 +0xDE6B 0x8FA6 +0xDE6C 0x8FA7 +0xDE6D 0x8FAA +0xDE6E 0x8FAC +0xDE6F 0x8FAD +0xDE70 0x8FAE +0xDE71 0x8FAF +0xDE72 0x8FB2 +0xDE73 0x8FB3 +0xDE74 0x8FB4 +0xDE75 0x8FB5 +0xDE76 0x8FB7 +0xDE77 0x8FB8 +0xDE78 0x8FBA +0xDE79 0x8FBB +0xDE7A 0x8FBC +0xDE7B 0x8FBF +0xDE7C 0x8FC0 +0xDE7D 0x8FC3 +0xDE7E 0x8FC6 +0xDE80 0x8FC9 +0xDE81 0x8FCA +0xDE82 0x8FCB +0xDE83 0x8FCC +0xDE84 0x8FCD +0xDE85 0x8FCF +0xDE86 0x8FD2 +0xDE87 0x8FD6 +0xDE88 0x8FD7 +0xDE89 0x8FDA +0xDE8A 0x8FE0 +0xDE8B 0x8FE1 +0xDE8C 0x8FE3 +0xDE8D 0x8FE7 +0xDE8E 0x8FEC +0xDE8F 0x8FEF +0xDE90 0x8FF1 +0xDE91 0x8FF2 +0xDE92 0x8FF4 +0xDE93 0x8FF5 +0xDE94 0x8FF6 +0xDE95 0x8FFA +0xDE96 0x8FFB +0xDE97 0x8FFC +0xDE98 0x8FFE +0xDE99 0x8FFF +0xDE9A 0x9007 +0xDE9B 0x9008 +0xDE9C 0x900C +0xDE9D 0x900E +0xDE9E 0x9013 +0xDE9F 0x9015 +0xDEA0 0x9018 +0xDEA1 0x8556 +0xDEA2 0x853B +0xDEA3 0x84FF +0xDEA4 0x84FC +0xDEA5 0x8559 +0xDEA6 0x8548 +0xDEA7 0x8568 +0xDEA8 0x8564 +0xDEA9 0x855E +0xDEAA 0x857A +0xDEAB 0x77A2 +0xDEAC 0x8543 +0xDEAD 0x8572 +0xDEAE 0x857B +0xDEAF 0x85A4 +0xDEB0 0x85A8 +0xDEB1 0x8587 +0xDEB2 0x858F +0xDEB3 0x8579 +0xDEB4 0x85AE +0xDEB5 0x859C +0xDEB6 0x8585 +0xDEB7 0x85B9 +0xDEB8 0x85B7 +0xDEB9 0x85B0 +0xDEBA 0x85D3 +0xDEBB 0x85C1 +0xDEBC 0x85DC +0xDEBD 0x85FF +0xDEBE 0x8627 +0xDEBF 0x8605 +0xDEC0 0x8629 +0xDEC1 0x8616 +0xDEC2 0x863C +0xDEC3 0x5EFE +0xDEC4 0x5F08 +0xDEC5 0x593C +0xDEC6 0x5941 +0xDEC7 0x8037 +0xDEC8 0x5955 +0xDEC9 0x595A +0xDECA 0x5958 +0xDECB 0x530F +0xDECC 0x5C22 +0xDECD 0x5C25 +0xDECE 0x5C2C +0xDECF 0x5C34 +0xDED0 0x624C +0xDED1 0x626A +0xDED2 0x629F +0xDED3 0x62BB +0xDED4 0x62CA +0xDED5 0x62DA +0xDED6 0x62D7 +0xDED7 0x62EE +0xDED8 0x6322 +0xDED9 0x62F6 +0xDEDA 0x6339 +0xDEDB 0x634B +0xDEDC 0x6343 +0xDEDD 0x63AD +0xDEDE 0x63F6 +0xDEDF 0x6371 +0xDEE0 0x637A +0xDEE1 0x638E +0xDEE2 0x63B4 +0xDEE3 0x636D +0xDEE4 0x63AC +0xDEE5 0x638A +0xDEE6 0x6369 +0xDEE7 0x63AE +0xDEE8 0x63BC +0xDEE9 0x63F2 +0xDEEA 0x63F8 +0xDEEB 0x63E0 +0xDEEC 0x63FF +0xDEED 0x63C4 +0xDEEE 0x63DE +0xDEEF 0x63CE +0xDEF0 0x6452 +0xDEF1 0x63C6 +0xDEF2 0x63BE +0xDEF3 0x6445 +0xDEF4 0x6441 +0xDEF5 0x640B +0xDEF6 0x641B +0xDEF7 0x6420 +0xDEF8 0x640C +0xDEF9 0x6426 +0xDEFA 0x6421 +0xDEFB 0x645E +0xDEFC 0x6484 +0xDEFD 0x646D +0xDEFE 0x6496 +0xDF40 0x9019 +0xDF41 0x901C +0xDF42 0x9023 +0xDF43 0x9024 +0xDF44 0x9025 +0xDF45 0x9027 +0xDF46 0x9028 +0xDF47 0x9029 +0xDF48 0x902A +0xDF49 0x902B +0xDF4A 0x902C +0xDF4B 0x9030 +0xDF4C 0x9031 +0xDF4D 0x9032 +0xDF4E 0x9033 +0xDF4F 0x9034 +0xDF50 0x9037 +0xDF51 0x9039 +0xDF52 0x903A +0xDF53 0x903D +0xDF54 0x903F +0xDF55 0x9040 +0xDF56 0x9043 +0xDF57 0x9045 +0xDF58 0x9046 +0xDF59 0x9048 +0xDF5A 0x9049 +0xDF5B 0x904A +0xDF5C 0x904B +0xDF5D 0x904C +0xDF5E 0x904E +0xDF5F 0x9054 +0xDF60 0x9055 +0xDF61 0x9056 +0xDF62 0x9059 +0xDF63 0x905A +0xDF64 0x905C +0xDF65 0x905D +0xDF66 0x905E +0xDF67 0x905F +0xDF68 0x9060 +0xDF69 0x9061 +0xDF6A 0x9064 +0xDF6B 0x9066 +0xDF6C 0x9067 +0xDF6D 0x9069 +0xDF6E 0x906A +0xDF6F 0x906B +0xDF70 0x906C +0xDF71 0x906F +0xDF72 0x9070 +0xDF73 0x9071 +0xDF74 0x9072 +0xDF75 0x9073 +0xDF76 0x9076 +0xDF77 0x9077 +0xDF78 0x9078 +0xDF79 0x9079 +0xDF7A 0x907A +0xDF7B 0x907B +0xDF7C 0x907C +0xDF7D 0x907E +0xDF7E 0x9081 +0xDF80 0x9084 +0xDF81 0x9085 +0xDF82 0x9086 +0xDF83 0x9087 +0xDF84 0x9089 +0xDF85 0x908A +0xDF86 0x908C +0xDF87 0x908D +0xDF88 0x908E +0xDF89 0x908F +0xDF8A 0x9090 +0xDF8B 0x9092 +0xDF8C 0x9094 +0xDF8D 0x9096 +0xDF8E 0x9098 +0xDF8F 0x909A +0xDF90 0x909C +0xDF91 0x909E +0xDF92 0x909F +0xDF93 0x90A0 +0xDF94 0x90A4 +0xDF95 0x90A5 +0xDF96 0x90A7 +0xDF97 0x90A8 +0xDF98 0x90A9 +0xDF99 0x90AB +0xDF9A 0x90AD +0xDF9B 0x90B2 +0xDF9C 0x90B7 +0xDF9D 0x90BC +0xDF9E 0x90BD +0xDF9F 0x90BF +0xDFA0 0x90C0 +0xDFA1 0x647A +0xDFA2 0x64B7 +0xDFA3 0x64B8 +0xDFA4 0x6499 +0xDFA5 0x64BA +0xDFA6 0x64C0 +0xDFA7 0x64D0 +0xDFA8 0x64D7 +0xDFA9 0x64E4 +0xDFAA 0x64E2 +0xDFAB 0x6509 +0xDFAC 0x6525 +0xDFAD 0x652E +0xDFAE 0x5F0B +0xDFAF 0x5FD2 +0xDFB0 0x7519 +0xDFB1 0x5F11 +0xDFB2 0x535F +0xDFB3 0x53F1 +0xDFB4 0x53FD +0xDFB5 0x53E9 +0xDFB6 0x53E8 +0xDFB7 0x53FB +0xDFB8 0x5412 +0xDFB9 0x5416 +0xDFBA 0x5406 +0xDFBB 0x544B +0xDFBC 0x5452 +0xDFBD 0x5453 +0xDFBE 0x5454 +0xDFBF 0x5456 +0xDFC0 0x5443 +0xDFC1 0x5421 +0xDFC2 0x5457 +0xDFC3 0x5459 +0xDFC4 0x5423 +0xDFC5 0x5432 +0xDFC6 0x5482 +0xDFC7 0x5494 +0xDFC8 0x5477 +0xDFC9 0x5471 +0xDFCA 0x5464 +0xDFCB 0x549A +0xDFCC 0x549B +0xDFCD 0x5484 +0xDFCE 0x5476 +0xDFCF 0x5466 +0xDFD0 0x549D +0xDFD1 0x54D0 +0xDFD2 0x54AD +0xDFD3 0x54C2 +0xDFD4 0x54B4 +0xDFD5 0x54D2 +0xDFD6 0x54A7 +0xDFD7 0x54A6 +0xDFD8 0x54D3 +0xDFD9 0x54D4 +0xDFDA 0x5472 +0xDFDB 0x54A3 +0xDFDC 0x54D5 +0xDFDD 0x54BB +0xDFDE 0x54BF +0xDFDF 0x54CC +0xDFE0 0x54D9 +0xDFE1 0x54DA +0xDFE2 0x54DC +0xDFE3 0x54A9 +0xDFE4 0x54AA +0xDFE5 0x54A4 +0xDFE6 0x54DD +0xDFE7 0x54CF +0xDFE8 0x54DE +0xDFE9 0x551B +0xDFEA 0x54E7 +0xDFEB 0x5520 +0xDFEC 0x54FD +0xDFED 0x5514 +0xDFEE 0x54F3 +0xDFEF 0x5522 +0xDFF0 0x5523 +0xDFF1 0x550F +0xDFF2 0x5511 +0xDFF3 0x5527 +0xDFF4 0x552A +0xDFF5 0x5567 +0xDFF6 0x558F +0xDFF7 0x55B5 +0xDFF8 0x5549 +0xDFF9 0x556D +0xDFFA 0x5541 +0xDFFB 0x5555 +0xDFFC 0x553F +0xDFFD 0x5550 +0xDFFE 0x553C +0xE040 0x90C2 +0xE041 0x90C3 +0xE042 0x90C6 +0xE043 0x90C8 +0xE044 0x90C9 +0xE045 0x90CB +0xE046 0x90CC +0xE047 0x90CD +0xE048 0x90D2 +0xE049 0x90D4 +0xE04A 0x90D5 +0xE04B 0x90D6 +0xE04C 0x90D8 +0xE04D 0x90D9 +0xE04E 0x90DA +0xE04F 0x90DE +0xE050 0x90DF +0xE051 0x90E0 +0xE052 0x90E3 +0xE053 0x90E4 +0xE054 0x90E5 +0xE055 0x90E9 +0xE056 0x90EA +0xE057 0x90EC +0xE058 0x90EE +0xE059 0x90F0 +0xE05A 0x90F1 +0xE05B 0x90F2 +0xE05C 0x90F3 +0xE05D 0x90F5 +0xE05E 0x90F6 +0xE05F 0x90F7 +0xE060 0x90F9 +0xE061 0x90FA +0xE062 0x90FB +0xE063 0x90FC +0xE064 0x90FF +0xE065 0x9100 +0xE066 0x9101 +0xE067 0x9103 +0xE068 0x9105 +0xE069 0x9106 +0xE06A 0x9107 +0xE06B 0x9108 +0xE06C 0x9109 +0xE06D 0x910A +0xE06E 0x910B +0xE06F 0x910C +0xE070 0x910D +0xE071 0x910E +0xE072 0x910F +0xE073 0x9110 +0xE074 0x9111 +0xE075 0x9112 +0xE076 0x9113 +0xE077 0x9114 +0xE078 0x9115 +0xE079 0x9116 +0xE07A 0x9117 +0xE07B 0x9118 +0xE07C 0x911A +0xE07D 0x911B +0xE07E 0x911C +0xE080 0x911D +0xE081 0x911F +0xE082 0x9120 +0xE083 0x9121 +0xE084 0x9124 +0xE085 0x9125 +0xE086 0x9126 +0xE087 0x9127 +0xE088 0x9128 +0xE089 0x9129 +0xE08A 0x912A +0xE08B 0x912B +0xE08C 0x912C +0xE08D 0x912D +0xE08E 0x912E +0xE08F 0x9130 +0xE090 0x9132 +0xE091 0x9133 +0xE092 0x9134 +0xE093 0x9135 +0xE094 0x9136 +0xE095 0x9137 +0xE096 0x9138 +0xE097 0x913A +0xE098 0x913B +0xE099 0x913C +0xE09A 0x913D +0xE09B 0x913E +0xE09C 0x913F +0xE09D 0x9140 +0xE09E 0x9141 +0xE09F 0x9142 +0xE0A0 0x9144 +0xE0A1 0x5537 +0xE0A2 0x5556 +0xE0A3 0x5575 +0xE0A4 0x5576 +0xE0A5 0x5577 +0xE0A6 0x5533 +0xE0A7 0x5530 +0xE0A8 0x555C +0xE0A9 0x558B +0xE0AA 0x55D2 +0xE0AB 0x5583 +0xE0AC 0x55B1 +0xE0AD 0x55B9 +0xE0AE 0x5588 +0xE0AF 0x5581 +0xE0B0 0x559F +0xE0B1 0x557E +0xE0B2 0x55D6 +0xE0B3 0x5591 +0xE0B4 0x557B +0xE0B5 0x55DF +0xE0B6 0x55BD +0xE0B7 0x55BE +0xE0B8 0x5594 +0xE0B9 0x5599 +0xE0BA 0x55EA +0xE0BB 0x55F7 +0xE0BC 0x55C9 +0xE0BD 0x561F +0xE0BE 0x55D1 +0xE0BF 0x55EB +0xE0C0 0x55EC +0xE0C1 0x55D4 +0xE0C2 0x55E6 +0xE0C3 0x55DD +0xE0C4 0x55C4 +0xE0C5 0x55EF +0xE0C6 0x55E5 +0xE0C7 0x55F2 +0xE0C8 0x55F3 +0xE0C9 0x55CC +0xE0CA 0x55CD +0xE0CB 0x55E8 +0xE0CC 0x55F5 +0xE0CD 0x55E4 +0xE0CE 0x8F94 +0xE0CF 0x561E +0xE0D0 0x5608 +0xE0D1 0x560C +0xE0D2 0x5601 +0xE0D3 0x5624 +0xE0D4 0x5623 +0xE0D5 0x55FE +0xE0D6 0x5600 +0xE0D7 0x5627 +0xE0D8 0x562D +0xE0D9 0x5658 +0xE0DA 0x5639 +0xE0DB 0x5657 +0xE0DC 0x562C +0xE0DD 0x564D +0xE0DE 0x5662 +0xE0DF 0x5659 +0xE0E0 0x565C +0xE0E1 0x564C +0xE0E2 0x5654 +0xE0E3 0x5686 +0xE0E4 0x5664 +0xE0E5 0x5671 +0xE0E6 0x566B +0xE0E7 0x567B +0xE0E8 0x567C +0xE0E9 0x5685 +0xE0EA 0x5693 +0xE0EB 0x56AF +0xE0EC 0x56D4 +0xE0ED 0x56D7 +0xE0EE 0x56DD +0xE0EF 0x56E1 +0xE0F0 0x56F5 +0xE0F1 0x56EB +0xE0F2 0x56F9 +0xE0F3 0x56FF +0xE0F4 0x5704 +0xE0F5 0x570A +0xE0F6 0x5709 +0xE0F7 0x571C +0xE0F8 0x5E0F +0xE0F9 0x5E19 +0xE0FA 0x5E14 +0xE0FB 0x5E11 +0xE0FC 0x5E31 +0xE0FD 0x5E3B +0xE0FE 0x5E3C +0xE140 0x9145 +0xE141 0x9147 +0xE142 0x9148 +0xE143 0x9151 +0xE144 0x9153 +0xE145 0x9154 +0xE146 0x9155 +0xE147 0x9156 +0xE148 0x9158 +0xE149 0x9159 +0xE14A 0x915B +0xE14B 0x915C +0xE14C 0x915F +0xE14D 0x9160 +0xE14E 0x9166 +0xE14F 0x9167 +0xE150 0x9168 +0xE151 0x916B +0xE152 0x916D +0xE153 0x9173 +0xE154 0x917A +0xE155 0x917B +0xE156 0x917C +0xE157 0x9180 +0xE158 0x9181 +0xE159 0x9182 +0xE15A 0x9183 +0xE15B 0x9184 +0xE15C 0x9186 +0xE15D 0x9188 +0xE15E 0x918A +0xE15F 0x918E +0xE160 0x918F +0xE161 0x9193 +0xE162 0x9194 +0xE163 0x9195 +0xE164 0x9196 +0xE165 0x9197 +0xE166 0x9198 +0xE167 0x9199 +0xE168 0x919C +0xE169 0x919D +0xE16A 0x919E +0xE16B 0x919F +0xE16C 0x91A0 +0xE16D 0x91A1 +0xE16E 0x91A4 +0xE16F 0x91A5 +0xE170 0x91A6 +0xE171 0x91A7 +0xE172 0x91A8 +0xE173 0x91A9 +0xE174 0x91AB +0xE175 0x91AC +0xE176 0x91B0 +0xE177 0x91B1 +0xE178 0x91B2 +0xE179 0x91B3 +0xE17A 0x91B6 +0xE17B 0x91B7 +0xE17C 0x91B8 +0xE17D 0x91B9 +0xE17E 0x91BB +0xE180 0x91BC +0xE181 0x91BD +0xE182 0x91BE +0xE183 0x91BF +0xE184 0x91C0 +0xE185 0x91C1 +0xE186 0x91C2 +0xE187 0x91C3 +0xE188 0x91C4 +0xE189 0x91C5 +0xE18A 0x91C6 +0xE18B 0x91C8 +0xE18C 0x91CB +0xE18D 0x91D0 +0xE18E 0x91D2 +0xE18F 0x91D3 +0xE190 0x91D4 +0xE191 0x91D5 +0xE192 0x91D6 +0xE193 0x91D7 +0xE194 0x91D8 +0xE195 0x91D9 +0xE196 0x91DA +0xE197 0x91DB +0xE198 0x91DD +0xE199 0x91DE +0xE19A 0x91DF +0xE19B 0x91E0 +0xE19C 0x91E1 +0xE19D 0x91E2 +0xE19E 0x91E3 +0xE19F 0x91E4 +0xE1A0 0x91E5 +0xE1A1 0x5E37 +0xE1A2 0x5E44 +0xE1A3 0x5E54 +0xE1A4 0x5E5B +0xE1A5 0x5E5E +0xE1A6 0x5E61 +0xE1A7 0x5C8C +0xE1A8 0x5C7A +0xE1A9 0x5C8D +0xE1AA 0x5C90 +0xE1AB 0x5C96 +0xE1AC 0x5C88 +0xE1AD 0x5C98 +0xE1AE 0x5C99 +0xE1AF 0x5C91 +0xE1B0 0x5C9A +0xE1B1 0x5C9C +0xE1B2 0x5CB5 +0xE1B3 0x5CA2 +0xE1B4 0x5CBD +0xE1B5 0x5CAC +0xE1B6 0x5CAB +0xE1B7 0x5CB1 +0xE1B8 0x5CA3 +0xE1B9 0x5CC1 +0xE1BA 0x5CB7 +0xE1BB 0x5CC4 +0xE1BC 0x5CD2 +0xE1BD 0x5CE4 +0xE1BE 0x5CCB +0xE1BF 0x5CE5 +0xE1C0 0x5D02 +0xE1C1 0x5D03 +0xE1C2 0x5D27 +0xE1C3 0x5D26 +0xE1C4 0x5D2E +0xE1C5 0x5D24 +0xE1C6 0x5D1E +0xE1C7 0x5D06 +0xE1C8 0x5D1B +0xE1C9 0x5D58 +0xE1CA 0x5D3E +0xE1CB 0x5D34 +0xE1CC 0x5D3D +0xE1CD 0x5D6C +0xE1CE 0x5D5B +0xE1CF 0x5D6F +0xE1D0 0x5D5D +0xE1D1 0x5D6B +0xE1D2 0x5D4B +0xE1D3 0x5D4A +0xE1D4 0x5D69 +0xE1D5 0x5D74 +0xE1D6 0x5D82 +0xE1D7 0x5D99 +0xE1D8 0x5D9D +0xE1D9 0x8C73 +0xE1DA 0x5DB7 +0xE1DB 0x5DC5 +0xE1DC 0x5F73 +0xE1DD 0x5F77 +0xE1DE 0x5F82 +0xE1DF 0x5F87 +0xE1E0 0x5F89 +0xE1E1 0x5F8C +0xE1E2 0x5F95 +0xE1E3 0x5F99 +0xE1E4 0x5F9C +0xE1E5 0x5FA8 +0xE1E6 0x5FAD +0xE1E7 0x5FB5 +0xE1E8 0x5FBC +0xE1E9 0x8862 +0xE1EA 0x5F61 +0xE1EB 0x72AD +0xE1EC 0x72B0 +0xE1ED 0x72B4 +0xE1EE 0x72B7 +0xE1EF 0x72B8 +0xE1F0 0x72C3 +0xE1F1 0x72C1 +0xE1F2 0x72CE +0xE1F3 0x72CD +0xE1F4 0x72D2 +0xE1F5 0x72E8 +0xE1F6 0x72EF +0xE1F7 0x72E9 +0xE1F8 0x72F2 +0xE1F9 0x72F4 +0xE1FA 0x72F7 +0xE1FB 0x7301 +0xE1FC 0x72F3 +0xE1FD 0x7303 +0xE1FE 0x72FA +0xE240 0x91E6 +0xE241 0x91E7 +0xE242 0x91E8 +0xE243 0x91E9 +0xE244 0x91EA +0xE245 0x91EB +0xE246 0x91EC +0xE247 0x91ED +0xE248 0x91EE +0xE249 0x91EF +0xE24A 0x91F0 +0xE24B 0x91F1 +0xE24C 0x91F2 +0xE24D 0x91F3 +0xE24E 0x91F4 +0xE24F 0x91F5 +0xE250 0x91F6 +0xE251 0x91F7 +0xE252 0x91F8 +0xE253 0x91F9 +0xE254 0x91FA +0xE255 0x91FB +0xE256 0x91FC +0xE257 0x91FD +0xE258 0x91FE +0xE259 0x91FF +0xE25A 0x9200 +0xE25B 0x9201 +0xE25C 0x9202 +0xE25D 0x9203 +0xE25E 0x9204 +0xE25F 0x9205 +0xE260 0x9206 +0xE261 0x9207 +0xE262 0x9208 +0xE263 0x9209 +0xE264 0x920A +0xE265 0x920B +0xE266 0x920C +0xE267 0x920D +0xE268 0x920E +0xE269 0x920F +0xE26A 0x9210 +0xE26B 0x9211 +0xE26C 0x9212 +0xE26D 0x9213 +0xE26E 0x9214 +0xE26F 0x9215 +0xE270 0x9216 +0xE271 0x9217 +0xE272 0x9218 +0xE273 0x9219 +0xE274 0x921A +0xE275 0x921B +0xE276 0x921C +0xE277 0x921D +0xE278 0x921E +0xE279 0x921F +0xE27A 0x9220 +0xE27B 0x9221 +0xE27C 0x9222 +0xE27D 0x9223 +0xE27E 0x9224 +0xE280 0x9225 +0xE281 0x9226 +0xE282 0x9227 +0xE283 0x9228 +0xE284 0x9229 +0xE285 0x922A +0xE286 0x922B +0xE287 0x922C +0xE288 0x922D +0xE289 0x922E +0xE28A 0x922F +0xE28B 0x9230 +0xE28C 0x9231 +0xE28D 0x9232 +0xE28E 0x9233 +0xE28F 0x9234 +0xE290 0x9235 +0xE291 0x9236 +0xE292 0x9237 +0xE293 0x9238 +0xE294 0x9239 +0xE295 0x923A +0xE296 0x923B +0xE297 0x923C +0xE298 0x923D +0xE299 0x923E +0xE29A 0x923F +0xE29B 0x9240 +0xE29C 0x9241 +0xE29D 0x9242 +0xE29E 0x9243 +0xE29F 0x9244 +0xE2A0 0x9245 +0xE2A1 0x72FB +0xE2A2 0x7317 +0xE2A3 0x7313 +0xE2A4 0x7321 +0xE2A5 0x730A +0xE2A6 0x731E +0xE2A7 0x731D +0xE2A8 0x7315 +0xE2A9 0x7322 +0xE2AA 0x7339 +0xE2AB 0x7325 +0xE2AC 0x732C +0xE2AD 0x7338 +0xE2AE 0x7331 +0xE2AF 0x7350 +0xE2B0 0x734D +0xE2B1 0x7357 +0xE2B2 0x7360 +0xE2B3 0x736C +0xE2B4 0x736F +0xE2B5 0x737E +0xE2B6 0x821B +0xE2B7 0x5925 +0xE2B8 0x98E7 +0xE2B9 0x5924 +0xE2BA 0x5902 +0xE2BB 0x9963 +0xE2BC 0x9967 +0xE2BD 0x9968 +0xE2BE 0x9969 +0xE2BF 0x996A +0xE2C0 0x996B +0xE2C1 0x996C +0xE2C2 0x9974 +0xE2C3 0x9977 +0xE2C4 0x997D +0xE2C5 0x9980 +0xE2C6 0x9984 +0xE2C7 0x9987 +0xE2C8 0x998A +0xE2C9 0x998D +0xE2CA 0x9990 +0xE2CB 0x9991 +0xE2CC 0x9993 +0xE2CD 0x9994 +0xE2CE 0x9995 +0xE2CF 0x5E80 +0xE2D0 0x5E91 +0xE2D1 0x5E8B +0xE2D2 0x5E96 +0xE2D3 0x5EA5 +0xE2D4 0x5EA0 +0xE2D5 0x5EB9 +0xE2D6 0x5EB5 +0xE2D7 0x5EBE +0xE2D8 0x5EB3 +0xE2D9 0x8D53 +0xE2DA 0x5ED2 +0xE2DB 0x5ED1 +0xE2DC 0x5EDB +0xE2DD 0x5EE8 +0xE2DE 0x5EEA +0xE2DF 0x81BA +0xE2E0 0x5FC4 +0xE2E1 0x5FC9 +0xE2E2 0x5FD6 +0xE2E3 0x5FCF +0xE2E4 0x6003 +0xE2E5 0x5FEE +0xE2E6 0x6004 +0xE2E7 0x5FE1 +0xE2E8 0x5FE4 +0xE2E9 0x5FFE +0xE2EA 0x6005 +0xE2EB 0x6006 +0xE2EC 0x5FEA +0xE2ED 0x5FED +0xE2EE 0x5FF8 +0xE2EF 0x6019 +0xE2F0 0x6035 +0xE2F1 0x6026 +0xE2F2 0x601B +0xE2F3 0x600F +0xE2F4 0x600D +0xE2F5 0x6029 +0xE2F6 0x602B +0xE2F7 0x600A +0xE2F8 0x603F +0xE2F9 0x6021 +0xE2FA 0x6078 +0xE2FB 0x6079 +0xE2FC 0x607B +0xE2FD 0x607A +0xE2FE 0x6042 +0xE340 0x9246 +0xE341 0x9247 +0xE342 0x9248 +0xE343 0x9249 +0xE344 0x924A +0xE345 0x924B +0xE346 0x924C +0xE347 0x924D +0xE348 0x924E +0xE349 0x924F +0xE34A 0x9250 +0xE34B 0x9251 +0xE34C 0x9252 +0xE34D 0x9253 +0xE34E 0x9254 +0xE34F 0x9255 +0xE350 0x9256 +0xE351 0x9257 +0xE352 0x9258 +0xE353 0x9259 +0xE354 0x925A +0xE355 0x925B +0xE356 0x925C +0xE357 0x925D +0xE358 0x925E +0xE359 0x925F +0xE35A 0x9260 +0xE35B 0x9261 +0xE35C 0x9262 +0xE35D 0x9263 +0xE35E 0x9264 +0xE35F 0x9265 +0xE360 0x9266 +0xE361 0x9267 +0xE362 0x9268 +0xE363 0x9269 +0xE364 0x926A +0xE365 0x926B +0xE366 0x926C +0xE367 0x926D +0xE368 0x926E +0xE369 0x926F +0xE36A 0x9270 +0xE36B 0x9271 +0xE36C 0x9272 +0xE36D 0x9273 +0xE36E 0x9275 +0xE36F 0x9276 +0xE370 0x9277 +0xE371 0x9278 +0xE372 0x9279 +0xE373 0x927A +0xE374 0x927B +0xE375 0x927C +0xE376 0x927D +0xE377 0x927E +0xE378 0x927F +0xE379 0x9280 +0xE37A 0x9281 +0xE37B 0x9282 +0xE37C 0x9283 +0xE37D 0x9284 +0xE37E 0x9285 +0xE380 0x9286 +0xE381 0x9287 +0xE382 0x9288 +0xE383 0x9289 +0xE384 0x928A +0xE385 0x928B +0xE386 0x928C +0xE387 0x928D +0xE388 0x928F +0xE389 0x9290 +0xE38A 0x9291 +0xE38B 0x9292 +0xE38C 0x9293 +0xE38D 0x9294 +0xE38E 0x9295 +0xE38F 0x9296 +0xE390 0x9297 +0xE391 0x9298 +0xE392 0x9299 +0xE393 0x929A +0xE394 0x929B +0xE395 0x929C +0xE396 0x929D +0xE397 0x929E +0xE398 0x929F +0xE399 0x92A0 +0xE39A 0x92A1 +0xE39B 0x92A2 +0xE39C 0x92A3 +0xE39D 0x92A4 +0xE39E 0x92A5 +0xE39F 0x92A6 +0xE3A0 0x92A7 +0xE3A1 0x606A +0xE3A2 0x607D +0xE3A3 0x6096 +0xE3A4 0x609A +0xE3A5 0x60AD +0xE3A6 0x609D +0xE3A7 0x6083 +0xE3A8 0x6092 +0xE3A9 0x608C +0xE3AA 0x609B +0xE3AB 0x60EC +0xE3AC 0x60BB +0xE3AD 0x60B1 +0xE3AE 0x60DD +0xE3AF 0x60D8 +0xE3B0 0x60C6 +0xE3B1 0x60DA +0xE3B2 0x60B4 +0xE3B3 0x6120 +0xE3B4 0x6126 +0xE3B5 0x6115 +0xE3B6 0x6123 +0xE3B7 0x60F4 +0xE3B8 0x6100 +0xE3B9 0x610E +0xE3BA 0x612B +0xE3BB 0x614A +0xE3BC 0x6175 +0xE3BD 0x61AC +0xE3BE 0x6194 +0xE3BF 0x61A7 +0xE3C0 0x61B7 +0xE3C1 0x61D4 +0xE3C2 0x61F5 +0xE3C3 0x5FDD +0xE3C4 0x96B3 +0xE3C5 0x95E9 +0xE3C6 0x95EB +0xE3C7 0x95F1 +0xE3C8 0x95F3 +0xE3C9 0x95F5 +0xE3CA 0x95F6 +0xE3CB 0x95FC +0xE3CC 0x95FE +0xE3CD 0x9603 +0xE3CE 0x9604 +0xE3CF 0x9606 +0xE3D0 0x9608 +0xE3D1 0x960A +0xE3D2 0x960B +0xE3D3 0x960C +0xE3D4 0x960D +0xE3D5 0x960F +0xE3D6 0x9612 +0xE3D7 0x9615 +0xE3D8 0x9616 +0xE3D9 0x9617 +0xE3DA 0x9619 +0xE3DB 0x961A +0xE3DC 0x4E2C +0xE3DD 0x723F +0xE3DE 0x6215 +0xE3DF 0x6C35 +0xE3E0 0x6C54 +0xE3E1 0x6C5C +0xE3E2 0x6C4A +0xE3E3 0x6CA3 +0xE3E4 0x6C85 +0xE3E5 0x6C90 +0xE3E6 0x6C94 +0xE3E7 0x6C8C +0xE3E8 0x6C68 +0xE3E9 0x6C69 +0xE3EA 0x6C74 +0xE3EB 0x6C76 +0xE3EC 0x6C86 +0xE3ED 0x6CA9 +0xE3EE 0x6CD0 +0xE3EF 0x6CD4 +0xE3F0 0x6CAD +0xE3F1 0x6CF7 +0xE3F2 0x6CF8 +0xE3F3 0x6CF1 +0xE3F4 0x6CD7 +0xE3F5 0x6CB2 +0xE3F6 0x6CE0 +0xE3F7 0x6CD6 +0xE3F8 0x6CFA +0xE3F9 0x6CEB +0xE3FA 0x6CEE +0xE3FB 0x6CB1 +0xE3FC 0x6CD3 +0xE3FD 0x6CEF +0xE3FE 0x6CFE +0xE440 0x92A8 +0xE441 0x92A9 +0xE442 0x92AA +0xE443 0x92AB +0xE444 0x92AC +0xE445 0x92AD +0xE446 0x92AF +0xE447 0x92B0 +0xE448 0x92B1 +0xE449 0x92B2 +0xE44A 0x92B3 +0xE44B 0x92B4 +0xE44C 0x92B5 +0xE44D 0x92B6 +0xE44E 0x92B7 +0xE44F 0x92B8 +0xE450 0x92B9 +0xE451 0x92BA +0xE452 0x92BB +0xE453 0x92BC +0xE454 0x92BD +0xE455 0x92BE +0xE456 0x92BF +0xE457 0x92C0 +0xE458 0x92C1 +0xE459 0x92C2 +0xE45A 0x92C3 +0xE45B 0x92C4 +0xE45C 0x92C5 +0xE45D 0x92C6 +0xE45E 0x92C7 +0xE45F 0x92C9 +0xE460 0x92CA +0xE461 0x92CB +0xE462 0x92CC +0xE463 0x92CD +0xE464 0x92CE +0xE465 0x92CF +0xE466 0x92D0 +0xE467 0x92D1 +0xE468 0x92D2 +0xE469 0x92D3 +0xE46A 0x92D4 +0xE46B 0x92D5 +0xE46C 0x92D6 +0xE46D 0x92D7 +0xE46E 0x92D8 +0xE46F 0x92D9 +0xE470 0x92DA +0xE471 0x92DB +0xE472 0x92DC +0xE473 0x92DD +0xE474 0x92DE +0xE475 0x92DF +0xE476 0x92E0 +0xE477 0x92E1 +0xE478 0x92E2 +0xE479 0x92E3 +0xE47A 0x92E4 +0xE47B 0x92E5 +0xE47C 0x92E6 +0xE47D 0x92E7 +0xE47E 0x92E8 +0xE480 0x92E9 +0xE481 0x92EA +0xE482 0x92EB +0xE483 0x92EC +0xE484 0x92ED +0xE485 0x92EE +0xE486 0x92EF +0xE487 0x92F0 +0xE488 0x92F1 +0xE489 0x92F2 +0xE48A 0x92F3 +0xE48B 0x92F4 +0xE48C 0x92F5 +0xE48D 0x92F6 +0xE48E 0x92F7 +0xE48F 0x92F8 +0xE490 0x92F9 +0xE491 0x92FA +0xE492 0x92FB +0xE493 0x92FC +0xE494 0x92FD +0xE495 0x92FE +0xE496 0x92FF +0xE497 0x9300 +0xE498 0x9301 +0xE499 0x9302 +0xE49A 0x9303 +0xE49B 0x9304 +0xE49C 0x9305 +0xE49D 0x9306 +0xE49E 0x9307 +0xE49F 0x9308 +0xE4A0 0x9309 +0xE4A1 0x6D39 +0xE4A2 0x6D27 +0xE4A3 0x6D0C +0xE4A4 0x6D43 +0xE4A5 0x6D48 +0xE4A6 0x6D07 +0xE4A7 0x6D04 +0xE4A8 0x6D19 +0xE4A9 0x6D0E +0xE4AA 0x6D2B +0xE4AB 0x6D4D +0xE4AC 0x6D2E +0xE4AD 0x6D35 +0xE4AE 0x6D1A +0xE4AF 0x6D4F +0xE4B0 0x6D52 +0xE4B1 0x6D54 +0xE4B2 0x6D33 +0xE4B3 0x6D91 +0xE4B4 0x6D6F +0xE4B5 0x6D9E +0xE4B6 0x6DA0 +0xE4B7 0x6D5E +0xE4B8 0x6D93 +0xE4B9 0x6D94 +0xE4BA 0x6D5C +0xE4BB 0x6D60 +0xE4BC 0x6D7C +0xE4BD 0x6D63 +0xE4BE 0x6E1A +0xE4BF 0x6DC7 +0xE4C0 0x6DC5 +0xE4C1 0x6DDE +0xE4C2 0x6E0E +0xE4C3 0x6DBF +0xE4C4 0x6DE0 +0xE4C5 0x6E11 +0xE4C6 0x6DE6 +0xE4C7 0x6DDD +0xE4C8 0x6DD9 +0xE4C9 0x6E16 +0xE4CA 0x6DAB +0xE4CB 0x6E0C +0xE4CC 0x6DAE +0xE4CD 0x6E2B +0xE4CE 0x6E6E +0xE4CF 0x6E4E +0xE4D0 0x6E6B +0xE4D1 0x6EB2 +0xE4D2 0x6E5F +0xE4D3 0x6E86 +0xE4D4 0x6E53 +0xE4D5 0x6E54 +0xE4D6 0x6E32 +0xE4D7 0x6E25 +0xE4D8 0x6E44 +0xE4D9 0x6EDF +0xE4DA 0x6EB1 +0xE4DB 0x6E98 +0xE4DC 0x6EE0 +0xE4DD 0x6F2D +0xE4DE 0x6EE2 +0xE4DF 0x6EA5 +0xE4E0 0x6EA7 +0xE4E1 0x6EBD +0xE4E2 0x6EBB +0xE4E3 0x6EB7 +0xE4E4 0x6ED7 +0xE4E5 0x6EB4 +0xE4E6 0x6ECF +0xE4E7 0x6E8F +0xE4E8 0x6EC2 +0xE4E9 0x6E9F +0xE4EA 0x6F62 +0xE4EB 0x6F46 +0xE4EC 0x6F47 +0xE4ED 0x6F24 +0xE4EE 0x6F15 +0xE4EF 0x6EF9 +0xE4F0 0x6F2F +0xE4F1 0x6F36 +0xE4F2 0x6F4B +0xE4F3 0x6F74 +0xE4F4 0x6F2A +0xE4F5 0x6F09 +0xE4F6 0x6F29 +0xE4F7 0x6F89 +0xE4F8 0x6F8D +0xE4F9 0x6F8C +0xE4FA 0x6F78 +0xE4FB 0x6F72 +0xE4FC 0x6F7C +0xE4FD 0x6F7A +0xE4FE 0x6FD1 +0xE540 0x930A +0xE541 0x930B +0xE542 0x930C +0xE543 0x930D +0xE544 0x930E +0xE545 0x930F +0xE546 0x9310 +0xE547 0x9311 +0xE548 0x9312 +0xE549 0x9313 +0xE54A 0x9314 +0xE54B 0x9315 +0xE54C 0x9316 +0xE54D 0x9317 +0xE54E 0x9318 +0xE54F 0x9319 +0xE550 0x931A +0xE551 0x931B +0xE552 0x931C +0xE553 0x931D +0xE554 0x931E +0xE555 0x931F +0xE556 0x9320 +0xE557 0x9321 +0xE558 0x9322 +0xE559 0x9323 +0xE55A 0x9324 +0xE55B 0x9325 +0xE55C 0x9326 +0xE55D 0x9327 +0xE55E 0x9328 +0xE55F 0x9329 +0xE560 0x932A +0xE561 0x932B +0xE562 0x932C +0xE563 0x932D +0xE564 0x932E +0xE565 0x932F +0xE566 0x9330 +0xE567 0x9331 +0xE568 0x9332 +0xE569 0x9333 +0xE56A 0x9334 +0xE56B 0x9335 +0xE56C 0x9336 +0xE56D 0x9337 +0xE56E 0x9338 +0xE56F 0x9339 +0xE570 0x933A +0xE571 0x933B +0xE572 0x933C +0xE573 0x933D +0xE574 0x933F +0xE575 0x9340 +0xE576 0x9341 +0xE577 0x9342 +0xE578 0x9343 +0xE579 0x9344 +0xE57A 0x9345 +0xE57B 0x9346 +0xE57C 0x9347 +0xE57D 0x9348 +0xE57E 0x9349 +0xE580 0x934A +0xE581 0x934B +0xE582 0x934C +0xE583 0x934D +0xE584 0x934E +0xE585 0x934F +0xE586 0x9350 +0xE587 0x9351 +0xE588 0x9352 +0xE589 0x9353 +0xE58A 0x9354 +0xE58B 0x9355 +0xE58C 0x9356 +0xE58D 0x9357 +0xE58E 0x9358 +0xE58F 0x9359 +0xE590 0x935A +0xE591 0x935B +0xE592 0x935C +0xE593 0x935D +0xE594 0x935E +0xE595 0x935F +0xE596 0x9360 +0xE597 0x9361 +0xE598 0x9362 +0xE599 0x9363 +0xE59A 0x9364 +0xE59B 0x9365 +0xE59C 0x9366 +0xE59D 0x9367 +0xE59E 0x9368 +0xE59F 0x9369 +0xE5A0 0x936B +0xE5A1 0x6FC9 +0xE5A2 0x6FA7 +0xE5A3 0x6FB9 +0xE5A4 0x6FB6 +0xE5A5 0x6FC2 +0xE5A6 0x6FE1 +0xE5A7 0x6FEE +0xE5A8 0x6FDE +0xE5A9 0x6FE0 +0xE5AA 0x6FEF +0xE5AB 0x701A +0xE5AC 0x7023 +0xE5AD 0x701B +0xE5AE 0x7039 +0xE5AF 0x7035 +0xE5B0 0x704F +0xE5B1 0x705E +0xE5B2 0x5B80 +0xE5B3 0x5B84 +0xE5B4 0x5B95 +0xE5B5 0x5B93 +0xE5B6 0x5BA5 +0xE5B7 0x5BB8 +0xE5B8 0x752F +0xE5B9 0x9A9E +0xE5BA 0x6434 +0xE5BB 0x5BE4 +0xE5BC 0x5BEE +0xE5BD 0x8930 +0xE5BE 0x5BF0 +0xE5BF 0x8E47 +0xE5C0 0x8B07 +0xE5C1 0x8FB6 +0xE5C2 0x8FD3 +0xE5C3 0x8FD5 +0xE5C4 0x8FE5 +0xE5C5 0x8FEE +0xE5C6 0x8FE4 +0xE5C7 0x8FE9 +0xE5C8 0x8FE6 +0xE5C9 0x8FF3 +0xE5CA 0x8FE8 +0xE5CB 0x9005 +0xE5CC 0x9004 +0xE5CD 0x900B +0xE5CE 0x9026 +0xE5CF 0x9011 +0xE5D0 0x900D +0xE5D1 0x9016 +0xE5D2 0x9021 +0xE5D3 0x9035 +0xE5D4 0x9036 +0xE5D5 0x902D +0xE5D6 0x902F +0xE5D7 0x9044 +0xE5D8 0x9051 +0xE5D9 0x9052 +0xE5DA 0x9050 +0xE5DB 0x9068 +0xE5DC 0x9058 +0xE5DD 0x9062 +0xE5DE 0x905B +0xE5DF 0x66B9 +0xE5E0 0x9074 +0xE5E1 0x907D +0xE5E2 0x9082 +0xE5E3 0x9088 +0xE5E4 0x9083 +0xE5E5 0x908B +0xE5E6 0x5F50 +0xE5E7 0x5F57 +0xE5E8 0x5F56 +0xE5E9 0x5F58 +0xE5EA 0x5C3B +0xE5EB 0x54AB +0xE5EC 0x5C50 +0xE5ED 0x5C59 +0xE5EE 0x5B71 +0xE5EF 0x5C63 +0xE5F0 0x5C66 +0xE5F1 0x7FBC +0xE5F2 0x5F2A +0xE5F3 0x5F29 +0xE5F4 0x5F2D +0xE5F5 0x8274 +0xE5F6 0x5F3C +0xE5F7 0x9B3B +0xE5F8 0x5C6E +0xE5F9 0x5981 +0xE5FA 0x5983 +0xE5FB 0x598D +0xE5FC 0x59A9 +0xE5FD 0x59AA +0xE5FE 0x59A3 +0xE640 0x936C +0xE641 0x936D +0xE642 0x936E +0xE643 0x936F +0xE644 0x9370 +0xE645 0x9371 +0xE646 0x9372 +0xE647 0x9373 +0xE648 0x9374 +0xE649 0x9375 +0xE64A 0x9376 +0xE64B 0x9377 +0xE64C 0x9378 +0xE64D 0x9379 +0xE64E 0x937A +0xE64F 0x937B +0xE650 0x937C +0xE651 0x937D +0xE652 0x937E +0xE653 0x937F +0xE654 0x9380 +0xE655 0x9381 +0xE656 0x9382 +0xE657 0x9383 +0xE658 0x9384 +0xE659 0x9385 +0xE65A 0x9386 +0xE65B 0x9387 +0xE65C 0x9388 +0xE65D 0x9389 +0xE65E 0x938A +0xE65F 0x938B +0xE660 0x938C +0xE661 0x938D +0xE662 0x938E +0xE663 0x9390 +0xE664 0x9391 +0xE665 0x9392 +0xE666 0x9393 +0xE667 0x9394 +0xE668 0x9395 +0xE669 0x9396 +0xE66A 0x9397 +0xE66B 0x9398 +0xE66C 0x9399 +0xE66D 0x939A +0xE66E 0x939B +0xE66F 0x939C +0xE670 0x939D +0xE671 0x939E +0xE672 0x939F +0xE673 0x93A0 +0xE674 0x93A1 +0xE675 0x93A2 +0xE676 0x93A3 +0xE677 0x93A4 +0xE678 0x93A5 +0xE679 0x93A6 +0xE67A 0x93A7 +0xE67B 0x93A8 +0xE67C 0x93A9 +0xE67D 0x93AA +0xE67E 0x93AB +0xE680 0x93AC +0xE681 0x93AD +0xE682 0x93AE +0xE683 0x93AF +0xE684 0x93B0 +0xE685 0x93B1 +0xE686 0x93B2 +0xE687 0x93B3 +0xE688 0x93B4 +0xE689 0x93B5 +0xE68A 0x93B6 +0xE68B 0x93B7 +0xE68C 0x93B8 +0xE68D 0x93B9 +0xE68E 0x93BA +0xE68F 0x93BB +0xE690 0x93BC +0xE691 0x93BD +0xE692 0x93BE +0xE693 0x93BF +0xE694 0x93C0 +0xE695 0x93C1 +0xE696 0x93C2 +0xE697 0x93C3 +0xE698 0x93C4 +0xE699 0x93C5 +0xE69A 0x93C6 +0xE69B 0x93C7 +0xE69C 0x93C8 +0xE69D 0x93C9 +0xE69E 0x93CB +0xE69F 0x93CC +0xE6A0 0x93CD +0xE6A1 0x5997 +0xE6A2 0x59CA +0xE6A3 0x59AB +0xE6A4 0x599E +0xE6A5 0x59A4 +0xE6A6 0x59D2 +0xE6A7 0x59B2 +0xE6A8 0x59AF +0xE6A9 0x59D7 +0xE6AA 0x59BE +0xE6AB 0x5A05 +0xE6AC 0x5A06 +0xE6AD 0x59DD +0xE6AE 0x5A08 +0xE6AF 0x59E3 +0xE6B0 0x59D8 +0xE6B1 0x59F9 +0xE6B2 0x5A0C +0xE6B3 0x5A09 +0xE6B4 0x5A32 +0xE6B5 0x5A34 +0xE6B6 0x5A11 +0xE6B7 0x5A23 +0xE6B8 0x5A13 +0xE6B9 0x5A40 +0xE6BA 0x5A67 +0xE6BB 0x5A4A +0xE6BC 0x5A55 +0xE6BD 0x5A3C +0xE6BE 0x5A62 +0xE6BF 0x5A75 +0xE6C0 0x80EC +0xE6C1 0x5AAA +0xE6C2 0x5A9B +0xE6C3 0x5A77 +0xE6C4 0x5A7A +0xE6C5 0x5ABE +0xE6C6 0x5AEB +0xE6C7 0x5AB2 +0xE6C8 0x5AD2 +0xE6C9 0x5AD4 +0xE6CA 0x5AB8 +0xE6CB 0x5AE0 +0xE6CC 0x5AE3 +0xE6CD 0x5AF1 +0xE6CE 0x5AD6 +0xE6CF 0x5AE6 +0xE6D0 0x5AD8 +0xE6D1 0x5ADC +0xE6D2 0x5B09 +0xE6D3 0x5B17 +0xE6D4 0x5B16 +0xE6D5 0x5B32 +0xE6D6 0x5B37 +0xE6D7 0x5B40 +0xE6D8 0x5C15 +0xE6D9 0x5C1C +0xE6DA 0x5B5A +0xE6DB 0x5B65 +0xE6DC 0x5B73 +0xE6DD 0x5B51 +0xE6DE 0x5B53 +0xE6DF 0x5B62 +0xE6E0 0x9A75 +0xE6E1 0x9A77 +0xE6E2 0x9A78 +0xE6E3 0x9A7A +0xE6E4 0x9A7F +0xE6E5 0x9A7D +0xE6E6 0x9A80 +0xE6E7 0x9A81 +0xE6E8 0x9A85 +0xE6E9 0x9A88 +0xE6EA 0x9A8A +0xE6EB 0x9A90 +0xE6EC 0x9A92 +0xE6ED 0x9A93 +0xE6EE 0x9A96 +0xE6EF 0x9A98 +0xE6F0 0x9A9B +0xE6F1 0x9A9C +0xE6F2 0x9A9D +0xE6F3 0x9A9F +0xE6F4 0x9AA0 +0xE6F5 0x9AA2 +0xE6F6 0x9AA3 +0xE6F7 0x9AA5 +0xE6F8 0x9AA7 +0xE6F9 0x7E9F +0xE6FA 0x7EA1 +0xE6FB 0x7EA3 +0xE6FC 0x7EA5 +0xE6FD 0x7EA8 +0xE6FE 0x7EA9 +0xE740 0x93CE +0xE741 0x93CF +0xE742 0x93D0 +0xE743 0x93D1 +0xE744 0x93D2 +0xE745 0x93D3 +0xE746 0x93D4 +0xE747 0x93D5 +0xE748 0x93D7 +0xE749 0x93D8 +0xE74A 0x93D9 +0xE74B 0x93DA +0xE74C 0x93DB +0xE74D 0x93DC +0xE74E 0x93DD +0xE74F 0x93DE +0xE750 0x93DF +0xE751 0x93E0 +0xE752 0x93E1 +0xE753 0x93E2 +0xE754 0x93E3 +0xE755 0x93E4 +0xE756 0x93E5 +0xE757 0x93E6 +0xE758 0x93E7 +0xE759 0x93E8 +0xE75A 0x93E9 +0xE75B 0x93EA +0xE75C 0x93EB +0xE75D 0x93EC +0xE75E 0x93ED +0xE75F 0x93EE +0xE760 0x93EF +0xE761 0x93F0 +0xE762 0x93F1 +0xE763 0x93F2 +0xE764 0x93F3 +0xE765 0x93F4 +0xE766 0x93F5 +0xE767 0x93F6 +0xE768 0x93F7 +0xE769 0x93F8 +0xE76A 0x93F9 +0xE76B 0x93FA +0xE76C 0x93FB +0xE76D 0x93FC +0xE76E 0x93FD +0xE76F 0x93FE +0xE770 0x93FF +0xE771 0x9400 +0xE772 0x9401 +0xE773 0x9402 +0xE774 0x9403 +0xE775 0x9404 +0xE776 0x9405 +0xE777 0x9406 +0xE778 0x9407 +0xE779 0x9408 +0xE77A 0x9409 +0xE77B 0x940A +0xE77C 0x940B +0xE77D 0x940C +0xE77E 0x940D +0xE780 0x940E +0xE781 0x940F +0xE782 0x9410 +0xE783 0x9411 +0xE784 0x9412 +0xE785 0x9413 +0xE786 0x9414 +0xE787 0x9415 +0xE788 0x9416 +0xE789 0x9417 +0xE78A 0x9418 +0xE78B 0x9419 +0xE78C 0x941A +0xE78D 0x941B +0xE78E 0x941C +0xE78F 0x941D +0xE790 0x941E +0xE791 0x941F +0xE792 0x9420 +0xE793 0x9421 +0xE794 0x9422 +0xE795 0x9423 +0xE796 0x9424 +0xE797 0x9425 +0xE798 0x9426 +0xE799 0x9427 +0xE79A 0x9428 +0xE79B 0x9429 +0xE79C 0x942A +0xE79D 0x942B +0xE79E 0x942C +0xE79F 0x942D +0xE7A0 0x942E +0xE7A1 0x7EAD +0xE7A2 0x7EB0 +0xE7A3 0x7EBE +0xE7A4 0x7EC0 +0xE7A5 0x7EC1 +0xE7A6 0x7EC2 +0xE7A7 0x7EC9 +0xE7A8 0x7ECB +0xE7A9 0x7ECC +0xE7AA 0x7ED0 +0xE7AB 0x7ED4 +0xE7AC 0x7ED7 +0xE7AD 0x7EDB +0xE7AE 0x7EE0 +0xE7AF 0x7EE1 +0xE7B0 0x7EE8 +0xE7B1 0x7EEB +0xE7B2 0x7EEE +0xE7B3 0x7EEF +0xE7B4 0x7EF1 +0xE7B5 0x7EF2 +0xE7B6 0x7F0D +0xE7B7 0x7EF6 +0xE7B8 0x7EFA +0xE7B9 0x7EFB +0xE7BA 0x7EFE +0xE7BB 0x7F01 +0xE7BC 0x7F02 +0xE7BD 0x7F03 +0xE7BE 0x7F07 +0xE7BF 0x7F08 +0xE7C0 0x7F0B +0xE7C1 0x7F0C +0xE7C2 0x7F0F +0xE7C3 0x7F11 +0xE7C4 0x7F12 +0xE7C5 0x7F17 +0xE7C6 0x7F19 +0xE7C7 0x7F1C +0xE7C8 0x7F1B +0xE7C9 0x7F1F +0xE7CA 0x7F21 +0xE7CB 0x7F22 +0xE7CC 0x7F23 +0xE7CD 0x7F24 +0xE7CE 0x7F25 +0xE7CF 0x7F26 +0xE7D0 0x7F27 +0xE7D1 0x7F2A +0xE7D2 0x7F2B +0xE7D3 0x7F2C +0xE7D4 0x7F2D +0xE7D5 0x7F2F +0xE7D6 0x7F30 +0xE7D7 0x7F31 +0xE7D8 0x7F32 +0xE7D9 0x7F33 +0xE7DA 0x7F35 +0xE7DB 0x5E7A +0xE7DC 0x757F +0xE7DD 0x5DDB +0xE7DE 0x753E +0xE7DF 0x9095 +0xE7E0 0x738E +0xE7E1 0x7391 +0xE7E2 0x73AE +0xE7E3 0x73A2 +0xE7E4 0x739F +0xE7E5 0x73CF +0xE7E6 0x73C2 +0xE7E7 0x73D1 +0xE7E8 0x73B7 +0xE7E9 0x73B3 +0xE7EA 0x73C0 +0xE7EB 0x73C9 +0xE7EC 0x73C8 +0xE7ED 0x73E5 +0xE7EE 0x73D9 +0xE7EF 0x987C +0xE7F0 0x740A +0xE7F1 0x73E9 +0xE7F2 0x73E7 +0xE7F3 0x73DE +0xE7F4 0x73BA +0xE7F5 0x73F2 +0xE7F6 0x740F +0xE7F7 0x742A +0xE7F8 0x745B +0xE7F9 0x7426 +0xE7FA 0x7425 +0xE7FB 0x7428 +0xE7FC 0x7430 +0xE7FD 0x742E +0xE7FE 0x742C +0xE840 0x942F +0xE841 0x9430 +0xE842 0x9431 +0xE843 0x9432 +0xE844 0x9433 +0xE845 0x9434 +0xE846 0x9435 +0xE847 0x9436 +0xE848 0x9437 +0xE849 0x9438 +0xE84A 0x9439 +0xE84B 0x943A +0xE84C 0x943B +0xE84D 0x943C +0xE84E 0x943D +0xE84F 0x943F +0xE850 0x9440 +0xE851 0x9441 +0xE852 0x9442 +0xE853 0x9443 +0xE854 0x9444 +0xE855 0x9445 +0xE856 0x9446 +0xE857 0x9447 +0xE858 0x9448 +0xE859 0x9449 +0xE85A 0x944A +0xE85B 0x944B +0xE85C 0x944C +0xE85D 0x944D +0xE85E 0x944E +0xE85F 0x944F +0xE860 0x9450 +0xE861 0x9451 +0xE862 0x9452 +0xE863 0x9453 +0xE864 0x9454 +0xE865 0x9455 +0xE866 0x9456 +0xE867 0x9457 +0xE868 0x9458 +0xE869 0x9459 +0xE86A 0x945A +0xE86B 0x945B +0xE86C 0x945C +0xE86D 0x945D +0xE86E 0x945E +0xE86F 0x945F +0xE870 0x9460 +0xE871 0x9461 +0xE872 0x9462 +0xE873 0x9463 +0xE874 0x9464 +0xE875 0x9465 +0xE876 0x9466 +0xE877 0x9467 +0xE878 0x9468 +0xE879 0x9469 +0xE87A 0x946A +0xE87B 0x946C +0xE87C 0x946D +0xE87D 0x946E +0xE87E 0x946F +0xE880 0x9470 +0xE881 0x9471 +0xE882 0x9472 +0xE883 0x9473 +0xE884 0x9474 +0xE885 0x9475 +0xE886 0x9476 +0xE887 0x9477 +0xE888 0x9478 +0xE889 0x9479 +0xE88A 0x947A +0xE88B 0x947B +0xE88C 0x947C +0xE88D 0x947D +0xE88E 0x947E +0xE88F 0x947F +0xE890 0x9480 +0xE891 0x9481 +0xE892 0x9482 +0xE893 0x9483 +0xE894 0x9484 +0xE895 0x9491 +0xE896 0x9496 +0xE897 0x9498 +0xE898 0x94C7 +0xE899 0x94CF +0xE89A 0x94D3 +0xE89B 0x94D4 +0xE89C 0x94DA +0xE89D 0x94E6 +0xE89E 0x94FB +0xE89F 0x951C +0xE8A0 0x9520 +0xE8A1 0x741B +0xE8A2 0x741A +0xE8A3 0x7441 +0xE8A4 0x745C +0xE8A5 0x7457 +0xE8A6 0x7455 +0xE8A7 0x7459 +0xE8A8 0x7477 +0xE8A9 0x746D +0xE8AA 0x747E +0xE8AB 0x749C +0xE8AC 0x748E +0xE8AD 0x7480 +0xE8AE 0x7481 +0xE8AF 0x7487 +0xE8B0 0x748B +0xE8B1 0x749E +0xE8B2 0x74A8 +0xE8B3 0x74A9 +0xE8B4 0x7490 +0xE8B5 0x74A7 +0xE8B6 0x74D2 +0xE8B7 0x74BA +0xE8B8 0x97EA +0xE8B9 0x97EB +0xE8BA 0x97EC +0xE8BB 0x674C +0xE8BC 0x6753 +0xE8BD 0x675E +0xE8BE 0x6748 +0xE8BF 0x6769 +0xE8C0 0x67A5 +0xE8C1 0x6787 +0xE8C2 0x676A +0xE8C3 0x6773 +0xE8C4 0x6798 +0xE8C5 0x67A7 +0xE8C6 0x6775 +0xE8C7 0x67A8 +0xE8C8 0x679E +0xE8C9 0x67AD +0xE8CA 0x678B +0xE8CB 0x6777 +0xE8CC 0x677C +0xE8CD 0x67F0 +0xE8CE 0x6809 +0xE8CF 0x67D8 +0xE8D0 0x680A +0xE8D1 0x67E9 +0xE8D2 0x67B0 +0xE8D3 0x680C +0xE8D4 0x67D9 +0xE8D5 0x67B5 +0xE8D6 0x67DA +0xE8D7 0x67B3 +0xE8D8 0x67DD +0xE8D9 0x6800 +0xE8DA 0x67C3 +0xE8DB 0x67B8 +0xE8DC 0x67E2 +0xE8DD 0x680E +0xE8DE 0x67C1 +0xE8DF 0x67FD +0xE8E0 0x6832 +0xE8E1 0x6833 +0xE8E2 0x6860 +0xE8E3 0x6861 +0xE8E4 0x684E +0xE8E5 0x6862 +0xE8E6 0x6844 +0xE8E7 0x6864 +0xE8E8 0x6883 +0xE8E9 0x681D +0xE8EA 0x6855 +0xE8EB 0x6866 +0xE8EC 0x6841 +0xE8ED 0x6867 +0xE8EE 0x6840 +0xE8EF 0x683E +0xE8F0 0x684A +0xE8F1 0x6849 +0xE8F2 0x6829 +0xE8F3 0x68B5 +0xE8F4 0x688F +0xE8F5 0x6874 +0xE8F6 0x6877 +0xE8F7 0x6893 +0xE8F8 0x686B +0xE8F9 0x68C2 +0xE8FA 0x696E +0xE8FB 0x68FC +0xE8FC 0x691F +0xE8FD 0x6920 +0xE8FE 0x68F9 +0xE940 0x9527 +0xE941 0x9533 +0xE942 0x953D +0xE943 0x9543 +0xE944 0x9548 +0xE945 0x954B +0xE946 0x9555 +0xE947 0x955A +0xE948 0x9560 +0xE949 0x956E +0xE94A 0x9574 +0xE94B 0x9575 +0xE94C 0x9577 +0xE94D 0x9578 +0xE94E 0x9579 +0xE94F 0x957A +0xE950 0x957B +0xE951 0x957C +0xE952 0x957D +0xE953 0x957E +0xE954 0x9580 +0xE955 0x9581 +0xE956 0x9582 +0xE957 0x9583 +0xE958 0x9584 +0xE959 0x9585 +0xE95A 0x9586 +0xE95B 0x9587 +0xE95C 0x9588 +0xE95D 0x9589 +0xE95E 0x958A +0xE95F 0x958B +0xE960 0x958C +0xE961 0x958D +0xE962 0x958E +0xE963 0x958F +0xE964 0x9590 +0xE965 0x9591 +0xE966 0x9592 +0xE967 0x9593 +0xE968 0x9594 +0xE969 0x9595 +0xE96A 0x9596 +0xE96B 0x9597 +0xE96C 0x9598 +0xE96D 0x9599 +0xE96E 0x959A +0xE96F 0x959B +0xE970 0x959C +0xE971 0x959D +0xE972 0x959E +0xE973 0x959F +0xE974 0x95A0 +0xE975 0x95A1 +0xE976 0x95A2 +0xE977 0x95A3 +0xE978 0x95A4 +0xE979 0x95A5 +0xE97A 0x95A6 +0xE97B 0x95A7 +0xE97C 0x95A8 +0xE97D 0x95A9 +0xE97E 0x95AA +0xE980 0x95AB +0xE981 0x95AC +0xE982 0x95AD +0xE983 0x95AE +0xE984 0x95AF +0xE985 0x95B0 +0xE986 0x95B1 +0xE987 0x95B2 +0xE988 0x95B3 +0xE989 0x95B4 +0xE98A 0x95B5 +0xE98B 0x95B6 +0xE98C 0x95B7 +0xE98D 0x95B8 +0xE98E 0x95B9 +0xE98F 0x95BA +0xE990 0x95BB +0xE991 0x95BC +0xE992 0x95BD +0xE993 0x95BE +0xE994 0x95BF +0xE995 0x95C0 +0xE996 0x95C1 +0xE997 0x95C2 +0xE998 0x95C3 +0xE999 0x95C4 +0xE99A 0x95C5 +0xE99B 0x95C6 +0xE99C 0x95C7 +0xE99D 0x95C8 +0xE99E 0x95C9 +0xE99F 0x95CA +0xE9A0 0x95CB +0xE9A1 0x6924 +0xE9A2 0x68F0 +0xE9A3 0x690B +0xE9A4 0x6901 +0xE9A5 0x6957 +0xE9A6 0x68E3 +0xE9A7 0x6910 +0xE9A8 0x6971 +0xE9A9 0x6939 +0xE9AA 0x6960 +0xE9AB 0x6942 +0xE9AC 0x695D +0xE9AD 0x6984 +0xE9AE 0x696B +0xE9AF 0x6980 +0xE9B0 0x6998 +0xE9B1 0x6978 +0xE9B2 0x6934 +0xE9B3 0x69CC +0xE9B4 0x6987 +0xE9B5 0x6988 +0xE9B6 0x69CE +0xE9B7 0x6989 +0xE9B8 0x6966 +0xE9B9 0x6963 +0xE9BA 0x6979 +0xE9BB 0x699B +0xE9BC 0x69A7 +0xE9BD 0x69BB +0xE9BE 0x69AB +0xE9BF 0x69AD +0xE9C0 0x69D4 +0xE9C1 0x69B1 +0xE9C2 0x69C1 +0xE9C3 0x69CA +0xE9C4 0x69DF +0xE9C5 0x6995 +0xE9C6 0x69E0 +0xE9C7 0x698D +0xE9C8 0x69FF +0xE9C9 0x6A2F +0xE9CA 0x69ED +0xE9CB 0x6A17 +0xE9CC 0x6A18 +0xE9CD 0x6A65 +0xE9CE 0x69F2 +0xE9CF 0x6A44 +0xE9D0 0x6A3E +0xE9D1 0x6AA0 +0xE9D2 0x6A50 +0xE9D3 0x6A5B +0xE9D4 0x6A35 +0xE9D5 0x6A8E +0xE9D6 0x6A79 +0xE9D7 0x6A3D +0xE9D8 0x6A28 +0xE9D9 0x6A58 +0xE9DA 0x6A7C +0xE9DB 0x6A91 +0xE9DC 0x6A90 +0xE9DD 0x6AA9 +0xE9DE 0x6A97 +0xE9DF 0x6AAB +0xE9E0 0x7337 +0xE9E1 0x7352 +0xE9E2 0x6B81 +0xE9E3 0x6B82 +0xE9E4 0x6B87 +0xE9E5 0x6B84 +0xE9E6 0x6B92 +0xE9E7 0x6B93 +0xE9E8 0x6B8D +0xE9E9 0x6B9A +0xE9EA 0x6B9B +0xE9EB 0x6BA1 +0xE9EC 0x6BAA +0xE9ED 0x8F6B +0xE9EE 0x8F6D +0xE9EF 0x8F71 +0xE9F0 0x8F72 +0xE9F1 0x8F73 +0xE9F2 0x8F75 +0xE9F3 0x8F76 +0xE9F4 0x8F78 +0xE9F5 0x8F77 +0xE9F6 0x8F79 +0xE9F7 0x8F7A +0xE9F8 0x8F7C +0xE9F9 0x8F7E +0xE9FA 0x8F81 +0xE9FB 0x8F82 +0xE9FC 0x8F84 +0xE9FD 0x8F87 +0xE9FE 0x8F8B +0xEA40 0x95CC +0xEA41 0x95CD +0xEA42 0x95CE +0xEA43 0x95CF +0xEA44 0x95D0 +0xEA45 0x95D1 +0xEA46 0x95D2 +0xEA47 0x95D3 +0xEA48 0x95D4 +0xEA49 0x95D5 +0xEA4A 0x95D6 +0xEA4B 0x95D7 +0xEA4C 0x95D8 +0xEA4D 0x95D9 +0xEA4E 0x95DA +0xEA4F 0x95DB +0xEA50 0x95DC +0xEA51 0x95DD +0xEA52 0x95DE +0xEA53 0x95DF +0xEA54 0x95E0 +0xEA55 0x95E1 +0xEA56 0x95E2 +0xEA57 0x95E3 +0xEA58 0x95E4 +0xEA59 0x95E5 +0xEA5A 0x95E6 +0xEA5B 0x95E7 +0xEA5C 0x95EC +0xEA5D 0x95FF +0xEA5E 0x9607 +0xEA5F 0x9613 +0xEA60 0x9618 +0xEA61 0x961B +0xEA62 0x961E +0xEA63 0x9620 +0xEA64 0x9623 +0xEA65 0x9624 +0xEA66 0x9625 +0xEA67 0x9626 +0xEA68 0x9627 +0xEA69 0x9628 +0xEA6A 0x9629 +0xEA6B 0x962B +0xEA6C 0x962C +0xEA6D 0x962D +0xEA6E 0x962F +0xEA6F 0x9630 +0xEA70 0x9637 +0xEA71 0x9638 +0xEA72 0x9639 +0xEA73 0x963A +0xEA74 0x963E +0xEA75 0x9641 +0xEA76 0x9643 +0xEA77 0x964A +0xEA78 0x964E +0xEA79 0x964F +0xEA7A 0x9651 +0xEA7B 0x9652 +0xEA7C 0x9653 +0xEA7D 0x9656 +0xEA7E 0x9657 +0xEA80 0x9658 +0xEA81 0x9659 +0xEA82 0x965A +0xEA83 0x965C +0xEA84 0x965D +0xEA85 0x965E +0xEA86 0x9660 +0xEA87 0x9663 +0xEA88 0x9665 +0xEA89 0x9666 +0xEA8A 0x966B +0xEA8B 0x966D +0xEA8C 0x966E +0xEA8D 0x966F +0xEA8E 0x9670 +0xEA8F 0x9671 +0xEA90 0x9673 +0xEA91 0x9678 +0xEA92 0x9679 +0xEA93 0x967A +0xEA94 0x967B +0xEA95 0x967C +0xEA96 0x967D +0xEA97 0x967E +0xEA98 0x967F +0xEA99 0x9680 +0xEA9A 0x9681 +0xEA9B 0x9682 +0xEA9C 0x9683 +0xEA9D 0x9684 +0xEA9E 0x9687 +0xEA9F 0x9689 +0xEAA0 0x968A +0xEAA1 0x8F8D +0xEAA2 0x8F8E +0xEAA3 0x8F8F +0xEAA4 0x8F98 +0xEAA5 0x8F9A +0xEAA6 0x8ECE +0xEAA7 0x620B +0xEAA8 0x6217 +0xEAA9 0x621B +0xEAAA 0x621F +0xEAAB 0x6222 +0xEAAC 0x6221 +0xEAAD 0x6225 +0xEAAE 0x6224 +0xEAAF 0x622C +0xEAB0 0x81E7 +0xEAB1 0x74EF +0xEAB2 0x74F4 +0xEAB3 0x74FF +0xEAB4 0x750F +0xEAB5 0x7511 +0xEAB6 0x7513 +0xEAB7 0x6534 +0xEAB8 0x65EE +0xEAB9 0x65EF +0xEABA 0x65F0 +0xEABB 0x660A +0xEABC 0x6619 +0xEABD 0x6772 +0xEABE 0x6603 +0xEABF 0x6615 +0xEAC0 0x6600 +0xEAC1 0x7085 +0xEAC2 0x66F7 +0xEAC3 0x661D +0xEAC4 0x6634 +0xEAC5 0x6631 +0xEAC6 0x6636 +0xEAC7 0x6635 +0xEAC8 0x8006 +0xEAC9 0x665F +0xEACA 0x6654 +0xEACB 0x6641 +0xEACC 0x664F +0xEACD 0x6656 +0xEACE 0x6661 +0xEACF 0x6657 +0xEAD0 0x6677 +0xEAD1 0x6684 +0xEAD2 0x668C +0xEAD3 0x66A7 +0xEAD4 0x669D +0xEAD5 0x66BE +0xEAD6 0x66DB +0xEAD7 0x66DC +0xEAD8 0x66E6 +0xEAD9 0x66E9 +0xEADA 0x8D32 +0xEADB 0x8D33 +0xEADC 0x8D36 +0xEADD 0x8D3B +0xEADE 0x8D3D +0xEADF 0x8D40 +0xEAE0 0x8D45 +0xEAE1 0x8D46 +0xEAE2 0x8D48 +0xEAE3 0x8D49 +0xEAE4 0x8D47 +0xEAE5 0x8D4D +0xEAE6 0x8D55 +0xEAE7 0x8D59 +0xEAE8 0x89C7 +0xEAE9 0x89CA +0xEAEA 0x89CB +0xEAEB 0x89CC +0xEAEC 0x89CE +0xEAED 0x89CF +0xEAEE 0x89D0 +0xEAEF 0x89D1 +0xEAF0 0x726E +0xEAF1 0x729F +0xEAF2 0x725D +0xEAF3 0x7266 +0xEAF4 0x726F +0xEAF5 0x727E +0xEAF6 0x727F +0xEAF7 0x7284 +0xEAF8 0x728B +0xEAF9 0x728D +0xEAFA 0x728F +0xEAFB 0x7292 +0xEAFC 0x6308 +0xEAFD 0x6332 +0xEAFE 0x63B0 +0xEB40 0x968C +0xEB41 0x968E +0xEB42 0x9691 +0xEB43 0x9692 +0xEB44 0x9693 +0xEB45 0x9695 +0xEB46 0x9696 +0xEB47 0x969A +0xEB48 0x969B +0xEB49 0x969D +0xEB4A 0x969E +0xEB4B 0x969F +0xEB4C 0x96A0 +0xEB4D 0x96A1 +0xEB4E 0x96A2 +0xEB4F 0x96A3 +0xEB50 0x96A4 +0xEB51 0x96A5 +0xEB52 0x96A6 +0xEB53 0x96A8 +0xEB54 0x96A9 +0xEB55 0x96AA +0xEB56 0x96AB +0xEB57 0x96AC +0xEB58 0x96AD +0xEB59 0x96AE +0xEB5A 0x96AF +0xEB5B 0x96B1 +0xEB5C 0x96B2 +0xEB5D 0x96B4 +0xEB5E 0x96B5 +0xEB5F 0x96B7 +0xEB60 0x96B8 +0xEB61 0x96BA +0xEB62 0x96BB +0xEB63 0x96BF +0xEB64 0x96C2 +0xEB65 0x96C3 +0xEB66 0x96C8 +0xEB67 0x96CA +0xEB68 0x96CB +0xEB69 0x96D0 +0xEB6A 0x96D1 +0xEB6B 0x96D3 +0xEB6C 0x96D4 +0xEB6D 0x96D6 +0xEB6E 0x96D7 +0xEB6F 0x96D8 +0xEB70 0x96D9 +0xEB71 0x96DA +0xEB72 0x96DB +0xEB73 0x96DC +0xEB74 0x96DD +0xEB75 0x96DE +0xEB76 0x96DF +0xEB77 0x96E1 +0xEB78 0x96E2 +0xEB79 0x96E3 +0xEB7A 0x96E4 +0xEB7B 0x96E5 +0xEB7C 0x96E6 +0xEB7D 0x96E7 +0xEB7E 0x96EB +0xEB80 0x96EC +0xEB81 0x96ED +0xEB82 0x96EE +0xEB83 0x96F0 +0xEB84 0x96F1 +0xEB85 0x96F2 +0xEB86 0x96F4 +0xEB87 0x96F5 +0xEB88 0x96F8 +0xEB89 0x96FA +0xEB8A 0x96FB +0xEB8B 0x96FC +0xEB8C 0x96FD +0xEB8D 0x96FF +0xEB8E 0x9702 +0xEB8F 0x9703 +0xEB90 0x9705 +0xEB91 0x970A +0xEB92 0x970B +0xEB93 0x970C +0xEB94 0x9710 +0xEB95 0x9711 +0xEB96 0x9712 +0xEB97 0x9714 +0xEB98 0x9715 +0xEB99 0x9717 +0xEB9A 0x9718 +0xEB9B 0x9719 +0xEB9C 0x971A +0xEB9D 0x971B +0xEB9E 0x971D +0xEB9F 0x971F +0xEBA0 0x9720 +0xEBA1 0x643F +0xEBA2 0x64D8 +0xEBA3 0x8004 +0xEBA4 0x6BEA +0xEBA5 0x6BF3 +0xEBA6 0x6BFD +0xEBA7 0x6BF5 +0xEBA8 0x6BF9 +0xEBA9 0x6C05 +0xEBAA 0x6C07 +0xEBAB 0x6C06 +0xEBAC 0x6C0D +0xEBAD 0x6C15 +0xEBAE 0x6C18 +0xEBAF 0x6C19 +0xEBB0 0x6C1A +0xEBB1 0x6C21 +0xEBB2 0x6C29 +0xEBB3 0x6C24 +0xEBB4 0x6C2A +0xEBB5 0x6C32 +0xEBB6 0x6535 +0xEBB7 0x6555 +0xEBB8 0x656B +0xEBB9 0x724D +0xEBBA 0x7252 +0xEBBB 0x7256 +0xEBBC 0x7230 +0xEBBD 0x8662 +0xEBBE 0x5216 +0xEBBF 0x809F +0xEBC0 0x809C +0xEBC1 0x8093 +0xEBC2 0x80BC +0xEBC3 0x670A +0xEBC4 0x80BD +0xEBC5 0x80B1 +0xEBC6 0x80AB +0xEBC7 0x80AD +0xEBC8 0x80B4 +0xEBC9 0x80B7 +0xEBCA 0x80E7 +0xEBCB 0x80E8 +0xEBCC 0x80E9 +0xEBCD 0x80EA +0xEBCE 0x80DB +0xEBCF 0x80C2 +0xEBD0 0x80C4 +0xEBD1 0x80D9 +0xEBD2 0x80CD +0xEBD3 0x80D7 +0xEBD4 0x6710 +0xEBD5 0x80DD +0xEBD6 0x80EB +0xEBD7 0x80F1 +0xEBD8 0x80F4 +0xEBD9 0x80ED +0xEBDA 0x810D +0xEBDB 0x810E +0xEBDC 0x80F2 +0xEBDD 0x80FC +0xEBDE 0x6715 +0xEBDF 0x8112 +0xEBE0 0x8C5A +0xEBE1 0x8136 +0xEBE2 0x811E +0xEBE3 0x812C +0xEBE4 0x8118 +0xEBE5 0x8132 +0xEBE6 0x8148 +0xEBE7 0x814C +0xEBE8 0x8153 +0xEBE9 0x8174 +0xEBEA 0x8159 +0xEBEB 0x815A +0xEBEC 0x8171 +0xEBED 0x8160 +0xEBEE 0x8169 +0xEBEF 0x817C +0xEBF0 0x817D +0xEBF1 0x816D +0xEBF2 0x8167 +0xEBF3 0x584D +0xEBF4 0x5AB5 +0xEBF5 0x8188 +0xEBF6 0x8182 +0xEBF7 0x8191 +0xEBF8 0x6ED5 +0xEBF9 0x81A3 +0xEBFA 0x81AA +0xEBFB 0x81CC +0xEBFC 0x6726 +0xEBFD 0x81CA +0xEBFE 0x81BB +0xEC40 0x9721 +0xEC41 0x9722 +0xEC42 0x9723 +0xEC43 0x9724 +0xEC44 0x9725 +0xEC45 0x9726 +0xEC46 0x9727 +0xEC47 0x9728 +0xEC48 0x9729 +0xEC49 0x972B +0xEC4A 0x972C +0xEC4B 0x972E +0xEC4C 0x972F +0xEC4D 0x9731 +0xEC4E 0x9733 +0xEC4F 0x9734 +0xEC50 0x9735 +0xEC51 0x9736 +0xEC52 0x9737 +0xEC53 0x973A +0xEC54 0x973B +0xEC55 0x973C +0xEC56 0x973D +0xEC57 0x973F +0xEC58 0x9740 +0xEC59 0x9741 +0xEC5A 0x9742 +0xEC5B 0x9743 +0xEC5C 0x9744 +0xEC5D 0x9745 +0xEC5E 0x9746 +0xEC5F 0x9747 +0xEC60 0x9748 +0xEC61 0x9749 +0xEC62 0x974A +0xEC63 0x974B +0xEC64 0x974C +0xEC65 0x974D +0xEC66 0x974E +0xEC67 0x974F +0xEC68 0x9750 +0xEC69 0x9751 +0xEC6A 0x9754 +0xEC6B 0x9755 +0xEC6C 0x9757 +0xEC6D 0x9758 +0xEC6E 0x975A +0xEC6F 0x975C +0xEC70 0x975D +0xEC71 0x975F +0xEC72 0x9763 +0xEC73 0x9764 +0xEC74 0x9766 +0xEC75 0x9767 +0xEC76 0x9768 +0xEC77 0x976A +0xEC78 0x976B +0xEC79 0x976C +0xEC7A 0x976D +0xEC7B 0x976E +0xEC7C 0x976F +0xEC7D 0x9770 +0xEC7E 0x9771 +0xEC80 0x9772 +0xEC81 0x9775 +0xEC82 0x9777 +0xEC83 0x9778 +0xEC84 0x9779 +0xEC85 0x977A +0xEC86 0x977B +0xEC87 0x977D +0xEC88 0x977E +0xEC89 0x977F +0xEC8A 0x9780 +0xEC8B 0x9781 +0xEC8C 0x9782 +0xEC8D 0x9783 +0xEC8E 0x9784 +0xEC8F 0x9786 +0xEC90 0x9787 +0xEC91 0x9788 +0xEC92 0x9789 +0xEC93 0x978A +0xEC94 0x978C +0xEC95 0x978E +0xEC96 0x978F +0xEC97 0x9790 +0xEC98 0x9793 +0xEC99 0x9795 +0xEC9A 0x9796 +0xEC9B 0x9797 +0xEC9C 0x9799 +0xEC9D 0x979A +0xEC9E 0x979B +0xEC9F 0x979C +0xECA0 0x979D +0xECA1 0x81C1 +0xECA2 0x81A6 +0xECA3 0x6B24 +0xECA4 0x6B37 +0xECA5 0x6B39 +0xECA6 0x6B43 +0xECA7 0x6B46 +0xECA8 0x6B59 +0xECA9 0x98D1 +0xECAA 0x98D2 +0xECAB 0x98D3 +0xECAC 0x98D5 +0xECAD 0x98D9 +0xECAE 0x98DA +0xECAF 0x6BB3 +0xECB0 0x5F40 +0xECB1 0x6BC2 +0xECB2 0x89F3 +0xECB3 0x6590 +0xECB4 0x9F51 +0xECB5 0x6593 +0xECB6 0x65BC +0xECB7 0x65C6 +0xECB8 0x65C4 +0xECB9 0x65C3 +0xECBA 0x65CC +0xECBB 0x65CE +0xECBC 0x65D2 +0xECBD 0x65D6 +0xECBE 0x7080 +0xECBF 0x709C +0xECC0 0x7096 +0xECC1 0x709D +0xECC2 0x70BB +0xECC3 0x70C0 +0xECC4 0x70B7 +0xECC5 0x70AB +0xECC6 0x70B1 +0xECC7 0x70E8 +0xECC8 0x70CA +0xECC9 0x7110 +0xECCA 0x7113 +0xECCB 0x7116 +0xECCC 0x712F +0xECCD 0x7131 +0xECCE 0x7173 +0xECCF 0x715C +0xECD0 0x7168 +0xECD1 0x7145 +0xECD2 0x7172 +0xECD3 0x714A +0xECD4 0x7178 +0xECD5 0x717A +0xECD6 0x7198 +0xECD7 0x71B3 +0xECD8 0x71B5 +0xECD9 0x71A8 +0xECDA 0x71A0 +0xECDB 0x71E0 +0xECDC 0x71D4 +0xECDD 0x71E7 +0xECDE 0x71F9 +0xECDF 0x721D +0xECE0 0x7228 +0xECE1 0x706C +0xECE2 0x7118 +0xECE3 0x7166 +0xECE4 0x71B9 +0xECE5 0x623E +0xECE6 0x623D +0xECE7 0x6243 +0xECE8 0x6248 +0xECE9 0x6249 +0xECEA 0x793B +0xECEB 0x7940 +0xECEC 0x7946 +0xECED 0x7949 +0xECEE 0x795B +0xECEF 0x795C +0xECF0 0x7953 +0xECF1 0x795A +0xECF2 0x7962 +0xECF3 0x7957 +0xECF4 0x7960 +0xECF5 0x796F +0xECF6 0x7967 +0xECF7 0x797A +0xECF8 0x7985 +0xECF9 0x798A +0xECFA 0x799A +0xECFB 0x79A7 +0xECFC 0x79B3 +0xECFD 0x5FD1 +0xECFE 0x5FD0 +0xED40 0x979E +0xED41 0x979F +0xED42 0x97A1 +0xED43 0x97A2 +0xED44 0x97A4 +0xED45 0x97A5 +0xED46 0x97A6 +0xED47 0x97A7 +0xED48 0x97A8 +0xED49 0x97A9 +0xED4A 0x97AA +0xED4B 0x97AC +0xED4C 0x97AE +0xED4D 0x97B0 +0xED4E 0x97B1 +0xED4F 0x97B3 +0xED50 0x97B5 +0xED51 0x97B6 +0xED52 0x97B7 +0xED53 0x97B8 +0xED54 0x97B9 +0xED55 0x97BA +0xED56 0x97BB +0xED57 0x97BC +0xED58 0x97BD +0xED59 0x97BE +0xED5A 0x97BF +0xED5B 0x97C0 +0xED5C 0x97C1 +0xED5D 0x97C2 +0xED5E 0x97C3 +0xED5F 0x97C4 +0xED60 0x97C5 +0xED61 0x97C6 +0xED62 0x97C7 +0xED63 0x97C8 +0xED64 0x97C9 +0xED65 0x97CA +0xED66 0x97CB +0xED67 0x97CC +0xED68 0x97CD +0xED69 0x97CE +0xED6A 0x97CF +0xED6B 0x97D0 +0xED6C 0x97D1 +0xED6D 0x97D2 +0xED6E 0x97D3 +0xED6F 0x97D4 +0xED70 0x97D5 +0xED71 0x97D6 +0xED72 0x97D7 +0xED73 0x97D8 +0xED74 0x97D9 +0xED75 0x97DA +0xED76 0x97DB +0xED77 0x97DC +0xED78 0x97DD +0xED79 0x97DE +0xED7A 0x97DF +0xED7B 0x97E0 +0xED7C 0x97E1 +0xED7D 0x97E2 +0xED7E 0x97E3 +0xED80 0x97E4 +0xED81 0x97E5 +0xED82 0x97E8 +0xED83 0x97EE +0xED84 0x97EF +0xED85 0x97F0 +0xED86 0x97F1 +0xED87 0x97F2 +0xED88 0x97F4 +0xED89 0x97F7 +0xED8A 0x97F8 +0xED8B 0x97F9 +0xED8C 0x97FA +0xED8D 0x97FB +0xED8E 0x97FC +0xED8F 0x97FD +0xED90 0x97FE +0xED91 0x97FF +0xED92 0x9800 +0xED93 0x9801 +0xED94 0x9802 +0xED95 0x9803 +0xED96 0x9804 +0xED97 0x9805 +0xED98 0x9806 +0xED99 0x9807 +0xED9A 0x9808 +0xED9B 0x9809 +0xED9C 0x980A +0xED9D 0x980B +0xED9E 0x980C +0xED9F 0x980D +0xEDA0 0x980E +0xEDA1 0x603C +0xEDA2 0x605D +0xEDA3 0x605A +0xEDA4 0x6067 +0xEDA5 0x6041 +0xEDA6 0x6059 +0xEDA7 0x6063 +0xEDA8 0x60AB +0xEDA9 0x6106 +0xEDAA 0x610D +0xEDAB 0x615D +0xEDAC 0x61A9 +0xEDAD 0x619D +0xEDAE 0x61CB +0xEDAF 0x61D1 +0xEDB0 0x6206 +0xEDB1 0x8080 +0xEDB2 0x807F +0xEDB3 0x6C93 +0xEDB4 0x6CF6 +0xEDB5 0x6DFC +0xEDB6 0x77F6 +0xEDB7 0x77F8 +0xEDB8 0x7800 +0xEDB9 0x7809 +0xEDBA 0x7817 +0xEDBB 0x7818 +0xEDBC 0x7811 +0xEDBD 0x65AB +0xEDBE 0x782D +0xEDBF 0x781C +0xEDC0 0x781D +0xEDC1 0x7839 +0xEDC2 0x783A +0xEDC3 0x783B +0xEDC4 0x781F +0xEDC5 0x783C +0xEDC6 0x7825 +0xEDC7 0x782C +0xEDC8 0x7823 +0xEDC9 0x7829 +0xEDCA 0x784E +0xEDCB 0x786D +0xEDCC 0x7856 +0xEDCD 0x7857 +0xEDCE 0x7826 +0xEDCF 0x7850 +0xEDD0 0x7847 +0xEDD1 0x784C +0xEDD2 0x786A +0xEDD3 0x789B +0xEDD4 0x7893 +0xEDD5 0x789A +0xEDD6 0x7887 +0xEDD7 0x789C +0xEDD8 0x78A1 +0xEDD9 0x78A3 +0xEDDA 0x78B2 +0xEDDB 0x78B9 +0xEDDC 0x78A5 +0xEDDD 0x78D4 +0xEDDE 0x78D9 +0xEDDF 0x78C9 +0xEDE0 0x78EC +0xEDE1 0x78F2 +0xEDE2 0x7905 +0xEDE3 0x78F4 +0xEDE4 0x7913 +0xEDE5 0x7924 +0xEDE6 0x791E +0xEDE7 0x7934 +0xEDE8 0x9F9B +0xEDE9 0x9EF9 +0xEDEA 0x9EFB +0xEDEB 0x9EFC +0xEDEC 0x76F1 +0xEDED 0x7704 +0xEDEE 0x770D +0xEDEF 0x76F9 +0xEDF0 0x7707 +0xEDF1 0x7708 +0xEDF2 0x771A +0xEDF3 0x7722 +0xEDF4 0x7719 +0xEDF5 0x772D +0xEDF6 0x7726 +0xEDF7 0x7735 +0xEDF8 0x7738 +0xEDF9 0x7750 +0xEDFA 0x7751 +0xEDFB 0x7747 +0xEDFC 0x7743 +0xEDFD 0x775A +0xEDFE 0x7768 +0xEE40 0x980F +0xEE41 0x9810 +0xEE42 0x9811 +0xEE43 0x9812 +0xEE44 0x9813 +0xEE45 0x9814 +0xEE46 0x9815 +0xEE47 0x9816 +0xEE48 0x9817 +0xEE49 0x9818 +0xEE4A 0x9819 +0xEE4B 0x981A +0xEE4C 0x981B +0xEE4D 0x981C +0xEE4E 0x981D +0xEE4F 0x981E +0xEE50 0x981F +0xEE51 0x9820 +0xEE52 0x9821 +0xEE53 0x9822 +0xEE54 0x9823 +0xEE55 0x9824 +0xEE56 0x9825 +0xEE57 0x9826 +0xEE58 0x9827 +0xEE59 0x9828 +0xEE5A 0x9829 +0xEE5B 0x982A +0xEE5C 0x982B +0xEE5D 0x982C +0xEE5E 0x982D +0xEE5F 0x982E +0xEE60 0x982F +0xEE61 0x9830 +0xEE62 0x9831 +0xEE63 0x9832 +0xEE64 0x9833 +0xEE65 0x9834 +0xEE66 0x9835 +0xEE67 0x9836 +0xEE68 0x9837 +0xEE69 0x9838 +0xEE6A 0x9839 +0xEE6B 0x983A +0xEE6C 0x983B +0xEE6D 0x983C +0xEE6E 0x983D +0xEE6F 0x983E +0xEE70 0x983F +0xEE71 0x9840 +0xEE72 0x9841 +0xEE73 0x9842 +0xEE74 0x9843 +0xEE75 0x9844 +0xEE76 0x9845 +0xEE77 0x9846 +0xEE78 0x9847 +0xEE79 0x9848 +0xEE7A 0x9849 +0xEE7B 0x984A +0xEE7C 0x984B +0xEE7D 0x984C +0xEE7E 0x984D +0xEE80 0x984E +0xEE81 0x984F +0xEE82 0x9850 +0xEE83 0x9851 +0xEE84 0x9852 +0xEE85 0x9853 +0xEE86 0x9854 +0xEE87 0x9855 +0xEE88 0x9856 +0xEE89 0x9857 +0xEE8A 0x9858 +0xEE8B 0x9859 +0xEE8C 0x985A +0xEE8D 0x985B +0xEE8E 0x985C +0xEE8F 0x985D +0xEE90 0x985E +0xEE91 0x985F +0xEE92 0x9860 +0xEE93 0x9861 +0xEE94 0x9862 +0xEE95 0x9863 +0xEE96 0x9864 +0xEE97 0x9865 +0xEE98 0x9866 +0xEE99 0x9867 +0xEE9A 0x9868 +0xEE9B 0x9869 +0xEE9C 0x986A +0xEE9D 0x986B +0xEE9E 0x986C +0xEE9F 0x986D +0xEEA0 0x986E +0xEEA1 0x7762 +0xEEA2 0x7765 +0xEEA3 0x777F +0xEEA4 0x778D +0xEEA5 0x777D +0xEEA6 0x7780 +0xEEA7 0x778C +0xEEA8 0x7791 +0xEEA9 0x779F +0xEEAA 0x77A0 +0xEEAB 0x77B0 +0xEEAC 0x77B5 +0xEEAD 0x77BD +0xEEAE 0x753A +0xEEAF 0x7540 +0xEEB0 0x754E +0xEEB1 0x754B +0xEEB2 0x7548 +0xEEB3 0x755B +0xEEB4 0x7572 +0xEEB5 0x7579 +0xEEB6 0x7583 +0xEEB7 0x7F58 +0xEEB8 0x7F61 +0xEEB9 0x7F5F +0xEEBA 0x8A48 +0xEEBB 0x7F68 +0xEEBC 0x7F74 +0xEEBD 0x7F71 +0xEEBE 0x7F79 +0xEEBF 0x7F81 +0xEEC0 0x7F7E +0xEEC1 0x76CD +0xEEC2 0x76E5 +0xEEC3 0x8832 +0xEEC4 0x9485 +0xEEC5 0x9486 +0xEEC6 0x9487 +0xEEC7 0x948B +0xEEC8 0x948A +0xEEC9 0x948C +0xEECA 0x948D +0xEECB 0x948F +0xEECC 0x9490 +0xEECD 0x9494 +0xEECE 0x9497 +0xEECF 0x9495 +0xEED0 0x949A +0xEED1 0x949B +0xEED2 0x949C +0xEED3 0x94A3 +0xEED4 0x94A4 +0xEED5 0x94AB +0xEED6 0x94AA +0xEED7 0x94AD +0xEED8 0x94AC +0xEED9 0x94AF +0xEEDA 0x94B0 +0xEEDB 0x94B2 +0xEEDC 0x94B4 +0xEEDD 0x94B6 +0xEEDE 0x94B7 +0xEEDF 0x94B8 +0xEEE0 0x94B9 +0xEEE1 0x94BA +0xEEE2 0x94BC +0xEEE3 0x94BD +0xEEE4 0x94BF +0xEEE5 0x94C4 +0xEEE6 0x94C8 +0xEEE7 0x94C9 +0xEEE8 0x94CA +0xEEE9 0x94CB +0xEEEA 0x94CC +0xEEEB 0x94CD +0xEEEC 0x94CE +0xEEED 0x94D0 +0xEEEE 0x94D1 +0xEEEF 0x94D2 +0xEEF0 0x94D5 +0xEEF1 0x94D6 +0xEEF2 0x94D7 +0xEEF3 0x94D9 +0xEEF4 0x94D8 +0xEEF5 0x94DB +0xEEF6 0x94DE +0xEEF7 0x94DF +0xEEF8 0x94E0 +0xEEF9 0x94E2 +0xEEFA 0x94E4 +0xEEFB 0x94E5 +0xEEFC 0x94E7 +0xEEFD 0x94E8 +0xEEFE 0x94EA +0xEF40 0x986F +0xEF41 0x9870 +0xEF42 0x9871 +0xEF43 0x9872 +0xEF44 0x9873 +0xEF45 0x9874 +0xEF46 0x988B +0xEF47 0x988E +0xEF48 0x9892 +0xEF49 0x9895 +0xEF4A 0x9899 +0xEF4B 0x98A3 +0xEF4C 0x98A8 +0xEF4D 0x98A9 +0xEF4E 0x98AA +0xEF4F 0x98AB +0xEF50 0x98AC +0xEF51 0x98AD +0xEF52 0x98AE +0xEF53 0x98AF +0xEF54 0x98B0 +0xEF55 0x98B1 +0xEF56 0x98B2 +0xEF57 0x98B3 +0xEF58 0x98B4 +0xEF59 0x98B5 +0xEF5A 0x98B6 +0xEF5B 0x98B7 +0xEF5C 0x98B8 +0xEF5D 0x98B9 +0xEF5E 0x98BA +0xEF5F 0x98BB +0xEF60 0x98BC +0xEF61 0x98BD +0xEF62 0x98BE +0xEF63 0x98BF +0xEF64 0x98C0 +0xEF65 0x98C1 +0xEF66 0x98C2 +0xEF67 0x98C3 +0xEF68 0x98C4 +0xEF69 0x98C5 +0xEF6A 0x98C6 +0xEF6B 0x98C7 +0xEF6C 0x98C8 +0xEF6D 0x98C9 +0xEF6E 0x98CA +0xEF6F 0x98CB +0xEF70 0x98CC +0xEF71 0x98CD +0xEF72 0x98CF +0xEF73 0x98D0 +0xEF74 0x98D4 +0xEF75 0x98D6 +0xEF76 0x98D7 +0xEF77 0x98DB +0xEF78 0x98DC +0xEF79 0x98DD +0xEF7A 0x98E0 +0xEF7B 0x98E1 +0xEF7C 0x98E2 +0xEF7D 0x98E3 +0xEF7E 0x98E4 +0xEF80 0x98E5 +0xEF81 0x98E6 +0xEF82 0x98E9 +0xEF83 0x98EA +0xEF84 0x98EB +0xEF85 0x98EC +0xEF86 0x98ED +0xEF87 0x98EE +0xEF88 0x98EF +0xEF89 0x98F0 +0xEF8A 0x98F1 +0xEF8B 0x98F2 +0xEF8C 0x98F3 +0xEF8D 0x98F4 +0xEF8E 0x98F5 +0xEF8F 0x98F6 +0xEF90 0x98F7 +0xEF91 0x98F8 +0xEF92 0x98F9 +0xEF93 0x98FA +0xEF94 0x98FB +0xEF95 0x98FC +0xEF96 0x98FD +0xEF97 0x98FE +0xEF98 0x98FF +0xEF99 0x9900 +0xEF9A 0x9901 +0xEF9B 0x9902 +0xEF9C 0x9903 +0xEF9D 0x9904 +0xEF9E 0x9905 +0xEF9F 0x9906 +0xEFA0 0x9907 +0xEFA1 0x94E9 +0xEFA2 0x94EB +0xEFA3 0x94EE +0xEFA4 0x94EF +0xEFA5 0x94F3 +0xEFA6 0x94F4 +0xEFA7 0x94F5 +0xEFA8 0x94F7 +0xEFA9 0x94F9 +0xEFAA 0x94FC +0xEFAB 0x94FD +0xEFAC 0x94FF +0xEFAD 0x9503 +0xEFAE 0x9502 +0xEFAF 0x9506 +0xEFB0 0x9507 +0xEFB1 0x9509 +0xEFB2 0x950A +0xEFB3 0x950D +0xEFB4 0x950E +0xEFB5 0x950F +0xEFB6 0x9512 +0xEFB7 0x9513 +0xEFB8 0x9514 +0xEFB9 0x9515 +0xEFBA 0x9516 +0xEFBB 0x9518 +0xEFBC 0x951B +0xEFBD 0x951D +0xEFBE 0x951E +0xEFBF 0x951F +0xEFC0 0x9522 +0xEFC1 0x952A +0xEFC2 0x952B +0xEFC3 0x9529 +0xEFC4 0x952C +0xEFC5 0x9531 +0xEFC6 0x9532 +0xEFC7 0x9534 +0xEFC8 0x9536 +0xEFC9 0x9537 +0xEFCA 0x9538 +0xEFCB 0x953C +0xEFCC 0x953E +0xEFCD 0x953F +0xEFCE 0x9542 +0xEFCF 0x9535 +0xEFD0 0x9544 +0xEFD1 0x9545 +0xEFD2 0x9546 +0xEFD3 0x9549 +0xEFD4 0x954C +0xEFD5 0x954E +0xEFD6 0x954F +0xEFD7 0x9552 +0xEFD8 0x9553 +0xEFD9 0x9554 +0xEFDA 0x9556 +0xEFDB 0x9557 +0xEFDC 0x9558 +0xEFDD 0x9559 +0xEFDE 0x955B +0xEFDF 0x955E +0xEFE0 0x955F +0xEFE1 0x955D +0xEFE2 0x9561 +0xEFE3 0x9562 +0xEFE4 0x9564 +0xEFE5 0x9565 +0xEFE6 0x9566 +0xEFE7 0x9567 +0xEFE8 0x9568 +0xEFE9 0x9569 +0xEFEA 0x956A +0xEFEB 0x956B +0xEFEC 0x956C +0xEFED 0x956F +0xEFEE 0x9571 +0xEFEF 0x9572 +0xEFF0 0x9573 +0xEFF1 0x953A +0xEFF2 0x77E7 +0xEFF3 0x77EC +0xEFF4 0x96C9 +0xEFF5 0x79D5 +0xEFF6 0x79ED +0xEFF7 0x79E3 +0xEFF8 0x79EB +0xEFF9 0x7A06 +0xEFFA 0x5D47 +0xEFFB 0x7A03 +0xEFFC 0x7A02 +0xEFFD 0x7A1E +0xEFFE 0x7A14 +0xF040 0x9908 +0xF041 0x9909 +0xF042 0x990A +0xF043 0x990B +0xF044 0x990C +0xF045 0x990E +0xF046 0x990F +0xF047 0x9911 +0xF048 0x9912 +0xF049 0x9913 +0xF04A 0x9914 +0xF04B 0x9915 +0xF04C 0x9916 +0xF04D 0x9917 +0xF04E 0x9918 +0xF04F 0x9919 +0xF050 0x991A +0xF051 0x991B +0xF052 0x991C +0xF053 0x991D +0xF054 0x991E +0xF055 0x991F +0xF056 0x9920 +0xF057 0x9921 +0xF058 0x9922 +0xF059 0x9923 +0xF05A 0x9924 +0xF05B 0x9925 +0xF05C 0x9926 +0xF05D 0x9927 +0xF05E 0x9928 +0xF05F 0x9929 +0xF060 0x992A +0xF061 0x992B +0xF062 0x992C +0xF063 0x992D +0xF064 0x992F +0xF065 0x9930 +0xF066 0x9931 +0xF067 0x9932 +0xF068 0x9933 +0xF069 0x9934 +0xF06A 0x9935 +0xF06B 0x9936 +0xF06C 0x9937 +0xF06D 0x9938 +0xF06E 0x9939 +0xF06F 0x993A +0xF070 0x993B +0xF071 0x993C +0xF072 0x993D +0xF073 0x993E +0xF074 0x993F +0xF075 0x9940 +0xF076 0x9941 +0xF077 0x9942 +0xF078 0x9943 +0xF079 0x9944 +0xF07A 0x9945 +0xF07B 0x9946 +0xF07C 0x9947 +0xF07D 0x9948 +0xF07E 0x9949 +0xF080 0x994A +0xF081 0x994B +0xF082 0x994C +0xF083 0x994D +0xF084 0x994E +0xF085 0x994F +0xF086 0x9950 +0xF087 0x9951 +0xF088 0x9952 +0xF089 0x9953 +0xF08A 0x9956 +0xF08B 0x9957 +0xF08C 0x9958 +0xF08D 0x9959 +0xF08E 0x995A +0xF08F 0x995B +0xF090 0x995C +0xF091 0x995D +0xF092 0x995E +0xF093 0x995F +0xF094 0x9960 +0xF095 0x9961 +0xF096 0x9962 +0xF097 0x9964 +0xF098 0x9966 +0xF099 0x9973 +0xF09A 0x9978 +0xF09B 0x9979 +0xF09C 0x997B +0xF09D 0x997E +0xF09E 0x9982 +0xF09F 0x9983 +0xF0A0 0x9989 +0xF0A1 0x7A39 +0xF0A2 0x7A37 +0xF0A3 0x7A51 +0xF0A4 0x9ECF +0xF0A5 0x99A5 +0xF0A6 0x7A70 +0xF0A7 0x7688 +0xF0A8 0x768E +0xF0A9 0x7693 +0xF0AA 0x7699 +0xF0AB 0x76A4 +0xF0AC 0x74DE +0xF0AD 0x74E0 +0xF0AE 0x752C +0xF0AF 0x9E20 +0xF0B0 0x9E22 +0xF0B1 0x9E28 +0xF0B2 0x9E29 +0xF0B3 0x9E2A +0xF0B4 0x9E2B +0xF0B5 0x9E2C +0xF0B6 0x9E32 +0xF0B7 0x9E31 +0xF0B8 0x9E36 +0xF0B9 0x9E38 +0xF0BA 0x9E37 +0xF0BB 0x9E39 +0xF0BC 0x9E3A +0xF0BD 0x9E3E +0xF0BE 0x9E41 +0xF0BF 0x9E42 +0xF0C0 0x9E44 +0xF0C1 0x9E46 +0xF0C2 0x9E47 +0xF0C3 0x9E48 +0xF0C4 0x9E49 +0xF0C5 0x9E4B +0xF0C6 0x9E4C +0xF0C7 0x9E4E +0xF0C8 0x9E51 +0xF0C9 0x9E55 +0xF0CA 0x9E57 +0xF0CB 0x9E5A +0xF0CC 0x9E5B +0xF0CD 0x9E5C +0xF0CE 0x9E5E +0xF0CF 0x9E63 +0xF0D0 0x9E66 +0xF0D1 0x9E67 +0xF0D2 0x9E68 +0xF0D3 0x9E69 +0xF0D4 0x9E6A +0xF0D5 0x9E6B +0xF0D6 0x9E6C +0xF0D7 0x9E71 +0xF0D8 0x9E6D +0xF0D9 0x9E73 +0xF0DA 0x7592 +0xF0DB 0x7594 +0xF0DC 0x7596 +0xF0DD 0x75A0 +0xF0DE 0x759D +0xF0DF 0x75AC +0xF0E0 0x75A3 +0xF0E1 0x75B3 +0xF0E2 0x75B4 +0xF0E3 0x75B8 +0xF0E4 0x75C4 +0xF0E5 0x75B1 +0xF0E6 0x75B0 +0xF0E7 0x75C3 +0xF0E8 0x75C2 +0xF0E9 0x75D6 +0xF0EA 0x75CD +0xF0EB 0x75E3 +0xF0EC 0x75E8 +0xF0ED 0x75E6 +0xF0EE 0x75E4 +0xF0EF 0x75EB +0xF0F0 0x75E7 +0xF0F1 0x7603 +0xF0F2 0x75F1 +0xF0F3 0x75FC +0xF0F4 0x75FF +0xF0F5 0x7610 +0xF0F6 0x7600 +0xF0F7 0x7605 +0xF0F8 0x760C +0xF0F9 0x7617 +0xF0FA 0x760A +0xF0FB 0x7625 +0xF0FC 0x7618 +0xF0FD 0x7615 +0xF0FE 0x7619 +0xF140 0x998C +0xF141 0x998E +0xF142 0x999A +0xF143 0x999B +0xF144 0x999C +0xF145 0x999D +0xF146 0x999E +0xF147 0x999F +0xF148 0x99A0 +0xF149 0x99A1 +0xF14A 0x99A2 +0xF14B 0x99A3 +0xF14C 0x99A4 +0xF14D 0x99A6 +0xF14E 0x99A7 +0xF14F 0x99A9 +0xF150 0x99AA +0xF151 0x99AB +0xF152 0x99AC +0xF153 0x99AD +0xF154 0x99AE +0xF155 0x99AF +0xF156 0x99B0 +0xF157 0x99B1 +0xF158 0x99B2 +0xF159 0x99B3 +0xF15A 0x99B4 +0xF15B 0x99B5 +0xF15C 0x99B6 +0xF15D 0x99B7 +0xF15E 0x99B8 +0xF15F 0x99B9 +0xF160 0x99BA +0xF161 0x99BB +0xF162 0x99BC +0xF163 0x99BD +0xF164 0x99BE +0xF165 0x99BF +0xF166 0x99C0 +0xF167 0x99C1 +0xF168 0x99C2 +0xF169 0x99C3 +0xF16A 0x99C4 +0xF16B 0x99C5 +0xF16C 0x99C6 +0xF16D 0x99C7 +0xF16E 0x99C8 +0xF16F 0x99C9 +0xF170 0x99CA +0xF171 0x99CB +0xF172 0x99CC +0xF173 0x99CD +0xF174 0x99CE +0xF175 0x99CF +0xF176 0x99D0 +0xF177 0x99D1 +0xF178 0x99D2 +0xF179 0x99D3 +0xF17A 0x99D4 +0xF17B 0x99D5 +0xF17C 0x99D6 +0xF17D 0x99D7 +0xF17E 0x99D8 +0xF180 0x99D9 +0xF181 0x99DA +0xF182 0x99DB +0xF183 0x99DC +0xF184 0x99DD +0xF185 0x99DE +0xF186 0x99DF +0xF187 0x99E0 +0xF188 0x99E1 +0xF189 0x99E2 +0xF18A 0x99E3 +0xF18B 0x99E4 +0xF18C 0x99E5 +0xF18D 0x99E6 +0xF18E 0x99E7 +0xF18F 0x99E8 +0xF190 0x99E9 +0xF191 0x99EA +0xF192 0x99EB +0xF193 0x99EC +0xF194 0x99ED +0xF195 0x99EE +0xF196 0x99EF +0xF197 0x99F0 +0xF198 0x99F1 +0xF199 0x99F2 +0xF19A 0x99F3 +0xF19B 0x99F4 +0xF19C 0x99F5 +0xF19D 0x99F6 +0xF19E 0x99F7 +0xF19F 0x99F8 +0xF1A0 0x99F9 +0xF1A1 0x761B +0xF1A2 0x763C +0xF1A3 0x7622 +0xF1A4 0x7620 +0xF1A5 0x7640 +0xF1A6 0x762D +0xF1A7 0x7630 +0xF1A8 0x763F +0xF1A9 0x7635 +0xF1AA 0x7643 +0xF1AB 0x763E +0xF1AC 0x7633 +0xF1AD 0x764D +0xF1AE 0x765E +0xF1AF 0x7654 +0xF1B0 0x765C +0xF1B1 0x7656 +0xF1B2 0x766B +0xF1B3 0x766F +0xF1B4 0x7FCA +0xF1B5 0x7AE6 +0xF1B6 0x7A78 +0xF1B7 0x7A79 +0xF1B8 0x7A80 +0xF1B9 0x7A86 +0xF1BA 0x7A88 +0xF1BB 0x7A95 +0xF1BC 0x7AA6 +0xF1BD 0x7AA0 +0xF1BE 0x7AAC +0xF1BF 0x7AA8 +0xF1C0 0x7AAD +0xF1C1 0x7AB3 +0xF1C2 0x8864 +0xF1C3 0x8869 +0xF1C4 0x8872 +0xF1C5 0x887D +0xF1C6 0x887F +0xF1C7 0x8882 +0xF1C8 0x88A2 +0xF1C9 0x88C6 +0xF1CA 0x88B7 +0xF1CB 0x88BC +0xF1CC 0x88C9 +0xF1CD 0x88E2 +0xF1CE 0x88CE +0xF1CF 0x88E3 +0xF1D0 0x88E5 +0xF1D1 0x88F1 +0xF1D2 0x891A +0xF1D3 0x88FC +0xF1D4 0x88E8 +0xF1D5 0x88FE +0xF1D6 0x88F0 +0xF1D7 0x8921 +0xF1D8 0x8919 +0xF1D9 0x8913 +0xF1DA 0x891B +0xF1DB 0x890A +0xF1DC 0x8934 +0xF1DD 0x892B +0xF1DE 0x8936 +0xF1DF 0x8941 +0xF1E0 0x8966 +0xF1E1 0x897B +0xF1E2 0x758B +0xF1E3 0x80E5 +0xF1E4 0x76B2 +0xF1E5 0x76B4 +0xF1E6 0x77DC +0xF1E7 0x8012 +0xF1E8 0x8014 +0xF1E9 0x8016 +0xF1EA 0x801C +0xF1EB 0x8020 +0xF1EC 0x8022 +0xF1ED 0x8025 +0xF1EE 0x8026 +0xF1EF 0x8027 +0xF1F0 0x8029 +0xF1F1 0x8028 +0xF1F2 0x8031 +0xF1F3 0x800B +0xF1F4 0x8035 +0xF1F5 0x8043 +0xF1F6 0x8046 +0xF1F7 0x804D +0xF1F8 0x8052 +0xF1F9 0x8069 +0xF1FA 0x8071 +0xF1FB 0x8983 +0xF1FC 0x9878 +0xF1FD 0x9880 +0xF1FE 0x9883 +0xF240 0x99FA +0xF241 0x99FB +0xF242 0x99FC +0xF243 0x99FD +0xF244 0x99FE +0xF245 0x99FF +0xF246 0x9A00 +0xF247 0x9A01 +0xF248 0x9A02 +0xF249 0x9A03 +0xF24A 0x9A04 +0xF24B 0x9A05 +0xF24C 0x9A06 +0xF24D 0x9A07 +0xF24E 0x9A08 +0xF24F 0x9A09 +0xF250 0x9A0A +0xF251 0x9A0B +0xF252 0x9A0C +0xF253 0x9A0D +0xF254 0x9A0E +0xF255 0x9A0F +0xF256 0x9A10 +0xF257 0x9A11 +0xF258 0x9A12 +0xF259 0x9A13 +0xF25A 0x9A14 +0xF25B 0x9A15 +0xF25C 0x9A16 +0xF25D 0x9A17 +0xF25E 0x9A18 +0xF25F 0x9A19 +0xF260 0x9A1A +0xF261 0x9A1B +0xF262 0x9A1C +0xF263 0x9A1D +0xF264 0x9A1E +0xF265 0x9A1F +0xF266 0x9A20 +0xF267 0x9A21 +0xF268 0x9A22 +0xF269 0x9A23 +0xF26A 0x9A24 +0xF26B 0x9A25 +0xF26C 0x9A26 +0xF26D 0x9A27 +0xF26E 0x9A28 +0xF26F 0x9A29 +0xF270 0x9A2A +0xF271 0x9A2B +0xF272 0x9A2C +0xF273 0x9A2D +0xF274 0x9A2E +0xF275 0x9A2F +0xF276 0x9A30 +0xF277 0x9A31 +0xF278 0x9A32 +0xF279 0x9A33 +0xF27A 0x9A34 +0xF27B 0x9A35 +0xF27C 0x9A36 +0xF27D 0x9A37 +0xF27E 0x9A38 +0xF280 0x9A39 +0xF281 0x9A3A +0xF282 0x9A3B +0xF283 0x9A3C +0xF284 0x9A3D +0xF285 0x9A3E +0xF286 0x9A3F +0xF287 0x9A40 +0xF288 0x9A41 +0xF289 0x9A42 +0xF28A 0x9A43 +0xF28B 0x9A44 +0xF28C 0x9A45 +0xF28D 0x9A46 +0xF28E 0x9A47 +0xF28F 0x9A48 +0xF290 0x9A49 +0xF291 0x9A4A +0xF292 0x9A4B +0xF293 0x9A4C +0xF294 0x9A4D +0xF295 0x9A4E +0xF296 0x9A4F +0xF297 0x9A50 +0xF298 0x9A51 +0xF299 0x9A52 +0xF29A 0x9A53 +0xF29B 0x9A54 +0xF29C 0x9A55 +0xF29D 0x9A56 +0xF29E 0x9A57 +0xF29F 0x9A58 +0xF2A0 0x9A59 +0xF2A1 0x9889 +0xF2A2 0x988C +0xF2A3 0x988D +0xF2A4 0x988F +0xF2A5 0x9894 +0xF2A6 0x989A +0xF2A7 0x989B +0xF2A8 0x989E +0xF2A9 0x989F +0xF2AA 0x98A1 +0xF2AB 0x98A2 +0xF2AC 0x98A5 +0xF2AD 0x98A6 +0xF2AE 0x864D +0xF2AF 0x8654 +0xF2B0 0x866C +0xF2B1 0x866E +0xF2B2 0x867F +0xF2B3 0x867A +0xF2B4 0x867C +0xF2B5 0x867B +0xF2B6 0x86A8 +0xF2B7 0x868D +0xF2B8 0x868B +0xF2B9 0x86AC +0xF2BA 0x869D +0xF2BB 0x86A7 +0xF2BC 0x86A3 +0xF2BD 0x86AA +0xF2BE 0x8693 +0xF2BF 0x86A9 +0xF2C0 0x86B6 +0xF2C1 0x86C4 +0xF2C2 0x86B5 +0xF2C3 0x86CE +0xF2C4 0x86B0 +0xF2C5 0x86BA +0xF2C6 0x86B1 +0xF2C7 0x86AF +0xF2C8 0x86C9 +0xF2C9 0x86CF +0xF2CA 0x86B4 +0xF2CB 0x86E9 +0xF2CC 0x86F1 +0xF2CD 0x86F2 +0xF2CE 0x86ED +0xF2CF 0x86F3 +0xF2D0 0x86D0 +0xF2D1 0x8713 +0xF2D2 0x86DE +0xF2D3 0x86F4 +0xF2D4 0x86DF +0xF2D5 0x86D8 +0xF2D6 0x86D1 +0xF2D7 0x8703 +0xF2D8 0x8707 +0xF2D9 0x86F8 +0xF2DA 0x8708 +0xF2DB 0x870A +0xF2DC 0x870D +0xF2DD 0x8709 +0xF2DE 0x8723 +0xF2DF 0x873B +0xF2E0 0x871E +0xF2E1 0x8725 +0xF2E2 0x872E +0xF2E3 0x871A +0xF2E4 0x873E +0xF2E5 0x8748 +0xF2E6 0x8734 +0xF2E7 0x8731 +0xF2E8 0x8729 +0xF2E9 0x8737 +0xF2EA 0x873F +0xF2EB 0x8782 +0xF2EC 0x8722 +0xF2ED 0x877D +0xF2EE 0x877E +0xF2EF 0x877B +0xF2F0 0x8760 +0xF2F1 0x8770 +0xF2F2 0x874C +0xF2F3 0x876E +0xF2F4 0x878B +0xF2F5 0x8753 +0xF2F6 0x8763 +0xF2F7 0x877C +0xF2F8 0x8764 +0xF2F9 0x8759 +0xF2FA 0x8765 +0xF2FB 0x8793 +0xF2FC 0x87AF +0xF2FD 0x87A8 +0xF2FE 0x87D2 +0xF340 0x9A5A +0xF341 0x9A5B +0xF342 0x9A5C +0xF343 0x9A5D +0xF344 0x9A5E +0xF345 0x9A5F +0xF346 0x9A60 +0xF347 0x9A61 +0xF348 0x9A62 +0xF349 0x9A63 +0xF34A 0x9A64 +0xF34B 0x9A65 +0xF34C 0x9A66 +0xF34D 0x9A67 +0xF34E 0x9A68 +0xF34F 0x9A69 +0xF350 0x9A6A +0xF351 0x9A6B +0xF352 0x9A72 +0xF353 0x9A83 +0xF354 0x9A89 +0xF355 0x9A8D +0xF356 0x9A8E +0xF357 0x9A94 +0xF358 0x9A95 +0xF359 0x9A99 +0xF35A 0x9AA6 +0xF35B 0x9AA9 +0xF35C 0x9AAA +0xF35D 0x9AAB +0xF35E 0x9AAC +0xF35F 0x9AAD +0xF360 0x9AAE +0xF361 0x9AAF +0xF362 0x9AB2 +0xF363 0x9AB3 +0xF364 0x9AB4 +0xF365 0x9AB5 +0xF366 0x9AB9 +0xF367 0x9ABB +0xF368 0x9ABD +0xF369 0x9ABE +0xF36A 0x9ABF +0xF36B 0x9AC3 +0xF36C 0x9AC4 +0xF36D 0x9AC6 +0xF36E 0x9AC7 +0xF36F 0x9AC8 +0xF370 0x9AC9 +0xF371 0x9ACA +0xF372 0x9ACD +0xF373 0x9ACE +0xF374 0x9ACF +0xF375 0x9AD0 +0xF376 0x9AD2 +0xF377 0x9AD4 +0xF378 0x9AD5 +0xF379 0x9AD6 +0xF37A 0x9AD7 +0xF37B 0x9AD9 +0xF37C 0x9ADA +0xF37D 0x9ADB +0xF37E 0x9ADC +0xF380 0x9ADD +0xF381 0x9ADE +0xF382 0x9AE0 +0xF383 0x9AE2 +0xF384 0x9AE3 +0xF385 0x9AE4 +0xF386 0x9AE5 +0xF387 0x9AE7 +0xF388 0x9AE8 +0xF389 0x9AE9 +0xF38A 0x9AEA +0xF38B 0x9AEC +0xF38C 0x9AEE +0xF38D 0x9AF0 +0xF38E 0x9AF1 +0xF38F 0x9AF2 +0xF390 0x9AF3 +0xF391 0x9AF4 +0xF392 0x9AF5 +0xF393 0x9AF6 +0xF394 0x9AF7 +0xF395 0x9AF8 +0xF396 0x9AFA +0xF397 0x9AFC +0xF398 0x9AFD +0xF399 0x9AFE +0xF39A 0x9AFF +0xF39B 0x9B00 +0xF39C 0x9B01 +0xF39D 0x9B02 +0xF39E 0x9B04 +0xF39F 0x9B05 +0xF3A0 0x9B06 +0xF3A1 0x87C6 +0xF3A2 0x8788 +0xF3A3 0x8785 +0xF3A4 0x87AD +0xF3A5 0x8797 +0xF3A6 0x8783 +0xF3A7 0x87AB +0xF3A8 0x87E5 +0xF3A9 0x87AC +0xF3AA 0x87B5 +0xF3AB 0x87B3 +0xF3AC 0x87CB +0xF3AD 0x87D3 +0xF3AE 0x87BD +0xF3AF 0x87D1 +0xF3B0 0x87C0 +0xF3B1 0x87CA +0xF3B2 0x87DB +0xF3B3 0x87EA +0xF3B4 0x87E0 +0xF3B5 0x87EE +0xF3B6 0x8816 +0xF3B7 0x8813 +0xF3B8 0x87FE +0xF3B9 0x880A +0xF3BA 0x881B +0xF3BB 0x8821 +0xF3BC 0x8839 +0xF3BD 0x883C +0xF3BE 0x7F36 +0xF3BF 0x7F42 +0xF3C0 0x7F44 +0xF3C1 0x7F45 +0xF3C2 0x8210 +0xF3C3 0x7AFA +0xF3C4 0x7AFD +0xF3C5 0x7B08 +0xF3C6 0x7B03 +0xF3C7 0x7B04 +0xF3C8 0x7B15 +0xF3C9 0x7B0A +0xF3CA 0x7B2B +0xF3CB 0x7B0F +0xF3CC 0x7B47 +0xF3CD 0x7B38 +0xF3CE 0x7B2A +0xF3CF 0x7B19 +0xF3D0 0x7B2E +0xF3D1 0x7B31 +0xF3D2 0x7B20 +0xF3D3 0x7B25 +0xF3D4 0x7B24 +0xF3D5 0x7B33 +0xF3D6 0x7B3E +0xF3D7 0x7B1E +0xF3D8 0x7B58 +0xF3D9 0x7B5A +0xF3DA 0x7B45 +0xF3DB 0x7B75 +0xF3DC 0x7B4C +0xF3DD 0x7B5D +0xF3DE 0x7B60 +0xF3DF 0x7B6E +0xF3E0 0x7B7B +0xF3E1 0x7B62 +0xF3E2 0x7B72 +0xF3E3 0x7B71 +0xF3E4 0x7B90 +0xF3E5 0x7BA6 +0xF3E6 0x7BA7 +0xF3E7 0x7BB8 +0xF3E8 0x7BAC +0xF3E9 0x7B9D +0xF3EA 0x7BA8 +0xF3EB 0x7B85 +0xF3EC 0x7BAA +0xF3ED 0x7B9C +0xF3EE 0x7BA2 +0xF3EF 0x7BAB +0xF3F0 0x7BB4 +0xF3F1 0x7BD1 +0xF3F2 0x7BC1 +0xF3F3 0x7BCC +0xF3F4 0x7BDD +0xF3F5 0x7BDA +0xF3F6 0x7BE5 +0xF3F7 0x7BE6 +0xF3F8 0x7BEA +0xF3F9 0x7C0C +0xF3FA 0x7BFE +0xF3FB 0x7BFC +0xF3FC 0x7C0F +0xF3FD 0x7C16 +0xF3FE 0x7C0B +0xF440 0x9B07 +0xF441 0x9B09 +0xF442 0x9B0A +0xF443 0x9B0B +0xF444 0x9B0C +0xF445 0x9B0D +0xF446 0x9B0E +0xF447 0x9B10 +0xF448 0x9B11 +0xF449 0x9B12 +0xF44A 0x9B14 +0xF44B 0x9B15 +0xF44C 0x9B16 +0xF44D 0x9B17 +0xF44E 0x9B18 +0xF44F 0x9B19 +0xF450 0x9B1A +0xF451 0x9B1B +0xF452 0x9B1C +0xF453 0x9B1D +0xF454 0x9B1E +0xF455 0x9B20 +0xF456 0x9B21 +0xF457 0x9B22 +0xF458 0x9B24 +0xF459 0x9B25 +0xF45A 0x9B26 +0xF45B 0x9B27 +0xF45C 0x9B28 +0xF45D 0x9B29 +0xF45E 0x9B2A +0xF45F 0x9B2B +0xF460 0x9B2C +0xF461 0x9B2D +0xF462 0x9B2E +0xF463 0x9B30 +0xF464 0x9B31 +0xF465 0x9B33 +0xF466 0x9B34 +0xF467 0x9B35 +0xF468 0x9B36 +0xF469 0x9B37 +0xF46A 0x9B38 +0xF46B 0x9B39 +0xF46C 0x9B3A +0xF46D 0x9B3D +0xF46E 0x9B3E +0xF46F 0x9B3F +0xF470 0x9B40 +0xF471 0x9B46 +0xF472 0x9B4A +0xF473 0x9B4B +0xF474 0x9B4C +0xF475 0x9B4E +0xF476 0x9B50 +0xF477 0x9B52 +0xF478 0x9B53 +0xF479 0x9B55 +0xF47A 0x9B56 +0xF47B 0x9B57 +0xF47C 0x9B58 +0xF47D 0x9B59 +0xF47E 0x9B5A +0xF480 0x9B5B +0xF481 0x9B5C +0xF482 0x9B5D +0xF483 0x9B5E +0xF484 0x9B5F +0xF485 0x9B60 +0xF486 0x9B61 +0xF487 0x9B62 +0xF488 0x9B63 +0xF489 0x9B64 +0xF48A 0x9B65 +0xF48B 0x9B66 +0xF48C 0x9B67 +0xF48D 0x9B68 +0xF48E 0x9B69 +0xF48F 0x9B6A +0xF490 0x9B6B +0xF491 0x9B6C +0xF492 0x9B6D +0xF493 0x9B6E +0xF494 0x9B6F +0xF495 0x9B70 +0xF496 0x9B71 +0xF497 0x9B72 +0xF498 0x9B73 +0xF499 0x9B74 +0xF49A 0x9B75 +0xF49B 0x9B76 +0xF49C 0x9B77 +0xF49D 0x9B78 +0xF49E 0x9B79 +0xF49F 0x9B7A +0xF4A0 0x9B7B +0xF4A1 0x7C1F +0xF4A2 0x7C2A +0xF4A3 0x7C26 +0xF4A4 0x7C38 +0xF4A5 0x7C41 +0xF4A6 0x7C40 +0xF4A7 0x81FE +0xF4A8 0x8201 +0xF4A9 0x8202 +0xF4AA 0x8204 +0xF4AB 0x81EC +0xF4AC 0x8844 +0xF4AD 0x8221 +0xF4AE 0x8222 +0xF4AF 0x8223 +0xF4B0 0x822D +0xF4B1 0x822F +0xF4B2 0x8228 +0xF4B3 0x822B +0xF4B4 0x8238 +0xF4B5 0x823B +0xF4B6 0x8233 +0xF4B7 0x8234 +0xF4B8 0x823E +0xF4B9 0x8244 +0xF4BA 0x8249 +0xF4BB 0x824B +0xF4BC 0x824F +0xF4BD 0x825A +0xF4BE 0x825F +0xF4BF 0x8268 +0xF4C0 0x887E +0xF4C1 0x8885 +0xF4C2 0x8888 +0xF4C3 0x88D8 +0xF4C4 0x88DF +0xF4C5 0x895E +0xF4C6 0x7F9D +0xF4C7 0x7F9F +0xF4C8 0x7FA7 +0xF4C9 0x7FAF +0xF4CA 0x7FB0 +0xF4CB 0x7FB2 +0xF4CC 0x7C7C +0xF4CD 0x6549 +0xF4CE 0x7C91 +0xF4CF 0x7C9D +0xF4D0 0x7C9C +0xF4D1 0x7C9E +0xF4D2 0x7CA2 +0xF4D3 0x7CB2 +0xF4D4 0x7CBC +0xF4D5 0x7CBD +0xF4D6 0x7CC1 +0xF4D7 0x7CC7 +0xF4D8 0x7CCC +0xF4D9 0x7CCD +0xF4DA 0x7CC8 +0xF4DB 0x7CC5 +0xF4DC 0x7CD7 +0xF4DD 0x7CE8 +0xF4DE 0x826E +0xF4DF 0x66A8 +0xF4E0 0x7FBF +0xF4E1 0x7FCE +0xF4E2 0x7FD5 +0xF4E3 0x7FE5 +0xF4E4 0x7FE1 +0xF4E5 0x7FE6 +0xF4E6 0x7FE9 +0xF4E7 0x7FEE +0xF4E8 0x7FF3 +0xF4E9 0x7CF8 +0xF4EA 0x7D77 +0xF4EB 0x7DA6 +0xF4EC 0x7DAE +0xF4ED 0x7E47 +0xF4EE 0x7E9B +0xF4EF 0x9EB8 +0xF4F0 0x9EB4 +0xF4F1 0x8D73 +0xF4F2 0x8D84 +0xF4F3 0x8D94 +0xF4F4 0x8D91 +0xF4F5 0x8DB1 +0xF4F6 0x8D67 +0xF4F7 0x8D6D +0xF4F8 0x8C47 +0xF4F9 0x8C49 +0xF4FA 0x914A +0xF4FB 0x9150 +0xF4FC 0x914E +0xF4FD 0x914F +0xF4FE 0x9164 +0xF540 0x9B7C +0xF541 0x9B7D +0xF542 0x9B7E +0xF543 0x9B7F +0xF544 0x9B80 +0xF545 0x9B81 +0xF546 0x9B82 +0xF547 0x9B83 +0xF548 0x9B84 +0xF549 0x9B85 +0xF54A 0x9B86 +0xF54B 0x9B87 +0xF54C 0x9B88 +0xF54D 0x9B89 +0xF54E 0x9B8A +0xF54F 0x9B8B +0xF550 0x9B8C +0xF551 0x9B8D +0xF552 0x9B8E +0xF553 0x9B8F +0xF554 0x9B90 +0xF555 0x9B91 +0xF556 0x9B92 +0xF557 0x9B93 +0xF558 0x9B94 +0xF559 0x9B95 +0xF55A 0x9B96 +0xF55B 0x9B97 +0xF55C 0x9B98 +0xF55D 0x9B99 +0xF55E 0x9B9A +0xF55F 0x9B9B +0xF560 0x9B9C +0xF561 0x9B9D +0xF562 0x9B9E +0xF563 0x9B9F +0xF564 0x9BA0 +0xF565 0x9BA1 +0xF566 0x9BA2 +0xF567 0x9BA3 +0xF568 0x9BA4 +0xF569 0x9BA5 +0xF56A 0x9BA6 +0xF56B 0x9BA7 +0xF56C 0x9BA8 +0xF56D 0x9BA9 +0xF56E 0x9BAA +0xF56F 0x9BAB +0xF570 0x9BAC +0xF571 0x9BAD +0xF572 0x9BAE +0xF573 0x9BAF +0xF574 0x9BB0 +0xF575 0x9BB1 +0xF576 0x9BB2 +0xF577 0x9BB3 +0xF578 0x9BB4 +0xF579 0x9BB5 +0xF57A 0x9BB6 +0xF57B 0x9BB7 +0xF57C 0x9BB8 +0xF57D 0x9BB9 +0xF57E 0x9BBA +0xF580 0x9BBB +0xF581 0x9BBC +0xF582 0x9BBD +0xF583 0x9BBE +0xF584 0x9BBF +0xF585 0x9BC0 +0xF586 0x9BC1 +0xF587 0x9BC2 +0xF588 0x9BC3 +0xF589 0x9BC4 +0xF58A 0x9BC5 +0xF58B 0x9BC6 +0xF58C 0x9BC7 +0xF58D 0x9BC8 +0xF58E 0x9BC9 +0xF58F 0x9BCA +0xF590 0x9BCB +0xF591 0x9BCC +0xF592 0x9BCD +0xF593 0x9BCE +0xF594 0x9BCF +0xF595 0x9BD0 +0xF596 0x9BD1 +0xF597 0x9BD2 +0xF598 0x9BD3 +0xF599 0x9BD4 +0xF59A 0x9BD5 +0xF59B 0x9BD6 +0xF59C 0x9BD7 +0xF59D 0x9BD8 +0xF59E 0x9BD9 +0xF59F 0x9BDA +0xF5A0 0x9BDB +0xF5A1 0x9162 +0xF5A2 0x9161 +0xF5A3 0x9170 +0xF5A4 0x9169 +0xF5A5 0x916F +0xF5A6 0x917D +0xF5A7 0x917E +0xF5A8 0x9172 +0xF5A9 0x9174 +0xF5AA 0x9179 +0xF5AB 0x918C +0xF5AC 0x9185 +0xF5AD 0x9190 +0xF5AE 0x918D +0xF5AF 0x9191 +0xF5B0 0x91A2 +0xF5B1 0x91A3 +0xF5B2 0x91AA +0xF5B3 0x91AD +0xF5B4 0x91AE +0xF5B5 0x91AF +0xF5B6 0x91B5 +0xF5B7 0x91B4 +0xF5B8 0x91BA +0xF5B9 0x8C55 +0xF5BA 0x9E7E +0xF5BB 0x8DB8 +0xF5BC 0x8DEB +0xF5BD 0x8E05 +0xF5BE 0x8E59 +0xF5BF 0x8E69 +0xF5C0 0x8DB5 +0xF5C1 0x8DBF +0xF5C2 0x8DBC +0xF5C3 0x8DBA +0xF5C4 0x8DC4 +0xF5C5 0x8DD6 +0xF5C6 0x8DD7 +0xF5C7 0x8DDA +0xF5C8 0x8DDE +0xF5C9 0x8DCE +0xF5CA 0x8DCF +0xF5CB 0x8DDB +0xF5CC 0x8DC6 +0xF5CD 0x8DEC +0xF5CE 0x8DF7 +0xF5CF 0x8DF8 +0xF5D0 0x8DE3 +0xF5D1 0x8DF9 +0xF5D2 0x8DFB +0xF5D3 0x8DE4 +0xF5D4 0x8E09 +0xF5D5 0x8DFD +0xF5D6 0x8E14 +0xF5D7 0x8E1D +0xF5D8 0x8E1F +0xF5D9 0x8E2C +0xF5DA 0x8E2E +0xF5DB 0x8E23 +0xF5DC 0x8E2F +0xF5DD 0x8E3A +0xF5DE 0x8E40 +0xF5DF 0x8E39 +0xF5E0 0x8E35 +0xF5E1 0x8E3D +0xF5E2 0x8E31 +0xF5E3 0x8E49 +0xF5E4 0x8E41 +0xF5E5 0x8E42 +0xF5E6 0x8E51 +0xF5E7 0x8E52 +0xF5E8 0x8E4A +0xF5E9 0x8E70 +0xF5EA 0x8E76 +0xF5EB 0x8E7C +0xF5EC 0x8E6F +0xF5ED 0x8E74 +0xF5EE 0x8E85 +0xF5EF 0x8E8F +0xF5F0 0x8E94 +0xF5F1 0x8E90 +0xF5F2 0x8E9C +0xF5F3 0x8E9E +0xF5F4 0x8C78 +0xF5F5 0x8C82 +0xF5F6 0x8C8A +0xF5F7 0x8C85 +0xF5F8 0x8C98 +0xF5F9 0x8C94 +0xF5FA 0x659B +0xF5FB 0x89D6 +0xF5FC 0x89DE +0xF5FD 0x89DA +0xF5FE 0x89DC +0xF640 0x9BDC +0xF641 0x9BDD +0xF642 0x9BDE +0xF643 0x9BDF +0xF644 0x9BE0 +0xF645 0x9BE1 +0xF646 0x9BE2 +0xF647 0x9BE3 +0xF648 0x9BE4 +0xF649 0x9BE5 +0xF64A 0x9BE6 +0xF64B 0x9BE7 +0xF64C 0x9BE8 +0xF64D 0x9BE9 +0xF64E 0x9BEA +0xF64F 0x9BEB +0xF650 0x9BEC +0xF651 0x9BED +0xF652 0x9BEE +0xF653 0x9BEF +0xF654 0x9BF0 +0xF655 0x9BF1 +0xF656 0x9BF2 +0xF657 0x9BF3 +0xF658 0x9BF4 +0xF659 0x9BF5 +0xF65A 0x9BF6 +0xF65B 0x9BF7 +0xF65C 0x9BF8 +0xF65D 0x9BF9 +0xF65E 0x9BFA +0xF65F 0x9BFB +0xF660 0x9BFC +0xF661 0x9BFD +0xF662 0x9BFE +0xF663 0x9BFF +0xF664 0x9C00 +0xF665 0x9C01 +0xF666 0x9C02 +0xF667 0x9C03 +0xF668 0x9C04 +0xF669 0x9C05 +0xF66A 0x9C06 +0xF66B 0x9C07 +0xF66C 0x9C08 +0xF66D 0x9C09 +0xF66E 0x9C0A +0xF66F 0x9C0B +0xF670 0x9C0C +0xF671 0x9C0D +0xF672 0x9C0E +0xF673 0x9C0F +0xF674 0x9C10 +0xF675 0x9C11 +0xF676 0x9C12 +0xF677 0x9C13 +0xF678 0x9C14 +0xF679 0x9C15 +0xF67A 0x9C16 +0xF67B 0x9C17 +0xF67C 0x9C18 +0xF67D 0x9C19 +0xF67E 0x9C1A +0xF680 0x9C1B +0xF681 0x9C1C +0xF682 0x9C1D +0xF683 0x9C1E +0xF684 0x9C1F +0xF685 0x9C20 +0xF686 0x9C21 +0xF687 0x9C22 +0xF688 0x9C23 +0xF689 0x9C24 +0xF68A 0x9C25 +0xF68B 0x9C26 +0xF68C 0x9C27 +0xF68D 0x9C28 +0xF68E 0x9C29 +0xF68F 0x9C2A +0xF690 0x9C2B +0xF691 0x9C2C +0xF692 0x9C2D +0xF693 0x9C2E +0xF694 0x9C2F +0xF695 0x9C30 +0xF696 0x9C31 +0xF697 0x9C32 +0xF698 0x9C33 +0xF699 0x9C34 +0xF69A 0x9C35 +0xF69B 0x9C36 +0xF69C 0x9C37 +0xF69D 0x9C38 +0xF69E 0x9C39 +0xF69F 0x9C3A +0xF6A0 0x9C3B +0xF6A1 0x89E5 +0xF6A2 0x89EB +0xF6A3 0x89EF +0xF6A4 0x8A3E +0xF6A5 0x8B26 +0xF6A6 0x9753 +0xF6A7 0x96E9 +0xF6A8 0x96F3 +0xF6A9 0x96EF +0xF6AA 0x9706 +0xF6AB 0x9701 +0xF6AC 0x9708 +0xF6AD 0x970F +0xF6AE 0x970E +0xF6AF 0x972A +0xF6B0 0x972D +0xF6B1 0x9730 +0xF6B2 0x973E +0xF6B3 0x9F80 +0xF6B4 0x9F83 +0xF6B5 0x9F85 +0xF6B6 0x9F86 +0xF6B7 0x9F87 +0xF6B8 0x9F88 +0xF6B9 0x9F89 +0xF6BA 0x9F8A +0xF6BB 0x9F8C +0xF6BC 0x9EFE +0xF6BD 0x9F0B +0xF6BE 0x9F0D +0xF6BF 0x96B9 +0xF6C0 0x96BC +0xF6C1 0x96BD +0xF6C2 0x96CE +0xF6C3 0x96D2 +0xF6C4 0x77BF +0xF6C5 0x96E0 +0xF6C6 0x928E +0xF6C7 0x92AE +0xF6C8 0x92C8 +0xF6C9 0x933E +0xF6CA 0x936A +0xF6CB 0x93CA +0xF6CC 0x938F +0xF6CD 0x943E +0xF6CE 0x946B +0xF6CF 0x9C7F +0xF6D0 0x9C82 +0xF6D1 0x9C85 +0xF6D2 0x9C86 +0xF6D3 0x9C87 +0xF6D4 0x9C88 +0xF6D5 0x7A23 +0xF6D6 0x9C8B +0xF6D7 0x9C8E +0xF6D8 0x9C90 +0xF6D9 0x9C91 +0xF6DA 0x9C92 +0xF6DB 0x9C94 +0xF6DC 0x9C95 +0xF6DD 0x9C9A +0xF6DE 0x9C9B +0xF6DF 0x9C9E +0xF6E0 0x9C9F +0xF6E1 0x9CA0 +0xF6E2 0x9CA1 +0xF6E3 0x9CA2 +0xF6E4 0x9CA3 +0xF6E5 0x9CA5 +0xF6E6 0x9CA6 +0xF6E7 0x9CA7 +0xF6E8 0x9CA8 +0xF6E9 0x9CA9 +0xF6EA 0x9CAB +0xF6EB 0x9CAD +0xF6EC 0x9CAE +0xF6ED 0x9CB0 +0xF6EE 0x9CB1 +0xF6EF 0x9CB2 +0xF6F0 0x9CB3 +0xF6F1 0x9CB4 +0xF6F2 0x9CB5 +0xF6F3 0x9CB6 +0xF6F4 0x9CB7 +0xF6F5 0x9CBA +0xF6F6 0x9CBB +0xF6F7 0x9CBC +0xF6F8 0x9CBD +0xF6F9 0x9CC4 +0xF6FA 0x9CC5 +0xF6FB 0x9CC6 +0xF6FC 0x9CC7 +0xF6FD 0x9CCA +0xF6FE 0x9CCB +0xF740 0x9C3C +0xF741 0x9C3D +0xF742 0x9C3E +0xF743 0x9C3F +0xF744 0x9C40 +0xF745 0x9C41 +0xF746 0x9C42 +0xF747 0x9C43 +0xF748 0x9C44 +0xF749 0x9C45 +0xF74A 0x9C46 +0xF74B 0x9C47 +0xF74C 0x9C48 +0xF74D 0x9C49 +0xF74E 0x9C4A +0xF74F 0x9C4B +0xF750 0x9C4C +0xF751 0x9C4D +0xF752 0x9C4E +0xF753 0x9C4F +0xF754 0x9C50 +0xF755 0x9C51 +0xF756 0x9C52 +0xF757 0x9C53 +0xF758 0x9C54 +0xF759 0x9C55 +0xF75A 0x9C56 +0xF75B 0x9C57 +0xF75C 0x9C58 +0xF75D 0x9C59 +0xF75E 0x9C5A +0xF75F 0x9C5B +0xF760 0x9C5C +0xF761 0x9C5D +0xF762 0x9C5E +0xF763 0x9C5F +0xF764 0x9C60 +0xF765 0x9C61 +0xF766 0x9C62 +0xF767 0x9C63 +0xF768 0x9C64 +0xF769 0x9C65 +0xF76A 0x9C66 +0xF76B 0x9C67 +0xF76C 0x9C68 +0xF76D 0x9C69 +0xF76E 0x9C6A +0xF76F 0x9C6B +0xF770 0x9C6C +0xF771 0x9C6D +0xF772 0x9C6E +0xF773 0x9C6F +0xF774 0x9C70 +0xF775 0x9C71 +0xF776 0x9C72 +0xF777 0x9C73 +0xF778 0x9C74 +0xF779 0x9C75 +0xF77A 0x9C76 +0xF77B 0x9C77 +0xF77C 0x9C78 +0xF77D 0x9C79 +0xF77E 0x9C7A +0xF780 0x9C7B +0xF781 0x9C7D +0xF782 0x9C7E +0xF783 0x9C80 +0xF784 0x9C83 +0xF785 0x9C84 +0xF786 0x9C89 +0xF787 0x9C8A +0xF788 0x9C8C +0xF789 0x9C8F +0xF78A 0x9C93 +0xF78B 0x9C96 +0xF78C 0x9C97 +0xF78D 0x9C98 +0xF78E 0x9C99 +0xF78F 0x9C9D +0xF790 0x9CAA +0xF791 0x9CAC +0xF792 0x9CAF +0xF793 0x9CB9 +0xF794 0x9CBE +0xF795 0x9CBF +0xF796 0x9CC0 +0xF797 0x9CC1 +0xF798 0x9CC2 +0xF799 0x9CC8 +0xF79A 0x9CC9 +0xF79B 0x9CD1 +0xF79C 0x9CD2 +0xF79D 0x9CDA +0xF79E 0x9CDB +0xF79F 0x9CE0 +0xF7A0 0x9CE1 +0xF7A1 0x9CCC +0xF7A2 0x9CCD +0xF7A3 0x9CCE +0xF7A4 0x9CCF +0xF7A5 0x9CD0 +0xF7A6 0x9CD3 +0xF7A7 0x9CD4 +0xF7A8 0x9CD5 +0xF7A9 0x9CD7 +0xF7AA 0x9CD8 +0xF7AB 0x9CD9 +0xF7AC 0x9CDC +0xF7AD 0x9CDD +0xF7AE 0x9CDF +0xF7AF 0x9CE2 +0xF7B0 0x977C +0xF7B1 0x9785 +0xF7B2 0x9791 +0xF7B3 0x9792 +0xF7B4 0x9794 +0xF7B5 0x97AF +0xF7B6 0x97AB +0xF7B7 0x97A3 +0xF7B8 0x97B2 +0xF7B9 0x97B4 +0xF7BA 0x9AB1 +0xF7BB 0x9AB0 +0xF7BC 0x9AB7 +0xF7BD 0x9E58 +0xF7BE 0x9AB6 +0xF7BF 0x9ABA +0xF7C0 0x9ABC +0xF7C1 0x9AC1 +0xF7C2 0x9AC0 +0xF7C3 0x9AC5 +0xF7C4 0x9AC2 +0xF7C5 0x9ACB +0xF7C6 0x9ACC +0xF7C7 0x9AD1 +0xF7C8 0x9B45 +0xF7C9 0x9B43 +0xF7CA 0x9B47 +0xF7CB 0x9B49 +0xF7CC 0x9B48 +0xF7CD 0x9B4D +0xF7CE 0x9B51 +0xF7CF 0x98E8 +0xF7D0 0x990D +0xF7D1 0x992E +0xF7D2 0x9955 +0xF7D3 0x9954 +0xF7D4 0x9ADF +0xF7D5 0x9AE1 +0xF7D6 0x9AE6 +0xF7D7 0x9AEF +0xF7D8 0x9AEB +0xF7D9 0x9AFB +0xF7DA 0x9AED +0xF7DB 0x9AF9 +0xF7DC 0x9B08 +0xF7DD 0x9B0F +0xF7DE 0x9B13 +0xF7DF 0x9B1F +0xF7E0 0x9B23 +0xF7E1 0x9EBD +0xF7E2 0x9EBE +0xF7E3 0x7E3B +0xF7E4 0x9E82 +0xF7E5 0x9E87 +0xF7E6 0x9E88 +0xF7E7 0x9E8B +0xF7E8 0x9E92 +0xF7E9 0x93D6 +0xF7EA 0x9E9D +0xF7EB 0x9E9F +0xF7EC 0x9EDB +0xF7ED 0x9EDC +0xF7EE 0x9EDD +0xF7EF 0x9EE0 +0xF7F0 0x9EDF +0xF7F1 0x9EE2 +0xF7F2 0x9EE9 +0xF7F3 0x9EE7 +0xF7F4 0x9EE5 +0xF7F5 0x9EEA +0xF7F6 0x9EEF +0xF7F7 0x9F22 +0xF7F8 0x9F2C +0xF7F9 0x9F2F +0xF7FA 0x9F39 +0xF7FB 0x9F37 +0xF7FC 0x9F3D +0xF7FD 0x9F3E +0xF7FE 0x9F44 +0xF840 0x9CE3 +0xF841 0x9CE4 +0xF842 0x9CE5 +0xF843 0x9CE6 +0xF844 0x9CE7 +0xF845 0x9CE8 +0xF846 0x9CE9 +0xF847 0x9CEA +0xF848 0x9CEB +0xF849 0x9CEC +0xF84A 0x9CED +0xF84B 0x9CEE +0xF84C 0x9CEF +0xF84D 0x9CF0 +0xF84E 0x9CF1 +0xF84F 0x9CF2 +0xF850 0x9CF3 +0xF851 0x9CF4 +0xF852 0x9CF5 +0xF853 0x9CF6 +0xF854 0x9CF7 +0xF855 0x9CF8 +0xF856 0x9CF9 +0xF857 0x9CFA +0xF858 0x9CFB +0xF859 0x9CFC +0xF85A 0x9CFD +0xF85B 0x9CFE +0xF85C 0x9CFF +0xF85D 0x9D00 +0xF85E 0x9D01 +0xF85F 0x9D02 +0xF860 0x9D03 +0xF861 0x9D04 +0xF862 0x9D05 +0xF863 0x9D06 +0xF864 0x9D07 +0xF865 0x9D08 +0xF866 0x9D09 +0xF867 0x9D0A +0xF868 0x9D0B +0xF869 0x9D0C +0xF86A 0x9D0D +0xF86B 0x9D0E +0xF86C 0x9D0F +0xF86D 0x9D10 +0xF86E 0x9D11 +0xF86F 0x9D12 +0xF870 0x9D13 +0xF871 0x9D14 +0xF872 0x9D15 +0xF873 0x9D16 +0xF874 0x9D17 +0xF875 0x9D18 +0xF876 0x9D19 +0xF877 0x9D1A +0xF878 0x9D1B +0xF879 0x9D1C +0xF87A 0x9D1D +0xF87B 0x9D1E +0xF87C 0x9D1F +0xF87D 0x9D20 +0xF87E 0x9D21 +0xF880 0x9D22 +0xF881 0x9D23 +0xF882 0x9D24 +0xF883 0x9D25 +0xF884 0x9D26 +0xF885 0x9D27 +0xF886 0x9D28 +0xF887 0x9D29 +0xF888 0x9D2A +0xF889 0x9D2B +0xF88A 0x9D2C +0xF88B 0x9D2D +0xF88C 0x9D2E +0xF88D 0x9D2F +0xF88E 0x9D30 +0xF88F 0x9D31 +0xF890 0x9D32 +0xF891 0x9D33 +0xF892 0x9D34 +0xF893 0x9D35 +0xF894 0x9D36 +0xF895 0x9D37 +0xF896 0x9D38 +0xF897 0x9D39 +0xF898 0x9D3A +0xF899 0x9D3B +0xF89A 0x9D3C +0xF89B 0x9D3D +0xF89C 0x9D3E +0xF89D 0x9D3F +0xF89E 0x9D40 +0xF89F 0x9D41 +0xF8A0 0x9D42 +0xF940 0x9D43 +0xF941 0x9D44 +0xF942 0x9D45 +0xF943 0x9D46 +0xF944 0x9D47 +0xF945 0x9D48 +0xF946 0x9D49 +0xF947 0x9D4A +0xF948 0x9D4B +0xF949 0x9D4C +0xF94A 0x9D4D +0xF94B 0x9D4E +0xF94C 0x9D4F +0xF94D 0x9D50 +0xF94E 0x9D51 +0xF94F 0x9D52 +0xF950 0x9D53 +0xF951 0x9D54 +0xF952 0x9D55 +0xF953 0x9D56 +0xF954 0x9D57 +0xF955 0x9D58 +0xF956 0x9D59 +0xF957 0x9D5A +0xF958 0x9D5B +0xF959 0x9D5C +0xF95A 0x9D5D +0xF95B 0x9D5E +0xF95C 0x9D5F +0xF95D 0x9D60 +0xF95E 0x9D61 +0xF95F 0x9D62 +0xF960 0x9D63 +0xF961 0x9D64 +0xF962 0x9D65 +0xF963 0x9D66 +0xF964 0x9D67 +0xF965 0x9D68 +0xF966 0x9D69 +0xF967 0x9D6A +0xF968 0x9D6B +0xF969 0x9D6C +0xF96A 0x9D6D +0xF96B 0x9D6E +0xF96C 0x9D6F +0xF96D 0x9D70 +0xF96E 0x9D71 +0xF96F 0x9D72 +0xF970 0x9D73 +0xF971 0x9D74 +0xF972 0x9D75 +0xF973 0x9D76 +0xF974 0x9D77 +0xF975 0x9D78 +0xF976 0x9D79 +0xF977 0x9D7A +0xF978 0x9D7B +0xF979 0x9D7C +0xF97A 0x9D7D +0xF97B 0x9D7E +0xF97C 0x9D7F +0xF97D 0x9D80 +0xF97E 0x9D81 +0xF980 0x9D82 +0xF981 0x9D83 +0xF982 0x9D84 +0xF983 0x9D85 +0xF984 0x9D86 +0xF985 0x9D87 +0xF986 0x9D88 +0xF987 0x9D89 +0xF988 0x9D8A +0xF989 0x9D8B +0xF98A 0x9D8C +0xF98B 0x9D8D +0xF98C 0x9D8E +0xF98D 0x9D8F +0xF98E 0x9D90 +0xF98F 0x9D91 +0xF990 0x9D92 +0xF991 0x9D93 +0xF992 0x9D94 +0xF993 0x9D95 +0xF994 0x9D96 +0xF995 0x9D97 +0xF996 0x9D98 +0xF997 0x9D99 +0xF998 0x9D9A +0xF999 0x9D9B +0xF99A 0x9D9C +0xF99B 0x9D9D +0xF99C 0x9D9E +0xF99D 0x9D9F +0xF99E 0x9DA0 +0xF99F 0x9DA1 +0xF9A0 0x9DA2 +0xFA40 0x9DA3 +0xFA41 0x9DA4 +0xFA42 0x9DA5 +0xFA43 0x9DA6 +0xFA44 0x9DA7 +0xFA45 0x9DA8 +0xFA46 0x9DA9 +0xFA47 0x9DAA +0xFA48 0x9DAB +0xFA49 0x9DAC +0xFA4A 0x9DAD +0xFA4B 0x9DAE +0xFA4C 0x9DAF +0xFA4D 0x9DB0 +0xFA4E 0x9DB1 +0xFA4F 0x9DB2 +0xFA50 0x9DB3 +0xFA51 0x9DB4 +0xFA52 0x9DB5 +0xFA53 0x9DB6 +0xFA54 0x9DB7 +0xFA55 0x9DB8 +0xFA56 0x9DB9 +0xFA57 0x9DBA +0xFA58 0x9DBB +0xFA59 0x9DBC +0xFA5A 0x9DBD +0xFA5B 0x9DBE +0xFA5C 0x9DBF +0xFA5D 0x9DC0 +0xFA5E 0x9DC1 +0xFA5F 0x9DC2 +0xFA60 0x9DC3 +0xFA61 0x9DC4 +0xFA62 0x9DC5 +0xFA63 0x9DC6 +0xFA64 0x9DC7 +0xFA65 0x9DC8 +0xFA66 0x9DC9 +0xFA67 0x9DCA +0xFA68 0x9DCB +0xFA69 0x9DCC +0xFA6A 0x9DCD +0xFA6B 0x9DCE +0xFA6C 0x9DCF +0xFA6D 0x9DD0 +0xFA6E 0x9DD1 +0xFA6F 0x9DD2 +0xFA70 0x9DD3 +0xFA71 0x9DD4 +0xFA72 0x9DD5 +0xFA73 0x9DD6 +0xFA74 0x9DD7 +0xFA75 0x9DD8 +0xFA76 0x9DD9 +0xFA77 0x9DDA +0xFA78 0x9DDB +0xFA79 0x9DDC +0xFA7A 0x9DDD +0xFA7B 0x9DDE +0xFA7C 0x9DDF +0xFA7D 0x9DE0 +0xFA7E 0x9DE1 +0xFA80 0x9DE2 +0xFA81 0x9DE3 +0xFA82 0x9DE4 +0xFA83 0x9DE5 +0xFA84 0x9DE6 +0xFA85 0x9DE7 +0xFA86 0x9DE8 +0xFA87 0x9DE9 +0xFA88 0x9DEA +0xFA89 0x9DEB +0xFA8A 0x9DEC +0xFA8B 0x9DED +0xFA8C 0x9DEE +0xFA8D 0x9DEF +0xFA8E 0x9DF0 +0xFA8F 0x9DF1 +0xFA90 0x9DF2 +0xFA91 0x9DF3 +0xFA92 0x9DF4 +0xFA93 0x9DF5 +0xFA94 0x9DF6 +0xFA95 0x9DF7 +0xFA96 0x9DF8 +0xFA97 0x9DF9 +0xFA98 0x9DFA +0xFA99 0x9DFB +0xFA9A 0x9DFC +0xFA9B 0x9DFD +0xFA9C 0x9DFE +0xFA9D 0x9DFF +0xFA9E 0x9E00 +0xFA9F 0x9E01 +0xFAA0 0x9E02 +0xFB40 0x9E03 +0xFB41 0x9E04 +0xFB42 0x9E05 +0xFB43 0x9E06 +0xFB44 0x9E07 +0xFB45 0x9E08 +0xFB46 0x9E09 +0xFB47 0x9E0A +0xFB48 0x9E0B +0xFB49 0x9E0C +0xFB4A 0x9E0D +0xFB4B 0x9E0E +0xFB4C 0x9E0F +0xFB4D 0x9E10 +0xFB4E 0x9E11 +0xFB4F 0x9E12 +0xFB50 0x9E13 +0xFB51 0x9E14 +0xFB52 0x9E15 +0xFB53 0x9E16 +0xFB54 0x9E17 +0xFB55 0x9E18 +0xFB56 0x9E19 +0xFB57 0x9E1A +0xFB58 0x9E1B +0xFB59 0x9E1C +0xFB5A 0x9E1D +0xFB5B 0x9E1E +0xFB5C 0x9E24 +0xFB5D 0x9E27 +0xFB5E 0x9E2E +0xFB5F 0x9E30 +0xFB60 0x9E34 +0xFB61 0x9E3B +0xFB62 0x9E3C +0xFB63 0x9E40 +0xFB64 0x9E4D +0xFB65 0x9E50 +0xFB66 0x9E52 +0xFB67 0x9E53 +0xFB68 0x9E54 +0xFB69 0x9E56 +0xFB6A 0x9E59 +0xFB6B 0x9E5D +0xFB6C 0x9E5F +0xFB6D 0x9E60 +0xFB6E 0x9E61 +0xFB6F 0x9E62 +0xFB70 0x9E65 +0xFB71 0x9E6E +0xFB72 0x9E6F +0xFB73 0x9E72 +0xFB74 0x9E74 +0xFB75 0x9E75 +0xFB76 0x9E76 +0xFB77 0x9E77 +0xFB78 0x9E78 +0xFB79 0x9E79 +0xFB7A 0x9E7A +0xFB7B 0x9E7B +0xFB7C 0x9E7C +0xFB7D 0x9E7D +0xFB7E 0x9E80 +0xFB80 0x9E81 +0xFB81 0x9E83 +0xFB82 0x9E84 +0xFB83 0x9E85 +0xFB84 0x9E86 +0xFB85 0x9E89 +0xFB86 0x9E8A +0xFB87 0x9E8C +0xFB88 0x9E8D +0xFB89 0x9E8E +0xFB8A 0x9E8F +0xFB8B 0x9E90 +0xFB8C 0x9E91 +0xFB8D 0x9E94 +0xFB8E 0x9E95 +0xFB8F 0x9E96 +0xFB90 0x9E97 +0xFB91 0x9E98 +0xFB92 0x9E99 +0xFB93 0x9E9A +0xFB94 0x9E9B +0xFB95 0x9E9C +0xFB96 0x9E9E +0xFB97 0x9EA0 +0xFB98 0x9EA1 +0xFB99 0x9EA2 +0xFB9A 0x9EA3 +0xFB9B 0x9EA4 +0xFB9C 0x9EA5 +0xFB9D 0x9EA7 +0xFB9E 0x9EA8 +0xFB9F 0x9EA9 +0xFBA0 0x9EAA +0xFC40 0x9EAB +0xFC41 0x9EAC +0xFC42 0x9EAD +0xFC43 0x9EAE +0xFC44 0x9EAF +0xFC45 0x9EB0 +0xFC46 0x9EB1 +0xFC47 0x9EB2 +0xFC48 0x9EB3 +0xFC49 0x9EB5 +0xFC4A 0x9EB6 +0xFC4B 0x9EB7 +0xFC4C 0x9EB9 +0xFC4D 0x9EBA +0xFC4E 0x9EBC +0xFC4F 0x9EBF +0xFC50 0x9EC0 +0xFC51 0x9EC1 +0xFC52 0x9EC2 +0xFC53 0x9EC3 +0xFC54 0x9EC5 +0xFC55 0x9EC6 +0xFC56 0x9EC7 +0xFC57 0x9EC8 +0xFC58 0x9ECA +0xFC59 0x9ECB +0xFC5A 0x9ECC +0xFC5B 0x9ED0 +0xFC5C 0x9ED2 +0xFC5D 0x9ED3 +0xFC5E 0x9ED5 +0xFC5F 0x9ED6 +0xFC60 0x9ED7 +0xFC61 0x9ED9 +0xFC62 0x9EDA +0xFC63 0x9EDE +0xFC64 0x9EE1 +0xFC65 0x9EE3 +0xFC66 0x9EE4 +0xFC67 0x9EE6 +0xFC68 0x9EE8 +0xFC69 0x9EEB +0xFC6A 0x9EEC +0xFC6B 0x9EED +0xFC6C 0x9EEE +0xFC6D 0x9EF0 +0xFC6E 0x9EF1 +0xFC6F 0x9EF2 +0xFC70 0x9EF3 +0xFC71 0x9EF4 +0xFC72 0x9EF5 +0xFC73 0x9EF6 +0xFC74 0x9EF7 +0xFC75 0x9EF8 +0xFC76 0x9EFA +0xFC77 0x9EFD +0xFC78 0x9EFF +0xFC79 0x9F00 +0xFC7A 0x9F01 +0xFC7B 0x9F02 +0xFC7C 0x9F03 +0xFC7D 0x9F04 +0xFC7E 0x9F05 +0xFC80 0x9F06 +0xFC81 0x9F07 +0xFC82 0x9F08 +0xFC83 0x9F09 +0xFC84 0x9F0A +0xFC85 0x9F0C +0xFC86 0x9F0F +0xFC87 0x9F11 +0xFC88 0x9F12 +0xFC89 0x9F14 +0xFC8A 0x9F15 +0xFC8B 0x9F16 +0xFC8C 0x9F18 +0xFC8D 0x9F1A +0xFC8E 0x9F1B +0xFC8F 0x9F1C +0xFC90 0x9F1D +0xFC91 0x9F1E +0xFC92 0x9F1F +0xFC93 0x9F21 +0xFC94 0x9F23 +0xFC95 0x9F24 +0xFC96 0x9F25 +0xFC97 0x9F26 +0xFC98 0x9F27 +0xFC99 0x9F28 +0xFC9A 0x9F29 +0xFC9B 0x9F2A +0xFC9C 0x9F2B +0xFC9D 0x9F2D +0xFC9E 0x9F2E +0xFC9F 0x9F30 +0xFCA0 0x9F31 +0xFD40 0x9F32 +0xFD41 0x9F33 +0xFD42 0x9F34 +0xFD43 0x9F35 +0xFD44 0x9F36 +0xFD45 0x9F38 +0xFD46 0x9F3A +0xFD47 0x9F3C +0xFD48 0x9F3F +0xFD49 0x9F40 +0xFD4A 0x9F41 +0xFD4B 0x9F42 +0xFD4C 0x9F43 +0xFD4D 0x9F45 +0xFD4E 0x9F46 +0xFD4F 0x9F47 +0xFD50 0x9F48 +0xFD51 0x9F49 +0xFD52 0x9F4A +0xFD53 0x9F4B +0xFD54 0x9F4C +0xFD55 0x9F4D +0xFD56 0x9F4E +0xFD57 0x9F4F +0xFD58 0x9F52 +0xFD59 0x9F53 +0xFD5A 0x9F54 +0xFD5B 0x9F55 +0xFD5C 0x9F56 +0xFD5D 0x9F57 +0xFD5E 0x9F58 +0xFD5F 0x9F59 +0xFD60 0x9F5A +0xFD61 0x9F5B +0xFD62 0x9F5C +0xFD63 0x9F5D +0xFD64 0x9F5E +0xFD65 0x9F5F +0xFD66 0x9F60 +0xFD67 0x9F61 +0xFD68 0x9F62 +0xFD69 0x9F63 +0xFD6A 0x9F64 +0xFD6B 0x9F65 +0xFD6C 0x9F66 +0xFD6D 0x9F67 +0xFD6E 0x9F68 +0xFD6F 0x9F69 +0xFD70 0x9F6A +0xFD71 0x9F6B +0xFD72 0x9F6C +0xFD73 0x9F6D +0xFD74 0x9F6E +0xFD75 0x9F6F +0xFD76 0x9F70 +0xFD77 0x9F71 +0xFD78 0x9F72 +0xFD79 0x9F73 +0xFD7A 0x9F74 +0xFD7B 0x9F75 +0xFD7C 0x9F76 +0xFD7D 0x9F77 +0xFD7E 0x9F78 +0xFD80 0x9F79 +0xFD81 0x9F7A +0xFD82 0x9F7B +0xFD83 0x9F7C +0xFD84 0x9F7D +0xFD85 0x9F7E +0xFD86 0x9F81 +0xFD87 0x9F82 +0xFD88 0x9F8D +0xFD89 0x9F8E +0xFD8A 0x9F8F +0xFD8B 0x9F90 +0xFD8C 0x9F91 +0xFD8D 0x9F92 +0xFD8E 0x9F93 +0xFD8F 0x9F94 +0xFD90 0x9F95 +0xFD91 0x9F96 +0xFD92 0x9F97 +0xFD93 0x9F98 +0xFD94 0x9F9C +0xFD95 0x9F9D +0xFD96 0x9F9E +0xFD97 0x9FA1 +0xFD98 0x9FA2 +0xFD99 0x9FA3 +0xFD9A 0x9FA4 +0xFD9B 0x9FA5 +0xFD9C 0xF92C +0xFD9D 0xF979 +0xFD9E 0xF995 +0xFD9F 0xF9E7 +0xFDA0 0xF9F1 +0xFE40 0xFA0C +0xFE41 0xFA0D +0xFE42 0xFA0E +0xFE43 0xFA0F +0xFE44 0xFA11 +0xFE45 0xFA13 +0xFE46 0xFA14 +0xFE47 0xFA18 +0xFE48 0xFA1F +0xFE49 0xFA20 +0xFE4A 0xFA21 +0xFE4B 0xFA23 +0xFE4C 0xFA24 +0xFE4D 0xFA27 +0xFE4E 0xFA28 +0xFE4F 0xFA29 diff --git a/3rdPartner/libiconv/tests/Georgian-Academy.TXT b/3rdPartner/libiconv/tests/Georgian-Academy.TXT new file mode 100644 index 0000000..bfd9896 --- /dev/null +++ b/3rdPartner/libiconv/tests/Georgian-Academy.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8A 0x0160 +0x8B 0x2039 +0x8C 0x0152 +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9A 0x0161 +0x9B 0x203A +0x9C 0x0153 +0x9D 0x009D +0x9E 0x009E +0x9F 0x0178 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x10D0 +0xC1 0x10D1 +0xC2 0x10D2 +0xC3 0x10D3 +0xC4 0x10D4 +0xC5 0x10D5 +0xC6 0x10D6 +0xC7 0x10D7 +0xC8 0x10D8 +0xC9 0x10D9 +0xCA 0x10DA +0xCB 0x10DB +0xCC 0x10DC +0xCD 0x10DD +0xCE 0x10DE +0xCF 0x10DF +0xD0 0x10E0 +0xD1 0x10E1 +0xD2 0x10E2 +0xD3 0x10E3 +0xD4 0x10E4 +0xD5 0x10E5 +0xD6 0x10E6 +0xD7 0x10E7 +0xD8 0x10E8 +0xD9 0x10E9 +0xDA 0x10EA +0xDB 0x10EB +0xDC 0x10EC +0xDD 0x10ED +0xDE 0x10EE +0xDF 0x10EF +0xE0 0x10F0 +0xE1 0x10F1 +0xE2 0x10F2 +0xE3 0x10F3 +0xE4 0x10F4 +0xE5 0x10F5 +0xE6 0x10F6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/Georgian-PS.TXT b/3rdPartner/libiconv/tests/Georgian-PS.TXT new file mode 100644 index 0000000..b14c19f --- /dev/null +++ b/3rdPartner/libiconv/tests/Georgian-PS.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x201A +0x83 0x0192 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x02C6 +0x89 0x2030 +0x8A 0x0160 +0x8B 0x2039 +0x8C 0x0152 +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x02DC +0x99 0x2122 +0x9A 0x0161 +0x9B 0x203A +0x9C 0x0153 +0x9D 0x009D +0x9E 0x009E +0x9F 0x0178 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x10D0 +0xC1 0x10D1 +0xC2 0x10D2 +0xC3 0x10D3 +0xC4 0x10D4 +0xC5 0x10D5 +0xC6 0x10D6 +0xC7 0x10F1 +0xC8 0x10D7 +0xC9 0x10D8 +0xCA 0x10D9 +0xCB 0x10DA +0xCC 0x10DB +0xCD 0x10DC +0xCE 0x10F2 +0xCF 0x10DD +0xD0 0x10DE +0xD1 0x10DF +0xD2 0x10E0 +0xD3 0x10E1 +0xD4 0x10E2 +0xD5 0x10F3 +0xD6 0x10E3 +0xD7 0x10E4 +0xD8 0x10E5 +0xD9 0x10E6 +0xDA 0x10E7 +0xDB 0x10E8 +0xDC 0x10E9 +0xDD 0x10EA +0xDE 0x10EB +0xDF 0x10EC +0xE0 0x10ED +0xE1 0x10EE +0xE2 0x10F4 +0xE3 0x10EF +0xE4 0x10F0 +0xE5 0x10F5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/HP-ROMAN8.TXT b/3rdPartner/libiconv/tests/HP-ROMAN8.TXT new file mode 100644 index 0000000..8f1cc5d --- /dev/null +++ b/3rdPartner/libiconv/tests/HP-ROMAN8.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00C0 +0xA2 0x00C2 +0xA3 0x00C8 +0xA4 0x00CA +0xA5 0x00CB +0xA6 0x00CE +0xA7 0x00CF +0xA8 0x00B4 +0xA9 0x02CB +0xAA 0x02C6 +0xAB 0x00A8 +0xAC 0x02DC +0xAD 0x00D9 +0xAE 0x00DB +0xAF 0x20A4 +0xB0 0x00AF +0xB1 0x00DD +0xB2 0x00FD +0xB3 0x00B0 +0xB4 0x00C7 +0xB5 0x00E7 +0xB6 0x00D1 +0xB7 0x00F1 +0xB8 0x00A1 +0xB9 0x00BF +0xBA 0x00A4 +0xBB 0x00A3 +0xBC 0x00A5 +0xBD 0x00A7 +0xBE 0x0192 +0xBF 0x00A2 +0xC0 0x00E2 +0xC1 0x00EA +0xC2 0x00F4 +0xC3 0x00FB +0xC4 0x00E1 +0xC5 0x00E9 +0xC6 0x00F3 +0xC7 0x00FA +0xC8 0x00E0 +0xC9 0x00E8 +0xCA 0x00F2 +0xCB 0x00F9 +0xCC 0x00E4 +0xCD 0x00EB +0xCE 0x00F6 +0xCF 0x00FC +0xD0 0x00C5 +0xD1 0x00EE +0xD2 0x00D8 +0xD3 0x00C6 +0xD4 0x00E5 +0xD5 0x00ED +0xD6 0x00F8 +0xD7 0x00E6 +0xD8 0x00C4 +0xD9 0x00EC +0xDA 0x00D6 +0xDB 0x00DC +0xDC 0x00C9 +0xDD 0x00EF +0xDE 0x00DF +0xDF 0x00D4 +0xE0 0x00C1 +0xE1 0x00C3 +0xE2 0x00E3 +0xE3 0x00D0 +0xE4 0x00F0 +0xE5 0x00CD +0xE6 0x00CC +0xE7 0x00D3 +0xE8 0x00D2 +0xE9 0x00D5 +0xEA 0x00F5 +0xEB 0x0160 +0xEC 0x0161 +0xED 0x00DA +0xEE 0x0178 +0xEF 0x00FF +0xF0 0x00DE +0xF1 0x00FE +0xF2 0x00B7 +0xF3 0x00B5 +0xF4 0x00B6 +0xF5 0x00BE +0xF6 0x2014 +0xF7 0x00BC +0xF8 0x00BD +0xF9 0x00AA +0xFA 0x00BA +0xFB 0x00AB +0xFC 0x25A0 +0xFD 0x00BB +0xFE 0x00B1 diff --git a/3rdPartner/libiconv/tests/HZ-snippet b/3rdPartner/libiconv/tests/HZ-snippet new file mode 100644 index 0000000..29377c0 --- /dev/null +++ b/3rdPartner/libiconv/tests/HZ-snippet @@ -0,0 +1,2 @@ +Chinese (~{VPND~},~{FUM(;0~},~{::So~}) ~{Dc:C~} + GB -- ~{T*Fx~} ~{?*7"~} diff --git a/3rdPartner/libiconv/tests/HZ-snippet.UTF-8 b/3rdPartner/libiconv/tests/HZ-snippet.UTF-8 new file mode 100644 index 0000000..9f5f8f2 --- /dev/null +++ b/3rdPartner/libiconv/tests/HZ-snippet.UTF-8 @@ -0,0 +1,2 @@ +Chinese (中文,普通话,汉语) 你好 + GB -- 元气 开发 diff --git a/3rdPartner/libiconv/tests/IBM-037.TXT b/3rdPartner/libiconv/tests/IBM-037.TXT new file mode 100644 index 0000000..bf34f2a --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-037.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1025.TXT b/3rdPartner/libiconv/tests/IBM-1025.TXT new file mode 100644 index 0000000..be2a7e6 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1025.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1026.TXT b/3rdPartner/libiconv/tests/IBM-1026.TXT new file mode 100644 index 0000000..9f48604 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1026.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x007D +0x8D 0x0060 +0x8E 0x00A6 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x005D +0xAD 0x0024 +0xAE 0x0040 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1047.TXT b/3rdPartner/libiconv/tests/IBM-1047.TXT new file mode 100644 index 0000000..d6818cf --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1047.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x005B +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00AC +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00DD +0xBB 0x00A8 +0xBC 0x00AF +0xBD 0x005D +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1097.TXT b/3rdPartner/libiconv/tests/IBM-1097.TXT new file mode 100644 index 0000000..b67a074 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1097.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x060C +0x43 0x064B +0x44 0xFE81 +0x45 0xFE82 +0x46 0xF8FA +0x47 0xFE8D +0x48 0xFE8E +0x49 0xF8FB +0x4A 0x00A4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0xFE80 +0x52 0xFE83 +0x53 0xFE84 +0x54 0xF8F9 +0x55 0xFE85 +0x56 0xFE8B +0x57 0xFE8F +0x58 0xFE91 +0x59 0xFB56 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0xFB58 +0x63 0xFE95 +0x64 0xFE97 +0x65 0xFE99 +0x66 0xFE9B +0x67 0xFE9D +0x68 0xFE9F +0x69 0xFB7A +0x6A 0x061B +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0xFB7C +0x71 0xFEA1 +0x72 0xFEA3 +0x73 0xFEA5 +0x74 0xFEA7 +0x75 0xFEA9 +0x76 0xFEAB +0x77 0xFEAD +0x78 0xFEAF +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0xFB8A +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0xFEB1 +0x8D 0xFEB3 +0x8E 0xFEB5 +0x8F 0xFEB7 +0x90 0xFEB9 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0xFEBB +0x9B 0xFEBD +0x9C 0xFEBF +0x9D 0xFEC1 +0x9E 0xFEC3 +0x9F 0xFEC5 +0xA0 0xFEC7 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0xFEC9 +0xAB 0xFECA +0xAC 0xFECB +0xAD 0xFECC +0xAE 0xFECD +0xAF 0xFECE +0xB0 0xFECF +0xB1 0xFED0 +0xB2 0xFED1 +0xB3 0xFED3 +0xB4 0xFED5 +0xB5 0xFED7 +0xB6 0xFB8E +0xB7 0xFEDB +0xB8 0xFB92 +0xB9 0xFB94 +0xBA 0x005B +0xBB 0x005D +0xBC 0xFEDD +0xBD 0xFEDF +0xBE 0xFEE1 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0xFEE3 +0xCC 0xFEE5 +0xCD 0xFEE7 +0xCE 0xFEED +0xCF 0xFEE9 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0xFEEB +0xDB 0xFEEC +0xDC 0xFBA4 +0xDD 0xFBFC +0xDE 0xFBFD +0xDF 0xFBFE +0xE0 0x005C +0xE1 0x061F +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0640 +0xEB 0x06F0 +0xEC 0x06F1 +0xED 0x06F2 +0xEE 0x06F3 +0xEF 0x06F4 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x06F5 +0xFB 0x06F6 +0xFC 0x06F7 +0xFD 0x06F8 +0xFE 0x06F9 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1112.TXT b/3rdPartner/libiconv/tests/IBM-1112.TXT new file mode 100644 index 0000000..e66d0be --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1112.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0161 +0x43 0x00E4 +0x44 0x0105 +0x45 0x012F +0x46 0x016B +0x47 0x00E5 +0x48 0x0113 +0x49 0x017E +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x0117 +0x54 0x010D +0x55 0x0173 +0x56 0x201E +0x57 0x201C +0x58 0x0123 +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0160 +0x63 0x00C4 +0x64 0x0104 +0x65 0x012E +0x66 0x016A +0x67 0x00C5 +0x68 0x0112 +0x69 0x017D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x0118 +0x73 0x0116 +0x74 0x010C +0x75 0x0172 +0x76 0x012A +0x77 0x013B +0x78 0x0122 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0101 +0x8D 0x017C +0x8E 0x0144 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0156 +0x9B 0x0157 +0x9C 0x00E6 +0x9D 0x0137 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x201D +0xAB 0x017A +0xAC 0x0100 +0xAD 0x017B +0xAE 0x0143 +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x012B +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x0179 +0xBD 0x0136 +0xBE 0x013C +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x014D +0xCC 0x00F6 +0xCD 0x0146 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x0107 +0xDC 0x00FC +0xDD 0x0142 +0xDE 0x015B +0xDF 0x2019 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x014C +0xEC 0x00D6 +0xED 0x0145 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x0106 +0xFC 0x00DC +0xFD 0x0141 +0xFE 0x015A +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1122.TXT b/3rdPartner/libiconv/tests/IBM-1122.TXT new file mode 100644 index 0000000..7386558 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1122.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0161 +0x8D 0x00FD +0x8E 0x017E +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0160 +0xAD 0x00DD +0xAE 0x017D +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1123.TXT b/3rdPartner/libiconv/tests/IBM-1123.TXT new file mode 100644 index 0000000..3cad5e4 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1123.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0491 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0490 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1130.TXT b/3rdPartner/libiconv/tests/IBM-1130.TXT new file mode 100644 index 0000000..104d5c9 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1130.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x0103 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x0303 +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0102 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x20AB +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0111 +0x8D 0x0309 +0x8E 0x0300 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x0152 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0110 +0xAD 0x0323 +0xAE 0x0301 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x01B0 +0xCE 0x00F3 +0xCF 0x01A1 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x01AF +0xEE 0x00D3 +0xEF 0x01A0 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1132.TXT b/3rdPartner/libiconv/tests/IBM-1132.TXT new file mode 100644 index 0000000..425fcd4 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1132.TXT @@ -0,0 +1,230 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E81 +0x43 0x0E82 +0x44 0x0E84 +0x45 0x0E87 +0x46 0x0E88 +0x47 0x0EAA +0x48 0x0E8A +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x52 0x0E8D +0x53 0x0E94 +0x54 0x0E95 +0x55 0x0E96 +0x56 0x0E97 +0x57 0x0E99 +0x58 0x0E9A +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E9B +0x63 0x0E9C +0x64 0x0E9D +0x65 0x0E9E +0x66 0x0E9F +0x67 0x0EA1 +0x68 0x0EA2 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x20AD +0x72 0x0EA3 +0x73 0x0EA5 +0x74 0x0EA7 +0x75 0x0EAB +0x76 0x0EAD +0x77 0x0EAE +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8C 0x0EAF +0x8D 0x0EB0 +0x8E 0x0EB2 +0x8F 0x0EB3 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0EB4 +0x9B 0x0EB5 +0x9C 0x0EB6 +0x9D 0x0EB7 +0x9E 0x0EB8 +0x9F 0x0EB9 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0EBC +0xAB 0x0EB1 +0xAC 0x0EBB +0xAD 0x0EBD +0xB0 0x0ED0 +0xB1 0x0ED1 +0xB2 0x0ED2 +0xB3 0x0ED3 +0xB4 0x0ED4 +0xB5 0x0ED5 +0xB6 0x0ED6 +0xB7 0x0ED7 +0xB8 0x0ED8 +0xB9 0x0ED9 +0xBB 0x0EC0 +0xBC 0x0EC1 +0xBD 0x0EC2 +0xBE 0x0EC3 +0xBF 0x0EC4 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCB 0x0EC8 +0xCC 0x0EC9 +0xCD 0x0ECA +0xCE 0x0ECB +0xCF 0x0ECC +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0ECD +0xDB 0x0EC6 +0xDD 0x0EDC +0xDE 0x0EDD +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1137.TXT b/3rdPartner/libiconv/tests/IBM-1137.TXT new file mode 100644 index 0000000..99126cd --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1137.TXT @@ -0,0 +1,254 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0901 +0x43 0x0902 +0x44 0x0903 +0x45 0x0905 +0x46 0x0906 +0x47 0x0907 +0x48 0x0908 +0x49 0x0909 +0x4A 0x090A +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x090B +0x52 0x090C +0x53 0x090D +0x54 0x090E +0x55 0x090F +0x56 0x0910 +0x57 0x0911 +0x58 0x0912 +0x59 0x0913 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0914 +0x63 0x0915 +0x64 0x0916 +0x65 0x0917 +0x66 0x0918 +0x67 0x0919 +0x68 0x091A +0x69 0x091B +0x6A 0x091C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x091D +0x71 0x091E +0x72 0x091F +0x73 0x0920 +0x74 0x0921 +0x75 0x0922 +0x76 0x0923 +0x77 0x0924 +0x78 0x0925 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0926 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0927 +0x8B 0x0928 +0x8C 0x092A +0x8D 0x092B +0x8E 0x092C +0x8F 0x092D +0x90 0x092E +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x092F +0x9B 0x0930 +0x9C 0x0932 +0x9D 0x0933 +0x9E 0x0935 +0x9F 0x0936 +0xA0 0x200C +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0937 +0xAB 0x0938 +0xAC 0x0939 +0xAD 0x005B +0xAE 0x093C +0xAF 0x093D +0xB0 0x093E +0xB1 0x093F +0xB2 0x0940 +0xB3 0x0941 +0xB4 0x0942 +0xB5 0x0943 +0xB6 0x0944 +0xB7 0x0945 +0xB8 0x0946 +0xB9 0x0947 +0xBA 0x0948 +0xBB 0x0949 +0xBC 0x094A +0xBD 0x005D +0xBE 0x094B +0xBF 0x094C +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x094D +0xCB 0x0950 +0xCC 0x0951 +0xCD 0x0952 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0960 +0xDB 0x0961 +0xDC 0x0962 +0xDD 0x0963 +0xDE 0x0964 +0xDF 0x0965 +0xE0 0x005C +0xE1 0x200D +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0966 +0xEB 0x0967 +0xEC 0x0968 +0xED 0x0969 +0xEE 0x096A +0xEF 0x096B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x096C +0xFB 0x096D +0xFC 0x096E +0xFD 0x096F +0xFE 0x0970 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1140.TXT b/3rdPartner/libiconv/tests/IBM-1140.TXT new file mode 100644 index 0000000..d38cbe4 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1140.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1141.TXT b/3rdPartner/libiconv/tests/IBM-1141.TXT new file mode 100644 index 0000000..ed22b57 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1141.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00C4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x007E +0x5A 0x00DC +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x005B +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00DF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00FC +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007D +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00D6 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005C +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x005D +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1142.TXT b/3rdPartner/libiconv/tests/IBM-1142.TXT new file mode 100644 index 0000000..15de29c --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1142.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0023 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A6 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C6 +0x7C 0x00D8 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0040 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007B +0x9D 0x00B8 +0x9E 0x005B +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E6 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1143.TXT b/3rdPartner/libiconv/tests/IBM-1143.TXT new file mode 100644 index 0000000..db52662 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1143.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1144.TXT b/3rdPartner/libiconv/tests/IBM-1144.TXT new file mode 100644 index 0000000..f199b92 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1144.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x007B +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x005D +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x007E +0x59 0x00DF +0x5A 0x00E9 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F2 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F9 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00EC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E0 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00A6 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x0060 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1145.TXT b/3rdPartner/libiconv/tests/IBM-1145.TXT new file mode 100644 index 0000000..0ea8e87 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1145.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00A6 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x0023 +0x6A 0x00F1 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00D1 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x0021 +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1146.TXT b/3rdPartner/libiconv/tests/IBM-1146.TXT new file mode 100644 index 0000000..242b53a --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1146.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0024 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x00A3 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00AF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x005B +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x005D +0xBC 0x007E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1147.TXT b/3rdPartner/libiconv/tests/IBM-1147.TXT new file mode 100644 index 0000000..6669c03 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1147.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0040 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x007B +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A7 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F9 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00B5 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00E0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x0060 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005D +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E9 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00A6 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1148.TXT b/3rdPartner/libiconv/tests/IBM-1148.TXT new file mode 100644 index 0000000..c25322a --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1148.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1149.TXT b/3rdPartner/libiconv/tests/IBM-1149.TXT new file mode 100644 index 0000000..ccaad96 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1149.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DE +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00C6 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00D6 +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F0 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00D0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0060 +0x8D 0x00FD +0x8E 0x007B +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007D +0x9D 0x00B8 +0x9E 0x005D +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0040 +0xAD 0x00DD +0xAE 0x005B +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x005C +0xBF 0x00D7 +0xC0 0x00FE +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E6 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00B4 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005E +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1153.TXT b/3rdPartner/libiconv/tests/IBM-1153.TXT new file mode 100644 index 0000000..cab4652 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1153.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x20AC +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x00DD +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1154.TXT b/3rdPartner/libiconv/tests/IBM-1154.TXT new file mode 100644 index 0000000..ec1f6a1 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1154.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1155.TXT b/3rdPartner/libiconv/tests/IBM-1155.TXT new file mode 100644 index 0000000..e1046e6 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1155.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x007D +0x8D 0x0060 +0x8E 0x00A6 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x005D +0xAD 0x0024 +0xAE 0x0040 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1156.TXT b/3rdPartner/libiconv/tests/IBM-1156.TXT new file mode 100644 index 0000000..2816dc1 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1156.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0161 +0x43 0x00E4 +0x44 0x0105 +0x45 0x012F +0x46 0x016B +0x47 0x00E5 +0x48 0x0113 +0x49 0x017E +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x0117 +0x54 0x010D +0x55 0x0173 +0x56 0x201E +0x57 0x201C +0x58 0x0123 +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0160 +0x63 0x00C4 +0x64 0x0104 +0x65 0x012E +0x66 0x016A +0x67 0x00C5 +0x68 0x0112 +0x69 0x017D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x0118 +0x73 0x0116 +0x74 0x010C +0x75 0x0172 +0x76 0x012A +0x77 0x013B +0x78 0x0122 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0101 +0x8D 0x017C +0x8E 0x0144 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0156 +0x9B 0x0157 +0x9C 0x00E6 +0x9D 0x0137 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x201D +0xAB 0x017A +0xAC 0x0100 +0xAD 0x017B +0xAE 0x0143 +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x012B +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x0179 +0xBD 0x0136 +0xBE 0x013C +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x014D +0xCC 0x00F6 +0xCD 0x0146 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x0107 +0xDC 0x00FC +0xDD 0x0142 +0xDE 0x015B +0xDF 0x2019 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x014C +0xEC 0x00D6 +0xED 0x0145 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x0106 +0xFC 0x00DC +0xFD 0x0141 +0xFE 0x015A +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1157.TXT b/3rdPartner/libiconv/tests/IBM-1157.TXT new file mode 100644 index 0000000..57801a5 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1157.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0161 +0x8D 0x00FD +0x8E 0x017E +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0160 +0xAD 0x00DD +0xAE 0x017D +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1158.TXT b/3rdPartner/libiconv/tests/IBM-1158.TXT new file mode 100644 index 0000000..7ef39fb --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1158.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0491 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0490 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1160.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/IBM-1160.IRREVERSIBLE.TXT new file mode 100644 index 0000000..494fef2 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1160.IRREVERSIBLE.TXT @@ -0,0 +1,4 @@ +0x51 0x0E48 +0xCA 0x0E49 +0xE1 0x0E4A +0xFD 0x0E4B diff --git a/3rdPartner/libiconv/tests/IBM-1160.TXT b/3rdPartner/libiconv/tests/IBM-1160.TXT new file mode 100644 index 0000000..fe902e5 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1160.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E01 +0x43 0x0E02 +0x44 0x0E03 +0x45 0x0E04 +0x46 0x0E05 +0x47 0x0E06 +0x48 0x0E07 +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x0E48 +0x52 0x0E08 +0x53 0x0E09 +0x54 0x0E0A +0x55 0x0E0B +0x56 0x0E0C +0x57 0x0E0D +0x58 0x0E0E +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E0F +0x63 0x0E10 +0x64 0x0E11 +0x65 0x0E12 +0x66 0x0E13 +0x67 0x0E14 +0x68 0x0E15 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x0E3F +0x71 0x0E4E +0x72 0x0E16 +0x73 0x0E17 +0x74 0x0E18 +0x75 0x0E19 +0x76 0x0E1A +0x77 0x0E1B +0x78 0x0E1C +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0E4F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0E1D +0x8B 0x0E1E +0x8C 0x0E1F +0x8D 0x0E20 +0x8E 0x0E21 +0x8F 0x0E22 +0x90 0x0E5A +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0E23 +0x9B 0x0E24 +0x9C 0x0E25 +0x9D 0x0E26 +0x9E 0x0E27 +0x9F 0x0E28 +0xA0 0x0E5B +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0E29 +0xAB 0x0E2A +0xAC 0x0E2B +0xAD 0x0E2C +0xAE 0x0E2D +0xAF 0x0E2E +0xB0 0x0E50 +0xB1 0x0E51 +0xB2 0x0E52 +0xB3 0x0E53 +0xB4 0x0E54 +0xB5 0x0E55 +0xB6 0x0E56 +0xB7 0x0E57 +0xB8 0x0E58 +0xB9 0x0E59 +0xBA 0x0E2F +0xBB 0x0E30 +0xBC 0x0E31 +0xBD 0x0E32 +0xBE 0x0E33 +0xBF 0x0E34 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0E49 +0xCB 0x0E35 +0xCC 0x0E36 +0xCD 0x0E37 +0xCE 0x0E38 +0xCF 0x0E39 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0E3A +0xDB 0x0E40 +0xDC 0x0E41 +0xDD 0x0E42 +0xDE 0x0E43 +0xDF 0x0E44 +0xE0 0x005C +0xE1 0x0E4A +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0E45 +0xEB 0x0E46 +0xEC 0x0E47 +0xED 0x0E48 +0xEE 0x0E49 +0xEF 0x0E4A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0E4B +0xFB 0x0E4C +0xFC 0x0E4D +0xFD 0x0E4B +0xFE 0x20AC +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1164.TXT b/3rdPartner/libiconv/tests/IBM-1164.TXT new file mode 100644 index 0000000..7015807 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1164.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x0103 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x0303 +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0102 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x20AB +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0111 +0x8D 0x0309 +0x8E 0x0300 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x0152 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0110 +0xAD 0x0323 +0xAE 0x0301 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x01B0 +0xCE 0x00F3 +0xCF 0x01A1 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x01AF +0xEE 0x00D3 +0xEF 0x01A0 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1165.TXT b/3rdPartner/libiconv/tests/IBM-1165.TXT new file mode 100644 index 0000000..e26969a --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1165.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x00DD +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x00A8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x20AC +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x005B +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x005D +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-1166.TXT b/3rdPartner/libiconv/tests/IBM-1166.TXT new file mode 100644 index 0000000..064269a --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-1166.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x04D9 +0x43 0x0493 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x049B +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x04A3 +0x52 0x04E9 +0x53 0x04B1 +0x54 0x04AF +0x55 0x045E +0x56 0x04BB +0x57 0x042A +0x58 0x2116 +0x59 0x04D8 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0492 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x049A +0x68 0x0408 +0x69 0x04A2 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x04E8 +0x71 0x04B0 +0x72 0x04AE +0x73 0x00AD +0x74 0x040E +0x75 0x04BA +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-12712.TXT b/3rdPartner/libiconv/tests/IBM-12712.TXT new file mode 100644 index 0000000..8310f89 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-12712.TXT @@ -0,0 +1,227 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x05D0 +0x42 0x05D1 +0x43 0x05D2 +0x44 0x05D3 +0x45 0x05D4 +0x46 0x05D5 +0x47 0x05D6 +0x48 0x05D7 +0x49 0x05D8 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x05D9 +0x52 0x05DA +0x53 0x05DB +0x54 0x05DC +0x55 0x05DD +0x56 0x05DE +0x57 0x05DF +0x58 0x05E0 +0x59 0x05E1 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x05E2 +0x63 0x05E3 +0x64 0x05E4 +0x65 0x05E5 +0x66 0x05E6 +0x67 0x05E7 +0x68 0x05E8 +0x69 0x05E9 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x05EA +0x74 0x00A0 +0x78 0x2017 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9C 0x20AC +0x9D 0x00B8 +0x9E 0x20AA +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x2022 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x203E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x202D +0xDC 0x202E +0xDD 0x202C +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x202A +0xFC 0x202B +0xFD 0x200E +0xFE 0x200F +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-16804.TXT b/3rdPartner/libiconv/tests/IBM-16804.TXT new file mode 100644 index 0000000..87a0603 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-16804.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0651 +0x43 0xFE7D +0x44 0x0640 +0x45 0x200B +0x46 0x0621 +0x47 0x0622 +0x48 0xFE82 +0x49 0x0623 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0xFE84 +0x52 0x0624 +0x55 0x0626 +0x56 0x0627 +0x57 0xFE8E +0x58 0x0628 +0x59 0xFE91 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0629 +0x63 0x062A +0x64 0xFE97 +0x65 0x062B +0x66 0xFE9B +0x67 0x062C +0x68 0xFE9F +0x69 0x062D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0xFEA3 +0x71 0x062E +0x72 0xFEA7 +0x73 0x062F +0x74 0x0630 +0x75 0x0631 +0x76 0x0632 +0x77 0x0633 +0x78 0xFEB3 +0x79 0x060C +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0634 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0xFEB7 +0x8B 0x0635 +0x8C 0xFEBB +0x8D 0x0636 +0x8E 0xFEBF +0x8F 0x0637 +0x90 0x0638 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0639 +0x9B 0xFECA +0x9C 0xFECB +0x9D 0xFECC +0x9E 0x063A +0x9F 0xFECE +0xA0 0xFECF +0xA1 0x00F7 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0xFED0 +0xAB 0x0641 +0xAC 0xFED3 +0xAD 0x0642 +0xAE 0xFED7 +0xAF 0x0643 +0xB0 0xFEDB +0xB1 0x0644 +0xB2 0xFEF5 +0xB3 0xFEF6 +0xB4 0xFEF7 +0xB5 0xFEF8 +0xB8 0xFEFB +0xB9 0xFEFC +0xBA 0xFEDF +0xBB 0x0645 +0xBC 0xFEE3 +0xBD 0x0646 +0xBE 0xFEE7 +0xBF 0x0647 +0xC0 0x061B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0xFEEB +0xCD 0xFEEC +0xCF 0x0648 +0xD0 0x061F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0649 +0xDB 0xFEF0 +0xDC 0x064A +0xDD 0xFEF2 +0xDE 0xFEF3 +0xDF 0x0660 +0xE0 0x00D7 +0xE1 0x2007 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0661 +0xEB 0x0662 +0xED 0x0663 +0xEE 0x0664 +0xEF 0x0665 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x20AC +0xFB 0x0666 +0xFC 0x0667 +0xFD 0x0668 +0xFE 0x0669 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-273.TXT b/3rdPartner/libiconv/tests/IBM-273.TXT new file mode 100644 index 0000000..fb82635 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-273.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00C4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x007E +0x5A 0x00DC +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x005B +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00DF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00FC +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007D +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00D6 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005C +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x005D +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-277.TXT b/3rdPartner/libiconv/tests/IBM-277.TXT new file mode 100644 index 0000000..f7f8137 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-277.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0023 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A6 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C6 +0x7C 0x00D8 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0040 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007B +0x9D 0x00B8 +0x9E 0x005B +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E6 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-278.TXT b/3rdPartner/libiconv/tests/IBM-278.TXT new file mode 100644 index 0000000..8984604 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-278.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-280.TXT b/3rdPartner/libiconv/tests/IBM-280.TXT new file mode 100644 index 0000000..d37e4ef --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-280.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x007B +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x005D +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x007E +0x59 0x00DF +0x5A 0x00E9 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F2 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F9 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00EC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E0 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00A6 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x0060 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-282.TXT b/3rdPartner/libiconv/tests/IBM-282.TXT new file mode 100644 index 0000000..a47a7b9 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-282.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x007B +0x47 0x00E5 +0x48 0x007E +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0023 +0x67 0x00C5 +0x68 0x005C +0x69 0x00D1 +0x6A 0x00F5 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C3 +0x7C 0x00D5 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00E7 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x007D +0xBF 0x00D7 +0xC0 0x00E3 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00A6 +0xD0 0x00B4 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x0040 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-284.TXT b/3rdPartner/libiconv/tests/IBM-284.TXT new file mode 100644 index 0000000..4fd9b84 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-284.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00A6 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x0023 +0x6A 0x00F1 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00D1 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x0021 +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-285.TXT b/3rdPartner/libiconv/tests/IBM-285.TXT new file mode 100644 index 0000000..07883fb --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-285.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0024 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x00A3 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00AF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x005B +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x005D +0xBC 0x007E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-297.TXT b/3rdPartner/libiconv/tests/IBM-297.TXT new file mode 100644 index 0000000..fd21c48 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-297.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0040 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x007B +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A7 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F9 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00B5 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00E0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x0060 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005D +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E9 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00A6 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-423.TXT b/3rdPartner/libiconv/tests/IBM-423.TXT new file mode 100644 index 0000000..420ea30 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-423.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00C4 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00D6 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00DC +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x00B8 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x00E2 +0xCD 0x00E0 +0xCE 0x00E4 +0xCF 0x00EA +0xD0 0x00B4 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00E9 +0xDC 0x00E8 +0xDD 0x00EB +0xDE 0x00EE +0xDF 0x00EF +0xE0 0x00B0 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00BD +0xEB 0x00F6 +0xEC 0x00F4 +0xED 0x00FB +0xEE 0x00F9 +0xEF 0x00FC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00FF +0xFB 0x00E7 +0xFC 0x00C7 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-424.TXT b/3rdPartner/libiconv/tests/IBM-424.TXT new file mode 100644 index 0000000..f3f2e64 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-424.TXT @@ -0,0 +1,218 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x05D0 +0x42 0x05D1 +0x43 0x05D2 +0x44 0x05D3 +0x45 0x05D4 +0x46 0x05D5 +0x47 0x05D6 +0x48 0x05D7 +0x49 0x05D8 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x05D9 +0x52 0x05DA +0x53 0x05DB +0x54 0x05DC +0x55 0x05DD +0x56 0x05DE +0x57 0x05DF +0x58 0x05E0 +0x59 0x05E1 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x05E2 +0x63 0x05E3 +0x64 0x05E4 +0x65 0x05E5 +0x66 0x05E6 +0x67 0x05E7 +0x68 0x05E8 +0x69 0x05E9 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x05EA +0x74 0x00A0 +0x78 0x2017 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9D 0x00B8 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x2022 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x203E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-425.TXT b/3rdPartner/libiconv/tests/IBM-425.TXT new file mode 100644 index 0000000..46cf48b --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-425.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x060C +0x44 0x00E0 +0x45 0x061B +0x46 0x0640 +0x47 0x061F +0x48 0x00E7 +0x49 0x0621 +0x4A 0x0622 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x0623 +0x56 0x00EE +0x57 0x00EF +0x58 0x0624 +0x59 0x0625 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0626 +0x64 0x00C0 +0x65 0x0627 +0x66 0x0628 +0x67 0x0629 +0x68 0x00C7 +0x69 0x062A +0x6A 0x062B +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x062C +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x062D +0x76 0x00CE +0x77 0x00CF +0x78 0x062E +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x062F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0630 +0x8D 0x0631 +0x8E 0x0632 +0x8F 0x0633 +0x90 0x0634 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0635 +0x9B 0x0636 +0x9C 0x00E6 +0x9D 0x0637 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0638 +0xAB 0x0639 +0xAC 0x063A +0xAD 0x005B +0xAE 0x0641 +0xAF 0x0642 +0xB0 0x0643 +0xB1 0x0644 +0xB2 0x0645 +0xB3 0x0646 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x0647 +0xB7 0x0152 +0xB8 0x0153 +0xB9 0x0178 +0xBA 0x0648 +0xBB 0x0649 +0xBC 0x064A +0xBD 0x005D +0xBE 0x064B +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x064C +0xCD 0x064D +0xCE 0x064E +0xCF 0x064F +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0650 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x0651 +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0652 +0xEB 0x00D4 +0xEC 0x200C +0xED 0x200D +0xEE 0x200E +0xEF 0x200F +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00A4 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-4971.TXT b/3rdPartner/libiconv/tests/IBM-4971.TXT new file mode 100644 index 0000000..11e9987 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-4971.TXT @@ -0,0 +1,251 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x68 0x03AA +0x69 0x03AB +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A8 +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0385 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00B4 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB0 0x00A3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x0390 +0xCD 0x03B0 +0xCE 0x2018 +0xCF 0x2015 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00BD +0xDD 0x0387 +0xDE 0x2019 +0xDF 0x00A6 +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00A7 +0xEE 0x00AB +0xEF 0x00AC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00A9 +0xFC 0x20AC +0xFE 0x00BB +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-500.TXT b/3rdPartner/libiconv/tests/IBM-500.TXT new file mode 100644 index 0000000..8ab4c49 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-500.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-838.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/IBM-838.IRREVERSIBLE.TXT new file mode 100644 index 0000000..3cb51ed --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-838.IRREVERSIBLE.TXT @@ -0,0 +1,5 @@ +0x51 0x0E48 +0xCA 0x0E49 +0xE1 0x0E4A +0xFD 0x0E4B +0xFE 0x0E4C diff --git a/3rdPartner/libiconv/tests/IBM-838.TXT b/3rdPartner/libiconv/tests/IBM-838.TXT new file mode 100644 index 0000000..15ff42b --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-838.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E01 +0x43 0x0E02 +0x44 0x0E03 +0x45 0x0E04 +0x46 0x0E05 +0x47 0x0E06 +0x48 0x0E07 +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x0E48 +0x52 0x0E08 +0x53 0x0E09 +0x54 0x0E0A +0x55 0x0E0B +0x56 0x0E0C +0x57 0x0E0D +0x58 0x0E0E +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E0F +0x63 0x0E10 +0x64 0x0E11 +0x65 0x0E12 +0x66 0x0E13 +0x67 0x0E14 +0x68 0x0E15 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x0E3F +0x71 0x0E4E +0x72 0x0E16 +0x73 0x0E17 +0x74 0x0E18 +0x75 0x0E19 +0x76 0x0E1A +0x77 0x0E1B +0x78 0x0E1C +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0E4F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0E1D +0x8B 0x0E1E +0x8C 0x0E1F +0x8D 0x0E20 +0x8E 0x0E21 +0x8F 0x0E22 +0x90 0x0E5A +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0E23 +0x9B 0x0E24 +0x9C 0x0E25 +0x9D 0x0E26 +0x9E 0x0E27 +0x9F 0x0E28 +0xA0 0x0E5B +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0E29 +0xAB 0x0E2A +0xAC 0x0E2B +0xAD 0x0E2C +0xAE 0x0E2D +0xAF 0x0E2E +0xB0 0x0E50 +0xB1 0x0E51 +0xB2 0x0E52 +0xB3 0x0E53 +0xB4 0x0E54 +0xB5 0x0E55 +0xB6 0x0E56 +0xB7 0x0E57 +0xB8 0x0E58 +0xB9 0x0E59 +0xBA 0x0E2F +0xBB 0x0E30 +0xBC 0x0E31 +0xBD 0x0E32 +0xBE 0x0E33 +0xBF 0x0E34 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0E49 +0xCB 0x0E35 +0xCC 0x0E36 +0xCD 0x0E37 +0xCE 0x0E38 +0xCF 0x0E39 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0E3A +0xDB 0x0E40 +0xDC 0x0E41 +0xDD 0x0E42 +0xDE 0x0E43 +0xDF 0x0E44 +0xE0 0x005C +0xE1 0x0E4A +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0E45 +0xEB 0x0E46 +0xEC 0x0E47 +0xED 0x0E48 +0xEE 0x0E49 +0xEF 0x0E4A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0E4B +0xFB 0x0E4C +0xFC 0x0E4D +0xFD 0x0E4B +0xFE 0x0E4C +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-870.TXT b/3rdPartner/libiconv/tests/IBM-870.TXT new file mode 100644 index 0000000..090f3cb --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-870.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x00A4 +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x00DD +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-871.TXT b/3rdPartner/libiconv/tests/IBM-871.TXT new file mode 100644 index 0000000..8e69a60 --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-871.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DE +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00C6 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00D6 +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F0 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00D0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0060 +0x8D 0x00FD +0x8E 0x007B +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007D +0x9D 0x00B8 +0x9E 0x005D +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0040 +0xAD 0x00DD +0xAE 0x005B +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x005C +0xBF 0x00D7 +0xC0 0x00FE +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E6 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00B4 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005E +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-875.TXT b/3rdPartner/libiconv/tests/IBM-875.TXT new file mode 100644 index 0000000..2b9b31f --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-875.TXT @@ -0,0 +1,250 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x68 0x03AA +0x69 0x03AB +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A8 +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0385 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00B4 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB0 0x00A3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x0390 +0xCD 0x03B0 +0xCE 0x2018 +0xCF 0x2015 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00BD +0xDD 0x0387 +0xDE 0x2019 +0xDF 0x00A6 +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00A7 +0xEE 0x00AB +0xEF 0x00AC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00A9 +0xFE 0x00BB +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-880.TXT b/3rdPartner/libiconv/tests/IBM-880.TXT new file mode 100644 index 0000000..d7eea2d --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-880.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A4 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-905.TXT b/3rdPartner/libiconv/tests/IBM-905.TXT new file mode 100644 index 0000000..1ad880b --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-905.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x47 0x010B +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x67 0x010A +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0127 +0x8B 0x0109 +0x8C 0x015D +0x8D 0x016D +0x8F 0x007C +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0125 +0x9B 0x011D +0x9C 0x0135 +0x9D 0x00B8 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0126 +0xAB 0x0108 +0xAC 0x015C +0xAD 0x016C +0xAF 0x0040 +0xB0 0x02D9 +0xB1 0x00A3 +0xB2 0x017C +0xB3 0x007D +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x005D +0xB7 0x00B7 +0xB8 0x00BD +0xB9 0x0024 +0xBA 0x0124 +0xBB 0x011C +0xBC 0x0134 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x0121 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0060 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x0120 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/IBM-924.TXT b/3rdPartner/libiconv/tests/IBM-924.TXT new file mode 100644 index 0000000..d2c06cd --- /dev/null +++ b/3rdPartner/libiconv/tests/IBM-924.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DD +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x0160 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x017E +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x005B +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x0152 +0xB8 0x0153 +0xB9 0x0178 +0xBA 0x00AC +0xBB 0x0161 +0xBC 0x00AF +0xBD 0x005D +0xBE 0x017D +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet b/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet new file mode 100644 index 0000000..ab807a5 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet @@ -0,0 +1,3 @@ +Chinese ($)AVPND,FUM(;0,::So) Dc:C + GB -- $)AT*Fx ?*7" +$)G^O$+IO7J$*HN+j diff --git a/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet.UTF-8 new file mode 100644 index 0000000..52126d6 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-CN-EXT-snippet.UTF-8 @@ -0,0 +1,3 @@ +Chinese (中文,普通话,汉语) 你好 + GB -- 元气 开发 +喲痓洈 diff --git a/3rdPartner/libiconv/tests/ISO-2022-CN-snippet b/3rdPartner/libiconv/tests/ISO-2022-CN-snippet new file mode 100644 index 0000000..bf5bf79 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-CN-snippet @@ -0,0 +1,3 @@ +Chinese ($)AVPND,FUM(;0,::So) Dc:C + GB -- $)AT*Fx ?*7" +$)G^O$*HN+j diff --git a/3rdPartner/libiconv/tests/ISO-2022-CN-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-CN-snippet.UTF-8 new file mode 100644 index 0000000..a642f28 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-CN-snippet.UTF-8 @@ -0,0 +1,3 @@ +Chinese (中文,普通话,汉语) 你好 + GB -- 元气 开发 +喲洈 diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet b/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet new file mode 100644 index 0000000..337be72 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet @@ -0,0 +1 @@ +Just for a test of JISX0212: $BqV$(DiQ(B (the second character is of JISX0212) diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet.UTF-8 new file mode 100644 index 0000000..bffbfcb --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-1-snippet.UTF-8 @@ -0,0 +1 @@ +Just for a test of JISX0212: 騏驎 (the second character is of JISX0212) diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet b/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet new file mode 100644 index 0000000..3e297b8 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet @@ -0,0 +1,7 @@ +Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B + JIS -- $B855$(B $B3+H/(B +Just for a test of JISX0212: $BqV$(DiQ(B (the second character is of JISX0212) +Chinese ($BCfJ8(B,$BIaDL$A;0(B,$A::So(B) $(D0_$B9%(B + GB -- $B85]c(B $A?*7"(B +Korean ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B + KSC -- $B85]f(B $B3+b$(B diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet.UTF-8 new file mode 100644 index 0000000..6c63925 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-2-snippet.UTF-8 @@ -0,0 +1,7 @@ +Japanese (日本語) こんにちは, コンニチハ + JIS -- 元気 開発 +Just for a test of JISX0212: 騏驎 (the second character is of JISX0212) +Chinese (中文,普通话,汉语) 你好 + GB -- 元气 开发 +Korean (한글) 안녕하세요, 안녕하십니까 + KSC -- 元氣 開發 diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet b/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet new file mode 100644 index 0000000..ea0c763 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet @@ -0,0 +1,730 @@ + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; < = > ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + (I!(B (I"(B (I#(B (I$(B (I%(B (I&(B (I'(B (I((B (I)(B (I*(B (I+(B (I,(B (I-(B (I.(B (I/(B +(I0(B (I1(B (I2(B (I3(B (I4(B (I5(B (I6(B (I7(B (I8(B (I9(B (I:(B (I;(B (I<(B (I=(B (I>(B (I?(B +(I@(B (IA(B (IB(B (IC(B (ID(B (IE(B (IF(B (IG(B (IH(B (II(B (IJ(B (IK(B (IL(B (IM(B (IN(B (IO(B +(IP(B (IQ(B (IR(B (IS(B (IT(B (IU(B (IV(B (IW(B (IX(B (IY(B (IZ(B (I[(B (I\(B (I](B (I^(B (I_(B + $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B +$B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B +$B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B +$B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B +$B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B +$B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B + $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B $(Q"/(B +$(Q"0(B $(Q"1(B $(Q"2(B $(Q"3(B $(Q"4(B $(Q"5(B $(Q"6(B $(Q"7(B $(Q"8(B $(Q"9(B $B":(B $B";(B $B"<(B $B"=(B $B">(B $B"?(B +$B"@(B $B"A(B $(Q"B(B $(Q"C(B $(Q"D(B $(Q"E(B $(Q"F(B $(Q"G(B $(Q"H(B $(Q"I(B $B"J(B $B"K(B $B"L(B $B"M(B $B"N(B $B"O(B +$B"P(B $(Q"Q(B $(Q"R(B $(Q"S(B $(Q"T(B $(Q"U(B $(Q"V(B $(Q"W(B $(Q"X(B $(Q"Y(B $(Q"Z(B $(Q"[(B $B"\(B $B"](B $B"^(B $B"_(B +$B"`(B $B"a(B $B"b(B $B"c(B $B"d(B $B"e(B $B"f(B $B"g(B $B"h(B $B"i(B $B"j(B $(Q"k(B $(Q"l(B $(Q"m(B $(Q"n(B $(Q"o(B +$(Q"p(B $(Q"q(B $B"r(B $B"s(B $B"t(B $B"u(B $B"v(B $B"w(B $B"x(B $B"y(B $(Q"z(B $(Q"{(B $(Q"|(B $(Q"}(B $B"~(B + $(Q#!(B $(Q#"(B $(Q##(B $(Q#$(B $(Q#%(B $(Q#&(B $(Q#'(B $(Q#((B $(Q#)(B $(Q#*(B $(Q#+(B $(Q#,(B $(Q#-(B $(Q#.(B $(Q#/(B +$B#0(B $B#1(B $B#2(B $B#3(B $B#4(B $B#5(B $B#6(B $B#7(B $B#8(B $B#9(B $(Q#:(B $(Q#;(B $(Q#<(B $(Q#=(B $(Q#>(B $(Q#?(B +$(Q#@(B $B#A(B $B#B(B $B#C(B $B#D(B $B#E(B $B#F(B $B#G(B $B#H(B $B#I(B $B#J(B $B#K(B $B#L(B $B#M(B $B#N(B $B#O(B +$B#P(B $B#Q(B $B#R(B $B#S(B $B#T(B $B#U(B $B#V(B $B#W(B $B#X(B $B#Y(B $B#Z(B $(Q#[(B $(Q#\(B $(Q#](B $(Q#^(B $(Q#_(B +$(Q#`(B $B#a(B $B#b(B $B#c(B $B#d(B $B#e(B $B#f(B $B#g(B $B#h(B $B#i(B $B#j(B $B#k(B $B#l(B $B#m(B $B#n(B $B#o(B +$B#p(B $B#q(B $B#r(B $B#s(B $B#t(B $B#u(B $B#v(B $B#w(B $B#x(B $B#y(B $B#z(B $(Q#{(B $(Q#|(B $(Q#}(B $(Q#~(B + $B$!(B $B$"(B $B$#(B $B$$(B $B$%(B $B$&(B $B$'(B $B$((B $B$)(B $B$*(B $B$+(B $B$,(B $B$-(B $B$.(B $B$/(B +$B$0(B $B$1(B $B$2(B $B$3(B $B$4(B $B$5(B $B$6(B $B$7(B $B$8(B $B$9(B $B$:(B $B$;(B $B$<(B $B$=(B $B$>(B $B$?(B +$B$@(B $B$A(B $B$B(B $B$C(B $B$D(B $B$E(B $B$F(B $B$G(B $B$H(B $B$I(B $B$J(B $B$K(B $B$L(B $B$M(B $B$N(B $B$O(B +$B$P(B $B$Q(B $B$R(B $B$S(B $B$T(B $B$U(B $B$V(B $B$W(B $B$X(B $B$Y(B $B$Z(B $B$[(B $B$\(B $B$](B $B$^(B $B$_(B +$B$`(B $B$a(B $B$b(B $B$c(B $B$d(B $B$e(B $B$f(B $B$g(B $B$h(B $B$i(B $B$j(B $B$k(B $B$l(B $B$m(B $B$n(B $B$o(B +$B$p(B $B$q(B $B$r(B $B$s(B $(Q$t(B $(Q$u(B $(Q$v(B $(Q$w(B $(Q$x(B $(Q$y(B $(Q$z(B $(Q${(B + $B%!(B $B%"(B $B%#(B $B%$(B $B%%(B $B%&(B $B%'(B $B%((B $B%)(B $B%*(B $B%+(B $B%,(B $B%-(B $B%.(B $B%/(B +$B%0(B $B%1(B $B%2(B $B%3(B $B%4(B $B%5(B $B%6(B $B%7(B $B%8(B $B%9(B $B%:(B $B%;(B $B%<(B $B%=(B $B%>(B $B%?(B +$B%@(B $B%A(B $B%B(B $B%C(B $B%D(B $B%E(B $B%F(B $B%G(B $B%H(B $B%I(B $B%J(B $B%K(B $B%L(B $B%M(B $B%N(B $B%O(B +$B%P(B $B%Q(B $B%R(B $B%S(B $B%T(B $B%U(B $B%V(B $B%W(B $B%X(B $B%Y(B $B%Z(B $B%[(B $B%\(B $B%](B $B%^(B $B%_(B +$B%`(B $B%a(B $B%b(B $B%c(B $B%d(B $B%e(B $B%f(B $B%g(B $B%h(B $B%i(B $B%j(B $B%k(B $B%l(B $B%m(B $B%n(B $B%o(B +$B%p(B $B%q(B $B%r(B $B%s(B $B%t(B $B%u(B $B%v(B $(Q%w(B $(Q%x(B $(Q%y(B $(Q%z(B $(Q%{(B $(Q%|(B $(Q%}(B $(Q%~(B + $B&!(B $B&"(B $B&#(B $B&$(B $B&%(B $B&&(B $B&'(B $B&((B $B&)(B $B&*(B $B&+(B $B&,(B $B&-(B $B&.(B $B&/(B +$B&0(B $B&1(B $B&2(B $B&3(B $B&4(B $B&5(B $B&6(B $B&7(B $B&8(B $(Q&9(B $(Q&:(B $(Q&;(B $(Q&<(B $(Q&=(B $(Q&>(B $(Q&?(B +$(Q&@(B $B&A(B $B&B(B $B&C(B $B&D(B $B&E(B $B&F(B $B&G(B $B&H(B $B&I(B $B&J(B $B&K(B $B&L(B $B&M(B $B&N(B $B&O(B +$B&P(B $B&Q(B $B&R(B $B&S(B $B&T(B $B&U(B $B&V(B $B&W(B $B&X(B $(Q&Y(B $(Q&Z(B $(Q&[(B $(Q&\(B $(Q&](B $(Q&^(B $(Q&_(B +$(Q&`(B $(Q&a(B $(Q&b(B $(Q&c(B $(Q&d(B $(Q&e(B $(Q&f(B $(Q&g(B $(Q&h(B $(Q&i(B $(Q&j(B $(Q&k(B $(Q&l(B $(Q&m(B $(Q&n(B $(Q&o(B +$(Q&p(B $(Q&q(B $(Q&r(B $(Q&s(B $(Q&t(B $(Q&u(B $(Q&v(B $(Q&w(B $(Q&x(B $(Q&y(B $(Q&z(B $(Q&{(B $(Q&|(B $(Q&}(B $(Q&~(B + $B'!(B $B'"(B $B'#(B $B'$(B $B'%(B $B'&(B $B''(B $B'((B $B')(B $B'*(B $B'+(B $B',(B $B'-(B $B'.(B $B'/(B +$B'0(B $B'1(B $B'2(B $B'3(B $B'4(B $B'5(B $B'6(B $B'7(B $B'8(B $B'9(B $B':(B $B';(B $B'<(B $B'=(B $B'>(B $B'?(B +$B'@(B $B'A(B $(Q'B(B $(Q'C(B $(Q'D(B $(Q'E(B $(Q'F(B $(Q'G(B $(Q'H(B $(Q'I(B $(Q'J(B $(Q'K(B $(Q'L(B $(Q'M(B $(Q'N(B $(Q'O(B +$(Q'P(B $B'Q(B $B'R(B $B'S(B $B'T(B $B'U(B $B'V(B $B'W(B $B'X(B $B'Y(B $B'Z(B $B'[(B $B'\(B $B'](B $B'^(B $B'_(B +$B'`(B $B'a(B $B'b(B $B'c(B $B'd(B $B'e(B $B'f(B $B'g(B $B'h(B $B'i(B $B'j(B $B'k(B $B'l(B $B'm(B $B'n(B $B'o(B +$B'p(B $B'q(B $(Q'r(B $(Q's(B $(Q't(B $(Q'u(B $(Q'v(B $(Q'w(B $(Q'x(B $(Q'y(B $(Q'z(B $(Q'{(B $(Q'|(B $(Q'}(B $(Q'~(B + $B(!(B $B("(B $B(#(B $B($(B $B(%(B $B(&(B $B('(B $B(((B $B()(B $B(*(B $B(+(B $B(,(B $B(-(B $B(.(B $B(/(B +$B(0(B $B(1(B $B(2(B $B(3(B $B(4(B $B(5(B $B(6(B $B(7(B $B(8(B $B(9(B $B(:(B $B(;(B $B(<(B $B(=(B $B(>(B $B(?(B +$B(@(B $(Q(A(B $(Q(B(B $(Q(C(B $(Q(D(B $(Q(E(B $(Q(F(B $(Q(G(B $(Q(H(B $(Q(I(B $(Q(J(B $(Q(K(B $(Q(L(B $(Q(M(B $(Q(N(B $(Q(O(B +$(Q(P(B $(Q(Q(B $(Q(R(B $(Q(S(B $(Q(T(B $(Q(U(B $(Q(V(B $(Q(W(B $(Q(X(B $(Q(Y(B $(Q(Z(B $(Q([(B $(Q(\(B $(Q(](B $(Q(^(B + $(Q(g(B $(Q(h(B $(Q(i(B $(Q(j(B $(Q(k(B $(Q(l(B $(Q(m(B $(Q(n(B $(Q(o(B +$(Q(p(B $(Q(q(B $(Q(r(B $(Q(s(B $(Q(t(B $(Q(u(B $(Q(v(B $(Q(w(B $(Q(x(B $(Q(y(B $(Q(z(B $(Q({(B $(Q(|(B + $(Q)!(B $(Q)"(B $(Q)#(B $(Q)$(B $(Q)%(B $(Q)&(B $(Q)'(B $(Q)((B $(Q))(B $(Q)*(B $(Q)+(B $(Q),(B $(Q)-(B $(Q).(B $(Q)/(B +$(Q)0(B $(Q)1(B $(Q)2(B $(Q)3(B $(Q)4(B $(Q)5(B $(Q)6(B $(Q)7(B $(Q)8(B $(Q)9(B $(Q):(B $(Q);(B $(Q)<(B $(Q)=(B $(Q)>(B $(Q)?(B +$(Q)@(B $(Q)A(B $(Q)B(B $(Q)C(B $(Q)D(B $(Q)E(B $(Q)F(B $(Q)G(B $(Q)H(B $(Q)I(B $(Q)J(B $(Q)K(B $(Q)L(B $(Q)M(B $(Q)N(B $(Q)O(B +$(Q)P(B $(Q)Q(B $(Q)R(B $(Q)S(B $(Q)T(B $(Q)U(B $(Q)V(B $(Q)W(B $(Q)X(B $(Q)Y(B $(Q)Z(B $(Q)[(B $(Q)\(B $(Q)](B $(Q)^(B $(Q)_(B +$(Q)`(B $(Q)a(B $(Q)b(B $(Q)c(B $(Q)d(B $(Q)e(B $(Q)f(B $(Q)g(B $(Q)h(B $(Q)i(B $(Q)j(B $(Q)k(B $(Q)l(B $(Q)m(B $(Q)n(B $(Q)o(B +$(Q)p(B $(Q)q(B $(Q)r(B $(Q)s(B $(Q)t(B $(Q)u(B $(Q)v(B $(Q)w(B $(Q)x(B $(Q)y(B $(Q)z(B $(Q){(B $(Q)|(B $(Q)}(B $(Q)~(B + $(Q*!(B $(Q*"(B $(Q*#(B $(Q*$(B $(Q*%(B $(Q*&(B $(Q*'(B $(Q*((B $(Q*)(B $(Q**(B $(Q*+(B $(Q*,(B $(Q*-(B $(Q*.(B $(Q*/(B +$(Q*0(B $(Q*1(B $(Q*2(B $(Q*3(B $(Q*4(B $(Q*5(B $(Q*6(B $(Q*7(B $(Q*8(B $(Q*9(B $(Q*:(B $(Q*;(B $(Q*<(B $(Q*=(B $(Q*>(B $(Q*?(B +$(Q*@(B $(Q*A(B $(Q*B(B $(Q*C(B $(Q*D(B $(Q*E(B $(Q*F(B $(Q*G(B $(Q*H(B $(Q*I(B $(Q*J(B $(Q*K(B $(Q*L(B $(Q*M(B $(Q*N(B $(Q*O(B +$(Q*P(B $(Q*Q(B $(Q*R(B $(Q*S(B $(Q*T(B $(Q*U(B $(Q*V(B $(Q*W(B $(Q*X(B $(Q*Y(B $(Q*Z(B $(Q*[(B $(Q*\(B $(Q*](B $(Q*^(B $(Q*_(B +$(Q*`(B $(Q*a(B $(Q*b(B $(Q*c(B $(Q*d(B $(Q*e(B $(Q*f(B $(Q*g(B $(Q*h(B $(Q*i(B $(Q*j(B $(Q*k(B $(Q*l(B $(Q*m(B $(Q*n(B $(Q*o(B +$(Q*p(B $(Q*q(B $(Q*r(B $(Q*s(B $(Q*t(B $(Q*u(B $(Q*v(B $(Q*w(B $(Q*x(B $(Q*y(B $(Q*z(B $(Q*{(B $(Q*|(B $(Q*}(B $(Q*~(B + $(Q+!(B $(Q+"(B $(Q+#(B $(Q+$(B $(Q+%(B $(Q+&(B $(Q+'(B $(Q+((B $(Q+)(B $(Q+*(B $(Q++(B $(Q+,(B $(Q+-(B $(Q+.(B $(Q+/(B +$(Q+0(B $(Q+1(B $(Q+2(B $(Q+3(B $(Q+4(B $(Q+5(B $(Q+6(B $(Q+7(B $(Q+8(B $(Q+9(B $(Q+:(B $(Q+;(B $(Q+<(B $(Q+=(B $(Q+>(B $(Q+?(B +$(Q+@(B $(Q+A(B $(Q+B(B $(Q+C(B $(Q+D(B $(Q+E(B $(Q+F(B $(Q+G(B $(Q+H(B $(Q+I(B $(Q+J(B $(Q+K(B $(Q+L(B $(Q+M(B $(Q+N(B $(Q+O(B +$(Q+P(B $(Q+Q(B $(Q+R(B $(Q+S(B $(Q+T(B $(Q+U(B $(Q+V(B $(Q+W(B $(Q+X(B $(Q+Y(B $(Q+Z(B $(Q+[(B $(Q+\(B $(Q+](B $(Q+^(B $(Q+_(B +$(Q+`(B $(Q+a(B $(Q+b(B $(Q+c(B $(Q+d(B $(Q+e(B $(Q+f(B $(Q+g(B $(Q+h(B $(Q+i(B $(Q+j(B $(Q+k(B $(Q+l(B $(Q+m(B $(Q+n(B $(Q+o(B +$(Q+p(B $(Q+q(B $(Q+r(B $(Q+s(B $(Q+t(B $(Q+u(B $(Q+v(B $(Q+w(B $(Q+x(B $(Q+y(B $(Q+z(B $(Q+{(B $(Q+|(B $(Q+}(B $(Q+~(B + $(Q,!(B $(Q,"(B $(Q,#(B $(Q,$(B $(Q,%(B $(Q,&(B $(Q,'(B $(Q,((B $(Q,)(B $(Q,*(B $(Q,+(B $(Q,,(B $(Q,-(B $(Q,.(B $(Q,/(B +$(Q,0(B $(Q,1(B $(Q,2(B $(Q,3(B $(Q,4(B $(Q,5(B $(Q,6(B $(Q,7(B $(Q,8(B $(Q,9(B $(Q,:(B $(Q,;(B $(Q,<(B $(Q,=(B $(Q,>(B $(Q,?(B +$(Q,@(B $(Q,A(B $(Q,B(B $(Q,C(B $(Q,D(B $(Q,E(B $(Q,F(B $(Q,G(B $(Q,H(B $(Q,I(B $(Q,J(B $(Q,K(B $(Q,L(B $(Q,M(B $(Q,N(B $(Q,O(B +$(Q,P(B $(Q,Q(B $(Q,R(B $(Q,S(B $(Q,T(B $(Q,U(B $(Q,V(B $(Q,W(B $(Q,X(B $(Q,Y(B $(Q,Z(B $(Q,[(B $(Q,\(B $(Q,](B $(Q,^(B $(Q,_(B +$(Q,`(B $(Q,a(B $(Q,b(B $(Q,c(B $(Q,d(B $(Q,e(B $(Q,f(B $(Q,g(B $(Q,h(B $(Q,i(B $(Q,j(B $(Q,k(B $(Q,l(B $(Q,m(B $(Q,n(B $(Q,o(B +$(Q,p(B $(Q,q(B $(Q,r(B $(Q,s(B $(Q,}(B $(Q,~(B + $(Q-!(B $(Q-"(B $(Q-#(B $(Q-$(B $(Q-%(B $(Q-&(B $(Q-'(B $(Q-((B $(Q-)(B $(Q-*(B $(Q-+(B $(Q-,(B $(Q--(B $(Q-.(B $(Q-/(B +$(Q-0(B $(Q-1(B $(Q-2(B $(Q-3(B $(Q-4(B $(Q-5(B $(Q-6(B $(Q-7(B $(Q-8(B $(Q-9(B $(Q-:(B $(Q-;(B $(Q-<(B $(Q-=(B $(Q->(B $(Q-?(B +$(Q-@(B $(Q-A(B $(Q-B(B $(Q-C(B $(Q-D(B $(Q-E(B $(Q-F(B $(Q-G(B $(Q-H(B $(Q-I(B $(Q-J(B $(Q-K(B $(Q-L(B $(Q-M(B $(Q-N(B $(Q-O(B +$(Q-P(B $(Q-Q(B $(Q-R(B $(Q-S(B $(Q-T(B $(Q-U(B $(Q-V(B $(Q-W(B $(Q-_(B +$(Q-`(B $(Q-a(B $(Q-b(B $(Q-c(B $(Q-d(B $(Q-e(B $(Q-f(B $(Q-g(B $(Q-h(B $(Q-i(B $(Q-j(B $(Q-k(B $(Q-l(B $(Q-m(B $(Q-n(B $(Q-o(B + $(Q-s(B $(Q-x(B $(Q-y(B $(Q-}(B $(Q-~(B + $(Q."(B $(Q.#(B $(Q.$(B $(Q.%(B $(Q.&(B $(Q.'(B $(Q.((B $(Q.)(B $(Q.*(B $(Q.+(B $(Q.,(B $(Q.-(B $(Q..(B $(Q./(B +$(Q.0(B $(Q.1(B $(Q.2(B $(Q.3(B $(Q.4(B $(Q.5(B $(Q.6(B $(Q.7(B $(Q.8(B $(Q.9(B $(Q.:(B $(Q.;(B $(Q.<(B $(Q.=(B $(Q.>(B $(Q.?(B +$(Q.@(B $(Q.A(B $(Q.B(B $(Q.C(B $(Q.D(B $(Q.E(B $(Q.F(B $(Q.G(B $(Q.H(B $(Q.I(B $(Q.J(B $(Q.K(B $(Q.L(B $(Q.M(B $(Q.N(B $(Q.O(B +$(Q.P(B $(Q.Q(B $(Q.R(B $(Q.S(B $(Q.T(B $(Q.U(B $(Q.V(B $(Q.W(B $(Q.X(B $(Q.Y(B $(Q.Z(B $(Q.[(B $(Q.\(B $(Q.](B $(Q.^(B $(Q._(B +$(Q.`(B $(Q.a(B $(Q.b(B $(Q.c(B $(Q.d(B $(Q.e(B $(Q.f(B $(Q.g(B $(Q.h(B $(Q.i(B $(Q.j(B $(Q.k(B $(Q.l(B $(Q.m(B $(Q.n(B $(Q.o(B +$(Q.p(B $(Q.q(B $(Q.r(B $(Q.s(B $(Q.t(B $(Q.u(B $(Q.v(B $(Q.w(B $(Q.x(B $(Q.y(B $(Q.z(B $(Q.{(B $(Q.|(B $(Q.}(B $(Q.~(B + $(Q/!(B $(Q/"(B $(Q/#(B $(Q/$(B $(Q/%(B $(Q/&(B $(Q/'(B $(Q/((B $(Q/)(B $(Q/*(B $(Q/+(B $(Q/,(B $(Q/-(B $(Q/.(B $(Q//(B +$(Q/0(B $(Q/1(B $(Q/2(B $(Q/3(B $(Q/4(B $(Q/5(B $(Q/6(B $(Q/7(B $(Q/8(B $(Q/9(B $(Q/:(B $(Q/;(B $(Q/<(B $(Q/=(B $(Q/>(B $(Q/?(B +$(Q/@(B $(Q/A(B $(Q/B(B $(Q/C(B $(Q/D(B $(Q/E(B $(Q/F(B $(Q/G(B $(Q/H(B $(Q/I(B $(Q/J(B $(Q/K(B $(Q/L(B $(Q/M(B $(Q/N(B $(Q/O(B +$(Q/P(B $(Q/Q(B $(Q/R(B $(Q/S(B $(Q/T(B $(Q/U(B $(Q/V(B $(Q/W(B $(Q/X(B $(Q/Y(B $(Q/Z(B $(Q/[(B $(Q/\(B $(Q/](B $(Q/^(B $(Q/_(B +$(Q/`(B $(Q/a(B $(Q/b(B $(Q/c(B $(Q/d(B $(Q/e(B $(Q/f(B $(Q/g(B $(Q/h(B $(Q/i(B $(Q/j(B $(Q/k(B $(Q/l(B $(Q/m(B $(Q/n(B $(Q/o(B +$(Q/p(B $(Q/q(B $(Q/r(B $(Q/s(B $(Q/t(B $(Q/u(B $(Q/v(B $(Q/w(B $(Q/x(B $(Q/y(B $(Q/z(B $(Q/{(B $(Q/|(B $(Q/}(B + $B0!(B $B0"(B $B0#(B $B0$(B $B0%(B $B0&(B $B0'(B $B0((B $B0)(B $B0*(B $B0+(B $B0,(B $B0-(B $B0.(B $B0/(B +$B00(B $B01(B $B02(B $B03(B $B04(B $B05(B $B06(B $B07(B $B08(B $B09(B $B0:(B $B0;(B $B0<(B $B0=(B $B0>(B $B0?(B +$B0@(B $B0A(B $B0B(B $B0C(B $B0D(B $B0E(B $B0F(B $B0G(B $B0H(B $B0I(B $B0J(B $B0K(B $B0L(B $B0M(B $B0N(B $B0O(B +$B0P(B $B0Q(B $B0R(B $B0S(B $B0T(B $B0U(B $B0V(B $B0W(B $B0X(B $B0Y(B $B0Z(B $B0[(B $B0\(B $B0](B $B0^(B $B0_(B +$B0`(B $B0a(B $B0b(B $B0c(B $B0d(B $B0e(B $B0f(B $B0g(B $B0h(B $B0i(B $B0j(B $B0k(B $B0l(B $B0m(B $B0n(B $B0o(B +$B0p(B $B0q(B $B0r(B $B0s(B $B0t(B $B0u(B $B0v(B $B0w(B $B0x(B $B0y(B $B0z(B $B0{(B $B0|(B $B0}(B $B0~(B + $B1!(B $B1"(B $B1#(B $B1$(B $B1%(B $B1&(B $B1'(B $B1((B $B1)(B $B1*(B $B1+(B $B1,(B $B1-(B $B1.(B $B1/(B +$B10(B $B11(B $B12(B $B13(B $B14(B $B15(B $B16(B $B17(B $B18(B $B19(B $B1:(B $B1;(B $B1<(B $B1=(B $B1>(B $B1?(B +$B1@(B $B1A(B $B1B(B $B1C(B $B1D(B $B1E(B $B1F(B $B1G(B $B1H(B $B1I(B $B1J(B $B1K(B $B1L(B $B1M(B $B1N(B $B1O(B +$B1P(B $B1Q(B $B1R(B $B1S(B $B1T(B $B1U(B $B1V(B $B1W(B $B1X(B $B1Y(B $B1Z(B $B1[(B $B1\(B $B1](B $B1^(B $B1_(B +$B1`(B $B1a(B $B1b(B $B1c(B $B1d(B $B1e(B $B1f(B $B1g(B $B1h(B $B1i(B $B1j(B $B1k(B $B1l(B $B1m(B $B1n(B $B1o(B +$B1p(B $B1q(B $B1r(B $B1s(B $B1t(B $B1u(B $B1v(B $B1w(B $B1x(B $B1y(B $B1z(B $B1{(B $B1|(B $B1}(B $B1~(B + $B2!(B $B2"(B $B2#(B $B2$(B $B2%(B $B2&(B $B2'(B $B2((B $B2)(B $B2*(B $B2+(B $B2,(B $B2-(B $B2.(B $B2/(B +$B20(B $B21(B $B22(B $B23(B $B24(B $B25(B $B26(B $B27(B $B28(B $B29(B $B2:(B $B2;(B $B2<(B $B2=(B $B2>(B $B2?(B +$B2@(B $B2A(B $B2B(B $B2C(B $B2D(B $B2E(B $B2F(B $B2G(B $B2H(B $B2I(B $B2J(B $B2K(B $B2L(B $B2M(B $B2N(B $B2O(B +$B2P(B $B2Q(B $B2R(B $B2S(B $B2T(B $B2U(B $B2V(B $B2W(B $B2X(B $B2Y(B $B2Z(B $B2[(B $B2\(B $B2](B $B2^(B $B2_(B +$B2`(B $B2a(B $B2b(B $B2c(B $B2d(B $B2e(B $B2f(B $B2g(B $B2h(B $B2i(B $B2j(B $B2k(B $B2l(B $B2m(B $B2n(B $B2o(B +$B2p(B $B2q(B $B2r(B $B2s(B $B2t(B $B2u(B $B2v(B $B2w(B $B2x(B $B2y(B $B2z(B $B2{(B $B2|(B $B2}(B $B2~(B + $B3!(B $B3"(B $B3#(B $B3$(B $B3%(B $B3&(B $B3'(B $B3((B $B3)(B $B3*(B $B3+(B $B3,(B $B3-(B $B3.(B $B3/(B +$B30(B $B31(B $B32(B $B33(B $B34(B $B35(B $B36(B $B37(B $B38(B $B39(B $B3:(B $B3;(B $B3<(B $B3=(B $B3>(B $B3?(B +$B3@(B $B3A(B $B3B(B $B3C(B $B3D(B $B3E(B $B3F(B $B3G(B $B3H(B $B3I(B $B3J(B $B3K(B $B3L(B $B3M(B $B3N(B $B3O(B +$B3P(B $B3Q(B $B3R(B $B3S(B $B3T(B $B3U(B $B3V(B $B3W(B $B3X(B $B3Y(B $B3Z(B $B3[(B $B3\(B $B3](B $B3^(B $B3_(B +$B3`(B $B3a(B $B3b(B $B3c(B $B3d(B $B3e(B $B3f(B $B3g(B $B3h(B $B3i(B $B3j(B $B3k(B $B3l(B $B3m(B $B3n(B $B3o(B +$B3p(B $B3q(B $B3r(B $B3s(B $B3t(B $B3u(B $B3v(B $B3w(B $B3x(B $B3y(B $B3z(B $B3{(B $B3|(B $B3}(B $B3~(B + $B4!(B $B4"(B $B4#(B $B4$(B $B4%(B $B4&(B $B4'(B $B4((B $B4)(B $B4*(B $B4+(B $B4,(B $B4-(B $B4.(B $B4/(B +$B40(B $B41(B $B42(B $B43(B $B44(B $B45(B $B46(B $B47(B $B48(B $B49(B $B4:(B $B4;(B $B4<(B $B4=(B $B4>(B $B4?(B +$B4@(B $B4A(B $B4B(B $B4C(B $B4D(B $B4E(B $B4F(B $B4G(B $B4H(B $B4I(B $B4J(B $B4K(B $B4L(B $B4M(B $B4N(B $B4O(B +$B4P(B $B4Q(B $B4R(B $B4S(B $B4T(B $B4U(B $B4V(B $B4W(B $B4X(B $B4Y(B $B4Z(B $B4[(B $B4\(B $B4](B $B4^(B $B4_(B +$B4`(B $B4a(B $B4b(B $B4c(B $B4d(B $B4e(B $B4f(B $B4g(B $B4h(B $B4i(B $B4j(B $B4k(B $B4l(B $B4m(B $B4n(B $B4o(B +$B4p(B $B4q(B $B4r(B $B4s(B $B4t(B $B4u(B $B4v(B $B4w(B $B4x(B $B4y(B $B4z(B $B4{(B $B4|(B $B4}(B $B4~(B + $B5!(B $B5"(B $B5#(B $B5$(B $B5%(B $B5&(B $B5'(B $B5((B $B5)(B $B5*(B $B5+(B $B5,(B $B5-(B $B5.(B $B5/(B +$B50(B $B51(B $B52(B $B53(B $B54(B $B55(B $B56(B $B57(B $B58(B $B59(B $B5:(B $B5;(B $B5<(B $B5=(B $B5>(B $B5?(B +$B5@(B $B5A(B $B5B(B $B5C(B $B5D(B $B5E(B $B5F(B $B5G(B $B5H(B $B5I(B $B5J(B $B5K(B $B5L(B $B5M(B $B5N(B $B5O(B +$B5P(B $B5Q(B $B5R(B $B5S(B $B5T(B $B5U(B $B5V(B $B5W(B $B5X(B $B5Y(B $B5Z(B $B5[(B $B5\(B $B5](B $B5^(B $B5_(B +$B5`(B $B5a(B $B5b(B $B5c(B $B5d(B $B5e(B $B5f(B $B5g(B $B5h(B $B5i(B $B5j(B $B5k(B $B5l(B $B5m(B $B5n(B $B5o(B +$B5p(B $B5q(B $B5r(B $B5s(B $B5t(B $B5u(B $B5v(B $B5w(B $B5x(B $B5y(B $B5z(B $B5{(B $B5|(B $B5}(B $B5~(B + $B6!(B $B6"(B $B6#(B $B6$(B $B6%(B $B6&(B $B6'(B $B6((B $B6)(B $B6*(B $B6+(B $B6,(B $B6-(B $B6.(B $B6/(B +$B60(B $B61(B $B62(B $B63(B $B64(B $B65(B $B66(B $B67(B $B68(B $B69(B $B6:(B $B6;(B $B6<(B $B6=(B $B6>(B $B6?(B +$B6@(B $B6A(B $B6B(B $B6C(B $B6D(B $B6E(B $B6F(B $B6G(B $B6H(B $B6I(B $B6J(B $B6K(B $B6L(B $B6M(B $B6N(B $B6O(B +$B6P(B $B6Q(B $B6R(B $B6S(B $B6T(B $B6U(B $B6V(B $B6W(B $B6X(B $B6Y(B $B6Z(B $B6[(B $B6\(B $B6](B $B6^(B $B6_(B +$B6`(B $B6a(B $B6b(B $B6c(B $B6d(B $B6e(B $B6f(B $B6g(B $B6h(B $B6i(B $B6j(B $B6k(B $B6l(B $B6m(B $B6n(B $B6o(B +$B6p(B $B6q(B $B6r(B $B6s(B $B6t(B $B6u(B $B6v(B $B6w(B $B6x(B $B6y(B $B6z(B $B6{(B $B6|(B $B6}(B $B6~(B + $B7!(B $B7"(B $B7#(B $B7$(B $B7%(B $B7&(B $B7'(B $B7((B $B7)(B $B7*(B $B7+(B $B7,(B $B7-(B $B7.(B $B7/(B +$B70(B $B71(B $B72(B $B73(B $B74(B $B75(B $B76(B $B77(B $B78(B $B79(B $B7:(B $B7;(B $B7<(B $B7=(B $B7>(B $B7?(B +$B7@(B $B7A(B $B7B(B $B7C(B $B7D(B $B7E(B $B7F(B $B7G(B $B7H(B $B7I(B $B7J(B $B7K(B $B7L(B $B7M(B $B7N(B $B7O(B +$B7P(B $B7Q(B $B7R(B $B7S(B $B7T(B $B7U(B $B7V(B $B7W(B $B7X(B $B7Y(B $B7Z(B $B7[(B $B7\(B $B7](B $B7^(B $B7_(B +$B7`(B $B7a(B $B7b(B $B7c(B $B7d(B $B7e(B $B7f(B $B7g(B $B7h(B $B7i(B $B7j(B $B7k(B $B7l(B $B7m(B $B7n(B $B7o(B +$B7p(B $B7q(B $B7r(B $B7s(B $B7t(B $B7u(B $B7v(B $B7w(B $B7x(B $B7y(B $B7z(B $B7{(B $B7|(B $B7}(B $B7~(B + $B8!(B $B8"(B $B8#(B $B8$(B $B8%(B $B8&(B $B8'(B $B8((B $B8)(B $B8*(B $B8+(B $B8,(B $B8-(B $B8.(B $B8/(B +$B80(B $B81(B $B82(B $B83(B $B84(B $B85(B $B86(B $B87(B $B88(B $B89(B $B8:(B $B8;(B $B8<(B $B8=(B $B8>(B $B8?(B +$B8@(B $B8A(B $B8B(B $B8C(B $B8D(B $B8E(B $B8F(B $B8G(B $B8H(B $B8I(B $B8J(B $B8K(B $B8L(B $B8M(B $B8N(B $B8O(B +$B8P(B $B8Q(B $B8R(B $B8S(B $B8T(B $B8U(B $B8V(B $B8W(B $B8X(B $B8Y(B $B8Z(B $B8[(B $B8\(B $B8](B $B8^(B $B8_(B +$B8`(B $B8a(B $B8b(B $B8c(B $B8d(B $B8e(B $B8f(B $B8g(B $B8h(B $B8i(B $B8j(B $B8k(B $B8l(B $B8m(B $B8n(B $B8o(B +$B8p(B $B8q(B $B8r(B $B8s(B $B8t(B $B8u(B $B8v(B $B8w(B $B8x(B $B8y(B $B8z(B $B8{(B $B8|(B $B8}(B $B8~(B + $B9!(B $B9"(B $B9#(B $B9$(B $B9%(B $B9&(B $B9'(B $B9((B $B9)(B $B9*(B $B9+(B $B9,(B $B9-(B $B9.(B $B9/(B +$B90(B $B91(B $B92(B $B93(B $B94(B $B95(B $B96(B $B97(B $B98(B $B99(B $B9:(B $B9;(B $B9<(B $B9=(B $B9>(B $B9?(B +$B9@(B $B9A(B $B9B(B $B9C(B $B9D(B $B9E(B $B9F(B $B9G(B $B9H(B $B9I(B $B9J(B $B9K(B $B9L(B $B9M(B $B9N(B $B9O(B +$B9P(B $B9Q(B $B9R(B $B9S(B $B9T(B $B9U(B $B9V(B $B9W(B $B9X(B $B9Y(B $B9Z(B $B9[(B $B9\(B $B9](B $B9^(B $B9_(B +$B9`(B $B9a(B $B9b(B $B9c(B $B9d(B $B9e(B $B9f(B $B9g(B $B9h(B $B9i(B $B9j(B $B9k(B $B9l(B $B9m(B $B9n(B $B9o(B +$B9p(B $B9q(B $B9r(B $B9s(B $B9t(B $B9u(B $B9v(B $B9w(B $B9x(B $B9y(B $B9z(B $B9{(B $B9|(B $B9}(B $B9~(B + $B:!(B $B:"(B $B:#(B $B:$(B $B:%(B $B:&(B $B:'(B $B:((B $B:)(B $B:*(B $B:+(B $B:,(B $B:-(B $B:.(B $B:/(B +$B:0(B $B:1(B $B:2(B $B:3(B $B:4(B $B:5(B $B:6(B $B:7(B $B:8(B $B:9(B $B::(B $B:;(B $B:<(B $B:=(B $B:>(B $B:?(B +$B:@(B $B:A(B $B:B(B $B:C(B $B:D(B $B:E(B $B:F(B $B:G(B $B:H(B $B:I(B $B:J(B $B:K(B $B:L(B $B:M(B $B:N(B $B:O(B +$B:P(B $B:Q(B $B:R(B $B:S(B $B:T(B $B:U(B $B:V(B $B:W(B $B:X(B $B:Y(B $B:Z(B $B:[(B $B:\(B $B:](B $B:^(B $B:_(B +$B:`(B $B:a(B $B:b(B $B:c(B $B:d(B $B:e(B $B:f(B $B:g(B $B:h(B $B:i(B $B:j(B $B:k(B $B:l(B $B:m(B $B:n(B $B:o(B +$B:p(B $B:q(B $B:r(B $B:s(B $B:t(B $B:u(B $B:v(B $B:w(B $B:x(B $B:y(B $B:z(B $B:{(B $B:|(B $B:}(B $B:~(B + $B;!(B $B;"(B $B;#(B $B;$(B $B;%(B $B;&(B $B;'(B $B;((B $B;)(B $B;*(B $B;+(B $B;,(B $B;-(B $B;.(B $B;/(B +$B;0(B $B;1(B $B;2(B $B;3(B $B;4(B $B;5(B $B;6(B $B;7(B $B;8(B $B;9(B $B;:(B $B;;(B $B;<(B $B;=(B $B;>(B $B;?(B +$B;@(B $B;A(B $B;B(B $B;C(B $B;D(B $B;E(B $B;F(B $B;G(B $B;H(B $B;I(B $B;J(B $B;K(B $B;L(B $B;M(B $B;N(B $B;O(B +$B;P(B $B;Q(B $B;R(B $B;S(B $B;T(B $B;U(B $B;V(B $B;W(B $B;X(B $B;Y(B $B;Z(B $B;[(B $B;\(B $B;](B $B;^(B $B;_(B +$B;`(B $B;a(B $B;b(B $B;c(B $B;d(B $B;e(B $B;f(B $B;g(B $B;h(B $B;i(B $B;j(B $B;k(B $B;l(B $B;m(B $B;n(B $B;o(B +$B;p(B $B;q(B $B;r(B $B;s(B $B;t(B $B;u(B $B;v(B $B;w(B $B;x(B $B;y(B $B;z(B $B;{(B $B;|(B $B;}(B $B;~(B + $B(B $B(B $B=?(B +$B=@(B $B=A(B $B=B(B $B=C(B $B=D(B $B=E(B $B=F(B $B=G(B $B=H(B $B=I(B $B=J(B $B=K(B $B=L(B $B=M(B $B=N(B $B=O(B +$B=P(B $B=Q(B $B=R(B $B=S(B $B=T(B $B=U(B $B=V(B $B=W(B $B=X(B $B=Y(B $B=Z(B $B=[(B $B=\(B $B=](B $B=^(B $B=_(B +$B=`(B $B=a(B $B=b(B $B=c(B $B=d(B $B=e(B $B=f(B $B=g(B $B=h(B $B=i(B $B=j(B $B=k(B $B=l(B $B=m(B $B=n(B $B=o(B +$B=p(B $B=q(B $B=r(B $B=s(B $B=t(B $B=u(B $B=v(B $B=w(B $B=x(B $B=y(B $B=z(B $B={(B $B=|(B $B=}(B $B=~(B + $B>!(B $B>"(B $B>#(B $B>$(B $B>%(B $B>&(B $B>'(B $B>((B $B>)(B $B>*(B $B>+(B $B>,(B $B>-(B $B>.(B $B>/(B +$B>0(B $B>1(B $B>2(B $B>3(B $B>4(B $B>5(B $B>6(B $B>7(B $B>8(B $B>9(B $B>:(B $B>;(B $B><(B $B>=(B $B>>(B $B>?(B +$B>@(B $B>A(B $B>B(B $B>C(B $B>D(B $B>E(B $B>F(B $B>G(B $B>H(B $B>I(B $B>J(B $B>K(B $B>L(B $B>M(B $B>N(B $B>O(B +$B>P(B $B>Q(B $B>R(B $B>S(B $B>T(B $B>U(B $B>V(B $B>W(B $B>X(B $B>Y(B $B>Z(B $B>[(B $B>\(B $B>](B $B>^(B $B>_(B +$B>`(B $B>a(B $B>b(B $B>c(B $B>d(B $B>e(B $B>f(B $B>g(B $B>h(B $B>i(B $B>j(B $B>k(B $B>l(B $B>m(B $B>n(B $B>o(B +$B>p(B $B>q(B $B>r(B $B>s(B $B>t(B $B>u(B $B>v(B $B>w(B $B>x(B $B>y(B $B>z(B $B>{(B $B>|(B $B>}(B $B>~(B + $B?!(B $B?"(B $B?#(B $B?$(B $B?%(B $B?&(B $B?'(B $B?((B $B?)(B $B?*(B $B?+(B $B?,(B $B?-(B $B?.(B $B?/(B +$B?0(B $B?1(B $B?2(B $B?3(B $B?4(B $B?5(B $B?6(B $B?7(B $B?8(B $B?9(B $B?:(B $B?;(B $B?<(B $B?=(B $B?>(B $B??(B +$B?@(B $B?A(B $B?B(B $B?C(B $B?D(B $B?E(B $B?F(B $B?G(B $B?H(B $B?I(B $B?J(B $B?K(B $B?L(B $B?M(B $B?N(B $B?O(B +$B?P(B $B?Q(B $B?R(B $B?S(B $B?T(B $B?U(B $B?V(B $B?W(B $B?X(B $B?Y(B $B?Z(B $B?[(B $B?\(B $B?](B $B?^(B $B?_(B +$B?`(B $B?a(B $B?b(B $B?c(B $B?d(B $B?e(B $B?f(B $B?g(B $B?h(B $B?i(B $B?j(B $B?k(B $B?l(B $B?m(B $B?n(B $B?o(B +$B?p(B $B?q(B $B?r(B $B?s(B $B?t(B $B?u(B $B?v(B $B?w(B $B?x(B $B?y(B $B?z(B $B?{(B $B?|(B $B?}(B $B?~(B + $B@!(B $B@"(B $B@#(B $B@$(B $B@%(B $B@&(B $B@'(B $B@((B $B@)(B $B@*(B $B@+(B $B@,(B $B@-(B $B@.(B $B@/(B +$B@0(B $B@1(B $B@2(B $B@3(B $B@4(B $B@5(B $B@6(B $B@7(B $B@8(B $B@9(B $B@:(B $B@;(B $B@<(B $B@=(B $B@>(B $B@?(B +$B@@(B $B@A(B $B@B(B $B@C(B $B@D(B $B@E(B $B@F(B $B@G(B $B@H(B $B@I(B $B@J(B $B@K(B $B@L(B $B@M(B $B@N(B $B@O(B +$B@P(B $B@Q(B $B@R(B $B@S(B $B@T(B $B@U(B $B@V(B $B@W(B $B@X(B $B@Y(B $B@Z(B $B@[(B $B@\(B $B@](B $B@^(B $B@_(B +$B@`(B $B@a(B $B@b(B $B@c(B $B@d(B $B@e(B $B@f(B $B@g(B $B@h(B $B@i(B $B@j(B $B@k(B $B@l(B $B@m(B $B@n(B $B@o(B +$B@p(B $B@q(B $B@r(B $B@s(B $B@t(B $B@u(B $B@v(B $B@w(B $B@x(B $B@y(B $B@z(B $B@{(B $B@|(B $B@}(B $B@~(B + $BA!(B $BA"(B $BA#(B $BA$(B $BA%(B $BA&(B $BA'(B $BA((B $BA)(B $BA*(B $BA+(B $BA,(B $BA-(B $BA.(B $BA/(B +$BA0(B $BA1(B $BA2(B $BA3(B $BA4(B $BA5(B $BA6(B $BA7(B $BA8(B $BA9(B $BA:(B $BA;(B $BA<(B $BA=(B $BA>(B $BA?(B +$BA@(B $BAA(B $BAB(B $BAC(B $BAD(B $BAE(B $BAF(B $BAG(B $BAH(B $BAI(B $BAJ(B $BAK(B $BAL(B $BAM(B $BAN(B $BAO(B +$BAP(B $BAQ(B $BAR(B $BAS(B $BAT(B $BAU(B $BAV(B $BAW(B $BAX(B $BAY(B $BAZ(B $BA[(B $BA\(B $BA](B $BA^(B $BA_(B +$BA`(B $BAa(B $BAb(B $BAc(B $BAd(B $BAe(B $BAf(B $BAg(B $BAh(B $BAi(B $BAj(B $BAk(B $BAl(B $BAm(B $BAn(B $BAo(B +$BAp(B $BAq(B $BAr(B $BAs(B $BAt(B $BAu(B $BAv(B $BAw(B $BAx(B $BAy(B $BAz(B $BA{(B $BA|(B $BA}(B $BA~(B + $BB!(B $BB"(B $BB#(B $BB$(B $BB%(B $BB&(B $BB'(B $BB((B $BB)(B $BB*(B $BB+(B $BB,(B $BB-(B $BB.(B $BB/(B +$BB0(B $BB1(B $BB2(B $BB3(B $BB4(B $BB5(B $BB6(B $BB7(B $BB8(B $BB9(B $BB:(B $BB;(B $BB<(B $BB=(B $BB>(B $BB?(B +$BB@(B $BBA(B $BBB(B $BBC(B $BBD(B $BBE(B $BBF(B $BBG(B $BBH(B $BBI(B $BBJ(B $BBK(B $BBL(B $BBM(B $BBN(B $BBO(B +$BBP(B $BBQ(B $BBR(B $BBS(B $BBT(B $BBU(B $BBV(B $BBW(B $BBX(B $BBY(B $BBZ(B $BB[(B $BB\(B $BB](B $BB^(B $BB_(B +$BB`(B $BBa(B $BBb(B $BBc(B $BBd(B $BBe(B $BBf(B $BBg(B $BBh(B $BBi(B $BBj(B $BBk(B $BBl(B $BBm(B $BBn(B $BBo(B +$BBp(B $BBq(B $BBr(B $BBs(B $BBt(B $BBu(B $BBv(B $BBw(B $BBx(B $BBy(B $BBz(B $BB{(B $BB|(B $BB}(B $BB~(B + $BC!(B $BC"(B $BC#(B $BC$(B $BC%(B $BC&(B $BC'(B $BC((B $BC)(B $BC*(B $BC+(B $BC,(B $BC-(B $BC.(B $BC/(B +$BC0(B $BC1(B $BC2(B $BC3(B $BC4(B $BC5(B $BC6(B $BC7(B $BC8(B $BC9(B $BC:(B $BC;(B $BC<(B $BC=(B $BC>(B $BC?(B +$BC@(B $BCA(B $BCB(B $BCC(B $BCD(B $BCE(B $BCF(B $BCG(B $BCH(B $BCI(B $BCJ(B $BCK(B $BCL(B $BCM(B $BCN(B $BCO(B +$BCP(B $BCQ(B $BCR(B $BCS(B $BCT(B $BCU(B $BCV(B $BCW(B $BCX(B $BCY(B $BCZ(B $BC[(B $BC\(B $BC](B $BC^(B $BC_(B +$BC`(B $BCa(B $BCb(B $BCc(B $BCd(B $BCe(B $BCf(B $BCg(B $BCh(B $BCi(B $BCj(B $BCk(B $BCl(B $BCm(B $BCn(B $BCo(B +$BCp(B $BCq(B $BCr(B $BCs(B $BCt(B $BCu(B $BCv(B $BCw(B $BCx(B $BCy(B $BCz(B $BC{(B $BC|(B $BC}(B $BC~(B + $BD!(B $BD"(B $BD#(B $BD$(B $BD%(B $BD&(B $BD'(B $BD((B $BD)(B $BD*(B $BD+(B $BD,(B $BD-(B $BD.(B $BD/(B +$BD0(B $BD1(B $BD2(B $BD3(B $BD4(B $BD5(B $BD6(B $BD7(B $BD8(B $BD9(B $BD:(B $BD;(B $BD<(B $BD=(B $BD>(B $BD?(B +$BD@(B $BDA(B $BDB(B $BDC(B $BDD(B $BDE(B $BDF(B $BDG(B $BDH(B $BDI(B $BDJ(B $BDK(B $BDL(B $BDM(B $BDN(B $BDO(B +$BDP(B $BDQ(B $BDR(B $BDS(B $BDT(B $BDU(B $BDV(B $BDW(B $BDX(B $BDY(B $BDZ(B $BD[(B $BD\(B $BD](B $BD^(B $BD_(B +$BD`(B $BDa(B $BDb(B $BDc(B $BDd(B $BDe(B $BDf(B $BDg(B $BDh(B $BDi(B $BDj(B $BDk(B $BDl(B $BDm(B $BDn(B $BDo(B +$BDp(B $BDq(B $BDr(B $BDs(B $BDt(B $BDu(B $BDv(B $BDw(B $BDx(B $BDy(B $BDz(B $BD{(B $BD|(B $BD}(B $BD~(B + $BE!(B $BE"(B $BE#(B $BE$(B $BE%(B $BE&(B $BE'(B $BE((B $BE)(B $BE*(B $BE+(B $BE,(B $BE-(B $BE.(B $BE/(B +$BE0(B $BE1(B $BE2(B $BE3(B $BE4(B $BE5(B $BE6(B $BE7(B $BE8(B $BE9(B $BE:(B $BE;(B $BE<(B $BE=(B $BE>(B $BE?(B +$BE@(B $BEA(B $BEB(B $BEC(B $BED(B $BEE(B $BEF(B $BEG(B $BEH(B $BEI(B $BEJ(B $BEK(B $BEL(B $BEM(B $BEN(B $BEO(B +$BEP(B $BEQ(B $BER(B $BES(B $BET(B $BEU(B $BEV(B $BEW(B $BEX(B $BEY(B $BEZ(B $BE[(B $BE\(B $BE](B $BE^(B $BE_(B +$BE`(B $BEa(B $BEb(B $BEc(B $BEd(B $BEe(B $BEf(B $BEg(B $BEh(B $BEi(B $BEj(B $BEk(B $BEl(B $BEm(B $BEn(B $BEo(B +$BEp(B $BEq(B $BEr(B $BEs(B $BEt(B $BEu(B $BEv(B $BEw(B $BEx(B $BEy(B $BEz(B $BE{(B $BE|(B $BE}(B $BE~(B + $BF!(B $BF"(B $BF#(B $BF$(B $BF%(B $BF&(B $BF'(B $BF((B $BF)(B $BF*(B $BF+(B $BF,(B $BF-(B $BF.(B $BF/(B +$BF0(B $BF1(B $BF2(B $BF3(B $BF4(B $BF5(B $BF6(B $BF7(B $BF8(B $BF9(B $BF:(B $BF;(B $BF<(B $BF=(B $BF>(B $BF?(B +$BF@(B $BFA(B $BFB(B $BFC(B $BFD(B $BFE(B $BFF(B $BFG(B $BFH(B $BFI(B $BFJ(B $BFK(B $BFL(B $BFM(B $BFN(B $BFO(B +$BFP(B $BFQ(B $BFR(B $BFS(B $BFT(B $BFU(B $BFV(B $BFW(B $BFX(B $BFY(B $BFZ(B $BF[(B $BF\(B $BF](B $BF^(B $BF_(B +$BF`(B $BFa(B $BFb(B $BFc(B $BFd(B $BFe(B $BFf(B $BFg(B $BFh(B $BFi(B $BFj(B $BFk(B $BFl(B $BFm(B $BFn(B $BFo(B +$BFp(B $BFq(B $BFr(B $BFs(B $BFt(B $BFu(B $BFv(B $BFw(B $BFx(B $BFy(B $BFz(B $BF{(B $BF|(B $BF}(B $BF~(B + $BG!(B $BG"(B $BG#(B $BG$(B $BG%(B $BG&(B $BG'(B $BG((B $BG)(B $BG*(B $BG+(B $BG,(B $BG-(B $BG.(B $BG/(B +$BG0(B $BG1(B $BG2(B $BG3(B $BG4(B $BG5(B $BG6(B $BG7(B $BG8(B $BG9(B $BG:(B $BG;(B $BG<(B $BG=(B $BG>(B $BG?(B +$BG@(B $BGA(B $BGB(B $BGC(B $BGD(B $BGE(B $BGF(B $BGG(B $BGH(B $BGI(B $BGJ(B $BGK(B $BGL(B $BGM(B $BGN(B $BGO(B +$BGP(B $BGQ(B $BGR(B $BGS(B $BGT(B $BGU(B $BGV(B $BGW(B $BGX(B $BGY(B $BGZ(B $BG[(B $BG\(B $BG](B $BG^(B $BG_(B +$BG`(B $BGa(B $BGb(B $BGc(B $BGd(B $BGe(B $BGf(B $BGg(B $BGh(B $BGi(B $BGj(B $BGk(B $BGl(B $BGm(B $BGn(B $BGo(B +$BGp(B $BGq(B $BGr(B $BGs(B $BGt(B $BGu(B $BGv(B $BGw(B $BGx(B $BGy(B $BGz(B $BG{(B $BG|(B $BG}(B $BG~(B + $BH!(B $BH"(B $BH#(B $BH$(B $BH%(B $BH&(B $BH'(B $BH((B $BH)(B $BH*(B $BH+(B $BH,(B $BH-(B $BH.(B $BH/(B +$BH0(B $BH1(B $BH2(B $BH3(B $BH4(B $BH5(B $BH6(B $BH7(B $BH8(B $BH9(B $BH:(B $BH;(B $BH<(B $BH=(B $BH>(B $BH?(B +$BH@(B $BHA(B $BHB(B $BHC(B $BHD(B $BHE(B $BHF(B $BHG(B $BHH(B $BHI(B $BHJ(B $BHK(B $BHL(B $BHM(B $BHN(B $BHO(B +$BHP(B $BHQ(B $BHR(B $BHS(B $BHT(B $BHU(B $BHV(B $BHW(B $BHX(B $BHY(B $BHZ(B $BH[(B $BH\(B $BH](B $BH^(B $BH_(B +$BH`(B $BHa(B $BHb(B $BHc(B $BHd(B $BHe(B $BHf(B $BHg(B $BHh(B $BHi(B $BHj(B $BHk(B $BHl(B $BHm(B $BHn(B $BHo(B +$BHp(B $BHq(B $BHr(B $BHs(B $BHt(B $BHu(B $BHv(B $BHw(B $BHx(B $BHy(B $BHz(B $BH{(B $BH|(B $BH}(B $BH~(B + $BI!(B $BI"(B $BI#(B $BI$(B $BI%(B $BI&(B $BI'(B $BI((B $BI)(B $BI*(B $BI+(B $BI,(B $BI-(B $BI.(B $BI/(B +$BI0(B $BI1(B $BI2(B $BI3(B $BI4(B $BI5(B $BI6(B $BI7(B $BI8(B $BI9(B $BI:(B $BI;(B $BI<(B $BI=(B $BI>(B $BI?(B +$BI@(B $BIA(B $BIB(B $BIC(B $BID(B $BIE(B $BIF(B $BIG(B $BIH(B $BII(B $BIJ(B $BIK(B $BIL(B $BIM(B $BIN(B $BIO(B +$BIP(B $BIQ(B $BIR(B $BIS(B $BIT(B $BIU(B $BIV(B $BIW(B $BIX(B $BIY(B $BIZ(B $BI[(B $BI\(B $BI](B $BI^(B $BI_(B +$BI`(B $BIa(B $BIb(B $BIc(B $BId(B $BIe(B $BIf(B $BIg(B $BIh(B $BIi(B $BIj(B $BIk(B $BIl(B $BIm(B $BIn(B $BIo(B +$BIp(B $BIq(B $BIr(B $BIs(B $BIt(B $BIu(B $BIv(B $BIw(B $BIx(B $BIy(B $BIz(B $BI{(B $BI|(B $BI}(B $BI~(B + $BJ!(B $BJ"(B $BJ#(B $BJ$(B $BJ%(B $BJ&(B $BJ'(B $BJ((B $BJ)(B $BJ*(B $BJ+(B $BJ,(B $BJ-(B $BJ.(B $BJ/(B +$BJ0(B $BJ1(B $BJ2(B $BJ3(B $BJ4(B $BJ5(B $BJ6(B $BJ7(B $BJ8(B $BJ9(B $BJ:(B $BJ;(B $BJ<(B $BJ=(B $BJ>(B $BJ?(B +$BJ@(B $BJA(B $BJB(B $BJC(B $BJD(B $BJE(B $BJF(B $BJG(B $BJH(B $BJI(B $BJJ(B $BJK(B $BJL(B $BJM(B $BJN(B $BJO(B +$BJP(B $BJQ(B $BJR(B $BJS(B $BJT(B $BJU(B $BJV(B $BJW(B $BJX(B $BJY(B $BJZ(B $BJ[(B $BJ\(B $BJ](B $BJ^(B $BJ_(B +$BJ`(B $BJa(B $BJb(B $BJc(B $BJd(B $BJe(B $BJf(B $BJg(B $BJh(B $BJi(B $BJj(B $BJk(B $BJl(B $BJm(B $BJn(B $BJo(B +$BJp(B $BJq(B $BJr(B $BJs(B $BJt(B $BJu(B $BJv(B $BJw(B $BJx(B $BJy(B $BJz(B $BJ{(B $BJ|(B $BJ}(B $BJ~(B + $BK!(B $BK"(B $BK#(B $BK$(B $BK%(B $BK&(B $BK'(B $BK((B $BK)(B $BK*(B $BK+(B $BK,(B $BK-(B $BK.(B $BK/(B +$BK0(B $BK1(B $BK2(B $BK3(B $BK4(B $BK5(B $BK6(B $BK7(B $BK8(B $BK9(B $BK:(B $BK;(B $BK<(B $BK=(B $BK>(B $BK?(B +$BK@(B $BKA(B $BKB(B $BKC(B $BKD(B $BKE(B $BKF(B $BKG(B $BKH(B $BKI(B $BKJ(B $BKK(B $BKL(B $BKM(B $BKN(B $BKO(B +$BKP(B $BKQ(B $BKR(B $BKS(B $BKT(B $BKU(B $BKV(B $BKW(B $BKX(B $BKY(B $BKZ(B $BK[(B $BK\(B $BK](B $BK^(B $BK_(B +$BK`(B $BKa(B $BKb(B $BKc(B $BKd(B $BKe(B $BKf(B $BKg(B $BKh(B $BKi(B $BKj(B $BKk(B $BKl(B $BKm(B $BKn(B $BKo(B +$BKp(B $BKq(B $BKr(B $BKs(B $BKt(B $BKu(B $BKv(B $BKw(B $BKx(B $BKy(B $BKz(B $BK{(B $BK|(B $BK}(B $BK~(B + $BL!(B $BL"(B $BL#(B $BL$(B $BL%(B $BL&(B $BL'(B $BL((B $BL)(B $BL*(B $BL+(B $BL,(B $BL-(B $BL.(B $BL/(B +$BL0(B $BL1(B $BL2(B $BL3(B $BL4(B $BL5(B $BL6(B $BL7(B $BL8(B $BL9(B $BL:(B $BL;(B $BL<(B $BL=(B $BL>(B $BL?(B +$BL@(B $BLA(B $BLB(B $BLC(B $BLD(B $BLE(B $BLF(B $BLG(B $BLH(B $BLI(B $BLJ(B $BLK(B $BLL(B $BLM(B $BLN(B $BLO(B +$BLP(B $BLQ(B $BLR(B $BLS(B $BLT(B $BLU(B $BLV(B $BLW(B $BLX(B $BLY(B $BLZ(B $BL[(B $BL\(B $BL](B $BL^(B $BL_(B +$BL`(B $BLa(B $BLb(B $BLc(B $BLd(B $BLe(B $BLf(B $BLg(B $BLh(B $BLi(B $BLj(B $BLk(B $BLl(B $BLm(B $BLn(B $BLo(B +$BLp(B $BLq(B $BLr(B $BLs(B $BLt(B $BLu(B $BLv(B $BLw(B $BLx(B $BLy(B $BLz(B $BL{(B $BL|(B $BL}(B $BL~(B + $BM!(B $BM"(B $BM#(B $BM$(B $BM%(B $BM&(B $BM'(B $BM((B $BM)(B $BM*(B $BM+(B $BM,(B $BM-(B $BM.(B $BM/(B +$BM0(B $BM1(B $BM2(B $BM3(B $BM4(B $BM5(B $BM6(B $BM7(B $BM8(B $BM9(B $BM:(B $BM;(B $BM<(B $BM=(B $BM>(B $BM?(B +$BM@(B $BMA(B $BMB(B $BMC(B $BMD(B $BME(B $BMF(B $BMG(B $BMH(B $BMI(B $BMJ(B $BMK(B $BML(B $BMM(B $BMN(B $BMO(B +$BMP(B $BMQ(B $BMR(B $BMS(B $BMT(B $BMU(B $BMV(B $BMW(B $BMX(B $BMY(B $BMZ(B $BM[(B $BM\(B $BM](B $BM^(B $BM_(B +$BM`(B $BMa(B $BMb(B $BMc(B $BMd(B $BMe(B $BMf(B $BMg(B $BMh(B $BMi(B $BMj(B $BMk(B $BMl(B $BMm(B $BMn(B $BMo(B +$BMp(B $BMq(B $BMr(B $BMs(B $BMt(B $BMu(B $BMv(B $BMw(B $BMx(B $BMy(B $BMz(B $BM{(B $BM|(B $BM}(B $BM~(B + $BN!(B $BN"(B $BN#(B $BN$(B $BN%(B $BN&(B $BN'(B $BN((B $BN)(B $BN*(B $BN+(B $BN,(B $BN-(B $BN.(B $BN/(B +$BN0(B $BN1(B $BN2(B $BN3(B $BN4(B $BN5(B $BN6(B $BN7(B $BN8(B $BN9(B $BN:(B $BN;(B $BN<(B $BN=(B $BN>(B $BN?(B +$BN@(B $BNA(B $BNB(B $BNC(B $BND(B $BNE(B $BNF(B $BNG(B $BNH(B $BNI(B $BNJ(B $BNK(B $BNL(B $BNM(B $BNN(B $BNO(B +$BNP(B $BNQ(B $BNR(B $BNS(B $BNT(B $BNU(B $BNV(B $BNW(B $BNX(B $BNY(B $BNZ(B $BN[(B $BN\(B $BN](B $BN^(B $BN_(B +$BN`(B $BNa(B $BNb(B $BNc(B $BNd(B $BNe(B $BNf(B $BNg(B $BNh(B $BNi(B $BNj(B $BNk(B $BNl(B $BNm(B $BNn(B $BNo(B +$BNp(B $BNq(B $BNr(B $BNs(B $BNt(B $BNu(B $BNv(B $BNw(B $BNx(B $BNy(B $BNz(B $BN{(B $BN|(B $BN}(B $BN~(B + $BO!(B $BO"(B $BO#(B $BO$(B $BO%(B $BO&(B $BO'(B $BO((B $BO)(B $BO*(B $BO+(B $BO,(B $BO-(B $BO.(B $BO/(B +$BO0(B $BO1(B $BO2(B $BO3(B $BO4(B $BO5(B $BO6(B $BO7(B $BO8(B $BO9(B $BO:(B $BO;(B $BO<(B $BO=(B $BO>(B $BO?(B +$BO@(B $BOA(B $BOB(B $BOC(B $BOD(B $BOE(B $BOF(B $BOG(B $BOH(B $BOI(B $BOJ(B $BOK(B $BOL(B $BOM(B $BON(B $BOO(B +$BOP(B $BOQ(B $BOR(B $BOS(B $(QOU(B $(QOV(B $(QOW(B $(QOX(B $(QOY(B $(QOZ(B $(QO[(B $(QO\(B $(QO](B $(QO^(B $(QO_(B +$(QO`(B $(QOa(B $(QOb(B $(QOc(B $(QOd(B $(QOe(B $(QOf(B $(QOg(B $(QOh(B $(QOi(B $(QOj(B $(QOk(B $(QOl(B $(QOm(B $(QOn(B $(QOo(B +$(QOp(B $(QOq(B $(QOr(B $(QOs(B $(QOt(B $(QOu(B $(QOv(B $(QOw(B $(QOx(B $(QOy(B $(QOz(B $(QO{(B $(QO|(B $(QO}(B + $BP!(B $BP"(B $BP#(B $BP$(B $BP%(B $BP&(B $BP'(B $BP((B $BP)(B $BP*(B $BP+(B $BP,(B $BP-(B $BP.(B $BP/(B +$BP0(B $BP1(B $BP2(B $BP3(B $BP4(B $BP5(B $BP6(B $BP7(B $BP8(B $BP9(B $BP:(B $BP;(B $BP<(B $BP=(B $BP>(B $BP?(B +$BP@(B $BPA(B $BPB(B $BPC(B $BPD(B $BPE(B $BPF(B $BPG(B $BPH(B $BPI(B $BPJ(B $BPK(B $BPL(B $BPM(B $BPN(B $BPO(B +$BPP(B $BPQ(B $BPR(B $BPS(B $BPT(B $BPU(B $BPV(B $BPW(B $BPX(B $BPY(B $BPZ(B $BP[(B $BP\(B $BP](B $BP^(B $BP_(B +$BP`(B $BPa(B $BPb(B $BPc(B $BPd(B $BPe(B $BPf(B $BPg(B $BPh(B $BPi(B $BPj(B $BPk(B $BPl(B $BPm(B $BPn(B $BPo(B +$BPp(B $BPq(B $BPr(B $BPs(B $BPt(B $BPu(B $BPv(B $BPw(B $BPx(B $BPy(B $BPz(B $BP{(B $BP|(B $BP}(B $BP~(B + $BQ!(B $BQ"(B $BQ#(B $BQ$(B $BQ%(B $BQ&(B $BQ'(B $BQ((B $BQ)(B $BQ*(B $BQ+(B $BQ,(B $BQ-(B $BQ.(B $BQ/(B +$BQ0(B $BQ1(B $BQ2(B $BQ3(B $BQ4(B $BQ5(B $BQ6(B $BQ7(B $BQ8(B $BQ9(B $BQ:(B $BQ;(B $BQ<(B $BQ=(B $BQ>(B $BQ?(B +$BQ@(B $BQA(B $BQB(B $BQC(B $BQD(B $BQE(B $BQF(B $BQG(B $BQH(B $BQI(B $BQJ(B $BQK(B $BQL(B $BQM(B $BQN(B $BQO(B +$BQP(B $BQQ(B $BQR(B $BQS(B $BQT(B $BQU(B $BQV(B $BQW(B $BQX(B $BQY(B $BQZ(B $BQ[(B $BQ\(B $BQ](B $BQ^(B $BQ_(B +$BQ`(B $BQa(B $BQb(B $BQc(B $BQd(B $BQe(B $BQf(B $BQg(B $BQh(B $BQi(B $BQj(B $BQk(B $BQl(B $BQm(B $BQn(B $BQo(B +$BQp(B $BQq(B $BQr(B $BQs(B $BQt(B $BQu(B $BQv(B $BQw(B $BQx(B $BQy(B $BQz(B $BQ{(B $BQ|(B $BQ}(B $BQ~(B + $BR!(B $BR"(B $BR#(B $BR$(B $BR%(B $BR&(B $BR'(B $BR((B $BR)(B $BR*(B $BR+(B $BR,(B $BR-(B $BR.(B $BR/(B +$BR0(B $BR1(B $BR2(B $BR3(B $BR4(B $BR5(B $BR6(B $BR7(B $BR8(B $BR9(B $BR:(B $BR;(B $BR<(B $BR=(B $BR>(B $BR?(B +$BR@(B $BRA(B $BRB(B $BRC(B $BRD(B $BRE(B $BRF(B $BRG(B $BRH(B $BRI(B $BRJ(B $BRK(B $BRL(B $BRM(B $BRN(B $BRO(B +$BRP(B $BRQ(B $BRR(B $BRS(B $BRT(B $BRU(B $BRV(B $BRW(B $BRX(B $BRY(B $BRZ(B $BR[(B $BR\(B $BR](B $BR^(B $BR_(B +$BR`(B $BRa(B $BRb(B $BRc(B $BRd(B $BRe(B $BRf(B $BRg(B $BRh(B $BRi(B $BRj(B $BRk(B $BRl(B $BRm(B $BRn(B $BRo(B +$BRp(B $BRq(B $BRr(B $BRs(B $BRt(B $BRu(B $BRv(B $BRw(B $BRx(B $BRy(B $BRz(B $BR{(B $BR|(B $BR}(B $BR~(B + $BS!(B $BS"(B $BS#(B $BS$(B $BS%(B $BS&(B $BS'(B $BS((B $BS)(B $BS*(B $BS+(B $BS,(B $BS-(B $BS.(B $BS/(B +$BS0(B $BS1(B $BS2(B $BS3(B $BS4(B $BS5(B $BS6(B $BS7(B $BS8(B $BS9(B $BS:(B $BS;(B $BS<(B $BS=(B $BS>(B $BS?(B +$BS@(B $BSA(B $BSB(B $BSC(B $BSD(B $BSE(B $BSF(B $BSG(B $BSH(B $BSI(B $BSJ(B $BSK(B $BSL(B $BSM(B $BSN(B $BSO(B +$BSP(B $BSQ(B $BSR(B $BSS(B $BST(B $BSU(B $BSV(B $BSW(B $BSX(B $BSY(B $BSZ(B $BS[(B $BS\(B $BS](B $BS^(B $BS_(B +$BS`(B $BSa(B $BSb(B $BSc(B $BSd(B $BSe(B $BSf(B $BSg(B $BSh(B $BSi(B $BSj(B $BSk(B $BSl(B $BSm(B $BSn(B $BSo(B +$BSp(B $BSq(B $BSr(B $BSs(B $BSt(B $BSu(B $BSv(B $BSw(B $BSx(B $BSy(B $BSz(B $BS{(B $BS|(B $BS}(B $BS~(B + $BT!(B $BT"(B $BT#(B $BT$(B $BT%(B $BT&(B $BT'(B $BT((B $BT)(B $BT*(B $BT+(B $BT,(B $BT-(B $BT.(B $BT/(B +$BT0(B $BT1(B $BT2(B $BT3(B $BT4(B $BT5(B $BT6(B $BT7(B $BT8(B $BT9(B $BT:(B $BT;(B $BT<(B $BT=(B $BT>(B $BT?(B +$BT@(B $BTA(B $BTB(B $BTC(B $BTD(B $BTE(B $BTF(B $BTG(B $BTH(B $BTI(B $BTJ(B $BTK(B $BTL(B $BTM(B $BTN(B $BTO(B +$BTP(B $BTQ(B $BTR(B $BTS(B $BTT(B $BTU(B $BTV(B $BTW(B $BTX(B $BTY(B $BTZ(B $BT[(B $BT\(B $BT](B $BT^(B $BT_(B +$BT`(B $BTa(B $BTb(B $BTc(B $BTd(B $BTe(B $BTf(B $BTg(B $BTh(B $BTi(B $BTj(B $BTk(B $BTl(B $BTm(B $BTn(B $BTo(B +$BTp(B $BTq(B $BTr(B $BTs(B $BTt(B $BTu(B $BTv(B $BTw(B $BTx(B $BTy(B $BTz(B $BT{(B $BT|(B $BT}(B $BT~(B + $BU!(B $BU"(B $BU#(B $BU$(B $BU%(B $BU&(B $BU'(B $BU((B $BU)(B $BU*(B $BU+(B $BU,(B $BU-(B $BU.(B $BU/(B +$BU0(B $BU1(B $BU2(B $BU3(B $BU4(B $BU5(B $BU6(B $BU7(B $BU8(B $BU9(B $BU:(B $BU;(B $BU<(B $BU=(B $BU>(B $BU?(B +$BU@(B $BUA(B $BUB(B $BUC(B $BUD(B $BUE(B $BUF(B $BUG(B $BUH(B $BUI(B $BUJ(B $BUK(B $BUL(B $BUM(B $BUN(B $BUO(B +$BUP(B $BUQ(B $BUR(B $BUS(B $BUT(B $BUU(B $BUV(B $BUW(B $BUX(B $BUY(B $BUZ(B $BU[(B $BU\(B $BU](B $BU^(B $BU_(B +$BU`(B $BUa(B $BUb(B $BUc(B $BUd(B $BUe(B $BUf(B $BUg(B $BUh(B $BUi(B $BUj(B $BUk(B $BUl(B $BUm(B $BUn(B $BUo(B +$BUp(B $BUq(B $BUr(B $BUs(B $BUt(B $BUu(B $BUv(B $BUw(B $BUx(B $BUy(B $BUz(B $BU{(B $BU|(B $BU}(B $BU~(B + $BV!(B $BV"(B $BV#(B $BV$(B $BV%(B $BV&(B $BV'(B $BV((B $BV)(B $BV*(B $BV+(B $BV,(B $BV-(B $BV.(B $BV/(B +$BV0(B $BV1(B $BV2(B $BV3(B $BV4(B $BV5(B $BV6(B $BV7(B $BV8(B $BV9(B $BV:(B $BV;(B $BV<(B $BV=(B $BV>(B $BV?(B +$BV@(B $BVA(B $BVB(B $BVC(B $BVD(B $BVE(B $BVF(B $BVG(B $BVH(B $BVI(B $BVJ(B $BVK(B $BVL(B $BVM(B $BVN(B $BVO(B +$BVP(B $BVQ(B $BVR(B $BVS(B $BVT(B $BVU(B $BVV(B $BVW(B $BVX(B $BVY(B $BVZ(B $BV[(B $BV\(B $BV](B $BV^(B $BV_(B +$BV`(B $BVa(B $BVb(B $BVc(B $BVd(B $BVe(B $BVf(B $BVg(B $BVh(B $BVi(B $BVj(B $BVk(B $BVl(B $BVm(B $BVn(B $BVo(B +$BVp(B $BVq(B $BVr(B $BVs(B $BVt(B $BVu(B $BVv(B $BVw(B $BVx(B $BVy(B $BVz(B $BV{(B $BV|(B $BV}(B $BV~(B + $BW!(B $BW"(B $BW#(B $BW$(B $BW%(B $BW&(B $BW'(B $BW((B $BW)(B $BW*(B $BW+(B $BW,(B $BW-(B $BW.(B $BW/(B +$BW0(B $BW1(B $BW2(B $BW3(B $BW4(B $BW5(B $BW6(B $BW7(B $BW8(B $BW9(B $BW:(B $BW;(B $BW<(B $BW=(B $BW>(B $BW?(B +$BW@(B $BWA(B $BWB(B $BWC(B $BWD(B $BWE(B $BWF(B $BWG(B $BWH(B $BWI(B $BWJ(B $BWK(B $BWL(B $BWM(B $BWN(B $BWO(B +$BWP(B $BWQ(B $BWR(B $BWS(B $BWT(B $BWU(B $BWV(B $BWW(B $BWX(B $BWY(B $BWZ(B $BW[(B $BW\(B $BW](B $BW^(B $BW_(B +$BW`(B $BWa(B $BWb(B $BWc(B $BWd(B $BWe(B $BWf(B $BWg(B $BWh(B $BWi(B $BWj(B $BWk(B $BWl(B $BWm(B $BWn(B $BWo(B +$BWp(B $BWq(B $BWr(B $BWs(B $BWt(B $BWu(B $BWv(B $BWw(B $BWx(B $BWy(B $BWz(B $BW{(B $BW|(B $BW}(B $BW~(B + $BX!(B $BX"(B $BX#(B $BX$(B $BX%(B $BX&(B $BX'(B $BX((B $BX)(B $BX*(B $BX+(B $BX,(B $BX-(B $BX.(B $BX/(B +$BX0(B $BX1(B $BX2(B $BX3(B $BX4(B $BX5(B $BX6(B $BX7(B $BX8(B $BX9(B $BX:(B $BX;(B $BX<(B $BX=(B $BX>(B $BX?(B +$BX@(B $BXA(B $BXB(B $BXC(B $BXD(B $BXE(B $BXF(B $BXG(B $BXH(B $BXI(B $BXJ(B $BXK(B $BXL(B $BXM(B $BXN(B $BXO(B +$BXP(B $BXQ(B $BXR(B $BXS(B $BXT(B $BXU(B $BXV(B $BXW(B $BXX(B $BXY(B $BXZ(B $BX[(B $BX\(B $BX](B $BX^(B $BX_(B +$BX`(B $BXa(B $BXb(B $BXc(B $BXd(B $BXe(B $BXf(B $BXg(B $BXh(B $BXi(B $BXj(B $BXk(B $BXl(B $BXm(B $BXn(B $BXo(B +$BXp(B $BXq(B $BXr(B $BXs(B $BXt(B $BXu(B $BXv(B $BXw(B $BXx(B $BXy(B $BXz(B $BX{(B $BX|(B $BX}(B $BX~(B + $BY!(B $BY"(B $BY#(B $BY$(B $BY%(B $BY&(B $BY'(B $BY((B $BY)(B $BY*(B $BY+(B $BY,(B $BY-(B $BY.(B $BY/(B +$BY0(B $BY1(B $BY2(B $BY3(B $BY4(B $BY5(B $BY6(B $BY7(B $BY8(B $BY9(B $BY:(B $BY;(B $BY<(B $BY=(B $BY>(B $BY?(B +$BY@(B $BYA(B $BYB(B $BYC(B $BYD(B $BYE(B $BYF(B $BYG(B $BYH(B $BYI(B $BYJ(B $BYK(B $BYL(B $BYM(B $BYN(B $BYO(B +$BYP(B $BYQ(B $BYR(B $BYS(B $BYT(B $BYU(B $BYV(B $BYW(B $BYX(B $BYY(B $BYZ(B $BY[(B $BY\(B $BY](B $BY^(B $BY_(B +$BY`(B $BYa(B $BYb(B $BYc(B $BYd(B $BYe(B $BYf(B $BYg(B $BYh(B $BYi(B $BYj(B $BYk(B $BYl(B $BYm(B $BYn(B $BYo(B +$BYp(B $BYq(B $BYr(B $BYs(B $BYt(B $BYu(B $BYv(B $BYw(B $BYx(B $BYy(B $BYz(B $BY{(B $BY|(B $BY}(B $BY~(B + $BZ!(B $BZ"(B $BZ#(B $BZ$(B $BZ%(B $BZ&(B $BZ'(B $BZ((B $BZ)(B $BZ*(B $BZ+(B $BZ,(B $BZ-(B $BZ.(B $BZ/(B +$BZ0(B $BZ1(B $BZ2(B $BZ3(B $BZ4(B $BZ5(B $BZ6(B $BZ7(B $BZ8(B $BZ9(B $BZ:(B $BZ;(B $BZ<(B $BZ=(B $BZ>(B $BZ?(B +$BZ@(B $BZA(B $BZB(B $BZC(B $BZD(B $BZE(B $BZF(B $BZG(B $BZH(B $BZI(B $BZJ(B $BZK(B $BZL(B $BZM(B $BZN(B $BZO(B +$BZP(B $BZQ(B $BZR(B $BZS(B $BZT(B $BZU(B $BZV(B $BZW(B $BZX(B $BZY(B $BZZ(B $BZ[(B $BZ\(B $BZ](B $BZ^(B $BZ_(B +$BZ`(B $BZa(B $BZb(B $BZc(B $BZd(B $BZe(B $BZf(B $BZg(B $BZh(B $BZi(B $BZj(B $BZk(B $BZl(B $BZm(B $BZn(B $BZo(B +$BZp(B $BZq(B $BZr(B $BZs(B $BZt(B $BZu(B $BZv(B $BZw(B $BZx(B $BZy(B $BZz(B $BZ{(B $BZ|(B $BZ}(B $BZ~(B + $B[!(B $B["(B $B[#(B $B[$(B $B[%(B $B[&(B $B['(B $B[((B $B[)(B $B[*(B $B[+(B $B[,(B $B[-(B $B[.(B $B[/(B +$B[0(B $B[1(B $B[2(B $B[3(B $B[4(B $B[5(B $B[6(B $B[7(B $B[8(B $B[9(B $B[:(B $B[;(B $B[<(B $B[=(B $B[>(B $B[?(B +$B[@(B $B[A(B $B[B(B $B[C(B $B[D(B $B[E(B $B[F(B $B[G(B $B[H(B $B[I(B $B[J(B $B[K(B $B[L(B $B[M(B $B[N(B $B[O(B +$B[P(B $B[Q(B $B[R(B $B[S(B $B[T(B $B[U(B $B[V(B $B[W(B $B[X(B $B[Y(B $B[Z(B $B[[(B $B[\(B $B[](B $B[^(B $B[_(B +$B[`(B $B[a(B $B[b(B $B[c(B $B[d(B $B[e(B $B[f(B $B[g(B $B[h(B $B[i(B $B[j(B $B[k(B $B[l(B $B[m(B $B[n(B $B[o(B +$B[p(B $B[q(B $B[r(B $B[s(B $B[t(B $B[u(B $B[v(B $B[w(B $B[x(B $B[y(B $B[z(B $B[{(B $B[|(B $B[}(B $B[~(B + $B\!(B $B\"(B $B\#(B $B\$(B $B\%(B $B\&(B $B\'(B $B\((B $B\)(B $B\*(B $B\+(B $B\,(B $B\-(B $B\.(B $B\/(B +$B\0(B $B\1(B $B\2(B $B\3(B $B\4(B $B\5(B $B\6(B $B\7(B $B\8(B $B\9(B $B\:(B $B\;(B $B\<(B $B\=(B $B\>(B $B\?(B +$B\@(B $B\A(B $B\B(B $B\C(B $B\D(B $B\E(B $B\F(B $B\G(B $B\H(B $B\I(B $B\J(B $B\K(B $B\L(B $B\M(B $B\N(B $B\O(B +$B\P(B $B\Q(B $B\R(B $B\S(B $B\T(B $B\U(B $B\V(B $B\W(B $B\X(B $B\Y(B $B\Z(B $B\[(B $B\\(B $B\](B $B\^(B $B\_(B +$B\`(B $B\a(B $B\b(B $B\c(B $B\d(B $B\e(B $B\f(B $B\g(B $B\h(B $B\i(B $B\j(B $B\k(B $B\l(B $B\m(B $B\n(B $B\o(B +$B\p(B $B\q(B $B\r(B $B\s(B $B\t(B $B\u(B $B\v(B $B\w(B $B\x(B $B\y(B $B\z(B $B\{(B $B\|(B $B\}(B $B\~(B + $B]!(B $B]"(B $B]#(B $B]$(B $B]%(B $B]&(B $B]'(B $B]((B $B])(B $B]*(B $B]+(B $B],(B $B]-(B $B].(B $B]/(B +$B]0(B $B]1(B $B]2(B $B]3(B $B]4(B $B]5(B $B]6(B $B]7(B $B]8(B $B]9(B $B]:(B $B];(B $B]<(B $B]=(B $B]>(B $B]?(B +$B]@(B $B]A(B $B]B(B $B]C(B $B]D(B $B]E(B $B]F(B $B]G(B $B]H(B $B]I(B $B]J(B $B]K(B $B]L(B $B]M(B $B]N(B $B]O(B +$B]P(B $B]Q(B $B]R(B $B]S(B $B]T(B $B]U(B $B]V(B $B]W(B $B]X(B $B]Y(B $B]Z(B $B][(B $B]\(B $B]](B $B]^(B $B]_(B +$B]`(B $B]a(B $B]b(B $B]c(B $B]d(B $B]e(B $B]f(B $B]g(B $B]h(B $B]i(B $B]j(B $B]k(B $B]l(B $B]m(B $B]n(B $B]o(B +$B]p(B $B]q(B $B]r(B $B]s(B $B]t(B $B]u(B $B]v(B $B]w(B $B]x(B $B]y(B $B]z(B $B]{(B $B]|(B $B]}(B $B]~(B + $B^!(B $B^"(B $B^#(B $B^$(B $B^%(B $B^&(B $B^'(B $B^((B $B^)(B $B^*(B $B^+(B $B^,(B $B^-(B $B^.(B $B^/(B +$B^0(B $B^1(B $B^2(B $B^3(B $B^4(B $B^5(B $B^6(B $B^7(B $B^8(B $B^9(B $B^:(B $B^;(B $B^<(B $B^=(B $B^>(B $B^?(B +$B^@(B $B^A(B $B^B(B $B^C(B $B^D(B $B^E(B $B^F(B $B^G(B $B^H(B $B^I(B $B^J(B $B^K(B $B^L(B $B^M(B $B^N(B $B^O(B +$B^P(B $B^Q(B $B^R(B $B^S(B $B^T(B $B^U(B $B^V(B $B^W(B $B^X(B $B^Y(B $B^Z(B $B^[(B $B^\(B $B^](B $B^^(B $B^_(B +$B^`(B $B^a(B $B^b(B $B^c(B $B^d(B $B^e(B $B^f(B $B^g(B $B^h(B $B^i(B $B^j(B $B^k(B $B^l(B $B^m(B $B^n(B $B^o(B +$B^p(B $B^q(B $B^r(B $B^s(B $B^t(B $B^u(B $B^v(B $B^w(B $B^x(B $B^y(B $B^z(B $B^{(B $B^|(B $B^}(B $B^~(B + $B_!(B $B_"(B $B_#(B $B_$(B $B_%(B $B_&(B $B_'(B $B_((B $B_)(B $B_*(B $B_+(B $B_,(B $B_-(B $B_.(B $B_/(B +$B_0(B $B_1(B $B_2(B $B_3(B $B_4(B $B_5(B $B_6(B $B_7(B $B_8(B $B_9(B $B_:(B $B_;(B $B_<(B $B_=(B $B_>(B $B_?(B +$B_@(B $B_A(B $B_B(B $B_C(B $B_D(B $B_E(B $B_F(B $B_G(B $B_H(B $B_I(B $B_J(B $B_K(B $B_L(B $B_M(B $B_N(B $B_O(B +$B_P(B $B_Q(B $B_R(B $B_S(B $B_T(B $B_U(B $B_V(B $B_W(B $B_X(B $B_Y(B $B_Z(B $B_[(B $B_\(B $B_](B $B_^(B $B__(B +$B_`(B $B_a(B $B_b(B $B_c(B $B_d(B $B_e(B $B_f(B $B_g(B $B_h(B $B_i(B $B_j(B $B_k(B $B_l(B $B_m(B $B_n(B $B_o(B +$B_p(B $B_q(B $B_r(B $B_s(B $B_t(B $B_u(B $B_v(B $B_w(B $B_x(B $B_y(B $B_z(B $B_{(B $B_|(B $B_}(B $B_~(B + $B`!(B $B`"(B $B`#(B $B`$(B $B`%(B $B`&(B $B`'(B $B`((B $B`)(B $B`*(B $B`+(B $B`,(B $B`-(B $B`.(B $B`/(B +$B`0(B $B`1(B $B`2(B $B`3(B $B`4(B $B`5(B $B`6(B $B`7(B $B`8(B $B`9(B $B`:(B $B`;(B $B`<(B $B`=(B $B`>(B $B`?(B +$B`@(B $B`A(B $B`B(B $B`C(B $B`D(B $B`E(B $B`F(B $B`G(B $B`H(B $B`I(B $B`J(B $B`K(B $B`L(B $B`M(B $B`N(B $B`O(B +$B`P(B $B`Q(B $B`R(B $B`S(B $B`T(B $B`U(B $B`V(B $B`W(B $B`X(B $B`Y(B $B`Z(B $B`[(B $B`\(B $B`](B $B`^(B $B`_(B +$B``(B $B`a(B $B`b(B $B`c(B $B`d(B $B`e(B $B`f(B $B`g(B $B`h(B $B`i(B $B`j(B $B`k(B $B`l(B $B`m(B $B`n(B $B`o(B +$B`p(B $B`q(B $B`r(B $B`s(B $B`t(B $B`u(B $B`v(B $B`w(B $B`x(B $B`y(B $B`z(B $B`{(B $B`|(B $B`}(B $B`~(B + $Ba!(B $Ba"(B $Ba#(B $Ba$(B $Ba%(B $Ba&(B $Ba'(B $Ba((B $Ba)(B $Ba*(B $Ba+(B $Ba,(B $Ba-(B $Ba.(B $Ba/(B +$Ba0(B $Ba1(B $Ba2(B $Ba3(B $Ba4(B $Ba5(B $Ba6(B $Ba7(B $Ba8(B $Ba9(B $Ba:(B $Ba;(B $Ba<(B $Ba=(B $Ba>(B $Ba?(B +$Ba@(B $BaA(B $BaB(B $BaC(B $BaD(B $BaE(B $BaF(B $BaG(B $BaH(B $BaI(B $BaJ(B $BaK(B $BaL(B $BaM(B $BaN(B $BaO(B +$BaP(B $BaQ(B $BaR(B $BaS(B $BaT(B $BaU(B $BaV(B $BaW(B $BaX(B $BaY(B $BaZ(B $Ba[(B $Ba\(B $Ba](B $Ba^(B $Ba_(B +$Ba`(B $Baa(B $Bab(B $Bac(B $Bad(B $Bae(B $Baf(B $Bag(B $Bah(B $Bai(B $Baj(B $Bak(B $Bal(B $Bam(B $Ban(B $Bao(B +$Bap(B $Baq(B $Bar(B $Bas(B $Bat(B $Bau(B $Bav(B $Baw(B $Bax(B $Bay(B $Baz(B $Ba{(B $Ba|(B $Ba}(B $Ba~(B + $Bb!(B $Bb"(B $Bb#(B $Bb$(B $Bb%(B $Bb&(B $Bb'(B $Bb((B $Bb)(B $Bb*(B $Bb+(B $Bb,(B $Bb-(B $Bb.(B $Bb/(B +$Bb0(B $Bb1(B $Bb2(B $Bb3(B $Bb4(B $Bb5(B $Bb6(B $Bb7(B $Bb8(B $Bb9(B $Bb:(B $Bb;(B $Bb<(B $Bb=(B $Bb>(B $Bb?(B +$Bb@(B $BbA(B $BbB(B $BbC(B $BbD(B $BbE(B $BbF(B $BbG(B $BbH(B $BbI(B $BbJ(B $BbK(B $BbL(B $BbM(B $BbN(B $BbO(B +$BbP(B $BbQ(B $BbR(B $BbS(B $BbT(B $BbU(B $BbV(B $BbW(B $BbX(B $BbY(B $BbZ(B $Bb[(B $Bb\(B $Bb](B $Bb^(B $Bb_(B +$Bb`(B $Bba(B $Bbb(B $Bbc(B $Bbd(B $Bbe(B $Bbf(B $Bbg(B $Bbh(B $Bbi(B $Bbj(B $Bbk(B $Bbl(B $Bbm(B $Bbn(B $Bbo(B +$Bbp(B $Bbq(B $Bbr(B $Bbs(B $Bbt(B $Bbu(B $Bbv(B $Bbw(B $Bbx(B $Bby(B $Bbz(B $Bb{(B $Bb|(B $Bb}(B $Bb~(B + $Bc!(B $Bc"(B $Bc#(B $Bc$(B $Bc%(B $Bc&(B $Bc'(B $Bc((B $Bc)(B $Bc*(B $Bc+(B $Bc,(B $Bc-(B $Bc.(B $Bc/(B +$Bc0(B $Bc1(B $Bc2(B $Bc3(B $Bc4(B $Bc5(B $Bc6(B $Bc7(B $Bc8(B $Bc9(B $Bc:(B $Bc;(B $Bc<(B $Bc=(B $Bc>(B $Bc?(B +$Bc@(B $BcA(B $BcB(B $BcC(B $BcD(B $BcE(B $BcF(B $BcG(B $BcH(B $BcI(B $BcJ(B $BcK(B $BcL(B $BcM(B $BcN(B $BcO(B +$BcP(B $BcQ(B $BcR(B $BcS(B $BcT(B $BcU(B $BcV(B $BcW(B $BcX(B $BcY(B $BcZ(B $Bc[(B $Bc\(B $Bc](B $Bc^(B $Bc_(B +$Bc`(B $Bca(B $Bcb(B $Bcc(B $Bcd(B $Bce(B $Bcf(B $Bcg(B $Bch(B $Bci(B $Bcj(B $Bck(B $Bcl(B $Bcm(B $Bcn(B $Bco(B +$Bcp(B $Bcq(B $Bcr(B $Bcs(B $Bct(B $Bcu(B $Bcv(B $Bcw(B $Bcx(B $Bcy(B $Bcz(B $Bc{(B $Bc|(B $Bc}(B $Bc~(B + $Bd!(B $Bd"(B $Bd#(B $Bd$(B $Bd%(B $Bd&(B $Bd'(B $Bd((B $Bd)(B $Bd*(B $Bd+(B $Bd,(B $Bd-(B $Bd.(B $Bd/(B +$Bd0(B $Bd1(B $Bd2(B $Bd3(B $Bd4(B $Bd5(B $Bd6(B $Bd7(B $Bd8(B $Bd9(B $Bd:(B $Bd;(B $Bd<(B $Bd=(B $Bd>(B $Bd?(B +$Bd@(B $BdA(B $BdB(B $BdC(B $BdD(B $BdE(B $BdF(B $BdG(B $BdH(B $BdI(B $BdJ(B $BdK(B $BdL(B $BdM(B $BdN(B $BdO(B +$BdP(B $BdQ(B $BdR(B $BdS(B $BdT(B $BdU(B $BdV(B $BdW(B $BdX(B $BdY(B $BdZ(B $Bd[(B $Bd\(B $Bd](B $Bd^(B $Bd_(B +$Bd`(B $Bda(B $Bdb(B $Bdc(B $Bdd(B $Bde(B $Bdf(B $Bdg(B $Bdh(B $Bdi(B $Bdj(B $Bdk(B $Bdl(B $Bdm(B $Bdn(B $Bdo(B +$Bdp(B $Bdq(B $Bdr(B $Bds(B $Bdt(B $Bdu(B $Bdv(B $Bdw(B $Bdx(B $Bdy(B $Bdz(B $Bd{(B $Bd|(B $Bd}(B $Bd~(B + $Be!(B $Be"(B $Be#(B $Be$(B $Be%(B $Be&(B $Be'(B $Be((B $Be)(B $Be*(B $Be+(B $Be,(B $Be-(B $Be.(B $Be/(B +$Be0(B $Be1(B $Be2(B $Be3(B $Be4(B $Be5(B $Be6(B $Be7(B $Be8(B $Be9(B $Be:(B $Be;(B $Be<(B $Be=(B $Be>(B $Be?(B +$Be@(B $BeA(B $BeB(B $BeC(B $BeD(B $BeE(B $BeF(B $BeG(B $BeH(B $BeI(B $BeJ(B $BeK(B $BeL(B $BeM(B $BeN(B $BeO(B +$BeP(B $BeQ(B $BeR(B $BeS(B $BeT(B $BeU(B $BeV(B $BeW(B $BeX(B $BeY(B $BeZ(B $Be[(B $Be\(B $Be](B $Be^(B $Be_(B +$Be`(B $Bea(B $Beb(B $Bec(B $Bed(B $Bee(B $Bef(B $Beg(B $Beh(B $Bei(B $Bej(B $Bek(B $Bel(B $Bem(B $Ben(B $Beo(B +$Bep(B $Beq(B $Ber(B $Bes(B $Bet(B $Beu(B $Bev(B $Bew(B $Bex(B $Bey(B $Bez(B $Be{(B $Be|(B $Be}(B $Be~(B + $Bf!(B $Bf"(B $Bf#(B $Bf$(B $Bf%(B $Bf&(B $Bf'(B $Bf((B $Bf)(B $Bf*(B $Bf+(B $Bf,(B $Bf-(B $Bf.(B $Bf/(B +$Bf0(B $Bf1(B $Bf2(B $Bf3(B $Bf4(B $Bf5(B $Bf6(B $Bf7(B $Bf8(B $Bf9(B $Bf:(B $Bf;(B $Bf<(B $Bf=(B $Bf>(B $Bf?(B +$Bf@(B $BfA(B $BfB(B $BfC(B $BfD(B $BfE(B $BfF(B $BfG(B $BfH(B $BfI(B $BfJ(B $BfK(B $BfL(B $BfM(B $BfN(B $BfO(B +$BfP(B $BfQ(B $BfR(B $BfS(B $BfT(B $BfU(B $BfV(B $BfW(B $BfX(B $BfY(B $BfZ(B $Bf[(B $Bf\(B $Bf](B $Bf^(B $Bf_(B +$Bf`(B $Bfa(B $Bfb(B $Bfc(B $Bfd(B $Bfe(B $Bff(B $Bfg(B $Bfh(B $Bfi(B $Bfj(B $Bfk(B $Bfl(B $Bfm(B $Bfn(B $Bfo(B +$Bfp(B $Bfq(B $Bfr(B $Bfs(B $Bft(B $Bfu(B $Bfv(B $Bfw(B $Bfx(B $Bfy(B $Bfz(B $Bf{(B $Bf|(B $Bf}(B $Bf~(B + $Bg!(B $Bg"(B $Bg#(B $Bg$(B $Bg%(B $Bg&(B $Bg'(B $Bg((B $Bg)(B $Bg*(B $Bg+(B $Bg,(B $Bg-(B $Bg.(B $Bg/(B +$Bg0(B $Bg1(B $Bg2(B $Bg3(B $Bg4(B $Bg5(B $Bg6(B $Bg7(B $Bg8(B $Bg9(B $Bg:(B $Bg;(B $Bg<(B $Bg=(B $Bg>(B $Bg?(B +$Bg@(B $BgA(B $BgB(B $BgC(B $BgD(B $BgE(B $BgF(B $BgG(B $BgH(B $BgI(B $BgJ(B $BgK(B $BgL(B $BgM(B $BgN(B $BgO(B +$BgP(B $BgQ(B $BgR(B $BgS(B $BgT(B $BgU(B $BgV(B $BgW(B $BgX(B $BgY(B $BgZ(B $Bg[(B $Bg\(B $Bg](B $Bg^(B $Bg_(B +$Bg`(B $Bga(B $Bgb(B $Bgc(B $Bgd(B $Bge(B $Bgf(B $Bgg(B $Bgh(B $Bgi(B $Bgj(B $Bgk(B $Bgl(B $Bgm(B $Bgn(B $Bgo(B +$Bgp(B $Bgq(B $Bgr(B $Bgs(B $Bgt(B $Bgu(B $Bgv(B $Bgw(B $Bgx(B $Bgy(B $Bgz(B $Bg{(B $Bg|(B $Bg}(B $Bg~(B + $Bh!(B $Bh"(B $Bh#(B $Bh$(B $Bh%(B $Bh&(B $Bh'(B $Bh((B $Bh)(B $Bh*(B $Bh+(B $Bh,(B $Bh-(B $Bh.(B $Bh/(B +$Bh0(B $Bh1(B $Bh2(B $Bh3(B $Bh4(B $Bh5(B $Bh6(B $Bh7(B $Bh8(B $Bh9(B $Bh:(B $Bh;(B $Bh<(B $Bh=(B $Bh>(B $Bh?(B +$Bh@(B $BhA(B $BhB(B $BhC(B $BhD(B $BhE(B $BhF(B $BhG(B $BhH(B $BhI(B $BhJ(B $BhK(B $BhL(B $BhM(B $BhN(B $BhO(B +$BhP(B $BhQ(B $BhR(B $BhS(B $BhT(B $BhU(B $BhV(B $BhW(B $BhX(B $BhY(B $BhZ(B $Bh[(B $Bh\(B $Bh](B $Bh^(B $Bh_(B +$Bh`(B $Bha(B $Bhb(B $Bhc(B $Bhd(B $Bhe(B $Bhf(B $Bhg(B $Bhh(B $Bhi(B $Bhj(B $Bhk(B $Bhl(B $Bhm(B $Bhn(B $Bho(B +$Bhp(B $Bhq(B $Bhr(B $Bhs(B $Bht(B $Bhu(B $Bhv(B $Bhw(B $Bhx(B $Bhy(B $Bhz(B $Bh{(B $Bh|(B $Bh}(B $Bh~(B + $Bi!(B $Bi"(B $Bi#(B $Bi$(B $Bi%(B $Bi&(B $Bi'(B $Bi((B $Bi)(B $Bi*(B $Bi+(B $Bi,(B $Bi-(B $Bi.(B $Bi/(B +$Bi0(B $Bi1(B $Bi2(B $Bi3(B $Bi4(B $Bi5(B $Bi6(B $Bi7(B $Bi8(B $Bi9(B $Bi:(B $Bi;(B $Bi<(B $Bi=(B $Bi>(B $Bi?(B +$Bi@(B $BiA(B $BiB(B $BiC(B $BiD(B $BiE(B $BiF(B $BiG(B $BiH(B $BiI(B $BiJ(B $BiK(B $BiL(B $BiM(B $BiN(B $BiO(B +$BiP(B $BiQ(B $BiR(B $BiS(B $BiT(B $BiU(B $BiV(B $BiW(B $BiX(B $BiY(B $BiZ(B $Bi[(B $Bi\(B $Bi](B $Bi^(B $Bi_(B +$Bi`(B $Bia(B $Bib(B $Bic(B $Bid(B $Bie(B $Bif(B $Big(B $Bih(B $Bii(B $Bij(B $Bik(B $Bil(B $Bim(B $Bin(B $Bio(B +$Bip(B $Biq(B $Bir(B $Bis(B $Bit(B $Biu(B $Biv(B $Biw(B $Bix(B $Biy(B $Biz(B $Bi{(B $Bi|(B $Bi}(B $Bi~(B + $Bj!(B $Bj"(B $Bj#(B $Bj$(B $Bj%(B $Bj&(B $Bj'(B $Bj((B $Bj)(B $Bj*(B $Bj+(B $Bj,(B $Bj-(B $Bj.(B $Bj/(B +$Bj0(B $Bj1(B $Bj2(B $Bj3(B $Bj4(B $Bj5(B $Bj6(B $Bj7(B $Bj8(B $Bj9(B $Bj:(B $Bj;(B $Bj<(B $Bj=(B $Bj>(B $Bj?(B +$Bj@(B $BjA(B $BjB(B $BjC(B $BjD(B $BjE(B $BjF(B $BjG(B $BjH(B $BjI(B $BjJ(B $BjK(B $BjL(B $BjM(B $BjN(B $BjO(B +$BjP(B $BjQ(B $BjR(B $BjS(B $BjT(B $BjU(B $BjV(B $BjW(B $BjX(B $BjY(B $BjZ(B $Bj[(B $Bj\(B $Bj](B $Bj^(B $Bj_(B +$Bj`(B $Bja(B $Bjb(B $Bjc(B $Bjd(B $Bje(B $Bjf(B $Bjg(B $Bjh(B $Bji(B $Bjj(B $Bjk(B $Bjl(B $Bjm(B $Bjn(B $Bjo(B +$Bjp(B $Bjq(B $Bjr(B $Bjs(B $Bjt(B $Bju(B $Bjv(B $Bjw(B $Bjx(B $Bjy(B $Bjz(B $Bj{(B $Bj|(B $Bj}(B $Bj~(B + $Bk!(B $Bk"(B $Bk#(B $Bk$(B $Bk%(B $Bk&(B $Bk'(B $Bk((B $Bk)(B $Bk*(B $Bk+(B $Bk,(B $Bk-(B $Bk.(B $Bk/(B +$Bk0(B $Bk1(B $Bk2(B $Bk3(B $Bk4(B $Bk5(B $Bk6(B $Bk7(B $Bk8(B $Bk9(B $Bk:(B $Bk;(B $Bk<(B $Bk=(B $Bk>(B $Bk?(B +$Bk@(B $BkA(B $BkB(B $BkC(B $BkD(B $BkE(B $BkF(B $BkG(B $BkH(B $BkI(B $BkJ(B $BkK(B $BkL(B $BkM(B $BkN(B $BkO(B +$BkP(B $BkQ(B $BkR(B $BkS(B $BkT(B $BkU(B $BkV(B $BkW(B $BkX(B $BkY(B $BkZ(B $Bk[(B $Bk\(B $Bk](B $Bk^(B $Bk_(B +$Bk`(B $Bka(B $Bkb(B $Bkc(B $Bkd(B $Bke(B $Bkf(B $Bkg(B $Bkh(B $Bki(B $Bkj(B $Bkk(B $Bkl(B $Bkm(B $Bkn(B $Bko(B +$Bkp(B $Bkq(B $Bkr(B $Bks(B $Bkt(B $Bku(B $Bkv(B $Bkw(B $Bkx(B $Bky(B $Bkz(B $Bk{(B $Bk|(B $Bk}(B $Bk~(B + $Bl!(B $Bl"(B $Bl#(B $Bl$(B $Bl%(B $Bl&(B $Bl'(B $Bl((B $Bl)(B $Bl*(B $Bl+(B $Bl,(B $Bl-(B $Bl.(B $Bl/(B +$Bl0(B $Bl1(B $Bl2(B $Bl3(B $Bl4(B $Bl5(B $Bl6(B $Bl7(B $Bl8(B $Bl9(B $Bl:(B $Bl;(B $Bl<(B $Bl=(B $Bl>(B $Bl?(B +$Bl@(B $BlA(B $BlB(B $BlC(B $BlD(B $BlE(B $BlF(B $BlG(B $BlH(B $BlI(B $BlJ(B $BlK(B $BlL(B $BlM(B $BlN(B $BlO(B +$BlP(B $BlQ(B $BlR(B $BlS(B $BlT(B $BlU(B $BlV(B $BlW(B $BlX(B $BlY(B $BlZ(B $Bl[(B $Bl\(B $Bl](B $Bl^(B $Bl_(B +$Bl`(B $Bla(B $Blb(B $Blc(B $Bld(B $Ble(B $Blf(B $Blg(B $Blh(B $Bli(B $Blj(B $Blk(B $Bll(B $Blm(B $Bln(B $Blo(B +$Blp(B $Blq(B $Blr(B $Bls(B $Blt(B $Blu(B $Blv(B $Blw(B $Blx(B $Bly(B $Blz(B $Bl{(B $Bl|(B $Bl}(B $Bl~(B + $Bm!(B $Bm"(B $Bm#(B $Bm$(B $Bm%(B $Bm&(B $Bm'(B $Bm((B $Bm)(B $Bm*(B $Bm+(B $Bm,(B $Bm-(B $Bm.(B $Bm/(B +$Bm0(B $Bm1(B $Bm2(B $Bm3(B $Bm4(B $Bm5(B $Bm6(B $Bm7(B $Bm8(B $Bm9(B $Bm:(B $Bm;(B $Bm<(B $Bm=(B $Bm>(B $Bm?(B +$Bm@(B $BmA(B $BmB(B $BmC(B $BmD(B $BmE(B $BmF(B $BmG(B $BmH(B $BmI(B $BmJ(B $BmK(B $BmL(B $BmM(B $BmN(B $BmO(B +$BmP(B $BmQ(B $BmR(B $BmS(B $BmT(B $BmU(B $BmV(B $BmW(B $BmX(B $BmY(B $BmZ(B $Bm[(B $Bm\(B $Bm](B $Bm^(B $Bm_(B +$Bm`(B $Bma(B $Bmb(B $Bmc(B $Bmd(B $Bme(B $Bmf(B $Bmg(B $Bmh(B $Bmi(B $Bmj(B $Bmk(B $Bml(B $Bmm(B $Bmn(B $Bmo(B +$Bmp(B $Bmq(B $Bmr(B $Bms(B $Bmt(B $Bmu(B $Bmv(B $Bmw(B $Bmx(B $Bmy(B $Bmz(B $Bm{(B $Bm|(B $Bm}(B $Bm~(B + $Bn!(B $Bn"(B $Bn#(B $Bn$(B $Bn%(B $Bn&(B $Bn'(B $Bn((B $Bn)(B $Bn*(B $Bn+(B $Bn,(B $Bn-(B $Bn.(B $Bn/(B +$Bn0(B $Bn1(B $Bn2(B $Bn3(B $Bn4(B $Bn5(B $Bn6(B $Bn7(B $Bn8(B $Bn9(B $Bn:(B $Bn;(B $Bn<(B $Bn=(B $Bn>(B $Bn?(B +$Bn@(B $BnA(B $BnB(B $BnC(B $BnD(B $BnE(B $BnF(B $BnG(B $BnH(B $BnI(B $BnJ(B $BnK(B $BnL(B $BnM(B $BnN(B $BnO(B +$BnP(B $BnQ(B $BnR(B $BnS(B $BnT(B $BnU(B $BnV(B $BnW(B $BnX(B $BnY(B $BnZ(B $Bn[(B $Bn\(B $Bn](B $Bn^(B $Bn_(B +$Bn`(B $Bna(B $Bnb(B $Bnc(B $Bnd(B $Bne(B $Bnf(B $Bng(B $Bnh(B $Bni(B $Bnj(B $Bnk(B $Bnl(B $Bnm(B $Bnn(B $Bno(B +$Bnp(B $Bnq(B $Bnr(B $Bns(B $Bnt(B $Bnu(B $Bnv(B $Bnw(B $Bnx(B $Bny(B $Bnz(B $Bn{(B $Bn|(B $Bn}(B $Bn~(B + $Bo!(B $Bo"(B $Bo#(B $Bo$(B $Bo%(B $Bo&(B $Bo'(B $Bo((B $Bo)(B $Bo*(B $Bo+(B $Bo,(B $Bo-(B $Bo.(B $Bo/(B +$Bo0(B $Bo1(B $Bo2(B $Bo3(B $Bo4(B $Bo5(B $Bo6(B $Bo7(B $Bo8(B $Bo9(B $Bo:(B $Bo;(B $Bo<(B $Bo=(B $Bo>(B $Bo?(B +$Bo@(B $BoA(B $BoB(B $BoC(B $BoD(B $BoE(B $BoF(B $BoG(B $BoH(B $BoI(B $BoJ(B $BoK(B $BoL(B $BoM(B $BoN(B $BoO(B +$BoP(B $BoQ(B $BoR(B $BoS(B $BoT(B $BoU(B $BoV(B $BoW(B $BoX(B $BoY(B $BoZ(B $Bo[(B $Bo\(B $Bo](B $Bo^(B $Bo_(B +$Bo`(B $Boa(B $Bob(B $Boc(B $Bod(B $Boe(B $Bof(B $Bog(B $Boh(B $Boi(B $Boj(B $Bok(B $Bol(B $Bom(B $Bon(B $Boo(B +$Bop(B $Boq(B $Bor(B $Bos(B $Bot(B $Bou(B $Bov(B $Bow(B $Box(B $Boy(B $Boz(B $Bo{(B $Bo|(B $Bo}(B $Bo~(B + $Bp!(B $Bp"(B $Bp#(B $Bp$(B $Bp%(B $Bp&(B $Bp'(B $Bp((B $Bp)(B $Bp*(B $Bp+(B $Bp,(B $Bp-(B $Bp.(B $Bp/(B +$Bp0(B $Bp1(B $Bp2(B $Bp3(B $Bp4(B $Bp5(B $Bp6(B $Bp7(B $Bp8(B $Bp9(B $Bp:(B $Bp;(B $Bp<(B $Bp=(B $Bp>(B $Bp?(B +$Bp@(B $BpA(B $BpB(B $BpC(B $BpD(B $BpE(B $BpF(B $BpG(B $BpH(B $BpI(B $BpJ(B $BpK(B $BpL(B $BpM(B $BpN(B $BpO(B +$BpP(B $BpQ(B $BpR(B $BpS(B $BpT(B $BpU(B $BpV(B $BpW(B $BpX(B $BpY(B $BpZ(B $Bp[(B $Bp\(B $Bp](B $Bp^(B $Bp_(B +$Bp`(B $Bpa(B $Bpb(B $Bpc(B $Bpd(B $Bpe(B $Bpf(B $Bpg(B $Bph(B $Bpi(B $Bpj(B $Bpk(B $Bpl(B $Bpm(B $Bpn(B $Bpo(B +$Bpp(B $Bpq(B $Bpr(B $Bps(B $Bpt(B $Bpu(B $Bpv(B $Bpw(B $Bpx(B $Bpy(B $Bpz(B $Bp{(B $Bp|(B $Bp}(B $Bp~(B + $Bq!(B $Bq"(B $Bq#(B $Bq$(B $Bq%(B $Bq&(B $Bq'(B $Bq((B $Bq)(B $Bq*(B $Bq+(B $Bq,(B $Bq-(B $Bq.(B $Bq/(B +$Bq0(B $Bq1(B $Bq2(B $Bq3(B $Bq4(B $Bq5(B $Bq6(B $Bq7(B $Bq8(B $Bq9(B $Bq:(B $Bq;(B $Bq<(B $Bq=(B $Bq>(B $Bq?(B +$Bq@(B $BqA(B $BqB(B $BqC(B $BqD(B $BqE(B $BqF(B $BqG(B $BqH(B $BqI(B $BqJ(B $BqK(B $BqL(B $BqM(B $BqN(B $BqO(B +$BqP(B $BqQ(B $BqR(B $BqS(B $BqT(B $BqU(B $BqV(B $BqW(B $BqX(B $BqY(B $BqZ(B $Bq[(B $Bq\(B $Bq](B $Bq^(B $Bq_(B +$Bq`(B $Bqa(B $Bqb(B $Bqc(B $Bqd(B $Bqe(B $Bqf(B $Bqg(B $Bqh(B $Bqi(B $Bqj(B $Bqk(B $Bql(B $Bqm(B $Bqn(B $Bqo(B +$Bqp(B $Bqq(B $Bqr(B $Bqs(B $Bqt(B $Bqu(B $Bqv(B $Bqw(B $Bqx(B $Bqy(B $Bqz(B $Bq{(B $Bq|(B $Bq}(B $Bq~(B + $Br!(B $Br"(B $Br#(B $Br$(B $Br%(B $Br&(B $Br'(B $Br((B $Br)(B $Br*(B $Br+(B $Br,(B $Br-(B $Br.(B $Br/(B +$Br0(B $Br1(B $Br2(B $Br3(B $Br4(B $Br5(B $Br6(B $Br7(B $Br8(B $Br9(B $Br:(B $Br;(B $Br<(B $Br=(B $Br>(B $Br?(B +$Br@(B $BrA(B $BrB(B $BrC(B $BrD(B $BrE(B $BrF(B $BrG(B $BrH(B $BrI(B $BrJ(B $BrK(B $BrL(B $BrM(B $BrN(B $BrO(B +$BrP(B $BrQ(B $BrR(B $BrS(B $BrT(B $BrU(B $BrV(B $BrW(B $BrX(B $BrY(B $BrZ(B $Br[(B $Br\(B $Br](B $Br^(B $Br_(B +$Br`(B $Bra(B $Brb(B $Brc(B $Brd(B $Bre(B $Brf(B $Brg(B $Brh(B $Bri(B $Brj(B $Brk(B $Brl(B $Brm(B $Brn(B $Bro(B +$Brp(B $Brq(B $Brr(B $Brs(B $Brt(B $Bru(B $Brv(B $Brw(B $Brx(B $Bry(B $Brz(B $Br{(B $Br|(B $Br}(B $Br~(B + $Bs!(B $Bs"(B $Bs#(B $Bs$(B $Bs%(B $Bs&(B $Bs'(B $Bs((B $Bs)(B $Bs*(B $Bs+(B $Bs,(B $Bs-(B $Bs.(B $Bs/(B +$Bs0(B $Bs1(B $Bs2(B $Bs3(B $Bs4(B $Bs5(B $Bs6(B $Bs7(B $Bs8(B $Bs9(B $Bs:(B $Bs;(B $Bs<(B $Bs=(B $Bs>(B $Bs?(B +$Bs@(B $BsA(B $BsB(B $BsC(B $BsD(B $BsE(B $BsF(B $BsG(B $BsH(B $BsI(B $BsJ(B $BsK(B $BsL(B $BsM(B $BsN(B $BsO(B +$BsP(B $BsQ(B $BsR(B $BsS(B $BsT(B $BsU(B $BsV(B $BsW(B $BsX(B $BsY(B $BsZ(B $Bs[(B $Bs\(B $Bs](B $Bs^(B $Bs_(B +$Bs`(B $Bsa(B $Bsb(B $Bsc(B $Bsd(B $Bse(B $Bsf(B $Bsg(B $Bsh(B $Bsi(B $Bsj(B $Bsk(B $Bsl(B $Bsm(B $Bsn(B $Bso(B +$Bsp(B $Bsq(B $Bsr(B $Bss(B $Bst(B $Bsu(B $Bsv(B $Bsw(B $Bsx(B $Bsy(B $Bsz(B $Bs{(B $Bs|(B $Bs}(B $Bs~(B + $Bt!(B $Bt"(B $Bt#(B $Bt$(B $Bt%(B $Bt&(B $(Qt((B $(Qt)(B $(Qt*(B $(Qt+(B $(Qt,(B $(Qt-(B $(Qt.(B $(Qt/(B +$(Qt0(B $(Qt1(B $(Qt2(B $(Qt3(B $(Qt4(B $(Qt5(B $(Qt6(B $(Qt7(B $(Qt8(B $(Qt9(B $(Qt:(B $(Qt;(B $(Qt<(B $(Qt=(B $(Qt>(B $(Qt?(B +$(Qt@(B $(QtA(B $(QtB(B $(QtC(B $(QtD(B $(QtE(B $(QtF(B $(QtG(B $(QtH(B $(QtI(B $(QtJ(B $(QtK(B $(QtL(B $(QtM(B $(QtN(B $(QtO(B +$(QtP(B $(QtQ(B $(QtR(B $(QtS(B $(QtT(B $(QtU(B $(QtV(B $(QtW(B $(QtX(B $(QtY(B $(QtZ(B $(Qt[(B $(Qt\(B $(Qt](B $(Qt^(B $(Qt_(B +$(Qt`(B $(Qta(B $(Qtb(B $(Qtc(B $(Qtd(B $(Qte(B $(Qtf(B $(Qtg(B $(Qth(B $(Qti(B $(Qtj(B $(Qtk(B $(Qtl(B $(Qtm(B $(Qtn(B $(Qto(B +$(Qtp(B $(Qtq(B $(Qtr(B $(Qts(B $(Qtt(B $(Qtu(B $(Qtv(B $(Qtw(B $(Qtx(B $(Qty(B $(Qtz(B $(Qt{(B $(Qt|(B $(Qt}(B $(Qt~(B + $(Qu!(B $(Qu"(B $(Qu#(B $(Qu$(B $(Qu%(B $(Qu&(B $(Qu'(B $(Qu((B $(Qu)(B $(Qu*(B $(Qu+(B $(Qu,(B $(Qu-(B $(Qu.(B $(Qu/(B +$(Qu0(B $(Qu1(B $(Qu2(B $(Qu3(B $(Qu4(B $(Qu5(B $(Qu6(B $(Qu7(B $(Qu8(B $(Qu9(B $(Qu:(B $(Qu;(B $(Qu<(B $(Qu=(B $(Qu>(B $(Qu?(B +$(Qu@(B $(QuA(B $(QuB(B $(QuC(B $(QuD(B $(QuE(B $(QuF(B $(QuG(B $(QuH(B $(QuI(B $(QuJ(B $(QuK(B $(QuL(B $(QuM(B $(QuN(B $(QuO(B +$(QuP(B $(QuQ(B $(QuR(B $(QuS(B $(QuT(B $(QuU(B $(QuV(B $(QuW(B $(QuX(B $(QuY(B $(QuZ(B $(Qu[(B $(Qu\(B $(Qu](B $(Qu^(B $(Qu_(B +$(Qu`(B $(Qua(B $(Qub(B $(Quc(B $(Qud(B $(Que(B $(Quf(B $(Qug(B $(Quh(B $(Qui(B $(Quj(B $(Quk(B $(Qul(B $(Qum(B $(Qun(B $(Quo(B +$(Qup(B $(Quq(B $(Qur(B $(Qus(B $(Qut(B $(Quu(B $(Quv(B $(Quw(B $(Qux(B $(Quy(B $(Quz(B $(Qu{(B $(Qu|(B $(Qu}(B $(Qu~(B + $(Qv!(B $(Qv"(B $(Qv#(B $(Qv$(B $(Qv%(B $(Qv&(B $(Qv'(B $(Qv((B $(Qv)(B $(Qv*(B $(Qv+(B $(Qv,(B $(Qv-(B $(Qv.(B $(Qv/(B +$(Qv0(B $(Qv1(B $(Qv2(B $(Qv3(B $(Qv4(B $(Qv5(B $(Qv6(B $(Qv7(B $(Qv8(B $(Qv9(B $(Qv:(B $(Qv;(B $(Qv<(B $(Qv=(B $(Qv>(B $(Qv?(B +$(Qv@(B $(QvA(B $(QvB(B $(QvC(B $(QvD(B $(QvE(B $(QvF(B $(QvG(B $(QvH(B $(QvI(B $(QvJ(B $(QvK(B $(QvL(B $(QvM(B $(QvN(B $(QvO(B +$(QvP(B $(QvQ(B $(QvR(B $(QvS(B $(QvT(B $(QvU(B $(QvV(B $(QvW(B $(QvX(B $(QvY(B $(QvZ(B $(Qv[(B $(Qv\(B $(Qv](B $(Qv^(B $(Qv_(B +$(Qv`(B $(Qva(B $(Qvb(B $(Qvc(B $(Qvd(B $(Qve(B $(Qvf(B $(Qvg(B $(Qvh(B $(Qvi(B $(Qvj(B $(Qvk(B $(Qvl(B $(Qvm(B $(Qvn(B $(Qvo(B +$(Qvp(B $(Qvq(B $(Qvr(B $(Qvs(B $(Qvt(B $(Qvu(B $(Qvv(B $(Qvw(B $(Qvx(B $(Qvy(B $(Qvz(B $(Qv{(B $(Qv|(B $(Qv}(B $(Qv~(B + $(Qw!(B $(Qw"(B $(Qw#(B $(Qw$(B $(Qw%(B $(Qw&(B $(Qw'(B $(Qw((B $(Qw)(B $(Qw*(B $(Qw+(B $(Qw,(B $(Qw-(B $(Qw.(B $(Qw/(B +$(Qw0(B $(Qw1(B $(Qw2(B $(Qw3(B $(Qw4(B $(Qw5(B $(Qw6(B $(Qw7(B $(Qw8(B $(Qw9(B $(Qw:(B $(Qw;(B $(Qw<(B $(Qw=(B $(Qw>(B $(Qw?(B +$(Qw@(B $(QwA(B $(QwB(B $(QwC(B $(QwD(B $(QwE(B $(QwF(B $(QwG(B $(QwH(B $(QwI(B $(QwJ(B $(QwK(B $(QwL(B $(QwM(B $(QwN(B $(QwO(B +$(QwP(B $(QwQ(B $(QwR(B $(QwS(B $(QwT(B $(QwU(B $(QwV(B $(QwW(B $(QwX(B $(QwY(B $(QwZ(B $(Qw[(B $(Qw\(B $(Qw](B $(Qw^(B $(Qw_(B +$(Qw`(B $(Qwa(B $(Qwb(B $(Qwc(B $(Qwd(B $(Qwe(B $(Qwf(B $(Qwg(B $(Qwh(B $(Qwi(B $(Qwj(B $(Qwk(B $(Qwl(B $(Qwm(B $(Qwn(B $(Qwo(B +$(Qwp(B $(Qwq(B $(Qwr(B $(Qws(B $(Qwt(B $(Qwu(B $(Qwv(B $(Qww(B $(Qwx(B $(Qwy(B $(Qwz(B $(Qw{(B $(Qw|(B $(Qw}(B $(Qw~(B + $(Qx!(B $(Qx"(B $(Qx#(B $(Qx$(B $(Qx%(B $(Qx&(B $(Qx'(B $(Qx((B $(Qx)(B $(Qx*(B $(Qx+(B $(Qx,(B $(Qx-(B $(Qx.(B $(Qx/(B +$(Qx0(B $(Qx1(B $(Qx2(B $(Qx3(B $(Qx4(B $(Qx5(B $(Qx6(B $(Qx7(B $(Qx8(B $(Qx9(B $(Qx:(B $(Qx;(B $(Qx<(B $(Qx=(B $(Qx>(B $(Qx?(B +$(Qx@(B $(QxA(B $(QxB(B $(QxC(B $(QxD(B $(QxE(B $(QxF(B $(QxG(B $(QxH(B $(QxI(B $(QxJ(B $(QxK(B $(QxL(B $(QxM(B $(QxN(B $(QxO(B +$(QxP(B $(QxQ(B $(QxR(B $(QxS(B $(QxT(B $(QxU(B $(QxV(B $(QxW(B $(QxX(B $(QxY(B $(QxZ(B $(Qx[(B $(Qx\(B $(Qx](B $(Qx^(B $(Qx_(B +$(Qx`(B $(Qxa(B $(Qxb(B $(Qxc(B $(Qxd(B $(Qxe(B $(Qxf(B $(Qxg(B $(Qxh(B $(Qxi(B $(Qxj(B $(Qxk(B $(Qxl(B $(Qxm(B $(Qxn(B $(Qxo(B +$(Qxp(B $(Qxq(B $(Qxr(B $(Qxs(B $(Qxt(B $(Qxu(B $(Qxv(B $(Qxw(B $(Qxx(B $(Qxy(B $(Qxz(B $(Qx{(B $(Qx|(B $(Qx}(B $(Qx~(B + $(Qy!(B $(Qy"(B $(Qy#(B $(Qy$(B $(Qy%(B $(Qy&(B $(Qy'(B $(Qy((B $(Qy)(B $(Qy*(B $(Qy+(B $(Qy,(B $(Qy-(B $(Qy.(B $(Qy/(B +$(Qy0(B $(Qy1(B $(Qy2(B $(Qy3(B $(Qy4(B $(Qy5(B $(Qy6(B $(Qy7(B $(Qy8(B $(Qy9(B $(Qy:(B $(Qy;(B $(Qy<(B $(Qy=(B $(Qy>(B $(Qy?(B +$(Qy@(B $(QyA(B $(QyB(B $(QyC(B $(QyD(B $(QyE(B $(QyF(B $(QyG(B $(QyH(B $(QyI(B $(QyJ(B $(QyK(B $(QyL(B $(QyM(B $(QyN(B $(QyO(B +$(QyP(B $(QyQ(B $(QyR(B $(QyS(B $(QyT(B $(QyU(B $(QyV(B $(QyW(B $(QyX(B $(QyY(B $(QyZ(B $(Qy[(B $(Qy\(B $(Qy](B $(Qy^(B $(Qy_(B +$(Qy`(B $(Qya(B $(Qyb(B $(Qyc(B $(Qyd(B $(Qye(B $(Qyf(B $(Qyg(B $(Qyh(B $(Qyi(B $(Qyj(B $(Qyk(B $(Qyl(B $(Qym(B $(Qyn(B $(Qyo(B +$(Qyp(B $(Qyq(B $(Qyr(B $(Qys(B $(Qyt(B $(Qyu(B $(Qyv(B $(Qyw(B $(Qyx(B $(Qyy(B $(Qyz(B $(Qy{(B $(Qy|(B $(Qy}(B $(Qy~(B + $(Qz!(B $(Qz"(B $(Qz#(B $(Qz$(B $(Qz%(B $(Qz&(B $(Qz'(B $(Qz((B $(Qz)(B $(Qz*(B $(Qz+(B $(Qz,(B $(Qz-(B $(Qz.(B $(Qz/(B +$(Qz0(B $(Qz1(B $(Qz2(B $(Qz3(B $(Qz4(B $(Qz5(B $(Qz6(B $(Qz7(B $(Qz8(B $(Qz9(B $(Qz:(B $(Qz;(B $(Qz<(B $(Qz=(B $(Qz>(B $(Qz?(B +$(Qz@(B $(QzA(B $(QzB(B $(QzC(B $(QzD(B $(QzE(B $(QzF(B $(QzG(B $(QzH(B $(QzI(B $(QzJ(B $(QzK(B $(QzL(B $(QzM(B $(QzN(B $(QzO(B +$(QzP(B $(QzQ(B $(QzR(B $(QzS(B $(QzT(B $(QzU(B $(QzV(B $(QzW(B $(QzX(B $(QzY(B $(QzZ(B $(Qz[(B $(Qz\(B $(Qz](B $(Qz^(B $(Qz_(B +$(Qz`(B $(Qza(B $(Qzb(B $(Qzc(B $(Qzd(B $(Qze(B $(Qzf(B $(Qzg(B $(Qzh(B $(Qzi(B $(Qzj(B $(Qzk(B $(Qzl(B $(Qzm(B $(Qzn(B $(Qzo(B +$(Qzp(B $(Qzq(B $(Qzr(B $(Qzs(B $(Qzt(B $(Qzu(B $(Qzv(B $(Qzw(B $(Qzx(B $(Qzy(B $(Qzz(B $(Qz{(B $(Qz|(B $(Qz}(B $(Qz~(B + $(Q{!(B $(Q{"(B $(Q{#(B $(Q{$(B $(Q{%(B $(Q{&(B $(Q{'(B $(Q{((B $(Q{)(B $(Q{*(B $(Q{+(B $(Q{,(B $(Q{-(B $(Q{.(B $(Q{/(B +$(Q{0(B $(Q{1(B $(Q{2(B $(Q{3(B $(Q{4(B $(Q{5(B $(Q{6(B $(Q{7(B $(Q{8(B $(Q{9(B $(Q{:(B $(Q{;(B $(Q{<(B $(Q{=(B $(Q{>(B $(Q{?(B +$(Q{@(B $(Q{A(B $(Q{B(B $(Q{C(B $(Q{D(B $(Q{E(B $(Q{F(B $(Q{G(B $(Q{H(B $(Q{I(B $(Q{J(B $(Q{K(B $(Q{L(B $(Q{M(B $(Q{N(B $(Q{O(B +$(Q{P(B $(Q{Q(B $(Q{R(B $(Q{S(B $(Q{T(B $(Q{U(B $(Q{V(B $(Q{W(B $(Q{X(B $(Q{Y(B $(Q{Z(B $(Q{[(B $(Q{\(B $(Q{](B $(Q{^(B $(Q{_(B +$(Q{`(B $(Q{a(B $(Q{b(B $(Q{c(B $(Q{d(B $(Q{e(B $(Q{f(B $(Q{g(B $(Q{h(B $(Q{i(B $(Q{j(B $(Q{k(B $(Q{l(B $(Q{m(B $(Q{n(B $(Q{o(B +$(Q{p(B $(Q{q(B $(Q{r(B $(Q{s(B $(Q{t(B $(Q{u(B $(Q{v(B $(Q{w(B $(Q{x(B $(Q{y(B $(Q{z(B $(Q{{(B $(Q{|(B $(Q{}(B $(Q{~(B + $(Q|!(B $(Q|"(B $(Q|#(B $(Q|$(B $(Q|%(B $(Q|&(B $(Q|'(B $(Q|((B $(Q|)(B $(Q|*(B $(Q|+(B $(Q|,(B $(Q|-(B $(Q|.(B $(Q|/(B +$(Q|0(B $(Q|1(B $(Q|2(B $(Q|3(B $(Q|4(B $(Q|5(B $(Q|6(B $(Q|7(B $(Q|8(B $(Q|9(B $(Q|:(B $(Q|;(B $(Q|<(B $(Q|=(B $(Q|>(B $(Q|?(B +$(Q|@(B $(Q|A(B $(Q|B(B $(Q|C(B $(Q|D(B $(Q|E(B $(Q|F(B $(Q|G(B $(Q|H(B $(Q|I(B $(Q|J(B $(Q|K(B $(Q|L(B $(Q|M(B $(Q|N(B $(Q|O(B +$(Q|P(B $(Q|Q(B $(Q|R(B $(Q|S(B $(Q|T(B $(Q|U(B $(Q|V(B $(Q|W(B $(Q|X(B $(Q|Y(B $(Q|Z(B $(Q|[(B $(Q|\(B $(Q|](B $(Q|^(B $(Q|_(B +$(Q|`(B $(Q|a(B $(Q|b(B $(Q|c(B $(Q|d(B $(Q|e(B $(Q|f(B $(Q|g(B $(Q|h(B $(Q|i(B $(Q|j(B $(Q|k(B $(Q|l(B $(Q|m(B $(Q|n(B $(Q|o(B +$(Q|p(B $(Q|q(B $(Q|r(B $(Q|s(B $(Q|t(B $(Q|u(B $(Q|v(B $(Q|w(B $(Q|x(B $(Q|y(B $(Q|z(B $(Q|{(B $(Q||(B $(Q|}(B $(Q|~(B + $(Q}!(B $(Q}"(B $(Q}#(B $(Q}$(B $(Q}%(B $(Q}&(B $(Q}'(B $(Q}((B $(Q})(B $(Q}*(B $(Q}+(B $(Q},(B $(Q}-(B $(Q}.(B $(Q}/(B +$(Q}0(B $(Q}1(B $(Q}2(B $(Q}3(B $(Q}4(B $(Q}5(B $(Q}6(B $(Q}7(B $(Q}8(B $(Q}9(B $(Q}:(B $(Q};(B $(Q}<(B $(Q}=(B $(Q}>(B $(Q}?(B +$(Q}@(B $(Q}A(B $(Q}B(B $(Q}C(B $(Q}D(B $(Q}E(B $(Q}F(B $(Q}G(B $(Q}H(B $(Q}I(B $(Q}J(B $(Q}K(B $(Q}L(B $(Q}M(B $(Q}N(B $(Q}O(B +$(Q}P(B $(Q}Q(B $(Q}R(B $(Q}S(B $(Q}T(B $(Q}U(B $(Q}V(B $(Q}W(B $(Q}X(B $(Q}Y(B $(Q}Z(B $(Q}[(B $(Q}\(B $(Q}](B $(Q}^(B $(Q}_(B +$(Q}`(B $(Q}a(B $(Q}b(B $(Q}c(B $(Q}d(B $(Q}e(B $(Q}f(B $(Q}g(B $(Q}h(B $(Q}i(B $(Q}j(B $(Q}k(B $(Q}l(B $(Q}m(B $(Q}n(B $(Q}o(B +$(Q}p(B $(Q}q(B $(Q}r(B $(Q}s(B $(Q}t(B $(Q}u(B $(Q}v(B $(Q}w(B $(Q}x(B $(Q}y(B $(Q}z(B $(Q}{(B $(Q}|(B $(Q}}(B $(Q}~(B + $(Q~!(B $(Q~"(B $(Q~#(B $(Q~$(B $(Q~%(B $(Q~&(B $(Q~'(B $(Q~((B $(Q~)(B $(Q~*(B $(Q~+(B $(Q~,(B $(Q~-(B $(Q~.(B $(Q~/(B +$(Q~0(B $(Q~1(B $(Q~2(B $(Q~3(B $(Q~4(B $(Q~5(B $(Q~6(B $(Q~7(B $(Q~8(B $(Q~9(B $(Q~:(B $(Q~;(B $(Q~<(B $(Q~=(B $(Q~>(B $(Q~?(B +$(Q~@(B $(Q~A(B $(Q~B(B $(Q~C(B $(Q~D(B $(Q~E(B $(Q~F(B $(Q~G(B $(Q~H(B $(Q~I(B $(Q~J(B $(Q~K(B $(Q~L(B $(Q~M(B $(Q~N(B $(Q~O(B +$(Q~P(B $(Q~Q(B $(Q~R(B $(Q~S(B $(Q~T(B $(Q~U(B $(Q~V(B $(Q~W(B $(Q~X(B $(Q~Y(B $(Q~Z(B $(Q~[(B $(Q~\(B $(Q~](B $(Q~^(B $(Q~_(B +$(Q~`(B $(Q~a(B $(Q~b(B $(Q~c(B $(Q~d(B $(Q~e(B $(Q~f(B $(Q~g(B $(Q~h(B $(Q~i(B $(Q~j(B $(Q~k(B $(Q~l(B $(Q~m(B $(Q~n(B $(Q~o(B +$(Q~p(B $(Q~q(B $(Q~r(B $(Q~s(B $(Q~t(B $(Q~u(B $(Q~v(B $(Q~w(B $(Q~x(B $(Q~y(B + $(P!!(B $(P!"(B $(P!#(B $(P!$(B $(P!%(B $(P!&(B $(P!'(B $(P!((B $(P!)(B $(P!*(B $(P!+(B $(P!,(B $(P!-(B $(P!.(B $(P!/(B +$(P!0(B $(P!1(B $(P!2(B $(P!3(B $(P!4(B $(P!5(B $(P!6(B $(P!7(B $(P!8(B $(P!9(B $(P!:(B $(P!;(B $(P!<(B $(P!=(B $(P!>(B $(P!?(B +$(P!@(B $(P!A(B $(P!B(B $(P!C(B $(P!D(B $(P!E(B $(P!F(B $(P!G(B $(P!H(B $(P!I(B $(P!J(B $(P!K(B $(P!L(B $(P!M(B $(P!N(B $(P!O(B +$(P!P(B $(P!Q(B $(P!R(B $(P!S(B $(P!T(B $(P!U(B $(P!V(B $(P!W(B $(P!X(B $(P!Y(B $(P!Z(B $(P![(B $(P!\(B $(P!](B $(P!^(B $(P!_(B +$(P!`(B $(P!a(B $(P!b(B $(P!c(B $(P!d(B $(P!e(B $(P!f(B $(P!g(B $(P!h(B $(P!i(B $(P!j(B $(P!k(B $(P!l(B $(P!m(B $(P!n(B $(P!o(B +$(P!p(B $(P!q(B $(P!r(B $(P!s(B $(P!t(B $(P!u(B $(P!v(B $(P!w(B $(P!x(B $(P!y(B $(P!z(B $(P!{(B $(P!|(B $(P!}(B $(P!~(B + $(P#!(B $(P#"(B $(P##(B $(P#$(B $(P#%(B $(P#&(B $(P#'(B $(P#((B $(P#)(B $(P#*(B $(P#+(B $(P#,(B $(P#-(B $(P#.(B $(P#/(B +$(P#0(B $(P#1(B $(P#2(B $(P#3(B $(P#4(B $(P#5(B $(P#6(B $(P#7(B $(P#8(B $(P#9(B $(P#:(B $(P#;(B $(P#<(B $(P#=(B $(P#>(B $(P#?(B +$(P#@(B $(P#A(B $(P#B(B $(P#C(B $(P#D(B $(P#E(B $(P#F(B $(P#G(B $(P#H(B $(P#I(B $(P#J(B $(P#K(B $(P#L(B $(P#M(B $(P#N(B $(P#O(B +$(P#P(B $(P#Q(B $(P#R(B $(P#S(B $(P#T(B $(P#U(B $(P#V(B $(P#W(B $(P#X(B $(P#Y(B $(P#Z(B $(P#[(B $(P#\(B $(P#](B $(P#^(B $(P#_(B +$(P#`(B $(P#a(B $(P#b(B $(P#c(B $(P#d(B $(P#e(B $(P#f(B $(P#g(B $(P#h(B $(P#i(B $(P#j(B $(P#k(B $(P#l(B $(P#m(B $(P#n(B $(P#o(B +$(P#p(B $(P#q(B $(P#r(B $(P#s(B $(P#t(B $(P#u(B $(P#v(B $(P#w(B $(P#x(B $(P#y(B $(P#z(B $(P#{(B $(P#|(B $(P#}(B $(P#~(B + $(P$!(B $(P$"(B $(P$#(B $(P$$(B $(P$%(B $(P$&(B $(P$'(B $(P$((B $(P$)(B $(P$*(B $(P$+(B $(P$,(B $(P$-(B $(P$.(B $(P$/(B +$(P$0(B $(P$1(B $(P$2(B $(P$3(B $(P$4(B $(P$5(B $(P$6(B $(P$7(B $(P$8(B $(P$9(B $(P$:(B $(P$;(B $(P$<(B $(P$=(B $(P$>(B $(P$?(B +$(P$@(B $(P$A(B $(P$B(B $(P$C(B $(P$D(B $(P$E(B $(P$F(B $(P$G(B $(P$H(B $(P$I(B $(P$J(B $(P$K(B $(P$L(B $(P$M(B $(P$N(B $(P$O(B +$(P$P(B $(P$Q(B $(P$R(B $(P$S(B $(P$T(B $(P$U(B $(P$V(B $(P$W(B $(P$X(B $(P$Y(B $(P$Z(B $(P$[(B $(P$\(B $(P$](B $(P$^(B $(P$_(B +$(P$`(B $(P$a(B $(P$b(B $(P$c(B $(P$d(B $(P$e(B $(P$f(B $(P$g(B $(P$h(B $(P$i(B $(P$j(B $(P$k(B $(P$l(B $(P$m(B $(P$n(B $(P$o(B +$(P$p(B $(P$q(B $(P$r(B $(P$s(B $(P$t(B $(P$u(B $(P$v(B $(P$w(B $(P$x(B $(P$y(B $(P$z(B $(P${(B $(P$|(B $(P$}(B $(P$~(B + $(P%!(B $(P%"(B $(P%#(B $(P%$(B $(P%%(B $(P%&(B $(P%'(B $(P%((B $(P%)(B $(P%*(B $(P%+(B $(P%,(B $(P%-(B $(P%.(B $(P%/(B +$(P%0(B $(P%1(B $(P%2(B $(P%3(B $(P%4(B $(P%5(B $(P%6(B $(P%7(B $(P%8(B $(P%9(B $(P%:(B $(P%;(B $(P%<(B $(P%=(B $(P%>(B $(P%?(B +$(P%@(B $(P%A(B $(P%B(B $(P%C(B $(P%D(B $(P%E(B $(P%F(B $(P%G(B $(P%H(B $(P%I(B $(P%J(B $(P%K(B $(P%L(B $(P%M(B $(P%N(B $(P%O(B +$(P%P(B $(P%Q(B $(P%R(B $(P%S(B $(P%T(B $(P%U(B $(P%V(B $(P%W(B $(P%X(B $(P%Y(B $(P%Z(B $(P%[(B $(P%\(B $(P%](B $(P%^(B $(P%_(B +$(P%`(B $(P%a(B $(P%b(B $(P%c(B $(P%d(B $(P%e(B $(P%f(B $(P%g(B $(P%h(B $(P%i(B $(P%j(B $(P%k(B $(P%l(B $(P%m(B $(P%n(B $(P%o(B +$(P%p(B $(P%q(B $(P%r(B $(P%s(B $(P%t(B $(P%u(B $(P%v(B $(P%w(B $(P%x(B $(P%y(B $(P%z(B $(P%{(B $(P%|(B $(P%}(B $(P%~(B + $(P(!(B $(P("(B $(P(#(B $(P($(B $(P(%(B $(P(&(B $(P('(B $(P(((B $(P()(B $(P(*(B $(P(+(B $(P(,(B $(P(-(B $(P(.(B $(P(/(B +$(P(0(B $(P(1(B $(P(2(B $(P(3(B $(P(4(B $(P(5(B $(P(6(B $(P(7(B $(P(8(B $(P(9(B $(P(:(B $(P(;(B $(P(<(B $(P(=(B $(P(>(B $(P(?(B +$(P(@(B $(P(A(B $(P(B(B $(P(C(B $(P(D(B $(P(E(B $(P(F(B $(P(G(B $(P(H(B $(P(I(B $(P(J(B $(P(K(B $(P(L(B $(P(M(B $(P(N(B $(P(O(B +$(P(P(B $(P(Q(B $(P(R(B $(P(S(B $(P(T(B $(P(U(B $(P(V(B $(P(W(B $(P(X(B $(P(Y(B $(P(Z(B $(P([(B $(P(\(B $(P(](B $(P(^(B $(P(_(B +$(P(`(B $(P(a(B $(P(b(B $(P(c(B $(P(d(B $(P(e(B $(P(f(B $(P(g(B $(P(h(B $(P(i(B $(P(j(B $(P(k(B $(P(l(B $(P(m(B $(P(n(B $(P(o(B +$(P(p(B $(P(q(B $(P(r(B $(P(s(B $(P(t(B $(P(u(B $(P(v(B $(P(w(B $(P(x(B $(P(y(B $(P(z(B $(P({(B $(P(|(B $(P(}(B $(P(~(B + $(P,!(B $(P,"(B $(P,#(B $(P,$(B $(P,%(B $(P,&(B $(P,'(B $(P,((B $(P,)(B $(P,*(B $(P,+(B $(P,,(B $(P,-(B $(P,.(B $(P,/(B +$(P,0(B $(P,1(B $(P,2(B $(P,3(B $(P,4(B $(P,5(B $(P,6(B $(P,7(B $(P,8(B $(P,9(B $(P,:(B $(P,;(B $(P,<(B $(P,=(B $(P,>(B $(P,?(B +$(P,@(B $(P,A(B $(P,B(B $(P,C(B $(P,D(B $(P,E(B $(P,F(B $(P,G(B $(P,H(B $(P,I(B $(P,J(B $(P,K(B $(P,L(B $(P,M(B $(P,N(B $(P,O(B +$(P,P(B $(P,Q(B $(P,R(B $(P,S(B $(P,T(B $(P,U(B $(P,V(B $(P,W(B $(P,X(B $(P,Y(B $(P,Z(B $(P,[(B $(P,\(B $(P,](B $(P,^(B $(P,_(B +$(P,`(B $(P,a(B $(P,b(B $(P,c(B $(P,d(B $(P,e(B $(P,f(B $(P,g(B $(P,h(B $(P,i(B $(P,j(B $(P,k(B $(P,l(B $(P,m(B $(P,n(B $(P,o(B +$(P,p(B $(P,q(B $(P,r(B $(P,s(B $(P,t(B $(P,u(B $(P,v(B $(P,w(B $(P,x(B $(P,y(B $(P,z(B $(P,{(B $(P,|(B $(P,}(B $(P,~(B + $(P-!(B $(P-"(B $(P-#(B $(P-$(B $(P-%(B $(P-&(B $(P-'(B $(P-((B $(P-)(B $(P-*(B $(P-+(B $(P-,(B $(P--(B $(P-.(B $(P-/(B +$(P-0(B $(P-1(B $(P-2(B $(P-3(B $(P-4(B $(P-5(B $(P-6(B $(P-7(B $(P-8(B $(P-9(B $(P-:(B $(P-;(B $(P-<(B $(P-=(B $(P->(B $(P-?(B +$(P-@(B $(P-A(B $(P-B(B $(P-C(B $(P-D(B $(P-E(B $(P-F(B $(P-G(B $(P-H(B $(P-I(B $(P-J(B $(P-K(B $(P-L(B $(P-M(B $(P-N(B $(P-O(B +$(P-P(B $(P-Q(B $(P-R(B $(P-S(B $(P-T(B $(P-U(B $(P-V(B $(P-W(B $(P-X(B $(P-Y(B $(P-Z(B $(P-[(B $(P-\(B $(P-](B $(P-^(B $(P-_(B +$(P-`(B $(P-a(B $(P-b(B $(P-c(B $(P-d(B $(P-e(B $(P-f(B $(P-g(B $(P-h(B $(P-i(B $(P-j(B $(P-k(B $(P-l(B $(P-m(B $(P-n(B $(P-o(B +$(P-p(B $(P-q(B $(P-r(B $(P-s(B $(P-t(B $(P-u(B $(P-v(B $(P-w(B $(P-x(B $(P-y(B $(P-z(B $(P-{(B $(P-|(B $(P-}(B $(P-~(B + $(P.!(B $(P."(B $(P.#(B $(P.$(B $(P.%(B $(P.&(B $(P.'(B $(P.((B $(P.)(B $(P.*(B $(P.+(B $(P.,(B $(P.-(B $(P..(B $(P./(B +$(P.0(B $(P.1(B $(P.2(B $(P.3(B $(P.4(B $(P.5(B $(P.6(B $(P.7(B $(P.8(B $(P.9(B $(P.:(B $(P.;(B $(P.<(B $(P.=(B $(P.>(B $(P.?(B +$(P.@(B $(P.A(B $(P.B(B $(P.C(B $(P.D(B $(P.E(B $(P.F(B $(P.G(B $(P.H(B $(P.I(B $(P.J(B $(P.K(B $(P.L(B $(P.M(B $(P.N(B $(P.O(B +$(P.P(B $(P.Q(B $(P.R(B $(P.S(B $(P.T(B $(P.U(B $(P.V(B $(P.W(B $(P.X(B $(P.Y(B $(P.Z(B $(P.[(B $(P.\(B $(P.](B $(P.^(B $(P._(B +$(P.`(B $(P.a(B $(P.b(B $(P.c(B $(P.d(B $(P.e(B $(P.f(B $(P.g(B $(P.h(B $(P.i(B $(P.j(B $(P.k(B $(P.l(B $(P.m(B $(P.n(B $(P.o(B +$(P.p(B $(P.q(B $(P.r(B $(P.s(B $(P.t(B $(P.u(B $(P.v(B $(P.w(B $(P.x(B $(P.y(B $(P.z(B $(P.{(B $(P.|(B $(P.}(B $(P.~(B + $(P/!(B $(P/"(B $(P/#(B $(P/$(B $(P/%(B $(P/&(B $(P/'(B $(P/((B $(P/)(B $(P/*(B $(P/+(B $(P/,(B $(P/-(B $(P/.(B $(P//(B +$(P/0(B $(P/1(B $(P/2(B $(P/3(B $(P/4(B $(P/5(B $(P/6(B $(P/7(B $(P/8(B $(P/9(B $(P/:(B $(P/;(B $(P/<(B $(P/=(B $(P/>(B $(P/?(B +$(P/@(B $(P/A(B $(P/B(B $(P/C(B $(P/D(B $(P/E(B $(P/F(B $(P/G(B $(P/H(B $(P/I(B $(P/J(B $(P/K(B $(P/L(B $(P/M(B $(P/N(B $(P/O(B +$(P/P(B $(P/Q(B $(P/R(B $(P/S(B $(P/T(B $(P/U(B $(P/V(B $(P/W(B $(P/X(B $(P/Y(B $(P/Z(B $(P/[(B $(P/\(B $(P/](B $(P/^(B $(P/_(B +$(P/`(B $(P/a(B $(P/b(B $(P/c(B $(P/d(B $(P/e(B $(P/f(B $(P/g(B $(P/h(B $(P/i(B $(P/j(B $(P/k(B $(P/l(B $(P/m(B $(P/n(B $(P/o(B +$(P/p(B $(P/q(B $(P/r(B $(P/s(B $(P/t(B $(P/u(B $(P/v(B $(P/w(B $(P/x(B $(P/y(B $(P/z(B $(P/{(B $(P/|(B $(P/}(B $(P/~(B + $(Pn!(B $(Pn"(B $(Pn#(B $(Pn$(B $(Pn%(B $(Pn&(B $(Pn'(B $(Pn((B $(Pn)(B $(Pn*(B $(Pn+(B $(Pn,(B $(Pn-(B $(Pn.(B $(Pn/(B +$(Pn0(B $(Pn1(B $(Pn2(B $(Pn3(B $(Pn4(B $(Pn5(B $(Pn6(B $(Pn7(B $(Pn8(B $(Pn9(B $(Pn:(B $(Pn;(B $(Pn<(B $(Pn=(B $(Pn>(B $(Pn?(B +$(Pn@(B $(PnA(B $(PnB(B $(PnC(B $(PnD(B $(PnE(B $(PnF(B $(PnG(B $(PnH(B $(PnI(B $(PnJ(B $(PnK(B $(PnL(B $(PnM(B $(PnN(B $(PnO(B +$(PnP(B $(PnQ(B $(PnR(B $(PnS(B $(PnT(B $(PnU(B $(PnV(B $(PnW(B $(PnX(B $(PnY(B $(PnZ(B $(Pn[(B $(Pn\(B $(Pn](B $(Pn^(B $(Pn_(B +$(Pn`(B $(Pna(B $(Pnb(B $(Pnc(B $(Pnd(B $(Pne(B $(Pnf(B $(Png(B $(Pnh(B $(Pni(B $(Pnj(B $(Pnk(B $(Pnl(B $(Pnm(B $(Pnn(B $(Pno(B +$(Pnp(B $(Pnq(B $(Pnr(B $(Pns(B $(Pnt(B $(Pnu(B $(Pnv(B $(Pnw(B $(Pnx(B $(Pny(B $(Pnz(B $(Pn{(B $(Pn|(B $(Pn}(B $(Pn~(B + $(Po!(B $(Po"(B $(Po#(B $(Po$(B $(Po%(B $(Po&(B $(Po'(B $(Po((B $(Po)(B $(Po*(B $(Po+(B $(Po,(B $(Po-(B $(Po.(B $(Po/(B +$(Po0(B $(Po1(B $(Po2(B $(Po3(B $(Po4(B $(Po5(B $(Po6(B $(Po7(B $(Po8(B $(Po9(B $(Po:(B $(Po;(B $(Po<(B $(Po=(B $(Po>(B $(Po?(B +$(Po@(B $(PoA(B $(PoB(B $(PoC(B $(PoD(B $(PoE(B $(PoF(B $(PoG(B $(PoH(B $(PoI(B $(PoJ(B $(PoK(B $(PoL(B $(PoM(B $(PoN(B $(PoO(B +$(PoP(B $(PoQ(B $(PoR(B $(PoS(B $(PoT(B $(PoU(B $(PoV(B $(PoW(B $(PoX(B $(PoY(B $(PoZ(B $(Po[(B $(Po\(B $(Po](B $(Po^(B $(Po_(B +$(Po`(B $(Poa(B $(Pob(B $(Poc(B $(Pod(B $(Poe(B $(Pof(B $(Pog(B $(Poh(B $(Poi(B $(Poj(B $(Pok(B $(Pol(B $(Pom(B $(Pon(B $(Poo(B +$(Pop(B $(Poq(B $(Por(B $(Pos(B $(Pot(B $(Pou(B $(Pov(B $(Pow(B $(Pox(B $(Poy(B $(Poz(B $(Po{(B $(Po|(B $(Po}(B $(Po~(B + $(Pp!(B $(Pp"(B $(Pp#(B $(Pp$(B $(Pp%(B $(Pp&(B $(Pp'(B $(Pp((B $(Pp)(B $(Pp*(B $(Pp+(B $(Pp,(B $(Pp-(B $(Pp.(B $(Pp/(B +$(Pp0(B $(Pp1(B $(Pp2(B $(Pp3(B $(Pp4(B $(Pp5(B $(Pp6(B $(Pp7(B $(Pp8(B $(Pp9(B $(Pp:(B $(Pp;(B $(Pp<(B $(Pp=(B $(Pp>(B $(Pp?(B +$(Pp@(B $(PpA(B $(PpB(B $(PpC(B $(PpD(B $(PpE(B $(PpF(B $(PpG(B $(PpH(B $(PpI(B $(PpJ(B $(PpK(B $(PpL(B $(PpM(B $(PpN(B $(PpO(B +$(PpP(B $(PpQ(B $(PpR(B $(PpS(B $(PpT(B $(PpU(B $(PpV(B $(PpW(B $(PpX(B $(PpY(B $(PpZ(B $(Pp[(B $(Pp\(B $(Pp](B $(Pp^(B $(Pp_(B +$(Pp`(B $(Ppa(B $(Ppb(B $(Ppc(B $(Ppd(B $(Ppe(B $(Ppf(B $(Ppg(B $(Pph(B $(Ppi(B $(Ppj(B $(Ppk(B $(Ppl(B $(Ppm(B $(Ppn(B $(Ppo(B +$(Ppp(B $(Ppq(B $(Ppr(B $(Pps(B $(Ppt(B $(Ppu(B $(Ppv(B $(Ppw(B $(Ppx(B $(Ppy(B $(Ppz(B $(Pp{(B $(Pp|(B $(Pp}(B $(Pp~(B + $(Pq!(B $(Pq"(B $(Pq#(B $(Pq$(B $(Pq%(B $(Pq&(B $(Pq'(B $(Pq((B $(Pq)(B $(Pq*(B $(Pq+(B $(Pq,(B $(Pq-(B $(Pq.(B $(Pq/(B +$(Pq0(B $(Pq1(B $(Pq2(B $(Pq3(B $(Pq4(B $(Pq5(B $(Pq6(B $(Pq7(B $(Pq8(B $(Pq9(B $(Pq:(B $(Pq;(B $(Pq<(B $(Pq=(B $(Pq>(B $(Pq?(B +$(Pq@(B $(PqA(B $(PqB(B $(PqC(B $(PqD(B $(PqE(B $(PqF(B $(PqG(B $(PqH(B $(PqI(B $(PqJ(B $(PqK(B $(PqL(B $(PqM(B $(PqN(B $(PqO(B +$(PqP(B $(PqQ(B $(PqR(B $(PqS(B $(PqT(B $(PqU(B $(PqV(B $(PqW(B $(PqX(B $(PqY(B $(PqZ(B $(Pq[(B $(Pq\(B $(Pq](B $(Pq^(B $(Pq_(B +$(Pq`(B $(Pqa(B $(Pqb(B $(Pqc(B $(Pqd(B $(Pqe(B $(Pqf(B $(Pqg(B $(Pqh(B $(Pqi(B $(Pqj(B $(Pqk(B $(Pql(B $(Pqm(B $(Pqn(B $(Pqo(B +$(Pqp(B $(Pqq(B $(Pqr(B $(Pqs(B $(Pqt(B $(Pqu(B $(Pqv(B $(Pqw(B $(Pqx(B $(Pqy(B $(Pqz(B $(Pq{(B $(Pq|(B $(Pq}(B $(Pq~(B + $(Pr!(B $(Pr"(B $(Pr#(B $(Pr$(B $(Pr%(B $(Pr&(B $(Pr'(B $(Pr((B $(Pr)(B $(Pr*(B $(Pr+(B $(Pr,(B $(Pr-(B $(Pr.(B $(Pr/(B +$(Pr0(B $(Pr1(B $(Pr2(B $(Pr3(B $(Pr4(B $(Pr5(B $(Pr6(B $(Pr7(B $(Pr8(B $(Pr9(B $(Pr:(B $(Pr;(B $(Pr<(B $(Pr=(B $(Pr>(B $(Pr?(B +$(Pr@(B $(PrA(B $(PrB(B $(PrC(B $(PrD(B $(PrE(B $(PrF(B $(PrG(B $(PrH(B $(PrI(B $(PrJ(B $(PrK(B $(PrL(B $(PrM(B $(PrN(B $(PrO(B +$(PrP(B $(PrQ(B $(PrR(B $(PrS(B $(PrT(B $(PrU(B $(PrV(B $(PrW(B $(PrX(B $(PrY(B $(PrZ(B $(Pr[(B $(Pr\(B $(Pr](B $(Pr^(B $(Pr_(B +$(Pr`(B $(Pra(B $(Prb(B $(Prc(B $(Prd(B $(Pre(B $(Prf(B $(Prg(B $(Prh(B $(Pri(B $(Prj(B $(Prk(B $(Prl(B $(Prm(B $(Prn(B $(Pro(B +$(Prp(B $(Prq(B $(Prr(B $(Prs(B $(Prt(B $(Pru(B $(Prv(B $(Prw(B $(Prx(B $(Pry(B $(Prz(B $(Pr{(B $(Pr|(B $(Pr}(B $(Pr~(B + $(Ps!(B $(Ps"(B $(Ps#(B $(Ps$(B $(Ps%(B $(Ps&(B $(Ps'(B $(Ps((B $(Ps)(B $(Ps*(B $(Ps+(B $(Ps,(B $(Ps-(B $(Ps.(B $(Ps/(B +$(Ps0(B $(Ps1(B $(Ps2(B $(Ps3(B $(Ps4(B $(Ps5(B $(Ps6(B $(Ps7(B $(Ps8(B $(Ps9(B $(Ps:(B $(Ps;(B $(Ps<(B $(Ps=(B $(Ps>(B $(Ps?(B +$(Ps@(B $(PsA(B $(PsB(B $(PsC(B $(PsD(B $(PsE(B $(PsF(B $(PsG(B $(PsH(B $(PsI(B $(PsJ(B $(PsK(B $(PsL(B $(PsM(B $(PsN(B $(PsO(B +$(PsP(B $(PsQ(B $(PsR(B $(PsS(B $(PsT(B $(PsU(B $(PsV(B $(PsW(B $(PsX(B $(PsY(B $(PsZ(B $(Ps[(B $(Ps\(B $(Ps](B $(Ps^(B $(Ps_(B +$(Ps`(B $(Psa(B $(Psb(B $(Psc(B $(Psd(B $(Pse(B $(Psf(B $(Psg(B $(Psh(B $(Psi(B $(Psj(B $(Psk(B $(Psl(B $(Psm(B $(Psn(B $(Pso(B +$(Psp(B $(Psq(B $(Psr(B $(Pss(B $(Pst(B $(Psu(B $(Psv(B $(Psw(B $(Psx(B $(Psy(B $(Psz(B $(Ps{(B $(Ps|(B $(Ps}(B $(Ps~(B + $(Pt!(B $(Pt"(B $(Pt#(B $(Pt$(B $(Pt%(B $(Pt&(B $(Pt'(B $(Pt((B $(Pt)(B $(Pt*(B $(Pt+(B $(Pt,(B $(Pt-(B $(Pt.(B $(Pt/(B +$(Pt0(B $(Pt1(B $(Pt2(B $(Pt3(B $(Pt4(B $(Pt5(B $(Pt6(B $(Pt7(B $(Pt8(B $(Pt9(B $(Pt:(B $(Pt;(B $(Pt<(B $(Pt=(B $(Pt>(B $(Pt?(B +$(Pt@(B $(PtA(B $(PtB(B $(PtC(B $(PtD(B $(PtE(B $(PtF(B $(PtG(B $(PtH(B $(PtI(B $(PtJ(B $(PtK(B $(PtL(B $(PtM(B $(PtN(B $(PtO(B +$(PtP(B $(PtQ(B $(PtR(B $(PtS(B $(PtT(B $(PtU(B $(PtV(B $(PtW(B $(PtX(B $(PtY(B $(PtZ(B $(Pt[(B $(Pt\(B $(Pt](B $(Pt^(B $(Pt_(B +$(Pt`(B $(Pta(B $(Ptb(B $(Ptc(B $(Ptd(B $(Pte(B $(Ptf(B $(Ptg(B $(Pth(B $(Pti(B $(Ptj(B $(Ptk(B $(Ptl(B $(Ptm(B $(Ptn(B $(Pto(B +$(Ptp(B $(Ptq(B $(Ptr(B $(Pts(B $(Ptt(B $(Ptu(B $(Ptv(B $(Ptw(B $(Ptx(B $(Pty(B $(Ptz(B $(Pt{(B $(Pt|(B $(Pt}(B $(Pt~(B + $(Pu!(B $(Pu"(B $(Pu#(B $(Pu$(B $(Pu%(B $(Pu&(B $(Pu'(B $(Pu((B $(Pu)(B $(Pu*(B $(Pu+(B $(Pu,(B $(Pu-(B $(Pu.(B $(Pu/(B +$(Pu0(B $(Pu1(B $(Pu2(B $(Pu3(B $(Pu4(B $(Pu5(B $(Pu6(B $(Pu7(B $(Pu8(B $(Pu9(B $(Pu:(B $(Pu;(B $(Pu<(B $(Pu=(B $(Pu>(B $(Pu?(B +$(Pu@(B $(PuA(B $(PuB(B $(PuC(B $(PuD(B $(PuE(B $(PuF(B $(PuG(B $(PuH(B $(PuI(B $(PuJ(B $(PuK(B $(PuL(B $(PuM(B $(PuN(B $(PuO(B +$(PuP(B $(PuQ(B $(PuR(B $(PuS(B $(PuT(B $(PuU(B $(PuV(B $(PuW(B $(PuX(B $(PuY(B $(PuZ(B $(Pu[(B $(Pu\(B $(Pu](B $(Pu^(B $(Pu_(B +$(Pu`(B $(Pua(B $(Pub(B $(Puc(B $(Pud(B $(Pue(B $(Puf(B $(Pug(B $(Puh(B $(Pui(B $(Puj(B $(Puk(B $(Pul(B $(Pum(B $(Pun(B $(Puo(B +$(Pup(B $(Puq(B $(Pur(B $(Pus(B $(Put(B $(Puu(B $(Puv(B $(Puw(B $(Pux(B $(Puy(B $(Puz(B $(Pu{(B $(Pu|(B $(Pu}(B $(Pu~(B + $(Pv!(B $(Pv"(B $(Pv#(B $(Pv$(B $(Pv%(B $(Pv&(B $(Pv'(B $(Pv((B $(Pv)(B $(Pv*(B $(Pv+(B $(Pv,(B $(Pv-(B $(Pv.(B $(Pv/(B +$(Pv0(B $(Pv1(B $(Pv2(B $(Pv3(B $(Pv4(B $(Pv5(B $(Pv6(B $(Pv7(B $(Pv8(B $(Pv9(B $(Pv:(B $(Pv;(B $(Pv<(B $(Pv=(B $(Pv>(B $(Pv?(B +$(Pv@(B $(PvA(B $(PvB(B $(PvC(B $(PvD(B $(PvE(B $(PvF(B $(PvG(B $(PvH(B $(PvI(B $(PvJ(B $(PvK(B $(PvL(B $(PvM(B $(PvN(B $(PvO(B +$(PvP(B $(PvQ(B $(PvR(B $(PvS(B $(PvT(B $(PvU(B $(PvV(B $(PvW(B $(PvX(B $(PvY(B $(PvZ(B $(Pv[(B $(Pv\(B $(Pv](B $(Pv^(B $(Pv_(B +$(Pv`(B $(Pva(B $(Pvb(B $(Pvc(B $(Pvd(B $(Pve(B $(Pvf(B $(Pvg(B $(Pvh(B $(Pvi(B $(Pvj(B $(Pvk(B $(Pvl(B $(Pvm(B $(Pvn(B $(Pvo(B +$(Pvp(B $(Pvq(B $(Pvr(B $(Pvs(B $(Pvt(B $(Pvu(B $(Pvv(B $(Pvw(B $(Pvx(B $(Pvy(B $(Pvz(B $(Pv{(B $(Pv|(B $(Pv}(B $(Pv~(B + $(Pw!(B $(Pw"(B $(Pw#(B $(Pw$(B $(Pw%(B $(Pw&(B $(Pw'(B $(Pw((B $(Pw)(B $(Pw*(B $(Pw+(B $(Pw,(B $(Pw-(B $(Pw.(B $(Pw/(B +$(Pw0(B $(Pw1(B $(Pw2(B $(Pw3(B $(Pw4(B $(Pw5(B $(Pw6(B $(Pw7(B $(Pw8(B $(Pw9(B $(Pw:(B $(Pw;(B $(Pw<(B $(Pw=(B $(Pw>(B $(Pw?(B +$(Pw@(B $(PwA(B $(PwB(B $(PwC(B $(PwD(B $(PwE(B $(PwF(B $(PwG(B $(PwH(B $(PwI(B $(PwJ(B $(PwK(B $(PwL(B $(PwM(B $(PwN(B $(PwO(B +$(PwP(B $(PwQ(B $(PwR(B $(PwS(B $(PwT(B $(PwU(B $(PwV(B $(PwW(B $(PwX(B $(PwY(B $(PwZ(B $(Pw[(B $(Pw\(B $(Pw](B $(Pw^(B $(Pw_(B +$(Pw`(B $(Pwa(B $(Pwb(B $(Pwc(B $(Pwd(B $(Pwe(B $(Pwf(B $(Pwg(B $(Pwh(B $(Pwi(B $(Pwj(B $(Pwk(B $(Pwl(B $(Pwm(B $(Pwn(B $(Pwo(B +$(Pwp(B $(Pwq(B $(Pwr(B $(Pws(B $(Pwt(B $(Pwu(B $(Pwv(B $(Pww(B $(Pwx(B $(Pwy(B $(Pwz(B $(Pw{(B $(Pw|(B $(Pw}(B $(Pw~(B + $(Px!(B $(Px"(B $(Px#(B $(Px$(B $(Px%(B $(Px&(B $(Px'(B $(Px((B $(Px)(B $(Px*(B $(Px+(B $(Px,(B $(Px-(B $(Px.(B $(Px/(B +$(Px0(B $(Px1(B $(Px2(B $(Px3(B $(Px4(B $(Px5(B $(Px6(B $(Px7(B $(Px8(B $(Px9(B $(Px:(B $(Px;(B $(Px<(B $(Px=(B $(Px>(B $(Px?(B +$(Px@(B $(PxA(B $(PxB(B $(PxC(B $(PxD(B $(PxE(B $(PxF(B $(PxG(B $(PxH(B $(PxI(B $(PxJ(B $(PxK(B $(PxL(B $(PxM(B $(PxN(B $(PxO(B +$(PxP(B $(PxQ(B $(PxR(B $(PxS(B $(PxT(B $(PxU(B $(PxV(B $(PxW(B $(PxX(B $(PxY(B $(PxZ(B $(Px[(B $(Px\(B $(Px](B $(Px^(B $(Px_(B +$(Px`(B $(Pxa(B $(Pxb(B $(Pxc(B $(Pxd(B $(Pxe(B $(Pxf(B $(Pxg(B $(Pxh(B $(Pxi(B $(Pxj(B $(Pxk(B $(Pxl(B $(Pxm(B $(Pxn(B $(Pxo(B +$(Pxp(B $(Pxq(B $(Pxr(B $(Pxs(B $(Pxt(B $(Pxu(B $(Pxv(B $(Pxw(B $(Pxx(B $(Pxy(B $(Pxz(B $(Px{(B $(Px|(B $(Px}(B $(Px~(B + $(Py!(B $(Py"(B $(Py#(B $(Py$(B $(Py%(B $(Py&(B $(Py'(B $(Py((B $(Py)(B $(Py*(B $(Py+(B $(Py,(B $(Py-(B $(Py.(B $(Py/(B +$(Py0(B $(Py1(B $(Py2(B $(Py3(B $(Py4(B $(Py5(B $(Py6(B $(Py7(B $(Py8(B $(Py9(B $(Py:(B $(Py;(B $(Py<(B $(Py=(B $(Py>(B $(Py?(B +$(Py@(B $(PyA(B $(PyB(B $(PyC(B $(PyD(B $(PyE(B $(PyF(B $(PyG(B $(PyH(B $(PyI(B $(PyJ(B $(PyK(B $(PyL(B $(PyM(B $(PyN(B $(PyO(B +$(PyP(B $(PyQ(B $(PyR(B $(PyS(B $(PyT(B $(PyU(B $(PyV(B $(PyW(B $(PyX(B $(PyY(B $(PyZ(B $(Py[(B $(Py\(B $(Py](B $(Py^(B $(Py_(B +$(Py`(B $(Pya(B $(Pyb(B $(Pyc(B $(Pyd(B $(Pye(B $(Pyf(B $(Pyg(B $(Pyh(B $(Pyi(B $(Pyj(B $(Pyk(B $(Pyl(B $(Pym(B $(Pyn(B $(Pyo(B +$(Pyp(B $(Pyq(B $(Pyr(B $(Pys(B $(Pyt(B $(Pyu(B $(Pyv(B $(Pyw(B $(Pyx(B $(Pyy(B $(Pyz(B $(Py{(B $(Py|(B $(Py}(B $(Py~(B + $(Pz!(B $(Pz"(B $(Pz#(B $(Pz$(B $(Pz%(B $(Pz&(B $(Pz'(B $(Pz((B $(Pz)(B $(Pz*(B $(Pz+(B $(Pz,(B $(Pz-(B $(Pz.(B $(Pz/(B +$(Pz0(B $(Pz1(B $(Pz2(B $(Pz3(B $(Pz4(B $(Pz5(B $(Pz6(B $(Pz7(B $(Pz8(B $(Pz9(B $(Pz:(B $(Pz;(B $(Pz<(B $(Pz=(B $(Pz>(B $(Pz?(B +$(Pz@(B $(PzA(B $(PzB(B $(PzC(B $(PzD(B $(PzE(B $(PzF(B $(PzG(B $(PzH(B $(PzI(B $(PzJ(B $(PzK(B $(PzL(B $(PzM(B $(PzN(B $(PzO(B +$(PzP(B $(PzQ(B $(PzR(B $(PzS(B $(PzT(B $(PzU(B $(PzV(B $(PzW(B $(PzX(B $(PzY(B $(PzZ(B $(Pz[(B $(Pz\(B $(Pz](B $(Pz^(B $(Pz_(B +$(Pz`(B $(Pza(B $(Pzb(B $(Pzc(B $(Pzd(B $(Pze(B $(Pzf(B $(Pzg(B $(Pzh(B $(Pzi(B $(Pzj(B $(Pzk(B $(Pzl(B $(Pzm(B $(Pzn(B $(Pzo(B +$(Pzp(B $(Pzq(B $(Pzr(B $(Pzs(B $(Pzt(B $(Pzu(B $(Pzv(B $(Pzw(B $(Pzx(B $(Pzy(B $(Pzz(B $(Pz{(B $(Pz|(B $(Pz}(B $(Pz~(B + $(P{!(B $(P{"(B $(P{#(B $(P{$(B $(P{%(B $(P{&(B $(P{'(B $(P{((B $(P{)(B $(P{*(B $(P{+(B $(P{,(B $(P{-(B $(P{.(B $(P{/(B +$(P{0(B $(P{1(B $(P{2(B $(P{3(B $(P{4(B $(P{5(B $(P{6(B $(P{7(B $(P{8(B $(P{9(B $(P{:(B $(P{;(B $(P{<(B $(P{=(B $(P{>(B $(P{?(B +$(P{@(B $(P{A(B $(P{B(B $(P{C(B $(P{D(B $(P{E(B $(P{F(B $(P{G(B $(P{H(B $(P{I(B $(P{J(B $(P{K(B $(P{L(B $(P{M(B $(P{N(B $(P{O(B +$(P{P(B $(P{Q(B $(P{R(B $(P{S(B $(P{T(B $(P{U(B $(P{V(B $(P{W(B $(P{X(B $(P{Y(B $(P{Z(B $(P{[(B $(P{\(B $(P{](B $(P{^(B $(P{_(B +$(P{`(B $(P{a(B $(P{b(B $(P{c(B $(P{d(B $(P{e(B $(P{f(B $(P{g(B $(P{h(B $(P{i(B $(P{j(B $(P{k(B $(P{l(B $(P{m(B $(P{n(B $(P{o(B +$(P{p(B $(P{q(B $(P{r(B $(P{s(B $(P{t(B $(P{u(B $(P{v(B $(P{w(B $(P{x(B $(P{y(B $(P{z(B $(P{{(B $(P{|(B $(P{}(B $(P{~(B + $(P|!(B $(P|"(B $(P|#(B $(P|$(B $(P|%(B $(P|&(B $(P|'(B $(P|((B $(P|)(B $(P|*(B $(P|+(B $(P|,(B $(P|-(B $(P|.(B $(P|/(B +$(P|0(B $(P|1(B $(P|2(B $(P|3(B $(P|4(B $(P|5(B $(P|6(B $(P|7(B $(P|8(B $(P|9(B $(P|:(B $(P|;(B $(P|<(B $(P|=(B $(P|>(B $(P|?(B +$(P|@(B $(P|A(B $(P|B(B $(P|C(B $(P|D(B $(P|E(B $(P|F(B $(P|G(B $(P|H(B $(P|I(B $(P|J(B $(P|K(B $(P|L(B $(P|M(B $(P|N(B $(P|O(B +$(P|P(B $(P|Q(B $(P|R(B $(P|S(B $(P|T(B $(P|U(B $(P|V(B $(P|W(B $(P|X(B $(P|Y(B $(P|Z(B $(P|[(B $(P|\(B $(P|](B $(P|^(B $(P|_(B +$(P|`(B $(P|a(B $(P|b(B $(P|c(B $(P|d(B $(P|e(B $(P|f(B $(P|g(B $(P|h(B $(P|i(B $(P|j(B $(P|k(B $(P|l(B $(P|m(B $(P|n(B $(P|o(B +$(P|p(B $(P|q(B $(P|r(B $(P|s(B $(P|t(B $(P|u(B $(P|v(B $(P|w(B $(P|x(B $(P|y(B $(P|z(B $(P|{(B $(P||(B $(P|}(B $(P|~(B + $(P}!(B $(P}"(B $(P}#(B $(P}$(B $(P}%(B $(P}&(B $(P}'(B $(P}((B $(P})(B $(P}*(B $(P}+(B $(P},(B $(P}-(B $(P}.(B $(P}/(B +$(P}0(B $(P}1(B $(P}2(B $(P}3(B $(P}4(B $(P}5(B $(P}6(B $(P}7(B $(P}8(B $(P}9(B $(P}:(B $(P};(B $(P}<(B $(P}=(B $(P}>(B $(P}?(B +$(P}@(B $(P}A(B $(P}B(B $(P}C(B $(P}D(B $(P}E(B $(P}F(B $(P}G(B $(P}H(B $(P}I(B $(P}J(B $(P}K(B $(P}L(B $(P}M(B $(P}N(B $(P}O(B +$(P}P(B $(P}Q(B $(P}R(B $(P}S(B $(P}T(B $(P}U(B $(P}V(B $(P}W(B $(P}X(B $(P}Y(B $(P}Z(B $(P}[(B $(P}\(B $(P}](B $(P}^(B $(P}_(B +$(P}`(B $(P}a(B $(P}b(B $(P}c(B $(P}d(B $(P}e(B $(P}f(B $(P}g(B $(P}h(B $(P}i(B $(P}j(B $(P}k(B $(P}l(B $(P}m(B $(P}n(B $(P}o(B +$(P}p(B $(P}q(B $(P}r(B $(P}s(B $(P}t(B $(P}u(B $(P}v(B $(P}w(B $(P}x(B $(P}y(B $(P}z(B $(P}{(B $(P}|(B $(P}}(B $(P}~(B + $(P~!(B $(P~"(B $(P~#(B $(P~$(B $(P~%(B $(P~&(B $(P~'(B $(P~((B $(P~)(B $(P~*(B $(P~+(B $(P~,(B $(P~-(B $(P~.(B $(P~/(B +$(P~0(B $(P~1(B $(P~2(B $(P~3(B $(P~4(B $(P~5(B $(P~6(B $(P~7(B $(P~8(B $(P~9(B $(P~:(B $(P~;(B $(P~<(B $(P~=(B $(P~>(B $(P~?(B +$(P~@(B $(P~A(B $(P~B(B $(P~C(B $(P~D(B $(P~E(B $(P~F(B $(P~G(B $(P~H(B $(P~I(B $(P~J(B $(P~K(B $(P~L(B $(P~M(B $(P~N(B $(P~O(B +$(P~P(B $(P~Q(B $(P~R(B $(P~S(B $(P~T(B $(P~U(B $(P~V(B $(P~W(B $(P~X(B $(P~Y(B $(P~Z(B $(P~[(B $(P~\(B $(P~](B $(P~^(B $(P~_(B +$(P~`(B $(P~a(B $(P~b(B $(P~c(B $(P~d(B $(P~e(B $(P~f(B $(P~g(B $(P~h(B $(P~i(B $(P~j(B $(P~k(B $(P~l(B $(P~m(B $(P~n(B $(P~o(B +$(P~p(B $(P~q(B $(P~r(B $(P~s(B $(P~t(B $(P~u(B $(P~v(B diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet.UTF-8 new file mode 100644 index 0000000..e1563e4 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-3-snippet.UTF-8 @@ -0,0 +1,730 @@ + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; < = > ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + 。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ +ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ +タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ +ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚ +   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ +^  ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー ― ‐ / +\ 〜 ‖ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] +{ } 〈 〉 《 》 「 」 『 』 【 】 + − ± × +÷ = ≠ < > ≦ ≧ ∞ ∴ ♂ ♀ ° ′ ″ ℃ ¥ +$ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ + ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 ' +" - ~ 〳 〴 〵 〻 〼 ヿ ゟ ∈ ∋ ⊆ ⊇ ⊂ ⊃ +∪ ∩ ⊄ ⊅ ⊊ ⊋ ∉ ∅ ⌅ ⌆ ∧ ∨ ¬ ⇒ ⇔ ∀ +∃ ⊕ ⊖ ⊗ ∥ ∦ ⦅ ⦆ 〘 〙 〖 〗 ∠ ⊥ ⌒ ∂ +∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ≢ ≃ ≅ ≈ ≶ +≷ ↔ Å ‰ ♯ ♭ ♪ † ‡ ¶ ♮ ♫ ♬ ♩ ◯ + ▷ ▶ ◁ ◀ ↗ ↘ ↖ ↙ ⇄ ⇨ ⇦ ⇧ ⇩ ⤴ ⤵ +0 1 2 3 4 5 6 7 8 9 ⦿ ◉ 〽 ﹆ ﹅ ◦ +• A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z ∓ ℵ ℏ ㏋ ℓ +℧ a b c d e f g h i j k l m n o +p q r s t u v w x y z ゠ – ⧺ ⧻ + ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く +ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た +だ ち ぢ っ つ づ て で と ど な に ぬ ね の は +ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み +む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ +ゐ ゑ を ん ゔ ゕ ゖ か゚ き゚ く゚ け゚ こ゚ + ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク +グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ +ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ +バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ +ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ +ヰ ヱ ヲ ン ヴ ヵ ヶ カ゚ キ゚ ク゚ ケ゚ コ゚ セ゚ ツ゚ ト゚ + Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο +Π Ρ Σ Τ Υ Φ Χ Ψ Ω ♤ ♠ ♢ ♦ ♡ ♥ ♧ +♣ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο +π ρ σ τ υ φ χ ψ ω ς ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ +⓻ ⓼ ⓽ ⓾ ☖ ☗ 〠 ☎ ☀ ☁ ☂ ☃ ♨ ▱ ㇰ ㇱ +ㇲ ㇳ ㇴ ㇵ ㇶ ㇷ ㇸ ㇹ ㇷ゚ ㇺ ㇻ ㇼ ㇽ ㇾ ㇿ + А Б В Г Д Е Ё Ж З И Й К Л М Н +О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э +Ю Я ⎾ ⎿ ⏀ ⏁ ⏂ ⏃ ⏄ ⏅ ⏆ ⏇ ⏈ ⏉ ⏊ ⏋ +⏌ а б в г д е ё ж з и й к л м н +о п р с т у ф х ц ч ш щ ъ ы ь э +ю я ヷ ヸ ヹ ヺ ⋚ ⋛ ⅓ ⅔ ⅕ ✓ ⌘ ␣ ⏎ + ─ │ ┌ ┐ ┘ └ ├ ┬ ┤ ┴ ┼ ━ ┃ ┏ ┓ +┛ ┗ ┣ ┳ ┫ ┻ ╋ ┠ ┯ ┨ ┷ ┿ ┝ ┰ ┥ ┸ +╂ ㉑ ㉒ ㉓ ㉔ ㉕ ㉖ ㉗ ㉘ ㉙ ㉚ ㉛ ㉜ ㉝ ㉞ ㉟ +㊱ ㊲ ㊳ ㊴ ㊵ ㊶ ㊷ ㊸ ㊹ ㊺ ㊻ ㊼ ㊽ ㊾ ㊿ + ◐ ◑ ◒ ◓ ‼ ⁇ ⁈ ⁉ Ǎ +ǎ ǐ Ḿ ḿ Ǹ ǹ Ǒ ǒ ǔ ǖ ǘ ǚ ǜ + €   ¡ ¤ ¦ © ª « ­ ® ¯ ² ³ · ¸ +¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È +É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù +Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é +ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú +û ü ý þ ÿ Ā Ī Ū Ē Ō ā ī ū ē ō + Ą ˘ Ł Ľ Ś Š Ş Ť Ź Ž Ż ą ˛ ł ľ +ś ˇ š ş ť ź ˝ ž ż Ŕ Ă Ĺ Ć Č Ę Ě +Ď Ń Ň Ő Ř Ů Ű Ţ ŕ ă ĺ ć č ę ě ď +đ ń ň ő ř ů ű ţ ˙ Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ ĉ +ĝ ĥ ĵ ŝ ŭ ɱ ʋ ɾ ʃ ʒ ɬ ɮ ɹ ʈ ɖ ɳ +ɽ ʂ ʐ ɻ ɭ ɟ ɲ ʝ ʎ ɡ ŋ ɰ ʁ ħ ʕ + ʔ ɦ ʘ ǂ ɓ ɗ ʄ ɠ Ɠ œ Œ ɨ ʉ ɘ ɵ +ə ɜ ɞ ɐ ɯ ʊ ɤ ʌ ɔ ɑ ɒ ʍ ɥ ʢ ʡ ɕ +ʑ ɺ ɧ ɚ æ̀ ǽ ὰ ά ɔ̀ ɔ́ ʌ̀ ʌ́ ə̀ ə́ ɚ̀ ɚ́ +ὲ έ ͡ ˈ ˌ ː ˑ ̆ ‿ ̋ ́ ̄ ̀ ̏ ̌ ̂ +˥ ˦ ˧ ˨ ˩ ˩˥ ˥˩ ̥ ̬ ̹ ̜ ̟ ̠ ̈ ̽ ̩ +̯ ˞ ̤ ̰ ̼ ̴ ̝ ̞ ̘ ̙ ̪ ̺ ̻ ̃ ̚ + ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿ ⓫ ⓬ ⓭ ⓮ ⓯ +⓰ ⓱ ⓲ ⓳ ⓴ ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ +ⅻ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ +ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ㋐ ㋑ ㋒ ㋓ ㋔ +㋕ ㋖ ㋗ ㋘ ㋙ ㋚ ㋛ ㋜ ㋝ ㋞ ㋟ ㋠ ㋡ ㋢ ㋣ ㋺ +㋩ ㋥ ㋭ ㋬ ⁑ ⁂ + ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ +⑯ ⑰ ⑱ ⑲ ⑳ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ +㍉ ㌔ ㌢ ㍍ ㌘ ㌧ ㌃ ㌶ ㍑ ㍗ ㌍ ㌦ ㌣ ㌫ ㍊ ㌻ +㎜ ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ Ⅻ ㍻ +〝 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼ + ∮ ∟ ⊿ ❖ ☞ + 𠀋 㐂 丨 丯 丰 亍 仡 份 仿 伃 伋 你 佈 佉 +佖 佟 佪 佬 佾 侊 侔 侗 侮 俉 俠 倁 倂 倎 倘 倧 +倮 偀 倻 偁 傔 僌 僲 僐 僦 僧 儆 儃 儋 儞 儵 兊 +免 兕 兗 㒵 冝 凃 凊 凞 凢 凮 刁 㓛 刓 刕 剉 剗 +剡 劓 勈 勉 勌 勐 勖 勛 勤 勰 勻 匀 匇 匜 卑 卡 +卣 卽 厓 厝 厲 吒 吧 呍 咜 呫 呴 呿 咈 咖 咡 + 咩 哆 哿 唎 唫 唵 啐 啞 喁 喆 喎 喝 喭 嗎 嘆 +嘈 嘎 嘻 噉 噶 噦 器 噯 噱 噲 嚙 嚞 嚩 嚬 嚳 囉 +囊 圊 𡈽 圡 圯 圳 圴 坰 坷 坼 垜 﨏 𡌛 垸 埇 埈 +埏 埤 埭 埵 埶 埿 堉 塚 塡 塤 塀 塼 墉 增 墨 墩 +𡑮 壒 壎 壔 壚 壠 壩 夌 虁 奝 奭 妋 妒 妤 姃 姒 +姝 娓 娣 婧 婭 婷 婾 媄 媞 媧 嫄 𡢽 嬙 嬥 + 亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥 +旭 葦 芦 鯵 梓 圧 斡 扱 宛 姐 虻 飴 絢 綾 鮎 或 +粟 袷 安 庵 按 暗 案 闇 鞍 杏 以 伊 位 依 偉 囲 +夷 委 威 尉 惟 意 慰 易 椅 為 畏 異 移 維 緯 胃 +萎 衣 謂 違 遺 医 井 亥 域 育 郁 磯 一 壱 溢 逸 +稲 茨 芋 鰯 允 印 咽 員 因 姻 引 飲 淫 胤 蔭 + 院 陰 隠 韻 吋 右 宇 烏 羽 迂 雨 卯 鵜 窺 丑 +碓 臼 渦 嘘 唄 欝 蔚 鰻 姥 厩 浦 瓜 閏 噂 云 運 +雲 荏 餌 叡 営 嬰 影 映 曳 栄 永 泳 洩 瑛 盈 穎 +頴 英 衛 詠 鋭 液 疫 益 駅 悦 謁 越 閲 榎 厭 円 +園 堰 奄 宴 延 怨 掩 援 沿 演 炎 焔 煙 燕 猿 縁 +艶 苑 薗 遠 鉛 鴛 塩 於 汚 甥 凹 央 奥 往 応 + 押 旺 横 欧 殴 王 翁 襖 鴬 鴎 黄 岡 沖 荻 億 +屋 憶 臆 桶 牡 乙 俺 卸 恩 温 穏 音 下 化 仮 何 +伽 価 佳 加 可 嘉 夏 嫁 家 寡 科 暇 果 架 歌 河 +火 珂 禍 禾 稼 箇 花 苛 茄 荷 華 菓 蝦 課 嘩 貨 +迦 過 霞 蚊 俄 峨 我 牙 画 臥 芽 蛾 賀 雅 餓 駕 +介 会 解 回 塊 壊 廻 快 怪 悔 恢 懐 戒 拐 改 + 魁 晦 械 海 灰 界 皆 絵 芥 蟹 開 階 貝 凱 劾 +外 咳 害 崖 慨 概 涯 碍 蓋 街 該 鎧 骸 浬 馨 蛙 +垣 柿 蛎 鈎 劃 嚇 各 廓 拡 撹 格 核 殻 獲 確 穫 +覚 角 赫 較 郭 閣 隔 革 学 岳 楽 額 顎 掛 笠 樫 +橿 梶 鰍 潟 割 喝 恰 括 活 渇 滑 葛 褐 轄 且 鰹 +叶 椛 樺 鞄 株 兜 竃 蒲 釜 鎌 噛 鴨 栢 茅 萱 + 粥 刈 苅 瓦 乾 侃 冠 寒 刊 勘 勧 巻 喚 堪 姦 +完 官 寛 干 幹 患 感 慣 憾 換 敢 柑 桓 棺 款 歓 +汗 漢 澗 潅 環 甘 監 看 竿 管 簡 緩 缶 翰 肝 艦 +莞 観 諌 貫 還 鑑 間 閑 関 陥 韓 館 舘 丸 含 岸 +巌 玩 癌 眼 岩 翫 贋 雁 頑 顔 願 企 伎 危 喜 器 +基 奇 嬉 寄 岐 希 幾 忌 揮 机 旗 既 期 棋 棄 + 機 帰 毅 気 汽 畿 祈 季 稀 紀 徽 規 記 貴 起 +軌 輝 飢 騎 鬼 亀 偽 儀 妓 宜 戯 技 擬 欺 犠 疑 +祇 義 蟻 誼 議 掬 菊 鞠 吉 吃 喫 桔 橘 詰 砧 杵 +黍 却 客 脚 虐 逆 丘 久 仇 休 及 吸 宮 弓 急 救 +朽 求 汲 泣 灸 球 究 窮 笈 級 糾 給 旧 牛 去 居 +巨 拒 拠 挙 渠 虚 許 距 鋸 漁 禦 魚 亨 享 京 + 供 侠 僑 兇 競 共 凶 協 匡 卿 叫 喬 境 峡 強 +彊 怯 恐 恭 挟 教 橋 況 狂 狭 矯 胸 脅 興 蕎 郷 +鏡 響 饗 驚 仰 凝 尭 暁 業 局 曲 極 玉 桐 粁 僅 +勤 均 巾 錦 斤 欣 欽 琴 禁 禽 筋 緊 芹 菌 衿 襟 +謹 近 金 吟 銀 九 倶 句 区 狗 玖 矩 苦 躯 駆 駈 +駒 具 愚 虞 喰 空 偶 寓 遇 隅 串 櫛 釧 屑 屈 + 掘 窟 沓 靴 轡 窪 熊 隈 粂 栗 繰 桑 鍬 勲 君 +薫 訓 群 軍 郡 卦 袈 祁 係 傾 刑 兄 啓 圭 珪 型 +契 形 径 恵 慶 慧 憩 掲 携 敬 景 桂 渓 畦 稽 系 +経 継 繋 罫 茎 荊 蛍 計 詣 警 軽 頚 鶏 芸 迎 鯨 +劇 戟 撃 激 隙 桁 傑 欠 決 潔 穴 結 血 訣 月 件 +倹 倦 健 兼 券 剣 喧 圏 堅 嫌 建 憲 懸 拳 捲 + 検 権 牽 犬 献 研 硯 絹 県 肩 見 謙 賢 軒 遣 +鍵 険 顕 験 鹸 元 原 厳 幻 弦 減 源 玄 現 絃 舷 +言 諺 限 乎 個 古 呼 固 姑 孤 己 庫 弧 戸 故 枯 +湖 狐 糊 袴 股 胡 菰 虎 誇 跨 鈷 雇 顧 鼓 五 互 +伍 午 呉 吾 娯 後 御 悟 梧 檎 瑚 碁 語 誤 護 醐 +乞 鯉 交 佼 侯 候 倖 光 公 功 効 勾 厚 口 向 + 后 喉 坑 垢 好 孔 孝 宏 工 巧 巷 幸 広 庚 康 +弘 恒 慌 抗 拘 控 攻 昂 晃 更 杭 校 梗 構 江 洪 +浩 港 溝 甲 皇 硬 稿 糠 紅 紘 絞 綱 耕 考 肯 肱 +腔 膏 航 荒 行 衡 講 貢 購 郊 酵 鉱 砿 鋼 閤 降 +項 香 高 鴻 剛 劫 号 合 壕 拷 濠 豪 轟 麹 克 刻 +告 国 穀 酷 鵠 黒 獄 漉 腰 甑 忽 惚 骨 狛 込 + 此 頃 今 困 坤 墾 婚 恨 懇 昏 昆 根 梱 混 痕 +紺 艮 魂 些 佐 叉 唆 嵯 左 差 査 沙 瑳 砂 詐 鎖 +裟 坐 座 挫 債 催 再 最 哉 塞 妻 宰 彩 才 採 栽 +歳 済 災 采 犀 砕 砦 祭 斎 細 菜 裁 載 際 剤 在 +材 罪 財 冴 坂 阪 堺 榊 肴 咲 崎 埼 碕 鷺 作 削 +咋 搾 昨 朔 柵 窄 策 索 錯 桜 鮭 笹 匙 冊 刷 + 察 拶 撮 擦 札 殺 薩 雑 皐 鯖 捌 錆 鮫 皿 晒 +三 傘 参 山 惨 撒 散 桟 燦 珊 産 算 纂 蚕 讃 賛 +酸 餐 斬 暫 残 仕 仔 伺 使 刺 司 史 嗣 四 士 始 +姉 姿 子 屍 市 師 志 思 指 支 孜 斯 施 旨 枝 止 +死 氏 獅 祉 私 糸 紙 紫 肢 脂 至 視 詞 詩 試 誌 +諮 資 賜 雌 飼 歯 事 似 侍 児 字 寺 慈 持 時 + 次 滋 治 爾 璽 痔 磁 示 而 耳 自 蒔 辞 汐 鹿 +式 識 鴫 竺 軸 宍 雫 七 叱 執 失 嫉 室 悉 湿 漆 +疾 質 実 蔀 篠 偲 柴 芝 屡 蕊 縞 舎 写 射 捨 赦 +斜 煮 社 紗 者 謝 車 遮 蛇 邪 借 勺 尺 杓 灼 爵 +酌 釈 錫 若 寂 弱 惹 主 取 守 手 朱 殊 狩 珠 種 +腫 趣 酒 首 儒 受 呪 寿 授 樹 綬 需 囚 収 周 + 宗 就 州 修 愁 拾 洲 秀 秋 終 繍 習 臭 舟 蒐 +衆 襲 讐 蹴 輯 週 酋 酬 集 醜 什 住 充 十 従 戎 +柔 汁 渋 獣 縦 重 銃 叔 夙 宿 淑 祝 縮 粛 塾 熟 +出 術 述 俊 峻 春 瞬 竣 舜 駿 准 循 旬 楯 殉 淳 +準 潤 盾 純 巡 遵 醇 順 処 初 所 暑 曙 渚 庶 緒 +署 書 薯 藷 諸 助 叙 女 序 徐 恕 鋤 除 傷 償 + 勝 匠 升 召 哨 商 唱 嘗 奨 妾 娼 宵 将 小 少 +尚 庄 床 廠 彰 承 抄 招 掌 捷 昇 昌 昭 晶 松 梢 +樟 樵 沼 消 渉 湘 焼 焦 照 症 省 硝 礁 祥 称 章 +笑 粧 紹 肖 菖 蒋 蕉 衝 裳 訟 証 詔 詳 象 賞 醤 +鉦 鍾 鐘 障 鞘 上 丈 丞 乗 冗 剰 城 場 壌 嬢 常 +情 擾 条 杖 浄 状 畳 穣 蒸 譲 醸 錠 嘱 埴 飾 + 拭 植 殖 燭 織 職 色 触 食 蝕 辱 尻 伸 信 侵 +唇 娠 寝 審 心 慎 振 新 晋 森 榛 浸 深 申 疹 真 +神 秦 紳 臣 芯 薪 親 診 身 辛 進 針 震 人 仁 刃 +塵 壬 尋 甚 尽 腎 訊 迅 陣 靭 笥 諏 須 酢 図 厨 +逗 吹 垂 帥 推 水 炊 睡 粋 翠 衰 遂 酔 錐 錘 随 +瑞 髄 崇 嵩 数 枢 趨 雛 据 杉 椙 菅 頗 雀 裾 + 澄 摺 寸 世 瀬 畝 是 凄 制 勢 姓 征 性 成 政 +整 星 晴 棲 栖 正 清 牲 生 盛 精 聖 声 製 西 誠 +誓 請 逝 醒 青 静 斉 税 脆 隻 席 惜 戚 斥 昔 析 +石 積 籍 績 脊 責 赤 跡 蹟 碩 切 拙 接 摂 折 設 +窃 節 説 雪 絶 舌 蝉 仙 先 千 占 宣 専 尖 川 戦 +扇 撰 栓 栴 泉 浅 洗 染 潜 煎 煽 旋 穿 箭 線 + 繊 羨 腺 舛 船 薦 詮 賎 践 選 遷 銭 銑 閃 鮮 +前 善 漸 然 全 禅 繕 膳 糎 噌 塑 岨 措 曾 曽 楚 +狙 疏 疎 礎 祖 租 粗 素 組 蘇 訴 阻 遡 鼠 僧 創 +双 叢 倉 喪 壮 奏 爽 宋 層 匝 惣 想 捜 掃 挿 掻 +操 早 曹 巣 槍 槽 漕 燥 争 痩 相 窓 糟 総 綜 聡 +草 荘 葬 蒼 藻 装 走 送 遭 鎗 霜 騒 像 増 憎 + 臓 蔵 贈 造 促 側 則 即 息 捉 束 測 足 速 俗 +属 賊 族 続 卒 袖 其 揃 存 孫 尊 損 村 遜 他 多 +太 汰 詑 唾 堕 妥 惰 打 柁 舵 楕 陀 駄 騨 体 堆 +対 耐 岱 帯 待 怠 態 戴 替 泰 滞 胎 腿 苔 袋 貸 +退 逮 隊 黛 鯛 代 台 大 第 醍 題 鷹 滝 瀧 卓 啄 +宅 托 択 拓 沢 濯 琢 託 鐸 濁 諾 茸 凧 蛸 只 + 叩 但 達 辰 奪 脱 巽 竪 辿 棚 谷 狸 鱈 樽 誰 +丹 単 嘆 坦 担 探 旦 歎 淡 湛 炭 短 端 箪 綻 耽 +胆 蛋 誕 鍛 団 壇 弾 断 暖 檀 段 男 談 値 知 地 +弛 恥 智 池 痴 稚 置 致 蜘 遅 馳 築 畜 竹 筑 蓄 +逐 秩 窒 茶 嫡 着 中 仲 宙 忠 抽 昼 柱 注 虫 衷 +註 酎 鋳 駐 樗 瀦 猪 苧 著 貯 丁 兆 凋 喋 寵 + 帖 帳 庁 弔 張 彫 徴 懲 挑 暢 朝 潮 牒 町 眺 +聴 脹 腸 蝶 調 諜 超 跳 銚 長 頂 鳥 勅 捗 直 朕 +沈 珍 賃 鎮 陳 津 墜 椎 槌 追 鎚 痛 通 塚 栂 掴 +槻 佃 漬 柘 辻 蔦 綴 鍔 椿 潰 坪 壷 嬬 紬 爪 吊 +釣 鶴 亭 低 停 偵 剃 貞 呈 堤 定 帝 底 庭 廷 弟 +悌 抵 挺 提 梯 汀 碇 禎 程 締 艇 訂 諦 蹄 逓 + 邸 鄭 釘 鼎 泥 摘 擢 敵 滴 的 笛 適 鏑 溺 哲 +徹 撤 轍 迭 鉄 典 填 天 展 店 添 纏 甜 貼 転 顛 +点 伝 殿 澱 田 電 兎 吐 堵 塗 妬 屠 徒 斗 杜 渡 +登 菟 賭 途 都 鍍 砥 砺 努 度 土 奴 怒 倒 党 冬 +凍 刀 唐 塔 塘 套 宕 島 嶋 悼 投 搭 東 桃 梼 棟 +盗 淘 湯 涛 灯 燈 当 痘 祷 等 答 筒 糖 統 到 + 董 蕩 藤 討 謄 豆 踏 逃 透 鐙 陶 頭 騰 闘 働 +動 同 堂 導 憧 撞 洞 瞳 童 胴 萄 道 銅 峠 鴇 匿 +得 徳 涜 特 督 禿 篤 毒 独 読 栃 橡 凸 突 椴 届 +鳶 苫 寅 酉 瀞 噸 屯 惇 敦 沌 豚 遁 頓 呑 曇 鈍 +奈 那 内 乍 凪 薙 謎 灘 捺 鍋 楢 馴 縄 畷 南 楠 +軟 難 汝 二 尼 弐 迩 匂 賑 肉 虹 廿 日 乳 入 + 如 尿 韮 任 妊 忍 認 濡 禰 祢 寧 葱 猫 熱 年 +念 捻 撚 燃 粘 乃 廼 之 埜 嚢 悩 濃 納 能 脳 膿 +農 覗 蚤 巴 把 播 覇 杷 波 派 琶 破 婆 罵 芭 馬 +俳 廃 拝 排 敗 杯 盃 牌 背 肺 輩 配 倍 培 媒 梅 +楳 煤 狽 買 売 賠 陪 這 蝿 秤 矧 萩 伯 剥 博 拍 +柏 泊 白 箔 粕 舶 薄 迫 曝 漠 爆 縛 莫 駁 麦 + 函 箱 硲 箸 肇 筈 櫨 幡 肌 畑 畠 八 鉢 溌 発 +醗 髪 伐 罰 抜 筏 閥 鳩 噺 塙 蛤 隼 伴 判 半 反 +叛 帆 搬 斑 板 氾 汎 版 犯 班 畔 繁 般 藩 販 範 +釆 煩 頒 飯 挽 晩 番 盤 磐 蕃 蛮 匪 卑 否 妃 庇 +彼 悲 扉 批 披 斐 比 泌 疲 皮 碑 秘 緋 罷 肥 被 +誹 費 避 非 飛 樋 簸 備 尾 微 枇 毘 琵 眉 美 + 鼻 柊 稗 匹 疋 髭 彦 膝 菱 肘 弼 必 畢 筆 逼 +桧 姫 媛 紐 百 謬 俵 彪 標 氷 漂 瓢 票 表 評 豹 +廟 描 病 秒 苗 錨 鋲 蒜 蛭 鰭 品 彬 斌 浜 瀕 貧 +賓 頻 敏 瓶 不 付 埠 夫 婦 富 冨 布 府 怖 扶 敷 +斧 普 浮 父 符 腐 膚 芙 譜 負 賦 赴 阜 附 侮 撫 +武 舞 葡 蕪 部 封 楓 風 葺 蕗 伏 副 復 幅 服 + 福 腹 複 覆 淵 弗 払 沸 仏 物 鮒 分 吻 噴 墳 +憤 扮 焚 奮 粉 糞 紛 雰 文 聞 丙 併 兵 塀 幣 平 +弊 柄 並 蔽 閉 陛 米 頁 僻 壁 癖 碧 別 瞥 蔑 箆 +偏 変 片 篇 編 辺 返 遍 便 勉 娩 弁 鞭 保 舗 鋪 +圃 捕 歩 甫 補 輔 穂 募 墓 慕 戊 暮 母 簿 菩 倣 +俸 包 呆 報 奉 宝 峰 峯 崩 庖 抱 捧 放 方 朋 + 法 泡 烹 砲 縫 胞 芳 萌 蓬 蜂 褒 訪 豊 邦 鋒 +飽 鳳 鵬 乏 亡 傍 剖 坊 妨 帽 忘 忙 房 暴 望 某 +棒 冒 紡 肪 膨 謀 貌 貿 鉾 防 吠 頬 北 僕 卜 墨 +撲 朴 牧 睦 穆 釦 勃 没 殆 堀 幌 奔 本 翻 凡 盆 +摩 磨 魔 麻 埋 妹 昧 枚 毎 哩 槙 幕 膜 枕 鮪 柾 +鱒 桝 亦 俣 又 抹 末 沫 迄 侭 繭 麿 万 慢 満 + 漫 蔓 味 未 魅 巳 箕 岬 密 蜜 湊 蓑 稔 脈 妙 +粍 民 眠 務 夢 無 牟 矛 霧 鵡 椋 婿 娘 冥 名 命 +明 盟 迷 銘 鳴 姪 牝 滅 免 棉 綿 緬 面 麺 摸 模 +茂 妄 孟 毛 猛 盲 網 耗 蒙 儲 木 黙 目 杢 勿 餅 +尤 戻 籾 貰 問 悶 紋 門 匁 也 冶 夜 爺 耶 野 弥 +矢 厄 役 約 薬 訳 躍 靖 柳 薮 鑓 愉 愈 油 癒 + 諭 輸 唯 佑 優 勇 友 宥 幽 悠 憂 揖 有 柚 湧 +涌 猶 猷 由 祐 裕 誘 遊 邑 郵 雄 融 夕 予 余 与 +誉 輿 預 傭 幼 妖 容 庸 揚 揺 擁 曜 楊 様 洋 溶 +熔 用 窯 羊 耀 葉 蓉 要 謡 踊 遥 陽 養 慾 抑 欲 +沃 浴 翌 翼 淀 羅 螺 裸 来 莱 頼 雷 洛 絡 落 酪 +乱 卵 嵐 欄 濫 藍 蘭 覧 利 吏 履 李 梨 理 璃 + 痢 裏 裡 里 離 陸 律 率 立 葎 掠 略 劉 流 溜 +琉 留 硫 粒 隆 竜 龍 侶 慮 旅 虜 了 亮 僚 両 凌 +寮 料 梁 涼 猟 療 瞭 稜 糧 良 諒 遼 量 陵 領 力 +緑 倫 厘 林 淋 燐 琳 臨 輪 隣 鱗 麟 瑠 塁 涙 累 +類 令 伶 例 冷 励 嶺 怜 玲 礼 苓 鈴 隷 零 霊 麗 +齢 暦 歴 列 劣 烈 裂 廉 恋 憐 漣 煉 簾 練 聯 + 蓮 連 錬 呂 魯 櫓 炉 賂 路 露 労 婁 廊 弄 朗 +楼 榔 浪 漏 牢 狼 篭 老 聾 蝋 郎 六 麓 禄 肋 録 +論 倭 和 話 歪 賄 脇 惑 枠 鷲 亙 亘 鰐 詫 藁 蕨 +椀 湾 碗 腕 孁 孖 孽 宓 寘 寬 尒 尞 尣 尫 㞍 +屢 層 屮 𡚴 屺 岏 岟 岣 岪 岺 峋 峐 峒 峴 𡸴 㟢 +崍 崧 﨑 嵆 嵇 嵓 嵊 嵭 嶁 嶠 嶤 嶧 嶸 巋 + 弌 丐 丕 个 丱 丶 丼 丿 乂 乖 乘 亂 亅 豫 亊 +舒 弍 于 亞 亟 亠 亢 亰 亳 亶 从 仍 仄 仆 仂 仗 +仞 仭 仟 价 伉 佚 估 佛 佝 佗 佇 佶 侈 侏 侘 佻 +佩 佰 侑 佯 來 侖 儘 俔 俟 俎 俘 俛 俑 俚 俐 俤 +俥 倚 倨 倔 倪 倥 倅 伜 俶 倡 倩 倬 俾 俯 們 倆 +偃 假 會 偕 偐 偈 做 偖 偬 偸 傀 傚 傅 傴 傲 + 僉 僊 傳 僂 僖 僞 僥 僭 僣 僮 價 僵 儉 儁 儂 +儖 儕 儔 儚 儡 儺 儷 儼 儻 儿 兀 兒 兌 兔 兢 竸 +兩 兪 兮 冀 冂 囘 册 冉 冏 冑 冓 冕 冖 冤 冦 冢 +冩 冪 冫 决 冱 冲 冰 况 冽 凅 凉 凛 几 處 凩 凭 +凰 凵 凾 刄 刋 刔 刎 刧 刪 刮 刳 刹 剏 剄 剋 剌 +剞 剔 剪 剴 剩 剳 剿 剽 劍 劔 劒 剱 劈 劑 辨 + 辧 劬 劭 劼 劵 勁 勍 勗 勞 勣 勦 飭 勠 勳 勵 +勸 勹 匆 匈 甸 匍 匐 匏 匕 匚 匣 匯 匱 匳 匸 區 +卆 卅 丗 卉 卍 凖 卞 卩 卮 夘 卻 卷 厂 厖 厠 厦 +厥 厮 厰 厶 參 簒 雙 叟 曼 燮 叮 叨 叭 叺 吁 吽 +呀 听 吭 吼 吮 吶 吩 吝 呎 咏 呵 咎 呟 呱 呷 呰 +咒 呻 咀 呶 咄 咐 咆 哇 咢 咸 咥 咬 哄 哈 咨 + 咫 哂 咤 咾 咼 哘 哥 哦 唏 唔 哽 哮 哭 哺 哢 +唹 啀 啣 啌 售 啜 啅 啖 啗 唸 唳 啝 喙 喀 咯 喊 +喟 啻 啾 喘 喞 單 啼 喃 喩 喇 喨 嗚 嗅 嗟 嗄 嗜 +嗤 嗔 嘔 嗷 嘖 嗾 嗽 嘛 嗹 噎 噐 營 嘴 嘶 嘲 嘸 +噫 噤 嘯 噬 噪 嚆 嚀 嚊 嚠 嚔 嚏 嚥 嚮 嚶 嚴 囂 +嚼 囁 囃 囀 囈 囎 囑 囓 囗 囮 囹 圀 囿 圄 圉 + 圈 國 圍 圓 團 圖 嗇 圜 圦 圷 圸 坎 圻 址 坏 +坩 埀 垈 坡 坿 垉 垓 垠 垳 垤 垪 垰 埃 埆 埔 埒 +埓 堊 埖 埣 堋 堙 堝 塲 堡 塢 塋 塰 毀 塒 堽 塹 +墅 墹 墟 墫 墺 壞 墻 墸 墮 壅 壓 壑 壗 壙 壘 壥 +壜 壤 壟 壯 壺 壹 壻 壼 壽 夂 夊 夐 夛 梦 夥 夬 +夭 夲 夸 夾 竒 奕 奐 奎 奚 奘 奢 奠 奧 奬 奩 + 奸 妁 妝 佞 侫 妣 妲 姆 姨 姜 妍 姙 姚 娥 娟 +娑 娜 娉 娚 婀 婬 婉 娵 娶 婢 婪 媚 媼 媾 嫋 嫂 +媽 嫣 嫗 嫦 嫩 嫖 嫺 嫻 嬌 嬋 嬖 嬲 嫐 嬪 嬶 嬾 +孃 孅 孀 孑 孕 孚 孛 孥 孩 孰 孳 孵 學 斈 孺 宀 +它 宦 宸 寃 寇 寉 寔 寐 寤 實 寢 寞 寥 寫 寰 寶 +寳 尅 將 專 對 尓 尠 尢 尨 尸 尹 屁 屆 屎 屓 + 屐 屏 孱 屬 屮 乢 屶 屹 岌 岑 岔 妛 岫 岻 岶 +岼 岷 峅 岾 峇 峙 峩 峽 峺 峭 嶌 峪 崋 崕 崗 嵜 +崟 崛 崑 崔 崢 崚 崙 崘 嵌 嵒 嵎 嵋 嵬 嵳 嵶 嶇 +嶄 嶂 嶢 嶝 嶬 嶮 嶽 嶐 嶷 嶼 巉 巍 巓 巒 巖 巛 +巫 已 巵 帋 帚 帙 帑 帛 帶 帷 幄 幃 幀 幎 幗 幔 +幟 幢 幤 幇 幵 并 幺 麼 广 庠 廁 廂 廈 廐 廏 + 廖 廣 廝 廚 廛 廢 廡 廨 廩 廬 廱 廳 廰 廴 廸 +廾 弃 弉 彝 彜 弋 弑 弖 弩 弭 弸 彁 彈 彌 彎 弯 +彑 彖 彗 彙 彡 彭 彳 彷 徃 徂 彿 徊 很 徑 徇 從 +徙 徘 徠 徨 徭 徼 忖 忻 忤 忸 忱 忝 悳 忿 怡 恠 +怙 怐 怩 怎 怱 怛 怕 怫 怦 怏 怺 恚 恁 恪 恷 恟 +恊 恆 恍 恣 恃 恤 恂 恬 恫 恙 悁 悍 惧 悃 悚 + 悄 悛 悖 悗 悒 悧 悋 惡 悸 惠 惓 悴 忰 悽 惆 +悵 惘 慍 愕 愆 惶 惷 愀 惴 惺 愃 愡 惻 惱 愍 愎 +慇 愾 愨 愧 慊 愿 愼 愬 愴 愽 慂 慄 慳 慷 慘 慙 +慚 慫 慴 慯 慥 慱 慟 慝 慓 慵 憙 憖 憇 憬 憔 憚 +憊 憑 憫 憮 懌 懊 應 懷 懈 懃 懆 憺 懋 罹 懍 懦 +懣 懶 懺 懴 懿 懽 懼 懾 戀 戈 戉 戍 戌 戔 戛 + 戞 戡 截 戮 戰 戲 戳 扁 扎 扞 扣 扛 扠 扨 扼 +抂 抉 找 抒 抓 抖 拔 抃 抔 拗 拑 抻 拏 拿 拆 擔 +拈 拜 拌 拊 拂 拇 抛 拉 挌 拮 拱 挧 挂 挈 拯 拵 +捐 挾 捍 搜 捏 掖 掎 掀 掫 捶 掣 掏 掉 掟 掵 捫 +捩 掾 揩 揀 揆 揣 揉 插 揶 揄 搖 搴 搆 搓 搦 搶 +攝 搗 搨 搏 摧 摯 摶 摎 攪 撕 撓 撥 撩 撈 撼 + 據 擒 擅 擇 撻 擘 擂 擱 擧 舉 擠 擡 抬 擣 擯 +攬 擶 擴 擲 擺 攀 擽 攘 攜 攅 攤 攣 攫 攴 攵 攷 +收 攸 畋 效 敖 敕 敍 敘 敞 敝 敲 數 斂 斃 變 斛 +斟 斫 斷 旃 旆 旁 旄 旌 旒 旛 旙 无 旡 旱 杲 昊 +昃 旻 杳 昵 昶 昴 昜 晏 晄 晉 晁 晞 晝 晤 晧 晨 +晟 晢 晰 暃 暈 暎 暉 暄 暘 暝 曁 暹 曉 暾 暼 + 曄 暸 曖 曚 曠 昿 曦 曩 曰 曵 曷 朏 朖 朞 朦 +朧 霸 朮 朿 朶 杁 朸 朷 杆 杞 杠 杙 杣 杤 枉 杰 +枩 杼 杪 枌 枋 枦 枡 枅 枷 柯 枴 柬 枳 柩 枸 柤 +柞 柝 柢 柮 枹 柎 柆 柧 檜 栞 框 栩 桀 桍 栲 桎 +梳 栫 桙 档 桷 桿 梟 梏 梭 梔 條 梛 梃 檮 梹 桴 +梵 梠 梺 椏 梍 桾 椁 棊 椈 棘 椢 椦 棡 椌 棍 + 棔 棧 棕 椶 椒 椄 棗 棣 椥 棹 棠 棯 椨 椪 椚 +椣 椡 棆 楹 楷 楜 楸 楫 楔 楾 楮 椹 楴 椽 楙 椰 +楡 楞 楝 榁 楪 榲 榮 槐 榿 槁 槓 榾 槎 寨 槊 槝 +榻 槃 榧 樮 榑 榠 榜 榕 榴 槞 槨 樂 樛 槿 權 槹 +槲 槧 樅 榱 樞 槭 樔 槫 樊 樒 櫁 樣 樓 橄 樌 橲 +樶 橸 橇 橢 橙 橦 橈 樸 樢 檐 檍 檠 檄 檢 檣 + 檗 蘗 檻 櫃 櫂 檸 檳 檬 櫞 櫑 櫟 檪 櫚 櫪 櫻 +欅 蘖 櫺 欒 欖 鬱 欟 欸 欷 盜 欹 飮 歇 歃 歉 歐 +歙 歔 歛 歟 歡 歸 歹 歿 殀 殄 殃 殍 殘 殕 殞 殤 +殪 殫 殯 殲 殱 殳 殷 殼 毆 毋 毓 毟 毬 毫 毳 毯 +麾 氈 氓 气 氛 氤 氣 汞 汕 汢 汪 沂 沍 沚 沁 沛 +汾 汨 汳 沒 沐 泄 泱 泓 沽 泗 泅 泝 沮 沱 沾 + 沺 泛 泯 泙 泪 洟 衍 洶 洫 洽 洸 洙 洵 洳 洒 +洌 浣 涓 浤 浚 浹 浙 涎 涕 濤 涅 淹 渕 渊 涵 淇 +淦 涸 淆 淬 淞 淌 淨 淒 淅 淺 淙 淤 淕 淪 淮 渭 +湮 渮 渙 湲 湟 渾 渣 湫 渫 湶 湍 渟 湃 渺 湎 渤 +滿 渝 游 溂 溪 溘 滉 溷 滓 溽 溯 滄 溲 滔 滕 溏 +溥 滂 溟 潁 漑 灌 滬 滸 滾 漿 滲 漱 滯 漲 滌 + 漾 漓 滷 澆 潺 潸 澁 澀 潯 潛 濳 潭 澂 潼 潘 +澎 澑 濂 潦 澳 澣 澡 澤 澹 濆 澪 濟 濕 濬 濔 濘 +濱 濮 濛 瀉 瀋 濺 瀑 瀁 瀏 濾 瀛 瀚 潴 瀝 瀘 瀟 +瀰 瀾 瀲 灑 灣 炙 炒 炯 烱 炬 炸 炳 炮 烟 烋 烝 +烙 焉 烽 焜 焙 煥 煕 熈 煦 煢 煌 煖 煬 熏 燻 熄 +熕 熨 熬 燗 熹 熾 燒 燉 燔 燎 燠 燬 燧 燵 燼 + 燹 燿 爍 爐 爛 爨 爭 爬 爰 爲 爻 爼 爿 牀 牆 +牋 牘 牴 牾 犂 犁 犇 犒 犖 犢 犧 犹 犲 狃 狆 狄 +狎 狒 狢 狠 狡 狹 狷 倏 猗 猊 猜 猖 猝 猴 猯 猩 +猥 猾 獎 獏 默 獗 獪 獨 獰 獸 獵 獻 獺 珈 玳 珎 +玻 珀 珥 珮 珞 璢 琅 瑯 琥 珸 琲 琺 瑕 琿 瑟 瑙 +瑁 瑜 瑩 瑰 瑣 瑪 瑶 瑾 璋 璞 璧 瓊 瓏 瓔 珱 + 瓠 瓣 瓧 瓩 瓮 瓲 瓰 瓱 瓸 瓷 甄 甃 甅 甌 甎 +甍 甕 甓 甞 甦 甬 甼 畄 畍 畊 畉 畛 畆 畚 畩 畤 +畧 畫 畭 畸 當 疆 疇 畴 疊 疉 疂 疔 疚 疝 疥 疣 +痂 疳 痃 疵 疽 疸 疼 疱 痍 痊 痒 痙 痣 痞 痾 痿 +痼 瘁 痰 痺 痲 痳 瘋 瘍 瘉 瘟 瘧 瘠 瘡 瘢 瘤 瘴 +瘰 瘻 癇 癈 癆 癜 癘 癡 癢 癨 癩 癪 癧 癬 癰 + 癲 癶 癸 發 皀 皃 皈 皋 皎 皖 皓 皙 皚 皰 皴 +皸 皹 皺 盂 盍 盖 盒 盞 盡 盥 盧 盪 蘯 盻 眈 眇 +眄 眩 眤 眞 眥 眦 眛 眷 眸 睇 睚 睨 睫 睛 睥 睿 +睾 睹 瞎 瞋 瞑 瞠 瞞 瞰 瞶 瞹 瞿 瞼 瞽 瞻 矇 矍 +矗 矚 矜 矣 矮 矼 砌 砒 礦 砠 礪 硅 碎 硴 碆 硼 +碚 碌 碣 碵 碪 碯 磑 磆 磋 磔 碾 碼 磅 磊 磬 + 磧 磚 磽 磴 礇 礒 礑 礙 礬 礫 祀 祠 祗 祟 祚 +祕 祓 祺 祿 禊 禝 禧 齋 禪 禮 禳 禹 禺 秉 秕 秧 +秬 秡 秣 稈 稍 稘 稙 稠 稟 禀 稱 稻 稾 稷 穃 穗 +穉 穡 穢 穩 龝 穰 穹 穽 窈 窗 窕 窘 窖 窩 竈 窰 +窶 竅 竄 窿 邃 竇 竊 竍 竏 竕 竓 站 竚 竝 竡 竢 +竦 竭 竰 笂 笏 笊 笆 笳 笘 笙 笞 笵 笨 笶 筐 + 筺 笄 筍 笋 筌 筅 筵 筥 筴 筧 筰 筱 筬 筮 箝 +箘 箟 箍 箜 箚 箋 箒 箏 筝 箙 篋 篁 篌 篏 箴 篆 +篝 篩 簑 簔 篦 篥 籠 簀 簇 簓 篳 篷 簗 簍 篶 簣 +簧 簪 簟 簷 簫 簽 籌 籃 籔 籏 籀 籐 籘 籟 籤 籖 +籥 籬 籵 粃 粐 粤 粭 粢 粫 粡 粨 粳 粲 粱 粮 粹 +粽 糀 糅 糂 糘 糒 糜 糢 鬻 糯 糲 糴 糶 糺 紆 + 紂 紜 紕 紊 絅 絋 紮 紲 紿 紵 絆 絳 絖 絎 絲 +絨 絮 絏 絣 經 綉 絛 綏 絽 綛 綺 綮 綣 綵 緇 綽 +綫 總 綢 綯 緜 綸 綟 綰 緘 緝 緤 緞 緻 緲 緡 縅 +縊 縣 縡 縒 縱 縟 縉 縋 縢 繆 繦 縻 縵 縹 繃 縷 +縲 縺 繧 繝 繖 繞 繙 繚 繹 繪 繩 繼 繻 纃 緕 繽 +辮 繿 纈 纉 續 纒 纐 纓 纔 纖 纎 纛 纜 缸 缺 + 罅 罌 罍 罎 罐 网 罕 罔 罘 罟 罠 罨 罩 罧 罸 +羂 羆 羃 羈 羇 羌 羔 羞 羝 羚 羣 羯 羲 羹 羮 羶 +羸 譱 翅 翆 翊 翕 翔 翡 翦 翩 翳 翹 飜 耆 耄 耋 +耒 耘 耙 耜 耡 耨 耿 耻 聊 聆 聒 聘 聚 聟 聢 聨 +聳 聲 聰 聶 聹 聽 聿 肄 肆 肅 肛 肓 肚 肭 冐 肬 +胛 胥 胙 胝 胄 胚 胖 脉 胯 胱 脛 脩 脣 脯 腋 + 隋 腆 脾 腓 腑 胼 腱 腮 腥 腦 腴 膃 膈 膊 膀 +膂 膠 膕 膤 膣 腟 膓 膩 膰 膵 膾 膸 膽 臀 臂 膺 +臉 臍 臑 臙 臘 臈 臚 臟 臠 臧 臺 臻 臾 舁 舂 舅 +與 舊 舍 舐 舖 舩 舫 舸 舳 艀 艙 艘 艝 艚 艟 艤 +艢 艨 艪 艫 舮 艱 艷 艸 艾 芍 芒 芫 芟 芻 芬 苡 +苣 苟 苒 苴 苳 苺 莓 范 苻 苹 苞 茆 苜 茉 苙 + 茵 茴 茖 茲 茱 荀 茹 荐 荅 茯 茫 茗 茘 莅 莚 +莪 莟 莢 莖 茣 莎 莇 莊 荼 莵 荳 荵 莠 莉 莨 菴 +萓 菫 菎 菽 萃 菘 萋 菁 菷 萇 菠 菲 萍 萢 萠 莽 +萸 蔆 菻 葭 萪 萼 蕚 蒄 葷 葫 蒭 葮 蒂 葩 葆 萬 +葯 葹 萵 蓊 葢 蒹 蒿 蒟 蓙 蓍 蒻 蓚 蓐 蓁 蓆 蓖 +蒡 蔡 蓿 蓴 蔗 蔘 蔬 蔟 蔕 蔔 蓼 蕀 蕣 蕘 蕈 + 蕁 蘂 蕋 蕕 薀 薤 薈 薑 薊 薨 蕭 薔 薛 藪 薇 +薜 蕷 蕾 薐 藉 薺 藏 薹 藐 藕 藝 藥 藜 藹 蘊 蘓 +蘋 藾 藺 蘆 蘢 蘚 蘰 蘿 虍 乕 虔 號 虧 虱 蚓 蚣 +蚩 蚪 蚋 蚌 蚶 蚯 蛄 蛆 蚰 蛉 蠣 蚫 蛔 蛞 蛩 蛬 +蛟 蛛 蛯 蜒 蜆 蜈 蜀 蜃 蛻 蜑 蜉 蜍 蛹 蜊 蜴 蜿 +蜷 蜻 蜥 蜩 蜚 蝠 蝟 蝸 蝌 蝎 蝴 蝗 蝨 蝮 蝙 + 蝓 蝣 蝪 蠅 螢 螟 螂 螯 蟋 螽 蟀 蟐 雖 螫 蟄 +螳 蟇 蟆 螻 蟯 蟲 蟠 蠏 蠍 蟾 蟶 蟷 蠎 蟒 蠑 蠖 +蠕 蠢 蠡 蠱 蠶 蠹 蠧 蠻 衄 衂 衒 衙 衞 衢 衫 袁 +衾 袞 衵 衽 袵 衲 袂 袗 袒 袮 袙 袢 袍 袤 袰 袿 +袱 裃 裄 裔 裘 裙 裝 裹 褂 裼 裴 裨 裲 褄 褌 褊 +褓 襃 褞 褥 褪 褫 襁 襄 褻 褶 褸 襌 褝 襠 襞 + 襦 襤 襭 襪 襯 襴 襷 襾 覃 覈 覊 覓 覘 覡 覩 +覦 覬 覯 覲 覺 覽 覿 觀 觚 觜 觝 觧 觴 觸 訃 訖 +訐 訌 訛 訝 訥 訶 詁 詛 詒 詆 詈 詼 詭 詬 詢 誅 +誂 誄 誨 誡 誑 誥 誦 誚 誣 諄 諍 諂 諚 諫 諳 諧 +諤 諱 謔 諠 諢 諷 諞 諛 謌 謇 謚 諡 謖 謐 謗 謠 +謳 鞫 謦 謫 謾 謨 譁 譌 譏 譎 證 譖 譛 譚 譫 + 譟 譬 譯 譴 譽 讀 讌 讎 讒 讓 讖 讙 讚 谺 豁 +谿 豈 豌 豎 豐 豕 豢 豬 豸 豺 貂 貉 貅 貊 貍 貎 +貔 豼 貘 戝 貭 貪 貽 貲 貳 貮 貶 賈 賁 賤 賣 賚 +賽 賺 賻 贄 贅 贊 贇 贏 贍 贐 齎 贓 賍 贔 贖 赧 +赭 赱 赳 趁 趙 跂 趾 趺 跏 跚 跖 跌 跛 跋 跪 跫 +跟 跣 跼 踈 踉 跿 踝 踞 踐 踟 蹂 踵 踰 踴 蹊 + 蹇 蹉 蹌 蹐 蹈 蹙 蹤 蹠 踪 蹣 蹕 蹶 蹲 蹼 躁 +躇 躅 躄 躋 躊 躓 躑 躔 躙 躪 躡 躬 躰 軆 躱 躾 +軅 軈 軋 軛 軣 軼 軻 軫 軾 輊 輅 輕 輒 輙 輓 輜 +輟 輛 輌 輦 輳 輻 輹 轅 轂 輾 轌 轉 轆 轎 轗 轜 +轢 轣 轤 辜 辟 辣 辭 辯 辷 迚 迥 迢 迪 迯 邇 迴 +逅 迹 迺 逑 逕 逡 逍 逞 逖 逋 逧 逶 逵 逹 迸 + 遏 遐 遑 遒 逎 遉 逾 遖 遘 遞 遨 遯 遶 隨 遲 +邂 遽 邁 邀 邊 邉 邏 邨 邯 邱 邵 郢 郤 扈 郛 鄂 +鄒 鄙 鄲 鄰 酊 酖 酘 酣 酥 酩 酳 酲 醋 醉 醂 醢 +醫 醯 醪 醵 醴 醺 釀 釁 釉 釋 釐 釖 釟 釡 釛 釼 +釵 釶 鈞 釿 鈔 鈬 鈕 鈑 鉞 鉗 鉅 鉉 鉤 鉈 銕 鈿 +鉋 鉐 銜 銖 銓 銛 鉚 鋏 銹 銷 鋩 錏 鋺 鍄 錮 + 錙 錢 錚 錣 錺 錵 錻 鍜 鍠 鍼 鍮 鍖 鎰 鎬 鎭 +鎔 鎹 鏖 鏗 鏨 鏥 鏘 鏃 鏝 鏐 鏈 鏤 鐚 鐔 鐓 鐃 +鐇 鐐 鐶 鐫 鐵 鐡 鐺 鑁 鑒 鑄 鑛 鑠 鑢 鑞 鑪 鈩 +鑰 鑵 鑷 鑽 鑚 鑼 鑾 钁 鑿 閂 閇 閊 閔 閖 閘 閙 +閠 閨 閧 閭 閼 閻 閹 閾 闊 濶 闃 闍 闌 闕 闔 闖 +關 闡 闥 闢 阡 阨 阮 阯 陂 陌 陏 陋 陷 陜 陞 + 陝 陟 陦 陲 陬 隍 隘 隕 隗 險 隧 隱 隲 隰 隴 +隶 隸 隹 雎 雋 雉 雍 襍 雜 霍 雕 雹 霄 霆 霈 霓 +霎 霑 霏 霖 霙 霤 霪 霰 霹 霽 霾 靄 靆 靈 靂 靉 +靜 靠 靤 靦 靨 勒 靫 靱 靹 鞅 靼 鞁 靺 鞆 鞋 鞏 +鞐 鞜 鞨 鞦 鞣 鞳 鞴 韃 韆 韈 韋 韜 韭 齏 韲 竟 +韶 韵 頏 頌 頸 頤 頡 頷 頽 顆 顏 顋 顫 顯 顰 + 顱 顴 顳 颪 颯 颱 颶 飄 飃 飆 飩 飫 餃 餉 餒 +餔 餘 餡 餝 餞 餤 餠 餬 餮 餽 餾 饂 饉 饅 饐 饋 +饑 饒 饌 饕 馗 馘 馥 馭 馮 馼 駟 駛 駝 駘 駑 駭 +駮 駱 駲 駻 駸 騁 騏 騅 駢 騙 騫 騷 驅 驂 驀 驃 +騾 驕 驍 驛 驗 驟 驢 驥 驤 驩 驫 驪 骭 骰 骼 髀 +髏 髑 髓 體 髞 髟 髢 髣 髦 髯 髫 髮 髴 髱 髷 + 髻 鬆 鬘 鬚 鬟 鬢 鬣 鬥 鬧 鬨 鬩 鬪 鬮 鬯 鬲 +魄 魃 魏 魍 魎 魑 魘 魴 鮓 鮃 鮑 鮖 鮗 鮟 鮠 鮨 +鮴 鯀 鯊 鮹 鯆 鯏 鯑 鯒 鯣 鯢 鯤 鯔 鯡 鰺 鯲 鯱 +鯰 鰕 鰔 鰉 鰓 鰌 鰆 鰈 鰒 鰊 鰄 鰮 鰛 鰥 鰤 鰡 +鰰 鱇 鰲 鱆 鰾 鱚 鱠 鱧 鱶 鱸 鳧 鳬 鳰 鴉 鴈 鳫 +鴃 鴆 鴪 鴦 鶯 鴣 鴟 鵄 鴕 鴒 鵁 鴿 鴾 鵆 鵈 + 鵝 鵞 鵤 鵑 鵐 鵙 鵲 鶉 鶇 鶫 鵯 鵺 鶚 鶤 鶩 +鶲 鷄 鷁 鶻 鶸 鶺 鷆 鷏 鷂 鷙 鷓 鷸 鷦 鷭 鷯 鷽 +鸚 鸛 鸞 鹵 鹹 鹽 麁 麈 麋 麌 麒 麕 麑 麝 麥 麩 +麸 麪 麭 靡 黌 黎 黏 黐 黔 黜 點 黝 黠 黥 黨 黯 +黴 黶 黷 黹 黻 黼 黽 鼇 鼈 皷 鼕 鼡 鼬 鼾 齊 齒 +齔 齣 齟 齠 齡 齦 齧 齬 齪 齷 齲 齶 龕 龜 龠 + 堯 槇 遙 瑤 凜 熙 巢 帔 帘 幘 幞 庾 廊 廋 +廹 开 异 弇 弝 弣 弴 弶 弽 彀 彅 彔 彘 彤 彧 彽 +徉 徜 徧 徯 徵 德 忉 忞 忡 忩 怍 怔 怘 怳 怵 恇 +悔 悝 悞 惋 惔 惕 惝 惸 愜 愫 愰 愷 慨 憍 憎 憼 +憹 懲 戢 戾 扃 扖 扚 扯 抅 拄 拖 拼 挊 挘 挹 捃 +捥 捼 揥 揭 揵 搐 搔 搢 摹 摑 摠 摭 擎 撾 撿 + 擄 擊 擐 擷 擻 攢 攩 敏 敧 斝 既 昀 昉 昕 昞 +昺 昢 昤 昫 昰 昱 昳 曻 晈 晌 𣇄 晙 晚 晡 晥 晳 +晷 晸 暍 暑 暠 暲 暻 曆 曈 㬢 曛 曨 曺 朓 朗 朳 +杦 杇 杈 杻 极 枓 枘 枛 枻 柹 柀 柗 柼 栁 桒 栝 +栬 栱 桛 桲 桵 梅 梣 梥 梲 棈 棐 棨 棭 棰 棱 棼 +椊 楉 𣗄 椵 楂 楗 楣 楤 楨 榀 﨔 榥 榭 槏 㮶 + 㯃 槢 槩 槪 槵 槶 樏 樕 𣜿 樻 樾 橅 橐 橖 橛 +橫 橳 𣝣 檉 檔 檝 檞 檥 櫤 櫧 㰏 欄 欛 欞 欬 欵 +歆 歖 歠 步 歧 歷 殂 殩 殭 殺 每 毖 毗 毿 氅 氐 +氳 汙 汜 沪 汴 汶 沅 沆 沘 沜 泻 泆 泔 泠 泫 泮 +𣳾 洄 洎 洮 洱 洹 洿 浘 浥 海 涂 涇 涉 涔 涪 涬 +涿 淄 淖 淚 淛 淝 淼 渚 渴 湄 湜 湞 溫 溱 滁 + 滇 滎 漐 漚 漢 漪 漯 漳 潑 潙 潞 潡 潢 潾 澈 +澌 澍 澔 澠 澧 澶 澼 濇 濊 濹 濰 濵 瀅 瀆 瀨 灊 +灝 灞 灎 灤 灵 炅 炤 炫 炷 烔 烘 烤 焏 焫 焞 焠 +焮 焰 煆 煇 煑 煮 煒 煜 煠 煨 凞 熅 熇 熒 燁 熺 +燄 燾 爀 爕 牕 牖 㸿 犍 犛 犾 狀 狻 𤟱 猧 猨 猪 +獐 獦 獼 玕 玟 玠 玢 玦 玫 珉 珏 珖 珙 珣 珩 + 琇 琊 琚 琛 琢 琦 琨 琪 琫 琬 琮 琯 琰 瑄 瑆 +瑇 瑋 瑗 瑢 瑫 瑭 璆 璇 璉 璘 璜 璟 璣 璐 璦 璨 +璩 璵 璿 瓈 瓉 瓚 瓿 甁 甗 甯 畯 畹 疒 㽲 痎 痤 +瘀 瘂 瘈 瘕 瘖 瘙 瘞 瘭 瘵 癃 癋 癤 癥 癭 癯 癱 +皁 皛 皝 皞 皦 皪 皶 盅 盌 盎 盔 盦 盱 盼 眊 眙 +眴 眶 睆 睍 睎 睜 睟 睢 睺 瞀 瞔 瞪 矠 砭 𥒎 + 硃 硎 硏 硑 硨 确 碑 碰 𥔎 碭 磤 磲 礀 磷 礜 +礮 礱 礴 社 祉 祅 祆 祈 祐 祖 祜 祝 神 祥 祹 禍 +禎 福 禘 禱 禸 秈 秊 𥝱 秔 秞 秫 秭 稃 穀 稹 穝 +穭 突 窅 窠 𥧄 窳 窻 竎 竫 竽 笒 笭 笻 筇 筎 筠 +筭 筯 筲 箞 節 篗 篙 簁 簱 簞 簠 簳 簶 䉤 𥶡 籙 +籭 籹 粏 粔 粠 粼 糕 糙 糝 紇 紈 紓 紝 紣 紱 + 絁 絈 絓 絜 絺 綃 綋 綠 綦 緂 緌 緖 緣 練 縨 +縈 縑 縕 繁 繇 繒 繡 纊 纍 罇 署 羑 羗 羿 翎 翛 +翟 翬 翮 翺 者 耔 耦 耵 耷 耼 胊 胗 胠 胳 脘 腊 +腠 腧 腨 腭 膻 臊 臏 臗 臭 䑓 䑛 艠 艴 𦫿 芎 芡 +芣 芤 芩 芮 芷 芾 芿 苆 苕 苽 苾 茀 茁 荢 茢 茭 +茺 荃 荇 荑 荕 荽 莆 莒 莘 莧 莩 莿 菀 菇 菏 + 菑 菡 菪 萁 萆 萊 著 葈 葟 葰 葳 蒅 蒞 蒯 蒴 +蒺 蓀 蓂 𦹀 蔲 蔞 蔣 蔯 蕙 蕤 﨟 薭 蕺 薌 薏 薢 +薰 藋 藎 藭 蘒 藿 蘄 蘅 蘐 𧃴 蘘 蘩 蘸 虗 虛 虜 +虢 䖝 虬 虵 蚘 蚸 蛺 蛼 蛽 蜋 蝱 螇 螈 螬 螭 螵 +䗪 蟖 蟬 蠆 蠊 蠐 蠔 蠟 袘 袪 裊 裎 𧚄 裵 褜 褐 +褘 褙 褚 褧 褰 褲 褹 襀 覔 視 觔 觥 觶 訒 訕 + 訢 訷 詇 詎 詝 詡 詵 詹 誧 諐 諟 諴 諶 諸 謁 +謹 譆 譔 譙 譩 讝 豉 豨 賓 賡 賴 賸 賾 贈 贒 贛 +趯 跎 跑 跗 踠 踣 踽 蹰 蹻 𨉷 軀 䡄 軺 輞 輭 輶 +轔 𨏍 辦 辵 迤 迨 迮 逈 逭 逸 邈 邕 邗 邙 邛 邢 +邳 邾 郄 郅 郇 郗 郝 郞 郯 郴 都 鄔 鄕 鄖 鄢 鄣 +鄧 鄯 鄱 鄴 鄽 酈 酛 醃 醞 醬 醱 醼 釗 釻 釤 + 釥 釭 釱 鈇 鈐 鈸 鈹 鈺 鈼 鉀 鉃 鉏 鉸 銈 鋂 +鋋 鋌 鋓 鋠 鋿 錄 錟 錡 錥 鍈 鍉 鍊 鍤 鍥 鍪 鍰 +鎛 鎣 鎺 鏆 鏞 鏟 鐄 鏽 鐳 鑊 鑣 鑫 鑱 鑲 閎 閟 +閦 閩 閬 閶 閽 闋 闐 闓 䦰 闚 闞 陘 隄 隆 隝 隤 +隥 雒 雞 難 雩 雯 霳 霻 靍 靎 靏 靚 靮 靳 鞕 鞮 +鞺 韁 韉 韞 韛 韴 響 頊 頞 頫 頰 頻 顒 顓 顖 + 顗 顙 顚 類 顥 顬 颺 飈 飧 饘 馞 騂 騃 騤 騭 +騮 騸 驊 驎 驒 骶 髁 髃 髎 髖 髹 鬂 鬈 鬠 䰗 鬭 +魞 魹 魦 魲 魵 鮄 鮊 鮏 鮞 鮧 鯁 鯎 鯥 鯸 鯽 鰀 +鰣 鱁 鱏 鱐 鱓 鱣 鱥 鱷 鴝 鴞 鵃 鵇 鵒 鵣 鵰 鵼 +鶊 鶖 鷀 鶬 鶼 鷗 𪆐 鷧 鸇 鸕 鹼 麞 麤 麬 麯 麴 +麵 黃 黑 鼐 鼹 齗 龐 龔 龗 龢 + 𠂉 丂 丏 丒 丩 丫 丮 乀 乇 么 𠂢 乑 㐆 𠂤 乚 +乩 亝 㐬 㐮 亹 亻 𠆢 亼 仃 仈 仐 仫 仚 仱 仵 伀 +伖 佤 伷 伾 佔 佘 𠈓 佷 佸 佺 佽 侂 侅 侒 侚 俦 +侲 侾 俅 俋 俏 俒 㑪 俲 倀 倐 倓 倜 倞 倢 㑨 偂 +偆 偎 偓 偗 偣 偦 偪 偰 傣 傈 傒 傓 傕 傖 傜 傪 +𠌫 傱 傺 傻 僄 僇 僳 𠎁 僎 𠍱 僔 僙 僡 僩 㒒 + 儈 𠏹 儗 儛 𠑊 兠 𠔉 关 冃 冋 㒼 冘 冣 冭 㓇 +冼 𠗖 𠘨 凳 凴 刂 划 刖 𠝏 剕 剜 剬 剷 劄 劂 𠠇 +劘 𠠺 劤 劦 劯 劺 劻 勊 㔟 勑 𠢹 勷 匊 匋 匤 匵 +匾 卂 𠥼 𠦝 卧 卬 卺 厤 厴 𠫓 厷 叀 𠬝 㕝 㕞 叕 +叚 㕣 叴 叵 呕 吤 吨 㕮 呃 呢 呦 呬 咊 咍 咕 咠 +咦 咭 咮 咷 咺 咿 哃 𠵅 哬 哯 哱 哳 唀 唁 唉 + 唼 啁 㖦 啇 啊 㖨 啠 啡 啤 𠷡 啽 喂 喈 喑 㗅 +嗒 𠺕 𠹭 喿 嗉 嗌 嗑 嗝 㗚 嗢 𠹤 嗩 嘨 𠽟 嘇 嘐 +嘰 嘷 㗴 嘽 嘿 噀 噇 噞 噠 噭 㘅 嚈 嚌 嚕 嚚 嚝 +嚨 嚭 嚲 囅 囍 囟 囨 囶 囷 𡈁 圕 圣 𡉕 圩 𡉻 坅 +坆 坌 坍 𡉴 坨 坯 坳 坴 坵 坻 𡋤 𡋗 垬 垚 垝 垞 +垨 埗 𡋽 埌 𡌶 𡍄 埞 埦 埰 㙊 埸 埻 埽 堄 堞 + 堠 堧 堲 堹 𡏄 塉 塌 塧 墊 墋 墍 墏 墐 墔 墝 +墪 墱 𡑭 壃 壍 壢 壳 壴 夅 夆 夋 复 夔 夤 𡗗 㚑 +夽 㚙 奆 㚖 𦰩 奛 奟 𡙇 奵 奶 奼 妟 妮 妼 姈 姍 +姞 姣 姤 姧 姮 𡜆 𡝂 㛏 娌 娍 娗 娧 娭 婕 婥 婺 +媋 媜 媟 媠 媢 媱 媳 媵 媺 媿 嫚 嫜 嫠 嫥 嫰 嫮 +嫵 嬀 嬈 嬗 嬴 嬭 孌 孒 孨 孯 孼 孿 宁 宄 𡧃 + 宖 宬 㝡 寀 㝢 寎 寖 㝬 㝫 寱 寽 㝵 尃 尩 尰 +𡱖 屟 屣 屧 屨 屩 屰 𡴭 𡵅 屼 𡵸 𡵢 岈 岊 㟁 𡶡 +𡶜 岠 岢 岦 岧 𡶒 岭 岵 𡶷 峉 𡷠 𡸳 崆 崐 崫 崝 +崠 崤 崦 崱 崹 嵂 㟨 嵡 嵪 㟴 嵰 𡼞 㟽 嶈 㠀 嶒 +嶔 嶗 嶙 嶰 嶲 嶴 𡽶 嶹 巑 巗 巘 巠 𡿺 巤 巩 㠯 +帀 㠶 帒 帕 㡀 帟 帮 帾 幉 㡜 幖 㡡 幫 幬 幭 + 幮 𢅻 庥 庪 庬 庹 庿 廆 廒 廙 𢌞 廽 弈 弎 弜 +𢎭 弞 彇 彣 彲 彾 徏 徢 徤 徸 忄 㣺 忇 忋 忒 忓 +忔 忢 忮 忯 忳 忼 㤗 怗 怢 怤 㤚 恌 恿 悊 悕 您 +𢛳 悰 悱 悾 惈 惙 惛 惮 惲 惵 愐 愒 愓 愙 愞 愺 +㥯 慁 慆 慠 慼 𢡛 憒 憓 憗 憘 憥 憨 憭 𢢫 懕 懝 +懟 懵 𢦏 戕 戣 戩 扆 扌 扑 扒 扡 扤 扻 扭 扳 + 抙 抦 拕 𢪸 拽 挃 挍 挐 𢭏 𢭐 挲 挵 挻 挼 捁 +捄 捎 𢭆 捙 𢰝 𢮦 捬 掄 掙 𢰤 掔 掽 揷 揔 揕 揜 +揠 揫 揬 揲 搉 搞 搥 搩 搯 摚 摛 摝 摳 摽 撇 撑 +撝 撟 擋 擌 擕 擗 𢷡 擤 擥 擿 攄 㩮 攏 攔 攖 㩳 +攞 攲 敄 敔 敫 敺 斁 斄 斅 斊 斲 斵 斸 斿 旂 旉 +旔 㫖 旲 旹 旼 昄 昈 昡 昪 晅 晑 晎 㫪 𣇃 晗 + 晛 晣 𣇵 𣆶 晪 晫 晬 晭 晻 暀 暐 暒 暙 㬎 暭 +暱 暵 㬚 暿 㬜 曬 㫗 朁 朅 朒 𣍲 朙 𣏓 𣏒 杌 杍 +杔 杝 𣏐 𣏤 𣏕 杴 杶 𣏚 枒 𣏟 荣 栐 枰 枲 柃 柈 +柒 柙 柛 柰 柷 𣑊 𣑑 𣑋 栘 栟 栭 𣑥 栳 栻 栾 桄 +桅 桉 桌 桕 桗 㭷 桫 桮 桺 桼 梂 梐 梖 㭭 梘 梙 +梚 梜 梪 梫 梴 梻 棻 𣓤 𣕚 﨓 棃 棅 棌 棏 棖 + 棙 棤 棥 棬 棷 椃 椇 㮇 㮈 𣖔 椻 㮍 楆 楩 楬 +楲 楺 楿 榒 㮤 榖 榘 榦 榰 榷 榺 榼 槀 槑 槖 𣘹 +𣙇 樰 𣘸 𣘺 槣 槮 槯 槳 㯍 槴 槾 樑 樚 樝 𣜜 樲 +樳 樴 樿 橆 橉 橺 橎 橒 橤 𣜌 橾 檃 檋 㯰 檑 檟 +檡 𣝤 檫 檽 櫆 櫔 櫐 櫜 櫝 𣟿 𣟧 櫬 櫱 櫲 櫳 櫽 +𣠤 欋 欏 欐 欑 𣠽 欗 㰦 欯 歊 歘 歬 歵 歺 殁 + 殛 殮 𣪘 殽 殾 毇 毈 毉 毚 毦 毧 毮 毱 氂 氊 +氎 氵 氶 氺 𣱿 氿 汍 汛 汭 沄 沉 㳃 沔 沕 沗 沭 +泂 泐 㳒 泖 泚 泜 泩 泬 泭 𣴀 洀 洊 洤 洦 洧 汧 +洯 洼 浛 浞 浠 浰 涀 涁 涊 涍 涑 涘 𣵀 渗 𣷺 𣷹 +𣷓 涫 涮 涴 淂 洴 淈 淎 淏 淐 淟 淩 淶 渶 渞 渢 +渧 㴑 渲 渼 湈 湉 湋 湌 湏 湑 湓 湔 湗 湣 㴞 + 溓 溧 溴 溿 滃 滊 滙 漵 滫 滹 滻 漊 漌 漘 漥 +漶 漼 𣽾 潒 潗 潚 潠 潨 澘 潽 澐 澖 澾 澟 澥 澯 +㵤 澵 濈 濉 濚 濞 濩 𤂖 濼 瀀 瀇 瀊 瀣 𤄃 瀹 瀺 +瀼 灃 灇 灋 㶚 灔 灥 灩 灬 灮 灶 灾 炁 炆 炕 炗 +炻 𤇆 炟 炱 𤇾 烬 烊 烑 烓 烜 焃 焄 焆 焇 焈 焌 +㷀 焯 焱 煐 煊 煓 煞 㷔 熖 熀 熛 熠 熢 熮 熯 + 熳 𤎼 燋 燓 燙 燜 爇 㸅 爫 爫 爴 爸 爹 丬 牂 +牓 牗 牣 𤘩 牮 牯 牸 牿 犎 𤚥 犭 犮 犰 犱 狁 㹠 +狌 㹦 㹨 狳 狺 猇 猒 猘 猙 㺃 猹 猬 猱 猳 猽 獒 +㺔 獫 獬 𤢖 獮 獯 獱 獷 玁 玅 玊 玔 玘 玜 玞 玥 +玨 玵 玷 玹 玼 玿 珅 珋 珡 珧 珹 琓 珺 琁 琤 琱 +琹 瑓 瑀 瑃 瑍 瑒 瑝 瑱 璁 璅 璈 𤩍 璒 璗 璙 + 璠 璡 璥 璪 璫 璹 璻 璺 瓖 瓘 瓞 瓯 瓫 𤭖 瓺 +𤭯 甠 甤 甪 㽗 𤰖 甽 甾 畀 畈 畎 畐 畒 畬 畲 畱 +畺 畽 畾 疁 𤴔 疌 㽵 疢 㽷 疰 疷 疿 痀 痆 痏 痓 +痝 痟 痠 痧 痬 痮 痱 痹 瘃 瘘 瘇 瘏 㾮 𤸎 瘓 瘛 +瘜 𤸷 瘥 瘨 瘼 瘳 𤹪 㿉 癁 𤺋 癉 癕 㿗 癮 皕 皜 +皡 皠 皧 皨 皯 𥁊 盉 𥁕 盨 盬 𥄢 眗 眚 眭 眵 + 𥆩 䀹 𥇥 𥇍 睘 睠 睪 𥈞 睲 睼 睽 𥉌 䁘 瞚 瞟 +瞢 瞤 瞩 矞 矟 矤 矦 矪 矬 䂓 矰 矴 矻 𥐮 砅 砆 +砉 砍 砙 砡 砬 硇 硤 硪 𥓙 碊 碔 碤 碝 碞 碟 碻 +磈 磌 磎 磕 磠 磡 磦 磹 磺 磻 磾 𥖧 礐 礛 礰 礥 +礻 祊 祘 祛 䄅 祧 祲 禔 禕 禖 禛 禡 禩 禴 离 秂 +秇 秌 种 秖 䅈 𥞩 𥞴 䅏 稊 稑 稕 稛 稞 䅣 稭 + 稸 穇 穌 穖 穙 穜 穟 穠 穧 穪 穵 穸 窂 窊 窐 +窣 窬 𥧔 䆴 窹 窼 窾 䆿 竌 竑 竧 竨 竴 𥫤 𥫣 笇 +𥫱 笽 笧 笪 笮 笯 笱 䇦 䇳 筿 筁 䇮 筕 筹 筤 筦 +筩 筳 𥮲 䈇 箐 箑 箛 䈎 箯 箵 箼 篅 篊 𥱋 𥱤 篔 +篖 篚 篪 篰 簃 簋 簎 簏 簦 籅 籊 籑 籗 籞 籡 籩 +籮 籯 籰 𥸮 𥹖 𥹥 粦 𥹢 粶 粷 粿 𥻘 糄 𥻂 糈 + 糍 𥻨 糗 𥼣 糦 糫 𥽜 糵 紃 紉 䋆 紒 紞 𥿠 𥿔 +紽 紾 絀 絇 𦀌 𥿻 䋖 絙 絚 絪 絰 䋝 絿 𦀗 綆 綈 +綌 綗 𦁠 綝 綧 綪 綶 綷 緀 緗 緙 緦 緱 緹 䌂 𦃭 +縉 縐 縗 縝 縠 縧 縬 繅 繳 繵 繾 纆 纇 䌫 纑 纘 +纚 䍃 缼 缻 缾 罃 罄 罏 㓁 𦉰 罒 𦊆 罡 罣 罤 罭 +罽 罾 𦍌 羐 养 𣴎 羖 羜 羭 𦐂 翃 翏 翣 翥 翯 + 翲 耂 耊 耈 耎 耑 耖 耤 耬 耰 聃 聦 聱 聵 聻 +肙 肜 肤 肧 肸 𦙾 胅 胕 胘 胦 𦚰 脍 胵 胻 䏮 脵 +脖 脞 䏰 脤 脧 脬 𦜝 脽 䐈 腩 䐗 膁 䐜 膄 膅 䐢 +膘 膲 臁 臃 臖 臛 𦣝 臤 𦣪 臬 𦥑 臽 臿 𦥯 舄 𦧝 +舙 舡 舢 𦨞 舲 舴 舼 艆 艉 艅 𦩘 艋 䑶 艏 䑺 艗 +𦪌 艜 艣 𦪷 艹 艹 艹 䒑 艽 艿 芃 芊 芓 芧 芨 + 芲 芴 芺 芼 苢 苨 苷 茇 茈 茌 荔 茛 茝 茰 茼 +荄 荗 䒾 荿 䓔 䒳 莍 莔 莕 莛 莝 菉 菐 菔 菝 菥 +菹 萏 萑 萕 𦱳 萗 萹 葊 葏 葑 葒 葙 葚 葜 𦳝 葥 +葶 葸 葼 蒁 䔍 蓜 蒗 蒦 蒾 䔈 蓎 蓏 蓓 𦹥 蓧 蓪 +蓯 蓰 蓱 蓺 蓽 蔌 蔛 蔤 蔥 蔫 蔴 蕏 蕯 䔥 䕃 蔾 +蕑 蕓 蕞 蕡 蕢 𦾔 蕻 蕽 蕿 薁 薆 薓 薝 薟 𦿸 + 𦿶 𦿷 薷 薼 藇 藊 藘 藙 藟 藡 藦 藶 蘀 蘑 蘞 +蘡 蘤 蘧 𧄍 蘹 蘼 𧄹 虀 蘒 虓 虖 虯 虷 虺 蚇 蚉 +蚍 蚑 蚜 蚝 蚨 﨡 蚱 蚳 蛁 蛃 蛑 蛕 蛗 蛣 蛦 䖸 +蜅 蜇 蜎 蜐 蜓 蜙 蜟 蜡 蜣 蜱 蜺 蜾 蝀 蝃 蝑 蝘 +蝤 蝥 蝲 蝼 𧏛 𧏚 螧 螉 螋 螓 螠 𧏾 䗥 螾 𧐐 蟁 +蟎 蟵 蟟 𧑉 蟣 蟥 蟦 蟪 蟫 蟭 蠁 蠃 蠋 蠓 蠨 + 蠮 蠲 蠼 䘏 衊 衘 衟 衤 𧘕 𧘔 衩 𧘱 衯 袠 袼 +袽 袾 裀 裒 𧚓 裑 裓 裛 裰 裱 䙁 褁 𧜎 褷 𧜣 襂 +襅 襉 𧝒 䙥 襢 覀 覉 覐 覟 覰 覷 觖 觘 觫 䚡 觱 +觳 觽 觿 䚯 訑 訔 𧦅 訡 訵 訾 詅 詍 詘 誮 誐 誷 +誾 諗 諼 𧪄 謊 謅 謍 謜 謟 謭 譃 䜌 譑 譞 譶 譿 +讁 讋 讔 讕 讜 讞 谹 𧮳 谽 𧮾 𧯇 豅 豇 豏 豔 + 豗 豩 豭 豳 𧲸 貓 貒 貙 䝤 貛 貤 賖 賕 賙 𧶠 +賰 賱 𧸐 贉 贎 赬 趄 趕 趦 𧾷 跆 跈 跙 跬 踌 䟽 +跽 踆 𨂊 踔 踖 踡 踢 踧 𨂻 䠖 踶 踹 蹋 蹔 蹢 蹬 +蹭 蹯 躘 躞 躮 躳 躵 躶 躻 𨊂 軑 軔 䡎 軹 𨋳 輀 +輈 輗 輫 轀 轊 轘 𨐌 辤 辴 辶 辶 𨑕 迁 迆 﨤 迊 +迍 迓 迕 迠 迱 迵 迻 适 逌 逷 𨕫 遃 遄 遝 𨗈 + 𨗉 邅 邌 邐 阝 邡 䢵 邰 邶 郃 郈 𨛗 郜 郟 𨛺 +郶 郲 鄀 郫 郾 郿 鄄 鄆 鄘 鄜 鄞 鄷 鄹 鄺 酆 酇 +酗 酙 酡 酤 酴 酹 醅 醎 醨 醮 醳 醶 釃 釄 釚 𨥉 +𨥆 釬 釮 鈁 鈊 鈖 鈗 𨥫 鈳 鉂 鉇 鉊 鉎 鉑 鉖 鉙 +鉠 鉡 鉥 鉧 鉨 𨦇 𨦈 鉼 鉽 鉿 銉 銍 銗 銙 銟 銧 +銫 𨦺 𨦻 銲 銿 鋀 鋆 鋎 鋐 鋗 鋙 鋥 鋧 錑 𨨞 + 𨨩 鋷 鋹 鋻 錂 錍 錕 錝 錞 錧 錩 𨩱 𨩃 鍇 鍑 +鍗 鍚 鍫 鍱 鍳 鎡 𨪙 𨫍 鎈 鎋 鎏 鎞 鏵 𨫤 𨫝 鏱 +鏁 鏇 鏜 鏢 鏧 鐉 鐏 鐖 鐗 鏻 鐲 鐴 鐻 鑅 𨯁 𨯯 +鑭 鑯 镸 镹 閆 閌 閍 𨴐 閫 閴 𨵱 闈 𨷻 𨸟 阬 阳 +阴 𨸶 阼 陁 陡 𨺉 隂 𨻫 隚 𨼲 䧧 隩 隯 隳 隺 隽 +䧺 𨿸 雘 雚 雝 䨄 霔 霣 䨩 霶 靁 靇 靕 靗 靛 + 靪 𩊠 𩊱 鞖 鞚 鞞 鞢 鞱 鞲 鞾 韌 韑 韔 韘 韙 +韡 韱 頄 頍 頎 頔 頖 䪼 𩒐 頣 頲 頳 頥 顇 顦 颫 +颭 颰 𩗏 颷 颸 颻 颼 颿 飂 飇 飋 飠 𩙿 飡 飣 飥 +飪 飰 飱 飳 餈 䬻 𩛰 餖 餗 𩜙 餚 餛 餜 𩝐 餱 餲 +餳 餺 餻 餼 饀 饁 饆 饍 饎 饜 饟 饠 馣 馦 馹 馽 +馿 駃 駉 駔 駙 駞 𩣆 駰 駹 駼 騊 騑 騖 騚 騠 + 騱 騶 驄 驌 驘 䯂 骯 䯊 骷 䯒 骹 𩩲 髆 髐 髒 +髕 䯨 髜 髠 髥 髩 鬃 鬌 鬐 鬒 鬖 鬜 鬫 鬳 鬽 䰠 +魋 魣 魥 魫 魬 魳 魶 魷 鮦 鮬 鮱 𩷛 𩸽 鮲 鮸 鮾 +鯇 鯳 鯘 鯝 鯧 鯪 鯫 鯯 鯮 𩸕 鯺 𩺊 鯷 𩹉 鰖 鰘 +鰙 鰚 鰝 鰢 鰧 鰩 鰪 𩻄 鰱 鰶 鰷 鱅 鱜 𩻩 鱉 鱊 +𩻛 鱔 鱘 鱛 鱝 鱟 鱩 鱪 鱫 鱭 鱮 鱰 鱲 鱵 鱺 + 鳦 鳲 鴋 鴂 𩿎 鴑 鴗 鴘 𪀯 䳄 𪀚 鴲 䳑 鵂 鵊 +鵟 鵢 𪃹 鵩 鵫 𪂂 鵳 鵶 鵷 鵾 鶄 鶍 鶙 鶡 鶿 鶵 +鶹 鶽 鷃 鷇 鷉 鷖 鷚 鷟 鷠 鷣 鷴 䴇 鸊 鸂 鸍 鸙 +鸜 鸝 鹻 𢈘 麀 麅 麛 麨 𪎌 麽 𪐷 黟 黧 黮 黿 鼂 +䵷 鼃 鼗 鼙 鼯 鼷 鼺 鼽 齁 齅 齆 齓 齕 齘 𪗱 齝 +𪘂 齩 𪘚 齭 齰 齵 𪚲 diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet new file mode 100644 index 0000000..5f882ab --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet @@ -0,0 +1,989 @@ + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; < = > ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + (I!(B (I"(B (I#(B (I$(B (I%(B (I&(B (I'(B (I((B (I)(B (I*(B (I+(B (I,(B (I-(B (I.(B (I/(B +(I0(B (I1(B (I2(B (I3(B (I4(B (I5(B (I6(B (I7(B (I8(B (I9(B (I:(B (I;(B (I<(B (I=(B (I>(B (I?(B +(I@(B (IA(B (IB(B (IC(B (ID(B (IE(B (IF(B (IG(B (IH(B (II(B (IJ(B (IK(B (IL(B (IM(B (IN(B (IO(B +(IP(B (IQ(B (IR(B (IS(B (IT(B (IU(B (IV(B (IW(B (IX(B (IY(B (IZ(B (I[(B (I\(B (I](B (I^(B (I_(B + $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B +$B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B +$B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B +$B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B +$B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B +$B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B + $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B + $B":(B $B";(B $B"<(B $B"=(B $B">(B $B"?(B +$B"@(B $B"A(B $B"J(B $B"K(B $B"L(B $B"M(B $B"N(B $B"O(B +$B"P(B $B"\(B $B"](B $B"^(B $B"_(B +$B"`(B $B"a(B $B"b(B $B"c(B $B"d(B $B"e(B $B"f(B $B"g(B $B"h(B $B"i(B $B"j(B + $B"r(B $B"s(B $B"t(B $B"u(B $B"v(B $B"w(B $B"x(B $B"y(B $B"~(B +$B#0(B $B#1(B $B#2(B $B#3(B $B#4(B $B#5(B $B#6(B $B#7(B $B#8(B $B#9(B + $B#A(B $B#B(B $B#C(B $B#D(B $B#E(B $B#F(B $B#G(B $B#H(B $B#I(B $B#J(B $B#K(B $B#L(B $B#M(B $B#N(B $B#O(B +$B#P(B $B#Q(B $B#R(B $B#S(B $B#T(B $B#U(B $B#V(B $B#W(B $B#X(B $B#Y(B $B#Z(B + $B#a(B $B#b(B $B#c(B $B#d(B $B#e(B $B#f(B $B#g(B $B#h(B $B#i(B $B#j(B $B#k(B $B#l(B $B#m(B $B#n(B $B#o(B +$B#p(B $B#q(B $B#r(B $B#s(B $B#t(B $B#u(B $B#v(B $B#w(B $B#x(B $B#y(B $B#z(B + $B$!(B $B$"(B $B$#(B $B$$(B $B$%(B $B$&(B $B$'(B $B$((B $B$)(B $B$*(B $B$+(B $B$,(B $B$-(B $B$.(B $B$/(B +$B$0(B $B$1(B $B$2(B $B$3(B $B$4(B $B$5(B $B$6(B $B$7(B $B$8(B $B$9(B $B$:(B $B$;(B $B$<(B $B$=(B $B$>(B $B$?(B +$B$@(B $B$A(B $B$B(B $B$C(B $B$D(B $B$E(B $B$F(B $B$G(B $B$H(B $B$I(B $B$J(B $B$K(B $B$L(B $B$M(B $B$N(B $B$O(B +$B$P(B $B$Q(B $B$R(B $B$S(B $B$T(B $B$U(B $B$V(B $B$W(B $B$X(B $B$Y(B $B$Z(B $B$[(B $B$\(B $B$](B $B$^(B $B$_(B +$B$`(B $B$a(B $B$b(B $B$c(B $B$d(B $B$e(B $B$f(B $B$g(B $B$h(B $B$i(B $B$j(B $B$k(B $B$l(B $B$m(B $B$n(B $B$o(B +$B$p(B $B$q(B $B$r(B $B$s(B + $B%!(B $B%"(B $B%#(B $B%$(B $B%%(B $B%&(B $B%'(B $B%((B $B%)(B $B%*(B $B%+(B $B%,(B $B%-(B $B%.(B $B%/(B +$B%0(B $B%1(B $B%2(B $B%3(B $B%4(B $B%5(B $B%6(B $B%7(B $B%8(B $B%9(B $B%:(B $B%;(B $B%<(B $B%=(B $B%>(B $B%?(B +$B%@(B $B%A(B $B%B(B $B%C(B $B%D(B $B%E(B $B%F(B $B%G(B $B%H(B $B%I(B $B%J(B $B%K(B $B%L(B $B%M(B $B%N(B $B%O(B +$B%P(B $B%Q(B $B%R(B $B%S(B $B%T(B $B%U(B $B%V(B $B%W(B $B%X(B $B%Y(B $B%Z(B $B%[(B $B%\(B $B%](B $B%^(B $B%_(B +$B%`(B $B%a(B $B%b(B $B%c(B $B%d(B $B%e(B $B%f(B $B%g(B $B%h(B $B%i(B $B%j(B $B%k(B $B%l(B $B%m(B $B%n(B $B%o(B +$B%p(B $B%q(B $B%r(B $B%s(B $B%t(B $B%u(B $B%v(B + $B&!(B $B&"(B $B&#(B $B&$(B $B&%(B $B&&(B $B&'(B $B&((B $B&)(B $B&*(B $B&+(B $B&,(B $B&-(B $B&.(B $B&/(B +$B&0(B $B&1(B $B&2(B $B&3(B $B&4(B $B&5(B $B&6(B $B&7(B $B&8(B + $B&A(B $B&B(B $B&C(B $B&D(B $B&E(B $B&F(B $B&G(B $B&H(B $B&I(B $B&J(B $B&K(B $B&L(B $B&M(B $B&N(B $B&O(B +$B&P(B $B&Q(B $B&R(B $B&S(B $B&T(B $B&U(B $B&V(B $B&W(B $B&X(B + $B'!(B $B'"(B $B'#(B $B'$(B $B'%(B $B'&(B $B''(B $B'((B $B')(B $B'*(B $B'+(B $B',(B $B'-(B $B'.(B $B'/(B +$B'0(B $B'1(B $B'2(B $B'3(B $B'4(B $B'5(B $B'6(B $B'7(B $B'8(B $B'9(B $B':(B $B';(B $B'<(B $B'=(B $B'>(B $B'?(B +$B'@(B $B'A(B + $B'Q(B $B'R(B $B'S(B $B'T(B $B'U(B $B'V(B $B'W(B $B'X(B $B'Y(B $B'Z(B $B'[(B $B'\(B $B'](B $B'^(B $B'_(B +$B'`(B $B'a(B $B'b(B $B'c(B $B'd(B $B'e(B $B'f(B $B'g(B $B'h(B $B'i(B $B'j(B $B'k(B $B'l(B $B'm(B $B'n(B $B'o(B +$B'p(B $B'q(B + $B(!(B $B("(B $B(#(B $B($(B $B(%(B $B(&(B $B('(B $B(((B $B()(B $B(*(B $B(+(B $B(,(B $B(-(B $B(.(B $B(/(B +$B(0(B $B(1(B $B(2(B $B(3(B $B(4(B $B(5(B $B(6(B $B(7(B $B(8(B $B(9(B $B(:(B $B(;(B $B(<(B $B(=(B $B(>(B $B(?(B +$B(@(B + $B-!(B $B-"(B $B-#(B $B-$(B $B-%(B $B-&(B $B-'(B $B-((B $B-)(B $B-*(B $B-+(B $B-,(B $B--(B $B-.(B $B-/(B +$B-0(B $B-1(B $B-2(B $B-3(B $B-4(B $B-5(B $B-6(B $B-7(B $B-8(B $B-9(B $B-:(B $B-;(B $B-<(B $B-=(B $B->(B +$B-@(B $B-A(B $B-B(B $B-C(B $B-D(B $B-E(B $B-F(B $B-G(B $B-H(B $B-I(B $B-J(B $B-K(B $B-L(B $B-M(B $B-N(B $B-O(B +$B-P(B $B-Q(B $B-R(B $B-S(B $B-T(B $B-U(B $B-V(B $B-_(B +$B-`(B $B-a(B $B-b(B $B-c(B $B-d(B $B-e(B $B-f(B $B-g(B $B-h(B $B-i(B $B-j(B $B-k(B $B-l(B $B-m(B $B-n(B $B-o(B + $B-s(B $B-t(B $B-x(B $B-y(B + $B0!(B $B0"(B $B0#(B $B0$(B $B0%(B $B0&(B $B0'(B $B0((B $B0)(B $B0*(B $B0+(B $B0,(B $B0-(B $B0.(B $B0/(B +$B00(B $B01(B $B02(B $B03(B $B04(B $B05(B $B06(B $B07(B $B08(B $B09(B $B0:(B $B0;(B $B0<(B $B0=(B $B0>(B $B0?(B +$B0@(B $B0A(B $B0B(B $B0C(B $B0D(B $B0E(B $B0F(B $B0G(B $B0H(B $B0I(B $B0J(B $B0K(B $B0L(B $B0M(B $B0N(B $B0O(B +$B0P(B $B0Q(B $B0R(B $B0S(B $B0T(B $B0U(B $B0V(B $B0W(B $B0X(B $B0Y(B $B0Z(B $B0[(B $B0\(B $B0](B $B0^(B $B0_(B +$B0`(B $B0a(B $B0b(B $B0c(B $B0d(B $B0e(B $B0f(B $B0g(B $B0h(B $B0i(B $B0j(B $B0k(B $B0l(B $B0m(B $B0n(B $B0o(B +$B0p(B $B0q(B $B0r(B $B0s(B $B0t(B $B0u(B $B0v(B $B0w(B $B0x(B $B0y(B $B0z(B $B0{(B $B0|(B $B0}(B $B0~(B + $B1!(B $B1"(B $B1#(B $B1$(B $B1%(B $B1&(B $B1'(B $B1((B $B1)(B $B1*(B $B1+(B $B1,(B $B1-(B $B1.(B $B1/(B +$B10(B $B11(B $B12(B $B13(B $B14(B $B15(B $B16(B $B17(B $B18(B $B19(B $B1:(B $B1;(B $B1<(B $B1=(B $B1>(B $B1?(B +$B1@(B $B1A(B $B1B(B $B1C(B $B1D(B $B1E(B $B1F(B $B1G(B $B1H(B $B1I(B $B1J(B $B1K(B $B1L(B $B1M(B $B1N(B $B1O(B +$B1P(B $B1Q(B $B1R(B $B1S(B $B1T(B $B1U(B $B1V(B $B1W(B $B1X(B $B1Y(B $B1Z(B $B1[(B $B1\(B $B1](B $B1^(B $B1_(B +$B1`(B $B1a(B $B1b(B $B1c(B $B1d(B $B1e(B $B1f(B $B1g(B $B1h(B $B1i(B $B1j(B $B1k(B $B1l(B $B1m(B $B1n(B $B1o(B +$B1p(B $B1q(B $B1r(B $B1s(B $B1t(B $B1u(B $B1v(B $B1w(B $B1x(B $B1y(B $B1z(B $B1{(B $B1|(B $B1}(B $B1~(B + $B2!(B $B2"(B $B2#(B $B2$(B $B2%(B $B2&(B $B2'(B $B2((B $B2)(B $B2*(B $B2+(B $B2,(B $B2-(B $B2.(B $B2/(B +$B20(B $B21(B $B22(B $B23(B $B24(B $B25(B $B26(B $B27(B $B28(B $B29(B $B2:(B $B2;(B $B2<(B $B2=(B $B2>(B $B2?(B +$B2@(B $B2A(B $B2B(B $B2C(B $B2D(B $B2E(B $B2F(B $B2G(B $B2H(B $B2I(B $B2J(B $B2K(B $B2L(B $B2M(B $B2N(B $B2O(B +$B2P(B $B2Q(B $B2R(B $B2S(B $B2T(B $B2U(B $B2V(B $B2W(B $B2X(B $B2Y(B $B2Z(B $B2[(B $B2\(B $B2](B $B2^(B $B2_(B +$B2`(B $B2a(B $B2b(B $B2c(B $B2d(B $B2e(B $B2f(B $B2g(B $B2h(B $B2i(B $B2j(B $B2k(B $B2l(B $B2m(B $B2n(B $B2o(B +$B2p(B $B2q(B $B2r(B $B2s(B $B2t(B $B2u(B $B2v(B $B2w(B $B2x(B $B2y(B $B2z(B $B2{(B $B2|(B $B2}(B $B2~(B + $B3!(B $B3"(B $B3#(B $B3$(B $B3%(B $B3&(B $B3'(B $B3((B $B3)(B $B3*(B $B3+(B $B3,(B $B3-(B $B3.(B $B3/(B +$B30(B $B31(B $B32(B $B33(B $B34(B $B35(B $B36(B $B37(B $B38(B $B39(B $B3:(B $B3;(B $B3<(B $B3=(B $B3>(B $B3?(B +$B3@(B $B3A(B $B3B(B $B3C(B $B3D(B $B3E(B $B3F(B $B3G(B $B3H(B $B3I(B $B3J(B $B3K(B $B3L(B $B3M(B $B3N(B $B3O(B +$B3P(B $B3Q(B $B3R(B $B3S(B $B3T(B $B3U(B $B3V(B $B3W(B $B3X(B $B3Y(B $B3Z(B $B3[(B $B3\(B $B3](B $B3^(B $B3_(B +$B3`(B $B3a(B $B3b(B $B3c(B $B3d(B $B3e(B $B3f(B $B3g(B $B3h(B $B3i(B $B3j(B $B3k(B $B3l(B $B3m(B $B3n(B $B3o(B +$B3p(B $B3q(B $B3r(B $B3s(B $B3t(B $B3u(B $B3v(B $B3w(B $B3x(B $B3y(B $B3z(B $B3{(B $B3|(B $B3}(B $B3~(B + $B4!(B $B4"(B $B4#(B $B4$(B $B4%(B $B4&(B $B4'(B $B4((B $B4)(B $B4*(B $B4+(B $B4,(B $B4-(B $B4.(B $B4/(B +$B40(B $B41(B $B42(B $B43(B $B44(B $B45(B $B46(B $B47(B $B48(B $B49(B $B4:(B $B4;(B $B4<(B $B4=(B $B4>(B $B4?(B +$B4@(B $B4A(B $B4B(B $B4C(B $B4D(B $B4E(B $B4F(B $B4G(B $B4H(B $B4I(B $B4J(B $B4K(B $B4L(B $B4M(B $B4N(B $B4O(B +$B4P(B $B4Q(B $B4R(B $B4S(B $B4T(B $B4U(B $B4V(B $B4W(B $B4X(B $B4Y(B $B4Z(B $B4[(B $B4\(B $B4](B $B4^(B $B4_(B +$B4`(B $B4a(B $B4b(B $B4c(B $B4d(B $B4e(B $B4f(B $B4g(B $B4h(B $B4i(B $B4j(B $B4k(B $B4l(B $B4m(B $B4n(B $B4o(B +$B4p(B $B4q(B $B4r(B $B4s(B $B4t(B $B4u(B $B4v(B $B4w(B $B4x(B $B4y(B $B4z(B $B4{(B $B4|(B $B4}(B $B4~(B + $B5!(B $B5"(B $B5#(B $B5$(B $B5%(B $B5&(B $B5'(B $B5((B $B5)(B $B5*(B $B5+(B $B5,(B $B5-(B $B5.(B $B5/(B +$B50(B $B51(B $B52(B $B53(B $B54(B $B55(B $B56(B $B57(B $B58(B $B59(B $B5:(B $B5;(B $B5<(B $B5=(B $B5>(B $B5?(B +$B5@(B $B5A(B $B5B(B $B5C(B $B5D(B $B5E(B $B5F(B $B5G(B $B5H(B $B5I(B $B5J(B $B5K(B $B5L(B $B5M(B $B5N(B $B5O(B +$B5P(B $B5Q(B $B5R(B $B5S(B $B5T(B $B5U(B $B5V(B $B5W(B $B5X(B $B5Y(B $B5Z(B $B5[(B $B5\(B $B5](B $B5^(B $B5_(B +$B5`(B $B5a(B $B5b(B $B5c(B $B5d(B $B5e(B $B5f(B $B5g(B $B5h(B $B5i(B $B5j(B $B5k(B $B5l(B $B5m(B $B5n(B $B5o(B +$B5p(B $B5q(B $B5r(B $B5s(B $B5t(B $B5u(B $B5v(B $B5w(B $B5x(B $B5y(B $B5z(B $B5{(B $B5|(B $B5}(B $B5~(B + $B6!(B $B6"(B $B6#(B $B6$(B $B6%(B $B6&(B $B6'(B $B6((B $B6)(B $B6*(B $B6+(B $B6,(B $B6-(B $B6.(B $B6/(B +$B60(B $B61(B $B62(B $B63(B $B64(B $B65(B $B66(B $B67(B $B68(B $B69(B $B6:(B $B6;(B $B6<(B $B6=(B $B6>(B $B6?(B +$B6@(B $B6A(B $B6B(B $B6C(B $B6D(B $B6E(B $B6F(B $B6G(B $B6H(B $B6I(B $B6J(B $B6K(B $B6L(B $B6M(B $B6N(B $B6O(B +$B6P(B $B6Q(B $B6R(B $B6S(B $B6T(B $B6U(B $B6V(B $B6W(B $B6X(B $B6Y(B $B6Z(B $B6[(B $B6\(B $B6](B $B6^(B $B6_(B +$B6`(B $B6a(B $B6b(B $B6c(B $B6d(B $B6e(B $B6f(B $B6g(B $B6h(B $B6i(B $B6j(B $B6k(B $B6l(B $B6m(B $B6n(B $B6o(B +$B6p(B $B6q(B $B6r(B $B6s(B $B6t(B $B6u(B $B6v(B $B6w(B $B6x(B $B6y(B $B6z(B $B6{(B $B6|(B $B6}(B $B6~(B + $B7!(B $B7"(B $B7#(B $B7$(B $B7%(B $B7&(B $B7'(B $B7((B $B7)(B $B7*(B $B7+(B $B7,(B $B7-(B $B7.(B $B7/(B +$B70(B $B71(B $B72(B $B73(B $B74(B $B75(B $B76(B $B77(B $B78(B $B79(B $B7:(B $B7;(B $B7<(B $B7=(B $B7>(B $B7?(B +$B7@(B $B7A(B $B7B(B $B7C(B $B7D(B $B7E(B $B7F(B $B7G(B $B7H(B $B7I(B $B7J(B $B7K(B $B7L(B $B7M(B $B7N(B $B7O(B +$B7P(B $B7Q(B $B7R(B $B7S(B $B7T(B $B7U(B $B7V(B $B7W(B $B7X(B $B7Y(B $B7Z(B $B7[(B $B7\(B $B7](B $B7^(B $B7_(B +$B7`(B $B7a(B $B7b(B $B7c(B $B7d(B $B7e(B $B7f(B $B7g(B $B7h(B $B7i(B $B7j(B $B7k(B $B7l(B $B7m(B $B7n(B $B7o(B +$B7p(B $B7q(B $B7r(B $B7s(B $B7t(B $B7u(B $B7v(B $B7w(B $B7x(B $B7y(B $B7z(B $B7{(B $B7|(B $B7}(B $B7~(B + $B8!(B $B8"(B $B8#(B $B8$(B $B8%(B $B8&(B $B8'(B $B8((B $B8)(B $B8*(B $B8+(B $B8,(B $B8-(B $B8.(B $B8/(B +$B80(B $B81(B $B82(B $B83(B $B84(B $B85(B $B86(B $B87(B $B88(B $B89(B $B8:(B $B8;(B $B8<(B $B8=(B $B8>(B $B8?(B +$B8@(B $B8A(B $B8B(B $B8C(B $B8D(B $B8E(B $B8F(B $B8G(B $B8H(B $B8I(B $B8J(B $B8K(B $B8L(B $B8M(B $B8N(B $B8O(B +$B8P(B $B8Q(B $B8R(B $B8S(B $B8T(B $B8U(B $B8V(B $B8W(B $B8X(B $B8Y(B $B8Z(B $B8[(B $B8\(B $B8](B $B8^(B $B8_(B +$B8`(B $B8a(B $B8b(B $B8c(B $B8d(B $B8e(B $B8f(B $B8g(B $B8h(B $B8i(B $B8j(B $B8k(B $B8l(B $B8m(B $B8n(B $B8o(B +$B8p(B $B8q(B $B8r(B $B8s(B $B8t(B $B8u(B $B8v(B $B8w(B $B8x(B $B8y(B $B8z(B $B8{(B $B8|(B $B8}(B $B8~(B + $B9!(B $B9"(B $B9#(B $B9$(B $B9%(B $B9&(B $B9'(B $B9((B $B9)(B $B9*(B $B9+(B $B9,(B $B9-(B $B9.(B $B9/(B +$B90(B $B91(B $B92(B $B93(B $B94(B $B95(B $B96(B $B97(B $B98(B $B99(B $B9:(B $B9;(B $B9<(B $B9=(B $B9>(B $B9?(B +$B9@(B $B9A(B $B9B(B $B9C(B $B9D(B $B9E(B $B9F(B $B9G(B $B9H(B $B9I(B $B9J(B $B9K(B $B9L(B $B9M(B $B9N(B $B9O(B +$B9P(B $B9Q(B $B9R(B $B9S(B $B9T(B $B9U(B $B9V(B $B9W(B $B9X(B $B9Y(B $B9Z(B $B9[(B $B9\(B $B9](B $B9^(B $B9_(B +$B9`(B $B9a(B $B9b(B $B9c(B $B9d(B $B9e(B $B9f(B $B9g(B $B9h(B $B9i(B $B9j(B $B9k(B $B9l(B $B9m(B $B9n(B $B9o(B +$B9p(B $B9q(B $B9r(B $B9s(B $B9t(B $B9u(B $B9v(B $B9w(B $B9x(B $B9y(B $B9z(B $B9{(B $B9|(B $B9}(B $B9~(B + $B:!(B $B:"(B $B:#(B $B:$(B $B:%(B $B:&(B $B:'(B $B:((B $B:)(B $B:*(B $B:+(B $B:,(B $B:-(B $B:.(B $B:/(B +$B:0(B $B:1(B $B:2(B $B:3(B $B:4(B $B:5(B $B:6(B $B:7(B $B:8(B $B:9(B $B::(B $B:;(B $B:<(B $B:=(B $B:>(B $B:?(B +$B:@(B $B:A(B $B:B(B $B:C(B $B:D(B $B:E(B $B:F(B $B:G(B $B:H(B $B:I(B $B:J(B $B:K(B $B:L(B $B:M(B $B:N(B $B:O(B +$B:P(B $B:Q(B $B:R(B $B:S(B $B:T(B $B:U(B $B:V(B $B:W(B $B:X(B $B:Y(B $B:Z(B $B:[(B $B:\(B $B:](B $B:^(B $B:_(B +$B:`(B $B:a(B $B:b(B $B:c(B $B:d(B $B:e(B $B:f(B $B:g(B $B:h(B $B:i(B $B:j(B $B:k(B $B:l(B $B:m(B $B:n(B $B:o(B +$B:p(B $B:q(B $B:r(B $B:s(B $B:t(B $B:u(B $B:v(B $B:w(B $B:x(B $B:y(B $B:z(B $B:{(B $B:|(B $B:}(B $B:~(B + $B;!(B $B;"(B $B;#(B $B;$(B $B;%(B $B;&(B $B;'(B $B;((B $B;)(B $B;*(B $B;+(B $B;,(B $B;-(B $B;.(B $B;/(B +$B;0(B $B;1(B $B;2(B $B;3(B $B;4(B $B;5(B $B;6(B $B;7(B $B;8(B $B;9(B $B;:(B $B;;(B $B;<(B $B;=(B $B;>(B $B;?(B +$B;@(B $B;A(B $B;B(B $B;C(B $B;D(B $B;E(B $B;F(B $B;G(B $B;H(B $B;I(B $B;J(B $B;K(B $B;L(B $B;M(B $B;N(B $B;O(B +$B;P(B $B;Q(B $B;R(B $B;S(B $B;T(B $B;U(B $B;V(B $B;W(B $B;X(B $B;Y(B $B;Z(B $B;[(B $B;\(B $B;](B $B;^(B $B;_(B +$B;`(B $B;a(B $B;b(B $B;c(B $B;d(B $B;e(B $B;f(B $B;g(B $B;h(B $B;i(B $B;j(B $B;k(B $B;l(B $B;m(B $B;n(B $B;o(B +$B;p(B $B;q(B $B;r(B $B;s(B $B;t(B $B;u(B $B;v(B $B;w(B $B;x(B $B;y(B $B;z(B $B;{(B $B;|(B $B;}(B $B;~(B + $B(B $B(B $B=?(B +$B=@(B $B=A(B $B=B(B $B=C(B $B=D(B $B=E(B $B=F(B $B=G(B $B=H(B $B=I(B $B=J(B $B=K(B $B=L(B $B=M(B $B=N(B $B=O(B +$B=P(B $B=Q(B $B=R(B $B=S(B $B=T(B $B=U(B $B=V(B $B=W(B $B=X(B $B=Y(B $B=Z(B $B=[(B $B=\(B $B=](B $B=^(B $B=_(B +$B=`(B $B=a(B $B=b(B $B=c(B $B=d(B $B=e(B $B=f(B $B=g(B $B=h(B $B=i(B $B=j(B $B=k(B $B=l(B $B=m(B $B=n(B $B=o(B +$B=p(B $B=q(B $B=r(B $B=s(B $B=t(B $B=u(B $B=v(B $B=w(B $B=x(B $B=y(B $B=z(B $B={(B $B=|(B $B=}(B $B=~(B + $B>!(B $B>"(B $B>#(B $B>$(B $B>%(B $B>&(B $B>'(B $B>((B $B>)(B $B>*(B $B>+(B $B>,(B $B>-(B $B>.(B $B>/(B +$B>0(B $B>1(B $B>2(B $B>3(B $B>4(B $B>5(B $B>6(B $B>7(B $B>8(B $B>9(B $B>:(B $B>;(B $B><(B $B>=(B $B>>(B $B>?(B +$B>@(B $B>A(B $B>B(B $B>C(B $B>D(B $B>E(B $B>F(B $B>G(B $B>H(B $B>I(B $B>J(B $B>K(B $B>L(B $B>M(B $B>N(B $B>O(B +$B>P(B $B>Q(B $B>R(B $B>S(B $B>T(B $B>U(B $B>V(B $B>W(B $B>X(B $B>Y(B $B>Z(B $B>[(B $B>\(B $B>](B $B>^(B $B>_(B +$B>`(B $B>a(B $B>b(B $B>c(B $B>d(B $B>e(B $B>f(B $B>g(B $B>h(B $B>i(B $B>j(B $B>k(B $B>l(B $B>m(B $B>n(B $B>o(B +$B>p(B $B>q(B $B>r(B $B>s(B $B>t(B $B>u(B $B>v(B $B>w(B $B>x(B $B>y(B $B>z(B $B>{(B $B>|(B $B>}(B $B>~(B + $B?!(B $B?"(B $B?#(B $B?$(B $B?%(B $B?&(B $B?'(B $B?((B $B?)(B $B?*(B $B?+(B $B?,(B $B?-(B $B?.(B $B?/(B +$B?0(B $B?1(B $B?2(B $B?3(B $B?4(B $B?5(B $B?6(B $B?7(B $B?8(B $B?9(B $B?:(B $B?;(B $B?<(B $B?=(B $B?>(B $B??(B +$B?@(B $B?A(B $B?B(B $B?C(B $B?D(B $B?E(B $B?F(B $B?G(B $B?H(B $B?I(B $B?J(B $B?K(B $B?L(B $B?M(B $B?N(B $B?O(B +$B?P(B $B?Q(B $B?R(B $B?S(B $B?T(B $B?U(B $B?V(B $B?W(B $B?X(B $B?Y(B $B?Z(B $B?[(B $B?\(B $B?](B $B?^(B $B?_(B +$B?`(B $B?a(B $B?b(B $B?c(B $B?d(B $B?e(B $B?f(B $B?g(B $B?h(B $B?i(B $B?j(B $B?k(B $B?l(B $B?m(B $B?n(B $B?o(B +$B?p(B $B?q(B $B?r(B $B?s(B $B?t(B $B?u(B $B?v(B $B?w(B $B?x(B $B?y(B $B?z(B $B?{(B $B?|(B $B?}(B $B?~(B + $B@!(B $B@"(B $B@#(B $B@$(B $B@%(B $B@&(B $B@'(B $B@((B $B@)(B $B@*(B $B@+(B $B@,(B $B@-(B $B@.(B $B@/(B +$B@0(B $B@1(B $B@2(B $B@3(B $B@4(B $B@5(B $B@6(B $B@7(B $B@8(B $B@9(B $B@:(B $B@;(B $B@<(B $B@=(B $B@>(B $B@?(B +$B@@(B $B@A(B $B@B(B $B@C(B $B@D(B $B@E(B $B@F(B $B@G(B $B@H(B $B@I(B $B@J(B $B@K(B $B@L(B $B@M(B $B@N(B $B@O(B +$B@P(B $B@Q(B $B@R(B $B@S(B $B@T(B $B@U(B $B@V(B $B@W(B $B@X(B $B@Y(B $B@Z(B $B@[(B $B@\(B $B@](B $B@^(B $B@_(B +$B@`(B $B@a(B $B@b(B $B@c(B $B@d(B $B@e(B $B@f(B $B@g(B $B@h(B $B@i(B $B@j(B $B@k(B $B@l(B $B@m(B $B@n(B $B@o(B +$B@p(B $B@q(B $B@r(B $B@s(B $B@t(B $B@u(B $B@v(B $B@w(B $B@x(B $B@y(B $B@z(B $B@{(B $B@|(B $B@}(B $B@~(B + $BA!(B $BA"(B $BA#(B $BA$(B $BA%(B $BA&(B $BA'(B $BA((B $BA)(B $BA*(B $BA+(B $BA,(B $BA-(B $BA.(B $BA/(B +$BA0(B $BA1(B $BA2(B $BA3(B $BA4(B $BA5(B $BA6(B $BA7(B $BA8(B $BA9(B $BA:(B $BA;(B $BA<(B $BA=(B $BA>(B $BA?(B +$BA@(B $BAA(B $BAB(B $BAC(B $BAD(B $BAE(B $BAF(B $BAG(B $BAH(B $BAI(B $BAJ(B $BAK(B $BAL(B $BAM(B $BAN(B $BAO(B +$BAP(B $BAQ(B $BAR(B $BAS(B $BAT(B $BAU(B $BAV(B $BAW(B $BAX(B $BAY(B $BAZ(B $BA[(B $BA\(B $BA](B $BA^(B $BA_(B +$BA`(B $BAa(B $BAb(B $BAc(B $BAd(B $BAe(B $BAf(B $BAg(B $BAh(B $BAi(B $BAj(B $BAk(B $BAl(B $BAm(B $BAn(B $BAo(B +$BAp(B $BAq(B $BAr(B $BAs(B $BAt(B $BAu(B $BAv(B $BAw(B $BAx(B $BAy(B $BAz(B $BA{(B $BA|(B $BA}(B $BA~(B + $BB!(B $BB"(B $BB#(B $BB$(B $BB%(B $BB&(B $BB'(B $BB((B $BB)(B $BB*(B $BB+(B $BB,(B $BB-(B $BB.(B $BB/(B +$BB0(B $BB1(B $BB2(B $BB3(B $BB4(B $BB5(B $BB6(B $BB7(B $BB8(B $BB9(B $BB:(B $BB;(B $BB<(B $BB=(B $BB>(B $BB?(B +$BB@(B $BBA(B $BBB(B $BBC(B $BBD(B $BBE(B $BBF(B $BBG(B $BBH(B $BBI(B $BBJ(B $BBK(B $BBL(B $BBM(B $BBN(B $BBO(B +$BBP(B $BBQ(B $BBR(B $BBS(B $BBT(B $BBU(B $BBV(B $BBW(B $BBX(B $BBY(B $BBZ(B $BB[(B $BB\(B $BB](B $BB^(B $BB_(B +$BB`(B $BBa(B $BBb(B $BBc(B $BBd(B $BBe(B $BBf(B $BBg(B $BBh(B $BBi(B $BBj(B $BBk(B $BBl(B $BBm(B $BBn(B $BBo(B +$BBp(B $BBq(B $BBr(B $BBs(B $BBt(B $BBu(B $BBv(B $BBw(B $BBx(B $BBy(B $BBz(B $BB{(B $BB|(B $BB}(B $BB~(B + $BC!(B $BC"(B $BC#(B $BC$(B $BC%(B $BC&(B $BC'(B $BC((B $BC)(B $BC*(B $BC+(B $BC,(B $BC-(B $BC.(B $BC/(B +$BC0(B $BC1(B $BC2(B $BC3(B $BC4(B $BC5(B $BC6(B $BC7(B $BC8(B $BC9(B $BC:(B $BC;(B $BC<(B $BC=(B $BC>(B $BC?(B +$BC@(B $BCA(B $BCB(B $BCC(B $BCD(B $BCE(B $BCF(B $BCG(B $BCH(B $BCI(B $BCJ(B $BCK(B $BCL(B $BCM(B $BCN(B $BCO(B +$BCP(B $BCQ(B $BCR(B $BCS(B $BCT(B $BCU(B $BCV(B $BCW(B $BCX(B $BCY(B $BCZ(B $BC[(B $BC\(B $BC](B $BC^(B $BC_(B +$BC`(B $BCa(B $BCb(B $BCc(B $BCd(B $BCe(B $BCf(B $BCg(B $BCh(B $BCi(B $BCj(B $BCk(B $BCl(B $BCm(B $BCn(B $BCo(B +$BCp(B $BCq(B $BCr(B $BCs(B $BCt(B $BCu(B $BCv(B $BCw(B $BCx(B $BCy(B $BCz(B $BC{(B $BC|(B $BC}(B $BC~(B + $BD!(B $BD"(B $BD#(B $BD$(B $BD%(B $BD&(B $BD'(B $BD((B $BD)(B $BD*(B $BD+(B $BD,(B $BD-(B $BD.(B $BD/(B +$BD0(B $BD1(B $BD2(B $BD3(B $BD4(B $BD5(B $BD6(B $BD7(B $BD8(B $BD9(B $BD:(B $BD;(B $BD<(B $BD=(B $BD>(B $BD?(B +$BD@(B $BDA(B $BDB(B $BDC(B $BDD(B $BDE(B $BDF(B $BDG(B $BDH(B $BDI(B $BDJ(B $BDK(B $BDL(B $BDM(B $BDN(B $BDO(B +$BDP(B $BDQ(B $BDR(B $BDS(B $BDT(B $BDU(B $BDV(B $BDW(B $BDX(B $BDY(B $BDZ(B $BD[(B $BD\(B $BD](B $BD^(B $BD_(B +$BD`(B $BDa(B $BDb(B $BDc(B $BDd(B $BDe(B $BDf(B $BDg(B $BDh(B $BDi(B $BDj(B $BDk(B $BDl(B $BDm(B $BDn(B $BDo(B +$BDp(B $BDq(B $BDr(B $BDs(B $BDt(B $BDu(B $BDv(B $BDw(B $BDx(B $BDy(B $BDz(B $BD{(B $BD|(B $BD}(B $BD~(B + $BE!(B $BE"(B $BE#(B $BE$(B $BE%(B $BE&(B $BE'(B $BE((B $BE)(B $BE*(B $BE+(B $BE,(B $BE-(B $BE.(B $BE/(B +$BE0(B $BE1(B $BE2(B $BE3(B $BE4(B $BE5(B $BE6(B $BE7(B $BE8(B $BE9(B $BE:(B $BE;(B $BE<(B $BE=(B $BE>(B $BE?(B +$BE@(B $BEA(B $BEB(B $BEC(B $BED(B $BEE(B $BEF(B $BEG(B $BEH(B $BEI(B $BEJ(B $BEK(B $BEL(B $BEM(B $BEN(B $BEO(B +$BEP(B $BEQ(B $BER(B $BES(B $BET(B $BEU(B $BEV(B $BEW(B $BEX(B $BEY(B $BEZ(B $BE[(B $BE\(B $BE](B $BE^(B $BE_(B +$BE`(B $BEa(B $BEb(B $BEc(B $BEd(B $BEe(B $BEf(B $BEg(B $BEh(B $BEi(B $BEj(B $BEk(B $BEl(B $BEm(B $BEn(B $BEo(B +$BEp(B $BEq(B $BEr(B $BEs(B $BEt(B $BEu(B $BEv(B $BEw(B $BEx(B $BEy(B $BEz(B $BE{(B $BE|(B $BE}(B $BE~(B + $BF!(B $BF"(B $BF#(B $BF$(B $BF%(B $BF&(B $BF'(B $BF((B $BF)(B $BF*(B $BF+(B $BF,(B $BF-(B $BF.(B $BF/(B +$BF0(B $BF1(B $BF2(B $BF3(B $BF4(B $BF5(B $BF6(B $BF7(B $BF8(B $BF9(B $BF:(B $BF;(B $BF<(B $BF=(B $BF>(B $BF?(B +$BF@(B $BFA(B $BFB(B $BFC(B $BFD(B $BFE(B $BFF(B $BFG(B $BFH(B $BFI(B $BFJ(B $BFK(B $BFL(B $BFM(B $BFN(B $BFO(B +$BFP(B $BFQ(B $BFR(B $BFS(B $BFT(B $BFU(B $BFV(B $BFW(B $BFX(B $BFY(B $BFZ(B $BF[(B $BF\(B $BF](B $BF^(B $BF_(B +$BF`(B $BFa(B $BFb(B $BFc(B $BFd(B $BFe(B $BFf(B $BFg(B $BFh(B $BFi(B $BFj(B $BFk(B $BFl(B $BFm(B $BFn(B $BFo(B +$BFp(B $BFq(B $BFr(B $BFs(B $BFt(B $BFu(B $BFv(B $BFw(B $BFx(B $BFy(B $BFz(B $BF{(B $BF|(B $BF}(B $BF~(B + $BG!(B $BG"(B $BG#(B $BG$(B $BG%(B $BG&(B $BG'(B $BG((B $BG)(B $BG*(B $BG+(B $BG,(B $BG-(B $BG.(B $BG/(B +$BG0(B $BG1(B $BG2(B $BG3(B $BG4(B $BG5(B $BG6(B $BG7(B $BG8(B $BG9(B $BG:(B $BG;(B $BG<(B $BG=(B $BG>(B $BG?(B +$BG@(B $BGA(B $BGB(B $BGC(B $BGD(B $BGE(B $BGF(B $BGG(B $BGH(B $BGI(B $BGJ(B $BGK(B $BGL(B $BGM(B $BGN(B $BGO(B +$BGP(B $BGQ(B $BGR(B $BGS(B $BGT(B $BGU(B $BGV(B $BGW(B $BGX(B $BGY(B $BGZ(B $BG[(B $BG\(B $BG](B $BG^(B $BG_(B +$BG`(B $BGa(B $BGb(B $BGc(B $BGd(B $BGe(B $BGf(B $BGg(B $BGh(B $BGi(B $BGj(B $BGk(B $BGl(B $BGm(B $BGn(B $BGo(B +$BGp(B $BGq(B $BGr(B $BGs(B $BGt(B $BGu(B $BGv(B $BGw(B $BGx(B $BGy(B $BGz(B $BG{(B $BG|(B $BG}(B $BG~(B + $BH!(B $BH"(B $BH#(B $BH$(B $BH%(B $BH&(B $BH'(B $BH((B $BH)(B $BH*(B $BH+(B $BH,(B $BH-(B $BH.(B $BH/(B +$BH0(B $BH1(B $BH2(B $BH3(B $BH4(B $BH5(B $BH6(B $BH7(B $BH8(B $BH9(B $BH:(B $BH;(B $BH<(B $BH=(B $BH>(B $BH?(B +$BH@(B $BHA(B $BHB(B $BHC(B $BHD(B $BHE(B $BHF(B $BHG(B $BHH(B $BHI(B $BHJ(B $BHK(B $BHL(B $BHM(B $BHN(B $BHO(B +$BHP(B $BHQ(B $BHR(B $BHS(B $BHT(B $BHU(B $BHV(B $BHW(B $BHX(B $BHY(B $BHZ(B $BH[(B $BH\(B $BH](B $BH^(B $BH_(B +$BH`(B $BHa(B $BHb(B $BHc(B $BHd(B $BHe(B $BHf(B $BHg(B $BHh(B $BHi(B $BHj(B $BHk(B $BHl(B $BHm(B $BHn(B $BHo(B +$BHp(B $BHq(B $BHr(B $BHs(B $BHt(B $BHu(B $BHv(B $BHw(B $BHx(B $BHy(B $BHz(B $BH{(B $BH|(B $BH}(B $BH~(B + $BI!(B $BI"(B $BI#(B $BI$(B $BI%(B $BI&(B $BI'(B $BI((B $BI)(B $BI*(B $BI+(B $BI,(B $BI-(B $BI.(B $BI/(B +$BI0(B $BI1(B $BI2(B $BI3(B $BI4(B $BI5(B $BI6(B $BI7(B $BI8(B $BI9(B $BI:(B $BI;(B $BI<(B $BI=(B $BI>(B $BI?(B +$BI@(B $BIA(B $BIB(B $BIC(B $BID(B $BIE(B $BIF(B $BIG(B $BIH(B $BII(B $BIJ(B $BIK(B $BIL(B $BIM(B $BIN(B $BIO(B +$BIP(B $BIQ(B $BIR(B $BIS(B $BIT(B $BIU(B $BIV(B $BIW(B $BIX(B $BIY(B $BIZ(B $BI[(B $BI\(B $BI](B $BI^(B $BI_(B +$BI`(B $BIa(B $BIb(B $BIc(B $BId(B $BIe(B $BIf(B $BIg(B $BIh(B $BIi(B $BIj(B $BIk(B $BIl(B $BIm(B $BIn(B $BIo(B +$BIp(B $BIq(B $BIr(B $BIs(B $BIt(B $BIu(B $BIv(B $BIw(B $BIx(B $BIy(B $BIz(B $BI{(B $BI|(B $BI}(B $BI~(B + $BJ!(B $BJ"(B $BJ#(B $BJ$(B $BJ%(B $BJ&(B $BJ'(B $BJ((B $BJ)(B $BJ*(B $BJ+(B $BJ,(B $BJ-(B $BJ.(B $BJ/(B +$BJ0(B $BJ1(B $BJ2(B $BJ3(B $BJ4(B $BJ5(B $BJ6(B $BJ7(B $BJ8(B $BJ9(B $BJ:(B $BJ;(B $BJ<(B $BJ=(B $BJ>(B $BJ?(B +$BJ@(B $BJA(B $BJB(B $BJC(B $BJD(B $BJE(B $BJF(B $BJG(B $BJH(B $BJI(B $BJJ(B $BJK(B $BJL(B $BJM(B $BJN(B $BJO(B +$BJP(B $BJQ(B $BJR(B $BJS(B $BJT(B $BJU(B $BJV(B $BJW(B $BJX(B $BJY(B $BJZ(B $BJ[(B $BJ\(B $BJ](B $BJ^(B $BJ_(B +$BJ`(B $BJa(B $BJb(B $BJc(B $BJd(B $BJe(B $BJf(B $BJg(B $BJh(B $BJi(B $BJj(B $BJk(B $BJl(B $BJm(B $BJn(B $BJo(B +$BJp(B $BJq(B $BJr(B $BJs(B $BJt(B $BJu(B $BJv(B $BJw(B $BJx(B $BJy(B $BJz(B $BJ{(B $BJ|(B $BJ}(B $BJ~(B + $BK!(B $BK"(B $BK#(B $BK$(B $BK%(B $BK&(B $BK'(B $BK((B $BK)(B $BK*(B $BK+(B $BK,(B $BK-(B $BK.(B $BK/(B +$BK0(B $BK1(B $BK2(B $BK3(B $BK4(B $BK5(B $BK6(B $BK7(B $BK8(B $BK9(B $BK:(B $BK;(B $BK<(B $BK=(B $BK>(B $BK?(B +$BK@(B $BKA(B $BKB(B $BKC(B $BKD(B $BKE(B $BKF(B $BKG(B $BKH(B $BKI(B $BKJ(B $BKK(B $BKL(B $BKM(B $BKN(B $BKO(B +$BKP(B $BKQ(B $BKR(B $BKS(B $BKT(B $BKU(B $BKV(B $BKW(B $BKX(B $BKY(B $BKZ(B $BK[(B $BK\(B $BK](B $BK^(B $BK_(B +$BK`(B $BKa(B $BKb(B $BKc(B $BKd(B $BKe(B $BKf(B $BKg(B $BKh(B $BKi(B $BKj(B $BKk(B $BKl(B $BKm(B $BKn(B $BKo(B +$BKp(B $BKq(B $BKr(B $BKs(B $BKt(B $BKu(B $BKv(B $BKw(B $BKx(B $BKy(B $BKz(B $BK{(B $BK|(B $BK}(B $BK~(B + $BL!(B $BL"(B $BL#(B $BL$(B $BL%(B $BL&(B $BL'(B $BL((B $BL)(B $BL*(B $BL+(B $BL,(B $BL-(B $BL.(B $BL/(B +$BL0(B $BL1(B $BL2(B $BL3(B $BL4(B $BL5(B $BL6(B $BL7(B $BL8(B $BL9(B $BL:(B $BL;(B $BL<(B $BL=(B $BL>(B $BL?(B +$BL@(B $BLA(B $BLB(B $BLC(B $BLD(B $BLE(B $BLF(B $BLG(B $BLH(B $BLI(B $BLJ(B $BLK(B $BLL(B $BLM(B $BLN(B $BLO(B +$BLP(B $BLQ(B $BLR(B $BLS(B $BLT(B $BLU(B $BLV(B $BLW(B $BLX(B $BLY(B $BLZ(B $BL[(B $BL\(B $BL](B $BL^(B $BL_(B +$BL`(B $BLa(B $BLb(B $BLc(B $BLd(B $BLe(B $BLf(B $BLg(B $BLh(B $BLi(B $BLj(B $BLk(B $BLl(B $BLm(B $BLn(B $BLo(B +$BLp(B $BLq(B $BLr(B $BLs(B $BLt(B $BLu(B $BLv(B $BLw(B $BLx(B $BLy(B $BLz(B $BL{(B $BL|(B $BL}(B $BL~(B + $BM!(B $BM"(B $BM#(B $BM$(B $BM%(B $BM&(B $BM'(B $BM((B $BM)(B $BM*(B $BM+(B $BM,(B $BM-(B $BM.(B $BM/(B +$BM0(B $BM1(B $BM2(B $BM3(B $BM4(B $BM5(B $BM6(B $BM7(B $BM8(B $BM9(B $BM:(B $BM;(B $BM<(B $BM=(B $BM>(B $BM?(B +$BM@(B $BMA(B $BMB(B $BMC(B $BMD(B $BME(B $BMF(B $BMG(B $BMH(B $BMI(B $BMJ(B $BMK(B $BML(B $BMM(B $BMN(B $BMO(B +$BMP(B $BMQ(B $BMR(B $BMS(B $BMT(B $BMU(B $BMV(B $BMW(B $BMX(B $BMY(B $BMZ(B $BM[(B $BM\(B $BM](B $BM^(B $BM_(B +$BM`(B $BMa(B $BMb(B $BMc(B $BMd(B $BMe(B $BMf(B $BMg(B $BMh(B $BMi(B $BMj(B $BMk(B $BMl(B $BMm(B $BMn(B $BMo(B +$BMp(B $BMq(B $BMr(B $BMs(B $BMt(B $BMu(B $BMv(B $BMw(B $BMx(B $BMy(B $BMz(B $BM{(B $BM|(B $BM}(B $BM~(B + $BN!(B $BN"(B $BN#(B $BN$(B $BN%(B $BN&(B $BN'(B $BN((B $BN)(B $BN*(B $BN+(B $BN,(B $BN-(B $BN.(B $BN/(B +$BN0(B $BN1(B $BN2(B $BN3(B $BN4(B $BN5(B $BN6(B $BN7(B $BN8(B $BN9(B $BN:(B $BN;(B $BN<(B $BN=(B $BN>(B $BN?(B +$BN@(B $BNA(B $BNB(B $BNC(B $BND(B $BNE(B $BNF(B $BNG(B $BNH(B $BNI(B $BNJ(B $BNK(B $BNL(B $BNM(B $BNN(B $BNO(B +$BNP(B $BNQ(B $BNR(B $BNS(B $BNT(B $BNU(B $BNV(B $BNW(B $BNX(B $BNY(B $BNZ(B $BN[(B $BN\(B $BN](B $BN^(B $BN_(B +$BN`(B $BNa(B $BNb(B $BNc(B $BNd(B $BNe(B $BNf(B $BNg(B $BNh(B $BNi(B $BNj(B $BNk(B $BNl(B $BNm(B $BNn(B $BNo(B +$BNp(B $BNq(B $BNr(B $BNs(B $BNt(B $BNu(B $BNv(B $BNw(B $BNx(B $BNy(B $BNz(B $BN{(B $BN|(B $BN}(B $BN~(B + $BO!(B $BO"(B $BO#(B $BO$(B $BO%(B $BO&(B $BO'(B $BO((B $BO)(B $BO*(B $BO+(B $BO,(B $BO-(B $BO.(B $BO/(B +$BO0(B $BO1(B $BO2(B $BO3(B $BO4(B $BO5(B $BO6(B $BO7(B $BO8(B $BO9(B $BO:(B $BO;(B $BO<(B $BO=(B $BO>(B $BO?(B +$BO@(B $BOA(B $BOB(B $BOC(B $BOD(B $BOE(B $BOF(B $BOG(B $BOH(B $BOI(B $BOJ(B $BOK(B $BOL(B $BOM(B $BON(B $BOO(B +$BOP(B $BOQ(B $BOR(B $BOS(B + $BP!(B $BP"(B $BP#(B $BP$(B $BP%(B $BP&(B $BP'(B $BP((B $BP)(B $BP*(B $BP+(B $BP,(B $BP-(B $BP.(B $BP/(B +$BP0(B $BP1(B $BP2(B $BP3(B $BP4(B $BP5(B $BP6(B $BP7(B $BP8(B $BP9(B $BP:(B $BP;(B $BP<(B $BP=(B $BP>(B $BP?(B +$BP@(B $BPA(B $BPB(B $BPC(B $BPD(B $BPE(B $BPF(B $BPG(B $BPH(B $BPI(B $BPJ(B $BPK(B $BPL(B $BPM(B $BPN(B $BPO(B +$BPP(B $BPQ(B $BPR(B $BPS(B $BPT(B $BPU(B $BPV(B $BPW(B $BPX(B $BPY(B $BPZ(B $BP[(B $BP\(B $BP](B $BP^(B $BP_(B +$BP`(B $BPa(B $BPb(B $BPc(B $BPd(B $BPe(B $BPf(B $BPg(B $BPh(B $BPi(B $BPj(B $BPk(B $BPl(B $BPm(B $BPn(B $BPo(B +$BPp(B $BPq(B $BPr(B $BPs(B $BPt(B $BPu(B $BPv(B $BPw(B $BPx(B $BPy(B $BPz(B $BP{(B $BP|(B $BP}(B $BP~(B + $BQ!(B $BQ"(B $BQ#(B $BQ$(B $BQ%(B $BQ&(B $BQ'(B $BQ((B $BQ)(B $BQ*(B $BQ+(B $BQ,(B $BQ-(B $BQ.(B $BQ/(B +$BQ0(B $BQ1(B $BQ2(B $BQ3(B $BQ4(B $BQ5(B $BQ6(B $BQ7(B $BQ8(B $BQ9(B $BQ:(B $BQ;(B $BQ<(B $BQ=(B $BQ>(B $BQ?(B +$BQ@(B $BQA(B $BQB(B $BQC(B $BQD(B $BQE(B $BQF(B $BQG(B $BQH(B $BQI(B $BQJ(B $BQK(B $BQL(B $BQM(B $BQN(B $BQO(B +$BQP(B $BQQ(B $BQR(B $BQS(B $BQT(B $BQU(B $BQV(B $BQW(B $BQX(B $BQY(B $BQZ(B $BQ[(B $BQ\(B $BQ](B $BQ^(B $BQ_(B +$BQ`(B $BQa(B $BQb(B $BQc(B $BQd(B $BQe(B $BQf(B $BQg(B $BQh(B $BQi(B $BQj(B $BQk(B $BQl(B $BQm(B $BQn(B $BQo(B +$BQp(B $BQq(B $BQr(B $BQs(B $BQt(B $BQu(B $BQv(B $BQw(B $BQx(B $BQy(B $BQz(B $BQ{(B $BQ|(B $BQ}(B $BQ~(B + $BR!(B $BR"(B $BR#(B $BR$(B $BR%(B $BR&(B $BR'(B $BR((B $BR)(B $BR*(B $BR+(B $BR,(B $BR-(B $BR.(B $BR/(B +$BR0(B $BR1(B $BR2(B $BR3(B $BR4(B $BR5(B $BR6(B $BR7(B $BR8(B $BR9(B $BR:(B $BR;(B $BR<(B $BR=(B $BR>(B $BR?(B +$BR@(B $BRA(B $BRB(B $BRC(B $BRD(B $BRE(B $BRF(B $BRG(B $BRH(B $BRI(B $BRJ(B $BRK(B $BRL(B $BRM(B $BRN(B $BRO(B +$BRP(B $BRQ(B $BRR(B $BRS(B $BRT(B $BRU(B $BRV(B $BRW(B $BRX(B $BRY(B $BRZ(B $BR[(B $BR\(B $BR](B $BR^(B $BR_(B +$BR`(B $BRa(B $BRb(B $BRc(B $BRd(B $BRe(B $BRf(B $BRg(B $BRh(B $BRi(B $BRj(B $BRk(B $BRl(B $BRm(B $BRn(B $BRo(B +$BRp(B $BRq(B $BRr(B $BRs(B $BRt(B $BRu(B $BRv(B $BRw(B $BRx(B $BRy(B $BRz(B $BR{(B $BR|(B $BR}(B $BR~(B + $BS!(B $BS"(B $BS#(B $BS$(B $BS%(B $BS&(B $BS'(B $BS((B $BS)(B $BS*(B $BS+(B $BS,(B $BS-(B $BS.(B $BS/(B +$BS0(B $BS1(B $BS2(B $BS3(B $BS4(B $BS5(B $BS6(B $BS7(B $BS8(B $BS9(B $BS:(B $BS;(B $BS<(B $BS=(B $BS>(B $BS?(B +$BS@(B $BSA(B $BSB(B $BSC(B $BSD(B $BSE(B $BSF(B $BSG(B $BSH(B $BSI(B $BSJ(B $BSK(B $BSL(B $BSM(B $BSN(B $BSO(B +$BSP(B $BSQ(B $BSR(B $BSS(B $BST(B $BSU(B $BSV(B $BSW(B $BSX(B $BSY(B $BSZ(B $BS[(B $BS\(B $BS](B $BS^(B $BS_(B +$BS`(B $BSa(B $BSb(B $BSc(B $BSd(B $BSe(B $BSf(B $BSg(B $BSh(B $BSi(B $BSj(B $BSk(B $BSl(B $BSm(B $BSn(B $BSo(B +$BSp(B $BSq(B $BSr(B $BSs(B $BSt(B $BSu(B $BSv(B $BSw(B $BSx(B $BSy(B $BSz(B $BS{(B $BS|(B $BS}(B $BS~(B + $BT!(B $BT"(B $BT#(B $BT$(B $BT%(B $BT&(B $BT'(B $BT((B $BT)(B $BT*(B $BT+(B $BT,(B $BT-(B $BT.(B $BT/(B +$BT0(B $BT1(B $BT2(B $BT3(B $BT4(B $BT5(B $BT6(B $BT7(B $BT8(B $BT9(B $BT:(B $BT;(B $BT<(B $BT=(B $BT>(B $BT?(B +$BT@(B $BTA(B $BTB(B $BTC(B $BTD(B $BTE(B $BTF(B $BTG(B $BTH(B $BTI(B $BTJ(B $BTK(B $BTL(B $BTM(B $BTN(B $BTO(B +$BTP(B $BTQ(B $BTR(B $BTS(B $BTT(B $BTU(B $BTV(B $BTW(B $BTX(B $BTY(B $BTZ(B $BT[(B $BT\(B $BT](B $BT^(B $BT_(B +$BT`(B $BTa(B $BTb(B $BTc(B $BTd(B $BTe(B $BTf(B $BTg(B $BTh(B $BTi(B $BTj(B $BTk(B $BTl(B $BTm(B $BTn(B $BTo(B +$BTp(B $BTq(B $BTr(B $BTs(B $BTt(B $BTu(B $BTv(B $BTw(B $BTx(B $BTy(B $BTz(B $BT{(B $BT|(B $BT}(B $BT~(B + $BU!(B $BU"(B $BU#(B $BU$(B $BU%(B $BU&(B $BU'(B $BU((B $BU)(B $BU*(B $BU+(B $BU,(B $BU-(B $BU.(B $BU/(B +$BU0(B $BU1(B $BU2(B $BU3(B $BU4(B $BU5(B $BU6(B $BU7(B $BU8(B $BU9(B $BU:(B $BU;(B $BU<(B $BU=(B $BU>(B $BU?(B +$BU@(B $BUA(B $BUB(B $BUC(B $BUD(B $BUE(B $BUF(B $BUG(B $BUH(B $BUI(B $BUJ(B $BUK(B $BUL(B $BUM(B $BUN(B $BUO(B +$BUP(B $BUQ(B $BUR(B $BUS(B $BUT(B $BUU(B $BUV(B $BUW(B $BUX(B $BUY(B $BUZ(B $BU[(B $BU\(B $BU](B $BU^(B $BU_(B +$BU`(B $BUa(B $BUb(B $BUc(B $BUd(B $BUe(B $BUf(B $BUg(B $BUh(B $BUi(B $BUj(B $BUk(B $BUl(B $BUm(B $BUn(B $BUo(B +$BUp(B $BUq(B $BUr(B $BUs(B $BUt(B $BUu(B $BUv(B $BUw(B $BUx(B $BUy(B $BUz(B $BU{(B $BU|(B $BU}(B $BU~(B + $BV!(B $BV"(B $BV#(B $BV$(B $BV%(B $BV&(B $BV'(B $BV((B $BV)(B $BV*(B $BV+(B $BV,(B $BV-(B $BV.(B $BV/(B +$BV0(B $BV1(B $BV2(B $BV3(B $BV4(B $BV5(B $BV6(B $BV7(B $BV8(B $BV9(B $BV:(B $BV;(B $BV<(B $BV=(B $BV>(B $BV?(B +$BV@(B $BVA(B $BVB(B $BVC(B $BVD(B $BVE(B $BVF(B $BVG(B $BVH(B $BVI(B $BVJ(B $BVK(B $BVL(B $BVM(B $BVN(B $BVO(B +$BVP(B $BVQ(B $BVR(B $BVS(B $BVT(B $BVU(B $BVV(B $BVW(B $BVX(B $BVY(B $BVZ(B $BV[(B $BV\(B $BV](B $BV^(B $BV_(B +$BV`(B $BVa(B $BVb(B $BVc(B $BVd(B $BVe(B $BVf(B $BVg(B $BVh(B $BVi(B $BVj(B $BVk(B $BVl(B $BVm(B $BVn(B $BVo(B +$BVp(B $BVq(B $BVr(B $BVs(B $BVt(B $BVu(B $BVv(B $BVw(B $BVx(B $BVy(B $BVz(B $BV{(B $BV|(B $BV}(B $BV~(B + $BW!(B $BW"(B $BW#(B $BW$(B $BW%(B $BW&(B $BW'(B $BW((B $BW)(B $BW*(B $BW+(B $BW,(B $BW-(B $BW.(B $BW/(B +$BW0(B $BW1(B $BW2(B $BW3(B $BW4(B $BW5(B $BW6(B $BW7(B $BW8(B $BW9(B $BW:(B $BW;(B $BW<(B $BW=(B $BW>(B $BW?(B +$BW@(B $BWA(B $BWB(B $BWC(B $BWD(B $BWE(B $BWF(B $BWG(B $BWH(B $BWI(B $BWJ(B $BWK(B $BWL(B $BWM(B $BWN(B $BWO(B +$BWP(B $BWQ(B $BWR(B $BWS(B $BWT(B $BWU(B $BWV(B $BWW(B $BWX(B $BWY(B $BWZ(B $BW[(B $BW\(B $BW](B $BW^(B $BW_(B +$BW`(B $BWa(B $BWb(B $BWc(B $BWd(B $BWe(B $BWf(B $BWg(B $BWh(B $BWi(B $BWj(B $BWk(B $BWl(B $BWm(B $BWn(B $BWo(B +$BWp(B $BWq(B $BWr(B $BWs(B $BWt(B $BWu(B $BWv(B $BWw(B $BWx(B $BWy(B $BWz(B $BW{(B $BW|(B $BW}(B $BW~(B + $BX!(B $BX"(B $BX#(B $BX$(B $BX%(B $BX&(B $BX'(B $BX((B $BX)(B $BX*(B $BX+(B $BX,(B $BX-(B $BX.(B $BX/(B +$BX0(B $BX1(B $BX2(B $BX3(B $BX4(B $BX5(B $BX6(B $BX7(B $BX8(B $BX9(B $BX:(B $BX;(B $BX<(B $BX=(B $BX>(B $BX?(B +$BX@(B $BXA(B $BXB(B $BXC(B $BXD(B $BXE(B $BXF(B $BXG(B $BXH(B $BXI(B $BXJ(B $BXK(B $BXL(B $BXM(B $BXN(B $BXO(B +$BXP(B $BXQ(B $BXR(B $BXS(B $BXT(B $BXU(B $BXV(B $BXW(B $BXX(B $BXY(B $BXZ(B $BX[(B $BX\(B $BX](B $BX^(B $BX_(B +$BX`(B $BXa(B $BXb(B $BXc(B $BXd(B $BXe(B $BXf(B $BXg(B $BXh(B $BXi(B $BXj(B $BXk(B $BXl(B $BXm(B $BXn(B $BXo(B +$BXp(B $BXq(B $BXr(B $BXs(B $BXt(B $BXu(B $BXv(B $BXw(B $BXx(B $BXy(B $BXz(B $BX{(B $BX|(B $BX}(B $BX~(B + $BY!(B $BY"(B $BY#(B $BY$(B $BY%(B $BY&(B $BY'(B $BY((B $BY)(B $BY*(B $BY+(B $BY,(B $BY-(B $BY.(B $BY/(B +$BY0(B $BY1(B $BY2(B $BY3(B $BY4(B $BY5(B $BY6(B $BY7(B $BY8(B $BY9(B $BY:(B $BY;(B $BY<(B $BY=(B $BY>(B $BY?(B +$BY@(B $BYA(B $BYB(B $BYC(B $BYD(B $BYE(B $BYF(B $BYG(B $BYH(B $BYI(B $BYJ(B $BYK(B $BYL(B $BYM(B $BYN(B $BYO(B +$BYP(B $BYQ(B $BYR(B $BYS(B $BYT(B $BYU(B $BYV(B $BYW(B $BYX(B $BYY(B $BYZ(B $BY[(B $BY\(B $BY](B $BY^(B $BY_(B +$BY`(B $BYa(B $BYb(B $BYc(B $BYd(B $BYe(B $BYf(B $BYg(B $BYh(B $BYi(B $BYj(B $BYk(B $BYl(B $BYm(B $BYn(B $BYo(B +$BYp(B $BYq(B $BYr(B $BYs(B $BYt(B $BYu(B $BYv(B $BYw(B $BYx(B $BYy(B $BYz(B $BY{(B $BY|(B $BY}(B $BY~(B + $BZ!(B $BZ"(B $BZ#(B $BZ$(B $BZ%(B $BZ&(B $BZ'(B $BZ((B $BZ)(B $BZ*(B $BZ+(B $BZ,(B $BZ-(B $BZ.(B $BZ/(B +$BZ0(B $BZ1(B $BZ2(B $BZ3(B $BZ4(B $BZ5(B $BZ6(B $BZ7(B $BZ8(B $BZ9(B $BZ:(B $BZ;(B $BZ<(B $BZ=(B $BZ>(B $BZ?(B +$BZ@(B $BZA(B $BZB(B $BZC(B $BZD(B $BZE(B $BZF(B $BZG(B $BZH(B $BZI(B $BZJ(B $BZK(B $BZL(B $BZM(B $BZN(B $BZO(B +$BZP(B $BZQ(B $BZR(B $BZS(B $BZT(B $BZU(B $BZV(B $BZW(B $BZX(B $BZY(B $BZZ(B $BZ[(B $BZ\(B $BZ](B $BZ^(B $BZ_(B +$BZ`(B $BZa(B $BZb(B $BZc(B $BZd(B $BZe(B $BZf(B $BZg(B $BZh(B $BZi(B $BZj(B $BZk(B $BZl(B $BZm(B $BZn(B $BZo(B +$BZp(B $BZq(B $BZr(B $BZs(B $BZt(B $BZu(B $BZv(B $BZw(B $BZx(B $BZy(B $BZz(B $BZ{(B $BZ|(B $BZ}(B $BZ~(B + $B[!(B $B["(B $B[#(B $B[$(B $B[%(B $B[&(B $B['(B $B[((B $B[)(B $B[*(B $B[+(B $B[,(B $B[-(B $B[.(B $B[/(B +$B[0(B $B[1(B $B[2(B $B[3(B $B[4(B $B[5(B $B[6(B $B[7(B $B[8(B $B[9(B $B[:(B $B[;(B $B[<(B $B[=(B $B[>(B $B[?(B +$B[@(B $B[A(B $B[B(B $B[C(B $B[D(B $B[E(B $B[F(B $B[G(B $B[H(B $B[I(B $B[J(B $B[K(B $B[L(B $B[M(B $B[N(B $B[O(B +$B[P(B $B[Q(B $B[R(B $B[S(B $B[T(B $B[U(B $B[V(B $B[W(B $B[X(B $B[Y(B $B[Z(B $B[[(B $B[\(B $B[](B $B[^(B $B[_(B +$B[`(B $B[a(B $B[b(B $B[c(B $B[d(B $B[e(B $B[f(B $B[g(B $B[h(B $B[i(B $B[j(B $B[k(B $B[l(B $B[m(B $B[n(B $B[o(B +$B[p(B $B[q(B $B[r(B $B[s(B $B[t(B $B[u(B $B[v(B $B[w(B $B[x(B $B[y(B $B[z(B $B[{(B $B[|(B $B[}(B $B[~(B + $B\!(B $B\"(B $B\#(B $B\$(B $B\%(B $B\&(B $B\'(B $B\((B $B\)(B $B\*(B $B\+(B $B\,(B $B\-(B $B\.(B $B\/(B +$B\0(B $B\1(B $B\2(B $B\3(B $B\4(B $B\5(B $B\6(B $B\7(B $B\8(B $B\9(B $B\:(B $B\;(B $B\<(B $B\=(B $B\>(B $B\?(B +$B\@(B $B\A(B $B\B(B $B\C(B $B\D(B $B\E(B $B\F(B $B\G(B $B\H(B $B\I(B $B\J(B $B\K(B $B\L(B $B\M(B $B\N(B $B\O(B +$B\P(B $B\Q(B $B\R(B $B\S(B $B\T(B $B\U(B $B\V(B $B\W(B $B\X(B $B\Y(B $B\Z(B $B\[(B $B\\(B $B\](B $B\^(B $B\_(B +$B\`(B $B\a(B $B\b(B $B\c(B $B\d(B $B\e(B $B\f(B $B\g(B $B\h(B $B\i(B $B\j(B $B\k(B $B\l(B $B\m(B $B\n(B $B\o(B +$B\p(B $B\q(B $B\r(B $B\s(B $B\t(B $B\u(B $B\v(B $B\w(B $B\x(B $B\y(B $B\z(B $B\{(B $B\|(B $B\}(B $B\~(B + $B]!(B $B]"(B $B]#(B $B]$(B $B]%(B $B]&(B $B]'(B $B]((B $B])(B $B]*(B $B]+(B $B],(B $B]-(B $B].(B $B]/(B +$B]0(B $B]1(B $B]2(B $B]3(B $B]4(B $B]5(B $B]6(B $B]7(B $B]8(B $B]9(B $B]:(B $B];(B $B]<(B $B]=(B $B]>(B $B]?(B +$B]@(B $B]A(B $B]B(B $B]C(B $B]D(B $B]E(B $B]F(B $B]G(B $B]H(B $B]I(B $B]J(B $B]K(B $B]L(B $B]M(B $B]N(B $B]O(B +$B]P(B $B]Q(B $B]R(B $B]S(B $B]T(B $B]U(B $B]V(B $B]W(B $B]X(B $B]Y(B $B]Z(B $B][(B $B]\(B $B]](B $B]^(B $B]_(B +$B]`(B $B]a(B $B]b(B $B]c(B $B]d(B $B]e(B $B]f(B $B]g(B $B]h(B $B]i(B $B]j(B $B]k(B $B]l(B $B]m(B $B]n(B $B]o(B +$B]p(B $B]q(B $B]r(B $B]s(B $B]t(B $B]u(B $B]v(B $B]w(B $B]x(B $B]y(B $B]z(B $B]{(B $B]|(B $B]}(B $B]~(B + $B^!(B $B^"(B $B^#(B $B^$(B $B^%(B $B^&(B $B^'(B $B^((B $B^)(B $B^*(B $B^+(B $B^,(B $B^-(B $B^.(B $B^/(B +$B^0(B $B^1(B $B^2(B $B^3(B $B^4(B $B^5(B $B^6(B $B^7(B $B^8(B $B^9(B $B^:(B $B^;(B $B^<(B $B^=(B $B^>(B $B^?(B +$B^@(B $B^A(B $B^B(B $B^C(B $B^D(B $B^E(B $B^F(B $B^G(B $B^H(B $B^I(B $B^J(B $B^K(B $B^L(B $B^M(B $B^N(B $B^O(B +$B^P(B $B^Q(B $B^R(B $B^S(B $B^T(B $B^U(B $B^V(B $B^W(B $B^X(B $B^Y(B $B^Z(B $B^[(B $B^\(B $B^](B $B^^(B $B^_(B +$B^`(B $B^a(B $B^b(B $B^c(B $B^d(B $B^e(B $B^f(B $B^g(B $B^h(B $B^i(B $B^j(B $B^k(B $B^l(B $B^m(B $B^n(B $B^o(B +$B^p(B $B^q(B $B^r(B $B^s(B $B^t(B $B^u(B $B^v(B $B^w(B $B^x(B $B^y(B $B^z(B $B^{(B $B^|(B $B^}(B $B^~(B + $B_!(B $B_"(B $B_#(B $B_$(B $B_%(B $B_&(B $B_'(B $B_((B $B_)(B $B_*(B $B_+(B $B_,(B $B_-(B $B_.(B $B_/(B +$B_0(B $B_1(B $B_2(B $B_3(B $B_4(B $B_5(B $B_6(B $B_7(B $B_8(B $B_9(B $B_:(B $B_;(B $B_<(B $B_=(B $B_>(B $B_?(B +$B_@(B $B_A(B $B_B(B $B_C(B $B_D(B $B_E(B $B_F(B $B_G(B $B_H(B $B_I(B $B_J(B $B_K(B $B_L(B $B_M(B $B_N(B $B_O(B +$B_P(B $B_Q(B $B_R(B $B_S(B $B_T(B $B_U(B $B_V(B $B_W(B $B_X(B $B_Y(B $B_Z(B $B_[(B $B_\(B $B_](B $B_^(B $B__(B +$B_`(B $B_a(B $B_b(B $B_c(B $B_d(B $B_e(B $B_f(B $B_g(B $B_h(B $B_i(B $B_j(B $B_k(B $B_l(B $B_m(B $B_n(B $B_o(B +$B_p(B $B_q(B $B_r(B $B_s(B $B_t(B $B_u(B $B_v(B $B_w(B $B_x(B $B_y(B $B_z(B $B_{(B $B_|(B $B_}(B $B_~(B + $B`!(B $B`"(B $B`#(B $B`$(B $B`%(B $B`&(B $B`'(B $B`((B $B`)(B $B`*(B $B`+(B $B`,(B $B`-(B $B`.(B $B`/(B +$B`0(B $B`1(B $B`2(B $B`3(B $B`4(B $B`5(B $B`6(B $B`7(B $B`8(B $B`9(B $B`:(B $B`;(B $B`<(B $B`=(B $B`>(B $B`?(B +$B`@(B $B`A(B $B`B(B $B`C(B $B`D(B $B`E(B $B`F(B $B`G(B $B`H(B $B`I(B $B`J(B $B`K(B $B`L(B $B`M(B $B`N(B $B`O(B +$B`P(B $B`Q(B $B`R(B $B`S(B $B`T(B $B`U(B $B`V(B $B`W(B $B`X(B $B`Y(B $B`Z(B $B`[(B $B`\(B $B`](B $B`^(B $B`_(B +$B``(B $B`a(B $B`b(B $B`c(B $B`d(B $B`e(B $B`f(B $B`g(B $B`h(B $B`i(B $B`j(B $B`k(B $B`l(B $B`m(B $B`n(B $B`o(B +$B`p(B $B`q(B $B`r(B $B`s(B $B`t(B $B`u(B $B`v(B $B`w(B $B`x(B $B`y(B $B`z(B $B`{(B $B`|(B $B`}(B $B`~(B + $Ba!(B $Ba"(B $Ba#(B $Ba$(B $Ba%(B $Ba&(B $Ba'(B $Ba((B $Ba)(B $Ba*(B $Ba+(B $Ba,(B $Ba-(B $Ba.(B $Ba/(B +$Ba0(B $Ba1(B $Ba2(B $Ba3(B $Ba4(B $Ba5(B $Ba6(B $Ba7(B $Ba8(B $Ba9(B $Ba:(B $Ba;(B $Ba<(B $Ba=(B $Ba>(B $Ba?(B +$Ba@(B $BaA(B $BaB(B $BaC(B $BaD(B $BaE(B $BaF(B $BaG(B $BaH(B $BaI(B $BaJ(B $BaK(B $BaL(B $BaM(B $BaN(B $BaO(B +$BaP(B $BaQ(B $BaR(B $BaS(B $BaT(B $BaU(B $BaV(B $BaW(B $BaX(B $BaY(B $BaZ(B $Ba[(B $Ba\(B $Ba](B $Ba^(B $Ba_(B +$Ba`(B $Baa(B $Bab(B $Bac(B $Bad(B $Bae(B $Baf(B $Bag(B $Bah(B $Bai(B $Baj(B $Bak(B $Bal(B $Bam(B $Ban(B $Bao(B +$Bap(B $Baq(B $Bar(B $Bas(B $Bat(B $Bau(B $Bav(B $Baw(B $Bax(B $Bay(B $Baz(B $Ba{(B $Ba|(B $Ba}(B $Ba~(B + $Bb!(B $Bb"(B $Bb#(B $Bb$(B $Bb%(B $Bb&(B $Bb'(B $Bb((B $Bb)(B $Bb*(B $Bb+(B $Bb,(B $Bb-(B $Bb.(B $Bb/(B +$Bb0(B $Bb1(B $Bb2(B $Bb3(B $Bb4(B $Bb5(B $Bb6(B $Bb7(B $Bb8(B $Bb9(B $Bb:(B $Bb;(B $Bb<(B $Bb=(B $Bb>(B $Bb?(B +$Bb@(B $BbA(B $BbB(B $BbC(B $BbD(B $BbE(B $BbF(B $BbG(B $BbH(B $BbI(B $BbJ(B $BbK(B $BbL(B $BbM(B $BbN(B $BbO(B +$BbP(B $BbQ(B $BbR(B $BbS(B $BbT(B $BbU(B $BbV(B $BbW(B $BbX(B $BbY(B $BbZ(B $Bb[(B $Bb\(B $Bb](B $Bb^(B $Bb_(B +$Bb`(B $Bba(B $Bbb(B $Bbc(B $Bbd(B $Bbe(B $Bbf(B $Bbg(B $Bbh(B $Bbi(B $Bbj(B $Bbk(B $Bbl(B $Bbm(B $Bbn(B $Bbo(B +$Bbp(B $Bbq(B $Bbr(B $Bbs(B $Bbt(B $Bbu(B $Bbv(B $Bbw(B $Bbx(B $Bby(B $Bbz(B $Bb{(B $Bb|(B $Bb}(B $Bb~(B + $Bc!(B $Bc"(B $Bc#(B $Bc$(B $Bc%(B $Bc&(B $Bc'(B $Bc((B $Bc)(B $Bc*(B $Bc+(B $Bc,(B $Bc-(B $Bc.(B $Bc/(B +$Bc0(B $Bc1(B $Bc2(B $Bc3(B $Bc4(B $Bc5(B $Bc6(B $Bc7(B $Bc8(B $Bc9(B $Bc:(B $Bc;(B $Bc<(B $Bc=(B $Bc>(B $Bc?(B +$Bc@(B $BcA(B $BcB(B $BcC(B $BcD(B $BcE(B $BcF(B $BcG(B $BcH(B $BcI(B $BcJ(B $BcK(B $BcL(B $BcM(B $BcN(B $BcO(B +$BcP(B $BcQ(B $BcR(B $BcS(B $BcT(B $BcU(B $BcV(B $BcW(B $BcX(B $BcY(B $BcZ(B $Bc[(B $Bc\(B $Bc](B $Bc^(B $Bc_(B +$Bc`(B $Bca(B $Bcb(B $Bcc(B $Bcd(B $Bce(B $Bcf(B $Bcg(B $Bch(B $Bci(B $Bcj(B $Bck(B $Bcl(B $Bcm(B $Bcn(B $Bco(B +$Bcp(B $Bcq(B $Bcr(B $Bcs(B $Bct(B $Bcu(B $Bcv(B $Bcw(B $Bcx(B $Bcy(B $Bcz(B $Bc{(B $Bc|(B $Bc}(B $Bc~(B + $Bd!(B $Bd"(B $Bd#(B $Bd$(B $Bd%(B $Bd&(B $Bd'(B $Bd((B $Bd)(B $Bd*(B $Bd+(B $Bd,(B $Bd-(B $Bd.(B $Bd/(B +$Bd0(B $Bd1(B $Bd2(B $Bd3(B $Bd4(B $Bd5(B $Bd6(B $Bd7(B $Bd8(B $Bd9(B $Bd:(B $Bd;(B $Bd<(B $Bd=(B $Bd>(B $Bd?(B +$Bd@(B $BdA(B $BdB(B $BdC(B $BdD(B $BdE(B $BdF(B $BdG(B $BdH(B $BdI(B $BdJ(B $BdK(B $BdL(B $BdM(B $BdN(B $BdO(B +$BdP(B $BdQ(B $BdR(B $BdS(B $BdT(B $BdU(B $BdV(B $BdW(B $BdX(B $BdY(B $BdZ(B $Bd[(B $Bd\(B $Bd](B $Bd^(B $Bd_(B +$Bd`(B $Bda(B $Bdb(B $Bdc(B $Bdd(B $Bde(B $Bdf(B $Bdg(B $Bdh(B $Bdi(B $Bdj(B $Bdk(B $Bdl(B $Bdm(B $Bdn(B $Bdo(B +$Bdp(B $Bdq(B $Bdr(B $Bds(B $Bdt(B $Bdu(B $Bdv(B $Bdw(B $Bdx(B $Bdy(B $Bdz(B $Bd{(B $Bd|(B $Bd}(B $Bd~(B + $Be!(B $Be"(B $Be#(B $Be$(B $Be%(B $Be&(B $Be'(B $Be((B $Be)(B $Be*(B $Be+(B $Be,(B $Be-(B $Be.(B $Be/(B +$Be0(B $Be1(B $Be2(B $Be3(B $Be4(B $Be5(B $Be6(B $Be7(B $Be8(B $Be9(B $Be:(B $Be;(B $Be<(B $Be=(B $Be>(B $Be?(B +$Be@(B $BeA(B $BeB(B $BeC(B $BeD(B $BeE(B $BeF(B $BeG(B $BeH(B $BeI(B $BeJ(B $BeK(B $BeL(B $BeM(B $BeN(B $BeO(B +$BeP(B $BeQ(B $BeR(B $BeS(B $BeT(B $BeU(B $BeV(B $BeW(B $BeX(B $BeY(B $BeZ(B $Be[(B $Be\(B $Be](B $Be^(B $Be_(B +$Be`(B $Bea(B $Beb(B $Bec(B $Bed(B $Bee(B $Bef(B $Beg(B $Beh(B $Bei(B $Bej(B $Bek(B $Bel(B $Bem(B $Ben(B $Beo(B +$Bep(B $Beq(B $Ber(B $Bes(B $Bet(B $Beu(B $Bev(B $Bew(B $Bex(B $Bey(B $Bez(B $Be{(B $Be|(B $Be}(B $Be~(B + $Bf!(B $Bf"(B $Bf#(B $Bf$(B $Bf%(B $Bf&(B $Bf'(B $Bf((B $Bf)(B $Bf*(B $Bf+(B $Bf,(B $Bf-(B $Bf.(B $Bf/(B +$Bf0(B $Bf1(B $Bf2(B $Bf3(B $Bf4(B $Bf5(B $Bf6(B $Bf7(B $Bf8(B $Bf9(B $Bf:(B $Bf;(B $Bf<(B $Bf=(B $Bf>(B $Bf?(B +$Bf@(B $BfA(B $BfB(B $BfC(B $BfD(B $BfE(B $BfF(B $BfG(B $BfH(B $BfI(B $BfJ(B $BfK(B $BfL(B $BfM(B $BfN(B $BfO(B +$BfP(B $BfQ(B $BfR(B $BfS(B $BfT(B $BfU(B $BfV(B $BfW(B $BfX(B $BfY(B $BfZ(B $Bf[(B $Bf\(B $Bf](B $Bf^(B $Bf_(B +$Bf`(B $Bfa(B $Bfb(B $Bfc(B $Bfd(B $Bfe(B $Bff(B $Bfg(B $Bfh(B $Bfi(B $Bfj(B $Bfk(B $Bfl(B $Bfm(B $Bfn(B $Bfo(B +$Bfp(B $Bfq(B $Bfr(B $Bfs(B $Bft(B $Bfu(B $Bfv(B $Bfw(B $Bfx(B $Bfy(B $Bfz(B $Bf{(B $Bf|(B $Bf}(B $Bf~(B + $Bg!(B $Bg"(B $Bg#(B $Bg$(B $Bg%(B $Bg&(B $Bg'(B $Bg((B $Bg)(B $Bg*(B $Bg+(B $Bg,(B $Bg-(B $Bg.(B $Bg/(B +$Bg0(B $Bg1(B $Bg2(B $Bg3(B $Bg4(B $Bg5(B $Bg6(B $Bg7(B $Bg8(B $Bg9(B $Bg:(B $Bg;(B $Bg<(B $Bg=(B $Bg>(B $Bg?(B +$Bg@(B $BgA(B $BgB(B $BgC(B $BgD(B $BgE(B $BgF(B $BgG(B $BgH(B $BgI(B $BgJ(B $BgK(B $BgL(B $BgM(B $BgN(B $BgO(B +$BgP(B $BgQ(B $BgR(B $BgS(B $BgT(B $BgU(B $BgV(B $BgW(B $BgX(B $BgY(B $BgZ(B $Bg[(B $Bg\(B $Bg](B $Bg^(B $Bg_(B +$Bg`(B $Bga(B $Bgb(B $Bgc(B $Bgd(B $Bge(B $Bgf(B $Bgg(B $Bgh(B $Bgi(B $Bgj(B $Bgk(B $Bgl(B $Bgm(B $Bgn(B $Bgo(B +$Bgp(B $Bgq(B $Bgr(B $Bgs(B $Bgt(B $Bgu(B $Bgv(B $Bgw(B $Bgx(B $Bgy(B $Bgz(B $Bg{(B $Bg|(B $Bg}(B $Bg~(B + $Bh!(B $Bh"(B $Bh#(B $Bh$(B $Bh%(B $Bh&(B $Bh'(B $Bh((B $Bh)(B $Bh*(B $Bh+(B $Bh,(B $Bh-(B $Bh.(B $Bh/(B +$Bh0(B $Bh1(B $Bh2(B $Bh3(B $Bh4(B $Bh5(B $Bh6(B $Bh7(B $Bh8(B $Bh9(B $Bh:(B $Bh;(B $Bh<(B $Bh=(B $Bh>(B $Bh?(B +$Bh@(B $BhA(B $BhB(B $BhC(B $BhD(B $BhE(B $BhF(B $BhG(B $BhH(B $BhI(B $BhJ(B $BhK(B $BhL(B $BhM(B $BhN(B $BhO(B +$BhP(B $BhQ(B $BhR(B $BhS(B $BhT(B $BhU(B $BhV(B $BhW(B $BhX(B $BhY(B $BhZ(B $Bh[(B $Bh\(B $Bh](B $Bh^(B $Bh_(B +$Bh`(B $Bha(B $Bhb(B $Bhc(B $Bhd(B $Bhe(B $Bhf(B $Bhg(B $Bhh(B $Bhi(B $Bhj(B $Bhk(B $Bhl(B $Bhm(B $Bhn(B $Bho(B +$Bhp(B $Bhq(B $Bhr(B $Bhs(B $Bht(B $Bhu(B $Bhv(B $Bhw(B $Bhx(B $Bhy(B $Bhz(B $Bh{(B $Bh|(B $Bh}(B $Bh~(B + $Bi!(B $Bi"(B $Bi#(B $Bi$(B $Bi%(B $Bi&(B $Bi'(B $Bi((B $Bi)(B $Bi*(B $Bi+(B $Bi,(B $Bi-(B $Bi.(B $Bi/(B +$Bi0(B $Bi1(B $Bi2(B $Bi3(B $Bi4(B $Bi5(B $Bi6(B $Bi7(B $Bi8(B $Bi9(B $Bi:(B $Bi;(B $Bi<(B $Bi=(B $Bi>(B $Bi?(B +$Bi@(B $BiA(B $BiB(B $BiC(B $BiD(B $BiE(B $BiF(B $BiG(B $BiH(B $BiI(B $BiJ(B $BiK(B $BiL(B $BiM(B $BiN(B $BiO(B +$BiP(B $BiQ(B $BiR(B $BiS(B $BiT(B $BiU(B $BiV(B $BiW(B $BiX(B $BiY(B $BiZ(B $Bi[(B $Bi\(B $Bi](B $Bi^(B $Bi_(B +$Bi`(B $Bia(B $Bib(B $Bic(B $Bid(B $Bie(B $Bif(B $Big(B $Bih(B $Bii(B $Bij(B $Bik(B $Bil(B $Bim(B $Bin(B $Bio(B +$Bip(B $Biq(B $Bir(B $Bis(B $Bit(B $Biu(B $Biv(B $Biw(B $Bix(B $Biy(B $Biz(B $Bi{(B $Bi|(B $Bi}(B $Bi~(B + $Bj!(B $Bj"(B $Bj#(B $Bj$(B $Bj%(B $Bj&(B $Bj'(B $Bj((B $Bj)(B $Bj*(B $Bj+(B $Bj,(B $Bj-(B $Bj.(B $Bj/(B +$Bj0(B $Bj1(B $Bj2(B $Bj3(B $Bj4(B $Bj5(B $Bj6(B $Bj7(B $Bj8(B $Bj9(B $Bj:(B $Bj;(B $Bj<(B $Bj=(B $Bj>(B $Bj?(B +$Bj@(B $BjA(B $BjB(B $BjC(B $BjD(B $BjE(B $BjF(B $BjG(B $BjH(B $BjI(B $BjJ(B $BjK(B $BjL(B $BjM(B $BjN(B $BjO(B +$BjP(B $BjQ(B $BjR(B $BjS(B $BjT(B $BjU(B $BjV(B $BjW(B $BjX(B $BjY(B $BjZ(B $Bj[(B $Bj\(B $Bj](B $Bj^(B $Bj_(B +$Bj`(B $Bja(B $Bjb(B $Bjc(B $Bjd(B $Bje(B $Bjf(B $Bjg(B $Bjh(B $Bji(B $Bjj(B $Bjk(B $Bjl(B $Bjm(B $Bjn(B $Bjo(B +$Bjp(B $Bjq(B $Bjr(B $Bjs(B $Bjt(B $Bju(B $Bjv(B $Bjw(B $Bjx(B $Bjy(B $Bjz(B $Bj{(B $Bj|(B $Bj}(B $Bj~(B + $Bk!(B $Bk"(B $Bk#(B $Bk$(B $Bk%(B $Bk&(B $Bk'(B $Bk((B $Bk)(B $Bk*(B $Bk+(B $Bk,(B $Bk-(B $Bk.(B $Bk/(B +$Bk0(B $Bk1(B $Bk2(B $Bk3(B $Bk4(B $Bk5(B $Bk6(B $Bk7(B $Bk8(B $Bk9(B $Bk:(B $Bk;(B $Bk<(B $Bk=(B $Bk>(B $Bk?(B +$Bk@(B $BkA(B $BkB(B $BkC(B $BkD(B $BkE(B $BkF(B $BkG(B $BkH(B $BkI(B $BkJ(B $BkK(B $BkL(B $BkM(B $BkN(B $BkO(B +$BkP(B $BkQ(B $BkR(B $BkS(B $BkT(B $BkU(B $BkV(B $BkW(B $BkX(B $BkY(B $BkZ(B $Bk[(B $Bk\(B $Bk](B $Bk^(B $Bk_(B +$Bk`(B $Bka(B $Bkb(B $Bkc(B $Bkd(B $Bke(B $Bkf(B $Bkg(B $Bkh(B $Bki(B $Bkj(B $Bkk(B $Bkl(B $Bkm(B $Bkn(B $Bko(B +$Bkp(B $Bkq(B $Bkr(B $Bks(B $Bkt(B $Bku(B $Bkv(B $Bkw(B $Bkx(B $Bky(B $Bkz(B $Bk{(B $Bk|(B $Bk}(B $Bk~(B + $Bl!(B $Bl"(B $Bl#(B $Bl$(B $Bl%(B $Bl&(B $Bl'(B $Bl((B $Bl)(B $Bl*(B $Bl+(B $Bl,(B $Bl-(B $Bl.(B $Bl/(B +$Bl0(B $Bl1(B $Bl2(B $Bl3(B $Bl4(B $Bl5(B $Bl6(B $Bl7(B $Bl8(B $Bl9(B $Bl:(B $Bl;(B $Bl<(B $Bl=(B $Bl>(B $Bl?(B +$Bl@(B $BlA(B $BlB(B $BlC(B $BlD(B $BlE(B $BlF(B $BlG(B $BlH(B $BlI(B $BlJ(B $BlK(B $BlL(B $BlM(B $BlN(B $BlO(B +$BlP(B $BlQ(B $BlR(B $BlS(B $BlT(B $BlU(B $BlV(B $BlW(B $BlX(B $BlY(B $BlZ(B $Bl[(B $Bl\(B $Bl](B $Bl^(B $Bl_(B +$Bl`(B $Bla(B $Blb(B $Blc(B $Bld(B $Ble(B $Blf(B $Blg(B $Blh(B $Bli(B $Blj(B $Blk(B $Bll(B $Blm(B $Bln(B $Blo(B +$Blp(B $Blq(B $Blr(B $Bls(B $Blt(B $Blu(B $Blv(B $Blw(B $Blx(B $Bly(B $Blz(B $Bl{(B $Bl|(B $Bl}(B $Bl~(B + $Bm!(B $Bm"(B $Bm#(B $Bm$(B $Bm%(B $Bm&(B $Bm'(B $Bm((B $Bm)(B $Bm*(B $Bm+(B $Bm,(B $Bm-(B $Bm.(B $Bm/(B +$Bm0(B $Bm1(B $Bm2(B $Bm3(B $Bm4(B $Bm5(B $Bm6(B $Bm7(B $Bm8(B $Bm9(B $Bm:(B $Bm;(B $Bm<(B $Bm=(B $Bm>(B $Bm?(B +$Bm@(B $BmA(B $BmB(B $BmC(B $BmD(B $BmE(B $BmF(B $BmG(B $BmH(B $BmI(B $BmJ(B $BmK(B $BmL(B $BmM(B $BmN(B $BmO(B +$BmP(B $BmQ(B $BmR(B $BmS(B $BmT(B $BmU(B $BmV(B $BmW(B $BmX(B $BmY(B $BmZ(B $Bm[(B $Bm\(B $Bm](B $Bm^(B $Bm_(B +$Bm`(B $Bma(B $Bmb(B $Bmc(B $Bmd(B $Bme(B $Bmf(B $Bmg(B $Bmh(B $Bmi(B $Bmj(B $Bmk(B $Bml(B $Bmm(B $Bmn(B $Bmo(B +$Bmp(B $Bmq(B $Bmr(B $Bms(B $Bmt(B $Bmu(B $Bmv(B $Bmw(B $Bmx(B $Bmy(B $Bmz(B $Bm{(B $Bm|(B $Bm}(B $Bm~(B + $Bn!(B $Bn"(B $Bn#(B $Bn$(B $Bn%(B $Bn&(B $Bn'(B $Bn((B $Bn)(B $Bn*(B $Bn+(B $Bn,(B $Bn-(B $Bn.(B $Bn/(B +$Bn0(B $Bn1(B $Bn2(B $Bn3(B $Bn4(B $Bn5(B $Bn6(B $Bn7(B $Bn8(B $Bn9(B $Bn:(B $Bn;(B $Bn<(B $Bn=(B $Bn>(B $Bn?(B +$Bn@(B $BnA(B $BnB(B $BnC(B $BnD(B $BnE(B $BnF(B $BnG(B $BnH(B $BnI(B $BnJ(B $BnK(B $BnL(B $BnM(B $BnN(B $BnO(B +$BnP(B $BnQ(B $BnR(B $BnS(B $BnT(B $BnU(B $BnV(B $BnW(B $BnX(B $BnY(B $BnZ(B $Bn[(B $Bn\(B $Bn](B $Bn^(B $Bn_(B +$Bn`(B $Bna(B $Bnb(B $Bnc(B $Bnd(B $Bne(B $Bnf(B $Bng(B $Bnh(B $Bni(B $Bnj(B $Bnk(B $Bnl(B $Bnm(B $Bnn(B $Bno(B +$Bnp(B $Bnq(B $Bnr(B $Bns(B $Bnt(B $Bnu(B $Bnv(B $Bnw(B $Bnx(B $Bny(B $Bnz(B $Bn{(B $Bn|(B $Bn}(B $Bn~(B + $Bo!(B $Bo"(B $Bo#(B $Bo$(B $Bo%(B $Bo&(B $Bo'(B $Bo((B $Bo)(B $Bo*(B $Bo+(B $Bo,(B $Bo-(B $Bo.(B $Bo/(B +$Bo0(B $Bo1(B $Bo2(B $Bo3(B $Bo4(B $Bo5(B $Bo6(B $Bo7(B $Bo8(B $Bo9(B $Bo:(B $Bo;(B $Bo<(B $Bo=(B $Bo>(B $Bo?(B +$Bo@(B $BoA(B $BoB(B $BoC(B $BoD(B $BoE(B $BoF(B $BoG(B $BoH(B $BoI(B $BoJ(B $BoK(B $BoL(B $BoM(B $BoN(B $BoO(B +$BoP(B $BoQ(B $BoR(B $BoS(B $BoT(B $BoU(B $BoV(B $BoW(B $BoX(B $BoY(B $BoZ(B $Bo[(B $Bo\(B $Bo](B $Bo^(B $Bo_(B +$Bo`(B $Boa(B $Bob(B $Boc(B $Bod(B $Boe(B $Bof(B $Bog(B $Boh(B $Boi(B $Boj(B $Bok(B $Bol(B $Bom(B $Bon(B $Boo(B +$Bop(B $Boq(B $Bor(B $Bos(B $Bot(B $Bou(B $Bov(B $Bow(B $Box(B $Boy(B $Boz(B $Bo{(B $Bo|(B $Bo}(B $Bo~(B + $Bp!(B $Bp"(B $Bp#(B $Bp$(B $Bp%(B $Bp&(B $Bp'(B $Bp((B $Bp)(B $Bp*(B $Bp+(B $Bp,(B $Bp-(B $Bp.(B $Bp/(B +$Bp0(B $Bp1(B $Bp2(B $Bp3(B $Bp4(B $Bp5(B $Bp6(B $Bp7(B $Bp8(B $Bp9(B $Bp:(B $Bp;(B $Bp<(B $Bp=(B $Bp>(B $Bp?(B +$Bp@(B $BpA(B $BpB(B $BpC(B $BpD(B $BpE(B $BpF(B $BpG(B $BpH(B $BpI(B $BpJ(B $BpK(B $BpL(B $BpM(B $BpN(B $BpO(B +$BpP(B $BpQ(B $BpR(B $BpS(B $BpT(B $BpU(B $BpV(B $BpW(B $BpX(B $BpY(B $BpZ(B $Bp[(B $Bp\(B $Bp](B $Bp^(B $Bp_(B +$Bp`(B $Bpa(B $Bpb(B $Bpc(B $Bpd(B $Bpe(B $Bpf(B $Bpg(B $Bph(B $Bpi(B $Bpj(B $Bpk(B $Bpl(B $Bpm(B $Bpn(B $Bpo(B +$Bpp(B $Bpq(B $Bpr(B $Bps(B $Bpt(B $Bpu(B $Bpv(B $Bpw(B $Bpx(B $Bpy(B $Bpz(B $Bp{(B $Bp|(B $Bp}(B $Bp~(B + $Bq!(B $Bq"(B $Bq#(B $Bq$(B $Bq%(B $Bq&(B $Bq'(B $Bq((B $Bq)(B $Bq*(B $Bq+(B $Bq,(B $Bq-(B $Bq.(B $Bq/(B +$Bq0(B $Bq1(B $Bq2(B $Bq3(B $Bq4(B $Bq5(B $Bq6(B $Bq7(B $Bq8(B $Bq9(B $Bq:(B $Bq;(B $Bq<(B $Bq=(B $Bq>(B $Bq?(B +$Bq@(B $BqA(B $BqB(B $BqC(B $BqD(B $BqE(B $BqF(B $BqG(B $BqH(B $BqI(B $BqJ(B $BqK(B $BqL(B $BqM(B $BqN(B $BqO(B +$BqP(B $BqQ(B $BqR(B $BqS(B $BqT(B $BqU(B $BqV(B $BqW(B $BqX(B $BqY(B $BqZ(B $Bq[(B $Bq\(B $Bq](B $Bq^(B $Bq_(B +$Bq`(B $Bqa(B $Bqb(B $Bqc(B $Bqd(B $Bqe(B $Bqf(B $Bqg(B $Bqh(B $Bqi(B $Bqj(B $Bqk(B $Bql(B $Bqm(B $Bqn(B $Bqo(B +$Bqp(B $Bqq(B $Bqr(B $Bqs(B $Bqt(B $Bqu(B $Bqv(B $Bqw(B $Bqx(B $Bqy(B $Bqz(B $Bq{(B $Bq|(B $Bq}(B $Bq~(B + $Br!(B $Br"(B $Br#(B $Br$(B $Br%(B $Br&(B $Br'(B $Br((B $Br)(B $Br*(B $Br+(B $Br,(B $Br-(B $Br.(B $Br/(B +$Br0(B $Br1(B $Br2(B $Br3(B $Br4(B $Br5(B $Br6(B $Br7(B $Br8(B $Br9(B $Br:(B $Br;(B $Br<(B $Br=(B $Br>(B $Br?(B +$Br@(B $BrA(B $BrB(B $BrC(B $BrD(B $BrE(B $BrF(B $BrG(B $BrH(B $BrI(B $BrJ(B $BrK(B $BrL(B $BrM(B $BrN(B $BrO(B +$BrP(B $BrQ(B $BrR(B $BrS(B $BrT(B $BrU(B $BrV(B $BrW(B $BrX(B $BrY(B $BrZ(B $Br[(B $Br\(B $Br](B $Br^(B $Br_(B +$Br`(B $Bra(B $Brb(B $Brc(B $Brd(B $Bre(B $Brf(B $Brg(B $Brh(B $Bri(B $Brj(B $Brk(B $Brl(B $Brm(B $Brn(B $Bro(B +$Brp(B $Brq(B $Brr(B $Brs(B $Brt(B $Bru(B $Brv(B $Brw(B $Brx(B $Bry(B $Brz(B $Br{(B $Br|(B $Br}(B $Br~(B + $Bs!(B $Bs"(B $Bs#(B $Bs$(B $Bs%(B $Bs&(B $Bs'(B $Bs((B $Bs)(B $Bs*(B $Bs+(B $Bs,(B $Bs-(B $Bs.(B $Bs/(B +$Bs0(B $Bs1(B $Bs2(B $Bs3(B $Bs4(B $Bs5(B $Bs6(B $Bs7(B $Bs8(B $Bs9(B $Bs:(B $Bs;(B $Bs<(B $Bs=(B $Bs>(B $Bs?(B +$Bs@(B $BsA(B $BsB(B $BsC(B $BsD(B $BsE(B $BsF(B $BsG(B $BsH(B $BsI(B $BsJ(B $BsK(B $BsL(B $BsM(B $BsN(B $BsO(B +$BsP(B $BsQ(B $BsR(B $BsS(B $BsT(B $BsU(B $BsV(B $BsW(B $BsX(B $BsY(B $BsZ(B $Bs[(B $Bs\(B $Bs](B $Bs^(B $Bs_(B +$Bs`(B $Bsa(B $Bsb(B $Bsc(B $Bsd(B $Bse(B $Bsf(B $Bsg(B $Bsh(B $Bsi(B $Bsj(B $Bsk(B $Bsl(B $Bsm(B $Bsn(B $Bso(B +$Bsp(B $Bsq(B $Bsr(B $Bss(B $Bst(B $Bsu(B $Bsv(B $Bsw(B $Bsx(B $Bsy(B $Bsz(B $Bs{(B $Bs|(B $Bs}(B $Bs~(B + $Bt!(B $Bt"(B $Bt#(B $Bt$(B $Bt%(B $Bt&(B + $Bu!(B $Bu"(B $Bu#(B $Bu$(B $Bu%(B $Bu&(B $Bu'(B $Bu((B $Bu)(B $Bu*(B $Bu+(B $Bu,(B $Bu-(B $Bu.(B $Bu/(B +$Bu0(B $Bu1(B $Bu2(B $Bu3(B $Bu4(B $Bu5(B $Bu6(B $Bu7(B $Bu8(B $Bu9(B $Bu:(B $Bu;(B $Bu<(B $Bu=(B $Bu>(B $Bu?(B +$Bu@(B $BuA(B $BuB(B $BuC(B $BuD(B $BuE(B $BuF(B $BuG(B $BuH(B $BuI(B $BuJ(B $BuK(B $BuL(B $BuM(B $BuN(B $BuO(B +$BuP(B $BuQ(B $BuR(B $BuS(B $BuT(B $BuU(B $BuV(B $BuW(B $BuX(B $BuY(B $BuZ(B $Bu[(B $Bu\(B $Bu](B $Bu^(B $Bu_(B +$Bu`(B $Bua(B $Bub(B $Buc(B $Bud(B $Bue(B $Buf(B $Bug(B $Buh(B $Bui(B $Buj(B $Buk(B $Bul(B $Bum(B $Bun(B $Buo(B +$Bup(B $Buq(B $Bur(B $Bus(B $But(B $Buu(B $Buv(B $Buw(B $Bux(B $Buy(B $Buz(B $Bu{(B $Bu|(B $Bu}(B $Bu~(B + $Bv!(B $Bv"(B $Bv#(B $Bv$(B $Bv%(B $Bv&(B $Bv'(B $Bv((B $Bv)(B $Bv*(B $Bv+(B $Bv,(B $Bv-(B $Bv.(B $Bv/(B +$Bv0(B $Bv1(B $Bv2(B $Bv3(B $Bv4(B $Bv5(B $Bv6(B $Bv7(B $Bv8(B $Bv9(B $Bv:(B $Bv;(B $Bv<(B $Bv=(B $Bv>(B $Bv?(B +$Bv@(B $BvA(B $BvB(B $BvC(B $BvD(B $BvE(B $BvF(B $BvG(B $BvH(B $BvI(B $BvJ(B $BvK(B $BvL(B $BvM(B $BvN(B $BvO(B +$BvP(B $BvQ(B $BvR(B $BvS(B $BvT(B $BvU(B $BvV(B $BvW(B $BvX(B $BvY(B $BvZ(B $Bv[(B $Bv\(B $Bv](B $Bv^(B $Bv_(B +$Bv`(B $Bva(B $Bvb(B $Bvc(B $Bvd(B $Bve(B $Bvf(B $Bvg(B $Bvh(B $Bvi(B $Bvj(B $Bvk(B $Bvl(B $Bvm(B $Bvn(B $Bvo(B +$Bvp(B $Bvq(B $Bvr(B $Bvs(B $Bvt(B $Bvu(B $Bvv(B $Bvw(B $Bvx(B $Bvy(B $Bvz(B $Bv{(B $Bv|(B $Bv}(B $Bv~(B + $Bw!(B $Bw"(B $Bw#(B $Bw$(B $Bw%(B $Bw&(B $Bw'(B $Bw((B $Bw)(B $Bw*(B $Bw+(B $Bw,(B $Bw-(B $Bw.(B $Bw/(B +$Bw0(B $Bw1(B $Bw2(B $Bw3(B $Bw4(B $Bw5(B $Bw6(B $Bw7(B $Bw8(B $Bw9(B $Bw:(B $Bw;(B $Bw<(B $Bw=(B $Bw>(B $Bw?(B +$Bw@(B $BwA(B $BwB(B $BwC(B $BwD(B $BwE(B $BwF(B $BwG(B $BwH(B $BwI(B $BwJ(B $BwK(B $BwL(B $BwM(B $BwN(B $BwO(B +$BwP(B $BwQ(B $BwR(B $BwS(B $BwT(B $BwU(B $BwV(B $BwW(B $BwX(B $BwY(B $BwZ(B $Bw[(B $Bw\(B $Bw](B $Bw^(B $Bw_(B +$Bw`(B $Bwa(B $Bwb(B $Bwc(B $Bwd(B $Bwe(B $Bwf(B $Bwg(B $Bwh(B $Bwi(B $Bwj(B $Bwk(B $Bwl(B $Bwm(B $Bwn(B $Bwo(B +$Bwp(B $Bwq(B $Bwr(B $Bws(B $Bwt(B $Bwu(B $Bwv(B $Bww(B $Bwx(B $Bwy(B $Bwz(B $Bw{(B $Bw|(B $Bw}(B $Bw~(B + $Bx!(B $Bx"(B $Bx#(B $Bx$(B $Bx%(B $Bx&(B $Bx'(B $Bx((B $Bx)(B $Bx*(B $Bx+(B $Bx,(B $Bx-(B $Bx.(B $Bx/(B +$Bx0(B $Bx1(B $Bx2(B $Bx3(B $Bx4(B $Bx5(B $Bx6(B $Bx7(B $Bx8(B $Bx9(B $Bx:(B $Bx;(B $Bx<(B $Bx=(B $Bx>(B $Bx?(B +$Bx@(B $BxA(B $BxB(B $BxC(B $BxD(B $BxE(B $BxF(B $BxG(B $BxH(B $BxI(B $BxJ(B $BxK(B $BxL(B $BxM(B $BxN(B $BxO(B +$BxP(B $BxQ(B $BxR(B $BxS(B $BxT(B $BxU(B $BxV(B $BxW(B $BxX(B $BxY(B $BxZ(B $Bx[(B $Bx\(B $Bx](B $Bx^(B $Bx_(B +$Bx`(B $Bxa(B $Bxb(B $Bxc(B $Bxd(B $Bxe(B $Bxf(B $Bxg(B $Bxh(B $Bxi(B $Bxj(B $Bxk(B $Bxl(B $Bxm(B $Bxn(B $Bxo(B +$Bxp(B $Bxq(B $Bxr(B $Bxs(B $Bxt(B $Bxu(B $Bxv(B $Bxw(B $Bxx(B $Bxy(B $Bxz(B $Bx{(B $Bx|(B $Bx}(B $Bx~(B + $(DTc(B $(D\_(B $(Ddi(B $(Dcx(B $(DY!(B $(D1;(B $(Ds:(B $(DB-(B $(DC|(B $(DdP(B $(DB?(B $(D(B $(D1_(B $(D1X(B $(D1H(B $(D1W(B $(D1c(B $(D1t(B $(D1a(B +$(D2#(B $(Ds<(B $(D2;(B $(D2f(B $(D2m(B $(D2u(B $(D2|(B $(Ds=(B $(D35(B $(D3X(B $(D3[(B $(D3e(B $(D3n(B $(D3{(B $(Ds>(B $(Ds?(B +$(D4@(B $(D4G(B $(D4P(B $(D4^(B $(Ds@(B $(D5*(B $(DsA(B $(D5/(B $(D5D(B $(D5h(B $(DsB(B $(D7B(B $(D7d(B $(D7h(B $(D7g(B $(DsC(B +$(DsD(B $(DsE(B $(D8N(B $(D8a(B $(D8u(B $(D8w(B $(D8x(B $(D8|(B $(D9/(B $(D97(B $(D:>(B $(D:[(B $(DM*(B $(D:a(B $(DsF(B $(D:k(B +$(D;3(B $(D;8(B $(DsG(B $(D;J(B $(DsH(B $(DsI(B $(D;P(B $(D;^(B $(D;t(B $(D;u(B $(D;y(B $(D0(B $(D>,(B $(DsL(B $(D>3(B $(D>=(B $(D>M(B $(D>I(B $(D>d(B $(D?((B $(D?I(B $(D@D(B +$(D@d(B $(D@t(B $(DA&(B $(DsM(B $(DAu(B $(DA|(B $Bz6(B $(DAx(B $(DB+(B $(DB!(B $(DB%(B $(DsO(B $(DB8(B $(DB:(B $(DsP(B $(DBD(B +$(DBR(B $(DBW(B $(DB[(B $(DB^(B $(DBm(B $(DBp(B $(DsQ(B $(DC!(B $(DC5(B $(DCI(B $(DC9(B $(DsR(B $(DCX(B $(DC~(B $(DsS(B $(DDL(B +$(DsT(B $(DDY(B $(DDj(B $(DD}(B $(DsU(B $(DE'(B $(DE5(B $(DE6(B $(DsV(B $(DEU(B $(DF8(B $(DFW(B $(DF`(B $(DFj(B $(DFc(B $(DG!(B +$(DG+(B $(DGG(B $(DGC(B $(DGK(B $(DGO(B $(DGY(B $(DsW(B $(DsX(B $(DGf(B $(DGn(B $(DG|(B $(DGk(B $(DGp(B $(DH1(B $(DHe(B $(DHx(B +$(DI&(B $(DI+(B $(DI-(B $(DsY(B $(DIJ(B $(DIS(B $(DIi(B $(DIc(B $(DI|(B $(DIt(B $(DIu(B $(DsZ(B $(DJ3(B $(DJ=(B $(DJo(B + $(DJq(B $(DK.(B $(Ds[(B $(DKJ(B $(DKf(B $(DKj(B $(DKp(B $(DKt(B $(DKn(B $(DL%(B $(DKy(B $(DL+(B $(DL.(B $(DL-(B $(DL2(B +$(DLB(B $(DLP(B $(DLY(B $(Ds\(B $(DM;(B $(Ds](B $(DN;(B $(Ds^(B $(DN:(B $(DNC(B $(Ds_(B $(DNr(B $(D3](B $(DOU(B $(DOb(B $(DOi(B +$(DOm(B $(Ds`(B $(Dsa(B $(Dsb(B $(Dsc(B $(DPe(B $(Dsd(B $(DPi(B $(DQh(B $(Dse(B $(Dsf(B $(DQl(B $(DR;(B $(Dsg(B $(DSa(B $(DSh(B +$(DT'(B $(Dsh(B $(Dsi(B $(DTT(B $(DTr(B $(DU.(B $(Dsj(B $(DW^(B $(Dsk(B $(DX"(B $(DX7(B $(DXA(B $(DXQ(B $(DXt(B $(DYF(B $(DYH(B +$(DYQ(B $(Dsl(B $(Dsm(B $(Dsn(B $(Dso(B $(Dsp(B $(D\S(B $(D]H(B $(D]T(B $(D]j(B $(D]z(B $(D^$(B $(D^0(B $(Dsq(B $(D^5(B $(D^K(B +$(Dsr(B $(D_9(B $(Dss(B $(D_C(B $(Dst(B $(Dsu(B $(D`Y(B $(Dsv(B $(Dsw(B $(Dab(B $(Dsx(B $(Dsy(B $(Dsz(B $(DbG(B $(Dc((B + $(Dc&(B $(Dc)(B $(Dc/(B $(Dc0(B $(Dc*(B $(Dc+(B $(Dc<(B $(DcA(B $(Dc?(B $(DcU(B $(DcX(B $(DcV(B $(Dc_(B $(Dcc(B $(Dca(B +$(DcT(B $(Dci(B $(Dd&(B $(Dcq(B $(Dcr(B $(DdK(B $(DdA(B $(DdC(B $(Dd>(B $(Ds{(B $(Dd@(B $(DdG(B $(Dd?(B $(Dd`(B $(Dd^(B $(DdQ(B +$(Ds|(B $(Dd\(B $(DdR(B $(Dd[(B $(DdT(B $(Ddz(B $(Ddo(B $(De3(B $(De?(B $(DeI(B $(DeP(B $(Deb(B $(Dej(B $(Dek(B $(Ds}(B $(Ds~(B +$(Dt!(B $(Dfh(B $(Dfo(B $(Dg,(B $(Dt"(B $(Dg.(B $(Dtc(B $(Dg1(B $(Dt$(B $(Dg2(B $(Dh1(B $(Dh6(B $(Dt%(B $(Dt&(B $(Dh](B $(Dt'(B +$(Dt((B $(DiQ(B $(Dt)(B $(Dim(B $(DjM(B $(Dt*(B $(Dj[(B $(Djf(B $(Djj(B $(Dk%(B $(Dk{(B $(Dkz(B $(Dt+(B $(DlV(B $(Dt,(B $B|o(B +$B|p(B $(Ds!(B $(Ds"(B $(Ds#(B $(Ds$(B $(Ds%(B $(Ds&(B $(Ds'(B $(Ds((B $(Ds)(B $(Ds*(B $B|{(B $B||(B $(Ds5(B $(Ds6(B + $B}!(B $B}"(B $B}#(B $B}$(B $B}%(B $B}&(B $B}'(B $B}((B $B})(B $B}*(B $B}+(B $B},(B $B}-(B $B}.(B $B}/(B +$B}0(B $B}1(B $B}2(B $B}3(B $B}4(B $B}5(B $B}6(B $B}7(B $B}8(B $B}9(B $B}:(B $B};(B $B}<(B $B}=(B $B}>(B $B}?(B +$B}@(B $B}A(B $B}B(B $B}C(B $B}D(B $B}E(B $B}F(B $B}G(B $B}H(B $B}I(B $B}J(B $B}K(B $B}L(B $B}M(B $B}N(B $B}O(B +$B}P(B $B}Q(B $B}R(B $B}S(B $B}T(B $B}U(B $B}V(B $B}W(B $B}X(B $B}Y(B $B}Z(B $B}[(B $B}\(B $B}](B $B}^(B $B}_(B +$B}`(B $B}a(B $B}b(B $B}c(B $B}d(B $B}e(B $B}f(B $B}g(B $B}h(B $B}i(B $B}j(B $B}k(B $B}l(B $B}m(B $B}n(B $B}o(B +$B}p(B $B}q(B $B}r(B $B}s(B $B}t(B $B}u(B $B}v(B $B}w(B $B}x(B $B}y(B $B}z(B $B}{(B $B}|(B $B}}(B $B}~(B + $B~!(B $B~"(B $B~#(B $B~$(B $B~%(B $B~&(B $B~'(B $B~((B $B~)(B $B~*(B $B~+(B $B~,(B $B~-(B $B~.(B $B~/(B +$B~0(B $B~1(B $B~2(B $B~3(B $B~4(B $B~5(B $B~6(B $B~7(B $B~8(B $B~9(B $B~:(B $B~;(B $B~<(B $B~=(B $B~>(B $B~?(B +$B~@(B $B~A(B $B~B(B $B~C(B $B~D(B $B~E(B $B~F(B $B~G(B $B~H(B $B~I(B $B~J(B $B~K(B $B~L(B $B~M(B $B~N(B $B~O(B +$B~P(B $B~Q(B $B~R(B $B~S(B $B~T(B $B~U(B $B~V(B $B~W(B $B~X(B $B~Y(B $B~Z(B $B~[(B $B~\(B $B~](B $B~^(B $B~_(B +$B~`(B $B~a(B $B~b(B $B~c(B $B~d(B $B~e(B $B~f(B $B~g(B $B~h(B $B~i(B $B~j(B $B~k(B $B~l(B $B~m(B $B~n(B $B~o(B +$B~p(B $B~q(B $B~r(B $B~s(B $B~t(B $B~u(B $B~v(B $B~w(B $B~x(B $B~y(B $B~z(B $B~{(B $B~|(B $B~}(B $B~~(B + $(D"/(B +$(D"0(B $(D"1(B $(D"2(B $(D"3(B $(D"4(B $(D"5(B $(D"6(B $(D"8(B $(D"9(B + $(D"B(B $(D"C(B $(D"D(B + $(D"k(B $(D"l(B $(D"m(B $(D"n(B $(D"o(B +$(D"p(B + $(D&a(B $(D&b(B $(D&c(B $(D&d(B $(D&e(B $(D&g(B $(D&i(B $(D&j(B $(D&l(B + $(D&q(B $(D&r(B $(D&s(B $(D&t(B $(D&u(B $(D&v(B $(D&w(B $(D&x(B $(D&y(B $(D&z(B $(D&{(B $(D&|(B + $(D'B(B $(D'C(B $(D'D(B $(D'E(B $(D'F(B $(D'G(B $(D'H(B $(D'I(B $(D'J(B $(D'K(B $(D'L(B $(D'M(B $(D'N(B + $(D'r(B $(D's(B $(D't(B $(D'u(B $(D'v(B $(D'w(B $(D'x(B $(D'y(B $(D'z(B $(D'{(B $(D'|(B $(D'}(B $(D'~(B + $(D)!(B $(D)"(B $(D)$(B $(D)&(B $(D)((B $(D))(B $(D)+(B $(D),(B $(D)-(B $(D)/(B +$(D)0(B + $(D)A(B $(D)B(B $(D)C(B $(D)D(B $(D)E(B $(D)F(B $(D)G(B $(D)H(B $(D)I(B $(D)J(B $(D)K(B $(D)L(B $(D)M(B $(D)N(B $(D)O(B +$(D)P(B + $(D*!(B $(D*"(B $(D*#(B $(D*$(B $(D*%(B $(D*&(B $(D*'(B $(D*((B $(D*)(B $(D**(B $(D*+(B $(D*,(B $(D*-(B $(D*.(B $(D*/(B +$(D*0(B $(D*1(B $(D*2(B $(D*3(B $(D*4(B $(D*5(B $(D*6(B $(D*7(B $(D*8(B $(D*:(B $(D*;(B $(D*<(B $(D*=(B $(D*>(B $(D*?(B +$(D*@(B $(D*A(B $(D*B(B $(D*C(B $(D*D(B $(D*E(B $(D*F(B $(D*G(B $(D*H(B $(D*I(B $(D*J(B $(D*K(B $(D*L(B $(D*M(B $(D*N(B $(D*O(B +$(D*P(B $(D*Q(B $(D*R(B $(D*S(B $(D*T(B $(D*U(B $(D*V(B $(D*W(B $(D*X(B $(D*Y(B $(D*Z(B $(D*[(B $(D*\(B $(D*](B $(D*^(B $(D*_(B +$(D*`(B $(D*a(B $(D*b(B $(D*c(B $(D*d(B $(D*e(B $(D*f(B $(D*g(B $(D*h(B $(D*i(B $(D*j(B $(D*k(B $(D*l(B $(D*m(B $(D*n(B $(D*o(B +$(D*p(B $(D*q(B $(D*r(B $(D*s(B $(D*t(B $(D*u(B $(D*v(B $(D*w(B + $(D+!(B $(D+"(B $(D+#(B $(D+$(B $(D+%(B $(D+&(B $(D+'(B $(D+((B $(D+)(B $(D+*(B $(D++(B $(D+,(B $(D+-(B $(D+.(B $(D+/(B +$(D+0(B $(D+1(B $(D+2(B $(D+3(B $(D+4(B $(D+5(B $(D+6(B $(D+7(B $(D+8(B $(D+9(B $(D+:(B $(D+;(B $(D+=(B $(D+>(B $(D+?(B +$(D+@(B $(D+A(B $(D+B(B $(D+C(B $(D+E(B $(D+F(B $(D+G(B $(D+H(B $(D+I(B $(D+J(B $(D+K(B $(D+L(B $(D+M(B $(D+N(B $(D+O(B +$(D+P(B $(D+Q(B $(D+R(B $(D+S(B $(D+T(B $(D+U(B $(D+V(B $(D+W(B $(D+X(B $(D+Y(B $(D+Z(B $(D+[(B $(D+\(B $(D+](B $(D+^(B $(D+_(B +$(D+`(B $(D+a(B $(D+b(B $(D+c(B $(D+d(B $(D+e(B $(D+f(B $(D+g(B $(D+h(B $(D+i(B $(D+j(B $(D+k(B $(D+l(B $(D+m(B $(D+n(B $(D+o(B +$(D+p(B $(D+q(B $(D+r(B $(D+s(B $(D+t(B $(D+u(B $(D+v(B $(D+w(B + $(D0!(B $(D0"(B $(D0#(B $(D0$(B $(D0%(B $(D0&(B $(D0'(B $(D0((B $(D0)(B $(D0*(B $(D0+(B $(D0,(B $(D0-(B $(D0.(B $(D0/(B +$(D00(B $(D01(B $(D02(B $(D03(B $(D04(B $(D05(B $(D06(B $(D07(B $(D08(B $(D09(B $(D0:(B $(D0;(B $(D0<(B $(D0=(B $(D0>(B $(D0?(B +$(D0@(B $(D0A(B $(D0B(B $(D0C(B $(D0D(B $(D0E(B $(D0F(B $(D0G(B $(D0H(B $(D0I(B $(D0J(B $(D0K(B $(D0L(B $(D0M(B $(D0N(B $(D0O(B +$(D0P(B $(D0Q(B $(D0R(B $(D0S(B $(D0T(B $(D0U(B $(D0V(B $(D0W(B $(D0X(B $(D0Y(B $(D0Z(B $(D0[(B $(D0\(B $(D0](B $(D0^(B $(D0_(B +$(D0`(B $(D0a(B $(D0b(B $(D0c(B $(D0d(B $(D0e(B $(D0f(B $(D0g(B $(D0h(B $(D0i(B $(D0j(B $(D0k(B $(D0l(B $(D0m(B $(D0n(B $(D0o(B +$(D0p(B $(D0q(B $(D0r(B $(D0s(B $(D0t(B $(D0u(B $(D0v(B $(D0w(B $(D0x(B $(D0y(B $(D0z(B $(D0{(B $(D0|(B $(D0}(B $(D0~(B + $(D1!(B $(D1"(B $(D1#(B $(D1$(B $(D1%(B $(D1&(B $(D1'(B $(D1((B $(D1)(B $(D1*(B $(D1+(B $(D1,(B $(D1-(B $(D1.(B $(D1/(B +$(D10(B $(D11(B $(D12(B $(D13(B $(D14(B $(D15(B $(D16(B $(D17(B $(D18(B $(D19(B $(D1:(B $(D1;(B $(D1<(B $(D1=(B $(D1>(B $(D1?(B +$(D1@(B $(D1A(B $(D1B(B $(D1C(B $(D1D(B $(D1E(B $(D1F(B $(D1G(B $(D1H(B $(D1I(B $(D1J(B $(D1K(B $(D1L(B $(D1M(B $(D1N(B $(D1O(B +$(D1P(B $(D1Q(B $(D1R(B $(D1S(B $(D1T(B $(D1U(B $(D1V(B $(D1W(B $(D1X(B $(D1Y(B $(D1Z(B $(D1[(B $(D1\(B $(D1](B $(D1^(B $(D1_(B +$(D1`(B $(D1a(B $(D1b(B $(D1c(B $(D1d(B $(D1e(B $(D1f(B $(D1g(B $(D1h(B $(D1i(B $(D1j(B $(D1k(B $(D1l(B $(D1m(B $(D1n(B $(D1o(B +$(D1p(B $(D1q(B $(D1r(B $(D1s(B $(D1t(B $(D1u(B $(D1v(B $(D1w(B $(D1x(B $(D1y(B $(D1z(B $(D1{(B $(D1|(B $(D1}(B $(D1~(B + $(D2!(B $(D2"(B $(D2#(B $(D2$(B $(D2%(B $(D2&(B $(D2'(B $(D2((B $(D2)(B $(D2*(B $(D2+(B $(D2,(B $(D2-(B $(D2.(B $(D2/(B +$(D20(B $(D21(B $(D22(B $(D23(B $(D24(B $(D25(B $(D26(B $(D27(B $(D28(B $(D29(B $(D2:(B $(D2;(B $(D2<(B $(D2=(B $(D2>(B $(D2?(B +$(D2@(B $(D2A(B $(D2B(B $(D2C(B $(D2D(B $(D2E(B $(D2F(B $(D2G(B $(D2H(B $(D2I(B $(D2J(B $(D2K(B $(D2L(B $(D2M(B $(D2N(B $(D2O(B +$(D2P(B $(D2Q(B $(D2R(B $(D2S(B $(D2T(B $(D2U(B $(D2V(B $(D2W(B $(D2X(B $(D2Y(B $(D2Z(B $(D2[(B $(D2\(B $(D2](B $(D2^(B $(D2_(B +$(D2`(B $(D2a(B $(D2b(B $(D2c(B $(D2d(B $(D2e(B $(D2f(B $(D2g(B $(D2h(B $(D2i(B $(D2j(B $(D2k(B $(D2l(B $(D2m(B $(D2n(B $(D2o(B +$(D2p(B $(D2q(B $(D2r(B $(D2s(B $(D2t(B $(D2u(B $(D2v(B $(D2w(B $(D2x(B $(D2y(B $(D2z(B $(D2{(B $(D2|(B $(D2}(B $(D2~(B + $(D3!(B $(D3"(B $(D3#(B $(D3$(B $(D3%(B $(D3&(B $(D3'(B $(D3((B $(D3)(B $(D3*(B $(D3+(B $(D3,(B $(D3-(B $(D3.(B $(D3/(B +$(D30(B $(D31(B $(D32(B $(D33(B $(D34(B $(D35(B $(D36(B $(D37(B $(D38(B $(D39(B $(D3:(B $(D3;(B $(D3<(B $(D3=(B $(D3>(B $(D3?(B +$(D3@(B $(D3A(B $(D3B(B $(D3C(B $(D3D(B $(D3E(B $(D3F(B $(D3G(B $(D3H(B $(D3I(B $(D3J(B $(D3K(B $(D3L(B $(D3M(B $(D3N(B $(D3O(B +$(D3P(B $(D3Q(B $(D3R(B $(D3S(B $(D3T(B $(D3U(B $(D3V(B $(D3W(B $(D3X(B $(D3Y(B $(D3Z(B $(D3[(B $(D3\(B $(D3](B $(D3^(B $(D3_(B +$(D3`(B $(D3a(B $(D3b(B $(D3c(B $(D3d(B $(D3e(B $(D3f(B $(D3g(B $(D3h(B $(D3i(B $(D3j(B $(D3k(B $(D3l(B $(D3m(B $(D3n(B $(D3o(B +$(D3p(B $(D3q(B $(D3r(B $(D3s(B $(D3t(B $(D3u(B $(D3v(B $(D3w(B $(D3x(B $(D3y(B $(D3z(B $(D3{(B $(D3|(B $(D3}(B $(D3~(B + $(D4!(B $(D4"(B $(D4#(B $(D4$(B $(D4%(B $(D4&(B $(D4'(B $(D4((B $(D4)(B $(D4*(B $(D4+(B $(D4,(B $(D4-(B $(D4.(B $(D4/(B +$(D40(B $(D41(B $(D42(B $(D43(B $(D44(B $(D45(B $(D46(B $(D47(B $(D48(B $(D49(B $(D4:(B $(D4;(B $(D4<(B $(D4=(B $(D4>(B $(D4?(B +$(D4@(B $(D4A(B $(D4B(B $(D4C(B $(D4D(B $(D4E(B $(D4F(B $(D4G(B $(D4H(B $(D4I(B $(D4J(B $(D4K(B $(D4L(B $(D4M(B $(D4N(B $(D4O(B +$(D4P(B $(D4Q(B $(D4R(B $(D4S(B $(D4T(B $(D4U(B $(D4V(B $(D4W(B $(D4X(B $(D4Y(B $(D4Z(B $(D4[(B $(D4\(B $(D4](B $(D4^(B $(D4_(B +$(D4`(B $(D4a(B $(D4b(B $(D4c(B $(D4d(B $(D4e(B $(D4f(B $(D4g(B $(D4h(B $(D4i(B $(D4j(B $(D4k(B $(D4l(B $(D4m(B $(D4n(B $(D4o(B +$(D4p(B $(D4q(B $(D4r(B $(D4s(B $(D4t(B $(D4u(B $(D4v(B $(D4w(B $(D4x(B $(D4y(B $(D4z(B $(D4{(B $(D4|(B $(D4}(B $(D4~(B + $(D5!(B $(D5"(B $(D5#(B $(D5$(B $(D5%(B $(D5&(B $(D5'(B $(D5((B $(D5)(B $(D5*(B $(D5+(B $(D5,(B $(D5-(B $(D5.(B $(D5/(B +$(D50(B $(D51(B $(D52(B $(D53(B $(D54(B $(D55(B $(D56(B $(D57(B $(D58(B $(D59(B $(D5:(B $(D5;(B $(D5<(B $(D5=(B $(D5>(B $(D5?(B +$(D5@(B $(D5A(B $(D5B(B $(D5C(B $(D5D(B $(D5E(B $(D5F(B $(D5G(B $(D5H(B $(D5I(B $(D5J(B $(D5K(B $(D5L(B $(D5M(B $(D5N(B $(D5O(B +$(D5P(B $(D5Q(B $(D5R(B $(D5S(B $(D5T(B $(D5U(B $(D5V(B $(D5W(B $(D5X(B $(D5Y(B $(D5Z(B $(D5[(B $(D5\(B $(D5](B $(D5^(B $(D5_(B +$(D5`(B $(D5a(B $(D5b(B $(D5c(B $(D5d(B $(D5e(B $(D5f(B $(D5g(B $(D5h(B $(D5i(B $(D5j(B $(D5k(B $(D5l(B $(D5m(B $(D5n(B $(D5o(B +$(D5p(B $(D5q(B $(D5r(B $(D5s(B $(D5t(B $(D5u(B $(D5v(B $(D5w(B $(D5x(B $(D5y(B $(D5z(B $(D5{(B $(D5|(B $(D5}(B $(D5~(B + $(D6!(B $(D6"(B $(D6#(B $(D6$(B $(D6%(B $(D6&(B $(D6'(B $(D6((B $(D6)(B $(D6*(B $(D6+(B $(D6,(B $(D6-(B $(D6.(B $(D6/(B +$(D60(B $(D61(B $(D62(B $(D63(B $(D64(B $(D65(B $(D66(B $(D67(B $(D68(B $(D69(B $(D6:(B $(D6;(B $(D6<(B $(D6=(B $(D6>(B $(D6?(B +$(D6@(B $(D6A(B $(D6B(B $(D6C(B $(D6D(B $(D6E(B $(D6F(B $(D6G(B $(D6H(B $(D6I(B $(D6J(B $(D6K(B $(D6L(B $(D6M(B $(D6N(B $(D6O(B +$(D6P(B $(D6Q(B $(D6R(B $(D6S(B $(D6T(B $(D6U(B $(D6V(B $(D6W(B $(D6X(B $(D6Y(B $(D6Z(B $(D6[(B $(D6\(B $(D6](B $(D6^(B $(D6_(B +$(D6`(B $(D6a(B $(D6b(B $(D6c(B $(D6d(B $(D6e(B $(D6f(B $(D6g(B $(D6h(B $(D6i(B $(D6j(B $(D6k(B $(D6l(B $(D6m(B $(D6n(B $(D6o(B +$(D6p(B $(D6q(B $(D6r(B $(D6s(B $(D6t(B $(D6u(B $(D6v(B $(D6w(B $(D6x(B $(D6y(B $(D6z(B $(D6{(B $(D6|(B $(D6}(B $(D6~(B + $(D7!(B $(D7"(B $(D7#(B $(D7$(B $(D7%(B $(D7&(B $(D7'(B $(D7((B $(D7)(B $(D7*(B $(D7+(B $(D7,(B $(D7-(B $(D7.(B $(D7/(B +$(D70(B $(D71(B $(D72(B $(D73(B $(D74(B $(D75(B $(D76(B $(D77(B $(D78(B $(D79(B $(D7:(B $(D7;(B $(D7<(B $(D7=(B $(D7>(B $(D7?(B +$(D7@(B $(D7A(B $(D7B(B $(D7C(B $(D7D(B $(D7E(B $(D7F(B $(D7G(B $(D7H(B $(D7I(B $(D7J(B $(D7K(B $(D7L(B $(D7M(B $(D7N(B $(D7O(B +$(D7P(B $(D7Q(B $(D7R(B $(D7S(B $(D7T(B $(D7U(B $(D7V(B $(D7W(B $(D7X(B $(D7Y(B $(D7Z(B $(D7[(B $(D7\(B $(D7](B $(D7^(B $(D7_(B +$(D7`(B $(D7a(B $(D7b(B $(D7c(B $(D7d(B $(D7e(B $(D7f(B $(D7g(B $(D7h(B $(D7i(B $(D7j(B $(D7k(B $(D7l(B $(D7m(B $(D7n(B $(D7o(B +$(D7p(B $(D7q(B $(D7r(B $(D7s(B $(D7t(B $(D7u(B $(D7v(B $(D7w(B $(D7x(B $(D7y(B $(D7z(B $(D7{(B $(D7|(B $(D7}(B $(D7~(B + $(D8!(B $(D8"(B $(D8#(B $(D8$(B $(D8%(B $(D8&(B $(D8'(B $(D8((B $(D8)(B $(D8*(B $(D8+(B $(D8,(B $(D8-(B $(D8.(B $(D8/(B +$(D80(B $(D81(B $(D82(B $(D83(B $(D84(B $(D85(B $(D86(B $(D87(B $(D88(B $(D89(B $(D8:(B $(D8;(B $(D8<(B $(D8=(B $(D8>(B $(D8?(B +$(D8@(B $(D8A(B $(D8B(B $(D8C(B $(D8D(B $(D8E(B $(D8F(B $(D8G(B $(D8H(B $(D8I(B $(D8J(B $(D8K(B $(D8L(B $(D8M(B $(D8N(B $(D8O(B +$(D8P(B $(D8Q(B $(D8R(B $(D8S(B $(D8T(B $(D8U(B $(D8V(B $(D8W(B $(D8X(B $(D8Y(B $(D8Z(B $(D8[(B $(D8\(B $(D8](B $(D8^(B $(D8_(B +$(D8`(B $(D8a(B $(D8b(B $(D8c(B $(D8d(B $(D8e(B $(D8f(B $(D8g(B $(D8h(B $(D8i(B $(D8j(B $(D8k(B $(D8l(B $(D8m(B $(D8n(B $(D8o(B +$(D8p(B $(D8q(B $(D8r(B $(D8s(B $(D8t(B $(D8u(B $(D8v(B $(D8w(B $(D8x(B $(D8y(B $(D8z(B $(D8{(B $(D8|(B $(D8}(B $(D8~(B + $(D9!(B $(D9"(B $(D9#(B $(D9$(B $(D9%(B $(D9&(B $(D9'(B $(D9((B $(D9)(B $(D9*(B $(D9+(B $(D9,(B $(D9-(B $(D9.(B $(D9/(B +$(D90(B $(D91(B $(D92(B $(D93(B $(D94(B $(D95(B $(D96(B $(D97(B $(D98(B $(D99(B $(D9:(B $(D9;(B $(D9<(B $(D9=(B $(D9>(B $(D9?(B +$(D9@(B $(D9A(B $(D9B(B $(D9C(B $(D9D(B $(D9E(B $(D9F(B $(D9G(B $(D9H(B $(D9I(B $(D9J(B $(D9K(B $(D9L(B $(D9M(B $(D9N(B $(D9O(B +$(D9P(B $(D9Q(B $(D9R(B $(D9S(B $(D9T(B $(D9U(B $(D9V(B $(D9W(B $(D9X(B $(D9Y(B $(D9Z(B $(D9[(B $(D9\(B $(D9](B $(D9^(B $(D9_(B +$(D9`(B $(D9a(B $(D9b(B $(D9c(B $(D9d(B $(D9e(B $(D9f(B $(D9g(B $(D9h(B $(D9i(B $(D9j(B $(D9k(B $(D9l(B $(D9m(B $(D9n(B $(D9o(B +$(D9p(B $(D9q(B $(D9r(B $(D9s(B $(D9t(B $(D9u(B $(D9v(B $(D9w(B $(D9x(B $(D9y(B $(D9z(B $(D9{(B $(D9|(B $(D9}(B $(D9~(B + $(D:!(B $(D:"(B $(D:#(B $(D:$(B $(D:%(B $(D:&(B $(D:'(B $(D:((B $(D:)(B $(D:*(B $(D:+(B $(D:,(B $(D:-(B $(D:.(B $(D:/(B +$(D:0(B $(D:1(B $(D:2(B $(D:3(B $(D:4(B $(D:5(B $(D:6(B $(D:7(B $(D:8(B $(D:9(B $(D::(B $(D:;(B $(D:<(B $(D:=(B $(D:>(B $(D:?(B +$(D:@(B $(D:A(B $(D:B(B $(D:C(B $(D:D(B $(D:E(B $(D:F(B $(D:G(B $(D:H(B $(D:I(B $(D:J(B $(D:K(B $(D:L(B $(D:M(B $(D:N(B $(D:O(B +$(D:P(B $(D:Q(B $(D:R(B $(D:S(B $(D:T(B $(D:U(B $(D:V(B $(D:W(B $(D:X(B $(D:Y(B $(D:Z(B $(D:[(B $(D:\(B $(D:](B $(D:^(B $(D:_(B +$(D:`(B $(D:a(B $(D:b(B $(D:c(B $(D:d(B $(D:e(B $(D:f(B $(D:g(B $(D:h(B $(D:i(B $(D:j(B $(D:k(B $(D:l(B $(D:m(B $(D:n(B $(D:o(B +$(D:p(B $(D:q(B $(D:r(B $(D:s(B $(D:t(B $(D:u(B $(D:v(B $(D:w(B $(D:x(B $(D:y(B $(D:z(B $(D:{(B $(D:|(B $(D:}(B $(D:~(B + $(D;!(B $(D;"(B $(D;#(B $(D;$(B $(D;%(B $(D;&(B $(D;'(B $(D;((B $(D;)(B $(D;*(B $(D;+(B $(D;,(B $(D;-(B $(D;.(B $(D;/(B +$(D;0(B $(D;1(B $(D;2(B $(D;3(B $(D;4(B $(D;5(B $(D;6(B $(D;7(B $(D;8(B $(D;9(B $(D;:(B $(D;;(B $(D;<(B $(D;=(B $(D;>(B $(D;?(B +$(D;@(B $(D;A(B $(D;B(B $(D;C(B $(D;D(B $(D;E(B $(D;F(B $(D;G(B $(D;H(B $(D;I(B $(D;J(B $(D;K(B $(D;L(B $(D;M(B $(D;N(B $(D;O(B +$(D;P(B $(D;Q(B $(D;R(B $(D;S(B $(D;T(B $(D;U(B $(D;V(B $(D;W(B $(D;X(B $(D;Y(B $(D;Z(B $(D;[(B $(D;\(B $(D;](B $(D;^(B $(D;_(B +$(D;`(B $(D;a(B $(D;b(B $(D;c(B $(D;d(B $(D;e(B $(D;f(B $(D;g(B $(D;h(B $(D;i(B $(D;j(B $(D;k(B $(D;l(B $(D;m(B $(D;n(B $(D;o(B +$(D;p(B $(D;q(B $(D;r(B $(D;s(B $(D;t(B $(D;u(B $(D;v(B $(D;w(B $(D;x(B $(D;y(B $(D;z(B $(D;{(B $(D;|(B $(D;}(B $(D;~(B + $(D(B $(D(B $(D=?(B +$(D=@(B $(D=A(B $(D=B(B $(D=C(B $(D=D(B $(D=E(B $(D=F(B $(D=G(B $(D=H(B $(D=I(B $(D=J(B $(D=K(B $(D=L(B $(D=M(B $(D=N(B $(D=O(B +$(D=P(B $(D=Q(B $(D=R(B $(D=S(B $(D=T(B $(D=U(B $(D=V(B $(D=W(B $(D=X(B $(D=Y(B $(D=Z(B $(D=[(B $(D=\(B $(D=](B $(D=^(B $(D=_(B +$(D=`(B $(D=a(B $(D=b(B $(D=c(B $(D=d(B $(D=e(B $(D=f(B $(D=g(B $(D=h(B $(D=i(B $(D=j(B $(D=k(B $(D=l(B $(D=m(B $(D=n(B $(D=o(B +$(D=p(B $(D=q(B $(D=r(B $(D=s(B $(D=t(B $(D=u(B $(D=v(B $(D=w(B $(D=x(B $(D=y(B $(D=z(B $(D={(B $(D=|(B $(D=}(B $(D=~(B + $(D>!(B $(D>"(B $(D>#(B $(D>$(B $(D>%(B $(D>&(B $(D>'(B $(D>((B $(D>)(B $(D>*(B $(D>+(B $(D>,(B $(D>-(B $(D>.(B $(D>/(B +$(D>0(B $(D>1(B $(D>2(B $(D>3(B $(D>4(B $(D>5(B $(D>6(B $(D>7(B $(D>8(B $(D>9(B $(D>:(B $(D>;(B $(D><(B $(D>=(B $(D>>(B $(D>?(B +$(D>@(B $(D>A(B $(D>B(B $(D>C(B $(D>D(B $(D>E(B $(D>F(B $(D>G(B $(D>H(B $(D>I(B $(D>J(B $(D>K(B $(D>L(B $(D>M(B $(D>N(B $(D>O(B +$(D>P(B $(D>Q(B $(D>R(B $(D>S(B $(D>T(B $(D>U(B $(D>V(B $(D>W(B $(D>X(B $(D>Y(B $(D>Z(B $(D>[(B $(D>\(B $(D>](B $(D>^(B $(D>_(B +$(D>`(B $(D>a(B $(D>b(B $(D>c(B $(D>d(B $(D>e(B $(D>f(B $(D>g(B $(D>h(B $(D>i(B $(D>j(B $(D>k(B $(D>l(B $(D>m(B $(D>n(B $(D>o(B +$(D>p(B $(D>q(B $(D>r(B $(D>s(B $(D>t(B $(D>u(B $(D>v(B $(D>w(B $(D>x(B $(D>y(B $(D>z(B $(D>{(B $(D>|(B $(D>}(B $(D>~(B + $(D?!(B $(D?"(B $(D?#(B $(D?$(B $(D?%(B $(D?&(B $(D?'(B $(D?((B $(D?)(B $(D?*(B $(D?+(B $(D?,(B $(D?-(B $(D?.(B $(D?/(B +$(D?0(B $(D?1(B $(D?2(B $(D?3(B $(D?4(B $(D?5(B $(D?6(B $(D?7(B $(D?8(B $(D?9(B $(D?:(B $(D?;(B $(D?<(B $(D?=(B $(D?>(B $(D??(B +$(D?@(B $(D?A(B $(D?B(B $(D?C(B $(D?D(B $(D?E(B $(D?F(B $(D?G(B $(D?H(B $(D?I(B $(D?J(B $(D?K(B $(D?L(B $(D?M(B $(D?N(B $(D?O(B +$(D?P(B $(D?Q(B $(D?R(B $(D?S(B $(D?T(B $(D?U(B $(D?V(B $(D?W(B $(D?X(B $(D?Y(B $(D?Z(B $(D?[(B $(D?\(B $(D?](B $(D?^(B $(D?_(B +$(D?`(B $(D?a(B $(D?b(B $(D?c(B $(D?d(B $(D?e(B $(D?f(B $(D?g(B $(D?h(B $(D?i(B $(D?j(B $(D?k(B $(D?l(B $(D?m(B $(D?n(B $(D?o(B +$(D?p(B $(D?q(B $(D?r(B $(D?s(B $(D?t(B $(D?u(B $(D?v(B $(D?w(B $(D?x(B $(D?y(B $(D?z(B $(D?{(B $(D?|(B $(D?}(B $(D?~(B + $(D@!(B $(D@"(B $(D@#(B $(D@$(B $(D@%(B $(D@&(B $(D@'(B $(D@((B $(D@)(B $(D@*(B $(D@+(B $(D@,(B $(D@-(B $(D@.(B $(D@/(B +$(D@0(B $(D@1(B $(D@2(B $(D@3(B $(D@4(B $(D@5(B $(D@6(B $(D@7(B $(D@8(B $(D@9(B $(D@:(B $(D@;(B $(D@<(B $(D@=(B $(D@>(B $(D@?(B +$(D@@(B $(D@A(B $(D@B(B $(D@C(B $(D@D(B $(D@E(B $(D@F(B $(D@G(B $(D@H(B $(D@I(B $(D@J(B $(D@K(B $(D@L(B $(D@M(B $(D@N(B $(D@O(B +$(D@P(B $(D@Q(B $(D@R(B $(D@S(B $(D@T(B $(D@U(B $(D@V(B $(D@W(B $(D@X(B $(D@Y(B $(D@Z(B $(D@[(B $(D@\(B $(D@](B $(D@^(B $(D@_(B +$(D@`(B $(D@a(B $(D@b(B $(D@c(B $(D@d(B $(D@e(B $(D@f(B $(D@g(B $(D@h(B $(D@i(B $(D@j(B $(D@k(B $(D@l(B $(D@m(B $(D@n(B $(D@o(B +$(D@p(B $(D@q(B $(D@r(B $(D@s(B $(D@t(B $(D@u(B $(D@v(B $(D@w(B $(D@x(B $(D@y(B $(D@z(B $(D@{(B $(D@|(B $(D@}(B $(D@~(B + $(DA!(B $(DA"(B $(DA#(B $(DA$(B $(DA%(B $(DA&(B $(DA'(B $(DA((B $(DA)(B $(DA*(B $(DA+(B $(DA,(B $(DA-(B $(DA.(B $(DA/(B +$(DA0(B $(DA1(B $(DA2(B $(DA3(B $(DA4(B $(DA5(B $(DA6(B $(DA7(B $(DA8(B $(DA9(B $(DA:(B $(DA;(B $(DA<(B $(DA=(B $(DA>(B $(DA?(B +$(DA@(B $(DAA(B $(DAB(B $(DAC(B $(DAD(B $(DAE(B $(DAF(B $(DAG(B $(DAH(B $(DAI(B $(DAJ(B $(DAK(B $(DAL(B $(DAM(B $(DAN(B $(DAO(B +$(DAP(B $(DAQ(B $(DAR(B $(DAS(B $(DAT(B $(DAU(B $(DAV(B $(DAW(B $(DAX(B $(DAY(B $(DAZ(B $(DA[(B $(DA\(B $(DA](B $(DA^(B $(DA_(B +$(DA`(B $(DAa(B $(DAb(B $(DAc(B $(DAd(B $(DAe(B $(DAf(B $(DAg(B $(DAh(B $(DAi(B $(DAj(B $(DAk(B $(DAl(B $(DAm(B $(DAn(B $(DAo(B +$(DAp(B $(DAq(B $(DAr(B $(DAs(B $(DAt(B $(DAu(B $(DAv(B $(DAw(B $(DAx(B $(DAy(B $(DAz(B $(DA{(B $(DA|(B $(DA}(B $(DA~(B + $(DB!(B $(DB"(B $(DB#(B $(DB$(B $(DB%(B $(DB&(B $(DB'(B $(DB((B $(DB)(B $(DB*(B $(DB+(B $(DB,(B $(DB-(B $(DB.(B $(DB/(B +$(DB0(B $(DB1(B $(DB2(B $(DB3(B $(DB4(B $(DB5(B $(DB6(B $(DB7(B $(DB8(B $(DB9(B $(DB:(B $(DB;(B $(DB<(B $(DB=(B $(DB>(B $(DB?(B +$(DB@(B $(DBA(B $(DBB(B $(DBC(B $(DBD(B $(DBE(B $(DBF(B $(DBG(B $(DBH(B $(DBI(B $(DBJ(B $(DBK(B $(DBL(B $(DBM(B $(DBN(B $(DBO(B +$(DBP(B $(DBQ(B $(DBR(B $(DBS(B $(DBT(B $(DBU(B $(DBV(B $(DBW(B $(DBX(B $(DBY(B $(DBZ(B $(DB[(B $(DB\(B $(DB](B $(DB^(B $(DB_(B +$(DB`(B $(DBa(B $(DBb(B $(DBc(B $(DBd(B $(DBe(B $(DBf(B $(DBg(B $(DBh(B $(DBi(B $(DBj(B $(DBk(B $(DBl(B $(DBm(B $(DBn(B $(DBo(B +$(DBp(B $(DBq(B $(DBr(B $(DBs(B $(DBt(B $(DBu(B $(DBv(B $(DBw(B $(DBx(B $(DBy(B $(DBz(B $(DB{(B $(DB|(B $(DB}(B $(DB~(B + $(DC!(B $(DC"(B $(DC#(B $(DC$(B $(DC%(B $(DC&(B $(DC'(B $(DC((B $(DC)(B $(DC*(B $(DC+(B $(DC,(B $(DC-(B $(DC.(B $(DC/(B +$(DC0(B $(DC1(B $(DC2(B $(DC3(B $(DC4(B $(DC5(B $(DC6(B $(DC7(B $(DC8(B $(DC9(B $(DC:(B $(DC;(B $(DC<(B $(DC=(B $(DC>(B $(DC?(B +$(DC@(B $(DCA(B $(DCB(B $(DCC(B $(DCD(B $(DCE(B $(DCF(B $(DCG(B $(DCH(B $(DCI(B $(DCJ(B $(DCK(B $(DCL(B $(DCM(B $(DCN(B $(DCO(B +$(DCP(B $(DCQ(B $(DCR(B $(DCS(B $(DCT(B $(DCU(B $(DCV(B $(DCW(B $(DCX(B $(DCY(B $(DCZ(B $(DC[(B $(DC\(B $(DC](B $(DC^(B $(DC_(B +$(DC`(B $(DCa(B $(DCb(B $(DCc(B $(DCd(B $(DCe(B $(DCf(B $(DCg(B $(DCh(B $(DCi(B $(DCj(B $(DCk(B $(DCl(B $(DCm(B $(DCn(B $(DCo(B +$(DCp(B $(DCq(B $(DCr(B $(DCs(B $(DCt(B $(DCu(B $(DCv(B $(DCw(B $(DCx(B $(DCy(B $(DCz(B $(DC{(B $(DC|(B $(DC}(B $(DC~(B + $(DD!(B $(DD"(B $(DD#(B $(DD$(B $(DD%(B $(DD&(B $(DD'(B $(DD((B $(DD)(B $(DD*(B $(DD+(B $(DD,(B $(DD-(B $(DD.(B $(DD/(B +$(DD0(B $(DD1(B $(DD2(B $(DD3(B $(DD4(B $(DD5(B $(DD6(B $(DD7(B $(DD8(B $(DD9(B $(DD:(B $(DD;(B $(DD<(B $(DD=(B $(DD>(B $(DD?(B +$(DD@(B $(DDA(B $(DDB(B $(DDC(B $(DDD(B $(DDE(B $(DDF(B $(DDG(B $(DDH(B $(DDI(B $(DDJ(B $(DDK(B $(DDL(B $(DDM(B $(DDN(B $(DDO(B +$(DDP(B $(DDQ(B $(DDR(B $(DDS(B $(DDT(B $(DDU(B $(DDV(B $(DDW(B $(DDX(B $(DDY(B $(DDZ(B $(DD[(B $(DD\(B $(DD](B $(DD^(B $(DD_(B +$(DD`(B $(DDa(B $(DDb(B $(DDc(B $(DDd(B $(DDe(B $(DDf(B $(DDg(B $(DDh(B $(DDi(B $(DDj(B $(DDk(B $(DDl(B $(DDm(B $(DDn(B $(DDo(B +$(DDp(B $(DDq(B $(DDr(B $(DDs(B $(DDt(B $(DDu(B $(DDv(B $(DDw(B $(DDx(B $(DDy(B $(DDz(B $(DD{(B $(DD|(B $(DD}(B $(DD~(B + $(DE!(B $(DE"(B $(DE#(B $(DE$(B $(DE%(B $(DE&(B $(DE'(B $(DE((B $(DE)(B $(DE*(B $(DE+(B $(DE,(B $(DE-(B $(DE.(B $(DE/(B +$(DE0(B $(DE1(B $(DE2(B $(DE3(B $(DE4(B $(DE5(B $(DE6(B $(DE7(B $(DE8(B $(DE9(B $(DE:(B $(DE;(B $(DE<(B $(DE=(B $(DE>(B $(DE?(B +$(DE@(B $(DEA(B $(DEB(B $(DEC(B $(DED(B $(DEE(B $(DEF(B $(DEG(B $(DEH(B $(DEI(B $(DEJ(B $(DEK(B $(DEL(B $(DEM(B $(DEN(B $(DEO(B +$(DEP(B $(DEQ(B $(DER(B $(DES(B $(DET(B $(DEU(B $(DEV(B $(DEW(B $(DEX(B $(DEY(B $(DEZ(B $(DE[(B $(DE\(B $(DE](B $(DE^(B $(DE_(B +$(DE`(B $(DEa(B $(DEb(B $(DEc(B $(DEd(B $(DEe(B $(DEf(B $(DEg(B $(DEh(B $(DEi(B $(DEj(B $(DEk(B $(DEl(B $(DEm(B $(DEn(B $(DEo(B +$(DEp(B $(DEq(B $(DEr(B $(DEs(B $(DEt(B $(DEu(B $(DEv(B $(DEw(B $(DEx(B $(DEy(B $(DEz(B $(DE{(B $(DE|(B $(DE}(B $(DE~(B + $(DF!(B $(DF"(B $(DF#(B $(DF$(B $(DF%(B $(DF&(B $(DF'(B $(DF((B $(DF)(B $(DF*(B $(DF+(B $(DF,(B $(DF-(B $(DF.(B $(DF/(B +$(DF0(B $(DF1(B $(DF2(B $(DF3(B $(DF4(B $(DF5(B $(DF6(B $(DF7(B $(DF8(B $(DF9(B $(DF:(B $(DF;(B $(DF<(B $(DF=(B $(DF>(B $(DF?(B +$(DF@(B $(DFA(B $(DFB(B $(DFC(B $(DFD(B $(DFE(B $(DFF(B $(DFG(B $(DFH(B $(DFI(B $(DFJ(B $(DFK(B $(DFL(B $(DFM(B $(DFN(B $(DFO(B +$(DFP(B $(DFQ(B $(DFR(B $(DFS(B $(DFT(B $(DFU(B $(DFV(B $(DFW(B $(DFX(B $(DFY(B $(DFZ(B $(DF[(B $(DF\(B $(DF](B $(DF^(B $(DF_(B +$(DF`(B $(DFa(B $(DFb(B $(DFc(B $(DFd(B $(DFe(B $(DFf(B $(DFg(B $(DFh(B $(DFi(B $(DFj(B $(DFk(B $(DFl(B $(DFm(B $(DFn(B $(DFo(B +$(DFp(B $(DFq(B $(DFr(B $(DFs(B $(DFt(B $(DFu(B $(DFv(B $(DFw(B $(DFx(B $(DFy(B $(DFz(B $(DF{(B $(DF|(B $(DF}(B $(DF~(B + $(DG!(B $(DG"(B $(DG#(B $(DG$(B $(DG%(B $(DG&(B $(DG'(B $(DG((B $(DG)(B $(DG*(B $(DG+(B $(DG,(B $(DG-(B $(DG.(B $(DG/(B +$(DG0(B $(DG1(B $(DG2(B $(DG3(B $(DG4(B $(DG5(B $(DG6(B $(DG7(B $(DG8(B $(DG9(B $(DG:(B $(DG;(B $(DG<(B $(DG=(B $(DG>(B $(DG?(B +$(DG@(B $(DGA(B $(DGB(B $(DGC(B $(DGD(B $(DGE(B $(DGF(B $(DGG(B $(DGH(B $(DGI(B $(DGJ(B $(DGK(B $(DGL(B $(DGM(B $(DGN(B $(DGO(B +$(DGP(B $(DGQ(B $(DGR(B $(DGS(B $(DGT(B $(DGU(B $(DGV(B $(DGW(B $(DGX(B $(DGY(B $(DGZ(B $(DG[(B $(DG\(B $(DG](B $(DG^(B $(DG_(B +$(DG`(B $(DGa(B $(DGb(B $(DGc(B $(DGd(B $(DGe(B $(DGf(B $(DGg(B $(DGh(B $(DGi(B $(DGj(B $(DGk(B $(DGl(B $(DGm(B $(DGn(B $(DGo(B +$(DGp(B $(DGq(B $(DGr(B $(DGs(B $(DGt(B $(DGu(B $(DGv(B $(DGw(B $(DGx(B $(DGy(B $(DGz(B $(DG{(B $(DG|(B $(DG}(B $(DG~(B + $(DH!(B $(DH"(B $(DH#(B $(DH$(B $(DH%(B $(DH&(B $(DH'(B $(DH((B $(DH)(B $(DH*(B $(DH+(B $(DH,(B $(DH-(B $(DH.(B $(DH/(B +$(DH0(B $(DH1(B $(DH2(B $(DH3(B $(DH4(B $(DH5(B $(DH6(B $(DH7(B $(DH8(B $(DH9(B $(DH:(B $(DH;(B $(DH<(B $(DH=(B $(DH>(B $(DH?(B +$(DH@(B $(DHA(B $(DHB(B $(DHC(B $(DHD(B $(DHE(B $(DHF(B $(DHG(B $(DHH(B $(DHI(B $(DHJ(B $(DHK(B $(DHL(B $(DHM(B $(DHN(B $(DHO(B +$(DHP(B $(DHQ(B $(DHR(B $(DHS(B $(DHT(B $(DHU(B $(DHV(B $(DHW(B $(DHX(B $(DHY(B $(DHZ(B $(DH[(B $(DH\(B $(DH](B $(DH^(B $(DH_(B +$(DH`(B $(DHa(B $(DHb(B $(DHc(B $(DHd(B $(DHe(B $(DHf(B $(DHg(B $(DHh(B $(DHi(B $(DHj(B $(DHk(B $(DHl(B $(DHm(B $(DHn(B $(DHo(B +$(DHp(B $(DHq(B $(DHr(B $(DHs(B $(DHt(B $(DHu(B $(DHv(B $(DHw(B $(DHx(B $(DHy(B $(DHz(B $(DH{(B $(DH|(B $(DH}(B $(DH~(B + $(DI!(B $(DI"(B $(DI#(B $(DI$(B $(DI%(B $(DI&(B $(DI'(B $(DI((B $(DI)(B $(DI*(B $(DI+(B $(DI,(B $(DI-(B $(DI.(B $(DI/(B +$(DI0(B $(DI1(B $(DI2(B $(DI3(B $(DI4(B $(DI5(B $(DI6(B $(DI7(B $(DI8(B $(DI9(B $(DI:(B $(DI;(B $(DI<(B $(DI=(B $(DI>(B $(DI?(B +$(DI@(B $(DIA(B $(DIB(B $(DIC(B $(DID(B $(DIE(B $(DIF(B $(DIG(B $(DIH(B $(DII(B $(DIJ(B $(DIK(B $(DIL(B $(DIM(B $(DIN(B $(DIO(B +$(DIP(B $(DIQ(B $(DIR(B $(DIS(B $(DIT(B $(DIU(B $(DIV(B $(DIW(B $(DIX(B $(DIY(B $(DIZ(B $(DI[(B $(DI\(B $(DI](B $(DI^(B $(DI_(B +$(DI`(B $(DIa(B $(DIb(B $(DIc(B $(DId(B $(DIe(B $(DIf(B $(DIg(B $(DIh(B $(DIi(B $(DIj(B $(DIk(B $(DIl(B $(DIm(B $(DIn(B $(DIo(B +$(DIp(B $(DIq(B $(DIr(B $(DIs(B $(DIt(B $(DIu(B $(DIv(B $(DIw(B $(DIx(B $(DIy(B $(DIz(B $(DI{(B $(DI|(B $(DI}(B $(DI~(B + $(DJ!(B $(DJ"(B $(DJ#(B $(DJ$(B $(DJ%(B $(DJ&(B $(DJ'(B $(DJ((B $(DJ)(B $(DJ*(B $(DJ+(B $(DJ,(B $(DJ-(B $(DJ.(B $(DJ/(B +$(DJ0(B $(DJ1(B $(DJ2(B $(DJ3(B $(DJ4(B $(DJ5(B $(DJ6(B $(DJ7(B $(DJ8(B $(DJ9(B $(DJ:(B $(DJ;(B $(DJ<(B $(DJ=(B $(DJ>(B $(DJ?(B +$(DJ@(B $(DJA(B $(DJB(B $(DJC(B $(DJD(B $(DJE(B $(DJF(B $(DJG(B $(DJH(B $(DJI(B $(DJJ(B $(DJK(B $(DJL(B $(DJM(B $(DJN(B $(DJO(B +$(DJP(B $(DJQ(B $(DJR(B $(DJS(B $(DJT(B $(DJU(B $(DJV(B $(DJW(B $(DJX(B $(DJY(B $(DJZ(B $(DJ[(B $(DJ\(B $(DJ](B $(DJ^(B $(DJ_(B +$(DJ`(B $(DJa(B $(DJb(B $(DJc(B $(DJd(B $(DJe(B $(DJf(B $(DJg(B $(DJh(B $(DJi(B $(DJj(B $(DJk(B $(DJl(B $(DJm(B $(DJn(B $(DJo(B +$(DJp(B $(DJq(B $(DJr(B $(DJs(B $(DJt(B $(DJu(B $(DJv(B $(DJw(B $(DJx(B $(DJy(B $(DJz(B $(DJ{(B $(DJ|(B $(DJ}(B $(DJ~(B + $(DK!(B $(DK"(B $(DK#(B $(DK$(B $(DK%(B $(DK&(B $(DK'(B $(DK((B $(DK)(B $(DK*(B $(DK+(B $(DK,(B $(DK-(B $(DK.(B $(DK/(B +$(DK0(B $(DK1(B $(DK2(B $(DK3(B $(DK4(B $(DK5(B $(DK6(B $(DK7(B $(DK8(B $(DK9(B $(DK:(B $(DK;(B $(DK<(B $(DK=(B $(DK>(B $(DK?(B +$(DK@(B $(DKA(B $(DKB(B $(DKC(B $(DKD(B $(DKE(B $(DKF(B $(DKG(B $(DKH(B $(DKI(B $(DKJ(B $(DKK(B $(DKL(B $(DKM(B $(DKN(B $(DKO(B +$(DKP(B $(DKQ(B $(DKR(B $(DKS(B $(DKT(B $(DKU(B $(DKV(B $(DKW(B $(DKX(B $(DKY(B $(DKZ(B $(DK[(B $(DK\(B $(DK](B $(DK^(B $(DK_(B +$(DK`(B $(DKa(B $(DKb(B $(DKc(B $(DKd(B $(DKe(B $(DKf(B $(DKg(B $(DKh(B $(DKi(B $(DKj(B $(DKk(B $(DKl(B $(DKm(B $(DKn(B $(DKo(B +$(DKp(B $(DKq(B $(DKr(B $(DKs(B $(DKt(B $(DKu(B $(DKv(B $(DKw(B $(DKx(B $(DKy(B $(DKz(B $(DK{(B $(DK|(B $(DK}(B $(DK~(B + $(DL!(B $(DL"(B $(DL#(B $(DL$(B $(DL%(B $(DL&(B $(DL'(B $(DL((B $(DL)(B $(DL*(B $(DL+(B $(DL,(B $(DL-(B $(DL.(B $(DL/(B +$(DL0(B $(DL1(B $(DL2(B $(DL3(B $(DL4(B $(DL5(B $(DL6(B $(DL7(B $(DL8(B $(DL9(B $(DL:(B $(DL;(B $(DL<(B $(DL=(B $(DL>(B $(DL?(B +$(DL@(B $(DLA(B $(DLB(B $(DLC(B $(DLD(B $(DLE(B $(DLF(B $(DLG(B $(DLH(B $(DLI(B $(DLJ(B $(DLK(B $(DLL(B $(DLM(B $(DLN(B $(DLO(B +$(DLP(B $(DLQ(B $(DLR(B $(DLS(B $(DLT(B $(DLU(B $(DLV(B $(DLW(B $(DLX(B $(DLY(B $(DLZ(B $(DL[(B $(DL\(B $(DL](B $(DL^(B $(DL_(B +$(DL`(B $(DLa(B $(DLb(B $(DLc(B $(DLd(B $(DLe(B $(DLf(B $(DLg(B $(DLh(B $(DLi(B $(DLj(B $(DLk(B $(DLl(B $(DLm(B $(DLn(B $(DLo(B +$(DLp(B $(DLq(B $(DLr(B $(DLs(B $(DLt(B $(DLu(B $(DLv(B $(DLw(B $(DLx(B $(DLy(B $(DLz(B $(DL{(B $(DL|(B $(DL}(B $(DL~(B + $(DM!(B $(DM"(B $(DM#(B $(DM$(B $(DM%(B $(DM&(B $(DM'(B $(DM((B $(DM)(B $(DM*(B $(DM+(B $(DM,(B $(DM-(B $(DM.(B $(DM/(B +$(DM0(B $(DM1(B $(DM2(B $(DM3(B $(DM4(B $(DM5(B $(DM6(B $(DM7(B $(DM8(B $(DM9(B $(DM:(B $(DM;(B $(DM<(B $(DM=(B $(DM>(B $(DM?(B +$(DM@(B $(DMA(B $(DMB(B $(DMC(B $(DMD(B $(DME(B $(DMF(B $(DMG(B $(DMH(B $(DMI(B $(DMJ(B $(DMK(B $(DML(B $(DMM(B $(DMN(B $(DMO(B +$(DMP(B $(DMQ(B $(DMR(B $(DMS(B $(DMT(B $(DMU(B $(DMV(B $(DMW(B $(DMX(B $(DMY(B $(DMZ(B $(DM[(B $(DM\(B $(DM](B $(DM^(B $(DM_(B +$(DM`(B $(DMa(B $(DMb(B $(DMc(B $(DMd(B $(DMe(B $(DMf(B $(DMg(B $(DMh(B $(DMi(B $(DMj(B $(DMk(B $(DMl(B $(DMm(B $(DMn(B $(DMo(B +$(DMp(B $(DMq(B $(DMr(B $(DMs(B $(DMt(B $(DMu(B $(DMv(B $(DMw(B $(DMx(B $(DMy(B $(DMz(B $(DM{(B $(DM|(B $(DM}(B $(DM~(B + $(DN!(B $(DN"(B $(DN#(B $(DN$(B $(DN%(B $(DN&(B $(DN'(B $(DN((B $(DN)(B $(DN*(B $(DN+(B $(DN,(B $(DN-(B $(DN.(B $(DN/(B +$(DN0(B $(DN1(B $(DN2(B $(DN3(B $(DN4(B $(DN5(B $(DN6(B $(DN7(B $(DN8(B $(DN9(B $(DN:(B $(DN;(B $(DN<(B $(DN=(B $(DN>(B $(DN?(B +$(DN@(B $(DNA(B $(DNB(B $(DNC(B $(DND(B $(DNE(B $(DNF(B $(DNG(B $(DNH(B $(DNI(B $(DNJ(B $(DNK(B $(DNL(B $(DNM(B $(DNN(B $(DNO(B +$(DNP(B $(DNQ(B $(DNR(B $(DNS(B $(DNT(B $(DNU(B $(DNV(B $(DNW(B $(DNX(B $(DNY(B $(DNZ(B $(DN[(B $(DN\(B $(DN](B $(DN^(B $(DN_(B +$(DN`(B $(DNa(B $(DNb(B $(DNc(B $(DNd(B $(DNe(B $(DNf(B $(DNg(B $(DNh(B $(DNi(B $(DNj(B $(DNk(B $(DNl(B $(DNm(B $(DNn(B $(DNo(B +$(DNp(B $(DNq(B $(DNr(B $(DNs(B $(DNt(B $(DNu(B $(DNv(B $(DNw(B $(DNx(B $(DNy(B $(DNz(B $(DN{(B $(DN|(B $(DN}(B $(DN~(B + $(DO!(B $(DO"(B $(DO#(B $(DO$(B $(DO%(B $(DO&(B $(DO'(B $(DO((B $(DO)(B $(DO*(B $(DO+(B $(DO,(B $(DO-(B $(DO.(B $(DO/(B +$(DO0(B $(DO1(B $(DO2(B $(DO3(B $(DO4(B $(DO5(B $(DO6(B $(DO7(B $(DO8(B $(DO9(B $(DO:(B $(DO;(B $(DO<(B $(DO=(B $(DO>(B $(DO?(B +$(DO@(B $(DOA(B $(DOB(B $(DOC(B $(DOD(B $(DOE(B $(DOF(B $(DOG(B $(DOH(B $(DOI(B $(DOJ(B $(DOK(B $(DOL(B $(DOM(B $(DON(B $(DOO(B +$(DOP(B $(DOQ(B $(DOR(B $(DOS(B $(DOT(B $(DOU(B $(DOV(B $(DOW(B $(DOX(B $(DOY(B $(DOZ(B $(DO[(B $(DO\(B $(DO](B $(DO^(B $(DO_(B +$(DO`(B $(DOa(B $(DOb(B $(DOc(B $(DOd(B $(DOe(B $(DOf(B $(DOg(B $(DOh(B $(DOi(B $(DOj(B $(DOk(B $(DOl(B $(DOm(B $(DOn(B $(DOo(B +$(DOp(B $(DOq(B $(DOr(B $(DOs(B $(DOt(B $(DOu(B $(DOv(B $(DOw(B $(DOx(B $(DOy(B $(DOz(B $(DO{(B $(DO|(B $(DO}(B $(DO~(B + $(DP!(B $(DP"(B $(DP#(B $(DP$(B $(DP%(B $(DP&(B $(DP'(B $(DP((B $(DP)(B $(DP*(B $(DP+(B $(DP,(B $(DP-(B $(DP.(B $(DP/(B +$(DP0(B $(DP1(B $(DP2(B $(DP3(B $(DP4(B $(DP5(B $(DP6(B $(DP7(B $(DP8(B $(DP9(B $(DP:(B $(DP;(B $(DP<(B $(DP=(B $(DP>(B $(DP?(B +$(DP@(B $(DPA(B $(DPB(B $(DPC(B $(DPD(B $(DPE(B $(DPF(B $(DPG(B $(DPH(B $(DPI(B $(DPJ(B $(DPK(B $(DPL(B $(DPM(B $(DPN(B $(DPO(B +$(DPP(B $(DPQ(B $(DPR(B $(DPS(B $(DPT(B $(DPU(B $(DPV(B $(DPW(B $(DPX(B $(DPY(B $(DPZ(B $(DP[(B $(DP\(B $(DP](B $(DP^(B $(DP_(B +$(DP`(B $(DPa(B $(DPb(B $(DPc(B $(DPd(B $(DPe(B $(DPf(B $(DPg(B $(DPh(B $(DPi(B $(DPj(B $(DPk(B $(DPl(B $(DPm(B $(DPn(B $(DPo(B +$(DPp(B $(DPq(B $(DPr(B $(DPs(B $(DPt(B $(DPu(B $(DPv(B $(DPw(B $(DPx(B $(DPy(B $(DPz(B $(DP{(B $(DP|(B $(DP}(B $(DP~(B + $(DQ!(B $(DQ"(B $(DQ#(B $(DQ$(B $(DQ%(B $(DQ&(B $(DQ'(B $(DQ((B $(DQ)(B $(DQ*(B $(DQ+(B $(DQ,(B $(DQ-(B $(DQ.(B $(DQ/(B +$(DQ0(B $(DQ1(B $(DQ2(B $(DQ3(B $(DQ4(B $(DQ5(B $(DQ6(B $(DQ7(B $(DQ8(B $(DQ9(B $(DQ:(B $(DQ;(B $(DQ<(B $(DQ=(B $(DQ>(B $(DQ?(B +$(DQ@(B $(DQA(B $(DQB(B $(DQC(B $(DQD(B $(DQE(B $(DQF(B $(DQG(B $(DQH(B $(DQI(B $(DQJ(B $(DQK(B $(DQL(B $(DQM(B $(DQN(B $(DQO(B +$(DQP(B $(DQQ(B $(DQR(B $(DQS(B $(DQT(B $(DQU(B $(DQV(B $(DQW(B $(DQX(B $(DQY(B $(DQZ(B $(DQ[(B $(DQ\(B $(DQ](B $(DQ^(B $(DQ_(B +$(DQ`(B $(DQa(B $(DQb(B $(DQc(B $(DQd(B $(DQe(B $(DQf(B $(DQg(B $(DQh(B $(DQi(B $(DQj(B $(DQk(B $(DQl(B $(DQm(B $(DQn(B $(DQo(B +$(DQp(B $(DQq(B $(DQr(B $(DQs(B $(DQt(B $(DQu(B $(DQv(B $(DQw(B $(DQx(B $(DQy(B $(DQz(B $(DQ{(B $(DQ|(B $(DQ}(B $(DQ~(B + $(DR!(B $(DR"(B $(DR#(B $(DR$(B $(DR%(B $(DR&(B $(DR'(B $(DR((B $(DR)(B $(DR*(B $(DR+(B $(DR,(B $(DR-(B $(DR.(B $(DR/(B +$(DR0(B $(DR1(B $(DR2(B $(DR3(B $(DR4(B $(DR5(B $(DR6(B $(DR7(B $(DR8(B $(DR9(B $(DR:(B $(DR;(B $(DR<(B $(DR=(B $(DR>(B $(DR?(B +$(DR@(B $(DRA(B $(DRB(B $(DRC(B $(DRD(B $(DRE(B $(DRF(B $(DRG(B $(DRH(B $(DRI(B $(DRJ(B $(DRK(B $(DRL(B $(DRM(B $(DRN(B $(DRO(B +$(DRP(B $(DRQ(B $(DRR(B $(DRS(B $(DRT(B $(DRU(B $(DRV(B $(DRW(B $(DRX(B $(DRY(B $(DRZ(B $(DR[(B $(DR\(B $(DR](B $(DR^(B $(DR_(B +$(DR`(B $(DRa(B $(DRb(B $(DRc(B $(DRd(B $(DRe(B $(DRf(B $(DRg(B $(DRh(B $(DRi(B $(DRj(B $(DRk(B $(DRl(B $(DRm(B $(DRn(B $(DRo(B +$(DRp(B $(DRq(B $(DRr(B $(DRs(B $(DRt(B $(DRu(B $(DRv(B $(DRw(B $(DRx(B $(DRy(B $(DRz(B $(DR{(B $(DR|(B $(DR}(B $(DR~(B + $(DS!(B $(DS"(B $(DS#(B $(DS$(B $(DS%(B $(DS&(B $(DS'(B $(DS((B $(DS)(B $(DS*(B $(DS+(B $(DS,(B $(DS-(B $(DS.(B $(DS/(B +$(DS0(B $(DS1(B $(DS2(B $(DS3(B $(DS4(B $(DS5(B $(DS6(B $(DS7(B $(DS8(B $(DS9(B $(DS:(B $(DS;(B $(DS<(B $(DS=(B $(DS>(B $(DS?(B +$(DS@(B $(DSA(B $(DSB(B $(DSC(B $(DSD(B $(DSE(B $(DSF(B $(DSG(B $(DSH(B $(DSI(B $(DSJ(B $(DSK(B $(DSL(B $(DSM(B $(DSN(B $(DSO(B +$(DSP(B $(DSQ(B $(DSR(B $(DSS(B $(DST(B $(DSU(B $(DSV(B $(DSW(B $(DSX(B $(DSY(B $(DSZ(B $(DS[(B $(DS\(B $(DS](B $(DS^(B $(DS_(B +$(DS`(B $(DSa(B $(DSb(B $(DSc(B $(DSd(B $(DSe(B $(DSf(B $(DSg(B $(DSh(B $(DSi(B $(DSj(B $(DSk(B $(DSl(B $(DSm(B $(DSn(B $(DSo(B +$(DSp(B $(DSq(B $(DSr(B $(DSs(B $(DSt(B $(DSu(B $(DSv(B $(DSw(B $(DSx(B $(DSy(B $(DSz(B $(DS{(B $(DS|(B $(DS}(B $(DS~(B + $(DT!(B $(DT"(B $(DT#(B $(DT$(B $(DT%(B $(DT&(B $(DT'(B $(DT((B $(DT)(B $(DT*(B $(DT+(B $(DT,(B $(DT-(B $(DT.(B $(DT/(B +$(DT0(B $(DT1(B $(DT2(B $(DT3(B $(DT4(B $(DT5(B $(DT6(B $(DT7(B $(DT8(B $(DT9(B $(DT:(B $(DT;(B $(DT<(B $(DT=(B $(DT>(B $(DT?(B +$(DT@(B $(DTA(B $(DTB(B $(DTC(B $(DTD(B $(DTE(B $(DTF(B $(DTG(B $(DTH(B $(DTI(B $(DTJ(B $(DTK(B $(DTL(B $(DTM(B $(DTN(B $(DTO(B +$(DTP(B $(DTQ(B $(DTR(B $(DTS(B $(DTT(B $(DTU(B $(DTV(B $(DTW(B $(DTX(B $(DTY(B $(DTZ(B $(DT[(B $(DT\(B $(DT](B $(DT^(B $(DT_(B +$(DT`(B $(DTa(B $(DTb(B $(DTc(B $(DTd(B $(DTe(B $(DTf(B $(DTg(B $(DTh(B $(DTi(B $(DTj(B $(DTk(B $(DTl(B $(DTm(B $(DTn(B $(DTo(B +$(DTp(B $(DTq(B $(DTr(B $(DTs(B $(DTt(B $(DTu(B $(DTv(B $(DTw(B $(DTx(B $(DTy(B $(DTz(B $(DT{(B $(DT|(B $(DT}(B $(DT~(B + $(DU!(B $(DU"(B $(DU#(B $(DU$(B $(DU%(B $(DU&(B $(DU'(B $(DU((B $(DU)(B $(DU*(B $(DU+(B $(DU,(B $(DU-(B $(DU.(B $(DU/(B +$(DU0(B $(DU1(B $(DU2(B $(DU3(B $(DU4(B $(DU5(B $(DU6(B $(DU7(B $(DU8(B $(DU9(B $(DU:(B $(DU;(B $(DU<(B $(DU=(B $(DU>(B $(DU?(B +$(DU@(B $(DUA(B $(DUB(B $(DUC(B $(DUD(B $(DUE(B $(DUF(B $(DUG(B $(DUH(B $(DUI(B $(DUJ(B $(DUK(B $(DUL(B $(DUM(B $(DUN(B $(DUO(B +$(DUP(B $(DUQ(B $(DUR(B $(DUS(B $(DUT(B $(DUU(B $(DUV(B $(DUW(B $(DUX(B $(DUY(B $(DUZ(B $(DU[(B $(DU\(B $(DU](B $(DU^(B $(DU_(B +$(DU`(B $(DUa(B $(DUb(B $(DUc(B $(DUd(B $(DUe(B $(DUf(B $(DUg(B $(DUh(B $(DUi(B $(DUj(B $(DUk(B $(DUl(B $(DUm(B $(DUn(B $(DUo(B +$(DUp(B $(DUq(B $(DUr(B $(DUs(B $(DUt(B $(DUu(B $(DUv(B $(DUw(B $(DUx(B $(DUy(B $(DUz(B $(DU{(B $(DU|(B $(DU}(B $(DU~(B + $(DV!(B $(DV"(B $(DV#(B $(DV$(B $(DV%(B $(DV&(B $(DV'(B $(DV((B $(DV)(B $(DV*(B $(DV+(B $(DV,(B $(DV-(B $(DV.(B $(DV/(B +$(DV0(B $(DV1(B $(DV2(B $(DV3(B $(DV4(B $(DV5(B $(DV6(B $(DV7(B $(DV8(B $(DV9(B $(DV:(B $(DV;(B $(DV<(B $(DV=(B $(DV>(B $(DV?(B +$(DV@(B $(DVA(B $(DVB(B $(DVC(B $(DVD(B $(DVE(B $(DVF(B $(DVG(B $(DVH(B $(DVI(B $(DVJ(B $(DVK(B $(DVL(B $(DVM(B $(DVN(B $(DVO(B +$(DVP(B $(DVQ(B $(DVR(B $(DVS(B $(DVT(B $(DVU(B $(DVV(B $(DVW(B $(DVX(B $(DVY(B $(DVZ(B $(DV[(B $(DV\(B $(DV](B $(DV^(B $(DV_(B +$(DV`(B $(DVa(B $(DVb(B $(DVc(B $(DVd(B $(DVe(B $(DVf(B $(DVg(B $(DVh(B $(DVi(B $(DVj(B $(DVk(B $(DVl(B $(DVm(B $(DVn(B $(DVo(B +$(DVp(B $(DVq(B $(DVr(B $(DVs(B $(DVt(B $(DVu(B $(DVv(B $(DVw(B $(DVx(B $(DVy(B $(DVz(B $(DV{(B $(DV|(B $(DV}(B $(DV~(B + $(DW!(B $(DW"(B $(DW#(B $(DW$(B $(DW%(B $(DW&(B $(DW'(B $(DW((B $(DW)(B $(DW*(B $(DW+(B $(DW,(B $(DW-(B $(DW.(B $(DW/(B +$(DW0(B $(DW1(B $(DW2(B $(DW3(B $(DW4(B $(DW5(B $(DW6(B $(DW7(B $(DW8(B $(DW9(B $(DW:(B $(DW;(B $(DW<(B $(DW=(B $(DW>(B $(DW?(B +$(DW@(B $(DWA(B $(DWB(B $(DWC(B $(DWD(B $(DWE(B $(DWF(B $(DWG(B $(DWH(B $(DWI(B $(DWJ(B $(DWK(B $(DWL(B $(DWM(B $(DWN(B $(DWO(B +$(DWP(B $(DWQ(B $(DWR(B $(DWS(B $(DWT(B $(DWU(B $(DWV(B $(DWW(B $(DWX(B $(DWY(B $(DWZ(B $(DW[(B $(DW\(B $(DW](B $(DW^(B $(DW_(B +$(DW`(B $(DWa(B $(DWb(B $(DWc(B $(DWd(B $(DWe(B $(DWf(B $(DWg(B $(DWh(B $(DWi(B $(DWj(B $(DWk(B $(DWl(B $(DWm(B $(DWn(B $(DWo(B +$(DWp(B $(DWq(B $(DWr(B $(DWs(B $(DWt(B $(DWu(B $(DWv(B $(DWw(B $(DWx(B $(DWy(B $(DWz(B $(DW{(B $(DW|(B $(DW}(B $(DW~(B + $(DX!(B $(DX"(B $(DX#(B $(DX$(B $(DX%(B $(DX&(B $(DX'(B $(DX((B $(DX)(B $(DX*(B $(DX+(B $(DX,(B $(DX-(B $(DX.(B $(DX/(B +$(DX0(B $(DX1(B $(DX2(B $(DX3(B $(DX4(B $(DX5(B $(DX6(B $(DX7(B $(DX8(B $(DX9(B $(DX:(B $(DX;(B $(DX<(B $(DX=(B $(DX>(B $(DX?(B +$(DX@(B $(DXA(B $(DXB(B $(DXC(B $(DXD(B $(DXE(B $(DXF(B $(DXG(B $(DXH(B $(DXI(B $(DXJ(B $(DXK(B $(DXL(B $(DXM(B $(DXN(B $(DXO(B +$(DXP(B $(DXQ(B $(DXR(B $(DXS(B $(DXT(B $(DXU(B $(DXV(B $(DXW(B $(DXX(B $(DXY(B $(DXZ(B $(DX[(B $(DX\(B $(DX](B $(DX^(B $(DX_(B +$(DX`(B $(DXa(B $(DXb(B $(DXc(B $(DXd(B $(DXe(B $(DXf(B $(DXg(B $(DXh(B $(DXi(B $(DXj(B $(DXk(B $(DXl(B $(DXm(B $(DXn(B $(DXo(B +$(DXp(B $(DXq(B $(DXr(B $(DXs(B $(DXt(B $(DXu(B $(DXv(B $(DXw(B $(DXx(B $(DXy(B $(DXz(B $(DX{(B $(DX|(B $(DX}(B $(DX~(B + $(DY!(B $(DY"(B $(DY#(B $(DY$(B $(DY%(B $(DY&(B $(DY'(B $(DY((B $(DY)(B $(DY*(B $(DY+(B $(DY,(B $(DY-(B $(DY.(B $(DY/(B +$(DY0(B $(DY1(B $(DY2(B $(DY3(B $(DY4(B $(DY5(B $(DY6(B $(DY7(B $(DY8(B $(DY9(B $(DY:(B $(DY;(B $(DY<(B $(DY=(B $(DY>(B $(DY?(B +$(DY@(B $(DYA(B $(DYB(B $(DYC(B $(DYD(B $(DYE(B $(DYF(B $(DYG(B $(DYH(B $(DYI(B $(DYJ(B $(DYK(B $(DYL(B $(DYM(B $(DYN(B $(DYO(B +$(DYP(B $(DYQ(B $(DYR(B $(DYS(B $(DYT(B $(DYU(B $(DYV(B $(DYW(B $(DYX(B $(DYY(B $(DYZ(B $(DY[(B $(DY\(B $(DY](B $(DY^(B $(DY_(B +$(DY`(B $(DYa(B $(DYb(B $(DYc(B $(DYd(B $(DYe(B $(DYf(B $(DYg(B $(DYh(B $(DYi(B $(DYj(B $(DYk(B $(DYl(B $(DYm(B $(DYn(B $(DYo(B +$(DYp(B $(DYq(B $(DYr(B $(DYs(B $(DYt(B $(DYu(B $(DYv(B $(DYw(B $(DYx(B $(DYy(B $(DYz(B $(DY{(B $(DY|(B $(DY}(B $(DY~(B + $(DZ!(B $(DZ"(B $(DZ#(B $(DZ$(B $(DZ%(B $(DZ&(B $(DZ'(B $(DZ((B $(DZ)(B $(DZ*(B $(DZ+(B $(DZ,(B $(DZ-(B $(DZ.(B $(DZ/(B +$(DZ0(B $(DZ1(B $(DZ2(B $(DZ3(B $(DZ4(B $(DZ5(B $(DZ6(B $(DZ7(B $(DZ8(B $(DZ9(B $(DZ:(B $(DZ;(B $(DZ<(B $(DZ=(B $(DZ>(B $(DZ?(B +$(DZ@(B $(DZA(B $(DZB(B $(DZC(B $(DZD(B $(DZE(B $(DZF(B $(DZG(B $(DZH(B $(DZI(B $(DZJ(B $(DZK(B $(DZL(B $(DZM(B $(DZN(B $(DZO(B +$(DZP(B $(DZQ(B $(DZR(B $(DZS(B $(DZT(B $(DZU(B $(DZV(B $(DZW(B $(DZX(B $(DZY(B $(DZZ(B $(DZ[(B $(DZ\(B $(DZ](B $(DZ^(B $(DZ_(B +$(DZ`(B $(DZa(B $(DZb(B $(DZc(B $(DZd(B $(DZe(B $(DZf(B $(DZg(B $(DZh(B $(DZi(B $(DZj(B $(DZk(B $(DZl(B $(DZm(B $(DZn(B $(DZo(B +$(DZp(B $(DZq(B $(DZr(B $(DZs(B $(DZt(B $(DZu(B $(DZv(B $(DZw(B $(DZx(B $(DZy(B $(DZz(B $(DZ{(B $(DZ|(B $(DZ}(B $(DZ~(B + $(D[!(B $(D["(B $(D[#(B $(D[$(B $(D[%(B $(D[&(B $(D['(B $(D[((B $(D[)(B $(D[*(B $(D[+(B $(D[,(B $(D[-(B $(D[.(B $(D[/(B +$(D[0(B $(D[1(B $(D[2(B $(D[3(B $(D[4(B $(D[5(B $(D[6(B $(D[7(B $(D[8(B $(D[9(B $(D[:(B $(D[;(B $(D[<(B $(D[=(B $(D[>(B $(D[?(B +$(D[@(B $(D[A(B $(D[B(B $(D[C(B $(D[D(B $(D[E(B $(D[F(B $(D[G(B $(D[H(B $(D[I(B $(D[J(B $(D[K(B $(D[L(B $(D[M(B $(D[N(B $(D[O(B +$(D[P(B $(D[Q(B $(D[R(B $(D[S(B $(D[T(B $(D[U(B $(D[V(B $(D[W(B $(D[X(B $(D[Y(B $(D[Z(B $(D[[(B $(D[\(B $(D[](B $(D[^(B $(D[_(B +$(D[`(B $(D[a(B $(D[b(B $(D[c(B $(D[d(B $(D[e(B $(D[f(B $(D[g(B $(D[h(B $(D[i(B $(D[j(B $(D[k(B $(D[l(B $(D[m(B $(D[n(B $(D[o(B +$(D[p(B $(D[q(B $(D[r(B $(D[s(B $(D[t(B $(D[u(B $(D[v(B $(D[w(B $(D[x(B $(D[y(B $(D[z(B $(D[{(B $(D[|(B $(D[}(B $(D[~(B + $(D\!(B $(D\"(B $(D\#(B $(D\$(B $(D\%(B $(D\&(B $(D\'(B $(D\((B $(D\)(B $(D\*(B $(D\+(B $(D\,(B $(D\-(B $(D\.(B $(D\/(B +$(D\0(B $(D\1(B $(D\2(B $(D\3(B $(D\4(B $(D\5(B $(D\6(B $(D\7(B $(D\8(B $(D\9(B $(D\:(B $(D\;(B $(D\<(B $(D\=(B $(D\>(B $(D\?(B +$(D\@(B $(D\A(B $(D\B(B $(D\C(B $(D\D(B $(D\E(B $(D\F(B $(D\G(B $(D\H(B $(D\I(B $(D\J(B $(D\K(B $(D\L(B $(D\M(B $(D\N(B $(D\O(B +$(D\P(B $(D\Q(B $(D\R(B $(D\S(B $(D\T(B $(D\U(B $(D\V(B $(D\W(B $(D\X(B $(D\Y(B $(D\Z(B $(D\[(B $(D\\(B $(D\](B $(D\^(B $(D\_(B +$(D\`(B $(D\a(B $(D\b(B $(D\c(B $(D\d(B $(D\e(B $(D\f(B $(D\g(B $(D\h(B $(D\i(B $(D\j(B $(D\k(B $(D\l(B $(D\m(B $(D\n(B $(D\o(B +$(D\p(B $(D\q(B $(D\r(B $(D\s(B $(D\t(B $(D\u(B $(D\v(B $(D\w(B $(D\x(B $(D\y(B $(D\z(B $(D\{(B $(D\|(B $(D\}(B $(D\~(B + $(D]!(B $(D]"(B $(D]#(B $(D]$(B $(D]%(B $(D]&(B $(D]'(B $(D]((B $(D])(B $(D]*(B $(D]+(B $(D],(B $(D]-(B $(D].(B $(D]/(B +$(D]0(B $(D]1(B $(D]2(B $(D]3(B $(D]4(B $(D]5(B $(D]6(B $(D]7(B $(D]8(B $(D]9(B $(D]:(B $(D];(B $(D]<(B $(D]=(B $(D]>(B $(D]?(B +$(D]@(B $(D]A(B $(D]B(B $(D]C(B $(D]D(B $(D]E(B $(D]F(B $(D]G(B $(D]H(B $(D]I(B $(D]J(B $(D]K(B $(D]L(B $(D]M(B $(D]N(B $(D]O(B +$(D]P(B $(D]Q(B $(D]R(B $(D]S(B $(D]T(B $(D]U(B $(D]V(B $(D]W(B $(D]X(B $(D]Y(B $(D]Z(B $(D][(B $(D]\(B $(D]](B $(D]^(B $(D]_(B +$(D]`(B $(D]a(B $(D]b(B $(D]c(B $(D]d(B $(D]e(B $(D]f(B $(D]g(B $(D]h(B $(D]i(B $(D]j(B $(D]k(B $(D]l(B $(D]m(B $(D]n(B $(D]o(B +$(D]p(B $(D]q(B $(D]r(B $(D]s(B $(D]t(B $(D]u(B $(D]v(B $(D]w(B $(D]x(B $(D]y(B $(D]z(B $(D]{(B $(D]|(B $(D]}(B $(D]~(B + $(D^!(B $(D^"(B $(D^#(B $(D^$(B $(D^%(B $(D^&(B $(D^'(B $(D^((B $(D^)(B $(D^*(B $(D^+(B $(D^,(B $(D^-(B $(D^.(B $(D^/(B +$(D^0(B $(D^1(B $(D^2(B $(D^3(B $(D^4(B $(D^5(B $(D^6(B $(D^7(B $(D^8(B $(D^9(B $(D^:(B $(D^;(B $(D^<(B $(D^=(B $(D^>(B $(D^?(B +$(D^@(B $(D^A(B $(D^B(B $(D^C(B $(D^D(B $(D^E(B $(D^F(B $(D^G(B $(D^H(B $(D^I(B $(D^J(B $(D^K(B $(D^L(B $(D^M(B $(D^N(B $(D^O(B +$(D^P(B $(D^Q(B $(D^R(B $(D^S(B $(D^T(B $(D^U(B $(D^V(B $(D^W(B $(D^X(B $(D^Y(B $(D^Z(B $(D^[(B $(D^\(B $(D^](B $(D^^(B $(D^_(B +$(D^`(B $(D^a(B $(D^b(B $(D^c(B $(D^d(B $(D^e(B $(D^f(B $(D^g(B $(D^h(B $(D^i(B $(D^j(B $(D^k(B $(D^l(B $(D^m(B $(D^n(B $(D^o(B +$(D^p(B $(D^q(B $(D^r(B $(D^s(B $(D^t(B $(D^u(B $(D^v(B $(D^w(B $(D^x(B $(D^y(B $(D^z(B $(D^{(B $(D^|(B $(D^}(B $(D^~(B + $(D_!(B $(D_"(B $(D_#(B $(D_$(B $(D_%(B $(D_&(B $(D_'(B $(D_((B $(D_)(B $(D_*(B $(D_+(B $(D_,(B $(D_-(B $(D_.(B $(D_/(B +$(D_0(B $(D_1(B $(D_2(B $(D_3(B $(D_4(B $(D_5(B $(D_6(B $(D_7(B $(D_8(B $(D_9(B $(D_:(B $(D_;(B $(D_<(B $(D_=(B $(D_>(B $(D_?(B +$(D_@(B $(D_A(B $(D_B(B $(D_C(B $(D_D(B $(D_E(B $(D_F(B $(D_G(B $(D_H(B $(D_I(B $(D_J(B $(D_K(B $(D_L(B $(D_M(B $(D_N(B $(D_O(B +$(D_P(B $(D_Q(B $(D_R(B $(D_S(B $(D_T(B $(D_U(B $(D_V(B $(D_W(B $(D_X(B $(D_Y(B $(D_Z(B $(D_[(B $(D_\(B $(D_](B $(D_^(B $(D__(B +$(D_`(B $(D_a(B $(D_b(B $(D_c(B $(D_d(B $(D_e(B $(D_f(B $(D_g(B $(D_h(B $(D_i(B $(D_j(B $(D_k(B $(D_l(B $(D_m(B $(D_n(B $(D_o(B +$(D_p(B $(D_q(B $(D_r(B $(D_s(B $(D_t(B $(D_u(B $(D_v(B $(D_w(B $(D_x(B $(D_y(B $(D_z(B $(D_{(B $(D_|(B $(D_}(B $(D_~(B + $(D`!(B $(D`"(B $(D`#(B $(D`$(B $(D`%(B $(D`&(B $(D`'(B $(D`((B $(D`)(B $(D`*(B $(D`+(B $(D`,(B $(D`-(B $(D`.(B $(D`/(B +$(D`0(B $(D`1(B $(D`2(B $(D`3(B $(D`4(B $(D`5(B $(D`6(B $(D`7(B $(D`8(B $(D`9(B $(D`:(B $(D`;(B $(D`<(B $(D`=(B $(D`>(B $(D`?(B +$(D`@(B $(D`A(B $(D`B(B $(D`C(B $(D`D(B $(D`E(B $(D`F(B $(D`G(B $(D`H(B $(D`I(B $(D`J(B $(D`K(B $(D`L(B $(D`M(B $(D`N(B $(D`O(B +$(D`P(B $(D`Q(B $(D`R(B $(D`S(B $(D`T(B $(D`U(B $(D`V(B $(D`W(B $(D`X(B $(D`Y(B $(D`Z(B $(D`[(B $(D`\(B $(D`](B $(D`^(B $(D`_(B +$(D``(B $(D`a(B $(D`b(B $(D`c(B $(D`d(B $(D`e(B $(D`f(B $(D`g(B $(D`h(B $(D`i(B $(D`j(B $(D`k(B $(D`l(B $(D`m(B $(D`n(B $(D`o(B +$(D`p(B $(D`q(B $(D`r(B $(D`s(B $(D`t(B $(D`u(B $(D`v(B $(D`w(B $(D`x(B $(D`y(B $(D`z(B $(D`{(B $(D`|(B $(D`}(B $(D`~(B + $(Da!(B $(Da"(B $(Da#(B $(Da$(B $(Da%(B $(Da&(B $(Da'(B $(Da((B $(Da)(B $(Da*(B $(Da+(B $(Da,(B $(Da-(B $(Da.(B $(Da/(B +$(Da0(B $(Da1(B $(Da2(B $(Da3(B $(Da4(B $(Da5(B $(Da6(B $(Da7(B $(Da8(B $(Da9(B $(Da:(B $(Da;(B $(Da<(B $(Da=(B $(Da>(B $(Da?(B +$(Da@(B $(DaA(B $(DaB(B $(DaC(B $(DaD(B $(DaE(B $(DaF(B $(DaG(B $(DaH(B $(DaI(B $(DaJ(B $(DaK(B $(DaL(B $(DaM(B $(DaN(B $(DaO(B +$(DaP(B $(DaQ(B $(DaR(B $(DaS(B $(DaT(B $(DaU(B $(DaV(B $(DaW(B $(DaX(B $(DaY(B $(DaZ(B $(Da[(B $(Da\(B $(Da](B $(Da^(B $(Da_(B +$(Da`(B $(Daa(B $(Dab(B $(Dac(B $(Dad(B $(Dae(B $(Daf(B $(Dag(B $(Dah(B $(Dai(B $(Daj(B $(Dak(B $(Dal(B $(Dam(B $(Dan(B $(Dao(B +$(Dap(B $(Daq(B $(Dar(B $(Das(B $(Dat(B $(Dau(B $(Dav(B $(Daw(B $(Dax(B $(Day(B $(Daz(B $(Da{(B $(Da|(B $(Da}(B $(Da~(B + $(Db!(B $(Db"(B $(Db#(B $(Db$(B $(Db%(B $(Db&(B $(Db'(B $(Db((B $(Db)(B $(Db*(B $(Db+(B $(Db,(B $(Db-(B $(Db.(B $(Db/(B +$(Db0(B $(Db1(B $(Db2(B $(Db3(B $(Db4(B $(Db5(B $(Db6(B $(Db7(B $(Db8(B $(Db9(B $(Db:(B $(Db;(B $(Db<(B $(Db=(B $(Db>(B $(Db?(B +$(Db@(B $(DbA(B $(DbB(B $(DbC(B $(DbD(B $(DbE(B $(DbF(B $(DbG(B $(DbH(B $(DbI(B $(DbJ(B $(DbK(B $(DbL(B $(DbM(B $(DbN(B $(DbO(B +$(DbP(B $(DbQ(B $(DbR(B $(DbS(B $(DbT(B $(DbU(B $(DbV(B $(DbW(B $(DbX(B $(DbY(B $(DbZ(B $(Db[(B $(Db\(B $(Db](B $(Db^(B $(Db_(B +$(Db`(B $(Dba(B $(Dbb(B $(Dbc(B $(Dbd(B $(Dbe(B $(Dbf(B $(Dbg(B $(Dbh(B $(Dbi(B $(Dbj(B $(Dbk(B $(Dbl(B $(Dbm(B $(Dbn(B $(Dbo(B +$(Dbp(B $(Dbq(B $(Dbr(B $(Dbs(B $(Dbt(B $(Dbu(B $(Dbv(B $(Dbw(B $(Dbx(B $(Dby(B $(Dbz(B $(Db{(B $(Db|(B $(Db}(B $(Db~(B + $(Dc!(B $(Dc"(B $(Dc#(B $(Dc$(B $(Dc%(B $(Dc&(B $(Dc'(B $(Dc((B $(Dc)(B $(Dc*(B $(Dc+(B $(Dc,(B $(Dc-(B $(Dc.(B $(Dc/(B +$(Dc0(B $(Dc1(B $(Dc2(B $(Dc3(B $(Dc4(B $(Dc5(B $(Dc6(B $(Dc7(B $(Dc8(B $(Dc9(B $(Dc:(B $(Dc;(B $(Dc<(B $(Dc=(B $(Dc>(B $(Dc?(B +$(Dc@(B $(DcA(B $(DcB(B $(DcC(B $(DcD(B $(DcE(B $(DcF(B $(DcG(B $(DcH(B $(DcI(B $(DcJ(B $(DcK(B $(DcL(B $(DcM(B $(DcN(B $(DcO(B +$(DcP(B $(DcQ(B $(DcR(B $(DcS(B $(DcT(B $(DcU(B $(DcV(B $(DcW(B $(DcX(B $(DcY(B $(DcZ(B $(Dc[(B $(Dc\(B $(Dc](B $(Dc^(B $(Dc_(B +$(Dc`(B $(Dca(B $(Dcb(B $(Dcc(B $(Dcd(B $(Dce(B $(Dcf(B $(Dcg(B $(Dch(B $(Dci(B $(Dcj(B $(Dck(B $(Dcl(B $(Dcm(B $(Dcn(B $(Dco(B +$(Dcp(B $(Dcq(B $(Dcr(B $(Dcs(B $(Dct(B $(Dcu(B $(Dcv(B $(Dcw(B $(Dcx(B $(Dcy(B $(Dcz(B $(Dc{(B $(Dc|(B $(Dc}(B $(Dc~(B + $(Dd!(B $(Dd"(B $(Dd#(B $(Dd$(B $(Dd%(B $(Dd&(B $(Dd'(B $(Dd((B $(Dd)(B $(Dd*(B $(Dd+(B $(Dd,(B $(Dd-(B $(Dd.(B $(Dd/(B +$(Dd0(B $(Dd1(B $(Dd2(B $(Dd3(B $(Dd4(B $(Dd5(B $(Dd6(B $(Dd7(B $(Dd8(B $(Dd9(B $(Dd:(B $(Dd;(B $(Dd<(B $(Dd=(B $(Dd>(B $(Dd?(B +$(Dd@(B $(DdA(B $(DdB(B $(DdC(B $(DdD(B $(DdE(B $(DdF(B $(DdG(B $(DdH(B $(DdI(B $(DdJ(B $(DdK(B $(DdL(B $(DdM(B $(DdN(B $(DdO(B +$(DdP(B $(DdQ(B $(DdR(B $(DdS(B $(DdT(B $(DdU(B $(DdV(B $(DdW(B $(DdX(B $(DdY(B $(DdZ(B $(Dd[(B $(Dd\(B $(Dd](B $(Dd^(B $(Dd_(B +$(Dd`(B $(Dda(B $(Ddb(B $(Ddc(B $(Ddd(B $(Dde(B $(Ddf(B $(Ddg(B $(Ddh(B $(Ddi(B $(Ddj(B $(Ddk(B $(Ddl(B $(Ddm(B $(Ddn(B $(Ddo(B +$(Ddp(B $(Ddq(B $(Ddr(B $(Dds(B $(Ddt(B $(Ddu(B $(Ddv(B $(Ddw(B $(Ddx(B $(Ddy(B $(Ddz(B $(Dd{(B $(Dd|(B $(Dd}(B $(Dd~(B + $(De!(B $(De"(B $(De#(B $(De$(B $(De%(B $(De&(B $(De'(B $(De((B $(De)(B $(De*(B $(De+(B $(De,(B $(De-(B $(De.(B $(De/(B +$(De0(B $(De1(B $(De2(B $(De3(B $(De4(B $(De5(B $(De6(B $(De7(B $(De8(B $(De9(B $(De:(B $(De;(B $(De<(B $(De=(B $(De>(B $(De?(B +$(De@(B $(DeA(B $(DeB(B $(DeC(B $(DeD(B $(DeE(B $(DeF(B $(DeG(B $(DeH(B $(DeI(B $(DeJ(B $(DeK(B $(DeL(B $(DeM(B $(DeN(B $(DeO(B +$(DeP(B $(DeQ(B $(DeR(B $(DeS(B $(DeT(B $(DeU(B $(DeV(B $(DeW(B $(DeX(B $(DeY(B $(DeZ(B $(De[(B $(De\(B $(De](B $(De^(B $(De_(B +$(De`(B $(Dea(B $(Deb(B $(Dec(B $(Ded(B $(Dee(B $(Def(B $(Deg(B $(Deh(B $(Dei(B $(Dej(B $(Dek(B $(Del(B $(Dem(B $(Den(B $(Deo(B +$(Dep(B $(Deq(B $(Der(B $(Des(B $(Det(B $(Deu(B $(Dev(B $(Dew(B $(Dex(B $(Dey(B $(Dez(B $(De{(B $(De|(B $(De}(B $(De~(B + $(Df!(B $(Df"(B $(Df#(B $(Df$(B $(Df%(B $(Df&(B $(Df'(B $(Df((B $(Df)(B $(Df*(B $(Df+(B $(Df,(B $(Df-(B $(Df.(B $(Df/(B +$(Df0(B $(Df1(B $(Df2(B $(Df3(B $(Df4(B $(Df5(B $(Df6(B $(Df7(B $(Df8(B $(Df9(B $(Df:(B $(Df;(B $(Df<(B $(Df=(B $(Df>(B $(Df?(B +$(Df@(B $(DfA(B $(DfB(B $(DfC(B $(DfD(B $(DfE(B $(DfF(B $(DfG(B $(DfH(B $(DfI(B $(DfJ(B $(DfK(B $(DfL(B $(DfM(B $(DfN(B $(DfO(B +$(DfP(B $(DfQ(B $(DfR(B $(DfS(B $(DfT(B $(DfU(B $(DfV(B $(DfW(B $(DfX(B $(DfY(B $(DfZ(B $(Df[(B $(Df\(B $(Df](B $(Df^(B $(Df_(B +$(Df`(B $(Dfa(B $(Dfb(B $(Dfc(B $(Dfd(B $(Dfe(B $(Dff(B $(Dfg(B $(Dfh(B $(Dfi(B $(Dfj(B $(Dfk(B $(Dfl(B $(Dfm(B $(Dfn(B $(Dfo(B +$(Dfp(B $(Dfq(B $(Dfr(B $(Dfs(B $(Dft(B $(Dfu(B $(Dfv(B $(Dfw(B $(Dfx(B $(Dfy(B $(Dfz(B $(Df{(B $(Df|(B $(Df}(B $(Df~(B + $(Dg!(B $(Dg"(B $(Dg#(B $(Dg$(B $(Dg%(B $(Dg&(B $(Dg'(B $(Dg((B $(Dg)(B $(Dg*(B $(Dg+(B $(Dg,(B $(Dg-(B $(Dg.(B $(Dg/(B +$(Dg0(B $(Dg1(B $(Dg2(B $(Dg3(B $(Dg4(B $(Dg5(B $(Dg6(B $(Dg7(B $(Dg8(B $(Dg9(B $(Dg:(B $(Dg;(B $(Dg<(B $(Dg=(B $(Dg>(B $(Dg?(B +$(Dg@(B $(DgA(B $(DgB(B $(DgC(B $(DgD(B $(DgE(B $(DgF(B $(DgG(B $(DgH(B $(DgI(B $(DgJ(B $(DgK(B $(DgL(B $(DgM(B $(DgN(B $(DgO(B +$(DgP(B $(DgQ(B $(DgR(B $(DgS(B $(DgT(B $(DgU(B $(DgV(B $(DgW(B $(DgX(B $(DgY(B $(DgZ(B $(Dg[(B $(Dg\(B $(Dg](B $(Dg^(B $(Dg_(B +$(Dg`(B $(Dga(B $(Dgb(B $(Dgc(B $(Dgd(B $(Dge(B $(Dgf(B $(Dgg(B $(Dgh(B $(Dgi(B $(Dgj(B $(Dgk(B $(Dgl(B $(Dgm(B $(Dgn(B $(Dgo(B +$(Dgp(B $(Dgq(B $(Dgr(B $(Dgs(B $(Dgt(B $(Dgu(B $(Dgv(B $(Dgw(B $(Dgx(B $(Dgy(B $(Dgz(B $(Dg{(B $(Dg|(B $(Dg}(B $(Dg~(B + $(Dh!(B $(Dh"(B $(Dh#(B $(Dh$(B $(Dh%(B $(Dh&(B $(Dh'(B $(Dh((B $(Dh)(B $(Dh*(B $(Dh+(B $(Dh,(B $(Dh-(B $(Dh.(B $(Dh/(B +$(Dh0(B $(Dh1(B $(Dh2(B $(Dh3(B $(Dh4(B $(Dh5(B $(Dh6(B $(Dh7(B $(Dh8(B $(Dh9(B $(Dh:(B $(Dh;(B $(Dh<(B $(Dh=(B $(Dh>(B $(Dh?(B +$(Dh@(B $(DhA(B $(DhB(B $(DhC(B $(DhD(B $(DhE(B $(DhF(B $(DhG(B $(DhH(B $(DhI(B $(DhJ(B $(DhK(B $(DhL(B $(DhM(B $(DhN(B $(DhO(B +$(DhP(B $(DhQ(B $(DhR(B $(DhS(B $(DhT(B $(DhU(B $(DhV(B $(DhW(B $(DhX(B $(DhY(B $(DhZ(B $(Dh[(B $(Dh\(B $(Dh](B $(Dh^(B $(Dh_(B +$(Dh`(B $(Dha(B $(Dhb(B $(Dhc(B $(Dhd(B $(Dhe(B $(Dhf(B $(Dhg(B $(Dhh(B $(Dhi(B $(Dhj(B $(Dhk(B $(Dhl(B $(Dhm(B $(Dhn(B $(Dho(B +$(Dhp(B $(Dhq(B $(Dhr(B $(Dhs(B $(Dht(B $(Dhu(B $(Dhv(B $(Dhw(B $(Dhx(B $(Dhy(B $(Dhz(B $(Dh{(B $(Dh|(B $(Dh}(B $(Dh~(B + $(Di!(B $(Di"(B $(Di#(B $(Di$(B $(Di%(B $(Di&(B $(Di'(B $(Di((B $(Di)(B $(Di*(B $(Di+(B $(Di,(B $(Di-(B $(Di.(B $(Di/(B +$(Di0(B $(Di1(B $(Di2(B $(Di3(B $(Di4(B $(Di5(B $(Di6(B $(Di7(B $(Di8(B $(Di9(B $(Di:(B $(Di;(B $(Di<(B $(Di=(B $(Di>(B $(Di?(B +$(Di@(B $(DiA(B $(DiB(B $(DiC(B $(DiD(B $(DiE(B $(DiF(B $(DiG(B $(DiH(B $(DiI(B $(DiJ(B $(DiK(B $(DiL(B $(DiM(B $(DiN(B $(DiO(B +$(DiP(B $(DiQ(B $(DiR(B $(DiS(B $(DiT(B $(DiU(B $(DiV(B $(DiW(B $(DiX(B $(DiY(B $(DiZ(B $(Di[(B $(Di\(B $(Di](B $(Di^(B $(Di_(B +$(Di`(B $(Dia(B $(Dib(B $(Dic(B $(Did(B $(Die(B $(Dif(B $(Dig(B $(Dih(B $(Dii(B $(Dij(B $(Dik(B $(Dil(B $(Dim(B $(Din(B $(Dio(B +$(Dip(B $(Diq(B $(Dir(B $(Dis(B $(Dit(B $(Diu(B $(Div(B $(Diw(B $(Dix(B $(Diy(B $(Diz(B $(Di{(B $(Di|(B $(Di}(B $(Di~(B + $(Dj!(B $(Dj"(B $(Dj#(B $(Dj$(B $(Dj%(B $(Dj&(B $(Dj'(B $(Dj((B $(Dj)(B $(Dj*(B $(Dj+(B $(Dj,(B $(Dj-(B $(Dj.(B $(Dj/(B +$(Dj0(B $(Dj1(B $(Dj2(B $(Dj3(B $(Dj4(B $(Dj5(B $(Dj6(B $(Dj7(B $(Dj8(B $(Dj9(B $(Dj:(B $(Dj;(B $(Dj<(B $(Dj=(B $(Dj>(B $(Dj?(B +$(Dj@(B $(DjA(B $(DjB(B $(DjC(B $(DjD(B $(DjE(B $(DjF(B $(DjG(B $(DjH(B $(DjI(B $(DjJ(B $(DjK(B $(DjL(B $(DjM(B $(DjN(B $(DjO(B +$(DjP(B $(DjQ(B $(DjR(B $(DjS(B $(DjT(B $(DjU(B $(DjV(B $(DjW(B $(DjX(B $(DjY(B $(DjZ(B $(Dj[(B $(Dj\(B $(Dj](B $(Dj^(B $(Dj_(B +$(Dj`(B $(Dja(B $(Djb(B $(Djc(B $(Djd(B $(Dje(B $(Djf(B $(Djg(B $(Djh(B $(Dji(B $(Djj(B $(Djk(B $(Djl(B $(Djm(B $(Djn(B $(Djo(B +$(Djp(B $(Djq(B $(Djr(B $(Djs(B $(Djt(B $(Dju(B $(Djv(B $(Djw(B $(Djx(B $(Djy(B $(Djz(B $(Dj{(B $(Dj|(B $(Dj}(B $(Dj~(B + $(Dk!(B $(Dk"(B $(Dk#(B $(Dk$(B $(Dk%(B $(Dk&(B $(Dk'(B $(Dk((B $(Dk)(B $(Dk*(B $(Dk+(B $(Dk,(B $(Dk-(B $(Dk.(B $(Dk/(B +$(Dk0(B $(Dk1(B $(Dk2(B $(Dk3(B $(Dk4(B $(Dk5(B $(Dk6(B $(Dk7(B $(Dk8(B $(Dk9(B $(Dk:(B $(Dk;(B $(Dk<(B $(Dk=(B $(Dk>(B $(Dk?(B +$(Dk@(B $(DkA(B $(DkB(B $(DkC(B $(DkD(B $(DkE(B $(DkF(B $(DkG(B $(DkH(B $(DkI(B $(DkJ(B $(DkK(B $(DkL(B $(DkM(B $(DkN(B $(DkO(B +$(DkP(B $(DkQ(B $(DkR(B $(DkS(B $(DkT(B $(DkU(B $(DkV(B $(DkW(B $(DkX(B $(DkY(B $(DkZ(B $(Dk[(B $(Dk\(B $(Dk](B $(Dk^(B $(Dk_(B +$(Dk`(B $(Dka(B $(Dkb(B $(Dkc(B $(Dkd(B $(Dke(B $(Dkf(B $(Dkg(B $(Dkh(B $(Dki(B $(Dkj(B $(Dkk(B $(Dkl(B $(Dkm(B $(Dkn(B $(Dko(B +$(Dkp(B $(Dkq(B $(Dkr(B $(Dks(B $(Dkt(B $(Dku(B $(Dkv(B $(Dkw(B $(Dkx(B $(Dky(B $(Dkz(B $(Dk{(B $(Dk|(B $(Dk}(B $(Dk~(B + $(Dl!(B $(Dl"(B $(Dl#(B $(Dl$(B $(Dl%(B $(Dl&(B $(Dl'(B $(Dl((B $(Dl)(B $(Dl*(B $(Dl+(B $(Dl,(B $(Dl-(B $(Dl.(B $(Dl/(B +$(Dl0(B $(Dl1(B $(Dl2(B $(Dl3(B $(Dl4(B $(Dl5(B $(Dl6(B $(Dl7(B $(Dl8(B $(Dl9(B $(Dl:(B $(Dl;(B $(Dl<(B $(Dl=(B $(Dl>(B $(Dl?(B +$(Dl@(B $(DlA(B $(DlB(B $(DlC(B $(DlD(B $(DlE(B $(DlF(B $(DlG(B $(DlH(B $(DlI(B $(DlJ(B $(DlK(B $(DlL(B $(DlM(B $(DlN(B $(DlO(B +$(DlP(B $(DlQ(B $(DlR(B $(DlS(B $(DlT(B $(DlU(B $(DlV(B $(DlW(B $(DlX(B $(DlY(B $(DlZ(B $(Dl[(B $(Dl\(B $(Dl](B $(Dl^(B $(Dl_(B +$(Dl`(B $(Dla(B $(Dlb(B $(Dlc(B $(Dld(B $(Dle(B $(Dlf(B $(Dlg(B $(Dlh(B $(Dli(B $(Dlj(B $(Dlk(B $(Dll(B $(Dlm(B $(Dln(B $(Dlo(B +$(Dlp(B $(Dlq(B $(Dlr(B $(Dls(B $(Dlt(B $(Dlu(B $(Dlv(B $(Dlw(B $(Dlx(B $(Dly(B $(Dlz(B $(Dl{(B $(Dl|(B $(Dl}(B $(Dl~(B + $(Dm!(B $(Dm"(B $(Dm#(B $(Dm$(B $(Dm%(B $(Dm&(B $(Dm'(B $(Dm((B $(Dm)(B $(Dm*(B $(Dm+(B $(Dm,(B $(Dm-(B $(Dm.(B $(Dm/(B +$(Dm0(B $(Dm1(B $(Dm2(B $(Dm3(B $(Dm4(B $(Dm5(B $(Dm6(B $(Dm7(B $(Dm8(B $(Dm9(B $(Dm:(B $(Dm;(B $(Dm<(B $(Dm=(B $(Dm>(B $(Dm?(B +$(Dm@(B $(DmA(B $(DmB(B $(DmC(B $(DmD(B $(DmE(B $(DmF(B $(DmG(B $(DmH(B $(DmI(B $(DmJ(B $(DmK(B $(DmL(B $(DmM(B $(DmN(B $(DmO(B +$(DmP(B $(DmQ(B $(DmR(B $(DmS(B $(DmT(B $(DmU(B $(DmV(B $(DmW(B $(DmX(B $(DmY(B $(DmZ(B $(Dm[(B $(Dm\(B $(Dm](B $(Dm^(B $(Dm_(B +$(Dm`(B $(Dma(B $(Dmb(B $(Dmc(B + $(Ds!(B $(Ds"(B $(Ds#(B $(Ds$(B $(Ds%(B $(Ds&(B $(Ds'(B $(Ds((B $(Ds)(B $(Ds*(B + $(Ds5(B $(Ds6(B $(Ds:(B $(Ds;(B $(Ds<(B $(Ds=(B $(Ds>(B $(Ds?(B +$(Ds@(B $(DsA(B $(DsB(B $(DsC(B $(DsD(B $(DsE(B $(DsF(B $(DsG(B $(DsH(B $(DsI(B $(DsJ(B $(DsK(B $(DsL(B $(DsM(B $(DsO(B +$(DsP(B $(DsQ(B $(DsR(B $(DsS(B $(DsT(B $(DsU(B $(DsV(B $(DsW(B $(DsX(B $(DsY(B $(DsZ(B $(Ds[(B $(Ds\(B $(Ds](B $(Ds^(B $(Ds_(B +$(Ds`(B $(Dsa(B $(Dsb(B $(Dsc(B $(Dsd(B $(Dse(B $(Dsf(B $(Dsg(B $(Dsh(B $(Dsi(B $(Dsj(B $(Dsk(B $(Dsl(B $(Dsm(B $(Dsn(B $(Dso(B +$(Dsp(B $(Dsq(B $(Dsr(B $(Dss(B $(Dst(B $(Dsu(B $(Dsv(B $(Dsw(B $(Dsx(B $(Dsy(B $(Dsz(B $(Ds{(B $(Ds|(B $(Ds}(B $(Ds~(B + $(Dt!(B $(Dt"(B $(Dt$(B $(Dt%(B $(Dt&(B $(Dt'(B $(Dt((B $(Dt)(B $(Dt*(B $(Dt+(B $(Dt,(B + $(Dtc(B + $(Du!(B $(Du"(B $(Du#(B $(Du$(B $(Du%(B $(Du&(B $(Du'(B $(Du((B $(Du)(B $(Du*(B $(Du+(B $(Du,(B $(Du-(B $(Du.(B $(Du/(B +$(Du0(B $(Du1(B $(Du2(B $(Du3(B $(Du4(B $(Du5(B $(Du6(B $(Du7(B $(Du8(B $(Du9(B $(Du:(B $(Du;(B $(Du<(B $(Du=(B $(Du>(B $(Du?(B +$(Du@(B $(DuA(B $(DuB(B $(DuC(B $(DuD(B $(DuE(B $(DuF(B $(DuG(B $(DuH(B $(DuI(B $(DuJ(B $(DuK(B $(DuL(B $(DuM(B $(DuN(B $(DuO(B +$(DuP(B $(DuQ(B $(DuR(B $(DuS(B $(DuT(B $(DuU(B $(DuV(B $(DuW(B $(DuX(B $(DuY(B $(DuZ(B $(Du[(B $(Du\(B $(Du](B $(Du^(B $(Du_(B +$(Du`(B $(Dua(B $(Dub(B $(Duc(B $(Dud(B $(Due(B $(Duf(B $(Dug(B $(Duh(B $(Dui(B $(Duj(B $(Duk(B $(Dul(B $(Dum(B $(Dun(B $(Duo(B +$(Dup(B $(Duq(B $(Dur(B $(Dus(B $(Dut(B $(Duu(B $(Duv(B $(Duw(B $(Dux(B $(Duy(B $(Duz(B $(Du{(B $(Du|(B $(Du}(B $(Du~(B + $(Dv!(B $(Dv"(B $(Dv#(B $(Dv$(B $(Dv%(B $(Dv&(B $(Dv'(B $(Dv((B $(Dv)(B $(Dv*(B $(Dv+(B $(Dv,(B $(Dv-(B $(Dv.(B $(Dv/(B +$(Dv0(B $(Dv1(B $(Dv2(B $(Dv3(B $(Dv4(B $(Dv5(B $(Dv6(B $(Dv7(B $(Dv8(B $(Dv9(B $(Dv:(B $(Dv;(B $(Dv<(B $(Dv=(B $(Dv>(B $(Dv?(B +$(Dv@(B $(DvA(B $(DvB(B $(DvC(B $(DvD(B $(DvE(B $(DvF(B $(DvG(B $(DvH(B $(DvI(B $(DvJ(B $(DvK(B $(DvL(B $(DvM(B $(DvN(B $(DvO(B +$(DvP(B $(DvQ(B $(DvR(B $(DvS(B $(DvT(B $(DvU(B $(DvV(B $(DvW(B $(DvX(B $(DvY(B $(DvZ(B $(Dv[(B $(Dv\(B $(Dv](B $(Dv^(B $(Dv_(B +$(Dv`(B $(Dva(B $(Dvb(B $(Dvc(B $(Dvd(B $(Dve(B $(Dvf(B $(Dvg(B $(Dvh(B $(Dvi(B $(Dvj(B $(Dvk(B $(Dvl(B $(Dvm(B $(Dvn(B $(Dvo(B +$(Dvp(B $(Dvq(B $(Dvr(B $(Dvs(B $(Dvt(B $(Dvu(B $(Dvv(B $(Dvw(B $(Dvx(B $(Dvy(B $(Dvz(B $(Dv{(B $(Dv|(B $(Dv}(B $(Dv~(B + $(Dw!(B $(Dw"(B $(Dw#(B $(Dw$(B $(Dw%(B $(Dw&(B $(Dw'(B $(Dw((B $(Dw)(B $(Dw*(B $(Dw+(B $(Dw,(B $(Dw-(B $(Dw.(B $(Dw/(B +$(Dw0(B $(Dw1(B $(Dw2(B $(Dw3(B $(Dw4(B $(Dw5(B $(Dw6(B $(Dw7(B $(Dw8(B $(Dw9(B $(Dw:(B $(Dw;(B $(Dw<(B $(Dw=(B $(Dw>(B $(Dw?(B +$(Dw@(B $(DwA(B $(DwB(B $(DwC(B $(DwD(B $(DwE(B $(DwF(B $(DwG(B $(DwH(B $(DwI(B $(DwJ(B $(DwK(B $(DwL(B $(DwM(B $(DwN(B $(DwO(B +$(DwP(B $(DwQ(B $(DwR(B $(DwS(B $(DwT(B $(DwU(B $(DwV(B $(DwW(B $(DwX(B $(DwY(B $(DwZ(B $(Dw[(B $(Dw\(B $(Dw](B $(Dw^(B $(Dw_(B +$(Dw`(B $(Dwa(B $(Dwb(B $(Dwc(B $(Dwd(B $(Dwe(B $(Dwf(B $(Dwg(B $(Dwh(B $(Dwi(B $(Dwj(B $(Dwk(B $(Dwl(B $(Dwm(B $(Dwn(B $(Dwo(B +$(Dwp(B $(Dwq(B $(Dwr(B $(Dws(B $(Dwt(B $(Dwu(B $(Dwv(B $(Dww(B $(Dwx(B $(Dwy(B $(Dwz(B $(Dw{(B $(Dw|(B $(Dw}(B $(Dw~(B + $(Dx!(B $(Dx"(B $(Dx#(B $(Dx$(B $(Dx%(B $(Dx&(B $(Dx'(B $(Dx((B $(Dx)(B $(Dx*(B $(Dx+(B $(Dx,(B $(Dx-(B $(Dx.(B $(Dx/(B +$(Dx0(B $(Dx1(B $(Dx2(B $(Dx3(B $(Dx4(B $(Dx5(B $(Dx6(B $(Dx7(B $(Dx8(B $(Dx9(B $(Dx:(B $(Dx;(B $(Dx<(B $(Dx=(B $(Dx>(B $(Dx?(B +$(Dx@(B $(DxA(B $(DxB(B $(DxC(B $(DxD(B $(DxE(B $(DxF(B $(DxG(B $(DxH(B $(DxI(B $(DxJ(B $(DxK(B $(DxL(B $(DxM(B $(DxN(B $(DxO(B +$(DxP(B $(DxQ(B $(DxR(B $(DxS(B $(DxT(B $(DxU(B $(DxV(B $(DxW(B $(DxX(B $(DxY(B $(DxZ(B $(Dx[(B $(Dx\(B $(Dx](B $(Dx^(B $(Dx_(B +$(Dx`(B $(Dxa(B $(Dxb(B $(Dxc(B $(Dxd(B $(Dxe(B $(Dxf(B $(Dxg(B $(Dxh(B $(Dxi(B $(Dxj(B $(Dxk(B $(Dxl(B $(Dxm(B $(Dxn(B $(Dxo(B +$(Dxp(B $(Dxq(B $(Dxr(B $(Dxs(B $(Dxt(B $(Dxu(B $(Dxv(B $(Dxw(B $(Dxx(B $(Dxy(B $(Dxz(B $(Dx{(B $(Dx|(B $(Dx}(B $(Dx~(B + $(Dy!(B $(Dy"(B $(Dy#(B $(Dy$(B $(Dy%(B $(Dy&(B $(Dy'(B $(Dy((B $(Dy)(B $(Dy*(B $(Dy+(B $(Dy,(B $(Dy-(B $(Dy.(B $(Dy/(B +$(Dy0(B $(Dy1(B $(Dy2(B $(Dy3(B $(Dy4(B $(Dy5(B $(Dy6(B $(Dy7(B $(Dy8(B $(Dy9(B $(Dy:(B $(Dy;(B $(Dy<(B $(Dy=(B $(Dy>(B $(Dy?(B +$(Dy@(B $(DyA(B $(DyB(B $(DyC(B $(DyD(B $(DyE(B $(DyF(B $(DyG(B $(DyH(B $(DyI(B $(DyJ(B $(DyK(B $(DyL(B $(DyM(B $(DyN(B $(DyO(B +$(DyP(B $(DyQ(B $(DyR(B $(DyS(B $(DyT(B $(DyU(B $(DyV(B $(DyW(B $(DyX(B $(DyY(B $(DyZ(B $(Dy[(B $(Dy\(B $(Dy](B $(Dy^(B $(Dy_(B +$(Dy`(B $(Dya(B $(Dyb(B $(Dyc(B $(Dyd(B $(Dye(B $(Dyf(B $(Dyg(B $(Dyh(B $(Dyi(B $(Dyj(B $(Dyk(B $(Dyl(B $(Dym(B $(Dyn(B $(Dyo(B +$(Dyp(B $(Dyq(B $(Dyr(B $(Dys(B $(Dyt(B $(Dyu(B $(Dyv(B $(Dyw(B $(Dyx(B $(Dyy(B $(Dyz(B $(Dy{(B $(Dy|(B $(Dy}(B $(Dy~(B + $(Dz!(B $(Dz"(B $(Dz#(B $(Dz$(B $(Dz%(B $(Dz&(B $(Dz'(B $(Dz((B $(Dz)(B $(Dz*(B $(Dz+(B $(Dz,(B $(Dz-(B $(Dz.(B $(Dz/(B +$(Dz0(B $(Dz1(B $(Dz2(B $(Dz3(B $(Dz4(B $(Dz5(B $(Dz6(B $(Dz7(B $(Dz8(B $(Dz9(B $(Dz:(B $(Dz;(B $(Dz<(B $(Dz=(B $(Dz>(B $(Dz?(B +$(Dz@(B $(DzA(B $(DzB(B $(DzC(B $(DzD(B $(DzE(B $(DzF(B $(DzG(B $(DzH(B $(DzI(B $(DzJ(B $(DzK(B $(DzL(B $(DzM(B $(DzN(B $(DzO(B +$(DzP(B $(DzQ(B $(DzR(B $(DzS(B $(DzT(B $(DzU(B $(DzV(B $(DzW(B $(DzX(B $(DzY(B $(DzZ(B $(Dz[(B $(Dz\(B $(Dz](B $(Dz^(B $(Dz_(B +$(Dz`(B $(Dza(B $(Dzb(B $(Dzc(B $(Dzd(B $(Dze(B $(Dzf(B $(Dzg(B $(Dzh(B $(Dzi(B $(Dzj(B $(Dzk(B $(Dzl(B $(Dzm(B $(Dzn(B $(Dzo(B +$(Dzp(B $(Dzq(B $(Dzr(B $(Dzs(B $(Dzt(B $(Dzu(B $(Dzv(B $(Dzw(B $(Dzx(B $(Dzy(B $(Dzz(B $(Dz{(B $(Dz|(B $(Dz}(B $(Dz~(B + $(D{!(B $(D{"(B $(D{#(B $(D{$(B $(D{%(B $(D{&(B $(D{'(B $(D{((B $(D{)(B $(D{*(B $(D{+(B $(D{,(B $(D{-(B $(D{.(B $(D{/(B +$(D{0(B $(D{1(B $(D{2(B $(D{3(B $(D{4(B $(D{5(B $(D{6(B $(D{7(B $(D{8(B $(D{9(B $(D{:(B $(D{;(B $(D{<(B $(D{=(B $(D{>(B $(D{?(B +$(D{@(B $(D{A(B $(D{B(B $(D{C(B $(D{D(B $(D{E(B $(D{F(B $(D{G(B $(D{H(B $(D{I(B $(D{J(B $(D{K(B $(D{L(B $(D{M(B $(D{N(B $(D{O(B +$(D{P(B $(D{Q(B $(D{R(B $(D{S(B $(D{T(B $(D{U(B $(D{V(B $(D{W(B $(D{X(B $(D{Y(B $(D{Z(B $(D{[(B $(D{\(B $(D{](B $(D{^(B $(D{_(B +$(D{`(B $(D{a(B $(D{b(B $(D{c(B $(D{d(B $(D{e(B $(D{f(B $(D{g(B $(D{h(B $(D{i(B $(D{j(B $(D{k(B $(D{l(B $(D{m(B $(D{n(B $(D{o(B +$(D{p(B $(D{q(B $(D{r(B $(D{s(B $(D{t(B $(D{u(B $(D{v(B $(D{w(B $(D{x(B $(D{y(B $(D{z(B $(D{{(B $(D{|(B $(D{}(B $(D{~(B + $(D|!(B $(D|"(B $(D|#(B $(D|$(B $(D|%(B $(D|&(B $(D|'(B $(D|((B $(D|)(B $(D|*(B $(D|+(B $(D|,(B $(D|-(B $(D|.(B $(D|/(B +$(D|0(B $(D|1(B $(D|2(B $(D|3(B $(D|4(B $(D|5(B $(D|6(B $(D|7(B $(D|8(B $(D|9(B $(D|:(B $(D|;(B $(D|<(B $(D|=(B $(D|>(B $(D|?(B +$(D|@(B $(D|A(B $(D|B(B $(D|C(B $(D|D(B $(D|E(B $(D|F(B $(D|G(B $(D|H(B $(D|I(B $(D|J(B $(D|K(B $(D|L(B $(D|M(B $(D|N(B $(D|O(B +$(D|P(B $(D|Q(B $(D|R(B $(D|S(B $(D|T(B $(D|U(B $(D|V(B $(D|W(B $(D|X(B $(D|Y(B $(D|Z(B $(D|[(B $(D|\(B $(D|](B $(D|^(B $(D|_(B +$(D|`(B $(D|a(B $(D|b(B $(D|c(B $(D|d(B $(D|e(B $(D|f(B $(D|g(B $(D|h(B $(D|i(B $(D|j(B $(D|k(B $(D|l(B $(D|m(B $(D|n(B $(D|o(B +$(D|p(B $(D|q(B $(D|r(B $(D|s(B $(D|t(B $(D|u(B $(D|v(B $(D|w(B $(D|x(B $(D|y(B $(D|z(B $(D|{(B $(D||(B $(D|}(B $(D|~(B + $(D}!(B $(D}"(B $(D}#(B $(D}$(B $(D}%(B $(D}&(B $(D}'(B $(D}((B $(D})(B $(D}*(B $(D}+(B $(D},(B $(D}-(B $(D}.(B $(D}/(B +$(D}0(B $(D}1(B $(D}2(B $(D}3(B $(D}4(B $(D}5(B $(D}6(B $(D}7(B $(D}8(B $(D}9(B $(D}:(B $(D};(B $(D}<(B $(D}=(B $(D}>(B $(D}?(B +$(D}@(B $(D}A(B $(D}B(B $(D}C(B $(D}D(B $(D}E(B $(D}F(B $(D}G(B $(D}H(B $(D}I(B $(D}J(B $(D}K(B $(D}L(B $(D}M(B $(D}N(B $(D}O(B +$(D}P(B $(D}Q(B $(D}R(B $(D}S(B $(D}T(B $(D}U(B $(D}V(B $(D}W(B $(D}X(B $(D}Y(B $(D}Z(B $(D}[(B $(D}\(B $(D}](B $(D}^(B $(D}_(B +$(D}`(B $(D}a(B $(D}b(B $(D}c(B $(D}d(B $(D}e(B $(D}f(B $(D}g(B $(D}h(B $(D}i(B $(D}j(B $(D}k(B $(D}l(B $(D}m(B $(D}n(B $(D}o(B +$(D}p(B $(D}q(B $(D}r(B $(D}s(B $(D}t(B $(D}u(B $(D}v(B $(D}w(B $(D}x(B $(D}y(B $(D}z(B $(D}{(B $(D}|(B $(D}}(B $(D}~(B + $(D~!(B $(D~"(B $(D~#(B $(D~$(B $(D~%(B $(D~&(B $(D~'(B $(D~((B $(D~)(B $(D~*(B $(D~+(B $(D~,(B $(D~-(B $(D~.(B $(D~/(B +$(D~0(B $(D~1(B $(D~2(B $(D~3(B $(D~4(B $(D~5(B $(D~6(B $(D~7(B $(D~8(B $(D~9(B $(D~:(B $(D~;(B $(D~<(B $(D~=(B $(D~>(B $(D~?(B +$(D~@(B $(D~A(B $(D~B(B $(D~C(B $(D~D(B $(D~E(B $(D~F(B $(D~G(B $(D~H(B $(D~I(B $(D~J(B $(D~K(B $(D~L(B $(D~M(B $(D~N(B $(D~O(B +$(D~P(B $(D~Q(B $(D~R(B $(D~S(B $(D~T(B $(D~U(B $(D~V(B $(D~W(B $(D~X(B $(D~Y(B $(D~Z(B $(D~[(B $(D~\(B $(D~](B $(D~^(B $(D~_(B +$(D~`(B $(D~a(B $(D~b(B $(D~c(B $(D~d(B $(D~e(B $(D~f(B $(D~g(B $(D~h(B $(D~i(B $(D~j(B $(D~k(B $(D~l(B $(D~m(B $(D~n(B $(D~o(B +$(D~p(B $(D~q(B $(D~r(B $(D~s(B $(D~t(B $(D~u(B $(D~v(B $(D~w(B $(D~x(B $(D~y(B $(D~z(B $(D~{(B $(D~|(B $(D~}(B $(D~~(B diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.UTF-8 new file mode 100644 index 0000000..4a0d862 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.UTF-8 @@ -0,0 +1,989 @@ + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; < = > ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + 。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ +ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ +タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ +ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚ +   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ +^  ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー ― ‐ / +\ 〜 ‖ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] +{ } 〈 〉 《 》 「 」 『 』 【 】 + − ± × +÷ = ≠ < > ≦ ≧ ∞ ∴ ♂ ♀ ° ′ ″ ℃ ¥ +$ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ + ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 + ∈ ∋ ⊆ ⊇ ⊂ ⊃ +∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ +∃ ∠ ⊥ ⌒ ∂ +∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ + Å ‰ ♯ ♭ ♪ † ‡ ¶ ◯ +0 1 2 3 4 5 6 7 8 9 + A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z + a b c d e f g h i j k l m n o +p q r s t u v w x y z + ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く +ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た +だ ち ぢ っ つ づ て で と ど な に ぬ ね の は +ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み +む め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ +ゐ ゑ を ん + ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク +グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ +ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ +バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ +ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ +ヰ ヱ ヲ ン ヴ ヵ ヶ + Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο +Π Ρ Σ Τ Υ Φ Χ Ψ Ω + α β γ δ ε ζ η θ ι κ λ μ ν ξ ο +π ρ σ τ υ φ χ ψ ω + А Б В Г Д Е Ё Ж З И Й К Л М Н +О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э +Ю Я + а б в г д е ё ж з и й к л м н +о п р с т у ф х ц ч ш щ ъ ы ь э +ю я + ─ │ ┌ ┐ ┘ └ ├ ┬ ┤ ┴ ┼ ━ ┃ ┏ ┓ +┛ ┗ ┣ ┳ ┫ ┻ ╋ ┠ ┯ ┨ ┷ ┿ ┝ ┰ ┥ ┸ +╂ + ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ +⑯ ⑰ ⑱ ⑲ ⑳ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ +㍉ ㌔ ㌢ ㍍ ㌘ ㌧ ㌃ ㌶ ㍑ ㍗ ㌍ ㌦ ㌣ ㌫ ㍊ ㌻ +㎜ ㎝ ㎞ ㎎ ㎏ ㏄ ㎡ ㍻ +〞 〟 № ㏍ ℡ ㊤ ㊥ ㊦ ㊧ ㊨ ㈱ ㈲ ㈹ ㍾ ㍽ ㍼ + ∮ ∑ ∟ ⊿ + 亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥 +旭 葦 芦 鯵 梓 圧 斡 扱 宛 姐 虻 飴 絢 綾 鮎 或 +粟 袷 安 庵 按 暗 案 闇 鞍 杏 以 伊 位 依 偉 囲 +夷 委 威 尉 惟 意 慰 易 椅 為 畏 異 移 維 緯 胃 +萎 衣 謂 違 遺 医 井 亥 域 育 郁 磯 一 壱 溢 逸 +稲 茨 芋 鰯 允 印 咽 員 因 姻 引 飲 淫 胤 蔭 + 院 陰 隠 韻 吋 右 宇 烏 羽 迂 雨 卯 鵜 窺 丑 +碓 臼 渦 嘘 唄 欝 蔚 鰻 姥 厩 浦 瓜 閏 噂 云 運 +雲 荏 餌 叡 営 嬰 影 映 曳 栄 永 泳 洩 瑛 盈 穎 +頴 英 衛 詠 鋭 液 疫 益 駅 悦 謁 越 閲 榎 厭 円 +園 堰 奄 宴 延 怨 掩 援 沿 演 炎 焔 煙 燕 猿 縁 +艶 苑 薗 遠 鉛 鴛 塩 於 汚 甥 凹 央 奥 往 応 + 押 旺 横 欧 殴 王 翁 襖 鴬 鴎 黄 岡 沖 荻 億 +屋 憶 臆 桶 牡 乙 俺 卸 恩 温 穏 音 下 化 仮 何 +伽 価 佳 加 可 嘉 夏 嫁 家 寡 科 暇 果 架 歌 河 +火 珂 禍 禾 稼 箇 花 苛 茄 荷 華 菓 蝦 課 嘩 貨 +迦 過 霞 蚊 俄 峨 我 牙 画 臥 芽 蛾 賀 雅 餓 駕 +介 会 解 回 塊 壊 廻 快 怪 悔 恢 懐 戒 拐 改 + 魁 晦 械 海 灰 界 皆 絵 芥 蟹 開 階 貝 凱 劾 +外 咳 害 崖 慨 概 涯 碍 蓋 街 該 鎧 骸 浬 馨 蛙 +垣 柿 蛎 鈎 劃 嚇 各 廓 拡 撹 格 核 殻 獲 確 穫 +覚 角 赫 較 郭 閣 隔 革 学 岳 楽 額 顎 掛 笠 樫 +橿 梶 鰍 潟 割 喝 恰 括 活 渇 滑 葛 褐 轄 且 鰹 +叶 椛 樺 鞄 株 兜 竃 蒲 釜 鎌 噛 鴨 栢 茅 萱 + 粥 刈 苅 瓦 乾 侃 冠 寒 刊 勘 勧 巻 喚 堪 姦 +完 官 寛 干 幹 患 感 慣 憾 換 敢 柑 桓 棺 款 歓 +汗 漢 澗 潅 環 甘 監 看 竿 管 簡 緩 缶 翰 肝 艦 +莞 観 諌 貫 還 鑑 間 閑 関 陥 韓 館 舘 丸 含 岸 +巌 玩 癌 眼 岩 翫 贋 雁 頑 顔 願 企 伎 危 喜 器 +基 奇 嬉 寄 岐 希 幾 忌 揮 机 旗 既 期 棋 棄 + 機 帰 毅 気 汽 畿 祈 季 稀 紀 徽 規 記 貴 起 +軌 輝 飢 騎 鬼 亀 偽 儀 妓 宜 戯 技 擬 欺 犠 疑 +祇 義 蟻 誼 議 掬 菊 鞠 吉 吃 喫 桔 橘 詰 砧 杵 +黍 却 客 脚 虐 逆 丘 久 仇 休 及 吸 宮 弓 急 救 +朽 求 汲 泣 灸 球 究 窮 笈 級 糾 給 旧 牛 去 居 +巨 拒 拠 挙 渠 虚 許 距 鋸 漁 禦 魚 亨 享 京 + 供 侠 僑 兇 競 共 凶 協 匡 卿 叫 喬 境 峡 強 +彊 怯 恐 恭 挟 教 橋 況 狂 狭 矯 胸 脅 興 蕎 郷 +鏡 響 饗 驚 仰 凝 尭 暁 業 局 曲 極 玉 桐 粁 僅 +勤 均 巾 錦 斤 欣 欽 琴 禁 禽 筋 緊 芹 菌 衿 襟 +謹 近 金 吟 銀 九 倶 句 区 狗 玖 矩 苦 躯 駆 駈 +駒 具 愚 虞 喰 空 偶 寓 遇 隅 串 櫛 釧 屑 屈 + 掘 窟 沓 靴 轡 窪 熊 隈 粂 栗 繰 桑 鍬 勲 君 +薫 訓 群 軍 郡 卦 袈 祁 係 傾 刑 兄 啓 圭 珪 型 +契 形 径 恵 慶 慧 憩 掲 携 敬 景 桂 渓 畦 稽 系 +経 継 繋 罫 茎 荊 蛍 計 詣 警 軽 頚 鶏 芸 迎 鯨 +劇 戟 撃 激 隙 桁 傑 欠 決 潔 穴 結 血 訣 月 件 +倹 倦 健 兼 券 剣 喧 圏 堅 嫌 建 憲 懸 拳 捲 + 検 権 牽 犬 献 研 硯 絹 県 肩 見 謙 賢 軒 遣 +鍵 険 顕 験 鹸 元 原 厳 幻 弦 減 源 玄 現 絃 舷 +言 諺 限 乎 個 古 呼 固 姑 孤 己 庫 弧 戸 故 枯 +湖 狐 糊 袴 股 胡 菰 虎 誇 跨 鈷 雇 顧 鼓 五 互 +伍 午 呉 吾 娯 後 御 悟 梧 檎 瑚 碁 語 誤 護 醐 +乞 鯉 交 佼 侯 候 倖 光 公 功 効 勾 厚 口 向 + 后 喉 坑 垢 好 孔 孝 宏 工 巧 巷 幸 広 庚 康 +弘 恒 慌 抗 拘 控 攻 昂 晃 更 杭 校 梗 構 江 洪 +浩 港 溝 甲 皇 硬 稿 糠 紅 紘 絞 綱 耕 考 肯 肱 +腔 膏 航 荒 行 衡 講 貢 購 郊 酵 鉱 砿 鋼 閤 降 +項 香 高 鴻 剛 劫 号 合 壕 拷 濠 豪 轟 麹 克 刻 +告 国 穀 酷 鵠 黒 獄 漉 腰 甑 忽 惚 骨 狛 込 + 此 頃 今 困 坤 墾 婚 恨 懇 昏 昆 根 梱 混 痕 +紺 艮 魂 些 佐 叉 唆 嵯 左 差 査 沙 瑳 砂 詐 鎖 +裟 坐 座 挫 債 催 再 最 哉 塞 妻 宰 彩 才 採 栽 +歳 済 災 采 犀 砕 砦 祭 斎 細 菜 裁 載 際 剤 在 +材 罪 財 冴 坂 阪 堺 榊 肴 咲 崎 埼 碕 鷺 作 削 +咋 搾 昨 朔 柵 窄 策 索 錯 桜 鮭 笹 匙 冊 刷 + 察 拶 撮 擦 札 殺 薩 雑 皐 鯖 捌 錆 鮫 皿 晒 +三 傘 参 山 惨 撒 散 桟 燦 珊 産 算 纂 蚕 讃 賛 +酸 餐 斬 暫 残 仕 仔 伺 使 刺 司 史 嗣 四 士 始 +姉 姿 子 屍 市 師 志 思 指 支 孜 斯 施 旨 枝 止 +死 氏 獅 祉 私 糸 紙 紫 肢 脂 至 視 詞 詩 試 誌 +諮 資 賜 雌 飼 歯 事 似 侍 児 字 寺 慈 持 時 + 次 滋 治 爾 璽 痔 磁 示 而 耳 自 蒔 辞 汐 鹿 +式 識 鴫 竺 軸 宍 雫 七 叱 執 失 嫉 室 悉 湿 漆 +疾 質 実 蔀 篠 偲 柴 芝 屡 蕊 縞 舎 写 射 捨 赦 +斜 煮 社 紗 者 謝 車 遮 蛇 邪 借 勺 尺 杓 灼 爵 +酌 釈 錫 若 寂 弱 惹 主 取 守 手 朱 殊 狩 珠 種 +腫 趣 酒 首 儒 受 呪 寿 授 樹 綬 需 囚 収 周 + 宗 就 州 修 愁 拾 洲 秀 秋 終 繍 習 臭 舟 蒐 +衆 襲 讐 蹴 輯 週 酋 酬 集 醜 什 住 充 十 従 戎 +柔 汁 渋 獣 縦 重 銃 叔 夙 宿 淑 祝 縮 粛 塾 熟 +出 術 述 俊 峻 春 瞬 竣 舜 駿 准 循 旬 楯 殉 淳 +準 潤 盾 純 巡 遵 醇 順 処 初 所 暑 曙 渚 庶 緒 +署 書 薯 藷 諸 助 叙 女 序 徐 恕 鋤 除 傷 償 + 勝 匠 升 召 哨 商 唱 嘗 奨 妾 娼 宵 将 小 少 +尚 庄 床 廠 彰 承 抄 招 掌 捷 昇 昌 昭 晶 松 梢 +樟 樵 沼 消 渉 湘 焼 焦 照 症 省 硝 礁 祥 称 章 +笑 粧 紹 肖 菖 蒋 蕉 衝 裳 訟 証 詔 詳 象 賞 醤 +鉦 鍾 鐘 障 鞘 上 丈 丞 乗 冗 剰 城 場 壌 嬢 常 +情 擾 条 杖 浄 状 畳 穣 蒸 譲 醸 錠 嘱 埴 飾 + 拭 植 殖 燭 織 職 色 触 食 蝕 辱 尻 伸 信 侵 +唇 娠 寝 審 心 慎 振 新 晋 森 榛 浸 深 申 疹 真 +神 秦 紳 臣 芯 薪 親 診 身 辛 進 針 震 人 仁 刃 +塵 壬 尋 甚 尽 腎 訊 迅 陣 靭 笥 諏 須 酢 図 厨 +逗 吹 垂 帥 推 水 炊 睡 粋 翠 衰 遂 酔 錐 錘 随 +瑞 髄 崇 嵩 数 枢 趨 雛 据 杉 椙 菅 頗 雀 裾 + 澄 摺 寸 世 瀬 畝 是 凄 制 勢 姓 征 性 成 政 +整 星 晴 棲 栖 正 清 牲 生 盛 精 聖 声 製 西 誠 +誓 請 逝 醒 青 静 斉 税 脆 隻 席 惜 戚 斥 昔 析 +石 積 籍 績 脊 責 赤 跡 蹟 碩 切 拙 接 摂 折 設 +窃 節 説 雪 絶 舌 蝉 仙 先 千 占 宣 専 尖 川 戦 +扇 撰 栓 栴 泉 浅 洗 染 潜 煎 煽 旋 穿 箭 線 + 繊 羨 腺 舛 船 薦 詮 賎 践 選 遷 銭 銑 閃 鮮 +前 善 漸 然 全 禅 繕 膳 糎 噌 塑 岨 措 曾 曽 楚 +狙 疏 疎 礎 祖 租 粗 素 組 蘇 訴 阻 遡 鼠 僧 創 +双 叢 倉 喪 壮 奏 爽 宋 層 匝 惣 想 捜 掃 挿 掻 +操 早 曹 巣 槍 槽 漕 燥 争 痩 相 窓 糟 総 綜 聡 +草 荘 葬 蒼 藻 装 走 送 遭 鎗 霜 騒 像 増 憎 + 臓 蔵 贈 造 促 側 則 即 息 捉 束 測 足 速 俗 +属 賊 族 続 卒 袖 其 揃 存 孫 尊 損 村 遜 他 多 +太 汰 詑 唾 堕 妥 惰 打 柁 舵 楕 陀 駄 騨 体 堆 +対 耐 岱 帯 待 怠 態 戴 替 泰 滞 胎 腿 苔 袋 貸 +退 逮 隊 黛 鯛 代 台 大 第 醍 題 鷹 滝 瀧 卓 啄 +宅 托 択 拓 沢 濯 琢 託 鐸 濁 諾 茸 凧 蛸 只 + 叩 但 達 辰 奪 脱 巽 竪 辿 棚 谷 狸 鱈 樽 誰 +丹 単 嘆 坦 担 探 旦 歎 淡 湛 炭 短 端 箪 綻 耽 +胆 蛋 誕 鍛 団 壇 弾 断 暖 檀 段 男 談 値 知 地 +弛 恥 智 池 痴 稚 置 致 蜘 遅 馳 築 畜 竹 筑 蓄 +逐 秩 窒 茶 嫡 着 中 仲 宙 忠 抽 昼 柱 注 虫 衷 +註 酎 鋳 駐 樗 瀦 猪 苧 著 貯 丁 兆 凋 喋 寵 + 帖 帳 庁 弔 張 彫 徴 懲 挑 暢 朝 潮 牒 町 眺 +聴 脹 腸 蝶 調 諜 超 跳 銚 長 頂 鳥 勅 捗 直 朕 +沈 珍 賃 鎮 陳 津 墜 椎 槌 追 鎚 痛 通 塚 栂 掴 +槻 佃 漬 柘 辻 蔦 綴 鍔 椿 潰 坪 壷 嬬 紬 爪 吊 +釣 鶴 亭 低 停 偵 剃 貞 呈 堤 定 帝 底 庭 廷 弟 +悌 抵 挺 提 梯 汀 碇 禎 程 締 艇 訂 諦 蹄 逓 + 邸 鄭 釘 鼎 泥 摘 擢 敵 滴 的 笛 適 鏑 溺 哲 +徹 撤 轍 迭 鉄 典 填 天 展 店 添 纏 甜 貼 転 顛 +点 伝 殿 澱 田 電 兎 吐 堵 塗 妬 屠 徒 斗 杜 渡 +登 菟 賭 途 都 鍍 砥 砺 努 度 土 奴 怒 倒 党 冬 +凍 刀 唐 塔 塘 套 宕 島 嶋 悼 投 搭 東 桃 梼 棟 +盗 淘 湯 涛 灯 燈 当 痘 祷 等 答 筒 糖 統 到 + 董 蕩 藤 討 謄 豆 踏 逃 透 鐙 陶 頭 騰 闘 働 +動 同 堂 導 憧 撞 洞 瞳 童 胴 萄 道 銅 峠 鴇 匿 +得 徳 涜 特 督 禿 篤 毒 独 読 栃 橡 凸 突 椴 届 +鳶 苫 寅 酉 瀞 噸 屯 惇 敦 沌 豚 遁 頓 呑 曇 鈍 +奈 那 内 乍 凪 薙 謎 灘 捺 鍋 楢 馴 縄 畷 南 楠 +軟 難 汝 二 尼 弐 迩 匂 賑 肉 虹 廿 日 乳 入 + 如 尿 韮 任 妊 忍 認 濡 禰 祢 寧 葱 猫 熱 年 +念 捻 撚 燃 粘 乃 廼 之 埜 嚢 悩 濃 納 能 脳 膿 +農 覗 蚤 巴 把 播 覇 杷 波 派 琶 破 婆 罵 芭 馬 +俳 廃 拝 排 敗 杯 盃 牌 背 肺 輩 配 倍 培 媒 梅 +楳 煤 狽 買 売 賠 陪 這 蝿 秤 矧 萩 伯 剥 博 拍 +柏 泊 白 箔 粕 舶 薄 迫 曝 漠 爆 縛 莫 駁 麦 + 函 箱 硲 箸 肇 筈 櫨 幡 肌 畑 畠 八 鉢 溌 発 +醗 髪 伐 罰 抜 筏 閥 鳩 噺 塙 蛤 隼 伴 判 半 反 +叛 帆 搬 斑 板 氾 汎 版 犯 班 畔 繁 般 藩 販 範 +釆 煩 頒 飯 挽 晩 番 盤 磐 蕃 蛮 匪 卑 否 妃 庇 +彼 悲 扉 批 披 斐 比 泌 疲 皮 碑 秘 緋 罷 肥 被 +誹 費 避 非 飛 樋 簸 備 尾 微 枇 毘 琵 眉 美 + 鼻 柊 稗 匹 疋 髭 彦 膝 菱 肘 弼 必 畢 筆 逼 +桧 姫 媛 紐 百 謬 俵 彪 標 氷 漂 瓢 票 表 評 豹 +廟 描 病 秒 苗 錨 鋲 蒜 蛭 鰭 品 彬 斌 浜 瀕 貧 +賓 頻 敏 瓶 不 付 埠 夫 婦 富 冨 布 府 怖 扶 敷 +斧 普 浮 父 符 腐 膚 芙 譜 負 賦 赴 阜 附 侮 撫 +武 舞 葡 蕪 部 封 楓 風 葺 蕗 伏 副 復 幅 服 + 福 腹 複 覆 淵 弗 払 沸 仏 物 鮒 分 吻 噴 墳 +憤 扮 焚 奮 粉 糞 紛 雰 文 聞 丙 併 兵 塀 幣 平 +弊 柄 並 蔽 閉 陛 米 頁 僻 壁 癖 碧 別 瞥 蔑 箆 +偏 変 片 篇 編 辺 返 遍 便 勉 娩 弁 鞭 保 舗 鋪 +圃 捕 歩 甫 補 輔 穂 募 墓 慕 戊 暮 母 簿 菩 倣 +俸 包 呆 報 奉 宝 峰 峯 崩 庖 抱 捧 放 方 朋 + 法 泡 烹 砲 縫 胞 芳 萌 蓬 蜂 褒 訪 豊 邦 鋒 +飽 鳳 鵬 乏 亡 傍 剖 坊 妨 帽 忘 忙 房 暴 望 某 +棒 冒 紡 肪 膨 謀 貌 貿 鉾 防 吠 頬 北 僕 卜 墨 +撲 朴 牧 睦 穆 釦 勃 没 殆 堀 幌 奔 本 翻 凡 盆 +摩 磨 魔 麻 埋 妹 昧 枚 毎 哩 槙 幕 膜 枕 鮪 柾 +鱒 桝 亦 俣 又 抹 末 沫 迄 侭 繭 麿 万 慢 満 + 漫 蔓 味 未 魅 巳 箕 岬 密 蜜 湊 蓑 稔 脈 妙 +粍 民 眠 務 夢 無 牟 矛 霧 鵡 椋 婿 娘 冥 名 命 +明 盟 迷 銘 鳴 姪 牝 滅 免 棉 綿 緬 面 麺 摸 模 +茂 妄 孟 毛 猛 盲 網 耗 蒙 儲 木 黙 目 杢 勿 餅 +尤 戻 籾 貰 問 悶 紋 門 匁 也 冶 夜 爺 耶 野 弥 +矢 厄 役 約 薬 訳 躍 靖 柳 薮 鑓 愉 愈 油 癒 + 諭 輸 唯 佑 優 勇 友 宥 幽 悠 憂 揖 有 柚 湧 +涌 猶 猷 由 祐 裕 誘 遊 邑 郵 雄 融 夕 予 余 与 +誉 輿 預 傭 幼 妖 容 庸 揚 揺 擁 曜 楊 様 洋 溶 +熔 用 窯 羊 耀 葉 蓉 要 謡 踊 遥 陽 養 慾 抑 欲 +沃 浴 翌 翼 淀 羅 螺 裸 来 莱 頼 雷 洛 絡 落 酪 +乱 卵 嵐 欄 濫 藍 蘭 覧 利 吏 履 李 梨 理 璃 + 痢 裏 裡 里 離 陸 律 率 立 葎 掠 略 劉 流 溜 +琉 留 硫 粒 隆 竜 龍 侶 慮 旅 虜 了 亮 僚 両 凌 +寮 料 梁 涼 猟 療 瞭 稜 糧 良 諒 遼 量 陵 領 力 +緑 倫 厘 林 淋 燐 琳 臨 輪 隣 鱗 麟 瑠 塁 涙 累 +類 令 伶 例 冷 励 嶺 怜 玲 礼 苓 鈴 隷 零 霊 麗 +齢 暦 歴 列 劣 烈 裂 廉 恋 憐 漣 煉 簾 練 聯 + 蓮 連 錬 呂 魯 櫓 炉 賂 路 露 労 婁 廊 弄 朗 +楼 榔 浪 漏 牢 狼 篭 老 聾 蝋 郎 六 麓 禄 肋 録 +論 倭 和 話 歪 賄 脇 惑 枠 鷲 亙 亘 鰐 詫 藁 蕨 +椀 湾 碗 腕 + 弌 丐 丕 个 丱 丶 丼 丿 乂 乖 乘 亂 亅 豫 亊 +舒 弍 于 亞 亟 亠 亢 亰 亳 亶 从 仍 仄 仆 仂 仗 +仞 仭 仟 价 伉 佚 估 佛 佝 佗 佇 佶 侈 侏 侘 佻 +佩 佰 侑 佯 來 侖 儘 俔 俟 俎 俘 俛 俑 俚 俐 俤 +俥 倚 倨 倔 倪 倥 倅 伜 俶 倡 倩 倬 俾 俯 們 倆 +偃 假 會 偕 偐 偈 做 偖 偬 偸 傀 傚 傅 傴 傲 + 僉 僊 傳 僂 僖 僞 僥 僭 僣 僮 價 僵 儉 儁 儂 +儖 儕 儔 儚 儡 儺 儷 儼 儻 儿 兀 兒 兌 兔 兢 竸 +兩 兪 兮 冀 冂 囘 册 冉 冏 冑 冓 冕 冖 冤 冦 冢 +冩 冪 冫 决 冱 冲 冰 况 冽 凅 凉 凛 几 處 凩 凭 +凰 凵 凾 刄 刋 刔 刎 刧 刪 刮 刳 刹 剏 剄 剋 剌 +剞 剔 剪 剴 剩 剳 剿 剽 劍 劔 劒 剱 劈 劑 辨 + 辧 劬 劭 劼 劵 勁 勍 勗 勞 勣 勦 飭 勠 勳 勵 +勸 勹 匆 匈 甸 匍 匐 匏 匕 匚 匣 匯 匱 匳 匸 區 +卆 卅 丗 卉 卍 凖 卞 卩 卮 夘 卻 卷 厂 厖 厠 厦 +厥 厮 厰 厶 參 簒 雙 叟 曼 燮 叮 叨 叭 叺 吁 吽 +呀 听 吭 吼 吮 吶 吩 吝 呎 咏 呵 咎 呟 呱 呷 呰 +咒 呻 咀 呶 咄 咐 咆 哇 咢 咸 咥 咬 哄 哈 咨 + 咫 哂 咤 咾 咼 哘 哥 哦 唏 唔 哽 哮 哭 哺 哢 +唹 啀 啣 啌 售 啜 啅 啖 啗 唸 唳 啝 喙 喀 咯 喊 +喟 啻 啾 喘 喞 單 啼 喃 喩 喇 喨 嗚 嗅 嗟 嗄 嗜 +嗤 嗔 嘔 嗷 嘖 嗾 嗽 嘛 嗹 噎 噐 營 嘴 嘶 嘲 嘸 +噫 噤 嘯 噬 噪 嚆 嚀 嚊 嚠 嚔 嚏 嚥 嚮 嚶 嚴 囂 +嚼 囁 囃 囀 囈 囎 囑 囓 囗 囮 囹 圀 囿 圄 圉 + 圈 國 圍 圓 團 圖 嗇 圜 圦 圷 圸 坎 圻 址 坏 +坩 埀 垈 坡 坿 垉 垓 垠 垳 垤 垪 垰 埃 埆 埔 埒 +埓 堊 埖 埣 堋 堙 堝 塲 堡 塢 塋 塰 毀 塒 堽 塹 +墅 墹 墟 墫 墺 壞 墻 墸 墮 壅 壓 壑 壗 壙 壘 壥 +壜 壤 壟 壯 壺 壹 壻 壼 壽 夂 夊 夐 夛 梦 夥 夬 +夭 夲 夸 夾 竒 奕 奐 奎 奚 奘 奢 奠 奧 奬 奩 + 奸 妁 妝 佞 侫 妣 妲 姆 姨 姜 妍 姙 姚 娥 娟 +娑 娜 娉 娚 婀 婬 婉 娵 娶 婢 婪 媚 媼 媾 嫋 嫂 +媽 嫣 嫗 嫦 嫩 嫖 嫺 嫻 嬌 嬋 嬖 嬲 嫐 嬪 嬶 嬾 +孃 孅 孀 孑 孕 孚 孛 孥 孩 孰 孳 孵 學 斈 孺 宀 +它 宦 宸 寃 寇 寉 寔 寐 寤 實 寢 寞 寥 寫 寰 寶 +寳 尅 將 專 對 尓 尠 尢 尨 尸 尹 屁 屆 屎 屓 + 屐 屏 孱 屬 屮 乢 屶 屹 岌 岑 岔 妛 岫 岻 岶 +岼 岷 峅 岾 峇 峙 峩 峽 峺 峭 嶌 峪 崋 崕 崗 嵜 +崟 崛 崑 崔 崢 崚 崙 崘 嵌 嵒 嵎 嵋 嵬 嵳 嵶 嶇 +嶄 嶂 嶢 嶝 嶬 嶮 嶽 嶐 嶷 嶼 巉 巍 巓 巒 巖 巛 +巫 已 巵 帋 帚 帙 帑 帛 帶 帷 幄 幃 幀 幎 幗 幔 +幟 幢 幤 幇 幵 并 幺 麼 广 庠 廁 廂 廈 廐 廏 + 廖 廣 廝 廚 廛 廢 廡 廨 廩 廬 廱 廳 廰 廴 廸 +廾 弃 弉 彝 彜 弋 弑 弖 弩 弭 弸 彁 彈 彌 彎 弯 +彑 彖 彗 彙 彡 彭 彳 彷 徃 徂 彿 徊 很 徑 徇 從 +徙 徘 徠 徨 徭 徼 忖 忻 忤 忸 忱 忝 悳 忿 怡 恠 +怙 怐 怩 怎 怱 怛 怕 怫 怦 怏 怺 恚 恁 恪 恷 恟 +恊 恆 恍 恣 恃 恤 恂 恬 恫 恙 悁 悍 惧 悃 悚 + 悄 悛 悖 悗 悒 悧 悋 惡 悸 惠 惓 悴 忰 悽 惆 +悵 惘 慍 愕 愆 惶 惷 愀 惴 惺 愃 愡 惻 惱 愍 愎 +慇 愾 愨 愧 慊 愿 愼 愬 愴 愽 慂 慄 慳 慷 慘 慙 +慚 慫 慴 慯 慥 慱 慟 慝 慓 慵 憙 憖 憇 憬 憔 憚 +憊 憑 憫 憮 懌 懊 應 懷 懈 懃 懆 憺 懋 罹 懍 懦 +懣 懶 懺 懴 懿 懽 懼 懾 戀 戈 戉 戍 戌 戔 戛 + 戞 戡 截 戮 戰 戲 戳 扁 扎 扞 扣 扛 扠 扨 扼 +抂 抉 找 抒 抓 抖 拔 抃 抔 拗 拑 抻 拏 拿 拆 擔 +拈 拜 拌 拊 拂 拇 抛 拉 挌 拮 拱 挧 挂 挈 拯 拵 +捐 挾 捍 搜 捏 掖 掎 掀 掫 捶 掣 掏 掉 掟 掵 捫 +捩 掾 揩 揀 揆 揣 揉 插 揶 揄 搖 搴 搆 搓 搦 搶 +攝 搗 搨 搏 摧 摯 摶 摎 攪 撕 撓 撥 撩 撈 撼 + 據 擒 擅 擇 撻 擘 擂 擱 擧 舉 擠 擡 抬 擣 擯 +攬 擶 擴 擲 擺 攀 擽 攘 攜 攅 攤 攣 攫 攴 攵 攷 +收 攸 畋 效 敖 敕 敍 敘 敞 敝 敲 數 斂 斃 變 斛 +斟 斫 斷 旃 旆 旁 旄 旌 旒 旛 旙 无 旡 旱 杲 昊 +昃 旻 杳 昵 昶 昴 昜 晏 晄 晉 晁 晞 晝 晤 晧 晨 +晟 晢 晰 暃 暈 暎 暉 暄 暘 暝 曁 暹 曉 暾 暼 + 曄 暸 曖 曚 曠 昿 曦 曩 曰 曵 曷 朏 朖 朞 朦 +朧 霸 朮 朿 朶 杁 朸 朷 杆 杞 杠 杙 杣 杤 枉 杰 +枩 杼 杪 枌 枋 枦 枡 枅 枷 柯 枴 柬 枳 柩 枸 柤 +柞 柝 柢 柮 枹 柎 柆 柧 檜 栞 框 栩 桀 桍 栲 桎 +梳 栫 桙 档 桷 桿 梟 梏 梭 梔 條 梛 梃 檮 梹 桴 +梵 梠 梺 椏 梍 桾 椁 棊 椈 棘 椢 椦 棡 椌 棍 + 棔 棧 棕 椶 椒 椄 棗 棣 椥 棹 棠 棯 椨 椪 椚 +椣 椡 棆 楹 楷 楜 楸 楫 楔 楾 楮 椹 楴 椽 楙 椰 +楡 楞 楝 榁 楪 榲 榮 槐 榿 槁 槓 榾 槎 寨 槊 槝 +榻 槃 榧 樮 榑 榠 榜 榕 榴 槞 槨 樂 樛 槿 權 槹 +槲 槧 樅 榱 樞 槭 樔 槫 樊 樒 櫁 樣 樓 橄 樌 橲 +樶 橸 橇 橢 橙 橦 橈 樸 樢 檐 檍 檠 檄 檢 檣 + 檗 蘗 檻 櫃 櫂 檸 檳 檬 櫞 櫑 櫟 檪 櫚 櫪 櫻 +欅 蘖 櫺 欒 欖 鬱 欟 欸 欷 盜 欹 飮 歇 歃 歉 歐 +歙 歔 歛 歟 歡 歸 歹 歿 殀 殄 殃 殍 殘 殕 殞 殤 +殪 殫 殯 殲 殱 殳 殷 殼 毆 毋 毓 毟 毬 毫 毳 毯 +麾 氈 氓 气 氛 氤 氣 汞 汕 汢 汪 沂 沍 沚 沁 沛 +汾 汨 汳 沒 沐 泄 泱 泓 沽 泗 泅 泝 沮 沱 沾 + 沺 泛 泯 泙 泪 洟 衍 洶 洫 洽 洸 洙 洵 洳 洒 +洌 浣 涓 浤 浚 浹 浙 涎 涕 濤 涅 淹 渕 渊 涵 淇 +淦 涸 淆 淬 淞 淌 淨 淒 淅 淺 淙 淤 淕 淪 淮 渭 +湮 渮 渙 湲 湟 渾 渣 湫 渫 湶 湍 渟 湃 渺 湎 渤 +滿 渝 游 溂 溪 溘 滉 溷 滓 溽 溯 滄 溲 滔 滕 溏 +溥 滂 溟 潁 漑 灌 滬 滸 滾 漿 滲 漱 滯 漲 滌 + 漾 漓 滷 澆 潺 潸 澁 澀 潯 潛 濳 潭 澂 潼 潘 +澎 澑 濂 潦 澳 澣 澡 澤 澹 濆 澪 濟 濕 濬 濔 濘 +濱 濮 濛 瀉 瀋 濺 瀑 瀁 瀏 濾 瀛 瀚 潴 瀝 瀘 瀟 +瀰 瀾 瀲 灑 灣 炙 炒 炯 烱 炬 炸 炳 炮 烟 烋 烝 +烙 焉 烽 焜 焙 煥 煕 熈 煦 煢 煌 煖 煬 熏 燻 熄 +熕 熨 熬 燗 熹 熾 燒 燉 燔 燎 燠 燬 燧 燵 燼 + 燹 燿 爍 爐 爛 爨 爭 爬 爰 爲 爻 爼 爿 牀 牆 +牋 牘 牴 牾 犂 犁 犇 犒 犖 犢 犧 犹 犲 狃 狆 狄 +狎 狒 狢 狠 狡 狹 狷 倏 猗 猊 猜 猖 猝 猴 猯 猩 +猥 猾 獎 獏 默 獗 獪 獨 獰 獸 獵 獻 獺 珈 玳 珎 +玻 珀 珥 珮 珞 璢 琅 瑯 琥 珸 琲 琺 瑕 琿 瑟 瑙 +瑁 瑜 瑩 瑰 瑣 瑪 瑶 瑾 璋 璞 璧 瓊 瓏 瓔 珱 + 瓠 瓣 瓧 瓩 瓮 瓲 瓰 瓱 瓸 瓷 甄 甃 甅 甌 甎 +甍 甕 甓 甞 甦 甬 甼 畄 畍 畊 畉 畛 畆 畚 畩 畤 +畧 畫 畭 畸 當 疆 疇 畴 疊 疉 疂 疔 疚 疝 疥 疣 +痂 疳 痃 疵 疽 疸 疼 疱 痍 痊 痒 痙 痣 痞 痾 痿 +痼 瘁 痰 痺 痲 痳 瘋 瘍 瘉 瘟 瘧 瘠 瘡 瘢 瘤 瘴 +瘰 瘻 癇 癈 癆 癜 癘 癡 癢 癨 癩 癪 癧 癬 癰 + 癲 癶 癸 發 皀 皃 皈 皋 皎 皖 皓 皙 皚 皰 皴 +皸 皹 皺 盂 盍 盖 盒 盞 盡 盥 盧 盪 蘯 盻 眈 眇 +眄 眩 眤 眞 眥 眦 眛 眷 眸 睇 睚 睨 睫 睛 睥 睿 +睾 睹 瞎 瞋 瞑 瞠 瞞 瞰 瞶 瞹 瞿 瞼 瞽 瞻 矇 矍 +矗 矚 矜 矣 矮 矼 砌 砒 礦 砠 礪 硅 碎 硴 碆 硼 +碚 碌 碣 碵 碪 碯 磑 磆 磋 磔 碾 碼 磅 磊 磬 + 磧 磚 磽 磴 礇 礒 礑 礙 礬 礫 祀 祠 祗 祟 祚 +祕 祓 祺 祿 禊 禝 禧 齋 禪 禮 禳 禹 禺 秉 秕 秧 +秬 秡 秣 稈 稍 稘 稙 稠 稟 禀 稱 稻 稾 稷 穃 穗 +穉 穡 穢 穩 龝 穰 穹 穽 窈 窗 窕 窘 窖 窩 竈 窰 +窶 竅 竄 窿 邃 竇 竊 竍 竏 竕 竓 站 竚 竝 竡 竢 +竦 竭 竰 笂 笏 笊 笆 笳 笘 笙 笞 笵 笨 笶 筐 + 筺 笄 筍 笋 筌 筅 筵 筥 筴 筧 筰 筱 筬 筮 箝 +箘 箟 箍 箜 箚 箋 箒 箏 筝 箙 篋 篁 篌 篏 箴 篆 +篝 篩 簑 簔 篦 篥 籠 簀 簇 簓 篳 篷 簗 簍 篶 簣 +簧 簪 簟 簷 簫 簽 籌 籃 籔 籏 籀 籐 籘 籟 籤 籖 +籥 籬 籵 粃 粐 粤 粭 粢 粫 粡 粨 粳 粲 粱 粮 粹 +粽 糀 糅 糂 糘 糒 糜 糢 鬻 糯 糲 糴 糶 糺 紆 + 紂 紜 紕 紊 絅 絋 紮 紲 紿 紵 絆 絳 絖 絎 絲 +絨 絮 絏 絣 經 綉 絛 綏 絽 綛 綺 綮 綣 綵 緇 綽 +綫 總 綢 綯 緜 綸 綟 綰 緘 緝 緤 緞 緻 緲 緡 縅 +縊 縣 縡 縒 縱 縟 縉 縋 縢 繆 繦 縻 縵 縹 繃 縷 +縲 縺 繧 繝 繖 繞 繙 繚 繹 繪 繩 繼 繻 纃 緕 繽 +辮 繿 纈 纉 續 纒 纐 纓 纔 纖 纎 纛 纜 缸 缺 + 罅 罌 罍 罎 罐 网 罕 罔 罘 罟 罠 罨 罩 罧 罸 +羂 羆 羃 羈 羇 羌 羔 羞 羝 羚 羣 羯 羲 羹 羮 羶 +羸 譱 翅 翆 翊 翕 翔 翡 翦 翩 翳 翹 飜 耆 耄 耋 +耒 耘 耙 耜 耡 耨 耿 耻 聊 聆 聒 聘 聚 聟 聢 聨 +聳 聲 聰 聶 聹 聽 聿 肄 肆 肅 肛 肓 肚 肭 冐 肬 +胛 胥 胙 胝 胄 胚 胖 脉 胯 胱 脛 脩 脣 脯 腋 + 隋 腆 脾 腓 腑 胼 腱 腮 腥 腦 腴 膃 膈 膊 膀 +膂 膠 膕 膤 膣 腟 膓 膩 膰 膵 膾 膸 膽 臀 臂 膺 +臉 臍 臑 臙 臘 臈 臚 臟 臠 臧 臺 臻 臾 舁 舂 舅 +與 舊 舍 舐 舖 舩 舫 舸 舳 艀 艙 艘 艝 艚 艟 艤 +艢 艨 艪 艫 舮 艱 艷 艸 艾 芍 芒 芫 芟 芻 芬 苡 +苣 苟 苒 苴 苳 苺 莓 范 苻 苹 苞 茆 苜 茉 苙 + 茵 茴 茖 茲 茱 荀 茹 荐 荅 茯 茫 茗 茘 莅 莚 +莪 莟 莢 莖 茣 莎 莇 莊 荼 莵 荳 荵 莠 莉 莨 菴 +萓 菫 菎 菽 萃 菘 萋 菁 菷 萇 菠 菲 萍 萢 萠 莽 +萸 蔆 菻 葭 萪 萼 蕚 蒄 葷 葫 蒭 葮 蒂 葩 葆 萬 +葯 葹 萵 蓊 葢 蒹 蒿 蒟 蓙 蓍 蒻 蓚 蓐 蓁 蓆 蓖 +蒡 蔡 蓿 蓴 蔗 蔘 蔬 蔟 蔕 蔔 蓼 蕀 蕣 蕘 蕈 + 蕁 蘂 蕋 蕕 薀 薤 薈 薑 薊 薨 蕭 薔 薛 藪 薇 +薜 蕷 蕾 薐 藉 薺 藏 薹 藐 藕 藝 藥 藜 藹 蘊 蘓 +蘋 藾 藺 蘆 蘢 蘚 蘰 蘿 虍 乕 虔 號 虧 虱 蚓 蚣 +蚩 蚪 蚋 蚌 蚶 蚯 蛄 蛆 蚰 蛉 蠣 蚫 蛔 蛞 蛩 蛬 +蛟 蛛 蛯 蜒 蜆 蜈 蜀 蜃 蛻 蜑 蜉 蜍 蛹 蜊 蜴 蜿 +蜷 蜻 蜥 蜩 蜚 蝠 蝟 蝸 蝌 蝎 蝴 蝗 蝨 蝮 蝙 + 蝓 蝣 蝪 蠅 螢 螟 螂 螯 蟋 螽 蟀 蟐 雖 螫 蟄 +螳 蟇 蟆 螻 蟯 蟲 蟠 蠏 蠍 蟾 蟶 蟷 蠎 蟒 蠑 蠖 +蠕 蠢 蠡 蠱 蠶 蠹 蠧 蠻 衄 衂 衒 衙 衞 衢 衫 袁 +衾 袞 衵 衽 袵 衲 袂 袗 袒 袮 袙 袢 袍 袤 袰 袿 +袱 裃 裄 裔 裘 裙 裝 裹 褂 裼 裴 裨 裲 褄 褌 褊 +褓 襃 褞 褥 褪 褫 襁 襄 褻 褶 褸 襌 褝 襠 襞 + 襦 襤 襭 襪 襯 襴 襷 襾 覃 覈 覊 覓 覘 覡 覩 +覦 覬 覯 覲 覺 覽 覿 觀 觚 觜 觝 觧 觴 觸 訃 訖 +訐 訌 訛 訝 訥 訶 詁 詛 詒 詆 詈 詼 詭 詬 詢 誅 +誂 誄 誨 誡 誑 誥 誦 誚 誣 諄 諍 諂 諚 諫 諳 諧 +諤 諱 謔 諠 諢 諷 諞 諛 謌 謇 謚 諡 謖 謐 謗 謠 +謳 鞫 謦 謫 謾 謨 譁 譌 譏 譎 證 譖 譛 譚 譫 + 譟 譬 譯 譴 譽 讀 讌 讎 讒 讓 讖 讙 讚 谺 豁 +谿 豈 豌 豎 豐 豕 豢 豬 豸 豺 貂 貉 貅 貊 貍 貎 +貔 豼 貘 戝 貭 貪 貽 貲 貳 貮 貶 賈 賁 賤 賣 賚 +賽 賺 賻 贄 贅 贊 贇 贏 贍 贐 齎 贓 賍 贔 贖 赧 +赭 赱 赳 趁 趙 跂 趾 趺 跏 跚 跖 跌 跛 跋 跪 跫 +跟 跣 跼 踈 踉 跿 踝 踞 踐 踟 蹂 踵 踰 踴 蹊 + 蹇 蹉 蹌 蹐 蹈 蹙 蹤 蹠 踪 蹣 蹕 蹶 蹲 蹼 躁 +躇 躅 躄 躋 躊 躓 躑 躔 躙 躪 躡 躬 躰 軆 躱 躾 +軅 軈 軋 軛 軣 軼 軻 軫 軾 輊 輅 輕 輒 輙 輓 輜 +輟 輛 輌 輦 輳 輻 輹 轅 轂 輾 轌 轉 轆 轎 轗 轜 +轢 轣 轤 辜 辟 辣 辭 辯 辷 迚 迥 迢 迪 迯 邇 迴 +逅 迹 迺 逑 逕 逡 逍 逞 逖 逋 逧 逶 逵 逹 迸 + 遏 遐 遑 遒 逎 遉 逾 遖 遘 遞 遨 遯 遶 隨 遲 +邂 遽 邁 邀 邊 邉 邏 邨 邯 邱 邵 郢 郤 扈 郛 鄂 +鄒 鄙 鄲 鄰 酊 酖 酘 酣 酥 酩 酳 酲 醋 醉 醂 醢 +醫 醯 醪 醵 醴 醺 釀 釁 釉 釋 釐 釖 釟 釡 釛 釼 +釵 釶 鈞 釿 鈔 鈬 鈕 鈑 鉞 鉗 鉅 鉉 鉤 鉈 銕 鈿 +鉋 鉐 銜 銖 銓 銛 鉚 鋏 銹 銷 鋩 錏 鋺 鍄 錮 + 錙 錢 錚 錣 錺 錵 錻 鍜 鍠 鍼 鍮 鍖 鎰 鎬 鎭 +鎔 鎹 鏖 鏗 鏨 鏥 鏘 鏃 鏝 鏐 鏈 鏤 鐚 鐔 鐓 鐃 +鐇 鐐 鐶 鐫 鐵 鐡 鐺 鑁 鑒 鑄 鑛 鑠 鑢 鑞 鑪 鈩 +鑰 鑵 鑷 鑽 鑚 鑼 鑾 钁 鑿 閂 閇 閊 閔 閖 閘 閙 +閠 閨 閧 閭 閼 閻 閹 閾 闊 濶 闃 闍 闌 闕 闔 闖 +關 闡 闥 闢 阡 阨 阮 阯 陂 陌 陏 陋 陷 陜 陞 + 陝 陟 陦 陲 陬 隍 隘 隕 隗 險 隧 隱 隲 隰 隴 +隶 隸 隹 雎 雋 雉 雍 襍 雜 霍 雕 雹 霄 霆 霈 霓 +霎 霑 霏 霖 霙 霤 霪 霰 霹 霽 霾 靄 靆 靈 靂 靉 +靜 靠 靤 靦 靨 勒 靫 靱 靹 鞅 靼 鞁 靺 鞆 鞋 鞏 +鞐 鞜 鞨 鞦 鞣 鞳 鞴 韃 韆 韈 韋 韜 韭 齏 韲 竟 +韶 韵 頏 頌 頸 頤 頡 頷 頽 顆 顏 顋 顫 顯 顰 + 顱 顴 顳 颪 颯 颱 颶 飄 飃 飆 飩 飫 餃 餉 餒 +餔 餘 餡 餝 餞 餤 餠 餬 餮 餽 餾 饂 饉 饅 饐 饋 +饑 饒 饌 饕 馗 馘 馥 馭 馮 馼 駟 駛 駝 駘 駑 駭 +駮 駱 駲 駻 駸 騁 騏 騅 駢 騙 騫 騷 驅 驂 驀 驃 +騾 驕 驍 驛 驗 驟 驢 驥 驤 驩 驫 驪 骭 骰 骼 髀 +髏 髑 髓 體 髞 髟 髢 髣 髦 髯 髫 髮 髴 髱 髷 + 髻 鬆 鬘 鬚 鬟 鬢 鬣 鬥 鬧 鬨 鬩 鬪 鬮 鬯 鬲 +魄 魃 魏 魍 魎 魑 魘 魴 鮓 鮃 鮑 鮖 鮗 鮟 鮠 鮨 +鮴 鯀 鯊 鮹 鯆 鯏 鯑 鯒 鯣 鯢 鯤 鯔 鯡 鰺 鯲 鯱 +鯰 鰕 鰔 鰉 鰓 鰌 鰆 鰈 鰒 鰊 鰄 鰮 鰛 鰥 鰤 鰡 +鰰 鱇 鰲 鱆 鰾 鱚 鱠 鱧 鱶 鱸 鳧 鳬 鳰 鴉 鴈 鳫 +鴃 鴆 鴪 鴦 鶯 鴣 鴟 鵄 鴕 鴒 鵁 鴿 鴾 鵆 鵈 + 鵝 鵞 鵤 鵑 鵐 鵙 鵲 鶉 鶇 鶫 鵯 鵺 鶚 鶤 鶩 +鶲 鷄 鷁 鶻 鶸 鶺 鷆 鷏 鷂 鷙 鷓 鷸 鷦 鷭 鷯 鷽 +鸚 鸛 鸞 鹵 鹹 鹽 麁 麈 麋 麌 麒 麕 麑 麝 麥 麩 +麸 麪 麭 靡 黌 黎 黏 黐 黔 黜 點 黝 黠 黥 黨 黯 +黴 黶 黷 黹 黻 黼 黽 鼇 鼈 皷 鼕 鼡 鼬 鼾 齊 齒 +齔 齣 齟 齠 齡 齦 齧 齬 齪 齷 齲 齶 龕 龜 龠 + 堯 槇 遙 瑤 凜 熙 +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               + 纊 褜 鍈 銈 蓜 俉 炻 昱 棈 鋹 曻 彅 丨 仡 仼 +伀 伃 伹 佖 侒 侊 侚 侔 俍 偀 倢 俿 倞 偆 偰 偂 +傔 僴 僘 兊 兤 冝 冾 凬 刕 劜 劦 勀 勛 匀 匇 匤 +卲 厓 厲 叝 﨎 咜 咊 咩 哿 喆 坙 坥 垬 埈 埇 﨏 +塚 增 墲 夋 奓 奛 奝 奣 妤 妺 孖 寀 甯 寘 寬 尞 +岦 岺 峵 崧 嵓 﨑 嵂 嵭 嶸 嶹 巐 弡 弴 彧 德 + 忞 恝 悅 悊 惞 惕 愠 惲 愑 愷 愰 憘 戓 抦 揵 +摠 撝 擎 敎 昀 昕 昻 昉 昮 昞 昤 晥 晗 晙 晴 晳 +暙 暠 暲 暿 曺 朎 朗 杦 枻 桒 柀 栁 桄 棏 﨓 楨 +﨔 榘 槢 樰 橫 橆 橳 橾 櫢 櫤 毖 氿 汜 沆 汯 泚 +洄 涇 浯 涖 涬 淏 淸 淲 淼 渹 湜 渧 渼 溿 澈 澵 +濵 瀅 瀇 瀨 炅 炫 焏 焄 煜 煆 煇 凞 燁 燾 犱 + 犾 猤 猪 獷 玽 珉 珖 珣 珒 琇 珵 琦 琪 琩 琮 +瑢 璉 璟 甁 畯 皂 皜 皞 皛 皦 益 睆 劯 砡 硎 硤 +硺 礰 礼 神 祥 禔 福 禛 竑 竧 靖 竫 箞 精 絈 絜 +綷 綠 緖 繒 罇 羡 羽 茁 荢 荿 菇 菶 葈 蒴 蕓 蕙 +蕫 﨟 薰 蘒 﨡 蠇 裵 訒 訷 詹 誧 誾 諟 諸 諶 譓 +譿 賰 賴 贒 赶 﨣 軏 﨤 逸 遧 郞 都 鄕 鄧 釚 + 釗 釞 釭 釮 釤 釥 鈆 鈐 鈊 鈺 鉀 鈼 鉎 鉙 鉑 +鈹 鉧 銧 鉷 鉸 鋧 鋗 鋙 鋐 﨧 鋕 鋠 鋓 錥 錡 鋻 +﨨 錞 鋿 錝 錂 鍰 鍗 鎤 鏆 鏞 鏸 鐱 鑅 鑈 閒 隆 +﨩 隝 隯 霳 霻 靃 靍 靏 靑 靕 顗 顥 飯 飼 餧 館 +馞 驎 髙 髜 魵 魲 鮏 鮱 鮻 鰀 鵰 鵫 鶴 鸙 黑  + ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ¬ ¦ ' " +                +                +                +                +                +               +                +                +                +                +                +               + ˘ +ˇ ¸ ˙ ˝ ¯ ˛ ˚ ΄ ΅ + ¡ ¦ ¿ + º ª © ® ™ +¤ + Ά Έ Ή Ί Ϊ Ό Ύ Ϋ Ώ + ά έ ή ί ϊ ΐ ό ς ύ ϋ ΰ ώ + Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ў Џ + ђ ѓ є ѕ і ї ј љ њ ћ ќ ў џ + Æ Đ Ħ IJ Ł Ŀ Ŋ Ø Œ Ŧ +Þ + æ đ ð ħ ı ij ĸ ł ŀ ʼn ŋ ø œ ß ŧ +þ + Á À Ä Â Ă Ǎ Ā Ą Å Ã Ć Ĉ Č Ç Ċ +Ď É È Ë Ê Ě Ė Ē Ę Ĝ Ğ Ģ Ġ Ĥ Í +Ì Ï Î Ǐ İ Ī Į Ĩ Ĵ Ķ Ĺ Ľ Ļ Ń Ň Ņ +Ñ Ó Ò Ö Ô Ǒ Ő Ō Õ Ŕ Ř Ŗ Ś Ŝ Š Ş +Ť Ţ Ú Ù Ü Û Ŭ Ǔ Ű Ū Ų Ů Ũ Ǘ Ǜ Ǚ +Ǖ Ŵ Ý Ÿ Ŷ Ź Ž Ż + á à ä â ă ǎ ā ą å ã ć ĉ č ç ċ +ď é è ë ê ě ė ē ę ǵ ĝ ğ ġ ĥ í +ì ï î ǐ ī į ĩ ĵ ķ ĺ ľ ļ ń ň ņ +ñ ó ò ö ô ǒ ő ō õ ŕ ř ŗ ś ŝ š ş +ť ţ ú ù ü û ŭ ǔ ű ū ų ů ũ ǘ ǜ ǚ +ǖ ŵ ý ÿ ŷ ź ž ż + 丂 丄 丅 丌 丒 丟 丣 两 丨 丫 丮 丯 丰 丵 乀 +乁 乄 乇 乑 乚 乜 乣 乨 乩 乴 乵 乹 乿 亍 亖 亗 +亝 亯 亹 仃 仐 仚 仛 仠 仡 仢 仨 仯 仱 仳 仵 份 +仾 仿 伀 伂 伃 伈 伋 伌 伒 伕 伖 众 伙 伮 伱 你 +伳 伵 伷 伹 伻 伾 佀 佂 佈 佉 佋 佌 佒 佔 佖 佘 +佟 佣 佪 佬 佮 佱 佷 佸 佹 佺 佽 佾 侁 侂 侄 + 侅 侉 侊 侌 侎 侐 侒 侓 侔 侗 侙 侚 侞 侟 侲 +侷 侹 侻 侼 侽 侾 俀 俁 俅 俆 俈 俉 俋 俌 俍 俏 +俒 俜 俠 俢 俰 俲 俼 俽 俿 倀 倁 倄 倇 倊 倌 倎 +倐 倓 倗 倘 倛 倜 倝 倞 倢 倧 倮 倰 倲 倳 倵 偀 +偁 偂 偅 偆 偊 偌 偎 偑 偒 偓 偗 偙 偟 偠 偢 偣 +偦 偧 偪 偭 偰 偱 倻 傁 傃 傄 傆 傊 傎 傏 傐 + 傒 傓 傔 傖 傛 傜 傞 傟 傠 傡 傢 傪 傯 傰 傹 +傺 傽 僀 僃 僄 僇 僌 僎 僐 僓 僔 僘 僜 僝 僟 僢 +僤 僦 僨 僩 僯 僱 僶 僺 僾 儃 儆 儇 儈 儋 儌 儍 +儎 僲 儐 儗 儙 儛 儜 儝 儞 儣 儧 儨 儬 儭 儯 儱 +儳 儴 儵 儸 儹 兂 兊 兏 兓 兕 兗 兘 兟 兤 兦 兾 +冃 冄 冋 冎 冘 冝 冡 冣 冭 冸 冺 冼 冾 冿 凂 + 凈 减 凑 凒 凓 凕 凘 凞 凢 凥 凮 凲 凳 凴 凷 +刁 刂 刅 划 刓 刕 刖 刘 刢 刨 刱 刲 刵 刼 剅 剉 +剕 剗 剘 剚 剜 剟 剠 剡 剦 剮 剷 剸 剹 劀 劂 劅 +劊 劌 劓 劕 劖 劗 劘 劚 劜 劤 劥 劦 劧 劯 劰 劶 +劷 劸 劺 劻 劽 勀 勄 勆 勈 勌 勏 勑 勔 勖 勛 勜 +勡 勥 勨 勩 勪 勬 勰 勱 勴 勶 勷 匀 匃 匊 匋 + 匌 匑 匓 匘 匛 匜 匞 匟 匥 匧 匨 匩 匫 匬 匭 +匰 匲 匵 匼 匽 匾 卂 卌 卋 卙 卛 卡 卣 卥 卬 卭 +卲 卹 卾 厃 厇 厈 厎 厓 厔 厙 厝 厡 厤 厪 厫 厯 +厲 厴 厵 厷 厸 厺 厽 叀 叅 叏 叒 叓 叕 叚 叝 叞 +叠 另 叧 叵 吂 吓 吚 吡 吧 吨 吪 启 吱 吴 吵 呃 +呄 呇 呍 呏 呞 呢 呤 呦 呧 呩 呫 呭 呮 呴 呿 + 咁 咃 咅 咈 咉 咍 咑 咕 咖 咜 咟 咡 咦 咧 咩 +咪 咭 咮 咱 咷 咹 咺 咻 咿 哆 哊 响 哎 哠 哪 哬 +哯 哶 哼 哾 哿 唀 唁 唅 唈 唉 唌 唍 唎 唕 唪 唫 +唲 唵 唶 唻 唼 唽 啁 啇 啉 啊 啍 啐 啑 啘 啚 啛 +啞 啠 啡 啤 啦 啿 喁 喂 喆 喈 喎 喏 喑 喒 喓 喔 +喗 喣 喤 喭 喲 喿 嗁 嗃 嗆 嗉 嗋 嗌 嗎 嗑 嗒 + 嗓 嗗 嗘 嗛 嗞 嗢 嗩 嗶 嗿 嘅 嘈 嘊 嘍 嘎 嘏 +嘐 嘑 嘒 嘙 嘬 嘰 嘳 嘵 嘷 嘹 嘻 嘼 嘽 嘿 噀 噁 +噃 噄 噆 噉 噋 噍 噏 噔 噞 噠 噡 噢 噣 噦 噩 噭 +噯 噱 噲 噵 嚄 嚅 嚈 嚋 嚌 嚕 嚙 嚚 嚝 嚞 嚟 嚦 +嚧 嚨 嚩 嚫 嚬 嚭 嚱 嚳 嚷 嚾 囅 囉 囊 囋 囏 囐 +囌 囍 囙 囜 囝 囟 囡 囤 囥 囦 囧 囨 囱 囫 园 + 囶 囷 圁 圂 圇 圊 圌 圑 圕 圚 圛 圝 圠 圢 圣 +圤 圥 圩 圪 圬 圮 圯 圳 圴 圽 圾 圿 坅 坆 坌 坍 +坒 坢 坥 坧 坨 坫 坭 坮 坯 坰 坱 坳 坴 坵 坷 坹 +坺 坻 坼 坾 垁 垃 垌 垔 垗 垙 垚 垜 垝 垞 垟 垡 +垕 垧 垨 垩 垬 垸 垽 埇 埈 埌 埏 埕 埝 埞 埤 埦 +埧 埩 埭 埰 埵 埶 埸 埽 埾 埿 堃 堄 堈 堉 埡 + 堌 堍 堛 堞 堟 堠 堦 堧 堭 堲 堹 堿 塉 塌 塍 +塏 塐 塕 塟 塡 塤 塧 塨 塸 塼 塿 墀 墁 墇 墈 墉 +墊 墌 墍 墏 墐 墔 墖 墝 墠 墡 墢 墦 墩 墱 墲 壄 +墼 壂 壈 壍 壎 壐 壒 壔 壖 壚 壝 壡 壢 壩 壳 夅 +夆 夋 夌 夒 夓 夔 虁 夝 夡 夣 夤 夨 夯 夰 夳 夵 +夶 夿 奃 奆 奒 奓 奙 奛 奝 奞 奟 奡 奣 奫 奭 + 奯 奲 奵 奶 她 奻 奼 妋 妌 妎 妒 妕 妗 妟 妤 +妧 妭 妮 妯 妰 妳 妷 妺 妼 姁 姃 姄 姈 姊 姍 姒 +姝 姞 姟 姣 姤 姧 姮 姯 姱 姲 姴 姷 娀 娄 娌 娍 +娎 娒 娓 娞 娣 娤 娧 娨 娪 娭 娰 婄 婅 婇 婈 婌 +婐 婕 婞 婣 婥 婧 婭 婷 婺 婻 婾 媋 媐 媓 媖 媙 +媜 媞 媟 媠 媢 媧 媬 媱 媲 媳 媵 媸 媺 媻 媿 + 嫄 嫆 嫈 嫏 嫚 嫜 嫠 嫥 嫪 嫮 嫵 嫶 嫽 嬀 嬁 +嬈 嬗 嬴 嬙 嬛 嬝 嬡 嬥 嬭 嬸 孁 孋 孌 孒 孖 孞 +孨 孮 孯 孼 孽 孾 孿 宁 宄 宆 宊 宎 宐 宑 宓 宔 +宖 宨 宩 宬 宭 宯 宱 宲 宷 宺 宼 寀 寁 寍 寏 寖 +寗 寘 寙 寚 寠 寯 寱 寴 寽 尌 尗 尞 尟 尣 尦 尩 +尫 尬 尮 尰 尲 尵 尶 屙 屚 屜 屢 屣 屧 屨 屩 + 屭 屰 屴 屵 屺 屻 屼 屽 岇 岈 岊 岏 岒 岝 岟 +岠 岢 岣 岦 岪 岲 岴 岵 岺 峉 峋 峒 峝 峗 峮 峱 +峲 峴 崁 崆 崍 崒 崫 崣 崤 崦 崧 崱 崴 崹 崽 崿 +嵂 嵃 嵆 嵈 嵕 嵑 嵙 嵊 嵟 嵠 嵡 嵢 嵤 嵪 嵭 嵰 +嵹 嵺 嵾 嵿 嶁 嶃 嶈 嶊 嶒 嶓 嶔 嶕 嶙 嶛 嶟 嶠 +嶧 嶫 嶰 嶴 嶸 嶹 巃 巇 巋 巐 巎 巘 巙 巠 巤 + 巩 巸 巹 帀 帇 帍 帒 帔 帕 帘 帟 帠 帮 帨 帲 +帵 帾 幋 幐 幉 幑 幖 幘 幛 幜 幞 幨 幪 幫 幬 幭 +幮 幰 庀 庋 庎 庢 庤 庥 庨 庪 庬 庱 庳 庽 庾 庿 +廆 廌 廋 廎 廑 廒 廔 廕 廜 廞 廥 廫 异 弆 弇 弈 +弎 弙 弜 弝 弡 弢 弣 弤 弨 弫 弬 弮 弰 弴 弶 弻 +弽 弿 彀 彄 彅 彇 彍 彐 彔 彘 彛 彠 彣 彤 彧 + 彯 彲 彴 彵 彸 彺 彽 彾 徉 徍 徏 徖 徜 徝 徢 +徧 徫 徤 徬 徯 徰 徱 徸 忄 忇 忈 忉 忋 忐 忑 忒 +忓 忔 忞 忡 忢 忨 忩 忪 忬 忭 忮 忯 忲 忳 忶 忺 +忼 怇 怊 怍 怓 怔 怗 怘 怚 怟 怤 怭 怳 怵 恀 恇 +恈 恉 恌 恑 恔 恖 恗 恝 恡 恧 恱 恾 恿 悂 悆 悈 +悊 悎 悑 悓 悕 悘 悝 悞 悢 悤 悥 您 悰 悱 悷 + 悻 悾 惂 惄 惈 惉 惊 惋 惎 惏 惔 惕 惙 惛 惝 +惞 惢 惥 惲 惵 惸 惼 惽 愂 愇 愊 愌 愐 愑 愒 愓 +愔 愖 愗 愙 愜 愞 愢 愪 愫 愰 愱 愵 愶 愷 愹 慁 +慅 慆 慉 慞 慠 慬 慲 慸 慻 慼 慿 憀 憁 憃 憄 憋 +憍 憒 憓 憗 憘 憜 憝 憟 憠 憥 憨 憪 憭 憸 憹 憼 +懀 懁 懂 懎 懏 懕 懜 懝 懞 懟 懡 懢 懧 懩 懥 + 懬 懭 懯 戁 戃 戄 戇 戓 戕 戜 戠 戢 戣 戧 戩 +戫 戹 戽 扂 扃 扄 扆 扌 扐 扑 扒 扔 扖 扚 扜 扤 +扭 扯 扳 扺 扽 抍 抎 抏 抐 抦 抨 抳 抶 抷 抺 抾 +抿 拄 拎 拕 拖 拚 拪 拲 拴 拼 拽 挃 挄 挊 挋 挍 +挐 挓 挖 挘 挩 挪 挭 挵 挶 挹 挼 捁 捂 捃 捄 捆 +捊 捋 捎 捒 捓 捔 捘 捛 捥 捦 捬 捭 捱 捴 捵 + 捸 捼 捽 捿 掂 掄 掇 掊 掐 掔 掕 掙 掚 掞 掤 +掦 掭 掮 掯 掽 揁 揅 揈 揎 揑 揓 揔 揕 揜 揠 揥 +揪 揬 揲 揳 揵 揸 揹 搉 搊 搐 搒 搔 搘 搞 搠 搢 +搤 搥 搩 搪 搯 搰 搵 搽 搿 摋 摏 摑 摒 摓 摔 摚 +摛 摜 摝 摟 摠 摡 摣 摭 摳 摴 摻 摽 撅 撇 撏 撐 +撑 撘 撙 撛 撝 撟 撡 撣 撦 撨 撬 撳 撽 撾 撿 + 擄 擉 擊 擋 擌 擎 擐 擑 擕 擗 擤 擥 擩 擪 擭 +擰 擵 擷 擻 擿 攁 攄 攈 攉 攊 攏 攓 攔 攖 攙 攛 +攞 攟 攢 攦 攩 攮 攱 攺 攼 攽 敃 敇 敉 敐 敒 敔 +敟 敠 敧 敫 敺 敽 斁 斅 斊 斒 斕 斘 斝 斠 斣 斦 +斮 斲 斳 斴 斿 旂 旈 旉 旎 旐 旔 旖 旘 旟 旰 旲 +旴 旵 旹 旾 旿 昀 昄 昈 昉 昍 昑 昒 昕 昖 昝 + 昞 昡 昢 昣 昤 昦 昩 昪 昫 昬 昮 昰 昱 昳 昹 +昷 晀 晅 晆 晊 晌 晑 晎 晗 晘 晙 晛 晜 晠 晡 曻 +晪 晫 晬 晾 晳 晵 晿 晷 晸 晹 晻 暀 晼 暋 暌 暍 +暐 暒 暙 暚 暛 暜 暟 暠 暤 暭 暱 暲 暵 暻 暿 曀 +曂 曃 曈 曌 曎 曏 曔 曛 曟 曨 曫 曬 曮 曺 朅 朇 +朎 朓 朙 朜 朠 朢 朳 朾 杅 杇 杈 杌 杔 杕 杝 + 杦 杬 杮 杴 杶 杻 极 构 枎 枏 枑 枓 枖 枘 枙 +枛 枰 枱 枲 枵 枻 枼 枽 柹 柀 柂 柃 柅 柈 柉 柒 +柗 柙 柜 柡 柦 柰 柲 柶 柷 桒 栔 栙 栝 栟 栨 栧 +栬 栭 栯 栰 栱 栳 栻 栿 桄 桅 桊 桌 桕 桗 桘 桛 +桫 桮 桯 桰 桱 桲 桵 桹 桺 桻 桼 梂 梄 梆 梈 梖 +梘 梚 梜 梡 梣 梥 梩 梪 梮 梲 梻 棅 棈 棌 棏 + 棐 棑 棓 棖 棙 棜 棝 棥 棨 棪 棫 棬 棭 棰 棱 +棵 棶 棻 棼 棽 椆 椉 椊 椐 椑 椓 椖 椗 椱 椳 椵 +椸 椻 楂 楅 楉 楎 楗 楛 楣 楤 楥 楦 楨 楩 楬 楰 +楱 楲 楺 楻 楿 榀 榍 榒 榖 榘 榡 榥 榦 榨 榫 榭 +榯 榷 榸 榺 榼 槅 槈 槑 槖 槗 槢 槥 槮 槯 槱 槳 +槵 槾 樀 樁 樃 樏 樑 樕 樚 樝 樠 樤 樨 樰 樲 + 樴 樷 樻 樾 樿 橅 橆 橉 橊 橎 橐 橑 橒 橕 橖 +橛 橤 橧 橪 橱 橳 橾 檁 檃 檆 檇 檉 檋 檑 檛 檝 +檞 檟 檥 檫 檯 檰 檱 檴 檽 檾 檿 櫆 櫉 櫈 櫌 櫐 +櫔 櫕 櫖 櫜 櫝 櫤 櫧 櫬 櫰 櫱 櫲 櫼 櫽 欂 欃 欆 +欇 欉 欏 欐 欑 欗 欛 欞 欤 欨 欫 欬 欯 欵 欶 欻 +欿 歆 歊 歍 歒 歖 歘 歝 歠 歧 歫 歮 歰 歵 歽 + 歾 殂 殅 殗 殛 殟 殠 殢 殣 殨 殩 殬 殭 殮 殰 +殸 殹 殽 殾 毃 毄 毉 毌 毖 毚 毡 毣 毦 毧 毮 毱 +毷 毹 毿 氂 氄 氅 氉 氍 氎 氐 氒 氙 氟 氦 氧 氨 +氬 氮 氳 氵 氶 氺 氻 氿 汊 汋 汍 汏 汒 汔 汙 汛 +汜 汫 汭 汯 汴 汶 汸 汹 汻 沅 沆 沇 沉 沔 沕 沗 +沘 沜 沟 沰 沲 沴 泂 泆 泍 泏 泐 泑 泒 泔 泖 + 泚 泜 泠 泧 泩 泫 泬 泮 泲 泴 洄 洇 洊 洎 洏 +洑 洓 洚 洦 洧 洨 汧 洮 洯 洱 洹 洼 洿 浗 浞 浟 +浡 浥 浧 浯 浰 浼 涂 涇 涑 涒 涔 涖 涗 涘 涪 涬 +涴 涷 涹 涽 涿 淄 淈 淊 淎 淏 淖 淛 淝 淟 淠 淢 +淥 淩 淯 淰 淴 淶 淼 渀 渄 渞 渢 渧 渲 渶 渹 渻 +渼 湄 湅 湈 湉 湋 湏 湑 湒 湓 湔 湗 湜 湝 湞 + 湢 湣 湨 湳 湻 湽 溍 溓 溙 溠 溧 溭 溮 溱 溳 +溻 溿 滀 滁 滃 滇 滈 滊 滍 滎 滏 滫 滭 滮 滹 滻 +滽 漄 漈 漊 漌 漍 漖 漘 漚 漛 漦 漩 漪 漯 漰 漳 +漶 漻 漼 漭 潏 潑 潒 潓 潗 潙 潚 潝 潞 潡 潢 潨 +潬 潽 潾 澃 澇 澈 澋 澌 澍 澐 澒 澓 澔 澖 澚 澟 +澠 澥 澦 澧 澨 澮 澯 澰 澵 澶 澼 濅 濇 濈 濊 + 濚 濞 濨 濩 濰 濵 濹 濼 濽 瀀 瀅 瀆 瀇 瀍 瀗 +瀠 瀣 瀯 瀴 瀷 瀹 瀼 灃 灄 灈 灉 灊 灋 灔 灕 灝 +灞 灎 灤 灥 灬 灮 灵 灶 灾 炁 炅 炆 炔 炕 炖 炗 +炘 炛 炤 炫 炰 炱 炴 炷 烊 烑 烓 烔 烕 烖 烘 烜 +烤 烺 焃 焄 焅 焆 焇 焋 焌 焏 焞 焠 焫 焭 焯 焰 +焱 焸 煁 煅 煆 煇 煊 煋 煐 煒 煗 煚 煜 煞 煠 + 煨 煹 熀 熅 熇 熌 熒 熚 熛 熠 熢 熯 熰 熲 熳 +熺 熿 燀 燁 燄 燋 燌 燓 燖 燙 燚 燜 燸 燾 爀 爇 +爈 爉 爓 爗 爚 爝 爟 爤 爫 爯 爴 爸 爹 牁 牂 牃 +牅 牎 牏 牐 牓 牕 牖 牚 牜 牞 牠 牣 牨 牫 牮 牯 +牱 牷 牸 牻 牼 牿 犄 犉 犍 犎 犓 犛 犨 犭 犮 犱 +犴 犾 狁 狇 狉 狌 狕 狖 狘 狟 狥 狳 狴 狺 狻 + 狾 猂 猄 猅 猇 猋 猍 猒 猓 猘 猙 猞 猢 猤 猧 +猨 猬 猱 猲 猵 猺 猻 猽 獃 獍 獐 獒 獖 獘 獝 獞 +獟 獠 獦 獧 獩 獫 獬 獮 獯 獱 獷 獹 獼 玀 玁 玃 +玅 玆 玎 玐 玓 玕 玗 玘 玜 玞 玟 玠 玢 玥 玦 玪 +玫 玭 玵 玷 玹 玼 玽 玿 珅 珆 珉 珋 珌 珏 珒 珓 +珖 珙 珝 珡 珣 珦 珧 珩 珴 珵 珷 珹 珺 珻 珽 + 珿 琀 琁 琄 琇 琊 琑 琚 琛 琤 琦 琨 琩 琪 琫 +琬 琭 琮 琯 琰 琱 琹 瑀 瑃 瑄 瑆 瑇 瑋 瑍 瑑 瑒 +瑗 瑝 瑢 瑦 瑧 瑨 瑫 瑭 瑮 瑱 瑲 璀 璁 璅 璆 璇 +璉 璏 璐 璑 璒 璘 璙 璚 璜 璟 璠 璡 璣 璦 璨 璩 +璪 璫 璮 璯 璱 璲 璵 璹 璻 璿 瓈 瓉 瓌 瓐 瓓 瓘 +瓚 瓛 瓞 瓟 瓤 瓨 瓪 瓫 瓯 瓴 瓺 瓻 瓼 瓿 甆 + 甒 甖 甗 甠 甡 甤 甧 甩 甪 甯 甶 甹 甽 甾 甿 +畀 畃 畇 畈 畎 畐 畒 畗 畞 畟 畡 畯 畱 畹 畺 畻 +畼 畽 畾 疁 疅 疐 疒 疓 疕 疙 疜 疢 疤 疴 疺 疿 +痀 痁 痄 痆 痌 痎 痏 痗 痜 痟 痠 痡 痤 痧 痬 痮 +痯 痱 痹 瘀 瘂 瘃 瘄 瘇 瘈 瘊 瘌 瘏 瘒 瘓 瘕 瘖 +瘙 瘛 瘜 瘝 瘞 瘣 瘥 瘦 瘩 瘭 瘲 瘳 瘵 瘸 瘹 + 瘺 瘼 癊 癀 癁 癃 癄 癅 癉 癋 癕 癙 癟 癤 癥 +癭 癮 癯 癱 癴 皁 皅 皌 皍 皕 皛 皜 皝 皟 皠 皢 +皣 皤 皥 皦 皧 皨 皪 皭 皽 盁 盅 盉 盋 盌 盎 盔 +盙 盠 盦 盨 盬 盰 盱 盶 盹 盼 眀 眆 眊 眎 眒 眔 +眕 眗 眙 眚 眜 眢 眨 眭 眮 眯 眴 眵 眶 眹 眽 眾 +睂 睅 睆 睊 睍 睎 睏 睒 睖 睗 睜 睞 睟 睠 睢 + 睤 睧 睪 睬 睰 睲 睳 睴 睺 睽 瞀 瞄 瞌 瞍 瞔 +瞕 瞖 瞚 瞟 瞢 瞧 瞪 瞮 瞯 瞱 瞵 瞾 矃 矉 矑 矒 +矕 矙 矞 矟 矠 矤 矦 矪 矬 矰 矱 矴 矸 矻 砅 砆 +砉 砍 砎 砑 砝 砡 砢 砣 砭 砮 砰 砵 砷 硃 硄 硇 +硈 硌 硎 硒 硜 硞 硠 硡 硣 硤 硨 硪 确 硺 硾 碊 +碏 碔 碘 碡 碝 碞 碟 碤 碨 碬 碭 碰 碱 碲 碳 + 碻 碽 碿 磇 磈 磉 磌 磎 磒 磓 磕 磖 磤 磛 磟 +磠 磡 磦 磪 磲 磳 礀 磶 磷 磺 磻 磿 礆 礌 礐 礚 +礜 礞 礟 礠 礥 礧 礩 礭 礱 礴 礵 礻 礽 礿 祄 祅 +祆 祊 祋 祏 祑 祔 祘 祛 祜 祧 祩 祫 祲 祹 祻 祼 +祾 禋 禌 禑 禓 禔 禕 禖 禘 禛 禜 禡 禨 禩 禫 禯 +禱 禴 禸 离 秂 秄 秇 秈 秊 秏 秔 秖 秚 秝 秞 + 秠 秢 秥 秪 秫 秭 秱 秸 秼 稂 稃 稇 稉 稊 稌 +稑 稕 稛 稞 稡 稧 稫 稭 稯 稰 稴 稵 稸 稹 稺 穄 +穅 穇 穈 穌 穕 穖 穙 穜 穝 穟 穠 穥 穧 穪 穭 穵 +穸 穾 窀 窂 窅 窆 窊 窋 窐 窑 窔 窞 窠 窣 窬 窳 +窵 窹 窻 窼 竆 竉 竌 竎 竑 竛 竨 竩 竫 竬 竱 竴 +竻 竽 竾 笇 笔 笟 笣 笧 笩 笪 笫 笭 笮 笯 笰 + 笱 笴 笽 笿 筀 筁 筇 筎 筕 筠 筤 筦 筩 筪 筭 +筯 筲 筳 筷 箄 箉 箎 箐 箑 箖 箛 箞 箠 箥 箬 箯 +箰 箲 箵 箶 箺 箻 箼 箽 篂 篅 篈 篊 篔 篖 篗 篙 +篚 篛 篨 篪 篲 篴 篵 篸 篹 篺 篼 篾 簁 簂 簃 簄 +簆 簉 簋 簌 簎 簏 簙 簛 簠 簥 簦 簨 簬 簱 簳 簴 +簶 簹 簺 籆 籊 籕 籑 籒 籓 籙 籚 籛 籜 籝 籞 + 籡 籣 籧 籩 籭 籮 籰 籲 籹 籼 籽 粆 粇 粏 粔 +粞 粠 粦 粰 粶 粷 粺 粻 粼 粿 糄 糇 糈 糉 糍 糏 +糓 糔 糕 糗 糙 糚 糝 糦 糩 糫 糵 紃 紇 紈 紉 紏 +紑 紒 紓 紖 紝 紞 紣 紦 紪 紭 紱 紼 紽 紾 絀 絁 +絇 絈 絍 絑 絓 絗 絙 絚 絜 絝 絥 絧 絪 絰 絸 絺 +絻 絿 綁 綂 綃 綅 綆 綈 綋 綌 綍 綑 綖 綗 綝 + 綞 綦 綧 綪 綳 綶 綷 綹 緂 緃 緄 緅 緆 緌 緍 +緎 緗 緙 縀 緢 緥 緦 緪 緫 緭 緱 緵 緶 緹 緺 縈 +縐 縑 縕 縗 縜 縝 縠 縧 縨 縬 縭 縯 縳 縶 縿 繄 +繅 繇 繎 繐 繒 繘 繟 繡 繢 繥 繫 繮 繯 繳 繸 繾 +纁 纆 纇 纊 纍 纑 纕 纘 纚 纝 纞 缼 缻 缽 缾 缿 +罃 罄 罇 罏 罒 罓 罛 罜 罝 罡 罣 罤 罥 罦 罭 + 罱 罽 罾 罿 羀 羋 羍 羏 羐 羑 羖 羗 羜 羡 羢 +羦 羪 羭 羴 羼 羿 翀 翃 翈 翎 翏 翛 翟 翣 翥 翨 +翬 翮 翯 翲 翺 翽 翾 翿 耇 耈 耊 耍 耎 耏 耑 耓 +耔 耖 耝 耞 耟 耠 耤 耦 耬 耮 耰 耴 耵 耷 耹 耺 +耼 耾 聀 聄 聠 聤 聦 聭 聱 聵 肁 肈 肎 肜 肞 肦 +肧 肫 肸 肹 胈 胍 胏 胒 胔 胕 胗 胘 胠 胭 胮 + 胰 胲 胳 胶 胹 胺 胾 脃 脋 脖 脗 脘 脜 脞 脠 +脤 脧 脬 脰 脵 脺 脼 腅 腇 腊 腌 腒 腗 腠 腡 腧 +腨 腩 腭 腯 腷 膁 膐 膄 膅 膆 膋 膎 膖 膘 膛 膞 +膢 膮 膲 膴 膻 臋 臃 臅 臊 臎 臏 臕 臗 臛 臝 臞 +臡 臤 臫 臬 臰 臱 臲 臵 臶 臸 臹 臽 臿 舀 舃 舏 +舓 舔 舙 舚 舝 舡 舢 舨 舲 舴 舺 艃 艄 艅 艆 + 艋 艎 艏 艑 艖 艜 艠 艣 艧 艭 艴 艻 艽 艿 芀 +芁 芃 芄 芇 芉 芊 芎 芑 芔 芖 芘 芚 芛 芠 芡 芣 +芤 芧 芨 芩 芪 芮 芰 芲 芴 芷 芺 芼 芾 芿 苆 苐 +苕 苚 苠 苢 苤 苨 苪 苭 苯 苶 苷 苽 苾 茀 茁 茇 +茈 茊 茋 荔 茛 茝 茞 茟 茡 茢 茬 茭 茮 茰 茳 茷 +茺 茼 茽 荂 荃 荄 荇 荍 荎 荑 荕 荖 荗 荰 荸 + 荽 荿 莀 莂 莄 莆 莍 莒 莔 莕 莘 莙 莛 莜 莝 +莦 莧 莩 莬 莾 莿 菀 菇 菉 菏 菐 菑 菔 菝 荓 菨 +菪 菶 菸 菹 菼 萁 萆 萊 萏 萑 萕 萙 莭 萯 萹 葅 +葇 葈 葊 葍 葏 葑 葒 葖 葘 葙 葚 葜 葠 葤 葥 葧 +葪 葰 葳 葴 葶 葸 葼 葽 蒁 蒅 蒒 蒓 蒕 蒞 蒦 蒨 +蒩 蒪 蒯 蒱 蒴 蒺 蒽 蒾 蓀 蓂 蓇 蓈 蓌 蓏 蓓 + 蓜 蓧 蓪 蓯 蓰 蓱 蓲 蓷 蔲 蓺 蓻 蓽 蔂 蔃 蔇 +蔌 蔎 蔐 蔜 蔞 蔢 蔣 蔤 蔥 蔧 蔪 蔫 蔯 蔳 蔴 蔶 +蔿 蕆 蕏 蕐 蕑 蕒 蕓 蕖 蕙 蕜 蕝 蕞 蕟 蕠 蕡 蕢 +蕤 蕫 蕯 蕹 蕺 蕻 蕽 蕿 薁 薅 薆 薉 薋 薌 薏 薓 +薘 薝 薟 薠 薢 薥 薧 薴 薶 薷 薸 薼 薽 薾 薿 藂 +藇 藊 藋 藎 薭 藘 藚 藟 藠 藦 藨 藭 藳 藶 藼 + 藿 蘀 蘄 蘅 蘍 蘎 蘐 蘑 蘒 蘘 蘙 蘛 蘞 蘡 蘧 +蘩 蘶 蘸 蘺 蘼 蘽 虀 虂 虆 虒 虓 虖 虗 虘 虙 虝 +虠 虡 虢 虣 虤 虩 虬 虯 虵 虶 虷 虺 蚍 蚑 蚖 蚘 +蚚 蚜 蚡 蚦 蚧 蚨 蚭 蚱 蚳 蚴 蚵 蚷 蚸 蚹 蚿 蛀 +蛁 蛃 蛅 蛑 蛒 蛕 蛗 蛚 蛜 蛠 蛣 蛥 蛧 蚈 蛺 蛼 +蛽 蜄 蜅 蜇 蜋 蜎 蜏 蜐 蜓 蜔 蜙 蜞 蜟 蜡 蜣 + 蜨 蜮 蜯 蜱 蜲 蜹 蜺 蜼 蜽 蜾 蝀 蝃 蝅 蝍 蝘 +蝝 蝡 蝤 蝥 蝯 蝱 蝲 蝻 螃 螄 螅 螆 螇 螈 螉 螋 +螌 螐 螓 螕 螗 螘 螙 螞 螠 螣 螧 螬 螭 螮 螱 螵 +螾 螿 蟁 蟈 蟉 蟊 蟎 蟕 蟖 蟙 蟚 蟜 蟟 蟢 蟣 蟤 +蟪 蟫 蟭 蟱 蟳 蟸 蟺 蟿 蠁 蠃 蠆 蠉 蠊 蠋 蠐 蠙 +蠒 蠓 蠔 蠘 蠚 蠛 蠜 蠞 蠟 蠨 蠭 蠮 蠰 蠲 蠵 + 蠺 蠼 衁 衃 衅 衈 衉 衊 衋 衎 衑 衕 衖 衘 衚 +衜 衟 衠 衤 衩 衱 衹 衻 袀 袘 袚 袛 袜 袟 袠 袨 +袪 袺 袽 袾 裀 裊 裋 裌 裍 裎 裑 裒 裓 裛 裞 裧 +裯 裰 裱 裵 裷 褁 褆 褍 褎 褏 褕 褖 褘 褙 褚 褜 +褠 褦 褧 褨 褰 褱 褲 褵 褹 褺 褾 襀 襂 襅 襆 襉 +襏 襒 襗 襚 襛 襜 襡 襢 襣 襫 襮 襰 襳 襵 襺 + 襻 襼 襽 覉 覍 覐 覔 覕 覛 覜 覟 覠 覥 覰 覴 +覵 覶 覷 覼 觔 觕 觖 觗 觘 觥 觩 觫 觭 觱 觳 觶 +觹 觽 觿 訄 訅 訇 訏 訑 訒 訔 訕 訞 訠 訢 訤 訦 +訫 訬 訯 訵 訷 訽 訾 詀 詃 詅 詇 詉 詍 詎 詓 詖 +詗 詘 詜 詝 詡 詥 詧 詵 詶 詷 詹 詺 詻 詾 詿 誀 +誃 誆 誋 誏 誐 誒 誖 誗 誙 誟 誧 誩 誮 誯 誳 + 誶 誷 誻 誾 諃 諆 諈 諉 諊 諑 諓 諔 諕 諗 諝 +諟 諬 諰 諴 諵 諶 諼 諿 謅 謆 謋 謑 謜 謞 謟 謊 +謭 謰 謷 謼 譂 譃 譄 譅 譆 譈 譒 譓 譔 譙 譍 譞 +譣 譭 譶 譸 譹 譼 譾 讁 讄 讅 讋 讍 讏 讔 讕 讜 +讞 讟 谸 谹 谽 谾 豅 豇 豉 豋 豏 豑 豓 豔 豗 豘 +豛 豝 豙 豣 豤 豦 豨 豩 豭 豳 豵 豶 豻 豾 貆 + 貇 貋 貐 貒 貓 貙 貛 貜 貤 貹 貺 賅 賆 賉 賋 +賏 賖 賕 賙 賝 賡 賨 賬 賯 賰 賲 賵 賷 賸 賾 賿 +贁 贃 贉 贒 贗 贛 赥 赩 赬 赮 赿 趂 趄 趈 趍 趐 +趑 趕 趞 趟 趠 趦 趫 趬 趯 趲 趵 趷 趹 趻 跀 跅 +跆 跇 跈 跊 跎 跑 跔 跕 跗 跙 跤 跥 跧 跬 跰 趼 +跱 跲 跴 跽 踁 踄 踅 踆 踋 踑 踔 踖 踠 踡 踢 + 踣 踦 踧 踱 踳 踶 踷 踸 踹 踽 蹀 蹁 蹋 蹍 蹎 +蹏 蹔 蹛 蹜 蹝 蹞 蹡 蹢 蹩 蹬 蹭 蹯 蹰 蹱 蹹 蹺 +蹻 躂 躃 躉 躐 躒 躕 躚 躛 躝 躞 躢 躧 躩 躭 躮 +躳 躵 躺 躻 軀 軁 軃 軄 軇 軏 軑 軔 軜 軨 軮 軰 +軱 軷 軹 軺 軭 輀 輂 輇 輈 輏 輐 輖 輗 輘 輞 輠 +輡 輣 輥 輧 輨 輬 輭 輮 輴 輵 輶 輷 輺 轀 轁 + 轃 轇 轏 轑 轒 轓 轔 轕 轘 轝 轞 轥 辝 辠 辡 +辤 辥 辦 辵 辶 辸 达 迀 迁 迆 迊 迋 迍 运 迒 迓 +迕 迠 迣 迤 迨 迮 迱 迵 迶 迻 迾 适 逄 逈 逌 逘 +逛 逨 逩 逯 逪 逬 逭 逳 逴 逷 逿 遃 遄 遌 遛 遝 +遢 遦 遧 遬 遰 遴 遹 邅 邈 邋 邌 邎 邐 邕 邗 邘 +邙 邛 邠 邡 邢 邥 邰 邲 邳 邴 邶 邽 郌 邾 郃 + 郄 郅 郇 郈 郕 郗 郘 郙 郜 郝 郟 郥 郒 郶 郫 +郯 郰 郴 郾 郿 鄀 鄄 鄅 鄆 鄈 鄍 鄐 鄔 鄖 鄗 鄘 +鄚 鄜 鄞 鄠 鄥 鄢 鄣 鄧 鄩 鄮 鄯 鄱 鄴 鄶 鄷 鄹 +鄺 鄼 鄽 酃 酇 酈 酏 酓 酗 酙 酚 酛 酡 酤 酧 酭 +酴 酹 酺 酻 醁 醃 醅 醆 醊 醎 醑 醓 醔 醕 醘 醞 +醡 醦 醨 醬 醭 醮 醰 醱 醲 醳 醶 醻 醼 醽 醿 + 釂 釃 釅 釓 釔 釗 釙 釚 釞 釤 釥 釩 釪 釬 釭 +釮 釯 釰 釱 釷 釹 釻 釽 鈀 鈁 鈄 鈅 鈆 鈇 鈉 鈊 +鈌 鈐 鈒 鈓 鈖 鈘 鈜 鈝 鈣 鈤 鈥 鈦 鈨 鈮 鈯 鈰 +鈳 鈵 鈶 鈸 鈹 鈺 鈼 鈾 鉀 鉂 鉃 鉆 鉇 鉊 鉍 鉎 +鉏 鉑 鉘 鉙 鉜 鉝 鉠 鉡 鉥 鉧 鉨 鉩 鉮 鉯 鉰 鉵 +鉶 鉷 鉸 鉹 鉻 鉼 鉽 鉿 銈 銉 銊 銍 銎 銒 銗 + 銙 銟 銠 銤 銥 銧 銨 銫 銯 銲 銶 銸 銺 銻 銼 +銽 銿 鋀 鋁 鋂 鋃 鋅 鋆 鋇 鋈 鋋 鋌 鋍 鋎 鋐 鋓 +鋕 鋗 鋘 鋙 鋜 鋝 鋟 鋠 鋡 鋣 鋥 鋧 鋨 鋬 鋮 鋰 +鋹 鋻 鋿 錀 錂 錈 錍 錑 錔 錕 錜 錝 錞 錟 錡 錤 +錥 錧 錩 錪 錳 錴 錶 錷 鍇 鍈 鍉 鍐 鍑 鍒 鍕 鍗 +鍘 鍚 鍞 鍤 鍥 鍧 鍩 鍪 鍭 鍯 鍰 鍱 鍳 鍴 鍶 + 鍺 鍽 鍿 鎀 鎁 鎂 鎈 鎊 鎋 鎍 鎏 鎒 鎕 鎘 鎛 +鎞 鎡 鎣 鎤 鎦 鎨 鎫 鎴 鎵 鎶 鎺 鎩 鏁 鏄 鏅 鏆 +鏇 鏉 鏊 鏋 鏌 鏍 鏓 鏙 鏜 鏞 鏟 鏢 鏦 鏧 鏹 鏷 +鏸 鏺 鏻 鏽 鐁 鐂 鐄 鐈 鐉 鐍 鐎 鐏 鐕 鐖 鐗 鐟 +鐮 鐯 鐱 鐲 鐳 鐴 鐻 鐿 鐽 鑃 鑅 鑈 鑊 鑌 鑕 鑙 +鑜 鑟 鑡 鑣 鑨 鑫 鑭 鑮 鑯 鑱 鑲 钄 钃 镸 镹 + 镾 閄 閈 閌 閍 閎 閝 閞 閟 閡 閦 閩 閫 閬 閴 +閶 閺 閽 閿 闆 闈 闉 闋 闐 闑 闒 闓 闙 闚 闝 闞 +闟 闠 闤 闦 阝 阞 阢 阤 阥 阦 阬 阱 阳 阷 阸 阹 +阺 阼 阽 陁 陒 陔 陖 陗 陘 陡 陮 陴 陻 陼 陾 陿 +隁 隂 隃 隄 隉 隑 隖 隚 隝 隟 隤 隥 隦 隩 隮 隯 +隳 隺 雊 雒 嶲 雘 雚 雝 雞 雟 雩 雯 雱 雺 霂 + 霃 霅 霉 霚 霛 霝 霡 霢 霣 霨 霱 霳 靁 靃 靊 +靎 靏 靕 靗 靘 靚 靛 靣 靧 靪 靮 靳 靶 靷 靸 靻 +靽 靿 鞀 鞉 鞕 鞖 鞗 鞙 鞚 鞞 鞟 鞢 鞬 鞮 鞱 鞲 +鞵 鞶 鞸 鞹 鞺 鞼 鞾 鞿 韁 韄 韅 韇 韉 韊 韌 韍 +韎 韐 韑 韔 韗 韘 韙 韝 韞 韠 韛 韡 韤 韯 韱 韴 +韷 韸 韺 頇 頊 頙 頍 頎 頔 頖 頜 頞 頠 頣 頦 + 頫 頮 頯 頰 頲 頳 頵 頥 頾 顄 顇 顊 顑 顒 顓 +顖 顗 顙 顚 顢 顣 顥 顦 顪 顬 颫 颭 颮 颰 颴 颷 +颸 颺 颻 颿 飂 飅 飈 飌 飡 飣 飥 飦 飧 飪 飳 飶 +餂 餇 餈 餑 餕 餖 餗 餚 餛 餜 餟 餢 餦 餧 餫 餱 +餲 餳 餴 餵 餹 餺 餻 餼 饀 饁 饆 饇 饈 饍 饎 饔 +饘 饙 饛 饜 饞 饟 饠 馛 馝 馟 馦 馰 馱 馲 馵 + 馹 馺 馽 馿 駃 駉 駓 駔 駙 駚 駜 駞 駧 駪 駫 +駬 駰 駴 駵 駹 駽 駾 騂 騃 騄 騋 騌 騐 騑 騖 騞 +騠 騢 騣 騤 騧 騭 騮 騳 騵 騶 騸 驇 驁 驄 驊 驋 +驌 驎 驑 驔 驖 驝 骪 骬 骮 骯 骲 骴 骵 骶 骹 骻 +骾 骿 髁 髃 髆 髈 髎 髐 髒 髕 髖 髗 髛 髜 髠 髤 +髥 髧 髩 髬 髲 髳 髵 髹 髺 髽 髿 鬀 鬁 鬂 鬃 + 鬄 鬅 鬈 鬉 鬋 鬌 鬍 鬎 鬐 鬒 鬖 鬙 鬛 鬜 鬠 +鬦 鬫 鬭 鬳 鬴 鬵 鬷 鬹 鬺 鬽 魈 魋 魌 魕 魖 魗 +魛 魞 魡 魣 魥 魦 魨 魪 魫 魬 魭 魮 魳 魵 魷 魸 +魹 魿 鮀 鮄 鮅 鮆 鮇 鮉 鮊 鮋 鮍 鮏 鮐 鮔 鮚 鮝 +鮞 鮦 鮧 鮩 鮬 鮰 鮱 鮲 鮷 鮸 鮻 鮼 鮾 鮿 鯁 鯇 +鯈 鯎 鯐 鯗 鯘 鯝 鯟 鯥 鯧 鯪 鯫 鯯 鯳 鯷 鯸 + 鯹 鯺 鯽 鯿 鰀 鰂 鰋 鰏 鰑 鰖 鰘 鰙 鰚 鰜 鰞 +鰢 鰣 鰦 鰧 鰨 鰩 鰪 鰱 鰵 鰶 鰷 鰽 鱁 鱃 鱄 鱅 +鱉 鱊 鱎 鱏 鱐 鱓 鱔 鱖 鱘 鱛 鱝 鱞 鱟 鱣 鱩 鱪 +鱜 鱫 鱨 鱮 鱰 鱲 鱵 鱷 鱻 鳦 鳲 鳷 鳹 鴋 鴂 鴑 +鴗 鴘 鴜 鴝 鴞 鴯 鴰 鴲 鴳 鴴 鴺 鴼 鵅 鴽 鵂 鵃 +鵇 鵊 鵓 鵔 鵟 鵣 鵢 鵥 鵩 鵪 鵫 鵰 鵶 鵷 鵻 + 鵼 鵾 鶃 鶄 鶆 鶊 鶍 鶎 鶒 鶓 鶕 鶖 鶗 鶘 鶡 +鶪 鶬 鶮 鶱 鶵 鶹 鶼 鶿 鷃 鷇 鷉 鷊 鷔 鷕 鷖 鷗 +鷚 鷞 鷟 鷠 鷥 鷧 鷩 鷫 鷮 鷰 鷳 鷴 鷾 鸊 鸂 鸇 +鸎 鸐 鸑 鸒 鸕 鸖 鸙 鸜 鸝 鹺 鹻 鹼 麀 麂 麃 麄 +麅 麇 麎 麏 麖 麘 麛 麞 麤 麨 麬 麮 麯 麰 麳 麴 +麵 黆 黈 黋 黕 黟 黤 黧 黬 黭 黮 黰 黱 黲 黵 + 黸 黿 鼂 鼃 鼉 鼏 鼐 鼑 鼒 鼔 鼖 鼗 鼙 鼚 鼛 +鼟 鼢 鼦 鼪 鼫 鼯 鼱 鼲 鼴 鼷 鼹 鼺 鼼 鼽 鼿 齁 +齃 齄 齅 齆 齇 齓 齕 齖 齗 齘 齚 齝 齞 齨 齩 齭 +齮 齯 齰 齱 齳 齵 齺 齽 龏 龐 龑 龒 龔 龖 龗 龞 +龡 龢 龣 龥 + ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ + ' " 炻 仼 僴 凬 匇 匤 +﨎 咊 坙 﨏 塚 增 寬 峵 嵓 﨑 德 悅 愠 敎 晥 +晴 朗 栁 﨓 﨔 橫 櫢 淸 淲 瀨 凞 猪 甁 皂 皞 益 +礰 礼 神 祥 福 竧 靖 精 綠 緖 羽 荢 﨟 薰 蘒 﨡 +蠇 諸 譿 賴 赶 﨣 﨤 逸 郞 都 鄕 﨧 﨨 閒 隆 + 﨩 霻 靑 飯 飼 館 馞 髙 魲 鶴 黑 + 靍 +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               +                +                +                +                +                +               diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.alt b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.alt new file mode 100644 index 0000000..72a9c29 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-MS-snippet.alt @@ -0,0 +1,989 @@ + ! " # $ % & ' ( ) * + , - . / +0 1 2 3 4 5 6 7 8 9 : ; < = > ? +@ A B C D E F G H I J K L M N O +P Q R S T U V W X Y Z [ \ ] ^ _ +` a b c d e f g h i j k l m n o +p q r s t u v w x y z { | } ~ + (I!(B (I"(B (I#(B (I$(B (I%(B (I&(B (I'(B (I((B (I)(B (I*(B (I+(B (I,(B (I-(B (I.(B (I/(B +(I0(B (I1(B (I2(B (I3(B (I4(B (I5(B (I6(B (I7(B (I8(B (I9(B (I:(B (I;(B (I<(B (I=(B (I>(B (I?(B +(I@(B (IA(B (IB(B (IC(B (ID(B (IE(B (IF(B (IG(B (IH(B (II(B (IJ(B (IK(B (IL(B (IM(B (IN(B (IO(B +(IP(B (IQ(B (IR(B (IS(B (IT(B (IU(B (IV(B (IW(B (IX(B (IY(B (IZ(B (I[(B (I\(B (I](B (I^(B (I_(B + $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B +$B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B +$B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B +$B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B +$B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B +$B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B + $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B + $B":(B $B";(B $B"<(B $B"=(B $B">(B $B"?(B +$B"@(B $B"A(B $B"J(B $B"K(B $B"L(B $B"M(B $B"N(B $B"O(B +$B"P(B $B"\(B $B"](B $B"^(B $B"_(B +$B"`(B $B"a(B $B"b(B $B"c(B $B"d(B $B"e(B $B"f(B $B"g(B $B"h(B $B"i(B $B"j(B + $B"r(B $B"s(B $B"t(B $B"u(B $B"v(B $B"w(B $B"x(B $B"y(B $B"~(B +$B#0(B $B#1(B $B#2(B $B#3(B $B#4(B $B#5(B $B#6(B $B#7(B $B#8(B $B#9(B + $B#A(B $B#B(B $B#C(B $B#D(B $B#E(B $B#F(B $B#G(B $B#H(B $B#I(B $B#J(B $B#K(B $B#L(B $B#M(B $B#N(B $B#O(B +$B#P(B $B#Q(B $B#R(B $B#S(B $B#T(B $B#U(B $B#V(B $B#W(B $B#X(B $B#Y(B $B#Z(B + $B#a(B $B#b(B $B#c(B $B#d(B $B#e(B $B#f(B $B#g(B $B#h(B $B#i(B $B#j(B $B#k(B $B#l(B $B#m(B $B#n(B $B#o(B +$B#p(B $B#q(B $B#r(B $B#s(B $B#t(B $B#u(B $B#v(B $B#w(B $B#x(B $B#y(B $B#z(B + $B$!(B $B$"(B $B$#(B $B$$(B $B$%(B $B$&(B $B$'(B $B$((B $B$)(B $B$*(B $B$+(B $B$,(B $B$-(B $B$.(B $B$/(B +$B$0(B $B$1(B $B$2(B $B$3(B $B$4(B $B$5(B $B$6(B $B$7(B $B$8(B $B$9(B $B$:(B $B$;(B $B$<(B $B$=(B $B$>(B $B$?(B +$B$@(B $B$A(B $B$B(B $B$C(B $B$D(B $B$E(B $B$F(B $B$G(B $B$H(B $B$I(B $B$J(B $B$K(B $B$L(B $B$M(B $B$N(B $B$O(B +$B$P(B $B$Q(B $B$R(B $B$S(B $B$T(B $B$U(B $B$V(B $B$W(B $B$X(B $B$Y(B $B$Z(B $B$[(B $B$\(B $B$](B $B$^(B $B$_(B +$B$`(B $B$a(B $B$b(B $B$c(B $B$d(B $B$e(B $B$f(B $B$g(B $B$h(B $B$i(B $B$j(B $B$k(B $B$l(B $B$m(B $B$n(B $B$o(B +$B$p(B $B$q(B $B$r(B $B$s(B + $B%!(B $B%"(B $B%#(B $B%$(B $B%%(B $B%&(B $B%'(B $B%((B $B%)(B $B%*(B $B%+(B $B%,(B $B%-(B $B%.(B $B%/(B +$B%0(B $B%1(B $B%2(B $B%3(B $B%4(B $B%5(B $B%6(B $B%7(B $B%8(B $B%9(B $B%:(B $B%;(B $B%<(B $B%=(B $B%>(B $B%?(B +$B%@(B $B%A(B $B%B(B $B%C(B $B%D(B $B%E(B $B%F(B $B%G(B $B%H(B $B%I(B $B%J(B $B%K(B $B%L(B $B%M(B $B%N(B $B%O(B +$B%P(B $B%Q(B $B%R(B $B%S(B $B%T(B $B%U(B $B%V(B $B%W(B $B%X(B $B%Y(B $B%Z(B $B%[(B $B%\(B $B%](B $B%^(B $B%_(B +$B%`(B $B%a(B $B%b(B $B%c(B $B%d(B $B%e(B $B%f(B $B%g(B $B%h(B $B%i(B $B%j(B $B%k(B $B%l(B $B%m(B $B%n(B $B%o(B +$B%p(B $B%q(B $B%r(B $B%s(B $B%t(B $B%u(B $B%v(B + $B&!(B $B&"(B $B&#(B $B&$(B $B&%(B $B&&(B $B&'(B $B&((B $B&)(B $B&*(B $B&+(B $B&,(B $B&-(B $B&.(B $B&/(B +$B&0(B $B&1(B $B&2(B $B&3(B $B&4(B $B&5(B $B&6(B $B&7(B $B&8(B + $B&A(B $B&B(B $B&C(B $B&D(B $B&E(B $B&F(B $B&G(B $B&H(B $B&I(B $B&J(B $B&K(B $B&L(B $B&M(B $B&N(B $B&O(B +$B&P(B $B&Q(B $B&R(B $B&S(B $B&T(B $B&U(B $B&V(B $B&W(B $B&X(B + $B'!(B $B'"(B $B'#(B $B'$(B $B'%(B $B'&(B $B''(B $B'((B $B')(B $B'*(B $B'+(B $B',(B $B'-(B $B'.(B $B'/(B +$B'0(B $B'1(B $B'2(B $B'3(B $B'4(B $B'5(B $B'6(B $B'7(B $B'8(B $B'9(B $B':(B $B';(B $B'<(B $B'=(B $B'>(B $B'?(B +$B'@(B $B'A(B + $B'Q(B $B'R(B $B'S(B $B'T(B $B'U(B $B'V(B $B'W(B $B'X(B $B'Y(B $B'Z(B $B'[(B $B'\(B $B'](B $B'^(B $B'_(B +$B'`(B $B'a(B $B'b(B $B'c(B $B'd(B $B'e(B $B'f(B $B'g(B $B'h(B $B'i(B $B'j(B $B'k(B $B'l(B $B'm(B $B'n(B $B'o(B +$B'p(B $B'q(B + $B(!(B $B("(B $B(#(B $B($(B $B(%(B $B(&(B $B('(B $B(((B $B()(B $B(*(B $B(+(B $B(,(B $B(-(B $B(.(B $B(/(B +$B(0(B $B(1(B $B(2(B $B(3(B $B(4(B $B(5(B $B(6(B $B(7(B $B(8(B $B(9(B $B(:(B $B(;(B $B(<(B $B(=(B $B(>(B $B(?(B +$B(@(B + $B-!(B $B-"(B $B-#(B $B-$(B $B-%(B $B-&(B $B-'(B $B-((B $B-)(B $B-*(B $B-+(B $B-,(B $B--(B $B-.(B $B-/(B +$B-0(B $B-1(B $B-2(B $B-3(B $B-4(B $B-5(B $B-6(B $B-7(B $B-8(B $B-9(B $B-:(B $B-;(B $B-<(B $B-=(B $B->(B +$B-@(B $B-A(B $B-B(B $B-C(B $B-D(B $B-E(B $B-F(B $B-G(B $B-H(B $B-I(B $B-J(B $B-K(B $B-L(B $B-M(B $B-N(B $B-O(B +$B-P(B $B-Q(B $B-R(B $B-S(B $B-T(B $B-U(B $B-V(B $B-_(B +$B-`(B $B-a(B $B-b(B $B-c(B $B-d(B $B-e(B $B-f(B $B-g(B $B-h(B $B-i(B $B-j(B $B-k(B $B-l(B $B-m(B $B-n(B $B-o(B + $B-s(B $B-t(B $B-x(B $B-y(B + $B0!(B $B0"(B $B0#(B $B0$(B $B0%(B $B0&(B $B0'(B $B0((B $B0)(B $B0*(B $B0+(B $B0,(B $B0-(B $B0.(B $B0/(B +$B00(B $B01(B $B02(B $B03(B $B04(B $B05(B $B06(B $B07(B $B08(B $B09(B $B0:(B $B0;(B $B0<(B $B0=(B $B0>(B $B0?(B +$B0@(B $B0A(B $B0B(B $B0C(B $B0D(B $B0E(B $B0F(B $B0G(B $B0H(B $B0I(B $B0J(B $B0K(B $B0L(B $B0M(B $B0N(B $B0O(B +$B0P(B $B0Q(B $B0R(B $B0S(B $B0T(B $B0U(B $B0V(B $B0W(B $B0X(B $B0Y(B $B0Z(B $B0[(B $B0\(B $B0](B $B0^(B $B0_(B +$B0`(B $B0a(B $B0b(B $B0c(B $B0d(B $B0e(B $B0f(B $B0g(B $B0h(B $B0i(B $B0j(B $B0k(B $B0l(B $B0m(B $B0n(B $B0o(B +$B0p(B $B0q(B $B0r(B $B0s(B $B0t(B $B0u(B $B0v(B $B0w(B $B0x(B $B0y(B $B0z(B $B0{(B $B0|(B $B0}(B $B0~(B + $B1!(B $B1"(B $B1#(B $B1$(B $B1%(B $B1&(B $B1'(B $B1((B $B1)(B $B1*(B $B1+(B $B1,(B $B1-(B $B1.(B $B1/(B +$B10(B $B11(B $B12(B $B13(B $B14(B $B15(B $B16(B $B17(B $B18(B $B19(B $B1:(B $B1;(B $B1<(B $B1=(B $B1>(B $B1?(B +$B1@(B $B1A(B $B1B(B $B1C(B $B1D(B $B1E(B $B1F(B $B1G(B $B1H(B $B1I(B $B1J(B $B1K(B $B1L(B $B1M(B $B1N(B $B1O(B +$B1P(B $B1Q(B $B1R(B $B1S(B $B1T(B $B1U(B $B1V(B $B1W(B $B1X(B $B1Y(B $B1Z(B $B1[(B $B1\(B $B1](B $B1^(B $B1_(B +$B1`(B $B1a(B $B1b(B $B1c(B $B1d(B $B1e(B $B1f(B $B1g(B $B1h(B $B1i(B $B1j(B $B1k(B $B1l(B $B1m(B $B1n(B $B1o(B +$B1p(B $B1q(B $B1r(B $B1s(B $B1t(B $B1u(B $B1v(B $B1w(B $B1x(B $B1y(B $B1z(B $B1{(B $B1|(B $B1}(B $B1~(B + $B2!(B $B2"(B $B2#(B $B2$(B $B2%(B $B2&(B $B2'(B $B2((B $B2)(B $B2*(B $B2+(B $B2,(B $B2-(B $B2.(B $B2/(B +$B20(B $B21(B $B22(B $B23(B $B24(B $B25(B $B26(B $B27(B $B28(B $B29(B $B2:(B $B2;(B $B2<(B $B2=(B $B2>(B $B2?(B +$B2@(B $B2A(B $B2B(B $B2C(B $B2D(B $B2E(B $B2F(B $B2G(B $B2H(B $B2I(B $B2J(B $B2K(B $B2L(B $B2M(B $B2N(B $B2O(B +$B2P(B $B2Q(B $B2R(B $B2S(B $B2T(B $B2U(B $B2V(B $B2W(B $B2X(B $B2Y(B $B2Z(B $B2[(B $B2\(B $B2](B $B2^(B $B2_(B +$B2`(B $B2a(B $B2b(B $B2c(B $B2d(B $B2e(B $B2f(B $B2g(B $B2h(B $B2i(B $B2j(B $B2k(B $B2l(B $B2m(B $B2n(B $B2o(B +$B2p(B $B2q(B $B2r(B $B2s(B $B2t(B $B2u(B $B2v(B $B2w(B $B2x(B $B2y(B $B2z(B $B2{(B $B2|(B $B2}(B $B2~(B + $B3!(B $B3"(B $B3#(B $B3$(B $B3%(B $B3&(B $B3'(B $B3((B $B3)(B $B3*(B $B3+(B $B3,(B $B3-(B $B3.(B $B3/(B +$B30(B $B31(B $B32(B $B33(B $B34(B $B35(B $B36(B $B37(B $B38(B $B39(B $B3:(B $B3;(B $B3<(B $B3=(B $B3>(B $B3?(B +$B3@(B $B3A(B $B3B(B $B3C(B $B3D(B $B3E(B $B3F(B $B3G(B $B3H(B $B3I(B $B3J(B $B3K(B $B3L(B $B3M(B $B3N(B $B3O(B +$B3P(B $B3Q(B $B3R(B $B3S(B $B3T(B $B3U(B $B3V(B $B3W(B $B3X(B $B3Y(B $B3Z(B $B3[(B $B3\(B $B3](B $B3^(B $B3_(B +$B3`(B $B3a(B $B3b(B $B3c(B $B3d(B $B3e(B $B3f(B $B3g(B $B3h(B $B3i(B $B3j(B $B3k(B $B3l(B $B3m(B $B3n(B $B3o(B +$B3p(B $B3q(B $B3r(B $B3s(B $B3t(B $B3u(B $B3v(B $B3w(B $B3x(B $B3y(B $B3z(B $B3{(B $B3|(B $B3}(B $B3~(B + $B4!(B $B4"(B $B4#(B $B4$(B $B4%(B $B4&(B $B4'(B $B4((B $B4)(B $B4*(B $B4+(B $B4,(B $B4-(B $B4.(B $B4/(B +$B40(B $B41(B $B42(B $B43(B $B44(B $B45(B $B46(B $B47(B $B48(B $B49(B $B4:(B $B4;(B $B4<(B $B4=(B $B4>(B $B4?(B +$B4@(B $B4A(B $B4B(B $B4C(B $B4D(B $B4E(B $B4F(B $B4G(B $B4H(B $B4I(B $B4J(B $B4K(B $B4L(B $B4M(B $B4N(B $B4O(B +$B4P(B $B4Q(B $B4R(B $B4S(B $B4T(B $B4U(B $B4V(B $B4W(B $B4X(B $B4Y(B $B4Z(B $B4[(B $B4\(B $B4](B $B4^(B $B4_(B +$B4`(B $B4a(B $B4b(B $B4c(B $B4d(B $B4e(B $B4f(B $B4g(B $B4h(B $B4i(B $B4j(B $B4k(B $B4l(B $B4m(B $B4n(B $B4o(B +$B4p(B $B4q(B $B4r(B $B4s(B $B4t(B $B4u(B $B4v(B $B4w(B $B4x(B $B4y(B $B4z(B $B4{(B $B4|(B $B4}(B $B4~(B + $B5!(B $B5"(B $B5#(B $B5$(B $B5%(B $B5&(B $B5'(B $B5((B $B5)(B $B5*(B $B5+(B $B5,(B $B5-(B $B5.(B $B5/(B +$B50(B $B51(B $B52(B $B53(B $B54(B $B55(B $B56(B $B57(B $B58(B $B59(B $B5:(B $B5;(B $B5<(B $B5=(B $B5>(B $B5?(B +$B5@(B $B5A(B $B5B(B $B5C(B $B5D(B $B5E(B $B5F(B $B5G(B $B5H(B $B5I(B $B5J(B $B5K(B $B5L(B $B5M(B $B5N(B $B5O(B +$B5P(B $B5Q(B $B5R(B $B5S(B $B5T(B $B5U(B $B5V(B $B5W(B $B5X(B $B5Y(B $B5Z(B $B5[(B $B5\(B $B5](B $B5^(B $B5_(B +$B5`(B $B5a(B $B5b(B $B5c(B $B5d(B $B5e(B $B5f(B $B5g(B $B5h(B $B5i(B $B5j(B $B5k(B $B5l(B $B5m(B $B5n(B $B5o(B +$B5p(B $B5q(B $B5r(B $B5s(B $B5t(B $B5u(B $B5v(B $B5w(B $B5x(B $B5y(B $B5z(B $B5{(B $B5|(B $B5}(B $B5~(B + $B6!(B $B6"(B $B6#(B $B6$(B $B6%(B $B6&(B $B6'(B $B6((B $B6)(B $B6*(B $B6+(B $B6,(B $B6-(B $B6.(B $B6/(B +$B60(B $B61(B $B62(B $B63(B $B64(B $B65(B $B66(B $B67(B $B68(B $B69(B $B6:(B $B6;(B $B6<(B $B6=(B $B6>(B $B6?(B +$B6@(B $B6A(B $B6B(B $B6C(B $B6D(B $B6E(B $B6F(B $B6G(B $B6H(B $B6I(B $B6J(B $B6K(B $B6L(B $B6M(B $B6N(B $B6O(B +$B6P(B $B6Q(B $B6R(B $B6S(B $B6T(B $B6U(B $B6V(B $B6W(B $B6X(B $B6Y(B $B6Z(B $B6[(B $B6\(B $B6](B $B6^(B $B6_(B +$B6`(B $B6a(B $B6b(B $B6c(B $B6d(B $B6e(B $B6f(B $B6g(B $B6h(B $B6i(B $B6j(B $B6k(B $B6l(B $B6m(B $B6n(B $B6o(B +$B6p(B $B6q(B $B6r(B $B6s(B $B6t(B $B6u(B $B6v(B $B6w(B $B6x(B $B6y(B $B6z(B $B6{(B $B6|(B $B6}(B $B6~(B + $B7!(B $B7"(B $B7#(B $B7$(B $B7%(B $B7&(B $B7'(B $B7((B $B7)(B $B7*(B $B7+(B $B7,(B $B7-(B $B7.(B $B7/(B +$B70(B $B71(B $B72(B $B73(B $B74(B $B75(B $B76(B $B77(B $B78(B $B79(B $B7:(B $B7;(B $B7<(B $B7=(B $B7>(B $B7?(B +$B7@(B $B7A(B $B7B(B $B7C(B $B7D(B $B7E(B $B7F(B $B7G(B $B7H(B $B7I(B $B7J(B $B7K(B $B7L(B $B7M(B $B7N(B $B7O(B +$B7P(B $B7Q(B $B7R(B $B7S(B $B7T(B $B7U(B $B7V(B $B7W(B $B7X(B $B7Y(B $B7Z(B $B7[(B $B7\(B $B7](B $B7^(B $B7_(B +$B7`(B $B7a(B $B7b(B $B7c(B $B7d(B $B7e(B $B7f(B $B7g(B $B7h(B $B7i(B $B7j(B $B7k(B $B7l(B $B7m(B $B7n(B $B7o(B +$B7p(B $B7q(B $B7r(B $B7s(B $B7t(B $B7u(B $B7v(B $B7w(B $B7x(B $B7y(B $B7z(B $B7{(B $B7|(B $B7}(B $B7~(B + $B8!(B $B8"(B $B8#(B $B8$(B $B8%(B $B8&(B $B8'(B $B8((B $B8)(B $B8*(B $B8+(B $B8,(B $B8-(B $B8.(B $B8/(B +$B80(B $B81(B $B82(B $B83(B $B84(B $B85(B $B86(B $B87(B $B88(B $B89(B $B8:(B $B8;(B $B8<(B $B8=(B $B8>(B $B8?(B +$B8@(B $B8A(B $B8B(B $B8C(B $B8D(B $B8E(B $B8F(B $B8G(B $B8H(B $B8I(B $B8J(B $B8K(B $B8L(B $B8M(B $B8N(B $B8O(B +$B8P(B $B8Q(B $B8R(B $B8S(B $B8T(B $B8U(B $B8V(B $B8W(B $B8X(B $B8Y(B $B8Z(B $B8[(B $B8\(B $B8](B $B8^(B $B8_(B +$B8`(B $B8a(B $B8b(B $B8c(B $B8d(B $B8e(B $B8f(B $B8g(B $B8h(B $B8i(B $B8j(B $B8k(B $B8l(B $B8m(B $B8n(B $B8o(B +$B8p(B $B8q(B $B8r(B $B8s(B $B8t(B $B8u(B $B8v(B $B8w(B $B8x(B $B8y(B $B8z(B $B8{(B $B8|(B $B8}(B $B8~(B + $B9!(B $B9"(B $B9#(B $B9$(B $B9%(B $B9&(B $B9'(B $B9((B $B9)(B $B9*(B $B9+(B $B9,(B $B9-(B $B9.(B $B9/(B +$B90(B $B91(B $B92(B $B93(B $B94(B $B95(B $B96(B $B97(B $B98(B $B99(B $B9:(B $B9;(B $B9<(B $B9=(B $B9>(B $B9?(B +$B9@(B $B9A(B $B9B(B $B9C(B $B9D(B $B9E(B $B9F(B $B9G(B $B9H(B $B9I(B $B9J(B $B9K(B $B9L(B $B9M(B $B9N(B $B9O(B +$B9P(B $B9Q(B $B9R(B $B9S(B $B9T(B $B9U(B $B9V(B $B9W(B $B9X(B $B9Y(B $B9Z(B $B9[(B $B9\(B $B9](B $B9^(B $B9_(B +$B9`(B $B9a(B $B9b(B $B9c(B $B9d(B $B9e(B $B9f(B $B9g(B $B9h(B $B9i(B $B9j(B $B9k(B $B9l(B $B9m(B $B9n(B $B9o(B +$B9p(B $B9q(B $B9r(B $B9s(B $B9t(B $B9u(B $B9v(B $B9w(B $B9x(B $B9y(B $B9z(B $B9{(B $B9|(B $B9}(B $B9~(B + $B:!(B $B:"(B $B:#(B $B:$(B $B:%(B $B:&(B $B:'(B $B:((B $B:)(B $B:*(B $B:+(B $B:,(B $B:-(B $B:.(B $B:/(B +$B:0(B $B:1(B $B:2(B $B:3(B $B:4(B $B:5(B $B:6(B $B:7(B $B:8(B $B:9(B $B::(B $B:;(B $B:<(B $B:=(B $B:>(B $B:?(B +$B:@(B $B:A(B $B:B(B $B:C(B $B:D(B $B:E(B $B:F(B $B:G(B $B:H(B $B:I(B $B:J(B $B:K(B $B:L(B $B:M(B $B:N(B $B:O(B +$B:P(B $B:Q(B $B:R(B $B:S(B $B:T(B $B:U(B $B:V(B $B:W(B $B:X(B $B:Y(B $B:Z(B $B:[(B $B:\(B $B:](B $B:^(B $B:_(B +$B:`(B $B:a(B $B:b(B $B:c(B $B:d(B $B:e(B $B:f(B $B:g(B $B:h(B $B:i(B $B:j(B $B:k(B $B:l(B $B:m(B $B:n(B $B:o(B +$B:p(B $B:q(B $B:r(B $B:s(B $B:t(B $B:u(B $B:v(B $B:w(B $B:x(B $B:y(B $B:z(B $B:{(B $B:|(B $B:}(B $B:~(B + $B;!(B $B;"(B $B;#(B $B;$(B $B;%(B $B;&(B $B;'(B $B;((B $B;)(B $B;*(B $B;+(B $B;,(B $B;-(B $B;.(B $B;/(B +$B;0(B $B;1(B $B;2(B $B;3(B $B;4(B $B;5(B $B;6(B $B;7(B $B;8(B $B;9(B $B;:(B $B;;(B $B;<(B $B;=(B $B;>(B $B;?(B +$B;@(B $B;A(B $B;B(B $B;C(B $B;D(B $B;E(B $B;F(B $B;G(B $B;H(B $B;I(B $B;J(B $B;K(B $B;L(B $B;M(B $B;N(B $B;O(B +$B;P(B $B;Q(B $B;R(B $B;S(B $B;T(B $B;U(B $B;V(B $B;W(B $B;X(B $B;Y(B $B;Z(B $B;[(B $B;\(B $B;](B $B;^(B $B;_(B +$B;`(B $B;a(B $B;b(B $B;c(B $B;d(B $B;e(B $B;f(B $B;g(B $B;h(B $B;i(B $B;j(B $B;k(B $B;l(B $B;m(B $B;n(B $B;o(B +$B;p(B $B;q(B $B;r(B $B;s(B $B;t(B $B;u(B $B;v(B $B;w(B $B;x(B $B;y(B $B;z(B $B;{(B $B;|(B $B;}(B $B;~(B + $B(B $B(B $B=?(B +$B=@(B $B=A(B $B=B(B $B=C(B $B=D(B $B=E(B $B=F(B $B=G(B $B=H(B $B=I(B $B=J(B $B=K(B $B=L(B $B=M(B $B=N(B $B=O(B +$B=P(B $B=Q(B $B=R(B $B=S(B $B=T(B $B=U(B $B=V(B $B=W(B $B=X(B $B=Y(B $B=Z(B $B=[(B $B=\(B $B=](B $B=^(B $B=_(B +$B=`(B $B=a(B $B=b(B $B=c(B $B=d(B $B=e(B $B=f(B $B=g(B $B=h(B $B=i(B $B=j(B $B=k(B $B=l(B $B=m(B $B=n(B $B=o(B +$B=p(B $B=q(B $B=r(B $B=s(B $B=t(B $B=u(B $B=v(B $B=w(B $B=x(B $B=y(B $B=z(B $B={(B $B=|(B $B=}(B $B=~(B + $B>!(B $B>"(B $B>#(B $B>$(B $B>%(B $B>&(B $B>'(B $B>((B $B>)(B $B>*(B $B>+(B $B>,(B $B>-(B $B>.(B $B>/(B +$B>0(B $B>1(B $B>2(B $B>3(B $B>4(B $B>5(B $B>6(B $B>7(B $B>8(B $B>9(B $B>:(B $B>;(B $B><(B $B>=(B $B>>(B $B>?(B +$B>@(B $B>A(B $B>B(B $B>C(B $B>D(B $B>E(B $B>F(B $B>G(B $B>H(B $B>I(B $B>J(B $B>K(B $B>L(B $B>M(B $B>N(B $B>O(B +$B>P(B $B>Q(B $B>R(B $B>S(B $B>T(B $B>U(B $B>V(B $B>W(B $B>X(B $B>Y(B $B>Z(B $B>[(B $B>\(B $B>](B $B>^(B $B>_(B +$B>`(B $B>a(B $B>b(B $B>c(B $B>d(B $B>e(B $B>f(B $B>g(B $B>h(B $B>i(B $B>j(B $B>k(B $B>l(B $B>m(B $B>n(B $B>o(B +$B>p(B $B>q(B $B>r(B $B>s(B $B>t(B $B>u(B $B>v(B $B>w(B $B>x(B $B>y(B $B>z(B $B>{(B $B>|(B $B>}(B $B>~(B + $B?!(B $B?"(B $B?#(B $B?$(B $B?%(B $B?&(B $B?'(B $B?((B $B?)(B $B?*(B $B?+(B $B?,(B $B?-(B $B?.(B $B?/(B +$B?0(B $B?1(B $B?2(B $B?3(B $B?4(B $B?5(B $B?6(B $B?7(B $B?8(B $B?9(B $B?:(B $B?;(B $B?<(B $B?=(B $B?>(B $B??(B +$B?@(B $B?A(B $B?B(B $B?C(B $B?D(B $B?E(B $B?F(B $B?G(B $B?H(B $B?I(B $B?J(B $B?K(B $B?L(B $B?M(B $B?N(B $B?O(B +$B?P(B $B?Q(B $B?R(B $B?S(B $B?T(B $B?U(B $B?V(B $B?W(B $B?X(B $B?Y(B $B?Z(B $B?[(B $B?\(B $B?](B $B?^(B $B?_(B +$B?`(B $B?a(B $B?b(B $B?c(B $B?d(B $B?e(B $B?f(B $B?g(B $B?h(B $B?i(B $B?j(B $B?k(B $B?l(B $B?m(B $B?n(B $B?o(B +$B?p(B $B?q(B $B?r(B $B?s(B $B?t(B $B?u(B $B?v(B $B?w(B $B?x(B $B?y(B $B?z(B $B?{(B $B?|(B $B?}(B $B?~(B + $B@!(B $B@"(B $B@#(B $B@$(B $B@%(B $B@&(B $B@'(B $B@((B $B@)(B $B@*(B $B@+(B $B@,(B $B@-(B $B@.(B $B@/(B +$B@0(B $B@1(B $B@2(B $B@3(B $B@4(B $B@5(B $B@6(B $B@7(B $B@8(B $B@9(B $B@:(B $B@;(B $B@<(B $B@=(B $B@>(B $B@?(B +$B@@(B $B@A(B $B@B(B $B@C(B $B@D(B $B@E(B $B@F(B $B@G(B $B@H(B $B@I(B $B@J(B $B@K(B $B@L(B $B@M(B $B@N(B $B@O(B +$B@P(B $B@Q(B $B@R(B $B@S(B $B@T(B $B@U(B $B@V(B $B@W(B $B@X(B $B@Y(B $B@Z(B $B@[(B $B@\(B $B@](B $B@^(B $B@_(B +$B@`(B $B@a(B $B@b(B $B@c(B $B@d(B $B@e(B $B@f(B $B@g(B $B@h(B $B@i(B $B@j(B $B@k(B $B@l(B $B@m(B $B@n(B $B@o(B +$B@p(B $B@q(B $B@r(B $B@s(B $B@t(B $B@u(B $B@v(B $B@w(B $B@x(B $B@y(B $B@z(B $B@{(B $B@|(B $B@}(B $B@~(B + $BA!(B $BA"(B $BA#(B $BA$(B $BA%(B $BA&(B $BA'(B $BA((B $BA)(B $BA*(B $BA+(B $BA,(B $BA-(B $BA.(B $BA/(B +$BA0(B $BA1(B $BA2(B $BA3(B $BA4(B $BA5(B $BA6(B $BA7(B $BA8(B $BA9(B $BA:(B $BA;(B $BA<(B $BA=(B $BA>(B $BA?(B +$BA@(B $BAA(B $BAB(B $BAC(B $BAD(B $BAE(B $BAF(B $BAG(B $BAH(B $BAI(B $BAJ(B $BAK(B $BAL(B $BAM(B $BAN(B $BAO(B +$BAP(B $BAQ(B $BAR(B $BAS(B $BAT(B $BAU(B $BAV(B $BAW(B $BAX(B $BAY(B $BAZ(B $BA[(B $BA\(B $BA](B $BA^(B $BA_(B +$BA`(B $BAa(B $BAb(B $BAc(B $BAd(B $BAe(B $BAf(B $BAg(B $BAh(B $BAi(B $BAj(B $BAk(B $BAl(B $BAm(B $BAn(B $BAo(B +$BAp(B $BAq(B $BAr(B $BAs(B $BAt(B $BAu(B $BAv(B $BAw(B $BAx(B $BAy(B $BAz(B $BA{(B $BA|(B $BA}(B $BA~(B + $BB!(B $BB"(B $BB#(B $BB$(B $BB%(B $BB&(B $BB'(B $BB((B $BB)(B $BB*(B $BB+(B $BB,(B $BB-(B $BB.(B $BB/(B +$BB0(B $BB1(B $BB2(B $BB3(B $BB4(B $BB5(B $BB6(B $BB7(B $BB8(B $BB9(B $BB:(B $BB;(B $BB<(B $BB=(B $BB>(B $BB?(B +$BB@(B $BBA(B $BBB(B $BBC(B $BBD(B $BBE(B $BBF(B $BBG(B $BBH(B $BBI(B $BBJ(B $BBK(B $BBL(B $BBM(B $BBN(B $BBO(B +$BBP(B $BBQ(B $BBR(B $BBS(B $BBT(B $BBU(B $BBV(B $BBW(B $BBX(B $BBY(B $BBZ(B $BB[(B $BB\(B $BB](B $BB^(B $BB_(B +$BB`(B $BBa(B $BBb(B $BBc(B $BBd(B $BBe(B $BBf(B $BBg(B $BBh(B $BBi(B $BBj(B $BBk(B $BBl(B $BBm(B $BBn(B $BBo(B +$BBp(B $BBq(B $BBr(B $BBs(B $BBt(B $BBu(B $BBv(B $BBw(B $BBx(B $BBy(B $BBz(B $BB{(B $BB|(B $BB}(B $BB~(B + $BC!(B $BC"(B $BC#(B $BC$(B $BC%(B $BC&(B $BC'(B $BC((B $BC)(B $BC*(B $BC+(B $BC,(B $BC-(B $BC.(B $BC/(B +$BC0(B $BC1(B $BC2(B $BC3(B $BC4(B $BC5(B $BC6(B $BC7(B $BC8(B $BC9(B $BC:(B $BC;(B $BC<(B $BC=(B $BC>(B $BC?(B +$BC@(B $BCA(B $BCB(B $BCC(B $BCD(B $BCE(B $BCF(B $BCG(B $BCH(B $BCI(B $BCJ(B $BCK(B $BCL(B $BCM(B $BCN(B $BCO(B +$BCP(B $BCQ(B $BCR(B $BCS(B $BCT(B $BCU(B $BCV(B $BCW(B $BCX(B $BCY(B $BCZ(B $BC[(B $BC\(B $BC](B $BC^(B $BC_(B +$BC`(B $BCa(B $BCb(B $BCc(B $BCd(B $BCe(B $BCf(B $BCg(B $BCh(B $BCi(B $BCj(B $BCk(B $BCl(B $BCm(B $BCn(B $BCo(B +$BCp(B $BCq(B $BCr(B $BCs(B $BCt(B $BCu(B $BCv(B $BCw(B $BCx(B $BCy(B $BCz(B $BC{(B $BC|(B $BC}(B $BC~(B + $BD!(B $BD"(B $BD#(B $BD$(B $BD%(B $BD&(B $BD'(B $BD((B $BD)(B $BD*(B $BD+(B $BD,(B $BD-(B $BD.(B $BD/(B +$BD0(B $BD1(B $BD2(B $BD3(B $BD4(B $BD5(B $BD6(B $BD7(B $BD8(B $BD9(B $BD:(B $BD;(B $BD<(B $BD=(B $BD>(B $BD?(B +$BD@(B $BDA(B $BDB(B $BDC(B $BDD(B $BDE(B $BDF(B $BDG(B $BDH(B $BDI(B $BDJ(B $BDK(B $BDL(B $BDM(B $BDN(B $BDO(B +$BDP(B $BDQ(B $BDR(B $BDS(B $BDT(B $BDU(B $BDV(B $BDW(B $BDX(B $BDY(B $BDZ(B $BD[(B $BD\(B $BD](B $BD^(B $BD_(B +$BD`(B $BDa(B $BDb(B $BDc(B $BDd(B $BDe(B $BDf(B $BDg(B $BDh(B $BDi(B $BDj(B $BDk(B $BDl(B $BDm(B $BDn(B $BDo(B +$BDp(B $BDq(B $BDr(B $BDs(B $BDt(B $BDu(B $BDv(B $BDw(B $BDx(B $BDy(B $BDz(B $BD{(B $BD|(B $BD}(B $BD~(B + $BE!(B $BE"(B $BE#(B $BE$(B $BE%(B $BE&(B $BE'(B $BE((B $BE)(B $BE*(B $BE+(B $BE,(B $BE-(B $BE.(B $BE/(B +$BE0(B $BE1(B $BE2(B $BE3(B $BE4(B $BE5(B $BE6(B $BE7(B $BE8(B $BE9(B $BE:(B $BE;(B $BE<(B $BE=(B $BE>(B $BE?(B +$BE@(B $BEA(B $BEB(B $BEC(B $BED(B $BEE(B $BEF(B $BEG(B $BEH(B $BEI(B $BEJ(B $BEK(B $BEL(B $BEM(B $BEN(B $BEO(B +$BEP(B $BEQ(B $BER(B $BES(B $BET(B $BEU(B $BEV(B $BEW(B $BEX(B $BEY(B $BEZ(B $BE[(B $BE\(B $BE](B $BE^(B $BE_(B +$BE`(B $BEa(B $BEb(B $BEc(B $BEd(B $BEe(B $BEf(B $BEg(B $BEh(B $BEi(B $BEj(B $BEk(B $BEl(B $BEm(B $BEn(B $BEo(B +$BEp(B $BEq(B $BEr(B $BEs(B $BEt(B $BEu(B $BEv(B $BEw(B $BEx(B $BEy(B $BEz(B $BE{(B $BE|(B $BE}(B $BE~(B + $BF!(B $BF"(B $BF#(B $BF$(B $BF%(B $BF&(B $BF'(B $BF((B $BF)(B $BF*(B $BF+(B $BF,(B $BF-(B $BF.(B $BF/(B +$BF0(B $BF1(B $BF2(B $BF3(B $BF4(B $BF5(B $BF6(B $BF7(B $BF8(B $BF9(B $BF:(B $BF;(B $BF<(B $BF=(B $BF>(B $BF?(B +$BF@(B $BFA(B $BFB(B $BFC(B $BFD(B $BFE(B $BFF(B $BFG(B $BFH(B $BFI(B $BFJ(B $BFK(B $BFL(B $BFM(B $BFN(B $BFO(B +$BFP(B $BFQ(B $BFR(B $BFS(B $BFT(B $BFU(B $BFV(B $BFW(B $BFX(B $BFY(B $BFZ(B $BF[(B $BF\(B $BF](B $BF^(B $BF_(B +$BF`(B $BFa(B $BFb(B $BFc(B $BFd(B $BFe(B $BFf(B $BFg(B $BFh(B $BFi(B $BFj(B $BFk(B $BFl(B $BFm(B $BFn(B $BFo(B +$BFp(B $BFq(B $BFr(B $BFs(B $BFt(B $BFu(B $BFv(B $BFw(B $BFx(B $BFy(B $BFz(B $BF{(B $BF|(B $BF}(B $BF~(B + $BG!(B $BG"(B $BG#(B $BG$(B $BG%(B $BG&(B $BG'(B $BG((B $BG)(B $BG*(B $BG+(B $BG,(B $BG-(B $BG.(B $BG/(B +$BG0(B $BG1(B $BG2(B $BG3(B $BG4(B $BG5(B $BG6(B $BG7(B $BG8(B $BG9(B $BG:(B $BG;(B $BG<(B $BG=(B $BG>(B $BG?(B +$BG@(B $BGA(B $BGB(B $BGC(B $BGD(B $BGE(B $BGF(B $BGG(B $BGH(B $BGI(B $BGJ(B $BGK(B $BGL(B $BGM(B $BGN(B $BGO(B +$BGP(B $BGQ(B $BGR(B $BGS(B $BGT(B $BGU(B $BGV(B $BGW(B $BGX(B $BGY(B $BGZ(B $BG[(B $BG\(B $BG](B $BG^(B $BG_(B +$BG`(B $BGa(B $BGb(B $BGc(B $BGd(B $BGe(B $BGf(B $BGg(B $BGh(B $BGi(B $BGj(B $BGk(B $BGl(B $BGm(B $BGn(B $BGo(B +$BGp(B $BGq(B $BGr(B $BGs(B $BGt(B $BGu(B $BGv(B $BGw(B $BGx(B $BGy(B $BGz(B $BG{(B $BG|(B $BG}(B $BG~(B + $BH!(B $BH"(B $BH#(B $BH$(B $BH%(B $BH&(B $BH'(B $BH((B $BH)(B $BH*(B $BH+(B $BH,(B $BH-(B $BH.(B $BH/(B +$BH0(B $BH1(B $BH2(B $BH3(B $BH4(B $BH5(B $BH6(B $BH7(B $BH8(B $BH9(B $BH:(B $BH;(B $BH<(B $BH=(B $BH>(B $BH?(B +$BH@(B $BHA(B $BHB(B $BHC(B $BHD(B $BHE(B $BHF(B $BHG(B $BHH(B $BHI(B $BHJ(B $BHK(B $BHL(B $BHM(B $BHN(B $BHO(B +$BHP(B $BHQ(B $BHR(B $BHS(B $BHT(B $BHU(B $BHV(B $BHW(B $BHX(B $BHY(B $BHZ(B $BH[(B $BH\(B $BH](B $BH^(B $BH_(B +$BH`(B $BHa(B $BHb(B $BHc(B $BHd(B $BHe(B $BHf(B $BHg(B $BHh(B $BHi(B $BHj(B $BHk(B $BHl(B $BHm(B $BHn(B $BHo(B +$BHp(B $BHq(B $BHr(B $BHs(B $BHt(B $BHu(B $BHv(B $BHw(B $BHx(B $BHy(B $BHz(B $BH{(B $BH|(B $BH}(B $BH~(B + $BI!(B $BI"(B $BI#(B $BI$(B $BI%(B $BI&(B $BI'(B $BI((B $BI)(B $BI*(B $BI+(B $BI,(B $BI-(B $BI.(B $BI/(B +$BI0(B $BI1(B $BI2(B $BI3(B $BI4(B $BI5(B $BI6(B $BI7(B $BI8(B $BI9(B $BI:(B $BI;(B $BI<(B $BI=(B $BI>(B $BI?(B +$BI@(B $BIA(B $BIB(B $BIC(B $BID(B $BIE(B $BIF(B $BIG(B $BIH(B $BII(B $BIJ(B $BIK(B $BIL(B $BIM(B $BIN(B $BIO(B +$BIP(B $BIQ(B $BIR(B $BIS(B $BIT(B $BIU(B $BIV(B $BIW(B $BIX(B $BIY(B $BIZ(B $BI[(B $BI\(B $BI](B $BI^(B $BI_(B +$BI`(B $BIa(B $BIb(B $BIc(B $BId(B $BIe(B $BIf(B $BIg(B $BIh(B $BIi(B $BIj(B $BIk(B $BIl(B $BIm(B $BIn(B $BIo(B +$BIp(B $BIq(B $BIr(B $BIs(B $BIt(B $BIu(B $BIv(B $BIw(B $BIx(B $BIy(B $BIz(B $BI{(B $BI|(B $BI}(B $BI~(B + $BJ!(B $BJ"(B $BJ#(B $BJ$(B $BJ%(B $BJ&(B $BJ'(B $BJ((B $BJ)(B $BJ*(B $BJ+(B $BJ,(B $BJ-(B $BJ.(B $BJ/(B +$BJ0(B $BJ1(B $BJ2(B $BJ3(B $BJ4(B $BJ5(B $BJ6(B $BJ7(B $BJ8(B $BJ9(B $BJ:(B $BJ;(B $BJ<(B $BJ=(B $BJ>(B $BJ?(B +$BJ@(B $BJA(B $BJB(B $BJC(B $BJD(B $BJE(B $BJF(B $BJG(B $BJH(B $BJI(B $BJJ(B $BJK(B $BJL(B $BJM(B $BJN(B $BJO(B +$BJP(B $BJQ(B $BJR(B $BJS(B $BJT(B $BJU(B $BJV(B $BJW(B $BJX(B $BJY(B $BJZ(B $BJ[(B $BJ\(B $BJ](B $BJ^(B $BJ_(B +$BJ`(B $BJa(B $BJb(B $BJc(B $BJd(B $BJe(B $BJf(B $BJg(B $BJh(B $BJi(B $BJj(B $BJk(B $BJl(B $BJm(B $BJn(B $BJo(B +$BJp(B $BJq(B $BJr(B $BJs(B $BJt(B $BJu(B $BJv(B $BJw(B $BJx(B $BJy(B $BJz(B $BJ{(B $BJ|(B $BJ}(B $BJ~(B + $BK!(B $BK"(B $BK#(B $BK$(B $BK%(B $BK&(B $BK'(B $BK((B $BK)(B $BK*(B $BK+(B $BK,(B $BK-(B $BK.(B $BK/(B +$BK0(B $BK1(B $BK2(B $BK3(B $BK4(B $BK5(B $BK6(B $BK7(B $BK8(B $BK9(B $BK:(B $BK;(B $BK<(B $BK=(B $BK>(B $BK?(B +$BK@(B $BKA(B $BKB(B $BKC(B $BKD(B $BKE(B $BKF(B $BKG(B $BKH(B $BKI(B $BKJ(B $BKK(B $BKL(B $BKM(B $BKN(B $BKO(B +$BKP(B $BKQ(B $BKR(B $BKS(B $BKT(B $BKU(B $BKV(B $BKW(B $BKX(B $BKY(B $BKZ(B $BK[(B $BK\(B $BK](B $BK^(B $BK_(B +$BK`(B $BKa(B $BKb(B $BKc(B $BKd(B $BKe(B $BKf(B $BKg(B $BKh(B $BKi(B $BKj(B $BKk(B $BKl(B $BKm(B $BKn(B $BKo(B +$BKp(B $BKq(B $BKr(B $BKs(B $BKt(B $BKu(B $BKv(B $BKw(B $BKx(B $BKy(B $BKz(B $BK{(B $BK|(B $BK}(B $BK~(B + $BL!(B $BL"(B $BL#(B $BL$(B $BL%(B $BL&(B $BL'(B $BL((B $BL)(B $BL*(B $BL+(B $BL,(B $BL-(B $BL.(B $BL/(B +$BL0(B $BL1(B $BL2(B $BL3(B $BL4(B $BL5(B $BL6(B $BL7(B $BL8(B $BL9(B $BL:(B $BL;(B $BL<(B $BL=(B $BL>(B $BL?(B +$BL@(B $BLA(B $BLB(B $BLC(B $BLD(B $BLE(B $BLF(B $BLG(B $BLH(B $BLI(B $BLJ(B $BLK(B $BLL(B $BLM(B $BLN(B $BLO(B +$BLP(B $BLQ(B $BLR(B $BLS(B $BLT(B $BLU(B $BLV(B $BLW(B $BLX(B $BLY(B $BLZ(B $BL[(B $BL\(B $BL](B $BL^(B $BL_(B +$BL`(B $BLa(B $BLb(B $BLc(B $BLd(B $BLe(B $BLf(B $BLg(B $BLh(B $BLi(B $BLj(B $BLk(B $BLl(B $BLm(B $BLn(B $BLo(B +$BLp(B $BLq(B $BLr(B $BLs(B $BLt(B $BLu(B $BLv(B $BLw(B $BLx(B $BLy(B $BLz(B $BL{(B $BL|(B $BL}(B $BL~(B + $BM!(B $BM"(B $BM#(B $BM$(B $BM%(B $BM&(B $BM'(B $BM((B $BM)(B $BM*(B $BM+(B $BM,(B $BM-(B $BM.(B $BM/(B +$BM0(B $BM1(B $BM2(B $BM3(B $BM4(B $BM5(B $BM6(B $BM7(B $BM8(B $BM9(B $BM:(B $BM;(B $BM<(B $BM=(B $BM>(B $BM?(B +$BM@(B $BMA(B $BMB(B $BMC(B $BMD(B $BME(B $BMF(B $BMG(B $BMH(B $BMI(B $BMJ(B $BMK(B $BML(B $BMM(B $BMN(B $BMO(B +$BMP(B $BMQ(B $BMR(B $BMS(B $BMT(B $BMU(B $BMV(B $BMW(B $BMX(B $BMY(B $BMZ(B $BM[(B $BM\(B $BM](B $BM^(B $BM_(B +$BM`(B $BMa(B $BMb(B $BMc(B $BMd(B $BMe(B $BMf(B $BMg(B $BMh(B $BMi(B $BMj(B $BMk(B $BMl(B $BMm(B $BMn(B $BMo(B +$BMp(B $BMq(B $BMr(B $BMs(B $BMt(B $BMu(B $BMv(B $BMw(B $BMx(B $BMy(B $BMz(B $BM{(B $BM|(B $BM}(B $BM~(B + $BN!(B $BN"(B $BN#(B $BN$(B $BN%(B $BN&(B $BN'(B $BN((B $BN)(B $BN*(B $BN+(B $BN,(B $BN-(B $BN.(B $BN/(B +$BN0(B $BN1(B $BN2(B $BN3(B $BN4(B $BN5(B $BN6(B $BN7(B $BN8(B $BN9(B $BN:(B $BN;(B $BN<(B $BN=(B $BN>(B $BN?(B +$BN@(B $BNA(B $BNB(B $BNC(B $BND(B $BNE(B $BNF(B $BNG(B $BNH(B $BNI(B $BNJ(B $BNK(B $BNL(B $BNM(B $BNN(B $BNO(B +$BNP(B $BNQ(B $BNR(B $BNS(B $BNT(B $BNU(B $BNV(B $BNW(B $BNX(B $BNY(B $BNZ(B $BN[(B $BN\(B $BN](B $BN^(B $BN_(B +$BN`(B $BNa(B $BNb(B $BNc(B $BNd(B $BNe(B $BNf(B $BNg(B $BNh(B $BNi(B $BNj(B $BNk(B $BNl(B $BNm(B $BNn(B $BNo(B +$BNp(B $BNq(B $BNr(B $BNs(B $BNt(B $BNu(B $BNv(B $BNw(B $BNx(B $BNy(B $BNz(B $BN{(B $BN|(B $BN}(B $BN~(B + $BO!(B $BO"(B $BO#(B $BO$(B $BO%(B $BO&(B $BO'(B $BO((B $BO)(B $BO*(B $BO+(B $BO,(B $BO-(B $BO.(B $BO/(B +$BO0(B $BO1(B $BO2(B $BO3(B $BO4(B $BO5(B $BO6(B $BO7(B $BO8(B $BO9(B $BO:(B $BO;(B $BO<(B $BO=(B $BO>(B $BO?(B +$BO@(B $BOA(B $BOB(B $BOC(B $BOD(B $BOE(B $BOF(B $BOG(B $BOH(B $BOI(B $BOJ(B $BOK(B $BOL(B $BOM(B $BON(B $BOO(B +$BOP(B $BOQ(B $BOR(B $BOS(B + $BP!(B $BP"(B $BP#(B $BP$(B $BP%(B $BP&(B $BP'(B $BP((B $BP)(B $BP*(B $BP+(B $BP,(B $BP-(B $BP.(B $BP/(B +$BP0(B $BP1(B $BP2(B $BP3(B $BP4(B $BP5(B $BP6(B $BP7(B $BP8(B $BP9(B $BP:(B $BP;(B $BP<(B $BP=(B $BP>(B $BP?(B +$BP@(B $BPA(B $BPB(B $BPC(B $BPD(B $BPE(B $BPF(B $BPG(B $BPH(B $BPI(B $BPJ(B $BPK(B $BPL(B $BPM(B $BPN(B $BPO(B +$BPP(B $BPQ(B $BPR(B $BPS(B $BPT(B $BPU(B $BPV(B $BPW(B $BPX(B $BPY(B $BPZ(B $BP[(B $BP\(B $BP](B $BP^(B $BP_(B +$BP`(B $BPa(B $BPb(B $BPc(B $BPd(B $BPe(B $BPf(B $BPg(B $BPh(B $BPi(B $BPj(B $BPk(B $BPl(B $BPm(B $BPn(B $BPo(B +$BPp(B $BPq(B $BPr(B $BPs(B $BPt(B $BPu(B $BPv(B $BPw(B $BPx(B $BPy(B $BPz(B $BP{(B $BP|(B $BP}(B $BP~(B + $BQ!(B $BQ"(B $BQ#(B $BQ$(B $BQ%(B $BQ&(B $BQ'(B $BQ((B $BQ)(B $BQ*(B $BQ+(B $BQ,(B $BQ-(B $BQ.(B $BQ/(B +$BQ0(B $BQ1(B $BQ2(B $BQ3(B $BQ4(B $BQ5(B $BQ6(B $BQ7(B $BQ8(B $BQ9(B $BQ:(B $BQ;(B $BQ<(B $BQ=(B $BQ>(B $BQ?(B +$BQ@(B $BQA(B $BQB(B $BQC(B $BQD(B $BQE(B $BQF(B $BQG(B $BQH(B $BQI(B $BQJ(B $BQK(B $BQL(B $BQM(B $BQN(B $BQO(B +$BQP(B $BQQ(B $BQR(B $BQS(B $BQT(B $BQU(B $BQV(B $BQW(B $BQX(B $BQY(B $BQZ(B $BQ[(B $BQ\(B $BQ](B $BQ^(B $BQ_(B +$BQ`(B $BQa(B $BQb(B $BQc(B $BQd(B $BQe(B $BQf(B $BQg(B $BQh(B $BQi(B $BQj(B $BQk(B $BQl(B $BQm(B $BQn(B $BQo(B +$BQp(B $BQq(B $BQr(B $BQs(B $BQt(B $BQu(B $BQv(B $BQw(B $BQx(B $BQy(B $BQz(B $BQ{(B $BQ|(B $BQ}(B $BQ~(B + $BR!(B $BR"(B $BR#(B $BR$(B $BR%(B $BR&(B $BR'(B $BR((B $BR)(B $BR*(B $BR+(B $BR,(B $BR-(B $BR.(B $BR/(B +$BR0(B $BR1(B $BR2(B $BR3(B $BR4(B $BR5(B $BR6(B $BR7(B $BR8(B $BR9(B $BR:(B $BR;(B $BR<(B $BR=(B $BR>(B $BR?(B +$BR@(B $BRA(B $BRB(B $BRC(B $BRD(B $BRE(B $BRF(B $BRG(B $BRH(B $BRI(B $BRJ(B $BRK(B $BRL(B $BRM(B $BRN(B $BRO(B +$BRP(B $BRQ(B $BRR(B $BRS(B $BRT(B $BRU(B $BRV(B $BRW(B $BRX(B $BRY(B $BRZ(B $BR[(B $BR\(B $BR](B $BR^(B $BR_(B +$BR`(B $BRa(B $BRb(B $BRc(B $BRd(B $BRe(B $BRf(B $BRg(B $BRh(B $BRi(B $BRj(B $BRk(B $BRl(B $BRm(B $BRn(B $BRo(B +$BRp(B $BRq(B $BRr(B $BRs(B $BRt(B $BRu(B $BRv(B $BRw(B $BRx(B $BRy(B $BRz(B $BR{(B $BR|(B $BR}(B $BR~(B + $BS!(B $BS"(B $BS#(B $BS$(B $BS%(B $BS&(B $BS'(B $BS((B $BS)(B $BS*(B $BS+(B $BS,(B $BS-(B $BS.(B $BS/(B +$BS0(B $BS1(B $BS2(B $BS3(B $BS4(B $BS5(B $BS6(B $BS7(B $BS8(B $BS9(B $BS:(B $BS;(B $BS<(B $BS=(B $BS>(B $BS?(B +$BS@(B $BSA(B $BSB(B $BSC(B $BSD(B $BSE(B $BSF(B $BSG(B $BSH(B $BSI(B $BSJ(B $BSK(B $BSL(B $BSM(B $BSN(B $BSO(B +$BSP(B $BSQ(B $BSR(B $BSS(B $BST(B $BSU(B $BSV(B $BSW(B $BSX(B $BSY(B $BSZ(B $BS[(B $BS\(B $BS](B $BS^(B $BS_(B +$BS`(B $BSa(B $BSb(B $BSc(B $BSd(B $BSe(B $BSf(B $BSg(B $BSh(B $BSi(B $BSj(B $BSk(B $BSl(B $BSm(B $BSn(B $BSo(B +$BSp(B $BSq(B $BSr(B $BSs(B $BSt(B $BSu(B $BSv(B $BSw(B $BSx(B $BSy(B $BSz(B $BS{(B $BS|(B $BS}(B $BS~(B + $BT!(B $BT"(B $BT#(B $BT$(B $BT%(B $BT&(B $BT'(B $BT((B $BT)(B $BT*(B $BT+(B $BT,(B $BT-(B $BT.(B $BT/(B +$BT0(B $BT1(B $BT2(B $BT3(B $BT4(B $BT5(B $BT6(B $BT7(B $BT8(B $BT9(B $BT:(B $BT;(B $BT<(B $BT=(B $BT>(B $BT?(B +$BT@(B $BTA(B $BTB(B $BTC(B $BTD(B $BTE(B $BTF(B $BTG(B $BTH(B $BTI(B $BTJ(B $BTK(B $BTL(B $BTM(B $BTN(B $BTO(B +$BTP(B $BTQ(B $BTR(B $BTS(B $BTT(B $BTU(B $BTV(B $BTW(B $BTX(B $BTY(B $BTZ(B $BT[(B $BT\(B $BT](B $BT^(B $BT_(B +$BT`(B $BTa(B $BTb(B $BTc(B $BTd(B $BTe(B $BTf(B $BTg(B $BTh(B $BTi(B $BTj(B $BTk(B $BTl(B $BTm(B $BTn(B $BTo(B +$BTp(B $BTq(B $BTr(B $BTs(B $BTt(B $BTu(B $BTv(B $BTw(B $BTx(B $BTy(B $BTz(B $BT{(B $BT|(B $BT}(B $BT~(B + $BU!(B $BU"(B $BU#(B $BU$(B $BU%(B $BU&(B $BU'(B $BU((B $BU)(B $BU*(B $BU+(B $BU,(B $BU-(B $BU.(B $BU/(B +$BU0(B $BU1(B $BU2(B $BU3(B $BU4(B $BU5(B $BU6(B $BU7(B $BU8(B $BU9(B $BU:(B $BU;(B $BU<(B $BU=(B $BU>(B $BU?(B +$BU@(B $BUA(B $BUB(B $BUC(B $BUD(B $BUE(B $BUF(B $BUG(B $BUH(B $BUI(B $BUJ(B $BUK(B $BUL(B $BUM(B $BUN(B $BUO(B +$BUP(B $BUQ(B $BUR(B $BUS(B $BUT(B $BUU(B $BUV(B $BUW(B $BUX(B $BUY(B $BUZ(B $BU[(B $BU\(B $BU](B $BU^(B $BU_(B +$BU`(B $BUa(B $BUb(B $BUc(B $BUd(B $BUe(B $BUf(B $BUg(B $BUh(B $BUi(B $BUj(B $BUk(B $BUl(B $BUm(B $BUn(B $BUo(B +$BUp(B $BUq(B $BUr(B $BUs(B $BUt(B $BUu(B $BUv(B $BUw(B $BUx(B $BUy(B $BUz(B $BU{(B $BU|(B $BU}(B $BU~(B + $BV!(B $BV"(B $BV#(B $BV$(B $BV%(B $BV&(B $BV'(B $BV((B $BV)(B $BV*(B $BV+(B $BV,(B $BV-(B $BV.(B $BV/(B +$BV0(B $BV1(B $BV2(B $BV3(B $BV4(B $BV5(B $BV6(B $BV7(B $BV8(B $BV9(B $BV:(B $BV;(B $BV<(B $BV=(B $BV>(B $BV?(B +$BV@(B $BVA(B $BVB(B $BVC(B $BVD(B $BVE(B $BVF(B $BVG(B $BVH(B $BVI(B $BVJ(B $BVK(B $BVL(B $BVM(B $BVN(B $BVO(B +$BVP(B $BVQ(B $BVR(B $BVS(B $BVT(B $BVU(B $BVV(B $BVW(B $BVX(B $BVY(B $BVZ(B $BV[(B $BV\(B $BV](B $BV^(B $BV_(B +$BV`(B $BVa(B $BVb(B $BVc(B $BVd(B $BVe(B $BVf(B $BVg(B $BVh(B $BVi(B $BVj(B $BVk(B $BVl(B $BVm(B $BVn(B $BVo(B +$BVp(B $BVq(B $BVr(B $BVs(B $BVt(B $BVu(B $BVv(B $BVw(B $BVx(B $BVy(B $BVz(B $BV{(B $BV|(B $BV}(B $BV~(B + $BW!(B $BW"(B $BW#(B $BW$(B $BW%(B $BW&(B $BW'(B $BW((B $BW)(B $BW*(B $BW+(B $BW,(B $BW-(B $BW.(B $BW/(B +$BW0(B $BW1(B $BW2(B $BW3(B $BW4(B $BW5(B $BW6(B $BW7(B $BW8(B $BW9(B $BW:(B $BW;(B $BW<(B $BW=(B $BW>(B $BW?(B +$BW@(B $BWA(B $BWB(B $BWC(B $BWD(B $BWE(B $BWF(B $BWG(B $BWH(B $BWI(B $BWJ(B $BWK(B $BWL(B $BWM(B $BWN(B $BWO(B +$BWP(B $BWQ(B $BWR(B $BWS(B $BWT(B $BWU(B $BWV(B $BWW(B $BWX(B $BWY(B $BWZ(B $BW[(B $BW\(B $BW](B $BW^(B $BW_(B +$BW`(B $BWa(B $BWb(B $BWc(B $BWd(B $BWe(B $BWf(B $BWg(B $BWh(B $BWi(B $BWj(B $BWk(B $BWl(B $BWm(B $BWn(B $BWo(B +$BWp(B $BWq(B $BWr(B $BWs(B $BWt(B $BWu(B $BWv(B $BWw(B $BWx(B $BWy(B $BWz(B $BW{(B $BW|(B $BW}(B $BW~(B + $BX!(B $BX"(B $BX#(B $BX$(B $BX%(B $BX&(B $BX'(B $BX((B $BX)(B $BX*(B $BX+(B $BX,(B $BX-(B $BX.(B $BX/(B +$BX0(B $BX1(B $BX2(B $BX3(B $BX4(B $BX5(B $BX6(B $BX7(B $BX8(B $BX9(B $BX:(B $BX;(B $BX<(B $BX=(B $BX>(B $BX?(B +$BX@(B $BXA(B $BXB(B $BXC(B $BXD(B $BXE(B $BXF(B $BXG(B $BXH(B $BXI(B $BXJ(B $BXK(B $BXL(B $BXM(B $BXN(B $BXO(B +$BXP(B $BXQ(B $BXR(B $BXS(B $BXT(B $BXU(B $BXV(B $BXW(B $BXX(B $BXY(B $BXZ(B $BX[(B $BX\(B $BX](B $BX^(B $BX_(B +$BX`(B $BXa(B $BXb(B $BXc(B $BXd(B $BXe(B $BXf(B $BXg(B $BXh(B $BXi(B $BXj(B $BXk(B $BXl(B $BXm(B $BXn(B $BXo(B +$BXp(B $BXq(B $BXr(B $BXs(B $BXt(B $BXu(B $BXv(B $BXw(B $BXx(B $BXy(B $BXz(B $BX{(B $BX|(B $BX}(B $BX~(B + $BY!(B $BY"(B $BY#(B $BY$(B $BY%(B $BY&(B $BY'(B $BY((B $BY)(B $BY*(B $BY+(B $BY,(B $BY-(B $BY.(B $BY/(B +$BY0(B $BY1(B $BY2(B $BY3(B $BY4(B $BY5(B $BY6(B $BY7(B $BY8(B $BY9(B $BY:(B $BY;(B $BY<(B $BY=(B $BY>(B $BY?(B +$BY@(B $BYA(B $BYB(B $BYC(B $BYD(B $BYE(B $BYF(B $BYG(B $BYH(B $BYI(B $BYJ(B $BYK(B $BYL(B $BYM(B $BYN(B $BYO(B +$BYP(B $BYQ(B $BYR(B $BYS(B $BYT(B $BYU(B $BYV(B $BYW(B $BYX(B $BYY(B $BYZ(B $BY[(B $BY\(B $BY](B $BY^(B $BY_(B +$BY`(B $BYa(B $BYb(B $BYc(B $BYd(B $BYe(B $BYf(B $BYg(B $BYh(B $BYi(B $BYj(B $BYk(B $BYl(B $BYm(B $BYn(B $BYo(B +$BYp(B $BYq(B $BYr(B $BYs(B $BYt(B $BYu(B $BYv(B $BYw(B $BYx(B $BYy(B $BYz(B $BY{(B $BY|(B $BY}(B $BY~(B + $BZ!(B $BZ"(B $BZ#(B $BZ$(B $BZ%(B $BZ&(B $BZ'(B $BZ((B $BZ)(B $BZ*(B $BZ+(B $BZ,(B $BZ-(B $BZ.(B $BZ/(B +$BZ0(B $BZ1(B $BZ2(B $BZ3(B $BZ4(B $BZ5(B $BZ6(B $BZ7(B $BZ8(B $BZ9(B $BZ:(B $BZ;(B $BZ<(B $BZ=(B $BZ>(B $BZ?(B +$BZ@(B $BZA(B $BZB(B $BZC(B $BZD(B $BZE(B $BZF(B $BZG(B $BZH(B $BZI(B $BZJ(B $BZK(B $BZL(B $BZM(B $BZN(B $BZO(B +$BZP(B $BZQ(B $BZR(B $BZS(B $BZT(B $BZU(B $BZV(B $BZW(B $BZX(B $BZY(B $BZZ(B $BZ[(B $BZ\(B $BZ](B $BZ^(B $BZ_(B +$BZ`(B $BZa(B $BZb(B $BZc(B $BZd(B $BZe(B $BZf(B $BZg(B $BZh(B $BZi(B $BZj(B $BZk(B $BZl(B $BZm(B $BZn(B $BZo(B +$BZp(B $BZq(B $BZr(B $BZs(B $BZt(B $BZu(B $BZv(B $BZw(B $BZx(B $BZy(B $BZz(B $BZ{(B $BZ|(B $BZ}(B $BZ~(B + $B[!(B $B["(B $B[#(B $B[$(B $B[%(B $B[&(B $B['(B $B[((B $B[)(B $B[*(B $B[+(B $B[,(B $B[-(B $B[.(B $B[/(B +$B[0(B $B[1(B $B[2(B $B[3(B $B[4(B $B[5(B $B[6(B $B[7(B $B[8(B $B[9(B $B[:(B $B[;(B $B[<(B $B[=(B $B[>(B $B[?(B +$B[@(B $B[A(B $B[B(B $B[C(B $B[D(B $B[E(B $B[F(B $B[G(B $B[H(B $B[I(B $B[J(B $B[K(B $B[L(B $B[M(B $B[N(B $B[O(B +$B[P(B $B[Q(B $B[R(B $B[S(B $B[T(B $B[U(B $B[V(B $B[W(B $B[X(B $B[Y(B $B[Z(B $B[[(B $B[\(B $B[](B $B[^(B $B[_(B +$B[`(B $B[a(B $B[b(B $B[c(B $B[d(B $B[e(B $B[f(B $B[g(B $B[h(B $B[i(B $B[j(B $B[k(B $B[l(B $B[m(B $B[n(B $B[o(B +$B[p(B $B[q(B $B[r(B $B[s(B $B[t(B $B[u(B $B[v(B $B[w(B $B[x(B $B[y(B $B[z(B $B[{(B $B[|(B $B[}(B $B[~(B + $B\!(B $B\"(B $B\#(B $B\$(B $B\%(B $B\&(B $B\'(B $B\((B $B\)(B $B\*(B $B\+(B $B\,(B $B\-(B $B\.(B $B\/(B +$B\0(B $B\1(B $B\2(B $B\3(B $B\4(B $B\5(B $B\6(B $B\7(B $B\8(B $B\9(B $B\:(B $B\;(B $B\<(B $B\=(B $B\>(B $B\?(B +$B\@(B $B\A(B $B\B(B $B\C(B $B\D(B $B\E(B $B\F(B $B\G(B $B\H(B $B\I(B $B\J(B $B\K(B $B\L(B $B\M(B $B\N(B $B\O(B +$B\P(B $B\Q(B $B\R(B $B\S(B $B\T(B $B\U(B $B\V(B $B\W(B $B\X(B $B\Y(B $B\Z(B $B\[(B $B\\(B $B\](B $B\^(B $B\_(B +$B\`(B $B\a(B $B\b(B $B\c(B $B\d(B $B\e(B $B\f(B $B\g(B $B\h(B $B\i(B $B\j(B $B\k(B $B\l(B $B\m(B $B\n(B $B\o(B +$B\p(B $B\q(B $B\r(B $B\s(B $B\t(B $B\u(B $B\v(B $B\w(B $B\x(B $B\y(B $B\z(B $B\{(B $B\|(B $B\}(B $B\~(B + $B]!(B $B]"(B $B]#(B $B]$(B $B]%(B $B]&(B $B]'(B $B]((B $B])(B $B]*(B $B]+(B $B],(B $B]-(B $B].(B $B]/(B +$B]0(B $B]1(B $B]2(B $B]3(B $B]4(B $B]5(B $B]6(B $B]7(B $B]8(B $B]9(B $B]:(B $B];(B $B]<(B $B]=(B $B]>(B $B]?(B +$B]@(B $B]A(B $B]B(B $B]C(B $B]D(B $B]E(B $B]F(B $B]G(B $B]H(B $B]I(B $B]J(B $B]K(B $B]L(B $B]M(B $B]N(B $B]O(B +$B]P(B $B]Q(B $B]R(B $B]S(B $B]T(B $B]U(B $B]V(B $B]W(B $B]X(B $B]Y(B $B]Z(B $B][(B $B]\(B $B]](B $B]^(B $B]_(B +$B]`(B $B]a(B $B]b(B $B]c(B $B]d(B $B]e(B $B]f(B $B]g(B $B]h(B $B]i(B $B]j(B $B]k(B $B]l(B $B]m(B $B]n(B $B]o(B +$B]p(B $B]q(B $B]r(B $B]s(B $B]t(B $B]u(B $B]v(B $B]w(B $B]x(B $B]y(B $B]z(B $B]{(B $B]|(B $B]}(B $B]~(B + $B^!(B $B^"(B $B^#(B $B^$(B $B^%(B $B^&(B $B^'(B $B^((B $B^)(B $B^*(B $B^+(B $B^,(B $B^-(B $B^.(B $B^/(B +$B^0(B $B^1(B $B^2(B $B^3(B $B^4(B $B^5(B $B^6(B $B^7(B $B^8(B $B^9(B $B^:(B $B^;(B $B^<(B $B^=(B $B^>(B $B^?(B +$B^@(B $B^A(B $B^B(B $B^C(B $B^D(B $B^E(B $B^F(B $B^G(B $B^H(B $B^I(B $B^J(B $B^K(B $B^L(B $B^M(B $B^N(B $B^O(B +$B^P(B $B^Q(B $B^R(B $B^S(B $B^T(B $B^U(B $B^V(B $B^W(B $B^X(B $B^Y(B $B^Z(B $B^[(B $B^\(B $B^](B $B^^(B $B^_(B +$B^`(B $B^a(B $B^b(B $B^c(B $B^d(B $B^e(B $B^f(B $B^g(B $B^h(B $B^i(B $B^j(B $B^k(B $B^l(B $B^m(B $B^n(B $B^o(B +$B^p(B $B^q(B $B^r(B $B^s(B $B^t(B $B^u(B $B^v(B $B^w(B $B^x(B $B^y(B $B^z(B $B^{(B $B^|(B $B^}(B $B^~(B + $B_!(B $B_"(B $B_#(B $B_$(B $B_%(B $B_&(B $B_'(B $B_((B $B_)(B $B_*(B $B_+(B $B_,(B $B_-(B $B_.(B $B_/(B +$B_0(B $B_1(B $B_2(B $B_3(B $B_4(B $B_5(B $B_6(B $B_7(B $B_8(B $B_9(B $B_:(B $B_;(B $B_<(B $B_=(B $B_>(B $B_?(B +$B_@(B $B_A(B $B_B(B $B_C(B $B_D(B $B_E(B $B_F(B $B_G(B $B_H(B $B_I(B $B_J(B $B_K(B $B_L(B $B_M(B $B_N(B $B_O(B +$B_P(B $B_Q(B $B_R(B $B_S(B $B_T(B $B_U(B $B_V(B $B_W(B $B_X(B $B_Y(B $B_Z(B $B_[(B $B_\(B $B_](B $B_^(B $B__(B +$B_`(B $B_a(B $B_b(B $B_c(B $B_d(B $B_e(B $B_f(B $B_g(B $B_h(B $B_i(B $B_j(B $B_k(B $B_l(B $B_m(B $B_n(B $B_o(B +$B_p(B $B_q(B $B_r(B $B_s(B $B_t(B $B_u(B $B_v(B $B_w(B $B_x(B $B_y(B $B_z(B $B_{(B $B_|(B $B_}(B $B_~(B + $B`!(B $B`"(B $B`#(B $B`$(B $B`%(B $B`&(B $B`'(B $B`((B $B`)(B $B`*(B $B`+(B $B`,(B $B`-(B $B`.(B $B`/(B +$B`0(B $B`1(B $B`2(B $B`3(B $B`4(B $B`5(B $B`6(B $B`7(B $B`8(B $B`9(B $B`:(B $B`;(B $B`<(B $B`=(B $B`>(B $B`?(B +$B`@(B $B`A(B $B`B(B $B`C(B $B`D(B $B`E(B $B`F(B $B`G(B $B`H(B $B`I(B $B`J(B $B`K(B $B`L(B $B`M(B $B`N(B $B`O(B +$B`P(B $B`Q(B $B`R(B $B`S(B $B`T(B $B`U(B $B`V(B $B`W(B $B`X(B $B`Y(B $B`Z(B $B`[(B $B`\(B $B`](B $B`^(B $B`_(B +$B``(B $B`a(B $B`b(B $B`c(B $B`d(B $B`e(B $B`f(B $B`g(B $B`h(B $B`i(B $B`j(B $B`k(B $B`l(B $B`m(B $B`n(B $B`o(B +$B`p(B $B`q(B $B`r(B $B`s(B $B`t(B $B`u(B $B`v(B $B`w(B $B`x(B $B`y(B $B`z(B $B`{(B $B`|(B $B`}(B $B`~(B + $Ba!(B $Ba"(B $Ba#(B $Ba$(B $Ba%(B $Ba&(B $Ba'(B $Ba((B $Ba)(B $Ba*(B $Ba+(B $Ba,(B $Ba-(B $Ba.(B $Ba/(B +$Ba0(B $Ba1(B $Ba2(B $Ba3(B $Ba4(B $Ba5(B $Ba6(B $Ba7(B $Ba8(B $Ba9(B $Ba:(B $Ba;(B $Ba<(B $Ba=(B $Ba>(B $Ba?(B +$Ba@(B $BaA(B $BaB(B $BaC(B $BaD(B $BaE(B $BaF(B $BaG(B $BaH(B $BaI(B $BaJ(B $BaK(B $BaL(B $BaM(B $BaN(B $BaO(B +$BaP(B $BaQ(B $BaR(B $BaS(B $BaT(B $BaU(B $BaV(B $BaW(B $BaX(B $BaY(B $BaZ(B $Ba[(B $Ba\(B $Ba](B $Ba^(B $Ba_(B +$Ba`(B $Baa(B $Bab(B $Bac(B $Bad(B $Bae(B $Baf(B $Bag(B $Bah(B $Bai(B $Baj(B $Bak(B $Bal(B $Bam(B $Ban(B $Bao(B +$Bap(B $Baq(B $Bar(B $Bas(B $Bat(B $Bau(B $Bav(B $Baw(B $Bax(B $Bay(B $Baz(B $Ba{(B $Ba|(B $Ba}(B $Ba~(B + $Bb!(B $Bb"(B $Bb#(B $Bb$(B $Bb%(B $Bb&(B $Bb'(B $Bb((B $Bb)(B $Bb*(B $Bb+(B $Bb,(B $Bb-(B $Bb.(B $Bb/(B +$Bb0(B $Bb1(B $Bb2(B $Bb3(B $Bb4(B $Bb5(B $Bb6(B $Bb7(B $Bb8(B $Bb9(B $Bb:(B $Bb;(B $Bb<(B $Bb=(B $Bb>(B $Bb?(B +$Bb@(B $BbA(B $BbB(B $BbC(B $BbD(B $BbE(B $BbF(B $BbG(B $BbH(B $BbI(B $BbJ(B $BbK(B $BbL(B $BbM(B $BbN(B $BbO(B +$BbP(B $BbQ(B $BbR(B $BbS(B $BbT(B $BbU(B $BbV(B $BbW(B $BbX(B $BbY(B $BbZ(B $Bb[(B $Bb\(B $Bb](B $Bb^(B $Bb_(B +$Bb`(B $Bba(B $Bbb(B $Bbc(B $Bbd(B $Bbe(B $Bbf(B $Bbg(B $Bbh(B $Bbi(B $Bbj(B $Bbk(B $Bbl(B $Bbm(B $Bbn(B $Bbo(B +$Bbp(B $Bbq(B $Bbr(B $Bbs(B $Bbt(B $Bbu(B $Bbv(B $Bbw(B $Bbx(B $Bby(B $Bbz(B $Bb{(B $Bb|(B $Bb}(B $Bb~(B + $Bc!(B $Bc"(B $Bc#(B $Bc$(B $Bc%(B $Bc&(B $Bc'(B $Bc((B $Bc)(B $Bc*(B $Bc+(B $Bc,(B $Bc-(B $Bc.(B $Bc/(B +$Bc0(B $Bc1(B $Bc2(B $Bc3(B $Bc4(B $Bc5(B $Bc6(B $Bc7(B $Bc8(B $Bc9(B $Bc:(B $Bc;(B $Bc<(B $Bc=(B $Bc>(B $Bc?(B +$Bc@(B $BcA(B $BcB(B $BcC(B $BcD(B $BcE(B $BcF(B $BcG(B $BcH(B $BcI(B $BcJ(B $BcK(B $BcL(B $BcM(B $BcN(B $BcO(B +$BcP(B $BcQ(B $BcR(B $BcS(B $BcT(B $BcU(B $BcV(B $BcW(B $BcX(B $BcY(B $BcZ(B $Bc[(B $Bc\(B $Bc](B $Bc^(B $Bc_(B +$Bc`(B $Bca(B $Bcb(B $Bcc(B $Bcd(B $Bce(B $Bcf(B $Bcg(B $Bch(B $Bci(B $Bcj(B $Bck(B $Bcl(B $Bcm(B $Bcn(B $Bco(B +$Bcp(B $Bcq(B $Bcr(B $Bcs(B $Bct(B $Bcu(B $Bcv(B $Bcw(B $Bcx(B $Bcy(B $Bcz(B $Bc{(B $Bc|(B $Bc}(B $Bc~(B + $Bd!(B $Bd"(B $Bd#(B $Bd$(B $Bd%(B $Bd&(B $Bd'(B $Bd((B $Bd)(B $Bd*(B $Bd+(B $Bd,(B $Bd-(B $Bd.(B $Bd/(B +$Bd0(B $Bd1(B $Bd2(B $Bd3(B $Bd4(B $Bd5(B $Bd6(B $Bd7(B $Bd8(B $Bd9(B $Bd:(B $Bd;(B $Bd<(B $Bd=(B $Bd>(B $Bd?(B +$Bd@(B $BdA(B $BdB(B $BdC(B $BdD(B $BdE(B $BdF(B $BdG(B $BdH(B $BdI(B $BdJ(B $BdK(B $BdL(B $BdM(B $BdN(B $BdO(B +$BdP(B $BdQ(B $BdR(B $BdS(B $BdT(B $BdU(B $BdV(B $BdW(B $BdX(B $BdY(B $BdZ(B $Bd[(B $Bd\(B $Bd](B $Bd^(B $Bd_(B +$Bd`(B $Bda(B $Bdb(B $Bdc(B $Bdd(B $Bde(B $Bdf(B $Bdg(B $Bdh(B $Bdi(B $Bdj(B $Bdk(B $Bdl(B $Bdm(B $Bdn(B $Bdo(B +$Bdp(B $Bdq(B $Bdr(B $Bds(B $Bdt(B $Bdu(B $Bdv(B $Bdw(B $Bdx(B $Bdy(B $Bdz(B $Bd{(B $Bd|(B $Bd}(B $Bd~(B + $Be!(B $Be"(B $Be#(B $Be$(B $Be%(B $Be&(B $Be'(B $Be((B $Be)(B $Be*(B $Be+(B $Be,(B $Be-(B $Be.(B $Be/(B +$Be0(B $Be1(B $Be2(B $Be3(B $Be4(B $Be5(B $Be6(B $Be7(B $Be8(B $Be9(B $Be:(B $Be;(B $Be<(B $Be=(B $Be>(B $Be?(B +$Be@(B $BeA(B $BeB(B $BeC(B $BeD(B $BeE(B $BeF(B $BeG(B $BeH(B $BeI(B $BeJ(B $BeK(B $BeL(B $BeM(B $BeN(B $BeO(B +$BeP(B $BeQ(B $BeR(B $BeS(B $BeT(B $BeU(B $BeV(B $BeW(B $BeX(B $BeY(B $BeZ(B $Be[(B $Be\(B $Be](B $Be^(B $Be_(B +$Be`(B $Bea(B $Beb(B $Bec(B $Bed(B $Bee(B $Bef(B $Beg(B $Beh(B $Bei(B $Bej(B $Bek(B $Bel(B $Bem(B $Ben(B $Beo(B +$Bep(B $Beq(B $Ber(B $Bes(B $Bet(B $Beu(B $Bev(B $Bew(B $Bex(B $Bey(B $Bez(B $Be{(B $Be|(B $Be}(B $Be~(B + $Bf!(B $Bf"(B $Bf#(B $Bf$(B $Bf%(B $Bf&(B $Bf'(B $Bf((B $Bf)(B $Bf*(B $Bf+(B $Bf,(B $Bf-(B $Bf.(B $Bf/(B +$Bf0(B $Bf1(B $Bf2(B $Bf3(B $Bf4(B $Bf5(B $Bf6(B $Bf7(B $Bf8(B $Bf9(B $Bf:(B $Bf;(B $Bf<(B $Bf=(B $Bf>(B $Bf?(B +$Bf@(B $BfA(B $BfB(B $BfC(B $BfD(B $BfE(B $BfF(B $BfG(B $BfH(B $BfI(B $BfJ(B $BfK(B $BfL(B $BfM(B $BfN(B $BfO(B +$BfP(B $BfQ(B $BfR(B $BfS(B $BfT(B $BfU(B $BfV(B $BfW(B $BfX(B $BfY(B $BfZ(B $Bf[(B $Bf\(B $Bf](B $Bf^(B $Bf_(B +$Bf`(B $Bfa(B $Bfb(B $Bfc(B $Bfd(B $Bfe(B $Bff(B $Bfg(B $Bfh(B $Bfi(B $Bfj(B $Bfk(B $Bfl(B $Bfm(B $Bfn(B $Bfo(B +$Bfp(B $Bfq(B $Bfr(B $Bfs(B $Bft(B $Bfu(B $Bfv(B $Bfw(B $Bfx(B $Bfy(B $Bfz(B $Bf{(B $Bf|(B $Bf}(B $Bf~(B + $Bg!(B $Bg"(B $Bg#(B $Bg$(B $Bg%(B $Bg&(B $Bg'(B $Bg((B $Bg)(B $Bg*(B $Bg+(B $Bg,(B $Bg-(B $Bg.(B $Bg/(B +$Bg0(B $Bg1(B $Bg2(B $Bg3(B $Bg4(B $Bg5(B $Bg6(B $Bg7(B $Bg8(B $Bg9(B $Bg:(B $Bg;(B $Bg<(B $Bg=(B $Bg>(B $Bg?(B +$Bg@(B $BgA(B $BgB(B $BgC(B $BgD(B $BgE(B $BgF(B $BgG(B $BgH(B $BgI(B $BgJ(B $BgK(B $BgL(B $BgM(B $BgN(B $BgO(B +$BgP(B $BgQ(B $BgR(B $BgS(B $BgT(B $BgU(B $BgV(B $BgW(B $BgX(B $BgY(B $BgZ(B $Bg[(B $Bg\(B $Bg](B $Bg^(B $Bg_(B +$Bg`(B $Bga(B $Bgb(B $Bgc(B $Bgd(B $Bge(B $Bgf(B $Bgg(B $Bgh(B $Bgi(B $Bgj(B $Bgk(B $Bgl(B $Bgm(B $Bgn(B $Bgo(B +$Bgp(B $Bgq(B $Bgr(B $Bgs(B $Bgt(B $Bgu(B $Bgv(B $Bgw(B $Bgx(B $Bgy(B $Bgz(B $Bg{(B $Bg|(B $Bg}(B $Bg~(B + $Bh!(B $Bh"(B $Bh#(B $Bh$(B $Bh%(B $Bh&(B $Bh'(B $Bh((B $Bh)(B $Bh*(B $Bh+(B $Bh,(B $Bh-(B $Bh.(B $Bh/(B +$Bh0(B $Bh1(B $Bh2(B $Bh3(B $Bh4(B $Bh5(B $Bh6(B $Bh7(B $Bh8(B $Bh9(B $Bh:(B $Bh;(B $Bh<(B $Bh=(B $Bh>(B $Bh?(B +$Bh@(B $BhA(B $BhB(B $BhC(B $BhD(B $BhE(B $BhF(B $BhG(B $BhH(B $BhI(B $BhJ(B $BhK(B $BhL(B $BhM(B $BhN(B $BhO(B +$BhP(B $BhQ(B $BhR(B $BhS(B $BhT(B $BhU(B $BhV(B $BhW(B $BhX(B $BhY(B $BhZ(B $Bh[(B $Bh\(B $Bh](B $Bh^(B $Bh_(B +$Bh`(B $Bha(B $Bhb(B $Bhc(B $Bhd(B $Bhe(B $Bhf(B $Bhg(B $Bhh(B $Bhi(B $Bhj(B $Bhk(B $Bhl(B $Bhm(B $Bhn(B $Bho(B +$Bhp(B $Bhq(B $Bhr(B $Bhs(B $Bht(B $Bhu(B $Bhv(B $Bhw(B $Bhx(B $Bhy(B $Bhz(B $Bh{(B $Bh|(B $Bh}(B $Bh~(B + $Bi!(B $Bi"(B $Bi#(B $Bi$(B $Bi%(B $Bi&(B $Bi'(B $Bi((B $Bi)(B $Bi*(B $Bi+(B $Bi,(B $Bi-(B $Bi.(B $Bi/(B +$Bi0(B $Bi1(B $Bi2(B $Bi3(B $Bi4(B $Bi5(B $Bi6(B $Bi7(B $Bi8(B $Bi9(B $Bi:(B $Bi;(B $Bi<(B $Bi=(B $Bi>(B $Bi?(B +$Bi@(B $BiA(B $BiB(B $BiC(B $BiD(B $BiE(B $BiF(B $BiG(B $BiH(B $BiI(B $BiJ(B $BiK(B $BiL(B $BiM(B $BiN(B $BiO(B +$BiP(B $BiQ(B $BiR(B $BiS(B $BiT(B $BiU(B $BiV(B $BiW(B $BiX(B $BiY(B $BiZ(B $Bi[(B $Bi\(B $Bi](B $Bi^(B $Bi_(B +$Bi`(B $Bia(B $Bib(B $Bic(B $Bid(B $Bie(B $Bif(B $Big(B $Bih(B $Bii(B $Bij(B $Bik(B $Bil(B $Bim(B $Bin(B $Bio(B +$Bip(B $Biq(B $Bir(B $Bis(B $Bit(B $Biu(B $Biv(B $Biw(B $Bix(B $Biy(B $Biz(B $Bi{(B $Bi|(B $Bi}(B $Bi~(B + $Bj!(B $Bj"(B $Bj#(B $Bj$(B $Bj%(B $Bj&(B $Bj'(B $Bj((B $Bj)(B $Bj*(B $Bj+(B $Bj,(B $Bj-(B $Bj.(B $Bj/(B +$Bj0(B $Bj1(B $Bj2(B $Bj3(B $Bj4(B $Bj5(B $Bj6(B $Bj7(B $Bj8(B $Bj9(B $Bj:(B $Bj;(B $Bj<(B $Bj=(B $Bj>(B $Bj?(B +$Bj@(B $BjA(B $BjB(B $BjC(B $BjD(B $BjE(B $BjF(B $BjG(B $BjH(B $BjI(B $BjJ(B $BjK(B $BjL(B $BjM(B $BjN(B $BjO(B +$BjP(B $BjQ(B $BjR(B $BjS(B $BjT(B $BjU(B $BjV(B $BjW(B $BjX(B $BjY(B $BjZ(B $Bj[(B $Bj\(B $Bj](B $Bj^(B $Bj_(B +$Bj`(B $Bja(B $Bjb(B $Bjc(B $Bjd(B $Bje(B $Bjf(B $Bjg(B $Bjh(B $Bji(B $Bjj(B $Bjk(B $Bjl(B $Bjm(B $Bjn(B $Bjo(B +$Bjp(B $Bjq(B $Bjr(B $Bjs(B $Bjt(B $Bju(B $Bjv(B $Bjw(B $Bjx(B $Bjy(B $Bjz(B $Bj{(B $Bj|(B $Bj}(B $Bj~(B + $Bk!(B $Bk"(B $Bk#(B $Bk$(B $Bk%(B $Bk&(B $Bk'(B $Bk((B $Bk)(B $Bk*(B $Bk+(B $Bk,(B $Bk-(B $Bk.(B $Bk/(B +$Bk0(B $Bk1(B $Bk2(B $Bk3(B $Bk4(B $Bk5(B $Bk6(B $Bk7(B $Bk8(B $Bk9(B $Bk:(B $Bk;(B $Bk<(B $Bk=(B $Bk>(B $Bk?(B +$Bk@(B $BkA(B $BkB(B $BkC(B $BkD(B $BkE(B $BkF(B $BkG(B $BkH(B $BkI(B $BkJ(B $BkK(B $BkL(B $BkM(B $BkN(B $BkO(B +$BkP(B $BkQ(B $BkR(B $BkS(B $BkT(B $BkU(B $BkV(B $BkW(B $BkX(B $BkY(B $BkZ(B $Bk[(B $Bk\(B $Bk](B $Bk^(B $Bk_(B +$Bk`(B $Bka(B $Bkb(B $Bkc(B $Bkd(B $Bke(B $Bkf(B $Bkg(B $Bkh(B $Bki(B $Bkj(B $Bkk(B $Bkl(B $Bkm(B $Bkn(B $Bko(B +$Bkp(B $Bkq(B $Bkr(B $Bks(B $Bkt(B $Bku(B $Bkv(B $Bkw(B $Bkx(B $Bky(B $Bkz(B $Bk{(B $Bk|(B $Bk}(B $Bk~(B + $Bl!(B $Bl"(B $Bl#(B $Bl$(B $Bl%(B $Bl&(B $Bl'(B $Bl((B $Bl)(B $Bl*(B $Bl+(B $Bl,(B $Bl-(B $Bl.(B $Bl/(B +$Bl0(B $Bl1(B $Bl2(B $Bl3(B $Bl4(B $Bl5(B $Bl6(B $Bl7(B $Bl8(B $Bl9(B $Bl:(B $Bl;(B $Bl<(B $Bl=(B $Bl>(B $Bl?(B +$Bl@(B $BlA(B $BlB(B $BlC(B $BlD(B $BlE(B $BlF(B $BlG(B $BlH(B $BlI(B $BlJ(B $BlK(B $BlL(B $BlM(B $BlN(B $BlO(B +$BlP(B $BlQ(B $BlR(B $BlS(B $BlT(B $BlU(B $BlV(B $BlW(B $BlX(B $BlY(B $BlZ(B $Bl[(B $Bl\(B $Bl](B $Bl^(B $Bl_(B +$Bl`(B $Bla(B $Blb(B $Blc(B $Bld(B $Ble(B $Blf(B $Blg(B $Blh(B $Bli(B $Blj(B $Blk(B $Bll(B $Blm(B $Bln(B $Blo(B +$Blp(B $Blq(B $Blr(B $Bls(B $Blt(B $Blu(B $Blv(B $Blw(B $Blx(B $Bly(B $Blz(B $Bl{(B $Bl|(B $Bl}(B $Bl~(B + $Bm!(B $Bm"(B $Bm#(B $Bm$(B $Bm%(B $Bm&(B $Bm'(B $Bm((B $Bm)(B $Bm*(B $Bm+(B $Bm,(B $Bm-(B $Bm.(B $Bm/(B +$Bm0(B $Bm1(B $Bm2(B $Bm3(B $Bm4(B $Bm5(B $Bm6(B $Bm7(B $Bm8(B $Bm9(B $Bm:(B $Bm;(B $Bm<(B $Bm=(B $Bm>(B $Bm?(B +$Bm@(B $BmA(B $BmB(B $BmC(B $BmD(B $BmE(B $BmF(B $BmG(B $BmH(B $BmI(B $BmJ(B $BmK(B $BmL(B $BmM(B $BmN(B $BmO(B +$BmP(B $BmQ(B $BmR(B $BmS(B $BmT(B $BmU(B $BmV(B $BmW(B $BmX(B $BmY(B $BmZ(B $Bm[(B $Bm\(B $Bm](B $Bm^(B $Bm_(B +$Bm`(B $Bma(B $Bmb(B $Bmc(B $Bmd(B $Bme(B $Bmf(B $Bmg(B $Bmh(B $Bmi(B $Bmj(B $Bmk(B $Bml(B $Bmm(B $Bmn(B $Bmo(B +$Bmp(B $Bmq(B $Bmr(B $Bms(B $Bmt(B $Bmu(B $Bmv(B $Bmw(B $Bmx(B $Bmy(B $Bmz(B $Bm{(B $Bm|(B $Bm}(B $Bm~(B + $Bn!(B $Bn"(B $Bn#(B $Bn$(B $Bn%(B $Bn&(B $Bn'(B $Bn((B $Bn)(B $Bn*(B $Bn+(B $Bn,(B $Bn-(B $Bn.(B $Bn/(B +$Bn0(B $Bn1(B $Bn2(B $Bn3(B $Bn4(B $Bn5(B $Bn6(B $Bn7(B $Bn8(B $Bn9(B $Bn:(B $Bn;(B $Bn<(B $Bn=(B $Bn>(B $Bn?(B +$Bn@(B $BnA(B $BnB(B $BnC(B $BnD(B $BnE(B $BnF(B $BnG(B $BnH(B $BnI(B $BnJ(B $BnK(B $BnL(B $BnM(B $BnN(B $BnO(B +$BnP(B $BnQ(B $BnR(B $BnS(B $BnT(B $BnU(B $BnV(B $BnW(B $BnX(B $BnY(B $BnZ(B $Bn[(B $Bn\(B $Bn](B $Bn^(B $Bn_(B +$Bn`(B $Bna(B $Bnb(B $Bnc(B $Bnd(B $Bne(B $Bnf(B $Bng(B $Bnh(B $Bni(B $Bnj(B $Bnk(B $Bnl(B $Bnm(B $Bnn(B $Bno(B +$Bnp(B $Bnq(B $Bnr(B $Bns(B $Bnt(B $Bnu(B $Bnv(B $Bnw(B $Bnx(B $Bny(B $Bnz(B $Bn{(B $Bn|(B $Bn}(B $Bn~(B + $Bo!(B $Bo"(B $Bo#(B $Bo$(B $Bo%(B $Bo&(B $Bo'(B $Bo((B $Bo)(B $Bo*(B $Bo+(B $Bo,(B $Bo-(B $Bo.(B $Bo/(B +$Bo0(B $Bo1(B $Bo2(B $Bo3(B $Bo4(B $Bo5(B $Bo6(B $Bo7(B $Bo8(B $Bo9(B $Bo:(B $Bo;(B $Bo<(B $Bo=(B $Bo>(B $Bo?(B +$Bo@(B $BoA(B $BoB(B $BoC(B $BoD(B $BoE(B $BoF(B $BoG(B $BoH(B $BoI(B $BoJ(B $BoK(B $BoL(B $BoM(B $BoN(B $BoO(B +$BoP(B $BoQ(B $BoR(B $BoS(B $BoT(B $BoU(B $BoV(B $BoW(B $BoX(B $BoY(B $BoZ(B $Bo[(B $Bo\(B $Bo](B $Bo^(B $Bo_(B +$Bo`(B $Boa(B $Bob(B $Boc(B $Bod(B $Boe(B $Bof(B $Bog(B $Boh(B $Boi(B $Boj(B $Bok(B $Bol(B $Bom(B $Bon(B $Boo(B +$Bop(B $Boq(B $Bor(B $Bos(B $Bot(B $Bou(B $Bov(B $Bow(B $Box(B $Boy(B $Boz(B $Bo{(B $Bo|(B $Bo}(B $Bo~(B + $Bp!(B $Bp"(B $Bp#(B $Bp$(B $Bp%(B $Bp&(B $Bp'(B $Bp((B $Bp)(B $Bp*(B $Bp+(B $Bp,(B $Bp-(B $Bp.(B $Bp/(B +$Bp0(B $Bp1(B $Bp2(B $Bp3(B $Bp4(B $Bp5(B $Bp6(B $Bp7(B $Bp8(B $Bp9(B $Bp:(B $Bp;(B $Bp<(B $Bp=(B $Bp>(B $Bp?(B +$Bp@(B $BpA(B $BpB(B $BpC(B $BpD(B $BpE(B $BpF(B $BpG(B $BpH(B $BpI(B $BpJ(B $BpK(B $BpL(B $BpM(B $BpN(B $BpO(B +$BpP(B $BpQ(B $BpR(B $BpS(B $BpT(B $BpU(B $BpV(B $BpW(B $BpX(B $BpY(B $BpZ(B $Bp[(B $Bp\(B $Bp](B $Bp^(B $Bp_(B +$Bp`(B $Bpa(B $Bpb(B $Bpc(B $Bpd(B $Bpe(B $Bpf(B $Bpg(B $Bph(B $Bpi(B $Bpj(B $Bpk(B $Bpl(B $Bpm(B $Bpn(B $Bpo(B +$Bpp(B $Bpq(B $Bpr(B $Bps(B $Bpt(B $Bpu(B $Bpv(B $Bpw(B $Bpx(B $Bpy(B $Bpz(B $Bp{(B $Bp|(B $Bp}(B $Bp~(B + $Bq!(B $Bq"(B $Bq#(B $Bq$(B $Bq%(B $Bq&(B $Bq'(B $Bq((B $Bq)(B $Bq*(B $Bq+(B $Bq,(B $Bq-(B $Bq.(B $Bq/(B +$Bq0(B $Bq1(B $Bq2(B $Bq3(B $Bq4(B $Bq5(B $Bq6(B $Bq7(B $Bq8(B $Bq9(B $Bq:(B $Bq;(B $Bq<(B $Bq=(B $Bq>(B $Bq?(B +$Bq@(B $BqA(B $BqB(B $BqC(B $BqD(B $BqE(B $BqF(B $BqG(B $BqH(B $BqI(B $BqJ(B $BqK(B $BqL(B $BqM(B $BqN(B $BqO(B +$BqP(B $BqQ(B $BqR(B $BqS(B $BqT(B $BqU(B $BqV(B $BqW(B $BqX(B $BqY(B $BqZ(B $Bq[(B $Bq\(B $Bq](B $Bq^(B $Bq_(B +$Bq`(B $Bqa(B $Bqb(B $Bqc(B $Bqd(B $Bqe(B $Bqf(B $Bqg(B $Bqh(B $Bqi(B $Bqj(B $Bqk(B $Bql(B $Bqm(B $Bqn(B $Bqo(B +$Bqp(B $Bqq(B $Bqr(B $Bqs(B $Bqt(B $Bqu(B $Bqv(B $Bqw(B $Bqx(B $Bqy(B $Bqz(B $Bq{(B $Bq|(B $Bq}(B $Bq~(B + $Br!(B $Br"(B $Br#(B $Br$(B $Br%(B $Br&(B $Br'(B $Br((B $Br)(B $Br*(B $Br+(B $Br,(B $Br-(B $Br.(B $Br/(B +$Br0(B $Br1(B $Br2(B $Br3(B $Br4(B $Br5(B $Br6(B $Br7(B $Br8(B $Br9(B $Br:(B $Br;(B $Br<(B $Br=(B $Br>(B $Br?(B +$Br@(B $BrA(B $BrB(B $BrC(B $BrD(B $BrE(B $BrF(B $BrG(B $BrH(B $BrI(B $BrJ(B $BrK(B $BrL(B $BrM(B $BrN(B $BrO(B +$BrP(B $BrQ(B $BrR(B $BrS(B $BrT(B $BrU(B $BrV(B $BrW(B $BrX(B $BrY(B $BrZ(B $Br[(B $Br\(B $Br](B $Br^(B $Br_(B +$Br`(B $Bra(B $Brb(B $Brc(B $Brd(B $Bre(B $Brf(B $Brg(B $Brh(B $Bri(B $Brj(B $Brk(B $Brl(B $Brm(B $Brn(B $Bro(B +$Brp(B $Brq(B $Brr(B $Brs(B $Brt(B $Bru(B $Brv(B $Brw(B $Brx(B $Bry(B $Brz(B $Br{(B $Br|(B $Br}(B $Br~(B + $Bs!(B $Bs"(B $Bs#(B $Bs$(B $Bs%(B $Bs&(B $Bs'(B $Bs((B $Bs)(B $Bs*(B $Bs+(B $Bs,(B $Bs-(B $Bs.(B $Bs/(B +$Bs0(B $Bs1(B $Bs2(B $Bs3(B $Bs4(B $Bs5(B $Bs6(B $Bs7(B $Bs8(B $Bs9(B $Bs:(B $Bs;(B $Bs<(B $Bs=(B $Bs>(B $Bs?(B +$Bs@(B $BsA(B $BsB(B $BsC(B $BsD(B $BsE(B $BsF(B $BsG(B $BsH(B $BsI(B $BsJ(B $BsK(B $BsL(B $BsM(B $BsN(B $BsO(B +$BsP(B $BsQ(B $BsR(B $BsS(B $BsT(B $BsU(B $BsV(B $BsW(B $BsX(B $BsY(B $BsZ(B $Bs[(B $Bs\(B $Bs](B $Bs^(B $Bs_(B +$Bs`(B $Bsa(B $Bsb(B $Bsc(B $Bsd(B $Bse(B $Bsf(B $Bsg(B $Bsh(B $Bsi(B $Bsj(B $Bsk(B $Bsl(B $Bsm(B $Bsn(B $Bso(B +$Bsp(B $Bsq(B $Bsr(B $Bss(B $Bst(B $Bsu(B $Bsv(B $Bsw(B $Bsx(B $Bsy(B $Bsz(B $Bs{(B $Bs|(B $Bs}(B $Bs~(B + $Bt!(B $Bt"(B $Bt#(B $Bt$(B $Bt%(B $Bt&(B + $Bu!(B $Bu"(B $Bu#(B $Bu$(B $Bu%(B $Bu&(B $Bu'(B $Bu((B $Bu)(B $Bu*(B $Bu+(B $Bu,(B $Bu-(B $Bu.(B $Bu/(B +$Bu0(B $Bu1(B $Bu2(B $Bu3(B $Bu4(B $Bu5(B $Bu6(B $Bu7(B $Bu8(B $Bu9(B $Bu:(B $Bu;(B $Bu<(B $Bu=(B $Bu>(B $Bu?(B +$Bu@(B $BuA(B $BuB(B $BuC(B $BuD(B $BuE(B $BuF(B $BuG(B $BuH(B $BuI(B $BuJ(B $BuK(B $BuL(B $BuM(B $BuN(B $BuO(B +$BuP(B $BuQ(B $BuR(B $BuS(B $BuT(B $BuU(B $BuV(B $BuW(B $BuX(B $BuY(B $BuZ(B $Bu[(B $Bu\(B $Bu](B $Bu^(B $Bu_(B +$Bu`(B $Bua(B $Bub(B $Buc(B $Bud(B $Bue(B $Buf(B $Bug(B $Buh(B $Bui(B $Buj(B $Buk(B $Bul(B $Bum(B $Bun(B $Buo(B +$Bup(B $Buq(B $Bur(B $Bus(B $But(B $Buu(B $Buv(B $Buw(B $Bux(B $Buy(B $Buz(B $Bu{(B $Bu|(B $Bu}(B $Bu~(B + $Bv!(B $Bv"(B $Bv#(B $Bv$(B $Bv%(B $Bv&(B $Bv'(B $Bv((B $Bv)(B $Bv*(B $Bv+(B $Bv,(B $Bv-(B $Bv.(B $Bv/(B +$Bv0(B $Bv1(B $Bv2(B $Bv3(B $Bv4(B $Bv5(B $Bv6(B $Bv7(B $Bv8(B $Bv9(B $Bv:(B $Bv;(B $Bv<(B $Bv=(B $Bv>(B $Bv?(B +$Bv@(B $BvA(B $BvB(B $BvC(B $BvD(B $BvE(B $BvF(B $BvG(B $BvH(B $BvI(B $BvJ(B $BvK(B $BvL(B $BvM(B $BvN(B $BvO(B +$BvP(B $BvQ(B $BvR(B $BvS(B $BvT(B $BvU(B $BvV(B $BvW(B $BvX(B $BvY(B $BvZ(B $Bv[(B $Bv\(B $Bv](B $Bv^(B $Bv_(B +$Bv`(B $Bva(B $Bvb(B $Bvc(B $Bvd(B $Bve(B $Bvf(B $Bvg(B $Bvh(B $Bvi(B $Bvj(B $Bvk(B $Bvl(B $Bvm(B $Bvn(B $Bvo(B +$Bvp(B $Bvq(B $Bvr(B $Bvs(B $Bvt(B $Bvu(B $Bvv(B $Bvw(B $Bvx(B $Bvy(B $Bvz(B $Bv{(B $Bv|(B $Bv}(B $Bv~(B + $Bw!(B $Bw"(B $Bw#(B $Bw$(B $Bw%(B $Bw&(B $Bw'(B $Bw((B $Bw)(B $Bw*(B $Bw+(B $Bw,(B $Bw-(B $Bw.(B $Bw/(B +$Bw0(B $Bw1(B $Bw2(B $Bw3(B $Bw4(B $Bw5(B $Bw6(B $Bw7(B $Bw8(B $Bw9(B $Bw:(B $Bw;(B $Bw<(B $Bw=(B $Bw>(B $Bw?(B +$Bw@(B $BwA(B $BwB(B $BwC(B $BwD(B $BwE(B $BwF(B $BwG(B $BwH(B $BwI(B $BwJ(B $BwK(B $BwL(B $BwM(B $BwN(B $BwO(B +$BwP(B $BwQ(B $BwR(B $BwS(B $BwT(B $BwU(B $BwV(B $BwW(B $BwX(B $BwY(B $BwZ(B $Bw[(B $Bw\(B $Bw](B $Bw^(B $Bw_(B +$Bw`(B $Bwa(B $Bwb(B $Bwc(B $Bwd(B $Bwe(B $Bwf(B $Bwg(B $Bwh(B $Bwi(B $Bwj(B $Bwk(B $Bwl(B $Bwm(B $Bwn(B $Bwo(B +$Bwp(B $Bwq(B $Bwr(B $Bws(B $Bwt(B $Bwu(B $Bwv(B $Bww(B $Bwx(B $Bwy(B $Bwz(B $Bw{(B $Bw|(B $Bw}(B $Bw~(B + $Bx!(B $Bx"(B $Bx#(B $Bx$(B $Bx%(B $Bx&(B $Bx'(B $Bx((B $Bx)(B $Bx*(B $Bx+(B $Bx,(B $Bx-(B $Bx.(B $Bx/(B +$Bx0(B $Bx1(B $Bx2(B $Bx3(B $Bx4(B $Bx5(B $Bx6(B $Bx7(B $Bx8(B $Bx9(B $Bx:(B $Bx;(B $Bx<(B $Bx=(B $Bx>(B $Bx?(B +$Bx@(B $BxA(B $BxB(B $BxC(B $BxD(B $BxE(B $BxF(B $BxG(B $BxH(B $BxI(B $BxJ(B $BxK(B $BxL(B $BxM(B $BxN(B $BxO(B +$BxP(B $BxQ(B $BxR(B $BxS(B $BxT(B $BxU(B $BxV(B $BxW(B $BxX(B $BxY(B $BxZ(B $Bx[(B $Bx\(B $Bx](B $Bx^(B $Bx_(B +$Bx`(B $Bxa(B $Bxb(B $Bxc(B $Bxd(B $Bxe(B $Bxf(B $Bxg(B $Bxh(B $Bxi(B $Bxj(B $Bxk(B $Bxl(B $Bxm(B $Bxn(B $Bxo(B +$Bxp(B $Bxq(B $Bxr(B $Bxs(B $Bxt(B $Bxu(B $Bxv(B $Bxw(B $Bxx(B $Bxy(B $Bxz(B $Bx{(B $Bx|(B $Bx}(B $Bx~(B + $By!(B $By"(B $By#(B $By$(B $By%(B $By&(B $By'(B $By((B $By)(B $By*(B $By+(B $By,(B $By-(B $By.(B $By/(B +$By0(B $By1(B $By2(B $By3(B $By4(B $By5(B $By6(B $By7(B $By8(B $By9(B $By:(B $By;(B $By<(B $By=(B $By>(B $By?(B +$By@(B $ByA(B $ByB(B $ByC(B $ByD(B $ByE(B $ByF(B $ByG(B $ByH(B $ByI(B $ByJ(B $ByK(B $ByL(B $ByM(B $ByN(B $ByO(B +$ByP(B $ByQ(B $ByR(B $ByS(B $ByT(B $ByU(B $ByV(B $ByW(B $ByX(B $ByY(B $ByZ(B $By[(B $By\(B $By](B $By^(B $By_(B +$By`(B $Bya(B $Byb(B $Byc(B $Byd(B $Bye(B $Byf(B $Byg(B $Byh(B $Byi(B $Byj(B $Byk(B $Byl(B $Bym(B $Byn(B $Byo(B +$Byp(B $Byq(B $Byr(B $Bys(B $Byt(B $Byu(B $Byv(B $Byw(B $Byx(B $Byy(B $Byz(B $By{(B $By|(B $By}(B $By~(B + $Bz!(B $Bz"(B $Bz#(B $Bz$(B $Bz%(B $Bz&(B $Bz'(B $Bz((B $Bz)(B $Bz*(B $Bz+(B $Bz,(B $Bz-(B $Bz.(B $Bz/(B +$Bz0(B $Bz1(B $Bz2(B $Bz3(B $Bz4(B $Bz5(B $Bz6(B $Bz7(B $Bz8(B $Bz9(B $Bz:(B $Bz;(B $Bz<(B $Bz=(B $Bz>(B $Bz?(B +$Bz@(B $BzA(B $BzB(B $BzC(B $BzD(B $BzE(B $BzF(B $BzG(B $BzH(B $BzI(B $BzJ(B $BzK(B $BzL(B $BzM(B $BzN(B $BzO(B +$BzP(B $BzQ(B $BzR(B $BzS(B $BzT(B $BzU(B $BzV(B $BzW(B $BzX(B $BzY(B $BzZ(B $Bz[(B $Bz\(B $Bz](B $Bz^(B $Bz_(B +$Bz`(B $Bza(B $Bzb(B $Bzc(B $Bzd(B $Bze(B $Bzf(B $Bzg(B $Bzh(B $Bzi(B $Bzj(B $Bzk(B $Bzl(B $Bzm(B $Bzn(B $Bzo(B +$Bzp(B $Bzq(B $Bzr(B $Bzs(B $Bzt(B $Bzu(B $Bzv(B $Bzw(B $Bzx(B $Bzy(B $Bzz(B $Bz{(B $Bz|(B $Bz}(B $Bz~(B + $B{!(B $B{"(B $B{#(B $B{$(B $B{%(B $B{&(B $B{'(B $B{((B $B{)(B $B{*(B $B{+(B $B{,(B $B{-(B $B{.(B $B{/(B +$B{0(B $B{1(B $B{2(B $B{3(B $B{4(B $B{5(B $B{6(B $B{7(B $B{8(B $B{9(B $B{:(B $B{;(B $B{<(B $B{=(B $B{>(B $B{?(B +$B{@(B $B{A(B $B{B(B $B{C(B $B{D(B $B{E(B $B{F(B $B{G(B $B{H(B $B{I(B $B{J(B $B{K(B $B{L(B $B{M(B $B{N(B $B{O(B +$B{P(B $B{Q(B $B{R(B $B{S(B $B{T(B $B{U(B $B{V(B $B{W(B $B{X(B $B{Y(B $B{Z(B $B{[(B $B{\(B $B{](B $B{^(B $B{_(B +$B{`(B $B{a(B $B{b(B $B{c(B $B{d(B $B{e(B $B{f(B $B{g(B $B{h(B $B{i(B $B{j(B $B{k(B $B{l(B $B{m(B $B{n(B $B{o(B +$B{p(B $B{q(B $B{r(B $B{s(B $B{t(B $B{u(B $B{v(B $B{w(B $B{x(B $B{y(B $B{z(B $B{{(B $B{|(B $B{}(B $B{~(B + $B|!(B $B|"(B $B|#(B $B|$(B $B|%(B $B|&(B $B|'(B $B|((B $B|)(B $B|*(B $B|+(B $B|,(B $B|-(B $B|.(B $B|/(B +$B|0(B $B|1(B $B|2(B $B|3(B $B|4(B $B|5(B $B|6(B $B|7(B $B|8(B $B|9(B $B|:(B $B|;(B $B|<(B $B|=(B $B|>(B $B|?(B +$B|@(B $B|A(B $B|B(B $B|C(B $B|D(B $B|E(B $B|F(B $B|G(B $B|H(B $B|I(B $B|J(B $B|K(B $B|L(B $B|M(B $B|N(B $B|O(B +$B|P(B $B|Q(B $B|R(B $B|S(B $B|T(B $B|U(B $B|V(B $B|W(B $B|X(B $B|Y(B $B|Z(B $B|[(B $B|\(B $B|](B $B|^(B $B|_(B +$B|`(B $B|a(B $B|b(B $B|c(B $B|d(B $B|e(B $B|f(B $B|g(B $B|h(B $B|i(B $B|j(B $B|k(B $B|l(B $B|m(B $B|n(B $B|o(B +$B|p(B $B|q(B $B|r(B $B|s(B $B|t(B $B|u(B $B|v(B $B|w(B $B|x(B $B|y(B $B|z(B $B|{(B $B||(B $B|}(B $B|~(B + $B}!(B $B}"(B $B}#(B $B}$(B $B}%(B $B}&(B $B}'(B $B}((B $B})(B $B}*(B $B}+(B $B},(B $B}-(B $B}.(B $B}/(B +$B}0(B $B}1(B $B}2(B $B}3(B $B}4(B $B}5(B $B}6(B $B}7(B $B}8(B $B}9(B $B}:(B $B};(B $B}<(B $B}=(B $B}>(B $B}?(B +$B}@(B $B}A(B $B}B(B $B}C(B $B}D(B $B}E(B $B}F(B $B}G(B $B}H(B $B}I(B $B}J(B $B}K(B $B}L(B $B}M(B $B}N(B $B}O(B +$B}P(B $B}Q(B $B}R(B $B}S(B $B}T(B $B}U(B $B}V(B $B}W(B $B}X(B $B}Y(B $B}Z(B $B}[(B $B}\(B $B}](B $B}^(B $B}_(B +$B}`(B $B}a(B $B}b(B $B}c(B $B}d(B $B}e(B $B}f(B $B}g(B $B}h(B $B}i(B $B}j(B $B}k(B $B}l(B $B}m(B $B}n(B $B}o(B +$B}p(B $B}q(B $B}r(B $B}s(B $B}t(B $B}u(B $B}v(B $B}w(B $B}x(B $B}y(B $B}z(B $B}{(B $B}|(B $B}}(B $B}~(B + $B~!(B $B~"(B $B~#(B $B~$(B $B~%(B $B~&(B $B~'(B $B~((B $B~)(B $B~*(B $B~+(B $B~,(B $B~-(B $B~.(B $B~/(B +$B~0(B $B~1(B $B~2(B $B~3(B $B~4(B $B~5(B $B~6(B $B~7(B $B~8(B $B~9(B $B~:(B $B~;(B $B~<(B $B~=(B $B~>(B $B~?(B +$B~@(B $B~A(B $B~B(B $B~C(B $B~D(B $B~E(B $B~F(B $B~G(B $B~H(B $B~I(B $B~J(B $B~K(B $B~L(B $B~M(B $B~N(B $B~O(B +$B~P(B $B~Q(B $B~R(B $B~S(B $B~T(B $B~U(B $B~V(B $B~W(B $B~X(B $B~Y(B $B~Z(B $B~[(B $B~\(B $B~](B $B~^(B $B~_(B +$B~`(B $B~a(B $B~b(B $B~c(B $B~d(B $B~e(B $B~f(B $B~g(B $B~h(B $B~i(B $B~j(B $B~k(B $B~l(B $B~m(B $B~n(B $B~o(B +$B~p(B $B~q(B $B~r(B $B~s(B $B~t(B $B~u(B $B~v(B $B~w(B $B~x(B $B~y(B $B~z(B $B~{(B $B~|(B $B~}(B $B~~(B + $(D"/(B +$(D"0(B $(D"1(B $(D"2(B $(D"3(B $(D"4(B $(D"5(B $(D"6(B $(D"8(B $(D"9(B + $(D"B(B $(D"C(B $(D"D(B + $(D"k(B $(D"l(B $(D"m(B $(D"n(B $(D"o(B +$(D"p(B + $(D&a(B $(D&b(B $(D&c(B $(D&d(B $(D&e(B $(D&g(B $(D&i(B $(D&j(B $(D&l(B + $(D&q(B $(D&r(B $(D&s(B $(D&t(B $(D&u(B $(D&v(B $(D&w(B $(D&x(B $(D&y(B $(D&z(B $(D&{(B $(D&|(B + $(D'B(B $(D'C(B $(D'D(B $(D'E(B $(D'F(B $(D'G(B $(D'H(B $(D'I(B $(D'J(B $(D'K(B $(D'L(B $(D'M(B $(D'N(B + $(D'r(B $(D's(B $(D't(B $(D'u(B $(D'v(B $(D'w(B $(D'x(B $(D'y(B $(D'z(B $(D'{(B $(D'|(B $(D'}(B $(D'~(B + $(D)!(B $(D)"(B $(D)$(B $(D)&(B $(D)((B $(D))(B $(D)+(B $(D),(B $(D)-(B $(D)/(B +$(D)0(B + $(D)A(B $(D)B(B $(D)C(B $(D)D(B $(D)E(B $(D)F(B $(D)G(B $(D)H(B $(D)I(B $(D)J(B $(D)K(B $(D)L(B $(D)M(B $(D)N(B $(D)O(B +$(D)P(B + $(D*!(B $(D*"(B $(D*#(B $(D*$(B $(D*%(B $(D*&(B $(D*'(B $(D*((B $(D*)(B $(D**(B $(D*+(B $(D*,(B $(D*-(B $(D*.(B $(D*/(B +$(D*0(B $(D*1(B $(D*2(B $(D*3(B $(D*4(B $(D*5(B $(D*6(B $(D*7(B $(D*8(B $(D*:(B $(D*;(B $(D*<(B $(D*=(B $(D*>(B $(D*?(B +$(D*@(B $(D*A(B $(D*B(B $(D*C(B $(D*D(B $(D*E(B $(D*F(B $(D*G(B $(D*H(B $(D*I(B $(D*J(B $(D*K(B $(D*L(B $(D*M(B $(D*N(B $(D*O(B +$(D*P(B $(D*Q(B $(D*R(B $(D*S(B $(D*T(B $(D*U(B $(D*V(B $(D*W(B $(D*X(B $(D*Y(B $(D*Z(B $(D*[(B $(D*\(B $(D*](B $(D*^(B $(D*_(B +$(D*`(B $(D*a(B $(D*b(B $(D*c(B $(D*d(B $(D*e(B $(D*f(B $(D*g(B $(D*h(B $(D*i(B $(D*j(B $(D*k(B $(D*l(B $(D*m(B $(D*n(B $(D*o(B +$(D*p(B $(D*q(B $(D*r(B $(D*s(B $(D*t(B $(D*u(B $(D*v(B $(D*w(B + $(D+!(B $(D+"(B $(D+#(B $(D+$(B $(D+%(B $(D+&(B $(D+'(B $(D+((B $(D+)(B $(D+*(B $(D++(B $(D+,(B $(D+-(B $(D+.(B $(D+/(B +$(D+0(B $(D+1(B $(D+2(B $(D+3(B $(D+4(B $(D+5(B $(D+6(B $(D+7(B $(D+8(B $(D+9(B $(D+:(B $(D+;(B $(D+=(B $(D+>(B $(D+?(B +$(D+@(B $(D+A(B $(D+B(B $(D+C(B $(D+E(B $(D+F(B $(D+G(B $(D+H(B $(D+I(B $(D+J(B $(D+K(B $(D+L(B $(D+M(B $(D+N(B $(D+O(B +$(D+P(B $(D+Q(B $(D+R(B $(D+S(B $(D+T(B $(D+U(B $(D+V(B $(D+W(B $(D+X(B $(D+Y(B $(D+Z(B $(D+[(B $(D+\(B $(D+](B $(D+^(B $(D+_(B +$(D+`(B $(D+a(B $(D+b(B $(D+c(B $(D+d(B $(D+e(B $(D+f(B $(D+g(B $(D+h(B $(D+i(B $(D+j(B $(D+k(B $(D+l(B $(D+m(B $(D+n(B $(D+o(B +$(D+p(B $(D+q(B $(D+r(B $(D+s(B $(D+t(B $(D+u(B $(D+v(B $(D+w(B + $(D0!(B $(D0"(B $(D0#(B $(D0$(B $(D0%(B $(D0&(B $(D0'(B $(D0((B $(D0)(B $(D0*(B $(D0+(B $(D0,(B $(D0-(B $(D0.(B $(D0/(B +$(D00(B $(D01(B $(D02(B $(D03(B $(D04(B $(D05(B $(D06(B $(D07(B $(D08(B $(D09(B $(D0:(B $(D0;(B $(D0<(B $(D0=(B $(D0>(B $(D0?(B +$(D0@(B $(D0A(B $(D0B(B $(D0C(B $(D0D(B $(D0E(B $(D0F(B $(D0G(B $(D0H(B $(D0I(B $(D0J(B $(D0K(B $(D0L(B $(D0M(B $(D0N(B $(D0O(B +$(D0P(B $(D0Q(B $(D0R(B $(D0S(B $(D0T(B $(D0U(B $(D0V(B $(D0W(B $(D0X(B $(D0Y(B $(D0Z(B $(D0[(B $(D0\(B $(D0](B $(D0^(B $(D0_(B +$(D0`(B $(D0a(B $(D0b(B $(D0c(B $(D0d(B $(D0e(B $(D0f(B $(D0g(B $(D0h(B $(D0i(B $(D0j(B $(D0k(B $(D0l(B $(D0m(B $(D0n(B $(D0o(B +$(D0p(B $(D0q(B $(D0r(B $(D0s(B $(D0t(B $(D0u(B $(D0v(B $(D0w(B $(D0x(B $(D0y(B $(D0z(B $(D0{(B $(D0|(B $(D0}(B $(D0~(B + $(D1!(B $(D1"(B $(D1#(B $(D1$(B $(D1%(B $(D1&(B $(D1'(B $(D1((B $(D1)(B $(D1*(B $(D1+(B $(D1,(B $(D1-(B $(D1.(B $(D1/(B +$(D10(B $(D11(B $(D12(B $(D13(B $(D14(B $(D15(B $(D16(B $(D17(B $(D18(B $(D19(B $(D1:(B $(D1;(B $(D1<(B $(D1=(B $(D1>(B $(D1?(B +$(D1@(B $(D1A(B $(D1B(B $(D1C(B $(D1D(B $(D1E(B $(D1F(B $(D1G(B $(D1H(B $(D1I(B $(D1J(B $(D1K(B $(D1L(B $(D1M(B $(D1N(B $(D1O(B +$(D1P(B $(D1Q(B $(D1R(B $(D1S(B $(D1T(B $(D1U(B $(D1V(B $(D1W(B $(D1X(B $(D1Y(B $(D1Z(B $(D1[(B $(D1\(B $(D1](B $(D1^(B $(D1_(B +$(D1`(B $(D1a(B $(D1b(B $(D1c(B $(D1d(B $(D1e(B $(D1f(B $(D1g(B $(D1h(B $(D1i(B $(D1j(B $(D1k(B $(D1l(B $(D1m(B $(D1n(B $(D1o(B +$(D1p(B $(D1q(B $(D1r(B $(D1s(B $(D1t(B $(D1u(B $(D1v(B $(D1w(B $(D1x(B $(D1y(B $(D1z(B $(D1{(B $(D1|(B $(D1}(B $(D1~(B + $(D2!(B $(D2"(B $(D2#(B $(D2$(B $(D2%(B $(D2&(B $(D2'(B $(D2((B $(D2)(B $(D2*(B $(D2+(B $(D2,(B $(D2-(B $(D2.(B $(D2/(B +$(D20(B $(D21(B $(D22(B $(D23(B $(D24(B $(D25(B $(D26(B $(D27(B $(D28(B $(D29(B $(D2:(B $(D2;(B $(D2<(B $(D2=(B $(D2>(B $(D2?(B +$(D2@(B $(D2A(B $(D2B(B $(D2C(B $(D2D(B $(D2E(B $(D2F(B $(D2G(B $(D2H(B $(D2I(B $(D2J(B $(D2K(B $(D2L(B $(D2M(B $(D2N(B $(D2O(B +$(D2P(B $(D2Q(B $(D2R(B $(D2S(B $(D2T(B $(D2U(B $(D2V(B $(D2W(B $(D2X(B $(D2Y(B $(D2Z(B $(D2[(B $(D2\(B $(D2](B $(D2^(B $(D2_(B +$(D2`(B $(D2a(B $(D2b(B $(D2c(B $(D2d(B $(D2e(B $(D2f(B $(D2g(B $(D2h(B $(D2i(B $(D2j(B $(D2k(B $(D2l(B $(D2m(B $(D2n(B $(D2o(B +$(D2p(B $(D2q(B $(D2r(B $(D2s(B $(D2t(B $(D2u(B $(D2v(B $(D2w(B $(D2x(B $(D2y(B $(D2z(B $(D2{(B $(D2|(B $(D2}(B $(D2~(B + $(D3!(B $(D3"(B $(D3#(B $(D3$(B $(D3%(B $(D3&(B $(D3'(B $(D3((B $(D3)(B $(D3*(B $(D3+(B $(D3,(B $(D3-(B $(D3.(B $(D3/(B +$(D30(B $(D31(B $(D32(B $(D33(B $(D34(B $(D35(B $(D36(B $(D37(B $(D38(B $(D39(B $(D3:(B $(D3;(B $(D3<(B $(D3=(B $(D3>(B $(D3?(B +$(D3@(B $(D3A(B $(D3B(B $(D3C(B $(D3D(B $(D3E(B $(D3F(B $(D3G(B $(D3H(B $(D3I(B $(D3J(B $(D3K(B $(D3L(B $(D3M(B $(D3N(B $(D3O(B +$(D3P(B $(D3Q(B $(D3R(B $(D3S(B $(D3T(B $(D3U(B $(D3V(B $(D3W(B $(D3X(B $(D3Y(B $(D3Z(B $(D3[(B $(D3\(B $(D3](B $(D3^(B $(D3_(B +$(D3`(B $(D3a(B $(D3b(B $(D3c(B $(D3d(B $(D3e(B $(D3f(B $(D3g(B $(D3h(B $(D3i(B $(D3j(B $(D3k(B $(D3l(B $(D3m(B $(D3n(B $(D3o(B +$(D3p(B $(D3q(B $(D3r(B $(D3s(B $(D3t(B $(D3u(B $(D3v(B $(D3w(B $(D3x(B $(D3y(B $(D3z(B $(D3{(B $(D3|(B $(D3}(B $(D3~(B + $(D4!(B $(D4"(B $(D4#(B $(D4$(B $(D4%(B $(D4&(B $(D4'(B $(D4((B $(D4)(B $(D4*(B $(D4+(B $(D4,(B $(D4-(B $(D4.(B $(D4/(B +$(D40(B $(D41(B $(D42(B $(D43(B $(D44(B $(D45(B $(D46(B $(D47(B $(D48(B $(D49(B $(D4:(B $(D4;(B $(D4<(B $(D4=(B $(D4>(B $(D4?(B +$(D4@(B $(D4A(B $(D4B(B $(D4C(B $(D4D(B $(D4E(B $(D4F(B $(D4G(B $(D4H(B $(D4I(B $(D4J(B $(D4K(B $(D4L(B $(D4M(B $(D4N(B $(D4O(B +$(D4P(B $(D4Q(B $(D4R(B $(D4S(B $(D4T(B $(D4U(B $(D4V(B $(D4W(B $(D4X(B $(D4Y(B $(D4Z(B $(D4[(B $(D4\(B $(D4](B $(D4^(B $(D4_(B +$(D4`(B $(D4a(B $(D4b(B $(D4c(B $(D4d(B $(D4e(B $(D4f(B $(D4g(B $(D4h(B $(D4i(B $(D4j(B $(D4k(B $(D4l(B $(D4m(B $(D4n(B $(D4o(B +$(D4p(B $(D4q(B $(D4r(B $(D4s(B $(D4t(B $(D4u(B $(D4v(B $(D4w(B $(D4x(B $(D4y(B $(D4z(B $(D4{(B $(D4|(B $(D4}(B $(D4~(B + $(D5!(B $(D5"(B $(D5#(B $(D5$(B $(D5%(B $(D5&(B $(D5'(B $(D5((B $(D5)(B $(D5*(B $(D5+(B $(D5,(B $(D5-(B $(D5.(B $(D5/(B +$(D50(B $(D51(B $(D52(B $(D53(B $(D54(B $(D55(B $(D56(B $(D57(B $(D58(B $(D59(B $(D5:(B $(D5;(B $(D5<(B $(D5=(B $(D5>(B $(D5?(B +$(D5@(B $(D5A(B $(D5B(B $(D5C(B $(D5D(B $(D5E(B $(D5F(B $(D5G(B $(D5H(B $(D5I(B $(D5J(B $(D5K(B $(D5L(B $(D5M(B $(D5N(B $(D5O(B +$(D5P(B $(D5Q(B $(D5R(B $(D5S(B $(D5T(B $(D5U(B $(D5V(B $(D5W(B $(D5X(B $(D5Y(B $(D5Z(B $(D5[(B $(D5\(B $(D5](B $(D5^(B $(D5_(B +$(D5`(B $(D5a(B $(D5b(B $(D5c(B $(D5d(B $(D5e(B $(D5f(B $(D5g(B $(D5h(B $(D5i(B $(D5j(B $(D5k(B $(D5l(B $(D5m(B $(D5n(B $(D5o(B +$(D5p(B $(D5q(B $(D5r(B $(D5s(B $(D5t(B $(D5u(B $(D5v(B $(D5w(B $(D5x(B $(D5y(B $(D5z(B $(D5{(B $(D5|(B $(D5}(B $(D5~(B + $(D6!(B $(D6"(B $(D6#(B $(D6$(B $(D6%(B $(D6&(B $(D6'(B $(D6((B $(D6)(B $(D6*(B $(D6+(B $(D6,(B $(D6-(B $(D6.(B $(D6/(B +$(D60(B $(D61(B $(D62(B $(D63(B $(D64(B $(D65(B $(D66(B $(D67(B $(D68(B $(D69(B $(D6:(B $(D6;(B $(D6<(B $(D6=(B $(D6>(B $(D6?(B +$(D6@(B $(D6A(B $(D6B(B $(D6C(B $(D6D(B $(D6E(B $(D6F(B $(D6G(B $(D6H(B $(D6I(B $(D6J(B $(D6K(B $(D6L(B $(D6M(B $(D6N(B $(D6O(B +$(D6P(B $(D6Q(B $(D6R(B $(D6S(B $(D6T(B $(D6U(B $(D6V(B $(D6W(B $(D6X(B $(D6Y(B $(D6Z(B $(D6[(B $(D6\(B $(D6](B $(D6^(B $(D6_(B +$(D6`(B $(D6a(B $(D6b(B $(D6c(B $(D6d(B $(D6e(B $(D6f(B $(D6g(B $(D6h(B $(D6i(B $(D6j(B $(D6k(B $(D6l(B $(D6m(B $(D6n(B $(D6o(B +$(D6p(B $(D6q(B $(D6r(B $(D6s(B $(D6t(B $(D6u(B $(D6v(B $(D6w(B $(D6x(B $(D6y(B $(D6z(B $(D6{(B $(D6|(B $(D6}(B $(D6~(B + $(D7!(B $(D7"(B $(D7#(B $(D7$(B $(D7%(B $(D7&(B $(D7'(B $(D7((B $(D7)(B $(D7*(B $(D7+(B $(D7,(B $(D7-(B $(D7.(B $(D7/(B +$(D70(B $(D71(B $(D72(B $(D73(B $(D74(B $(D75(B $(D76(B $(D77(B $(D78(B $(D79(B $(D7:(B $(D7;(B $(D7<(B $(D7=(B $(D7>(B $(D7?(B +$(D7@(B $(D7A(B $(D7B(B $(D7C(B $(D7D(B $(D7E(B $(D7F(B $(D7G(B $(D7H(B $(D7I(B $(D7J(B $(D7K(B $(D7L(B $(D7M(B $(D7N(B $(D7O(B +$(D7P(B $(D7Q(B $(D7R(B $(D7S(B $(D7T(B $(D7U(B $(D7V(B $(D7W(B $(D7X(B $(D7Y(B $(D7Z(B $(D7[(B $(D7\(B $(D7](B $(D7^(B $(D7_(B +$(D7`(B $(D7a(B $(D7b(B $(D7c(B $(D7d(B $(D7e(B $(D7f(B $(D7g(B $(D7h(B $(D7i(B $(D7j(B $(D7k(B $(D7l(B $(D7m(B $(D7n(B $(D7o(B +$(D7p(B $(D7q(B $(D7r(B $(D7s(B $(D7t(B $(D7u(B $(D7v(B $(D7w(B $(D7x(B $(D7y(B $(D7z(B $(D7{(B $(D7|(B $(D7}(B $(D7~(B + $(D8!(B $(D8"(B $(D8#(B $(D8$(B $(D8%(B $(D8&(B $(D8'(B $(D8((B $(D8)(B $(D8*(B $(D8+(B $(D8,(B $(D8-(B $(D8.(B $(D8/(B +$(D80(B $(D81(B $(D82(B $(D83(B $(D84(B $(D85(B $(D86(B $(D87(B $(D88(B $(D89(B $(D8:(B $(D8;(B $(D8<(B $(D8=(B $(D8>(B $(D8?(B +$(D8@(B $(D8A(B $(D8B(B $(D8C(B $(D8D(B $(D8E(B $(D8F(B $(D8G(B $(D8H(B $(D8I(B $(D8J(B $(D8K(B $(D8L(B $(D8M(B $(D8N(B $(D8O(B +$(D8P(B $(D8Q(B $(D8R(B $(D8S(B $(D8T(B $(D8U(B $(D8V(B $(D8W(B $(D8X(B $(D8Y(B $(D8Z(B $(D8[(B $(D8\(B $(D8](B $(D8^(B $(D8_(B +$(D8`(B $(D8a(B $(D8b(B $(D8c(B $(D8d(B $(D8e(B $(D8f(B $(D8g(B $(D8h(B $(D8i(B $(D8j(B $(D8k(B $(D8l(B $(D8m(B $(D8n(B $(D8o(B +$(D8p(B $(D8q(B $(D8r(B $(D8s(B $(D8t(B $(D8u(B $(D8v(B $(D8w(B $(D8x(B $(D8y(B $(D8z(B $(D8{(B $(D8|(B $(D8}(B $(D8~(B + $(D9!(B $(D9"(B $(D9#(B $(D9$(B $(D9%(B $(D9&(B $(D9'(B $(D9((B $(D9)(B $(D9*(B $(D9+(B $(D9,(B $(D9-(B $(D9.(B $(D9/(B +$(D90(B $(D91(B $(D92(B $(D93(B $(D94(B $(D95(B $(D96(B $(D97(B $(D98(B $(D99(B $(D9:(B $(D9;(B $(D9<(B $(D9=(B $(D9>(B $(D9?(B +$(D9@(B $(D9A(B $(D9B(B $(D9C(B $(D9D(B $(D9E(B $(D9F(B $(D9G(B $(D9H(B $(D9I(B $(D9J(B $(D9K(B $(D9L(B $(D9M(B $(D9N(B $(D9O(B +$(D9P(B $(D9Q(B $(D9R(B $(D9S(B $(D9T(B $(D9U(B $(D9V(B $(D9W(B $(D9X(B $(D9Y(B $(D9Z(B $(D9[(B $(D9\(B $(D9](B $(D9^(B $(D9_(B +$(D9`(B $(D9a(B $(D9b(B $(D9c(B $(D9d(B $(D9e(B $(D9f(B $(D9g(B $(D9h(B $(D9i(B $(D9j(B $(D9k(B $(D9l(B $(D9m(B $(D9n(B $(D9o(B +$(D9p(B $(D9q(B $(D9r(B $(D9s(B $(D9t(B $(D9u(B $(D9v(B $(D9w(B $(D9x(B $(D9y(B $(D9z(B $(D9{(B $(D9|(B $(D9}(B $(D9~(B + $(D:!(B $(D:"(B $(D:#(B $(D:$(B $(D:%(B $(D:&(B $(D:'(B $(D:((B $(D:)(B $(D:*(B $(D:+(B $(D:,(B $(D:-(B $(D:.(B $(D:/(B +$(D:0(B $(D:1(B $(D:2(B $(D:3(B $(D:4(B $(D:5(B $(D:6(B $(D:7(B $(D:8(B $(D:9(B $(D::(B $(D:;(B $(D:<(B $(D:=(B $(D:>(B $(D:?(B +$(D:@(B $(D:A(B $(D:B(B $(D:C(B $(D:D(B $(D:E(B $(D:F(B $(D:G(B $(D:H(B $(D:I(B $(D:J(B $(D:K(B $(D:L(B $(D:M(B $(D:N(B $(D:O(B +$(D:P(B $(D:Q(B $(D:R(B $(D:S(B $(D:T(B $(D:U(B $(D:V(B $(D:W(B $(D:X(B $(D:Y(B $(D:Z(B $(D:[(B $(D:\(B $(D:](B $(D:^(B $(D:_(B +$(D:`(B $(D:a(B $(D:b(B $(D:c(B $(D:d(B $(D:e(B $(D:f(B $(D:g(B $(D:h(B $(D:i(B $(D:j(B $(D:k(B $(D:l(B $(D:m(B $(D:n(B $(D:o(B +$(D:p(B $(D:q(B $(D:r(B $(D:s(B $(D:t(B $(D:u(B $(D:v(B $(D:w(B $(D:x(B $(D:y(B $(D:z(B $(D:{(B $(D:|(B $(D:}(B $(D:~(B + $(D;!(B $(D;"(B $(D;#(B $(D;$(B $(D;%(B $(D;&(B $(D;'(B $(D;((B $(D;)(B $(D;*(B $(D;+(B $(D;,(B $(D;-(B $(D;.(B $(D;/(B +$(D;0(B $(D;1(B $(D;2(B $(D;3(B $(D;4(B $(D;5(B $(D;6(B $(D;7(B $(D;8(B $(D;9(B $(D;:(B $(D;;(B $(D;<(B $(D;=(B $(D;>(B $(D;?(B +$(D;@(B $(D;A(B $(D;B(B $(D;C(B $(D;D(B $(D;E(B $(D;F(B $(D;G(B $(D;H(B $(D;I(B $(D;J(B $(D;K(B $(D;L(B $(D;M(B $(D;N(B $(D;O(B +$(D;P(B $(D;Q(B $(D;R(B $(D;S(B $(D;T(B $(D;U(B $(D;V(B $(D;W(B $(D;X(B $(D;Y(B $(D;Z(B $(D;[(B $(D;\(B $(D;](B $(D;^(B $(D;_(B +$(D;`(B $(D;a(B $(D;b(B $(D;c(B $(D;d(B $(D;e(B $(D;f(B $(D;g(B $(D;h(B $(D;i(B $(D;j(B $(D;k(B $(D;l(B $(D;m(B $(D;n(B $(D;o(B +$(D;p(B $(D;q(B $(D;r(B $(D;s(B $(D;t(B $(D;u(B $(D;v(B $(D;w(B $(D;x(B $(D;y(B $(D;z(B $(D;{(B $(D;|(B $(D;}(B $(D;~(B + $(D(B $(D(B $(D=?(B +$(D=@(B $(D=A(B $(D=B(B $(D=C(B $(D=D(B $(D=E(B $(D=F(B $(D=G(B $(D=H(B $(D=I(B $(D=J(B $(D=K(B $(D=L(B $(D=M(B $(D=N(B $(D=O(B +$(D=P(B $(D=Q(B $(D=R(B $(D=S(B $(D=T(B $(D=U(B $(D=V(B $(D=W(B $(D=X(B $(D=Y(B $(D=Z(B $(D=[(B $(D=\(B $(D=](B $(D=^(B $(D=_(B +$(D=`(B $(D=a(B $(D=b(B $(D=c(B $(D=d(B $(D=e(B $(D=f(B $(D=g(B $(D=h(B $(D=i(B $(D=j(B $(D=k(B $(D=l(B $(D=m(B $(D=n(B $(D=o(B +$(D=p(B $(D=q(B $(D=r(B $(D=s(B $(D=t(B $(D=u(B $(D=v(B $(D=w(B $(D=x(B $(D=y(B $(D=z(B $(D={(B $(D=|(B $(D=}(B $(D=~(B + $(D>!(B $(D>"(B $(D>#(B $(D>$(B $(D>%(B $(D>&(B $(D>'(B $(D>((B $(D>)(B $(D>*(B $(D>+(B $(D>,(B $(D>-(B $(D>.(B $(D>/(B +$(D>0(B $(D>1(B $(D>2(B $(D>3(B $(D>4(B $(D>5(B $(D>6(B $(D>7(B $(D>8(B $(D>9(B $(D>:(B $(D>;(B $(D><(B $(D>=(B $(D>>(B $(D>?(B +$(D>@(B $(D>A(B $(D>B(B $(D>C(B $(D>D(B $(D>E(B $(D>F(B $(D>G(B $(D>H(B $(D>I(B $(D>J(B $(D>K(B $(D>L(B $(D>M(B $(D>N(B $(D>O(B +$(D>P(B $(D>Q(B $(D>R(B $(D>S(B $(D>T(B $(D>U(B $(D>V(B $(D>W(B $(D>X(B $(D>Y(B $(D>Z(B $(D>[(B $(D>\(B $(D>](B $(D>^(B $(D>_(B +$(D>`(B $(D>a(B $(D>b(B $(D>c(B $(D>d(B $(D>e(B $(D>f(B $(D>g(B $(D>h(B $(D>i(B $(D>j(B $(D>k(B $(D>l(B $(D>m(B $(D>n(B $(D>o(B +$(D>p(B $(D>q(B $(D>r(B $(D>s(B $(D>t(B $(D>u(B $(D>v(B $(D>w(B $(D>x(B $(D>y(B $(D>z(B $(D>{(B $(D>|(B $(D>}(B $(D>~(B + $(D?!(B $(D?"(B $(D?#(B $(D?$(B $(D?%(B $(D?&(B $(D?'(B $(D?((B $(D?)(B $(D?*(B $(D?+(B $(D?,(B $(D?-(B $(D?.(B $(D?/(B +$(D?0(B $(D?1(B $(D?2(B $(D?3(B $(D?4(B $(D?5(B $(D?6(B $(D?7(B $(D?8(B $(D?9(B $(D?:(B $(D?;(B $(D?<(B $(D?=(B $(D?>(B $(D??(B +$(D?@(B $(D?A(B $(D?B(B $(D?C(B $(D?D(B $(D?E(B $(D?F(B $(D?G(B $(D?H(B $(D?I(B $(D?J(B $(D?K(B $(D?L(B $(D?M(B $(D?N(B $(D?O(B +$(D?P(B $(D?Q(B $(D?R(B $(D?S(B $(D?T(B $(D?U(B $(D?V(B $(D?W(B $(D?X(B $(D?Y(B $(D?Z(B $(D?[(B $(D?\(B $(D?](B $(D?^(B $(D?_(B +$(D?`(B $(D?a(B $(D?b(B $(D?c(B $(D?d(B $(D?e(B $(D?f(B $(D?g(B $(D?h(B $(D?i(B $(D?j(B $(D?k(B $(D?l(B $(D?m(B $(D?n(B $(D?o(B +$(D?p(B $(D?q(B $(D?r(B $(D?s(B $(D?t(B $(D?u(B $(D?v(B $(D?w(B $(D?x(B $(D?y(B $(D?z(B $(D?{(B $(D?|(B $(D?}(B $(D?~(B + $(D@!(B $(D@"(B $(D@#(B $(D@$(B $(D@%(B $(D@&(B $(D@'(B $(D@((B $(D@)(B $(D@*(B $(D@+(B $(D@,(B $(D@-(B $(D@.(B $(D@/(B +$(D@0(B $(D@1(B $(D@2(B $(D@3(B $(D@4(B $(D@5(B $(D@6(B $(D@7(B $(D@8(B $(D@9(B $(D@:(B $(D@;(B $(D@<(B $(D@=(B $(D@>(B $(D@?(B +$(D@@(B $(D@A(B $(D@B(B $(D@C(B $(D@D(B $(D@E(B $(D@F(B $(D@G(B $(D@H(B $(D@I(B $(D@J(B $(D@K(B $(D@L(B $(D@M(B $(D@N(B $(D@O(B +$(D@P(B $(D@Q(B $(D@R(B $(D@S(B $(D@T(B $(D@U(B $(D@V(B $(D@W(B $(D@X(B $(D@Y(B $(D@Z(B $(D@[(B $(D@\(B $(D@](B $(D@^(B $(D@_(B +$(D@`(B $(D@a(B $(D@b(B $(D@c(B $(D@d(B $(D@e(B $(D@f(B $(D@g(B $(D@h(B $(D@i(B $(D@j(B $(D@k(B $(D@l(B $(D@m(B $(D@n(B $(D@o(B +$(D@p(B $(D@q(B $(D@r(B $(D@s(B $(D@t(B $(D@u(B $(D@v(B $(D@w(B $(D@x(B $(D@y(B $(D@z(B $(D@{(B $(D@|(B $(D@}(B $(D@~(B + $(DA!(B $(DA"(B $(DA#(B $(DA$(B $(DA%(B $(DA&(B $(DA'(B $(DA((B $(DA)(B $(DA*(B $(DA+(B $(DA,(B $(DA-(B $(DA.(B $(DA/(B +$(DA0(B $(DA1(B $(DA2(B $(DA3(B $(DA4(B $(DA5(B $(DA6(B $(DA7(B $(DA8(B $(DA9(B $(DA:(B $(DA;(B $(DA<(B $(DA=(B $(DA>(B $(DA?(B +$(DA@(B $(DAA(B $(DAB(B $(DAC(B $(DAD(B $(DAE(B $(DAF(B $(DAG(B $(DAH(B $(DAI(B $(DAJ(B $(DAK(B $(DAL(B $(DAM(B $(DAN(B $(DAO(B +$(DAP(B $(DAQ(B $(DAR(B $(DAS(B $(DAT(B $(DAU(B $(DAV(B $(DAW(B $(DAX(B $(DAY(B $(DAZ(B $(DA[(B $(DA\(B $(DA](B $(DA^(B $(DA_(B +$(DA`(B $(DAa(B $(DAb(B $(DAc(B $(DAd(B $(DAe(B $(DAf(B $(DAg(B $(DAh(B $(DAi(B $(DAj(B $(DAk(B $(DAl(B $(DAm(B $(DAn(B $(DAo(B +$(DAp(B $(DAq(B $(DAr(B $(DAs(B $(DAt(B $(DAu(B $(DAv(B $(DAw(B $(DAx(B $(DAy(B $(DAz(B $(DA{(B $(DA|(B $(DA}(B $(DA~(B + $(DB!(B $(DB"(B $(DB#(B $(DB$(B $(DB%(B $(DB&(B $(DB'(B $(DB((B $(DB)(B $(DB*(B $(DB+(B $(DB,(B $(DB-(B $(DB.(B $(DB/(B +$(DB0(B $(DB1(B $(DB2(B $(DB3(B $(DB4(B $(DB5(B $(DB6(B $(DB7(B $(DB8(B $(DB9(B $(DB:(B $(DB;(B $(DB<(B $(DB=(B $(DB>(B $(DB?(B +$(DB@(B $(DBA(B $(DBB(B $(DBC(B $(DBD(B $(DBE(B $(DBF(B $(DBG(B $(DBH(B $(DBI(B $(DBJ(B $(DBK(B $(DBL(B $(DBM(B $(DBN(B $(DBO(B +$(DBP(B $(DBQ(B $(DBR(B $(DBS(B $(DBT(B $(DBU(B $(DBV(B $(DBW(B $(DBX(B $(DBY(B $(DBZ(B $(DB[(B $(DB\(B $(DB](B $(DB^(B $(DB_(B +$(DB`(B $(DBa(B $(DBb(B $(DBc(B $(DBd(B $(DBe(B $(DBf(B $(DBg(B $(DBh(B $(DBi(B $(DBj(B $(DBk(B $(DBl(B $(DBm(B $(DBn(B $(DBo(B +$(DBp(B $(DBq(B $(DBr(B $(DBs(B $(DBt(B $(DBu(B $(DBv(B $(DBw(B $(DBx(B $(DBy(B $(DBz(B $(DB{(B $(DB|(B $(DB}(B $(DB~(B + $(DC!(B $(DC"(B $(DC#(B $(DC$(B $(DC%(B $(DC&(B $(DC'(B $(DC((B $(DC)(B $(DC*(B $(DC+(B $(DC,(B $(DC-(B $(DC.(B $(DC/(B +$(DC0(B $(DC1(B $(DC2(B $(DC3(B $(DC4(B $(DC5(B $(DC6(B $(DC7(B $(DC8(B $(DC9(B $(DC:(B $(DC;(B $(DC<(B $(DC=(B $(DC>(B $(DC?(B +$(DC@(B $(DCA(B $(DCB(B $(DCC(B $(DCD(B $(DCE(B $(DCF(B $(DCG(B $(DCH(B $(DCI(B $(DCJ(B $(DCK(B $(DCL(B $(DCM(B $(DCN(B $(DCO(B +$(DCP(B $(DCQ(B $(DCR(B $(DCS(B $(DCT(B $(DCU(B $(DCV(B $(DCW(B $(DCX(B $(DCY(B $(DCZ(B $(DC[(B $(DC\(B $(DC](B $(DC^(B $(DC_(B +$(DC`(B $(DCa(B $(DCb(B $(DCc(B $(DCd(B $(DCe(B $(DCf(B $(DCg(B $(DCh(B $(DCi(B $(DCj(B $(DCk(B $(DCl(B $(DCm(B $(DCn(B $(DCo(B +$(DCp(B $(DCq(B $(DCr(B $(DCs(B $(DCt(B $(DCu(B $(DCv(B $(DCw(B $(DCx(B $(DCy(B $(DCz(B $(DC{(B $(DC|(B $(DC}(B $(DC~(B + $(DD!(B $(DD"(B $(DD#(B $(DD$(B $(DD%(B $(DD&(B $(DD'(B $(DD((B $(DD)(B $(DD*(B $(DD+(B $(DD,(B $(DD-(B $(DD.(B $(DD/(B +$(DD0(B $(DD1(B $(DD2(B $(DD3(B $(DD4(B $(DD5(B $(DD6(B $(DD7(B $(DD8(B $(DD9(B $(DD:(B $(DD;(B $(DD<(B $(DD=(B $(DD>(B $(DD?(B +$(DD@(B $(DDA(B $(DDB(B $(DDC(B $(DDD(B $(DDE(B $(DDF(B $(DDG(B $(DDH(B $(DDI(B $(DDJ(B $(DDK(B $(DDL(B $(DDM(B $(DDN(B $(DDO(B +$(DDP(B $(DDQ(B $(DDR(B $(DDS(B $(DDT(B $(DDU(B $(DDV(B $(DDW(B $(DDX(B $(DDY(B $(DDZ(B $(DD[(B $(DD\(B $(DD](B $(DD^(B $(DD_(B +$(DD`(B $(DDa(B $(DDb(B $(DDc(B $(DDd(B $(DDe(B $(DDf(B $(DDg(B $(DDh(B $(DDi(B $(DDj(B $(DDk(B $(DDl(B $(DDm(B $(DDn(B $(DDo(B +$(DDp(B $(DDq(B $(DDr(B $(DDs(B $(DDt(B $(DDu(B $(DDv(B $(DDw(B $(DDx(B $(DDy(B $(DDz(B $(DD{(B $(DD|(B $(DD}(B $(DD~(B + $(DE!(B $(DE"(B $(DE#(B $(DE$(B $(DE%(B $(DE&(B $(DE'(B $(DE((B $(DE)(B $(DE*(B $(DE+(B $(DE,(B $(DE-(B $(DE.(B $(DE/(B +$(DE0(B $(DE1(B $(DE2(B $(DE3(B $(DE4(B $(DE5(B $(DE6(B $(DE7(B $(DE8(B $(DE9(B $(DE:(B $(DE;(B $(DE<(B $(DE=(B $(DE>(B $(DE?(B +$(DE@(B $(DEA(B $(DEB(B $(DEC(B $(DED(B $(DEE(B $(DEF(B $(DEG(B $(DEH(B $(DEI(B $(DEJ(B $(DEK(B $(DEL(B $(DEM(B $(DEN(B $(DEO(B +$(DEP(B $(DEQ(B $(DER(B $(DES(B $(DET(B $(DEU(B $(DEV(B $(DEW(B $(DEX(B $(DEY(B $(DEZ(B $(DE[(B $(DE\(B $(DE](B $(DE^(B $(DE_(B +$(DE`(B $(DEa(B $(DEb(B $(DEc(B $(DEd(B $(DEe(B $(DEf(B $(DEg(B $(DEh(B $(DEi(B $(DEj(B $(DEk(B $(DEl(B $(DEm(B $(DEn(B $(DEo(B +$(DEp(B $(DEq(B $(DEr(B $(DEs(B $(DEt(B $(DEu(B $(DEv(B $(DEw(B $(DEx(B $(DEy(B $(DEz(B $(DE{(B $(DE|(B $(DE}(B $(DE~(B + $(DF!(B $(DF"(B $(DF#(B $(DF$(B $(DF%(B $(DF&(B $(DF'(B $(DF((B $(DF)(B $(DF*(B $(DF+(B $(DF,(B $(DF-(B $(DF.(B $(DF/(B +$(DF0(B $(DF1(B $(DF2(B $(DF3(B $(DF4(B $(DF5(B $(DF6(B $(DF7(B $(DF8(B $(DF9(B $(DF:(B $(DF;(B $(DF<(B $(DF=(B $(DF>(B $(DF?(B +$(DF@(B $(DFA(B $(DFB(B $(DFC(B $(DFD(B $(DFE(B $(DFF(B $(DFG(B $(DFH(B $(DFI(B $(DFJ(B $(DFK(B $(DFL(B $(DFM(B $(DFN(B $(DFO(B +$(DFP(B $(DFQ(B $(DFR(B $(DFS(B $(DFT(B $(DFU(B $(DFV(B $(DFW(B $(DFX(B $(DFY(B $(DFZ(B $(DF[(B $(DF\(B $(DF](B $(DF^(B $(DF_(B +$(DF`(B $(DFa(B $(DFb(B $(DFc(B $(DFd(B $(DFe(B $(DFf(B $(DFg(B $(DFh(B $(DFi(B $(DFj(B $(DFk(B $(DFl(B $(DFm(B $(DFn(B $(DFo(B +$(DFp(B $(DFq(B $(DFr(B $(DFs(B $(DFt(B $(DFu(B $(DFv(B $(DFw(B $(DFx(B $(DFy(B $(DFz(B $(DF{(B $(DF|(B $(DF}(B $(DF~(B + $(DG!(B $(DG"(B $(DG#(B $(DG$(B $(DG%(B $(DG&(B $(DG'(B $(DG((B $(DG)(B $(DG*(B $(DG+(B $(DG,(B $(DG-(B $(DG.(B $(DG/(B +$(DG0(B $(DG1(B $(DG2(B $(DG3(B $(DG4(B $(DG5(B $(DG6(B $(DG7(B $(DG8(B $(DG9(B $(DG:(B $(DG;(B $(DG<(B $(DG=(B $(DG>(B $(DG?(B +$(DG@(B $(DGA(B $(DGB(B $(DGC(B $(DGD(B $(DGE(B $(DGF(B $(DGG(B $(DGH(B $(DGI(B $(DGJ(B $(DGK(B $(DGL(B $(DGM(B $(DGN(B $(DGO(B +$(DGP(B $(DGQ(B $(DGR(B $(DGS(B $(DGT(B $(DGU(B $(DGV(B $(DGW(B $(DGX(B $(DGY(B $(DGZ(B $(DG[(B $(DG\(B $(DG](B $(DG^(B $(DG_(B +$(DG`(B $(DGa(B $(DGb(B $(DGc(B $(DGd(B $(DGe(B $(DGf(B $(DGg(B $(DGh(B $(DGi(B $(DGj(B $(DGk(B $(DGl(B $(DGm(B $(DGn(B $(DGo(B +$(DGp(B $(DGq(B $(DGr(B $(DGs(B $(DGt(B $(DGu(B $(DGv(B $(DGw(B $(DGx(B $(DGy(B $(DGz(B $(DG{(B $(DG|(B $(DG}(B $(DG~(B + $(DH!(B $(DH"(B $(DH#(B $(DH$(B $(DH%(B $(DH&(B $(DH'(B $(DH((B $(DH)(B $(DH*(B $(DH+(B $(DH,(B $(DH-(B $(DH.(B $(DH/(B +$(DH0(B $(DH1(B $(DH2(B $(DH3(B $(DH4(B $(DH5(B $(DH6(B $(DH7(B $(DH8(B $(DH9(B $(DH:(B $(DH;(B $(DH<(B $(DH=(B $(DH>(B $(DH?(B +$(DH@(B $(DHA(B $(DHB(B $(DHC(B $(DHD(B $(DHE(B $(DHF(B $(DHG(B $(DHH(B $(DHI(B $(DHJ(B $(DHK(B $(DHL(B $(DHM(B $(DHN(B $(DHO(B +$(DHP(B $(DHQ(B $(DHR(B $(DHS(B $(DHT(B $(DHU(B $(DHV(B $(DHW(B $(DHX(B $(DHY(B $(DHZ(B $(DH[(B $(DH\(B $(DH](B $(DH^(B $(DH_(B +$(DH`(B $(DHa(B $(DHb(B $(DHc(B $(DHd(B $(DHe(B $(DHf(B $(DHg(B $(DHh(B $(DHi(B $(DHj(B $(DHk(B $(DHl(B $(DHm(B $(DHn(B $(DHo(B +$(DHp(B $(DHq(B $(DHr(B $(DHs(B $(DHt(B $(DHu(B $(DHv(B $(DHw(B $(DHx(B $(DHy(B $(DHz(B $(DH{(B $(DH|(B $(DH}(B $(DH~(B + $(DI!(B $(DI"(B $(DI#(B $(DI$(B $(DI%(B $(DI&(B $(DI'(B $(DI((B $(DI)(B $(DI*(B $(DI+(B $(DI,(B $(DI-(B $(DI.(B $(DI/(B +$(DI0(B $(DI1(B $(DI2(B $(DI3(B $(DI4(B $(DI5(B $(DI6(B $(DI7(B $(DI8(B $(DI9(B $(DI:(B $(DI;(B $(DI<(B $(DI=(B $(DI>(B $(DI?(B +$(DI@(B $(DIA(B $(DIB(B $(DIC(B $(DID(B $(DIE(B $(DIF(B $(DIG(B $(DIH(B $(DII(B $(DIJ(B $(DIK(B $(DIL(B $(DIM(B $(DIN(B $(DIO(B +$(DIP(B $(DIQ(B $(DIR(B $(DIS(B $(DIT(B $(DIU(B $(DIV(B $(DIW(B $(DIX(B $(DIY(B $(DIZ(B $(DI[(B $(DI\(B $(DI](B $(DI^(B $(DI_(B +$(DI`(B $(DIa(B $(DIb(B $(DIc(B $(DId(B $(DIe(B $(DIf(B $(DIg(B $(DIh(B $(DIi(B $(DIj(B $(DIk(B $(DIl(B $(DIm(B $(DIn(B $(DIo(B +$(DIp(B $(DIq(B $(DIr(B $(DIs(B $(DIt(B $(DIu(B $(DIv(B $(DIw(B $(DIx(B $(DIy(B $(DIz(B $(DI{(B $(DI|(B $(DI}(B $(DI~(B + $(DJ!(B $(DJ"(B $(DJ#(B $(DJ$(B $(DJ%(B $(DJ&(B $(DJ'(B $(DJ((B $(DJ)(B $(DJ*(B $(DJ+(B $(DJ,(B $(DJ-(B $(DJ.(B $(DJ/(B +$(DJ0(B $(DJ1(B $(DJ2(B $(DJ3(B $(DJ4(B $(DJ5(B $(DJ6(B $(DJ7(B $(DJ8(B $(DJ9(B $(DJ:(B $(DJ;(B $(DJ<(B $(DJ=(B $(DJ>(B $(DJ?(B +$(DJ@(B $(DJA(B $(DJB(B $(DJC(B $(DJD(B $(DJE(B $(DJF(B $(DJG(B $(DJH(B $(DJI(B $(DJJ(B $(DJK(B $(DJL(B $(DJM(B $(DJN(B $(DJO(B +$(DJP(B $(DJQ(B $(DJR(B $(DJS(B $(DJT(B $(DJU(B $(DJV(B $(DJW(B $(DJX(B $(DJY(B $(DJZ(B $(DJ[(B $(DJ\(B $(DJ](B $(DJ^(B $(DJ_(B +$(DJ`(B $(DJa(B $(DJb(B $(DJc(B $(DJd(B $(DJe(B $(DJf(B $(DJg(B $(DJh(B $(DJi(B $(DJj(B $(DJk(B $(DJl(B $(DJm(B $(DJn(B $(DJo(B +$(DJp(B $(DJq(B $(DJr(B $(DJs(B $(DJt(B $(DJu(B $(DJv(B $(DJw(B $(DJx(B $(DJy(B $(DJz(B $(DJ{(B $(DJ|(B $(DJ}(B $(DJ~(B + $(DK!(B $(DK"(B $(DK#(B $(DK$(B $(DK%(B $(DK&(B $(DK'(B $(DK((B $(DK)(B $(DK*(B $(DK+(B $(DK,(B $(DK-(B $(DK.(B $(DK/(B +$(DK0(B $(DK1(B $(DK2(B $(DK3(B $(DK4(B $(DK5(B $(DK6(B $(DK7(B $(DK8(B $(DK9(B $(DK:(B $(DK;(B $(DK<(B $(DK=(B $(DK>(B $(DK?(B +$(DK@(B $(DKA(B $(DKB(B $(DKC(B $(DKD(B $(DKE(B $(DKF(B $(DKG(B $(DKH(B $(DKI(B $(DKJ(B $(DKK(B $(DKL(B $(DKM(B $(DKN(B $(DKO(B +$(DKP(B $(DKQ(B $(DKR(B $(DKS(B $(DKT(B $(DKU(B $(DKV(B $(DKW(B $(DKX(B $(DKY(B $(DKZ(B $(DK[(B $(DK\(B $(DK](B $(DK^(B $(DK_(B +$(DK`(B $(DKa(B $(DKb(B $(DKc(B $(DKd(B $(DKe(B $(DKf(B $(DKg(B $(DKh(B $(DKi(B $(DKj(B $(DKk(B $(DKl(B $(DKm(B $(DKn(B $(DKo(B +$(DKp(B $(DKq(B $(DKr(B $(DKs(B $(DKt(B $(DKu(B $(DKv(B $(DKw(B $(DKx(B $(DKy(B $(DKz(B $(DK{(B $(DK|(B $(DK}(B $(DK~(B + $(DL!(B $(DL"(B $(DL#(B $(DL$(B $(DL%(B $(DL&(B $(DL'(B $(DL((B $(DL)(B $(DL*(B $(DL+(B $(DL,(B $(DL-(B $(DL.(B $(DL/(B +$(DL0(B $(DL1(B $(DL2(B $(DL3(B $(DL4(B $(DL5(B $(DL6(B $(DL7(B $(DL8(B $(DL9(B $(DL:(B $(DL;(B $(DL<(B $(DL=(B $(DL>(B $(DL?(B +$(DL@(B $(DLA(B $(DLB(B $(DLC(B $(DLD(B $(DLE(B $(DLF(B $(DLG(B $(DLH(B $(DLI(B $(DLJ(B $(DLK(B $(DLL(B $(DLM(B $(DLN(B $(DLO(B +$(DLP(B $(DLQ(B $(DLR(B $(DLS(B $(DLT(B $(DLU(B $(DLV(B $(DLW(B $(DLX(B $(DLY(B $(DLZ(B $(DL[(B $(DL\(B $(DL](B $(DL^(B $(DL_(B +$(DL`(B $(DLa(B $(DLb(B $(DLc(B $(DLd(B $(DLe(B $(DLf(B $(DLg(B $(DLh(B $(DLi(B $(DLj(B $(DLk(B $(DLl(B $(DLm(B $(DLn(B $(DLo(B +$(DLp(B $(DLq(B $(DLr(B $(DLs(B $(DLt(B $(DLu(B $(DLv(B $(DLw(B $(DLx(B $(DLy(B $(DLz(B $(DL{(B $(DL|(B $(DL}(B $(DL~(B + $(DM!(B $(DM"(B $(DM#(B $(DM$(B $(DM%(B $(DM&(B $(DM'(B $(DM((B $(DM)(B $(DM*(B $(DM+(B $(DM,(B $(DM-(B $(DM.(B $(DM/(B +$(DM0(B $(DM1(B $(DM2(B $(DM3(B $(DM4(B $(DM5(B $(DM6(B $(DM7(B $(DM8(B $(DM9(B $(DM:(B $(DM;(B $(DM<(B $(DM=(B $(DM>(B $(DM?(B +$(DM@(B $(DMA(B $(DMB(B $(DMC(B $(DMD(B $(DME(B $(DMF(B $(DMG(B $(DMH(B $(DMI(B $(DMJ(B $(DMK(B $(DML(B $(DMM(B $(DMN(B $(DMO(B +$(DMP(B $(DMQ(B $(DMR(B $(DMS(B $(DMT(B $(DMU(B $(DMV(B $(DMW(B $(DMX(B $(DMY(B $(DMZ(B $(DM[(B $(DM\(B $(DM](B $(DM^(B $(DM_(B +$(DM`(B $(DMa(B $(DMb(B $(DMc(B $(DMd(B $(DMe(B $(DMf(B $(DMg(B $(DMh(B $(DMi(B $(DMj(B $(DMk(B $(DMl(B $(DMm(B $(DMn(B $(DMo(B +$(DMp(B $(DMq(B $(DMr(B $(DMs(B $(DMt(B $(DMu(B $(DMv(B $(DMw(B $(DMx(B $(DMy(B $(DMz(B $(DM{(B $(DM|(B $(DM}(B $(DM~(B + $(DN!(B $(DN"(B $(DN#(B $(DN$(B $(DN%(B $(DN&(B $(DN'(B $(DN((B $(DN)(B $(DN*(B $(DN+(B $(DN,(B $(DN-(B $(DN.(B $(DN/(B +$(DN0(B $(DN1(B $(DN2(B $(DN3(B $(DN4(B $(DN5(B $(DN6(B $(DN7(B $(DN8(B $(DN9(B $(DN:(B $(DN;(B $(DN<(B $(DN=(B $(DN>(B $(DN?(B +$(DN@(B $(DNA(B $(DNB(B $(DNC(B $(DND(B $(DNE(B $(DNF(B $(DNG(B $(DNH(B $(DNI(B $(DNJ(B $(DNK(B $(DNL(B $(DNM(B $(DNN(B $(DNO(B +$(DNP(B $(DNQ(B $(DNR(B $(DNS(B $(DNT(B $(DNU(B $(DNV(B $(DNW(B $(DNX(B $(DNY(B $(DNZ(B $(DN[(B $(DN\(B $(DN](B $(DN^(B $(DN_(B +$(DN`(B $(DNa(B $(DNb(B $(DNc(B $(DNd(B $(DNe(B $(DNf(B $(DNg(B $(DNh(B $(DNi(B $(DNj(B $(DNk(B $(DNl(B $(DNm(B $(DNn(B $(DNo(B +$(DNp(B $(DNq(B $(DNr(B $(DNs(B $(DNt(B $(DNu(B $(DNv(B $(DNw(B $(DNx(B $(DNy(B $(DNz(B $(DN{(B $(DN|(B $(DN}(B $(DN~(B + $(DO!(B $(DO"(B $(DO#(B $(DO$(B $(DO%(B $(DO&(B $(DO'(B $(DO((B $(DO)(B $(DO*(B $(DO+(B $(DO,(B $(DO-(B $(DO.(B $(DO/(B +$(DO0(B $(DO1(B $(DO2(B $(DO3(B $(DO4(B $(DO5(B $(DO6(B $(DO7(B $(DO8(B $(DO9(B $(DO:(B $(DO;(B $(DO<(B $(DO=(B $(DO>(B $(DO?(B +$(DO@(B $(DOA(B $(DOB(B $(DOC(B $(DOD(B $(DOE(B $(DOF(B $(DOG(B $(DOH(B $(DOI(B $(DOJ(B $(DOK(B $(DOL(B $(DOM(B $(DON(B $(DOO(B +$(DOP(B $(DOQ(B $(DOR(B $(DOS(B $(DOT(B $(DOU(B $(DOV(B $(DOW(B $(DOX(B $(DOY(B $(DOZ(B $(DO[(B $(DO\(B $(DO](B $(DO^(B $(DO_(B +$(DO`(B $(DOa(B $(DOb(B $(DOc(B $(DOd(B $(DOe(B $(DOf(B $(DOg(B $(DOh(B $(DOi(B $(DOj(B $(DOk(B $(DOl(B $(DOm(B $(DOn(B $(DOo(B +$(DOp(B $(DOq(B $(DOr(B $(DOs(B $(DOt(B $(DOu(B $(DOv(B $(DOw(B $(DOx(B $(DOy(B $(DOz(B $(DO{(B $(DO|(B $(DO}(B $(DO~(B + $(DP!(B $(DP"(B $(DP#(B $(DP$(B $(DP%(B $(DP&(B $(DP'(B $(DP((B $(DP)(B $(DP*(B $(DP+(B $(DP,(B $(DP-(B $(DP.(B $(DP/(B +$(DP0(B $(DP1(B $(DP2(B $(DP3(B $(DP4(B $(DP5(B $(DP6(B $(DP7(B $(DP8(B $(DP9(B $(DP:(B $(DP;(B $(DP<(B $(DP=(B $(DP>(B $(DP?(B +$(DP@(B $(DPA(B $(DPB(B $(DPC(B $(DPD(B $(DPE(B $(DPF(B $(DPG(B $(DPH(B $(DPI(B $(DPJ(B $(DPK(B $(DPL(B $(DPM(B $(DPN(B $(DPO(B +$(DPP(B $(DPQ(B $(DPR(B $(DPS(B $(DPT(B $(DPU(B $(DPV(B $(DPW(B $(DPX(B $(DPY(B $(DPZ(B $(DP[(B $(DP\(B $(DP](B $(DP^(B $(DP_(B +$(DP`(B $(DPa(B $(DPb(B $(DPc(B $(DPd(B $(DPe(B $(DPf(B $(DPg(B $(DPh(B $(DPi(B $(DPj(B $(DPk(B $(DPl(B $(DPm(B $(DPn(B $(DPo(B +$(DPp(B $(DPq(B $(DPr(B $(DPs(B $(DPt(B $(DPu(B $(DPv(B $(DPw(B $(DPx(B $(DPy(B $(DPz(B $(DP{(B $(DP|(B $(DP}(B $(DP~(B + $(DQ!(B $(DQ"(B $(DQ#(B $(DQ$(B $(DQ%(B $(DQ&(B $(DQ'(B $(DQ((B $(DQ)(B $(DQ*(B $(DQ+(B $(DQ,(B $(DQ-(B $(DQ.(B $(DQ/(B +$(DQ0(B $(DQ1(B $(DQ2(B $(DQ3(B $(DQ4(B $(DQ5(B $(DQ6(B $(DQ7(B $(DQ8(B $(DQ9(B $(DQ:(B $(DQ;(B $(DQ<(B $(DQ=(B $(DQ>(B $(DQ?(B +$(DQ@(B $(DQA(B $(DQB(B $(DQC(B $(DQD(B $(DQE(B $(DQF(B $(DQG(B $(DQH(B $(DQI(B $(DQJ(B $(DQK(B $(DQL(B $(DQM(B $(DQN(B $(DQO(B +$(DQP(B $(DQQ(B $(DQR(B $(DQS(B $(DQT(B $(DQU(B $(DQV(B $(DQW(B $(DQX(B $(DQY(B $(DQZ(B $(DQ[(B $(DQ\(B $(DQ](B $(DQ^(B $(DQ_(B +$(DQ`(B $(DQa(B $(DQb(B $(DQc(B $(DQd(B $(DQe(B $(DQf(B $(DQg(B $(DQh(B $(DQi(B $(DQj(B $(DQk(B $(DQl(B $(DQm(B $(DQn(B $(DQo(B +$(DQp(B $(DQq(B $(DQr(B $(DQs(B $(DQt(B $(DQu(B $(DQv(B $(DQw(B $(DQx(B $(DQy(B $(DQz(B $(DQ{(B $(DQ|(B $(DQ}(B $(DQ~(B + $(DR!(B $(DR"(B $(DR#(B $(DR$(B $(DR%(B $(DR&(B $(DR'(B $(DR((B $(DR)(B $(DR*(B $(DR+(B $(DR,(B $(DR-(B $(DR.(B $(DR/(B +$(DR0(B $(DR1(B $(DR2(B $(DR3(B $(DR4(B $(DR5(B $(DR6(B $(DR7(B $(DR8(B $(DR9(B $(DR:(B $(DR;(B $(DR<(B $(DR=(B $(DR>(B $(DR?(B +$(DR@(B $(DRA(B $(DRB(B $(DRC(B $(DRD(B $(DRE(B $(DRF(B $(DRG(B $(DRH(B $(DRI(B $(DRJ(B $(DRK(B $(DRL(B $(DRM(B $(DRN(B $(DRO(B +$(DRP(B $(DRQ(B $(DRR(B $(DRS(B $(DRT(B $(DRU(B $(DRV(B $(DRW(B $(DRX(B $(DRY(B $(DRZ(B $(DR[(B $(DR\(B $(DR](B $(DR^(B $(DR_(B +$(DR`(B $(DRa(B $(DRb(B $(DRc(B $(DRd(B $(DRe(B $(DRf(B $(DRg(B $(DRh(B $(DRi(B $(DRj(B $(DRk(B $(DRl(B $(DRm(B $(DRn(B $(DRo(B +$(DRp(B $(DRq(B $(DRr(B $(DRs(B $(DRt(B $(DRu(B $(DRv(B $(DRw(B $(DRx(B $(DRy(B $(DRz(B $(DR{(B $(DR|(B $(DR}(B $(DR~(B + $(DS!(B $(DS"(B $(DS#(B $(DS$(B $(DS%(B $(DS&(B $(DS'(B $(DS((B $(DS)(B $(DS*(B $(DS+(B $(DS,(B $(DS-(B $(DS.(B $(DS/(B +$(DS0(B $(DS1(B $(DS2(B $(DS3(B $(DS4(B $(DS5(B $(DS6(B $(DS7(B $(DS8(B $(DS9(B $(DS:(B $(DS;(B $(DS<(B $(DS=(B $(DS>(B $(DS?(B +$(DS@(B $(DSA(B $(DSB(B $(DSC(B $(DSD(B $(DSE(B $(DSF(B $(DSG(B $(DSH(B $(DSI(B $(DSJ(B $(DSK(B $(DSL(B $(DSM(B $(DSN(B $(DSO(B +$(DSP(B $(DSQ(B $(DSR(B $(DSS(B $(DST(B $(DSU(B $(DSV(B $(DSW(B $(DSX(B $(DSY(B $(DSZ(B $(DS[(B $(DS\(B $(DS](B $(DS^(B $(DS_(B +$(DS`(B $(DSa(B $(DSb(B $(DSc(B $(DSd(B $(DSe(B $(DSf(B $(DSg(B $(DSh(B $(DSi(B $(DSj(B $(DSk(B $(DSl(B $(DSm(B $(DSn(B $(DSo(B +$(DSp(B $(DSq(B $(DSr(B $(DSs(B $(DSt(B $(DSu(B $(DSv(B $(DSw(B $(DSx(B $(DSy(B $(DSz(B $(DS{(B $(DS|(B $(DS}(B $(DS~(B + $(DT!(B $(DT"(B $(DT#(B $(DT$(B $(DT%(B $(DT&(B $(DT'(B $(DT((B $(DT)(B $(DT*(B $(DT+(B $(DT,(B $(DT-(B $(DT.(B $(DT/(B +$(DT0(B $(DT1(B $(DT2(B $(DT3(B $(DT4(B $(DT5(B $(DT6(B $(DT7(B $(DT8(B $(DT9(B $(DT:(B $(DT;(B $(DT<(B $(DT=(B $(DT>(B $(DT?(B +$(DT@(B $(DTA(B $(DTB(B $(DTC(B $(DTD(B $(DTE(B $(DTF(B $(DTG(B $(DTH(B $(DTI(B $(DTJ(B $(DTK(B $(DTL(B $(DTM(B $(DTN(B $(DTO(B +$(DTP(B $(DTQ(B $(DTR(B $(DTS(B $(DTT(B $(DTU(B $(DTV(B $(DTW(B $(DTX(B $(DTY(B $(DTZ(B $(DT[(B $(DT\(B $(DT](B $(DT^(B $(DT_(B +$(DT`(B $(DTa(B $(DTb(B $(DTc(B $(DTd(B $(DTe(B $(DTf(B $(DTg(B $(DTh(B $(DTi(B $(DTj(B $(DTk(B $(DTl(B $(DTm(B $(DTn(B $(DTo(B +$(DTp(B $(DTq(B $(DTr(B $(DTs(B $(DTt(B $(DTu(B $(DTv(B $(DTw(B $(DTx(B $(DTy(B $(DTz(B $(DT{(B $(DT|(B $(DT}(B $(DT~(B + $(DU!(B $(DU"(B $(DU#(B $(DU$(B $(DU%(B $(DU&(B $(DU'(B $(DU((B $(DU)(B $(DU*(B $(DU+(B $(DU,(B $(DU-(B $(DU.(B $(DU/(B +$(DU0(B $(DU1(B $(DU2(B $(DU3(B $(DU4(B $(DU5(B $(DU6(B $(DU7(B $(DU8(B $(DU9(B $(DU:(B $(DU;(B $(DU<(B $(DU=(B $(DU>(B $(DU?(B +$(DU@(B $(DUA(B $(DUB(B $(DUC(B $(DUD(B $(DUE(B $(DUF(B $(DUG(B $(DUH(B $(DUI(B $(DUJ(B $(DUK(B $(DUL(B $(DUM(B $(DUN(B $(DUO(B +$(DUP(B $(DUQ(B $(DUR(B $(DUS(B $(DUT(B $(DUU(B $(DUV(B $(DUW(B $(DUX(B $(DUY(B $(DUZ(B $(DU[(B $(DU\(B $(DU](B $(DU^(B $(DU_(B +$(DU`(B $(DUa(B $(DUb(B $(DUc(B $(DUd(B $(DUe(B $(DUf(B $(DUg(B $(DUh(B $(DUi(B $(DUj(B $(DUk(B $(DUl(B $(DUm(B $(DUn(B $(DUo(B +$(DUp(B $(DUq(B $(DUr(B $(DUs(B $(DUt(B $(DUu(B $(DUv(B $(DUw(B $(DUx(B $(DUy(B $(DUz(B $(DU{(B $(DU|(B $(DU}(B $(DU~(B + $(DV!(B $(DV"(B $(DV#(B $(DV$(B $(DV%(B $(DV&(B $(DV'(B $(DV((B $(DV)(B $(DV*(B $(DV+(B $(DV,(B $(DV-(B $(DV.(B $(DV/(B +$(DV0(B $(DV1(B $(DV2(B $(DV3(B $(DV4(B $(DV5(B $(DV6(B $(DV7(B $(DV8(B $(DV9(B $(DV:(B $(DV;(B $(DV<(B $(DV=(B $(DV>(B $(DV?(B +$(DV@(B $(DVA(B $(DVB(B $(DVC(B $(DVD(B $(DVE(B $(DVF(B $(DVG(B $(DVH(B $(DVI(B $(DVJ(B $(DVK(B $(DVL(B $(DVM(B $(DVN(B $(DVO(B +$(DVP(B $(DVQ(B $(DVR(B $(DVS(B $(DVT(B $(DVU(B $(DVV(B $(DVW(B $(DVX(B $(DVY(B $(DVZ(B $(DV[(B $(DV\(B $(DV](B $(DV^(B $(DV_(B +$(DV`(B $(DVa(B $(DVb(B $(DVc(B $(DVd(B $(DVe(B $(DVf(B $(DVg(B $(DVh(B $(DVi(B $(DVj(B $(DVk(B $(DVl(B $(DVm(B $(DVn(B $(DVo(B +$(DVp(B $(DVq(B $(DVr(B $(DVs(B $(DVt(B $(DVu(B $(DVv(B $(DVw(B $(DVx(B $(DVy(B $(DVz(B $(DV{(B $(DV|(B $(DV}(B $(DV~(B + $(DW!(B $(DW"(B $(DW#(B $(DW$(B $(DW%(B $(DW&(B $(DW'(B $(DW((B $(DW)(B $(DW*(B $(DW+(B $(DW,(B $(DW-(B $(DW.(B $(DW/(B +$(DW0(B $(DW1(B $(DW2(B $(DW3(B $(DW4(B $(DW5(B $(DW6(B $(DW7(B $(DW8(B $(DW9(B $(DW:(B $(DW;(B $(DW<(B $(DW=(B $(DW>(B $(DW?(B +$(DW@(B $(DWA(B $(DWB(B $(DWC(B $(DWD(B $(DWE(B $(DWF(B $(DWG(B $(DWH(B $(DWI(B $(DWJ(B $(DWK(B $(DWL(B $(DWM(B $(DWN(B $(DWO(B +$(DWP(B $(DWQ(B $(DWR(B $(DWS(B $(DWT(B $(DWU(B $(DWV(B $(DWW(B $(DWX(B $(DWY(B $(DWZ(B $(DW[(B $(DW\(B $(DW](B $(DW^(B $(DW_(B +$(DW`(B $(DWa(B $(DWb(B $(DWc(B $(DWd(B $(DWe(B $(DWf(B $(DWg(B $(DWh(B $(DWi(B $(DWj(B $(DWk(B $(DWl(B $(DWm(B $(DWn(B $(DWo(B +$(DWp(B $(DWq(B $(DWr(B $(DWs(B $(DWt(B $(DWu(B $(DWv(B $(DWw(B $(DWx(B $(DWy(B $(DWz(B $(DW{(B $(DW|(B $(DW}(B $(DW~(B + $(DX!(B $(DX"(B $(DX#(B $(DX$(B $(DX%(B $(DX&(B $(DX'(B $(DX((B $(DX)(B $(DX*(B $(DX+(B $(DX,(B $(DX-(B $(DX.(B $(DX/(B +$(DX0(B $(DX1(B $(DX2(B $(DX3(B $(DX4(B $(DX5(B $(DX6(B $(DX7(B $(DX8(B $(DX9(B $(DX:(B $(DX;(B $(DX<(B $(DX=(B $(DX>(B $(DX?(B +$(DX@(B $(DXA(B $(DXB(B $(DXC(B $(DXD(B $(DXE(B $(DXF(B $(DXG(B $(DXH(B $(DXI(B $(DXJ(B $(DXK(B $(DXL(B $(DXM(B $(DXN(B $(DXO(B +$(DXP(B $(DXQ(B $(DXR(B $(DXS(B $(DXT(B $(DXU(B $(DXV(B $(DXW(B $(DXX(B $(DXY(B $(DXZ(B $(DX[(B $(DX\(B $(DX](B $(DX^(B $(DX_(B +$(DX`(B $(DXa(B $(DXb(B $(DXc(B $(DXd(B $(DXe(B $(DXf(B $(DXg(B $(DXh(B $(DXi(B $(DXj(B $(DXk(B $(DXl(B $(DXm(B $(DXn(B $(DXo(B +$(DXp(B $(DXq(B $(DXr(B $(DXs(B $(DXt(B $(DXu(B $(DXv(B $(DXw(B $(DXx(B $(DXy(B $(DXz(B $(DX{(B $(DX|(B $(DX}(B $(DX~(B + $(DY!(B $(DY"(B $(DY#(B $(DY$(B $(DY%(B $(DY&(B $(DY'(B $(DY((B $(DY)(B $(DY*(B $(DY+(B $(DY,(B $(DY-(B $(DY.(B $(DY/(B +$(DY0(B $(DY1(B $(DY2(B $(DY3(B $(DY4(B $(DY5(B $(DY6(B $(DY7(B $(DY8(B $(DY9(B $(DY:(B $(DY;(B $(DY<(B $(DY=(B $(DY>(B $(DY?(B +$(DY@(B $(DYA(B $(DYB(B $(DYC(B $(DYD(B $(DYE(B $(DYF(B $(DYG(B $(DYH(B $(DYI(B $(DYJ(B $(DYK(B $(DYL(B $(DYM(B $(DYN(B $(DYO(B +$(DYP(B $(DYQ(B $(DYR(B $(DYS(B $(DYT(B $(DYU(B $(DYV(B $(DYW(B $(DYX(B $(DYY(B $(DYZ(B $(DY[(B $(DY\(B $(DY](B $(DY^(B $(DY_(B +$(DY`(B $(DYa(B $(DYb(B $(DYc(B $(DYd(B $(DYe(B $(DYf(B $(DYg(B $(DYh(B $(DYi(B $(DYj(B $(DYk(B $(DYl(B $(DYm(B $(DYn(B $(DYo(B +$(DYp(B $(DYq(B $(DYr(B $(DYs(B $(DYt(B $(DYu(B $(DYv(B $(DYw(B $(DYx(B $(DYy(B $(DYz(B $(DY{(B $(DY|(B $(DY}(B $(DY~(B + $(DZ!(B $(DZ"(B $(DZ#(B $(DZ$(B $(DZ%(B $(DZ&(B $(DZ'(B $(DZ((B $(DZ)(B $(DZ*(B $(DZ+(B $(DZ,(B $(DZ-(B $(DZ.(B $(DZ/(B +$(DZ0(B $(DZ1(B $(DZ2(B $(DZ3(B $(DZ4(B $(DZ5(B $(DZ6(B $(DZ7(B $(DZ8(B $(DZ9(B $(DZ:(B $(DZ;(B $(DZ<(B $(DZ=(B $(DZ>(B $(DZ?(B +$(DZ@(B $(DZA(B $(DZB(B $(DZC(B $(DZD(B $(DZE(B $(DZF(B $(DZG(B $(DZH(B $(DZI(B $(DZJ(B $(DZK(B $(DZL(B $(DZM(B $(DZN(B $(DZO(B +$(DZP(B $(DZQ(B $(DZR(B $(DZS(B $(DZT(B $(DZU(B $(DZV(B $(DZW(B $(DZX(B $(DZY(B $(DZZ(B $(DZ[(B $(DZ\(B $(DZ](B $(DZ^(B $(DZ_(B +$(DZ`(B $(DZa(B $(DZb(B $(DZc(B $(DZd(B $(DZe(B $(DZf(B $(DZg(B $(DZh(B $(DZi(B $(DZj(B $(DZk(B $(DZl(B $(DZm(B $(DZn(B $(DZo(B +$(DZp(B $(DZq(B $(DZr(B $(DZs(B $(DZt(B $(DZu(B $(DZv(B $(DZw(B $(DZx(B $(DZy(B $(DZz(B $(DZ{(B $(DZ|(B $(DZ}(B $(DZ~(B + $(D[!(B $(D["(B $(D[#(B $(D[$(B $(D[%(B $(D[&(B $(D['(B $(D[((B $(D[)(B $(D[*(B $(D[+(B $(D[,(B $(D[-(B $(D[.(B $(D[/(B +$(D[0(B $(D[1(B $(D[2(B $(D[3(B $(D[4(B $(D[5(B $(D[6(B $(D[7(B $(D[8(B $(D[9(B $(D[:(B $(D[;(B $(D[<(B $(D[=(B $(D[>(B $(D[?(B +$(D[@(B $(D[A(B $(D[B(B $(D[C(B $(D[D(B $(D[E(B $(D[F(B $(D[G(B $(D[H(B $(D[I(B $(D[J(B $(D[K(B $(D[L(B $(D[M(B $(D[N(B $(D[O(B +$(D[P(B $(D[Q(B $(D[R(B $(D[S(B $(D[T(B $(D[U(B $(D[V(B $(D[W(B $(D[X(B $(D[Y(B $(D[Z(B $(D[[(B $(D[\(B $(D[](B $(D[^(B $(D[_(B +$(D[`(B $(D[a(B $(D[b(B $(D[c(B $(D[d(B $(D[e(B $(D[f(B $(D[g(B $(D[h(B $(D[i(B $(D[j(B $(D[k(B $(D[l(B $(D[m(B $(D[n(B $(D[o(B +$(D[p(B $(D[q(B $(D[r(B $(D[s(B $(D[t(B $(D[u(B $(D[v(B $(D[w(B $(D[x(B $(D[y(B $(D[z(B $(D[{(B $(D[|(B $(D[}(B $(D[~(B + $(D\!(B $(D\"(B $(D\#(B $(D\$(B $(D\%(B $(D\&(B $(D\'(B $(D\((B $(D\)(B $(D\*(B $(D\+(B $(D\,(B $(D\-(B $(D\.(B $(D\/(B +$(D\0(B $(D\1(B $(D\2(B $(D\3(B $(D\4(B $(D\5(B $(D\6(B $(D\7(B $(D\8(B $(D\9(B $(D\:(B $(D\;(B $(D\<(B $(D\=(B $(D\>(B $(D\?(B +$(D\@(B $(D\A(B $(D\B(B $(D\C(B $(D\D(B $(D\E(B $(D\F(B $(D\G(B $(D\H(B $(D\I(B $(D\J(B $(D\K(B $(D\L(B $(D\M(B $(D\N(B $(D\O(B +$(D\P(B $(D\Q(B $(D\R(B $(D\S(B $(D\T(B $(D\U(B $(D\V(B $(D\W(B $(D\X(B $(D\Y(B $(D\Z(B $(D\[(B $(D\\(B $(D\](B $(D\^(B $(D\_(B +$(D\`(B $(D\a(B $(D\b(B $(D\c(B $(D\d(B $(D\e(B $(D\f(B $(D\g(B $(D\h(B $(D\i(B $(D\j(B $(D\k(B $(D\l(B $(D\m(B $(D\n(B $(D\o(B +$(D\p(B $(D\q(B $(D\r(B $(D\s(B $(D\t(B $(D\u(B $(D\v(B $(D\w(B $(D\x(B $(D\y(B $(D\z(B $(D\{(B $(D\|(B $(D\}(B $(D\~(B + $(D]!(B $(D]"(B $(D]#(B $(D]$(B $(D]%(B $(D]&(B $(D]'(B $(D]((B $(D])(B $(D]*(B $(D]+(B $(D],(B $(D]-(B $(D].(B $(D]/(B +$(D]0(B $(D]1(B $(D]2(B $(D]3(B $(D]4(B $(D]5(B $(D]6(B $(D]7(B $(D]8(B $(D]9(B $(D]:(B $(D];(B $(D]<(B $(D]=(B $(D]>(B $(D]?(B +$(D]@(B $(D]A(B $(D]B(B $(D]C(B $(D]D(B $(D]E(B $(D]F(B $(D]G(B $(D]H(B $(D]I(B $(D]J(B $(D]K(B $(D]L(B $(D]M(B $(D]N(B $(D]O(B +$(D]P(B $(D]Q(B $(D]R(B $(D]S(B $(D]T(B $(D]U(B $(D]V(B $(D]W(B $(D]X(B $(D]Y(B $(D]Z(B $(D][(B $(D]\(B $(D]](B $(D]^(B $(D]_(B +$(D]`(B $(D]a(B $(D]b(B $(D]c(B $(D]d(B $(D]e(B $(D]f(B $(D]g(B $(D]h(B $(D]i(B $(D]j(B $(D]k(B $(D]l(B $(D]m(B $(D]n(B $(D]o(B +$(D]p(B $(D]q(B $(D]r(B $(D]s(B $(D]t(B $(D]u(B $(D]v(B $(D]w(B $(D]x(B $(D]y(B $(D]z(B $(D]{(B $(D]|(B $(D]}(B $(D]~(B + $(D^!(B $(D^"(B $(D^#(B $(D^$(B $(D^%(B $(D^&(B $(D^'(B $(D^((B $(D^)(B $(D^*(B $(D^+(B $(D^,(B $(D^-(B $(D^.(B $(D^/(B +$(D^0(B $(D^1(B $(D^2(B $(D^3(B $(D^4(B $(D^5(B $(D^6(B $(D^7(B $(D^8(B $(D^9(B $(D^:(B $(D^;(B $(D^<(B $(D^=(B $(D^>(B $(D^?(B +$(D^@(B $(D^A(B $(D^B(B $(D^C(B $(D^D(B $(D^E(B $(D^F(B $(D^G(B $(D^H(B $(D^I(B $(D^J(B $(D^K(B $(D^L(B $(D^M(B $(D^N(B $(D^O(B +$(D^P(B $(D^Q(B $(D^R(B $(D^S(B $(D^T(B $(D^U(B $(D^V(B $(D^W(B $(D^X(B $(D^Y(B $(D^Z(B $(D^[(B $(D^\(B $(D^](B $(D^^(B $(D^_(B +$(D^`(B $(D^a(B $(D^b(B $(D^c(B $(D^d(B $(D^e(B $(D^f(B $(D^g(B $(D^h(B $(D^i(B $(D^j(B $(D^k(B $(D^l(B $(D^m(B $(D^n(B $(D^o(B +$(D^p(B $(D^q(B $(D^r(B $(D^s(B $(D^t(B $(D^u(B $(D^v(B $(D^w(B $(D^x(B $(D^y(B $(D^z(B $(D^{(B $(D^|(B $(D^}(B $(D^~(B + $(D_!(B $(D_"(B $(D_#(B $(D_$(B $(D_%(B $(D_&(B $(D_'(B $(D_((B $(D_)(B $(D_*(B $(D_+(B $(D_,(B $(D_-(B $(D_.(B $(D_/(B +$(D_0(B $(D_1(B $(D_2(B $(D_3(B $(D_4(B $(D_5(B $(D_6(B $(D_7(B $(D_8(B $(D_9(B $(D_:(B $(D_;(B $(D_<(B $(D_=(B $(D_>(B $(D_?(B +$(D_@(B $(D_A(B $(D_B(B $(D_C(B $(D_D(B $(D_E(B $(D_F(B $(D_G(B $(D_H(B $(D_I(B $(D_J(B $(D_K(B $(D_L(B $(D_M(B $(D_N(B $(D_O(B +$(D_P(B $(D_Q(B $(D_R(B $(D_S(B $(D_T(B $(D_U(B $(D_V(B $(D_W(B $(D_X(B $(D_Y(B $(D_Z(B $(D_[(B $(D_\(B $(D_](B $(D_^(B $(D__(B +$(D_`(B $(D_a(B $(D_b(B $(D_c(B $(D_d(B $(D_e(B $(D_f(B $(D_g(B $(D_h(B $(D_i(B $(D_j(B $(D_k(B $(D_l(B $(D_m(B $(D_n(B $(D_o(B +$(D_p(B $(D_q(B $(D_r(B $(D_s(B $(D_t(B $(D_u(B $(D_v(B $(D_w(B $(D_x(B $(D_y(B $(D_z(B $(D_{(B $(D_|(B $(D_}(B $(D_~(B + $(D`!(B $(D`"(B $(D`#(B $(D`$(B $(D`%(B $(D`&(B $(D`'(B $(D`((B $(D`)(B $(D`*(B $(D`+(B $(D`,(B $(D`-(B $(D`.(B $(D`/(B +$(D`0(B $(D`1(B $(D`2(B $(D`3(B $(D`4(B $(D`5(B $(D`6(B $(D`7(B $(D`8(B $(D`9(B $(D`:(B $(D`;(B $(D`<(B $(D`=(B $(D`>(B $(D`?(B +$(D`@(B $(D`A(B $(D`B(B $(D`C(B $(D`D(B $(D`E(B $(D`F(B $(D`G(B $(D`H(B $(D`I(B $(D`J(B $(D`K(B $(D`L(B $(D`M(B $(D`N(B $(D`O(B +$(D`P(B $(D`Q(B $(D`R(B $(D`S(B $(D`T(B $(D`U(B $(D`V(B $(D`W(B $(D`X(B $(D`Y(B $(D`Z(B $(D`[(B $(D`\(B $(D`](B $(D`^(B $(D`_(B +$(D``(B $(D`a(B $(D`b(B $(D`c(B $(D`d(B $(D`e(B $(D`f(B $(D`g(B $(D`h(B $(D`i(B $(D`j(B $(D`k(B $(D`l(B $(D`m(B $(D`n(B $(D`o(B +$(D`p(B $(D`q(B $(D`r(B $(D`s(B $(D`t(B $(D`u(B $(D`v(B $(D`w(B $(D`x(B $(D`y(B $(D`z(B $(D`{(B $(D`|(B $(D`}(B $(D`~(B + $(Da!(B $(Da"(B $(Da#(B $(Da$(B $(Da%(B $(Da&(B $(Da'(B $(Da((B $(Da)(B $(Da*(B $(Da+(B $(Da,(B $(Da-(B $(Da.(B $(Da/(B +$(Da0(B $(Da1(B $(Da2(B $(Da3(B $(Da4(B $(Da5(B $(Da6(B $(Da7(B $(Da8(B $(Da9(B $(Da:(B $(Da;(B $(Da<(B $(Da=(B $(Da>(B $(Da?(B +$(Da@(B $(DaA(B $(DaB(B $(DaC(B $(DaD(B $(DaE(B $(DaF(B $(DaG(B $(DaH(B $(DaI(B $(DaJ(B $(DaK(B $(DaL(B $(DaM(B $(DaN(B $(DaO(B +$(DaP(B $(DaQ(B $(DaR(B $(DaS(B $(DaT(B $(DaU(B $(DaV(B $(DaW(B $(DaX(B $(DaY(B $(DaZ(B $(Da[(B $(Da\(B $(Da](B $(Da^(B $(Da_(B +$(Da`(B $(Daa(B $(Dab(B $(Dac(B $(Dad(B $(Dae(B $(Daf(B $(Dag(B $(Dah(B $(Dai(B $(Daj(B $(Dak(B $(Dal(B $(Dam(B $(Dan(B $(Dao(B +$(Dap(B $(Daq(B $(Dar(B $(Das(B $(Dat(B $(Dau(B $(Dav(B $(Daw(B $(Dax(B $(Day(B $(Daz(B $(Da{(B $(Da|(B $(Da}(B $(Da~(B + $(Db!(B $(Db"(B $(Db#(B $(Db$(B $(Db%(B $(Db&(B $(Db'(B $(Db((B $(Db)(B $(Db*(B $(Db+(B $(Db,(B $(Db-(B $(Db.(B $(Db/(B +$(Db0(B $(Db1(B $(Db2(B $(Db3(B $(Db4(B $(Db5(B $(Db6(B $(Db7(B $(Db8(B $(Db9(B $(Db:(B $(Db;(B $(Db<(B $(Db=(B $(Db>(B $(Db?(B +$(Db@(B $(DbA(B $(DbB(B $(DbC(B $(DbD(B $(DbE(B $(DbF(B $(DbG(B $(DbH(B $(DbI(B $(DbJ(B $(DbK(B $(DbL(B $(DbM(B $(DbN(B $(DbO(B +$(DbP(B $(DbQ(B $(DbR(B $(DbS(B $(DbT(B $(DbU(B $(DbV(B $(DbW(B $(DbX(B $(DbY(B $(DbZ(B $(Db[(B $(Db\(B $(Db](B $(Db^(B $(Db_(B +$(Db`(B $(Dba(B $(Dbb(B $(Dbc(B $(Dbd(B $(Dbe(B $(Dbf(B $(Dbg(B $(Dbh(B $(Dbi(B $(Dbj(B $(Dbk(B $(Dbl(B $(Dbm(B $(Dbn(B $(Dbo(B +$(Dbp(B $(Dbq(B $(Dbr(B $(Dbs(B $(Dbt(B $(Dbu(B $(Dbv(B $(Dbw(B $(Dbx(B $(Dby(B $(Dbz(B $(Db{(B $(Db|(B $(Db}(B $(Db~(B + $(Dc!(B $(Dc"(B $(Dc#(B $(Dc$(B $(Dc%(B $(Dc&(B $(Dc'(B $(Dc((B $(Dc)(B $(Dc*(B $(Dc+(B $(Dc,(B $(Dc-(B $(Dc.(B $(Dc/(B +$(Dc0(B $(Dc1(B $(Dc2(B $(Dc3(B $(Dc4(B $(Dc5(B $(Dc6(B $(Dc7(B $(Dc8(B $(Dc9(B $(Dc:(B $(Dc;(B $(Dc<(B $(Dc=(B $(Dc>(B $(Dc?(B +$(Dc@(B $(DcA(B $(DcB(B $(DcC(B $(DcD(B $(DcE(B $(DcF(B $(DcG(B $(DcH(B $(DcI(B $(DcJ(B $(DcK(B $(DcL(B $(DcM(B $(DcN(B $(DcO(B +$(DcP(B $(DcQ(B $(DcR(B $(DcS(B $(DcT(B $(DcU(B $(DcV(B $(DcW(B $(DcX(B $(DcY(B $(DcZ(B $(Dc[(B $(Dc\(B $(Dc](B $(Dc^(B $(Dc_(B +$(Dc`(B $(Dca(B $(Dcb(B $(Dcc(B $(Dcd(B $(Dce(B $(Dcf(B $(Dcg(B $(Dch(B $(Dci(B $(Dcj(B $(Dck(B $(Dcl(B $(Dcm(B $(Dcn(B $(Dco(B +$(Dcp(B $(Dcq(B $(Dcr(B $(Dcs(B $(Dct(B $(Dcu(B $(Dcv(B $(Dcw(B $(Dcx(B $(Dcy(B $(Dcz(B $(Dc{(B $(Dc|(B $(Dc}(B $(Dc~(B + $(Dd!(B $(Dd"(B $(Dd#(B $(Dd$(B $(Dd%(B $(Dd&(B $(Dd'(B $(Dd((B $(Dd)(B $(Dd*(B $(Dd+(B $(Dd,(B $(Dd-(B $(Dd.(B $(Dd/(B +$(Dd0(B $(Dd1(B $(Dd2(B $(Dd3(B $(Dd4(B $(Dd5(B $(Dd6(B $(Dd7(B $(Dd8(B $(Dd9(B $(Dd:(B $(Dd;(B $(Dd<(B $(Dd=(B $(Dd>(B $(Dd?(B +$(Dd@(B $(DdA(B $(DdB(B $(DdC(B $(DdD(B $(DdE(B $(DdF(B $(DdG(B $(DdH(B $(DdI(B $(DdJ(B $(DdK(B $(DdL(B $(DdM(B $(DdN(B $(DdO(B +$(DdP(B $(DdQ(B $(DdR(B $(DdS(B $(DdT(B $(DdU(B $(DdV(B $(DdW(B $(DdX(B $(DdY(B $(DdZ(B $(Dd[(B $(Dd\(B $(Dd](B $(Dd^(B $(Dd_(B +$(Dd`(B $(Dda(B $(Ddb(B $(Ddc(B $(Ddd(B $(Dde(B $(Ddf(B $(Ddg(B $(Ddh(B $(Ddi(B $(Ddj(B $(Ddk(B $(Ddl(B $(Ddm(B $(Ddn(B $(Ddo(B +$(Ddp(B $(Ddq(B $(Ddr(B $(Dds(B $(Ddt(B $(Ddu(B $(Ddv(B $(Ddw(B $(Ddx(B $(Ddy(B $(Ddz(B $(Dd{(B $(Dd|(B $(Dd}(B $(Dd~(B + $(De!(B $(De"(B $(De#(B $(De$(B $(De%(B $(De&(B $(De'(B $(De((B $(De)(B $(De*(B $(De+(B $(De,(B $(De-(B $(De.(B $(De/(B +$(De0(B $(De1(B $(De2(B $(De3(B $(De4(B $(De5(B $(De6(B $(De7(B $(De8(B $(De9(B $(De:(B $(De;(B $(De<(B $(De=(B $(De>(B $(De?(B +$(De@(B $(DeA(B $(DeB(B $(DeC(B $(DeD(B $(DeE(B $(DeF(B $(DeG(B $(DeH(B $(DeI(B $(DeJ(B $(DeK(B $(DeL(B $(DeM(B $(DeN(B $(DeO(B +$(DeP(B $(DeQ(B $(DeR(B $(DeS(B $(DeT(B $(DeU(B $(DeV(B $(DeW(B $(DeX(B $(DeY(B $(DeZ(B $(De[(B $(De\(B $(De](B $(De^(B $(De_(B +$(De`(B $(Dea(B $(Deb(B $(Dec(B $(Ded(B $(Dee(B $(Def(B $(Deg(B $(Deh(B $(Dei(B $(Dej(B $(Dek(B $(Del(B $(Dem(B $(Den(B $(Deo(B +$(Dep(B $(Deq(B $(Der(B $(Des(B $(Det(B $(Deu(B $(Dev(B $(Dew(B $(Dex(B $(Dey(B $(Dez(B $(De{(B $(De|(B $(De}(B $(De~(B + $(Df!(B $(Df"(B $(Df#(B $(Df$(B $(Df%(B $(Df&(B $(Df'(B $(Df((B $(Df)(B $(Df*(B $(Df+(B $(Df,(B $(Df-(B $(Df.(B $(Df/(B +$(Df0(B $(Df1(B $(Df2(B $(Df3(B $(Df4(B $(Df5(B $(Df6(B $(Df7(B $(Df8(B $(Df9(B $(Df:(B $(Df;(B $(Df<(B $(Df=(B $(Df>(B $(Df?(B +$(Df@(B $(DfA(B $(DfB(B $(DfC(B $(DfD(B $(DfE(B $(DfF(B $(DfG(B $(DfH(B $(DfI(B $(DfJ(B $(DfK(B $(DfL(B $(DfM(B $(DfN(B $(DfO(B +$(DfP(B $(DfQ(B $(DfR(B $(DfS(B $(DfT(B $(DfU(B $(DfV(B $(DfW(B $(DfX(B $(DfY(B $(DfZ(B $(Df[(B $(Df\(B $(Df](B $(Df^(B $(Df_(B +$(Df`(B $(Dfa(B $(Dfb(B $(Dfc(B $(Dfd(B $(Dfe(B $(Dff(B $(Dfg(B $(Dfh(B $(Dfi(B $(Dfj(B $(Dfk(B $(Dfl(B $(Dfm(B $(Dfn(B $(Dfo(B +$(Dfp(B $(Dfq(B $(Dfr(B $(Dfs(B $(Dft(B $(Dfu(B $(Dfv(B $(Dfw(B $(Dfx(B $(Dfy(B $(Dfz(B $(Df{(B $(Df|(B $(Df}(B $(Df~(B + $(Dg!(B $(Dg"(B $(Dg#(B $(Dg$(B $(Dg%(B $(Dg&(B $(Dg'(B $(Dg((B $(Dg)(B $(Dg*(B $(Dg+(B $(Dg,(B $(Dg-(B $(Dg.(B $(Dg/(B +$(Dg0(B $(Dg1(B $(Dg2(B $(Dg3(B $(Dg4(B $(Dg5(B $(Dg6(B $(Dg7(B $(Dg8(B $(Dg9(B $(Dg:(B $(Dg;(B $(Dg<(B $(Dg=(B $(Dg>(B $(Dg?(B +$(Dg@(B $(DgA(B $(DgB(B $(DgC(B $(DgD(B $(DgE(B $(DgF(B $(DgG(B $(DgH(B $(DgI(B $(DgJ(B $(DgK(B $(DgL(B $(DgM(B $(DgN(B $(DgO(B +$(DgP(B $(DgQ(B $(DgR(B $(DgS(B $(DgT(B $(DgU(B $(DgV(B $(DgW(B $(DgX(B $(DgY(B $(DgZ(B $(Dg[(B $(Dg\(B $(Dg](B $(Dg^(B $(Dg_(B +$(Dg`(B $(Dga(B $(Dgb(B $(Dgc(B $(Dgd(B $(Dge(B $(Dgf(B $(Dgg(B $(Dgh(B $(Dgi(B $(Dgj(B $(Dgk(B $(Dgl(B $(Dgm(B $(Dgn(B $(Dgo(B +$(Dgp(B $(Dgq(B $(Dgr(B $(Dgs(B $(Dgt(B $(Dgu(B $(Dgv(B $(Dgw(B $(Dgx(B $(Dgy(B $(Dgz(B $(Dg{(B $(Dg|(B $(Dg}(B $(Dg~(B + $(Dh!(B $(Dh"(B $(Dh#(B $(Dh$(B $(Dh%(B $(Dh&(B $(Dh'(B $(Dh((B $(Dh)(B $(Dh*(B $(Dh+(B $(Dh,(B $(Dh-(B $(Dh.(B $(Dh/(B +$(Dh0(B $(Dh1(B $(Dh2(B $(Dh3(B $(Dh4(B $(Dh5(B $(Dh6(B $(Dh7(B $(Dh8(B $(Dh9(B $(Dh:(B $(Dh;(B $(Dh<(B $(Dh=(B $(Dh>(B $(Dh?(B +$(Dh@(B $(DhA(B $(DhB(B $(DhC(B $(DhD(B $(DhE(B $(DhF(B $(DhG(B $(DhH(B $(DhI(B $(DhJ(B $(DhK(B $(DhL(B $(DhM(B $(DhN(B $(DhO(B +$(DhP(B $(DhQ(B $(DhR(B $(DhS(B $(DhT(B $(DhU(B $(DhV(B $(DhW(B $(DhX(B $(DhY(B $(DhZ(B $(Dh[(B $(Dh\(B $(Dh](B $(Dh^(B $(Dh_(B +$(Dh`(B $(Dha(B $(Dhb(B $(Dhc(B $(Dhd(B $(Dhe(B $(Dhf(B $(Dhg(B $(Dhh(B $(Dhi(B $(Dhj(B $(Dhk(B $(Dhl(B $(Dhm(B $(Dhn(B $(Dho(B +$(Dhp(B $(Dhq(B $(Dhr(B $(Dhs(B $(Dht(B $(Dhu(B $(Dhv(B $(Dhw(B $(Dhx(B $(Dhy(B $(Dhz(B $(Dh{(B $(Dh|(B $(Dh}(B $(Dh~(B + $(Di!(B $(Di"(B $(Di#(B $(Di$(B $(Di%(B $(Di&(B $(Di'(B $(Di((B $(Di)(B $(Di*(B $(Di+(B $(Di,(B $(Di-(B $(Di.(B $(Di/(B +$(Di0(B $(Di1(B $(Di2(B $(Di3(B $(Di4(B $(Di5(B $(Di6(B $(Di7(B $(Di8(B $(Di9(B $(Di:(B $(Di;(B $(Di<(B $(Di=(B $(Di>(B $(Di?(B +$(Di@(B $(DiA(B $(DiB(B $(DiC(B $(DiD(B $(DiE(B $(DiF(B $(DiG(B $(DiH(B $(DiI(B $(DiJ(B $(DiK(B $(DiL(B $(DiM(B $(DiN(B $(DiO(B +$(DiP(B $(DiQ(B $(DiR(B $(DiS(B $(DiT(B $(DiU(B $(DiV(B $(DiW(B $(DiX(B $(DiY(B $(DiZ(B $(Di[(B $(Di\(B $(Di](B $(Di^(B $(Di_(B +$(Di`(B $(Dia(B $(Dib(B $(Dic(B $(Did(B $(Die(B $(Dif(B $(Dig(B $(Dih(B $(Dii(B $(Dij(B $(Dik(B $(Dil(B $(Dim(B $(Din(B $(Dio(B +$(Dip(B $(Diq(B $(Dir(B $(Dis(B $(Dit(B $(Diu(B $(Div(B $(Diw(B $(Dix(B $(Diy(B $(Diz(B $(Di{(B $(Di|(B $(Di}(B $(Di~(B + $(Dj!(B $(Dj"(B $(Dj#(B $(Dj$(B $(Dj%(B $(Dj&(B $(Dj'(B $(Dj((B $(Dj)(B $(Dj*(B $(Dj+(B $(Dj,(B $(Dj-(B $(Dj.(B $(Dj/(B +$(Dj0(B $(Dj1(B $(Dj2(B $(Dj3(B $(Dj4(B $(Dj5(B $(Dj6(B $(Dj7(B $(Dj8(B $(Dj9(B $(Dj:(B $(Dj;(B $(Dj<(B $(Dj=(B $(Dj>(B $(Dj?(B +$(Dj@(B $(DjA(B $(DjB(B $(DjC(B $(DjD(B $(DjE(B $(DjF(B $(DjG(B $(DjH(B $(DjI(B $(DjJ(B $(DjK(B $(DjL(B $(DjM(B $(DjN(B $(DjO(B +$(DjP(B $(DjQ(B $(DjR(B $(DjS(B $(DjT(B $(DjU(B $(DjV(B $(DjW(B $(DjX(B $(DjY(B $(DjZ(B $(Dj[(B $(Dj\(B $(Dj](B $(Dj^(B $(Dj_(B +$(Dj`(B $(Dja(B $(Djb(B $(Djc(B $(Djd(B $(Dje(B $(Djf(B $(Djg(B $(Djh(B $(Dji(B $(Djj(B $(Djk(B $(Djl(B $(Djm(B $(Djn(B $(Djo(B +$(Djp(B $(Djq(B $(Djr(B $(Djs(B $(Djt(B $(Dju(B $(Djv(B $(Djw(B $(Djx(B $(Djy(B $(Djz(B $(Dj{(B $(Dj|(B $(Dj}(B $(Dj~(B + $(Dk!(B $(Dk"(B $(Dk#(B $(Dk$(B $(Dk%(B $(Dk&(B $(Dk'(B $(Dk((B $(Dk)(B $(Dk*(B $(Dk+(B $(Dk,(B $(Dk-(B $(Dk.(B $(Dk/(B +$(Dk0(B $(Dk1(B $(Dk2(B $(Dk3(B $(Dk4(B $(Dk5(B $(Dk6(B $(Dk7(B $(Dk8(B $(Dk9(B $(Dk:(B $(Dk;(B $(Dk<(B $(Dk=(B $(Dk>(B $(Dk?(B +$(Dk@(B $(DkA(B $(DkB(B $(DkC(B $(DkD(B $(DkE(B $(DkF(B $(DkG(B $(DkH(B $(DkI(B $(DkJ(B $(DkK(B $(DkL(B $(DkM(B $(DkN(B $(DkO(B +$(DkP(B $(DkQ(B $(DkR(B $(DkS(B $(DkT(B $(DkU(B $(DkV(B $(DkW(B $(DkX(B $(DkY(B $(DkZ(B $(Dk[(B $(Dk\(B $(Dk](B $(Dk^(B $(Dk_(B +$(Dk`(B $(Dka(B $(Dkb(B $(Dkc(B $(Dkd(B $(Dke(B $(Dkf(B $(Dkg(B $(Dkh(B $(Dki(B $(Dkj(B $(Dkk(B $(Dkl(B $(Dkm(B $(Dkn(B $(Dko(B +$(Dkp(B $(Dkq(B $(Dkr(B $(Dks(B $(Dkt(B $(Dku(B $(Dkv(B $(Dkw(B $(Dkx(B $(Dky(B $(Dkz(B $(Dk{(B $(Dk|(B $(Dk}(B $(Dk~(B + $(Dl!(B $(Dl"(B $(Dl#(B $(Dl$(B $(Dl%(B $(Dl&(B $(Dl'(B $(Dl((B $(Dl)(B $(Dl*(B $(Dl+(B $(Dl,(B $(Dl-(B $(Dl.(B $(Dl/(B +$(Dl0(B $(Dl1(B $(Dl2(B $(Dl3(B $(Dl4(B $(Dl5(B $(Dl6(B $(Dl7(B $(Dl8(B $(Dl9(B $(Dl:(B $(Dl;(B $(Dl<(B $(Dl=(B $(Dl>(B $(Dl?(B +$(Dl@(B $(DlA(B $(DlB(B $(DlC(B $(DlD(B $(DlE(B $(DlF(B $(DlG(B $(DlH(B $(DlI(B $(DlJ(B $(DlK(B $(DlL(B $(DlM(B $(DlN(B $(DlO(B +$(DlP(B $(DlQ(B $(DlR(B $(DlS(B $(DlT(B $(DlU(B $(DlV(B $(DlW(B $(DlX(B $(DlY(B $(DlZ(B $(Dl[(B $(Dl\(B $(Dl](B $(Dl^(B $(Dl_(B +$(Dl`(B $(Dla(B $(Dlb(B $(Dlc(B $(Dld(B $(Dle(B $(Dlf(B $(Dlg(B $(Dlh(B $(Dli(B $(Dlj(B $(Dlk(B $(Dll(B $(Dlm(B $(Dln(B $(Dlo(B +$(Dlp(B $(Dlq(B $(Dlr(B $(Dls(B $(Dlt(B $(Dlu(B $(Dlv(B $(Dlw(B $(Dlx(B $(Dly(B $(Dlz(B $(Dl{(B $(Dl|(B $(Dl}(B $(Dl~(B + $(Dm!(B $(Dm"(B $(Dm#(B $(Dm$(B $(Dm%(B $(Dm&(B $(Dm'(B $(Dm((B $(Dm)(B $(Dm*(B $(Dm+(B $(Dm,(B $(Dm-(B $(Dm.(B $(Dm/(B +$(Dm0(B $(Dm1(B $(Dm2(B $(Dm3(B $(Dm4(B $(Dm5(B $(Dm6(B $(Dm7(B $(Dm8(B $(Dm9(B $(Dm:(B $(Dm;(B $(Dm<(B $(Dm=(B $(Dm>(B $(Dm?(B +$(Dm@(B $(DmA(B $(DmB(B $(DmC(B $(DmD(B $(DmE(B $(DmF(B $(DmG(B $(DmH(B $(DmI(B $(DmJ(B $(DmK(B $(DmL(B $(DmM(B $(DmN(B $(DmO(B +$(DmP(B $(DmQ(B $(DmR(B $(DmS(B $(DmT(B $(DmU(B $(DmV(B $(DmW(B $(DmX(B $(DmY(B $(DmZ(B $(Dm[(B $(Dm\(B $(Dm](B $(Dm^(B $(Dm_(B +$(Dm`(B $(Dma(B $(Dmb(B $(Dmc(B + $(Ds!(B $(Ds"(B $(Ds#(B $(Ds$(B $(Ds%(B $(Ds&(B $(Ds'(B $(Ds((B $(Ds)(B $(Ds*(B + $(Ds5(B $(Ds6(B $(Ds:(B $(Ds;(B $(Ds<(B $(Ds=(B $(Ds>(B $(Ds?(B +$(Ds@(B $(DsA(B $(DsB(B $(DsC(B $(DsD(B $(DsE(B $(DsF(B $(DsG(B $(DsH(B $(DsI(B $(DsJ(B $(DsK(B $(DsL(B $(DsM(B $(DsO(B +$(DsP(B $(DsQ(B $(DsR(B $(DsS(B $(DsT(B $(DsU(B $(DsV(B $(DsW(B $(DsX(B $(DsY(B $(DsZ(B $(Ds[(B $(Ds\(B $(Ds](B $(Ds^(B $(Ds_(B +$(Ds`(B $(Dsa(B $(Dsb(B $(Dsc(B $(Dsd(B $(Dse(B $(Dsf(B $(Dsg(B $(Dsh(B $(Dsi(B $(Dsj(B $(Dsk(B $(Dsl(B $(Dsm(B $(Dsn(B $(Dso(B +$(Dsp(B $(Dsq(B $(Dsr(B $(Dss(B $(Dst(B $(Dsu(B $(Dsv(B $(Dsw(B $(Dsx(B $(Dsy(B $(Dsz(B $(Ds{(B $(Ds|(B $(Ds}(B $(Ds~(B + $(Dt!(B $(Dt"(B $(Dt$(B $(Dt%(B $(Dt&(B $(Dt'(B $(Dt((B $(Dt)(B $(Dt*(B $(Dt+(B $(Dt,(B + $(Dtc(B + $(Du!(B $(Du"(B $(Du#(B $(Du$(B $(Du%(B $(Du&(B $(Du'(B $(Du((B $(Du)(B $(Du*(B $(Du+(B $(Du,(B $(Du-(B $(Du.(B $(Du/(B +$(Du0(B $(Du1(B $(Du2(B $(Du3(B $(Du4(B $(Du5(B $(Du6(B $(Du7(B $(Du8(B $(Du9(B $(Du:(B $(Du;(B $(Du<(B $(Du=(B $(Du>(B $(Du?(B +$(Du@(B $(DuA(B $(DuB(B $(DuC(B $(DuD(B $(DuE(B $(DuF(B $(DuG(B $(DuH(B $(DuI(B $(DuJ(B $(DuK(B $(DuL(B $(DuM(B $(DuN(B $(DuO(B +$(DuP(B $(DuQ(B $(DuR(B $(DuS(B $(DuT(B $(DuU(B $(DuV(B $(DuW(B $(DuX(B $(DuY(B $(DuZ(B $(Du[(B $(Du\(B $(Du](B $(Du^(B $(Du_(B +$(Du`(B $(Dua(B $(Dub(B $(Duc(B $(Dud(B $(Due(B $(Duf(B $(Dug(B $(Duh(B $(Dui(B $(Duj(B $(Duk(B $(Dul(B $(Dum(B $(Dun(B $(Duo(B +$(Dup(B $(Duq(B $(Dur(B $(Dus(B $(Dut(B $(Duu(B $(Duv(B $(Duw(B $(Dux(B $(Duy(B $(Duz(B $(Du{(B $(Du|(B $(Du}(B $(Du~(B + $(Dv!(B $(Dv"(B $(Dv#(B $(Dv$(B $(Dv%(B $(Dv&(B $(Dv'(B $(Dv((B $(Dv)(B $(Dv*(B $(Dv+(B $(Dv,(B $(Dv-(B $(Dv.(B $(Dv/(B +$(Dv0(B $(Dv1(B $(Dv2(B $(Dv3(B $(Dv4(B $(Dv5(B $(Dv6(B $(Dv7(B $(Dv8(B $(Dv9(B $(Dv:(B $(Dv;(B $(Dv<(B $(Dv=(B $(Dv>(B $(Dv?(B +$(Dv@(B $(DvA(B $(DvB(B $(DvC(B $(DvD(B $(DvE(B $(DvF(B $(DvG(B $(DvH(B $(DvI(B $(DvJ(B $(DvK(B $(DvL(B $(DvM(B $(DvN(B $(DvO(B +$(DvP(B $(DvQ(B $(DvR(B $(DvS(B $(DvT(B $(DvU(B $(DvV(B $(DvW(B $(DvX(B $(DvY(B $(DvZ(B $(Dv[(B $(Dv\(B $(Dv](B $(Dv^(B $(Dv_(B +$(Dv`(B $(Dva(B $(Dvb(B $(Dvc(B $(Dvd(B $(Dve(B $(Dvf(B $(Dvg(B $(Dvh(B $(Dvi(B $(Dvj(B $(Dvk(B $(Dvl(B $(Dvm(B $(Dvn(B $(Dvo(B +$(Dvp(B $(Dvq(B $(Dvr(B $(Dvs(B $(Dvt(B $(Dvu(B $(Dvv(B $(Dvw(B $(Dvx(B $(Dvy(B $(Dvz(B $(Dv{(B $(Dv|(B $(Dv}(B $(Dv~(B + $(Dw!(B $(Dw"(B $(Dw#(B $(Dw$(B $(Dw%(B $(Dw&(B $(Dw'(B $(Dw((B $(Dw)(B $(Dw*(B $(Dw+(B $(Dw,(B $(Dw-(B $(Dw.(B $(Dw/(B +$(Dw0(B $(Dw1(B $(Dw2(B $(Dw3(B $(Dw4(B $(Dw5(B $(Dw6(B $(Dw7(B $(Dw8(B $(Dw9(B $(Dw:(B $(Dw;(B $(Dw<(B $(Dw=(B $(Dw>(B $(Dw?(B +$(Dw@(B $(DwA(B $(DwB(B $(DwC(B $(DwD(B $(DwE(B $(DwF(B $(DwG(B $(DwH(B $(DwI(B $(DwJ(B $(DwK(B $(DwL(B $(DwM(B $(DwN(B $(DwO(B +$(DwP(B $(DwQ(B $(DwR(B $(DwS(B $(DwT(B $(DwU(B $(DwV(B $(DwW(B $(DwX(B $(DwY(B $(DwZ(B $(Dw[(B $(Dw\(B $(Dw](B $(Dw^(B $(Dw_(B +$(Dw`(B $(Dwa(B $(Dwb(B $(Dwc(B $(Dwd(B $(Dwe(B $(Dwf(B $(Dwg(B $(Dwh(B $(Dwi(B $(Dwj(B $(Dwk(B $(Dwl(B $(Dwm(B $(Dwn(B $(Dwo(B +$(Dwp(B $(Dwq(B $(Dwr(B $(Dws(B $(Dwt(B $(Dwu(B $(Dwv(B $(Dww(B $(Dwx(B $(Dwy(B $(Dwz(B $(Dw{(B $(Dw|(B $(Dw}(B $(Dw~(B + $(Dx!(B $(Dx"(B $(Dx#(B $(Dx$(B $(Dx%(B $(Dx&(B $(Dx'(B $(Dx((B $(Dx)(B $(Dx*(B $(Dx+(B $(Dx,(B $(Dx-(B $(Dx.(B $(Dx/(B +$(Dx0(B $(Dx1(B $(Dx2(B $(Dx3(B $(Dx4(B $(Dx5(B $(Dx6(B $(Dx7(B $(Dx8(B $(Dx9(B $(Dx:(B $(Dx;(B $(Dx<(B $(Dx=(B $(Dx>(B $(Dx?(B +$(Dx@(B $(DxA(B $(DxB(B $(DxC(B $(DxD(B $(DxE(B $(DxF(B $(DxG(B $(DxH(B $(DxI(B $(DxJ(B $(DxK(B $(DxL(B $(DxM(B $(DxN(B $(DxO(B +$(DxP(B $(DxQ(B $(DxR(B $(DxS(B $(DxT(B $(DxU(B $(DxV(B $(DxW(B $(DxX(B $(DxY(B $(DxZ(B $(Dx[(B $(Dx\(B $(Dx](B $(Dx^(B $(Dx_(B +$(Dx`(B $(Dxa(B $(Dxb(B $(Dxc(B $(Dxd(B $(Dxe(B $(Dxf(B $(Dxg(B $(Dxh(B $(Dxi(B $(Dxj(B $(Dxk(B $(Dxl(B $(Dxm(B $(Dxn(B $(Dxo(B +$(Dxp(B $(Dxq(B $(Dxr(B $(Dxs(B $(Dxt(B $(Dxu(B $(Dxv(B $(Dxw(B $(Dxx(B $(Dxy(B $(Dxz(B $(Dx{(B $(Dx|(B $(Dx}(B $(Dx~(B + $(Dy!(B $(Dy"(B $(Dy#(B $(Dy$(B $(Dy%(B $(Dy&(B $(Dy'(B $(Dy((B $(Dy)(B $(Dy*(B $(Dy+(B $(Dy,(B $(Dy-(B $(Dy.(B $(Dy/(B +$(Dy0(B $(Dy1(B $(Dy2(B $(Dy3(B $(Dy4(B $(Dy5(B $(Dy6(B $(Dy7(B $(Dy8(B $(Dy9(B $(Dy:(B $(Dy;(B $(Dy<(B $(Dy=(B $(Dy>(B $(Dy?(B +$(Dy@(B $(DyA(B $(DyB(B $(DyC(B $(DyD(B $(DyE(B $(DyF(B $(DyG(B $(DyH(B $(DyI(B $(DyJ(B $(DyK(B $(DyL(B $(DyM(B $(DyN(B $(DyO(B +$(DyP(B $(DyQ(B $(DyR(B $(DyS(B $(DyT(B $(DyU(B $(DyV(B $(DyW(B $(DyX(B $(DyY(B $(DyZ(B $(Dy[(B $(Dy\(B $(Dy](B $(Dy^(B $(Dy_(B +$(Dy`(B $(Dya(B $(Dyb(B $(Dyc(B $(Dyd(B $(Dye(B $(Dyf(B $(Dyg(B $(Dyh(B $(Dyi(B $(Dyj(B $(Dyk(B $(Dyl(B $(Dym(B $(Dyn(B $(Dyo(B +$(Dyp(B $(Dyq(B $(Dyr(B $(Dys(B $(Dyt(B $(Dyu(B $(Dyv(B $(Dyw(B $(Dyx(B $(Dyy(B $(Dyz(B $(Dy{(B $(Dy|(B $(Dy}(B $(Dy~(B + $(Dz!(B $(Dz"(B $(Dz#(B $(Dz$(B $(Dz%(B $(Dz&(B $(Dz'(B $(Dz((B $(Dz)(B $(Dz*(B $(Dz+(B $(Dz,(B $(Dz-(B $(Dz.(B $(Dz/(B +$(Dz0(B $(Dz1(B $(Dz2(B $(Dz3(B $(Dz4(B $(Dz5(B $(Dz6(B $(Dz7(B $(Dz8(B $(Dz9(B $(Dz:(B $(Dz;(B $(Dz<(B $(Dz=(B $(Dz>(B $(Dz?(B +$(Dz@(B $(DzA(B $(DzB(B $(DzC(B $(DzD(B $(DzE(B $(DzF(B $(DzG(B $(DzH(B $(DzI(B $(DzJ(B $(DzK(B $(DzL(B $(DzM(B $(DzN(B $(DzO(B +$(DzP(B $(DzQ(B $(DzR(B $(DzS(B $(DzT(B $(DzU(B $(DzV(B $(DzW(B $(DzX(B $(DzY(B $(DzZ(B $(Dz[(B $(Dz\(B $(Dz](B $(Dz^(B $(Dz_(B +$(Dz`(B $(Dza(B $(Dzb(B $(Dzc(B $(Dzd(B $(Dze(B $(Dzf(B $(Dzg(B $(Dzh(B $(Dzi(B $(Dzj(B $(Dzk(B $(Dzl(B $(Dzm(B $(Dzn(B $(Dzo(B +$(Dzp(B $(Dzq(B $(Dzr(B $(Dzs(B $(Dzt(B $(Dzu(B $(Dzv(B $(Dzw(B $(Dzx(B $(Dzy(B $(Dzz(B $(Dz{(B $(Dz|(B $(Dz}(B $(Dz~(B + $(D{!(B $(D{"(B $(D{#(B $(D{$(B $(D{%(B $(D{&(B $(D{'(B $(D{((B $(D{)(B $(D{*(B $(D{+(B $(D{,(B $(D{-(B $(D{.(B $(D{/(B +$(D{0(B $(D{1(B $(D{2(B $(D{3(B $(D{4(B $(D{5(B $(D{6(B $(D{7(B $(D{8(B $(D{9(B $(D{:(B $(D{;(B $(D{<(B $(D{=(B $(D{>(B $(D{?(B +$(D{@(B $(D{A(B $(D{B(B $(D{C(B $(D{D(B $(D{E(B $(D{F(B $(D{G(B $(D{H(B $(D{I(B $(D{J(B $(D{K(B $(D{L(B $(D{M(B $(D{N(B $(D{O(B +$(D{P(B $(D{Q(B $(D{R(B $(D{S(B $(D{T(B $(D{U(B $(D{V(B $(D{W(B $(D{X(B $(D{Y(B $(D{Z(B $(D{[(B $(D{\(B $(D{](B $(D{^(B $(D{_(B +$(D{`(B $(D{a(B $(D{b(B $(D{c(B $(D{d(B $(D{e(B $(D{f(B $(D{g(B $(D{h(B $(D{i(B $(D{j(B $(D{k(B $(D{l(B $(D{m(B $(D{n(B $(D{o(B +$(D{p(B $(D{q(B $(D{r(B $(D{s(B $(D{t(B $(D{u(B $(D{v(B $(D{w(B $(D{x(B $(D{y(B $(D{z(B $(D{{(B $(D{|(B $(D{}(B $(D{~(B + $(D|!(B $(D|"(B $(D|#(B $(D|$(B $(D|%(B $(D|&(B $(D|'(B $(D|((B $(D|)(B $(D|*(B $(D|+(B $(D|,(B $(D|-(B $(D|.(B $(D|/(B +$(D|0(B $(D|1(B $(D|2(B $(D|3(B $(D|4(B $(D|5(B $(D|6(B $(D|7(B $(D|8(B $(D|9(B $(D|:(B $(D|;(B $(D|<(B $(D|=(B $(D|>(B $(D|?(B +$(D|@(B $(D|A(B $(D|B(B $(D|C(B $(D|D(B $(D|E(B $(D|F(B $(D|G(B $(D|H(B $(D|I(B $(D|J(B $(D|K(B $(D|L(B $(D|M(B $(D|N(B $(D|O(B +$(D|P(B $(D|Q(B $(D|R(B $(D|S(B $(D|T(B $(D|U(B $(D|V(B $(D|W(B $(D|X(B $(D|Y(B $(D|Z(B $(D|[(B $(D|\(B $(D|](B $(D|^(B $(D|_(B +$(D|`(B $(D|a(B $(D|b(B $(D|c(B $(D|d(B $(D|e(B $(D|f(B $(D|g(B $(D|h(B $(D|i(B $(D|j(B $(D|k(B $(D|l(B $(D|m(B $(D|n(B $(D|o(B +$(D|p(B $(D|q(B $(D|r(B $(D|s(B $(D|t(B $(D|u(B $(D|v(B $(D|w(B $(D|x(B $(D|y(B $(D|z(B $(D|{(B $(D||(B $(D|}(B $(D|~(B + $(D}!(B $(D}"(B $(D}#(B $(D}$(B $(D}%(B $(D}&(B $(D}'(B $(D}((B $(D})(B $(D}*(B $(D}+(B $(D},(B $(D}-(B $(D}.(B $(D}/(B +$(D}0(B $(D}1(B $(D}2(B $(D}3(B $(D}4(B $(D}5(B $(D}6(B $(D}7(B $(D}8(B $(D}9(B $(D}:(B $(D};(B $(D}<(B $(D}=(B $(D}>(B $(D}?(B +$(D}@(B $(D}A(B $(D}B(B $(D}C(B $(D}D(B $(D}E(B $(D}F(B $(D}G(B $(D}H(B $(D}I(B $(D}J(B $(D}K(B $(D}L(B $(D}M(B $(D}N(B $(D}O(B +$(D}P(B $(D}Q(B $(D}R(B $(D}S(B $(D}T(B $(D}U(B $(D}V(B $(D}W(B $(D}X(B $(D}Y(B $(D}Z(B $(D}[(B $(D}\(B $(D}](B $(D}^(B $(D}_(B +$(D}`(B $(D}a(B $(D}b(B $(D}c(B $(D}d(B $(D}e(B $(D}f(B $(D}g(B $(D}h(B $(D}i(B $(D}j(B $(D}k(B $(D}l(B $(D}m(B $(D}n(B $(D}o(B +$(D}p(B $(D}q(B $(D}r(B $(D}s(B $(D}t(B $(D}u(B $(D}v(B $(D}w(B $(D}x(B $(D}y(B $(D}z(B $(D}{(B $(D}|(B $(D}}(B $(D}~(B + $(D~!(B $(D~"(B $(D~#(B $(D~$(B $(D~%(B $(D~&(B $(D~'(B $(D~((B $(D~)(B $(D~*(B $(D~+(B $(D~,(B $(D~-(B $(D~.(B $(D~/(B +$(D~0(B $(D~1(B $(D~2(B $(D~3(B $(D~4(B $(D~5(B $(D~6(B $(D~7(B $(D~8(B $(D~9(B $(D~:(B $(D~;(B $(D~<(B $(D~=(B $(D~>(B $(D~?(B +$(D~@(B $(D~A(B $(D~B(B $(D~C(B $(D~D(B $(D~E(B $(D~F(B $(D~G(B $(D~H(B $(D~I(B $(D~J(B $(D~K(B $(D~L(B $(D~M(B $(D~N(B $(D~O(B +$(D~P(B $(D~Q(B $(D~R(B $(D~S(B $(D~T(B $(D~U(B $(D~V(B $(D~W(B $(D~X(B $(D~Y(B $(D~Z(B $(D~[(B $(D~\(B $(D~](B $(D~^(B $(D~_(B +$(D~`(B $(D~a(B $(D~b(B $(D~c(B $(D~d(B $(D~e(B $(D~f(B $(D~g(B $(D~h(B $(D~i(B $(D~j(B $(D~k(B $(D~l(B $(D~m(B $(D~n(B $(D~o(B +$(D~p(B $(D~q(B $(D~r(B $(D~s(B $(D~t(B $(D~u(B $(D~v(B $(D~w(B $(D~x(B $(D~y(B $(D~z(B $(D~{(B $(D~|(B $(D~}(B $(D~~(B diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-snippet b/3rdPartner/libiconv/tests/ISO-2022-JP-snippet new file mode 100644 index 0000000..c8434ce --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-snippet @@ -0,0 +1,2 @@ +Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B + JIS -- $B855$(B $B3+H/(B diff --git a/3rdPartner/libiconv/tests/ISO-2022-JP-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-JP-snippet.UTF-8 new file mode 100644 index 0000000..61d8f72 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-JP-snippet.UTF-8 @@ -0,0 +1,2 @@ +Japanese (日本語) こんにちは + JIS -- 元気 開発 diff --git a/3rdPartner/libiconv/tests/ISO-2022-KR-snippet b/3rdPartner/libiconv/tests/ISO-2022-KR-snippet new file mode 100644 index 0000000..d409fd1 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-KR-snippet @@ -0,0 +1,2 @@ +Korean ($)CGQ1[) >H3gGO<H3gGO=J4O1n + KSC -- $)Cj*Q( KR[! diff --git a/3rdPartner/libiconv/tests/ISO-2022-KR-snippet.UTF-8 b/3rdPartner/libiconv/tests/ISO-2022-KR-snippet.UTF-8 new file mode 100644 index 0000000..0114bad --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-2022-KR-snippet.UTF-8 @@ -0,0 +1,2 @@ +Korean (한글) 안녕하세요, 안녕하십니까 + KSC -- 元氣 開發 diff --git a/3rdPartner/libiconv/tests/ISO-8859-1.TXT b/3rdPartner/libiconv/tests/ISO-8859-1.TXT new file mode 100644 index 0000000..eb60626 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-1.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x00D0 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x00DE +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/ISO-8859-10.TXT b/3rdPartner/libiconv/tests/ISO-8859-10.TXT new file mode 100644 index 0000000..888af65 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-10.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0104 +0xA2 0x0112 +0xA3 0x0122 +0xA4 0x012A +0xA5 0x0128 +0xA6 0x0136 +0xA7 0x00A7 +0xA8 0x013B +0xA9 0x0110 +0xAA 0x0160 +0xAB 0x0166 +0xAC 0x017D +0xAD 0x00AD +0xAE 0x016A +0xAF 0x014A +0xB0 0x00B0 +0xB1 0x0105 +0xB2 0x0113 +0xB3 0x0123 +0xB4 0x012B +0xB5 0x0129 +0xB6 0x0137 +0xB7 0x00B7 +0xB8 0x013C +0xB9 0x0111 +0xBA 0x0161 +0xBB 0x0167 +0xBC 0x017E +0xBD 0x2015 +0xBE 0x016B +0xBF 0x014B +0xC0 0x0100 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x012E +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0118 +0xCB 0x00CB +0xCC 0x0116 +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x00D0 +0xD1 0x0145 +0xD2 0x014C +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x0168 +0xD8 0x00D8 +0xD9 0x0172 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x00DE +0xDF 0x00DF +0xE0 0x0101 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x012F +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x0119 +0xEB 0x00EB +0xEC 0x0117 +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x0146 +0xF2 0x014D +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x0169 +0xF8 0x00F8 +0xF9 0x0173 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x0138 diff --git a/3rdPartner/libiconv/tests/ISO-8859-11.TXT b/3rdPartner/libiconv/tests/ISO-8859-11.TXT new file mode 100644 index 0000000..ecb9bca --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-11.TXT @@ -0,0 +1,248 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x0E4E +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x0E5A +0xFB 0x0E5B diff --git a/3rdPartner/libiconv/tests/ISO-8859-13.TXT b/3rdPartner/libiconv/tests/ISO-8859-13.TXT new file mode 100644 index 0000000..3d21e69 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-13.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x201D +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x201E +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00D8 +0xA9 0x00A9 +0xAA 0x0156 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00C6 +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x201C +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00F8 +0xB9 0x00B9 +0xBA 0x0157 +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00E6 +0xC0 0x0104 +0xC1 0x012E +0xC2 0x0100 +0xC3 0x0106 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x0118 +0xC7 0x0112 +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0179 +0xCB 0x0116 +0xCC 0x0122 +0xCD 0x0136 +0xCE 0x012A +0xCF 0x013B +0xD0 0x0160 +0xD1 0x0143 +0xD2 0x0145 +0xD3 0x00D3 +0xD4 0x014C +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x0172 +0xD9 0x0141 +0xDA 0x015A +0xDB 0x016A +0xDC 0x00DC +0xDD 0x017B +0xDE 0x017D +0xDF 0x00DF +0xE0 0x0105 +0xE1 0x012F +0xE2 0x0101 +0xE3 0x0107 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x0119 +0xE7 0x0113 +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x017A +0xEB 0x0117 +0xEC 0x0123 +0xED 0x0137 +0xEE 0x012B +0xEF 0x013C +0xF0 0x0161 +0xF1 0x0144 +0xF2 0x0146 +0xF3 0x00F3 +0xF4 0x014D +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x0173 +0xF9 0x0142 +0xFA 0x015B +0xFB 0x016B +0xFC 0x00FC +0xFD 0x017C +0xFE 0x017E +0xFF 0x2019 diff --git a/3rdPartner/libiconv/tests/ISO-8859-14.TXT b/3rdPartner/libiconv/tests/ISO-8859-14.TXT new file mode 100644 index 0000000..053b704 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-14.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x1E02 +0xA2 0x1E03 +0xA3 0x00A3 +0xA4 0x010A +0xA5 0x010B +0xA6 0x1E0A +0xA7 0x00A7 +0xA8 0x1E80 +0xA9 0x00A9 +0xAA 0x1E82 +0xAB 0x1E0B +0xAC 0x1EF2 +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x0178 +0xB0 0x1E1E +0xB1 0x1E1F +0xB2 0x0120 +0xB3 0x0121 +0xB4 0x1E40 +0xB5 0x1E41 +0xB6 0x00B6 +0xB7 0x1E56 +0xB8 0x1E81 +0xB9 0x1E57 +0xBA 0x1E83 +0xBB 0x1E60 +0xBC 0x1EF3 +0xBD 0x1E84 +0xBE 0x1E85 +0xBF 0x1E61 +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0174 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x1E6A +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x0176 +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0175 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x1E6B +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x0177 +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/ISO-8859-15.TXT b/3rdPartner/libiconv/tests/ISO-8859-15.TXT new file mode 100644 index 0000000..1fbfbe4 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-15.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x20AC +0xA5 0x00A5 +0xA6 0x0160 +0xA7 0x00A7 +0xA8 0x0161 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x017D +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x017E +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x0152 +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x00D0 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x00DE +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/ISO-8859-16.TXT b/3rdPartner/libiconv/tests/ISO-8859-16.TXT new file mode 100644 index 0000000..9679f4a --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-16.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0104 +0xA2 0x0105 +0xA3 0x0141 +0xA4 0x20AC +0xA5 0x201E +0xA6 0x0160 +0xA7 0x00A7 +0xA8 0x0161 +0xA9 0x00A9 +0xAA 0x0218 +0xAB 0x00AB +0xAC 0x0179 +0xAD 0x00AD +0xAE 0x017A +0xAF 0x017B +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x010C +0xB3 0x0142 +0xB4 0x017D +0xB5 0x201D +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x017E +0xB9 0x010D +0xBA 0x0219 +0xBB 0x00BB +0xBC 0x0152 +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x017C +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x0106 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x0110 +0xD1 0x0143 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x0150 +0xD6 0x00D6 +0xD7 0x015A +0xD8 0x0170 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x0118 +0xDE 0x021A +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x0107 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x0111 +0xF1 0x0144 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x0151 +0xF6 0x00F6 +0xF7 0x015B +0xF8 0x0171 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x0119 +0xFE 0x021B +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/ISO-8859-2.TXT b/3rdPartner/libiconv/tests/ISO-8859-2.TXT new file mode 100644 index 0000000..02b8236 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-2.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0104 +0xA2 0x02D8 +0xA3 0x0141 +0xA4 0x00A4 +0xA5 0x013D +0xA6 0x015A +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x0160 +0xAA 0x015E +0xAB 0x0164 +0xAC 0x0179 +0xAD 0x00AD +0xAE 0x017D +0xAF 0x017B +0xB0 0x00B0 +0xB1 0x0105 +0xB2 0x02DB +0xB3 0x0142 +0xB4 0x00B4 +0xB5 0x013E +0xB6 0x015B +0xB7 0x02C7 +0xB8 0x00B8 +0xB9 0x0161 +0xBA 0x015F +0xBB 0x0165 +0xBC 0x017A +0xBD 0x02DD +0xBE 0x017E +0xBF 0x017C +0xC0 0x0154 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x0102 +0xC4 0x00C4 +0xC5 0x0139 +0xC6 0x0106 +0xC7 0x00C7 +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0118 +0xCB 0x00CB +0xCC 0x011A +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x010E +0xD0 0x0110 +0xD1 0x0143 +0xD2 0x0147 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x0150 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x0158 +0xD9 0x016E +0xDA 0x00DA +0xDB 0x0170 +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x0162 +0xDF 0x00DF +0xE0 0x0155 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x0103 +0xE4 0x00E4 +0xE5 0x013A +0xE6 0x0107 +0xE7 0x00E7 +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x0119 +0xEB 0x00EB +0xEC 0x011B +0xED 0x00ED +0xEE 0x00EE +0xEF 0x010F +0xF0 0x0111 +0xF1 0x0144 +0xF2 0x0148 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x0151 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x0159 +0xF9 0x016F +0xFA 0x00FA +0xFB 0x0171 +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x0163 +0xFF 0x02D9 diff --git a/3rdPartner/libiconv/tests/ISO-8859-3.TXT b/3rdPartner/libiconv/tests/ISO-8859-3.TXT new file mode 100644 index 0000000..cc85bc9 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-3.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0126 +0xA2 0x02D8 +0xA3 0x00A3 +0xA4 0x00A4 +0xA6 0x0124 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x0130 +0xAA 0x015E +0xAB 0x011E +0xAC 0x0134 +0xAD 0x00AD +0xAF 0x017B +0xB0 0x00B0 +0xB1 0x0127 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x0125 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x0131 +0xBA 0x015F +0xBB 0x011F +0xBC 0x0135 +0xBD 0x00BD +0xBF 0x017C +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC4 0x00C4 +0xC5 0x010A +0xC6 0x0108 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x0120 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x011C +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x016C +0xDE 0x015C +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE4 0x00E4 +0xE5 0x010B +0xE6 0x0109 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x0121 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x011D +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x016D +0xFE 0x015D +0xFF 0x02D9 diff --git a/3rdPartner/libiconv/tests/ISO-8859-4.TXT b/3rdPartner/libiconv/tests/ISO-8859-4.TXT new file mode 100644 index 0000000..a7fda4a --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-4.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0104 +0xA2 0x0138 +0xA3 0x0156 +0xA4 0x00A4 +0xA5 0x0128 +0xA6 0x013B +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x0160 +0xAA 0x0112 +0xAB 0x0122 +0xAC 0x0166 +0xAD 0x00AD +0xAE 0x017D +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x0105 +0xB2 0x02DB +0xB3 0x0157 +0xB4 0x00B4 +0xB5 0x0129 +0xB6 0x013C +0xB7 0x02C7 +0xB8 0x00B8 +0xB9 0x0161 +0xBA 0x0113 +0xBB 0x0123 +0xBC 0x0167 +0xBD 0x014A +0xBE 0x017E +0xBF 0x014B +0xC0 0x0100 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x012E +0xC8 0x010C +0xC9 0x00C9 +0xCA 0x0118 +0xCB 0x00CB +0xCC 0x0116 +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x012A +0xD0 0x0110 +0xD1 0x0145 +0xD2 0x014C +0xD3 0x0136 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x0172 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x0168 +0xDE 0x016A +0xDF 0x00DF +0xE0 0x0101 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x012F +0xE8 0x010D +0xE9 0x00E9 +0xEA 0x0119 +0xEB 0x00EB +0xEC 0x0117 +0xED 0x00ED +0xEE 0x00EE +0xEF 0x012B +0xF0 0x0111 +0xF1 0x0146 +0xF2 0x014D +0xF3 0x0137 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x0173 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x0169 +0xFE 0x016B +0xFF 0x02D9 diff --git a/3rdPartner/libiconv/tests/ISO-8859-5.TXT b/3rdPartner/libiconv/tests/ISO-8859-5.TXT new file mode 100644 index 0000000..bab9e7a --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-5.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0401 +0xA2 0x0402 +0xA3 0x0403 +0xA4 0x0404 +0xA5 0x0405 +0xA6 0x0406 +0xA7 0x0407 +0xA8 0x0408 +0xA9 0x0409 +0xAA 0x040A +0xAB 0x040B +0xAC 0x040C +0xAD 0x00AD +0xAE 0x040E +0xAF 0x040F +0xB0 0x0410 +0xB1 0x0411 +0xB2 0x0412 +0xB3 0x0413 +0xB4 0x0414 +0xB5 0x0415 +0xB6 0x0416 +0xB7 0x0417 +0xB8 0x0418 +0xB9 0x0419 +0xBA 0x041A +0xBB 0x041B +0xBC 0x041C +0xBD 0x041D +0xBE 0x041E +0xBF 0x041F +0xC0 0x0420 +0xC1 0x0421 +0xC2 0x0422 +0xC3 0x0423 +0xC4 0x0424 +0xC5 0x0425 +0xC6 0x0426 +0xC7 0x0427 +0xC8 0x0428 +0xC9 0x0429 +0xCA 0x042A +0xCB 0x042B +0xCC 0x042C +0xCD 0x042D +0xCE 0x042E +0xCF 0x042F +0xD0 0x0430 +0xD1 0x0431 +0xD2 0x0432 +0xD3 0x0433 +0xD4 0x0434 +0xD5 0x0435 +0xD6 0x0436 +0xD7 0x0437 +0xD8 0x0438 +0xD9 0x0439 +0xDA 0x043A +0xDB 0x043B +0xDC 0x043C +0xDD 0x043D +0xDE 0x043E +0xDF 0x043F +0xE0 0x0440 +0xE1 0x0441 +0xE2 0x0442 +0xE3 0x0443 +0xE4 0x0444 +0xE5 0x0445 +0xE6 0x0446 +0xE7 0x0447 +0xE8 0x0448 +0xE9 0x0449 +0xEA 0x044A +0xEB 0x044B +0xEC 0x044C +0xED 0x044D +0xEE 0x044E +0xEF 0x044F +0xF0 0x2116 +0xF1 0x0451 +0xF2 0x0452 +0xF3 0x0453 +0xF4 0x0454 +0xF5 0x0455 +0xF6 0x0456 +0xF7 0x0457 +0xF8 0x0458 +0xF9 0x0459 +0xFA 0x045A +0xFB 0x045B +0xFC 0x045C +0xFD 0x00A7 +0xFE 0x045E +0xFF 0x045F diff --git a/3rdPartner/libiconv/tests/ISO-8859-6.TXT b/3rdPartner/libiconv/tests/ISO-8859-6.TXT new file mode 100644 index 0000000..317d439 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-6.TXT @@ -0,0 +1,211 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA4 0x00A4 +0xAC 0x060C +0xAD 0x00AD +0xBB 0x061B +0xBF 0x061F +0xC1 0x0621 +0xC2 0x0622 +0xC3 0x0623 +0xC4 0x0624 +0xC5 0x0625 +0xC6 0x0626 +0xC7 0x0627 +0xC8 0x0628 +0xC9 0x0629 +0xCA 0x062A +0xCB 0x062B +0xCC 0x062C +0xCD 0x062D +0xCE 0x062E +0xCF 0x062F +0xD0 0x0630 +0xD1 0x0631 +0xD2 0x0632 +0xD3 0x0633 +0xD4 0x0634 +0xD5 0x0635 +0xD6 0x0636 +0xD7 0x0637 +0xD8 0x0638 +0xD9 0x0639 +0xDA 0x063A +0xE0 0x0640 +0xE1 0x0641 +0xE2 0x0642 +0xE3 0x0643 +0xE4 0x0644 +0xE5 0x0645 +0xE6 0x0646 +0xE7 0x0647 +0xE8 0x0648 +0xE9 0x0649 +0xEA 0x064A +0xEB 0x064B +0xEC 0x064C +0xED 0x064D +0xEE 0x064E +0xEF 0x064F +0xF0 0x0650 +0xF1 0x0651 +0xF2 0x0652 diff --git a/3rdPartner/libiconv/tests/ISO-8859-7.TXT b/3rdPartner/libiconv/tests/ISO-8859-7.TXT new file mode 100644 index 0000000..2552728 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-7.TXT @@ -0,0 +1,253 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x2018 +0xA2 0x2019 +0xA3 0x00A3 +0xA4 0x20AC +0xA5 0x20AF +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x037A +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAF 0x2015 +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x0384 +0xB5 0x0385 +0xB6 0x0386 +0xB7 0x00B7 +0xB8 0x0388 +0xB9 0x0389 +0xBA 0x038A +0xBB 0x00BB +0xBC 0x038C +0xBD 0x00BD +0xBE 0x038E +0xBF 0x038F +0xC0 0x0390 +0xC1 0x0391 +0xC2 0x0392 +0xC3 0x0393 +0xC4 0x0394 +0xC5 0x0395 +0xC6 0x0396 +0xC7 0x0397 +0xC8 0x0398 +0xC9 0x0399 +0xCA 0x039A +0xCB 0x039B +0xCC 0x039C +0xCD 0x039D +0xCE 0x039E +0xCF 0x039F +0xD0 0x03A0 +0xD1 0x03A1 +0xD3 0x03A3 +0xD4 0x03A4 +0xD5 0x03A5 +0xD6 0x03A6 +0xD7 0x03A7 +0xD8 0x03A8 +0xD9 0x03A9 +0xDA 0x03AA +0xDB 0x03AB +0xDC 0x03AC +0xDD 0x03AD +0xDE 0x03AE +0xDF 0x03AF +0xE0 0x03B0 +0xE1 0x03B1 +0xE2 0x03B2 +0xE3 0x03B3 +0xE4 0x03B4 +0xE5 0x03B5 +0xE6 0x03B6 +0xE7 0x03B7 +0xE8 0x03B8 +0xE9 0x03B9 +0xEA 0x03BA +0xEB 0x03BB +0xEC 0x03BC +0xED 0x03BD +0xEE 0x03BE +0xEF 0x03BF +0xF0 0x03C0 +0xF1 0x03C1 +0xF2 0x03C2 +0xF3 0x03C3 +0xF4 0x03C4 +0xF5 0x03C5 +0xF6 0x03C6 +0xF7 0x03C7 +0xF8 0x03C8 +0xF9 0x03C9 +0xFA 0x03CA +0xFB 0x03CB +0xFC 0x03CC +0xFD 0x03CD +0xFE 0x03CE diff --git a/3rdPartner/libiconv/tests/ISO-8859-8.TXT b/3rdPartner/libiconv/tests/ISO-8859-8.TXT new file mode 100644 index 0000000..b325e57 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-8.TXT @@ -0,0 +1,220 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00D7 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00F7 +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xDF 0x2017 +0xE0 0x05D0 +0xE1 0x05D1 +0xE2 0x05D2 +0xE3 0x05D3 +0xE4 0x05D4 +0xE5 0x05D5 +0xE6 0x05D6 +0xE7 0x05D7 +0xE8 0x05D8 +0xE9 0x05D9 +0xEA 0x05DA +0xEB 0x05DB +0xEC 0x05DC +0xED 0x05DD +0xEE 0x05DE +0xEF 0x05DF +0xF0 0x05E0 +0xF1 0x05E1 +0xF2 0x05E2 +0xF3 0x05E3 +0xF4 0x05E4 +0xF5 0x05E5 +0xF6 0x05E6 +0xF7 0x05E7 +0xF8 0x05E8 +0xF9 0x05E9 +0xFA 0x05EA +0xFD 0x200E +0xFE 0x200F diff --git a/3rdPartner/libiconv/tests/ISO-8859-9.TXT b/3rdPartner/libiconv/tests/ISO-8859-9.TXT new file mode 100644 index 0000000..f4905fd --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-8859-9.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x011E +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x0130 +0xDE 0x015E +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x011F +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x0131 +0xFE 0x015F +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/ISO-IR-165.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/ISO-IR-165.IRREVERSIBLE.TXT new file mode 100644 index 0000000..6d118d9 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-IR-165.IRREVERSIBLE.TXT @@ -0,0 +1,34 @@ +0x2821 0x1FB1 +0x2822 0x03AC +0x2823 0x1FB0 +0x2824 0x1F70 +0x2825 0x0113 +0x2826 0x00E9 +0x2827 0x011B +0x2828 0x00E8 +0x2829 0x012B +0x282A 0x00ED +0x282B 0x01D0 +0x282C 0x00EC +0x282D 0x014D +0x282E 0x00F3 +0x282F 0x01D2 +0x2830 0x00F2 +0x2831 0x016B +0x2832 0x00FA +0x2833 0x01D4 +0x2834 0x00F9 +0x2835 0x01D6 +0x2836 0x01D8 +0x2837 0x01DA +0x2838 0x01DC +0x2839 0x00FC +0x283A 0x00EA +0x283B 0x03B1 +0x283C 0x1E3F +0x283D 0x0144 +0x283E 0x0148 +0x283F 0x01F9 +0x2840 0xFF47 +0x2B3B 0x03B1 +0x2B40 0xFF47 diff --git a/3rdPartner/libiconv/tests/ISO-IR-165.TXT b/3rdPartner/libiconv/tests/ISO-IR-165.TXT new file mode 100644 index 0000000..5d5d1b6 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO-IR-165.TXT @@ -0,0 +1,8421 @@ +0x2121 0x3000 +0x2122 0x3001 +0x2123 0x3002 +0x2124 0x30FB +0x2125 0x02C9 +0x2126 0x02C7 +0x2127 0x00A8 +0x2128 0x3003 +0x2129 0x3005 +0x212A 0x2015 +0x212B 0xFF5E +0x212C 0x2016 +0x212D 0x2026 +0x212E 0x2018 +0x212F 0x2019 +0x2130 0x201C +0x2131 0x201D +0x2132 0x3014 +0x2133 0x3015 +0x2134 0x3008 +0x2135 0x3009 +0x2136 0x300A +0x2137 0x300B +0x2138 0x300C +0x2139 0x300D +0x213A 0x300E +0x213B 0x300F +0x213C 0x3016 +0x213D 0x3017 +0x213E 0x3010 +0x213F 0x3011 +0x2140 0x00B1 +0x2141 0x00D7 +0x2142 0x00F7 +0x2143 0x2236 +0x2144 0x2227 +0x2145 0x2228 +0x2146 0x2211 +0x2147 0x220F +0x2148 0x222A +0x2149 0x2229 +0x214A 0x2208 +0x214B 0x2237 +0x214C 0x221A +0x214D 0x22A5 +0x214E 0x2225 +0x214F 0x2220 +0x2150 0x2312 +0x2151 0x2299 +0x2152 0x222B +0x2153 0x222E +0x2154 0x2261 +0x2155 0x224C +0x2156 0x2248 +0x2157 0x223D +0x2158 0x221D +0x2159 0x2260 +0x215A 0x226E +0x215B 0x226F +0x215C 0x2264 +0x215D 0x2265 +0x215E 0x221E +0x215F 0x2235 +0x2160 0x2234 +0x2161 0x2642 +0x2162 0x2640 +0x2163 0x00B0 +0x2164 0x2032 +0x2165 0x2033 +0x2166 0x2103 +0x2167 0xFF04 +0x2168 0x00A4 +0x2169 0xFFE0 +0x216A 0xFFE1 +0x216B 0x2030 +0x216C 0x00A7 +0x216D 0x2116 +0x216E 0x2606 +0x216F 0x2605 +0x2170 0x25CB +0x2171 0x25CF +0x2172 0x25CE +0x2173 0x25C7 +0x2174 0x25C6 +0x2175 0x25A1 +0x2176 0x25A0 +0x2177 0x25B3 +0x2178 0x25B2 +0x2179 0x203B +0x217A 0x2192 +0x217B 0x2190 +0x217C 0x2191 +0x217D 0x2193 +0x217E 0x3013 +0x2231 0x2488 +0x2232 0x2489 +0x2233 0x248A +0x2234 0x248B +0x2235 0x248C +0x2236 0x248D +0x2237 0x248E +0x2238 0x248F +0x2239 0x2490 +0x223A 0x2491 +0x223B 0x2492 +0x223C 0x2493 +0x223D 0x2494 +0x223E 0x2495 +0x223F 0x2496 +0x2240 0x2497 +0x2241 0x2498 +0x2242 0x2499 +0x2243 0x249A +0x2244 0x249B +0x2245 0x2474 +0x2246 0x2475 +0x2247 0x2476 +0x2248 0x2477 +0x2249 0x2478 +0x224A 0x2479 +0x224B 0x247A +0x224C 0x247B +0x224D 0x247C +0x224E 0x247D +0x224F 0x247E +0x2250 0x247F +0x2251 0x2480 +0x2252 0x2481 +0x2253 0x2482 +0x2254 0x2483 +0x2255 0x2484 +0x2256 0x2485 +0x2257 0x2486 +0x2258 0x2487 +0x2259 0x2460 +0x225A 0x2461 +0x225B 0x2462 +0x225C 0x2463 +0x225D 0x2464 +0x225E 0x2465 +0x225F 0x2466 +0x2260 0x2467 +0x2261 0x2468 +0x2262 0x2469 +0x2265 0x3220 +0x2266 0x3221 +0x2267 0x3222 +0x2268 0x3223 +0x2269 0x3224 +0x226A 0x3225 +0x226B 0x3226 +0x226C 0x3227 +0x226D 0x3228 +0x226E 0x3229 +0x2271 0x2160 +0x2272 0x2161 +0x2273 0x2162 +0x2274 0x2163 +0x2275 0x2164 +0x2276 0x2165 +0x2277 0x2166 +0x2278 0x2167 +0x2279 0x2168 +0x227A 0x2169 +0x227B 0x216A +0x227C 0x216B +0x2321 0xFF01 +0x2322 0xFF02 +0x2323 0xFF03 +0x2324 0xFFE5 +0x2325 0xFF05 +0x2326 0xFF06 +0x2327 0xFF07 +0x2328 0xFF08 +0x2329 0xFF09 +0x232A 0xFF0A +0x232B 0xFF0B +0x232C 0xFF0C +0x232D 0xFF0D +0x232E 0xFF0E +0x232F 0xFF0F +0x2330 0xFF10 +0x2331 0xFF11 +0x2332 0xFF12 +0x2333 0xFF13 +0x2334 0xFF14 +0x2335 0xFF15 +0x2336 0xFF16 +0x2337 0xFF17 +0x2338 0xFF18 +0x2339 0xFF19 +0x233A 0xFF1A +0x233B 0xFF1B +0x233C 0xFF1C +0x233D 0xFF1D +0x233E 0xFF1E +0x233F 0xFF1F +0x2340 0xFF20 +0x2341 0xFF21 +0x2342 0xFF22 +0x2343 0xFF23 +0x2344 0xFF24 +0x2345 0xFF25 +0x2346 0xFF26 +0x2347 0xFF27 +0x2348 0xFF28 +0x2349 0xFF29 +0x234A 0xFF2A +0x234B 0xFF2B +0x234C 0xFF2C +0x234D 0xFF2D +0x234E 0xFF2E +0x234F 0xFF2F +0x2350 0xFF30 +0x2351 0xFF31 +0x2352 0xFF32 +0x2353 0xFF33 +0x2354 0xFF34 +0x2355 0xFF35 +0x2356 0xFF36 +0x2357 0xFF37 +0x2358 0xFF38 +0x2359 0xFF39 +0x235A 0xFF3A +0x235B 0xFF3B +0x235C 0xFF3C +0x235D 0xFF3D +0x235E 0xFF3E +0x235F 0xFF3F +0x2360 0xFF40 +0x2361 0xFF41 +0x2362 0xFF42 +0x2363 0xFF43 +0x2364 0xFF44 +0x2365 0xFF45 +0x2366 0xFF46 +0x2367 0xFF47 +0x2368 0xFF48 +0x2369 0xFF49 +0x236A 0xFF4A +0x236B 0xFF4B +0x236C 0xFF4C +0x236D 0xFF4D +0x236E 0xFF4E +0x236F 0xFF4F +0x2370 0xFF50 +0x2371 0xFF51 +0x2372 0xFF52 +0x2373 0xFF53 +0x2374 0xFF54 +0x2375 0xFF55 +0x2376 0xFF56 +0x2377 0xFF57 +0x2378 0xFF58 +0x2379 0xFF59 +0x237A 0xFF5A +0x237B 0xFF5B +0x237C 0xFF5C +0x237D 0xFF5D +0x237E 0xFFE3 +0x2421 0x3041 +0x2422 0x3042 +0x2423 0x3043 +0x2424 0x3044 +0x2425 0x3045 +0x2426 0x3046 +0x2427 0x3047 +0x2428 0x3048 +0x2429 0x3049 +0x242A 0x304A +0x242B 0x304B +0x242C 0x304C +0x242D 0x304D +0x242E 0x304E +0x242F 0x304F +0x2430 0x3050 +0x2431 0x3051 +0x2432 0x3052 +0x2433 0x3053 +0x2434 0x3054 +0x2435 0x3055 +0x2436 0x3056 +0x2437 0x3057 +0x2438 0x3058 +0x2439 0x3059 +0x243A 0x305A +0x243B 0x305B +0x243C 0x305C +0x243D 0x305D +0x243E 0x305E +0x243F 0x305F +0x2440 0x3060 +0x2441 0x3061 +0x2442 0x3062 +0x2443 0x3063 +0x2444 0x3064 +0x2445 0x3065 +0x2446 0x3066 +0x2447 0x3067 +0x2448 0x3068 +0x2449 0x3069 +0x244A 0x306A +0x244B 0x306B +0x244C 0x306C +0x244D 0x306D +0x244E 0x306E +0x244F 0x306F +0x2450 0x3070 +0x2451 0x3071 +0x2452 0x3072 +0x2453 0x3073 +0x2454 0x3074 +0x2455 0x3075 +0x2456 0x3076 +0x2457 0x3077 +0x2458 0x3078 +0x2459 0x3079 +0x245A 0x307A +0x245B 0x307B +0x245C 0x307C +0x245D 0x307D +0x245E 0x307E +0x245F 0x307F +0x2460 0x3080 +0x2461 0x3081 +0x2462 0x3082 +0x2463 0x3083 +0x2464 0x3084 +0x2465 0x3085 +0x2466 0x3086 +0x2467 0x3087 +0x2468 0x3088 +0x2469 0x3089 +0x246A 0x308A +0x246B 0x308B +0x246C 0x308C +0x246D 0x308D +0x246E 0x308E +0x246F 0x308F +0x2470 0x3090 +0x2471 0x3091 +0x2472 0x3092 +0x2473 0x3093 +0x2521 0x30A1 +0x2522 0x30A2 +0x2523 0x30A3 +0x2524 0x30A4 +0x2525 0x30A5 +0x2526 0x30A6 +0x2527 0x30A7 +0x2528 0x30A8 +0x2529 0x30A9 +0x252A 0x30AA +0x252B 0x30AB +0x252C 0x30AC +0x252D 0x30AD +0x252E 0x30AE +0x252F 0x30AF +0x2530 0x30B0 +0x2531 0x30B1 +0x2532 0x30B2 +0x2533 0x30B3 +0x2534 0x30B4 +0x2535 0x30B5 +0x2536 0x30B6 +0x2537 0x30B7 +0x2538 0x30B8 +0x2539 0x30B9 +0x253A 0x30BA +0x253B 0x30BB +0x253C 0x30BC +0x253D 0x30BD +0x253E 0x30BE +0x253F 0x30BF +0x2540 0x30C0 +0x2541 0x30C1 +0x2542 0x30C2 +0x2543 0x30C3 +0x2544 0x30C4 +0x2545 0x30C5 +0x2546 0x30C6 +0x2547 0x30C7 +0x2548 0x30C8 +0x2549 0x30C9 +0x254A 0x30CA +0x254B 0x30CB +0x254C 0x30CC +0x254D 0x30CD +0x254E 0x30CE +0x254F 0x30CF +0x2550 0x30D0 +0x2551 0x30D1 +0x2552 0x30D2 +0x2553 0x30D3 +0x2554 0x30D4 +0x2555 0x30D5 +0x2556 0x30D6 +0x2557 0x30D7 +0x2558 0x30D8 +0x2559 0x30D9 +0x255A 0x30DA +0x255B 0x30DB +0x255C 0x30DC +0x255D 0x30DD +0x255E 0x30DE +0x255F 0x30DF +0x2560 0x30E0 +0x2561 0x30E1 +0x2562 0x30E2 +0x2563 0x30E3 +0x2564 0x30E4 +0x2565 0x30E5 +0x2566 0x30E6 +0x2567 0x30E7 +0x2568 0x30E8 +0x2569 0x30E9 +0x256A 0x30EA +0x256B 0x30EB +0x256C 0x30EC +0x256D 0x30ED +0x256E 0x30EE +0x256F 0x30EF +0x2570 0x30F0 +0x2571 0x30F1 +0x2572 0x30F2 +0x2573 0x30F3 +0x2574 0x30F4 +0x2575 0x30F5 +0x2576 0x30F6 +0x2621 0x0391 +0x2622 0x0392 +0x2623 0x0393 +0x2624 0x0394 +0x2625 0x0395 +0x2626 0x0396 +0x2627 0x0397 +0x2628 0x0398 +0x2629 0x0399 +0x262A 0x039A +0x262B 0x039B +0x262C 0x039C +0x262D 0x039D +0x262E 0x039E +0x262F 0x039F +0x2630 0x03A0 +0x2631 0x03A1 +0x2632 0x03A3 +0x2633 0x03A4 +0x2634 0x03A5 +0x2635 0x03A6 +0x2636 0x03A7 +0x2637 0x03A8 +0x2638 0x03A9 +0x2641 0x03B1 +0x2642 0x03B2 +0x2643 0x03B3 +0x2644 0x03B4 +0x2645 0x03B5 +0x2646 0x03B6 +0x2647 0x03B7 +0x2648 0x03B8 +0x2649 0x03B9 +0x264A 0x03BA +0x264B 0x03BB +0x264C 0x03BC +0x264D 0x03BD +0x264E 0x03BE +0x264F 0x03BF +0x2650 0x03C0 +0x2651 0x03C1 +0x2652 0x03C3 +0x2653 0x03C4 +0x2654 0x03C5 +0x2655 0x03C6 +0x2656 0x03C7 +0x2657 0x03C8 +0x2658 0x03C9 +0x2721 0x0410 +0x2722 0x0411 +0x2723 0x0412 +0x2724 0x0413 +0x2725 0x0414 +0x2726 0x0415 +0x2727 0x0401 +0x2728 0x0416 +0x2729 0x0417 +0x272A 0x0418 +0x272B 0x0419 +0x272C 0x041A +0x272D 0x041B +0x272E 0x041C +0x272F 0x041D +0x2730 0x041E +0x2731 0x041F +0x2732 0x0420 +0x2733 0x0421 +0x2734 0x0422 +0x2735 0x0423 +0x2736 0x0424 +0x2737 0x0425 +0x2738 0x0426 +0x2739 0x0427 +0x273A 0x0428 +0x273B 0x0429 +0x273C 0x042A +0x273D 0x042B +0x273E 0x042C +0x273F 0x042D +0x2740 0x042E +0x2741 0x042F +0x2751 0x0430 +0x2752 0x0431 +0x2753 0x0432 +0x2754 0x0433 +0x2755 0x0434 +0x2756 0x0435 +0x2757 0x0451 +0x2758 0x0436 +0x2759 0x0437 +0x275A 0x0438 +0x275B 0x0439 +0x275C 0x043A +0x275D 0x043B +0x275E 0x043C +0x275F 0x043D +0x2760 0x043E +0x2761 0x043F +0x2762 0x0440 +0x2763 0x0441 +0x2764 0x0442 +0x2765 0x0443 +0x2766 0x0444 +0x2767 0x0445 +0x2768 0x0446 +0x2769 0x0447 +0x276A 0x0448 +0x276B 0x0449 +0x276C 0x044A +0x276D 0x044B +0x276E 0x044C +0x276F 0x044D +0x2770 0x044E +0x2771 0x044F +0x2821 0x1FB1 +0x2822 0x03AC +0x2823 0x1FB0 +0x2824 0x1F70 +0x2825 0x0113 +0x2826 0x00E9 +0x2827 0x011B +0x2828 0x00E8 +0x2829 0x012B +0x282A 0x00ED +0x282B 0x01D0 +0x282C 0x00EC +0x282D 0x014D +0x282E 0x00F3 +0x282F 0x01D2 +0x2830 0x00F2 +0x2831 0x016B +0x2832 0x00FA +0x2833 0x01D4 +0x2834 0x00F9 +0x2835 0x01D6 +0x2836 0x01D8 +0x2837 0x01DA +0x2838 0x01DC +0x2839 0x00FC +0x283A 0x00EA +0x283B 0x03B1 +0x283C 0x1E3F +0x283D 0x0144 +0x283E 0x0148 +0x283F 0x01F9 +0x2840 0xFF47 +0x2845 0x3105 +0x2846 0x3106 +0x2847 0x3107 +0x2848 0x3108 +0x2849 0x3109 +0x284A 0x310A +0x284B 0x310B +0x284C 0x310C +0x284D 0x310D +0x284E 0x310E +0x284F 0x310F +0x2850 0x3110 +0x2851 0x3111 +0x2852 0x3112 +0x2853 0x3113 +0x2854 0x3114 +0x2855 0x3115 +0x2856 0x3116 +0x2857 0x3117 +0x2858 0x3118 +0x2859 0x3119 +0x285A 0x311A +0x285B 0x311B +0x285C 0x311C +0x285D 0x311D +0x285E 0x311E +0x285F 0x311F +0x2860 0x3120 +0x2861 0x3121 +0x2862 0x3122 +0x2863 0x3123 +0x2864 0x3124 +0x2865 0x3125 +0x2866 0x3126 +0x2867 0x3127 +0x2868 0x3128 +0x2869 0x3129 +0x2924 0x2500 +0x2925 0x2501 +0x2926 0x2502 +0x2927 0x2503 +0x2928 0x2504 +0x2929 0x2505 +0x292A 0x2506 +0x292B 0x2507 +0x292C 0x2508 +0x292D 0x2509 +0x292E 0x250A +0x292F 0x250B +0x2930 0x250C +0x2931 0x250D +0x2932 0x250E +0x2933 0x250F +0x2934 0x2510 +0x2935 0x2511 +0x2936 0x2512 +0x2937 0x2513 +0x2938 0x2514 +0x2939 0x2515 +0x293A 0x2516 +0x293B 0x2517 +0x293C 0x2518 +0x293D 0x2519 +0x293E 0x251A +0x293F 0x251B +0x2940 0x251C +0x2941 0x251D +0x2942 0x251E +0x2943 0x251F +0x2944 0x2520 +0x2945 0x2521 +0x2946 0x2522 +0x2947 0x2523 +0x2948 0x2524 +0x2949 0x2525 +0x294A 0x2526 +0x294B 0x2527 +0x294C 0x2528 +0x294D 0x2529 +0x294E 0x252A +0x294F 0x252B +0x2950 0x252C +0x2951 0x252D +0x2952 0x252E +0x2953 0x252F +0x2954 0x2530 +0x2955 0x2531 +0x2956 0x2532 +0x2957 0x2533 +0x2958 0x2534 +0x2959 0x2535 +0x295A 0x2536 +0x295B 0x2537 +0x295C 0x2538 +0x295D 0x2539 +0x295E 0x253A +0x295F 0x253B +0x2960 0x253C +0x2961 0x253D +0x2962 0x253E +0x2963 0x253F +0x2964 0x2540 +0x2965 0x2541 +0x2966 0x2542 +0x2967 0x2543 +0x2968 0x2544 +0x2969 0x2545 +0x296A 0x2546 +0x296B 0x2547 +0x296C 0x2548 +0x296D 0x2549 +0x296E 0x254A +0x296F 0x254B +0x2A21 0x0021 +0x2A22 0x0022 +0x2A23 0x0023 +0x2A24 0x00A5 +0x2A25 0x0025 +0x2A26 0x0026 +0x2A27 0x0027 +0x2A28 0x0028 +0x2A29 0x0029 +0x2A2A 0x002A +0x2A2B 0x002B +0x2A2C 0x002C +0x2A2D 0x002D +0x2A2E 0x002E +0x2A2F 0x002F +0x2A30 0x0030 +0x2A31 0x0031 +0x2A32 0x0032 +0x2A33 0x0033 +0x2A34 0x0034 +0x2A35 0x0035 +0x2A36 0x0036 +0x2A37 0x0037 +0x2A38 0x0038 +0x2A39 0x0039 +0x2A3A 0x003A +0x2A3B 0x003B +0x2A3C 0x003C +0x2A3D 0x003D +0x2A3E 0x003E +0x2A3F 0x003F +0x2A40 0x0040 +0x2A41 0x0041 +0x2A42 0x0042 +0x2A43 0x0043 +0x2A44 0x0044 +0x2A45 0x0045 +0x2A46 0x0046 +0x2A47 0x0047 +0x2A48 0x0048 +0x2A49 0x0049 +0x2A4A 0x004A +0x2A4B 0x004B +0x2A4C 0x004C +0x2A4D 0x004D +0x2A4E 0x004E +0x2A4F 0x004F +0x2A50 0x0050 +0x2A51 0x0051 +0x2A52 0x0052 +0x2A53 0x0053 +0x2A54 0x0054 +0x2A55 0x0055 +0x2A56 0x0056 +0x2A57 0x0057 +0x2A58 0x0058 +0x2A59 0x0059 +0x2A5A 0x005A +0x2A5B 0x005B +0x2A5C 0x005C +0x2A5D 0x005D +0x2A5E 0x005E +0x2A5F 0x005F +0x2A60 0x0060 +0x2A61 0x0061 +0x2A62 0x0062 +0x2A63 0x0063 +0x2A64 0x0064 +0x2A65 0x0065 +0x2A66 0x0066 +0x2A67 0x0067 +0x2A68 0x0068 +0x2A69 0x0069 +0x2A6A 0x006A +0x2A6B 0x006B +0x2A6C 0x006C +0x2A6D 0x006D +0x2A6E 0x006E +0x2A6F 0x006F +0x2A70 0x0070 +0x2A71 0x0071 +0x2A72 0x0072 +0x2A73 0x0073 +0x2A74 0x0074 +0x2A75 0x0075 +0x2A76 0x0076 +0x2A77 0x0077 +0x2A78 0x0078 +0x2A79 0x0079 +0x2A7A 0x007A +0x2A7B 0x007B +0x2A7C 0x007C +0x2A7D 0x007D +0x2A7E 0x203E +0x2B21 0x1FB1 +0x2B22 0x03AC +0x2B23 0x1FB0 +0x2B24 0x1F70 +0x2B25 0x0113 +0x2B26 0x00E9 +0x2B27 0x011B +0x2B28 0x00E8 +0x2B29 0x012B +0x2B2A 0x00ED +0x2B2B 0x01D0 +0x2B2C 0x00EC +0x2B2D 0x014D +0x2B2E 0x00F3 +0x2B2F 0x01D2 +0x2B30 0x00F2 +0x2B31 0x016B +0x2B32 0x00FA +0x2B33 0x01D4 +0x2B34 0x00F9 +0x2B35 0x01D6 +0x2B36 0x01D8 +0x2B37 0x01DA +0x2B38 0x01DC +0x2B39 0x00FC +0x2B3A 0x00EA +0x2B3B 0x03B1 +0x2B3C 0x1E3F +0x2B3D 0x0144 +0x2B3E 0x0148 +0x2B3F 0x01F9 +0x2B40 0xFF47 +0x2C21 0x53BE +0x2C22 0x4EB8 +0x2C23 0x4F3E +0x2C24 0x501E +0x2C25 0x50C7 +0x2C26 0x9118 +0x2C27 0x6C98 +0x2C28 0x6CDC +0x2C29 0x6CC3 +0x2C2A 0x6E5D +0x2C2B 0x6EA6 +0x2C2C 0x6EEB +0x2C2D 0x6FA5 +0x2C2E 0x6165 +0x2C2F 0x5EA4 +0x2C30 0x9618 +0x2C31 0x5848 +0x2C32 0x8453 +0x2C33 0x7CF5 +0x2C34 0x5F07 +0x2C35 0x6294 +0x2C36 0x647D +0x2C37 0x725A +0x2C38 0x5574 +0x2C39 0x55A4 +0x2C3A 0x5640 +0x2C3B 0x5684 +0x2C3C 0x5D1F +0x2C3D 0x72C9 +0x2C3E 0x998C +0x2C3F 0x59DE +0x2C40 0x59FD +0x2C41 0x5A5E +0x2C42 0x7EBB +0x2C43 0x7EE4 +0x2C44 0x7EF9 +0x2C45 0x9A99 +0x2C46 0x71CF +0x2C47 0x6245 +0x2C48 0x624A +0x2C49 0x797C +0x2C4A 0x739A +0x2C4B 0x742B +0x2C4C 0x7488 +0x2C4D 0x74AA +0x2C4E 0x74D8 +0x2C4F 0x6767 +0x2C50 0x6AB5 +0x2C51 0x71CA +0x2C52 0x6BA3 +0x2C53 0x8F80 +0x2C54 0x8F92 +0x2C55 0x8D5F +0x2C56 0x9B36 +0x2C57 0x72A8 +0x2C58 0x87A3 +0x2C59 0x8152 +0x2C5A 0x6B38 +0x2C5B 0x98D0 +0x2C5C 0x8897 +0x2C5D 0x88AF +0x2C5E 0x8955 +0x2C5F 0x770A +0x2C60 0x94DA +0x2C61 0x955A +0x2C62 0x9560 +0x2C63 0x9E24 +0x2C64 0x9E40 +0x2C65 0x9E50 +0x2C66 0x9E5D +0x2C67 0x9E60 +0x2C68 0x870E +0x2C69 0x7B5C +0x2C6A 0x7FD9 +0x2C6B 0x7FEF +0x2C6C 0x7E44 +0x2C6D 0x8E45 +0x2C6E 0x8E36 +0x2C6F 0x8E62 +0x2C70 0x8E5C +0x2C71 0x9778 +0x2C72 0x9B46 +0x2C73 0x9F2B +0x2C74 0x9F41 +0x2C75 0x7526 +0x2C76 0x4E26 +0x2C77 0x8BAC +0x2C78 0x8129 +0x2C79 0x5091 +0x2C7A 0x50CD +0x2C7B 0x52B9 +0x2C7C 0x89D4 +0x2C7D 0x5557 +0x2C7E 0x94C7 +0x2D21 0x9496 +0x2D22 0x9498 +0x2D23 0x94CF +0x2D24 0x94D3 +0x2D25 0x94D4 +0x2D26 0x94E6 +0x2D27 0x9533 +0x2D28 0x951C +0x2D29 0x9520 +0x2D2A 0x9527 +0x2D2B 0x953D +0x2D2C 0x9543 +0x2D2D 0x956E +0x2D2E 0x9574 +0x2D2F 0x9C80 +0x2D30 0x9C84 +0x2D31 0x9C8A +0x2D32 0x9C93 +0x2D33 0x9C96 +0x2D34 0x9C97 +0x2D35 0x9C98 +0x2D36 0x9C99 +0x2D37 0x9CBF +0x2D38 0x9CC0 +0x2D39 0x9CC1 +0x2D3A 0x9CD2 +0x2D3B 0x9CDB +0x2D3C 0x9CE0 +0x2D3D 0x9CE3 +0x2D3E 0x9770 +0x2D3F 0x977A +0x2D40 0x97A1 +0x2D41 0x97AE +0x2D42 0x97A8 +0x2D43 0x9964 +0x2D44 0x9966 +0x2D45 0x9978 +0x2D46 0x9979 +0x2D47 0x997B +0x2D48 0x997E +0x2D49 0x9982 +0x2D4A 0x9983 +0x2D4B 0x998E +0x2D4C 0x9B10 +0x2D4D 0x9B18 +0x2D4E 0x65A2 +0x2D4F 0x9E80 +0x2D50 0x911C +0x2D51 0x9E91 +0x2D52 0x9F12 +0x2D53 0x52F3 +0x2D54 0x6C96 +0x2D55 0x6D44 +0x2D56 0x6E1B +0x2D57 0x6E67 +0x2D58 0x6F82 +0x2D59 0x6FEC +0x2D5A 0x60AE +0x2D5B 0x5EC8 +0x2D5C 0x8FFA +0x2D5D 0x577F +0x2D5E 0x5586 +0x2D5F 0x849E +0x2D60 0x8460 +0x2D61 0x5C05 +0x2D62 0x5E0B +0x2D63 0x5D11 +0x2D64 0x5D19 +0x2D65 0x5DD6 +0x2D66 0x59B3 +0x2D67 0x5AAE +0x2D68 0x9A94 +0x2D69 0x658F +0x2D6A 0x709E +0x2D6B 0x7551 +0x2D6C 0x71FF +0x2D6D 0x691D +0x2D6E 0x6A11 +0x2D6F 0x68BF +0x2D70 0x6607 +0x2D71 0x668E +0x2D72 0x6673 +0x2D73 0x6C25 +0x2D74 0x7652 +0x2D75 0x778B +0x2D76 0x76EA +0x2D77 0x9895 +0x2D78 0x8780 +0x2D79 0x882D +0x2D7A 0x7B87 +0x2D7B 0x7C50 +0x2D7C 0x8EAD +0x2D7D 0x9575 +0x2D7E 0x65C2 +0x2E21 0x5390 +0x2E22 0x79B8 +0x2E23 0x4F15 +0x2E24 0x4F21 +0x2E25 0x4F3B +0x2E26 0x4FA2 +0x2E27 0x50A4 +0x2E28 0x5092 +0x2E29 0x530A +0x2E2A 0x51C3 +0x2E2B 0x51A8 +0x2E2C 0x8D20 +0x2E2D 0x5787 +0x2E2E 0x579A +0x2E2F 0x5795 +0x2E30 0x57EB +0x2E31 0x585D +0x2E32 0x585A +0x2E33 0x5871 +0x2E34 0x5895 +0x2E35 0x5C30 +0x2E36 0x5F0C +0x2E37 0x5F0D +0x2E38 0x5F0E +0x2E39 0x5C72 +0x2E3A 0x5CC7 +0x2E3B 0x5FAC +0x2E3C 0x5F68 +0x2E3D 0x5F5F +0x2E3E 0x5A12 +0x2E3F 0x5A65 +0x2E40 0x5A84 +0x2E41 0x5AC4 +0x2E42 0x7394 +0x2E43 0x73EA +0x2E44 0x73EE +0x2E45 0x7437 +0x2E46 0x7415 +0x2E47 0x7454 +0x2E48 0x6799 +0x2E49 0x686C +0x2E4A 0x68F8 +0x2E4B 0x69FE +0x2E4C 0x72E2 +0x2E4D 0x6667 +0x2E4E 0x8D52 +0x2E4F 0x89C3 +0x2E50 0x89CD +0x2E51 0x6427 +0x2E52 0x6477 +0x2E53 0x6C1D +0x2E54 0x813F +0x2E55 0x6B54 +0x2E56 0x98D6 +0x2E57 0x707A +0x2E58 0x70F1 +0x2E59 0x7120 +0x2E5A 0x6153 +0x2E5B 0x6C87 +0x2E5C 0x6DAD +0x2E5D 0x6E81 +0x2E5E 0x6EB5 +0x2E5F 0x6F94 +0x2E60 0x6F9B +0x2E61 0x793D +0x2E62 0x794E +0x2E63 0x7806 +0x2E64 0x7859 +0x2E65 0x7894 +0x2E66 0x78DC +0x2E67 0x7903 +0x2E68 0x7A16 +0x2E69 0x7A5E +0x2E6A 0x75E0 +0x2E6B 0x7ADC +0x2E6C 0x7676 +0x2E6D 0x9892 +0x2E6E 0x7BF2 +0x2E6F 0x7C30 +0x2E70 0x7C5D +0x2E71 0x9C9D +0x2E72 0x7CAC +0x2E73 0x8278 +0x2E74 0x83D1 +0x2E75 0x84EA +0x2E76 0x7FC0 +0x2E77 0x7F1E +0x2E78 0x8E21 +0x2E79 0x8E53 +0x2E7A 0x9754 +0x2E7B 0x9F0C +0x2E7C 0x94FB +0x2F21 0x32C0 +0x2F22 0x32C1 +0x2F23 0x32C2 +0x2F24 0x32C3 +0x2F25 0x32C4 +0x2F26 0x32C5 +0x2F27 0x32C6 +0x2F28 0x32C7 +0x2F29 0x32C8 +0x2F2A 0x32C9 +0x2F2B 0x32CA +0x2F2C 0x32CB +0x2F2D 0x33E0 +0x2F2E 0x33E1 +0x2F2F 0x33E2 +0x2F30 0x33E3 +0x2F31 0x33E4 +0x2F32 0x33E5 +0x2F33 0x33E6 +0x2F34 0x33E7 +0x2F35 0x33E8 +0x2F36 0x33E9 +0x2F37 0x33EA +0x2F38 0x33EB +0x2F39 0x33EC +0x2F3A 0x33ED +0x2F3B 0x33EE +0x2F3C 0x33EF +0x2F3D 0x33F0 +0x2F3E 0x33F1 +0x2F3F 0x33F2 +0x2F40 0x33F3 +0x2F41 0x33F4 +0x2F42 0x33F5 +0x2F43 0x33F6 +0x2F44 0x33F7 +0x2F45 0x33F8 +0x2F46 0x33F9 +0x2F47 0x33FA +0x2F48 0x33FB +0x2F49 0x33FC +0x2F4A 0x33FD +0x2F4B 0x33FE +0x2F4C 0x3358 +0x2F4D 0x3359 +0x2F4E 0x335A +0x2F4F 0x335B +0x2F50 0x335C +0x2F51 0x335D +0x2F52 0x335E +0x2F53 0x335F +0x2F54 0x3360 +0x2F55 0x3361 +0x2F56 0x3362 +0x2F57 0x3363 +0x2F58 0x3364 +0x2F59 0x3365 +0x2F5A 0x3366 +0x2F5B 0x3367 +0x2F5C 0x3368 +0x2F5D 0x3369 +0x2F5E 0x336A +0x2F5F 0x336B +0x2F60 0x336C +0x2F61 0x336D +0x2F62 0x336E +0x2F63 0x336F +0x2F64 0x3370 +0x2F65 0x3037 +0x2F66 0x90A8 +0x2F67 0x965E +0x2F68 0x5842 +0x2F69 0x5803 +0x2F6A 0x6C3E +0x2F6B 0x6D29 +0x2F6C 0x6EE7 +0x2F6D 0x8534 +0x2F6E 0x84C6 +0x2F6F 0x633C +0x2F70 0x5D05 +0x2F71 0x7F10 +0x2F72 0x7EEC +0x2F73 0x7287 +0x2F74 0x712E +0x2F75 0x8218 +0x2F76 0x8216 +0x2F77 0x756C +0x2F78 0x75F3 +0x2F79 0x9B25 +0x2F7A 0x8980 +0x2F7B 0x7CA6 +0x2F7C 0x4E85 +0x2F7D 0x5570 +0x2F7E 0x91C6 +0x3021 0x554A +0x3022 0x963F +0x3023 0x57C3 +0x3024 0x6328 +0x3025 0x54CE +0x3026 0x5509 +0x3027 0x54C0 +0x3028 0x7691 +0x3029 0x764C +0x302A 0x853C +0x302B 0x77EE +0x302C 0x827E +0x302D 0x788D +0x302E 0x7231 +0x302F 0x9698 +0x3030 0x978D +0x3031 0x6C28 +0x3032 0x5B89 +0x3033 0x4FFA +0x3034 0x6309 +0x3035 0x6697 +0x3036 0x5CB8 +0x3037 0x80FA +0x3038 0x6848 +0x3039 0x80AE +0x303A 0x6602 +0x303B 0x76CE +0x303C 0x51F9 +0x303D 0x6556 +0x303E 0x71AC +0x303F 0x7FF1 +0x3040 0x8884 +0x3041 0x50B2 +0x3042 0x5965 +0x3043 0x61CA +0x3044 0x6FB3 +0x3045 0x82AD +0x3046 0x634C +0x3047 0x6252 +0x3048 0x53ED +0x3049 0x5427 +0x304A 0x7B06 +0x304B 0x516B +0x304C 0x75A4 +0x304D 0x5DF4 +0x304E 0x62D4 +0x304F 0x8DCB +0x3050 0x9776 +0x3051 0x628A +0x3052 0x8019 +0x3053 0x575D +0x3054 0x9738 +0x3055 0x7F62 +0x3056 0x7238 +0x3057 0x767D +0x3058 0x67CF +0x3059 0x767E +0x305A 0x6446 +0x305B 0x4F70 +0x305C 0x8D25 +0x305D 0x62DC +0x305E 0x7A17 +0x305F 0x6591 +0x3060 0x73ED +0x3061 0x642C +0x3062 0x6273 +0x3063 0x822C +0x3064 0x9881 +0x3065 0x677F +0x3066 0x7248 +0x3067 0x626E +0x3068 0x62CC +0x3069 0x4F34 +0x306A 0x74E3 +0x306B 0x534A +0x306C 0x529E +0x306D 0x7ECA +0x306E 0x90A6 +0x306F 0x5E2E +0x3070 0x6886 +0x3071 0x699C +0x3072 0x8180 +0x3073 0x7ED1 +0x3074 0x68D2 +0x3075 0x78C5 +0x3076 0x868C +0x3077 0x9551 +0x3078 0x508D +0x3079 0x8C24 +0x307A 0x82DE +0x307B 0x80DE +0x307C 0x5305 +0x307D 0x8912 +0x307E 0x5265 +0x3121 0x8584 +0x3122 0x96F9 +0x3123 0x4FDD +0x3124 0x5821 +0x3125 0x9971 +0x3126 0x5B9D +0x3127 0x62B1 +0x3128 0x62A5 +0x3129 0x66B4 +0x312A 0x8C79 +0x312B 0x9C8D +0x312C 0x7206 +0x312D 0x676F +0x312E 0x7891 +0x312F 0x60B2 +0x3130 0x5351 +0x3131 0x5317 +0x3132 0x8F88 +0x3133 0x80CC +0x3134 0x8D1D +0x3135 0x94A1 +0x3136 0x500D +0x3137 0x72C8 +0x3138 0x5907 +0x3139 0x60EB +0x313A 0x7119 +0x313B 0x88AB +0x313C 0x5954 +0x313D 0x82EF +0x313E 0x672C +0x313F 0x7B28 +0x3140 0x5D29 +0x3141 0x7EF7 +0x3142 0x752D +0x3143 0x6CF5 +0x3144 0x8E66 +0x3145 0x8FF8 +0x3146 0x903C +0x3147 0x9F3B +0x3148 0x6BD4 +0x3149 0x9119 +0x314A 0x7B14 +0x314B 0x5F7C +0x314C 0x78A7 +0x314D 0x84D6 +0x314E 0x853D +0x314F 0x6BD5 +0x3150 0x6BD9 +0x3151 0x6BD6 +0x3152 0x5E01 +0x3153 0x5E87 +0x3154 0x75F9 +0x3155 0x95ED +0x3156 0x655D +0x3157 0x5F0A +0x3158 0x5FC5 +0x3159 0x8F9F +0x315A 0x58C1 +0x315B 0x81C2 +0x315C 0x907F +0x315D 0x965B +0x315E 0x97AD +0x315F 0x8FB9 +0x3160 0x7F16 +0x3161 0x8D2C +0x3162 0x6241 +0x3163 0x4FBF +0x3164 0x53D8 +0x3165 0x535E +0x3166 0x8FA8 +0x3167 0x8FA9 +0x3168 0x8FAB +0x3169 0x904D +0x316A 0x6807 +0x316B 0x5F6A +0x316C 0x8198 +0x316D 0x8868 +0x316E 0x9CD6 +0x316F 0x618B +0x3170 0x522B +0x3171 0x762A +0x3172 0x5F6C +0x3173 0x658C +0x3174 0x6FD2 +0x3175 0x6EE8 +0x3176 0x5BBE +0x3177 0x6448 +0x3178 0x5175 +0x3179 0x51B0 +0x317A 0x67C4 +0x317B 0x4E19 +0x317C 0x79C9 +0x317D 0x997C +0x317E 0x70B3 +0x3221 0x75C5 +0x3222 0x5E76 +0x3223 0x73BB +0x3224 0x83E0 +0x3225 0x64AD +0x3226 0x62E8 +0x3227 0x94B5 +0x3228 0x6CE2 +0x3229 0x535A +0x322A 0x52C3 +0x322B 0x640F +0x322C 0x94C2 +0x322D 0x7B94 +0x322E 0x4F2F +0x322F 0x5E1B +0x3230 0x8236 +0x3231 0x8116 +0x3232 0x818A +0x3233 0x6E24 +0x3234 0x6CCA +0x3235 0x9A73 +0x3236 0x6355 +0x3237 0x535C +0x3238 0x54FA +0x3239 0x8865 +0x323A 0x57E0 +0x323B 0x4E0D +0x323C 0x5E03 +0x323D 0x6B65 +0x323E 0x7C3F +0x323F 0x90E8 +0x3240 0x6016 +0x3241 0x64E6 +0x3242 0x731C +0x3243 0x88C1 +0x3244 0x6750 +0x3245 0x624D +0x3246 0x8D22 +0x3247 0x776C +0x3248 0x8E29 +0x3249 0x91C7 +0x324A 0x5F69 +0x324B 0x83DC +0x324C 0x8521 +0x324D 0x9910 +0x324E 0x53C2 +0x324F 0x8695 +0x3250 0x6B8B +0x3251 0x60ED +0x3252 0x60E8 +0x3253 0x707F +0x3254 0x82CD +0x3255 0x8231 +0x3256 0x4ED3 +0x3257 0x6CA7 +0x3258 0x85CF +0x3259 0x64CD +0x325A 0x7CD9 +0x325B 0x69FD +0x325C 0x66F9 +0x325D 0x8349 +0x325E 0x5395 +0x325F 0x7B56 +0x3260 0x4FA7 +0x3261 0x518C +0x3262 0x6D4B +0x3263 0x5C42 +0x3264 0x8E6D +0x3265 0x63D2 +0x3266 0x53C9 +0x3267 0x832C +0x3268 0x8336 +0x3269 0x67E5 +0x326A 0x78B4 +0x326B 0x643D +0x326C 0x5BDF +0x326D 0x5C94 +0x326E 0x5DEE +0x326F 0x8BE7 +0x3270 0x62C6 +0x3271 0x67F4 +0x3272 0x8C7A +0x3273 0x6400 +0x3274 0x63BA +0x3275 0x8749 +0x3276 0x998B +0x3277 0x8C17 +0x3278 0x7F20 +0x3279 0x94F2 +0x327A 0x4EA7 +0x327B 0x9610 +0x327C 0x98A4 +0x327D 0x660C +0x327E 0x7316 +0x3321 0x573A +0x3322 0x5C1D +0x3323 0x5E38 +0x3324 0x957F +0x3325 0x507F +0x3326 0x80A0 +0x3327 0x5382 +0x3328 0x655E +0x3329 0x7545 +0x332A 0x5531 +0x332B 0x5021 +0x332C 0x8D85 +0x332D 0x6284 +0x332E 0x949E +0x332F 0x671D +0x3330 0x5632 +0x3331 0x6F6E +0x3332 0x5DE2 +0x3333 0x5435 +0x3334 0x7092 +0x3335 0x8F66 +0x3336 0x626F +0x3337 0x64A4 +0x3338 0x63A3 +0x3339 0x5F7B +0x333A 0x6F88 +0x333B 0x90F4 +0x333C 0x81E3 +0x333D 0x8FB0 +0x333E 0x5C18 +0x333F 0x6668 +0x3340 0x5FF1 +0x3341 0x6C89 +0x3342 0x9648 +0x3343 0x8D81 +0x3344 0x886C +0x3345 0x6491 +0x3346 0x79F0 +0x3347 0x57CE +0x3348 0x6A59 +0x3349 0x6210 +0x334A 0x5448 +0x334B 0x4E58 +0x334C 0x7A0B +0x334D 0x60E9 +0x334E 0x6F84 +0x334F 0x8BDA +0x3350 0x627F +0x3351 0x901E +0x3352 0x9A8B +0x3353 0x79E4 +0x3354 0x5403 +0x3355 0x75F4 +0x3356 0x6301 +0x3357 0x5319 +0x3358 0x6C60 +0x3359 0x8FDF +0x335A 0x5F1B +0x335B 0x9A70 +0x335C 0x803B +0x335D 0x9F7F +0x335E 0x4F88 +0x335F 0x5C3A +0x3360 0x8D64 +0x3361 0x7FC5 +0x3362 0x65A5 +0x3363 0x70BD +0x3364 0x5145 +0x3365 0x51B2 +0x3366 0x866B +0x3367 0x5D07 +0x3368 0x5BA0 +0x3369 0x62BD +0x336A 0x916C +0x336B 0x7574 +0x336C 0x8E0C +0x336D 0x7A20 +0x336E 0x6101 +0x336F 0x7B79 +0x3370 0x4EC7 +0x3371 0x7EF8 +0x3372 0x7785 +0x3373 0x4E11 +0x3374 0x81ED +0x3375 0x521D +0x3376 0x51FA +0x3377 0x6A71 +0x3378 0x53A8 +0x3379 0x8E87 +0x337A 0x9504 +0x337B 0x96CF +0x337C 0x6EC1 +0x337D 0x9664 +0x337E 0x695A +0x3421 0x7840 +0x3422 0x50A8 +0x3423 0x77D7 +0x3424 0x6410 +0x3425 0x89E6 +0x3426 0x5904 +0x3427 0x63E3 +0x3428 0x5DDD +0x3429 0x7A7F +0x342A 0x693D +0x342B 0x4F20 +0x342C 0x8239 +0x342D 0x5598 +0x342E 0x4E32 +0x342F 0x75AE +0x3430 0x7A97 +0x3431 0x5E62 +0x3432 0x5E8A +0x3433 0x95EF +0x3434 0x521B +0x3435 0x5439 +0x3436 0x708A +0x3437 0x6376 +0x3438 0x9524 +0x3439 0x5782 +0x343A 0x6625 +0x343B 0x693F +0x343C 0x9187 +0x343D 0x5507 +0x343E 0x6DF3 +0x343F 0x7EAF +0x3440 0x8822 +0x3441 0x6233 +0x3442 0x7EF0 +0x3443 0x75B5 +0x3444 0x8328 +0x3445 0x78C1 +0x3446 0x96CC +0x3447 0x8F9E +0x3448 0x6148 +0x3449 0x74F7 +0x344A 0x8BCD +0x344B 0x6B64 +0x344C 0x523A +0x344D 0x8D50 +0x344E 0x6B21 +0x344F 0x806A +0x3450 0x8471 +0x3451 0x56F1 +0x3452 0x5306 +0x3453 0x4ECE +0x3454 0x4E1B +0x3455 0x51D1 +0x3456 0x7C97 +0x3457 0x918B +0x3458 0x7C07 +0x3459 0x4FC3 +0x345A 0x8E7F +0x345B 0x7BE1 +0x345C 0x7A9C +0x345D 0x6467 +0x345E 0x5D14 +0x345F 0x50AC +0x3460 0x8106 +0x3461 0x7601 +0x3462 0x7CB9 +0x3463 0x6DEC +0x3464 0x7FE0 +0x3465 0x6751 +0x3466 0x5B58 +0x3467 0x5BF8 +0x3468 0x78CB +0x3469 0x64AE +0x346A 0x6413 +0x346B 0x63AA +0x346C 0x632B +0x346D 0x9519 +0x346E 0x642D +0x346F 0x8FBE +0x3470 0x7B54 +0x3471 0x7629 +0x3472 0x6253 +0x3473 0x5927 +0x3474 0x5446 +0x3475 0x6B79 +0x3476 0x50A3 +0x3477 0x6234 +0x3478 0x5E26 +0x3479 0x6B86 +0x347A 0x4EE3 +0x347B 0x8D37 +0x347C 0x888B +0x347D 0x5F85 +0x347E 0x902E +0x3521 0x6020 +0x3522 0x803D +0x3523 0x62C5 +0x3524 0x4E39 +0x3525 0x5355 +0x3526 0x90F8 +0x3527 0x63B8 +0x3528 0x80C6 +0x3529 0x65E6 +0x352A 0x6C2E +0x352B 0x4F46 +0x352C 0x60EE +0x352D 0x6DE1 +0x352E 0x8BDE +0x352F 0x5F39 +0x3530 0x86CB +0x3531 0x5F53 +0x3532 0x6321 +0x3533 0x515A +0x3534 0x8361 +0x3535 0x6863 +0x3536 0x5200 +0x3537 0x6363 +0x3538 0x8E48 +0x3539 0x5012 +0x353A 0x5C9B +0x353B 0x7977 +0x353C 0x5BFC +0x353D 0x5230 +0x353E 0x7A3B +0x353F 0x60BC +0x3540 0x9053 +0x3541 0x76D7 +0x3542 0x5FB7 +0x3543 0x5F97 +0x3544 0x7684 +0x3545 0x8E6C +0x3546 0x706F +0x3547 0x767B +0x3548 0x7B49 +0x3549 0x77AA +0x354A 0x51F3 +0x354B 0x9093 +0x354C 0x5824 +0x354D 0x4F4E +0x354E 0x6EF4 +0x354F 0x8FEA +0x3550 0x654C +0x3551 0x7B1B +0x3552 0x72C4 +0x3553 0x6DA4 +0x3554 0x7FDF +0x3555 0x5AE1 +0x3556 0x62B5 +0x3557 0x5E95 +0x3558 0x5730 +0x3559 0x8482 +0x355A 0x7B2C +0x355B 0x5E1D +0x355C 0x5F1F +0x355D 0x9012 +0x355E 0x7F14 +0x355F 0x98A0 +0x3560 0x6382 +0x3561 0x6EC7 +0x3562 0x7898 +0x3563 0x70B9 +0x3564 0x5178 +0x3565 0x975B +0x3566 0x57AB +0x3567 0x7535 +0x3568 0x4F43 +0x3569 0x7538 +0x356A 0x5E97 +0x356B 0x60E6 +0x356C 0x5960 +0x356D 0x6DC0 +0x356E 0x6BBF +0x356F 0x7889 +0x3570 0x53FC +0x3571 0x96D5 +0x3572 0x51CB +0x3573 0x5201 +0x3574 0x6389 +0x3575 0x540A +0x3576 0x9493 +0x3577 0x8C03 +0x3578 0x8DCC +0x3579 0x7239 +0x357A 0x789F +0x357B 0x8776 +0x357C 0x8FED +0x357D 0x8C0D +0x357E 0x53E0 +0x3621 0x4E01 +0x3622 0x76EF +0x3623 0x53EE +0x3624 0x9489 +0x3625 0x9876 +0x3626 0x9F0E +0x3627 0x952D +0x3628 0x5B9A +0x3629 0x8BA2 +0x362A 0x4E22 +0x362B 0x4E1C +0x362C 0x51AC +0x362D 0x8463 +0x362E 0x61C2 +0x362F 0x52A8 +0x3630 0x680B +0x3631 0x4F97 +0x3632 0x606B +0x3633 0x51BB +0x3634 0x6D1E +0x3635 0x515C +0x3636 0x6296 +0x3637 0x6597 +0x3638 0x9661 +0x3639 0x8C46 +0x363A 0x9017 +0x363B 0x75D8 +0x363C 0x90FD +0x363D 0x7763 +0x363E 0x6BD2 +0x363F 0x728A +0x3640 0x72EC +0x3641 0x8BFB +0x3642 0x5835 +0x3643 0x7779 +0x3644 0x8D4C +0x3645 0x675C +0x3646 0x9540 +0x3647 0x809A +0x3648 0x5EA6 +0x3649 0x6E21 +0x364A 0x5992 +0x364B 0x7AEF +0x364C 0x77ED +0x364D 0x953B +0x364E 0x6BB5 +0x364F 0x65AD +0x3650 0x7F0E +0x3651 0x5806 +0x3652 0x5151 +0x3653 0x961F +0x3654 0x5BF9 +0x3655 0x58A9 +0x3656 0x5428 +0x3657 0x8E72 +0x3658 0x6566 +0x3659 0x987F +0x365A 0x56E4 +0x365B 0x949D +0x365C 0x76FE +0x365D 0x9041 +0x365E 0x6387 +0x365F 0x54C6 +0x3660 0x591A +0x3661 0x593A +0x3662 0x579B +0x3663 0x8EB2 +0x3664 0x6735 +0x3665 0x8DFA +0x3666 0x8235 +0x3667 0x5241 +0x3668 0x60F0 +0x3669 0x5815 +0x366A 0x86FE +0x366B 0x5CE8 +0x366C 0x9E45 +0x366D 0x4FC4 +0x366E 0x989D +0x366F 0x8BB9 +0x3670 0x5A25 +0x3671 0x6076 +0x3672 0x5384 +0x3673 0x627C +0x3674 0x904F +0x3675 0x9102 +0x3676 0x997F +0x3677 0x6069 +0x3678 0x800C +0x3679 0x513F +0x367A 0x8033 +0x367B 0x5C14 +0x367C 0x9975 +0x367D 0x6D31 +0x367E 0x4E8C +0x3721 0x8D30 +0x3722 0x53D1 +0x3723 0x7F5A +0x3724 0x7B4F +0x3725 0x4F10 +0x3726 0x4E4F +0x3727 0x9600 +0x3728 0x6CD5 +0x3729 0x73D0 +0x372A 0x85E9 +0x372B 0x5E06 +0x372C 0x756A +0x372D 0x7FFB +0x372E 0x6A0A +0x372F 0x77FE +0x3730 0x9492 +0x3731 0x7E41 +0x3732 0x51E1 +0x3733 0x70E6 +0x3734 0x53CD +0x3735 0x8FD4 +0x3736 0x8303 +0x3737 0x8D29 +0x3738 0x72AF +0x3739 0x996D +0x373A 0x6CDB +0x373B 0x574A +0x373C 0x82B3 +0x373D 0x65B9 +0x373E 0x80AA +0x373F 0x623F +0x3740 0x9632 +0x3741 0x59A8 +0x3742 0x4EFF +0x3743 0x8BBF +0x3744 0x7EBA +0x3745 0x653E +0x3746 0x83F2 +0x3747 0x975E +0x3748 0x5561 +0x3749 0x98DE +0x374A 0x80A5 +0x374B 0x532A +0x374C 0x8BFD +0x374D 0x5420 +0x374E 0x80BA +0x374F 0x5E9F +0x3750 0x6CB8 +0x3751 0x8D39 +0x3752 0x82AC +0x3753 0x915A +0x3754 0x5429 +0x3755 0x6C1B +0x3756 0x5206 +0x3757 0x7EB7 +0x3758 0x575F +0x3759 0x711A +0x375A 0x6C7E +0x375B 0x7C89 +0x375C 0x594B +0x375D 0x4EFD +0x375E 0x5FFF +0x375F 0x6124 +0x3760 0x7CAA +0x3761 0x4E30 +0x3762 0x5C01 +0x3763 0x67AB +0x3764 0x8702 +0x3765 0x5CF0 +0x3766 0x950B +0x3767 0x98CE +0x3768 0x75AF +0x3769 0x70FD +0x376A 0x9022 +0x376B 0x51AF +0x376C 0x7F1D +0x376D 0x8BBD +0x376E 0x5949 +0x376F 0x51E4 +0x3770 0x4F5B +0x3771 0x5426 +0x3772 0x592B +0x3773 0x6577 +0x3774 0x80A4 +0x3775 0x5B75 +0x3776 0x6276 +0x3777 0x62C2 +0x3778 0x8F90 +0x3779 0x5E45 +0x377A 0x6C1F +0x377B 0x7B26 +0x377C 0x4F0F +0x377D 0x4FD8 +0x377E 0x670D +0x3821 0x6D6E +0x3822 0x6DAA +0x3823 0x798F +0x3824 0x88B1 +0x3825 0x5F17 +0x3826 0x752B +0x3827 0x629A +0x3828 0x8F85 +0x3829 0x4FEF +0x382A 0x91DC +0x382B 0x65A7 +0x382C 0x812F +0x382D 0x8151 +0x382E 0x5E9C +0x382F 0x8150 +0x3830 0x8D74 +0x3831 0x526F +0x3832 0x8986 +0x3833 0x8D4B +0x3834 0x590D +0x3835 0x5085 +0x3836 0x4ED8 +0x3837 0x961C +0x3838 0x7236 +0x3839 0x8179 +0x383A 0x8D1F +0x383B 0x5BCC +0x383C 0x8BA3 +0x383D 0x9644 +0x383E 0x5987 +0x383F 0x7F1A +0x3840 0x5490 +0x3841 0x5676 +0x3842 0x560E +0x3843 0x8BE5 +0x3844 0x6539 +0x3845 0x6982 +0x3846 0x9499 +0x3847 0x76D6 +0x3848 0x6E89 +0x3849 0x5E72 +0x384A 0x7518 +0x384B 0x6746 +0x384C 0x67D1 +0x384D 0x7AFF +0x384E 0x809D +0x384F 0x8D76 +0x3850 0x611F +0x3851 0x79C6 +0x3852 0x6562 +0x3853 0x8D63 +0x3854 0x5188 +0x3855 0x521A +0x3856 0x94A2 +0x3857 0x7F38 +0x3858 0x809B +0x3859 0x7EB2 +0x385A 0x5C97 +0x385B 0x6E2F +0x385C 0x6760 +0x385D 0x7BD9 +0x385E 0x768B +0x385F 0x9AD8 +0x3860 0x818F +0x3861 0x7F94 +0x3862 0x7CD5 +0x3863 0x641E +0x3864 0x9550 +0x3865 0x7A3F +0x3866 0x544A +0x3867 0x54E5 +0x3868 0x6B4C +0x3869 0x6401 +0x386A 0x6208 +0x386B 0x9E3D +0x386C 0x80F3 +0x386D 0x7599 +0x386E 0x5272 +0x386F 0x9769 +0x3870 0x845B +0x3871 0x683C +0x3872 0x86E4 +0x3873 0x9601 +0x3874 0x9694 +0x3875 0x94EC +0x3876 0x4E2A +0x3877 0x5404 +0x3878 0x7ED9 +0x3879 0x6839 +0x387A 0x8DDF +0x387B 0x8015 +0x387C 0x66F4 +0x387D 0x5E9A +0x387E 0x7FB9 +0x3921 0x57C2 +0x3922 0x803F +0x3923 0x6897 +0x3924 0x5DE5 +0x3925 0x653B +0x3926 0x529F +0x3927 0x606D +0x3928 0x9F9A +0x3929 0x4F9B +0x392A 0x8EAC +0x392B 0x516C +0x392C 0x5BAB +0x392D 0x5F13 +0x392E 0x5DE9 +0x392F 0x6C5E +0x3930 0x62F1 +0x3931 0x8D21 +0x3932 0x5171 +0x3933 0x94A9 +0x3934 0x52FE +0x3935 0x6C9F +0x3936 0x82DF +0x3937 0x72D7 +0x3938 0x57A2 +0x3939 0x6784 +0x393A 0x8D2D +0x393B 0x591F +0x393C 0x8F9C +0x393D 0x83C7 +0x393E 0x5495 +0x393F 0x7B8D +0x3940 0x4F30 +0x3941 0x6CBD +0x3942 0x5B64 +0x3943 0x59D1 +0x3944 0x9F13 +0x3945 0x53E4 +0x3946 0x86CA +0x3947 0x9AA8 +0x3948 0x8C37 +0x3949 0x80A1 +0x394A 0x6545 +0x394B 0x987E +0x394C 0x56FA +0x394D 0x96C7 +0x394E 0x522E +0x394F 0x74DC +0x3950 0x5250 +0x3951 0x5BE1 +0x3952 0x6302 +0x3953 0x8902 +0x3954 0x4E56 +0x3955 0x62D0 +0x3956 0x602A +0x3957 0x68FA +0x3958 0x5173 +0x3959 0x5B98 +0x395A 0x51A0 +0x395B 0x89C2 +0x395C 0x7BA1 +0x395D 0x9986 +0x395E 0x7F50 +0x395F 0x60EF +0x3960 0x704C +0x3961 0x8D2F +0x3962 0x5149 +0x3963 0x5E7F +0x3964 0x901B +0x3965 0x7470 +0x3966 0x89C4 +0x3967 0x572D +0x3968 0x7845 +0x3969 0x5F52 +0x396A 0x9F9F +0x396B 0x95FA +0x396C 0x8F68 +0x396D 0x9B3C +0x396E 0x8BE1 +0x396F 0x7678 +0x3970 0x6842 +0x3971 0x67DC +0x3972 0x8DEA +0x3973 0x8D35 +0x3974 0x523D +0x3975 0x8F8A +0x3976 0x6EDA +0x3977 0x68CD +0x3978 0x9505 +0x3979 0x90ED +0x397A 0x56FD +0x397B 0x679C +0x397C 0x88F9 +0x397D 0x8FC7 +0x397E 0x54C8 +0x3A21 0x9AB8 +0x3A22 0x5B69 +0x3A23 0x6D77 +0x3A24 0x6C26 +0x3A25 0x4EA5 +0x3A26 0x5BB3 +0x3A27 0x9A87 +0x3A28 0x9163 +0x3A29 0x61A8 +0x3A2A 0x90AF +0x3A2B 0x97E9 +0x3A2C 0x542B +0x3A2D 0x6DB5 +0x3A2E 0x5BD2 +0x3A2F 0x51FD +0x3A30 0x558A +0x3A31 0x7F55 +0x3A32 0x7FF0 +0x3A33 0x64BC +0x3A34 0x634D +0x3A35 0x65F1 +0x3A36 0x61BE +0x3A37 0x608D +0x3A38 0x710A +0x3A39 0x6C57 +0x3A3A 0x6C49 +0x3A3B 0x592F +0x3A3C 0x676D +0x3A3D 0x822A +0x3A3E 0x58D5 +0x3A3F 0x568E +0x3A40 0x8C6A +0x3A41 0x6BEB +0x3A42 0x90DD +0x3A43 0x597D +0x3A44 0x8017 +0x3A45 0x53F7 +0x3A46 0x6D69 +0x3A47 0x5475 +0x3A48 0x559D +0x3A49 0x8377 +0x3A4A 0x83CF +0x3A4B 0x6838 +0x3A4C 0x79BE +0x3A4D 0x548C +0x3A4E 0x4F55 +0x3A4F 0x5408 +0x3A50 0x76D2 +0x3A51 0x8C89 +0x3A52 0x9602 +0x3A53 0x6CB3 +0x3A54 0x6DB8 +0x3A55 0x8D6B +0x3A56 0x8910 +0x3A57 0x9E64 +0x3A58 0x8D3A +0x3A59 0x563F +0x3A5A 0x9ED1 +0x3A5B 0x75D5 +0x3A5C 0x5F88 +0x3A5D 0x72E0 +0x3A5E 0x6068 +0x3A5F 0x54FC +0x3A60 0x4EA8 +0x3A61 0x6A2A +0x3A62 0x8861 +0x3A63 0x6052 +0x3A64 0x8F70 +0x3A65 0x54C4 +0x3A66 0x70D8 +0x3A67 0x8679 +0x3A68 0x9E3F +0x3A69 0x6D2A +0x3A6A 0x5B8F +0x3A6B 0x5F18 +0x3A6C 0x7EA2 +0x3A6D 0x5589 +0x3A6E 0x4FAF +0x3A6F 0x7334 +0x3A70 0x543C +0x3A71 0x539A +0x3A72 0x5019 +0x3A73 0x540E +0x3A74 0x547C +0x3A75 0x4E4E +0x3A76 0x5FFD +0x3A77 0x745A +0x3A78 0x58F6 +0x3A79 0x846B +0x3A7A 0x80E1 +0x3A7B 0x8774 +0x3A7C 0x72D0 +0x3A7D 0x7CCA +0x3A7E 0x6E56 +0x3B21 0x5F27 +0x3B22 0x864E +0x3B23 0x552C +0x3B24 0x62A4 +0x3B25 0x4E92 +0x3B26 0x6CAA +0x3B27 0x6237 +0x3B28 0x82B1 +0x3B29 0x54D7 +0x3B2A 0x534E +0x3B2B 0x733E +0x3B2C 0x6ED1 +0x3B2D 0x753B +0x3B2E 0x5212 +0x3B2F 0x5316 +0x3B30 0x8BDD +0x3B31 0x69D0 +0x3B32 0x5F8A +0x3B33 0x6000 +0x3B34 0x6DEE +0x3B35 0x574F +0x3B36 0x6B22 +0x3B37 0x73AF +0x3B38 0x6853 +0x3B39 0x8FD8 +0x3B3A 0x7F13 +0x3B3B 0x6362 +0x3B3C 0x60A3 +0x3B3D 0x5524 +0x3B3E 0x75EA +0x3B3F 0x8C62 +0x3B40 0x7115 +0x3B41 0x6DA3 +0x3B42 0x5BA6 +0x3B43 0x5E7B +0x3B44 0x8352 +0x3B45 0x614C +0x3B46 0x9EC4 +0x3B47 0x78FA +0x3B48 0x8757 +0x3B49 0x7C27 +0x3B4A 0x7687 +0x3B4B 0x51F0 +0x3B4C 0x60F6 +0x3B4D 0x714C +0x3B4E 0x6643 +0x3B4F 0x5E4C +0x3B50 0x604D +0x3B51 0x8C0E +0x3B52 0x7070 +0x3B53 0x6325 +0x3B54 0x8F89 +0x3B55 0x5FBD +0x3B56 0x6062 +0x3B57 0x86D4 +0x3B58 0x56DE +0x3B59 0x6BC1 +0x3B5A 0x6094 +0x3B5B 0x6167 +0x3B5C 0x5349 +0x3B5D 0x60E0 +0x3B5E 0x6666 +0x3B5F 0x8D3F +0x3B60 0x79FD +0x3B61 0x4F1A +0x3B62 0x70E9 +0x3B63 0x6C47 +0x3B64 0x8BB3 +0x3B65 0x8BF2 +0x3B66 0x7ED8 +0x3B67 0x8364 +0x3B68 0x660F +0x3B69 0x5A5A +0x3B6A 0x9B42 +0x3B6B 0x6D51 +0x3B6C 0x6DF7 +0x3B6D 0x8C41 +0x3B6E 0x6D3B +0x3B6F 0x4F19 +0x3B70 0x706B +0x3B71 0x83B7 +0x3B72 0x6216 +0x3B73 0x60D1 +0x3B74 0x970D +0x3B75 0x8D27 +0x3B76 0x7978 +0x3B77 0x51FB +0x3B78 0x573E +0x3B79 0x57FA +0x3B7A 0x673A +0x3B7B 0x7578 +0x3B7C 0x7A3D +0x3B7D 0x79EF +0x3B7E 0x7B95 +0x3C21 0x808C +0x3C22 0x9965 +0x3C23 0x8FF9 +0x3C24 0x6FC0 +0x3C25 0x8BA5 +0x3C26 0x9E21 +0x3C27 0x59EC +0x3C28 0x7EE9 +0x3C29 0x7F09 +0x3C2A 0x5409 +0x3C2B 0x6781 +0x3C2C 0x68D8 +0x3C2D 0x8F91 +0x3C2E 0x7C4D +0x3C2F 0x96C6 +0x3C30 0x53CA +0x3C31 0x6025 +0x3C32 0x75BE +0x3C33 0x6C72 +0x3C34 0x5373 +0x3C35 0x5AC9 +0x3C36 0x7EA7 +0x3C37 0x6324 +0x3C38 0x51E0 +0x3C39 0x810A +0x3C3A 0x5DF1 +0x3C3B 0x84DF +0x3C3C 0x6280 +0x3C3D 0x5180 +0x3C3E 0x5B63 +0x3C3F 0x4F0E +0x3C40 0x796D +0x3C41 0x5242 +0x3C42 0x60B8 +0x3C43 0x6D4E +0x3C44 0x5BC4 +0x3C45 0x5BC2 +0x3C46 0x8BA1 +0x3C47 0x8BB0 +0x3C48 0x65E2 +0x3C49 0x5FCC +0x3C4A 0x9645 +0x3C4B 0x5993 +0x3C4C 0x7EE7 +0x3C4D 0x7EAA +0x3C4E 0x5609 +0x3C4F 0x67B7 +0x3C50 0x5939 +0x3C51 0x4F73 +0x3C52 0x5BB6 +0x3C53 0x52A0 +0x3C54 0x835A +0x3C55 0x988A +0x3C56 0x8D3E +0x3C57 0x7532 +0x3C58 0x94BE +0x3C59 0x5047 +0x3C5A 0x7A3C +0x3C5B 0x4EF7 +0x3C5C 0x67B6 +0x3C5D 0x9A7E +0x3C5E 0x5AC1 +0x3C5F 0x6B7C +0x3C60 0x76D1 +0x3C61 0x575A +0x3C62 0x5C16 +0x3C63 0x7B3A +0x3C64 0x95F4 +0x3C65 0x714E +0x3C66 0x517C +0x3C67 0x80A9 +0x3C68 0x8270 +0x3C69 0x5978 +0x3C6A 0x7F04 +0x3C6B 0x8327 +0x3C6C 0x68C0 +0x3C6D 0x67EC +0x3C6E 0x78B1 +0x3C6F 0x7877 +0x3C70 0x62E3 +0x3C71 0x6361 +0x3C72 0x7B80 +0x3C73 0x4FED +0x3C74 0x526A +0x3C75 0x51CF +0x3C76 0x8350 +0x3C77 0x69DB +0x3C78 0x9274 +0x3C79 0x8DF5 +0x3C7A 0x8D31 +0x3C7B 0x89C1 +0x3C7C 0x952E +0x3C7D 0x7BAD +0x3C7E 0x4EF6 +0x3D21 0x5065 +0x3D22 0x8230 +0x3D23 0x5251 +0x3D24 0x996F +0x3D25 0x6E10 +0x3D26 0x6E85 +0x3D27 0x6DA7 +0x3D28 0x5EFA +0x3D29 0x50F5 +0x3D2A 0x59DC +0x3D2B 0x5C06 +0x3D2C 0x6D46 +0x3D2D 0x6C5F +0x3D2E 0x7586 +0x3D2F 0x848B +0x3D30 0x6868 +0x3D31 0x5956 +0x3D32 0x8BB2 +0x3D33 0x5320 +0x3D34 0x9171 +0x3D35 0x964D +0x3D36 0x8549 +0x3D37 0x6912 +0x3D38 0x7901 +0x3D39 0x7126 +0x3D3A 0x80F6 +0x3D3B 0x4EA4 +0x3D3C 0x90CA +0x3D3D 0x6D47 +0x3D3E 0x9A84 +0x3D3F 0x5A07 +0x3D40 0x56BC +0x3D41 0x6405 +0x3D42 0x94F0 +0x3D43 0x77EB +0x3D44 0x4FA5 +0x3D45 0x811A +0x3D46 0x72E1 +0x3D47 0x89D2 +0x3D48 0x997A +0x3D49 0x7F34 +0x3D4A 0x7EDE +0x3D4B 0x527F +0x3D4C 0x6559 +0x3D4D 0x9175 +0x3D4E 0x8F7F +0x3D4F 0x8F83 +0x3D50 0x53EB +0x3D51 0x7A96 +0x3D52 0x63ED +0x3D53 0x63A5 +0x3D54 0x7686 +0x3D55 0x79F8 +0x3D56 0x8857 +0x3D57 0x9636 +0x3D58 0x622A +0x3D59 0x52AB +0x3D5A 0x8282 +0x3D5B 0x6854 +0x3D5C 0x6770 +0x3D5D 0x6377 +0x3D5E 0x776B +0x3D5F 0x7AED +0x3D60 0x6D01 +0x3D61 0x7ED3 +0x3D62 0x89E3 +0x3D63 0x59D0 +0x3D64 0x6212 +0x3D65 0x85C9 +0x3D66 0x82A5 +0x3D67 0x754C +0x3D68 0x501F +0x3D69 0x4ECB +0x3D6A 0x75A5 +0x3D6B 0x8BEB +0x3D6C 0x5C4A +0x3D6D 0x5DFE +0x3D6E 0x7B4B +0x3D6F 0x65A4 +0x3D70 0x91D1 +0x3D71 0x4ECA +0x3D72 0x6D25 +0x3D73 0x895F +0x3D74 0x7D27 +0x3D75 0x9526 +0x3D76 0x4EC5 +0x3D77 0x8C28 +0x3D78 0x8FDB +0x3D79 0x9773 +0x3D7A 0x664B +0x3D7B 0x7981 +0x3D7C 0x8FD1 +0x3D7D 0x70EC +0x3D7E 0x6D78 +0x3E21 0x5C3D +0x3E22 0x52B2 +0x3E23 0x8346 +0x3E24 0x5162 +0x3E25 0x830E +0x3E26 0x775B +0x3E27 0x6676 +0x3E28 0x9CB8 +0x3E29 0x4EAC +0x3E2A 0x60CA +0x3E2B 0x7CBE +0x3E2C 0x7CB3 +0x3E2D 0x7ECF +0x3E2E 0x4E95 +0x3E2F 0x8B66 +0x3E30 0x666F +0x3E31 0x9888 +0x3E32 0x9759 +0x3E33 0x5883 +0x3E34 0x656C +0x3E35 0x955C +0x3E36 0x5F84 +0x3E37 0x75C9 +0x3E38 0x9756 +0x3E39 0x7ADF +0x3E3A 0x7ADE +0x3E3B 0x51C0 +0x3E3C 0x70AF +0x3E3D 0x7A98 +0x3E3E 0x63EA +0x3E3F 0x7A76 +0x3E40 0x7EA0 +0x3E41 0x7396 +0x3E42 0x97ED +0x3E43 0x4E45 +0x3E44 0x7078 +0x3E45 0x4E5D +0x3E46 0x9152 +0x3E47 0x53A9 +0x3E48 0x6551 +0x3E49 0x65E7 +0x3E4A 0x81FC +0x3E4B 0x8205 +0x3E4C 0x548E +0x3E4D 0x5C31 +0x3E4E 0x759A +0x3E4F 0x97A0 +0x3E50 0x62D8 +0x3E51 0x72D9 +0x3E52 0x75BD +0x3E53 0x5C45 +0x3E54 0x9A79 +0x3E55 0x83CA +0x3E56 0x5C40 +0x3E57 0x5480 +0x3E58 0x77E9 +0x3E59 0x4E3E +0x3E5A 0x6CAE +0x3E5B 0x805A +0x3E5C 0x62D2 +0x3E5D 0x636E +0x3E5E 0x5DE8 +0x3E5F 0x5177 +0x3E60 0x8DDD +0x3E61 0x8E1E +0x3E62 0x952F +0x3E63 0x4FF1 +0x3E64 0x53E5 +0x3E65 0x60E7 +0x3E66 0x70AC +0x3E67 0x5267 +0x3E68 0x6350 +0x3E69 0x9E43 +0x3E6A 0x5A1F +0x3E6B 0x5026 +0x3E6C 0x7737 +0x3E6D 0x5377 +0x3E6E 0x7EE2 +0x3E6F 0x6485 +0x3E70 0x652B +0x3E71 0x6289 +0x3E72 0x6398 +0x3E73 0x5014 +0x3E74 0x7235 +0x3E75 0x89C9 +0x3E76 0x51B3 +0x3E77 0x8BC0 +0x3E78 0x7EDD +0x3E79 0x5747 +0x3E7A 0x83CC +0x3E7B 0x94A7 +0x3E7C 0x519B +0x3E7D 0x541B +0x3E7E 0x5CFB +0x3F21 0x4FCA +0x3F22 0x7AE3 +0x3F23 0x6D5A +0x3F24 0x90E1 +0x3F25 0x9A8F +0x3F26 0x5580 +0x3F27 0x5496 +0x3F28 0x5361 +0x3F29 0x54AF +0x3F2A 0x5F00 +0x3F2B 0x63E9 +0x3F2C 0x6977 +0x3F2D 0x51EF +0x3F2E 0x6168 +0x3F2F 0x520A +0x3F30 0x582A +0x3F31 0x52D8 +0x3F32 0x574E +0x3F33 0x780D +0x3F34 0x770B +0x3F35 0x5EB7 +0x3F36 0x6177 +0x3F37 0x7CE0 +0x3F38 0x625B +0x3F39 0x6297 +0x3F3A 0x4EA2 +0x3F3B 0x7095 +0x3F3C 0x8003 +0x3F3D 0x62F7 +0x3F3E 0x70E4 +0x3F3F 0x9760 +0x3F40 0x5777 +0x3F41 0x82DB +0x3F42 0x67EF +0x3F43 0x68F5 +0x3F44 0x78D5 +0x3F45 0x9897 +0x3F46 0x79D1 +0x3F47 0x58F3 +0x3F48 0x54B3 +0x3F49 0x53EF +0x3F4A 0x6E34 +0x3F4B 0x514B +0x3F4C 0x523B +0x3F4D 0x5BA2 +0x3F4E 0x8BFE +0x3F4F 0x80AF +0x3F50 0x5543 +0x3F51 0x57A6 +0x3F52 0x6073 +0x3F53 0x5751 +0x3F54 0x542D +0x3F55 0x7A7A +0x3F56 0x6050 +0x3F57 0x5B54 +0x3F58 0x63A7 +0x3F59 0x62A0 +0x3F5A 0x53E3 +0x3F5B 0x6263 +0x3F5C 0x5BC7 +0x3F5D 0x67AF +0x3F5E 0x54ED +0x3F5F 0x7A9F +0x3F60 0x82E6 +0x3F61 0x9177 +0x3F62 0x5E93 +0x3F63 0x88E4 +0x3F64 0x5938 +0x3F65 0x57AE +0x3F66 0x630E +0x3F67 0x8DE8 +0x3F68 0x80EF +0x3F69 0x5757 +0x3F6A 0x7B77 +0x3F6B 0x4FA9 +0x3F6C 0x5FEB +0x3F6D 0x5BBD +0x3F6E 0x6B3E +0x3F6F 0x5321 +0x3F70 0x7B50 +0x3F71 0x72C2 +0x3F72 0x6846 +0x3F73 0x77FF +0x3F74 0x7736 +0x3F75 0x65F7 +0x3F76 0x51B5 +0x3F77 0x4E8F +0x3F78 0x76D4 +0x3F79 0x5CBF +0x3F7A 0x7AA5 +0x3F7B 0x8475 +0x3F7C 0x594E +0x3F7D 0x9B41 +0x3F7E 0x5080 +0x4021 0x9988 +0x4022 0x6127 +0x4023 0x6E83 +0x4024 0x5764 +0x4025 0x6606 +0x4026 0x6346 +0x4027 0x56F0 +0x4028 0x62EC +0x4029 0x6269 +0x402A 0x5ED3 +0x402B 0x9614 +0x402C 0x5783 +0x402D 0x62C9 +0x402E 0x5587 +0x402F 0x8721 +0x4030 0x814A +0x4031 0x8FA3 +0x4032 0x5566 +0x4033 0x83B1 +0x4034 0x6765 +0x4035 0x8D56 +0x4036 0x84DD +0x4037 0x5A6A +0x4038 0x680F +0x4039 0x62E6 +0x403A 0x7BEE +0x403B 0x9611 +0x403C 0x5170 +0x403D 0x6F9C +0x403E 0x8C30 +0x403F 0x63FD +0x4040 0x89C8 +0x4041 0x61D2 +0x4042 0x7F06 +0x4043 0x70C2 +0x4044 0x6EE5 +0x4045 0x7405 +0x4046 0x6994 +0x4047 0x72FC +0x4048 0x5ECA +0x4049 0x90CE +0x404A 0x6717 +0x404B 0x6D6A +0x404C 0x635E +0x404D 0x52B3 +0x404E 0x7262 +0x404F 0x8001 +0x4050 0x4F6C +0x4051 0x59E5 +0x4052 0x916A +0x4053 0x70D9 +0x4054 0x6D9D +0x4055 0x52D2 +0x4056 0x4E50 +0x4057 0x96F7 +0x4058 0x956D +0x4059 0x857E +0x405A 0x78CA +0x405B 0x7D2F +0x405C 0x5121 +0x405D 0x5792 +0x405E 0x64C2 +0x405F 0x808B +0x4060 0x7C7B +0x4061 0x6CEA +0x4062 0x68F1 +0x4063 0x695E +0x4064 0x51B7 +0x4065 0x5398 +0x4066 0x68A8 +0x4067 0x7281 +0x4068 0x9ECE +0x4069 0x7BF1 +0x406A 0x72F8 +0x406B 0x79BB +0x406C 0x6F13 +0x406D 0x7406 +0x406E 0x674E +0x406F 0x91CC +0x4070 0x9CA4 +0x4071 0x793C +0x4072 0x8389 +0x4073 0x8354 +0x4074 0x540F +0x4075 0x6817 +0x4076 0x4E3D +0x4077 0x5389 +0x4078 0x52B1 +0x4079 0x783E +0x407A 0x5386 +0x407B 0x5229 +0x407C 0x5088 +0x407D 0x4F8B +0x407E 0x4FD0 +0x4121 0x75E2 +0x4122 0x7ACB +0x4123 0x7C92 +0x4124 0x6CA5 +0x4125 0x96B6 +0x4126 0x529B +0x4127 0x7483 +0x4128 0x54E9 +0x4129 0x4FE9 +0x412A 0x8054 +0x412B 0x83B2 +0x412C 0x8FDE +0x412D 0x9570 +0x412E 0x5EC9 +0x412F 0x601C +0x4130 0x6D9F +0x4131 0x5E18 +0x4132 0x655B +0x4133 0x8138 +0x4134 0x94FE +0x4135 0x604B +0x4136 0x70BC +0x4137 0x7EC3 +0x4138 0x7CAE +0x4139 0x51C9 +0x413A 0x6881 +0x413B 0x7CB1 +0x413C 0x826F +0x413D 0x4E24 +0x413E 0x8F86 +0x413F 0x91CF +0x4140 0x667E +0x4141 0x4EAE +0x4142 0x8C05 +0x4143 0x64A9 +0x4144 0x804A +0x4145 0x50DA +0x4146 0x7597 +0x4147 0x71CE +0x4148 0x5BE5 +0x4149 0x8FBD +0x414A 0x6F66 +0x414B 0x4E86 +0x414C 0x6482 +0x414D 0x9563 +0x414E 0x5ED6 +0x414F 0x6599 +0x4150 0x5217 +0x4151 0x88C2 +0x4152 0x70C8 +0x4153 0x52A3 +0x4154 0x730E +0x4155 0x7433 +0x4156 0x6797 +0x4157 0x78F7 +0x4158 0x9716 +0x4159 0x4E34 +0x415A 0x90BB +0x415B 0x9CDE +0x415C 0x6DCB +0x415D 0x51DB +0x415E 0x8D41 +0x415F 0x541D +0x4160 0x62CE +0x4161 0x73B2 +0x4162 0x83F1 +0x4163 0x96F6 +0x4164 0x9F84 +0x4165 0x94C3 +0x4166 0x4F36 +0x4167 0x7F9A +0x4168 0x51CC +0x4169 0x7075 +0x416A 0x9675 +0x416B 0x5CAD +0x416C 0x9886 +0x416D 0x53E6 +0x416E 0x4EE4 +0x416F 0x6E9C +0x4170 0x7409 +0x4171 0x69B4 +0x4172 0x786B +0x4173 0x998F +0x4174 0x7559 +0x4175 0x5218 +0x4176 0x7624 +0x4177 0x6D41 +0x4178 0x67F3 +0x4179 0x516D +0x417A 0x9F99 +0x417B 0x804B +0x417C 0x5499 +0x417D 0x7B3C +0x417E 0x7ABF +0x4221 0x9686 +0x4222 0x5784 +0x4223 0x62E2 +0x4224 0x9647 +0x4225 0x697C +0x4226 0x5A04 +0x4227 0x6402 +0x4228 0x7BD3 +0x4229 0x6F0F +0x422A 0x964B +0x422B 0x82A6 +0x422C 0x5362 +0x422D 0x9885 +0x422E 0x5E90 +0x422F 0x7089 +0x4230 0x63B3 +0x4231 0x5364 +0x4232 0x864F +0x4233 0x9C81 +0x4234 0x9E93 +0x4235 0x788C +0x4236 0x9732 +0x4237 0x8DEF +0x4238 0x8D42 +0x4239 0x9E7F +0x423A 0x6F5E +0x423B 0x7984 +0x423C 0x5F55 +0x423D 0x9646 +0x423E 0x622E +0x423F 0x9A74 +0x4240 0x5415 +0x4241 0x94DD +0x4242 0x4FA3 +0x4243 0x65C5 +0x4244 0x5C65 +0x4245 0x5C61 +0x4246 0x7F15 +0x4247 0x8651 +0x4248 0x6C2F +0x4249 0x5F8B +0x424A 0x7387 +0x424B 0x6EE4 +0x424C 0x7EFF +0x424D 0x5CE6 +0x424E 0x631B +0x424F 0x5B6A +0x4250 0x6EE6 +0x4251 0x5375 +0x4252 0x4E71 +0x4253 0x63A0 +0x4254 0x7565 +0x4255 0x62A1 +0x4256 0x8F6E +0x4257 0x4F26 +0x4258 0x4ED1 +0x4259 0x6CA6 +0x425A 0x7EB6 +0x425B 0x8BBA +0x425C 0x841D +0x425D 0x87BA +0x425E 0x7F57 +0x425F 0x903B +0x4260 0x9523 +0x4261 0x7BA9 +0x4262 0x9AA1 +0x4263 0x88F8 +0x4264 0x843D +0x4265 0x6D1B +0x4266 0x9A86 +0x4267 0x7EDC +0x4268 0x5988 +0x4269 0x9EBB +0x426A 0x739B +0x426B 0x7801 +0x426C 0x8682 +0x426D 0x9A6C +0x426E 0x9A82 +0x426F 0x561B +0x4270 0x5417 +0x4271 0x57CB +0x4272 0x4E70 +0x4273 0x9EA6 +0x4274 0x5356 +0x4275 0x8FC8 +0x4276 0x8109 +0x4277 0x7792 +0x4278 0x9992 +0x4279 0x86EE +0x427A 0x6EE1 +0x427B 0x8513 +0x427C 0x66FC +0x427D 0x6162 +0x427E 0x6F2B +0x4321 0x8C29 +0x4322 0x8292 +0x4323 0x832B +0x4324 0x76F2 +0x4325 0x6C13 +0x4326 0x5FD9 +0x4327 0x83BD +0x4328 0x732B +0x4329 0x8305 +0x432A 0x951A +0x432B 0x6BDB +0x432C 0x77DB +0x432D 0x94C6 +0x432E 0x536F +0x432F 0x8302 +0x4330 0x5192 +0x4331 0x5E3D +0x4332 0x8C8C +0x4333 0x8D38 +0x4334 0x4E48 +0x4335 0x73AB +0x4336 0x679A +0x4337 0x6885 +0x4338 0x9176 +0x4339 0x9709 +0x433A 0x7164 +0x433B 0x6CA1 +0x433C 0x7709 +0x433D 0x5A92 +0x433E 0x9541 +0x433F 0x6BCF +0x4340 0x7F8E +0x4341 0x6627 +0x4342 0x5BD0 +0x4343 0x59B9 +0x4344 0x5A9A +0x4345 0x95E8 +0x4346 0x95F7 +0x4347 0x4EEC +0x4348 0x840C +0x4349 0x8499 +0x434A 0x6AAC +0x434B 0x76DF +0x434C 0x9530 +0x434D 0x731B +0x434E 0x68A6 +0x434F 0x5B5F +0x4350 0x772F +0x4351 0x919A +0x4352 0x9761 +0x4353 0x7CDC +0x4354 0x8FF7 +0x4355 0x8C1C +0x4356 0x5F25 +0x4357 0x7C73 +0x4358 0x79D8 +0x4359 0x89C5 +0x435A 0x6CCC +0x435B 0x871C +0x435C 0x5BC6 +0x435D 0x5E42 +0x435E 0x68C9 +0x435F 0x7720 +0x4360 0x7EF5 +0x4361 0x5195 +0x4362 0x514D +0x4363 0x52C9 +0x4364 0x5A29 +0x4365 0x7F05 +0x4366 0x9762 +0x4367 0x82D7 +0x4368 0x63CF +0x4369 0x7784 +0x436A 0x85D0 +0x436B 0x79D2 +0x436C 0x6E3A +0x436D 0x5E99 +0x436E 0x5999 +0x436F 0x8511 +0x4370 0x706D +0x4371 0x6C11 +0x4372 0x62BF +0x4373 0x76BF +0x4374 0x654F +0x4375 0x60AF +0x4376 0x95FD +0x4377 0x660E +0x4378 0x879F +0x4379 0x9E23 +0x437A 0x94ED +0x437B 0x540D +0x437C 0x547D +0x437D 0x8C2C +0x437E 0x6478 +0x4421 0x6479 +0x4422 0x8611 +0x4423 0x6A21 +0x4424 0x819C +0x4425 0x78E8 +0x4426 0x6469 +0x4427 0x9B54 +0x4428 0x62B9 +0x4429 0x672B +0x442A 0x83AB +0x442B 0x58A8 +0x442C 0x9ED8 +0x442D 0x6CAB +0x442E 0x6F20 +0x442F 0x5BDE +0x4430 0x964C +0x4431 0x8C0B +0x4432 0x725F +0x4433 0x67D0 +0x4434 0x62C7 +0x4435 0x7261 +0x4436 0x4EA9 +0x4437 0x59C6 +0x4438 0x6BCD +0x4439 0x5893 +0x443A 0x66AE +0x443B 0x5E55 +0x443C 0x52DF +0x443D 0x6155 +0x443E 0x6728 +0x443F 0x76EE +0x4440 0x7766 +0x4441 0x7267 +0x4442 0x7A46 +0x4443 0x62FF +0x4444 0x54EA +0x4445 0x5450 +0x4446 0x94A0 +0x4447 0x90A3 +0x4448 0x5A1C +0x4449 0x7EB3 +0x444A 0x6C16 +0x444B 0x4E43 +0x444C 0x5976 +0x444D 0x8010 +0x444E 0x5948 +0x444F 0x5357 +0x4450 0x7537 +0x4451 0x96BE +0x4452 0x56CA +0x4453 0x6320 +0x4454 0x8111 +0x4455 0x607C +0x4456 0x95F9 +0x4457 0x6DD6 +0x4458 0x5462 +0x4459 0x9981 +0x445A 0x5185 +0x445B 0x5AE9 +0x445C 0x80FD +0x445D 0x59AE +0x445E 0x9713 +0x445F 0x502A +0x4460 0x6CE5 +0x4461 0x5C3C +0x4462 0x62DF +0x4463 0x4F60 +0x4464 0x533F +0x4465 0x817B +0x4466 0x9006 +0x4467 0x6EBA +0x4468 0x852B +0x4469 0x62C8 +0x446A 0x5E74 +0x446B 0x78BE +0x446C 0x64B5 +0x446D 0x637B +0x446E 0x5FF5 +0x446F 0x5A18 +0x4470 0x917F +0x4471 0x9E1F +0x4472 0x5C3F +0x4473 0x634F +0x4474 0x8042 +0x4475 0x5B7D +0x4476 0x556E +0x4477 0x954A +0x4478 0x954D +0x4479 0x6D85 +0x447A 0x60A8 +0x447B 0x67E0 +0x447C 0x72DE +0x447D 0x51DD +0x447E 0x5B81 +0x4521 0x62E7 +0x4522 0x6CDE +0x4523 0x725B +0x4524 0x626D +0x4525 0x94AE +0x4526 0x7EBD +0x4527 0x8113 +0x4528 0x6D53 +0x4529 0x519C +0x452A 0x5F04 +0x452B 0x5974 +0x452C 0x52AA +0x452D 0x6012 +0x452E 0x5973 +0x452F 0x6696 +0x4530 0x8650 +0x4531 0x759F +0x4532 0x632A +0x4533 0x61E6 +0x4534 0x7CEF +0x4535 0x8BFA +0x4536 0x54E6 +0x4537 0x6B27 +0x4538 0x9E25 +0x4539 0x6BB4 +0x453A 0x85D5 +0x453B 0x5455 +0x453C 0x5076 +0x453D 0x6CA4 +0x453E 0x556A +0x453F 0x8DB4 +0x4540 0x722C +0x4541 0x5E15 +0x4542 0x6015 +0x4543 0x7436 +0x4544 0x62CD +0x4545 0x6392 +0x4546 0x724C +0x4547 0x5F98 +0x4548 0x6E43 +0x4549 0x6D3E +0x454A 0x6500 +0x454B 0x6F58 +0x454C 0x76D8 +0x454D 0x78D0 +0x454E 0x76FC +0x454F 0x7554 +0x4550 0x5224 +0x4551 0x53DB +0x4552 0x4E53 +0x4553 0x5E9E +0x4554 0x65C1 +0x4555 0x802A +0x4556 0x80D6 +0x4557 0x629B +0x4558 0x5486 +0x4559 0x5228 +0x455A 0x70AE +0x455B 0x888D +0x455C 0x8DD1 +0x455D 0x6CE1 +0x455E 0x5478 +0x455F 0x80DA +0x4560 0x57F9 +0x4561 0x88F4 +0x4562 0x8D54 +0x4563 0x966A +0x4564 0x914D +0x4565 0x4F69 +0x4566 0x6C9B +0x4567 0x55B7 +0x4568 0x76C6 +0x4569 0x7830 +0x456A 0x62A8 +0x456B 0x70F9 +0x456C 0x6F8E +0x456D 0x5F6D +0x456E 0x84EC +0x456F 0x68DA +0x4570 0x787C +0x4571 0x7BF7 +0x4572 0x81A8 +0x4573 0x670B +0x4574 0x9E4F +0x4575 0x6367 +0x4576 0x78B0 +0x4577 0x576F +0x4578 0x7812 +0x4579 0x9739 +0x457A 0x6279 +0x457B 0x62AB +0x457C 0x5288 +0x457D 0x7435 +0x457E 0x6BD7 +0x4621 0x5564 +0x4622 0x813E +0x4623 0x75B2 +0x4624 0x76AE +0x4625 0x5339 +0x4626 0x75DE +0x4627 0x50FB +0x4628 0x5C41 +0x4629 0x8B6C +0x462A 0x7BC7 +0x462B 0x504F +0x462C 0x7247 +0x462D 0x9A97 +0x462E 0x98D8 +0x462F 0x6F02 +0x4630 0x74E2 +0x4631 0x7968 +0x4632 0x6487 +0x4633 0x77A5 +0x4634 0x62FC +0x4635 0x9891 +0x4636 0x8D2B +0x4637 0x54C1 +0x4638 0x8058 +0x4639 0x4E52 +0x463A 0x576A +0x463B 0x82F9 +0x463C 0x840D +0x463D 0x5E73 +0x463E 0x51ED +0x463F 0x74F6 +0x4640 0x8BC4 +0x4641 0x5C4F +0x4642 0x5761 +0x4643 0x6CFC +0x4644 0x9887 +0x4645 0x5A46 +0x4646 0x7834 +0x4647 0x9B44 +0x4648 0x8FEB +0x4649 0x7C95 +0x464A 0x5256 +0x464B 0x6251 +0x464C 0x94FA +0x464D 0x4EC6 +0x464E 0x8386 +0x464F 0x8461 +0x4650 0x83E9 +0x4651 0x84B2 +0x4652 0x57D4 +0x4653 0x6734 +0x4654 0x5703 +0x4655 0x666E +0x4656 0x6D66 +0x4657 0x8C31 +0x4658 0x66DD +0x4659 0x7011 +0x465A 0x671F +0x465B 0x6B3A +0x465C 0x6816 +0x465D 0x621A +0x465E 0x59BB +0x465F 0x4E03 +0x4660 0x51C4 +0x4661 0x6F06 +0x4662 0x67D2 +0x4663 0x6C8F +0x4664 0x5176 +0x4665 0x68CB +0x4666 0x5947 +0x4667 0x6B67 +0x4668 0x7566 +0x4669 0x5D0E +0x466A 0x8110 +0x466B 0x9F50 +0x466C 0x65D7 +0x466D 0x7948 +0x466E 0x7941 +0x466F 0x9A91 +0x4670 0x8D77 +0x4671 0x5C82 +0x4672 0x4E5E +0x4673 0x4F01 +0x4674 0x542F +0x4675 0x5951 +0x4676 0x780C +0x4677 0x5668 +0x4678 0x6C14 +0x4679 0x8FC4 +0x467A 0x5F03 +0x467B 0x6C7D +0x467C 0x6CE3 +0x467D 0x8BAB +0x467E 0x6390 +0x4721 0x6070 +0x4722 0x6D3D +0x4723 0x7275 +0x4724 0x6266 +0x4725 0x948E +0x4726 0x94C5 +0x4727 0x5343 +0x4728 0x8FC1 +0x4729 0x7B7E +0x472A 0x4EDF +0x472B 0x8C26 +0x472C 0x4E7E +0x472D 0x9ED4 +0x472E 0x94B1 +0x472F 0x94B3 +0x4730 0x524D +0x4731 0x6F5C +0x4732 0x9063 +0x4733 0x6D45 +0x4734 0x8C34 +0x4735 0x5811 +0x4736 0x5D4C +0x4737 0x6B20 +0x4738 0x6B49 +0x4739 0x67AA +0x473A 0x545B +0x473B 0x8154 +0x473C 0x7F8C +0x473D 0x5899 +0x473E 0x8537 +0x473F 0x5F3A +0x4740 0x62A2 +0x4741 0x6A47 +0x4742 0x9539 +0x4743 0x6572 +0x4744 0x6084 +0x4745 0x6865 +0x4746 0x77A7 +0x4747 0x4E54 +0x4748 0x4FA8 +0x4749 0x5DE7 +0x474A 0x9798 +0x474B 0x64AC +0x474C 0x7FD8 +0x474D 0x5CED +0x474E 0x4FCF +0x474F 0x7A8D +0x4750 0x5207 +0x4751 0x8304 +0x4752 0x4E14 +0x4753 0x602F +0x4754 0x7A83 +0x4755 0x94A6 +0x4756 0x4FB5 +0x4757 0x4EB2 +0x4758 0x79E6 +0x4759 0x7434 +0x475A 0x52E4 +0x475B 0x82B9 +0x475C 0x64D2 +0x475D 0x79BD +0x475E 0x5BDD +0x475F 0x6C81 +0x4760 0x9752 +0x4761 0x8F7B +0x4762 0x6C22 +0x4763 0x503E +0x4764 0x537F +0x4765 0x6E05 +0x4766 0x64CE +0x4767 0x6674 +0x4768 0x6C30 +0x4769 0x60C5 +0x476A 0x9877 +0x476B 0x8BF7 +0x476C 0x5E86 +0x476D 0x743C +0x476E 0x7A77 +0x476F 0x79CB +0x4770 0x4E18 +0x4771 0x90B1 +0x4772 0x7403 +0x4773 0x6C42 +0x4774 0x56DA +0x4775 0x914B +0x4776 0x6CC5 +0x4777 0x8D8B +0x4778 0x533A +0x4779 0x86C6 +0x477A 0x66F2 +0x477B 0x8EAF +0x477C 0x5C48 +0x477D 0x9A71 +0x477E 0x6E20 +0x4821 0x53D6 +0x4822 0x5A36 +0x4823 0x9F8B +0x4824 0x8DA3 +0x4825 0x53BB +0x4826 0x5708 +0x4827 0x98A7 +0x4828 0x6743 +0x4829 0x919B +0x482A 0x6CC9 +0x482B 0x5168 +0x482C 0x75CA +0x482D 0x62F3 +0x482E 0x72AC +0x482F 0x5238 +0x4830 0x529D +0x4831 0x7F3A +0x4832 0x7094 +0x4833 0x7638 +0x4834 0x5374 +0x4835 0x9E4A +0x4836 0x69B7 +0x4837 0x786E +0x4838 0x96C0 +0x4839 0x88D9 +0x483A 0x7FA4 +0x483B 0x7136 +0x483C 0x71C3 +0x483D 0x5189 +0x483E 0x67D3 +0x483F 0x74E4 +0x4840 0x58E4 +0x4841 0x6518 +0x4842 0x56B7 +0x4843 0x8BA9 +0x4844 0x9976 +0x4845 0x6270 +0x4846 0x7ED5 +0x4847 0x60F9 +0x4848 0x70ED +0x4849 0x58EC +0x484A 0x4EC1 +0x484B 0x4EBA +0x484C 0x5FCD +0x484D 0x97E7 +0x484E 0x4EFB +0x484F 0x8BA4 +0x4850 0x5203 +0x4851 0x598A +0x4852 0x7EAB +0x4853 0x6254 +0x4854 0x4ECD +0x4855 0x65E5 +0x4856 0x620E +0x4857 0x8338 +0x4858 0x84C9 +0x4859 0x8363 +0x485A 0x878D +0x485B 0x7194 +0x485C 0x6EB6 +0x485D 0x5BB9 +0x485E 0x7ED2 +0x485F 0x5197 +0x4860 0x63C9 +0x4861 0x67D4 +0x4862 0x8089 +0x4863 0x8339 +0x4864 0x8815 +0x4865 0x5112 +0x4866 0x5B7A +0x4867 0x5982 +0x4868 0x8FB1 +0x4869 0x4E73 +0x486A 0x6C5D +0x486B 0x5165 +0x486C 0x8925 +0x486D 0x8F6F +0x486E 0x962E +0x486F 0x854A +0x4870 0x745E +0x4871 0x9510 +0x4872 0x95F0 +0x4873 0x6DA6 +0x4874 0x82E5 +0x4875 0x5F31 +0x4876 0x6492 +0x4877 0x6D12 +0x4878 0x8428 +0x4879 0x816E +0x487A 0x9CC3 +0x487B 0x585E +0x487C 0x8D5B +0x487D 0x4E09 +0x487E 0x53C1 +0x4921 0x4F1E +0x4922 0x6563 +0x4923 0x6851 +0x4924 0x55D3 +0x4925 0x4E27 +0x4926 0x6414 +0x4927 0x9A9A +0x4928 0x626B +0x4929 0x5AC2 +0x492A 0x745F +0x492B 0x8272 +0x492C 0x6DA9 +0x492D 0x68EE +0x492E 0x50E7 +0x492F 0x838E +0x4930 0x7802 +0x4931 0x6740 +0x4932 0x5239 +0x4933 0x6C99 +0x4934 0x7EB1 +0x4935 0x50BB +0x4936 0x5565 +0x4937 0x715E +0x4938 0x7B5B +0x4939 0x6652 +0x493A 0x73CA +0x493B 0x82EB +0x493C 0x6749 +0x493D 0x5C71 +0x493E 0x5220 +0x493F 0x717D +0x4940 0x886B +0x4941 0x95EA +0x4942 0x9655 +0x4943 0x64C5 +0x4944 0x8D61 +0x4945 0x81B3 +0x4946 0x5584 +0x4947 0x6C55 +0x4948 0x6247 +0x4949 0x7F2E +0x494A 0x5892 +0x494B 0x4F24 +0x494C 0x5546 +0x494D 0x8D4F +0x494E 0x664C +0x494F 0x4E0A +0x4950 0x5C1A +0x4951 0x88F3 +0x4952 0x68A2 +0x4953 0x634E +0x4954 0x7A0D +0x4955 0x70E7 +0x4956 0x828D +0x4957 0x52FA +0x4958 0x97F6 +0x4959 0x5C11 +0x495A 0x54E8 +0x495B 0x90B5 +0x495C 0x7ECD +0x495D 0x5962 +0x495E 0x8D4A +0x495F 0x86C7 +0x4960 0x820C +0x4961 0x820D +0x4962 0x8D66 +0x4963 0x6444 +0x4964 0x5C04 +0x4965 0x6151 +0x4966 0x6D89 +0x4967 0x793E +0x4968 0x8BBE +0x4969 0x7837 +0x496A 0x7533 +0x496B 0x547B +0x496C 0x4F38 +0x496D 0x8EAB +0x496E 0x6DF1 +0x496F 0x5A20 +0x4970 0x7EC5 +0x4971 0x795E +0x4972 0x6C88 +0x4973 0x5BA1 +0x4974 0x5A76 +0x4975 0x751A +0x4976 0x80BE +0x4977 0x614E +0x4978 0x6E17 +0x4979 0x58F0 +0x497A 0x751F +0x497B 0x7525 +0x497C 0x7272 +0x497D 0x5347 +0x497E 0x7EF3 +0x4A21 0x7701 +0x4A22 0x76DB +0x4A23 0x5269 +0x4A24 0x80DC +0x4A25 0x5723 +0x4A26 0x5E08 +0x4A27 0x5931 +0x4A28 0x72EE +0x4A29 0x65BD +0x4A2A 0x6E7F +0x4A2B 0x8BD7 +0x4A2C 0x5C38 +0x4A2D 0x8671 +0x4A2E 0x5341 +0x4A2F 0x77F3 +0x4A30 0x62FE +0x4A31 0x65F6 +0x4A32 0x4EC0 +0x4A33 0x98DF +0x4A34 0x8680 +0x4A35 0x5B9E +0x4A36 0x8BC6 +0x4A37 0x53F2 +0x4A38 0x77E2 +0x4A39 0x4F7F +0x4A3A 0x5C4E +0x4A3B 0x9A76 +0x4A3C 0x59CB +0x4A3D 0x5F0F +0x4A3E 0x793A +0x4A3F 0x58EB +0x4A40 0x4E16 +0x4A41 0x67FF +0x4A42 0x4E8B +0x4A43 0x62ED +0x4A44 0x8A93 +0x4A45 0x901D +0x4A46 0x52BF +0x4A47 0x662F +0x4A48 0x55DC +0x4A49 0x566C +0x4A4A 0x9002 +0x4A4B 0x4ED5 +0x4A4C 0x4F8D +0x4A4D 0x91CA +0x4A4E 0x9970 +0x4A4F 0x6C0F +0x4A50 0x5E02 +0x4A51 0x6043 +0x4A52 0x5BA4 +0x4A53 0x89C6 +0x4A54 0x8BD5 +0x4A55 0x6536 +0x4A56 0x624B +0x4A57 0x9996 +0x4A58 0x5B88 +0x4A59 0x5BFF +0x4A5A 0x6388 +0x4A5B 0x552E +0x4A5C 0x53D7 +0x4A5D 0x7626 +0x4A5E 0x517D +0x4A5F 0x852C +0x4A60 0x67A2 +0x4A61 0x68B3 +0x4A62 0x6B8A +0x4A63 0x6292 +0x4A64 0x8F93 +0x4A65 0x53D4 +0x4A66 0x8212 +0x4A67 0x6DD1 +0x4A68 0x758F +0x4A69 0x4E66 +0x4A6A 0x8D4E +0x4A6B 0x5B70 +0x4A6C 0x719F +0x4A6D 0x85AF +0x4A6E 0x6691 +0x4A6F 0x66D9 +0x4A70 0x7F72 +0x4A71 0x8700 +0x4A72 0x9ECD +0x4A73 0x9F20 +0x4A74 0x5C5E +0x4A75 0x672F +0x4A76 0x8FF0 +0x4A77 0x6811 +0x4A78 0x675F +0x4A79 0x620D +0x4A7A 0x7AD6 +0x4A7B 0x5885 +0x4A7C 0x5EB6 +0x4A7D 0x6570 +0x4A7E 0x6F31 +0x4B21 0x6055 +0x4B22 0x5237 +0x4B23 0x800D +0x4B24 0x6454 +0x4B25 0x8870 +0x4B26 0x7529 +0x4B27 0x5E05 +0x4B28 0x6813 +0x4B29 0x62F4 +0x4B2A 0x971C +0x4B2B 0x53CC +0x4B2C 0x723D +0x4B2D 0x8C01 +0x4B2E 0x6C34 +0x4B2F 0x7761 +0x4B30 0x7A0E +0x4B31 0x542E +0x4B32 0x77AC +0x4B33 0x987A +0x4B34 0x821C +0x4B35 0x8BF4 +0x4B36 0x7855 +0x4B37 0x6714 +0x4B38 0x70C1 +0x4B39 0x65AF +0x4B3A 0x6495 +0x4B3B 0x5636 +0x4B3C 0x601D +0x4B3D 0x79C1 +0x4B3E 0x53F8 +0x4B3F 0x4E1D +0x4B40 0x6B7B +0x4B41 0x8086 +0x4B42 0x5BFA +0x4B43 0x55E3 +0x4B44 0x56DB +0x4B45 0x4F3A +0x4B46 0x4F3C +0x4B47 0x9972 +0x4B48 0x5DF3 +0x4B49 0x677E +0x4B4A 0x8038 +0x4B4B 0x6002 +0x4B4C 0x9882 +0x4B4D 0x9001 +0x4B4E 0x5B8B +0x4B4F 0x8BBC +0x4B50 0x8BF5 +0x4B51 0x641C +0x4B52 0x8258 +0x4B53 0x64DE +0x4B54 0x55FD +0x4B55 0x82CF +0x4B56 0x9165 +0x4B57 0x4FD7 +0x4B58 0x7D20 +0x4B59 0x901F +0x4B5A 0x7C9F +0x4B5B 0x50F3 +0x4B5C 0x5851 +0x4B5D 0x6EAF +0x4B5E 0x5BBF +0x4B5F 0x8BC9 +0x4B60 0x8083 +0x4B61 0x9178 +0x4B62 0x849C +0x4B63 0x7B97 +0x4B64 0x867D +0x4B65 0x968B +0x4B66 0x968F +0x4B67 0x7EE5 +0x4B68 0x9AD3 +0x4B69 0x788E +0x4B6A 0x5C81 +0x4B6B 0x7A57 +0x4B6C 0x9042 +0x4B6D 0x96A7 +0x4B6E 0x795F +0x4B6F 0x5B59 +0x4B70 0x635F +0x4B71 0x7B0B +0x4B72 0x84D1 +0x4B73 0x68AD +0x4B74 0x5506 +0x4B75 0x7F29 +0x4B76 0x7410 +0x4B77 0x7D22 +0x4B78 0x9501 +0x4B79 0x6240 +0x4B7A 0x584C +0x4B7B 0x4ED6 +0x4B7C 0x5B83 +0x4B7D 0x5979 +0x4B7E 0x5854 +0x4C21 0x736D +0x4C22 0x631E +0x4C23 0x8E4B +0x4C24 0x8E0F +0x4C25 0x80CE +0x4C26 0x82D4 +0x4C27 0x62AC +0x4C28 0x53F0 +0x4C29 0x6CF0 +0x4C2A 0x915E +0x4C2B 0x592A +0x4C2C 0x6001 +0x4C2D 0x6C70 +0x4C2E 0x574D +0x4C2F 0x644A +0x4C30 0x8D2A +0x4C31 0x762B +0x4C32 0x6EE9 +0x4C33 0x575B +0x4C34 0x6A80 +0x4C35 0x75F0 +0x4C36 0x6F6D +0x4C37 0x8C2D +0x4C38 0x8C08 +0x4C39 0x5766 +0x4C3A 0x6BEF +0x4C3B 0x8892 +0x4C3C 0x78B3 +0x4C3D 0x63A2 +0x4C3E 0x53F9 +0x4C3F 0x70AD +0x4C40 0x6C64 +0x4C41 0x5858 +0x4C42 0x642A +0x4C43 0x5802 +0x4C44 0x68E0 +0x4C45 0x819B +0x4C46 0x5510 +0x4C47 0x7CD6 +0x4C48 0x5018 +0x4C49 0x8EBA +0x4C4A 0x6DCC +0x4C4B 0x8D9F +0x4C4C 0x70EB +0x4C4D 0x638F +0x4C4E 0x6D9B +0x4C4F 0x6ED4 +0x4C50 0x7EE6 +0x4C51 0x8404 +0x4C52 0x6843 +0x4C53 0x9003 +0x4C54 0x6DD8 +0x4C55 0x9676 +0x4C56 0x8BA8 +0x4C57 0x5957 +0x4C58 0x7279 +0x4C59 0x85E4 +0x4C5A 0x817E +0x4C5B 0x75BC +0x4C5C 0x8A8A +0x4C5D 0x68AF +0x4C5E 0x5254 +0x4C5F 0x8E22 +0x4C60 0x9511 +0x4C61 0x63D0 +0x4C62 0x9898 +0x4C63 0x8E44 +0x4C64 0x557C +0x4C65 0x4F53 +0x4C66 0x66FF +0x4C67 0x568F +0x4C68 0x60D5 +0x4C69 0x6D95 +0x4C6A 0x5243 +0x4C6B 0x5C49 +0x4C6C 0x5929 +0x4C6D 0x6DFB +0x4C6E 0x586B +0x4C6F 0x7530 +0x4C70 0x751C +0x4C71 0x606C +0x4C72 0x8214 +0x4C73 0x8146 +0x4C74 0x6311 +0x4C75 0x6761 +0x4C76 0x8FE2 +0x4C77 0x773A +0x4C78 0x8DF3 +0x4C79 0x8D34 +0x4C7A 0x94C1 +0x4C7B 0x5E16 +0x4C7C 0x5385 +0x4C7D 0x542C +0x4C7E 0x70C3 +0x4D21 0x6C40 +0x4D22 0x5EF7 +0x4D23 0x505C +0x4D24 0x4EAD +0x4D25 0x5EAD +0x4D26 0x633A +0x4D27 0x8247 +0x4D28 0x901A +0x4D29 0x6850 +0x4D2A 0x916E +0x4D2B 0x77B3 +0x4D2C 0x540C +0x4D2D 0x94DC +0x4D2E 0x5F64 +0x4D2F 0x7AE5 +0x4D30 0x6876 +0x4D31 0x6345 +0x4D32 0x7B52 +0x4D33 0x7EDF +0x4D34 0x75DB +0x4D35 0x5077 +0x4D36 0x6295 +0x4D37 0x5934 +0x4D38 0x900F +0x4D39 0x51F8 +0x4D3A 0x79C3 +0x4D3B 0x7A81 +0x4D3C 0x56FE +0x4D3D 0x5F92 +0x4D3E 0x9014 +0x4D3F 0x6D82 +0x4D40 0x5C60 +0x4D41 0x571F +0x4D42 0x5410 +0x4D43 0x5154 +0x4D44 0x6E4D +0x4D45 0x56E2 +0x4D46 0x63A8 +0x4D47 0x9893 +0x4D48 0x817F +0x4D49 0x8715 +0x4D4A 0x892A +0x4D4B 0x9000 +0x4D4C 0x541E +0x4D4D 0x5C6F +0x4D4E 0x81C0 +0x4D4F 0x62D6 +0x4D50 0x6258 +0x4D51 0x8131 +0x4D52 0x9E35 +0x4D53 0x9640 +0x4D54 0x9A6E +0x4D55 0x9A7C +0x4D56 0x692D +0x4D57 0x59A5 +0x4D58 0x62D3 +0x4D59 0x553E +0x4D5A 0x6316 +0x4D5B 0x54C7 +0x4D5C 0x86D9 +0x4D5D 0x6D3C +0x4D5E 0x5A03 +0x4D5F 0x74E6 +0x4D60 0x889C +0x4D61 0x6B6A +0x4D62 0x5916 +0x4D63 0x8C4C +0x4D64 0x5F2F +0x4D65 0x6E7E +0x4D66 0x73A9 +0x4D67 0x987D +0x4D68 0x4E38 +0x4D69 0x70F7 +0x4D6A 0x5B8C +0x4D6B 0x7897 +0x4D6C 0x633D +0x4D6D 0x665A +0x4D6E 0x7696 +0x4D6F 0x60CB +0x4D70 0x5B9B +0x4D71 0x5A49 +0x4D72 0x4E07 +0x4D73 0x8155 +0x4D74 0x6C6A +0x4D75 0x738B +0x4D76 0x4EA1 +0x4D77 0x6789 +0x4D78 0x7F51 +0x4D79 0x5F80 +0x4D7A 0x65FA +0x4D7B 0x671B +0x4D7C 0x5FD8 +0x4D7D 0x5984 +0x4D7E 0x5A01 +0x4E21 0x5DCD +0x4E22 0x5FAE +0x4E23 0x5371 +0x4E24 0x97E6 +0x4E25 0x8FDD +0x4E26 0x6845 +0x4E27 0x56F4 +0x4E28 0x552F +0x4E29 0x60DF +0x4E2A 0x4E3A +0x4E2B 0x6F4D +0x4E2C 0x7EF4 +0x4E2D 0x82C7 +0x4E2E 0x840E +0x4E2F 0x59D4 +0x4E30 0x4F1F +0x4E31 0x4F2A +0x4E32 0x5C3E +0x4E33 0x7EAC +0x4E34 0x672A +0x4E35 0x851A +0x4E36 0x5473 +0x4E37 0x754F +0x4E38 0x80C3 +0x4E39 0x5582 +0x4E3A 0x9B4F +0x4E3B 0x4F4D +0x4E3C 0x6E2D +0x4E3D 0x8C13 +0x4E3E 0x5C09 +0x4E3F 0x6170 +0x4E40 0x536B +0x4E41 0x761F +0x4E42 0x6E29 +0x4E43 0x868A +0x4E44 0x6587 +0x4E45 0x95FB +0x4E46 0x7EB9 +0x4E47 0x543B +0x4E48 0x7A33 +0x4E49 0x7D0A +0x4E4A 0x95EE +0x4E4B 0x55E1 +0x4E4C 0x7FC1 +0x4E4D 0x74EE +0x4E4E 0x631D +0x4E4F 0x8717 +0x4E50 0x6DA1 +0x4E51 0x7A9D +0x4E52 0x6211 +0x4E53 0x65A1 +0x4E54 0x5367 +0x4E55 0x63E1 +0x4E56 0x6C83 +0x4E57 0x5DEB +0x4E58 0x545C +0x4E59 0x94A8 +0x4E5A 0x4E4C +0x4E5B 0x6C61 +0x4E5C 0x8BEC +0x4E5D 0x5C4B +0x4E5E 0x65E0 +0x4E5F 0x829C +0x4E60 0x68A7 +0x4E61 0x543E +0x4E62 0x5434 +0x4E63 0x6BCB +0x4E64 0x6B66 +0x4E65 0x4E94 +0x4E66 0x6342 +0x4E67 0x5348 +0x4E68 0x821E +0x4E69 0x4F0D +0x4E6A 0x4FAE +0x4E6B 0x575E +0x4E6C 0x620A +0x4E6D 0x96FE +0x4E6E 0x6664 +0x4E6F 0x7269 +0x4E70 0x52FF +0x4E71 0x52A1 +0x4E72 0x609F +0x4E73 0x8BEF +0x4E74 0x6614 +0x4E75 0x7199 +0x4E76 0x6790 +0x4E77 0x897F +0x4E78 0x7852 +0x4E79 0x77FD +0x4E7A 0x6670 +0x4E7B 0x563B +0x4E7C 0x5438 +0x4E7D 0x9521 +0x4E7E 0x727A +0x4F21 0x7A00 +0x4F22 0x606F +0x4F23 0x5E0C +0x4F24 0x6089 +0x4F25 0x819D +0x4F26 0x5915 +0x4F27 0x60DC +0x4F28 0x7184 +0x4F29 0x70EF +0x4F2A 0x6EAA +0x4F2B 0x6C50 +0x4F2C 0x7280 +0x4F2D 0x6A84 +0x4F2E 0x88AD +0x4F2F 0x5E2D +0x4F30 0x4E60 +0x4F31 0x5AB3 +0x4F32 0x559C +0x4F33 0x94E3 +0x4F34 0x6D17 +0x4F35 0x7CFB +0x4F36 0x9699 +0x4F37 0x620F +0x4F38 0x7EC6 +0x4F39 0x778E +0x4F3A 0x867E +0x4F3B 0x5323 +0x4F3C 0x971E +0x4F3D 0x8F96 +0x4F3E 0x6687 +0x4F3F 0x5CE1 +0x4F40 0x4FA0 +0x4F41 0x72ED +0x4F42 0x4E0B +0x4F43 0x53A6 +0x4F44 0x590F +0x4F45 0x5413 +0x4F46 0x6380 +0x4F47 0x9528 +0x4F48 0x5148 +0x4F49 0x4ED9 +0x4F4A 0x9C9C +0x4F4B 0x7EA4 +0x4F4C 0x54B8 +0x4F4D 0x8D24 +0x4F4E 0x8854 +0x4F4F 0x8237 +0x4F50 0x95F2 +0x4F51 0x6D8E +0x4F52 0x5F26 +0x4F53 0x5ACC +0x4F54 0x663E +0x4F55 0x9669 +0x4F56 0x73B0 +0x4F57 0x732E +0x4F58 0x53BF +0x4F59 0x817A +0x4F5A 0x9985 +0x4F5B 0x7FA1 +0x4F5C 0x5BAA +0x4F5D 0x9677 +0x4F5E 0x9650 +0x4F5F 0x7EBF +0x4F60 0x76F8 +0x4F61 0x53A2 +0x4F62 0x9576 +0x4F63 0x9999 +0x4F64 0x7BB1 +0x4F65 0x8944 +0x4F66 0x6E58 +0x4F67 0x4E61 +0x4F68 0x7FD4 +0x4F69 0x7965 +0x4F6A 0x8BE6 +0x4F6B 0x60F3 +0x4F6C 0x54CD +0x4F6D 0x4EAB +0x4F6E 0x9879 +0x4F6F 0x5DF7 +0x4F70 0x6A61 +0x4F71 0x50CF +0x4F72 0x5411 +0x4F73 0x8C61 +0x4F74 0x8427 +0x4F75 0x785D +0x4F76 0x9704 +0x4F77 0x524A +0x4F78 0x54EE +0x4F79 0x56A3 +0x4F7A 0x9500 +0x4F7B 0x6D88 +0x4F7C 0x5BB5 +0x4F7D 0x6DC6 +0x4F7E 0x6653 +0x5021 0x5C0F +0x5022 0x5B5D +0x5023 0x6821 +0x5024 0x8096 +0x5025 0x5578 +0x5026 0x7B11 +0x5027 0x6548 +0x5028 0x6954 +0x5029 0x4E9B +0x502A 0x6B47 +0x502B 0x874E +0x502C 0x978B +0x502D 0x534F +0x502E 0x631F +0x502F 0x643A +0x5030 0x90AA +0x5031 0x659C +0x5032 0x80C1 +0x5033 0x8C10 +0x5034 0x5199 +0x5035 0x68B0 +0x5036 0x5378 +0x5037 0x87F9 +0x5038 0x61C8 +0x5039 0x6CC4 +0x503A 0x6CFB +0x503B 0x8C22 +0x503C 0x5C51 +0x503D 0x85AA +0x503E 0x82AF +0x503F 0x950C +0x5040 0x6B23 +0x5041 0x8F9B +0x5042 0x65B0 +0x5043 0x5FFB +0x5044 0x5FC3 +0x5045 0x4FE1 +0x5046 0x8845 +0x5047 0x661F +0x5048 0x8165 +0x5049 0x7329 +0x504A 0x60FA +0x504B 0x5174 +0x504C 0x5211 +0x504D 0x578B +0x504E 0x5F62 +0x504F 0x90A2 +0x5050 0x884C +0x5051 0x9192 +0x5052 0x5E78 +0x5053 0x674F +0x5054 0x6027 +0x5055 0x59D3 +0x5056 0x5144 +0x5057 0x51F6 +0x5058 0x80F8 +0x5059 0x5308 +0x505A 0x6C79 +0x505B 0x96C4 +0x505C 0x718A +0x505D 0x4F11 +0x505E 0x4FEE +0x505F 0x7F9E +0x5060 0x673D +0x5061 0x55C5 +0x5062 0x9508 +0x5063 0x79C0 +0x5064 0x8896 +0x5065 0x7EE3 +0x5066 0x589F +0x5067 0x620C +0x5068 0x9700 +0x5069 0x865A +0x506A 0x5618 +0x506B 0x987B +0x506C 0x5F90 +0x506D 0x8BB8 +0x506E 0x84C4 +0x506F 0x9157 +0x5070 0x53D9 +0x5071 0x65ED +0x5072 0x5E8F +0x5073 0x755C +0x5074 0x6064 +0x5075 0x7D6E +0x5076 0x5A7F +0x5077 0x7EEA +0x5078 0x7EED +0x5079 0x8F69 +0x507A 0x55A7 +0x507B 0x5BA3 +0x507C 0x60AC +0x507D 0x65CB +0x507E 0x7384 +0x5121 0x9009 +0x5122 0x7663 +0x5123 0x7729 +0x5124 0x7EDA +0x5125 0x9774 +0x5126 0x859B +0x5127 0x5B66 +0x5128 0x7A74 +0x5129 0x96EA +0x512A 0x8840 +0x512B 0x52CB +0x512C 0x718F +0x512D 0x5FAA +0x512E 0x65EC +0x512F 0x8BE2 +0x5130 0x5BFB +0x5131 0x9A6F +0x5132 0x5DE1 +0x5133 0x6B89 +0x5134 0x6C5B +0x5135 0x8BAD +0x5136 0x8BAF +0x5137 0x900A +0x5138 0x8FC5 +0x5139 0x538B +0x513A 0x62BC +0x513B 0x9E26 +0x513C 0x9E2D +0x513D 0x5440 +0x513E 0x4E2B +0x513F 0x82BD +0x5140 0x7259 +0x5141 0x869C +0x5142 0x5D16 +0x5143 0x8859 +0x5144 0x6DAF +0x5145 0x96C5 +0x5146 0x54D1 +0x5147 0x4E9A +0x5148 0x8BB6 +0x5149 0x7109 +0x514A 0x54BD +0x514B 0x9609 +0x514C 0x70DF +0x514D 0x6DF9 +0x514E 0x76D0 +0x514F 0x4E25 +0x5150 0x7814 +0x5151 0x8712 +0x5152 0x5CA9 +0x5153 0x5EF6 +0x5154 0x8A00 +0x5155 0x989C +0x5156 0x960E +0x5157 0x708E +0x5158 0x6CBF +0x5159 0x5944 +0x515A 0x63A9 +0x515B 0x773C +0x515C 0x884D +0x515D 0x6F14 +0x515E 0x8273 +0x515F 0x5830 +0x5160 0x71D5 +0x5161 0x538C +0x5162 0x781A +0x5163 0x96C1 +0x5164 0x5501 +0x5165 0x5F66 +0x5166 0x7130 +0x5167 0x5BB4 +0x5168 0x8C1A +0x5169 0x9A8C +0x516A 0x6B83 +0x516B 0x592E +0x516C 0x9E2F +0x516D 0x79E7 +0x516E 0x6768 +0x516F 0x626C +0x5170 0x4F6F +0x5171 0x75A1 +0x5172 0x7F8A +0x5173 0x6D0B +0x5174 0x9633 +0x5175 0x6C27 +0x5176 0x4EF0 +0x5177 0x75D2 +0x5178 0x517B +0x5179 0x6837 +0x517A 0x6F3E +0x517B 0x9080 +0x517C 0x8170 +0x517D 0x5996 +0x517E 0x7476 +0x5221 0x6447 +0x5222 0x5C27 +0x5223 0x9065 +0x5224 0x7A91 +0x5225 0x8C23 +0x5226 0x59DA +0x5227 0x54AC +0x5228 0x8200 +0x5229 0x836F +0x522A 0x8981 +0x522B 0x8000 +0x522C 0x6930 +0x522D 0x564E +0x522E 0x8036 +0x522F 0x7237 +0x5230 0x91CE +0x5231 0x51B6 +0x5232 0x4E5F +0x5233 0x9875 +0x5234 0x6396 +0x5235 0x4E1A +0x5236 0x53F6 +0x5237 0x66F3 +0x5238 0x814B +0x5239 0x591C +0x523A 0x6DB2 +0x523B 0x4E00 +0x523C 0x58F9 +0x523D 0x533B +0x523E 0x63D6 +0x523F 0x94F1 +0x5240 0x4F9D +0x5241 0x4F0A +0x5242 0x8863 +0x5243 0x9890 +0x5244 0x5937 +0x5245 0x9057 +0x5246 0x79FB +0x5247 0x4EEA +0x5248 0x80F0 +0x5249 0x7591 +0x524A 0x6C82 +0x524B 0x5B9C +0x524C 0x59E8 +0x524D 0x5F5D +0x524E 0x6905 +0x524F 0x8681 +0x5250 0x501A +0x5251 0x5DF2 +0x5252 0x4E59 +0x5253 0x77E3 +0x5254 0x4EE5 +0x5255 0x827A +0x5256 0x6291 +0x5257 0x6613 +0x5258 0x9091 +0x5259 0x5C79 +0x525A 0x4EBF +0x525B 0x5F79 +0x525C 0x81C6 +0x525D 0x9038 +0x525E 0x8084 +0x525F 0x75AB +0x5260 0x4EA6 +0x5261 0x88D4 +0x5262 0x610F +0x5263 0x6BC5 +0x5264 0x5FC6 +0x5265 0x4E49 +0x5266 0x76CA +0x5267 0x6EA2 +0x5268 0x8BE3 +0x5269 0x8BAE +0x526A 0x8C0A +0x526B 0x8BD1 +0x526C 0x5F02 +0x526D 0x7FFC +0x526E 0x7FCC +0x526F 0x7ECE +0x5270 0x8335 +0x5271 0x836B +0x5272 0x56E0 +0x5273 0x6BB7 +0x5274 0x97F3 +0x5275 0x9634 +0x5276 0x59FB +0x5277 0x541F +0x5278 0x94F6 +0x5279 0x6DEB +0x527A 0x5BC5 +0x527B 0x996E +0x527C 0x5C39 +0x527D 0x5F15 +0x527E 0x9690 +0x5321 0x5370 +0x5322 0x82F1 +0x5323 0x6A31 +0x5324 0x5A74 +0x5325 0x9E70 +0x5326 0x5E94 +0x5327 0x7F28 +0x5328 0x83B9 +0x5329 0x8424 +0x532A 0x8425 +0x532B 0x8367 +0x532C 0x8747 +0x532D 0x8FCE +0x532E 0x8D62 +0x532F 0x76C8 +0x5330 0x5F71 +0x5331 0x9896 +0x5332 0x786C +0x5333 0x6620 +0x5334 0x54DF +0x5335 0x62E5 +0x5336 0x4F63 +0x5337 0x81C3 +0x5338 0x75C8 +0x5339 0x5EB8 +0x533A 0x96CD +0x533B 0x8E0A +0x533C 0x86F9 +0x533D 0x548F +0x533E 0x6CF3 +0x533F 0x6D8C +0x5340 0x6C38 +0x5341 0x607F +0x5342 0x52C7 +0x5343 0x7528 +0x5344 0x5E7D +0x5345 0x4F18 +0x5346 0x60A0 +0x5347 0x5FE7 +0x5348 0x5C24 +0x5349 0x7531 +0x534A 0x90AE +0x534B 0x94C0 +0x534C 0x72B9 +0x534D 0x6CB9 +0x534E 0x6E38 +0x534F 0x9149 +0x5350 0x6709 +0x5351 0x53CB +0x5352 0x53F3 +0x5353 0x4F51 +0x5354 0x91C9 +0x5355 0x8BF1 +0x5356 0x53C8 +0x5357 0x5E7C +0x5358 0x8FC2 +0x5359 0x6DE4 +0x535A 0x4E8E +0x535B 0x76C2 +0x535C 0x6986 +0x535D 0x865E +0x535E 0x611A +0x535F 0x8206 +0x5360 0x4F59 +0x5361 0x4FDE +0x5362 0x903E +0x5363 0x9C7C +0x5364 0x6109 +0x5365 0x6E1D +0x5366 0x6E14 +0x5367 0x9685 +0x5368 0x4E88 +0x5369 0x5A31 +0x536A 0x96E8 +0x536B 0x4E0E +0x536C 0x5C7F +0x536D 0x79B9 +0x536E 0x5B87 +0x536F 0x8BED +0x5370 0x7FBD +0x5371 0x7389 +0x5372 0x57DF +0x5373 0x828B +0x5374 0x90C1 +0x5375 0x5401 +0x5376 0x9047 +0x5377 0x55BB +0x5378 0x5CEA +0x5379 0x5FA1 +0x537A 0x6108 +0x537B 0x6B32 +0x537C 0x72F1 +0x537D 0x80B2 +0x537E 0x8A89 +0x5421 0x6D74 +0x5422 0x5BD3 +0x5423 0x88D5 +0x5424 0x9884 +0x5425 0x8C6B +0x5426 0x9A6D +0x5427 0x9E33 +0x5428 0x6E0A +0x5429 0x51A4 +0x542A 0x5143 +0x542B 0x57A3 +0x542C 0x8881 +0x542D 0x539F +0x542E 0x63F4 +0x542F 0x8F95 +0x5430 0x56ED +0x5431 0x5458 +0x5432 0x5706 +0x5433 0x733F +0x5434 0x6E90 +0x5435 0x7F18 +0x5436 0x8FDC +0x5437 0x82D1 +0x5438 0x613F +0x5439 0x6028 +0x543A 0x9662 +0x543B 0x66F0 +0x543C 0x7EA6 +0x543D 0x8D8A +0x543E 0x8DC3 +0x543F 0x94A5 +0x5440 0x5CB3 +0x5441 0x7CA4 +0x5442 0x6708 +0x5443 0x60A6 +0x5444 0x9605 +0x5445 0x8018 +0x5446 0x4E91 +0x5447 0x90E7 +0x5448 0x5300 +0x5449 0x9668 +0x544A 0x5141 +0x544B 0x8FD0 +0x544C 0x8574 +0x544D 0x915D +0x544E 0x6655 +0x544F 0x97F5 +0x5450 0x5B55 +0x5451 0x531D +0x5452 0x7838 +0x5453 0x6742 +0x5454 0x683D +0x5455 0x54C9 +0x5456 0x707E +0x5457 0x5BB0 +0x5458 0x8F7D +0x5459 0x518D +0x545A 0x5728 +0x545B 0x54B1 +0x545C 0x6512 +0x545D 0x6682 +0x545E 0x8D5E +0x545F 0x8D43 +0x5460 0x810F +0x5461 0x846C +0x5462 0x906D +0x5463 0x7CDF +0x5464 0x51FF +0x5465 0x85FB +0x5466 0x67A3 +0x5467 0x65E9 +0x5468 0x6FA1 +0x5469 0x86A4 +0x546A 0x8E81 +0x546B 0x566A +0x546C 0x9020 +0x546D 0x7682 +0x546E 0x7076 +0x546F 0x71E5 +0x5470 0x8D23 +0x5471 0x62E9 +0x5472 0x5219 +0x5473 0x6CFD +0x5474 0x8D3C +0x5475 0x600E +0x5476 0x589E +0x5477 0x618E +0x5478 0x66FE +0x5479 0x8D60 +0x547A 0x624E +0x547B 0x55B3 +0x547C 0x6E23 +0x547D 0x672D +0x547E 0x8F67 +0x5521 0x94E1 +0x5522 0x95F8 +0x5523 0x7728 +0x5524 0x6805 +0x5525 0x69A8 +0x5526 0x548B +0x5527 0x4E4D +0x5528 0x70B8 +0x5529 0x8BC8 +0x552A 0x6458 +0x552B 0x658B +0x552C 0x5B85 +0x552D 0x7A84 +0x552E 0x503A +0x552F 0x5BE8 +0x5530 0x77BB +0x5531 0x6BE1 +0x5532 0x8A79 +0x5533 0x7C98 +0x5534 0x6CBE +0x5535 0x76CF +0x5536 0x65A9 +0x5537 0x8F97 +0x5538 0x5D2D +0x5539 0x5C55 +0x553A 0x8638 +0x553B 0x6808 +0x553C 0x5360 +0x553D 0x6218 +0x553E 0x7AD9 +0x553F 0x6E5B +0x5540 0x7EFD +0x5541 0x6A1F +0x5542 0x7AE0 +0x5543 0x5F70 +0x5544 0x6F33 +0x5545 0x5F20 +0x5546 0x638C +0x5547 0x6DA8 +0x5548 0x6756 +0x5549 0x4E08 +0x554A 0x5E10 +0x554B 0x8D26 +0x554C 0x4ED7 +0x554D 0x80C0 +0x554E 0x7634 +0x554F 0x969C +0x5550 0x62DB +0x5551 0x662D +0x5552 0x627E +0x5553 0x6CBC +0x5554 0x8D75 +0x5555 0x7167 +0x5556 0x7F69 +0x5557 0x5146 +0x5558 0x8087 +0x5559 0x53EC +0x555A 0x906E +0x555B 0x6298 +0x555C 0x54F2 +0x555D 0x86F0 +0x555E 0x8F99 +0x555F 0x8005 +0x5560 0x9517 +0x5561 0x8517 +0x5562 0x8FD9 +0x5563 0x6D59 +0x5564 0x73CD +0x5565 0x659F +0x5566 0x771F +0x5567 0x7504 +0x5568 0x7827 +0x5569 0x81FB +0x556A 0x8D1E +0x556B 0x9488 +0x556C 0x4FA6 +0x556D 0x6795 +0x556E 0x75B9 +0x556F 0x8BCA +0x5570 0x9707 +0x5571 0x632F +0x5572 0x9547 +0x5573 0x9635 +0x5574 0x84B8 +0x5575 0x6323 +0x5576 0x7741 +0x5577 0x5F81 +0x5578 0x72F0 +0x5579 0x4E89 +0x557A 0x6014 +0x557B 0x6574 +0x557C 0x62EF +0x557D 0x6B63 +0x557E 0x653F +0x5621 0x5E27 +0x5622 0x75C7 +0x5623 0x90D1 +0x5624 0x8BC1 +0x5625 0x829D +0x5626 0x679D +0x5627 0x652F +0x5628 0x5431 +0x5629 0x8718 +0x562A 0x77E5 +0x562B 0x80A2 +0x562C 0x8102 +0x562D 0x6C41 +0x562E 0x4E4B +0x562F 0x7EC7 +0x5630 0x804C +0x5631 0x76F4 +0x5632 0x690D +0x5633 0x6B96 +0x5634 0x6267 +0x5635 0x503C +0x5636 0x4F84 +0x5637 0x5740 +0x5638 0x6307 +0x5639 0x6B62 +0x563A 0x8DBE +0x563B 0x53EA +0x563C 0x65E8 +0x563D 0x7EB8 +0x563E 0x5FD7 +0x563F 0x631A +0x5640 0x63B7 +0x5641 0x81F3 +0x5642 0x81F4 +0x5643 0x7F6E +0x5644 0x5E1C +0x5645 0x5CD9 +0x5646 0x5236 +0x5647 0x667A +0x5648 0x79E9 +0x5649 0x7A1A +0x564A 0x8D28 +0x564B 0x7099 +0x564C 0x75D4 +0x564D 0x6EDE +0x564E 0x6CBB +0x564F 0x7A92 +0x5650 0x4E2D +0x5651 0x76C5 +0x5652 0x5FE0 +0x5653 0x949F +0x5654 0x8877 +0x5655 0x7EC8 +0x5656 0x79CD +0x5657 0x80BF +0x5658 0x91CD +0x5659 0x4EF2 +0x565A 0x4F17 +0x565B 0x821F +0x565C 0x5468 +0x565D 0x5DDE +0x565E 0x6D32 +0x565F 0x8BCC +0x5660 0x7CA5 +0x5661 0x8F74 +0x5662 0x8098 +0x5663 0x5E1A +0x5664 0x5492 +0x5665 0x76B1 +0x5666 0x5B99 +0x5667 0x663C +0x5668 0x9AA4 +0x5669 0x73E0 +0x566A 0x682A +0x566B 0x86DB +0x566C 0x6731 +0x566D 0x732A +0x566E 0x8BF8 +0x566F 0x8BDB +0x5670 0x9010 +0x5671 0x7AF9 +0x5672 0x70DB +0x5673 0x716E +0x5674 0x62C4 +0x5675 0x77A9 +0x5676 0x5631 +0x5677 0x4E3B +0x5678 0x8457 +0x5679 0x67F1 +0x567A 0x52A9 +0x567B 0x86C0 +0x567C 0x8D2E +0x567D 0x94F8 +0x567E 0x7B51 +0x5721 0x4F4F +0x5722 0x6CE8 +0x5723 0x795D +0x5724 0x9A7B +0x5725 0x6293 +0x5726 0x722A +0x5727 0x62FD +0x5728 0x4E13 +0x5729 0x7816 +0x572A 0x8F6C +0x572B 0x64B0 +0x572C 0x8D5A +0x572D 0x7BC6 +0x572E 0x6869 +0x572F 0x5E84 +0x5730 0x88C5 +0x5731 0x5986 +0x5732 0x649E +0x5733 0x58EE +0x5734 0x72B6 +0x5735 0x690E +0x5736 0x9525 +0x5737 0x8FFD +0x5738 0x8D58 +0x5739 0x5760 +0x573A 0x7F00 +0x573B 0x8C06 +0x573C 0x51C6 +0x573D 0x6349 +0x573E 0x62D9 +0x573F 0x5353 +0x5740 0x684C +0x5741 0x7422 +0x5742 0x8301 +0x5743 0x914C +0x5744 0x5544 +0x5745 0x7740 +0x5746 0x707C +0x5747 0x6D4A +0x5748 0x5179 +0x5749 0x54A8 +0x574A 0x8D44 +0x574B 0x59FF +0x574C 0x6ECB +0x574D 0x6DC4 +0x574E 0x5B5C +0x574F 0x7D2B +0x5750 0x4ED4 +0x5751 0x7C7D +0x5752 0x6ED3 +0x5753 0x5B50 +0x5754 0x81EA +0x5755 0x6E0D +0x5756 0x5B57 +0x5757 0x9B03 +0x5758 0x68D5 +0x5759 0x8E2A +0x575A 0x5B97 +0x575B 0x7EFC +0x575C 0x603B +0x575D 0x7EB5 +0x575E 0x90B9 +0x575F 0x8D70 +0x5760 0x594F +0x5761 0x63CD +0x5762 0x79DF +0x5763 0x8DB3 +0x5764 0x5352 +0x5765 0x65CF +0x5766 0x7956 +0x5767 0x8BC5 +0x5768 0x963B +0x5769 0x7EC4 +0x576A 0x94BB +0x576B 0x7E82 +0x576C 0x5634 +0x576D 0x9189 +0x576E 0x6700 +0x576F 0x7F6A +0x5770 0x5C0A +0x5771 0x9075 +0x5772 0x6628 +0x5773 0x5DE6 +0x5774 0x4F50 +0x5775 0x67DE +0x5776 0x505A +0x5777 0x4F5C +0x5778 0x5750 +0x5779 0x5EA7 +0x5821 0x4E8D +0x5822 0x4E0C +0x5823 0x5140 +0x5824 0x4E10 +0x5825 0x5EFF +0x5826 0x5345 +0x5827 0x4E15 +0x5828 0x4E98 +0x5829 0x4E1E +0x582A 0x9B32 +0x582B 0x5B6C +0x582C 0x5669 +0x582D 0x4E28 +0x582E 0x79BA +0x582F 0x4E3F +0x5830 0x5315 +0x5831 0x4E47 +0x5832 0x592D +0x5833 0x723B +0x5834 0x536E +0x5835 0x6C10 +0x5836 0x56DF +0x5837 0x80E4 +0x5838 0x9997 +0x5839 0x6BD3 +0x583A 0x777E +0x583B 0x9F17 +0x583C 0x4E36 +0x583D 0x4E9F +0x583E 0x9F10 +0x583F 0x4E5C +0x5840 0x4E69 +0x5841 0x4E93 +0x5842 0x8288 +0x5843 0x5B5B +0x5844 0x556C +0x5845 0x560F +0x5846 0x4EC4 +0x5847 0x538D +0x5848 0x539D +0x5849 0x53A3 +0x584A 0x53A5 +0x584B 0x53AE +0x584C 0x9765 +0x584D 0x8D5D +0x584E 0x531A +0x584F 0x53F5 +0x5850 0x5326 +0x5851 0x532E +0x5852 0x533E +0x5853 0x8D5C +0x5854 0x5366 +0x5855 0x5363 +0x5856 0x5202 +0x5857 0x5208 +0x5858 0x520E +0x5859 0x522D +0x585A 0x5233 +0x585B 0x523F +0x585C 0x5240 +0x585D 0x524C +0x585E 0x525E +0x585F 0x5261 +0x5860 0x525C +0x5861 0x84AF +0x5862 0x527D +0x5863 0x5282 +0x5864 0x5281 +0x5865 0x5290 +0x5866 0x5293 +0x5867 0x5182 +0x5868 0x7F54 +0x5869 0x4EBB +0x586A 0x4EC3 +0x586B 0x4EC9 +0x586C 0x4EC2 +0x586D 0x4EE8 +0x586E 0x4EE1 +0x586F 0x4EEB +0x5870 0x4EDE +0x5871 0x4F1B +0x5872 0x4EF3 +0x5873 0x4F22 +0x5874 0x4F64 +0x5875 0x4EF5 +0x5876 0x4F25 +0x5877 0x4F27 +0x5878 0x4F09 +0x5879 0x4F2B +0x587A 0x4F5E +0x587B 0x4F67 +0x587C 0x6538 +0x587D 0x4F5A +0x587E 0x4F5D +0x5921 0x4F5F +0x5922 0x4F57 +0x5923 0x4F32 +0x5924 0x4F3D +0x5925 0x4F76 +0x5926 0x4F74 +0x5927 0x4F91 +0x5928 0x4F89 +0x5929 0x4F83 +0x592A 0x4F8F +0x592B 0x4F7E +0x592C 0x4F7B +0x592D 0x4FAA +0x592E 0x4F7C +0x592F 0x4FAC +0x5930 0x4F94 +0x5931 0x4FE6 +0x5932 0x4FE8 +0x5933 0x4FEA +0x5934 0x4FC5 +0x5935 0x4FDA +0x5936 0x4FE3 +0x5937 0x4FDC +0x5938 0x4FD1 +0x5939 0x4FDF +0x593A 0x4FF8 +0x593B 0x5029 +0x593C 0x504C +0x593D 0x4FF3 +0x593E 0x502C +0x593F 0x500F +0x5940 0x502E +0x5941 0x502D +0x5942 0x4FFE +0x5943 0x501C +0x5944 0x500C +0x5945 0x5025 +0x5946 0x5028 +0x5947 0x507E +0x5948 0x5043 +0x5949 0x5055 +0x594A 0x5048 +0x594B 0x504E +0x594C 0x506C +0x594D 0x507B +0x594E 0x50A5 +0x594F 0x50A7 +0x5950 0x50A9 +0x5951 0x50BA +0x5952 0x50D6 +0x5953 0x5106 +0x5954 0x50ED +0x5955 0x50EC +0x5956 0x50E6 +0x5957 0x50EE +0x5958 0x5107 +0x5959 0x510B +0x595A 0x4EDD +0x595B 0x6C3D +0x595C 0x4F58 +0x595D 0x4F65 +0x595E 0x4FCE +0x595F 0x9FA0 +0x5960 0x6C46 +0x5961 0x7C74 +0x5962 0x516E +0x5963 0x5DFD +0x5964 0x9EC9 +0x5965 0x9998 +0x5966 0x5181 +0x5967 0x5914 +0x5968 0x52F9 +0x5969 0x530D +0x596A 0x8A07 +0x596B 0x5310 +0x596C 0x51EB +0x596D 0x5919 +0x596E 0x5155 +0x596F 0x4EA0 +0x5970 0x5156 +0x5971 0x4EB3 +0x5972 0x886E +0x5973 0x88A4 +0x5974 0x4EB5 +0x5975 0x8114 +0x5976 0x88D2 +0x5977 0x7980 +0x5978 0x5B34 +0x5979 0x8803 +0x597A 0x7FB8 +0x597B 0x51AB +0x597C 0x51B1 +0x597D 0x51BD +0x597E 0x51BC +0x5A21 0x51C7 +0x5A22 0x5196 +0x5A23 0x51A2 +0x5A24 0x51A5 +0x5A25 0x8BA0 +0x5A26 0x8BA6 +0x5A27 0x8BA7 +0x5A28 0x8BAA +0x5A29 0x8BB4 +0x5A2A 0x8BB5 +0x5A2B 0x8BB7 +0x5A2C 0x8BC2 +0x5A2D 0x8BC3 +0x5A2E 0x8BCB +0x5A2F 0x8BCF +0x5A30 0x8BCE +0x5A31 0x8BD2 +0x5A32 0x8BD3 +0x5A33 0x8BD4 +0x5A34 0x8BD6 +0x5A35 0x8BD8 +0x5A36 0x8BD9 +0x5A37 0x8BDC +0x5A38 0x8BDF +0x5A39 0x8BE0 +0x5A3A 0x8BE4 +0x5A3B 0x8BE8 +0x5A3C 0x8BE9 +0x5A3D 0x8BEE +0x5A3E 0x8BF0 +0x5A3F 0x8BF3 +0x5A40 0x8BF6 +0x5A41 0x8BF9 +0x5A42 0x8BFC +0x5A43 0x8BFF +0x5A44 0x8C00 +0x5A45 0x8C02 +0x5A46 0x8C04 +0x5A47 0x8C07 +0x5A48 0x8C0C +0x5A49 0x8C0F +0x5A4A 0x8C11 +0x5A4B 0x8C12 +0x5A4C 0x8C14 +0x5A4D 0x8C15 +0x5A4E 0x8C16 +0x5A4F 0x8C19 +0x5A50 0x8C1B +0x5A51 0x8C18 +0x5A52 0x8C1D +0x5A53 0x8C1F +0x5A54 0x8C20 +0x5A55 0x8C21 +0x5A56 0x8C25 +0x5A57 0x8C27 +0x5A58 0x8C2A +0x5A59 0x8C2B +0x5A5A 0x8C2E +0x5A5B 0x8C2F +0x5A5C 0x8C32 +0x5A5D 0x8C33 +0x5A5E 0x8C35 +0x5A5F 0x8C36 +0x5A60 0x5369 +0x5A61 0x537A +0x5A62 0x961D +0x5A63 0x9622 +0x5A64 0x9621 +0x5A65 0x9631 +0x5A66 0x962A +0x5A67 0x963D +0x5A68 0x963C +0x5A69 0x9642 +0x5A6A 0x9649 +0x5A6B 0x9654 +0x5A6C 0x965F +0x5A6D 0x9667 +0x5A6E 0x966C +0x5A6F 0x9672 +0x5A70 0x9674 +0x5A71 0x9688 +0x5A72 0x968D +0x5A73 0x9697 +0x5A74 0x96B0 +0x5A75 0x9097 +0x5A76 0x909B +0x5A77 0x909D +0x5A78 0x9099 +0x5A79 0x90AC +0x5A7A 0x90A1 +0x5A7B 0x90B4 +0x5A7C 0x90B3 +0x5A7D 0x90B6 +0x5A7E 0x90BA +0x5B21 0x90B8 +0x5B22 0x90B0 +0x5B23 0x90CF +0x5B24 0x90C5 +0x5B25 0x90BE +0x5B26 0x90D0 +0x5B27 0x90C4 +0x5B28 0x90C7 +0x5B29 0x90D3 +0x5B2A 0x90E6 +0x5B2B 0x90E2 +0x5B2C 0x90DC +0x5B2D 0x90D7 +0x5B2E 0x90DB +0x5B2F 0x90EB +0x5B30 0x90EF +0x5B31 0x90FE +0x5B32 0x9104 +0x5B33 0x9122 +0x5B34 0x911E +0x5B35 0x9123 +0x5B36 0x9131 +0x5B37 0x912F +0x5B38 0x9139 +0x5B39 0x9143 +0x5B3A 0x9146 +0x5B3B 0x520D +0x5B3C 0x5942 +0x5B3D 0x52A2 +0x5B3E 0x52AC +0x5B3F 0x52AD +0x5B40 0x52BE +0x5B41 0x54FF +0x5B42 0x52D0 +0x5B43 0x52D6 +0x5B44 0x52F0 +0x5B45 0x53DF +0x5B46 0x71EE +0x5B47 0x77CD +0x5B48 0x5EF4 +0x5B49 0x51F5 +0x5B4A 0x51FC +0x5B4B 0x9B2F +0x5B4C 0x53B6 +0x5B4D 0x5F01 +0x5B4E 0x755A +0x5B4F 0x5DEF +0x5B50 0x574C +0x5B51 0x57A9 +0x5B52 0x57A1 +0x5B53 0x587E +0x5B54 0x58BC +0x5B55 0x58C5 +0x5B56 0x58D1 +0x5B57 0x5729 +0x5B58 0x572C +0x5B59 0x572A +0x5B5A 0x5733 +0x5B5B 0x5739 +0x5B5C 0x572E +0x5B5D 0x572F +0x5B5E 0x575C +0x5B5F 0x573B +0x5B60 0x5742 +0x5B61 0x5769 +0x5B62 0x5785 +0x5B63 0x576B +0x5B64 0x5786 +0x5B65 0x577C +0x5B66 0x577B +0x5B67 0x5768 +0x5B68 0x576D +0x5B69 0x5776 +0x5B6A 0x5773 +0x5B6B 0x57AD +0x5B6C 0x57A4 +0x5B6D 0x578C +0x5B6E 0x57B2 +0x5B6F 0x57CF +0x5B70 0x57A7 +0x5B71 0x57B4 +0x5B72 0x5793 +0x5B73 0x57A0 +0x5B74 0x57D5 +0x5B75 0x57D8 +0x5B76 0x57DA +0x5B77 0x57D9 +0x5B78 0x57D2 +0x5B79 0x57B8 +0x5B7A 0x57F4 +0x5B7B 0x57EF +0x5B7C 0x57F8 +0x5B7D 0x57E4 +0x5B7E 0x57DD +0x5C21 0x580B +0x5C22 0x580D +0x5C23 0x57FD +0x5C24 0x57ED +0x5C25 0x5800 +0x5C26 0x581E +0x5C27 0x5819 +0x5C28 0x5844 +0x5C29 0x5820 +0x5C2A 0x5865 +0x5C2B 0x586C +0x5C2C 0x5881 +0x5C2D 0x5889 +0x5C2E 0x589A +0x5C2F 0x5880 +0x5C30 0x99A8 +0x5C31 0x9F19 +0x5C32 0x61FF +0x5C33 0x8279 +0x5C34 0x827D +0x5C35 0x827F +0x5C36 0x828F +0x5C37 0x828A +0x5C38 0x82A8 +0x5C39 0x8284 +0x5C3A 0x828E +0x5C3B 0x8291 +0x5C3C 0x8297 +0x5C3D 0x8299 +0x5C3E 0x82AB +0x5C3F 0x82B8 +0x5C40 0x82BE +0x5C41 0x82B0 +0x5C42 0x82C8 +0x5C43 0x82CA +0x5C44 0x82E3 +0x5C45 0x8298 +0x5C46 0x82B7 +0x5C47 0x82AE +0x5C48 0x82CB +0x5C49 0x82CC +0x5C4A 0x82C1 +0x5C4B 0x82A9 +0x5C4C 0x82B4 +0x5C4D 0x82A1 +0x5C4E 0x82AA +0x5C4F 0x829F +0x5C50 0x82C4 +0x5C51 0x82CE +0x5C52 0x82A4 +0x5C53 0x82E1 +0x5C54 0x8309 +0x5C55 0x82F7 +0x5C56 0x82E4 +0x5C57 0x830F +0x5C58 0x8307 +0x5C59 0x82DC +0x5C5A 0x82F4 +0x5C5B 0x82D2 +0x5C5C 0x82D8 +0x5C5D 0x830C +0x5C5E 0x82FB +0x5C5F 0x82D3 +0x5C60 0x8311 +0x5C61 0x831A +0x5C62 0x8306 +0x5C63 0x8314 +0x5C64 0x8315 +0x5C65 0x82E0 +0x5C66 0x82D5 +0x5C67 0x831C +0x5C68 0x8351 +0x5C69 0x835B +0x5C6A 0x835C +0x5C6B 0x8308 +0x5C6C 0x8392 +0x5C6D 0x833C +0x5C6E 0x8334 +0x5C6F 0x8331 +0x5C70 0x839B +0x5C71 0x835E +0x5C72 0x832F +0x5C73 0x834F +0x5C74 0x8347 +0x5C75 0x8343 +0x5C76 0x835F +0x5C77 0x8340 +0x5C78 0x8317 +0x5C79 0x8360 +0x5C7A 0x832D +0x5C7B 0x833A +0x5C7C 0x8333 +0x5C7D 0x8366 +0x5C7E 0x8365 +0x5D21 0x8368 +0x5D22 0x831B +0x5D23 0x8369 +0x5D24 0x836C +0x5D25 0x836A +0x5D26 0x836D +0x5D27 0x836E +0x5D28 0x83B0 +0x5D29 0x8378 +0x5D2A 0x83B3 +0x5D2B 0x83B4 +0x5D2C 0x83A0 +0x5D2D 0x83AA +0x5D2E 0x8393 +0x5D2F 0x839C +0x5D30 0x8385 +0x5D31 0x837C +0x5D32 0x83B6 +0x5D33 0x83A9 +0x5D34 0x837D +0x5D35 0x83B8 +0x5D36 0x837B +0x5D37 0x8398 +0x5D38 0x839E +0x5D39 0x83A8 +0x5D3A 0x83BA +0x5D3B 0x83BC +0x5D3C 0x83C1 +0x5D3D 0x8401 +0x5D3E 0x83E5 +0x5D3F 0x83D8 +0x5D40 0x5807 +0x5D41 0x8418 +0x5D42 0x840B +0x5D43 0x83DD +0x5D44 0x83FD +0x5D45 0x83D6 +0x5D46 0x841C +0x5D47 0x8438 +0x5D48 0x8411 +0x5D49 0x8406 +0x5D4A 0x83D4 +0x5D4B 0x83DF +0x5D4C 0x840F +0x5D4D 0x8403 +0x5D4E 0x83F8 +0x5D4F 0x83F9 +0x5D50 0x83EA +0x5D51 0x83C5 +0x5D52 0x83C0 +0x5D53 0x8426 +0x5D54 0x83F0 +0x5D55 0x83E1 +0x5D56 0x845C +0x5D57 0x8451 +0x5D58 0x845A +0x5D59 0x8459 +0x5D5A 0x8473 +0x5D5B 0x8487 +0x5D5C 0x8488 +0x5D5D 0x847A +0x5D5E 0x8489 +0x5D5F 0x8478 +0x5D60 0x843C +0x5D61 0x8446 +0x5D62 0x8469 +0x5D63 0x8476 +0x5D64 0x848C +0x5D65 0x848E +0x5D66 0x8431 +0x5D67 0x846D +0x5D68 0x84C1 +0x5D69 0x84CD +0x5D6A 0x84D0 +0x5D6B 0x84E6 +0x5D6C 0x84BD +0x5D6D 0x84D3 +0x5D6E 0x84CA +0x5D6F 0x84BF +0x5D70 0x84BA +0x5D71 0x84E0 +0x5D72 0x84A1 +0x5D73 0x84B9 +0x5D74 0x84B4 +0x5D75 0x8497 +0x5D76 0x84E5 +0x5D77 0x84E3 +0x5D78 0x850C +0x5D79 0x750D +0x5D7A 0x8538 +0x5D7B 0x84F0 +0x5D7C 0x8539 +0x5D7D 0x851F +0x5D7E 0x853A +0x5E21 0x8556 +0x5E22 0x853B +0x5E23 0x84FF +0x5E24 0x84FC +0x5E25 0x8559 +0x5E26 0x8548 +0x5E27 0x8568 +0x5E28 0x8564 +0x5E29 0x855E +0x5E2A 0x857A +0x5E2B 0x77A2 +0x5E2C 0x8543 +0x5E2D 0x8572 +0x5E2E 0x857B +0x5E2F 0x85A4 +0x5E30 0x85A8 +0x5E31 0x8587 +0x5E32 0x858F +0x5E33 0x8579 +0x5E34 0x85AE +0x5E35 0x859C +0x5E36 0x8585 +0x5E37 0x85B9 +0x5E38 0x85B7 +0x5E39 0x85B0 +0x5E3A 0x85D3 +0x5E3B 0x85C1 +0x5E3C 0x85DC +0x5E3D 0x85FF +0x5E3E 0x8627 +0x5E3F 0x8605 +0x5E40 0x8629 +0x5E41 0x8616 +0x5E42 0x863C +0x5E43 0x5EFE +0x5E44 0x5F08 +0x5E45 0x593C +0x5E46 0x5941 +0x5E47 0x8037 +0x5E48 0x5955 +0x5E49 0x595A +0x5E4A 0x5958 +0x5E4B 0x530F +0x5E4C 0x5C22 +0x5E4D 0x5C25 +0x5E4E 0x5C2C +0x5E4F 0x5C34 +0x5E50 0x624C +0x5E51 0x626A +0x5E52 0x629F +0x5E53 0x62BB +0x5E54 0x62CA +0x5E55 0x62DA +0x5E56 0x62D7 +0x5E57 0x62EE +0x5E58 0x6322 +0x5E59 0x62F6 +0x5E5A 0x6339 +0x5E5B 0x634B +0x5E5C 0x6343 +0x5E5D 0x63AD +0x5E5E 0x63F6 +0x5E5F 0x6371 +0x5E60 0x637A +0x5E61 0x638E +0x5E62 0x63B4 +0x5E63 0x636D +0x5E64 0x63AC +0x5E65 0x638A +0x5E66 0x6369 +0x5E67 0x63AE +0x5E68 0x63BC +0x5E69 0x63F2 +0x5E6A 0x63F8 +0x5E6B 0x63E0 +0x5E6C 0x63FF +0x5E6D 0x63C4 +0x5E6E 0x63DE +0x5E6F 0x63CE +0x5E70 0x6452 +0x5E71 0x63C6 +0x5E72 0x63BE +0x5E73 0x6445 +0x5E74 0x6441 +0x5E75 0x640B +0x5E76 0x641B +0x5E77 0x6420 +0x5E78 0x640C +0x5E79 0x6426 +0x5E7A 0x6421 +0x5E7B 0x645E +0x5E7C 0x6484 +0x5E7D 0x646D +0x5E7E 0x6496 +0x5F21 0x647A +0x5F22 0x64B7 +0x5F23 0x64B8 +0x5F24 0x6499 +0x5F25 0x64BA +0x5F26 0x64C0 +0x5F27 0x64D0 +0x5F28 0x64D7 +0x5F29 0x64E4 +0x5F2A 0x64E2 +0x5F2B 0x6509 +0x5F2C 0x6525 +0x5F2D 0x652E +0x5F2E 0x5F0B +0x5F2F 0x5FD2 +0x5F30 0x7519 +0x5F31 0x5F11 +0x5F32 0x535F +0x5F33 0x53F1 +0x5F34 0x53FD +0x5F35 0x53E9 +0x5F36 0x53E8 +0x5F37 0x53FB +0x5F38 0x5412 +0x5F39 0x5416 +0x5F3A 0x5406 +0x5F3B 0x544B +0x5F3C 0x5452 +0x5F3D 0x5453 +0x5F3E 0x5454 +0x5F3F 0x5456 +0x5F40 0x5443 +0x5F41 0x5421 +0x5F42 0x5457 +0x5F43 0x5459 +0x5F44 0x5423 +0x5F45 0x5432 +0x5F46 0x5482 +0x5F47 0x5494 +0x5F48 0x5477 +0x5F49 0x5471 +0x5F4A 0x5464 +0x5F4B 0x549A +0x5F4C 0x549B +0x5F4D 0x5484 +0x5F4E 0x5476 +0x5F4F 0x5466 +0x5F50 0x549D +0x5F51 0x54D0 +0x5F52 0x54AD +0x5F53 0x54C2 +0x5F54 0x54B4 +0x5F55 0x54D2 +0x5F56 0x54A7 +0x5F57 0x54A6 +0x5F58 0x54D3 +0x5F59 0x54D4 +0x5F5A 0x5472 +0x5F5B 0x54A3 +0x5F5C 0x54D5 +0x5F5D 0x54BB +0x5F5E 0x54BF +0x5F5F 0x54CC +0x5F60 0x54D9 +0x5F61 0x54DA +0x5F62 0x54DC +0x5F63 0x54A9 +0x5F64 0x54AA +0x5F65 0x54A4 +0x5F66 0x54DD +0x5F67 0x54CF +0x5F68 0x54DE +0x5F69 0x551B +0x5F6A 0x54E7 +0x5F6B 0x5520 +0x5F6C 0x54FD +0x5F6D 0x5514 +0x5F6E 0x54F3 +0x5F6F 0x5522 +0x5F70 0x5523 +0x5F71 0x550F +0x5F72 0x5511 +0x5F73 0x5527 +0x5F74 0x552A +0x5F75 0x5567 +0x5F76 0x558F +0x5F77 0x55B5 +0x5F78 0x5549 +0x5F79 0x556D +0x5F7A 0x5541 +0x5F7B 0x5555 +0x5F7C 0x553F +0x5F7D 0x5550 +0x5F7E 0x553C +0x6021 0x5537 +0x6022 0x5556 +0x6023 0x5575 +0x6024 0x5576 +0x6025 0x5577 +0x6026 0x5533 +0x6027 0x5530 +0x6028 0x555C +0x6029 0x558B +0x602A 0x55D2 +0x602B 0x5583 +0x602C 0x55B1 +0x602D 0x55B9 +0x602E 0x5588 +0x602F 0x5581 +0x6030 0x559F +0x6031 0x557E +0x6032 0x55D6 +0x6033 0x5591 +0x6034 0x557B +0x6035 0x55DF +0x6036 0x55BD +0x6037 0x55BE +0x6038 0x5594 +0x6039 0x5599 +0x603A 0x55EA +0x603B 0x55F7 +0x603C 0x55C9 +0x603D 0x561F +0x603E 0x55D1 +0x603F 0x55EB +0x6040 0x55EC +0x6041 0x55D4 +0x6042 0x55E6 +0x6043 0x55DD +0x6044 0x55C4 +0x6045 0x55EF +0x6046 0x55E5 +0x6047 0x55F2 +0x6048 0x55F3 +0x6049 0x55CC +0x604A 0x55CD +0x604B 0x55E8 +0x604C 0x55F5 +0x604D 0x55E4 +0x604E 0x8F94 +0x604F 0x561E +0x6050 0x5608 +0x6051 0x560C +0x6052 0x5601 +0x6053 0x5624 +0x6054 0x5623 +0x6055 0x55FE +0x6056 0x5600 +0x6057 0x5627 +0x6058 0x562D +0x6059 0x5658 +0x605A 0x5639 +0x605B 0x5657 +0x605C 0x562C +0x605D 0x564D +0x605E 0x5662 +0x605F 0x5659 +0x6060 0x565C +0x6061 0x564C +0x6062 0x5654 +0x6063 0x5686 +0x6064 0x5664 +0x6065 0x5671 +0x6066 0x566B +0x6067 0x567B +0x6068 0x567C +0x6069 0x5685 +0x606A 0x5693 +0x606B 0x56AF +0x606C 0x56D4 +0x606D 0x56D7 +0x606E 0x56DD +0x606F 0x56E1 +0x6070 0x56F5 +0x6071 0x56EB +0x6072 0x56F9 +0x6073 0x56FF +0x6074 0x5704 +0x6075 0x570A +0x6076 0x5709 +0x6077 0x571C +0x6078 0x5E0F +0x6079 0x5E19 +0x607A 0x5E14 +0x607B 0x5E11 +0x607C 0x5E31 +0x607D 0x5E3B +0x607E 0x5E3C +0x6121 0x5E37 +0x6122 0x5E44 +0x6123 0x5E54 +0x6124 0x5E5B +0x6125 0x5E5E +0x6126 0x5E61 +0x6127 0x5C8C +0x6128 0x5C7A +0x6129 0x5C8D +0x612A 0x5C90 +0x612B 0x5C96 +0x612C 0x5C88 +0x612D 0x5C98 +0x612E 0x5C99 +0x612F 0x5C91 +0x6130 0x5C9A +0x6131 0x5C9C +0x6132 0x5CB5 +0x6133 0x5CA2 +0x6134 0x5CBD +0x6135 0x5CAC +0x6136 0x5CAB +0x6137 0x5CB1 +0x6138 0x5CA3 +0x6139 0x5CC1 +0x613A 0x5CB7 +0x613B 0x5CC4 +0x613C 0x5CD2 +0x613D 0x5CE4 +0x613E 0x5CCB +0x613F 0x5CE5 +0x6140 0x5D02 +0x6141 0x5D03 +0x6142 0x5D27 +0x6143 0x5D26 +0x6144 0x5D2E +0x6145 0x5D24 +0x6146 0x5D1E +0x6147 0x5D06 +0x6148 0x5D1B +0x6149 0x5D58 +0x614A 0x5D3E +0x614B 0x5D34 +0x614C 0x5D3D +0x614D 0x5D6C +0x614E 0x5D5B +0x614F 0x5D6F +0x6150 0x5D5D +0x6151 0x5D6B +0x6152 0x5D4B +0x6153 0x5D4A +0x6154 0x5D69 +0x6155 0x5D74 +0x6156 0x5D82 +0x6157 0x5D99 +0x6158 0x5D9D +0x6159 0x8C73 +0x615A 0x5DB7 +0x615B 0x5DC5 +0x615C 0x5F73 +0x615D 0x5F77 +0x615E 0x5F82 +0x615F 0x5F87 +0x6160 0x5F89 +0x6161 0x5F8C +0x6162 0x5F95 +0x6163 0x5F99 +0x6164 0x5F9C +0x6165 0x5FA8 +0x6166 0x5FAD +0x6167 0x5FB5 +0x6168 0x5FBC +0x6169 0x8862 +0x616A 0x5F61 +0x616B 0x72AD +0x616C 0x72B0 +0x616D 0x72B4 +0x616E 0x72B7 +0x616F 0x72B8 +0x6170 0x72C3 +0x6171 0x72C1 +0x6172 0x72CE +0x6173 0x72CD +0x6174 0x72D2 +0x6175 0x72E8 +0x6176 0x72EF +0x6177 0x72E9 +0x6178 0x72F2 +0x6179 0x72F4 +0x617A 0x72F7 +0x617B 0x7301 +0x617C 0x72F3 +0x617D 0x7303 +0x617E 0x72FA +0x6221 0x72FB +0x6222 0x7317 +0x6223 0x7313 +0x6224 0x7321 +0x6225 0x730A +0x6226 0x731E +0x6227 0x731D +0x6228 0x7315 +0x6229 0x7322 +0x622A 0x7339 +0x622B 0x7325 +0x622C 0x732C +0x622D 0x7338 +0x622E 0x7331 +0x622F 0x7350 +0x6230 0x734D +0x6231 0x7357 +0x6232 0x7360 +0x6233 0x736C +0x6234 0x736F +0x6235 0x737E +0x6236 0x821B +0x6237 0x5925 +0x6238 0x98E7 +0x6239 0x5924 +0x623A 0x5902 +0x623B 0x9963 +0x623C 0x9967 +0x623D 0x9968 +0x623E 0x9969 +0x623F 0x996A +0x6240 0x996B +0x6241 0x996C +0x6242 0x9974 +0x6243 0x9977 +0x6244 0x997D +0x6245 0x9980 +0x6246 0x9984 +0x6247 0x9987 +0x6248 0x998A +0x6249 0x998D +0x624A 0x9990 +0x624B 0x9991 +0x624C 0x9993 +0x624D 0x9994 +0x624E 0x9995 +0x624F 0x5E80 +0x6250 0x5E91 +0x6251 0x5E8B +0x6252 0x5E96 +0x6253 0x5EA5 +0x6254 0x5EA0 +0x6255 0x5EB9 +0x6256 0x5EB5 +0x6257 0x5EBE +0x6258 0x5EB3 +0x6259 0x8D53 +0x625A 0x5ED2 +0x625B 0x5ED1 +0x625C 0x5EDB +0x625D 0x5EE8 +0x625E 0x5EEA +0x625F 0x81BA +0x6260 0x5FC4 +0x6261 0x5FC9 +0x6262 0x5FD6 +0x6263 0x5FCF +0x6264 0x6003 +0x6265 0x5FEE +0x6266 0x6004 +0x6267 0x5FE1 +0x6268 0x5FE4 +0x6269 0x5FFE +0x626A 0x6005 +0x626B 0x6006 +0x626C 0x5FEA +0x626D 0x5FED +0x626E 0x5FF8 +0x626F 0x6019 +0x6270 0x6035 +0x6271 0x6026 +0x6272 0x601B +0x6273 0x600F +0x6274 0x600D +0x6275 0x6029 +0x6276 0x602B +0x6277 0x600A +0x6278 0x603F +0x6279 0x6021 +0x627A 0x6078 +0x627B 0x6079 +0x627C 0x607B +0x627D 0x607A +0x627E 0x6042 +0x6321 0x606A +0x6322 0x607D +0x6323 0x6096 +0x6324 0x609A +0x6325 0x60AD +0x6326 0x609D +0x6327 0x6083 +0x6328 0x6092 +0x6329 0x608C +0x632A 0x609B +0x632B 0x60EC +0x632C 0x60BB +0x632D 0x60B1 +0x632E 0x60DD +0x632F 0x60D8 +0x6330 0x60C6 +0x6331 0x60DA +0x6332 0x60B4 +0x6333 0x6120 +0x6334 0x6126 +0x6335 0x6115 +0x6336 0x6123 +0x6337 0x60F4 +0x6338 0x6100 +0x6339 0x610E +0x633A 0x612B +0x633B 0x614A +0x633C 0x6175 +0x633D 0x61AC +0x633E 0x6194 +0x633F 0x61A7 +0x6340 0x61B7 +0x6341 0x61D4 +0x6342 0x61F5 +0x6343 0x5FDD +0x6344 0x96B3 +0x6345 0x95E9 +0x6346 0x95EB +0x6347 0x95F1 +0x6348 0x95F3 +0x6349 0x95F5 +0x634A 0x95F6 +0x634B 0x95FC +0x634C 0x95FE +0x634D 0x9603 +0x634E 0x9604 +0x634F 0x9606 +0x6350 0x9608 +0x6351 0x960A +0x6352 0x960B +0x6353 0x960C +0x6354 0x960D +0x6355 0x960F +0x6356 0x9612 +0x6357 0x9615 +0x6358 0x9616 +0x6359 0x9617 +0x635A 0x9619 +0x635B 0x961A +0x635C 0x4E2C +0x635D 0x723F +0x635E 0x6215 +0x635F 0x6C35 +0x6360 0x6C54 +0x6361 0x6C5C +0x6362 0x6C4A +0x6363 0x6CA3 +0x6364 0x6C85 +0x6365 0x6C90 +0x6366 0x6C94 +0x6367 0x6C8C +0x6368 0x6C68 +0x6369 0x6C69 +0x636A 0x6C74 +0x636B 0x6C76 +0x636C 0x6C86 +0x636D 0x6CA9 +0x636E 0x6CD0 +0x636F 0x6CD4 +0x6370 0x6CAD +0x6371 0x6CF7 +0x6372 0x6CF8 +0x6373 0x6CF1 +0x6374 0x6CD7 +0x6375 0x6CB2 +0x6376 0x6CE0 +0x6377 0x6CD6 +0x6378 0x6CFA +0x6379 0x6CEB +0x637A 0x6CEE +0x637B 0x6CB1 +0x637C 0x6CD3 +0x637D 0x6CEF +0x637E 0x6CFE +0x6421 0x6D39 +0x6422 0x6D27 +0x6423 0x6D0C +0x6424 0x6D43 +0x6425 0x6D48 +0x6426 0x6D07 +0x6427 0x6D04 +0x6428 0x6D19 +0x6429 0x6D0E +0x642A 0x6D2B +0x642B 0x6D4D +0x642C 0x6D2E +0x642D 0x6D35 +0x642E 0x6D1A +0x642F 0x6D4F +0x6430 0x6D52 +0x6431 0x6D54 +0x6432 0x6D33 +0x6433 0x6D91 +0x6434 0x6D6F +0x6435 0x6D9E +0x6436 0x6DA0 +0x6437 0x6D5E +0x6438 0x6D93 +0x6439 0x6D94 +0x643A 0x6D5C +0x643B 0x6D60 +0x643C 0x6D7C +0x643D 0x6D63 +0x643E 0x6E1A +0x643F 0x6DC7 +0x6440 0x6DC5 +0x6441 0x6DDE +0x6442 0x6E0E +0x6443 0x6DBF +0x6444 0x6DE0 +0x6445 0x6E11 +0x6446 0x6DE6 +0x6447 0x6DDD +0x6448 0x6DD9 +0x6449 0x6E16 +0x644A 0x6DAB +0x644B 0x6E0C +0x644C 0x6DAE +0x644D 0x6E2B +0x644E 0x6E6E +0x644F 0x6E4E +0x6450 0x6E6B +0x6451 0x6EB2 +0x6452 0x6E5F +0x6453 0x6E86 +0x6454 0x6E53 +0x6455 0x6E54 +0x6456 0x6E32 +0x6457 0x6E25 +0x6458 0x6E44 +0x6459 0x6EDF +0x645A 0x6EB1 +0x645B 0x6E98 +0x645C 0x6EE0 +0x645D 0x6F2D +0x645E 0x6EE2 +0x645F 0x6EA5 +0x6460 0x6EA7 +0x6461 0x6EBD +0x6462 0x6EBB +0x6463 0x6EB7 +0x6464 0x6ED7 +0x6465 0x6EB4 +0x6466 0x6ECF +0x6467 0x6E8F +0x6468 0x6EC2 +0x6469 0x6E9F +0x646A 0x6F62 +0x646B 0x6F46 +0x646C 0x6F47 +0x646D 0x6F24 +0x646E 0x6F15 +0x646F 0x6EF9 +0x6470 0x6F2F +0x6471 0x6F36 +0x6472 0x6F4B +0x6473 0x6F74 +0x6474 0x6F2A +0x6475 0x6F09 +0x6476 0x6F29 +0x6477 0x6F89 +0x6478 0x6F8D +0x6479 0x6F8C +0x647A 0x6F78 +0x647B 0x6F72 +0x647C 0x6F7C +0x647D 0x6F7A +0x647E 0x6FD1 +0x6521 0x6FC9 +0x6522 0x6FA7 +0x6523 0x6FB9 +0x6524 0x6FB6 +0x6525 0x6FC2 +0x6526 0x6FE1 +0x6527 0x6FEE +0x6528 0x6FDE +0x6529 0x6FE0 +0x652A 0x6FEF +0x652B 0x701A +0x652C 0x7023 +0x652D 0x701B +0x652E 0x7039 +0x652F 0x7035 +0x6530 0x704F +0x6531 0x705E +0x6532 0x5B80 +0x6533 0x5B84 +0x6534 0x5B95 +0x6535 0x5B93 +0x6536 0x5BA5 +0x6537 0x5BB8 +0x6538 0x752F +0x6539 0x9A9E +0x653A 0x6434 +0x653B 0x5BE4 +0x653C 0x5BEE +0x653D 0x8930 +0x653E 0x5BF0 +0x653F 0x8E47 +0x6540 0x8B07 +0x6541 0x8FB6 +0x6542 0x8FD3 +0x6543 0x8FD5 +0x6544 0x8FE5 +0x6545 0x8FEE +0x6546 0x8FE4 +0x6547 0x8FE9 +0x6548 0x8FE6 +0x6549 0x8FF3 +0x654A 0x8FE8 +0x654B 0x9005 +0x654C 0x9004 +0x654D 0x900B +0x654E 0x9026 +0x654F 0x9011 +0x6550 0x900D +0x6551 0x9016 +0x6552 0x9021 +0x6553 0x9035 +0x6554 0x9036 +0x6555 0x902D +0x6556 0x902F +0x6557 0x9044 +0x6558 0x9051 +0x6559 0x9052 +0x655A 0x9050 +0x655B 0x9068 +0x655C 0x9058 +0x655D 0x9062 +0x655E 0x905B +0x655F 0x66B9 +0x6560 0x9074 +0x6561 0x907D +0x6562 0x9082 +0x6563 0x9088 +0x6564 0x9083 +0x6565 0x908B +0x6566 0x5F50 +0x6567 0x5F57 +0x6568 0x5F56 +0x6569 0x5F58 +0x656A 0x5C3B +0x656B 0x54AB +0x656C 0x5C50 +0x656D 0x5C59 +0x656E 0x5B71 +0x656F 0x5C63 +0x6570 0x5C66 +0x6571 0x7FBC +0x6572 0x5F2A +0x6573 0x5F29 +0x6574 0x5F2D +0x6575 0x8274 +0x6576 0x5F3C +0x6577 0x9B3B +0x6578 0x5C6E +0x6579 0x5981 +0x657A 0x5983 +0x657B 0x598D +0x657C 0x59A9 +0x657D 0x59AA +0x657E 0x59A3 +0x6621 0x5997 +0x6622 0x59CA +0x6623 0x59AB +0x6624 0x599E +0x6625 0x59A4 +0x6626 0x59D2 +0x6627 0x59B2 +0x6628 0x59AF +0x6629 0x59D7 +0x662A 0x59BE +0x662B 0x5A05 +0x662C 0x5A06 +0x662D 0x59DD +0x662E 0x5A08 +0x662F 0x59E3 +0x6630 0x59D8 +0x6631 0x59F9 +0x6632 0x5A0C +0x6633 0x5A09 +0x6634 0x5A32 +0x6635 0x5A34 +0x6636 0x5A11 +0x6637 0x5A23 +0x6638 0x5A13 +0x6639 0x5A40 +0x663A 0x5A67 +0x663B 0x5A4A +0x663C 0x5A55 +0x663D 0x5A3C +0x663E 0x5A62 +0x663F 0x5A75 +0x6640 0x80EC +0x6641 0x5AAA +0x6642 0x5A9B +0x6643 0x5A77 +0x6644 0x5A7A +0x6645 0x5ABE +0x6646 0x5AEB +0x6647 0x5AB2 +0x6648 0x5AD2 +0x6649 0x5AD4 +0x664A 0x5AB8 +0x664B 0x5AE0 +0x664C 0x5AE3 +0x664D 0x5AF1 +0x664E 0x5AD6 +0x664F 0x5AE6 +0x6650 0x5AD8 +0x6651 0x5ADC +0x6652 0x5B09 +0x6653 0x5B17 +0x6654 0x5B16 +0x6655 0x5B32 +0x6656 0x5B37 +0x6657 0x5B40 +0x6658 0x5C15 +0x6659 0x5C1C +0x665A 0x5B5A +0x665B 0x5B65 +0x665C 0x5B73 +0x665D 0x5B51 +0x665E 0x5B53 +0x665F 0x5B62 +0x6660 0x9A75 +0x6661 0x9A77 +0x6662 0x9A78 +0x6663 0x9A7A +0x6664 0x9A7F +0x6665 0x9A7D +0x6666 0x9A80 +0x6667 0x9A81 +0x6668 0x9A85 +0x6669 0x9A88 +0x666A 0x9A8A +0x666B 0x9A90 +0x666C 0x9A92 +0x666D 0x9A93 +0x666E 0x9A96 +0x666F 0x9A98 +0x6670 0x9A9B +0x6671 0x9A9C +0x6672 0x9A9D +0x6673 0x9A9F +0x6674 0x9AA0 +0x6675 0x9AA2 +0x6676 0x9AA3 +0x6677 0x9AA5 +0x6678 0x9AA7 +0x6679 0x7E9F +0x667A 0x7EA1 +0x667B 0x7EA3 +0x667C 0x7EA5 +0x667D 0x7EA8 +0x667E 0x7EA9 +0x6721 0x7EAD +0x6722 0x7EB0 +0x6723 0x7EBE +0x6724 0x7EC0 +0x6725 0x7EC1 +0x6726 0x7EC2 +0x6727 0x7EC9 +0x6728 0x7ECB +0x6729 0x7ECC +0x672A 0x7ED0 +0x672B 0x7ED4 +0x672C 0x7ED7 +0x672D 0x7EDB +0x672E 0x7EE0 +0x672F 0x7EE1 +0x6730 0x7EE8 +0x6731 0x7EEB +0x6732 0x7EEE +0x6733 0x7EEF +0x6734 0x7EF1 +0x6735 0x7EF2 +0x6736 0x7F0D +0x6737 0x7EF6 +0x6738 0x7EFA +0x6739 0x7EFB +0x673A 0x7EFE +0x673B 0x7F01 +0x673C 0x7F02 +0x673D 0x7F03 +0x673E 0x7F07 +0x673F 0x7F08 +0x6740 0x7F0B +0x6741 0x7F0C +0x6742 0x7F0F +0x6743 0x7F11 +0x6744 0x7F12 +0x6745 0x7F17 +0x6746 0x7F19 +0x6747 0x7F1C +0x6748 0x7F1B +0x6749 0x7F1F +0x674A 0x7F21 +0x674B 0x7F22 +0x674C 0x7F23 +0x674D 0x7F24 +0x674E 0x7F25 +0x674F 0x7F26 +0x6750 0x7F27 +0x6751 0x7F2A +0x6752 0x7F2B +0x6753 0x7F2C +0x6754 0x7F2D +0x6755 0x7F2F +0x6756 0x7F30 +0x6757 0x7F31 +0x6758 0x7F32 +0x6759 0x7F33 +0x675A 0x7F35 +0x675B 0x5E7A +0x675C 0x757F +0x675D 0x5DDB +0x675E 0x753E +0x675F 0x9095 +0x6760 0x738E +0x6761 0x7391 +0x6762 0x73AE +0x6763 0x73A2 +0x6764 0x739F +0x6765 0x73CF +0x6766 0x73C2 +0x6767 0x73D1 +0x6768 0x73B7 +0x6769 0x73B3 +0x676A 0x73C0 +0x676B 0x73C9 +0x676C 0x73C8 +0x676D 0x73E5 +0x676E 0x73D9 +0x676F 0x987C +0x6770 0x740A +0x6771 0x73E9 +0x6772 0x73E7 +0x6773 0x73DE +0x6774 0x73BA +0x6775 0x73F2 +0x6776 0x740F +0x6777 0x742A +0x6778 0x745B +0x6779 0x7426 +0x677A 0x7425 +0x677B 0x7428 +0x677C 0x7430 +0x677D 0x742E +0x677E 0x742C +0x6821 0x741B +0x6822 0x741A +0x6823 0x7441 +0x6824 0x745C +0x6825 0x7457 +0x6826 0x7455 +0x6827 0x7459 +0x6828 0x7477 +0x6829 0x746D +0x682A 0x747E +0x682B 0x749C +0x682C 0x748E +0x682D 0x7480 +0x682E 0x7481 +0x682F 0x7487 +0x6830 0x748B +0x6831 0x749E +0x6832 0x74A8 +0x6833 0x74A9 +0x6834 0x7490 +0x6835 0x74A7 +0x6836 0x74D2 +0x6837 0x74BA +0x6838 0x97EA +0x6839 0x97EB +0x683A 0x97EC +0x683B 0x674C +0x683C 0x6753 +0x683D 0x675E +0x683E 0x6748 +0x683F 0x6769 +0x6840 0x67A5 +0x6841 0x6787 +0x6842 0x676A +0x6843 0x6773 +0x6844 0x6798 +0x6845 0x67A7 +0x6846 0x6775 +0x6847 0x67A8 +0x6848 0x679E +0x6849 0x67AD +0x684A 0x678B +0x684B 0x6777 +0x684C 0x677C +0x684D 0x67F0 +0x684E 0x6809 +0x684F 0x67D8 +0x6850 0x680A +0x6851 0x67E9 +0x6852 0x67B0 +0x6853 0x680C +0x6854 0x67D9 +0x6855 0x67B5 +0x6856 0x67DA +0x6857 0x67B3 +0x6858 0x67DD +0x6859 0x6800 +0x685A 0x67C3 +0x685B 0x67B8 +0x685C 0x67E2 +0x685D 0x680E +0x685E 0x67C1 +0x685F 0x67FD +0x6860 0x6832 +0x6861 0x6833 +0x6862 0x6860 +0x6863 0x6861 +0x6864 0x684E +0x6865 0x6862 +0x6866 0x6844 +0x6867 0x6864 +0x6868 0x6883 +0x6869 0x681D +0x686A 0x6855 +0x686B 0x6866 +0x686C 0x6841 +0x686D 0x6867 +0x686E 0x6840 +0x686F 0x683E +0x6870 0x684A +0x6871 0x6849 +0x6872 0x6829 +0x6873 0x68B5 +0x6874 0x688F +0x6875 0x6874 +0x6876 0x6877 +0x6877 0x6893 +0x6878 0x686B +0x6879 0x68C2 +0x687A 0x696E +0x687B 0x68FC +0x687C 0x691F +0x687D 0x6920 +0x687E 0x68F9 +0x6921 0x6924 +0x6922 0x68F0 +0x6923 0x690B +0x6924 0x6901 +0x6925 0x6957 +0x6926 0x68E3 +0x6927 0x6910 +0x6928 0x6971 +0x6929 0x6939 +0x692A 0x6960 +0x692B 0x6942 +0x692C 0x695D +0x692D 0x6984 +0x692E 0x696B +0x692F 0x6980 +0x6930 0x6998 +0x6931 0x6978 +0x6932 0x6934 +0x6933 0x69CC +0x6934 0x6987 +0x6935 0x6988 +0x6936 0x69CE +0x6937 0x6989 +0x6938 0x6966 +0x6939 0x6963 +0x693A 0x6979 +0x693B 0x699B +0x693C 0x69A7 +0x693D 0x69BB +0x693E 0x69AB +0x693F 0x69AD +0x6940 0x69D4 +0x6941 0x69B1 +0x6942 0x69C1 +0x6943 0x69CA +0x6944 0x69DF +0x6945 0x6995 +0x6946 0x69E0 +0x6947 0x698D +0x6948 0x69FF +0x6949 0x6A2F +0x694A 0x69ED +0x694B 0x6A17 +0x694C 0x6A18 +0x694D 0x6A65 +0x694E 0x69F2 +0x694F 0x6A44 +0x6950 0x6A3E +0x6951 0x6AA0 +0x6952 0x6A50 +0x6953 0x6A5B +0x6954 0x6A35 +0x6955 0x6A8E +0x6956 0x6A79 +0x6957 0x6A3D +0x6958 0x6A28 +0x6959 0x6A58 +0x695A 0x6A7C +0x695B 0x6A91 +0x695C 0x6A90 +0x695D 0x6AA9 +0x695E 0x6A97 +0x695F 0x6AAB +0x6960 0x7337 +0x6961 0x7352 +0x6962 0x6B81 +0x6963 0x6B82 +0x6964 0x6B87 +0x6965 0x6B84 +0x6966 0x6B92 +0x6967 0x6B93 +0x6968 0x6B8D +0x6969 0x6B9A +0x696A 0x6B9B +0x696B 0x6BA1 +0x696C 0x6BAA +0x696D 0x8F6B +0x696E 0x8F6D +0x696F 0x8F71 +0x6970 0x8F72 +0x6971 0x8F73 +0x6972 0x8F75 +0x6973 0x8F76 +0x6974 0x8F78 +0x6975 0x8F77 +0x6976 0x8F79 +0x6977 0x8F7A +0x6978 0x8F7C +0x6979 0x8F7E +0x697A 0x8F81 +0x697B 0x8F82 +0x697C 0x8F84 +0x697D 0x8F87 +0x697E 0x8F8B +0x6A21 0x8F8D +0x6A22 0x8F8E +0x6A23 0x8F8F +0x6A24 0x8F98 +0x6A25 0x8F9A +0x6A26 0x8ECE +0x6A27 0x620B +0x6A28 0x6217 +0x6A29 0x621B +0x6A2A 0x621F +0x6A2B 0x6222 +0x6A2C 0x6221 +0x6A2D 0x6225 +0x6A2E 0x6224 +0x6A2F 0x622C +0x6A30 0x81E7 +0x6A31 0x74EF +0x6A32 0x74F4 +0x6A33 0x74FF +0x6A34 0x750F +0x6A35 0x7511 +0x6A36 0x7513 +0x6A37 0x6534 +0x6A38 0x65EE +0x6A39 0x65EF +0x6A3A 0x65F0 +0x6A3B 0x660A +0x6A3C 0x6619 +0x6A3D 0x6772 +0x6A3E 0x6603 +0x6A3F 0x6615 +0x6A40 0x6600 +0x6A41 0x7085 +0x6A42 0x66F7 +0x6A43 0x661D +0x6A44 0x6634 +0x6A45 0x6631 +0x6A46 0x6636 +0x6A47 0x6635 +0x6A48 0x8006 +0x6A49 0x665F +0x6A4A 0x6654 +0x6A4B 0x6641 +0x6A4C 0x664F +0x6A4D 0x6656 +0x6A4E 0x6661 +0x6A4F 0x6657 +0x6A50 0x6677 +0x6A51 0x6684 +0x6A52 0x668C +0x6A53 0x66A7 +0x6A54 0x669D +0x6A55 0x66BE +0x6A56 0x66DB +0x6A57 0x66DC +0x6A58 0x66E6 +0x6A59 0x66E9 +0x6A5A 0x8D32 +0x6A5B 0x8D33 +0x6A5C 0x8D36 +0x6A5D 0x8D3B +0x6A5E 0x8D3D +0x6A5F 0x8D40 +0x6A60 0x8D45 +0x6A61 0x8D46 +0x6A62 0x8D48 +0x6A63 0x8D49 +0x6A64 0x8D47 +0x6A65 0x8D4D +0x6A66 0x8D55 +0x6A67 0x8D59 +0x6A68 0x89C7 +0x6A69 0x89CA +0x6A6A 0x89CB +0x6A6B 0x89CC +0x6A6C 0x89CE +0x6A6D 0x89CF +0x6A6E 0x89D0 +0x6A6F 0x89D1 +0x6A70 0x726E +0x6A71 0x729F +0x6A72 0x725D +0x6A73 0x7266 +0x6A74 0x726F +0x6A75 0x727E +0x6A76 0x727F +0x6A77 0x7284 +0x6A78 0x728B +0x6A79 0x728D +0x6A7A 0x728F +0x6A7B 0x7292 +0x6A7C 0x6308 +0x6A7D 0x6332 +0x6A7E 0x63B0 +0x6B21 0x643F +0x6B22 0x64D8 +0x6B23 0x8004 +0x6B24 0x6BEA +0x6B25 0x6BF3 +0x6B26 0x6BFD +0x6B27 0x6BF5 +0x6B28 0x6BF9 +0x6B29 0x6C05 +0x6B2A 0x6C07 +0x6B2B 0x6C06 +0x6B2C 0x6C0D +0x6B2D 0x6C15 +0x6B2E 0x6C18 +0x6B2F 0x6C19 +0x6B30 0x6C1A +0x6B31 0x6C21 +0x6B32 0x6C29 +0x6B33 0x6C24 +0x6B34 0x6C2A +0x6B35 0x6C32 +0x6B36 0x6535 +0x6B37 0x6555 +0x6B38 0x656B +0x6B39 0x724D +0x6B3A 0x7252 +0x6B3B 0x7256 +0x6B3C 0x7230 +0x6B3D 0x8662 +0x6B3E 0x5216 +0x6B3F 0x809F +0x6B40 0x809C +0x6B41 0x8093 +0x6B42 0x80BC +0x6B43 0x670A +0x6B44 0x80BD +0x6B45 0x80B1 +0x6B46 0x80AB +0x6B47 0x80AD +0x6B48 0x80B4 +0x6B49 0x80B7 +0x6B4A 0x80E7 +0x6B4B 0x80E8 +0x6B4C 0x80E9 +0x6B4D 0x80EA +0x6B4E 0x80DB +0x6B4F 0x80C2 +0x6B50 0x80C4 +0x6B51 0x80D9 +0x6B52 0x80CD +0x6B53 0x80D7 +0x6B54 0x6710 +0x6B55 0x80DD +0x6B56 0x80EB +0x6B57 0x80F1 +0x6B58 0x80F4 +0x6B59 0x80ED +0x6B5A 0x810D +0x6B5B 0x810E +0x6B5C 0x80F2 +0x6B5D 0x80FC +0x6B5E 0x6715 +0x6B5F 0x8112 +0x6B60 0x8C5A +0x6B61 0x8136 +0x6B62 0x811E +0x6B63 0x812C +0x6B64 0x8118 +0x6B65 0x8132 +0x6B66 0x8148 +0x6B67 0x814C +0x6B68 0x8153 +0x6B69 0x8174 +0x6B6A 0x8159 +0x6B6B 0x815A +0x6B6C 0x8171 +0x6B6D 0x8160 +0x6B6E 0x8169 +0x6B6F 0x817C +0x6B70 0x817D +0x6B71 0x816D +0x6B72 0x8167 +0x6B73 0x584D +0x6B74 0x5AB5 +0x6B75 0x8188 +0x6B76 0x8182 +0x6B77 0x8191 +0x6B78 0x6ED5 +0x6B79 0x81A3 +0x6B7A 0x81AA +0x6B7B 0x81CC +0x6B7C 0x6726 +0x6B7D 0x81CA +0x6B7E 0x81BB +0x6C21 0x81C1 +0x6C22 0x81A6 +0x6C23 0x6B24 +0x6C24 0x6B37 +0x6C25 0x6B39 +0x6C26 0x6B43 +0x6C27 0x6B46 +0x6C28 0x6B59 +0x6C29 0x98D1 +0x6C2A 0x98D2 +0x6C2B 0x98D3 +0x6C2C 0x98D5 +0x6C2D 0x98D9 +0x6C2E 0x98DA +0x6C2F 0x6BB3 +0x6C30 0x5F40 +0x6C31 0x6BC2 +0x6C32 0x89F3 +0x6C33 0x6590 +0x6C34 0x9F51 +0x6C35 0x6593 +0x6C36 0x65BC +0x6C37 0x65C6 +0x6C38 0x65C4 +0x6C39 0x65C3 +0x6C3A 0x65CC +0x6C3B 0x65CE +0x6C3C 0x65D2 +0x6C3D 0x65D6 +0x6C3E 0x7080 +0x6C3F 0x709C +0x6C40 0x7096 +0x6C41 0x709D +0x6C42 0x70BB +0x6C43 0x70C0 +0x6C44 0x70B7 +0x6C45 0x70AB +0x6C46 0x70B1 +0x6C47 0x70E8 +0x6C48 0x70CA +0x6C49 0x7110 +0x6C4A 0x7113 +0x6C4B 0x7116 +0x6C4C 0x712F +0x6C4D 0x7131 +0x6C4E 0x7173 +0x6C4F 0x715C +0x6C50 0x7168 +0x6C51 0x7145 +0x6C52 0x7172 +0x6C53 0x714A +0x6C54 0x7178 +0x6C55 0x717A +0x6C56 0x7198 +0x6C57 0x71B3 +0x6C58 0x71B5 +0x6C59 0x71A8 +0x6C5A 0x71A0 +0x6C5B 0x71E0 +0x6C5C 0x71D4 +0x6C5D 0x71E7 +0x6C5E 0x71F9 +0x6C5F 0x721D +0x6C60 0x7228 +0x6C61 0x706C +0x6C62 0x7118 +0x6C63 0x7166 +0x6C64 0x71B9 +0x6C65 0x623E +0x6C66 0x623D +0x6C67 0x6243 +0x6C68 0x6248 +0x6C69 0x6249 +0x6C6A 0x793B +0x6C6B 0x7940 +0x6C6C 0x7946 +0x6C6D 0x7949 +0x6C6E 0x795B +0x6C6F 0x795C +0x6C70 0x7953 +0x6C71 0x795A +0x6C72 0x7962 +0x6C73 0x7957 +0x6C74 0x7960 +0x6C75 0x796F +0x6C76 0x7967 +0x6C77 0x797A +0x6C78 0x7985 +0x6C79 0x798A +0x6C7A 0x799A +0x6C7B 0x79A7 +0x6C7C 0x79B3 +0x6C7D 0x5FD1 +0x6C7E 0x5FD0 +0x6D21 0x603C +0x6D22 0x605D +0x6D23 0x605A +0x6D24 0x6067 +0x6D25 0x6041 +0x6D26 0x6059 +0x6D27 0x6063 +0x6D28 0x60AB +0x6D29 0x6106 +0x6D2A 0x610D +0x6D2B 0x615D +0x6D2C 0x61A9 +0x6D2D 0x619D +0x6D2E 0x61CB +0x6D2F 0x61D1 +0x6D30 0x6206 +0x6D31 0x8080 +0x6D32 0x807F +0x6D33 0x6C93 +0x6D34 0x6CF6 +0x6D35 0x6DFC +0x6D36 0x77F6 +0x6D37 0x77F8 +0x6D38 0x7800 +0x6D39 0x7809 +0x6D3A 0x7817 +0x6D3B 0x7818 +0x6D3C 0x7811 +0x6D3D 0x65AB +0x6D3E 0x782D +0x6D3F 0x781C +0x6D40 0x781D +0x6D41 0x7839 +0x6D42 0x783A +0x6D43 0x783B +0x6D44 0x781F +0x6D45 0x783C +0x6D46 0x7825 +0x6D47 0x782C +0x6D48 0x7823 +0x6D49 0x7829 +0x6D4A 0x784E +0x6D4B 0x786D +0x6D4C 0x7856 +0x6D4D 0x7857 +0x6D4E 0x7826 +0x6D4F 0x7850 +0x6D50 0x7847 +0x6D51 0x784C +0x6D52 0x786A +0x6D53 0x789B +0x6D54 0x7893 +0x6D55 0x789A +0x6D56 0x7887 +0x6D57 0x789C +0x6D58 0x78A1 +0x6D59 0x78A3 +0x6D5A 0x78B2 +0x6D5B 0x78B9 +0x6D5C 0x78A5 +0x6D5D 0x78D4 +0x6D5E 0x78D9 +0x6D5F 0x78C9 +0x6D60 0x78EC +0x6D61 0x78F2 +0x6D62 0x7905 +0x6D63 0x78F4 +0x6D64 0x7913 +0x6D65 0x7924 +0x6D66 0x791E +0x6D67 0x7934 +0x6D68 0x9F9B +0x6D69 0x9EF9 +0x6D6A 0x9EFB +0x6D6B 0x9EFC +0x6D6C 0x76F1 +0x6D6D 0x7704 +0x6D6E 0x770D +0x6D6F 0x76F9 +0x6D70 0x7707 +0x6D71 0x7708 +0x6D72 0x771A +0x6D73 0x7722 +0x6D74 0x7719 +0x6D75 0x772D +0x6D76 0x7726 +0x6D77 0x7735 +0x6D78 0x7738 +0x6D79 0x7750 +0x6D7A 0x7751 +0x6D7B 0x7747 +0x6D7C 0x7743 +0x6D7D 0x775A +0x6D7E 0x7768 +0x6E21 0x7762 +0x6E22 0x7765 +0x6E23 0x777F +0x6E24 0x778D +0x6E25 0x777D +0x6E26 0x7780 +0x6E27 0x778C +0x6E28 0x7791 +0x6E29 0x779F +0x6E2A 0x77A0 +0x6E2B 0x77B0 +0x6E2C 0x77B5 +0x6E2D 0x77BD +0x6E2E 0x753A +0x6E2F 0x7540 +0x6E30 0x754E +0x6E31 0x754B +0x6E32 0x7548 +0x6E33 0x755B +0x6E34 0x7572 +0x6E35 0x7579 +0x6E36 0x7583 +0x6E37 0x7F58 +0x6E38 0x7F61 +0x6E39 0x7F5F +0x6E3A 0x8A48 +0x6E3B 0x7F68 +0x6E3C 0x7F74 +0x6E3D 0x7F71 +0x6E3E 0x7F79 +0x6E3F 0x7F81 +0x6E40 0x7F7E +0x6E41 0x76CD +0x6E42 0x76E5 +0x6E43 0x8832 +0x6E44 0x9485 +0x6E45 0x9486 +0x6E46 0x9487 +0x6E47 0x948B +0x6E48 0x948A +0x6E49 0x948C +0x6E4A 0x948D +0x6E4B 0x948F +0x6E4C 0x9490 +0x6E4D 0x9494 +0x6E4E 0x9497 +0x6E4F 0x9495 +0x6E50 0x949A +0x6E51 0x949B +0x6E52 0x949C +0x6E53 0x94A3 +0x6E54 0x94A4 +0x6E55 0x94AB +0x6E56 0x94AA +0x6E57 0x94AD +0x6E58 0x94AC +0x6E59 0x94AF +0x6E5A 0x94B0 +0x6E5B 0x94B2 +0x6E5C 0x94B4 +0x6E5D 0x94B6 +0x6E5E 0x94B7 +0x6E5F 0x94B8 +0x6E60 0x94B9 +0x6E61 0x94BA +0x6E62 0x94BC +0x6E63 0x94BD +0x6E64 0x94BF +0x6E65 0x94C4 +0x6E66 0x94C8 +0x6E67 0x94C9 +0x6E68 0x94CA +0x6E69 0x94CB +0x6E6A 0x94CC +0x6E6B 0x94CD +0x6E6C 0x94CE +0x6E6D 0x94D0 +0x6E6E 0x94D1 +0x6E6F 0x94D2 +0x6E70 0x94D5 +0x6E71 0x94D6 +0x6E72 0x94D7 +0x6E73 0x94D9 +0x6E74 0x94D8 +0x6E75 0x94DB +0x6E76 0x94DE +0x6E77 0x94DF +0x6E78 0x94E0 +0x6E79 0x94E2 +0x6E7A 0x94E4 +0x6E7B 0x94E5 +0x6E7C 0x94E7 +0x6E7D 0x94E8 +0x6E7E 0x94EA +0x6F21 0x94E9 +0x6F22 0x94EB +0x6F23 0x94EE +0x6F24 0x94EF +0x6F25 0x94F3 +0x6F26 0x94F4 +0x6F27 0x94F5 +0x6F28 0x94F7 +0x6F29 0x94F9 +0x6F2A 0x94FC +0x6F2B 0x94FD +0x6F2C 0x94FF +0x6F2D 0x9503 +0x6F2E 0x9502 +0x6F2F 0x9506 +0x6F30 0x9507 +0x6F31 0x9509 +0x6F32 0x950A +0x6F33 0x950D +0x6F34 0x950E +0x6F35 0x950F +0x6F36 0x9512 +0x6F37 0x9513 +0x6F38 0x9514 +0x6F39 0x9515 +0x6F3A 0x9516 +0x6F3B 0x9518 +0x6F3C 0x951B +0x6F3D 0x951D +0x6F3E 0x951E +0x6F3F 0x951F +0x6F40 0x9522 +0x6F41 0x952A +0x6F42 0x952B +0x6F43 0x9529 +0x6F44 0x952C +0x6F45 0x9531 +0x6F46 0x9532 +0x6F47 0x9534 +0x6F48 0x9536 +0x6F49 0x9537 +0x6F4A 0x9538 +0x6F4B 0x953C +0x6F4C 0x953E +0x6F4D 0x953F +0x6F4E 0x9542 +0x6F4F 0x9535 +0x6F50 0x9544 +0x6F51 0x9545 +0x6F52 0x9546 +0x6F53 0x9549 +0x6F54 0x954C +0x6F55 0x954E +0x6F56 0x954F +0x6F57 0x9552 +0x6F58 0x9553 +0x6F59 0x9554 +0x6F5A 0x9556 +0x6F5B 0x9557 +0x6F5C 0x9558 +0x6F5D 0x9559 +0x6F5E 0x955B +0x6F5F 0x955E +0x6F60 0x955F +0x6F61 0x955D +0x6F62 0x9561 +0x6F63 0x9562 +0x6F64 0x9564 +0x6F65 0x9565 +0x6F66 0x9566 +0x6F67 0x9567 +0x6F68 0x9568 +0x6F69 0x9569 +0x6F6A 0x956A +0x6F6B 0x956B +0x6F6C 0x956C +0x6F6D 0x956F +0x6F6E 0x9571 +0x6F6F 0x9572 +0x6F70 0x9573 +0x6F71 0x953A +0x6F72 0x77E7 +0x6F73 0x77EC +0x6F74 0x96C9 +0x6F75 0x79D5 +0x6F76 0x79ED +0x6F77 0x79E3 +0x6F78 0x79EB +0x6F79 0x7A06 +0x6F7A 0x5D47 +0x6F7B 0x7A03 +0x6F7C 0x7A02 +0x6F7D 0x7A1E +0x6F7E 0x7A14 +0x7021 0x7A39 +0x7022 0x7A37 +0x7023 0x7A51 +0x7024 0x9ECF +0x7025 0x99A5 +0x7026 0x7A70 +0x7027 0x7688 +0x7028 0x768E +0x7029 0x7693 +0x702A 0x7699 +0x702B 0x76A4 +0x702C 0x74DE +0x702D 0x74E0 +0x702E 0x752C +0x702F 0x9E20 +0x7030 0x9E22 +0x7031 0x9E28 +0x7032 0x9E29 +0x7033 0x9E2A +0x7034 0x9E2B +0x7035 0x9E2C +0x7036 0x9E32 +0x7037 0x9E31 +0x7038 0x9E36 +0x7039 0x9E38 +0x703A 0x9E37 +0x703B 0x9E39 +0x703C 0x9E3A +0x703D 0x9E3E +0x703E 0x9E41 +0x703F 0x9E42 +0x7040 0x9E44 +0x7041 0x9E46 +0x7042 0x9E47 +0x7043 0x9E48 +0x7044 0x9E49 +0x7045 0x9E4B +0x7046 0x9E4C +0x7047 0x9E4E +0x7048 0x9E51 +0x7049 0x9E55 +0x704A 0x9E57 +0x704B 0x9E5A +0x704C 0x9E5B +0x704D 0x9E5C +0x704E 0x9E5E +0x704F 0x9E63 +0x7050 0x9E66 +0x7051 0x9E67 +0x7052 0x9E68 +0x7053 0x9E69 +0x7054 0x9E6A +0x7055 0x9E6B +0x7056 0x9E6C +0x7057 0x9E71 +0x7058 0x9E6D +0x7059 0x9E73 +0x705A 0x7592 +0x705B 0x7594 +0x705C 0x7596 +0x705D 0x75A0 +0x705E 0x759D +0x705F 0x75AC +0x7060 0x75A3 +0x7061 0x75B3 +0x7062 0x75B4 +0x7063 0x75B8 +0x7064 0x75C4 +0x7065 0x75B1 +0x7066 0x75B0 +0x7067 0x75C3 +0x7068 0x75C2 +0x7069 0x75D6 +0x706A 0x75CD +0x706B 0x75E3 +0x706C 0x75E8 +0x706D 0x75E6 +0x706E 0x75E4 +0x706F 0x75EB +0x7070 0x75E7 +0x7071 0x7603 +0x7072 0x75F1 +0x7073 0x75FC +0x7074 0x75FF +0x7075 0x7610 +0x7076 0x7600 +0x7077 0x7605 +0x7078 0x760C +0x7079 0x7617 +0x707A 0x760A +0x707B 0x7625 +0x707C 0x7618 +0x707D 0x7615 +0x707E 0x7619 +0x7121 0x761B +0x7122 0x763C +0x7123 0x7622 +0x7124 0x7620 +0x7125 0x7640 +0x7126 0x762D +0x7127 0x7630 +0x7128 0x763F +0x7129 0x7635 +0x712A 0x7643 +0x712B 0x763E +0x712C 0x7633 +0x712D 0x764D +0x712E 0x765E +0x712F 0x7654 +0x7130 0x765C +0x7131 0x7656 +0x7132 0x766B +0x7133 0x766F +0x7134 0x7FCA +0x7135 0x7AE6 +0x7136 0x7A78 +0x7137 0x7A79 +0x7138 0x7A80 +0x7139 0x7A86 +0x713A 0x7A88 +0x713B 0x7A95 +0x713C 0x7AA6 +0x713D 0x7AA0 +0x713E 0x7AAC +0x713F 0x7AA8 +0x7140 0x7AAD +0x7141 0x7AB3 +0x7142 0x8864 +0x7143 0x8869 +0x7144 0x8872 +0x7145 0x887D +0x7146 0x887F +0x7147 0x8882 +0x7148 0x88A2 +0x7149 0x88C6 +0x714A 0x88B7 +0x714B 0x88BC +0x714C 0x88C9 +0x714D 0x88E2 +0x714E 0x88CE +0x714F 0x88E3 +0x7150 0x88E5 +0x7151 0x88F1 +0x7152 0x891A +0x7153 0x88FC +0x7154 0x88E8 +0x7155 0x88FE +0x7156 0x88F0 +0x7157 0x8921 +0x7158 0x8919 +0x7159 0x8913 +0x715A 0x891B +0x715B 0x890A +0x715C 0x8934 +0x715D 0x892B +0x715E 0x8936 +0x715F 0x8941 +0x7160 0x8966 +0x7161 0x897B +0x7162 0x758B +0x7163 0x80E5 +0x7164 0x76B2 +0x7165 0x76B4 +0x7166 0x77DC +0x7167 0x8012 +0x7168 0x8014 +0x7169 0x8016 +0x716A 0x801C +0x716B 0x8020 +0x716C 0x8022 +0x716D 0x8025 +0x716E 0x8026 +0x716F 0x8027 +0x7170 0x8029 +0x7171 0x8028 +0x7172 0x8031 +0x7173 0x800B +0x7174 0x8035 +0x7175 0x8043 +0x7176 0x8046 +0x7177 0x804D +0x7178 0x8052 +0x7179 0x8069 +0x717A 0x8071 +0x717B 0x8983 +0x717C 0x9878 +0x717D 0x9880 +0x717E 0x9883 +0x7221 0x9889 +0x7222 0x988C +0x7223 0x988D +0x7224 0x988F +0x7225 0x9894 +0x7226 0x989A +0x7227 0x989B +0x7228 0x989E +0x7229 0x989F +0x722A 0x98A1 +0x722B 0x98A2 +0x722C 0x98A5 +0x722D 0x98A6 +0x722E 0x864D +0x722F 0x8654 +0x7230 0x866C +0x7231 0x866E +0x7232 0x867F +0x7233 0x867A +0x7234 0x867C +0x7235 0x867B +0x7236 0x86A8 +0x7237 0x868D +0x7238 0x868B +0x7239 0x86AC +0x723A 0x869D +0x723B 0x86A7 +0x723C 0x86A3 +0x723D 0x86AA +0x723E 0x8693 +0x723F 0x86A9 +0x7240 0x86B6 +0x7241 0x86C4 +0x7242 0x86B5 +0x7243 0x86CE +0x7244 0x86B0 +0x7245 0x86BA +0x7246 0x86B1 +0x7247 0x86AF +0x7248 0x86C9 +0x7249 0x86CF +0x724A 0x86B4 +0x724B 0x86E9 +0x724C 0x86F1 +0x724D 0x86F2 +0x724E 0x86ED +0x724F 0x86F3 +0x7250 0x86D0 +0x7251 0x8713 +0x7252 0x86DE +0x7253 0x86F4 +0x7254 0x86DF +0x7255 0x86D8 +0x7256 0x86D1 +0x7257 0x8703 +0x7258 0x8707 +0x7259 0x86F8 +0x725A 0x8708 +0x725B 0x870A +0x725C 0x870D +0x725D 0x8709 +0x725E 0x8723 +0x725F 0x873B +0x7260 0x871E +0x7261 0x8725 +0x7262 0x872E +0x7263 0x871A +0x7264 0x873E +0x7265 0x8748 +0x7266 0x8734 +0x7267 0x8731 +0x7268 0x8729 +0x7269 0x8737 +0x726A 0x873F +0x726B 0x8782 +0x726C 0x8722 +0x726D 0x877D +0x726E 0x877E +0x726F 0x877B +0x7270 0x8760 +0x7271 0x8770 +0x7272 0x874C +0x7273 0x876E +0x7274 0x878B +0x7275 0x8753 +0x7276 0x8763 +0x7277 0x877C +0x7278 0x8764 +0x7279 0x8759 +0x727A 0x8765 +0x727B 0x8793 +0x727C 0x87AF +0x727D 0x87A8 +0x727E 0x87D2 +0x7321 0x87C6 +0x7322 0x8788 +0x7323 0x8785 +0x7324 0x87AD +0x7325 0x8797 +0x7326 0x8783 +0x7327 0x87AB +0x7328 0x87E5 +0x7329 0x87AC +0x732A 0x87B5 +0x732B 0x87B3 +0x732C 0x87CB +0x732D 0x87D3 +0x732E 0x87BD +0x732F 0x87D1 +0x7330 0x87C0 +0x7331 0x87CA +0x7332 0x87DB +0x7333 0x87EA +0x7334 0x87E0 +0x7335 0x87EE +0x7336 0x8816 +0x7337 0x8813 +0x7338 0x87FE +0x7339 0x880A +0x733A 0x881B +0x733B 0x8821 +0x733C 0x8839 +0x733D 0x883C +0x733E 0x7F36 +0x733F 0x7F42 +0x7340 0x7F44 +0x7341 0x7F45 +0x7342 0x8210 +0x7343 0x7AFA +0x7344 0x7AFD +0x7345 0x7B08 +0x7346 0x7B03 +0x7347 0x7B04 +0x7348 0x7B15 +0x7349 0x7B0A +0x734A 0x7B2B +0x734B 0x7B0F +0x734C 0x7B47 +0x734D 0x7B38 +0x734E 0x7B2A +0x734F 0x7B19 +0x7350 0x7B2E +0x7351 0x7B31 +0x7352 0x7B20 +0x7353 0x7B25 +0x7354 0x7B24 +0x7355 0x7B33 +0x7356 0x7B3E +0x7357 0x7B1E +0x7358 0x7B58 +0x7359 0x7B5A +0x735A 0x7B45 +0x735B 0x7B75 +0x735C 0x7B4C +0x735D 0x7B5D +0x735E 0x7B60 +0x735F 0x7B6E +0x7360 0x7B7B +0x7361 0x7B62 +0x7362 0x7B72 +0x7363 0x7B71 +0x7364 0x7B90 +0x7365 0x7BA6 +0x7366 0x7BA7 +0x7367 0x7BB8 +0x7368 0x7BAC +0x7369 0x7B9D +0x736A 0x7BA8 +0x736B 0x7B85 +0x736C 0x7BAA +0x736D 0x7B9C +0x736E 0x7BA2 +0x736F 0x7BAB +0x7370 0x7BB4 +0x7371 0x7BD1 +0x7372 0x7BC1 +0x7373 0x7BCC +0x7374 0x7BDD +0x7375 0x7BDA +0x7376 0x7BE5 +0x7377 0x7BE6 +0x7378 0x7BEA +0x7379 0x7C0C +0x737A 0x7BFE +0x737B 0x7BFC +0x737C 0x7C0F +0x737D 0x7C16 +0x737E 0x7C0B +0x7421 0x7C1F +0x7422 0x7C2A +0x7423 0x7C26 +0x7424 0x7C38 +0x7425 0x7C41 +0x7426 0x7C40 +0x7427 0x81FE +0x7428 0x8201 +0x7429 0x8202 +0x742A 0x8204 +0x742B 0x81EC +0x742C 0x8844 +0x742D 0x8221 +0x742E 0x8222 +0x742F 0x8223 +0x7430 0x822D +0x7431 0x822F +0x7432 0x8228 +0x7433 0x822B +0x7434 0x8238 +0x7435 0x823B +0x7436 0x8233 +0x7437 0x8234 +0x7438 0x823E +0x7439 0x8244 +0x743A 0x8249 +0x743B 0x824B +0x743C 0x824F +0x743D 0x825A +0x743E 0x825F +0x743F 0x8268 +0x7440 0x887E +0x7441 0x8885 +0x7442 0x8888 +0x7443 0x88D8 +0x7444 0x88DF +0x7445 0x895E +0x7446 0x7F9D +0x7447 0x7F9F +0x7448 0x7FA7 +0x7449 0x7FAF +0x744A 0x7FB0 +0x744B 0x7FB2 +0x744C 0x7C7C +0x744D 0x6549 +0x744E 0x7C91 +0x744F 0x7C9D +0x7450 0x7C9C +0x7451 0x7C9E +0x7452 0x7CA2 +0x7453 0x7CB2 +0x7454 0x7CBC +0x7455 0x7CBD +0x7456 0x7CC1 +0x7457 0x7CC7 +0x7458 0x7CCC +0x7459 0x7CCD +0x745A 0x7CC8 +0x745B 0x7CC5 +0x745C 0x7CD7 +0x745D 0x7CE8 +0x745E 0x826E +0x745F 0x66A8 +0x7460 0x7FBF +0x7461 0x7FCE +0x7462 0x7FD5 +0x7463 0x7FE5 +0x7464 0x7FE1 +0x7465 0x7FE6 +0x7466 0x7FE9 +0x7467 0x7FEE +0x7468 0x7FF3 +0x7469 0x7CF8 +0x746A 0x7D77 +0x746B 0x7DA6 +0x746C 0x7DAE +0x746D 0x7E47 +0x746E 0x7E9B +0x746F 0x9EB8 +0x7470 0x9EB4 +0x7471 0x8D73 +0x7472 0x8D84 +0x7473 0x8D94 +0x7474 0x8D91 +0x7475 0x8DB1 +0x7476 0x8D67 +0x7477 0x8D6D +0x7478 0x8C47 +0x7479 0x8C49 +0x747A 0x914A +0x747B 0x9150 +0x747C 0x914E +0x747D 0x914F +0x747E 0x9164 +0x7521 0x9162 +0x7522 0x9161 +0x7523 0x9170 +0x7524 0x9169 +0x7525 0x916F +0x7526 0x917D +0x7527 0x917E +0x7528 0x9172 +0x7529 0x9174 +0x752A 0x9179 +0x752B 0x918C +0x752C 0x9185 +0x752D 0x9190 +0x752E 0x918D +0x752F 0x9191 +0x7530 0x91A2 +0x7531 0x91A3 +0x7532 0x91AA +0x7533 0x91AD +0x7534 0x91AE +0x7535 0x91AF +0x7536 0x91B5 +0x7537 0x91B4 +0x7538 0x91BA +0x7539 0x8C55 +0x753A 0x9E7E +0x753B 0x8DB8 +0x753C 0x8DEB +0x753D 0x8E05 +0x753E 0x8E59 +0x753F 0x8E69 +0x7540 0x8DB5 +0x7541 0x8DBF +0x7542 0x8DBC +0x7543 0x8DBA +0x7544 0x8DC4 +0x7545 0x8DD6 +0x7546 0x8DD7 +0x7547 0x8DDA +0x7548 0x8DDE +0x7549 0x8DCE +0x754A 0x8DCF +0x754B 0x8DDB +0x754C 0x8DC6 +0x754D 0x8DEC +0x754E 0x8DF7 +0x754F 0x8DF8 +0x7550 0x8DE3 +0x7551 0x8DF9 +0x7552 0x8DFB +0x7553 0x8DE4 +0x7554 0x8E09 +0x7555 0x8DFD +0x7556 0x8E14 +0x7557 0x8E1D +0x7558 0x8E1F +0x7559 0x8E2C +0x755A 0x8E2E +0x755B 0x8E23 +0x755C 0x8E2F +0x755D 0x8E3A +0x755E 0x8E40 +0x755F 0x8E39 +0x7560 0x8E35 +0x7561 0x8E3D +0x7562 0x8E31 +0x7563 0x8E49 +0x7564 0x8E41 +0x7565 0x8E42 +0x7566 0x8E51 +0x7567 0x8E52 +0x7568 0x8E4A +0x7569 0x8E70 +0x756A 0x8E76 +0x756B 0x8E7C +0x756C 0x8E6F +0x756D 0x8E74 +0x756E 0x8E85 +0x756F 0x8E8F +0x7570 0x8E94 +0x7571 0x8E90 +0x7572 0x8E9C +0x7573 0x8E9E +0x7574 0x8C78 +0x7575 0x8C82 +0x7576 0x8C8A +0x7577 0x8C85 +0x7578 0x8C98 +0x7579 0x8C94 +0x757A 0x659B +0x757B 0x89D6 +0x757C 0x89DE +0x757D 0x89DA +0x757E 0x89DC +0x7621 0x89E5 +0x7622 0x89EB +0x7623 0x89EF +0x7624 0x8A3E +0x7625 0x8B26 +0x7626 0x9753 +0x7627 0x96E9 +0x7628 0x96F3 +0x7629 0x96EF +0x762A 0x9706 +0x762B 0x9701 +0x762C 0x9708 +0x762D 0x970F +0x762E 0x970E +0x762F 0x972A +0x7630 0x972D +0x7631 0x9730 +0x7632 0x973E +0x7633 0x9F80 +0x7634 0x9F83 +0x7635 0x9F85 +0x7636 0x9F86 +0x7637 0x9F87 +0x7638 0x9F88 +0x7639 0x9F89 +0x763A 0x9F8A +0x763B 0x9F8C +0x763C 0x9EFE +0x763D 0x9F0B +0x763E 0x9F0D +0x763F 0x96B9 +0x7640 0x96BC +0x7641 0x96BD +0x7642 0x96CE +0x7643 0x96D2 +0x7644 0x77BF +0x7645 0x96E0 +0x7646 0x928E +0x7647 0x92AE +0x7648 0x92C8 +0x7649 0x933E +0x764A 0x936A +0x764B 0x93CA +0x764C 0x938F +0x764D 0x943E +0x764E 0x946B +0x764F 0x9C7F +0x7650 0x9C82 +0x7651 0x9C85 +0x7652 0x9C86 +0x7653 0x9C87 +0x7654 0x9C88 +0x7655 0x7A23 +0x7656 0x9C8B +0x7657 0x9C8E +0x7658 0x9C90 +0x7659 0x9C91 +0x765A 0x9C92 +0x765B 0x9C94 +0x765C 0x9C95 +0x765D 0x9C9A +0x765E 0x9C9B +0x765F 0x9C9E +0x7660 0x9C9F +0x7661 0x9CA0 +0x7662 0x9CA1 +0x7663 0x9CA2 +0x7664 0x9CA3 +0x7665 0x9CA5 +0x7666 0x9CA6 +0x7667 0x9CA7 +0x7668 0x9CA8 +0x7669 0x9CA9 +0x766A 0x9CAB +0x766B 0x9CAD +0x766C 0x9CAE +0x766D 0x9CB0 +0x766E 0x9CB1 +0x766F 0x9CB2 +0x7670 0x9CB3 +0x7671 0x9CB4 +0x7672 0x9CB5 +0x7673 0x9CB6 +0x7674 0x9CB7 +0x7675 0x9CBA +0x7676 0x9CBB +0x7677 0x9CBC +0x7678 0x9CBD +0x7679 0x9CC4 +0x767A 0x9CC5 +0x767B 0x9CC6 +0x767C 0x9CC7 +0x767D 0x9CCA +0x767E 0x9CCB +0x7721 0x9CCC +0x7722 0x9CCD +0x7723 0x9CCE +0x7724 0x9CCF +0x7725 0x9CD0 +0x7726 0x9CD3 +0x7727 0x9CD4 +0x7728 0x9CD5 +0x7729 0x9CD7 +0x772A 0x9CD8 +0x772B 0x9CD9 +0x772C 0x9CDC +0x772D 0x9CDD +0x772E 0x9CDF +0x772F 0x9CE2 +0x7730 0x977C +0x7731 0x9785 +0x7732 0x9791 +0x7733 0x9792 +0x7734 0x9794 +0x7735 0x97AF +0x7736 0x97AB +0x7737 0x97A3 +0x7738 0x97B2 +0x7739 0x97B4 +0x773A 0x9AB1 +0x773B 0x9AB0 +0x773C 0x9AB7 +0x773D 0x9E58 +0x773E 0x9AB6 +0x773F 0x9ABA +0x7740 0x9ABC +0x7741 0x9AC1 +0x7742 0x9AC0 +0x7743 0x9AC5 +0x7744 0x9AC2 +0x7745 0x9ACB +0x7746 0x9ACC +0x7747 0x9AD1 +0x7748 0x9B45 +0x7749 0x9B43 +0x774A 0x9B47 +0x774B 0x9B49 +0x774C 0x9B48 +0x774D 0x9B4D +0x774E 0x9B51 +0x774F 0x98E8 +0x7750 0x990D +0x7751 0x992E +0x7752 0x9955 +0x7753 0x9954 +0x7754 0x9ADF +0x7755 0x9AE1 +0x7756 0x9AE6 +0x7757 0x9AEF +0x7758 0x9AEB +0x7759 0x9AFB +0x775A 0x9AED +0x775B 0x9AF9 +0x775C 0x9B08 +0x775D 0x9B0F +0x775E 0x9B13 +0x775F 0x9B1F +0x7760 0x9B23 +0x7761 0x9EBD +0x7762 0x9EBE +0x7763 0x7E3B +0x7764 0x9E82 +0x7765 0x9E87 +0x7766 0x9E88 +0x7767 0x9E8B +0x7768 0x9E92 +0x7769 0x93D6 +0x776A 0x9E9D +0x776B 0x9E9F +0x776C 0x9EDB +0x776D 0x9EDC +0x776E 0x9EDD +0x776F 0x9EE0 +0x7770 0x9EDF +0x7771 0x9EE2 +0x7772 0x9EE9 +0x7773 0x9EE7 +0x7774 0x9EE5 +0x7775 0x9EEA +0x7776 0x9EEF +0x7777 0x9F22 +0x7778 0x9F2C +0x7779 0x9F2F +0x777A 0x9F39 +0x777B 0x9F37 +0x777C 0x9F3D +0x777D 0x9F3E +0x777E 0x9F44 +0x7A21 0x4E0F +0x7A22 0x673F +0x7A23 0x4E42 +0x7A24 0x752A +0x7A25 0x592C +0x7A26 0x9EE1 +0x7A27 0x8652 +0x7A28 0x531C +0x7A29 0x5187 +0x7A2A 0x518F +0x7A2B 0x50F0 +0x7A2C 0x4F0B +0x7A2D 0x4F23 +0x7A2E 0x4F03 +0x7A2F 0x4F61 +0x7A30 0x4F7A +0x7A31 0x4F6B +0x7A32 0x4FEB +0x7A33 0x4FF5 +0x7A34 0x5034 +0x7A35 0x5022 +0x7A36 0x4FF6 +0x7A37 0x5072 +0x7A38 0x4EB6 +0x7A39 0x51AE +0x7A3A 0x5910 +0x7A3B 0x6BDA +0x7A3C 0x522C +0x7A3D 0x5232 +0x7A3E 0x4FB4 +0x7A3F 0x5298 +0x7A40 0x52BB +0x7A41 0x52BC +0x7A42 0x52CD +0x7A43 0x52DA +0x7A44 0x52F7 +0x7A45 0x53C6 +0x7A46 0x53C7 +0x7A47 0x5770 +0x7A48 0x576C +0x7A49 0x57B1 +0x7A4A 0x579F +0x7A4B 0x579E +0x7A4C 0x57BE +0x7A4D 0x57CC +0x7A4E 0x580E +0x7A4F 0x580C +0x7A50 0x57F5 +0x7A51 0x5809 +0x7A52 0x583C +0x7A53 0x5843 +0x7A54 0x5845 +0x7A55 0x5846 +0x7A56 0x583D +0x7A57 0x5853 +0x7A58 0x5888 +0x7A59 0x5884 +0x7A5A 0x58F8 +0x7A5B 0x56AD +0x7A5C 0x5940 +0x7A5D 0x5953 +0x7A5E 0x596D +0x7A5F 0x5C2A +0x7A60 0x54A5 +0x7A61 0x551D +0x7A62 0x5536 +0x7A63 0x556F +0x7A64 0x554D +0x7A65 0x569A +0x7A66 0x569C +0x7A67 0x56F7 +0x7A68 0x5710 +0x7A69 0x5719 +0x7A6A 0x5E17 +0x7A6B 0x5E21 +0x7A6C 0x5E28 +0x7A6D 0x5E6A +0x7A6E 0x5C74 +0x7A6F 0x5C7C +0x7A70 0x5CA8 +0x7A71 0x5C9E +0x7A72 0x5CC3 +0x7A73 0x5CD3 +0x7A74 0x5CE3 +0x7A75 0x5CE7 +0x7A76 0x5CFF +0x7A77 0x5D04 +0x7A78 0x5D00 +0x7A79 0x5D1A +0x7A7A 0x5D0C +0x7A7B 0x5D4E +0x7A7C 0x5D5A +0x7A7D 0x5D85 +0x7A7E 0x5D93 +0x7B21 0x5D92 +0x7B22 0x5DC2 +0x7B23 0x5DC9 +0x7B24 0x8852 +0x7B25 0x5FAF +0x7B26 0x5906 +0x7B27 0x65A8 +0x7B28 0x7241 +0x7B29 0x7242 +0x7B2A 0x5EBC +0x7B2B 0x5ECB +0x7B2C 0x95EC +0x7B2D 0x95FF +0x7B2E 0x8A1A +0x7B2F 0x9607 +0x7B30 0x9613 +0x7B31 0x961B +0x7B32 0x5BAC +0x7B33 0x5BA7 +0x7B34 0x5C5D +0x7B35 0x5F22 +0x7B36 0x59EE +0x7B37 0x5A7C +0x7B38 0x5A96 +0x7B39 0x5A73 +0x7B3A 0x5A9E +0x7B3B 0x5AAD +0x7B3C 0x5ADA +0x7B3D 0x5AEA +0x7B3E 0x5B1B +0x7B3F 0x5B56 +0x7B40 0x9A72 +0x7B41 0x9A83 +0x7B42 0x9A89 +0x7B43 0x9A8D +0x7B44 0x9A8E +0x7B45 0x9A95 +0x7B46 0x9AA6 +0x7B47 0x7395 +0x7B48 0x7399 +0x7B49 0x73A0 +0x7B4A 0x73B1 +0x7B4B 0x73A5 +0x7B4C 0x73A6 +0x7B4D 0x73D6 +0x7B4E 0x73F0 +0x7B4F 0x73FD +0x7B50 0x73E3 +0x7B51 0x7424 +0x7B52 0x740E +0x7B53 0x7407 +0x7B54 0x73F6 +0x7B55 0x73FA +0x7B56 0x7432 +0x7B57 0x742F +0x7B58 0x7444 +0x7B59 0x7442 +0x7B5A 0x7471 +0x7B5B 0x7478 +0x7B5C 0x7462 +0x7B5D 0x7486 +0x7B5E 0x749F +0x7B5F 0x74A0 +0x7B60 0x7498 +0x7B61 0x74B2 +0x7B62 0x97E8 +0x7B63 0x6745 +0x7B64 0x679F +0x7B65 0x677B +0x7B66 0x67C8 +0x7B67 0x67EE +0x7B68 0x684B +0x7B69 0x68A0 +0x7B6A 0x6812 +0x7B6B 0x681F +0x7B6C 0x686A +0x7B6D 0x68BC +0x7B6E 0x68FB +0x7B6F 0x686F +0x7B70 0x68B1 +0x7B71 0x68C1 +0x7B72 0x68EB +0x7B73 0x6913 +0x7B74 0x68D1 +0x7B75 0x6911 +0x7B76 0x68D3 +0x7B77 0x68EC +0x7B78 0x692B +0x7B79 0x68E8 +0x7B7A 0x69BE +0x7B7B 0x6969 +0x7B7C 0x6940 +0x7B7D 0x696F +0x7B7E 0x695F +0x7C21 0x6962 +0x7C22 0x6935 +0x7C23 0x6959 +0x7C24 0x69BC +0x7C25 0x69C5 +0x7C26 0x69DA +0x7C27 0x69DC +0x7C28 0x6A0B +0x7C29 0x69E5 +0x7C2A 0x6A66 +0x7C2B 0x6A96 +0x7C2C 0x6AB4 +0x7C2D 0x72DD +0x7C2E 0x5CF1 +0x7C2F 0x7314 +0x7C30 0x733A +0x7C31 0x6B95 +0x7C32 0x5F67 +0x7C33 0x80FE +0x7C34 0x74FB +0x7C35 0x7503 +0x7C36 0x655C +0x7C37 0x6569 +0x7C38 0x6F26 +0x7C39 0x65F8 +0x7C3A 0x65FB +0x7C3B 0x6609 +0x7C3C 0x663D +0x7C3D 0x6662 +0x7C3E 0x665E +0x7C3F 0x666C +0x7C40 0x668D +0x7C41 0x668B +0x7C42 0x8D51 +0x7C43 0x8D57 +0x7C44 0x7263 +0x7C45 0x7277 +0x7C46 0x63B1 +0x7C47 0x6261 +0x7C48 0x6260 +0x7C49 0x6283 +0x7C4A 0x62E4 +0x7C4B 0x62C3 +0x7C4C 0x631C +0x7C4D 0x6326 +0x7C4E 0x63AF +0x7C4F 0x63FE +0x7C50 0x6422 +0x7C51 0x6412 +0x7C52 0x64ED +0x7C53 0x6713 +0x7C54 0x6718 +0x7C55 0x8158 +0x7C56 0x81D1 +0x7C57 0x98CF +0x7C58 0x98D4 +0x7C59 0x98D7 +0x7C5A 0x6996 +0x7C5B 0x7098 +0x7C5C 0x70DC +0x7C5D 0x70FA +0x7C5E 0x710C +0x7C5F 0x711C +0x7C60 0x71CB +0x7C61 0x721F +0x7C62 0x70DD +0x7C63 0x659D +0x7C64 0x6246 +0x7C65 0x6017 +0x7C66 0x60C7 +0x7C67 0x60D3 +0x7C68 0x60B0 +0x7C69 0x60D9 +0x7C6A 0x6114 +0x7C6B 0x6C3F +0x7C6C 0x6C67 +0x7C6D 0x6C84 +0x7C6E 0x6C9A +0x7C6F 0x6C6D +0x7C70 0x6CA8 +0x7C71 0x6CC6 +0x7C72 0x6CB5 +0x7C73 0x6D49 +0x7C74 0x6D38 +0x7C75 0x6D11 +0x7C76 0x6D3A +0x7C77 0x6D28 +0x7C78 0x6D50 +0x7C79 0x6D34 +0x7C7A 0x6D55 +0x7C7B 0x6D61 +0x7C7C 0x6DA2 +0x7C7D 0x6D65 +0x7C7E 0x6D5B +0x7D21 0x6D64 +0x7D22 0x6DB4 +0x7D23 0x6E9A +0x7D24 0x6E5C +0x7D25 0x6E72 +0x7D26 0x6EA0 +0x7D27 0x6E87 +0x7D28 0x6E8E +0x7D29 0x6EC9 +0x7D2A 0x6EC3 +0x7D2B 0x6F37 +0x7D2C 0x6ED8 +0x7D2D 0x6EEA +0x7D2E 0x6F56 +0x7D2F 0x6F75 +0x7D30 0x6F5F +0x7D31 0x6FB4 +0x7D32 0x6FBC +0x7D33 0x7014 +0x7D34 0x700D +0x7D35 0x700C +0x7D36 0x703C +0x7D37 0x7943 +0x7D38 0x7947 +0x7D39 0x794A +0x7D3A 0x7950 +0x7D3B 0x7972 +0x7D3C 0x7998 +0x7D3D 0x79A0 +0x7D3E 0x79A4 +0x7D3F 0x77FC +0x7D40 0x77FB +0x7D41 0x7822 +0x7D42 0x7820 +0x7D43 0x7841 +0x7D44 0x785A +0x7D45 0x7875 +0x7D46 0x78B6 +0x7D47 0x78E1 +0x7D48 0x7933 +0x7D49 0x8A5F +0x7D4A 0x76FB +0x7D4B 0x771B +0x7D4C 0x772C +0x7D4D 0x7786 +0x7D4E 0x77AB +0x7D4F 0x77AD +0x7D50 0x7564 +0x7D51 0x756F +0x7D52 0x6983 +0x7D53 0x7F7D +0x7D54 0x76DD +0x7D55 0x76E6 +0x7D56 0x76EC +0x7D57 0x7521 +0x7D58 0x79FE +0x7D59 0x7A44 +0x7D5A 0x767F +0x7D5B 0x769E +0x7D5C 0x9E27 +0x7D5D 0x9E2E +0x7D5E 0x9E30 +0x7D5F 0x9E34 +0x7D60 0x9E4D +0x7D61 0x9E52 +0x7D62 0x9E53 +0x7D63 0x9E54 +0x7D64 0x9E56 +0x7D65 0x9E59 +0x7D66 0x9E61 +0x7D67 0x9E62 +0x7D68 0x9E65 +0x7D69 0x9E6F +0x7D6A 0x9E74 +0x7D6B 0x75A2 +0x7D6C 0x7604 +0x7D6D 0x7608 +0x7D6E 0x761D +0x7D6F 0x7AD1 +0x7D70 0x7A85 +0x7D71 0x7A8E +0x7D72 0x7AA3 +0x7D73 0x7AB8 +0x7D74 0x7ABE +0x7D75 0x77DE +0x7D76 0x8030 +0x7D77 0x988B +0x7D78 0x988E +0x7D79 0x9899 +0x7D7A 0x98A3 +0x7D7B 0x8683 +0x7D7C 0x8705 +0x7D7D 0x8758 +0x7D7E 0x87CF +0x7E21 0x87E2 +0x7E22 0x880B +0x7E23 0x80D4 +0x7E24 0x7F4D +0x7E25 0x7B4A +0x7E26 0x7B4E +0x7E27 0x7B7F +0x7E28 0x7B93 +0x7E29 0x7BEF +0x7E2A 0x7C09 +0x7E2B 0x7BF0 +0x7E2C 0x7C15 +0x7E2D 0x7C03 +0x7E2E 0x7C20 +0x7E2F 0x823A +0x7E30 0x8886 +0x7E31 0x88AA +0x7E32 0x88C0 +0x7E33 0x88C8 +0x7E34 0x8926 +0x7E35 0x8976 +0x7E36 0x7F91 +0x7E37 0x8283 +0x7E38 0x82BC +0x7E39 0x82A7 +0x7E3A 0x8313 +0x7E3B 0x82FE +0x7E3C 0x8300 +0x7E3D 0x835D +0x7E3E 0x8345 +0x7E3F 0x8344 +0x7E40 0x831D +0x7E41 0x83A6 +0x7E42 0x8399 +0x7E43 0x83FE +0x7E44 0x841A +0x7E45 0x83FC +0x7E46 0x8429 +0x7E47 0x8439 +0x7E48 0x84A8 +0x7E49 0x84CF +0x7E4A 0x849F +0x7E4B 0x84C2 +0x7E4C 0x84F7 +0x7E4D 0x8570 +0x7E4E 0x85B3 +0x7E4F 0x85A2 +0x7E50 0x96D8 +0x7E51 0x85B8 +0x7E52 0x85E0 +0x7E53 0x7FDA +0x7E54 0x7EAE +0x7E55 0x7EB4 +0x7E56 0x7EBC +0x7E57 0x7ED6 +0x7E58 0x7F0A +0x7E59 0x5B43 +0x7E5A 0x8D6A +0x7E5B 0x5245 +0x7E5C 0x8C68 +0x7E5D 0x8C6E +0x7E5E 0x8C6D +0x7E5F 0x8E16 +0x7E60 0x8E26 +0x7E61 0x8E27 +0x7E62 0x8E50 +0x7E63 0x9098 +0x7E64 0x90A0 +0x7E65 0x90BD +0x7E66 0x90C8 +0x7E67 0x90C3 +0x7E68 0x90DA +0x7E69 0x90FF +0x7E6A 0x911A +0x7E6B 0x910C +0x7E6C 0x9120 +0x7E6D 0x9142 +0x7E6E 0x8FB5 +0x7E6F 0x90E4 +0x7E70 0x8C86 +0x7E71 0x89F1 +0x7E72 0x8BB1 +0x7E73 0x8BBB +0x7E74 0x8BC7 +0x7E75 0x8BEA +0x7E76 0x8C09 +0x7E77 0x8C1E +0x7E78 0x9702 +0x7E79 0x68D0 +0x7E7A 0x7306 +0x7E7B 0x9F81 +0x7E7C 0x9F82 +0x7E7D 0x92C6 +0x7E7E 0x9491 diff --git a/3rdPartner/libiconv/tests/ISO646-CN.TXT b/3rdPartner/libiconv/tests/ISO646-CN.TXT new file mode 100644 index 0000000..87a2a78 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO646-CN.TXT @@ -0,0 +1,128 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x00A5 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x203E +0x7F 0x007F diff --git a/3rdPartner/libiconv/tests/ISO646-JP.TXT b/3rdPartner/libiconv/tests/ISO646-JP.TXT new file mode 100644 index 0000000..2280a07 --- /dev/null +++ b/3rdPartner/libiconv/tests/ISO646-JP.TXT @@ -0,0 +1,128 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x00A5 +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x203E +0x7F 0x007F diff --git a/3rdPartner/libiconv/tests/JIS_X0201.TXT b/3rdPartner/libiconv/tests/JIS_X0201.TXT new file mode 100644 index 0000000..b464651 --- /dev/null +++ b/3rdPartner/libiconv/tests/JIS_X0201.TXT @@ -0,0 +1,191 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x00A5 +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x203E +0x7F 0x007F +0xA1 0xFF61 +0xA2 0xFF62 +0xA3 0xFF63 +0xA4 0xFF64 +0xA5 0xFF65 +0xA6 0xFF66 +0xA7 0xFF67 +0xA8 0xFF68 +0xA9 0xFF69 +0xAA 0xFF6A +0xAB 0xFF6B +0xAC 0xFF6C +0xAD 0xFF6D +0xAE 0xFF6E +0xAF 0xFF6F +0xB0 0xFF70 +0xB1 0xFF71 +0xB2 0xFF72 +0xB3 0xFF73 +0xB4 0xFF74 +0xB5 0xFF75 +0xB6 0xFF76 +0xB7 0xFF77 +0xB8 0xFF78 +0xB9 0xFF79 +0xBA 0xFF7A +0xBB 0xFF7B +0xBC 0xFF7C +0xBD 0xFF7D +0xBE 0xFF7E +0xBF 0xFF7F +0xC0 0xFF80 +0xC1 0xFF81 +0xC2 0xFF82 +0xC3 0xFF83 +0xC4 0xFF84 +0xC5 0xFF85 +0xC6 0xFF86 +0xC7 0xFF87 +0xC8 0xFF88 +0xC9 0xFF89 +0xCA 0xFF8A +0xCB 0xFF8B +0xCC 0xFF8C +0xCD 0xFF8D +0xCE 0xFF8E +0xCF 0xFF8F +0xD0 0xFF90 +0xD1 0xFF91 +0xD2 0xFF92 +0xD3 0xFF93 +0xD4 0xFF94 +0xD5 0xFF95 +0xD6 0xFF96 +0xD7 0xFF97 +0xD8 0xFF98 +0xD9 0xFF99 +0xDA 0xFF9A +0xDB 0xFF9B +0xDC 0xFF9C +0xDD 0xFF9D +0xDE 0xFF9E +0xDF 0xFF9F diff --git a/3rdPartner/libiconv/tests/JOHAB.TXT b/3rdPartner/libiconv/tests/JOHAB.TXT new file mode 100644 index 0000000..4a7f4f7 --- /dev/null +++ b/3rdPartner/libiconv/tests/JOHAB.TXT @@ -0,0 +1,17177 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x20A9 +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x8444 0x3133 +0x8446 0x3135 +0x8447 0x3136 +0x844A 0x313A +0x844B 0x313B +0x844C 0x313C +0x844D 0x313D +0x844E 0x313E +0x844F 0x313F +0x8450 0x3140 +0x8454 0x3144 +0x8461 0x314F +0x8481 0x3150 +0x84A1 0x3151 +0x84C1 0x3152 +0x84E1 0x3153 +0x8541 0x3154 +0x8561 0x3155 +0x8581 0x3156 +0x85A1 0x3157 +0x85C1 0x3158 +0x85E1 0x3159 +0x8641 0x315A +0x8661 0x315B +0x8681 0x315C +0x86A1 0x315D +0x86C1 0x315E +0x86E1 0x315F +0x8741 0x3160 +0x8761 0x3161 +0x8781 0x3162 +0x87A1 0x3163 +0x8841 0x3131 +0x8861 0xAC00 +0x8862 0xAC01 +0x8863 0xAC02 +0x8864 0xAC03 +0x8865 0xAC04 +0x8866 0xAC05 +0x8867 0xAC06 +0x8868 0xAC07 +0x8869 0xAC08 +0x886A 0xAC09 +0x886B 0xAC0A +0x886C 0xAC0B +0x886D 0xAC0C +0x886E 0xAC0D +0x886F 0xAC0E +0x8870 0xAC0F +0x8871 0xAC10 +0x8873 0xAC11 +0x8874 0xAC12 +0x8875 0xAC13 +0x8876 0xAC14 +0x8877 0xAC15 +0x8878 0xAC16 +0x8879 0xAC17 +0x887A 0xAC18 +0x887B 0xAC19 +0x887C 0xAC1A +0x887D 0xAC1B +0x8881 0xAC1C +0x8882 0xAC1D +0x8883 0xAC1E +0x8884 0xAC1F +0x8885 0xAC20 +0x8886 0xAC21 +0x8887 0xAC22 +0x8888 0xAC23 +0x8889 0xAC24 +0x888A 0xAC25 +0x888B 0xAC26 +0x888C 0xAC27 +0x888D 0xAC28 +0x888E 0xAC29 +0x888F 0xAC2A +0x8890 0xAC2B +0x8891 0xAC2C +0x8893 0xAC2D +0x8894 0xAC2E +0x8895 0xAC2F +0x8896 0xAC30 +0x8897 0xAC31 +0x8898 0xAC32 +0x8899 0xAC33 +0x889A 0xAC34 +0x889B 0xAC35 +0x889C 0xAC36 +0x889D 0xAC37 +0x88A1 0xAC38 +0x88A2 0xAC39 +0x88A3 0xAC3A +0x88A4 0xAC3B +0x88A5 0xAC3C +0x88A6 0xAC3D +0x88A7 0xAC3E +0x88A8 0xAC3F +0x88A9 0xAC40 +0x88AA 0xAC41 +0x88AB 0xAC42 +0x88AC 0xAC43 +0x88AD 0xAC44 +0x88AE 0xAC45 +0x88AF 0xAC46 +0x88B0 0xAC47 +0x88B1 0xAC48 +0x88B3 0xAC49 +0x88B4 0xAC4A +0x88B5 0xAC4B +0x88B6 0xAC4C +0x88B7 0xAC4D +0x88B8 0xAC4E +0x88B9 0xAC4F +0x88BA 0xAC50 +0x88BB 0xAC51 +0x88BC 0xAC52 +0x88BD 0xAC53 +0x88C1 0xAC54 +0x88C2 0xAC55 +0x88C3 0xAC56 +0x88C4 0xAC57 +0x88C5 0xAC58 +0x88C6 0xAC59 +0x88C7 0xAC5A +0x88C8 0xAC5B +0x88C9 0xAC5C +0x88CA 0xAC5D +0x88CB 0xAC5E +0x88CC 0xAC5F +0x88CD 0xAC60 +0x88CE 0xAC61 +0x88CF 0xAC62 +0x88D0 0xAC63 +0x88D1 0xAC64 +0x88D3 0xAC65 +0x88D4 0xAC66 +0x88D5 0xAC67 +0x88D6 0xAC68 +0x88D7 0xAC69 +0x88D8 0xAC6A +0x88D9 0xAC6B +0x88DA 0xAC6C +0x88DB 0xAC6D +0x88DC 0xAC6E +0x88DD 0xAC6F +0x88E1 0xAC70 +0x88E2 0xAC71 +0x88E3 0xAC72 +0x88E4 0xAC73 +0x88E5 0xAC74 +0x88E6 0xAC75 +0x88E7 0xAC76 +0x88E8 0xAC77 +0x88E9 0xAC78 +0x88EA 0xAC79 +0x88EB 0xAC7A +0x88EC 0xAC7B +0x88ED 0xAC7C +0x88EE 0xAC7D +0x88EF 0xAC7E +0x88F0 0xAC7F +0x88F1 0xAC80 +0x88F3 0xAC81 +0x88F4 0xAC82 +0x88F5 0xAC83 +0x88F6 0xAC84 +0x88F7 0xAC85 +0x88F8 0xAC86 +0x88F9 0xAC87 +0x88FA 0xAC88 +0x88FB 0xAC89 +0x88FC 0xAC8A +0x88FD 0xAC8B +0x8941 0xAC8C +0x8942 0xAC8D +0x8943 0xAC8E +0x8944 0xAC8F +0x8945 0xAC90 +0x8946 0xAC91 +0x8947 0xAC92 +0x8948 0xAC93 +0x8949 0xAC94 +0x894A 0xAC95 +0x894B 0xAC96 +0x894C 0xAC97 +0x894D 0xAC98 +0x894E 0xAC99 +0x894F 0xAC9A +0x8950 0xAC9B +0x8951 0xAC9C +0x8953 0xAC9D +0x8954 0xAC9E +0x8955 0xAC9F +0x8956 0xACA0 +0x8957 0xACA1 +0x8958 0xACA2 +0x8959 0xACA3 +0x895A 0xACA4 +0x895B 0xACA5 +0x895C 0xACA6 +0x895D 0xACA7 +0x8961 0xACA8 +0x8962 0xACA9 +0x8963 0xACAA +0x8964 0xACAB +0x8965 0xACAC +0x8966 0xACAD +0x8967 0xACAE +0x8968 0xACAF +0x8969 0xACB0 +0x896A 0xACB1 +0x896B 0xACB2 +0x896C 0xACB3 +0x896D 0xACB4 +0x896E 0xACB5 +0x896F 0xACB6 +0x8970 0xACB7 +0x8971 0xACB8 +0x8973 0xACB9 +0x8974 0xACBA +0x8975 0xACBB +0x8976 0xACBC +0x8977 0xACBD +0x8978 0xACBE +0x8979 0xACBF +0x897A 0xACC0 +0x897B 0xACC1 +0x897C 0xACC2 +0x897D 0xACC3 +0x8981 0xACC4 +0x8982 0xACC5 +0x8983 0xACC6 +0x8984 0xACC7 +0x8985 0xACC8 +0x8986 0xACC9 +0x8987 0xACCA +0x8988 0xACCB +0x8989 0xACCC +0x898A 0xACCD +0x898B 0xACCE +0x898C 0xACCF +0x898D 0xACD0 +0x898E 0xACD1 +0x898F 0xACD2 +0x8990 0xACD3 +0x8991 0xACD4 +0x8993 0xACD5 +0x8994 0xACD6 +0x8995 0xACD7 +0x8996 0xACD8 +0x8997 0xACD9 +0x8998 0xACDA +0x8999 0xACDB +0x899A 0xACDC +0x899B 0xACDD +0x899C 0xACDE +0x899D 0xACDF +0x89A1 0xACE0 +0x89A2 0xACE1 +0x89A3 0xACE2 +0x89A4 0xACE3 +0x89A5 0xACE4 +0x89A6 0xACE5 +0x89A7 0xACE6 +0x89A8 0xACE7 +0x89A9 0xACE8 +0x89AA 0xACE9 +0x89AB 0xACEA +0x89AC 0xACEB +0x89AD 0xACEC +0x89AE 0xACED +0x89AF 0xACEE +0x89B0 0xACEF +0x89B1 0xACF0 +0x89B3 0xACF1 +0x89B4 0xACF2 +0x89B5 0xACF3 +0x89B6 0xACF4 +0x89B7 0xACF5 +0x89B8 0xACF6 +0x89B9 0xACF7 +0x89BA 0xACF8 +0x89BB 0xACF9 +0x89BC 0xACFA +0x89BD 0xACFB +0x89C1 0xACFC +0x89C2 0xACFD +0x89C3 0xACFE +0x89C4 0xACFF +0x89C5 0xAD00 +0x89C6 0xAD01 +0x89C7 0xAD02 +0x89C8 0xAD03 +0x89C9 0xAD04 +0x89CA 0xAD05 +0x89CB 0xAD06 +0x89CC 0xAD07 +0x89CD 0xAD08 +0x89CE 0xAD09 +0x89CF 0xAD0A +0x89D0 0xAD0B +0x89D1 0xAD0C +0x89D3 0xAD0D +0x89D4 0xAD0E +0x89D5 0xAD0F +0x89D6 0xAD10 +0x89D7 0xAD11 +0x89D8 0xAD12 +0x89D9 0xAD13 +0x89DA 0xAD14 +0x89DB 0xAD15 +0x89DC 0xAD16 +0x89DD 0xAD17 +0x89E1 0xAD18 +0x89E2 0xAD19 +0x89E3 0xAD1A +0x89E4 0xAD1B +0x89E5 0xAD1C +0x89E6 0xAD1D +0x89E7 0xAD1E +0x89E8 0xAD1F +0x89E9 0xAD20 +0x89EA 0xAD21 +0x89EB 0xAD22 +0x89EC 0xAD23 +0x89ED 0xAD24 +0x89EE 0xAD25 +0x89EF 0xAD26 +0x89F0 0xAD27 +0x89F1 0xAD28 +0x89F3 0xAD29 +0x89F4 0xAD2A +0x89F5 0xAD2B +0x89F6 0xAD2C +0x89F7 0xAD2D +0x89F8 0xAD2E +0x89F9 0xAD2F +0x89FA 0xAD30 +0x89FB 0xAD31 +0x89FC 0xAD32 +0x89FD 0xAD33 +0x8A41 0xAD34 +0x8A42 0xAD35 +0x8A43 0xAD36 +0x8A44 0xAD37 +0x8A45 0xAD38 +0x8A46 0xAD39 +0x8A47 0xAD3A +0x8A48 0xAD3B +0x8A49 0xAD3C +0x8A4A 0xAD3D +0x8A4B 0xAD3E +0x8A4C 0xAD3F +0x8A4D 0xAD40 +0x8A4E 0xAD41 +0x8A4F 0xAD42 +0x8A50 0xAD43 +0x8A51 0xAD44 +0x8A53 0xAD45 +0x8A54 0xAD46 +0x8A55 0xAD47 +0x8A56 0xAD48 +0x8A57 0xAD49 +0x8A58 0xAD4A +0x8A59 0xAD4B +0x8A5A 0xAD4C +0x8A5B 0xAD4D +0x8A5C 0xAD4E +0x8A5D 0xAD4F +0x8A61 0xAD50 +0x8A62 0xAD51 +0x8A63 0xAD52 +0x8A64 0xAD53 +0x8A65 0xAD54 +0x8A66 0xAD55 +0x8A67 0xAD56 +0x8A68 0xAD57 +0x8A69 0xAD58 +0x8A6A 0xAD59 +0x8A6B 0xAD5A +0x8A6C 0xAD5B +0x8A6D 0xAD5C +0x8A6E 0xAD5D +0x8A6F 0xAD5E +0x8A70 0xAD5F +0x8A71 0xAD60 +0x8A73 0xAD61 +0x8A74 0xAD62 +0x8A75 0xAD63 +0x8A76 0xAD64 +0x8A77 0xAD65 +0x8A78 0xAD66 +0x8A79 0xAD67 +0x8A7A 0xAD68 +0x8A7B 0xAD69 +0x8A7C 0xAD6A +0x8A7D 0xAD6B +0x8A81 0xAD6C +0x8A82 0xAD6D +0x8A83 0xAD6E +0x8A84 0xAD6F +0x8A85 0xAD70 +0x8A86 0xAD71 +0x8A87 0xAD72 +0x8A88 0xAD73 +0x8A89 0xAD74 +0x8A8A 0xAD75 +0x8A8B 0xAD76 +0x8A8C 0xAD77 +0x8A8D 0xAD78 +0x8A8E 0xAD79 +0x8A8F 0xAD7A +0x8A90 0xAD7B +0x8A91 0xAD7C +0x8A93 0xAD7D +0x8A94 0xAD7E +0x8A95 0xAD7F +0x8A96 0xAD80 +0x8A97 0xAD81 +0x8A98 0xAD82 +0x8A99 0xAD83 +0x8A9A 0xAD84 +0x8A9B 0xAD85 +0x8A9C 0xAD86 +0x8A9D 0xAD87 +0x8AA1 0xAD88 +0x8AA2 0xAD89 +0x8AA3 0xAD8A +0x8AA4 0xAD8B +0x8AA5 0xAD8C +0x8AA6 0xAD8D +0x8AA7 0xAD8E +0x8AA8 0xAD8F +0x8AA9 0xAD90 +0x8AAA 0xAD91 +0x8AAB 0xAD92 +0x8AAC 0xAD93 +0x8AAD 0xAD94 +0x8AAE 0xAD95 +0x8AAF 0xAD96 +0x8AB0 0xAD97 +0x8AB1 0xAD98 +0x8AB3 0xAD99 +0x8AB4 0xAD9A +0x8AB5 0xAD9B +0x8AB6 0xAD9C +0x8AB7 0xAD9D +0x8AB8 0xAD9E +0x8AB9 0xAD9F +0x8ABA 0xADA0 +0x8ABB 0xADA1 +0x8ABC 0xADA2 +0x8ABD 0xADA3 +0x8AC1 0xADA4 +0x8AC2 0xADA5 +0x8AC3 0xADA6 +0x8AC4 0xADA7 +0x8AC5 0xADA8 +0x8AC6 0xADA9 +0x8AC7 0xADAA +0x8AC8 0xADAB +0x8AC9 0xADAC +0x8ACA 0xADAD +0x8ACB 0xADAE +0x8ACC 0xADAF +0x8ACD 0xADB0 +0x8ACE 0xADB1 +0x8ACF 0xADB2 +0x8AD0 0xADB3 +0x8AD1 0xADB4 +0x8AD3 0xADB5 +0x8AD4 0xADB6 +0x8AD5 0xADB7 +0x8AD6 0xADB8 +0x8AD7 0xADB9 +0x8AD8 0xADBA +0x8AD9 0xADBB +0x8ADA 0xADBC +0x8ADB 0xADBD +0x8ADC 0xADBE +0x8ADD 0xADBF +0x8AE1 0xADC0 +0x8AE2 0xADC1 +0x8AE3 0xADC2 +0x8AE4 0xADC3 +0x8AE5 0xADC4 +0x8AE6 0xADC5 +0x8AE7 0xADC6 +0x8AE8 0xADC7 +0x8AE9 0xADC8 +0x8AEA 0xADC9 +0x8AEB 0xADCA +0x8AEC 0xADCB +0x8AED 0xADCC +0x8AEE 0xADCD +0x8AEF 0xADCE +0x8AF0 0xADCF +0x8AF1 0xADD0 +0x8AF3 0xADD1 +0x8AF4 0xADD2 +0x8AF5 0xADD3 +0x8AF6 0xADD4 +0x8AF7 0xADD5 +0x8AF8 0xADD6 +0x8AF9 0xADD7 +0x8AFA 0xADD8 +0x8AFB 0xADD9 +0x8AFC 0xADDA +0x8AFD 0xADDB +0x8B41 0xADDC +0x8B42 0xADDD +0x8B43 0xADDE +0x8B44 0xADDF +0x8B45 0xADE0 +0x8B46 0xADE1 +0x8B47 0xADE2 +0x8B48 0xADE3 +0x8B49 0xADE4 +0x8B4A 0xADE5 +0x8B4B 0xADE6 +0x8B4C 0xADE7 +0x8B4D 0xADE8 +0x8B4E 0xADE9 +0x8B4F 0xADEA +0x8B50 0xADEB +0x8B51 0xADEC +0x8B53 0xADED +0x8B54 0xADEE +0x8B55 0xADEF +0x8B56 0xADF0 +0x8B57 0xADF1 +0x8B58 0xADF2 +0x8B59 0xADF3 +0x8B5A 0xADF4 +0x8B5B 0xADF5 +0x8B5C 0xADF6 +0x8B5D 0xADF7 +0x8B61 0xADF8 +0x8B62 0xADF9 +0x8B63 0xADFA +0x8B64 0xADFB +0x8B65 0xADFC +0x8B66 0xADFD +0x8B67 0xADFE +0x8B68 0xADFF +0x8B69 0xAE00 +0x8B6A 0xAE01 +0x8B6B 0xAE02 +0x8B6C 0xAE03 +0x8B6D 0xAE04 +0x8B6E 0xAE05 +0x8B6F 0xAE06 +0x8B70 0xAE07 +0x8B71 0xAE08 +0x8B73 0xAE09 +0x8B74 0xAE0A +0x8B75 0xAE0B +0x8B76 0xAE0C +0x8B77 0xAE0D +0x8B78 0xAE0E +0x8B79 0xAE0F +0x8B7A 0xAE10 +0x8B7B 0xAE11 +0x8B7C 0xAE12 +0x8B7D 0xAE13 +0x8B81 0xAE14 +0x8B82 0xAE15 +0x8B83 0xAE16 +0x8B84 0xAE17 +0x8B85 0xAE18 +0x8B86 0xAE19 +0x8B87 0xAE1A +0x8B88 0xAE1B +0x8B89 0xAE1C +0x8B8A 0xAE1D +0x8B8B 0xAE1E +0x8B8C 0xAE1F +0x8B8D 0xAE20 +0x8B8E 0xAE21 +0x8B8F 0xAE22 +0x8B90 0xAE23 +0x8B91 0xAE24 +0x8B93 0xAE25 +0x8B94 0xAE26 +0x8B95 0xAE27 +0x8B96 0xAE28 +0x8B97 0xAE29 +0x8B98 0xAE2A +0x8B99 0xAE2B +0x8B9A 0xAE2C +0x8B9B 0xAE2D +0x8B9C 0xAE2E +0x8B9D 0xAE2F +0x8BA1 0xAE30 +0x8BA2 0xAE31 +0x8BA3 0xAE32 +0x8BA4 0xAE33 +0x8BA5 0xAE34 +0x8BA6 0xAE35 +0x8BA7 0xAE36 +0x8BA8 0xAE37 +0x8BA9 0xAE38 +0x8BAA 0xAE39 +0x8BAB 0xAE3A +0x8BAC 0xAE3B +0x8BAD 0xAE3C +0x8BAE 0xAE3D +0x8BAF 0xAE3E +0x8BB0 0xAE3F +0x8BB1 0xAE40 +0x8BB3 0xAE41 +0x8BB4 0xAE42 +0x8BB5 0xAE43 +0x8BB6 0xAE44 +0x8BB7 0xAE45 +0x8BB8 0xAE46 +0x8BB9 0xAE47 +0x8BBA 0xAE48 +0x8BBB 0xAE49 +0x8BBC 0xAE4A +0x8BBD 0xAE4B +0x8C41 0x3132 +0x8C61 0xAE4C +0x8C62 0xAE4D +0x8C63 0xAE4E +0x8C64 0xAE4F +0x8C65 0xAE50 +0x8C66 0xAE51 +0x8C67 0xAE52 +0x8C68 0xAE53 +0x8C69 0xAE54 +0x8C6A 0xAE55 +0x8C6B 0xAE56 +0x8C6C 0xAE57 +0x8C6D 0xAE58 +0x8C6E 0xAE59 +0x8C6F 0xAE5A +0x8C70 0xAE5B +0x8C71 0xAE5C +0x8C73 0xAE5D +0x8C74 0xAE5E +0x8C75 0xAE5F +0x8C76 0xAE60 +0x8C77 0xAE61 +0x8C78 0xAE62 +0x8C79 0xAE63 +0x8C7A 0xAE64 +0x8C7B 0xAE65 +0x8C7C 0xAE66 +0x8C7D 0xAE67 +0x8C81 0xAE68 +0x8C82 0xAE69 +0x8C83 0xAE6A +0x8C84 0xAE6B +0x8C85 0xAE6C +0x8C86 0xAE6D +0x8C87 0xAE6E +0x8C88 0xAE6F +0x8C89 0xAE70 +0x8C8A 0xAE71 +0x8C8B 0xAE72 +0x8C8C 0xAE73 +0x8C8D 0xAE74 +0x8C8E 0xAE75 +0x8C8F 0xAE76 +0x8C90 0xAE77 +0x8C91 0xAE78 +0x8C93 0xAE79 +0x8C94 0xAE7A +0x8C95 0xAE7B +0x8C96 0xAE7C +0x8C97 0xAE7D +0x8C98 0xAE7E +0x8C99 0xAE7F +0x8C9A 0xAE80 +0x8C9B 0xAE81 +0x8C9C 0xAE82 +0x8C9D 0xAE83 +0x8CA1 0xAE84 +0x8CA2 0xAE85 +0x8CA3 0xAE86 +0x8CA4 0xAE87 +0x8CA5 0xAE88 +0x8CA6 0xAE89 +0x8CA7 0xAE8A +0x8CA8 0xAE8B +0x8CA9 0xAE8C +0x8CAA 0xAE8D +0x8CAB 0xAE8E +0x8CAC 0xAE8F +0x8CAD 0xAE90 +0x8CAE 0xAE91 +0x8CAF 0xAE92 +0x8CB0 0xAE93 +0x8CB1 0xAE94 +0x8CB3 0xAE95 +0x8CB4 0xAE96 +0x8CB5 0xAE97 +0x8CB6 0xAE98 +0x8CB7 0xAE99 +0x8CB8 0xAE9A +0x8CB9 0xAE9B +0x8CBA 0xAE9C +0x8CBB 0xAE9D +0x8CBC 0xAE9E +0x8CBD 0xAE9F +0x8CC1 0xAEA0 +0x8CC2 0xAEA1 +0x8CC3 0xAEA2 +0x8CC4 0xAEA3 +0x8CC5 0xAEA4 +0x8CC6 0xAEA5 +0x8CC7 0xAEA6 +0x8CC8 0xAEA7 +0x8CC9 0xAEA8 +0x8CCA 0xAEA9 +0x8CCB 0xAEAA +0x8CCC 0xAEAB +0x8CCD 0xAEAC +0x8CCE 0xAEAD +0x8CCF 0xAEAE +0x8CD0 0xAEAF +0x8CD1 0xAEB0 +0x8CD3 0xAEB1 +0x8CD4 0xAEB2 +0x8CD5 0xAEB3 +0x8CD6 0xAEB4 +0x8CD7 0xAEB5 +0x8CD8 0xAEB6 +0x8CD9 0xAEB7 +0x8CDA 0xAEB8 +0x8CDB 0xAEB9 +0x8CDC 0xAEBA +0x8CDD 0xAEBB +0x8CE1 0xAEBC +0x8CE2 0xAEBD +0x8CE3 0xAEBE +0x8CE4 0xAEBF +0x8CE5 0xAEC0 +0x8CE6 0xAEC1 +0x8CE7 0xAEC2 +0x8CE8 0xAEC3 +0x8CE9 0xAEC4 +0x8CEA 0xAEC5 +0x8CEB 0xAEC6 +0x8CEC 0xAEC7 +0x8CED 0xAEC8 +0x8CEE 0xAEC9 +0x8CEF 0xAECA +0x8CF0 0xAECB +0x8CF1 0xAECC +0x8CF3 0xAECD +0x8CF4 0xAECE +0x8CF5 0xAECF +0x8CF6 0xAED0 +0x8CF7 0xAED1 +0x8CF8 0xAED2 +0x8CF9 0xAED3 +0x8CFA 0xAED4 +0x8CFB 0xAED5 +0x8CFC 0xAED6 +0x8CFD 0xAED7 +0x8D41 0xAED8 +0x8D42 0xAED9 +0x8D43 0xAEDA +0x8D44 0xAEDB +0x8D45 0xAEDC +0x8D46 0xAEDD +0x8D47 0xAEDE +0x8D48 0xAEDF +0x8D49 0xAEE0 +0x8D4A 0xAEE1 +0x8D4B 0xAEE2 +0x8D4C 0xAEE3 +0x8D4D 0xAEE4 +0x8D4E 0xAEE5 +0x8D4F 0xAEE6 +0x8D50 0xAEE7 +0x8D51 0xAEE8 +0x8D53 0xAEE9 +0x8D54 0xAEEA +0x8D55 0xAEEB +0x8D56 0xAEEC +0x8D57 0xAEED +0x8D58 0xAEEE +0x8D59 0xAEEF +0x8D5A 0xAEF0 +0x8D5B 0xAEF1 +0x8D5C 0xAEF2 +0x8D5D 0xAEF3 +0x8D61 0xAEF4 +0x8D62 0xAEF5 +0x8D63 0xAEF6 +0x8D64 0xAEF7 +0x8D65 0xAEF8 +0x8D66 0xAEF9 +0x8D67 0xAEFA +0x8D68 0xAEFB +0x8D69 0xAEFC +0x8D6A 0xAEFD +0x8D6B 0xAEFE +0x8D6C 0xAEFF +0x8D6D 0xAF00 +0x8D6E 0xAF01 +0x8D6F 0xAF02 +0x8D70 0xAF03 +0x8D71 0xAF04 +0x8D73 0xAF05 +0x8D74 0xAF06 +0x8D75 0xAF07 +0x8D76 0xAF08 +0x8D77 0xAF09 +0x8D78 0xAF0A +0x8D79 0xAF0B +0x8D7A 0xAF0C +0x8D7B 0xAF0D +0x8D7C 0xAF0E +0x8D7D 0xAF0F +0x8D81 0xAF10 +0x8D82 0xAF11 +0x8D83 0xAF12 +0x8D84 0xAF13 +0x8D85 0xAF14 +0x8D86 0xAF15 +0x8D87 0xAF16 +0x8D88 0xAF17 +0x8D89 0xAF18 +0x8D8A 0xAF19 +0x8D8B 0xAF1A +0x8D8C 0xAF1B +0x8D8D 0xAF1C +0x8D8E 0xAF1D +0x8D8F 0xAF1E +0x8D90 0xAF1F +0x8D91 0xAF20 +0x8D93 0xAF21 +0x8D94 0xAF22 +0x8D95 0xAF23 +0x8D96 0xAF24 +0x8D97 0xAF25 +0x8D98 0xAF26 +0x8D99 0xAF27 +0x8D9A 0xAF28 +0x8D9B 0xAF29 +0x8D9C 0xAF2A +0x8D9D 0xAF2B +0x8DA1 0xAF2C +0x8DA2 0xAF2D +0x8DA3 0xAF2E +0x8DA4 0xAF2F +0x8DA5 0xAF30 +0x8DA6 0xAF31 +0x8DA7 0xAF32 +0x8DA8 0xAF33 +0x8DA9 0xAF34 +0x8DAA 0xAF35 +0x8DAB 0xAF36 +0x8DAC 0xAF37 +0x8DAD 0xAF38 +0x8DAE 0xAF39 +0x8DAF 0xAF3A +0x8DB0 0xAF3B +0x8DB1 0xAF3C +0x8DB3 0xAF3D +0x8DB4 0xAF3E +0x8DB5 0xAF3F +0x8DB6 0xAF40 +0x8DB7 0xAF41 +0x8DB8 0xAF42 +0x8DB9 0xAF43 +0x8DBA 0xAF44 +0x8DBB 0xAF45 +0x8DBC 0xAF46 +0x8DBD 0xAF47 +0x8DC1 0xAF48 +0x8DC2 0xAF49 +0x8DC3 0xAF4A +0x8DC4 0xAF4B +0x8DC5 0xAF4C +0x8DC6 0xAF4D +0x8DC7 0xAF4E +0x8DC8 0xAF4F +0x8DC9 0xAF50 +0x8DCA 0xAF51 +0x8DCB 0xAF52 +0x8DCC 0xAF53 +0x8DCD 0xAF54 +0x8DCE 0xAF55 +0x8DCF 0xAF56 +0x8DD0 0xAF57 +0x8DD1 0xAF58 +0x8DD3 0xAF59 +0x8DD4 0xAF5A +0x8DD5 0xAF5B +0x8DD6 0xAF5C +0x8DD7 0xAF5D +0x8DD8 0xAF5E +0x8DD9 0xAF5F +0x8DDA 0xAF60 +0x8DDB 0xAF61 +0x8DDC 0xAF62 +0x8DDD 0xAF63 +0x8DE1 0xAF64 +0x8DE2 0xAF65 +0x8DE3 0xAF66 +0x8DE4 0xAF67 +0x8DE5 0xAF68 +0x8DE6 0xAF69 +0x8DE7 0xAF6A +0x8DE8 0xAF6B +0x8DE9 0xAF6C +0x8DEA 0xAF6D +0x8DEB 0xAF6E +0x8DEC 0xAF6F +0x8DED 0xAF70 +0x8DEE 0xAF71 +0x8DEF 0xAF72 +0x8DF0 0xAF73 +0x8DF1 0xAF74 +0x8DF3 0xAF75 +0x8DF4 0xAF76 +0x8DF5 0xAF77 +0x8DF6 0xAF78 +0x8DF7 0xAF79 +0x8DF8 0xAF7A +0x8DF9 0xAF7B +0x8DFA 0xAF7C +0x8DFB 0xAF7D +0x8DFC 0xAF7E +0x8DFD 0xAF7F +0x8E41 0xAF80 +0x8E42 0xAF81 +0x8E43 0xAF82 +0x8E44 0xAF83 +0x8E45 0xAF84 +0x8E46 0xAF85 +0x8E47 0xAF86 +0x8E48 0xAF87 +0x8E49 0xAF88 +0x8E4A 0xAF89 +0x8E4B 0xAF8A +0x8E4C 0xAF8B +0x8E4D 0xAF8C +0x8E4E 0xAF8D +0x8E4F 0xAF8E +0x8E50 0xAF8F +0x8E51 0xAF90 +0x8E53 0xAF91 +0x8E54 0xAF92 +0x8E55 0xAF93 +0x8E56 0xAF94 +0x8E57 0xAF95 +0x8E58 0xAF96 +0x8E59 0xAF97 +0x8E5A 0xAF98 +0x8E5B 0xAF99 +0x8E5C 0xAF9A +0x8E5D 0xAF9B +0x8E61 0xAF9C +0x8E62 0xAF9D +0x8E63 0xAF9E +0x8E64 0xAF9F +0x8E65 0xAFA0 +0x8E66 0xAFA1 +0x8E67 0xAFA2 +0x8E68 0xAFA3 +0x8E69 0xAFA4 +0x8E6A 0xAFA5 +0x8E6B 0xAFA6 +0x8E6C 0xAFA7 +0x8E6D 0xAFA8 +0x8E6E 0xAFA9 +0x8E6F 0xAFAA +0x8E70 0xAFAB +0x8E71 0xAFAC +0x8E73 0xAFAD +0x8E74 0xAFAE +0x8E75 0xAFAF +0x8E76 0xAFB0 +0x8E77 0xAFB1 +0x8E78 0xAFB2 +0x8E79 0xAFB3 +0x8E7A 0xAFB4 +0x8E7B 0xAFB5 +0x8E7C 0xAFB6 +0x8E7D 0xAFB7 +0x8E81 0xAFB8 +0x8E82 0xAFB9 +0x8E83 0xAFBA +0x8E84 0xAFBB +0x8E85 0xAFBC +0x8E86 0xAFBD +0x8E87 0xAFBE +0x8E88 0xAFBF +0x8E89 0xAFC0 +0x8E8A 0xAFC1 +0x8E8B 0xAFC2 +0x8E8C 0xAFC3 +0x8E8D 0xAFC4 +0x8E8E 0xAFC5 +0x8E8F 0xAFC6 +0x8E90 0xAFC7 +0x8E91 0xAFC8 +0x8E93 0xAFC9 +0x8E94 0xAFCA +0x8E95 0xAFCB +0x8E96 0xAFCC +0x8E97 0xAFCD +0x8E98 0xAFCE +0x8E99 0xAFCF +0x8E9A 0xAFD0 +0x8E9B 0xAFD1 +0x8E9C 0xAFD2 +0x8E9D 0xAFD3 +0x8EA1 0xAFD4 +0x8EA2 0xAFD5 +0x8EA3 0xAFD6 +0x8EA4 0xAFD7 +0x8EA5 0xAFD8 +0x8EA6 0xAFD9 +0x8EA7 0xAFDA +0x8EA8 0xAFDB +0x8EA9 0xAFDC +0x8EAA 0xAFDD +0x8EAB 0xAFDE +0x8EAC 0xAFDF +0x8EAD 0xAFE0 +0x8EAE 0xAFE1 +0x8EAF 0xAFE2 +0x8EB0 0xAFE3 +0x8EB1 0xAFE4 +0x8EB3 0xAFE5 +0x8EB4 0xAFE6 +0x8EB5 0xAFE7 +0x8EB6 0xAFE8 +0x8EB7 0xAFE9 +0x8EB8 0xAFEA +0x8EB9 0xAFEB +0x8EBA 0xAFEC +0x8EBB 0xAFED +0x8EBC 0xAFEE +0x8EBD 0xAFEF +0x8EC1 0xAFF0 +0x8EC2 0xAFF1 +0x8EC3 0xAFF2 +0x8EC4 0xAFF3 +0x8EC5 0xAFF4 +0x8EC6 0xAFF5 +0x8EC7 0xAFF6 +0x8EC8 0xAFF7 +0x8EC9 0xAFF8 +0x8ECA 0xAFF9 +0x8ECB 0xAFFA +0x8ECC 0xAFFB +0x8ECD 0xAFFC +0x8ECE 0xAFFD +0x8ECF 0xAFFE +0x8ED0 0xAFFF +0x8ED1 0xB000 +0x8ED3 0xB001 +0x8ED4 0xB002 +0x8ED5 0xB003 +0x8ED6 0xB004 +0x8ED7 0xB005 +0x8ED8 0xB006 +0x8ED9 0xB007 +0x8EDA 0xB008 +0x8EDB 0xB009 +0x8EDC 0xB00A +0x8EDD 0xB00B +0x8EE1 0xB00C +0x8EE2 0xB00D +0x8EE3 0xB00E +0x8EE4 0xB00F +0x8EE5 0xB010 +0x8EE6 0xB011 +0x8EE7 0xB012 +0x8EE8 0xB013 +0x8EE9 0xB014 +0x8EEA 0xB015 +0x8EEB 0xB016 +0x8EEC 0xB017 +0x8EED 0xB018 +0x8EEE 0xB019 +0x8EEF 0xB01A +0x8EF0 0xB01B +0x8EF1 0xB01C +0x8EF3 0xB01D +0x8EF4 0xB01E +0x8EF5 0xB01F +0x8EF6 0xB020 +0x8EF7 0xB021 +0x8EF8 0xB022 +0x8EF9 0xB023 +0x8EFA 0xB024 +0x8EFB 0xB025 +0x8EFC 0xB026 +0x8EFD 0xB027 +0x8F41 0xB028 +0x8F42 0xB029 +0x8F43 0xB02A +0x8F44 0xB02B +0x8F45 0xB02C +0x8F46 0xB02D +0x8F47 0xB02E +0x8F48 0xB02F +0x8F49 0xB030 +0x8F4A 0xB031 +0x8F4B 0xB032 +0x8F4C 0xB033 +0x8F4D 0xB034 +0x8F4E 0xB035 +0x8F4F 0xB036 +0x8F50 0xB037 +0x8F51 0xB038 +0x8F53 0xB039 +0x8F54 0xB03A +0x8F55 0xB03B +0x8F56 0xB03C +0x8F57 0xB03D +0x8F58 0xB03E +0x8F59 0xB03F +0x8F5A 0xB040 +0x8F5B 0xB041 +0x8F5C 0xB042 +0x8F5D 0xB043 +0x8F61 0xB044 +0x8F62 0xB045 +0x8F63 0xB046 +0x8F64 0xB047 +0x8F65 0xB048 +0x8F66 0xB049 +0x8F67 0xB04A +0x8F68 0xB04B +0x8F69 0xB04C +0x8F6A 0xB04D +0x8F6B 0xB04E +0x8F6C 0xB04F +0x8F6D 0xB050 +0x8F6E 0xB051 +0x8F6F 0xB052 +0x8F70 0xB053 +0x8F71 0xB054 +0x8F73 0xB055 +0x8F74 0xB056 +0x8F75 0xB057 +0x8F76 0xB058 +0x8F77 0xB059 +0x8F78 0xB05A +0x8F79 0xB05B +0x8F7A 0xB05C +0x8F7B 0xB05D +0x8F7C 0xB05E +0x8F7D 0xB05F +0x8F81 0xB060 +0x8F82 0xB061 +0x8F83 0xB062 +0x8F84 0xB063 +0x8F85 0xB064 +0x8F86 0xB065 +0x8F87 0xB066 +0x8F88 0xB067 +0x8F89 0xB068 +0x8F8A 0xB069 +0x8F8B 0xB06A +0x8F8C 0xB06B +0x8F8D 0xB06C +0x8F8E 0xB06D +0x8F8F 0xB06E +0x8F90 0xB06F +0x8F91 0xB070 +0x8F93 0xB071 +0x8F94 0xB072 +0x8F95 0xB073 +0x8F96 0xB074 +0x8F97 0xB075 +0x8F98 0xB076 +0x8F99 0xB077 +0x8F9A 0xB078 +0x8F9B 0xB079 +0x8F9C 0xB07A +0x8F9D 0xB07B +0x8FA1 0xB07C +0x8FA2 0xB07D +0x8FA3 0xB07E +0x8FA4 0xB07F +0x8FA5 0xB080 +0x8FA6 0xB081 +0x8FA7 0xB082 +0x8FA8 0xB083 +0x8FA9 0xB084 +0x8FAA 0xB085 +0x8FAB 0xB086 +0x8FAC 0xB087 +0x8FAD 0xB088 +0x8FAE 0xB089 +0x8FAF 0xB08A +0x8FB0 0xB08B +0x8FB1 0xB08C +0x8FB3 0xB08D +0x8FB4 0xB08E +0x8FB5 0xB08F +0x8FB6 0xB090 +0x8FB7 0xB091 +0x8FB8 0xB092 +0x8FB9 0xB093 +0x8FBA 0xB094 +0x8FBB 0xB095 +0x8FBC 0xB096 +0x8FBD 0xB097 +0x9041 0x3134 +0x9061 0xB098 +0x9062 0xB099 +0x9063 0xB09A +0x9064 0xB09B +0x9065 0xB09C +0x9066 0xB09D +0x9067 0xB09E +0x9068 0xB09F +0x9069 0xB0A0 +0x906A 0xB0A1 +0x906B 0xB0A2 +0x906C 0xB0A3 +0x906D 0xB0A4 +0x906E 0xB0A5 +0x906F 0xB0A6 +0x9070 0xB0A7 +0x9071 0xB0A8 +0x9073 0xB0A9 +0x9074 0xB0AA +0x9075 0xB0AB +0x9076 0xB0AC +0x9077 0xB0AD +0x9078 0xB0AE +0x9079 0xB0AF +0x907A 0xB0B0 +0x907B 0xB0B1 +0x907C 0xB0B2 +0x907D 0xB0B3 +0x9081 0xB0B4 +0x9082 0xB0B5 +0x9083 0xB0B6 +0x9084 0xB0B7 +0x9085 0xB0B8 +0x9086 0xB0B9 +0x9087 0xB0BA +0x9088 0xB0BB +0x9089 0xB0BC +0x908A 0xB0BD +0x908B 0xB0BE +0x908C 0xB0BF +0x908D 0xB0C0 +0x908E 0xB0C1 +0x908F 0xB0C2 +0x9090 0xB0C3 +0x9091 0xB0C4 +0x9093 0xB0C5 +0x9094 0xB0C6 +0x9095 0xB0C7 +0x9096 0xB0C8 +0x9097 0xB0C9 +0x9098 0xB0CA +0x9099 0xB0CB +0x909A 0xB0CC +0x909B 0xB0CD +0x909C 0xB0CE +0x909D 0xB0CF +0x90A1 0xB0D0 +0x90A2 0xB0D1 +0x90A3 0xB0D2 +0x90A4 0xB0D3 +0x90A5 0xB0D4 +0x90A6 0xB0D5 +0x90A7 0xB0D6 +0x90A8 0xB0D7 +0x90A9 0xB0D8 +0x90AA 0xB0D9 +0x90AB 0xB0DA +0x90AC 0xB0DB +0x90AD 0xB0DC +0x90AE 0xB0DD +0x90AF 0xB0DE +0x90B0 0xB0DF +0x90B1 0xB0E0 +0x90B3 0xB0E1 +0x90B4 0xB0E2 +0x90B5 0xB0E3 +0x90B6 0xB0E4 +0x90B7 0xB0E5 +0x90B8 0xB0E6 +0x90B9 0xB0E7 +0x90BA 0xB0E8 +0x90BB 0xB0E9 +0x90BC 0xB0EA +0x90BD 0xB0EB +0x90C1 0xB0EC +0x90C2 0xB0ED +0x90C3 0xB0EE +0x90C4 0xB0EF +0x90C5 0xB0F0 +0x90C6 0xB0F1 +0x90C7 0xB0F2 +0x90C8 0xB0F3 +0x90C9 0xB0F4 +0x90CA 0xB0F5 +0x90CB 0xB0F6 +0x90CC 0xB0F7 +0x90CD 0xB0F8 +0x90CE 0xB0F9 +0x90CF 0xB0FA +0x90D0 0xB0FB +0x90D1 0xB0FC +0x90D3 0xB0FD +0x90D4 0xB0FE +0x90D5 0xB0FF +0x90D6 0xB100 +0x90D7 0xB101 +0x90D8 0xB102 +0x90D9 0xB103 +0x90DA 0xB104 +0x90DB 0xB105 +0x90DC 0xB106 +0x90DD 0xB107 +0x90E1 0xB108 +0x90E2 0xB109 +0x90E3 0xB10A +0x90E4 0xB10B +0x90E5 0xB10C +0x90E6 0xB10D +0x90E7 0xB10E +0x90E8 0xB10F +0x90E9 0xB110 +0x90EA 0xB111 +0x90EB 0xB112 +0x90EC 0xB113 +0x90ED 0xB114 +0x90EE 0xB115 +0x90EF 0xB116 +0x90F0 0xB117 +0x90F1 0xB118 +0x90F3 0xB119 +0x90F4 0xB11A +0x90F5 0xB11B +0x90F6 0xB11C +0x90F7 0xB11D +0x90F8 0xB11E +0x90F9 0xB11F +0x90FA 0xB120 +0x90FB 0xB121 +0x90FC 0xB122 +0x90FD 0xB123 +0x9141 0xB124 +0x9142 0xB125 +0x9143 0xB126 +0x9144 0xB127 +0x9145 0xB128 +0x9146 0xB129 +0x9147 0xB12A +0x9148 0xB12B +0x9149 0xB12C +0x914A 0xB12D +0x914B 0xB12E +0x914C 0xB12F +0x914D 0xB130 +0x914E 0xB131 +0x914F 0xB132 +0x9150 0xB133 +0x9151 0xB134 +0x9153 0xB135 +0x9154 0xB136 +0x9155 0xB137 +0x9156 0xB138 +0x9157 0xB139 +0x9158 0xB13A +0x9159 0xB13B +0x915A 0xB13C +0x915B 0xB13D +0x915C 0xB13E +0x915D 0xB13F +0x9161 0xB140 +0x9162 0xB141 +0x9163 0xB142 +0x9164 0xB143 +0x9165 0xB144 +0x9166 0xB145 +0x9167 0xB146 +0x9168 0xB147 +0x9169 0xB148 +0x916A 0xB149 +0x916B 0xB14A +0x916C 0xB14B +0x916D 0xB14C +0x916E 0xB14D +0x916F 0xB14E +0x9170 0xB14F +0x9171 0xB150 +0x9173 0xB151 +0x9174 0xB152 +0x9175 0xB153 +0x9176 0xB154 +0x9177 0xB155 +0x9178 0xB156 +0x9179 0xB157 +0x917A 0xB158 +0x917B 0xB159 +0x917C 0xB15A +0x917D 0xB15B +0x9181 0xB15C +0x9182 0xB15D +0x9183 0xB15E +0x9184 0xB15F +0x9185 0xB160 +0x9186 0xB161 +0x9187 0xB162 +0x9188 0xB163 +0x9189 0xB164 +0x918A 0xB165 +0x918B 0xB166 +0x918C 0xB167 +0x918D 0xB168 +0x918E 0xB169 +0x918F 0xB16A +0x9190 0xB16B +0x9191 0xB16C +0x9193 0xB16D +0x9194 0xB16E +0x9195 0xB16F +0x9196 0xB170 +0x9197 0xB171 +0x9198 0xB172 +0x9199 0xB173 +0x919A 0xB174 +0x919B 0xB175 +0x919C 0xB176 +0x919D 0xB177 +0x91A1 0xB178 +0x91A2 0xB179 +0x91A3 0xB17A +0x91A4 0xB17B +0x91A5 0xB17C +0x91A6 0xB17D +0x91A7 0xB17E +0x91A8 0xB17F +0x91A9 0xB180 +0x91AA 0xB181 +0x91AB 0xB182 +0x91AC 0xB183 +0x91AD 0xB184 +0x91AE 0xB185 +0x91AF 0xB186 +0x91B0 0xB187 +0x91B1 0xB188 +0x91B3 0xB189 +0x91B4 0xB18A +0x91B5 0xB18B +0x91B6 0xB18C +0x91B7 0xB18D +0x91B8 0xB18E +0x91B9 0xB18F +0x91BA 0xB190 +0x91BB 0xB191 +0x91BC 0xB192 +0x91BD 0xB193 +0x91C1 0xB194 +0x91C2 0xB195 +0x91C3 0xB196 +0x91C4 0xB197 +0x91C5 0xB198 +0x91C6 0xB199 +0x91C7 0xB19A +0x91C8 0xB19B +0x91C9 0xB19C +0x91CA 0xB19D +0x91CB 0xB19E +0x91CC 0xB19F +0x91CD 0xB1A0 +0x91CE 0xB1A1 +0x91CF 0xB1A2 +0x91D0 0xB1A3 +0x91D1 0xB1A4 +0x91D3 0xB1A5 +0x91D4 0xB1A6 +0x91D5 0xB1A7 +0x91D6 0xB1A8 +0x91D7 0xB1A9 +0x91D8 0xB1AA +0x91D9 0xB1AB +0x91DA 0xB1AC +0x91DB 0xB1AD +0x91DC 0xB1AE +0x91DD 0xB1AF +0x91E1 0xB1B0 +0x91E2 0xB1B1 +0x91E3 0xB1B2 +0x91E4 0xB1B3 +0x91E5 0xB1B4 +0x91E6 0xB1B5 +0x91E7 0xB1B6 +0x91E8 0xB1B7 +0x91E9 0xB1B8 +0x91EA 0xB1B9 +0x91EB 0xB1BA +0x91EC 0xB1BB +0x91ED 0xB1BC +0x91EE 0xB1BD +0x91EF 0xB1BE +0x91F0 0xB1BF +0x91F1 0xB1C0 +0x91F3 0xB1C1 +0x91F4 0xB1C2 +0x91F5 0xB1C3 +0x91F6 0xB1C4 +0x91F7 0xB1C5 +0x91F8 0xB1C6 +0x91F9 0xB1C7 +0x91FA 0xB1C8 +0x91FB 0xB1C9 +0x91FC 0xB1CA +0x91FD 0xB1CB +0x9241 0xB1CC +0x9242 0xB1CD +0x9243 0xB1CE +0x9244 0xB1CF +0x9245 0xB1D0 +0x9246 0xB1D1 +0x9247 0xB1D2 +0x9248 0xB1D3 +0x9249 0xB1D4 +0x924A 0xB1D5 +0x924B 0xB1D6 +0x924C 0xB1D7 +0x924D 0xB1D8 +0x924E 0xB1D9 +0x924F 0xB1DA +0x9250 0xB1DB +0x9251 0xB1DC +0x9253 0xB1DD +0x9254 0xB1DE +0x9255 0xB1DF +0x9256 0xB1E0 +0x9257 0xB1E1 +0x9258 0xB1E2 +0x9259 0xB1E3 +0x925A 0xB1E4 +0x925B 0xB1E5 +0x925C 0xB1E6 +0x925D 0xB1E7 +0x9261 0xB1E8 +0x9262 0xB1E9 +0x9263 0xB1EA +0x9264 0xB1EB +0x9265 0xB1EC +0x9266 0xB1ED +0x9267 0xB1EE +0x9268 0xB1EF +0x9269 0xB1F0 +0x926A 0xB1F1 +0x926B 0xB1F2 +0x926C 0xB1F3 +0x926D 0xB1F4 +0x926E 0xB1F5 +0x926F 0xB1F6 +0x9270 0xB1F7 +0x9271 0xB1F8 +0x9273 0xB1F9 +0x9274 0xB1FA +0x9275 0xB1FB +0x9276 0xB1FC +0x9277 0xB1FD +0x9278 0xB1FE +0x9279 0xB1FF +0x927A 0xB200 +0x927B 0xB201 +0x927C 0xB202 +0x927D 0xB203 +0x9281 0xB204 +0x9282 0xB205 +0x9283 0xB206 +0x9284 0xB207 +0x9285 0xB208 +0x9286 0xB209 +0x9287 0xB20A +0x9288 0xB20B +0x9289 0xB20C +0x928A 0xB20D +0x928B 0xB20E +0x928C 0xB20F +0x928D 0xB210 +0x928E 0xB211 +0x928F 0xB212 +0x9290 0xB213 +0x9291 0xB214 +0x9293 0xB215 +0x9294 0xB216 +0x9295 0xB217 +0x9296 0xB218 +0x9297 0xB219 +0x9298 0xB21A +0x9299 0xB21B +0x929A 0xB21C +0x929B 0xB21D +0x929C 0xB21E +0x929D 0xB21F +0x92A1 0xB220 +0x92A2 0xB221 +0x92A3 0xB222 +0x92A4 0xB223 +0x92A5 0xB224 +0x92A6 0xB225 +0x92A7 0xB226 +0x92A8 0xB227 +0x92A9 0xB228 +0x92AA 0xB229 +0x92AB 0xB22A +0x92AC 0xB22B +0x92AD 0xB22C +0x92AE 0xB22D +0x92AF 0xB22E +0x92B0 0xB22F +0x92B1 0xB230 +0x92B3 0xB231 +0x92B4 0xB232 +0x92B5 0xB233 +0x92B6 0xB234 +0x92B7 0xB235 +0x92B8 0xB236 +0x92B9 0xB237 +0x92BA 0xB238 +0x92BB 0xB239 +0x92BC 0xB23A +0x92BD 0xB23B +0x92C1 0xB23C +0x92C2 0xB23D +0x92C3 0xB23E +0x92C4 0xB23F +0x92C5 0xB240 +0x92C6 0xB241 +0x92C7 0xB242 +0x92C8 0xB243 +0x92C9 0xB244 +0x92CA 0xB245 +0x92CB 0xB246 +0x92CC 0xB247 +0x92CD 0xB248 +0x92CE 0xB249 +0x92CF 0xB24A +0x92D0 0xB24B +0x92D1 0xB24C +0x92D3 0xB24D +0x92D4 0xB24E +0x92D5 0xB24F +0x92D6 0xB250 +0x92D7 0xB251 +0x92D8 0xB252 +0x92D9 0xB253 +0x92DA 0xB254 +0x92DB 0xB255 +0x92DC 0xB256 +0x92DD 0xB257 +0x92E1 0xB258 +0x92E2 0xB259 +0x92E3 0xB25A +0x92E4 0xB25B +0x92E5 0xB25C +0x92E6 0xB25D +0x92E7 0xB25E +0x92E8 0xB25F +0x92E9 0xB260 +0x92EA 0xB261 +0x92EB 0xB262 +0x92EC 0xB263 +0x92ED 0xB264 +0x92EE 0xB265 +0x92EF 0xB266 +0x92F0 0xB267 +0x92F1 0xB268 +0x92F3 0xB269 +0x92F4 0xB26A +0x92F5 0xB26B +0x92F6 0xB26C +0x92F7 0xB26D +0x92F8 0xB26E +0x92F9 0xB26F +0x92FA 0xB270 +0x92FB 0xB271 +0x92FC 0xB272 +0x92FD 0xB273 +0x9341 0xB274 +0x9342 0xB275 +0x9343 0xB276 +0x9344 0xB277 +0x9345 0xB278 +0x9346 0xB279 +0x9347 0xB27A +0x9348 0xB27B +0x9349 0xB27C +0x934A 0xB27D +0x934B 0xB27E +0x934C 0xB27F +0x934D 0xB280 +0x934E 0xB281 +0x934F 0xB282 +0x9350 0xB283 +0x9351 0xB284 +0x9353 0xB285 +0x9354 0xB286 +0x9355 0xB287 +0x9356 0xB288 +0x9357 0xB289 +0x9358 0xB28A +0x9359 0xB28B +0x935A 0xB28C +0x935B 0xB28D +0x935C 0xB28E +0x935D 0xB28F +0x9361 0xB290 +0x9362 0xB291 +0x9363 0xB292 +0x9364 0xB293 +0x9365 0xB294 +0x9366 0xB295 +0x9367 0xB296 +0x9368 0xB297 +0x9369 0xB298 +0x936A 0xB299 +0x936B 0xB29A +0x936C 0xB29B +0x936D 0xB29C +0x936E 0xB29D +0x936F 0xB29E +0x9370 0xB29F +0x9371 0xB2A0 +0x9373 0xB2A1 +0x9374 0xB2A2 +0x9375 0xB2A3 +0x9376 0xB2A4 +0x9377 0xB2A5 +0x9378 0xB2A6 +0x9379 0xB2A7 +0x937A 0xB2A8 +0x937B 0xB2A9 +0x937C 0xB2AA +0x937D 0xB2AB +0x9381 0xB2AC +0x9382 0xB2AD +0x9383 0xB2AE +0x9384 0xB2AF +0x9385 0xB2B0 +0x9386 0xB2B1 +0x9387 0xB2B2 +0x9388 0xB2B3 +0x9389 0xB2B4 +0x938A 0xB2B5 +0x938B 0xB2B6 +0x938C 0xB2B7 +0x938D 0xB2B8 +0x938E 0xB2B9 +0x938F 0xB2BA +0x9390 0xB2BB +0x9391 0xB2BC +0x9393 0xB2BD +0x9394 0xB2BE +0x9395 0xB2BF +0x9396 0xB2C0 +0x9397 0xB2C1 +0x9398 0xB2C2 +0x9399 0xB2C3 +0x939A 0xB2C4 +0x939B 0xB2C5 +0x939C 0xB2C6 +0x939D 0xB2C7 +0x93A1 0xB2C8 +0x93A2 0xB2C9 +0x93A3 0xB2CA +0x93A4 0xB2CB +0x93A5 0xB2CC +0x93A6 0xB2CD +0x93A7 0xB2CE +0x93A8 0xB2CF +0x93A9 0xB2D0 +0x93AA 0xB2D1 +0x93AB 0xB2D2 +0x93AC 0xB2D3 +0x93AD 0xB2D4 +0x93AE 0xB2D5 +0x93AF 0xB2D6 +0x93B0 0xB2D7 +0x93B1 0xB2D8 +0x93B3 0xB2D9 +0x93B4 0xB2DA +0x93B5 0xB2DB +0x93B6 0xB2DC +0x93B7 0xB2DD +0x93B8 0xB2DE +0x93B9 0xB2DF +0x93BA 0xB2E0 +0x93BB 0xB2E1 +0x93BC 0xB2E2 +0x93BD 0xB2E3 +0x9441 0x3137 +0x9461 0xB2E4 +0x9462 0xB2E5 +0x9463 0xB2E6 +0x9464 0xB2E7 +0x9465 0xB2E8 +0x9466 0xB2E9 +0x9467 0xB2EA +0x9468 0xB2EB +0x9469 0xB2EC +0x946A 0xB2ED +0x946B 0xB2EE +0x946C 0xB2EF +0x946D 0xB2F0 +0x946E 0xB2F1 +0x946F 0xB2F2 +0x9470 0xB2F3 +0x9471 0xB2F4 +0x9473 0xB2F5 +0x9474 0xB2F6 +0x9475 0xB2F7 +0x9476 0xB2F8 +0x9477 0xB2F9 +0x9478 0xB2FA +0x9479 0xB2FB +0x947A 0xB2FC +0x947B 0xB2FD +0x947C 0xB2FE +0x947D 0xB2FF +0x9481 0xB300 +0x9482 0xB301 +0x9483 0xB302 +0x9484 0xB303 +0x9485 0xB304 +0x9486 0xB305 +0x9487 0xB306 +0x9488 0xB307 +0x9489 0xB308 +0x948A 0xB309 +0x948B 0xB30A +0x948C 0xB30B +0x948D 0xB30C +0x948E 0xB30D +0x948F 0xB30E +0x9490 0xB30F +0x9491 0xB310 +0x9493 0xB311 +0x9494 0xB312 +0x9495 0xB313 +0x9496 0xB314 +0x9497 0xB315 +0x9498 0xB316 +0x9499 0xB317 +0x949A 0xB318 +0x949B 0xB319 +0x949C 0xB31A +0x949D 0xB31B +0x94A1 0xB31C +0x94A2 0xB31D +0x94A3 0xB31E +0x94A4 0xB31F +0x94A5 0xB320 +0x94A6 0xB321 +0x94A7 0xB322 +0x94A8 0xB323 +0x94A9 0xB324 +0x94AA 0xB325 +0x94AB 0xB326 +0x94AC 0xB327 +0x94AD 0xB328 +0x94AE 0xB329 +0x94AF 0xB32A +0x94B0 0xB32B +0x94B1 0xB32C +0x94B3 0xB32D +0x94B4 0xB32E +0x94B5 0xB32F +0x94B6 0xB330 +0x94B7 0xB331 +0x94B8 0xB332 +0x94B9 0xB333 +0x94BA 0xB334 +0x94BB 0xB335 +0x94BC 0xB336 +0x94BD 0xB337 +0x94C1 0xB338 +0x94C2 0xB339 +0x94C3 0xB33A +0x94C4 0xB33B +0x94C5 0xB33C +0x94C6 0xB33D +0x94C7 0xB33E +0x94C8 0xB33F +0x94C9 0xB340 +0x94CA 0xB341 +0x94CB 0xB342 +0x94CC 0xB343 +0x94CD 0xB344 +0x94CE 0xB345 +0x94CF 0xB346 +0x94D0 0xB347 +0x94D1 0xB348 +0x94D3 0xB349 +0x94D4 0xB34A +0x94D5 0xB34B +0x94D6 0xB34C +0x94D7 0xB34D +0x94D8 0xB34E +0x94D9 0xB34F +0x94DA 0xB350 +0x94DB 0xB351 +0x94DC 0xB352 +0x94DD 0xB353 +0x94E1 0xB354 +0x94E2 0xB355 +0x94E3 0xB356 +0x94E4 0xB357 +0x94E5 0xB358 +0x94E6 0xB359 +0x94E7 0xB35A +0x94E8 0xB35B +0x94E9 0xB35C +0x94EA 0xB35D +0x94EB 0xB35E +0x94EC 0xB35F +0x94ED 0xB360 +0x94EE 0xB361 +0x94EF 0xB362 +0x94F0 0xB363 +0x94F1 0xB364 +0x94F3 0xB365 +0x94F4 0xB366 +0x94F5 0xB367 +0x94F6 0xB368 +0x94F7 0xB369 +0x94F8 0xB36A +0x94F9 0xB36B +0x94FA 0xB36C +0x94FB 0xB36D +0x94FC 0xB36E +0x94FD 0xB36F +0x9541 0xB370 +0x9542 0xB371 +0x9543 0xB372 +0x9544 0xB373 +0x9545 0xB374 +0x9546 0xB375 +0x9547 0xB376 +0x9548 0xB377 +0x9549 0xB378 +0x954A 0xB379 +0x954B 0xB37A +0x954C 0xB37B +0x954D 0xB37C +0x954E 0xB37D +0x954F 0xB37E +0x9550 0xB37F +0x9551 0xB380 +0x9553 0xB381 +0x9554 0xB382 +0x9555 0xB383 +0x9556 0xB384 +0x9557 0xB385 +0x9558 0xB386 +0x9559 0xB387 +0x955A 0xB388 +0x955B 0xB389 +0x955C 0xB38A +0x955D 0xB38B +0x9561 0xB38C +0x9562 0xB38D +0x9563 0xB38E +0x9564 0xB38F +0x9565 0xB390 +0x9566 0xB391 +0x9567 0xB392 +0x9568 0xB393 +0x9569 0xB394 +0x956A 0xB395 +0x956B 0xB396 +0x956C 0xB397 +0x956D 0xB398 +0x956E 0xB399 +0x956F 0xB39A +0x9570 0xB39B +0x9571 0xB39C +0x9573 0xB39D +0x9574 0xB39E +0x9575 0xB39F +0x9576 0xB3A0 +0x9577 0xB3A1 +0x9578 0xB3A2 +0x9579 0xB3A3 +0x957A 0xB3A4 +0x957B 0xB3A5 +0x957C 0xB3A6 +0x957D 0xB3A7 +0x9581 0xB3A8 +0x9582 0xB3A9 +0x9583 0xB3AA +0x9584 0xB3AB +0x9585 0xB3AC +0x9586 0xB3AD +0x9587 0xB3AE +0x9588 0xB3AF +0x9589 0xB3B0 +0x958A 0xB3B1 +0x958B 0xB3B2 +0x958C 0xB3B3 +0x958D 0xB3B4 +0x958E 0xB3B5 +0x958F 0xB3B6 +0x9590 0xB3B7 +0x9591 0xB3B8 +0x9593 0xB3B9 +0x9594 0xB3BA +0x9595 0xB3BB +0x9596 0xB3BC +0x9597 0xB3BD +0x9598 0xB3BE +0x9599 0xB3BF +0x959A 0xB3C0 +0x959B 0xB3C1 +0x959C 0xB3C2 +0x959D 0xB3C3 +0x95A1 0xB3C4 +0x95A2 0xB3C5 +0x95A3 0xB3C6 +0x95A4 0xB3C7 +0x95A5 0xB3C8 +0x95A6 0xB3C9 +0x95A7 0xB3CA +0x95A8 0xB3CB +0x95A9 0xB3CC +0x95AA 0xB3CD +0x95AB 0xB3CE +0x95AC 0xB3CF +0x95AD 0xB3D0 +0x95AE 0xB3D1 +0x95AF 0xB3D2 +0x95B0 0xB3D3 +0x95B1 0xB3D4 +0x95B3 0xB3D5 +0x95B4 0xB3D6 +0x95B5 0xB3D7 +0x95B6 0xB3D8 +0x95B7 0xB3D9 +0x95B8 0xB3DA +0x95B9 0xB3DB +0x95BA 0xB3DC +0x95BB 0xB3DD +0x95BC 0xB3DE +0x95BD 0xB3DF +0x95C1 0xB3E0 +0x95C2 0xB3E1 +0x95C3 0xB3E2 +0x95C4 0xB3E3 +0x95C5 0xB3E4 +0x95C6 0xB3E5 +0x95C7 0xB3E6 +0x95C8 0xB3E7 +0x95C9 0xB3E8 +0x95CA 0xB3E9 +0x95CB 0xB3EA +0x95CC 0xB3EB +0x95CD 0xB3EC +0x95CE 0xB3ED +0x95CF 0xB3EE +0x95D0 0xB3EF +0x95D1 0xB3F0 +0x95D3 0xB3F1 +0x95D4 0xB3F2 +0x95D5 0xB3F3 +0x95D6 0xB3F4 +0x95D7 0xB3F5 +0x95D8 0xB3F6 +0x95D9 0xB3F7 +0x95DA 0xB3F8 +0x95DB 0xB3F9 +0x95DC 0xB3FA +0x95DD 0xB3FB +0x95E1 0xB3FC +0x95E2 0xB3FD +0x95E3 0xB3FE +0x95E4 0xB3FF +0x95E5 0xB400 +0x95E6 0xB401 +0x95E7 0xB402 +0x95E8 0xB403 +0x95E9 0xB404 +0x95EA 0xB405 +0x95EB 0xB406 +0x95EC 0xB407 +0x95ED 0xB408 +0x95EE 0xB409 +0x95EF 0xB40A +0x95F0 0xB40B +0x95F1 0xB40C +0x95F3 0xB40D +0x95F4 0xB40E +0x95F5 0xB40F +0x95F6 0xB410 +0x95F7 0xB411 +0x95F8 0xB412 +0x95F9 0xB413 +0x95FA 0xB414 +0x95FB 0xB415 +0x95FC 0xB416 +0x95FD 0xB417 +0x9641 0xB418 +0x9642 0xB419 +0x9643 0xB41A +0x9644 0xB41B +0x9645 0xB41C +0x9646 0xB41D +0x9647 0xB41E +0x9648 0xB41F +0x9649 0xB420 +0x964A 0xB421 +0x964B 0xB422 +0x964C 0xB423 +0x964D 0xB424 +0x964E 0xB425 +0x964F 0xB426 +0x9650 0xB427 +0x9651 0xB428 +0x9653 0xB429 +0x9654 0xB42A +0x9655 0xB42B +0x9656 0xB42C +0x9657 0xB42D +0x9658 0xB42E +0x9659 0xB42F +0x965A 0xB430 +0x965B 0xB431 +0x965C 0xB432 +0x965D 0xB433 +0x9661 0xB434 +0x9662 0xB435 +0x9663 0xB436 +0x9664 0xB437 +0x9665 0xB438 +0x9666 0xB439 +0x9667 0xB43A +0x9668 0xB43B +0x9669 0xB43C +0x966A 0xB43D +0x966B 0xB43E +0x966C 0xB43F +0x966D 0xB440 +0x966E 0xB441 +0x966F 0xB442 +0x9670 0xB443 +0x9671 0xB444 +0x9673 0xB445 +0x9674 0xB446 +0x9675 0xB447 +0x9676 0xB448 +0x9677 0xB449 +0x9678 0xB44A +0x9679 0xB44B +0x967A 0xB44C +0x967B 0xB44D +0x967C 0xB44E +0x967D 0xB44F +0x9681 0xB450 +0x9682 0xB451 +0x9683 0xB452 +0x9684 0xB453 +0x9685 0xB454 +0x9686 0xB455 +0x9687 0xB456 +0x9688 0xB457 +0x9689 0xB458 +0x968A 0xB459 +0x968B 0xB45A +0x968C 0xB45B +0x968D 0xB45C +0x968E 0xB45D +0x968F 0xB45E +0x9690 0xB45F +0x9691 0xB460 +0x9693 0xB461 +0x9694 0xB462 +0x9695 0xB463 +0x9696 0xB464 +0x9697 0xB465 +0x9698 0xB466 +0x9699 0xB467 +0x969A 0xB468 +0x969B 0xB469 +0x969C 0xB46A +0x969D 0xB46B +0x96A1 0xB46C +0x96A2 0xB46D +0x96A3 0xB46E +0x96A4 0xB46F +0x96A5 0xB470 +0x96A6 0xB471 +0x96A7 0xB472 +0x96A8 0xB473 +0x96A9 0xB474 +0x96AA 0xB475 +0x96AB 0xB476 +0x96AC 0xB477 +0x96AD 0xB478 +0x96AE 0xB479 +0x96AF 0xB47A +0x96B0 0xB47B +0x96B1 0xB47C +0x96B3 0xB47D +0x96B4 0xB47E +0x96B5 0xB47F +0x96B6 0xB480 +0x96B7 0xB481 +0x96B8 0xB482 +0x96B9 0xB483 +0x96BA 0xB484 +0x96BB 0xB485 +0x96BC 0xB486 +0x96BD 0xB487 +0x96C1 0xB488 +0x96C2 0xB489 +0x96C3 0xB48A +0x96C4 0xB48B +0x96C5 0xB48C +0x96C6 0xB48D +0x96C7 0xB48E +0x96C8 0xB48F +0x96C9 0xB490 +0x96CA 0xB491 +0x96CB 0xB492 +0x96CC 0xB493 +0x96CD 0xB494 +0x96CE 0xB495 +0x96CF 0xB496 +0x96D0 0xB497 +0x96D1 0xB498 +0x96D3 0xB499 +0x96D4 0xB49A +0x96D5 0xB49B +0x96D6 0xB49C +0x96D7 0xB49D +0x96D8 0xB49E +0x96D9 0xB49F +0x96DA 0xB4A0 +0x96DB 0xB4A1 +0x96DC 0xB4A2 +0x96DD 0xB4A3 +0x96E1 0xB4A4 +0x96E2 0xB4A5 +0x96E3 0xB4A6 +0x96E4 0xB4A7 +0x96E5 0xB4A8 +0x96E6 0xB4A9 +0x96E7 0xB4AA +0x96E8 0xB4AB +0x96E9 0xB4AC +0x96EA 0xB4AD +0x96EB 0xB4AE +0x96EC 0xB4AF +0x96ED 0xB4B0 +0x96EE 0xB4B1 +0x96EF 0xB4B2 +0x96F0 0xB4B3 +0x96F1 0xB4B4 +0x96F3 0xB4B5 +0x96F4 0xB4B6 +0x96F5 0xB4B7 +0x96F6 0xB4B8 +0x96F7 0xB4B9 +0x96F8 0xB4BA +0x96F9 0xB4BB +0x96FA 0xB4BC +0x96FB 0xB4BD +0x96FC 0xB4BE +0x96FD 0xB4BF +0x9741 0xB4C0 +0x9742 0xB4C1 +0x9743 0xB4C2 +0x9744 0xB4C3 +0x9745 0xB4C4 +0x9746 0xB4C5 +0x9747 0xB4C6 +0x9748 0xB4C7 +0x9749 0xB4C8 +0x974A 0xB4C9 +0x974B 0xB4CA +0x974C 0xB4CB +0x974D 0xB4CC +0x974E 0xB4CD +0x974F 0xB4CE +0x9750 0xB4CF +0x9751 0xB4D0 +0x9753 0xB4D1 +0x9754 0xB4D2 +0x9755 0xB4D3 +0x9756 0xB4D4 +0x9757 0xB4D5 +0x9758 0xB4D6 +0x9759 0xB4D7 +0x975A 0xB4D8 +0x975B 0xB4D9 +0x975C 0xB4DA +0x975D 0xB4DB +0x9761 0xB4DC +0x9762 0xB4DD +0x9763 0xB4DE +0x9764 0xB4DF +0x9765 0xB4E0 +0x9766 0xB4E1 +0x9767 0xB4E2 +0x9768 0xB4E3 +0x9769 0xB4E4 +0x976A 0xB4E5 +0x976B 0xB4E6 +0x976C 0xB4E7 +0x976D 0xB4E8 +0x976E 0xB4E9 +0x976F 0xB4EA +0x9770 0xB4EB +0x9771 0xB4EC +0x9773 0xB4ED +0x9774 0xB4EE +0x9775 0xB4EF +0x9776 0xB4F0 +0x9777 0xB4F1 +0x9778 0xB4F2 +0x9779 0xB4F3 +0x977A 0xB4F4 +0x977B 0xB4F5 +0x977C 0xB4F6 +0x977D 0xB4F7 +0x9781 0xB4F8 +0x9782 0xB4F9 +0x9783 0xB4FA +0x9784 0xB4FB +0x9785 0xB4FC +0x9786 0xB4FD +0x9787 0xB4FE +0x9788 0xB4FF +0x9789 0xB500 +0x978A 0xB501 +0x978B 0xB502 +0x978C 0xB503 +0x978D 0xB504 +0x978E 0xB505 +0x978F 0xB506 +0x9790 0xB507 +0x9791 0xB508 +0x9793 0xB509 +0x9794 0xB50A +0x9795 0xB50B +0x9796 0xB50C +0x9797 0xB50D +0x9798 0xB50E +0x9799 0xB50F +0x979A 0xB510 +0x979B 0xB511 +0x979C 0xB512 +0x979D 0xB513 +0x97A1 0xB514 +0x97A2 0xB515 +0x97A3 0xB516 +0x97A4 0xB517 +0x97A5 0xB518 +0x97A6 0xB519 +0x97A7 0xB51A +0x97A8 0xB51B +0x97A9 0xB51C +0x97AA 0xB51D +0x97AB 0xB51E +0x97AC 0xB51F +0x97AD 0xB520 +0x97AE 0xB521 +0x97AF 0xB522 +0x97B0 0xB523 +0x97B1 0xB524 +0x97B3 0xB525 +0x97B4 0xB526 +0x97B5 0xB527 +0x97B6 0xB528 +0x97B7 0xB529 +0x97B8 0xB52A +0x97B9 0xB52B +0x97BA 0xB52C +0x97BB 0xB52D +0x97BC 0xB52E +0x97BD 0xB52F +0x9841 0x3138 +0x9861 0xB530 +0x9862 0xB531 +0x9863 0xB532 +0x9864 0xB533 +0x9865 0xB534 +0x9866 0xB535 +0x9867 0xB536 +0x9868 0xB537 +0x9869 0xB538 +0x986A 0xB539 +0x986B 0xB53A +0x986C 0xB53B +0x986D 0xB53C +0x986E 0xB53D +0x986F 0xB53E +0x9870 0xB53F +0x9871 0xB540 +0x9873 0xB541 +0x9874 0xB542 +0x9875 0xB543 +0x9876 0xB544 +0x9877 0xB545 +0x9878 0xB546 +0x9879 0xB547 +0x987A 0xB548 +0x987B 0xB549 +0x987C 0xB54A +0x987D 0xB54B +0x9881 0xB54C +0x9882 0xB54D +0x9883 0xB54E +0x9884 0xB54F +0x9885 0xB550 +0x9886 0xB551 +0x9887 0xB552 +0x9888 0xB553 +0x9889 0xB554 +0x988A 0xB555 +0x988B 0xB556 +0x988C 0xB557 +0x988D 0xB558 +0x988E 0xB559 +0x988F 0xB55A +0x9890 0xB55B +0x9891 0xB55C +0x9893 0xB55D +0x9894 0xB55E +0x9895 0xB55F +0x9896 0xB560 +0x9897 0xB561 +0x9898 0xB562 +0x9899 0xB563 +0x989A 0xB564 +0x989B 0xB565 +0x989C 0xB566 +0x989D 0xB567 +0x98A1 0xB568 +0x98A2 0xB569 +0x98A3 0xB56A +0x98A4 0xB56B +0x98A5 0xB56C +0x98A6 0xB56D +0x98A7 0xB56E +0x98A8 0xB56F +0x98A9 0xB570 +0x98AA 0xB571 +0x98AB 0xB572 +0x98AC 0xB573 +0x98AD 0xB574 +0x98AE 0xB575 +0x98AF 0xB576 +0x98B0 0xB577 +0x98B1 0xB578 +0x98B3 0xB579 +0x98B4 0xB57A +0x98B5 0xB57B +0x98B6 0xB57C +0x98B7 0xB57D +0x98B8 0xB57E +0x98B9 0xB57F +0x98BA 0xB580 +0x98BB 0xB581 +0x98BC 0xB582 +0x98BD 0xB583 +0x98C1 0xB584 +0x98C2 0xB585 +0x98C3 0xB586 +0x98C4 0xB587 +0x98C5 0xB588 +0x98C6 0xB589 +0x98C7 0xB58A +0x98C8 0xB58B +0x98C9 0xB58C +0x98CA 0xB58D +0x98CB 0xB58E +0x98CC 0xB58F +0x98CD 0xB590 +0x98CE 0xB591 +0x98CF 0xB592 +0x98D0 0xB593 +0x98D1 0xB594 +0x98D3 0xB595 +0x98D4 0xB596 +0x98D5 0xB597 +0x98D6 0xB598 +0x98D7 0xB599 +0x98D8 0xB59A +0x98D9 0xB59B +0x98DA 0xB59C +0x98DB 0xB59D +0x98DC 0xB59E +0x98DD 0xB59F +0x98E1 0xB5A0 +0x98E2 0xB5A1 +0x98E3 0xB5A2 +0x98E4 0xB5A3 +0x98E5 0xB5A4 +0x98E6 0xB5A5 +0x98E7 0xB5A6 +0x98E8 0xB5A7 +0x98E9 0xB5A8 +0x98EA 0xB5A9 +0x98EB 0xB5AA +0x98EC 0xB5AB +0x98ED 0xB5AC +0x98EE 0xB5AD +0x98EF 0xB5AE +0x98F0 0xB5AF +0x98F1 0xB5B0 +0x98F3 0xB5B1 +0x98F4 0xB5B2 +0x98F5 0xB5B3 +0x98F6 0xB5B4 +0x98F7 0xB5B5 +0x98F8 0xB5B6 +0x98F9 0xB5B7 +0x98FA 0xB5B8 +0x98FB 0xB5B9 +0x98FC 0xB5BA +0x98FD 0xB5BB +0x9941 0xB5BC +0x9942 0xB5BD +0x9943 0xB5BE +0x9944 0xB5BF +0x9945 0xB5C0 +0x9946 0xB5C1 +0x9947 0xB5C2 +0x9948 0xB5C3 +0x9949 0xB5C4 +0x994A 0xB5C5 +0x994B 0xB5C6 +0x994C 0xB5C7 +0x994D 0xB5C8 +0x994E 0xB5C9 +0x994F 0xB5CA +0x9950 0xB5CB +0x9951 0xB5CC +0x9953 0xB5CD +0x9954 0xB5CE +0x9955 0xB5CF +0x9956 0xB5D0 +0x9957 0xB5D1 +0x9958 0xB5D2 +0x9959 0xB5D3 +0x995A 0xB5D4 +0x995B 0xB5D5 +0x995C 0xB5D6 +0x995D 0xB5D7 +0x9961 0xB5D8 +0x9962 0xB5D9 +0x9963 0xB5DA +0x9964 0xB5DB +0x9965 0xB5DC +0x9966 0xB5DD +0x9967 0xB5DE +0x9968 0xB5DF +0x9969 0xB5E0 +0x996A 0xB5E1 +0x996B 0xB5E2 +0x996C 0xB5E3 +0x996D 0xB5E4 +0x996E 0xB5E5 +0x996F 0xB5E6 +0x9970 0xB5E7 +0x9971 0xB5E8 +0x9973 0xB5E9 +0x9974 0xB5EA +0x9975 0xB5EB +0x9976 0xB5EC +0x9977 0xB5ED +0x9978 0xB5EE +0x9979 0xB5EF +0x997A 0xB5F0 +0x997B 0xB5F1 +0x997C 0xB5F2 +0x997D 0xB5F3 +0x9981 0xB5F4 +0x9982 0xB5F5 +0x9983 0xB5F6 +0x9984 0xB5F7 +0x9985 0xB5F8 +0x9986 0xB5F9 +0x9987 0xB5FA +0x9988 0xB5FB +0x9989 0xB5FC +0x998A 0xB5FD +0x998B 0xB5FE +0x998C 0xB5FF +0x998D 0xB600 +0x998E 0xB601 +0x998F 0xB602 +0x9990 0xB603 +0x9991 0xB604 +0x9993 0xB605 +0x9994 0xB606 +0x9995 0xB607 +0x9996 0xB608 +0x9997 0xB609 +0x9998 0xB60A +0x9999 0xB60B +0x999A 0xB60C +0x999B 0xB60D +0x999C 0xB60E +0x999D 0xB60F +0x99A1 0xB610 +0x99A2 0xB611 +0x99A3 0xB612 +0x99A4 0xB613 +0x99A5 0xB614 +0x99A6 0xB615 +0x99A7 0xB616 +0x99A8 0xB617 +0x99A9 0xB618 +0x99AA 0xB619 +0x99AB 0xB61A +0x99AC 0xB61B +0x99AD 0xB61C +0x99AE 0xB61D +0x99AF 0xB61E +0x99B0 0xB61F +0x99B1 0xB620 +0x99B3 0xB621 +0x99B4 0xB622 +0x99B5 0xB623 +0x99B6 0xB624 +0x99B7 0xB625 +0x99B8 0xB626 +0x99B9 0xB627 +0x99BA 0xB628 +0x99BB 0xB629 +0x99BC 0xB62A +0x99BD 0xB62B +0x99C1 0xB62C +0x99C2 0xB62D +0x99C3 0xB62E +0x99C4 0xB62F +0x99C5 0xB630 +0x99C6 0xB631 +0x99C7 0xB632 +0x99C8 0xB633 +0x99C9 0xB634 +0x99CA 0xB635 +0x99CB 0xB636 +0x99CC 0xB637 +0x99CD 0xB638 +0x99CE 0xB639 +0x99CF 0xB63A +0x99D0 0xB63B +0x99D1 0xB63C +0x99D3 0xB63D +0x99D4 0xB63E +0x99D5 0xB63F +0x99D6 0xB640 +0x99D7 0xB641 +0x99D8 0xB642 +0x99D9 0xB643 +0x99DA 0xB644 +0x99DB 0xB645 +0x99DC 0xB646 +0x99DD 0xB647 +0x99E1 0xB648 +0x99E2 0xB649 +0x99E3 0xB64A +0x99E4 0xB64B +0x99E5 0xB64C +0x99E6 0xB64D +0x99E7 0xB64E +0x99E8 0xB64F +0x99E9 0xB650 +0x99EA 0xB651 +0x99EB 0xB652 +0x99EC 0xB653 +0x99ED 0xB654 +0x99EE 0xB655 +0x99EF 0xB656 +0x99F0 0xB657 +0x99F1 0xB658 +0x99F3 0xB659 +0x99F4 0xB65A +0x99F5 0xB65B +0x99F6 0xB65C +0x99F7 0xB65D +0x99F8 0xB65E +0x99F9 0xB65F +0x99FA 0xB660 +0x99FB 0xB661 +0x99FC 0xB662 +0x99FD 0xB663 +0x9A41 0xB664 +0x9A42 0xB665 +0x9A43 0xB666 +0x9A44 0xB667 +0x9A45 0xB668 +0x9A46 0xB669 +0x9A47 0xB66A +0x9A48 0xB66B +0x9A49 0xB66C +0x9A4A 0xB66D +0x9A4B 0xB66E +0x9A4C 0xB66F +0x9A4D 0xB670 +0x9A4E 0xB671 +0x9A4F 0xB672 +0x9A50 0xB673 +0x9A51 0xB674 +0x9A53 0xB675 +0x9A54 0xB676 +0x9A55 0xB677 +0x9A56 0xB678 +0x9A57 0xB679 +0x9A58 0xB67A +0x9A59 0xB67B +0x9A5A 0xB67C +0x9A5B 0xB67D +0x9A5C 0xB67E +0x9A5D 0xB67F +0x9A61 0xB680 +0x9A62 0xB681 +0x9A63 0xB682 +0x9A64 0xB683 +0x9A65 0xB684 +0x9A66 0xB685 +0x9A67 0xB686 +0x9A68 0xB687 +0x9A69 0xB688 +0x9A6A 0xB689 +0x9A6B 0xB68A +0x9A6C 0xB68B +0x9A6D 0xB68C +0x9A6E 0xB68D +0x9A6F 0xB68E +0x9A70 0xB68F +0x9A71 0xB690 +0x9A73 0xB691 +0x9A74 0xB692 +0x9A75 0xB693 +0x9A76 0xB694 +0x9A77 0xB695 +0x9A78 0xB696 +0x9A79 0xB697 +0x9A7A 0xB698 +0x9A7B 0xB699 +0x9A7C 0xB69A +0x9A7D 0xB69B +0x9A81 0xB69C +0x9A82 0xB69D +0x9A83 0xB69E +0x9A84 0xB69F +0x9A85 0xB6A0 +0x9A86 0xB6A1 +0x9A87 0xB6A2 +0x9A88 0xB6A3 +0x9A89 0xB6A4 +0x9A8A 0xB6A5 +0x9A8B 0xB6A6 +0x9A8C 0xB6A7 +0x9A8D 0xB6A8 +0x9A8E 0xB6A9 +0x9A8F 0xB6AA +0x9A90 0xB6AB +0x9A91 0xB6AC +0x9A93 0xB6AD +0x9A94 0xB6AE +0x9A95 0xB6AF +0x9A96 0xB6B0 +0x9A97 0xB6B1 +0x9A98 0xB6B2 +0x9A99 0xB6B3 +0x9A9A 0xB6B4 +0x9A9B 0xB6B5 +0x9A9C 0xB6B6 +0x9A9D 0xB6B7 +0x9AA1 0xB6B8 +0x9AA2 0xB6B9 +0x9AA3 0xB6BA +0x9AA4 0xB6BB +0x9AA5 0xB6BC +0x9AA6 0xB6BD +0x9AA7 0xB6BE +0x9AA8 0xB6BF +0x9AA9 0xB6C0 +0x9AAA 0xB6C1 +0x9AAB 0xB6C2 +0x9AAC 0xB6C3 +0x9AAD 0xB6C4 +0x9AAE 0xB6C5 +0x9AAF 0xB6C6 +0x9AB0 0xB6C7 +0x9AB1 0xB6C8 +0x9AB3 0xB6C9 +0x9AB4 0xB6CA +0x9AB5 0xB6CB +0x9AB6 0xB6CC +0x9AB7 0xB6CD +0x9AB8 0xB6CE +0x9AB9 0xB6CF +0x9ABA 0xB6D0 +0x9ABB 0xB6D1 +0x9ABC 0xB6D2 +0x9ABD 0xB6D3 +0x9AC1 0xB6D4 +0x9AC2 0xB6D5 +0x9AC3 0xB6D6 +0x9AC4 0xB6D7 +0x9AC5 0xB6D8 +0x9AC6 0xB6D9 +0x9AC7 0xB6DA +0x9AC8 0xB6DB +0x9AC9 0xB6DC +0x9ACA 0xB6DD +0x9ACB 0xB6DE +0x9ACC 0xB6DF +0x9ACD 0xB6E0 +0x9ACE 0xB6E1 +0x9ACF 0xB6E2 +0x9AD0 0xB6E3 +0x9AD1 0xB6E4 +0x9AD3 0xB6E5 +0x9AD4 0xB6E6 +0x9AD5 0xB6E7 +0x9AD6 0xB6E8 +0x9AD7 0xB6E9 +0x9AD8 0xB6EA +0x9AD9 0xB6EB +0x9ADA 0xB6EC +0x9ADB 0xB6ED +0x9ADC 0xB6EE +0x9ADD 0xB6EF +0x9AE1 0xB6F0 +0x9AE2 0xB6F1 +0x9AE3 0xB6F2 +0x9AE4 0xB6F3 +0x9AE5 0xB6F4 +0x9AE6 0xB6F5 +0x9AE7 0xB6F6 +0x9AE8 0xB6F7 +0x9AE9 0xB6F8 +0x9AEA 0xB6F9 +0x9AEB 0xB6FA +0x9AEC 0xB6FB +0x9AED 0xB6FC +0x9AEE 0xB6FD +0x9AEF 0xB6FE +0x9AF0 0xB6FF +0x9AF1 0xB700 +0x9AF3 0xB701 +0x9AF4 0xB702 +0x9AF5 0xB703 +0x9AF6 0xB704 +0x9AF7 0xB705 +0x9AF8 0xB706 +0x9AF9 0xB707 +0x9AFA 0xB708 +0x9AFB 0xB709 +0x9AFC 0xB70A +0x9AFD 0xB70B +0x9B41 0xB70C +0x9B42 0xB70D +0x9B43 0xB70E +0x9B44 0xB70F +0x9B45 0xB710 +0x9B46 0xB711 +0x9B47 0xB712 +0x9B48 0xB713 +0x9B49 0xB714 +0x9B4A 0xB715 +0x9B4B 0xB716 +0x9B4C 0xB717 +0x9B4D 0xB718 +0x9B4E 0xB719 +0x9B4F 0xB71A +0x9B50 0xB71B +0x9B51 0xB71C +0x9B53 0xB71D +0x9B54 0xB71E +0x9B55 0xB71F +0x9B56 0xB720 +0x9B57 0xB721 +0x9B58 0xB722 +0x9B59 0xB723 +0x9B5A 0xB724 +0x9B5B 0xB725 +0x9B5C 0xB726 +0x9B5D 0xB727 +0x9B61 0xB728 +0x9B62 0xB729 +0x9B63 0xB72A +0x9B64 0xB72B +0x9B65 0xB72C +0x9B66 0xB72D +0x9B67 0xB72E +0x9B68 0xB72F +0x9B69 0xB730 +0x9B6A 0xB731 +0x9B6B 0xB732 +0x9B6C 0xB733 +0x9B6D 0xB734 +0x9B6E 0xB735 +0x9B6F 0xB736 +0x9B70 0xB737 +0x9B71 0xB738 +0x9B73 0xB739 +0x9B74 0xB73A +0x9B75 0xB73B +0x9B76 0xB73C +0x9B77 0xB73D +0x9B78 0xB73E +0x9B79 0xB73F +0x9B7A 0xB740 +0x9B7B 0xB741 +0x9B7C 0xB742 +0x9B7D 0xB743 +0x9B81 0xB744 +0x9B82 0xB745 +0x9B83 0xB746 +0x9B84 0xB747 +0x9B85 0xB748 +0x9B86 0xB749 +0x9B87 0xB74A +0x9B88 0xB74B +0x9B89 0xB74C +0x9B8A 0xB74D +0x9B8B 0xB74E +0x9B8C 0xB74F +0x9B8D 0xB750 +0x9B8E 0xB751 +0x9B8F 0xB752 +0x9B90 0xB753 +0x9B91 0xB754 +0x9B93 0xB755 +0x9B94 0xB756 +0x9B95 0xB757 +0x9B96 0xB758 +0x9B97 0xB759 +0x9B98 0xB75A +0x9B99 0xB75B +0x9B9A 0xB75C +0x9B9B 0xB75D +0x9B9C 0xB75E +0x9B9D 0xB75F +0x9BA1 0xB760 +0x9BA2 0xB761 +0x9BA3 0xB762 +0x9BA4 0xB763 +0x9BA5 0xB764 +0x9BA6 0xB765 +0x9BA7 0xB766 +0x9BA8 0xB767 +0x9BA9 0xB768 +0x9BAA 0xB769 +0x9BAB 0xB76A +0x9BAC 0xB76B +0x9BAD 0xB76C +0x9BAE 0xB76D +0x9BAF 0xB76E +0x9BB0 0xB76F +0x9BB1 0xB770 +0x9BB3 0xB771 +0x9BB4 0xB772 +0x9BB5 0xB773 +0x9BB6 0xB774 +0x9BB7 0xB775 +0x9BB8 0xB776 +0x9BB9 0xB777 +0x9BBA 0xB778 +0x9BBB 0xB779 +0x9BBC 0xB77A +0x9BBD 0xB77B +0x9C41 0x3139 +0x9C61 0xB77C +0x9C62 0xB77D +0x9C63 0xB77E +0x9C64 0xB77F +0x9C65 0xB780 +0x9C66 0xB781 +0x9C67 0xB782 +0x9C68 0xB783 +0x9C69 0xB784 +0x9C6A 0xB785 +0x9C6B 0xB786 +0x9C6C 0xB787 +0x9C6D 0xB788 +0x9C6E 0xB789 +0x9C6F 0xB78A +0x9C70 0xB78B +0x9C71 0xB78C +0x9C73 0xB78D +0x9C74 0xB78E +0x9C75 0xB78F +0x9C76 0xB790 +0x9C77 0xB791 +0x9C78 0xB792 +0x9C79 0xB793 +0x9C7A 0xB794 +0x9C7B 0xB795 +0x9C7C 0xB796 +0x9C7D 0xB797 +0x9C81 0xB798 +0x9C82 0xB799 +0x9C83 0xB79A +0x9C84 0xB79B +0x9C85 0xB79C +0x9C86 0xB79D +0x9C87 0xB79E +0x9C88 0xB79F +0x9C89 0xB7A0 +0x9C8A 0xB7A1 +0x9C8B 0xB7A2 +0x9C8C 0xB7A3 +0x9C8D 0xB7A4 +0x9C8E 0xB7A5 +0x9C8F 0xB7A6 +0x9C90 0xB7A7 +0x9C91 0xB7A8 +0x9C93 0xB7A9 +0x9C94 0xB7AA +0x9C95 0xB7AB +0x9C96 0xB7AC +0x9C97 0xB7AD +0x9C98 0xB7AE +0x9C99 0xB7AF +0x9C9A 0xB7B0 +0x9C9B 0xB7B1 +0x9C9C 0xB7B2 +0x9C9D 0xB7B3 +0x9CA1 0xB7B4 +0x9CA2 0xB7B5 +0x9CA3 0xB7B6 +0x9CA4 0xB7B7 +0x9CA5 0xB7B8 +0x9CA6 0xB7B9 +0x9CA7 0xB7BA +0x9CA8 0xB7BB +0x9CA9 0xB7BC +0x9CAA 0xB7BD +0x9CAB 0xB7BE +0x9CAC 0xB7BF +0x9CAD 0xB7C0 +0x9CAE 0xB7C1 +0x9CAF 0xB7C2 +0x9CB0 0xB7C3 +0x9CB1 0xB7C4 +0x9CB3 0xB7C5 +0x9CB4 0xB7C6 +0x9CB5 0xB7C7 +0x9CB6 0xB7C8 +0x9CB7 0xB7C9 +0x9CB8 0xB7CA +0x9CB9 0xB7CB +0x9CBA 0xB7CC +0x9CBB 0xB7CD +0x9CBC 0xB7CE +0x9CBD 0xB7CF +0x9CC1 0xB7D0 +0x9CC2 0xB7D1 +0x9CC3 0xB7D2 +0x9CC4 0xB7D3 +0x9CC5 0xB7D4 +0x9CC6 0xB7D5 +0x9CC7 0xB7D6 +0x9CC8 0xB7D7 +0x9CC9 0xB7D8 +0x9CCA 0xB7D9 +0x9CCB 0xB7DA +0x9CCC 0xB7DB +0x9CCD 0xB7DC +0x9CCE 0xB7DD +0x9CCF 0xB7DE +0x9CD0 0xB7DF +0x9CD1 0xB7E0 +0x9CD3 0xB7E1 +0x9CD4 0xB7E2 +0x9CD5 0xB7E3 +0x9CD6 0xB7E4 +0x9CD7 0xB7E5 +0x9CD8 0xB7E6 +0x9CD9 0xB7E7 +0x9CDA 0xB7E8 +0x9CDB 0xB7E9 +0x9CDC 0xB7EA +0x9CDD 0xB7EB +0x9CE1 0xB7EC +0x9CE2 0xB7ED +0x9CE3 0xB7EE +0x9CE4 0xB7EF +0x9CE5 0xB7F0 +0x9CE6 0xB7F1 +0x9CE7 0xB7F2 +0x9CE8 0xB7F3 +0x9CE9 0xB7F4 +0x9CEA 0xB7F5 +0x9CEB 0xB7F6 +0x9CEC 0xB7F7 +0x9CED 0xB7F8 +0x9CEE 0xB7F9 +0x9CEF 0xB7FA +0x9CF0 0xB7FB +0x9CF1 0xB7FC +0x9CF3 0xB7FD +0x9CF4 0xB7FE +0x9CF5 0xB7FF +0x9CF6 0xB800 +0x9CF7 0xB801 +0x9CF8 0xB802 +0x9CF9 0xB803 +0x9CFA 0xB804 +0x9CFB 0xB805 +0x9CFC 0xB806 +0x9CFD 0xB807 +0x9D41 0xB808 +0x9D42 0xB809 +0x9D43 0xB80A +0x9D44 0xB80B +0x9D45 0xB80C +0x9D46 0xB80D +0x9D47 0xB80E +0x9D48 0xB80F +0x9D49 0xB810 +0x9D4A 0xB811 +0x9D4B 0xB812 +0x9D4C 0xB813 +0x9D4D 0xB814 +0x9D4E 0xB815 +0x9D4F 0xB816 +0x9D50 0xB817 +0x9D51 0xB818 +0x9D53 0xB819 +0x9D54 0xB81A +0x9D55 0xB81B +0x9D56 0xB81C +0x9D57 0xB81D +0x9D58 0xB81E +0x9D59 0xB81F +0x9D5A 0xB820 +0x9D5B 0xB821 +0x9D5C 0xB822 +0x9D5D 0xB823 +0x9D61 0xB824 +0x9D62 0xB825 +0x9D63 0xB826 +0x9D64 0xB827 +0x9D65 0xB828 +0x9D66 0xB829 +0x9D67 0xB82A +0x9D68 0xB82B +0x9D69 0xB82C +0x9D6A 0xB82D +0x9D6B 0xB82E +0x9D6C 0xB82F +0x9D6D 0xB830 +0x9D6E 0xB831 +0x9D6F 0xB832 +0x9D70 0xB833 +0x9D71 0xB834 +0x9D73 0xB835 +0x9D74 0xB836 +0x9D75 0xB837 +0x9D76 0xB838 +0x9D77 0xB839 +0x9D78 0xB83A +0x9D79 0xB83B +0x9D7A 0xB83C +0x9D7B 0xB83D +0x9D7C 0xB83E +0x9D7D 0xB83F +0x9D81 0xB840 +0x9D82 0xB841 +0x9D83 0xB842 +0x9D84 0xB843 +0x9D85 0xB844 +0x9D86 0xB845 +0x9D87 0xB846 +0x9D88 0xB847 +0x9D89 0xB848 +0x9D8A 0xB849 +0x9D8B 0xB84A +0x9D8C 0xB84B +0x9D8D 0xB84C +0x9D8E 0xB84D +0x9D8F 0xB84E +0x9D90 0xB84F +0x9D91 0xB850 +0x9D93 0xB851 +0x9D94 0xB852 +0x9D95 0xB853 +0x9D96 0xB854 +0x9D97 0xB855 +0x9D98 0xB856 +0x9D99 0xB857 +0x9D9A 0xB858 +0x9D9B 0xB859 +0x9D9C 0xB85A +0x9D9D 0xB85B +0x9DA1 0xB85C +0x9DA2 0xB85D +0x9DA3 0xB85E +0x9DA4 0xB85F +0x9DA5 0xB860 +0x9DA6 0xB861 +0x9DA7 0xB862 +0x9DA8 0xB863 +0x9DA9 0xB864 +0x9DAA 0xB865 +0x9DAB 0xB866 +0x9DAC 0xB867 +0x9DAD 0xB868 +0x9DAE 0xB869 +0x9DAF 0xB86A +0x9DB0 0xB86B +0x9DB1 0xB86C +0x9DB3 0xB86D +0x9DB4 0xB86E +0x9DB5 0xB86F +0x9DB6 0xB870 +0x9DB7 0xB871 +0x9DB8 0xB872 +0x9DB9 0xB873 +0x9DBA 0xB874 +0x9DBB 0xB875 +0x9DBC 0xB876 +0x9DBD 0xB877 +0x9DC1 0xB878 +0x9DC2 0xB879 +0x9DC3 0xB87A +0x9DC4 0xB87B +0x9DC5 0xB87C +0x9DC6 0xB87D +0x9DC7 0xB87E +0x9DC8 0xB87F +0x9DC9 0xB880 +0x9DCA 0xB881 +0x9DCB 0xB882 +0x9DCC 0xB883 +0x9DCD 0xB884 +0x9DCE 0xB885 +0x9DCF 0xB886 +0x9DD0 0xB887 +0x9DD1 0xB888 +0x9DD3 0xB889 +0x9DD4 0xB88A +0x9DD5 0xB88B +0x9DD6 0xB88C +0x9DD7 0xB88D +0x9DD8 0xB88E +0x9DD9 0xB88F +0x9DDA 0xB890 +0x9DDB 0xB891 +0x9DDC 0xB892 +0x9DDD 0xB893 +0x9DE1 0xB894 +0x9DE2 0xB895 +0x9DE3 0xB896 +0x9DE4 0xB897 +0x9DE5 0xB898 +0x9DE6 0xB899 +0x9DE7 0xB89A +0x9DE8 0xB89B +0x9DE9 0xB89C +0x9DEA 0xB89D +0x9DEB 0xB89E +0x9DEC 0xB89F +0x9DED 0xB8A0 +0x9DEE 0xB8A1 +0x9DEF 0xB8A2 +0x9DF0 0xB8A3 +0x9DF1 0xB8A4 +0x9DF3 0xB8A5 +0x9DF4 0xB8A6 +0x9DF5 0xB8A7 +0x9DF6 0xB8A8 +0x9DF7 0xB8A9 +0x9DF8 0xB8AA +0x9DF9 0xB8AB +0x9DFA 0xB8AC +0x9DFB 0xB8AD +0x9DFC 0xB8AE +0x9DFD 0xB8AF +0x9E41 0xB8B0 +0x9E42 0xB8B1 +0x9E43 0xB8B2 +0x9E44 0xB8B3 +0x9E45 0xB8B4 +0x9E46 0xB8B5 +0x9E47 0xB8B6 +0x9E48 0xB8B7 +0x9E49 0xB8B8 +0x9E4A 0xB8B9 +0x9E4B 0xB8BA +0x9E4C 0xB8BB +0x9E4D 0xB8BC +0x9E4E 0xB8BD +0x9E4F 0xB8BE +0x9E50 0xB8BF +0x9E51 0xB8C0 +0x9E53 0xB8C1 +0x9E54 0xB8C2 +0x9E55 0xB8C3 +0x9E56 0xB8C4 +0x9E57 0xB8C5 +0x9E58 0xB8C6 +0x9E59 0xB8C7 +0x9E5A 0xB8C8 +0x9E5B 0xB8C9 +0x9E5C 0xB8CA +0x9E5D 0xB8CB +0x9E61 0xB8CC +0x9E62 0xB8CD +0x9E63 0xB8CE +0x9E64 0xB8CF +0x9E65 0xB8D0 +0x9E66 0xB8D1 +0x9E67 0xB8D2 +0x9E68 0xB8D3 +0x9E69 0xB8D4 +0x9E6A 0xB8D5 +0x9E6B 0xB8D6 +0x9E6C 0xB8D7 +0x9E6D 0xB8D8 +0x9E6E 0xB8D9 +0x9E6F 0xB8DA +0x9E70 0xB8DB +0x9E71 0xB8DC +0x9E73 0xB8DD +0x9E74 0xB8DE +0x9E75 0xB8DF +0x9E76 0xB8E0 +0x9E77 0xB8E1 +0x9E78 0xB8E2 +0x9E79 0xB8E3 +0x9E7A 0xB8E4 +0x9E7B 0xB8E5 +0x9E7C 0xB8E6 +0x9E7D 0xB8E7 +0x9E81 0xB8E8 +0x9E82 0xB8E9 +0x9E83 0xB8EA +0x9E84 0xB8EB +0x9E85 0xB8EC +0x9E86 0xB8ED +0x9E87 0xB8EE +0x9E88 0xB8EF +0x9E89 0xB8F0 +0x9E8A 0xB8F1 +0x9E8B 0xB8F2 +0x9E8C 0xB8F3 +0x9E8D 0xB8F4 +0x9E8E 0xB8F5 +0x9E8F 0xB8F6 +0x9E90 0xB8F7 +0x9E91 0xB8F8 +0x9E93 0xB8F9 +0x9E94 0xB8FA +0x9E95 0xB8FB +0x9E96 0xB8FC +0x9E97 0xB8FD +0x9E98 0xB8FE +0x9E99 0xB8FF +0x9E9A 0xB900 +0x9E9B 0xB901 +0x9E9C 0xB902 +0x9E9D 0xB903 +0x9EA1 0xB904 +0x9EA2 0xB905 +0x9EA3 0xB906 +0x9EA4 0xB907 +0x9EA5 0xB908 +0x9EA6 0xB909 +0x9EA7 0xB90A +0x9EA8 0xB90B +0x9EA9 0xB90C +0x9EAA 0xB90D +0x9EAB 0xB90E +0x9EAC 0xB90F +0x9EAD 0xB910 +0x9EAE 0xB911 +0x9EAF 0xB912 +0x9EB0 0xB913 +0x9EB1 0xB914 +0x9EB3 0xB915 +0x9EB4 0xB916 +0x9EB5 0xB917 +0x9EB6 0xB918 +0x9EB7 0xB919 +0x9EB8 0xB91A +0x9EB9 0xB91B +0x9EBA 0xB91C +0x9EBB 0xB91D +0x9EBC 0xB91E +0x9EBD 0xB91F +0x9EC1 0xB920 +0x9EC2 0xB921 +0x9EC3 0xB922 +0x9EC4 0xB923 +0x9EC5 0xB924 +0x9EC6 0xB925 +0x9EC7 0xB926 +0x9EC8 0xB927 +0x9EC9 0xB928 +0x9ECA 0xB929 +0x9ECB 0xB92A +0x9ECC 0xB92B +0x9ECD 0xB92C +0x9ECE 0xB92D +0x9ECF 0xB92E +0x9ED0 0xB92F +0x9ED1 0xB930 +0x9ED3 0xB931 +0x9ED4 0xB932 +0x9ED5 0xB933 +0x9ED6 0xB934 +0x9ED7 0xB935 +0x9ED8 0xB936 +0x9ED9 0xB937 +0x9EDA 0xB938 +0x9EDB 0xB939 +0x9EDC 0xB93A +0x9EDD 0xB93B +0x9EE1 0xB93C +0x9EE2 0xB93D +0x9EE3 0xB93E +0x9EE4 0xB93F +0x9EE5 0xB940 +0x9EE6 0xB941 +0x9EE7 0xB942 +0x9EE8 0xB943 +0x9EE9 0xB944 +0x9EEA 0xB945 +0x9EEB 0xB946 +0x9EEC 0xB947 +0x9EED 0xB948 +0x9EEE 0xB949 +0x9EEF 0xB94A +0x9EF0 0xB94B +0x9EF1 0xB94C +0x9EF3 0xB94D +0x9EF4 0xB94E +0x9EF5 0xB94F +0x9EF6 0xB950 +0x9EF7 0xB951 +0x9EF8 0xB952 +0x9EF9 0xB953 +0x9EFA 0xB954 +0x9EFB 0xB955 +0x9EFC 0xB956 +0x9EFD 0xB957 +0x9F41 0xB958 +0x9F42 0xB959 +0x9F43 0xB95A +0x9F44 0xB95B +0x9F45 0xB95C +0x9F46 0xB95D +0x9F47 0xB95E +0x9F48 0xB95F +0x9F49 0xB960 +0x9F4A 0xB961 +0x9F4B 0xB962 +0x9F4C 0xB963 +0x9F4D 0xB964 +0x9F4E 0xB965 +0x9F4F 0xB966 +0x9F50 0xB967 +0x9F51 0xB968 +0x9F53 0xB969 +0x9F54 0xB96A +0x9F55 0xB96B +0x9F56 0xB96C +0x9F57 0xB96D +0x9F58 0xB96E +0x9F59 0xB96F +0x9F5A 0xB970 +0x9F5B 0xB971 +0x9F5C 0xB972 +0x9F5D 0xB973 +0x9F61 0xB974 +0x9F62 0xB975 +0x9F63 0xB976 +0x9F64 0xB977 +0x9F65 0xB978 +0x9F66 0xB979 +0x9F67 0xB97A +0x9F68 0xB97B +0x9F69 0xB97C +0x9F6A 0xB97D +0x9F6B 0xB97E +0x9F6C 0xB97F +0x9F6D 0xB980 +0x9F6E 0xB981 +0x9F6F 0xB982 +0x9F70 0xB983 +0x9F71 0xB984 +0x9F73 0xB985 +0x9F74 0xB986 +0x9F75 0xB987 +0x9F76 0xB988 +0x9F77 0xB989 +0x9F78 0xB98A +0x9F79 0xB98B +0x9F7A 0xB98C +0x9F7B 0xB98D +0x9F7C 0xB98E +0x9F7D 0xB98F +0x9F81 0xB990 +0x9F82 0xB991 +0x9F83 0xB992 +0x9F84 0xB993 +0x9F85 0xB994 +0x9F86 0xB995 +0x9F87 0xB996 +0x9F88 0xB997 +0x9F89 0xB998 +0x9F8A 0xB999 +0x9F8B 0xB99A +0x9F8C 0xB99B +0x9F8D 0xB99C +0x9F8E 0xB99D +0x9F8F 0xB99E +0x9F90 0xB99F +0x9F91 0xB9A0 +0x9F93 0xB9A1 +0x9F94 0xB9A2 +0x9F95 0xB9A3 +0x9F96 0xB9A4 +0x9F97 0xB9A5 +0x9F98 0xB9A6 +0x9F99 0xB9A7 +0x9F9A 0xB9A8 +0x9F9B 0xB9A9 +0x9F9C 0xB9AA +0x9F9D 0xB9AB +0x9FA1 0xB9AC +0x9FA2 0xB9AD +0x9FA3 0xB9AE +0x9FA4 0xB9AF +0x9FA5 0xB9B0 +0x9FA6 0xB9B1 +0x9FA7 0xB9B2 +0x9FA8 0xB9B3 +0x9FA9 0xB9B4 +0x9FAA 0xB9B5 +0x9FAB 0xB9B6 +0x9FAC 0xB9B7 +0x9FAD 0xB9B8 +0x9FAE 0xB9B9 +0x9FAF 0xB9BA +0x9FB0 0xB9BB +0x9FB1 0xB9BC +0x9FB3 0xB9BD +0x9FB4 0xB9BE +0x9FB5 0xB9BF +0x9FB6 0xB9C0 +0x9FB7 0xB9C1 +0x9FB8 0xB9C2 +0x9FB9 0xB9C3 +0x9FBA 0xB9C4 +0x9FBB 0xB9C5 +0x9FBC 0xB9C6 +0x9FBD 0xB9C7 +0xA041 0x3141 +0xA061 0xB9C8 +0xA062 0xB9C9 +0xA063 0xB9CA +0xA064 0xB9CB +0xA065 0xB9CC +0xA066 0xB9CD +0xA067 0xB9CE +0xA068 0xB9CF +0xA069 0xB9D0 +0xA06A 0xB9D1 +0xA06B 0xB9D2 +0xA06C 0xB9D3 +0xA06D 0xB9D4 +0xA06E 0xB9D5 +0xA06F 0xB9D6 +0xA070 0xB9D7 +0xA071 0xB9D8 +0xA073 0xB9D9 +0xA074 0xB9DA +0xA075 0xB9DB +0xA076 0xB9DC +0xA077 0xB9DD +0xA078 0xB9DE +0xA079 0xB9DF +0xA07A 0xB9E0 +0xA07B 0xB9E1 +0xA07C 0xB9E2 +0xA07D 0xB9E3 +0xA081 0xB9E4 +0xA082 0xB9E5 +0xA083 0xB9E6 +0xA084 0xB9E7 +0xA085 0xB9E8 +0xA086 0xB9E9 +0xA087 0xB9EA +0xA088 0xB9EB +0xA089 0xB9EC +0xA08A 0xB9ED +0xA08B 0xB9EE +0xA08C 0xB9EF +0xA08D 0xB9F0 +0xA08E 0xB9F1 +0xA08F 0xB9F2 +0xA090 0xB9F3 +0xA091 0xB9F4 +0xA093 0xB9F5 +0xA094 0xB9F6 +0xA095 0xB9F7 +0xA096 0xB9F8 +0xA097 0xB9F9 +0xA098 0xB9FA +0xA099 0xB9FB +0xA09A 0xB9FC +0xA09B 0xB9FD +0xA09C 0xB9FE +0xA09D 0xB9FF +0xA0A1 0xBA00 +0xA0A2 0xBA01 +0xA0A3 0xBA02 +0xA0A4 0xBA03 +0xA0A5 0xBA04 +0xA0A6 0xBA05 +0xA0A7 0xBA06 +0xA0A8 0xBA07 +0xA0A9 0xBA08 +0xA0AA 0xBA09 +0xA0AB 0xBA0A +0xA0AC 0xBA0B +0xA0AD 0xBA0C +0xA0AE 0xBA0D +0xA0AF 0xBA0E +0xA0B0 0xBA0F +0xA0B1 0xBA10 +0xA0B3 0xBA11 +0xA0B4 0xBA12 +0xA0B5 0xBA13 +0xA0B6 0xBA14 +0xA0B7 0xBA15 +0xA0B8 0xBA16 +0xA0B9 0xBA17 +0xA0BA 0xBA18 +0xA0BB 0xBA19 +0xA0BC 0xBA1A +0xA0BD 0xBA1B +0xA0C1 0xBA1C +0xA0C2 0xBA1D +0xA0C3 0xBA1E +0xA0C4 0xBA1F +0xA0C5 0xBA20 +0xA0C6 0xBA21 +0xA0C7 0xBA22 +0xA0C8 0xBA23 +0xA0C9 0xBA24 +0xA0CA 0xBA25 +0xA0CB 0xBA26 +0xA0CC 0xBA27 +0xA0CD 0xBA28 +0xA0CE 0xBA29 +0xA0CF 0xBA2A +0xA0D0 0xBA2B +0xA0D1 0xBA2C +0xA0D3 0xBA2D +0xA0D4 0xBA2E +0xA0D5 0xBA2F +0xA0D6 0xBA30 +0xA0D7 0xBA31 +0xA0D8 0xBA32 +0xA0D9 0xBA33 +0xA0DA 0xBA34 +0xA0DB 0xBA35 +0xA0DC 0xBA36 +0xA0DD 0xBA37 +0xA0E1 0xBA38 +0xA0E2 0xBA39 +0xA0E3 0xBA3A +0xA0E4 0xBA3B +0xA0E5 0xBA3C +0xA0E6 0xBA3D +0xA0E7 0xBA3E +0xA0E8 0xBA3F +0xA0E9 0xBA40 +0xA0EA 0xBA41 +0xA0EB 0xBA42 +0xA0EC 0xBA43 +0xA0ED 0xBA44 +0xA0EE 0xBA45 +0xA0EF 0xBA46 +0xA0F0 0xBA47 +0xA0F1 0xBA48 +0xA0F3 0xBA49 +0xA0F4 0xBA4A +0xA0F5 0xBA4B +0xA0F6 0xBA4C +0xA0F7 0xBA4D +0xA0F8 0xBA4E +0xA0F9 0xBA4F +0xA0FA 0xBA50 +0xA0FB 0xBA51 +0xA0FC 0xBA52 +0xA0FD 0xBA53 +0xA141 0xBA54 +0xA142 0xBA55 +0xA143 0xBA56 +0xA144 0xBA57 +0xA145 0xBA58 +0xA146 0xBA59 +0xA147 0xBA5A +0xA148 0xBA5B +0xA149 0xBA5C +0xA14A 0xBA5D +0xA14B 0xBA5E +0xA14C 0xBA5F +0xA14D 0xBA60 +0xA14E 0xBA61 +0xA14F 0xBA62 +0xA150 0xBA63 +0xA151 0xBA64 +0xA153 0xBA65 +0xA154 0xBA66 +0xA155 0xBA67 +0xA156 0xBA68 +0xA157 0xBA69 +0xA158 0xBA6A +0xA159 0xBA6B +0xA15A 0xBA6C +0xA15B 0xBA6D +0xA15C 0xBA6E +0xA15D 0xBA6F +0xA161 0xBA70 +0xA162 0xBA71 +0xA163 0xBA72 +0xA164 0xBA73 +0xA165 0xBA74 +0xA166 0xBA75 +0xA167 0xBA76 +0xA168 0xBA77 +0xA169 0xBA78 +0xA16A 0xBA79 +0xA16B 0xBA7A +0xA16C 0xBA7B +0xA16D 0xBA7C +0xA16E 0xBA7D +0xA16F 0xBA7E +0xA170 0xBA7F +0xA171 0xBA80 +0xA173 0xBA81 +0xA174 0xBA82 +0xA175 0xBA83 +0xA176 0xBA84 +0xA177 0xBA85 +0xA178 0xBA86 +0xA179 0xBA87 +0xA17A 0xBA88 +0xA17B 0xBA89 +0xA17C 0xBA8A +0xA17D 0xBA8B +0xA181 0xBA8C +0xA182 0xBA8D +0xA183 0xBA8E +0xA184 0xBA8F +0xA185 0xBA90 +0xA186 0xBA91 +0xA187 0xBA92 +0xA188 0xBA93 +0xA189 0xBA94 +0xA18A 0xBA95 +0xA18B 0xBA96 +0xA18C 0xBA97 +0xA18D 0xBA98 +0xA18E 0xBA99 +0xA18F 0xBA9A +0xA190 0xBA9B +0xA191 0xBA9C +0xA193 0xBA9D +0xA194 0xBA9E +0xA195 0xBA9F +0xA196 0xBAA0 +0xA197 0xBAA1 +0xA198 0xBAA2 +0xA199 0xBAA3 +0xA19A 0xBAA4 +0xA19B 0xBAA5 +0xA19C 0xBAA6 +0xA19D 0xBAA7 +0xA1A1 0xBAA8 +0xA1A2 0xBAA9 +0xA1A3 0xBAAA +0xA1A4 0xBAAB +0xA1A5 0xBAAC +0xA1A6 0xBAAD +0xA1A7 0xBAAE +0xA1A8 0xBAAF +0xA1A9 0xBAB0 +0xA1AA 0xBAB1 +0xA1AB 0xBAB2 +0xA1AC 0xBAB3 +0xA1AD 0xBAB4 +0xA1AE 0xBAB5 +0xA1AF 0xBAB6 +0xA1B0 0xBAB7 +0xA1B1 0xBAB8 +0xA1B3 0xBAB9 +0xA1B4 0xBABA +0xA1B5 0xBABB +0xA1B6 0xBABC +0xA1B7 0xBABD +0xA1B8 0xBABE +0xA1B9 0xBABF +0xA1BA 0xBAC0 +0xA1BB 0xBAC1 +0xA1BC 0xBAC2 +0xA1BD 0xBAC3 +0xA1C1 0xBAC4 +0xA1C2 0xBAC5 +0xA1C3 0xBAC6 +0xA1C4 0xBAC7 +0xA1C5 0xBAC8 +0xA1C6 0xBAC9 +0xA1C7 0xBACA +0xA1C8 0xBACB +0xA1C9 0xBACC +0xA1CA 0xBACD +0xA1CB 0xBACE +0xA1CC 0xBACF +0xA1CD 0xBAD0 +0xA1CE 0xBAD1 +0xA1CF 0xBAD2 +0xA1D0 0xBAD3 +0xA1D1 0xBAD4 +0xA1D3 0xBAD5 +0xA1D4 0xBAD6 +0xA1D5 0xBAD7 +0xA1D6 0xBAD8 +0xA1D7 0xBAD9 +0xA1D8 0xBADA +0xA1D9 0xBADB +0xA1DA 0xBADC +0xA1DB 0xBADD +0xA1DC 0xBADE +0xA1DD 0xBADF +0xA1E1 0xBAE0 +0xA1E2 0xBAE1 +0xA1E3 0xBAE2 +0xA1E4 0xBAE3 +0xA1E5 0xBAE4 +0xA1E6 0xBAE5 +0xA1E7 0xBAE6 +0xA1E8 0xBAE7 +0xA1E9 0xBAE8 +0xA1EA 0xBAE9 +0xA1EB 0xBAEA +0xA1EC 0xBAEB +0xA1ED 0xBAEC +0xA1EE 0xBAED +0xA1EF 0xBAEE +0xA1F0 0xBAEF +0xA1F1 0xBAF0 +0xA1F3 0xBAF1 +0xA1F4 0xBAF2 +0xA1F5 0xBAF3 +0xA1F6 0xBAF4 +0xA1F7 0xBAF5 +0xA1F8 0xBAF6 +0xA1F9 0xBAF7 +0xA1FA 0xBAF8 +0xA1FB 0xBAF9 +0xA1FC 0xBAFA +0xA1FD 0xBAFB +0xA241 0xBAFC +0xA242 0xBAFD +0xA243 0xBAFE +0xA244 0xBAFF +0xA245 0xBB00 +0xA246 0xBB01 +0xA247 0xBB02 +0xA248 0xBB03 +0xA249 0xBB04 +0xA24A 0xBB05 +0xA24B 0xBB06 +0xA24C 0xBB07 +0xA24D 0xBB08 +0xA24E 0xBB09 +0xA24F 0xBB0A +0xA250 0xBB0B +0xA251 0xBB0C +0xA253 0xBB0D +0xA254 0xBB0E +0xA255 0xBB0F +0xA256 0xBB10 +0xA257 0xBB11 +0xA258 0xBB12 +0xA259 0xBB13 +0xA25A 0xBB14 +0xA25B 0xBB15 +0xA25C 0xBB16 +0xA25D 0xBB17 +0xA261 0xBB18 +0xA262 0xBB19 +0xA263 0xBB1A +0xA264 0xBB1B +0xA265 0xBB1C +0xA266 0xBB1D +0xA267 0xBB1E +0xA268 0xBB1F +0xA269 0xBB20 +0xA26A 0xBB21 +0xA26B 0xBB22 +0xA26C 0xBB23 +0xA26D 0xBB24 +0xA26E 0xBB25 +0xA26F 0xBB26 +0xA270 0xBB27 +0xA271 0xBB28 +0xA273 0xBB29 +0xA274 0xBB2A +0xA275 0xBB2B +0xA276 0xBB2C +0xA277 0xBB2D +0xA278 0xBB2E +0xA279 0xBB2F +0xA27A 0xBB30 +0xA27B 0xBB31 +0xA27C 0xBB32 +0xA27D 0xBB33 +0xA281 0xBB34 +0xA282 0xBB35 +0xA283 0xBB36 +0xA284 0xBB37 +0xA285 0xBB38 +0xA286 0xBB39 +0xA287 0xBB3A +0xA288 0xBB3B +0xA289 0xBB3C +0xA28A 0xBB3D +0xA28B 0xBB3E +0xA28C 0xBB3F +0xA28D 0xBB40 +0xA28E 0xBB41 +0xA28F 0xBB42 +0xA290 0xBB43 +0xA291 0xBB44 +0xA293 0xBB45 +0xA294 0xBB46 +0xA295 0xBB47 +0xA296 0xBB48 +0xA297 0xBB49 +0xA298 0xBB4A +0xA299 0xBB4B +0xA29A 0xBB4C +0xA29B 0xBB4D +0xA29C 0xBB4E +0xA29D 0xBB4F +0xA2A1 0xBB50 +0xA2A2 0xBB51 +0xA2A3 0xBB52 +0xA2A4 0xBB53 +0xA2A5 0xBB54 +0xA2A6 0xBB55 +0xA2A7 0xBB56 +0xA2A8 0xBB57 +0xA2A9 0xBB58 +0xA2AA 0xBB59 +0xA2AB 0xBB5A +0xA2AC 0xBB5B +0xA2AD 0xBB5C +0xA2AE 0xBB5D +0xA2AF 0xBB5E +0xA2B0 0xBB5F +0xA2B1 0xBB60 +0xA2B3 0xBB61 +0xA2B4 0xBB62 +0xA2B5 0xBB63 +0xA2B6 0xBB64 +0xA2B7 0xBB65 +0xA2B8 0xBB66 +0xA2B9 0xBB67 +0xA2BA 0xBB68 +0xA2BB 0xBB69 +0xA2BC 0xBB6A +0xA2BD 0xBB6B +0xA2C1 0xBB6C +0xA2C2 0xBB6D +0xA2C3 0xBB6E +0xA2C4 0xBB6F +0xA2C5 0xBB70 +0xA2C6 0xBB71 +0xA2C7 0xBB72 +0xA2C8 0xBB73 +0xA2C9 0xBB74 +0xA2CA 0xBB75 +0xA2CB 0xBB76 +0xA2CC 0xBB77 +0xA2CD 0xBB78 +0xA2CE 0xBB79 +0xA2CF 0xBB7A +0xA2D0 0xBB7B +0xA2D1 0xBB7C +0xA2D3 0xBB7D +0xA2D4 0xBB7E +0xA2D5 0xBB7F +0xA2D6 0xBB80 +0xA2D7 0xBB81 +0xA2D8 0xBB82 +0xA2D9 0xBB83 +0xA2DA 0xBB84 +0xA2DB 0xBB85 +0xA2DC 0xBB86 +0xA2DD 0xBB87 +0xA2E1 0xBB88 +0xA2E2 0xBB89 +0xA2E3 0xBB8A +0xA2E4 0xBB8B +0xA2E5 0xBB8C +0xA2E6 0xBB8D +0xA2E7 0xBB8E +0xA2E8 0xBB8F +0xA2E9 0xBB90 +0xA2EA 0xBB91 +0xA2EB 0xBB92 +0xA2EC 0xBB93 +0xA2ED 0xBB94 +0xA2EE 0xBB95 +0xA2EF 0xBB96 +0xA2F0 0xBB97 +0xA2F1 0xBB98 +0xA2F3 0xBB99 +0xA2F4 0xBB9A +0xA2F5 0xBB9B +0xA2F6 0xBB9C +0xA2F7 0xBB9D +0xA2F8 0xBB9E +0xA2F9 0xBB9F +0xA2FA 0xBBA0 +0xA2FB 0xBBA1 +0xA2FC 0xBBA2 +0xA2FD 0xBBA3 +0xA341 0xBBA4 +0xA342 0xBBA5 +0xA343 0xBBA6 +0xA344 0xBBA7 +0xA345 0xBBA8 +0xA346 0xBBA9 +0xA347 0xBBAA +0xA348 0xBBAB +0xA349 0xBBAC +0xA34A 0xBBAD +0xA34B 0xBBAE +0xA34C 0xBBAF +0xA34D 0xBBB0 +0xA34E 0xBBB1 +0xA34F 0xBBB2 +0xA350 0xBBB3 +0xA351 0xBBB4 +0xA353 0xBBB5 +0xA354 0xBBB6 +0xA355 0xBBB7 +0xA356 0xBBB8 +0xA357 0xBBB9 +0xA358 0xBBBA +0xA359 0xBBBB +0xA35A 0xBBBC +0xA35B 0xBBBD +0xA35C 0xBBBE +0xA35D 0xBBBF +0xA361 0xBBC0 +0xA362 0xBBC1 +0xA363 0xBBC2 +0xA364 0xBBC3 +0xA365 0xBBC4 +0xA366 0xBBC5 +0xA367 0xBBC6 +0xA368 0xBBC7 +0xA369 0xBBC8 +0xA36A 0xBBC9 +0xA36B 0xBBCA +0xA36C 0xBBCB +0xA36D 0xBBCC +0xA36E 0xBBCD +0xA36F 0xBBCE +0xA370 0xBBCF +0xA371 0xBBD0 +0xA373 0xBBD1 +0xA374 0xBBD2 +0xA375 0xBBD3 +0xA376 0xBBD4 +0xA377 0xBBD5 +0xA378 0xBBD6 +0xA379 0xBBD7 +0xA37A 0xBBD8 +0xA37B 0xBBD9 +0xA37C 0xBBDA +0xA37D 0xBBDB +0xA381 0xBBDC +0xA382 0xBBDD +0xA383 0xBBDE +0xA384 0xBBDF +0xA385 0xBBE0 +0xA386 0xBBE1 +0xA387 0xBBE2 +0xA388 0xBBE3 +0xA389 0xBBE4 +0xA38A 0xBBE5 +0xA38B 0xBBE6 +0xA38C 0xBBE7 +0xA38D 0xBBE8 +0xA38E 0xBBE9 +0xA38F 0xBBEA +0xA390 0xBBEB +0xA391 0xBBEC +0xA393 0xBBED +0xA394 0xBBEE +0xA395 0xBBEF +0xA396 0xBBF0 +0xA397 0xBBF1 +0xA398 0xBBF2 +0xA399 0xBBF3 +0xA39A 0xBBF4 +0xA39B 0xBBF5 +0xA39C 0xBBF6 +0xA39D 0xBBF7 +0xA3A1 0xBBF8 +0xA3A2 0xBBF9 +0xA3A3 0xBBFA +0xA3A4 0xBBFB +0xA3A5 0xBBFC +0xA3A6 0xBBFD +0xA3A7 0xBBFE +0xA3A8 0xBBFF +0xA3A9 0xBC00 +0xA3AA 0xBC01 +0xA3AB 0xBC02 +0xA3AC 0xBC03 +0xA3AD 0xBC04 +0xA3AE 0xBC05 +0xA3AF 0xBC06 +0xA3B0 0xBC07 +0xA3B1 0xBC08 +0xA3B3 0xBC09 +0xA3B4 0xBC0A +0xA3B5 0xBC0B +0xA3B6 0xBC0C +0xA3B7 0xBC0D +0xA3B8 0xBC0E +0xA3B9 0xBC0F +0xA3BA 0xBC10 +0xA3BB 0xBC11 +0xA3BC 0xBC12 +0xA3BD 0xBC13 +0xA441 0x3142 +0xA461 0xBC14 +0xA462 0xBC15 +0xA463 0xBC16 +0xA464 0xBC17 +0xA465 0xBC18 +0xA466 0xBC19 +0xA467 0xBC1A +0xA468 0xBC1B +0xA469 0xBC1C +0xA46A 0xBC1D +0xA46B 0xBC1E +0xA46C 0xBC1F +0xA46D 0xBC20 +0xA46E 0xBC21 +0xA46F 0xBC22 +0xA470 0xBC23 +0xA471 0xBC24 +0xA473 0xBC25 +0xA474 0xBC26 +0xA475 0xBC27 +0xA476 0xBC28 +0xA477 0xBC29 +0xA478 0xBC2A +0xA479 0xBC2B +0xA47A 0xBC2C +0xA47B 0xBC2D +0xA47C 0xBC2E +0xA47D 0xBC2F +0xA481 0xBC30 +0xA482 0xBC31 +0xA483 0xBC32 +0xA484 0xBC33 +0xA485 0xBC34 +0xA486 0xBC35 +0xA487 0xBC36 +0xA488 0xBC37 +0xA489 0xBC38 +0xA48A 0xBC39 +0xA48B 0xBC3A +0xA48C 0xBC3B +0xA48D 0xBC3C +0xA48E 0xBC3D +0xA48F 0xBC3E +0xA490 0xBC3F +0xA491 0xBC40 +0xA493 0xBC41 +0xA494 0xBC42 +0xA495 0xBC43 +0xA496 0xBC44 +0xA497 0xBC45 +0xA498 0xBC46 +0xA499 0xBC47 +0xA49A 0xBC48 +0xA49B 0xBC49 +0xA49C 0xBC4A +0xA49D 0xBC4B +0xA4A1 0xBC4C +0xA4A2 0xBC4D +0xA4A3 0xBC4E +0xA4A4 0xBC4F +0xA4A5 0xBC50 +0xA4A6 0xBC51 +0xA4A7 0xBC52 +0xA4A8 0xBC53 +0xA4A9 0xBC54 +0xA4AA 0xBC55 +0xA4AB 0xBC56 +0xA4AC 0xBC57 +0xA4AD 0xBC58 +0xA4AE 0xBC59 +0xA4AF 0xBC5A +0xA4B0 0xBC5B +0xA4B1 0xBC5C +0xA4B3 0xBC5D +0xA4B4 0xBC5E +0xA4B5 0xBC5F +0xA4B6 0xBC60 +0xA4B7 0xBC61 +0xA4B8 0xBC62 +0xA4B9 0xBC63 +0xA4BA 0xBC64 +0xA4BB 0xBC65 +0xA4BC 0xBC66 +0xA4BD 0xBC67 +0xA4C1 0xBC68 +0xA4C2 0xBC69 +0xA4C3 0xBC6A +0xA4C4 0xBC6B +0xA4C5 0xBC6C +0xA4C6 0xBC6D +0xA4C7 0xBC6E +0xA4C8 0xBC6F +0xA4C9 0xBC70 +0xA4CA 0xBC71 +0xA4CB 0xBC72 +0xA4CC 0xBC73 +0xA4CD 0xBC74 +0xA4CE 0xBC75 +0xA4CF 0xBC76 +0xA4D0 0xBC77 +0xA4D1 0xBC78 +0xA4D3 0xBC79 +0xA4D4 0xBC7A +0xA4D5 0xBC7B +0xA4D6 0xBC7C +0xA4D7 0xBC7D +0xA4D8 0xBC7E +0xA4D9 0xBC7F +0xA4DA 0xBC80 +0xA4DB 0xBC81 +0xA4DC 0xBC82 +0xA4DD 0xBC83 +0xA4E1 0xBC84 +0xA4E2 0xBC85 +0xA4E3 0xBC86 +0xA4E4 0xBC87 +0xA4E5 0xBC88 +0xA4E6 0xBC89 +0xA4E7 0xBC8A +0xA4E8 0xBC8B +0xA4E9 0xBC8C +0xA4EA 0xBC8D +0xA4EB 0xBC8E +0xA4EC 0xBC8F +0xA4ED 0xBC90 +0xA4EE 0xBC91 +0xA4EF 0xBC92 +0xA4F0 0xBC93 +0xA4F1 0xBC94 +0xA4F3 0xBC95 +0xA4F4 0xBC96 +0xA4F5 0xBC97 +0xA4F6 0xBC98 +0xA4F7 0xBC99 +0xA4F8 0xBC9A +0xA4F9 0xBC9B +0xA4FA 0xBC9C +0xA4FB 0xBC9D +0xA4FC 0xBC9E +0xA4FD 0xBC9F +0xA541 0xBCA0 +0xA542 0xBCA1 +0xA543 0xBCA2 +0xA544 0xBCA3 +0xA545 0xBCA4 +0xA546 0xBCA5 +0xA547 0xBCA6 +0xA548 0xBCA7 +0xA549 0xBCA8 +0xA54A 0xBCA9 +0xA54B 0xBCAA +0xA54C 0xBCAB +0xA54D 0xBCAC +0xA54E 0xBCAD +0xA54F 0xBCAE +0xA550 0xBCAF +0xA551 0xBCB0 +0xA553 0xBCB1 +0xA554 0xBCB2 +0xA555 0xBCB3 +0xA556 0xBCB4 +0xA557 0xBCB5 +0xA558 0xBCB6 +0xA559 0xBCB7 +0xA55A 0xBCB8 +0xA55B 0xBCB9 +0xA55C 0xBCBA +0xA55D 0xBCBB +0xA561 0xBCBC +0xA562 0xBCBD +0xA563 0xBCBE +0xA564 0xBCBF +0xA565 0xBCC0 +0xA566 0xBCC1 +0xA567 0xBCC2 +0xA568 0xBCC3 +0xA569 0xBCC4 +0xA56A 0xBCC5 +0xA56B 0xBCC6 +0xA56C 0xBCC7 +0xA56D 0xBCC8 +0xA56E 0xBCC9 +0xA56F 0xBCCA +0xA570 0xBCCB +0xA571 0xBCCC +0xA573 0xBCCD +0xA574 0xBCCE +0xA575 0xBCCF +0xA576 0xBCD0 +0xA577 0xBCD1 +0xA578 0xBCD2 +0xA579 0xBCD3 +0xA57A 0xBCD4 +0xA57B 0xBCD5 +0xA57C 0xBCD6 +0xA57D 0xBCD7 +0xA581 0xBCD8 +0xA582 0xBCD9 +0xA583 0xBCDA +0xA584 0xBCDB +0xA585 0xBCDC +0xA586 0xBCDD +0xA587 0xBCDE +0xA588 0xBCDF +0xA589 0xBCE0 +0xA58A 0xBCE1 +0xA58B 0xBCE2 +0xA58C 0xBCE3 +0xA58D 0xBCE4 +0xA58E 0xBCE5 +0xA58F 0xBCE6 +0xA590 0xBCE7 +0xA591 0xBCE8 +0xA593 0xBCE9 +0xA594 0xBCEA +0xA595 0xBCEB +0xA596 0xBCEC +0xA597 0xBCED +0xA598 0xBCEE +0xA599 0xBCEF +0xA59A 0xBCF0 +0xA59B 0xBCF1 +0xA59C 0xBCF2 +0xA59D 0xBCF3 +0xA5A1 0xBCF4 +0xA5A2 0xBCF5 +0xA5A3 0xBCF6 +0xA5A4 0xBCF7 +0xA5A5 0xBCF8 +0xA5A6 0xBCF9 +0xA5A7 0xBCFA +0xA5A8 0xBCFB +0xA5A9 0xBCFC +0xA5AA 0xBCFD +0xA5AB 0xBCFE +0xA5AC 0xBCFF +0xA5AD 0xBD00 +0xA5AE 0xBD01 +0xA5AF 0xBD02 +0xA5B0 0xBD03 +0xA5B1 0xBD04 +0xA5B3 0xBD05 +0xA5B4 0xBD06 +0xA5B5 0xBD07 +0xA5B6 0xBD08 +0xA5B7 0xBD09 +0xA5B8 0xBD0A +0xA5B9 0xBD0B +0xA5BA 0xBD0C +0xA5BB 0xBD0D +0xA5BC 0xBD0E +0xA5BD 0xBD0F +0xA5C1 0xBD10 +0xA5C2 0xBD11 +0xA5C3 0xBD12 +0xA5C4 0xBD13 +0xA5C5 0xBD14 +0xA5C6 0xBD15 +0xA5C7 0xBD16 +0xA5C8 0xBD17 +0xA5C9 0xBD18 +0xA5CA 0xBD19 +0xA5CB 0xBD1A +0xA5CC 0xBD1B +0xA5CD 0xBD1C +0xA5CE 0xBD1D +0xA5CF 0xBD1E +0xA5D0 0xBD1F +0xA5D1 0xBD20 +0xA5D3 0xBD21 +0xA5D4 0xBD22 +0xA5D5 0xBD23 +0xA5D6 0xBD24 +0xA5D7 0xBD25 +0xA5D8 0xBD26 +0xA5D9 0xBD27 +0xA5DA 0xBD28 +0xA5DB 0xBD29 +0xA5DC 0xBD2A +0xA5DD 0xBD2B +0xA5E1 0xBD2C +0xA5E2 0xBD2D +0xA5E3 0xBD2E +0xA5E4 0xBD2F +0xA5E5 0xBD30 +0xA5E6 0xBD31 +0xA5E7 0xBD32 +0xA5E8 0xBD33 +0xA5E9 0xBD34 +0xA5EA 0xBD35 +0xA5EB 0xBD36 +0xA5EC 0xBD37 +0xA5ED 0xBD38 +0xA5EE 0xBD39 +0xA5EF 0xBD3A +0xA5F0 0xBD3B +0xA5F1 0xBD3C +0xA5F3 0xBD3D +0xA5F4 0xBD3E +0xA5F5 0xBD3F +0xA5F6 0xBD40 +0xA5F7 0xBD41 +0xA5F8 0xBD42 +0xA5F9 0xBD43 +0xA5FA 0xBD44 +0xA5FB 0xBD45 +0xA5FC 0xBD46 +0xA5FD 0xBD47 +0xA641 0xBD48 +0xA642 0xBD49 +0xA643 0xBD4A +0xA644 0xBD4B +0xA645 0xBD4C +0xA646 0xBD4D +0xA647 0xBD4E +0xA648 0xBD4F +0xA649 0xBD50 +0xA64A 0xBD51 +0xA64B 0xBD52 +0xA64C 0xBD53 +0xA64D 0xBD54 +0xA64E 0xBD55 +0xA64F 0xBD56 +0xA650 0xBD57 +0xA651 0xBD58 +0xA653 0xBD59 +0xA654 0xBD5A +0xA655 0xBD5B +0xA656 0xBD5C +0xA657 0xBD5D +0xA658 0xBD5E +0xA659 0xBD5F +0xA65A 0xBD60 +0xA65B 0xBD61 +0xA65C 0xBD62 +0xA65D 0xBD63 +0xA661 0xBD64 +0xA662 0xBD65 +0xA663 0xBD66 +0xA664 0xBD67 +0xA665 0xBD68 +0xA666 0xBD69 +0xA667 0xBD6A +0xA668 0xBD6B +0xA669 0xBD6C +0xA66A 0xBD6D +0xA66B 0xBD6E +0xA66C 0xBD6F +0xA66D 0xBD70 +0xA66E 0xBD71 +0xA66F 0xBD72 +0xA670 0xBD73 +0xA671 0xBD74 +0xA673 0xBD75 +0xA674 0xBD76 +0xA675 0xBD77 +0xA676 0xBD78 +0xA677 0xBD79 +0xA678 0xBD7A +0xA679 0xBD7B +0xA67A 0xBD7C +0xA67B 0xBD7D +0xA67C 0xBD7E +0xA67D 0xBD7F +0xA681 0xBD80 +0xA682 0xBD81 +0xA683 0xBD82 +0xA684 0xBD83 +0xA685 0xBD84 +0xA686 0xBD85 +0xA687 0xBD86 +0xA688 0xBD87 +0xA689 0xBD88 +0xA68A 0xBD89 +0xA68B 0xBD8A +0xA68C 0xBD8B +0xA68D 0xBD8C +0xA68E 0xBD8D +0xA68F 0xBD8E +0xA690 0xBD8F +0xA691 0xBD90 +0xA693 0xBD91 +0xA694 0xBD92 +0xA695 0xBD93 +0xA696 0xBD94 +0xA697 0xBD95 +0xA698 0xBD96 +0xA699 0xBD97 +0xA69A 0xBD98 +0xA69B 0xBD99 +0xA69C 0xBD9A +0xA69D 0xBD9B +0xA6A1 0xBD9C +0xA6A2 0xBD9D +0xA6A3 0xBD9E +0xA6A4 0xBD9F +0xA6A5 0xBDA0 +0xA6A6 0xBDA1 +0xA6A7 0xBDA2 +0xA6A8 0xBDA3 +0xA6A9 0xBDA4 +0xA6AA 0xBDA5 +0xA6AB 0xBDA6 +0xA6AC 0xBDA7 +0xA6AD 0xBDA8 +0xA6AE 0xBDA9 +0xA6AF 0xBDAA +0xA6B0 0xBDAB +0xA6B1 0xBDAC +0xA6B3 0xBDAD +0xA6B4 0xBDAE +0xA6B5 0xBDAF +0xA6B6 0xBDB0 +0xA6B7 0xBDB1 +0xA6B8 0xBDB2 +0xA6B9 0xBDB3 +0xA6BA 0xBDB4 +0xA6BB 0xBDB5 +0xA6BC 0xBDB6 +0xA6BD 0xBDB7 +0xA6C1 0xBDB8 +0xA6C2 0xBDB9 +0xA6C3 0xBDBA +0xA6C4 0xBDBB +0xA6C5 0xBDBC +0xA6C6 0xBDBD +0xA6C7 0xBDBE +0xA6C8 0xBDBF +0xA6C9 0xBDC0 +0xA6CA 0xBDC1 +0xA6CB 0xBDC2 +0xA6CC 0xBDC3 +0xA6CD 0xBDC4 +0xA6CE 0xBDC5 +0xA6CF 0xBDC6 +0xA6D0 0xBDC7 +0xA6D1 0xBDC8 +0xA6D3 0xBDC9 +0xA6D4 0xBDCA +0xA6D5 0xBDCB +0xA6D6 0xBDCC +0xA6D7 0xBDCD +0xA6D8 0xBDCE +0xA6D9 0xBDCF +0xA6DA 0xBDD0 +0xA6DB 0xBDD1 +0xA6DC 0xBDD2 +0xA6DD 0xBDD3 +0xA6E1 0xBDD4 +0xA6E2 0xBDD5 +0xA6E3 0xBDD6 +0xA6E4 0xBDD7 +0xA6E5 0xBDD8 +0xA6E6 0xBDD9 +0xA6E7 0xBDDA +0xA6E8 0xBDDB +0xA6E9 0xBDDC +0xA6EA 0xBDDD +0xA6EB 0xBDDE +0xA6EC 0xBDDF +0xA6ED 0xBDE0 +0xA6EE 0xBDE1 +0xA6EF 0xBDE2 +0xA6F0 0xBDE3 +0xA6F1 0xBDE4 +0xA6F3 0xBDE5 +0xA6F4 0xBDE6 +0xA6F5 0xBDE7 +0xA6F6 0xBDE8 +0xA6F7 0xBDE9 +0xA6F8 0xBDEA +0xA6F9 0xBDEB +0xA6FA 0xBDEC +0xA6FB 0xBDED +0xA6FC 0xBDEE +0xA6FD 0xBDEF +0xA741 0xBDF0 +0xA742 0xBDF1 +0xA743 0xBDF2 +0xA744 0xBDF3 +0xA745 0xBDF4 +0xA746 0xBDF5 +0xA747 0xBDF6 +0xA748 0xBDF7 +0xA749 0xBDF8 +0xA74A 0xBDF9 +0xA74B 0xBDFA +0xA74C 0xBDFB +0xA74D 0xBDFC +0xA74E 0xBDFD +0xA74F 0xBDFE +0xA750 0xBDFF +0xA751 0xBE00 +0xA753 0xBE01 +0xA754 0xBE02 +0xA755 0xBE03 +0xA756 0xBE04 +0xA757 0xBE05 +0xA758 0xBE06 +0xA759 0xBE07 +0xA75A 0xBE08 +0xA75B 0xBE09 +0xA75C 0xBE0A +0xA75D 0xBE0B +0xA761 0xBE0C +0xA762 0xBE0D +0xA763 0xBE0E +0xA764 0xBE0F +0xA765 0xBE10 +0xA766 0xBE11 +0xA767 0xBE12 +0xA768 0xBE13 +0xA769 0xBE14 +0xA76A 0xBE15 +0xA76B 0xBE16 +0xA76C 0xBE17 +0xA76D 0xBE18 +0xA76E 0xBE19 +0xA76F 0xBE1A +0xA770 0xBE1B +0xA771 0xBE1C +0xA773 0xBE1D +0xA774 0xBE1E +0xA775 0xBE1F +0xA776 0xBE20 +0xA777 0xBE21 +0xA778 0xBE22 +0xA779 0xBE23 +0xA77A 0xBE24 +0xA77B 0xBE25 +0xA77C 0xBE26 +0xA77D 0xBE27 +0xA781 0xBE28 +0xA782 0xBE29 +0xA783 0xBE2A +0xA784 0xBE2B +0xA785 0xBE2C +0xA786 0xBE2D +0xA787 0xBE2E +0xA788 0xBE2F +0xA789 0xBE30 +0xA78A 0xBE31 +0xA78B 0xBE32 +0xA78C 0xBE33 +0xA78D 0xBE34 +0xA78E 0xBE35 +0xA78F 0xBE36 +0xA790 0xBE37 +0xA791 0xBE38 +0xA793 0xBE39 +0xA794 0xBE3A +0xA795 0xBE3B +0xA796 0xBE3C +0xA797 0xBE3D +0xA798 0xBE3E +0xA799 0xBE3F +0xA79A 0xBE40 +0xA79B 0xBE41 +0xA79C 0xBE42 +0xA79D 0xBE43 +0xA7A1 0xBE44 +0xA7A2 0xBE45 +0xA7A3 0xBE46 +0xA7A4 0xBE47 +0xA7A5 0xBE48 +0xA7A6 0xBE49 +0xA7A7 0xBE4A +0xA7A8 0xBE4B +0xA7A9 0xBE4C +0xA7AA 0xBE4D +0xA7AB 0xBE4E +0xA7AC 0xBE4F +0xA7AD 0xBE50 +0xA7AE 0xBE51 +0xA7AF 0xBE52 +0xA7B0 0xBE53 +0xA7B1 0xBE54 +0xA7B3 0xBE55 +0xA7B4 0xBE56 +0xA7B5 0xBE57 +0xA7B6 0xBE58 +0xA7B7 0xBE59 +0xA7B8 0xBE5A +0xA7B9 0xBE5B +0xA7BA 0xBE5C +0xA7BB 0xBE5D +0xA7BC 0xBE5E +0xA7BD 0xBE5F +0xA841 0x3143 +0xA861 0xBE60 +0xA862 0xBE61 +0xA863 0xBE62 +0xA864 0xBE63 +0xA865 0xBE64 +0xA866 0xBE65 +0xA867 0xBE66 +0xA868 0xBE67 +0xA869 0xBE68 +0xA86A 0xBE69 +0xA86B 0xBE6A +0xA86C 0xBE6B +0xA86D 0xBE6C +0xA86E 0xBE6D +0xA86F 0xBE6E +0xA870 0xBE6F +0xA871 0xBE70 +0xA873 0xBE71 +0xA874 0xBE72 +0xA875 0xBE73 +0xA876 0xBE74 +0xA877 0xBE75 +0xA878 0xBE76 +0xA879 0xBE77 +0xA87A 0xBE78 +0xA87B 0xBE79 +0xA87C 0xBE7A +0xA87D 0xBE7B +0xA881 0xBE7C +0xA882 0xBE7D +0xA883 0xBE7E +0xA884 0xBE7F +0xA885 0xBE80 +0xA886 0xBE81 +0xA887 0xBE82 +0xA888 0xBE83 +0xA889 0xBE84 +0xA88A 0xBE85 +0xA88B 0xBE86 +0xA88C 0xBE87 +0xA88D 0xBE88 +0xA88E 0xBE89 +0xA88F 0xBE8A +0xA890 0xBE8B +0xA891 0xBE8C +0xA893 0xBE8D +0xA894 0xBE8E +0xA895 0xBE8F +0xA896 0xBE90 +0xA897 0xBE91 +0xA898 0xBE92 +0xA899 0xBE93 +0xA89A 0xBE94 +0xA89B 0xBE95 +0xA89C 0xBE96 +0xA89D 0xBE97 +0xA8A1 0xBE98 +0xA8A2 0xBE99 +0xA8A3 0xBE9A +0xA8A4 0xBE9B +0xA8A5 0xBE9C +0xA8A6 0xBE9D +0xA8A7 0xBE9E +0xA8A8 0xBE9F +0xA8A9 0xBEA0 +0xA8AA 0xBEA1 +0xA8AB 0xBEA2 +0xA8AC 0xBEA3 +0xA8AD 0xBEA4 +0xA8AE 0xBEA5 +0xA8AF 0xBEA6 +0xA8B0 0xBEA7 +0xA8B1 0xBEA8 +0xA8B3 0xBEA9 +0xA8B4 0xBEAA +0xA8B5 0xBEAB +0xA8B6 0xBEAC +0xA8B7 0xBEAD +0xA8B8 0xBEAE +0xA8B9 0xBEAF +0xA8BA 0xBEB0 +0xA8BB 0xBEB1 +0xA8BC 0xBEB2 +0xA8BD 0xBEB3 +0xA8C1 0xBEB4 +0xA8C2 0xBEB5 +0xA8C3 0xBEB6 +0xA8C4 0xBEB7 +0xA8C5 0xBEB8 +0xA8C6 0xBEB9 +0xA8C7 0xBEBA +0xA8C8 0xBEBB +0xA8C9 0xBEBC +0xA8CA 0xBEBD +0xA8CB 0xBEBE +0xA8CC 0xBEBF +0xA8CD 0xBEC0 +0xA8CE 0xBEC1 +0xA8CF 0xBEC2 +0xA8D0 0xBEC3 +0xA8D1 0xBEC4 +0xA8D3 0xBEC5 +0xA8D4 0xBEC6 +0xA8D5 0xBEC7 +0xA8D6 0xBEC8 +0xA8D7 0xBEC9 +0xA8D8 0xBECA +0xA8D9 0xBECB +0xA8DA 0xBECC +0xA8DB 0xBECD +0xA8DC 0xBECE +0xA8DD 0xBECF +0xA8E1 0xBED0 +0xA8E2 0xBED1 +0xA8E3 0xBED2 +0xA8E4 0xBED3 +0xA8E5 0xBED4 +0xA8E6 0xBED5 +0xA8E7 0xBED6 +0xA8E8 0xBED7 +0xA8E9 0xBED8 +0xA8EA 0xBED9 +0xA8EB 0xBEDA +0xA8EC 0xBEDB +0xA8ED 0xBEDC +0xA8EE 0xBEDD +0xA8EF 0xBEDE +0xA8F0 0xBEDF +0xA8F1 0xBEE0 +0xA8F3 0xBEE1 +0xA8F4 0xBEE2 +0xA8F5 0xBEE3 +0xA8F6 0xBEE4 +0xA8F7 0xBEE5 +0xA8F8 0xBEE6 +0xA8F9 0xBEE7 +0xA8FA 0xBEE8 +0xA8FB 0xBEE9 +0xA8FC 0xBEEA +0xA8FD 0xBEEB +0xA941 0xBEEC +0xA942 0xBEED +0xA943 0xBEEE +0xA944 0xBEEF +0xA945 0xBEF0 +0xA946 0xBEF1 +0xA947 0xBEF2 +0xA948 0xBEF3 +0xA949 0xBEF4 +0xA94A 0xBEF5 +0xA94B 0xBEF6 +0xA94C 0xBEF7 +0xA94D 0xBEF8 +0xA94E 0xBEF9 +0xA94F 0xBEFA +0xA950 0xBEFB +0xA951 0xBEFC +0xA953 0xBEFD +0xA954 0xBEFE +0xA955 0xBEFF +0xA956 0xBF00 +0xA957 0xBF01 +0xA958 0xBF02 +0xA959 0xBF03 +0xA95A 0xBF04 +0xA95B 0xBF05 +0xA95C 0xBF06 +0xA95D 0xBF07 +0xA961 0xBF08 +0xA962 0xBF09 +0xA963 0xBF0A +0xA964 0xBF0B +0xA965 0xBF0C +0xA966 0xBF0D +0xA967 0xBF0E +0xA968 0xBF0F +0xA969 0xBF10 +0xA96A 0xBF11 +0xA96B 0xBF12 +0xA96C 0xBF13 +0xA96D 0xBF14 +0xA96E 0xBF15 +0xA96F 0xBF16 +0xA970 0xBF17 +0xA971 0xBF18 +0xA973 0xBF19 +0xA974 0xBF1A +0xA975 0xBF1B +0xA976 0xBF1C +0xA977 0xBF1D +0xA978 0xBF1E +0xA979 0xBF1F +0xA97A 0xBF20 +0xA97B 0xBF21 +0xA97C 0xBF22 +0xA97D 0xBF23 +0xA981 0xBF24 +0xA982 0xBF25 +0xA983 0xBF26 +0xA984 0xBF27 +0xA985 0xBF28 +0xA986 0xBF29 +0xA987 0xBF2A +0xA988 0xBF2B +0xA989 0xBF2C +0xA98A 0xBF2D +0xA98B 0xBF2E +0xA98C 0xBF2F +0xA98D 0xBF30 +0xA98E 0xBF31 +0xA98F 0xBF32 +0xA990 0xBF33 +0xA991 0xBF34 +0xA993 0xBF35 +0xA994 0xBF36 +0xA995 0xBF37 +0xA996 0xBF38 +0xA997 0xBF39 +0xA998 0xBF3A +0xA999 0xBF3B +0xA99A 0xBF3C +0xA99B 0xBF3D +0xA99C 0xBF3E +0xA99D 0xBF3F +0xA9A1 0xBF40 +0xA9A2 0xBF41 +0xA9A3 0xBF42 +0xA9A4 0xBF43 +0xA9A5 0xBF44 +0xA9A6 0xBF45 +0xA9A7 0xBF46 +0xA9A8 0xBF47 +0xA9A9 0xBF48 +0xA9AA 0xBF49 +0xA9AB 0xBF4A +0xA9AC 0xBF4B +0xA9AD 0xBF4C +0xA9AE 0xBF4D +0xA9AF 0xBF4E +0xA9B0 0xBF4F +0xA9B1 0xBF50 +0xA9B3 0xBF51 +0xA9B4 0xBF52 +0xA9B5 0xBF53 +0xA9B6 0xBF54 +0xA9B7 0xBF55 +0xA9B8 0xBF56 +0xA9B9 0xBF57 +0xA9BA 0xBF58 +0xA9BB 0xBF59 +0xA9BC 0xBF5A +0xA9BD 0xBF5B +0xA9C1 0xBF5C +0xA9C2 0xBF5D +0xA9C3 0xBF5E +0xA9C4 0xBF5F +0xA9C5 0xBF60 +0xA9C6 0xBF61 +0xA9C7 0xBF62 +0xA9C8 0xBF63 +0xA9C9 0xBF64 +0xA9CA 0xBF65 +0xA9CB 0xBF66 +0xA9CC 0xBF67 +0xA9CD 0xBF68 +0xA9CE 0xBF69 +0xA9CF 0xBF6A +0xA9D0 0xBF6B +0xA9D1 0xBF6C +0xA9D3 0xBF6D +0xA9D4 0xBF6E +0xA9D5 0xBF6F +0xA9D6 0xBF70 +0xA9D7 0xBF71 +0xA9D8 0xBF72 +0xA9D9 0xBF73 +0xA9DA 0xBF74 +0xA9DB 0xBF75 +0xA9DC 0xBF76 +0xA9DD 0xBF77 +0xA9E1 0xBF78 +0xA9E2 0xBF79 +0xA9E3 0xBF7A +0xA9E4 0xBF7B +0xA9E5 0xBF7C +0xA9E6 0xBF7D +0xA9E7 0xBF7E +0xA9E8 0xBF7F +0xA9E9 0xBF80 +0xA9EA 0xBF81 +0xA9EB 0xBF82 +0xA9EC 0xBF83 +0xA9ED 0xBF84 +0xA9EE 0xBF85 +0xA9EF 0xBF86 +0xA9F0 0xBF87 +0xA9F1 0xBF88 +0xA9F3 0xBF89 +0xA9F4 0xBF8A +0xA9F5 0xBF8B +0xA9F6 0xBF8C +0xA9F7 0xBF8D +0xA9F8 0xBF8E +0xA9F9 0xBF8F +0xA9FA 0xBF90 +0xA9FB 0xBF91 +0xA9FC 0xBF92 +0xA9FD 0xBF93 +0xAA41 0xBF94 +0xAA42 0xBF95 +0xAA43 0xBF96 +0xAA44 0xBF97 +0xAA45 0xBF98 +0xAA46 0xBF99 +0xAA47 0xBF9A +0xAA48 0xBF9B +0xAA49 0xBF9C +0xAA4A 0xBF9D +0xAA4B 0xBF9E +0xAA4C 0xBF9F +0xAA4D 0xBFA0 +0xAA4E 0xBFA1 +0xAA4F 0xBFA2 +0xAA50 0xBFA3 +0xAA51 0xBFA4 +0xAA53 0xBFA5 +0xAA54 0xBFA6 +0xAA55 0xBFA7 +0xAA56 0xBFA8 +0xAA57 0xBFA9 +0xAA58 0xBFAA +0xAA59 0xBFAB +0xAA5A 0xBFAC +0xAA5B 0xBFAD +0xAA5C 0xBFAE +0xAA5D 0xBFAF +0xAA61 0xBFB0 +0xAA62 0xBFB1 +0xAA63 0xBFB2 +0xAA64 0xBFB3 +0xAA65 0xBFB4 +0xAA66 0xBFB5 +0xAA67 0xBFB6 +0xAA68 0xBFB7 +0xAA69 0xBFB8 +0xAA6A 0xBFB9 +0xAA6B 0xBFBA +0xAA6C 0xBFBB +0xAA6D 0xBFBC +0xAA6E 0xBFBD +0xAA6F 0xBFBE +0xAA70 0xBFBF +0xAA71 0xBFC0 +0xAA73 0xBFC1 +0xAA74 0xBFC2 +0xAA75 0xBFC3 +0xAA76 0xBFC4 +0xAA77 0xBFC5 +0xAA78 0xBFC6 +0xAA79 0xBFC7 +0xAA7A 0xBFC8 +0xAA7B 0xBFC9 +0xAA7C 0xBFCA +0xAA7D 0xBFCB +0xAA81 0xBFCC +0xAA82 0xBFCD +0xAA83 0xBFCE +0xAA84 0xBFCF +0xAA85 0xBFD0 +0xAA86 0xBFD1 +0xAA87 0xBFD2 +0xAA88 0xBFD3 +0xAA89 0xBFD4 +0xAA8A 0xBFD5 +0xAA8B 0xBFD6 +0xAA8C 0xBFD7 +0xAA8D 0xBFD8 +0xAA8E 0xBFD9 +0xAA8F 0xBFDA +0xAA90 0xBFDB +0xAA91 0xBFDC +0xAA93 0xBFDD +0xAA94 0xBFDE +0xAA95 0xBFDF +0xAA96 0xBFE0 +0xAA97 0xBFE1 +0xAA98 0xBFE2 +0xAA99 0xBFE3 +0xAA9A 0xBFE4 +0xAA9B 0xBFE5 +0xAA9C 0xBFE6 +0xAA9D 0xBFE7 +0xAAA1 0xBFE8 +0xAAA2 0xBFE9 +0xAAA3 0xBFEA +0xAAA4 0xBFEB +0xAAA5 0xBFEC +0xAAA6 0xBFED +0xAAA7 0xBFEE +0xAAA8 0xBFEF +0xAAA9 0xBFF0 +0xAAAA 0xBFF1 +0xAAAB 0xBFF2 +0xAAAC 0xBFF3 +0xAAAD 0xBFF4 +0xAAAE 0xBFF5 +0xAAAF 0xBFF6 +0xAAB0 0xBFF7 +0xAAB1 0xBFF8 +0xAAB3 0xBFF9 +0xAAB4 0xBFFA +0xAAB5 0xBFFB +0xAAB6 0xBFFC +0xAAB7 0xBFFD +0xAAB8 0xBFFE +0xAAB9 0xBFFF +0xAABA 0xC000 +0xAABB 0xC001 +0xAABC 0xC002 +0xAABD 0xC003 +0xAAC1 0xC004 +0xAAC2 0xC005 +0xAAC3 0xC006 +0xAAC4 0xC007 +0xAAC5 0xC008 +0xAAC6 0xC009 +0xAAC7 0xC00A +0xAAC8 0xC00B +0xAAC9 0xC00C +0xAACA 0xC00D +0xAACB 0xC00E +0xAACC 0xC00F +0xAACD 0xC010 +0xAACE 0xC011 +0xAACF 0xC012 +0xAAD0 0xC013 +0xAAD1 0xC014 +0xAAD3 0xC015 +0xAAD4 0xC016 +0xAAD5 0xC017 +0xAAD6 0xC018 +0xAAD7 0xC019 +0xAAD8 0xC01A +0xAAD9 0xC01B +0xAADA 0xC01C +0xAADB 0xC01D +0xAADC 0xC01E +0xAADD 0xC01F +0xAAE1 0xC020 +0xAAE2 0xC021 +0xAAE3 0xC022 +0xAAE4 0xC023 +0xAAE5 0xC024 +0xAAE6 0xC025 +0xAAE7 0xC026 +0xAAE8 0xC027 +0xAAE9 0xC028 +0xAAEA 0xC029 +0xAAEB 0xC02A +0xAAEC 0xC02B +0xAAED 0xC02C +0xAAEE 0xC02D +0xAAEF 0xC02E +0xAAF0 0xC02F +0xAAF1 0xC030 +0xAAF3 0xC031 +0xAAF4 0xC032 +0xAAF5 0xC033 +0xAAF6 0xC034 +0xAAF7 0xC035 +0xAAF8 0xC036 +0xAAF9 0xC037 +0xAAFA 0xC038 +0xAAFB 0xC039 +0xAAFC 0xC03A +0xAAFD 0xC03B +0xAB41 0xC03C +0xAB42 0xC03D +0xAB43 0xC03E +0xAB44 0xC03F +0xAB45 0xC040 +0xAB46 0xC041 +0xAB47 0xC042 +0xAB48 0xC043 +0xAB49 0xC044 +0xAB4A 0xC045 +0xAB4B 0xC046 +0xAB4C 0xC047 +0xAB4D 0xC048 +0xAB4E 0xC049 +0xAB4F 0xC04A +0xAB50 0xC04B +0xAB51 0xC04C +0xAB53 0xC04D +0xAB54 0xC04E +0xAB55 0xC04F +0xAB56 0xC050 +0xAB57 0xC051 +0xAB58 0xC052 +0xAB59 0xC053 +0xAB5A 0xC054 +0xAB5B 0xC055 +0xAB5C 0xC056 +0xAB5D 0xC057 +0xAB61 0xC058 +0xAB62 0xC059 +0xAB63 0xC05A +0xAB64 0xC05B +0xAB65 0xC05C +0xAB66 0xC05D +0xAB67 0xC05E +0xAB68 0xC05F +0xAB69 0xC060 +0xAB6A 0xC061 +0xAB6B 0xC062 +0xAB6C 0xC063 +0xAB6D 0xC064 +0xAB6E 0xC065 +0xAB6F 0xC066 +0xAB70 0xC067 +0xAB71 0xC068 +0xAB73 0xC069 +0xAB74 0xC06A +0xAB75 0xC06B +0xAB76 0xC06C +0xAB77 0xC06D +0xAB78 0xC06E +0xAB79 0xC06F +0xAB7A 0xC070 +0xAB7B 0xC071 +0xAB7C 0xC072 +0xAB7D 0xC073 +0xAB81 0xC074 +0xAB82 0xC075 +0xAB83 0xC076 +0xAB84 0xC077 +0xAB85 0xC078 +0xAB86 0xC079 +0xAB87 0xC07A +0xAB88 0xC07B +0xAB89 0xC07C +0xAB8A 0xC07D +0xAB8B 0xC07E +0xAB8C 0xC07F +0xAB8D 0xC080 +0xAB8E 0xC081 +0xAB8F 0xC082 +0xAB90 0xC083 +0xAB91 0xC084 +0xAB93 0xC085 +0xAB94 0xC086 +0xAB95 0xC087 +0xAB96 0xC088 +0xAB97 0xC089 +0xAB98 0xC08A +0xAB99 0xC08B +0xAB9A 0xC08C +0xAB9B 0xC08D +0xAB9C 0xC08E +0xAB9D 0xC08F +0xABA1 0xC090 +0xABA2 0xC091 +0xABA3 0xC092 +0xABA4 0xC093 +0xABA5 0xC094 +0xABA6 0xC095 +0xABA7 0xC096 +0xABA8 0xC097 +0xABA9 0xC098 +0xABAA 0xC099 +0xABAB 0xC09A +0xABAC 0xC09B +0xABAD 0xC09C +0xABAE 0xC09D +0xABAF 0xC09E +0xABB0 0xC09F +0xABB1 0xC0A0 +0xABB3 0xC0A1 +0xABB4 0xC0A2 +0xABB5 0xC0A3 +0xABB6 0xC0A4 +0xABB7 0xC0A5 +0xABB8 0xC0A6 +0xABB9 0xC0A7 +0xABBA 0xC0A8 +0xABBB 0xC0A9 +0xABBC 0xC0AA +0xABBD 0xC0AB +0xAC41 0x3145 +0xAC61 0xC0AC +0xAC62 0xC0AD +0xAC63 0xC0AE +0xAC64 0xC0AF +0xAC65 0xC0B0 +0xAC66 0xC0B1 +0xAC67 0xC0B2 +0xAC68 0xC0B3 +0xAC69 0xC0B4 +0xAC6A 0xC0B5 +0xAC6B 0xC0B6 +0xAC6C 0xC0B7 +0xAC6D 0xC0B8 +0xAC6E 0xC0B9 +0xAC6F 0xC0BA +0xAC70 0xC0BB +0xAC71 0xC0BC +0xAC73 0xC0BD +0xAC74 0xC0BE +0xAC75 0xC0BF +0xAC76 0xC0C0 +0xAC77 0xC0C1 +0xAC78 0xC0C2 +0xAC79 0xC0C3 +0xAC7A 0xC0C4 +0xAC7B 0xC0C5 +0xAC7C 0xC0C6 +0xAC7D 0xC0C7 +0xAC81 0xC0C8 +0xAC82 0xC0C9 +0xAC83 0xC0CA +0xAC84 0xC0CB +0xAC85 0xC0CC +0xAC86 0xC0CD +0xAC87 0xC0CE +0xAC88 0xC0CF +0xAC89 0xC0D0 +0xAC8A 0xC0D1 +0xAC8B 0xC0D2 +0xAC8C 0xC0D3 +0xAC8D 0xC0D4 +0xAC8E 0xC0D5 +0xAC8F 0xC0D6 +0xAC90 0xC0D7 +0xAC91 0xC0D8 +0xAC93 0xC0D9 +0xAC94 0xC0DA +0xAC95 0xC0DB +0xAC96 0xC0DC +0xAC97 0xC0DD +0xAC98 0xC0DE +0xAC99 0xC0DF +0xAC9A 0xC0E0 +0xAC9B 0xC0E1 +0xAC9C 0xC0E2 +0xAC9D 0xC0E3 +0xACA1 0xC0E4 +0xACA2 0xC0E5 +0xACA3 0xC0E6 +0xACA4 0xC0E7 +0xACA5 0xC0E8 +0xACA6 0xC0E9 +0xACA7 0xC0EA +0xACA8 0xC0EB +0xACA9 0xC0EC +0xACAA 0xC0ED +0xACAB 0xC0EE +0xACAC 0xC0EF +0xACAD 0xC0F0 +0xACAE 0xC0F1 +0xACAF 0xC0F2 +0xACB0 0xC0F3 +0xACB1 0xC0F4 +0xACB3 0xC0F5 +0xACB4 0xC0F6 +0xACB5 0xC0F7 +0xACB6 0xC0F8 +0xACB7 0xC0F9 +0xACB8 0xC0FA +0xACB9 0xC0FB +0xACBA 0xC0FC +0xACBB 0xC0FD +0xACBC 0xC0FE +0xACBD 0xC0FF +0xACC1 0xC100 +0xACC2 0xC101 +0xACC3 0xC102 +0xACC4 0xC103 +0xACC5 0xC104 +0xACC6 0xC105 +0xACC7 0xC106 +0xACC8 0xC107 +0xACC9 0xC108 +0xACCA 0xC109 +0xACCB 0xC10A +0xACCC 0xC10B +0xACCD 0xC10C +0xACCE 0xC10D +0xACCF 0xC10E +0xACD0 0xC10F +0xACD1 0xC110 +0xACD3 0xC111 +0xACD4 0xC112 +0xACD5 0xC113 +0xACD6 0xC114 +0xACD7 0xC115 +0xACD8 0xC116 +0xACD9 0xC117 +0xACDA 0xC118 +0xACDB 0xC119 +0xACDC 0xC11A +0xACDD 0xC11B +0xACE1 0xC11C +0xACE2 0xC11D +0xACE3 0xC11E +0xACE4 0xC11F +0xACE5 0xC120 +0xACE6 0xC121 +0xACE7 0xC122 +0xACE8 0xC123 +0xACE9 0xC124 +0xACEA 0xC125 +0xACEB 0xC126 +0xACEC 0xC127 +0xACED 0xC128 +0xACEE 0xC129 +0xACEF 0xC12A +0xACF0 0xC12B +0xACF1 0xC12C +0xACF3 0xC12D +0xACF4 0xC12E +0xACF5 0xC12F +0xACF6 0xC130 +0xACF7 0xC131 +0xACF8 0xC132 +0xACF9 0xC133 +0xACFA 0xC134 +0xACFB 0xC135 +0xACFC 0xC136 +0xACFD 0xC137 +0xAD41 0xC138 +0xAD42 0xC139 +0xAD43 0xC13A +0xAD44 0xC13B +0xAD45 0xC13C +0xAD46 0xC13D +0xAD47 0xC13E +0xAD48 0xC13F +0xAD49 0xC140 +0xAD4A 0xC141 +0xAD4B 0xC142 +0xAD4C 0xC143 +0xAD4D 0xC144 +0xAD4E 0xC145 +0xAD4F 0xC146 +0xAD50 0xC147 +0xAD51 0xC148 +0xAD53 0xC149 +0xAD54 0xC14A +0xAD55 0xC14B +0xAD56 0xC14C +0xAD57 0xC14D +0xAD58 0xC14E +0xAD59 0xC14F +0xAD5A 0xC150 +0xAD5B 0xC151 +0xAD5C 0xC152 +0xAD5D 0xC153 +0xAD61 0xC154 +0xAD62 0xC155 +0xAD63 0xC156 +0xAD64 0xC157 +0xAD65 0xC158 +0xAD66 0xC159 +0xAD67 0xC15A +0xAD68 0xC15B +0xAD69 0xC15C +0xAD6A 0xC15D +0xAD6B 0xC15E +0xAD6C 0xC15F +0xAD6D 0xC160 +0xAD6E 0xC161 +0xAD6F 0xC162 +0xAD70 0xC163 +0xAD71 0xC164 +0xAD73 0xC165 +0xAD74 0xC166 +0xAD75 0xC167 +0xAD76 0xC168 +0xAD77 0xC169 +0xAD78 0xC16A +0xAD79 0xC16B +0xAD7A 0xC16C +0xAD7B 0xC16D +0xAD7C 0xC16E +0xAD7D 0xC16F +0xAD81 0xC170 +0xAD82 0xC171 +0xAD83 0xC172 +0xAD84 0xC173 +0xAD85 0xC174 +0xAD86 0xC175 +0xAD87 0xC176 +0xAD88 0xC177 +0xAD89 0xC178 +0xAD8A 0xC179 +0xAD8B 0xC17A +0xAD8C 0xC17B +0xAD8D 0xC17C +0xAD8E 0xC17D +0xAD8F 0xC17E +0xAD90 0xC17F +0xAD91 0xC180 +0xAD93 0xC181 +0xAD94 0xC182 +0xAD95 0xC183 +0xAD96 0xC184 +0xAD97 0xC185 +0xAD98 0xC186 +0xAD99 0xC187 +0xAD9A 0xC188 +0xAD9B 0xC189 +0xAD9C 0xC18A +0xAD9D 0xC18B +0xADA1 0xC18C +0xADA2 0xC18D +0xADA3 0xC18E +0xADA4 0xC18F +0xADA5 0xC190 +0xADA6 0xC191 +0xADA7 0xC192 +0xADA8 0xC193 +0xADA9 0xC194 +0xADAA 0xC195 +0xADAB 0xC196 +0xADAC 0xC197 +0xADAD 0xC198 +0xADAE 0xC199 +0xADAF 0xC19A +0xADB0 0xC19B +0xADB1 0xC19C +0xADB3 0xC19D +0xADB4 0xC19E +0xADB5 0xC19F +0xADB6 0xC1A0 +0xADB7 0xC1A1 +0xADB8 0xC1A2 +0xADB9 0xC1A3 +0xADBA 0xC1A4 +0xADBB 0xC1A5 +0xADBC 0xC1A6 +0xADBD 0xC1A7 +0xADC1 0xC1A8 +0xADC2 0xC1A9 +0xADC3 0xC1AA +0xADC4 0xC1AB +0xADC5 0xC1AC +0xADC6 0xC1AD +0xADC7 0xC1AE +0xADC8 0xC1AF +0xADC9 0xC1B0 +0xADCA 0xC1B1 +0xADCB 0xC1B2 +0xADCC 0xC1B3 +0xADCD 0xC1B4 +0xADCE 0xC1B5 +0xADCF 0xC1B6 +0xADD0 0xC1B7 +0xADD1 0xC1B8 +0xADD3 0xC1B9 +0xADD4 0xC1BA +0xADD5 0xC1BB +0xADD6 0xC1BC +0xADD7 0xC1BD +0xADD8 0xC1BE +0xADD9 0xC1BF +0xADDA 0xC1C0 +0xADDB 0xC1C1 +0xADDC 0xC1C2 +0xADDD 0xC1C3 +0xADE1 0xC1C4 +0xADE2 0xC1C5 +0xADE3 0xC1C6 +0xADE4 0xC1C7 +0xADE5 0xC1C8 +0xADE6 0xC1C9 +0xADE7 0xC1CA +0xADE8 0xC1CB +0xADE9 0xC1CC +0xADEA 0xC1CD +0xADEB 0xC1CE +0xADEC 0xC1CF +0xADED 0xC1D0 +0xADEE 0xC1D1 +0xADEF 0xC1D2 +0xADF0 0xC1D3 +0xADF1 0xC1D4 +0xADF3 0xC1D5 +0xADF4 0xC1D6 +0xADF5 0xC1D7 +0xADF6 0xC1D8 +0xADF7 0xC1D9 +0xADF8 0xC1DA +0xADF9 0xC1DB +0xADFA 0xC1DC +0xADFB 0xC1DD +0xADFC 0xC1DE +0xADFD 0xC1DF +0xAE41 0xC1E0 +0xAE42 0xC1E1 +0xAE43 0xC1E2 +0xAE44 0xC1E3 +0xAE45 0xC1E4 +0xAE46 0xC1E5 +0xAE47 0xC1E6 +0xAE48 0xC1E7 +0xAE49 0xC1E8 +0xAE4A 0xC1E9 +0xAE4B 0xC1EA +0xAE4C 0xC1EB +0xAE4D 0xC1EC +0xAE4E 0xC1ED +0xAE4F 0xC1EE +0xAE50 0xC1EF +0xAE51 0xC1F0 +0xAE53 0xC1F1 +0xAE54 0xC1F2 +0xAE55 0xC1F3 +0xAE56 0xC1F4 +0xAE57 0xC1F5 +0xAE58 0xC1F6 +0xAE59 0xC1F7 +0xAE5A 0xC1F8 +0xAE5B 0xC1F9 +0xAE5C 0xC1FA +0xAE5D 0xC1FB +0xAE61 0xC1FC +0xAE62 0xC1FD +0xAE63 0xC1FE +0xAE64 0xC1FF +0xAE65 0xC200 +0xAE66 0xC201 +0xAE67 0xC202 +0xAE68 0xC203 +0xAE69 0xC204 +0xAE6A 0xC205 +0xAE6B 0xC206 +0xAE6C 0xC207 +0xAE6D 0xC208 +0xAE6E 0xC209 +0xAE6F 0xC20A +0xAE70 0xC20B +0xAE71 0xC20C +0xAE73 0xC20D +0xAE74 0xC20E +0xAE75 0xC20F +0xAE76 0xC210 +0xAE77 0xC211 +0xAE78 0xC212 +0xAE79 0xC213 +0xAE7A 0xC214 +0xAE7B 0xC215 +0xAE7C 0xC216 +0xAE7D 0xC217 +0xAE81 0xC218 +0xAE82 0xC219 +0xAE83 0xC21A +0xAE84 0xC21B +0xAE85 0xC21C +0xAE86 0xC21D +0xAE87 0xC21E +0xAE88 0xC21F +0xAE89 0xC220 +0xAE8A 0xC221 +0xAE8B 0xC222 +0xAE8C 0xC223 +0xAE8D 0xC224 +0xAE8E 0xC225 +0xAE8F 0xC226 +0xAE90 0xC227 +0xAE91 0xC228 +0xAE93 0xC229 +0xAE94 0xC22A +0xAE95 0xC22B +0xAE96 0xC22C +0xAE97 0xC22D +0xAE98 0xC22E +0xAE99 0xC22F +0xAE9A 0xC230 +0xAE9B 0xC231 +0xAE9C 0xC232 +0xAE9D 0xC233 +0xAEA1 0xC234 +0xAEA2 0xC235 +0xAEA3 0xC236 +0xAEA4 0xC237 +0xAEA5 0xC238 +0xAEA6 0xC239 +0xAEA7 0xC23A +0xAEA8 0xC23B +0xAEA9 0xC23C +0xAEAA 0xC23D +0xAEAB 0xC23E +0xAEAC 0xC23F +0xAEAD 0xC240 +0xAEAE 0xC241 +0xAEAF 0xC242 +0xAEB0 0xC243 +0xAEB1 0xC244 +0xAEB3 0xC245 +0xAEB4 0xC246 +0xAEB5 0xC247 +0xAEB6 0xC248 +0xAEB7 0xC249 +0xAEB8 0xC24A +0xAEB9 0xC24B +0xAEBA 0xC24C +0xAEBB 0xC24D +0xAEBC 0xC24E +0xAEBD 0xC24F +0xAEC1 0xC250 +0xAEC2 0xC251 +0xAEC3 0xC252 +0xAEC4 0xC253 +0xAEC5 0xC254 +0xAEC6 0xC255 +0xAEC7 0xC256 +0xAEC8 0xC257 +0xAEC9 0xC258 +0xAECA 0xC259 +0xAECB 0xC25A +0xAECC 0xC25B +0xAECD 0xC25C +0xAECE 0xC25D +0xAECF 0xC25E +0xAED0 0xC25F +0xAED1 0xC260 +0xAED3 0xC261 +0xAED4 0xC262 +0xAED5 0xC263 +0xAED6 0xC264 +0xAED7 0xC265 +0xAED8 0xC266 +0xAED9 0xC267 +0xAEDA 0xC268 +0xAEDB 0xC269 +0xAEDC 0xC26A +0xAEDD 0xC26B +0xAEE1 0xC26C +0xAEE2 0xC26D +0xAEE3 0xC26E +0xAEE4 0xC26F +0xAEE5 0xC270 +0xAEE6 0xC271 +0xAEE7 0xC272 +0xAEE8 0xC273 +0xAEE9 0xC274 +0xAEEA 0xC275 +0xAEEB 0xC276 +0xAEEC 0xC277 +0xAEED 0xC278 +0xAEEE 0xC279 +0xAEEF 0xC27A +0xAEF0 0xC27B +0xAEF1 0xC27C +0xAEF3 0xC27D +0xAEF4 0xC27E +0xAEF5 0xC27F +0xAEF6 0xC280 +0xAEF7 0xC281 +0xAEF8 0xC282 +0xAEF9 0xC283 +0xAEFA 0xC284 +0xAEFB 0xC285 +0xAEFC 0xC286 +0xAEFD 0xC287 +0xAF41 0xC288 +0xAF42 0xC289 +0xAF43 0xC28A +0xAF44 0xC28B +0xAF45 0xC28C +0xAF46 0xC28D +0xAF47 0xC28E +0xAF48 0xC28F +0xAF49 0xC290 +0xAF4A 0xC291 +0xAF4B 0xC292 +0xAF4C 0xC293 +0xAF4D 0xC294 +0xAF4E 0xC295 +0xAF4F 0xC296 +0xAF50 0xC297 +0xAF51 0xC298 +0xAF53 0xC299 +0xAF54 0xC29A +0xAF55 0xC29B +0xAF56 0xC29C +0xAF57 0xC29D +0xAF58 0xC29E +0xAF59 0xC29F +0xAF5A 0xC2A0 +0xAF5B 0xC2A1 +0xAF5C 0xC2A2 +0xAF5D 0xC2A3 +0xAF61 0xC2A4 +0xAF62 0xC2A5 +0xAF63 0xC2A6 +0xAF64 0xC2A7 +0xAF65 0xC2A8 +0xAF66 0xC2A9 +0xAF67 0xC2AA +0xAF68 0xC2AB +0xAF69 0xC2AC +0xAF6A 0xC2AD +0xAF6B 0xC2AE +0xAF6C 0xC2AF +0xAF6D 0xC2B0 +0xAF6E 0xC2B1 +0xAF6F 0xC2B2 +0xAF70 0xC2B3 +0xAF71 0xC2B4 +0xAF73 0xC2B5 +0xAF74 0xC2B6 +0xAF75 0xC2B7 +0xAF76 0xC2B8 +0xAF77 0xC2B9 +0xAF78 0xC2BA +0xAF79 0xC2BB +0xAF7A 0xC2BC +0xAF7B 0xC2BD +0xAF7C 0xC2BE +0xAF7D 0xC2BF +0xAF81 0xC2C0 +0xAF82 0xC2C1 +0xAF83 0xC2C2 +0xAF84 0xC2C3 +0xAF85 0xC2C4 +0xAF86 0xC2C5 +0xAF87 0xC2C6 +0xAF88 0xC2C7 +0xAF89 0xC2C8 +0xAF8A 0xC2C9 +0xAF8B 0xC2CA +0xAF8C 0xC2CB +0xAF8D 0xC2CC +0xAF8E 0xC2CD +0xAF8F 0xC2CE +0xAF90 0xC2CF +0xAF91 0xC2D0 +0xAF93 0xC2D1 +0xAF94 0xC2D2 +0xAF95 0xC2D3 +0xAF96 0xC2D4 +0xAF97 0xC2D5 +0xAF98 0xC2D6 +0xAF99 0xC2D7 +0xAF9A 0xC2D8 +0xAF9B 0xC2D9 +0xAF9C 0xC2DA +0xAF9D 0xC2DB +0xAFA1 0xC2DC +0xAFA2 0xC2DD +0xAFA3 0xC2DE +0xAFA4 0xC2DF +0xAFA5 0xC2E0 +0xAFA6 0xC2E1 +0xAFA7 0xC2E2 +0xAFA8 0xC2E3 +0xAFA9 0xC2E4 +0xAFAA 0xC2E5 +0xAFAB 0xC2E6 +0xAFAC 0xC2E7 +0xAFAD 0xC2E8 +0xAFAE 0xC2E9 +0xAFAF 0xC2EA +0xAFB0 0xC2EB +0xAFB1 0xC2EC +0xAFB3 0xC2ED +0xAFB4 0xC2EE +0xAFB5 0xC2EF +0xAFB6 0xC2F0 +0xAFB7 0xC2F1 +0xAFB8 0xC2F2 +0xAFB9 0xC2F3 +0xAFBA 0xC2F4 +0xAFBB 0xC2F5 +0xAFBC 0xC2F6 +0xAFBD 0xC2F7 +0xB041 0x3146 +0xB061 0xC2F8 +0xB062 0xC2F9 +0xB063 0xC2FA +0xB064 0xC2FB +0xB065 0xC2FC +0xB066 0xC2FD +0xB067 0xC2FE +0xB068 0xC2FF +0xB069 0xC300 +0xB06A 0xC301 +0xB06B 0xC302 +0xB06C 0xC303 +0xB06D 0xC304 +0xB06E 0xC305 +0xB06F 0xC306 +0xB070 0xC307 +0xB071 0xC308 +0xB073 0xC309 +0xB074 0xC30A +0xB075 0xC30B +0xB076 0xC30C +0xB077 0xC30D +0xB078 0xC30E +0xB079 0xC30F +0xB07A 0xC310 +0xB07B 0xC311 +0xB07C 0xC312 +0xB07D 0xC313 +0xB081 0xC314 +0xB082 0xC315 +0xB083 0xC316 +0xB084 0xC317 +0xB085 0xC318 +0xB086 0xC319 +0xB087 0xC31A +0xB088 0xC31B +0xB089 0xC31C +0xB08A 0xC31D +0xB08B 0xC31E +0xB08C 0xC31F +0xB08D 0xC320 +0xB08E 0xC321 +0xB08F 0xC322 +0xB090 0xC323 +0xB091 0xC324 +0xB093 0xC325 +0xB094 0xC326 +0xB095 0xC327 +0xB096 0xC328 +0xB097 0xC329 +0xB098 0xC32A +0xB099 0xC32B +0xB09A 0xC32C +0xB09B 0xC32D +0xB09C 0xC32E +0xB09D 0xC32F +0xB0A1 0xC330 +0xB0A2 0xC331 +0xB0A3 0xC332 +0xB0A4 0xC333 +0xB0A5 0xC334 +0xB0A6 0xC335 +0xB0A7 0xC336 +0xB0A8 0xC337 +0xB0A9 0xC338 +0xB0AA 0xC339 +0xB0AB 0xC33A +0xB0AC 0xC33B +0xB0AD 0xC33C +0xB0AE 0xC33D +0xB0AF 0xC33E +0xB0B0 0xC33F +0xB0B1 0xC340 +0xB0B3 0xC341 +0xB0B4 0xC342 +0xB0B5 0xC343 +0xB0B6 0xC344 +0xB0B7 0xC345 +0xB0B8 0xC346 +0xB0B9 0xC347 +0xB0BA 0xC348 +0xB0BB 0xC349 +0xB0BC 0xC34A +0xB0BD 0xC34B +0xB0C1 0xC34C +0xB0C2 0xC34D +0xB0C3 0xC34E +0xB0C4 0xC34F +0xB0C5 0xC350 +0xB0C6 0xC351 +0xB0C7 0xC352 +0xB0C8 0xC353 +0xB0C9 0xC354 +0xB0CA 0xC355 +0xB0CB 0xC356 +0xB0CC 0xC357 +0xB0CD 0xC358 +0xB0CE 0xC359 +0xB0CF 0xC35A +0xB0D0 0xC35B +0xB0D1 0xC35C +0xB0D3 0xC35D +0xB0D4 0xC35E +0xB0D5 0xC35F +0xB0D6 0xC360 +0xB0D7 0xC361 +0xB0D8 0xC362 +0xB0D9 0xC363 +0xB0DA 0xC364 +0xB0DB 0xC365 +0xB0DC 0xC366 +0xB0DD 0xC367 +0xB0E1 0xC368 +0xB0E2 0xC369 +0xB0E3 0xC36A +0xB0E4 0xC36B +0xB0E5 0xC36C +0xB0E6 0xC36D +0xB0E7 0xC36E +0xB0E8 0xC36F +0xB0E9 0xC370 +0xB0EA 0xC371 +0xB0EB 0xC372 +0xB0EC 0xC373 +0xB0ED 0xC374 +0xB0EE 0xC375 +0xB0EF 0xC376 +0xB0F0 0xC377 +0xB0F1 0xC378 +0xB0F3 0xC379 +0xB0F4 0xC37A +0xB0F5 0xC37B +0xB0F6 0xC37C +0xB0F7 0xC37D +0xB0F8 0xC37E +0xB0F9 0xC37F +0xB0FA 0xC380 +0xB0FB 0xC381 +0xB0FC 0xC382 +0xB0FD 0xC383 +0xB141 0xC384 +0xB142 0xC385 +0xB143 0xC386 +0xB144 0xC387 +0xB145 0xC388 +0xB146 0xC389 +0xB147 0xC38A +0xB148 0xC38B +0xB149 0xC38C +0xB14A 0xC38D +0xB14B 0xC38E +0xB14C 0xC38F +0xB14D 0xC390 +0xB14E 0xC391 +0xB14F 0xC392 +0xB150 0xC393 +0xB151 0xC394 +0xB153 0xC395 +0xB154 0xC396 +0xB155 0xC397 +0xB156 0xC398 +0xB157 0xC399 +0xB158 0xC39A +0xB159 0xC39B +0xB15A 0xC39C +0xB15B 0xC39D +0xB15C 0xC39E +0xB15D 0xC39F +0xB161 0xC3A0 +0xB162 0xC3A1 +0xB163 0xC3A2 +0xB164 0xC3A3 +0xB165 0xC3A4 +0xB166 0xC3A5 +0xB167 0xC3A6 +0xB168 0xC3A7 +0xB169 0xC3A8 +0xB16A 0xC3A9 +0xB16B 0xC3AA +0xB16C 0xC3AB +0xB16D 0xC3AC +0xB16E 0xC3AD +0xB16F 0xC3AE +0xB170 0xC3AF +0xB171 0xC3B0 +0xB173 0xC3B1 +0xB174 0xC3B2 +0xB175 0xC3B3 +0xB176 0xC3B4 +0xB177 0xC3B5 +0xB178 0xC3B6 +0xB179 0xC3B7 +0xB17A 0xC3B8 +0xB17B 0xC3B9 +0xB17C 0xC3BA +0xB17D 0xC3BB +0xB181 0xC3BC +0xB182 0xC3BD +0xB183 0xC3BE +0xB184 0xC3BF +0xB185 0xC3C0 +0xB186 0xC3C1 +0xB187 0xC3C2 +0xB188 0xC3C3 +0xB189 0xC3C4 +0xB18A 0xC3C5 +0xB18B 0xC3C6 +0xB18C 0xC3C7 +0xB18D 0xC3C8 +0xB18E 0xC3C9 +0xB18F 0xC3CA +0xB190 0xC3CB +0xB191 0xC3CC +0xB193 0xC3CD +0xB194 0xC3CE +0xB195 0xC3CF +0xB196 0xC3D0 +0xB197 0xC3D1 +0xB198 0xC3D2 +0xB199 0xC3D3 +0xB19A 0xC3D4 +0xB19B 0xC3D5 +0xB19C 0xC3D6 +0xB19D 0xC3D7 +0xB1A1 0xC3D8 +0xB1A2 0xC3D9 +0xB1A3 0xC3DA +0xB1A4 0xC3DB +0xB1A5 0xC3DC +0xB1A6 0xC3DD +0xB1A7 0xC3DE +0xB1A8 0xC3DF +0xB1A9 0xC3E0 +0xB1AA 0xC3E1 +0xB1AB 0xC3E2 +0xB1AC 0xC3E3 +0xB1AD 0xC3E4 +0xB1AE 0xC3E5 +0xB1AF 0xC3E6 +0xB1B0 0xC3E7 +0xB1B1 0xC3E8 +0xB1B3 0xC3E9 +0xB1B4 0xC3EA +0xB1B5 0xC3EB +0xB1B6 0xC3EC +0xB1B7 0xC3ED +0xB1B8 0xC3EE +0xB1B9 0xC3EF +0xB1BA 0xC3F0 +0xB1BB 0xC3F1 +0xB1BC 0xC3F2 +0xB1BD 0xC3F3 +0xB1C1 0xC3F4 +0xB1C2 0xC3F5 +0xB1C3 0xC3F6 +0xB1C4 0xC3F7 +0xB1C5 0xC3F8 +0xB1C6 0xC3F9 +0xB1C7 0xC3FA +0xB1C8 0xC3FB +0xB1C9 0xC3FC +0xB1CA 0xC3FD +0xB1CB 0xC3FE +0xB1CC 0xC3FF +0xB1CD 0xC400 +0xB1CE 0xC401 +0xB1CF 0xC402 +0xB1D0 0xC403 +0xB1D1 0xC404 +0xB1D3 0xC405 +0xB1D4 0xC406 +0xB1D5 0xC407 +0xB1D6 0xC408 +0xB1D7 0xC409 +0xB1D8 0xC40A +0xB1D9 0xC40B +0xB1DA 0xC40C +0xB1DB 0xC40D +0xB1DC 0xC40E +0xB1DD 0xC40F +0xB1E1 0xC410 +0xB1E2 0xC411 +0xB1E3 0xC412 +0xB1E4 0xC413 +0xB1E5 0xC414 +0xB1E6 0xC415 +0xB1E7 0xC416 +0xB1E8 0xC417 +0xB1E9 0xC418 +0xB1EA 0xC419 +0xB1EB 0xC41A +0xB1EC 0xC41B +0xB1ED 0xC41C +0xB1EE 0xC41D +0xB1EF 0xC41E +0xB1F0 0xC41F +0xB1F1 0xC420 +0xB1F3 0xC421 +0xB1F4 0xC422 +0xB1F5 0xC423 +0xB1F6 0xC424 +0xB1F7 0xC425 +0xB1F8 0xC426 +0xB1F9 0xC427 +0xB1FA 0xC428 +0xB1FB 0xC429 +0xB1FC 0xC42A +0xB1FD 0xC42B +0xB241 0xC42C +0xB242 0xC42D +0xB243 0xC42E +0xB244 0xC42F +0xB245 0xC430 +0xB246 0xC431 +0xB247 0xC432 +0xB248 0xC433 +0xB249 0xC434 +0xB24A 0xC435 +0xB24B 0xC436 +0xB24C 0xC437 +0xB24D 0xC438 +0xB24E 0xC439 +0xB24F 0xC43A +0xB250 0xC43B +0xB251 0xC43C +0xB253 0xC43D +0xB254 0xC43E +0xB255 0xC43F +0xB256 0xC440 +0xB257 0xC441 +0xB258 0xC442 +0xB259 0xC443 +0xB25A 0xC444 +0xB25B 0xC445 +0xB25C 0xC446 +0xB25D 0xC447 +0xB261 0xC448 +0xB262 0xC449 +0xB263 0xC44A +0xB264 0xC44B +0xB265 0xC44C +0xB266 0xC44D +0xB267 0xC44E +0xB268 0xC44F +0xB269 0xC450 +0xB26A 0xC451 +0xB26B 0xC452 +0xB26C 0xC453 +0xB26D 0xC454 +0xB26E 0xC455 +0xB26F 0xC456 +0xB270 0xC457 +0xB271 0xC458 +0xB273 0xC459 +0xB274 0xC45A +0xB275 0xC45B +0xB276 0xC45C +0xB277 0xC45D +0xB278 0xC45E +0xB279 0xC45F +0xB27A 0xC460 +0xB27B 0xC461 +0xB27C 0xC462 +0xB27D 0xC463 +0xB281 0xC464 +0xB282 0xC465 +0xB283 0xC466 +0xB284 0xC467 +0xB285 0xC468 +0xB286 0xC469 +0xB287 0xC46A +0xB288 0xC46B +0xB289 0xC46C +0xB28A 0xC46D +0xB28B 0xC46E +0xB28C 0xC46F +0xB28D 0xC470 +0xB28E 0xC471 +0xB28F 0xC472 +0xB290 0xC473 +0xB291 0xC474 +0xB293 0xC475 +0xB294 0xC476 +0xB295 0xC477 +0xB296 0xC478 +0xB297 0xC479 +0xB298 0xC47A +0xB299 0xC47B +0xB29A 0xC47C +0xB29B 0xC47D +0xB29C 0xC47E +0xB29D 0xC47F +0xB2A1 0xC480 +0xB2A2 0xC481 +0xB2A3 0xC482 +0xB2A4 0xC483 +0xB2A5 0xC484 +0xB2A6 0xC485 +0xB2A7 0xC486 +0xB2A8 0xC487 +0xB2A9 0xC488 +0xB2AA 0xC489 +0xB2AB 0xC48A +0xB2AC 0xC48B +0xB2AD 0xC48C +0xB2AE 0xC48D +0xB2AF 0xC48E +0xB2B0 0xC48F +0xB2B1 0xC490 +0xB2B3 0xC491 +0xB2B4 0xC492 +0xB2B5 0xC493 +0xB2B6 0xC494 +0xB2B7 0xC495 +0xB2B8 0xC496 +0xB2B9 0xC497 +0xB2BA 0xC498 +0xB2BB 0xC499 +0xB2BC 0xC49A +0xB2BD 0xC49B +0xB2C1 0xC49C +0xB2C2 0xC49D +0xB2C3 0xC49E +0xB2C4 0xC49F +0xB2C5 0xC4A0 +0xB2C6 0xC4A1 +0xB2C7 0xC4A2 +0xB2C8 0xC4A3 +0xB2C9 0xC4A4 +0xB2CA 0xC4A5 +0xB2CB 0xC4A6 +0xB2CC 0xC4A7 +0xB2CD 0xC4A8 +0xB2CE 0xC4A9 +0xB2CF 0xC4AA +0xB2D0 0xC4AB +0xB2D1 0xC4AC +0xB2D3 0xC4AD +0xB2D4 0xC4AE +0xB2D5 0xC4AF +0xB2D6 0xC4B0 +0xB2D7 0xC4B1 +0xB2D8 0xC4B2 +0xB2D9 0xC4B3 +0xB2DA 0xC4B4 +0xB2DB 0xC4B5 +0xB2DC 0xC4B6 +0xB2DD 0xC4B7 +0xB2E1 0xC4B8 +0xB2E2 0xC4B9 +0xB2E3 0xC4BA +0xB2E4 0xC4BB +0xB2E5 0xC4BC +0xB2E6 0xC4BD +0xB2E7 0xC4BE +0xB2E8 0xC4BF +0xB2E9 0xC4C0 +0xB2EA 0xC4C1 +0xB2EB 0xC4C2 +0xB2EC 0xC4C3 +0xB2ED 0xC4C4 +0xB2EE 0xC4C5 +0xB2EF 0xC4C6 +0xB2F0 0xC4C7 +0xB2F1 0xC4C8 +0xB2F3 0xC4C9 +0xB2F4 0xC4CA +0xB2F5 0xC4CB +0xB2F6 0xC4CC +0xB2F7 0xC4CD +0xB2F8 0xC4CE +0xB2F9 0xC4CF +0xB2FA 0xC4D0 +0xB2FB 0xC4D1 +0xB2FC 0xC4D2 +0xB2FD 0xC4D3 +0xB341 0xC4D4 +0xB342 0xC4D5 +0xB343 0xC4D6 +0xB344 0xC4D7 +0xB345 0xC4D8 +0xB346 0xC4D9 +0xB347 0xC4DA +0xB348 0xC4DB +0xB349 0xC4DC +0xB34A 0xC4DD +0xB34B 0xC4DE +0xB34C 0xC4DF +0xB34D 0xC4E0 +0xB34E 0xC4E1 +0xB34F 0xC4E2 +0xB350 0xC4E3 +0xB351 0xC4E4 +0xB353 0xC4E5 +0xB354 0xC4E6 +0xB355 0xC4E7 +0xB356 0xC4E8 +0xB357 0xC4E9 +0xB358 0xC4EA +0xB359 0xC4EB +0xB35A 0xC4EC +0xB35B 0xC4ED +0xB35C 0xC4EE +0xB35D 0xC4EF +0xB361 0xC4F0 +0xB362 0xC4F1 +0xB363 0xC4F2 +0xB364 0xC4F3 +0xB365 0xC4F4 +0xB366 0xC4F5 +0xB367 0xC4F6 +0xB368 0xC4F7 +0xB369 0xC4F8 +0xB36A 0xC4F9 +0xB36B 0xC4FA +0xB36C 0xC4FB +0xB36D 0xC4FC +0xB36E 0xC4FD +0xB36F 0xC4FE +0xB370 0xC4FF +0xB371 0xC500 +0xB373 0xC501 +0xB374 0xC502 +0xB375 0xC503 +0xB376 0xC504 +0xB377 0xC505 +0xB378 0xC506 +0xB379 0xC507 +0xB37A 0xC508 +0xB37B 0xC509 +0xB37C 0xC50A +0xB37D 0xC50B +0xB381 0xC50C +0xB382 0xC50D +0xB383 0xC50E +0xB384 0xC50F +0xB385 0xC510 +0xB386 0xC511 +0xB387 0xC512 +0xB388 0xC513 +0xB389 0xC514 +0xB38A 0xC515 +0xB38B 0xC516 +0xB38C 0xC517 +0xB38D 0xC518 +0xB38E 0xC519 +0xB38F 0xC51A +0xB390 0xC51B +0xB391 0xC51C +0xB393 0xC51D +0xB394 0xC51E +0xB395 0xC51F +0xB396 0xC520 +0xB397 0xC521 +0xB398 0xC522 +0xB399 0xC523 +0xB39A 0xC524 +0xB39B 0xC525 +0xB39C 0xC526 +0xB39D 0xC527 +0xB3A1 0xC528 +0xB3A2 0xC529 +0xB3A3 0xC52A +0xB3A4 0xC52B +0xB3A5 0xC52C +0xB3A6 0xC52D +0xB3A7 0xC52E +0xB3A8 0xC52F +0xB3A9 0xC530 +0xB3AA 0xC531 +0xB3AB 0xC532 +0xB3AC 0xC533 +0xB3AD 0xC534 +0xB3AE 0xC535 +0xB3AF 0xC536 +0xB3B0 0xC537 +0xB3B1 0xC538 +0xB3B3 0xC539 +0xB3B4 0xC53A +0xB3B5 0xC53B +0xB3B6 0xC53C +0xB3B7 0xC53D +0xB3B8 0xC53E +0xB3B9 0xC53F +0xB3BA 0xC540 +0xB3BB 0xC541 +0xB3BC 0xC542 +0xB3BD 0xC543 +0xB441 0x3147 +0xB461 0xC544 +0xB462 0xC545 +0xB463 0xC546 +0xB464 0xC547 +0xB465 0xC548 +0xB466 0xC549 +0xB467 0xC54A +0xB468 0xC54B +0xB469 0xC54C +0xB46A 0xC54D +0xB46B 0xC54E +0xB46C 0xC54F +0xB46D 0xC550 +0xB46E 0xC551 +0xB46F 0xC552 +0xB470 0xC553 +0xB471 0xC554 +0xB473 0xC555 +0xB474 0xC556 +0xB475 0xC557 +0xB476 0xC558 +0xB477 0xC559 +0xB478 0xC55A +0xB479 0xC55B +0xB47A 0xC55C +0xB47B 0xC55D +0xB47C 0xC55E +0xB47D 0xC55F +0xB481 0xC560 +0xB482 0xC561 +0xB483 0xC562 +0xB484 0xC563 +0xB485 0xC564 +0xB486 0xC565 +0xB487 0xC566 +0xB488 0xC567 +0xB489 0xC568 +0xB48A 0xC569 +0xB48B 0xC56A +0xB48C 0xC56B +0xB48D 0xC56C +0xB48E 0xC56D +0xB48F 0xC56E +0xB490 0xC56F +0xB491 0xC570 +0xB493 0xC571 +0xB494 0xC572 +0xB495 0xC573 +0xB496 0xC574 +0xB497 0xC575 +0xB498 0xC576 +0xB499 0xC577 +0xB49A 0xC578 +0xB49B 0xC579 +0xB49C 0xC57A +0xB49D 0xC57B +0xB4A1 0xC57C +0xB4A2 0xC57D +0xB4A3 0xC57E +0xB4A4 0xC57F +0xB4A5 0xC580 +0xB4A6 0xC581 +0xB4A7 0xC582 +0xB4A8 0xC583 +0xB4A9 0xC584 +0xB4AA 0xC585 +0xB4AB 0xC586 +0xB4AC 0xC587 +0xB4AD 0xC588 +0xB4AE 0xC589 +0xB4AF 0xC58A +0xB4B0 0xC58B +0xB4B1 0xC58C +0xB4B3 0xC58D +0xB4B4 0xC58E +0xB4B5 0xC58F +0xB4B6 0xC590 +0xB4B7 0xC591 +0xB4B8 0xC592 +0xB4B9 0xC593 +0xB4BA 0xC594 +0xB4BB 0xC595 +0xB4BC 0xC596 +0xB4BD 0xC597 +0xB4C1 0xC598 +0xB4C2 0xC599 +0xB4C3 0xC59A +0xB4C4 0xC59B +0xB4C5 0xC59C +0xB4C6 0xC59D +0xB4C7 0xC59E +0xB4C8 0xC59F +0xB4C9 0xC5A0 +0xB4CA 0xC5A1 +0xB4CB 0xC5A2 +0xB4CC 0xC5A3 +0xB4CD 0xC5A4 +0xB4CE 0xC5A5 +0xB4CF 0xC5A6 +0xB4D0 0xC5A7 +0xB4D1 0xC5A8 +0xB4D3 0xC5A9 +0xB4D4 0xC5AA +0xB4D5 0xC5AB +0xB4D6 0xC5AC +0xB4D7 0xC5AD +0xB4D8 0xC5AE +0xB4D9 0xC5AF +0xB4DA 0xC5B0 +0xB4DB 0xC5B1 +0xB4DC 0xC5B2 +0xB4DD 0xC5B3 +0xB4E1 0xC5B4 +0xB4E2 0xC5B5 +0xB4E3 0xC5B6 +0xB4E4 0xC5B7 +0xB4E5 0xC5B8 +0xB4E6 0xC5B9 +0xB4E7 0xC5BA +0xB4E8 0xC5BB +0xB4E9 0xC5BC +0xB4EA 0xC5BD +0xB4EB 0xC5BE +0xB4EC 0xC5BF +0xB4ED 0xC5C0 +0xB4EE 0xC5C1 +0xB4EF 0xC5C2 +0xB4F0 0xC5C3 +0xB4F1 0xC5C4 +0xB4F3 0xC5C5 +0xB4F4 0xC5C6 +0xB4F5 0xC5C7 +0xB4F6 0xC5C8 +0xB4F7 0xC5C9 +0xB4F8 0xC5CA +0xB4F9 0xC5CB +0xB4FA 0xC5CC +0xB4FB 0xC5CD +0xB4FC 0xC5CE +0xB4FD 0xC5CF +0xB541 0xC5D0 +0xB542 0xC5D1 +0xB543 0xC5D2 +0xB544 0xC5D3 +0xB545 0xC5D4 +0xB546 0xC5D5 +0xB547 0xC5D6 +0xB548 0xC5D7 +0xB549 0xC5D8 +0xB54A 0xC5D9 +0xB54B 0xC5DA +0xB54C 0xC5DB +0xB54D 0xC5DC +0xB54E 0xC5DD +0xB54F 0xC5DE +0xB550 0xC5DF +0xB551 0xC5E0 +0xB553 0xC5E1 +0xB554 0xC5E2 +0xB555 0xC5E3 +0xB556 0xC5E4 +0xB557 0xC5E5 +0xB558 0xC5E6 +0xB559 0xC5E7 +0xB55A 0xC5E8 +0xB55B 0xC5E9 +0xB55C 0xC5EA +0xB55D 0xC5EB +0xB561 0xC5EC +0xB562 0xC5ED +0xB563 0xC5EE +0xB564 0xC5EF +0xB565 0xC5F0 +0xB566 0xC5F1 +0xB567 0xC5F2 +0xB568 0xC5F3 +0xB569 0xC5F4 +0xB56A 0xC5F5 +0xB56B 0xC5F6 +0xB56C 0xC5F7 +0xB56D 0xC5F8 +0xB56E 0xC5F9 +0xB56F 0xC5FA +0xB570 0xC5FB +0xB571 0xC5FC +0xB573 0xC5FD +0xB574 0xC5FE +0xB575 0xC5FF +0xB576 0xC600 +0xB577 0xC601 +0xB578 0xC602 +0xB579 0xC603 +0xB57A 0xC604 +0xB57B 0xC605 +0xB57C 0xC606 +0xB57D 0xC607 +0xB581 0xC608 +0xB582 0xC609 +0xB583 0xC60A +0xB584 0xC60B +0xB585 0xC60C +0xB586 0xC60D +0xB587 0xC60E +0xB588 0xC60F +0xB589 0xC610 +0xB58A 0xC611 +0xB58B 0xC612 +0xB58C 0xC613 +0xB58D 0xC614 +0xB58E 0xC615 +0xB58F 0xC616 +0xB590 0xC617 +0xB591 0xC618 +0xB593 0xC619 +0xB594 0xC61A +0xB595 0xC61B +0xB596 0xC61C +0xB597 0xC61D +0xB598 0xC61E +0xB599 0xC61F +0xB59A 0xC620 +0xB59B 0xC621 +0xB59C 0xC622 +0xB59D 0xC623 +0xB5A1 0xC624 +0xB5A2 0xC625 +0xB5A3 0xC626 +0xB5A4 0xC627 +0xB5A5 0xC628 +0xB5A6 0xC629 +0xB5A7 0xC62A +0xB5A8 0xC62B +0xB5A9 0xC62C +0xB5AA 0xC62D +0xB5AB 0xC62E +0xB5AC 0xC62F +0xB5AD 0xC630 +0xB5AE 0xC631 +0xB5AF 0xC632 +0xB5B0 0xC633 +0xB5B1 0xC634 +0xB5B3 0xC635 +0xB5B4 0xC636 +0xB5B5 0xC637 +0xB5B6 0xC638 +0xB5B7 0xC639 +0xB5B8 0xC63A +0xB5B9 0xC63B +0xB5BA 0xC63C +0xB5BB 0xC63D +0xB5BC 0xC63E +0xB5BD 0xC63F +0xB5C1 0xC640 +0xB5C2 0xC641 +0xB5C3 0xC642 +0xB5C4 0xC643 +0xB5C5 0xC644 +0xB5C6 0xC645 +0xB5C7 0xC646 +0xB5C8 0xC647 +0xB5C9 0xC648 +0xB5CA 0xC649 +0xB5CB 0xC64A +0xB5CC 0xC64B +0xB5CD 0xC64C +0xB5CE 0xC64D +0xB5CF 0xC64E +0xB5D0 0xC64F +0xB5D1 0xC650 +0xB5D3 0xC651 +0xB5D4 0xC652 +0xB5D5 0xC653 +0xB5D6 0xC654 +0xB5D7 0xC655 +0xB5D8 0xC656 +0xB5D9 0xC657 +0xB5DA 0xC658 +0xB5DB 0xC659 +0xB5DC 0xC65A +0xB5DD 0xC65B +0xB5E1 0xC65C +0xB5E2 0xC65D +0xB5E3 0xC65E +0xB5E4 0xC65F +0xB5E5 0xC660 +0xB5E6 0xC661 +0xB5E7 0xC662 +0xB5E8 0xC663 +0xB5E9 0xC664 +0xB5EA 0xC665 +0xB5EB 0xC666 +0xB5EC 0xC667 +0xB5ED 0xC668 +0xB5EE 0xC669 +0xB5EF 0xC66A +0xB5F0 0xC66B +0xB5F1 0xC66C +0xB5F3 0xC66D +0xB5F4 0xC66E +0xB5F5 0xC66F +0xB5F6 0xC670 +0xB5F7 0xC671 +0xB5F8 0xC672 +0xB5F9 0xC673 +0xB5FA 0xC674 +0xB5FB 0xC675 +0xB5FC 0xC676 +0xB5FD 0xC677 +0xB641 0xC678 +0xB642 0xC679 +0xB643 0xC67A +0xB644 0xC67B +0xB645 0xC67C +0xB646 0xC67D +0xB647 0xC67E +0xB648 0xC67F +0xB649 0xC680 +0xB64A 0xC681 +0xB64B 0xC682 +0xB64C 0xC683 +0xB64D 0xC684 +0xB64E 0xC685 +0xB64F 0xC686 +0xB650 0xC687 +0xB651 0xC688 +0xB653 0xC689 +0xB654 0xC68A +0xB655 0xC68B +0xB656 0xC68C +0xB657 0xC68D +0xB658 0xC68E +0xB659 0xC68F +0xB65A 0xC690 +0xB65B 0xC691 +0xB65C 0xC692 +0xB65D 0xC693 +0xB661 0xC694 +0xB662 0xC695 +0xB663 0xC696 +0xB664 0xC697 +0xB665 0xC698 +0xB666 0xC699 +0xB667 0xC69A +0xB668 0xC69B +0xB669 0xC69C +0xB66A 0xC69D +0xB66B 0xC69E +0xB66C 0xC69F +0xB66D 0xC6A0 +0xB66E 0xC6A1 +0xB66F 0xC6A2 +0xB670 0xC6A3 +0xB671 0xC6A4 +0xB673 0xC6A5 +0xB674 0xC6A6 +0xB675 0xC6A7 +0xB676 0xC6A8 +0xB677 0xC6A9 +0xB678 0xC6AA +0xB679 0xC6AB +0xB67A 0xC6AC +0xB67B 0xC6AD +0xB67C 0xC6AE +0xB67D 0xC6AF +0xB681 0xC6B0 +0xB682 0xC6B1 +0xB683 0xC6B2 +0xB684 0xC6B3 +0xB685 0xC6B4 +0xB686 0xC6B5 +0xB687 0xC6B6 +0xB688 0xC6B7 +0xB689 0xC6B8 +0xB68A 0xC6B9 +0xB68B 0xC6BA +0xB68C 0xC6BB +0xB68D 0xC6BC +0xB68E 0xC6BD +0xB68F 0xC6BE +0xB690 0xC6BF +0xB691 0xC6C0 +0xB693 0xC6C1 +0xB694 0xC6C2 +0xB695 0xC6C3 +0xB696 0xC6C4 +0xB697 0xC6C5 +0xB698 0xC6C6 +0xB699 0xC6C7 +0xB69A 0xC6C8 +0xB69B 0xC6C9 +0xB69C 0xC6CA +0xB69D 0xC6CB +0xB6A1 0xC6CC +0xB6A2 0xC6CD +0xB6A3 0xC6CE +0xB6A4 0xC6CF +0xB6A5 0xC6D0 +0xB6A6 0xC6D1 +0xB6A7 0xC6D2 +0xB6A8 0xC6D3 +0xB6A9 0xC6D4 +0xB6AA 0xC6D5 +0xB6AB 0xC6D6 +0xB6AC 0xC6D7 +0xB6AD 0xC6D8 +0xB6AE 0xC6D9 +0xB6AF 0xC6DA +0xB6B0 0xC6DB +0xB6B1 0xC6DC +0xB6B3 0xC6DD +0xB6B4 0xC6DE +0xB6B5 0xC6DF +0xB6B6 0xC6E0 +0xB6B7 0xC6E1 +0xB6B8 0xC6E2 +0xB6B9 0xC6E3 +0xB6BA 0xC6E4 +0xB6BB 0xC6E5 +0xB6BC 0xC6E6 +0xB6BD 0xC6E7 +0xB6C1 0xC6E8 +0xB6C2 0xC6E9 +0xB6C3 0xC6EA +0xB6C4 0xC6EB +0xB6C5 0xC6EC +0xB6C6 0xC6ED +0xB6C7 0xC6EE +0xB6C8 0xC6EF +0xB6C9 0xC6F0 +0xB6CA 0xC6F1 +0xB6CB 0xC6F2 +0xB6CC 0xC6F3 +0xB6CD 0xC6F4 +0xB6CE 0xC6F5 +0xB6CF 0xC6F6 +0xB6D0 0xC6F7 +0xB6D1 0xC6F8 +0xB6D3 0xC6F9 +0xB6D4 0xC6FA +0xB6D5 0xC6FB +0xB6D6 0xC6FC +0xB6D7 0xC6FD +0xB6D8 0xC6FE +0xB6D9 0xC6FF +0xB6DA 0xC700 +0xB6DB 0xC701 +0xB6DC 0xC702 +0xB6DD 0xC703 +0xB6E1 0xC704 +0xB6E2 0xC705 +0xB6E3 0xC706 +0xB6E4 0xC707 +0xB6E5 0xC708 +0xB6E6 0xC709 +0xB6E7 0xC70A +0xB6E8 0xC70B +0xB6E9 0xC70C +0xB6EA 0xC70D +0xB6EB 0xC70E +0xB6EC 0xC70F +0xB6ED 0xC710 +0xB6EE 0xC711 +0xB6EF 0xC712 +0xB6F0 0xC713 +0xB6F1 0xC714 +0xB6F3 0xC715 +0xB6F4 0xC716 +0xB6F5 0xC717 +0xB6F6 0xC718 +0xB6F7 0xC719 +0xB6F8 0xC71A +0xB6F9 0xC71B +0xB6FA 0xC71C +0xB6FB 0xC71D +0xB6FC 0xC71E +0xB6FD 0xC71F +0xB741 0xC720 +0xB742 0xC721 +0xB743 0xC722 +0xB744 0xC723 +0xB745 0xC724 +0xB746 0xC725 +0xB747 0xC726 +0xB748 0xC727 +0xB749 0xC728 +0xB74A 0xC729 +0xB74B 0xC72A +0xB74C 0xC72B +0xB74D 0xC72C +0xB74E 0xC72D +0xB74F 0xC72E +0xB750 0xC72F +0xB751 0xC730 +0xB753 0xC731 +0xB754 0xC732 +0xB755 0xC733 +0xB756 0xC734 +0xB757 0xC735 +0xB758 0xC736 +0xB759 0xC737 +0xB75A 0xC738 +0xB75B 0xC739 +0xB75C 0xC73A +0xB75D 0xC73B +0xB761 0xC73C +0xB762 0xC73D +0xB763 0xC73E +0xB764 0xC73F +0xB765 0xC740 +0xB766 0xC741 +0xB767 0xC742 +0xB768 0xC743 +0xB769 0xC744 +0xB76A 0xC745 +0xB76B 0xC746 +0xB76C 0xC747 +0xB76D 0xC748 +0xB76E 0xC749 +0xB76F 0xC74A +0xB770 0xC74B +0xB771 0xC74C +0xB773 0xC74D +0xB774 0xC74E +0xB775 0xC74F +0xB776 0xC750 +0xB777 0xC751 +0xB778 0xC752 +0xB779 0xC753 +0xB77A 0xC754 +0xB77B 0xC755 +0xB77C 0xC756 +0xB77D 0xC757 +0xB781 0xC758 +0xB782 0xC759 +0xB783 0xC75A +0xB784 0xC75B +0xB785 0xC75C +0xB786 0xC75D +0xB787 0xC75E +0xB788 0xC75F +0xB789 0xC760 +0xB78A 0xC761 +0xB78B 0xC762 +0xB78C 0xC763 +0xB78D 0xC764 +0xB78E 0xC765 +0xB78F 0xC766 +0xB790 0xC767 +0xB791 0xC768 +0xB793 0xC769 +0xB794 0xC76A +0xB795 0xC76B +0xB796 0xC76C +0xB797 0xC76D +0xB798 0xC76E +0xB799 0xC76F +0xB79A 0xC770 +0xB79B 0xC771 +0xB79C 0xC772 +0xB79D 0xC773 +0xB7A1 0xC774 +0xB7A2 0xC775 +0xB7A3 0xC776 +0xB7A4 0xC777 +0xB7A5 0xC778 +0xB7A6 0xC779 +0xB7A7 0xC77A +0xB7A8 0xC77B +0xB7A9 0xC77C +0xB7AA 0xC77D +0xB7AB 0xC77E +0xB7AC 0xC77F +0xB7AD 0xC780 +0xB7AE 0xC781 +0xB7AF 0xC782 +0xB7B0 0xC783 +0xB7B1 0xC784 +0xB7B3 0xC785 +0xB7B4 0xC786 +0xB7B5 0xC787 +0xB7B6 0xC788 +0xB7B7 0xC789 +0xB7B8 0xC78A +0xB7B9 0xC78B +0xB7BA 0xC78C +0xB7BB 0xC78D +0xB7BC 0xC78E +0xB7BD 0xC78F +0xB841 0x3148 +0xB861 0xC790 +0xB862 0xC791 +0xB863 0xC792 +0xB864 0xC793 +0xB865 0xC794 +0xB866 0xC795 +0xB867 0xC796 +0xB868 0xC797 +0xB869 0xC798 +0xB86A 0xC799 +0xB86B 0xC79A +0xB86C 0xC79B +0xB86D 0xC79C +0xB86E 0xC79D +0xB86F 0xC79E +0xB870 0xC79F +0xB871 0xC7A0 +0xB873 0xC7A1 +0xB874 0xC7A2 +0xB875 0xC7A3 +0xB876 0xC7A4 +0xB877 0xC7A5 +0xB878 0xC7A6 +0xB879 0xC7A7 +0xB87A 0xC7A8 +0xB87B 0xC7A9 +0xB87C 0xC7AA +0xB87D 0xC7AB +0xB881 0xC7AC +0xB882 0xC7AD +0xB883 0xC7AE +0xB884 0xC7AF +0xB885 0xC7B0 +0xB886 0xC7B1 +0xB887 0xC7B2 +0xB888 0xC7B3 +0xB889 0xC7B4 +0xB88A 0xC7B5 +0xB88B 0xC7B6 +0xB88C 0xC7B7 +0xB88D 0xC7B8 +0xB88E 0xC7B9 +0xB88F 0xC7BA +0xB890 0xC7BB +0xB891 0xC7BC +0xB893 0xC7BD +0xB894 0xC7BE +0xB895 0xC7BF +0xB896 0xC7C0 +0xB897 0xC7C1 +0xB898 0xC7C2 +0xB899 0xC7C3 +0xB89A 0xC7C4 +0xB89B 0xC7C5 +0xB89C 0xC7C6 +0xB89D 0xC7C7 +0xB8A1 0xC7C8 +0xB8A2 0xC7C9 +0xB8A3 0xC7CA +0xB8A4 0xC7CB +0xB8A5 0xC7CC +0xB8A6 0xC7CD +0xB8A7 0xC7CE +0xB8A8 0xC7CF +0xB8A9 0xC7D0 +0xB8AA 0xC7D1 +0xB8AB 0xC7D2 +0xB8AC 0xC7D3 +0xB8AD 0xC7D4 +0xB8AE 0xC7D5 +0xB8AF 0xC7D6 +0xB8B0 0xC7D7 +0xB8B1 0xC7D8 +0xB8B3 0xC7D9 +0xB8B4 0xC7DA +0xB8B5 0xC7DB +0xB8B6 0xC7DC +0xB8B7 0xC7DD +0xB8B8 0xC7DE +0xB8B9 0xC7DF +0xB8BA 0xC7E0 +0xB8BB 0xC7E1 +0xB8BC 0xC7E2 +0xB8BD 0xC7E3 +0xB8C1 0xC7E4 +0xB8C2 0xC7E5 +0xB8C3 0xC7E6 +0xB8C4 0xC7E7 +0xB8C5 0xC7E8 +0xB8C6 0xC7E9 +0xB8C7 0xC7EA +0xB8C8 0xC7EB +0xB8C9 0xC7EC +0xB8CA 0xC7ED +0xB8CB 0xC7EE +0xB8CC 0xC7EF +0xB8CD 0xC7F0 +0xB8CE 0xC7F1 +0xB8CF 0xC7F2 +0xB8D0 0xC7F3 +0xB8D1 0xC7F4 +0xB8D3 0xC7F5 +0xB8D4 0xC7F6 +0xB8D5 0xC7F7 +0xB8D6 0xC7F8 +0xB8D7 0xC7F9 +0xB8D8 0xC7FA +0xB8D9 0xC7FB +0xB8DA 0xC7FC +0xB8DB 0xC7FD +0xB8DC 0xC7FE +0xB8DD 0xC7FF +0xB8E1 0xC800 +0xB8E2 0xC801 +0xB8E3 0xC802 +0xB8E4 0xC803 +0xB8E5 0xC804 +0xB8E6 0xC805 +0xB8E7 0xC806 +0xB8E8 0xC807 +0xB8E9 0xC808 +0xB8EA 0xC809 +0xB8EB 0xC80A +0xB8EC 0xC80B +0xB8ED 0xC80C +0xB8EE 0xC80D +0xB8EF 0xC80E +0xB8F0 0xC80F +0xB8F1 0xC810 +0xB8F3 0xC811 +0xB8F4 0xC812 +0xB8F5 0xC813 +0xB8F6 0xC814 +0xB8F7 0xC815 +0xB8F8 0xC816 +0xB8F9 0xC817 +0xB8FA 0xC818 +0xB8FB 0xC819 +0xB8FC 0xC81A +0xB8FD 0xC81B +0xB941 0xC81C +0xB942 0xC81D +0xB943 0xC81E +0xB944 0xC81F +0xB945 0xC820 +0xB946 0xC821 +0xB947 0xC822 +0xB948 0xC823 +0xB949 0xC824 +0xB94A 0xC825 +0xB94B 0xC826 +0xB94C 0xC827 +0xB94D 0xC828 +0xB94E 0xC829 +0xB94F 0xC82A +0xB950 0xC82B +0xB951 0xC82C +0xB953 0xC82D +0xB954 0xC82E +0xB955 0xC82F +0xB956 0xC830 +0xB957 0xC831 +0xB958 0xC832 +0xB959 0xC833 +0xB95A 0xC834 +0xB95B 0xC835 +0xB95C 0xC836 +0xB95D 0xC837 +0xB961 0xC838 +0xB962 0xC839 +0xB963 0xC83A +0xB964 0xC83B +0xB965 0xC83C +0xB966 0xC83D +0xB967 0xC83E +0xB968 0xC83F +0xB969 0xC840 +0xB96A 0xC841 +0xB96B 0xC842 +0xB96C 0xC843 +0xB96D 0xC844 +0xB96E 0xC845 +0xB96F 0xC846 +0xB970 0xC847 +0xB971 0xC848 +0xB973 0xC849 +0xB974 0xC84A +0xB975 0xC84B +0xB976 0xC84C +0xB977 0xC84D +0xB978 0xC84E +0xB979 0xC84F +0xB97A 0xC850 +0xB97B 0xC851 +0xB97C 0xC852 +0xB97D 0xC853 +0xB981 0xC854 +0xB982 0xC855 +0xB983 0xC856 +0xB984 0xC857 +0xB985 0xC858 +0xB986 0xC859 +0xB987 0xC85A +0xB988 0xC85B +0xB989 0xC85C +0xB98A 0xC85D +0xB98B 0xC85E +0xB98C 0xC85F +0xB98D 0xC860 +0xB98E 0xC861 +0xB98F 0xC862 +0xB990 0xC863 +0xB991 0xC864 +0xB993 0xC865 +0xB994 0xC866 +0xB995 0xC867 +0xB996 0xC868 +0xB997 0xC869 +0xB998 0xC86A +0xB999 0xC86B +0xB99A 0xC86C +0xB99B 0xC86D +0xB99C 0xC86E +0xB99D 0xC86F +0xB9A1 0xC870 +0xB9A2 0xC871 +0xB9A3 0xC872 +0xB9A4 0xC873 +0xB9A5 0xC874 +0xB9A6 0xC875 +0xB9A7 0xC876 +0xB9A8 0xC877 +0xB9A9 0xC878 +0xB9AA 0xC879 +0xB9AB 0xC87A +0xB9AC 0xC87B +0xB9AD 0xC87C +0xB9AE 0xC87D +0xB9AF 0xC87E +0xB9B0 0xC87F +0xB9B1 0xC880 +0xB9B3 0xC881 +0xB9B4 0xC882 +0xB9B5 0xC883 +0xB9B6 0xC884 +0xB9B7 0xC885 +0xB9B8 0xC886 +0xB9B9 0xC887 +0xB9BA 0xC888 +0xB9BB 0xC889 +0xB9BC 0xC88A +0xB9BD 0xC88B +0xB9C1 0xC88C +0xB9C2 0xC88D +0xB9C3 0xC88E +0xB9C4 0xC88F +0xB9C5 0xC890 +0xB9C6 0xC891 +0xB9C7 0xC892 +0xB9C8 0xC893 +0xB9C9 0xC894 +0xB9CA 0xC895 +0xB9CB 0xC896 +0xB9CC 0xC897 +0xB9CD 0xC898 +0xB9CE 0xC899 +0xB9CF 0xC89A +0xB9D0 0xC89B +0xB9D1 0xC89C +0xB9D3 0xC89D +0xB9D4 0xC89E +0xB9D5 0xC89F +0xB9D6 0xC8A0 +0xB9D7 0xC8A1 +0xB9D8 0xC8A2 +0xB9D9 0xC8A3 +0xB9DA 0xC8A4 +0xB9DB 0xC8A5 +0xB9DC 0xC8A6 +0xB9DD 0xC8A7 +0xB9E1 0xC8A8 +0xB9E2 0xC8A9 +0xB9E3 0xC8AA +0xB9E4 0xC8AB +0xB9E5 0xC8AC +0xB9E6 0xC8AD +0xB9E7 0xC8AE +0xB9E8 0xC8AF +0xB9E9 0xC8B0 +0xB9EA 0xC8B1 +0xB9EB 0xC8B2 +0xB9EC 0xC8B3 +0xB9ED 0xC8B4 +0xB9EE 0xC8B5 +0xB9EF 0xC8B6 +0xB9F0 0xC8B7 +0xB9F1 0xC8B8 +0xB9F3 0xC8B9 +0xB9F4 0xC8BA +0xB9F5 0xC8BB +0xB9F6 0xC8BC +0xB9F7 0xC8BD +0xB9F8 0xC8BE +0xB9F9 0xC8BF +0xB9FA 0xC8C0 +0xB9FB 0xC8C1 +0xB9FC 0xC8C2 +0xB9FD 0xC8C3 +0xBA41 0xC8C4 +0xBA42 0xC8C5 +0xBA43 0xC8C6 +0xBA44 0xC8C7 +0xBA45 0xC8C8 +0xBA46 0xC8C9 +0xBA47 0xC8CA +0xBA48 0xC8CB +0xBA49 0xC8CC +0xBA4A 0xC8CD +0xBA4B 0xC8CE +0xBA4C 0xC8CF +0xBA4D 0xC8D0 +0xBA4E 0xC8D1 +0xBA4F 0xC8D2 +0xBA50 0xC8D3 +0xBA51 0xC8D4 +0xBA53 0xC8D5 +0xBA54 0xC8D6 +0xBA55 0xC8D7 +0xBA56 0xC8D8 +0xBA57 0xC8D9 +0xBA58 0xC8DA +0xBA59 0xC8DB +0xBA5A 0xC8DC +0xBA5B 0xC8DD +0xBA5C 0xC8DE +0xBA5D 0xC8DF +0xBA61 0xC8E0 +0xBA62 0xC8E1 +0xBA63 0xC8E2 +0xBA64 0xC8E3 +0xBA65 0xC8E4 +0xBA66 0xC8E5 +0xBA67 0xC8E6 +0xBA68 0xC8E7 +0xBA69 0xC8E8 +0xBA6A 0xC8E9 +0xBA6B 0xC8EA +0xBA6C 0xC8EB +0xBA6D 0xC8EC +0xBA6E 0xC8ED +0xBA6F 0xC8EE +0xBA70 0xC8EF +0xBA71 0xC8F0 +0xBA73 0xC8F1 +0xBA74 0xC8F2 +0xBA75 0xC8F3 +0xBA76 0xC8F4 +0xBA77 0xC8F5 +0xBA78 0xC8F6 +0xBA79 0xC8F7 +0xBA7A 0xC8F8 +0xBA7B 0xC8F9 +0xBA7C 0xC8FA +0xBA7D 0xC8FB +0xBA81 0xC8FC +0xBA82 0xC8FD +0xBA83 0xC8FE +0xBA84 0xC8FF +0xBA85 0xC900 +0xBA86 0xC901 +0xBA87 0xC902 +0xBA88 0xC903 +0xBA89 0xC904 +0xBA8A 0xC905 +0xBA8B 0xC906 +0xBA8C 0xC907 +0xBA8D 0xC908 +0xBA8E 0xC909 +0xBA8F 0xC90A +0xBA90 0xC90B +0xBA91 0xC90C +0xBA93 0xC90D +0xBA94 0xC90E +0xBA95 0xC90F +0xBA96 0xC910 +0xBA97 0xC911 +0xBA98 0xC912 +0xBA99 0xC913 +0xBA9A 0xC914 +0xBA9B 0xC915 +0xBA9C 0xC916 +0xBA9D 0xC917 +0xBAA1 0xC918 +0xBAA2 0xC919 +0xBAA3 0xC91A +0xBAA4 0xC91B +0xBAA5 0xC91C +0xBAA6 0xC91D +0xBAA7 0xC91E +0xBAA8 0xC91F +0xBAA9 0xC920 +0xBAAA 0xC921 +0xBAAB 0xC922 +0xBAAC 0xC923 +0xBAAD 0xC924 +0xBAAE 0xC925 +0xBAAF 0xC926 +0xBAB0 0xC927 +0xBAB1 0xC928 +0xBAB3 0xC929 +0xBAB4 0xC92A +0xBAB5 0xC92B +0xBAB6 0xC92C +0xBAB7 0xC92D +0xBAB8 0xC92E +0xBAB9 0xC92F +0xBABA 0xC930 +0xBABB 0xC931 +0xBABC 0xC932 +0xBABD 0xC933 +0xBAC1 0xC934 +0xBAC2 0xC935 +0xBAC3 0xC936 +0xBAC4 0xC937 +0xBAC5 0xC938 +0xBAC6 0xC939 +0xBAC7 0xC93A +0xBAC8 0xC93B +0xBAC9 0xC93C +0xBACA 0xC93D +0xBACB 0xC93E +0xBACC 0xC93F +0xBACD 0xC940 +0xBACE 0xC941 +0xBACF 0xC942 +0xBAD0 0xC943 +0xBAD1 0xC944 +0xBAD3 0xC945 +0xBAD4 0xC946 +0xBAD5 0xC947 +0xBAD6 0xC948 +0xBAD7 0xC949 +0xBAD8 0xC94A +0xBAD9 0xC94B +0xBADA 0xC94C +0xBADB 0xC94D +0xBADC 0xC94E +0xBADD 0xC94F +0xBAE1 0xC950 +0xBAE2 0xC951 +0xBAE3 0xC952 +0xBAE4 0xC953 +0xBAE5 0xC954 +0xBAE6 0xC955 +0xBAE7 0xC956 +0xBAE8 0xC957 +0xBAE9 0xC958 +0xBAEA 0xC959 +0xBAEB 0xC95A +0xBAEC 0xC95B +0xBAED 0xC95C +0xBAEE 0xC95D +0xBAEF 0xC95E +0xBAF0 0xC95F +0xBAF1 0xC960 +0xBAF3 0xC961 +0xBAF4 0xC962 +0xBAF5 0xC963 +0xBAF6 0xC964 +0xBAF7 0xC965 +0xBAF8 0xC966 +0xBAF9 0xC967 +0xBAFA 0xC968 +0xBAFB 0xC969 +0xBAFC 0xC96A +0xBAFD 0xC96B +0xBB41 0xC96C +0xBB42 0xC96D +0xBB43 0xC96E +0xBB44 0xC96F +0xBB45 0xC970 +0xBB46 0xC971 +0xBB47 0xC972 +0xBB48 0xC973 +0xBB49 0xC974 +0xBB4A 0xC975 +0xBB4B 0xC976 +0xBB4C 0xC977 +0xBB4D 0xC978 +0xBB4E 0xC979 +0xBB4F 0xC97A +0xBB50 0xC97B +0xBB51 0xC97C +0xBB53 0xC97D +0xBB54 0xC97E +0xBB55 0xC97F +0xBB56 0xC980 +0xBB57 0xC981 +0xBB58 0xC982 +0xBB59 0xC983 +0xBB5A 0xC984 +0xBB5B 0xC985 +0xBB5C 0xC986 +0xBB5D 0xC987 +0xBB61 0xC988 +0xBB62 0xC989 +0xBB63 0xC98A +0xBB64 0xC98B +0xBB65 0xC98C +0xBB66 0xC98D +0xBB67 0xC98E +0xBB68 0xC98F +0xBB69 0xC990 +0xBB6A 0xC991 +0xBB6B 0xC992 +0xBB6C 0xC993 +0xBB6D 0xC994 +0xBB6E 0xC995 +0xBB6F 0xC996 +0xBB70 0xC997 +0xBB71 0xC998 +0xBB73 0xC999 +0xBB74 0xC99A +0xBB75 0xC99B +0xBB76 0xC99C +0xBB77 0xC99D +0xBB78 0xC99E +0xBB79 0xC99F +0xBB7A 0xC9A0 +0xBB7B 0xC9A1 +0xBB7C 0xC9A2 +0xBB7D 0xC9A3 +0xBB81 0xC9A4 +0xBB82 0xC9A5 +0xBB83 0xC9A6 +0xBB84 0xC9A7 +0xBB85 0xC9A8 +0xBB86 0xC9A9 +0xBB87 0xC9AA +0xBB88 0xC9AB +0xBB89 0xC9AC +0xBB8A 0xC9AD +0xBB8B 0xC9AE +0xBB8C 0xC9AF +0xBB8D 0xC9B0 +0xBB8E 0xC9B1 +0xBB8F 0xC9B2 +0xBB90 0xC9B3 +0xBB91 0xC9B4 +0xBB93 0xC9B5 +0xBB94 0xC9B6 +0xBB95 0xC9B7 +0xBB96 0xC9B8 +0xBB97 0xC9B9 +0xBB98 0xC9BA +0xBB99 0xC9BB +0xBB9A 0xC9BC +0xBB9B 0xC9BD +0xBB9C 0xC9BE +0xBB9D 0xC9BF +0xBBA1 0xC9C0 +0xBBA2 0xC9C1 +0xBBA3 0xC9C2 +0xBBA4 0xC9C3 +0xBBA5 0xC9C4 +0xBBA6 0xC9C5 +0xBBA7 0xC9C6 +0xBBA8 0xC9C7 +0xBBA9 0xC9C8 +0xBBAA 0xC9C9 +0xBBAB 0xC9CA +0xBBAC 0xC9CB +0xBBAD 0xC9CC +0xBBAE 0xC9CD +0xBBAF 0xC9CE +0xBBB0 0xC9CF +0xBBB1 0xC9D0 +0xBBB3 0xC9D1 +0xBBB4 0xC9D2 +0xBBB5 0xC9D3 +0xBBB6 0xC9D4 +0xBBB7 0xC9D5 +0xBBB8 0xC9D6 +0xBBB9 0xC9D7 +0xBBBA 0xC9D8 +0xBBBB 0xC9D9 +0xBBBC 0xC9DA +0xBBBD 0xC9DB +0xBC41 0x3149 +0xBC61 0xC9DC +0xBC62 0xC9DD +0xBC63 0xC9DE +0xBC64 0xC9DF +0xBC65 0xC9E0 +0xBC66 0xC9E1 +0xBC67 0xC9E2 +0xBC68 0xC9E3 +0xBC69 0xC9E4 +0xBC6A 0xC9E5 +0xBC6B 0xC9E6 +0xBC6C 0xC9E7 +0xBC6D 0xC9E8 +0xBC6E 0xC9E9 +0xBC6F 0xC9EA +0xBC70 0xC9EB +0xBC71 0xC9EC +0xBC73 0xC9ED +0xBC74 0xC9EE +0xBC75 0xC9EF +0xBC76 0xC9F0 +0xBC77 0xC9F1 +0xBC78 0xC9F2 +0xBC79 0xC9F3 +0xBC7A 0xC9F4 +0xBC7B 0xC9F5 +0xBC7C 0xC9F6 +0xBC7D 0xC9F7 +0xBC81 0xC9F8 +0xBC82 0xC9F9 +0xBC83 0xC9FA +0xBC84 0xC9FB +0xBC85 0xC9FC +0xBC86 0xC9FD +0xBC87 0xC9FE +0xBC88 0xC9FF +0xBC89 0xCA00 +0xBC8A 0xCA01 +0xBC8B 0xCA02 +0xBC8C 0xCA03 +0xBC8D 0xCA04 +0xBC8E 0xCA05 +0xBC8F 0xCA06 +0xBC90 0xCA07 +0xBC91 0xCA08 +0xBC93 0xCA09 +0xBC94 0xCA0A +0xBC95 0xCA0B +0xBC96 0xCA0C +0xBC97 0xCA0D +0xBC98 0xCA0E +0xBC99 0xCA0F +0xBC9A 0xCA10 +0xBC9B 0xCA11 +0xBC9C 0xCA12 +0xBC9D 0xCA13 +0xBCA1 0xCA14 +0xBCA2 0xCA15 +0xBCA3 0xCA16 +0xBCA4 0xCA17 +0xBCA5 0xCA18 +0xBCA6 0xCA19 +0xBCA7 0xCA1A +0xBCA8 0xCA1B +0xBCA9 0xCA1C +0xBCAA 0xCA1D +0xBCAB 0xCA1E +0xBCAC 0xCA1F +0xBCAD 0xCA20 +0xBCAE 0xCA21 +0xBCAF 0xCA22 +0xBCB0 0xCA23 +0xBCB1 0xCA24 +0xBCB3 0xCA25 +0xBCB4 0xCA26 +0xBCB5 0xCA27 +0xBCB6 0xCA28 +0xBCB7 0xCA29 +0xBCB8 0xCA2A +0xBCB9 0xCA2B +0xBCBA 0xCA2C +0xBCBB 0xCA2D +0xBCBC 0xCA2E +0xBCBD 0xCA2F +0xBCC1 0xCA30 +0xBCC2 0xCA31 +0xBCC3 0xCA32 +0xBCC4 0xCA33 +0xBCC5 0xCA34 +0xBCC6 0xCA35 +0xBCC7 0xCA36 +0xBCC8 0xCA37 +0xBCC9 0xCA38 +0xBCCA 0xCA39 +0xBCCB 0xCA3A +0xBCCC 0xCA3B +0xBCCD 0xCA3C +0xBCCE 0xCA3D +0xBCCF 0xCA3E +0xBCD0 0xCA3F +0xBCD1 0xCA40 +0xBCD3 0xCA41 +0xBCD4 0xCA42 +0xBCD5 0xCA43 +0xBCD6 0xCA44 +0xBCD7 0xCA45 +0xBCD8 0xCA46 +0xBCD9 0xCA47 +0xBCDA 0xCA48 +0xBCDB 0xCA49 +0xBCDC 0xCA4A +0xBCDD 0xCA4B +0xBCE1 0xCA4C +0xBCE2 0xCA4D +0xBCE3 0xCA4E +0xBCE4 0xCA4F +0xBCE5 0xCA50 +0xBCE6 0xCA51 +0xBCE7 0xCA52 +0xBCE8 0xCA53 +0xBCE9 0xCA54 +0xBCEA 0xCA55 +0xBCEB 0xCA56 +0xBCEC 0xCA57 +0xBCED 0xCA58 +0xBCEE 0xCA59 +0xBCEF 0xCA5A +0xBCF0 0xCA5B +0xBCF1 0xCA5C +0xBCF3 0xCA5D +0xBCF4 0xCA5E +0xBCF5 0xCA5F +0xBCF6 0xCA60 +0xBCF7 0xCA61 +0xBCF8 0xCA62 +0xBCF9 0xCA63 +0xBCFA 0xCA64 +0xBCFB 0xCA65 +0xBCFC 0xCA66 +0xBCFD 0xCA67 +0xBD41 0xCA68 +0xBD42 0xCA69 +0xBD43 0xCA6A +0xBD44 0xCA6B +0xBD45 0xCA6C +0xBD46 0xCA6D +0xBD47 0xCA6E +0xBD48 0xCA6F +0xBD49 0xCA70 +0xBD4A 0xCA71 +0xBD4B 0xCA72 +0xBD4C 0xCA73 +0xBD4D 0xCA74 +0xBD4E 0xCA75 +0xBD4F 0xCA76 +0xBD50 0xCA77 +0xBD51 0xCA78 +0xBD53 0xCA79 +0xBD54 0xCA7A +0xBD55 0xCA7B +0xBD56 0xCA7C +0xBD57 0xCA7D +0xBD58 0xCA7E +0xBD59 0xCA7F +0xBD5A 0xCA80 +0xBD5B 0xCA81 +0xBD5C 0xCA82 +0xBD5D 0xCA83 +0xBD61 0xCA84 +0xBD62 0xCA85 +0xBD63 0xCA86 +0xBD64 0xCA87 +0xBD65 0xCA88 +0xBD66 0xCA89 +0xBD67 0xCA8A +0xBD68 0xCA8B +0xBD69 0xCA8C +0xBD6A 0xCA8D +0xBD6B 0xCA8E +0xBD6C 0xCA8F +0xBD6D 0xCA90 +0xBD6E 0xCA91 +0xBD6F 0xCA92 +0xBD70 0xCA93 +0xBD71 0xCA94 +0xBD73 0xCA95 +0xBD74 0xCA96 +0xBD75 0xCA97 +0xBD76 0xCA98 +0xBD77 0xCA99 +0xBD78 0xCA9A +0xBD79 0xCA9B +0xBD7A 0xCA9C +0xBD7B 0xCA9D +0xBD7C 0xCA9E +0xBD7D 0xCA9F +0xBD81 0xCAA0 +0xBD82 0xCAA1 +0xBD83 0xCAA2 +0xBD84 0xCAA3 +0xBD85 0xCAA4 +0xBD86 0xCAA5 +0xBD87 0xCAA6 +0xBD88 0xCAA7 +0xBD89 0xCAA8 +0xBD8A 0xCAA9 +0xBD8B 0xCAAA +0xBD8C 0xCAAB +0xBD8D 0xCAAC +0xBD8E 0xCAAD +0xBD8F 0xCAAE +0xBD90 0xCAAF +0xBD91 0xCAB0 +0xBD93 0xCAB1 +0xBD94 0xCAB2 +0xBD95 0xCAB3 +0xBD96 0xCAB4 +0xBD97 0xCAB5 +0xBD98 0xCAB6 +0xBD99 0xCAB7 +0xBD9A 0xCAB8 +0xBD9B 0xCAB9 +0xBD9C 0xCABA +0xBD9D 0xCABB +0xBDA1 0xCABC +0xBDA2 0xCABD +0xBDA3 0xCABE +0xBDA4 0xCABF +0xBDA5 0xCAC0 +0xBDA6 0xCAC1 +0xBDA7 0xCAC2 +0xBDA8 0xCAC3 +0xBDA9 0xCAC4 +0xBDAA 0xCAC5 +0xBDAB 0xCAC6 +0xBDAC 0xCAC7 +0xBDAD 0xCAC8 +0xBDAE 0xCAC9 +0xBDAF 0xCACA +0xBDB0 0xCACB +0xBDB1 0xCACC +0xBDB3 0xCACD +0xBDB4 0xCACE +0xBDB5 0xCACF +0xBDB6 0xCAD0 +0xBDB7 0xCAD1 +0xBDB8 0xCAD2 +0xBDB9 0xCAD3 +0xBDBA 0xCAD4 +0xBDBB 0xCAD5 +0xBDBC 0xCAD6 +0xBDBD 0xCAD7 +0xBDC1 0xCAD8 +0xBDC2 0xCAD9 +0xBDC3 0xCADA +0xBDC4 0xCADB +0xBDC5 0xCADC +0xBDC6 0xCADD +0xBDC7 0xCADE +0xBDC8 0xCADF +0xBDC9 0xCAE0 +0xBDCA 0xCAE1 +0xBDCB 0xCAE2 +0xBDCC 0xCAE3 +0xBDCD 0xCAE4 +0xBDCE 0xCAE5 +0xBDCF 0xCAE6 +0xBDD0 0xCAE7 +0xBDD1 0xCAE8 +0xBDD3 0xCAE9 +0xBDD4 0xCAEA +0xBDD5 0xCAEB +0xBDD6 0xCAEC +0xBDD7 0xCAED +0xBDD8 0xCAEE +0xBDD9 0xCAEF +0xBDDA 0xCAF0 +0xBDDB 0xCAF1 +0xBDDC 0xCAF2 +0xBDDD 0xCAF3 +0xBDE1 0xCAF4 +0xBDE2 0xCAF5 +0xBDE3 0xCAF6 +0xBDE4 0xCAF7 +0xBDE5 0xCAF8 +0xBDE6 0xCAF9 +0xBDE7 0xCAFA +0xBDE8 0xCAFB +0xBDE9 0xCAFC +0xBDEA 0xCAFD +0xBDEB 0xCAFE +0xBDEC 0xCAFF +0xBDED 0xCB00 +0xBDEE 0xCB01 +0xBDEF 0xCB02 +0xBDF0 0xCB03 +0xBDF1 0xCB04 +0xBDF3 0xCB05 +0xBDF4 0xCB06 +0xBDF5 0xCB07 +0xBDF6 0xCB08 +0xBDF7 0xCB09 +0xBDF8 0xCB0A +0xBDF9 0xCB0B +0xBDFA 0xCB0C +0xBDFB 0xCB0D +0xBDFC 0xCB0E +0xBDFD 0xCB0F +0xBE41 0xCB10 +0xBE42 0xCB11 +0xBE43 0xCB12 +0xBE44 0xCB13 +0xBE45 0xCB14 +0xBE46 0xCB15 +0xBE47 0xCB16 +0xBE48 0xCB17 +0xBE49 0xCB18 +0xBE4A 0xCB19 +0xBE4B 0xCB1A +0xBE4C 0xCB1B +0xBE4D 0xCB1C +0xBE4E 0xCB1D +0xBE4F 0xCB1E +0xBE50 0xCB1F +0xBE51 0xCB20 +0xBE53 0xCB21 +0xBE54 0xCB22 +0xBE55 0xCB23 +0xBE56 0xCB24 +0xBE57 0xCB25 +0xBE58 0xCB26 +0xBE59 0xCB27 +0xBE5A 0xCB28 +0xBE5B 0xCB29 +0xBE5C 0xCB2A +0xBE5D 0xCB2B +0xBE61 0xCB2C +0xBE62 0xCB2D +0xBE63 0xCB2E +0xBE64 0xCB2F +0xBE65 0xCB30 +0xBE66 0xCB31 +0xBE67 0xCB32 +0xBE68 0xCB33 +0xBE69 0xCB34 +0xBE6A 0xCB35 +0xBE6B 0xCB36 +0xBE6C 0xCB37 +0xBE6D 0xCB38 +0xBE6E 0xCB39 +0xBE6F 0xCB3A +0xBE70 0xCB3B +0xBE71 0xCB3C +0xBE73 0xCB3D +0xBE74 0xCB3E +0xBE75 0xCB3F +0xBE76 0xCB40 +0xBE77 0xCB41 +0xBE78 0xCB42 +0xBE79 0xCB43 +0xBE7A 0xCB44 +0xBE7B 0xCB45 +0xBE7C 0xCB46 +0xBE7D 0xCB47 +0xBE81 0xCB48 +0xBE82 0xCB49 +0xBE83 0xCB4A +0xBE84 0xCB4B +0xBE85 0xCB4C +0xBE86 0xCB4D +0xBE87 0xCB4E +0xBE88 0xCB4F +0xBE89 0xCB50 +0xBE8A 0xCB51 +0xBE8B 0xCB52 +0xBE8C 0xCB53 +0xBE8D 0xCB54 +0xBE8E 0xCB55 +0xBE8F 0xCB56 +0xBE90 0xCB57 +0xBE91 0xCB58 +0xBE93 0xCB59 +0xBE94 0xCB5A +0xBE95 0xCB5B +0xBE96 0xCB5C +0xBE97 0xCB5D +0xBE98 0xCB5E +0xBE99 0xCB5F +0xBE9A 0xCB60 +0xBE9B 0xCB61 +0xBE9C 0xCB62 +0xBE9D 0xCB63 +0xBEA1 0xCB64 +0xBEA2 0xCB65 +0xBEA3 0xCB66 +0xBEA4 0xCB67 +0xBEA5 0xCB68 +0xBEA6 0xCB69 +0xBEA7 0xCB6A +0xBEA8 0xCB6B +0xBEA9 0xCB6C +0xBEAA 0xCB6D +0xBEAB 0xCB6E +0xBEAC 0xCB6F +0xBEAD 0xCB70 +0xBEAE 0xCB71 +0xBEAF 0xCB72 +0xBEB0 0xCB73 +0xBEB1 0xCB74 +0xBEB3 0xCB75 +0xBEB4 0xCB76 +0xBEB5 0xCB77 +0xBEB6 0xCB78 +0xBEB7 0xCB79 +0xBEB8 0xCB7A +0xBEB9 0xCB7B +0xBEBA 0xCB7C +0xBEBB 0xCB7D +0xBEBC 0xCB7E +0xBEBD 0xCB7F +0xBEC1 0xCB80 +0xBEC2 0xCB81 +0xBEC3 0xCB82 +0xBEC4 0xCB83 +0xBEC5 0xCB84 +0xBEC6 0xCB85 +0xBEC7 0xCB86 +0xBEC8 0xCB87 +0xBEC9 0xCB88 +0xBECA 0xCB89 +0xBECB 0xCB8A +0xBECC 0xCB8B +0xBECD 0xCB8C +0xBECE 0xCB8D +0xBECF 0xCB8E +0xBED0 0xCB8F +0xBED1 0xCB90 +0xBED3 0xCB91 +0xBED4 0xCB92 +0xBED5 0xCB93 +0xBED6 0xCB94 +0xBED7 0xCB95 +0xBED8 0xCB96 +0xBED9 0xCB97 +0xBEDA 0xCB98 +0xBEDB 0xCB99 +0xBEDC 0xCB9A +0xBEDD 0xCB9B +0xBEE1 0xCB9C +0xBEE2 0xCB9D +0xBEE3 0xCB9E +0xBEE4 0xCB9F +0xBEE5 0xCBA0 +0xBEE6 0xCBA1 +0xBEE7 0xCBA2 +0xBEE8 0xCBA3 +0xBEE9 0xCBA4 +0xBEEA 0xCBA5 +0xBEEB 0xCBA6 +0xBEEC 0xCBA7 +0xBEED 0xCBA8 +0xBEEE 0xCBA9 +0xBEEF 0xCBAA +0xBEF0 0xCBAB +0xBEF1 0xCBAC +0xBEF3 0xCBAD +0xBEF4 0xCBAE +0xBEF5 0xCBAF +0xBEF6 0xCBB0 +0xBEF7 0xCBB1 +0xBEF8 0xCBB2 +0xBEF9 0xCBB3 +0xBEFA 0xCBB4 +0xBEFB 0xCBB5 +0xBEFC 0xCBB6 +0xBEFD 0xCBB7 +0xBF41 0xCBB8 +0xBF42 0xCBB9 +0xBF43 0xCBBA +0xBF44 0xCBBB +0xBF45 0xCBBC +0xBF46 0xCBBD +0xBF47 0xCBBE +0xBF48 0xCBBF +0xBF49 0xCBC0 +0xBF4A 0xCBC1 +0xBF4B 0xCBC2 +0xBF4C 0xCBC3 +0xBF4D 0xCBC4 +0xBF4E 0xCBC5 +0xBF4F 0xCBC6 +0xBF50 0xCBC7 +0xBF51 0xCBC8 +0xBF53 0xCBC9 +0xBF54 0xCBCA +0xBF55 0xCBCB +0xBF56 0xCBCC +0xBF57 0xCBCD +0xBF58 0xCBCE +0xBF59 0xCBCF +0xBF5A 0xCBD0 +0xBF5B 0xCBD1 +0xBF5C 0xCBD2 +0xBF5D 0xCBD3 +0xBF61 0xCBD4 +0xBF62 0xCBD5 +0xBF63 0xCBD6 +0xBF64 0xCBD7 +0xBF65 0xCBD8 +0xBF66 0xCBD9 +0xBF67 0xCBDA +0xBF68 0xCBDB +0xBF69 0xCBDC +0xBF6A 0xCBDD +0xBF6B 0xCBDE +0xBF6C 0xCBDF +0xBF6D 0xCBE0 +0xBF6E 0xCBE1 +0xBF6F 0xCBE2 +0xBF70 0xCBE3 +0xBF71 0xCBE4 +0xBF73 0xCBE5 +0xBF74 0xCBE6 +0xBF75 0xCBE7 +0xBF76 0xCBE8 +0xBF77 0xCBE9 +0xBF78 0xCBEA +0xBF79 0xCBEB +0xBF7A 0xCBEC +0xBF7B 0xCBED +0xBF7C 0xCBEE +0xBF7D 0xCBEF +0xBF81 0xCBF0 +0xBF82 0xCBF1 +0xBF83 0xCBF2 +0xBF84 0xCBF3 +0xBF85 0xCBF4 +0xBF86 0xCBF5 +0xBF87 0xCBF6 +0xBF88 0xCBF7 +0xBF89 0xCBF8 +0xBF8A 0xCBF9 +0xBF8B 0xCBFA +0xBF8C 0xCBFB +0xBF8D 0xCBFC +0xBF8E 0xCBFD +0xBF8F 0xCBFE +0xBF90 0xCBFF +0xBF91 0xCC00 +0xBF93 0xCC01 +0xBF94 0xCC02 +0xBF95 0xCC03 +0xBF96 0xCC04 +0xBF97 0xCC05 +0xBF98 0xCC06 +0xBF99 0xCC07 +0xBF9A 0xCC08 +0xBF9B 0xCC09 +0xBF9C 0xCC0A +0xBF9D 0xCC0B +0xBFA1 0xCC0C +0xBFA2 0xCC0D +0xBFA3 0xCC0E +0xBFA4 0xCC0F +0xBFA5 0xCC10 +0xBFA6 0xCC11 +0xBFA7 0xCC12 +0xBFA8 0xCC13 +0xBFA9 0xCC14 +0xBFAA 0xCC15 +0xBFAB 0xCC16 +0xBFAC 0xCC17 +0xBFAD 0xCC18 +0xBFAE 0xCC19 +0xBFAF 0xCC1A +0xBFB0 0xCC1B +0xBFB1 0xCC1C +0xBFB3 0xCC1D +0xBFB4 0xCC1E +0xBFB5 0xCC1F +0xBFB6 0xCC20 +0xBFB7 0xCC21 +0xBFB8 0xCC22 +0xBFB9 0xCC23 +0xBFBA 0xCC24 +0xBFBB 0xCC25 +0xBFBC 0xCC26 +0xBFBD 0xCC27 +0xC041 0x314A +0xC061 0xCC28 +0xC062 0xCC29 +0xC063 0xCC2A +0xC064 0xCC2B +0xC065 0xCC2C +0xC066 0xCC2D +0xC067 0xCC2E +0xC068 0xCC2F +0xC069 0xCC30 +0xC06A 0xCC31 +0xC06B 0xCC32 +0xC06C 0xCC33 +0xC06D 0xCC34 +0xC06E 0xCC35 +0xC06F 0xCC36 +0xC070 0xCC37 +0xC071 0xCC38 +0xC073 0xCC39 +0xC074 0xCC3A +0xC075 0xCC3B +0xC076 0xCC3C +0xC077 0xCC3D +0xC078 0xCC3E +0xC079 0xCC3F +0xC07A 0xCC40 +0xC07B 0xCC41 +0xC07C 0xCC42 +0xC07D 0xCC43 +0xC081 0xCC44 +0xC082 0xCC45 +0xC083 0xCC46 +0xC084 0xCC47 +0xC085 0xCC48 +0xC086 0xCC49 +0xC087 0xCC4A +0xC088 0xCC4B +0xC089 0xCC4C +0xC08A 0xCC4D +0xC08B 0xCC4E +0xC08C 0xCC4F +0xC08D 0xCC50 +0xC08E 0xCC51 +0xC08F 0xCC52 +0xC090 0xCC53 +0xC091 0xCC54 +0xC093 0xCC55 +0xC094 0xCC56 +0xC095 0xCC57 +0xC096 0xCC58 +0xC097 0xCC59 +0xC098 0xCC5A +0xC099 0xCC5B +0xC09A 0xCC5C +0xC09B 0xCC5D +0xC09C 0xCC5E +0xC09D 0xCC5F +0xC0A1 0xCC60 +0xC0A2 0xCC61 +0xC0A3 0xCC62 +0xC0A4 0xCC63 +0xC0A5 0xCC64 +0xC0A6 0xCC65 +0xC0A7 0xCC66 +0xC0A8 0xCC67 +0xC0A9 0xCC68 +0xC0AA 0xCC69 +0xC0AB 0xCC6A +0xC0AC 0xCC6B +0xC0AD 0xCC6C +0xC0AE 0xCC6D +0xC0AF 0xCC6E +0xC0B0 0xCC6F +0xC0B1 0xCC70 +0xC0B3 0xCC71 +0xC0B4 0xCC72 +0xC0B5 0xCC73 +0xC0B6 0xCC74 +0xC0B7 0xCC75 +0xC0B8 0xCC76 +0xC0B9 0xCC77 +0xC0BA 0xCC78 +0xC0BB 0xCC79 +0xC0BC 0xCC7A +0xC0BD 0xCC7B +0xC0C1 0xCC7C +0xC0C2 0xCC7D +0xC0C3 0xCC7E +0xC0C4 0xCC7F +0xC0C5 0xCC80 +0xC0C6 0xCC81 +0xC0C7 0xCC82 +0xC0C8 0xCC83 +0xC0C9 0xCC84 +0xC0CA 0xCC85 +0xC0CB 0xCC86 +0xC0CC 0xCC87 +0xC0CD 0xCC88 +0xC0CE 0xCC89 +0xC0CF 0xCC8A +0xC0D0 0xCC8B +0xC0D1 0xCC8C +0xC0D3 0xCC8D +0xC0D4 0xCC8E +0xC0D5 0xCC8F +0xC0D6 0xCC90 +0xC0D7 0xCC91 +0xC0D8 0xCC92 +0xC0D9 0xCC93 +0xC0DA 0xCC94 +0xC0DB 0xCC95 +0xC0DC 0xCC96 +0xC0DD 0xCC97 +0xC0E1 0xCC98 +0xC0E2 0xCC99 +0xC0E3 0xCC9A +0xC0E4 0xCC9B +0xC0E5 0xCC9C +0xC0E6 0xCC9D +0xC0E7 0xCC9E +0xC0E8 0xCC9F +0xC0E9 0xCCA0 +0xC0EA 0xCCA1 +0xC0EB 0xCCA2 +0xC0EC 0xCCA3 +0xC0ED 0xCCA4 +0xC0EE 0xCCA5 +0xC0EF 0xCCA6 +0xC0F0 0xCCA7 +0xC0F1 0xCCA8 +0xC0F3 0xCCA9 +0xC0F4 0xCCAA +0xC0F5 0xCCAB +0xC0F6 0xCCAC +0xC0F7 0xCCAD +0xC0F8 0xCCAE +0xC0F9 0xCCAF +0xC0FA 0xCCB0 +0xC0FB 0xCCB1 +0xC0FC 0xCCB2 +0xC0FD 0xCCB3 +0xC141 0xCCB4 +0xC142 0xCCB5 +0xC143 0xCCB6 +0xC144 0xCCB7 +0xC145 0xCCB8 +0xC146 0xCCB9 +0xC147 0xCCBA +0xC148 0xCCBB +0xC149 0xCCBC +0xC14A 0xCCBD +0xC14B 0xCCBE +0xC14C 0xCCBF +0xC14D 0xCCC0 +0xC14E 0xCCC1 +0xC14F 0xCCC2 +0xC150 0xCCC3 +0xC151 0xCCC4 +0xC153 0xCCC5 +0xC154 0xCCC6 +0xC155 0xCCC7 +0xC156 0xCCC8 +0xC157 0xCCC9 +0xC158 0xCCCA +0xC159 0xCCCB +0xC15A 0xCCCC +0xC15B 0xCCCD +0xC15C 0xCCCE +0xC15D 0xCCCF +0xC161 0xCCD0 +0xC162 0xCCD1 +0xC163 0xCCD2 +0xC164 0xCCD3 +0xC165 0xCCD4 +0xC166 0xCCD5 +0xC167 0xCCD6 +0xC168 0xCCD7 +0xC169 0xCCD8 +0xC16A 0xCCD9 +0xC16B 0xCCDA +0xC16C 0xCCDB +0xC16D 0xCCDC +0xC16E 0xCCDD +0xC16F 0xCCDE +0xC170 0xCCDF +0xC171 0xCCE0 +0xC173 0xCCE1 +0xC174 0xCCE2 +0xC175 0xCCE3 +0xC176 0xCCE4 +0xC177 0xCCE5 +0xC178 0xCCE6 +0xC179 0xCCE7 +0xC17A 0xCCE8 +0xC17B 0xCCE9 +0xC17C 0xCCEA +0xC17D 0xCCEB +0xC181 0xCCEC +0xC182 0xCCED +0xC183 0xCCEE +0xC184 0xCCEF +0xC185 0xCCF0 +0xC186 0xCCF1 +0xC187 0xCCF2 +0xC188 0xCCF3 +0xC189 0xCCF4 +0xC18A 0xCCF5 +0xC18B 0xCCF6 +0xC18C 0xCCF7 +0xC18D 0xCCF8 +0xC18E 0xCCF9 +0xC18F 0xCCFA +0xC190 0xCCFB +0xC191 0xCCFC +0xC193 0xCCFD +0xC194 0xCCFE +0xC195 0xCCFF +0xC196 0xCD00 +0xC197 0xCD01 +0xC198 0xCD02 +0xC199 0xCD03 +0xC19A 0xCD04 +0xC19B 0xCD05 +0xC19C 0xCD06 +0xC19D 0xCD07 +0xC1A1 0xCD08 +0xC1A2 0xCD09 +0xC1A3 0xCD0A +0xC1A4 0xCD0B +0xC1A5 0xCD0C +0xC1A6 0xCD0D +0xC1A7 0xCD0E +0xC1A8 0xCD0F +0xC1A9 0xCD10 +0xC1AA 0xCD11 +0xC1AB 0xCD12 +0xC1AC 0xCD13 +0xC1AD 0xCD14 +0xC1AE 0xCD15 +0xC1AF 0xCD16 +0xC1B0 0xCD17 +0xC1B1 0xCD18 +0xC1B3 0xCD19 +0xC1B4 0xCD1A +0xC1B5 0xCD1B +0xC1B6 0xCD1C +0xC1B7 0xCD1D +0xC1B8 0xCD1E +0xC1B9 0xCD1F +0xC1BA 0xCD20 +0xC1BB 0xCD21 +0xC1BC 0xCD22 +0xC1BD 0xCD23 +0xC1C1 0xCD24 +0xC1C2 0xCD25 +0xC1C3 0xCD26 +0xC1C4 0xCD27 +0xC1C5 0xCD28 +0xC1C6 0xCD29 +0xC1C7 0xCD2A +0xC1C8 0xCD2B +0xC1C9 0xCD2C +0xC1CA 0xCD2D +0xC1CB 0xCD2E +0xC1CC 0xCD2F +0xC1CD 0xCD30 +0xC1CE 0xCD31 +0xC1CF 0xCD32 +0xC1D0 0xCD33 +0xC1D1 0xCD34 +0xC1D3 0xCD35 +0xC1D4 0xCD36 +0xC1D5 0xCD37 +0xC1D6 0xCD38 +0xC1D7 0xCD39 +0xC1D8 0xCD3A +0xC1D9 0xCD3B +0xC1DA 0xCD3C +0xC1DB 0xCD3D +0xC1DC 0xCD3E +0xC1DD 0xCD3F +0xC1E1 0xCD40 +0xC1E2 0xCD41 +0xC1E3 0xCD42 +0xC1E4 0xCD43 +0xC1E5 0xCD44 +0xC1E6 0xCD45 +0xC1E7 0xCD46 +0xC1E8 0xCD47 +0xC1E9 0xCD48 +0xC1EA 0xCD49 +0xC1EB 0xCD4A +0xC1EC 0xCD4B +0xC1ED 0xCD4C +0xC1EE 0xCD4D +0xC1EF 0xCD4E +0xC1F0 0xCD4F +0xC1F1 0xCD50 +0xC1F3 0xCD51 +0xC1F4 0xCD52 +0xC1F5 0xCD53 +0xC1F6 0xCD54 +0xC1F7 0xCD55 +0xC1F8 0xCD56 +0xC1F9 0xCD57 +0xC1FA 0xCD58 +0xC1FB 0xCD59 +0xC1FC 0xCD5A +0xC1FD 0xCD5B +0xC241 0xCD5C +0xC242 0xCD5D +0xC243 0xCD5E +0xC244 0xCD5F +0xC245 0xCD60 +0xC246 0xCD61 +0xC247 0xCD62 +0xC248 0xCD63 +0xC249 0xCD64 +0xC24A 0xCD65 +0xC24B 0xCD66 +0xC24C 0xCD67 +0xC24D 0xCD68 +0xC24E 0xCD69 +0xC24F 0xCD6A +0xC250 0xCD6B +0xC251 0xCD6C +0xC253 0xCD6D +0xC254 0xCD6E +0xC255 0xCD6F +0xC256 0xCD70 +0xC257 0xCD71 +0xC258 0xCD72 +0xC259 0xCD73 +0xC25A 0xCD74 +0xC25B 0xCD75 +0xC25C 0xCD76 +0xC25D 0xCD77 +0xC261 0xCD78 +0xC262 0xCD79 +0xC263 0xCD7A +0xC264 0xCD7B +0xC265 0xCD7C +0xC266 0xCD7D +0xC267 0xCD7E +0xC268 0xCD7F +0xC269 0xCD80 +0xC26A 0xCD81 +0xC26B 0xCD82 +0xC26C 0xCD83 +0xC26D 0xCD84 +0xC26E 0xCD85 +0xC26F 0xCD86 +0xC270 0xCD87 +0xC271 0xCD88 +0xC273 0xCD89 +0xC274 0xCD8A +0xC275 0xCD8B +0xC276 0xCD8C +0xC277 0xCD8D +0xC278 0xCD8E +0xC279 0xCD8F +0xC27A 0xCD90 +0xC27B 0xCD91 +0xC27C 0xCD92 +0xC27D 0xCD93 +0xC281 0xCD94 +0xC282 0xCD95 +0xC283 0xCD96 +0xC284 0xCD97 +0xC285 0xCD98 +0xC286 0xCD99 +0xC287 0xCD9A +0xC288 0xCD9B +0xC289 0xCD9C +0xC28A 0xCD9D +0xC28B 0xCD9E +0xC28C 0xCD9F +0xC28D 0xCDA0 +0xC28E 0xCDA1 +0xC28F 0xCDA2 +0xC290 0xCDA3 +0xC291 0xCDA4 +0xC293 0xCDA5 +0xC294 0xCDA6 +0xC295 0xCDA7 +0xC296 0xCDA8 +0xC297 0xCDA9 +0xC298 0xCDAA +0xC299 0xCDAB +0xC29A 0xCDAC +0xC29B 0xCDAD +0xC29C 0xCDAE +0xC29D 0xCDAF +0xC2A1 0xCDB0 +0xC2A2 0xCDB1 +0xC2A3 0xCDB2 +0xC2A4 0xCDB3 +0xC2A5 0xCDB4 +0xC2A6 0xCDB5 +0xC2A7 0xCDB6 +0xC2A8 0xCDB7 +0xC2A9 0xCDB8 +0xC2AA 0xCDB9 +0xC2AB 0xCDBA +0xC2AC 0xCDBB +0xC2AD 0xCDBC +0xC2AE 0xCDBD +0xC2AF 0xCDBE +0xC2B0 0xCDBF +0xC2B1 0xCDC0 +0xC2B3 0xCDC1 +0xC2B4 0xCDC2 +0xC2B5 0xCDC3 +0xC2B6 0xCDC4 +0xC2B7 0xCDC5 +0xC2B8 0xCDC6 +0xC2B9 0xCDC7 +0xC2BA 0xCDC8 +0xC2BB 0xCDC9 +0xC2BC 0xCDCA +0xC2BD 0xCDCB +0xC2C1 0xCDCC +0xC2C2 0xCDCD +0xC2C3 0xCDCE +0xC2C4 0xCDCF +0xC2C5 0xCDD0 +0xC2C6 0xCDD1 +0xC2C7 0xCDD2 +0xC2C8 0xCDD3 +0xC2C9 0xCDD4 +0xC2CA 0xCDD5 +0xC2CB 0xCDD6 +0xC2CC 0xCDD7 +0xC2CD 0xCDD8 +0xC2CE 0xCDD9 +0xC2CF 0xCDDA +0xC2D0 0xCDDB +0xC2D1 0xCDDC +0xC2D3 0xCDDD +0xC2D4 0xCDDE +0xC2D5 0xCDDF +0xC2D6 0xCDE0 +0xC2D7 0xCDE1 +0xC2D8 0xCDE2 +0xC2D9 0xCDE3 +0xC2DA 0xCDE4 +0xC2DB 0xCDE5 +0xC2DC 0xCDE6 +0xC2DD 0xCDE7 +0xC2E1 0xCDE8 +0xC2E2 0xCDE9 +0xC2E3 0xCDEA +0xC2E4 0xCDEB +0xC2E5 0xCDEC +0xC2E6 0xCDED +0xC2E7 0xCDEE +0xC2E8 0xCDEF +0xC2E9 0xCDF0 +0xC2EA 0xCDF1 +0xC2EB 0xCDF2 +0xC2EC 0xCDF3 +0xC2ED 0xCDF4 +0xC2EE 0xCDF5 +0xC2EF 0xCDF6 +0xC2F0 0xCDF7 +0xC2F1 0xCDF8 +0xC2F3 0xCDF9 +0xC2F4 0xCDFA +0xC2F5 0xCDFB +0xC2F6 0xCDFC +0xC2F7 0xCDFD +0xC2F8 0xCDFE +0xC2F9 0xCDFF +0xC2FA 0xCE00 +0xC2FB 0xCE01 +0xC2FC 0xCE02 +0xC2FD 0xCE03 +0xC341 0xCE04 +0xC342 0xCE05 +0xC343 0xCE06 +0xC344 0xCE07 +0xC345 0xCE08 +0xC346 0xCE09 +0xC347 0xCE0A +0xC348 0xCE0B +0xC349 0xCE0C +0xC34A 0xCE0D +0xC34B 0xCE0E +0xC34C 0xCE0F +0xC34D 0xCE10 +0xC34E 0xCE11 +0xC34F 0xCE12 +0xC350 0xCE13 +0xC351 0xCE14 +0xC353 0xCE15 +0xC354 0xCE16 +0xC355 0xCE17 +0xC356 0xCE18 +0xC357 0xCE19 +0xC358 0xCE1A +0xC359 0xCE1B +0xC35A 0xCE1C +0xC35B 0xCE1D +0xC35C 0xCE1E +0xC35D 0xCE1F +0xC361 0xCE20 +0xC362 0xCE21 +0xC363 0xCE22 +0xC364 0xCE23 +0xC365 0xCE24 +0xC366 0xCE25 +0xC367 0xCE26 +0xC368 0xCE27 +0xC369 0xCE28 +0xC36A 0xCE29 +0xC36B 0xCE2A +0xC36C 0xCE2B +0xC36D 0xCE2C +0xC36E 0xCE2D +0xC36F 0xCE2E +0xC370 0xCE2F +0xC371 0xCE30 +0xC373 0xCE31 +0xC374 0xCE32 +0xC375 0xCE33 +0xC376 0xCE34 +0xC377 0xCE35 +0xC378 0xCE36 +0xC379 0xCE37 +0xC37A 0xCE38 +0xC37B 0xCE39 +0xC37C 0xCE3A +0xC37D 0xCE3B +0xC381 0xCE3C +0xC382 0xCE3D +0xC383 0xCE3E +0xC384 0xCE3F +0xC385 0xCE40 +0xC386 0xCE41 +0xC387 0xCE42 +0xC388 0xCE43 +0xC389 0xCE44 +0xC38A 0xCE45 +0xC38B 0xCE46 +0xC38C 0xCE47 +0xC38D 0xCE48 +0xC38E 0xCE49 +0xC38F 0xCE4A +0xC390 0xCE4B +0xC391 0xCE4C +0xC393 0xCE4D +0xC394 0xCE4E +0xC395 0xCE4F +0xC396 0xCE50 +0xC397 0xCE51 +0xC398 0xCE52 +0xC399 0xCE53 +0xC39A 0xCE54 +0xC39B 0xCE55 +0xC39C 0xCE56 +0xC39D 0xCE57 +0xC3A1 0xCE58 +0xC3A2 0xCE59 +0xC3A3 0xCE5A +0xC3A4 0xCE5B +0xC3A5 0xCE5C +0xC3A6 0xCE5D +0xC3A7 0xCE5E +0xC3A8 0xCE5F +0xC3A9 0xCE60 +0xC3AA 0xCE61 +0xC3AB 0xCE62 +0xC3AC 0xCE63 +0xC3AD 0xCE64 +0xC3AE 0xCE65 +0xC3AF 0xCE66 +0xC3B0 0xCE67 +0xC3B1 0xCE68 +0xC3B3 0xCE69 +0xC3B4 0xCE6A +0xC3B5 0xCE6B +0xC3B6 0xCE6C +0xC3B7 0xCE6D +0xC3B8 0xCE6E +0xC3B9 0xCE6F +0xC3BA 0xCE70 +0xC3BB 0xCE71 +0xC3BC 0xCE72 +0xC3BD 0xCE73 +0xC441 0x314B +0xC461 0xCE74 +0xC462 0xCE75 +0xC463 0xCE76 +0xC464 0xCE77 +0xC465 0xCE78 +0xC466 0xCE79 +0xC467 0xCE7A +0xC468 0xCE7B +0xC469 0xCE7C +0xC46A 0xCE7D +0xC46B 0xCE7E +0xC46C 0xCE7F +0xC46D 0xCE80 +0xC46E 0xCE81 +0xC46F 0xCE82 +0xC470 0xCE83 +0xC471 0xCE84 +0xC473 0xCE85 +0xC474 0xCE86 +0xC475 0xCE87 +0xC476 0xCE88 +0xC477 0xCE89 +0xC478 0xCE8A +0xC479 0xCE8B +0xC47A 0xCE8C +0xC47B 0xCE8D +0xC47C 0xCE8E +0xC47D 0xCE8F +0xC481 0xCE90 +0xC482 0xCE91 +0xC483 0xCE92 +0xC484 0xCE93 +0xC485 0xCE94 +0xC486 0xCE95 +0xC487 0xCE96 +0xC488 0xCE97 +0xC489 0xCE98 +0xC48A 0xCE99 +0xC48B 0xCE9A +0xC48C 0xCE9B +0xC48D 0xCE9C +0xC48E 0xCE9D +0xC48F 0xCE9E +0xC490 0xCE9F +0xC491 0xCEA0 +0xC493 0xCEA1 +0xC494 0xCEA2 +0xC495 0xCEA3 +0xC496 0xCEA4 +0xC497 0xCEA5 +0xC498 0xCEA6 +0xC499 0xCEA7 +0xC49A 0xCEA8 +0xC49B 0xCEA9 +0xC49C 0xCEAA +0xC49D 0xCEAB +0xC4A1 0xCEAC +0xC4A2 0xCEAD +0xC4A3 0xCEAE +0xC4A4 0xCEAF +0xC4A5 0xCEB0 +0xC4A6 0xCEB1 +0xC4A7 0xCEB2 +0xC4A8 0xCEB3 +0xC4A9 0xCEB4 +0xC4AA 0xCEB5 +0xC4AB 0xCEB6 +0xC4AC 0xCEB7 +0xC4AD 0xCEB8 +0xC4AE 0xCEB9 +0xC4AF 0xCEBA +0xC4B0 0xCEBB +0xC4B1 0xCEBC +0xC4B3 0xCEBD +0xC4B4 0xCEBE +0xC4B5 0xCEBF +0xC4B6 0xCEC0 +0xC4B7 0xCEC1 +0xC4B8 0xCEC2 +0xC4B9 0xCEC3 +0xC4BA 0xCEC4 +0xC4BB 0xCEC5 +0xC4BC 0xCEC6 +0xC4BD 0xCEC7 +0xC4C1 0xCEC8 +0xC4C2 0xCEC9 +0xC4C3 0xCECA +0xC4C4 0xCECB +0xC4C5 0xCECC +0xC4C6 0xCECD +0xC4C7 0xCECE +0xC4C8 0xCECF +0xC4C9 0xCED0 +0xC4CA 0xCED1 +0xC4CB 0xCED2 +0xC4CC 0xCED3 +0xC4CD 0xCED4 +0xC4CE 0xCED5 +0xC4CF 0xCED6 +0xC4D0 0xCED7 +0xC4D1 0xCED8 +0xC4D3 0xCED9 +0xC4D4 0xCEDA +0xC4D5 0xCEDB +0xC4D6 0xCEDC +0xC4D7 0xCEDD +0xC4D8 0xCEDE +0xC4D9 0xCEDF +0xC4DA 0xCEE0 +0xC4DB 0xCEE1 +0xC4DC 0xCEE2 +0xC4DD 0xCEE3 +0xC4E1 0xCEE4 +0xC4E2 0xCEE5 +0xC4E3 0xCEE6 +0xC4E4 0xCEE7 +0xC4E5 0xCEE8 +0xC4E6 0xCEE9 +0xC4E7 0xCEEA +0xC4E8 0xCEEB +0xC4E9 0xCEEC +0xC4EA 0xCEED +0xC4EB 0xCEEE +0xC4EC 0xCEEF +0xC4ED 0xCEF0 +0xC4EE 0xCEF1 +0xC4EF 0xCEF2 +0xC4F0 0xCEF3 +0xC4F1 0xCEF4 +0xC4F3 0xCEF5 +0xC4F4 0xCEF6 +0xC4F5 0xCEF7 +0xC4F6 0xCEF8 +0xC4F7 0xCEF9 +0xC4F8 0xCEFA +0xC4F9 0xCEFB +0xC4FA 0xCEFC +0xC4FB 0xCEFD +0xC4FC 0xCEFE +0xC4FD 0xCEFF +0xC541 0xCF00 +0xC542 0xCF01 +0xC543 0xCF02 +0xC544 0xCF03 +0xC545 0xCF04 +0xC546 0xCF05 +0xC547 0xCF06 +0xC548 0xCF07 +0xC549 0xCF08 +0xC54A 0xCF09 +0xC54B 0xCF0A +0xC54C 0xCF0B +0xC54D 0xCF0C +0xC54E 0xCF0D +0xC54F 0xCF0E +0xC550 0xCF0F +0xC551 0xCF10 +0xC553 0xCF11 +0xC554 0xCF12 +0xC555 0xCF13 +0xC556 0xCF14 +0xC557 0xCF15 +0xC558 0xCF16 +0xC559 0xCF17 +0xC55A 0xCF18 +0xC55B 0xCF19 +0xC55C 0xCF1A +0xC55D 0xCF1B +0xC561 0xCF1C +0xC562 0xCF1D +0xC563 0xCF1E +0xC564 0xCF1F +0xC565 0xCF20 +0xC566 0xCF21 +0xC567 0xCF22 +0xC568 0xCF23 +0xC569 0xCF24 +0xC56A 0xCF25 +0xC56B 0xCF26 +0xC56C 0xCF27 +0xC56D 0xCF28 +0xC56E 0xCF29 +0xC56F 0xCF2A +0xC570 0xCF2B +0xC571 0xCF2C +0xC573 0xCF2D +0xC574 0xCF2E +0xC575 0xCF2F +0xC576 0xCF30 +0xC577 0xCF31 +0xC578 0xCF32 +0xC579 0xCF33 +0xC57A 0xCF34 +0xC57B 0xCF35 +0xC57C 0xCF36 +0xC57D 0xCF37 +0xC581 0xCF38 +0xC582 0xCF39 +0xC583 0xCF3A +0xC584 0xCF3B +0xC585 0xCF3C +0xC586 0xCF3D +0xC587 0xCF3E +0xC588 0xCF3F +0xC589 0xCF40 +0xC58A 0xCF41 +0xC58B 0xCF42 +0xC58C 0xCF43 +0xC58D 0xCF44 +0xC58E 0xCF45 +0xC58F 0xCF46 +0xC590 0xCF47 +0xC591 0xCF48 +0xC593 0xCF49 +0xC594 0xCF4A +0xC595 0xCF4B +0xC596 0xCF4C +0xC597 0xCF4D +0xC598 0xCF4E +0xC599 0xCF4F +0xC59A 0xCF50 +0xC59B 0xCF51 +0xC59C 0xCF52 +0xC59D 0xCF53 +0xC5A1 0xCF54 +0xC5A2 0xCF55 +0xC5A3 0xCF56 +0xC5A4 0xCF57 +0xC5A5 0xCF58 +0xC5A6 0xCF59 +0xC5A7 0xCF5A +0xC5A8 0xCF5B +0xC5A9 0xCF5C +0xC5AA 0xCF5D +0xC5AB 0xCF5E +0xC5AC 0xCF5F +0xC5AD 0xCF60 +0xC5AE 0xCF61 +0xC5AF 0xCF62 +0xC5B0 0xCF63 +0xC5B1 0xCF64 +0xC5B3 0xCF65 +0xC5B4 0xCF66 +0xC5B5 0xCF67 +0xC5B6 0xCF68 +0xC5B7 0xCF69 +0xC5B8 0xCF6A +0xC5B9 0xCF6B +0xC5BA 0xCF6C +0xC5BB 0xCF6D +0xC5BC 0xCF6E +0xC5BD 0xCF6F +0xC5C1 0xCF70 +0xC5C2 0xCF71 +0xC5C3 0xCF72 +0xC5C4 0xCF73 +0xC5C5 0xCF74 +0xC5C6 0xCF75 +0xC5C7 0xCF76 +0xC5C8 0xCF77 +0xC5C9 0xCF78 +0xC5CA 0xCF79 +0xC5CB 0xCF7A +0xC5CC 0xCF7B +0xC5CD 0xCF7C +0xC5CE 0xCF7D +0xC5CF 0xCF7E +0xC5D0 0xCF7F +0xC5D1 0xCF80 +0xC5D3 0xCF81 +0xC5D4 0xCF82 +0xC5D5 0xCF83 +0xC5D6 0xCF84 +0xC5D7 0xCF85 +0xC5D8 0xCF86 +0xC5D9 0xCF87 +0xC5DA 0xCF88 +0xC5DB 0xCF89 +0xC5DC 0xCF8A +0xC5DD 0xCF8B +0xC5E1 0xCF8C +0xC5E2 0xCF8D +0xC5E3 0xCF8E +0xC5E4 0xCF8F +0xC5E5 0xCF90 +0xC5E6 0xCF91 +0xC5E7 0xCF92 +0xC5E8 0xCF93 +0xC5E9 0xCF94 +0xC5EA 0xCF95 +0xC5EB 0xCF96 +0xC5EC 0xCF97 +0xC5ED 0xCF98 +0xC5EE 0xCF99 +0xC5EF 0xCF9A +0xC5F0 0xCF9B +0xC5F1 0xCF9C +0xC5F3 0xCF9D +0xC5F4 0xCF9E +0xC5F5 0xCF9F +0xC5F6 0xCFA0 +0xC5F7 0xCFA1 +0xC5F8 0xCFA2 +0xC5F9 0xCFA3 +0xC5FA 0xCFA4 +0xC5FB 0xCFA5 +0xC5FC 0xCFA6 +0xC5FD 0xCFA7 +0xC641 0xCFA8 +0xC642 0xCFA9 +0xC643 0xCFAA +0xC644 0xCFAB +0xC645 0xCFAC +0xC646 0xCFAD +0xC647 0xCFAE +0xC648 0xCFAF +0xC649 0xCFB0 +0xC64A 0xCFB1 +0xC64B 0xCFB2 +0xC64C 0xCFB3 +0xC64D 0xCFB4 +0xC64E 0xCFB5 +0xC64F 0xCFB6 +0xC650 0xCFB7 +0xC651 0xCFB8 +0xC653 0xCFB9 +0xC654 0xCFBA +0xC655 0xCFBB +0xC656 0xCFBC +0xC657 0xCFBD +0xC658 0xCFBE +0xC659 0xCFBF +0xC65A 0xCFC0 +0xC65B 0xCFC1 +0xC65C 0xCFC2 +0xC65D 0xCFC3 +0xC661 0xCFC4 +0xC662 0xCFC5 +0xC663 0xCFC6 +0xC664 0xCFC7 +0xC665 0xCFC8 +0xC666 0xCFC9 +0xC667 0xCFCA +0xC668 0xCFCB +0xC669 0xCFCC +0xC66A 0xCFCD +0xC66B 0xCFCE +0xC66C 0xCFCF +0xC66D 0xCFD0 +0xC66E 0xCFD1 +0xC66F 0xCFD2 +0xC670 0xCFD3 +0xC671 0xCFD4 +0xC673 0xCFD5 +0xC674 0xCFD6 +0xC675 0xCFD7 +0xC676 0xCFD8 +0xC677 0xCFD9 +0xC678 0xCFDA +0xC679 0xCFDB +0xC67A 0xCFDC +0xC67B 0xCFDD +0xC67C 0xCFDE +0xC67D 0xCFDF +0xC681 0xCFE0 +0xC682 0xCFE1 +0xC683 0xCFE2 +0xC684 0xCFE3 +0xC685 0xCFE4 +0xC686 0xCFE5 +0xC687 0xCFE6 +0xC688 0xCFE7 +0xC689 0xCFE8 +0xC68A 0xCFE9 +0xC68B 0xCFEA +0xC68C 0xCFEB +0xC68D 0xCFEC +0xC68E 0xCFED +0xC68F 0xCFEE +0xC690 0xCFEF +0xC691 0xCFF0 +0xC693 0xCFF1 +0xC694 0xCFF2 +0xC695 0xCFF3 +0xC696 0xCFF4 +0xC697 0xCFF5 +0xC698 0xCFF6 +0xC699 0xCFF7 +0xC69A 0xCFF8 +0xC69B 0xCFF9 +0xC69C 0xCFFA +0xC69D 0xCFFB +0xC6A1 0xCFFC +0xC6A2 0xCFFD +0xC6A3 0xCFFE +0xC6A4 0xCFFF +0xC6A5 0xD000 +0xC6A6 0xD001 +0xC6A7 0xD002 +0xC6A8 0xD003 +0xC6A9 0xD004 +0xC6AA 0xD005 +0xC6AB 0xD006 +0xC6AC 0xD007 +0xC6AD 0xD008 +0xC6AE 0xD009 +0xC6AF 0xD00A +0xC6B0 0xD00B +0xC6B1 0xD00C +0xC6B3 0xD00D +0xC6B4 0xD00E +0xC6B5 0xD00F +0xC6B6 0xD010 +0xC6B7 0xD011 +0xC6B8 0xD012 +0xC6B9 0xD013 +0xC6BA 0xD014 +0xC6BB 0xD015 +0xC6BC 0xD016 +0xC6BD 0xD017 +0xC6C1 0xD018 +0xC6C2 0xD019 +0xC6C3 0xD01A +0xC6C4 0xD01B +0xC6C5 0xD01C +0xC6C6 0xD01D +0xC6C7 0xD01E +0xC6C8 0xD01F +0xC6C9 0xD020 +0xC6CA 0xD021 +0xC6CB 0xD022 +0xC6CC 0xD023 +0xC6CD 0xD024 +0xC6CE 0xD025 +0xC6CF 0xD026 +0xC6D0 0xD027 +0xC6D1 0xD028 +0xC6D3 0xD029 +0xC6D4 0xD02A +0xC6D5 0xD02B +0xC6D6 0xD02C +0xC6D7 0xD02D +0xC6D8 0xD02E +0xC6D9 0xD02F +0xC6DA 0xD030 +0xC6DB 0xD031 +0xC6DC 0xD032 +0xC6DD 0xD033 +0xC6E1 0xD034 +0xC6E2 0xD035 +0xC6E3 0xD036 +0xC6E4 0xD037 +0xC6E5 0xD038 +0xC6E6 0xD039 +0xC6E7 0xD03A +0xC6E8 0xD03B +0xC6E9 0xD03C +0xC6EA 0xD03D +0xC6EB 0xD03E +0xC6EC 0xD03F +0xC6ED 0xD040 +0xC6EE 0xD041 +0xC6EF 0xD042 +0xC6F0 0xD043 +0xC6F1 0xD044 +0xC6F3 0xD045 +0xC6F4 0xD046 +0xC6F5 0xD047 +0xC6F6 0xD048 +0xC6F7 0xD049 +0xC6F8 0xD04A +0xC6F9 0xD04B +0xC6FA 0xD04C +0xC6FB 0xD04D +0xC6FC 0xD04E +0xC6FD 0xD04F +0xC741 0xD050 +0xC742 0xD051 +0xC743 0xD052 +0xC744 0xD053 +0xC745 0xD054 +0xC746 0xD055 +0xC747 0xD056 +0xC748 0xD057 +0xC749 0xD058 +0xC74A 0xD059 +0xC74B 0xD05A +0xC74C 0xD05B +0xC74D 0xD05C +0xC74E 0xD05D +0xC74F 0xD05E +0xC750 0xD05F +0xC751 0xD060 +0xC753 0xD061 +0xC754 0xD062 +0xC755 0xD063 +0xC756 0xD064 +0xC757 0xD065 +0xC758 0xD066 +0xC759 0xD067 +0xC75A 0xD068 +0xC75B 0xD069 +0xC75C 0xD06A +0xC75D 0xD06B +0xC761 0xD06C +0xC762 0xD06D +0xC763 0xD06E +0xC764 0xD06F +0xC765 0xD070 +0xC766 0xD071 +0xC767 0xD072 +0xC768 0xD073 +0xC769 0xD074 +0xC76A 0xD075 +0xC76B 0xD076 +0xC76C 0xD077 +0xC76D 0xD078 +0xC76E 0xD079 +0xC76F 0xD07A +0xC770 0xD07B +0xC771 0xD07C +0xC773 0xD07D +0xC774 0xD07E +0xC775 0xD07F +0xC776 0xD080 +0xC777 0xD081 +0xC778 0xD082 +0xC779 0xD083 +0xC77A 0xD084 +0xC77B 0xD085 +0xC77C 0xD086 +0xC77D 0xD087 +0xC781 0xD088 +0xC782 0xD089 +0xC783 0xD08A +0xC784 0xD08B +0xC785 0xD08C +0xC786 0xD08D +0xC787 0xD08E +0xC788 0xD08F +0xC789 0xD090 +0xC78A 0xD091 +0xC78B 0xD092 +0xC78C 0xD093 +0xC78D 0xD094 +0xC78E 0xD095 +0xC78F 0xD096 +0xC790 0xD097 +0xC791 0xD098 +0xC793 0xD099 +0xC794 0xD09A +0xC795 0xD09B +0xC796 0xD09C +0xC797 0xD09D +0xC798 0xD09E +0xC799 0xD09F +0xC79A 0xD0A0 +0xC79B 0xD0A1 +0xC79C 0xD0A2 +0xC79D 0xD0A3 +0xC7A1 0xD0A4 +0xC7A2 0xD0A5 +0xC7A3 0xD0A6 +0xC7A4 0xD0A7 +0xC7A5 0xD0A8 +0xC7A6 0xD0A9 +0xC7A7 0xD0AA +0xC7A8 0xD0AB +0xC7A9 0xD0AC +0xC7AA 0xD0AD +0xC7AB 0xD0AE +0xC7AC 0xD0AF +0xC7AD 0xD0B0 +0xC7AE 0xD0B1 +0xC7AF 0xD0B2 +0xC7B0 0xD0B3 +0xC7B1 0xD0B4 +0xC7B3 0xD0B5 +0xC7B4 0xD0B6 +0xC7B5 0xD0B7 +0xC7B6 0xD0B8 +0xC7B7 0xD0B9 +0xC7B8 0xD0BA +0xC7B9 0xD0BB +0xC7BA 0xD0BC +0xC7BB 0xD0BD +0xC7BC 0xD0BE +0xC7BD 0xD0BF +0xC841 0x314C +0xC861 0xD0C0 +0xC862 0xD0C1 +0xC863 0xD0C2 +0xC864 0xD0C3 +0xC865 0xD0C4 +0xC866 0xD0C5 +0xC867 0xD0C6 +0xC868 0xD0C7 +0xC869 0xD0C8 +0xC86A 0xD0C9 +0xC86B 0xD0CA +0xC86C 0xD0CB +0xC86D 0xD0CC +0xC86E 0xD0CD +0xC86F 0xD0CE +0xC870 0xD0CF +0xC871 0xD0D0 +0xC873 0xD0D1 +0xC874 0xD0D2 +0xC875 0xD0D3 +0xC876 0xD0D4 +0xC877 0xD0D5 +0xC878 0xD0D6 +0xC879 0xD0D7 +0xC87A 0xD0D8 +0xC87B 0xD0D9 +0xC87C 0xD0DA +0xC87D 0xD0DB +0xC881 0xD0DC +0xC882 0xD0DD +0xC883 0xD0DE +0xC884 0xD0DF +0xC885 0xD0E0 +0xC886 0xD0E1 +0xC887 0xD0E2 +0xC888 0xD0E3 +0xC889 0xD0E4 +0xC88A 0xD0E5 +0xC88B 0xD0E6 +0xC88C 0xD0E7 +0xC88D 0xD0E8 +0xC88E 0xD0E9 +0xC88F 0xD0EA +0xC890 0xD0EB +0xC891 0xD0EC +0xC893 0xD0ED +0xC894 0xD0EE +0xC895 0xD0EF +0xC896 0xD0F0 +0xC897 0xD0F1 +0xC898 0xD0F2 +0xC899 0xD0F3 +0xC89A 0xD0F4 +0xC89B 0xD0F5 +0xC89C 0xD0F6 +0xC89D 0xD0F7 +0xC8A1 0xD0F8 +0xC8A2 0xD0F9 +0xC8A3 0xD0FA +0xC8A4 0xD0FB +0xC8A5 0xD0FC +0xC8A6 0xD0FD +0xC8A7 0xD0FE +0xC8A8 0xD0FF +0xC8A9 0xD100 +0xC8AA 0xD101 +0xC8AB 0xD102 +0xC8AC 0xD103 +0xC8AD 0xD104 +0xC8AE 0xD105 +0xC8AF 0xD106 +0xC8B0 0xD107 +0xC8B1 0xD108 +0xC8B3 0xD109 +0xC8B4 0xD10A +0xC8B5 0xD10B +0xC8B6 0xD10C +0xC8B7 0xD10D +0xC8B8 0xD10E +0xC8B9 0xD10F +0xC8BA 0xD110 +0xC8BB 0xD111 +0xC8BC 0xD112 +0xC8BD 0xD113 +0xC8C1 0xD114 +0xC8C2 0xD115 +0xC8C3 0xD116 +0xC8C4 0xD117 +0xC8C5 0xD118 +0xC8C6 0xD119 +0xC8C7 0xD11A +0xC8C8 0xD11B +0xC8C9 0xD11C +0xC8CA 0xD11D +0xC8CB 0xD11E +0xC8CC 0xD11F +0xC8CD 0xD120 +0xC8CE 0xD121 +0xC8CF 0xD122 +0xC8D0 0xD123 +0xC8D1 0xD124 +0xC8D3 0xD125 +0xC8D4 0xD126 +0xC8D5 0xD127 +0xC8D6 0xD128 +0xC8D7 0xD129 +0xC8D8 0xD12A +0xC8D9 0xD12B +0xC8DA 0xD12C +0xC8DB 0xD12D +0xC8DC 0xD12E +0xC8DD 0xD12F +0xC8E1 0xD130 +0xC8E2 0xD131 +0xC8E3 0xD132 +0xC8E4 0xD133 +0xC8E5 0xD134 +0xC8E6 0xD135 +0xC8E7 0xD136 +0xC8E8 0xD137 +0xC8E9 0xD138 +0xC8EA 0xD139 +0xC8EB 0xD13A +0xC8EC 0xD13B +0xC8ED 0xD13C +0xC8EE 0xD13D +0xC8EF 0xD13E +0xC8F0 0xD13F +0xC8F1 0xD140 +0xC8F3 0xD141 +0xC8F4 0xD142 +0xC8F5 0xD143 +0xC8F6 0xD144 +0xC8F7 0xD145 +0xC8F8 0xD146 +0xC8F9 0xD147 +0xC8FA 0xD148 +0xC8FB 0xD149 +0xC8FC 0xD14A +0xC8FD 0xD14B +0xC941 0xD14C +0xC942 0xD14D +0xC943 0xD14E +0xC944 0xD14F +0xC945 0xD150 +0xC946 0xD151 +0xC947 0xD152 +0xC948 0xD153 +0xC949 0xD154 +0xC94A 0xD155 +0xC94B 0xD156 +0xC94C 0xD157 +0xC94D 0xD158 +0xC94E 0xD159 +0xC94F 0xD15A +0xC950 0xD15B +0xC951 0xD15C +0xC953 0xD15D +0xC954 0xD15E +0xC955 0xD15F +0xC956 0xD160 +0xC957 0xD161 +0xC958 0xD162 +0xC959 0xD163 +0xC95A 0xD164 +0xC95B 0xD165 +0xC95C 0xD166 +0xC95D 0xD167 +0xC961 0xD168 +0xC962 0xD169 +0xC963 0xD16A +0xC964 0xD16B +0xC965 0xD16C +0xC966 0xD16D +0xC967 0xD16E +0xC968 0xD16F +0xC969 0xD170 +0xC96A 0xD171 +0xC96B 0xD172 +0xC96C 0xD173 +0xC96D 0xD174 +0xC96E 0xD175 +0xC96F 0xD176 +0xC970 0xD177 +0xC971 0xD178 +0xC973 0xD179 +0xC974 0xD17A +0xC975 0xD17B +0xC976 0xD17C +0xC977 0xD17D +0xC978 0xD17E +0xC979 0xD17F +0xC97A 0xD180 +0xC97B 0xD181 +0xC97C 0xD182 +0xC97D 0xD183 +0xC981 0xD184 +0xC982 0xD185 +0xC983 0xD186 +0xC984 0xD187 +0xC985 0xD188 +0xC986 0xD189 +0xC987 0xD18A +0xC988 0xD18B +0xC989 0xD18C +0xC98A 0xD18D +0xC98B 0xD18E +0xC98C 0xD18F +0xC98D 0xD190 +0xC98E 0xD191 +0xC98F 0xD192 +0xC990 0xD193 +0xC991 0xD194 +0xC993 0xD195 +0xC994 0xD196 +0xC995 0xD197 +0xC996 0xD198 +0xC997 0xD199 +0xC998 0xD19A +0xC999 0xD19B +0xC99A 0xD19C +0xC99B 0xD19D +0xC99C 0xD19E +0xC99D 0xD19F +0xC9A1 0xD1A0 +0xC9A2 0xD1A1 +0xC9A3 0xD1A2 +0xC9A4 0xD1A3 +0xC9A5 0xD1A4 +0xC9A6 0xD1A5 +0xC9A7 0xD1A6 +0xC9A8 0xD1A7 +0xC9A9 0xD1A8 +0xC9AA 0xD1A9 +0xC9AB 0xD1AA +0xC9AC 0xD1AB +0xC9AD 0xD1AC +0xC9AE 0xD1AD +0xC9AF 0xD1AE +0xC9B0 0xD1AF +0xC9B1 0xD1B0 +0xC9B3 0xD1B1 +0xC9B4 0xD1B2 +0xC9B5 0xD1B3 +0xC9B6 0xD1B4 +0xC9B7 0xD1B5 +0xC9B8 0xD1B6 +0xC9B9 0xD1B7 +0xC9BA 0xD1B8 +0xC9BB 0xD1B9 +0xC9BC 0xD1BA +0xC9BD 0xD1BB +0xC9C1 0xD1BC +0xC9C2 0xD1BD +0xC9C3 0xD1BE +0xC9C4 0xD1BF +0xC9C5 0xD1C0 +0xC9C6 0xD1C1 +0xC9C7 0xD1C2 +0xC9C8 0xD1C3 +0xC9C9 0xD1C4 +0xC9CA 0xD1C5 +0xC9CB 0xD1C6 +0xC9CC 0xD1C7 +0xC9CD 0xD1C8 +0xC9CE 0xD1C9 +0xC9CF 0xD1CA +0xC9D0 0xD1CB +0xC9D1 0xD1CC +0xC9D3 0xD1CD +0xC9D4 0xD1CE +0xC9D5 0xD1CF +0xC9D6 0xD1D0 +0xC9D7 0xD1D1 +0xC9D8 0xD1D2 +0xC9D9 0xD1D3 +0xC9DA 0xD1D4 +0xC9DB 0xD1D5 +0xC9DC 0xD1D6 +0xC9DD 0xD1D7 +0xC9E1 0xD1D8 +0xC9E2 0xD1D9 +0xC9E3 0xD1DA +0xC9E4 0xD1DB +0xC9E5 0xD1DC +0xC9E6 0xD1DD +0xC9E7 0xD1DE +0xC9E8 0xD1DF +0xC9E9 0xD1E0 +0xC9EA 0xD1E1 +0xC9EB 0xD1E2 +0xC9EC 0xD1E3 +0xC9ED 0xD1E4 +0xC9EE 0xD1E5 +0xC9EF 0xD1E6 +0xC9F0 0xD1E7 +0xC9F1 0xD1E8 +0xC9F3 0xD1E9 +0xC9F4 0xD1EA +0xC9F5 0xD1EB +0xC9F6 0xD1EC +0xC9F7 0xD1ED +0xC9F8 0xD1EE +0xC9F9 0xD1EF +0xC9FA 0xD1F0 +0xC9FB 0xD1F1 +0xC9FC 0xD1F2 +0xC9FD 0xD1F3 +0xCA41 0xD1F4 +0xCA42 0xD1F5 +0xCA43 0xD1F6 +0xCA44 0xD1F7 +0xCA45 0xD1F8 +0xCA46 0xD1F9 +0xCA47 0xD1FA +0xCA48 0xD1FB +0xCA49 0xD1FC +0xCA4A 0xD1FD +0xCA4B 0xD1FE +0xCA4C 0xD1FF +0xCA4D 0xD200 +0xCA4E 0xD201 +0xCA4F 0xD202 +0xCA50 0xD203 +0xCA51 0xD204 +0xCA53 0xD205 +0xCA54 0xD206 +0xCA55 0xD207 +0xCA56 0xD208 +0xCA57 0xD209 +0xCA58 0xD20A +0xCA59 0xD20B +0xCA5A 0xD20C +0xCA5B 0xD20D +0xCA5C 0xD20E +0xCA5D 0xD20F +0xCA61 0xD210 +0xCA62 0xD211 +0xCA63 0xD212 +0xCA64 0xD213 +0xCA65 0xD214 +0xCA66 0xD215 +0xCA67 0xD216 +0xCA68 0xD217 +0xCA69 0xD218 +0xCA6A 0xD219 +0xCA6B 0xD21A +0xCA6C 0xD21B +0xCA6D 0xD21C +0xCA6E 0xD21D +0xCA6F 0xD21E +0xCA70 0xD21F +0xCA71 0xD220 +0xCA73 0xD221 +0xCA74 0xD222 +0xCA75 0xD223 +0xCA76 0xD224 +0xCA77 0xD225 +0xCA78 0xD226 +0xCA79 0xD227 +0xCA7A 0xD228 +0xCA7B 0xD229 +0xCA7C 0xD22A +0xCA7D 0xD22B +0xCA81 0xD22C +0xCA82 0xD22D +0xCA83 0xD22E +0xCA84 0xD22F +0xCA85 0xD230 +0xCA86 0xD231 +0xCA87 0xD232 +0xCA88 0xD233 +0xCA89 0xD234 +0xCA8A 0xD235 +0xCA8B 0xD236 +0xCA8C 0xD237 +0xCA8D 0xD238 +0xCA8E 0xD239 +0xCA8F 0xD23A +0xCA90 0xD23B +0xCA91 0xD23C +0xCA93 0xD23D +0xCA94 0xD23E +0xCA95 0xD23F +0xCA96 0xD240 +0xCA97 0xD241 +0xCA98 0xD242 +0xCA99 0xD243 +0xCA9A 0xD244 +0xCA9B 0xD245 +0xCA9C 0xD246 +0xCA9D 0xD247 +0xCAA1 0xD248 +0xCAA2 0xD249 +0xCAA3 0xD24A +0xCAA4 0xD24B +0xCAA5 0xD24C +0xCAA6 0xD24D +0xCAA7 0xD24E +0xCAA8 0xD24F +0xCAA9 0xD250 +0xCAAA 0xD251 +0xCAAB 0xD252 +0xCAAC 0xD253 +0xCAAD 0xD254 +0xCAAE 0xD255 +0xCAAF 0xD256 +0xCAB0 0xD257 +0xCAB1 0xD258 +0xCAB3 0xD259 +0xCAB4 0xD25A +0xCAB5 0xD25B +0xCAB6 0xD25C +0xCAB7 0xD25D +0xCAB8 0xD25E +0xCAB9 0xD25F +0xCABA 0xD260 +0xCABB 0xD261 +0xCABC 0xD262 +0xCABD 0xD263 +0xCAC1 0xD264 +0xCAC2 0xD265 +0xCAC3 0xD266 +0xCAC4 0xD267 +0xCAC5 0xD268 +0xCAC6 0xD269 +0xCAC7 0xD26A +0xCAC8 0xD26B +0xCAC9 0xD26C +0xCACA 0xD26D +0xCACB 0xD26E +0xCACC 0xD26F +0xCACD 0xD270 +0xCACE 0xD271 +0xCACF 0xD272 +0xCAD0 0xD273 +0xCAD1 0xD274 +0xCAD3 0xD275 +0xCAD4 0xD276 +0xCAD5 0xD277 +0xCAD6 0xD278 +0xCAD7 0xD279 +0xCAD8 0xD27A +0xCAD9 0xD27B +0xCADA 0xD27C +0xCADB 0xD27D +0xCADC 0xD27E +0xCADD 0xD27F +0xCAE1 0xD280 +0xCAE2 0xD281 +0xCAE3 0xD282 +0xCAE4 0xD283 +0xCAE5 0xD284 +0xCAE6 0xD285 +0xCAE7 0xD286 +0xCAE8 0xD287 +0xCAE9 0xD288 +0xCAEA 0xD289 +0xCAEB 0xD28A +0xCAEC 0xD28B +0xCAED 0xD28C +0xCAEE 0xD28D +0xCAEF 0xD28E +0xCAF0 0xD28F +0xCAF1 0xD290 +0xCAF3 0xD291 +0xCAF4 0xD292 +0xCAF5 0xD293 +0xCAF6 0xD294 +0xCAF7 0xD295 +0xCAF8 0xD296 +0xCAF9 0xD297 +0xCAFA 0xD298 +0xCAFB 0xD299 +0xCAFC 0xD29A +0xCAFD 0xD29B +0xCB41 0xD29C +0xCB42 0xD29D +0xCB43 0xD29E +0xCB44 0xD29F +0xCB45 0xD2A0 +0xCB46 0xD2A1 +0xCB47 0xD2A2 +0xCB48 0xD2A3 +0xCB49 0xD2A4 +0xCB4A 0xD2A5 +0xCB4B 0xD2A6 +0xCB4C 0xD2A7 +0xCB4D 0xD2A8 +0xCB4E 0xD2A9 +0xCB4F 0xD2AA +0xCB50 0xD2AB +0xCB51 0xD2AC +0xCB53 0xD2AD +0xCB54 0xD2AE +0xCB55 0xD2AF +0xCB56 0xD2B0 +0xCB57 0xD2B1 +0xCB58 0xD2B2 +0xCB59 0xD2B3 +0xCB5A 0xD2B4 +0xCB5B 0xD2B5 +0xCB5C 0xD2B6 +0xCB5D 0xD2B7 +0xCB61 0xD2B8 +0xCB62 0xD2B9 +0xCB63 0xD2BA +0xCB64 0xD2BB +0xCB65 0xD2BC +0xCB66 0xD2BD +0xCB67 0xD2BE +0xCB68 0xD2BF +0xCB69 0xD2C0 +0xCB6A 0xD2C1 +0xCB6B 0xD2C2 +0xCB6C 0xD2C3 +0xCB6D 0xD2C4 +0xCB6E 0xD2C5 +0xCB6F 0xD2C6 +0xCB70 0xD2C7 +0xCB71 0xD2C8 +0xCB73 0xD2C9 +0xCB74 0xD2CA +0xCB75 0xD2CB +0xCB76 0xD2CC +0xCB77 0xD2CD +0xCB78 0xD2CE +0xCB79 0xD2CF +0xCB7A 0xD2D0 +0xCB7B 0xD2D1 +0xCB7C 0xD2D2 +0xCB7D 0xD2D3 +0xCB81 0xD2D4 +0xCB82 0xD2D5 +0xCB83 0xD2D6 +0xCB84 0xD2D7 +0xCB85 0xD2D8 +0xCB86 0xD2D9 +0xCB87 0xD2DA +0xCB88 0xD2DB +0xCB89 0xD2DC +0xCB8A 0xD2DD +0xCB8B 0xD2DE +0xCB8C 0xD2DF +0xCB8D 0xD2E0 +0xCB8E 0xD2E1 +0xCB8F 0xD2E2 +0xCB90 0xD2E3 +0xCB91 0xD2E4 +0xCB93 0xD2E5 +0xCB94 0xD2E6 +0xCB95 0xD2E7 +0xCB96 0xD2E8 +0xCB97 0xD2E9 +0xCB98 0xD2EA +0xCB99 0xD2EB +0xCB9A 0xD2EC +0xCB9B 0xD2ED +0xCB9C 0xD2EE +0xCB9D 0xD2EF +0xCBA1 0xD2F0 +0xCBA2 0xD2F1 +0xCBA3 0xD2F2 +0xCBA4 0xD2F3 +0xCBA5 0xD2F4 +0xCBA6 0xD2F5 +0xCBA7 0xD2F6 +0xCBA8 0xD2F7 +0xCBA9 0xD2F8 +0xCBAA 0xD2F9 +0xCBAB 0xD2FA +0xCBAC 0xD2FB +0xCBAD 0xD2FC +0xCBAE 0xD2FD +0xCBAF 0xD2FE +0xCBB0 0xD2FF +0xCBB1 0xD300 +0xCBB3 0xD301 +0xCBB4 0xD302 +0xCBB5 0xD303 +0xCBB6 0xD304 +0xCBB7 0xD305 +0xCBB8 0xD306 +0xCBB9 0xD307 +0xCBBA 0xD308 +0xCBBB 0xD309 +0xCBBC 0xD30A +0xCBBD 0xD30B +0xCC41 0x314D +0xCC61 0xD30C +0xCC62 0xD30D +0xCC63 0xD30E +0xCC64 0xD30F +0xCC65 0xD310 +0xCC66 0xD311 +0xCC67 0xD312 +0xCC68 0xD313 +0xCC69 0xD314 +0xCC6A 0xD315 +0xCC6B 0xD316 +0xCC6C 0xD317 +0xCC6D 0xD318 +0xCC6E 0xD319 +0xCC6F 0xD31A +0xCC70 0xD31B +0xCC71 0xD31C +0xCC73 0xD31D +0xCC74 0xD31E +0xCC75 0xD31F +0xCC76 0xD320 +0xCC77 0xD321 +0xCC78 0xD322 +0xCC79 0xD323 +0xCC7A 0xD324 +0xCC7B 0xD325 +0xCC7C 0xD326 +0xCC7D 0xD327 +0xCC81 0xD328 +0xCC82 0xD329 +0xCC83 0xD32A +0xCC84 0xD32B +0xCC85 0xD32C +0xCC86 0xD32D +0xCC87 0xD32E +0xCC88 0xD32F +0xCC89 0xD330 +0xCC8A 0xD331 +0xCC8B 0xD332 +0xCC8C 0xD333 +0xCC8D 0xD334 +0xCC8E 0xD335 +0xCC8F 0xD336 +0xCC90 0xD337 +0xCC91 0xD338 +0xCC93 0xD339 +0xCC94 0xD33A +0xCC95 0xD33B +0xCC96 0xD33C +0xCC97 0xD33D +0xCC98 0xD33E +0xCC99 0xD33F +0xCC9A 0xD340 +0xCC9B 0xD341 +0xCC9C 0xD342 +0xCC9D 0xD343 +0xCCA1 0xD344 +0xCCA2 0xD345 +0xCCA3 0xD346 +0xCCA4 0xD347 +0xCCA5 0xD348 +0xCCA6 0xD349 +0xCCA7 0xD34A +0xCCA8 0xD34B +0xCCA9 0xD34C +0xCCAA 0xD34D +0xCCAB 0xD34E +0xCCAC 0xD34F +0xCCAD 0xD350 +0xCCAE 0xD351 +0xCCAF 0xD352 +0xCCB0 0xD353 +0xCCB1 0xD354 +0xCCB3 0xD355 +0xCCB4 0xD356 +0xCCB5 0xD357 +0xCCB6 0xD358 +0xCCB7 0xD359 +0xCCB8 0xD35A +0xCCB9 0xD35B +0xCCBA 0xD35C +0xCCBB 0xD35D +0xCCBC 0xD35E +0xCCBD 0xD35F +0xCCC1 0xD360 +0xCCC2 0xD361 +0xCCC3 0xD362 +0xCCC4 0xD363 +0xCCC5 0xD364 +0xCCC6 0xD365 +0xCCC7 0xD366 +0xCCC8 0xD367 +0xCCC9 0xD368 +0xCCCA 0xD369 +0xCCCB 0xD36A +0xCCCC 0xD36B +0xCCCD 0xD36C +0xCCCE 0xD36D +0xCCCF 0xD36E +0xCCD0 0xD36F +0xCCD1 0xD370 +0xCCD3 0xD371 +0xCCD4 0xD372 +0xCCD5 0xD373 +0xCCD6 0xD374 +0xCCD7 0xD375 +0xCCD8 0xD376 +0xCCD9 0xD377 +0xCCDA 0xD378 +0xCCDB 0xD379 +0xCCDC 0xD37A +0xCCDD 0xD37B +0xCCE1 0xD37C +0xCCE2 0xD37D +0xCCE3 0xD37E +0xCCE4 0xD37F +0xCCE5 0xD380 +0xCCE6 0xD381 +0xCCE7 0xD382 +0xCCE8 0xD383 +0xCCE9 0xD384 +0xCCEA 0xD385 +0xCCEB 0xD386 +0xCCEC 0xD387 +0xCCED 0xD388 +0xCCEE 0xD389 +0xCCEF 0xD38A +0xCCF0 0xD38B +0xCCF1 0xD38C +0xCCF3 0xD38D +0xCCF4 0xD38E +0xCCF5 0xD38F +0xCCF6 0xD390 +0xCCF7 0xD391 +0xCCF8 0xD392 +0xCCF9 0xD393 +0xCCFA 0xD394 +0xCCFB 0xD395 +0xCCFC 0xD396 +0xCCFD 0xD397 +0xCD41 0xD398 +0xCD42 0xD399 +0xCD43 0xD39A +0xCD44 0xD39B +0xCD45 0xD39C +0xCD46 0xD39D +0xCD47 0xD39E +0xCD48 0xD39F +0xCD49 0xD3A0 +0xCD4A 0xD3A1 +0xCD4B 0xD3A2 +0xCD4C 0xD3A3 +0xCD4D 0xD3A4 +0xCD4E 0xD3A5 +0xCD4F 0xD3A6 +0xCD50 0xD3A7 +0xCD51 0xD3A8 +0xCD53 0xD3A9 +0xCD54 0xD3AA +0xCD55 0xD3AB +0xCD56 0xD3AC +0xCD57 0xD3AD +0xCD58 0xD3AE +0xCD59 0xD3AF +0xCD5A 0xD3B0 +0xCD5B 0xD3B1 +0xCD5C 0xD3B2 +0xCD5D 0xD3B3 +0xCD61 0xD3B4 +0xCD62 0xD3B5 +0xCD63 0xD3B6 +0xCD64 0xD3B7 +0xCD65 0xD3B8 +0xCD66 0xD3B9 +0xCD67 0xD3BA +0xCD68 0xD3BB +0xCD69 0xD3BC +0xCD6A 0xD3BD +0xCD6B 0xD3BE +0xCD6C 0xD3BF +0xCD6D 0xD3C0 +0xCD6E 0xD3C1 +0xCD6F 0xD3C2 +0xCD70 0xD3C3 +0xCD71 0xD3C4 +0xCD73 0xD3C5 +0xCD74 0xD3C6 +0xCD75 0xD3C7 +0xCD76 0xD3C8 +0xCD77 0xD3C9 +0xCD78 0xD3CA +0xCD79 0xD3CB +0xCD7A 0xD3CC +0xCD7B 0xD3CD +0xCD7C 0xD3CE +0xCD7D 0xD3CF +0xCD81 0xD3D0 +0xCD82 0xD3D1 +0xCD83 0xD3D2 +0xCD84 0xD3D3 +0xCD85 0xD3D4 +0xCD86 0xD3D5 +0xCD87 0xD3D6 +0xCD88 0xD3D7 +0xCD89 0xD3D8 +0xCD8A 0xD3D9 +0xCD8B 0xD3DA +0xCD8C 0xD3DB +0xCD8D 0xD3DC +0xCD8E 0xD3DD +0xCD8F 0xD3DE +0xCD90 0xD3DF +0xCD91 0xD3E0 +0xCD93 0xD3E1 +0xCD94 0xD3E2 +0xCD95 0xD3E3 +0xCD96 0xD3E4 +0xCD97 0xD3E5 +0xCD98 0xD3E6 +0xCD99 0xD3E7 +0xCD9A 0xD3E8 +0xCD9B 0xD3E9 +0xCD9C 0xD3EA +0xCD9D 0xD3EB +0xCDA1 0xD3EC +0xCDA2 0xD3ED +0xCDA3 0xD3EE +0xCDA4 0xD3EF +0xCDA5 0xD3F0 +0xCDA6 0xD3F1 +0xCDA7 0xD3F2 +0xCDA8 0xD3F3 +0xCDA9 0xD3F4 +0xCDAA 0xD3F5 +0xCDAB 0xD3F6 +0xCDAC 0xD3F7 +0xCDAD 0xD3F8 +0xCDAE 0xD3F9 +0xCDAF 0xD3FA +0xCDB0 0xD3FB +0xCDB1 0xD3FC +0xCDB3 0xD3FD +0xCDB4 0xD3FE +0xCDB5 0xD3FF +0xCDB6 0xD400 +0xCDB7 0xD401 +0xCDB8 0xD402 +0xCDB9 0xD403 +0xCDBA 0xD404 +0xCDBB 0xD405 +0xCDBC 0xD406 +0xCDBD 0xD407 +0xCDC1 0xD408 +0xCDC2 0xD409 +0xCDC3 0xD40A +0xCDC4 0xD40B +0xCDC5 0xD40C +0xCDC6 0xD40D +0xCDC7 0xD40E +0xCDC8 0xD40F +0xCDC9 0xD410 +0xCDCA 0xD411 +0xCDCB 0xD412 +0xCDCC 0xD413 +0xCDCD 0xD414 +0xCDCE 0xD415 +0xCDCF 0xD416 +0xCDD0 0xD417 +0xCDD1 0xD418 +0xCDD3 0xD419 +0xCDD4 0xD41A +0xCDD5 0xD41B +0xCDD6 0xD41C +0xCDD7 0xD41D +0xCDD8 0xD41E +0xCDD9 0xD41F +0xCDDA 0xD420 +0xCDDB 0xD421 +0xCDDC 0xD422 +0xCDDD 0xD423 +0xCDE1 0xD424 +0xCDE2 0xD425 +0xCDE3 0xD426 +0xCDE4 0xD427 +0xCDE5 0xD428 +0xCDE6 0xD429 +0xCDE7 0xD42A +0xCDE8 0xD42B +0xCDE9 0xD42C +0xCDEA 0xD42D +0xCDEB 0xD42E +0xCDEC 0xD42F +0xCDED 0xD430 +0xCDEE 0xD431 +0xCDEF 0xD432 +0xCDF0 0xD433 +0xCDF1 0xD434 +0xCDF3 0xD435 +0xCDF4 0xD436 +0xCDF5 0xD437 +0xCDF6 0xD438 +0xCDF7 0xD439 +0xCDF8 0xD43A +0xCDF9 0xD43B +0xCDFA 0xD43C +0xCDFB 0xD43D +0xCDFC 0xD43E +0xCDFD 0xD43F +0xCE41 0xD440 +0xCE42 0xD441 +0xCE43 0xD442 +0xCE44 0xD443 +0xCE45 0xD444 +0xCE46 0xD445 +0xCE47 0xD446 +0xCE48 0xD447 +0xCE49 0xD448 +0xCE4A 0xD449 +0xCE4B 0xD44A +0xCE4C 0xD44B +0xCE4D 0xD44C +0xCE4E 0xD44D +0xCE4F 0xD44E +0xCE50 0xD44F +0xCE51 0xD450 +0xCE53 0xD451 +0xCE54 0xD452 +0xCE55 0xD453 +0xCE56 0xD454 +0xCE57 0xD455 +0xCE58 0xD456 +0xCE59 0xD457 +0xCE5A 0xD458 +0xCE5B 0xD459 +0xCE5C 0xD45A +0xCE5D 0xD45B +0xCE61 0xD45C +0xCE62 0xD45D +0xCE63 0xD45E +0xCE64 0xD45F +0xCE65 0xD460 +0xCE66 0xD461 +0xCE67 0xD462 +0xCE68 0xD463 +0xCE69 0xD464 +0xCE6A 0xD465 +0xCE6B 0xD466 +0xCE6C 0xD467 +0xCE6D 0xD468 +0xCE6E 0xD469 +0xCE6F 0xD46A +0xCE70 0xD46B +0xCE71 0xD46C +0xCE73 0xD46D +0xCE74 0xD46E +0xCE75 0xD46F +0xCE76 0xD470 +0xCE77 0xD471 +0xCE78 0xD472 +0xCE79 0xD473 +0xCE7A 0xD474 +0xCE7B 0xD475 +0xCE7C 0xD476 +0xCE7D 0xD477 +0xCE81 0xD478 +0xCE82 0xD479 +0xCE83 0xD47A +0xCE84 0xD47B +0xCE85 0xD47C +0xCE86 0xD47D +0xCE87 0xD47E +0xCE88 0xD47F +0xCE89 0xD480 +0xCE8A 0xD481 +0xCE8B 0xD482 +0xCE8C 0xD483 +0xCE8D 0xD484 +0xCE8E 0xD485 +0xCE8F 0xD486 +0xCE90 0xD487 +0xCE91 0xD488 +0xCE93 0xD489 +0xCE94 0xD48A +0xCE95 0xD48B +0xCE96 0xD48C +0xCE97 0xD48D +0xCE98 0xD48E +0xCE99 0xD48F +0xCE9A 0xD490 +0xCE9B 0xD491 +0xCE9C 0xD492 +0xCE9D 0xD493 +0xCEA1 0xD494 +0xCEA2 0xD495 +0xCEA3 0xD496 +0xCEA4 0xD497 +0xCEA5 0xD498 +0xCEA6 0xD499 +0xCEA7 0xD49A +0xCEA8 0xD49B +0xCEA9 0xD49C +0xCEAA 0xD49D +0xCEAB 0xD49E +0xCEAC 0xD49F +0xCEAD 0xD4A0 +0xCEAE 0xD4A1 +0xCEAF 0xD4A2 +0xCEB0 0xD4A3 +0xCEB1 0xD4A4 +0xCEB3 0xD4A5 +0xCEB4 0xD4A6 +0xCEB5 0xD4A7 +0xCEB6 0xD4A8 +0xCEB7 0xD4A9 +0xCEB8 0xD4AA +0xCEB9 0xD4AB +0xCEBA 0xD4AC +0xCEBB 0xD4AD +0xCEBC 0xD4AE +0xCEBD 0xD4AF +0xCEC1 0xD4B0 +0xCEC2 0xD4B1 +0xCEC3 0xD4B2 +0xCEC4 0xD4B3 +0xCEC5 0xD4B4 +0xCEC6 0xD4B5 +0xCEC7 0xD4B6 +0xCEC8 0xD4B7 +0xCEC9 0xD4B8 +0xCECA 0xD4B9 +0xCECB 0xD4BA +0xCECC 0xD4BB +0xCECD 0xD4BC +0xCECE 0xD4BD +0xCECF 0xD4BE +0xCED0 0xD4BF +0xCED1 0xD4C0 +0xCED3 0xD4C1 +0xCED4 0xD4C2 +0xCED5 0xD4C3 +0xCED6 0xD4C4 +0xCED7 0xD4C5 +0xCED8 0xD4C6 +0xCED9 0xD4C7 +0xCEDA 0xD4C8 +0xCEDB 0xD4C9 +0xCEDC 0xD4CA +0xCEDD 0xD4CB +0xCEE1 0xD4CC +0xCEE2 0xD4CD +0xCEE3 0xD4CE +0xCEE4 0xD4CF +0xCEE5 0xD4D0 +0xCEE6 0xD4D1 +0xCEE7 0xD4D2 +0xCEE8 0xD4D3 +0xCEE9 0xD4D4 +0xCEEA 0xD4D5 +0xCEEB 0xD4D6 +0xCEEC 0xD4D7 +0xCEED 0xD4D8 +0xCEEE 0xD4D9 +0xCEEF 0xD4DA +0xCEF0 0xD4DB +0xCEF1 0xD4DC +0xCEF3 0xD4DD +0xCEF4 0xD4DE +0xCEF5 0xD4DF +0xCEF6 0xD4E0 +0xCEF7 0xD4E1 +0xCEF8 0xD4E2 +0xCEF9 0xD4E3 +0xCEFA 0xD4E4 +0xCEFB 0xD4E5 +0xCEFC 0xD4E6 +0xCEFD 0xD4E7 +0xCF41 0xD4E8 +0xCF42 0xD4E9 +0xCF43 0xD4EA +0xCF44 0xD4EB +0xCF45 0xD4EC +0xCF46 0xD4ED +0xCF47 0xD4EE +0xCF48 0xD4EF +0xCF49 0xD4F0 +0xCF4A 0xD4F1 +0xCF4B 0xD4F2 +0xCF4C 0xD4F3 +0xCF4D 0xD4F4 +0xCF4E 0xD4F5 +0xCF4F 0xD4F6 +0xCF50 0xD4F7 +0xCF51 0xD4F8 +0xCF53 0xD4F9 +0xCF54 0xD4FA +0xCF55 0xD4FB +0xCF56 0xD4FC +0xCF57 0xD4FD +0xCF58 0xD4FE +0xCF59 0xD4FF +0xCF5A 0xD500 +0xCF5B 0xD501 +0xCF5C 0xD502 +0xCF5D 0xD503 +0xCF61 0xD504 +0xCF62 0xD505 +0xCF63 0xD506 +0xCF64 0xD507 +0xCF65 0xD508 +0xCF66 0xD509 +0xCF67 0xD50A +0xCF68 0xD50B +0xCF69 0xD50C +0xCF6A 0xD50D +0xCF6B 0xD50E +0xCF6C 0xD50F +0xCF6D 0xD510 +0xCF6E 0xD511 +0xCF6F 0xD512 +0xCF70 0xD513 +0xCF71 0xD514 +0xCF73 0xD515 +0xCF74 0xD516 +0xCF75 0xD517 +0xCF76 0xD518 +0xCF77 0xD519 +0xCF78 0xD51A +0xCF79 0xD51B +0xCF7A 0xD51C +0xCF7B 0xD51D +0xCF7C 0xD51E +0xCF7D 0xD51F +0xCF81 0xD520 +0xCF82 0xD521 +0xCF83 0xD522 +0xCF84 0xD523 +0xCF85 0xD524 +0xCF86 0xD525 +0xCF87 0xD526 +0xCF88 0xD527 +0xCF89 0xD528 +0xCF8A 0xD529 +0xCF8B 0xD52A +0xCF8C 0xD52B +0xCF8D 0xD52C +0xCF8E 0xD52D +0xCF8F 0xD52E +0xCF90 0xD52F +0xCF91 0xD530 +0xCF93 0xD531 +0xCF94 0xD532 +0xCF95 0xD533 +0xCF96 0xD534 +0xCF97 0xD535 +0xCF98 0xD536 +0xCF99 0xD537 +0xCF9A 0xD538 +0xCF9B 0xD539 +0xCF9C 0xD53A +0xCF9D 0xD53B +0xCFA1 0xD53C +0xCFA2 0xD53D +0xCFA3 0xD53E +0xCFA4 0xD53F +0xCFA5 0xD540 +0xCFA6 0xD541 +0xCFA7 0xD542 +0xCFA8 0xD543 +0xCFA9 0xD544 +0xCFAA 0xD545 +0xCFAB 0xD546 +0xCFAC 0xD547 +0xCFAD 0xD548 +0xCFAE 0xD549 +0xCFAF 0xD54A +0xCFB0 0xD54B +0xCFB1 0xD54C +0xCFB3 0xD54D +0xCFB4 0xD54E +0xCFB5 0xD54F +0xCFB6 0xD550 +0xCFB7 0xD551 +0xCFB8 0xD552 +0xCFB9 0xD553 +0xCFBA 0xD554 +0xCFBB 0xD555 +0xCFBC 0xD556 +0xCFBD 0xD557 +0xD041 0x314E +0xD061 0xD558 +0xD062 0xD559 +0xD063 0xD55A +0xD064 0xD55B +0xD065 0xD55C +0xD066 0xD55D +0xD067 0xD55E +0xD068 0xD55F +0xD069 0xD560 +0xD06A 0xD561 +0xD06B 0xD562 +0xD06C 0xD563 +0xD06D 0xD564 +0xD06E 0xD565 +0xD06F 0xD566 +0xD070 0xD567 +0xD071 0xD568 +0xD073 0xD569 +0xD074 0xD56A +0xD075 0xD56B +0xD076 0xD56C +0xD077 0xD56D +0xD078 0xD56E +0xD079 0xD56F +0xD07A 0xD570 +0xD07B 0xD571 +0xD07C 0xD572 +0xD07D 0xD573 +0xD081 0xD574 +0xD082 0xD575 +0xD083 0xD576 +0xD084 0xD577 +0xD085 0xD578 +0xD086 0xD579 +0xD087 0xD57A +0xD088 0xD57B +0xD089 0xD57C +0xD08A 0xD57D +0xD08B 0xD57E +0xD08C 0xD57F +0xD08D 0xD580 +0xD08E 0xD581 +0xD08F 0xD582 +0xD090 0xD583 +0xD091 0xD584 +0xD093 0xD585 +0xD094 0xD586 +0xD095 0xD587 +0xD096 0xD588 +0xD097 0xD589 +0xD098 0xD58A +0xD099 0xD58B +0xD09A 0xD58C +0xD09B 0xD58D +0xD09C 0xD58E +0xD09D 0xD58F +0xD0A1 0xD590 +0xD0A2 0xD591 +0xD0A3 0xD592 +0xD0A4 0xD593 +0xD0A5 0xD594 +0xD0A6 0xD595 +0xD0A7 0xD596 +0xD0A8 0xD597 +0xD0A9 0xD598 +0xD0AA 0xD599 +0xD0AB 0xD59A +0xD0AC 0xD59B +0xD0AD 0xD59C +0xD0AE 0xD59D +0xD0AF 0xD59E +0xD0B0 0xD59F +0xD0B1 0xD5A0 +0xD0B3 0xD5A1 +0xD0B4 0xD5A2 +0xD0B5 0xD5A3 +0xD0B6 0xD5A4 +0xD0B7 0xD5A5 +0xD0B8 0xD5A6 +0xD0B9 0xD5A7 +0xD0BA 0xD5A8 +0xD0BB 0xD5A9 +0xD0BC 0xD5AA +0xD0BD 0xD5AB +0xD0C1 0xD5AC +0xD0C2 0xD5AD +0xD0C3 0xD5AE +0xD0C4 0xD5AF +0xD0C5 0xD5B0 +0xD0C6 0xD5B1 +0xD0C7 0xD5B2 +0xD0C8 0xD5B3 +0xD0C9 0xD5B4 +0xD0CA 0xD5B5 +0xD0CB 0xD5B6 +0xD0CC 0xD5B7 +0xD0CD 0xD5B8 +0xD0CE 0xD5B9 +0xD0CF 0xD5BA +0xD0D0 0xD5BB +0xD0D1 0xD5BC +0xD0D3 0xD5BD +0xD0D4 0xD5BE +0xD0D5 0xD5BF +0xD0D6 0xD5C0 +0xD0D7 0xD5C1 +0xD0D8 0xD5C2 +0xD0D9 0xD5C3 +0xD0DA 0xD5C4 +0xD0DB 0xD5C5 +0xD0DC 0xD5C6 +0xD0DD 0xD5C7 +0xD0E1 0xD5C8 +0xD0E2 0xD5C9 +0xD0E3 0xD5CA +0xD0E4 0xD5CB +0xD0E5 0xD5CC +0xD0E6 0xD5CD +0xD0E7 0xD5CE +0xD0E8 0xD5CF +0xD0E9 0xD5D0 +0xD0EA 0xD5D1 +0xD0EB 0xD5D2 +0xD0EC 0xD5D3 +0xD0ED 0xD5D4 +0xD0EE 0xD5D5 +0xD0EF 0xD5D6 +0xD0F0 0xD5D7 +0xD0F1 0xD5D8 +0xD0F3 0xD5D9 +0xD0F4 0xD5DA +0xD0F5 0xD5DB +0xD0F6 0xD5DC +0xD0F7 0xD5DD +0xD0F8 0xD5DE +0xD0F9 0xD5DF +0xD0FA 0xD5E0 +0xD0FB 0xD5E1 +0xD0FC 0xD5E2 +0xD0FD 0xD5E3 +0xD141 0xD5E4 +0xD142 0xD5E5 +0xD143 0xD5E6 +0xD144 0xD5E7 +0xD145 0xD5E8 +0xD146 0xD5E9 +0xD147 0xD5EA +0xD148 0xD5EB +0xD149 0xD5EC +0xD14A 0xD5ED +0xD14B 0xD5EE +0xD14C 0xD5EF +0xD14D 0xD5F0 +0xD14E 0xD5F1 +0xD14F 0xD5F2 +0xD150 0xD5F3 +0xD151 0xD5F4 +0xD153 0xD5F5 +0xD154 0xD5F6 +0xD155 0xD5F7 +0xD156 0xD5F8 +0xD157 0xD5F9 +0xD158 0xD5FA +0xD159 0xD5FB +0xD15A 0xD5FC +0xD15B 0xD5FD +0xD15C 0xD5FE +0xD15D 0xD5FF +0xD161 0xD600 +0xD162 0xD601 +0xD163 0xD602 +0xD164 0xD603 +0xD165 0xD604 +0xD166 0xD605 +0xD167 0xD606 +0xD168 0xD607 +0xD169 0xD608 +0xD16A 0xD609 +0xD16B 0xD60A +0xD16C 0xD60B +0xD16D 0xD60C +0xD16E 0xD60D +0xD16F 0xD60E +0xD170 0xD60F +0xD171 0xD610 +0xD173 0xD611 +0xD174 0xD612 +0xD175 0xD613 +0xD176 0xD614 +0xD177 0xD615 +0xD178 0xD616 +0xD179 0xD617 +0xD17A 0xD618 +0xD17B 0xD619 +0xD17C 0xD61A +0xD17D 0xD61B +0xD181 0xD61C +0xD182 0xD61D +0xD183 0xD61E +0xD184 0xD61F +0xD185 0xD620 +0xD186 0xD621 +0xD187 0xD622 +0xD188 0xD623 +0xD189 0xD624 +0xD18A 0xD625 +0xD18B 0xD626 +0xD18C 0xD627 +0xD18D 0xD628 +0xD18E 0xD629 +0xD18F 0xD62A +0xD190 0xD62B +0xD191 0xD62C +0xD193 0xD62D +0xD194 0xD62E +0xD195 0xD62F +0xD196 0xD630 +0xD197 0xD631 +0xD198 0xD632 +0xD199 0xD633 +0xD19A 0xD634 +0xD19B 0xD635 +0xD19C 0xD636 +0xD19D 0xD637 +0xD1A1 0xD638 +0xD1A2 0xD639 +0xD1A3 0xD63A +0xD1A4 0xD63B +0xD1A5 0xD63C +0xD1A6 0xD63D +0xD1A7 0xD63E +0xD1A8 0xD63F +0xD1A9 0xD640 +0xD1AA 0xD641 +0xD1AB 0xD642 +0xD1AC 0xD643 +0xD1AD 0xD644 +0xD1AE 0xD645 +0xD1AF 0xD646 +0xD1B0 0xD647 +0xD1B1 0xD648 +0xD1B3 0xD649 +0xD1B4 0xD64A +0xD1B5 0xD64B +0xD1B6 0xD64C +0xD1B7 0xD64D +0xD1B8 0xD64E +0xD1B9 0xD64F +0xD1BA 0xD650 +0xD1BB 0xD651 +0xD1BC 0xD652 +0xD1BD 0xD653 +0xD1C1 0xD654 +0xD1C2 0xD655 +0xD1C3 0xD656 +0xD1C4 0xD657 +0xD1C5 0xD658 +0xD1C6 0xD659 +0xD1C7 0xD65A +0xD1C8 0xD65B +0xD1C9 0xD65C +0xD1CA 0xD65D +0xD1CB 0xD65E +0xD1CC 0xD65F +0xD1CD 0xD660 +0xD1CE 0xD661 +0xD1CF 0xD662 +0xD1D0 0xD663 +0xD1D1 0xD664 +0xD1D3 0xD665 +0xD1D4 0xD666 +0xD1D5 0xD667 +0xD1D6 0xD668 +0xD1D7 0xD669 +0xD1D8 0xD66A +0xD1D9 0xD66B +0xD1DA 0xD66C +0xD1DB 0xD66D +0xD1DC 0xD66E +0xD1DD 0xD66F +0xD1E1 0xD670 +0xD1E2 0xD671 +0xD1E3 0xD672 +0xD1E4 0xD673 +0xD1E5 0xD674 +0xD1E6 0xD675 +0xD1E7 0xD676 +0xD1E8 0xD677 +0xD1E9 0xD678 +0xD1EA 0xD679 +0xD1EB 0xD67A +0xD1EC 0xD67B +0xD1ED 0xD67C +0xD1EE 0xD67D +0xD1EF 0xD67E +0xD1F0 0xD67F +0xD1F1 0xD680 +0xD1F3 0xD681 +0xD1F4 0xD682 +0xD1F5 0xD683 +0xD1F6 0xD684 +0xD1F7 0xD685 +0xD1F8 0xD686 +0xD1F9 0xD687 +0xD1FA 0xD688 +0xD1FB 0xD689 +0xD1FC 0xD68A +0xD1FD 0xD68B +0xD241 0xD68C +0xD242 0xD68D +0xD243 0xD68E +0xD244 0xD68F +0xD245 0xD690 +0xD246 0xD691 +0xD247 0xD692 +0xD248 0xD693 +0xD249 0xD694 +0xD24A 0xD695 +0xD24B 0xD696 +0xD24C 0xD697 +0xD24D 0xD698 +0xD24E 0xD699 +0xD24F 0xD69A +0xD250 0xD69B +0xD251 0xD69C +0xD253 0xD69D +0xD254 0xD69E +0xD255 0xD69F +0xD256 0xD6A0 +0xD257 0xD6A1 +0xD258 0xD6A2 +0xD259 0xD6A3 +0xD25A 0xD6A4 +0xD25B 0xD6A5 +0xD25C 0xD6A6 +0xD25D 0xD6A7 +0xD261 0xD6A8 +0xD262 0xD6A9 +0xD263 0xD6AA +0xD264 0xD6AB +0xD265 0xD6AC +0xD266 0xD6AD +0xD267 0xD6AE +0xD268 0xD6AF +0xD269 0xD6B0 +0xD26A 0xD6B1 +0xD26B 0xD6B2 +0xD26C 0xD6B3 +0xD26D 0xD6B4 +0xD26E 0xD6B5 +0xD26F 0xD6B6 +0xD270 0xD6B7 +0xD271 0xD6B8 +0xD273 0xD6B9 +0xD274 0xD6BA +0xD275 0xD6BB +0xD276 0xD6BC +0xD277 0xD6BD +0xD278 0xD6BE +0xD279 0xD6BF +0xD27A 0xD6C0 +0xD27B 0xD6C1 +0xD27C 0xD6C2 +0xD27D 0xD6C3 +0xD281 0xD6C4 +0xD282 0xD6C5 +0xD283 0xD6C6 +0xD284 0xD6C7 +0xD285 0xD6C8 +0xD286 0xD6C9 +0xD287 0xD6CA +0xD288 0xD6CB +0xD289 0xD6CC +0xD28A 0xD6CD +0xD28B 0xD6CE +0xD28C 0xD6CF +0xD28D 0xD6D0 +0xD28E 0xD6D1 +0xD28F 0xD6D2 +0xD290 0xD6D3 +0xD291 0xD6D4 +0xD293 0xD6D5 +0xD294 0xD6D6 +0xD295 0xD6D7 +0xD296 0xD6D8 +0xD297 0xD6D9 +0xD298 0xD6DA +0xD299 0xD6DB +0xD29A 0xD6DC +0xD29B 0xD6DD +0xD29C 0xD6DE +0xD29D 0xD6DF +0xD2A1 0xD6E0 +0xD2A2 0xD6E1 +0xD2A3 0xD6E2 +0xD2A4 0xD6E3 +0xD2A5 0xD6E4 +0xD2A6 0xD6E5 +0xD2A7 0xD6E6 +0xD2A8 0xD6E7 +0xD2A9 0xD6E8 +0xD2AA 0xD6E9 +0xD2AB 0xD6EA +0xD2AC 0xD6EB +0xD2AD 0xD6EC +0xD2AE 0xD6ED +0xD2AF 0xD6EE +0xD2B0 0xD6EF +0xD2B1 0xD6F0 +0xD2B3 0xD6F1 +0xD2B4 0xD6F2 +0xD2B5 0xD6F3 +0xD2B6 0xD6F4 +0xD2B7 0xD6F5 +0xD2B8 0xD6F6 +0xD2B9 0xD6F7 +0xD2BA 0xD6F8 +0xD2BB 0xD6F9 +0xD2BC 0xD6FA +0xD2BD 0xD6FB +0xD2C1 0xD6FC +0xD2C2 0xD6FD +0xD2C3 0xD6FE +0xD2C4 0xD6FF +0xD2C5 0xD700 +0xD2C6 0xD701 +0xD2C7 0xD702 +0xD2C8 0xD703 +0xD2C9 0xD704 +0xD2CA 0xD705 +0xD2CB 0xD706 +0xD2CC 0xD707 +0xD2CD 0xD708 +0xD2CE 0xD709 +0xD2CF 0xD70A +0xD2D0 0xD70B +0xD2D1 0xD70C +0xD2D3 0xD70D +0xD2D4 0xD70E +0xD2D5 0xD70F +0xD2D6 0xD710 +0xD2D7 0xD711 +0xD2D8 0xD712 +0xD2D9 0xD713 +0xD2DA 0xD714 +0xD2DB 0xD715 +0xD2DC 0xD716 +0xD2DD 0xD717 +0xD2E1 0xD718 +0xD2E2 0xD719 +0xD2E3 0xD71A +0xD2E4 0xD71B +0xD2E5 0xD71C +0xD2E6 0xD71D +0xD2E7 0xD71E +0xD2E8 0xD71F +0xD2E9 0xD720 +0xD2EA 0xD721 +0xD2EB 0xD722 +0xD2EC 0xD723 +0xD2ED 0xD724 +0xD2EE 0xD725 +0xD2EF 0xD726 +0xD2F0 0xD727 +0xD2F1 0xD728 +0xD2F3 0xD729 +0xD2F4 0xD72A +0xD2F5 0xD72B +0xD2F6 0xD72C +0xD2F7 0xD72D +0xD2F8 0xD72E +0xD2F9 0xD72F +0xD2FA 0xD730 +0xD2FB 0xD731 +0xD2FC 0xD732 +0xD2FD 0xD733 +0xD341 0xD734 +0xD342 0xD735 +0xD343 0xD736 +0xD344 0xD737 +0xD345 0xD738 +0xD346 0xD739 +0xD347 0xD73A +0xD348 0xD73B +0xD349 0xD73C +0xD34A 0xD73D +0xD34B 0xD73E +0xD34C 0xD73F +0xD34D 0xD740 +0xD34E 0xD741 +0xD34F 0xD742 +0xD350 0xD743 +0xD351 0xD744 +0xD353 0xD745 +0xD354 0xD746 +0xD355 0xD747 +0xD356 0xD748 +0xD357 0xD749 +0xD358 0xD74A +0xD359 0xD74B +0xD35A 0xD74C +0xD35B 0xD74D +0xD35C 0xD74E +0xD35D 0xD74F +0xD361 0xD750 +0xD362 0xD751 +0xD363 0xD752 +0xD364 0xD753 +0xD365 0xD754 +0xD366 0xD755 +0xD367 0xD756 +0xD368 0xD757 +0xD369 0xD758 +0xD36A 0xD759 +0xD36B 0xD75A +0xD36C 0xD75B +0xD36D 0xD75C +0xD36E 0xD75D +0xD36F 0xD75E +0xD370 0xD75F +0xD371 0xD760 +0xD373 0xD761 +0xD374 0xD762 +0xD375 0xD763 +0xD376 0xD764 +0xD377 0xD765 +0xD378 0xD766 +0xD379 0xD767 +0xD37A 0xD768 +0xD37B 0xD769 +0xD37C 0xD76A +0xD37D 0xD76B +0xD381 0xD76C +0xD382 0xD76D +0xD383 0xD76E +0xD384 0xD76F +0xD385 0xD770 +0xD386 0xD771 +0xD387 0xD772 +0xD388 0xD773 +0xD389 0xD774 +0xD38A 0xD775 +0xD38B 0xD776 +0xD38C 0xD777 +0xD38D 0xD778 +0xD38E 0xD779 +0xD38F 0xD77A +0xD390 0xD77B +0xD391 0xD77C +0xD393 0xD77D +0xD394 0xD77E +0xD395 0xD77F +0xD396 0xD780 +0xD397 0xD781 +0xD398 0xD782 +0xD399 0xD783 +0xD39A 0xD784 +0xD39B 0xD785 +0xD39C 0xD786 +0xD39D 0xD787 +0xD3A1 0xD788 +0xD3A2 0xD789 +0xD3A3 0xD78A +0xD3A4 0xD78B +0xD3A5 0xD78C +0xD3A6 0xD78D +0xD3A7 0xD78E +0xD3A8 0xD78F +0xD3A9 0xD790 +0xD3AA 0xD791 +0xD3AB 0xD792 +0xD3AC 0xD793 +0xD3AD 0xD794 +0xD3AE 0xD795 +0xD3AF 0xD796 +0xD3B0 0xD797 +0xD3B1 0xD798 +0xD3B3 0xD799 +0xD3B4 0xD79A +0xD3B5 0xD79B +0xD3B6 0xD79C +0xD3B7 0xD79D +0xD3B8 0xD79E +0xD3B9 0xD79F +0xD3BA 0xD7A0 +0xD3BB 0xD7A1 +0xD3BC 0xD7A2 +0xD3BD 0xD7A3 +0xD931 0x3000 +0xD932 0x3001 +0xD933 0x3002 +0xD934 0x00B7 +0xD935 0x2025 +0xD936 0x2026 +0xD937 0x00A8 +0xD938 0x3003 +0xD939 0x00AD +0xD93A 0x2015 +0xD93B 0x2225 +0xD93C 0xFF3C +0xD93D 0x223C +0xD93E 0x2018 +0xD93F 0x2019 +0xD940 0x201C +0xD941 0x201D +0xD942 0x3014 +0xD943 0x3015 +0xD944 0x3008 +0xD945 0x3009 +0xD946 0x300A +0xD947 0x300B +0xD948 0x300C +0xD949 0x300D +0xD94A 0x300E +0xD94B 0x300F +0xD94C 0x3010 +0xD94D 0x3011 +0xD94E 0x00B1 +0xD94F 0x00D7 +0xD950 0x00F7 +0xD951 0x2260 +0xD952 0x2264 +0xD953 0x2265 +0xD954 0x221E +0xD955 0x2234 +0xD956 0x00B0 +0xD957 0x2032 +0xD958 0x2033 +0xD959 0x2103 +0xD95A 0x212B +0xD95B 0xFFE0 +0xD95C 0xFFE1 +0xD95D 0xFFE5 +0xD95E 0x2642 +0xD95F 0x2640 +0xD960 0x2220 +0xD961 0x22A5 +0xD962 0x2312 +0xD963 0x2202 +0xD964 0x2207 +0xD965 0x2261 +0xD966 0x2252 +0xD967 0x00A7 +0xD968 0x203B +0xD969 0x2606 +0xD96A 0x2605 +0xD96B 0x25CB +0xD96C 0x25CF +0xD96D 0x25CE +0xD96E 0x25C7 +0xD96F 0x25C6 +0xD970 0x25A1 +0xD971 0x25A0 +0xD972 0x25B3 +0xD973 0x25B2 +0xD974 0x25BD +0xD975 0x25BC +0xD976 0x2192 +0xD977 0x2190 +0xD978 0x2191 +0xD979 0x2193 +0xD97A 0x2194 +0xD97B 0x3013 +0xD97C 0x226A +0xD97D 0x226B +0xD97E 0x221A +0xD991 0x223D +0xD992 0x221D +0xD993 0x2235 +0xD994 0x222B +0xD995 0x222C +0xD996 0x2208 +0xD997 0x220B +0xD998 0x2286 +0xD999 0x2287 +0xD99A 0x2282 +0xD99B 0x2283 +0xD99C 0x222A +0xD99D 0x2229 +0xD99E 0x2227 +0xD99F 0x2228 +0xD9A0 0xFFE2 +0xD9A1 0x21D2 +0xD9A2 0x21D4 +0xD9A3 0x2200 +0xD9A4 0x2203 +0xD9A5 0x00B4 +0xD9A6 0xFF5E +0xD9A7 0x02C7 +0xD9A8 0x02D8 +0xD9A9 0x02DD +0xD9AA 0x02DA +0xD9AB 0x02D9 +0xD9AC 0x00B8 +0xD9AD 0x02DB +0xD9AE 0x00A1 +0xD9AF 0x00BF +0xD9B0 0x02D0 +0xD9B1 0x222E +0xD9B2 0x2211 +0xD9B3 0x220F +0xD9B4 0x00A4 +0xD9B5 0x2109 +0xD9B6 0x2030 +0xD9B7 0x25C1 +0xD9B8 0x25C0 +0xD9B9 0x25B7 +0xD9BA 0x25B6 +0xD9BB 0x2664 +0xD9BC 0x2660 +0xD9BD 0x2661 +0xD9BE 0x2665 +0xD9BF 0x2667 +0xD9C0 0x2663 +0xD9C1 0x2299 +0xD9C2 0x25C8 +0xD9C3 0x25A3 +0xD9C4 0x25D0 +0xD9C5 0x25D1 +0xD9C6 0x2592 +0xD9C7 0x25A4 +0xD9C8 0x25A5 +0xD9C9 0x25A8 +0xD9CA 0x25A7 +0xD9CB 0x25A6 +0xD9CC 0x25A9 +0xD9CD 0x2668 +0xD9CE 0x260F +0xD9CF 0x260E +0xD9D0 0x261C +0xD9D1 0x261E +0xD9D2 0x00B6 +0xD9D3 0x2020 +0xD9D4 0x2021 +0xD9D5 0x2195 +0xD9D6 0x2197 +0xD9D7 0x2199 +0xD9D8 0x2196 +0xD9D9 0x2198 +0xD9DA 0x266D +0xD9DB 0x2669 +0xD9DC 0x266A +0xD9DD 0x266C +0xD9DE 0x327F +0xD9DF 0x321C +0xD9E0 0x2116 +0xD9E1 0x33C7 +0xD9E2 0x2122 +0xD9E3 0x33C2 +0xD9E4 0x33D8 +0xD9E5 0x2121 +0xD9E6 0x20AC +0xD9E7 0x00AE +0xD9E8 0x327E +0xDA31 0xFF01 +0xDA32 0xFF02 +0xDA33 0xFF03 +0xDA34 0xFF04 +0xDA35 0xFF05 +0xDA36 0xFF06 +0xDA37 0xFF07 +0xDA38 0xFF08 +0xDA39 0xFF09 +0xDA3A 0xFF0A +0xDA3B 0xFF0B +0xDA3C 0xFF0C +0xDA3D 0xFF0D +0xDA3E 0xFF0E +0xDA3F 0xFF0F +0xDA40 0xFF10 +0xDA41 0xFF11 +0xDA42 0xFF12 +0xDA43 0xFF13 +0xDA44 0xFF14 +0xDA45 0xFF15 +0xDA46 0xFF16 +0xDA47 0xFF17 +0xDA48 0xFF18 +0xDA49 0xFF19 +0xDA4A 0xFF1A +0xDA4B 0xFF1B +0xDA4C 0xFF1C +0xDA4D 0xFF1D +0xDA4E 0xFF1E +0xDA4F 0xFF1F +0xDA50 0xFF20 +0xDA51 0xFF21 +0xDA52 0xFF22 +0xDA53 0xFF23 +0xDA54 0xFF24 +0xDA55 0xFF25 +0xDA56 0xFF26 +0xDA57 0xFF27 +0xDA58 0xFF28 +0xDA59 0xFF29 +0xDA5A 0xFF2A +0xDA5B 0xFF2B +0xDA5C 0xFF2C +0xDA5D 0xFF2D +0xDA5E 0xFF2E +0xDA5F 0xFF2F +0xDA60 0xFF30 +0xDA61 0xFF31 +0xDA62 0xFF32 +0xDA63 0xFF33 +0xDA64 0xFF34 +0xDA65 0xFF35 +0xDA66 0xFF36 +0xDA67 0xFF37 +0xDA68 0xFF38 +0xDA69 0xFF39 +0xDA6A 0xFF3A +0xDA6B 0xFF3B +0xDA6C 0xFFE6 +0xDA6D 0xFF3D +0xDA6E 0xFF3E +0xDA6F 0xFF3F +0xDA70 0xFF40 +0xDA71 0xFF41 +0xDA72 0xFF42 +0xDA73 0xFF43 +0xDA74 0xFF44 +0xDA75 0xFF45 +0xDA76 0xFF46 +0xDA77 0xFF47 +0xDA78 0xFF48 +0xDA79 0xFF49 +0xDA7A 0xFF4A +0xDA7B 0xFF4B +0xDA7C 0xFF4C +0xDA7D 0xFF4D +0xDA7E 0xFF4E +0xDA91 0xFF4F +0xDA92 0xFF50 +0xDA93 0xFF51 +0xDA94 0xFF52 +0xDA95 0xFF53 +0xDA96 0xFF54 +0xDA97 0xFF55 +0xDA98 0xFF56 +0xDA99 0xFF57 +0xDA9A 0xFF58 +0xDA9B 0xFF59 +0xDA9C 0xFF5A +0xDA9D 0xFF5B +0xDA9E 0xFF5C +0xDA9F 0xFF5D +0xDAA0 0xFFE3 +0xDAD4 0x3164 +0xDAD5 0x3165 +0xDAD6 0x3166 +0xDAD7 0x3167 +0xDAD8 0x3168 +0xDAD9 0x3169 +0xDADA 0x316A +0xDADB 0x316B +0xDADC 0x316C +0xDADD 0x316D +0xDADE 0x316E +0xDADF 0x316F +0xDAE0 0x3170 +0xDAE1 0x3171 +0xDAE2 0x3172 +0xDAE3 0x3173 +0xDAE4 0x3174 +0xDAE5 0x3175 +0xDAE6 0x3176 +0xDAE7 0x3177 +0xDAE8 0x3178 +0xDAE9 0x3179 +0xDAEA 0x317A +0xDAEB 0x317B +0xDAEC 0x317C +0xDAED 0x317D +0xDAEE 0x317E +0xDAEF 0x317F +0xDAF0 0x3180 +0xDAF1 0x3181 +0xDAF2 0x3182 +0xDAF3 0x3183 +0xDAF4 0x3184 +0xDAF5 0x3185 +0xDAF6 0x3186 +0xDAF7 0x3187 +0xDAF8 0x3188 +0xDAF9 0x3189 +0xDAFA 0x318A +0xDAFB 0x318B +0xDAFC 0x318C +0xDAFD 0x318D +0xDAFE 0x318E +0xDB31 0x2170 +0xDB32 0x2171 +0xDB33 0x2172 +0xDB34 0x2173 +0xDB35 0x2174 +0xDB36 0x2175 +0xDB37 0x2176 +0xDB38 0x2177 +0xDB39 0x2178 +0xDB3A 0x2179 +0xDB40 0x2160 +0xDB41 0x2161 +0xDB42 0x2162 +0xDB43 0x2163 +0xDB44 0x2164 +0xDB45 0x2165 +0xDB46 0x2166 +0xDB47 0x2167 +0xDB48 0x2168 +0xDB49 0x2169 +0xDB51 0x0391 +0xDB52 0x0392 +0xDB53 0x0393 +0xDB54 0x0394 +0xDB55 0x0395 +0xDB56 0x0396 +0xDB57 0x0397 +0xDB58 0x0398 +0xDB59 0x0399 +0xDB5A 0x039A +0xDB5B 0x039B +0xDB5C 0x039C +0xDB5D 0x039D +0xDB5E 0x039E +0xDB5F 0x039F +0xDB60 0x03A0 +0xDB61 0x03A1 +0xDB62 0x03A3 +0xDB63 0x03A4 +0xDB64 0x03A5 +0xDB65 0x03A6 +0xDB66 0x03A7 +0xDB67 0x03A8 +0xDB68 0x03A9 +0xDB71 0x03B1 +0xDB72 0x03B2 +0xDB73 0x03B3 +0xDB74 0x03B4 +0xDB75 0x03B5 +0xDB76 0x03B6 +0xDB77 0x03B7 +0xDB78 0x03B8 +0xDB79 0x03B9 +0xDB7A 0x03BA +0xDB7B 0x03BB +0xDB7C 0x03BC +0xDB7D 0x03BD +0xDB7E 0x03BE +0xDB91 0x03BF +0xDB92 0x03C0 +0xDB93 0x03C1 +0xDB94 0x03C3 +0xDB95 0x03C4 +0xDB96 0x03C5 +0xDB97 0x03C6 +0xDB98 0x03C7 +0xDB99 0x03C8 +0xDB9A 0x03C9 +0xDBA1 0x2500 +0xDBA2 0x2502 +0xDBA3 0x250C +0xDBA4 0x2510 +0xDBA5 0x2518 +0xDBA6 0x2514 +0xDBA7 0x251C +0xDBA8 0x252C +0xDBA9 0x2524 +0xDBAA 0x2534 +0xDBAB 0x253C +0xDBAC 0x2501 +0xDBAD 0x2503 +0xDBAE 0x250F +0xDBAF 0x2513 +0xDBB0 0x251B +0xDBB1 0x2517 +0xDBB2 0x2523 +0xDBB3 0x2533 +0xDBB4 0x252B +0xDBB5 0x253B +0xDBB6 0x254B +0xDBB7 0x2520 +0xDBB8 0x252F +0xDBB9 0x2528 +0xDBBA 0x2537 +0xDBBB 0x253F +0xDBBC 0x251D +0xDBBD 0x2530 +0xDBBE 0x2525 +0xDBBF 0x2538 +0xDBC0 0x2542 +0xDBC1 0x2512 +0xDBC2 0x2511 +0xDBC3 0x251A +0xDBC4 0x2519 +0xDBC5 0x2516 +0xDBC6 0x2515 +0xDBC7 0x250E +0xDBC8 0x250D +0xDBC9 0x251E +0xDBCA 0x251F +0xDBCB 0x2521 +0xDBCC 0x2522 +0xDBCD 0x2526 +0xDBCE 0x2527 +0xDBCF 0x2529 +0xDBD0 0x252A +0xDBD1 0x252D +0xDBD2 0x252E +0xDBD3 0x2531 +0xDBD4 0x2532 +0xDBD5 0x2535 +0xDBD6 0x2536 +0xDBD7 0x2539 +0xDBD8 0x253A +0xDBD9 0x253D +0xDBDA 0x253E +0xDBDB 0x2540 +0xDBDC 0x2541 +0xDBDD 0x2543 +0xDBDE 0x2544 +0xDBDF 0x2545 +0xDBE0 0x2546 +0xDBE1 0x2547 +0xDBE2 0x2548 +0xDBE3 0x2549 +0xDBE4 0x254A +0xDC31 0x3395 +0xDC32 0x3396 +0xDC33 0x3397 +0xDC34 0x2113 +0xDC35 0x3398 +0xDC36 0x33C4 +0xDC37 0x33A3 +0xDC38 0x33A4 +0xDC39 0x33A5 +0xDC3A 0x33A6 +0xDC3B 0x3399 +0xDC3C 0x339A +0xDC3D 0x339B +0xDC3E 0x339C +0xDC3F 0x339D +0xDC40 0x339E +0xDC41 0x339F +0xDC42 0x33A0 +0xDC43 0x33A1 +0xDC44 0x33A2 +0xDC45 0x33CA +0xDC46 0x338D +0xDC47 0x338E +0xDC48 0x338F +0xDC49 0x33CF +0xDC4A 0x3388 +0xDC4B 0x3389 +0xDC4C 0x33C8 +0xDC4D 0x33A7 +0xDC4E 0x33A8 +0xDC4F 0x33B0 +0xDC50 0x33B1 +0xDC51 0x33B2 +0xDC52 0x33B3 +0xDC53 0x33B4 +0xDC54 0x33B5 +0xDC55 0x33B6 +0xDC56 0x33B7 +0xDC57 0x33B8 +0xDC58 0x33B9 +0xDC59 0x3380 +0xDC5A 0x3381 +0xDC5B 0x3382 +0xDC5C 0x3383 +0xDC5D 0x3384 +0xDC5E 0x33BA +0xDC5F 0x33BB +0xDC60 0x33BC +0xDC61 0x33BD +0xDC62 0x33BE +0xDC63 0x33BF +0xDC64 0x3390 +0xDC65 0x3391 +0xDC66 0x3392 +0xDC67 0x3393 +0xDC68 0x3394 +0xDC69 0x2126 +0xDC6A 0x33C0 +0xDC6B 0x33C1 +0xDC6C 0x338A +0xDC6D 0x338B +0xDC6E 0x338C +0xDC6F 0x33D6 +0xDC70 0x33C5 +0xDC71 0x33AD +0xDC72 0x33AE +0xDC73 0x33AF +0xDC74 0x33DB +0xDC75 0x33A9 +0xDC76 0x33AA +0xDC77 0x33AB +0xDC78 0x33AC +0xDC79 0x33DD +0xDC7A 0x33D0 +0xDC7B 0x33D3 +0xDC7C 0x33C3 +0xDC7D 0x33C9 +0xDC7E 0x33DC +0xDC91 0x33C6 +0xDCA1 0x00C6 +0xDCA2 0x00D0 +0xDCA3 0x00AA +0xDCA4 0x0126 +0xDCA6 0x0132 +0xDCA8 0x013F +0xDCA9 0x0141 +0xDCAA 0x00D8 +0xDCAB 0x0152 +0xDCAC 0x00BA +0xDCAD 0x00DE +0xDCAE 0x0166 +0xDCAF 0x014A +0xDCB1 0x3260 +0xDCB2 0x3261 +0xDCB3 0x3262 +0xDCB4 0x3263 +0xDCB5 0x3264 +0xDCB6 0x3265 +0xDCB7 0x3266 +0xDCB8 0x3267 +0xDCB9 0x3268 +0xDCBA 0x3269 +0xDCBB 0x326A +0xDCBC 0x326B +0xDCBD 0x326C +0xDCBE 0x326D +0xDCBF 0x326E +0xDCC0 0x326F +0xDCC1 0x3270 +0xDCC2 0x3271 +0xDCC3 0x3272 +0xDCC4 0x3273 +0xDCC5 0x3274 +0xDCC6 0x3275 +0xDCC7 0x3276 +0xDCC8 0x3277 +0xDCC9 0x3278 +0xDCCA 0x3279 +0xDCCB 0x327A +0xDCCC 0x327B +0xDCCD 0x24D0 +0xDCCE 0x24D1 +0xDCCF 0x24D2 +0xDCD0 0x24D3 +0xDCD1 0x24D4 +0xDCD2 0x24D5 +0xDCD3 0x24D6 +0xDCD4 0x24D7 +0xDCD5 0x24D8 +0xDCD6 0x24D9 +0xDCD7 0x24DA +0xDCD8 0x24DB +0xDCD9 0x24DC +0xDCDA 0x24DD +0xDCDB 0x24DE +0xDCDC 0x24DF +0xDCDD 0x24E0 +0xDCDE 0x24E1 +0xDCDF 0x24E2 +0xDCE0 0x24E3 +0xDCE1 0x24E4 +0xDCE2 0x24E5 +0xDCE3 0x24E6 +0xDCE4 0x24E7 +0xDCE5 0x24E8 +0xDCE6 0x24E9 +0xDCE7 0x2460 +0xDCE8 0x2461 +0xDCE9 0x2462 +0xDCEA 0x2463 +0xDCEB 0x2464 +0xDCEC 0x2465 +0xDCED 0x2466 +0xDCEE 0x2467 +0xDCEF 0x2468 +0xDCF0 0x2469 +0xDCF1 0x246A +0xDCF2 0x246B +0xDCF3 0x246C +0xDCF4 0x246D +0xDCF5 0x246E +0xDCF6 0x00BD +0xDCF7 0x2153 +0xDCF8 0x2154 +0xDCF9 0x00BC +0xDCFA 0x00BE +0xDCFB 0x215B +0xDCFC 0x215C +0xDCFD 0x215D +0xDCFE 0x215E +0xDD31 0x00E6 +0xDD32 0x0111 +0xDD33 0x00F0 +0xDD34 0x0127 +0xDD35 0x0131 +0xDD36 0x0133 +0xDD37 0x0138 +0xDD38 0x0140 +0xDD39 0x0142 +0xDD3A 0x00F8 +0xDD3B 0x0153 +0xDD3C 0x00DF +0xDD3D 0x00FE +0xDD3E 0x0167 +0xDD3F 0x014B +0xDD40 0x0149 +0xDD41 0x3200 +0xDD42 0x3201 +0xDD43 0x3202 +0xDD44 0x3203 +0xDD45 0x3204 +0xDD46 0x3205 +0xDD47 0x3206 +0xDD48 0x3207 +0xDD49 0x3208 +0xDD4A 0x3209 +0xDD4B 0x320A +0xDD4C 0x320B +0xDD4D 0x320C +0xDD4E 0x320D +0xDD4F 0x320E +0xDD50 0x320F +0xDD51 0x3210 +0xDD52 0x3211 +0xDD53 0x3212 +0xDD54 0x3213 +0xDD55 0x3214 +0xDD56 0x3215 +0xDD57 0x3216 +0xDD58 0x3217 +0xDD59 0x3218 +0xDD5A 0x3219 +0xDD5B 0x321A +0xDD5C 0x321B +0xDD5D 0x249C +0xDD5E 0x249D +0xDD5F 0x249E +0xDD60 0x249F +0xDD61 0x24A0 +0xDD62 0x24A1 +0xDD63 0x24A2 +0xDD64 0x24A3 +0xDD65 0x24A4 +0xDD66 0x24A5 +0xDD67 0x24A6 +0xDD68 0x24A7 +0xDD69 0x24A8 +0xDD6A 0x24A9 +0xDD6B 0x24AA +0xDD6C 0x24AB +0xDD6D 0x24AC +0xDD6E 0x24AD +0xDD6F 0x24AE +0xDD70 0x24AF +0xDD71 0x24B0 +0xDD72 0x24B1 +0xDD73 0x24B2 +0xDD74 0x24B3 +0xDD75 0x24B4 +0xDD76 0x24B5 +0xDD77 0x2474 +0xDD78 0x2475 +0xDD79 0x2476 +0xDD7A 0x2477 +0xDD7B 0x2478 +0xDD7C 0x2479 +0xDD7D 0x247A +0xDD7E 0x247B +0xDD91 0x247C +0xDD92 0x247D +0xDD93 0x247E +0xDD94 0x247F +0xDD95 0x2480 +0xDD96 0x2481 +0xDD97 0x2482 +0xDD98 0x00B9 +0xDD99 0x00B2 +0xDD9A 0x00B3 +0xDD9B 0x2074 +0xDD9C 0x207F +0xDD9D 0x2081 +0xDD9E 0x2082 +0xDD9F 0x2083 +0xDDA0 0x2084 +0xDDA1 0x3041 +0xDDA2 0x3042 +0xDDA3 0x3043 +0xDDA4 0x3044 +0xDDA5 0x3045 +0xDDA6 0x3046 +0xDDA7 0x3047 +0xDDA8 0x3048 +0xDDA9 0x3049 +0xDDAA 0x304A +0xDDAB 0x304B +0xDDAC 0x304C +0xDDAD 0x304D +0xDDAE 0x304E +0xDDAF 0x304F +0xDDB0 0x3050 +0xDDB1 0x3051 +0xDDB2 0x3052 +0xDDB3 0x3053 +0xDDB4 0x3054 +0xDDB5 0x3055 +0xDDB6 0x3056 +0xDDB7 0x3057 +0xDDB8 0x3058 +0xDDB9 0x3059 +0xDDBA 0x305A +0xDDBB 0x305B +0xDDBC 0x305C +0xDDBD 0x305D +0xDDBE 0x305E +0xDDBF 0x305F +0xDDC0 0x3060 +0xDDC1 0x3061 +0xDDC2 0x3062 +0xDDC3 0x3063 +0xDDC4 0x3064 +0xDDC5 0x3065 +0xDDC6 0x3066 +0xDDC7 0x3067 +0xDDC8 0x3068 +0xDDC9 0x3069 +0xDDCA 0x306A +0xDDCB 0x306B +0xDDCC 0x306C +0xDDCD 0x306D +0xDDCE 0x306E +0xDDCF 0x306F +0xDDD0 0x3070 +0xDDD1 0x3071 +0xDDD2 0x3072 +0xDDD3 0x3073 +0xDDD4 0x3074 +0xDDD5 0x3075 +0xDDD6 0x3076 +0xDDD7 0x3077 +0xDDD8 0x3078 +0xDDD9 0x3079 +0xDDDA 0x307A +0xDDDB 0x307B +0xDDDC 0x307C +0xDDDD 0x307D +0xDDDE 0x307E +0xDDDF 0x307F +0xDDE0 0x3080 +0xDDE1 0x3081 +0xDDE2 0x3082 +0xDDE3 0x3083 +0xDDE4 0x3084 +0xDDE5 0x3085 +0xDDE6 0x3086 +0xDDE7 0x3087 +0xDDE8 0x3088 +0xDDE9 0x3089 +0xDDEA 0x308A +0xDDEB 0x308B +0xDDEC 0x308C +0xDDED 0x308D +0xDDEE 0x308E +0xDDEF 0x308F +0xDDF0 0x3090 +0xDDF1 0x3091 +0xDDF2 0x3092 +0xDDF3 0x3093 +0xDE31 0x30A1 +0xDE32 0x30A2 +0xDE33 0x30A3 +0xDE34 0x30A4 +0xDE35 0x30A5 +0xDE36 0x30A6 +0xDE37 0x30A7 +0xDE38 0x30A8 +0xDE39 0x30A9 +0xDE3A 0x30AA +0xDE3B 0x30AB +0xDE3C 0x30AC +0xDE3D 0x30AD +0xDE3E 0x30AE +0xDE3F 0x30AF +0xDE40 0x30B0 +0xDE41 0x30B1 +0xDE42 0x30B2 +0xDE43 0x30B3 +0xDE44 0x30B4 +0xDE45 0x30B5 +0xDE46 0x30B6 +0xDE47 0x30B7 +0xDE48 0x30B8 +0xDE49 0x30B9 +0xDE4A 0x30BA +0xDE4B 0x30BB +0xDE4C 0x30BC +0xDE4D 0x30BD +0xDE4E 0x30BE +0xDE4F 0x30BF +0xDE50 0x30C0 +0xDE51 0x30C1 +0xDE52 0x30C2 +0xDE53 0x30C3 +0xDE54 0x30C4 +0xDE55 0x30C5 +0xDE56 0x30C6 +0xDE57 0x30C7 +0xDE58 0x30C8 +0xDE59 0x30C9 +0xDE5A 0x30CA +0xDE5B 0x30CB +0xDE5C 0x30CC +0xDE5D 0x30CD +0xDE5E 0x30CE +0xDE5F 0x30CF +0xDE60 0x30D0 +0xDE61 0x30D1 +0xDE62 0x30D2 +0xDE63 0x30D3 +0xDE64 0x30D4 +0xDE65 0x30D5 +0xDE66 0x30D6 +0xDE67 0x30D7 +0xDE68 0x30D8 +0xDE69 0x30D9 +0xDE6A 0x30DA +0xDE6B 0x30DB +0xDE6C 0x30DC +0xDE6D 0x30DD +0xDE6E 0x30DE +0xDE6F 0x30DF +0xDE70 0x30E0 +0xDE71 0x30E1 +0xDE72 0x30E2 +0xDE73 0x30E3 +0xDE74 0x30E4 +0xDE75 0x30E5 +0xDE76 0x30E6 +0xDE77 0x30E7 +0xDE78 0x30E8 +0xDE79 0x30E9 +0xDE7A 0x30EA +0xDE7B 0x30EB +0xDE7C 0x30EC +0xDE7D 0x30ED +0xDE7E 0x30EE +0xDE91 0x30EF +0xDE92 0x30F0 +0xDE93 0x30F1 +0xDE94 0x30F2 +0xDE95 0x30F3 +0xDE96 0x30F4 +0xDE97 0x30F5 +0xDE98 0x30F6 +0xDEA1 0x0410 +0xDEA2 0x0411 +0xDEA3 0x0412 +0xDEA4 0x0413 +0xDEA5 0x0414 +0xDEA6 0x0415 +0xDEA7 0x0401 +0xDEA8 0x0416 +0xDEA9 0x0417 +0xDEAA 0x0418 +0xDEAB 0x0419 +0xDEAC 0x041A +0xDEAD 0x041B +0xDEAE 0x041C +0xDEAF 0x041D +0xDEB0 0x041E +0xDEB1 0x041F +0xDEB2 0x0420 +0xDEB3 0x0421 +0xDEB4 0x0422 +0xDEB5 0x0423 +0xDEB6 0x0424 +0xDEB7 0x0425 +0xDEB8 0x0426 +0xDEB9 0x0427 +0xDEBA 0x0428 +0xDEBB 0x0429 +0xDEBC 0x042A +0xDEBD 0x042B +0xDEBE 0x042C +0xDEBF 0x042D +0xDEC0 0x042E +0xDEC1 0x042F +0xDED1 0x0430 +0xDED2 0x0431 +0xDED3 0x0432 +0xDED4 0x0433 +0xDED5 0x0434 +0xDED6 0x0435 +0xDED7 0x0451 +0xDED8 0x0436 +0xDED9 0x0437 +0xDEDA 0x0438 +0xDEDB 0x0439 +0xDEDC 0x043A +0xDEDD 0x043B +0xDEDE 0x043C +0xDEDF 0x043D +0xDEE0 0x043E +0xDEE1 0x043F +0xDEE2 0x0440 +0xDEE3 0x0441 +0xDEE4 0x0442 +0xDEE5 0x0443 +0xDEE6 0x0444 +0xDEE7 0x0445 +0xDEE8 0x0446 +0xDEE9 0x0447 +0xDEEA 0x0448 +0xDEEB 0x0449 +0xDEEC 0x044A +0xDEED 0x044B +0xDEEE 0x044C +0xDEEF 0x044D +0xDEF0 0x044E +0xDEF1 0x044F +0xE031 0x4F3D +0xE032 0x4F73 +0xE033 0x5047 +0xE034 0x50F9 +0xE035 0x52A0 +0xE036 0x53EF +0xE037 0x5475 +0xE038 0x54E5 +0xE039 0x5609 +0xE03A 0x5AC1 +0xE03B 0x5BB6 +0xE03C 0x6687 +0xE03D 0x67B6 +0xE03E 0x67B7 +0xE03F 0x67EF +0xE040 0x6B4C +0xE041 0x73C2 +0xE042 0x75C2 +0xE043 0x7A3C +0xE044 0x82DB +0xE045 0x8304 +0xE046 0x8857 +0xE047 0x8888 +0xE048 0x8A36 +0xE049 0x8CC8 +0xE04A 0x8DCF +0xE04B 0x8EFB +0xE04C 0x8FE6 +0xE04D 0x99D5 +0xE04E 0x523B +0xE04F 0x5374 +0xE050 0x5404 +0xE051 0x606A +0xE052 0x6164 +0xE053 0x6BBC +0xE054 0x73CF +0xE055 0x811A +0xE056 0x89BA +0xE057 0x89D2 +0xE058 0x95A3 +0xE059 0x4F83 +0xE05A 0x520A +0xE05B 0x58BE +0xE05C 0x5978 +0xE05D 0x59E6 +0xE05E 0x5E72 +0xE05F 0x5E79 +0xE060 0x61C7 +0xE061 0x63C0 +0xE062 0x6746 +0xE063 0x67EC +0xE064 0x687F +0xE065 0x6F97 +0xE066 0x764E +0xE067 0x770B +0xE068 0x78F5 +0xE069 0x7A08 +0xE06A 0x7AFF +0xE06B 0x7C21 +0xE06C 0x809D +0xE06D 0x826E +0xE06E 0x8271 +0xE06F 0x8AEB +0xE070 0x9593 +0xE071 0x4E6B +0xE072 0x559D +0xE073 0x66F7 +0xE074 0x6E34 +0xE075 0x78A3 +0xE076 0x7AED +0xE077 0x845B +0xE078 0x8910 +0xE079 0x874E +0xE07A 0x97A8 +0xE07B 0x52D8 +0xE07C 0x574E +0xE07D 0x582A +0xE07E 0x5D4C +0xE091 0x611F +0xE092 0x61BE +0xE093 0x6221 +0xE094 0x6562 +0xE095 0x67D1 +0xE096 0x6A44 +0xE097 0x6E1B +0xE098 0x7518 +0xE099 0x75B3 +0xE09A 0x76E3 +0xE09B 0x77B0 +0xE09C 0x7D3A +0xE09D 0x90AF +0xE09E 0x9451 +0xE09F 0x9452 +0xE0A0 0x9F95 +0xE0A1 0x5323 +0xE0A2 0x5CAC +0xE0A3 0x7532 +0xE0A4 0x80DB +0xE0A5 0x9240 +0xE0A6 0x9598 +0xE0A7 0x525B +0xE0A8 0x5808 +0xE0A9 0x59DC +0xE0AA 0x5CA1 +0xE0AB 0x5D17 +0xE0AC 0x5EB7 +0xE0AD 0x5F3A +0xE0AE 0x5F4A +0xE0AF 0x6177 +0xE0B0 0x6C5F +0xE0B1 0x757A +0xE0B2 0x7586 +0xE0B3 0x7CE0 +0xE0B4 0x7D73 +0xE0B5 0x7DB1 +0xE0B6 0x7F8C +0xE0B7 0x8154 +0xE0B8 0x8221 +0xE0B9 0x8591 +0xE0BA 0x8941 +0xE0BB 0x8B1B +0xE0BC 0x92FC +0xE0BD 0x964D +0xE0BE 0x9C47 +0xE0BF 0x4ECB +0xE0C0 0x4EF7 +0xE0C1 0x500B +0xE0C2 0x51F1 +0xE0C3 0x584F +0xE0C4 0x6137 +0xE0C5 0x613E +0xE0C6 0x6168 +0xE0C7 0x6539 +0xE0C8 0x69EA +0xE0C9 0x6F11 +0xE0CA 0x75A5 +0xE0CB 0x7686 +0xE0CC 0x76D6 +0xE0CD 0x7B87 +0xE0CE 0x82A5 +0xE0CF 0x84CB +0xE0D0 0xF900 +0xE0D1 0x93A7 +0xE0D2 0x958B +0xE0D3 0x5580 +0xE0D4 0x5BA2 +0xE0D5 0x5751 +0xE0D6 0xF901 +0xE0D7 0x7CB3 +0xE0D8 0x7FB9 +0xE0D9 0x91B5 +0xE0DA 0x5028 +0xE0DB 0x53BB +0xE0DC 0x5C45 +0xE0DD 0x5DE8 +0xE0DE 0x62D2 +0xE0DF 0x636E +0xE0E0 0x64DA +0xE0E1 0x64E7 +0xE0E2 0x6E20 +0xE0E3 0x70AC +0xE0E4 0x795B +0xE0E5 0x8DDD +0xE0E6 0x8E1E +0xE0E7 0xF902 +0xE0E8 0x907D +0xE0E9 0x9245 +0xE0EA 0x92F8 +0xE0EB 0x4E7E +0xE0EC 0x4EF6 +0xE0ED 0x5065 +0xE0EE 0x5DFE +0xE0EF 0x5EFA +0xE0F0 0x6106 +0xE0F1 0x6957 +0xE0F2 0x8171 +0xE0F3 0x8654 +0xE0F4 0x8E47 +0xE0F5 0x9375 +0xE0F6 0x9A2B +0xE0F7 0x4E5E +0xE0F8 0x5091 +0xE0F9 0x6770 +0xE0FA 0x6840 +0xE0FB 0x5109 +0xE0FC 0x528D +0xE0FD 0x5292 +0xE0FE 0x6AA2 +0xE131 0x77BC +0xE132 0x9210 +0xE133 0x9ED4 +0xE134 0x52AB +0xE135 0x602F +0xE136 0x8FF2 +0xE137 0x5048 +0xE138 0x61A9 +0xE139 0x63ED +0xE13A 0x64CA +0xE13B 0x683C +0xE13C 0x6A84 +0xE13D 0x6FC0 +0xE13E 0x8188 +0xE13F 0x89A1 +0xE140 0x9694 +0xE141 0x5805 +0xE142 0x727D +0xE143 0x72AC +0xE144 0x7504 +0xE145 0x7D79 +0xE146 0x7E6D +0xE147 0x80A9 +0xE148 0x898B +0xE149 0x8B74 +0xE14A 0x9063 +0xE14B 0x9D51 +0xE14C 0x6289 +0xE14D 0x6C7A +0xE14E 0x6F54 +0xE14F 0x7D50 +0xE150 0x7F3A +0xE151 0x8A23 +0xE152 0x517C +0xE153 0x614A +0xE154 0x7B9D +0xE155 0x8B19 +0xE156 0x9257 +0xE157 0x938C +0xE158 0x4EAC +0xE159 0x4FD3 +0xE15A 0x501E +0xE15B 0x50BE +0xE15C 0x5106 +0xE15D 0x52C1 +0xE15E 0x52CD +0xE15F 0x537F +0xE160 0x5770 +0xE161 0x5883 +0xE162 0x5E9A +0xE163 0x5F91 +0xE164 0x6176 +0xE165 0x61AC +0xE166 0x64CE +0xE167 0x656C +0xE168 0x666F +0xE169 0x66BB +0xE16A 0x66F4 +0xE16B 0x6897 +0xE16C 0x6D87 +0xE16D 0x7085 +0xE16E 0x70F1 +0xE16F 0x749F +0xE170 0x74A5 +0xE171 0x74CA +0xE172 0x75D9 +0xE173 0x786C +0xE174 0x78EC +0xE175 0x7ADF +0xE176 0x7AF6 +0xE177 0x7D45 +0xE178 0x7D93 +0xE179 0x8015 +0xE17A 0x803F +0xE17B 0x811B +0xE17C 0x8396 +0xE17D 0x8B66 +0xE17E 0x8F15 +0xE191 0x9015 +0xE192 0x93E1 +0xE193 0x9803 +0xE194 0x9838 +0xE195 0x9A5A +0xE196 0x9BE8 +0xE197 0x4FC2 +0xE198 0x5553 +0xE199 0x583A +0xE19A 0x5951 +0xE19B 0x5B63 +0xE19C 0x5C46 +0xE19D 0x60B8 +0xE19E 0x6212 +0xE19F 0x6842 +0xE1A0 0x68B0 +0xE1A1 0x68E8 +0xE1A2 0x6EAA +0xE1A3 0x754C +0xE1A4 0x7678 +0xE1A5 0x78CE +0xE1A6 0x7A3D +0xE1A7 0x7CFB +0xE1A8 0x7E6B +0xE1A9 0x7E7C +0xE1AA 0x8A08 +0xE1AB 0x8AA1 +0xE1AC 0x8C3F +0xE1AD 0x968E +0xE1AE 0x9DC4 +0xE1AF 0x53E4 +0xE1B0 0x53E9 +0xE1B1 0x544A +0xE1B2 0x5471 +0xE1B3 0x56FA +0xE1B4 0x59D1 +0xE1B5 0x5B64 +0xE1B6 0x5C3B +0xE1B7 0x5EAB +0xE1B8 0x62F7 +0xE1B9 0x6537 +0xE1BA 0x6545 +0xE1BB 0x6572 +0xE1BC 0x66A0 +0xE1BD 0x67AF +0xE1BE 0x69C1 +0xE1BF 0x6CBD +0xE1C0 0x75FC +0xE1C1 0x7690 +0xE1C2 0x777E +0xE1C3 0x7A3F +0xE1C4 0x7F94 +0xE1C5 0x8003 +0xE1C6 0x80A1 +0xE1C7 0x818F +0xE1C8 0x82E6 +0xE1C9 0x82FD +0xE1CA 0x83F0 +0xE1CB 0x85C1 +0xE1CC 0x8831 +0xE1CD 0x88B4 +0xE1CE 0x8AA5 +0xE1CF 0xF903 +0xE1D0 0x8F9C +0xE1D1 0x932E +0xE1D2 0x96C7 +0xE1D3 0x9867 +0xE1D4 0x9AD8 +0xE1D5 0x9F13 +0xE1D6 0x54ED +0xE1D7 0x659B +0xE1D8 0x66F2 +0xE1D9 0x688F +0xE1DA 0x7A40 +0xE1DB 0x8C37 +0xE1DC 0x9D60 +0xE1DD 0x56F0 +0xE1DE 0x5764 +0xE1DF 0x5D11 +0xE1E0 0x6606 +0xE1E1 0x68B1 +0xE1E2 0x68CD +0xE1E3 0x6EFE +0xE1E4 0x7428 +0xE1E5 0x889E +0xE1E6 0x9BE4 +0xE1E7 0x6C68 +0xE1E8 0xF904 +0xE1E9 0x9AA8 +0xE1EA 0x4F9B +0xE1EB 0x516C +0xE1EC 0x5171 +0xE1ED 0x529F +0xE1EE 0x5B54 +0xE1EF 0x5DE5 +0xE1F0 0x6050 +0xE1F1 0x606D +0xE1F2 0x62F1 +0xE1F3 0x63A7 +0xE1F4 0x653B +0xE1F5 0x73D9 +0xE1F6 0x7A7A +0xE1F7 0x86A3 +0xE1F8 0x8CA2 +0xE1F9 0x978F +0xE1FA 0x4E32 +0xE1FB 0x5BE1 +0xE1FC 0x6208 +0xE1FD 0x679C +0xE1FE 0x74DC +0xE231 0x79D1 +0xE232 0x83D3 +0xE233 0x8A87 +0xE234 0x8AB2 +0xE235 0x8DE8 +0xE236 0x904E +0xE237 0x934B +0xE238 0x9846 +0xE239 0x5ED3 +0xE23A 0x69E8 +0xE23B 0x85FF +0xE23C 0x90ED +0xE23D 0xF905 +0xE23E 0x51A0 +0xE23F 0x5B98 +0xE240 0x5BEC +0xE241 0x6163 +0xE242 0x68FA +0xE243 0x6B3E +0xE244 0x704C +0xE245 0x742F +0xE246 0x74D8 +0xE247 0x7BA1 +0xE248 0x7F50 +0xE249 0x83C5 +0xE24A 0x89C0 +0xE24B 0x8CAB +0xE24C 0x95DC +0xE24D 0x9928 +0xE24E 0x522E +0xE24F 0x605D +0xE250 0x62EC +0xE251 0x9002 +0xE252 0x4F8A +0xE253 0x5149 +0xE254 0x5321 +0xE255 0x58D9 +0xE256 0x5EE3 +0xE257 0x66E0 +0xE258 0x6D38 +0xE259 0x709A +0xE25A 0x72C2 +0xE25B 0x73D6 +0xE25C 0x7B50 +0xE25D 0x80F1 +0xE25E 0x945B +0xE25F 0x5366 +0xE260 0x639B +0xE261 0x7F6B +0xE262 0x4E56 +0xE263 0x5080 +0xE264 0x584A +0xE265 0x58DE +0xE266 0x602A +0xE267 0x6127 +0xE268 0x62D0 +0xE269 0x69D0 +0xE26A 0x9B41 +0xE26B 0x5B8F +0xE26C 0x7D18 +0xE26D 0x80B1 +0xE26E 0x8F5F +0xE26F 0x4EA4 +0xE270 0x50D1 +0xE271 0x54AC +0xE272 0x55AC +0xE273 0x5B0C +0xE274 0x5DA0 +0xE275 0x5DE7 +0xE276 0x652A +0xE277 0x654E +0xE278 0x6821 +0xE279 0x6A4B +0xE27A 0x72E1 +0xE27B 0x768E +0xE27C 0x77EF +0xE27D 0x7D5E +0xE27E 0x7FF9 +0xE291 0x81A0 +0xE292 0x854E +0xE293 0x86DF +0xE294 0x8F03 +0xE295 0x8F4E +0xE296 0x90CA +0xE297 0x9903 +0xE298 0x9A55 +0xE299 0x9BAB +0xE29A 0x4E18 +0xE29B 0x4E45 +0xE29C 0x4E5D +0xE29D 0x4EC7 +0xE29E 0x4FF1 +0xE29F 0x5177 +0xE2A0 0x52FE +0xE2A1 0x5340 +0xE2A2 0x53E3 +0xE2A3 0x53E5 +0xE2A4 0x548E +0xE2A5 0x5614 +0xE2A6 0x5775 +0xE2A7 0x57A2 +0xE2A8 0x5BC7 +0xE2A9 0x5D87 +0xE2AA 0x5ED0 +0xE2AB 0x61FC +0xE2AC 0x62D8 +0xE2AD 0x6551 +0xE2AE 0x67B8 +0xE2AF 0x67E9 +0xE2B0 0x69CB +0xE2B1 0x6B50 +0xE2B2 0x6BC6 +0xE2B3 0x6BEC +0xE2B4 0x6C42 +0xE2B5 0x6E9D +0xE2B6 0x7078 +0xE2B7 0x72D7 +0xE2B8 0x7396 +0xE2B9 0x7403 +0xE2BA 0x77BF +0xE2BB 0x77E9 +0xE2BC 0x7A76 +0xE2BD 0x7D7F +0xE2BE 0x8009 +0xE2BF 0x81FC +0xE2C0 0x8205 +0xE2C1 0x820A +0xE2C2 0x82DF +0xE2C3 0x8862 +0xE2C4 0x8B33 +0xE2C5 0x8CFC +0xE2C6 0x8EC0 +0xE2C7 0x9011 +0xE2C8 0x90B1 +0xE2C9 0x9264 +0xE2CA 0x92B6 +0xE2CB 0x99D2 +0xE2CC 0x9A45 +0xE2CD 0x9CE9 +0xE2CE 0x9DD7 +0xE2CF 0x9F9C +0xE2D0 0x570B +0xE2D1 0x5C40 +0xE2D2 0x83CA +0xE2D3 0x97A0 +0xE2D4 0x97AB +0xE2D5 0x9EB4 +0xE2D6 0x541B +0xE2D7 0x7A98 +0xE2D8 0x7FA4 +0xE2D9 0x88D9 +0xE2DA 0x8ECD +0xE2DB 0x90E1 +0xE2DC 0x5800 +0xE2DD 0x5C48 +0xE2DE 0x6398 +0xE2DF 0x7A9F +0xE2E0 0x5BAE +0xE2E1 0x5F13 +0xE2E2 0x7A79 +0xE2E3 0x7AAE +0xE2E4 0x828E +0xE2E5 0x8EAC +0xE2E6 0x5026 +0xE2E7 0x5238 +0xE2E8 0x52F8 +0xE2E9 0x5377 +0xE2EA 0x5708 +0xE2EB 0x62F3 +0xE2EC 0x6372 +0xE2ED 0x6B0A +0xE2EE 0x6DC3 +0xE2EF 0x7737 +0xE2F0 0x53A5 +0xE2F1 0x7357 +0xE2F2 0x8568 +0xE2F3 0x8E76 +0xE2F4 0x95D5 +0xE2F5 0x673A +0xE2F6 0x6AC3 +0xE2F7 0x6F70 +0xE2F8 0x8A6D +0xE2F9 0x8ECC +0xE2FA 0x994B +0xE2FB 0xF906 +0xE2FC 0x6677 +0xE2FD 0x6B78 +0xE2FE 0x8CB4 +0xE331 0x9B3C +0xE332 0xF907 +0xE333 0x53EB +0xE334 0x572D +0xE335 0x594E +0xE336 0x63C6 +0xE337 0x69FB +0xE338 0x73EA +0xE339 0x7845 +0xE33A 0x7ABA +0xE33B 0x7AC5 +0xE33C 0x7CFE +0xE33D 0x8475 +0xE33E 0x898F +0xE33F 0x8D73 +0xE340 0x9035 +0xE341 0x95A8 +0xE342 0x52FB +0xE343 0x5747 +0xE344 0x7547 +0xE345 0x7B60 +0xE346 0x83CC +0xE347 0x921E +0xE348 0xF908 +0xE349 0x6A58 +0xE34A 0x514B +0xE34B 0x524B +0xE34C 0x5287 +0xE34D 0x621F +0xE34E 0x68D8 +0xE34F 0x6975 +0xE350 0x9699 +0xE351 0x50C5 +0xE352 0x52A4 +0xE353 0x52E4 +0xE354 0x61C3 +0xE355 0x65A4 +0xE356 0x6839 +0xE357 0x69FF +0xE358 0x747E +0xE359 0x7B4B +0xE35A 0x82B9 +0xE35B 0x83EB +0xE35C 0x89B2 +0xE35D 0x8B39 +0xE35E 0x8FD1 +0xE35F 0x9949 +0xE360 0xF909 +0xE361 0x4ECA +0xE362 0x5997 +0xE363 0x64D2 +0xE364 0x6611 +0xE365 0x6A8E +0xE366 0x7434 +0xE367 0x7981 +0xE368 0x79BD +0xE369 0x82A9 +0xE36A 0x887E +0xE36B 0x887F +0xE36C 0x895F +0xE36D 0xF90A +0xE36E 0x9326 +0xE36F 0x4F0B +0xE370 0x53CA +0xE371 0x6025 +0xE372 0x6271 +0xE373 0x6C72 +0xE374 0x7D1A +0xE375 0x7D66 +0xE376 0x4E98 +0xE377 0x5162 +0xE378 0x77DC +0xE379 0x80AF +0xE37A 0x4F01 +0xE37B 0x4F0E +0xE37C 0x5176 +0xE37D 0x5180 +0xE37E 0x55DC +0xE391 0x5668 +0xE392 0x573B +0xE393 0x57FA +0xE394 0x57FC +0xE395 0x5914 +0xE396 0x5947 +0xE397 0x5993 +0xE398 0x5BC4 +0xE399 0x5C90 +0xE39A 0x5D0E +0xE39B 0x5DF1 +0xE39C 0x5E7E +0xE39D 0x5FCC +0xE39E 0x6280 +0xE39F 0x65D7 +0xE3A0 0x65E3 +0xE3A1 0x671E +0xE3A2 0x671F +0xE3A3 0x675E +0xE3A4 0x68CB +0xE3A5 0x68C4 +0xE3A6 0x6A5F +0xE3A7 0x6B3A +0xE3A8 0x6C23 +0xE3A9 0x6C7D +0xE3AA 0x6C82 +0xE3AB 0x6DC7 +0xE3AC 0x7398 +0xE3AD 0x7426 +0xE3AE 0x742A +0xE3AF 0x7482 +0xE3B0 0x74A3 +0xE3B1 0x7578 +0xE3B2 0x757F +0xE3B3 0x7881 +0xE3B4 0x78EF +0xE3B5 0x7941 +0xE3B6 0x7947 +0xE3B7 0x7948 +0xE3B8 0x797A +0xE3B9 0x7B95 +0xE3BA 0x7D00 +0xE3BB 0x7DBA +0xE3BC 0x7F88 +0xE3BD 0x8006 +0xE3BE 0x802D +0xE3BF 0x808C +0xE3C0 0x8A18 +0xE3C1 0x8B4F +0xE3C2 0x8C48 +0xE3C3 0x8D77 +0xE3C4 0x9321 +0xE3C5 0x9324 +0xE3C6 0x98E2 +0xE3C7 0x9951 +0xE3C8 0x9A0E +0xE3C9 0x9A0F +0xE3CA 0x9A65 +0xE3CB 0x9E92 +0xE3CC 0x7DCA +0xE3CD 0x4F76 +0xE3CE 0x5409 +0xE3CF 0x62EE +0xE3D0 0x6854 +0xE3D1 0x91D1 +0xE3D2 0x55AB +0xE3D3 0x513A +0xE3D4 0xF90B +0xE3D5 0xF90C +0xE3D6 0x5A1C +0xE3D7 0x61E6 +0xE3D8 0xF90D +0xE3D9 0x62CF +0xE3DA 0x62FF +0xE3DB 0xF90E +0xE3DC 0xF90F +0xE3DD 0xF910 +0xE3DE 0xF911 +0xE3DF 0xF912 +0xE3E0 0xF913 +0xE3E1 0x90A3 +0xE3E2 0xF914 +0xE3E3 0xF915 +0xE3E4 0xF916 +0xE3E5 0xF917 +0xE3E6 0xF918 +0xE3E7 0x8AFE +0xE3E8 0xF919 +0xE3E9 0xF91A +0xE3EA 0xF91B +0xE3EB 0xF91C +0xE3EC 0x6696 +0xE3ED 0xF91D +0xE3EE 0x7156 +0xE3EF 0xF91E +0xE3F0 0xF91F +0xE3F1 0x96E3 +0xE3F2 0xF920 +0xE3F3 0x634F +0xE3F4 0x637A +0xE3F5 0x5357 +0xE3F6 0xF921 +0xE3F7 0x678F +0xE3F8 0x6960 +0xE3F9 0x6E73 +0xE3FA 0xF922 +0xE3FB 0x7537 +0xE3FC 0xF923 +0xE3FD 0xF924 +0xE3FE 0xF925 +0xE431 0x7D0D +0xE432 0xF926 +0xE433 0xF927 +0xE434 0x8872 +0xE435 0x56CA +0xE436 0x5A18 +0xE437 0xF928 +0xE438 0xF929 +0xE439 0xF92A +0xE43A 0xF92B +0xE43B 0xF92C +0xE43C 0x4E43 +0xE43D 0xF92D +0xE43E 0x5167 +0xE43F 0x5948 +0xE440 0x67F0 +0xE441 0x8010 +0xE442 0xF92E +0xE443 0x5973 +0xE444 0x5E74 +0xE445 0x649A +0xE446 0x79CA +0xE447 0x5FF5 +0xE448 0x606C +0xE449 0x62C8 +0xE44A 0x637B +0xE44B 0x5BE7 +0xE44C 0x5BD7 +0xE44D 0x52AA +0xE44E 0xF92F +0xE44F 0x5974 +0xE450 0x5F29 +0xE451 0x6012 +0xE452 0xF930 +0xE453 0xF931 +0xE454 0xF932 +0xE455 0x7459 +0xE456 0xF933 +0xE457 0xF934 +0xE458 0xF935 +0xE459 0xF936 +0xE45A 0xF937 +0xE45B 0xF938 +0xE45C 0x99D1 +0xE45D 0xF939 +0xE45E 0xF93A +0xE45F 0xF93B +0xE460 0xF93C +0xE461 0xF93D +0xE462 0xF93E +0xE463 0xF93F +0xE464 0xF940 +0xE465 0xF941 +0xE466 0xF942 +0xE467 0xF943 +0xE468 0x6FC3 +0xE469 0xF944 +0xE46A 0xF945 +0xE46B 0x81BF +0xE46C 0x8FB2 +0xE46D 0x60F1 +0xE46E 0xF946 +0xE46F 0xF947 +0xE470 0x8166 +0xE471 0xF948 +0xE472 0xF949 +0xE473 0x5C3F +0xE474 0xF94A +0xE475 0xF94B +0xE476 0xF94C +0xE477 0xF94D +0xE478 0xF94E +0xE479 0xF94F +0xE47A 0xF950 +0xE47B 0xF951 +0xE47C 0x5AE9 +0xE47D 0x8A25 +0xE47E 0x677B +0xE491 0x7D10 +0xE492 0xF952 +0xE493 0xF953 +0xE494 0xF954 +0xE495 0xF955 +0xE496 0xF956 +0xE497 0xF957 +0xE498 0x80FD +0xE499 0xF958 +0xE49A 0xF959 +0xE49B 0x5C3C +0xE49C 0x6CE5 +0xE49D 0x533F +0xE49E 0x6EBA +0xE49F 0x591A +0xE4A0 0x8336 +0xE4A1 0x4E39 +0xE4A2 0x4EB6 +0xE4A3 0x4F46 +0xE4A4 0x55AE +0xE4A5 0x5718 +0xE4A6 0x58C7 +0xE4A7 0x5F56 +0xE4A8 0x65B7 +0xE4A9 0x65E6 +0xE4AA 0x6A80 +0xE4AB 0x6BB5 +0xE4AC 0x6E4D +0xE4AD 0x77ED +0xE4AE 0x7AEF +0xE4AF 0x7C1E +0xE4B0 0x7DDE +0xE4B1 0x86CB +0xE4B2 0x8892 +0xE4B3 0x9132 +0xE4B4 0x935B +0xE4B5 0x64BB +0xE4B6 0x6FBE +0xE4B7 0x737A +0xE4B8 0x75B8 +0xE4B9 0x9054 +0xE4BA 0x5556 +0xE4BB 0x574D +0xE4BC 0x61BA +0xE4BD 0x64D4 +0xE4BE 0x66C7 +0xE4BF 0x6DE1 +0xE4C0 0x6E5B +0xE4C1 0x6F6D +0xE4C2 0x6FB9 +0xE4C3 0x75F0 +0xE4C4 0x8043 +0xE4C5 0x81BD +0xE4C6 0x8541 +0xE4C7 0x8983 +0xE4C8 0x8AC7 +0xE4C9 0x8B5A +0xE4CA 0x931F +0xE4CB 0x6C93 +0xE4CC 0x7553 +0xE4CD 0x7B54 +0xE4CE 0x8E0F +0xE4CF 0x905D +0xE4D0 0x5510 +0xE4D1 0x5802 +0xE4D2 0x5858 +0xE4D3 0x5E62 +0xE4D4 0x6207 +0xE4D5 0x649E +0xE4D6 0x68E0 +0xE4D7 0x7576 +0xE4D8 0x7CD6 +0xE4D9 0x87B3 +0xE4DA 0x9EE8 +0xE4DB 0x4EE3 +0xE4DC 0x5788 +0xE4DD 0x576E +0xE4DE 0x5927 +0xE4DF 0x5C0D +0xE4E0 0x5CB1 +0xE4E1 0x5E36 +0xE4E2 0x5F85 +0xE4E3 0x6234 +0xE4E4 0x64E1 +0xE4E5 0x73B3 +0xE4E6 0x81FA +0xE4E7 0x888B +0xE4E8 0x8CB8 +0xE4E9 0x968A +0xE4EA 0x9EDB +0xE4EB 0x5B85 +0xE4EC 0x5FB7 +0xE4ED 0x60B3 +0xE4EE 0x5012 +0xE4EF 0x5200 +0xE4F0 0x5230 +0xE4F1 0x5716 +0xE4F2 0x5835 +0xE4F3 0x5857 +0xE4F4 0x5C0E +0xE4F5 0x5C60 +0xE4F6 0x5CF6 +0xE4F7 0x5D8B +0xE4F8 0x5EA6 +0xE4F9 0x5F92 +0xE4FA 0x60BC +0xE4FB 0x6311 +0xE4FC 0x6389 +0xE4FD 0x6417 +0xE4FE 0x6843 +0xE531 0x68F9 +0xE532 0x6AC2 +0xE533 0x6DD8 +0xE534 0x6E21 +0xE535 0x6ED4 +0xE536 0x6FE4 +0xE537 0x71FE +0xE538 0x76DC +0xE539 0x7779 +0xE53A 0x79B1 +0xE53B 0x7A3B +0xE53C 0x8404 +0xE53D 0x89A9 +0xE53E 0x8CED +0xE53F 0x8DF3 +0xE540 0x8E48 +0xE541 0x9003 +0xE542 0x9014 +0xE543 0x9053 +0xE544 0x90FD +0xE545 0x934D +0xE546 0x9676 +0xE547 0x97DC +0xE548 0x6BD2 +0xE549 0x7006 +0xE54A 0x7258 +0xE54B 0x72A2 +0xE54C 0x7368 +0xE54D 0x7763 +0xE54E 0x79BF +0xE54F 0x7BE4 +0xE550 0x7E9B +0xE551 0x8B80 +0xE552 0x58A9 +0xE553 0x60C7 +0xE554 0x6566 +0xE555 0x65FD +0xE556 0x66BE +0xE557 0x6C8C +0xE558 0x711E +0xE559 0x71C9 +0xE55A 0x8C5A +0xE55B 0x9813 +0xE55C 0x4E6D +0xE55D 0x7A81 +0xE55E 0x4EDD +0xE55F 0x51AC +0xE560 0x51CD +0xE561 0x52D5 +0xE562 0x540C +0xE563 0x61A7 +0xE564 0x6771 +0xE565 0x6850 +0xE566 0x68DF +0xE567 0x6D1E +0xE568 0x6F7C +0xE569 0x75BC +0xE56A 0x77B3 +0xE56B 0x7AE5 +0xE56C 0x80F4 +0xE56D 0x8463 +0xE56E 0x9285 +0xE56F 0x515C +0xE570 0x6597 +0xE571 0x675C +0xE572 0x6793 +0xE573 0x75D8 +0xE574 0x7AC7 +0xE575 0x8373 +0xE576 0xF95A +0xE577 0x8C46 +0xE578 0x9017 +0xE579 0x982D +0xE57A 0x5C6F +0xE57B 0x81C0 +0xE57C 0x829A +0xE57D 0x9041 +0xE57E 0x906F +0xE591 0x920D +0xE592 0x5F97 +0xE593 0x5D9D +0xE594 0x6A59 +0xE595 0x71C8 +0xE596 0x767B +0xE597 0x7B49 +0xE598 0x85E4 +0xE599 0x8B04 +0xE59A 0x9127 +0xE59B 0x9A30 +0xE59C 0x5587 +0xE59D 0x61F6 +0xE59E 0xF95B +0xE59F 0x7669 +0xE5A0 0x7F85 +0xE5A1 0x863F +0xE5A2 0x87BA +0xE5A3 0x88F8 +0xE5A4 0x908F +0xE5A5 0xF95C +0xE5A6 0x6D1B +0xE5A7 0x70D9 +0xE5A8 0x73DE +0xE5A9 0x7D61 +0xE5AA 0x843D +0xE5AB 0xF95D +0xE5AC 0x916A +0xE5AD 0x99F1 +0xE5AE 0xF95E +0xE5AF 0x4E82 +0xE5B0 0x5375 +0xE5B1 0x6B04 +0xE5B2 0x6B12 +0xE5B3 0x703E +0xE5B4 0x721B +0xE5B5 0x862D +0xE5B6 0x9E1E +0xE5B7 0x524C +0xE5B8 0x8FA3 +0xE5B9 0x5D50 +0xE5BA 0x64E5 +0xE5BB 0x652C +0xE5BC 0x6B16 +0xE5BD 0x6FEB +0xE5BE 0x7C43 +0xE5BF 0x7E9C +0xE5C0 0x85CD +0xE5C1 0x8964 +0xE5C2 0x89BD +0xE5C3 0x62C9 +0xE5C4 0x81D8 +0xE5C5 0x881F +0xE5C6 0x5ECA +0xE5C7 0x6717 +0xE5C8 0x6D6A +0xE5C9 0x72FC +0xE5CA 0x7405 +0xE5CB 0x746F +0xE5CC 0x8782 +0xE5CD 0x90DE +0xE5CE 0x4F86 +0xE5CF 0x5D0D +0xE5D0 0x5FA0 +0xE5D1 0x840A +0xE5D2 0x51B7 +0xE5D3 0x63A0 +0xE5D4 0x7565 +0xE5D5 0x4EAE +0xE5D6 0x5006 +0xE5D7 0x5169 +0xE5D8 0x51C9 +0xE5D9 0x6881 +0xE5DA 0x6A11 +0xE5DB 0x7CAE +0xE5DC 0x7CB1 +0xE5DD 0x7CE7 +0xE5DE 0x826F +0xE5DF 0x8AD2 +0xE5E0 0x8F1B +0xE5E1 0x91CF +0xE5E2 0x4FB6 +0xE5E3 0x5137 +0xE5E4 0x52F5 +0xE5E5 0x5442 +0xE5E6 0x5EEC +0xE5E7 0x616E +0xE5E8 0x623E +0xE5E9 0x65C5 +0xE5EA 0x6ADA +0xE5EB 0x6FFE +0xE5EC 0x792A +0xE5ED 0x85DC +0xE5EE 0x8823 +0xE5EF 0x95AD +0xE5F0 0x9A62 +0xE5F1 0x9A6A +0xE5F2 0x9E97 +0xE5F3 0x9ECE +0xE5F4 0x529B +0xE5F5 0x66C6 +0xE5F6 0x6B77 +0xE5F7 0x701D +0xE5F8 0x792B +0xE5F9 0x8F62 +0xE5FA 0x9742 +0xE5FB 0x6190 +0xE5FC 0x6200 +0xE5FD 0x6523 +0xE5FE 0x6F23 +0xE631 0x7149 +0xE632 0x7489 +0xE633 0x7DF4 +0xE634 0x806F +0xE635 0x84EE +0xE636 0x8F26 +0xE637 0x9023 +0xE638 0x934A +0xE639 0x51BD +0xE63A 0x5217 +0xE63B 0x52A3 +0xE63C 0x6D0C +0xE63D 0x70C8 +0xE63E 0x88C2 +0xE63F 0x5EC9 +0xE640 0x6582 +0xE641 0x6BAE +0xE642 0x6FC2 +0xE643 0x7C3E +0xE644 0x7375 +0xE645 0x4EE4 +0xE646 0x4F36 +0xE647 0x56F9 +0xE648 0xF95F +0xE649 0x5CBA +0xE64A 0x5DBA +0xE64B 0x601C +0xE64C 0x73B2 +0xE64D 0x7B2D +0xE64E 0x7F9A +0xE64F 0x7FCE +0xE650 0x8046 +0xE651 0x901E +0xE652 0x9234 +0xE653 0x96F6 +0xE654 0x9748 +0xE655 0x9818 +0xE656 0x9F61 +0xE657 0x4F8B +0xE658 0x6FA7 +0xE659 0x79AE +0xE65A 0x91B4 +0xE65B 0x96B7 +0xE65C 0x52DE +0xE65D 0xF960 +0xE65E 0x6488 +0xE65F 0x64C4 +0xE660 0x6AD3 +0xE661 0x6F5E +0xE662 0x7018 +0xE663 0x7210 +0xE664 0x76E7 +0xE665 0x8001 +0xE666 0x8606 +0xE667 0x865C +0xE668 0x8DEF +0xE669 0x8F05 +0xE66A 0x9732 +0xE66B 0x9B6F +0xE66C 0x9DFA +0xE66D 0x9E75 +0xE66E 0x788C +0xE66F 0x797F +0xE670 0x7DA0 +0xE671 0x83C9 +0xE672 0x9304 +0xE673 0x9E7F +0xE674 0x9E93 +0xE675 0x8AD6 +0xE676 0x58DF +0xE677 0x5F04 +0xE678 0x6727 +0xE679 0x7027 +0xE67A 0x74CF +0xE67B 0x7C60 +0xE67C 0x807E +0xE67D 0x5121 +0xE67E 0x7028 +0xE691 0x7262 +0xE692 0x78CA +0xE693 0x8CC2 +0xE694 0x8CDA +0xE695 0x8CF4 +0xE696 0x96F7 +0xE697 0x4E86 +0xE698 0x50DA +0xE699 0x5BEE +0xE69A 0x5ED6 +0xE69B 0x6599 +0xE69C 0x71CE +0xE69D 0x7642 +0xE69E 0x77AD +0xE69F 0x804A +0xE6A0 0x84FC +0xE6A1 0x907C +0xE6A2 0x9B27 +0xE6A3 0x9F8D +0xE6A4 0x58D8 +0xE6A5 0x5A41 +0xE6A6 0x5C62 +0xE6A7 0x6A13 +0xE6A8 0x6DDA +0xE6A9 0x6F0F +0xE6AA 0x763B +0xE6AB 0x7D2F +0xE6AC 0x7E37 +0xE6AD 0x851E +0xE6AE 0x8938 +0xE6AF 0x93E4 +0xE6B0 0x964B +0xE6B1 0x5289 +0xE6B2 0x65D2 +0xE6B3 0x67F3 +0xE6B4 0x69B4 +0xE6B5 0x6D41 +0xE6B6 0x6E9C +0xE6B7 0x700F +0xE6B8 0x7409 +0xE6B9 0x7460 +0xE6BA 0x7559 +0xE6BB 0x7624 +0xE6BC 0x786B +0xE6BD 0x8B2C +0xE6BE 0x985E +0xE6BF 0x516D +0xE6C0 0x622E +0xE6C1 0x9678 +0xE6C2 0x4F96 +0xE6C3 0x502B +0xE6C4 0x5D19 +0xE6C5 0x6DEA +0xE6C6 0x7DB8 +0xE6C7 0x8F2A +0xE6C8 0x5F8B +0xE6C9 0x6144 +0xE6CA 0x6817 +0xE6CB 0xF961 +0xE6CC 0x9686 +0xE6CD 0x52D2 +0xE6CE 0x808B +0xE6CF 0x51DC +0xE6D0 0x51CC +0xE6D1 0x695E +0xE6D2 0x7A1C +0xE6D3 0x7DBE +0xE6D4 0x83F1 +0xE6D5 0x9675 +0xE6D6 0x4FDA +0xE6D7 0x5229 +0xE6D8 0x5398 +0xE6D9 0x540F +0xE6DA 0x550E +0xE6DB 0x5C65 +0xE6DC 0x60A7 +0xE6DD 0x674E +0xE6DE 0x68A8 +0xE6DF 0x6D6C +0xE6E0 0x7281 +0xE6E1 0x72F8 +0xE6E2 0x7406 +0xE6E3 0x7483 +0xE6E4 0xF962 +0xE6E5 0x75E2 +0xE6E6 0x7C6C +0xE6E7 0x7F79 +0xE6E8 0x7FB8 +0xE6E9 0x8389 +0xE6EA 0x88CF +0xE6EB 0x88E1 +0xE6EC 0x91CC +0xE6ED 0x91D0 +0xE6EE 0x96E2 +0xE6EF 0x9BC9 +0xE6F0 0x541D +0xE6F1 0x6F7E +0xE6F2 0x71D0 +0xE6F3 0x7498 +0xE6F4 0x85FA +0xE6F5 0x8EAA +0xE6F6 0x96A3 +0xE6F7 0x9C57 +0xE6F8 0x9E9F +0xE6F9 0x6797 +0xE6FA 0x6DCB +0xE6FB 0x7433 +0xE6FC 0x81E8 +0xE6FD 0x9716 +0xE6FE 0x782C +0xE731 0x7ACB +0xE732 0x7B20 +0xE733 0x7C92 +0xE734 0x6469 +0xE735 0x746A +0xE736 0x75F2 +0xE737 0x78BC +0xE738 0x78E8 +0xE739 0x99AC +0xE73A 0x9B54 +0xE73B 0x9EBB +0xE73C 0x5BDE +0xE73D 0x5E55 +0xE73E 0x6F20 +0xE73F 0x819C +0xE740 0x83AB +0xE741 0x9088 +0xE742 0x4E07 +0xE743 0x534D +0xE744 0x5A29 +0xE745 0x5DD2 +0xE746 0x5F4E +0xE747 0x6162 +0xE748 0x633D +0xE749 0x6669 +0xE74A 0x66FC +0xE74B 0x6EFF +0xE74C 0x6F2B +0xE74D 0x7063 +0xE74E 0x779E +0xE74F 0x842C +0xE750 0x8513 +0xE751 0x883B +0xE752 0x8F13 +0xE753 0x9945 +0xE754 0x9C3B +0xE755 0x551C +0xE756 0x62B9 +0xE757 0x672B +0xE758 0x6CAB +0xE759 0x8309 +0xE75A 0x896A +0xE75B 0x977A +0xE75C 0x4EA1 +0xE75D 0x5984 +0xE75E 0x5FD8 +0xE75F 0x5FD9 +0xE760 0x671B +0xE761 0x7DB2 +0xE762 0x7F54 +0xE763 0x8292 +0xE764 0x832B +0xE765 0x83BD +0xE766 0x8F1E +0xE767 0x9099 +0xE768 0x57CB +0xE769 0x59B9 +0xE76A 0x5A92 +0xE76B 0x5BD0 +0xE76C 0x6627 +0xE76D 0x679A +0xE76E 0x6885 +0xE76F 0x6BCF +0xE770 0x7164 +0xE771 0x7F75 +0xE772 0x8CB7 +0xE773 0x8CE3 +0xE774 0x9081 +0xE775 0x9B45 +0xE776 0x8108 +0xE777 0x8C8A +0xE778 0x964C +0xE779 0x9A40 +0xE77A 0x9EA5 +0xE77B 0x5B5F +0xE77C 0x6C13 +0xE77D 0x731B +0xE77E 0x76F2 +0xE791 0x76DF +0xE792 0x840C +0xE793 0x51AA +0xE794 0x8993 +0xE795 0x514D +0xE796 0x5195 +0xE797 0x52C9 +0xE798 0x68C9 +0xE799 0x6C94 +0xE79A 0x7704 +0xE79B 0x7720 +0xE79C 0x7DBF +0xE79D 0x7DEC +0xE79E 0x9762 +0xE79F 0x9EB5 +0xE7A0 0x6EC5 +0xE7A1 0x8511 +0xE7A2 0x51A5 +0xE7A3 0x540D +0xE7A4 0x547D +0xE7A5 0x660E +0xE7A6 0x669D +0xE7A7 0x6927 +0xE7A8 0x6E9F +0xE7A9 0x76BF +0xE7AA 0x7791 +0xE7AB 0x8317 +0xE7AC 0x84C2 +0xE7AD 0x879F +0xE7AE 0x9169 +0xE7AF 0x9298 +0xE7B0 0x9CF4 +0xE7B1 0x8882 +0xE7B2 0x4FAE +0xE7B3 0x5192 +0xE7B4 0x52DF +0xE7B5 0x59C6 +0xE7B6 0x5E3D +0xE7B7 0x6155 +0xE7B8 0x6478 +0xE7B9 0x6479 +0xE7BA 0x66AE +0xE7BB 0x67D0 +0xE7BC 0x6A21 +0xE7BD 0x6BCD +0xE7BE 0x6BDB +0xE7BF 0x725F +0xE7C0 0x7261 +0xE7C1 0x7441 +0xE7C2 0x7738 +0xE7C3 0x77DB +0xE7C4 0x8017 +0xE7C5 0x82BC +0xE7C6 0x8305 +0xE7C7 0x8B00 +0xE7C8 0x8B28 +0xE7C9 0x8C8C +0xE7CA 0x6728 +0xE7CB 0x6C90 +0xE7CC 0x7267 +0xE7CD 0x76EE +0xE7CE 0x7766 +0xE7CF 0x7A46 +0xE7D0 0x9DA9 +0xE7D1 0x6B7F +0xE7D2 0x6C92 +0xE7D3 0x5922 +0xE7D4 0x6726 +0xE7D5 0x8499 +0xE7D6 0x536F +0xE7D7 0x5893 +0xE7D8 0x5999 +0xE7D9 0x5EDF +0xE7DA 0x63CF +0xE7DB 0x6634 +0xE7DC 0x6773 +0xE7DD 0x6E3A +0xE7DE 0x732B +0xE7DF 0x7AD7 +0xE7E0 0x82D7 +0xE7E1 0x9328 +0xE7E2 0x52D9 +0xE7E3 0x5DEB +0xE7E4 0x61AE +0xE7E5 0x61CB +0xE7E6 0x620A +0xE7E7 0x62C7 +0xE7E8 0x64AB +0xE7E9 0x65E0 +0xE7EA 0x6959 +0xE7EB 0x6B66 +0xE7EC 0x6BCB +0xE7ED 0x7121 +0xE7EE 0x73F7 +0xE7EF 0x755D +0xE7F0 0x7E46 +0xE7F1 0x821E +0xE7F2 0x8302 +0xE7F3 0x856A +0xE7F4 0x8AA3 +0xE7F5 0x8CBF +0xE7F6 0x9727 +0xE7F7 0x9D61 +0xE7F8 0x58A8 +0xE7F9 0x9ED8 +0xE7FA 0x5011 +0xE7FB 0x520E +0xE7FC 0x543B +0xE7FD 0x554F +0xE7FE 0x6587 +0xE831 0x6C76 +0xE832 0x7D0A +0xE833 0x7D0B +0xE834 0x805E +0xE835 0x868A +0xE836 0x9580 +0xE837 0x96EF +0xE838 0x52FF +0xE839 0x6C95 +0xE83A 0x7269 +0xE83B 0x5473 +0xE83C 0x5A9A +0xE83D 0x5C3E +0xE83E 0x5D4B +0xE83F 0x5F4C +0xE840 0x5FAE +0xE841 0x672A +0xE842 0x68B6 +0xE843 0x6963 +0xE844 0x6E3C +0xE845 0x6E44 +0xE846 0x7709 +0xE847 0x7C73 +0xE848 0x7F8E +0xE849 0x8587 +0xE84A 0x8B0E +0xE84B 0x8FF7 +0xE84C 0x9761 +0xE84D 0x9EF4 +0xE84E 0x5CB7 +0xE84F 0x60B6 +0xE850 0x610D +0xE851 0x61AB +0xE852 0x654F +0xE853 0x65FB +0xE854 0x65FC +0xE855 0x6C11 +0xE856 0x6CEF +0xE857 0x739F +0xE858 0x73C9 +0xE859 0x7DE1 +0xE85A 0x9594 +0xE85B 0x5BC6 +0xE85C 0x871C +0xE85D 0x8B10 +0xE85E 0x525D +0xE85F 0x535A +0xE860 0x62CD +0xE861 0x640F +0xE862 0x64B2 +0xE863 0x6734 +0xE864 0x6A38 +0xE865 0x6CCA +0xE866 0x73C0 +0xE867 0x749E +0xE868 0x7B94 +0xE869 0x7C95 +0xE86A 0x7E1B +0xE86B 0x818A +0xE86C 0x8236 +0xE86D 0x8584 +0xE86E 0x8FEB +0xE86F 0x96F9 +0xE870 0x99C1 +0xE871 0x4F34 +0xE872 0x534A +0xE873 0x53CD +0xE874 0x53DB +0xE875 0x62CC +0xE876 0x642C +0xE877 0x6500 +0xE878 0x6591 +0xE879 0x69C3 +0xE87A 0x6CEE +0xE87B 0x6F58 +0xE87C 0x73ED +0xE87D 0x7554 +0xE87E 0x7622 +0xE891 0x76E4 +0xE892 0x76FC +0xE893 0x78D0 +0xE894 0x78FB +0xE895 0x792C +0xE896 0x7D46 +0xE897 0x822C +0xE898 0x87E0 +0xE899 0x8FD4 +0xE89A 0x9812 +0xE89B 0x98EF +0xE89C 0x52C3 +0xE89D 0x62D4 +0xE89E 0x64A5 +0xE89F 0x6E24 +0xE8A0 0x6F51 +0xE8A1 0x767C +0xE8A2 0x8DCB +0xE8A3 0x91B1 +0xE8A4 0x9262 +0xE8A5 0x9AEE +0xE8A6 0x9B43 +0xE8A7 0x5023 +0xE8A8 0x508D +0xE8A9 0x574A +0xE8AA 0x59A8 +0xE8AB 0x5C28 +0xE8AC 0x5E47 +0xE8AD 0x5F77 +0xE8AE 0x623F +0xE8AF 0x653E +0xE8B0 0x65B9 +0xE8B1 0x65C1 +0xE8B2 0x6609 +0xE8B3 0x678B +0xE8B4 0x699C +0xE8B5 0x6EC2 +0xE8B6 0x78C5 +0xE8B7 0x7D21 +0xE8B8 0x80AA +0xE8B9 0x8180 +0xE8BA 0x822B +0xE8BB 0x82B3 +0xE8BC 0x84A1 +0xE8BD 0x868C +0xE8BE 0x8A2A +0xE8BF 0x8B17 +0xE8C0 0x90A6 +0xE8C1 0x9632 +0xE8C2 0x9F90 +0xE8C3 0x500D +0xE8C4 0x4FF3 +0xE8C5 0xF963 +0xE8C6 0x57F9 +0xE8C7 0x5F98 +0xE8C8 0x62DC +0xE8C9 0x6392 +0xE8CA 0x676F +0xE8CB 0x6E43 +0xE8CC 0x7119 +0xE8CD 0x76C3 +0xE8CE 0x80CC +0xE8CF 0x80DA +0xE8D0 0x88F4 +0xE8D1 0x88F5 +0xE8D2 0x8919 +0xE8D3 0x8CE0 +0xE8D4 0x8F29 +0xE8D5 0x914D +0xE8D6 0x966A +0xE8D7 0x4F2F +0xE8D8 0x4F70 +0xE8D9 0x5E1B +0xE8DA 0x67CF +0xE8DB 0x6822 +0xE8DC 0x767D +0xE8DD 0x767E +0xE8DE 0x9B44 +0xE8DF 0x5E61 +0xE8E0 0x6A0A +0xE8E1 0x7169 +0xE8E2 0x71D4 +0xE8E3 0x756A +0xE8E4 0xF964 +0xE8E5 0x7E41 +0xE8E6 0x8543 +0xE8E7 0x85E9 +0xE8E8 0x98DC +0xE8E9 0x4F10 +0xE8EA 0x7B4F +0xE8EB 0x7F70 +0xE8EC 0x95A5 +0xE8ED 0x51E1 +0xE8EE 0x5E06 +0xE8EF 0x68B5 +0xE8F0 0x6C3E +0xE8F1 0x6C4E +0xE8F2 0x6CDB +0xE8F3 0x72AF +0xE8F4 0x7BC4 +0xE8F5 0x8303 +0xE8F6 0x6CD5 +0xE8F7 0x743A +0xE8F8 0x50FB +0xE8F9 0x5288 +0xE8FA 0x58C1 +0xE8FB 0x64D8 +0xE8FC 0x6A97 +0xE8FD 0x74A7 +0xE8FE 0x7656 +0xE931 0x78A7 +0xE932 0x8617 +0xE933 0x95E2 +0xE934 0x9739 +0xE935 0xF965 +0xE936 0x535E +0xE937 0x5F01 +0xE938 0x8B8A +0xE939 0x8FA8 +0xE93A 0x8FAF +0xE93B 0x908A +0xE93C 0x5225 +0xE93D 0x77A5 +0xE93E 0x9C49 +0xE93F 0x9F08 +0xE940 0x4E19 +0xE941 0x5002 +0xE942 0x5175 +0xE943 0x5C5B +0xE944 0x5E77 +0xE945 0x661E +0xE946 0x663A +0xE947 0x67C4 +0xE948 0x68C5 +0xE949 0x70B3 +0xE94A 0x7501 +0xE94B 0x75C5 +0xE94C 0x79C9 +0xE94D 0x7ADD +0xE94E 0x8F27 +0xE94F 0x9920 +0xE950 0x9A08 +0xE951 0x4FDD +0xE952 0x5821 +0xE953 0x5831 +0xE954 0x5BF6 +0xE955 0x666E +0xE956 0x6B65 +0xE957 0x6D11 +0xE958 0x6E7A +0xE959 0x6F7D +0xE95A 0x73E4 +0xE95B 0x752B +0xE95C 0x83E9 +0xE95D 0x88DC +0xE95E 0x8913 +0xE95F 0x8B5C +0xE960 0x8F14 +0xE961 0x4F0F +0xE962 0x50D5 +0xE963 0x5310 +0xE964 0x535C +0xE965 0x5B93 +0xE966 0x5FA9 +0xE967 0x670D +0xE968 0x798F +0xE969 0x8179 +0xE96A 0x832F +0xE96B 0x8514 +0xE96C 0x8907 +0xE96D 0x8986 +0xE96E 0x8F39 +0xE96F 0x8F3B +0xE970 0x99A5 +0xE971 0x9C12 +0xE972 0x672C +0xE973 0x4E76 +0xE974 0x4FF8 +0xE975 0x5949 +0xE976 0x5C01 +0xE977 0x5CEF +0xE978 0x5CF0 +0xE979 0x6367 +0xE97A 0x68D2 +0xE97B 0x70FD +0xE97C 0x71A2 +0xE97D 0x742B +0xE97E 0x7E2B +0xE991 0x84EC +0xE992 0x8702 +0xE993 0x9022 +0xE994 0x92D2 +0xE995 0x9CF3 +0xE996 0x4E0D +0xE997 0x4ED8 +0xE998 0x4FEF +0xE999 0x5085 +0xE99A 0x5256 +0xE99B 0x526F +0xE99C 0x5426 +0xE99D 0x5490 +0xE99E 0x57E0 +0xE99F 0x592B +0xE9A0 0x5A66 +0xE9A1 0x5B5A +0xE9A2 0x5B75 +0xE9A3 0x5BCC +0xE9A4 0x5E9C +0xE9A5 0xF966 +0xE9A6 0x6276 +0xE9A7 0x6577 +0xE9A8 0x65A7 +0xE9A9 0x6D6E +0xE9AA 0x6EA5 +0xE9AB 0x7236 +0xE9AC 0x7B26 +0xE9AD 0x7C3F +0xE9AE 0x7F36 +0xE9AF 0x8150 +0xE9B0 0x8151 +0xE9B1 0x819A +0xE9B2 0x8240 +0xE9B3 0x8299 +0xE9B4 0x83A9 +0xE9B5 0x8A03 +0xE9B6 0x8CA0 +0xE9B7 0x8CE6 +0xE9B8 0x8CFB +0xE9B9 0x8D74 +0xE9BA 0x8DBA +0xE9BB 0x90E8 +0xE9BC 0x91DC +0xE9BD 0x961C +0xE9BE 0x9644 +0xE9BF 0x99D9 +0xE9C0 0x9CE7 +0xE9C1 0x5317 +0xE9C2 0x5206 +0xE9C3 0x5429 +0xE9C4 0x5674 +0xE9C5 0x58B3 +0xE9C6 0x5954 +0xE9C7 0x596E +0xE9C8 0x5FFF +0xE9C9 0x61A4 +0xE9CA 0x626E +0xE9CB 0x6610 +0xE9CC 0x6C7E +0xE9CD 0x711A +0xE9CE 0x76C6 +0xE9CF 0x7C89 +0xE9D0 0x7CDE +0xE9D1 0x7D1B +0xE9D2 0x82AC +0xE9D3 0x8CC1 +0xE9D4 0x96F0 +0xE9D5 0xF967 +0xE9D6 0x4F5B +0xE9D7 0x5F17 +0xE9D8 0x5F7F +0xE9D9 0x62C2 +0xE9DA 0x5D29 +0xE9DB 0x670B +0xE9DC 0x68DA +0xE9DD 0x787C +0xE9DE 0x7E43 +0xE9DF 0x9D6C +0xE9E0 0x4E15 +0xE9E1 0x5099 +0xE9E2 0x5315 +0xE9E3 0x532A +0xE9E4 0x5351 +0xE9E5 0x5983 +0xE9E6 0x5A62 +0xE9E7 0x5E87 +0xE9E8 0x60B2 +0xE9E9 0x618A +0xE9EA 0x6249 +0xE9EB 0x6279 +0xE9EC 0x6590 +0xE9ED 0x6787 +0xE9EE 0x69A7 +0xE9EF 0x6BD4 +0xE9F0 0x6BD6 +0xE9F1 0x6BD7 +0xE9F2 0x6BD8 +0xE9F3 0x6CB8 +0xE9F4 0xF968 +0xE9F5 0x7435 +0xE9F6 0x75FA +0xE9F7 0x7812 +0xE9F8 0x7891 +0xE9F9 0x79D5 +0xE9FA 0x79D8 +0xE9FB 0x7C83 +0xE9FC 0x7DCB +0xE9FD 0x7FE1 +0xE9FE 0x80A5 +0xEA31 0x813E +0xEA32 0x81C2 +0xEA33 0x83F2 +0xEA34 0x871A +0xEA35 0x88E8 +0xEA36 0x8AB9 +0xEA37 0x8B6C +0xEA38 0x8CBB +0xEA39 0x9119 +0xEA3A 0x975E +0xEA3B 0x98DB +0xEA3C 0x9F3B +0xEA3D 0x56AC +0xEA3E 0x5B2A +0xEA3F 0x5F6C +0xEA40 0x658C +0xEA41 0x6AB3 +0xEA42 0x6BAF +0xEA43 0x6D5C +0xEA44 0x6FF1 +0xEA45 0x7015 +0xEA46 0x725D +0xEA47 0x73AD +0xEA48 0x8CA7 +0xEA49 0x8CD3 +0xEA4A 0x983B +0xEA4B 0x6191 +0xEA4C 0x6C37 +0xEA4D 0x8058 +0xEA4E 0x9A01 +0xEA4F 0x4E4D +0xEA50 0x4E8B +0xEA51 0x4E9B +0xEA52 0x4ED5 +0xEA53 0x4F3A +0xEA54 0x4F3C +0xEA55 0x4F7F +0xEA56 0x4FDF +0xEA57 0x50FF +0xEA58 0x53F2 +0xEA59 0x53F8 +0xEA5A 0x5506 +0xEA5B 0x55E3 +0xEA5C 0x56DB +0xEA5D 0x58EB +0xEA5E 0x5962 +0xEA5F 0x5A11 +0xEA60 0x5BEB +0xEA61 0x5BFA +0xEA62 0x5C04 +0xEA63 0x5DF3 +0xEA64 0x5E2B +0xEA65 0x5F99 +0xEA66 0x601D +0xEA67 0x6368 +0xEA68 0x659C +0xEA69 0x65AF +0xEA6A 0x67F6 +0xEA6B 0x67FB +0xEA6C 0x68AD +0xEA6D 0x6B7B +0xEA6E 0x6C99 +0xEA6F 0x6CD7 +0xEA70 0x6E23 +0xEA71 0x7009 +0xEA72 0x7345 +0xEA73 0x7802 +0xEA74 0x793E +0xEA75 0x7940 +0xEA76 0x7960 +0xEA77 0x79C1 +0xEA78 0x7BE9 +0xEA79 0x7D17 +0xEA7A 0x7D72 +0xEA7B 0x8086 +0xEA7C 0x820D +0xEA7D 0x838E +0xEA7E 0x84D1 +0xEA91 0x86C7 +0xEA92 0x88DF +0xEA93 0x8A50 +0xEA94 0x8A5E +0xEA95 0x8B1D +0xEA96 0x8CDC +0xEA97 0x8D66 +0xEA98 0x8FAD +0xEA99 0x90AA +0xEA9A 0x98FC +0xEA9B 0x99DF +0xEA9C 0x9E9D +0xEA9D 0x524A +0xEA9E 0xF969 +0xEA9F 0x6714 +0xEAA0 0xF96A +0xEAA1 0x5098 +0xEAA2 0x522A +0xEAA3 0x5C71 +0xEAA4 0x6563 +0xEAA5 0x6C55 +0xEAA6 0x73CA +0xEAA7 0x7523 +0xEAA8 0x759D +0xEAA9 0x7B97 +0xEAAA 0x849C +0xEAAB 0x9178 +0xEAAC 0x9730 +0xEAAD 0x4E77 +0xEAAE 0x6492 +0xEAAF 0x6BBA +0xEAB0 0x715E +0xEAB1 0x85A9 +0xEAB2 0x4E09 +0xEAB3 0xF96B +0xEAB4 0x6749 +0xEAB5 0x68EE +0xEAB6 0x6E17 +0xEAB7 0x829F +0xEAB8 0x8518 +0xEAB9 0x886B +0xEABA 0x63F7 +0xEABB 0x6F81 +0xEABC 0x9212 +0xEABD 0x98AF +0xEABE 0x4E0A +0xEABF 0x50B7 +0xEAC0 0x50CF +0xEAC1 0x511F +0xEAC2 0x5546 +0xEAC3 0x55AA +0xEAC4 0x5617 +0xEAC5 0x5B40 +0xEAC6 0x5C19 +0xEAC7 0x5CE0 +0xEAC8 0x5E38 +0xEAC9 0x5E8A +0xEACA 0x5EA0 +0xEACB 0x5EC2 +0xEACC 0x60F3 +0xEACD 0x6851 +0xEACE 0x6A61 +0xEACF 0x6E58 +0xEAD0 0x723D +0xEAD1 0x7240 +0xEAD2 0x72C0 +0xEAD3 0x76F8 +0xEAD4 0x7965 +0xEAD5 0x7BB1 +0xEAD6 0x7FD4 +0xEAD7 0x88F3 +0xEAD8 0x89F4 +0xEAD9 0x8A73 +0xEADA 0x8C61 +0xEADB 0x8CDE +0xEADC 0x971C +0xEADD 0x585E +0xEADE 0x74BD +0xEADF 0x8CFD +0xEAE0 0x55C7 +0xEAE1 0xF96C +0xEAE2 0x7A61 +0xEAE3 0x7D22 +0xEAE4 0x8272 +0xEAE5 0x7272 +0xEAE6 0x751F +0xEAE7 0x7525 +0xEAE8 0xF96D +0xEAE9 0x7B19 +0xEAEA 0x5885 +0xEAEB 0x58FB +0xEAEC 0x5DBC +0xEAED 0x5E8F +0xEAEE 0x5EB6 +0xEAEF 0x5F90 +0xEAF0 0x6055 +0xEAF1 0x6292 +0xEAF2 0x637F +0xEAF3 0x654D +0xEAF4 0x6691 +0xEAF5 0x66D9 +0xEAF6 0x66F8 +0xEAF7 0x6816 +0xEAF8 0x68F2 +0xEAF9 0x7280 +0xEAFA 0x745E +0xEAFB 0x7B6E +0xEAFC 0x7D6E +0xEAFD 0x7DD6 +0xEAFE 0x7F72 +0xEB31 0x80E5 +0xEB32 0x8212 +0xEB33 0x85AF +0xEB34 0x897F +0xEB35 0x8A93 +0xEB36 0x901D +0xEB37 0x92E4 +0xEB38 0x9ECD +0xEB39 0x9F20 +0xEB3A 0x5915 +0xEB3B 0x596D +0xEB3C 0x5E2D +0xEB3D 0x60DC +0xEB3E 0x6614 +0xEB3F 0x6673 +0xEB40 0x6790 +0xEB41 0x6C50 +0xEB42 0x6DC5 +0xEB43 0x6F5F +0xEB44 0x77F3 +0xEB45 0x78A9 +0xEB46 0x84C6 +0xEB47 0x91CB +0xEB48 0x932B +0xEB49 0x4ED9 +0xEB4A 0x50CA +0xEB4B 0x5148 +0xEB4C 0x5584 +0xEB4D 0x5B0B +0xEB4E 0x5BA3 +0xEB4F 0x6247 +0xEB50 0x657E +0xEB51 0x65CB +0xEB52 0x6E32 +0xEB53 0x717D +0xEB54 0x7401 +0xEB55 0x7444 +0xEB56 0x7487 +0xEB57 0x74BF +0xEB58 0x766C +0xEB59 0x79AA +0xEB5A 0x7DDA +0xEB5B 0x7E55 +0xEB5C 0x7FA8 +0xEB5D 0x817A +0xEB5E 0x81B3 +0xEB5F 0x8239 +0xEB60 0x861A +0xEB61 0x87EC +0xEB62 0x8A75 +0xEB63 0x8DE3 +0xEB64 0x9078 +0xEB65 0x9291 +0xEB66 0x9425 +0xEB67 0x994D +0xEB68 0x9BAE +0xEB69 0x5368 +0xEB6A 0x5C51 +0xEB6B 0x6954 +0xEB6C 0x6CC4 +0xEB6D 0x6D29 +0xEB6E 0x6E2B +0xEB6F 0x820C +0xEB70 0x859B +0xEB71 0x893B +0xEB72 0x8A2D +0xEB73 0x8AAA +0xEB74 0x96EA +0xEB75 0x9F67 +0xEB76 0x5261 +0xEB77 0x66B9 +0xEB78 0x6BB2 +0xEB79 0x7E96 +0xEB7A 0x87FE +0xEB7B 0x8D0D +0xEB7C 0x9583 +0xEB7D 0x965D +0xEB7E 0x651D +0xEB91 0x6D89 +0xEB92 0x71EE +0xEB93 0xF96E +0xEB94 0x57CE +0xEB95 0x59D3 +0xEB96 0x5BAC +0xEB97 0x6027 +0xEB98 0x60FA +0xEB99 0x6210 +0xEB9A 0x661F +0xEB9B 0x665F +0xEB9C 0x7329 +0xEB9D 0x73F9 +0xEB9E 0x76DB +0xEB9F 0x7701 +0xEBA0 0x7B6C +0xEBA1 0x8056 +0xEBA2 0x8072 +0xEBA3 0x8165 +0xEBA4 0x8AA0 +0xEBA5 0x9192 +0xEBA6 0x4E16 +0xEBA7 0x52E2 +0xEBA8 0x6B72 +0xEBA9 0x6D17 +0xEBAA 0x7A05 +0xEBAB 0x7B39 +0xEBAC 0x7D30 +0xEBAD 0xF96F +0xEBAE 0x8CB0 +0xEBAF 0x53EC +0xEBB0 0x562F +0xEBB1 0x5851 +0xEBB2 0x5BB5 +0xEBB3 0x5C0F +0xEBB4 0x5C11 +0xEBB5 0x5DE2 +0xEBB6 0x6240 +0xEBB7 0x6383 +0xEBB8 0x6414 +0xEBB9 0x662D +0xEBBA 0x68B3 +0xEBBB 0x6CBC +0xEBBC 0x6D88 +0xEBBD 0x6EAF +0xEBBE 0x701F +0xEBBF 0x70A4 +0xEBC0 0x71D2 +0xEBC1 0x7526 +0xEBC2 0x758F +0xEBC3 0x758E +0xEBC4 0x7619 +0xEBC5 0x7B11 +0xEBC6 0x7BE0 +0xEBC7 0x7C2B +0xEBC8 0x7D20 +0xEBC9 0x7D39 +0xEBCA 0x852C +0xEBCB 0x856D +0xEBCC 0x8607 +0xEBCD 0x8A34 +0xEBCE 0x900D +0xEBCF 0x9061 +0xEBD0 0x90B5 +0xEBD1 0x92B7 +0xEBD2 0x97F6 +0xEBD3 0x9A37 +0xEBD4 0x4FD7 +0xEBD5 0x5C6C +0xEBD6 0x675F +0xEBD7 0x6D91 +0xEBD8 0x7C9F +0xEBD9 0x7E8C +0xEBDA 0x8B16 +0xEBDB 0x8D16 +0xEBDC 0x901F +0xEBDD 0x5B6B +0xEBDE 0x5DFD +0xEBDF 0x640D +0xEBE0 0x84C0 +0xEBE1 0x905C +0xEBE2 0x98E1 +0xEBE3 0x7387 +0xEBE4 0x5B8B +0xEBE5 0x609A +0xEBE6 0x677E +0xEBE7 0x6DDE +0xEBE8 0x8A1F +0xEBE9 0x8AA6 +0xEBEA 0x9001 +0xEBEB 0x980C +0xEBEC 0x5237 +0xEBED 0xF970 +0xEBEE 0x7051 +0xEBEF 0x788E +0xEBF0 0x9396 +0xEBF1 0x8870 +0xEBF2 0x91D7 +0xEBF3 0x4FEE +0xEBF4 0x53D7 +0xEBF5 0x55FD +0xEBF6 0x56DA +0xEBF7 0x5782 +0xEBF8 0x58FD +0xEBF9 0x5AC2 +0xEBFA 0x5B88 +0xEBFB 0x5CAB +0xEBFC 0x5CC0 +0xEBFD 0x5E25 +0xEBFE 0x6101 +0xEC31 0x620D +0xEC32 0x624B +0xEC33 0x6388 +0xEC34 0x641C +0xEC35 0x6536 +0xEC36 0x6578 +0xEC37 0x6A39 +0xEC38 0x6B8A +0xEC39 0x6C34 +0xEC3A 0x6D19 +0xEC3B 0x6F31 +0xEC3C 0x71E7 +0xEC3D 0x72E9 +0xEC3E 0x7378 +0xEC3F 0x7407 +0xEC40 0x74B2 +0xEC41 0x7626 +0xEC42 0x7761 +0xEC43 0x79C0 +0xEC44 0x7A57 +0xEC45 0x7AEA +0xEC46 0x7CB9 +0xEC47 0x7D8F +0xEC48 0x7DAC +0xEC49 0x7E61 +0xEC4A 0x7F9E +0xEC4B 0x8129 +0xEC4C 0x8331 +0xEC4D 0x8490 +0xEC4E 0x84DA +0xEC4F 0x85EA +0xEC50 0x8896 +0xEC51 0x8AB0 +0xEC52 0x8B90 +0xEC53 0x8F38 +0xEC54 0x9042 +0xEC55 0x9083 +0xEC56 0x916C +0xEC57 0x9296 +0xEC58 0x92B9 +0xEC59 0x968B +0xEC5A 0x96A7 +0xEC5B 0x96A8 +0xEC5C 0x96D6 +0xEC5D 0x9700 +0xEC5E 0x9808 +0xEC5F 0x9996 +0xEC60 0x9AD3 +0xEC61 0x9B1A +0xEC62 0x53D4 +0xEC63 0x587E +0xEC64 0x5919 +0xEC65 0x5B70 +0xEC66 0x5BBF +0xEC67 0x6DD1 +0xEC68 0x6F5A +0xEC69 0x719F +0xEC6A 0x7421 +0xEC6B 0x74B9 +0xEC6C 0x8085 +0xEC6D 0x83FD +0xEC6E 0x5DE1 +0xEC6F 0x5F87 +0xEC70 0x5FAA +0xEC71 0x6042 +0xEC72 0x65EC +0xEC73 0x6812 +0xEC74 0x696F +0xEC75 0x6A53 +0xEC76 0x6B89 +0xEC77 0x6D35 +0xEC78 0x6DF3 +0xEC79 0x73E3 +0xEC7A 0x76FE +0xEC7B 0x77AC +0xEC7C 0x7B4D +0xEC7D 0x7D14 +0xEC7E 0x8123 +0xEC91 0x821C +0xEC92 0x8340 +0xEC93 0x84F4 +0xEC94 0x8563 +0xEC95 0x8A62 +0xEC96 0x8AC4 +0xEC97 0x9187 +0xEC98 0x931E +0xEC99 0x9806 +0xEC9A 0x99B4 +0xEC9B 0x620C +0xEC9C 0x8853 +0xEC9D 0x8FF0 +0xEC9E 0x9265 +0xEC9F 0x5D07 +0xECA0 0x5D27 +0xECA1 0x5D69 +0xECA2 0x745F +0xECA3 0x819D +0xECA4 0x8768 +0xECA5 0x6FD5 +0xECA6 0x62FE +0xECA7 0x7FD2 +0xECA8 0x8936 +0xECA9 0x8972 +0xECAA 0x4E1E +0xECAB 0x4E58 +0xECAC 0x50E7 +0xECAD 0x52DD +0xECAE 0x5347 +0xECAF 0x627F +0xECB0 0x6607 +0xECB1 0x7E69 +0xECB2 0x8805 +0xECB3 0x965E +0xECB4 0x4F8D +0xECB5 0x5319 +0xECB6 0x5636 +0xECB7 0x59CB +0xECB8 0x5AA4 +0xECB9 0x5C38 +0xECBA 0x5C4E +0xECBB 0x5C4D +0xECBC 0x5E02 +0xECBD 0x5F11 +0xECBE 0x6043 +0xECBF 0x65BD +0xECC0 0x662F +0xECC1 0x6642 +0xECC2 0x67BE +0xECC3 0x67F4 +0xECC4 0x731C +0xECC5 0x77E2 +0xECC6 0x793A +0xECC7 0x7FC5 +0xECC8 0x8494 +0xECC9 0x84CD +0xECCA 0x8996 +0xECCB 0x8A66 +0xECCC 0x8A69 +0xECCD 0x8AE1 +0xECCE 0x8C55 +0xECCF 0x8C7A +0xECD0 0x57F4 +0xECD1 0x5BD4 +0xECD2 0x5F0F +0xECD3 0x606F +0xECD4 0x62ED +0xECD5 0x690D +0xECD6 0x6B96 +0xECD7 0x6E5C +0xECD8 0x7184 +0xECD9 0x7BD2 +0xECDA 0x8755 +0xECDB 0x8B58 +0xECDC 0x8EFE +0xECDD 0x98DF +0xECDE 0x98FE +0xECDF 0x4F38 +0xECE0 0x4F81 +0xECE1 0x4FE1 +0xECE2 0x547B +0xECE3 0x5A20 +0xECE4 0x5BB8 +0xECE5 0x613C +0xECE6 0x65B0 +0xECE7 0x6668 +0xECE8 0x71FC +0xECE9 0x7533 +0xECEA 0x795E +0xECEB 0x7D33 +0xECEC 0x814E +0xECED 0x81E3 +0xECEE 0x8398 +0xECEF 0x85AA +0xECF0 0x85CE +0xECF1 0x8703 +0xECF2 0x8A0A +0xECF3 0x8EAB +0xECF4 0x8F9B +0xECF5 0xF971 +0xECF6 0x8FC5 +0xECF7 0x5931 +0xECF8 0x5BA4 +0xECF9 0x5BE6 +0xECFA 0x6089 +0xECFB 0x5BE9 +0xECFC 0x5C0B +0xECFD 0x5FC3 +0xECFE 0x6C81 +0xED31 0xF972 +0xED32 0x6DF1 +0xED33 0x700B +0xED34 0x751A +0xED35 0x82AF +0xED36 0x8AF6 +0xED37 0x4EC0 +0xED38 0x5341 +0xED39 0xF973 +0xED3A 0x96D9 +0xED3B 0x6C0F +0xED3C 0x4E9E +0xED3D 0x4FC4 +0xED3E 0x5152 +0xED3F 0x555E +0xED40 0x5A25 +0xED41 0x5CE8 +0xED42 0x6211 +0xED43 0x7259 +0xED44 0x82BD +0xED45 0x83AA +0xED46 0x86FE +0xED47 0x8859 +0xED48 0x8A1D +0xED49 0x963F +0xED4A 0x96C5 +0xED4B 0x9913 +0xED4C 0x9D09 +0xED4D 0x9D5D +0xED4E 0x580A +0xED4F 0x5CB3 +0xED50 0x5DBD +0xED51 0x5E44 +0xED52 0x60E1 +0xED53 0x6115 +0xED54 0x63E1 +0xED55 0x6A02 +0xED56 0x6E25 +0xED57 0x9102 +0xED58 0x9354 +0xED59 0x984E +0xED5A 0x9C10 +0xED5B 0x9F77 +0xED5C 0x5B89 +0xED5D 0x5CB8 +0xED5E 0x6309 +0xED5F 0x664F +0xED60 0x6848 +0xED61 0x773C +0xED62 0x96C1 +0xED63 0x978D +0xED64 0x9854 +0xED65 0x9B9F +0xED66 0x65A1 +0xED67 0x8B01 +0xED68 0x8ECB +0xED69 0x95BC +0xED6A 0x5535 +0xED6B 0x5CA9 +0xED6C 0x5DD6 +0xED6D 0x5EB5 +0xED6E 0x6697 +0xED6F 0x764C +0xED70 0x83F4 +0xED71 0x95C7 +0xED72 0x58D3 +0xED73 0x62BC +0xED74 0x72CE +0xED75 0x9D28 +0xED76 0x4EF0 +0xED77 0x592E +0xED78 0x600F +0xED79 0x663B +0xED7A 0x6B83 +0xED7B 0x79E7 +0xED7C 0x9D26 +0xED7D 0x5393 +0xED7E 0x54C0 +0xED91 0x57C3 +0xED92 0x5D16 +0xED93 0x611B +0xED94 0x66D6 +0xED95 0x6DAF +0xED96 0x788D +0xED97 0x827E +0xED98 0x9698 +0xED99 0x9744 +0xED9A 0x5384 +0xED9B 0x627C +0xED9C 0x6396 +0xED9D 0x6DB2 +0xED9E 0x7E0A +0xED9F 0x814B +0xEDA0 0x984D +0xEDA1 0x6AFB +0xEDA2 0x7F4C +0xEDA3 0x9DAF +0xEDA4 0x9E1A +0xEDA5 0x4E5F +0xEDA6 0x503B +0xEDA7 0x51B6 +0xEDA8 0x591C +0xEDA9 0x60F9 +0xEDAA 0x63F6 +0xEDAB 0x6930 +0xEDAC 0x723A +0xEDAD 0x8036 +0xEDAE 0xF974 +0xEDAF 0x91CE +0xEDB0 0x5F31 +0xEDB1 0xF975 +0xEDB2 0xF976 +0xEDB3 0x7D04 +0xEDB4 0x82E5 +0xEDB5 0x846F +0xEDB6 0x84BB +0xEDB7 0x85E5 +0xEDB8 0x8E8D +0xEDB9 0xF977 +0xEDBA 0x4F6F +0xEDBB 0xF978 +0xEDBC 0xF979 +0xEDBD 0x58E4 +0xEDBE 0x5B43 +0xEDBF 0x6059 +0xEDC0 0x63DA +0xEDC1 0x6518 +0xEDC2 0x656D +0xEDC3 0x6698 +0xEDC4 0xF97A +0xEDC5 0x694A +0xEDC6 0x6A23 +0xEDC7 0x6D0B +0xEDC8 0x7001 +0xEDC9 0x716C +0xEDCA 0x75D2 +0xEDCB 0x760D +0xEDCC 0x79B3 +0xEDCD 0x7A70 +0xEDCE 0xF97B +0xEDCF 0x7F8A +0xEDD0 0xF97C +0xEDD1 0x8944 +0xEDD2 0xF97D +0xEDD3 0x8B93 +0xEDD4 0x91C0 +0xEDD5 0x967D +0xEDD6 0xF97E +0xEDD7 0x990A +0xEDD8 0x5704 +0xEDD9 0x5FA1 +0xEDDA 0x65BC +0xEDDB 0x6F01 +0xEDDC 0x7600 +0xEDDD 0x79A6 +0xEDDE 0x8A9E +0xEDDF 0x99AD +0xEDE0 0x9B5A +0xEDE1 0x9F6C +0xEDE2 0x5104 +0xEDE3 0x61B6 +0xEDE4 0x6291 +0xEDE5 0x6A8D +0xEDE6 0x81C6 +0xEDE7 0x5043 +0xEDE8 0x5830 +0xEDE9 0x5F66 +0xEDEA 0x7109 +0xEDEB 0x8A00 +0xEDEC 0x8AFA +0xEDED 0x5B7C +0xEDEE 0x8616 +0xEDEF 0x4FFA +0xEDF0 0x513C +0xEDF1 0x56B4 +0xEDF2 0x5944 +0xEDF3 0x63A9 +0xEDF4 0x6DF9 +0xEDF5 0x5DAA +0xEDF6 0x696D +0xEDF7 0x5186 +0xEDF8 0x4E88 +0xEDF9 0x4F59 +0xEDFA 0xF97F +0xEDFB 0xF980 +0xEDFC 0xF981 +0xEDFD 0x5982 +0xEDFE 0xF982 +0xEE31 0xF983 +0xEE32 0x6B5F +0xEE33 0x6C5D +0xEE34 0xF984 +0xEE35 0x74B5 +0xEE36 0x7916 +0xEE37 0xF985 +0xEE38 0x8207 +0xEE39 0x8245 +0xEE3A 0x8339 +0xEE3B 0x8F3F +0xEE3C 0x8F5D +0xEE3D 0xF986 +0xEE3E 0x9918 +0xEE3F 0xF987 +0xEE40 0xF988 +0xEE41 0xF989 +0xEE42 0x4EA6 +0xEE43 0xF98A +0xEE44 0x57DF +0xEE45 0x5F79 +0xEE46 0x6613 +0xEE47 0xF98B +0xEE48 0xF98C +0xEE49 0x75AB +0xEE4A 0x7E79 +0xEE4B 0x8B6F +0xEE4C 0xF98D +0xEE4D 0x9006 +0xEE4E 0x9A5B +0xEE4F 0x56A5 +0xEE50 0x5827 +0xEE51 0x59F8 +0xEE52 0x5A1F +0xEE53 0x5BB4 +0xEE54 0xF98E +0xEE55 0x5EF6 +0xEE56 0xF98F +0xEE57 0xF990 +0xEE58 0x6350 +0xEE59 0x633B +0xEE5A 0xF991 +0xEE5B 0x693D +0xEE5C 0x6C87 +0xEE5D 0x6CBF +0xEE5E 0x6D8E +0xEE5F 0x6D93 +0xEE60 0x6DF5 +0xEE61 0x6F14 +0xEE62 0xF992 +0xEE63 0x70DF +0xEE64 0x7136 +0xEE65 0x7159 +0xEE66 0xF993 +0xEE67 0x71C3 +0xEE68 0x71D5 +0xEE69 0xF994 +0xEE6A 0x784F +0xEE6B 0x786F +0xEE6C 0xF995 +0xEE6D 0x7B75 +0xEE6E 0x7DE3 +0xEE6F 0xF996 +0xEE70 0x7E2F +0xEE71 0xF997 +0xEE72 0x884D +0xEE73 0x8EDF +0xEE74 0xF998 +0xEE75 0xF999 +0xEE76 0xF99A +0xEE77 0x925B +0xEE78 0xF99B +0xEE79 0x9CF6 +0xEE7A 0xF99C +0xEE7B 0xF99D +0xEE7C 0xF99E +0xEE7D 0x6085 +0xEE7E 0x6D85 +0xEE91 0xF99F +0xEE92 0x71B1 +0xEE93 0xF9A0 +0xEE94 0xF9A1 +0xEE95 0x95B1 +0xEE96 0x53AD +0xEE97 0xF9A2 +0xEE98 0xF9A3 +0xEE99 0xF9A4 +0xEE9A 0x67D3 +0xEE9B 0xF9A5 +0xEE9C 0x708E +0xEE9D 0x7130 +0xEE9E 0x7430 +0xEE9F 0x8276 +0xEEA0 0x82D2 +0xEEA1 0xF9A6 +0xEEA2 0x95BB +0xEEA3 0x9AE5 +0xEEA4 0x9E7D +0xEEA5 0x66C4 +0xEEA6 0xF9A7 +0xEEA7 0x71C1 +0xEEA8 0x8449 +0xEEA9 0xF9A8 +0xEEAA 0xF9A9 +0xEEAB 0x584B +0xEEAC 0xF9AA +0xEEAD 0xF9AB +0xEEAE 0x5DB8 +0xEEAF 0x5F71 +0xEEB0 0xF9AC +0xEEB1 0x6620 +0xEEB2 0x668E +0xEEB3 0x6979 +0xEEB4 0x69AE +0xEEB5 0x6C38 +0xEEB6 0x6CF3 +0xEEB7 0x6E36 +0xEEB8 0x6F41 +0xEEB9 0x6FDA +0xEEBA 0x701B +0xEEBB 0x702F +0xEEBC 0x7150 +0xEEBD 0x71DF +0xEEBE 0x7370 +0xEEBF 0xF9AD +0xEEC0 0x745B +0xEEC1 0xF9AE +0xEEC2 0x74D4 +0xEEC3 0x76C8 +0xEEC4 0x7A4E +0xEEC5 0x7E93 +0xEEC6 0xF9AF +0xEEC7 0xF9B0 +0xEEC8 0x82F1 +0xEEC9 0x8A60 +0xEECA 0x8FCE +0xEECB 0xF9B1 +0xEECC 0x9348 +0xEECD 0xF9B2 +0xEECE 0x9719 +0xEECF 0xF9B3 +0xEED0 0xF9B4 +0xEED1 0x4E42 +0xEED2 0x502A +0xEED3 0xF9B5 +0xEED4 0x5208 +0xEED5 0x53E1 +0xEED6 0x66F3 +0xEED7 0x6C6D +0xEED8 0x6FCA +0xEED9 0x730A +0xEEDA 0x777F +0xEEDB 0x7A62 +0xEEDC 0x82AE +0xEEDD 0x85DD +0xEEDE 0x8602 +0xEEDF 0xF9B6 +0xEEE0 0x88D4 +0xEEE1 0x8A63 +0xEEE2 0x8B7D +0xEEE3 0x8C6B +0xEEE4 0xF9B7 +0xEEE5 0x92B3 +0xEEE6 0xF9B8 +0xEEE7 0x9713 +0xEEE8 0x9810 +0xEEE9 0x4E94 +0xEEEA 0x4F0D +0xEEEB 0x4FC9 +0xEEEC 0x50B2 +0xEEED 0x5348 +0xEEEE 0x543E +0xEEEF 0x5433 +0xEEF0 0x55DA +0xEEF1 0x5862 +0xEEF2 0x58BA +0xEEF3 0x5967 +0xEEF4 0x5A1B +0xEEF5 0x5BE4 +0xEEF6 0x609F +0xEEF7 0xF9B9 +0xEEF8 0x61CA +0xEEF9 0x6556 +0xEEFA 0x65FF +0xEEFB 0x6664 +0xEEFC 0x68A7 +0xEEFD 0x6C5A +0xEEFE 0x6FB3 +0xEF31 0x70CF +0xEF32 0x71AC +0xEF33 0x7352 +0xEF34 0x7B7D +0xEF35 0x8708 +0xEF36 0x8AA4 +0xEF37 0x9C32 +0xEF38 0x9F07 +0xEF39 0x5C4B +0xEF3A 0x6C83 +0xEF3B 0x7344 +0xEF3C 0x7389 +0xEF3D 0x923A +0xEF3E 0x6EAB +0xEF3F 0x7465 +0xEF40 0x761F +0xEF41 0x7A69 +0xEF42 0x7E15 +0xEF43 0x860A +0xEF44 0x5140 +0xEF45 0x58C5 +0xEF46 0x64C1 +0xEF47 0x74EE +0xEF48 0x7515 +0xEF49 0x7670 +0xEF4A 0x7FC1 +0xEF4B 0x9095 +0xEF4C 0x96CD +0xEF4D 0x9954 +0xEF4E 0x6E26 +0xEF4F 0x74E6 +0xEF50 0x7AA9 +0xEF51 0x7AAA +0xEF52 0x81E5 +0xEF53 0x86D9 +0xEF54 0x8778 +0xEF55 0x8A1B +0xEF56 0x5A49 +0xEF57 0x5B8C +0xEF58 0x5B9B +0xEF59 0x68A1 +0xEF5A 0x6900 +0xEF5B 0x6D63 +0xEF5C 0x73A9 +0xEF5D 0x7413 +0xEF5E 0x742C +0xEF5F 0x7897 +0xEF60 0x7DE9 +0xEF61 0x7FEB +0xEF62 0x8118 +0xEF63 0x8155 +0xEF64 0x839E +0xEF65 0x8C4C +0xEF66 0x962E +0xEF67 0x9811 +0xEF68 0x66F0 +0xEF69 0x5F80 +0xEF6A 0x65FA +0xEF6B 0x6789 +0xEF6C 0x6C6A +0xEF6D 0x738B +0xEF6E 0x502D +0xEF6F 0x5A03 +0xEF70 0x6B6A +0xEF71 0x77EE +0xEF72 0x5916 +0xEF73 0x5D6C +0xEF74 0x5DCD +0xEF75 0x7325 +0xEF76 0x754F +0xEF77 0xF9BA +0xEF78 0xF9BB +0xEF79 0x50E5 +0xEF7A 0x51F9 +0xEF7B 0x582F +0xEF7C 0x592D +0xEF7D 0x5996 +0xEF7E 0x59DA +0xEF91 0x5BE5 +0xEF92 0xF9BC +0xEF93 0xF9BD +0xEF94 0x5DA2 +0xEF95 0x62D7 +0xEF96 0x6416 +0xEF97 0x6493 +0xEF98 0x64FE +0xEF99 0xF9BE +0xEF9A 0x66DC +0xEF9B 0xF9BF +0xEF9C 0x6A48 +0xEF9D 0xF9C0 +0xEF9E 0x71FF +0xEF9F 0x7464 +0xEFA0 0xF9C1 +0xEFA1 0x7A88 +0xEFA2 0x7AAF +0xEFA3 0x7E47 +0xEFA4 0x7E5E +0xEFA5 0x8000 +0xEFA6 0x8170 +0xEFA7 0xF9C2 +0xEFA8 0x87EF +0xEFA9 0x8981 +0xEFAA 0x8B20 +0xEFAB 0x9059 +0xEFAC 0xF9C3 +0xEFAD 0x9080 +0xEFAE 0x9952 +0xEFAF 0x617E +0xEFB0 0x6B32 +0xEFB1 0x6D74 +0xEFB2 0x7E1F +0xEFB3 0x8925 +0xEFB4 0x8FB1 +0xEFB5 0x4FD1 +0xEFB6 0x50AD +0xEFB7 0x5197 +0xEFB8 0x52C7 +0xEFB9 0x57C7 +0xEFBA 0x5889 +0xEFBB 0x5BB9 +0xEFBC 0x5EB8 +0xEFBD 0x6142 +0xEFBE 0x6995 +0xEFBF 0x6D8C +0xEFC0 0x6E67 +0xEFC1 0x6EB6 +0xEFC2 0x7194 +0xEFC3 0x7462 +0xEFC4 0x7528 +0xEFC5 0x752C +0xEFC6 0x8073 +0xEFC7 0x8338 +0xEFC8 0x84C9 +0xEFC9 0x8E0A +0xEFCA 0x9394 +0xEFCB 0x93DE +0xEFCC 0xF9C4 +0xEFCD 0x4E8E +0xEFCE 0x4F51 +0xEFCF 0x5076 +0xEFD0 0x512A +0xEFD1 0x53C8 +0xEFD2 0x53CB +0xEFD3 0x53F3 +0xEFD4 0x5B87 +0xEFD5 0x5BD3 +0xEFD6 0x5C24 +0xEFD7 0x611A +0xEFD8 0x6182 +0xEFD9 0x65F4 +0xEFDA 0x725B +0xEFDB 0x7397 +0xEFDC 0x7440 +0xEFDD 0x76C2 +0xEFDE 0x7950 +0xEFDF 0x7991 +0xEFE0 0x79B9 +0xEFE1 0x7D06 +0xEFE2 0x7FBD +0xEFE3 0x828B +0xEFE4 0x85D5 +0xEFE5 0x865E +0xEFE6 0x8FC2 +0xEFE7 0x9047 +0xEFE8 0x90F5 +0xEFE9 0x91EA +0xEFEA 0x9685 +0xEFEB 0x96E8 +0xEFEC 0x96E9 +0xEFED 0x52D6 +0xEFEE 0x5F67 +0xEFEF 0x65ED +0xEFF0 0x6631 +0xEFF1 0x682F +0xEFF2 0x715C +0xEFF3 0x7A36 +0xEFF4 0x90C1 +0xEFF5 0x980A +0xEFF6 0x4E91 +0xEFF7 0xF9C5 +0xEFF8 0x6A52 +0xEFF9 0x6B9E +0xEFFA 0x6F90 +0xEFFB 0x7189 +0xEFFC 0x8018 +0xEFFD 0x82B8 +0xEFFE 0x8553 +0xF031 0x904B +0xF032 0x9695 +0xF033 0x96F2 +0xF034 0x97FB +0xF035 0x851A +0xF036 0x9B31 +0xF037 0x4E90 +0xF038 0x718A +0xF039 0x96C4 +0xF03A 0x5143 +0xF03B 0x539F +0xF03C 0x54E1 +0xF03D 0x5713 +0xF03E 0x5712 +0xF03F 0x57A3 +0xF040 0x5A9B +0xF041 0x5AC4 +0xF042 0x5BC3 +0xF043 0x6028 +0xF044 0x613F +0xF045 0x63F4 +0xF046 0x6C85 +0xF047 0x6D39 +0xF048 0x6E72 +0xF049 0x6E90 +0xF04A 0x7230 +0xF04B 0x733F +0xF04C 0x7457 +0xF04D 0x82D1 +0xF04E 0x8881 +0xF04F 0x8F45 +0xF050 0x9060 +0xF051 0xF9C6 +0xF052 0x9662 +0xF053 0x9858 +0xF054 0x9D1B +0xF055 0x6708 +0xF056 0x8D8A +0xF057 0x925E +0xF058 0x4F4D +0xF059 0x5049 +0xF05A 0x50DE +0xF05B 0x5371 +0xF05C 0x570D +0xF05D 0x59D4 +0xF05E 0x5A01 +0xF05F 0x5C09 +0xF060 0x6170 +0xF061 0x6690 +0xF062 0x6E2D +0xF063 0x7232 +0xF064 0x744B +0xF065 0x7DEF +0xF066 0x80C3 +0xF067 0x840E +0xF068 0x8466 +0xF069 0x853F +0xF06A 0x875F +0xF06B 0x885B +0xF06C 0x8918 +0xF06D 0x8B02 +0xF06E 0x9055 +0xF06F 0x97CB +0xF070 0x9B4F +0xF071 0x4E73 +0xF072 0x4F91 +0xF073 0x5112 +0xF074 0x516A +0xF075 0xF9C7 +0xF076 0x552F +0xF077 0x55A9 +0xF078 0x5B7A +0xF079 0x5BA5 +0xF07A 0x5E7C +0xF07B 0x5E7D +0xF07C 0x5EBE +0xF07D 0x60A0 +0xF07E 0x60DF +0xF091 0x6108 +0xF092 0x6109 +0xF093 0x63C4 +0xF094 0x6538 +0xF095 0x6709 +0xF096 0xF9C8 +0xF097 0x67D4 +0xF098 0x67DA +0xF099 0xF9C9 +0xF09A 0x6961 +0xF09B 0x6962 +0xF09C 0x6CB9 +0xF09D 0x6D27 +0xF09E 0xF9CA +0xF09F 0x6E38 +0xF0A0 0xF9CB +0xF0A1 0x6FE1 +0xF0A2 0x7336 +0xF0A3 0x7337 +0xF0A4 0xF9CC +0xF0A5 0x745C +0xF0A6 0x7531 +0xF0A7 0xF9CD +0xF0A8 0x7652 +0xF0A9 0xF9CE +0xF0AA 0xF9CF +0xF0AB 0x7DAD +0xF0AC 0x81FE +0xF0AD 0x8438 +0xF0AE 0x88D5 +0xF0AF 0x8A98 +0xF0B0 0x8ADB +0xF0B1 0x8AED +0xF0B2 0x8E30 +0xF0B3 0x8E42 +0xF0B4 0x904A +0xF0B5 0x903E +0xF0B6 0x907A +0xF0B7 0x9149 +0xF0B8 0x91C9 +0xF0B9 0x936E +0xF0BA 0xF9D0 +0xF0BB 0xF9D1 +0xF0BC 0x5809 +0xF0BD 0xF9D2 +0xF0BE 0x6BD3 +0xF0BF 0x8089 +0xF0C0 0x80B2 +0xF0C1 0xF9D3 +0xF0C2 0xF9D4 +0xF0C3 0x5141 +0xF0C4 0x596B +0xF0C5 0x5C39 +0xF0C6 0xF9D5 +0xF0C7 0xF9D6 +0xF0C8 0x6F64 +0xF0C9 0x73A7 +0xF0CA 0x80E4 +0xF0CB 0x8D07 +0xF0CC 0xF9D7 +0xF0CD 0x9217 +0xF0CE 0x958F +0xF0CF 0xF9D8 +0xF0D0 0xF9D9 +0xF0D1 0xF9DA +0xF0D2 0xF9DB +0xF0D3 0x807F +0xF0D4 0x620E +0xF0D5 0x701C +0xF0D6 0x7D68 +0xF0D7 0x878D +0xF0D8 0xF9DC +0xF0D9 0x57A0 +0xF0DA 0x6069 +0xF0DB 0x6147 +0xF0DC 0x6BB7 +0xF0DD 0x8ABE +0xF0DE 0x9280 +0xF0DF 0x96B1 +0xF0E0 0x4E59 +0xF0E1 0x541F +0xF0E2 0x6DEB +0xF0E3 0x852D +0xF0E4 0x9670 +0xF0E5 0x97F3 +0xF0E6 0x98EE +0xF0E7 0x63D6 +0xF0E8 0x6CE3 +0xF0E9 0x9091 +0xF0EA 0x51DD +0xF0EB 0x61C9 +0xF0EC 0x81BA +0xF0ED 0x9DF9 +0xF0EE 0x4F9D +0xF0EF 0x501A +0xF0F0 0x5100 +0xF0F1 0x5B9C +0xF0F2 0x610F +0xF0F3 0x61FF +0xF0F4 0x64EC +0xF0F5 0x6905 +0xF0F6 0x6BC5 +0xF0F7 0x7591 +0xF0F8 0x77E3 +0xF0F9 0x7FA9 +0xF0FA 0x8264 +0xF0FB 0x858F +0xF0FC 0x87FB +0xF0FD 0x8863 +0xF0FE 0x8ABC +0xF131 0x8B70 +0xF132 0x91AB +0xF133 0x4E8C +0xF134 0x4EE5 +0xF135 0x4F0A +0xF136 0xF9DD +0xF137 0xF9DE +0xF138 0x5937 +0xF139 0x59E8 +0xF13A 0xF9DF +0xF13B 0x5DF2 +0xF13C 0x5F1B +0xF13D 0x5F5B +0xF13E 0x6021 +0xF13F 0xF9E0 +0xF140 0xF9E1 +0xF141 0xF9E2 +0xF142 0xF9E3 +0xF143 0x723E +0xF144 0x73E5 +0xF145 0xF9E4 +0xF146 0x7570 +0xF147 0x75CD +0xF148 0xF9E5 +0xF149 0x79FB +0xF14A 0xF9E6 +0xF14B 0x800C +0xF14C 0x8033 +0xF14D 0x8084 +0xF14E 0x82E1 +0xF14F 0x8351 +0xF150 0xF9E7 +0xF151 0xF9E8 +0xF152 0x8CBD +0xF153 0x8CB3 +0xF154 0x9087 +0xF155 0xF9E9 +0xF156 0xF9EA +0xF157 0x98F4 +0xF158 0x990C +0xF159 0xF9EB +0xF15A 0xF9EC +0xF15B 0x7037 +0xF15C 0x76CA +0xF15D 0x7FCA +0xF15E 0x7FCC +0xF15F 0x7FFC +0xF160 0x8B1A +0xF161 0x4EBA +0xF162 0x4EC1 +0xF163 0x5203 +0xF164 0x5370 +0xF165 0xF9ED +0xF166 0x54BD +0xF167 0x56E0 +0xF168 0x59FB +0xF169 0x5BC5 +0xF16A 0x5F15 +0xF16B 0x5FCD +0xF16C 0x6E6E +0xF16D 0xF9EE +0xF16E 0xF9EF +0xF16F 0x7D6A +0xF170 0x8335 +0xF171 0xF9F0 +0xF172 0x8693 +0xF173 0x8A8D +0xF174 0xF9F1 +0xF175 0x976D +0xF176 0x9777 +0xF177 0xF9F2 +0xF178 0xF9F3 +0xF179 0x4E00 +0xF17A 0x4F5A +0xF17B 0x4F7E +0xF17C 0x58F9 +0xF17D 0x65E5 +0xF17E 0x6EA2 +0xF191 0x9038 +0xF192 0x93B0 +0xF193 0x99B9 +0xF194 0x4EFB +0xF195 0x58EC +0xF196 0x598A +0xF197 0x59D9 +0xF198 0x6041 +0xF199 0xF9F4 +0xF19A 0xF9F5 +0xF19B 0x7A14 +0xF19C 0xF9F6 +0xF19D 0x834F +0xF19E 0x8CC3 +0xF19F 0x5165 +0xF1A0 0x5344 +0xF1A1 0xF9F7 +0xF1A2 0xF9F8 +0xF1A3 0xF9F9 +0xF1A4 0x4ECD +0xF1A5 0x5269 +0xF1A6 0x5B55 +0xF1A7 0x82BF +0xF1A8 0x4ED4 +0xF1A9 0x523A +0xF1AA 0x54A8 +0xF1AB 0x59C9 +0xF1AC 0x59FF +0xF1AD 0x5B50 +0xF1AE 0x5B57 +0xF1AF 0x5B5C +0xF1B0 0x6063 +0xF1B1 0x6148 +0xF1B2 0x6ECB +0xF1B3 0x7099 +0xF1B4 0x716E +0xF1B5 0x7386 +0xF1B6 0x74F7 +0xF1B7 0x75B5 +0xF1B8 0x78C1 +0xF1B9 0x7D2B +0xF1BA 0x8005 +0xF1BB 0x81EA +0xF1BC 0x8328 +0xF1BD 0x8517 +0xF1BE 0x85C9 +0xF1BF 0x8AEE +0xF1C0 0x8CC7 +0xF1C1 0x96CC +0xF1C2 0x4F5C +0xF1C3 0x52FA +0xF1C4 0x56BC +0xF1C5 0x65AB +0xF1C6 0x6628 +0xF1C7 0x707C +0xF1C8 0x70B8 +0xF1C9 0x7235 +0xF1CA 0x7DBD +0xF1CB 0x828D +0xF1CC 0x914C +0xF1CD 0x96C0 +0xF1CE 0x9D72 +0xF1CF 0x5B71 +0xF1D0 0x68E7 +0xF1D1 0x6B98 +0xF1D2 0x6F7A +0xF1D3 0x76DE +0xF1D4 0x5C91 +0xF1D5 0x66AB +0xF1D6 0x6F5B +0xF1D7 0x7BB4 +0xF1D8 0x7C2A +0xF1D9 0x8836 +0xF1DA 0x96DC +0xF1DB 0x4E08 +0xF1DC 0x4ED7 +0xF1DD 0x5320 +0xF1DE 0x5834 +0xF1DF 0x58BB +0xF1E0 0x58EF +0xF1E1 0x596C +0xF1E2 0x5C07 +0xF1E3 0x5E33 +0xF1E4 0x5E84 +0xF1E5 0x5F35 +0xF1E6 0x638C +0xF1E7 0x66B2 +0xF1E8 0x6756 +0xF1E9 0x6A1F +0xF1EA 0x6AA3 +0xF1EB 0x6B0C +0xF1EC 0x6F3F +0xF1ED 0x7246 +0xF1EE 0xF9FA +0xF1EF 0x7350 +0xF1F0 0x748B +0xF1F1 0x7AE0 +0xF1F2 0x7CA7 +0xF1F3 0x8178 +0xF1F4 0x81DF +0xF1F5 0x81E7 +0xF1F6 0x838A +0xF1F7 0x846C +0xF1F8 0x8523 +0xF1F9 0x8594 +0xF1FA 0x85CF +0xF1FB 0x88DD +0xF1FC 0x8D13 +0xF1FD 0x91AC +0xF1FE 0x9577 +0xF231 0x969C +0xF232 0x518D +0xF233 0x54C9 +0xF234 0x5728 +0xF235 0x5BB0 +0xF236 0x624D +0xF237 0x6750 +0xF238 0x683D +0xF239 0x6893 +0xF23A 0x6E3D +0xF23B 0x6ED3 +0xF23C 0x707D +0xF23D 0x7E21 +0xF23E 0x88C1 +0xF23F 0x8CA1 +0xF240 0x8F09 +0xF241 0x9F4B +0xF242 0x9F4E +0xF243 0x722D +0xF244 0x7B8F +0xF245 0x8ACD +0xF246 0x931A +0xF247 0x4F47 +0xF248 0x4F4E +0xF249 0x5132 +0xF24A 0x5480 +0xF24B 0x59D0 +0xF24C 0x5E95 +0xF24D 0x62B5 +0xF24E 0x6775 +0xF24F 0x696E +0xF250 0x6A17 +0xF251 0x6CAE +0xF252 0x6E1A +0xF253 0x72D9 +0xF254 0x732A +0xF255 0x75BD +0xF256 0x7BB8 +0xF257 0x7D35 +0xF258 0x82E7 +0xF259 0x83F9 +0xF25A 0x8457 +0xF25B 0x85F7 +0xF25C 0x8A5B +0xF25D 0x8CAF +0xF25E 0x8E87 +0xF25F 0x9019 +0xF260 0x90B8 +0xF261 0x96CE +0xF262 0x9F5F +0xF263 0x52E3 +0xF264 0x540A +0xF265 0x5AE1 +0xF266 0x5BC2 +0xF267 0x6458 +0xF268 0x6575 +0xF269 0x6EF4 +0xF26A 0x72C4 +0xF26B 0xF9FB +0xF26C 0x7684 +0xF26D 0x7A4D +0xF26E 0x7B1B +0xF26F 0x7C4D +0xF270 0x7E3E +0xF271 0x7FDF +0xF272 0x837B +0xF273 0x8B2B +0xF274 0x8CCA +0xF275 0x8D64 +0xF276 0x8DE1 +0xF277 0x8E5F +0xF278 0x8FEA +0xF279 0x8FF9 +0xF27A 0x9069 +0xF27B 0x93D1 +0xF27C 0x4F43 +0xF27D 0x4F7A +0xF27E 0x50B3 +0xF291 0x5168 +0xF292 0x5178 +0xF293 0x524D +0xF294 0x526A +0xF295 0x5861 +0xF296 0x587C +0xF297 0x5960 +0xF298 0x5C08 +0xF299 0x5C55 +0xF29A 0x5EDB +0xF29B 0x609B +0xF29C 0x6230 +0xF29D 0x6813 +0xF29E 0x6BBF +0xF29F 0x6C08 +0xF2A0 0x6FB1 +0xF2A1 0x714E +0xF2A2 0x7420 +0xF2A3 0x7530 +0xF2A4 0x7538 +0xF2A5 0x7551 +0xF2A6 0x7672 +0xF2A7 0x7B4C +0xF2A8 0x7B8B +0xF2A9 0x7BAD +0xF2AA 0x7BC6 +0xF2AB 0x7E8F +0xF2AC 0x8A6E +0xF2AD 0x8F3E +0xF2AE 0x8F49 +0xF2AF 0x923F +0xF2B0 0x9293 +0xF2B1 0x9322 +0xF2B2 0x942B +0xF2B3 0x96FB +0xF2B4 0x985A +0xF2B5 0x986B +0xF2B6 0x991E +0xF2B7 0x5207 +0xF2B8 0x622A +0xF2B9 0x6298 +0xF2BA 0x6D59 +0xF2BB 0x7664 +0xF2BC 0x7ACA +0xF2BD 0x7BC0 +0xF2BE 0x7D76 +0xF2BF 0x5360 +0xF2C0 0x5CBE +0xF2C1 0x5E97 +0xF2C2 0x6F38 +0xF2C3 0x70B9 +0xF2C4 0x7C98 +0xF2C5 0x9711 +0xF2C6 0x9B8E +0xF2C7 0x9EDE +0xF2C8 0x63A5 +0xF2C9 0x647A +0xF2CA 0x8776 +0xF2CB 0x4E01 +0xF2CC 0x4E95 +0xF2CD 0x4EAD +0xF2CE 0x505C +0xF2CF 0x5075 +0xF2D0 0x5448 +0xF2D1 0x59C3 +0xF2D2 0x5B9A +0xF2D3 0x5E40 +0xF2D4 0x5EAD +0xF2D5 0x5EF7 +0xF2D6 0x5F81 +0xF2D7 0x60C5 +0xF2D8 0x633A +0xF2D9 0x653F +0xF2DA 0x6574 +0xF2DB 0x65CC +0xF2DC 0x6676 +0xF2DD 0x6678 +0xF2DE 0x67FE +0xF2DF 0x6968 +0xF2E0 0x6A89 +0xF2E1 0x6B63 +0xF2E2 0x6C40 +0xF2E3 0x6DC0 +0xF2E4 0x6DE8 +0xF2E5 0x6E1F +0xF2E6 0x6E5E +0xF2E7 0x701E +0xF2E8 0x70A1 +0xF2E9 0x738E +0xF2EA 0x73FD +0xF2EB 0x753A +0xF2EC 0x775B +0xF2ED 0x7887 +0xF2EE 0x798E +0xF2EF 0x7A0B +0xF2F0 0x7A7D +0xF2F1 0x7CBE +0xF2F2 0x7D8E +0xF2F3 0x8247 +0xF2F4 0x8A02 +0xF2F5 0x8AEA +0xF2F6 0x8C9E +0xF2F7 0x912D +0xF2F8 0x914A +0xF2F9 0x91D8 +0xF2FA 0x9266 +0xF2FB 0x92CC +0xF2FC 0x9320 +0xF2FD 0x9706 +0xF2FE 0x9756 +0xF331 0x975C +0xF332 0x9802 +0xF333 0x9F0E +0xF334 0x5236 +0xF335 0x5291 +0xF336 0x557C +0xF337 0x5824 +0xF338 0x5E1D +0xF339 0x5F1F +0xF33A 0x608C +0xF33B 0x63D0 +0xF33C 0x68AF +0xF33D 0x6FDF +0xF33E 0x796D +0xF33F 0x7B2C +0xF340 0x81CD +0xF341 0x85BA +0xF342 0x88FD +0xF343 0x8AF8 +0xF344 0x8E44 +0xF345 0x918D +0xF346 0x9664 +0xF347 0x969B +0xF348 0x973D +0xF349 0x984C +0xF34A 0x9F4A +0xF34B 0x4FCE +0xF34C 0x5146 +0xF34D 0x51CB +0xF34E 0x52A9 +0xF34F 0x5632 +0xF350 0x5F14 +0xF351 0x5F6B +0xF352 0x63AA +0xF353 0x64CD +0xF354 0x65E9 +0xF355 0x6641 +0xF356 0x66FA +0xF357 0x66F9 +0xF358 0x671D +0xF359 0x689D +0xF35A 0x68D7 +0xF35B 0x69FD +0xF35C 0x6F15 +0xF35D 0x6F6E +0xF35E 0x7167 +0xF35F 0x71E5 +0xF360 0x722A +0xF361 0x74AA +0xF362 0x773A +0xF363 0x7956 +0xF364 0x795A +0xF365 0x79DF +0xF366 0x7A20 +0xF367 0x7A95 +0xF368 0x7C97 +0xF369 0x7CDF +0xF36A 0x7D44 +0xF36B 0x7E70 +0xF36C 0x8087 +0xF36D 0x85FB +0xF36E 0x86A4 +0xF36F 0x8A54 +0xF370 0x8ABF +0xF371 0x8D99 +0xF372 0x8E81 +0xF373 0x9020 +0xF374 0x906D +0xF375 0x91E3 +0xF376 0x963B +0xF377 0x96D5 +0xF378 0x9CE5 +0xF379 0x65CF +0xF37A 0x7C07 +0xF37B 0x8DB3 +0xF37C 0x93C3 +0xF37D 0x5B58 +0xF37E 0x5C0A +0xF391 0x5352 +0xF392 0x62D9 +0xF393 0x731D +0xF394 0x5027 +0xF395 0x5B97 +0xF396 0x5F9E +0xF397 0x60B0 +0xF398 0x616B +0xF399 0x68D5 +0xF39A 0x6DD9 +0xF39B 0x742E +0xF39C 0x7A2E +0xF39D 0x7D42 +0xF39E 0x7D9C +0xF39F 0x7E31 +0xF3A0 0x816B +0xF3A1 0x8E2A +0xF3A2 0x8E35 +0xF3A3 0x937E +0xF3A4 0x9418 +0xF3A5 0x4F50 +0xF3A6 0x5750 +0xF3A7 0x5DE6 +0xF3A8 0x5EA7 +0xF3A9 0x632B +0xF3AA 0x7F6A +0xF3AB 0x4E3B +0xF3AC 0x4F4F +0xF3AD 0x4F8F +0xF3AE 0x505A +0xF3AF 0x59DD +0xF3B0 0x80C4 +0xF3B1 0x546A +0xF3B2 0x5468 +0xF3B3 0x55FE +0xF3B4 0x594F +0xF3B5 0x5B99 +0xF3B6 0x5DDE +0xF3B7 0x5EDA +0xF3B8 0x665D +0xF3B9 0x6731 +0xF3BA 0x67F1 +0xF3BB 0x682A +0xF3BC 0x6CE8 +0xF3BD 0x6D32 +0xF3BE 0x6E4A +0xF3BF 0x6F8D +0xF3C0 0x70B7 +0xF3C1 0x73E0 +0xF3C2 0x7587 +0xF3C3 0x7C4C +0xF3C4 0x7D02 +0xF3C5 0x7D2C +0xF3C6 0x7DA2 +0xF3C7 0x821F +0xF3C8 0x86DB +0xF3C9 0x8A3B +0xF3CA 0x8A85 +0xF3CB 0x8D70 +0xF3CC 0x8E8A +0xF3CD 0x8F33 +0xF3CE 0x9031 +0xF3CF 0x914E +0xF3D0 0x9152 +0xF3D1 0x9444 +0xF3D2 0x99D0 +0xF3D3 0x7AF9 +0xF3D4 0x7CA5 +0xF3D5 0x4FCA +0xF3D6 0x5101 +0xF3D7 0x51C6 +0xF3D8 0x57C8 +0xF3D9 0x5BEF +0xF3DA 0x5CFB +0xF3DB 0x6659 +0xF3DC 0x6A3D +0xF3DD 0x6D5A +0xF3DE 0x6E96 +0xF3DF 0x6FEC +0xF3E0 0x710C +0xF3E1 0x756F +0xF3E2 0x7AE3 +0xF3E3 0x8822 +0xF3E4 0x9021 +0xF3E5 0x9075 +0xF3E6 0x96CB +0xF3E7 0x99FF +0xF3E8 0x8301 +0xF3E9 0x4E2D +0xF3EA 0x4EF2 +0xF3EB 0x8846 +0xF3EC 0x91CD +0xF3ED 0x537D +0xF3EE 0x6ADB +0xF3EF 0x696B +0xF3F0 0x6C41 +0xF3F1 0x847A +0xF3F2 0x589E +0xF3F3 0x618E +0xF3F4 0x66FE +0xF3F5 0x62EF +0xF3F6 0x70DD +0xF3F7 0x7511 +0xF3F8 0x75C7 +0xF3F9 0x7E52 +0xF3FA 0x84B8 +0xF3FB 0x8B49 +0xF3FC 0x8D08 +0xF3FD 0x4E4B +0xF3FE 0x53EA +0xF431 0x54AB +0xF432 0x5730 +0xF433 0x5740 +0xF434 0x5FD7 +0xF435 0x6301 +0xF436 0x6307 +0xF437 0x646F +0xF438 0x652F +0xF439 0x65E8 +0xF43A 0x667A +0xF43B 0x679D +0xF43C 0x67B3 +0xF43D 0x6B62 +0xF43E 0x6C60 +0xF43F 0x6C9A +0xF440 0x6F2C +0xF441 0x77E5 +0xF442 0x7825 +0xF443 0x7949 +0xF444 0x7957 +0xF445 0x7D19 +0xF446 0x80A2 +0xF447 0x8102 +0xF448 0x81F3 +0xF449 0x829D +0xF44A 0x82B7 +0xF44B 0x8718 +0xF44C 0x8A8C +0xF44D 0xF9FC +0xF44E 0x8D04 +0xF44F 0x8DBE +0xF450 0x9072 +0xF451 0x76F4 +0xF452 0x7A19 +0xF453 0x7A37 +0xF454 0x7E54 +0xF455 0x8077 +0xF456 0x5507 +0xF457 0x55D4 +0xF458 0x5875 +0xF459 0x632F +0xF45A 0x6422 +0xF45B 0x6649 +0xF45C 0x664B +0xF45D 0x686D +0xF45E 0x699B +0xF45F 0x6B84 +0xF460 0x6D25 +0xF461 0x6EB1 +0xF462 0x73CD +0xF463 0x7468 +0xF464 0x74A1 +0xF465 0x755B +0xF466 0x75B9 +0xF467 0x76E1 +0xF468 0x771E +0xF469 0x778B +0xF46A 0x79E6 +0xF46B 0x7E09 +0xF46C 0x7E1D +0xF46D 0x81FB +0xF46E 0x852F +0xF46F 0x8897 +0xF470 0x8A3A +0xF471 0x8CD1 +0xF472 0x8EEB +0xF473 0x8FB0 +0xF474 0x9032 +0xF475 0x93AD +0xF476 0x9663 +0xF477 0x9673 +0xF478 0x9707 +0xF479 0x4F84 +0xF47A 0x53F1 +0xF47B 0x59EA +0xF47C 0x5AC9 +0xF47D 0x5E19 +0xF47E 0x684E +0xF491 0x74C6 +0xF492 0x75BE +0xF493 0x79E9 +0xF494 0x7A92 +0xF495 0x81A3 +0xF496 0x86ED +0xF497 0x8CEA +0xF498 0x8DCC +0xF499 0x8FED +0xF49A 0x659F +0xF49B 0x6715 +0xF49C 0xF9FD +0xF49D 0x57F7 +0xF49E 0x6F57 +0xF49F 0x7DDD +0xF4A0 0x8F2F +0xF4A1 0x93F6 +0xF4A2 0x96C6 +0xF4A3 0x5FB5 +0xF4A4 0x61F2 +0xF4A5 0x6F84 +0xF4A6 0x4E14 +0xF4A7 0x4F98 +0xF4A8 0x501F +0xF4A9 0x53C9 +0xF4AA 0x55DF +0xF4AB 0x5D6F +0xF4AC 0x5DEE +0xF4AD 0x6B21 +0xF4AE 0x6B64 +0xF4AF 0x78CB +0xF4B0 0x7B9A +0xF4B1 0xF9FE +0xF4B2 0x8E49 +0xF4B3 0x8ECA +0xF4B4 0x906E +0xF4B5 0x6349 +0xF4B6 0x643E +0xF4B7 0x7740 +0xF4B8 0x7A84 +0xF4B9 0x932F +0xF4BA 0x947F +0xF4BB 0x9F6A +0xF4BC 0x64B0 +0xF4BD 0x6FAF +0xF4BE 0x71E6 +0xF4BF 0x74A8 +0xF4C0 0x74DA +0xF4C1 0x7AC4 +0xF4C2 0x7C12 +0xF4C3 0x7E82 +0xF4C4 0x7CB2 +0xF4C5 0x7E98 +0xF4C6 0x8B9A +0xF4C7 0x8D0A +0xF4C8 0x947D +0xF4C9 0x9910 +0xF4CA 0x994C +0xF4CB 0x5239 +0xF4CC 0x5BDF +0xF4CD 0x64E6 +0xF4CE 0x672D +0xF4CF 0x7D2E +0xF4D0 0x50ED +0xF4D1 0x53C3 +0xF4D2 0x5879 +0xF4D3 0x6158 +0xF4D4 0x6159 +0xF4D5 0x61FA +0xF4D6 0x65AC +0xF4D7 0x7AD9 +0xF4D8 0x8B92 +0xF4D9 0x8B96 +0xF4DA 0x5009 +0xF4DB 0x5021 +0xF4DC 0x5275 +0xF4DD 0x5531 +0xF4DE 0x5A3C +0xF4DF 0x5EE0 +0xF4E0 0x5F70 +0xF4E1 0x6134 +0xF4E2 0x655E +0xF4E3 0x660C +0xF4E4 0x6636 +0xF4E5 0x66A2 +0xF4E6 0x69CD +0xF4E7 0x6EC4 +0xF4E8 0x6F32 +0xF4E9 0x7316 +0xF4EA 0x7621 +0xF4EB 0x7A93 +0xF4EC 0x8139 +0xF4ED 0x8259 +0xF4EE 0x83D6 +0xF4EF 0x84BC +0xF4F0 0x50B5 +0xF4F1 0x57F0 +0xF4F2 0x5BC0 +0xF4F3 0x5BE8 +0xF4F4 0x5F69 +0xF4F5 0x63A1 +0xF4F6 0x7826 +0xF4F7 0x7DB5 +0xF4F8 0x83DC +0xF4F9 0x8521 +0xF4FA 0x91C7 +0xF4FB 0x91F5 +0xF4FC 0x518A +0xF4FD 0x67F5 +0xF4FE 0x7B56 +0xF531 0x8CAC +0xF532 0x51C4 +0xF533 0x59BB +0xF534 0x60BD +0xF535 0x8655 +0xF536 0x501C +0xF537 0xF9FF +0xF538 0x5254 +0xF539 0x5C3A +0xF53A 0x617D +0xF53B 0x621A +0xF53C 0x62D3 +0xF53D 0x64F2 +0xF53E 0x65A5 +0xF53F 0x6ECC +0xF540 0x7620 +0xF541 0x810A +0xF542 0x8E60 +0xF543 0x965F +0xF544 0x96BB +0xF545 0x4EDF +0xF546 0x5343 +0xF547 0x5598 +0xF548 0x5929 +0xF549 0x5DDD +0xF54A 0x64C5 +0xF54B 0x6CC9 +0xF54C 0x6DFA +0xF54D 0x7394 +0xF54E 0x7A7F +0xF54F 0x821B +0xF550 0x85A6 +0xF551 0x8CE4 +0xF552 0x8E10 +0xF553 0x9077 +0xF554 0x91E7 +0xF555 0x95E1 +0xF556 0x9621 +0xF557 0x97C6 +0xF558 0x51F8 +0xF559 0x54F2 +0xF55A 0x5586 +0xF55B 0x5FB9 +0xF55C 0x64A4 +0xF55D 0x6F88 +0xF55E 0x7DB4 +0xF55F 0x8F1F +0xF560 0x8F4D +0xF561 0x9435 +0xF562 0x50C9 +0xF563 0x5C16 +0xF564 0x6CBE +0xF565 0x6DFB +0xF566 0x751B +0xF567 0x77BB +0xF568 0x7C3D +0xF569 0x7C64 +0xF56A 0x8A79 +0xF56B 0x8AC2 +0xF56C 0x581E +0xF56D 0x59BE +0xF56E 0x5E16 +0xF56F 0x6377 +0xF570 0x7252 +0xF571 0x758A +0xF572 0x776B +0xF573 0x8ADC +0xF574 0x8CBC +0xF575 0x8F12 +0xF576 0x5EF3 +0xF577 0x6674 +0xF578 0x6DF8 +0xF579 0x807D +0xF57A 0x83C1 +0xF57B 0x8ACB +0xF57C 0x9751 +0xF57D 0x9BD6 +0xF57E 0xFA00 +0xF591 0x5243 +0xF592 0x66FF +0xF593 0x6D95 +0xF594 0x6EEF +0xF595 0x7DE0 +0xF596 0x8AE6 +0xF597 0x902E +0xF598 0x905E +0xF599 0x9AD4 +0xF59A 0x521D +0xF59B 0x527F +0xF59C 0x54E8 +0xF59D 0x6194 +0xF59E 0x6284 +0xF59F 0x62DB +0xF5A0 0x68A2 +0xF5A1 0x6912 +0xF5A2 0x695A +0xF5A3 0x6A35 +0xF5A4 0x7092 +0xF5A5 0x7126 +0xF5A6 0x785D +0xF5A7 0x7901 +0xF5A8 0x790E +0xF5A9 0x79D2 +0xF5AA 0x7A0D +0xF5AB 0x8096 +0xF5AC 0x8278 +0xF5AD 0x82D5 +0xF5AE 0x8349 +0xF5AF 0x8549 +0xF5B0 0x8C82 +0xF5B1 0x8D85 +0xF5B2 0x9162 +0xF5B3 0x918B +0xF5B4 0x91AE +0xF5B5 0x4FC3 +0xF5B6 0x56D1 +0xF5B7 0x71ED +0xF5B8 0x77D7 +0xF5B9 0x8700 +0xF5BA 0x89F8 +0xF5BB 0x5BF8 +0xF5BC 0x5FD6 +0xF5BD 0x6751 +0xF5BE 0x90A8 +0xF5BF 0x53E2 +0xF5C0 0x585A +0xF5C1 0x5BF5 +0xF5C2 0x60A4 +0xF5C3 0x6181 +0xF5C4 0x6460 +0xF5C5 0x7E3D +0xF5C6 0x8070 +0xF5C7 0x8525 +0xF5C8 0x9283 +0xF5C9 0x64AE +0xF5CA 0x50AC +0xF5CB 0x5D14 +0xF5CC 0x6700 +0xF5CD 0x589C +0xF5CE 0x62BD +0xF5CF 0x63A8 +0xF5D0 0x690E +0xF5D1 0x6978 +0xF5D2 0x6A1E +0xF5D3 0x6E6B +0xF5D4 0x76BA +0xF5D5 0x79CB +0xF5D6 0x82BB +0xF5D7 0x8429 +0xF5D8 0x8ACF +0xF5D9 0x8DA8 +0xF5DA 0x8FFD +0xF5DB 0x9112 +0xF5DC 0x914B +0xF5DD 0x919C +0xF5DE 0x9310 +0xF5DF 0x9318 +0xF5E0 0x939A +0xF5E1 0x96DB +0xF5E2 0x9A36 +0xF5E3 0x9C0D +0xF5E4 0x4E11 +0xF5E5 0x755C +0xF5E6 0x795D +0xF5E7 0x7AFA +0xF5E8 0x7B51 +0xF5E9 0x7BC9 +0xF5EA 0x7E2E +0xF5EB 0x84C4 +0xF5EC 0x8E59 +0xF5ED 0x8E74 +0xF5EE 0x8EF8 +0xF5EF 0x9010 +0xF5F0 0x6625 +0xF5F1 0x693F +0xF5F2 0x7443 +0xF5F3 0x51FA +0xF5F4 0x672E +0xF5F5 0x9EDC +0xF5F6 0x5145 +0xF5F7 0x5FE0 +0xF5F8 0x6C96 +0xF5F9 0x87F2 +0xF5FA 0x885D +0xF5FB 0x8877 +0xF5FC 0x60B4 +0xF5FD 0x81B5 +0xF5FE 0x8403 +0xF631 0x8D05 +0xF632 0x53D6 +0xF633 0x5439 +0xF634 0x5634 +0xF635 0x5A36 +0xF636 0x5C31 +0xF637 0x708A +0xF638 0x7FE0 +0xF639 0x805A +0xF63A 0x8106 +0xF63B 0x81ED +0xF63C 0x8DA3 +0xF63D 0x9189 +0xF63E 0x9A5F +0xF63F 0x9DF2 +0xF640 0x5074 +0xF641 0x4EC4 +0xF642 0x53A0 +0xF643 0x60FB +0xF644 0x6E2C +0xF645 0x5C64 +0xF646 0x4F88 +0xF647 0x5024 +0xF648 0x55E4 +0xF649 0x5CD9 +0xF64A 0x5E5F +0xF64B 0x6065 +0xF64C 0x6894 +0xF64D 0x6CBB +0xF64E 0x6DC4 +0xF64F 0x71BE +0xF650 0x75D4 +0xF651 0x75F4 +0xF652 0x7661 +0xF653 0x7A1A +0xF654 0x7A49 +0xF655 0x7DC7 +0xF656 0x7DFB +0xF657 0x7F6E +0xF658 0x81F4 +0xF659 0x86A9 +0xF65A 0x8F1C +0xF65B 0x96C9 +0xF65C 0x99B3 +0xF65D 0x9F52 +0xF65E 0x5247 +0xF65F 0x52C5 +0xF660 0x98ED +0xF661 0x89AA +0xF662 0x4E03 +0xF663 0x67D2 +0xF664 0x6F06 +0xF665 0x4FB5 +0xF666 0x5BE2 +0xF667 0x6795 +0xF668 0x6C88 +0xF669 0x6D78 +0xF66A 0x741B +0xF66B 0x7827 +0xF66C 0x91DD +0xF66D 0x937C +0xF66E 0x87C4 +0xF66F 0x79E4 +0xF670 0x7A31 +0xF671 0x5FEB +0xF672 0x4ED6 +0xF673 0x54A4 +0xF674 0x553E +0xF675 0x58AE +0xF676 0x59A5 +0xF677 0x60F0 +0xF678 0x6253 +0xF679 0x62D6 +0xF67A 0x6736 +0xF67B 0x6955 +0xF67C 0x8235 +0xF67D 0x9640 +0xF67E 0x99B1 +0xF691 0x99DD +0xF692 0x502C +0xF693 0x5353 +0xF694 0x5544 +0xF695 0x577C +0xF696 0xFA01 +0xF697 0x6258 +0xF698 0xFA02 +0xF699 0x64E2 +0xF69A 0x666B +0xF69B 0x67DD +0xF69C 0x6FC1 +0xF69D 0x6FEF +0xF69E 0x7422 +0xF69F 0x7438 +0xF6A0 0x8A17 +0xF6A1 0x9438 +0xF6A2 0x5451 +0xF6A3 0x5606 +0xF6A4 0x5766 +0xF6A5 0x5F48 +0xF6A6 0x619A +0xF6A7 0x6B4E +0xF6A8 0x7058 +0xF6A9 0x70AD +0xF6AA 0x7DBB +0xF6AB 0x8A95 +0xF6AC 0x596A +0xF6AD 0x812B +0xF6AE 0x63A2 +0xF6AF 0x7708 +0xF6B0 0x803D +0xF6B1 0x8CAA +0xF6B2 0x5854 +0xF6B3 0x642D +0xF6B4 0x69BB +0xF6B5 0x5B95 +0xF6B6 0x5E11 +0xF6B7 0x6E6F +0xF6B8 0xFA03 +0xF6B9 0x8569 +0xF6BA 0x514C +0xF6BB 0x53F0 +0xF6BC 0x592A +0xF6BD 0x6020 +0xF6BE 0x614B +0xF6BF 0x6B86 +0xF6C0 0x6C70 +0xF6C1 0x6CF0 +0xF6C2 0x7B1E +0xF6C3 0x80CE +0xF6C4 0x82D4 +0xF6C5 0x8DC6 +0xF6C6 0x90B0 +0xF6C7 0x98B1 +0xF6C8 0xFA04 +0xF6C9 0x64C7 +0xF6CA 0x6FA4 +0xF6CB 0x6491 +0xF6CC 0x6504 +0xF6CD 0x514E +0xF6CE 0x5410 +0xF6CF 0x571F +0xF6D0 0x8A0E +0xF6D1 0x615F +0xF6D2 0x6876 +0xF6D3 0xFA05 +0xF6D4 0x75DB +0xF6D5 0x7B52 +0xF6D6 0x7D71 +0xF6D7 0x901A +0xF6D8 0x5806 +0xF6D9 0x69CC +0xF6DA 0x817F +0xF6DB 0x892A +0xF6DC 0x9000 +0xF6DD 0x9839 +0xF6DE 0x5078 +0xF6DF 0x5957 +0xF6E0 0x59AC +0xF6E1 0x6295 +0xF6E2 0x900F +0xF6E3 0x9B2A +0xF6E4 0x615D +0xF6E5 0x7279 +0xF6E6 0x95D6 +0xF6E7 0x5761 +0xF6E8 0x5A46 +0xF6E9 0x5DF4 +0xF6EA 0x628A +0xF6EB 0x64AD +0xF6EC 0x64FA +0xF6ED 0x6777 +0xF6EE 0x6CE2 +0xF6EF 0x6D3E +0xF6F0 0x722C +0xF6F1 0x7436 +0xF6F2 0x7834 +0xF6F3 0x7F77 +0xF6F4 0x82AD +0xF6F5 0x8DDB +0xF6F6 0x9817 +0xF6F7 0x5224 +0xF6F8 0x5742 +0xF6F9 0x677F +0xF6FA 0x7248 +0xF6FB 0x74E3 +0xF6FC 0x8CA9 +0xF6FD 0x8FA6 +0xF6FE 0x9211 +0xF731 0x962A +0xF732 0x516B +0xF733 0x53ED +0xF734 0x634C +0xF735 0x4F69 +0xF736 0x5504 +0xF737 0x6096 +0xF738 0x6557 +0xF739 0x6C9B +0xF73A 0x6D7F +0xF73B 0x724C +0xF73C 0x72FD +0xF73D 0x7A17 +0xF73E 0x8987 +0xF73F 0x8C9D +0xF740 0x5F6D +0xF741 0x6F8E +0xF742 0x70F9 +0xF743 0x81A8 +0xF744 0x610E +0xF745 0x4FBF +0xF746 0x504F +0xF747 0x6241 +0xF748 0x7247 +0xF749 0x7BC7 +0xF74A 0x7DE8 +0xF74B 0x7FE9 +0xF74C 0x904D +0xF74D 0x97AD +0xF74E 0x9A19 +0xF74F 0x8CB6 +0xF750 0x576A +0xF751 0x5E73 +0xF752 0x67B0 +0xF753 0x840D +0xF754 0x8A55 +0xF755 0x5420 +0xF756 0x5B16 +0xF757 0x5E63 +0xF758 0x5EE2 +0xF759 0x5F0A +0xF75A 0x6583 +0xF75B 0x80BA +0xF75C 0x853D +0xF75D 0x9589 +0xF75E 0x965B +0xF75F 0x4F48 +0xF760 0x5305 +0xF761 0x530D +0xF762 0x530F +0xF763 0x5486 +0xF764 0x54FA +0xF765 0x5703 +0xF766 0x5E03 +0xF767 0x6016 +0xF768 0x629B +0xF769 0x62B1 +0xF76A 0x6355 +0xF76B 0xFA06 +0xF76C 0x6CE1 +0xF76D 0x6D66 +0xF76E 0x75B1 +0xF76F 0x7832 +0xF770 0x80DE +0xF771 0x812F +0xF772 0x82DE +0xF773 0x8461 +0xF774 0x84B2 +0xF775 0x888D +0xF776 0x8912 +0xF777 0x900B +0xF778 0x92EA +0xF779 0x98FD +0xF77A 0x9B91 +0xF77B 0x5E45 +0xF77C 0x66B4 +0xF77D 0x66DD +0xF77E 0x7011 +0xF791 0x7206 +0xF792 0xFA07 +0xF793 0x4FF5 +0xF794 0x527D +0xF795 0x5F6A +0xF796 0x6153 +0xF797 0x6753 +0xF798 0x6A19 +0xF799 0x6F02 +0xF79A 0x74E2 +0xF79B 0x7968 +0xF79C 0x8868 +0xF79D 0x8C79 +0xF79E 0x98C7 +0xF79F 0x98C4 +0xF7A0 0x9A43 +0xF7A1 0x54C1 +0xF7A2 0x7A1F +0xF7A3 0x6953 +0xF7A4 0x8AF7 +0xF7A5 0x8C4A +0xF7A6 0x98A8 +0xF7A7 0x99AE +0xF7A8 0x5F7C +0xF7A9 0x62AB +0xF7AA 0x75B2 +0xF7AB 0x76AE +0xF7AC 0x88AB +0xF7AD 0x907F +0xF7AE 0x9642 +0xF7AF 0x5339 +0xF7B0 0x5F3C +0xF7B1 0x5FC5 +0xF7B2 0x6CCC +0xF7B3 0x73CC +0xF7B4 0x7562 +0xF7B5 0x758B +0xF7B6 0x7B46 +0xF7B7 0x82FE +0xF7B8 0x999D +0xF7B9 0x4E4F +0xF7BA 0x903C +0xF7BB 0x4E0B +0xF7BC 0x4F55 +0xF7BD 0x53A6 +0xF7BE 0x590F +0xF7BF 0x5EC8 +0xF7C0 0x6630 +0xF7C1 0x6CB3 +0xF7C2 0x7455 +0xF7C3 0x8377 +0xF7C4 0x8766 +0xF7C5 0x8CC0 +0xF7C6 0x9050 +0xF7C7 0x971E +0xF7C8 0x9C15 +0xF7C9 0x58D1 +0xF7CA 0x5B78 +0xF7CB 0x8650 +0xF7CC 0x8B14 +0xF7CD 0x9DB4 +0xF7CE 0x5BD2 +0xF7CF 0x6068 +0xF7D0 0x608D +0xF7D1 0x65F1 +0xF7D2 0x6C57 +0xF7D3 0x6F22 +0xF7D4 0x6FA3 +0xF7D5 0x701A +0xF7D6 0x7F55 +0xF7D7 0x7FF0 +0xF7D8 0x9591 +0xF7D9 0x9592 +0xF7DA 0x9650 +0xF7DB 0x97D3 +0xF7DC 0x5272 +0xF7DD 0x8F44 +0xF7DE 0x51FD +0xF7DF 0x542B +0xF7E0 0x54B8 +0xF7E1 0x5563 +0xF7E2 0x558A +0xF7E3 0x6ABB +0xF7E4 0x6DB5 +0xF7E5 0x7DD8 +0xF7E6 0x8266 +0xF7E7 0x929C +0xF7E8 0x9677 +0xF7E9 0x9E79 +0xF7EA 0x5408 +0xF7EB 0x54C8 +0xF7EC 0x76D2 +0xF7ED 0x86E4 +0xF7EE 0x95A4 +0xF7EF 0x95D4 +0xF7F0 0x965C +0xF7F1 0x4EA2 +0xF7F2 0x4F09 +0xF7F3 0x59EE +0xF7F4 0x5AE6 +0xF7F5 0x5DF7 +0xF7F6 0x6052 +0xF7F7 0x6297 +0xF7F8 0x676D +0xF7F9 0x6841 +0xF7FA 0x6C86 +0xF7FB 0x6E2F +0xF7FC 0x7F38 +0xF7FD 0x809B +0xF7FE 0x822A +0xF831 0xFA08 +0xF832 0xFA09 +0xF833 0x9805 +0xF834 0x4EA5 +0xF835 0x5055 +0xF836 0x54B3 +0xF837 0x5793 +0xF838 0x595A +0xF839 0x5B69 +0xF83A 0x5BB3 +0xF83B 0x61C8 +0xF83C 0x6977 +0xF83D 0x6D77 +0xF83E 0x7023 +0xF83F 0x87F9 +0xF840 0x89E3 +0xF841 0x8A72 +0xF842 0x8AE7 +0xF843 0x9082 +0xF844 0x99ED +0xF845 0x9AB8 +0xF846 0x52BE +0xF847 0x6838 +0xF848 0x5016 +0xF849 0x5E78 +0xF84A 0x674F +0xF84B 0x8347 +0xF84C 0x884C +0xF84D 0x4EAB +0xF84E 0x5411 +0xF84F 0x56AE +0xF850 0x73E6 +0xF851 0x9115 +0xF852 0x97FF +0xF853 0x9909 +0xF854 0x9957 +0xF855 0x9999 +0xF856 0x5653 +0xF857 0x589F +0xF858 0x865B +0xF859 0x8A31 +0xF85A 0x61B2 +0xF85B 0x6AF6 +0xF85C 0x737B +0xF85D 0x8ED2 +0xF85E 0x6B47 +0xF85F 0x96AA +0xF860 0x9A57 +0xF861 0x5955 +0xF862 0x7200 +0xF863 0x8D6B +0xF864 0x9769 +0xF865 0x4FD4 +0xF866 0x5CF4 +0xF867 0x5F26 +0xF868 0x61F8 +0xF869 0x665B +0xF86A 0x6CEB +0xF86B 0x70AB +0xF86C 0x7384 +0xF86D 0x73B9 +0xF86E 0x73FE +0xF86F 0x7729 +0xF870 0x774D +0xF871 0x7D43 +0xF872 0x7D62 +0xF873 0x7E23 +0xF874 0x8237 +0xF875 0x8852 +0xF876 0xFA0A +0xF877 0x8CE2 +0xF878 0x9249 +0xF879 0x986F +0xF87A 0x5B51 +0xF87B 0x7A74 +0xF87C 0x8840 +0xF87D 0x9801 +0xF87E 0x5ACC +0xF891 0x4FE0 +0xF892 0x5354 +0xF893 0x593E +0xF894 0x5CFD +0xF895 0x633E +0xF896 0x6D79 +0xF897 0x72F9 +0xF898 0x8105 +0xF899 0x8107 +0xF89A 0x83A2 +0xF89B 0x92CF +0xF89C 0x9830 +0xF89D 0x4EA8 +0xF89E 0x5144 +0xF89F 0x5211 +0xF8A0 0x578B +0xF8A1 0x5F62 +0xF8A2 0x6CC2 +0xF8A3 0x6ECE +0xF8A4 0x7005 +0xF8A5 0x7050 +0xF8A6 0x70AF +0xF8A7 0x7192 +0xF8A8 0x73E9 +0xF8A9 0x7469 +0xF8AA 0x834A +0xF8AB 0x87A2 +0xF8AC 0x8861 +0xF8AD 0x9008 +0xF8AE 0x90A2 +0xF8AF 0x93A3 +0xF8B0 0x99A8 +0xF8B1 0x516E +0xF8B2 0x5F57 +0xF8B3 0x60E0 +0xF8B4 0x6167 +0xF8B5 0x66B3 +0xF8B6 0x8559 +0xF8B7 0x8E4A +0xF8B8 0x91AF +0xF8B9 0x978B +0xF8BA 0x4E4E +0xF8BB 0x4E92 +0xF8BC 0x547C +0xF8BD 0x58D5 +0xF8BE 0x58FA +0xF8BF 0x597D +0xF8C0 0x5CB5 +0xF8C1 0x5F27 +0xF8C2 0x6236 +0xF8C3 0x6248 +0xF8C4 0x660A +0xF8C5 0x6667 +0xF8C6 0x6BEB +0xF8C7 0x6D69 +0xF8C8 0x6DCF +0xF8C9 0x6E56 +0xF8CA 0x6EF8 +0xF8CB 0x6F94 +0xF8CC 0x6FE0 +0xF8CD 0x6FE9 +0xF8CE 0x705D +0xF8CF 0x72D0 +0xF8D0 0x7425 +0xF8D1 0x745A +0xF8D2 0x74E0 +0xF8D3 0x7693 +0xF8D4 0x795C +0xF8D5 0x7CCA +0xF8D6 0x7E1E +0xF8D7 0x80E1 +0xF8D8 0x82A6 +0xF8D9 0x846B +0xF8DA 0x84BF +0xF8DB 0x864E +0xF8DC 0x865F +0xF8DD 0x8774 +0xF8DE 0x8B77 +0xF8DF 0x8C6A +0xF8E0 0x93AC +0xF8E1 0x9800 +0xF8E2 0x9865 +0xF8E3 0x60D1 +0xF8E4 0x6216 +0xF8E5 0x9177 +0xF8E6 0x5A5A +0xF8E7 0x660F +0xF8E8 0x6DF7 +0xF8E9 0x6E3E +0xF8EA 0x743F +0xF8EB 0x9B42 +0xF8EC 0x5FFD +0xF8ED 0x60DA +0xF8EE 0x7B0F +0xF8EF 0x54C4 +0xF8F0 0x5F18 +0xF8F1 0x6C5E +0xF8F2 0x6CD3 +0xF8F3 0x6D2A +0xF8F4 0x70D8 +0xF8F5 0x7D05 +0xF8F6 0x8679 +0xF8F7 0x8A0C +0xF8F8 0x9D3B +0xF8F9 0x5316 +0xF8FA 0x548C +0xF8FB 0x5B05 +0xF8FC 0x6A3A +0xF8FD 0x706B +0xF8FE 0x7575 +0xF931 0x798D +0xF932 0x79BE +0xF933 0x82B1 +0xF934 0x83EF +0xF935 0x8A71 +0xF936 0x8B41 +0xF937 0x8CA8 +0xF938 0x9774 +0xF939 0xFA0B +0xF93A 0x64F4 +0xF93B 0x652B +0xF93C 0x78BA +0xF93D 0x78BB +0xF93E 0x7A6B +0xF93F 0x4E38 +0xF940 0x559A +0xF941 0x5950 +0xF942 0x5BA6 +0xF943 0x5E7B +0xF944 0x60A3 +0xF945 0x63DB +0xF946 0x6B61 +0xF947 0x6665 +0xF948 0x6853 +0xF949 0x6E19 +0xF94A 0x7165 +0xF94B 0x74B0 +0xF94C 0x7D08 +0xF94D 0x9084 +0xF94E 0x9A69 +0xF94F 0x9C25 +0xF950 0x6D3B +0xF951 0x6ED1 +0xF952 0x733E +0xF953 0x8C41 +0xF954 0x95CA +0xF955 0x51F0 +0xF956 0x5E4C +0xF957 0x5FA8 +0xF958 0x604D +0xF959 0x60F6 +0xF95A 0x6130 +0xF95B 0x614C +0xF95C 0x6643 +0xF95D 0x6644 +0xF95E 0x69A5 +0xF95F 0x6CC1 +0xF960 0x6E5F +0xF961 0x6EC9 +0xF962 0x6F62 +0xF963 0x714C +0xF964 0x749C +0xF965 0x7687 +0xF966 0x7BC1 +0xF967 0x7C27 +0xF968 0x8352 +0xF969 0x8757 +0xF96A 0x9051 +0xF96B 0x968D +0xF96C 0x9EC3 +0xF96D 0x532F +0xF96E 0x56DE +0xF96F 0x5EFB +0xF970 0x5F8A +0xF971 0x6062 +0xF972 0x6094 +0xF973 0x61F7 +0xF974 0x6666 +0xF975 0x6703 +0xF976 0x6A9C +0xF977 0x6DEE +0xF978 0x6FAE +0xF979 0x7070 +0xF97A 0x736A +0xF97B 0x7E6A +0xF97C 0x81BE +0xF97D 0x8334 +0xF97E 0x86D4 +0xF991 0x8AA8 +0xF992 0x8CC4 +0xF993 0x5283 +0xF994 0x7372 +0xF995 0x5B96 +0xF996 0x6A6B +0xF997 0x9404 +0xF998 0x54EE +0xF999 0x5686 +0xF99A 0x5B5D +0xF99B 0x6548 +0xF99C 0x6585 +0xF99D 0x66C9 +0xF99E 0x689F +0xF99F 0x6D8D +0xF9A0 0x6DC6 +0xF9A1 0x723B +0xF9A2 0x80B4 +0xF9A3 0x9175 +0xF9A4 0x9A4D +0xF9A5 0x4FAF +0xF9A6 0x5019 +0xF9A7 0x539A +0xF9A8 0x540E +0xF9A9 0x543C +0xF9AA 0x5589 +0xF9AB 0x55C5 +0xF9AC 0x5E3F +0xF9AD 0x5F8C +0xF9AE 0x673D +0xF9AF 0x7166 +0xF9B0 0x73DD +0xF9B1 0x9005 +0xF9B2 0x52DB +0xF9B3 0x52F3 +0xF9B4 0x5864 +0xF9B5 0x58CE +0xF9B6 0x7104 +0xF9B7 0x718F +0xF9B8 0x71FB +0xF9B9 0x85B0 +0xF9BA 0x8A13 +0xF9BB 0x6688 +0xF9BC 0x85A8 +0xF9BD 0x55A7 +0xF9BE 0x6684 +0xF9BF 0x714A +0xF9C0 0x8431 +0xF9C1 0x5349 +0xF9C2 0x5599 +0xF9C3 0x6BC1 +0xF9C4 0x5F59 +0xF9C5 0x5FBD +0xF9C6 0x63EE +0xF9C7 0x6689 +0xF9C8 0x7147 +0xF9C9 0x8AF1 +0xF9CA 0x8F1D +0xF9CB 0x9EBE +0xF9CC 0x4F11 +0xF9CD 0x643A +0xF9CE 0x70CB +0xF9CF 0x7566 +0xF9D0 0x8667 +0xF9D1 0x6064 +0xF9D2 0x8B4E +0xF9D3 0x9DF8 +0xF9D4 0x5147 +0xF9D5 0x51F6 +0xF9D6 0x5308 +0xF9D7 0x6D36 +0xF9D8 0x80F8 +0xF9D9 0x9ED1 +0xF9DA 0x6615 +0xF9DB 0x6B23 +0xF9DC 0x7098 +0xF9DD 0x75D5 +0xF9DE 0x5403 +0xF9DF 0x5C79 +0xF9E0 0x7D07 +0xF9E1 0x8A16 +0xF9E2 0x6B20 +0xF9E3 0x6B3D +0xF9E4 0x6B46 +0xF9E5 0x5438 +0xF9E6 0x6070 +0xF9E7 0x6D3D +0xF9E8 0x7FD5 +0xF9E9 0x8208 +0xF9EA 0x50D6 +0xF9EB 0x51DE +0xF9EC 0x559C +0xF9ED 0x566B +0xF9EE 0x56CD +0xF9EF 0x59EC +0xF9F0 0x5B09 +0xF9F1 0x5E0C +0xF9F2 0x6199 +0xF9F3 0x6198 +0xF9F4 0x6231 +0xF9F5 0x665E +0xF9F6 0x66E6 +0xF9F7 0x7199 +0xF9F8 0x71B9 +0xF9F9 0x71BA +0xF9FA 0x72A7 +0xF9FB 0x79A7 +0xF9FC 0x7A00 +0xF9FD 0x7FB2 +0xF9FE 0x8A70 diff --git a/3rdPartner/libiconv/tests/KOI8-R.TXT b/3rdPartner/libiconv/tests/KOI8-R.TXT new file mode 100644 index 0000000..cf078ea --- /dev/null +++ b/3rdPartner/libiconv/tests/KOI8-R.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x2500 +0x81 0x2502 +0x82 0x250C +0x83 0x2510 +0x84 0x2514 +0x85 0x2518 +0x86 0x251C +0x87 0x2524 +0x88 0x252C +0x89 0x2534 +0x8A 0x253C +0x8B 0x2580 +0x8C 0x2584 +0x8D 0x2588 +0x8E 0x258C +0x8F 0x2590 +0x90 0x2591 +0x91 0x2592 +0x92 0x2593 +0x93 0x2320 +0x94 0x25A0 +0x95 0x2219 +0x96 0x221A +0x97 0x2248 +0x98 0x2264 +0x99 0x2265 +0x9A 0x00A0 +0x9B 0x2321 +0x9C 0x00B0 +0x9D 0x00B2 +0x9E 0x00B7 +0x9F 0x00F7 +0xA0 0x2550 +0xA1 0x2551 +0xA2 0x2552 +0xA3 0x0451 +0xA4 0x2553 +0xA5 0x2554 +0xA6 0x2555 +0xA7 0x2556 +0xA8 0x2557 +0xA9 0x2558 +0xAA 0x2559 +0xAB 0x255A +0xAC 0x255B +0xAD 0x255C +0xAE 0x255D +0xAF 0x255E +0xB0 0x255F +0xB1 0x2560 +0xB2 0x2561 +0xB3 0x0401 +0xB4 0x2562 +0xB5 0x2563 +0xB6 0x2564 +0xB7 0x2565 +0xB8 0x2566 +0xB9 0x2567 +0xBA 0x2568 +0xBB 0x2569 +0xBC 0x256A +0xBD 0x256B +0xBE 0x256C +0xBF 0x00A9 +0xC0 0x044E +0xC1 0x0430 +0xC2 0x0431 +0xC3 0x0446 +0xC4 0x0434 +0xC5 0x0435 +0xC6 0x0444 +0xC7 0x0433 +0xC8 0x0445 +0xC9 0x0438 +0xCA 0x0439 +0xCB 0x043A +0xCC 0x043B +0xCD 0x043C +0xCE 0x043D +0xCF 0x043E +0xD0 0x043F +0xD1 0x044F +0xD2 0x0440 +0xD3 0x0441 +0xD4 0x0442 +0xD5 0x0443 +0xD6 0x0436 +0xD7 0x0432 +0xD8 0x044C +0xD9 0x044B +0xDA 0x0437 +0xDB 0x0448 +0xDC 0x044D +0xDD 0x0449 +0xDE 0x0447 +0xDF 0x044A +0xE0 0x042E +0xE1 0x0410 +0xE2 0x0411 +0xE3 0x0426 +0xE4 0x0414 +0xE5 0x0415 +0xE6 0x0424 +0xE7 0x0413 +0xE8 0x0425 +0xE9 0x0418 +0xEA 0x0419 +0xEB 0x041A +0xEC 0x041B +0xED 0x041C +0xEE 0x041D +0xEF 0x041E +0xF0 0x041F +0xF1 0x042F +0xF2 0x0420 +0xF3 0x0421 +0xF4 0x0422 +0xF5 0x0423 +0xF6 0x0416 +0xF7 0x0412 +0xF8 0x042C +0xF9 0x042B +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x042A diff --git a/3rdPartner/libiconv/tests/KOI8-RU.TXT b/3rdPartner/libiconv/tests/KOI8-RU.TXT new file mode 100644 index 0000000..7faf225 --- /dev/null +++ b/3rdPartner/libiconv/tests/KOI8-RU.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x2500 +0x81 0x2502 +0x82 0x250C +0x83 0x2510 +0x84 0x2514 +0x85 0x2518 +0x86 0x251C +0x87 0x2524 +0x88 0x252C +0x89 0x2534 +0x8A 0x253C +0x8B 0x2580 +0x8C 0x2584 +0x8D 0x2588 +0x8E 0x258C +0x8F 0x2590 +0x90 0x2591 +0x91 0x2592 +0x92 0x2593 +0x93 0x2320 +0x94 0x25A0 +0x95 0x2219 +0x96 0x221A +0x97 0x2248 +0x98 0x2264 +0x99 0x2265 +0x9A 0x00A0 +0x9B 0x2321 +0x9C 0x00B0 +0x9D 0x00B2 +0x9E 0x00B7 +0x9F 0x00F7 +0xA0 0x2550 +0xA1 0x2551 +0xA2 0x2552 +0xA3 0x0451 +0xA4 0x0454 +0xA5 0x2554 +0xA6 0x0456 +0xA7 0x0457 +0xA8 0x2557 +0xA9 0x2558 +0xAA 0x2559 +0xAB 0x255A +0xAC 0x255B +0xAD 0x0491 +0xAE 0x045E +0xAF 0x255E +0xB0 0x255F +0xB1 0x2560 +0xB2 0x2561 +0xB3 0x0401 +0xB4 0x0404 +0xB5 0x2563 +0xB6 0x0406 +0xB7 0x0407 +0xB8 0x2566 +0xB9 0x2567 +0xBA 0x2568 +0xBB 0x2569 +0xBC 0x256A +0xBD 0x0490 +0xBE 0x040E +0xBF 0x00A9 +0xC0 0x044E +0xC1 0x0430 +0xC2 0x0431 +0xC3 0x0446 +0xC4 0x0434 +0xC5 0x0435 +0xC6 0x0444 +0xC7 0x0433 +0xC8 0x0445 +0xC9 0x0438 +0xCA 0x0439 +0xCB 0x043A +0xCC 0x043B +0xCD 0x043C +0xCE 0x043D +0xCF 0x043E +0xD0 0x043F +0xD1 0x044F +0xD2 0x0440 +0xD3 0x0441 +0xD4 0x0442 +0xD5 0x0443 +0xD6 0x0436 +0xD7 0x0432 +0xD8 0x044C +0xD9 0x044B +0xDA 0x0437 +0xDB 0x0448 +0xDC 0x044D +0xDD 0x0449 +0xDE 0x0447 +0xDF 0x044A +0xE0 0x042E +0xE1 0x0410 +0xE2 0x0411 +0xE3 0x0426 +0xE4 0x0414 +0xE5 0x0415 +0xE6 0x0424 +0xE7 0x0413 +0xE8 0x0425 +0xE9 0x0418 +0xEA 0x0419 +0xEB 0x041A +0xEC 0x041B +0xED 0x041C +0xEE 0x041D +0xEF 0x041E +0xF0 0x041F +0xF1 0x042F +0xF2 0x0420 +0xF3 0x0421 +0xF4 0x0422 +0xF5 0x0423 +0xF6 0x0416 +0xF7 0x0412 +0xF8 0x042C +0xF9 0x042B +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x042A diff --git a/3rdPartner/libiconv/tests/KOI8-T.TXT b/3rdPartner/libiconv/tests/KOI8-T.TXT new file mode 100644 index 0000000..e2ca5e1 --- /dev/null +++ b/3rdPartner/libiconv/tests/KOI8-T.TXT @@ -0,0 +1,237 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x049B +0x81 0x0493 +0x82 0x201A +0x83 0x0492 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x89 0x2030 +0x8A 0x04B3 +0x8B 0x2039 +0x8C 0x04B2 +0x8D 0x04B7 +0x8E 0x04B6 +0x90 0x049A +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9B 0x203A +0xA1 0x04EF +0xA2 0x04EE +0xA3 0x0451 +0xA4 0x00A4 +0xA5 0x04E3 +0xA6 0x00A6 +0xA7 0x00A7 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x0401 +0xB5 0x04E2 +0xB6 0x00B6 +0xB7 0x00B7 +0xB9 0x2116 +0xBB 0x00BB +0xBF 0x00A9 +0xC0 0x044E +0xC1 0x0430 +0xC2 0x0431 +0xC3 0x0446 +0xC4 0x0434 +0xC5 0x0435 +0xC6 0x0444 +0xC7 0x0433 +0xC8 0x0445 +0xC9 0x0438 +0xCA 0x0439 +0xCB 0x043A +0xCC 0x043B +0xCD 0x043C +0xCE 0x043D +0xCF 0x043E +0xD0 0x043F +0xD1 0x044F +0xD2 0x0440 +0xD3 0x0441 +0xD4 0x0442 +0xD5 0x0443 +0xD6 0x0436 +0xD7 0x0432 +0xD8 0x044C +0xD9 0x044B +0xDA 0x0437 +0xDB 0x0448 +0xDC 0x044D +0xDD 0x0449 +0xDE 0x0447 +0xDF 0x044A +0xE0 0x042E +0xE1 0x0410 +0xE2 0x0411 +0xE3 0x0426 +0xE4 0x0414 +0xE5 0x0415 +0xE6 0x0424 +0xE7 0x0413 +0xE8 0x0425 +0xE9 0x0418 +0xEA 0x0419 +0xEB 0x041A +0xEC 0x041B +0xED 0x041C +0xEE 0x041D +0xEF 0x041E +0xF0 0x041F +0xF1 0x042F +0xF2 0x0420 +0xF3 0x0421 +0xF4 0x0422 +0xF5 0x0423 +0xF6 0x0416 +0xF7 0x0412 +0xF8 0x042C +0xF9 0x042B +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x042A diff --git a/3rdPartner/libiconv/tests/KOI8-U.TXT b/3rdPartner/libiconv/tests/KOI8-U.TXT new file mode 100644 index 0000000..9b78cc4 --- /dev/null +++ b/3rdPartner/libiconv/tests/KOI8-U.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x2500 +0x81 0x2502 +0x82 0x250C +0x83 0x2510 +0x84 0x2514 +0x85 0x2518 +0x86 0x251C +0x87 0x2524 +0x88 0x252C +0x89 0x2534 +0x8A 0x253C +0x8B 0x2580 +0x8C 0x2584 +0x8D 0x2588 +0x8E 0x258C +0x8F 0x2590 +0x90 0x2591 +0x91 0x2592 +0x92 0x2593 +0x93 0x2320 +0x94 0x25A0 +0x95 0x2219 +0x96 0x221A +0x97 0x2248 +0x98 0x2264 +0x99 0x2265 +0x9A 0x00A0 +0x9B 0x2321 +0x9C 0x00B0 +0x9D 0x00B2 +0x9E 0x00B7 +0x9F 0x00F7 +0xA0 0x2550 +0xA1 0x2551 +0xA2 0x2552 +0xA3 0x0451 +0xA4 0x0454 +0xA5 0x2554 +0xA6 0x0456 +0xA7 0x0457 +0xA8 0x2557 +0xA9 0x2558 +0xAA 0x2559 +0xAB 0x255A +0xAC 0x255B +0xAD 0x0491 +0xAE 0x255D +0xAF 0x255E +0xB0 0x255F +0xB1 0x2560 +0xB2 0x2561 +0xB3 0x0401 +0xB4 0x0404 +0xB5 0x2563 +0xB6 0x0406 +0xB7 0x0407 +0xB8 0x2566 +0xB9 0x2567 +0xBA 0x2568 +0xBB 0x2569 +0xBC 0x256A +0xBD 0x0490 +0xBE 0x256C +0xBF 0x00A9 +0xC0 0x044E +0xC1 0x0430 +0xC2 0x0431 +0xC3 0x0446 +0xC4 0x0434 +0xC5 0x0435 +0xC6 0x0444 +0xC7 0x0433 +0xC8 0x0445 +0xC9 0x0438 +0xCA 0x0439 +0xCB 0x043A +0xCC 0x043B +0xCD 0x043C +0xCE 0x043D +0xCF 0x043E +0xD0 0x043F +0xD1 0x044F +0xD2 0x0440 +0xD3 0x0441 +0xD4 0x0442 +0xD5 0x0443 +0xD6 0x0436 +0xD7 0x0432 +0xD8 0x044C +0xD9 0x044B +0xDA 0x0437 +0xDB 0x0448 +0xDC 0x044D +0xDD 0x0449 +0xDE 0x0447 +0xDF 0x044A +0xE0 0x042E +0xE1 0x0410 +0xE2 0x0411 +0xE3 0x0426 +0xE4 0x0414 +0xE5 0x0415 +0xE6 0x0424 +0xE7 0x0413 +0xE8 0x0425 +0xE9 0x0418 +0xEA 0x0419 +0xEB 0x041A +0xEC 0x041B +0xED 0x041C +0xEE 0x041D +0xEF 0x041E +0xF0 0x041F +0xF1 0x042F +0xF2 0x0420 +0xF3 0x0421 +0xF4 0x0422 +0xF5 0x0423 +0xF6 0x0416 +0xF7 0x0412 +0xF8 0x042C +0xF9 0x042B +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x042A diff --git a/3rdPartner/libiconv/tests/MacArabic.TXT b/3rdPartner/libiconv/tests/MacArabic.TXT new file mode 100644 index 0000000..28778d7 --- /dev/null +++ b/3rdPartner/libiconv/tests/MacArabic.TXT @@ -0,0 +1,230 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00A0 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x06BA +0x8C 0x00AB +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x2026 +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00BB +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F7 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA5 0x066A +0xAC 0x060C +0xB0 0x0660 +0xB1 0x0661 +0xB2 0x0662 +0xB3 0x0663 +0xB4 0x0664 +0xB5 0x0665 +0xB6 0x0666 +0xB7 0x0667 +0xB8 0x0668 +0xB9 0x0669 +0xBB 0x061B +0xBF 0x061F +0xC0 0x066D +0xC1 0x0621 +0xC2 0x0622 +0xC3 0x0623 +0xC4 0x0624 +0xC5 0x0625 +0xC6 0x0626 +0xC7 0x0627 +0xC8 0x0628 +0xC9 0x0629 +0xCA 0x062A +0xCB 0x062B +0xCC 0x062C +0xCD 0x062D +0xCE 0x062E +0xCF 0x062F +0xD0 0x0630 +0xD1 0x0631 +0xD2 0x0632 +0xD3 0x0633 +0xD4 0x0634 +0xD5 0x0635 +0xD6 0x0636 +0xD7 0x0637 +0xD8 0x0638 +0xD9 0x0639 +0xDA 0x063A +0xE0 0x0640 +0xE1 0x0641 +0xE2 0x0642 +0xE3 0x0643 +0xE4 0x0644 +0xE5 0x0645 +0xE6 0x0646 +0xE7 0x0647 +0xE8 0x0648 +0xE9 0x0649 +0xEA 0x064A +0xEB 0x064B +0xEC 0x064C +0xED 0x064D +0xEE 0x064E +0xEF 0x064F +0xF0 0x0650 +0xF1 0x0651 +0xF2 0x0652 +0xF3 0x067E +0xF4 0x0679 +0xF5 0x0686 +0xF6 0x06D5 +0xF7 0x06A4 +0xF8 0x06AF +0xF9 0x0688 +0xFA 0x0691 +0xFE 0x0698 +0xFF 0x06D2 diff --git a/3rdPartner/libiconv/tests/MacCentralEurope.TXT b/3rdPartner/libiconv/tests/MacCentralEurope.TXT new file mode 100644 index 0000000..da4210a --- /dev/null +++ b/3rdPartner/libiconv/tests/MacCentralEurope.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x0100 +0x82 0x0101 +0x83 0x00C9 +0x84 0x0104 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x0105 +0x89 0x010C +0x8A 0x00E4 +0x8B 0x010D +0x8C 0x0106 +0x8D 0x0107 +0x8E 0x00E9 +0x8F 0x0179 +0x90 0x017A +0x91 0x010E +0x92 0x00ED +0x93 0x010F +0x94 0x0112 +0x95 0x0113 +0x96 0x0116 +0x97 0x00F3 +0x98 0x0117 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x011A +0x9E 0x011B +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x0118 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x0119 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x0123 +0xAF 0x012E +0xB0 0x012F +0xB1 0x012A +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x012B +0xB5 0x0136 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x0142 +0xB9 0x013B +0xBA 0x013C +0xBB 0x013D +0xBC 0x013E +0xBD 0x0139 +0xBE 0x013A +0xBF 0x0145 +0xC0 0x0146 +0xC1 0x0143 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0144 +0xC5 0x0147 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x0148 +0xCC 0x0150 +0xCD 0x00D5 +0xCE 0x0151 +0xCF 0x014C +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD8 0x014D +0xD9 0x0154 +0xDA 0x0155 +0xDB 0x0158 +0xDC 0x2039 +0xDD 0x203A +0xDE 0x0159 +0xDF 0x0156 +0xE0 0x0157 +0xE1 0x0160 +0xE2 0x201A +0xE3 0x201E +0xE4 0x0161 +0xE5 0x015A +0xE6 0x015B +0xE7 0x00C1 +0xE8 0x0164 +0xE9 0x0165 +0xEA 0x00CD +0xEB 0x017D +0xEC 0x017E +0xED 0x016A +0xEE 0x00D3 +0xEF 0x00D4 +0xF0 0x016B +0xF1 0x016E +0xF2 0x00DA +0xF3 0x016F +0xF4 0x0170 +0xF5 0x0171 +0xF6 0x0172 +0xF7 0x0173 +0xF8 0x00DD +0xF9 0x00FD +0xFA 0x0137 +0xFB 0x017B +0xFC 0x0141 +0xFD 0x017C +0xFE 0x0122 +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacCroatian.TXT b/3rdPartner/libiconv/tests/MacCroatian.TXT new file mode 100644 index 0000000..6de534b --- /dev/null +++ b/3rdPartner/libiconv/tests/MacCroatian.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00C5 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x0160 +0xAA 0x2122 +0xAB 0x00B4 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x017D +0xAF 0x00D8 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x2206 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x220F +0xB9 0x0161 +0xBA 0x222B +0xBB 0x00AA +0xBC 0x00BA +0xBD 0x2126 +0xBE 0x017E +0xBF 0x00F8 +0xC0 0x00BF +0xC1 0x00A1 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x0106 +0xC7 0x00AB +0xC8 0x010C +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x00C0 +0xCC 0x00C3 +0xCD 0x00D5 +0xCE 0x0152 +0xCF 0x0153 +0xD0 0x0110 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD9 0x00A9 +0xDA 0x2044 +0xDB 0x00A4 +0xDC 0x2039 +0xDD 0x203A +0xDE 0x00C6 +0xDF 0x00BB +0xE0 0x2013 +0xE1 0x00B7 +0xE2 0x201A +0xE3 0x201E +0xE4 0x2030 +0xE5 0x00C2 +0xE6 0x0107 +0xE7 0x00C1 +0xE8 0x010D +0xE9 0x00C8 +0xEA 0x00CD +0xEB 0x00CE +0xEC 0x00CF +0xED 0x00CC +0xEE 0x00D3 +0xEF 0x00D4 +0xF0 0x0111 +0xF1 0x00D2 +0xF2 0x00DA +0xF3 0x00DB +0xF4 0x00D9 +0xF5 0x0131 +0xF6 0x02C6 +0xF7 0x02DC +0xF8 0x00AF +0xF9 0x03C0 +0xFA 0x00CB +0xFB 0x02DA +0xFC 0x00B8 +0xFD 0x00CA +0xFE 0x00E6 +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacCyrillic.TXT b/3rdPartner/libiconv/tests/MacCyrillic.TXT new file mode 100644 index 0000000..8308d8f --- /dev/null +++ b/3rdPartner/libiconv/tests/MacCyrillic.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0410 +0x81 0x0411 +0x82 0x0412 +0x83 0x0413 +0x84 0x0414 +0x85 0x0415 +0x86 0x0416 +0x87 0x0417 +0x88 0x0418 +0x89 0x0419 +0x8A 0x041A +0x8B 0x041B +0x8C 0x041C +0x8D 0x041D +0x8E 0x041E +0x8F 0x041F +0x90 0x0420 +0x91 0x0421 +0x92 0x0422 +0x93 0x0423 +0x94 0x0424 +0x95 0x0425 +0x96 0x0426 +0x97 0x0427 +0x98 0x0428 +0x99 0x0429 +0x9A 0x042A +0x9B 0x042B +0x9C 0x042C +0x9D 0x042D +0x9E 0x042E +0x9F 0x042F +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x0406 +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x0402 +0xAC 0x0452 +0xAD 0x2260 +0xAE 0x0403 +0xAF 0x0453 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x0456 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x0408 +0xB8 0x0404 +0xB9 0x0454 +0xBA 0x0407 +0xBB 0x0457 +0xBC 0x0409 +0xBD 0x0459 +0xBE 0x040A +0xBF 0x045A +0xC0 0x0458 +0xC1 0x0405 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x040B +0xCC 0x045B +0xCD 0x040C +0xCE 0x045C +0xCF 0x0455 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x201E +0xD8 0x040E +0xD9 0x045E +0xDA 0x040F +0xDB 0x045F +0xDC 0x2116 +0xDD 0x0401 +0xDE 0x0451 +0xDF 0x044F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x00A4 diff --git a/3rdPartner/libiconv/tests/MacGreek.TXT b/3rdPartner/libiconv/tests/MacGreek.TXT new file mode 100644 index 0000000..e0d4e0a --- /dev/null +++ b/3rdPartner/libiconv/tests/MacGreek.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00B9 +0x82 0x00B2 +0x83 0x00C9 +0x84 0x00B3 +0x85 0x00D6 +0x86 0x00DC +0x87 0x0385 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x0384 +0x8C 0x00A8 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00A3 +0x93 0x2122 +0x94 0x00EE +0x95 0x00EF +0x96 0x2022 +0x97 0x00BD +0x98 0x2030 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00A6 +0x9C 0x00AD +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x0393 +0xA2 0x0394 +0xA3 0x0398 +0xA4 0x039B +0xA5 0x039E +0xA6 0x03A0 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x03A3 +0xAB 0x03AA +0xAC 0x00A7 +0xAD 0x2260 +0xAE 0x00B0 +0xAF 0x0387 +0xB0 0x0391 +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x00A5 +0xB5 0x0392 +0xB6 0x0395 +0xB7 0x0396 +0xB8 0x0397 +0xB9 0x0399 +0xBA 0x039A +0xBB 0x039C +0xBC 0x03A6 +0xBD 0x03AB +0xBE 0x03A8 +0xBF 0x03A9 +0xC0 0x03AC +0xC1 0x039D +0xC2 0x00AC +0xC3 0x039F +0xC4 0x03A1 +0xC5 0x2248 +0xC6 0x03A4 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x03A5 +0xCC 0x03A7 +0xCD 0x0386 +0xCE 0x0388 +0xCF 0x0153 +0xD0 0x2013 +0xD1 0x2015 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x0389 +0xD8 0x038A +0xD9 0x038C +0xDA 0x038E +0xDB 0x03AD +0xDC 0x03AE +0xDD 0x03AF +0xDE 0x03CC +0xDF 0x038F +0xE0 0x03CD +0xE1 0x03B1 +0xE2 0x03B2 +0xE3 0x03C8 +0xE4 0x03B4 +0xE5 0x03B5 +0xE6 0x03C6 +0xE7 0x03B3 +0xE8 0x03B7 +0xE9 0x03B9 +0xEA 0x03BE +0xEB 0x03BA +0xEC 0x03BB +0xED 0x03BC +0xEE 0x03BD +0xEF 0x03BF +0xF0 0x03C0 +0xF1 0x03CE +0xF2 0x03C1 +0xF3 0x03C3 +0xF4 0x03C4 +0xF5 0x03B8 +0xF6 0x03C9 +0xF7 0x03C2 +0xF8 0x03C7 +0xF9 0x03C5 +0xFA 0x03B6 +0xFB 0x03CA +0xFC 0x03CB +0xFD 0x0390 +0xFE 0x03B0 diff --git a/3rdPartner/libiconv/tests/MacHebrew.TXT b/3rdPartner/libiconv/tests/MacHebrew.TXT new file mode 100644 index 0000000..4fe605d --- /dev/null +++ b/3rdPartner/libiconv/tests/MacHebrew.TXT @@ -0,0 +1,214 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0xFB1F +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA6 0x20AA +0xC1 0x201E +0xC6 0x05BC +0xC7 0xFB4B +0xC8 0xFB35 +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x05B8 +0xCC 0x05B7 +0xCD 0x05B5 +0xCE 0x05B6 +0xCF 0x05B4 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0xFB2A +0xD7 0xFB2B +0xD8 0x05BF +0xD9 0x05B0 +0xDA 0x05B2 +0xDB 0x05B1 +0xDC 0x05BB +0xDD 0x05B9 +0xDF 0x05B3 +0xE0 0x05D0 +0xE1 0x05D1 +0xE2 0x05D2 +0xE3 0x05D3 +0xE4 0x05D4 +0xE5 0x05D5 +0xE6 0x05D6 +0xE7 0x05D7 +0xE8 0x05D8 +0xE9 0x05D9 +0xEA 0x05DA +0xEB 0x05DB +0xEC 0x05DC +0xED 0x05DD +0xEE 0x05DE +0xEF 0x05DF +0xF0 0x05E0 +0xF1 0x05E1 +0xF2 0x05E2 +0xF3 0x05E3 +0xF4 0x05E4 +0xF5 0x05E5 +0xF6 0x05E6 +0xF7 0x05E7 +0xF8 0x05E8 +0xF9 0x05E9 +0xFA 0x05EA diff --git a/3rdPartner/libiconv/tests/MacIceland.TXT b/3rdPartner/libiconv/tests/MacIceland.TXT new file mode 100644 index 0000000..c392daf --- /dev/null +++ b/3rdPartner/libiconv/tests/MacIceland.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00C5 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x00DD +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x00B4 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x00C6 +0xAF 0x00D8 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x00A5 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x220F +0xB9 0x03C0 +0xBA 0x222B +0xBB 0x00AA +0xBC 0x00BA +0xBD 0x2126 +0xBE 0x00E6 +0xBF 0x00F8 +0xC0 0x00BF +0xC1 0x00A1 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x00C0 +0xCC 0x00C3 +0xCD 0x00D5 +0xCE 0x0152 +0xCF 0x0153 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD8 0x00FF +0xD9 0x0178 +0xDA 0x2044 +0xDB 0x00A4 +0xDC 0x00D0 +0xDD 0x00F0 +0xDE 0x00DE +0xDF 0x00FE +0xE0 0x00FD +0xE1 0x00B7 +0xE2 0x201A +0xE3 0x201E +0xE4 0x2030 +0xE5 0x00C2 +0xE6 0x00CA +0xE7 0x00C1 +0xE8 0x00CB +0xE9 0x00C8 +0xEA 0x00CD +0xEB 0x00CE +0xEC 0x00CF +0xED 0x00CC +0xEE 0x00D3 +0xEF 0x00D4 +0xF1 0x00D2 +0xF2 0x00DA +0xF3 0x00DB +0xF4 0x00D9 +0xF5 0x0131 +0xF6 0x02C6 +0xF7 0x02DC +0xF8 0x00AF +0xF9 0x02D8 +0xFA 0x02D9 +0xFB 0x02DA +0xFC 0x00B8 +0xFD 0x02DD +0xFE 0x02DB +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacRoman.TXT b/3rdPartner/libiconv/tests/MacRoman.TXT new file mode 100644 index 0000000..0ba66ff --- /dev/null +++ b/3rdPartner/libiconv/tests/MacRoman.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00C5 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x00B4 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x00C6 +0xAF 0x00D8 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x00A5 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x220F +0xB9 0x03C0 +0xBA 0x222B +0xBB 0x00AA +0xBC 0x00BA +0xBD 0x2126 +0xBE 0x00E6 +0xBF 0x00F8 +0xC0 0x00BF +0xC1 0x00A1 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x00C0 +0xCC 0x00C3 +0xCD 0x00D5 +0xCE 0x0152 +0xCF 0x0153 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD8 0x00FF +0xD9 0x0178 +0xDA 0x2044 +0xDB 0x00A4 +0xDC 0x2039 +0xDD 0x203A +0xDE 0xFB01 +0xDF 0xFB02 +0xE0 0x2021 +0xE1 0x00B7 +0xE2 0x201A +0xE3 0x201E +0xE4 0x2030 +0xE5 0x00C2 +0xE6 0x00CA +0xE7 0x00C1 +0xE8 0x00CB +0xE9 0x00C8 +0xEA 0x00CD +0xEB 0x00CE +0xEC 0x00CF +0xED 0x00CC +0xEE 0x00D3 +0xEF 0x00D4 +0xF1 0x00D2 +0xF2 0x00DA +0xF3 0x00DB +0xF4 0x00D9 +0xF5 0x0131 +0xF6 0x02C6 +0xF7 0x02DC +0xF8 0x00AF +0xF9 0x02D8 +0xFA 0x02D9 +0xFB 0x02DA +0xFC 0x00B8 +0xFD 0x02DD +0xFE 0x02DB +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacRomania.TXT b/3rdPartner/libiconv/tests/MacRomania.TXT new file mode 100644 index 0000000..6f9afdf --- /dev/null +++ b/3rdPartner/libiconv/tests/MacRomania.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00C5 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x00B4 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x0102 +0xAF 0x015E +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x00A5 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x220F +0xB9 0x03C0 +0xBA 0x222B +0xBB 0x00AA +0xBC 0x00BA +0xBD 0x2126 +0xBE 0x0103 +0xBF 0x015F +0xC0 0x00BF +0xC1 0x00A1 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x00C0 +0xCC 0x00C3 +0xCD 0x00D5 +0xCE 0x0152 +0xCF 0x0153 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD8 0x00FF +0xD9 0x0178 +0xDA 0x2044 +0xDB 0x00A4 +0xDC 0x2039 +0xDD 0x203A +0xDE 0x0162 +0xDF 0x0163 +0xE0 0x2021 +0xE1 0x00B7 +0xE2 0x201A +0xE3 0x201E +0xE4 0x2030 +0xE5 0x00C2 +0xE6 0x00CA +0xE7 0x00C1 +0xE8 0x00CB +0xE9 0x00C8 +0xEA 0x00CD +0xEB 0x00CE +0xEC 0x00CF +0xED 0x00CC +0xEE 0x00D3 +0xEF 0x00D4 +0xF1 0x00D2 +0xF2 0x00DA +0xF3 0x00DB +0xF4 0x00D9 +0xF5 0x0131 +0xF6 0x02C6 +0xF7 0x02DC +0xF8 0x00AF +0xF9 0x02D8 +0xFA 0x02D9 +0xFB 0x02DA +0xFC 0x00B8 +0xFD 0x02DD +0xFE 0x02DB +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacThai.TXT b/3rdPartner/libiconv/tests/MacThai.TXT new file mode 100644 index 0000000..00c1e1c --- /dev/null +++ b/3rdPartner/libiconv/tests/MacThai.TXT @@ -0,0 +1,250 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00AB +0x81 0x00BB +0x82 0x2026 +0x83 0xF88C +0x84 0xF88F +0x85 0xF892 +0x86 0xF895 +0x87 0xF898 +0x88 0xF88B +0x89 0xF88E +0x8A 0xF891 +0x8B 0xF894 +0x8C 0xF897 +0x8D 0x201C +0x8E 0x201D +0x8F 0xF899 +0x91 0x2022 +0x92 0xF884 +0x93 0xF889 +0x94 0xF885 +0x95 0xF886 +0x96 0xF887 +0x97 0xF888 +0x98 0xF88A +0x99 0xF88D +0x9A 0xF890 +0x9B 0xF893 +0x9C 0xF896 +0x9D 0x2018 +0x9E 0x2019 +0xA0 0x00A0 +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDB 0xFEFF +0xDC 0x200B +0xDD 0x2013 +0xDE 0x2014 +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x2122 +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x00AE +0xFB 0x00A9 diff --git a/3rdPartner/libiconv/tests/MacTurkish.TXT b/3rdPartner/libiconv/tests/MacTurkish.TXT new file mode 100644 index 0000000..18fab1f --- /dev/null +++ b/3rdPartner/libiconv/tests/MacTurkish.TXT @@ -0,0 +1,254 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C4 +0x81 0x00C5 +0x82 0x00C7 +0x83 0x00C9 +0x84 0x00D1 +0x85 0x00D6 +0x86 0x00DC +0x87 0x00E1 +0x88 0x00E0 +0x89 0x00E2 +0x8A 0x00E4 +0x8B 0x00E3 +0x8C 0x00E5 +0x8D 0x00E7 +0x8E 0x00E9 +0x8F 0x00E8 +0x90 0x00EA +0x91 0x00EB +0x92 0x00ED +0x93 0x00EC +0x94 0x00EE +0x95 0x00EF +0x96 0x00F1 +0x97 0x00F3 +0x98 0x00F2 +0x99 0x00F4 +0x9A 0x00F6 +0x9B 0x00F5 +0x9C 0x00FA +0x9D 0x00F9 +0x9E 0x00FB +0x9F 0x00FC +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x00DF +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x00B4 +0xAC 0x00A8 +0xAD 0x2260 +0xAE 0x00C6 +0xAF 0x00D8 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x00A5 +0xB5 0x00B5 +0xB6 0x2202 +0xB7 0x2211 +0xB8 0x220F +0xB9 0x03C0 +0xBA 0x222B +0xBB 0x00AA +0xBC 0x00BA +0xBD 0x2126 +0xBE 0x00E6 +0xBF 0x00F8 +0xC0 0x00BF +0xC1 0x00A1 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x00C0 +0xCC 0x00C3 +0xCD 0x00D5 +0xCE 0x0152 +0xCF 0x0153 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x25CA +0xD8 0x00FF +0xD9 0x0178 +0xDA 0x011E +0xDB 0x011F +0xDC 0x0130 +0xDD 0x0131 +0xDE 0x015E +0xDF 0x015F +0xE0 0x2021 +0xE1 0x00B7 +0xE2 0x201A +0xE3 0x201E +0xE4 0x2030 +0xE5 0x00C2 +0xE6 0x00CA +0xE7 0x00C1 +0xE8 0x00CB +0xE9 0x00C8 +0xEA 0x00CD +0xEB 0x00CE +0xEC 0x00CF +0xED 0x00CC +0xEE 0x00D3 +0xEF 0x00D4 +0xF1 0x00D2 +0xF2 0x00DA +0xF3 0x00DB +0xF4 0x00D9 +0xF6 0x02C6 +0xF7 0x02DC +0xF8 0x00AF +0xF9 0x02D8 +0xFA 0x02D9 +0xFB 0x02DA +0xFC 0x00B8 +0xFD 0x02DD +0xFE 0x02DB +0xFF 0x02C7 diff --git a/3rdPartner/libiconv/tests/MacUkraine.TXT b/3rdPartner/libiconv/tests/MacUkraine.TXT new file mode 100644 index 0000000..17f94d6 --- /dev/null +++ b/3rdPartner/libiconv/tests/MacUkraine.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0410 +0x81 0x0411 +0x82 0x0412 +0x83 0x0413 +0x84 0x0414 +0x85 0x0415 +0x86 0x0416 +0x87 0x0417 +0x88 0x0418 +0x89 0x0419 +0x8A 0x041A +0x8B 0x041B +0x8C 0x041C +0x8D 0x041D +0x8E 0x041E +0x8F 0x041F +0x90 0x0420 +0x91 0x0421 +0x92 0x0422 +0x93 0x0423 +0x94 0x0424 +0x95 0x0425 +0x96 0x0426 +0x97 0x0427 +0x98 0x0428 +0x99 0x0429 +0x9A 0x042A +0x9B 0x042B +0x9C 0x042C +0x9D 0x042D +0x9E 0x042E +0x9F 0x042F +0xA0 0x2020 +0xA1 0x00B0 +0xA2 0x0490 +0xA3 0x00A3 +0xA4 0x00A7 +0xA5 0x2022 +0xA6 0x00B6 +0xA7 0x0406 +0xA8 0x00AE +0xA9 0x00A9 +0xAA 0x2122 +0xAB 0x0402 +0xAC 0x0452 +0xAD 0x2260 +0xAE 0x0403 +0xAF 0x0453 +0xB0 0x221E +0xB1 0x00B1 +0xB2 0x2264 +0xB3 0x2265 +0xB4 0x0456 +0xB5 0x00B5 +0xB6 0x0491 +0xB7 0x0408 +0xB8 0x0404 +0xB9 0x0454 +0xBA 0x0407 +0xBB 0x0457 +0xBC 0x0409 +0xBD 0x0459 +0xBE 0x040A +0xBF 0x045A +0xC0 0x0458 +0xC1 0x0405 +0xC2 0x00AC +0xC3 0x221A +0xC4 0x0192 +0xC5 0x2248 +0xC6 0x2206 +0xC7 0x00AB +0xC8 0x00BB +0xC9 0x2026 +0xCA 0x00A0 +0xCB 0x040B +0xCC 0x045B +0xCD 0x040C +0xCE 0x045C +0xCF 0x0455 +0xD0 0x2013 +0xD1 0x2014 +0xD2 0x201C +0xD3 0x201D +0xD4 0x2018 +0xD5 0x2019 +0xD6 0x00F7 +0xD7 0x201E +0xD8 0x040E +0xD9 0x045E +0xDA 0x040F +0xDB 0x045F +0xDC 0x2116 +0xDD 0x0401 +0xDE 0x0451 +0xDF 0x044F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x00A4 diff --git a/3rdPartner/libiconv/tests/Makefile.in b/3rdPartner/libiconv/tests/Makefile.in new file mode 100644 index 0000000..5d5875f --- /dev/null +++ b/3rdPartner/libiconv/tests/Makefile.in @@ -0,0 +1,531 @@ +# Makefile for libiconv/tests + +#### Start of system configuration section. #### + +# Directories used by "make": +srcdir = @srcdir@ + +# Programs used by "make": +CC = @CC@ +CFLAGS = @CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include -I../srclib -I$(srcdir)/../srclib -I.. +LIBTOOL = @LIBTOOL@ +LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile +LIBTOOL_LINK = $(LIBTOOL) --mode=link +LIBTOOL_INSTALL = $(LIBTOOL) --mode=install +LIBTOOL_UNINSTALL = $(LIBTOOL) --mode=uninstall +RM = rm -f +@SET_MAKE@ + +#### End of system configuration section. #### + +SHELL = @SHELL@ + +# Needed by $(LIBTOOL). +top_builddir = .. + +all : + +check : all table-from table-to ../src/iconv_no_i18n is-native test-shiftseq test-to-wchar + $(SHELL) $(srcdir)/check-stateless $(srcdir) ASCII +# /* General multi-byte encodings */ + $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/genutf8.c ../srclib/libicrt.a -o genutf8 && \ + ./genutf8 > UTF-8.TXT && \ + $(SHELL) $(srcdir)/check-stateless . UTF-8 && \ + $(RM) -r genutf8@EXEEXT@ genutf8.dSYM UTF-8.TXT + $(SHELL) $(srcdir)/check-stateful $(srcdir) UCS-2BE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UCS-2LE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UCS-4BE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UCS-4LE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-16 + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-16BE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-16LE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-32 + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-32BE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-32LE + $(SHELL) $(srcdir)/check-stateful $(srcdir) UTF-7 +# /* 8-bit encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-1 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-2 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-3 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-4 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-5 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-6 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-7 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-8 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-9 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-10 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-11 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-13 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-14 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-15 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-8859-16 + $(SHELL) $(srcdir)/check-stateless $(srcdir) KOI8-R + $(SHELL) $(srcdir)/check-stateless $(srcdir) KOI8-U + $(SHELL) $(srcdir)/check-stateless $(srcdir) KOI8-RU + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1250 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1251 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1252 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1253 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1254 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1255 + $(SHELL) $(srcdir)/check-stateful $(srcdir) CP1255 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1256 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1257 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1258 + $(SHELL) $(srcdir)/check-stateful $(srcdir) CP1258 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP850 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP862 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP866 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1131 + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacRoman + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacCentralEurope + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacIceland + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacCroatian + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacRomania + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacCyrillic + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacUkraine + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacGreek + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacTurkish + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacHebrew + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacArabic + $(SHELL) $(srcdir)/check-stateless $(srcdir) MacThai + $(SHELL) $(srcdir)/check-stateless $(srcdir) HP-ROMAN8 + $(SHELL) $(srcdir)/check-stateless $(srcdir) NEXTSTEP + $(SHELL) $(srcdir)/check-stateless $(srcdir) ARMSCII-8 + $(SHELL) $(srcdir)/check-stateless $(srcdir) Georgian-Academy + $(SHELL) $(srcdir)/check-stateless $(srcdir) Georgian-PS + $(SHELL) $(srcdir)/check-stateless $(srcdir) KOI8-T + $(SHELL) $(srcdir)/check-stateless $(srcdir) PT154 + $(SHELL) $(srcdir)/check-stateless $(srcdir) RK1048 + $(SHELL) $(srcdir)/check-stateless $(srcdir) MuleLao-1 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1133 + $(SHELL) $(srcdir)/check-stateless $(srcdir) TIS-620 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP874 + $(SHELL) $(srcdir)/check-stateless $(srcdir) VISCII + $(SHELL) $(srcdir)/check-stateless $(srcdir) TCVN + $(SHELL) $(srcdir)/check-stateful $(srcdir) TCVN +# /* CJK character sets */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO646-JP + $(SHELL) $(srcdir)/check-stateless $(srcdir) JIS_X0201 +# $(SHELL) $(srcdir)/check-stateless $(srcdir) JIS_X0208 # redundant, see EUC-JP +# $(SHELL) $(srcdir)/check-stateless $(srcdir) JIS_X0212 # redundant, see EUC-JP + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO646-CN +# $(SHELL) $(srcdir)/check-stateless $(srcdir) GB_2312-80 # redundant, see EUC-CN + $(SHELL) $(srcdir)/check-stateless $(srcdir) ISO-IR-165 +# $(SHELL) $(srcdir)/check-stateless $(srcdir) KSC_5601 # redundant, see EUC-KR +# /* CJK encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) EUC-JP + $(SHELL) $(srcdir)/check-stateless $(srcdir) SHIFT_JIS + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP932 + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-JP + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-JP-2 + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-JP-1 + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-JP-MS + $(SHELL) $(srcdir)/check-stateless $(srcdir) EUC-CN + $(SHELL) $(srcdir)/check-stateless $(srcdir) GBK + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP936 + $(CC) $(LDFLAGS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/gengb18030z.c ../srclib/libicrt.a -o gengb18030z && \ + { cat $(srcdir)/GB18030-BMP.TXT ; ./gengb18030z ; } | sort > GB18030.TXT && \ + { test $(srcdir) = . || cp $(srcdir)/GB18030.IRREVERSIBLE.TXT GB18030.IRREVERSIBLE.TXT; } && \ + $(SHELL) $(srcdir)/check-stateless . GB18030 && \ + { test $(srcdir) = . || $(RM) GB18030.IRREVERSIBLE.TXT; } && \ + $(RM) -r gengb18030z@EXEEXT@ gengb18030z.dSYM GB18030.TXT + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-CN + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-CN-EXT + $(SHELL) $(srcdir)/check-stateful $(srcdir) HZ + $(SHELL) $(srcdir)/check-stateless $(srcdir) EUC-TW + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP950 + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:1999 + $(SHELL) $(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:1999 + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2001 + $(SHELL) $(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2001 + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2004 + $(SHELL) $(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2004 + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2008 + $(SHELL) $(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2008 + $(SHELL) $(srcdir)/check-stateless $(srcdir) EUC-KR + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP949 + $(SHELL) $(srcdir)/check-stateless $(srcdir) JOHAB + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-KR +# /* system dependent and extra encodings */ + $(MAKE) check-extra +# /* transliteration */ + $(SHELL) $(srcdir)/check-translit $(srcdir) Quotes UTF-8 ISO-8859-1 + $(SHELL) $(srcdir)/check-translit $(srcdir) Quotes UTF-8 ASCII + $(SHELL) $(srcdir)/check-translit $(srcdir) Translit1 ISO-8859-1 ASCII + $(SHELL) $(srcdir)/check-translitfailure $(srcdir) TranslitFail1 ISO-8859-1 ASCII +# /* substitution */ + $(SHELL) $(srcdir)/check-subst +# /* shift sequence before invalid multibyte character */ + ./test-shiftseq +# /* conversion to wchar_t */ + ./test-to-wchar + +check-extra: check-extra-@USE_EXTRA_ENCODINGS@ +check-extra-no: +check-extra-yes: all table-from table-to ../src/iconv_no_i18n +# /* AIX specific encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP856 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP922 +# $(SHELL) $(srcdir)/check-stateless $(srcdir) CP943 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1046 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1124 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1129 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1161 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1162 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1163 +# /* OSF/1 specific encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) DEC-KANJI + $(SHELL) $(srcdir)/check-stateless $(srcdir) DEC-HANYU +# /* DOS specific encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP437 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP737 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP775 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP852 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP853 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP855 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP857 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP858 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP860 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP861 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP863 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP864 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP865 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP869 + $(SHELL) $(srcdir)/check-stateless $(srcdir) CP1125 +# /* z/OS specific encodings, i.e. EBCDIC encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-037 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-273 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-277 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-278 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-280 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-282 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-284 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-285 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-297 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-423 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-424 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-425 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-500 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-838 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-870 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-871 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-875 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-880 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-905 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-924 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1025 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1026 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1047 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1097 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1112 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1122 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1123 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1130 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1132 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1137 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1140 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1141 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1142 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1143 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1144 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1145 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1146 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1147 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1148 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1149 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1153 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1154 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1155 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1156 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1157 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1158 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1160 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1164 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1165 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-1166 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-4971 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-12712 + $(SHELL) $(srcdir)/check-stateless $(srcdir) IBM-16804 +# /* Extra encodings */ + $(SHELL) $(srcdir)/check-stateless $(srcdir) EUC-JISX0213 + $(SHELL) $(srcdir)/check-stateless $(srcdir) SHIFT_JISX0213 + $(SHELL) $(srcdir)/check-stateful $(srcdir) ISO-2022-JP-3 + $(SHELL) $(srcdir)/check-stateless $(srcdir) BIG5-2003 + $(SHELL) $(srcdir)/check-stateless $(srcdir) TDS565 + $(SHELL) $(srcdir)/check-stateless $(srcdir) ATARIST + $(SHELL) $(srcdir)/check-stateless $(srcdir) RISCOS-LATIN1 + +table-from : table-from.@OBJEXT@ ../lib/libiconv.la + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) table-from.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la -o $@ + +table-from.@OBJEXT@ : $(srcdir)/table-from.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/table-from.c + +table-to : table-to.@OBJEXT@ ../lib/libiconv.la + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) table-to.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la -o $@ + +table-to.@OBJEXT@ : $(srcdir)/table-to.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/table-to.c + +is-native : is-native.@OBJEXT@ + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) is-native.@OBJEXT@ ../srclib/libicrt.a -o $@ + +is-native.@OBJEXT@ : $(srcdir)/is-native.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/is-native.c + +test-shiftseq : test-shiftseq.@OBJEXT@ ../lib/libiconv.la + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) test-shiftseq.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la -o $@ + +test-shiftseq.@OBJEXT@ : $(srcdir)/test-shiftseq.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/test-shiftseq.c + +test-to-wchar : test-to-wchar.@OBJEXT@ ../lib/libiconv.la + $(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) test-to-wchar.@OBJEXT@ ../srclib/libicrt.a ../lib/libiconv.la -o $@ + +test-to-wchar.@OBJEXT@ : $(srcdir)/test-to-wchar.c + $(CC) -c $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $(srcdir)/test-to-wchar.c + +# The following rule is necessary to avoid a toplevel "make -n check" failure. +../lib/libiconv.la : + cd ../lib && $(MAKE) libiconv.la + +mostlyclean : clean + +clean : force + $(RM) *.@OBJEXT@ *.lo table-from table-from@EXEEXT@ table-to table-to@EXEEXT@ is-native is-native@EXEEXT@ test-shiftseq test-shiftseq@EXEEXT@ test-to-wchar test-to-wchar@EXEEXT@ tmp-* genutf8 genutf8@EXEEXT@ UTF-8.TXT gengb18030z gengb18030z@EXEEXT@ GB18030.TXT core *.stackdump + $(RM) -r .libs _libs + +distclean : clean + $(RM) Makefile + +maintainer-clean : distclean + +# List of source files. +SOURCE_FILES = \ + Makefile.in \ + table-from.c table-to.c uniq-u.c \ + check-stateful check-stateful.bat \ + check-stateless check-stateless.bat \ + check-translit check-translit.bat \ + check-translitfailure \ + ASCII.TXT \ + genutf8.c \ + UCS-2BE-snippet UCS-2BE-snippet.UTF-8 \ + UCS-2LE-snippet UCS-2LE-snippet.UTF-8 \ + UCS-4BE-snippet UCS-4BE-snippet.UTF-8 \ + UCS-4LE-snippet UCS-4LE-snippet.UTF-8 \ + UTF-16-snippet UTF-16-snippet.UTF-8 \ + UTF-16BE-snippet UTF-16BE-snippet.UTF-8 \ + UTF-16LE-snippet UTF-16LE-snippet.UTF-8 \ + UTF-32-snippet UTF-32-snippet.UTF-8 \ + UTF-32BE-snippet UTF-32BE-snippet.UTF-8 \ + UTF-32LE-snippet UTF-32LE-snippet.UTF-8 \ + UTF-7-snippet UTF-7-snippet.UTF-8 \ + ISO-8859-1.TXT \ + ISO-8859-2.TXT \ + ISO-8859-3.TXT \ + ISO-8859-4.TXT \ + ISO-8859-5.TXT \ + ISO-8859-6.TXT \ + ISO-8859-7.TXT \ + ISO-8859-8.TXT \ + ISO-8859-9.TXT \ + ISO-8859-10.TXT \ + ISO-8859-11.TXT \ + ISO-8859-13.TXT \ + ISO-8859-14.TXT \ + ISO-8859-15.TXT \ + ISO-8859-16.TXT \ + KOI8-R.TXT \ + KOI8-U.TXT \ + KOI8-RU.TXT \ + CP1250.TXT \ + CP1251.TXT \ + CP1252.TXT \ + CP1253.TXT \ + CP1254.TXT \ + CP1255.TXT CP1255.IRREVERSIBLE.TXT \ + CP1255-snippet CP1255-snippet.UTF-8 \ + CP1256.TXT \ + CP1257.TXT \ + CP1258.TXT CP1258.IRREVERSIBLE.TXT \ + CP1258-snippet CP1258-snippet.UTF-8 \ + CP850.TXT \ + CP862.TXT \ + CP866.TXT \ + CP1131.TXT \ + MacRoman.TXT \ + MacCentralEurope.TXT \ + MacIceland.TXT \ + MacCroatian.TXT \ + MacRomania.TXT \ + MacCyrillic.TXT \ + MacUkraine.TXT \ + MacGreek.TXT \ + MacTurkish.TXT \ + MacHebrew.TXT \ + MacArabic.TXT \ + MacThai.TXT \ + HP-ROMAN8.TXT \ + NEXTSTEP.TXT \ + ARMSCII-8.TXT ARMSCII-8.IRREVERSIBLE.TXT \ + Georgian-Academy.TXT \ + Georgian-PS.TXT \ + KOI8-T.TXT \ + PT154.TXT \ + RK1048.TXT \ + MuleLao-1.TXT \ + CP1133.TXT \ + TIS-620.TXT \ + CP874.TXT \ + VISCII.TXT \ + TCVN.TXT TCVN.IRREVERSIBLE.TXT \ + TCVN-snippet TCVN-snippet.UTF-8 \ + ISO646-JP.TXT \ + JIS_X0201.TXT \ + ISO646-CN.TXT \ + ISO-IR-165.TXT ISO-IR-165.IRREVERSIBLE.TXT \ + EUC-JP.TXT EUC-JP.IRREVERSIBLE.TXT \ + SHIFT_JIS.TXT \ + CP932.TXT CP932.IRREVERSIBLE.TXT \ + ISO-2022-JP-snippet ISO-2022-JP-snippet.UTF-8 \ + ISO-2022-JP-2-snippet ISO-2022-JP-2-snippet.UTF-8 \ + ISO-2022-JP-1-snippet ISO-2022-JP-1-snippet.UTF-8 \ + ISO-2022-JP-MS-snippet ISO-2022-JP-MS-snippet.alt ISO-2022-JP-MS-snippet.UTF-8 \ + EUC-CN.TXT \ + GBK.TXT \ + CP936.TXT \ + gengb18030z.c GB18030-BMP.TXT GB18030.IRREVERSIBLE.TXT \ + ISO-2022-CN-snippet ISO-2022-CN-snippet.UTF-8 \ + ISO-2022-CN-EXT-snippet ISO-2022-CN-EXT-snippet.UTF-8 \ + HZ-snippet HZ-snippet.UTF-8 \ + EUC-TW.TXT EUC-TW.IRREVERSIBLE.TXT \ + BIG5.TXT \ + CP950.TXT CP950.IRREVERSIBLE.TXT \ + BIG5-HKSCS-1999.TXT BIG5-HKSCS-1999.IRREVERSIBLE.TXT \ + BIG5-HKSCS-1999-snippet BIG5-HKSCS-1999-snippet.UTF-8 \ + BIG5-HKSCS-2001.TXT BIG5-HKSCS-2001.IRREVERSIBLE.TXT \ + BIG5-HKSCS-2001-snippet BIG5-HKSCS-2001-snippet.UTF-8 \ + BIG5-HKSCS-2004.TXT BIG5-HKSCS-2004.IRREVERSIBLE.TXT \ + BIG5-HKSCS-2004-snippet BIG5-HKSCS-2004-snippet.UTF-8 \ + BIG5-HKSCS-2008.TXT BIG5-HKSCS-2008.IRREVERSIBLE.TXT \ + BIG5-HKSCS-2008-snippet BIG5-HKSCS-2008-snippet.UTF-8 \ + EUC-KR.TXT \ + CP949.TXT \ + JOHAB.TXT \ + ISO-2022-KR-snippet \ + ISO-2022-KR-snippet.UTF-8 \ + Quotes.UTF-8 Quotes.ISO-8859-1 Quotes.ASCII \ + Translit1.ISO-8859-1 Translit1.ASCII \ + TranslitFail1.ISO-8859-1 \ + is-native.c \ + check-subst \ + test-shiftseq.c \ + test-to-wchar.c \ + CP856.TXT \ + CP922.TXT \ + CP1046.TXT \ + CP1124.TXT \ + CP1129.TXT \ + CP1161.TXT CP1161.IRREVERSIBLE.TXT \ + CP1162.TXT \ + CP1163.TXT CP1163.IRREVERSIBLE.TXT \ + DEC-KANJI.TXT \ + DEC-HANYU.TXT DEC-HANYU.IRREVERSIBLE.TXT \ + CP437.TXT \ + CP737.TXT \ + CP775.TXT \ + CP852.TXT \ + CP853.TXT \ + CP855.TXT \ + CP857.TXT \ + CP858.TXT \ + CP860.TXT \ + CP861.TXT \ + CP863.TXT \ + CP864.TXT \ + CP865.TXT \ + CP869.TXT \ + CP1125.TXT \ + IBM-037.TXT \ + IBM-273.TXT \ + IBM-277.TXT \ + IBM-278.TXT \ + IBM-280.TXT \ + IBM-282.TXT \ + IBM-284.TXT \ + IBM-285.TXT \ + IBM-297.TXT \ + IBM-423.TXT \ + IBM-424.TXT \ + IBM-425.TXT \ + IBM-4971.TXT \ + IBM-500.TXT \ + IBM-838.TXT IBM-838.IRREVERSIBLE.TXT \ + IBM-870.TXT \ + IBM-871.TXT \ + IBM-875.TXT \ + IBM-880.TXT \ + IBM-905.TXT \ + IBM-924.TXT \ + IBM-1025.TXT \ + IBM-1026.TXT \ + IBM-1047.TXT \ + IBM-1097.TXT \ + IBM-1112.TXT \ + IBM-1122.TXT \ + IBM-1123.TXT \ + IBM-1130.TXT \ + IBM-1132.TXT \ + IBM-1137.TXT \ + IBM-1140.TXT \ + IBM-1141.TXT \ + IBM-1142.TXT \ + IBM-1143.TXT \ + IBM-1144.TXT \ + IBM-1145.TXT \ + IBM-1146.TXT \ + IBM-1147.TXT \ + IBM-1148.TXT \ + IBM-1149.TXT \ + IBM-1153.TXT \ + IBM-1154.TXT \ + IBM-1155.TXT \ + IBM-1156.TXT \ + IBM-1157.TXT \ + IBM-1158.TXT \ + IBM-1160.TXT IBM-1160.IRREVERSIBLE.TXT \ + IBM-1164.TXT \ + IBM-1165.TXT \ + IBM-1166.TXT \ + IBM-12712.TXT \ + IBM-16804.TXT \ + EUC-JISX0213.TXT \ + SHIFT_JISX0213.TXT \ + ISO-2022-JP-3-snippet ISO-2022-JP-3-snippet.UTF-8 \ + BIG5-2003.TXT BIG5-2003.IRREVERSIBLE.TXT \ + TDS565.TXT \ + ATARIST.TXT \ + RISCOS-LATIN1.TXT +# List of distributed files imported from other packages. +IMPORTED_FILES = \ + qemu.h +# List of distributed files generated by autotools or Makefile.devel. +GENERATED_FILES = +# List of distributed files generated by "make". +DISTRIBUTED_BUILT_FILES = +# List of distributed files. +DISTFILES = $(SOURCE_FILES) $(IMPORTED_FILES) $(GENERATED_FILES) $(DISTRIBUTED_BUILT_FILES) + +distdir : $(DISTFILES) + for file in $(DISTFILES); do \ + if test -f $$file; then dir='.'; else dir='$(srcdir)'; fi; \ + cp -p "$$dir/$$file" '$(distdir)'/$$file || exit 1; \ + done + +force : diff --git a/3rdPartner/libiconv/tests/MuleLao-1.TXT b/3rdPartner/libiconv/tests/MuleLao-1.TXT new file mode 100644 index 0000000..95eeff5 --- /dev/null +++ b/3rdPartner/libiconv/tests/MuleLao-1.TXT @@ -0,0 +1,226 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0080 +0x81 0x0081 +0x82 0x0082 +0x83 0x0083 +0x84 0x0084 +0x85 0x0085 +0x86 0x0086 +0x87 0x0087 +0x88 0x0088 +0x89 0x0089 +0x8A 0x008A +0x8B 0x008B +0x8C 0x008C +0x8D 0x008D +0x8E 0x008E +0x8F 0x008F +0x90 0x0090 +0x91 0x0091 +0x92 0x0092 +0x93 0x0093 +0x94 0x0094 +0x95 0x0095 +0x96 0x0096 +0x97 0x0097 +0x98 0x0098 +0x99 0x0099 +0x9A 0x009A +0x9B 0x009B +0x9C 0x009C +0x9D 0x009D +0x9E 0x009E +0x9F 0x009F +0xA0 0x00A0 +0xA1 0x0E81 +0xA2 0x0E82 +0xA4 0x0E84 +0xA7 0x0E87 +0xA8 0x0E88 +0xAA 0x0E8A +0xAD 0x0E8D +0xB4 0x0E94 +0xB5 0x0E95 +0xB6 0x0E96 +0xB7 0x0E97 +0xB9 0x0E99 +0xBA 0x0E9A +0xBB 0x0E9B +0xBC 0x0E9C +0xBD 0x0E9D +0xBE 0x0E9E +0xBF 0x0E9F +0xC1 0x0EA1 +0xC2 0x0EA2 +0xC3 0x0EA3 +0xC5 0x0EA5 +0xC7 0x0EA7 +0xCA 0x0EAA +0xCB 0x0EAB +0xCD 0x0EAD +0xCE 0x0EAE +0xCF 0x0EAF +0xD0 0x0EB0 +0xD1 0x0EB1 +0xD2 0x0EB2 +0xD3 0x0EB3 +0xD4 0x0EB4 +0xD5 0x0EB5 +0xD6 0x0EB6 +0xD7 0x0EB7 +0xD8 0x0EB8 +0xD9 0x0EB9 +0xDB 0x0EBB +0xDC 0x0EBC +0xDD 0x0EBD +0xE0 0x0EC0 +0xE1 0x0EC1 +0xE2 0x0EC2 +0xE3 0x0EC3 +0xE4 0x0EC4 +0xE6 0x0EC6 +0xE8 0x0EC8 +0xE9 0x0EC9 +0xEA 0x0ECA +0xEB 0x0ECB +0xEC 0x0ECC +0xED 0x0ECD +0xF0 0x0ED0 +0xF1 0x0ED1 +0xF2 0x0ED2 +0xF3 0x0ED3 +0xF4 0x0ED4 +0xF5 0x0ED5 +0xF6 0x0ED6 +0xF7 0x0ED7 +0xF8 0x0ED8 +0xF9 0x0ED9 +0xFC 0x0EDC +0xFD 0x0EDD diff --git a/3rdPartner/libiconv/tests/NEXTSTEP.TXT b/3rdPartner/libiconv/tests/NEXTSTEP.TXT new file mode 100644 index 0000000..099ed6a --- /dev/null +++ b/3rdPartner/libiconv/tests/NEXTSTEP.TXT @@ -0,0 +1,254 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00A0 +0x81 0x00C0 +0x82 0x00C1 +0x83 0x00C2 +0x84 0x00C3 +0x85 0x00C4 +0x86 0x00C5 +0x87 0x00C7 +0x88 0x00C8 +0x89 0x00C9 +0x8A 0x00CA +0x8B 0x00CB +0x8C 0x00CC +0x8D 0x00CD +0x8E 0x00CE +0x8F 0x00CF +0x90 0x00D0 +0x91 0x00D1 +0x92 0x00D2 +0x93 0x00D3 +0x94 0x00D4 +0x95 0x00D5 +0x96 0x00D6 +0x97 0x00D9 +0x98 0x00DA +0x99 0x00DB +0x9A 0x00DC +0x9B 0x00DD +0x9C 0x00DE +0x9D 0x00B5 +0x9E 0x00D7 +0x9F 0x00F7 +0xA0 0x00A9 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x2044 +0xA5 0x00A5 +0xA6 0x0192 +0xA7 0x00A7 +0xA8 0x00A4 +0xA9 0x2019 +0xAA 0x201C +0xAB 0x00AB +0xAC 0x2039 +0xAD 0x203A +0xAE 0xFB01 +0xAF 0xFB02 +0xB0 0x00AE +0xB1 0x2013 +0xB2 0x2020 +0xB3 0x2021 +0xB4 0x00B7 +0xB5 0x00A6 +0xB6 0x00B6 +0xB7 0x2022 +0xB8 0x201A +0xB9 0x201E +0xBA 0x201D +0xBB 0x00BB +0xBC 0x2026 +0xBD 0x2030 +0xBE 0x00AC +0xBF 0x00BF +0xC0 0x00B9 +0xC1 0x02CB +0xC2 0x00B4 +0xC3 0x02C6 +0xC4 0x02DC +0xC5 0x00AF +0xC6 0x02D8 +0xC7 0x02D9 +0xC8 0x00A8 +0xC9 0x00B2 +0xCA 0x02DA +0xCB 0x00B8 +0xCC 0x00B3 +0xCD 0x02DD +0xCE 0x02DB +0xCF 0x02C7 +0xD0 0x2014 +0xD1 0x00B1 +0xD2 0x00BC +0xD3 0x00BD +0xD4 0x00BE +0xD5 0x00E0 +0xD6 0x00E1 +0xD7 0x00E2 +0xD8 0x00E3 +0xD9 0x00E4 +0xDA 0x00E5 +0xDB 0x00E7 +0xDC 0x00E8 +0xDD 0x00E9 +0xDE 0x00EA +0xDF 0x00EB +0xE0 0x00EC +0xE1 0x00C6 +0xE2 0x00ED +0xE3 0x00AA +0xE4 0x00EE +0xE5 0x00EF +0xE6 0x00F0 +0xE7 0x00F1 +0xE8 0x0141 +0xE9 0x00D8 +0xEA 0x0152 +0xEB 0x00BA +0xEC 0x00F2 +0xED 0x00F3 +0xEE 0x00F4 +0xEF 0x00F5 +0xF0 0x00F6 +0xF1 0x00E6 +0xF2 0x00F9 +0xF3 0x00FA +0xF4 0x00FB +0xF5 0x0131 +0xF6 0x00FC +0xF7 0x00FD +0xF8 0x0142 +0xF9 0x00F8 +0xFA 0x0153 +0xFB 0x00DF +0xFC 0x00FE +0xFD 0x00FF diff --git a/3rdPartner/libiconv/tests/PT154.TXT b/3rdPartner/libiconv/tests/PT154.TXT new file mode 100644 index 0000000..3887d2b --- /dev/null +++ b/3rdPartner/libiconv/tests/PT154.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0496 +0x81 0x0492 +0x82 0x04EE +0x83 0x0493 +0x84 0x201E +0x85 0x2026 +0x86 0x04B6 +0x87 0x04AE +0x88 0x04B2 +0x89 0x04AF +0x8A 0x04A0 +0x8B 0x04E2 +0x8C 0x04A2 +0x8D 0x049A +0x8E 0x04BA +0x8F 0x04B8 +0x90 0x0497 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x98 0x04B3 +0x99 0x04B7 +0x9A 0x04A1 +0x9B 0x04E3 +0x9C 0x04A3 +0x9D 0x049B +0x9E 0x04BB +0x9F 0x04B9 +0xA0 0x00A0 +0xA1 0x040E +0xA2 0x045E +0xA3 0x0408 +0xA4 0x04E8 +0xA5 0x0498 +0xA6 0x04B0 +0xA7 0x00A7 +0xA8 0x0401 +0xA9 0x00A9 +0xAA 0x04D8 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x04EF +0xAE 0x00AE +0xAF 0x049C +0xB0 0x00B0 +0xB1 0x04B1 +0xB2 0x0406 +0xB3 0x0456 +0xB4 0x0499 +0xB5 0x04E9 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0451 +0xB9 0x2116 +0xBA 0x04D9 +0xBB 0x00BB +0xBC 0x0458 +0xBD 0x04AA +0xBE 0x04AB +0xBF 0x049D +0xC0 0x0410 +0xC1 0x0411 +0xC2 0x0412 +0xC3 0x0413 +0xC4 0x0414 +0xC5 0x0415 +0xC6 0x0416 +0xC7 0x0417 +0xC8 0x0418 +0xC9 0x0419 +0xCA 0x041A +0xCB 0x041B +0xCC 0x041C +0xCD 0x041D +0xCE 0x041E +0xCF 0x041F +0xD0 0x0420 +0xD1 0x0421 +0xD2 0x0422 +0xD3 0x0423 +0xD4 0x0424 +0xD5 0x0425 +0xD6 0x0426 +0xD7 0x0427 +0xD8 0x0428 +0xD9 0x0429 +0xDA 0x042A +0xDB 0x042B +0xDC 0x042C +0xDD 0x042D +0xDE 0x042E +0xDF 0x042F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x044F diff --git a/3rdPartner/libiconv/tests/Quotes.ASCII b/3rdPartner/libiconv/tests/Quotes.ASCII new file mode 100644 index 0000000..21c8a3a --- /dev/null +++ b/3rdPartner/libiconv/tests/Quotes.ASCII @@ -0,0 +1,4 @@ +"Hello" +'Hello' +"Hello" +'Hello' diff --git a/3rdPartner/libiconv/tests/Quotes.ISO-8859-1 b/3rdPartner/libiconv/tests/Quotes.ISO-8859-1 new file mode 100644 index 0000000..151a049 --- /dev/null +++ b/3rdPartner/libiconv/tests/Quotes.ISO-8859-1 @@ -0,0 +1,4 @@ +"Hello" +`Hello +"Hello" +`Hello diff --git a/3rdPartner/libiconv/tests/Quotes.UTF-8 b/3rdPartner/libiconv/tests/Quotes.UTF-8 new file mode 100644 index 0000000..3d48ee9 --- /dev/null +++ b/3rdPartner/libiconv/tests/Quotes.UTF-8 @@ -0,0 +1,4 @@ +“Hello” +‘Hello’ +„Hello” +‚Hello’ diff --git a/3rdPartner/libiconv/tests/RISCOS-LATIN1.TXT b/3rdPartner/libiconv/tests/RISCOS-LATIN1.TXT new file mode 100644 index 0000000..90251ef --- /dev/null +++ b/3rdPartner/libiconv/tests/RISCOS-LATIN1.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x221A +0x81 0x0174 +0x82 0x0175 +0x83 0x0083 +0x84 0x2573 +0x85 0x0176 +0x86 0x0177 +0x87 0x0087 +0x88 0x21E6 +0x89 0x21E8 +0x8A 0x21E9 +0x8B 0x21E7 +0x8C 0x2026 +0x8D 0x2122 +0x8E 0x2030 +0x8F 0x2022 +0x90 0x2018 +0x91 0x2019 +0x92 0x2039 +0x93 0x203A +0x94 0x201C +0x95 0x201D +0x96 0x201E +0x97 0x2013 +0x98 0x2014 +0x99 0x2212 +0x9A 0x0152 +0x9B 0x0153 +0x9C 0x2020 +0x9D 0x2021 +0x9E 0xFB01 +0x9F 0xFB02 +0xA0 0x00A0 +0xA1 0x00A1 +0xA2 0x00A2 +0xA3 0x00A3 +0xA4 0x00A4 +0xA5 0x00A5 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x00A8 +0xA9 0x00A9 +0xAA 0x00AA +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x00AF +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x00B2 +0xB3 0x00B3 +0xB4 0x00B4 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x00B8 +0xB9 0x00B9 +0xBA 0x00BA +0xBB 0x00BB +0xBC 0x00BC +0xBD 0x00BD +0xBE 0x00BE +0xBF 0x00BF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x00C4 +0xC5 0x00C5 +0xC6 0x00C6 +0xC7 0x00C7 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x00CB +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x00CE +0xCF 0x00CF +0xD0 0x00D0 +0xD1 0x00D1 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x00D5 +0xD6 0x00D6 +0xD7 0x00D7 +0xD8 0x00D8 +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x00DB +0xDC 0x00DC +0xDD 0x00DD +0xDE 0x00DE +0xDF 0x00DF +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x00E4 +0xE5 0x00E5 +0xE6 0x00E6 +0xE7 0x00E7 +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x00EB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x00EE +0xEF 0x00EF +0xF0 0x00F0 +0xF1 0x00F1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x00F6 +0xF7 0x00F7 +0xF8 0x00F8 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x00FB +0xFC 0x00FC +0xFD 0x00FD +0xFE 0x00FE +0xFF 0x00FF diff --git a/3rdPartner/libiconv/tests/RK1048.TXT b/3rdPartner/libiconv/tests/RK1048.TXT new file mode 100644 index 0000000..06f185a --- /dev/null +++ b/3rdPartner/libiconv/tests/RK1048.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0402 +0x81 0x0403 +0x82 0x201A +0x83 0x0453 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x20AC +0x89 0x2030 +0x8A 0x0409 +0x8B 0x2039 +0x8C 0x040A +0x8D 0x049A +0x8E 0x04BA +0x8F 0x040F +0x90 0x0452 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9A 0x0459 +0x9B 0x203A +0x9C 0x045A +0x9D 0x049B +0x9E 0x04BB +0x9F 0x045F +0xA0 0x00A0 +0xA1 0x04B0 +0xA2 0x04B1 +0xA3 0x04D8 +0xA4 0x00A4 +0xA5 0x04E8 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x0401 +0xA9 0x00A9 +0xAA 0x0492 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x04AE +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x0406 +0xB3 0x0456 +0xB4 0x04E9 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0451 +0xB9 0x2116 +0xBA 0x0493 +0xBB 0x00BB +0xBC 0x04D9 +0xBD 0x04A2 +0xBE 0x04A3 +0xBF 0x04AF +0xC0 0x0410 +0xC1 0x0411 +0xC2 0x0412 +0xC3 0x0413 +0xC4 0x0414 +0xC5 0x0415 +0xC6 0x0416 +0xC7 0x0417 +0xC8 0x0418 +0xC9 0x0419 +0xCA 0x041A +0xCB 0x041B +0xCC 0x041C +0xCD 0x041D +0xCE 0x041E +0xCF 0x041F +0xD0 0x0420 +0xD1 0x0421 +0xD2 0x0422 +0xD3 0x0423 +0xD4 0x0424 +0xD5 0x0425 +0xD6 0x0426 +0xD7 0x0427 +0xD8 0x0428 +0xD9 0x0429 +0xDA 0x042A +0xDB 0x042B +0xDC 0x042C +0xDD 0x042D +0xDE 0x042E +0xDF 0x042F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x044F diff --git a/3rdPartner/libiconv/tests/SHIFT_JIS.TXT b/3rdPartner/libiconv/tests/SHIFT_JIS.TXT new file mode 100644 index 0000000..c98265c --- /dev/null +++ b/3rdPartner/libiconv/tests/SHIFT_JIS.TXT @@ -0,0 +1,8950 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x00A5 +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x203E +0x7F 0x007F +0x8140 0x3000 +0x8141 0x3001 +0x8142 0x3002 +0x8143 0xFF0C +0x8144 0xFF0E +0x8145 0x30FB +0x8146 0xFF1A +0x8147 0xFF1B +0x8148 0xFF1F +0x8149 0xFF01 +0x814A 0x309B +0x814B 0x309C +0x814C 0x00B4 +0x814D 0xFF40 +0x814E 0x00A8 +0x814F 0xFF3E +0x8150 0xFFE3 +0x8151 0xFF3F +0x8152 0x30FD +0x8153 0x30FE +0x8154 0x309D +0x8155 0x309E +0x8156 0x3003 +0x8157 0x4EDD +0x8158 0x3005 +0x8159 0x3006 +0x815A 0x3007 +0x815B 0x30FC +0x815C 0x2015 +0x815D 0x2010 +0x815E 0xFF0F +0x815F 0xFF3C +0x8160 0x301C +0x8161 0x2016 +0x8162 0xFF5C +0x8163 0x2026 +0x8164 0x2025 +0x8165 0x2018 +0x8166 0x2019 +0x8167 0x201C +0x8168 0x201D +0x8169 0xFF08 +0x816A 0xFF09 +0x816B 0x3014 +0x816C 0x3015 +0x816D 0xFF3B +0x816E 0xFF3D +0x816F 0xFF5B +0x8170 0xFF5D +0x8171 0x3008 +0x8172 0x3009 +0x8173 0x300A +0x8174 0x300B +0x8175 0x300C +0x8176 0x300D +0x8177 0x300E +0x8178 0x300F +0x8179 0x3010 +0x817A 0x3011 +0x817B 0xFF0B +0x817C 0x2212 +0x817D 0x00B1 +0x817E 0x00D7 +0x8180 0x00F7 +0x8181 0xFF1D +0x8182 0x2260 +0x8183 0xFF1C +0x8184 0xFF1E +0x8185 0x2266 +0x8186 0x2267 +0x8187 0x221E +0x8188 0x2234 +0x8189 0x2642 +0x818A 0x2640 +0x818B 0x00B0 +0x818C 0x2032 +0x818D 0x2033 +0x818E 0x2103 +0x818F 0xFFE5 +0x8190 0xFF04 +0x8191 0x00A2 +0x8192 0x00A3 +0x8193 0xFF05 +0x8194 0xFF03 +0x8195 0xFF06 +0x8196 0xFF0A +0x8197 0xFF20 +0x8198 0x00A7 +0x8199 0x2606 +0x819A 0x2605 +0x819B 0x25CB +0x819C 0x25CF +0x819D 0x25CE +0x819E 0x25C7 +0x819F 0x25C6 +0x81A0 0x25A1 +0x81A1 0x25A0 +0x81A2 0x25B3 +0x81A3 0x25B2 +0x81A4 0x25BD +0x81A5 0x25BC +0x81A6 0x203B +0x81A7 0x3012 +0x81A8 0x2192 +0x81A9 0x2190 +0x81AA 0x2191 +0x81AB 0x2193 +0x81AC 0x3013 +0x81B8 0x2208 +0x81B9 0x220B +0x81BA 0x2286 +0x81BB 0x2287 +0x81BC 0x2282 +0x81BD 0x2283 +0x81BE 0x222A +0x81BF 0x2229 +0x81C8 0x2227 +0x81C9 0x2228 +0x81CA 0x00AC +0x81CB 0x21D2 +0x81CC 0x21D4 +0x81CD 0x2200 +0x81CE 0x2203 +0x81DA 0x2220 +0x81DB 0x22A5 +0x81DC 0x2312 +0x81DD 0x2202 +0x81DE 0x2207 +0x81DF 0x2261 +0x81E0 0x2252 +0x81E1 0x226A +0x81E2 0x226B +0x81E3 0x221A +0x81E4 0x223D +0x81E5 0x221D +0x81E6 0x2235 +0x81E7 0x222B +0x81E8 0x222C +0x81F0 0x212B +0x81F1 0x2030 +0x81F2 0x266F +0x81F3 0x266D +0x81F4 0x266A +0x81F5 0x2020 +0x81F6 0x2021 +0x81F7 0x00B6 +0x81FC 0x25EF +0x824F 0xFF10 +0x8250 0xFF11 +0x8251 0xFF12 +0x8252 0xFF13 +0x8253 0xFF14 +0x8254 0xFF15 +0x8255 0xFF16 +0x8256 0xFF17 +0x8257 0xFF18 +0x8258 0xFF19 +0x8260 0xFF21 +0x8261 0xFF22 +0x8262 0xFF23 +0x8263 0xFF24 +0x8264 0xFF25 +0x8265 0xFF26 +0x8266 0xFF27 +0x8267 0xFF28 +0x8268 0xFF29 +0x8269 0xFF2A +0x826A 0xFF2B +0x826B 0xFF2C +0x826C 0xFF2D +0x826D 0xFF2E +0x826E 0xFF2F +0x826F 0xFF30 +0x8270 0xFF31 +0x8271 0xFF32 +0x8272 0xFF33 +0x8273 0xFF34 +0x8274 0xFF35 +0x8275 0xFF36 +0x8276 0xFF37 +0x8277 0xFF38 +0x8278 0xFF39 +0x8279 0xFF3A +0x8281 0xFF41 +0x8282 0xFF42 +0x8283 0xFF43 +0x8284 0xFF44 +0x8285 0xFF45 +0x8286 0xFF46 +0x8287 0xFF47 +0x8288 0xFF48 +0x8289 0xFF49 +0x828A 0xFF4A +0x828B 0xFF4B +0x828C 0xFF4C +0x828D 0xFF4D +0x828E 0xFF4E +0x828F 0xFF4F +0x8290 0xFF50 +0x8291 0xFF51 +0x8292 0xFF52 +0x8293 0xFF53 +0x8294 0xFF54 +0x8295 0xFF55 +0x8296 0xFF56 +0x8297 0xFF57 +0x8298 0xFF58 +0x8299 0xFF59 +0x829A 0xFF5A +0x829F 0x3041 +0x82A0 0x3042 +0x82A1 0x3043 +0x82A2 0x3044 +0x82A3 0x3045 +0x82A4 0x3046 +0x82A5 0x3047 +0x82A6 0x3048 +0x82A7 0x3049 +0x82A8 0x304A +0x82A9 0x304B +0x82AA 0x304C +0x82AB 0x304D +0x82AC 0x304E +0x82AD 0x304F +0x82AE 0x3050 +0x82AF 0x3051 +0x82B0 0x3052 +0x82B1 0x3053 +0x82B2 0x3054 +0x82B3 0x3055 +0x82B4 0x3056 +0x82B5 0x3057 +0x82B6 0x3058 +0x82B7 0x3059 +0x82B8 0x305A +0x82B9 0x305B +0x82BA 0x305C +0x82BB 0x305D +0x82BC 0x305E +0x82BD 0x305F +0x82BE 0x3060 +0x82BF 0x3061 +0x82C0 0x3062 +0x82C1 0x3063 +0x82C2 0x3064 +0x82C3 0x3065 +0x82C4 0x3066 +0x82C5 0x3067 +0x82C6 0x3068 +0x82C7 0x3069 +0x82C8 0x306A +0x82C9 0x306B +0x82CA 0x306C +0x82CB 0x306D +0x82CC 0x306E +0x82CD 0x306F +0x82CE 0x3070 +0x82CF 0x3071 +0x82D0 0x3072 +0x82D1 0x3073 +0x82D2 0x3074 +0x82D3 0x3075 +0x82D4 0x3076 +0x82D5 0x3077 +0x82D6 0x3078 +0x82D7 0x3079 +0x82D8 0x307A +0x82D9 0x307B +0x82DA 0x307C +0x82DB 0x307D +0x82DC 0x307E +0x82DD 0x307F +0x82DE 0x3080 +0x82DF 0x3081 +0x82E0 0x3082 +0x82E1 0x3083 +0x82E2 0x3084 +0x82E3 0x3085 +0x82E4 0x3086 +0x82E5 0x3087 +0x82E6 0x3088 +0x82E7 0x3089 +0x82E8 0x308A +0x82E9 0x308B +0x82EA 0x308C +0x82EB 0x308D +0x82EC 0x308E +0x82ED 0x308F +0x82EE 0x3090 +0x82EF 0x3091 +0x82F0 0x3092 +0x82F1 0x3093 +0x8340 0x30A1 +0x8341 0x30A2 +0x8342 0x30A3 +0x8343 0x30A4 +0x8344 0x30A5 +0x8345 0x30A6 +0x8346 0x30A7 +0x8347 0x30A8 +0x8348 0x30A9 +0x8349 0x30AA +0x834A 0x30AB +0x834B 0x30AC +0x834C 0x30AD +0x834D 0x30AE +0x834E 0x30AF +0x834F 0x30B0 +0x8350 0x30B1 +0x8351 0x30B2 +0x8352 0x30B3 +0x8353 0x30B4 +0x8354 0x30B5 +0x8355 0x30B6 +0x8356 0x30B7 +0x8357 0x30B8 +0x8358 0x30B9 +0x8359 0x30BA +0x835A 0x30BB +0x835B 0x30BC +0x835C 0x30BD +0x835D 0x30BE +0x835E 0x30BF +0x835F 0x30C0 +0x8360 0x30C1 +0x8361 0x30C2 +0x8362 0x30C3 +0x8363 0x30C4 +0x8364 0x30C5 +0x8365 0x30C6 +0x8366 0x30C7 +0x8367 0x30C8 +0x8368 0x30C9 +0x8369 0x30CA +0x836A 0x30CB +0x836B 0x30CC +0x836C 0x30CD +0x836D 0x30CE +0x836E 0x30CF +0x836F 0x30D0 +0x8370 0x30D1 +0x8371 0x30D2 +0x8372 0x30D3 +0x8373 0x30D4 +0x8374 0x30D5 +0x8375 0x30D6 +0x8376 0x30D7 +0x8377 0x30D8 +0x8378 0x30D9 +0x8379 0x30DA +0x837A 0x30DB +0x837B 0x30DC +0x837C 0x30DD +0x837D 0x30DE +0x837E 0x30DF +0x8380 0x30E0 +0x8381 0x30E1 +0x8382 0x30E2 +0x8383 0x30E3 +0x8384 0x30E4 +0x8385 0x30E5 +0x8386 0x30E6 +0x8387 0x30E7 +0x8388 0x30E8 +0x8389 0x30E9 +0x838A 0x30EA +0x838B 0x30EB +0x838C 0x30EC +0x838D 0x30ED +0x838E 0x30EE +0x838F 0x30EF +0x8390 0x30F0 +0x8391 0x30F1 +0x8392 0x30F2 +0x8393 0x30F3 +0x8394 0x30F4 +0x8395 0x30F5 +0x8396 0x30F6 +0x839F 0x0391 +0x83A0 0x0392 +0x83A1 0x0393 +0x83A2 0x0394 +0x83A3 0x0395 +0x83A4 0x0396 +0x83A5 0x0397 +0x83A6 0x0398 +0x83A7 0x0399 +0x83A8 0x039A +0x83A9 0x039B +0x83AA 0x039C +0x83AB 0x039D +0x83AC 0x039E +0x83AD 0x039F +0x83AE 0x03A0 +0x83AF 0x03A1 +0x83B0 0x03A3 +0x83B1 0x03A4 +0x83B2 0x03A5 +0x83B3 0x03A6 +0x83B4 0x03A7 +0x83B5 0x03A8 +0x83B6 0x03A9 +0x83BF 0x03B1 +0x83C0 0x03B2 +0x83C1 0x03B3 +0x83C2 0x03B4 +0x83C3 0x03B5 +0x83C4 0x03B6 +0x83C5 0x03B7 +0x83C6 0x03B8 +0x83C7 0x03B9 +0x83C8 0x03BA +0x83C9 0x03BB +0x83CA 0x03BC +0x83CB 0x03BD +0x83CC 0x03BE +0x83CD 0x03BF +0x83CE 0x03C0 +0x83CF 0x03C1 +0x83D0 0x03C3 +0x83D1 0x03C4 +0x83D2 0x03C5 +0x83D3 0x03C6 +0x83D4 0x03C7 +0x83D5 0x03C8 +0x83D6 0x03C9 +0x8440 0x0410 +0x8441 0x0411 +0x8442 0x0412 +0x8443 0x0413 +0x8444 0x0414 +0x8445 0x0415 +0x8446 0x0401 +0x8447 0x0416 +0x8448 0x0417 +0x8449 0x0418 +0x844A 0x0419 +0x844B 0x041A +0x844C 0x041B +0x844D 0x041C +0x844E 0x041D +0x844F 0x041E +0x8450 0x041F +0x8451 0x0420 +0x8452 0x0421 +0x8453 0x0422 +0x8454 0x0423 +0x8455 0x0424 +0x8456 0x0425 +0x8457 0x0426 +0x8458 0x0427 +0x8459 0x0428 +0x845A 0x0429 +0x845B 0x042A +0x845C 0x042B +0x845D 0x042C +0x845E 0x042D +0x845F 0x042E +0x8460 0x042F +0x8470 0x0430 +0x8471 0x0431 +0x8472 0x0432 +0x8473 0x0433 +0x8474 0x0434 +0x8475 0x0435 +0x8476 0x0451 +0x8477 0x0436 +0x8478 0x0437 +0x8479 0x0438 +0x847A 0x0439 +0x847B 0x043A +0x847C 0x043B +0x847D 0x043C +0x847E 0x043D +0x8480 0x043E +0x8481 0x043F +0x8482 0x0440 +0x8483 0x0441 +0x8484 0x0442 +0x8485 0x0443 +0x8486 0x0444 +0x8487 0x0445 +0x8488 0x0446 +0x8489 0x0447 +0x848A 0x0448 +0x848B 0x0449 +0x848C 0x044A +0x848D 0x044B +0x848E 0x044C +0x848F 0x044D +0x8490 0x044E +0x8491 0x044F +0x849F 0x2500 +0x84A0 0x2502 +0x84A1 0x250C +0x84A2 0x2510 +0x84A3 0x2518 +0x84A4 0x2514 +0x84A5 0x251C +0x84A6 0x252C +0x84A7 0x2524 +0x84A8 0x2534 +0x84A9 0x253C +0x84AA 0x2501 +0x84AB 0x2503 +0x84AC 0x250F +0x84AD 0x2513 +0x84AE 0x251B +0x84AF 0x2517 +0x84B0 0x2523 +0x84B1 0x2533 +0x84B2 0x252B +0x84B3 0x253B +0x84B4 0x254B +0x84B5 0x2520 +0x84B6 0x252F +0x84B7 0x2528 +0x84B8 0x2537 +0x84B9 0x253F +0x84BA 0x251D +0x84BB 0x2530 +0x84BC 0x2525 +0x84BD 0x2538 +0x84BE 0x2542 +0x889F 0x4E9C +0x88A0 0x5516 +0x88A1 0x5A03 +0x88A2 0x963F +0x88A3 0x54C0 +0x88A4 0x611B +0x88A5 0x6328 +0x88A6 0x59F6 +0x88A7 0x9022 +0x88A8 0x8475 +0x88A9 0x831C +0x88AA 0x7A50 +0x88AB 0x60AA +0x88AC 0x63E1 +0x88AD 0x6E25 +0x88AE 0x65ED +0x88AF 0x8466 +0x88B0 0x82A6 +0x88B1 0x9BF5 +0x88B2 0x6893 +0x88B3 0x5727 +0x88B4 0x65A1 +0x88B5 0x6271 +0x88B6 0x5B9B +0x88B7 0x59D0 +0x88B8 0x867B +0x88B9 0x98F4 +0x88BA 0x7D62 +0x88BB 0x7DBE +0x88BC 0x9B8E +0x88BD 0x6216 +0x88BE 0x7C9F +0x88BF 0x88B7 +0x88C0 0x5B89 +0x88C1 0x5EB5 +0x88C2 0x6309 +0x88C3 0x6697 +0x88C4 0x6848 +0x88C5 0x95C7 +0x88C6 0x978D +0x88C7 0x674F +0x88C8 0x4EE5 +0x88C9 0x4F0A +0x88CA 0x4F4D +0x88CB 0x4F9D +0x88CC 0x5049 +0x88CD 0x56F2 +0x88CE 0x5937 +0x88CF 0x59D4 +0x88D0 0x5A01 +0x88D1 0x5C09 +0x88D2 0x60DF +0x88D3 0x610F +0x88D4 0x6170 +0x88D5 0x6613 +0x88D6 0x6905 +0x88D7 0x70BA +0x88D8 0x754F +0x88D9 0x7570 +0x88DA 0x79FB +0x88DB 0x7DAD +0x88DC 0x7DEF +0x88DD 0x80C3 +0x88DE 0x840E +0x88DF 0x8863 +0x88E0 0x8B02 +0x88E1 0x9055 +0x88E2 0x907A +0x88E3 0x533B +0x88E4 0x4E95 +0x88E5 0x4EA5 +0x88E6 0x57DF +0x88E7 0x80B2 +0x88E8 0x90C1 +0x88E9 0x78EF +0x88EA 0x4E00 +0x88EB 0x58F1 +0x88EC 0x6EA2 +0x88ED 0x9038 +0x88EE 0x7A32 +0x88EF 0x8328 +0x88F0 0x828B +0x88F1 0x9C2F +0x88F2 0x5141 +0x88F3 0x5370 +0x88F4 0x54BD +0x88F5 0x54E1 +0x88F6 0x56E0 +0x88F7 0x59FB +0x88F8 0x5F15 +0x88F9 0x98F2 +0x88FA 0x6DEB +0x88FB 0x80E4 +0x88FC 0x852D +0x8940 0x9662 +0x8941 0x9670 +0x8942 0x96A0 +0x8943 0x97FB +0x8944 0x540B +0x8945 0x53F3 +0x8946 0x5B87 +0x8947 0x70CF +0x8948 0x7FBD +0x8949 0x8FC2 +0x894A 0x96E8 +0x894B 0x536F +0x894C 0x9D5C +0x894D 0x7ABA +0x894E 0x4E11 +0x894F 0x7893 +0x8950 0x81FC +0x8951 0x6E26 +0x8952 0x5618 +0x8953 0x5504 +0x8954 0x6B1D +0x8955 0x851A +0x8956 0x9C3B +0x8957 0x59E5 +0x8958 0x53A9 +0x8959 0x6D66 +0x895A 0x74DC +0x895B 0x958F +0x895C 0x5642 +0x895D 0x4E91 +0x895E 0x904B +0x895F 0x96F2 +0x8960 0x834F +0x8961 0x990C +0x8962 0x53E1 +0x8963 0x55B6 +0x8964 0x5B30 +0x8965 0x5F71 +0x8966 0x6620 +0x8967 0x66F3 +0x8968 0x6804 +0x8969 0x6C38 +0x896A 0x6CF3 +0x896B 0x6D29 +0x896C 0x745B +0x896D 0x76C8 +0x896E 0x7A4E +0x896F 0x9834 +0x8970 0x82F1 +0x8971 0x885B +0x8972 0x8A60 +0x8973 0x92ED +0x8974 0x6DB2 +0x8975 0x75AB +0x8976 0x76CA +0x8977 0x99C5 +0x8978 0x60A6 +0x8979 0x8B01 +0x897A 0x8D8A +0x897B 0x95B2 +0x897C 0x698E +0x897D 0x53AD +0x897E 0x5186 +0x8980 0x5712 +0x8981 0x5830 +0x8982 0x5944 +0x8983 0x5BB4 +0x8984 0x5EF6 +0x8985 0x6028 +0x8986 0x63A9 +0x8987 0x63F4 +0x8988 0x6CBF +0x8989 0x6F14 +0x898A 0x708E +0x898B 0x7114 +0x898C 0x7159 +0x898D 0x71D5 +0x898E 0x733F +0x898F 0x7E01 +0x8990 0x8276 +0x8991 0x82D1 +0x8992 0x8597 +0x8993 0x9060 +0x8994 0x925B +0x8995 0x9D1B +0x8996 0x5869 +0x8997 0x65BC +0x8998 0x6C5A +0x8999 0x7525 +0x899A 0x51F9 +0x899B 0x592E +0x899C 0x5965 +0x899D 0x5F80 +0x899E 0x5FDC +0x899F 0x62BC +0x89A0 0x65FA +0x89A1 0x6A2A +0x89A2 0x6B27 +0x89A3 0x6BB4 +0x89A4 0x738B +0x89A5 0x7FC1 +0x89A6 0x8956 +0x89A7 0x9D2C +0x89A8 0x9D0E +0x89A9 0x9EC4 +0x89AA 0x5CA1 +0x89AB 0x6C96 +0x89AC 0x837B +0x89AD 0x5104 +0x89AE 0x5C4B +0x89AF 0x61B6 +0x89B0 0x81C6 +0x89B1 0x6876 +0x89B2 0x7261 +0x89B3 0x4E59 +0x89B4 0x4FFA +0x89B5 0x5378 +0x89B6 0x6069 +0x89B7 0x6E29 +0x89B8 0x7A4F +0x89B9 0x97F3 +0x89BA 0x4E0B +0x89BB 0x5316 +0x89BC 0x4EEE +0x89BD 0x4F55 +0x89BE 0x4F3D +0x89BF 0x4FA1 +0x89C0 0x4F73 +0x89C1 0x52A0 +0x89C2 0x53EF +0x89C3 0x5609 +0x89C4 0x590F +0x89C5 0x5AC1 +0x89C6 0x5BB6 +0x89C7 0x5BE1 +0x89C8 0x79D1 +0x89C9 0x6687 +0x89CA 0x679C +0x89CB 0x67B6 +0x89CC 0x6B4C +0x89CD 0x6CB3 +0x89CE 0x706B +0x89CF 0x73C2 +0x89D0 0x798D +0x89D1 0x79BE +0x89D2 0x7A3C +0x89D3 0x7B87 +0x89D4 0x82B1 +0x89D5 0x82DB +0x89D6 0x8304 +0x89D7 0x8377 +0x89D8 0x83EF +0x89D9 0x83D3 +0x89DA 0x8766 +0x89DB 0x8AB2 +0x89DC 0x5629 +0x89DD 0x8CA8 +0x89DE 0x8FE6 +0x89DF 0x904E +0x89E0 0x971E +0x89E1 0x868A +0x89E2 0x4FC4 +0x89E3 0x5CE8 +0x89E4 0x6211 +0x89E5 0x7259 +0x89E6 0x753B +0x89E7 0x81E5 +0x89E8 0x82BD +0x89E9 0x86FE +0x89EA 0x8CC0 +0x89EB 0x96C5 +0x89EC 0x9913 +0x89ED 0x99D5 +0x89EE 0x4ECB +0x89EF 0x4F1A +0x89F0 0x89E3 +0x89F1 0x56DE +0x89F2 0x584A +0x89F3 0x58CA +0x89F4 0x5EFB +0x89F5 0x5FEB +0x89F6 0x602A +0x89F7 0x6094 +0x89F8 0x6062 +0x89F9 0x61D0 +0x89FA 0x6212 +0x89FB 0x62D0 +0x89FC 0x6539 +0x8A40 0x9B41 +0x8A41 0x6666 +0x8A42 0x68B0 +0x8A43 0x6D77 +0x8A44 0x7070 +0x8A45 0x754C +0x8A46 0x7686 +0x8A47 0x7D75 +0x8A48 0x82A5 +0x8A49 0x87F9 +0x8A4A 0x958B +0x8A4B 0x968E +0x8A4C 0x8C9D +0x8A4D 0x51F1 +0x8A4E 0x52BE +0x8A4F 0x5916 +0x8A50 0x54B3 +0x8A51 0x5BB3 +0x8A52 0x5D16 +0x8A53 0x6168 +0x8A54 0x6982 +0x8A55 0x6DAF +0x8A56 0x788D +0x8A57 0x84CB +0x8A58 0x8857 +0x8A59 0x8A72 +0x8A5A 0x93A7 +0x8A5B 0x9AB8 +0x8A5C 0x6D6C +0x8A5D 0x99A8 +0x8A5E 0x86D9 +0x8A5F 0x57A3 +0x8A60 0x67FF +0x8A61 0x86CE +0x8A62 0x920E +0x8A63 0x5283 +0x8A64 0x5687 +0x8A65 0x5404 +0x8A66 0x5ED3 +0x8A67 0x62E1 +0x8A68 0x64B9 +0x8A69 0x683C +0x8A6A 0x6838 +0x8A6B 0x6BBB +0x8A6C 0x7372 +0x8A6D 0x78BA +0x8A6E 0x7A6B +0x8A6F 0x899A +0x8A70 0x89D2 +0x8A71 0x8D6B +0x8A72 0x8F03 +0x8A73 0x90ED +0x8A74 0x95A3 +0x8A75 0x9694 +0x8A76 0x9769 +0x8A77 0x5B66 +0x8A78 0x5CB3 +0x8A79 0x697D +0x8A7A 0x984D +0x8A7B 0x984E +0x8A7C 0x639B +0x8A7D 0x7B20 +0x8A7E 0x6A2B +0x8A80 0x6A7F +0x8A81 0x68B6 +0x8A82 0x9C0D +0x8A83 0x6F5F +0x8A84 0x5272 +0x8A85 0x559D +0x8A86 0x6070 +0x8A87 0x62EC +0x8A88 0x6D3B +0x8A89 0x6E07 +0x8A8A 0x6ED1 +0x8A8B 0x845B +0x8A8C 0x8910 +0x8A8D 0x8F44 +0x8A8E 0x4E14 +0x8A8F 0x9C39 +0x8A90 0x53F6 +0x8A91 0x691B +0x8A92 0x6A3A +0x8A93 0x9784 +0x8A94 0x682A +0x8A95 0x515C +0x8A96 0x7AC3 +0x8A97 0x84B2 +0x8A98 0x91DC +0x8A99 0x938C +0x8A9A 0x565B +0x8A9B 0x9D28 +0x8A9C 0x6822 +0x8A9D 0x8305 +0x8A9E 0x8431 +0x8A9F 0x7CA5 +0x8AA0 0x5208 +0x8AA1 0x82C5 +0x8AA2 0x74E6 +0x8AA3 0x4E7E +0x8AA4 0x4F83 +0x8AA5 0x51A0 +0x8AA6 0x5BD2 +0x8AA7 0x520A +0x8AA8 0x52D8 +0x8AA9 0x52E7 +0x8AAA 0x5DFB +0x8AAB 0x559A +0x8AAC 0x582A +0x8AAD 0x59E6 +0x8AAE 0x5B8C +0x8AAF 0x5B98 +0x8AB0 0x5BDB +0x8AB1 0x5E72 +0x8AB2 0x5E79 +0x8AB3 0x60A3 +0x8AB4 0x611F +0x8AB5 0x6163 +0x8AB6 0x61BE +0x8AB7 0x63DB +0x8AB8 0x6562 +0x8AB9 0x67D1 +0x8ABA 0x6853 +0x8ABB 0x68FA +0x8ABC 0x6B3E +0x8ABD 0x6B53 +0x8ABE 0x6C57 +0x8ABF 0x6F22 +0x8AC0 0x6F97 +0x8AC1 0x6F45 +0x8AC2 0x74B0 +0x8AC3 0x7518 +0x8AC4 0x76E3 +0x8AC5 0x770B +0x8AC6 0x7AFF +0x8AC7 0x7BA1 +0x8AC8 0x7C21 +0x8AC9 0x7DE9 +0x8ACA 0x7F36 +0x8ACB 0x7FF0 +0x8ACC 0x809D +0x8ACD 0x8266 +0x8ACE 0x839E +0x8ACF 0x89B3 +0x8AD0 0x8ACC +0x8AD1 0x8CAB +0x8AD2 0x9084 +0x8AD3 0x9451 +0x8AD4 0x9593 +0x8AD5 0x9591 +0x8AD6 0x95A2 +0x8AD7 0x9665 +0x8AD8 0x97D3 +0x8AD9 0x9928 +0x8ADA 0x8218 +0x8ADB 0x4E38 +0x8ADC 0x542B +0x8ADD 0x5CB8 +0x8ADE 0x5DCC +0x8ADF 0x73A9 +0x8AE0 0x764C +0x8AE1 0x773C +0x8AE2 0x5CA9 +0x8AE3 0x7FEB +0x8AE4 0x8D0B +0x8AE5 0x96C1 +0x8AE6 0x9811 +0x8AE7 0x9854 +0x8AE8 0x9858 +0x8AE9 0x4F01 +0x8AEA 0x4F0E +0x8AEB 0x5371 +0x8AEC 0x559C +0x8AED 0x5668 +0x8AEE 0x57FA +0x8AEF 0x5947 +0x8AF0 0x5B09 +0x8AF1 0x5BC4 +0x8AF2 0x5C90 +0x8AF3 0x5E0C +0x8AF4 0x5E7E +0x8AF5 0x5FCC +0x8AF6 0x63EE +0x8AF7 0x673A +0x8AF8 0x65D7 +0x8AF9 0x65E2 +0x8AFA 0x671F +0x8AFB 0x68CB +0x8AFC 0x68C4 +0x8B40 0x6A5F +0x8B41 0x5E30 +0x8B42 0x6BC5 +0x8B43 0x6C17 +0x8B44 0x6C7D +0x8B45 0x757F +0x8B46 0x7948 +0x8B47 0x5B63 +0x8B48 0x7A00 +0x8B49 0x7D00 +0x8B4A 0x5FBD +0x8B4B 0x898F +0x8B4C 0x8A18 +0x8B4D 0x8CB4 +0x8B4E 0x8D77 +0x8B4F 0x8ECC +0x8B50 0x8F1D +0x8B51 0x98E2 +0x8B52 0x9A0E +0x8B53 0x9B3C +0x8B54 0x4E80 +0x8B55 0x507D +0x8B56 0x5100 +0x8B57 0x5993 +0x8B58 0x5B9C +0x8B59 0x622F +0x8B5A 0x6280 +0x8B5B 0x64EC +0x8B5C 0x6B3A +0x8B5D 0x72A0 +0x8B5E 0x7591 +0x8B5F 0x7947 +0x8B60 0x7FA9 +0x8B61 0x87FB +0x8B62 0x8ABC +0x8B63 0x8B70 +0x8B64 0x63AC +0x8B65 0x83CA +0x8B66 0x97A0 +0x8B67 0x5409 +0x8B68 0x5403 +0x8B69 0x55AB +0x8B6A 0x6854 +0x8B6B 0x6A58 +0x8B6C 0x8A70 +0x8B6D 0x7827 +0x8B6E 0x6775 +0x8B6F 0x9ECD +0x8B70 0x5374 +0x8B71 0x5BA2 +0x8B72 0x811A +0x8B73 0x8650 +0x8B74 0x9006 +0x8B75 0x4E18 +0x8B76 0x4E45 +0x8B77 0x4EC7 +0x8B78 0x4F11 +0x8B79 0x53CA +0x8B7A 0x5438 +0x8B7B 0x5BAE +0x8B7C 0x5F13 +0x8B7D 0x6025 +0x8B7E 0x6551 +0x8B80 0x673D +0x8B81 0x6C42 +0x8B82 0x6C72 +0x8B83 0x6CE3 +0x8B84 0x7078 +0x8B85 0x7403 +0x8B86 0x7A76 +0x8B87 0x7AAE +0x8B88 0x7B08 +0x8B89 0x7D1A +0x8B8A 0x7CFE +0x8B8B 0x7D66 +0x8B8C 0x65E7 +0x8B8D 0x725B +0x8B8E 0x53BB +0x8B8F 0x5C45 +0x8B90 0x5DE8 +0x8B91 0x62D2 +0x8B92 0x62E0 +0x8B93 0x6319 +0x8B94 0x6E20 +0x8B95 0x865A +0x8B96 0x8A31 +0x8B97 0x8DDD +0x8B98 0x92F8 +0x8B99 0x6F01 +0x8B9A 0x79A6 +0x8B9B 0x9B5A +0x8B9C 0x4EA8 +0x8B9D 0x4EAB +0x8B9E 0x4EAC +0x8B9F 0x4F9B +0x8BA0 0x4FA0 +0x8BA1 0x50D1 +0x8BA2 0x5147 +0x8BA3 0x7AF6 +0x8BA4 0x5171 +0x8BA5 0x51F6 +0x8BA6 0x5354 +0x8BA7 0x5321 +0x8BA8 0x537F +0x8BA9 0x53EB +0x8BAA 0x55AC +0x8BAB 0x5883 +0x8BAC 0x5CE1 +0x8BAD 0x5F37 +0x8BAE 0x5F4A +0x8BAF 0x602F +0x8BB0 0x6050 +0x8BB1 0x606D +0x8BB2 0x631F +0x8BB3 0x6559 +0x8BB4 0x6A4B +0x8BB5 0x6CC1 +0x8BB6 0x72C2 +0x8BB7 0x72ED +0x8BB8 0x77EF +0x8BB9 0x80F8 +0x8BBA 0x8105 +0x8BBB 0x8208 +0x8BBC 0x854E +0x8BBD 0x90F7 +0x8BBE 0x93E1 +0x8BBF 0x97FF +0x8BC0 0x9957 +0x8BC1 0x9A5A +0x8BC2 0x4EF0 +0x8BC3 0x51DD +0x8BC4 0x5C2D +0x8BC5 0x6681 +0x8BC6 0x696D +0x8BC7 0x5C40 +0x8BC8 0x66F2 +0x8BC9 0x6975 +0x8BCA 0x7389 +0x8BCB 0x6850 +0x8BCC 0x7C81 +0x8BCD 0x50C5 +0x8BCE 0x52E4 +0x8BCF 0x5747 +0x8BD0 0x5DFE +0x8BD1 0x9326 +0x8BD2 0x65A4 +0x8BD3 0x6B23 +0x8BD4 0x6B3D +0x8BD5 0x7434 +0x8BD6 0x7981 +0x8BD7 0x79BD +0x8BD8 0x7B4B +0x8BD9 0x7DCA +0x8BDA 0x82B9 +0x8BDB 0x83CC +0x8BDC 0x887F +0x8BDD 0x895F +0x8BDE 0x8B39 +0x8BDF 0x8FD1 +0x8BE0 0x91D1 +0x8BE1 0x541F +0x8BE2 0x9280 +0x8BE3 0x4E5D +0x8BE4 0x5036 +0x8BE5 0x53E5 +0x8BE6 0x533A +0x8BE7 0x72D7 +0x8BE8 0x7396 +0x8BE9 0x77E9 +0x8BEA 0x82E6 +0x8BEB 0x8EAF +0x8BEC 0x99C6 +0x8BED 0x99C8 +0x8BEE 0x99D2 +0x8BEF 0x5177 +0x8BF0 0x611A +0x8BF1 0x865E +0x8BF2 0x55B0 +0x8BF3 0x7A7A +0x8BF4 0x5076 +0x8BF5 0x5BD3 +0x8BF6 0x9047 +0x8BF7 0x9685 +0x8BF8 0x4E32 +0x8BF9 0x6ADB +0x8BFA 0x91E7 +0x8BFB 0x5C51 +0x8BFC 0x5C48 +0x8C40 0x6398 +0x8C41 0x7A9F +0x8C42 0x6C93 +0x8C43 0x9774 +0x8C44 0x8F61 +0x8C45 0x7AAA +0x8C46 0x718A +0x8C47 0x9688 +0x8C48 0x7C82 +0x8C49 0x6817 +0x8C4A 0x7E70 +0x8C4B 0x6851 +0x8C4C 0x936C +0x8C4D 0x52F2 +0x8C4E 0x541B +0x8C4F 0x85AB +0x8C50 0x8A13 +0x8C51 0x7FA4 +0x8C52 0x8ECD +0x8C53 0x90E1 +0x8C54 0x5366 +0x8C55 0x8888 +0x8C56 0x7941 +0x8C57 0x4FC2 +0x8C58 0x50BE +0x8C59 0x5211 +0x8C5A 0x5144 +0x8C5B 0x5553 +0x8C5C 0x572D +0x8C5D 0x73EA +0x8C5E 0x578B +0x8C5F 0x5951 +0x8C60 0x5F62 +0x8C61 0x5F84 +0x8C62 0x6075 +0x8C63 0x6176 +0x8C64 0x6167 +0x8C65 0x61A9 +0x8C66 0x63B2 +0x8C67 0x643A +0x8C68 0x656C +0x8C69 0x666F +0x8C6A 0x6842 +0x8C6B 0x6E13 +0x8C6C 0x7566 +0x8C6D 0x7A3D +0x8C6E 0x7CFB +0x8C6F 0x7D4C +0x8C70 0x7D99 +0x8C71 0x7E4B +0x8C72 0x7F6B +0x8C73 0x830E +0x8C74 0x834A +0x8C75 0x86CD +0x8C76 0x8A08 +0x8C77 0x8A63 +0x8C78 0x8B66 +0x8C79 0x8EFD +0x8C7A 0x981A +0x8C7B 0x9D8F +0x8C7C 0x82B8 +0x8C7D 0x8FCE +0x8C7E 0x9BE8 +0x8C80 0x5287 +0x8C81 0x621F +0x8C82 0x6483 +0x8C83 0x6FC0 +0x8C84 0x9699 +0x8C85 0x6841 +0x8C86 0x5091 +0x8C87 0x6B20 +0x8C88 0x6C7A +0x8C89 0x6F54 +0x8C8A 0x7A74 +0x8C8B 0x7D50 +0x8C8C 0x8840 +0x8C8D 0x8A23 +0x8C8E 0x6708 +0x8C8F 0x4EF6 +0x8C90 0x5039 +0x8C91 0x5026 +0x8C92 0x5065 +0x8C93 0x517C +0x8C94 0x5238 +0x8C95 0x5263 +0x8C96 0x55A7 +0x8C97 0x570F +0x8C98 0x5805 +0x8C99 0x5ACC +0x8C9A 0x5EFA +0x8C9B 0x61B2 +0x8C9C 0x61F8 +0x8C9D 0x62F3 +0x8C9E 0x6372 +0x8C9F 0x691C +0x8CA0 0x6A29 +0x8CA1 0x727D +0x8CA2 0x72AC +0x8CA3 0x732E +0x8CA4 0x7814 +0x8CA5 0x786F +0x8CA6 0x7D79 +0x8CA7 0x770C +0x8CA8 0x80A9 +0x8CA9 0x898B +0x8CAA 0x8B19 +0x8CAB 0x8CE2 +0x8CAC 0x8ED2 +0x8CAD 0x9063 +0x8CAE 0x9375 +0x8CAF 0x967A +0x8CB0 0x9855 +0x8CB1 0x9A13 +0x8CB2 0x9E78 +0x8CB3 0x5143 +0x8CB4 0x539F +0x8CB5 0x53B3 +0x8CB6 0x5E7B +0x8CB7 0x5F26 +0x8CB8 0x6E1B +0x8CB9 0x6E90 +0x8CBA 0x7384 +0x8CBB 0x73FE +0x8CBC 0x7D43 +0x8CBD 0x8237 +0x8CBE 0x8A00 +0x8CBF 0x8AFA +0x8CC0 0x9650 +0x8CC1 0x4E4E +0x8CC2 0x500B +0x8CC3 0x53E4 +0x8CC4 0x547C +0x8CC5 0x56FA +0x8CC6 0x59D1 +0x8CC7 0x5B64 +0x8CC8 0x5DF1 +0x8CC9 0x5EAB +0x8CCA 0x5F27 +0x8CCB 0x6238 +0x8CCC 0x6545 +0x8CCD 0x67AF +0x8CCE 0x6E56 +0x8CCF 0x72D0 +0x8CD0 0x7CCA +0x8CD1 0x88B4 +0x8CD2 0x80A1 +0x8CD3 0x80E1 +0x8CD4 0x83F0 +0x8CD5 0x864E +0x8CD6 0x8A87 +0x8CD7 0x8DE8 +0x8CD8 0x9237 +0x8CD9 0x96C7 +0x8CDA 0x9867 +0x8CDB 0x9F13 +0x8CDC 0x4E94 +0x8CDD 0x4E92 +0x8CDE 0x4F0D +0x8CDF 0x5348 +0x8CE0 0x5449 +0x8CE1 0x543E +0x8CE2 0x5A2F +0x8CE3 0x5F8C +0x8CE4 0x5FA1 +0x8CE5 0x609F +0x8CE6 0x68A7 +0x8CE7 0x6A8E +0x8CE8 0x745A +0x8CE9 0x7881 +0x8CEA 0x8A9E +0x8CEB 0x8AA4 +0x8CEC 0x8B77 +0x8CED 0x9190 +0x8CEE 0x4E5E +0x8CEF 0x9BC9 +0x8CF0 0x4EA4 +0x8CF1 0x4F7C +0x8CF2 0x4FAF +0x8CF3 0x5019 +0x8CF4 0x5016 +0x8CF5 0x5149 +0x8CF6 0x516C +0x8CF7 0x529F +0x8CF8 0x52B9 +0x8CF9 0x52FE +0x8CFA 0x539A +0x8CFB 0x53E3 +0x8CFC 0x5411 +0x8D40 0x540E +0x8D41 0x5589 +0x8D42 0x5751 +0x8D43 0x57A2 +0x8D44 0x597D +0x8D45 0x5B54 +0x8D46 0x5B5D +0x8D47 0x5B8F +0x8D48 0x5DE5 +0x8D49 0x5DE7 +0x8D4A 0x5DF7 +0x8D4B 0x5E78 +0x8D4C 0x5E83 +0x8D4D 0x5E9A +0x8D4E 0x5EB7 +0x8D4F 0x5F18 +0x8D50 0x6052 +0x8D51 0x614C +0x8D52 0x6297 +0x8D53 0x62D8 +0x8D54 0x63A7 +0x8D55 0x653B +0x8D56 0x6602 +0x8D57 0x6643 +0x8D58 0x66F4 +0x8D59 0x676D +0x8D5A 0x6821 +0x8D5B 0x6897 +0x8D5C 0x69CB +0x8D5D 0x6C5F +0x8D5E 0x6D2A +0x8D5F 0x6D69 +0x8D60 0x6E2F +0x8D61 0x6E9D +0x8D62 0x7532 +0x8D63 0x7687 +0x8D64 0x786C +0x8D65 0x7A3F +0x8D66 0x7CE0 +0x8D67 0x7D05 +0x8D68 0x7D18 +0x8D69 0x7D5E +0x8D6A 0x7DB1 +0x8D6B 0x8015 +0x8D6C 0x8003 +0x8D6D 0x80AF +0x8D6E 0x80B1 +0x8D6F 0x8154 +0x8D70 0x818F +0x8D71 0x822A +0x8D72 0x8352 +0x8D73 0x884C +0x8D74 0x8861 +0x8D75 0x8B1B +0x8D76 0x8CA2 +0x8D77 0x8CFC +0x8D78 0x90CA +0x8D79 0x9175 +0x8D7A 0x9271 +0x8D7B 0x783F +0x8D7C 0x92FC +0x8D7D 0x95A4 +0x8D7E 0x964D +0x8D80 0x9805 +0x8D81 0x9999 +0x8D82 0x9AD8 +0x8D83 0x9D3B +0x8D84 0x525B +0x8D85 0x52AB +0x8D86 0x53F7 +0x8D87 0x5408 +0x8D88 0x58D5 +0x8D89 0x62F7 +0x8D8A 0x6FE0 +0x8D8B 0x8C6A +0x8D8C 0x8F5F +0x8D8D 0x9EB9 +0x8D8E 0x514B +0x8D8F 0x523B +0x8D90 0x544A +0x8D91 0x56FD +0x8D92 0x7A40 +0x8D93 0x9177 +0x8D94 0x9D60 +0x8D95 0x9ED2 +0x8D96 0x7344 +0x8D97 0x6F09 +0x8D98 0x8170 +0x8D99 0x7511 +0x8D9A 0x5FFD +0x8D9B 0x60DA +0x8D9C 0x9AA8 +0x8D9D 0x72DB +0x8D9E 0x8FBC +0x8D9F 0x6B64 +0x8DA0 0x9803 +0x8DA1 0x4ECA +0x8DA2 0x56F0 +0x8DA3 0x5764 +0x8DA4 0x58BE +0x8DA5 0x5A5A +0x8DA6 0x6068 +0x8DA7 0x61C7 +0x8DA8 0x660F +0x8DA9 0x6606 +0x8DAA 0x6839 +0x8DAB 0x68B1 +0x8DAC 0x6DF7 +0x8DAD 0x75D5 +0x8DAE 0x7D3A +0x8DAF 0x826E +0x8DB0 0x9B42 +0x8DB1 0x4E9B +0x8DB2 0x4F50 +0x8DB3 0x53C9 +0x8DB4 0x5506 +0x8DB5 0x5D6F +0x8DB6 0x5DE6 +0x8DB7 0x5DEE +0x8DB8 0x67FB +0x8DB9 0x6C99 +0x8DBA 0x7473 +0x8DBB 0x7802 +0x8DBC 0x8A50 +0x8DBD 0x9396 +0x8DBE 0x88DF +0x8DBF 0x5750 +0x8DC0 0x5EA7 +0x8DC1 0x632B +0x8DC2 0x50B5 +0x8DC3 0x50AC +0x8DC4 0x518D +0x8DC5 0x6700 +0x8DC6 0x54C9 +0x8DC7 0x585E +0x8DC8 0x59BB +0x8DC9 0x5BB0 +0x8DCA 0x5F69 +0x8DCB 0x624D +0x8DCC 0x63A1 +0x8DCD 0x683D +0x8DCE 0x6B73 +0x8DCF 0x6E08 +0x8DD0 0x707D +0x8DD1 0x91C7 +0x8DD2 0x7280 +0x8DD3 0x7815 +0x8DD4 0x7826 +0x8DD5 0x796D +0x8DD6 0x658E +0x8DD7 0x7D30 +0x8DD8 0x83DC +0x8DD9 0x88C1 +0x8DDA 0x8F09 +0x8DDB 0x969B +0x8DDC 0x5264 +0x8DDD 0x5728 +0x8DDE 0x6750 +0x8DDF 0x7F6A +0x8DE0 0x8CA1 +0x8DE1 0x51B4 +0x8DE2 0x5742 +0x8DE3 0x962A +0x8DE4 0x583A +0x8DE5 0x698A +0x8DE6 0x80B4 +0x8DE7 0x54B2 +0x8DE8 0x5D0E +0x8DE9 0x57FC +0x8DEA 0x7895 +0x8DEB 0x9DFA +0x8DEC 0x4F5C +0x8DED 0x524A +0x8DEE 0x548B +0x8DEF 0x643E +0x8DF0 0x6628 +0x8DF1 0x6714 +0x8DF2 0x67F5 +0x8DF3 0x7A84 +0x8DF4 0x7B56 +0x8DF5 0x7D22 +0x8DF6 0x932F +0x8DF7 0x685C +0x8DF8 0x9BAD +0x8DF9 0x7B39 +0x8DFA 0x5319 +0x8DFB 0x518A +0x8DFC 0x5237 +0x8E40 0x5BDF +0x8E41 0x62F6 +0x8E42 0x64AE +0x8E43 0x64E6 +0x8E44 0x672D +0x8E45 0x6BBA +0x8E46 0x85A9 +0x8E47 0x96D1 +0x8E48 0x7690 +0x8E49 0x9BD6 +0x8E4A 0x634C +0x8E4B 0x9306 +0x8E4C 0x9BAB +0x8E4D 0x76BF +0x8E4E 0x6652 +0x8E4F 0x4E09 +0x8E50 0x5098 +0x8E51 0x53C2 +0x8E52 0x5C71 +0x8E53 0x60E8 +0x8E54 0x6492 +0x8E55 0x6563 +0x8E56 0x685F +0x8E57 0x71E6 +0x8E58 0x73CA +0x8E59 0x7523 +0x8E5A 0x7B97 +0x8E5B 0x7E82 +0x8E5C 0x8695 +0x8E5D 0x8B83 +0x8E5E 0x8CDB +0x8E5F 0x9178 +0x8E60 0x9910 +0x8E61 0x65AC +0x8E62 0x66AB +0x8E63 0x6B8B +0x8E64 0x4ED5 +0x8E65 0x4ED4 +0x8E66 0x4F3A +0x8E67 0x4F7F +0x8E68 0x523A +0x8E69 0x53F8 +0x8E6A 0x53F2 +0x8E6B 0x55E3 +0x8E6C 0x56DB +0x8E6D 0x58EB +0x8E6E 0x59CB +0x8E6F 0x59C9 +0x8E70 0x59FF +0x8E71 0x5B50 +0x8E72 0x5C4D +0x8E73 0x5E02 +0x8E74 0x5E2B +0x8E75 0x5FD7 +0x8E76 0x601D +0x8E77 0x6307 +0x8E78 0x652F +0x8E79 0x5B5C +0x8E7A 0x65AF +0x8E7B 0x65BD +0x8E7C 0x65E8 +0x8E7D 0x679D +0x8E7E 0x6B62 +0x8E80 0x6B7B +0x8E81 0x6C0F +0x8E82 0x7345 +0x8E83 0x7949 +0x8E84 0x79C1 +0x8E85 0x7CF8 +0x8E86 0x7D19 +0x8E87 0x7D2B +0x8E88 0x80A2 +0x8E89 0x8102 +0x8E8A 0x81F3 +0x8E8B 0x8996 +0x8E8C 0x8A5E +0x8E8D 0x8A69 +0x8E8E 0x8A66 +0x8E8F 0x8A8C +0x8E90 0x8AEE +0x8E91 0x8CC7 +0x8E92 0x8CDC +0x8E93 0x96CC +0x8E94 0x98FC +0x8E95 0x6B6F +0x8E96 0x4E8B +0x8E97 0x4F3C +0x8E98 0x4F8D +0x8E99 0x5150 +0x8E9A 0x5B57 +0x8E9B 0x5BFA +0x8E9C 0x6148 +0x8E9D 0x6301 +0x8E9E 0x6642 +0x8E9F 0x6B21 +0x8EA0 0x6ECB +0x8EA1 0x6CBB +0x8EA2 0x723E +0x8EA3 0x74BD +0x8EA4 0x75D4 +0x8EA5 0x78C1 +0x8EA6 0x793A +0x8EA7 0x800C +0x8EA8 0x8033 +0x8EA9 0x81EA +0x8EAA 0x8494 +0x8EAB 0x8F9E +0x8EAC 0x6C50 +0x8EAD 0x9E7F +0x8EAE 0x5F0F +0x8EAF 0x8B58 +0x8EB0 0x9D2B +0x8EB1 0x7AFA +0x8EB2 0x8EF8 +0x8EB3 0x5B8D +0x8EB4 0x96EB +0x8EB5 0x4E03 +0x8EB6 0x53F1 +0x8EB7 0x57F7 +0x8EB8 0x5931 +0x8EB9 0x5AC9 +0x8EBA 0x5BA4 +0x8EBB 0x6089 +0x8EBC 0x6E7F +0x8EBD 0x6F06 +0x8EBE 0x75BE +0x8EBF 0x8CEA +0x8EC0 0x5B9F +0x8EC1 0x8500 +0x8EC2 0x7BE0 +0x8EC3 0x5072 +0x8EC4 0x67F4 +0x8EC5 0x829D +0x8EC6 0x5C61 +0x8EC7 0x854A +0x8EC8 0x7E1E +0x8EC9 0x820E +0x8ECA 0x5199 +0x8ECB 0x5C04 +0x8ECC 0x6368 +0x8ECD 0x8D66 +0x8ECE 0x659C +0x8ECF 0x716E +0x8ED0 0x793E +0x8ED1 0x7D17 +0x8ED2 0x8005 +0x8ED3 0x8B1D +0x8ED4 0x8ECA +0x8ED5 0x906E +0x8ED6 0x86C7 +0x8ED7 0x90AA +0x8ED8 0x501F +0x8ED9 0x52FA +0x8EDA 0x5C3A +0x8EDB 0x6753 +0x8EDC 0x707C +0x8EDD 0x7235 +0x8EDE 0x914C +0x8EDF 0x91C8 +0x8EE0 0x932B +0x8EE1 0x82E5 +0x8EE2 0x5BC2 +0x8EE3 0x5F31 +0x8EE4 0x60F9 +0x8EE5 0x4E3B +0x8EE6 0x53D6 +0x8EE7 0x5B88 +0x8EE8 0x624B +0x8EE9 0x6731 +0x8EEA 0x6B8A +0x8EEB 0x72E9 +0x8EEC 0x73E0 +0x8EED 0x7A2E +0x8EEE 0x816B +0x8EEF 0x8DA3 +0x8EF0 0x9152 +0x8EF1 0x9996 +0x8EF2 0x5112 +0x8EF3 0x53D7 +0x8EF4 0x546A +0x8EF5 0x5BFF +0x8EF6 0x6388 +0x8EF7 0x6A39 +0x8EF8 0x7DAC +0x8EF9 0x9700 +0x8EFA 0x56DA +0x8EFB 0x53CE +0x8EFC 0x5468 +0x8F40 0x5B97 +0x8F41 0x5C31 +0x8F42 0x5DDE +0x8F43 0x4FEE +0x8F44 0x6101 +0x8F45 0x62FE +0x8F46 0x6D32 +0x8F47 0x79C0 +0x8F48 0x79CB +0x8F49 0x7D42 +0x8F4A 0x7E4D +0x8F4B 0x7FD2 +0x8F4C 0x81ED +0x8F4D 0x821F +0x8F4E 0x8490 +0x8F4F 0x8846 +0x8F50 0x8972 +0x8F51 0x8B90 +0x8F52 0x8E74 +0x8F53 0x8F2F +0x8F54 0x9031 +0x8F55 0x914B +0x8F56 0x916C +0x8F57 0x96C6 +0x8F58 0x919C +0x8F59 0x4EC0 +0x8F5A 0x4F4F +0x8F5B 0x5145 +0x8F5C 0x5341 +0x8F5D 0x5F93 +0x8F5E 0x620E +0x8F5F 0x67D4 +0x8F60 0x6C41 +0x8F61 0x6E0B +0x8F62 0x7363 +0x8F63 0x7E26 +0x8F64 0x91CD +0x8F65 0x9283 +0x8F66 0x53D4 +0x8F67 0x5919 +0x8F68 0x5BBF +0x8F69 0x6DD1 +0x8F6A 0x795D +0x8F6B 0x7E2E +0x8F6C 0x7C9B +0x8F6D 0x587E +0x8F6E 0x719F +0x8F6F 0x51FA +0x8F70 0x8853 +0x8F71 0x8FF0 +0x8F72 0x4FCA +0x8F73 0x5CFB +0x8F74 0x6625 +0x8F75 0x77AC +0x8F76 0x7AE3 +0x8F77 0x821C +0x8F78 0x99FF +0x8F79 0x51C6 +0x8F7A 0x5FAA +0x8F7B 0x65EC +0x8F7C 0x696F +0x8F7D 0x6B89 +0x8F7E 0x6DF3 +0x8F80 0x6E96 +0x8F81 0x6F64 +0x8F82 0x76FE +0x8F83 0x7D14 +0x8F84 0x5DE1 +0x8F85 0x9075 +0x8F86 0x9187 +0x8F87 0x9806 +0x8F88 0x51E6 +0x8F89 0x521D +0x8F8A 0x6240 +0x8F8B 0x6691 +0x8F8C 0x66D9 +0x8F8D 0x6E1A +0x8F8E 0x5EB6 +0x8F8F 0x7DD2 +0x8F90 0x7F72 +0x8F91 0x66F8 +0x8F92 0x85AF +0x8F93 0x85F7 +0x8F94 0x8AF8 +0x8F95 0x52A9 +0x8F96 0x53D9 +0x8F97 0x5973 +0x8F98 0x5E8F +0x8F99 0x5F90 +0x8F9A 0x6055 +0x8F9B 0x92E4 +0x8F9C 0x9664 +0x8F9D 0x50B7 +0x8F9E 0x511F +0x8F9F 0x52DD +0x8FA0 0x5320 +0x8FA1 0x5347 +0x8FA2 0x53EC +0x8FA3 0x54E8 +0x8FA4 0x5546 +0x8FA5 0x5531 +0x8FA6 0x5617 +0x8FA7 0x5968 +0x8FA8 0x59BE +0x8FA9 0x5A3C +0x8FAA 0x5BB5 +0x8FAB 0x5C06 +0x8FAC 0x5C0F +0x8FAD 0x5C11 +0x8FAE 0x5C1A +0x8FAF 0x5E84 +0x8FB0 0x5E8A +0x8FB1 0x5EE0 +0x8FB2 0x5F70 +0x8FB3 0x627F +0x8FB4 0x6284 +0x8FB5 0x62DB +0x8FB6 0x638C +0x8FB7 0x6377 +0x8FB8 0x6607 +0x8FB9 0x660C +0x8FBA 0x662D +0x8FBB 0x6676 +0x8FBC 0x677E +0x8FBD 0x68A2 +0x8FBE 0x6A1F +0x8FBF 0x6A35 +0x8FC0 0x6CBC +0x8FC1 0x6D88 +0x8FC2 0x6E09 +0x8FC3 0x6E58 +0x8FC4 0x713C +0x8FC5 0x7126 +0x8FC6 0x7167 +0x8FC7 0x75C7 +0x8FC8 0x7701 +0x8FC9 0x785D +0x8FCA 0x7901 +0x8FCB 0x7965 +0x8FCC 0x79F0 +0x8FCD 0x7AE0 +0x8FCE 0x7B11 +0x8FCF 0x7CA7 +0x8FD0 0x7D39 +0x8FD1 0x8096 +0x8FD2 0x83D6 +0x8FD3 0x848B +0x8FD4 0x8549 +0x8FD5 0x885D +0x8FD6 0x88F3 +0x8FD7 0x8A1F +0x8FD8 0x8A3C +0x8FD9 0x8A54 +0x8FDA 0x8A73 +0x8FDB 0x8C61 +0x8FDC 0x8CDE +0x8FDD 0x91A4 +0x8FDE 0x9266 +0x8FDF 0x937E +0x8FE0 0x9418 +0x8FE1 0x969C +0x8FE2 0x9798 +0x8FE3 0x4E0A +0x8FE4 0x4E08 +0x8FE5 0x4E1E +0x8FE6 0x4E57 +0x8FE7 0x5197 +0x8FE8 0x5270 +0x8FE9 0x57CE +0x8FEA 0x5834 +0x8FEB 0x58CC +0x8FEC 0x5B22 +0x8FED 0x5E38 +0x8FEE 0x60C5 +0x8FEF 0x64FE +0x8FF0 0x6761 +0x8FF1 0x6756 +0x8FF2 0x6D44 +0x8FF3 0x72B6 +0x8FF4 0x7573 +0x8FF5 0x7A63 +0x8FF6 0x84B8 +0x8FF7 0x8B72 +0x8FF8 0x91B8 +0x8FF9 0x9320 +0x8FFA 0x5631 +0x8FFB 0x57F4 +0x8FFC 0x98FE +0x9040 0x62ED +0x9041 0x690D +0x9042 0x6B96 +0x9043 0x71ED +0x9044 0x7E54 +0x9045 0x8077 +0x9046 0x8272 +0x9047 0x89E6 +0x9048 0x98DF +0x9049 0x8755 +0x904A 0x8FB1 +0x904B 0x5C3B +0x904C 0x4F38 +0x904D 0x4FE1 +0x904E 0x4FB5 +0x904F 0x5507 +0x9050 0x5A20 +0x9051 0x5BDD +0x9052 0x5BE9 +0x9053 0x5FC3 +0x9054 0x614E +0x9055 0x632F +0x9056 0x65B0 +0x9057 0x664B +0x9058 0x68EE +0x9059 0x699B +0x905A 0x6D78 +0x905B 0x6DF1 +0x905C 0x7533 +0x905D 0x75B9 +0x905E 0x771F +0x905F 0x795E +0x9060 0x79E6 +0x9061 0x7D33 +0x9062 0x81E3 +0x9063 0x82AF +0x9064 0x85AA +0x9065 0x89AA +0x9066 0x8A3A +0x9067 0x8EAB +0x9068 0x8F9B +0x9069 0x9032 +0x906A 0x91DD +0x906B 0x9707 +0x906C 0x4EBA +0x906D 0x4EC1 +0x906E 0x5203 +0x906F 0x5875 +0x9070 0x58EC +0x9071 0x5C0B +0x9072 0x751A +0x9073 0x5C3D +0x9074 0x814E +0x9075 0x8A0A +0x9076 0x8FC5 +0x9077 0x9663 +0x9078 0x976D +0x9079 0x7B25 +0x907A 0x8ACF +0x907B 0x9808 +0x907C 0x9162 +0x907D 0x56F3 +0x907E 0x53A8 +0x9080 0x9017 +0x9081 0x5439 +0x9082 0x5782 +0x9083 0x5E25 +0x9084 0x63A8 +0x9085 0x6C34 +0x9086 0x708A +0x9087 0x7761 +0x9088 0x7C8B +0x9089 0x7FE0 +0x908A 0x8870 +0x908B 0x9042 +0x908C 0x9154 +0x908D 0x9310 +0x908E 0x9318 +0x908F 0x968F +0x9090 0x745E +0x9091 0x9AC4 +0x9092 0x5D07 +0x9093 0x5D69 +0x9094 0x6570 +0x9095 0x67A2 +0x9096 0x8DA8 +0x9097 0x96DB +0x9098 0x636E +0x9099 0x6749 +0x909A 0x6919 +0x909B 0x83C5 +0x909C 0x9817 +0x909D 0x96C0 +0x909E 0x88FE +0x909F 0x6F84 +0x90A0 0x647A +0x90A1 0x5BF8 +0x90A2 0x4E16 +0x90A3 0x702C +0x90A4 0x755D +0x90A5 0x662F +0x90A6 0x51C4 +0x90A7 0x5236 +0x90A8 0x52E2 +0x90A9 0x59D3 +0x90AA 0x5F81 +0x90AB 0x6027 +0x90AC 0x6210 +0x90AD 0x653F +0x90AE 0x6574 +0x90AF 0x661F +0x90B0 0x6674 +0x90B1 0x68F2 +0x90B2 0x6816 +0x90B3 0x6B63 +0x90B4 0x6E05 +0x90B5 0x7272 +0x90B6 0x751F +0x90B7 0x76DB +0x90B8 0x7CBE +0x90B9 0x8056 +0x90BA 0x58F0 +0x90BB 0x88FD +0x90BC 0x897F +0x90BD 0x8AA0 +0x90BE 0x8A93 +0x90BF 0x8ACB +0x90C0 0x901D +0x90C1 0x9192 +0x90C2 0x9752 +0x90C3 0x9759 +0x90C4 0x6589 +0x90C5 0x7A0E +0x90C6 0x8106 +0x90C7 0x96BB +0x90C8 0x5E2D +0x90C9 0x60DC +0x90CA 0x621A +0x90CB 0x65A5 +0x90CC 0x6614 +0x90CD 0x6790 +0x90CE 0x77F3 +0x90CF 0x7A4D +0x90D0 0x7C4D +0x90D1 0x7E3E +0x90D2 0x810A +0x90D3 0x8CAC +0x90D4 0x8D64 +0x90D5 0x8DE1 +0x90D6 0x8E5F +0x90D7 0x78A9 +0x90D8 0x5207 +0x90D9 0x62D9 +0x90DA 0x63A5 +0x90DB 0x6442 +0x90DC 0x6298 +0x90DD 0x8A2D +0x90DE 0x7A83 +0x90DF 0x7BC0 +0x90E0 0x8AAC +0x90E1 0x96EA +0x90E2 0x7D76 +0x90E3 0x820C +0x90E4 0x8749 +0x90E5 0x4ED9 +0x90E6 0x5148 +0x90E7 0x5343 +0x90E8 0x5360 +0x90E9 0x5BA3 +0x90EA 0x5C02 +0x90EB 0x5C16 +0x90EC 0x5DDD +0x90ED 0x6226 +0x90EE 0x6247 +0x90EF 0x64B0 +0x90F0 0x6813 +0x90F1 0x6834 +0x90F2 0x6CC9 +0x90F3 0x6D45 +0x90F4 0x6D17 +0x90F5 0x67D3 +0x90F6 0x6F5C +0x90F7 0x714E +0x90F8 0x717D +0x90F9 0x65CB +0x90FA 0x7A7F +0x90FB 0x7BAD +0x90FC 0x7DDA +0x9140 0x7E4A +0x9141 0x7FA8 +0x9142 0x817A +0x9143 0x821B +0x9144 0x8239 +0x9145 0x85A6 +0x9146 0x8A6E +0x9147 0x8CCE +0x9148 0x8DF5 +0x9149 0x9078 +0x914A 0x9077 +0x914B 0x92AD +0x914C 0x9291 +0x914D 0x9583 +0x914E 0x9BAE +0x914F 0x524D +0x9150 0x5584 +0x9151 0x6F38 +0x9152 0x7136 +0x9153 0x5168 +0x9154 0x7985 +0x9155 0x7E55 +0x9156 0x81B3 +0x9157 0x7CCE +0x9158 0x564C +0x9159 0x5851 +0x915A 0x5CA8 +0x915B 0x63AA +0x915C 0x66FE +0x915D 0x66FD +0x915E 0x695A +0x915F 0x72D9 +0x9160 0x758F +0x9161 0x758E +0x9162 0x790E +0x9163 0x7956 +0x9164 0x79DF +0x9165 0x7C97 +0x9166 0x7D20 +0x9167 0x7D44 +0x9168 0x8607 +0x9169 0x8A34 +0x916A 0x963B +0x916B 0x9061 +0x916C 0x9F20 +0x916D 0x50E7 +0x916E 0x5275 +0x916F 0x53CC +0x9170 0x53E2 +0x9171 0x5009 +0x9172 0x55AA +0x9173 0x58EE +0x9174 0x594F +0x9175 0x723D +0x9176 0x5B8B +0x9177 0x5C64 +0x9178 0x531D +0x9179 0x60E3 +0x917A 0x60F3 +0x917B 0x635C +0x917C 0x6383 +0x917D 0x633F +0x917E 0x63BB +0x9180 0x64CD +0x9181 0x65E9 +0x9182 0x66F9 +0x9183 0x5DE3 +0x9184 0x69CD +0x9185 0x69FD +0x9186 0x6F15 +0x9187 0x71E5 +0x9188 0x4E89 +0x9189 0x75E9 +0x918A 0x76F8 +0x918B 0x7A93 +0x918C 0x7CDF +0x918D 0x7DCF +0x918E 0x7D9C +0x918F 0x8061 +0x9190 0x8349 +0x9191 0x8358 +0x9192 0x846C +0x9193 0x84BC +0x9194 0x85FB +0x9195 0x88C5 +0x9196 0x8D70 +0x9197 0x9001 +0x9198 0x906D +0x9199 0x9397 +0x919A 0x971C +0x919B 0x9A12 +0x919C 0x50CF +0x919D 0x5897 +0x919E 0x618E +0x919F 0x81D3 +0x91A0 0x8535 +0x91A1 0x8D08 +0x91A2 0x9020 +0x91A3 0x4FC3 +0x91A4 0x5074 +0x91A5 0x5247 +0x91A6 0x5373 +0x91A7 0x606F +0x91A8 0x6349 +0x91A9 0x675F +0x91AA 0x6E2C +0x91AB 0x8DB3 +0x91AC 0x901F +0x91AD 0x4FD7 +0x91AE 0x5C5E +0x91AF 0x8CCA +0x91B0 0x65CF +0x91B1 0x7D9A +0x91B2 0x5352 +0x91B3 0x8896 +0x91B4 0x5176 +0x91B5 0x63C3 +0x91B6 0x5B58 +0x91B7 0x5B6B +0x91B8 0x5C0A +0x91B9 0x640D +0x91BA 0x6751 +0x91BB 0x905C +0x91BC 0x4ED6 +0x91BD 0x591A +0x91BE 0x592A +0x91BF 0x6C70 +0x91C0 0x8A51 +0x91C1 0x553E +0x91C2 0x5815 +0x91C3 0x59A5 +0x91C4 0x60F0 +0x91C5 0x6253 +0x91C6 0x67C1 +0x91C7 0x8235 +0x91C8 0x6955 +0x91C9 0x9640 +0x91CA 0x99C4 +0x91CB 0x9A28 +0x91CC 0x4F53 +0x91CD 0x5806 +0x91CE 0x5BFE +0x91CF 0x8010 +0x91D0 0x5CB1 +0x91D1 0x5E2F +0x91D2 0x5F85 +0x91D3 0x6020 +0x91D4 0x614B +0x91D5 0x6234 +0x91D6 0x66FF +0x91D7 0x6CF0 +0x91D8 0x6EDE +0x91D9 0x80CE +0x91DA 0x817F +0x91DB 0x82D4 +0x91DC 0x888B +0x91DD 0x8CB8 +0x91DE 0x9000 +0x91DF 0x902E +0x91E0 0x968A +0x91E1 0x9EDB +0x91E2 0x9BDB +0x91E3 0x4EE3 +0x91E4 0x53F0 +0x91E5 0x5927 +0x91E6 0x7B2C +0x91E7 0x918D +0x91E8 0x984C +0x91E9 0x9DF9 +0x91EA 0x6EDD +0x91EB 0x7027 +0x91EC 0x5353 +0x91ED 0x5544 +0x91EE 0x5B85 +0x91EF 0x6258 +0x91F0 0x629E +0x91F1 0x62D3 +0x91F2 0x6CA2 +0x91F3 0x6FEF +0x91F4 0x7422 +0x91F5 0x8A17 +0x91F6 0x9438 +0x91F7 0x6FC1 +0x91F8 0x8AFE +0x91F9 0x8338 +0x91FA 0x51E7 +0x91FB 0x86F8 +0x91FC 0x53EA +0x9240 0x53E9 +0x9241 0x4F46 +0x9242 0x9054 +0x9243 0x8FB0 +0x9244 0x596A +0x9245 0x8131 +0x9246 0x5DFD +0x9247 0x7AEA +0x9248 0x8FBF +0x9249 0x68DA +0x924A 0x8C37 +0x924B 0x72F8 +0x924C 0x9C48 +0x924D 0x6A3D +0x924E 0x8AB0 +0x924F 0x4E39 +0x9250 0x5358 +0x9251 0x5606 +0x9252 0x5766 +0x9253 0x62C5 +0x9254 0x63A2 +0x9255 0x65E6 +0x9256 0x6B4E +0x9257 0x6DE1 +0x9258 0x6E5B +0x9259 0x70AD +0x925A 0x77ED +0x925B 0x7AEF +0x925C 0x7BAA +0x925D 0x7DBB +0x925E 0x803D +0x925F 0x80C6 +0x9260 0x86CB +0x9261 0x8A95 +0x9262 0x935B +0x9263 0x56E3 +0x9264 0x58C7 +0x9265 0x5F3E +0x9266 0x65AD +0x9267 0x6696 +0x9268 0x6A80 +0x9269 0x6BB5 +0x926A 0x7537 +0x926B 0x8AC7 +0x926C 0x5024 +0x926D 0x77E5 +0x926E 0x5730 +0x926F 0x5F1B +0x9270 0x6065 +0x9271 0x667A +0x9272 0x6C60 +0x9273 0x75F4 +0x9274 0x7A1A +0x9275 0x7F6E +0x9276 0x81F4 +0x9277 0x8718 +0x9278 0x9045 +0x9279 0x99B3 +0x927A 0x7BC9 +0x927B 0x755C +0x927C 0x7AF9 +0x927D 0x7B51 +0x927E 0x84C4 +0x9280 0x9010 +0x9281 0x79E9 +0x9282 0x7A92 +0x9283 0x8336 +0x9284 0x5AE1 +0x9285 0x7740 +0x9286 0x4E2D +0x9287 0x4EF2 +0x9288 0x5B99 +0x9289 0x5FE0 +0x928A 0x62BD +0x928B 0x663C +0x928C 0x67F1 +0x928D 0x6CE8 +0x928E 0x866B +0x928F 0x8877 +0x9290 0x8A3B +0x9291 0x914E +0x9292 0x92F3 +0x9293 0x99D0 +0x9294 0x6A17 +0x9295 0x7026 +0x9296 0x732A +0x9297 0x82E7 +0x9298 0x8457 +0x9299 0x8CAF +0x929A 0x4E01 +0x929B 0x5146 +0x929C 0x51CB +0x929D 0x558B +0x929E 0x5BF5 +0x929F 0x5E16 +0x92A0 0x5E33 +0x92A1 0x5E81 +0x92A2 0x5F14 +0x92A3 0x5F35 +0x92A4 0x5F6B +0x92A5 0x5FB4 +0x92A6 0x61F2 +0x92A7 0x6311 +0x92A8 0x66A2 +0x92A9 0x671D +0x92AA 0x6F6E +0x92AB 0x7252 +0x92AC 0x753A +0x92AD 0x773A +0x92AE 0x8074 +0x92AF 0x8139 +0x92B0 0x8178 +0x92B1 0x8776 +0x92B2 0x8ABF +0x92B3 0x8ADC +0x92B4 0x8D85 +0x92B5 0x8DF3 +0x92B6 0x929A +0x92B7 0x9577 +0x92B8 0x9802 +0x92B9 0x9CE5 +0x92BA 0x52C5 +0x92BB 0x6357 +0x92BC 0x76F4 +0x92BD 0x6715 +0x92BE 0x6C88 +0x92BF 0x73CD +0x92C0 0x8CC3 +0x92C1 0x93AE +0x92C2 0x9673 +0x92C3 0x6D25 +0x92C4 0x589C +0x92C5 0x690E +0x92C6 0x69CC +0x92C7 0x8FFD +0x92C8 0x939A +0x92C9 0x75DB +0x92CA 0x901A +0x92CB 0x585A +0x92CC 0x6802 +0x92CD 0x63B4 +0x92CE 0x69FB +0x92CF 0x4F43 +0x92D0 0x6F2C +0x92D1 0x67D8 +0x92D2 0x8FBB +0x92D3 0x8526 +0x92D4 0x7DB4 +0x92D5 0x9354 +0x92D6 0x693F +0x92D7 0x6F70 +0x92D8 0x576A +0x92D9 0x58F7 +0x92DA 0x5B2C +0x92DB 0x7D2C +0x92DC 0x722A +0x92DD 0x540A +0x92DE 0x91E3 +0x92DF 0x9DB4 +0x92E0 0x4EAD +0x92E1 0x4F4E +0x92E2 0x505C +0x92E3 0x5075 +0x92E4 0x5243 +0x92E5 0x8C9E +0x92E6 0x5448 +0x92E7 0x5824 +0x92E8 0x5B9A +0x92E9 0x5E1D +0x92EA 0x5E95 +0x92EB 0x5EAD +0x92EC 0x5EF7 +0x92ED 0x5F1F +0x92EE 0x608C +0x92EF 0x62B5 +0x92F0 0x633A +0x92F1 0x63D0 +0x92F2 0x68AF +0x92F3 0x6C40 +0x92F4 0x7887 +0x92F5 0x798E +0x92F6 0x7A0B +0x92F7 0x7DE0 +0x92F8 0x8247 +0x92F9 0x8A02 +0x92FA 0x8AE6 +0x92FB 0x8E44 +0x92FC 0x9013 +0x9340 0x90B8 +0x9341 0x912D +0x9342 0x91D8 +0x9343 0x9F0E +0x9344 0x6CE5 +0x9345 0x6458 +0x9346 0x64E2 +0x9347 0x6575 +0x9348 0x6EF4 +0x9349 0x7684 +0x934A 0x7B1B +0x934B 0x9069 +0x934C 0x93D1 +0x934D 0x6EBA +0x934E 0x54F2 +0x934F 0x5FB9 +0x9350 0x64A4 +0x9351 0x8F4D +0x9352 0x8FED +0x9353 0x9244 +0x9354 0x5178 +0x9355 0x586B +0x9356 0x5929 +0x9357 0x5C55 +0x9358 0x5E97 +0x9359 0x6DFB +0x935A 0x7E8F +0x935B 0x751C +0x935C 0x8CBC +0x935D 0x8EE2 +0x935E 0x985B +0x935F 0x70B9 +0x9360 0x4F1D +0x9361 0x6BBF +0x9362 0x6FB1 +0x9363 0x7530 +0x9364 0x96FB +0x9365 0x514E +0x9366 0x5410 +0x9367 0x5835 +0x9368 0x5857 +0x9369 0x59AC +0x936A 0x5C60 +0x936B 0x5F92 +0x936C 0x6597 +0x936D 0x675C +0x936E 0x6E21 +0x936F 0x767B +0x9370 0x83DF +0x9371 0x8CED +0x9372 0x9014 +0x9373 0x90FD +0x9374 0x934D +0x9375 0x7825 +0x9376 0x783A +0x9377 0x52AA +0x9378 0x5EA6 +0x9379 0x571F +0x937A 0x5974 +0x937B 0x6012 +0x937C 0x5012 +0x937D 0x515A +0x937E 0x51AC +0x9380 0x51CD +0x9381 0x5200 +0x9382 0x5510 +0x9383 0x5854 +0x9384 0x5858 +0x9385 0x5957 +0x9386 0x5B95 +0x9387 0x5CF6 +0x9388 0x5D8B +0x9389 0x60BC +0x938A 0x6295 +0x938B 0x642D +0x938C 0x6771 +0x938D 0x6843 +0x938E 0x68BC +0x938F 0x68DF +0x9390 0x76D7 +0x9391 0x6DD8 +0x9392 0x6E6F +0x9393 0x6D9B +0x9394 0x706F +0x9395 0x71C8 +0x9396 0x5F53 +0x9397 0x75D8 +0x9398 0x7977 +0x9399 0x7B49 +0x939A 0x7B54 +0x939B 0x7B52 +0x939C 0x7CD6 +0x939D 0x7D71 +0x939E 0x5230 +0x939F 0x8463 +0x93A0 0x8569 +0x93A1 0x85E4 +0x93A2 0x8A0E +0x93A3 0x8B04 +0x93A4 0x8C46 +0x93A5 0x8E0F +0x93A6 0x9003 +0x93A7 0x900F +0x93A8 0x9419 +0x93A9 0x9676 +0x93AA 0x982D +0x93AB 0x9A30 +0x93AC 0x95D8 +0x93AD 0x50CD +0x93AE 0x52D5 +0x93AF 0x540C +0x93B0 0x5802 +0x93B1 0x5C0E +0x93B2 0x61A7 +0x93B3 0x649E +0x93B4 0x6D1E +0x93B5 0x77B3 +0x93B6 0x7AE5 +0x93B7 0x80F4 +0x93B8 0x8404 +0x93B9 0x9053 +0x93BA 0x9285 +0x93BB 0x5CE0 +0x93BC 0x9D07 +0x93BD 0x533F +0x93BE 0x5F97 +0x93BF 0x5FB3 +0x93C0 0x6D9C +0x93C1 0x7279 +0x93C2 0x7763 +0x93C3 0x79BF +0x93C4 0x7BE4 +0x93C5 0x6BD2 +0x93C6 0x72EC +0x93C7 0x8AAD +0x93C8 0x6803 +0x93C9 0x6A61 +0x93CA 0x51F8 +0x93CB 0x7A81 +0x93CC 0x6934 +0x93CD 0x5C4A +0x93CE 0x9CF6 +0x93CF 0x82EB +0x93D0 0x5BC5 +0x93D1 0x9149 +0x93D2 0x701E +0x93D3 0x5678 +0x93D4 0x5C6F +0x93D5 0x60C7 +0x93D6 0x6566 +0x93D7 0x6C8C +0x93D8 0x8C5A +0x93D9 0x9041 +0x93DA 0x9813 +0x93DB 0x5451 +0x93DC 0x66C7 +0x93DD 0x920D +0x93DE 0x5948 +0x93DF 0x90A3 +0x93E0 0x5185 +0x93E1 0x4E4D +0x93E2 0x51EA +0x93E3 0x8599 +0x93E4 0x8B0E +0x93E5 0x7058 +0x93E6 0x637A +0x93E7 0x934B +0x93E8 0x6962 +0x93E9 0x99B4 +0x93EA 0x7E04 +0x93EB 0x7577 +0x93EC 0x5357 +0x93ED 0x6960 +0x93EE 0x8EDF +0x93EF 0x96E3 +0x93F0 0x6C5D +0x93F1 0x4E8C +0x93F2 0x5C3C +0x93F3 0x5F10 +0x93F4 0x8FE9 +0x93F5 0x5302 +0x93F6 0x8CD1 +0x93F7 0x8089 +0x93F8 0x8679 +0x93F9 0x5EFF +0x93FA 0x65E5 +0x93FB 0x4E73 +0x93FC 0x5165 +0x9440 0x5982 +0x9441 0x5C3F +0x9442 0x97EE +0x9443 0x4EFB +0x9444 0x598A +0x9445 0x5FCD +0x9446 0x8A8D +0x9447 0x6FE1 +0x9448 0x79B0 +0x9449 0x7962 +0x944A 0x5BE7 +0x944B 0x8471 +0x944C 0x732B +0x944D 0x71B1 +0x944E 0x5E74 +0x944F 0x5FF5 +0x9450 0x637B +0x9451 0x649A +0x9452 0x71C3 +0x9453 0x7C98 +0x9454 0x4E43 +0x9455 0x5EFC +0x9456 0x4E4B +0x9457 0x57DC +0x9458 0x56A2 +0x9459 0x60A9 +0x945A 0x6FC3 +0x945B 0x7D0D +0x945C 0x80FD +0x945D 0x8133 +0x945E 0x81BF +0x945F 0x8FB2 +0x9460 0x8997 +0x9461 0x86A4 +0x9462 0x5DF4 +0x9463 0x628A +0x9464 0x64AD +0x9465 0x8987 +0x9466 0x6777 +0x9467 0x6CE2 +0x9468 0x6D3E +0x9469 0x7436 +0x946A 0x7834 +0x946B 0x5A46 +0x946C 0x7F75 +0x946D 0x82AD +0x946E 0x99AC +0x946F 0x4FF3 +0x9470 0x5EC3 +0x9471 0x62DD +0x9472 0x6392 +0x9473 0x6557 +0x9474 0x676F +0x9475 0x76C3 +0x9476 0x724C +0x9477 0x80CC +0x9478 0x80BA +0x9479 0x8F29 +0x947A 0x914D +0x947B 0x500D +0x947C 0x57F9 +0x947D 0x5A92 +0x947E 0x6885 +0x9480 0x6973 +0x9481 0x7164 +0x9482 0x72FD +0x9483 0x8CB7 +0x9484 0x58F2 +0x9485 0x8CE0 +0x9486 0x966A +0x9487 0x9019 +0x9488 0x877F +0x9489 0x79E4 +0x948A 0x77E7 +0x948B 0x8429 +0x948C 0x4F2F +0x948D 0x5265 +0x948E 0x535A +0x948F 0x62CD +0x9490 0x67CF +0x9491 0x6CCA +0x9492 0x767D +0x9493 0x7B94 +0x9494 0x7C95 +0x9495 0x8236 +0x9496 0x8584 +0x9497 0x8FEB +0x9498 0x66DD +0x9499 0x6F20 +0x949A 0x7206 +0x949B 0x7E1B +0x949C 0x83AB +0x949D 0x99C1 +0x949E 0x9EA6 +0x949F 0x51FD +0x94A0 0x7BB1 +0x94A1 0x7872 +0x94A2 0x7BB8 +0x94A3 0x8087 +0x94A4 0x7B48 +0x94A5 0x6AE8 +0x94A6 0x5E61 +0x94A7 0x808C +0x94A8 0x7551 +0x94A9 0x7560 +0x94AA 0x516B +0x94AB 0x9262 +0x94AC 0x6E8C +0x94AD 0x767A +0x94AE 0x9197 +0x94AF 0x9AEA +0x94B0 0x4F10 +0x94B1 0x7F70 +0x94B2 0x629C +0x94B3 0x7B4F +0x94B4 0x95A5 +0x94B5 0x9CE9 +0x94B6 0x567A +0x94B7 0x5859 +0x94B8 0x86E4 +0x94B9 0x96BC +0x94BA 0x4F34 +0x94BB 0x5224 +0x94BC 0x534A +0x94BD 0x53CD +0x94BE 0x53DB +0x94BF 0x5E06 +0x94C0 0x642C +0x94C1 0x6591 +0x94C2 0x677F +0x94C3 0x6C3E +0x94C4 0x6C4E +0x94C5 0x7248 +0x94C6 0x72AF +0x94C7 0x73ED +0x94C8 0x7554 +0x94C9 0x7E41 +0x94CA 0x822C +0x94CB 0x85E9 +0x94CC 0x8CA9 +0x94CD 0x7BC4 +0x94CE 0x91C6 +0x94CF 0x7169 +0x94D0 0x9812 +0x94D1 0x98EF +0x94D2 0x633D +0x94D3 0x6669 +0x94D4 0x756A +0x94D5 0x76E4 +0x94D6 0x78D0 +0x94D7 0x8543 +0x94D8 0x86EE +0x94D9 0x532A +0x94DA 0x5351 +0x94DB 0x5426 +0x94DC 0x5983 +0x94DD 0x5E87 +0x94DE 0x5F7C +0x94DF 0x60B2 +0x94E0 0x6249 +0x94E1 0x6279 +0x94E2 0x62AB +0x94E3 0x6590 +0x94E4 0x6BD4 +0x94E5 0x6CCC +0x94E6 0x75B2 +0x94E7 0x76AE +0x94E8 0x7891 +0x94E9 0x79D8 +0x94EA 0x7DCB +0x94EB 0x7F77 +0x94EC 0x80A5 +0x94ED 0x88AB +0x94EE 0x8AB9 +0x94EF 0x8CBB +0x94F0 0x907F +0x94F1 0x975E +0x94F2 0x98DB +0x94F3 0x6A0B +0x94F4 0x7C38 +0x94F5 0x5099 +0x94F6 0x5C3E +0x94F7 0x5FAE +0x94F8 0x6787 +0x94F9 0x6BD8 +0x94FA 0x7435 +0x94FB 0x7709 +0x94FC 0x7F8E +0x9540 0x9F3B +0x9541 0x67CA +0x9542 0x7A17 +0x9543 0x5339 +0x9544 0x758B +0x9545 0x9AED +0x9546 0x5F66 +0x9547 0x819D +0x9548 0x83F1 +0x9549 0x8098 +0x954A 0x5F3C +0x954B 0x5FC5 +0x954C 0x7562 +0x954D 0x7B46 +0x954E 0x903C +0x954F 0x6867 +0x9550 0x59EB +0x9551 0x5A9B +0x9552 0x7D10 +0x9553 0x767E +0x9554 0x8B2C +0x9555 0x4FF5 +0x9556 0x5F6A +0x9557 0x6A19 +0x9558 0x6C37 +0x9559 0x6F02 +0x955A 0x74E2 +0x955B 0x7968 +0x955C 0x8868 +0x955D 0x8A55 +0x955E 0x8C79 +0x955F 0x5EDF +0x9560 0x63CF +0x9561 0x75C5 +0x9562 0x79D2 +0x9563 0x82D7 +0x9564 0x9328 +0x9565 0x92F2 +0x9566 0x849C +0x9567 0x86ED +0x9568 0x9C2D +0x9569 0x54C1 +0x956A 0x5F6C +0x956B 0x658C +0x956C 0x6D5C +0x956D 0x7015 +0x956E 0x8CA7 +0x956F 0x8CD3 +0x9570 0x983B +0x9571 0x654F +0x9572 0x74F6 +0x9573 0x4E0D +0x9574 0x4ED8 +0x9575 0x57E0 +0x9576 0x592B +0x9577 0x5A66 +0x9578 0x5BCC +0x9579 0x51A8 +0x957A 0x5E03 +0x957B 0x5E9C +0x957C 0x6016 +0x957D 0x6276 +0x957E 0x6577 +0x9580 0x65A7 +0x9581 0x666E +0x9582 0x6D6E +0x9583 0x7236 +0x9584 0x7B26 +0x9585 0x8150 +0x9586 0x819A +0x9587 0x8299 +0x9588 0x8B5C +0x9589 0x8CA0 +0x958A 0x8CE6 +0x958B 0x8D74 +0x958C 0x961C +0x958D 0x9644 +0x958E 0x4FAE +0x958F 0x64AB +0x9590 0x6B66 +0x9591 0x821E +0x9592 0x8461 +0x9593 0x856A +0x9594 0x90E8 +0x9595 0x5C01 +0x9596 0x6953 +0x9597 0x98A8 +0x9598 0x847A +0x9599 0x8557 +0x959A 0x4F0F +0x959B 0x526F +0x959C 0x5FA9 +0x959D 0x5E45 +0x959E 0x670D +0x959F 0x798F +0x95A0 0x8179 +0x95A1 0x8907 +0x95A2 0x8986 +0x95A3 0x6DF5 +0x95A4 0x5F17 +0x95A5 0x6255 +0x95A6 0x6CB8 +0x95A7 0x4ECF +0x95A8 0x7269 +0x95A9 0x9B92 +0x95AA 0x5206 +0x95AB 0x543B +0x95AC 0x5674 +0x95AD 0x58B3 +0x95AE 0x61A4 +0x95AF 0x626E +0x95B0 0x711A +0x95B1 0x596E +0x95B2 0x7C89 +0x95B3 0x7CDE +0x95B4 0x7D1B +0x95B5 0x96F0 +0x95B6 0x6587 +0x95B7 0x805E +0x95B8 0x4E19 +0x95B9 0x4F75 +0x95BA 0x5175 +0x95BB 0x5840 +0x95BC 0x5E63 +0x95BD 0x5E73 +0x95BE 0x5F0A +0x95BF 0x67C4 +0x95C0 0x4E26 +0x95C1 0x853D +0x95C2 0x9589 +0x95C3 0x965B +0x95C4 0x7C73 +0x95C5 0x9801 +0x95C6 0x50FB +0x95C7 0x58C1 +0x95C8 0x7656 +0x95C9 0x78A7 +0x95CA 0x5225 +0x95CB 0x77A5 +0x95CC 0x8511 +0x95CD 0x7B86 +0x95CE 0x504F +0x95CF 0x5909 +0x95D0 0x7247 +0x95D1 0x7BC7 +0x95D2 0x7DE8 +0x95D3 0x8FBA +0x95D4 0x8FD4 +0x95D5 0x904D +0x95D6 0x4FBF +0x95D7 0x52C9 +0x95D8 0x5A29 +0x95D9 0x5F01 +0x95DA 0x97AD +0x95DB 0x4FDD +0x95DC 0x8217 +0x95DD 0x92EA +0x95DE 0x5703 +0x95DF 0x6355 +0x95E0 0x6B69 +0x95E1 0x752B +0x95E2 0x88DC +0x95E3 0x8F14 +0x95E4 0x7A42 +0x95E5 0x52DF +0x95E6 0x5893 +0x95E7 0x6155 +0x95E8 0x620A +0x95E9 0x66AE +0x95EA 0x6BCD +0x95EB 0x7C3F +0x95EC 0x83E9 +0x95ED 0x5023 +0x95EE 0x4FF8 +0x95EF 0x5305 +0x95F0 0x5446 +0x95F1 0x5831 +0x95F2 0x5949 +0x95F3 0x5B9D +0x95F4 0x5CF0 +0x95F5 0x5CEF +0x95F6 0x5D29 +0x95F7 0x5E96 +0x95F8 0x62B1 +0x95F9 0x6367 +0x95FA 0x653E +0x95FB 0x65B9 +0x95FC 0x670B +0x9640 0x6CD5 +0x9641 0x6CE1 +0x9642 0x70F9 +0x9643 0x7832 +0x9644 0x7E2B +0x9645 0x80DE +0x9646 0x82B3 +0x9647 0x840C +0x9648 0x84EC +0x9649 0x8702 +0x964A 0x8912 +0x964B 0x8A2A +0x964C 0x8C4A +0x964D 0x90A6 +0x964E 0x92D2 +0x964F 0x98FD +0x9650 0x9CF3 +0x9651 0x9D6C +0x9652 0x4E4F +0x9653 0x4EA1 +0x9654 0x508D +0x9655 0x5256 +0x9656 0x574A +0x9657 0x59A8 +0x9658 0x5E3D +0x9659 0x5FD8 +0x965A 0x5FD9 +0x965B 0x623F +0x965C 0x66B4 +0x965D 0x671B +0x965E 0x67D0 +0x965F 0x68D2 +0x9660 0x5192 +0x9661 0x7D21 +0x9662 0x80AA +0x9663 0x81A8 +0x9664 0x8B00 +0x9665 0x8C8C +0x9666 0x8CBF +0x9667 0x927E +0x9668 0x9632 +0x9669 0x5420 +0x966A 0x982C +0x966B 0x5317 +0x966C 0x50D5 +0x966D 0x535C +0x966E 0x58A8 +0x966F 0x64B2 +0x9670 0x6734 +0x9671 0x7267 +0x9672 0x7766 +0x9673 0x7A46 +0x9674 0x91E6 +0x9675 0x52C3 +0x9676 0x6CA1 +0x9677 0x6B86 +0x9678 0x5800 +0x9679 0x5E4C +0x967A 0x5954 +0x967B 0x672C +0x967C 0x7FFB +0x967D 0x51E1 +0x967E 0x76C6 +0x9680 0x6469 +0x9681 0x78E8 +0x9682 0x9B54 +0x9683 0x9EBB +0x9684 0x57CB +0x9685 0x59B9 +0x9686 0x6627 +0x9687 0x679A +0x9688 0x6BCE +0x9689 0x54E9 +0x968A 0x69D9 +0x968B 0x5E55 +0x968C 0x819C +0x968D 0x6795 +0x968E 0x9BAA +0x968F 0x67FE +0x9690 0x9C52 +0x9691 0x685D +0x9692 0x4EA6 +0x9693 0x4FE3 +0x9694 0x53C8 +0x9695 0x62B9 +0x9696 0x672B +0x9697 0x6CAB +0x9698 0x8FC4 +0x9699 0x4FAD +0x969A 0x7E6D +0x969B 0x9EBF +0x969C 0x4E07 +0x969D 0x6162 +0x969E 0x6E80 +0x969F 0x6F2B +0x96A0 0x8513 +0x96A1 0x5473 +0x96A2 0x672A +0x96A3 0x9B45 +0x96A4 0x5DF3 +0x96A5 0x7B95 +0x96A6 0x5CAC +0x96A7 0x5BC6 +0x96A8 0x871C +0x96A9 0x6E4A +0x96AA 0x84D1 +0x96AB 0x7A14 +0x96AC 0x8108 +0x96AD 0x5999 +0x96AE 0x7C8D +0x96AF 0x6C11 +0x96B0 0x7720 +0x96B1 0x52D9 +0x96B2 0x5922 +0x96B3 0x7121 +0x96B4 0x725F +0x96B5 0x77DB +0x96B6 0x9727 +0x96B7 0x9D61 +0x96B8 0x690B +0x96B9 0x5A7F +0x96BA 0x5A18 +0x96BB 0x51A5 +0x96BC 0x540D +0x96BD 0x547D +0x96BE 0x660E +0x96BF 0x76DF +0x96C0 0x8FF7 +0x96C1 0x9298 +0x96C2 0x9CF4 +0x96C3 0x59EA +0x96C4 0x725D +0x96C5 0x6EC5 +0x96C6 0x514D +0x96C7 0x68C9 +0x96C8 0x7DBF +0x96C9 0x7DEC +0x96CA 0x9762 +0x96CB 0x9EBA +0x96CC 0x6478 +0x96CD 0x6A21 +0x96CE 0x8302 +0x96CF 0x5984 +0x96D0 0x5B5F +0x96D1 0x6BDB +0x96D2 0x731B +0x96D3 0x76F2 +0x96D4 0x7DB2 +0x96D5 0x8017 +0x96D6 0x8499 +0x96D7 0x5132 +0x96D8 0x6728 +0x96D9 0x9ED9 +0x96DA 0x76EE +0x96DB 0x6762 +0x96DC 0x52FF +0x96DD 0x9905 +0x96DE 0x5C24 +0x96DF 0x623B +0x96E0 0x7C7E +0x96E1 0x8CB0 +0x96E2 0x554F +0x96E3 0x60B6 +0x96E4 0x7D0B +0x96E5 0x9580 +0x96E6 0x5301 +0x96E7 0x4E5F +0x96E8 0x51B6 +0x96E9 0x591C +0x96EA 0x723A +0x96EB 0x8036 +0x96EC 0x91CE +0x96ED 0x5F25 +0x96EE 0x77E2 +0x96EF 0x5384 +0x96F0 0x5F79 +0x96F1 0x7D04 +0x96F2 0x85AC +0x96F3 0x8A33 +0x96F4 0x8E8D +0x96F5 0x9756 +0x96F6 0x67F3 +0x96F7 0x85AE +0x96F8 0x9453 +0x96F9 0x6109 +0x96FA 0x6108 +0x96FB 0x6CB9 +0x96FC 0x7652 +0x9740 0x8AED +0x9741 0x8F38 +0x9742 0x552F +0x9743 0x4F51 +0x9744 0x512A +0x9745 0x52C7 +0x9746 0x53CB +0x9747 0x5BA5 +0x9748 0x5E7D +0x9749 0x60A0 +0x974A 0x6182 +0x974B 0x63D6 +0x974C 0x6709 +0x974D 0x67DA +0x974E 0x6E67 +0x974F 0x6D8C +0x9750 0x7336 +0x9751 0x7337 +0x9752 0x7531 +0x9753 0x7950 +0x9754 0x88D5 +0x9755 0x8A98 +0x9756 0x904A +0x9757 0x9091 +0x9758 0x90F5 +0x9759 0x96C4 +0x975A 0x878D +0x975B 0x5915 +0x975C 0x4E88 +0x975D 0x4F59 +0x975E 0x4E0E +0x975F 0x8A89 +0x9760 0x8F3F +0x9761 0x9810 +0x9762 0x50AD +0x9763 0x5E7C +0x9764 0x5996 +0x9765 0x5BB9 +0x9766 0x5EB8 +0x9767 0x63DA +0x9768 0x63FA +0x9769 0x64C1 +0x976A 0x66DC +0x976B 0x694A +0x976C 0x69D8 +0x976D 0x6D0B +0x976E 0x6EB6 +0x976F 0x7194 +0x9770 0x7528 +0x9771 0x7AAF +0x9772 0x7F8A +0x9773 0x8000 +0x9774 0x8449 +0x9775 0x84C9 +0x9776 0x8981 +0x9777 0x8B21 +0x9778 0x8E0A +0x9779 0x9065 +0x977A 0x967D +0x977B 0x990A +0x977C 0x617E +0x977D 0x6291 +0x977E 0x6B32 +0x9780 0x6C83 +0x9781 0x6D74 +0x9782 0x7FCC +0x9783 0x7FFC +0x9784 0x6DC0 +0x9785 0x7F85 +0x9786 0x87BA +0x9787 0x88F8 +0x9788 0x6765 +0x9789 0x83B1 +0x978A 0x983C +0x978B 0x96F7 +0x978C 0x6D1B +0x978D 0x7D61 +0x978E 0x843D +0x978F 0x916A +0x9790 0x4E71 +0x9791 0x5375 +0x9792 0x5D50 +0x9793 0x6B04 +0x9794 0x6FEB +0x9795 0x85CD +0x9796 0x862D +0x9797 0x89A7 +0x9798 0x5229 +0x9799 0x540F +0x979A 0x5C65 +0x979B 0x674E +0x979C 0x68A8 +0x979D 0x7406 +0x979E 0x7483 +0x979F 0x75E2 +0x97A0 0x88CF +0x97A1 0x88E1 +0x97A2 0x91CC +0x97A3 0x96E2 +0x97A4 0x9678 +0x97A5 0x5F8B +0x97A6 0x7387 +0x97A7 0x7ACB +0x97A8 0x844E +0x97A9 0x63A0 +0x97AA 0x7565 +0x97AB 0x5289 +0x97AC 0x6D41 +0x97AD 0x6E9C +0x97AE 0x7409 +0x97AF 0x7559 +0x97B0 0x786B +0x97B1 0x7C92 +0x97B2 0x9686 +0x97B3 0x7ADC +0x97B4 0x9F8D +0x97B5 0x4FB6 +0x97B6 0x616E +0x97B7 0x65C5 +0x97B8 0x865C +0x97B9 0x4E86 +0x97BA 0x4EAE +0x97BB 0x50DA +0x97BC 0x4E21 +0x97BD 0x51CC +0x97BE 0x5BEE +0x97BF 0x6599 +0x97C0 0x6881 +0x97C1 0x6DBC +0x97C2 0x731F +0x97C3 0x7642 +0x97C4 0x77AD +0x97C5 0x7A1C +0x97C6 0x7CE7 +0x97C7 0x826F +0x97C8 0x8AD2 +0x97C9 0x907C +0x97CA 0x91CF +0x97CB 0x9675 +0x97CC 0x9818 +0x97CD 0x529B +0x97CE 0x7DD1 +0x97CF 0x502B +0x97D0 0x5398 +0x97D1 0x6797 +0x97D2 0x6DCB +0x97D3 0x71D0 +0x97D4 0x7433 +0x97D5 0x81E8 +0x97D6 0x8F2A +0x97D7 0x96A3 +0x97D8 0x9C57 +0x97D9 0x9E9F +0x97DA 0x7460 +0x97DB 0x5841 +0x97DC 0x6D99 +0x97DD 0x7D2F +0x97DE 0x985E +0x97DF 0x4EE4 +0x97E0 0x4F36 +0x97E1 0x4F8B +0x97E2 0x51B7 +0x97E3 0x52B1 +0x97E4 0x5DBA +0x97E5 0x601C +0x97E6 0x73B2 +0x97E7 0x793C +0x97E8 0x82D3 +0x97E9 0x9234 +0x97EA 0x96B7 +0x97EB 0x96F6 +0x97EC 0x970A +0x97ED 0x9E97 +0x97EE 0x9F62 +0x97EF 0x66A6 +0x97F0 0x6B74 +0x97F1 0x5217 +0x97F2 0x52A3 +0x97F3 0x70C8 +0x97F4 0x88C2 +0x97F5 0x5EC9 +0x97F6 0x604B +0x97F7 0x6190 +0x97F8 0x6F23 +0x97F9 0x7149 +0x97FA 0x7C3E +0x97FB 0x7DF4 +0x97FC 0x806F +0x9840 0x84EE +0x9841 0x9023 +0x9842 0x932C +0x9843 0x5442 +0x9844 0x9B6F +0x9845 0x6AD3 +0x9846 0x7089 +0x9847 0x8CC2 +0x9848 0x8DEF +0x9849 0x9732 +0x984A 0x52B4 +0x984B 0x5A41 +0x984C 0x5ECA +0x984D 0x5F04 +0x984E 0x6717 +0x984F 0x697C +0x9850 0x6994 +0x9851 0x6D6A +0x9852 0x6F0F +0x9853 0x7262 +0x9854 0x72FC +0x9855 0x7BED +0x9856 0x8001 +0x9857 0x807E +0x9858 0x874B +0x9859 0x90CE +0x985A 0x516D +0x985B 0x9E93 +0x985C 0x7984 +0x985D 0x808B +0x985E 0x9332 +0x985F 0x8AD6 +0x9860 0x502D +0x9861 0x548C +0x9862 0x8A71 +0x9863 0x6B6A +0x9864 0x8CC4 +0x9865 0x8107 +0x9866 0x60D1 +0x9867 0x67A0 +0x9868 0x9DF2 +0x9869 0x4E99 +0x986A 0x4E98 +0x986B 0x9C10 +0x986C 0x8A6B +0x986D 0x85C1 +0x986E 0x8568 +0x986F 0x6900 +0x9870 0x6E7E +0x9871 0x7897 +0x9872 0x8155 +0x989F 0x5F0C +0x98A0 0x4E10 +0x98A1 0x4E15 +0x98A2 0x4E2A +0x98A3 0x4E31 +0x98A4 0x4E36 +0x98A5 0x4E3C +0x98A6 0x4E3F +0x98A7 0x4E42 +0x98A8 0x4E56 +0x98A9 0x4E58 +0x98AA 0x4E82 +0x98AB 0x4E85 +0x98AC 0x8C6B +0x98AD 0x4E8A +0x98AE 0x8212 +0x98AF 0x5F0D +0x98B0 0x4E8E +0x98B1 0x4E9E +0x98B2 0x4E9F +0x98B3 0x4EA0 +0x98B4 0x4EA2 +0x98B5 0x4EB0 +0x98B6 0x4EB3 +0x98B7 0x4EB6 +0x98B8 0x4ECE +0x98B9 0x4ECD +0x98BA 0x4EC4 +0x98BB 0x4EC6 +0x98BC 0x4EC2 +0x98BD 0x4ED7 +0x98BE 0x4EDE +0x98BF 0x4EED +0x98C0 0x4EDF +0x98C1 0x4EF7 +0x98C2 0x4F09 +0x98C3 0x4F5A +0x98C4 0x4F30 +0x98C5 0x4F5B +0x98C6 0x4F5D +0x98C7 0x4F57 +0x98C8 0x4F47 +0x98C9 0x4F76 +0x98CA 0x4F88 +0x98CB 0x4F8F +0x98CC 0x4F98 +0x98CD 0x4F7B +0x98CE 0x4F69 +0x98CF 0x4F70 +0x98D0 0x4F91 +0x98D1 0x4F6F +0x98D2 0x4F86 +0x98D3 0x4F96 +0x98D4 0x5118 +0x98D5 0x4FD4 +0x98D6 0x4FDF +0x98D7 0x4FCE +0x98D8 0x4FD8 +0x98D9 0x4FDB +0x98DA 0x4FD1 +0x98DB 0x4FDA +0x98DC 0x4FD0 +0x98DD 0x4FE4 +0x98DE 0x4FE5 +0x98DF 0x501A +0x98E0 0x5028 +0x98E1 0x5014 +0x98E2 0x502A +0x98E3 0x5025 +0x98E4 0x5005 +0x98E5 0x4F1C +0x98E6 0x4FF6 +0x98E7 0x5021 +0x98E8 0x5029 +0x98E9 0x502C +0x98EA 0x4FFE +0x98EB 0x4FEF +0x98EC 0x5011 +0x98ED 0x5006 +0x98EE 0x5043 +0x98EF 0x5047 +0x98F0 0x6703 +0x98F1 0x5055 +0x98F2 0x5050 +0x98F3 0x5048 +0x98F4 0x505A +0x98F5 0x5056 +0x98F6 0x506C +0x98F7 0x5078 +0x98F8 0x5080 +0x98F9 0x509A +0x98FA 0x5085 +0x98FB 0x50B4 +0x98FC 0x50B2 +0x9940 0x50C9 +0x9941 0x50CA +0x9942 0x50B3 +0x9943 0x50C2 +0x9944 0x50D6 +0x9945 0x50DE +0x9946 0x50E5 +0x9947 0x50ED +0x9948 0x50E3 +0x9949 0x50EE +0x994A 0x50F9 +0x994B 0x50F5 +0x994C 0x5109 +0x994D 0x5101 +0x994E 0x5102 +0x994F 0x5116 +0x9950 0x5115 +0x9951 0x5114 +0x9952 0x511A +0x9953 0x5121 +0x9954 0x513A +0x9955 0x5137 +0x9956 0x513C +0x9957 0x513B +0x9958 0x513F +0x9959 0x5140 +0x995A 0x5152 +0x995B 0x514C +0x995C 0x5154 +0x995D 0x5162 +0x995E 0x7AF8 +0x995F 0x5169 +0x9960 0x516A +0x9961 0x516E +0x9962 0x5180 +0x9963 0x5182 +0x9964 0x56D8 +0x9965 0x518C +0x9966 0x5189 +0x9967 0x518F +0x9968 0x5191 +0x9969 0x5193 +0x996A 0x5195 +0x996B 0x5196 +0x996C 0x51A4 +0x996D 0x51A6 +0x996E 0x51A2 +0x996F 0x51A9 +0x9970 0x51AA +0x9971 0x51AB +0x9972 0x51B3 +0x9973 0x51B1 +0x9974 0x51B2 +0x9975 0x51B0 +0x9976 0x51B5 +0x9977 0x51BD +0x9978 0x51C5 +0x9979 0x51C9 +0x997A 0x51DB +0x997B 0x51E0 +0x997C 0x8655 +0x997D 0x51E9 +0x997E 0x51ED +0x9980 0x51F0 +0x9981 0x51F5 +0x9982 0x51FE +0x9983 0x5204 +0x9984 0x520B +0x9985 0x5214 +0x9986 0x520E +0x9987 0x5227 +0x9988 0x522A +0x9989 0x522E +0x998A 0x5233 +0x998B 0x5239 +0x998C 0x524F +0x998D 0x5244 +0x998E 0x524B +0x998F 0x524C +0x9990 0x525E +0x9991 0x5254 +0x9992 0x526A +0x9993 0x5274 +0x9994 0x5269 +0x9995 0x5273 +0x9996 0x527F +0x9997 0x527D +0x9998 0x528D +0x9999 0x5294 +0x999A 0x5292 +0x999B 0x5271 +0x999C 0x5288 +0x999D 0x5291 +0x999E 0x8FA8 +0x999F 0x8FA7 +0x99A0 0x52AC +0x99A1 0x52AD +0x99A2 0x52BC +0x99A3 0x52B5 +0x99A4 0x52C1 +0x99A5 0x52CD +0x99A6 0x52D7 +0x99A7 0x52DE +0x99A8 0x52E3 +0x99A9 0x52E6 +0x99AA 0x98ED +0x99AB 0x52E0 +0x99AC 0x52F3 +0x99AD 0x52F5 +0x99AE 0x52F8 +0x99AF 0x52F9 +0x99B0 0x5306 +0x99B1 0x5308 +0x99B2 0x7538 +0x99B3 0x530D +0x99B4 0x5310 +0x99B5 0x530F +0x99B6 0x5315 +0x99B7 0x531A +0x99B8 0x5323 +0x99B9 0x532F +0x99BA 0x5331 +0x99BB 0x5333 +0x99BC 0x5338 +0x99BD 0x5340 +0x99BE 0x5346 +0x99BF 0x5345 +0x99C0 0x4E17 +0x99C1 0x5349 +0x99C2 0x534D +0x99C3 0x51D6 +0x99C4 0x535E +0x99C5 0x5369 +0x99C6 0x536E +0x99C7 0x5918 +0x99C8 0x537B +0x99C9 0x5377 +0x99CA 0x5382 +0x99CB 0x5396 +0x99CC 0x53A0 +0x99CD 0x53A6 +0x99CE 0x53A5 +0x99CF 0x53AE +0x99D0 0x53B0 +0x99D1 0x53B6 +0x99D2 0x53C3 +0x99D3 0x7C12 +0x99D4 0x96D9 +0x99D5 0x53DF +0x99D6 0x66FC +0x99D7 0x71EE +0x99D8 0x53EE +0x99D9 0x53E8 +0x99DA 0x53ED +0x99DB 0x53FA +0x99DC 0x5401 +0x99DD 0x543D +0x99DE 0x5440 +0x99DF 0x542C +0x99E0 0x542D +0x99E1 0x543C +0x99E2 0x542E +0x99E3 0x5436 +0x99E4 0x5429 +0x99E5 0x541D +0x99E6 0x544E +0x99E7 0x548F +0x99E8 0x5475 +0x99E9 0x548E +0x99EA 0x545F +0x99EB 0x5471 +0x99EC 0x5477 +0x99ED 0x5470 +0x99EE 0x5492 +0x99EF 0x547B +0x99F0 0x5480 +0x99F1 0x5476 +0x99F2 0x5484 +0x99F3 0x5490 +0x99F4 0x5486 +0x99F5 0x54C7 +0x99F6 0x54A2 +0x99F7 0x54B8 +0x99F8 0x54A5 +0x99F9 0x54AC +0x99FA 0x54C4 +0x99FB 0x54C8 +0x99FC 0x54A8 +0x9A40 0x54AB +0x9A41 0x54C2 +0x9A42 0x54A4 +0x9A43 0x54BE +0x9A44 0x54BC +0x9A45 0x54D8 +0x9A46 0x54E5 +0x9A47 0x54E6 +0x9A48 0x550F +0x9A49 0x5514 +0x9A4A 0x54FD +0x9A4B 0x54EE +0x9A4C 0x54ED +0x9A4D 0x54FA +0x9A4E 0x54E2 +0x9A4F 0x5539 +0x9A50 0x5540 +0x9A51 0x5563 +0x9A52 0x554C +0x9A53 0x552E +0x9A54 0x555C +0x9A55 0x5545 +0x9A56 0x5556 +0x9A57 0x5557 +0x9A58 0x5538 +0x9A59 0x5533 +0x9A5A 0x555D +0x9A5B 0x5599 +0x9A5C 0x5580 +0x9A5D 0x54AF +0x9A5E 0x558A +0x9A5F 0x559F +0x9A60 0x557B +0x9A61 0x557E +0x9A62 0x5598 +0x9A63 0x559E +0x9A64 0x55AE +0x9A65 0x557C +0x9A66 0x5583 +0x9A67 0x55A9 +0x9A68 0x5587 +0x9A69 0x55A8 +0x9A6A 0x55DA +0x9A6B 0x55C5 +0x9A6C 0x55DF +0x9A6D 0x55C4 +0x9A6E 0x55DC +0x9A6F 0x55E4 +0x9A70 0x55D4 +0x9A71 0x5614 +0x9A72 0x55F7 +0x9A73 0x5616 +0x9A74 0x55FE +0x9A75 0x55FD +0x9A76 0x561B +0x9A77 0x55F9 +0x9A78 0x564E +0x9A79 0x5650 +0x9A7A 0x71DF +0x9A7B 0x5634 +0x9A7C 0x5636 +0x9A7D 0x5632 +0x9A7E 0x5638 +0x9A80 0x566B +0x9A81 0x5664 +0x9A82 0x562F +0x9A83 0x566C +0x9A84 0x566A +0x9A85 0x5686 +0x9A86 0x5680 +0x9A87 0x568A +0x9A88 0x56A0 +0x9A89 0x5694 +0x9A8A 0x568F +0x9A8B 0x56A5 +0x9A8C 0x56AE +0x9A8D 0x56B6 +0x9A8E 0x56B4 +0x9A8F 0x56C2 +0x9A90 0x56BC +0x9A91 0x56C1 +0x9A92 0x56C3 +0x9A93 0x56C0 +0x9A94 0x56C8 +0x9A95 0x56CE +0x9A96 0x56D1 +0x9A97 0x56D3 +0x9A98 0x56D7 +0x9A99 0x56EE +0x9A9A 0x56F9 +0x9A9B 0x5700 +0x9A9C 0x56FF +0x9A9D 0x5704 +0x9A9E 0x5709 +0x9A9F 0x5708 +0x9AA0 0x570B +0x9AA1 0x570D +0x9AA2 0x5713 +0x9AA3 0x5718 +0x9AA4 0x5716 +0x9AA5 0x55C7 +0x9AA6 0x571C +0x9AA7 0x5726 +0x9AA8 0x5737 +0x9AA9 0x5738 +0x9AAA 0x574E +0x9AAB 0x573B +0x9AAC 0x5740 +0x9AAD 0x574F +0x9AAE 0x5769 +0x9AAF 0x57C0 +0x9AB0 0x5788 +0x9AB1 0x5761 +0x9AB2 0x577F +0x9AB3 0x5789 +0x9AB4 0x5793 +0x9AB5 0x57A0 +0x9AB6 0x57B3 +0x9AB7 0x57A4 +0x9AB8 0x57AA +0x9AB9 0x57B0 +0x9ABA 0x57C3 +0x9ABB 0x57C6 +0x9ABC 0x57D4 +0x9ABD 0x57D2 +0x9ABE 0x57D3 +0x9ABF 0x580A +0x9AC0 0x57D6 +0x9AC1 0x57E3 +0x9AC2 0x580B +0x9AC3 0x5819 +0x9AC4 0x581D +0x9AC5 0x5872 +0x9AC6 0x5821 +0x9AC7 0x5862 +0x9AC8 0x584B +0x9AC9 0x5870 +0x9ACA 0x6BC0 +0x9ACB 0x5852 +0x9ACC 0x583D +0x9ACD 0x5879 +0x9ACE 0x5885 +0x9ACF 0x58B9 +0x9AD0 0x589F +0x9AD1 0x58AB +0x9AD2 0x58BA +0x9AD3 0x58DE +0x9AD4 0x58BB +0x9AD5 0x58B8 +0x9AD6 0x58AE +0x9AD7 0x58C5 +0x9AD8 0x58D3 +0x9AD9 0x58D1 +0x9ADA 0x58D7 +0x9ADB 0x58D9 +0x9ADC 0x58D8 +0x9ADD 0x58E5 +0x9ADE 0x58DC +0x9ADF 0x58E4 +0x9AE0 0x58DF +0x9AE1 0x58EF +0x9AE2 0x58FA +0x9AE3 0x58F9 +0x9AE4 0x58FB +0x9AE5 0x58FC +0x9AE6 0x58FD +0x9AE7 0x5902 +0x9AE8 0x590A +0x9AE9 0x5910 +0x9AEA 0x591B +0x9AEB 0x68A6 +0x9AEC 0x5925 +0x9AED 0x592C +0x9AEE 0x592D +0x9AEF 0x5932 +0x9AF0 0x5938 +0x9AF1 0x593E +0x9AF2 0x7AD2 +0x9AF3 0x5955 +0x9AF4 0x5950 +0x9AF5 0x594E +0x9AF6 0x595A +0x9AF7 0x5958 +0x9AF8 0x5962 +0x9AF9 0x5960 +0x9AFA 0x5967 +0x9AFB 0x596C +0x9AFC 0x5969 +0x9B40 0x5978 +0x9B41 0x5981 +0x9B42 0x599D +0x9B43 0x4F5E +0x9B44 0x4FAB +0x9B45 0x59A3 +0x9B46 0x59B2 +0x9B47 0x59C6 +0x9B48 0x59E8 +0x9B49 0x59DC +0x9B4A 0x598D +0x9B4B 0x59D9 +0x9B4C 0x59DA +0x9B4D 0x5A25 +0x9B4E 0x5A1F +0x9B4F 0x5A11 +0x9B50 0x5A1C +0x9B51 0x5A09 +0x9B52 0x5A1A +0x9B53 0x5A40 +0x9B54 0x5A6C +0x9B55 0x5A49 +0x9B56 0x5A35 +0x9B57 0x5A36 +0x9B58 0x5A62 +0x9B59 0x5A6A +0x9B5A 0x5A9A +0x9B5B 0x5ABC +0x9B5C 0x5ABE +0x9B5D 0x5ACB +0x9B5E 0x5AC2 +0x9B5F 0x5ABD +0x9B60 0x5AE3 +0x9B61 0x5AD7 +0x9B62 0x5AE6 +0x9B63 0x5AE9 +0x9B64 0x5AD6 +0x9B65 0x5AFA +0x9B66 0x5AFB +0x9B67 0x5B0C +0x9B68 0x5B0B +0x9B69 0x5B16 +0x9B6A 0x5B32 +0x9B6B 0x5AD0 +0x9B6C 0x5B2A +0x9B6D 0x5B36 +0x9B6E 0x5B3E +0x9B6F 0x5B43 +0x9B70 0x5B45 +0x9B71 0x5B40 +0x9B72 0x5B51 +0x9B73 0x5B55 +0x9B74 0x5B5A +0x9B75 0x5B5B +0x9B76 0x5B65 +0x9B77 0x5B69 +0x9B78 0x5B70 +0x9B79 0x5B73 +0x9B7A 0x5B75 +0x9B7B 0x5B78 +0x9B7C 0x6588 +0x9B7D 0x5B7A +0x9B7E 0x5B80 +0x9B80 0x5B83 +0x9B81 0x5BA6 +0x9B82 0x5BB8 +0x9B83 0x5BC3 +0x9B84 0x5BC7 +0x9B85 0x5BC9 +0x9B86 0x5BD4 +0x9B87 0x5BD0 +0x9B88 0x5BE4 +0x9B89 0x5BE6 +0x9B8A 0x5BE2 +0x9B8B 0x5BDE +0x9B8C 0x5BE5 +0x9B8D 0x5BEB +0x9B8E 0x5BF0 +0x9B8F 0x5BF6 +0x9B90 0x5BF3 +0x9B91 0x5C05 +0x9B92 0x5C07 +0x9B93 0x5C08 +0x9B94 0x5C0D +0x9B95 0x5C13 +0x9B96 0x5C20 +0x9B97 0x5C22 +0x9B98 0x5C28 +0x9B99 0x5C38 +0x9B9A 0x5C39 +0x9B9B 0x5C41 +0x9B9C 0x5C46 +0x9B9D 0x5C4E +0x9B9E 0x5C53 +0x9B9F 0x5C50 +0x9BA0 0x5C4F +0x9BA1 0x5B71 +0x9BA2 0x5C6C +0x9BA3 0x5C6E +0x9BA4 0x4E62 +0x9BA5 0x5C76 +0x9BA6 0x5C79 +0x9BA7 0x5C8C +0x9BA8 0x5C91 +0x9BA9 0x5C94 +0x9BAA 0x599B +0x9BAB 0x5CAB +0x9BAC 0x5CBB +0x9BAD 0x5CB6 +0x9BAE 0x5CBC +0x9BAF 0x5CB7 +0x9BB0 0x5CC5 +0x9BB1 0x5CBE +0x9BB2 0x5CC7 +0x9BB3 0x5CD9 +0x9BB4 0x5CE9 +0x9BB5 0x5CFD +0x9BB6 0x5CFA +0x9BB7 0x5CED +0x9BB8 0x5D8C +0x9BB9 0x5CEA +0x9BBA 0x5D0B +0x9BBB 0x5D15 +0x9BBC 0x5D17 +0x9BBD 0x5D5C +0x9BBE 0x5D1F +0x9BBF 0x5D1B +0x9BC0 0x5D11 +0x9BC1 0x5D14 +0x9BC2 0x5D22 +0x9BC3 0x5D1A +0x9BC4 0x5D19 +0x9BC5 0x5D18 +0x9BC6 0x5D4C +0x9BC7 0x5D52 +0x9BC8 0x5D4E +0x9BC9 0x5D4B +0x9BCA 0x5D6C +0x9BCB 0x5D73 +0x9BCC 0x5D76 +0x9BCD 0x5D87 +0x9BCE 0x5D84 +0x9BCF 0x5D82 +0x9BD0 0x5DA2 +0x9BD1 0x5D9D +0x9BD2 0x5DAC +0x9BD3 0x5DAE +0x9BD4 0x5DBD +0x9BD5 0x5D90 +0x9BD6 0x5DB7 +0x9BD7 0x5DBC +0x9BD8 0x5DC9 +0x9BD9 0x5DCD +0x9BDA 0x5DD3 +0x9BDB 0x5DD2 +0x9BDC 0x5DD6 +0x9BDD 0x5DDB +0x9BDE 0x5DEB +0x9BDF 0x5DF2 +0x9BE0 0x5DF5 +0x9BE1 0x5E0B +0x9BE2 0x5E1A +0x9BE3 0x5E19 +0x9BE4 0x5E11 +0x9BE5 0x5E1B +0x9BE6 0x5E36 +0x9BE7 0x5E37 +0x9BE8 0x5E44 +0x9BE9 0x5E43 +0x9BEA 0x5E40 +0x9BEB 0x5E4E +0x9BEC 0x5E57 +0x9BED 0x5E54 +0x9BEE 0x5E5F +0x9BEF 0x5E62 +0x9BF0 0x5E64 +0x9BF1 0x5E47 +0x9BF2 0x5E75 +0x9BF3 0x5E76 +0x9BF4 0x5E7A +0x9BF5 0x9EBC +0x9BF6 0x5E7F +0x9BF7 0x5EA0 +0x9BF8 0x5EC1 +0x9BF9 0x5EC2 +0x9BFA 0x5EC8 +0x9BFB 0x5ED0 +0x9BFC 0x5ECF +0x9C40 0x5ED6 +0x9C41 0x5EE3 +0x9C42 0x5EDD +0x9C43 0x5EDA +0x9C44 0x5EDB +0x9C45 0x5EE2 +0x9C46 0x5EE1 +0x9C47 0x5EE8 +0x9C48 0x5EE9 +0x9C49 0x5EEC +0x9C4A 0x5EF1 +0x9C4B 0x5EF3 +0x9C4C 0x5EF0 +0x9C4D 0x5EF4 +0x9C4E 0x5EF8 +0x9C4F 0x5EFE +0x9C50 0x5F03 +0x9C51 0x5F09 +0x9C52 0x5F5D +0x9C53 0x5F5C +0x9C54 0x5F0B +0x9C55 0x5F11 +0x9C56 0x5F16 +0x9C57 0x5F29 +0x9C58 0x5F2D +0x9C59 0x5F38 +0x9C5A 0x5F41 +0x9C5B 0x5F48 +0x9C5C 0x5F4C +0x9C5D 0x5F4E +0x9C5E 0x5F2F +0x9C5F 0x5F51 +0x9C60 0x5F56 +0x9C61 0x5F57 +0x9C62 0x5F59 +0x9C63 0x5F61 +0x9C64 0x5F6D +0x9C65 0x5F73 +0x9C66 0x5F77 +0x9C67 0x5F83 +0x9C68 0x5F82 +0x9C69 0x5F7F +0x9C6A 0x5F8A +0x9C6B 0x5F88 +0x9C6C 0x5F91 +0x9C6D 0x5F87 +0x9C6E 0x5F9E +0x9C6F 0x5F99 +0x9C70 0x5F98 +0x9C71 0x5FA0 +0x9C72 0x5FA8 +0x9C73 0x5FAD +0x9C74 0x5FBC +0x9C75 0x5FD6 +0x9C76 0x5FFB +0x9C77 0x5FE4 +0x9C78 0x5FF8 +0x9C79 0x5FF1 +0x9C7A 0x5FDD +0x9C7B 0x60B3 +0x9C7C 0x5FFF +0x9C7D 0x6021 +0x9C7E 0x6060 +0x9C80 0x6019 +0x9C81 0x6010 +0x9C82 0x6029 +0x9C83 0x600E +0x9C84 0x6031 +0x9C85 0x601B +0x9C86 0x6015 +0x9C87 0x602B +0x9C88 0x6026 +0x9C89 0x600F +0x9C8A 0x603A +0x9C8B 0x605A +0x9C8C 0x6041 +0x9C8D 0x606A +0x9C8E 0x6077 +0x9C8F 0x605F +0x9C90 0x604A +0x9C91 0x6046 +0x9C92 0x604D +0x9C93 0x6063 +0x9C94 0x6043 +0x9C95 0x6064 +0x9C96 0x6042 +0x9C97 0x606C +0x9C98 0x606B +0x9C99 0x6059 +0x9C9A 0x6081 +0x9C9B 0x608D +0x9C9C 0x60E7 +0x9C9D 0x6083 +0x9C9E 0x609A +0x9C9F 0x6084 +0x9CA0 0x609B +0x9CA1 0x6096 +0x9CA2 0x6097 +0x9CA3 0x6092 +0x9CA4 0x60A7 +0x9CA5 0x608B +0x9CA6 0x60E1 +0x9CA7 0x60B8 +0x9CA8 0x60E0 +0x9CA9 0x60D3 +0x9CAA 0x60B4 +0x9CAB 0x5FF0 +0x9CAC 0x60BD +0x9CAD 0x60C6 +0x9CAE 0x60B5 +0x9CAF 0x60D8 +0x9CB0 0x614D +0x9CB1 0x6115 +0x9CB2 0x6106 +0x9CB3 0x60F6 +0x9CB4 0x60F7 +0x9CB5 0x6100 +0x9CB6 0x60F4 +0x9CB7 0x60FA +0x9CB8 0x6103 +0x9CB9 0x6121 +0x9CBA 0x60FB +0x9CBB 0x60F1 +0x9CBC 0x610D +0x9CBD 0x610E +0x9CBE 0x6147 +0x9CBF 0x613E +0x9CC0 0x6128 +0x9CC1 0x6127 +0x9CC2 0x614A +0x9CC3 0x613F +0x9CC4 0x613C +0x9CC5 0x612C +0x9CC6 0x6134 +0x9CC7 0x613D +0x9CC8 0x6142 +0x9CC9 0x6144 +0x9CCA 0x6173 +0x9CCB 0x6177 +0x9CCC 0x6158 +0x9CCD 0x6159 +0x9CCE 0x615A +0x9CCF 0x616B +0x9CD0 0x6174 +0x9CD1 0x616F +0x9CD2 0x6165 +0x9CD3 0x6171 +0x9CD4 0x615F +0x9CD5 0x615D +0x9CD6 0x6153 +0x9CD7 0x6175 +0x9CD8 0x6199 +0x9CD9 0x6196 +0x9CDA 0x6187 +0x9CDB 0x61AC +0x9CDC 0x6194 +0x9CDD 0x619A +0x9CDE 0x618A +0x9CDF 0x6191 +0x9CE0 0x61AB +0x9CE1 0x61AE +0x9CE2 0x61CC +0x9CE3 0x61CA +0x9CE4 0x61C9 +0x9CE5 0x61F7 +0x9CE6 0x61C8 +0x9CE7 0x61C3 +0x9CE8 0x61C6 +0x9CE9 0x61BA +0x9CEA 0x61CB +0x9CEB 0x7F79 +0x9CEC 0x61CD +0x9CED 0x61E6 +0x9CEE 0x61E3 +0x9CEF 0x61F6 +0x9CF0 0x61FA +0x9CF1 0x61F4 +0x9CF2 0x61FF +0x9CF3 0x61FD +0x9CF4 0x61FC +0x9CF5 0x61FE +0x9CF6 0x6200 +0x9CF7 0x6208 +0x9CF8 0x6209 +0x9CF9 0x620D +0x9CFA 0x620C +0x9CFB 0x6214 +0x9CFC 0x621B +0x9D40 0x621E +0x9D41 0x6221 +0x9D42 0x622A +0x9D43 0x622E +0x9D44 0x6230 +0x9D45 0x6232 +0x9D46 0x6233 +0x9D47 0x6241 +0x9D48 0x624E +0x9D49 0x625E +0x9D4A 0x6263 +0x9D4B 0x625B +0x9D4C 0x6260 +0x9D4D 0x6268 +0x9D4E 0x627C +0x9D4F 0x6282 +0x9D50 0x6289 +0x9D51 0x627E +0x9D52 0x6292 +0x9D53 0x6293 +0x9D54 0x6296 +0x9D55 0x62D4 +0x9D56 0x6283 +0x9D57 0x6294 +0x9D58 0x62D7 +0x9D59 0x62D1 +0x9D5A 0x62BB +0x9D5B 0x62CF +0x9D5C 0x62FF +0x9D5D 0x62C6 +0x9D5E 0x64D4 +0x9D5F 0x62C8 +0x9D60 0x62DC +0x9D61 0x62CC +0x9D62 0x62CA +0x9D63 0x62C2 +0x9D64 0x62C7 +0x9D65 0x629B +0x9D66 0x62C9 +0x9D67 0x630C +0x9D68 0x62EE +0x9D69 0x62F1 +0x9D6A 0x6327 +0x9D6B 0x6302 +0x9D6C 0x6308 +0x9D6D 0x62EF +0x9D6E 0x62F5 +0x9D6F 0x6350 +0x9D70 0x633E +0x9D71 0x634D +0x9D72 0x641C +0x9D73 0x634F +0x9D74 0x6396 +0x9D75 0x638E +0x9D76 0x6380 +0x9D77 0x63AB +0x9D78 0x6376 +0x9D79 0x63A3 +0x9D7A 0x638F +0x9D7B 0x6389 +0x9D7C 0x639F +0x9D7D 0x63B5 +0x9D7E 0x636B +0x9D80 0x6369 +0x9D81 0x63BE +0x9D82 0x63E9 +0x9D83 0x63C0 +0x9D84 0x63C6 +0x9D85 0x63E3 +0x9D86 0x63C9 +0x9D87 0x63D2 +0x9D88 0x63F6 +0x9D89 0x63C4 +0x9D8A 0x6416 +0x9D8B 0x6434 +0x9D8C 0x6406 +0x9D8D 0x6413 +0x9D8E 0x6426 +0x9D8F 0x6436 +0x9D90 0x651D +0x9D91 0x6417 +0x9D92 0x6428 +0x9D93 0x640F +0x9D94 0x6467 +0x9D95 0x646F +0x9D96 0x6476 +0x9D97 0x644E +0x9D98 0x652A +0x9D99 0x6495 +0x9D9A 0x6493 +0x9D9B 0x64A5 +0x9D9C 0x64A9 +0x9D9D 0x6488 +0x9D9E 0x64BC +0x9D9F 0x64DA +0x9DA0 0x64D2 +0x9DA1 0x64C5 +0x9DA2 0x64C7 +0x9DA3 0x64BB +0x9DA4 0x64D8 +0x9DA5 0x64C2 +0x9DA6 0x64F1 +0x9DA7 0x64E7 +0x9DA8 0x8209 +0x9DA9 0x64E0 +0x9DAA 0x64E1 +0x9DAB 0x62AC +0x9DAC 0x64E3 +0x9DAD 0x64EF +0x9DAE 0x652C +0x9DAF 0x64F6 +0x9DB0 0x64F4 +0x9DB1 0x64F2 +0x9DB2 0x64FA +0x9DB3 0x6500 +0x9DB4 0x64FD +0x9DB5 0x6518 +0x9DB6 0x651C +0x9DB7 0x6505 +0x9DB8 0x6524 +0x9DB9 0x6523 +0x9DBA 0x652B +0x9DBB 0x6534 +0x9DBC 0x6535 +0x9DBD 0x6537 +0x9DBE 0x6536 +0x9DBF 0x6538 +0x9DC0 0x754B +0x9DC1 0x6548 +0x9DC2 0x6556 +0x9DC3 0x6555 +0x9DC4 0x654D +0x9DC5 0x6558 +0x9DC6 0x655E +0x9DC7 0x655D +0x9DC8 0x6572 +0x9DC9 0x6578 +0x9DCA 0x6582 +0x9DCB 0x6583 +0x9DCC 0x8B8A +0x9DCD 0x659B +0x9DCE 0x659F +0x9DCF 0x65AB +0x9DD0 0x65B7 +0x9DD1 0x65C3 +0x9DD2 0x65C6 +0x9DD3 0x65C1 +0x9DD4 0x65C4 +0x9DD5 0x65CC +0x9DD6 0x65D2 +0x9DD7 0x65DB +0x9DD8 0x65D9 +0x9DD9 0x65E0 +0x9DDA 0x65E1 +0x9DDB 0x65F1 +0x9DDC 0x6772 +0x9DDD 0x660A +0x9DDE 0x6603 +0x9DDF 0x65FB +0x9DE0 0x6773 +0x9DE1 0x6635 +0x9DE2 0x6636 +0x9DE3 0x6634 +0x9DE4 0x661C +0x9DE5 0x664F +0x9DE6 0x6644 +0x9DE7 0x6649 +0x9DE8 0x6641 +0x9DE9 0x665E +0x9DEA 0x665D +0x9DEB 0x6664 +0x9DEC 0x6667 +0x9DED 0x6668 +0x9DEE 0x665F +0x9DEF 0x6662 +0x9DF0 0x6670 +0x9DF1 0x6683 +0x9DF2 0x6688 +0x9DF3 0x668E +0x9DF4 0x6689 +0x9DF5 0x6684 +0x9DF6 0x6698 +0x9DF7 0x669D +0x9DF8 0x66C1 +0x9DF9 0x66B9 +0x9DFA 0x66C9 +0x9DFB 0x66BE +0x9DFC 0x66BC +0x9E40 0x66C4 +0x9E41 0x66B8 +0x9E42 0x66D6 +0x9E43 0x66DA +0x9E44 0x66E0 +0x9E45 0x663F +0x9E46 0x66E6 +0x9E47 0x66E9 +0x9E48 0x66F0 +0x9E49 0x66F5 +0x9E4A 0x66F7 +0x9E4B 0x670F +0x9E4C 0x6716 +0x9E4D 0x671E +0x9E4E 0x6726 +0x9E4F 0x6727 +0x9E50 0x9738 +0x9E51 0x672E +0x9E52 0x673F +0x9E53 0x6736 +0x9E54 0x6741 +0x9E55 0x6738 +0x9E56 0x6737 +0x9E57 0x6746 +0x9E58 0x675E +0x9E59 0x6760 +0x9E5A 0x6759 +0x9E5B 0x6763 +0x9E5C 0x6764 +0x9E5D 0x6789 +0x9E5E 0x6770 +0x9E5F 0x67A9 +0x9E60 0x677C +0x9E61 0x676A +0x9E62 0x678C +0x9E63 0x678B +0x9E64 0x67A6 +0x9E65 0x67A1 +0x9E66 0x6785 +0x9E67 0x67B7 +0x9E68 0x67EF +0x9E69 0x67B4 +0x9E6A 0x67EC +0x9E6B 0x67B3 +0x9E6C 0x67E9 +0x9E6D 0x67B8 +0x9E6E 0x67E4 +0x9E6F 0x67DE +0x9E70 0x67DD +0x9E71 0x67E2 +0x9E72 0x67EE +0x9E73 0x67B9 +0x9E74 0x67CE +0x9E75 0x67C6 +0x9E76 0x67E7 +0x9E77 0x6A9C +0x9E78 0x681E +0x9E79 0x6846 +0x9E7A 0x6829 +0x9E7B 0x6840 +0x9E7C 0x684D +0x9E7D 0x6832 +0x9E7E 0x684E +0x9E80 0x68B3 +0x9E81 0x682B +0x9E82 0x6859 +0x9E83 0x6863 +0x9E84 0x6877 +0x9E85 0x687F +0x9E86 0x689F +0x9E87 0x688F +0x9E88 0x68AD +0x9E89 0x6894 +0x9E8A 0x689D +0x9E8B 0x689B +0x9E8C 0x6883 +0x9E8D 0x6AAE +0x9E8E 0x68B9 +0x9E8F 0x6874 +0x9E90 0x68B5 +0x9E91 0x68A0 +0x9E92 0x68BA +0x9E93 0x690F +0x9E94 0x688D +0x9E95 0x687E +0x9E96 0x6901 +0x9E97 0x68CA +0x9E98 0x6908 +0x9E99 0x68D8 +0x9E9A 0x6922 +0x9E9B 0x6926 +0x9E9C 0x68E1 +0x9E9D 0x690C +0x9E9E 0x68CD +0x9E9F 0x68D4 +0x9EA0 0x68E7 +0x9EA1 0x68D5 +0x9EA2 0x6936 +0x9EA3 0x6912 +0x9EA4 0x6904 +0x9EA5 0x68D7 +0x9EA6 0x68E3 +0x9EA7 0x6925 +0x9EA8 0x68F9 +0x9EA9 0x68E0 +0x9EAA 0x68EF +0x9EAB 0x6928 +0x9EAC 0x692A +0x9EAD 0x691A +0x9EAE 0x6923 +0x9EAF 0x6921 +0x9EB0 0x68C6 +0x9EB1 0x6979 +0x9EB2 0x6977 +0x9EB3 0x695C +0x9EB4 0x6978 +0x9EB5 0x696B +0x9EB6 0x6954 +0x9EB7 0x697E +0x9EB8 0x696E +0x9EB9 0x6939 +0x9EBA 0x6974 +0x9EBB 0x693D +0x9EBC 0x6959 +0x9EBD 0x6930 +0x9EBE 0x6961 +0x9EBF 0x695E +0x9EC0 0x695D +0x9EC1 0x6981 +0x9EC2 0x696A +0x9EC3 0x69B2 +0x9EC4 0x69AE +0x9EC5 0x69D0 +0x9EC6 0x69BF +0x9EC7 0x69C1 +0x9EC8 0x69D3 +0x9EC9 0x69BE +0x9ECA 0x69CE +0x9ECB 0x5BE8 +0x9ECC 0x69CA +0x9ECD 0x69DD +0x9ECE 0x69BB +0x9ECF 0x69C3 +0x9ED0 0x69A7 +0x9ED1 0x6A2E +0x9ED2 0x6991 +0x9ED3 0x69A0 +0x9ED4 0x699C +0x9ED5 0x6995 +0x9ED6 0x69B4 +0x9ED7 0x69DE +0x9ED8 0x69E8 +0x9ED9 0x6A02 +0x9EDA 0x6A1B +0x9EDB 0x69FF +0x9EDC 0x6B0A +0x9EDD 0x69F9 +0x9EDE 0x69F2 +0x9EDF 0x69E7 +0x9EE0 0x6A05 +0x9EE1 0x69B1 +0x9EE2 0x6A1E +0x9EE3 0x69ED +0x9EE4 0x6A14 +0x9EE5 0x69EB +0x9EE6 0x6A0A +0x9EE7 0x6A12 +0x9EE8 0x6AC1 +0x9EE9 0x6A23 +0x9EEA 0x6A13 +0x9EEB 0x6A44 +0x9EEC 0x6A0C +0x9EED 0x6A72 +0x9EEE 0x6A36 +0x9EEF 0x6A78 +0x9EF0 0x6A47 +0x9EF1 0x6A62 +0x9EF2 0x6A59 +0x9EF3 0x6A66 +0x9EF4 0x6A48 +0x9EF5 0x6A38 +0x9EF6 0x6A22 +0x9EF7 0x6A90 +0x9EF8 0x6A8D +0x9EF9 0x6AA0 +0x9EFA 0x6A84 +0x9EFB 0x6AA2 +0x9EFC 0x6AA3 +0x9F40 0x6A97 +0x9F41 0x8617 +0x9F42 0x6ABB +0x9F43 0x6AC3 +0x9F44 0x6AC2 +0x9F45 0x6AB8 +0x9F46 0x6AB3 +0x9F47 0x6AAC +0x9F48 0x6ADE +0x9F49 0x6AD1 +0x9F4A 0x6ADF +0x9F4B 0x6AAA +0x9F4C 0x6ADA +0x9F4D 0x6AEA +0x9F4E 0x6AFB +0x9F4F 0x6B05 +0x9F50 0x8616 +0x9F51 0x6AFA +0x9F52 0x6B12 +0x9F53 0x6B16 +0x9F54 0x9B31 +0x9F55 0x6B1F +0x9F56 0x6B38 +0x9F57 0x6B37 +0x9F58 0x76DC +0x9F59 0x6B39 +0x9F5A 0x98EE +0x9F5B 0x6B47 +0x9F5C 0x6B43 +0x9F5D 0x6B49 +0x9F5E 0x6B50 +0x9F5F 0x6B59 +0x9F60 0x6B54 +0x9F61 0x6B5B +0x9F62 0x6B5F +0x9F63 0x6B61 +0x9F64 0x6B78 +0x9F65 0x6B79 +0x9F66 0x6B7F +0x9F67 0x6B80 +0x9F68 0x6B84 +0x9F69 0x6B83 +0x9F6A 0x6B8D +0x9F6B 0x6B98 +0x9F6C 0x6B95 +0x9F6D 0x6B9E +0x9F6E 0x6BA4 +0x9F6F 0x6BAA +0x9F70 0x6BAB +0x9F71 0x6BAF +0x9F72 0x6BB2 +0x9F73 0x6BB1 +0x9F74 0x6BB3 +0x9F75 0x6BB7 +0x9F76 0x6BBC +0x9F77 0x6BC6 +0x9F78 0x6BCB +0x9F79 0x6BD3 +0x9F7A 0x6BDF +0x9F7B 0x6BEC +0x9F7C 0x6BEB +0x9F7D 0x6BF3 +0x9F7E 0x6BEF +0x9F80 0x9EBE +0x9F81 0x6C08 +0x9F82 0x6C13 +0x9F83 0x6C14 +0x9F84 0x6C1B +0x9F85 0x6C24 +0x9F86 0x6C23 +0x9F87 0x6C5E +0x9F88 0x6C55 +0x9F89 0x6C62 +0x9F8A 0x6C6A +0x9F8B 0x6C82 +0x9F8C 0x6C8D +0x9F8D 0x6C9A +0x9F8E 0x6C81 +0x9F8F 0x6C9B +0x9F90 0x6C7E +0x9F91 0x6C68 +0x9F92 0x6C73 +0x9F93 0x6C92 +0x9F94 0x6C90 +0x9F95 0x6CC4 +0x9F96 0x6CF1 +0x9F97 0x6CD3 +0x9F98 0x6CBD +0x9F99 0x6CD7 +0x9F9A 0x6CC5 +0x9F9B 0x6CDD +0x9F9C 0x6CAE +0x9F9D 0x6CB1 +0x9F9E 0x6CBE +0x9F9F 0x6CBA +0x9FA0 0x6CDB +0x9FA1 0x6CEF +0x9FA2 0x6CD9 +0x9FA3 0x6CEA +0x9FA4 0x6D1F +0x9FA5 0x884D +0x9FA6 0x6D36 +0x9FA7 0x6D2B +0x9FA8 0x6D3D +0x9FA9 0x6D38 +0x9FAA 0x6D19 +0x9FAB 0x6D35 +0x9FAC 0x6D33 +0x9FAD 0x6D12 +0x9FAE 0x6D0C +0x9FAF 0x6D63 +0x9FB0 0x6D93 +0x9FB1 0x6D64 +0x9FB2 0x6D5A +0x9FB3 0x6D79 +0x9FB4 0x6D59 +0x9FB5 0x6D8E +0x9FB6 0x6D95 +0x9FB7 0x6FE4 +0x9FB8 0x6D85 +0x9FB9 0x6DF9 +0x9FBA 0x6E15 +0x9FBB 0x6E0A +0x9FBC 0x6DB5 +0x9FBD 0x6DC7 +0x9FBE 0x6DE6 +0x9FBF 0x6DB8 +0x9FC0 0x6DC6 +0x9FC1 0x6DEC +0x9FC2 0x6DDE +0x9FC3 0x6DCC +0x9FC4 0x6DE8 +0x9FC5 0x6DD2 +0x9FC6 0x6DC5 +0x9FC7 0x6DFA +0x9FC8 0x6DD9 +0x9FC9 0x6DE4 +0x9FCA 0x6DD5 +0x9FCB 0x6DEA +0x9FCC 0x6DEE +0x9FCD 0x6E2D +0x9FCE 0x6E6E +0x9FCF 0x6E2E +0x9FD0 0x6E19 +0x9FD1 0x6E72 +0x9FD2 0x6E5F +0x9FD3 0x6E3E +0x9FD4 0x6E23 +0x9FD5 0x6E6B +0x9FD6 0x6E2B +0x9FD7 0x6E76 +0x9FD8 0x6E4D +0x9FD9 0x6E1F +0x9FDA 0x6E43 +0x9FDB 0x6E3A +0x9FDC 0x6E4E +0x9FDD 0x6E24 +0x9FDE 0x6EFF +0x9FDF 0x6E1D +0x9FE0 0x6E38 +0x9FE1 0x6E82 +0x9FE2 0x6EAA +0x9FE3 0x6E98 +0x9FE4 0x6EC9 +0x9FE5 0x6EB7 +0x9FE6 0x6ED3 +0x9FE7 0x6EBD +0x9FE8 0x6EAF +0x9FE9 0x6EC4 +0x9FEA 0x6EB2 +0x9FEB 0x6ED4 +0x9FEC 0x6ED5 +0x9FED 0x6E8F +0x9FEE 0x6EA5 +0x9FEF 0x6EC2 +0x9FF0 0x6E9F +0x9FF1 0x6F41 +0x9FF2 0x6F11 +0x9FF3 0x704C +0x9FF4 0x6EEC +0x9FF5 0x6EF8 +0x9FF6 0x6EFE +0x9FF7 0x6F3F +0x9FF8 0x6EF2 +0x9FF9 0x6F31 +0x9FFA 0x6EEF +0x9FFB 0x6F32 +0x9FFC 0x6ECC +0xA1 0xFF61 +0xA2 0xFF62 +0xA3 0xFF63 +0xA4 0xFF64 +0xA5 0xFF65 +0xA6 0xFF66 +0xA7 0xFF67 +0xA8 0xFF68 +0xA9 0xFF69 +0xAA 0xFF6A +0xAB 0xFF6B +0xAC 0xFF6C +0xAD 0xFF6D +0xAE 0xFF6E +0xAF 0xFF6F +0xB0 0xFF70 +0xB1 0xFF71 +0xB2 0xFF72 +0xB3 0xFF73 +0xB4 0xFF74 +0xB5 0xFF75 +0xB6 0xFF76 +0xB7 0xFF77 +0xB8 0xFF78 +0xB9 0xFF79 +0xBA 0xFF7A +0xBB 0xFF7B +0xBC 0xFF7C +0xBD 0xFF7D +0xBE 0xFF7E +0xBF 0xFF7F +0xC0 0xFF80 +0xC1 0xFF81 +0xC2 0xFF82 +0xC3 0xFF83 +0xC4 0xFF84 +0xC5 0xFF85 +0xC6 0xFF86 +0xC7 0xFF87 +0xC8 0xFF88 +0xC9 0xFF89 +0xCA 0xFF8A +0xCB 0xFF8B +0xCC 0xFF8C +0xCD 0xFF8D +0xCE 0xFF8E +0xCF 0xFF8F +0xD0 0xFF90 +0xD1 0xFF91 +0xD2 0xFF92 +0xD3 0xFF93 +0xD4 0xFF94 +0xD5 0xFF95 +0xD6 0xFF96 +0xD7 0xFF97 +0xD8 0xFF98 +0xD9 0xFF99 +0xDA 0xFF9A +0xDB 0xFF9B +0xDC 0xFF9C +0xDD 0xFF9D +0xDE 0xFF9E +0xDF 0xFF9F +0xE040 0x6F3E +0xE041 0x6F13 +0xE042 0x6EF7 +0xE043 0x6F86 +0xE044 0x6F7A +0xE045 0x6F78 +0xE046 0x6F81 +0xE047 0x6F80 +0xE048 0x6F6F +0xE049 0x6F5B +0xE04A 0x6FF3 +0xE04B 0x6F6D +0xE04C 0x6F82 +0xE04D 0x6F7C +0xE04E 0x6F58 +0xE04F 0x6F8E +0xE050 0x6F91 +0xE051 0x6FC2 +0xE052 0x6F66 +0xE053 0x6FB3 +0xE054 0x6FA3 +0xE055 0x6FA1 +0xE056 0x6FA4 +0xE057 0x6FB9 +0xE058 0x6FC6 +0xE059 0x6FAA +0xE05A 0x6FDF +0xE05B 0x6FD5 +0xE05C 0x6FEC +0xE05D 0x6FD4 +0xE05E 0x6FD8 +0xE05F 0x6FF1 +0xE060 0x6FEE +0xE061 0x6FDB +0xE062 0x7009 +0xE063 0x700B +0xE064 0x6FFA +0xE065 0x7011 +0xE066 0x7001 +0xE067 0x700F +0xE068 0x6FFE +0xE069 0x701B +0xE06A 0x701A +0xE06B 0x6F74 +0xE06C 0x701D +0xE06D 0x7018 +0xE06E 0x701F +0xE06F 0x7030 +0xE070 0x703E +0xE071 0x7032 +0xE072 0x7051 +0xE073 0x7063 +0xE074 0x7099 +0xE075 0x7092 +0xE076 0x70AF +0xE077 0x70F1 +0xE078 0x70AC +0xE079 0x70B8 +0xE07A 0x70B3 +0xE07B 0x70AE +0xE07C 0x70DF +0xE07D 0x70CB +0xE07E 0x70DD +0xE080 0x70D9 +0xE081 0x7109 +0xE082 0x70FD +0xE083 0x711C +0xE084 0x7119 +0xE085 0x7165 +0xE086 0x7155 +0xE087 0x7188 +0xE088 0x7166 +0xE089 0x7162 +0xE08A 0x714C +0xE08B 0x7156 +0xE08C 0x716C +0xE08D 0x718F +0xE08E 0x71FB +0xE08F 0x7184 +0xE090 0x7195 +0xE091 0x71A8 +0xE092 0x71AC +0xE093 0x71D7 +0xE094 0x71B9 +0xE095 0x71BE +0xE096 0x71D2 +0xE097 0x71C9 +0xE098 0x71D4 +0xE099 0x71CE +0xE09A 0x71E0 +0xE09B 0x71EC +0xE09C 0x71E7 +0xE09D 0x71F5 +0xE09E 0x71FC +0xE09F 0x71F9 +0xE0A0 0x71FF +0xE0A1 0x720D +0xE0A2 0x7210 +0xE0A3 0x721B +0xE0A4 0x7228 +0xE0A5 0x722D +0xE0A6 0x722C +0xE0A7 0x7230 +0xE0A8 0x7232 +0xE0A9 0x723B +0xE0AA 0x723C +0xE0AB 0x723F +0xE0AC 0x7240 +0xE0AD 0x7246 +0xE0AE 0x724B +0xE0AF 0x7258 +0xE0B0 0x7274 +0xE0B1 0x727E +0xE0B2 0x7282 +0xE0B3 0x7281 +0xE0B4 0x7287 +0xE0B5 0x7292 +0xE0B6 0x7296 +0xE0B7 0x72A2 +0xE0B8 0x72A7 +0xE0B9 0x72B9 +0xE0BA 0x72B2 +0xE0BB 0x72C3 +0xE0BC 0x72C6 +0xE0BD 0x72C4 +0xE0BE 0x72CE +0xE0BF 0x72D2 +0xE0C0 0x72E2 +0xE0C1 0x72E0 +0xE0C2 0x72E1 +0xE0C3 0x72F9 +0xE0C4 0x72F7 +0xE0C5 0x500F +0xE0C6 0x7317 +0xE0C7 0x730A +0xE0C8 0x731C +0xE0C9 0x7316 +0xE0CA 0x731D +0xE0CB 0x7334 +0xE0CC 0x732F +0xE0CD 0x7329 +0xE0CE 0x7325 +0xE0CF 0x733E +0xE0D0 0x734E +0xE0D1 0x734F +0xE0D2 0x9ED8 +0xE0D3 0x7357 +0xE0D4 0x736A +0xE0D5 0x7368 +0xE0D6 0x7370 +0xE0D7 0x7378 +0xE0D8 0x7375 +0xE0D9 0x737B +0xE0DA 0x737A +0xE0DB 0x73C8 +0xE0DC 0x73B3 +0xE0DD 0x73CE +0xE0DE 0x73BB +0xE0DF 0x73C0 +0xE0E0 0x73E5 +0xE0E1 0x73EE +0xE0E2 0x73DE +0xE0E3 0x74A2 +0xE0E4 0x7405 +0xE0E5 0x746F +0xE0E6 0x7425 +0xE0E7 0x73F8 +0xE0E8 0x7432 +0xE0E9 0x743A +0xE0EA 0x7455 +0xE0EB 0x743F +0xE0EC 0x745F +0xE0ED 0x7459 +0xE0EE 0x7441 +0xE0EF 0x745C +0xE0F0 0x7469 +0xE0F1 0x7470 +0xE0F2 0x7463 +0xE0F3 0x746A +0xE0F4 0x7476 +0xE0F5 0x747E +0xE0F6 0x748B +0xE0F7 0x749E +0xE0F8 0x74A7 +0xE0F9 0x74CA +0xE0FA 0x74CF +0xE0FB 0x74D4 +0xE0FC 0x73F1 +0xE140 0x74E0 +0xE141 0x74E3 +0xE142 0x74E7 +0xE143 0x74E9 +0xE144 0x74EE +0xE145 0x74F2 +0xE146 0x74F0 +0xE147 0x74F1 +0xE148 0x74F8 +0xE149 0x74F7 +0xE14A 0x7504 +0xE14B 0x7503 +0xE14C 0x7505 +0xE14D 0x750C +0xE14E 0x750E +0xE14F 0x750D +0xE150 0x7515 +0xE151 0x7513 +0xE152 0x751E +0xE153 0x7526 +0xE154 0x752C +0xE155 0x753C +0xE156 0x7544 +0xE157 0x754D +0xE158 0x754A +0xE159 0x7549 +0xE15A 0x755B +0xE15B 0x7546 +0xE15C 0x755A +0xE15D 0x7569 +0xE15E 0x7564 +0xE15F 0x7567 +0xE160 0x756B +0xE161 0x756D +0xE162 0x7578 +0xE163 0x7576 +0xE164 0x7586 +0xE165 0x7587 +0xE166 0x7574 +0xE167 0x758A +0xE168 0x7589 +0xE169 0x7582 +0xE16A 0x7594 +0xE16B 0x759A +0xE16C 0x759D +0xE16D 0x75A5 +0xE16E 0x75A3 +0xE16F 0x75C2 +0xE170 0x75B3 +0xE171 0x75C3 +0xE172 0x75B5 +0xE173 0x75BD +0xE174 0x75B8 +0xE175 0x75BC +0xE176 0x75B1 +0xE177 0x75CD +0xE178 0x75CA +0xE179 0x75D2 +0xE17A 0x75D9 +0xE17B 0x75E3 +0xE17C 0x75DE +0xE17D 0x75FE +0xE17E 0x75FF +0xE180 0x75FC +0xE181 0x7601 +0xE182 0x75F0 +0xE183 0x75FA +0xE184 0x75F2 +0xE185 0x75F3 +0xE186 0x760B +0xE187 0x760D +0xE188 0x7609 +0xE189 0x761F +0xE18A 0x7627 +0xE18B 0x7620 +0xE18C 0x7621 +0xE18D 0x7622 +0xE18E 0x7624 +0xE18F 0x7634 +0xE190 0x7630 +0xE191 0x763B +0xE192 0x7647 +0xE193 0x7648 +0xE194 0x7646 +0xE195 0x765C +0xE196 0x7658 +0xE197 0x7661 +0xE198 0x7662 +0xE199 0x7668 +0xE19A 0x7669 +0xE19B 0x766A +0xE19C 0x7667 +0xE19D 0x766C +0xE19E 0x7670 +0xE19F 0x7672 +0xE1A0 0x7676 +0xE1A1 0x7678 +0xE1A2 0x767C +0xE1A3 0x7680 +0xE1A4 0x7683 +0xE1A5 0x7688 +0xE1A6 0x768B +0xE1A7 0x768E +0xE1A8 0x7696 +0xE1A9 0x7693 +0xE1AA 0x7699 +0xE1AB 0x769A +0xE1AC 0x76B0 +0xE1AD 0x76B4 +0xE1AE 0x76B8 +0xE1AF 0x76B9 +0xE1B0 0x76BA +0xE1B1 0x76C2 +0xE1B2 0x76CD +0xE1B3 0x76D6 +0xE1B4 0x76D2 +0xE1B5 0x76DE +0xE1B6 0x76E1 +0xE1B7 0x76E5 +0xE1B8 0x76E7 +0xE1B9 0x76EA +0xE1BA 0x862F +0xE1BB 0x76FB +0xE1BC 0x7708 +0xE1BD 0x7707 +0xE1BE 0x7704 +0xE1BF 0x7729 +0xE1C0 0x7724 +0xE1C1 0x771E +0xE1C2 0x7725 +0xE1C3 0x7726 +0xE1C4 0x771B +0xE1C5 0x7737 +0xE1C6 0x7738 +0xE1C7 0x7747 +0xE1C8 0x775A +0xE1C9 0x7768 +0xE1CA 0x776B +0xE1CB 0x775B +0xE1CC 0x7765 +0xE1CD 0x777F +0xE1CE 0x777E +0xE1CF 0x7779 +0xE1D0 0x778E +0xE1D1 0x778B +0xE1D2 0x7791 +0xE1D3 0x77A0 +0xE1D4 0x779E +0xE1D5 0x77B0 +0xE1D6 0x77B6 +0xE1D7 0x77B9 +0xE1D8 0x77BF +0xE1D9 0x77BC +0xE1DA 0x77BD +0xE1DB 0x77BB +0xE1DC 0x77C7 +0xE1DD 0x77CD +0xE1DE 0x77D7 +0xE1DF 0x77DA +0xE1E0 0x77DC +0xE1E1 0x77E3 +0xE1E2 0x77EE +0xE1E3 0x77FC +0xE1E4 0x780C +0xE1E5 0x7812 +0xE1E6 0x7926 +0xE1E7 0x7820 +0xE1E8 0x792A +0xE1E9 0x7845 +0xE1EA 0x788E +0xE1EB 0x7874 +0xE1EC 0x7886 +0xE1ED 0x787C +0xE1EE 0x789A +0xE1EF 0x788C +0xE1F0 0x78A3 +0xE1F1 0x78B5 +0xE1F2 0x78AA +0xE1F3 0x78AF +0xE1F4 0x78D1 +0xE1F5 0x78C6 +0xE1F6 0x78CB +0xE1F7 0x78D4 +0xE1F8 0x78BE +0xE1F9 0x78BC +0xE1FA 0x78C5 +0xE1FB 0x78CA +0xE1FC 0x78EC +0xE240 0x78E7 +0xE241 0x78DA +0xE242 0x78FD +0xE243 0x78F4 +0xE244 0x7907 +0xE245 0x7912 +0xE246 0x7911 +0xE247 0x7919 +0xE248 0x792C +0xE249 0x792B +0xE24A 0x7940 +0xE24B 0x7960 +0xE24C 0x7957 +0xE24D 0x795F +0xE24E 0x795A +0xE24F 0x7955 +0xE250 0x7953 +0xE251 0x797A +0xE252 0x797F +0xE253 0x798A +0xE254 0x799D +0xE255 0x79A7 +0xE256 0x9F4B +0xE257 0x79AA +0xE258 0x79AE +0xE259 0x79B3 +0xE25A 0x79B9 +0xE25B 0x79BA +0xE25C 0x79C9 +0xE25D 0x79D5 +0xE25E 0x79E7 +0xE25F 0x79EC +0xE260 0x79E1 +0xE261 0x79E3 +0xE262 0x7A08 +0xE263 0x7A0D +0xE264 0x7A18 +0xE265 0x7A19 +0xE266 0x7A20 +0xE267 0x7A1F +0xE268 0x7980 +0xE269 0x7A31 +0xE26A 0x7A3B +0xE26B 0x7A3E +0xE26C 0x7A37 +0xE26D 0x7A43 +0xE26E 0x7A57 +0xE26F 0x7A49 +0xE270 0x7A61 +0xE271 0x7A62 +0xE272 0x7A69 +0xE273 0x9F9D +0xE274 0x7A70 +0xE275 0x7A79 +0xE276 0x7A7D +0xE277 0x7A88 +0xE278 0x7A97 +0xE279 0x7A95 +0xE27A 0x7A98 +0xE27B 0x7A96 +0xE27C 0x7AA9 +0xE27D 0x7AC8 +0xE27E 0x7AB0 +0xE280 0x7AB6 +0xE281 0x7AC5 +0xE282 0x7AC4 +0xE283 0x7ABF +0xE284 0x9083 +0xE285 0x7AC7 +0xE286 0x7ACA +0xE287 0x7ACD +0xE288 0x7ACF +0xE289 0x7AD5 +0xE28A 0x7AD3 +0xE28B 0x7AD9 +0xE28C 0x7ADA +0xE28D 0x7ADD +0xE28E 0x7AE1 +0xE28F 0x7AE2 +0xE290 0x7AE6 +0xE291 0x7AED +0xE292 0x7AF0 +0xE293 0x7B02 +0xE294 0x7B0F +0xE295 0x7B0A +0xE296 0x7B06 +0xE297 0x7B33 +0xE298 0x7B18 +0xE299 0x7B19 +0xE29A 0x7B1E +0xE29B 0x7B35 +0xE29C 0x7B28 +0xE29D 0x7B36 +0xE29E 0x7B50 +0xE29F 0x7B7A +0xE2A0 0x7B04 +0xE2A1 0x7B4D +0xE2A2 0x7B0B +0xE2A3 0x7B4C +0xE2A4 0x7B45 +0xE2A5 0x7B75 +0xE2A6 0x7B65 +0xE2A7 0x7B74 +0xE2A8 0x7B67 +0xE2A9 0x7B70 +0xE2AA 0x7B71 +0xE2AB 0x7B6C +0xE2AC 0x7B6E +0xE2AD 0x7B9D +0xE2AE 0x7B98 +0xE2AF 0x7B9F +0xE2B0 0x7B8D +0xE2B1 0x7B9C +0xE2B2 0x7B9A +0xE2B3 0x7B8B +0xE2B4 0x7B92 +0xE2B5 0x7B8F +0xE2B6 0x7B5D +0xE2B7 0x7B99 +0xE2B8 0x7BCB +0xE2B9 0x7BC1 +0xE2BA 0x7BCC +0xE2BB 0x7BCF +0xE2BC 0x7BB4 +0xE2BD 0x7BC6 +0xE2BE 0x7BDD +0xE2BF 0x7BE9 +0xE2C0 0x7C11 +0xE2C1 0x7C14 +0xE2C2 0x7BE6 +0xE2C3 0x7BE5 +0xE2C4 0x7C60 +0xE2C5 0x7C00 +0xE2C6 0x7C07 +0xE2C7 0x7C13 +0xE2C8 0x7BF3 +0xE2C9 0x7BF7 +0xE2CA 0x7C17 +0xE2CB 0x7C0D +0xE2CC 0x7BF6 +0xE2CD 0x7C23 +0xE2CE 0x7C27 +0xE2CF 0x7C2A +0xE2D0 0x7C1F +0xE2D1 0x7C37 +0xE2D2 0x7C2B +0xE2D3 0x7C3D +0xE2D4 0x7C4C +0xE2D5 0x7C43 +0xE2D6 0x7C54 +0xE2D7 0x7C4F +0xE2D8 0x7C40 +0xE2D9 0x7C50 +0xE2DA 0x7C58 +0xE2DB 0x7C5F +0xE2DC 0x7C64 +0xE2DD 0x7C56 +0xE2DE 0x7C65 +0xE2DF 0x7C6C +0xE2E0 0x7C75 +0xE2E1 0x7C83 +0xE2E2 0x7C90 +0xE2E3 0x7CA4 +0xE2E4 0x7CAD +0xE2E5 0x7CA2 +0xE2E6 0x7CAB +0xE2E7 0x7CA1 +0xE2E8 0x7CA8 +0xE2E9 0x7CB3 +0xE2EA 0x7CB2 +0xE2EB 0x7CB1 +0xE2EC 0x7CAE +0xE2ED 0x7CB9 +0xE2EE 0x7CBD +0xE2EF 0x7CC0 +0xE2F0 0x7CC5 +0xE2F1 0x7CC2 +0xE2F2 0x7CD8 +0xE2F3 0x7CD2 +0xE2F4 0x7CDC +0xE2F5 0x7CE2 +0xE2F6 0x9B3B +0xE2F7 0x7CEF +0xE2F8 0x7CF2 +0xE2F9 0x7CF4 +0xE2FA 0x7CF6 +0xE2FB 0x7CFA +0xE2FC 0x7D06 +0xE340 0x7D02 +0xE341 0x7D1C +0xE342 0x7D15 +0xE343 0x7D0A +0xE344 0x7D45 +0xE345 0x7D4B +0xE346 0x7D2E +0xE347 0x7D32 +0xE348 0x7D3F +0xE349 0x7D35 +0xE34A 0x7D46 +0xE34B 0x7D73 +0xE34C 0x7D56 +0xE34D 0x7D4E +0xE34E 0x7D72 +0xE34F 0x7D68 +0xE350 0x7D6E +0xE351 0x7D4F +0xE352 0x7D63 +0xE353 0x7D93 +0xE354 0x7D89 +0xE355 0x7D5B +0xE356 0x7D8F +0xE357 0x7D7D +0xE358 0x7D9B +0xE359 0x7DBA +0xE35A 0x7DAE +0xE35B 0x7DA3 +0xE35C 0x7DB5 +0xE35D 0x7DC7 +0xE35E 0x7DBD +0xE35F 0x7DAB +0xE360 0x7E3D +0xE361 0x7DA2 +0xE362 0x7DAF +0xE363 0x7DDC +0xE364 0x7DB8 +0xE365 0x7D9F +0xE366 0x7DB0 +0xE367 0x7DD8 +0xE368 0x7DDD +0xE369 0x7DE4 +0xE36A 0x7DDE +0xE36B 0x7DFB +0xE36C 0x7DF2 +0xE36D 0x7DE1 +0xE36E 0x7E05 +0xE36F 0x7E0A +0xE370 0x7E23 +0xE371 0x7E21 +0xE372 0x7E12 +0xE373 0x7E31 +0xE374 0x7E1F +0xE375 0x7E09 +0xE376 0x7E0B +0xE377 0x7E22 +0xE378 0x7E46 +0xE379 0x7E66 +0xE37A 0x7E3B +0xE37B 0x7E35 +0xE37C 0x7E39 +0xE37D 0x7E43 +0xE37E 0x7E37 +0xE380 0x7E32 +0xE381 0x7E3A +0xE382 0x7E67 +0xE383 0x7E5D +0xE384 0x7E56 +0xE385 0x7E5E +0xE386 0x7E59 +0xE387 0x7E5A +0xE388 0x7E79 +0xE389 0x7E6A +0xE38A 0x7E69 +0xE38B 0x7E7C +0xE38C 0x7E7B +0xE38D 0x7E83 +0xE38E 0x7DD5 +0xE38F 0x7E7D +0xE390 0x8FAE +0xE391 0x7E7F +0xE392 0x7E88 +0xE393 0x7E89 +0xE394 0x7E8C +0xE395 0x7E92 +0xE396 0x7E90 +0xE397 0x7E93 +0xE398 0x7E94 +0xE399 0x7E96 +0xE39A 0x7E8E +0xE39B 0x7E9B +0xE39C 0x7E9C +0xE39D 0x7F38 +0xE39E 0x7F3A +0xE39F 0x7F45 +0xE3A0 0x7F4C +0xE3A1 0x7F4D +0xE3A2 0x7F4E +0xE3A3 0x7F50 +0xE3A4 0x7F51 +0xE3A5 0x7F55 +0xE3A6 0x7F54 +0xE3A7 0x7F58 +0xE3A8 0x7F5F +0xE3A9 0x7F60 +0xE3AA 0x7F68 +0xE3AB 0x7F69 +0xE3AC 0x7F67 +0xE3AD 0x7F78 +0xE3AE 0x7F82 +0xE3AF 0x7F86 +0xE3B0 0x7F83 +0xE3B1 0x7F88 +0xE3B2 0x7F87 +0xE3B3 0x7F8C +0xE3B4 0x7F94 +0xE3B5 0x7F9E +0xE3B6 0x7F9D +0xE3B7 0x7F9A +0xE3B8 0x7FA3 +0xE3B9 0x7FAF +0xE3BA 0x7FB2 +0xE3BB 0x7FB9 +0xE3BC 0x7FAE +0xE3BD 0x7FB6 +0xE3BE 0x7FB8 +0xE3BF 0x8B71 +0xE3C0 0x7FC5 +0xE3C1 0x7FC6 +0xE3C2 0x7FCA +0xE3C3 0x7FD5 +0xE3C4 0x7FD4 +0xE3C5 0x7FE1 +0xE3C6 0x7FE6 +0xE3C7 0x7FE9 +0xE3C8 0x7FF3 +0xE3C9 0x7FF9 +0xE3CA 0x98DC +0xE3CB 0x8006 +0xE3CC 0x8004 +0xE3CD 0x800B +0xE3CE 0x8012 +0xE3CF 0x8018 +0xE3D0 0x8019 +0xE3D1 0x801C +0xE3D2 0x8021 +0xE3D3 0x8028 +0xE3D4 0x803F +0xE3D5 0x803B +0xE3D6 0x804A +0xE3D7 0x8046 +0xE3D8 0x8052 +0xE3D9 0x8058 +0xE3DA 0x805A +0xE3DB 0x805F +0xE3DC 0x8062 +0xE3DD 0x8068 +0xE3DE 0x8073 +0xE3DF 0x8072 +0xE3E0 0x8070 +0xE3E1 0x8076 +0xE3E2 0x8079 +0xE3E3 0x807D +0xE3E4 0x807F +0xE3E5 0x8084 +0xE3E6 0x8086 +0xE3E7 0x8085 +0xE3E8 0x809B +0xE3E9 0x8093 +0xE3EA 0x809A +0xE3EB 0x80AD +0xE3EC 0x5190 +0xE3ED 0x80AC +0xE3EE 0x80DB +0xE3EF 0x80E5 +0xE3F0 0x80D9 +0xE3F1 0x80DD +0xE3F2 0x80C4 +0xE3F3 0x80DA +0xE3F4 0x80D6 +0xE3F5 0x8109 +0xE3F6 0x80EF +0xE3F7 0x80F1 +0xE3F8 0x811B +0xE3F9 0x8129 +0xE3FA 0x8123 +0xE3FB 0x812F +0xE3FC 0x814B +0xE440 0x968B +0xE441 0x8146 +0xE442 0x813E +0xE443 0x8153 +0xE444 0x8151 +0xE445 0x80FC +0xE446 0x8171 +0xE447 0x816E +0xE448 0x8165 +0xE449 0x8166 +0xE44A 0x8174 +0xE44B 0x8183 +0xE44C 0x8188 +0xE44D 0x818A +0xE44E 0x8180 +0xE44F 0x8182 +0xE450 0x81A0 +0xE451 0x8195 +0xE452 0x81A4 +0xE453 0x81A3 +0xE454 0x815F +0xE455 0x8193 +0xE456 0x81A9 +0xE457 0x81B0 +0xE458 0x81B5 +0xE459 0x81BE +0xE45A 0x81B8 +0xE45B 0x81BD +0xE45C 0x81C0 +0xE45D 0x81C2 +0xE45E 0x81BA +0xE45F 0x81C9 +0xE460 0x81CD +0xE461 0x81D1 +0xE462 0x81D9 +0xE463 0x81D8 +0xE464 0x81C8 +0xE465 0x81DA +0xE466 0x81DF +0xE467 0x81E0 +0xE468 0x81E7 +0xE469 0x81FA +0xE46A 0x81FB +0xE46B 0x81FE +0xE46C 0x8201 +0xE46D 0x8202 +0xE46E 0x8205 +0xE46F 0x8207 +0xE470 0x820A +0xE471 0x820D +0xE472 0x8210 +0xE473 0x8216 +0xE474 0x8229 +0xE475 0x822B +0xE476 0x8238 +0xE477 0x8233 +0xE478 0x8240 +0xE479 0x8259 +0xE47A 0x8258 +0xE47B 0x825D +0xE47C 0x825A +0xE47D 0x825F +0xE47E 0x8264 +0xE480 0x8262 +0xE481 0x8268 +0xE482 0x826A +0xE483 0x826B +0xE484 0x822E +0xE485 0x8271 +0xE486 0x8277 +0xE487 0x8278 +0xE488 0x827E +0xE489 0x828D +0xE48A 0x8292 +0xE48B 0x82AB +0xE48C 0x829F +0xE48D 0x82BB +0xE48E 0x82AC +0xE48F 0x82E1 +0xE490 0x82E3 +0xE491 0x82DF +0xE492 0x82D2 +0xE493 0x82F4 +0xE494 0x82F3 +0xE495 0x82FA +0xE496 0x8393 +0xE497 0x8303 +0xE498 0x82FB +0xE499 0x82F9 +0xE49A 0x82DE +0xE49B 0x8306 +0xE49C 0x82DC +0xE49D 0x8309 +0xE49E 0x82D9 +0xE49F 0x8335 +0xE4A0 0x8334 +0xE4A1 0x8316 +0xE4A2 0x8332 +0xE4A3 0x8331 +0xE4A4 0x8340 +0xE4A5 0x8339 +0xE4A6 0x8350 +0xE4A7 0x8345 +0xE4A8 0x832F +0xE4A9 0x832B +0xE4AA 0x8317 +0xE4AB 0x8318 +0xE4AC 0x8385 +0xE4AD 0x839A +0xE4AE 0x83AA +0xE4AF 0x839F +0xE4B0 0x83A2 +0xE4B1 0x8396 +0xE4B2 0x8323 +0xE4B3 0x838E +0xE4B4 0x8387 +0xE4B5 0x838A +0xE4B6 0x837C +0xE4B7 0x83B5 +0xE4B8 0x8373 +0xE4B9 0x8375 +0xE4BA 0x83A0 +0xE4BB 0x8389 +0xE4BC 0x83A8 +0xE4BD 0x83F4 +0xE4BE 0x8413 +0xE4BF 0x83EB +0xE4C0 0x83CE +0xE4C1 0x83FD +0xE4C2 0x8403 +0xE4C3 0x83D8 +0xE4C4 0x840B +0xE4C5 0x83C1 +0xE4C6 0x83F7 +0xE4C7 0x8407 +0xE4C8 0x83E0 +0xE4C9 0x83F2 +0xE4CA 0x840D +0xE4CB 0x8422 +0xE4CC 0x8420 +0xE4CD 0x83BD +0xE4CE 0x8438 +0xE4CF 0x8506 +0xE4D0 0x83FB +0xE4D1 0x846D +0xE4D2 0x842A +0xE4D3 0x843C +0xE4D4 0x855A +0xE4D5 0x8484 +0xE4D6 0x8477 +0xE4D7 0x846B +0xE4D8 0x84AD +0xE4D9 0x846E +0xE4DA 0x8482 +0xE4DB 0x8469 +0xE4DC 0x8446 +0xE4DD 0x842C +0xE4DE 0x846F +0xE4DF 0x8479 +0xE4E0 0x8435 +0xE4E1 0x84CA +0xE4E2 0x8462 +0xE4E3 0x84B9 +0xE4E4 0x84BF +0xE4E5 0x849F +0xE4E6 0x84D9 +0xE4E7 0x84CD +0xE4E8 0x84BB +0xE4E9 0x84DA +0xE4EA 0x84D0 +0xE4EB 0x84C1 +0xE4EC 0x84C6 +0xE4ED 0x84D6 +0xE4EE 0x84A1 +0xE4EF 0x8521 +0xE4F0 0x84FF +0xE4F1 0x84F4 +0xE4F2 0x8517 +0xE4F3 0x8518 +0xE4F4 0x852C +0xE4F5 0x851F +0xE4F6 0x8515 +0xE4F7 0x8514 +0xE4F8 0x84FC +0xE4F9 0x8540 +0xE4FA 0x8563 +0xE4FB 0x8558 +0xE4FC 0x8548 +0xE540 0x8541 +0xE541 0x8602 +0xE542 0x854B +0xE543 0x8555 +0xE544 0x8580 +0xE545 0x85A4 +0xE546 0x8588 +0xE547 0x8591 +0xE548 0x858A +0xE549 0x85A8 +0xE54A 0x856D +0xE54B 0x8594 +0xE54C 0x859B +0xE54D 0x85EA +0xE54E 0x8587 +0xE54F 0x859C +0xE550 0x8577 +0xE551 0x857E +0xE552 0x8590 +0xE553 0x85C9 +0xE554 0x85BA +0xE555 0x85CF +0xE556 0x85B9 +0xE557 0x85D0 +0xE558 0x85D5 +0xE559 0x85DD +0xE55A 0x85E5 +0xE55B 0x85DC +0xE55C 0x85F9 +0xE55D 0x860A +0xE55E 0x8613 +0xE55F 0x860B +0xE560 0x85FE +0xE561 0x85FA +0xE562 0x8606 +0xE563 0x8622 +0xE564 0x861A +0xE565 0x8630 +0xE566 0x863F +0xE567 0x864D +0xE568 0x4E55 +0xE569 0x8654 +0xE56A 0x865F +0xE56B 0x8667 +0xE56C 0x8671 +0xE56D 0x8693 +0xE56E 0x86A3 +0xE56F 0x86A9 +0xE570 0x86AA +0xE571 0x868B +0xE572 0x868C +0xE573 0x86B6 +0xE574 0x86AF +0xE575 0x86C4 +0xE576 0x86C6 +0xE577 0x86B0 +0xE578 0x86C9 +0xE579 0x8823 +0xE57A 0x86AB +0xE57B 0x86D4 +0xE57C 0x86DE +0xE57D 0x86E9 +0xE57E 0x86EC +0xE580 0x86DF +0xE581 0x86DB +0xE582 0x86EF +0xE583 0x8712 +0xE584 0x8706 +0xE585 0x8708 +0xE586 0x8700 +0xE587 0x8703 +0xE588 0x86FB +0xE589 0x8711 +0xE58A 0x8709 +0xE58B 0x870D +0xE58C 0x86F9 +0xE58D 0x870A +0xE58E 0x8734 +0xE58F 0x873F +0xE590 0x8737 +0xE591 0x873B +0xE592 0x8725 +0xE593 0x8729 +0xE594 0x871A +0xE595 0x8760 +0xE596 0x875F +0xE597 0x8778 +0xE598 0x874C +0xE599 0x874E +0xE59A 0x8774 +0xE59B 0x8757 +0xE59C 0x8768 +0xE59D 0x876E +0xE59E 0x8759 +0xE59F 0x8753 +0xE5A0 0x8763 +0xE5A1 0x876A +0xE5A2 0x8805 +0xE5A3 0x87A2 +0xE5A4 0x879F +0xE5A5 0x8782 +0xE5A6 0x87AF +0xE5A7 0x87CB +0xE5A8 0x87BD +0xE5A9 0x87C0 +0xE5AA 0x87D0 +0xE5AB 0x96D6 +0xE5AC 0x87AB +0xE5AD 0x87C4 +0xE5AE 0x87B3 +0xE5AF 0x87C7 +0xE5B0 0x87C6 +0xE5B1 0x87BB +0xE5B2 0x87EF +0xE5B3 0x87F2 +0xE5B4 0x87E0 +0xE5B5 0x880F +0xE5B6 0x880D +0xE5B7 0x87FE +0xE5B8 0x87F6 +0xE5B9 0x87F7 +0xE5BA 0x880E +0xE5BB 0x87D2 +0xE5BC 0x8811 +0xE5BD 0x8816 +0xE5BE 0x8815 +0xE5BF 0x8822 +0xE5C0 0x8821 +0xE5C1 0x8831 +0xE5C2 0x8836 +0xE5C3 0x8839 +0xE5C4 0x8827 +0xE5C5 0x883B +0xE5C6 0x8844 +0xE5C7 0x8842 +0xE5C8 0x8852 +0xE5C9 0x8859 +0xE5CA 0x885E +0xE5CB 0x8862 +0xE5CC 0x886B +0xE5CD 0x8881 +0xE5CE 0x887E +0xE5CF 0x889E +0xE5D0 0x8875 +0xE5D1 0x887D +0xE5D2 0x88B5 +0xE5D3 0x8872 +0xE5D4 0x8882 +0xE5D5 0x8897 +0xE5D6 0x8892 +0xE5D7 0x88AE +0xE5D8 0x8899 +0xE5D9 0x88A2 +0xE5DA 0x888D +0xE5DB 0x88A4 +0xE5DC 0x88B0 +0xE5DD 0x88BF +0xE5DE 0x88B1 +0xE5DF 0x88C3 +0xE5E0 0x88C4 +0xE5E1 0x88D4 +0xE5E2 0x88D8 +0xE5E3 0x88D9 +0xE5E4 0x88DD +0xE5E5 0x88F9 +0xE5E6 0x8902 +0xE5E7 0x88FC +0xE5E8 0x88F4 +0xE5E9 0x88E8 +0xE5EA 0x88F2 +0xE5EB 0x8904 +0xE5EC 0x890C +0xE5ED 0x890A +0xE5EE 0x8913 +0xE5EF 0x8943 +0xE5F0 0x891E +0xE5F1 0x8925 +0xE5F2 0x892A +0xE5F3 0x892B +0xE5F4 0x8941 +0xE5F5 0x8944 +0xE5F6 0x893B +0xE5F7 0x8936 +0xE5F8 0x8938 +0xE5F9 0x894C +0xE5FA 0x891D +0xE5FB 0x8960 +0xE5FC 0x895E +0xE640 0x8966 +0xE641 0x8964 +0xE642 0x896D +0xE643 0x896A +0xE644 0x896F +0xE645 0x8974 +0xE646 0x8977 +0xE647 0x897E +0xE648 0x8983 +0xE649 0x8988 +0xE64A 0x898A +0xE64B 0x8993 +0xE64C 0x8998 +0xE64D 0x89A1 +0xE64E 0x89A9 +0xE64F 0x89A6 +0xE650 0x89AC +0xE651 0x89AF +0xE652 0x89B2 +0xE653 0x89BA +0xE654 0x89BD +0xE655 0x89BF +0xE656 0x89C0 +0xE657 0x89DA +0xE658 0x89DC +0xE659 0x89DD +0xE65A 0x89E7 +0xE65B 0x89F4 +0xE65C 0x89F8 +0xE65D 0x8A03 +0xE65E 0x8A16 +0xE65F 0x8A10 +0xE660 0x8A0C +0xE661 0x8A1B +0xE662 0x8A1D +0xE663 0x8A25 +0xE664 0x8A36 +0xE665 0x8A41 +0xE666 0x8A5B +0xE667 0x8A52 +0xE668 0x8A46 +0xE669 0x8A48 +0xE66A 0x8A7C +0xE66B 0x8A6D +0xE66C 0x8A6C +0xE66D 0x8A62 +0xE66E 0x8A85 +0xE66F 0x8A82 +0xE670 0x8A84 +0xE671 0x8AA8 +0xE672 0x8AA1 +0xE673 0x8A91 +0xE674 0x8AA5 +0xE675 0x8AA6 +0xE676 0x8A9A +0xE677 0x8AA3 +0xE678 0x8AC4 +0xE679 0x8ACD +0xE67A 0x8AC2 +0xE67B 0x8ADA +0xE67C 0x8AEB +0xE67D 0x8AF3 +0xE67E 0x8AE7 +0xE680 0x8AE4 +0xE681 0x8AF1 +0xE682 0x8B14 +0xE683 0x8AE0 +0xE684 0x8AE2 +0xE685 0x8AF7 +0xE686 0x8ADE +0xE687 0x8ADB +0xE688 0x8B0C +0xE689 0x8B07 +0xE68A 0x8B1A +0xE68B 0x8AE1 +0xE68C 0x8B16 +0xE68D 0x8B10 +0xE68E 0x8B17 +0xE68F 0x8B20 +0xE690 0x8B33 +0xE691 0x97AB +0xE692 0x8B26 +0xE693 0x8B2B +0xE694 0x8B3E +0xE695 0x8B28 +0xE696 0x8B41 +0xE697 0x8B4C +0xE698 0x8B4F +0xE699 0x8B4E +0xE69A 0x8B49 +0xE69B 0x8B56 +0xE69C 0x8B5B +0xE69D 0x8B5A +0xE69E 0x8B6B +0xE69F 0x8B5F +0xE6A0 0x8B6C +0xE6A1 0x8B6F +0xE6A2 0x8B74 +0xE6A3 0x8B7D +0xE6A4 0x8B80 +0xE6A5 0x8B8C +0xE6A6 0x8B8E +0xE6A7 0x8B92 +0xE6A8 0x8B93 +0xE6A9 0x8B96 +0xE6AA 0x8B99 +0xE6AB 0x8B9A +0xE6AC 0x8C3A +0xE6AD 0x8C41 +0xE6AE 0x8C3F +0xE6AF 0x8C48 +0xE6B0 0x8C4C +0xE6B1 0x8C4E +0xE6B2 0x8C50 +0xE6B3 0x8C55 +0xE6B4 0x8C62 +0xE6B5 0x8C6C +0xE6B6 0x8C78 +0xE6B7 0x8C7A +0xE6B8 0x8C82 +0xE6B9 0x8C89 +0xE6BA 0x8C85 +0xE6BB 0x8C8A +0xE6BC 0x8C8D +0xE6BD 0x8C8E +0xE6BE 0x8C94 +0xE6BF 0x8C7C +0xE6C0 0x8C98 +0xE6C1 0x621D +0xE6C2 0x8CAD +0xE6C3 0x8CAA +0xE6C4 0x8CBD +0xE6C5 0x8CB2 +0xE6C6 0x8CB3 +0xE6C7 0x8CAE +0xE6C8 0x8CB6 +0xE6C9 0x8CC8 +0xE6CA 0x8CC1 +0xE6CB 0x8CE4 +0xE6CC 0x8CE3 +0xE6CD 0x8CDA +0xE6CE 0x8CFD +0xE6CF 0x8CFA +0xE6D0 0x8CFB +0xE6D1 0x8D04 +0xE6D2 0x8D05 +0xE6D3 0x8D0A +0xE6D4 0x8D07 +0xE6D5 0x8D0F +0xE6D6 0x8D0D +0xE6D7 0x8D10 +0xE6D8 0x9F4E +0xE6D9 0x8D13 +0xE6DA 0x8CCD +0xE6DB 0x8D14 +0xE6DC 0x8D16 +0xE6DD 0x8D67 +0xE6DE 0x8D6D +0xE6DF 0x8D71 +0xE6E0 0x8D73 +0xE6E1 0x8D81 +0xE6E2 0x8D99 +0xE6E3 0x8DC2 +0xE6E4 0x8DBE +0xE6E5 0x8DBA +0xE6E6 0x8DCF +0xE6E7 0x8DDA +0xE6E8 0x8DD6 +0xE6E9 0x8DCC +0xE6EA 0x8DDB +0xE6EB 0x8DCB +0xE6EC 0x8DEA +0xE6ED 0x8DEB +0xE6EE 0x8DDF +0xE6EF 0x8DE3 +0xE6F0 0x8DFC +0xE6F1 0x8E08 +0xE6F2 0x8E09 +0xE6F3 0x8DFF +0xE6F4 0x8E1D +0xE6F5 0x8E1E +0xE6F6 0x8E10 +0xE6F7 0x8E1F +0xE6F8 0x8E42 +0xE6F9 0x8E35 +0xE6FA 0x8E30 +0xE6FB 0x8E34 +0xE6FC 0x8E4A +0xE740 0x8E47 +0xE741 0x8E49 +0xE742 0x8E4C +0xE743 0x8E50 +0xE744 0x8E48 +0xE745 0x8E59 +0xE746 0x8E64 +0xE747 0x8E60 +0xE748 0x8E2A +0xE749 0x8E63 +0xE74A 0x8E55 +0xE74B 0x8E76 +0xE74C 0x8E72 +0xE74D 0x8E7C +0xE74E 0x8E81 +0xE74F 0x8E87 +0xE750 0x8E85 +0xE751 0x8E84 +0xE752 0x8E8B +0xE753 0x8E8A +0xE754 0x8E93 +0xE755 0x8E91 +0xE756 0x8E94 +0xE757 0x8E99 +0xE758 0x8EAA +0xE759 0x8EA1 +0xE75A 0x8EAC +0xE75B 0x8EB0 +0xE75C 0x8EC6 +0xE75D 0x8EB1 +0xE75E 0x8EBE +0xE75F 0x8EC5 +0xE760 0x8EC8 +0xE761 0x8ECB +0xE762 0x8EDB +0xE763 0x8EE3 +0xE764 0x8EFC +0xE765 0x8EFB +0xE766 0x8EEB +0xE767 0x8EFE +0xE768 0x8F0A +0xE769 0x8F05 +0xE76A 0x8F15 +0xE76B 0x8F12 +0xE76C 0x8F19 +0xE76D 0x8F13 +0xE76E 0x8F1C +0xE76F 0x8F1F +0xE770 0x8F1B +0xE771 0x8F0C +0xE772 0x8F26 +0xE773 0x8F33 +0xE774 0x8F3B +0xE775 0x8F39 +0xE776 0x8F45 +0xE777 0x8F42 +0xE778 0x8F3E +0xE779 0x8F4C +0xE77A 0x8F49 +0xE77B 0x8F46 +0xE77C 0x8F4E +0xE77D 0x8F57 +0xE77E 0x8F5C +0xE780 0x8F62 +0xE781 0x8F63 +0xE782 0x8F64 +0xE783 0x8F9C +0xE784 0x8F9F +0xE785 0x8FA3 +0xE786 0x8FAD +0xE787 0x8FAF +0xE788 0x8FB7 +0xE789 0x8FDA +0xE78A 0x8FE5 +0xE78B 0x8FE2 +0xE78C 0x8FEA +0xE78D 0x8FEF +0xE78E 0x9087 +0xE78F 0x8FF4 +0xE790 0x9005 +0xE791 0x8FF9 +0xE792 0x8FFA +0xE793 0x9011 +0xE794 0x9015 +0xE795 0x9021 +0xE796 0x900D +0xE797 0x901E +0xE798 0x9016 +0xE799 0x900B +0xE79A 0x9027 +0xE79B 0x9036 +0xE79C 0x9035 +0xE79D 0x9039 +0xE79E 0x8FF8 +0xE79F 0x904F +0xE7A0 0x9050 +0xE7A1 0x9051 +0xE7A2 0x9052 +0xE7A3 0x900E +0xE7A4 0x9049 +0xE7A5 0x903E +0xE7A6 0x9056 +0xE7A7 0x9058 +0xE7A8 0x905E +0xE7A9 0x9068 +0xE7AA 0x906F +0xE7AB 0x9076 +0xE7AC 0x96A8 +0xE7AD 0x9072 +0xE7AE 0x9082 +0xE7AF 0x907D +0xE7B0 0x9081 +0xE7B1 0x9080 +0xE7B2 0x908A +0xE7B3 0x9089 +0xE7B4 0x908F +0xE7B5 0x90A8 +0xE7B6 0x90AF +0xE7B7 0x90B1 +0xE7B8 0x90B5 +0xE7B9 0x90E2 +0xE7BA 0x90E4 +0xE7BB 0x6248 +0xE7BC 0x90DB +0xE7BD 0x9102 +0xE7BE 0x9112 +0xE7BF 0x9119 +0xE7C0 0x9132 +0xE7C1 0x9130 +0xE7C2 0x914A +0xE7C3 0x9156 +0xE7C4 0x9158 +0xE7C5 0x9163 +0xE7C6 0x9165 +0xE7C7 0x9169 +0xE7C8 0x9173 +0xE7C9 0x9172 +0xE7CA 0x918B +0xE7CB 0x9189 +0xE7CC 0x9182 +0xE7CD 0x91A2 +0xE7CE 0x91AB +0xE7CF 0x91AF +0xE7D0 0x91AA +0xE7D1 0x91B5 +0xE7D2 0x91B4 +0xE7D3 0x91BA +0xE7D4 0x91C0 +0xE7D5 0x91C1 +0xE7D6 0x91C9 +0xE7D7 0x91CB +0xE7D8 0x91D0 +0xE7D9 0x91D6 +0xE7DA 0x91DF +0xE7DB 0x91E1 +0xE7DC 0x91DB +0xE7DD 0x91FC +0xE7DE 0x91F5 +0xE7DF 0x91F6 +0xE7E0 0x921E +0xE7E1 0x91FF +0xE7E2 0x9214 +0xE7E3 0x922C +0xE7E4 0x9215 +0xE7E5 0x9211 +0xE7E6 0x925E +0xE7E7 0x9257 +0xE7E8 0x9245 +0xE7E9 0x9249 +0xE7EA 0x9264 +0xE7EB 0x9248 +0xE7EC 0x9295 +0xE7ED 0x923F +0xE7EE 0x924B +0xE7EF 0x9250 +0xE7F0 0x929C +0xE7F1 0x9296 +0xE7F2 0x9293 +0xE7F3 0x929B +0xE7F4 0x925A +0xE7F5 0x92CF +0xE7F6 0x92B9 +0xE7F7 0x92B7 +0xE7F8 0x92E9 +0xE7F9 0x930F +0xE7FA 0x92FA +0xE7FB 0x9344 +0xE7FC 0x932E +0xE840 0x9319 +0xE841 0x9322 +0xE842 0x931A +0xE843 0x9323 +0xE844 0x933A +0xE845 0x9335 +0xE846 0x933B +0xE847 0x935C +0xE848 0x9360 +0xE849 0x937C +0xE84A 0x936E +0xE84B 0x9356 +0xE84C 0x93B0 +0xE84D 0x93AC +0xE84E 0x93AD +0xE84F 0x9394 +0xE850 0x93B9 +0xE851 0x93D6 +0xE852 0x93D7 +0xE853 0x93E8 +0xE854 0x93E5 +0xE855 0x93D8 +0xE856 0x93C3 +0xE857 0x93DD +0xE858 0x93D0 +0xE859 0x93C8 +0xE85A 0x93E4 +0xE85B 0x941A +0xE85C 0x9414 +0xE85D 0x9413 +0xE85E 0x9403 +0xE85F 0x9407 +0xE860 0x9410 +0xE861 0x9436 +0xE862 0x942B +0xE863 0x9435 +0xE864 0x9421 +0xE865 0x943A +0xE866 0x9441 +0xE867 0x9452 +0xE868 0x9444 +0xE869 0x945B +0xE86A 0x9460 +0xE86B 0x9462 +0xE86C 0x945E +0xE86D 0x946A +0xE86E 0x9229 +0xE86F 0x9470 +0xE870 0x9475 +0xE871 0x9477 +0xE872 0x947D +0xE873 0x945A +0xE874 0x947C +0xE875 0x947E +0xE876 0x9481 +0xE877 0x947F +0xE878 0x9582 +0xE879 0x9587 +0xE87A 0x958A +0xE87B 0x9594 +0xE87C 0x9596 +0xE87D 0x9598 +0xE87E 0x9599 +0xE880 0x95A0 +0xE881 0x95A8 +0xE882 0x95A7 +0xE883 0x95AD +0xE884 0x95BC +0xE885 0x95BB +0xE886 0x95B9 +0xE887 0x95BE +0xE888 0x95CA +0xE889 0x6FF6 +0xE88A 0x95C3 +0xE88B 0x95CD +0xE88C 0x95CC +0xE88D 0x95D5 +0xE88E 0x95D4 +0xE88F 0x95D6 +0xE890 0x95DC +0xE891 0x95E1 +0xE892 0x95E5 +0xE893 0x95E2 +0xE894 0x9621 +0xE895 0x9628 +0xE896 0x962E +0xE897 0x962F +0xE898 0x9642 +0xE899 0x964C +0xE89A 0x964F +0xE89B 0x964B +0xE89C 0x9677 +0xE89D 0x965C +0xE89E 0x965E +0xE89F 0x965D +0xE8A0 0x965F +0xE8A1 0x9666 +0xE8A2 0x9672 +0xE8A3 0x966C +0xE8A4 0x968D +0xE8A5 0x9698 +0xE8A6 0x9695 +0xE8A7 0x9697 +0xE8A8 0x96AA +0xE8A9 0x96A7 +0xE8AA 0x96B1 +0xE8AB 0x96B2 +0xE8AC 0x96B0 +0xE8AD 0x96B4 +0xE8AE 0x96B6 +0xE8AF 0x96B8 +0xE8B0 0x96B9 +0xE8B1 0x96CE +0xE8B2 0x96CB +0xE8B3 0x96C9 +0xE8B4 0x96CD +0xE8B5 0x894D +0xE8B6 0x96DC +0xE8B7 0x970D +0xE8B8 0x96D5 +0xE8B9 0x96F9 +0xE8BA 0x9704 +0xE8BB 0x9706 +0xE8BC 0x9708 +0xE8BD 0x9713 +0xE8BE 0x970E +0xE8BF 0x9711 +0xE8C0 0x970F +0xE8C1 0x9716 +0xE8C2 0x9719 +0xE8C3 0x9724 +0xE8C4 0x972A +0xE8C5 0x9730 +0xE8C6 0x9739 +0xE8C7 0x973D +0xE8C8 0x973E +0xE8C9 0x9744 +0xE8CA 0x9746 +0xE8CB 0x9748 +0xE8CC 0x9742 +0xE8CD 0x9749 +0xE8CE 0x975C +0xE8CF 0x9760 +0xE8D0 0x9764 +0xE8D1 0x9766 +0xE8D2 0x9768 +0xE8D3 0x52D2 +0xE8D4 0x976B +0xE8D5 0x9771 +0xE8D6 0x9779 +0xE8D7 0x9785 +0xE8D8 0x977C +0xE8D9 0x9781 +0xE8DA 0x977A +0xE8DB 0x9786 +0xE8DC 0x978B +0xE8DD 0x978F +0xE8DE 0x9790 +0xE8DF 0x979C +0xE8E0 0x97A8 +0xE8E1 0x97A6 +0xE8E2 0x97A3 +0xE8E3 0x97B3 +0xE8E4 0x97B4 +0xE8E5 0x97C3 +0xE8E6 0x97C6 +0xE8E7 0x97C8 +0xE8E8 0x97CB +0xE8E9 0x97DC +0xE8EA 0x97ED +0xE8EB 0x9F4F +0xE8EC 0x97F2 +0xE8ED 0x7ADF +0xE8EE 0x97F6 +0xE8EF 0x97F5 +0xE8F0 0x980F +0xE8F1 0x980C +0xE8F2 0x9838 +0xE8F3 0x9824 +0xE8F4 0x9821 +0xE8F5 0x9837 +0xE8F6 0x983D +0xE8F7 0x9846 +0xE8F8 0x984F +0xE8F9 0x984B +0xE8FA 0x986B +0xE8FB 0x986F +0xE8FC 0x9870 +0xE940 0x9871 +0xE941 0x9874 +0xE942 0x9873 +0xE943 0x98AA +0xE944 0x98AF +0xE945 0x98B1 +0xE946 0x98B6 +0xE947 0x98C4 +0xE948 0x98C3 +0xE949 0x98C6 +0xE94A 0x98E9 +0xE94B 0x98EB +0xE94C 0x9903 +0xE94D 0x9909 +0xE94E 0x9912 +0xE94F 0x9914 +0xE950 0x9918 +0xE951 0x9921 +0xE952 0x991D +0xE953 0x991E +0xE954 0x9924 +0xE955 0x9920 +0xE956 0x992C +0xE957 0x992E +0xE958 0x993D +0xE959 0x993E +0xE95A 0x9942 +0xE95B 0x9949 +0xE95C 0x9945 +0xE95D 0x9950 +0xE95E 0x994B +0xE95F 0x9951 +0xE960 0x9952 +0xE961 0x994C +0xE962 0x9955 +0xE963 0x9997 +0xE964 0x9998 +0xE965 0x99A5 +0xE966 0x99AD +0xE967 0x99AE +0xE968 0x99BC +0xE969 0x99DF +0xE96A 0x99DB +0xE96B 0x99DD +0xE96C 0x99D8 +0xE96D 0x99D1 +0xE96E 0x99ED +0xE96F 0x99EE +0xE970 0x99F1 +0xE971 0x99F2 +0xE972 0x99FB +0xE973 0x99F8 +0xE974 0x9A01 +0xE975 0x9A0F +0xE976 0x9A05 +0xE977 0x99E2 +0xE978 0x9A19 +0xE979 0x9A2B +0xE97A 0x9A37 +0xE97B 0x9A45 +0xE97C 0x9A42 +0xE97D 0x9A40 +0xE97E 0x9A43 +0xE980 0x9A3E +0xE981 0x9A55 +0xE982 0x9A4D +0xE983 0x9A5B +0xE984 0x9A57 +0xE985 0x9A5F +0xE986 0x9A62 +0xE987 0x9A65 +0xE988 0x9A64 +0xE989 0x9A69 +0xE98A 0x9A6B +0xE98B 0x9A6A +0xE98C 0x9AAD +0xE98D 0x9AB0 +0xE98E 0x9ABC +0xE98F 0x9AC0 +0xE990 0x9ACF +0xE991 0x9AD1 +0xE992 0x9AD3 +0xE993 0x9AD4 +0xE994 0x9ADE +0xE995 0x9ADF +0xE996 0x9AE2 +0xE997 0x9AE3 +0xE998 0x9AE6 +0xE999 0x9AEF +0xE99A 0x9AEB +0xE99B 0x9AEE +0xE99C 0x9AF4 +0xE99D 0x9AF1 +0xE99E 0x9AF7 +0xE99F 0x9AFB +0xE9A0 0x9B06 +0xE9A1 0x9B18 +0xE9A2 0x9B1A +0xE9A3 0x9B1F +0xE9A4 0x9B22 +0xE9A5 0x9B23 +0xE9A6 0x9B25 +0xE9A7 0x9B27 +0xE9A8 0x9B28 +0xE9A9 0x9B29 +0xE9AA 0x9B2A +0xE9AB 0x9B2E +0xE9AC 0x9B2F +0xE9AD 0x9B32 +0xE9AE 0x9B44 +0xE9AF 0x9B43 +0xE9B0 0x9B4F +0xE9B1 0x9B4D +0xE9B2 0x9B4E +0xE9B3 0x9B51 +0xE9B4 0x9B58 +0xE9B5 0x9B74 +0xE9B6 0x9B93 +0xE9B7 0x9B83 +0xE9B8 0x9B91 +0xE9B9 0x9B96 +0xE9BA 0x9B97 +0xE9BB 0x9B9F +0xE9BC 0x9BA0 +0xE9BD 0x9BA8 +0xE9BE 0x9BB4 +0xE9BF 0x9BC0 +0xE9C0 0x9BCA +0xE9C1 0x9BB9 +0xE9C2 0x9BC6 +0xE9C3 0x9BCF +0xE9C4 0x9BD1 +0xE9C5 0x9BD2 +0xE9C6 0x9BE3 +0xE9C7 0x9BE2 +0xE9C8 0x9BE4 +0xE9C9 0x9BD4 +0xE9CA 0x9BE1 +0xE9CB 0x9C3A +0xE9CC 0x9BF2 +0xE9CD 0x9BF1 +0xE9CE 0x9BF0 +0xE9CF 0x9C15 +0xE9D0 0x9C14 +0xE9D1 0x9C09 +0xE9D2 0x9C13 +0xE9D3 0x9C0C +0xE9D4 0x9C06 +0xE9D5 0x9C08 +0xE9D6 0x9C12 +0xE9D7 0x9C0A +0xE9D8 0x9C04 +0xE9D9 0x9C2E +0xE9DA 0x9C1B +0xE9DB 0x9C25 +0xE9DC 0x9C24 +0xE9DD 0x9C21 +0xE9DE 0x9C30 +0xE9DF 0x9C47 +0xE9E0 0x9C32 +0xE9E1 0x9C46 +0xE9E2 0x9C3E +0xE9E3 0x9C5A +0xE9E4 0x9C60 +0xE9E5 0x9C67 +0xE9E6 0x9C76 +0xE9E7 0x9C78 +0xE9E8 0x9CE7 +0xE9E9 0x9CEC +0xE9EA 0x9CF0 +0xE9EB 0x9D09 +0xE9EC 0x9D08 +0xE9ED 0x9CEB +0xE9EE 0x9D03 +0xE9EF 0x9D06 +0xE9F0 0x9D2A +0xE9F1 0x9D26 +0xE9F2 0x9DAF +0xE9F3 0x9D23 +0xE9F4 0x9D1F +0xE9F5 0x9D44 +0xE9F6 0x9D15 +0xE9F7 0x9D12 +0xE9F8 0x9D41 +0xE9F9 0x9D3F +0xE9FA 0x9D3E +0xE9FB 0x9D46 +0xE9FC 0x9D48 +0xEA40 0x9D5D +0xEA41 0x9D5E +0xEA42 0x9D64 +0xEA43 0x9D51 +0xEA44 0x9D50 +0xEA45 0x9D59 +0xEA46 0x9D72 +0xEA47 0x9D89 +0xEA48 0x9D87 +0xEA49 0x9DAB +0xEA4A 0x9D6F +0xEA4B 0x9D7A +0xEA4C 0x9D9A +0xEA4D 0x9DA4 +0xEA4E 0x9DA9 +0xEA4F 0x9DB2 +0xEA50 0x9DC4 +0xEA51 0x9DC1 +0xEA52 0x9DBB +0xEA53 0x9DB8 +0xEA54 0x9DBA +0xEA55 0x9DC6 +0xEA56 0x9DCF +0xEA57 0x9DC2 +0xEA58 0x9DD9 +0xEA59 0x9DD3 +0xEA5A 0x9DF8 +0xEA5B 0x9DE6 +0xEA5C 0x9DED +0xEA5D 0x9DEF +0xEA5E 0x9DFD +0xEA5F 0x9E1A +0xEA60 0x9E1B +0xEA61 0x9E1E +0xEA62 0x9E75 +0xEA63 0x9E79 +0xEA64 0x9E7D +0xEA65 0x9E81 +0xEA66 0x9E88 +0xEA67 0x9E8B +0xEA68 0x9E8C +0xEA69 0x9E92 +0xEA6A 0x9E95 +0xEA6B 0x9E91 +0xEA6C 0x9E9D +0xEA6D 0x9EA5 +0xEA6E 0x9EA9 +0xEA6F 0x9EB8 +0xEA70 0x9EAA +0xEA71 0x9EAD +0xEA72 0x9761 +0xEA73 0x9ECC +0xEA74 0x9ECE +0xEA75 0x9ECF +0xEA76 0x9ED0 +0xEA77 0x9ED4 +0xEA78 0x9EDC +0xEA79 0x9EDE +0xEA7A 0x9EDD +0xEA7B 0x9EE0 +0xEA7C 0x9EE5 +0xEA7D 0x9EE8 +0xEA7E 0x9EEF +0xEA80 0x9EF4 +0xEA81 0x9EF6 +0xEA82 0x9EF7 +0xEA83 0x9EF9 +0xEA84 0x9EFB +0xEA85 0x9EFC +0xEA86 0x9EFD +0xEA87 0x9F07 +0xEA88 0x9F08 +0xEA89 0x76B7 +0xEA8A 0x9F15 +0xEA8B 0x9F21 +0xEA8C 0x9F2C +0xEA8D 0x9F3E +0xEA8E 0x9F4A +0xEA8F 0x9F52 +0xEA90 0x9F54 +0xEA91 0x9F63 +0xEA92 0x9F5F +0xEA93 0x9F60 +0xEA94 0x9F61 +0xEA95 0x9F66 +0xEA96 0x9F67 +0xEA97 0x9F6C +0xEA98 0x9F6A +0xEA99 0x9F77 +0xEA9A 0x9F72 +0xEA9B 0x9F76 +0xEA9C 0x9F95 +0xEA9D 0x9F9C +0xEA9E 0x9FA0 +0xEA9F 0x582F +0xEAA0 0x69C7 +0xEAA1 0x9059 +0xEAA2 0x7464 +0xEAA3 0x51DC +0xEAA4 0x7199 +0xF040 0xE000 +0xF041 0xE001 +0xF042 0xE002 +0xF043 0xE003 +0xF044 0xE004 +0xF045 0xE005 +0xF046 0xE006 +0xF047 0xE007 +0xF048 0xE008 +0xF049 0xE009 +0xF04A 0xE00A +0xF04B 0xE00B +0xF04C 0xE00C +0xF04D 0xE00D +0xF04E 0xE00E +0xF04F 0xE00F +0xF050 0xE010 +0xF051 0xE011 +0xF052 0xE012 +0xF053 0xE013 +0xF054 0xE014 +0xF055 0xE015 +0xF056 0xE016 +0xF057 0xE017 +0xF058 0xE018 +0xF059 0xE019 +0xF05A 0xE01A +0xF05B 0xE01B +0xF05C 0xE01C +0xF05D 0xE01D +0xF05E 0xE01E +0xF05F 0xE01F +0xF060 0xE020 +0xF061 0xE021 +0xF062 0xE022 +0xF063 0xE023 +0xF064 0xE024 +0xF065 0xE025 +0xF066 0xE026 +0xF067 0xE027 +0xF068 0xE028 +0xF069 0xE029 +0xF06A 0xE02A +0xF06B 0xE02B +0xF06C 0xE02C +0xF06D 0xE02D +0xF06E 0xE02E +0xF06F 0xE02F +0xF070 0xE030 +0xF071 0xE031 +0xF072 0xE032 +0xF073 0xE033 +0xF074 0xE034 +0xF075 0xE035 +0xF076 0xE036 +0xF077 0xE037 +0xF078 0xE038 +0xF079 0xE039 +0xF07A 0xE03A +0xF07B 0xE03B +0xF07C 0xE03C +0xF07D 0xE03D +0xF07E 0xE03E +0xF080 0xE03F +0xF081 0xE040 +0xF082 0xE041 +0xF083 0xE042 +0xF084 0xE043 +0xF085 0xE044 +0xF086 0xE045 +0xF087 0xE046 +0xF088 0xE047 +0xF089 0xE048 +0xF08A 0xE049 +0xF08B 0xE04A +0xF08C 0xE04B +0xF08D 0xE04C +0xF08E 0xE04D +0xF08F 0xE04E +0xF090 0xE04F +0xF091 0xE050 +0xF092 0xE051 +0xF093 0xE052 +0xF094 0xE053 +0xF095 0xE054 +0xF096 0xE055 +0xF097 0xE056 +0xF098 0xE057 +0xF099 0xE058 +0xF09A 0xE059 +0xF09B 0xE05A +0xF09C 0xE05B +0xF09D 0xE05C +0xF09E 0xE05D +0xF09F 0xE05E +0xF0A0 0xE05F +0xF0A1 0xE060 +0xF0A2 0xE061 +0xF0A3 0xE062 +0xF0A4 0xE063 +0xF0A5 0xE064 +0xF0A6 0xE065 +0xF0A7 0xE066 +0xF0A8 0xE067 +0xF0A9 0xE068 +0xF0AA 0xE069 +0xF0AB 0xE06A +0xF0AC 0xE06B +0xF0AD 0xE06C +0xF0AE 0xE06D +0xF0AF 0xE06E +0xF0B0 0xE06F +0xF0B1 0xE070 +0xF0B2 0xE071 +0xF0B3 0xE072 +0xF0B4 0xE073 +0xF0B5 0xE074 +0xF0B6 0xE075 +0xF0B7 0xE076 +0xF0B8 0xE077 +0xF0B9 0xE078 +0xF0BA 0xE079 +0xF0BB 0xE07A +0xF0BC 0xE07B +0xF0BD 0xE07C +0xF0BE 0xE07D +0xF0BF 0xE07E +0xF0C0 0xE07F +0xF0C1 0xE080 +0xF0C2 0xE081 +0xF0C3 0xE082 +0xF0C4 0xE083 +0xF0C5 0xE084 +0xF0C6 0xE085 +0xF0C7 0xE086 +0xF0C8 0xE087 +0xF0C9 0xE088 +0xF0CA 0xE089 +0xF0CB 0xE08A +0xF0CC 0xE08B +0xF0CD 0xE08C +0xF0CE 0xE08D +0xF0CF 0xE08E +0xF0D0 0xE08F +0xF0D1 0xE090 +0xF0D2 0xE091 +0xF0D3 0xE092 +0xF0D4 0xE093 +0xF0D5 0xE094 +0xF0D6 0xE095 +0xF0D7 0xE096 +0xF0D8 0xE097 +0xF0D9 0xE098 +0xF0DA 0xE099 +0xF0DB 0xE09A +0xF0DC 0xE09B +0xF0DD 0xE09C +0xF0DE 0xE09D +0xF0DF 0xE09E +0xF0E0 0xE09F +0xF0E1 0xE0A0 +0xF0E2 0xE0A1 +0xF0E3 0xE0A2 +0xF0E4 0xE0A3 +0xF0E5 0xE0A4 +0xF0E6 0xE0A5 +0xF0E7 0xE0A6 +0xF0E8 0xE0A7 +0xF0E9 0xE0A8 +0xF0EA 0xE0A9 +0xF0EB 0xE0AA +0xF0EC 0xE0AB +0xF0ED 0xE0AC +0xF0EE 0xE0AD +0xF0EF 0xE0AE +0xF0F0 0xE0AF +0xF0F1 0xE0B0 +0xF0F2 0xE0B1 +0xF0F3 0xE0B2 +0xF0F4 0xE0B3 +0xF0F5 0xE0B4 +0xF0F6 0xE0B5 +0xF0F7 0xE0B6 +0xF0F8 0xE0B7 +0xF0F9 0xE0B8 +0xF0FA 0xE0B9 +0xF0FB 0xE0BA +0xF0FC 0xE0BB +0xF140 0xE0BC +0xF141 0xE0BD +0xF142 0xE0BE +0xF143 0xE0BF +0xF144 0xE0C0 +0xF145 0xE0C1 +0xF146 0xE0C2 +0xF147 0xE0C3 +0xF148 0xE0C4 +0xF149 0xE0C5 +0xF14A 0xE0C6 +0xF14B 0xE0C7 +0xF14C 0xE0C8 +0xF14D 0xE0C9 +0xF14E 0xE0CA +0xF14F 0xE0CB +0xF150 0xE0CC +0xF151 0xE0CD +0xF152 0xE0CE +0xF153 0xE0CF +0xF154 0xE0D0 +0xF155 0xE0D1 +0xF156 0xE0D2 +0xF157 0xE0D3 +0xF158 0xE0D4 +0xF159 0xE0D5 +0xF15A 0xE0D6 +0xF15B 0xE0D7 +0xF15C 0xE0D8 +0xF15D 0xE0D9 +0xF15E 0xE0DA +0xF15F 0xE0DB +0xF160 0xE0DC +0xF161 0xE0DD +0xF162 0xE0DE +0xF163 0xE0DF +0xF164 0xE0E0 +0xF165 0xE0E1 +0xF166 0xE0E2 +0xF167 0xE0E3 +0xF168 0xE0E4 +0xF169 0xE0E5 +0xF16A 0xE0E6 +0xF16B 0xE0E7 +0xF16C 0xE0E8 +0xF16D 0xE0E9 +0xF16E 0xE0EA +0xF16F 0xE0EB +0xF170 0xE0EC +0xF171 0xE0ED +0xF172 0xE0EE +0xF173 0xE0EF +0xF174 0xE0F0 +0xF175 0xE0F1 +0xF176 0xE0F2 +0xF177 0xE0F3 +0xF178 0xE0F4 +0xF179 0xE0F5 +0xF17A 0xE0F6 +0xF17B 0xE0F7 +0xF17C 0xE0F8 +0xF17D 0xE0F9 +0xF17E 0xE0FA +0xF180 0xE0FB +0xF181 0xE0FC +0xF182 0xE0FD +0xF183 0xE0FE +0xF184 0xE0FF +0xF185 0xE100 +0xF186 0xE101 +0xF187 0xE102 +0xF188 0xE103 +0xF189 0xE104 +0xF18A 0xE105 +0xF18B 0xE106 +0xF18C 0xE107 +0xF18D 0xE108 +0xF18E 0xE109 +0xF18F 0xE10A +0xF190 0xE10B +0xF191 0xE10C +0xF192 0xE10D +0xF193 0xE10E +0xF194 0xE10F +0xF195 0xE110 +0xF196 0xE111 +0xF197 0xE112 +0xF198 0xE113 +0xF199 0xE114 +0xF19A 0xE115 +0xF19B 0xE116 +0xF19C 0xE117 +0xF19D 0xE118 +0xF19E 0xE119 +0xF19F 0xE11A +0xF1A0 0xE11B +0xF1A1 0xE11C +0xF1A2 0xE11D +0xF1A3 0xE11E +0xF1A4 0xE11F +0xF1A5 0xE120 +0xF1A6 0xE121 +0xF1A7 0xE122 +0xF1A8 0xE123 +0xF1A9 0xE124 +0xF1AA 0xE125 +0xF1AB 0xE126 +0xF1AC 0xE127 +0xF1AD 0xE128 +0xF1AE 0xE129 +0xF1AF 0xE12A +0xF1B0 0xE12B +0xF1B1 0xE12C +0xF1B2 0xE12D +0xF1B3 0xE12E +0xF1B4 0xE12F +0xF1B5 0xE130 +0xF1B6 0xE131 +0xF1B7 0xE132 +0xF1B8 0xE133 +0xF1B9 0xE134 +0xF1BA 0xE135 +0xF1BB 0xE136 +0xF1BC 0xE137 +0xF1BD 0xE138 +0xF1BE 0xE139 +0xF1BF 0xE13A +0xF1C0 0xE13B +0xF1C1 0xE13C +0xF1C2 0xE13D +0xF1C3 0xE13E +0xF1C4 0xE13F +0xF1C5 0xE140 +0xF1C6 0xE141 +0xF1C7 0xE142 +0xF1C8 0xE143 +0xF1C9 0xE144 +0xF1CA 0xE145 +0xF1CB 0xE146 +0xF1CC 0xE147 +0xF1CD 0xE148 +0xF1CE 0xE149 +0xF1CF 0xE14A +0xF1D0 0xE14B +0xF1D1 0xE14C +0xF1D2 0xE14D +0xF1D3 0xE14E +0xF1D4 0xE14F +0xF1D5 0xE150 +0xF1D6 0xE151 +0xF1D7 0xE152 +0xF1D8 0xE153 +0xF1D9 0xE154 +0xF1DA 0xE155 +0xF1DB 0xE156 +0xF1DC 0xE157 +0xF1DD 0xE158 +0xF1DE 0xE159 +0xF1DF 0xE15A +0xF1E0 0xE15B +0xF1E1 0xE15C +0xF1E2 0xE15D +0xF1E3 0xE15E +0xF1E4 0xE15F +0xF1E5 0xE160 +0xF1E6 0xE161 +0xF1E7 0xE162 +0xF1E8 0xE163 +0xF1E9 0xE164 +0xF1EA 0xE165 +0xF1EB 0xE166 +0xF1EC 0xE167 +0xF1ED 0xE168 +0xF1EE 0xE169 +0xF1EF 0xE16A +0xF1F0 0xE16B +0xF1F1 0xE16C +0xF1F2 0xE16D +0xF1F3 0xE16E +0xF1F4 0xE16F +0xF1F5 0xE170 +0xF1F6 0xE171 +0xF1F7 0xE172 +0xF1F8 0xE173 +0xF1F9 0xE174 +0xF1FA 0xE175 +0xF1FB 0xE176 +0xF1FC 0xE177 +0xF240 0xE178 +0xF241 0xE179 +0xF242 0xE17A +0xF243 0xE17B +0xF244 0xE17C +0xF245 0xE17D +0xF246 0xE17E +0xF247 0xE17F +0xF248 0xE180 +0xF249 0xE181 +0xF24A 0xE182 +0xF24B 0xE183 +0xF24C 0xE184 +0xF24D 0xE185 +0xF24E 0xE186 +0xF24F 0xE187 +0xF250 0xE188 +0xF251 0xE189 +0xF252 0xE18A +0xF253 0xE18B +0xF254 0xE18C +0xF255 0xE18D +0xF256 0xE18E +0xF257 0xE18F +0xF258 0xE190 +0xF259 0xE191 +0xF25A 0xE192 +0xF25B 0xE193 +0xF25C 0xE194 +0xF25D 0xE195 +0xF25E 0xE196 +0xF25F 0xE197 +0xF260 0xE198 +0xF261 0xE199 +0xF262 0xE19A +0xF263 0xE19B +0xF264 0xE19C +0xF265 0xE19D +0xF266 0xE19E +0xF267 0xE19F +0xF268 0xE1A0 +0xF269 0xE1A1 +0xF26A 0xE1A2 +0xF26B 0xE1A3 +0xF26C 0xE1A4 +0xF26D 0xE1A5 +0xF26E 0xE1A6 +0xF26F 0xE1A7 +0xF270 0xE1A8 +0xF271 0xE1A9 +0xF272 0xE1AA +0xF273 0xE1AB +0xF274 0xE1AC +0xF275 0xE1AD +0xF276 0xE1AE +0xF277 0xE1AF +0xF278 0xE1B0 +0xF279 0xE1B1 +0xF27A 0xE1B2 +0xF27B 0xE1B3 +0xF27C 0xE1B4 +0xF27D 0xE1B5 +0xF27E 0xE1B6 +0xF280 0xE1B7 +0xF281 0xE1B8 +0xF282 0xE1B9 +0xF283 0xE1BA +0xF284 0xE1BB +0xF285 0xE1BC +0xF286 0xE1BD +0xF287 0xE1BE +0xF288 0xE1BF +0xF289 0xE1C0 +0xF28A 0xE1C1 +0xF28B 0xE1C2 +0xF28C 0xE1C3 +0xF28D 0xE1C4 +0xF28E 0xE1C5 +0xF28F 0xE1C6 +0xF290 0xE1C7 +0xF291 0xE1C8 +0xF292 0xE1C9 +0xF293 0xE1CA +0xF294 0xE1CB +0xF295 0xE1CC +0xF296 0xE1CD +0xF297 0xE1CE +0xF298 0xE1CF +0xF299 0xE1D0 +0xF29A 0xE1D1 +0xF29B 0xE1D2 +0xF29C 0xE1D3 +0xF29D 0xE1D4 +0xF29E 0xE1D5 +0xF29F 0xE1D6 +0xF2A0 0xE1D7 +0xF2A1 0xE1D8 +0xF2A2 0xE1D9 +0xF2A3 0xE1DA +0xF2A4 0xE1DB +0xF2A5 0xE1DC +0xF2A6 0xE1DD +0xF2A7 0xE1DE +0xF2A8 0xE1DF +0xF2A9 0xE1E0 +0xF2AA 0xE1E1 +0xF2AB 0xE1E2 +0xF2AC 0xE1E3 +0xF2AD 0xE1E4 +0xF2AE 0xE1E5 +0xF2AF 0xE1E6 +0xF2B0 0xE1E7 +0xF2B1 0xE1E8 +0xF2B2 0xE1E9 +0xF2B3 0xE1EA +0xF2B4 0xE1EB +0xF2B5 0xE1EC +0xF2B6 0xE1ED +0xF2B7 0xE1EE +0xF2B8 0xE1EF +0xF2B9 0xE1F0 +0xF2BA 0xE1F1 +0xF2BB 0xE1F2 +0xF2BC 0xE1F3 +0xF2BD 0xE1F4 +0xF2BE 0xE1F5 +0xF2BF 0xE1F6 +0xF2C0 0xE1F7 +0xF2C1 0xE1F8 +0xF2C2 0xE1F9 +0xF2C3 0xE1FA +0xF2C4 0xE1FB +0xF2C5 0xE1FC +0xF2C6 0xE1FD +0xF2C7 0xE1FE +0xF2C8 0xE1FF +0xF2C9 0xE200 +0xF2CA 0xE201 +0xF2CB 0xE202 +0xF2CC 0xE203 +0xF2CD 0xE204 +0xF2CE 0xE205 +0xF2CF 0xE206 +0xF2D0 0xE207 +0xF2D1 0xE208 +0xF2D2 0xE209 +0xF2D3 0xE20A +0xF2D4 0xE20B +0xF2D5 0xE20C +0xF2D6 0xE20D +0xF2D7 0xE20E +0xF2D8 0xE20F +0xF2D9 0xE210 +0xF2DA 0xE211 +0xF2DB 0xE212 +0xF2DC 0xE213 +0xF2DD 0xE214 +0xF2DE 0xE215 +0xF2DF 0xE216 +0xF2E0 0xE217 +0xF2E1 0xE218 +0xF2E2 0xE219 +0xF2E3 0xE21A +0xF2E4 0xE21B +0xF2E5 0xE21C +0xF2E6 0xE21D +0xF2E7 0xE21E +0xF2E8 0xE21F +0xF2E9 0xE220 +0xF2EA 0xE221 +0xF2EB 0xE222 +0xF2EC 0xE223 +0xF2ED 0xE224 +0xF2EE 0xE225 +0xF2EF 0xE226 +0xF2F0 0xE227 +0xF2F1 0xE228 +0xF2F2 0xE229 +0xF2F3 0xE22A +0xF2F4 0xE22B +0xF2F5 0xE22C +0xF2F6 0xE22D +0xF2F7 0xE22E +0xF2F8 0xE22F +0xF2F9 0xE230 +0xF2FA 0xE231 +0xF2FB 0xE232 +0xF2FC 0xE233 +0xF340 0xE234 +0xF341 0xE235 +0xF342 0xE236 +0xF343 0xE237 +0xF344 0xE238 +0xF345 0xE239 +0xF346 0xE23A +0xF347 0xE23B +0xF348 0xE23C +0xF349 0xE23D +0xF34A 0xE23E +0xF34B 0xE23F +0xF34C 0xE240 +0xF34D 0xE241 +0xF34E 0xE242 +0xF34F 0xE243 +0xF350 0xE244 +0xF351 0xE245 +0xF352 0xE246 +0xF353 0xE247 +0xF354 0xE248 +0xF355 0xE249 +0xF356 0xE24A +0xF357 0xE24B +0xF358 0xE24C +0xF359 0xE24D +0xF35A 0xE24E +0xF35B 0xE24F +0xF35C 0xE250 +0xF35D 0xE251 +0xF35E 0xE252 +0xF35F 0xE253 +0xF360 0xE254 +0xF361 0xE255 +0xF362 0xE256 +0xF363 0xE257 +0xF364 0xE258 +0xF365 0xE259 +0xF366 0xE25A +0xF367 0xE25B +0xF368 0xE25C +0xF369 0xE25D +0xF36A 0xE25E +0xF36B 0xE25F +0xF36C 0xE260 +0xF36D 0xE261 +0xF36E 0xE262 +0xF36F 0xE263 +0xF370 0xE264 +0xF371 0xE265 +0xF372 0xE266 +0xF373 0xE267 +0xF374 0xE268 +0xF375 0xE269 +0xF376 0xE26A +0xF377 0xE26B +0xF378 0xE26C +0xF379 0xE26D +0xF37A 0xE26E +0xF37B 0xE26F +0xF37C 0xE270 +0xF37D 0xE271 +0xF37E 0xE272 +0xF380 0xE273 +0xF381 0xE274 +0xF382 0xE275 +0xF383 0xE276 +0xF384 0xE277 +0xF385 0xE278 +0xF386 0xE279 +0xF387 0xE27A +0xF388 0xE27B +0xF389 0xE27C +0xF38A 0xE27D +0xF38B 0xE27E +0xF38C 0xE27F +0xF38D 0xE280 +0xF38E 0xE281 +0xF38F 0xE282 +0xF390 0xE283 +0xF391 0xE284 +0xF392 0xE285 +0xF393 0xE286 +0xF394 0xE287 +0xF395 0xE288 +0xF396 0xE289 +0xF397 0xE28A +0xF398 0xE28B +0xF399 0xE28C +0xF39A 0xE28D +0xF39B 0xE28E +0xF39C 0xE28F +0xF39D 0xE290 +0xF39E 0xE291 +0xF39F 0xE292 +0xF3A0 0xE293 +0xF3A1 0xE294 +0xF3A2 0xE295 +0xF3A3 0xE296 +0xF3A4 0xE297 +0xF3A5 0xE298 +0xF3A6 0xE299 +0xF3A7 0xE29A +0xF3A8 0xE29B +0xF3A9 0xE29C +0xF3AA 0xE29D +0xF3AB 0xE29E +0xF3AC 0xE29F +0xF3AD 0xE2A0 +0xF3AE 0xE2A1 +0xF3AF 0xE2A2 +0xF3B0 0xE2A3 +0xF3B1 0xE2A4 +0xF3B2 0xE2A5 +0xF3B3 0xE2A6 +0xF3B4 0xE2A7 +0xF3B5 0xE2A8 +0xF3B6 0xE2A9 +0xF3B7 0xE2AA +0xF3B8 0xE2AB +0xF3B9 0xE2AC +0xF3BA 0xE2AD +0xF3BB 0xE2AE +0xF3BC 0xE2AF +0xF3BD 0xE2B0 +0xF3BE 0xE2B1 +0xF3BF 0xE2B2 +0xF3C0 0xE2B3 +0xF3C1 0xE2B4 +0xF3C2 0xE2B5 +0xF3C3 0xE2B6 +0xF3C4 0xE2B7 +0xF3C5 0xE2B8 +0xF3C6 0xE2B9 +0xF3C7 0xE2BA +0xF3C8 0xE2BB +0xF3C9 0xE2BC +0xF3CA 0xE2BD +0xF3CB 0xE2BE +0xF3CC 0xE2BF +0xF3CD 0xE2C0 +0xF3CE 0xE2C1 +0xF3CF 0xE2C2 +0xF3D0 0xE2C3 +0xF3D1 0xE2C4 +0xF3D2 0xE2C5 +0xF3D3 0xE2C6 +0xF3D4 0xE2C7 +0xF3D5 0xE2C8 +0xF3D6 0xE2C9 +0xF3D7 0xE2CA +0xF3D8 0xE2CB +0xF3D9 0xE2CC +0xF3DA 0xE2CD +0xF3DB 0xE2CE +0xF3DC 0xE2CF +0xF3DD 0xE2D0 +0xF3DE 0xE2D1 +0xF3DF 0xE2D2 +0xF3E0 0xE2D3 +0xF3E1 0xE2D4 +0xF3E2 0xE2D5 +0xF3E3 0xE2D6 +0xF3E4 0xE2D7 +0xF3E5 0xE2D8 +0xF3E6 0xE2D9 +0xF3E7 0xE2DA +0xF3E8 0xE2DB +0xF3E9 0xE2DC +0xF3EA 0xE2DD +0xF3EB 0xE2DE +0xF3EC 0xE2DF +0xF3ED 0xE2E0 +0xF3EE 0xE2E1 +0xF3EF 0xE2E2 +0xF3F0 0xE2E3 +0xF3F1 0xE2E4 +0xF3F2 0xE2E5 +0xF3F3 0xE2E6 +0xF3F4 0xE2E7 +0xF3F5 0xE2E8 +0xF3F6 0xE2E9 +0xF3F7 0xE2EA +0xF3F8 0xE2EB +0xF3F9 0xE2EC +0xF3FA 0xE2ED +0xF3FB 0xE2EE +0xF3FC 0xE2EF +0xF440 0xE2F0 +0xF441 0xE2F1 +0xF442 0xE2F2 +0xF443 0xE2F3 +0xF444 0xE2F4 +0xF445 0xE2F5 +0xF446 0xE2F6 +0xF447 0xE2F7 +0xF448 0xE2F8 +0xF449 0xE2F9 +0xF44A 0xE2FA +0xF44B 0xE2FB +0xF44C 0xE2FC +0xF44D 0xE2FD +0xF44E 0xE2FE +0xF44F 0xE2FF +0xF450 0xE300 +0xF451 0xE301 +0xF452 0xE302 +0xF453 0xE303 +0xF454 0xE304 +0xF455 0xE305 +0xF456 0xE306 +0xF457 0xE307 +0xF458 0xE308 +0xF459 0xE309 +0xF45A 0xE30A +0xF45B 0xE30B +0xF45C 0xE30C +0xF45D 0xE30D +0xF45E 0xE30E +0xF45F 0xE30F +0xF460 0xE310 +0xF461 0xE311 +0xF462 0xE312 +0xF463 0xE313 +0xF464 0xE314 +0xF465 0xE315 +0xF466 0xE316 +0xF467 0xE317 +0xF468 0xE318 +0xF469 0xE319 +0xF46A 0xE31A +0xF46B 0xE31B +0xF46C 0xE31C +0xF46D 0xE31D +0xF46E 0xE31E +0xF46F 0xE31F +0xF470 0xE320 +0xF471 0xE321 +0xF472 0xE322 +0xF473 0xE323 +0xF474 0xE324 +0xF475 0xE325 +0xF476 0xE326 +0xF477 0xE327 +0xF478 0xE328 +0xF479 0xE329 +0xF47A 0xE32A +0xF47B 0xE32B +0xF47C 0xE32C +0xF47D 0xE32D +0xF47E 0xE32E +0xF480 0xE32F +0xF481 0xE330 +0xF482 0xE331 +0xF483 0xE332 +0xF484 0xE333 +0xF485 0xE334 +0xF486 0xE335 +0xF487 0xE336 +0xF488 0xE337 +0xF489 0xE338 +0xF48A 0xE339 +0xF48B 0xE33A +0xF48C 0xE33B +0xF48D 0xE33C +0xF48E 0xE33D +0xF48F 0xE33E +0xF490 0xE33F +0xF491 0xE340 +0xF492 0xE341 +0xF493 0xE342 +0xF494 0xE343 +0xF495 0xE344 +0xF496 0xE345 +0xF497 0xE346 +0xF498 0xE347 +0xF499 0xE348 +0xF49A 0xE349 +0xF49B 0xE34A +0xF49C 0xE34B +0xF49D 0xE34C +0xF49E 0xE34D +0xF49F 0xE34E +0xF4A0 0xE34F +0xF4A1 0xE350 +0xF4A2 0xE351 +0xF4A3 0xE352 +0xF4A4 0xE353 +0xF4A5 0xE354 +0xF4A6 0xE355 +0xF4A7 0xE356 +0xF4A8 0xE357 +0xF4A9 0xE358 +0xF4AA 0xE359 +0xF4AB 0xE35A +0xF4AC 0xE35B +0xF4AD 0xE35C +0xF4AE 0xE35D +0xF4AF 0xE35E +0xF4B0 0xE35F +0xF4B1 0xE360 +0xF4B2 0xE361 +0xF4B3 0xE362 +0xF4B4 0xE363 +0xF4B5 0xE364 +0xF4B6 0xE365 +0xF4B7 0xE366 +0xF4B8 0xE367 +0xF4B9 0xE368 +0xF4BA 0xE369 +0xF4BB 0xE36A +0xF4BC 0xE36B +0xF4BD 0xE36C +0xF4BE 0xE36D +0xF4BF 0xE36E +0xF4C0 0xE36F +0xF4C1 0xE370 +0xF4C2 0xE371 +0xF4C3 0xE372 +0xF4C4 0xE373 +0xF4C5 0xE374 +0xF4C6 0xE375 +0xF4C7 0xE376 +0xF4C8 0xE377 +0xF4C9 0xE378 +0xF4CA 0xE379 +0xF4CB 0xE37A +0xF4CC 0xE37B +0xF4CD 0xE37C +0xF4CE 0xE37D +0xF4CF 0xE37E +0xF4D0 0xE37F +0xF4D1 0xE380 +0xF4D2 0xE381 +0xF4D3 0xE382 +0xF4D4 0xE383 +0xF4D5 0xE384 +0xF4D6 0xE385 +0xF4D7 0xE386 +0xF4D8 0xE387 +0xF4D9 0xE388 +0xF4DA 0xE389 +0xF4DB 0xE38A +0xF4DC 0xE38B +0xF4DD 0xE38C +0xF4DE 0xE38D +0xF4DF 0xE38E +0xF4E0 0xE38F +0xF4E1 0xE390 +0xF4E2 0xE391 +0xF4E3 0xE392 +0xF4E4 0xE393 +0xF4E5 0xE394 +0xF4E6 0xE395 +0xF4E7 0xE396 +0xF4E8 0xE397 +0xF4E9 0xE398 +0xF4EA 0xE399 +0xF4EB 0xE39A +0xF4EC 0xE39B +0xF4ED 0xE39C +0xF4EE 0xE39D +0xF4EF 0xE39E +0xF4F0 0xE39F +0xF4F1 0xE3A0 +0xF4F2 0xE3A1 +0xF4F3 0xE3A2 +0xF4F4 0xE3A3 +0xF4F5 0xE3A4 +0xF4F6 0xE3A5 +0xF4F7 0xE3A6 +0xF4F8 0xE3A7 +0xF4F9 0xE3A8 +0xF4FA 0xE3A9 +0xF4FB 0xE3AA +0xF4FC 0xE3AB +0xF540 0xE3AC +0xF541 0xE3AD +0xF542 0xE3AE +0xF543 0xE3AF +0xF544 0xE3B0 +0xF545 0xE3B1 +0xF546 0xE3B2 +0xF547 0xE3B3 +0xF548 0xE3B4 +0xF549 0xE3B5 +0xF54A 0xE3B6 +0xF54B 0xE3B7 +0xF54C 0xE3B8 +0xF54D 0xE3B9 +0xF54E 0xE3BA +0xF54F 0xE3BB +0xF550 0xE3BC +0xF551 0xE3BD +0xF552 0xE3BE +0xF553 0xE3BF +0xF554 0xE3C0 +0xF555 0xE3C1 +0xF556 0xE3C2 +0xF557 0xE3C3 +0xF558 0xE3C4 +0xF559 0xE3C5 +0xF55A 0xE3C6 +0xF55B 0xE3C7 +0xF55C 0xE3C8 +0xF55D 0xE3C9 +0xF55E 0xE3CA +0xF55F 0xE3CB +0xF560 0xE3CC +0xF561 0xE3CD +0xF562 0xE3CE +0xF563 0xE3CF +0xF564 0xE3D0 +0xF565 0xE3D1 +0xF566 0xE3D2 +0xF567 0xE3D3 +0xF568 0xE3D4 +0xF569 0xE3D5 +0xF56A 0xE3D6 +0xF56B 0xE3D7 +0xF56C 0xE3D8 +0xF56D 0xE3D9 +0xF56E 0xE3DA +0xF56F 0xE3DB +0xF570 0xE3DC +0xF571 0xE3DD +0xF572 0xE3DE +0xF573 0xE3DF +0xF574 0xE3E0 +0xF575 0xE3E1 +0xF576 0xE3E2 +0xF577 0xE3E3 +0xF578 0xE3E4 +0xF579 0xE3E5 +0xF57A 0xE3E6 +0xF57B 0xE3E7 +0xF57C 0xE3E8 +0xF57D 0xE3E9 +0xF57E 0xE3EA +0xF580 0xE3EB +0xF581 0xE3EC +0xF582 0xE3ED +0xF583 0xE3EE +0xF584 0xE3EF +0xF585 0xE3F0 +0xF586 0xE3F1 +0xF587 0xE3F2 +0xF588 0xE3F3 +0xF589 0xE3F4 +0xF58A 0xE3F5 +0xF58B 0xE3F6 +0xF58C 0xE3F7 +0xF58D 0xE3F8 +0xF58E 0xE3F9 +0xF58F 0xE3FA +0xF590 0xE3FB +0xF591 0xE3FC +0xF592 0xE3FD +0xF593 0xE3FE +0xF594 0xE3FF +0xF595 0xE400 +0xF596 0xE401 +0xF597 0xE402 +0xF598 0xE403 +0xF599 0xE404 +0xF59A 0xE405 +0xF59B 0xE406 +0xF59C 0xE407 +0xF59D 0xE408 +0xF59E 0xE409 +0xF59F 0xE40A +0xF5A0 0xE40B +0xF5A1 0xE40C +0xF5A2 0xE40D +0xF5A3 0xE40E +0xF5A4 0xE40F +0xF5A5 0xE410 +0xF5A6 0xE411 +0xF5A7 0xE412 +0xF5A8 0xE413 +0xF5A9 0xE414 +0xF5AA 0xE415 +0xF5AB 0xE416 +0xF5AC 0xE417 +0xF5AD 0xE418 +0xF5AE 0xE419 +0xF5AF 0xE41A +0xF5B0 0xE41B +0xF5B1 0xE41C +0xF5B2 0xE41D +0xF5B3 0xE41E +0xF5B4 0xE41F +0xF5B5 0xE420 +0xF5B6 0xE421 +0xF5B7 0xE422 +0xF5B8 0xE423 +0xF5B9 0xE424 +0xF5BA 0xE425 +0xF5BB 0xE426 +0xF5BC 0xE427 +0xF5BD 0xE428 +0xF5BE 0xE429 +0xF5BF 0xE42A +0xF5C0 0xE42B +0xF5C1 0xE42C +0xF5C2 0xE42D +0xF5C3 0xE42E +0xF5C4 0xE42F +0xF5C5 0xE430 +0xF5C6 0xE431 +0xF5C7 0xE432 +0xF5C8 0xE433 +0xF5C9 0xE434 +0xF5CA 0xE435 +0xF5CB 0xE436 +0xF5CC 0xE437 +0xF5CD 0xE438 +0xF5CE 0xE439 +0xF5CF 0xE43A +0xF5D0 0xE43B +0xF5D1 0xE43C +0xF5D2 0xE43D +0xF5D3 0xE43E +0xF5D4 0xE43F +0xF5D5 0xE440 +0xF5D6 0xE441 +0xF5D7 0xE442 +0xF5D8 0xE443 +0xF5D9 0xE444 +0xF5DA 0xE445 +0xF5DB 0xE446 +0xF5DC 0xE447 +0xF5DD 0xE448 +0xF5DE 0xE449 +0xF5DF 0xE44A +0xF5E0 0xE44B +0xF5E1 0xE44C +0xF5E2 0xE44D +0xF5E3 0xE44E +0xF5E4 0xE44F +0xF5E5 0xE450 +0xF5E6 0xE451 +0xF5E7 0xE452 +0xF5E8 0xE453 +0xF5E9 0xE454 +0xF5EA 0xE455 +0xF5EB 0xE456 +0xF5EC 0xE457 +0xF5ED 0xE458 +0xF5EE 0xE459 +0xF5EF 0xE45A +0xF5F0 0xE45B +0xF5F1 0xE45C +0xF5F2 0xE45D +0xF5F3 0xE45E +0xF5F4 0xE45F +0xF5F5 0xE460 +0xF5F6 0xE461 +0xF5F7 0xE462 +0xF5F8 0xE463 +0xF5F9 0xE464 +0xF5FA 0xE465 +0xF5FB 0xE466 +0xF5FC 0xE467 +0xF640 0xE468 +0xF641 0xE469 +0xF642 0xE46A +0xF643 0xE46B +0xF644 0xE46C +0xF645 0xE46D +0xF646 0xE46E +0xF647 0xE46F +0xF648 0xE470 +0xF649 0xE471 +0xF64A 0xE472 +0xF64B 0xE473 +0xF64C 0xE474 +0xF64D 0xE475 +0xF64E 0xE476 +0xF64F 0xE477 +0xF650 0xE478 +0xF651 0xE479 +0xF652 0xE47A +0xF653 0xE47B +0xF654 0xE47C +0xF655 0xE47D +0xF656 0xE47E +0xF657 0xE47F +0xF658 0xE480 +0xF659 0xE481 +0xF65A 0xE482 +0xF65B 0xE483 +0xF65C 0xE484 +0xF65D 0xE485 +0xF65E 0xE486 +0xF65F 0xE487 +0xF660 0xE488 +0xF661 0xE489 +0xF662 0xE48A +0xF663 0xE48B +0xF664 0xE48C +0xF665 0xE48D +0xF666 0xE48E +0xF667 0xE48F +0xF668 0xE490 +0xF669 0xE491 +0xF66A 0xE492 +0xF66B 0xE493 +0xF66C 0xE494 +0xF66D 0xE495 +0xF66E 0xE496 +0xF66F 0xE497 +0xF670 0xE498 +0xF671 0xE499 +0xF672 0xE49A +0xF673 0xE49B +0xF674 0xE49C +0xF675 0xE49D +0xF676 0xE49E +0xF677 0xE49F +0xF678 0xE4A0 +0xF679 0xE4A1 +0xF67A 0xE4A2 +0xF67B 0xE4A3 +0xF67C 0xE4A4 +0xF67D 0xE4A5 +0xF67E 0xE4A6 +0xF680 0xE4A7 +0xF681 0xE4A8 +0xF682 0xE4A9 +0xF683 0xE4AA +0xF684 0xE4AB +0xF685 0xE4AC +0xF686 0xE4AD +0xF687 0xE4AE +0xF688 0xE4AF +0xF689 0xE4B0 +0xF68A 0xE4B1 +0xF68B 0xE4B2 +0xF68C 0xE4B3 +0xF68D 0xE4B4 +0xF68E 0xE4B5 +0xF68F 0xE4B6 +0xF690 0xE4B7 +0xF691 0xE4B8 +0xF692 0xE4B9 +0xF693 0xE4BA +0xF694 0xE4BB +0xF695 0xE4BC +0xF696 0xE4BD +0xF697 0xE4BE +0xF698 0xE4BF +0xF699 0xE4C0 +0xF69A 0xE4C1 +0xF69B 0xE4C2 +0xF69C 0xE4C3 +0xF69D 0xE4C4 +0xF69E 0xE4C5 +0xF69F 0xE4C6 +0xF6A0 0xE4C7 +0xF6A1 0xE4C8 +0xF6A2 0xE4C9 +0xF6A3 0xE4CA +0xF6A4 0xE4CB +0xF6A5 0xE4CC +0xF6A6 0xE4CD +0xF6A7 0xE4CE +0xF6A8 0xE4CF +0xF6A9 0xE4D0 +0xF6AA 0xE4D1 +0xF6AB 0xE4D2 +0xF6AC 0xE4D3 +0xF6AD 0xE4D4 +0xF6AE 0xE4D5 +0xF6AF 0xE4D6 +0xF6B0 0xE4D7 +0xF6B1 0xE4D8 +0xF6B2 0xE4D9 +0xF6B3 0xE4DA +0xF6B4 0xE4DB +0xF6B5 0xE4DC +0xF6B6 0xE4DD +0xF6B7 0xE4DE +0xF6B8 0xE4DF +0xF6B9 0xE4E0 +0xF6BA 0xE4E1 +0xF6BB 0xE4E2 +0xF6BC 0xE4E3 +0xF6BD 0xE4E4 +0xF6BE 0xE4E5 +0xF6BF 0xE4E6 +0xF6C0 0xE4E7 +0xF6C1 0xE4E8 +0xF6C2 0xE4E9 +0xF6C3 0xE4EA +0xF6C4 0xE4EB +0xF6C5 0xE4EC +0xF6C6 0xE4ED +0xF6C7 0xE4EE +0xF6C8 0xE4EF +0xF6C9 0xE4F0 +0xF6CA 0xE4F1 +0xF6CB 0xE4F2 +0xF6CC 0xE4F3 +0xF6CD 0xE4F4 +0xF6CE 0xE4F5 +0xF6CF 0xE4F6 +0xF6D0 0xE4F7 +0xF6D1 0xE4F8 +0xF6D2 0xE4F9 +0xF6D3 0xE4FA +0xF6D4 0xE4FB +0xF6D5 0xE4FC +0xF6D6 0xE4FD +0xF6D7 0xE4FE +0xF6D8 0xE4FF +0xF6D9 0xE500 +0xF6DA 0xE501 +0xF6DB 0xE502 +0xF6DC 0xE503 +0xF6DD 0xE504 +0xF6DE 0xE505 +0xF6DF 0xE506 +0xF6E0 0xE507 +0xF6E1 0xE508 +0xF6E2 0xE509 +0xF6E3 0xE50A +0xF6E4 0xE50B +0xF6E5 0xE50C +0xF6E6 0xE50D +0xF6E7 0xE50E +0xF6E8 0xE50F +0xF6E9 0xE510 +0xF6EA 0xE511 +0xF6EB 0xE512 +0xF6EC 0xE513 +0xF6ED 0xE514 +0xF6EE 0xE515 +0xF6EF 0xE516 +0xF6F0 0xE517 +0xF6F1 0xE518 +0xF6F2 0xE519 +0xF6F3 0xE51A +0xF6F4 0xE51B +0xF6F5 0xE51C +0xF6F6 0xE51D +0xF6F7 0xE51E +0xF6F8 0xE51F +0xF6F9 0xE520 +0xF6FA 0xE521 +0xF6FB 0xE522 +0xF6FC 0xE523 +0xF740 0xE524 +0xF741 0xE525 +0xF742 0xE526 +0xF743 0xE527 +0xF744 0xE528 +0xF745 0xE529 +0xF746 0xE52A +0xF747 0xE52B +0xF748 0xE52C +0xF749 0xE52D +0xF74A 0xE52E +0xF74B 0xE52F +0xF74C 0xE530 +0xF74D 0xE531 +0xF74E 0xE532 +0xF74F 0xE533 +0xF750 0xE534 +0xF751 0xE535 +0xF752 0xE536 +0xF753 0xE537 +0xF754 0xE538 +0xF755 0xE539 +0xF756 0xE53A +0xF757 0xE53B +0xF758 0xE53C +0xF759 0xE53D +0xF75A 0xE53E +0xF75B 0xE53F +0xF75C 0xE540 +0xF75D 0xE541 +0xF75E 0xE542 +0xF75F 0xE543 +0xF760 0xE544 +0xF761 0xE545 +0xF762 0xE546 +0xF763 0xE547 +0xF764 0xE548 +0xF765 0xE549 +0xF766 0xE54A +0xF767 0xE54B +0xF768 0xE54C +0xF769 0xE54D +0xF76A 0xE54E +0xF76B 0xE54F +0xF76C 0xE550 +0xF76D 0xE551 +0xF76E 0xE552 +0xF76F 0xE553 +0xF770 0xE554 +0xF771 0xE555 +0xF772 0xE556 +0xF773 0xE557 +0xF774 0xE558 +0xF775 0xE559 +0xF776 0xE55A +0xF777 0xE55B +0xF778 0xE55C +0xF779 0xE55D +0xF77A 0xE55E +0xF77B 0xE55F +0xF77C 0xE560 +0xF77D 0xE561 +0xF77E 0xE562 +0xF780 0xE563 +0xF781 0xE564 +0xF782 0xE565 +0xF783 0xE566 +0xF784 0xE567 +0xF785 0xE568 +0xF786 0xE569 +0xF787 0xE56A +0xF788 0xE56B +0xF789 0xE56C +0xF78A 0xE56D +0xF78B 0xE56E +0xF78C 0xE56F +0xF78D 0xE570 +0xF78E 0xE571 +0xF78F 0xE572 +0xF790 0xE573 +0xF791 0xE574 +0xF792 0xE575 +0xF793 0xE576 +0xF794 0xE577 +0xF795 0xE578 +0xF796 0xE579 +0xF797 0xE57A +0xF798 0xE57B +0xF799 0xE57C +0xF79A 0xE57D +0xF79B 0xE57E +0xF79C 0xE57F +0xF79D 0xE580 +0xF79E 0xE581 +0xF79F 0xE582 +0xF7A0 0xE583 +0xF7A1 0xE584 +0xF7A2 0xE585 +0xF7A3 0xE586 +0xF7A4 0xE587 +0xF7A5 0xE588 +0xF7A6 0xE589 +0xF7A7 0xE58A +0xF7A8 0xE58B +0xF7A9 0xE58C +0xF7AA 0xE58D +0xF7AB 0xE58E +0xF7AC 0xE58F +0xF7AD 0xE590 +0xF7AE 0xE591 +0xF7AF 0xE592 +0xF7B0 0xE593 +0xF7B1 0xE594 +0xF7B2 0xE595 +0xF7B3 0xE596 +0xF7B4 0xE597 +0xF7B5 0xE598 +0xF7B6 0xE599 +0xF7B7 0xE59A +0xF7B8 0xE59B +0xF7B9 0xE59C +0xF7BA 0xE59D +0xF7BB 0xE59E +0xF7BC 0xE59F +0xF7BD 0xE5A0 +0xF7BE 0xE5A1 +0xF7BF 0xE5A2 +0xF7C0 0xE5A3 +0xF7C1 0xE5A4 +0xF7C2 0xE5A5 +0xF7C3 0xE5A6 +0xF7C4 0xE5A7 +0xF7C5 0xE5A8 +0xF7C6 0xE5A9 +0xF7C7 0xE5AA +0xF7C8 0xE5AB +0xF7C9 0xE5AC +0xF7CA 0xE5AD +0xF7CB 0xE5AE +0xF7CC 0xE5AF +0xF7CD 0xE5B0 +0xF7CE 0xE5B1 +0xF7CF 0xE5B2 +0xF7D0 0xE5B3 +0xF7D1 0xE5B4 +0xF7D2 0xE5B5 +0xF7D3 0xE5B6 +0xF7D4 0xE5B7 +0xF7D5 0xE5B8 +0xF7D6 0xE5B9 +0xF7D7 0xE5BA +0xF7D8 0xE5BB +0xF7D9 0xE5BC +0xF7DA 0xE5BD +0xF7DB 0xE5BE +0xF7DC 0xE5BF +0xF7DD 0xE5C0 +0xF7DE 0xE5C1 +0xF7DF 0xE5C2 +0xF7E0 0xE5C3 +0xF7E1 0xE5C4 +0xF7E2 0xE5C5 +0xF7E3 0xE5C6 +0xF7E4 0xE5C7 +0xF7E5 0xE5C8 +0xF7E6 0xE5C9 +0xF7E7 0xE5CA +0xF7E8 0xE5CB +0xF7E9 0xE5CC +0xF7EA 0xE5CD +0xF7EB 0xE5CE +0xF7EC 0xE5CF +0xF7ED 0xE5D0 +0xF7EE 0xE5D1 +0xF7EF 0xE5D2 +0xF7F0 0xE5D3 +0xF7F1 0xE5D4 +0xF7F2 0xE5D5 +0xF7F3 0xE5D6 +0xF7F4 0xE5D7 +0xF7F5 0xE5D8 +0xF7F6 0xE5D9 +0xF7F7 0xE5DA +0xF7F8 0xE5DB +0xF7F9 0xE5DC +0xF7FA 0xE5DD +0xF7FB 0xE5DE +0xF7FC 0xE5DF +0xF840 0xE5E0 +0xF841 0xE5E1 +0xF842 0xE5E2 +0xF843 0xE5E3 +0xF844 0xE5E4 +0xF845 0xE5E5 +0xF846 0xE5E6 +0xF847 0xE5E7 +0xF848 0xE5E8 +0xF849 0xE5E9 +0xF84A 0xE5EA +0xF84B 0xE5EB +0xF84C 0xE5EC +0xF84D 0xE5ED +0xF84E 0xE5EE +0xF84F 0xE5EF +0xF850 0xE5F0 +0xF851 0xE5F1 +0xF852 0xE5F2 +0xF853 0xE5F3 +0xF854 0xE5F4 +0xF855 0xE5F5 +0xF856 0xE5F6 +0xF857 0xE5F7 +0xF858 0xE5F8 +0xF859 0xE5F9 +0xF85A 0xE5FA +0xF85B 0xE5FB +0xF85C 0xE5FC +0xF85D 0xE5FD +0xF85E 0xE5FE +0xF85F 0xE5FF +0xF860 0xE600 +0xF861 0xE601 +0xF862 0xE602 +0xF863 0xE603 +0xF864 0xE604 +0xF865 0xE605 +0xF866 0xE606 +0xF867 0xE607 +0xF868 0xE608 +0xF869 0xE609 +0xF86A 0xE60A +0xF86B 0xE60B +0xF86C 0xE60C +0xF86D 0xE60D +0xF86E 0xE60E +0xF86F 0xE60F +0xF870 0xE610 +0xF871 0xE611 +0xF872 0xE612 +0xF873 0xE613 +0xF874 0xE614 +0xF875 0xE615 +0xF876 0xE616 +0xF877 0xE617 +0xF878 0xE618 +0xF879 0xE619 +0xF87A 0xE61A +0xF87B 0xE61B +0xF87C 0xE61C +0xF87D 0xE61D +0xF87E 0xE61E +0xF880 0xE61F +0xF881 0xE620 +0xF882 0xE621 +0xF883 0xE622 +0xF884 0xE623 +0xF885 0xE624 +0xF886 0xE625 +0xF887 0xE626 +0xF888 0xE627 +0xF889 0xE628 +0xF88A 0xE629 +0xF88B 0xE62A +0xF88C 0xE62B +0xF88D 0xE62C +0xF88E 0xE62D +0xF88F 0xE62E +0xF890 0xE62F +0xF891 0xE630 +0xF892 0xE631 +0xF893 0xE632 +0xF894 0xE633 +0xF895 0xE634 +0xF896 0xE635 +0xF897 0xE636 +0xF898 0xE637 +0xF899 0xE638 +0xF89A 0xE639 +0xF89B 0xE63A +0xF89C 0xE63B +0xF89D 0xE63C +0xF89E 0xE63D +0xF89F 0xE63E +0xF8A0 0xE63F +0xF8A1 0xE640 +0xF8A2 0xE641 +0xF8A3 0xE642 +0xF8A4 0xE643 +0xF8A5 0xE644 +0xF8A6 0xE645 +0xF8A7 0xE646 +0xF8A8 0xE647 +0xF8A9 0xE648 +0xF8AA 0xE649 +0xF8AB 0xE64A +0xF8AC 0xE64B +0xF8AD 0xE64C +0xF8AE 0xE64D +0xF8AF 0xE64E +0xF8B0 0xE64F +0xF8B1 0xE650 +0xF8B2 0xE651 +0xF8B3 0xE652 +0xF8B4 0xE653 +0xF8B5 0xE654 +0xF8B6 0xE655 +0xF8B7 0xE656 +0xF8B8 0xE657 +0xF8B9 0xE658 +0xF8BA 0xE659 +0xF8BB 0xE65A +0xF8BC 0xE65B +0xF8BD 0xE65C +0xF8BE 0xE65D +0xF8BF 0xE65E +0xF8C0 0xE65F +0xF8C1 0xE660 +0xF8C2 0xE661 +0xF8C3 0xE662 +0xF8C4 0xE663 +0xF8C5 0xE664 +0xF8C6 0xE665 +0xF8C7 0xE666 +0xF8C8 0xE667 +0xF8C9 0xE668 +0xF8CA 0xE669 +0xF8CB 0xE66A +0xF8CC 0xE66B +0xF8CD 0xE66C +0xF8CE 0xE66D +0xF8CF 0xE66E +0xF8D0 0xE66F +0xF8D1 0xE670 +0xF8D2 0xE671 +0xF8D3 0xE672 +0xF8D4 0xE673 +0xF8D5 0xE674 +0xF8D6 0xE675 +0xF8D7 0xE676 +0xF8D8 0xE677 +0xF8D9 0xE678 +0xF8DA 0xE679 +0xF8DB 0xE67A +0xF8DC 0xE67B +0xF8DD 0xE67C +0xF8DE 0xE67D +0xF8DF 0xE67E +0xF8E0 0xE67F +0xF8E1 0xE680 +0xF8E2 0xE681 +0xF8E3 0xE682 +0xF8E4 0xE683 +0xF8E5 0xE684 +0xF8E6 0xE685 +0xF8E7 0xE686 +0xF8E8 0xE687 +0xF8E9 0xE688 +0xF8EA 0xE689 +0xF8EB 0xE68A +0xF8EC 0xE68B +0xF8ED 0xE68C +0xF8EE 0xE68D +0xF8EF 0xE68E +0xF8F0 0xE68F +0xF8F1 0xE690 +0xF8F2 0xE691 +0xF8F3 0xE692 +0xF8F4 0xE693 +0xF8F5 0xE694 +0xF8F6 0xE695 +0xF8F7 0xE696 +0xF8F8 0xE697 +0xF8F9 0xE698 +0xF8FA 0xE699 +0xF8FB 0xE69A +0xF8FC 0xE69B +0xF940 0xE69C +0xF941 0xE69D +0xF942 0xE69E +0xF943 0xE69F +0xF944 0xE6A0 +0xF945 0xE6A1 +0xF946 0xE6A2 +0xF947 0xE6A3 +0xF948 0xE6A4 +0xF949 0xE6A5 +0xF94A 0xE6A6 +0xF94B 0xE6A7 +0xF94C 0xE6A8 +0xF94D 0xE6A9 +0xF94E 0xE6AA +0xF94F 0xE6AB +0xF950 0xE6AC +0xF951 0xE6AD +0xF952 0xE6AE +0xF953 0xE6AF +0xF954 0xE6B0 +0xF955 0xE6B1 +0xF956 0xE6B2 +0xF957 0xE6B3 +0xF958 0xE6B4 +0xF959 0xE6B5 +0xF95A 0xE6B6 +0xF95B 0xE6B7 +0xF95C 0xE6B8 +0xF95D 0xE6B9 +0xF95E 0xE6BA +0xF95F 0xE6BB +0xF960 0xE6BC +0xF961 0xE6BD +0xF962 0xE6BE +0xF963 0xE6BF +0xF964 0xE6C0 +0xF965 0xE6C1 +0xF966 0xE6C2 +0xF967 0xE6C3 +0xF968 0xE6C4 +0xF969 0xE6C5 +0xF96A 0xE6C6 +0xF96B 0xE6C7 +0xF96C 0xE6C8 +0xF96D 0xE6C9 +0xF96E 0xE6CA +0xF96F 0xE6CB +0xF970 0xE6CC +0xF971 0xE6CD +0xF972 0xE6CE +0xF973 0xE6CF +0xF974 0xE6D0 +0xF975 0xE6D1 +0xF976 0xE6D2 +0xF977 0xE6D3 +0xF978 0xE6D4 +0xF979 0xE6D5 +0xF97A 0xE6D6 +0xF97B 0xE6D7 +0xF97C 0xE6D8 +0xF97D 0xE6D9 +0xF97E 0xE6DA +0xF980 0xE6DB +0xF981 0xE6DC +0xF982 0xE6DD +0xF983 0xE6DE +0xF984 0xE6DF +0xF985 0xE6E0 +0xF986 0xE6E1 +0xF987 0xE6E2 +0xF988 0xE6E3 +0xF989 0xE6E4 +0xF98A 0xE6E5 +0xF98B 0xE6E6 +0xF98C 0xE6E7 +0xF98D 0xE6E8 +0xF98E 0xE6E9 +0xF98F 0xE6EA +0xF990 0xE6EB +0xF991 0xE6EC +0xF992 0xE6ED +0xF993 0xE6EE +0xF994 0xE6EF +0xF995 0xE6F0 +0xF996 0xE6F1 +0xF997 0xE6F2 +0xF998 0xE6F3 +0xF999 0xE6F4 +0xF99A 0xE6F5 +0xF99B 0xE6F6 +0xF99C 0xE6F7 +0xF99D 0xE6F8 +0xF99E 0xE6F9 +0xF99F 0xE6FA +0xF9A0 0xE6FB +0xF9A1 0xE6FC +0xF9A2 0xE6FD +0xF9A3 0xE6FE +0xF9A4 0xE6FF +0xF9A5 0xE700 +0xF9A6 0xE701 +0xF9A7 0xE702 +0xF9A8 0xE703 +0xF9A9 0xE704 +0xF9AA 0xE705 +0xF9AB 0xE706 +0xF9AC 0xE707 +0xF9AD 0xE708 +0xF9AE 0xE709 +0xF9AF 0xE70A +0xF9B0 0xE70B +0xF9B1 0xE70C +0xF9B2 0xE70D +0xF9B3 0xE70E +0xF9B4 0xE70F +0xF9B5 0xE710 +0xF9B6 0xE711 +0xF9B7 0xE712 +0xF9B8 0xE713 +0xF9B9 0xE714 +0xF9BA 0xE715 +0xF9BB 0xE716 +0xF9BC 0xE717 +0xF9BD 0xE718 +0xF9BE 0xE719 +0xF9BF 0xE71A +0xF9C0 0xE71B +0xF9C1 0xE71C +0xF9C2 0xE71D +0xF9C3 0xE71E +0xF9C4 0xE71F +0xF9C5 0xE720 +0xF9C6 0xE721 +0xF9C7 0xE722 +0xF9C8 0xE723 +0xF9C9 0xE724 +0xF9CA 0xE725 +0xF9CB 0xE726 +0xF9CC 0xE727 +0xF9CD 0xE728 +0xF9CE 0xE729 +0xF9CF 0xE72A +0xF9D0 0xE72B +0xF9D1 0xE72C +0xF9D2 0xE72D +0xF9D3 0xE72E +0xF9D4 0xE72F +0xF9D5 0xE730 +0xF9D6 0xE731 +0xF9D7 0xE732 +0xF9D8 0xE733 +0xF9D9 0xE734 +0xF9DA 0xE735 +0xF9DB 0xE736 +0xF9DC 0xE737 +0xF9DD 0xE738 +0xF9DE 0xE739 +0xF9DF 0xE73A +0xF9E0 0xE73B +0xF9E1 0xE73C +0xF9E2 0xE73D +0xF9E3 0xE73E +0xF9E4 0xE73F +0xF9E5 0xE740 +0xF9E6 0xE741 +0xF9E7 0xE742 +0xF9E8 0xE743 +0xF9E9 0xE744 +0xF9EA 0xE745 +0xF9EB 0xE746 +0xF9EC 0xE747 +0xF9ED 0xE748 +0xF9EE 0xE749 +0xF9EF 0xE74A +0xF9F0 0xE74B +0xF9F1 0xE74C +0xF9F2 0xE74D +0xF9F3 0xE74E +0xF9F4 0xE74F +0xF9F5 0xE750 +0xF9F6 0xE751 +0xF9F7 0xE752 +0xF9F8 0xE753 +0xF9F9 0xE754 +0xF9FA 0xE755 +0xF9FB 0xE756 +0xF9FC 0xE757 diff --git a/3rdPartner/libiconv/tests/SHIFT_JISX0213.TXT b/3rdPartner/libiconv/tests/SHIFT_JISX0213.TXT new file mode 100644 index 0000000..18a2238 --- /dev/null +++ b/3rdPartner/libiconv/tests/SHIFT_JISX0213.TXT @@ -0,0 +1,11424 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x00A5 +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x203E +0x7F 0x007F +0x8140 0x3000 +0x8141 0x3001 +0x8142 0x3002 +0x8143 0xFF0C +0x8144 0xFF0E +0x8145 0x30FB +0x8146 0xFF1A +0x8147 0xFF1B +0x8148 0xFF1F +0x8149 0xFF01 +0x814A 0x309B +0x814B 0x309C +0x814C 0x00B4 +0x814D 0xFF40 +0x814E 0x00A8 +0x814F 0xFF3E +0x8150 0xFFE3 +0x8151 0xFF3F +0x8152 0x30FD +0x8153 0x30FE +0x8154 0x309D +0x8155 0x309E +0x8156 0x3003 +0x8157 0x4EDD +0x8158 0x3005 +0x8159 0x3006 +0x815A 0x3007 +0x815B 0x30FC +0x815C 0x2014 +0x815D 0x2010 +0x815E 0xFF0F +0x815F 0xFF3C +0x8160 0x301C +0x8161 0x2016 +0x8162 0xFF5C +0x8163 0x2026 +0x8164 0x2025 +0x8165 0x2018 +0x8166 0x2019 +0x8167 0x201C +0x8168 0x201D +0x8169 0xFF08 +0x816A 0xFF09 +0x816B 0x3014 +0x816C 0x3015 +0x816D 0xFF3B +0x816E 0xFF3D +0x816F 0xFF5B +0x8170 0xFF5D +0x8171 0x3008 +0x8172 0x3009 +0x8173 0x300A +0x8174 0x300B +0x8175 0x300C +0x8176 0x300D +0x8177 0x300E +0x8178 0x300F +0x8179 0x3010 +0x817A 0x3011 +0x817B 0xFF0B +0x817C 0x2212 +0x817D 0x00B1 +0x817E 0x00D7 +0x8180 0x00F7 +0x8181 0xFF1D +0x8182 0x2260 +0x8183 0xFF1C +0x8184 0xFF1E +0x8185 0x2266 +0x8186 0x2267 +0x8187 0x221E +0x8188 0x2234 +0x8189 0x2642 +0x818A 0x2640 +0x818B 0x00B0 +0x818C 0x2032 +0x818D 0x2033 +0x818E 0x2103 +0x818F 0xFFE5 +0x8190 0xFF04 +0x8191 0x00A2 +0x8192 0x00A3 +0x8193 0xFF05 +0x8194 0xFF03 +0x8195 0xFF06 +0x8196 0xFF0A +0x8197 0xFF20 +0x8198 0x00A7 +0x8199 0x2606 +0x819A 0x2605 +0x819B 0x25CB +0x819C 0x25CF +0x819D 0x25CE +0x819E 0x25C7 +0x819F 0x25C6 +0x81A0 0x25A1 +0x81A1 0x25A0 +0x81A2 0x25B3 +0x81A3 0x25B2 +0x81A4 0x25BD +0x81A5 0x25BC +0x81A6 0x203B +0x81A7 0x3012 +0x81A8 0x2192 +0x81A9 0x2190 +0x81AA 0x2191 +0x81AB 0x2193 +0x81AC 0x3013 +0x81AD 0xFF07 +0x81AE 0xFF02 +0x81AF 0xFF0D +0x81B0 0xFF5E +0x81B1 0x3033 +0x81B2 0x3034 +0x81B3 0x3035 +0x81B4 0x303B +0x81B5 0x303C +0x81B6 0x30FF +0x81B7 0x309F +0x81B8 0x2208 +0x81B9 0x220B +0x81BA 0x2286 +0x81BB 0x2287 +0x81BC 0x2282 +0x81BD 0x2283 +0x81BE 0x222A +0x81BF 0x2229 +0x81C0 0x2284 +0x81C1 0x2285 +0x81C2 0x228A +0x81C3 0x228B +0x81C4 0x2209 +0x81C5 0x2205 +0x81C6 0x2305 +0x81C7 0x2306 +0x81C8 0x2227 +0x81C9 0x2228 +0x81CA 0x00AC +0x81CB 0x21D2 +0x81CC 0x21D4 +0x81CD 0x2200 +0x81CE 0x2203 +0x81CF 0x2295 +0x81D0 0x2296 +0x81D1 0x2297 +0x81D2 0x2225 +0x81D3 0x2226 +0x81D4 0xFF5F +0x81D5 0xFF60 +0x81D6 0x3018 +0x81D7 0x3019 +0x81D8 0x3016 +0x81D9 0x3017 +0x81DA 0x2220 +0x81DB 0x22A5 +0x81DC 0x2312 +0x81DD 0x2202 +0x81DE 0x2207 +0x81DF 0x2261 +0x81E0 0x2252 +0x81E1 0x226A +0x81E2 0x226B +0x81E3 0x221A +0x81E4 0x223D +0x81E5 0x221D +0x81E6 0x2235 +0x81E7 0x222B +0x81E8 0x222C +0x81E9 0x2262 +0x81EA 0x2243 +0x81EB 0x2245 +0x81EC 0x2248 +0x81ED 0x2276 +0x81EE 0x2277 +0x81EF 0x2194 +0x81F0 0x212B +0x81F1 0x2030 +0x81F2 0x266F +0x81F3 0x266D +0x81F4 0x266A +0x81F5 0x2020 +0x81F6 0x2021 +0x81F7 0x00B6 +0x81F8 0x266E +0x81F9 0x266B +0x81FA 0x266C +0x81FB 0x2669 +0x81FC 0x25EF +0x8240 0x25B7 +0x8241 0x25B6 +0x8242 0x25C1 +0x8243 0x25C0 +0x8244 0x2197 +0x8245 0x2198 +0x8246 0x2196 +0x8247 0x2199 +0x8248 0x21C4 +0x8249 0x21E8 +0x824A 0x21E6 +0x824B 0x21E7 +0x824C 0x21E9 +0x824D 0x2934 +0x824E 0x2935 +0x824F 0xFF10 +0x8250 0xFF11 +0x8251 0xFF12 +0x8252 0xFF13 +0x8253 0xFF14 +0x8254 0xFF15 +0x8255 0xFF16 +0x8256 0xFF17 +0x8257 0xFF18 +0x8258 0xFF19 +0x8259 0x29BF +0x825A 0x25C9 +0x825B 0x303D +0x825C 0xFE46 +0x825D 0xFE45 +0x825E 0x25E6 +0x825F 0x2022 +0x8260 0xFF21 +0x8261 0xFF22 +0x8262 0xFF23 +0x8263 0xFF24 +0x8264 0xFF25 +0x8265 0xFF26 +0x8266 0xFF27 +0x8267 0xFF28 +0x8268 0xFF29 +0x8269 0xFF2A +0x826A 0xFF2B +0x826B 0xFF2C +0x826C 0xFF2D +0x826D 0xFF2E +0x826E 0xFF2F +0x826F 0xFF30 +0x8270 0xFF31 +0x8271 0xFF32 +0x8272 0xFF33 +0x8273 0xFF34 +0x8274 0xFF35 +0x8275 0xFF36 +0x8276 0xFF37 +0x8277 0xFF38 +0x8278 0xFF39 +0x8279 0xFF3A +0x827A 0x2213 +0x827B 0x2135 +0x827C 0x210F +0x827D 0x33CB +0x827E 0x2113 +0x8280 0x2127 +0x8281 0xFF41 +0x8282 0xFF42 +0x8283 0xFF43 +0x8284 0xFF44 +0x8285 0xFF45 +0x8286 0xFF46 +0x8287 0xFF47 +0x8288 0xFF48 +0x8289 0xFF49 +0x828A 0xFF4A +0x828B 0xFF4B +0x828C 0xFF4C +0x828D 0xFF4D +0x828E 0xFF4E +0x828F 0xFF4F +0x8290 0xFF50 +0x8291 0xFF51 +0x8292 0xFF52 +0x8293 0xFF53 +0x8294 0xFF54 +0x8295 0xFF55 +0x8296 0xFF56 +0x8297 0xFF57 +0x8298 0xFF58 +0x8299 0xFF59 +0x829A 0xFF5A +0x829B 0x30A0 +0x829C 0x2013 +0x829D 0x29FA +0x829E 0x29FB +0x829F 0x3041 +0x82A0 0x3042 +0x82A1 0x3043 +0x82A2 0x3044 +0x82A3 0x3045 +0x82A4 0x3046 +0x82A5 0x3047 +0x82A6 0x3048 +0x82A7 0x3049 +0x82A8 0x304A +0x82A9 0x304B +0x82AA 0x304C +0x82AB 0x304D +0x82AC 0x304E +0x82AD 0x304F +0x82AE 0x3050 +0x82AF 0x3051 +0x82B0 0x3052 +0x82B1 0x3053 +0x82B2 0x3054 +0x82B3 0x3055 +0x82B4 0x3056 +0x82B5 0x3057 +0x82B6 0x3058 +0x82B7 0x3059 +0x82B8 0x305A +0x82B9 0x305B +0x82BA 0x305C +0x82BB 0x305D +0x82BC 0x305E +0x82BD 0x305F +0x82BE 0x3060 +0x82BF 0x3061 +0x82C0 0x3062 +0x82C1 0x3063 +0x82C2 0x3064 +0x82C3 0x3065 +0x82C4 0x3066 +0x82C5 0x3067 +0x82C6 0x3068 +0x82C7 0x3069 +0x82C8 0x306A +0x82C9 0x306B +0x82CA 0x306C +0x82CB 0x306D +0x82CC 0x306E +0x82CD 0x306F +0x82CE 0x3070 +0x82CF 0x3071 +0x82D0 0x3072 +0x82D1 0x3073 +0x82D2 0x3074 +0x82D3 0x3075 +0x82D4 0x3076 +0x82D5 0x3077 +0x82D6 0x3078 +0x82D7 0x3079 +0x82D8 0x307A +0x82D9 0x307B +0x82DA 0x307C +0x82DB 0x307D +0x82DC 0x307E +0x82DD 0x307F +0x82DE 0x3080 +0x82DF 0x3081 +0x82E0 0x3082 +0x82E1 0x3083 +0x82E2 0x3084 +0x82E3 0x3085 +0x82E4 0x3086 +0x82E5 0x3087 +0x82E6 0x3088 +0x82E7 0x3089 +0x82E8 0x308A +0x82E9 0x308B +0x82EA 0x308C +0x82EB 0x308D +0x82EC 0x308E +0x82ED 0x308F +0x82EE 0x3090 +0x82EF 0x3091 +0x82F0 0x3092 +0x82F1 0x3093 +0x82F2 0x3094 +0x82F3 0x3095 +0x82F4 0x3096 +0x82F5 0x304B 0x309A +0x82F6 0x304D 0x309A +0x82F7 0x304F 0x309A +0x82F8 0x3051 0x309A +0x82F9 0x3053 0x309A +0x8340 0x30A1 +0x8341 0x30A2 +0x8342 0x30A3 +0x8343 0x30A4 +0x8344 0x30A5 +0x8345 0x30A6 +0x8346 0x30A7 +0x8347 0x30A8 +0x8348 0x30A9 +0x8349 0x30AA +0x834A 0x30AB +0x834B 0x30AC +0x834C 0x30AD +0x834D 0x30AE +0x834E 0x30AF +0x834F 0x30B0 +0x8350 0x30B1 +0x8351 0x30B2 +0x8352 0x30B3 +0x8353 0x30B4 +0x8354 0x30B5 +0x8355 0x30B6 +0x8356 0x30B7 +0x8357 0x30B8 +0x8358 0x30B9 +0x8359 0x30BA +0x835A 0x30BB +0x835B 0x30BC +0x835C 0x30BD +0x835D 0x30BE +0x835E 0x30BF +0x835F 0x30C0 +0x8360 0x30C1 +0x8361 0x30C2 +0x8362 0x30C3 +0x8363 0x30C4 +0x8364 0x30C5 +0x8365 0x30C6 +0x8366 0x30C7 +0x8367 0x30C8 +0x8368 0x30C9 +0x8369 0x30CA +0x836A 0x30CB +0x836B 0x30CC +0x836C 0x30CD +0x836D 0x30CE +0x836E 0x30CF +0x836F 0x30D0 +0x8370 0x30D1 +0x8371 0x30D2 +0x8372 0x30D3 +0x8373 0x30D4 +0x8374 0x30D5 +0x8375 0x30D6 +0x8376 0x30D7 +0x8377 0x30D8 +0x8378 0x30D9 +0x8379 0x30DA +0x837A 0x30DB +0x837B 0x30DC +0x837C 0x30DD +0x837D 0x30DE +0x837E 0x30DF +0x8380 0x30E0 +0x8381 0x30E1 +0x8382 0x30E2 +0x8383 0x30E3 +0x8384 0x30E4 +0x8385 0x30E5 +0x8386 0x30E6 +0x8387 0x30E7 +0x8388 0x30E8 +0x8389 0x30E9 +0x838A 0x30EA +0x838B 0x30EB +0x838C 0x30EC +0x838D 0x30ED +0x838E 0x30EE +0x838F 0x30EF +0x8390 0x30F0 +0x8391 0x30F1 +0x8392 0x30F2 +0x8393 0x30F3 +0x8394 0x30F4 +0x8395 0x30F5 +0x8396 0x30F6 +0x8397 0x30AB 0x309A +0x8398 0x30AD 0x309A +0x8399 0x30AF 0x309A +0x839A 0x30B1 0x309A +0x839B 0x30B3 0x309A +0x839C 0x30BB 0x309A +0x839D 0x30C4 0x309A +0x839E 0x30C8 0x309A +0x839F 0x0391 +0x83A0 0x0392 +0x83A1 0x0393 +0x83A2 0x0394 +0x83A3 0x0395 +0x83A4 0x0396 +0x83A5 0x0397 +0x83A6 0x0398 +0x83A7 0x0399 +0x83A8 0x039A +0x83A9 0x039B +0x83AA 0x039C +0x83AB 0x039D +0x83AC 0x039E +0x83AD 0x039F +0x83AE 0x03A0 +0x83AF 0x03A1 +0x83B0 0x03A3 +0x83B1 0x03A4 +0x83B2 0x03A5 +0x83B3 0x03A6 +0x83B4 0x03A7 +0x83B5 0x03A8 +0x83B6 0x03A9 +0x83B7 0x2664 +0x83B8 0x2660 +0x83B9 0x2662 +0x83BA 0x2666 +0x83BB 0x2661 +0x83BC 0x2665 +0x83BD 0x2667 +0x83BE 0x2663 +0x83BF 0x03B1 +0x83C0 0x03B2 +0x83C1 0x03B3 +0x83C2 0x03B4 +0x83C3 0x03B5 +0x83C4 0x03B6 +0x83C5 0x03B7 +0x83C6 0x03B8 +0x83C7 0x03B9 +0x83C8 0x03BA +0x83C9 0x03BB +0x83CA 0x03BC +0x83CB 0x03BD +0x83CC 0x03BE +0x83CD 0x03BF +0x83CE 0x03C0 +0x83CF 0x03C1 +0x83D0 0x03C3 +0x83D1 0x03C4 +0x83D2 0x03C5 +0x83D3 0x03C6 +0x83D4 0x03C7 +0x83D5 0x03C8 +0x83D6 0x03C9 +0x83D7 0x03C2 +0x83D8 0x24F5 +0x83D9 0x24F6 +0x83DA 0x24F7 +0x83DB 0x24F8 +0x83DC 0x24F9 +0x83DD 0x24FA +0x83DE 0x24FB +0x83DF 0x24FC +0x83E0 0x24FD +0x83E1 0x24FE +0x83E2 0x2616 +0x83E3 0x2617 +0x83E4 0x3020 +0x83E5 0x260E +0x83E6 0x2600 +0x83E7 0x2601 +0x83E8 0x2602 +0x83E9 0x2603 +0x83EA 0x2668 +0x83EB 0x25B1 +0x83EC 0x31F0 +0x83ED 0x31F1 +0x83EE 0x31F2 +0x83EF 0x31F3 +0x83F0 0x31F4 +0x83F1 0x31F5 +0x83F2 0x31F6 +0x83F3 0x31F7 +0x83F4 0x31F8 +0x83F5 0x31F9 +0x83F6 0x31F7 0x309A +0x83F7 0x31FA +0x83F8 0x31FB +0x83F9 0x31FC +0x83FA 0x31FD +0x83FB 0x31FE +0x83FC 0x31FF +0x8440 0x0410 +0x8441 0x0411 +0x8442 0x0412 +0x8443 0x0413 +0x8444 0x0414 +0x8445 0x0415 +0x8446 0x0401 +0x8447 0x0416 +0x8448 0x0417 +0x8449 0x0418 +0x844A 0x0419 +0x844B 0x041A +0x844C 0x041B +0x844D 0x041C +0x844E 0x041D +0x844F 0x041E +0x8450 0x041F +0x8451 0x0420 +0x8452 0x0421 +0x8453 0x0422 +0x8454 0x0423 +0x8455 0x0424 +0x8456 0x0425 +0x8457 0x0426 +0x8458 0x0427 +0x8459 0x0428 +0x845A 0x0429 +0x845B 0x042A +0x845C 0x042B +0x845D 0x042C +0x845E 0x042D +0x845F 0x042E +0x8460 0x042F +0x8461 0x23BE +0x8462 0x23BF +0x8463 0x23C0 +0x8464 0x23C1 +0x8465 0x23C2 +0x8466 0x23C3 +0x8467 0x23C4 +0x8468 0x23C5 +0x8469 0x23C6 +0x846A 0x23C7 +0x846B 0x23C8 +0x846C 0x23C9 +0x846D 0x23CA +0x846E 0x23CB +0x846F 0x23CC +0x8470 0x0430 +0x8471 0x0431 +0x8472 0x0432 +0x8473 0x0433 +0x8474 0x0434 +0x8475 0x0435 +0x8476 0x0451 +0x8477 0x0436 +0x8478 0x0437 +0x8479 0x0438 +0x847A 0x0439 +0x847B 0x043A +0x847C 0x043B +0x847D 0x043C +0x847E 0x043D +0x8480 0x043E +0x8481 0x043F +0x8482 0x0440 +0x8483 0x0441 +0x8484 0x0442 +0x8485 0x0443 +0x8486 0x0444 +0x8487 0x0445 +0x8488 0x0446 +0x8489 0x0447 +0x848A 0x0448 +0x848B 0x0449 +0x848C 0x044A +0x848D 0x044B +0x848E 0x044C +0x848F 0x044D +0x8490 0x044E +0x8491 0x044F +0x8492 0x30F7 +0x8493 0x30F8 +0x8494 0x30F9 +0x8495 0x30FA +0x8496 0x22DA +0x8497 0x22DB +0x8498 0x2153 +0x8499 0x2154 +0x849A 0x2155 +0x849B 0x2713 +0x849C 0x2318 +0x849D 0x2423 +0x849E 0x23CE +0x849F 0x2500 +0x84A0 0x2502 +0x84A1 0x250C +0x84A2 0x2510 +0x84A3 0x2518 +0x84A4 0x2514 +0x84A5 0x251C +0x84A6 0x252C +0x84A7 0x2524 +0x84A8 0x2534 +0x84A9 0x253C +0x84AA 0x2501 +0x84AB 0x2503 +0x84AC 0x250F +0x84AD 0x2513 +0x84AE 0x251B +0x84AF 0x2517 +0x84B0 0x2523 +0x84B1 0x2533 +0x84B2 0x252B +0x84B3 0x253B +0x84B4 0x254B +0x84B5 0x2520 +0x84B6 0x252F +0x84B7 0x2528 +0x84B8 0x2537 +0x84B9 0x253F +0x84BA 0x251D +0x84BB 0x2530 +0x84BC 0x2525 +0x84BD 0x2538 +0x84BE 0x2542 +0x84BF 0x3251 +0x84C0 0x3252 +0x84C1 0x3253 +0x84C2 0x3254 +0x84C3 0x3255 +0x84C4 0x3256 +0x84C5 0x3257 +0x84C6 0x3258 +0x84C7 0x3259 +0x84C8 0x325A +0x84C9 0x325B +0x84CA 0x325C +0x84CB 0x325D +0x84CC 0x325E +0x84CD 0x325F +0x84CE 0x32B1 +0x84CF 0x32B2 +0x84D0 0x32B3 +0x84D1 0x32B4 +0x84D2 0x32B5 +0x84D3 0x32B6 +0x84D4 0x32B7 +0x84D5 0x32B8 +0x84D6 0x32B9 +0x84D7 0x32BA +0x84D8 0x32BB +0x84D9 0x32BC +0x84DA 0x32BD +0x84DB 0x32BE +0x84DC 0x32BF +0x84E5 0x25D0 +0x84E6 0x25D1 +0x84E7 0x25D2 +0x84E8 0x25D3 +0x84E9 0x203C +0x84EA 0x2047 +0x84EB 0x2048 +0x84EC 0x2049 +0x84ED 0x01CD +0x84EE 0x01CE +0x84EF 0x01D0 +0x84F0 0x1E3E +0x84F1 0x1E3F +0x84F2 0x01F8 +0x84F3 0x01F9 +0x84F4 0x01D1 +0x84F5 0x01D2 +0x84F6 0x01D4 +0x84F7 0x01D6 +0x84F8 0x01D8 +0x84F9 0x01DA +0x84FA 0x01DC +0x8540 0x20AC +0x8541 0x00A0 +0x8542 0x00A1 +0x8543 0x00A4 +0x8544 0x00A6 +0x8545 0x00A9 +0x8546 0x00AA +0x8547 0x00AB +0x8548 0x00AD +0x8549 0x00AE +0x854A 0x00AF +0x854B 0x00B2 +0x854C 0x00B3 +0x854D 0x00B7 +0x854E 0x00B8 +0x854F 0x00B9 +0x8550 0x00BA +0x8551 0x00BB +0x8552 0x00BC +0x8553 0x00BD +0x8554 0x00BE +0x8555 0x00BF +0x8556 0x00C0 +0x8557 0x00C1 +0x8558 0x00C2 +0x8559 0x00C3 +0x855A 0x00C4 +0x855B 0x00C5 +0x855C 0x00C6 +0x855D 0x00C7 +0x855E 0x00C8 +0x855F 0x00C9 +0x8560 0x00CA +0x8561 0x00CB +0x8562 0x00CC +0x8563 0x00CD +0x8564 0x00CE +0x8565 0x00CF +0x8566 0x00D0 +0x8567 0x00D1 +0x8568 0x00D2 +0x8569 0x00D3 +0x856A 0x00D4 +0x856B 0x00D5 +0x856C 0x00D6 +0x856D 0x00D8 +0x856E 0x00D9 +0x856F 0x00DA +0x8570 0x00DB +0x8571 0x00DC +0x8572 0x00DD +0x8573 0x00DE +0x8574 0x00DF +0x8575 0x00E0 +0x8576 0x00E1 +0x8577 0x00E2 +0x8578 0x00E3 +0x8579 0x00E4 +0x857A 0x00E5 +0x857B 0x00E6 +0x857C 0x00E7 +0x857D 0x00E8 +0x857E 0x00E9 +0x8580 0x00EA +0x8581 0x00EB +0x8582 0x00EC +0x8583 0x00ED +0x8584 0x00EE +0x8585 0x00EF +0x8586 0x00F0 +0x8587 0x00F1 +0x8588 0x00F2 +0x8589 0x00F3 +0x858A 0x00F4 +0x858B 0x00F5 +0x858C 0x00F6 +0x858D 0x00F8 +0x858E 0x00F9 +0x858F 0x00FA +0x8590 0x00FB +0x8591 0x00FC +0x8592 0x00FD +0x8593 0x00FE +0x8594 0x00FF +0x8595 0x0100 +0x8596 0x012A +0x8597 0x016A +0x8598 0x0112 +0x8599 0x014C +0x859A 0x0101 +0x859B 0x012B +0x859C 0x016B +0x859D 0x0113 +0x859E 0x014D +0x859F 0x0104 +0x85A0 0x02D8 +0x85A1 0x0141 +0x85A2 0x013D +0x85A3 0x015A +0x85A4 0x0160 +0x85A5 0x015E +0x85A6 0x0164 +0x85A7 0x0179 +0x85A8 0x017D +0x85A9 0x017B +0x85AA 0x0105 +0x85AB 0x02DB +0x85AC 0x0142 +0x85AD 0x013E +0x85AE 0x015B +0x85AF 0x02C7 +0x85B0 0x0161 +0x85B1 0x015F +0x85B2 0x0165 +0x85B3 0x017A +0x85B4 0x02DD +0x85B5 0x017E +0x85B6 0x017C +0x85B7 0x0154 +0x85B8 0x0102 +0x85B9 0x0139 +0x85BA 0x0106 +0x85BB 0x010C +0x85BC 0x0118 +0x85BD 0x011A +0x85BE 0x010E +0x85BF 0x0143 +0x85C0 0x0147 +0x85C1 0x0150 +0x85C2 0x0158 +0x85C3 0x016E +0x85C4 0x0170 +0x85C5 0x0162 +0x85C6 0x0155 +0x85C7 0x0103 +0x85C8 0x013A +0x85C9 0x0107 +0x85CA 0x010D +0x85CB 0x0119 +0x85CC 0x011B +0x85CD 0x010F +0x85CE 0x0111 +0x85CF 0x0144 +0x85D0 0x0148 +0x85D1 0x0151 +0x85D2 0x0159 +0x85D3 0x016F +0x85D4 0x0171 +0x85D5 0x0163 +0x85D6 0x02D9 +0x85D7 0x0108 +0x85D8 0x011C +0x85D9 0x0124 +0x85DA 0x0134 +0x85DB 0x015C +0x85DC 0x016C +0x85DD 0x0109 +0x85DE 0x011D +0x85DF 0x0125 +0x85E0 0x0135 +0x85E1 0x015D +0x85E2 0x016D +0x85E3 0x0271 +0x85E4 0x028B +0x85E5 0x027E +0x85E6 0x0283 +0x85E7 0x0292 +0x85E8 0x026C +0x85E9 0x026E +0x85EA 0x0279 +0x85EB 0x0288 +0x85EC 0x0256 +0x85ED 0x0273 +0x85EE 0x027D +0x85EF 0x0282 +0x85F0 0x0290 +0x85F1 0x027B +0x85F2 0x026D +0x85F3 0x025F +0x85F4 0x0272 +0x85F5 0x029D +0x85F6 0x028E +0x85F7 0x0261 +0x85F8 0x014B +0x85F9 0x0270 +0x85FA 0x0281 +0x85FB 0x0127 +0x85FC 0x0295 +0x8640 0x0294 +0x8641 0x0266 +0x8642 0x0298 +0x8643 0x01C2 +0x8644 0x0253 +0x8645 0x0257 +0x8646 0x0284 +0x8647 0x0260 +0x8648 0x0193 +0x8649 0x0153 +0x864A 0x0152 +0x864B 0x0268 +0x864C 0x0289 +0x864D 0x0258 +0x864E 0x0275 +0x864F 0x0259 +0x8650 0x025C +0x8651 0x025E +0x8652 0x0250 +0x8653 0x026F +0x8654 0x028A +0x8655 0x0264 +0x8656 0x028C +0x8657 0x0254 +0x8658 0x0251 +0x8659 0x0252 +0x865A 0x028D +0x865B 0x0265 +0x865C 0x02A2 +0x865D 0x02A1 +0x865E 0x0255 +0x865F 0x0291 +0x8660 0x027A +0x8661 0x0267 +0x8662 0x025A +0x8663 0x00E6 0x0300 +0x8664 0x01FD +0x8665 0x1F70 +0x8666 0x1F71 +0x8667 0x0254 0x0300 +0x8668 0x0254 0x0301 +0x8669 0x028C 0x0300 +0x866A 0x028C 0x0301 +0x866B 0x0259 0x0300 +0x866C 0x0259 0x0301 +0x866D 0x025A 0x0300 +0x866E 0x025A 0x0301 +0x866F 0x1F72 +0x8670 0x1F73 +0x8671 0x0361 +0x8672 0x02C8 +0x8673 0x02CC +0x8674 0x02D0 +0x8675 0x02D1 +0x8676 0x0306 +0x8677 0x203F +0x8678 0x030B +0x8679 0x0301 +0x867A 0x0304 +0x867B 0x0300 +0x867C 0x030F +0x867D 0x030C +0x867E 0x0302 +0x8680 0x02E5 +0x8681 0x02E6 +0x8682 0x02E7 +0x8683 0x02E8 +0x8684 0x02E9 +0x8685 0x02E9 0x02E5 +0x8686 0x02E5 0x02E9 +0x8687 0x0325 +0x8688 0x032C +0x8689 0x0339 +0x868A 0x031C +0x868B 0x031F +0x868C 0x0320 +0x868D 0x0308 +0x868E 0x033D +0x868F 0x0329 +0x8690 0x032F +0x8691 0x02DE +0x8692 0x0324 +0x8693 0x0330 +0x8694 0x033C +0x8695 0x0334 +0x8696 0x031D +0x8697 0x031E +0x8698 0x0318 +0x8699 0x0319 +0x869A 0x032A +0x869B 0x033A +0x869C 0x033B +0x869D 0x0303 +0x869E 0x031A +0x869F 0x2776 +0x86A0 0x2777 +0x86A1 0x2778 +0x86A2 0x2779 +0x86A3 0x277A +0x86A4 0x277B +0x86A5 0x277C +0x86A6 0x277D +0x86A7 0x277E +0x86A8 0x277F +0x86A9 0x24EB +0x86AA 0x24EC +0x86AB 0x24ED +0x86AC 0x24EE +0x86AD 0x24EF +0x86AE 0x24F0 +0x86AF 0x24F1 +0x86B0 0x24F2 +0x86B1 0x24F3 +0x86B2 0x24F4 +0x86B3 0x2170 +0x86B4 0x2171 +0x86B5 0x2172 +0x86B6 0x2173 +0x86B7 0x2174 +0x86B8 0x2175 +0x86B9 0x2176 +0x86BA 0x2177 +0x86BB 0x2178 +0x86BC 0x2179 +0x86BD 0x217A +0x86BE 0x217B +0x86BF 0x24D0 +0x86C0 0x24D1 +0x86C1 0x24D2 +0x86C2 0x24D3 +0x86C3 0x24D4 +0x86C4 0x24D5 +0x86C5 0x24D6 +0x86C6 0x24D7 +0x86C7 0x24D8 +0x86C8 0x24D9 +0x86C9 0x24DA +0x86CA 0x24DB +0x86CB 0x24DC +0x86CC 0x24DD +0x86CD 0x24DE +0x86CE 0x24DF +0x86CF 0x24E0 +0x86D0 0x24E1 +0x86D1 0x24E2 +0x86D2 0x24E3 +0x86D3 0x24E4 +0x86D4 0x24E5 +0x86D5 0x24E6 +0x86D6 0x24E7 +0x86D7 0x24E8 +0x86D8 0x24E9 +0x86D9 0x32D0 +0x86DA 0x32D1 +0x86DB 0x32D2 +0x86DC 0x32D3 +0x86DD 0x32D4 +0x86DE 0x32D5 +0x86DF 0x32D6 +0x86E0 0x32D7 +0x86E1 0x32D8 +0x86E2 0x32D9 +0x86E3 0x32DA +0x86E4 0x32DB +0x86E5 0x32DC +0x86E6 0x32DD +0x86E7 0x32DE +0x86E8 0x32DF +0x86E9 0x32E0 +0x86EA 0x32E1 +0x86EB 0x32E2 +0x86EC 0x32E3 +0x86ED 0x32FA +0x86EE 0x32E9 +0x86EF 0x32E5 +0x86F0 0x32ED +0x86F1 0x32EC +0x86FB 0x2051 +0x86FC 0x2042 +0x8740 0x2460 +0x8741 0x2461 +0x8742 0x2462 +0x8743 0x2463 +0x8744 0x2464 +0x8745 0x2465 +0x8746 0x2466 +0x8747 0x2467 +0x8748 0x2468 +0x8749 0x2469 +0x874A 0x246A +0x874B 0x246B +0x874C 0x246C +0x874D 0x246D +0x874E 0x246E +0x874F 0x246F +0x8750 0x2470 +0x8751 0x2471 +0x8752 0x2472 +0x8753 0x2473 +0x8754 0x2160 +0x8755 0x2161 +0x8756 0x2162 +0x8757 0x2163 +0x8758 0x2164 +0x8759 0x2165 +0x875A 0x2166 +0x875B 0x2167 +0x875C 0x2168 +0x875D 0x2169 +0x875E 0x216A +0x875F 0x3349 +0x8760 0x3314 +0x8761 0x3322 +0x8762 0x334D +0x8763 0x3318 +0x8764 0x3327 +0x8765 0x3303 +0x8766 0x3336 +0x8767 0x3351 +0x8768 0x3357 +0x8769 0x330D +0x876A 0x3326 +0x876B 0x3323 +0x876C 0x332B +0x876D 0x334A +0x876E 0x333B +0x876F 0x339C +0x8770 0x339D +0x8771 0x339E +0x8772 0x338E +0x8773 0x338F +0x8774 0x33C4 +0x8775 0x33A1 +0x8776 0x216B +0x877E 0x337B +0x8780 0x301D +0x8781 0x301F +0x8782 0x2116 +0x8783 0x33CD +0x8784 0x2121 +0x8785 0x32A4 +0x8786 0x32A5 +0x8787 0x32A6 +0x8788 0x32A7 +0x8789 0x32A8 +0x878A 0x3231 +0x878B 0x3232 +0x878C 0x3239 +0x878D 0x337E +0x878E 0x337D +0x878F 0x337C +0x8793 0x222E +0x8798 0x221F +0x8799 0x22BF +0x879D 0x2756 +0x879E 0x261E +0x879F 0x4FF1 +0x87A0 0x2000B +0x87A1 0x3402 +0x87A2 0x4E28 +0x87A3 0x4E2F +0x87A4 0x4E30 +0x87A5 0x4E8D +0x87A6 0x4EE1 +0x87A7 0x4EFD +0x87A8 0x4EFF +0x87A9 0x4F03 +0x87AA 0x4F0B +0x87AB 0x4F60 +0x87AC 0x4F48 +0x87AD 0x4F49 +0x87AE 0x4F56 +0x87AF 0x4F5F +0x87B0 0x4F6A +0x87B1 0x4F6C +0x87B2 0x4F7E +0x87B3 0x4F8A +0x87B4 0x4F94 +0x87B5 0x4F97 +0x87B6 0xFA30 +0x87B7 0x4FC9 +0x87B8 0x4FE0 +0x87B9 0x5001 +0x87BA 0x5002 +0x87BB 0x500E +0x87BC 0x5018 +0x87BD 0x5027 +0x87BE 0x502E +0x87BF 0x5040 +0x87C0 0x503B +0x87C1 0x5041 +0x87C2 0x5094 +0x87C3 0x50CC +0x87C4 0x50F2 +0x87C5 0x50D0 +0x87C6 0x50E6 +0x87C7 0xFA31 +0x87C8 0x5106 +0x87C9 0x5103 +0x87CA 0x510B +0x87CB 0x511E +0x87CC 0x5135 +0x87CD 0x514A +0x87CE 0xFA32 +0x87CF 0x5155 +0x87D0 0x5157 +0x87D1 0x34B5 +0x87D2 0x519D +0x87D3 0x51C3 +0x87D4 0x51CA +0x87D5 0x51DE +0x87D6 0x51E2 +0x87D7 0x51EE +0x87D8 0x5201 +0x87D9 0x34DB +0x87DA 0x5213 +0x87DB 0x5215 +0x87DC 0x5249 +0x87DD 0x5257 +0x87DE 0x5261 +0x87DF 0x5293 +0x87E0 0x52C8 +0x87E1 0xFA33 +0x87E2 0x52CC +0x87E3 0x52D0 +0x87E4 0x52D6 +0x87E5 0x52DB +0x87E6 0xFA34 +0x87E7 0x52F0 +0x87E8 0x52FB +0x87E9 0x5300 +0x87EA 0x5307 +0x87EB 0x531C +0x87EC 0xFA35 +0x87ED 0x5361 +0x87EE 0x5363 +0x87EF 0x537D +0x87F0 0x5393 +0x87F1 0x539D +0x87F2 0x53B2 +0x87F3 0x5412 +0x87F4 0x5427 +0x87F5 0x544D +0x87F6 0x549C +0x87F7 0x546B +0x87F8 0x5474 +0x87F9 0x547F +0x87FA 0x5488 +0x87FB 0x5496 +0x87FC 0x54A1 +0x8840 0x54A9 +0x8841 0x54C6 +0x8842 0x54FF +0x8843 0x550E +0x8844 0x552B +0x8845 0x5535 +0x8846 0x5550 +0x8847 0x555E +0x8848 0x5581 +0x8849 0x5586 +0x884A 0x558E +0x884B 0xFA36 +0x884C 0x55AD +0x884D 0x55CE +0x884E 0xFA37 +0x884F 0x5608 +0x8850 0x560E +0x8851 0x563B +0x8852 0x5649 +0x8853 0x5676 +0x8854 0x5666 +0x8855 0xFA38 +0x8856 0x566F +0x8857 0x5671 +0x8858 0x5672 +0x8859 0x5699 +0x885A 0x569E +0x885B 0x56A9 +0x885C 0x56AC +0x885D 0x56B3 +0x885E 0x56C9 +0x885F 0x56CA +0x8860 0x570A +0x8861 0x2123D +0x8862 0x5721 +0x8863 0x572F +0x8864 0x5733 +0x8865 0x5734 +0x8866 0x5770 +0x8867 0x5777 +0x8868 0x577C +0x8869 0x579C +0x886A 0xFA0F +0x886B 0x2131B +0x886C 0x57B8 +0x886D 0x57C7 +0x886E 0x57C8 +0x886F 0x57CF +0x8870 0x57E4 +0x8871 0x57ED +0x8872 0x57F5 +0x8873 0x57F6 +0x8874 0x57FF +0x8875 0x5809 +0x8876 0xFA10 +0x8877 0x5861 +0x8878 0x5864 +0x8879 0xFA39 +0x887A 0x587C +0x887B 0x5889 +0x887C 0x589E +0x887D 0xFA3A +0x887E 0x58A9 +0x8880 0x2146E +0x8881 0x58D2 +0x8882 0x58CE +0x8883 0x58D4 +0x8884 0x58DA +0x8885 0x58E0 +0x8886 0x58E9 +0x8887 0x590C +0x8888 0x8641 +0x8889 0x595D +0x888A 0x596D +0x888B 0x598B +0x888C 0x5992 +0x888D 0x59A4 +0x888E 0x59C3 +0x888F 0x59D2 +0x8890 0x59DD +0x8891 0x5A13 +0x8892 0x5A23 +0x8893 0x5A67 +0x8894 0x5A6D +0x8895 0x5A77 +0x8896 0x5A7E +0x8897 0x5A84 +0x8898 0x5A9E +0x8899 0x5AA7 +0x889A 0x5AC4 +0x889B 0x218BD +0x889C 0x5B19 +0x889D 0x5B25 +0x889E 0x525D +0x889F 0x4E9C +0x88A0 0x5516 +0x88A1 0x5A03 +0x88A2 0x963F +0x88A3 0x54C0 +0x88A4 0x611B +0x88A5 0x6328 +0x88A6 0x59F6 +0x88A7 0x9022 +0x88A8 0x8475 +0x88A9 0x831C +0x88AA 0x7A50 +0x88AB 0x60AA +0x88AC 0x63E1 +0x88AD 0x6E25 +0x88AE 0x65ED +0x88AF 0x8466 +0x88B0 0x82A6 +0x88B1 0x9BF5 +0x88B2 0x6893 +0x88B3 0x5727 +0x88B4 0x65A1 +0x88B5 0x6271 +0x88B6 0x5B9B +0x88B7 0x59D0 +0x88B8 0x867B +0x88B9 0x98F4 +0x88BA 0x7D62 +0x88BB 0x7DBE +0x88BC 0x9B8E +0x88BD 0x6216 +0x88BE 0x7C9F +0x88BF 0x88B7 +0x88C0 0x5B89 +0x88C1 0x5EB5 +0x88C2 0x6309 +0x88C3 0x6697 +0x88C4 0x6848 +0x88C5 0x95C7 +0x88C6 0x978D +0x88C7 0x674F +0x88C8 0x4EE5 +0x88C9 0x4F0A +0x88CA 0x4F4D +0x88CB 0x4F9D +0x88CC 0x5049 +0x88CD 0x56F2 +0x88CE 0x5937 +0x88CF 0x59D4 +0x88D0 0x5A01 +0x88D1 0x5C09 +0x88D2 0x60DF +0x88D3 0x610F +0x88D4 0x6170 +0x88D5 0x6613 +0x88D6 0x6905 +0x88D7 0x70BA +0x88D8 0x754F +0x88D9 0x7570 +0x88DA 0x79FB +0x88DB 0x7DAD +0x88DC 0x7DEF +0x88DD 0x80C3 +0x88DE 0x840E +0x88DF 0x8863 +0x88E0 0x8B02 +0x88E1 0x9055 +0x88E2 0x907A +0x88E3 0x533B +0x88E4 0x4E95 +0x88E5 0x4EA5 +0x88E6 0x57DF +0x88E7 0x80B2 +0x88E8 0x90C1 +0x88E9 0x78EF +0x88EA 0x4E00 +0x88EB 0x58F1 +0x88EC 0x6EA2 +0x88ED 0x9038 +0x88EE 0x7A32 +0x88EF 0x8328 +0x88F0 0x828B +0x88F1 0x9C2F +0x88F2 0x5141 +0x88F3 0x5370 +0x88F4 0x54BD +0x88F5 0x54E1 +0x88F6 0x56E0 +0x88F7 0x59FB +0x88F8 0x5F15 +0x88F9 0x98F2 +0x88FA 0x6DEB +0x88FB 0x80E4 +0x88FC 0x852D +0x8940 0x9662 +0x8941 0x9670 +0x8942 0x96A0 +0x8943 0x97FB +0x8944 0x540B +0x8945 0x53F3 +0x8946 0x5B87 +0x8947 0x70CF +0x8948 0x7FBD +0x8949 0x8FC2 +0x894A 0x96E8 +0x894B 0x536F +0x894C 0x9D5C +0x894D 0x7ABA +0x894E 0x4E11 +0x894F 0x7893 +0x8950 0x81FC +0x8951 0x6E26 +0x8952 0x5618 +0x8953 0x5504 +0x8954 0x6B1D +0x8955 0x851A +0x8956 0x9C3B +0x8957 0x59E5 +0x8958 0x53A9 +0x8959 0x6D66 +0x895A 0x74DC +0x895B 0x958F +0x895C 0x5642 +0x895D 0x4E91 +0x895E 0x904B +0x895F 0x96F2 +0x8960 0x834F +0x8961 0x990C +0x8962 0x53E1 +0x8963 0x55B6 +0x8964 0x5B30 +0x8965 0x5F71 +0x8966 0x6620 +0x8967 0x66F3 +0x8968 0x6804 +0x8969 0x6C38 +0x896A 0x6CF3 +0x896B 0x6D29 +0x896C 0x745B +0x896D 0x76C8 +0x896E 0x7A4E +0x896F 0x9834 +0x8970 0x82F1 +0x8971 0x885B +0x8972 0x8A60 +0x8973 0x92ED +0x8974 0x6DB2 +0x8975 0x75AB +0x8976 0x76CA +0x8977 0x99C5 +0x8978 0x60A6 +0x8979 0x8B01 +0x897A 0x8D8A +0x897B 0x95B2 +0x897C 0x698E +0x897D 0x53AD +0x897E 0x5186 +0x8980 0x5712 +0x8981 0x5830 +0x8982 0x5944 +0x8983 0x5BB4 +0x8984 0x5EF6 +0x8985 0x6028 +0x8986 0x63A9 +0x8987 0x63F4 +0x8988 0x6CBF +0x8989 0x6F14 +0x898A 0x708E +0x898B 0x7114 +0x898C 0x7159 +0x898D 0x71D5 +0x898E 0x733F +0x898F 0x7E01 +0x8990 0x8276 +0x8991 0x82D1 +0x8992 0x8597 +0x8993 0x9060 +0x8994 0x925B +0x8995 0x9D1B +0x8996 0x5869 +0x8997 0x65BC +0x8998 0x6C5A +0x8999 0x7525 +0x899A 0x51F9 +0x899B 0x592E +0x899C 0x5965 +0x899D 0x5F80 +0x899E 0x5FDC +0x899F 0x62BC +0x89A0 0x65FA +0x89A1 0x6A2A +0x89A2 0x6B27 +0x89A3 0x6BB4 +0x89A4 0x738B +0x89A5 0x7FC1 +0x89A6 0x8956 +0x89A7 0x9D2C +0x89A8 0x9D0E +0x89A9 0x9EC4 +0x89AA 0x5CA1 +0x89AB 0x6C96 +0x89AC 0x837B +0x89AD 0x5104 +0x89AE 0x5C4B +0x89AF 0x61B6 +0x89B0 0x81C6 +0x89B1 0x6876 +0x89B2 0x7261 +0x89B3 0x4E59 +0x89B4 0x4FFA +0x89B5 0x5378 +0x89B6 0x6069 +0x89B7 0x6E29 +0x89B8 0x7A4F +0x89B9 0x97F3 +0x89BA 0x4E0B +0x89BB 0x5316 +0x89BC 0x4EEE +0x89BD 0x4F55 +0x89BE 0x4F3D +0x89BF 0x4FA1 +0x89C0 0x4F73 +0x89C1 0x52A0 +0x89C2 0x53EF +0x89C3 0x5609 +0x89C4 0x590F +0x89C5 0x5AC1 +0x89C6 0x5BB6 +0x89C7 0x5BE1 +0x89C8 0x79D1 +0x89C9 0x6687 +0x89CA 0x679C +0x89CB 0x67B6 +0x89CC 0x6B4C +0x89CD 0x6CB3 +0x89CE 0x706B +0x89CF 0x73C2 +0x89D0 0x798D +0x89D1 0x79BE +0x89D2 0x7A3C +0x89D3 0x7B87 +0x89D4 0x82B1 +0x89D5 0x82DB +0x89D6 0x8304 +0x89D7 0x8377 +0x89D8 0x83EF +0x89D9 0x83D3 +0x89DA 0x8766 +0x89DB 0x8AB2 +0x89DC 0x5629 +0x89DD 0x8CA8 +0x89DE 0x8FE6 +0x89DF 0x904E +0x89E0 0x971E +0x89E1 0x868A +0x89E2 0x4FC4 +0x89E3 0x5CE8 +0x89E4 0x6211 +0x89E5 0x7259 +0x89E6 0x753B +0x89E7 0x81E5 +0x89E8 0x82BD +0x89E9 0x86FE +0x89EA 0x8CC0 +0x89EB 0x96C5 +0x89EC 0x9913 +0x89ED 0x99D5 +0x89EE 0x4ECB +0x89EF 0x4F1A +0x89F0 0x89E3 +0x89F1 0x56DE +0x89F2 0x584A +0x89F3 0x58CA +0x89F4 0x5EFB +0x89F5 0x5FEB +0x89F6 0x602A +0x89F7 0x6094 +0x89F8 0x6062 +0x89F9 0x61D0 +0x89FA 0x6212 +0x89FB 0x62D0 +0x89FC 0x6539 +0x8A40 0x9B41 +0x8A41 0x6666 +0x8A42 0x68B0 +0x8A43 0x6D77 +0x8A44 0x7070 +0x8A45 0x754C +0x8A46 0x7686 +0x8A47 0x7D75 +0x8A48 0x82A5 +0x8A49 0x87F9 +0x8A4A 0x958B +0x8A4B 0x968E +0x8A4C 0x8C9D +0x8A4D 0x51F1 +0x8A4E 0x52BE +0x8A4F 0x5916 +0x8A50 0x54B3 +0x8A51 0x5BB3 +0x8A52 0x5D16 +0x8A53 0x6168 +0x8A54 0x6982 +0x8A55 0x6DAF +0x8A56 0x788D +0x8A57 0x84CB +0x8A58 0x8857 +0x8A59 0x8A72 +0x8A5A 0x93A7 +0x8A5B 0x9AB8 +0x8A5C 0x6D6C +0x8A5D 0x99A8 +0x8A5E 0x86D9 +0x8A5F 0x57A3 +0x8A60 0x67FF +0x8A61 0x86CE +0x8A62 0x920E +0x8A63 0x5283 +0x8A64 0x5687 +0x8A65 0x5404 +0x8A66 0x5ED3 +0x8A67 0x62E1 +0x8A68 0x64B9 +0x8A69 0x683C +0x8A6A 0x6838 +0x8A6B 0x6BBB +0x8A6C 0x7372 +0x8A6D 0x78BA +0x8A6E 0x7A6B +0x8A6F 0x899A +0x8A70 0x89D2 +0x8A71 0x8D6B +0x8A72 0x8F03 +0x8A73 0x90ED +0x8A74 0x95A3 +0x8A75 0x9694 +0x8A76 0x9769 +0x8A77 0x5B66 +0x8A78 0x5CB3 +0x8A79 0x697D +0x8A7A 0x984D +0x8A7B 0x984E +0x8A7C 0x639B +0x8A7D 0x7B20 +0x8A7E 0x6A2B +0x8A80 0x6A7F +0x8A81 0x68B6 +0x8A82 0x9C0D +0x8A83 0x6F5F +0x8A84 0x5272 +0x8A85 0x559D +0x8A86 0x6070 +0x8A87 0x62EC +0x8A88 0x6D3B +0x8A89 0x6E07 +0x8A8A 0x6ED1 +0x8A8B 0x845B +0x8A8C 0x8910 +0x8A8D 0x8F44 +0x8A8E 0x4E14 +0x8A8F 0x9C39 +0x8A90 0x53F6 +0x8A91 0x691B +0x8A92 0x6A3A +0x8A93 0x9784 +0x8A94 0x682A +0x8A95 0x515C +0x8A96 0x7AC3 +0x8A97 0x84B2 +0x8A98 0x91DC +0x8A99 0x938C +0x8A9A 0x565B +0x8A9B 0x9D28 +0x8A9C 0x6822 +0x8A9D 0x8305 +0x8A9E 0x8431 +0x8A9F 0x7CA5 +0x8AA0 0x5208 +0x8AA1 0x82C5 +0x8AA2 0x74E6 +0x8AA3 0x4E7E +0x8AA4 0x4F83 +0x8AA5 0x51A0 +0x8AA6 0x5BD2 +0x8AA7 0x520A +0x8AA8 0x52D8 +0x8AA9 0x52E7 +0x8AAA 0x5DFB +0x8AAB 0x559A +0x8AAC 0x582A +0x8AAD 0x59E6 +0x8AAE 0x5B8C +0x8AAF 0x5B98 +0x8AB0 0x5BDB +0x8AB1 0x5E72 +0x8AB2 0x5E79 +0x8AB3 0x60A3 +0x8AB4 0x611F +0x8AB5 0x6163 +0x8AB6 0x61BE +0x8AB7 0x63DB +0x8AB8 0x6562 +0x8AB9 0x67D1 +0x8ABA 0x6853 +0x8ABB 0x68FA +0x8ABC 0x6B3E +0x8ABD 0x6B53 +0x8ABE 0x6C57 +0x8ABF 0x6F22 +0x8AC0 0x6F97 +0x8AC1 0x6F45 +0x8AC2 0x74B0 +0x8AC3 0x7518 +0x8AC4 0x76E3 +0x8AC5 0x770B +0x8AC6 0x7AFF +0x8AC7 0x7BA1 +0x8AC8 0x7C21 +0x8AC9 0x7DE9 +0x8ACA 0x7F36 +0x8ACB 0x7FF0 +0x8ACC 0x809D +0x8ACD 0x8266 +0x8ACE 0x839E +0x8ACF 0x89B3 +0x8AD0 0x8ACC +0x8AD1 0x8CAB +0x8AD2 0x9084 +0x8AD3 0x9451 +0x8AD4 0x9593 +0x8AD5 0x9591 +0x8AD6 0x95A2 +0x8AD7 0x9665 +0x8AD8 0x97D3 +0x8AD9 0x9928 +0x8ADA 0x8218 +0x8ADB 0x4E38 +0x8ADC 0x542B +0x8ADD 0x5CB8 +0x8ADE 0x5DCC +0x8ADF 0x73A9 +0x8AE0 0x764C +0x8AE1 0x773C +0x8AE2 0x5CA9 +0x8AE3 0x7FEB +0x8AE4 0x8D0B +0x8AE5 0x96C1 +0x8AE6 0x9811 +0x8AE7 0x9854 +0x8AE8 0x9858 +0x8AE9 0x4F01 +0x8AEA 0x4F0E +0x8AEB 0x5371 +0x8AEC 0x559C +0x8AED 0x5668 +0x8AEE 0x57FA +0x8AEF 0x5947 +0x8AF0 0x5B09 +0x8AF1 0x5BC4 +0x8AF2 0x5C90 +0x8AF3 0x5E0C +0x8AF4 0x5E7E +0x8AF5 0x5FCC +0x8AF6 0x63EE +0x8AF7 0x673A +0x8AF8 0x65D7 +0x8AF9 0x65E2 +0x8AFA 0x671F +0x8AFB 0x68CB +0x8AFC 0x68C4 +0x8B40 0x6A5F +0x8B41 0x5E30 +0x8B42 0x6BC5 +0x8B43 0x6C17 +0x8B44 0x6C7D +0x8B45 0x757F +0x8B46 0x7948 +0x8B47 0x5B63 +0x8B48 0x7A00 +0x8B49 0x7D00 +0x8B4A 0x5FBD +0x8B4B 0x898F +0x8B4C 0x8A18 +0x8B4D 0x8CB4 +0x8B4E 0x8D77 +0x8B4F 0x8ECC +0x8B50 0x8F1D +0x8B51 0x98E2 +0x8B52 0x9A0E +0x8B53 0x9B3C +0x8B54 0x4E80 +0x8B55 0x507D +0x8B56 0x5100 +0x8B57 0x5993 +0x8B58 0x5B9C +0x8B59 0x622F +0x8B5A 0x6280 +0x8B5B 0x64EC +0x8B5C 0x6B3A +0x8B5D 0x72A0 +0x8B5E 0x7591 +0x8B5F 0x7947 +0x8B60 0x7FA9 +0x8B61 0x87FB +0x8B62 0x8ABC +0x8B63 0x8B70 +0x8B64 0x63AC +0x8B65 0x83CA +0x8B66 0x97A0 +0x8B67 0x5409 +0x8B68 0x5403 +0x8B69 0x55AB +0x8B6A 0x6854 +0x8B6B 0x6A58 +0x8B6C 0x8A70 +0x8B6D 0x7827 +0x8B6E 0x6775 +0x8B6F 0x9ECD +0x8B70 0x5374 +0x8B71 0x5BA2 +0x8B72 0x811A +0x8B73 0x8650 +0x8B74 0x9006 +0x8B75 0x4E18 +0x8B76 0x4E45 +0x8B77 0x4EC7 +0x8B78 0x4F11 +0x8B79 0x53CA +0x8B7A 0x5438 +0x8B7B 0x5BAE +0x8B7C 0x5F13 +0x8B7D 0x6025 +0x8B7E 0x6551 +0x8B80 0x673D +0x8B81 0x6C42 +0x8B82 0x6C72 +0x8B83 0x6CE3 +0x8B84 0x7078 +0x8B85 0x7403 +0x8B86 0x7A76 +0x8B87 0x7AAE +0x8B88 0x7B08 +0x8B89 0x7D1A +0x8B8A 0x7CFE +0x8B8B 0x7D66 +0x8B8C 0x65E7 +0x8B8D 0x725B +0x8B8E 0x53BB +0x8B8F 0x5C45 +0x8B90 0x5DE8 +0x8B91 0x62D2 +0x8B92 0x62E0 +0x8B93 0x6319 +0x8B94 0x6E20 +0x8B95 0x865A +0x8B96 0x8A31 +0x8B97 0x8DDD +0x8B98 0x92F8 +0x8B99 0x6F01 +0x8B9A 0x79A6 +0x8B9B 0x9B5A +0x8B9C 0x4EA8 +0x8B9D 0x4EAB +0x8B9E 0x4EAC +0x8B9F 0x4F9B +0x8BA0 0x4FA0 +0x8BA1 0x50D1 +0x8BA2 0x5147 +0x8BA3 0x7AF6 +0x8BA4 0x5171 +0x8BA5 0x51F6 +0x8BA6 0x5354 +0x8BA7 0x5321 +0x8BA8 0x537F +0x8BA9 0x53EB +0x8BAA 0x55AC +0x8BAB 0x5883 +0x8BAC 0x5CE1 +0x8BAD 0x5F37 +0x8BAE 0x5F4A +0x8BAF 0x602F +0x8BB0 0x6050 +0x8BB1 0x606D +0x8BB2 0x631F +0x8BB3 0x6559 +0x8BB4 0x6A4B +0x8BB5 0x6CC1 +0x8BB6 0x72C2 +0x8BB7 0x72ED +0x8BB8 0x77EF +0x8BB9 0x80F8 +0x8BBA 0x8105 +0x8BBB 0x8208 +0x8BBC 0x854E +0x8BBD 0x90F7 +0x8BBE 0x93E1 +0x8BBF 0x97FF +0x8BC0 0x9957 +0x8BC1 0x9A5A +0x8BC2 0x4EF0 +0x8BC3 0x51DD +0x8BC4 0x5C2D +0x8BC5 0x6681 +0x8BC6 0x696D +0x8BC7 0x5C40 +0x8BC8 0x66F2 +0x8BC9 0x6975 +0x8BCA 0x7389 +0x8BCB 0x6850 +0x8BCC 0x7C81 +0x8BCD 0x50C5 +0x8BCE 0x52E4 +0x8BCF 0x5747 +0x8BD0 0x5DFE +0x8BD1 0x9326 +0x8BD2 0x65A4 +0x8BD3 0x6B23 +0x8BD4 0x6B3D +0x8BD5 0x7434 +0x8BD6 0x7981 +0x8BD7 0x79BD +0x8BD8 0x7B4B +0x8BD9 0x7DCA +0x8BDA 0x82B9 +0x8BDB 0x83CC +0x8BDC 0x887F +0x8BDD 0x895F +0x8BDE 0x8B39 +0x8BDF 0x8FD1 +0x8BE0 0x91D1 +0x8BE1 0x541F +0x8BE2 0x9280 +0x8BE3 0x4E5D +0x8BE4 0x5036 +0x8BE5 0x53E5 +0x8BE6 0x533A +0x8BE7 0x72D7 +0x8BE8 0x7396 +0x8BE9 0x77E9 +0x8BEA 0x82E6 +0x8BEB 0x8EAF +0x8BEC 0x99C6 +0x8BED 0x99C8 +0x8BEE 0x99D2 +0x8BEF 0x5177 +0x8BF0 0x611A +0x8BF1 0x865E +0x8BF2 0x55B0 +0x8BF3 0x7A7A +0x8BF4 0x5076 +0x8BF5 0x5BD3 +0x8BF6 0x9047 +0x8BF7 0x9685 +0x8BF8 0x4E32 +0x8BF9 0x6ADB +0x8BFA 0x91E7 +0x8BFB 0x5C51 +0x8BFC 0x5C48 +0x8C40 0x6398 +0x8C41 0x7A9F +0x8C42 0x6C93 +0x8C43 0x9774 +0x8C44 0x8F61 +0x8C45 0x7AAA +0x8C46 0x718A +0x8C47 0x9688 +0x8C48 0x7C82 +0x8C49 0x6817 +0x8C4A 0x7E70 +0x8C4B 0x6851 +0x8C4C 0x936C +0x8C4D 0x52F2 +0x8C4E 0x541B +0x8C4F 0x85AB +0x8C50 0x8A13 +0x8C51 0x7FA4 +0x8C52 0x8ECD +0x8C53 0x90E1 +0x8C54 0x5366 +0x8C55 0x8888 +0x8C56 0x7941 +0x8C57 0x4FC2 +0x8C58 0x50BE +0x8C59 0x5211 +0x8C5A 0x5144 +0x8C5B 0x5553 +0x8C5C 0x572D +0x8C5D 0x73EA +0x8C5E 0x578B +0x8C5F 0x5951 +0x8C60 0x5F62 +0x8C61 0x5F84 +0x8C62 0x6075 +0x8C63 0x6176 +0x8C64 0x6167 +0x8C65 0x61A9 +0x8C66 0x63B2 +0x8C67 0x643A +0x8C68 0x656C +0x8C69 0x666F +0x8C6A 0x6842 +0x8C6B 0x6E13 +0x8C6C 0x7566 +0x8C6D 0x7A3D +0x8C6E 0x7CFB +0x8C6F 0x7D4C +0x8C70 0x7D99 +0x8C71 0x7E4B +0x8C72 0x7F6B +0x8C73 0x830E +0x8C74 0x834A +0x8C75 0x86CD +0x8C76 0x8A08 +0x8C77 0x8A63 +0x8C78 0x8B66 +0x8C79 0x8EFD +0x8C7A 0x981A +0x8C7B 0x9D8F +0x8C7C 0x82B8 +0x8C7D 0x8FCE +0x8C7E 0x9BE8 +0x8C80 0x5287 +0x8C81 0x621F +0x8C82 0x6483 +0x8C83 0x6FC0 +0x8C84 0x9699 +0x8C85 0x6841 +0x8C86 0x5091 +0x8C87 0x6B20 +0x8C88 0x6C7A +0x8C89 0x6F54 +0x8C8A 0x7A74 +0x8C8B 0x7D50 +0x8C8C 0x8840 +0x8C8D 0x8A23 +0x8C8E 0x6708 +0x8C8F 0x4EF6 +0x8C90 0x5039 +0x8C91 0x5026 +0x8C92 0x5065 +0x8C93 0x517C +0x8C94 0x5238 +0x8C95 0x5263 +0x8C96 0x55A7 +0x8C97 0x570F +0x8C98 0x5805 +0x8C99 0x5ACC +0x8C9A 0x5EFA +0x8C9B 0x61B2 +0x8C9C 0x61F8 +0x8C9D 0x62F3 +0x8C9E 0x6372 +0x8C9F 0x691C +0x8CA0 0x6A29 +0x8CA1 0x727D +0x8CA2 0x72AC +0x8CA3 0x732E +0x8CA4 0x7814 +0x8CA5 0x786F +0x8CA6 0x7D79 +0x8CA7 0x770C +0x8CA8 0x80A9 +0x8CA9 0x898B +0x8CAA 0x8B19 +0x8CAB 0x8CE2 +0x8CAC 0x8ED2 +0x8CAD 0x9063 +0x8CAE 0x9375 +0x8CAF 0x967A +0x8CB0 0x9855 +0x8CB1 0x9A13 +0x8CB2 0x9E78 +0x8CB3 0x5143 +0x8CB4 0x539F +0x8CB5 0x53B3 +0x8CB6 0x5E7B +0x8CB7 0x5F26 +0x8CB8 0x6E1B +0x8CB9 0x6E90 +0x8CBA 0x7384 +0x8CBB 0x73FE +0x8CBC 0x7D43 +0x8CBD 0x8237 +0x8CBE 0x8A00 +0x8CBF 0x8AFA +0x8CC0 0x9650 +0x8CC1 0x4E4E +0x8CC2 0x500B +0x8CC3 0x53E4 +0x8CC4 0x547C +0x8CC5 0x56FA +0x8CC6 0x59D1 +0x8CC7 0x5B64 +0x8CC8 0x5DF1 +0x8CC9 0x5EAB +0x8CCA 0x5F27 +0x8CCB 0x6238 +0x8CCC 0x6545 +0x8CCD 0x67AF +0x8CCE 0x6E56 +0x8CCF 0x72D0 +0x8CD0 0x7CCA +0x8CD1 0x88B4 +0x8CD2 0x80A1 +0x8CD3 0x80E1 +0x8CD4 0x83F0 +0x8CD5 0x864E +0x8CD6 0x8A87 +0x8CD7 0x8DE8 +0x8CD8 0x9237 +0x8CD9 0x96C7 +0x8CDA 0x9867 +0x8CDB 0x9F13 +0x8CDC 0x4E94 +0x8CDD 0x4E92 +0x8CDE 0x4F0D +0x8CDF 0x5348 +0x8CE0 0x5449 +0x8CE1 0x543E +0x8CE2 0x5A2F +0x8CE3 0x5F8C +0x8CE4 0x5FA1 +0x8CE5 0x609F +0x8CE6 0x68A7 +0x8CE7 0x6A8E +0x8CE8 0x745A +0x8CE9 0x7881 +0x8CEA 0x8A9E +0x8CEB 0x8AA4 +0x8CEC 0x8B77 +0x8CED 0x9190 +0x8CEE 0x4E5E +0x8CEF 0x9BC9 +0x8CF0 0x4EA4 +0x8CF1 0x4F7C +0x8CF2 0x4FAF +0x8CF3 0x5019 +0x8CF4 0x5016 +0x8CF5 0x5149 +0x8CF6 0x516C +0x8CF7 0x529F +0x8CF8 0x52B9 +0x8CF9 0x52FE +0x8CFA 0x539A +0x8CFB 0x53E3 +0x8CFC 0x5411 +0x8D40 0x540E +0x8D41 0x5589 +0x8D42 0x5751 +0x8D43 0x57A2 +0x8D44 0x597D +0x8D45 0x5B54 +0x8D46 0x5B5D +0x8D47 0x5B8F +0x8D48 0x5DE5 +0x8D49 0x5DE7 +0x8D4A 0x5DF7 +0x8D4B 0x5E78 +0x8D4C 0x5E83 +0x8D4D 0x5E9A +0x8D4E 0x5EB7 +0x8D4F 0x5F18 +0x8D50 0x6052 +0x8D51 0x614C +0x8D52 0x6297 +0x8D53 0x62D8 +0x8D54 0x63A7 +0x8D55 0x653B +0x8D56 0x6602 +0x8D57 0x6643 +0x8D58 0x66F4 +0x8D59 0x676D +0x8D5A 0x6821 +0x8D5B 0x6897 +0x8D5C 0x69CB +0x8D5D 0x6C5F +0x8D5E 0x6D2A +0x8D5F 0x6D69 +0x8D60 0x6E2F +0x8D61 0x6E9D +0x8D62 0x7532 +0x8D63 0x7687 +0x8D64 0x786C +0x8D65 0x7A3F +0x8D66 0x7CE0 +0x8D67 0x7D05 +0x8D68 0x7D18 +0x8D69 0x7D5E +0x8D6A 0x7DB1 +0x8D6B 0x8015 +0x8D6C 0x8003 +0x8D6D 0x80AF +0x8D6E 0x80B1 +0x8D6F 0x8154 +0x8D70 0x818F +0x8D71 0x822A +0x8D72 0x8352 +0x8D73 0x884C +0x8D74 0x8861 +0x8D75 0x8B1B +0x8D76 0x8CA2 +0x8D77 0x8CFC +0x8D78 0x90CA +0x8D79 0x9175 +0x8D7A 0x9271 +0x8D7B 0x783F +0x8D7C 0x92FC +0x8D7D 0x95A4 +0x8D7E 0x964D +0x8D80 0x9805 +0x8D81 0x9999 +0x8D82 0x9AD8 +0x8D83 0x9D3B +0x8D84 0x525B +0x8D85 0x52AB +0x8D86 0x53F7 +0x8D87 0x5408 +0x8D88 0x58D5 +0x8D89 0x62F7 +0x8D8A 0x6FE0 +0x8D8B 0x8C6A +0x8D8C 0x8F5F +0x8D8D 0x9EB9 +0x8D8E 0x514B +0x8D8F 0x523B +0x8D90 0x544A +0x8D91 0x56FD +0x8D92 0x7A40 +0x8D93 0x9177 +0x8D94 0x9D60 +0x8D95 0x9ED2 +0x8D96 0x7344 +0x8D97 0x6F09 +0x8D98 0x8170 +0x8D99 0x7511 +0x8D9A 0x5FFD +0x8D9B 0x60DA +0x8D9C 0x9AA8 +0x8D9D 0x72DB +0x8D9E 0x8FBC +0x8D9F 0x6B64 +0x8DA0 0x9803 +0x8DA1 0x4ECA +0x8DA2 0x56F0 +0x8DA3 0x5764 +0x8DA4 0x58BE +0x8DA5 0x5A5A +0x8DA6 0x6068 +0x8DA7 0x61C7 +0x8DA8 0x660F +0x8DA9 0x6606 +0x8DAA 0x6839 +0x8DAB 0x68B1 +0x8DAC 0x6DF7 +0x8DAD 0x75D5 +0x8DAE 0x7D3A +0x8DAF 0x826E +0x8DB0 0x9B42 +0x8DB1 0x4E9B +0x8DB2 0x4F50 +0x8DB3 0x53C9 +0x8DB4 0x5506 +0x8DB5 0x5D6F +0x8DB6 0x5DE6 +0x8DB7 0x5DEE +0x8DB8 0x67FB +0x8DB9 0x6C99 +0x8DBA 0x7473 +0x8DBB 0x7802 +0x8DBC 0x8A50 +0x8DBD 0x9396 +0x8DBE 0x88DF +0x8DBF 0x5750 +0x8DC0 0x5EA7 +0x8DC1 0x632B +0x8DC2 0x50B5 +0x8DC3 0x50AC +0x8DC4 0x518D +0x8DC5 0x6700 +0x8DC6 0x54C9 +0x8DC7 0x585E +0x8DC8 0x59BB +0x8DC9 0x5BB0 +0x8DCA 0x5F69 +0x8DCB 0x624D +0x8DCC 0x63A1 +0x8DCD 0x683D +0x8DCE 0x6B73 +0x8DCF 0x6E08 +0x8DD0 0x707D +0x8DD1 0x91C7 +0x8DD2 0x7280 +0x8DD3 0x7815 +0x8DD4 0x7826 +0x8DD5 0x796D +0x8DD6 0x658E +0x8DD7 0x7D30 +0x8DD8 0x83DC +0x8DD9 0x88C1 +0x8DDA 0x8F09 +0x8DDB 0x969B +0x8DDC 0x5264 +0x8DDD 0x5728 +0x8DDE 0x6750 +0x8DDF 0x7F6A +0x8DE0 0x8CA1 +0x8DE1 0x51B4 +0x8DE2 0x5742 +0x8DE3 0x962A +0x8DE4 0x583A +0x8DE5 0x698A +0x8DE6 0x80B4 +0x8DE7 0x54B2 +0x8DE8 0x5D0E +0x8DE9 0x57FC +0x8DEA 0x7895 +0x8DEB 0x9DFA +0x8DEC 0x4F5C +0x8DED 0x524A +0x8DEE 0x548B +0x8DEF 0x643E +0x8DF0 0x6628 +0x8DF1 0x6714 +0x8DF2 0x67F5 +0x8DF3 0x7A84 +0x8DF4 0x7B56 +0x8DF5 0x7D22 +0x8DF6 0x932F +0x8DF7 0x685C +0x8DF8 0x9BAD +0x8DF9 0x7B39 +0x8DFA 0x5319 +0x8DFB 0x518A +0x8DFC 0x5237 +0x8E40 0x5BDF +0x8E41 0x62F6 +0x8E42 0x64AE +0x8E43 0x64E6 +0x8E44 0x672D +0x8E45 0x6BBA +0x8E46 0x85A9 +0x8E47 0x96D1 +0x8E48 0x7690 +0x8E49 0x9BD6 +0x8E4A 0x634C +0x8E4B 0x9306 +0x8E4C 0x9BAB +0x8E4D 0x76BF +0x8E4E 0x6652 +0x8E4F 0x4E09 +0x8E50 0x5098 +0x8E51 0x53C2 +0x8E52 0x5C71 +0x8E53 0x60E8 +0x8E54 0x6492 +0x8E55 0x6563 +0x8E56 0x685F +0x8E57 0x71E6 +0x8E58 0x73CA +0x8E59 0x7523 +0x8E5A 0x7B97 +0x8E5B 0x7E82 +0x8E5C 0x8695 +0x8E5D 0x8B83 +0x8E5E 0x8CDB +0x8E5F 0x9178 +0x8E60 0x9910 +0x8E61 0x65AC +0x8E62 0x66AB +0x8E63 0x6B8B +0x8E64 0x4ED5 +0x8E65 0x4ED4 +0x8E66 0x4F3A +0x8E67 0x4F7F +0x8E68 0x523A +0x8E69 0x53F8 +0x8E6A 0x53F2 +0x8E6B 0x55E3 +0x8E6C 0x56DB +0x8E6D 0x58EB +0x8E6E 0x59CB +0x8E6F 0x59C9 +0x8E70 0x59FF +0x8E71 0x5B50 +0x8E72 0x5C4D +0x8E73 0x5E02 +0x8E74 0x5E2B +0x8E75 0x5FD7 +0x8E76 0x601D +0x8E77 0x6307 +0x8E78 0x652F +0x8E79 0x5B5C +0x8E7A 0x65AF +0x8E7B 0x65BD +0x8E7C 0x65E8 +0x8E7D 0x679D +0x8E7E 0x6B62 +0x8E80 0x6B7B +0x8E81 0x6C0F +0x8E82 0x7345 +0x8E83 0x7949 +0x8E84 0x79C1 +0x8E85 0x7CF8 +0x8E86 0x7D19 +0x8E87 0x7D2B +0x8E88 0x80A2 +0x8E89 0x8102 +0x8E8A 0x81F3 +0x8E8B 0x8996 +0x8E8C 0x8A5E +0x8E8D 0x8A69 +0x8E8E 0x8A66 +0x8E8F 0x8A8C +0x8E90 0x8AEE +0x8E91 0x8CC7 +0x8E92 0x8CDC +0x8E93 0x96CC +0x8E94 0x98FC +0x8E95 0x6B6F +0x8E96 0x4E8B +0x8E97 0x4F3C +0x8E98 0x4F8D +0x8E99 0x5150 +0x8E9A 0x5B57 +0x8E9B 0x5BFA +0x8E9C 0x6148 +0x8E9D 0x6301 +0x8E9E 0x6642 +0x8E9F 0x6B21 +0x8EA0 0x6ECB +0x8EA1 0x6CBB +0x8EA2 0x723E +0x8EA3 0x74BD +0x8EA4 0x75D4 +0x8EA5 0x78C1 +0x8EA6 0x793A +0x8EA7 0x800C +0x8EA8 0x8033 +0x8EA9 0x81EA +0x8EAA 0x8494 +0x8EAB 0x8F9E +0x8EAC 0x6C50 +0x8EAD 0x9E7F +0x8EAE 0x5F0F +0x8EAF 0x8B58 +0x8EB0 0x9D2B +0x8EB1 0x7AFA +0x8EB2 0x8EF8 +0x8EB3 0x5B8D +0x8EB4 0x96EB +0x8EB5 0x4E03 +0x8EB6 0x53F1 +0x8EB7 0x57F7 +0x8EB8 0x5931 +0x8EB9 0x5AC9 +0x8EBA 0x5BA4 +0x8EBB 0x6089 +0x8EBC 0x6E7F +0x8EBD 0x6F06 +0x8EBE 0x75BE +0x8EBF 0x8CEA +0x8EC0 0x5B9F +0x8EC1 0x8500 +0x8EC2 0x7BE0 +0x8EC3 0x5072 +0x8EC4 0x67F4 +0x8EC5 0x829D +0x8EC6 0x5C61 +0x8EC7 0x854A +0x8EC8 0x7E1E +0x8EC9 0x820E +0x8ECA 0x5199 +0x8ECB 0x5C04 +0x8ECC 0x6368 +0x8ECD 0x8D66 +0x8ECE 0x659C +0x8ECF 0x716E +0x8ED0 0x793E +0x8ED1 0x7D17 +0x8ED2 0x8005 +0x8ED3 0x8B1D +0x8ED4 0x8ECA +0x8ED5 0x906E +0x8ED6 0x86C7 +0x8ED7 0x90AA +0x8ED8 0x501F +0x8ED9 0x52FA +0x8EDA 0x5C3A +0x8EDB 0x6753 +0x8EDC 0x707C +0x8EDD 0x7235 +0x8EDE 0x914C +0x8EDF 0x91C8 +0x8EE0 0x932B +0x8EE1 0x82E5 +0x8EE2 0x5BC2 +0x8EE3 0x5F31 +0x8EE4 0x60F9 +0x8EE5 0x4E3B +0x8EE6 0x53D6 +0x8EE7 0x5B88 +0x8EE8 0x624B +0x8EE9 0x6731 +0x8EEA 0x6B8A +0x8EEB 0x72E9 +0x8EEC 0x73E0 +0x8EED 0x7A2E +0x8EEE 0x816B +0x8EEF 0x8DA3 +0x8EF0 0x9152 +0x8EF1 0x9996 +0x8EF2 0x5112 +0x8EF3 0x53D7 +0x8EF4 0x546A +0x8EF5 0x5BFF +0x8EF6 0x6388 +0x8EF7 0x6A39 +0x8EF8 0x7DAC +0x8EF9 0x9700 +0x8EFA 0x56DA +0x8EFB 0x53CE +0x8EFC 0x5468 +0x8F40 0x5B97 +0x8F41 0x5C31 +0x8F42 0x5DDE +0x8F43 0x4FEE +0x8F44 0x6101 +0x8F45 0x62FE +0x8F46 0x6D32 +0x8F47 0x79C0 +0x8F48 0x79CB +0x8F49 0x7D42 +0x8F4A 0x7E4D +0x8F4B 0x7FD2 +0x8F4C 0x81ED +0x8F4D 0x821F +0x8F4E 0x8490 +0x8F4F 0x8846 +0x8F50 0x8972 +0x8F51 0x8B90 +0x8F52 0x8E74 +0x8F53 0x8F2F +0x8F54 0x9031 +0x8F55 0x914B +0x8F56 0x916C +0x8F57 0x96C6 +0x8F58 0x919C +0x8F59 0x4EC0 +0x8F5A 0x4F4F +0x8F5B 0x5145 +0x8F5C 0x5341 +0x8F5D 0x5F93 +0x8F5E 0x620E +0x8F5F 0x67D4 +0x8F60 0x6C41 +0x8F61 0x6E0B +0x8F62 0x7363 +0x8F63 0x7E26 +0x8F64 0x91CD +0x8F65 0x9283 +0x8F66 0x53D4 +0x8F67 0x5919 +0x8F68 0x5BBF +0x8F69 0x6DD1 +0x8F6A 0x795D +0x8F6B 0x7E2E +0x8F6C 0x7C9B +0x8F6D 0x587E +0x8F6E 0x719F +0x8F6F 0x51FA +0x8F70 0x8853 +0x8F71 0x8FF0 +0x8F72 0x4FCA +0x8F73 0x5CFB +0x8F74 0x6625 +0x8F75 0x77AC +0x8F76 0x7AE3 +0x8F77 0x821C +0x8F78 0x99FF +0x8F79 0x51C6 +0x8F7A 0x5FAA +0x8F7B 0x65EC +0x8F7C 0x696F +0x8F7D 0x6B89 +0x8F7E 0x6DF3 +0x8F80 0x6E96 +0x8F81 0x6F64 +0x8F82 0x76FE +0x8F83 0x7D14 +0x8F84 0x5DE1 +0x8F85 0x9075 +0x8F86 0x9187 +0x8F87 0x9806 +0x8F88 0x51E6 +0x8F89 0x521D +0x8F8A 0x6240 +0x8F8B 0x6691 +0x8F8C 0x66D9 +0x8F8D 0x6E1A +0x8F8E 0x5EB6 +0x8F8F 0x7DD2 +0x8F90 0x7F72 +0x8F91 0x66F8 +0x8F92 0x85AF +0x8F93 0x85F7 +0x8F94 0x8AF8 +0x8F95 0x52A9 +0x8F96 0x53D9 +0x8F97 0x5973 +0x8F98 0x5E8F +0x8F99 0x5F90 +0x8F9A 0x6055 +0x8F9B 0x92E4 +0x8F9C 0x9664 +0x8F9D 0x50B7 +0x8F9E 0x511F +0x8F9F 0x52DD +0x8FA0 0x5320 +0x8FA1 0x5347 +0x8FA2 0x53EC +0x8FA3 0x54E8 +0x8FA4 0x5546 +0x8FA5 0x5531 +0x8FA6 0x5617 +0x8FA7 0x5968 +0x8FA8 0x59BE +0x8FA9 0x5A3C +0x8FAA 0x5BB5 +0x8FAB 0x5C06 +0x8FAC 0x5C0F +0x8FAD 0x5C11 +0x8FAE 0x5C1A +0x8FAF 0x5E84 +0x8FB0 0x5E8A +0x8FB1 0x5EE0 +0x8FB2 0x5F70 +0x8FB3 0x627F +0x8FB4 0x6284 +0x8FB5 0x62DB +0x8FB6 0x638C +0x8FB7 0x6377 +0x8FB8 0x6607 +0x8FB9 0x660C +0x8FBA 0x662D +0x8FBB 0x6676 +0x8FBC 0x677E +0x8FBD 0x68A2 +0x8FBE 0x6A1F +0x8FBF 0x6A35 +0x8FC0 0x6CBC +0x8FC1 0x6D88 +0x8FC2 0x6E09 +0x8FC3 0x6E58 +0x8FC4 0x713C +0x8FC5 0x7126 +0x8FC6 0x7167 +0x8FC7 0x75C7 +0x8FC8 0x7701 +0x8FC9 0x785D +0x8FCA 0x7901 +0x8FCB 0x7965 +0x8FCC 0x79F0 +0x8FCD 0x7AE0 +0x8FCE 0x7B11 +0x8FCF 0x7CA7 +0x8FD0 0x7D39 +0x8FD1 0x8096 +0x8FD2 0x83D6 +0x8FD3 0x848B +0x8FD4 0x8549 +0x8FD5 0x885D +0x8FD6 0x88F3 +0x8FD7 0x8A1F +0x8FD8 0x8A3C +0x8FD9 0x8A54 +0x8FDA 0x8A73 +0x8FDB 0x8C61 +0x8FDC 0x8CDE +0x8FDD 0x91A4 +0x8FDE 0x9266 +0x8FDF 0x937E +0x8FE0 0x9418 +0x8FE1 0x969C +0x8FE2 0x9798 +0x8FE3 0x4E0A +0x8FE4 0x4E08 +0x8FE5 0x4E1E +0x8FE6 0x4E57 +0x8FE7 0x5197 +0x8FE8 0x5270 +0x8FE9 0x57CE +0x8FEA 0x5834 +0x8FEB 0x58CC +0x8FEC 0x5B22 +0x8FED 0x5E38 +0x8FEE 0x60C5 +0x8FEF 0x64FE +0x8FF0 0x6761 +0x8FF1 0x6756 +0x8FF2 0x6D44 +0x8FF3 0x72B6 +0x8FF4 0x7573 +0x8FF5 0x7A63 +0x8FF6 0x84B8 +0x8FF7 0x8B72 +0x8FF8 0x91B8 +0x8FF9 0x9320 +0x8FFA 0x5631 +0x8FFB 0x57F4 +0x8FFC 0x98FE +0x9040 0x62ED +0x9041 0x690D +0x9042 0x6B96 +0x9043 0x71ED +0x9044 0x7E54 +0x9045 0x8077 +0x9046 0x8272 +0x9047 0x89E6 +0x9048 0x98DF +0x9049 0x8755 +0x904A 0x8FB1 +0x904B 0x5C3B +0x904C 0x4F38 +0x904D 0x4FE1 +0x904E 0x4FB5 +0x904F 0x5507 +0x9050 0x5A20 +0x9051 0x5BDD +0x9052 0x5BE9 +0x9053 0x5FC3 +0x9054 0x614E +0x9055 0x632F +0x9056 0x65B0 +0x9057 0x664B +0x9058 0x68EE +0x9059 0x699B +0x905A 0x6D78 +0x905B 0x6DF1 +0x905C 0x7533 +0x905D 0x75B9 +0x905E 0x771F +0x905F 0x795E +0x9060 0x79E6 +0x9061 0x7D33 +0x9062 0x81E3 +0x9063 0x82AF +0x9064 0x85AA +0x9065 0x89AA +0x9066 0x8A3A +0x9067 0x8EAB +0x9068 0x8F9B +0x9069 0x9032 +0x906A 0x91DD +0x906B 0x9707 +0x906C 0x4EBA +0x906D 0x4EC1 +0x906E 0x5203 +0x906F 0x5875 +0x9070 0x58EC +0x9071 0x5C0B +0x9072 0x751A +0x9073 0x5C3D +0x9074 0x814E +0x9075 0x8A0A +0x9076 0x8FC5 +0x9077 0x9663 +0x9078 0x976D +0x9079 0x7B25 +0x907A 0x8ACF +0x907B 0x9808 +0x907C 0x9162 +0x907D 0x56F3 +0x907E 0x53A8 +0x9080 0x9017 +0x9081 0x5439 +0x9082 0x5782 +0x9083 0x5E25 +0x9084 0x63A8 +0x9085 0x6C34 +0x9086 0x708A +0x9087 0x7761 +0x9088 0x7C8B +0x9089 0x7FE0 +0x908A 0x8870 +0x908B 0x9042 +0x908C 0x9154 +0x908D 0x9310 +0x908E 0x9318 +0x908F 0x968F +0x9090 0x745E +0x9091 0x9AC4 +0x9092 0x5D07 +0x9093 0x5D69 +0x9094 0x6570 +0x9095 0x67A2 +0x9096 0x8DA8 +0x9097 0x96DB +0x9098 0x636E +0x9099 0x6749 +0x909A 0x6919 +0x909B 0x83C5 +0x909C 0x9817 +0x909D 0x96C0 +0x909E 0x88FE +0x909F 0x6F84 +0x90A0 0x647A +0x90A1 0x5BF8 +0x90A2 0x4E16 +0x90A3 0x702C +0x90A4 0x755D +0x90A5 0x662F +0x90A6 0x51C4 +0x90A7 0x5236 +0x90A8 0x52E2 +0x90A9 0x59D3 +0x90AA 0x5F81 +0x90AB 0x6027 +0x90AC 0x6210 +0x90AD 0x653F +0x90AE 0x6574 +0x90AF 0x661F +0x90B0 0x6674 +0x90B1 0x68F2 +0x90B2 0x6816 +0x90B3 0x6B63 +0x90B4 0x6E05 +0x90B5 0x7272 +0x90B6 0x751F +0x90B7 0x76DB +0x90B8 0x7CBE +0x90B9 0x8056 +0x90BA 0x58F0 +0x90BB 0x88FD +0x90BC 0x897F +0x90BD 0x8AA0 +0x90BE 0x8A93 +0x90BF 0x8ACB +0x90C0 0x901D +0x90C1 0x9192 +0x90C2 0x9752 +0x90C3 0x9759 +0x90C4 0x6589 +0x90C5 0x7A0E +0x90C6 0x8106 +0x90C7 0x96BB +0x90C8 0x5E2D +0x90C9 0x60DC +0x90CA 0x621A +0x90CB 0x65A5 +0x90CC 0x6614 +0x90CD 0x6790 +0x90CE 0x77F3 +0x90CF 0x7A4D +0x90D0 0x7C4D +0x90D1 0x7E3E +0x90D2 0x810A +0x90D3 0x8CAC +0x90D4 0x8D64 +0x90D5 0x8DE1 +0x90D6 0x8E5F +0x90D7 0x78A9 +0x90D8 0x5207 +0x90D9 0x62D9 +0x90DA 0x63A5 +0x90DB 0x6442 +0x90DC 0x6298 +0x90DD 0x8A2D +0x90DE 0x7A83 +0x90DF 0x7BC0 +0x90E0 0x8AAC +0x90E1 0x96EA +0x90E2 0x7D76 +0x90E3 0x820C +0x90E4 0x8749 +0x90E5 0x4ED9 +0x90E6 0x5148 +0x90E7 0x5343 +0x90E8 0x5360 +0x90E9 0x5BA3 +0x90EA 0x5C02 +0x90EB 0x5C16 +0x90EC 0x5DDD +0x90ED 0x6226 +0x90EE 0x6247 +0x90EF 0x64B0 +0x90F0 0x6813 +0x90F1 0x6834 +0x90F2 0x6CC9 +0x90F3 0x6D45 +0x90F4 0x6D17 +0x90F5 0x67D3 +0x90F6 0x6F5C +0x90F7 0x714E +0x90F8 0x717D +0x90F9 0x65CB +0x90FA 0x7A7F +0x90FB 0x7BAD +0x90FC 0x7DDA +0x9140 0x7E4A +0x9141 0x7FA8 +0x9142 0x817A +0x9143 0x821B +0x9144 0x8239 +0x9145 0x85A6 +0x9146 0x8A6E +0x9147 0x8CCE +0x9148 0x8DF5 +0x9149 0x9078 +0x914A 0x9077 +0x914B 0x92AD +0x914C 0x9291 +0x914D 0x9583 +0x914E 0x9BAE +0x914F 0x524D +0x9150 0x5584 +0x9151 0x6F38 +0x9152 0x7136 +0x9153 0x5168 +0x9154 0x7985 +0x9155 0x7E55 +0x9156 0x81B3 +0x9157 0x7CCE +0x9158 0x564C +0x9159 0x5851 +0x915A 0x5CA8 +0x915B 0x63AA +0x915C 0x66FE +0x915D 0x66FD +0x915E 0x695A +0x915F 0x72D9 +0x9160 0x758F +0x9161 0x758E +0x9162 0x790E +0x9163 0x7956 +0x9164 0x79DF +0x9165 0x7C97 +0x9166 0x7D20 +0x9167 0x7D44 +0x9168 0x8607 +0x9169 0x8A34 +0x916A 0x963B +0x916B 0x9061 +0x916C 0x9F20 +0x916D 0x50E7 +0x916E 0x5275 +0x916F 0x53CC +0x9170 0x53E2 +0x9171 0x5009 +0x9172 0x55AA +0x9173 0x58EE +0x9174 0x594F +0x9175 0x723D +0x9176 0x5B8B +0x9177 0x5C64 +0x9178 0x531D +0x9179 0x60E3 +0x917A 0x60F3 +0x917B 0x635C +0x917C 0x6383 +0x917D 0x633F +0x917E 0x63BB +0x9180 0x64CD +0x9181 0x65E9 +0x9182 0x66F9 +0x9183 0x5DE3 +0x9184 0x69CD +0x9185 0x69FD +0x9186 0x6F15 +0x9187 0x71E5 +0x9188 0x4E89 +0x9189 0x75E9 +0x918A 0x76F8 +0x918B 0x7A93 +0x918C 0x7CDF +0x918D 0x7DCF +0x918E 0x7D9C +0x918F 0x8061 +0x9190 0x8349 +0x9191 0x8358 +0x9192 0x846C +0x9193 0x84BC +0x9194 0x85FB +0x9195 0x88C5 +0x9196 0x8D70 +0x9197 0x9001 +0x9198 0x906D +0x9199 0x9397 +0x919A 0x971C +0x919B 0x9A12 +0x919C 0x50CF +0x919D 0x5897 +0x919E 0x618E +0x919F 0x81D3 +0x91A0 0x8535 +0x91A1 0x8D08 +0x91A2 0x9020 +0x91A3 0x4FC3 +0x91A4 0x5074 +0x91A5 0x5247 +0x91A6 0x5373 +0x91A7 0x606F +0x91A8 0x6349 +0x91A9 0x675F +0x91AA 0x6E2C +0x91AB 0x8DB3 +0x91AC 0x901F +0x91AD 0x4FD7 +0x91AE 0x5C5E +0x91AF 0x8CCA +0x91B0 0x65CF +0x91B1 0x7D9A +0x91B2 0x5352 +0x91B3 0x8896 +0x91B4 0x5176 +0x91B5 0x63C3 +0x91B6 0x5B58 +0x91B7 0x5B6B +0x91B8 0x5C0A +0x91B9 0x640D +0x91BA 0x6751 +0x91BB 0x905C +0x91BC 0x4ED6 +0x91BD 0x591A +0x91BE 0x592A +0x91BF 0x6C70 +0x91C0 0x8A51 +0x91C1 0x553E +0x91C2 0x5815 +0x91C3 0x59A5 +0x91C4 0x60F0 +0x91C5 0x6253 +0x91C6 0x67C1 +0x91C7 0x8235 +0x91C8 0x6955 +0x91C9 0x9640 +0x91CA 0x99C4 +0x91CB 0x9A28 +0x91CC 0x4F53 +0x91CD 0x5806 +0x91CE 0x5BFE +0x91CF 0x8010 +0x91D0 0x5CB1 +0x91D1 0x5E2F +0x91D2 0x5F85 +0x91D3 0x6020 +0x91D4 0x614B +0x91D5 0x6234 +0x91D6 0x66FF +0x91D7 0x6CF0 +0x91D8 0x6EDE +0x91D9 0x80CE +0x91DA 0x817F +0x91DB 0x82D4 +0x91DC 0x888B +0x91DD 0x8CB8 +0x91DE 0x9000 +0x91DF 0x902E +0x91E0 0x968A +0x91E1 0x9EDB +0x91E2 0x9BDB +0x91E3 0x4EE3 +0x91E4 0x53F0 +0x91E5 0x5927 +0x91E6 0x7B2C +0x91E7 0x918D +0x91E8 0x984C +0x91E9 0x9DF9 +0x91EA 0x6EDD +0x91EB 0x7027 +0x91EC 0x5353 +0x91ED 0x5544 +0x91EE 0x5B85 +0x91EF 0x6258 +0x91F0 0x629E +0x91F1 0x62D3 +0x91F2 0x6CA2 +0x91F3 0x6FEF +0x91F4 0x7422 +0x91F5 0x8A17 +0x91F6 0x9438 +0x91F7 0x6FC1 +0x91F8 0x8AFE +0x91F9 0x8338 +0x91FA 0x51E7 +0x91FB 0x86F8 +0x91FC 0x53EA +0x9240 0x53E9 +0x9241 0x4F46 +0x9242 0x9054 +0x9243 0x8FB0 +0x9244 0x596A +0x9245 0x8131 +0x9246 0x5DFD +0x9247 0x7AEA +0x9248 0x8FBF +0x9249 0x68DA +0x924A 0x8C37 +0x924B 0x72F8 +0x924C 0x9C48 +0x924D 0x6A3D +0x924E 0x8AB0 +0x924F 0x4E39 +0x9250 0x5358 +0x9251 0x5606 +0x9252 0x5766 +0x9253 0x62C5 +0x9254 0x63A2 +0x9255 0x65E6 +0x9256 0x6B4E +0x9257 0x6DE1 +0x9258 0x6E5B +0x9259 0x70AD +0x925A 0x77ED +0x925B 0x7AEF +0x925C 0x7BAA +0x925D 0x7DBB +0x925E 0x803D +0x925F 0x80C6 +0x9260 0x86CB +0x9261 0x8A95 +0x9262 0x935B +0x9263 0x56E3 +0x9264 0x58C7 +0x9265 0x5F3E +0x9266 0x65AD +0x9267 0x6696 +0x9268 0x6A80 +0x9269 0x6BB5 +0x926A 0x7537 +0x926B 0x8AC7 +0x926C 0x5024 +0x926D 0x77E5 +0x926E 0x5730 +0x926F 0x5F1B +0x9270 0x6065 +0x9271 0x667A +0x9272 0x6C60 +0x9273 0x75F4 +0x9274 0x7A1A +0x9275 0x7F6E +0x9276 0x81F4 +0x9277 0x8718 +0x9278 0x9045 +0x9279 0x99B3 +0x927A 0x7BC9 +0x927B 0x755C +0x927C 0x7AF9 +0x927D 0x7B51 +0x927E 0x84C4 +0x9280 0x9010 +0x9281 0x79E9 +0x9282 0x7A92 +0x9283 0x8336 +0x9284 0x5AE1 +0x9285 0x7740 +0x9286 0x4E2D +0x9287 0x4EF2 +0x9288 0x5B99 +0x9289 0x5FE0 +0x928A 0x62BD +0x928B 0x663C +0x928C 0x67F1 +0x928D 0x6CE8 +0x928E 0x866B +0x928F 0x8877 +0x9290 0x8A3B +0x9291 0x914E +0x9292 0x92F3 +0x9293 0x99D0 +0x9294 0x6A17 +0x9295 0x7026 +0x9296 0x732A +0x9297 0x82E7 +0x9298 0x8457 +0x9299 0x8CAF +0x929A 0x4E01 +0x929B 0x5146 +0x929C 0x51CB +0x929D 0x558B +0x929E 0x5BF5 +0x929F 0x5E16 +0x92A0 0x5E33 +0x92A1 0x5E81 +0x92A2 0x5F14 +0x92A3 0x5F35 +0x92A4 0x5F6B +0x92A5 0x5FB4 +0x92A6 0x61F2 +0x92A7 0x6311 +0x92A8 0x66A2 +0x92A9 0x671D +0x92AA 0x6F6E +0x92AB 0x7252 +0x92AC 0x753A +0x92AD 0x773A +0x92AE 0x8074 +0x92AF 0x8139 +0x92B0 0x8178 +0x92B1 0x8776 +0x92B2 0x8ABF +0x92B3 0x8ADC +0x92B4 0x8D85 +0x92B5 0x8DF3 +0x92B6 0x929A +0x92B7 0x9577 +0x92B8 0x9802 +0x92B9 0x9CE5 +0x92BA 0x52C5 +0x92BB 0x6357 +0x92BC 0x76F4 +0x92BD 0x6715 +0x92BE 0x6C88 +0x92BF 0x73CD +0x92C0 0x8CC3 +0x92C1 0x93AE +0x92C2 0x9673 +0x92C3 0x6D25 +0x92C4 0x589C +0x92C5 0x690E +0x92C6 0x69CC +0x92C7 0x8FFD +0x92C8 0x939A +0x92C9 0x75DB +0x92CA 0x901A +0x92CB 0x585A +0x92CC 0x6802 +0x92CD 0x63B4 +0x92CE 0x69FB +0x92CF 0x4F43 +0x92D0 0x6F2C +0x92D1 0x67D8 +0x92D2 0x8FBB +0x92D3 0x8526 +0x92D4 0x7DB4 +0x92D5 0x9354 +0x92D6 0x693F +0x92D7 0x6F70 +0x92D8 0x576A +0x92D9 0x58F7 +0x92DA 0x5B2C +0x92DB 0x7D2C +0x92DC 0x722A +0x92DD 0x540A +0x92DE 0x91E3 +0x92DF 0x9DB4 +0x92E0 0x4EAD +0x92E1 0x4F4E +0x92E2 0x505C +0x92E3 0x5075 +0x92E4 0x5243 +0x92E5 0x8C9E +0x92E6 0x5448 +0x92E7 0x5824 +0x92E8 0x5B9A +0x92E9 0x5E1D +0x92EA 0x5E95 +0x92EB 0x5EAD +0x92EC 0x5EF7 +0x92ED 0x5F1F +0x92EE 0x608C +0x92EF 0x62B5 +0x92F0 0x633A +0x92F1 0x63D0 +0x92F2 0x68AF +0x92F3 0x6C40 +0x92F4 0x7887 +0x92F5 0x798E +0x92F6 0x7A0B +0x92F7 0x7DE0 +0x92F8 0x8247 +0x92F9 0x8A02 +0x92FA 0x8AE6 +0x92FB 0x8E44 +0x92FC 0x9013 +0x9340 0x90B8 +0x9341 0x912D +0x9342 0x91D8 +0x9343 0x9F0E +0x9344 0x6CE5 +0x9345 0x6458 +0x9346 0x64E2 +0x9347 0x6575 +0x9348 0x6EF4 +0x9349 0x7684 +0x934A 0x7B1B +0x934B 0x9069 +0x934C 0x93D1 +0x934D 0x6EBA +0x934E 0x54F2 +0x934F 0x5FB9 +0x9350 0x64A4 +0x9351 0x8F4D +0x9352 0x8FED +0x9353 0x9244 +0x9354 0x5178 +0x9355 0x586B +0x9356 0x5929 +0x9357 0x5C55 +0x9358 0x5E97 +0x9359 0x6DFB +0x935A 0x7E8F +0x935B 0x751C +0x935C 0x8CBC +0x935D 0x8EE2 +0x935E 0x985B +0x935F 0x70B9 +0x9360 0x4F1D +0x9361 0x6BBF +0x9362 0x6FB1 +0x9363 0x7530 +0x9364 0x96FB +0x9365 0x514E +0x9366 0x5410 +0x9367 0x5835 +0x9368 0x5857 +0x9369 0x59AC +0x936A 0x5C60 +0x936B 0x5F92 +0x936C 0x6597 +0x936D 0x675C +0x936E 0x6E21 +0x936F 0x767B +0x9370 0x83DF +0x9371 0x8CED +0x9372 0x9014 +0x9373 0x90FD +0x9374 0x934D +0x9375 0x7825 +0x9376 0x783A +0x9377 0x52AA +0x9378 0x5EA6 +0x9379 0x571F +0x937A 0x5974 +0x937B 0x6012 +0x937C 0x5012 +0x937D 0x515A +0x937E 0x51AC +0x9380 0x51CD +0x9381 0x5200 +0x9382 0x5510 +0x9383 0x5854 +0x9384 0x5858 +0x9385 0x5957 +0x9386 0x5B95 +0x9387 0x5CF6 +0x9388 0x5D8B +0x9389 0x60BC +0x938A 0x6295 +0x938B 0x642D +0x938C 0x6771 +0x938D 0x6843 +0x938E 0x68BC +0x938F 0x68DF +0x9390 0x76D7 +0x9391 0x6DD8 +0x9392 0x6E6F +0x9393 0x6D9B +0x9394 0x706F +0x9395 0x71C8 +0x9396 0x5F53 +0x9397 0x75D8 +0x9398 0x7977 +0x9399 0x7B49 +0x939A 0x7B54 +0x939B 0x7B52 +0x939C 0x7CD6 +0x939D 0x7D71 +0x939E 0x5230 +0x939F 0x8463 +0x93A0 0x8569 +0x93A1 0x85E4 +0x93A2 0x8A0E +0x93A3 0x8B04 +0x93A4 0x8C46 +0x93A5 0x8E0F +0x93A6 0x9003 +0x93A7 0x900F +0x93A8 0x9419 +0x93A9 0x9676 +0x93AA 0x982D +0x93AB 0x9A30 +0x93AC 0x95D8 +0x93AD 0x50CD +0x93AE 0x52D5 +0x93AF 0x540C +0x93B0 0x5802 +0x93B1 0x5C0E +0x93B2 0x61A7 +0x93B3 0x649E +0x93B4 0x6D1E +0x93B5 0x77B3 +0x93B6 0x7AE5 +0x93B7 0x80F4 +0x93B8 0x8404 +0x93B9 0x9053 +0x93BA 0x9285 +0x93BB 0x5CE0 +0x93BC 0x9D07 +0x93BD 0x533F +0x93BE 0x5F97 +0x93BF 0x5FB3 +0x93C0 0x6D9C +0x93C1 0x7279 +0x93C2 0x7763 +0x93C3 0x79BF +0x93C4 0x7BE4 +0x93C5 0x6BD2 +0x93C6 0x72EC +0x93C7 0x8AAD +0x93C8 0x6803 +0x93C9 0x6A61 +0x93CA 0x51F8 +0x93CB 0x7A81 +0x93CC 0x6934 +0x93CD 0x5C4A +0x93CE 0x9CF6 +0x93CF 0x82EB +0x93D0 0x5BC5 +0x93D1 0x9149 +0x93D2 0x701E +0x93D3 0x5678 +0x93D4 0x5C6F +0x93D5 0x60C7 +0x93D6 0x6566 +0x93D7 0x6C8C +0x93D8 0x8C5A +0x93D9 0x9041 +0x93DA 0x9813 +0x93DB 0x5451 +0x93DC 0x66C7 +0x93DD 0x920D +0x93DE 0x5948 +0x93DF 0x90A3 +0x93E0 0x5185 +0x93E1 0x4E4D +0x93E2 0x51EA +0x93E3 0x8599 +0x93E4 0x8B0E +0x93E5 0x7058 +0x93E6 0x637A +0x93E7 0x934B +0x93E8 0x6962 +0x93E9 0x99B4 +0x93EA 0x7E04 +0x93EB 0x7577 +0x93EC 0x5357 +0x93ED 0x6960 +0x93EE 0x8EDF +0x93EF 0x96E3 +0x93F0 0x6C5D +0x93F1 0x4E8C +0x93F2 0x5C3C +0x93F3 0x5F10 +0x93F4 0x8FE9 +0x93F5 0x5302 +0x93F6 0x8CD1 +0x93F7 0x8089 +0x93F8 0x8679 +0x93F9 0x5EFF +0x93FA 0x65E5 +0x93FB 0x4E73 +0x93FC 0x5165 +0x9440 0x5982 +0x9441 0x5C3F +0x9442 0x97EE +0x9443 0x4EFB +0x9444 0x598A +0x9445 0x5FCD +0x9446 0x8A8D +0x9447 0x6FE1 +0x9448 0x79B0 +0x9449 0x7962 +0x944A 0x5BE7 +0x944B 0x8471 +0x944C 0x732B +0x944D 0x71B1 +0x944E 0x5E74 +0x944F 0x5FF5 +0x9450 0x637B +0x9451 0x649A +0x9452 0x71C3 +0x9453 0x7C98 +0x9454 0x4E43 +0x9455 0x5EFC +0x9456 0x4E4B +0x9457 0x57DC +0x9458 0x56A2 +0x9459 0x60A9 +0x945A 0x6FC3 +0x945B 0x7D0D +0x945C 0x80FD +0x945D 0x8133 +0x945E 0x81BF +0x945F 0x8FB2 +0x9460 0x8997 +0x9461 0x86A4 +0x9462 0x5DF4 +0x9463 0x628A +0x9464 0x64AD +0x9465 0x8987 +0x9466 0x6777 +0x9467 0x6CE2 +0x9468 0x6D3E +0x9469 0x7436 +0x946A 0x7834 +0x946B 0x5A46 +0x946C 0x7F75 +0x946D 0x82AD +0x946E 0x99AC +0x946F 0x4FF3 +0x9470 0x5EC3 +0x9471 0x62DD +0x9472 0x6392 +0x9473 0x6557 +0x9474 0x676F +0x9475 0x76C3 +0x9476 0x724C +0x9477 0x80CC +0x9478 0x80BA +0x9479 0x8F29 +0x947A 0x914D +0x947B 0x500D +0x947C 0x57F9 +0x947D 0x5A92 +0x947E 0x6885 +0x9480 0x6973 +0x9481 0x7164 +0x9482 0x72FD +0x9483 0x8CB7 +0x9484 0x58F2 +0x9485 0x8CE0 +0x9486 0x966A +0x9487 0x9019 +0x9488 0x877F +0x9489 0x79E4 +0x948A 0x77E7 +0x948B 0x8429 +0x948C 0x4F2F +0x948D 0x5265 +0x948E 0x535A +0x948F 0x62CD +0x9490 0x67CF +0x9491 0x6CCA +0x9492 0x767D +0x9493 0x7B94 +0x9494 0x7C95 +0x9495 0x8236 +0x9496 0x8584 +0x9497 0x8FEB +0x9498 0x66DD +0x9499 0x6F20 +0x949A 0x7206 +0x949B 0x7E1B +0x949C 0x83AB +0x949D 0x99C1 +0x949E 0x9EA6 +0x949F 0x51FD +0x94A0 0x7BB1 +0x94A1 0x7872 +0x94A2 0x7BB8 +0x94A3 0x8087 +0x94A4 0x7B48 +0x94A5 0x6AE8 +0x94A6 0x5E61 +0x94A7 0x808C +0x94A8 0x7551 +0x94A9 0x7560 +0x94AA 0x516B +0x94AB 0x9262 +0x94AC 0x6E8C +0x94AD 0x767A +0x94AE 0x9197 +0x94AF 0x9AEA +0x94B0 0x4F10 +0x94B1 0x7F70 +0x94B2 0x629C +0x94B3 0x7B4F +0x94B4 0x95A5 +0x94B5 0x9CE9 +0x94B6 0x567A +0x94B7 0x5859 +0x94B8 0x86E4 +0x94B9 0x96BC +0x94BA 0x4F34 +0x94BB 0x5224 +0x94BC 0x534A +0x94BD 0x53CD +0x94BE 0x53DB +0x94BF 0x5E06 +0x94C0 0x642C +0x94C1 0x6591 +0x94C2 0x677F +0x94C3 0x6C3E +0x94C4 0x6C4E +0x94C5 0x7248 +0x94C6 0x72AF +0x94C7 0x73ED +0x94C8 0x7554 +0x94C9 0x7E41 +0x94CA 0x822C +0x94CB 0x85E9 +0x94CC 0x8CA9 +0x94CD 0x7BC4 +0x94CE 0x91C6 +0x94CF 0x7169 +0x94D0 0x9812 +0x94D1 0x98EF +0x94D2 0x633D +0x94D3 0x6669 +0x94D4 0x756A +0x94D5 0x76E4 +0x94D6 0x78D0 +0x94D7 0x8543 +0x94D8 0x86EE +0x94D9 0x532A +0x94DA 0x5351 +0x94DB 0x5426 +0x94DC 0x5983 +0x94DD 0x5E87 +0x94DE 0x5F7C +0x94DF 0x60B2 +0x94E0 0x6249 +0x94E1 0x6279 +0x94E2 0x62AB +0x94E3 0x6590 +0x94E4 0x6BD4 +0x94E5 0x6CCC +0x94E6 0x75B2 +0x94E7 0x76AE +0x94E8 0x7891 +0x94E9 0x79D8 +0x94EA 0x7DCB +0x94EB 0x7F77 +0x94EC 0x80A5 +0x94ED 0x88AB +0x94EE 0x8AB9 +0x94EF 0x8CBB +0x94F0 0x907F +0x94F1 0x975E +0x94F2 0x98DB +0x94F3 0x6A0B +0x94F4 0x7C38 +0x94F5 0x5099 +0x94F6 0x5C3E +0x94F7 0x5FAE +0x94F8 0x6787 +0x94F9 0x6BD8 +0x94FA 0x7435 +0x94FB 0x7709 +0x94FC 0x7F8E +0x9540 0x9F3B +0x9541 0x67CA +0x9542 0x7A17 +0x9543 0x5339 +0x9544 0x758B +0x9545 0x9AED +0x9546 0x5F66 +0x9547 0x819D +0x9548 0x83F1 +0x9549 0x8098 +0x954A 0x5F3C +0x954B 0x5FC5 +0x954C 0x7562 +0x954D 0x7B46 +0x954E 0x903C +0x954F 0x6867 +0x9550 0x59EB +0x9551 0x5A9B +0x9552 0x7D10 +0x9553 0x767E +0x9554 0x8B2C +0x9555 0x4FF5 +0x9556 0x5F6A +0x9557 0x6A19 +0x9558 0x6C37 +0x9559 0x6F02 +0x955A 0x74E2 +0x955B 0x7968 +0x955C 0x8868 +0x955D 0x8A55 +0x955E 0x8C79 +0x955F 0x5EDF +0x9560 0x63CF +0x9561 0x75C5 +0x9562 0x79D2 +0x9563 0x82D7 +0x9564 0x9328 +0x9565 0x92F2 +0x9566 0x849C +0x9567 0x86ED +0x9568 0x9C2D +0x9569 0x54C1 +0x956A 0x5F6C +0x956B 0x658C +0x956C 0x6D5C +0x956D 0x7015 +0x956E 0x8CA7 +0x956F 0x8CD3 +0x9570 0x983B +0x9571 0x654F +0x9572 0x74F6 +0x9573 0x4E0D +0x9574 0x4ED8 +0x9575 0x57E0 +0x9576 0x592B +0x9577 0x5A66 +0x9578 0x5BCC +0x9579 0x51A8 +0x957A 0x5E03 +0x957B 0x5E9C +0x957C 0x6016 +0x957D 0x6276 +0x957E 0x6577 +0x9580 0x65A7 +0x9581 0x666E +0x9582 0x6D6E +0x9583 0x7236 +0x9584 0x7B26 +0x9585 0x8150 +0x9586 0x819A +0x9587 0x8299 +0x9588 0x8B5C +0x9589 0x8CA0 +0x958A 0x8CE6 +0x958B 0x8D74 +0x958C 0x961C +0x958D 0x9644 +0x958E 0x4FAE +0x958F 0x64AB +0x9590 0x6B66 +0x9591 0x821E +0x9592 0x8461 +0x9593 0x856A +0x9594 0x90E8 +0x9595 0x5C01 +0x9596 0x6953 +0x9597 0x98A8 +0x9598 0x847A +0x9599 0x8557 +0x959A 0x4F0F +0x959B 0x526F +0x959C 0x5FA9 +0x959D 0x5E45 +0x959E 0x670D +0x959F 0x798F +0x95A0 0x8179 +0x95A1 0x8907 +0x95A2 0x8986 +0x95A3 0x6DF5 +0x95A4 0x5F17 +0x95A5 0x6255 +0x95A6 0x6CB8 +0x95A7 0x4ECF +0x95A8 0x7269 +0x95A9 0x9B92 +0x95AA 0x5206 +0x95AB 0x543B +0x95AC 0x5674 +0x95AD 0x58B3 +0x95AE 0x61A4 +0x95AF 0x626E +0x95B0 0x711A +0x95B1 0x596E +0x95B2 0x7C89 +0x95B3 0x7CDE +0x95B4 0x7D1B +0x95B5 0x96F0 +0x95B6 0x6587 +0x95B7 0x805E +0x95B8 0x4E19 +0x95B9 0x4F75 +0x95BA 0x5175 +0x95BB 0x5840 +0x95BC 0x5E63 +0x95BD 0x5E73 +0x95BE 0x5F0A +0x95BF 0x67C4 +0x95C0 0x4E26 +0x95C1 0x853D +0x95C2 0x9589 +0x95C3 0x965B +0x95C4 0x7C73 +0x95C5 0x9801 +0x95C6 0x50FB +0x95C7 0x58C1 +0x95C8 0x7656 +0x95C9 0x78A7 +0x95CA 0x5225 +0x95CB 0x77A5 +0x95CC 0x8511 +0x95CD 0x7B86 +0x95CE 0x504F +0x95CF 0x5909 +0x95D0 0x7247 +0x95D1 0x7BC7 +0x95D2 0x7DE8 +0x95D3 0x8FBA +0x95D4 0x8FD4 +0x95D5 0x904D +0x95D6 0x4FBF +0x95D7 0x52C9 +0x95D8 0x5A29 +0x95D9 0x5F01 +0x95DA 0x97AD +0x95DB 0x4FDD +0x95DC 0x8217 +0x95DD 0x92EA +0x95DE 0x5703 +0x95DF 0x6355 +0x95E0 0x6B69 +0x95E1 0x752B +0x95E2 0x88DC +0x95E3 0x8F14 +0x95E4 0x7A42 +0x95E5 0x52DF +0x95E6 0x5893 +0x95E7 0x6155 +0x95E8 0x620A +0x95E9 0x66AE +0x95EA 0x6BCD +0x95EB 0x7C3F +0x95EC 0x83E9 +0x95ED 0x5023 +0x95EE 0x4FF8 +0x95EF 0x5305 +0x95F0 0x5446 +0x95F1 0x5831 +0x95F2 0x5949 +0x95F3 0x5B9D +0x95F4 0x5CF0 +0x95F5 0x5CEF +0x95F6 0x5D29 +0x95F7 0x5E96 +0x95F8 0x62B1 +0x95F9 0x6367 +0x95FA 0x653E +0x95FB 0x65B9 +0x95FC 0x670B +0x9640 0x6CD5 +0x9641 0x6CE1 +0x9642 0x70F9 +0x9643 0x7832 +0x9644 0x7E2B +0x9645 0x80DE +0x9646 0x82B3 +0x9647 0x840C +0x9648 0x84EC +0x9649 0x8702 +0x964A 0x8912 +0x964B 0x8A2A +0x964C 0x8C4A +0x964D 0x90A6 +0x964E 0x92D2 +0x964F 0x98FD +0x9650 0x9CF3 +0x9651 0x9D6C +0x9652 0x4E4F +0x9653 0x4EA1 +0x9654 0x508D +0x9655 0x5256 +0x9656 0x574A +0x9657 0x59A8 +0x9658 0x5E3D +0x9659 0x5FD8 +0x965A 0x5FD9 +0x965B 0x623F +0x965C 0x66B4 +0x965D 0x671B +0x965E 0x67D0 +0x965F 0x68D2 +0x9660 0x5192 +0x9661 0x7D21 +0x9662 0x80AA +0x9663 0x81A8 +0x9664 0x8B00 +0x9665 0x8C8C +0x9666 0x8CBF +0x9667 0x927E +0x9668 0x9632 +0x9669 0x5420 +0x966A 0x982C +0x966B 0x5317 +0x966C 0x50D5 +0x966D 0x535C +0x966E 0x58A8 +0x966F 0x64B2 +0x9670 0x6734 +0x9671 0x7267 +0x9672 0x7766 +0x9673 0x7A46 +0x9674 0x91E6 +0x9675 0x52C3 +0x9676 0x6CA1 +0x9677 0x6B86 +0x9678 0x5800 +0x9679 0x5E4C +0x967A 0x5954 +0x967B 0x672C +0x967C 0x7FFB +0x967D 0x51E1 +0x967E 0x76C6 +0x9680 0x6469 +0x9681 0x78E8 +0x9682 0x9B54 +0x9683 0x9EBB +0x9684 0x57CB +0x9685 0x59B9 +0x9686 0x6627 +0x9687 0x679A +0x9688 0x6BCE +0x9689 0x54E9 +0x968A 0x69D9 +0x968B 0x5E55 +0x968C 0x819C +0x968D 0x6795 +0x968E 0x9BAA +0x968F 0x67FE +0x9690 0x9C52 +0x9691 0x685D +0x9692 0x4EA6 +0x9693 0x4FE3 +0x9694 0x53C8 +0x9695 0x62B9 +0x9696 0x672B +0x9697 0x6CAB +0x9698 0x8FC4 +0x9699 0x4FAD +0x969A 0x7E6D +0x969B 0x9EBF +0x969C 0x4E07 +0x969D 0x6162 +0x969E 0x6E80 +0x969F 0x6F2B +0x96A0 0x8513 +0x96A1 0x5473 +0x96A2 0x672A +0x96A3 0x9B45 +0x96A4 0x5DF3 +0x96A5 0x7B95 +0x96A6 0x5CAC +0x96A7 0x5BC6 +0x96A8 0x871C +0x96A9 0x6E4A +0x96AA 0x84D1 +0x96AB 0x7A14 +0x96AC 0x8108 +0x96AD 0x5999 +0x96AE 0x7C8D +0x96AF 0x6C11 +0x96B0 0x7720 +0x96B1 0x52D9 +0x96B2 0x5922 +0x96B3 0x7121 +0x96B4 0x725F +0x96B5 0x77DB +0x96B6 0x9727 +0x96B7 0x9D61 +0x96B8 0x690B +0x96B9 0x5A7F +0x96BA 0x5A18 +0x96BB 0x51A5 +0x96BC 0x540D +0x96BD 0x547D +0x96BE 0x660E +0x96BF 0x76DF +0x96C0 0x8FF7 +0x96C1 0x9298 +0x96C2 0x9CF4 +0x96C3 0x59EA +0x96C4 0x725D +0x96C5 0x6EC5 +0x96C6 0x514D +0x96C7 0x68C9 +0x96C8 0x7DBF +0x96C9 0x7DEC +0x96CA 0x9762 +0x96CB 0x9EBA +0x96CC 0x6478 +0x96CD 0x6A21 +0x96CE 0x8302 +0x96CF 0x5984 +0x96D0 0x5B5F +0x96D1 0x6BDB +0x96D2 0x731B +0x96D3 0x76F2 +0x96D4 0x7DB2 +0x96D5 0x8017 +0x96D6 0x8499 +0x96D7 0x5132 +0x96D8 0x6728 +0x96D9 0x9ED9 +0x96DA 0x76EE +0x96DB 0x6762 +0x96DC 0x52FF +0x96DD 0x9905 +0x96DE 0x5C24 +0x96DF 0x623B +0x96E0 0x7C7E +0x96E1 0x8CB0 +0x96E2 0x554F +0x96E3 0x60B6 +0x96E4 0x7D0B +0x96E5 0x9580 +0x96E6 0x5301 +0x96E7 0x4E5F +0x96E8 0x51B6 +0x96E9 0x591C +0x96EA 0x723A +0x96EB 0x8036 +0x96EC 0x91CE +0x96ED 0x5F25 +0x96EE 0x77E2 +0x96EF 0x5384 +0x96F0 0x5F79 +0x96F1 0x7D04 +0x96F2 0x85AC +0x96F3 0x8A33 +0x96F4 0x8E8D +0x96F5 0x9756 +0x96F6 0x67F3 +0x96F7 0x85AE +0x96F8 0x9453 +0x96F9 0x6109 +0x96FA 0x6108 +0x96FB 0x6CB9 +0x96FC 0x7652 +0x9740 0x8AED +0x9741 0x8F38 +0x9742 0x552F +0x9743 0x4F51 +0x9744 0x512A +0x9745 0x52C7 +0x9746 0x53CB +0x9747 0x5BA5 +0x9748 0x5E7D +0x9749 0x60A0 +0x974A 0x6182 +0x974B 0x63D6 +0x974C 0x6709 +0x974D 0x67DA +0x974E 0x6E67 +0x974F 0x6D8C +0x9750 0x7336 +0x9751 0x7337 +0x9752 0x7531 +0x9753 0x7950 +0x9754 0x88D5 +0x9755 0x8A98 +0x9756 0x904A +0x9757 0x9091 +0x9758 0x90F5 +0x9759 0x96C4 +0x975A 0x878D +0x975B 0x5915 +0x975C 0x4E88 +0x975D 0x4F59 +0x975E 0x4E0E +0x975F 0x8A89 +0x9760 0x8F3F +0x9761 0x9810 +0x9762 0x50AD +0x9763 0x5E7C +0x9764 0x5996 +0x9765 0x5BB9 +0x9766 0x5EB8 +0x9767 0x63DA +0x9768 0x63FA +0x9769 0x64C1 +0x976A 0x66DC +0x976B 0x694A +0x976C 0x69D8 +0x976D 0x6D0B +0x976E 0x6EB6 +0x976F 0x7194 +0x9770 0x7528 +0x9771 0x7AAF +0x9772 0x7F8A +0x9773 0x8000 +0x9774 0x8449 +0x9775 0x84C9 +0x9776 0x8981 +0x9777 0x8B21 +0x9778 0x8E0A +0x9779 0x9065 +0x977A 0x967D +0x977B 0x990A +0x977C 0x617E +0x977D 0x6291 +0x977E 0x6B32 +0x9780 0x6C83 +0x9781 0x6D74 +0x9782 0x7FCC +0x9783 0x7FFC +0x9784 0x6DC0 +0x9785 0x7F85 +0x9786 0x87BA +0x9787 0x88F8 +0x9788 0x6765 +0x9789 0x83B1 +0x978A 0x983C +0x978B 0x96F7 +0x978C 0x6D1B +0x978D 0x7D61 +0x978E 0x843D +0x978F 0x916A +0x9790 0x4E71 +0x9791 0x5375 +0x9792 0x5D50 +0x9793 0x6B04 +0x9794 0x6FEB +0x9795 0x85CD +0x9796 0x862D +0x9797 0x89A7 +0x9798 0x5229 +0x9799 0x540F +0x979A 0x5C65 +0x979B 0x674E +0x979C 0x68A8 +0x979D 0x7406 +0x979E 0x7483 +0x979F 0x75E2 +0x97A0 0x88CF +0x97A1 0x88E1 +0x97A2 0x91CC +0x97A3 0x96E2 +0x97A4 0x9678 +0x97A5 0x5F8B +0x97A6 0x7387 +0x97A7 0x7ACB +0x97A8 0x844E +0x97A9 0x63A0 +0x97AA 0x7565 +0x97AB 0x5289 +0x97AC 0x6D41 +0x97AD 0x6E9C +0x97AE 0x7409 +0x97AF 0x7559 +0x97B0 0x786B +0x97B1 0x7C92 +0x97B2 0x9686 +0x97B3 0x7ADC +0x97B4 0x9F8D +0x97B5 0x4FB6 +0x97B6 0x616E +0x97B7 0x65C5 +0x97B8 0x865C +0x97B9 0x4E86 +0x97BA 0x4EAE +0x97BB 0x50DA +0x97BC 0x4E21 +0x97BD 0x51CC +0x97BE 0x5BEE +0x97BF 0x6599 +0x97C0 0x6881 +0x97C1 0x6DBC +0x97C2 0x731F +0x97C3 0x7642 +0x97C4 0x77AD +0x97C5 0x7A1C +0x97C6 0x7CE7 +0x97C7 0x826F +0x97C8 0x8AD2 +0x97C9 0x907C +0x97CA 0x91CF +0x97CB 0x9675 +0x97CC 0x9818 +0x97CD 0x529B +0x97CE 0x7DD1 +0x97CF 0x502B +0x97D0 0x5398 +0x97D1 0x6797 +0x97D2 0x6DCB +0x97D3 0x71D0 +0x97D4 0x7433 +0x97D5 0x81E8 +0x97D6 0x8F2A +0x97D7 0x96A3 +0x97D8 0x9C57 +0x97D9 0x9E9F +0x97DA 0x7460 +0x97DB 0x5841 +0x97DC 0x6D99 +0x97DD 0x7D2F +0x97DE 0x985E +0x97DF 0x4EE4 +0x97E0 0x4F36 +0x97E1 0x4F8B +0x97E2 0x51B7 +0x97E3 0x52B1 +0x97E4 0x5DBA +0x97E5 0x601C +0x97E6 0x73B2 +0x97E7 0x793C +0x97E8 0x82D3 +0x97E9 0x9234 +0x97EA 0x96B7 +0x97EB 0x96F6 +0x97EC 0x970A +0x97ED 0x9E97 +0x97EE 0x9F62 +0x97EF 0x66A6 +0x97F0 0x6B74 +0x97F1 0x5217 +0x97F2 0x52A3 +0x97F3 0x70C8 +0x97F4 0x88C2 +0x97F5 0x5EC9 +0x97F6 0x604B +0x97F7 0x6190 +0x97F8 0x6F23 +0x97F9 0x7149 +0x97FA 0x7C3E +0x97FB 0x7DF4 +0x97FC 0x806F +0x9840 0x84EE +0x9841 0x9023 +0x9842 0x932C +0x9843 0x5442 +0x9844 0x9B6F +0x9845 0x6AD3 +0x9846 0x7089 +0x9847 0x8CC2 +0x9848 0x8DEF +0x9849 0x9732 +0x984A 0x52B4 +0x984B 0x5A41 +0x984C 0x5ECA +0x984D 0x5F04 +0x984E 0x6717 +0x984F 0x697C +0x9850 0x6994 +0x9851 0x6D6A +0x9852 0x6F0F +0x9853 0x7262 +0x9854 0x72FC +0x9855 0x7BED +0x9856 0x8001 +0x9857 0x807E +0x9858 0x874B +0x9859 0x90CE +0x985A 0x516D +0x985B 0x9E93 +0x985C 0x7984 +0x985D 0x808B +0x985E 0x9332 +0x985F 0x8AD6 +0x9860 0x502D +0x9861 0x548C +0x9862 0x8A71 +0x9863 0x6B6A +0x9864 0x8CC4 +0x9865 0x8107 +0x9866 0x60D1 +0x9867 0x67A0 +0x9868 0x9DF2 +0x9869 0x4E99 +0x986A 0x4E98 +0x986B 0x9C10 +0x986C 0x8A6B +0x986D 0x85C1 +0x986E 0x8568 +0x986F 0x6900 +0x9870 0x6E7E +0x9871 0x7897 +0x9872 0x8155 +0x9873 0x20B9F +0x9874 0x5B41 +0x9875 0x5B56 +0x9876 0x5B7D +0x9877 0x5B93 +0x9878 0x5BD8 +0x9879 0x5BEC +0x987A 0x5C12 +0x987B 0x5C1E +0x987C 0x5C23 +0x987D 0x5C2B +0x987E 0x378D +0x9880 0x5C62 +0x9881 0xFA3B +0x9882 0xFA3C +0x9883 0x216B4 +0x9884 0x5C7A +0x9885 0x5C8F +0x9886 0x5C9F +0x9887 0x5CA3 +0x9888 0x5CAA +0x9889 0x5CBA +0x988A 0x5CCB +0x988B 0x5CD0 +0x988C 0x5CD2 +0x988D 0x5CF4 +0x988E 0x21E34 +0x988F 0x37E2 +0x9890 0x5D0D +0x9891 0x5D27 +0x9892 0xFA11 +0x9893 0x5D46 +0x9894 0x5D47 +0x9895 0x5D53 +0x9896 0x5D4A +0x9897 0x5D6D +0x9898 0x5D81 +0x9899 0x5DA0 +0x989A 0x5DA4 +0x989B 0x5DA7 +0x989C 0x5DB8 +0x989D 0x5DCB +0x989E 0x541E +0x989F 0x5F0C +0x98A0 0x4E10 +0x98A1 0x4E15 +0x98A2 0x4E2A +0x98A3 0x4E31 +0x98A4 0x4E36 +0x98A5 0x4E3C +0x98A6 0x4E3F +0x98A7 0x4E42 +0x98A8 0x4E56 +0x98A9 0x4E58 +0x98AA 0x4E82 +0x98AB 0x4E85 +0x98AC 0x8C6B +0x98AD 0x4E8A +0x98AE 0x8212 +0x98AF 0x5F0D +0x98B0 0x4E8E +0x98B1 0x4E9E +0x98B2 0x4E9F +0x98B3 0x4EA0 +0x98B4 0x4EA2 +0x98B5 0x4EB0 +0x98B6 0x4EB3 +0x98B7 0x4EB6 +0x98B8 0x4ECE +0x98B9 0x4ECD +0x98BA 0x4EC4 +0x98BB 0x4EC6 +0x98BC 0x4EC2 +0x98BD 0x4ED7 +0x98BE 0x4EDE +0x98BF 0x4EED +0x98C0 0x4EDF +0x98C1 0x4EF7 +0x98C2 0x4F09 +0x98C3 0x4F5A +0x98C4 0x4F30 +0x98C5 0x4F5B +0x98C6 0x4F5D +0x98C7 0x4F57 +0x98C8 0x4F47 +0x98C9 0x4F76 +0x98CA 0x4F88 +0x98CB 0x4F8F +0x98CC 0x4F98 +0x98CD 0x4F7B +0x98CE 0x4F69 +0x98CF 0x4F70 +0x98D0 0x4F91 +0x98D1 0x4F6F +0x98D2 0x4F86 +0x98D3 0x4F96 +0x98D4 0x5118 +0x98D5 0x4FD4 +0x98D6 0x4FDF +0x98D7 0x4FCE +0x98D8 0x4FD8 +0x98D9 0x4FDB +0x98DA 0x4FD1 +0x98DB 0x4FDA +0x98DC 0x4FD0 +0x98DD 0x4FE4 +0x98DE 0x4FE5 +0x98DF 0x501A +0x98E0 0x5028 +0x98E1 0x5014 +0x98E2 0x502A +0x98E3 0x5025 +0x98E4 0x5005 +0x98E5 0x4F1C +0x98E6 0x4FF6 +0x98E7 0x5021 +0x98E8 0x5029 +0x98E9 0x502C +0x98EA 0x4FFE +0x98EB 0x4FEF +0x98EC 0x5011 +0x98ED 0x5006 +0x98EE 0x5043 +0x98EF 0x5047 +0x98F0 0x6703 +0x98F1 0x5055 +0x98F2 0x5050 +0x98F3 0x5048 +0x98F4 0x505A +0x98F5 0x5056 +0x98F6 0x506C +0x98F7 0x5078 +0x98F8 0x5080 +0x98F9 0x509A +0x98FA 0x5085 +0x98FB 0x50B4 +0x98FC 0x50B2 +0x9940 0x50C9 +0x9941 0x50CA +0x9942 0x50B3 +0x9943 0x50C2 +0x9944 0x50D6 +0x9945 0x50DE +0x9946 0x50E5 +0x9947 0x50ED +0x9948 0x50E3 +0x9949 0x50EE +0x994A 0x50F9 +0x994B 0x50F5 +0x994C 0x5109 +0x994D 0x5101 +0x994E 0x5102 +0x994F 0x5116 +0x9950 0x5115 +0x9951 0x5114 +0x9952 0x511A +0x9953 0x5121 +0x9954 0x513A +0x9955 0x5137 +0x9956 0x513C +0x9957 0x513B +0x9958 0x513F +0x9959 0x5140 +0x995A 0x5152 +0x995B 0x514C +0x995C 0x5154 +0x995D 0x5162 +0x995E 0x7AF8 +0x995F 0x5169 +0x9960 0x516A +0x9961 0x516E +0x9962 0x5180 +0x9963 0x5182 +0x9964 0x56D8 +0x9965 0x518C +0x9966 0x5189 +0x9967 0x518F +0x9968 0x5191 +0x9969 0x5193 +0x996A 0x5195 +0x996B 0x5196 +0x996C 0x51A4 +0x996D 0x51A6 +0x996E 0x51A2 +0x996F 0x51A9 +0x9970 0x51AA +0x9971 0x51AB +0x9972 0x51B3 +0x9973 0x51B1 +0x9974 0x51B2 +0x9975 0x51B0 +0x9976 0x51B5 +0x9977 0x51BD +0x9978 0x51C5 +0x9979 0x51C9 +0x997A 0x51DB +0x997B 0x51E0 +0x997C 0x8655 +0x997D 0x51E9 +0x997E 0x51ED +0x9980 0x51F0 +0x9981 0x51F5 +0x9982 0x51FE +0x9983 0x5204 +0x9984 0x520B +0x9985 0x5214 +0x9986 0x520E +0x9987 0x5227 +0x9988 0x522A +0x9989 0x522E +0x998A 0x5233 +0x998B 0x5239 +0x998C 0x524F +0x998D 0x5244 +0x998E 0x524B +0x998F 0x524C +0x9990 0x525E +0x9991 0x5254 +0x9992 0x526A +0x9993 0x5274 +0x9994 0x5269 +0x9995 0x5273 +0x9996 0x527F +0x9997 0x527D +0x9998 0x528D +0x9999 0x5294 +0x999A 0x5292 +0x999B 0x5271 +0x999C 0x5288 +0x999D 0x5291 +0x999E 0x8FA8 +0x999F 0x8FA7 +0x99A0 0x52AC +0x99A1 0x52AD +0x99A2 0x52BC +0x99A3 0x52B5 +0x99A4 0x52C1 +0x99A5 0x52CD +0x99A6 0x52D7 +0x99A7 0x52DE +0x99A8 0x52E3 +0x99A9 0x52E6 +0x99AA 0x98ED +0x99AB 0x52E0 +0x99AC 0x52F3 +0x99AD 0x52F5 +0x99AE 0x52F8 +0x99AF 0x52F9 +0x99B0 0x5306 +0x99B1 0x5308 +0x99B2 0x7538 +0x99B3 0x530D +0x99B4 0x5310 +0x99B5 0x530F +0x99B6 0x5315 +0x99B7 0x531A +0x99B8 0x5323 +0x99B9 0x532F +0x99BA 0x5331 +0x99BB 0x5333 +0x99BC 0x5338 +0x99BD 0x5340 +0x99BE 0x5346 +0x99BF 0x5345 +0x99C0 0x4E17 +0x99C1 0x5349 +0x99C2 0x534D +0x99C3 0x51D6 +0x99C4 0x535E +0x99C5 0x5369 +0x99C6 0x536E +0x99C7 0x5918 +0x99C8 0x537B +0x99C9 0x5377 +0x99CA 0x5382 +0x99CB 0x5396 +0x99CC 0x53A0 +0x99CD 0x53A6 +0x99CE 0x53A5 +0x99CF 0x53AE +0x99D0 0x53B0 +0x99D1 0x53B6 +0x99D2 0x53C3 +0x99D3 0x7C12 +0x99D4 0x96D9 +0x99D5 0x53DF +0x99D6 0x66FC +0x99D7 0x71EE +0x99D8 0x53EE +0x99D9 0x53E8 +0x99DA 0x53ED +0x99DB 0x53FA +0x99DC 0x5401 +0x99DD 0x543D +0x99DE 0x5440 +0x99DF 0x542C +0x99E0 0x542D +0x99E1 0x543C +0x99E2 0x542E +0x99E3 0x5436 +0x99E4 0x5429 +0x99E5 0x541D +0x99E6 0x544E +0x99E7 0x548F +0x99E8 0x5475 +0x99E9 0x548E +0x99EA 0x545F +0x99EB 0x5471 +0x99EC 0x5477 +0x99ED 0x5470 +0x99EE 0x5492 +0x99EF 0x547B +0x99F0 0x5480 +0x99F1 0x5476 +0x99F2 0x5484 +0x99F3 0x5490 +0x99F4 0x5486 +0x99F5 0x54C7 +0x99F6 0x54A2 +0x99F7 0x54B8 +0x99F8 0x54A5 +0x99F9 0x54AC +0x99FA 0x54C4 +0x99FB 0x54C8 +0x99FC 0x54A8 +0x9A40 0x54AB +0x9A41 0x54C2 +0x9A42 0x54A4 +0x9A43 0x54BE +0x9A44 0x54BC +0x9A45 0x54D8 +0x9A46 0x54E5 +0x9A47 0x54E6 +0x9A48 0x550F +0x9A49 0x5514 +0x9A4A 0x54FD +0x9A4B 0x54EE +0x9A4C 0x54ED +0x9A4D 0x54FA +0x9A4E 0x54E2 +0x9A4F 0x5539 +0x9A50 0x5540 +0x9A51 0x5563 +0x9A52 0x554C +0x9A53 0x552E +0x9A54 0x555C +0x9A55 0x5545 +0x9A56 0x5556 +0x9A57 0x5557 +0x9A58 0x5538 +0x9A59 0x5533 +0x9A5A 0x555D +0x9A5B 0x5599 +0x9A5C 0x5580 +0x9A5D 0x54AF +0x9A5E 0x558A +0x9A5F 0x559F +0x9A60 0x557B +0x9A61 0x557E +0x9A62 0x5598 +0x9A63 0x559E +0x9A64 0x55AE +0x9A65 0x557C +0x9A66 0x5583 +0x9A67 0x55A9 +0x9A68 0x5587 +0x9A69 0x55A8 +0x9A6A 0x55DA +0x9A6B 0x55C5 +0x9A6C 0x55DF +0x9A6D 0x55C4 +0x9A6E 0x55DC +0x9A6F 0x55E4 +0x9A70 0x55D4 +0x9A71 0x5614 +0x9A72 0x55F7 +0x9A73 0x5616 +0x9A74 0x55FE +0x9A75 0x55FD +0x9A76 0x561B +0x9A77 0x55F9 +0x9A78 0x564E +0x9A79 0x5650 +0x9A7A 0x71DF +0x9A7B 0x5634 +0x9A7C 0x5636 +0x9A7D 0x5632 +0x9A7E 0x5638 +0x9A80 0x566B +0x9A81 0x5664 +0x9A82 0x562F +0x9A83 0x566C +0x9A84 0x566A +0x9A85 0x5686 +0x9A86 0x5680 +0x9A87 0x568A +0x9A88 0x56A0 +0x9A89 0x5694 +0x9A8A 0x568F +0x9A8B 0x56A5 +0x9A8C 0x56AE +0x9A8D 0x56B6 +0x9A8E 0x56B4 +0x9A8F 0x56C2 +0x9A90 0x56BC +0x9A91 0x56C1 +0x9A92 0x56C3 +0x9A93 0x56C0 +0x9A94 0x56C8 +0x9A95 0x56CE +0x9A96 0x56D1 +0x9A97 0x56D3 +0x9A98 0x56D7 +0x9A99 0x56EE +0x9A9A 0x56F9 +0x9A9B 0x5700 +0x9A9C 0x56FF +0x9A9D 0x5704 +0x9A9E 0x5709 +0x9A9F 0x5708 +0x9AA0 0x570B +0x9AA1 0x570D +0x9AA2 0x5713 +0x9AA3 0x5718 +0x9AA4 0x5716 +0x9AA5 0x55C7 +0x9AA6 0x571C +0x9AA7 0x5726 +0x9AA8 0x5737 +0x9AA9 0x5738 +0x9AAA 0x574E +0x9AAB 0x573B +0x9AAC 0x5740 +0x9AAD 0x574F +0x9AAE 0x5769 +0x9AAF 0x57C0 +0x9AB0 0x5788 +0x9AB1 0x5761 +0x9AB2 0x577F +0x9AB3 0x5789 +0x9AB4 0x5793 +0x9AB5 0x57A0 +0x9AB6 0x57B3 +0x9AB7 0x57A4 +0x9AB8 0x57AA +0x9AB9 0x57B0 +0x9ABA 0x57C3 +0x9ABB 0x57C6 +0x9ABC 0x57D4 +0x9ABD 0x57D2 +0x9ABE 0x57D3 +0x9ABF 0x580A +0x9AC0 0x57D6 +0x9AC1 0x57E3 +0x9AC2 0x580B +0x9AC3 0x5819 +0x9AC4 0x581D +0x9AC5 0x5872 +0x9AC6 0x5821 +0x9AC7 0x5862 +0x9AC8 0x584B +0x9AC9 0x5870 +0x9ACA 0x6BC0 +0x9ACB 0x5852 +0x9ACC 0x583D +0x9ACD 0x5879 +0x9ACE 0x5885 +0x9ACF 0x58B9 +0x9AD0 0x589F +0x9AD1 0x58AB +0x9AD2 0x58BA +0x9AD3 0x58DE +0x9AD4 0x58BB +0x9AD5 0x58B8 +0x9AD6 0x58AE +0x9AD7 0x58C5 +0x9AD8 0x58D3 +0x9AD9 0x58D1 +0x9ADA 0x58D7 +0x9ADB 0x58D9 +0x9ADC 0x58D8 +0x9ADD 0x58E5 +0x9ADE 0x58DC +0x9ADF 0x58E4 +0x9AE0 0x58DF +0x9AE1 0x58EF +0x9AE2 0x58FA +0x9AE3 0x58F9 +0x9AE4 0x58FB +0x9AE5 0x58FC +0x9AE6 0x58FD +0x9AE7 0x5902 +0x9AE8 0x590A +0x9AE9 0x5910 +0x9AEA 0x591B +0x9AEB 0x68A6 +0x9AEC 0x5925 +0x9AED 0x592C +0x9AEE 0x592D +0x9AEF 0x5932 +0x9AF0 0x5938 +0x9AF1 0x593E +0x9AF2 0x7AD2 +0x9AF3 0x5955 +0x9AF4 0x5950 +0x9AF5 0x594E +0x9AF6 0x595A +0x9AF7 0x5958 +0x9AF8 0x5962 +0x9AF9 0x5960 +0x9AFA 0x5967 +0x9AFB 0x596C +0x9AFC 0x5969 +0x9B40 0x5978 +0x9B41 0x5981 +0x9B42 0x599D +0x9B43 0x4F5E +0x9B44 0x4FAB +0x9B45 0x59A3 +0x9B46 0x59B2 +0x9B47 0x59C6 +0x9B48 0x59E8 +0x9B49 0x59DC +0x9B4A 0x598D +0x9B4B 0x59D9 +0x9B4C 0x59DA +0x9B4D 0x5A25 +0x9B4E 0x5A1F +0x9B4F 0x5A11 +0x9B50 0x5A1C +0x9B51 0x5A09 +0x9B52 0x5A1A +0x9B53 0x5A40 +0x9B54 0x5A6C +0x9B55 0x5A49 +0x9B56 0x5A35 +0x9B57 0x5A36 +0x9B58 0x5A62 +0x9B59 0x5A6A +0x9B5A 0x5A9A +0x9B5B 0x5ABC +0x9B5C 0x5ABE +0x9B5D 0x5ACB +0x9B5E 0x5AC2 +0x9B5F 0x5ABD +0x9B60 0x5AE3 +0x9B61 0x5AD7 +0x9B62 0x5AE6 +0x9B63 0x5AE9 +0x9B64 0x5AD6 +0x9B65 0x5AFA +0x9B66 0x5AFB +0x9B67 0x5B0C +0x9B68 0x5B0B +0x9B69 0x5B16 +0x9B6A 0x5B32 +0x9B6B 0x5AD0 +0x9B6C 0x5B2A +0x9B6D 0x5B36 +0x9B6E 0x5B3E +0x9B6F 0x5B43 +0x9B70 0x5B45 +0x9B71 0x5B40 +0x9B72 0x5B51 +0x9B73 0x5B55 +0x9B74 0x5B5A +0x9B75 0x5B5B +0x9B76 0x5B65 +0x9B77 0x5B69 +0x9B78 0x5B70 +0x9B79 0x5B73 +0x9B7A 0x5B75 +0x9B7B 0x5B78 +0x9B7C 0x6588 +0x9B7D 0x5B7A +0x9B7E 0x5B80 +0x9B80 0x5B83 +0x9B81 0x5BA6 +0x9B82 0x5BB8 +0x9B83 0x5BC3 +0x9B84 0x5BC7 +0x9B85 0x5BC9 +0x9B86 0x5BD4 +0x9B87 0x5BD0 +0x9B88 0x5BE4 +0x9B89 0x5BE6 +0x9B8A 0x5BE2 +0x9B8B 0x5BDE +0x9B8C 0x5BE5 +0x9B8D 0x5BEB +0x9B8E 0x5BF0 +0x9B8F 0x5BF6 +0x9B90 0x5BF3 +0x9B91 0x5C05 +0x9B92 0x5C07 +0x9B93 0x5C08 +0x9B94 0x5C0D +0x9B95 0x5C13 +0x9B96 0x5C20 +0x9B97 0x5C22 +0x9B98 0x5C28 +0x9B99 0x5C38 +0x9B9A 0x5C39 +0x9B9B 0x5C41 +0x9B9C 0x5C46 +0x9B9D 0x5C4E +0x9B9E 0x5C53 +0x9B9F 0x5C50 +0x9BA0 0x5C4F +0x9BA1 0x5B71 +0x9BA2 0x5C6C +0x9BA3 0x5C6E +0x9BA4 0x4E62 +0x9BA5 0x5C76 +0x9BA6 0x5C79 +0x9BA7 0x5C8C +0x9BA8 0x5C91 +0x9BA9 0x5C94 +0x9BAA 0x599B +0x9BAB 0x5CAB +0x9BAC 0x5CBB +0x9BAD 0x5CB6 +0x9BAE 0x5CBC +0x9BAF 0x5CB7 +0x9BB0 0x5CC5 +0x9BB1 0x5CBE +0x9BB2 0x5CC7 +0x9BB3 0x5CD9 +0x9BB4 0x5CE9 +0x9BB5 0x5CFD +0x9BB6 0x5CFA +0x9BB7 0x5CED +0x9BB8 0x5D8C +0x9BB9 0x5CEA +0x9BBA 0x5D0B +0x9BBB 0x5D15 +0x9BBC 0x5D17 +0x9BBD 0x5D5C +0x9BBE 0x5D1F +0x9BBF 0x5D1B +0x9BC0 0x5D11 +0x9BC1 0x5D14 +0x9BC2 0x5D22 +0x9BC3 0x5D1A +0x9BC4 0x5D19 +0x9BC5 0x5D18 +0x9BC6 0x5D4C +0x9BC7 0x5D52 +0x9BC8 0x5D4E +0x9BC9 0x5D4B +0x9BCA 0x5D6C +0x9BCB 0x5D73 +0x9BCC 0x5D76 +0x9BCD 0x5D87 +0x9BCE 0x5D84 +0x9BCF 0x5D82 +0x9BD0 0x5DA2 +0x9BD1 0x5D9D +0x9BD2 0x5DAC +0x9BD3 0x5DAE +0x9BD4 0x5DBD +0x9BD5 0x5D90 +0x9BD6 0x5DB7 +0x9BD7 0x5DBC +0x9BD8 0x5DC9 +0x9BD9 0x5DCD +0x9BDA 0x5DD3 +0x9BDB 0x5DD2 +0x9BDC 0x5DD6 +0x9BDD 0x5DDB +0x9BDE 0x5DEB +0x9BDF 0x5DF2 +0x9BE0 0x5DF5 +0x9BE1 0x5E0B +0x9BE2 0x5E1A +0x9BE3 0x5E19 +0x9BE4 0x5E11 +0x9BE5 0x5E1B +0x9BE6 0x5E36 +0x9BE7 0x5E37 +0x9BE8 0x5E44 +0x9BE9 0x5E43 +0x9BEA 0x5E40 +0x9BEB 0x5E4E +0x9BEC 0x5E57 +0x9BED 0x5E54 +0x9BEE 0x5E5F +0x9BEF 0x5E62 +0x9BF0 0x5E64 +0x9BF1 0x5E47 +0x9BF2 0x5E75 +0x9BF3 0x5E76 +0x9BF4 0x5E7A +0x9BF5 0x9EBC +0x9BF6 0x5E7F +0x9BF7 0x5EA0 +0x9BF8 0x5EC1 +0x9BF9 0x5EC2 +0x9BFA 0x5EC8 +0x9BFB 0x5ED0 +0x9BFC 0x5ECF +0x9C40 0x5ED6 +0x9C41 0x5EE3 +0x9C42 0x5EDD +0x9C43 0x5EDA +0x9C44 0x5EDB +0x9C45 0x5EE2 +0x9C46 0x5EE1 +0x9C47 0x5EE8 +0x9C48 0x5EE9 +0x9C49 0x5EEC +0x9C4A 0x5EF1 +0x9C4B 0x5EF3 +0x9C4C 0x5EF0 +0x9C4D 0x5EF4 +0x9C4E 0x5EF8 +0x9C4F 0x5EFE +0x9C50 0x5F03 +0x9C51 0x5F09 +0x9C52 0x5F5D +0x9C53 0x5F5C +0x9C54 0x5F0B +0x9C55 0x5F11 +0x9C56 0x5F16 +0x9C57 0x5F29 +0x9C58 0x5F2D +0x9C59 0x5F38 +0x9C5A 0x5F41 +0x9C5B 0x5F48 +0x9C5C 0x5F4C +0x9C5D 0x5F4E +0x9C5E 0x5F2F +0x9C5F 0x5F51 +0x9C60 0x5F56 +0x9C61 0x5F57 +0x9C62 0x5F59 +0x9C63 0x5F61 +0x9C64 0x5F6D +0x9C65 0x5F73 +0x9C66 0x5F77 +0x9C67 0x5F83 +0x9C68 0x5F82 +0x9C69 0x5F7F +0x9C6A 0x5F8A +0x9C6B 0x5F88 +0x9C6C 0x5F91 +0x9C6D 0x5F87 +0x9C6E 0x5F9E +0x9C6F 0x5F99 +0x9C70 0x5F98 +0x9C71 0x5FA0 +0x9C72 0x5FA8 +0x9C73 0x5FAD +0x9C74 0x5FBC +0x9C75 0x5FD6 +0x9C76 0x5FFB +0x9C77 0x5FE4 +0x9C78 0x5FF8 +0x9C79 0x5FF1 +0x9C7A 0x5FDD +0x9C7B 0x60B3 +0x9C7C 0x5FFF +0x9C7D 0x6021 +0x9C7E 0x6060 +0x9C80 0x6019 +0x9C81 0x6010 +0x9C82 0x6029 +0x9C83 0x600E +0x9C84 0x6031 +0x9C85 0x601B +0x9C86 0x6015 +0x9C87 0x602B +0x9C88 0x6026 +0x9C89 0x600F +0x9C8A 0x603A +0x9C8B 0x605A +0x9C8C 0x6041 +0x9C8D 0x606A +0x9C8E 0x6077 +0x9C8F 0x605F +0x9C90 0x604A +0x9C91 0x6046 +0x9C92 0x604D +0x9C93 0x6063 +0x9C94 0x6043 +0x9C95 0x6064 +0x9C96 0x6042 +0x9C97 0x606C +0x9C98 0x606B +0x9C99 0x6059 +0x9C9A 0x6081 +0x9C9B 0x608D +0x9C9C 0x60E7 +0x9C9D 0x6083 +0x9C9E 0x609A +0x9C9F 0x6084 +0x9CA0 0x609B +0x9CA1 0x6096 +0x9CA2 0x6097 +0x9CA3 0x6092 +0x9CA4 0x60A7 +0x9CA5 0x608B +0x9CA6 0x60E1 +0x9CA7 0x60B8 +0x9CA8 0x60E0 +0x9CA9 0x60D3 +0x9CAA 0x60B4 +0x9CAB 0x5FF0 +0x9CAC 0x60BD +0x9CAD 0x60C6 +0x9CAE 0x60B5 +0x9CAF 0x60D8 +0x9CB0 0x614D +0x9CB1 0x6115 +0x9CB2 0x6106 +0x9CB3 0x60F6 +0x9CB4 0x60F7 +0x9CB5 0x6100 +0x9CB6 0x60F4 +0x9CB7 0x60FA +0x9CB8 0x6103 +0x9CB9 0x6121 +0x9CBA 0x60FB +0x9CBB 0x60F1 +0x9CBC 0x610D +0x9CBD 0x610E +0x9CBE 0x6147 +0x9CBF 0x613E +0x9CC0 0x6128 +0x9CC1 0x6127 +0x9CC2 0x614A +0x9CC3 0x613F +0x9CC4 0x613C +0x9CC5 0x612C +0x9CC6 0x6134 +0x9CC7 0x613D +0x9CC8 0x6142 +0x9CC9 0x6144 +0x9CCA 0x6173 +0x9CCB 0x6177 +0x9CCC 0x6158 +0x9CCD 0x6159 +0x9CCE 0x615A +0x9CCF 0x616B +0x9CD0 0x6174 +0x9CD1 0x616F +0x9CD2 0x6165 +0x9CD3 0x6171 +0x9CD4 0x615F +0x9CD5 0x615D +0x9CD6 0x6153 +0x9CD7 0x6175 +0x9CD8 0x6199 +0x9CD9 0x6196 +0x9CDA 0x6187 +0x9CDB 0x61AC +0x9CDC 0x6194 +0x9CDD 0x619A +0x9CDE 0x618A +0x9CDF 0x6191 +0x9CE0 0x61AB +0x9CE1 0x61AE +0x9CE2 0x61CC +0x9CE3 0x61CA +0x9CE4 0x61C9 +0x9CE5 0x61F7 +0x9CE6 0x61C8 +0x9CE7 0x61C3 +0x9CE8 0x61C6 +0x9CE9 0x61BA +0x9CEA 0x61CB +0x9CEB 0x7F79 +0x9CEC 0x61CD +0x9CED 0x61E6 +0x9CEE 0x61E3 +0x9CEF 0x61F6 +0x9CF0 0x61FA +0x9CF1 0x61F4 +0x9CF2 0x61FF +0x9CF3 0x61FD +0x9CF4 0x61FC +0x9CF5 0x61FE +0x9CF6 0x6200 +0x9CF7 0x6208 +0x9CF8 0x6209 +0x9CF9 0x620D +0x9CFA 0x620C +0x9CFB 0x6214 +0x9CFC 0x621B +0x9D40 0x621E +0x9D41 0x6221 +0x9D42 0x622A +0x9D43 0x622E +0x9D44 0x6230 +0x9D45 0x6232 +0x9D46 0x6233 +0x9D47 0x6241 +0x9D48 0x624E +0x9D49 0x625E +0x9D4A 0x6263 +0x9D4B 0x625B +0x9D4C 0x6260 +0x9D4D 0x6268 +0x9D4E 0x627C +0x9D4F 0x6282 +0x9D50 0x6289 +0x9D51 0x627E +0x9D52 0x6292 +0x9D53 0x6293 +0x9D54 0x6296 +0x9D55 0x62D4 +0x9D56 0x6283 +0x9D57 0x6294 +0x9D58 0x62D7 +0x9D59 0x62D1 +0x9D5A 0x62BB +0x9D5B 0x62CF +0x9D5C 0x62FF +0x9D5D 0x62C6 +0x9D5E 0x64D4 +0x9D5F 0x62C8 +0x9D60 0x62DC +0x9D61 0x62CC +0x9D62 0x62CA +0x9D63 0x62C2 +0x9D64 0x62C7 +0x9D65 0x629B +0x9D66 0x62C9 +0x9D67 0x630C +0x9D68 0x62EE +0x9D69 0x62F1 +0x9D6A 0x6327 +0x9D6B 0x6302 +0x9D6C 0x6308 +0x9D6D 0x62EF +0x9D6E 0x62F5 +0x9D6F 0x6350 +0x9D70 0x633E +0x9D71 0x634D +0x9D72 0x641C +0x9D73 0x634F +0x9D74 0x6396 +0x9D75 0x638E +0x9D76 0x6380 +0x9D77 0x63AB +0x9D78 0x6376 +0x9D79 0x63A3 +0x9D7A 0x638F +0x9D7B 0x6389 +0x9D7C 0x639F +0x9D7D 0x63B5 +0x9D7E 0x636B +0x9D80 0x6369 +0x9D81 0x63BE +0x9D82 0x63E9 +0x9D83 0x63C0 +0x9D84 0x63C6 +0x9D85 0x63E3 +0x9D86 0x63C9 +0x9D87 0x63D2 +0x9D88 0x63F6 +0x9D89 0x63C4 +0x9D8A 0x6416 +0x9D8B 0x6434 +0x9D8C 0x6406 +0x9D8D 0x6413 +0x9D8E 0x6426 +0x9D8F 0x6436 +0x9D90 0x651D +0x9D91 0x6417 +0x9D92 0x6428 +0x9D93 0x640F +0x9D94 0x6467 +0x9D95 0x646F +0x9D96 0x6476 +0x9D97 0x644E +0x9D98 0x652A +0x9D99 0x6495 +0x9D9A 0x6493 +0x9D9B 0x64A5 +0x9D9C 0x64A9 +0x9D9D 0x6488 +0x9D9E 0x64BC +0x9D9F 0x64DA +0x9DA0 0x64D2 +0x9DA1 0x64C5 +0x9DA2 0x64C7 +0x9DA3 0x64BB +0x9DA4 0x64D8 +0x9DA5 0x64C2 +0x9DA6 0x64F1 +0x9DA7 0x64E7 +0x9DA8 0x8209 +0x9DA9 0x64E0 +0x9DAA 0x64E1 +0x9DAB 0x62AC +0x9DAC 0x64E3 +0x9DAD 0x64EF +0x9DAE 0x652C +0x9DAF 0x64F6 +0x9DB0 0x64F4 +0x9DB1 0x64F2 +0x9DB2 0x64FA +0x9DB3 0x6500 +0x9DB4 0x64FD +0x9DB5 0x6518 +0x9DB6 0x651C +0x9DB7 0x6505 +0x9DB8 0x6524 +0x9DB9 0x6523 +0x9DBA 0x652B +0x9DBB 0x6534 +0x9DBC 0x6535 +0x9DBD 0x6537 +0x9DBE 0x6536 +0x9DBF 0x6538 +0x9DC0 0x754B +0x9DC1 0x6548 +0x9DC2 0x6556 +0x9DC3 0x6555 +0x9DC4 0x654D +0x9DC5 0x6558 +0x9DC6 0x655E +0x9DC7 0x655D +0x9DC8 0x6572 +0x9DC9 0x6578 +0x9DCA 0x6582 +0x9DCB 0x6583 +0x9DCC 0x8B8A +0x9DCD 0x659B +0x9DCE 0x659F +0x9DCF 0x65AB +0x9DD0 0x65B7 +0x9DD1 0x65C3 +0x9DD2 0x65C6 +0x9DD3 0x65C1 +0x9DD4 0x65C4 +0x9DD5 0x65CC +0x9DD6 0x65D2 +0x9DD7 0x65DB +0x9DD8 0x65D9 +0x9DD9 0x65E0 +0x9DDA 0x65E1 +0x9DDB 0x65F1 +0x9DDC 0x6772 +0x9DDD 0x660A +0x9DDE 0x6603 +0x9DDF 0x65FB +0x9DE0 0x6773 +0x9DE1 0x6635 +0x9DE2 0x6636 +0x9DE3 0x6634 +0x9DE4 0x661C +0x9DE5 0x664F +0x9DE6 0x6644 +0x9DE7 0x6649 +0x9DE8 0x6641 +0x9DE9 0x665E +0x9DEA 0x665D +0x9DEB 0x6664 +0x9DEC 0x6667 +0x9DED 0x6668 +0x9DEE 0x665F +0x9DEF 0x6662 +0x9DF0 0x6670 +0x9DF1 0x6683 +0x9DF2 0x6688 +0x9DF3 0x668E +0x9DF4 0x6689 +0x9DF5 0x6684 +0x9DF6 0x6698 +0x9DF7 0x669D +0x9DF8 0x66C1 +0x9DF9 0x66B9 +0x9DFA 0x66C9 +0x9DFB 0x66BE +0x9DFC 0x66BC +0x9E40 0x66C4 +0x9E41 0x66B8 +0x9E42 0x66D6 +0x9E43 0x66DA +0x9E44 0x66E0 +0x9E45 0x663F +0x9E46 0x66E6 +0x9E47 0x66E9 +0x9E48 0x66F0 +0x9E49 0x66F5 +0x9E4A 0x66F7 +0x9E4B 0x670F +0x9E4C 0x6716 +0x9E4D 0x671E +0x9E4E 0x6726 +0x9E4F 0x6727 +0x9E50 0x9738 +0x9E51 0x672E +0x9E52 0x673F +0x9E53 0x6736 +0x9E54 0x6741 +0x9E55 0x6738 +0x9E56 0x6737 +0x9E57 0x6746 +0x9E58 0x675E +0x9E59 0x6760 +0x9E5A 0x6759 +0x9E5B 0x6763 +0x9E5C 0x6764 +0x9E5D 0x6789 +0x9E5E 0x6770 +0x9E5F 0x67A9 +0x9E60 0x677C +0x9E61 0x676A +0x9E62 0x678C +0x9E63 0x678B +0x9E64 0x67A6 +0x9E65 0x67A1 +0x9E66 0x6785 +0x9E67 0x67B7 +0x9E68 0x67EF +0x9E69 0x67B4 +0x9E6A 0x67EC +0x9E6B 0x67B3 +0x9E6C 0x67E9 +0x9E6D 0x67B8 +0x9E6E 0x67E4 +0x9E6F 0x67DE +0x9E70 0x67DD +0x9E71 0x67E2 +0x9E72 0x67EE +0x9E73 0x67B9 +0x9E74 0x67CE +0x9E75 0x67C6 +0x9E76 0x67E7 +0x9E77 0x6A9C +0x9E78 0x681E +0x9E79 0x6846 +0x9E7A 0x6829 +0x9E7B 0x6840 +0x9E7C 0x684D +0x9E7D 0x6832 +0x9E7E 0x684E +0x9E80 0x68B3 +0x9E81 0x682B +0x9E82 0x6859 +0x9E83 0x6863 +0x9E84 0x6877 +0x9E85 0x687F +0x9E86 0x689F +0x9E87 0x688F +0x9E88 0x68AD +0x9E89 0x6894 +0x9E8A 0x689D +0x9E8B 0x689B +0x9E8C 0x6883 +0x9E8D 0x6AAE +0x9E8E 0x68B9 +0x9E8F 0x6874 +0x9E90 0x68B5 +0x9E91 0x68A0 +0x9E92 0x68BA +0x9E93 0x690F +0x9E94 0x688D +0x9E95 0x687E +0x9E96 0x6901 +0x9E97 0x68CA +0x9E98 0x6908 +0x9E99 0x68D8 +0x9E9A 0x6922 +0x9E9B 0x6926 +0x9E9C 0x68E1 +0x9E9D 0x690C +0x9E9E 0x68CD +0x9E9F 0x68D4 +0x9EA0 0x68E7 +0x9EA1 0x68D5 +0x9EA2 0x6936 +0x9EA3 0x6912 +0x9EA4 0x6904 +0x9EA5 0x68D7 +0x9EA6 0x68E3 +0x9EA7 0x6925 +0x9EA8 0x68F9 +0x9EA9 0x68E0 +0x9EAA 0x68EF +0x9EAB 0x6928 +0x9EAC 0x692A +0x9EAD 0x691A +0x9EAE 0x6923 +0x9EAF 0x6921 +0x9EB0 0x68C6 +0x9EB1 0x6979 +0x9EB2 0x6977 +0x9EB3 0x695C +0x9EB4 0x6978 +0x9EB5 0x696B +0x9EB6 0x6954 +0x9EB7 0x697E +0x9EB8 0x696E +0x9EB9 0x6939 +0x9EBA 0x6974 +0x9EBB 0x693D +0x9EBC 0x6959 +0x9EBD 0x6930 +0x9EBE 0x6961 +0x9EBF 0x695E +0x9EC0 0x695D +0x9EC1 0x6981 +0x9EC2 0x696A +0x9EC3 0x69B2 +0x9EC4 0x69AE +0x9EC5 0x69D0 +0x9EC6 0x69BF +0x9EC7 0x69C1 +0x9EC8 0x69D3 +0x9EC9 0x69BE +0x9ECA 0x69CE +0x9ECB 0x5BE8 +0x9ECC 0x69CA +0x9ECD 0x69DD +0x9ECE 0x69BB +0x9ECF 0x69C3 +0x9ED0 0x69A7 +0x9ED1 0x6A2E +0x9ED2 0x6991 +0x9ED3 0x69A0 +0x9ED4 0x699C +0x9ED5 0x6995 +0x9ED6 0x69B4 +0x9ED7 0x69DE +0x9ED8 0x69E8 +0x9ED9 0x6A02 +0x9EDA 0x6A1B +0x9EDB 0x69FF +0x9EDC 0x6B0A +0x9EDD 0x69F9 +0x9EDE 0x69F2 +0x9EDF 0x69E7 +0x9EE0 0x6A05 +0x9EE1 0x69B1 +0x9EE2 0x6A1E +0x9EE3 0x69ED +0x9EE4 0x6A14 +0x9EE5 0x69EB +0x9EE6 0x6A0A +0x9EE7 0x6A12 +0x9EE8 0x6AC1 +0x9EE9 0x6A23 +0x9EEA 0x6A13 +0x9EEB 0x6A44 +0x9EEC 0x6A0C +0x9EED 0x6A72 +0x9EEE 0x6A36 +0x9EEF 0x6A78 +0x9EF0 0x6A47 +0x9EF1 0x6A62 +0x9EF2 0x6A59 +0x9EF3 0x6A66 +0x9EF4 0x6A48 +0x9EF5 0x6A38 +0x9EF6 0x6A22 +0x9EF7 0x6A90 +0x9EF8 0x6A8D +0x9EF9 0x6AA0 +0x9EFA 0x6A84 +0x9EFB 0x6AA2 +0x9EFC 0x6AA3 +0x9F40 0x6A97 +0x9F41 0x8617 +0x9F42 0x6ABB +0x9F43 0x6AC3 +0x9F44 0x6AC2 +0x9F45 0x6AB8 +0x9F46 0x6AB3 +0x9F47 0x6AAC +0x9F48 0x6ADE +0x9F49 0x6AD1 +0x9F4A 0x6ADF +0x9F4B 0x6AAA +0x9F4C 0x6ADA +0x9F4D 0x6AEA +0x9F4E 0x6AFB +0x9F4F 0x6B05 +0x9F50 0x8616 +0x9F51 0x6AFA +0x9F52 0x6B12 +0x9F53 0x6B16 +0x9F54 0x9B31 +0x9F55 0x6B1F +0x9F56 0x6B38 +0x9F57 0x6B37 +0x9F58 0x76DC +0x9F59 0x6B39 +0x9F5A 0x98EE +0x9F5B 0x6B47 +0x9F5C 0x6B43 +0x9F5D 0x6B49 +0x9F5E 0x6B50 +0x9F5F 0x6B59 +0x9F60 0x6B54 +0x9F61 0x6B5B +0x9F62 0x6B5F +0x9F63 0x6B61 +0x9F64 0x6B78 +0x9F65 0x6B79 +0x9F66 0x6B7F +0x9F67 0x6B80 +0x9F68 0x6B84 +0x9F69 0x6B83 +0x9F6A 0x6B8D +0x9F6B 0x6B98 +0x9F6C 0x6B95 +0x9F6D 0x6B9E +0x9F6E 0x6BA4 +0x9F6F 0x6BAA +0x9F70 0x6BAB +0x9F71 0x6BAF +0x9F72 0x6BB2 +0x9F73 0x6BB1 +0x9F74 0x6BB3 +0x9F75 0x6BB7 +0x9F76 0x6BBC +0x9F77 0x6BC6 +0x9F78 0x6BCB +0x9F79 0x6BD3 +0x9F7A 0x6BDF +0x9F7B 0x6BEC +0x9F7C 0x6BEB +0x9F7D 0x6BF3 +0x9F7E 0x6BEF +0x9F80 0x9EBE +0x9F81 0x6C08 +0x9F82 0x6C13 +0x9F83 0x6C14 +0x9F84 0x6C1B +0x9F85 0x6C24 +0x9F86 0x6C23 +0x9F87 0x6C5E +0x9F88 0x6C55 +0x9F89 0x6C62 +0x9F8A 0x6C6A +0x9F8B 0x6C82 +0x9F8C 0x6C8D +0x9F8D 0x6C9A +0x9F8E 0x6C81 +0x9F8F 0x6C9B +0x9F90 0x6C7E +0x9F91 0x6C68 +0x9F92 0x6C73 +0x9F93 0x6C92 +0x9F94 0x6C90 +0x9F95 0x6CC4 +0x9F96 0x6CF1 +0x9F97 0x6CD3 +0x9F98 0x6CBD +0x9F99 0x6CD7 +0x9F9A 0x6CC5 +0x9F9B 0x6CDD +0x9F9C 0x6CAE +0x9F9D 0x6CB1 +0x9F9E 0x6CBE +0x9F9F 0x6CBA +0x9FA0 0x6CDB +0x9FA1 0x6CEF +0x9FA2 0x6CD9 +0x9FA3 0x6CEA +0x9FA4 0x6D1F +0x9FA5 0x884D +0x9FA6 0x6D36 +0x9FA7 0x6D2B +0x9FA8 0x6D3D +0x9FA9 0x6D38 +0x9FAA 0x6D19 +0x9FAB 0x6D35 +0x9FAC 0x6D33 +0x9FAD 0x6D12 +0x9FAE 0x6D0C +0x9FAF 0x6D63 +0x9FB0 0x6D93 +0x9FB1 0x6D64 +0x9FB2 0x6D5A +0x9FB3 0x6D79 +0x9FB4 0x6D59 +0x9FB5 0x6D8E +0x9FB6 0x6D95 +0x9FB7 0x6FE4 +0x9FB8 0x6D85 +0x9FB9 0x6DF9 +0x9FBA 0x6E15 +0x9FBB 0x6E0A +0x9FBC 0x6DB5 +0x9FBD 0x6DC7 +0x9FBE 0x6DE6 +0x9FBF 0x6DB8 +0x9FC0 0x6DC6 +0x9FC1 0x6DEC +0x9FC2 0x6DDE +0x9FC3 0x6DCC +0x9FC4 0x6DE8 +0x9FC5 0x6DD2 +0x9FC6 0x6DC5 +0x9FC7 0x6DFA +0x9FC8 0x6DD9 +0x9FC9 0x6DE4 +0x9FCA 0x6DD5 +0x9FCB 0x6DEA +0x9FCC 0x6DEE +0x9FCD 0x6E2D +0x9FCE 0x6E6E +0x9FCF 0x6E2E +0x9FD0 0x6E19 +0x9FD1 0x6E72 +0x9FD2 0x6E5F +0x9FD3 0x6E3E +0x9FD4 0x6E23 +0x9FD5 0x6E6B +0x9FD6 0x6E2B +0x9FD7 0x6E76 +0x9FD8 0x6E4D +0x9FD9 0x6E1F +0x9FDA 0x6E43 +0x9FDB 0x6E3A +0x9FDC 0x6E4E +0x9FDD 0x6E24 +0x9FDE 0x6EFF +0x9FDF 0x6E1D +0x9FE0 0x6E38 +0x9FE1 0x6E82 +0x9FE2 0x6EAA +0x9FE3 0x6E98 +0x9FE4 0x6EC9 +0x9FE5 0x6EB7 +0x9FE6 0x6ED3 +0x9FE7 0x6EBD +0x9FE8 0x6EAF +0x9FE9 0x6EC4 +0x9FEA 0x6EB2 +0x9FEB 0x6ED4 +0x9FEC 0x6ED5 +0x9FED 0x6E8F +0x9FEE 0x6EA5 +0x9FEF 0x6EC2 +0x9FF0 0x6E9F +0x9FF1 0x6F41 +0x9FF2 0x6F11 +0x9FF3 0x704C +0x9FF4 0x6EEC +0x9FF5 0x6EF8 +0x9FF6 0x6EFE +0x9FF7 0x6F3F +0x9FF8 0x6EF2 +0x9FF9 0x6F31 +0x9FFA 0x6EEF +0x9FFB 0x6F32 +0x9FFC 0x6ECC +0xA1 0xFF61 +0xA2 0xFF62 +0xA3 0xFF63 +0xA4 0xFF64 +0xA5 0xFF65 +0xA6 0xFF66 +0xA7 0xFF67 +0xA8 0xFF68 +0xA9 0xFF69 +0xAA 0xFF6A +0xAB 0xFF6B +0xAC 0xFF6C +0xAD 0xFF6D +0xAE 0xFF6E +0xAF 0xFF6F +0xB0 0xFF70 +0xB1 0xFF71 +0xB2 0xFF72 +0xB3 0xFF73 +0xB4 0xFF74 +0xB5 0xFF75 +0xB6 0xFF76 +0xB7 0xFF77 +0xB8 0xFF78 +0xB9 0xFF79 +0xBA 0xFF7A +0xBB 0xFF7B +0xBC 0xFF7C +0xBD 0xFF7D +0xBE 0xFF7E +0xBF 0xFF7F +0xC0 0xFF80 +0xC1 0xFF81 +0xC2 0xFF82 +0xC3 0xFF83 +0xC4 0xFF84 +0xC5 0xFF85 +0xC6 0xFF86 +0xC7 0xFF87 +0xC8 0xFF88 +0xC9 0xFF89 +0xCA 0xFF8A +0xCB 0xFF8B +0xCC 0xFF8C +0xCD 0xFF8D +0xCE 0xFF8E +0xCF 0xFF8F +0xD0 0xFF90 +0xD1 0xFF91 +0xD2 0xFF92 +0xD3 0xFF93 +0xD4 0xFF94 +0xD5 0xFF95 +0xD6 0xFF96 +0xD7 0xFF97 +0xD8 0xFF98 +0xD9 0xFF99 +0xDA 0xFF9A +0xDB 0xFF9B +0xDC 0xFF9C +0xDD 0xFF9D +0xDE 0xFF9E +0xDF 0xFF9F +0xE040 0x6F3E +0xE041 0x6F13 +0xE042 0x6EF7 +0xE043 0x6F86 +0xE044 0x6F7A +0xE045 0x6F78 +0xE046 0x6F81 +0xE047 0x6F80 +0xE048 0x6F6F +0xE049 0x6F5B +0xE04A 0x6FF3 +0xE04B 0x6F6D +0xE04C 0x6F82 +0xE04D 0x6F7C +0xE04E 0x6F58 +0xE04F 0x6F8E +0xE050 0x6F91 +0xE051 0x6FC2 +0xE052 0x6F66 +0xE053 0x6FB3 +0xE054 0x6FA3 +0xE055 0x6FA1 +0xE056 0x6FA4 +0xE057 0x6FB9 +0xE058 0x6FC6 +0xE059 0x6FAA +0xE05A 0x6FDF +0xE05B 0x6FD5 +0xE05C 0x6FEC +0xE05D 0x6FD4 +0xE05E 0x6FD8 +0xE05F 0x6FF1 +0xE060 0x6FEE +0xE061 0x6FDB +0xE062 0x7009 +0xE063 0x700B +0xE064 0x6FFA +0xE065 0x7011 +0xE066 0x7001 +0xE067 0x700F +0xE068 0x6FFE +0xE069 0x701B +0xE06A 0x701A +0xE06B 0x6F74 +0xE06C 0x701D +0xE06D 0x7018 +0xE06E 0x701F +0xE06F 0x7030 +0xE070 0x703E +0xE071 0x7032 +0xE072 0x7051 +0xE073 0x7063 +0xE074 0x7099 +0xE075 0x7092 +0xE076 0x70AF +0xE077 0x70F1 +0xE078 0x70AC +0xE079 0x70B8 +0xE07A 0x70B3 +0xE07B 0x70AE +0xE07C 0x70DF +0xE07D 0x70CB +0xE07E 0x70DD +0xE080 0x70D9 +0xE081 0x7109 +0xE082 0x70FD +0xE083 0x711C +0xE084 0x7119 +0xE085 0x7165 +0xE086 0x7155 +0xE087 0x7188 +0xE088 0x7166 +0xE089 0x7162 +0xE08A 0x714C +0xE08B 0x7156 +0xE08C 0x716C +0xE08D 0x718F +0xE08E 0x71FB +0xE08F 0x7184 +0xE090 0x7195 +0xE091 0x71A8 +0xE092 0x71AC +0xE093 0x71D7 +0xE094 0x71B9 +0xE095 0x71BE +0xE096 0x71D2 +0xE097 0x71C9 +0xE098 0x71D4 +0xE099 0x71CE +0xE09A 0x71E0 +0xE09B 0x71EC +0xE09C 0x71E7 +0xE09D 0x71F5 +0xE09E 0x71FC +0xE09F 0x71F9 +0xE0A0 0x71FF +0xE0A1 0x720D +0xE0A2 0x7210 +0xE0A3 0x721B +0xE0A4 0x7228 +0xE0A5 0x722D +0xE0A6 0x722C +0xE0A7 0x7230 +0xE0A8 0x7232 +0xE0A9 0x723B +0xE0AA 0x723C +0xE0AB 0x723F +0xE0AC 0x7240 +0xE0AD 0x7246 +0xE0AE 0x724B +0xE0AF 0x7258 +0xE0B0 0x7274 +0xE0B1 0x727E +0xE0B2 0x7282 +0xE0B3 0x7281 +0xE0B4 0x7287 +0xE0B5 0x7292 +0xE0B6 0x7296 +0xE0B7 0x72A2 +0xE0B8 0x72A7 +0xE0B9 0x72B9 +0xE0BA 0x72B2 +0xE0BB 0x72C3 +0xE0BC 0x72C6 +0xE0BD 0x72C4 +0xE0BE 0x72CE +0xE0BF 0x72D2 +0xE0C0 0x72E2 +0xE0C1 0x72E0 +0xE0C2 0x72E1 +0xE0C3 0x72F9 +0xE0C4 0x72F7 +0xE0C5 0x500F +0xE0C6 0x7317 +0xE0C7 0x730A +0xE0C8 0x731C +0xE0C9 0x7316 +0xE0CA 0x731D +0xE0CB 0x7334 +0xE0CC 0x732F +0xE0CD 0x7329 +0xE0CE 0x7325 +0xE0CF 0x733E +0xE0D0 0x734E +0xE0D1 0x734F +0xE0D2 0x9ED8 +0xE0D3 0x7357 +0xE0D4 0x736A +0xE0D5 0x7368 +0xE0D6 0x7370 +0xE0D7 0x7378 +0xE0D8 0x7375 +0xE0D9 0x737B +0xE0DA 0x737A +0xE0DB 0x73C8 +0xE0DC 0x73B3 +0xE0DD 0x73CE +0xE0DE 0x73BB +0xE0DF 0x73C0 +0xE0E0 0x73E5 +0xE0E1 0x73EE +0xE0E2 0x73DE +0xE0E3 0x74A2 +0xE0E4 0x7405 +0xE0E5 0x746F +0xE0E6 0x7425 +0xE0E7 0x73F8 +0xE0E8 0x7432 +0xE0E9 0x743A +0xE0EA 0x7455 +0xE0EB 0x743F +0xE0EC 0x745F +0xE0ED 0x7459 +0xE0EE 0x7441 +0xE0EF 0x745C +0xE0F0 0x7469 +0xE0F1 0x7470 +0xE0F2 0x7463 +0xE0F3 0x746A +0xE0F4 0x7476 +0xE0F5 0x747E +0xE0F6 0x748B +0xE0F7 0x749E +0xE0F8 0x74A7 +0xE0F9 0x74CA +0xE0FA 0x74CF +0xE0FB 0x74D4 +0xE0FC 0x73F1 +0xE140 0x74E0 +0xE141 0x74E3 +0xE142 0x74E7 +0xE143 0x74E9 +0xE144 0x74EE +0xE145 0x74F2 +0xE146 0x74F0 +0xE147 0x74F1 +0xE148 0x74F8 +0xE149 0x74F7 +0xE14A 0x7504 +0xE14B 0x7503 +0xE14C 0x7505 +0xE14D 0x750C +0xE14E 0x750E +0xE14F 0x750D +0xE150 0x7515 +0xE151 0x7513 +0xE152 0x751E +0xE153 0x7526 +0xE154 0x752C +0xE155 0x753C +0xE156 0x7544 +0xE157 0x754D +0xE158 0x754A +0xE159 0x7549 +0xE15A 0x755B +0xE15B 0x7546 +0xE15C 0x755A +0xE15D 0x7569 +0xE15E 0x7564 +0xE15F 0x7567 +0xE160 0x756B +0xE161 0x756D +0xE162 0x7578 +0xE163 0x7576 +0xE164 0x7586 +0xE165 0x7587 +0xE166 0x7574 +0xE167 0x758A +0xE168 0x7589 +0xE169 0x7582 +0xE16A 0x7594 +0xE16B 0x759A +0xE16C 0x759D +0xE16D 0x75A5 +0xE16E 0x75A3 +0xE16F 0x75C2 +0xE170 0x75B3 +0xE171 0x75C3 +0xE172 0x75B5 +0xE173 0x75BD +0xE174 0x75B8 +0xE175 0x75BC +0xE176 0x75B1 +0xE177 0x75CD +0xE178 0x75CA +0xE179 0x75D2 +0xE17A 0x75D9 +0xE17B 0x75E3 +0xE17C 0x75DE +0xE17D 0x75FE +0xE17E 0x75FF +0xE180 0x75FC +0xE181 0x7601 +0xE182 0x75F0 +0xE183 0x75FA +0xE184 0x75F2 +0xE185 0x75F3 +0xE186 0x760B +0xE187 0x760D +0xE188 0x7609 +0xE189 0x761F +0xE18A 0x7627 +0xE18B 0x7620 +0xE18C 0x7621 +0xE18D 0x7622 +0xE18E 0x7624 +0xE18F 0x7634 +0xE190 0x7630 +0xE191 0x763B +0xE192 0x7647 +0xE193 0x7648 +0xE194 0x7646 +0xE195 0x765C +0xE196 0x7658 +0xE197 0x7661 +0xE198 0x7662 +0xE199 0x7668 +0xE19A 0x7669 +0xE19B 0x766A +0xE19C 0x7667 +0xE19D 0x766C +0xE19E 0x7670 +0xE19F 0x7672 +0xE1A0 0x7676 +0xE1A1 0x7678 +0xE1A2 0x767C +0xE1A3 0x7680 +0xE1A4 0x7683 +0xE1A5 0x7688 +0xE1A6 0x768B +0xE1A7 0x768E +0xE1A8 0x7696 +0xE1A9 0x7693 +0xE1AA 0x7699 +0xE1AB 0x769A +0xE1AC 0x76B0 +0xE1AD 0x76B4 +0xE1AE 0x76B8 +0xE1AF 0x76B9 +0xE1B0 0x76BA +0xE1B1 0x76C2 +0xE1B2 0x76CD +0xE1B3 0x76D6 +0xE1B4 0x76D2 +0xE1B5 0x76DE +0xE1B6 0x76E1 +0xE1B7 0x76E5 +0xE1B8 0x76E7 +0xE1B9 0x76EA +0xE1BA 0x862F +0xE1BB 0x76FB +0xE1BC 0x7708 +0xE1BD 0x7707 +0xE1BE 0x7704 +0xE1BF 0x7729 +0xE1C0 0x7724 +0xE1C1 0x771E +0xE1C2 0x7725 +0xE1C3 0x7726 +0xE1C4 0x771B +0xE1C5 0x7737 +0xE1C6 0x7738 +0xE1C7 0x7747 +0xE1C8 0x775A +0xE1C9 0x7768 +0xE1CA 0x776B +0xE1CB 0x775B +0xE1CC 0x7765 +0xE1CD 0x777F +0xE1CE 0x777E +0xE1CF 0x7779 +0xE1D0 0x778E +0xE1D1 0x778B +0xE1D2 0x7791 +0xE1D3 0x77A0 +0xE1D4 0x779E +0xE1D5 0x77B0 +0xE1D6 0x77B6 +0xE1D7 0x77B9 +0xE1D8 0x77BF +0xE1D9 0x77BC +0xE1DA 0x77BD +0xE1DB 0x77BB +0xE1DC 0x77C7 +0xE1DD 0x77CD +0xE1DE 0x77D7 +0xE1DF 0x77DA +0xE1E0 0x77DC +0xE1E1 0x77E3 +0xE1E2 0x77EE +0xE1E3 0x77FC +0xE1E4 0x780C +0xE1E5 0x7812 +0xE1E6 0x7926 +0xE1E7 0x7820 +0xE1E8 0x792A +0xE1E9 0x7845 +0xE1EA 0x788E +0xE1EB 0x7874 +0xE1EC 0x7886 +0xE1ED 0x787C +0xE1EE 0x789A +0xE1EF 0x788C +0xE1F0 0x78A3 +0xE1F1 0x78B5 +0xE1F2 0x78AA +0xE1F3 0x78AF +0xE1F4 0x78D1 +0xE1F5 0x78C6 +0xE1F6 0x78CB +0xE1F7 0x78D4 +0xE1F8 0x78BE +0xE1F9 0x78BC +0xE1FA 0x78C5 +0xE1FB 0x78CA +0xE1FC 0x78EC +0xE240 0x78E7 +0xE241 0x78DA +0xE242 0x78FD +0xE243 0x78F4 +0xE244 0x7907 +0xE245 0x7912 +0xE246 0x7911 +0xE247 0x7919 +0xE248 0x792C +0xE249 0x792B +0xE24A 0x7940 +0xE24B 0x7960 +0xE24C 0x7957 +0xE24D 0x795F +0xE24E 0x795A +0xE24F 0x7955 +0xE250 0x7953 +0xE251 0x797A +0xE252 0x797F +0xE253 0x798A +0xE254 0x799D +0xE255 0x79A7 +0xE256 0x9F4B +0xE257 0x79AA +0xE258 0x79AE +0xE259 0x79B3 +0xE25A 0x79B9 +0xE25B 0x79BA +0xE25C 0x79C9 +0xE25D 0x79D5 +0xE25E 0x79E7 +0xE25F 0x79EC +0xE260 0x79E1 +0xE261 0x79E3 +0xE262 0x7A08 +0xE263 0x7A0D +0xE264 0x7A18 +0xE265 0x7A19 +0xE266 0x7A20 +0xE267 0x7A1F +0xE268 0x7980 +0xE269 0x7A31 +0xE26A 0x7A3B +0xE26B 0x7A3E +0xE26C 0x7A37 +0xE26D 0x7A43 +0xE26E 0x7A57 +0xE26F 0x7A49 +0xE270 0x7A61 +0xE271 0x7A62 +0xE272 0x7A69 +0xE273 0x9F9D +0xE274 0x7A70 +0xE275 0x7A79 +0xE276 0x7A7D +0xE277 0x7A88 +0xE278 0x7A97 +0xE279 0x7A95 +0xE27A 0x7A98 +0xE27B 0x7A96 +0xE27C 0x7AA9 +0xE27D 0x7AC8 +0xE27E 0x7AB0 +0xE280 0x7AB6 +0xE281 0x7AC5 +0xE282 0x7AC4 +0xE283 0x7ABF +0xE284 0x9083 +0xE285 0x7AC7 +0xE286 0x7ACA +0xE287 0x7ACD +0xE288 0x7ACF +0xE289 0x7AD5 +0xE28A 0x7AD3 +0xE28B 0x7AD9 +0xE28C 0x7ADA +0xE28D 0x7ADD +0xE28E 0x7AE1 +0xE28F 0x7AE2 +0xE290 0x7AE6 +0xE291 0x7AED +0xE292 0x7AF0 +0xE293 0x7B02 +0xE294 0x7B0F +0xE295 0x7B0A +0xE296 0x7B06 +0xE297 0x7B33 +0xE298 0x7B18 +0xE299 0x7B19 +0xE29A 0x7B1E +0xE29B 0x7B35 +0xE29C 0x7B28 +0xE29D 0x7B36 +0xE29E 0x7B50 +0xE29F 0x7B7A +0xE2A0 0x7B04 +0xE2A1 0x7B4D +0xE2A2 0x7B0B +0xE2A3 0x7B4C +0xE2A4 0x7B45 +0xE2A5 0x7B75 +0xE2A6 0x7B65 +0xE2A7 0x7B74 +0xE2A8 0x7B67 +0xE2A9 0x7B70 +0xE2AA 0x7B71 +0xE2AB 0x7B6C +0xE2AC 0x7B6E +0xE2AD 0x7B9D +0xE2AE 0x7B98 +0xE2AF 0x7B9F +0xE2B0 0x7B8D +0xE2B1 0x7B9C +0xE2B2 0x7B9A +0xE2B3 0x7B8B +0xE2B4 0x7B92 +0xE2B5 0x7B8F +0xE2B6 0x7B5D +0xE2B7 0x7B99 +0xE2B8 0x7BCB +0xE2B9 0x7BC1 +0xE2BA 0x7BCC +0xE2BB 0x7BCF +0xE2BC 0x7BB4 +0xE2BD 0x7BC6 +0xE2BE 0x7BDD +0xE2BF 0x7BE9 +0xE2C0 0x7C11 +0xE2C1 0x7C14 +0xE2C2 0x7BE6 +0xE2C3 0x7BE5 +0xE2C4 0x7C60 +0xE2C5 0x7C00 +0xE2C6 0x7C07 +0xE2C7 0x7C13 +0xE2C8 0x7BF3 +0xE2C9 0x7BF7 +0xE2CA 0x7C17 +0xE2CB 0x7C0D +0xE2CC 0x7BF6 +0xE2CD 0x7C23 +0xE2CE 0x7C27 +0xE2CF 0x7C2A +0xE2D0 0x7C1F +0xE2D1 0x7C37 +0xE2D2 0x7C2B +0xE2D3 0x7C3D +0xE2D4 0x7C4C +0xE2D5 0x7C43 +0xE2D6 0x7C54 +0xE2D7 0x7C4F +0xE2D8 0x7C40 +0xE2D9 0x7C50 +0xE2DA 0x7C58 +0xE2DB 0x7C5F +0xE2DC 0x7C64 +0xE2DD 0x7C56 +0xE2DE 0x7C65 +0xE2DF 0x7C6C +0xE2E0 0x7C75 +0xE2E1 0x7C83 +0xE2E2 0x7C90 +0xE2E3 0x7CA4 +0xE2E4 0x7CAD +0xE2E5 0x7CA2 +0xE2E6 0x7CAB +0xE2E7 0x7CA1 +0xE2E8 0x7CA8 +0xE2E9 0x7CB3 +0xE2EA 0x7CB2 +0xE2EB 0x7CB1 +0xE2EC 0x7CAE +0xE2ED 0x7CB9 +0xE2EE 0x7CBD +0xE2EF 0x7CC0 +0xE2F0 0x7CC5 +0xE2F1 0x7CC2 +0xE2F2 0x7CD8 +0xE2F3 0x7CD2 +0xE2F4 0x7CDC +0xE2F5 0x7CE2 +0xE2F6 0x9B3B +0xE2F7 0x7CEF +0xE2F8 0x7CF2 +0xE2F9 0x7CF4 +0xE2FA 0x7CF6 +0xE2FB 0x7CFA +0xE2FC 0x7D06 +0xE340 0x7D02 +0xE341 0x7D1C +0xE342 0x7D15 +0xE343 0x7D0A +0xE344 0x7D45 +0xE345 0x7D4B +0xE346 0x7D2E +0xE347 0x7D32 +0xE348 0x7D3F +0xE349 0x7D35 +0xE34A 0x7D46 +0xE34B 0x7D73 +0xE34C 0x7D56 +0xE34D 0x7D4E +0xE34E 0x7D72 +0xE34F 0x7D68 +0xE350 0x7D6E +0xE351 0x7D4F +0xE352 0x7D63 +0xE353 0x7D93 +0xE354 0x7D89 +0xE355 0x7D5B +0xE356 0x7D8F +0xE357 0x7D7D +0xE358 0x7D9B +0xE359 0x7DBA +0xE35A 0x7DAE +0xE35B 0x7DA3 +0xE35C 0x7DB5 +0xE35D 0x7DC7 +0xE35E 0x7DBD +0xE35F 0x7DAB +0xE360 0x7E3D +0xE361 0x7DA2 +0xE362 0x7DAF +0xE363 0x7DDC +0xE364 0x7DB8 +0xE365 0x7D9F +0xE366 0x7DB0 +0xE367 0x7DD8 +0xE368 0x7DDD +0xE369 0x7DE4 +0xE36A 0x7DDE +0xE36B 0x7DFB +0xE36C 0x7DF2 +0xE36D 0x7DE1 +0xE36E 0x7E05 +0xE36F 0x7E0A +0xE370 0x7E23 +0xE371 0x7E21 +0xE372 0x7E12 +0xE373 0x7E31 +0xE374 0x7E1F +0xE375 0x7E09 +0xE376 0x7E0B +0xE377 0x7E22 +0xE378 0x7E46 +0xE379 0x7E66 +0xE37A 0x7E3B +0xE37B 0x7E35 +0xE37C 0x7E39 +0xE37D 0x7E43 +0xE37E 0x7E37 +0xE380 0x7E32 +0xE381 0x7E3A +0xE382 0x7E67 +0xE383 0x7E5D +0xE384 0x7E56 +0xE385 0x7E5E +0xE386 0x7E59 +0xE387 0x7E5A +0xE388 0x7E79 +0xE389 0x7E6A +0xE38A 0x7E69 +0xE38B 0x7E7C +0xE38C 0x7E7B +0xE38D 0x7E83 +0xE38E 0x7DD5 +0xE38F 0x7E7D +0xE390 0x8FAE +0xE391 0x7E7F +0xE392 0x7E88 +0xE393 0x7E89 +0xE394 0x7E8C +0xE395 0x7E92 +0xE396 0x7E90 +0xE397 0x7E93 +0xE398 0x7E94 +0xE399 0x7E96 +0xE39A 0x7E8E +0xE39B 0x7E9B +0xE39C 0x7E9C +0xE39D 0x7F38 +0xE39E 0x7F3A +0xE39F 0x7F45 +0xE3A0 0x7F4C +0xE3A1 0x7F4D +0xE3A2 0x7F4E +0xE3A3 0x7F50 +0xE3A4 0x7F51 +0xE3A5 0x7F55 +0xE3A6 0x7F54 +0xE3A7 0x7F58 +0xE3A8 0x7F5F +0xE3A9 0x7F60 +0xE3AA 0x7F68 +0xE3AB 0x7F69 +0xE3AC 0x7F67 +0xE3AD 0x7F78 +0xE3AE 0x7F82 +0xE3AF 0x7F86 +0xE3B0 0x7F83 +0xE3B1 0x7F88 +0xE3B2 0x7F87 +0xE3B3 0x7F8C +0xE3B4 0x7F94 +0xE3B5 0x7F9E +0xE3B6 0x7F9D +0xE3B7 0x7F9A +0xE3B8 0x7FA3 +0xE3B9 0x7FAF +0xE3BA 0x7FB2 +0xE3BB 0x7FB9 +0xE3BC 0x7FAE +0xE3BD 0x7FB6 +0xE3BE 0x7FB8 +0xE3BF 0x8B71 +0xE3C0 0x7FC5 +0xE3C1 0x7FC6 +0xE3C2 0x7FCA +0xE3C3 0x7FD5 +0xE3C4 0x7FD4 +0xE3C5 0x7FE1 +0xE3C6 0x7FE6 +0xE3C7 0x7FE9 +0xE3C8 0x7FF3 +0xE3C9 0x7FF9 +0xE3CA 0x98DC +0xE3CB 0x8006 +0xE3CC 0x8004 +0xE3CD 0x800B +0xE3CE 0x8012 +0xE3CF 0x8018 +0xE3D0 0x8019 +0xE3D1 0x801C +0xE3D2 0x8021 +0xE3D3 0x8028 +0xE3D4 0x803F +0xE3D5 0x803B +0xE3D6 0x804A +0xE3D7 0x8046 +0xE3D8 0x8052 +0xE3D9 0x8058 +0xE3DA 0x805A +0xE3DB 0x805F +0xE3DC 0x8062 +0xE3DD 0x8068 +0xE3DE 0x8073 +0xE3DF 0x8072 +0xE3E0 0x8070 +0xE3E1 0x8076 +0xE3E2 0x8079 +0xE3E3 0x807D +0xE3E4 0x807F +0xE3E5 0x8084 +0xE3E6 0x8086 +0xE3E7 0x8085 +0xE3E8 0x809B +0xE3E9 0x8093 +0xE3EA 0x809A +0xE3EB 0x80AD +0xE3EC 0x5190 +0xE3ED 0x80AC +0xE3EE 0x80DB +0xE3EF 0x80E5 +0xE3F0 0x80D9 +0xE3F1 0x80DD +0xE3F2 0x80C4 +0xE3F3 0x80DA +0xE3F4 0x80D6 +0xE3F5 0x8109 +0xE3F6 0x80EF +0xE3F7 0x80F1 +0xE3F8 0x811B +0xE3F9 0x8129 +0xE3FA 0x8123 +0xE3FB 0x812F +0xE3FC 0x814B +0xE440 0x968B +0xE441 0x8146 +0xE442 0x813E +0xE443 0x8153 +0xE444 0x8151 +0xE445 0x80FC +0xE446 0x8171 +0xE447 0x816E +0xE448 0x8165 +0xE449 0x8166 +0xE44A 0x8174 +0xE44B 0x8183 +0xE44C 0x8188 +0xE44D 0x818A +0xE44E 0x8180 +0xE44F 0x8182 +0xE450 0x81A0 +0xE451 0x8195 +0xE452 0x81A4 +0xE453 0x81A3 +0xE454 0x815F +0xE455 0x8193 +0xE456 0x81A9 +0xE457 0x81B0 +0xE458 0x81B5 +0xE459 0x81BE +0xE45A 0x81B8 +0xE45B 0x81BD +0xE45C 0x81C0 +0xE45D 0x81C2 +0xE45E 0x81BA +0xE45F 0x81C9 +0xE460 0x81CD +0xE461 0x81D1 +0xE462 0x81D9 +0xE463 0x81D8 +0xE464 0x81C8 +0xE465 0x81DA +0xE466 0x81DF +0xE467 0x81E0 +0xE468 0x81E7 +0xE469 0x81FA +0xE46A 0x81FB +0xE46B 0x81FE +0xE46C 0x8201 +0xE46D 0x8202 +0xE46E 0x8205 +0xE46F 0x8207 +0xE470 0x820A +0xE471 0x820D +0xE472 0x8210 +0xE473 0x8216 +0xE474 0x8229 +0xE475 0x822B +0xE476 0x8238 +0xE477 0x8233 +0xE478 0x8240 +0xE479 0x8259 +0xE47A 0x8258 +0xE47B 0x825D +0xE47C 0x825A +0xE47D 0x825F +0xE47E 0x8264 +0xE480 0x8262 +0xE481 0x8268 +0xE482 0x826A +0xE483 0x826B +0xE484 0x822E +0xE485 0x8271 +0xE486 0x8277 +0xE487 0x8278 +0xE488 0x827E +0xE489 0x828D +0xE48A 0x8292 +0xE48B 0x82AB +0xE48C 0x829F +0xE48D 0x82BB +0xE48E 0x82AC +0xE48F 0x82E1 +0xE490 0x82E3 +0xE491 0x82DF +0xE492 0x82D2 +0xE493 0x82F4 +0xE494 0x82F3 +0xE495 0x82FA +0xE496 0x8393 +0xE497 0x8303 +0xE498 0x82FB +0xE499 0x82F9 +0xE49A 0x82DE +0xE49B 0x8306 +0xE49C 0x82DC +0xE49D 0x8309 +0xE49E 0x82D9 +0xE49F 0x8335 +0xE4A0 0x8334 +0xE4A1 0x8316 +0xE4A2 0x8332 +0xE4A3 0x8331 +0xE4A4 0x8340 +0xE4A5 0x8339 +0xE4A6 0x8350 +0xE4A7 0x8345 +0xE4A8 0x832F +0xE4A9 0x832B +0xE4AA 0x8317 +0xE4AB 0x8318 +0xE4AC 0x8385 +0xE4AD 0x839A +0xE4AE 0x83AA +0xE4AF 0x839F +0xE4B0 0x83A2 +0xE4B1 0x8396 +0xE4B2 0x8323 +0xE4B3 0x838E +0xE4B4 0x8387 +0xE4B5 0x838A +0xE4B6 0x837C +0xE4B7 0x83B5 +0xE4B8 0x8373 +0xE4B9 0x8375 +0xE4BA 0x83A0 +0xE4BB 0x8389 +0xE4BC 0x83A8 +0xE4BD 0x83F4 +0xE4BE 0x8413 +0xE4BF 0x83EB +0xE4C0 0x83CE +0xE4C1 0x83FD +0xE4C2 0x8403 +0xE4C3 0x83D8 +0xE4C4 0x840B +0xE4C5 0x83C1 +0xE4C6 0x83F7 +0xE4C7 0x8407 +0xE4C8 0x83E0 +0xE4C9 0x83F2 +0xE4CA 0x840D +0xE4CB 0x8422 +0xE4CC 0x8420 +0xE4CD 0x83BD +0xE4CE 0x8438 +0xE4CF 0x8506 +0xE4D0 0x83FB +0xE4D1 0x846D +0xE4D2 0x842A +0xE4D3 0x843C +0xE4D4 0x855A +0xE4D5 0x8484 +0xE4D6 0x8477 +0xE4D7 0x846B +0xE4D8 0x84AD +0xE4D9 0x846E +0xE4DA 0x8482 +0xE4DB 0x8469 +0xE4DC 0x8446 +0xE4DD 0x842C +0xE4DE 0x846F +0xE4DF 0x8479 +0xE4E0 0x8435 +0xE4E1 0x84CA +0xE4E2 0x8462 +0xE4E3 0x84B9 +0xE4E4 0x84BF +0xE4E5 0x849F +0xE4E6 0x84D9 +0xE4E7 0x84CD +0xE4E8 0x84BB +0xE4E9 0x84DA +0xE4EA 0x84D0 +0xE4EB 0x84C1 +0xE4EC 0x84C6 +0xE4ED 0x84D6 +0xE4EE 0x84A1 +0xE4EF 0x8521 +0xE4F0 0x84FF +0xE4F1 0x84F4 +0xE4F2 0x8517 +0xE4F3 0x8518 +0xE4F4 0x852C +0xE4F5 0x851F +0xE4F6 0x8515 +0xE4F7 0x8514 +0xE4F8 0x84FC +0xE4F9 0x8540 +0xE4FA 0x8563 +0xE4FB 0x8558 +0xE4FC 0x8548 +0xE540 0x8541 +0xE541 0x8602 +0xE542 0x854B +0xE543 0x8555 +0xE544 0x8580 +0xE545 0x85A4 +0xE546 0x8588 +0xE547 0x8591 +0xE548 0x858A +0xE549 0x85A8 +0xE54A 0x856D +0xE54B 0x8594 +0xE54C 0x859B +0xE54D 0x85EA +0xE54E 0x8587 +0xE54F 0x859C +0xE550 0x8577 +0xE551 0x857E +0xE552 0x8590 +0xE553 0x85C9 +0xE554 0x85BA +0xE555 0x85CF +0xE556 0x85B9 +0xE557 0x85D0 +0xE558 0x85D5 +0xE559 0x85DD +0xE55A 0x85E5 +0xE55B 0x85DC +0xE55C 0x85F9 +0xE55D 0x860A +0xE55E 0x8613 +0xE55F 0x860B +0xE560 0x85FE +0xE561 0x85FA +0xE562 0x8606 +0xE563 0x8622 +0xE564 0x861A +0xE565 0x8630 +0xE566 0x863F +0xE567 0x864D +0xE568 0x4E55 +0xE569 0x8654 +0xE56A 0x865F +0xE56B 0x8667 +0xE56C 0x8671 +0xE56D 0x8693 +0xE56E 0x86A3 +0xE56F 0x86A9 +0xE570 0x86AA +0xE571 0x868B +0xE572 0x868C +0xE573 0x86B6 +0xE574 0x86AF +0xE575 0x86C4 +0xE576 0x86C6 +0xE577 0x86B0 +0xE578 0x86C9 +0xE579 0x8823 +0xE57A 0x86AB +0xE57B 0x86D4 +0xE57C 0x86DE +0xE57D 0x86E9 +0xE57E 0x86EC +0xE580 0x86DF +0xE581 0x86DB +0xE582 0x86EF +0xE583 0x8712 +0xE584 0x8706 +0xE585 0x8708 +0xE586 0x8700 +0xE587 0x8703 +0xE588 0x86FB +0xE589 0x8711 +0xE58A 0x8709 +0xE58B 0x870D +0xE58C 0x86F9 +0xE58D 0x870A +0xE58E 0x8734 +0xE58F 0x873F +0xE590 0x8737 +0xE591 0x873B +0xE592 0x8725 +0xE593 0x8729 +0xE594 0x871A +0xE595 0x8760 +0xE596 0x875F +0xE597 0x8778 +0xE598 0x874C +0xE599 0x874E +0xE59A 0x8774 +0xE59B 0x8757 +0xE59C 0x8768 +0xE59D 0x876E +0xE59E 0x8759 +0xE59F 0x8753 +0xE5A0 0x8763 +0xE5A1 0x876A +0xE5A2 0x8805 +0xE5A3 0x87A2 +0xE5A4 0x879F +0xE5A5 0x8782 +0xE5A6 0x87AF +0xE5A7 0x87CB +0xE5A8 0x87BD +0xE5A9 0x87C0 +0xE5AA 0x87D0 +0xE5AB 0x96D6 +0xE5AC 0x87AB +0xE5AD 0x87C4 +0xE5AE 0x87B3 +0xE5AF 0x87C7 +0xE5B0 0x87C6 +0xE5B1 0x87BB +0xE5B2 0x87EF +0xE5B3 0x87F2 +0xE5B4 0x87E0 +0xE5B5 0x880F +0xE5B6 0x880D +0xE5B7 0x87FE +0xE5B8 0x87F6 +0xE5B9 0x87F7 +0xE5BA 0x880E +0xE5BB 0x87D2 +0xE5BC 0x8811 +0xE5BD 0x8816 +0xE5BE 0x8815 +0xE5BF 0x8822 +0xE5C0 0x8821 +0xE5C1 0x8831 +0xE5C2 0x8836 +0xE5C3 0x8839 +0xE5C4 0x8827 +0xE5C5 0x883B +0xE5C6 0x8844 +0xE5C7 0x8842 +0xE5C8 0x8852 +0xE5C9 0x8859 +0xE5CA 0x885E +0xE5CB 0x8862 +0xE5CC 0x886B +0xE5CD 0x8881 +0xE5CE 0x887E +0xE5CF 0x889E +0xE5D0 0x8875 +0xE5D1 0x887D +0xE5D2 0x88B5 +0xE5D3 0x8872 +0xE5D4 0x8882 +0xE5D5 0x8897 +0xE5D6 0x8892 +0xE5D7 0x88AE +0xE5D8 0x8899 +0xE5D9 0x88A2 +0xE5DA 0x888D +0xE5DB 0x88A4 +0xE5DC 0x88B0 +0xE5DD 0x88BF +0xE5DE 0x88B1 +0xE5DF 0x88C3 +0xE5E0 0x88C4 +0xE5E1 0x88D4 +0xE5E2 0x88D8 +0xE5E3 0x88D9 +0xE5E4 0x88DD +0xE5E5 0x88F9 +0xE5E6 0x8902 +0xE5E7 0x88FC +0xE5E8 0x88F4 +0xE5E9 0x88E8 +0xE5EA 0x88F2 +0xE5EB 0x8904 +0xE5EC 0x890C +0xE5ED 0x890A +0xE5EE 0x8913 +0xE5EF 0x8943 +0xE5F0 0x891E +0xE5F1 0x8925 +0xE5F2 0x892A +0xE5F3 0x892B +0xE5F4 0x8941 +0xE5F5 0x8944 +0xE5F6 0x893B +0xE5F7 0x8936 +0xE5F8 0x8938 +0xE5F9 0x894C +0xE5FA 0x891D +0xE5FB 0x8960 +0xE5FC 0x895E +0xE640 0x8966 +0xE641 0x8964 +0xE642 0x896D +0xE643 0x896A +0xE644 0x896F +0xE645 0x8974 +0xE646 0x8977 +0xE647 0x897E +0xE648 0x8983 +0xE649 0x8988 +0xE64A 0x898A +0xE64B 0x8993 +0xE64C 0x8998 +0xE64D 0x89A1 +0xE64E 0x89A9 +0xE64F 0x89A6 +0xE650 0x89AC +0xE651 0x89AF +0xE652 0x89B2 +0xE653 0x89BA +0xE654 0x89BD +0xE655 0x89BF +0xE656 0x89C0 +0xE657 0x89DA +0xE658 0x89DC +0xE659 0x89DD +0xE65A 0x89E7 +0xE65B 0x89F4 +0xE65C 0x89F8 +0xE65D 0x8A03 +0xE65E 0x8A16 +0xE65F 0x8A10 +0xE660 0x8A0C +0xE661 0x8A1B +0xE662 0x8A1D +0xE663 0x8A25 +0xE664 0x8A36 +0xE665 0x8A41 +0xE666 0x8A5B +0xE667 0x8A52 +0xE668 0x8A46 +0xE669 0x8A48 +0xE66A 0x8A7C +0xE66B 0x8A6D +0xE66C 0x8A6C +0xE66D 0x8A62 +0xE66E 0x8A85 +0xE66F 0x8A82 +0xE670 0x8A84 +0xE671 0x8AA8 +0xE672 0x8AA1 +0xE673 0x8A91 +0xE674 0x8AA5 +0xE675 0x8AA6 +0xE676 0x8A9A +0xE677 0x8AA3 +0xE678 0x8AC4 +0xE679 0x8ACD +0xE67A 0x8AC2 +0xE67B 0x8ADA +0xE67C 0x8AEB +0xE67D 0x8AF3 +0xE67E 0x8AE7 +0xE680 0x8AE4 +0xE681 0x8AF1 +0xE682 0x8B14 +0xE683 0x8AE0 +0xE684 0x8AE2 +0xE685 0x8AF7 +0xE686 0x8ADE +0xE687 0x8ADB +0xE688 0x8B0C +0xE689 0x8B07 +0xE68A 0x8B1A +0xE68B 0x8AE1 +0xE68C 0x8B16 +0xE68D 0x8B10 +0xE68E 0x8B17 +0xE68F 0x8B20 +0xE690 0x8B33 +0xE691 0x97AB +0xE692 0x8B26 +0xE693 0x8B2B +0xE694 0x8B3E +0xE695 0x8B28 +0xE696 0x8B41 +0xE697 0x8B4C +0xE698 0x8B4F +0xE699 0x8B4E +0xE69A 0x8B49 +0xE69B 0x8B56 +0xE69C 0x8B5B +0xE69D 0x8B5A +0xE69E 0x8B6B +0xE69F 0x8B5F +0xE6A0 0x8B6C +0xE6A1 0x8B6F +0xE6A2 0x8B74 +0xE6A3 0x8B7D +0xE6A4 0x8B80 +0xE6A5 0x8B8C +0xE6A6 0x8B8E +0xE6A7 0x8B92 +0xE6A8 0x8B93 +0xE6A9 0x8B96 +0xE6AA 0x8B99 +0xE6AB 0x8B9A +0xE6AC 0x8C3A +0xE6AD 0x8C41 +0xE6AE 0x8C3F +0xE6AF 0x8C48 +0xE6B0 0x8C4C +0xE6B1 0x8C4E +0xE6B2 0x8C50 +0xE6B3 0x8C55 +0xE6B4 0x8C62 +0xE6B5 0x8C6C +0xE6B6 0x8C78 +0xE6B7 0x8C7A +0xE6B8 0x8C82 +0xE6B9 0x8C89 +0xE6BA 0x8C85 +0xE6BB 0x8C8A +0xE6BC 0x8C8D +0xE6BD 0x8C8E +0xE6BE 0x8C94 +0xE6BF 0x8C7C +0xE6C0 0x8C98 +0xE6C1 0x621D +0xE6C2 0x8CAD +0xE6C3 0x8CAA +0xE6C4 0x8CBD +0xE6C5 0x8CB2 +0xE6C6 0x8CB3 +0xE6C7 0x8CAE +0xE6C8 0x8CB6 +0xE6C9 0x8CC8 +0xE6CA 0x8CC1 +0xE6CB 0x8CE4 +0xE6CC 0x8CE3 +0xE6CD 0x8CDA +0xE6CE 0x8CFD +0xE6CF 0x8CFA +0xE6D0 0x8CFB +0xE6D1 0x8D04 +0xE6D2 0x8D05 +0xE6D3 0x8D0A +0xE6D4 0x8D07 +0xE6D5 0x8D0F +0xE6D6 0x8D0D +0xE6D7 0x8D10 +0xE6D8 0x9F4E +0xE6D9 0x8D13 +0xE6DA 0x8CCD +0xE6DB 0x8D14 +0xE6DC 0x8D16 +0xE6DD 0x8D67 +0xE6DE 0x8D6D +0xE6DF 0x8D71 +0xE6E0 0x8D73 +0xE6E1 0x8D81 +0xE6E2 0x8D99 +0xE6E3 0x8DC2 +0xE6E4 0x8DBE +0xE6E5 0x8DBA +0xE6E6 0x8DCF +0xE6E7 0x8DDA +0xE6E8 0x8DD6 +0xE6E9 0x8DCC +0xE6EA 0x8DDB +0xE6EB 0x8DCB +0xE6EC 0x8DEA +0xE6ED 0x8DEB +0xE6EE 0x8DDF +0xE6EF 0x8DE3 +0xE6F0 0x8DFC +0xE6F1 0x8E08 +0xE6F2 0x8E09 +0xE6F3 0x8DFF +0xE6F4 0x8E1D +0xE6F5 0x8E1E +0xE6F6 0x8E10 +0xE6F7 0x8E1F +0xE6F8 0x8E42 +0xE6F9 0x8E35 +0xE6FA 0x8E30 +0xE6FB 0x8E34 +0xE6FC 0x8E4A +0xE740 0x8E47 +0xE741 0x8E49 +0xE742 0x8E4C +0xE743 0x8E50 +0xE744 0x8E48 +0xE745 0x8E59 +0xE746 0x8E64 +0xE747 0x8E60 +0xE748 0x8E2A +0xE749 0x8E63 +0xE74A 0x8E55 +0xE74B 0x8E76 +0xE74C 0x8E72 +0xE74D 0x8E7C +0xE74E 0x8E81 +0xE74F 0x8E87 +0xE750 0x8E85 +0xE751 0x8E84 +0xE752 0x8E8B +0xE753 0x8E8A +0xE754 0x8E93 +0xE755 0x8E91 +0xE756 0x8E94 +0xE757 0x8E99 +0xE758 0x8EAA +0xE759 0x8EA1 +0xE75A 0x8EAC +0xE75B 0x8EB0 +0xE75C 0x8EC6 +0xE75D 0x8EB1 +0xE75E 0x8EBE +0xE75F 0x8EC5 +0xE760 0x8EC8 +0xE761 0x8ECB +0xE762 0x8EDB +0xE763 0x8EE3 +0xE764 0x8EFC +0xE765 0x8EFB +0xE766 0x8EEB +0xE767 0x8EFE +0xE768 0x8F0A +0xE769 0x8F05 +0xE76A 0x8F15 +0xE76B 0x8F12 +0xE76C 0x8F19 +0xE76D 0x8F13 +0xE76E 0x8F1C +0xE76F 0x8F1F +0xE770 0x8F1B +0xE771 0x8F0C +0xE772 0x8F26 +0xE773 0x8F33 +0xE774 0x8F3B +0xE775 0x8F39 +0xE776 0x8F45 +0xE777 0x8F42 +0xE778 0x8F3E +0xE779 0x8F4C +0xE77A 0x8F49 +0xE77B 0x8F46 +0xE77C 0x8F4E +0xE77D 0x8F57 +0xE77E 0x8F5C +0xE780 0x8F62 +0xE781 0x8F63 +0xE782 0x8F64 +0xE783 0x8F9C +0xE784 0x8F9F +0xE785 0x8FA3 +0xE786 0x8FAD +0xE787 0x8FAF +0xE788 0x8FB7 +0xE789 0x8FDA +0xE78A 0x8FE5 +0xE78B 0x8FE2 +0xE78C 0x8FEA +0xE78D 0x8FEF +0xE78E 0x9087 +0xE78F 0x8FF4 +0xE790 0x9005 +0xE791 0x8FF9 +0xE792 0x8FFA +0xE793 0x9011 +0xE794 0x9015 +0xE795 0x9021 +0xE796 0x900D +0xE797 0x901E +0xE798 0x9016 +0xE799 0x900B +0xE79A 0x9027 +0xE79B 0x9036 +0xE79C 0x9035 +0xE79D 0x9039 +0xE79E 0x8FF8 +0xE79F 0x904F +0xE7A0 0x9050 +0xE7A1 0x9051 +0xE7A2 0x9052 +0xE7A3 0x900E +0xE7A4 0x9049 +0xE7A5 0x903E +0xE7A6 0x9056 +0xE7A7 0x9058 +0xE7A8 0x905E +0xE7A9 0x9068 +0xE7AA 0x906F +0xE7AB 0x9076 +0xE7AC 0x96A8 +0xE7AD 0x9072 +0xE7AE 0x9082 +0xE7AF 0x907D +0xE7B0 0x9081 +0xE7B1 0x9080 +0xE7B2 0x908A +0xE7B3 0x9089 +0xE7B4 0x908F +0xE7B5 0x90A8 +0xE7B6 0x90AF +0xE7B7 0x90B1 +0xE7B8 0x90B5 +0xE7B9 0x90E2 +0xE7BA 0x90E4 +0xE7BB 0x6248 +0xE7BC 0x90DB +0xE7BD 0x9102 +0xE7BE 0x9112 +0xE7BF 0x9119 +0xE7C0 0x9132 +0xE7C1 0x9130 +0xE7C2 0x914A +0xE7C3 0x9156 +0xE7C4 0x9158 +0xE7C5 0x9163 +0xE7C6 0x9165 +0xE7C7 0x9169 +0xE7C8 0x9173 +0xE7C9 0x9172 +0xE7CA 0x918B +0xE7CB 0x9189 +0xE7CC 0x9182 +0xE7CD 0x91A2 +0xE7CE 0x91AB +0xE7CF 0x91AF +0xE7D0 0x91AA +0xE7D1 0x91B5 +0xE7D2 0x91B4 +0xE7D3 0x91BA +0xE7D4 0x91C0 +0xE7D5 0x91C1 +0xE7D6 0x91C9 +0xE7D7 0x91CB +0xE7D8 0x91D0 +0xE7D9 0x91D6 +0xE7DA 0x91DF +0xE7DB 0x91E1 +0xE7DC 0x91DB +0xE7DD 0x91FC +0xE7DE 0x91F5 +0xE7DF 0x91F6 +0xE7E0 0x921E +0xE7E1 0x91FF +0xE7E2 0x9214 +0xE7E3 0x922C +0xE7E4 0x9215 +0xE7E5 0x9211 +0xE7E6 0x925E +0xE7E7 0x9257 +0xE7E8 0x9245 +0xE7E9 0x9249 +0xE7EA 0x9264 +0xE7EB 0x9248 +0xE7EC 0x9295 +0xE7ED 0x923F +0xE7EE 0x924B +0xE7EF 0x9250 +0xE7F0 0x929C +0xE7F1 0x9296 +0xE7F2 0x9293 +0xE7F3 0x929B +0xE7F4 0x925A +0xE7F5 0x92CF +0xE7F6 0x92B9 +0xE7F7 0x92B7 +0xE7F8 0x92E9 +0xE7F9 0x930F +0xE7FA 0x92FA +0xE7FB 0x9344 +0xE7FC 0x932E +0xE840 0x9319 +0xE841 0x9322 +0xE842 0x931A +0xE843 0x9323 +0xE844 0x933A +0xE845 0x9335 +0xE846 0x933B +0xE847 0x935C +0xE848 0x9360 +0xE849 0x937C +0xE84A 0x936E +0xE84B 0x9356 +0xE84C 0x93B0 +0xE84D 0x93AC +0xE84E 0x93AD +0xE84F 0x9394 +0xE850 0x93B9 +0xE851 0x93D6 +0xE852 0x93D7 +0xE853 0x93E8 +0xE854 0x93E5 +0xE855 0x93D8 +0xE856 0x93C3 +0xE857 0x93DD +0xE858 0x93D0 +0xE859 0x93C8 +0xE85A 0x93E4 +0xE85B 0x941A +0xE85C 0x9414 +0xE85D 0x9413 +0xE85E 0x9403 +0xE85F 0x9407 +0xE860 0x9410 +0xE861 0x9436 +0xE862 0x942B +0xE863 0x9435 +0xE864 0x9421 +0xE865 0x943A +0xE866 0x9441 +0xE867 0x9452 +0xE868 0x9444 +0xE869 0x945B +0xE86A 0x9460 +0xE86B 0x9462 +0xE86C 0x945E +0xE86D 0x946A +0xE86E 0x9229 +0xE86F 0x9470 +0xE870 0x9475 +0xE871 0x9477 +0xE872 0x947D +0xE873 0x945A +0xE874 0x947C +0xE875 0x947E +0xE876 0x9481 +0xE877 0x947F +0xE878 0x9582 +0xE879 0x9587 +0xE87A 0x958A +0xE87B 0x9594 +0xE87C 0x9596 +0xE87D 0x9598 +0xE87E 0x9599 +0xE880 0x95A0 +0xE881 0x95A8 +0xE882 0x95A7 +0xE883 0x95AD +0xE884 0x95BC +0xE885 0x95BB +0xE886 0x95B9 +0xE887 0x95BE +0xE888 0x95CA +0xE889 0x6FF6 +0xE88A 0x95C3 +0xE88B 0x95CD +0xE88C 0x95CC +0xE88D 0x95D5 +0xE88E 0x95D4 +0xE88F 0x95D6 +0xE890 0x95DC +0xE891 0x95E1 +0xE892 0x95E5 +0xE893 0x95E2 +0xE894 0x9621 +0xE895 0x9628 +0xE896 0x962E +0xE897 0x962F +0xE898 0x9642 +0xE899 0x964C +0xE89A 0x964F +0xE89B 0x964B +0xE89C 0x9677 +0xE89D 0x965C +0xE89E 0x965E +0xE89F 0x965D +0xE8A0 0x965F +0xE8A1 0x9666 +0xE8A2 0x9672 +0xE8A3 0x966C +0xE8A4 0x968D +0xE8A5 0x9698 +0xE8A6 0x9695 +0xE8A7 0x9697 +0xE8A8 0x96AA +0xE8A9 0x96A7 +0xE8AA 0x96B1 +0xE8AB 0x96B2 +0xE8AC 0x96B0 +0xE8AD 0x96B4 +0xE8AE 0x96B6 +0xE8AF 0x96B8 +0xE8B0 0x96B9 +0xE8B1 0x96CE +0xE8B2 0x96CB +0xE8B3 0x96C9 +0xE8B4 0x96CD +0xE8B5 0x894D +0xE8B6 0x96DC +0xE8B7 0x970D +0xE8B8 0x96D5 +0xE8B9 0x96F9 +0xE8BA 0x9704 +0xE8BB 0x9706 +0xE8BC 0x9708 +0xE8BD 0x9713 +0xE8BE 0x970E +0xE8BF 0x9711 +0xE8C0 0x970F +0xE8C1 0x9716 +0xE8C2 0x9719 +0xE8C3 0x9724 +0xE8C4 0x972A +0xE8C5 0x9730 +0xE8C6 0x9739 +0xE8C7 0x973D +0xE8C8 0x973E +0xE8C9 0x9744 +0xE8CA 0x9746 +0xE8CB 0x9748 +0xE8CC 0x9742 +0xE8CD 0x9749 +0xE8CE 0x975C +0xE8CF 0x9760 +0xE8D0 0x9764 +0xE8D1 0x9766 +0xE8D2 0x9768 +0xE8D3 0x52D2 +0xE8D4 0x976B +0xE8D5 0x9771 +0xE8D6 0x9779 +0xE8D7 0x9785 +0xE8D8 0x977C +0xE8D9 0x9781 +0xE8DA 0x977A +0xE8DB 0x9786 +0xE8DC 0x978B +0xE8DD 0x978F +0xE8DE 0x9790 +0xE8DF 0x979C +0xE8E0 0x97A8 +0xE8E1 0x97A6 +0xE8E2 0x97A3 +0xE8E3 0x97B3 +0xE8E4 0x97B4 +0xE8E5 0x97C3 +0xE8E6 0x97C6 +0xE8E7 0x97C8 +0xE8E8 0x97CB +0xE8E9 0x97DC +0xE8EA 0x97ED +0xE8EB 0x9F4F +0xE8EC 0x97F2 +0xE8ED 0x7ADF +0xE8EE 0x97F6 +0xE8EF 0x97F5 +0xE8F0 0x980F +0xE8F1 0x980C +0xE8F2 0x9838 +0xE8F3 0x9824 +0xE8F4 0x9821 +0xE8F5 0x9837 +0xE8F6 0x983D +0xE8F7 0x9846 +0xE8F8 0x984F +0xE8F9 0x984B +0xE8FA 0x986B +0xE8FB 0x986F +0xE8FC 0x9870 +0xE940 0x9871 +0xE941 0x9874 +0xE942 0x9873 +0xE943 0x98AA +0xE944 0x98AF +0xE945 0x98B1 +0xE946 0x98B6 +0xE947 0x98C4 +0xE948 0x98C3 +0xE949 0x98C6 +0xE94A 0x98E9 +0xE94B 0x98EB +0xE94C 0x9903 +0xE94D 0x9909 +0xE94E 0x9912 +0xE94F 0x9914 +0xE950 0x9918 +0xE951 0x9921 +0xE952 0x991D +0xE953 0x991E +0xE954 0x9924 +0xE955 0x9920 +0xE956 0x992C +0xE957 0x992E +0xE958 0x993D +0xE959 0x993E +0xE95A 0x9942 +0xE95B 0x9949 +0xE95C 0x9945 +0xE95D 0x9950 +0xE95E 0x994B +0xE95F 0x9951 +0xE960 0x9952 +0xE961 0x994C +0xE962 0x9955 +0xE963 0x9997 +0xE964 0x9998 +0xE965 0x99A5 +0xE966 0x99AD +0xE967 0x99AE +0xE968 0x99BC +0xE969 0x99DF +0xE96A 0x99DB +0xE96B 0x99DD +0xE96C 0x99D8 +0xE96D 0x99D1 +0xE96E 0x99ED +0xE96F 0x99EE +0xE970 0x99F1 +0xE971 0x99F2 +0xE972 0x99FB +0xE973 0x99F8 +0xE974 0x9A01 +0xE975 0x9A0F +0xE976 0x9A05 +0xE977 0x99E2 +0xE978 0x9A19 +0xE979 0x9A2B +0xE97A 0x9A37 +0xE97B 0x9A45 +0xE97C 0x9A42 +0xE97D 0x9A40 +0xE97E 0x9A43 +0xE980 0x9A3E +0xE981 0x9A55 +0xE982 0x9A4D +0xE983 0x9A5B +0xE984 0x9A57 +0xE985 0x9A5F +0xE986 0x9A62 +0xE987 0x9A65 +0xE988 0x9A64 +0xE989 0x9A69 +0xE98A 0x9A6B +0xE98B 0x9A6A +0xE98C 0x9AAD +0xE98D 0x9AB0 +0xE98E 0x9ABC +0xE98F 0x9AC0 +0xE990 0x9ACF +0xE991 0x9AD1 +0xE992 0x9AD3 +0xE993 0x9AD4 +0xE994 0x9ADE +0xE995 0x9ADF +0xE996 0x9AE2 +0xE997 0x9AE3 +0xE998 0x9AE6 +0xE999 0x9AEF +0xE99A 0x9AEB +0xE99B 0x9AEE +0xE99C 0x9AF4 +0xE99D 0x9AF1 +0xE99E 0x9AF7 +0xE99F 0x9AFB +0xE9A0 0x9B06 +0xE9A1 0x9B18 +0xE9A2 0x9B1A +0xE9A3 0x9B1F +0xE9A4 0x9B22 +0xE9A5 0x9B23 +0xE9A6 0x9B25 +0xE9A7 0x9B27 +0xE9A8 0x9B28 +0xE9A9 0x9B29 +0xE9AA 0x9B2A +0xE9AB 0x9B2E +0xE9AC 0x9B2F +0xE9AD 0x9B32 +0xE9AE 0x9B44 +0xE9AF 0x9B43 +0xE9B0 0x9B4F +0xE9B1 0x9B4D +0xE9B2 0x9B4E +0xE9B3 0x9B51 +0xE9B4 0x9B58 +0xE9B5 0x9B74 +0xE9B6 0x9B93 +0xE9B7 0x9B83 +0xE9B8 0x9B91 +0xE9B9 0x9B96 +0xE9BA 0x9B97 +0xE9BB 0x9B9F +0xE9BC 0x9BA0 +0xE9BD 0x9BA8 +0xE9BE 0x9BB4 +0xE9BF 0x9BC0 +0xE9C0 0x9BCA +0xE9C1 0x9BB9 +0xE9C2 0x9BC6 +0xE9C3 0x9BCF +0xE9C4 0x9BD1 +0xE9C5 0x9BD2 +0xE9C6 0x9BE3 +0xE9C7 0x9BE2 +0xE9C8 0x9BE4 +0xE9C9 0x9BD4 +0xE9CA 0x9BE1 +0xE9CB 0x9C3A +0xE9CC 0x9BF2 +0xE9CD 0x9BF1 +0xE9CE 0x9BF0 +0xE9CF 0x9C15 +0xE9D0 0x9C14 +0xE9D1 0x9C09 +0xE9D2 0x9C13 +0xE9D3 0x9C0C +0xE9D4 0x9C06 +0xE9D5 0x9C08 +0xE9D6 0x9C12 +0xE9D7 0x9C0A +0xE9D8 0x9C04 +0xE9D9 0x9C2E +0xE9DA 0x9C1B +0xE9DB 0x9C25 +0xE9DC 0x9C24 +0xE9DD 0x9C21 +0xE9DE 0x9C30 +0xE9DF 0x9C47 +0xE9E0 0x9C32 +0xE9E1 0x9C46 +0xE9E2 0x9C3E +0xE9E3 0x9C5A +0xE9E4 0x9C60 +0xE9E5 0x9C67 +0xE9E6 0x9C76 +0xE9E7 0x9C78 +0xE9E8 0x9CE7 +0xE9E9 0x9CEC +0xE9EA 0x9CF0 +0xE9EB 0x9D09 +0xE9EC 0x9D08 +0xE9ED 0x9CEB +0xE9EE 0x9D03 +0xE9EF 0x9D06 +0xE9F0 0x9D2A +0xE9F1 0x9D26 +0xE9F2 0x9DAF +0xE9F3 0x9D23 +0xE9F4 0x9D1F +0xE9F5 0x9D44 +0xE9F6 0x9D15 +0xE9F7 0x9D12 +0xE9F8 0x9D41 +0xE9F9 0x9D3F +0xE9FA 0x9D3E +0xE9FB 0x9D46 +0xE9FC 0x9D48 +0xEA40 0x9D5D +0xEA41 0x9D5E +0xEA42 0x9D64 +0xEA43 0x9D51 +0xEA44 0x9D50 +0xEA45 0x9D59 +0xEA46 0x9D72 +0xEA47 0x9D89 +0xEA48 0x9D87 +0xEA49 0x9DAB +0xEA4A 0x9D6F +0xEA4B 0x9D7A +0xEA4C 0x9D9A +0xEA4D 0x9DA4 +0xEA4E 0x9DA9 +0xEA4F 0x9DB2 +0xEA50 0x9DC4 +0xEA51 0x9DC1 +0xEA52 0x9DBB +0xEA53 0x9DB8 +0xEA54 0x9DBA +0xEA55 0x9DC6 +0xEA56 0x9DCF +0xEA57 0x9DC2 +0xEA58 0x9DD9 +0xEA59 0x9DD3 +0xEA5A 0x9DF8 +0xEA5B 0x9DE6 +0xEA5C 0x9DED +0xEA5D 0x9DEF +0xEA5E 0x9DFD +0xEA5F 0x9E1A +0xEA60 0x9E1B +0xEA61 0x9E1E +0xEA62 0x9E75 +0xEA63 0x9E79 +0xEA64 0x9E7D +0xEA65 0x9E81 +0xEA66 0x9E88 +0xEA67 0x9E8B +0xEA68 0x9E8C +0xEA69 0x9E92 +0xEA6A 0x9E95 +0xEA6B 0x9E91 +0xEA6C 0x9E9D +0xEA6D 0x9EA5 +0xEA6E 0x9EA9 +0xEA6F 0x9EB8 +0xEA70 0x9EAA +0xEA71 0x9EAD +0xEA72 0x9761 +0xEA73 0x9ECC +0xEA74 0x9ECE +0xEA75 0x9ECF +0xEA76 0x9ED0 +0xEA77 0x9ED4 +0xEA78 0x9EDC +0xEA79 0x9EDE +0xEA7A 0x9EDD +0xEA7B 0x9EE0 +0xEA7C 0x9EE5 +0xEA7D 0x9EE8 +0xEA7E 0x9EEF +0xEA80 0x9EF4 +0xEA81 0x9EF6 +0xEA82 0x9EF7 +0xEA83 0x9EF9 +0xEA84 0x9EFB +0xEA85 0x9EFC +0xEA86 0x9EFD +0xEA87 0x9F07 +0xEA88 0x9F08 +0xEA89 0x76B7 +0xEA8A 0x9F15 +0xEA8B 0x9F21 +0xEA8C 0x9F2C +0xEA8D 0x9F3E +0xEA8E 0x9F4A +0xEA8F 0x9F52 +0xEA90 0x9F54 +0xEA91 0x9F63 +0xEA92 0x9F5F +0xEA93 0x9F60 +0xEA94 0x9F61 +0xEA95 0x9F66 +0xEA96 0x9F67 +0xEA97 0x9F6C +0xEA98 0x9F6A +0xEA99 0x9F77 +0xEA9A 0x9F72 +0xEA9B 0x9F76 +0xEA9C 0x9F95 +0xEA9D 0x9F9C +0xEA9E 0x9FA0 +0xEA9F 0x582F +0xEAA0 0x69C7 +0xEAA1 0x9059 +0xEAA2 0x7464 +0xEAA3 0x51DC +0xEAA4 0x7199 +0xEAA5 0x5653 +0xEAA6 0x5DE2 +0xEAA7 0x5E14 +0xEAA8 0x5E18 +0xEAA9 0x5E58 +0xEAAA 0x5E5E +0xEAAB 0x5EBE +0xEAAC 0xF928 +0xEAAD 0x5ECB +0xEAAE 0x5EF9 +0xEAAF 0x5F00 +0xEAB0 0x5F02 +0xEAB1 0x5F07 +0xEAB2 0x5F1D +0xEAB3 0x5F23 +0xEAB4 0x5F34 +0xEAB5 0x5F36 +0xEAB6 0x5F3D +0xEAB7 0x5F40 +0xEAB8 0x5F45 +0xEAB9 0x5F54 +0xEABA 0x5F58 +0xEABB 0x5F64 +0xEABC 0x5F67 +0xEABD 0x5F7D +0xEABE 0x5F89 +0xEABF 0x5F9C +0xEAC0 0x5FA7 +0xEAC1 0x5FAF +0xEAC2 0x5FB5 +0xEAC3 0x5FB7 +0xEAC4 0x5FC9 +0xEAC5 0x5FDE +0xEAC6 0x5FE1 +0xEAC7 0x5FE9 +0xEAC8 0x600D +0xEAC9 0x6014 +0xEACA 0x6018 +0xEACB 0x6033 +0xEACC 0x6035 +0xEACD 0x6047 +0xEACE 0xFA3D +0xEACF 0x609D +0xEAD0 0x609E +0xEAD1 0x60CB +0xEAD2 0x60D4 +0xEAD3 0x60D5 +0xEAD4 0x60DD +0xEAD5 0x60F8 +0xEAD6 0x611C +0xEAD7 0x612B +0xEAD8 0x6130 +0xEAD9 0x6137 +0xEADA 0xFA3E +0xEADB 0x618D +0xEADC 0xFA3F +0xEADD 0x61BC +0xEADE 0x61B9 +0xEADF 0xFA40 +0xEAE0 0x6222 +0xEAE1 0x623E +0xEAE2 0x6243 +0xEAE3 0x6256 +0xEAE4 0x625A +0xEAE5 0x626F +0xEAE6 0x6285 +0xEAE7 0x62C4 +0xEAE8 0x62D6 +0xEAE9 0x62FC +0xEAEA 0x630A +0xEAEB 0x6318 +0xEAEC 0x6339 +0xEAED 0x6343 +0xEAEE 0x6365 +0xEAEF 0x637C +0xEAF0 0x63E5 +0xEAF1 0x63ED +0xEAF2 0x63F5 +0xEAF3 0x6410 +0xEAF4 0x6414 +0xEAF5 0x6422 +0xEAF6 0x6479 +0xEAF7 0x6451 +0xEAF8 0x6460 +0xEAF9 0x646D +0xEAFA 0x64CE +0xEAFB 0x64BE +0xEAFC 0x64BF +0xEB40 0x64C4 +0xEB41 0x64CA +0xEB42 0x64D0 +0xEB43 0x64F7 +0xEB44 0x64FB +0xEB45 0x6522 +0xEB46 0x6529 +0xEB47 0xFA41 +0xEB48 0x6567 +0xEB49 0x659D +0xEB4A 0xFA42 +0xEB4B 0x6600 +0xEB4C 0x6609 +0xEB4D 0x6615 +0xEB4E 0x661E +0xEB4F 0x663A +0xEB50 0x6622 +0xEB51 0x6624 +0xEB52 0x662B +0xEB53 0x6630 +0xEB54 0x6631 +0xEB55 0x6633 +0xEB56 0x66FB +0xEB57 0x6648 +0xEB58 0x664C +0xEB59 0x231C4 +0xEB5A 0x6659 +0xEB5B 0x665A +0xEB5C 0x6661 +0xEB5D 0x6665 +0xEB5E 0x6673 +0xEB5F 0x6677 +0xEB60 0x6678 +0xEB61 0x668D +0xEB62 0xFA43 +0xEB63 0x66A0 +0xEB64 0x66B2 +0xEB65 0x66BB +0xEB66 0x66C6 +0xEB67 0x66C8 +0xEB68 0x3B22 +0xEB69 0x66DB +0xEB6A 0x66E8 +0xEB6B 0x66FA +0xEB6C 0x6713 +0xEB6D 0xF929 +0xEB6E 0x6733 +0xEB6F 0x6766 +0xEB70 0x6747 +0xEB71 0x6748 +0xEB72 0x677B +0xEB73 0x6781 +0xEB74 0x6793 +0xEB75 0x6798 +0xEB76 0x679B +0xEB77 0x67BB +0xEB78 0x67F9 +0xEB79 0x67C0 +0xEB7A 0x67D7 +0xEB7B 0x67FC +0xEB7C 0x6801 +0xEB7D 0x6852 +0xEB7E 0x681D +0xEB80 0x682C +0xEB81 0x6831 +0xEB82 0x685B +0xEB83 0x6872 +0xEB84 0x6875 +0xEB85 0xFA44 +0xEB86 0x68A3 +0xEB87 0x68A5 +0xEB88 0x68B2 +0xEB89 0x68C8 +0xEB8A 0x68D0 +0xEB8B 0x68E8 +0xEB8C 0x68ED +0xEB8D 0x68F0 +0xEB8E 0x68F1 +0xEB8F 0x68FC +0xEB90 0x690A +0xEB91 0x6949 +0xEB92 0x235C4 +0xEB93 0x6935 +0xEB94 0x6942 +0xEB95 0x6957 +0xEB96 0x6963 +0xEB97 0x6964 +0xEB98 0x6968 +0xEB99 0x6980 +0xEB9A 0xFA14 +0xEB9B 0x69A5 +0xEB9C 0x69AD +0xEB9D 0x69CF +0xEB9E 0x3BB6 +0xEB9F 0x3BC3 +0xEBA0 0x69E2 +0xEBA1 0x69E9 +0xEBA2 0x69EA +0xEBA3 0x69F5 +0xEBA4 0x69F6 +0xEBA5 0x6A0F +0xEBA6 0x6A15 +0xEBA7 0x2373F +0xEBA8 0x6A3B +0xEBA9 0x6A3E +0xEBAA 0x6A45 +0xEBAB 0x6A50 +0xEBAC 0x6A56 +0xEBAD 0x6A5B +0xEBAE 0x6A6B +0xEBAF 0x6A73 +0xEBB0 0x23763 +0xEBB1 0x6A89 +0xEBB2 0x6A94 +0xEBB3 0x6A9D +0xEBB4 0x6A9E +0xEBB5 0x6AA5 +0xEBB6 0x6AE4 +0xEBB7 0x6AE7 +0xEBB8 0x3C0F +0xEBB9 0xF91D +0xEBBA 0x6B1B +0xEBBB 0x6B1E +0xEBBC 0x6B2C +0xEBBD 0x6B35 +0xEBBE 0x6B46 +0xEBBF 0x6B56 +0xEBC0 0x6B60 +0xEBC1 0x6B65 +0xEBC2 0x6B67 +0xEBC3 0x6B77 +0xEBC4 0x6B82 +0xEBC5 0x6BA9 +0xEBC6 0x6BAD +0xEBC7 0xF970 +0xEBC8 0x6BCF +0xEBC9 0x6BD6 +0xEBCA 0x6BD7 +0xEBCB 0x6BFF +0xEBCC 0x6C05 +0xEBCD 0x6C10 +0xEBCE 0x6C33 +0xEBCF 0x6C59 +0xEBD0 0x6C5C +0xEBD1 0x6CAA +0xEBD2 0x6C74 +0xEBD3 0x6C76 +0xEBD4 0x6C85 +0xEBD5 0x6C86 +0xEBD6 0x6C98 +0xEBD7 0x6C9C +0xEBD8 0x6CFB +0xEBD9 0x6CC6 +0xEBDA 0x6CD4 +0xEBDB 0x6CE0 +0xEBDC 0x6CEB +0xEBDD 0x6CEE +0xEBDE 0x23CFE +0xEBDF 0x6D04 +0xEBE0 0x6D0E +0xEBE1 0x6D2E +0xEBE2 0x6D31 +0xEBE3 0x6D39 +0xEBE4 0x6D3F +0xEBE5 0x6D58 +0xEBE6 0x6D65 +0xEBE7 0xFA45 +0xEBE8 0x6D82 +0xEBE9 0x6D87 +0xEBEA 0x6D89 +0xEBEB 0x6D94 +0xEBEC 0x6DAA +0xEBED 0x6DAC +0xEBEE 0x6DBF +0xEBEF 0x6DC4 +0xEBF0 0x6DD6 +0xEBF1 0x6DDA +0xEBF2 0x6DDB +0xEBF3 0x6DDD +0xEBF4 0x6DFC +0xEBF5 0xFA46 +0xEBF6 0x6E34 +0xEBF7 0x6E44 +0xEBF8 0x6E5C +0xEBF9 0x6E5E +0xEBFA 0x6EAB +0xEBFB 0x6EB1 +0xEBFC 0x6EC1 +0xEC40 0x6EC7 +0xEC41 0x6ECE +0xEC42 0x6F10 +0xEC43 0x6F1A +0xEC44 0xFA47 +0xEC45 0x6F2A +0xEC46 0x6F2F +0xEC47 0x6F33 +0xEC48 0x6F51 +0xEC49 0x6F59 +0xEC4A 0x6F5E +0xEC4B 0x6F61 +0xEC4C 0x6F62 +0xEC4D 0x6F7E +0xEC4E 0x6F88 +0xEC4F 0x6F8C +0xEC50 0x6F8D +0xEC51 0x6F94 +0xEC52 0x6FA0 +0xEC53 0x6FA7 +0xEC54 0x6FB6 +0xEC55 0x6FBC +0xEC56 0x6FC7 +0xEC57 0x6FCA +0xEC58 0x6FF9 +0xEC59 0x6FF0 +0xEC5A 0x6FF5 +0xEC5B 0x7005 +0xEC5C 0x7006 +0xEC5D 0x7028 +0xEC5E 0x704A +0xEC5F 0x705D +0xEC60 0x705E +0xEC61 0x704E +0xEC62 0x7064 +0xEC63 0x7075 +0xEC64 0x7085 +0xEC65 0x70A4 +0xEC66 0x70AB +0xEC67 0x70B7 +0xEC68 0x70D4 +0xEC69 0x70D8 +0xEC6A 0x70E4 +0xEC6B 0x710F +0xEC6C 0x712B +0xEC6D 0x711E +0xEC6E 0x7120 +0xEC6F 0x712E +0xEC70 0x7130 +0xEC71 0x7146 +0xEC72 0x7147 +0xEC73 0x7151 +0xEC74 0xFA48 +0xEC75 0x7152 +0xEC76 0x715C +0xEC77 0x7160 +0xEC78 0x7168 +0xEC79 0xFA15 +0xEC7A 0x7185 +0xEC7B 0x7187 +0xEC7C 0x7192 +0xEC7D 0x71C1 +0xEC7E 0x71BA +0xEC80 0x71C4 +0xEC81 0x71FE +0xEC82 0x7200 +0xEC83 0x7215 +0xEC84 0x7255 +0xEC85 0x7256 +0xEC86 0x3E3F +0xEC87 0x728D +0xEC88 0x729B +0xEC89 0x72BE +0xEC8A 0x72C0 +0xEC8B 0x72FB +0xEC8C 0x247F1 +0xEC8D 0x7327 +0xEC8E 0x7328 +0xEC8F 0xFA16 +0xEC90 0x7350 +0xEC91 0x7366 +0xEC92 0x737C +0xEC93 0x7395 +0xEC94 0x739F +0xEC95 0x73A0 +0xEC96 0x73A2 +0xEC97 0x73A6 +0xEC98 0x73AB +0xEC99 0x73C9 +0xEC9A 0x73CF +0xEC9B 0x73D6 +0xEC9C 0x73D9 +0xEC9D 0x73E3 +0xEC9E 0x73E9 +0xEC9F 0x7407 +0xECA0 0x740A +0xECA1 0x741A +0xECA2 0x741B +0xECA3 0xFA4A +0xECA4 0x7426 +0xECA5 0x7428 +0xECA6 0x742A +0xECA7 0x742B +0xECA8 0x742C +0xECA9 0x742E +0xECAA 0x742F +0xECAB 0x7430 +0xECAC 0x7444 +0xECAD 0x7446 +0xECAE 0x7447 +0xECAF 0x744B +0xECB0 0x7457 +0xECB1 0x7462 +0xECB2 0x746B +0xECB3 0x746D +0xECB4 0x7486 +0xECB5 0x7487 +0xECB6 0x7489 +0xECB7 0x7498 +0xECB8 0x749C +0xECB9 0x749F +0xECBA 0x74A3 +0xECBB 0x7490 +0xECBC 0x74A6 +0xECBD 0x74A8 +0xECBE 0x74A9 +0xECBF 0x74B5 +0xECC0 0x74BF +0xECC1 0x74C8 +0xECC2 0x74C9 +0xECC3 0x74DA +0xECC4 0x74FF +0xECC5 0x7501 +0xECC6 0x7517 +0xECC7 0x752F +0xECC8 0x756F +0xECC9 0x7579 +0xECCA 0x7592 +0xECCB 0x3F72 +0xECCC 0x75CE +0xECCD 0x75E4 +0xECCE 0x7600 +0xECCF 0x7602 +0xECD0 0x7608 +0xECD1 0x7615 +0xECD2 0x7616 +0xECD3 0x7619 +0xECD4 0x761E +0xECD5 0x762D +0xECD6 0x7635 +0xECD7 0x7643 +0xECD8 0x764B +0xECD9 0x7664 +0xECDA 0x7665 +0xECDB 0x766D +0xECDC 0x766F +0xECDD 0x7671 +0xECDE 0x7681 +0xECDF 0x769B +0xECE0 0x769D +0xECE1 0x769E +0xECE2 0x76A6 +0xECE3 0x76AA +0xECE4 0x76B6 +0xECE5 0x76C5 +0xECE6 0x76CC +0xECE7 0x76CE +0xECE8 0x76D4 +0xECE9 0x76E6 +0xECEA 0x76F1 +0xECEB 0x76FC +0xECEC 0x770A +0xECED 0x7719 +0xECEE 0x7734 +0xECEF 0x7736 +0xECF0 0x7746 +0xECF1 0x774D +0xECF2 0x774E +0xECF3 0x775C +0xECF4 0x775F +0xECF5 0x7762 +0xECF6 0x777A +0xECF7 0x7780 +0xECF8 0x7794 +0xECF9 0x77AA +0xECFA 0x77E0 +0xECFB 0x782D +0xECFC 0x2548E +0xED40 0x7843 +0xED41 0x784E +0xED42 0x784F +0xED43 0x7851 +0xED44 0x7868 +0xED45 0x786E +0xED46 0xFA4B +0xED47 0x78B0 +0xED48 0x2550E +0xED49 0x78AD +0xED4A 0x78E4 +0xED4B 0x78F2 +0xED4C 0x7900 +0xED4D 0x78F7 +0xED4E 0x791C +0xED4F 0x792E +0xED50 0x7931 +0xED51 0x7934 +0xED52 0xFA4C +0xED53 0xFA4D +0xED54 0x7945 +0xED55 0x7946 +0xED56 0xFA4E +0xED57 0xFA4F +0xED58 0xFA50 +0xED59 0x795C +0xED5A 0xFA51 +0xED5B 0xFA19 +0xED5C 0xFA1A +0xED5D 0x7979 +0xED5E 0xFA52 +0xED5F 0xFA53 +0xED60 0xFA1B +0xED61 0x7998 +0xED62 0x79B1 +0xED63 0x79B8 +0xED64 0x79C8 +0xED65 0x79CA +0xED66 0x25771 +0xED67 0x79D4 +0xED68 0x79DE +0xED69 0x79EB +0xED6A 0x79ED +0xED6B 0x7A03 +0xED6C 0xFA54 +0xED6D 0x7A39 +0xED6E 0x7A5D +0xED6F 0x7A6D +0xED70 0xFA55 +0xED71 0x7A85 +0xED72 0x7AA0 +0xED73 0x259C4 +0xED74 0x7AB3 +0xED75 0x7ABB +0xED76 0x7ACE +0xED77 0x7AEB +0xED78 0x7AFD +0xED79 0x7B12 +0xED7A 0x7B2D +0xED7B 0x7B3B +0xED7C 0x7B47 +0xED7D 0x7B4E +0xED7E 0x7B60 +0xED80 0x7B6D +0xED81 0x7B6F +0xED82 0x7B72 +0xED83 0x7B9E +0xED84 0xFA56 +0xED85 0x7BD7 +0xED86 0x7BD9 +0xED87 0x7C01 +0xED88 0x7C31 +0xED89 0x7C1E +0xED8A 0x7C20 +0xED8B 0x7C33 +0xED8C 0x7C36 +0xED8D 0x4264 +0xED8E 0x25DA1 +0xED8F 0x7C59 +0xED90 0x7C6D +0xED91 0x7C79 +0xED92 0x7C8F +0xED93 0x7C94 +0xED94 0x7CA0 +0xED95 0x7CBC +0xED96 0x7CD5 +0xED97 0x7CD9 +0xED98 0x7CDD +0xED99 0x7D07 +0xED9A 0x7D08 +0xED9B 0x7D13 +0xED9C 0x7D1D +0xED9D 0x7D23 +0xED9E 0x7D31 +0xED9F 0x7D41 +0xEDA0 0x7D48 +0xEDA1 0x7D53 +0xEDA2 0x7D5C +0xEDA3 0x7D7A +0xEDA4 0x7D83 +0xEDA5 0x7D8B +0xEDA6 0x7DA0 +0xEDA7 0x7DA6 +0xEDA8 0x7DC2 +0xEDA9 0x7DCC +0xEDAA 0x7DD6 +0xEDAB 0x7DE3 +0xEDAC 0xFA57 +0xEDAD 0x7E28 +0xEDAE 0x7E08 +0xEDAF 0x7E11 +0xEDB0 0x7E15 +0xEDB1 0xFA59 +0xEDB2 0x7E47 +0xEDB3 0x7E52 +0xEDB4 0x7E61 +0xEDB5 0x7E8A +0xEDB6 0x7E8D +0xEDB7 0x7F47 +0xEDB8 0xFA5A +0xEDB9 0x7F91 +0xEDBA 0x7F97 +0xEDBB 0x7FBF +0xEDBC 0x7FCE +0xEDBD 0x7FDB +0xEDBE 0x7FDF +0xEDBF 0x7FEC +0xEDC0 0x7FEE +0xEDC1 0x7FFA +0xEDC2 0xFA5B +0xEDC3 0x8014 +0xEDC4 0x8026 +0xEDC5 0x8035 +0xEDC6 0x8037 +0xEDC7 0x803C +0xEDC8 0x80CA +0xEDC9 0x80D7 +0xEDCA 0x80E0 +0xEDCB 0x80F3 +0xEDCC 0x8118 +0xEDCD 0x814A +0xEDCE 0x8160 +0xEDCF 0x8167 +0xEDD0 0x8168 +0xEDD1 0x816D +0xEDD2 0x81BB +0xEDD3 0x81CA +0xEDD4 0x81CF +0xEDD5 0x81D7 +0xEDD6 0xFA5C +0xEDD7 0x4453 +0xEDD8 0x445B +0xEDD9 0x8260 +0xEDDA 0x8274 +0xEDDB 0x26AFF +0xEDDC 0x828E +0xEDDD 0x82A1 +0xEDDE 0x82A3 +0xEDDF 0x82A4 +0xEDE0 0x82A9 +0xEDE1 0x82AE +0xEDE2 0x82B7 +0xEDE3 0x82BE +0xEDE4 0x82BF +0xEDE5 0x82C6 +0xEDE6 0x82D5 +0xEDE7 0x82FD +0xEDE8 0x82FE +0xEDE9 0x8300 +0xEDEA 0x8301 +0xEDEB 0x8362 +0xEDEC 0x8322 +0xEDED 0x832D +0xEDEE 0x833A +0xEDEF 0x8343 +0xEDF0 0x8347 +0xEDF1 0x8351 +0xEDF2 0x8355 +0xEDF3 0x837D +0xEDF4 0x8386 +0xEDF5 0x8392 +0xEDF6 0x8398 +0xEDF7 0x83A7 +0xEDF8 0x83A9 +0xEDF9 0x83BF +0xEDFA 0x83C0 +0xEDFB 0x83C7 +0xEDFC 0x83CF +0xEE40 0x83D1 +0xEE41 0x83E1 +0xEE42 0x83EA +0xEE43 0x8401 +0xEE44 0x8406 +0xEE45 0x840A +0xEE46 0xFA5F +0xEE47 0x8448 +0xEE48 0x845F +0xEE49 0x8470 +0xEE4A 0x8473 +0xEE4B 0x8485 +0xEE4C 0x849E +0xEE4D 0x84AF +0xEE4E 0x84B4 +0xEE4F 0x84BA +0xEE50 0x84C0 +0xEE51 0x84C2 +0xEE52 0x26E40 +0xEE53 0x8532 +0xEE54 0x851E +0xEE55 0x8523 +0xEE56 0x852F +0xEE57 0x8559 +0xEE58 0x8564 +0xEE59 0xFA1F +0xEE5A 0x85AD +0xEE5B 0x857A +0xEE5C 0x858C +0xEE5D 0x858F +0xEE5E 0x85A2 +0xEE5F 0x85B0 +0xEE60 0x85CB +0xEE61 0x85CE +0xEE62 0x85ED +0xEE63 0x8612 +0xEE64 0x85FF +0xEE65 0x8604 +0xEE66 0x8605 +0xEE67 0x8610 +0xEE68 0x270F4 +0xEE69 0x8618 +0xEE6A 0x8629 +0xEE6B 0x8638 +0xEE6C 0x8657 +0xEE6D 0x865B +0xEE6E 0xF936 +0xEE6F 0x8662 +0xEE70 0x459D +0xEE71 0x866C +0xEE72 0x8675 +0xEE73 0x8698 +0xEE74 0x86B8 +0xEE75 0x86FA +0xEE76 0x86FC +0xEE77 0x86FD +0xEE78 0x870B +0xEE79 0x8771 +0xEE7A 0x8787 +0xEE7B 0x8788 +0xEE7C 0x87AC +0xEE7D 0x87AD +0xEE7E 0x87B5 +0xEE80 0x45EA +0xEE81 0x87D6 +0xEE82 0x87EC +0xEE83 0x8806 +0xEE84 0x880A +0xEE85 0x8810 +0xEE86 0x8814 +0xEE87 0x881F +0xEE88 0x8898 +0xEE89 0x88AA +0xEE8A 0x88CA +0xEE8B 0x88CE +0xEE8C 0x27684 +0xEE8D 0x88F5 +0xEE8E 0x891C +0xEE8F 0xFA60 +0xEE90 0x8918 +0xEE91 0x8919 +0xEE92 0x891A +0xEE93 0x8927 +0xEE94 0x8930 +0xEE95 0x8932 +0xEE96 0x8939 +0xEE97 0x8940 +0xEE98 0x8994 +0xEE99 0xFA61 +0xEE9A 0x89D4 +0xEE9B 0x89E5 +0xEE9C 0x89F6 +0xEE9D 0x8A12 +0xEE9E 0x8A15 +0xEE9F 0x8A22 +0xEEA0 0x8A37 +0xEEA1 0x8A47 +0xEEA2 0x8A4E +0xEEA3 0x8A5D +0xEEA4 0x8A61 +0xEEA5 0x8A75 +0xEEA6 0x8A79 +0xEEA7 0x8AA7 +0xEEA8 0x8AD0 +0xEEA9 0x8ADF +0xEEAA 0x8AF4 +0xEEAB 0x8AF6 +0xEEAC 0xFA22 +0xEEAD 0xFA62 +0xEEAE 0xFA63 +0xEEAF 0x8B46 +0xEEB0 0x8B54 +0xEEB1 0x8B59 +0xEEB2 0x8B69 +0xEEB3 0x8B9D +0xEEB4 0x8C49 +0xEEB5 0x8C68 +0xEEB6 0xFA64 +0xEEB7 0x8CE1 +0xEEB8 0x8CF4 +0xEEB9 0x8CF8 +0xEEBA 0x8CFE +0xEEBB 0xFA65 +0xEEBC 0x8D12 +0xEEBD 0x8D1B +0xEEBE 0x8DAF +0xEEBF 0x8DCE +0xEEC0 0x8DD1 +0xEEC1 0x8DD7 +0xEEC2 0x8E20 +0xEEC3 0x8E23 +0xEEC4 0x8E3D +0xEEC5 0x8E70 +0xEEC6 0x8E7B +0xEEC7 0x28277 +0xEEC8 0x8EC0 +0xEEC9 0x4844 +0xEECA 0x8EFA +0xEECB 0x8F1E +0xEECC 0x8F2D +0xEECD 0x8F36 +0xEECE 0x8F54 +0xEECF 0x283CD +0xEED0 0x8FA6 +0xEED1 0x8FB5 +0xEED2 0x8FE4 +0xEED3 0x8FE8 +0xEED4 0x8FEE +0xEED5 0x9008 +0xEED6 0x902D +0xEED7 0xFA67 +0xEED8 0x9088 +0xEED9 0x9095 +0xEEDA 0x9097 +0xEEDB 0x9099 +0xEEDC 0x909B +0xEEDD 0x90A2 +0xEEDE 0x90B3 +0xEEDF 0x90BE +0xEEE0 0x90C4 +0xEEE1 0x90C5 +0xEEE2 0x90C7 +0xEEE3 0x90D7 +0xEEE4 0x90DD +0xEEE5 0x90DE +0xEEE6 0x90EF +0xEEE7 0x90F4 +0xEEE8 0xFA26 +0xEEE9 0x9114 +0xEEEA 0x9115 +0xEEEB 0x9116 +0xEEEC 0x9122 +0xEEED 0x9123 +0xEEEE 0x9127 +0xEEEF 0x912F +0xEEF0 0x9131 +0xEEF1 0x9134 +0xEEF2 0x913D +0xEEF3 0x9148 +0xEEF4 0x915B +0xEEF5 0x9183 +0xEEF6 0x919E +0xEEF7 0x91AC +0xEEF8 0x91B1 +0xEEF9 0x91BC +0xEEFA 0x91D7 +0xEEFB 0x91FB +0xEEFC 0x91E4 +0xEF40 0x91E5 +0xEF41 0x91ED +0xEF42 0x91F1 +0xEF43 0x9207 +0xEF44 0x9210 +0xEF45 0x9238 +0xEF46 0x9239 +0xEF47 0x923A +0xEF48 0x923C +0xEF49 0x9240 +0xEF4A 0x9243 +0xEF4B 0x924F +0xEF4C 0x9278 +0xEF4D 0x9288 +0xEF4E 0x92C2 +0xEF4F 0x92CB +0xEF50 0x92CC +0xEF51 0x92D3 +0xEF52 0x92E0 +0xEF53 0x92FF +0xEF54 0x9304 +0xEF55 0x931F +0xEF56 0x9321 +0xEF57 0x9325 +0xEF58 0x9348 +0xEF59 0x9349 +0xEF5A 0x934A +0xEF5B 0x9364 +0xEF5C 0x9365 +0xEF5D 0x936A +0xEF5E 0x9370 +0xEF5F 0x939B +0xEF60 0x93A3 +0xEF61 0x93BA +0xEF62 0x93C6 +0xEF63 0x93DE +0xEF64 0x93DF +0xEF65 0x9404 +0xEF66 0x93FD +0xEF67 0x9433 +0xEF68 0x944A +0xEF69 0x9463 +0xEF6A 0x946B +0xEF6B 0x9471 +0xEF6C 0x9472 +0xEF6D 0x958E +0xEF6E 0x959F +0xEF6F 0x95A6 +0xEF70 0x95A9 +0xEF71 0x95AC +0xEF72 0x95B6 +0xEF73 0x95BD +0xEF74 0x95CB +0xEF75 0x95D0 +0xEF76 0x95D3 +0xEF77 0x49B0 +0xEF78 0x95DA +0xEF79 0x95DE +0xEF7A 0x9658 +0xEF7B 0x9684 +0xEF7C 0xF9DC +0xEF7D 0x969D +0xEF7E 0x96A4 +0xEF80 0x96A5 +0xEF81 0x96D2 +0xEF82 0x96DE +0xEF83 0xFA68 +0xEF84 0x96E9 +0xEF85 0x96EF +0xEF86 0x9733 +0xEF87 0x973B +0xEF88 0x974D +0xEF89 0x974E +0xEF8A 0x974F +0xEF8B 0x975A +0xEF8C 0x976E +0xEF8D 0x9773 +0xEF8E 0x9795 +0xEF8F 0x97AE +0xEF90 0x97BA +0xEF91 0x97C1 +0xEF92 0x97C9 +0xEF93 0x97DE +0xEF94 0x97DB +0xEF95 0x97F4 +0xEF96 0xFA69 +0xEF97 0x980A +0xEF98 0x981E +0xEF99 0x982B +0xEF9A 0x9830 +0xEF9B 0xFA6A +0xEF9C 0x9852 +0xEF9D 0x9853 +0xEF9E 0x9856 +0xEF9F 0x9857 +0xEFA0 0x9859 +0xEFA1 0x985A +0xEFA2 0xF9D0 +0xEFA3 0x9865 +0xEFA4 0x986C +0xEFA5 0x98BA +0xEFA6 0x98C8 +0xEFA7 0x98E7 +0xEFA8 0x9958 +0xEFA9 0x999E +0xEFAA 0x9A02 +0xEFAB 0x9A03 +0xEFAC 0x9A24 +0xEFAD 0x9A2D +0xEFAE 0x9A2E +0xEFAF 0x9A38 +0xEFB0 0x9A4A +0xEFB1 0x9A4E +0xEFB2 0x9A52 +0xEFB3 0x9AB6 +0xEFB4 0x9AC1 +0xEFB5 0x9AC3 +0xEFB6 0x9ACE +0xEFB7 0x9AD6 +0xEFB8 0x9AF9 +0xEFB9 0x9B02 +0xEFBA 0x9B08 +0xEFBB 0x9B20 +0xEFBC 0x4C17 +0xEFBD 0x9B2D +0xEFBE 0x9B5E +0xEFBF 0x9B79 +0xEFC0 0x9B66 +0xEFC1 0x9B72 +0xEFC2 0x9B75 +0xEFC3 0x9B84 +0xEFC4 0x9B8A +0xEFC5 0x9B8F +0xEFC6 0x9B9E +0xEFC7 0x9BA7 +0xEFC8 0x9BC1 +0xEFC9 0x9BCE +0xEFCA 0x9BE5 +0xEFCB 0x9BF8 +0xEFCC 0x9BFD +0xEFCD 0x9C00 +0xEFCE 0x9C23 +0xEFCF 0x9C41 +0xEFD0 0x9C4F +0xEFD1 0x9C50 +0xEFD2 0x9C53 +0xEFD3 0x9C63 +0xEFD4 0x9C65 +0xEFD5 0x9C77 +0xEFD6 0x9D1D +0xEFD7 0x9D1E +0xEFD8 0x9D43 +0xEFD9 0x9D47 +0xEFDA 0x9D52 +0xEFDB 0x9D63 +0xEFDC 0x9D70 +0xEFDD 0x9D7C +0xEFDE 0x9D8A +0xEFDF 0x9D96 +0xEFE0 0x9DC0 +0xEFE1 0x9DAC +0xEFE2 0x9DBC +0xEFE3 0x9DD7 +0xEFE4 0x2A190 +0xEFE5 0x9DE7 +0xEFE6 0x9E07 +0xEFE7 0x9E15 +0xEFE8 0x9E7C +0xEFE9 0x9E9E +0xEFEA 0x9EA4 +0xEFEB 0x9EAC +0xEFEC 0x9EAF +0xEFED 0x9EB4 +0xEFEE 0x9EB5 +0xEFEF 0x9EC3 +0xEFF0 0x9ED1 +0xEFF1 0x9F10 +0xEFF2 0x9F39 +0xEFF3 0x9F57 +0xEFF4 0x9F90 +0xEFF5 0x9F94 +0xEFF6 0x9F97 +0xEFF7 0x9FA2 +0xEFF8 0x59F8 +0xEFF9 0x5C5B +0xEFFA 0x5E77 +0xEFFB 0x7626 +0xEFFC 0x7E6B +0xF040 0x20089 +0xF041 0x4E02 +0xF042 0x4E0F +0xF043 0x4E12 +0xF044 0x4E29 +0xF045 0x4E2B +0xF046 0x4E2E +0xF047 0x4E40 +0xF048 0x4E47 +0xF049 0x4E48 +0xF04A 0x200A2 +0xF04B 0x4E51 +0xF04C 0x3406 +0xF04D 0x200A4 +0xF04E 0x4E5A +0xF04F 0x4E69 +0xF050 0x4E9D +0xF051 0x342C +0xF052 0x342E +0xF053 0x4EB9 +0xF054 0x4EBB +0xF055 0x201A2 +0xF056 0x4EBC +0xF057 0x4EC3 +0xF058 0x4EC8 +0xF059 0x4ED0 +0xF05A 0x4EEB +0xF05B 0x4EDA +0xF05C 0x4EF1 +0xF05D 0x4EF5 +0xF05E 0x4F00 +0xF05F 0x4F16 +0xF060 0x4F64 +0xF061 0x4F37 +0xF062 0x4F3E +0xF063 0x4F54 +0xF064 0x4F58 +0xF065 0x20213 +0xF066 0x4F77 +0xF067 0x4F78 +0xF068 0x4F7A +0xF069 0x4F7D +0xF06A 0x4F82 +0xF06B 0x4F85 +0xF06C 0x4F92 +0xF06D 0x4F9A +0xF06E 0x4FE6 +0xF06F 0x4FB2 +0xF070 0x4FBE +0xF071 0x4FC5 +0xF072 0x4FCB +0xF073 0x4FCF +0xF074 0x4FD2 +0xF075 0x346A +0xF076 0x4FF2 +0xF077 0x5000 +0xF078 0x5010 +0xF079 0x5013 +0xF07A 0x501C +0xF07B 0x501E +0xF07C 0x5022 +0xF07D 0x3468 +0xF07E 0x5042 +0xF080 0x5046 +0xF081 0x504E +0xF082 0x5053 +0xF083 0x5057 +0xF084 0x5063 +0xF085 0x5066 +0xF086 0x506A +0xF087 0x5070 +0xF088 0x50A3 +0xF089 0x5088 +0xF08A 0x5092 +0xF08B 0x5093 +0xF08C 0x5095 +0xF08D 0x5096 +0xF08E 0x509C +0xF08F 0x50AA +0xF090 0x2032B +0xF091 0x50B1 +0xF092 0x50BA +0xF093 0x50BB +0xF094 0x50C4 +0xF095 0x50C7 +0xF096 0x50F3 +0xF097 0x20381 +0xF098 0x50CE +0xF099 0x20371 +0xF09A 0x50D4 +0xF09B 0x50D9 +0xF09C 0x50E1 +0xF09D 0x50E9 +0xF09E 0x3492 +0xF09F 0x5B96 +0xF0A0 0x5BAC +0xF0A1 0x3761 +0xF0A2 0x5BC0 +0xF0A3 0x3762 +0xF0A4 0x5BCE +0xF0A5 0x5BD6 +0xF0A6 0x376C +0xF0A7 0x376B +0xF0A8 0x5BF1 +0xF0A9 0x5BFD +0xF0AA 0x3775 +0xF0AB 0x5C03 +0xF0AC 0x5C29 +0xF0AD 0x5C30 +0xF0AE 0x21C56 +0xF0AF 0x5C5F +0xF0B0 0x5C63 +0xF0B1 0x5C67 +0xF0B2 0x5C68 +0xF0B3 0x5C69 +0xF0B4 0x5C70 +0xF0B5 0x21D2D +0xF0B6 0x21D45 +0xF0B7 0x5C7C +0xF0B8 0x21D78 +0xF0B9 0x21D62 +0xF0BA 0x5C88 +0xF0BB 0x5C8A +0xF0BC 0x37C1 +0xF0BD 0x21DA1 +0xF0BE 0x21D9C +0xF0BF 0x5CA0 +0xF0C0 0x5CA2 +0xF0C1 0x5CA6 +0xF0C2 0x5CA7 +0xF0C3 0x21D92 +0xF0C4 0x5CAD +0xF0C5 0x5CB5 +0xF0C6 0x21DB7 +0xF0C7 0x5CC9 +0xF0C8 0x21DE0 +0xF0C9 0x21E33 +0xF0CA 0x5D06 +0xF0CB 0x5D10 +0xF0CC 0x5D2B +0xF0CD 0x5D1D +0xF0CE 0x5D20 +0xF0CF 0x5D24 +0xF0D0 0x5D26 +0xF0D1 0x5D31 +0xF0D2 0x5D39 +0xF0D3 0x5D42 +0xF0D4 0x37E8 +0xF0D5 0x5D61 +0xF0D6 0x5D6A +0xF0D7 0x37F4 +0xF0D8 0x5D70 +0xF0D9 0x21F1E +0xF0DA 0x37FD +0xF0DB 0x5D88 +0xF0DC 0x3800 +0xF0DD 0x5D92 +0xF0DE 0x5D94 +0xF0DF 0x5D97 +0xF0E0 0x5D99 +0xF0E1 0x5DB0 +0xF0E2 0x5DB2 +0xF0E3 0x5DB4 +0xF0E4 0x21F76 +0xF0E5 0x5DB9 +0xF0E6 0x5DD1 +0xF0E7 0x5DD7 +0xF0E8 0x5DD8 +0xF0E9 0x5DE0 +0xF0EA 0x21FFA +0xF0EB 0x5DE4 +0xF0EC 0x5DE9 +0xF0ED 0x382F +0xF0EE 0x5E00 +0xF0EF 0x3836 +0xF0F0 0x5E12 +0xF0F1 0x5E15 +0xF0F2 0x3840 +0xF0F3 0x5E1F +0xF0F4 0x5E2E +0xF0F5 0x5E3E +0xF0F6 0x5E49 +0xF0F7 0x385C +0xF0F8 0x5E56 +0xF0F9 0x3861 +0xF0FA 0x5E6B +0xF0FB 0x5E6C +0xF0FC 0x5E6D +0xF140 0x5108 +0xF141 0x203F9 +0xF142 0x5117 +0xF143 0x511B +0xF144 0x2044A +0xF145 0x5160 +0xF146 0x20509 +0xF147 0x5173 +0xF148 0x5183 +0xF149 0x518B +0xF14A 0x34BC +0xF14B 0x5198 +0xF14C 0x51A3 +0xF14D 0x51AD +0xF14E 0x34C7 +0xF14F 0x51BC +0xF150 0x205D6 +0xF151 0x20628 +0xF152 0x51F3 +0xF153 0x51F4 +0xF154 0x5202 +0xF155 0x5212 +0xF156 0x5216 +0xF157 0x2074F +0xF158 0x5255 +0xF159 0x525C +0xF15A 0x526C +0xF15B 0x5277 +0xF15C 0x5284 +0xF15D 0x5282 +0xF15E 0x20807 +0xF15F 0x5298 +0xF160 0x2083A +0xF161 0x52A4 +0xF162 0x52A6 +0xF163 0x52AF +0xF164 0x52BA +0xF165 0x52BB +0xF166 0x52CA +0xF167 0x351F +0xF168 0x52D1 +0xF169 0x208B9 +0xF16A 0x52F7 +0xF16B 0x530A +0xF16C 0x530B +0xF16D 0x5324 +0xF16E 0x5335 +0xF16F 0x533E +0xF170 0x5342 +0xF171 0x2097C +0xF172 0x2099D +0xF173 0x5367 +0xF174 0x536C +0xF175 0x537A +0xF176 0x53A4 +0xF177 0x53B4 +0xF178 0x20AD3 +0xF179 0x53B7 +0xF17A 0x53C0 +0xF17B 0x20B1D +0xF17C 0x355D +0xF17D 0x355E +0xF17E 0x53D5 +0xF180 0x53DA +0xF181 0x3563 +0xF182 0x53F4 +0xF183 0x53F5 +0xF184 0x5455 +0xF185 0x5424 +0xF186 0x5428 +0xF187 0x356E +0xF188 0x5443 +0xF189 0x5462 +0xF18A 0x5466 +0xF18B 0x546C +0xF18C 0x548A +0xF18D 0x548D +0xF18E 0x5495 +0xF18F 0x54A0 +0xF190 0x54A6 +0xF191 0x54AD +0xF192 0x54AE +0xF193 0x54B7 +0xF194 0x54BA +0xF195 0x54BF +0xF196 0x54C3 +0xF197 0x20D45 +0xF198 0x54EC +0xF199 0x54EF +0xF19A 0x54F1 +0xF19B 0x54F3 +0xF19C 0x5500 +0xF19D 0x5501 +0xF19E 0x5509 +0xF19F 0x553C +0xF1A0 0x5541 +0xF1A1 0x35A6 +0xF1A2 0x5547 +0xF1A3 0x554A +0xF1A4 0x35A8 +0xF1A5 0x5560 +0xF1A6 0x5561 +0xF1A7 0x5564 +0xF1A8 0x20DE1 +0xF1A9 0x557D +0xF1AA 0x5582 +0xF1AB 0x5588 +0xF1AC 0x5591 +0xF1AD 0x35C5 +0xF1AE 0x55D2 +0xF1AF 0x20E95 +0xF1B0 0x20E6D +0xF1B1 0x55BF +0xF1B2 0x55C9 +0xF1B3 0x55CC +0xF1B4 0x55D1 +0xF1B5 0x55DD +0xF1B6 0x35DA +0xF1B7 0x55E2 +0xF1B8 0x20E64 +0xF1B9 0x55E9 +0xF1BA 0x5628 +0xF1BB 0x20F5F +0xF1BC 0x5607 +0xF1BD 0x5610 +0xF1BE 0x5630 +0xF1BF 0x5637 +0xF1C0 0x35F4 +0xF1C1 0x563D +0xF1C2 0x563F +0xF1C3 0x5640 +0xF1C4 0x5647 +0xF1C5 0x565E +0xF1C6 0x5660 +0xF1C7 0x566D +0xF1C8 0x3605 +0xF1C9 0x5688 +0xF1CA 0x568C +0xF1CB 0x5695 +0xF1CC 0x569A +0xF1CD 0x569D +0xF1CE 0x56A8 +0xF1CF 0x56AD +0xF1D0 0x56B2 +0xF1D1 0x56C5 +0xF1D2 0x56CD +0xF1D3 0x56DF +0xF1D4 0x56E8 +0xF1D5 0x56F6 +0xF1D6 0x56F7 +0xF1D7 0x21201 +0xF1D8 0x5715 +0xF1D9 0x5723 +0xF1DA 0x21255 +0xF1DB 0x5729 +0xF1DC 0x2127B +0xF1DD 0x5745 +0xF1DE 0x5746 +0xF1DF 0x574C +0xF1E0 0x574D +0xF1E1 0x21274 +0xF1E2 0x5768 +0xF1E3 0x576F +0xF1E4 0x5773 +0xF1E5 0x5774 +0xF1E6 0x5775 +0xF1E7 0x577B +0xF1E8 0x212E4 +0xF1E9 0x212D7 +0xF1EA 0x57AC +0xF1EB 0x579A +0xF1EC 0x579D +0xF1ED 0x579E +0xF1EE 0x57A8 +0xF1EF 0x57D7 +0xF1F0 0x212FD +0xF1F1 0x57CC +0xF1F2 0x21336 +0xF1F3 0x21344 +0xF1F4 0x57DE +0xF1F5 0x57E6 +0xF1F6 0x57F0 +0xF1F7 0x364A +0xF1F8 0x57F8 +0xF1F9 0x57FB +0xF1FA 0x57FD +0xF1FB 0x5804 +0xF1FC 0x581E +0xF240 0x5820 +0xF241 0x5827 +0xF242 0x5832 +0xF243 0x5839 +0xF244 0x213C4 +0xF245 0x5849 +0xF246 0x584C +0xF247 0x5867 +0xF248 0x588A +0xF249 0x588B +0xF24A 0x588D +0xF24B 0x588F +0xF24C 0x5890 +0xF24D 0x5894 +0xF24E 0x589D +0xF24F 0x58AA +0xF250 0x58B1 +0xF251 0x2146D +0xF252 0x58C3 +0xF253 0x58CD +0xF254 0x58E2 +0xF255 0x58F3 +0xF256 0x58F4 +0xF257 0x5905 +0xF258 0x5906 +0xF259 0x590B +0xF25A 0x590D +0xF25B 0x5914 +0xF25C 0x5924 +0xF25D 0x215D7 +0xF25E 0x3691 +0xF25F 0x593D +0xF260 0x3699 +0xF261 0x5946 +0xF262 0x3696 +0xF263 0x26C29 +0xF264 0x595B +0xF265 0x595F +0xF266 0x21647 +0xF267 0x5975 +0xF268 0x5976 +0xF269 0x597C +0xF26A 0x599F +0xF26B 0x59AE +0xF26C 0x59BC +0xF26D 0x59C8 +0xF26E 0x59CD +0xF26F 0x59DE +0xF270 0x59E3 +0xF271 0x59E4 +0xF272 0x59E7 +0xF273 0x59EE +0xF274 0x21706 +0xF275 0x21742 +0xF276 0x36CF +0xF277 0x5A0C +0xF278 0x5A0D +0xF279 0x5A17 +0xF27A 0x5A27 +0xF27B 0x5A2D +0xF27C 0x5A55 +0xF27D 0x5A65 +0xF27E 0x5A7A +0xF280 0x5A8B +0xF281 0x5A9C +0xF282 0x5A9F +0xF283 0x5AA0 +0xF284 0x5AA2 +0xF285 0x5AB1 +0xF286 0x5AB3 +0xF287 0x5AB5 +0xF288 0x5ABA +0xF289 0x5ABF +0xF28A 0x5ADA +0xF28B 0x5ADC +0xF28C 0x5AE0 +0xF28D 0x5AE5 +0xF28E 0x5AF0 +0xF28F 0x5AEE +0xF290 0x5AF5 +0xF291 0x5B00 +0xF292 0x5B08 +0xF293 0x5B17 +0xF294 0x5B34 +0xF295 0x5B2D +0xF296 0x5B4C +0xF297 0x5B52 +0xF298 0x5B68 +0xF299 0x5B6F +0xF29A 0x5B7C +0xF29B 0x5B7F +0xF29C 0x5B81 +0xF29D 0x5B84 +0xF29E 0x219C3 +0xF29F 0x5E6E +0xF2A0 0x2217B +0xF2A1 0x5EA5 +0xF2A2 0x5EAA +0xF2A3 0x5EAC +0xF2A4 0x5EB9 +0xF2A5 0x5EBF +0xF2A6 0x5EC6 +0xF2A7 0x5ED2 +0xF2A8 0x5ED9 +0xF2A9 0x2231E +0xF2AA 0x5EFD +0xF2AB 0x5F08 +0xF2AC 0x5F0E +0xF2AD 0x5F1C +0xF2AE 0x223AD +0xF2AF 0x5F1E +0xF2B0 0x5F47 +0xF2B1 0x5F63 +0xF2B2 0x5F72 +0xF2B3 0x5F7E +0xF2B4 0x5F8F +0xF2B5 0x5FA2 +0xF2B6 0x5FA4 +0xF2B7 0x5FB8 +0xF2B8 0x5FC4 +0xF2B9 0x38FA +0xF2BA 0x5FC7 +0xF2BB 0x5FCB +0xF2BC 0x5FD2 +0xF2BD 0x5FD3 +0xF2BE 0x5FD4 +0xF2BF 0x5FE2 +0xF2C0 0x5FEE +0xF2C1 0x5FEF +0xF2C2 0x5FF3 +0xF2C3 0x5FFC +0xF2C4 0x3917 +0xF2C5 0x6017 +0xF2C6 0x6022 +0xF2C7 0x6024 +0xF2C8 0x391A +0xF2C9 0x604C +0xF2CA 0x607F +0xF2CB 0x608A +0xF2CC 0x6095 +0xF2CD 0x60A8 +0xF2CE 0x226F3 +0xF2CF 0x60B0 +0xF2D0 0x60B1 +0xF2D1 0x60BE +0xF2D2 0x60C8 +0xF2D3 0x60D9 +0xF2D4 0x60DB +0xF2D5 0x60EE +0xF2D6 0x60F2 +0xF2D7 0x60F5 +0xF2D8 0x6110 +0xF2D9 0x6112 +0xF2DA 0x6113 +0xF2DB 0x6119 +0xF2DC 0x611E +0xF2DD 0x613A +0xF2DE 0x396F +0xF2DF 0x6141 +0xF2E0 0x6146 +0xF2E1 0x6160 +0xF2E2 0x617C +0xF2E3 0x2285B +0xF2E4 0x6192 +0xF2E5 0x6193 +0xF2E6 0x6197 +0xF2E7 0x6198 +0xF2E8 0x61A5 +0xF2E9 0x61A8 +0xF2EA 0x61AD +0xF2EB 0x228AB +0xF2EC 0x61D5 +0xF2ED 0x61DD +0xF2EE 0x61DF +0xF2EF 0x61F5 +0xF2F0 0x2298F +0xF2F1 0x6215 +0xF2F2 0x6223 +0xF2F3 0x6229 +0xF2F4 0x6246 +0xF2F5 0x624C +0xF2F6 0x6251 +0xF2F7 0x6252 +0xF2F8 0x6261 +0xF2F9 0x6264 +0xF2FA 0x627B +0xF2FB 0x626D +0xF2FC 0x6273 +0xF340 0x6299 +0xF341 0x62A6 +0xF342 0x62D5 +0xF343 0x22AB8 +0xF344 0x62FD +0xF345 0x6303 +0xF346 0x630D +0xF347 0x6310 +0xF348 0x22B4F +0xF349 0x22B50 +0xF34A 0x6332 +0xF34B 0x6335 +0xF34C 0x633B +0xF34D 0x633C +0xF34E 0x6341 +0xF34F 0x6344 +0xF350 0x634E +0xF351 0x22B46 +0xF352 0x6359 +0xF353 0x22C1D +0xF354 0x22BA6 +0xF355 0x636C +0xF356 0x6384 +0xF357 0x6399 +0xF358 0x22C24 +0xF359 0x6394 +0xF35A 0x63BD +0xF35B 0x63F7 +0xF35C 0x63D4 +0xF35D 0x63D5 +0xF35E 0x63DC +0xF35F 0x63E0 +0xF360 0x63EB +0xF361 0x63EC +0xF362 0x63F2 +0xF363 0x6409 +0xF364 0x641E +0xF365 0x6425 +0xF366 0x6429 +0xF367 0x642F +0xF368 0x645A +0xF369 0x645B +0xF36A 0x645D +0xF36B 0x6473 +0xF36C 0x647D +0xF36D 0x6487 +0xF36E 0x6491 +0xF36F 0x649D +0xF370 0x649F +0xF371 0x64CB +0xF372 0x64CC +0xF373 0x64D5 +0xF374 0x64D7 +0xF375 0x22DE1 +0xF376 0x64E4 +0xF377 0x64E5 +0xF378 0x64FF +0xF379 0x6504 +0xF37A 0x3A6E +0xF37B 0x650F +0xF37C 0x6514 +0xF37D 0x6516 +0xF37E 0x3A73 +0xF380 0x651E +0xF381 0x6532 +0xF382 0x6544 +0xF383 0x6554 +0xF384 0x656B +0xF385 0x657A +0xF386 0x6581 +0xF387 0x6584 +0xF388 0x6585 +0xF389 0x658A +0xF38A 0x65B2 +0xF38B 0x65B5 +0xF38C 0x65B8 +0xF38D 0x65BF +0xF38E 0x65C2 +0xF38F 0x65C9 +0xF390 0x65D4 +0xF391 0x3AD6 +0xF392 0x65F2 +0xF393 0x65F9 +0xF394 0x65FC +0xF395 0x6604 +0xF396 0x6608 +0xF397 0x6621 +0xF398 0x662A +0xF399 0x6645 +0xF39A 0x6651 +0xF39B 0x664E +0xF39C 0x3AEA +0xF39D 0x231C3 +0xF39E 0x6657 +0xF39F 0x665B +0xF3A0 0x6663 +0xF3A1 0x231F5 +0xF3A2 0x231B6 +0xF3A3 0x666A +0xF3A4 0x666B +0xF3A5 0x666C +0xF3A6 0x666D +0xF3A7 0x667B +0xF3A8 0x6680 +0xF3A9 0x6690 +0xF3AA 0x6692 +0xF3AB 0x6699 +0xF3AC 0x3B0E +0xF3AD 0x66AD +0xF3AE 0x66B1 +0xF3AF 0x66B5 +0xF3B0 0x3B1A +0xF3B1 0x66BF +0xF3B2 0x3B1C +0xF3B3 0x66EC +0xF3B4 0x3AD7 +0xF3B5 0x6701 +0xF3B6 0x6705 +0xF3B7 0x6712 +0xF3B8 0x23372 +0xF3B9 0x6719 +0xF3BA 0x233D3 +0xF3BB 0x233D2 +0xF3BC 0x674C +0xF3BD 0x674D +0xF3BE 0x6754 +0xF3BF 0x675D +0xF3C0 0x233D0 +0xF3C1 0x233E4 +0xF3C2 0x233D5 +0xF3C3 0x6774 +0xF3C4 0x6776 +0xF3C5 0x233DA +0xF3C6 0x6792 +0xF3C7 0x233DF +0xF3C8 0x8363 +0xF3C9 0x6810 +0xF3CA 0x67B0 +0xF3CB 0x67B2 +0xF3CC 0x67C3 +0xF3CD 0x67C8 +0xF3CE 0x67D2 +0xF3CF 0x67D9 +0xF3D0 0x67DB +0xF3D1 0x67F0 +0xF3D2 0x67F7 +0xF3D3 0x2344A +0xF3D4 0x23451 +0xF3D5 0x2344B +0xF3D6 0x6818 +0xF3D7 0x681F +0xF3D8 0x682D +0xF3D9 0x23465 +0xF3DA 0x6833 +0xF3DB 0x683B +0xF3DC 0x683E +0xF3DD 0x6844 +0xF3DE 0x6845 +0xF3DF 0x6849 +0xF3E0 0x684C +0xF3E1 0x6855 +0xF3E2 0x6857 +0xF3E3 0x3B77 +0xF3E4 0x686B +0xF3E5 0x686E +0xF3E6 0x687A +0xF3E7 0x687C +0xF3E8 0x6882 +0xF3E9 0x6890 +0xF3EA 0x6896 +0xF3EB 0x3B6D +0xF3EC 0x6898 +0xF3ED 0x6899 +0xF3EE 0x689A +0xF3EF 0x689C +0xF3F0 0x68AA +0xF3F1 0x68AB +0xF3F2 0x68B4 +0xF3F3 0x68BB +0xF3F4 0x68FB +0xF3F5 0x234E4 +0xF3F6 0x2355A +0xF3F7 0xFA13 +0xF3F8 0x68C3 +0xF3F9 0x68C5 +0xF3FA 0x68CC +0xF3FB 0x68CF +0xF3FC 0x68D6 +0xF440 0x68D9 +0xF441 0x68E4 +0xF442 0x68E5 +0xF443 0x68EC +0xF444 0x68F7 +0xF445 0x6903 +0xF446 0x6907 +0xF447 0x3B87 +0xF448 0x3B88 +0xF449 0x23594 +0xF44A 0x693B +0xF44B 0x3B8D +0xF44C 0x6946 +0xF44D 0x6969 +0xF44E 0x696C +0xF44F 0x6972 +0xF450 0x697A +0xF451 0x697F +0xF452 0x6992 +0xF453 0x3BA4 +0xF454 0x6996 +0xF455 0x6998 +0xF456 0x69A6 +0xF457 0x69B0 +0xF458 0x69B7 +0xF459 0x69BA +0xF45A 0x69BC +0xF45B 0x69C0 +0xF45C 0x69D1 +0xF45D 0x69D6 +0xF45E 0x23639 +0xF45F 0x23647 +0xF460 0x6A30 +0xF461 0x23638 +0xF462 0x2363A +0xF463 0x69E3 +0xF464 0x69EE +0xF465 0x69EF +0xF466 0x69F3 +0xF467 0x3BCD +0xF468 0x69F4 +0xF469 0x69FE +0xF46A 0x6A11 +0xF46B 0x6A1A +0xF46C 0x6A1D +0xF46D 0x2371C +0xF46E 0x6A32 +0xF46F 0x6A33 +0xF470 0x6A34 +0xF471 0x6A3F +0xF472 0x6A46 +0xF473 0x6A49 +0xF474 0x6A7A +0xF475 0x6A4E +0xF476 0x6A52 +0xF477 0x6A64 +0xF478 0x2370C +0xF479 0x6A7E +0xF47A 0x6A83 +0xF47B 0x6A8B +0xF47C 0x3BF0 +0xF47D 0x6A91 +0xF47E 0x6A9F +0xF480 0x6AA1 +0xF481 0x23764 +0xF482 0x6AAB +0xF483 0x6ABD +0xF484 0x6AC6 +0xF485 0x6AD4 +0xF486 0x6AD0 +0xF487 0x6ADC +0xF488 0x6ADD +0xF489 0x237FF +0xF48A 0x237E7 +0xF48B 0x6AEC +0xF48C 0x6AF1 +0xF48D 0x6AF2 +0xF48E 0x6AF3 +0xF48F 0x6AFD +0xF490 0x23824 +0xF491 0x6B0B +0xF492 0x6B0F +0xF493 0x6B10 +0xF494 0x6B11 +0xF495 0x2383D +0xF496 0x6B17 +0xF497 0x3C26 +0xF498 0x6B2F +0xF499 0x6B4A +0xF49A 0x6B58 +0xF49B 0x6B6C +0xF49C 0x6B75 +0xF49D 0x6B7A +0xF49E 0x6B81 +0xF49F 0x6B9B +0xF4A0 0x6BAE +0xF4A1 0x23A98 +0xF4A2 0x6BBD +0xF4A3 0x6BBE +0xF4A4 0x6BC7 +0xF4A5 0x6BC8 +0xF4A6 0x6BC9 +0xF4A7 0x6BDA +0xF4A8 0x6BE6 +0xF4A9 0x6BE7 +0xF4AA 0x6BEE +0xF4AB 0x6BF1 +0xF4AC 0x6C02 +0xF4AD 0x6C0A +0xF4AE 0x6C0E +0xF4AF 0x6C35 +0xF4B0 0x6C36 +0xF4B1 0x6C3A +0xF4B2 0x23C7F +0xF4B3 0x6C3F +0xF4B4 0x6C4D +0xF4B5 0x6C5B +0xF4B6 0x6C6D +0xF4B7 0x6C84 +0xF4B8 0x6C89 +0xF4B9 0x3CC3 +0xF4BA 0x6C94 +0xF4BB 0x6C95 +0xF4BC 0x6C97 +0xF4BD 0x6CAD +0xF4BE 0x6CC2 +0xF4BF 0x6CD0 +0xF4C0 0x3CD2 +0xF4C1 0x6CD6 +0xF4C2 0x6CDA +0xF4C3 0x6CDC +0xF4C4 0x6CE9 +0xF4C5 0x6CEC +0xF4C6 0x6CED +0xF4C7 0x23D00 +0xF4C8 0x6D00 +0xF4C9 0x6D0A +0xF4CA 0x6D24 +0xF4CB 0x6D26 +0xF4CC 0x6D27 +0xF4CD 0x6C67 +0xF4CE 0x6D2F +0xF4CF 0x6D3C +0xF4D0 0x6D5B +0xF4D1 0x6D5E +0xF4D2 0x6D60 +0xF4D3 0x6D70 +0xF4D4 0x6D80 +0xF4D5 0x6D81 +0xF4D6 0x6D8A +0xF4D7 0x6D8D +0xF4D8 0x6D91 +0xF4D9 0x6D98 +0xF4DA 0x23D40 +0xF4DB 0x6E17 +0xF4DC 0x23DFA +0xF4DD 0x23DF9 +0xF4DE 0x23DD3 +0xF4DF 0x6DAB +0xF4E0 0x6DAE +0xF4E1 0x6DB4 +0xF4E2 0x6DC2 +0xF4E3 0x6D34 +0xF4E4 0x6DC8 +0xF4E5 0x6DCE +0xF4E6 0x6DCF +0xF4E7 0x6DD0 +0xF4E8 0x6DDF +0xF4E9 0x6DE9 +0xF4EA 0x6DF6 +0xF4EB 0x6E36 +0xF4EC 0x6E1E +0xF4ED 0x6E22 +0xF4EE 0x6E27 +0xF4EF 0x3D11 +0xF4F0 0x6E32 +0xF4F1 0x6E3C +0xF4F2 0x6E48 +0xF4F3 0x6E49 +0xF4F4 0x6E4B +0xF4F5 0x6E4C +0xF4F6 0x6E4F +0xF4F7 0x6E51 +0xF4F8 0x6E53 +0xF4F9 0x6E54 +0xF4FA 0x6E57 +0xF4FB 0x6E63 +0xF4FC 0x3D1E +0xF540 0x6E93 +0xF541 0x6EA7 +0xF542 0x6EB4 +0xF543 0x6EBF +0xF544 0x6EC3 +0xF545 0x6ECA +0xF546 0x6ED9 +0xF547 0x6F35 +0xF548 0x6EEB +0xF549 0x6EF9 +0xF54A 0x6EFB +0xF54B 0x6F0A +0xF54C 0x6F0C +0xF54D 0x6F18 +0xF54E 0x6F25 +0xF54F 0x6F36 +0xF550 0x6F3C +0xF551 0x23F7E +0xF552 0x6F52 +0xF553 0x6F57 +0xF554 0x6F5A +0xF555 0x6F60 +0xF556 0x6F68 +0xF557 0x6F98 +0xF558 0x6F7D +0xF559 0x6F90 +0xF55A 0x6F96 +0xF55B 0x6FBE +0xF55C 0x6F9F +0xF55D 0x6FA5 +0xF55E 0x6FAF +0xF55F 0x3D64 +0xF560 0x6FB5 +0xF561 0x6FC8 +0xF562 0x6FC9 +0xF563 0x6FDA +0xF564 0x6FDE +0xF565 0x6FE9 +0xF566 0x24096 +0xF567 0x6FFC +0xF568 0x7000 +0xF569 0x7007 +0xF56A 0x700A +0xF56B 0x7023 +0xF56C 0x24103 +0xF56D 0x7039 +0xF56E 0x703A +0xF56F 0x703C +0xF570 0x7043 +0xF571 0x7047 +0xF572 0x704B +0xF573 0x3D9A +0xF574 0x7054 +0xF575 0x7065 +0xF576 0x7069 +0xF577 0x706C +0xF578 0x706E +0xF579 0x7076 +0xF57A 0x707E +0xF57B 0x7081 +0xF57C 0x7086 +0xF57D 0x7095 +0xF57E 0x7097 +0xF580 0x70BB +0xF581 0x241C6 +0xF582 0x709F +0xF583 0x70B1 +0xF584 0x241FE +0xF585 0x70EC +0xF586 0x70CA +0xF587 0x70D1 +0xF588 0x70D3 +0xF589 0x70DC +0xF58A 0x7103 +0xF58B 0x7104 +0xF58C 0x7106 +0xF58D 0x7107 +0xF58E 0x7108 +0xF58F 0x710C +0xF590 0x3DC0 +0xF591 0x712F +0xF592 0x7131 +0xF593 0x7150 +0xF594 0x714A +0xF595 0x7153 +0xF596 0x715E +0xF597 0x3DD4 +0xF598 0x7196 +0xF599 0x7180 +0xF59A 0x719B +0xF59B 0x71A0 +0xF59C 0x71A2 +0xF59D 0x71AE +0xF59E 0x71AF +0xF59F 0x71B3 +0xF5A0 0x243BC +0xF5A1 0x71CB +0xF5A2 0x71D3 +0xF5A3 0x71D9 +0xF5A4 0x71DC +0xF5A5 0x7207 +0xF5A6 0x3E05 +0xF5A7 0xFA49 +0xF5A8 0x722B +0xF5A9 0x7234 +0xF5AA 0x7238 +0xF5AB 0x7239 +0xF5AC 0x4E2C +0xF5AD 0x7242 +0xF5AE 0x7253 +0xF5AF 0x7257 +0xF5B0 0x7263 +0xF5B1 0x24629 +0xF5B2 0x726E +0xF5B3 0x726F +0xF5B4 0x7278 +0xF5B5 0x727F +0xF5B6 0x728E +0xF5B7 0x246A5 +0xF5B8 0x72AD +0xF5B9 0x72AE +0xF5BA 0x72B0 +0xF5BB 0x72B1 +0xF5BC 0x72C1 +0xF5BD 0x3E60 +0xF5BE 0x72CC +0xF5BF 0x3E66 +0xF5C0 0x3E68 +0xF5C1 0x72F3 +0xF5C2 0x72FA +0xF5C3 0x7307 +0xF5C4 0x7312 +0xF5C5 0x7318 +0xF5C6 0x7319 +0xF5C7 0x3E83 +0xF5C8 0x7339 +0xF5C9 0x732C +0xF5CA 0x7331 +0xF5CB 0x7333 +0xF5CC 0x733D +0xF5CD 0x7352 +0xF5CE 0x3E94 +0xF5CF 0x736B +0xF5D0 0x736C +0xF5D1 0x24896 +0xF5D2 0x736E +0xF5D3 0x736F +0xF5D4 0x7371 +0xF5D5 0x7377 +0xF5D6 0x7381 +0xF5D7 0x7385 +0xF5D8 0x738A +0xF5D9 0x7394 +0xF5DA 0x7398 +0xF5DB 0x739C +0xF5DC 0x739E +0xF5DD 0x73A5 +0xF5DE 0x73A8 +0xF5DF 0x73B5 +0xF5E0 0x73B7 +0xF5E1 0x73B9 +0xF5E2 0x73BC +0xF5E3 0x73BF +0xF5E4 0x73C5 +0xF5E5 0x73CB +0xF5E6 0x73E1 +0xF5E7 0x73E7 +0xF5E8 0x73F9 +0xF5E9 0x7413 +0xF5EA 0x73FA +0xF5EB 0x7401 +0xF5EC 0x7424 +0xF5ED 0x7431 +0xF5EE 0x7439 +0xF5EF 0x7453 +0xF5F0 0x7440 +0xF5F1 0x7443 +0xF5F2 0x744D +0xF5F3 0x7452 +0xF5F4 0x745D +0xF5F5 0x7471 +0xF5F6 0x7481 +0xF5F7 0x7485 +0xF5F8 0x7488 +0xF5F9 0x24A4D +0xF5FA 0x7492 +0xF5FB 0x7497 +0xF5FC 0x7499 +0xF640 0x74A0 +0xF641 0x74A1 +0xF642 0x74A5 +0xF643 0x74AA +0xF644 0x74AB +0xF645 0x74B9 +0xF646 0x74BB +0xF647 0x74BA +0xF648 0x74D6 +0xF649 0x74D8 +0xF64A 0x74DE +0xF64B 0x74EF +0xF64C 0x74EB +0xF64D 0x24B56 +0xF64E 0x74FA +0xF64F 0x24B6F +0xF650 0x7520 +0xF651 0x7524 +0xF652 0x752A +0xF653 0x3F57 +0xF654 0x24C16 +0xF655 0x753D +0xF656 0x753E +0xF657 0x7540 +0xF658 0x7548 +0xF659 0x754E +0xF65A 0x7550 +0xF65B 0x7552 +0xF65C 0x756C +0xF65D 0x7572 +0xF65E 0x7571 +0xF65F 0x757A +0xF660 0x757D +0xF661 0x757E +0xF662 0x7581 +0xF663 0x24D14 +0xF664 0x758C +0xF665 0x3F75 +0xF666 0x75A2 +0xF667 0x3F77 +0xF668 0x75B0 +0xF669 0x75B7 +0xF66A 0x75BF +0xF66B 0x75C0 +0xF66C 0x75C6 +0xF66D 0x75CF +0xF66E 0x75D3 +0xF66F 0x75DD +0xF670 0x75DF +0xF671 0x75E0 +0xF672 0x75E7 +0xF673 0x75EC +0xF674 0x75EE +0xF675 0x75F1 +0xF676 0x75F9 +0xF677 0x7603 +0xF678 0x7618 +0xF679 0x7607 +0xF67A 0x760F +0xF67B 0x3FAE +0xF67C 0x24E0E +0xF67D 0x7613 +0xF67E 0x761B +0xF680 0x761C +0xF681 0x24E37 +0xF682 0x7625 +0xF683 0x7628 +0xF684 0x763C +0xF685 0x7633 +0xF686 0x24E6A +0xF687 0x3FC9 +0xF688 0x7641 +0xF689 0x24E8B +0xF68A 0x7649 +0xF68B 0x7655 +0xF68C 0x3FD7 +0xF68D 0x766E +0xF68E 0x7695 +0xF68F 0x769C +0xF690 0x76A1 +0xF691 0x76A0 +0xF692 0x76A7 +0xF693 0x76A8 +0xF694 0x76AF +0xF695 0x2504A +0xF696 0x76C9 +0xF697 0x25055 +0xF698 0x76E8 +0xF699 0x76EC +0xF69A 0x25122 +0xF69B 0x7717 +0xF69C 0x771A +0xF69D 0x772D +0xF69E 0x7735 +0xF69F 0x251A9 +0xF6A0 0x4039 +0xF6A1 0x251E5 +0xF6A2 0x251CD +0xF6A3 0x7758 +0xF6A4 0x7760 +0xF6A5 0x776A +0xF6A6 0x2521E +0xF6A7 0x7772 +0xF6A8 0x777C +0xF6A9 0x777D +0xF6AA 0x2524C +0xF6AB 0x4058 +0xF6AC 0x779A +0xF6AD 0x779F +0xF6AE 0x77A2 +0xF6AF 0x77A4 +0xF6B0 0x77A9 +0xF6B1 0x77DE +0xF6B2 0x77DF +0xF6B3 0x77E4 +0xF6B4 0x77E6 +0xF6B5 0x77EA +0xF6B6 0x77EC +0xF6B7 0x4093 +0xF6B8 0x77F0 +0xF6B9 0x77F4 +0xF6BA 0x77FB +0xF6BB 0x2542E +0xF6BC 0x7805 +0xF6BD 0x7806 +0xF6BE 0x7809 +0xF6BF 0x780D +0xF6C0 0x7819 +0xF6C1 0x7821 +0xF6C2 0x782C +0xF6C3 0x7847 +0xF6C4 0x7864 +0xF6C5 0x786A +0xF6C6 0x254D9 +0xF6C7 0x788A +0xF6C8 0x7894 +0xF6C9 0x78A4 +0xF6CA 0x789D +0xF6CB 0x789E +0xF6CC 0x789F +0xF6CD 0x78BB +0xF6CE 0x78C8 +0xF6CF 0x78CC +0xF6D0 0x78CE +0xF6D1 0x78D5 +0xF6D2 0x78E0 +0xF6D3 0x78E1 +0xF6D4 0x78E6 +0xF6D5 0x78F9 +0xF6D6 0x78FA +0xF6D7 0x78FB +0xF6D8 0x78FE +0xF6D9 0x255A7 +0xF6DA 0x7910 +0xF6DB 0x791B +0xF6DC 0x7930 +0xF6DD 0x7925 +0xF6DE 0x793B +0xF6DF 0x794A +0xF6E0 0x7958 +0xF6E1 0x795B +0xF6E2 0x4105 +0xF6E3 0x7967 +0xF6E4 0x7972 +0xF6E5 0x7994 +0xF6E6 0x7995 +0xF6E7 0x7996 +0xF6E8 0x799B +0xF6E9 0x79A1 +0xF6EA 0x79A9 +0xF6EB 0x79B4 +0xF6EC 0x79BB +0xF6ED 0x79C2 +0xF6EE 0x79C7 +0xF6EF 0x79CC +0xF6F0 0x79CD +0xF6F1 0x79D6 +0xF6F2 0x4148 +0xF6F3 0x257A9 +0xF6F4 0x257B4 +0xF6F5 0x414F +0xF6F6 0x7A0A +0xF6F7 0x7A11 +0xF6F8 0x7A15 +0xF6F9 0x7A1B +0xF6FA 0x7A1E +0xF6FB 0x4163 +0xF6FC 0x7A2D +0xF740 0x7A38 +0xF741 0x7A47 +0xF742 0x7A4C +0xF743 0x7A56 +0xF744 0x7A59 +0xF745 0x7A5C +0xF746 0x7A5F +0xF747 0x7A60 +0xF748 0x7A67 +0xF749 0x7A6A +0xF74A 0x7A75 +0xF74B 0x7A78 +0xF74C 0x7A82 +0xF74D 0x7A8A +0xF74E 0x7A90 +0xF74F 0x7AA3 +0xF750 0x7AAC +0xF751 0x259D4 +0xF752 0x41B4 +0xF753 0x7AB9 +0xF754 0x7ABC +0xF755 0x7ABE +0xF756 0x41BF +0xF757 0x7ACC +0xF758 0x7AD1 +0xF759 0x7AE7 +0xF75A 0x7AE8 +0xF75B 0x7AF4 +0xF75C 0x25AE4 +0xF75D 0x25AE3 +0xF75E 0x7B07 +0xF75F 0x25AF1 +0xF760 0x7B3D +0xF761 0x7B27 +0xF762 0x7B2A +0xF763 0x7B2E +0xF764 0x7B2F +0xF765 0x7B31 +0xF766 0x41E6 +0xF767 0x41F3 +0xF768 0x7B7F +0xF769 0x7B41 +0xF76A 0x41EE +0xF76B 0x7B55 +0xF76C 0x7B79 +0xF76D 0x7B64 +0xF76E 0x7B66 +0xF76F 0x7B69 +0xF770 0x7B73 +0xF771 0x25BB2 +0xF772 0x4207 +0xF773 0x7B90 +0xF774 0x7B91 +0xF775 0x7B9B +0xF776 0x420E +0xF777 0x7BAF +0xF778 0x7BB5 +0xF779 0x7BBC +0xF77A 0x7BC5 +0xF77B 0x7BCA +0xF77C 0x25C4B +0xF77D 0x25C64 +0xF77E 0x7BD4 +0xF780 0x7BD6 +0xF781 0x7BDA +0xF782 0x7BEA +0xF783 0x7BF0 +0xF784 0x7C03 +0xF785 0x7C0B +0xF786 0x7C0E +0xF787 0x7C0F +0xF788 0x7C26 +0xF789 0x7C45 +0xF78A 0x7C4A +0xF78B 0x7C51 +0xF78C 0x7C57 +0xF78D 0x7C5E +0xF78E 0x7C61 +0xF78F 0x7C69 +0xF790 0x7C6E +0xF791 0x7C6F +0xF792 0x7C70 +0xF793 0x25E2E +0xF794 0x25E56 +0xF795 0x25E65 +0xF796 0x7CA6 +0xF797 0x25E62 +0xF798 0x7CB6 +0xF799 0x7CB7 +0xF79A 0x7CBF +0xF79B 0x25ED8 +0xF79C 0x7CC4 +0xF79D 0x25EC2 +0xF79E 0x7CC8 +0xF79F 0x7CCD +0xF7A0 0x25EE8 +0xF7A1 0x7CD7 +0xF7A2 0x25F23 +0xF7A3 0x7CE6 +0xF7A4 0x7CEB +0xF7A5 0x25F5C +0xF7A6 0x7CF5 +0xF7A7 0x7D03 +0xF7A8 0x7D09 +0xF7A9 0x42C6 +0xF7AA 0x7D12 +0xF7AB 0x7D1E +0xF7AC 0x25FE0 +0xF7AD 0x25FD4 +0xF7AE 0x7D3D +0xF7AF 0x7D3E +0xF7B0 0x7D40 +0xF7B1 0x7D47 +0xF7B2 0x2600C +0xF7B3 0x25FFB +0xF7B4 0x42D6 +0xF7B5 0x7D59 +0xF7B6 0x7D5A +0xF7B7 0x7D6A +0xF7B8 0x7D70 +0xF7B9 0x42DD +0xF7BA 0x7D7F +0xF7BB 0x26017 +0xF7BC 0x7D86 +0xF7BD 0x7D88 +0xF7BE 0x7D8C +0xF7BF 0x7D97 +0xF7C0 0x26060 +0xF7C1 0x7D9D +0xF7C2 0x7DA7 +0xF7C3 0x7DAA +0xF7C4 0x7DB6 +0xF7C5 0x7DB7 +0xF7C6 0x7DC0 +0xF7C7 0x7DD7 +0xF7C8 0x7DD9 +0xF7C9 0x7DE6 +0xF7CA 0x7DF1 +0xF7CB 0x7DF9 +0xF7CC 0x4302 +0xF7CD 0x260ED +0xF7CE 0xFA58 +0xF7CF 0x7E10 +0xF7D0 0x7E17 +0xF7D1 0x7E1D +0xF7D2 0x7E20 +0xF7D3 0x7E27 +0xF7D4 0x7E2C +0xF7D5 0x7E45 +0xF7D6 0x7E73 +0xF7D7 0x7E75 +0xF7D8 0x7E7E +0xF7D9 0x7E86 +0xF7DA 0x7E87 +0xF7DB 0x432B +0xF7DC 0x7E91 +0xF7DD 0x7E98 +0xF7DE 0x7E9A +0xF7DF 0x4343 +0xF7E0 0x7F3C +0xF7E1 0x7F3B +0xF7E2 0x7F3E +0xF7E3 0x7F43 +0xF7E4 0x7F44 +0xF7E5 0x7F4F +0xF7E6 0x34C1 +0xF7E7 0x26270 +0xF7E8 0x7F52 +0xF7E9 0x26286 +0xF7EA 0x7F61 +0xF7EB 0x7F63 +0xF7EC 0x7F64 +0xF7ED 0x7F6D +0xF7EE 0x7F7D +0xF7EF 0x7F7E +0xF7F0 0x2634C +0xF7F1 0x7F90 +0xF7F2 0x517B +0xF7F3 0x23D0E +0xF7F4 0x7F96 +0xF7F5 0x7F9C +0xF7F6 0x7FAD +0xF7F7 0x26402 +0xF7F8 0x7FC3 +0xF7F9 0x7FCF +0xF7FA 0x7FE3 +0xF7FB 0x7FE5 +0xF7FC 0x7FEF +0xF840 0x7FF2 +0xF841 0x8002 +0xF842 0x800A +0xF843 0x8008 +0xF844 0x800E +0xF845 0x8011 +0xF846 0x8016 +0xF847 0x8024 +0xF848 0x802C +0xF849 0x8030 +0xF84A 0x8043 +0xF84B 0x8066 +0xF84C 0x8071 +0xF84D 0x8075 +0xF84E 0x807B +0xF84F 0x8099 +0xF850 0x809C +0xF851 0x80A4 +0xF852 0x80A7 +0xF853 0x80B8 +0xF854 0x2667E +0xF855 0x80C5 +0xF856 0x80D5 +0xF857 0x80D8 +0xF858 0x80E6 +0xF859 0x266B0 +0xF85A 0x810D +0xF85B 0x80F5 +0xF85C 0x80FB +0xF85D 0x43EE +0xF85E 0x8135 +0xF85F 0x8116 +0xF860 0x811E +0xF861 0x43F0 +0xF862 0x8124 +0xF863 0x8127 +0xF864 0x812C +0xF865 0x2671D +0xF866 0x813D +0xF867 0x4408 +0xF868 0x8169 +0xF869 0x4417 +0xF86A 0x8181 +0xF86B 0x441C +0xF86C 0x8184 +0xF86D 0x8185 +0xF86E 0x4422 +0xF86F 0x8198 +0xF870 0x81B2 +0xF871 0x81C1 +0xF872 0x81C3 +0xF873 0x81D6 +0xF874 0x81DB +0xF875 0x268DD +0xF876 0x81E4 +0xF877 0x268EA +0xF878 0x81EC +0xF879 0x26951 +0xF87A 0x81FD +0xF87B 0x81FF +0xF87C 0x2696F +0xF87D 0x8204 +0xF87E 0x269DD +0xF880 0x8219 +0xF881 0x8221 +0xF882 0x8222 +0xF883 0x26A1E +0xF884 0x8232 +0xF885 0x8234 +0xF886 0x823C +0xF887 0x8246 +0xF888 0x8249 +0xF889 0x8245 +0xF88A 0x26A58 +0xF88B 0x824B +0xF88C 0x4476 +0xF88D 0x824F +0xF88E 0x447A +0xF88F 0x8257 +0xF890 0x26A8C +0xF891 0x825C +0xF892 0x8263 +0xF893 0x26AB7 +0xF894 0xFA5D +0xF895 0xFA5E +0xF896 0x8279 +0xF897 0x4491 +0xF898 0x827D +0xF899 0x827F +0xF89A 0x8283 +0xF89B 0x828A +0xF89C 0x8293 +0xF89D 0x82A7 +0xF89E 0x82A8 +0xF89F 0x82B2 +0xF8A0 0x82B4 +0xF8A1 0x82BA +0xF8A2 0x82BC +0xF8A3 0x82E2 +0xF8A4 0x82E8 +0xF8A5 0x82F7 +0xF8A6 0x8307 +0xF8A7 0x8308 +0xF8A8 0x830C +0xF8A9 0x8354 +0xF8AA 0x831B +0xF8AB 0x831D +0xF8AC 0x8330 +0xF8AD 0x833C +0xF8AE 0x8344 +0xF8AF 0x8357 +0xF8B0 0x44BE +0xF8B1 0x837F +0xF8B2 0x44D4 +0xF8B3 0x44B3 +0xF8B4 0x838D +0xF8B5 0x8394 +0xF8B6 0x8395 +0xF8B7 0x839B +0xF8B8 0x839D +0xF8B9 0x83C9 +0xF8BA 0x83D0 +0xF8BB 0x83D4 +0xF8BC 0x83DD +0xF8BD 0x83E5 +0xF8BE 0x83F9 +0xF8BF 0x840F +0xF8C0 0x8411 +0xF8C1 0x8415 +0xF8C2 0x26C73 +0xF8C3 0x8417 +0xF8C4 0x8439 +0xF8C5 0x844A +0xF8C6 0x844F +0xF8C7 0x8451 +0xF8C8 0x8452 +0xF8C9 0x8459 +0xF8CA 0x845A +0xF8CB 0x845C +0xF8CC 0x26CDD +0xF8CD 0x8465 +0xF8CE 0x8476 +0xF8CF 0x8478 +0xF8D0 0x847C +0xF8D1 0x8481 +0xF8D2 0x450D +0xF8D3 0x84DC +0xF8D4 0x8497 +0xF8D5 0x84A6 +0xF8D6 0x84BE +0xF8D7 0x4508 +0xF8D8 0x84CE +0xF8D9 0x84CF +0xF8DA 0x84D3 +0xF8DB 0x26E65 +0xF8DC 0x84E7 +0xF8DD 0x84EA +0xF8DE 0x84EF +0xF8DF 0x84F0 +0xF8E0 0x84F1 +0xF8E1 0x84FA +0xF8E2 0x84FD +0xF8E3 0x850C +0xF8E4 0x851B +0xF8E5 0x8524 +0xF8E6 0x8525 +0xF8E7 0x852B +0xF8E8 0x8534 +0xF8E9 0x854F +0xF8EA 0x856F +0xF8EB 0x4525 +0xF8EC 0x4543 +0xF8ED 0x853E +0xF8EE 0x8551 +0xF8EF 0x8553 +0xF8F0 0x855E +0xF8F1 0x8561 +0xF8F2 0x8562 +0xF8F3 0x26F94 +0xF8F4 0x857B +0xF8F5 0x857D +0xF8F6 0x857F +0xF8F7 0x8581 +0xF8F8 0x8586 +0xF8F9 0x8593 +0xF8FA 0x859D +0xF8FB 0x859F +0xF8FC 0x26FF8 +0xF940 0x26FF6 +0xF941 0x26FF7 +0xF942 0x85B7 +0xF943 0x85BC +0xF944 0x85C7 +0xF945 0x85CA +0xF946 0x85D8 +0xF947 0x85D9 +0xF948 0x85DF +0xF949 0x85E1 +0xF94A 0x85E6 +0xF94B 0x85F6 +0xF94C 0x8600 +0xF94D 0x8611 +0xF94E 0x861E +0xF94F 0x8621 +0xF950 0x8624 +0xF951 0x8627 +0xF952 0x2710D +0xF953 0x8639 +0xF954 0x863C +0xF955 0x27139 +0xF956 0x8640 +0xF957 0xFA20 +0xF958 0x8653 +0xF959 0x8656 +0xF95A 0x866F +0xF95B 0x8677 +0xF95C 0x867A +0xF95D 0x8687 +0xF95E 0x8689 +0xF95F 0x868D +0xF960 0x8691 +0xF961 0x869C +0xF962 0x869D +0xF963 0x86A8 +0xF964 0xFA21 +0xF965 0x86B1 +0xF966 0x86B3 +0xF967 0x86C1 +0xF968 0x86C3 +0xF969 0x86D1 +0xF96A 0x86D5 +0xF96B 0x86D7 +0xF96C 0x86E3 +0xF96D 0x86E6 +0xF96E 0x45B8 +0xF96F 0x8705 +0xF970 0x8707 +0xF971 0x870E +0xF972 0x8710 +0xF973 0x8713 +0xF974 0x8719 +0xF975 0x871F +0xF976 0x8721 +0xF977 0x8723 +0xF978 0x8731 +0xF979 0x873A +0xF97A 0x873E +0xF97B 0x8740 +0xF97C 0x8743 +0xF97D 0x8751 +0xF97E 0x8758 +0xF980 0x8764 +0xF981 0x8765 +0xF982 0x8772 +0xF983 0x877C +0xF984 0x273DB +0xF985 0x273DA +0xF986 0x87A7 +0xF987 0x8789 +0xF988 0x878B +0xF989 0x8793 +0xF98A 0x87A0 +0xF98B 0x273FE +0xF98C 0x45E5 +0xF98D 0x87BE +0xF98E 0x27410 +0xF98F 0x87C1 +0xF990 0x87CE +0xF991 0x87F5 +0xF992 0x87DF +0xF993 0x27449 +0xF994 0x87E3 +0xF995 0x87E5 +0xF996 0x87E6 +0xF997 0x87EA +0xF998 0x87EB +0xF999 0x87ED +0xF99A 0x8801 +0xF99B 0x8803 +0xF99C 0x880B +0xF99D 0x8813 +0xF99E 0x8828 +0xF99F 0x882E +0xF9A0 0x8832 +0xF9A1 0x883C +0xF9A2 0x460F +0xF9A3 0x884A +0xF9A4 0x8858 +0xF9A5 0x885F +0xF9A6 0x8864 +0xF9A7 0x27615 +0xF9A8 0x27614 +0xF9A9 0x8869 +0xF9AA 0x27631 +0xF9AB 0x886F +0xF9AC 0x88A0 +0xF9AD 0x88BC +0xF9AE 0x88BD +0xF9AF 0x88BE +0xF9B0 0x88C0 +0xF9B1 0x88D2 +0xF9B2 0x27693 +0xF9B3 0x88D1 +0xF9B4 0x88D3 +0xF9B5 0x88DB +0xF9B6 0x88F0 +0xF9B7 0x88F1 +0xF9B8 0x4641 +0xF9B9 0x8901 +0xF9BA 0x2770E +0xF9BB 0x8937 +0xF9BC 0x27723 +0xF9BD 0x8942 +0xF9BE 0x8945 +0xF9BF 0x8949 +0xF9C0 0x27752 +0xF9C1 0x4665 +0xF9C2 0x8962 +0xF9C3 0x8980 +0xF9C4 0x8989 +0xF9C5 0x8990 +0xF9C6 0x899F +0xF9C7 0x89B0 +0xF9C8 0x89B7 +0xF9C9 0x89D6 +0xF9CA 0x89D8 +0xF9CB 0x89EB +0xF9CC 0x46A1 +0xF9CD 0x89F1 +0xF9CE 0x89F3 +0xF9CF 0x89FD +0xF9D0 0x89FF +0xF9D1 0x46AF +0xF9D2 0x8A11 +0xF9D3 0x8A14 +0xF9D4 0x27985 +0xF9D5 0x8A21 +0xF9D6 0x8A35 +0xF9D7 0x8A3E +0xF9D8 0x8A45 +0xF9D9 0x8A4D +0xF9DA 0x8A58 +0xF9DB 0x8AAE +0xF9DC 0x8A90 +0xF9DD 0x8AB7 +0xF9DE 0x8ABE +0xF9DF 0x8AD7 +0xF9E0 0x8AFC +0xF9E1 0x27A84 +0xF9E2 0x8B0A +0xF9E3 0x8B05 +0xF9E4 0x8B0D +0xF9E5 0x8B1C +0xF9E6 0x8B1F +0xF9E7 0x8B2D +0xF9E8 0x8B43 +0xF9E9 0x470C +0xF9EA 0x8B51 +0xF9EB 0x8B5E +0xF9EC 0x8B76 +0xF9ED 0x8B7F +0xF9EE 0x8B81 +0xF9EF 0x8B8B +0xF9F0 0x8B94 +0xF9F1 0x8B95 +0xF9F2 0x8B9C +0xF9F3 0x8B9E +0xF9F4 0x8C39 +0xF9F5 0x27BB3 +0xF9F6 0x8C3D +0xF9F7 0x27BBE +0xF9F8 0x27BC7 +0xF9F9 0x8C45 +0xF9FA 0x8C47 +0xF9FB 0x8C4F +0xF9FC 0x8C54 +0xFA40 0x8C57 +0xFA41 0x8C69 +0xFA42 0x8C6D +0xFA43 0x8C73 +0xFA44 0x27CB8 +0xFA45 0x8C93 +0xFA46 0x8C92 +0xFA47 0x8C99 +0xFA48 0x4764 +0xFA49 0x8C9B +0xFA4A 0x8CA4 +0xFA4B 0x8CD6 +0xFA4C 0x8CD5 +0xFA4D 0x8CD9 +0xFA4E 0x27DA0 +0xFA4F 0x8CF0 +0xFA50 0x8CF1 +0xFA51 0x27E10 +0xFA52 0x8D09 +0xFA53 0x8D0E +0xFA54 0x8D6C +0xFA55 0x8D84 +0xFA56 0x8D95 +0xFA57 0x8DA6 +0xFA58 0x27FB7 +0xFA59 0x8DC6 +0xFA5A 0x8DC8 +0xFA5B 0x8DD9 +0xFA5C 0x8DEC +0xFA5D 0x8E0C +0xFA5E 0x47FD +0xFA5F 0x8DFD +0xFA60 0x8E06 +0xFA61 0x2808A +0xFA62 0x8E14 +0xFA63 0x8E16 +0xFA64 0x8E21 +0xFA65 0x8E22 +0xFA66 0x8E27 +0xFA67 0x280BB +0xFA68 0x4816 +0xFA69 0x8E36 +0xFA6A 0x8E39 +0xFA6B 0x8E4B +0xFA6C 0x8E54 +0xFA6D 0x8E62 +0xFA6E 0x8E6C +0xFA6F 0x8E6D +0xFA70 0x8E6F +0xFA71 0x8E98 +0xFA72 0x8E9E +0xFA73 0x8EAE +0xFA74 0x8EB3 +0xFA75 0x8EB5 +0xFA76 0x8EB6 +0xFA77 0x8EBB +0xFA78 0x28282 +0xFA79 0x8ED1 +0xFA7A 0x8ED4 +0xFA7B 0x484E +0xFA7C 0x8EF9 +0xFA7D 0x282F3 +0xFA7E 0x8F00 +0xFA80 0x8F08 +0xFA81 0x8F17 +0xFA82 0x8F2B +0xFA83 0x8F40 +0xFA84 0x8F4A +0xFA85 0x8F58 +0xFA86 0x2840C +0xFA87 0x8FA4 +0xFA88 0x8FB4 +0xFA89 0xFA66 +0xFA8A 0x8FB6 +0xFA8B 0x28455 +0xFA8C 0x8FC1 +0xFA8D 0x8FC6 +0xFA8E 0xFA24 +0xFA8F 0x8FCA +0xFA90 0x8FCD +0xFA91 0x8FD3 +0xFA92 0x8FD5 +0xFA93 0x8FE0 +0xFA94 0x8FF1 +0xFA95 0x8FF5 +0xFA96 0x8FFB +0xFA97 0x9002 +0xFA98 0x900C +0xFA99 0x9037 +0xFA9A 0x2856B +0xFA9B 0x9043 +0xFA9C 0x9044 +0xFA9D 0x905D +0xFA9E 0x285C8 +0xFA9F 0x285C9 +0xFAA0 0x9085 +0xFAA1 0x908C +0xFAA2 0x9090 +0xFAA3 0x961D +0xFAA4 0x90A1 +0xFAA5 0x48B5 +0xFAA6 0x90B0 +0xFAA7 0x90B6 +0xFAA8 0x90C3 +0xFAA9 0x90C8 +0xFAAA 0x286D7 +0xFAAB 0x90DC +0xFAAC 0x90DF +0xFAAD 0x286FA +0xFAAE 0x90F6 +0xFAAF 0x90F2 +0xFAB0 0x9100 +0xFAB1 0x90EB +0xFAB2 0x90FE +0xFAB3 0x90FF +0xFAB4 0x9104 +0xFAB5 0x9106 +0xFAB6 0x9118 +0xFAB7 0x911C +0xFAB8 0x911E +0xFAB9 0x9137 +0xFABA 0x9139 +0xFABB 0x913A +0xFABC 0x9146 +0xFABD 0x9147 +0xFABE 0x9157 +0xFABF 0x9159 +0xFAC0 0x9161 +0xFAC1 0x9164 +0xFAC2 0x9174 +0xFAC3 0x9179 +0xFAC4 0x9185 +0xFAC5 0x918E +0xFAC6 0x91A8 +0xFAC7 0x91AE +0xFAC8 0x91B3 +0xFAC9 0x91B6 +0xFACA 0x91C3 +0xFACB 0x91C4 +0xFACC 0x91DA +0xFACD 0x28949 +0xFACE 0x28946 +0xFACF 0x91EC +0xFAD0 0x91EE +0xFAD1 0x9201 +0xFAD2 0x920A +0xFAD3 0x9216 +0xFAD4 0x9217 +0xFAD5 0x2896B +0xFAD6 0x9233 +0xFAD7 0x9242 +0xFAD8 0x9247 +0xFAD9 0x924A +0xFADA 0x924E +0xFADB 0x9251 +0xFADC 0x9256 +0xFADD 0x9259 +0xFADE 0x9260 +0xFADF 0x9261 +0xFAE0 0x9265 +0xFAE1 0x9267 +0xFAE2 0x9268 +0xFAE3 0x28987 +0xFAE4 0x28988 +0xFAE5 0x927C +0xFAE6 0x927D +0xFAE7 0x927F +0xFAE8 0x9289 +0xFAE9 0x928D +0xFAEA 0x9297 +0xFAEB 0x9299 +0xFAEC 0x929F +0xFAED 0x92A7 +0xFAEE 0x92AB +0xFAEF 0x289BA +0xFAF0 0x289BB +0xFAF1 0x92B2 +0xFAF2 0x92BF +0xFAF3 0x92C0 +0xFAF4 0x92C6 +0xFAF5 0x92CE +0xFAF6 0x92D0 +0xFAF7 0x92D7 +0xFAF8 0x92D9 +0xFAF9 0x92E5 +0xFAFA 0x92E7 +0xFAFB 0x9311 +0xFAFC 0x28A1E +0xFB40 0x28A29 +0xFB41 0x92F7 +0xFB42 0x92F9 +0xFB43 0x92FB +0xFB44 0x9302 +0xFB45 0x930D +0xFB46 0x9315 +0xFB47 0x931D +0xFB48 0x931E +0xFB49 0x9327 +0xFB4A 0x9329 +0xFB4B 0x28A71 +0xFB4C 0x28A43 +0xFB4D 0x9347 +0xFB4E 0x9351 +0xFB4F 0x9357 +0xFB50 0x935A +0xFB51 0x936B +0xFB52 0x9371 +0xFB53 0x9373 +0xFB54 0x93A1 +0xFB55 0x28A99 +0xFB56 0x28ACD +0xFB57 0x9388 +0xFB58 0x938B +0xFB59 0x938F +0xFB5A 0x939E +0xFB5B 0x93F5 +0xFB5C 0x28AE4 +0xFB5D 0x28ADD +0xFB5E 0x93F1 +0xFB5F 0x93C1 +0xFB60 0x93C7 +0xFB61 0x93DC +0xFB62 0x93E2 +0xFB63 0x93E7 +0xFB64 0x9409 +0xFB65 0x940F +0xFB66 0x9416 +0xFB67 0x9417 +0xFB68 0x93FB +0xFB69 0x9432 +0xFB6A 0x9434 +0xFB6B 0x943B +0xFB6C 0x9445 +0xFB6D 0x28BC1 +0xFB6E 0x28BEF +0xFB6F 0x946D +0xFB70 0x946F +0xFB71 0x9578 +0xFB72 0x9579 +0xFB73 0x9586 +0xFB74 0x958C +0xFB75 0x958D +0xFB76 0x28D10 +0xFB77 0x95AB +0xFB78 0x95B4 +0xFB79 0x28D71 +0xFB7A 0x95C8 +0xFB7B 0x28DFB +0xFB7C 0x28E1F +0xFB7D 0x962C +0xFB7E 0x9633 +0xFB80 0x9634 +0xFB81 0x28E36 +0xFB82 0x963C +0xFB83 0x9641 +0xFB84 0x9661 +0xFB85 0x28E89 +0xFB86 0x9682 +0xFB87 0x28EEB +0xFB88 0x969A +0xFB89 0x28F32 +0xFB8A 0x49E7 +0xFB8B 0x96A9 +0xFB8C 0x96AF +0xFB8D 0x96B3 +0xFB8E 0x96BA +0xFB8F 0x96BD +0xFB90 0x49FA +0xFB91 0x28FF8 +0xFB92 0x96D8 +0xFB93 0x96DA +0xFB94 0x96DD +0xFB95 0x4A04 +0xFB96 0x9714 +0xFB97 0x9723 +0xFB98 0x4A29 +0xFB99 0x9736 +0xFB9A 0x9741 +0xFB9B 0x9747 +0xFB9C 0x9755 +0xFB9D 0x9757 +0xFB9E 0x975B +0xFB9F 0x976A +0xFBA0 0x292A0 +0xFBA1 0x292B1 +0xFBA2 0x9796 +0xFBA3 0x979A +0xFBA4 0x979E +0xFBA5 0x97A2 +0xFBA6 0x97B1 +0xFBA7 0x97B2 +0xFBA8 0x97BE +0xFBA9 0x97CC +0xFBAA 0x97D1 +0xFBAB 0x97D4 +0xFBAC 0x97D8 +0xFBAD 0x97D9 +0xFBAE 0x97E1 +0xFBAF 0x97F1 +0xFBB0 0x9804 +0xFBB1 0x980D +0xFBB2 0x980E +0xFBB3 0x9814 +0xFBB4 0x9816 +0xFBB5 0x4ABC +0xFBB6 0x29490 +0xFBB7 0x9823 +0xFBB8 0x9832 +0xFBB9 0x9833 +0xFBBA 0x9825 +0xFBBB 0x9847 +0xFBBC 0x9866 +0xFBBD 0x98AB +0xFBBE 0x98AD +0xFBBF 0x98B0 +0xFBC0 0x295CF +0xFBC1 0x98B7 +0xFBC2 0x98B8 +0xFBC3 0x98BB +0xFBC4 0x98BC +0xFBC5 0x98BF +0xFBC6 0x98C2 +0xFBC7 0x98C7 +0xFBC8 0x98CB +0xFBC9 0x98E0 +0xFBCA 0x2967F +0xFBCB 0x98E1 +0xFBCC 0x98E3 +0xFBCD 0x98E5 +0xFBCE 0x98EA +0xFBCF 0x98F0 +0xFBD0 0x98F1 +0xFBD1 0x98F3 +0xFBD2 0x9908 +0xFBD3 0x4B3B +0xFBD4 0x296F0 +0xFBD5 0x9916 +0xFBD6 0x9917 +0xFBD7 0x29719 +0xFBD8 0x991A +0xFBD9 0x991B +0xFBDA 0x991C +0xFBDB 0x29750 +0xFBDC 0x9931 +0xFBDD 0x9932 +0xFBDE 0x9933 +0xFBDF 0x993A +0xFBE0 0x993B +0xFBE1 0x993C +0xFBE2 0x9940 +0xFBE3 0x9941 +0xFBE4 0x9946 +0xFBE5 0x994D +0xFBE6 0x994E +0xFBE7 0x995C +0xFBE8 0x995F +0xFBE9 0x9960 +0xFBEA 0x99A3 +0xFBEB 0x99A6 +0xFBEC 0x99B9 +0xFBED 0x99BD +0xFBEE 0x99BF +0xFBEF 0x99C3 +0xFBF0 0x99C9 +0xFBF1 0x99D4 +0xFBF2 0x99D9 +0xFBF3 0x99DE +0xFBF4 0x298C6 +0xFBF5 0x99F0 +0xFBF6 0x99F9 +0xFBF7 0x99FC +0xFBF8 0x9A0A +0xFBF9 0x9A11 +0xFBFA 0x9A16 +0xFBFB 0x9A1A +0xFBFC 0x9A20 +0xFC40 0x9A31 +0xFC41 0x9A36 +0xFC42 0x9A44 +0xFC43 0x9A4C +0xFC44 0x9A58 +0xFC45 0x4BC2 +0xFC46 0x9AAF +0xFC47 0x4BCA +0xFC48 0x9AB7 +0xFC49 0x4BD2 +0xFC4A 0x9AB9 +0xFC4B 0x29A72 +0xFC4C 0x9AC6 +0xFC4D 0x9AD0 +0xFC4E 0x9AD2 +0xFC4F 0x9AD5 +0xFC50 0x4BE8 +0xFC51 0x9ADC +0xFC52 0x9AE0 +0xFC53 0x9AE5 +0xFC54 0x9AE9 +0xFC55 0x9B03 +0xFC56 0x9B0C +0xFC57 0x9B10 +0xFC58 0x9B12 +0xFC59 0x9B16 +0xFC5A 0x9B1C +0xFC5B 0x9B2B +0xFC5C 0x9B33 +0xFC5D 0x9B3D +0xFC5E 0x4C20 +0xFC5F 0x9B4B +0xFC60 0x9B63 +0xFC61 0x9B65 +0xFC62 0x9B6B +0xFC63 0x9B6C +0xFC64 0x9B73 +0xFC65 0x9B76 +0xFC66 0x9B77 +0xFC67 0x9BA6 +0xFC68 0x9BAC +0xFC69 0x9BB1 +0xFC6A 0x29DDB +0xFC6B 0x29E3D +0xFC6C 0x9BB2 +0xFC6D 0x9BB8 +0xFC6E 0x9BBE +0xFC6F 0x9BC7 +0xFC70 0x9BF3 +0xFC71 0x9BD8 +0xFC72 0x9BDD +0xFC73 0x9BE7 +0xFC74 0x9BEA +0xFC75 0x9BEB +0xFC76 0x9BEF +0xFC77 0x9BEE +0xFC78 0x29E15 +0xFC79 0x9BFA +0xFC7A 0x29E8A +0xFC7B 0x9BF7 +0xFC7C 0x29E49 +0xFC7D 0x9C16 +0xFC7E 0x9C18 +0xFC80 0x9C19 +0xFC81 0x9C1A +0xFC82 0x9C1D +0xFC83 0x9C22 +0xFC84 0x9C27 +0xFC85 0x9C29 +0xFC86 0x9C2A +0xFC87 0x29EC4 +0xFC88 0x9C31 +0xFC89 0x9C36 +0xFC8A 0x9C37 +0xFC8B 0x9C45 +0xFC8C 0x9C5C +0xFC8D 0x29EE9 +0xFC8E 0x9C49 +0xFC8F 0x9C4A +0xFC90 0x29EDB +0xFC91 0x9C54 +0xFC92 0x9C58 +0xFC93 0x9C5B +0xFC94 0x9C5D +0xFC95 0x9C5F +0xFC96 0x9C69 +0xFC97 0x9C6A +0xFC98 0x9C6B +0xFC99 0x9C6D +0xFC9A 0x9C6E +0xFC9B 0x9C70 +0xFC9C 0x9C72 +0xFC9D 0x9C75 +0xFC9E 0x9C7A +0xFC9F 0x9CE6 +0xFCA0 0x9CF2 +0xFCA1 0x9D0B +0xFCA2 0x9D02 +0xFCA3 0x29FCE +0xFCA4 0x9D11 +0xFCA5 0x9D17 +0xFCA6 0x9D18 +0xFCA7 0x2A02F +0xFCA8 0x4CC4 +0xFCA9 0x2A01A +0xFCAA 0x9D32 +0xFCAB 0x4CD1 +0xFCAC 0x9D42 +0xFCAD 0x9D4A +0xFCAE 0x9D5F +0xFCAF 0x9D62 +0xFCB0 0x2A0F9 +0xFCB1 0x9D69 +0xFCB2 0x9D6B +0xFCB3 0x2A082 +0xFCB4 0x9D73 +0xFCB5 0x9D76 +0xFCB6 0x9D77 +0xFCB7 0x9D7E +0xFCB8 0x9D84 +0xFCB9 0x9D8D +0xFCBA 0x9D99 +0xFCBB 0x9DA1 +0xFCBC 0x9DBF +0xFCBD 0x9DB5 +0xFCBE 0x9DB9 +0xFCBF 0x9DBD +0xFCC0 0x9DC3 +0xFCC1 0x9DC7 +0xFCC2 0x9DC9 +0xFCC3 0x9DD6 +0xFCC4 0x9DDA +0xFCC5 0x9DDF +0xFCC6 0x9DE0 +0xFCC7 0x9DE3 +0xFCC8 0x9DF4 +0xFCC9 0x4D07 +0xFCCA 0x9E0A +0xFCCB 0x9E02 +0xFCCC 0x9E0D +0xFCCD 0x9E19 +0xFCCE 0x9E1C +0xFCCF 0x9E1D +0xFCD0 0x9E7B +0xFCD1 0x22218 +0xFCD2 0x9E80 +0xFCD3 0x9E85 +0xFCD4 0x9E9B +0xFCD5 0x9EA8 +0xFCD6 0x2A38C +0xFCD7 0x9EBD +0xFCD8 0x2A437 +0xFCD9 0x9EDF +0xFCDA 0x9EE7 +0xFCDB 0x9EEE +0xFCDC 0x9EFF +0xFCDD 0x9F02 +0xFCDE 0x4D77 +0xFCDF 0x9F03 +0xFCE0 0x9F17 +0xFCE1 0x9F19 +0xFCE2 0x9F2F +0xFCE3 0x9F37 +0xFCE4 0x9F3A +0xFCE5 0x9F3D +0xFCE6 0x9F41 +0xFCE7 0x9F45 +0xFCE8 0x9F46 +0xFCE9 0x9F53 +0xFCEA 0x9F55 +0xFCEB 0x9F58 +0xFCEC 0x2A5F1 +0xFCED 0x9F5D +0xFCEE 0x2A602 +0xFCEF 0x9F69 +0xFCF0 0x2A61A +0xFCF1 0x9F6D +0xFCF2 0x9F70 +0xFCF3 0x9F75 +0xFCF4 0x2A6B2 diff --git a/3rdPartner/libiconv/tests/TCVN-snippet b/3rdPartner/libiconv/tests/TCVN-snippet new file mode 100644 index 0000000..3b37a00 --- /dev/null +++ b/3rdPartner/libiconv/tests/TCVN-snippet @@ -0,0 +1,131 @@ +// The last line of this file is missing the end-of-line terminator +// on purpose, in order to test that the conversion empties the bit buffer +// and shifts back to the initial state at the end of the conversion. +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn +Vietnamese (Ting Vit) Cho bn \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/TCVN-snippet.UTF-8 b/3rdPartner/libiconv/tests/TCVN-snippet.UTF-8 new file mode 100644 index 0000000..c6f3d16 --- /dev/null +++ b/3rdPartner/libiconv/tests/TCVN-snippet.UTF-8 @@ -0,0 +1,131 @@ +// The last line of this file is missing the end-of-line terminator +// on purpose, in order to test that the conversion empties the bit buffer +// and shifts back to the initial state at the end of the conversion. +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn +Vietnamese (Tiếng Việt) Chào bạn \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/TCVN.IRREVERSIBLE.TXT b/3rdPartner/libiconv/tests/TCVN.IRREVERSIBLE.TXT new file mode 100644 index 0000000..ff0784b --- /dev/null +++ b/3rdPartner/libiconv/tests/TCVN.IRREVERSIBLE.TXT @@ -0,0 +1,64 @@ +0x01B2 0x1E78 +0x20B2 0x02DC +0x20B3 0x00B4 +0x42B4 0x1E04 +0x43B3 0x0106 +0x44B4 0x1E0C +0x47B3 0x01F4 +0x48B4 0x1E24 +0x4BB3 0x1E30 +0x4BB4 0x1E32 +0x4CB3 0x0139 +0x4CB4 0x1E36 +0x4DB3 0x1E3E +0x4DB4 0x1E42 +0x4EB0 0x01F8 +0x4EB2 0x00D1 +0x4EB3 0x0143 +0x4EB4 0x1E46 +0x50B3 0x1E54 +0x52B3 0x0154 +0x52B4 0x1E5A +0x53B3 0x015A +0x53B4 0x1E62 +0x54B4 0x1E6C +0x56B2 0x1E7C +0x56B4 0x1E7E +0x57B0 0x1E80 +0x57B3 0x1E82 +0x57B4 0x1E88 +0x5AB3 0x0179 +0x5AB4 0x1E92 +0x62B4 0x1E05 +0x63B3 0x0107 +0x64B4 0x1E0D +0x67B3 0x01F5 +0x68B4 0x1E25 +0x6BB3 0x1E31 +0x6BB4 0x1E33 +0x6CB3 0x013A +0x6CB4 0x1E37 +0x6DB3 0x1E3F +0x6DB4 0x1E43 +0x6EB0 0x01F9 +0x6EB2 0x00F1 +0x6EB3 0x0144 +0x6EB4 0x1E47 +0x70B3 0x1E55 +0x72B3 0x0155 +0x72B4 0x1E5B +0x73B3 0x015B +0x73B4 0x1E63 +0x74B4 0x1E6D +0x76B2 0x1E7D +0x76B4 0x1E7F +0x77B0 0x1E81 +0x77B3 0x1E83 +0x77B4 0x1E89 +0x7AB3 0x017A +0x7AB4 0x1E93 +0x95B2 0x1E4C +0xB0 0x0340 +0xB3 0x0341 +0xE3B2 0x1E4D +0xF3B2 0x1E79 diff --git a/3rdPartner/libiconv/tests/TCVN.TXT b/3rdPartner/libiconv/tests/TCVN.TXT new file mode 100644 index 0000000..8f09728 --- /dev/null +++ b/3rdPartner/libiconv/tests/TCVN.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x00DA +0x02 0x1EE4 +0x03 0x0003 +0x04 0x1EEA +0x05 0x1EEC +0x06 0x1EEE +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x1EE8 +0x12 0x1EF0 +0x13 0x1EF2 +0x14 0x1EF6 +0x15 0x1EF8 +0x16 0x00DD +0x17 0x1EF4 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x00C0 +0x81 0x1EA2 +0x82 0x00C3 +0x83 0x00C1 +0x84 0x1EA0 +0x85 0x1EB6 +0x86 0x1EAC +0x87 0x00C8 +0x88 0x1EBA +0x89 0x1EBC +0x8A 0x00C9 +0x8B 0x1EB8 +0x8C 0x1EC6 +0x8D 0x00CC +0x8E 0x1EC8 +0x8F 0x0128 +0x90 0x00CD +0x91 0x1ECA +0x92 0x00D2 +0x93 0x1ECE +0x94 0x00D5 +0x95 0x00D3 +0x96 0x1ECC +0x97 0x1ED8 +0x98 0x1EDC +0x99 0x1EDE +0x9A 0x1EE0 +0x9B 0x1EDA +0x9C 0x1EE2 +0x9D 0x00D9 +0x9E 0x1EE6 +0x9F 0x0168 +0xA0 0x00A0 +0xA1 0x0102 +0xA2 0x00C2 +0xA3 0x00CA +0xA4 0x00D4 +0xA5 0x01A0 +0xA6 0x01AF +0xA7 0x0110 +0xA8 0x0103 +0xA9 0x00E2 +0xAA 0x00EA +0xAB 0x00F4 +0xAC 0x01A1 +0xAD 0x01B0 +0xAE 0x0111 +0xAF 0x1EB0 +0xB0 0x0300 +0xB1 0x0309 +0xB2 0x0303 +0xB3 0x0301 +0xB4 0x0323 +0xB5 0x00E0 +0xB6 0x1EA3 +0xB7 0x00E3 +0xB8 0x00E1 +0xB9 0x1EA1 +0xBA 0x1EB2 +0xBB 0x1EB1 +0xBC 0x1EB3 +0xBD 0x1EB5 +0xBE 0x1EAF +0xBF 0x1EB4 +0xC0 0x1EAE +0xC1 0x1EA6 +0xC2 0x1EA8 +0xC3 0x1EAA +0xC4 0x1EA4 +0xC5 0x1EC0 +0xC6 0x1EB7 +0xC7 0x1EA7 +0xC8 0x1EA9 +0xC9 0x1EAB +0xCA 0x1EA5 +0xCB 0x1EAD +0xCC 0x00E8 +0xCD 0x1EC2 +0xCE 0x1EBB +0xCF 0x1EBD +0xD0 0x00E9 +0xD1 0x1EB9 +0xD2 0x1EC1 +0xD3 0x1EC3 +0xD4 0x1EC5 +0xD5 0x1EBF +0xD6 0x1EC7 +0xD7 0x00EC +0xD8 0x1EC9 +0xD9 0x1EC4 +0xDA 0x1EBE +0xDB 0x1ED2 +0xDC 0x0129 +0xDD 0x00ED +0xDE 0x1ECB +0xDF 0x00F2 +0xE0 0x1ED4 +0xE1 0x1ECF +0xE2 0x00F5 +0xE3 0x00F3 +0xE4 0x1ECD +0xE5 0x1ED3 +0xE6 0x1ED5 +0xE7 0x1ED7 +0xE8 0x1ED1 +0xE9 0x1ED9 +0xEA 0x1EDD +0xEB 0x1EDF +0xEC 0x1EE1 +0xED 0x1EDB +0xEE 0x1EE3 +0xEF 0x00F9 +0xF0 0x1ED6 +0xF1 0x1EE7 +0xF2 0x0169 +0xF3 0x00FA +0xF4 0x1EE5 +0xF5 0x1EEB +0xF6 0x1EED +0xF7 0x1EEF +0xF8 0x1EE9 +0xF9 0x1EF1 +0xFA 0x1EF3 +0xFB 0x1EF7 +0xFC 0x1EF9 +0xFD 0x00FD +0xFE 0x1EF5 +0xFF 0x1ED0 diff --git a/3rdPartner/libiconv/tests/TDS565.TXT b/3rdPartner/libiconv/tests/TDS565.TXT new file mode 100644 index 0000000..b24855b --- /dev/null +++ b/3rdPartner/libiconv/tests/TDS565.TXT @@ -0,0 +1,128 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x00C7 +0x44 0x0044 +0x45 0x0045 +0x46 0x00C4 +0x47 0x0046 +0x48 0x0047 +0x49 0x0048 +0x4A 0x0049 +0x4B 0x004A +0x4C 0x017D +0x4D 0x004B +0x4E 0x004C +0x4F 0x004D +0x50 0x004E +0x51 0x0147 +0x52 0x004F +0x53 0x00D6 +0x54 0x0050 +0x55 0x0052 +0x56 0x0053 +0x57 0x015E +0x58 0x0054 +0x59 0x0055 +0x5A 0x00DC +0x5B 0x0057 +0x5C 0x0059 +0x5D 0x00DD +0x5E 0x005A +0x5F 0x005F +0x60 0x2116 +0x61 0x0061 +0x62 0x0062 +0x63 0x00E7 +0x64 0x0064 +0x65 0x0065 +0x66 0x00E4 +0x67 0x0066 +0x68 0x0067 +0x69 0x0068 +0x6A 0x0069 +0x6B 0x006A +0x6C 0x017E +0x6D 0x006B +0x6E 0x006C +0x6F 0x006D +0x70 0x006E +0x71 0x0148 +0x72 0x006F +0x73 0x00F6 +0x74 0x0070 +0x75 0x0072 +0x76 0x0073 +0x77 0x015F +0x78 0x0074 +0x79 0x0075 +0x7A 0x00FC +0x7B 0x0077 +0x7C 0x0079 +0x7D 0x00FD +0x7E 0x007A +0x7F 0x007F diff --git a/3rdPartner/libiconv/tests/TIS-620.TXT b/3rdPartner/libiconv/tests/TIS-620.TXT new file mode 100644 index 0000000..853255e --- /dev/null +++ b/3rdPartner/libiconv/tests/TIS-620.TXT @@ -0,0 +1,215 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0xA1 0x0E01 +0xA2 0x0E02 +0xA3 0x0E03 +0xA4 0x0E04 +0xA5 0x0E05 +0xA6 0x0E06 +0xA7 0x0E07 +0xA8 0x0E08 +0xA9 0x0E09 +0xAA 0x0E0A +0xAB 0x0E0B +0xAC 0x0E0C +0xAD 0x0E0D +0xAE 0x0E0E +0xAF 0x0E0F +0xB0 0x0E10 +0xB1 0x0E11 +0xB2 0x0E12 +0xB3 0x0E13 +0xB4 0x0E14 +0xB5 0x0E15 +0xB6 0x0E16 +0xB7 0x0E17 +0xB8 0x0E18 +0xB9 0x0E19 +0xBA 0x0E1A +0xBB 0x0E1B +0xBC 0x0E1C +0xBD 0x0E1D +0xBE 0x0E1E +0xBF 0x0E1F +0xC0 0x0E20 +0xC1 0x0E21 +0xC2 0x0E22 +0xC3 0x0E23 +0xC4 0x0E24 +0xC5 0x0E25 +0xC6 0x0E26 +0xC7 0x0E27 +0xC8 0x0E28 +0xC9 0x0E29 +0xCA 0x0E2A +0xCB 0x0E2B +0xCC 0x0E2C +0xCD 0x0E2D +0xCE 0x0E2E +0xCF 0x0E2F +0xD0 0x0E30 +0xD1 0x0E31 +0xD2 0x0E32 +0xD3 0x0E33 +0xD4 0x0E34 +0xD5 0x0E35 +0xD6 0x0E36 +0xD7 0x0E37 +0xD8 0x0E38 +0xD9 0x0E39 +0xDA 0x0E3A +0xDF 0x0E3F +0xE0 0x0E40 +0xE1 0x0E41 +0xE2 0x0E42 +0xE3 0x0E43 +0xE4 0x0E44 +0xE5 0x0E45 +0xE6 0x0E46 +0xE7 0x0E47 +0xE8 0x0E48 +0xE9 0x0E49 +0xEA 0x0E4A +0xEB 0x0E4B +0xEC 0x0E4C +0xED 0x0E4D +0xEE 0x0E4E +0xEF 0x0E4F +0xF0 0x0E50 +0xF1 0x0E51 +0xF2 0x0E52 +0xF3 0x0E53 +0xF4 0x0E54 +0xF5 0x0E55 +0xF6 0x0E56 +0xF7 0x0E57 +0xF8 0x0E58 +0xF9 0x0E59 +0xFA 0x0E5A +0xFB 0x0E5B diff --git a/3rdPartner/libiconv/tests/Translit1.ASCII b/3rdPartner/libiconv/tests/Translit1.ASCII new file mode 100644 index 0000000..e93efb7 --- /dev/null +++ b/3rdPartner/libiconv/tests/Translit1.ASCII @@ -0,0 +1 @@ +'Ecrit par %s. diff --git a/3rdPartner/libiconv/tests/Translit1.ISO-8859-1 b/3rdPartner/libiconv/tests/Translit1.ISO-8859-1 new file mode 100644 index 0000000..7cc8353 --- /dev/null +++ b/3rdPartner/libiconv/tests/Translit1.ISO-8859-1 @@ -0,0 +1 @@ +crit par %s. diff --git a/3rdPartner/libiconv/tests/TranslitFail1.ISO-8859-1 b/3rdPartner/libiconv/tests/TranslitFail1.ISO-8859-1 new file mode 100644 index 0000000..3a30dd1 --- /dev/null +++ b/3rdPartner/libiconv/tests/TranslitFail1.ISO-8859-1 @@ -0,0 +1 @@ + means $, or . diff --git a/3rdPartner/libiconv/tests/UCS-2BE-snippet b/3rdPartner/libiconv/tests/UCS-2BE-snippet new file mode 100644 index 0000000..dc43740 Binary files /dev/null and b/3rdPartner/libiconv/tests/UCS-2BE-snippet differ diff --git a/3rdPartner/libiconv/tests/UCS-2BE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UCS-2BE-snippet.UTF-8 new file mode 100644 index 0000000..3705941 --- /dev/null +++ b/3rdPartner/libiconv/tests/UCS-2BE-snippet.UTF-8 @@ -0,0 +1,46 @@ +This is a list of ways to say hello in various languages. +Its purpose is to illustrate a number of scripts. + +--------------------------------------------------------- +Amharic (አማርኛ) ሠላም +Arabic ﺍﻟﺴﻼﻡ ﻋﻠﻴﻜﻢ +Czech (česky) Dobrý den +Danish (Dansk) Hej, Goddag +English Hello +Esperanto Saluton +Estonian Tere, Tervist +FORTRAN PROGRAM +Finnish (Suomi) Hei +French (Français) Bonjour, Salut +German (Deutsch Nord) Guten Tag +German (Deutsch Süd) Grüß Gott +Greek (Ελληνικά) Γειά σας +Hebrew שלום +Italiano Ciao, Buon giorno +Lao(ພາສາລາວ) ສະບາຍດີ, ຂໍໃຫ້ໂຊກດີ +Maltese Ciao +Nederlands, Vlaams Hallo, Dag +Norwegian (Norsk) Hei, God dag +Polish Dzień dobry, Hej +Russian (Русский) Здравствуйте! +Slovak Dobrý deň +Spanish (Español) ¡Hola! +Swedish (Svenska) Hej, Goddag +Thai (ภาษาไทย) สวัสดีครับ, สวัสดีค่ะ + +Tigrigna (ትግርኛ) ሰላማት +Turkish (Türkçe) Merhaba +Vietnamese (Tiếng Việt) Chào bạn + +Japanese (日本語) こんにちは, コンニチハ +Chinese (中文,普通话,汉语) 你好 +Cantonese (粵語,廣東話) 早晨, 你好 +Korean (한글) 안녕하세요, 안녕하십니까 + +Difference among chinese characters in GB, JIS, KSC, BIG5: + GB -- 元气 开发 + JIS -- 元気 開発 + KSC -- 元氣 開發 + BIG5 -- 元氣 開發 + +Just for a test of JISX0212: 騏驎 (the second character is of JISX0212) diff --git a/3rdPartner/libiconv/tests/UCS-2LE-snippet b/3rdPartner/libiconv/tests/UCS-2LE-snippet new file mode 100644 index 0000000..8fa5ff5 Binary files /dev/null and b/3rdPartner/libiconv/tests/UCS-2LE-snippet differ diff --git a/3rdPartner/libiconv/tests/UCS-2LE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UCS-2LE-snippet.UTF-8 new file mode 100644 index 0000000..3705941 --- /dev/null +++ b/3rdPartner/libiconv/tests/UCS-2LE-snippet.UTF-8 @@ -0,0 +1,46 @@ +This is a list of ways to say hello in various languages. +Its purpose is to illustrate a number of scripts. + +--------------------------------------------------------- +Amharic (አማርኛ) ሠላም +Arabic ﺍﻟﺴﻼﻡ ﻋﻠﻴﻜﻢ +Czech (česky) Dobrý den +Danish (Dansk) Hej, Goddag +English Hello +Esperanto Saluton +Estonian Tere, Tervist +FORTRAN PROGRAM +Finnish (Suomi) Hei +French (Français) Bonjour, Salut +German (Deutsch Nord) Guten Tag +German (Deutsch Süd) Grüß Gott +Greek (Ελληνικά) Γειά σας +Hebrew שלום +Italiano Ciao, Buon giorno +Lao(ພາສາລາວ) ສະບາຍດີ, ຂໍໃຫ້ໂຊກດີ +Maltese Ciao +Nederlands, Vlaams Hallo, Dag +Norwegian (Norsk) Hei, God dag +Polish Dzień dobry, Hej +Russian (Русский) Здравствуйте! +Slovak Dobrý deň +Spanish (Español) ¡Hola! +Swedish (Svenska) Hej, Goddag +Thai (ภาษาไทย) สวัสดีครับ, สวัสดีค่ะ + +Tigrigna (ትግርኛ) ሰላማት +Turkish (Türkçe) Merhaba +Vietnamese (Tiếng Việt) Chào bạn + +Japanese (日本語) こんにちは, コンニチハ +Chinese (中文,普通话,汉语) 你好 +Cantonese (粵語,廣東話) 早晨, 你好 +Korean (한글) 안녕하세요, 안녕하십니까 + +Difference among chinese characters in GB, JIS, KSC, BIG5: + GB -- 元气 开发 + JIS -- 元気 開発 + KSC -- 元氣 開發 + BIG5 -- 元氣 開發 + +Just for a test of JISX0212: 騏驎 (the second character is of JISX0212) diff --git a/3rdPartner/libiconv/tests/UCS-4BE-snippet b/3rdPartner/libiconv/tests/UCS-4BE-snippet new file mode 100644 index 0000000..9d76045 Binary files /dev/null and b/3rdPartner/libiconv/tests/UCS-4BE-snippet differ diff --git a/3rdPartner/libiconv/tests/UCS-4BE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UCS-4BE-snippet.UTF-8 new file mode 100644 index 0000000..d28ea2e --- /dev/null +++ b/3rdPartner/libiconv/tests/UCS-4BE-snippet.UTF-8 @@ -0,0 +1 @@ +𒍅=Ra \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UCS-4LE-snippet b/3rdPartner/libiconv/tests/UCS-4LE-snippet new file mode 100644 index 0000000..00face9 Binary files /dev/null and b/3rdPartner/libiconv/tests/UCS-4LE-snippet differ diff --git a/3rdPartner/libiconv/tests/UCS-4LE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UCS-4LE-snippet.UTF-8 new file mode 100644 index 0000000..d28ea2e --- /dev/null +++ b/3rdPartner/libiconv/tests/UCS-4LE-snippet.UTF-8 @@ -0,0 +1 @@ +𒍅=Ra \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UTF-16-snippet b/3rdPartner/libiconv/tests/UTF-16-snippet new file mode 100644 index 0000000..eef612d Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-16-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-16-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-16-snippet.UTF-8 new file mode 100644 index 0000000..d28ea2e --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-16-snippet.UTF-8 @@ -0,0 +1 @@ +𒍅=Ra \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UTF-16BE-snippet b/3rdPartner/libiconv/tests/UTF-16BE-snippet new file mode 100644 index 0000000..1cc84d0 Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-16BE-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-16BE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-16BE-snippet.UTF-8 new file mode 100644 index 0000000..d28ea2e --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-16BE-snippet.UTF-8 @@ -0,0 +1 @@ +𒍅=Ra \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UTF-16LE-snippet b/3rdPartner/libiconv/tests/UTF-16LE-snippet new file mode 100644 index 0000000..a4cba3c Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-16LE-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-16LE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-16LE-snippet.UTF-8 new file mode 100644 index 0000000..d28ea2e --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-16LE-snippet.UTF-8 @@ -0,0 +1 @@ +𒍅=Ra \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UTF-32-snippet b/3rdPartner/libiconv/tests/UTF-32-snippet new file mode 100644 index 0000000..6aa4dcb Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-32-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-32-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-32-snippet.UTF-8 new file mode 100644 index 0000000..4229c88 --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-32-snippet.UTF-8 @@ -0,0 +1,6 @@ +ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ <- Greek +𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌇𐌈𐌉𐌊𐌋𐌌𐌍𐌎𐌏𐌐𐌑𐌒𐌓𐌔𐌕𐌖𐌗𐌘𐌙𐌚𐌛𐌜𐌝 <- Etruscan +ABCDEFGHIJKLMNOPQRSTUVWXYZ <- Latin +АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ <- Cyrillic +𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹𐌺𐌻𐌼𐌽𐌾𐌿𐍀𐍁𐍂𐍃𐍄𐍅𐍆𐍇𐍈 <- Gothic +אבגדהוזחטיךכלםמןנסעףפץצקרש <- Hebrew diff --git a/3rdPartner/libiconv/tests/UTF-32BE-snippet b/3rdPartner/libiconv/tests/UTF-32BE-snippet new file mode 100644 index 0000000..72e4761 Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-32BE-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-32BE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-32BE-snippet.UTF-8 new file mode 100644 index 0000000..4229c88 --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-32BE-snippet.UTF-8 @@ -0,0 +1,6 @@ +ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ <- Greek +𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌇𐌈𐌉𐌊𐌋𐌌𐌍𐌎𐌏𐌐𐌑𐌒𐌓𐌔𐌕𐌖𐌗𐌘𐌙𐌚𐌛𐌜𐌝 <- Etruscan +ABCDEFGHIJKLMNOPQRSTUVWXYZ <- Latin +АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ <- Cyrillic +𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹𐌺𐌻𐌼𐌽𐌾𐌿𐍀𐍁𐍂𐍃𐍄𐍅𐍆𐍇𐍈 <- Gothic +אבגדהוזחטיךכלםמןנסעףפץצקרש <- Hebrew diff --git a/3rdPartner/libiconv/tests/UTF-32LE-snippet b/3rdPartner/libiconv/tests/UTF-32LE-snippet new file mode 100644 index 0000000..b15f5c4 Binary files /dev/null and b/3rdPartner/libiconv/tests/UTF-32LE-snippet differ diff --git a/3rdPartner/libiconv/tests/UTF-32LE-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-32LE-snippet.UTF-8 new file mode 100644 index 0000000..4229c88 --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-32LE-snippet.UTF-8 @@ -0,0 +1,6 @@ +ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ <- Greek +𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌇𐌈𐌉𐌊𐌋𐌌𐌍𐌎𐌏𐌐𐌑𐌒𐌓𐌔𐌕𐌖𐌗𐌘𐌙𐌚𐌛𐌜𐌝 <- Etruscan +ABCDEFGHIJKLMNOPQRSTUVWXYZ <- Latin +АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ <- Cyrillic +𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹𐌺𐌻𐌼𐌽𐌾𐌿𐍀𐍁𐍂𐍃𐍄𐍅𐍆𐍇𐍈 <- Gothic +אבגדהוזחטיךכלםמןנסעףפץצקרש <- Hebrew diff --git a/3rdPartner/libiconv/tests/UTF-7-snippet b/3rdPartner/libiconv/tests/UTF-7-snippet new file mode 100644 index 0000000..b511e68 --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-7-snippet @@ -0,0 +1 @@ +A+ImIDkQ- \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/UTF-7-snippet.UTF-8 b/3rdPartner/libiconv/tests/UTF-7-snippet.UTF-8 new file mode 100644 index 0000000..c0d9856 --- /dev/null +++ b/3rdPartner/libiconv/tests/UTF-7-snippet.UTF-8 @@ -0,0 +1 @@ +A≢Α \ No newline at end of file diff --git a/3rdPartner/libiconv/tests/VISCII.TXT b/3rdPartner/libiconv/tests/VISCII.TXT new file mode 100644 index 0000000..8540be1 --- /dev/null +++ b/3rdPartner/libiconv/tests/VISCII.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x1EB2 +0x03 0x0003 +0x04 0x0004 +0x05 0x1EB4 +0x06 0x1EAA +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x1EF6 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x1EF8 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x1EF4 +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x1EA0 +0x81 0x1EAE +0x82 0x1EB0 +0x83 0x1EB6 +0x84 0x1EA4 +0x85 0x1EA6 +0x86 0x1EA8 +0x87 0x1EAC +0x88 0x1EBC +0x89 0x1EB8 +0x8A 0x1EBE +0x8B 0x1EC0 +0x8C 0x1EC2 +0x8D 0x1EC4 +0x8E 0x1EC6 +0x8F 0x1ED0 +0x90 0x1ED2 +0x91 0x1ED4 +0x92 0x1ED6 +0x93 0x1ED8 +0x94 0x1EE2 +0x95 0x1EDA +0x96 0x1EDC +0x97 0x1EDE +0x98 0x1ECA +0x99 0x1ECE +0x9A 0x1ECC +0x9B 0x1EC8 +0x9C 0x1EE6 +0x9D 0x0168 +0x9E 0x1EE4 +0x9F 0x1EF2 +0xA0 0x00D5 +0xA1 0x1EAF +0xA2 0x1EB1 +0xA3 0x1EB7 +0xA4 0x1EA5 +0xA5 0x1EA7 +0xA6 0x1EA9 +0xA7 0x1EAD +0xA8 0x1EBD +0xA9 0x1EB9 +0xAA 0x1EBF +0xAB 0x1EC1 +0xAC 0x1EC3 +0xAD 0x1EC5 +0xAE 0x1EC7 +0xAF 0x1ED1 +0xB0 0x1ED3 +0xB1 0x1ED5 +0xB2 0x1ED7 +0xB3 0x1EE0 +0xB4 0x01A0 +0xB5 0x1ED9 +0xB6 0x1EDD +0xB7 0x1EDF +0xB8 0x1ECB +0xB9 0x1EF0 +0xBA 0x1EE8 +0xBB 0x1EEA +0xBC 0x1EEC +0xBD 0x01A1 +0xBE 0x1EDB +0xBF 0x01AF +0xC0 0x00C0 +0xC1 0x00C1 +0xC2 0x00C2 +0xC3 0x00C3 +0xC4 0x1EA2 +0xC5 0x0102 +0xC6 0x1EB3 +0xC7 0x1EB5 +0xC8 0x00C8 +0xC9 0x00C9 +0xCA 0x00CA +0xCB 0x1EBA +0xCC 0x00CC +0xCD 0x00CD +0xCE 0x0128 +0xCF 0x1EF3 +0xD0 0x0110 +0xD1 0x1EE9 +0xD2 0x00D2 +0xD3 0x00D3 +0xD4 0x00D4 +0xD5 0x1EA1 +0xD6 0x1EF7 +0xD7 0x1EEB +0xD8 0x1EED +0xD9 0x00D9 +0xDA 0x00DA +0xDB 0x1EF9 +0xDC 0x1EF5 +0xDD 0x00DD +0xDE 0x1EE1 +0xDF 0x01B0 +0xE0 0x00E0 +0xE1 0x00E1 +0xE2 0x00E2 +0xE3 0x00E3 +0xE4 0x1EA3 +0xE5 0x0103 +0xE6 0x1EEF +0xE7 0x1EAB +0xE8 0x00E8 +0xE9 0x00E9 +0xEA 0x00EA +0xEB 0x1EBB +0xEC 0x00EC +0xED 0x00ED +0xEE 0x0129 +0xEF 0x1EC9 +0xF0 0x0111 +0xF1 0x1EF1 +0xF2 0x00F2 +0xF3 0x00F3 +0xF4 0x00F4 +0xF5 0x00F5 +0xF6 0x1ECF +0xF7 0x1ECD +0xF8 0x1EE5 +0xF9 0x00F9 +0xFA 0x00FA +0xFB 0x0169 +0xFC 0x1EE7 +0xFD 0x00FD +0xFE 0x1EE3 +0xFF 0x1EEE diff --git a/3rdPartner/libiconv/tests/check-stateful b/3rdPartner/libiconv/tests/check-stateful new file mode 100644 index 0000000..218103c --- /dev/null +++ b/3rdPartner/libiconv/tests/check-stateful @@ -0,0 +1,20 @@ +#!/bin/sh +# Simple check of a stateful encoding. +# Usage: check-stateful SRCDIR CHARSET +srcdir="$1" +charset="$2" +set -e + +# charset, modified for use in filenames. +charsetf=`echo "$charset" | sed -e 's,:,-,g'` + +if test -f "${srcdir}"/"$charsetf"-snippet.alt; then + ../src/iconv_no_i18n -f "$charset" -t UTF-8 < "${srcdir}"/"$charsetf"-snippet.alt > tmp-snippet + cmp "${srcdir}"/"$charsetf"-snippet.UTF-8 tmp-snippet +fi +../src/iconv_no_i18n -f "$charset" -t UTF-8 < "${srcdir}"/"$charsetf"-snippet > tmp-snippet +cmp "${srcdir}"/"$charsetf"-snippet.UTF-8 tmp-snippet +../src/iconv_no_i18n -f UTF-8 -t "$charset" < "${srcdir}"/"$charsetf"-snippet.UTF-8 > tmp-snippet +cmp "${srcdir}"/"$charsetf"-snippet tmp-snippet +rm -f tmp-snippet +exit 0 diff --git a/3rdPartner/libiconv/tests/check-stateful.bat b/3rdPartner/libiconv/tests/check-stateful.bat new file mode 100644 index 0000000..dbf08ac --- /dev/null +++ b/3rdPartner/libiconv/tests/check-stateful.bat @@ -0,0 +1,14 @@ +@ECHO OFF +REM Simple check of a stateful encoding. +REM Usage: check-stateful.bat SRCDIR CHARSET + +if not exist %1\%2-snippet.alt goto ENDIF_1 + ..\src\iconv_no_i18n -f %2 -t UTF-8 < %1\%2-snippet.alt > tmp-snippet + fc %1\%2-snippet.UTF-8 tmp-snippet +:ENDIF_1 + +..\src\iconv_no_i18n -f %2 -t UTF-8 < %1\%2-snippet > tmp-snippet +fc %1\%2-snippet.UTF-8 tmp-snippet +..\src\iconv_no_i18n -f UTF-8 -t %2 < %1\%2-snippet.UTF-8 > tmp-snippet +fc %1\%2-snippet tmp-snippet +del tmp-snippet diff --git a/3rdPartner/libiconv/tests/check-stateless b/3rdPartner/libiconv/tests/check-stateless new file mode 100644 index 0000000..7104ea1 --- /dev/null +++ b/3rdPartner/libiconv/tests/check-stateless @@ -0,0 +1,36 @@ +#!/bin/sh +# Complete check of a stateless encoding. +# Usage: check-stateless SRCDIR CHARSET +srcdir="$1" +charset="$2" +set -e + +# charset, modified for use in filenames. +charsetf=`echo "$charset" | sed -e 's,:,-,g'` + +# iconv in one direction. +./table-from "$charset" > tmp-"$charsetf".TXT + +# iconv in the other direction. +./table-to "$charset" | sort > tmp-"$charsetf".INVERSE.TXT + +# Check 1: charmap and iconv forward should be identical. +cmp "${srcdir}"/"$charsetf".TXT tmp-"$charsetf".TXT 2> /dev/null + +# Check 2: the difference between the charmap and iconv backward. +sed -e '/ .* 0x/d' < "${srcdir}"/"$charsetf".TXT > tmp-noprecomposed-"$charsetf".TXT +if test -f "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT; then + cat tmp-noprecomposed-"$charsetf".TXT "${srcdir}"/"$charsetf".IRREVERSIBLE.TXT | sort | uniq -u > tmp-orig-"$charsetf".INVERSE.TXT +else + cp tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT +fi +cmp tmp-orig-"$charsetf".INVERSE.TXT tmp-"$charsetf".INVERSE.TXT 2> /dev/null + +rm -f tmp-"$charsetf".TXT tmp-"$charsetf".INVERSE.TXT tmp-noprecomposed-"$charsetf".TXT tmp-orig-"$charsetf".INVERSE.TXT +exit 0 +# For a new encoding: +# You can create the "$charsetf".TXT like this: +# ./table-from "$charset" > "$charsetf".TXT +# You can create the "$charsetf".IRREVERSIBLE.TXT like this: +# ./table-to "$charset" | sort > "$charsetf".INVERSE.TXT +# diff "$charsetf".TXT "$charsetf".INVERSE.TXT | grep '^[<>]' | sed -e 's,^. ,,' > "$charsetf".IRREVERSIBLE.TXT diff --git a/3rdPartner/libiconv/tests/check-stateless.bat b/3rdPartner/libiconv/tests/check-stateless.bat new file mode 100644 index 0000000..3950f2e --- /dev/null +++ b/3rdPartner/libiconv/tests/check-stateless.bat @@ -0,0 +1,21 @@ +@ECHO OFF +REM Complete check of a stateless encoding. +REM Usage: check-stateless.bat SRCDIR CHARSET + +.\table-from %2 > tmp-%2.TXT +.\table-to %2 | sort > tmp-%2.INVERSE.TXT +fc %1\%2.TXT tmp-%2.TXT + +if not exist %1\%2.IRREVERSIBLE.TXT goto ELSE_1 + copy /a %1\%2.TXT /a + %1\%2.IRREVERSIBLE.TXT /a tmp + sort < tmp | uniq-u > tmp-orig-%2.INVERSE.TXT + fc tmp-orig-%2.INVERSE.TXT tmp-%2.INVERSE.TXT + del tmp + del tmp-orig-%2.INVERSE.TXT + goto ENDIF_1 +:ELSE_1 + fc %1\%2.TXT tmp-%2.INVERSE.TXT +:ENDIF_1 + +del tmp-%2.TXT +del tmp-%2.INVERSE.TXT diff --git a/3rdPartner/libiconv/tests/check-subst b/3rdPartner/libiconv/tests/check-subst new file mode 100644 index 0000000..8fc721f --- /dev/null +++ b/3rdPartner/libiconv/tests/check-subst @@ -0,0 +1,142 @@ +#!/bin/sh +# Check of --unicode-subst, --byte-subst, --widechar-subst options. +set -e +iconv=../src/iconv_no_i18n + +options_ascii='--unicode-subst= --byte-subst=<0x%02x> --widechar-subst=<%08x>' +options_utf8='--unicode-subst=«U+%04X» --byte-subst=«0x%02x» --widechar-subst=«%08x»' + +# Test of --byte-subst with an ASCII substitution. + +cat > tmp-in <<\EOF +Böse Bübchen +EOF +$iconv $options_ascii -f ASCII -t ASCII < tmp-in > tmp-out +cat > tmp-ok <<\EOF +B<0xc3><0xb6>se B<0xc3><0xbc>bchen +EOF +cmp tmp-out tmp-ok + +# Test of --byte-subst with a non-ASCII substitution. + +if ./is-native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then + cat > tmp-in <<\EOF +Böse Bübchen +EOF + $iconv $options_utf8 -f ASCII -t UTF-8 2>/dev/null < tmp-in > tmp-out + cat > tmp-ok <<\EOF +B«0xc3»«0xb6»se B«0xc3»«0xbc»bchen +EOF + cmp tmp-out tmp-ok +fi + +if ./is-native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then + cat > tmp-in <<\EOF +Böse Bübchen +EOF + $iconv $options_utf8 -f ASCII -t ISO-8859-1 2>/dev/null < tmp-in > tmp-out + $iconv -f ISO-8859-1 -t UTF-8 < tmp-out > tmp-out2 + cat > tmp-ok <<\EOF +B«0xc3»«0xb6»se B«0xc3»«0xbc»bchen +EOF + cmp tmp-out2 tmp-ok +fi + +# Test of --byte-subst with a very long substitution. + +cat > tmp-in <<\EOF +Böse Bübchen +EOF +$iconv --byte-subst='<0x%010000x>' -f ASCII -t ASCII < tmp-in > tmp-out +# This printf command crashes on Solaris 10. +# See . +# Likewise on OSF/1 5.1. +if printf 'B<0x%010000x><0x%010000x>se B<0x%010000x><0x%010000x>bchen\n' 0xC3 0xB6 0xC3 0xBC > tmp-ok 2>/dev/null; then + cmp tmp-out tmp-ok +fi + +# Test of --unicode-subst with an ASCII substitution. + +cat > tmp-in <<\EOF +Böse Bübchen +EOF +$iconv $options_ascii -f UTF-8 -t ASCII < tmp-in > tmp-out +cat > tmp-ok <<\EOF +Bse Bbchen +EOF +cmp tmp-out tmp-ok + +cat > tmp-in <<\EOF +Russian (Русский) +EOF +$iconv $options_ascii -f UTF-8 -t ISO-8859-1 2>/dev/null < tmp-in | $iconv -f ISO-8859-1 -t UTF-8 > tmp-out +cat > tmp-ok <<\EOF +Russian () +EOF +cmp tmp-out tmp-ok + +# Test of --unicode-subst with a non-ASCII substitution. + +if ./is-native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then + cat > tmp-in <<\EOF +Russian (Русский) +EOF + $iconv $options_utf8 -f UTF-8 -t ISO-8859-1 2>/dev/null < tmp-in > tmp-out + $iconv -f ISO-8859-1 -t UTF-8 < tmp-out > tmp-out2 + cat > tmp-ok <<\EOF +Russian («U+0420»«U+0443»«U+0441»«U+0441»«U+043A»«U+0438»«U+0439») +EOF + cmp tmp-out2 tmp-ok +fi + +# Test of --unicode-subst with a very long substitution. + +cat > tmp-in <<\EOF +Böse Bübchen +EOF +$iconv --unicode-subst='' -f UTF-8 -t ASCII < tmp-in > tmp-out +# This printf command crashes on Solaris 10. +# See . +if printf 'Bse Bbchen\n' 0x00F6 0x00FC > tmp-ok 2>/dev/null; then + cmp tmp-out tmp-ok +fi + +cat > tmp-in <<\EOF +Böse Bübchen +EOF +$iconv --byte-subst='<0x%010000x>' -f ASCII -t ASCII < tmp-in > tmp-out +# This printf command crashes on Solaris 10. +# See . +# Likewise on OSF/1 5.1. +if printf 'B<0x%010000x><0x%010000x>se B<0x%010000x><0x%010000x>bchen\n' 0xC3 0xB6 0xC3 0xBC > tmp-ok 2>/dev/null; then + cmp tmp-out tmp-ok +fi + +# Test of --widechar-subst: +# wcrtomb() doesn't exist on FreeBSD 4.0 and is broken on MacOS X 10.3. +# So far this has been tested only on a glibc system with !__STDC_ISO_10646__. + +if false && ./is-native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then + cat > tmp-in <<\EOF +Russian (Русский) +EOF + $iconv -f char -t wchar_t < tmp-in > tmp-inw + LC_ALL=C $iconv $options_ascii -f wchar_t -t ASCII < tmp-inw > tmp-out1 + LC_ALL=de_DE.ISO-8859-1 $iconv $options_ascii -f wchar_t -t ASCII < tmp-inw > tmp-out2 + cat > tmp-ok <<\EOF +Russian (<00000420><00000443><00000441><00000441><0000043a><00000438><00000439>) +EOF + cmp tmp-out1 tmp-ok + cmp tmp-out2 tmp-ok + if ./is-native && test "`(LC_ALL=de_DE.ISO-8859-1 locale charmap) 2>/dev/null`" = ISO-8859-1; then + options_latin1=`echo " $options_utf8" | $iconv -f UTF-8 -t ISO-8859-1` + LC_ALL=de_DE.ISO-8859-1 $iconv $options_latin1 -f wchar_t -t UTF-8 < tmp-inw > tmp-out1 + cat > tmp-ok <<\EOF +Russian («00000420»«00000443»«00000441»«00000441»«0000043a»«00000438»«00000439») +EOF + cmp tmp-out1 tmp-ok + fi +fi + +rm -f tmp-in* tmp-out* tmp-ok +exit 0 diff --git a/3rdPartner/libiconv/tests/check-translit b/3rdPartner/libiconv/tests/check-translit new file mode 100644 index 0000000..babc91e --- /dev/null +++ b/3rdPartner/libiconv/tests/check-translit @@ -0,0 +1,12 @@ +#!/bin/sh +# Simple check of transliteration facilities. +# Usage: check-translit SRCDIR FILE FROMCODE TOCODE +srcdir="$1" +file="$2" +fromcode="$3" +tocode="$4" +set -e +../src/iconv_no_i18n -f "$fromcode" -t "$tocode"//TRANSLIT < "${srcdir}"/"$file"."$fromcode" > tmp +cmp "${srcdir}"/"$file"."$tocode" tmp +rm -f tmp +exit 0 diff --git a/3rdPartner/libiconv/tests/check-translit.bat b/3rdPartner/libiconv/tests/check-translit.bat new file mode 100644 index 0000000..a0fdc6f --- /dev/null +++ b/3rdPartner/libiconv/tests/check-translit.bat @@ -0,0 +1,7 @@ +@ECHO OFF +REM Simple check of transliteration facilities. +REM Usage: check-translit.bat SRCDIR FILE FROMCODE TOCODE + +..\src\iconv_no_i18n -f %3 -t %4//TRANSLIT < %1\%2.%3 > tmp +fc %1\%2.%4 tmp +del tmp diff --git a/3rdPartner/libiconv/tests/check-translitfailure b/3rdPartner/libiconv/tests/check-translitfailure new file mode 100644 index 0000000..37dd86e --- /dev/null +++ b/3rdPartner/libiconv/tests/check-translitfailure @@ -0,0 +1,10 @@ +#!/bin/sh +# Simple check of transliteration failure. +# Usage: check-translitfailure SRCDIR FILE FROMCODE TOCODE +srcdir="$1" +file="$2" +fromcode="$3" +tocode="$4" +../src/iconv_no_i18n -f "$fromcode" -t "$tocode"//TRANSLIT < "${srcdir}"/"$file"."$fromcode" >/dev/null 2>/dev/null +test $? = 1 +exit $? diff --git a/3rdPartner/libiconv/tests/gengb18030z.c b/3rdPartner/libiconv/tests/gengb18030z.c new file mode 100644 index 0000000..7b61c14 --- /dev/null +++ b/3rdPartner/libiconv/tests/gengb18030z.c @@ -0,0 +1,50 @@ +/* Copyright (C) 2005, 2012 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +/* Creates the beyond-BMP part of the GB18030.TXT reference table. */ + +#include "config.h" + +#include +#include + +#include "binary-io.h" + +int main () +{ + int i1, i2, i3, i4, uc; + +#if O_BINARY + SET_BINARY(fileno(stdout)); +#endif + + uc = 0x10000; + for (i1 = 0x90; i1 <= 0xe3; i1++) + for (i2 = 0x30; i2 <= 0x39; i2++) + for (i3 = 0x81; i3 <= 0xfe; i3++) + for (i4 = 0x30; i4 <= 0x39; i4++) { + printf("0x%02X%02X%02X%02X\t0x%X\n", i1, i2, i3, i4, uc); + uc++; + if (uc == 0x110000) + goto done; + } + done: + + if (ferror(stdout) || fclose(stdout)) + exit(1); + exit(0); +} diff --git a/3rdPartner/libiconv/tests/genutf8.c b/3rdPartner/libiconv/tests/genutf8.c new file mode 100644 index 0000000..a3342b9 --- /dev/null +++ b/3rdPartner/libiconv/tests/genutf8.c @@ -0,0 +1,54 @@ +/* Copyright (C) 2000, 2004-2005, 2012, 2016 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +/* Creates the UTF-8.TXT reference table. */ + +#include "config.h" + +#include +#include + +#include "binary-io.h" + +int main () +{ + int i1, i2, i3; + +#if O_BINARY + SET_BINARY(fileno(stdout)); +#endif + + /* Range 0x0000..0x007f */ + for (i1 = 0; i1 < 0x80; i1++) + printf("0x%02X\t0x%04X\n", i1, i1); + /* Range 0x0080..0x07ff */ + for (i1 = 2; i1 < 32; i1++) + for (i2 = 0; i2 < 64; i2++) + printf("0x%02X%02X\t0x%04X\n", 0xc0+i1,0x80+i2, (i1<<6)+i2); + /* Range 0x0800..0xffff, except 0xd800..0xdfff */ + for (i1 = 0; i1 < 16; i1++) + for (i2 = (i1==0 ? 32 : 0); i2 < 64; i2++) + for (i3 = 0; i3 < 64; i3++) { + int u = (i1<<12)+(i2<<6)+i3; + if (!(u >= 0xd800 && u < 0xe000)) + printf("0x%02X%02X%02X\t0x%04X\n", 0xe0+i1,0x80+i2,0x80+i3, u); + } + + if (ferror(stdout) || fclose(stdout)) + exit(1); + exit(0); +} diff --git a/3rdPartner/libiconv/tests/is-native.c b/3rdPartner/libiconv/tests/is-native.c new file mode 100644 index 0000000..109d376 --- /dev/null +++ b/3rdPartner/libiconv/tests/is-native.c @@ -0,0 +1,30 @@ +/* Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +#include "config.h" + +#include "qemu.h" + +/* Returns 0 (success) in a native environment. + Returns 1 (failure) in a cross-executing environment, that is, in an + environment where compiled programs use a different libc than the system's + libc. Currently, only QEMU user-mode environments are recognized. */ + +int main () +{ + return is_running_under_qemu_user () ? 1 : 0; +} diff --git a/3rdPartner/libiconv/tests/qemu.h b/3rdPartner/libiconv/tests/qemu.h new file mode 100644 index 0000000..e1e6a61 --- /dev/null +++ b/3rdPartner/libiconv/tests/qemu.h @@ -0,0 +1,99 @@ +/* Determine whether the current process is running under QEMU. + Copyright (C) 2021-2022 Free Software Foundation, Inc. + + This file 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 file 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 program. If not, see . */ + +/* Written by Bruno Haible , 2021. */ + +#include +#ifdef __linux__ +# include +# include +# include +#endif + +/* This function determines whether the current process is running under QEMU + (user-mode). + + It does so by looking at parts of the environment that QEMU does not emulate + 100% perfectly well. + + For comparison, the techniques given in the paper + Thomas Raffetseder, Christopher Kruegel, Engin Kirda + "Detecting System Emulators" + 2007 + https://publik.tuwien.ac.at/files/pub-inf_5317.pdf + apply to both the QEMU system mode and QEMU user mode. */ + +static bool +is_running_under_qemu_user (void) +{ +#ifdef __linux__ + char buf[4096 + 1]; + int fd; + +# if defined __m68k__ + fd = open ("/proc/hardware", O_RDONLY); + if (fd >= 0) + { + int n = read (fd, buf, sizeof (buf) - 1); + close (fd); + if (n > 0) + { + buf[n] = '\0'; + if (strstr (buf, "qemu") != NULL) + return true; + } + } +# endif + + fd = open ("/proc/cpuinfo", O_RDONLY); + if (fd >= 0) + { + int n = read (fd, buf, sizeof (buf) - 1); + close (fd); + if (n > 0) + { + buf[n] = '\0'; +# if defined __hppa__ + if (strstr (buf, "QEMU") != NULL) + return true; +# endif +# if !(defined __i386__ || defined __x86_64__) + if (strstr (buf, "AuthenticAMD") != NULL + || strstr (buf, "GenuineIntel") != NULL) + return true; +# endif +# if !(defined __arm__ || defined __aarch64__) + if (strstr (buf, "ARM") != NULL + || strcasestr (buf, "aarch64") != NULL) + return true; +# endif +# if !defined __sparc__ + if (strcasestr (buf, "SPARC") != NULL) + return true; +# endif +# if !defined __powerpc__ + if (strstr (buf, "POWER") != NULL) + return true; +# endif + } + } + + /* If you need more heuristics, look at system calls that are not perfectly + well emulated in qemu/linux-user/syscall.c. */ +#endif + + return false; +} diff --git a/3rdPartner/libiconv/tests/table-from.c b/3rdPartner/libiconv/tests/table-from.c new file mode 100644 index 0000000..cbf5f73 --- /dev/null +++ b/3rdPartner/libiconv/tests/table-from.c @@ -0,0 +1,189 @@ +/* Copyright (C) 2000-2002, 2004-2005 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +/* Create a table from CHARSET to Unicode. */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include + +#include "binary-io.h" + +/* If nonzero, ignore conversions outside Unicode plane 0. */ +static int bmp_only; + +static const char* hexbuf (unsigned char buf[], unsigned int buflen) +{ + static char msg[50]; + switch (buflen) { + case 1: sprintf(msg,"0x%02X",buf[0]); break; + case 2: sprintf(msg,"0x%02X%02X",buf[0],buf[1]); break; + case 3: sprintf(msg,"0x%02X%02X%02X",buf[0],buf[1],buf[2]); break; + case 4: sprintf(msg,"0x%02X%02X%02X%02X",buf[0],buf[1],buf[2],buf[3]); break; + default: abort(); + } + return msg; +} + +static int try (iconv_t cd, unsigned char buf[], unsigned int buflen, unsigned int* out) +{ + const char* inbuf = (const char*) buf; + size_t inbytesleft = buflen; + char* outbuf = (char*) out; + size_t outbytesleft = 3*sizeof(unsigned int); + size_t result; + iconv(cd,NULL,NULL,NULL,NULL); + result = iconv(cd,(ICONV_CONST char**)&inbuf,&inbytesleft,&outbuf,&outbytesleft); + if (result != (size_t)(-1)) + result = iconv(cd,NULL,NULL,&outbuf,&outbytesleft); + if (result == (size_t)(-1)) { + if (errno == EILSEQ) { + return -1; + } else if (errno == EINVAL) { + return 0; + } else { + int saved_errno = errno; + fprintf(stderr,"%s: iconv error: ",hexbuf(buf,buflen)); + errno = saved_errno; + perror(""); + exit(1); + } + } else if (result > 0) /* ignore conversions with transliteration */ { + return -1; + } else { + if (inbytesleft != 0) { + fprintf(stderr,"%s: inbytes = %ld, outbytes = %ld\n",hexbuf(buf,buflen),(long)(buflen-inbytesleft),(long)(3*sizeof(unsigned int)-outbytesleft)); + exit(1); + } + return (3*sizeof(unsigned int)-outbytesleft)/sizeof(unsigned int); + } +} + +/* Returns the out[] buffer as a Unicode value, formatted as 0x%04X. */ +static const char* ucs4_decode (const unsigned int* out, unsigned int outlen) +{ + static char hexbuf[21]; + char* p = hexbuf; + while (outlen > 0) { + if (p > hexbuf) + *p++ = ' '; + sprintf (p, "0x%04X", out[0]); + out += 1; outlen -= 1; + if (bmp_only && strlen(p) > 6) + return NULL; + p += strlen(p); + } + return hexbuf; +} + +int main (int argc, char* argv[]) +{ + const char* charset; + iconv_t cd; + int search_depth; + + if (argc != 2) { + fprintf(stderr,"Usage: table-from charset\n"); + exit(1); + } + charset = argv[1]; + +#if O_BINARY + SET_BINARY(fileno(stdout)); +#endif + + cd = iconv_open("UCS-4-INTERNAL",charset); + if (cd == (iconv_t)(-1)) { + perror("iconv_open"); + exit(1); + } + + /* When testing UTF-8, stop at 0x10000, otherwise the output file gets too + big. */ + bmp_only = (strcmp(charset,"UTF-8") == 0); + search_depth = (strcmp(charset,"UTF-8") == 0 ? 3 : 4); + + { + unsigned int out[3]; + unsigned char buf[4]; + unsigned int i0, i1, i2, i3; + int result; + for (i0 = 0; i0 < 0x100; i0++) { + buf[0] = i0; + result = try(cd,buf,1,out); + if (result < 0) { + } else if (result > 0) { + const char* unicode = ucs4_decode(out,result); + if (unicode != NULL) + printf("0x%02X\t%s\n",i0,unicode); + } else { + for (i1 = 0; i1 < 0x100; i1++) { + buf[1] = i1; + result = try(cd,buf,2,out); + if (result < 0) { + } else if (result > 0) { + const char* unicode = ucs4_decode(out,result); + if (unicode != NULL) + printf("0x%02X%02X\t%s\n",i0,i1,unicode); + } else { + for (i2 = 0; i2 < 0x100; i2++) { + buf[2] = i2; + result = try(cd,buf,3,out); + if (result < 0) { + } else if (result > 0) { + const char* unicode = ucs4_decode(out,result); + if (unicode != NULL) + printf("0x%02X%02X%02X\t%s\n",i0,i1,i2,unicode); + } else if (search_depth > 3) { + for (i3 = 0; i3 < 0x100; i3++) { + buf[3] = i3; + result = try(cd,buf,4,out); + if (result < 0) { + } else if (result > 0) { + const char* unicode = ucs4_decode(out,result); + if (unicode != NULL) + printf("0x%02X%02X%02X%02X\t%s\n",i0,i1,i2,i3,unicode); + } else { + fprintf(stderr,"%s: incomplete byte sequence\n",hexbuf(buf,4)); + exit(1); + } + } + } + } + } + } + } + } + } + + if (iconv_close(cd) < 0) { + perror("iconv_close"); + exit(1); + } + + if (ferror(stdin) || ferror(stdout) || fclose(stdout)) { + fprintf(stderr,"I/O error\n"); + exit(1); + } + + exit(0); +} diff --git a/3rdPartner/libiconv/tests/table-to.c b/3rdPartner/libiconv/tests/table-to.c new file mode 100644 index 0000000..acd4cad --- /dev/null +++ b/3rdPartner/libiconv/tests/table-to.c @@ -0,0 +1,109 @@ +/* Copyright (C) 2000-2002, 2004-2005 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +/* Create a table from Unicode to CHARSET. */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include + +#include "binary-io.h" + +int main (int argc, char* argv[]) +{ + const char* charset; + iconv_t cd; + int bmp_only; + + if (argc != 2) { + fprintf(stderr,"Usage: table-to charset\n"); + exit(1); + } + charset = argv[1]; + +#if O_BINARY + SET_BINARY(fileno(stdout)); +#endif + + cd = iconv_open(charset,"UCS-4-INTERNAL"); + if (cd == (iconv_t)(-1)) { + perror("iconv_open"); + exit(1); + } + + /* When testing UTF-8, stop at 0x10000, otherwise the output file gets too + big. */ + bmp_only = (strcmp(charset,"UTF-8") == 0); + + { + unsigned int i; + unsigned char buf[10]; + for (i = 0; i < (bmp_only ? 0x10000 : 0x110000); i++) { + unsigned int in = i; + const char* inbuf = (const char*) ∈ + size_t inbytesleft = sizeof(unsigned int); + char* outbuf = (char*)buf; + size_t outbytesleft = sizeof(buf); + size_t result; + size_t result2 = 0; + iconv(cd,NULL,NULL,NULL,NULL); + result = iconv(cd,(ICONV_CONST char**)&inbuf,&inbytesleft,&outbuf,&outbytesleft); + if (result != (size_t)(-1)) + result2 = iconv(cd,NULL,NULL,&outbuf,&outbytesleft); + if (result == (size_t)(-1) || result2 == (size_t)(-1)) { + if (errno != EILSEQ) { + int saved_errno = errno; + fprintf(stderr,"0x%02X: iconv error: ",i); + errno = saved_errno; + perror(""); + exit(1); + } + } else if (result == 0) /* ignore conversions with transliteration */ { + if (inbytesleft == 0 && outbytesleft < sizeof(buf)) { + unsigned int jmax = sizeof(buf) - outbytesleft; + unsigned int j; + printf("0x"); + for (j = 0; j < jmax; j++) + printf("%02X",buf[j]); + printf("\t0x%04X\n",i); + } else if (inbytesleft == 0 && i >= 0xe0000 && i < 0xe0080) { + /* Language tags may silently be dropped. */ + } else { + fprintf(stderr,"0x%02X: inbytes = %ld, outbytes = %ld\n",i,(long)(sizeof(unsigned int)-inbytesleft),(long)(sizeof(buf)-outbytesleft)); + exit(1); + } + } + } + } + + if (iconv_close(cd) < 0) { + perror("iconv_close"); + exit(1); + } + + if (ferror(stdin) || ferror(stdout) || fclose(stdout)) { + fprintf(stderr,"I/O error\n"); + exit(1); + } + + exit(0); +} diff --git a/3rdPartner/libiconv/tests/test-shiftseq.c b/3rdPartner/libiconv/tests/test-shiftseq.c new file mode 100644 index 0000000..84eada0 --- /dev/null +++ b/3rdPartner/libiconv/tests/test-shiftseq.c @@ -0,0 +1,118 @@ +/* Copyright (C) 2008, 2018, 2022 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +#include "config.h" + +#include +#include +#include + +/* This test checks that the behaviour of iconv() in the situation of an + invalid multibyte character after a shift sequence is consistent whether + the entire buffer is passed at once, or whether it is passed in two + subsequent calls. Based on a bug report from + Roman Rybalko + at . */ + +void main1 (void) +{ + static const char input[] = "+2D/YQNhB"; + iconv_t cd; + char buf[20]; + + const char * inptr; + size_t inleft; + char * outptr; + size_t outleft; + + cd = iconv_open ("UTF-8", "UTF-7"); + { + size_t r; + + inptr = input; + inleft = 9; + outptr = buf; + outleft = sizeof (buf); + r = iconv (cd, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft); + /* + printf ("r = %d errno = %d inconsumed = %d outproduced = %d\n", + r, errno, inptr - input, outptr - buf); + // glibc: + // r = -1 errno = 84 inconsumed = 4 outproduced = 0 + // libiconv: + // r = -1 errno = 84 inconsumed = 1 outproduced = 0 + */ + if (!(r == (size_t)(-1) && errno == EILSEQ + && inptr - input == 1 && outptr - buf == 0)) + abort(); + } +} + +void main2 (void) +{ + static const char input[20] = "+2D/YQNhB"; + iconv_t cd; + char buf[20]; + + const char * inptr; + size_t inleft; + char * outptr; + size_t outleft; + + cd = iconv_open ("UTF-8", "UTF-7"); + { + size_t r; + + inptr = input; + inleft = 5; + outptr = buf; + outleft = sizeof (buf); + r = iconv (cd, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft); + /* + printf ("r = %d errno = %d inconsumed = %d outproduced = %d\n", + r, errno, inptr - input, outptr - buf); + // glibc: + // r = -1 errno = 84 (EILSEQ) inconsumed = 4 outproduced = 0 + // libiconv: + // r = -1 errno = 22 (EINVAL) inconsumed = 1 outproduced = 0 + */ + if (!(r == (size_t)(-1) && errno == EINVAL + && inptr - input == 1 && outptr - buf == 0)) + abort(); + + inleft = input + 20 - inptr; + r = iconv (cd, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft); + /* + printf ("r = %d errno = %d inconsumed = %d outproduced = %d\n", + r, errno, inptr - input, outptr - buf); + // glibc: + // r = -1 errno = 84 (EILSEQ) inconsumed = 4 outproduced = 0 + // libiconv: + // r = -1 errno = 84 (EILSEQ) inconsumed = 1 outproduced = 0 + */ + if (!(r == (size_t)(-1) && errno == EILSEQ + && inptr - input == 1 && outptr - buf == 0)) + abort(); + } +} + +int main () +{ + main1 (); + main2 (); + return 0; +} diff --git a/3rdPartner/libiconv/tests/test-to-wchar.c b/3rdPartner/libiconv/tests/test-to-wchar.c new file mode 100644 index 0000000..95b5053 --- /dev/null +++ b/3rdPartner/libiconv/tests/test-to-wchar.c @@ -0,0 +1,51 @@ +/* Copyright (C) 2009, 2011 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV 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. + + The GNU LIBICONV 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 the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +#include "config.h" + +#include +#include +#include + +/* This test checks that the conversion to wchar_t stops correctly when + the input is incomplete. Based on a bug report from + Tristan Gingold . */ + +int main () +{ + iconv_t cd = iconv_open ("wchar_t", "UTF-8"); + if (cd == (iconv_t)(-1)) { + /* Skip the test on platforms without wchar_t + (Solaris 2.6, HP-UX 11.00). */ + } else { + char inbuf[2] = { 0xc2, 0xa0 }; + wchar_t outbuf[10]; + + char *inptr = inbuf; + size_t inbytesleft = 1; + char *outptr = (char *) outbuf; + size_t outbytesleft = sizeof (outbuf); + size_t r = iconv (cd, + (ICONV_CONST char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + + if (!(r == (size_t)(-1) && errno == EINVAL)) + abort (); + } + + return 0; +} diff --git a/3rdPartner/libiconv/tests/uniq-u.c b/3rdPartner/libiconv/tests/uniq-u.c new file mode 100644 index 0000000..6fae8c0 --- /dev/null +++ b/3rdPartner/libiconv/tests/uniq-u.c @@ -0,0 +1,277 @@ +/* uniq -- remove duplicate lines from a sorted file + Copyright (C) 86, 91, 1995-1998, 1999, 2012 Free Software Foundation, Inc. + + 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 3 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, see . */ + +/* Written by Richard Stallman and David MacKenzie. */ +/* 2000-03-22 Trimmed down to the case of "uniq -u" by Bruno Haible. */ + +#include +#include +#include +#include + +/* The name this program was run with. */ +static char *program_name; + +static void +xalloc_fail (void) +{ + fprintf (stderr, "%s: virtual memory exhausted\n", program_name); + exit (1); +} + +/* Allocate N bytes of memory dynamically, with error checking. */ + +void * +xmalloc (size_t n) +{ + void *p; + + p = malloc (n); + if (p == 0) + xalloc_fail (); + return p; +} + +/* Change the size of an allocated block of memory P to N bytes, + with error checking. + If P is NULL, run xmalloc. */ + +void * +xrealloc (void *p, size_t n) +{ + p = realloc (p, n); + if (p == 0) + xalloc_fail (); + return p; +} + +/* A 'struct linebuffer' holds a line of text. */ + +struct linebuffer +{ + size_t size; /* Allocated. */ + size_t length; /* Used. */ + char *buffer; +}; + +/* Initialize linebuffer LINEBUFFER for use. */ + +static void +initbuffer (struct linebuffer *linebuffer) +{ + linebuffer->length = 0; + linebuffer->size = 200; + linebuffer->buffer = (char *) xmalloc (linebuffer->size); +} + +/* Read an arbitrarily long line of text from STREAM into LINEBUFFER. + Keep the newline; append a newline if it's the last line of a file + that ends in a non-newline character. Do not null terminate. + Return LINEBUFFER, except at end of file return 0. */ + +static struct linebuffer * +readline (struct linebuffer *linebuffer, FILE *stream) +{ + int c; + char *buffer = linebuffer->buffer; + char *p = linebuffer->buffer; + char *end = buffer + linebuffer->size - 1; /* Sentinel. */ + + if (feof (stream) || ferror (stream)) + return 0; + + do + { + c = getc (stream); + if (c == EOF) + { + if (p == buffer) + return 0; + if (p[-1] == '\n') + break; + c = '\n'; + } + if (p == end) + { + linebuffer->size *= 2; + buffer = (char *) xrealloc (buffer, linebuffer->size); + p = p - linebuffer->buffer + buffer; + linebuffer->buffer = buffer; + end = buffer + linebuffer->size - 1; + } + *p++ = c; + } + while (c != '\n'); + + linebuffer->length = p - buffer; + return linebuffer; +} + +/* Free linebuffer LINEBUFFER's data. */ + +static void +freebuffer (struct linebuffer *linebuffer) +{ + free (linebuffer->buffer); +} + +/* Undefine, to avoid warning about redefinition on some systems. */ +#undef min +#define min(x, y) ((x) < (y) ? (x) : (y)) + +/* Return zero if two strings OLD and NEW match, nonzero if not. + OLD and NEW point not to the beginnings of the lines + but rather to the beginnings of the fields to compare. + OLDLEN and NEWLEN are their lengths. */ + +static int +different (const char *old, const char *new, size_t oldlen, size_t newlen) +{ + int order; + + order = memcmp (old, new, min (oldlen, newlen)); + + if (order == 0) + return oldlen - newlen; + return order; +} + +/* Output the line in linebuffer LINE to stream STREAM + provided that the switches say it should be output. + If requested, print the number of times it occurred, as well; + LINECOUNT + 1 is the number of times that the line occurred. */ + +static void +writeline (const struct linebuffer *line, FILE *stream, int linecount) +{ + if (linecount == 0) + fwrite (line->buffer, 1, line->length, stream); +} + +/* Process input file INFILE with output to OUTFILE. + If either is "-", use the standard I/O stream for it instead. */ + +static void +check_file (const char *infile, const char *outfile) +{ + FILE *istream; + FILE *ostream; + struct linebuffer lb1, lb2; + struct linebuffer *thisline, *prevline, *exch; + char *prevfield, *thisfield; + size_t prevlen, thislen; + int match_count = 0; + + if (!strcmp (infile, "-")) + istream = stdin; + else + istream = fopen (infile, "r"); + if (istream == NULL) + { + fprintf (stderr, "%s: error opening %s\n", program_name, infile); + exit (1); + } + + if (!strcmp (outfile, "-")) + ostream = stdout; + else + ostream = fopen (outfile, "w"); + if (ostream == NULL) + { + fprintf (stderr, "%s: error opening %s\n", program_name, outfile); + exit (1); + } + + thisline = &lb1; + prevline = &lb2; + + initbuffer (thisline); + initbuffer (prevline); + + if (readline (prevline, istream) == 0) + goto closefiles; + prevfield = prevline->buffer; + prevlen = prevline->length; + + while (!feof (istream)) + { + int match; + if (readline (thisline, istream) == 0) + break; + thisfield = thisline->buffer; + thislen = thisline->length; + match = !different (thisfield, prevfield, thislen, prevlen); + + if (match) + ++match_count; + + if (!match) + { + writeline (prevline, ostream, match_count); + exch = prevline; + prevline = thisline; + thisline = exch; + prevfield = thisfield; + prevlen = thislen; + if (!match) + match_count = 0; + } + } + + writeline (prevline, ostream, match_count); + + closefiles: + if (ferror (istream) || fclose (istream) == EOF) + { + fprintf (stderr, "%s: error reading %s\n", program_name, infile); + exit (1); + } + + if (ferror (ostream) || fclose (ostream) == EOF) + { + fprintf (stderr, "%s: error writing %s\n", program_name, outfile); + exit (1); + } + + freebuffer (&lb1); + freebuffer (&lb2); +} + +int +main (int argc, char **argv) +{ + const char *infile = "-"; + const char *outfile = "-"; + int optind = 1; + + program_name = argv[0]; + + if (optind < argc) + infile = argv[optind++]; + + if (optind < argc) + outfile = argv[optind++]; + + if (optind < argc) + { + fprintf (stderr, "%s: too many arguments\n", program_name); + exit (1); + } + + check_file (infile, outfile); + + exit (0); +} diff --git a/3rdPartner/libiconv/tools/8bit_tab_to_h.c b/3rdPartner/libiconv/tools/8bit_tab_to_h.c new file mode 100644 index 0000000..f2f5227 --- /dev/null +++ b/3rdPartner/libiconv/tools/8bit_tab_to_h.c @@ -0,0 +1,571 @@ +/* Copyright (C) 1999-2002, 2011-2012, 2016, 2018, 2022 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + 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 3 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, see . */ + +/* + * Generates an 8-bit character set table from a .TXT table as found on + * ftp.unicode.org or from a table containing the 256 Unicode values as + * hexadecimal integers. + * Examples: + * + * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < tab8859_1 + * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < tab8859_2 + * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < tab8859_3 + * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < tab8859_4 + * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < tab8859_5 + * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < tab8859_6 + * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < tab8859_7 + * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < tab8859_8 + * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < tab8859_9 + * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < tab8859_10 + * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < tab8859_14 + * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < tab8859_15 + * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < jis0201 + * ./8bit_tab_to_h TIS620.2533-1 tis620 < tabtis620 + * ./8bit_tab_to_h KOI8-R koi8_r < tabkoi8_r + * ./8bit_tab_to_h KOI8-U koi8_u < tabkoi8_u + * ./8bit_tab_to_h ARMSCII-8 armscii_8 < tabarmscii_8 + * ./8bit_tab_to_h CP1133 cp1133 < tabibm_cp1133 + * ./8bit_tab_to_h MULELAO-1 mulelao < tabmulelao_1 + * ./8bit_tab_to_h VISCII1.1-1 viscii1 < tabviscii + * ./8bit_tab_to_h TCVN-5712 tcvn < tabtcvn + * ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_ac < tabgeorgian_academy + * ./8bit_tab_to_h GEORGIAN-PS georgian_ps < tabgeorgian_ps + * + * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < 8859-1.TXT + * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < 8859-2.TXT + * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < 8859-3.TXT + * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < 8859-4.TXT + * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < 8859-5.TXT + * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < 8859-6.TXT + * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < 8859-7.TXT + * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < 8859-8.TXT + * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < 8859-9.TXT + * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < 8859-10.TXT + * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < 8859-14.TXT + * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < 8859-15.TXT + * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < JIS0201.TXT + * ./8bit_tab_to_h KOI8-R koi8_r < KOI8-R.TXT + * + * ./8bit_tab_to_h 'CP50221 JISX0208 extensions' cp50221_0208_ext < CP50221-0208-EXT.TXT + * ./8bit_tab_to_h 'CP50221 JISX0212 extensions' cp50221_0212_ext < CP50221-0212-EXT.TXT + */ + +#include +#include +#include +#include + +int main (int argc, char *argv[]) +{ + const char* charsetname; + const char* c_charsetname; + const char* filename; + const char* directory; + int charset2uni[0x100]; + + if (argc != 3 && argc != 4 && argc != 5) + exit(1); + charsetname = argv[1]; + c_charsetname = argv[2]; + if (argc > 3) { + filename = argv[3]; + } else { + char* s = (char*) malloc(strlen(c_charsetname)+strlen(".h")+1); + strcpy(s,c_charsetname); strcat(s,".h"); + filename = s; + } + directory = (argc > 4 ? argv[4] : ""); + + fprintf(stderr, "Creating %s%s\n", directory, filename); + + { + int i, c; + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (i = 0; i < 0x100; i++) + charset2uni[i] = 0xfffd; + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &i) != 1 || !(i >= 0 && i < 0x100)) + exit(1); + do { c = getc(stdin); } while (c == ' ' || c == '\t'); + if (c != EOF) + ungetc(c,stdin); + if (c == '\n' || c == '#') + continue; + if (scanf("0x%x", &charset2uni[i]) != 1) + exit(1); + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i = 0; i < 0x100; i++) { + if (scanf("%x", &charset2uni[i]) != 1) + exit(1); + if (charset2uni[i] < 0 || charset2uni[i] == 0xffff) + charset2uni[i] = 0xfffd; + } + if (scanf("%x", &i) != EOF) + exit(1); + } + } + + /* Write the output file. */ + { + FILE* f; + + { + char* fname = malloc(strlen(directory)+strlen(filename)+1); + strcpy(fname,directory); strcat(fname,filename); + f = fopen(fname,"w"); + if (f == NULL) + exit(1); + } + + fprintf(f, "/*\n"); + fprintf(f, " * Copyright (C) 1999-2022 Free Software Foundation, Inc.\n"); + fprintf(f, " * This file is part of the GNU LIBICONV Library.\n"); + fprintf(f, " *\n"); + fprintf(f, " * The GNU LIBICONV Library is free software; you can redistribute it\n"); + fprintf(f, " * and/or modify it under the terms of the GNU Lesser General Public\n"); + fprintf(f, " * License as published by the Free Software Foundation; either version 2\n"); + fprintf(f, " * of the License, or (at your option) any later version.\n"); + fprintf(f, " *\n"); + fprintf(f, " * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + fprintf(f, " * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + fprintf(f, " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + fprintf(f, " * Lesser General Public License for more details.\n"); + fprintf(f, " *\n"); + fprintf(f, " * You should have received a copy of the GNU Lesser General Public\n"); + fprintf(f, " * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + fprintf(f, " * If not, see .\n"); + fprintf(f, " */\n"); + fprintf(f, "\n"); + fprintf(f, "/*\n"); + fprintf(f, " * %s\n", charsetname); + fprintf(f, " */\n"); + fprintf(f, "\n"); + + { + int i, i1, i2, i3; + int line[16]; + int tableno; + struct { int minline; int maxline; } tables[16]; + bool some_invalid; + bool final_ret_reached; + + for (i1 = 0; i1 < 16; i1++) { + bool all_invalid = true; + bool all_identity = true; + for (i2 = 0; i2 < 16; i2++) { + i = 16*i1+i2; + if (charset2uni[i] != 0xfffd) + all_invalid = false; + if (charset2uni[i] != i) + all_identity = false; + } + if (all_invalid) + line[i1] = -2; + else if (all_identity) + line[i1] = -1; + else + line[i1] = 0; + } + tableno = 0; + for (i1 = 0; i1 < 16; i1++) { + if (line[i1] >= 0) { + if (i1 > 0 && tableno > 0 && line[i1-1] == tableno-1) { + line[i1] = tableno-1; + tables[tableno-1].maxline = i1; + } else { + tableno++; + line[i1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = i1; + } + } + } + some_invalid = false; + for (i = 0; i < 0x100; i++) + if (charset2uni[i] == 0xfffd) + some_invalid = true; + if (tableno > 0) { + int t; + for (t = 0; t < tableno; t++) { + fprintf(f, "static const unsigned short %s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[%d] = {\n", 16*(tables[t].maxline-tables[t].minline+1)); + for (i1 = tables[t].minline; i1 <= tables[t].maxline; i1++) { + fprintf(f, " /* 0x%02x */\n", 16*i1); + for (i2 = 0; i2 < 2; i2++) { + fprintf(f, " "); + for (i3 = 0; i3 < 8; i3++) { + i = 16*i1+8*i2+i3; + fprintf(f, " 0x%04x,", charset2uni[i]); + } + fprintf(f, "\n"); + } + } + fprintf(f, "};\n"); + } + fprintf(f, "\n"); + } + final_ret_reached = false; + fprintf(f, "static int\n%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)\n", c_charsetname); + fprintf(f, "{\n"); + fprintf(f, " unsigned char c = *s;\n"); + if (some_invalid) { + for (i1 = 0; i1 < 16;) { + int t = line[i1]; + const char* indent; + for (i2 = i1; i2 < 16 && line[i2] == t; i2++); + indent = (i1 == 0 && i2 == 16 ? " " : " "); + if (i1 == 0) { + if (i2 == 16) { + } else { + fprintf(f, " if (c < 0x%02x) {\n", 16*i2); + } + } else { + if (i2 == 16) { + fprintf(f, " else {\n"); + } else { + fprintf(f, " else if (c < 0x%02x) {\n", 16*i2); + } + } + if (t == -2) { + final_ret_reached = true; + } else if (t == -1) { + fprintf(f, "%s*pwc = (ucs4_t) c;\n", indent); + fprintf(f, "%sreturn 1;\n", indent); + } else { + fprintf(f, "%s", indent); + some_invalid = false; + for (i = 16*i1; i < 16*i2; i++) + if (charset2uni[i] == 0xfffd) + some_invalid = true; + if (some_invalid) + fprintf(f, "unsigned short wc = "); + else + fprintf(f, "*pwc = (ucs4_t) "); + fprintf(f, "%s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[c"); + if (tables[t].minline > 0) + fprintf(f, "-0x%02x", 16*tables[t].minline); + fprintf(f, "];\n"); + if (some_invalid) { + fprintf(f, "%sif (wc != 0xfffd) {\n", indent); + fprintf(f, "%s *pwc = (ucs4_t) wc;\n", indent); + fprintf(f, "%s return 1;\n", indent); + fprintf(f, "%s}\n", indent); + final_ret_reached = true; + } else { + fprintf(f, "%sreturn 1;\n", indent); + } + } + if (!(i1 == 0 && i2 == 16)) + fprintf(f, " }\n"); + i1 = i2; + } + if (final_ret_reached) + fprintf(f, " return RET_ILSEQ;\n"); + } else { + for (i1 = 0; i1 < 16;) { + int t = line[i1]; + for (i2 = i1; i2 < 16 && line[i2] == t; i2++); + if (i1 == 0) { + if (i2 == 16) { + fprintf(f, " "); + } else { + fprintf(f, " if (c < 0x%02x)\n ", 16*i2); + } + } else { + if (i2 == 16) { + fprintf(f, " else\n "); + } else { + fprintf(f, " else if (c < 0x%02x)\n ", 16*i2); + } + } + if (t == -1) + fprintf(f, "*pwc = (ucs4_t) c;\n"); + else { + fprintf(f, "*pwc = (ucs4_t) %s_2uni", c_charsetname); + if (tableno > 1) + fprintf(f, "_%d", t+1); + fprintf(f, "[c"); + if (tables[t].minline > 0) + fprintf(f, "-0x%02x", 16*tables[t].minline); + fprintf(f, "];\n"); + } + i1 = i2; + } + fprintf(f, " return 1;\n"); + } + fprintf(f, "}\n"); + + } + + fprintf(f, "\n"); + + { + int uni2charset[0x10000]; + bool pages[0x100]; + int line[0x2000]; + int tableno; + struct { int minline; int maxline; int usecount; const char* suffix; } tables[0x2000]; + bool need_c; + bool fix_0000; + int i, j, p, j1, j2, t; + + for (j = 0; j < 0x10000; j++) + uni2charset[j] = 0; + for (p = 0; p < 0x100; p++) + pages[p] = false; + for (i = 0; i < 0x100; i++) { + j = charset2uni[i]; + if (j != 0xfffd) { + uni2charset[j] = i; + pages[j>>8] = true; + } + } + for (j1 = 0; j1 < 0x2000; j1++) { + bool all_invalid = true; + bool all_identity = true; + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + if (uni2charset[j] != 0) + all_invalid = false; + if (uni2charset[j] != j) + all_identity = false; + } + if (all_invalid) + line[j1] = -2; + else if (all_identity) + line[j1] = -1; + else + line[j1] = 0; + } + tableno = 0; + for (j1 = 0; j1 < 0x2000; j1++) { + if (line[j1] >= 0) { + if (tableno > 0 + && ((j1 > 0 && line[j1-1] == tableno-1) + || ((tables[tableno-1].maxline >> 5) == (j1 >> 5) + && j1 - tables[tableno-1].maxline <= 8))) { + line[j1] = tableno-1; + tables[tableno-1].maxline = j1; + } else { + tableno++; + line[j1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = j1; + } + } + } + for (t = 0; t < tableno; t++) { + tables[t].usecount = 0; + j1 = 8*tables[t].minline; + j2 = 8*(tables[t].maxline+1); + for (j = j1; j < j2; j++) + if (uni2charset[j] != 0) + tables[t].usecount++; + } + for (t = 0, p = -1, i = 0; t < tableno; t++) { + if (tables[t].usecount > 1) { + char* s; + if (p == tables[t].minline >> 5) { + s = (char*) malloc(5+1); + sprintf(s, "%02x_%d", p, ++i); + } else { + p = tables[t].minline >> 5; + s = (char*) malloc(2+1); + sprintf(s, "%02x", p); + } + tables[t].suffix = s; + } else + tables[t].suffix = NULL; + } + { + p = -1; + for (t = 0; t < tableno; t++) + if (tables[t].usecount > 1) { + p = 0; + fprintf(f, "static const unsigned char %s_page%s[%d] = {\n", c_charsetname, tables[t].suffix, 8*(tables[t].maxline-tables[t].minline+1)); + for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) { + if ((j1 % 0x20) == 0 && j1 > tables[t].minline) + fprintf(f, " /* 0x%04x */\n", 8*j1); + fprintf(f, " "); + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + fprintf(f, " 0x%02x,", uni2charset[j]); + } + fprintf(f, " /* 0x%02x-0x%02x */\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7); + } + fprintf(f, "};\n"); + } + if (p >= 0) + fprintf(f, "\n"); + } + need_c = false; + for (j1 = 0; j1 < 0x2000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++); + if (t >= 0) + j2 = tables[t].maxline+1; + if (!(t == -2 || (t == -1 && j1 == 0))) + need_c = true; + j1 = j2; + } + fix_0000 = false; + fprintf(f, "static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)\n", c_charsetname); + fprintf(f, "{\n"); + if (need_c) + fprintf(f, " unsigned char c = 0;\n"); + for (j1 = 0; j1 < 0x2000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++); + if (t >= 0) { + if (j1 != tables[t].minline) abort(); + if (j2 > tables[t].maxline+1) abort(); + j2 = tables[t].maxline+1; + } + if (t == -2) { + } else { + if (j1 == 0) + fprintf(f, " "); + else + fprintf(f, " else "); + if (t >= 0 && tables[t].usecount == 0) abort(); + if (t >= 0 && tables[t].usecount == 1) { + if (j2 != j1+1) abort(); + for (j = 8*j1; j < 8*j2; j++) + if (uni2charset[j] != 0) { + fprintf(f, "if (wc == 0x%04x)\n c = 0x%02x;\n", j, uni2charset[j]); + break; + } + } else { + if (j1 == 0) { + fprintf(f, "if (wc < 0x%04x)", 8*j2); + } else { + fprintf(f, "if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2); + } + if (t == -1) { + if (j1 == 0) + /* If wc == 0, the function must return 1, not -1. */ + fprintf(f, " {\n *r = wc;\n return 1;\n }\n"); + else + fprintf(f, "\n c = wc;\n"); + } else { + fprintf(f, "\n c = %s_page%s[wc", c_charsetname, tables[t].suffix); + if (tables[t].minline > 0) + fprintf(f, "-0x%04x", 8*j1); + fprintf(f, "];\n"); + if (j1 == 0 && uni2charset[0] == 0) + /* If wc == 0, the function must return 1, not -1. */ + fix_0000 = true; + } + } + } + j1 = j2; + } + if (need_c) { + if (fix_0000) + fprintf(f, " if (c != 0 || wc == 0) {\n"); + else + fprintf(f, " if (c != 0) {\n"); + fprintf(f, " *r = c;\n"); + fprintf(f, " return 1;\n"); + fprintf(f, " }\n"); + } + fprintf(f, " return RET_ILUNI;\n"); + fprintf(f, "}\n"); + + } + + if (ferror(f) || fclose(f)) + exit(1); + } + +#if 0 + + int i1, i2, i3, i1_min, i1_max, j1, j2; + + i1_min = 16; + i1_max = -1; + for (i1 = 0; i1 < 16; i1++) + for (i2 = 0; i2 < 16; i2++) + if (charset2uni[16*i1+i2] != 0xfffd) { + if (i1_min > i1) i1_min = i1; + if (i1_max < i1) i1_max = i1; + } + printf("static const unsigned short %s_2uni[%d] = {\n", + name, 16*(i1_max-i1_min+1)); + for (i1 = i1_min; i1 <= i1_max; i1++) { + printf(" /""* 0x%02x *""/\n", 16*i1); + for (i2 = 0; i2 < 2; i2++) { + printf(" "); + for (i3 = 0; i3 < 8; i3++) { + if (i3 > 0) printf(" "); + printf("0x%04x,", charset2uni[16*i1+8*i2+i3]); + } + printf("\n"); + } + } + printf("};\n"); + printf("\n"); + + for (p = 0; p < 0x100; p++) + pages[p] = 0; + for (i = 0; i < 0x100; i++) + if (charset2uni[i] != 0xfffd) + pages[charset2uni[i]>>8] = 1; + for (p = 0; p < 0x100; p++) + if (pages[p]) { + int j1_min = 32; + int j1_max = -1; + for (j1 = 0; j1 < 32; j1++) + for (j2 = 0; j2 < 8; j2++) + if (uni2charset[256*p+8*j1+j2] != 0) { + if (j1_min > j1) j1_min = j1; + if (j1_max < j1) j1_max = j1; + } + printf("static const unsigned char %s_page%02x[%d] = {\n", + name, p, 8*(j1_max-j1_min+1)); + for (j1 = j1_min; j1 <= j1_max; j1++) { + printf(" "); + for (j2 = 0; j2 < 8; j2++) + printf("0x%02x, ", uni2charset[256*p+8*j1+j2]); + printf("/""* 0x%02x-0x%02x *""/\n", 8*j1, 8*j1+7); + } + printf("};\n"); + } + printf("\n"); + +} +#endif + + exit(0); +} diff --git a/3rdPartner/libiconv/tools/CP50221-0208-EXT.TXT b/3rdPartner/libiconv/tools/CP50221-0208-EXT.TXT new file mode 100644 index 0000000..ee8cd85 --- /dev/null +++ b/3rdPartner/libiconv/tools/CP50221-0208-EXT.TXT @@ -0,0 +1,75 @@ +# CP50221, section JIS X 0208, row 0x2D. +0x01 0x2460 +0x02 0x2461 +0x03 0x2462 +0x04 0x2463 +0x05 0x2464 +0x06 0x2465 +0x07 0x2466 +0x08 0x2467 +0x09 0x2468 +0x0A 0x2469 +0x0B 0x246A +0x0C 0x246B +0x0D 0x246C +0x0E 0x246D +0x0F 0x246E +0x10 0x246F +0x11 0x2470 +0x12 0x2471 +0x13 0x2472 +0x14 0x2473 +0x15 0x2160 +0x16 0x2161 +0x17 0x2162 +0x18 0x2163 +0x19 0x2164 +0x1A 0x2165 +0x1B 0x2166 +0x1C 0x2167 +0x1D 0x2168 +0x1E 0x2169 +0x20 0x3349 +0x21 0x3314 +0x22 0x3322 +0x23 0x334D +0x24 0x3318 +0x25 0x3327 +0x26 0x3303 +0x27 0x3336 +0x28 0x3351 +0x29 0x3357 +0x2A 0x330D +0x2B 0x3326 +0x2C 0x3323 +0x2D 0x332B +0x2E 0x334A +0x2F 0x333B +0x30 0x339C +0x31 0x339D +0x32 0x339E +0x33 0x338E +0x34 0x338F +0x35 0x33C4 +0x36 0x33A1 +0x3F 0x337B +0x40 0x301E +0x41 0x301F +0x42 0x2116 +0x43 0x33CD +0x44 0x2121 +0x45 0x32A4 +0x46 0x32A5 +0x47 0x32A6 +0x48 0x32A7 +0x49 0x32A8 +0x4A 0x3231 +0x4B 0x3232 +0x4C 0x3239 +0x4D 0x337E +0x4E 0x337D +0x4F 0x337C +0x53 0x222E +0x54 0x2211 +0x58 0x221F +0x59 0x22BF diff --git a/3rdPartner/libiconv/tools/CP50221-0212-EXT.TXT b/3rdPartner/libiconv/tools/CP50221-0212-EXT.TXT new file mode 100644 index 0000000..cf2185c --- /dev/null +++ b/3rdPartner/libiconv/tools/CP50221-0212-EXT.TXT @@ -0,0 +1,93 @@ +# CP50221, section JIS X 0212, rows 0x73..0x74. +0x01 0x2170 +0x02 0x2171 +0x03 0x2172 +0x04 0x2173 +0x05 0x2174 +0x06 0x2175 +0x07 0x2176 +0x08 0x2177 +0x09 0x2178 +0x0A 0x2179 +0x15 0xFF07 +0x16 0xFF02 +0x1A 0x70BB +0x1B 0x4EFC +0x1C 0x50F4 +0x1D 0x51EC +0x1E 0x5307 +0x1F 0x5324 +0x20 0xFA0E +0x21 0x548A +0x22 0x5759 +0x23 0xFA0F +0x24 0xFA10 +0x25 0x589E +0x26 0x5BEC +0x27 0x5CF5 +0x28 0x5D53 +0x29 0xFA11 +0x2A 0x5FB7 +0x2B 0x6085 +0x2C 0x6120 +0x2D 0x654E +0x2F 0x6665 +0x30 0xFA12 +0x31 0xF929 +0x32 0x6801 +0x33 0xFA13 +0x34 0xFA14 +0x35 0x6A6B +0x36 0x6AE2 +0x37 0x6DF8 +0x38 0x6DF2 +0x39 0x7028 +0x3A 0xFA15 +0x3B 0xFA16 +0x3C 0x7501 +0x3D 0x7682 +0x3E 0x769E +0x3F 0xFA17 +0x40 0x7930 +0x41 0xFA18 +0x42 0xFA19 +0x43 0xFA1A +0x44 0xFA1B +0x45 0x7AE7 +0x46 0xFA1C +0x47 0xFA1D +0x48 0x7DA0 +0x49 0x7DD6 +0x4A 0xFA1E +0x4B 0x8362 +0x4C 0xFA1F +0x4D 0x85B0 +0x4E 0xFA20 +0x4F 0xFA21 +0x50 0x8807 +0x51 0xFA22 +0x52 0x8B7F +0x53 0x8CF4 +0x54 0x8D76 +0x55 0xFA23 +0x56 0xFA24 +0x57 0xFA25 +0x58 0x90DE +0x59 0xFA26 +0x5A 0x9115 +0x5B 0xFA27 +0x5C 0xFA28 +0x5D 0x9592 +0x5E 0xF9DC +0x5F 0xFA29 +0x60 0x973B +0x62 0x9751 +0x63 0xFA2A +0x64 0xFA2B +0x65 0xFA2C +0x66 0x999E +0x67 0x9AD9 +0x68 0x9B72 +0x69 0xFA2D +0x6A 0x9ED1 +0xA1 0x974D diff --git a/3rdPartner/libiconv/tools/JISX0213.TXT b/3rdPartner/libiconv/tools/JISX0213.TXT new file mode 100644 index 0000000..31a94c6 --- /dev/null +++ b/3rdPartner/libiconv/tools/JISX0213.TXT @@ -0,0 +1,11233 @@ +0x12121 0x3000 +0x12122 0x3001 +0x12123 0x3002 +0x12124 0xFF0C +0x12125 0xFF0E +0x12126 0x30FB +0x12127 0xFF1A +0x12128 0xFF1B +0x12129 0xFF1F +0x1212A 0xFF01 +0x1212B 0x309B +0x1212C 0x309C +0x1212D 0x00B4 +0x1212E 0xFF40 +0x1212F 0x00A8 +0x12130 0xFF3E +0x12131 0xFFE3 +0x12132 0xFF3F +0x12133 0x30FD +0x12134 0x30FE +0x12135 0x309D +0x12136 0x309E +0x12137 0x3003 +0x12138 0x4EDD +0x12139 0x3005 +0x1213A 0x3006 +0x1213B 0x3007 +0x1213C 0x30FC +0x1213D 0x2014 +0x1213E 0x2010 +0x1213F 0xFF0F +0x12140 0xFF3C +0x12141 0x301C +0x12142 0x2016 +0x12143 0xFF5C +0x12144 0x2026 +0x12145 0x2025 +0x12146 0x2018 +0x12147 0x2019 +0x12148 0x201C +0x12149 0x201D +0x1214A 0xFF08 +0x1214B 0xFF09 +0x1214C 0x3014 +0x1214D 0x3015 +0x1214E 0xFF3B +0x1214F 0xFF3D +0x12150 0xFF5B +0x12151 0xFF5D +0x12152 0x3008 +0x12153 0x3009 +0x12154 0x300A +0x12155 0x300B +0x12156 0x300C +0x12157 0x300D +0x12158 0x300E +0x12159 0x300F +0x1215A 0x3010 +0x1215B 0x3011 +0x1215C 0xFF0B +0x1215D 0x2212 +0x1215E 0x00B1 +0x1215F 0x00D7 +0x12160 0x00F7 +0x12161 0xFF1D +0x12162 0x2260 +0x12163 0xFF1C +0x12164 0xFF1E +0x12165 0x2266 +0x12166 0x2267 +0x12167 0x221E +0x12168 0x2234 +0x12169 0x2642 +0x1216A 0x2640 +0x1216B 0x00B0 +0x1216C 0x2032 +0x1216D 0x2033 +0x1216E 0x2103 +0x1216F 0xFFE5 +0x12170 0xFF04 +0x12171 0x00A2 +0x12172 0x00A3 +0x12173 0xFF05 +0x12174 0xFF03 +0x12175 0xFF06 +0x12176 0xFF0A +0x12177 0xFF20 +0x12178 0x00A7 +0x12179 0x2606 +0x1217A 0x2605 +0x1217B 0x25CB +0x1217C 0x25CF +0x1217D 0x25CE +0x1217E 0x25C7 +0x12221 0x25C6 +0x12222 0x25A1 +0x12223 0x25A0 +0x12224 0x25B3 +0x12225 0x25B2 +0x12226 0x25BD +0x12227 0x25BC +0x12228 0x203B +0x12229 0x3012 +0x1222A 0x2192 +0x1222B 0x2190 +0x1222C 0x2191 +0x1222D 0x2193 +0x1222E 0x3013 +0x1222F 0xFF07 +0x12230 0xFF02 +0x12231 0xFF0D +0x12232 0xFF5E +0x12233 0x3033 +0x12234 0x3034 +0x12235 0x3035 +0x12236 0x303B +0x12237 0x303C +0x12238 0x30FF +0x12239 0x309F +0x1223A 0x2208 +0x1223B 0x220B +0x1223C 0x2286 +0x1223D 0x2287 +0x1223E 0x2282 +0x1223F 0x2283 +0x12240 0x222A +0x12241 0x2229 +0x12242 0x2284 +0x12243 0x2285 +0x12244 0x228A +0x12245 0x228B +0x12246 0x2209 +0x12247 0x2205 +0x12248 0x2305 +0x12249 0x2306 +0x1224A 0x2227 +0x1224B 0x2228 +0x1224C 0x00AC +0x1224D 0x21D2 +0x1224E 0x21D4 +0x1224F 0x2200 +0x12250 0x2203 +0x12251 0x2295 +0x12252 0x2296 +0x12253 0x2297 +0x12254 0x2225 +0x12255 0x2226 +0x12256 0xFF5F +0x12257 0xFF60 +0x12258 0x3018 +0x12259 0x3019 +0x1225A 0x3016 +0x1225B 0x3017 +0x1225C 0x2220 +0x1225D 0x22A5 +0x1225E 0x2312 +0x1225F 0x2202 +0x12260 0x2207 +0x12261 0x2261 +0x12262 0x2252 +0x12263 0x226A +0x12264 0x226B +0x12265 0x221A +0x12266 0x223D +0x12267 0x221D +0x12268 0x2235 +0x12269 0x222B +0x1226A 0x222C +0x1226B 0x2262 +0x1226C 0x2243 +0x1226D 0x2245 +0x1226E 0x2248 +0x1226F 0x2276 +0x12270 0x2277 +0x12271 0x2194 +0x12272 0x212B +0x12273 0x2030 +0x12274 0x266F +0x12275 0x266D +0x12276 0x266A +0x12277 0x2020 +0x12278 0x2021 +0x12279 0x00B6 +0x1227A 0x266E +0x1227B 0x266B +0x1227C 0x266C +0x1227D 0x2669 +0x1227E 0x25EF +0x12321 0x25B7 +0x12322 0x25B6 +0x12323 0x25C1 +0x12324 0x25C0 +0x12325 0x2197 +0x12326 0x2198 +0x12327 0x2196 +0x12328 0x2199 +0x12329 0x21C4 +0x1232A 0x21E8 +0x1232B 0x21E6 +0x1232C 0x21E7 +0x1232D 0x21E9 +0x1232E 0x2934 +0x1232F 0x2935 +0x12330 0xFF10 +0x12331 0xFF11 +0x12332 0xFF12 +0x12333 0xFF13 +0x12334 0xFF14 +0x12335 0xFF15 +0x12336 0xFF16 +0x12337 0xFF17 +0x12338 0xFF18 +0x12339 0xFF19 +0x1233A 0x29BF +0x1233B 0x25C9 +0x1233C 0x303D +0x1233D 0xFE46 +0x1233E 0xFE45 +0x1233F 0x25E6 +0x12340 0x2022 +0x12341 0xFF21 +0x12342 0xFF22 +0x12343 0xFF23 +0x12344 0xFF24 +0x12345 0xFF25 +0x12346 0xFF26 +0x12347 0xFF27 +0x12348 0xFF28 +0x12349 0xFF29 +0x1234A 0xFF2A +0x1234B 0xFF2B +0x1234C 0xFF2C +0x1234D 0xFF2D +0x1234E 0xFF2E +0x1234F 0xFF2F +0x12350 0xFF30 +0x12351 0xFF31 +0x12352 0xFF32 +0x12353 0xFF33 +0x12354 0xFF34 +0x12355 0xFF35 +0x12356 0xFF36 +0x12357 0xFF37 +0x12358 0xFF38 +0x12359 0xFF39 +0x1235A 0xFF3A +0x1235B 0x2213 +0x1235C 0x2135 +0x1235D 0x210F +0x1235E 0x33CB +0x1235F 0x2113 +0x12360 0x2127 +0x12361 0xFF41 +0x12362 0xFF42 +0x12363 0xFF43 +0x12364 0xFF44 +0x12365 0xFF45 +0x12366 0xFF46 +0x12367 0xFF47 +0x12368 0xFF48 +0x12369 0xFF49 +0x1236A 0xFF4A +0x1236B 0xFF4B +0x1236C 0xFF4C +0x1236D 0xFF4D +0x1236E 0xFF4E +0x1236F 0xFF4F +0x12370 0xFF50 +0x12371 0xFF51 +0x12372 0xFF52 +0x12373 0xFF53 +0x12374 0xFF54 +0x12375 0xFF55 +0x12376 0xFF56 +0x12377 0xFF57 +0x12378 0xFF58 +0x12379 0xFF59 +0x1237A 0xFF5A +0x1237B 0x30A0 +0x1237C 0x2013 +0x1237D 0x29FA +0x1237E 0x29FB +0x12421 0x3041 +0x12422 0x3042 +0x12423 0x3043 +0x12424 0x3044 +0x12425 0x3045 +0x12426 0x3046 +0x12427 0x3047 +0x12428 0x3048 +0x12429 0x3049 +0x1242A 0x304A +0x1242B 0x304B +0x1242C 0x304C +0x1242D 0x304D +0x1242E 0x304E +0x1242F 0x304F +0x12430 0x3050 +0x12431 0x3051 +0x12432 0x3052 +0x12433 0x3053 +0x12434 0x3054 +0x12435 0x3055 +0x12436 0x3056 +0x12437 0x3057 +0x12438 0x3058 +0x12439 0x3059 +0x1243A 0x305A +0x1243B 0x305B +0x1243C 0x305C +0x1243D 0x305D +0x1243E 0x305E +0x1243F 0x305F +0x12440 0x3060 +0x12441 0x3061 +0x12442 0x3062 +0x12443 0x3063 +0x12444 0x3064 +0x12445 0x3065 +0x12446 0x3066 +0x12447 0x3067 +0x12448 0x3068 +0x12449 0x3069 +0x1244A 0x306A +0x1244B 0x306B +0x1244C 0x306C +0x1244D 0x306D +0x1244E 0x306E +0x1244F 0x306F +0x12450 0x3070 +0x12451 0x3071 +0x12452 0x3072 +0x12453 0x3073 +0x12454 0x3074 +0x12455 0x3075 +0x12456 0x3076 +0x12457 0x3077 +0x12458 0x3078 +0x12459 0x3079 +0x1245A 0x307A +0x1245B 0x307B +0x1245C 0x307C +0x1245D 0x307D +0x1245E 0x307E +0x1245F 0x307F +0x12460 0x3080 +0x12461 0x3081 +0x12462 0x3082 +0x12463 0x3083 +0x12464 0x3084 +0x12465 0x3085 +0x12466 0x3086 +0x12467 0x3087 +0x12468 0x3088 +0x12469 0x3089 +0x1246A 0x308A +0x1246B 0x308B +0x1246C 0x308C +0x1246D 0x308D +0x1246E 0x308E +0x1246F 0x308F +0x12470 0x3090 +0x12471 0x3091 +0x12472 0x3092 +0x12473 0x3093 +0x12474 0x3094 +0x12475 0x3095 +0x12476 0x3096 +0x12477 0x304B 0x309A +0x12478 0x304D 0x309A +0x12479 0x304F 0x309A +0x1247A 0x3051 0x309A +0x1247B 0x3053 0x309A +0x12521 0x30A1 +0x12522 0x30A2 +0x12523 0x30A3 +0x12524 0x30A4 +0x12525 0x30A5 +0x12526 0x30A6 +0x12527 0x30A7 +0x12528 0x30A8 +0x12529 0x30A9 +0x1252A 0x30AA +0x1252B 0x30AB +0x1252C 0x30AC +0x1252D 0x30AD +0x1252E 0x30AE +0x1252F 0x30AF +0x12530 0x30B0 +0x12531 0x30B1 +0x12532 0x30B2 +0x12533 0x30B3 +0x12534 0x30B4 +0x12535 0x30B5 +0x12536 0x30B6 +0x12537 0x30B7 +0x12538 0x30B8 +0x12539 0x30B9 +0x1253A 0x30BA +0x1253B 0x30BB +0x1253C 0x30BC +0x1253D 0x30BD +0x1253E 0x30BE +0x1253F 0x30BF +0x12540 0x30C0 +0x12541 0x30C1 +0x12542 0x30C2 +0x12543 0x30C3 +0x12544 0x30C4 +0x12545 0x30C5 +0x12546 0x30C6 +0x12547 0x30C7 +0x12548 0x30C8 +0x12549 0x30C9 +0x1254A 0x30CA +0x1254B 0x30CB +0x1254C 0x30CC +0x1254D 0x30CD +0x1254E 0x30CE +0x1254F 0x30CF +0x12550 0x30D0 +0x12551 0x30D1 +0x12552 0x30D2 +0x12553 0x30D3 +0x12554 0x30D4 +0x12555 0x30D5 +0x12556 0x30D6 +0x12557 0x30D7 +0x12558 0x30D8 +0x12559 0x30D9 +0x1255A 0x30DA +0x1255B 0x30DB +0x1255C 0x30DC +0x1255D 0x30DD +0x1255E 0x30DE +0x1255F 0x30DF +0x12560 0x30E0 +0x12561 0x30E1 +0x12562 0x30E2 +0x12563 0x30E3 +0x12564 0x30E4 +0x12565 0x30E5 +0x12566 0x30E6 +0x12567 0x30E7 +0x12568 0x30E8 +0x12569 0x30E9 +0x1256A 0x30EA +0x1256B 0x30EB +0x1256C 0x30EC +0x1256D 0x30ED +0x1256E 0x30EE +0x1256F 0x30EF +0x12570 0x30F0 +0x12571 0x30F1 +0x12572 0x30F2 +0x12573 0x30F3 +0x12574 0x30F4 +0x12575 0x30F5 +0x12576 0x30F6 +0x12577 0x30AB 0x309A +0x12578 0x30AD 0x309A +0x12579 0x30AF 0x309A +0x1257A 0x30B1 0x309A +0x1257B 0x30B3 0x309A +0x1257C 0x30BB 0x309A +0x1257D 0x30C4 0x309A +0x1257E 0x30C8 0x309A +0x12621 0x0391 +0x12622 0x0392 +0x12623 0x0393 +0x12624 0x0394 +0x12625 0x0395 +0x12626 0x0396 +0x12627 0x0397 +0x12628 0x0398 +0x12629 0x0399 +0x1262A 0x039A +0x1262B 0x039B +0x1262C 0x039C +0x1262D 0x039D +0x1262E 0x039E +0x1262F 0x039F +0x12630 0x03A0 +0x12631 0x03A1 +0x12632 0x03A3 +0x12633 0x03A4 +0x12634 0x03A5 +0x12635 0x03A6 +0x12636 0x03A7 +0x12637 0x03A8 +0x12638 0x03A9 +0x12639 0x2664 +0x1263A 0x2660 +0x1263B 0x2662 +0x1263C 0x2666 +0x1263D 0x2661 +0x1263E 0x2665 +0x1263F 0x2667 +0x12640 0x2663 +0x12641 0x03B1 +0x12642 0x03B2 +0x12643 0x03B3 +0x12644 0x03B4 +0x12645 0x03B5 +0x12646 0x03B6 +0x12647 0x03B7 +0x12648 0x03B8 +0x12649 0x03B9 +0x1264A 0x03BA +0x1264B 0x03BB +0x1264C 0x03BC +0x1264D 0x03BD +0x1264E 0x03BE +0x1264F 0x03BF +0x12650 0x03C0 +0x12651 0x03C1 +0x12652 0x03C3 +0x12653 0x03C4 +0x12654 0x03C5 +0x12655 0x03C6 +0x12656 0x03C7 +0x12657 0x03C8 +0x12658 0x03C9 +0x12659 0x03C2 +0x1265A 0x24F5 +0x1265B 0x24F6 +0x1265C 0x24F7 +0x1265D 0x24F8 +0x1265E 0x24F9 +0x1265F 0x24FA +0x12660 0x24FB +0x12661 0x24FC +0x12662 0x24FD +0x12663 0x24FE +0x12664 0x2616 +0x12665 0x2617 +0x12666 0x3020 +0x12667 0x260E +0x12668 0x2600 +0x12669 0x2601 +0x1266A 0x2602 +0x1266B 0x2603 +0x1266C 0x2668 +0x1266D 0x25B1 +0x1266E 0x31F0 +0x1266F 0x31F1 +0x12670 0x31F2 +0x12671 0x31F3 +0x12672 0x31F4 +0x12673 0x31F5 +0x12674 0x31F6 +0x12675 0x31F7 +0x12676 0x31F8 +0x12677 0x31F9 +0x12678 0x31F7 0x309A +0x12679 0x31FA +0x1267A 0x31FB +0x1267B 0x31FC +0x1267C 0x31FD +0x1267D 0x31FE +0x1267E 0x31FF +0x12721 0x0410 +0x12722 0x0411 +0x12723 0x0412 +0x12724 0x0413 +0x12725 0x0414 +0x12726 0x0415 +0x12727 0x0401 +0x12728 0x0416 +0x12729 0x0417 +0x1272A 0x0418 +0x1272B 0x0419 +0x1272C 0x041A +0x1272D 0x041B +0x1272E 0x041C +0x1272F 0x041D +0x12730 0x041E +0x12731 0x041F +0x12732 0x0420 +0x12733 0x0421 +0x12734 0x0422 +0x12735 0x0423 +0x12736 0x0424 +0x12737 0x0425 +0x12738 0x0426 +0x12739 0x0427 +0x1273A 0x0428 +0x1273B 0x0429 +0x1273C 0x042A +0x1273D 0x042B +0x1273E 0x042C +0x1273F 0x042D +0x12740 0x042E +0x12741 0x042F +0x12742 0x23BE +0x12743 0x23BF +0x12744 0x23C0 +0x12745 0x23C1 +0x12746 0x23C2 +0x12747 0x23C3 +0x12748 0x23C4 +0x12749 0x23C5 +0x1274A 0x23C6 +0x1274B 0x23C7 +0x1274C 0x23C8 +0x1274D 0x23C9 +0x1274E 0x23CA +0x1274F 0x23CB +0x12750 0x23CC +0x12751 0x0430 +0x12752 0x0431 +0x12753 0x0432 +0x12754 0x0433 +0x12755 0x0434 +0x12756 0x0435 +0x12757 0x0451 +0x12758 0x0436 +0x12759 0x0437 +0x1275A 0x0438 +0x1275B 0x0439 +0x1275C 0x043A +0x1275D 0x043B +0x1275E 0x043C +0x1275F 0x043D +0x12760 0x043E +0x12761 0x043F +0x12762 0x0440 +0x12763 0x0441 +0x12764 0x0442 +0x12765 0x0443 +0x12766 0x0444 +0x12767 0x0445 +0x12768 0x0446 +0x12769 0x0447 +0x1276A 0x0448 +0x1276B 0x0449 +0x1276C 0x044A +0x1276D 0x044B +0x1276E 0x044C +0x1276F 0x044D +0x12770 0x044E +0x12771 0x044F +0x12772 0x30F7 +0x12773 0x30F8 +0x12774 0x30F9 +0x12775 0x30FA +0x12776 0x22DA +0x12777 0x22DB +0x12778 0x2153 +0x12779 0x2154 +0x1277A 0x2155 +0x1277B 0x2713 +0x1277C 0x2318 +0x1277D 0x2423 +0x1277E 0x23CE +0x12821 0x2500 +0x12822 0x2502 +0x12823 0x250C +0x12824 0x2510 +0x12825 0x2518 +0x12826 0x2514 +0x12827 0x251C +0x12828 0x252C +0x12829 0x2524 +0x1282A 0x2534 +0x1282B 0x253C +0x1282C 0x2501 +0x1282D 0x2503 +0x1282E 0x250F +0x1282F 0x2513 +0x12830 0x251B +0x12831 0x2517 +0x12832 0x2523 +0x12833 0x2533 +0x12834 0x252B +0x12835 0x253B +0x12836 0x254B +0x12837 0x2520 +0x12838 0x252F +0x12839 0x2528 +0x1283A 0x2537 +0x1283B 0x253F +0x1283C 0x251D +0x1283D 0x2530 +0x1283E 0x2525 +0x1283F 0x2538 +0x12840 0x2542 +0x12841 0x3251 +0x12842 0x3252 +0x12843 0x3253 +0x12844 0x3254 +0x12845 0x3255 +0x12846 0x3256 +0x12847 0x3257 +0x12848 0x3258 +0x12849 0x3259 +0x1284A 0x325A +0x1284B 0x325B +0x1284C 0x325C +0x1284D 0x325D +0x1284E 0x325E +0x1284F 0x325F +0x12850 0x32B1 +0x12851 0x32B2 +0x12852 0x32B3 +0x12853 0x32B4 +0x12854 0x32B5 +0x12855 0x32B6 +0x12856 0x32B7 +0x12857 0x32B8 +0x12858 0x32B9 +0x12859 0x32BA +0x1285A 0x32BB +0x1285B 0x32BC +0x1285C 0x32BD +0x1285D 0x32BE +0x1285E 0x32BF +0x12867 0x25D0 +0x12868 0x25D1 +0x12869 0x25D2 +0x1286A 0x25D3 +0x1286B 0x203C +0x1286C 0x2047 +0x1286D 0x2048 +0x1286E 0x2049 +0x1286F 0x01CD +0x12870 0x01CE +0x12871 0x01D0 +0x12872 0x1E3E +0x12873 0x1E3F +0x12874 0x01F8 +0x12875 0x01F9 +0x12876 0x01D1 +0x12877 0x01D2 +0x12878 0x01D4 +0x12879 0x01D6 +0x1287A 0x01D8 +0x1287B 0x01DA +0x1287C 0x01DC +0x12921 0x20AC +0x12922 0x00A0 +0x12923 0x00A1 +0x12924 0x00A4 +0x12925 0x00A6 +0x12926 0x00A9 +0x12927 0x00AA +0x12928 0x00AB +0x12929 0x00AD +0x1292A 0x00AE +0x1292B 0x00AF +0x1292C 0x00B2 +0x1292D 0x00B3 +0x1292E 0x00B7 +0x1292F 0x00B8 +0x12930 0x00B9 +0x12931 0x00BA +0x12932 0x00BB +0x12933 0x00BC +0x12934 0x00BD +0x12935 0x00BE +0x12936 0x00BF +0x12937 0x00C0 +0x12938 0x00C1 +0x12939 0x00C2 +0x1293A 0x00C3 +0x1293B 0x00C4 +0x1293C 0x00C5 +0x1293D 0x00C6 +0x1293E 0x00C7 +0x1293F 0x00C8 +0x12940 0x00C9 +0x12941 0x00CA +0x12942 0x00CB +0x12943 0x00CC +0x12944 0x00CD +0x12945 0x00CE +0x12946 0x00CF +0x12947 0x00D0 +0x12948 0x00D1 +0x12949 0x00D2 +0x1294A 0x00D3 +0x1294B 0x00D4 +0x1294C 0x00D5 +0x1294D 0x00D6 +0x1294E 0x00D8 +0x1294F 0x00D9 +0x12950 0x00DA +0x12951 0x00DB +0x12952 0x00DC +0x12953 0x00DD +0x12954 0x00DE +0x12955 0x00DF +0x12956 0x00E0 +0x12957 0x00E1 +0x12958 0x00E2 +0x12959 0x00E3 +0x1295A 0x00E4 +0x1295B 0x00E5 +0x1295C 0x00E6 +0x1295D 0x00E7 +0x1295E 0x00E8 +0x1295F 0x00E9 +0x12960 0x00EA +0x12961 0x00EB +0x12962 0x00EC +0x12963 0x00ED +0x12964 0x00EE +0x12965 0x00EF +0x12966 0x00F0 +0x12967 0x00F1 +0x12968 0x00F2 +0x12969 0x00F3 +0x1296A 0x00F4 +0x1296B 0x00F5 +0x1296C 0x00F6 +0x1296D 0x00F8 +0x1296E 0x00F9 +0x1296F 0x00FA +0x12970 0x00FB +0x12971 0x00FC +0x12972 0x00FD +0x12973 0x00FE +0x12974 0x00FF +0x12975 0x0100 +0x12976 0x012A +0x12977 0x016A +0x12978 0x0112 +0x12979 0x014C +0x1297A 0x0101 +0x1297B 0x012B +0x1297C 0x016B +0x1297D 0x0113 +0x1297E 0x014D +0x12A21 0x0104 +0x12A22 0x02D8 +0x12A23 0x0141 +0x12A24 0x013D +0x12A25 0x015A +0x12A26 0x0160 +0x12A27 0x015E +0x12A28 0x0164 +0x12A29 0x0179 +0x12A2A 0x017D +0x12A2B 0x017B +0x12A2C 0x0105 +0x12A2D 0x02DB +0x12A2E 0x0142 +0x12A2F 0x013E +0x12A30 0x015B +0x12A31 0x02C7 +0x12A32 0x0161 +0x12A33 0x015F +0x12A34 0x0165 +0x12A35 0x017A +0x12A36 0x02DD +0x12A37 0x017E +0x12A38 0x017C +0x12A39 0x0154 +0x12A3A 0x0102 +0x12A3B 0x0139 +0x12A3C 0x0106 +0x12A3D 0x010C +0x12A3E 0x0118 +0x12A3F 0x011A +0x12A40 0x010E +0x12A41 0x0143 +0x12A42 0x0147 +0x12A43 0x0150 +0x12A44 0x0158 +0x12A45 0x016E +0x12A46 0x0170 +0x12A47 0x0162 +0x12A48 0x0155 +0x12A49 0x0103 +0x12A4A 0x013A +0x12A4B 0x0107 +0x12A4C 0x010D +0x12A4D 0x0119 +0x12A4E 0x011B +0x12A4F 0x010F +0x12A50 0x0111 +0x12A51 0x0144 +0x12A52 0x0148 +0x12A53 0x0151 +0x12A54 0x0159 +0x12A55 0x016F +0x12A56 0x0171 +0x12A57 0x0163 +0x12A58 0x02D9 +0x12A59 0x0108 +0x12A5A 0x011C +0x12A5B 0x0124 +0x12A5C 0x0134 +0x12A5D 0x015C +0x12A5E 0x016C +0x12A5F 0x0109 +0x12A60 0x011D +0x12A61 0x0125 +0x12A62 0x0135 +0x12A63 0x015D +0x12A64 0x016D +0x12A65 0x0271 +0x12A66 0x028B +0x12A67 0x027E +0x12A68 0x0283 +0x12A69 0x0292 +0x12A6A 0x026C +0x12A6B 0x026E +0x12A6C 0x0279 +0x12A6D 0x0288 +0x12A6E 0x0256 +0x12A6F 0x0273 +0x12A70 0x027D +0x12A71 0x0282 +0x12A72 0x0290 +0x12A73 0x027B +0x12A74 0x026D +0x12A75 0x025F +0x12A76 0x0272 +0x12A77 0x029D +0x12A78 0x028E +0x12A79 0x0261 +0x12A7A 0x014B +0x12A7B 0x0270 +0x12A7C 0x0281 +0x12A7D 0x0127 +0x12A7E 0x0295 +0x12B21 0x0294 +0x12B22 0x0266 +0x12B23 0x0298 +0x12B24 0x01C2 +0x12B25 0x0253 +0x12B26 0x0257 +0x12B27 0x0284 +0x12B28 0x0260 +0x12B29 0x0193 +0x12B2A 0x0153 +0x12B2B 0x0152 +0x12B2C 0x0268 +0x12B2D 0x0289 +0x12B2E 0x0258 +0x12B2F 0x0275 +0x12B30 0x0259 +0x12B31 0x025C +0x12B32 0x025E +0x12B33 0x0250 +0x12B34 0x026F +0x12B35 0x028A +0x12B36 0x0264 +0x12B37 0x028C +0x12B38 0x0254 +0x12B39 0x0251 +0x12B3A 0x0252 +0x12B3B 0x028D +0x12B3C 0x0265 +0x12B3D 0x02A2 +0x12B3E 0x02A1 +0x12B3F 0x0255 +0x12B40 0x0291 +0x12B41 0x027A +0x12B42 0x0267 +0x12B43 0x025A +0x12B44 0x00E6 0x0300 +0x12B45 0x01FD +0x12B46 0x1F70 +0x12B47 0x1F71 +0x12B48 0x0254 0x0300 +0x12B49 0x0254 0x0301 +0x12B4A 0x028C 0x0300 +0x12B4B 0x028C 0x0301 +0x12B4C 0x0259 0x0300 +0x12B4D 0x0259 0x0301 +0x12B4E 0x025A 0x0300 +0x12B4F 0x025A 0x0301 +0x12B50 0x1F72 +0x12B51 0x1F73 +0x12B52 0x0361 +0x12B53 0x02C8 +0x12B54 0x02CC +0x12B55 0x02D0 +0x12B56 0x02D1 +0x12B57 0x0306 +0x12B58 0x203F +0x12B59 0x030B +0x12B5A 0x0301 +0x12B5B 0x0304 +0x12B5C 0x0300 +0x12B5D 0x030F +0x12B5E 0x030C +0x12B5F 0x0302 +0x12B60 0x02E5 +0x12B61 0x02E6 +0x12B62 0x02E7 +0x12B63 0x02E8 +0x12B64 0x02E9 +0x12B65 0x02E9 0x02E5 +0x12B66 0x02E5 0x02E9 +0x12B67 0x0325 +0x12B68 0x032C +0x12B69 0x0339 +0x12B6A 0x031C +0x12B6B 0x031F +0x12B6C 0x0320 +0x12B6D 0x0308 +0x12B6E 0x033D +0x12B6F 0x0329 +0x12B70 0x032F +0x12B71 0x02DE +0x12B72 0x0324 +0x12B73 0x0330 +0x12B74 0x033C +0x12B75 0x0334 +0x12B76 0x031D +0x12B77 0x031E +0x12B78 0x0318 +0x12B79 0x0319 +0x12B7A 0x032A +0x12B7B 0x033A +0x12B7C 0x033B +0x12B7D 0x0303 +0x12B7E 0x031A +0x12C21 0x2776 +0x12C22 0x2777 +0x12C23 0x2778 +0x12C24 0x2779 +0x12C25 0x277A +0x12C26 0x277B +0x12C27 0x277C +0x12C28 0x277D +0x12C29 0x277E +0x12C2A 0x277F +0x12C2B 0x24EB +0x12C2C 0x24EC +0x12C2D 0x24ED +0x12C2E 0x24EE +0x12C2F 0x24EF +0x12C30 0x24F0 +0x12C31 0x24F1 +0x12C32 0x24F2 +0x12C33 0x24F3 +0x12C34 0x24F4 +0x12C35 0x2170 +0x12C36 0x2171 +0x12C37 0x2172 +0x12C38 0x2173 +0x12C39 0x2174 +0x12C3A 0x2175 +0x12C3B 0x2176 +0x12C3C 0x2177 +0x12C3D 0x2178 +0x12C3E 0x2179 +0x12C3F 0x217A +0x12C40 0x217B +0x12C41 0x24D0 +0x12C42 0x24D1 +0x12C43 0x24D2 +0x12C44 0x24D3 +0x12C45 0x24D4 +0x12C46 0x24D5 +0x12C47 0x24D6 +0x12C48 0x24D7 +0x12C49 0x24D8 +0x12C4A 0x24D9 +0x12C4B 0x24DA +0x12C4C 0x24DB +0x12C4D 0x24DC +0x12C4E 0x24DD +0x12C4F 0x24DE +0x12C50 0x24DF +0x12C51 0x24E0 +0x12C52 0x24E1 +0x12C53 0x24E2 +0x12C54 0x24E3 +0x12C55 0x24E4 +0x12C56 0x24E5 +0x12C57 0x24E6 +0x12C58 0x24E7 +0x12C59 0x24E8 +0x12C5A 0x24E9 +0x12C5B 0x32D0 +0x12C5C 0x32D1 +0x12C5D 0x32D2 +0x12C5E 0x32D3 +0x12C5F 0x32D4 +0x12C60 0x32D5 +0x12C61 0x32D6 +0x12C62 0x32D7 +0x12C63 0x32D8 +0x12C64 0x32D9 +0x12C65 0x32DA +0x12C66 0x32DB +0x12C67 0x32DC +0x12C68 0x32DD +0x12C69 0x32DE +0x12C6A 0x32DF +0x12C6B 0x32E0 +0x12C6C 0x32E1 +0x12C6D 0x32E2 +0x12C6E 0x32E3 +0x12C6F 0x32FA +0x12C70 0x32E9 +0x12C71 0x32E5 +0x12C72 0x32ED +0x12C73 0x32EC +0x12C7D 0x2051 +0x12C7E 0x2042 +0x12D21 0x2460 +0x12D22 0x2461 +0x12D23 0x2462 +0x12D24 0x2463 +0x12D25 0x2464 +0x12D26 0x2465 +0x12D27 0x2466 +0x12D28 0x2467 +0x12D29 0x2468 +0x12D2A 0x2469 +0x12D2B 0x246A +0x12D2C 0x246B +0x12D2D 0x246C +0x12D2E 0x246D +0x12D2F 0x246E +0x12D30 0x246F +0x12D31 0x2470 +0x12D32 0x2471 +0x12D33 0x2472 +0x12D34 0x2473 +0x12D35 0x2160 +0x12D36 0x2161 +0x12D37 0x2162 +0x12D38 0x2163 +0x12D39 0x2164 +0x12D3A 0x2165 +0x12D3B 0x2166 +0x12D3C 0x2167 +0x12D3D 0x2168 +0x12D3E 0x2169 +0x12D3F 0x216A +0x12D40 0x3349 +0x12D41 0x3314 +0x12D42 0x3322 +0x12D43 0x334D +0x12D44 0x3318 +0x12D45 0x3327 +0x12D46 0x3303 +0x12D47 0x3336 +0x12D48 0x3351 +0x12D49 0x3357 +0x12D4A 0x330D +0x12D4B 0x3326 +0x12D4C 0x3323 +0x12D4D 0x332B +0x12D4E 0x334A +0x12D4F 0x333B +0x12D50 0x339C +0x12D51 0x339D +0x12D52 0x339E +0x12D53 0x338E +0x12D54 0x338F +0x12D55 0x33C4 +0x12D56 0x33A1 +0x12D57 0x216B +0x12D5F 0x337B +0x12D60 0x301D +0x12D61 0x301F +0x12D62 0x2116 +0x12D63 0x33CD +0x12D64 0x2121 +0x12D65 0x32A4 +0x12D66 0x32A5 +0x12D67 0x32A6 +0x12D68 0x32A7 +0x12D69 0x32A8 +0x12D6A 0x3231 +0x12D6B 0x3232 +0x12D6C 0x3239 +0x12D6D 0x337E +0x12D6E 0x337D +0x12D6F 0x337C +0x12D73 0x222E +0x12D78 0x221F +0x12D79 0x22BF +0x12D7D 0x2756 +0x12D7E 0x261E +0x12E21 0x4FF1 +0x12E22 0x2000B +0x12E23 0x3402 +0x12E24 0x4E28 +0x12E25 0x4E2F +0x12E26 0x4E30 +0x12E27 0x4E8D +0x12E28 0x4EE1 +0x12E29 0x4EFD +0x12E2A 0x4EFF +0x12E2B 0x4F03 +0x12E2C 0x4F0B +0x12E2D 0x4F60 +0x12E2E 0x4F48 +0x12E2F 0x4F49 +0x12E30 0x4F56 +0x12E31 0x4F5F +0x12E32 0x4F6A +0x12E33 0x4F6C +0x12E34 0x4F7E +0x12E35 0x4F8A +0x12E36 0x4F94 +0x12E37 0x4F97 +0x12E38 0xFA30 +0x12E39 0x4FC9 +0x12E3A 0x4FE0 +0x12E3B 0x5001 +0x12E3C 0x5002 +0x12E3D 0x500E +0x12E3E 0x5018 +0x12E3F 0x5027 +0x12E40 0x502E +0x12E41 0x5040 +0x12E42 0x503B +0x12E43 0x5041 +0x12E44 0x5094 +0x12E45 0x50CC +0x12E46 0x50F2 +0x12E47 0x50D0 +0x12E48 0x50E6 +0x12E49 0xFA31 +0x12E4A 0x5106 +0x12E4B 0x5103 +0x12E4C 0x510B +0x12E4D 0x511E +0x12E4E 0x5135 +0x12E4F 0x514A +0x12E50 0xFA32 +0x12E51 0x5155 +0x12E52 0x5157 +0x12E53 0x34B5 +0x12E54 0x519D +0x12E55 0x51C3 +0x12E56 0x51CA +0x12E57 0x51DE +0x12E58 0x51E2 +0x12E59 0x51EE +0x12E5A 0x5201 +0x12E5B 0x34DB +0x12E5C 0x5213 +0x12E5D 0x5215 +0x12E5E 0x5249 +0x12E5F 0x5257 +0x12E60 0x5261 +0x12E61 0x5293 +0x12E62 0x52C8 +0x12E63 0xFA33 +0x12E64 0x52CC +0x12E65 0x52D0 +0x12E66 0x52D6 +0x12E67 0x52DB +0x12E68 0xFA34 +0x12E69 0x52F0 +0x12E6A 0x52FB +0x12E6B 0x5300 +0x12E6C 0x5307 +0x12E6D 0x531C +0x12E6E 0xFA35 +0x12E6F 0x5361 +0x12E70 0x5363 +0x12E71 0x537D +0x12E72 0x5393 +0x12E73 0x539D +0x12E74 0x53B2 +0x12E75 0x5412 +0x12E76 0x5427 +0x12E77 0x544D +0x12E78 0x549C +0x12E79 0x546B +0x12E7A 0x5474 +0x12E7B 0x547F +0x12E7C 0x5488 +0x12E7D 0x5496 +0x12E7E 0x54A1 +0x12F21 0x54A9 +0x12F22 0x54C6 +0x12F23 0x54FF +0x12F24 0x550E +0x12F25 0x552B +0x12F26 0x5535 +0x12F27 0x5550 +0x12F28 0x555E +0x12F29 0x5581 +0x12F2A 0x5586 +0x12F2B 0x558E +0x12F2C 0xFA36 +0x12F2D 0x55AD +0x12F2E 0x55CE +0x12F2F 0xFA37 +0x12F30 0x5608 +0x12F31 0x560E +0x12F32 0x563B +0x12F33 0x5649 +0x12F34 0x5676 +0x12F35 0x5666 +0x12F36 0xFA38 +0x12F37 0x566F +0x12F38 0x5671 +0x12F39 0x5672 +0x12F3A 0x5699 +0x12F3B 0x569E +0x12F3C 0x56A9 +0x12F3D 0x56AC +0x12F3E 0x56B3 +0x12F3F 0x56C9 +0x12F40 0x56CA +0x12F41 0x570A +0x12F42 0x2123D +0x12F43 0x5721 +0x12F44 0x572F +0x12F45 0x5733 +0x12F46 0x5734 +0x12F47 0x5770 +0x12F48 0x5777 +0x12F49 0x577C +0x12F4A 0x579C +0x12F4B 0xFA0F +0x12F4C 0x2131B +0x12F4D 0x57B8 +0x12F4E 0x57C7 +0x12F4F 0x57C8 +0x12F50 0x57CF +0x12F51 0x57E4 +0x12F52 0x57ED +0x12F53 0x57F5 +0x12F54 0x57F6 +0x12F55 0x57FF +0x12F56 0x5809 +0x12F57 0xFA10 +0x12F58 0x5861 +0x12F59 0x5864 +0x12F5A 0xFA39 +0x12F5B 0x587C +0x12F5C 0x5889 +0x12F5D 0x589E +0x12F5E 0xFA3A +0x12F5F 0x58A9 +0x12F60 0x2146E +0x12F61 0x58D2 +0x12F62 0x58CE +0x12F63 0x58D4 +0x12F64 0x58DA +0x12F65 0x58E0 +0x12F66 0x58E9 +0x12F67 0x590C +0x12F68 0x8641 +0x12F69 0x595D +0x12F6A 0x596D +0x12F6B 0x598B +0x12F6C 0x5992 +0x12F6D 0x59A4 +0x12F6E 0x59C3 +0x12F6F 0x59D2 +0x12F70 0x59DD +0x12F71 0x5A13 +0x12F72 0x5A23 +0x12F73 0x5A67 +0x12F74 0x5A6D +0x12F75 0x5A77 +0x12F76 0x5A7E +0x12F77 0x5A84 +0x12F78 0x5A9E +0x12F79 0x5AA7 +0x12F7A 0x5AC4 +0x12F7B 0x218BD +0x12F7C 0x5B19 +0x12F7D 0x5B25 +0x12F7E 0x525D +0x13021 0x4E9C +0x13022 0x5516 +0x13023 0x5A03 +0x13024 0x963F +0x13025 0x54C0 +0x13026 0x611B +0x13027 0x6328 +0x13028 0x59F6 +0x13029 0x9022 +0x1302A 0x8475 +0x1302B 0x831C +0x1302C 0x7A50 +0x1302D 0x60AA +0x1302E 0x63E1 +0x1302F 0x6E25 +0x13030 0x65ED +0x13031 0x8466 +0x13032 0x82A6 +0x13033 0x9BF5 +0x13034 0x6893 +0x13035 0x5727 +0x13036 0x65A1 +0x13037 0x6271 +0x13038 0x5B9B +0x13039 0x59D0 +0x1303A 0x867B +0x1303B 0x98F4 +0x1303C 0x7D62 +0x1303D 0x7DBE +0x1303E 0x9B8E +0x1303F 0x6216 +0x13040 0x7C9F +0x13041 0x88B7 +0x13042 0x5B89 +0x13043 0x5EB5 +0x13044 0x6309 +0x13045 0x6697 +0x13046 0x6848 +0x13047 0x95C7 +0x13048 0x978D +0x13049 0x674F +0x1304A 0x4EE5 +0x1304B 0x4F0A +0x1304C 0x4F4D +0x1304D 0x4F9D +0x1304E 0x5049 +0x1304F 0x56F2 +0x13050 0x5937 +0x13051 0x59D4 +0x13052 0x5A01 +0x13053 0x5C09 +0x13054 0x60DF +0x13055 0x610F +0x13056 0x6170 +0x13057 0x6613 +0x13058 0x6905 +0x13059 0x70BA +0x1305A 0x754F +0x1305B 0x7570 +0x1305C 0x79FB +0x1305D 0x7DAD +0x1305E 0x7DEF +0x1305F 0x80C3 +0x13060 0x840E +0x13061 0x8863 +0x13062 0x8B02 +0x13063 0x9055 +0x13064 0x907A +0x13065 0x533B +0x13066 0x4E95 +0x13067 0x4EA5 +0x13068 0x57DF +0x13069 0x80B2 +0x1306A 0x90C1 +0x1306B 0x78EF +0x1306C 0x4E00 +0x1306D 0x58F1 +0x1306E 0x6EA2 +0x1306F 0x9038 +0x13070 0x7A32 +0x13071 0x8328 +0x13072 0x828B +0x13073 0x9C2F +0x13074 0x5141 +0x13075 0x5370 +0x13076 0x54BD +0x13077 0x54E1 +0x13078 0x56E0 +0x13079 0x59FB +0x1307A 0x5F15 +0x1307B 0x98F2 +0x1307C 0x6DEB +0x1307D 0x80E4 +0x1307E 0x852D +0x13121 0x9662 +0x13122 0x9670 +0x13123 0x96A0 +0x13124 0x97FB +0x13125 0x540B +0x13126 0x53F3 +0x13127 0x5B87 +0x13128 0x70CF +0x13129 0x7FBD +0x1312A 0x8FC2 +0x1312B 0x96E8 +0x1312C 0x536F +0x1312D 0x9D5C +0x1312E 0x7ABA +0x1312F 0x4E11 +0x13130 0x7893 +0x13131 0x81FC +0x13132 0x6E26 +0x13133 0x5618 +0x13134 0x5504 +0x13135 0x6B1D +0x13136 0x851A +0x13137 0x9C3B +0x13138 0x59E5 +0x13139 0x53A9 +0x1313A 0x6D66 +0x1313B 0x74DC +0x1313C 0x958F +0x1313D 0x5642 +0x1313E 0x4E91 +0x1313F 0x904B +0x13140 0x96F2 +0x13141 0x834F +0x13142 0x990C +0x13143 0x53E1 +0x13144 0x55B6 +0x13145 0x5B30 +0x13146 0x5F71 +0x13147 0x6620 +0x13148 0x66F3 +0x13149 0x6804 +0x1314A 0x6C38 +0x1314B 0x6CF3 +0x1314C 0x6D29 +0x1314D 0x745B +0x1314E 0x76C8 +0x1314F 0x7A4E +0x13150 0x9834 +0x13151 0x82F1 +0x13152 0x885B +0x13153 0x8A60 +0x13154 0x92ED +0x13155 0x6DB2 +0x13156 0x75AB +0x13157 0x76CA +0x13158 0x99C5 +0x13159 0x60A6 +0x1315A 0x8B01 +0x1315B 0x8D8A +0x1315C 0x95B2 +0x1315D 0x698E +0x1315E 0x53AD +0x1315F 0x5186 +0x13160 0x5712 +0x13161 0x5830 +0x13162 0x5944 +0x13163 0x5BB4 +0x13164 0x5EF6 +0x13165 0x6028 +0x13166 0x63A9 +0x13167 0x63F4 +0x13168 0x6CBF +0x13169 0x6F14 +0x1316A 0x708E +0x1316B 0x7114 +0x1316C 0x7159 +0x1316D 0x71D5 +0x1316E 0x733F +0x1316F 0x7E01 +0x13170 0x8276 +0x13171 0x82D1 +0x13172 0x8597 +0x13173 0x9060 +0x13174 0x925B +0x13175 0x9D1B +0x13176 0x5869 +0x13177 0x65BC +0x13178 0x6C5A +0x13179 0x7525 +0x1317A 0x51F9 +0x1317B 0x592E +0x1317C 0x5965 +0x1317D 0x5F80 +0x1317E 0x5FDC +0x13221 0x62BC +0x13222 0x65FA +0x13223 0x6A2A +0x13224 0x6B27 +0x13225 0x6BB4 +0x13226 0x738B +0x13227 0x7FC1 +0x13228 0x8956 +0x13229 0x9D2C +0x1322A 0x9D0E +0x1322B 0x9EC4 +0x1322C 0x5CA1 +0x1322D 0x6C96 +0x1322E 0x837B +0x1322F 0x5104 +0x13230 0x5C4B +0x13231 0x61B6 +0x13232 0x81C6 +0x13233 0x6876 +0x13234 0x7261 +0x13235 0x4E59 +0x13236 0x4FFA +0x13237 0x5378 +0x13238 0x6069 +0x13239 0x6E29 +0x1323A 0x7A4F +0x1323B 0x97F3 +0x1323C 0x4E0B +0x1323D 0x5316 +0x1323E 0x4EEE +0x1323F 0x4F55 +0x13240 0x4F3D +0x13241 0x4FA1 +0x13242 0x4F73 +0x13243 0x52A0 +0x13244 0x53EF +0x13245 0x5609 +0x13246 0x590F +0x13247 0x5AC1 +0x13248 0x5BB6 +0x13249 0x5BE1 +0x1324A 0x79D1 +0x1324B 0x6687 +0x1324C 0x679C +0x1324D 0x67B6 +0x1324E 0x6B4C +0x1324F 0x6CB3 +0x13250 0x706B +0x13251 0x73C2 +0x13252 0x798D +0x13253 0x79BE +0x13254 0x7A3C +0x13255 0x7B87 +0x13256 0x82B1 +0x13257 0x82DB +0x13258 0x8304 +0x13259 0x8377 +0x1325A 0x83EF +0x1325B 0x83D3 +0x1325C 0x8766 +0x1325D 0x8AB2 +0x1325E 0x5629 +0x1325F 0x8CA8 +0x13260 0x8FE6 +0x13261 0x904E +0x13262 0x971E +0x13263 0x868A +0x13264 0x4FC4 +0x13265 0x5CE8 +0x13266 0x6211 +0x13267 0x7259 +0x13268 0x753B +0x13269 0x81E5 +0x1326A 0x82BD +0x1326B 0x86FE +0x1326C 0x8CC0 +0x1326D 0x96C5 +0x1326E 0x9913 +0x1326F 0x99D5 +0x13270 0x4ECB +0x13271 0x4F1A +0x13272 0x89E3 +0x13273 0x56DE +0x13274 0x584A +0x13275 0x58CA +0x13276 0x5EFB +0x13277 0x5FEB +0x13278 0x602A +0x13279 0x6094 +0x1327A 0x6062 +0x1327B 0x61D0 +0x1327C 0x6212 +0x1327D 0x62D0 +0x1327E 0x6539 +0x13321 0x9B41 +0x13322 0x6666 +0x13323 0x68B0 +0x13324 0x6D77 +0x13325 0x7070 +0x13326 0x754C +0x13327 0x7686 +0x13328 0x7D75 +0x13329 0x82A5 +0x1332A 0x87F9 +0x1332B 0x958B +0x1332C 0x968E +0x1332D 0x8C9D +0x1332E 0x51F1 +0x1332F 0x52BE +0x13330 0x5916 +0x13331 0x54B3 +0x13332 0x5BB3 +0x13333 0x5D16 +0x13334 0x6168 +0x13335 0x6982 +0x13336 0x6DAF +0x13337 0x788D +0x13338 0x84CB +0x13339 0x8857 +0x1333A 0x8A72 +0x1333B 0x93A7 +0x1333C 0x9AB8 +0x1333D 0x6D6C +0x1333E 0x99A8 +0x1333F 0x86D9 +0x13340 0x57A3 +0x13341 0x67FF +0x13342 0x86CE +0x13343 0x920E +0x13344 0x5283 +0x13345 0x5687 +0x13346 0x5404 +0x13347 0x5ED3 +0x13348 0x62E1 +0x13349 0x64B9 +0x1334A 0x683C +0x1334B 0x6838 +0x1334C 0x6BBB +0x1334D 0x7372 +0x1334E 0x78BA +0x1334F 0x7A6B +0x13350 0x899A +0x13351 0x89D2 +0x13352 0x8D6B +0x13353 0x8F03 +0x13354 0x90ED +0x13355 0x95A3 +0x13356 0x9694 +0x13357 0x9769 +0x13358 0x5B66 +0x13359 0x5CB3 +0x1335A 0x697D +0x1335B 0x984D +0x1335C 0x984E +0x1335D 0x639B +0x1335E 0x7B20 +0x1335F 0x6A2B +0x13360 0x6A7F +0x13361 0x68B6 +0x13362 0x9C0D +0x13363 0x6F5F +0x13364 0x5272 +0x13365 0x559D +0x13366 0x6070 +0x13367 0x62EC +0x13368 0x6D3B +0x13369 0x6E07 +0x1336A 0x6ED1 +0x1336B 0x845B +0x1336C 0x8910 +0x1336D 0x8F44 +0x1336E 0x4E14 +0x1336F 0x9C39 +0x13370 0x53F6 +0x13371 0x691B +0x13372 0x6A3A +0x13373 0x9784 +0x13374 0x682A +0x13375 0x515C +0x13376 0x7AC3 +0x13377 0x84B2 +0x13378 0x91DC +0x13379 0x938C +0x1337A 0x565B +0x1337B 0x9D28 +0x1337C 0x6822 +0x1337D 0x8305 +0x1337E 0x8431 +0x13421 0x7CA5 +0x13422 0x5208 +0x13423 0x82C5 +0x13424 0x74E6 +0x13425 0x4E7E +0x13426 0x4F83 +0x13427 0x51A0 +0x13428 0x5BD2 +0x13429 0x520A +0x1342A 0x52D8 +0x1342B 0x52E7 +0x1342C 0x5DFB +0x1342D 0x559A +0x1342E 0x582A +0x1342F 0x59E6 +0x13430 0x5B8C +0x13431 0x5B98 +0x13432 0x5BDB +0x13433 0x5E72 +0x13434 0x5E79 +0x13435 0x60A3 +0x13436 0x611F +0x13437 0x6163 +0x13438 0x61BE +0x13439 0x63DB +0x1343A 0x6562 +0x1343B 0x67D1 +0x1343C 0x6853 +0x1343D 0x68FA +0x1343E 0x6B3E +0x1343F 0x6B53 +0x13440 0x6C57 +0x13441 0x6F22 +0x13442 0x6F97 +0x13443 0x6F45 +0x13444 0x74B0 +0x13445 0x7518 +0x13446 0x76E3 +0x13447 0x770B +0x13448 0x7AFF +0x13449 0x7BA1 +0x1344A 0x7C21 +0x1344B 0x7DE9 +0x1344C 0x7F36 +0x1344D 0x7FF0 +0x1344E 0x809D +0x1344F 0x8266 +0x13450 0x839E +0x13451 0x89B3 +0x13452 0x8ACC +0x13453 0x8CAB +0x13454 0x9084 +0x13455 0x9451 +0x13456 0x9593 +0x13457 0x9591 +0x13458 0x95A2 +0x13459 0x9665 +0x1345A 0x97D3 +0x1345B 0x9928 +0x1345C 0x8218 +0x1345D 0x4E38 +0x1345E 0x542B +0x1345F 0x5CB8 +0x13460 0x5DCC +0x13461 0x73A9 +0x13462 0x764C +0x13463 0x773C +0x13464 0x5CA9 +0x13465 0x7FEB +0x13466 0x8D0B +0x13467 0x96C1 +0x13468 0x9811 +0x13469 0x9854 +0x1346A 0x9858 +0x1346B 0x4F01 +0x1346C 0x4F0E +0x1346D 0x5371 +0x1346E 0x559C +0x1346F 0x5668 +0x13470 0x57FA +0x13471 0x5947 +0x13472 0x5B09 +0x13473 0x5BC4 +0x13474 0x5C90 +0x13475 0x5E0C +0x13476 0x5E7E +0x13477 0x5FCC +0x13478 0x63EE +0x13479 0x673A +0x1347A 0x65D7 +0x1347B 0x65E2 +0x1347C 0x671F +0x1347D 0x68CB +0x1347E 0x68C4 +0x13521 0x6A5F +0x13522 0x5E30 +0x13523 0x6BC5 +0x13524 0x6C17 +0x13525 0x6C7D +0x13526 0x757F +0x13527 0x7948 +0x13528 0x5B63 +0x13529 0x7A00 +0x1352A 0x7D00 +0x1352B 0x5FBD +0x1352C 0x898F +0x1352D 0x8A18 +0x1352E 0x8CB4 +0x1352F 0x8D77 +0x13530 0x8ECC +0x13531 0x8F1D +0x13532 0x98E2 +0x13533 0x9A0E +0x13534 0x9B3C +0x13535 0x4E80 +0x13536 0x507D +0x13537 0x5100 +0x13538 0x5993 +0x13539 0x5B9C +0x1353A 0x622F +0x1353B 0x6280 +0x1353C 0x64EC +0x1353D 0x6B3A +0x1353E 0x72A0 +0x1353F 0x7591 +0x13540 0x7947 +0x13541 0x7FA9 +0x13542 0x87FB +0x13543 0x8ABC +0x13544 0x8B70 +0x13545 0x63AC +0x13546 0x83CA +0x13547 0x97A0 +0x13548 0x5409 +0x13549 0x5403 +0x1354A 0x55AB +0x1354B 0x6854 +0x1354C 0x6A58 +0x1354D 0x8A70 +0x1354E 0x7827 +0x1354F 0x6775 +0x13550 0x9ECD +0x13551 0x5374 +0x13552 0x5BA2 +0x13553 0x811A +0x13554 0x8650 +0x13555 0x9006 +0x13556 0x4E18 +0x13557 0x4E45 +0x13558 0x4EC7 +0x13559 0x4F11 +0x1355A 0x53CA +0x1355B 0x5438 +0x1355C 0x5BAE +0x1355D 0x5F13 +0x1355E 0x6025 +0x1355F 0x6551 +0x13560 0x673D +0x13561 0x6C42 +0x13562 0x6C72 +0x13563 0x6CE3 +0x13564 0x7078 +0x13565 0x7403 +0x13566 0x7A76 +0x13567 0x7AAE +0x13568 0x7B08 +0x13569 0x7D1A +0x1356A 0x7CFE +0x1356B 0x7D66 +0x1356C 0x65E7 +0x1356D 0x725B +0x1356E 0x53BB +0x1356F 0x5C45 +0x13570 0x5DE8 +0x13571 0x62D2 +0x13572 0x62E0 +0x13573 0x6319 +0x13574 0x6E20 +0x13575 0x865A +0x13576 0x8A31 +0x13577 0x8DDD +0x13578 0x92F8 +0x13579 0x6F01 +0x1357A 0x79A6 +0x1357B 0x9B5A +0x1357C 0x4EA8 +0x1357D 0x4EAB +0x1357E 0x4EAC +0x13621 0x4F9B +0x13622 0x4FA0 +0x13623 0x50D1 +0x13624 0x5147 +0x13625 0x7AF6 +0x13626 0x5171 +0x13627 0x51F6 +0x13628 0x5354 +0x13629 0x5321 +0x1362A 0x537F +0x1362B 0x53EB +0x1362C 0x55AC +0x1362D 0x5883 +0x1362E 0x5CE1 +0x1362F 0x5F37 +0x13630 0x5F4A +0x13631 0x602F +0x13632 0x6050 +0x13633 0x606D +0x13634 0x631F +0x13635 0x6559 +0x13636 0x6A4B +0x13637 0x6CC1 +0x13638 0x72C2 +0x13639 0x72ED +0x1363A 0x77EF +0x1363B 0x80F8 +0x1363C 0x8105 +0x1363D 0x8208 +0x1363E 0x854E +0x1363F 0x90F7 +0x13640 0x93E1 +0x13641 0x97FF +0x13642 0x9957 +0x13643 0x9A5A +0x13644 0x4EF0 +0x13645 0x51DD +0x13646 0x5C2D +0x13647 0x6681 +0x13648 0x696D +0x13649 0x5C40 +0x1364A 0x66F2 +0x1364B 0x6975 +0x1364C 0x7389 +0x1364D 0x6850 +0x1364E 0x7C81 +0x1364F 0x50C5 +0x13650 0x52E4 +0x13651 0x5747 +0x13652 0x5DFE +0x13653 0x9326 +0x13654 0x65A4 +0x13655 0x6B23 +0x13656 0x6B3D +0x13657 0x7434 +0x13658 0x7981 +0x13659 0x79BD +0x1365A 0x7B4B +0x1365B 0x7DCA +0x1365C 0x82B9 +0x1365D 0x83CC +0x1365E 0x887F +0x1365F 0x895F +0x13660 0x8B39 +0x13661 0x8FD1 +0x13662 0x91D1 +0x13663 0x541F +0x13664 0x9280 +0x13665 0x4E5D +0x13666 0x5036 +0x13667 0x53E5 +0x13668 0x533A +0x13669 0x72D7 +0x1366A 0x7396 +0x1366B 0x77E9 +0x1366C 0x82E6 +0x1366D 0x8EAF +0x1366E 0x99C6 +0x1366F 0x99C8 +0x13670 0x99D2 +0x13671 0x5177 +0x13672 0x611A +0x13673 0x865E +0x13674 0x55B0 +0x13675 0x7A7A +0x13676 0x5076 +0x13677 0x5BD3 +0x13678 0x9047 +0x13679 0x9685 +0x1367A 0x4E32 +0x1367B 0x6ADB +0x1367C 0x91E7 +0x1367D 0x5C51 +0x1367E 0x5C48 +0x13721 0x6398 +0x13722 0x7A9F +0x13723 0x6C93 +0x13724 0x9774 +0x13725 0x8F61 +0x13726 0x7AAA +0x13727 0x718A +0x13728 0x9688 +0x13729 0x7C82 +0x1372A 0x6817 +0x1372B 0x7E70 +0x1372C 0x6851 +0x1372D 0x936C +0x1372E 0x52F2 +0x1372F 0x541B +0x13730 0x85AB +0x13731 0x8A13 +0x13732 0x7FA4 +0x13733 0x8ECD +0x13734 0x90E1 +0x13735 0x5366 +0x13736 0x8888 +0x13737 0x7941 +0x13738 0x4FC2 +0x13739 0x50BE +0x1373A 0x5211 +0x1373B 0x5144 +0x1373C 0x5553 +0x1373D 0x572D +0x1373E 0x73EA +0x1373F 0x578B +0x13740 0x5951 +0x13741 0x5F62 +0x13742 0x5F84 +0x13743 0x6075 +0x13744 0x6176 +0x13745 0x6167 +0x13746 0x61A9 +0x13747 0x63B2 +0x13748 0x643A +0x13749 0x656C +0x1374A 0x666F +0x1374B 0x6842 +0x1374C 0x6E13 +0x1374D 0x7566 +0x1374E 0x7A3D +0x1374F 0x7CFB +0x13750 0x7D4C +0x13751 0x7D99 +0x13752 0x7E4B +0x13753 0x7F6B +0x13754 0x830E +0x13755 0x834A +0x13756 0x86CD +0x13757 0x8A08 +0x13758 0x8A63 +0x13759 0x8B66 +0x1375A 0x8EFD +0x1375B 0x981A +0x1375C 0x9D8F +0x1375D 0x82B8 +0x1375E 0x8FCE +0x1375F 0x9BE8 +0x13760 0x5287 +0x13761 0x621F +0x13762 0x6483 +0x13763 0x6FC0 +0x13764 0x9699 +0x13765 0x6841 +0x13766 0x5091 +0x13767 0x6B20 +0x13768 0x6C7A +0x13769 0x6F54 +0x1376A 0x7A74 +0x1376B 0x7D50 +0x1376C 0x8840 +0x1376D 0x8A23 +0x1376E 0x6708 +0x1376F 0x4EF6 +0x13770 0x5039 +0x13771 0x5026 +0x13772 0x5065 +0x13773 0x517C +0x13774 0x5238 +0x13775 0x5263 +0x13776 0x55A7 +0x13777 0x570F +0x13778 0x5805 +0x13779 0x5ACC +0x1377A 0x5EFA +0x1377B 0x61B2 +0x1377C 0x61F8 +0x1377D 0x62F3 +0x1377E 0x6372 +0x13821 0x691C +0x13822 0x6A29 +0x13823 0x727D +0x13824 0x72AC +0x13825 0x732E +0x13826 0x7814 +0x13827 0x786F +0x13828 0x7D79 +0x13829 0x770C +0x1382A 0x80A9 +0x1382B 0x898B +0x1382C 0x8B19 +0x1382D 0x8CE2 +0x1382E 0x8ED2 +0x1382F 0x9063 +0x13830 0x9375 +0x13831 0x967A +0x13832 0x9855 +0x13833 0x9A13 +0x13834 0x9E78 +0x13835 0x5143 +0x13836 0x539F +0x13837 0x53B3 +0x13838 0x5E7B +0x13839 0x5F26 +0x1383A 0x6E1B +0x1383B 0x6E90 +0x1383C 0x7384 +0x1383D 0x73FE +0x1383E 0x7D43 +0x1383F 0x8237 +0x13840 0x8A00 +0x13841 0x8AFA +0x13842 0x9650 +0x13843 0x4E4E +0x13844 0x500B +0x13845 0x53E4 +0x13846 0x547C +0x13847 0x56FA +0x13848 0x59D1 +0x13849 0x5B64 +0x1384A 0x5DF1 +0x1384B 0x5EAB +0x1384C 0x5F27 +0x1384D 0x6238 +0x1384E 0x6545 +0x1384F 0x67AF +0x13850 0x6E56 +0x13851 0x72D0 +0x13852 0x7CCA +0x13853 0x88B4 +0x13854 0x80A1 +0x13855 0x80E1 +0x13856 0x83F0 +0x13857 0x864E +0x13858 0x8A87 +0x13859 0x8DE8 +0x1385A 0x9237 +0x1385B 0x96C7 +0x1385C 0x9867 +0x1385D 0x9F13 +0x1385E 0x4E94 +0x1385F 0x4E92 +0x13860 0x4F0D +0x13861 0x5348 +0x13862 0x5449 +0x13863 0x543E +0x13864 0x5A2F +0x13865 0x5F8C +0x13866 0x5FA1 +0x13867 0x609F +0x13868 0x68A7 +0x13869 0x6A8E +0x1386A 0x745A +0x1386B 0x7881 +0x1386C 0x8A9E +0x1386D 0x8AA4 +0x1386E 0x8B77 +0x1386F 0x9190 +0x13870 0x4E5E +0x13871 0x9BC9 +0x13872 0x4EA4 +0x13873 0x4F7C +0x13874 0x4FAF +0x13875 0x5019 +0x13876 0x5016 +0x13877 0x5149 +0x13878 0x516C +0x13879 0x529F +0x1387A 0x52B9 +0x1387B 0x52FE +0x1387C 0x539A +0x1387D 0x53E3 +0x1387E 0x5411 +0x13921 0x540E +0x13922 0x5589 +0x13923 0x5751 +0x13924 0x57A2 +0x13925 0x597D +0x13926 0x5B54 +0x13927 0x5B5D +0x13928 0x5B8F +0x13929 0x5DE5 +0x1392A 0x5DE7 +0x1392B 0x5DF7 +0x1392C 0x5E78 +0x1392D 0x5E83 +0x1392E 0x5E9A +0x1392F 0x5EB7 +0x13930 0x5F18 +0x13931 0x6052 +0x13932 0x614C +0x13933 0x6297 +0x13934 0x62D8 +0x13935 0x63A7 +0x13936 0x653B +0x13937 0x6602 +0x13938 0x6643 +0x13939 0x66F4 +0x1393A 0x676D +0x1393B 0x6821 +0x1393C 0x6897 +0x1393D 0x69CB +0x1393E 0x6C5F +0x1393F 0x6D2A +0x13940 0x6D69 +0x13941 0x6E2F +0x13942 0x6E9D +0x13943 0x7532 +0x13944 0x7687 +0x13945 0x786C +0x13946 0x7A3F +0x13947 0x7CE0 +0x13948 0x7D05 +0x13949 0x7D18 +0x1394A 0x7D5E +0x1394B 0x7DB1 +0x1394C 0x8015 +0x1394D 0x8003 +0x1394E 0x80AF +0x1394F 0x80B1 +0x13950 0x8154 +0x13951 0x818F +0x13952 0x822A +0x13953 0x8352 +0x13954 0x884C +0x13955 0x8861 +0x13956 0x8B1B +0x13957 0x8CA2 +0x13958 0x8CFC +0x13959 0x90CA +0x1395A 0x9175 +0x1395B 0x9271 +0x1395C 0x783F +0x1395D 0x92FC +0x1395E 0x95A4 +0x1395F 0x964D +0x13960 0x9805 +0x13961 0x9999 +0x13962 0x9AD8 +0x13963 0x9D3B +0x13964 0x525B +0x13965 0x52AB +0x13966 0x53F7 +0x13967 0x5408 +0x13968 0x58D5 +0x13969 0x62F7 +0x1396A 0x6FE0 +0x1396B 0x8C6A +0x1396C 0x8F5F +0x1396D 0x9EB9 +0x1396E 0x514B +0x1396F 0x523B +0x13970 0x544A +0x13971 0x56FD +0x13972 0x7A40 +0x13973 0x9177 +0x13974 0x9D60 +0x13975 0x9ED2 +0x13976 0x7344 +0x13977 0x6F09 +0x13978 0x8170 +0x13979 0x7511 +0x1397A 0x5FFD +0x1397B 0x60DA +0x1397C 0x9AA8 +0x1397D 0x72DB +0x1397E 0x8FBC +0x13A21 0x6B64 +0x13A22 0x9803 +0x13A23 0x4ECA +0x13A24 0x56F0 +0x13A25 0x5764 +0x13A26 0x58BE +0x13A27 0x5A5A +0x13A28 0x6068 +0x13A29 0x61C7 +0x13A2A 0x660F +0x13A2B 0x6606 +0x13A2C 0x6839 +0x13A2D 0x68B1 +0x13A2E 0x6DF7 +0x13A2F 0x75D5 +0x13A30 0x7D3A +0x13A31 0x826E +0x13A32 0x9B42 +0x13A33 0x4E9B +0x13A34 0x4F50 +0x13A35 0x53C9 +0x13A36 0x5506 +0x13A37 0x5D6F +0x13A38 0x5DE6 +0x13A39 0x5DEE +0x13A3A 0x67FB +0x13A3B 0x6C99 +0x13A3C 0x7473 +0x13A3D 0x7802 +0x13A3E 0x8A50 +0x13A3F 0x9396 +0x13A40 0x88DF +0x13A41 0x5750 +0x13A42 0x5EA7 +0x13A43 0x632B +0x13A44 0x50B5 +0x13A45 0x50AC +0x13A46 0x518D +0x13A47 0x6700 +0x13A48 0x54C9 +0x13A49 0x585E +0x13A4A 0x59BB +0x13A4B 0x5BB0 +0x13A4C 0x5F69 +0x13A4D 0x624D +0x13A4E 0x63A1 +0x13A4F 0x683D +0x13A50 0x6B73 +0x13A51 0x6E08 +0x13A52 0x707D +0x13A53 0x91C7 +0x13A54 0x7280 +0x13A55 0x7815 +0x13A56 0x7826 +0x13A57 0x796D +0x13A58 0x658E +0x13A59 0x7D30 +0x13A5A 0x83DC +0x13A5B 0x88C1 +0x13A5C 0x8F09 +0x13A5D 0x969B +0x13A5E 0x5264 +0x13A5F 0x5728 +0x13A60 0x6750 +0x13A61 0x7F6A +0x13A62 0x8CA1 +0x13A63 0x51B4 +0x13A64 0x5742 +0x13A65 0x962A +0x13A66 0x583A +0x13A67 0x698A +0x13A68 0x80B4 +0x13A69 0x54B2 +0x13A6A 0x5D0E +0x13A6B 0x57FC +0x13A6C 0x7895 +0x13A6D 0x9DFA +0x13A6E 0x4F5C +0x13A6F 0x524A +0x13A70 0x548B +0x13A71 0x643E +0x13A72 0x6628 +0x13A73 0x6714 +0x13A74 0x67F5 +0x13A75 0x7A84 +0x13A76 0x7B56 +0x13A77 0x7D22 +0x13A78 0x932F +0x13A79 0x685C +0x13A7A 0x9BAD +0x13A7B 0x7B39 +0x13A7C 0x5319 +0x13A7D 0x518A +0x13A7E 0x5237 +0x13B21 0x5BDF +0x13B22 0x62F6 +0x13B23 0x64AE +0x13B24 0x64E6 +0x13B25 0x672D +0x13B26 0x6BBA +0x13B27 0x85A9 +0x13B28 0x96D1 +0x13B29 0x7690 +0x13B2A 0x9BD6 +0x13B2B 0x634C +0x13B2C 0x9306 +0x13B2D 0x9BAB +0x13B2E 0x76BF +0x13B2F 0x6652 +0x13B30 0x4E09 +0x13B31 0x5098 +0x13B32 0x53C2 +0x13B33 0x5C71 +0x13B34 0x60E8 +0x13B35 0x6492 +0x13B36 0x6563 +0x13B37 0x685F +0x13B38 0x71E6 +0x13B39 0x73CA +0x13B3A 0x7523 +0x13B3B 0x7B97 +0x13B3C 0x7E82 +0x13B3D 0x8695 +0x13B3E 0x8B83 +0x13B3F 0x8CDB +0x13B40 0x9178 +0x13B41 0x9910 +0x13B42 0x65AC +0x13B43 0x66AB +0x13B44 0x6B8B +0x13B45 0x4ED5 +0x13B46 0x4ED4 +0x13B47 0x4F3A +0x13B48 0x4F7F +0x13B49 0x523A +0x13B4A 0x53F8 +0x13B4B 0x53F2 +0x13B4C 0x55E3 +0x13B4D 0x56DB +0x13B4E 0x58EB +0x13B4F 0x59CB +0x13B50 0x59C9 +0x13B51 0x59FF +0x13B52 0x5B50 +0x13B53 0x5C4D +0x13B54 0x5E02 +0x13B55 0x5E2B +0x13B56 0x5FD7 +0x13B57 0x601D +0x13B58 0x6307 +0x13B59 0x652F +0x13B5A 0x5B5C +0x13B5B 0x65AF +0x13B5C 0x65BD +0x13B5D 0x65E8 +0x13B5E 0x679D +0x13B5F 0x6B62 +0x13B60 0x6B7B +0x13B61 0x6C0F +0x13B62 0x7345 +0x13B63 0x7949 +0x13B64 0x79C1 +0x13B65 0x7CF8 +0x13B66 0x7D19 +0x13B67 0x7D2B +0x13B68 0x80A2 +0x13B69 0x8102 +0x13B6A 0x81F3 +0x13B6B 0x8996 +0x13B6C 0x8A5E +0x13B6D 0x8A69 +0x13B6E 0x8A66 +0x13B6F 0x8A8C +0x13B70 0x8AEE +0x13B71 0x8CC7 +0x13B72 0x8CDC +0x13B73 0x96CC +0x13B74 0x98FC +0x13B75 0x6B6F +0x13B76 0x4E8B +0x13B77 0x4F3C +0x13B78 0x4F8D +0x13B79 0x5150 +0x13B7A 0x5B57 +0x13B7B 0x5BFA +0x13B7C 0x6148 +0x13B7D 0x6301 +0x13B7E 0x6642 +0x13C21 0x6B21 +0x13C22 0x6ECB +0x13C23 0x6CBB +0x13C24 0x723E +0x13C25 0x74BD +0x13C26 0x75D4 +0x13C27 0x78C1 +0x13C28 0x793A +0x13C29 0x800C +0x13C2A 0x8033 +0x13C2B 0x81EA +0x13C2C 0x8494 +0x13C2D 0x8F9E +0x13C2E 0x6C50 +0x13C2F 0x9E7F +0x13C30 0x5F0F +0x13C31 0x8B58 +0x13C32 0x9D2B +0x13C33 0x7AFA +0x13C34 0x8EF8 +0x13C35 0x5B8D +0x13C36 0x96EB +0x13C37 0x4E03 +0x13C38 0x53F1 +0x13C39 0x57F7 +0x13C3A 0x5931 +0x13C3B 0x5AC9 +0x13C3C 0x5BA4 +0x13C3D 0x6089 +0x13C3E 0x6E7F +0x13C3F 0x6F06 +0x13C40 0x75BE +0x13C41 0x8CEA +0x13C42 0x5B9F +0x13C43 0x8500 +0x13C44 0x7BE0 +0x13C45 0x5072 +0x13C46 0x67F4 +0x13C47 0x829D +0x13C48 0x5C61 +0x13C49 0x854A +0x13C4A 0x7E1E +0x13C4B 0x820E +0x13C4C 0x5199 +0x13C4D 0x5C04 +0x13C4E 0x6368 +0x13C4F 0x8D66 +0x13C50 0x659C +0x13C51 0x716E +0x13C52 0x793E +0x13C53 0x7D17 +0x13C54 0x8005 +0x13C55 0x8B1D +0x13C56 0x8ECA +0x13C57 0x906E +0x13C58 0x86C7 +0x13C59 0x90AA +0x13C5A 0x501F +0x13C5B 0x52FA +0x13C5C 0x5C3A +0x13C5D 0x6753 +0x13C5E 0x707C +0x13C5F 0x7235 +0x13C60 0x914C +0x13C61 0x91C8 +0x13C62 0x932B +0x13C63 0x82E5 +0x13C64 0x5BC2 +0x13C65 0x5F31 +0x13C66 0x60F9 +0x13C67 0x4E3B +0x13C68 0x53D6 +0x13C69 0x5B88 +0x13C6A 0x624B +0x13C6B 0x6731 +0x13C6C 0x6B8A +0x13C6D 0x72E9 +0x13C6E 0x73E0 +0x13C6F 0x7A2E +0x13C70 0x816B +0x13C71 0x8DA3 +0x13C72 0x9152 +0x13C73 0x9996 +0x13C74 0x5112 +0x13C75 0x53D7 +0x13C76 0x546A +0x13C77 0x5BFF +0x13C78 0x6388 +0x13C79 0x6A39 +0x13C7A 0x7DAC +0x13C7B 0x9700 +0x13C7C 0x56DA +0x13C7D 0x53CE +0x13C7E 0x5468 +0x13D21 0x5B97 +0x13D22 0x5C31 +0x13D23 0x5DDE +0x13D24 0x4FEE +0x13D25 0x6101 +0x13D26 0x62FE +0x13D27 0x6D32 +0x13D28 0x79C0 +0x13D29 0x79CB +0x13D2A 0x7D42 +0x13D2B 0x7E4D +0x13D2C 0x7FD2 +0x13D2D 0x81ED +0x13D2E 0x821F +0x13D2F 0x8490 +0x13D30 0x8846 +0x13D31 0x8972 +0x13D32 0x8B90 +0x13D33 0x8E74 +0x13D34 0x8F2F +0x13D35 0x9031 +0x13D36 0x914B +0x13D37 0x916C +0x13D38 0x96C6 +0x13D39 0x919C +0x13D3A 0x4EC0 +0x13D3B 0x4F4F +0x13D3C 0x5145 +0x13D3D 0x5341 +0x13D3E 0x5F93 +0x13D3F 0x620E +0x13D40 0x67D4 +0x13D41 0x6C41 +0x13D42 0x6E0B +0x13D43 0x7363 +0x13D44 0x7E26 +0x13D45 0x91CD +0x13D46 0x9283 +0x13D47 0x53D4 +0x13D48 0x5919 +0x13D49 0x5BBF +0x13D4A 0x6DD1 +0x13D4B 0x795D +0x13D4C 0x7E2E +0x13D4D 0x7C9B +0x13D4E 0x587E +0x13D4F 0x719F +0x13D50 0x51FA +0x13D51 0x8853 +0x13D52 0x8FF0 +0x13D53 0x4FCA +0x13D54 0x5CFB +0x13D55 0x6625 +0x13D56 0x77AC +0x13D57 0x7AE3 +0x13D58 0x821C +0x13D59 0x99FF +0x13D5A 0x51C6 +0x13D5B 0x5FAA +0x13D5C 0x65EC +0x13D5D 0x696F +0x13D5E 0x6B89 +0x13D5F 0x6DF3 +0x13D60 0x6E96 +0x13D61 0x6F64 +0x13D62 0x76FE +0x13D63 0x7D14 +0x13D64 0x5DE1 +0x13D65 0x9075 +0x13D66 0x9187 +0x13D67 0x9806 +0x13D68 0x51E6 +0x13D69 0x521D +0x13D6A 0x6240 +0x13D6B 0x6691 +0x13D6C 0x66D9 +0x13D6D 0x6E1A +0x13D6E 0x5EB6 +0x13D6F 0x7DD2 +0x13D70 0x7F72 +0x13D71 0x66F8 +0x13D72 0x85AF +0x13D73 0x85F7 +0x13D74 0x8AF8 +0x13D75 0x52A9 +0x13D76 0x53D9 +0x13D77 0x5973 +0x13D78 0x5E8F +0x13D79 0x5F90 +0x13D7A 0x6055 +0x13D7B 0x92E4 +0x13D7C 0x9664 +0x13D7D 0x50B7 +0x13D7E 0x511F +0x13E21 0x52DD +0x13E22 0x5320 +0x13E23 0x5347 +0x13E24 0x53EC +0x13E25 0x54E8 +0x13E26 0x5546 +0x13E27 0x5531 +0x13E28 0x5617 +0x13E29 0x5968 +0x13E2A 0x59BE +0x13E2B 0x5A3C +0x13E2C 0x5BB5 +0x13E2D 0x5C06 +0x13E2E 0x5C0F +0x13E2F 0x5C11 +0x13E30 0x5C1A +0x13E31 0x5E84 +0x13E32 0x5E8A +0x13E33 0x5EE0 +0x13E34 0x5F70 +0x13E35 0x627F +0x13E36 0x6284 +0x13E37 0x62DB +0x13E38 0x638C +0x13E39 0x6377 +0x13E3A 0x6607 +0x13E3B 0x660C +0x13E3C 0x662D +0x13E3D 0x6676 +0x13E3E 0x677E +0x13E3F 0x68A2 +0x13E40 0x6A1F +0x13E41 0x6A35 +0x13E42 0x6CBC +0x13E43 0x6D88 +0x13E44 0x6E09 +0x13E45 0x6E58 +0x13E46 0x713C +0x13E47 0x7126 +0x13E48 0x7167 +0x13E49 0x75C7 +0x13E4A 0x7701 +0x13E4B 0x785D +0x13E4C 0x7901 +0x13E4D 0x7965 +0x13E4E 0x79F0 +0x13E4F 0x7AE0 +0x13E50 0x7B11 +0x13E51 0x7CA7 +0x13E52 0x7D39 +0x13E53 0x8096 +0x13E54 0x83D6 +0x13E55 0x848B +0x13E56 0x8549 +0x13E57 0x885D +0x13E58 0x88F3 +0x13E59 0x8A1F +0x13E5A 0x8A3C +0x13E5B 0x8A54 +0x13E5C 0x8A73 +0x13E5D 0x8C61 +0x13E5E 0x8CDE +0x13E5F 0x91A4 +0x13E60 0x9266 +0x13E61 0x937E +0x13E62 0x9418 +0x13E63 0x969C +0x13E64 0x9798 +0x13E65 0x4E0A +0x13E66 0x4E08 +0x13E67 0x4E1E +0x13E68 0x4E57 +0x13E69 0x5197 +0x13E6A 0x5270 +0x13E6B 0x57CE +0x13E6C 0x5834 +0x13E6D 0x58CC +0x13E6E 0x5B22 +0x13E6F 0x5E38 +0x13E70 0x60C5 +0x13E71 0x64FE +0x13E72 0x6761 +0x13E73 0x6756 +0x13E74 0x6D44 +0x13E75 0x72B6 +0x13E76 0x7573 +0x13E77 0x7A63 +0x13E78 0x84B8 +0x13E79 0x8B72 +0x13E7A 0x91B8 +0x13E7B 0x9320 +0x13E7C 0x5631 +0x13E7D 0x57F4 +0x13E7E 0x98FE +0x13F21 0x62ED +0x13F22 0x690D +0x13F23 0x6B96 +0x13F24 0x71ED +0x13F25 0x7E54 +0x13F26 0x8077 +0x13F27 0x8272 +0x13F28 0x89E6 +0x13F29 0x98DF +0x13F2A 0x8755 +0x13F2B 0x8FB1 +0x13F2C 0x5C3B +0x13F2D 0x4F38 +0x13F2E 0x4FE1 +0x13F2F 0x4FB5 +0x13F30 0x5507 +0x13F31 0x5A20 +0x13F32 0x5BDD +0x13F33 0x5BE9 +0x13F34 0x5FC3 +0x13F35 0x614E +0x13F36 0x632F +0x13F37 0x65B0 +0x13F38 0x664B +0x13F39 0x68EE +0x13F3A 0x699B +0x13F3B 0x6D78 +0x13F3C 0x6DF1 +0x13F3D 0x7533 +0x13F3E 0x75B9 +0x13F3F 0x771F +0x13F40 0x795E +0x13F41 0x79E6 +0x13F42 0x7D33 +0x13F43 0x81E3 +0x13F44 0x82AF +0x13F45 0x85AA +0x13F46 0x89AA +0x13F47 0x8A3A +0x13F48 0x8EAB +0x13F49 0x8F9B +0x13F4A 0x9032 +0x13F4B 0x91DD +0x13F4C 0x9707 +0x13F4D 0x4EBA +0x13F4E 0x4EC1 +0x13F4F 0x5203 +0x13F50 0x5875 +0x13F51 0x58EC +0x13F52 0x5C0B +0x13F53 0x751A +0x13F54 0x5C3D +0x13F55 0x814E +0x13F56 0x8A0A +0x13F57 0x8FC5 +0x13F58 0x9663 +0x13F59 0x976D +0x13F5A 0x7B25 +0x13F5B 0x8ACF +0x13F5C 0x9808 +0x13F5D 0x9162 +0x13F5E 0x56F3 +0x13F5F 0x53A8 +0x13F60 0x9017 +0x13F61 0x5439 +0x13F62 0x5782 +0x13F63 0x5E25 +0x13F64 0x63A8 +0x13F65 0x6C34 +0x13F66 0x708A +0x13F67 0x7761 +0x13F68 0x7C8B +0x13F69 0x7FE0 +0x13F6A 0x8870 +0x13F6B 0x9042 +0x13F6C 0x9154 +0x13F6D 0x9310 +0x13F6E 0x9318 +0x13F6F 0x968F +0x13F70 0x745E +0x13F71 0x9AC4 +0x13F72 0x5D07 +0x13F73 0x5D69 +0x13F74 0x6570 +0x13F75 0x67A2 +0x13F76 0x8DA8 +0x13F77 0x96DB +0x13F78 0x636E +0x13F79 0x6749 +0x13F7A 0x6919 +0x13F7B 0x83C5 +0x13F7C 0x9817 +0x13F7D 0x96C0 +0x13F7E 0x88FE +0x14021 0x6F84 +0x14022 0x647A +0x14023 0x5BF8 +0x14024 0x4E16 +0x14025 0x702C +0x14026 0x755D +0x14027 0x662F +0x14028 0x51C4 +0x14029 0x5236 +0x1402A 0x52E2 +0x1402B 0x59D3 +0x1402C 0x5F81 +0x1402D 0x6027 +0x1402E 0x6210 +0x1402F 0x653F +0x14030 0x6574 +0x14031 0x661F +0x14032 0x6674 +0x14033 0x68F2 +0x14034 0x6816 +0x14035 0x6B63 +0x14036 0x6E05 +0x14037 0x7272 +0x14038 0x751F +0x14039 0x76DB +0x1403A 0x7CBE +0x1403B 0x8056 +0x1403C 0x58F0 +0x1403D 0x88FD +0x1403E 0x897F +0x1403F 0x8AA0 +0x14040 0x8A93 +0x14041 0x8ACB +0x14042 0x901D +0x14043 0x9192 +0x14044 0x9752 +0x14045 0x9759 +0x14046 0x6589 +0x14047 0x7A0E +0x14048 0x8106 +0x14049 0x96BB +0x1404A 0x5E2D +0x1404B 0x60DC +0x1404C 0x621A +0x1404D 0x65A5 +0x1404E 0x6614 +0x1404F 0x6790 +0x14050 0x77F3 +0x14051 0x7A4D +0x14052 0x7C4D +0x14053 0x7E3E +0x14054 0x810A +0x14055 0x8CAC +0x14056 0x8D64 +0x14057 0x8DE1 +0x14058 0x8E5F +0x14059 0x78A9 +0x1405A 0x5207 +0x1405B 0x62D9 +0x1405C 0x63A5 +0x1405D 0x6442 +0x1405E 0x6298 +0x1405F 0x8A2D +0x14060 0x7A83 +0x14061 0x7BC0 +0x14062 0x8AAC +0x14063 0x96EA +0x14064 0x7D76 +0x14065 0x820C +0x14066 0x8749 +0x14067 0x4ED9 +0x14068 0x5148 +0x14069 0x5343 +0x1406A 0x5360 +0x1406B 0x5BA3 +0x1406C 0x5C02 +0x1406D 0x5C16 +0x1406E 0x5DDD +0x1406F 0x6226 +0x14070 0x6247 +0x14071 0x64B0 +0x14072 0x6813 +0x14073 0x6834 +0x14074 0x6CC9 +0x14075 0x6D45 +0x14076 0x6D17 +0x14077 0x67D3 +0x14078 0x6F5C +0x14079 0x714E +0x1407A 0x717D +0x1407B 0x65CB +0x1407C 0x7A7F +0x1407D 0x7BAD +0x1407E 0x7DDA +0x14121 0x7E4A +0x14122 0x7FA8 +0x14123 0x817A +0x14124 0x821B +0x14125 0x8239 +0x14126 0x85A6 +0x14127 0x8A6E +0x14128 0x8CCE +0x14129 0x8DF5 +0x1412A 0x9078 +0x1412B 0x9077 +0x1412C 0x92AD +0x1412D 0x9291 +0x1412E 0x9583 +0x1412F 0x9BAE +0x14130 0x524D +0x14131 0x5584 +0x14132 0x6F38 +0x14133 0x7136 +0x14134 0x5168 +0x14135 0x7985 +0x14136 0x7E55 +0x14137 0x81B3 +0x14138 0x7CCE +0x14139 0x564C +0x1413A 0x5851 +0x1413B 0x5CA8 +0x1413C 0x63AA +0x1413D 0x66FE +0x1413E 0x66FD +0x1413F 0x695A +0x14140 0x72D9 +0x14141 0x758F +0x14142 0x758E +0x14143 0x790E +0x14144 0x7956 +0x14145 0x79DF +0x14146 0x7C97 +0x14147 0x7D20 +0x14148 0x7D44 +0x14149 0x8607 +0x1414A 0x8A34 +0x1414B 0x963B +0x1414C 0x9061 +0x1414D 0x9F20 +0x1414E 0x50E7 +0x1414F 0x5275 +0x14150 0x53CC +0x14151 0x53E2 +0x14152 0x5009 +0x14153 0x55AA +0x14154 0x58EE +0x14155 0x594F +0x14156 0x723D +0x14157 0x5B8B +0x14158 0x5C64 +0x14159 0x531D +0x1415A 0x60E3 +0x1415B 0x60F3 +0x1415C 0x635C +0x1415D 0x6383 +0x1415E 0x633F +0x1415F 0x63BB +0x14160 0x64CD +0x14161 0x65E9 +0x14162 0x66F9 +0x14163 0x5DE3 +0x14164 0x69CD +0x14165 0x69FD +0x14166 0x6F15 +0x14167 0x71E5 +0x14168 0x4E89 +0x14169 0x75E9 +0x1416A 0x76F8 +0x1416B 0x7A93 +0x1416C 0x7CDF +0x1416D 0x7DCF +0x1416E 0x7D9C +0x1416F 0x8061 +0x14170 0x8349 +0x14171 0x8358 +0x14172 0x846C +0x14173 0x84BC +0x14174 0x85FB +0x14175 0x88C5 +0x14176 0x8D70 +0x14177 0x9001 +0x14178 0x906D +0x14179 0x9397 +0x1417A 0x971C +0x1417B 0x9A12 +0x1417C 0x50CF +0x1417D 0x5897 +0x1417E 0x618E +0x14221 0x81D3 +0x14222 0x8535 +0x14223 0x8D08 +0x14224 0x9020 +0x14225 0x4FC3 +0x14226 0x5074 +0x14227 0x5247 +0x14228 0x5373 +0x14229 0x606F +0x1422A 0x6349 +0x1422B 0x675F +0x1422C 0x6E2C +0x1422D 0x8DB3 +0x1422E 0x901F +0x1422F 0x4FD7 +0x14230 0x5C5E +0x14231 0x8CCA +0x14232 0x65CF +0x14233 0x7D9A +0x14234 0x5352 +0x14235 0x8896 +0x14236 0x5176 +0x14237 0x63C3 +0x14238 0x5B58 +0x14239 0x5B6B +0x1423A 0x5C0A +0x1423B 0x640D +0x1423C 0x6751 +0x1423D 0x905C +0x1423E 0x4ED6 +0x1423F 0x591A +0x14240 0x592A +0x14241 0x6C70 +0x14242 0x8A51 +0x14243 0x553E +0x14244 0x5815 +0x14245 0x59A5 +0x14246 0x60F0 +0x14247 0x6253 +0x14248 0x67C1 +0x14249 0x8235 +0x1424A 0x6955 +0x1424B 0x9640 +0x1424C 0x99C4 +0x1424D 0x9A28 +0x1424E 0x4F53 +0x1424F 0x5806 +0x14250 0x5BFE +0x14251 0x8010 +0x14252 0x5CB1 +0x14253 0x5E2F +0x14254 0x5F85 +0x14255 0x6020 +0x14256 0x614B +0x14257 0x6234 +0x14258 0x66FF +0x14259 0x6CF0 +0x1425A 0x6EDE +0x1425B 0x80CE +0x1425C 0x817F +0x1425D 0x82D4 +0x1425E 0x888B +0x1425F 0x8CB8 +0x14260 0x9000 +0x14261 0x902E +0x14262 0x968A +0x14263 0x9EDB +0x14264 0x9BDB +0x14265 0x4EE3 +0x14266 0x53F0 +0x14267 0x5927 +0x14268 0x7B2C +0x14269 0x918D +0x1426A 0x984C +0x1426B 0x9DF9 +0x1426C 0x6EDD +0x1426D 0x7027 +0x1426E 0x5353 +0x1426F 0x5544 +0x14270 0x5B85 +0x14271 0x6258 +0x14272 0x629E +0x14273 0x62D3 +0x14274 0x6CA2 +0x14275 0x6FEF +0x14276 0x7422 +0x14277 0x8A17 +0x14278 0x9438 +0x14279 0x6FC1 +0x1427A 0x8AFE +0x1427B 0x8338 +0x1427C 0x51E7 +0x1427D 0x86F8 +0x1427E 0x53EA +0x14321 0x53E9 +0x14322 0x4F46 +0x14323 0x9054 +0x14324 0x8FB0 +0x14325 0x596A +0x14326 0x8131 +0x14327 0x5DFD +0x14328 0x7AEA +0x14329 0x8FBF +0x1432A 0x68DA +0x1432B 0x8C37 +0x1432C 0x72F8 +0x1432D 0x9C48 +0x1432E 0x6A3D +0x1432F 0x8AB0 +0x14330 0x4E39 +0x14331 0x5358 +0x14332 0x5606 +0x14333 0x5766 +0x14334 0x62C5 +0x14335 0x63A2 +0x14336 0x65E6 +0x14337 0x6B4E +0x14338 0x6DE1 +0x14339 0x6E5B +0x1433A 0x70AD +0x1433B 0x77ED +0x1433C 0x7AEF +0x1433D 0x7BAA +0x1433E 0x7DBB +0x1433F 0x803D +0x14340 0x80C6 +0x14341 0x86CB +0x14342 0x8A95 +0x14343 0x935B +0x14344 0x56E3 +0x14345 0x58C7 +0x14346 0x5F3E +0x14347 0x65AD +0x14348 0x6696 +0x14349 0x6A80 +0x1434A 0x6BB5 +0x1434B 0x7537 +0x1434C 0x8AC7 +0x1434D 0x5024 +0x1434E 0x77E5 +0x1434F 0x5730 +0x14350 0x5F1B +0x14351 0x6065 +0x14352 0x667A +0x14353 0x6C60 +0x14354 0x75F4 +0x14355 0x7A1A +0x14356 0x7F6E +0x14357 0x81F4 +0x14358 0x8718 +0x14359 0x9045 +0x1435A 0x99B3 +0x1435B 0x7BC9 +0x1435C 0x755C +0x1435D 0x7AF9 +0x1435E 0x7B51 +0x1435F 0x84C4 +0x14360 0x9010 +0x14361 0x79E9 +0x14362 0x7A92 +0x14363 0x8336 +0x14364 0x5AE1 +0x14365 0x7740 +0x14366 0x4E2D +0x14367 0x4EF2 +0x14368 0x5B99 +0x14369 0x5FE0 +0x1436A 0x62BD +0x1436B 0x663C +0x1436C 0x67F1 +0x1436D 0x6CE8 +0x1436E 0x866B +0x1436F 0x8877 +0x14370 0x8A3B +0x14371 0x914E +0x14372 0x92F3 +0x14373 0x99D0 +0x14374 0x6A17 +0x14375 0x7026 +0x14376 0x732A +0x14377 0x82E7 +0x14378 0x8457 +0x14379 0x8CAF +0x1437A 0x4E01 +0x1437B 0x5146 +0x1437C 0x51CB +0x1437D 0x558B +0x1437E 0x5BF5 +0x14421 0x5E16 +0x14422 0x5E33 +0x14423 0x5E81 +0x14424 0x5F14 +0x14425 0x5F35 +0x14426 0x5F6B +0x14427 0x5FB4 +0x14428 0x61F2 +0x14429 0x6311 +0x1442A 0x66A2 +0x1442B 0x671D +0x1442C 0x6F6E +0x1442D 0x7252 +0x1442E 0x753A +0x1442F 0x773A +0x14430 0x8074 +0x14431 0x8139 +0x14432 0x8178 +0x14433 0x8776 +0x14434 0x8ABF +0x14435 0x8ADC +0x14436 0x8D85 +0x14437 0x8DF3 +0x14438 0x929A +0x14439 0x9577 +0x1443A 0x9802 +0x1443B 0x9CE5 +0x1443C 0x52C5 +0x1443D 0x6357 +0x1443E 0x76F4 +0x1443F 0x6715 +0x14440 0x6C88 +0x14441 0x73CD +0x14442 0x8CC3 +0x14443 0x93AE +0x14444 0x9673 +0x14445 0x6D25 +0x14446 0x589C +0x14447 0x690E +0x14448 0x69CC +0x14449 0x8FFD +0x1444A 0x939A +0x1444B 0x75DB +0x1444C 0x901A +0x1444D 0x585A +0x1444E 0x6802 +0x1444F 0x63B4 +0x14450 0x69FB +0x14451 0x4F43 +0x14452 0x6F2C +0x14453 0x67D8 +0x14454 0x8FBB +0x14455 0x8526 +0x14456 0x7DB4 +0x14457 0x9354 +0x14458 0x693F +0x14459 0x6F70 +0x1445A 0x576A +0x1445B 0x58F7 +0x1445C 0x5B2C +0x1445D 0x7D2C +0x1445E 0x722A +0x1445F 0x540A +0x14460 0x91E3 +0x14461 0x9DB4 +0x14462 0x4EAD +0x14463 0x4F4E +0x14464 0x505C +0x14465 0x5075 +0x14466 0x5243 +0x14467 0x8C9E +0x14468 0x5448 +0x14469 0x5824 +0x1446A 0x5B9A +0x1446B 0x5E1D +0x1446C 0x5E95 +0x1446D 0x5EAD +0x1446E 0x5EF7 +0x1446F 0x5F1F +0x14470 0x608C +0x14471 0x62B5 +0x14472 0x633A +0x14473 0x63D0 +0x14474 0x68AF +0x14475 0x6C40 +0x14476 0x7887 +0x14477 0x798E +0x14478 0x7A0B +0x14479 0x7DE0 +0x1447A 0x8247 +0x1447B 0x8A02 +0x1447C 0x8AE6 +0x1447D 0x8E44 +0x1447E 0x9013 +0x14521 0x90B8 +0x14522 0x912D +0x14523 0x91D8 +0x14524 0x9F0E +0x14525 0x6CE5 +0x14526 0x6458 +0x14527 0x64E2 +0x14528 0x6575 +0x14529 0x6EF4 +0x1452A 0x7684 +0x1452B 0x7B1B +0x1452C 0x9069 +0x1452D 0x93D1 +0x1452E 0x6EBA +0x1452F 0x54F2 +0x14530 0x5FB9 +0x14531 0x64A4 +0x14532 0x8F4D +0x14533 0x8FED +0x14534 0x9244 +0x14535 0x5178 +0x14536 0x586B +0x14537 0x5929 +0x14538 0x5C55 +0x14539 0x5E97 +0x1453A 0x6DFB +0x1453B 0x7E8F +0x1453C 0x751C +0x1453D 0x8CBC +0x1453E 0x8EE2 +0x1453F 0x985B +0x14540 0x70B9 +0x14541 0x4F1D +0x14542 0x6BBF +0x14543 0x6FB1 +0x14544 0x7530 +0x14545 0x96FB +0x14546 0x514E +0x14547 0x5410 +0x14548 0x5835 +0x14549 0x5857 +0x1454A 0x59AC +0x1454B 0x5C60 +0x1454C 0x5F92 +0x1454D 0x6597 +0x1454E 0x675C +0x1454F 0x6E21 +0x14550 0x767B +0x14551 0x83DF +0x14552 0x8CED +0x14553 0x9014 +0x14554 0x90FD +0x14555 0x934D +0x14556 0x7825 +0x14557 0x783A +0x14558 0x52AA +0x14559 0x5EA6 +0x1455A 0x571F +0x1455B 0x5974 +0x1455C 0x6012 +0x1455D 0x5012 +0x1455E 0x515A +0x1455F 0x51AC +0x14560 0x51CD +0x14561 0x5200 +0x14562 0x5510 +0x14563 0x5854 +0x14564 0x5858 +0x14565 0x5957 +0x14566 0x5B95 +0x14567 0x5CF6 +0x14568 0x5D8B +0x14569 0x60BC +0x1456A 0x6295 +0x1456B 0x642D +0x1456C 0x6771 +0x1456D 0x6843 +0x1456E 0x68BC +0x1456F 0x68DF +0x14570 0x76D7 +0x14571 0x6DD8 +0x14572 0x6E6F +0x14573 0x6D9B +0x14574 0x706F +0x14575 0x71C8 +0x14576 0x5F53 +0x14577 0x75D8 +0x14578 0x7977 +0x14579 0x7B49 +0x1457A 0x7B54 +0x1457B 0x7B52 +0x1457C 0x7CD6 +0x1457D 0x7D71 +0x1457E 0x5230 +0x14621 0x8463 +0x14622 0x8569 +0x14623 0x85E4 +0x14624 0x8A0E +0x14625 0x8B04 +0x14626 0x8C46 +0x14627 0x8E0F +0x14628 0x9003 +0x14629 0x900F +0x1462A 0x9419 +0x1462B 0x9676 +0x1462C 0x982D +0x1462D 0x9A30 +0x1462E 0x95D8 +0x1462F 0x50CD +0x14630 0x52D5 +0x14631 0x540C +0x14632 0x5802 +0x14633 0x5C0E +0x14634 0x61A7 +0x14635 0x649E +0x14636 0x6D1E +0x14637 0x77B3 +0x14638 0x7AE5 +0x14639 0x80F4 +0x1463A 0x8404 +0x1463B 0x9053 +0x1463C 0x9285 +0x1463D 0x5CE0 +0x1463E 0x9D07 +0x1463F 0x533F +0x14640 0x5F97 +0x14641 0x5FB3 +0x14642 0x6D9C +0x14643 0x7279 +0x14644 0x7763 +0x14645 0x79BF +0x14646 0x7BE4 +0x14647 0x6BD2 +0x14648 0x72EC +0x14649 0x8AAD +0x1464A 0x6803 +0x1464B 0x6A61 +0x1464C 0x51F8 +0x1464D 0x7A81 +0x1464E 0x6934 +0x1464F 0x5C4A +0x14650 0x9CF6 +0x14651 0x82EB +0x14652 0x5BC5 +0x14653 0x9149 +0x14654 0x701E +0x14655 0x5678 +0x14656 0x5C6F +0x14657 0x60C7 +0x14658 0x6566 +0x14659 0x6C8C +0x1465A 0x8C5A +0x1465B 0x9041 +0x1465C 0x9813 +0x1465D 0x5451 +0x1465E 0x66C7 +0x1465F 0x920D +0x14660 0x5948 +0x14661 0x90A3 +0x14662 0x5185 +0x14663 0x4E4D +0x14664 0x51EA +0x14665 0x8599 +0x14666 0x8B0E +0x14667 0x7058 +0x14668 0x637A +0x14669 0x934B +0x1466A 0x6962 +0x1466B 0x99B4 +0x1466C 0x7E04 +0x1466D 0x7577 +0x1466E 0x5357 +0x1466F 0x6960 +0x14670 0x8EDF +0x14671 0x96E3 +0x14672 0x6C5D +0x14673 0x4E8C +0x14674 0x5C3C +0x14675 0x5F10 +0x14676 0x8FE9 +0x14677 0x5302 +0x14678 0x8CD1 +0x14679 0x8089 +0x1467A 0x8679 +0x1467B 0x5EFF +0x1467C 0x65E5 +0x1467D 0x4E73 +0x1467E 0x5165 +0x14721 0x5982 +0x14722 0x5C3F +0x14723 0x97EE +0x14724 0x4EFB +0x14725 0x598A +0x14726 0x5FCD +0x14727 0x8A8D +0x14728 0x6FE1 +0x14729 0x79B0 +0x1472A 0x7962 +0x1472B 0x5BE7 +0x1472C 0x8471 +0x1472D 0x732B +0x1472E 0x71B1 +0x1472F 0x5E74 +0x14730 0x5FF5 +0x14731 0x637B +0x14732 0x649A +0x14733 0x71C3 +0x14734 0x7C98 +0x14735 0x4E43 +0x14736 0x5EFC +0x14737 0x4E4B +0x14738 0x57DC +0x14739 0x56A2 +0x1473A 0x60A9 +0x1473B 0x6FC3 +0x1473C 0x7D0D +0x1473D 0x80FD +0x1473E 0x8133 +0x1473F 0x81BF +0x14740 0x8FB2 +0x14741 0x8997 +0x14742 0x86A4 +0x14743 0x5DF4 +0x14744 0x628A +0x14745 0x64AD +0x14746 0x8987 +0x14747 0x6777 +0x14748 0x6CE2 +0x14749 0x6D3E +0x1474A 0x7436 +0x1474B 0x7834 +0x1474C 0x5A46 +0x1474D 0x7F75 +0x1474E 0x82AD +0x1474F 0x99AC +0x14750 0x4FF3 +0x14751 0x5EC3 +0x14752 0x62DD +0x14753 0x6392 +0x14754 0x6557 +0x14755 0x676F +0x14756 0x76C3 +0x14757 0x724C +0x14758 0x80CC +0x14759 0x80BA +0x1475A 0x8F29 +0x1475B 0x914D +0x1475C 0x500D +0x1475D 0x57F9 +0x1475E 0x5A92 +0x1475F 0x6885 +0x14760 0x6973 +0x14761 0x7164 +0x14762 0x72FD +0x14763 0x8CB7 +0x14764 0x58F2 +0x14765 0x8CE0 +0x14766 0x966A +0x14767 0x9019 +0x14768 0x877F +0x14769 0x79E4 +0x1476A 0x77E7 +0x1476B 0x8429 +0x1476C 0x4F2F +0x1476D 0x5265 +0x1476E 0x535A +0x1476F 0x62CD +0x14770 0x67CF +0x14771 0x6CCA +0x14772 0x767D +0x14773 0x7B94 +0x14774 0x7C95 +0x14775 0x8236 +0x14776 0x8584 +0x14777 0x8FEB +0x14778 0x66DD +0x14779 0x6F20 +0x1477A 0x7206 +0x1477B 0x7E1B +0x1477C 0x83AB +0x1477D 0x99C1 +0x1477E 0x9EA6 +0x14821 0x51FD +0x14822 0x7BB1 +0x14823 0x7872 +0x14824 0x7BB8 +0x14825 0x8087 +0x14826 0x7B48 +0x14827 0x6AE8 +0x14828 0x5E61 +0x14829 0x808C +0x1482A 0x7551 +0x1482B 0x7560 +0x1482C 0x516B +0x1482D 0x9262 +0x1482E 0x6E8C +0x1482F 0x767A +0x14830 0x9197 +0x14831 0x9AEA +0x14832 0x4F10 +0x14833 0x7F70 +0x14834 0x629C +0x14835 0x7B4F +0x14836 0x95A5 +0x14837 0x9CE9 +0x14838 0x567A +0x14839 0x5859 +0x1483A 0x86E4 +0x1483B 0x96BC +0x1483C 0x4F34 +0x1483D 0x5224 +0x1483E 0x534A +0x1483F 0x53CD +0x14840 0x53DB +0x14841 0x5E06 +0x14842 0x642C +0x14843 0x6591 +0x14844 0x677F +0x14845 0x6C3E +0x14846 0x6C4E +0x14847 0x7248 +0x14848 0x72AF +0x14849 0x73ED +0x1484A 0x7554 +0x1484B 0x7E41 +0x1484C 0x822C +0x1484D 0x85E9 +0x1484E 0x8CA9 +0x1484F 0x7BC4 +0x14850 0x91C6 +0x14851 0x7169 +0x14852 0x9812 +0x14853 0x98EF +0x14854 0x633D +0x14855 0x6669 +0x14856 0x756A +0x14857 0x76E4 +0x14858 0x78D0 +0x14859 0x8543 +0x1485A 0x86EE +0x1485B 0x532A +0x1485C 0x5351 +0x1485D 0x5426 +0x1485E 0x5983 +0x1485F 0x5E87 +0x14860 0x5F7C +0x14861 0x60B2 +0x14862 0x6249 +0x14863 0x6279 +0x14864 0x62AB +0x14865 0x6590 +0x14866 0x6BD4 +0x14867 0x6CCC +0x14868 0x75B2 +0x14869 0x76AE +0x1486A 0x7891 +0x1486B 0x79D8 +0x1486C 0x7DCB +0x1486D 0x7F77 +0x1486E 0x80A5 +0x1486F 0x88AB +0x14870 0x8AB9 +0x14871 0x8CBB +0x14872 0x907F +0x14873 0x975E +0x14874 0x98DB +0x14875 0x6A0B +0x14876 0x7C38 +0x14877 0x5099 +0x14878 0x5C3E +0x14879 0x5FAE +0x1487A 0x6787 +0x1487B 0x6BD8 +0x1487C 0x7435 +0x1487D 0x7709 +0x1487E 0x7F8E +0x14921 0x9F3B +0x14922 0x67CA +0x14923 0x7A17 +0x14924 0x5339 +0x14925 0x758B +0x14926 0x9AED +0x14927 0x5F66 +0x14928 0x819D +0x14929 0x83F1 +0x1492A 0x8098 +0x1492B 0x5F3C +0x1492C 0x5FC5 +0x1492D 0x7562 +0x1492E 0x7B46 +0x1492F 0x903C +0x14930 0x6867 +0x14931 0x59EB +0x14932 0x5A9B +0x14933 0x7D10 +0x14934 0x767E +0x14935 0x8B2C +0x14936 0x4FF5 +0x14937 0x5F6A +0x14938 0x6A19 +0x14939 0x6C37 +0x1493A 0x6F02 +0x1493B 0x74E2 +0x1493C 0x7968 +0x1493D 0x8868 +0x1493E 0x8A55 +0x1493F 0x8C79 +0x14940 0x5EDF +0x14941 0x63CF +0x14942 0x75C5 +0x14943 0x79D2 +0x14944 0x82D7 +0x14945 0x9328 +0x14946 0x92F2 +0x14947 0x849C +0x14948 0x86ED +0x14949 0x9C2D +0x1494A 0x54C1 +0x1494B 0x5F6C +0x1494C 0x658C +0x1494D 0x6D5C +0x1494E 0x7015 +0x1494F 0x8CA7 +0x14950 0x8CD3 +0x14951 0x983B +0x14952 0x654F +0x14953 0x74F6 +0x14954 0x4E0D +0x14955 0x4ED8 +0x14956 0x57E0 +0x14957 0x592B +0x14958 0x5A66 +0x14959 0x5BCC +0x1495A 0x51A8 +0x1495B 0x5E03 +0x1495C 0x5E9C +0x1495D 0x6016 +0x1495E 0x6276 +0x1495F 0x6577 +0x14960 0x65A7 +0x14961 0x666E +0x14962 0x6D6E +0x14963 0x7236 +0x14964 0x7B26 +0x14965 0x8150 +0x14966 0x819A +0x14967 0x8299 +0x14968 0x8B5C +0x14969 0x8CA0 +0x1496A 0x8CE6 +0x1496B 0x8D74 +0x1496C 0x961C +0x1496D 0x9644 +0x1496E 0x4FAE +0x1496F 0x64AB +0x14970 0x6B66 +0x14971 0x821E +0x14972 0x8461 +0x14973 0x856A +0x14974 0x90E8 +0x14975 0x5C01 +0x14976 0x6953 +0x14977 0x98A8 +0x14978 0x847A +0x14979 0x8557 +0x1497A 0x4F0F +0x1497B 0x526F +0x1497C 0x5FA9 +0x1497D 0x5E45 +0x1497E 0x670D +0x14A21 0x798F +0x14A22 0x8179 +0x14A23 0x8907 +0x14A24 0x8986 +0x14A25 0x6DF5 +0x14A26 0x5F17 +0x14A27 0x6255 +0x14A28 0x6CB8 +0x14A29 0x4ECF +0x14A2A 0x7269 +0x14A2B 0x9B92 +0x14A2C 0x5206 +0x14A2D 0x543B +0x14A2E 0x5674 +0x14A2F 0x58B3 +0x14A30 0x61A4 +0x14A31 0x626E +0x14A32 0x711A +0x14A33 0x596E +0x14A34 0x7C89 +0x14A35 0x7CDE +0x14A36 0x7D1B +0x14A37 0x96F0 +0x14A38 0x6587 +0x14A39 0x805E +0x14A3A 0x4E19 +0x14A3B 0x4F75 +0x14A3C 0x5175 +0x14A3D 0x5840 +0x14A3E 0x5E63 +0x14A3F 0x5E73 +0x14A40 0x5F0A +0x14A41 0x67C4 +0x14A42 0x4E26 +0x14A43 0x853D +0x14A44 0x9589 +0x14A45 0x965B +0x14A46 0x7C73 +0x14A47 0x9801 +0x14A48 0x50FB +0x14A49 0x58C1 +0x14A4A 0x7656 +0x14A4B 0x78A7 +0x14A4C 0x5225 +0x14A4D 0x77A5 +0x14A4E 0x8511 +0x14A4F 0x7B86 +0x14A50 0x504F +0x14A51 0x5909 +0x14A52 0x7247 +0x14A53 0x7BC7 +0x14A54 0x7DE8 +0x14A55 0x8FBA +0x14A56 0x8FD4 +0x14A57 0x904D +0x14A58 0x4FBF +0x14A59 0x52C9 +0x14A5A 0x5A29 +0x14A5B 0x5F01 +0x14A5C 0x97AD +0x14A5D 0x4FDD +0x14A5E 0x8217 +0x14A5F 0x92EA +0x14A60 0x5703 +0x14A61 0x6355 +0x14A62 0x6B69 +0x14A63 0x752B +0x14A64 0x88DC +0x14A65 0x8F14 +0x14A66 0x7A42 +0x14A67 0x52DF +0x14A68 0x5893 +0x14A69 0x6155 +0x14A6A 0x620A +0x14A6B 0x66AE +0x14A6C 0x6BCD +0x14A6D 0x7C3F +0x14A6E 0x83E9 +0x14A6F 0x5023 +0x14A70 0x4FF8 +0x14A71 0x5305 +0x14A72 0x5446 +0x14A73 0x5831 +0x14A74 0x5949 +0x14A75 0x5B9D +0x14A76 0x5CF0 +0x14A77 0x5CEF +0x14A78 0x5D29 +0x14A79 0x5E96 +0x14A7A 0x62B1 +0x14A7B 0x6367 +0x14A7C 0x653E +0x14A7D 0x65B9 +0x14A7E 0x670B +0x14B21 0x6CD5 +0x14B22 0x6CE1 +0x14B23 0x70F9 +0x14B24 0x7832 +0x14B25 0x7E2B +0x14B26 0x80DE +0x14B27 0x82B3 +0x14B28 0x840C +0x14B29 0x84EC +0x14B2A 0x8702 +0x14B2B 0x8912 +0x14B2C 0x8A2A +0x14B2D 0x8C4A +0x14B2E 0x90A6 +0x14B2F 0x92D2 +0x14B30 0x98FD +0x14B31 0x9CF3 +0x14B32 0x9D6C +0x14B33 0x4E4F +0x14B34 0x4EA1 +0x14B35 0x508D +0x14B36 0x5256 +0x14B37 0x574A +0x14B38 0x59A8 +0x14B39 0x5E3D +0x14B3A 0x5FD8 +0x14B3B 0x5FD9 +0x14B3C 0x623F +0x14B3D 0x66B4 +0x14B3E 0x671B +0x14B3F 0x67D0 +0x14B40 0x68D2 +0x14B41 0x5192 +0x14B42 0x7D21 +0x14B43 0x80AA +0x14B44 0x81A8 +0x14B45 0x8B00 +0x14B46 0x8C8C +0x14B47 0x8CBF +0x14B48 0x927E +0x14B49 0x9632 +0x14B4A 0x5420 +0x14B4B 0x982C +0x14B4C 0x5317 +0x14B4D 0x50D5 +0x14B4E 0x535C +0x14B4F 0x58A8 +0x14B50 0x64B2 +0x14B51 0x6734 +0x14B52 0x7267 +0x14B53 0x7766 +0x14B54 0x7A46 +0x14B55 0x91E6 +0x14B56 0x52C3 +0x14B57 0x6CA1 +0x14B58 0x6B86 +0x14B59 0x5800 +0x14B5A 0x5E4C +0x14B5B 0x5954 +0x14B5C 0x672C +0x14B5D 0x7FFB +0x14B5E 0x51E1 +0x14B5F 0x76C6 +0x14B60 0x6469 +0x14B61 0x78E8 +0x14B62 0x9B54 +0x14B63 0x9EBB +0x14B64 0x57CB +0x14B65 0x59B9 +0x14B66 0x6627 +0x14B67 0x679A +0x14B68 0x6BCE +0x14B69 0x54E9 +0x14B6A 0x69D9 +0x14B6B 0x5E55 +0x14B6C 0x819C +0x14B6D 0x6795 +0x14B6E 0x9BAA +0x14B6F 0x67FE +0x14B70 0x9C52 +0x14B71 0x685D +0x14B72 0x4EA6 +0x14B73 0x4FE3 +0x14B74 0x53C8 +0x14B75 0x62B9 +0x14B76 0x672B +0x14B77 0x6CAB +0x14B78 0x8FC4 +0x14B79 0x4FAD +0x14B7A 0x7E6D +0x14B7B 0x9EBF +0x14B7C 0x4E07 +0x14B7D 0x6162 +0x14B7E 0x6E80 +0x14C21 0x6F2B +0x14C22 0x8513 +0x14C23 0x5473 +0x14C24 0x672A +0x14C25 0x9B45 +0x14C26 0x5DF3 +0x14C27 0x7B95 +0x14C28 0x5CAC +0x14C29 0x5BC6 +0x14C2A 0x871C +0x14C2B 0x6E4A +0x14C2C 0x84D1 +0x14C2D 0x7A14 +0x14C2E 0x8108 +0x14C2F 0x5999 +0x14C30 0x7C8D +0x14C31 0x6C11 +0x14C32 0x7720 +0x14C33 0x52D9 +0x14C34 0x5922 +0x14C35 0x7121 +0x14C36 0x725F +0x14C37 0x77DB +0x14C38 0x9727 +0x14C39 0x9D61 +0x14C3A 0x690B +0x14C3B 0x5A7F +0x14C3C 0x5A18 +0x14C3D 0x51A5 +0x14C3E 0x540D +0x14C3F 0x547D +0x14C40 0x660E +0x14C41 0x76DF +0x14C42 0x8FF7 +0x14C43 0x9298 +0x14C44 0x9CF4 +0x14C45 0x59EA +0x14C46 0x725D +0x14C47 0x6EC5 +0x14C48 0x514D +0x14C49 0x68C9 +0x14C4A 0x7DBF +0x14C4B 0x7DEC +0x14C4C 0x9762 +0x14C4D 0x9EBA +0x14C4E 0x6478 +0x14C4F 0x6A21 +0x14C50 0x8302 +0x14C51 0x5984 +0x14C52 0x5B5F +0x14C53 0x6BDB +0x14C54 0x731B +0x14C55 0x76F2 +0x14C56 0x7DB2 +0x14C57 0x8017 +0x14C58 0x8499 +0x14C59 0x5132 +0x14C5A 0x6728 +0x14C5B 0x9ED9 +0x14C5C 0x76EE +0x14C5D 0x6762 +0x14C5E 0x52FF +0x14C5F 0x9905 +0x14C60 0x5C24 +0x14C61 0x623B +0x14C62 0x7C7E +0x14C63 0x8CB0 +0x14C64 0x554F +0x14C65 0x60B6 +0x14C66 0x7D0B +0x14C67 0x9580 +0x14C68 0x5301 +0x14C69 0x4E5F +0x14C6A 0x51B6 +0x14C6B 0x591C +0x14C6C 0x723A +0x14C6D 0x8036 +0x14C6E 0x91CE +0x14C6F 0x5F25 +0x14C70 0x77E2 +0x14C71 0x5384 +0x14C72 0x5F79 +0x14C73 0x7D04 +0x14C74 0x85AC +0x14C75 0x8A33 +0x14C76 0x8E8D +0x14C77 0x9756 +0x14C78 0x67F3 +0x14C79 0x85AE +0x14C7A 0x9453 +0x14C7B 0x6109 +0x14C7C 0x6108 +0x14C7D 0x6CB9 +0x14C7E 0x7652 +0x14D21 0x8AED +0x14D22 0x8F38 +0x14D23 0x552F +0x14D24 0x4F51 +0x14D25 0x512A +0x14D26 0x52C7 +0x14D27 0x53CB +0x14D28 0x5BA5 +0x14D29 0x5E7D +0x14D2A 0x60A0 +0x14D2B 0x6182 +0x14D2C 0x63D6 +0x14D2D 0x6709 +0x14D2E 0x67DA +0x14D2F 0x6E67 +0x14D30 0x6D8C +0x14D31 0x7336 +0x14D32 0x7337 +0x14D33 0x7531 +0x14D34 0x7950 +0x14D35 0x88D5 +0x14D36 0x8A98 +0x14D37 0x904A +0x14D38 0x9091 +0x14D39 0x90F5 +0x14D3A 0x96C4 +0x14D3B 0x878D +0x14D3C 0x5915 +0x14D3D 0x4E88 +0x14D3E 0x4F59 +0x14D3F 0x4E0E +0x14D40 0x8A89 +0x14D41 0x8F3F +0x14D42 0x9810 +0x14D43 0x50AD +0x14D44 0x5E7C +0x14D45 0x5996 +0x14D46 0x5BB9 +0x14D47 0x5EB8 +0x14D48 0x63DA +0x14D49 0x63FA +0x14D4A 0x64C1 +0x14D4B 0x66DC +0x14D4C 0x694A +0x14D4D 0x69D8 +0x14D4E 0x6D0B +0x14D4F 0x6EB6 +0x14D50 0x7194 +0x14D51 0x7528 +0x14D52 0x7AAF +0x14D53 0x7F8A +0x14D54 0x8000 +0x14D55 0x8449 +0x14D56 0x84C9 +0x14D57 0x8981 +0x14D58 0x8B21 +0x14D59 0x8E0A +0x14D5A 0x9065 +0x14D5B 0x967D +0x14D5C 0x990A +0x14D5D 0x617E +0x14D5E 0x6291 +0x14D5F 0x6B32 +0x14D60 0x6C83 +0x14D61 0x6D74 +0x14D62 0x7FCC +0x14D63 0x7FFC +0x14D64 0x6DC0 +0x14D65 0x7F85 +0x14D66 0x87BA +0x14D67 0x88F8 +0x14D68 0x6765 +0x14D69 0x83B1 +0x14D6A 0x983C +0x14D6B 0x96F7 +0x14D6C 0x6D1B +0x14D6D 0x7D61 +0x14D6E 0x843D +0x14D6F 0x916A +0x14D70 0x4E71 +0x14D71 0x5375 +0x14D72 0x5D50 +0x14D73 0x6B04 +0x14D74 0x6FEB +0x14D75 0x85CD +0x14D76 0x862D +0x14D77 0x89A7 +0x14D78 0x5229 +0x14D79 0x540F +0x14D7A 0x5C65 +0x14D7B 0x674E +0x14D7C 0x68A8 +0x14D7D 0x7406 +0x14D7E 0x7483 +0x14E21 0x75E2 +0x14E22 0x88CF +0x14E23 0x88E1 +0x14E24 0x91CC +0x14E25 0x96E2 +0x14E26 0x9678 +0x14E27 0x5F8B +0x14E28 0x7387 +0x14E29 0x7ACB +0x14E2A 0x844E +0x14E2B 0x63A0 +0x14E2C 0x7565 +0x14E2D 0x5289 +0x14E2E 0x6D41 +0x14E2F 0x6E9C +0x14E30 0x7409 +0x14E31 0x7559 +0x14E32 0x786B +0x14E33 0x7C92 +0x14E34 0x9686 +0x14E35 0x7ADC +0x14E36 0x9F8D +0x14E37 0x4FB6 +0x14E38 0x616E +0x14E39 0x65C5 +0x14E3A 0x865C +0x14E3B 0x4E86 +0x14E3C 0x4EAE +0x14E3D 0x50DA +0x14E3E 0x4E21 +0x14E3F 0x51CC +0x14E40 0x5BEE +0x14E41 0x6599 +0x14E42 0x6881 +0x14E43 0x6DBC +0x14E44 0x731F +0x14E45 0x7642 +0x14E46 0x77AD +0x14E47 0x7A1C +0x14E48 0x7CE7 +0x14E49 0x826F +0x14E4A 0x8AD2 +0x14E4B 0x907C +0x14E4C 0x91CF +0x14E4D 0x9675 +0x14E4E 0x9818 +0x14E4F 0x529B +0x14E50 0x7DD1 +0x14E51 0x502B +0x14E52 0x5398 +0x14E53 0x6797 +0x14E54 0x6DCB +0x14E55 0x71D0 +0x14E56 0x7433 +0x14E57 0x81E8 +0x14E58 0x8F2A +0x14E59 0x96A3 +0x14E5A 0x9C57 +0x14E5B 0x9E9F +0x14E5C 0x7460 +0x14E5D 0x5841 +0x14E5E 0x6D99 +0x14E5F 0x7D2F +0x14E60 0x985E +0x14E61 0x4EE4 +0x14E62 0x4F36 +0x14E63 0x4F8B +0x14E64 0x51B7 +0x14E65 0x52B1 +0x14E66 0x5DBA +0x14E67 0x601C +0x14E68 0x73B2 +0x14E69 0x793C +0x14E6A 0x82D3 +0x14E6B 0x9234 +0x14E6C 0x96B7 +0x14E6D 0x96F6 +0x14E6E 0x970A +0x14E6F 0x9E97 +0x14E70 0x9F62 +0x14E71 0x66A6 +0x14E72 0x6B74 +0x14E73 0x5217 +0x14E74 0x52A3 +0x14E75 0x70C8 +0x14E76 0x88C2 +0x14E77 0x5EC9 +0x14E78 0x604B +0x14E79 0x6190 +0x14E7A 0x6F23 +0x14E7B 0x7149 +0x14E7C 0x7C3E +0x14E7D 0x7DF4 +0x14E7E 0x806F +0x14F21 0x84EE +0x14F22 0x9023 +0x14F23 0x932C +0x14F24 0x5442 +0x14F25 0x9B6F +0x14F26 0x6AD3 +0x14F27 0x7089 +0x14F28 0x8CC2 +0x14F29 0x8DEF +0x14F2A 0x9732 +0x14F2B 0x52B4 +0x14F2C 0x5A41 +0x14F2D 0x5ECA +0x14F2E 0x5F04 +0x14F2F 0x6717 +0x14F30 0x697C +0x14F31 0x6994 +0x14F32 0x6D6A +0x14F33 0x6F0F +0x14F34 0x7262 +0x14F35 0x72FC +0x14F36 0x7BED +0x14F37 0x8001 +0x14F38 0x807E +0x14F39 0x874B +0x14F3A 0x90CE +0x14F3B 0x516D +0x14F3C 0x9E93 +0x14F3D 0x7984 +0x14F3E 0x808B +0x14F3F 0x9332 +0x14F40 0x8AD6 +0x14F41 0x502D +0x14F42 0x548C +0x14F43 0x8A71 +0x14F44 0x6B6A +0x14F45 0x8CC4 +0x14F46 0x8107 +0x14F47 0x60D1 +0x14F48 0x67A0 +0x14F49 0x9DF2 +0x14F4A 0x4E99 +0x14F4B 0x4E98 +0x14F4C 0x9C10 +0x14F4D 0x8A6B +0x14F4E 0x85C1 +0x14F4F 0x8568 +0x14F50 0x6900 +0x14F51 0x6E7E +0x14F52 0x7897 +0x14F53 0x8155 +0x14F54 0x20B9F +0x14F55 0x5B41 +0x14F56 0x5B56 +0x14F57 0x5B7D +0x14F58 0x5B93 +0x14F59 0x5BD8 +0x14F5A 0x5BEC +0x14F5B 0x5C12 +0x14F5C 0x5C1E +0x14F5D 0x5C23 +0x14F5E 0x5C2B +0x14F5F 0x378D +0x14F60 0x5C62 +0x14F61 0xFA3B +0x14F62 0xFA3C +0x14F63 0x216B4 +0x14F64 0x5C7A +0x14F65 0x5C8F +0x14F66 0x5C9F +0x14F67 0x5CA3 +0x14F68 0x5CAA +0x14F69 0x5CBA +0x14F6A 0x5CCB +0x14F6B 0x5CD0 +0x14F6C 0x5CD2 +0x14F6D 0x5CF4 +0x14F6E 0x21E34 +0x14F6F 0x37E2 +0x14F70 0x5D0D +0x14F71 0x5D27 +0x14F72 0xFA11 +0x14F73 0x5D46 +0x14F74 0x5D47 +0x14F75 0x5D53 +0x14F76 0x5D4A +0x14F77 0x5D6D +0x14F78 0x5D81 +0x14F79 0x5DA0 +0x14F7A 0x5DA4 +0x14F7B 0x5DA7 +0x14F7C 0x5DB8 +0x14F7D 0x5DCB +0x14F7E 0x541E +0x15021 0x5F0C +0x15022 0x4E10 +0x15023 0x4E15 +0x15024 0x4E2A +0x15025 0x4E31 +0x15026 0x4E36 +0x15027 0x4E3C +0x15028 0x4E3F +0x15029 0x4E42 +0x1502A 0x4E56 +0x1502B 0x4E58 +0x1502C 0x4E82 +0x1502D 0x4E85 +0x1502E 0x8C6B +0x1502F 0x4E8A +0x15030 0x8212 +0x15031 0x5F0D +0x15032 0x4E8E +0x15033 0x4E9E +0x15034 0x4E9F +0x15035 0x4EA0 +0x15036 0x4EA2 +0x15037 0x4EB0 +0x15038 0x4EB3 +0x15039 0x4EB6 +0x1503A 0x4ECE +0x1503B 0x4ECD +0x1503C 0x4EC4 +0x1503D 0x4EC6 +0x1503E 0x4EC2 +0x1503F 0x4ED7 +0x15040 0x4EDE +0x15041 0x4EED +0x15042 0x4EDF +0x15043 0x4EF7 +0x15044 0x4F09 +0x15045 0x4F5A +0x15046 0x4F30 +0x15047 0x4F5B +0x15048 0x4F5D +0x15049 0x4F57 +0x1504A 0x4F47 +0x1504B 0x4F76 +0x1504C 0x4F88 +0x1504D 0x4F8F +0x1504E 0x4F98 +0x1504F 0x4F7B +0x15050 0x4F69 +0x15051 0x4F70 +0x15052 0x4F91 +0x15053 0x4F6F +0x15054 0x4F86 +0x15055 0x4F96 +0x15056 0x5118 +0x15057 0x4FD4 +0x15058 0x4FDF +0x15059 0x4FCE +0x1505A 0x4FD8 +0x1505B 0x4FDB +0x1505C 0x4FD1 +0x1505D 0x4FDA +0x1505E 0x4FD0 +0x1505F 0x4FE4 +0x15060 0x4FE5 +0x15061 0x501A +0x15062 0x5028 +0x15063 0x5014 +0x15064 0x502A +0x15065 0x5025 +0x15066 0x5005 +0x15067 0x4F1C +0x15068 0x4FF6 +0x15069 0x5021 +0x1506A 0x5029 +0x1506B 0x502C +0x1506C 0x4FFE +0x1506D 0x4FEF +0x1506E 0x5011 +0x1506F 0x5006 +0x15070 0x5043 +0x15071 0x5047 +0x15072 0x6703 +0x15073 0x5055 +0x15074 0x5050 +0x15075 0x5048 +0x15076 0x505A +0x15077 0x5056 +0x15078 0x506C +0x15079 0x5078 +0x1507A 0x5080 +0x1507B 0x509A +0x1507C 0x5085 +0x1507D 0x50B4 +0x1507E 0x50B2 +0x15121 0x50C9 +0x15122 0x50CA +0x15123 0x50B3 +0x15124 0x50C2 +0x15125 0x50D6 +0x15126 0x50DE +0x15127 0x50E5 +0x15128 0x50ED +0x15129 0x50E3 +0x1512A 0x50EE +0x1512B 0x50F9 +0x1512C 0x50F5 +0x1512D 0x5109 +0x1512E 0x5101 +0x1512F 0x5102 +0x15130 0x5116 +0x15131 0x5115 +0x15132 0x5114 +0x15133 0x511A +0x15134 0x5121 +0x15135 0x513A +0x15136 0x5137 +0x15137 0x513C +0x15138 0x513B +0x15139 0x513F +0x1513A 0x5140 +0x1513B 0x5152 +0x1513C 0x514C +0x1513D 0x5154 +0x1513E 0x5162 +0x1513F 0x7AF8 +0x15140 0x5169 +0x15141 0x516A +0x15142 0x516E +0x15143 0x5180 +0x15144 0x5182 +0x15145 0x56D8 +0x15146 0x518C +0x15147 0x5189 +0x15148 0x518F +0x15149 0x5191 +0x1514A 0x5193 +0x1514B 0x5195 +0x1514C 0x5196 +0x1514D 0x51A4 +0x1514E 0x51A6 +0x1514F 0x51A2 +0x15150 0x51A9 +0x15151 0x51AA +0x15152 0x51AB +0x15153 0x51B3 +0x15154 0x51B1 +0x15155 0x51B2 +0x15156 0x51B0 +0x15157 0x51B5 +0x15158 0x51BD +0x15159 0x51C5 +0x1515A 0x51C9 +0x1515B 0x51DB +0x1515C 0x51E0 +0x1515D 0x8655 +0x1515E 0x51E9 +0x1515F 0x51ED +0x15160 0x51F0 +0x15161 0x51F5 +0x15162 0x51FE +0x15163 0x5204 +0x15164 0x520B +0x15165 0x5214 +0x15166 0x520E +0x15167 0x5227 +0x15168 0x522A +0x15169 0x522E +0x1516A 0x5233 +0x1516B 0x5239 +0x1516C 0x524F +0x1516D 0x5244 +0x1516E 0x524B +0x1516F 0x524C +0x15170 0x525E +0x15171 0x5254 +0x15172 0x526A +0x15173 0x5274 +0x15174 0x5269 +0x15175 0x5273 +0x15176 0x527F +0x15177 0x527D +0x15178 0x528D +0x15179 0x5294 +0x1517A 0x5292 +0x1517B 0x5271 +0x1517C 0x5288 +0x1517D 0x5291 +0x1517E 0x8FA8 +0x15221 0x8FA7 +0x15222 0x52AC +0x15223 0x52AD +0x15224 0x52BC +0x15225 0x52B5 +0x15226 0x52C1 +0x15227 0x52CD +0x15228 0x52D7 +0x15229 0x52DE +0x1522A 0x52E3 +0x1522B 0x52E6 +0x1522C 0x98ED +0x1522D 0x52E0 +0x1522E 0x52F3 +0x1522F 0x52F5 +0x15230 0x52F8 +0x15231 0x52F9 +0x15232 0x5306 +0x15233 0x5308 +0x15234 0x7538 +0x15235 0x530D +0x15236 0x5310 +0x15237 0x530F +0x15238 0x5315 +0x15239 0x531A +0x1523A 0x5323 +0x1523B 0x532F +0x1523C 0x5331 +0x1523D 0x5333 +0x1523E 0x5338 +0x1523F 0x5340 +0x15240 0x5346 +0x15241 0x5345 +0x15242 0x4E17 +0x15243 0x5349 +0x15244 0x534D +0x15245 0x51D6 +0x15246 0x535E +0x15247 0x5369 +0x15248 0x536E +0x15249 0x5918 +0x1524A 0x537B +0x1524B 0x5377 +0x1524C 0x5382 +0x1524D 0x5396 +0x1524E 0x53A0 +0x1524F 0x53A6 +0x15250 0x53A5 +0x15251 0x53AE +0x15252 0x53B0 +0x15253 0x53B6 +0x15254 0x53C3 +0x15255 0x7C12 +0x15256 0x96D9 +0x15257 0x53DF +0x15258 0x66FC +0x15259 0x71EE +0x1525A 0x53EE +0x1525B 0x53E8 +0x1525C 0x53ED +0x1525D 0x53FA +0x1525E 0x5401 +0x1525F 0x543D +0x15260 0x5440 +0x15261 0x542C +0x15262 0x542D +0x15263 0x543C +0x15264 0x542E +0x15265 0x5436 +0x15266 0x5429 +0x15267 0x541D +0x15268 0x544E +0x15269 0x548F +0x1526A 0x5475 +0x1526B 0x548E +0x1526C 0x545F +0x1526D 0x5471 +0x1526E 0x5477 +0x1526F 0x5470 +0x15270 0x5492 +0x15271 0x547B +0x15272 0x5480 +0x15273 0x5476 +0x15274 0x5484 +0x15275 0x5490 +0x15276 0x5486 +0x15277 0x54C7 +0x15278 0x54A2 +0x15279 0x54B8 +0x1527A 0x54A5 +0x1527B 0x54AC +0x1527C 0x54C4 +0x1527D 0x54C8 +0x1527E 0x54A8 +0x15321 0x54AB +0x15322 0x54C2 +0x15323 0x54A4 +0x15324 0x54BE +0x15325 0x54BC +0x15326 0x54D8 +0x15327 0x54E5 +0x15328 0x54E6 +0x15329 0x550F +0x1532A 0x5514 +0x1532B 0x54FD +0x1532C 0x54EE +0x1532D 0x54ED +0x1532E 0x54FA +0x1532F 0x54E2 +0x15330 0x5539 +0x15331 0x5540 +0x15332 0x5563 +0x15333 0x554C +0x15334 0x552E +0x15335 0x555C +0x15336 0x5545 +0x15337 0x5556 +0x15338 0x5557 +0x15339 0x5538 +0x1533A 0x5533 +0x1533B 0x555D +0x1533C 0x5599 +0x1533D 0x5580 +0x1533E 0x54AF +0x1533F 0x558A +0x15340 0x559F +0x15341 0x557B +0x15342 0x557E +0x15343 0x5598 +0x15344 0x559E +0x15345 0x55AE +0x15346 0x557C +0x15347 0x5583 +0x15348 0x55A9 +0x15349 0x5587 +0x1534A 0x55A8 +0x1534B 0x55DA +0x1534C 0x55C5 +0x1534D 0x55DF +0x1534E 0x55C4 +0x1534F 0x55DC +0x15350 0x55E4 +0x15351 0x55D4 +0x15352 0x5614 +0x15353 0x55F7 +0x15354 0x5616 +0x15355 0x55FE +0x15356 0x55FD +0x15357 0x561B +0x15358 0x55F9 +0x15359 0x564E +0x1535A 0x5650 +0x1535B 0x71DF +0x1535C 0x5634 +0x1535D 0x5636 +0x1535E 0x5632 +0x1535F 0x5638 +0x15360 0x566B +0x15361 0x5664 +0x15362 0x562F +0x15363 0x566C +0x15364 0x566A +0x15365 0x5686 +0x15366 0x5680 +0x15367 0x568A +0x15368 0x56A0 +0x15369 0x5694 +0x1536A 0x568F +0x1536B 0x56A5 +0x1536C 0x56AE +0x1536D 0x56B6 +0x1536E 0x56B4 +0x1536F 0x56C2 +0x15370 0x56BC +0x15371 0x56C1 +0x15372 0x56C3 +0x15373 0x56C0 +0x15374 0x56C8 +0x15375 0x56CE +0x15376 0x56D1 +0x15377 0x56D3 +0x15378 0x56D7 +0x15379 0x56EE +0x1537A 0x56F9 +0x1537B 0x5700 +0x1537C 0x56FF +0x1537D 0x5704 +0x1537E 0x5709 +0x15421 0x5708 +0x15422 0x570B +0x15423 0x570D +0x15424 0x5713 +0x15425 0x5718 +0x15426 0x5716 +0x15427 0x55C7 +0x15428 0x571C +0x15429 0x5726 +0x1542A 0x5737 +0x1542B 0x5738 +0x1542C 0x574E +0x1542D 0x573B +0x1542E 0x5740 +0x1542F 0x574F +0x15430 0x5769 +0x15431 0x57C0 +0x15432 0x5788 +0x15433 0x5761 +0x15434 0x577F +0x15435 0x5789 +0x15436 0x5793 +0x15437 0x57A0 +0x15438 0x57B3 +0x15439 0x57A4 +0x1543A 0x57AA +0x1543B 0x57B0 +0x1543C 0x57C3 +0x1543D 0x57C6 +0x1543E 0x57D4 +0x1543F 0x57D2 +0x15440 0x57D3 +0x15441 0x580A +0x15442 0x57D6 +0x15443 0x57E3 +0x15444 0x580B +0x15445 0x5819 +0x15446 0x581D +0x15447 0x5872 +0x15448 0x5821 +0x15449 0x5862 +0x1544A 0x584B +0x1544B 0x5870 +0x1544C 0x6BC0 +0x1544D 0x5852 +0x1544E 0x583D +0x1544F 0x5879 +0x15450 0x5885 +0x15451 0x58B9 +0x15452 0x589F +0x15453 0x58AB +0x15454 0x58BA +0x15455 0x58DE +0x15456 0x58BB +0x15457 0x58B8 +0x15458 0x58AE +0x15459 0x58C5 +0x1545A 0x58D3 +0x1545B 0x58D1 +0x1545C 0x58D7 +0x1545D 0x58D9 +0x1545E 0x58D8 +0x1545F 0x58E5 +0x15460 0x58DC +0x15461 0x58E4 +0x15462 0x58DF +0x15463 0x58EF +0x15464 0x58FA +0x15465 0x58F9 +0x15466 0x58FB +0x15467 0x58FC +0x15468 0x58FD +0x15469 0x5902 +0x1546A 0x590A +0x1546B 0x5910 +0x1546C 0x591B +0x1546D 0x68A6 +0x1546E 0x5925 +0x1546F 0x592C +0x15470 0x592D +0x15471 0x5932 +0x15472 0x5938 +0x15473 0x593E +0x15474 0x7AD2 +0x15475 0x5955 +0x15476 0x5950 +0x15477 0x594E +0x15478 0x595A +0x15479 0x5958 +0x1547A 0x5962 +0x1547B 0x5960 +0x1547C 0x5967 +0x1547D 0x596C +0x1547E 0x5969 +0x15521 0x5978 +0x15522 0x5981 +0x15523 0x599D +0x15524 0x4F5E +0x15525 0x4FAB +0x15526 0x59A3 +0x15527 0x59B2 +0x15528 0x59C6 +0x15529 0x59E8 +0x1552A 0x59DC +0x1552B 0x598D +0x1552C 0x59D9 +0x1552D 0x59DA +0x1552E 0x5A25 +0x1552F 0x5A1F +0x15530 0x5A11 +0x15531 0x5A1C +0x15532 0x5A09 +0x15533 0x5A1A +0x15534 0x5A40 +0x15535 0x5A6C +0x15536 0x5A49 +0x15537 0x5A35 +0x15538 0x5A36 +0x15539 0x5A62 +0x1553A 0x5A6A +0x1553B 0x5A9A +0x1553C 0x5ABC +0x1553D 0x5ABE +0x1553E 0x5ACB +0x1553F 0x5AC2 +0x15540 0x5ABD +0x15541 0x5AE3 +0x15542 0x5AD7 +0x15543 0x5AE6 +0x15544 0x5AE9 +0x15545 0x5AD6 +0x15546 0x5AFA +0x15547 0x5AFB +0x15548 0x5B0C +0x15549 0x5B0B +0x1554A 0x5B16 +0x1554B 0x5B32 +0x1554C 0x5AD0 +0x1554D 0x5B2A +0x1554E 0x5B36 +0x1554F 0x5B3E +0x15550 0x5B43 +0x15551 0x5B45 +0x15552 0x5B40 +0x15553 0x5B51 +0x15554 0x5B55 +0x15555 0x5B5A +0x15556 0x5B5B +0x15557 0x5B65 +0x15558 0x5B69 +0x15559 0x5B70 +0x1555A 0x5B73 +0x1555B 0x5B75 +0x1555C 0x5B78 +0x1555D 0x6588 +0x1555E 0x5B7A +0x1555F 0x5B80 +0x15560 0x5B83 +0x15561 0x5BA6 +0x15562 0x5BB8 +0x15563 0x5BC3 +0x15564 0x5BC7 +0x15565 0x5BC9 +0x15566 0x5BD4 +0x15567 0x5BD0 +0x15568 0x5BE4 +0x15569 0x5BE6 +0x1556A 0x5BE2 +0x1556B 0x5BDE +0x1556C 0x5BE5 +0x1556D 0x5BEB +0x1556E 0x5BF0 +0x1556F 0x5BF6 +0x15570 0x5BF3 +0x15571 0x5C05 +0x15572 0x5C07 +0x15573 0x5C08 +0x15574 0x5C0D +0x15575 0x5C13 +0x15576 0x5C20 +0x15577 0x5C22 +0x15578 0x5C28 +0x15579 0x5C38 +0x1557A 0x5C39 +0x1557B 0x5C41 +0x1557C 0x5C46 +0x1557D 0x5C4E +0x1557E 0x5C53 +0x15621 0x5C50 +0x15622 0x5C4F +0x15623 0x5B71 +0x15624 0x5C6C +0x15625 0x5C6E +0x15626 0x4E62 +0x15627 0x5C76 +0x15628 0x5C79 +0x15629 0x5C8C +0x1562A 0x5C91 +0x1562B 0x5C94 +0x1562C 0x599B +0x1562D 0x5CAB +0x1562E 0x5CBB +0x1562F 0x5CB6 +0x15630 0x5CBC +0x15631 0x5CB7 +0x15632 0x5CC5 +0x15633 0x5CBE +0x15634 0x5CC7 +0x15635 0x5CD9 +0x15636 0x5CE9 +0x15637 0x5CFD +0x15638 0x5CFA +0x15639 0x5CED +0x1563A 0x5D8C +0x1563B 0x5CEA +0x1563C 0x5D0B +0x1563D 0x5D15 +0x1563E 0x5D17 +0x1563F 0x5D5C +0x15640 0x5D1F +0x15641 0x5D1B +0x15642 0x5D11 +0x15643 0x5D14 +0x15644 0x5D22 +0x15645 0x5D1A +0x15646 0x5D19 +0x15647 0x5D18 +0x15648 0x5D4C +0x15649 0x5D52 +0x1564A 0x5D4E +0x1564B 0x5D4B +0x1564C 0x5D6C +0x1564D 0x5D73 +0x1564E 0x5D76 +0x1564F 0x5D87 +0x15650 0x5D84 +0x15651 0x5D82 +0x15652 0x5DA2 +0x15653 0x5D9D +0x15654 0x5DAC +0x15655 0x5DAE +0x15656 0x5DBD +0x15657 0x5D90 +0x15658 0x5DB7 +0x15659 0x5DBC +0x1565A 0x5DC9 +0x1565B 0x5DCD +0x1565C 0x5DD3 +0x1565D 0x5DD2 +0x1565E 0x5DD6 +0x1565F 0x5DDB +0x15660 0x5DEB +0x15661 0x5DF2 +0x15662 0x5DF5 +0x15663 0x5E0B +0x15664 0x5E1A +0x15665 0x5E19 +0x15666 0x5E11 +0x15667 0x5E1B +0x15668 0x5E36 +0x15669 0x5E37 +0x1566A 0x5E44 +0x1566B 0x5E43 +0x1566C 0x5E40 +0x1566D 0x5E4E +0x1566E 0x5E57 +0x1566F 0x5E54 +0x15670 0x5E5F +0x15671 0x5E62 +0x15672 0x5E64 +0x15673 0x5E47 +0x15674 0x5E75 +0x15675 0x5E76 +0x15676 0x5E7A +0x15677 0x9EBC +0x15678 0x5E7F +0x15679 0x5EA0 +0x1567A 0x5EC1 +0x1567B 0x5EC2 +0x1567C 0x5EC8 +0x1567D 0x5ED0 +0x1567E 0x5ECF +0x15721 0x5ED6 +0x15722 0x5EE3 +0x15723 0x5EDD +0x15724 0x5EDA +0x15725 0x5EDB +0x15726 0x5EE2 +0x15727 0x5EE1 +0x15728 0x5EE8 +0x15729 0x5EE9 +0x1572A 0x5EEC +0x1572B 0x5EF1 +0x1572C 0x5EF3 +0x1572D 0x5EF0 +0x1572E 0x5EF4 +0x1572F 0x5EF8 +0x15730 0x5EFE +0x15731 0x5F03 +0x15732 0x5F09 +0x15733 0x5F5D +0x15734 0x5F5C +0x15735 0x5F0B +0x15736 0x5F11 +0x15737 0x5F16 +0x15738 0x5F29 +0x15739 0x5F2D +0x1573A 0x5F38 +0x1573B 0x5F41 +0x1573C 0x5F48 +0x1573D 0x5F4C +0x1573E 0x5F4E +0x1573F 0x5F2F +0x15740 0x5F51 +0x15741 0x5F56 +0x15742 0x5F57 +0x15743 0x5F59 +0x15744 0x5F61 +0x15745 0x5F6D +0x15746 0x5F73 +0x15747 0x5F77 +0x15748 0x5F83 +0x15749 0x5F82 +0x1574A 0x5F7F +0x1574B 0x5F8A +0x1574C 0x5F88 +0x1574D 0x5F91 +0x1574E 0x5F87 +0x1574F 0x5F9E +0x15750 0x5F99 +0x15751 0x5F98 +0x15752 0x5FA0 +0x15753 0x5FA8 +0x15754 0x5FAD +0x15755 0x5FBC +0x15756 0x5FD6 +0x15757 0x5FFB +0x15758 0x5FE4 +0x15759 0x5FF8 +0x1575A 0x5FF1 +0x1575B 0x5FDD +0x1575C 0x60B3 +0x1575D 0x5FFF +0x1575E 0x6021 +0x1575F 0x6060 +0x15760 0x6019 +0x15761 0x6010 +0x15762 0x6029 +0x15763 0x600E +0x15764 0x6031 +0x15765 0x601B +0x15766 0x6015 +0x15767 0x602B +0x15768 0x6026 +0x15769 0x600F +0x1576A 0x603A +0x1576B 0x605A +0x1576C 0x6041 +0x1576D 0x606A +0x1576E 0x6077 +0x1576F 0x605F +0x15770 0x604A +0x15771 0x6046 +0x15772 0x604D +0x15773 0x6063 +0x15774 0x6043 +0x15775 0x6064 +0x15776 0x6042 +0x15777 0x606C +0x15778 0x606B +0x15779 0x6059 +0x1577A 0x6081 +0x1577B 0x608D +0x1577C 0x60E7 +0x1577D 0x6083 +0x1577E 0x609A +0x15821 0x6084 +0x15822 0x609B +0x15823 0x6096 +0x15824 0x6097 +0x15825 0x6092 +0x15826 0x60A7 +0x15827 0x608B +0x15828 0x60E1 +0x15829 0x60B8 +0x1582A 0x60E0 +0x1582B 0x60D3 +0x1582C 0x60B4 +0x1582D 0x5FF0 +0x1582E 0x60BD +0x1582F 0x60C6 +0x15830 0x60B5 +0x15831 0x60D8 +0x15832 0x614D +0x15833 0x6115 +0x15834 0x6106 +0x15835 0x60F6 +0x15836 0x60F7 +0x15837 0x6100 +0x15838 0x60F4 +0x15839 0x60FA +0x1583A 0x6103 +0x1583B 0x6121 +0x1583C 0x60FB +0x1583D 0x60F1 +0x1583E 0x610D +0x1583F 0x610E +0x15840 0x6147 +0x15841 0x613E +0x15842 0x6128 +0x15843 0x6127 +0x15844 0x614A +0x15845 0x613F +0x15846 0x613C +0x15847 0x612C +0x15848 0x6134 +0x15849 0x613D +0x1584A 0x6142 +0x1584B 0x6144 +0x1584C 0x6173 +0x1584D 0x6177 +0x1584E 0x6158 +0x1584F 0x6159 +0x15850 0x615A +0x15851 0x616B +0x15852 0x6174 +0x15853 0x616F +0x15854 0x6165 +0x15855 0x6171 +0x15856 0x615F +0x15857 0x615D +0x15858 0x6153 +0x15859 0x6175 +0x1585A 0x6199 +0x1585B 0x6196 +0x1585C 0x6187 +0x1585D 0x61AC +0x1585E 0x6194 +0x1585F 0x619A +0x15860 0x618A +0x15861 0x6191 +0x15862 0x61AB +0x15863 0x61AE +0x15864 0x61CC +0x15865 0x61CA +0x15866 0x61C9 +0x15867 0x61F7 +0x15868 0x61C8 +0x15869 0x61C3 +0x1586A 0x61C6 +0x1586B 0x61BA +0x1586C 0x61CB +0x1586D 0x7F79 +0x1586E 0x61CD +0x1586F 0x61E6 +0x15870 0x61E3 +0x15871 0x61F6 +0x15872 0x61FA +0x15873 0x61F4 +0x15874 0x61FF +0x15875 0x61FD +0x15876 0x61FC +0x15877 0x61FE +0x15878 0x6200 +0x15879 0x6208 +0x1587A 0x6209 +0x1587B 0x620D +0x1587C 0x620C +0x1587D 0x6214 +0x1587E 0x621B +0x15921 0x621E +0x15922 0x6221 +0x15923 0x622A +0x15924 0x622E +0x15925 0x6230 +0x15926 0x6232 +0x15927 0x6233 +0x15928 0x6241 +0x15929 0x624E +0x1592A 0x625E +0x1592B 0x6263 +0x1592C 0x625B +0x1592D 0x6260 +0x1592E 0x6268 +0x1592F 0x627C +0x15930 0x6282 +0x15931 0x6289 +0x15932 0x627E +0x15933 0x6292 +0x15934 0x6293 +0x15935 0x6296 +0x15936 0x62D4 +0x15937 0x6283 +0x15938 0x6294 +0x15939 0x62D7 +0x1593A 0x62D1 +0x1593B 0x62BB +0x1593C 0x62CF +0x1593D 0x62FF +0x1593E 0x62C6 +0x1593F 0x64D4 +0x15940 0x62C8 +0x15941 0x62DC +0x15942 0x62CC +0x15943 0x62CA +0x15944 0x62C2 +0x15945 0x62C7 +0x15946 0x629B +0x15947 0x62C9 +0x15948 0x630C +0x15949 0x62EE +0x1594A 0x62F1 +0x1594B 0x6327 +0x1594C 0x6302 +0x1594D 0x6308 +0x1594E 0x62EF +0x1594F 0x62F5 +0x15950 0x6350 +0x15951 0x633E +0x15952 0x634D +0x15953 0x641C +0x15954 0x634F +0x15955 0x6396 +0x15956 0x638E +0x15957 0x6380 +0x15958 0x63AB +0x15959 0x6376 +0x1595A 0x63A3 +0x1595B 0x638F +0x1595C 0x6389 +0x1595D 0x639F +0x1595E 0x63B5 +0x1595F 0x636B +0x15960 0x6369 +0x15961 0x63BE +0x15962 0x63E9 +0x15963 0x63C0 +0x15964 0x63C6 +0x15965 0x63E3 +0x15966 0x63C9 +0x15967 0x63D2 +0x15968 0x63F6 +0x15969 0x63C4 +0x1596A 0x6416 +0x1596B 0x6434 +0x1596C 0x6406 +0x1596D 0x6413 +0x1596E 0x6426 +0x1596F 0x6436 +0x15970 0x651D +0x15971 0x6417 +0x15972 0x6428 +0x15973 0x640F +0x15974 0x6467 +0x15975 0x646F +0x15976 0x6476 +0x15977 0x644E +0x15978 0x652A +0x15979 0x6495 +0x1597A 0x6493 +0x1597B 0x64A5 +0x1597C 0x64A9 +0x1597D 0x6488 +0x1597E 0x64BC +0x15A21 0x64DA +0x15A22 0x64D2 +0x15A23 0x64C5 +0x15A24 0x64C7 +0x15A25 0x64BB +0x15A26 0x64D8 +0x15A27 0x64C2 +0x15A28 0x64F1 +0x15A29 0x64E7 +0x15A2A 0x8209 +0x15A2B 0x64E0 +0x15A2C 0x64E1 +0x15A2D 0x62AC +0x15A2E 0x64E3 +0x15A2F 0x64EF +0x15A30 0x652C +0x15A31 0x64F6 +0x15A32 0x64F4 +0x15A33 0x64F2 +0x15A34 0x64FA +0x15A35 0x6500 +0x15A36 0x64FD +0x15A37 0x6518 +0x15A38 0x651C +0x15A39 0x6505 +0x15A3A 0x6524 +0x15A3B 0x6523 +0x15A3C 0x652B +0x15A3D 0x6534 +0x15A3E 0x6535 +0x15A3F 0x6537 +0x15A40 0x6536 +0x15A41 0x6538 +0x15A42 0x754B +0x15A43 0x6548 +0x15A44 0x6556 +0x15A45 0x6555 +0x15A46 0x654D +0x15A47 0x6558 +0x15A48 0x655E +0x15A49 0x655D +0x15A4A 0x6572 +0x15A4B 0x6578 +0x15A4C 0x6582 +0x15A4D 0x6583 +0x15A4E 0x8B8A +0x15A4F 0x659B +0x15A50 0x659F +0x15A51 0x65AB +0x15A52 0x65B7 +0x15A53 0x65C3 +0x15A54 0x65C6 +0x15A55 0x65C1 +0x15A56 0x65C4 +0x15A57 0x65CC +0x15A58 0x65D2 +0x15A59 0x65DB +0x15A5A 0x65D9 +0x15A5B 0x65E0 +0x15A5C 0x65E1 +0x15A5D 0x65F1 +0x15A5E 0x6772 +0x15A5F 0x660A +0x15A60 0x6603 +0x15A61 0x65FB +0x15A62 0x6773 +0x15A63 0x6635 +0x15A64 0x6636 +0x15A65 0x6634 +0x15A66 0x661C +0x15A67 0x664F +0x15A68 0x6644 +0x15A69 0x6649 +0x15A6A 0x6641 +0x15A6B 0x665E +0x15A6C 0x665D +0x15A6D 0x6664 +0x15A6E 0x6667 +0x15A6F 0x6668 +0x15A70 0x665F +0x15A71 0x6662 +0x15A72 0x6670 +0x15A73 0x6683 +0x15A74 0x6688 +0x15A75 0x668E +0x15A76 0x6689 +0x15A77 0x6684 +0x15A78 0x6698 +0x15A79 0x669D +0x15A7A 0x66C1 +0x15A7B 0x66B9 +0x15A7C 0x66C9 +0x15A7D 0x66BE +0x15A7E 0x66BC +0x15B21 0x66C4 +0x15B22 0x66B8 +0x15B23 0x66D6 +0x15B24 0x66DA +0x15B25 0x66E0 +0x15B26 0x663F +0x15B27 0x66E6 +0x15B28 0x66E9 +0x15B29 0x66F0 +0x15B2A 0x66F5 +0x15B2B 0x66F7 +0x15B2C 0x670F +0x15B2D 0x6716 +0x15B2E 0x671E +0x15B2F 0x6726 +0x15B30 0x6727 +0x15B31 0x9738 +0x15B32 0x672E +0x15B33 0x673F +0x15B34 0x6736 +0x15B35 0x6741 +0x15B36 0x6738 +0x15B37 0x6737 +0x15B38 0x6746 +0x15B39 0x675E +0x15B3A 0x6760 +0x15B3B 0x6759 +0x15B3C 0x6763 +0x15B3D 0x6764 +0x15B3E 0x6789 +0x15B3F 0x6770 +0x15B40 0x67A9 +0x15B41 0x677C +0x15B42 0x676A +0x15B43 0x678C +0x15B44 0x678B +0x15B45 0x67A6 +0x15B46 0x67A1 +0x15B47 0x6785 +0x15B48 0x67B7 +0x15B49 0x67EF +0x15B4A 0x67B4 +0x15B4B 0x67EC +0x15B4C 0x67B3 +0x15B4D 0x67E9 +0x15B4E 0x67B8 +0x15B4F 0x67E4 +0x15B50 0x67DE +0x15B51 0x67DD +0x15B52 0x67E2 +0x15B53 0x67EE +0x15B54 0x67B9 +0x15B55 0x67CE +0x15B56 0x67C6 +0x15B57 0x67E7 +0x15B58 0x6A9C +0x15B59 0x681E +0x15B5A 0x6846 +0x15B5B 0x6829 +0x15B5C 0x6840 +0x15B5D 0x684D +0x15B5E 0x6832 +0x15B5F 0x684E +0x15B60 0x68B3 +0x15B61 0x682B +0x15B62 0x6859 +0x15B63 0x6863 +0x15B64 0x6877 +0x15B65 0x687F +0x15B66 0x689F +0x15B67 0x688F +0x15B68 0x68AD +0x15B69 0x6894 +0x15B6A 0x689D +0x15B6B 0x689B +0x15B6C 0x6883 +0x15B6D 0x6AAE +0x15B6E 0x68B9 +0x15B6F 0x6874 +0x15B70 0x68B5 +0x15B71 0x68A0 +0x15B72 0x68BA +0x15B73 0x690F +0x15B74 0x688D +0x15B75 0x687E +0x15B76 0x6901 +0x15B77 0x68CA +0x15B78 0x6908 +0x15B79 0x68D8 +0x15B7A 0x6922 +0x15B7B 0x6926 +0x15B7C 0x68E1 +0x15B7D 0x690C +0x15B7E 0x68CD +0x15C21 0x68D4 +0x15C22 0x68E7 +0x15C23 0x68D5 +0x15C24 0x6936 +0x15C25 0x6912 +0x15C26 0x6904 +0x15C27 0x68D7 +0x15C28 0x68E3 +0x15C29 0x6925 +0x15C2A 0x68F9 +0x15C2B 0x68E0 +0x15C2C 0x68EF +0x15C2D 0x6928 +0x15C2E 0x692A +0x15C2F 0x691A +0x15C30 0x6923 +0x15C31 0x6921 +0x15C32 0x68C6 +0x15C33 0x6979 +0x15C34 0x6977 +0x15C35 0x695C +0x15C36 0x6978 +0x15C37 0x696B +0x15C38 0x6954 +0x15C39 0x697E +0x15C3A 0x696E +0x15C3B 0x6939 +0x15C3C 0x6974 +0x15C3D 0x693D +0x15C3E 0x6959 +0x15C3F 0x6930 +0x15C40 0x6961 +0x15C41 0x695E +0x15C42 0x695D +0x15C43 0x6981 +0x15C44 0x696A +0x15C45 0x69B2 +0x15C46 0x69AE +0x15C47 0x69D0 +0x15C48 0x69BF +0x15C49 0x69C1 +0x15C4A 0x69D3 +0x15C4B 0x69BE +0x15C4C 0x69CE +0x15C4D 0x5BE8 +0x15C4E 0x69CA +0x15C4F 0x69DD +0x15C50 0x69BB +0x15C51 0x69C3 +0x15C52 0x69A7 +0x15C53 0x6A2E +0x15C54 0x6991 +0x15C55 0x69A0 +0x15C56 0x699C +0x15C57 0x6995 +0x15C58 0x69B4 +0x15C59 0x69DE +0x15C5A 0x69E8 +0x15C5B 0x6A02 +0x15C5C 0x6A1B +0x15C5D 0x69FF +0x15C5E 0x6B0A +0x15C5F 0x69F9 +0x15C60 0x69F2 +0x15C61 0x69E7 +0x15C62 0x6A05 +0x15C63 0x69B1 +0x15C64 0x6A1E +0x15C65 0x69ED +0x15C66 0x6A14 +0x15C67 0x69EB +0x15C68 0x6A0A +0x15C69 0x6A12 +0x15C6A 0x6AC1 +0x15C6B 0x6A23 +0x15C6C 0x6A13 +0x15C6D 0x6A44 +0x15C6E 0x6A0C +0x15C6F 0x6A72 +0x15C70 0x6A36 +0x15C71 0x6A78 +0x15C72 0x6A47 +0x15C73 0x6A62 +0x15C74 0x6A59 +0x15C75 0x6A66 +0x15C76 0x6A48 +0x15C77 0x6A38 +0x15C78 0x6A22 +0x15C79 0x6A90 +0x15C7A 0x6A8D +0x15C7B 0x6AA0 +0x15C7C 0x6A84 +0x15C7D 0x6AA2 +0x15C7E 0x6AA3 +0x15D21 0x6A97 +0x15D22 0x8617 +0x15D23 0x6ABB +0x15D24 0x6AC3 +0x15D25 0x6AC2 +0x15D26 0x6AB8 +0x15D27 0x6AB3 +0x15D28 0x6AAC +0x15D29 0x6ADE +0x15D2A 0x6AD1 +0x15D2B 0x6ADF +0x15D2C 0x6AAA +0x15D2D 0x6ADA +0x15D2E 0x6AEA +0x15D2F 0x6AFB +0x15D30 0x6B05 +0x15D31 0x8616 +0x15D32 0x6AFA +0x15D33 0x6B12 +0x15D34 0x6B16 +0x15D35 0x9B31 +0x15D36 0x6B1F +0x15D37 0x6B38 +0x15D38 0x6B37 +0x15D39 0x76DC +0x15D3A 0x6B39 +0x15D3B 0x98EE +0x15D3C 0x6B47 +0x15D3D 0x6B43 +0x15D3E 0x6B49 +0x15D3F 0x6B50 +0x15D40 0x6B59 +0x15D41 0x6B54 +0x15D42 0x6B5B +0x15D43 0x6B5F +0x15D44 0x6B61 +0x15D45 0x6B78 +0x15D46 0x6B79 +0x15D47 0x6B7F +0x15D48 0x6B80 +0x15D49 0x6B84 +0x15D4A 0x6B83 +0x15D4B 0x6B8D +0x15D4C 0x6B98 +0x15D4D 0x6B95 +0x15D4E 0x6B9E +0x15D4F 0x6BA4 +0x15D50 0x6BAA +0x15D51 0x6BAB +0x15D52 0x6BAF +0x15D53 0x6BB2 +0x15D54 0x6BB1 +0x15D55 0x6BB3 +0x15D56 0x6BB7 +0x15D57 0x6BBC +0x15D58 0x6BC6 +0x15D59 0x6BCB +0x15D5A 0x6BD3 +0x15D5B 0x6BDF +0x15D5C 0x6BEC +0x15D5D 0x6BEB +0x15D5E 0x6BF3 +0x15D5F 0x6BEF +0x15D60 0x9EBE +0x15D61 0x6C08 +0x15D62 0x6C13 +0x15D63 0x6C14 +0x15D64 0x6C1B +0x15D65 0x6C24 +0x15D66 0x6C23 +0x15D67 0x6C5E +0x15D68 0x6C55 +0x15D69 0x6C62 +0x15D6A 0x6C6A +0x15D6B 0x6C82 +0x15D6C 0x6C8D +0x15D6D 0x6C9A +0x15D6E 0x6C81 +0x15D6F 0x6C9B +0x15D70 0x6C7E +0x15D71 0x6C68 +0x15D72 0x6C73 +0x15D73 0x6C92 +0x15D74 0x6C90 +0x15D75 0x6CC4 +0x15D76 0x6CF1 +0x15D77 0x6CD3 +0x15D78 0x6CBD +0x15D79 0x6CD7 +0x15D7A 0x6CC5 +0x15D7B 0x6CDD +0x15D7C 0x6CAE +0x15D7D 0x6CB1 +0x15D7E 0x6CBE +0x15E21 0x6CBA +0x15E22 0x6CDB +0x15E23 0x6CEF +0x15E24 0x6CD9 +0x15E25 0x6CEA +0x15E26 0x6D1F +0x15E27 0x884D +0x15E28 0x6D36 +0x15E29 0x6D2B +0x15E2A 0x6D3D +0x15E2B 0x6D38 +0x15E2C 0x6D19 +0x15E2D 0x6D35 +0x15E2E 0x6D33 +0x15E2F 0x6D12 +0x15E30 0x6D0C +0x15E31 0x6D63 +0x15E32 0x6D93 +0x15E33 0x6D64 +0x15E34 0x6D5A +0x15E35 0x6D79 +0x15E36 0x6D59 +0x15E37 0x6D8E +0x15E38 0x6D95 +0x15E39 0x6FE4 +0x15E3A 0x6D85 +0x15E3B 0x6DF9 +0x15E3C 0x6E15 +0x15E3D 0x6E0A +0x15E3E 0x6DB5 +0x15E3F 0x6DC7 +0x15E40 0x6DE6 +0x15E41 0x6DB8 +0x15E42 0x6DC6 +0x15E43 0x6DEC +0x15E44 0x6DDE +0x15E45 0x6DCC +0x15E46 0x6DE8 +0x15E47 0x6DD2 +0x15E48 0x6DC5 +0x15E49 0x6DFA +0x15E4A 0x6DD9 +0x15E4B 0x6DE4 +0x15E4C 0x6DD5 +0x15E4D 0x6DEA +0x15E4E 0x6DEE +0x15E4F 0x6E2D +0x15E50 0x6E6E +0x15E51 0x6E2E +0x15E52 0x6E19 +0x15E53 0x6E72 +0x15E54 0x6E5F +0x15E55 0x6E3E +0x15E56 0x6E23 +0x15E57 0x6E6B +0x15E58 0x6E2B +0x15E59 0x6E76 +0x15E5A 0x6E4D +0x15E5B 0x6E1F +0x15E5C 0x6E43 +0x15E5D 0x6E3A +0x15E5E 0x6E4E +0x15E5F 0x6E24 +0x15E60 0x6EFF +0x15E61 0x6E1D +0x15E62 0x6E38 +0x15E63 0x6E82 +0x15E64 0x6EAA +0x15E65 0x6E98 +0x15E66 0x6EC9 +0x15E67 0x6EB7 +0x15E68 0x6ED3 +0x15E69 0x6EBD +0x15E6A 0x6EAF +0x15E6B 0x6EC4 +0x15E6C 0x6EB2 +0x15E6D 0x6ED4 +0x15E6E 0x6ED5 +0x15E6F 0x6E8F +0x15E70 0x6EA5 +0x15E71 0x6EC2 +0x15E72 0x6E9F +0x15E73 0x6F41 +0x15E74 0x6F11 +0x15E75 0x704C +0x15E76 0x6EEC +0x15E77 0x6EF8 +0x15E78 0x6EFE +0x15E79 0x6F3F +0x15E7A 0x6EF2 +0x15E7B 0x6F31 +0x15E7C 0x6EEF +0x15E7D 0x6F32 +0x15E7E 0x6ECC +0x15F21 0x6F3E +0x15F22 0x6F13 +0x15F23 0x6EF7 +0x15F24 0x6F86 +0x15F25 0x6F7A +0x15F26 0x6F78 +0x15F27 0x6F81 +0x15F28 0x6F80 +0x15F29 0x6F6F +0x15F2A 0x6F5B +0x15F2B 0x6FF3 +0x15F2C 0x6F6D +0x15F2D 0x6F82 +0x15F2E 0x6F7C +0x15F2F 0x6F58 +0x15F30 0x6F8E +0x15F31 0x6F91 +0x15F32 0x6FC2 +0x15F33 0x6F66 +0x15F34 0x6FB3 +0x15F35 0x6FA3 +0x15F36 0x6FA1 +0x15F37 0x6FA4 +0x15F38 0x6FB9 +0x15F39 0x6FC6 +0x15F3A 0x6FAA +0x15F3B 0x6FDF +0x15F3C 0x6FD5 +0x15F3D 0x6FEC +0x15F3E 0x6FD4 +0x15F3F 0x6FD8 +0x15F40 0x6FF1 +0x15F41 0x6FEE +0x15F42 0x6FDB +0x15F43 0x7009 +0x15F44 0x700B +0x15F45 0x6FFA +0x15F46 0x7011 +0x15F47 0x7001 +0x15F48 0x700F +0x15F49 0x6FFE +0x15F4A 0x701B +0x15F4B 0x701A +0x15F4C 0x6F74 +0x15F4D 0x701D +0x15F4E 0x7018 +0x15F4F 0x701F +0x15F50 0x7030 +0x15F51 0x703E +0x15F52 0x7032 +0x15F53 0x7051 +0x15F54 0x7063 +0x15F55 0x7099 +0x15F56 0x7092 +0x15F57 0x70AF +0x15F58 0x70F1 +0x15F59 0x70AC +0x15F5A 0x70B8 +0x15F5B 0x70B3 +0x15F5C 0x70AE +0x15F5D 0x70DF +0x15F5E 0x70CB +0x15F5F 0x70DD +0x15F60 0x70D9 +0x15F61 0x7109 +0x15F62 0x70FD +0x15F63 0x711C +0x15F64 0x7119 +0x15F65 0x7165 +0x15F66 0x7155 +0x15F67 0x7188 +0x15F68 0x7166 +0x15F69 0x7162 +0x15F6A 0x714C +0x15F6B 0x7156 +0x15F6C 0x716C +0x15F6D 0x718F +0x15F6E 0x71FB +0x15F6F 0x7184 +0x15F70 0x7195 +0x15F71 0x71A8 +0x15F72 0x71AC +0x15F73 0x71D7 +0x15F74 0x71B9 +0x15F75 0x71BE +0x15F76 0x71D2 +0x15F77 0x71C9 +0x15F78 0x71D4 +0x15F79 0x71CE +0x15F7A 0x71E0 +0x15F7B 0x71EC +0x15F7C 0x71E7 +0x15F7D 0x71F5 +0x15F7E 0x71FC +0x16021 0x71F9 +0x16022 0x71FF +0x16023 0x720D +0x16024 0x7210 +0x16025 0x721B +0x16026 0x7228 +0x16027 0x722D +0x16028 0x722C +0x16029 0x7230 +0x1602A 0x7232 +0x1602B 0x723B +0x1602C 0x723C +0x1602D 0x723F +0x1602E 0x7240 +0x1602F 0x7246 +0x16030 0x724B +0x16031 0x7258 +0x16032 0x7274 +0x16033 0x727E +0x16034 0x7282 +0x16035 0x7281 +0x16036 0x7287 +0x16037 0x7292 +0x16038 0x7296 +0x16039 0x72A2 +0x1603A 0x72A7 +0x1603B 0x72B9 +0x1603C 0x72B2 +0x1603D 0x72C3 +0x1603E 0x72C6 +0x1603F 0x72C4 +0x16040 0x72CE +0x16041 0x72D2 +0x16042 0x72E2 +0x16043 0x72E0 +0x16044 0x72E1 +0x16045 0x72F9 +0x16046 0x72F7 +0x16047 0x500F +0x16048 0x7317 +0x16049 0x730A +0x1604A 0x731C +0x1604B 0x7316 +0x1604C 0x731D +0x1604D 0x7334 +0x1604E 0x732F +0x1604F 0x7329 +0x16050 0x7325 +0x16051 0x733E +0x16052 0x734E +0x16053 0x734F +0x16054 0x9ED8 +0x16055 0x7357 +0x16056 0x736A +0x16057 0x7368 +0x16058 0x7370 +0x16059 0x7378 +0x1605A 0x7375 +0x1605B 0x737B +0x1605C 0x737A +0x1605D 0x73C8 +0x1605E 0x73B3 +0x1605F 0x73CE +0x16060 0x73BB +0x16061 0x73C0 +0x16062 0x73E5 +0x16063 0x73EE +0x16064 0x73DE +0x16065 0x74A2 +0x16066 0x7405 +0x16067 0x746F +0x16068 0x7425 +0x16069 0x73F8 +0x1606A 0x7432 +0x1606B 0x743A +0x1606C 0x7455 +0x1606D 0x743F +0x1606E 0x745F +0x1606F 0x7459 +0x16070 0x7441 +0x16071 0x745C +0x16072 0x7469 +0x16073 0x7470 +0x16074 0x7463 +0x16075 0x746A +0x16076 0x7476 +0x16077 0x747E +0x16078 0x748B +0x16079 0x749E +0x1607A 0x74A7 +0x1607B 0x74CA +0x1607C 0x74CF +0x1607D 0x74D4 +0x1607E 0x73F1 +0x16121 0x74E0 +0x16122 0x74E3 +0x16123 0x74E7 +0x16124 0x74E9 +0x16125 0x74EE +0x16126 0x74F2 +0x16127 0x74F0 +0x16128 0x74F1 +0x16129 0x74F8 +0x1612A 0x74F7 +0x1612B 0x7504 +0x1612C 0x7503 +0x1612D 0x7505 +0x1612E 0x750C +0x1612F 0x750E +0x16130 0x750D +0x16131 0x7515 +0x16132 0x7513 +0x16133 0x751E +0x16134 0x7526 +0x16135 0x752C +0x16136 0x753C +0x16137 0x7544 +0x16138 0x754D +0x16139 0x754A +0x1613A 0x7549 +0x1613B 0x755B +0x1613C 0x7546 +0x1613D 0x755A +0x1613E 0x7569 +0x1613F 0x7564 +0x16140 0x7567 +0x16141 0x756B +0x16142 0x756D +0x16143 0x7578 +0x16144 0x7576 +0x16145 0x7586 +0x16146 0x7587 +0x16147 0x7574 +0x16148 0x758A +0x16149 0x7589 +0x1614A 0x7582 +0x1614B 0x7594 +0x1614C 0x759A +0x1614D 0x759D +0x1614E 0x75A5 +0x1614F 0x75A3 +0x16150 0x75C2 +0x16151 0x75B3 +0x16152 0x75C3 +0x16153 0x75B5 +0x16154 0x75BD +0x16155 0x75B8 +0x16156 0x75BC +0x16157 0x75B1 +0x16158 0x75CD +0x16159 0x75CA +0x1615A 0x75D2 +0x1615B 0x75D9 +0x1615C 0x75E3 +0x1615D 0x75DE +0x1615E 0x75FE +0x1615F 0x75FF +0x16160 0x75FC +0x16161 0x7601 +0x16162 0x75F0 +0x16163 0x75FA +0x16164 0x75F2 +0x16165 0x75F3 +0x16166 0x760B +0x16167 0x760D +0x16168 0x7609 +0x16169 0x761F +0x1616A 0x7627 +0x1616B 0x7620 +0x1616C 0x7621 +0x1616D 0x7622 +0x1616E 0x7624 +0x1616F 0x7634 +0x16170 0x7630 +0x16171 0x763B +0x16172 0x7647 +0x16173 0x7648 +0x16174 0x7646 +0x16175 0x765C +0x16176 0x7658 +0x16177 0x7661 +0x16178 0x7662 +0x16179 0x7668 +0x1617A 0x7669 +0x1617B 0x766A +0x1617C 0x7667 +0x1617D 0x766C +0x1617E 0x7670 +0x16221 0x7672 +0x16222 0x7676 +0x16223 0x7678 +0x16224 0x767C +0x16225 0x7680 +0x16226 0x7683 +0x16227 0x7688 +0x16228 0x768B +0x16229 0x768E +0x1622A 0x7696 +0x1622B 0x7693 +0x1622C 0x7699 +0x1622D 0x769A +0x1622E 0x76B0 +0x1622F 0x76B4 +0x16230 0x76B8 +0x16231 0x76B9 +0x16232 0x76BA +0x16233 0x76C2 +0x16234 0x76CD +0x16235 0x76D6 +0x16236 0x76D2 +0x16237 0x76DE +0x16238 0x76E1 +0x16239 0x76E5 +0x1623A 0x76E7 +0x1623B 0x76EA +0x1623C 0x862F +0x1623D 0x76FB +0x1623E 0x7708 +0x1623F 0x7707 +0x16240 0x7704 +0x16241 0x7729 +0x16242 0x7724 +0x16243 0x771E +0x16244 0x7725 +0x16245 0x7726 +0x16246 0x771B +0x16247 0x7737 +0x16248 0x7738 +0x16249 0x7747 +0x1624A 0x775A +0x1624B 0x7768 +0x1624C 0x776B +0x1624D 0x775B +0x1624E 0x7765 +0x1624F 0x777F +0x16250 0x777E +0x16251 0x7779 +0x16252 0x778E +0x16253 0x778B +0x16254 0x7791 +0x16255 0x77A0 +0x16256 0x779E +0x16257 0x77B0 +0x16258 0x77B6 +0x16259 0x77B9 +0x1625A 0x77BF +0x1625B 0x77BC +0x1625C 0x77BD +0x1625D 0x77BB +0x1625E 0x77C7 +0x1625F 0x77CD +0x16260 0x77D7 +0x16261 0x77DA +0x16262 0x77DC +0x16263 0x77E3 +0x16264 0x77EE +0x16265 0x77FC +0x16266 0x780C +0x16267 0x7812 +0x16268 0x7926 +0x16269 0x7820 +0x1626A 0x792A +0x1626B 0x7845 +0x1626C 0x788E +0x1626D 0x7874 +0x1626E 0x7886 +0x1626F 0x787C +0x16270 0x789A +0x16271 0x788C +0x16272 0x78A3 +0x16273 0x78B5 +0x16274 0x78AA +0x16275 0x78AF +0x16276 0x78D1 +0x16277 0x78C6 +0x16278 0x78CB +0x16279 0x78D4 +0x1627A 0x78BE +0x1627B 0x78BC +0x1627C 0x78C5 +0x1627D 0x78CA +0x1627E 0x78EC +0x16321 0x78E7 +0x16322 0x78DA +0x16323 0x78FD +0x16324 0x78F4 +0x16325 0x7907 +0x16326 0x7912 +0x16327 0x7911 +0x16328 0x7919 +0x16329 0x792C +0x1632A 0x792B +0x1632B 0x7940 +0x1632C 0x7960 +0x1632D 0x7957 +0x1632E 0x795F +0x1632F 0x795A +0x16330 0x7955 +0x16331 0x7953 +0x16332 0x797A +0x16333 0x797F +0x16334 0x798A +0x16335 0x799D +0x16336 0x79A7 +0x16337 0x9F4B +0x16338 0x79AA +0x16339 0x79AE +0x1633A 0x79B3 +0x1633B 0x79B9 +0x1633C 0x79BA +0x1633D 0x79C9 +0x1633E 0x79D5 +0x1633F 0x79E7 +0x16340 0x79EC +0x16341 0x79E1 +0x16342 0x79E3 +0x16343 0x7A08 +0x16344 0x7A0D +0x16345 0x7A18 +0x16346 0x7A19 +0x16347 0x7A20 +0x16348 0x7A1F +0x16349 0x7980 +0x1634A 0x7A31 +0x1634B 0x7A3B +0x1634C 0x7A3E +0x1634D 0x7A37 +0x1634E 0x7A43 +0x1634F 0x7A57 +0x16350 0x7A49 +0x16351 0x7A61 +0x16352 0x7A62 +0x16353 0x7A69 +0x16354 0x9F9D +0x16355 0x7A70 +0x16356 0x7A79 +0x16357 0x7A7D +0x16358 0x7A88 +0x16359 0x7A97 +0x1635A 0x7A95 +0x1635B 0x7A98 +0x1635C 0x7A96 +0x1635D 0x7AA9 +0x1635E 0x7AC8 +0x1635F 0x7AB0 +0x16360 0x7AB6 +0x16361 0x7AC5 +0x16362 0x7AC4 +0x16363 0x7ABF +0x16364 0x9083 +0x16365 0x7AC7 +0x16366 0x7ACA +0x16367 0x7ACD +0x16368 0x7ACF +0x16369 0x7AD5 +0x1636A 0x7AD3 +0x1636B 0x7AD9 +0x1636C 0x7ADA +0x1636D 0x7ADD +0x1636E 0x7AE1 +0x1636F 0x7AE2 +0x16370 0x7AE6 +0x16371 0x7AED +0x16372 0x7AF0 +0x16373 0x7B02 +0x16374 0x7B0F +0x16375 0x7B0A +0x16376 0x7B06 +0x16377 0x7B33 +0x16378 0x7B18 +0x16379 0x7B19 +0x1637A 0x7B1E +0x1637B 0x7B35 +0x1637C 0x7B28 +0x1637D 0x7B36 +0x1637E 0x7B50 +0x16421 0x7B7A +0x16422 0x7B04 +0x16423 0x7B4D +0x16424 0x7B0B +0x16425 0x7B4C +0x16426 0x7B45 +0x16427 0x7B75 +0x16428 0x7B65 +0x16429 0x7B74 +0x1642A 0x7B67 +0x1642B 0x7B70 +0x1642C 0x7B71 +0x1642D 0x7B6C +0x1642E 0x7B6E +0x1642F 0x7B9D +0x16430 0x7B98 +0x16431 0x7B9F +0x16432 0x7B8D +0x16433 0x7B9C +0x16434 0x7B9A +0x16435 0x7B8B +0x16436 0x7B92 +0x16437 0x7B8F +0x16438 0x7B5D +0x16439 0x7B99 +0x1643A 0x7BCB +0x1643B 0x7BC1 +0x1643C 0x7BCC +0x1643D 0x7BCF +0x1643E 0x7BB4 +0x1643F 0x7BC6 +0x16440 0x7BDD +0x16441 0x7BE9 +0x16442 0x7C11 +0x16443 0x7C14 +0x16444 0x7BE6 +0x16445 0x7BE5 +0x16446 0x7C60 +0x16447 0x7C00 +0x16448 0x7C07 +0x16449 0x7C13 +0x1644A 0x7BF3 +0x1644B 0x7BF7 +0x1644C 0x7C17 +0x1644D 0x7C0D +0x1644E 0x7BF6 +0x1644F 0x7C23 +0x16450 0x7C27 +0x16451 0x7C2A +0x16452 0x7C1F +0x16453 0x7C37 +0x16454 0x7C2B +0x16455 0x7C3D +0x16456 0x7C4C +0x16457 0x7C43 +0x16458 0x7C54 +0x16459 0x7C4F +0x1645A 0x7C40 +0x1645B 0x7C50 +0x1645C 0x7C58 +0x1645D 0x7C5F +0x1645E 0x7C64 +0x1645F 0x7C56 +0x16460 0x7C65 +0x16461 0x7C6C +0x16462 0x7C75 +0x16463 0x7C83 +0x16464 0x7C90 +0x16465 0x7CA4 +0x16466 0x7CAD +0x16467 0x7CA2 +0x16468 0x7CAB +0x16469 0x7CA1 +0x1646A 0x7CA8 +0x1646B 0x7CB3 +0x1646C 0x7CB2 +0x1646D 0x7CB1 +0x1646E 0x7CAE +0x1646F 0x7CB9 +0x16470 0x7CBD +0x16471 0x7CC0 +0x16472 0x7CC5 +0x16473 0x7CC2 +0x16474 0x7CD8 +0x16475 0x7CD2 +0x16476 0x7CDC +0x16477 0x7CE2 +0x16478 0x9B3B +0x16479 0x7CEF +0x1647A 0x7CF2 +0x1647B 0x7CF4 +0x1647C 0x7CF6 +0x1647D 0x7CFA +0x1647E 0x7D06 +0x16521 0x7D02 +0x16522 0x7D1C +0x16523 0x7D15 +0x16524 0x7D0A +0x16525 0x7D45 +0x16526 0x7D4B +0x16527 0x7D2E +0x16528 0x7D32 +0x16529 0x7D3F +0x1652A 0x7D35 +0x1652B 0x7D46 +0x1652C 0x7D73 +0x1652D 0x7D56 +0x1652E 0x7D4E +0x1652F 0x7D72 +0x16530 0x7D68 +0x16531 0x7D6E +0x16532 0x7D4F +0x16533 0x7D63 +0x16534 0x7D93 +0x16535 0x7D89 +0x16536 0x7D5B +0x16537 0x7D8F +0x16538 0x7D7D +0x16539 0x7D9B +0x1653A 0x7DBA +0x1653B 0x7DAE +0x1653C 0x7DA3 +0x1653D 0x7DB5 +0x1653E 0x7DC7 +0x1653F 0x7DBD +0x16540 0x7DAB +0x16541 0x7E3D +0x16542 0x7DA2 +0x16543 0x7DAF +0x16544 0x7DDC +0x16545 0x7DB8 +0x16546 0x7D9F +0x16547 0x7DB0 +0x16548 0x7DD8 +0x16549 0x7DDD +0x1654A 0x7DE4 +0x1654B 0x7DDE +0x1654C 0x7DFB +0x1654D 0x7DF2 +0x1654E 0x7DE1 +0x1654F 0x7E05 +0x16550 0x7E0A +0x16551 0x7E23 +0x16552 0x7E21 +0x16553 0x7E12 +0x16554 0x7E31 +0x16555 0x7E1F +0x16556 0x7E09 +0x16557 0x7E0B +0x16558 0x7E22 +0x16559 0x7E46 +0x1655A 0x7E66 +0x1655B 0x7E3B +0x1655C 0x7E35 +0x1655D 0x7E39 +0x1655E 0x7E43 +0x1655F 0x7E37 +0x16560 0x7E32 +0x16561 0x7E3A +0x16562 0x7E67 +0x16563 0x7E5D +0x16564 0x7E56 +0x16565 0x7E5E +0x16566 0x7E59 +0x16567 0x7E5A +0x16568 0x7E79 +0x16569 0x7E6A +0x1656A 0x7E69 +0x1656B 0x7E7C +0x1656C 0x7E7B +0x1656D 0x7E83 +0x1656E 0x7DD5 +0x1656F 0x7E7D +0x16570 0x8FAE +0x16571 0x7E7F +0x16572 0x7E88 +0x16573 0x7E89 +0x16574 0x7E8C +0x16575 0x7E92 +0x16576 0x7E90 +0x16577 0x7E93 +0x16578 0x7E94 +0x16579 0x7E96 +0x1657A 0x7E8E +0x1657B 0x7E9B +0x1657C 0x7E9C +0x1657D 0x7F38 +0x1657E 0x7F3A +0x16621 0x7F45 +0x16622 0x7F4C +0x16623 0x7F4D +0x16624 0x7F4E +0x16625 0x7F50 +0x16626 0x7F51 +0x16627 0x7F55 +0x16628 0x7F54 +0x16629 0x7F58 +0x1662A 0x7F5F +0x1662B 0x7F60 +0x1662C 0x7F68 +0x1662D 0x7F69 +0x1662E 0x7F67 +0x1662F 0x7F78 +0x16630 0x7F82 +0x16631 0x7F86 +0x16632 0x7F83 +0x16633 0x7F88 +0x16634 0x7F87 +0x16635 0x7F8C +0x16636 0x7F94 +0x16637 0x7F9E +0x16638 0x7F9D +0x16639 0x7F9A +0x1663A 0x7FA3 +0x1663B 0x7FAF +0x1663C 0x7FB2 +0x1663D 0x7FB9 +0x1663E 0x7FAE +0x1663F 0x7FB6 +0x16640 0x7FB8 +0x16641 0x8B71 +0x16642 0x7FC5 +0x16643 0x7FC6 +0x16644 0x7FCA +0x16645 0x7FD5 +0x16646 0x7FD4 +0x16647 0x7FE1 +0x16648 0x7FE6 +0x16649 0x7FE9 +0x1664A 0x7FF3 +0x1664B 0x7FF9 +0x1664C 0x98DC +0x1664D 0x8006 +0x1664E 0x8004 +0x1664F 0x800B +0x16650 0x8012 +0x16651 0x8018 +0x16652 0x8019 +0x16653 0x801C +0x16654 0x8021 +0x16655 0x8028 +0x16656 0x803F +0x16657 0x803B +0x16658 0x804A +0x16659 0x8046 +0x1665A 0x8052 +0x1665B 0x8058 +0x1665C 0x805A +0x1665D 0x805F +0x1665E 0x8062 +0x1665F 0x8068 +0x16660 0x8073 +0x16661 0x8072 +0x16662 0x8070 +0x16663 0x8076 +0x16664 0x8079 +0x16665 0x807D +0x16666 0x807F +0x16667 0x8084 +0x16668 0x8086 +0x16669 0x8085 +0x1666A 0x809B +0x1666B 0x8093 +0x1666C 0x809A +0x1666D 0x80AD +0x1666E 0x5190 +0x1666F 0x80AC +0x16670 0x80DB +0x16671 0x80E5 +0x16672 0x80D9 +0x16673 0x80DD +0x16674 0x80C4 +0x16675 0x80DA +0x16676 0x80D6 +0x16677 0x8109 +0x16678 0x80EF +0x16679 0x80F1 +0x1667A 0x811B +0x1667B 0x8129 +0x1667C 0x8123 +0x1667D 0x812F +0x1667E 0x814B +0x16721 0x968B +0x16722 0x8146 +0x16723 0x813E +0x16724 0x8153 +0x16725 0x8151 +0x16726 0x80FC +0x16727 0x8171 +0x16728 0x816E +0x16729 0x8165 +0x1672A 0x8166 +0x1672B 0x8174 +0x1672C 0x8183 +0x1672D 0x8188 +0x1672E 0x818A +0x1672F 0x8180 +0x16730 0x8182 +0x16731 0x81A0 +0x16732 0x8195 +0x16733 0x81A4 +0x16734 0x81A3 +0x16735 0x815F +0x16736 0x8193 +0x16737 0x81A9 +0x16738 0x81B0 +0x16739 0x81B5 +0x1673A 0x81BE +0x1673B 0x81B8 +0x1673C 0x81BD +0x1673D 0x81C0 +0x1673E 0x81C2 +0x1673F 0x81BA +0x16740 0x81C9 +0x16741 0x81CD +0x16742 0x81D1 +0x16743 0x81D9 +0x16744 0x81D8 +0x16745 0x81C8 +0x16746 0x81DA +0x16747 0x81DF +0x16748 0x81E0 +0x16749 0x81E7 +0x1674A 0x81FA +0x1674B 0x81FB +0x1674C 0x81FE +0x1674D 0x8201 +0x1674E 0x8202 +0x1674F 0x8205 +0x16750 0x8207 +0x16751 0x820A +0x16752 0x820D +0x16753 0x8210 +0x16754 0x8216 +0x16755 0x8229 +0x16756 0x822B +0x16757 0x8238 +0x16758 0x8233 +0x16759 0x8240 +0x1675A 0x8259 +0x1675B 0x8258 +0x1675C 0x825D +0x1675D 0x825A +0x1675E 0x825F +0x1675F 0x8264 +0x16760 0x8262 +0x16761 0x8268 +0x16762 0x826A +0x16763 0x826B +0x16764 0x822E +0x16765 0x8271 +0x16766 0x8277 +0x16767 0x8278 +0x16768 0x827E +0x16769 0x828D +0x1676A 0x8292 +0x1676B 0x82AB +0x1676C 0x829F +0x1676D 0x82BB +0x1676E 0x82AC +0x1676F 0x82E1 +0x16770 0x82E3 +0x16771 0x82DF +0x16772 0x82D2 +0x16773 0x82F4 +0x16774 0x82F3 +0x16775 0x82FA +0x16776 0x8393 +0x16777 0x8303 +0x16778 0x82FB +0x16779 0x82F9 +0x1677A 0x82DE +0x1677B 0x8306 +0x1677C 0x82DC +0x1677D 0x8309 +0x1677E 0x82D9 +0x16821 0x8335 +0x16822 0x8334 +0x16823 0x8316 +0x16824 0x8332 +0x16825 0x8331 +0x16826 0x8340 +0x16827 0x8339 +0x16828 0x8350 +0x16829 0x8345 +0x1682A 0x832F +0x1682B 0x832B +0x1682C 0x8317 +0x1682D 0x8318 +0x1682E 0x8385 +0x1682F 0x839A +0x16830 0x83AA +0x16831 0x839F +0x16832 0x83A2 +0x16833 0x8396 +0x16834 0x8323 +0x16835 0x838E +0x16836 0x8387 +0x16837 0x838A +0x16838 0x837C +0x16839 0x83B5 +0x1683A 0x8373 +0x1683B 0x8375 +0x1683C 0x83A0 +0x1683D 0x8389 +0x1683E 0x83A8 +0x1683F 0x83F4 +0x16840 0x8413 +0x16841 0x83EB +0x16842 0x83CE +0x16843 0x83FD +0x16844 0x8403 +0x16845 0x83D8 +0x16846 0x840B +0x16847 0x83C1 +0x16848 0x83F7 +0x16849 0x8407 +0x1684A 0x83E0 +0x1684B 0x83F2 +0x1684C 0x840D +0x1684D 0x8422 +0x1684E 0x8420 +0x1684F 0x83BD +0x16850 0x8438 +0x16851 0x8506 +0x16852 0x83FB +0x16853 0x846D +0x16854 0x842A +0x16855 0x843C +0x16856 0x855A +0x16857 0x8484 +0x16858 0x8477 +0x16859 0x846B +0x1685A 0x84AD +0x1685B 0x846E +0x1685C 0x8482 +0x1685D 0x8469 +0x1685E 0x8446 +0x1685F 0x842C +0x16860 0x846F +0x16861 0x8479 +0x16862 0x8435 +0x16863 0x84CA +0x16864 0x8462 +0x16865 0x84B9 +0x16866 0x84BF +0x16867 0x849F +0x16868 0x84D9 +0x16869 0x84CD +0x1686A 0x84BB +0x1686B 0x84DA +0x1686C 0x84D0 +0x1686D 0x84C1 +0x1686E 0x84C6 +0x1686F 0x84D6 +0x16870 0x84A1 +0x16871 0x8521 +0x16872 0x84FF +0x16873 0x84F4 +0x16874 0x8517 +0x16875 0x8518 +0x16876 0x852C +0x16877 0x851F +0x16878 0x8515 +0x16879 0x8514 +0x1687A 0x84FC +0x1687B 0x8540 +0x1687C 0x8563 +0x1687D 0x8558 +0x1687E 0x8548 +0x16921 0x8541 +0x16922 0x8602 +0x16923 0x854B +0x16924 0x8555 +0x16925 0x8580 +0x16926 0x85A4 +0x16927 0x8588 +0x16928 0x8591 +0x16929 0x858A +0x1692A 0x85A8 +0x1692B 0x856D +0x1692C 0x8594 +0x1692D 0x859B +0x1692E 0x85EA +0x1692F 0x8587 +0x16930 0x859C +0x16931 0x8577 +0x16932 0x857E +0x16933 0x8590 +0x16934 0x85C9 +0x16935 0x85BA +0x16936 0x85CF +0x16937 0x85B9 +0x16938 0x85D0 +0x16939 0x85D5 +0x1693A 0x85DD +0x1693B 0x85E5 +0x1693C 0x85DC +0x1693D 0x85F9 +0x1693E 0x860A +0x1693F 0x8613 +0x16940 0x860B +0x16941 0x85FE +0x16942 0x85FA +0x16943 0x8606 +0x16944 0x8622 +0x16945 0x861A +0x16946 0x8630 +0x16947 0x863F +0x16948 0x864D +0x16949 0x4E55 +0x1694A 0x8654 +0x1694B 0x865F +0x1694C 0x8667 +0x1694D 0x8671 +0x1694E 0x8693 +0x1694F 0x86A3 +0x16950 0x86A9 +0x16951 0x86AA +0x16952 0x868B +0x16953 0x868C +0x16954 0x86B6 +0x16955 0x86AF +0x16956 0x86C4 +0x16957 0x86C6 +0x16958 0x86B0 +0x16959 0x86C9 +0x1695A 0x8823 +0x1695B 0x86AB +0x1695C 0x86D4 +0x1695D 0x86DE +0x1695E 0x86E9 +0x1695F 0x86EC +0x16960 0x86DF +0x16961 0x86DB +0x16962 0x86EF +0x16963 0x8712 +0x16964 0x8706 +0x16965 0x8708 +0x16966 0x8700 +0x16967 0x8703 +0x16968 0x86FB +0x16969 0x8711 +0x1696A 0x8709 +0x1696B 0x870D +0x1696C 0x86F9 +0x1696D 0x870A +0x1696E 0x8734 +0x1696F 0x873F +0x16970 0x8737 +0x16971 0x873B +0x16972 0x8725 +0x16973 0x8729 +0x16974 0x871A +0x16975 0x8760 +0x16976 0x875F +0x16977 0x8778 +0x16978 0x874C +0x16979 0x874E +0x1697A 0x8774 +0x1697B 0x8757 +0x1697C 0x8768 +0x1697D 0x876E +0x1697E 0x8759 +0x16A21 0x8753 +0x16A22 0x8763 +0x16A23 0x876A +0x16A24 0x8805 +0x16A25 0x87A2 +0x16A26 0x879F +0x16A27 0x8782 +0x16A28 0x87AF +0x16A29 0x87CB +0x16A2A 0x87BD +0x16A2B 0x87C0 +0x16A2C 0x87D0 +0x16A2D 0x96D6 +0x16A2E 0x87AB +0x16A2F 0x87C4 +0x16A30 0x87B3 +0x16A31 0x87C7 +0x16A32 0x87C6 +0x16A33 0x87BB +0x16A34 0x87EF +0x16A35 0x87F2 +0x16A36 0x87E0 +0x16A37 0x880F +0x16A38 0x880D +0x16A39 0x87FE +0x16A3A 0x87F6 +0x16A3B 0x87F7 +0x16A3C 0x880E +0x16A3D 0x87D2 +0x16A3E 0x8811 +0x16A3F 0x8816 +0x16A40 0x8815 +0x16A41 0x8822 +0x16A42 0x8821 +0x16A43 0x8831 +0x16A44 0x8836 +0x16A45 0x8839 +0x16A46 0x8827 +0x16A47 0x883B +0x16A48 0x8844 +0x16A49 0x8842 +0x16A4A 0x8852 +0x16A4B 0x8859 +0x16A4C 0x885E +0x16A4D 0x8862 +0x16A4E 0x886B +0x16A4F 0x8881 +0x16A50 0x887E +0x16A51 0x889E +0x16A52 0x8875 +0x16A53 0x887D +0x16A54 0x88B5 +0x16A55 0x8872 +0x16A56 0x8882 +0x16A57 0x8897 +0x16A58 0x8892 +0x16A59 0x88AE +0x16A5A 0x8899 +0x16A5B 0x88A2 +0x16A5C 0x888D +0x16A5D 0x88A4 +0x16A5E 0x88B0 +0x16A5F 0x88BF +0x16A60 0x88B1 +0x16A61 0x88C3 +0x16A62 0x88C4 +0x16A63 0x88D4 +0x16A64 0x88D8 +0x16A65 0x88D9 +0x16A66 0x88DD +0x16A67 0x88F9 +0x16A68 0x8902 +0x16A69 0x88FC +0x16A6A 0x88F4 +0x16A6B 0x88E8 +0x16A6C 0x88F2 +0x16A6D 0x8904 +0x16A6E 0x890C +0x16A6F 0x890A +0x16A70 0x8913 +0x16A71 0x8943 +0x16A72 0x891E +0x16A73 0x8925 +0x16A74 0x892A +0x16A75 0x892B +0x16A76 0x8941 +0x16A77 0x8944 +0x16A78 0x893B +0x16A79 0x8936 +0x16A7A 0x8938 +0x16A7B 0x894C +0x16A7C 0x891D +0x16A7D 0x8960 +0x16A7E 0x895E +0x16B21 0x8966 +0x16B22 0x8964 +0x16B23 0x896D +0x16B24 0x896A +0x16B25 0x896F +0x16B26 0x8974 +0x16B27 0x8977 +0x16B28 0x897E +0x16B29 0x8983 +0x16B2A 0x8988 +0x16B2B 0x898A +0x16B2C 0x8993 +0x16B2D 0x8998 +0x16B2E 0x89A1 +0x16B2F 0x89A9 +0x16B30 0x89A6 +0x16B31 0x89AC +0x16B32 0x89AF +0x16B33 0x89B2 +0x16B34 0x89BA +0x16B35 0x89BD +0x16B36 0x89BF +0x16B37 0x89C0 +0x16B38 0x89DA +0x16B39 0x89DC +0x16B3A 0x89DD +0x16B3B 0x89E7 +0x16B3C 0x89F4 +0x16B3D 0x89F8 +0x16B3E 0x8A03 +0x16B3F 0x8A16 +0x16B40 0x8A10 +0x16B41 0x8A0C +0x16B42 0x8A1B +0x16B43 0x8A1D +0x16B44 0x8A25 +0x16B45 0x8A36 +0x16B46 0x8A41 +0x16B47 0x8A5B +0x16B48 0x8A52 +0x16B49 0x8A46 +0x16B4A 0x8A48 +0x16B4B 0x8A7C +0x16B4C 0x8A6D +0x16B4D 0x8A6C +0x16B4E 0x8A62 +0x16B4F 0x8A85 +0x16B50 0x8A82 +0x16B51 0x8A84 +0x16B52 0x8AA8 +0x16B53 0x8AA1 +0x16B54 0x8A91 +0x16B55 0x8AA5 +0x16B56 0x8AA6 +0x16B57 0x8A9A +0x16B58 0x8AA3 +0x16B59 0x8AC4 +0x16B5A 0x8ACD +0x16B5B 0x8AC2 +0x16B5C 0x8ADA +0x16B5D 0x8AEB +0x16B5E 0x8AF3 +0x16B5F 0x8AE7 +0x16B60 0x8AE4 +0x16B61 0x8AF1 +0x16B62 0x8B14 +0x16B63 0x8AE0 +0x16B64 0x8AE2 +0x16B65 0x8AF7 +0x16B66 0x8ADE +0x16B67 0x8ADB +0x16B68 0x8B0C +0x16B69 0x8B07 +0x16B6A 0x8B1A +0x16B6B 0x8AE1 +0x16B6C 0x8B16 +0x16B6D 0x8B10 +0x16B6E 0x8B17 +0x16B6F 0x8B20 +0x16B70 0x8B33 +0x16B71 0x97AB +0x16B72 0x8B26 +0x16B73 0x8B2B +0x16B74 0x8B3E +0x16B75 0x8B28 +0x16B76 0x8B41 +0x16B77 0x8B4C +0x16B78 0x8B4F +0x16B79 0x8B4E +0x16B7A 0x8B49 +0x16B7B 0x8B56 +0x16B7C 0x8B5B +0x16B7D 0x8B5A +0x16B7E 0x8B6B +0x16C21 0x8B5F +0x16C22 0x8B6C +0x16C23 0x8B6F +0x16C24 0x8B74 +0x16C25 0x8B7D +0x16C26 0x8B80 +0x16C27 0x8B8C +0x16C28 0x8B8E +0x16C29 0x8B92 +0x16C2A 0x8B93 +0x16C2B 0x8B96 +0x16C2C 0x8B99 +0x16C2D 0x8B9A +0x16C2E 0x8C3A +0x16C2F 0x8C41 +0x16C30 0x8C3F +0x16C31 0x8C48 +0x16C32 0x8C4C +0x16C33 0x8C4E +0x16C34 0x8C50 +0x16C35 0x8C55 +0x16C36 0x8C62 +0x16C37 0x8C6C +0x16C38 0x8C78 +0x16C39 0x8C7A +0x16C3A 0x8C82 +0x16C3B 0x8C89 +0x16C3C 0x8C85 +0x16C3D 0x8C8A +0x16C3E 0x8C8D +0x16C3F 0x8C8E +0x16C40 0x8C94 +0x16C41 0x8C7C +0x16C42 0x8C98 +0x16C43 0x621D +0x16C44 0x8CAD +0x16C45 0x8CAA +0x16C46 0x8CBD +0x16C47 0x8CB2 +0x16C48 0x8CB3 +0x16C49 0x8CAE +0x16C4A 0x8CB6 +0x16C4B 0x8CC8 +0x16C4C 0x8CC1 +0x16C4D 0x8CE4 +0x16C4E 0x8CE3 +0x16C4F 0x8CDA +0x16C50 0x8CFD +0x16C51 0x8CFA +0x16C52 0x8CFB +0x16C53 0x8D04 +0x16C54 0x8D05 +0x16C55 0x8D0A +0x16C56 0x8D07 +0x16C57 0x8D0F +0x16C58 0x8D0D +0x16C59 0x8D10 +0x16C5A 0x9F4E +0x16C5B 0x8D13 +0x16C5C 0x8CCD +0x16C5D 0x8D14 +0x16C5E 0x8D16 +0x16C5F 0x8D67 +0x16C60 0x8D6D +0x16C61 0x8D71 +0x16C62 0x8D73 +0x16C63 0x8D81 +0x16C64 0x8D99 +0x16C65 0x8DC2 +0x16C66 0x8DBE +0x16C67 0x8DBA +0x16C68 0x8DCF +0x16C69 0x8DDA +0x16C6A 0x8DD6 +0x16C6B 0x8DCC +0x16C6C 0x8DDB +0x16C6D 0x8DCB +0x16C6E 0x8DEA +0x16C6F 0x8DEB +0x16C70 0x8DDF +0x16C71 0x8DE3 +0x16C72 0x8DFC +0x16C73 0x8E08 +0x16C74 0x8E09 +0x16C75 0x8DFF +0x16C76 0x8E1D +0x16C77 0x8E1E +0x16C78 0x8E10 +0x16C79 0x8E1F +0x16C7A 0x8E42 +0x16C7B 0x8E35 +0x16C7C 0x8E30 +0x16C7D 0x8E34 +0x16C7E 0x8E4A +0x16D21 0x8E47 +0x16D22 0x8E49 +0x16D23 0x8E4C +0x16D24 0x8E50 +0x16D25 0x8E48 +0x16D26 0x8E59 +0x16D27 0x8E64 +0x16D28 0x8E60 +0x16D29 0x8E2A +0x16D2A 0x8E63 +0x16D2B 0x8E55 +0x16D2C 0x8E76 +0x16D2D 0x8E72 +0x16D2E 0x8E7C +0x16D2F 0x8E81 +0x16D30 0x8E87 +0x16D31 0x8E85 +0x16D32 0x8E84 +0x16D33 0x8E8B +0x16D34 0x8E8A +0x16D35 0x8E93 +0x16D36 0x8E91 +0x16D37 0x8E94 +0x16D38 0x8E99 +0x16D39 0x8EAA +0x16D3A 0x8EA1 +0x16D3B 0x8EAC +0x16D3C 0x8EB0 +0x16D3D 0x8EC6 +0x16D3E 0x8EB1 +0x16D3F 0x8EBE +0x16D40 0x8EC5 +0x16D41 0x8EC8 +0x16D42 0x8ECB +0x16D43 0x8EDB +0x16D44 0x8EE3 +0x16D45 0x8EFC +0x16D46 0x8EFB +0x16D47 0x8EEB +0x16D48 0x8EFE +0x16D49 0x8F0A +0x16D4A 0x8F05 +0x16D4B 0x8F15 +0x16D4C 0x8F12 +0x16D4D 0x8F19 +0x16D4E 0x8F13 +0x16D4F 0x8F1C +0x16D50 0x8F1F +0x16D51 0x8F1B +0x16D52 0x8F0C +0x16D53 0x8F26 +0x16D54 0x8F33 +0x16D55 0x8F3B +0x16D56 0x8F39 +0x16D57 0x8F45 +0x16D58 0x8F42 +0x16D59 0x8F3E +0x16D5A 0x8F4C +0x16D5B 0x8F49 +0x16D5C 0x8F46 +0x16D5D 0x8F4E +0x16D5E 0x8F57 +0x16D5F 0x8F5C +0x16D60 0x8F62 +0x16D61 0x8F63 +0x16D62 0x8F64 +0x16D63 0x8F9C +0x16D64 0x8F9F +0x16D65 0x8FA3 +0x16D66 0x8FAD +0x16D67 0x8FAF +0x16D68 0x8FB7 +0x16D69 0x8FDA +0x16D6A 0x8FE5 +0x16D6B 0x8FE2 +0x16D6C 0x8FEA +0x16D6D 0x8FEF +0x16D6E 0x9087 +0x16D6F 0x8FF4 +0x16D70 0x9005 +0x16D71 0x8FF9 +0x16D72 0x8FFA +0x16D73 0x9011 +0x16D74 0x9015 +0x16D75 0x9021 +0x16D76 0x900D +0x16D77 0x901E +0x16D78 0x9016 +0x16D79 0x900B +0x16D7A 0x9027 +0x16D7B 0x9036 +0x16D7C 0x9035 +0x16D7D 0x9039 +0x16D7E 0x8FF8 +0x16E21 0x904F +0x16E22 0x9050 +0x16E23 0x9051 +0x16E24 0x9052 +0x16E25 0x900E +0x16E26 0x9049 +0x16E27 0x903E +0x16E28 0x9056 +0x16E29 0x9058 +0x16E2A 0x905E +0x16E2B 0x9068 +0x16E2C 0x906F +0x16E2D 0x9076 +0x16E2E 0x96A8 +0x16E2F 0x9072 +0x16E30 0x9082 +0x16E31 0x907D +0x16E32 0x9081 +0x16E33 0x9080 +0x16E34 0x908A +0x16E35 0x9089 +0x16E36 0x908F +0x16E37 0x90A8 +0x16E38 0x90AF +0x16E39 0x90B1 +0x16E3A 0x90B5 +0x16E3B 0x90E2 +0x16E3C 0x90E4 +0x16E3D 0x6248 +0x16E3E 0x90DB +0x16E3F 0x9102 +0x16E40 0x9112 +0x16E41 0x9119 +0x16E42 0x9132 +0x16E43 0x9130 +0x16E44 0x914A +0x16E45 0x9156 +0x16E46 0x9158 +0x16E47 0x9163 +0x16E48 0x9165 +0x16E49 0x9169 +0x16E4A 0x9173 +0x16E4B 0x9172 +0x16E4C 0x918B +0x16E4D 0x9189 +0x16E4E 0x9182 +0x16E4F 0x91A2 +0x16E50 0x91AB +0x16E51 0x91AF +0x16E52 0x91AA +0x16E53 0x91B5 +0x16E54 0x91B4 +0x16E55 0x91BA +0x16E56 0x91C0 +0x16E57 0x91C1 +0x16E58 0x91C9 +0x16E59 0x91CB +0x16E5A 0x91D0 +0x16E5B 0x91D6 +0x16E5C 0x91DF +0x16E5D 0x91E1 +0x16E5E 0x91DB +0x16E5F 0x91FC +0x16E60 0x91F5 +0x16E61 0x91F6 +0x16E62 0x921E +0x16E63 0x91FF +0x16E64 0x9214 +0x16E65 0x922C +0x16E66 0x9215 +0x16E67 0x9211 +0x16E68 0x925E +0x16E69 0x9257 +0x16E6A 0x9245 +0x16E6B 0x9249 +0x16E6C 0x9264 +0x16E6D 0x9248 +0x16E6E 0x9295 +0x16E6F 0x923F +0x16E70 0x924B +0x16E71 0x9250 +0x16E72 0x929C +0x16E73 0x9296 +0x16E74 0x9293 +0x16E75 0x929B +0x16E76 0x925A +0x16E77 0x92CF +0x16E78 0x92B9 +0x16E79 0x92B7 +0x16E7A 0x92E9 +0x16E7B 0x930F +0x16E7C 0x92FA +0x16E7D 0x9344 +0x16E7E 0x932E +0x16F21 0x9319 +0x16F22 0x9322 +0x16F23 0x931A +0x16F24 0x9323 +0x16F25 0x933A +0x16F26 0x9335 +0x16F27 0x933B +0x16F28 0x935C +0x16F29 0x9360 +0x16F2A 0x937C +0x16F2B 0x936E +0x16F2C 0x9356 +0x16F2D 0x93B0 +0x16F2E 0x93AC +0x16F2F 0x93AD +0x16F30 0x9394 +0x16F31 0x93B9 +0x16F32 0x93D6 +0x16F33 0x93D7 +0x16F34 0x93E8 +0x16F35 0x93E5 +0x16F36 0x93D8 +0x16F37 0x93C3 +0x16F38 0x93DD +0x16F39 0x93D0 +0x16F3A 0x93C8 +0x16F3B 0x93E4 +0x16F3C 0x941A +0x16F3D 0x9414 +0x16F3E 0x9413 +0x16F3F 0x9403 +0x16F40 0x9407 +0x16F41 0x9410 +0x16F42 0x9436 +0x16F43 0x942B +0x16F44 0x9435 +0x16F45 0x9421 +0x16F46 0x943A +0x16F47 0x9441 +0x16F48 0x9452 +0x16F49 0x9444 +0x16F4A 0x945B +0x16F4B 0x9460 +0x16F4C 0x9462 +0x16F4D 0x945E +0x16F4E 0x946A +0x16F4F 0x9229 +0x16F50 0x9470 +0x16F51 0x9475 +0x16F52 0x9477 +0x16F53 0x947D +0x16F54 0x945A +0x16F55 0x947C +0x16F56 0x947E +0x16F57 0x9481 +0x16F58 0x947F +0x16F59 0x9582 +0x16F5A 0x9587 +0x16F5B 0x958A +0x16F5C 0x9594 +0x16F5D 0x9596 +0x16F5E 0x9598 +0x16F5F 0x9599 +0x16F60 0x95A0 +0x16F61 0x95A8 +0x16F62 0x95A7 +0x16F63 0x95AD +0x16F64 0x95BC +0x16F65 0x95BB +0x16F66 0x95B9 +0x16F67 0x95BE +0x16F68 0x95CA +0x16F69 0x6FF6 +0x16F6A 0x95C3 +0x16F6B 0x95CD +0x16F6C 0x95CC +0x16F6D 0x95D5 +0x16F6E 0x95D4 +0x16F6F 0x95D6 +0x16F70 0x95DC +0x16F71 0x95E1 +0x16F72 0x95E5 +0x16F73 0x95E2 +0x16F74 0x9621 +0x16F75 0x9628 +0x16F76 0x962E +0x16F77 0x962F +0x16F78 0x9642 +0x16F79 0x964C +0x16F7A 0x964F +0x16F7B 0x964B +0x16F7C 0x9677 +0x16F7D 0x965C +0x16F7E 0x965E +0x17021 0x965D +0x17022 0x965F +0x17023 0x9666 +0x17024 0x9672 +0x17025 0x966C +0x17026 0x968D +0x17027 0x9698 +0x17028 0x9695 +0x17029 0x9697 +0x1702A 0x96AA +0x1702B 0x96A7 +0x1702C 0x96B1 +0x1702D 0x96B2 +0x1702E 0x96B0 +0x1702F 0x96B4 +0x17030 0x96B6 +0x17031 0x96B8 +0x17032 0x96B9 +0x17033 0x96CE +0x17034 0x96CB +0x17035 0x96C9 +0x17036 0x96CD +0x17037 0x894D +0x17038 0x96DC +0x17039 0x970D +0x1703A 0x96D5 +0x1703B 0x96F9 +0x1703C 0x9704 +0x1703D 0x9706 +0x1703E 0x9708 +0x1703F 0x9713 +0x17040 0x970E +0x17041 0x9711 +0x17042 0x970F +0x17043 0x9716 +0x17044 0x9719 +0x17045 0x9724 +0x17046 0x972A +0x17047 0x9730 +0x17048 0x9739 +0x17049 0x973D +0x1704A 0x973E +0x1704B 0x9744 +0x1704C 0x9746 +0x1704D 0x9748 +0x1704E 0x9742 +0x1704F 0x9749 +0x17050 0x975C +0x17051 0x9760 +0x17052 0x9764 +0x17053 0x9766 +0x17054 0x9768 +0x17055 0x52D2 +0x17056 0x976B +0x17057 0x9771 +0x17058 0x9779 +0x17059 0x9785 +0x1705A 0x977C +0x1705B 0x9781 +0x1705C 0x977A +0x1705D 0x9786 +0x1705E 0x978B +0x1705F 0x978F +0x17060 0x9790 +0x17061 0x979C +0x17062 0x97A8 +0x17063 0x97A6 +0x17064 0x97A3 +0x17065 0x97B3 +0x17066 0x97B4 +0x17067 0x97C3 +0x17068 0x97C6 +0x17069 0x97C8 +0x1706A 0x97CB +0x1706B 0x97DC +0x1706C 0x97ED +0x1706D 0x9F4F +0x1706E 0x97F2 +0x1706F 0x7ADF +0x17070 0x97F6 +0x17071 0x97F5 +0x17072 0x980F +0x17073 0x980C +0x17074 0x9838 +0x17075 0x9824 +0x17076 0x9821 +0x17077 0x9837 +0x17078 0x983D +0x17079 0x9846 +0x1707A 0x984F +0x1707B 0x984B +0x1707C 0x986B +0x1707D 0x986F +0x1707E 0x9870 +0x17121 0x9871 +0x17122 0x9874 +0x17123 0x9873 +0x17124 0x98AA +0x17125 0x98AF +0x17126 0x98B1 +0x17127 0x98B6 +0x17128 0x98C4 +0x17129 0x98C3 +0x1712A 0x98C6 +0x1712B 0x98E9 +0x1712C 0x98EB +0x1712D 0x9903 +0x1712E 0x9909 +0x1712F 0x9912 +0x17130 0x9914 +0x17131 0x9918 +0x17132 0x9921 +0x17133 0x991D +0x17134 0x991E +0x17135 0x9924 +0x17136 0x9920 +0x17137 0x992C +0x17138 0x992E +0x17139 0x993D +0x1713A 0x993E +0x1713B 0x9942 +0x1713C 0x9949 +0x1713D 0x9945 +0x1713E 0x9950 +0x1713F 0x994B +0x17140 0x9951 +0x17141 0x9952 +0x17142 0x994C +0x17143 0x9955 +0x17144 0x9997 +0x17145 0x9998 +0x17146 0x99A5 +0x17147 0x99AD +0x17148 0x99AE +0x17149 0x99BC +0x1714A 0x99DF +0x1714B 0x99DB +0x1714C 0x99DD +0x1714D 0x99D8 +0x1714E 0x99D1 +0x1714F 0x99ED +0x17150 0x99EE +0x17151 0x99F1 +0x17152 0x99F2 +0x17153 0x99FB +0x17154 0x99F8 +0x17155 0x9A01 +0x17156 0x9A0F +0x17157 0x9A05 +0x17158 0x99E2 +0x17159 0x9A19 +0x1715A 0x9A2B +0x1715B 0x9A37 +0x1715C 0x9A45 +0x1715D 0x9A42 +0x1715E 0x9A40 +0x1715F 0x9A43 +0x17160 0x9A3E +0x17161 0x9A55 +0x17162 0x9A4D +0x17163 0x9A5B +0x17164 0x9A57 +0x17165 0x9A5F +0x17166 0x9A62 +0x17167 0x9A65 +0x17168 0x9A64 +0x17169 0x9A69 +0x1716A 0x9A6B +0x1716B 0x9A6A +0x1716C 0x9AAD +0x1716D 0x9AB0 +0x1716E 0x9ABC +0x1716F 0x9AC0 +0x17170 0x9ACF +0x17171 0x9AD1 +0x17172 0x9AD3 +0x17173 0x9AD4 +0x17174 0x9ADE +0x17175 0x9ADF +0x17176 0x9AE2 +0x17177 0x9AE3 +0x17178 0x9AE6 +0x17179 0x9AEF +0x1717A 0x9AEB +0x1717B 0x9AEE +0x1717C 0x9AF4 +0x1717D 0x9AF1 +0x1717E 0x9AF7 +0x17221 0x9AFB +0x17222 0x9B06 +0x17223 0x9B18 +0x17224 0x9B1A +0x17225 0x9B1F +0x17226 0x9B22 +0x17227 0x9B23 +0x17228 0x9B25 +0x17229 0x9B27 +0x1722A 0x9B28 +0x1722B 0x9B29 +0x1722C 0x9B2A +0x1722D 0x9B2E +0x1722E 0x9B2F +0x1722F 0x9B32 +0x17230 0x9B44 +0x17231 0x9B43 +0x17232 0x9B4F +0x17233 0x9B4D +0x17234 0x9B4E +0x17235 0x9B51 +0x17236 0x9B58 +0x17237 0x9B74 +0x17238 0x9B93 +0x17239 0x9B83 +0x1723A 0x9B91 +0x1723B 0x9B96 +0x1723C 0x9B97 +0x1723D 0x9B9F +0x1723E 0x9BA0 +0x1723F 0x9BA8 +0x17240 0x9BB4 +0x17241 0x9BC0 +0x17242 0x9BCA +0x17243 0x9BB9 +0x17244 0x9BC6 +0x17245 0x9BCF +0x17246 0x9BD1 +0x17247 0x9BD2 +0x17248 0x9BE3 +0x17249 0x9BE2 +0x1724A 0x9BE4 +0x1724B 0x9BD4 +0x1724C 0x9BE1 +0x1724D 0x9C3A +0x1724E 0x9BF2 +0x1724F 0x9BF1 +0x17250 0x9BF0 +0x17251 0x9C15 +0x17252 0x9C14 +0x17253 0x9C09 +0x17254 0x9C13 +0x17255 0x9C0C +0x17256 0x9C06 +0x17257 0x9C08 +0x17258 0x9C12 +0x17259 0x9C0A +0x1725A 0x9C04 +0x1725B 0x9C2E +0x1725C 0x9C1B +0x1725D 0x9C25 +0x1725E 0x9C24 +0x1725F 0x9C21 +0x17260 0x9C30 +0x17261 0x9C47 +0x17262 0x9C32 +0x17263 0x9C46 +0x17264 0x9C3E +0x17265 0x9C5A +0x17266 0x9C60 +0x17267 0x9C67 +0x17268 0x9C76 +0x17269 0x9C78 +0x1726A 0x9CE7 +0x1726B 0x9CEC +0x1726C 0x9CF0 +0x1726D 0x9D09 +0x1726E 0x9D08 +0x1726F 0x9CEB +0x17270 0x9D03 +0x17271 0x9D06 +0x17272 0x9D2A +0x17273 0x9D26 +0x17274 0x9DAF +0x17275 0x9D23 +0x17276 0x9D1F +0x17277 0x9D44 +0x17278 0x9D15 +0x17279 0x9D12 +0x1727A 0x9D41 +0x1727B 0x9D3F +0x1727C 0x9D3E +0x1727D 0x9D46 +0x1727E 0x9D48 +0x17321 0x9D5D +0x17322 0x9D5E +0x17323 0x9D64 +0x17324 0x9D51 +0x17325 0x9D50 +0x17326 0x9D59 +0x17327 0x9D72 +0x17328 0x9D89 +0x17329 0x9D87 +0x1732A 0x9DAB +0x1732B 0x9D6F +0x1732C 0x9D7A +0x1732D 0x9D9A +0x1732E 0x9DA4 +0x1732F 0x9DA9 +0x17330 0x9DB2 +0x17331 0x9DC4 +0x17332 0x9DC1 +0x17333 0x9DBB +0x17334 0x9DB8 +0x17335 0x9DBA +0x17336 0x9DC6 +0x17337 0x9DCF +0x17338 0x9DC2 +0x17339 0x9DD9 +0x1733A 0x9DD3 +0x1733B 0x9DF8 +0x1733C 0x9DE6 +0x1733D 0x9DED +0x1733E 0x9DEF +0x1733F 0x9DFD +0x17340 0x9E1A +0x17341 0x9E1B +0x17342 0x9E1E +0x17343 0x9E75 +0x17344 0x9E79 +0x17345 0x9E7D +0x17346 0x9E81 +0x17347 0x9E88 +0x17348 0x9E8B +0x17349 0x9E8C +0x1734A 0x9E92 +0x1734B 0x9E95 +0x1734C 0x9E91 +0x1734D 0x9E9D +0x1734E 0x9EA5 +0x1734F 0x9EA9 +0x17350 0x9EB8 +0x17351 0x9EAA +0x17352 0x9EAD +0x17353 0x9761 +0x17354 0x9ECC +0x17355 0x9ECE +0x17356 0x9ECF +0x17357 0x9ED0 +0x17358 0x9ED4 +0x17359 0x9EDC +0x1735A 0x9EDE +0x1735B 0x9EDD +0x1735C 0x9EE0 +0x1735D 0x9EE5 +0x1735E 0x9EE8 +0x1735F 0x9EEF +0x17360 0x9EF4 +0x17361 0x9EF6 +0x17362 0x9EF7 +0x17363 0x9EF9 +0x17364 0x9EFB +0x17365 0x9EFC +0x17366 0x9EFD +0x17367 0x9F07 +0x17368 0x9F08 +0x17369 0x76B7 +0x1736A 0x9F15 +0x1736B 0x9F21 +0x1736C 0x9F2C +0x1736D 0x9F3E +0x1736E 0x9F4A +0x1736F 0x9F52 +0x17370 0x9F54 +0x17371 0x9F63 +0x17372 0x9F5F +0x17373 0x9F60 +0x17374 0x9F61 +0x17375 0x9F66 +0x17376 0x9F67 +0x17377 0x9F6C +0x17378 0x9F6A +0x17379 0x9F77 +0x1737A 0x9F72 +0x1737B 0x9F76 +0x1737C 0x9F95 +0x1737D 0x9F9C +0x1737E 0x9FA0 +0x17421 0x582F +0x17422 0x69C7 +0x17423 0x9059 +0x17424 0x7464 +0x17425 0x51DC +0x17426 0x7199 +0x17427 0x5653 +0x17428 0x5DE2 +0x17429 0x5E14 +0x1742A 0x5E18 +0x1742B 0x5E58 +0x1742C 0x5E5E +0x1742D 0x5EBE +0x1742E 0xF928 +0x1742F 0x5ECB +0x17430 0x5EF9 +0x17431 0x5F00 +0x17432 0x5F02 +0x17433 0x5F07 +0x17434 0x5F1D +0x17435 0x5F23 +0x17436 0x5F34 +0x17437 0x5F36 +0x17438 0x5F3D +0x17439 0x5F40 +0x1743A 0x5F45 +0x1743B 0x5F54 +0x1743C 0x5F58 +0x1743D 0x5F64 +0x1743E 0x5F67 +0x1743F 0x5F7D +0x17440 0x5F89 +0x17441 0x5F9C +0x17442 0x5FA7 +0x17443 0x5FAF +0x17444 0x5FB5 +0x17445 0x5FB7 +0x17446 0x5FC9 +0x17447 0x5FDE +0x17448 0x5FE1 +0x17449 0x5FE9 +0x1744A 0x600D +0x1744B 0x6014 +0x1744C 0x6018 +0x1744D 0x6033 +0x1744E 0x6035 +0x1744F 0x6047 +0x17450 0xFA3D +0x17451 0x609D +0x17452 0x609E +0x17453 0x60CB +0x17454 0x60D4 +0x17455 0x60D5 +0x17456 0x60DD +0x17457 0x60F8 +0x17458 0x611C +0x17459 0x612B +0x1745A 0x6130 +0x1745B 0x6137 +0x1745C 0xFA3E +0x1745D 0x618D +0x1745E 0xFA3F +0x1745F 0x61BC +0x17460 0x61B9 +0x17461 0xFA40 +0x17462 0x6222 +0x17463 0x623E +0x17464 0x6243 +0x17465 0x6256 +0x17466 0x625A +0x17467 0x626F +0x17468 0x6285 +0x17469 0x62C4 +0x1746A 0x62D6 +0x1746B 0x62FC +0x1746C 0x630A +0x1746D 0x6318 +0x1746E 0x6339 +0x1746F 0x6343 +0x17470 0x6365 +0x17471 0x637C +0x17472 0x63E5 +0x17473 0x63ED +0x17474 0x63F5 +0x17475 0x6410 +0x17476 0x6414 +0x17477 0x6422 +0x17478 0x6479 +0x17479 0x6451 +0x1747A 0x6460 +0x1747B 0x646D +0x1747C 0x64CE +0x1747D 0x64BE +0x1747E 0x64BF +0x17521 0x64C4 +0x17522 0x64CA +0x17523 0x64D0 +0x17524 0x64F7 +0x17525 0x64FB +0x17526 0x6522 +0x17527 0x6529 +0x17528 0xFA41 +0x17529 0x6567 +0x1752A 0x659D +0x1752B 0xFA42 +0x1752C 0x6600 +0x1752D 0x6609 +0x1752E 0x6615 +0x1752F 0x661E +0x17530 0x663A +0x17531 0x6622 +0x17532 0x6624 +0x17533 0x662B +0x17534 0x6630 +0x17535 0x6631 +0x17536 0x6633 +0x17537 0x66FB +0x17538 0x6648 +0x17539 0x664C +0x1753A 0x231C4 +0x1753B 0x6659 +0x1753C 0x665A +0x1753D 0x6661 +0x1753E 0x6665 +0x1753F 0x6673 +0x17540 0x6677 +0x17541 0x6678 +0x17542 0x668D +0x17543 0xFA43 +0x17544 0x66A0 +0x17545 0x66B2 +0x17546 0x66BB +0x17547 0x66C6 +0x17548 0x66C8 +0x17549 0x3B22 +0x1754A 0x66DB +0x1754B 0x66E8 +0x1754C 0x66FA +0x1754D 0x6713 +0x1754E 0xF929 +0x1754F 0x6733 +0x17550 0x6766 +0x17551 0x6747 +0x17552 0x6748 +0x17553 0x677B +0x17554 0x6781 +0x17555 0x6793 +0x17556 0x6798 +0x17557 0x679B +0x17558 0x67BB +0x17559 0x67F9 +0x1755A 0x67C0 +0x1755B 0x67D7 +0x1755C 0x67FC +0x1755D 0x6801 +0x1755E 0x6852 +0x1755F 0x681D +0x17560 0x682C +0x17561 0x6831 +0x17562 0x685B +0x17563 0x6872 +0x17564 0x6875 +0x17565 0xFA44 +0x17566 0x68A3 +0x17567 0x68A5 +0x17568 0x68B2 +0x17569 0x68C8 +0x1756A 0x68D0 +0x1756B 0x68E8 +0x1756C 0x68ED +0x1756D 0x68F0 +0x1756E 0x68F1 +0x1756F 0x68FC +0x17570 0x690A +0x17571 0x6949 +0x17572 0x235C4 +0x17573 0x6935 +0x17574 0x6942 +0x17575 0x6957 +0x17576 0x6963 +0x17577 0x6964 +0x17578 0x6968 +0x17579 0x6980 +0x1757A 0xFA14 +0x1757B 0x69A5 +0x1757C 0x69AD +0x1757D 0x69CF +0x1757E 0x3BB6 +0x17621 0x3BC3 +0x17622 0x69E2 +0x17623 0x69E9 +0x17624 0x69EA +0x17625 0x69F5 +0x17626 0x69F6 +0x17627 0x6A0F +0x17628 0x6A15 +0x17629 0x2373F +0x1762A 0x6A3B +0x1762B 0x6A3E +0x1762C 0x6A45 +0x1762D 0x6A50 +0x1762E 0x6A56 +0x1762F 0x6A5B +0x17630 0x6A6B +0x17631 0x6A73 +0x17632 0x23763 +0x17633 0x6A89 +0x17634 0x6A94 +0x17635 0x6A9D +0x17636 0x6A9E +0x17637 0x6AA5 +0x17638 0x6AE4 +0x17639 0x6AE7 +0x1763A 0x3C0F +0x1763B 0xF91D +0x1763C 0x6B1B +0x1763D 0x6B1E +0x1763E 0x6B2C +0x1763F 0x6B35 +0x17640 0x6B46 +0x17641 0x6B56 +0x17642 0x6B60 +0x17643 0x6B65 +0x17644 0x6B67 +0x17645 0x6B77 +0x17646 0x6B82 +0x17647 0x6BA9 +0x17648 0x6BAD +0x17649 0xF970 +0x1764A 0x6BCF +0x1764B 0x6BD6 +0x1764C 0x6BD7 +0x1764D 0x6BFF +0x1764E 0x6C05 +0x1764F 0x6C10 +0x17650 0x6C33 +0x17651 0x6C59 +0x17652 0x6C5C +0x17653 0x6CAA +0x17654 0x6C74 +0x17655 0x6C76 +0x17656 0x6C85 +0x17657 0x6C86 +0x17658 0x6C98 +0x17659 0x6C9C +0x1765A 0x6CFB +0x1765B 0x6CC6 +0x1765C 0x6CD4 +0x1765D 0x6CE0 +0x1765E 0x6CEB +0x1765F 0x6CEE +0x17660 0x23CFE +0x17661 0x6D04 +0x17662 0x6D0E +0x17663 0x6D2E +0x17664 0x6D31 +0x17665 0x6D39 +0x17666 0x6D3F +0x17667 0x6D58 +0x17668 0x6D65 +0x17669 0xFA45 +0x1766A 0x6D82 +0x1766B 0x6D87 +0x1766C 0x6D89 +0x1766D 0x6D94 +0x1766E 0x6DAA +0x1766F 0x6DAC +0x17670 0x6DBF +0x17671 0x6DC4 +0x17672 0x6DD6 +0x17673 0x6DDA +0x17674 0x6DDB +0x17675 0x6DDD +0x17676 0x6DFC +0x17677 0xFA46 +0x17678 0x6E34 +0x17679 0x6E44 +0x1767A 0x6E5C +0x1767B 0x6E5E +0x1767C 0x6EAB +0x1767D 0x6EB1 +0x1767E 0x6EC1 +0x17721 0x6EC7 +0x17722 0x6ECE +0x17723 0x6F10 +0x17724 0x6F1A +0x17725 0xFA47 +0x17726 0x6F2A +0x17727 0x6F2F +0x17728 0x6F33 +0x17729 0x6F51 +0x1772A 0x6F59 +0x1772B 0x6F5E +0x1772C 0x6F61 +0x1772D 0x6F62 +0x1772E 0x6F7E +0x1772F 0x6F88 +0x17730 0x6F8C +0x17731 0x6F8D +0x17732 0x6F94 +0x17733 0x6FA0 +0x17734 0x6FA7 +0x17735 0x6FB6 +0x17736 0x6FBC +0x17737 0x6FC7 +0x17738 0x6FCA +0x17739 0x6FF9 +0x1773A 0x6FF0 +0x1773B 0x6FF5 +0x1773C 0x7005 +0x1773D 0x7006 +0x1773E 0x7028 +0x1773F 0x704A +0x17740 0x705D +0x17741 0x705E +0x17742 0x704E +0x17743 0x7064 +0x17744 0x7075 +0x17745 0x7085 +0x17746 0x70A4 +0x17747 0x70AB +0x17748 0x70B7 +0x17749 0x70D4 +0x1774A 0x70D8 +0x1774B 0x70E4 +0x1774C 0x710F +0x1774D 0x712B +0x1774E 0x711E +0x1774F 0x7120 +0x17750 0x712E +0x17751 0x7130 +0x17752 0x7146 +0x17753 0x7147 +0x17754 0x7151 +0x17755 0xFA48 +0x17756 0x7152 +0x17757 0x715C +0x17758 0x7160 +0x17759 0x7168 +0x1775A 0xFA15 +0x1775B 0x7185 +0x1775C 0x7187 +0x1775D 0x7192 +0x1775E 0x71C1 +0x1775F 0x71BA +0x17760 0x71C4 +0x17761 0x71FE +0x17762 0x7200 +0x17763 0x7215 +0x17764 0x7255 +0x17765 0x7256 +0x17766 0x3E3F +0x17767 0x728D +0x17768 0x729B +0x17769 0x72BE +0x1776A 0x72C0 +0x1776B 0x72FB +0x1776C 0x247F1 +0x1776D 0x7327 +0x1776E 0x7328 +0x1776F 0xFA16 +0x17770 0x7350 +0x17771 0x7366 +0x17772 0x737C +0x17773 0x7395 +0x17774 0x739F +0x17775 0x73A0 +0x17776 0x73A2 +0x17777 0x73A6 +0x17778 0x73AB +0x17779 0x73C9 +0x1777A 0x73CF +0x1777B 0x73D6 +0x1777C 0x73D9 +0x1777D 0x73E3 +0x1777E 0x73E9 +0x17821 0x7407 +0x17822 0x740A +0x17823 0x741A +0x17824 0x741B +0x17825 0xFA4A +0x17826 0x7426 +0x17827 0x7428 +0x17828 0x742A +0x17829 0x742B +0x1782A 0x742C +0x1782B 0x742E +0x1782C 0x742F +0x1782D 0x7430 +0x1782E 0x7444 +0x1782F 0x7446 +0x17830 0x7447 +0x17831 0x744B +0x17832 0x7457 +0x17833 0x7462 +0x17834 0x746B +0x17835 0x746D +0x17836 0x7486 +0x17837 0x7487 +0x17838 0x7489 +0x17839 0x7498 +0x1783A 0x749C +0x1783B 0x749F +0x1783C 0x74A3 +0x1783D 0x7490 +0x1783E 0x74A6 +0x1783F 0x74A8 +0x17840 0x74A9 +0x17841 0x74B5 +0x17842 0x74BF +0x17843 0x74C8 +0x17844 0x74C9 +0x17845 0x74DA +0x17846 0x74FF +0x17847 0x7501 +0x17848 0x7517 +0x17849 0x752F +0x1784A 0x756F +0x1784B 0x7579 +0x1784C 0x7592 +0x1784D 0x3F72 +0x1784E 0x75CE +0x1784F 0x75E4 +0x17850 0x7600 +0x17851 0x7602 +0x17852 0x7608 +0x17853 0x7615 +0x17854 0x7616 +0x17855 0x7619 +0x17856 0x761E +0x17857 0x762D +0x17858 0x7635 +0x17859 0x7643 +0x1785A 0x764B +0x1785B 0x7664 +0x1785C 0x7665 +0x1785D 0x766D +0x1785E 0x766F +0x1785F 0x7671 +0x17860 0x7681 +0x17861 0x769B +0x17862 0x769D +0x17863 0x769E +0x17864 0x76A6 +0x17865 0x76AA +0x17866 0x76B6 +0x17867 0x76C5 +0x17868 0x76CC +0x17869 0x76CE +0x1786A 0x76D4 +0x1786B 0x76E6 +0x1786C 0x76F1 +0x1786D 0x76FC +0x1786E 0x770A +0x1786F 0x7719 +0x17870 0x7734 +0x17871 0x7736 +0x17872 0x7746 +0x17873 0x774D +0x17874 0x774E +0x17875 0x775C +0x17876 0x775F +0x17877 0x7762 +0x17878 0x777A +0x17879 0x7780 +0x1787A 0x7794 +0x1787B 0x77AA +0x1787C 0x77E0 +0x1787D 0x782D +0x1787E 0x2548E +0x17921 0x7843 +0x17922 0x784E +0x17923 0x784F +0x17924 0x7851 +0x17925 0x7868 +0x17926 0x786E +0x17927 0xFA4B +0x17928 0x78B0 +0x17929 0x2550E +0x1792A 0x78AD +0x1792B 0x78E4 +0x1792C 0x78F2 +0x1792D 0x7900 +0x1792E 0x78F7 +0x1792F 0x791C +0x17930 0x792E +0x17931 0x7931 +0x17932 0x7934 +0x17933 0xFA4C +0x17934 0xFA4D +0x17935 0x7945 +0x17936 0x7946 +0x17937 0xFA4E +0x17938 0xFA4F +0x17939 0xFA50 +0x1793A 0x795C +0x1793B 0xFA51 +0x1793C 0xFA19 +0x1793D 0xFA1A +0x1793E 0x7979 +0x1793F 0xFA52 +0x17940 0xFA53 +0x17941 0xFA1B +0x17942 0x7998 +0x17943 0x79B1 +0x17944 0x79B8 +0x17945 0x79C8 +0x17946 0x79CA +0x17947 0x25771 +0x17948 0x79D4 +0x17949 0x79DE +0x1794A 0x79EB +0x1794B 0x79ED +0x1794C 0x7A03 +0x1794D 0xFA54 +0x1794E 0x7A39 +0x1794F 0x7A5D +0x17950 0x7A6D +0x17951 0xFA55 +0x17952 0x7A85 +0x17953 0x7AA0 +0x17954 0x259C4 +0x17955 0x7AB3 +0x17956 0x7ABB +0x17957 0x7ACE +0x17958 0x7AEB +0x17959 0x7AFD +0x1795A 0x7B12 +0x1795B 0x7B2D +0x1795C 0x7B3B +0x1795D 0x7B47 +0x1795E 0x7B4E +0x1795F 0x7B60 +0x17960 0x7B6D +0x17961 0x7B6F +0x17962 0x7B72 +0x17963 0x7B9E +0x17964 0xFA56 +0x17965 0x7BD7 +0x17966 0x7BD9 +0x17967 0x7C01 +0x17968 0x7C31 +0x17969 0x7C1E +0x1796A 0x7C20 +0x1796B 0x7C33 +0x1796C 0x7C36 +0x1796D 0x4264 +0x1796E 0x25DA1 +0x1796F 0x7C59 +0x17970 0x7C6D +0x17971 0x7C79 +0x17972 0x7C8F +0x17973 0x7C94 +0x17974 0x7CA0 +0x17975 0x7CBC +0x17976 0x7CD5 +0x17977 0x7CD9 +0x17978 0x7CDD +0x17979 0x7D07 +0x1797A 0x7D08 +0x1797B 0x7D13 +0x1797C 0x7D1D +0x1797D 0x7D23 +0x1797E 0x7D31 +0x17A21 0x7D41 +0x17A22 0x7D48 +0x17A23 0x7D53 +0x17A24 0x7D5C +0x17A25 0x7D7A +0x17A26 0x7D83 +0x17A27 0x7D8B +0x17A28 0x7DA0 +0x17A29 0x7DA6 +0x17A2A 0x7DC2 +0x17A2B 0x7DCC +0x17A2C 0x7DD6 +0x17A2D 0x7DE3 +0x17A2E 0xFA57 +0x17A2F 0x7E28 +0x17A30 0x7E08 +0x17A31 0x7E11 +0x17A32 0x7E15 +0x17A33 0xFA59 +0x17A34 0x7E47 +0x17A35 0x7E52 +0x17A36 0x7E61 +0x17A37 0x7E8A +0x17A38 0x7E8D +0x17A39 0x7F47 +0x17A3A 0xFA5A +0x17A3B 0x7F91 +0x17A3C 0x7F97 +0x17A3D 0x7FBF +0x17A3E 0x7FCE +0x17A3F 0x7FDB +0x17A40 0x7FDF +0x17A41 0x7FEC +0x17A42 0x7FEE +0x17A43 0x7FFA +0x17A44 0xFA5B +0x17A45 0x8014 +0x17A46 0x8026 +0x17A47 0x8035 +0x17A48 0x8037 +0x17A49 0x803C +0x17A4A 0x80CA +0x17A4B 0x80D7 +0x17A4C 0x80E0 +0x17A4D 0x80F3 +0x17A4E 0x8118 +0x17A4F 0x814A +0x17A50 0x8160 +0x17A51 0x8167 +0x17A52 0x8168 +0x17A53 0x816D +0x17A54 0x81BB +0x17A55 0x81CA +0x17A56 0x81CF +0x17A57 0x81D7 +0x17A58 0xFA5C +0x17A59 0x4453 +0x17A5A 0x445B +0x17A5B 0x8260 +0x17A5C 0x8274 +0x17A5D 0x26AFF +0x17A5E 0x828E +0x17A5F 0x82A1 +0x17A60 0x82A3 +0x17A61 0x82A4 +0x17A62 0x82A9 +0x17A63 0x82AE +0x17A64 0x82B7 +0x17A65 0x82BE +0x17A66 0x82BF +0x17A67 0x82C6 +0x17A68 0x82D5 +0x17A69 0x82FD +0x17A6A 0x82FE +0x17A6B 0x8300 +0x17A6C 0x8301 +0x17A6D 0x8362 +0x17A6E 0x8322 +0x17A6F 0x832D +0x17A70 0x833A +0x17A71 0x8343 +0x17A72 0x8347 +0x17A73 0x8351 +0x17A74 0x8355 +0x17A75 0x837D +0x17A76 0x8386 +0x17A77 0x8392 +0x17A78 0x8398 +0x17A79 0x83A7 +0x17A7A 0x83A9 +0x17A7B 0x83BF +0x17A7C 0x83C0 +0x17A7D 0x83C7 +0x17A7E 0x83CF +0x17B21 0x83D1 +0x17B22 0x83E1 +0x17B23 0x83EA +0x17B24 0x8401 +0x17B25 0x8406 +0x17B26 0x840A +0x17B27 0xFA5F +0x17B28 0x8448 +0x17B29 0x845F +0x17B2A 0x8470 +0x17B2B 0x8473 +0x17B2C 0x8485 +0x17B2D 0x849E +0x17B2E 0x84AF +0x17B2F 0x84B4 +0x17B30 0x84BA +0x17B31 0x84C0 +0x17B32 0x84C2 +0x17B33 0x26E40 +0x17B34 0x8532 +0x17B35 0x851E +0x17B36 0x8523 +0x17B37 0x852F +0x17B38 0x8559 +0x17B39 0x8564 +0x17B3A 0xFA1F +0x17B3B 0x85AD +0x17B3C 0x857A +0x17B3D 0x858C +0x17B3E 0x858F +0x17B3F 0x85A2 +0x17B40 0x85B0 +0x17B41 0x85CB +0x17B42 0x85CE +0x17B43 0x85ED +0x17B44 0x8612 +0x17B45 0x85FF +0x17B46 0x8604 +0x17B47 0x8605 +0x17B48 0x8610 +0x17B49 0x270F4 +0x17B4A 0x8618 +0x17B4B 0x8629 +0x17B4C 0x8638 +0x17B4D 0x8657 +0x17B4E 0x865B +0x17B4F 0xF936 +0x17B50 0x8662 +0x17B51 0x459D +0x17B52 0x866C +0x17B53 0x8675 +0x17B54 0x8698 +0x17B55 0x86B8 +0x17B56 0x86FA +0x17B57 0x86FC +0x17B58 0x86FD +0x17B59 0x870B +0x17B5A 0x8771 +0x17B5B 0x8787 +0x17B5C 0x8788 +0x17B5D 0x87AC +0x17B5E 0x87AD +0x17B5F 0x87B5 +0x17B60 0x45EA +0x17B61 0x87D6 +0x17B62 0x87EC +0x17B63 0x8806 +0x17B64 0x880A +0x17B65 0x8810 +0x17B66 0x8814 +0x17B67 0x881F +0x17B68 0x8898 +0x17B69 0x88AA +0x17B6A 0x88CA +0x17B6B 0x88CE +0x17B6C 0x27684 +0x17B6D 0x88F5 +0x17B6E 0x891C +0x17B6F 0xFA60 +0x17B70 0x8918 +0x17B71 0x8919 +0x17B72 0x891A +0x17B73 0x8927 +0x17B74 0x8930 +0x17B75 0x8932 +0x17B76 0x8939 +0x17B77 0x8940 +0x17B78 0x8994 +0x17B79 0xFA61 +0x17B7A 0x89D4 +0x17B7B 0x89E5 +0x17B7C 0x89F6 +0x17B7D 0x8A12 +0x17B7E 0x8A15 +0x17C21 0x8A22 +0x17C22 0x8A37 +0x17C23 0x8A47 +0x17C24 0x8A4E +0x17C25 0x8A5D +0x17C26 0x8A61 +0x17C27 0x8A75 +0x17C28 0x8A79 +0x17C29 0x8AA7 +0x17C2A 0x8AD0 +0x17C2B 0x8ADF +0x17C2C 0x8AF4 +0x17C2D 0x8AF6 +0x17C2E 0xFA22 +0x17C2F 0xFA62 +0x17C30 0xFA63 +0x17C31 0x8B46 +0x17C32 0x8B54 +0x17C33 0x8B59 +0x17C34 0x8B69 +0x17C35 0x8B9D +0x17C36 0x8C49 +0x17C37 0x8C68 +0x17C38 0xFA64 +0x17C39 0x8CE1 +0x17C3A 0x8CF4 +0x17C3B 0x8CF8 +0x17C3C 0x8CFE +0x17C3D 0xFA65 +0x17C3E 0x8D12 +0x17C3F 0x8D1B +0x17C40 0x8DAF +0x17C41 0x8DCE +0x17C42 0x8DD1 +0x17C43 0x8DD7 +0x17C44 0x8E20 +0x17C45 0x8E23 +0x17C46 0x8E3D +0x17C47 0x8E70 +0x17C48 0x8E7B +0x17C49 0x28277 +0x17C4A 0x8EC0 +0x17C4B 0x4844 +0x17C4C 0x8EFA +0x17C4D 0x8F1E +0x17C4E 0x8F2D +0x17C4F 0x8F36 +0x17C50 0x8F54 +0x17C51 0x283CD +0x17C52 0x8FA6 +0x17C53 0x8FB5 +0x17C54 0x8FE4 +0x17C55 0x8FE8 +0x17C56 0x8FEE +0x17C57 0x9008 +0x17C58 0x902D +0x17C59 0xFA67 +0x17C5A 0x9088 +0x17C5B 0x9095 +0x17C5C 0x9097 +0x17C5D 0x9099 +0x17C5E 0x909B +0x17C5F 0x90A2 +0x17C60 0x90B3 +0x17C61 0x90BE +0x17C62 0x90C4 +0x17C63 0x90C5 +0x17C64 0x90C7 +0x17C65 0x90D7 +0x17C66 0x90DD +0x17C67 0x90DE +0x17C68 0x90EF +0x17C69 0x90F4 +0x17C6A 0xFA26 +0x17C6B 0x9114 +0x17C6C 0x9115 +0x17C6D 0x9116 +0x17C6E 0x9122 +0x17C6F 0x9123 +0x17C70 0x9127 +0x17C71 0x912F +0x17C72 0x9131 +0x17C73 0x9134 +0x17C74 0x913D +0x17C75 0x9148 +0x17C76 0x915B +0x17C77 0x9183 +0x17C78 0x919E +0x17C79 0x91AC +0x17C7A 0x91B1 +0x17C7B 0x91BC +0x17C7C 0x91D7 +0x17C7D 0x91FB +0x17C7E 0x91E4 +0x17D21 0x91E5 +0x17D22 0x91ED +0x17D23 0x91F1 +0x17D24 0x9207 +0x17D25 0x9210 +0x17D26 0x9238 +0x17D27 0x9239 +0x17D28 0x923A +0x17D29 0x923C +0x17D2A 0x9240 +0x17D2B 0x9243 +0x17D2C 0x924F +0x17D2D 0x9278 +0x17D2E 0x9288 +0x17D2F 0x92C2 +0x17D30 0x92CB +0x17D31 0x92CC +0x17D32 0x92D3 +0x17D33 0x92E0 +0x17D34 0x92FF +0x17D35 0x9304 +0x17D36 0x931F +0x17D37 0x9321 +0x17D38 0x9325 +0x17D39 0x9348 +0x17D3A 0x9349 +0x17D3B 0x934A +0x17D3C 0x9364 +0x17D3D 0x9365 +0x17D3E 0x936A +0x17D3F 0x9370 +0x17D40 0x939B +0x17D41 0x93A3 +0x17D42 0x93BA +0x17D43 0x93C6 +0x17D44 0x93DE +0x17D45 0x93DF +0x17D46 0x9404 +0x17D47 0x93FD +0x17D48 0x9433 +0x17D49 0x944A +0x17D4A 0x9463 +0x17D4B 0x946B +0x17D4C 0x9471 +0x17D4D 0x9472 +0x17D4E 0x958E +0x17D4F 0x959F +0x17D50 0x95A6 +0x17D51 0x95A9 +0x17D52 0x95AC +0x17D53 0x95B6 +0x17D54 0x95BD +0x17D55 0x95CB +0x17D56 0x95D0 +0x17D57 0x95D3 +0x17D58 0x49B0 +0x17D59 0x95DA +0x17D5A 0x95DE +0x17D5B 0x9658 +0x17D5C 0x9684 +0x17D5D 0xF9DC +0x17D5E 0x969D +0x17D5F 0x96A4 +0x17D60 0x96A5 +0x17D61 0x96D2 +0x17D62 0x96DE +0x17D63 0xFA68 +0x17D64 0x96E9 +0x17D65 0x96EF +0x17D66 0x9733 +0x17D67 0x973B +0x17D68 0x974D +0x17D69 0x974E +0x17D6A 0x974F +0x17D6B 0x975A +0x17D6C 0x976E +0x17D6D 0x9773 +0x17D6E 0x9795 +0x17D6F 0x97AE +0x17D70 0x97BA +0x17D71 0x97C1 +0x17D72 0x97C9 +0x17D73 0x97DE +0x17D74 0x97DB +0x17D75 0x97F4 +0x17D76 0xFA69 +0x17D77 0x980A +0x17D78 0x981E +0x17D79 0x982B +0x17D7A 0x9830 +0x17D7B 0xFA6A +0x17D7C 0x9852 +0x17D7D 0x9853 +0x17D7E 0x9856 +0x17E21 0x9857 +0x17E22 0x9859 +0x17E23 0x985A +0x17E24 0xF9D0 +0x17E25 0x9865 +0x17E26 0x986C +0x17E27 0x98BA +0x17E28 0x98C8 +0x17E29 0x98E7 +0x17E2A 0x9958 +0x17E2B 0x999E +0x17E2C 0x9A02 +0x17E2D 0x9A03 +0x17E2E 0x9A24 +0x17E2F 0x9A2D +0x17E30 0x9A2E +0x17E31 0x9A38 +0x17E32 0x9A4A +0x17E33 0x9A4E +0x17E34 0x9A52 +0x17E35 0x9AB6 +0x17E36 0x9AC1 +0x17E37 0x9AC3 +0x17E38 0x9ACE +0x17E39 0x9AD6 +0x17E3A 0x9AF9 +0x17E3B 0x9B02 +0x17E3C 0x9B08 +0x17E3D 0x9B20 +0x17E3E 0x4C17 +0x17E3F 0x9B2D +0x17E40 0x9B5E +0x17E41 0x9B79 +0x17E42 0x9B66 +0x17E43 0x9B72 +0x17E44 0x9B75 +0x17E45 0x9B84 +0x17E46 0x9B8A +0x17E47 0x9B8F +0x17E48 0x9B9E +0x17E49 0x9BA7 +0x17E4A 0x9BC1 +0x17E4B 0x9BCE +0x17E4C 0x9BE5 +0x17E4D 0x9BF8 +0x17E4E 0x9BFD +0x17E4F 0x9C00 +0x17E50 0x9C23 +0x17E51 0x9C41 +0x17E52 0x9C4F +0x17E53 0x9C50 +0x17E54 0x9C53 +0x17E55 0x9C63 +0x17E56 0x9C65 +0x17E57 0x9C77 +0x17E58 0x9D1D +0x17E59 0x9D1E +0x17E5A 0x9D43 +0x17E5B 0x9D47 +0x17E5C 0x9D52 +0x17E5D 0x9D63 +0x17E5E 0x9D70 +0x17E5F 0x9D7C +0x17E60 0x9D8A +0x17E61 0x9D96 +0x17E62 0x9DC0 +0x17E63 0x9DAC +0x17E64 0x9DBC +0x17E65 0x9DD7 +0x17E66 0x2A190 +0x17E67 0x9DE7 +0x17E68 0x9E07 +0x17E69 0x9E15 +0x17E6A 0x9E7C +0x17E6B 0x9E9E +0x17E6C 0x9EA4 +0x17E6D 0x9EAC +0x17E6E 0x9EAF +0x17E6F 0x9EB4 +0x17E70 0x9EB5 +0x17E71 0x9EC3 +0x17E72 0x9ED1 +0x17E73 0x9F10 +0x17E74 0x9F39 +0x17E75 0x9F57 +0x17E76 0x9F90 +0x17E77 0x9F94 +0x17E78 0x9F97 +0x17E79 0x9FA2 +0x17E7A 0x59F8 +0x17E7B 0x5C5B +0x17E7C 0x5E77 +0x17E7D 0x7626 +0x17E7E 0x7E6B +0x22121 0x20089 +0x22122 0x4E02 +0x22123 0x4E0F +0x22124 0x4E12 +0x22125 0x4E29 +0x22126 0x4E2B +0x22127 0x4E2E +0x22128 0x4E40 +0x22129 0x4E47 +0x2212A 0x4E48 +0x2212B 0x200A2 +0x2212C 0x4E51 +0x2212D 0x3406 +0x2212E 0x200A4 +0x2212F 0x4E5A +0x22130 0x4E69 +0x22131 0x4E9D +0x22132 0x342C +0x22133 0x342E +0x22134 0x4EB9 +0x22135 0x4EBB +0x22136 0x201A2 +0x22137 0x4EBC +0x22138 0x4EC3 +0x22139 0x4EC8 +0x2213A 0x4ED0 +0x2213B 0x4EEB +0x2213C 0x4EDA +0x2213D 0x4EF1 +0x2213E 0x4EF5 +0x2213F 0x4F00 +0x22140 0x4F16 +0x22141 0x4F64 +0x22142 0x4F37 +0x22143 0x4F3E +0x22144 0x4F54 +0x22145 0x4F58 +0x22146 0x20213 +0x22147 0x4F77 +0x22148 0x4F78 +0x22149 0x4F7A +0x2214A 0x4F7D +0x2214B 0x4F82 +0x2214C 0x4F85 +0x2214D 0x4F92 +0x2214E 0x4F9A +0x2214F 0x4FE6 +0x22150 0x4FB2 +0x22151 0x4FBE +0x22152 0x4FC5 +0x22153 0x4FCB +0x22154 0x4FCF +0x22155 0x4FD2 +0x22156 0x346A +0x22157 0x4FF2 +0x22158 0x5000 +0x22159 0x5010 +0x2215A 0x5013 +0x2215B 0x501C +0x2215C 0x501E +0x2215D 0x5022 +0x2215E 0x3468 +0x2215F 0x5042 +0x22160 0x5046 +0x22161 0x504E +0x22162 0x5053 +0x22163 0x5057 +0x22164 0x5063 +0x22165 0x5066 +0x22166 0x506A +0x22167 0x5070 +0x22168 0x50A3 +0x22169 0x5088 +0x2216A 0x5092 +0x2216B 0x5093 +0x2216C 0x5095 +0x2216D 0x5096 +0x2216E 0x509C +0x2216F 0x50AA +0x22170 0x2032B +0x22171 0x50B1 +0x22172 0x50BA +0x22173 0x50BB +0x22174 0x50C4 +0x22175 0x50C7 +0x22176 0x50F3 +0x22177 0x20381 +0x22178 0x50CE +0x22179 0x20371 +0x2217A 0x50D4 +0x2217B 0x50D9 +0x2217C 0x50E1 +0x2217D 0x50E9 +0x2217E 0x3492 +0x22321 0x5108 +0x22322 0x203F9 +0x22323 0x5117 +0x22324 0x511B +0x22325 0x2044A +0x22326 0x5160 +0x22327 0x20509 +0x22328 0x5173 +0x22329 0x5183 +0x2232A 0x518B +0x2232B 0x34BC +0x2232C 0x5198 +0x2232D 0x51A3 +0x2232E 0x51AD +0x2232F 0x34C7 +0x22330 0x51BC +0x22331 0x205D6 +0x22332 0x20628 +0x22333 0x51F3 +0x22334 0x51F4 +0x22335 0x5202 +0x22336 0x5212 +0x22337 0x5216 +0x22338 0x2074F +0x22339 0x5255 +0x2233A 0x525C +0x2233B 0x526C +0x2233C 0x5277 +0x2233D 0x5284 +0x2233E 0x5282 +0x2233F 0x20807 +0x22340 0x5298 +0x22341 0x2083A +0x22342 0x52A4 +0x22343 0x52A6 +0x22344 0x52AF +0x22345 0x52BA +0x22346 0x52BB +0x22347 0x52CA +0x22348 0x351F +0x22349 0x52D1 +0x2234A 0x208B9 +0x2234B 0x52F7 +0x2234C 0x530A +0x2234D 0x530B +0x2234E 0x5324 +0x2234F 0x5335 +0x22350 0x533E +0x22351 0x5342 +0x22352 0x2097C +0x22353 0x2099D +0x22354 0x5367 +0x22355 0x536C +0x22356 0x537A +0x22357 0x53A4 +0x22358 0x53B4 +0x22359 0x20AD3 +0x2235A 0x53B7 +0x2235B 0x53C0 +0x2235C 0x20B1D +0x2235D 0x355D +0x2235E 0x355E +0x2235F 0x53D5 +0x22360 0x53DA +0x22361 0x3563 +0x22362 0x53F4 +0x22363 0x53F5 +0x22364 0x5455 +0x22365 0x5424 +0x22366 0x5428 +0x22367 0x356E +0x22368 0x5443 +0x22369 0x5462 +0x2236A 0x5466 +0x2236B 0x546C +0x2236C 0x548A +0x2236D 0x548D +0x2236E 0x5495 +0x2236F 0x54A0 +0x22370 0x54A6 +0x22371 0x54AD +0x22372 0x54AE +0x22373 0x54B7 +0x22374 0x54BA +0x22375 0x54BF +0x22376 0x54C3 +0x22377 0x20D45 +0x22378 0x54EC +0x22379 0x54EF +0x2237A 0x54F1 +0x2237B 0x54F3 +0x2237C 0x5500 +0x2237D 0x5501 +0x2237E 0x5509 +0x22421 0x553C +0x22422 0x5541 +0x22423 0x35A6 +0x22424 0x5547 +0x22425 0x554A +0x22426 0x35A8 +0x22427 0x5560 +0x22428 0x5561 +0x22429 0x5564 +0x2242A 0x20DE1 +0x2242B 0x557D +0x2242C 0x5582 +0x2242D 0x5588 +0x2242E 0x5591 +0x2242F 0x35C5 +0x22430 0x55D2 +0x22431 0x20E95 +0x22432 0x20E6D +0x22433 0x55BF +0x22434 0x55C9 +0x22435 0x55CC +0x22436 0x55D1 +0x22437 0x55DD +0x22438 0x35DA +0x22439 0x55E2 +0x2243A 0x20E64 +0x2243B 0x55E9 +0x2243C 0x5628 +0x2243D 0x20F5F +0x2243E 0x5607 +0x2243F 0x5610 +0x22440 0x5630 +0x22441 0x5637 +0x22442 0x35F4 +0x22443 0x563D +0x22444 0x563F +0x22445 0x5640 +0x22446 0x5647 +0x22447 0x565E +0x22448 0x5660 +0x22449 0x566D +0x2244A 0x3605 +0x2244B 0x5688 +0x2244C 0x568C +0x2244D 0x5695 +0x2244E 0x569A +0x2244F 0x569D +0x22450 0x56A8 +0x22451 0x56AD +0x22452 0x56B2 +0x22453 0x56C5 +0x22454 0x56CD +0x22455 0x56DF +0x22456 0x56E8 +0x22457 0x56F6 +0x22458 0x56F7 +0x22459 0x21201 +0x2245A 0x5715 +0x2245B 0x5723 +0x2245C 0x21255 +0x2245D 0x5729 +0x2245E 0x2127B +0x2245F 0x5745 +0x22460 0x5746 +0x22461 0x574C +0x22462 0x574D +0x22463 0x21274 +0x22464 0x5768 +0x22465 0x576F +0x22466 0x5773 +0x22467 0x5774 +0x22468 0x5775 +0x22469 0x577B +0x2246A 0x212E4 +0x2246B 0x212D7 +0x2246C 0x57AC +0x2246D 0x579A +0x2246E 0x579D +0x2246F 0x579E +0x22470 0x57A8 +0x22471 0x57D7 +0x22472 0x212FD +0x22473 0x57CC +0x22474 0x21336 +0x22475 0x21344 +0x22476 0x57DE +0x22477 0x57E6 +0x22478 0x57F0 +0x22479 0x364A +0x2247A 0x57F8 +0x2247B 0x57FB +0x2247C 0x57FD +0x2247D 0x5804 +0x2247E 0x581E +0x22521 0x5820 +0x22522 0x5827 +0x22523 0x5832 +0x22524 0x5839 +0x22525 0x213C4 +0x22526 0x5849 +0x22527 0x584C +0x22528 0x5867 +0x22529 0x588A +0x2252A 0x588B +0x2252B 0x588D +0x2252C 0x588F +0x2252D 0x5890 +0x2252E 0x5894 +0x2252F 0x589D +0x22530 0x58AA +0x22531 0x58B1 +0x22532 0x2146D +0x22533 0x58C3 +0x22534 0x58CD +0x22535 0x58E2 +0x22536 0x58F3 +0x22537 0x58F4 +0x22538 0x5905 +0x22539 0x5906 +0x2253A 0x590B +0x2253B 0x590D +0x2253C 0x5914 +0x2253D 0x5924 +0x2253E 0x215D7 +0x2253F 0x3691 +0x22540 0x593D +0x22541 0x3699 +0x22542 0x5946 +0x22543 0x3696 +0x22544 0x26C29 +0x22545 0x595B +0x22546 0x595F +0x22547 0x21647 +0x22548 0x5975 +0x22549 0x5976 +0x2254A 0x597C +0x2254B 0x599F +0x2254C 0x59AE +0x2254D 0x59BC +0x2254E 0x59C8 +0x2254F 0x59CD +0x22550 0x59DE +0x22551 0x59E3 +0x22552 0x59E4 +0x22553 0x59E7 +0x22554 0x59EE +0x22555 0x21706 +0x22556 0x21742 +0x22557 0x36CF +0x22558 0x5A0C +0x22559 0x5A0D +0x2255A 0x5A17 +0x2255B 0x5A27 +0x2255C 0x5A2D +0x2255D 0x5A55 +0x2255E 0x5A65 +0x2255F 0x5A7A +0x22560 0x5A8B +0x22561 0x5A9C +0x22562 0x5A9F +0x22563 0x5AA0 +0x22564 0x5AA2 +0x22565 0x5AB1 +0x22566 0x5AB3 +0x22567 0x5AB5 +0x22568 0x5ABA +0x22569 0x5ABF +0x2256A 0x5ADA +0x2256B 0x5ADC +0x2256C 0x5AE0 +0x2256D 0x5AE5 +0x2256E 0x5AF0 +0x2256F 0x5AEE +0x22570 0x5AF5 +0x22571 0x5B00 +0x22572 0x5B08 +0x22573 0x5B17 +0x22574 0x5B34 +0x22575 0x5B2D +0x22576 0x5B4C +0x22577 0x5B52 +0x22578 0x5B68 +0x22579 0x5B6F +0x2257A 0x5B7C +0x2257B 0x5B7F +0x2257C 0x5B81 +0x2257D 0x5B84 +0x2257E 0x219C3 +0x22821 0x5B96 +0x22822 0x5BAC +0x22823 0x3761 +0x22824 0x5BC0 +0x22825 0x3762 +0x22826 0x5BCE +0x22827 0x5BD6 +0x22828 0x376C +0x22829 0x376B +0x2282A 0x5BF1 +0x2282B 0x5BFD +0x2282C 0x3775 +0x2282D 0x5C03 +0x2282E 0x5C29 +0x2282F 0x5C30 +0x22830 0x21C56 +0x22831 0x5C5F +0x22832 0x5C63 +0x22833 0x5C67 +0x22834 0x5C68 +0x22835 0x5C69 +0x22836 0x5C70 +0x22837 0x21D2D +0x22838 0x21D45 +0x22839 0x5C7C +0x2283A 0x21D78 +0x2283B 0x21D62 +0x2283C 0x5C88 +0x2283D 0x5C8A +0x2283E 0x37C1 +0x2283F 0x21DA1 +0x22840 0x21D9C +0x22841 0x5CA0 +0x22842 0x5CA2 +0x22843 0x5CA6 +0x22844 0x5CA7 +0x22845 0x21D92 +0x22846 0x5CAD +0x22847 0x5CB5 +0x22848 0x21DB7 +0x22849 0x5CC9 +0x2284A 0x21DE0 +0x2284B 0x21E33 +0x2284C 0x5D06 +0x2284D 0x5D10 +0x2284E 0x5D2B +0x2284F 0x5D1D +0x22850 0x5D20 +0x22851 0x5D24 +0x22852 0x5D26 +0x22853 0x5D31 +0x22854 0x5D39 +0x22855 0x5D42 +0x22856 0x37E8 +0x22857 0x5D61 +0x22858 0x5D6A +0x22859 0x37F4 +0x2285A 0x5D70 +0x2285B 0x21F1E +0x2285C 0x37FD +0x2285D 0x5D88 +0x2285E 0x3800 +0x2285F 0x5D92 +0x22860 0x5D94 +0x22861 0x5D97 +0x22862 0x5D99 +0x22863 0x5DB0 +0x22864 0x5DB2 +0x22865 0x5DB4 +0x22866 0x21F76 +0x22867 0x5DB9 +0x22868 0x5DD1 +0x22869 0x5DD7 +0x2286A 0x5DD8 +0x2286B 0x5DE0 +0x2286C 0x21FFA +0x2286D 0x5DE4 +0x2286E 0x5DE9 +0x2286F 0x382F +0x22870 0x5E00 +0x22871 0x3836 +0x22872 0x5E12 +0x22873 0x5E15 +0x22874 0x3840 +0x22875 0x5E1F +0x22876 0x5E2E +0x22877 0x5E3E +0x22878 0x5E49 +0x22879 0x385C +0x2287A 0x5E56 +0x2287B 0x3861 +0x2287C 0x5E6B +0x2287D 0x5E6C +0x2287E 0x5E6D +0x22C21 0x5E6E +0x22C22 0x2217B +0x22C23 0x5EA5 +0x22C24 0x5EAA +0x22C25 0x5EAC +0x22C26 0x5EB9 +0x22C27 0x5EBF +0x22C28 0x5EC6 +0x22C29 0x5ED2 +0x22C2A 0x5ED9 +0x22C2B 0x2231E +0x22C2C 0x5EFD +0x22C2D 0x5F08 +0x22C2E 0x5F0E +0x22C2F 0x5F1C +0x22C30 0x223AD +0x22C31 0x5F1E +0x22C32 0x5F47 +0x22C33 0x5F63 +0x22C34 0x5F72 +0x22C35 0x5F7E +0x22C36 0x5F8F +0x22C37 0x5FA2 +0x22C38 0x5FA4 +0x22C39 0x5FB8 +0x22C3A 0x5FC4 +0x22C3B 0x38FA +0x22C3C 0x5FC7 +0x22C3D 0x5FCB +0x22C3E 0x5FD2 +0x22C3F 0x5FD3 +0x22C40 0x5FD4 +0x22C41 0x5FE2 +0x22C42 0x5FEE +0x22C43 0x5FEF +0x22C44 0x5FF3 +0x22C45 0x5FFC +0x22C46 0x3917 +0x22C47 0x6017 +0x22C48 0x6022 +0x22C49 0x6024 +0x22C4A 0x391A +0x22C4B 0x604C +0x22C4C 0x607F +0x22C4D 0x608A +0x22C4E 0x6095 +0x22C4F 0x60A8 +0x22C50 0x226F3 +0x22C51 0x60B0 +0x22C52 0x60B1 +0x22C53 0x60BE +0x22C54 0x60C8 +0x22C55 0x60D9 +0x22C56 0x60DB +0x22C57 0x60EE +0x22C58 0x60F2 +0x22C59 0x60F5 +0x22C5A 0x6110 +0x22C5B 0x6112 +0x22C5C 0x6113 +0x22C5D 0x6119 +0x22C5E 0x611E +0x22C5F 0x613A +0x22C60 0x396F +0x22C61 0x6141 +0x22C62 0x6146 +0x22C63 0x6160 +0x22C64 0x617C +0x22C65 0x2285B +0x22C66 0x6192 +0x22C67 0x6193 +0x22C68 0x6197 +0x22C69 0x6198 +0x22C6A 0x61A5 +0x22C6B 0x61A8 +0x22C6C 0x61AD +0x22C6D 0x228AB +0x22C6E 0x61D5 +0x22C6F 0x61DD +0x22C70 0x61DF +0x22C71 0x61F5 +0x22C72 0x2298F +0x22C73 0x6215 +0x22C74 0x6223 +0x22C75 0x6229 +0x22C76 0x6246 +0x22C77 0x624C +0x22C78 0x6251 +0x22C79 0x6252 +0x22C7A 0x6261 +0x22C7B 0x6264 +0x22C7C 0x627B +0x22C7D 0x626D +0x22C7E 0x6273 +0x22D21 0x6299 +0x22D22 0x62A6 +0x22D23 0x62D5 +0x22D24 0x22AB8 +0x22D25 0x62FD +0x22D26 0x6303 +0x22D27 0x630D +0x22D28 0x6310 +0x22D29 0x22B4F +0x22D2A 0x22B50 +0x22D2B 0x6332 +0x22D2C 0x6335 +0x22D2D 0x633B +0x22D2E 0x633C +0x22D2F 0x6341 +0x22D30 0x6344 +0x22D31 0x634E +0x22D32 0x22B46 +0x22D33 0x6359 +0x22D34 0x22C1D +0x22D35 0x22BA6 +0x22D36 0x636C +0x22D37 0x6384 +0x22D38 0x6399 +0x22D39 0x22C24 +0x22D3A 0x6394 +0x22D3B 0x63BD +0x22D3C 0x63F7 +0x22D3D 0x63D4 +0x22D3E 0x63D5 +0x22D3F 0x63DC +0x22D40 0x63E0 +0x22D41 0x63EB +0x22D42 0x63EC +0x22D43 0x63F2 +0x22D44 0x6409 +0x22D45 0x641E +0x22D46 0x6425 +0x22D47 0x6429 +0x22D48 0x642F +0x22D49 0x645A +0x22D4A 0x645B +0x22D4B 0x645D +0x22D4C 0x6473 +0x22D4D 0x647D +0x22D4E 0x6487 +0x22D4F 0x6491 +0x22D50 0x649D +0x22D51 0x649F +0x22D52 0x64CB +0x22D53 0x64CC +0x22D54 0x64D5 +0x22D55 0x64D7 +0x22D56 0x22DE1 +0x22D57 0x64E4 +0x22D58 0x64E5 +0x22D59 0x64FF +0x22D5A 0x6504 +0x22D5B 0x3A6E +0x22D5C 0x650F +0x22D5D 0x6514 +0x22D5E 0x6516 +0x22D5F 0x3A73 +0x22D60 0x651E +0x22D61 0x6532 +0x22D62 0x6544 +0x22D63 0x6554 +0x22D64 0x656B +0x22D65 0x657A +0x22D66 0x6581 +0x22D67 0x6584 +0x22D68 0x6585 +0x22D69 0x658A +0x22D6A 0x65B2 +0x22D6B 0x65B5 +0x22D6C 0x65B8 +0x22D6D 0x65BF +0x22D6E 0x65C2 +0x22D6F 0x65C9 +0x22D70 0x65D4 +0x22D71 0x3AD6 +0x22D72 0x65F2 +0x22D73 0x65F9 +0x22D74 0x65FC +0x22D75 0x6604 +0x22D76 0x6608 +0x22D77 0x6621 +0x22D78 0x662A +0x22D79 0x6645 +0x22D7A 0x6651 +0x22D7B 0x664E +0x22D7C 0x3AEA +0x22D7D 0x231C3 +0x22D7E 0x6657 +0x22E21 0x665B +0x22E22 0x6663 +0x22E23 0x231F5 +0x22E24 0x231B6 +0x22E25 0x666A +0x22E26 0x666B +0x22E27 0x666C +0x22E28 0x666D +0x22E29 0x667B +0x22E2A 0x6680 +0x22E2B 0x6690 +0x22E2C 0x6692 +0x22E2D 0x6699 +0x22E2E 0x3B0E +0x22E2F 0x66AD +0x22E30 0x66B1 +0x22E31 0x66B5 +0x22E32 0x3B1A +0x22E33 0x66BF +0x22E34 0x3B1C +0x22E35 0x66EC +0x22E36 0x3AD7 +0x22E37 0x6701 +0x22E38 0x6705 +0x22E39 0x6712 +0x22E3A 0x23372 +0x22E3B 0x6719 +0x22E3C 0x233D3 +0x22E3D 0x233D2 +0x22E3E 0x674C +0x22E3F 0x674D +0x22E40 0x6754 +0x22E41 0x675D +0x22E42 0x233D0 +0x22E43 0x233E4 +0x22E44 0x233D5 +0x22E45 0x6774 +0x22E46 0x6776 +0x22E47 0x233DA +0x22E48 0x6792 +0x22E49 0x233DF +0x22E4A 0x8363 +0x22E4B 0x6810 +0x22E4C 0x67B0 +0x22E4D 0x67B2 +0x22E4E 0x67C3 +0x22E4F 0x67C8 +0x22E50 0x67D2 +0x22E51 0x67D9 +0x22E52 0x67DB +0x22E53 0x67F0 +0x22E54 0x67F7 +0x22E55 0x2344A +0x22E56 0x23451 +0x22E57 0x2344B +0x22E58 0x6818 +0x22E59 0x681F +0x22E5A 0x682D +0x22E5B 0x23465 +0x22E5C 0x6833 +0x22E5D 0x683B +0x22E5E 0x683E +0x22E5F 0x6844 +0x22E60 0x6845 +0x22E61 0x6849 +0x22E62 0x684C +0x22E63 0x6855 +0x22E64 0x6857 +0x22E65 0x3B77 +0x22E66 0x686B +0x22E67 0x686E +0x22E68 0x687A +0x22E69 0x687C +0x22E6A 0x6882 +0x22E6B 0x6890 +0x22E6C 0x6896 +0x22E6D 0x3B6D +0x22E6E 0x6898 +0x22E6F 0x6899 +0x22E70 0x689A +0x22E71 0x689C +0x22E72 0x68AA +0x22E73 0x68AB +0x22E74 0x68B4 +0x22E75 0x68BB +0x22E76 0x68FB +0x22E77 0x234E4 +0x22E78 0x2355A +0x22E79 0xFA13 +0x22E7A 0x68C3 +0x22E7B 0x68C5 +0x22E7C 0x68CC +0x22E7D 0x68CF +0x22E7E 0x68D6 +0x22F21 0x68D9 +0x22F22 0x68E4 +0x22F23 0x68E5 +0x22F24 0x68EC +0x22F25 0x68F7 +0x22F26 0x6903 +0x22F27 0x6907 +0x22F28 0x3B87 +0x22F29 0x3B88 +0x22F2A 0x23594 +0x22F2B 0x693B +0x22F2C 0x3B8D +0x22F2D 0x6946 +0x22F2E 0x6969 +0x22F2F 0x696C +0x22F30 0x6972 +0x22F31 0x697A +0x22F32 0x697F +0x22F33 0x6992 +0x22F34 0x3BA4 +0x22F35 0x6996 +0x22F36 0x6998 +0x22F37 0x69A6 +0x22F38 0x69B0 +0x22F39 0x69B7 +0x22F3A 0x69BA +0x22F3B 0x69BC +0x22F3C 0x69C0 +0x22F3D 0x69D1 +0x22F3E 0x69D6 +0x22F3F 0x23639 +0x22F40 0x23647 +0x22F41 0x6A30 +0x22F42 0x23638 +0x22F43 0x2363A +0x22F44 0x69E3 +0x22F45 0x69EE +0x22F46 0x69EF +0x22F47 0x69F3 +0x22F48 0x3BCD +0x22F49 0x69F4 +0x22F4A 0x69FE +0x22F4B 0x6A11 +0x22F4C 0x6A1A +0x22F4D 0x6A1D +0x22F4E 0x2371C +0x22F4F 0x6A32 +0x22F50 0x6A33 +0x22F51 0x6A34 +0x22F52 0x6A3F +0x22F53 0x6A46 +0x22F54 0x6A49 +0x22F55 0x6A7A +0x22F56 0x6A4E +0x22F57 0x6A52 +0x22F58 0x6A64 +0x22F59 0x2370C +0x22F5A 0x6A7E +0x22F5B 0x6A83 +0x22F5C 0x6A8B +0x22F5D 0x3BF0 +0x22F5E 0x6A91 +0x22F5F 0x6A9F +0x22F60 0x6AA1 +0x22F61 0x23764 +0x22F62 0x6AAB +0x22F63 0x6ABD +0x22F64 0x6AC6 +0x22F65 0x6AD4 +0x22F66 0x6AD0 +0x22F67 0x6ADC +0x22F68 0x6ADD +0x22F69 0x237FF +0x22F6A 0x237E7 +0x22F6B 0x6AEC +0x22F6C 0x6AF1 +0x22F6D 0x6AF2 +0x22F6E 0x6AF3 +0x22F6F 0x6AFD +0x22F70 0x23824 +0x22F71 0x6B0B +0x22F72 0x6B0F +0x22F73 0x6B10 +0x22F74 0x6B11 +0x22F75 0x2383D +0x22F76 0x6B17 +0x22F77 0x3C26 +0x22F78 0x6B2F +0x22F79 0x6B4A +0x22F7A 0x6B58 +0x22F7B 0x6B6C +0x22F7C 0x6B75 +0x22F7D 0x6B7A +0x22F7E 0x6B81 +0x26E21 0x6B9B +0x26E22 0x6BAE +0x26E23 0x23A98 +0x26E24 0x6BBD +0x26E25 0x6BBE +0x26E26 0x6BC7 +0x26E27 0x6BC8 +0x26E28 0x6BC9 +0x26E29 0x6BDA +0x26E2A 0x6BE6 +0x26E2B 0x6BE7 +0x26E2C 0x6BEE +0x26E2D 0x6BF1 +0x26E2E 0x6C02 +0x26E2F 0x6C0A +0x26E30 0x6C0E +0x26E31 0x6C35 +0x26E32 0x6C36 +0x26E33 0x6C3A +0x26E34 0x23C7F +0x26E35 0x6C3F +0x26E36 0x6C4D +0x26E37 0x6C5B +0x26E38 0x6C6D +0x26E39 0x6C84 +0x26E3A 0x6C89 +0x26E3B 0x3CC3 +0x26E3C 0x6C94 +0x26E3D 0x6C95 +0x26E3E 0x6C97 +0x26E3F 0x6CAD +0x26E40 0x6CC2 +0x26E41 0x6CD0 +0x26E42 0x3CD2 +0x26E43 0x6CD6 +0x26E44 0x6CDA +0x26E45 0x6CDC +0x26E46 0x6CE9 +0x26E47 0x6CEC +0x26E48 0x6CED +0x26E49 0x23D00 +0x26E4A 0x6D00 +0x26E4B 0x6D0A +0x26E4C 0x6D24 +0x26E4D 0x6D26 +0x26E4E 0x6D27 +0x26E4F 0x6C67 +0x26E50 0x6D2F +0x26E51 0x6D3C +0x26E52 0x6D5B +0x26E53 0x6D5E +0x26E54 0x6D60 +0x26E55 0x6D70 +0x26E56 0x6D80 +0x26E57 0x6D81 +0x26E58 0x6D8A +0x26E59 0x6D8D +0x26E5A 0x6D91 +0x26E5B 0x6D98 +0x26E5C 0x23D40 +0x26E5D 0x6E17 +0x26E5E 0x23DFA +0x26E5F 0x23DF9 +0x26E60 0x23DD3 +0x26E61 0x6DAB +0x26E62 0x6DAE +0x26E63 0x6DB4 +0x26E64 0x6DC2 +0x26E65 0x6D34 +0x26E66 0x6DC8 +0x26E67 0x6DCE +0x26E68 0x6DCF +0x26E69 0x6DD0 +0x26E6A 0x6DDF +0x26E6B 0x6DE9 +0x26E6C 0x6DF6 +0x26E6D 0x6E36 +0x26E6E 0x6E1E +0x26E6F 0x6E22 +0x26E70 0x6E27 +0x26E71 0x3D11 +0x26E72 0x6E32 +0x26E73 0x6E3C +0x26E74 0x6E48 +0x26E75 0x6E49 +0x26E76 0x6E4B +0x26E77 0x6E4C +0x26E78 0x6E4F +0x26E79 0x6E51 +0x26E7A 0x6E53 +0x26E7B 0x6E54 +0x26E7C 0x6E57 +0x26E7D 0x6E63 +0x26E7E 0x3D1E +0x26F21 0x6E93 +0x26F22 0x6EA7 +0x26F23 0x6EB4 +0x26F24 0x6EBF +0x26F25 0x6EC3 +0x26F26 0x6ECA +0x26F27 0x6ED9 +0x26F28 0x6F35 +0x26F29 0x6EEB +0x26F2A 0x6EF9 +0x26F2B 0x6EFB +0x26F2C 0x6F0A +0x26F2D 0x6F0C +0x26F2E 0x6F18 +0x26F2F 0x6F25 +0x26F30 0x6F36 +0x26F31 0x6F3C +0x26F32 0x23F7E +0x26F33 0x6F52 +0x26F34 0x6F57 +0x26F35 0x6F5A +0x26F36 0x6F60 +0x26F37 0x6F68 +0x26F38 0x6F98 +0x26F39 0x6F7D +0x26F3A 0x6F90 +0x26F3B 0x6F96 +0x26F3C 0x6FBE +0x26F3D 0x6F9F +0x26F3E 0x6FA5 +0x26F3F 0x6FAF +0x26F40 0x3D64 +0x26F41 0x6FB5 +0x26F42 0x6FC8 +0x26F43 0x6FC9 +0x26F44 0x6FDA +0x26F45 0x6FDE +0x26F46 0x6FE9 +0x26F47 0x24096 +0x26F48 0x6FFC +0x26F49 0x7000 +0x26F4A 0x7007 +0x26F4B 0x700A +0x26F4C 0x7023 +0x26F4D 0x24103 +0x26F4E 0x7039 +0x26F4F 0x703A +0x26F50 0x703C +0x26F51 0x7043 +0x26F52 0x7047 +0x26F53 0x704B +0x26F54 0x3D9A +0x26F55 0x7054 +0x26F56 0x7065 +0x26F57 0x7069 +0x26F58 0x706C +0x26F59 0x706E +0x26F5A 0x7076 +0x26F5B 0x707E +0x26F5C 0x7081 +0x26F5D 0x7086 +0x26F5E 0x7095 +0x26F5F 0x7097 +0x26F60 0x70BB +0x26F61 0x241C6 +0x26F62 0x709F +0x26F63 0x70B1 +0x26F64 0x241FE +0x26F65 0x70EC +0x26F66 0x70CA +0x26F67 0x70D1 +0x26F68 0x70D3 +0x26F69 0x70DC +0x26F6A 0x7103 +0x26F6B 0x7104 +0x26F6C 0x7106 +0x26F6D 0x7107 +0x26F6E 0x7108 +0x26F6F 0x710C +0x26F70 0x3DC0 +0x26F71 0x712F +0x26F72 0x7131 +0x26F73 0x7150 +0x26F74 0x714A +0x26F75 0x7153 +0x26F76 0x715E +0x26F77 0x3DD4 +0x26F78 0x7196 +0x26F79 0x7180 +0x26F7A 0x719B +0x26F7B 0x71A0 +0x26F7C 0x71A2 +0x26F7D 0x71AE +0x26F7E 0x71AF +0x27021 0x71B3 +0x27022 0x243BC +0x27023 0x71CB +0x27024 0x71D3 +0x27025 0x71D9 +0x27026 0x71DC +0x27027 0x7207 +0x27028 0x3E05 +0x27029 0xFA49 +0x2702A 0x722B +0x2702B 0x7234 +0x2702C 0x7238 +0x2702D 0x7239 +0x2702E 0x4E2C +0x2702F 0x7242 +0x27030 0x7253 +0x27031 0x7257 +0x27032 0x7263 +0x27033 0x24629 +0x27034 0x726E +0x27035 0x726F +0x27036 0x7278 +0x27037 0x727F +0x27038 0x728E +0x27039 0x246A5 +0x2703A 0x72AD +0x2703B 0x72AE +0x2703C 0x72B0 +0x2703D 0x72B1 +0x2703E 0x72C1 +0x2703F 0x3E60 +0x27040 0x72CC +0x27041 0x3E66 +0x27042 0x3E68 +0x27043 0x72F3 +0x27044 0x72FA +0x27045 0x7307 +0x27046 0x7312 +0x27047 0x7318 +0x27048 0x7319 +0x27049 0x3E83 +0x2704A 0x7339 +0x2704B 0x732C +0x2704C 0x7331 +0x2704D 0x7333 +0x2704E 0x733D +0x2704F 0x7352 +0x27050 0x3E94 +0x27051 0x736B +0x27052 0x736C +0x27053 0x24896 +0x27054 0x736E +0x27055 0x736F +0x27056 0x7371 +0x27057 0x7377 +0x27058 0x7381 +0x27059 0x7385 +0x2705A 0x738A +0x2705B 0x7394 +0x2705C 0x7398 +0x2705D 0x739C +0x2705E 0x739E +0x2705F 0x73A5 +0x27060 0x73A8 +0x27061 0x73B5 +0x27062 0x73B7 +0x27063 0x73B9 +0x27064 0x73BC +0x27065 0x73BF +0x27066 0x73C5 +0x27067 0x73CB +0x27068 0x73E1 +0x27069 0x73E7 +0x2706A 0x73F9 +0x2706B 0x7413 +0x2706C 0x73FA +0x2706D 0x7401 +0x2706E 0x7424 +0x2706F 0x7431 +0x27070 0x7439 +0x27071 0x7453 +0x27072 0x7440 +0x27073 0x7443 +0x27074 0x744D +0x27075 0x7452 +0x27076 0x745D +0x27077 0x7471 +0x27078 0x7481 +0x27079 0x7485 +0x2707A 0x7488 +0x2707B 0x24A4D +0x2707C 0x7492 +0x2707D 0x7497 +0x2707E 0x7499 +0x27121 0x74A0 +0x27122 0x74A1 +0x27123 0x74A5 +0x27124 0x74AA +0x27125 0x74AB +0x27126 0x74B9 +0x27127 0x74BB +0x27128 0x74BA +0x27129 0x74D6 +0x2712A 0x74D8 +0x2712B 0x74DE +0x2712C 0x74EF +0x2712D 0x74EB +0x2712E 0x24B56 +0x2712F 0x74FA +0x27130 0x24B6F +0x27131 0x7520 +0x27132 0x7524 +0x27133 0x752A +0x27134 0x3F57 +0x27135 0x24C16 +0x27136 0x753D +0x27137 0x753E +0x27138 0x7540 +0x27139 0x7548 +0x2713A 0x754E +0x2713B 0x7550 +0x2713C 0x7552 +0x2713D 0x756C +0x2713E 0x7572 +0x2713F 0x7571 +0x27140 0x757A +0x27141 0x757D +0x27142 0x757E +0x27143 0x7581 +0x27144 0x24D14 +0x27145 0x758C +0x27146 0x3F75 +0x27147 0x75A2 +0x27148 0x3F77 +0x27149 0x75B0 +0x2714A 0x75B7 +0x2714B 0x75BF +0x2714C 0x75C0 +0x2714D 0x75C6 +0x2714E 0x75CF +0x2714F 0x75D3 +0x27150 0x75DD +0x27151 0x75DF +0x27152 0x75E0 +0x27153 0x75E7 +0x27154 0x75EC +0x27155 0x75EE +0x27156 0x75F1 +0x27157 0x75F9 +0x27158 0x7603 +0x27159 0x7618 +0x2715A 0x7607 +0x2715B 0x760F +0x2715C 0x3FAE +0x2715D 0x24E0E +0x2715E 0x7613 +0x2715F 0x761B +0x27160 0x761C +0x27161 0x24E37 +0x27162 0x7625 +0x27163 0x7628 +0x27164 0x763C +0x27165 0x7633 +0x27166 0x24E6A +0x27167 0x3FC9 +0x27168 0x7641 +0x27169 0x24E8B +0x2716A 0x7649 +0x2716B 0x7655 +0x2716C 0x3FD7 +0x2716D 0x766E +0x2716E 0x7695 +0x2716F 0x769C +0x27170 0x76A1 +0x27171 0x76A0 +0x27172 0x76A7 +0x27173 0x76A8 +0x27174 0x76AF +0x27175 0x2504A +0x27176 0x76C9 +0x27177 0x25055 +0x27178 0x76E8 +0x27179 0x76EC +0x2717A 0x25122 +0x2717B 0x7717 +0x2717C 0x771A +0x2717D 0x772D +0x2717E 0x7735 +0x27221 0x251A9 +0x27222 0x4039 +0x27223 0x251E5 +0x27224 0x251CD +0x27225 0x7758 +0x27226 0x7760 +0x27227 0x776A +0x27228 0x2521E +0x27229 0x7772 +0x2722A 0x777C +0x2722B 0x777D +0x2722C 0x2524C +0x2722D 0x4058 +0x2722E 0x779A +0x2722F 0x779F +0x27230 0x77A2 +0x27231 0x77A4 +0x27232 0x77A9 +0x27233 0x77DE +0x27234 0x77DF +0x27235 0x77E4 +0x27236 0x77E6 +0x27237 0x77EA +0x27238 0x77EC +0x27239 0x4093 +0x2723A 0x77F0 +0x2723B 0x77F4 +0x2723C 0x77FB +0x2723D 0x2542E +0x2723E 0x7805 +0x2723F 0x7806 +0x27240 0x7809 +0x27241 0x780D +0x27242 0x7819 +0x27243 0x7821 +0x27244 0x782C +0x27245 0x7847 +0x27246 0x7864 +0x27247 0x786A +0x27248 0x254D9 +0x27249 0x788A +0x2724A 0x7894 +0x2724B 0x78A4 +0x2724C 0x789D +0x2724D 0x789E +0x2724E 0x789F +0x2724F 0x78BB +0x27250 0x78C8 +0x27251 0x78CC +0x27252 0x78CE +0x27253 0x78D5 +0x27254 0x78E0 +0x27255 0x78E1 +0x27256 0x78E6 +0x27257 0x78F9 +0x27258 0x78FA +0x27259 0x78FB +0x2725A 0x78FE +0x2725B 0x255A7 +0x2725C 0x7910 +0x2725D 0x791B +0x2725E 0x7930 +0x2725F 0x7925 +0x27260 0x793B +0x27261 0x794A +0x27262 0x7958 +0x27263 0x795B +0x27264 0x4105 +0x27265 0x7967 +0x27266 0x7972 +0x27267 0x7994 +0x27268 0x7995 +0x27269 0x7996 +0x2726A 0x799B +0x2726B 0x79A1 +0x2726C 0x79A9 +0x2726D 0x79B4 +0x2726E 0x79BB +0x2726F 0x79C2 +0x27270 0x79C7 +0x27271 0x79CC +0x27272 0x79CD +0x27273 0x79D6 +0x27274 0x4148 +0x27275 0x257A9 +0x27276 0x257B4 +0x27277 0x414F +0x27278 0x7A0A +0x27279 0x7A11 +0x2727A 0x7A15 +0x2727B 0x7A1B +0x2727C 0x7A1E +0x2727D 0x4163 +0x2727E 0x7A2D +0x27321 0x7A38 +0x27322 0x7A47 +0x27323 0x7A4C +0x27324 0x7A56 +0x27325 0x7A59 +0x27326 0x7A5C +0x27327 0x7A5F +0x27328 0x7A60 +0x27329 0x7A67 +0x2732A 0x7A6A +0x2732B 0x7A75 +0x2732C 0x7A78 +0x2732D 0x7A82 +0x2732E 0x7A8A +0x2732F 0x7A90 +0x27330 0x7AA3 +0x27331 0x7AAC +0x27332 0x259D4 +0x27333 0x41B4 +0x27334 0x7AB9 +0x27335 0x7ABC +0x27336 0x7ABE +0x27337 0x41BF +0x27338 0x7ACC +0x27339 0x7AD1 +0x2733A 0x7AE7 +0x2733B 0x7AE8 +0x2733C 0x7AF4 +0x2733D 0x25AE4 +0x2733E 0x25AE3 +0x2733F 0x7B07 +0x27340 0x25AF1 +0x27341 0x7B3D +0x27342 0x7B27 +0x27343 0x7B2A +0x27344 0x7B2E +0x27345 0x7B2F +0x27346 0x7B31 +0x27347 0x41E6 +0x27348 0x41F3 +0x27349 0x7B7F +0x2734A 0x7B41 +0x2734B 0x41EE +0x2734C 0x7B55 +0x2734D 0x7B79 +0x2734E 0x7B64 +0x2734F 0x7B66 +0x27350 0x7B69 +0x27351 0x7B73 +0x27352 0x25BB2 +0x27353 0x4207 +0x27354 0x7B90 +0x27355 0x7B91 +0x27356 0x7B9B +0x27357 0x420E +0x27358 0x7BAF +0x27359 0x7BB5 +0x2735A 0x7BBC +0x2735B 0x7BC5 +0x2735C 0x7BCA +0x2735D 0x25C4B +0x2735E 0x25C64 +0x2735F 0x7BD4 +0x27360 0x7BD6 +0x27361 0x7BDA +0x27362 0x7BEA +0x27363 0x7BF0 +0x27364 0x7C03 +0x27365 0x7C0B +0x27366 0x7C0E +0x27367 0x7C0F +0x27368 0x7C26 +0x27369 0x7C45 +0x2736A 0x7C4A +0x2736B 0x7C51 +0x2736C 0x7C57 +0x2736D 0x7C5E +0x2736E 0x7C61 +0x2736F 0x7C69 +0x27370 0x7C6E +0x27371 0x7C6F +0x27372 0x7C70 +0x27373 0x25E2E +0x27374 0x25E56 +0x27375 0x25E65 +0x27376 0x7CA6 +0x27377 0x25E62 +0x27378 0x7CB6 +0x27379 0x7CB7 +0x2737A 0x7CBF +0x2737B 0x25ED8 +0x2737C 0x7CC4 +0x2737D 0x25EC2 +0x2737E 0x7CC8 +0x27421 0x7CCD +0x27422 0x25EE8 +0x27423 0x7CD7 +0x27424 0x25F23 +0x27425 0x7CE6 +0x27426 0x7CEB +0x27427 0x25F5C +0x27428 0x7CF5 +0x27429 0x7D03 +0x2742A 0x7D09 +0x2742B 0x42C6 +0x2742C 0x7D12 +0x2742D 0x7D1E +0x2742E 0x25FE0 +0x2742F 0x25FD4 +0x27430 0x7D3D +0x27431 0x7D3E +0x27432 0x7D40 +0x27433 0x7D47 +0x27434 0x2600C +0x27435 0x25FFB +0x27436 0x42D6 +0x27437 0x7D59 +0x27438 0x7D5A +0x27439 0x7D6A +0x2743A 0x7D70 +0x2743B 0x42DD +0x2743C 0x7D7F +0x2743D 0x26017 +0x2743E 0x7D86 +0x2743F 0x7D88 +0x27440 0x7D8C +0x27441 0x7D97 +0x27442 0x26060 +0x27443 0x7D9D +0x27444 0x7DA7 +0x27445 0x7DAA +0x27446 0x7DB6 +0x27447 0x7DB7 +0x27448 0x7DC0 +0x27449 0x7DD7 +0x2744A 0x7DD9 +0x2744B 0x7DE6 +0x2744C 0x7DF1 +0x2744D 0x7DF9 +0x2744E 0x4302 +0x2744F 0x260ED +0x27450 0xFA58 +0x27451 0x7E10 +0x27452 0x7E17 +0x27453 0x7E1D +0x27454 0x7E20 +0x27455 0x7E27 +0x27456 0x7E2C +0x27457 0x7E45 +0x27458 0x7E73 +0x27459 0x7E75 +0x2745A 0x7E7E +0x2745B 0x7E86 +0x2745C 0x7E87 +0x2745D 0x432B +0x2745E 0x7E91 +0x2745F 0x7E98 +0x27460 0x7E9A +0x27461 0x4343 +0x27462 0x7F3C +0x27463 0x7F3B +0x27464 0x7F3E +0x27465 0x7F43 +0x27466 0x7F44 +0x27467 0x7F4F +0x27468 0x34C1 +0x27469 0x26270 +0x2746A 0x7F52 +0x2746B 0x26286 +0x2746C 0x7F61 +0x2746D 0x7F63 +0x2746E 0x7F64 +0x2746F 0x7F6D +0x27470 0x7F7D +0x27471 0x7F7E +0x27472 0x2634C +0x27473 0x7F90 +0x27474 0x517B +0x27475 0x23D0E +0x27476 0x7F96 +0x27477 0x7F9C +0x27478 0x7FAD +0x27479 0x26402 +0x2747A 0x7FC3 +0x2747B 0x7FCF +0x2747C 0x7FE3 +0x2747D 0x7FE5 +0x2747E 0x7FEF +0x27521 0x7FF2 +0x27522 0x8002 +0x27523 0x800A +0x27524 0x8008 +0x27525 0x800E +0x27526 0x8011 +0x27527 0x8016 +0x27528 0x8024 +0x27529 0x802C +0x2752A 0x8030 +0x2752B 0x8043 +0x2752C 0x8066 +0x2752D 0x8071 +0x2752E 0x8075 +0x2752F 0x807B +0x27530 0x8099 +0x27531 0x809C +0x27532 0x80A4 +0x27533 0x80A7 +0x27534 0x80B8 +0x27535 0x2667E +0x27536 0x80C5 +0x27537 0x80D5 +0x27538 0x80D8 +0x27539 0x80E6 +0x2753A 0x266B0 +0x2753B 0x810D +0x2753C 0x80F5 +0x2753D 0x80FB +0x2753E 0x43EE +0x2753F 0x8135 +0x27540 0x8116 +0x27541 0x811E +0x27542 0x43F0 +0x27543 0x8124 +0x27544 0x8127 +0x27545 0x812C +0x27546 0x2671D +0x27547 0x813D +0x27548 0x4408 +0x27549 0x8169 +0x2754A 0x4417 +0x2754B 0x8181 +0x2754C 0x441C +0x2754D 0x8184 +0x2754E 0x8185 +0x2754F 0x4422 +0x27550 0x8198 +0x27551 0x81B2 +0x27552 0x81C1 +0x27553 0x81C3 +0x27554 0x81D6 +0x27555 0x81DB +0x27556 0x268DD +0x27557 0x81E4 +0x27558 0x268EA +0x27559 0x81EC +0x2755A 0x26951 +0x2755B 0x81FD +0x2755C 0x81FF +0x2755D 0x2696F +0x2755E 0x8204 +0x2755F 0x269DD +0x27560 0x8219 +0x27561 0x8221 +0x27562 0x8222 +0x27563 0x26A1E +0x27564 0x8232 +0x27565 0x8234 +0x27566 0x823C +0x27567 0x8246 +0x27568 0x8249 +0x27569 0x8245 +0x2756A 0x26A58 +0x2756B 0x824B +0x2756C 0x4476 +0x2756D 0x824F +0x2756E 0x447A +0x2756F 0x8257 +0x27570 0x26A8C +0x27571 0x825C +0x27572 0x8263 +0x27573 0x26AB7 +0x27574 0xFA5D +0x27575 0xFA5E +0x27576 0x8279 +0x27577 0x4491 +0x27578 0x827D +0x27579 0x827F +0x2757A 0x8283 +0x2757B 0x828A +0x2757C 0x8293 +0x2757D 0x82A7 +0x2757E 0x82A8 +0x27621 0x82B2 +0x27622 0x82B4 +0x27623 0x82BA +0x27624 0x82BC +0x27625 0x82E2 +0x27626 0x82E8 +0x27627 0x82F7 +0x27628 0x8307 +0x27629 0x8308 +0x2762A 0x830C +0x2762B 0x8354 +0x2762C 0x831B +0x2762D 0x831D +0x2762E 0x8330 +0x2762F 0x833C +0x27630 0x8344 +0x27631 0x8357 +0x27632 0x44BE +0x27633 0x837F +0x27634 0x44D4 +0x27635 0x44B3 +0x27636 0x838D +0x27637 0x8394 +0x27638 0x8395 +0x27639 0x839B +0x2763A 0x839D +0x2763B 0x83C9 +0x2763C 0x83D0 +0x2763D 0x83D4 +0x2763E 0x83DD +0x2763F 0x83E5 +0x27640 0x83F9 +0x27641 0x840F +0x27642 0x8411 +0x27643 0x8415 +0x27644 0x26C73 +0x27645 0x8417 +0x27646 0x8439 +0x27647 0x844A +0x27648 0x844F +0x27649 0x8451 +0x2764A 0x8452 +0x2764B 0x8459 +0x2764C 0x845A +0x2764D 0x845C +0x2764E 0x26CDD +0x2764F 0x8465 +0x27650 0x8476 +0x27651 0x8478 +0x27652 0x847C +0x27653 0x8481 +0x27654 0x450D +0x27655 0x84DC +0x27656 0x8497 +0x27657 0x84A6 +0x27658 0x84BE +0x27659 0x4508 +0x2765A 0x84CE +0x2765B 0x84CF +0x2765C 0x84D3 +0x2765D 0x26E65 +0x2765E 0x84E7 +0x2765F 0x84EA +0x27660 0x84EF +0x27661 0x84F0 +0x27662 0x84F1 +0x27663 0x84FA +0x27664 0x84FD +0x27665 0x850C +0x27666 0x851B +0x27667 0x8524 +0x27668 0x8525 +0x27669 0x852B +0x2766A 0x8534 +0x2766B 0x854F +0x2766C 0x856F +0x2766D 0x4525 +0x2766E 0x4543 +0x2766F 0x853E +0x27670 0x8551 +0x27671 0x8553 +0x27672 0x855E +0x27673 0x8561 +0x27674 0x8562 +0x27675 0x26F94 +0x27676 0x857B +0x27677 0x857D +0x27678 0x857F +0x27679 0x8581 +0x2767A 0x8586 +0x2767B 0x8593 +0x2767C 0x859D +0x2767D 0x859F +0x2767E 0x26FF8 +0x27721 0x26FF6 +0x27722 0x26FF7 +0x27723 0x85B7 +0x27724 0x85BC +0x27725 0x85C7 +0x27726 0x85CA +0x27727 0x85D8 +0x27728 0x85D9 +0x27729 0x85DF +0x2772A 0x85E1 +0x2772B 0x85E6 +0x2772C 0x85F6 +0x2772D 0x8600 +0x2772E 0x8611 +0x2772F 0x861E +0x27730 0x8621 +0x27731 0x8624 +0x27732 0x8627 +0x27733 0x2710D +0x27734 0x8639 +0x27735 0x863C +0x27736 0x27139 +0x27737 0x8640 +0x27738 0xFA20 +0x27739 0x8653 +0x2773A 0x8656 +0x2773B 0x866F +0x2773C 0x8677 +0x2773D 0x867A +0x2773E 0x8687 +0x2773F 0x8689 +0x27740 0x868D +0x27741 0x8691 +0x27742 0x869C +0x27743 0x869D +0x27744 0x86A8 +0x27745 0xFA21 +0x27746 0x86B1 +0x27747 0x86B3 +0x27748 0x86C1 +0x27749 0x86C3 +0x2774A 0x86D1 +0x2774B 0x86D5 +0x2774C 0x86D7 +0x2774D 0x86E3 +0x2774E 0x86E6 +0x2774F 0x45B8 +0x27750 0x8705 +0x27751 0x8707 +0x27752 0x870E +0x27753 0x8710 +0x27754 0x8713 +0x27755 0x8719 +0x27756 0x871F +0x27757 0x8721 +0x27758 0x8723 +0x27759 0x8731 +0x2775A 0x873A +0x2775B 0x873E +0x2775C 0x8740 +0x2775D 0x8743 +0x2775E 0x8751 +0x2775F 0x8758 +0x27760 0x8764 +0x27761 0x8765 +0x27762 0x8772 +0x27763 0x877C +0x27764 0x273DB +0x27765 0x273DA +0x27766 0x87A7 +0x27767 0x8789 +0x27768 0x878B +0x27769 0x8793 +0x2776A 0x87A0 +0x2776B 0x273FE +0x2776C 0x45E5 +0x2776D 0x87BE +0x2776E 0x27410 +0x2776F 0x87C1 +0x27770 0x87CE +0x27771 0x87F5 +0x27772 0x87DF +0x27773 0x27449 +0x27774 0x87E3 +0x27775 0x87E5 +0x27776 0x87E6 +0x27777 0x87EA +0x27778 0x87EB +0x27779 0x87ED +0x2777A 0x8801 +0x2777B 0x8803 +0x2777C 0x880B +0x2777D 0x8813 +0x2777E 0x8828 +0x27821 0x882E +0x27822 0x8832 +0x27823 0x883C +0x27824 0x460F +0x27825 0x884A +0x27826 0x8858 +0x27827 0x885F +0x27828 0x8864 +0x27829 0x27615 +0x2782A 0x27614 +0x2782B 0x8869 +0x2782C 0x27631 +0x2782D 0x886F +0x2782E 0x88A0 +0x2782F 0x88BC +0x27830 0x88BD +0x27831 0x88BE +0x27832 0x88C0 +0x27833 0x88D2 +0x27834 0x27693 +0x27835 0x88D1 +0x27836 0x88D3 +0x27837 0x88DB +0x27838 0x88F0 +0x27839 0x88F1 +0x2783A 0x4641 +0x2783B 0x8901 +0x2783C 0x2770E +0x2783D 0x8937 +0x2783E 0x27723 +0x2783F 0x8942 +0x27840 0x8945 +0x27841 0x8949 +0x27842 0x27752 +0x27843 0x4665 +0x27844 0x8962 +0x27845 0x8980 +0x27846 0x8989 +0x27847 0x8990 +0x27848 0x899F +0x27849 0x89B0 +0x2784A 0x89B7 +0x2784B 0x89D6 +0x2784C 0x89D8 +0x2784D 0x89EB +0x2784E 0x46A1 +0x2784F 0x89F1 +0x27850 0x89F3 +0x27851 0x89FD +0x27852 0x89FF +0x27853 0x46AF +0x27854 0x8A11 +0x27855 0x8A14 +0x27856 0x27985 +0x27857 0x8A21 +0x27858 0x8A35 +0x27859 0x8A3E +0x2785A 0x8A45 +0x2785B 0x8A4D +0x2785C 0x8A58 +0x2785D 0x8AAE +0x2785E 0x8A90 +0x2785F 0x8AB7 +0x27860 0x8ABE +0x27861 0x8AD7 +0x27862 0x8AFC +0x27863 0x27A84 +0x27864 0x8B0A +0x27865 0x8B05 +0x27866 0x8B0D +0x27867 0x8B1C +0x27868 0x8B1F +0x27869 0x8B2D +0x2786A 0x8B43 +0x2786B 0x470C +0x2786C 0x8B51 +0x2786D 0x8B5E +0x2786E 0x8B76 +0x2786F 0x8B7F +0x27870 0x8B81 +0x27871 0x8B8B +0x27872 0x8B94 +0x27873 0x8B95 +0x27874 0x8B9C +0x27875 0x8B9E +0x27876 0x8C39 +0x27877 0x27BB3 +0x27878 0x8C3D +0x27879 0x27BBE +0x2787A 0x27BC7 +0x2787B 0x8C45 +0x2787C 0x8C47 +0x2787D 0x8C4F +0x2787E 0x8C54 +0x27921 0x8C57 +0x27922 0x8C69 +0x27923 0x8C6D +0x27924 0x8C73 +0x27925 0x27CB8 +0x27926 0x8C93 +0x27927 0x8C92 +0x27928 0x8C99 +0x27929 0x4764 +0x2792A 0x8C9B +0x2792B 0x8CA4 +0x2792C 0x8CD6 +0x2792D 0x8CD5 +0x2792E 0x8CD9 +0x2792F 0x27DA0 +0x27930 0x8CF0 +0x27931 0x8CF1 +0x27932 0x27E10 +0x27933 0x8D09 +0x27934 0x8D0E +0x27935 0x8D6C +0x27936 0x8D84 +0x27937 0x8D95 +0x27938 0x8DA6 +0x27939 0x27FB7 +0x2793A 0x8DC6 +0x2793B 0x8DC8 +0x2793C 0x8DD9 +0x2793D 0x8DEC +0x2793E 0x8E0C +0x2793F 0x47FD +0x27940 0x8DFD +0x27941 0x8E06 +0x27942 0x2808A +0x27943 0x8E14 +0x27944 0x8E16 +0x27945 0x8E21 +0x27946 0x8E22 +0x27947 0x8E27 +0x27948 0x280BB +0x27949 0x4816 +0x2794A 0x8E36 +0x2794B 0x8E39 +0x2794C 0x8E4B +0x2794D 0x8E54 +0x2794E 0x8E62 +0x2794F 0x8E6C +0x27950 0x8E6D +0x27951 0x8E6F +0x27952 0x8E98 +0x27953 0x8E9E +0x27954 0x8EAE +0x27955 0x8EB3 +0x27956 0x8EB5 +0x27957 0x8EB6 +0x27958 0x8EBB +0x27959 0x28282 +0x2795A 0x8ED1 +0x2795B 0x8ED4 +0x2795C 0x484E +0x2795D 0x8EF9 +0x2795E 0x282F3 +0x2795F 0x8F00 +0x27960 0x8F08 +0x27961 0x8F17 +0x27962 0x8F2B +0x27963 0x8F40 +0x27964 0x8F4A +0x27965 0x8F58 +0x27966 0x2840C +0x27967 0x8FA4 +0x27968 0x8FB4 +0x27969 0xFA66 +0x2796A 0x8FB6 +0x2796B 0x28455 +0x2796C 0x8FC1 +0x2796D 0x8FC6 +0x2796E 0xFA24 +0x2796F 0x8FCA +0x27970 0x8FCD +0x27971 0x8FD3 +0x27972 0x8FD5 +0x27973 0x8FE0 +0x27974 0x8FF1 +0x27975 0x8FF5 +0x27976 0x8FFB +0x27977 0x9002 +0x27978 0x900C +0x27979 0x9037 +0x2797A 0x2856B +0x2797B 0x9043 +0x2797C 0x9044 +0x2797D 0x905D +0x2797E 0x285C8 +0x27A21 0x285C9 +0x27A22 0x9085 +0x27A23 0x908C +0x27A24 0x9090 +0x27A25 0x961D +0x27A26 0x90A1 +0x27A27 0x48B5 +0x27A28 0x90B0 +0x27A29 0x90B6 +0x27A2A 0x90C3 +0x27A2B 0x90C8 +0x27A2C 0x286D7 +0x27A2D 0x90DC +0x27A2E 0x90DF +0x27A2F 0x286FA +0x27A30 0x90F6 +0x27A31 0x90F2 +0x27A32 0x9100 +0x27A33 0x90EB +0x27A34 0x90FE +0x27A35 0x90FF +0x27A36 0x9104 +0x27A37 0x9106 +0x27A38 0x9118 +0x27A39 0x911C +0x27A3A 0x911E +0x27A3B 0x9137 +0x27A3C 0x9139 +0x27A3D 0x913A +0x27A3E 0x9146 +0x27A3F 0x9147 +0x27A40 0x9157 +0x27A41 0x9159 +0x27A42 0x9161 +0x27A43 0x9164 +0x27A44 0x9174 +0x27A45 0x9179 +0x27A46 0x9185 +0x27A47 0x918E +0x27A48 0x91A8 +0x27A49 0x91AE +0x27A4A 0x91B3 +0x27A4B 0x91B6 +0x27A4C 0x91C3 +0x27A4D 0x91C4 +0x27A4E 0x91DA +0x27A4F 0x28949 +0x27A50 0x28946 +0x27A51 0x91EC +0x27A52 0x91EE +0x27A53 0x9201 +0x27A54 0x920A +0x27A55 0x9216 +0x27A56 0x9217 +0x27A57 0x2896B +0x27A58 0x9233 +0x27A59 0x9242 +0x27A5A 0x9247 +0x27A5B 0x924A +0x27A5C 0x924E +0x27A5D 0x9251 +0x27A5E 0x9256 +0x27A5F 0x9259 +0x27A60 0x9260 +0x27A61 0x9261 +0x27A62 0x9265 +0x27A63 0x9267 +0x27A64 0x9268 +0x27A65 0x28987 +0x27A66 0x28988 +0x27A67 0x927C +0x27A68 0x927D +0x27A69 0x927F +0x27A6A 0x9289 +0x27A6B 0x928D +0x27A6C 0x9297 +0x27A6D 0x9299 +0x27A6E 0x929F +0x27A6F 0x92A7 +0x27A70 0x92AB +0x27A71 0x289BA +0x27A72 0x289BB +0x27A73 0x92B2 +0x27A74 0x92BF +0x27A75 0x92C0 +0x27A76 0x92C6 +0x27A77 0x92CE +0x27A78 0x92D0 +0x27A79 0x92D7 +0x27A7A 0x92D9 +0x27A7B 0x92E5 +0x27A7C 0x92E7 +0x27A7D 0x9311 +0x27A7E 0x28A1E +0x27B21 0x28A29 +0x27B22 0x92F7 +0x27B23 0x92F9 +0x27B24 0x92FB +0x27B25 0x9302 +0x27B26 0x930D +0x27B27 0x9315 +0x27B28 0x931D +0x27B29 0x931E +0x27B2A 0x9327 +0x27B2B 0x9329 +0x27B2C 0x28A71 +0x27B2D 0x28A43 +0x27B2E 0x9347 +0x27B2F 0x9351 +0x27B30 0x9357 +0x27B31 0x935A +0x27B32 0x936B +0x27B33 0x9371 +0x27B34 0x9373 +0x27B35 0x93A1 +0x27B36 0x28A99 +0x27B37 0x28ACD +0x27B38 0x9388 +0x27B39 0x938B +0x27B3A 0x938F +0x27B3B 0x939E +0x27B3C 0x93F5 +0x27B3D 0x28AE4 +0x27B3E 0x28ADD +0x27B3F 0x93F1 +0x27B40 0x93C1 +0x27B41 0x93C7 +0x27B42 0x93DC +0x27B43 0x93E2 +0x27B44 0x93E7 +0x27B45 0x9409 +0x27B46 0x940F +0x27B47 0x9416 +0x27B48 0x9417 +0x27B49 0x93FB +0x27B4A 0x9432 +0x27B4B 0x9434 +0x27B4C 0x943B +0x27B4D 0x9445 +0x27B4E 0x28BC1 +0x27B4F 0x28BEF +0x27B50 0x946D +0x27B51 0x946F +0x27B52 0x9578 +0x27B53 0x9579 +0x27B54 0x9586 +0x27B55 0x958C +0x27B56 0x958D +0x27B57 0x28D10 +0x27B58 0x95AB +0x27B59 0x95B4 +0x27B5A 0x28D71 +0x27B5B 0x95C8 +0x27B5C 0x28DFB +0x27B5D 0x28E1F +0x27B5E 0x962C +0x27B5F 0x9633 +0x27B60 0x9634 +0x27B61 0x28E36 +0x27B62 0x963C +0x27B63 0x9641 +0x27B64 0x9661 +0x27B65 0x28E89 +0x27B66 0x9682 +0x27B67 0x28EEB +0x27B68 0x969A +0x27B69 0x28F32 +0x27B6A 0x49E7 +0x27B6B 0x96A9 +0x27B6C 0x96AF +0x27B6D 0x96B3 +0x27B6E 0x96BA +0x27B6F 0x96BD +0x27B70 0x49FA +0x27B71 0x28FF8 +0x27B72 0x96D8 +0x27B73 0x96DA +0x27B74 0x96DD +0x27B75 0x4A04 +0x27B76 0x9714 +0x27B77 0x9723 +0x27B78 0x4A29 +0x27B79 0x9736 +0x27B7A 0x9741 +0x27B7B 0x9747 +0x27B7C 0x9755 +0x27B7D 0x9757 +0x27B7E 0x975B +0x27C21 0x976A +0x27C22 0x292A0 +0x27C23 0x292B1 +0x27C24 0x9796 +0x27C25 0x979A +0x27C26 0x979E +0x27C27 0x97A2 +0x27C28 0x97B1 +0x27C29 0x97B2 +0x27C2A 0x97BE +0x27C2B 0x97CC +0x27C2C 0x97D1 +0x27C2D 0x97D4 +0x27C2E 0x97D8 +0x27C2F 0x97D9 +0x27C30 0x97E1 +0x27C31 0x97F1 +0x27C32 0x9804 +0x27C33 0x980D +0x27C34 0x980E +0x27C35 0x9814 +0x27C36 0x9816 +0x27C37 0x4ABC +0x27C38 0x29490 +0x27C39 0x9823 +0x27C3A 0x9832 +0x27C3B 0x9833 +0x27C3C 0x9825 +0x27C3D 0x9847 +0x27C3E 0x9866 +0x27C3F 0x98AB +0x27C40 0x98AD +0x27C41 0x98B0 +0x27C42 0x295CF +0x27C43 0x98B7 +0x27C44 0x98B8 +0x27C45 0x98BB +0x27C46 0x98BC +0x27C47 0x98BF +0x27C48 0x98C2 +0x27C49 0x98C7 +0x27C4A 0x98CB +0x27C4B 0x98E0 +0x27C4C 0x2967F +0x27C4D 0x98E1 +0x27C4E 0x98E3 +0x27C4F 0x98E5 +0x27C50 0x98EA +0x27C51 0x98F0 +0x27C52 0x98F1 +0x27C53 0x98F3 +0x27C54 0x9908 +0x27C55 0x4B3B +0x27C56 0x296F0 +0x27C57 0x9916 +0x27C58 0x9917 +0x27C59 0x29719 +0x27C5A 0x991A +0x27C5B 0x991B +0x27C5C 0x991C +0x27C5D 0x29750 +0x27C5E 0x9931 +0x27C5F 0x9932 +0x27C60 0x9933 +0x27C61 0x993A +0x27C62 0x993B +0x27C63 0x993C +0x27C64 0x9940 +0x27C65 0x9941 +0x27C66 0x9946 +0x27C67 0x994D +0x27C68 0x994E +0x27C69 0x995C +0x27C6A 0x995F +0x27C6B 0x9960 +0x27C6C 0x99A3 +0x27C6D 0x99A6 +0x27C6E 0x99B9 +0x27C6F 0x99BD +0x27C70 0x99BF +0x27C71 0x99C3 +0x27C72 0x99C9 +0x27C73 0x99D4 +0x27C74 0x99D9 +0x27C75 0x99DE +0x27C76 0x298C6 +0x27C77 0x99F0 +0x27C78 0x99F9 +0x27C79 0x99FC +0x27C7A 0x9A0A +0x27C7B 0x9A11 +0x27C7C 0x9A16 +0x27C7D 0x9A1A +0x27C7E 0x9A20 +0x27D21 0x9A31 +0x27D22 0x9A36 +0x27D23 0x9A44 +0x27D24 0x9A4C +0x27D25 0x9A58 +0x27D26 0x4BC2 +0x27D27 0x9AAF +0x27D28 0x4BCA +0x27D29 0x9AB7 +0x27D2A 0x4BD2 +0x27D2B 0x9AB9 +0x27D2C 0x29A72 +0x27D2D 0x9AC6 +0x27D2E 0x9AD0 +0x27D2F 0x9AD2 +0x27D30 0x9AD5 +0x27D31 0x4BE8 +0x27D32 0x9ADC +0x27D33 0x9AE0 +0x27D34 0x9AE5 +0x27D35 0x9AE9 +0x27D36 0x9B03 +0x27D37 0x9B0C +0x27D38 0x9B10 +0x27D39 0x9B12 +0x27D3A 0x9B16 +0x27D3B 0x9B1C +0x27D3C 0x9B2B +0x27D3D 0x9B33 +0x27D3E 0x9B3D +0x27D3F 0x4C20 +0x27D40 0x9B4B +0x27D41 0x9B63 +0x27D42 0x9B65 +0x27D43 0x9B6B +0x27D44 0x9B6C +0x27D45 0x9B73 +0x27D46 0x9B76 +0x27D47 0x9B77 +0x27D48 0x9BA6 +0x27D49 0x9BAC +0x27D4A 0x9BB1 +0x27D4B 0x29DDB +0x27D4C 0x29E3D +0x27D4D 0x9BB2 +0x27D4E 0x9BB8 +0x27D4F 0x9BBE +0x27D50 0x9BC7 +0x27D51 0x9BF3 +0x27D52 0x9BD8 +0x27D53 0x9BDD +0x27D54 0x9BE7 +0x27D55 0x9BEA +0x27D56 0x9BEB +0x27D57 0x9BEF +0x27D58 0x9BEE +0x27D59 0x29E15 +0x27D5A 0x9BFA +0x27D5B 0x29E8A +0x27D5C 0x9BF7 +0x27D5D 0x29E49 +0x27D5E 0x9C16 +0x27D5F 0x9C18 +0x27D60 0x9C19 +0x27D61 0x9C1A +0x27D62 0x9C1D +0x27D63 0x9C22 +0x27D64 0x9C27 +0x27D65 0x9C29 +0x27D66 0x9C2A +0x27D67 0x29EC4 +0x27D68 0x9C31 +0x27D69 0x9C36 +0x27D6A 0x9C37 +0x27D6B 0x9C45 +0x27D6C 0x9C5C +0x27D6D 0x29EE9 +0x27D6E 0x9C49 +0x27D6F 0x9C4A +0x27D70 0x29EDB +0x27D71 0x9C54 +0x27D72 0x9C58 +0x27D73 0x9C5B +0x27D74 0x9C5D +0x27D75 0x9C5F +0x27D76 0x9C69 +0x27D77 0x9C6A +0x27D78 0x9C6B +0x27D79 0x9C6D +0x27D7A 0x9C6E +0x27D7B 0x9C70 +0x27D7C 0x9C72 +0x27D7D 0x9C75 +0x27D7E 0x9C7A +0x27E21 0x9CE6 +0x27E22 0x9CF2 +0x27E23 0x9D0B +0x27E24 0x9D02 +0x27E25 0x29FCE +0x27E26 0x9D11 +0x27E27 0x9D17 +0x27E28 0x9D18 +0x27E29 0x2A02F +0x27E2A 0x4CC4 +0x27E2B 0x2A01A +0x27E2C 0x9D32 +0x27E2D 0x4CD1 +0x27E2E 0x9D42 +0x27E2F 0x9D4A +0x27E30 0x9D5F +0x27E31 0x9D62 +0x27E32 0x2A0F9 +0x27E33 0x9D69 +0x27E34 0x9D6B +0x27E35 0x2A082 +0x27E36 0x9D73 +0x27E37 0x9D76 +0x27E38 0x9D77 +0x27E39 0x9D7E +0x27E3A 0x9D84 +0x27E3B 0x9D8D +0x27E3C 0x9D99 +0x27E3D 0x9DA1 +0x27E3E 0x9DBF +0x27E3F 0x9DB5 +0x27E40 0x9DB9 +0x27E41 0x9DBD +0x27E42 0x9DC3 +0x27E43 0x9DC7 +0x27E44 0x9DC9 +0x27E45 0x9DD6 +0x27E46 0x9DDA +0x27E47 0x9DDF +0x27E48 0x9DE0 +0x27E49 0x9DE3 +0x27E4A 0x9DF4 +0x27E4B 0x4D07 +0x27E4C 0x9E0A +0x27E4D 0x9E02 +0x27E4E 0x9E0D +0x27E4F 0x9E19 +0x27E50 0x9E1C +0x27E51 0x9E1D +0x27E52 0x9E7B +0x27E53 0x22218 +0x27E54 0x9E80 +0x27E55 0x9E85 +0x27E56 0x9E9B +0x27E57 0x9EA8 +0x27E58 0x2A38C +0x27E59 0x9EBD +0x27E5A 0x2A437 +0x27E5B 0x9EDF +0x27E5C 0x9EE7 +0x27E5D 0x9EEE +0x27E5E 0x9EFF +0x27E5F 0x9F02 +0x27E60 0x4D77 +0x27E61 0x9F03 +0x27E62 0x9F17 +0x27E63 0x9F19 +0x27E64 0x9F2F +0x27E65 0x9F37 +0x27E66 0x9F3A +0x27E67 0x9F3D +0x27E68 0x9F41 +0x27E69 0x9F45 +0x27E6A 0x9F46 +0x27E6B 0x9F53 +0x27E6C 0x9F55 +0x27E6D 0x9F58 +0x27E6E 0x2A5F1 +0x27E6F 0x9F5D +0x27E70 0x2A602 +0x27E71 0x9F69 +0x27E72 0x2A61A +0x27E73 0x9F6D +0x27E74 0x9F70 +0x27E75 0x9F75 +0x27E76 0x2A6B2 diff --git a/3rdPartner/libiconv/tools/Makefile b/3rdPartner/libiconv/tools/Makefile new file mode 100644 index 0000000..019cbe3 --- /dev/null +++ b/3rdPartner/libiconv/tools/Makefile @@ -0,0 +1,757 @@ + +# Directory containing conversion tables. +# You have to unpack the conversion-tables.tar.gz package. +TABLESDIR = /home/bruno/chs/conversion-tables + +ALL = \ + ascii.h \ + iso8859_1.h \ + iso8859_2.h \ + iso8859_3.h \ + iso8859_4.h \ + iso8859_5.h \ + iso8859_6.h \ + iso8859_7.h \ + iso8859_8.h \ + iso8859_9.h \ + iso8859_10.h \ + iso8859_11.h \ + iso8859_13.h \ + iso8859_14.h \ + iso8859_15.h \ + iso8859_16.h \ + koi8_r.h \ + koi8_u.h \ + koi8_ru.h \ + cp1250.h \ + cp1251.h \ + cp1252.h \ + cp1253.h \ + cp1254.h \ + cp1255.h \ + cp1256.h \ + cp1257.h \ + cp1258.h \ + cp850.h \ + cp862.h \ + cp866.h \ + cp1131.h \ + mac_roman.h \ + mac_centraleurope.h \ + mac_iceland.h \ + mac_croatian.h \ + mac_romania.h \ + mac_cyrillic.h \ + mac_ukraine.h \ + mac_greek.h \ + mac_turkish.h \ + mac_hebrew.h \ + mac_arabic.h \ + mac_thai.h \ + hp_roman8.h \ + nextstep.h \ + armscii_8.h \ + georgian_academy.h \ + georgian_ps.h \ + koi8_t.h \ + pt154.h \ + rk1048.h \ + mulelao.h \ + cp1133.h \ + tis620.h \ + cp874.h \ + viscii.h \ + tcvn.h \ + jisx0201.h \ + jisx0208.h \ + jisx0212.h \ + cp932ext.h \ + cp50221_0208_ext.h \ + cp50221_0212_ext.h \ + gb2312.h \ + isoir165ext.h \ + gb12345ext.h \ + gbkext1.h \ + gbkext2.h \ + gbkext_inv.h \ + cp936ext.h \ + gb18030ext.h \ + gb18030uni.h \ + cns11643_1.h \ + cns11643_2.h \ + cns11643_3.h \ + cns11643_4a.h \ + cns11643_4b.h \ + cns11643_5.h \ + cns11643_6.h \ + cns11643_7.h \ + cns11643_15.h \ + cns11643_inv.h \ + big5.h \ + cp950ext.h \ + hkscs1999.h \ + hkscs2001.h \ + hkscs2004.h \ + hkscs2008.h \ + ksc5601.h \ + uhc_1.h \ + uhc_2.h \ + johab_hangul.h \ + cp856.h \ + cp922.h \ + cp1046.h \ + cp1124.h \ + cp1129.h \ + cp1161.h \ + cp1162.h \ + cp1163.h \ + cp437.h \ + cp737.h \ + cp775.h \ + cp852.h \ + cp853.h \ + cp855.h \ + cp857.h \ + cp858.h \ + cp860.h \ + cp861.h \ + cp863.h \ + cp864.h \ + cp865.h \ + cp869.h \ + cp1125.h \ + ebcdic037.h \ + ebcdic273.h \ + ebcdic277.h \ + ebcdic278.h \ + ebcdic280.h \ + ebcdic282.h \ + ebcdic284.h \ + ebcdic285.h \ + ebcdic297.h \ + ebcdic423.h \ + ebcdic424.h \ + ebcdic425.h \ + ebcdic500.h \ + ebcdic838.h \ + ebcdic870.h \ + ebcdic871.h \ + ebcdic875.h \ + ebcdic880.h \ + ebcdic905.h \ + ebcdic924.h \ + ebcdic1025.h \ + ebcdic1026.h \ + ebcdic1047.h \ + ebcdic1097.h \ + ebcdic1112.h \ + ebcdic1122.h \ + ebcdic1123.h \ + ebcdic1130.h \ + ebcdic1132.h \ + ebcdic1137.h \ + ebcdic1140.h \ + ebcdic1141.h \ + ebcdic1142.h \ + ebcdic1143.h \ + ebcdic1144.h \ + ebcdic1145.h \ + ebcdic1146.h \ + ebcdic1147.h \ + ebcdic1148.h \ + ebcdic1149.h \ + ebcdic1153.h \ + ebcdic1154.h \ + ebcdic1155.h \ + ebcdic1156.h \ + ebcdic1157.h \ + ebcdic1158.h \ + ebcdic1160.h \ + ebcdic1164.h \ + ebcdic1165.h \ + ebcdic1166.h \ + ebcdic4971.h \ + ebcdic12712.h \ + ebcdic16804.h \ + jisx0213.h \ + tds565.h \ + atarist.h \ + riscos1.h \ + cjk_variants.h + +all : $(ALL) + +ascii.h : $(TABLESDIR)/glibc-2.1-iconv/ASCII.TXT 8bit_tab_to_h + ./8bit_tab_to_h ASCII ascii < $< + +iso8859_1.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-1.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-1 iso8859_1 < $< + +iso8859_2.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-2.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-2 iso8859_2 < $< + +iso8859_3.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-3.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-3 iso8859_3 < $< + +iso8859_4.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-4.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-4 iso8859_4 < $< + +iso8859_5.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-5.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-5 iso8859_5 < $< + +iso8859_6.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-6.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-6 iso8859_6 < $< + +iso8859_7.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-7-2003.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-7 iso8859_7 < $< + +iso8859_8.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-8.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-8 iso8859_8 < $< + +iso8859_9.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-9.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-9 iso8859_9 < $< + +iso8859_10.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-10.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-10 iso8859_10 < $< + +iso8859_11.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-11.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-11 iso8859_11 < $< + +iso8859_13.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-13.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-13 iso8859_13 < $< + +iso8859_14.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-14.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-14 iso8859_14 < $< + +iso8859_15.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-15.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-15 iso8859_15 < $< + +iso8859_16.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-16.TXT 8bit_tab_to_h + ./8bit_tab_to_h ISO-8859-16 iso8859_16 < $< + +koi8_r.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/KOI8-R.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-R koi8_r < $< + +koi8_u.h : $(TABLESDIR)/csets-new/KOI8-U.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-U koi8_u < $< + +koi8_ru.h : $(TABLESDIR)/freebsd-iconv-0.4/KOI8-RU.TXT 8bit_tab_to_h + ./8bit_tab_to_h KOI8-RU koi8_ru < $< + +cp1250.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1250.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1250 cp1250 < $< + +cp1251.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1251.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1251 cp1251 < $< + +cp1252.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1252.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1252 cp1252 < $< + +cp1253.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1253.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1253 cp1253 < $< + +cp1254.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1254.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1254 cp1254 < $< + +cp1255.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1255.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1255 cp1255 < $< + +cp1256.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1256.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1256 cp1256 < $< + +cp1257.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1257.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1257 cp1257 < $< + +cp1258.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1258.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1258 cp1258 < $< + +cp850.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP850.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP850 cp850 < $< + +cp862.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP862.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP862 cp862 < $< + +cp866.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP866.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP866 cp866 < $< + +cp1131.h : $(TABLESDIR)/other/CP1131.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1131 cp1131 + +mac_roman.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMAN.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacRoman mac_roman < $< + +mac_centraleurope.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CENTRAL-EUROPE.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCentralEurope mac_centraleurope < $< + +mac_iceland.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ICELAND.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacIceland mac_iceland < $< + +mac_croatian.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CROATIAN.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCroatian mac_croatian < $< + +mac_romania.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMANIA.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacRomania mac_romania < $< + +mac_cyrillic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CYRILLIC.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacCyrillic mac_cyrillic < $< + +mac_ukraine.h : $(TABLESDIR)/jdk-1.1.7b/MAC-UKRAINE.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacUkraine mac_ukraine < $< + +mac_greek.h : $(TABLESDIR)/jdk-1.1.7b/MAC-GREEK.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacGreek mac_greek < $< + +mac_turkish.h : $(TABLESDIR)/jdk-1.1.7b/MAC-TURKISH.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacTurkish mac_turkish < $< + +mac_hebrew.h : $(TABLESDIR)/jdk-1.1.7b/MAC-HEBREW.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacHebrew mac_hebrew < $< + +mac_arabic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ARABIC.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacArabic mac_arabic < $< + +mac_thai.h : $(TABLESDIR)/jdk-1.1.7b/MAC-THAI.TXT 8bit_tab_to_h + ./8bit_tab_to_h MacThai mac_thai < $< + +hp_roman8.h : $(TABLESDIR)/glibc-2.1-iconv/HP-ROMAN8.TXT 8bit_tab_to_h + ./8bit_tab_to_h HP-ROMAN8 hp_roman8 < $< + +nextstep.h : $(TABLESDIR)/clisp/NEXTSTEP.TXT 8bit_tab_to_h + ./8bit_tab_to_h NEXTSTEP nextstep < $< + +armscii_8.h : $(TABLESDIR)/glibc-2.2.90-iconv/ARMSCII-8.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h ARMSCII-8 armscii_8 + +georgian_academy.h : $(TABLESDIR)/csets-1.6/GEO-ITA.TXT 8bit_tab_to_h + ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_academy < $< + +georgian_ps.h : $(TABLESDIR)/csets-1.6/GEO-PS.TXT 8bit_tab_to_h + ./8bit_tab_to_h GEORGIAN-PS georgian_ps < $< + +koi8_t.h : $(TABLESDIR)/glibc-2.2.90-iconv/KOI8-T.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h KOI8-T koi8_t + +pt154.h : $(TABLESDIR)/IANA/PTCP154.TXT + ./8bit_tab_to_h PT154 pt154 < $< + +rk1048.h : $(TABLESDIR)/IANA/KZ-1048.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h RK1048 rk1048 + +mulelao.h : $(TABLESDIR)/csets-new/MULELAO1.TXT 8bit_tab_to_h + ./8bit_tab_to_h MULELAO-1 mulelao < $< + +cp1133.h : $(TABLESDIR)/csets-new/CP1133.TXT 8bit_tab_to_h + ./8bit_tab_to_h IBM-CP1133 cp1133 < $< + +tis620.h : $(TABLESDIR)/glibc-2.1-iconv/TIS-620.TXT 8bit_tab_to_h + ./8bit_tab_to_h TIS620.2533-1 tis620 < $< + +cp874.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP874.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP874 cp874 < $< + +viscii.h : $(TABLESDIR)/csets-1.6/VISCII.TXT 8bit_tab_to_h + ./8bit_tab_to_h VISCII1.1-1 viscii < $< + +tcvn.h : $(TABLESDIR)/csets-1.6/VN5712-1.TXT 8bit_tab_to_h + ./8bit_tab_to_h TCVN-5712 tcvn < $< + +jisx0201.h : $(TABLESDIR)/clisp/JIS_X0201.TXT 8bit_tab_to_h + ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < $< + +# We use modified JISX0208 and JISX0212 tables. Why? +# Hironori Sakamoto and Tomohiro Kubota explain that +# - EUC-JP and SHIFT_JIS contain JISX0208 exactly, +# - Their round-trip conversion to Unicode and back must be the identity, +# - Conversions between EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP must behave +# as if no Unicode conversion was involved, +# - When JISX0208 is used as a CES (i.e. combined with ASCII) its mapping of +# REVERSE SOLIDUS becomes a FULLWIDTH REVERSE SOLIDUS, apparently because +# round-trip conversion stability is more important than a particular glyph. +# Only with CCS the character is a REVERSE SOLIDUS. +# As a consequence, we use FULLWIDTH REVERSE SOLIDUS in EUC-JP's JISX0208 part, +# and for consistency also in SHIFT_JIS and ISO-2022-JP, i.e. everywhere. +# JISX0208 never occurs as a CCS in practice. Similarly with JISX0212. + +# Unicode.org maps 0x2140 to U+005C. We map it to U+FF3C. +jisx0208.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0208.TXT cjk_tab_to_h + sed -e 's,^0x....[ ]*\(0x....[ ]*0x.....*\)$$,\1,' < $< | sed -e 's,\([ ]\)0x005C,\10xFF3C,' | ./cjk_tab_to_h JISX0208.1990-0 jisx0208 > $@ + +# Unicode.org maps 0x2237 to U+007E. We map it to U+FF5E. +jisx0212.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0212.TXT cjk_tab_to_h + sed -e 's,\([ ]\)0x007E,\10xFF5E,' < $< | ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > $@ + +cp932ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP932.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(87\|E[D-F]\|F[0-9A-F]\)[0-9A-F][0-9A-F]' < $< ) | ./cjk_tab_to_h 'CP932 extensions' cp932ext > $@ + +cp50221_0208_ext.h : CP50221-0208-EXT.TXT 8bit_tab_to_h + ./8bit_tab_to_h 'CP50221 JISX0208 extensions' cp50221_0208_ext < $< + +cp50221_0212_ext.h : CP50221-0212-EXT.TXT 8bit_tab_to_h + ./8bit_tab_to_h 'CP50221 JISX0212 extensions' cp50221_0212_ext < $< + +gb2312.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT cjk_tab_to_h + ./cjk_tab_to_h GB2312.1980-0 gb2312 < $< > $@ + +isoir165ext.h : $(TABLESDIR)/csets-new/ISO-IR-165-additions.TXT cjk_tab_to_h + (echo '#' ; grep -v '^0x2[8A]' < $<) | ./cjk_tab_to_h 'ISO-IR-165 extensions' isoir165ext > $@ + +gb12345ext.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT $(TABLESDIR)/csets-new/GB12345-more.TXT cjk_tab_to_h + (echo '#' ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmp1.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT > tmp2.TXT ; diff tmp1.TXT tmp2.TXT | grep '^> ' | sed -e 's,^> ,,' ; cat $(TABLESDIR)/csets-new/GB12345-more.TXT ) | ./cjk_tab_to_h 'GB/T 12345.1990-0 extensions' gb12345ext > $@ && rm -f tmp1.TXT tmp2.TXT + +gbkext1.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/3 extensions' gbkext1 > $@ + +gbkext2.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/4 and GBK/5 extensions' gbkext2 > $@ + +gbkext_inv.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK extensions' gbkext_inv > $@ + +cp936ext.h : GBKext.TXT cjk_tab_to_h + (echo '#' ; grep '^0xA[1-9][B-F].' < GBKext.TXT) | ./cjk_tab_to_h 'CP936 extensions' cp936ext > $@ + +GBKext.TXT : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT + sed -e 's,^0x2,0xA,' -e 's,^0x3,0xB,' -e 's,^0x4,0xC,' -e 's,^0x5,0xD,' -e 's,^0x6,0xE,' -e 's,^0x7,0xF,' -e 's,^0x\(..\)2,0x\1A,' -e 's,^0x\(..\)3,0x\1B,' -e 's,^0x\(..\)4,0x\1C,' -e 's,^0x\(..\)5,0x\1D,' -e 's,^0x\(..\)6,0x\1E,' -e 's,^0x\(..\)7,0x\1F,' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmpEUCCN.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' tmpEUCCN.TXT > tmp1.TXT ; sed -e '/^0x..[ ]/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT > tmp2.TXT ; diff -c1 tmp1.TXT tmp2.TXT | grep '^+ ' | sed -e 's,^+ ,,' > $@ && rm -f tmpEUCCN.TXT tmp1.TXT tmp2.TXT + +gb18030ext.h : GB18030ext.TXT cjk_tab_to_h + (echo '#' ; cat GB18030ext.TXT) | ./cjk_tab_to_h 'GB18030 two-byte extension' gb18030ext > $@ + +GB18030ext.TXT : $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT + cat $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT | sed -e 's/[ ]*#.*$$//' | grep '^0x[0-9A-F]* 0x....$$' > tmpGBK.TXT ; diff tmpGBK.TXT $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT | grep '^> 0x.... 0x....$$' | sed -e 's/^> //' > $@ && rm -f tmpGBK.TXT + +gb18030uni.h : GB18030uni.TXT cjk_tab_to_h + ./cjk_tab_to_h 'GB18030 four-byte extension' gb18030uni < GB18030uni.TXT > $@ + +GB18030uni.TXT : $(TABLESDIR)/gb18030/filled-GB18030.TXT + grep '^0x........ 0x....$$' < $(TABLESDIR)/gb18030/filled-GB18030.TXT > $@ + +cns11643_1.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x1\)' < $< | sed -e 's,^0x1,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 1' cns11643_1 > $@ + +cns11643_2.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x2\)' < $< | sed -e 's,^0x2,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 2' cns11643_2 > $@ + +cns11643_3.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x3\)' < $< | sed -e 's,^0x3,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 3' cns11643_3 > $@ + +cns11643_4a.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x4[0-3]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part a' cns11643_4a > $@ + +cns11643_4b.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x4[4-7]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part b' cns11643_4b > $@ + +cns11643_5.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x5\)' < $< | sed -e 's,^0x5,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 5' cns11643_5 > $@ + +cns11643_6.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x6\)' < $< | sed -e 's,^0x6,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 6' cns11643_6 > $@ + +cns11643_7.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0x7\)' < $< | sed -e 's,^0x7,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 7' cns11643_7 > $@ + +cns11643_15.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + grep '^\(#\|0xF\)' < $< | sed -e 's,^0xF,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 15' cns11643_15 > $@ + +cns11643_inv.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h + ./cjk_tab_to_h 'CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15' cns11643_inv < $< > $@ + +big5.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/OTHER/BIG5.TXT cjk_tab_to_h + ./cjk_tab_to_h BIG5 big5 < $< > $@ + +cp950ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP950.TXT cjk_tab_to_h + (echo '#' ; grep '^0xF9\(D[6-9A-F]\|[EF][0-9A-F]\)' < $< ) | ./cjk_tab_to_h 'CP950 extensions' cp950ext > $@ + +hkscs1999.h : $(TABLESDIR)/big5hkscs/HKSCS-1999_2006.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:1999 hkscs1999 > $@ + +hkscs2001.h : $(TABLESDIR)/big5hkscs/HKSCS-2001_2006-DELTA.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2001 hkscs2001 > $@ + +hkscs2004.h : $(TABLESDIR)/big5hkscs/HKSCS-2004_2006-DELTA.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2004 hkscs2004 > $@ + +hkscs2008.h : $(TABLESDIR)/big5hkscs/HKSCS-2008_2010-DELTA.TXT cjk_tab_to_h + (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2008 hkscs2008 > $@ + +# We use a modified KSC 5601 = KSX 1001 table. Jungshik Shin +# reports that Prof. GIM Geongseog (KIM Keyongseok) +# (who represents South Korea in ISO/IEC JTC1 SC2/WG2 and SC22/WG20) says that +# these two characters were added to KSX 1001 in December 1998. According to +# http://std.dkuug.dk/jtc1/sc2/wg2/docs/N2815.doc, one more character +# (Korean postal code sign) was added in 2002. +ksc5601.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (cat $< ; echo '0xA2E6 0x20AC'; echo '0xA2E7 0x00AE'; echo '0xA2E8 0x327E') | ./cjk_tab_to_h 'KSC5601.1987-0, now KS X 1001:2002' ksc5601 > $@ + +uhc_1.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([8-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 1' uhc_1 > $@ + +uhc_2.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([0-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 2' uhc_2 > $@ + +johab_hangul.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT cjk_tab_to_h + (echo '#' ; grep '^0x\([8-C]...\|D[0-7]..\)' < $< ) | ./cjk_tab_to_h 'JOHAB Hangul' johab_hangul > $@ + + +cp856.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/CP856.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP856 cp856 < $< + +cp922.h : $(TABLESDIR)/aix-4.3.2/IBM-922.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP922 cp922 + +cp1046.h : $(TABLESDIR)/aix-4.3.2/IBM-1046.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1046 cp1046 + +cp1124.h : $(TABLESDIR)/aix-4.3.2/IBM-1124.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1124 cp1124 + +cp1129.h : $(TABLESDIR)/aix-4.3.2/IBM-1129.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1129 cp1129 + +cp1161.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1161.TXT + (echo '#' ; cat $(TABLESDIR)/glibc-2.2-iconv/ASCII.TXT ; grep -v '^0x[0-7]' $<) | ./8bit_tab_to_h CP1161 cp1161 + +cp1162.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1162.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1162 cp1162 + +cp1163.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1163.TXT + (echo '#' ; cat $<) | ./8bit_tab_to_h CP1163 cp1163 + + +cp437.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP437.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP437 cp437 < $< + +cp737.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP737.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP737 cp737 < $< + +cp775.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP775.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP775 cp775 < $< + +cp852.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP852.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP852 cp852 < $< + +cp853.h : $(TABLESDIR)/other/CP853.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h CP853 cp853 + +cp855.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP855.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP855 cp855 < $< + +cp857.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP857.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP857 cp857 < $< + +cp858.h : $(TABLESDIR)/windows-2000/CP858.TXT 8bit_tab_to_h + (echo '#' ; cat $<) | ./8bit_tab_to_h CP858 cp858 + +cp860.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP860.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP860 cp860 < $< + +cp861.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP861.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP861 cp861 < $< + +cp863.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP863.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP863 cp863 < $< + +cp864.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP864.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP864 cp864 < $< + +cp865.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP865.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP865 cp865 < $< + +cp869.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP869.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP869 cp869 < $< + +cp1125.h : $(TABLESDIR)/csets-new/CP1125.TXT 8bit_tab_to_h + ./8bit_tab_to_h CP1125 cp1125 < $< + + +ebcdic037.h : ../tests/IBM-037.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-037 ebcdic037 + +ebcdic273.h : ../tests/IBM-273.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-273 ebcdic273 + +ebcdic277.h : ../tests/IBM-277.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-277 ebcdic277 + +ebcdic278.h : ../tests/IBM-278.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-278 ebcdic278 + +ebcdic280.h : ../tests/IBM-280.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-280 ebcdic280 + +ebcdic282.h : ../tests/IBM-282.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-282 ebcdic282 + +ebcdic284.h : ../tests/IBM-284.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-284 ebcdic284 + +ebcdic285.h : ../tests/IBM-285.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-285 ebcdic285 + +ebcdic297.h : ../tests/IBM-297.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-297 ebcdic297 + +ebcdic423.h : ../tests/IBM-423.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-423 ebcdic423 + +ebcdic424.h : ../tests/IBM-424.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-424 ebcdic424 + +ebcdic425.h : ../tests/IBM-425.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-425 ebcdic425 + +ebcdic500.h : ../tests/IBM-500.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-500 ebcdic500 + +ebcdic838.h : ../tests/IBM-838.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-838 ebcdic838 + +ebcdic870.h : ../tests/IBM-870.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-870 ebcdic870 + +ebcdic871.h : ../tests/IBM-871.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-871 ebcdic871 + +ebcdic875.h : ../tests/IBM-875.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-875 ebcdic875 + +ebcdic880.h : ../tests/IBM-880.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-880 ebcdic880 + +ebcdic905.h : ../tests/IBM-905.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-905 ebcdic905 + +ebcdic924.h : ../tests/IBM-924.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-924 ebcdic924 + +ebcdic1025.h : ../tests/IBM-1025.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1025 ebcdic1025 + +ebcdic1026.h : ../tests/IBM-1026.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1026 ebcdic1026 + +ebcdic1047.h : ../tests/IBM-1047.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1047 ebcdic1047 + +ebcdic1097.h : ../tests/IBM-1097.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1097 ebcdic1097 + +ebcdic1112.h : ../tests/IBM-1112.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1112 ebcdic1112 + +ebcdic1122.h : ../tests/IBM-1122.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1122 ebcdic1122 + +ebcdic1123.h : ../tests/IBM-1123.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1123 ebcdic1123 + +ebcdic1130.h : ../tests/IBM-1130.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1130 ebcdic1130 + +ebcdic1132.h : ../tests/IBM-1132.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1132 ebcdic1132 + +ebcdic1137.h : ../tests/IBM-1137.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1137 ebcdic1137 + +ebcdic1140.h : ../tests/IBM-1140.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1140 ebcdic1140 + +ebcdic1141.h : ../tests/IBM-1141.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1141 ebcdic1141 + +ebcdic1142.h : ../tests/IBM-1142.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1142 ebcdic1142 + +ebcdic1143.h : ../tests/IBM-1143.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1143 ebcdic1143 + +ebcdic1144.h : ../tests/IBM-1144.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1144 ebcdic1144 + +ebcdic1145.h : ../tests/IBM-1145.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1145 ebcdic1145 + +ebcdic1146.h : ../tests/IBM-1146.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1146 ebcdic1146 + +ebcdic1147.h : ../tests/IBM-1147.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1147 ebcdic1147 + +ebcdic1148.h : ../tests/IBM-1148.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1148 ebcdic1148 + +ebcdic1149.h : ../tests/IBM-1149.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1149 ebcdic1149 + +ebcdic1153.h : ../tests/IBM-1153.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1153 ebcdic1153 + +ebcdic1154.h : ../tests/IBM-1154.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1154 ebcdic1154 + +ebcdic1155.h : ../tests/IBM-1155.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1155 ebcdic1155 + +ebcdic1156.h : ../tests/IBM-1156.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1156 ebcdic1156 + +ebcdic1157.h : ../tests/IBM-1157.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1157 ebcdic1157 + +ebcdic1158.h : ../tests/IBM-1158.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1158 ebcdic1158 + +ebcdic1160.h : ../tests/IBM-1160.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1160 ebcdic1160 + +ebcdic1164.h : ../tests/IBM-1164.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1164 ebcdic1164 + +ebcdic1165.h : ../tests/IBM-1165.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1165 ebcdic1165 + +ebcdic1166.h : ../tests/IBM-1166.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-1166 ebcdic1166 + +ebcdic4971.h : ../tests/IBM-4971.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-4971 ebcdic4971 + +ebcdic12712.h : ../tests/IBM-12712.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-12712 ebcdic12712 + +ebcdic16804.h : ../tests/IBM-16804.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h IBM-16804 ebcdic16804 + + +jisx0213.h : JISX0213.TXT cjk_tab_to_h + ./cjk_tab_to_h JISX0213:2004 jisx0213 < $< > $@ + +tds565.h : $(TABLESDIR)/recode-cvs/TDS565.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h TDS565 tds565 > $@ + +atarist.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/ATARIST.TXT + ./8bit_tab_to_h 'Atari ST' atarist < $< > $@ + +riscos1.h : $(TABLESDIR)/recode-cvs/RISCOS-LATIN1.TXT 8bit_tab_to_h + (echo '#'; cat $<) | ./8bit_tab_to_h RISCOS-LATIN1 riscos1 > $@ + + +cjk_variants.h : $(TABLESDIR)/yasuoka/UniVariants cjk_variants + ./cjk_variants < $< > $@ + + +8bit_tab_to_h : 8bit_tab_to_h.c + gcc -O -Wall -g $< -o $@ + +cjk_tab_to_h : cjk_tab_to_h.c + gcc -O -Wall -g $< -o $@ + +cjk_variants : cjk_variants.c + gcc -O -Wall -g $< -o $@ + + +clean : force + rm -f 8bit_tab_to_h cjk_tab_to_h cjk_variants $(ALL) GBKext.TXT + +force : + diff --git a/3rdPartner/libiconv/tools/cjk_tab_to_h.c b/3rdPartner/libiconv/tools/cjk_tab_to_h.c new file mode 100644 index 0000000..e726c2c --- /dev/null +++ b/3rdPartner/libiconv/tools/cjk_tab_to_h.c @@ -0,0 +1,2146 @@ +/* Copyright (C) 1999-2004, 2006-2007, 2010, 2012, 2016, 2018 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + 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 3 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, see . */ + +/* + * Generates a CJK character set table from a .TXT table as found on + * ftp.unicode.org or in the X nls directory. + * Examples: + * + * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < gb2312 + * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < jis0208 + * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < ksc5601 + * + * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < GB2312.TXT + * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < JIS0208.TXT + * ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > jisx0212.h < JIS0212.TXT + * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < KSC5601.TXT + * ./cjk_tab_to_h KSX1001.1992-0 ksc5601 > ksc5601.h < KSX1001.TXT + * + * ./cjk_tab_to_h BIG5 big5 > big5.h < BIG5.TXT + * + * ./cjk_tab_to_h JOHAB johab > johab.h < JOHAB.TXT + * + * ./cjk_tab_to_h JISX0213:2004 jisx0213 > jisx0213.h < JISX0213.TXT + */ + +#include +#include +#include +#include +#include +#include + +typedef struct { + int start; + int end; +} Block; + +typedef struct { + int rows; /* number of possible values for the 1st byte */ + int cols; /* number of possible values for the 2nd byte */ + int (*row_byte) (int row); /* returns the 1st byte value for a given row */ + int (*col_byte) (int col); /* returns the 2nd byte value for a given col */ + int (*byte_row) (int byte); /* converts a 1st byte value to a row, else -1 */ + int (*byte_col) (int byte); /* converts a 2nd byte value to a col, else -1 */ + const char* check_row_expr; /* format string for 1st byte value checking */ + const char* check_col_expr; /* format string for 2nd byte value checking */ + const char* byte_row_expr; /* format string for 1st byte value to row */ + const char* byte_col_expr; /* format string for 2nd byte value to col */ + int** charset2uni; /* charset2uni[0..rows-1][0..cols-1] is valid */ + /* You'll understand the terms "row" and "col" when you buy Ken Lunde's book. + Once a row is fixed, choosing a "col" is the same as choosing a "cell". */ + int* charsetpage; /* charsetpage[0..rows]: how large is a page for a row */ + int ncharsetblocks; + Block* charsetblocks; /* blocks[0..nblocks-1] */ + int* uni2charset; /* uni2charset[0x0000..0xffff] */ + int fffd; /* uni representation of the invalid character */ +} Encoding; + +/* + * Outputs the file title. + */ +static void output_title (const char *charsetname) +{ + printf("/*\n"); + printf(" * Copyright (C) 1999-2016 Free Software Foundation, Inc.\n"); + printf(" * This file is part of the GNU LIBICONV Library.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n"); + printf(" * and/or modify it under the terms of the GNU Lesser General Public\n"); + printf(" * License as published by the Free Software Foundation; either version 2\n"); + printf(" * of the License, or (at your option) any later version.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + printf(" * Lesser General Public License for more details.\n"); + printf(" *\n"); + printf(" * You should have received a copy of the GNU Lesser General Public\n"); + printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + printf(" * If not, see .\n"); + printf(" */\n"); + printf("\n"); + printf("/*\n"); + printf(" * %s\n", charsetname); + printf(" */\n"); + printf("\n"); +} + +/* + * Reads the charset2uni table from standard input. + */ +static void read_table (Encoding* enc) +{ + int row, col, i, i1, i2, c, j; + + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + enc->charset2uni[row][col] = 0xfffd; + + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &j) != 1) + exit(1); + i1 = j >> 8; + i2 = j & 0xff; + row = enc->byte_row(i1); + col = enc->byte_col(i2); + if (row < 0 || col < 0) { + fprintf(stderr, "lost entry for %02x %02x\n", i1, i2); + exit(1); + } + if (scanf(" 0x%x", &enc->charset2uni[row][col]) != 1) + exit(1); + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i1 = 32; i1 < 132; i1++) + for (i2 = 32; i2 < 132; i2++) { + i = scanf("%x", &j); + if (i == EOF) + goto read_done; + if (i != 1) + exit(1); + if (j < 0 || j == 0xffff) + j = 0xfffd; + if (j != 0xfffd) { + if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) { + fprintf(stderr, "lost entry at %02x %02x\n", i1, i2); + exit (1); + } + enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j; + } + } + read_done: ; + } +} + +/* + * Determine whether the Unicode range goes outside the BMP. + */ +static bool is_charset2uni_large (Encoding* enc) +{ + int row, col; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + if (enc->charset2uni[row][col] >= 0x10000) + return true; + return false; +} + +/* + * Compactify the Unicode range by use of an auxiliary table, + * so 16 bits suffice to store each value. + */ +static int compact_large_charset2uni (Encoding* enc, unsigned int **urows, unsigned int *urowshift) +{ + unsigned int shift; + + for (shift = 8; ; shift--) { + int *upages = (int *) malloc((0x110000>>shift) * sizeof(int)); + int i, row, col, nurows; + + for (i = 0; i < 0x110000>>shift; i++) + upages[i] = -1; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + upages[enc->charset2uni[row][col] >> shift] = 0; + + nurows = 0; + for (i = 0; i < 0x110000>>shift; i++) + if (upages[i] == 0) + nurows++; + + /* We want all table entries to fit in an 'unsigned short'. */ + if (nurows <= 1<<(16-shift)) { + int** old_charset2uni; + + *urows = (unsigned int *) malloc(nurows * sizeof(unsigned int)); + *urowshift = shift; + + nurows = 0; + for (i = 0; i < 0x110000>>shift; i++) + if (upages[i] == 0) { + upages[i] = nurows; + (*urows)[nurows] = i; + nurows++; + } + + old_charset2uni = enc->charset2uni; + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + int u = old_charset2uni[row][col]; + enc->charset2uni[row][col] = + (upages[u >> shift] << shift) | (u & ((1 << shift) - 1)); + } + enc->fffd = + (upages[0xfffd >> shift] << shift) | (0xfffd & ((1 << shift) - 1)); + + return nurows; + } + } + abort(); +} + +/* + * Computes the charsetpage[0..rows] array. + */ +static void find_charset2uni_pages (Encoding* enc) +{ + int row, col; + + enc->charsetpage = (int*) malloc((enc->rows+1)*sizeof(int)); + + for (row = 0; row <= enc->rows; row++) + enc->charsetpage[row] = 0; + + for (row = 0; row < enc->rows; row++) { + int used = 0; + for (col = 0; col < enc->cols; col++) + if (enc->charset2uni[row][col] != enc->fffd) + used = col+1; + enc->charsetpage[row] = used; + } +} + +/* + * Fills in nblocks and blocks. + */ +static void find_charset2uni_blocks (Encoding* enc) +{ + int n, row, lastrow; + + enc->charsetblocks = (Block*) malloc(enc->rows*sizeof(Block)); + + n = 0; + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0 && (row == 0 || enc->charsetpage[row-1] == 0)) { + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + enc->charsetblocks[n].start = row * enc->cols; + enc->charsetblocks[n].end = lastrow * enc->cols + enc->charsetpage[lastrow]; + n++; + } + enc->ncharsetblocks = n; +} + +/* + * Outputs the charset to unicode table and function. + */ +static void output_charset2uni (const char* name, Encoding* enc) +{ + int nurows, row, col, lastrow, col_max, i, i1_min, i1_max; + bool is_large; + unsigned int* urows; + unsigned int urowshift; + Encoding tmpenc; + + is_large = is_charset2uni_large(enc); + if (is_large) { + /* Use a temporary copy of enc. */ + tmpenc = *enc; + enc = &tmpenc; + nurows = compact_large_charset2uni(enc,&urows,&urowshift); + } else { + nurows = 0; urows = NULL; urowshift = 0; enc->fffd = 0xfffd; + } + + find_charset2uni_pages(enc); + + find_charset2uni_blocks(enc); + + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0) { + if (row == 0 || enc->charsetpage[row-1] == 0) { + /* Start a new block. */ + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + printf("static const unsigned short %s_2uni_page%02x[%d] = {\n", + name, enc->row_byte(row), + (lastrow-row) * enc->cols + enc->charsetpage[lastrow]); + } + printf(" /""* 0x%02x *""/\n ", enc->row_byte(row)); + col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]); + for (col = 0; col < col_max; col++) { + printf(" 0x%04x,", enc->charset2uni[row][col]); + if ((col % 8) == 7 && (col+1 < col_max)) printf("\n "); + } + printf("\n"); + if (enc->charsetpage[row+1] == 0) { + /* End a block. */ + printf("};\n"); + } + } + printf("\n"); + + if (is_large) { + printf("static const ucs4_t %s_2uni_upages[%d] = {\n ", name, nurows); + for (i = 0; i < nurows; i++) { + printf(" 0x%05x,", urows[i] << urowshift); + if ((i % 8) == 7 && (i+1 < nurows)) printf("\n "); + } + printf("\n"); + printf("};\n"); + printf("\n"); + } + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if ("); + for (i = 0; i < enc->ncharsetblocks; i++) { + i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols); + i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols); + if (i > 0) + printf(" || "); + if (i1_min == i1_max) + printf("(c1 == 0x%02x)", i1_min); + else + printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max); + } + printf(") {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if ("); + printf(enc->check_col_expr, "c2"); + printf(") {\n"); + printf(" unsigned int i = %d * (", enc->cols); + printf(enc->byte_row_expr, "c1"); + printf(") + ("); + printf(enc->byte_col_expr, "c2"); + printf(");\n"); + printf(" %s wc = 0xfffd;\n", is_large ? "ucs4_t" : "unsigned short"); + if (is_large) printf(" unsigned short swc;\n"); + for (i = 0; i < enc->ncharsetblocks; i++) { + printf(" "); + if (i > 0) + printf("} else "); + if (i < enc->ncharsetblocks-1) + printf("if (i < %d) ", enc->charsetblocks[i+1].start); + printf("{\n"); + printf(" if (i < %d)\n", enc->charsetblocks[i].end); + printf(" %s = ", is_large ? "swc" : "wc"); + printf("%s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols)); + if (enc->charsetblocks[i].start > 0) + printf("-%d", enc->charsetblocks[i].start); + printf("]"); + if (is_large) printf(",\n wc = %s_2uni_upages[swc>>%d] | (swc & 0x%x)", name, urowshift, (1 << urowshift) - 1); + printf(";\n"); + } + printf(" }\n"); + printf(" if (wc != 0xfffd) {\n"); + printf(" *pwc = %swc;\n", is_large ? "" : "(ucs4_t) "); + printf(" return 2;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + printf("\n"); +} + +/* + * Outputs the charset to unicode table and function. + * (Suitable if the mapping function is well defined, i.e. has no holes, and + * is monotonically increasing with small gaps only.) + */ +static void output_charset2uni_noholes_monotonic (const char* name, Encoding* enc) +{ + int row, col, lastrow, r, col_max, i, i1_min, i1_max; + + /* Choose stepsize so that stepsize*steps_per_row >= enc->cols, and + enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize] + is always < 0x100. */ + int steps_per_row = 2; + int stepsize = (enc->cols + steps_per_row-1) / steps_per_row; + + find_charset2uni_pages(enc); + + find_charset2uni_blocks(enc); + + for (row = 0; row < enc->rows; row++) + if (enc->charsetpage[row] > 0) { + if (row == 0 || enc->charsetpage[row-1] == 0) { + /* Start a new block. */ + for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++); + printf("static const unsigned short %s_2uni_main_page%02x[%d] = {\n ", + name, enc->row_byte(row), + steps_per_row*(lastrow-row+1)); + for (r = row; r <= lastrow; r++) { + for (i = 0; i < steps_per_row; i++) + printf(" 0x%04x,", enc->charset2uni[r][i*stepsize]); + if (((r-row) % 4) == 3 && (r < lastrow)) printf("\n "); + } + printf("\n"); + printf("};\n"); + printf("static const unsigned char %s_2uni_page%02x[%d] = {\n", + name, enc->row_byte(row), + (lastrow-row) * enc->cols + enc->charsetpage[lastrow]); + } + printf(" /""* 0x%02x *""/\n ", enc->row_byte(row)); + col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]); + for (col = 0; col < col_max; col++) { + printf(" 0x%02x,", enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize]); + if ((col % 8) == 7 && (col+1 < col_max)) printf("\n "); + } + printf("\n"); + if (enc->charsetpage[row+1] == 0) { + /* End a block. */ + printf("};\n"); + } + } + printf("\n"); + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if ("); + for (i = 0; i < enc->ncharsetblocks; i++) { + i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols); + i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols); + if (i > 0) + printf(" || "); + if (i1_min == i1_max) + printf("(c1 == 0x%02x)", i1_min); + else + printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max); + } + printf(") {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if ("); + printf(enc->check_col_expr, "c2"); + printf(") {\n"); + printf(" unsigned int row = "); + printf(enc->byte_row_expr, "c1"); + printf(";\n"); + printf(" unsigned int col = "); + printf(enc->byte_col_expr, "c2"); + printf(";\n"); + printf(" unsigned int i = %d * row + col;\n", enc->cols); + printf(" unsigned short wc = 0xfffd;\n"); + for (i = 0; i < enc->ncharsetblocks; i++) { + printf(" "); + if (i > 0) + printf("} else "); + if (i < enc->ncharsetblocks-1) + printf("if (i < %d) ", enc->charsetblocks[i+1].start); + printf("{\n"); + printf(" if (i < %d)\n", enc->charsetblocks[i].end); + printf(" wc = %s_2uni_main_page%02x[%d*", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols), steps_per_row); + if (enc->charsetblocks[i].start > 0) + printf("(row-%d)", enc->charsetblocks[i].start / enc->cols); + else + printf("row"); + printf("+"); + if (steps_per_row == 2) + printf("(col>=%d?1:0)", stepsize); + else + printf("col/%d", stepsize); + printf("] + %s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols)); + if (enc->charsetblocks[i].start > 0) + printf("-%d", enc->charsetblocks[i].start); + printf("];\n"); + } + printf(" }\n"); + printf(" if (wc != 0xfffd) {\n"); + printf(" *pwc = (ucs4_t) wc;\n"); + printf(" return 2;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + printf("\n"); +} + +/* + * Computes the uni2charset[0x0000..0x2ffff] array. + */ +static void invert (Encoding* enc) +{ + int row, col, j; + + enc->uni2charset = (int*) malloc(0x30000*sizeof(int)); + + for (j = 0; j < 0x30000; j++) + enc->uni2charset[j] = 0; + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + enc->uni2charset[j] = 0x100 * enc->row_byte(row) + enc->col_byte(col); + } +} + +/* + * Outputs the unicode to charset table and function, using a linear array. + * (Suitable if the table is dense.) + */ +static void output_uni2charset_dense (const char* name, Encoding* enc) +{ + /* Like in 8bit_tab_to_h.c */ + bool pages[0x300]; + int line[0x6000]; + int tableno; + struct { int minline; int maxline; int usecount; } tables[0x6000]; + bool first; + int row, col, j, p, j1, j2, t; + + for (p = 0; p < 0x300; p++) + pages[p] = false; + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + pages[j>>8] = true; + } + for (j1 = 0; j1 < 0x6000; j1++) { + bool all_invalid = true; + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + if (enc->uni2charset[j] != 0) + all_invalid = false; + } + if (all_invalid) + line[j1] = -1; + else + line[j1] = 0; + } + tableno = 0; + for (j1 = 0; j1 < 0x6000; j1++) { + if (line[j1] >= 0) { + if (tableno > 0 + && ((j1 > 0 && line[j1-1] == tableno-1) + || ((tables[tableno-1].maxline >> 5) == (j1 >> 5) + && j1 - tables[tableno-1].maxline <= 8))) { + line[j1] = tableno-1; + tables[tableno-1].maxline = j1; + } else { + tableno++; + line[j1] = tableno-1; + tables[tableno-1].minline = tables[tableno-1].maxline = j1; + } + } + } + for (t = 0; t < tableno; t++) { + tables[t].usecount = 0; + j1 = 8*tables[t].minline; + j2 = 8*(tables[t].maxline+1); + for (j = j1; j < j2; j++) + if (enc->uni2charset[j] != 0) + tables[t].usecount++; + } + { + p = -1; + for (t = 0; t < tableno; t++) + if (tables[t].usecount > 1) { + p = tables[t].minline >> 5; + printf("static const unsigned short %s_page%02x[%d] = {\n", name, p, 8*(tables[t].maxline-tables[t].minline+1)); + for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) { + if ((j1 % 0x20) == 0 && j1 > tables[t].minline) + printf(" /* 0x%04x */\n", 8*j1); + printf(" "); + for (j2 = 0; j2 < 8; j2++) { + j = 8*j1+j2; + printf(" 0x%04x,", enc->uni2charset[j]); + } + printf(" /*0x%02x-0x%02x*/\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7); + } + printf("};\n"); + } + if (p >= 0) + printf("\n"); + } + printf("static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)\n", name); + printf("{\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned short c = 0;\n"); + first = true; + for (j1 = 0; j1 < 0x6000;) { + t = line[j1]; + for (j2 = j1; j2 < 0x6000 && line[j2] == t; j2++); + if (t >= 0) { + if (j1 != tables[t].minline) abort(); + if (j2 > tables[t].maxline+1) abort(); + j2 = tables[t].maxline+1; + if (first) + printf(" "); + else + printf(" else "); + first = false; + if (tables[t].usecount == 0) abort(); + if (tables[t].usecount == 1) { + if (j2 != j1+1) abort(); + for (j = 8*j1; j < 8*j2; j++) + if (enc->uni2charset[j] != 0) { + printf("if (wc == 0x%04x)\n c = 0x%02x;\n", j, enc->uni2charset[j]); + break; + } + } else { + if (j1 == 0) { + printf("if (wc < 0x%04x)", 8*j2); + } else { + printf("if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2); + } + printf("\n c = %s_page%02x[wc", name, j1 >> 5); + if (tables[t].minline > 0) + printf("-0x%04x", 8*j1); + printf("];\n"); + } + } + j1 = j2; + } + printf(" if (c != 0) {\n"); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* + * Outputs the unicode to charset table and function, using a packed array. + * (Suitable if the table is sparse.) + * The argument 'monotonic' may be set to true if the mapping is monotonically + * increasing with small gaps only. + */ +static void output_uni2charset_sparse (const char* name, Encoding* enc, bool monotonic) +{ + bool pages[0x300]; + Block pageblocks[0x300]; int npageblocks; + int indx2charset[0x30000]; + int summary_indx[0x3000]; + int summary_used[0x3000]; + int i, row, col, j, p, j1, j2, indx; + bool is_large; + /* for monotonic: */ + int log2_stepsize = (!strcmp(name,"uhc_2") ? 6 : 7); + int stepsize = 1 << log2_stepsize; + int indxsteps; + + /* Fill pages[0x300]. */ + for (p = 0; p < 0x300; p++) + pages[p] = false; + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) { + j = enc->charset2uni[row][col]; + if (j != 0xfffd) + pages[j>>8] = true; + } + + /* Determine whether two or three bytes are needed for each character. */ + is_large = false; + for (j = 0; j < 0x30000; j++) + if (enc->uni2charset[j] >= 0x10000) + is_large = true; + +#if 0 + for (p = 0; p < 0x300; p++) + if (pages[p]) { + printf("static const unsigned short %s_page%02x[256] = {\n", name, p); + for (j1 = 0; j1 < 32; j1++) { + printf(" "); + for (j2 = 0; j2 < 8; j2++) + printf("0x%04x, ", enc->uni2charset[256*p+8*j1+j2]); + printf("/""*0x%02x-0x%02x*""/\n", 8*j1, 8*j1+7); + } + printf("};\n"); + } + printf("\n"); +#endif + + /* Fill summary_indx[] and summary_used[]. */ + indx = 0; + for (j1 = 0; j1 < 0x3000; j1++) { + summary_indx[j1] = indx; + summary_used[j1] = 0; + for (j2 = 0; j2 < 16; j2++) { + j = 16*j1+j2; + if (enc->uni2charset[j] != 0) { + indx2charset[indx++] = enc->uni2charset[j]; + summary_used[j1] |= (1 << j2); + } + } + } + + /* Fill npageblocks and pageblocks[]. */ + npageblocks = 0; + for (p = 0; p < 0x300; ) { + if (pages[p] && (p == 0 || !pages[p-1])) { + pageblocks[npageblocks].start = 16*p; + do p++; while (p < 0x300 && pages[p]); + j1 = 16*p; + while (summary_used[j1-1] == 0) j1--; + pageblocks[npageblocks].end = j1; + npageblocks++; + } else + p++; + } + + if (monotonic) { + indxsteps = (indx + stepsize-1) / stepsize; + printf("static const unsigned short %s_2charset_main[%d] = {\n", name, indxsteps); + for (i = 0; i < indxsteps; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%04x,", indx2charset[i*stepsize]); + i++; + if ((i % 8) == 0 || i == indxsteps) printf("\n"); + } + printf("};\n"); + printf("static const unsigned char %s_2charset[%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%02x,", indx2charset[i] - indx2charset[i/stepsize*stepsize]); + i++; + if ((i % 8) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } else { + if (is_large) { + printf("static const unsigned char %s_2charset[3*%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 4) == 0) printf(" "); + printf(" 0x%1x,0x%02x,0x%02x,", indx2charset[i] >> 16, + (indx2charset[i] >> 8) & 0xff, indx2charset[i] & 0xff); + i++; + if ((i % 4) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } else { + printf("static const unsigned short %s_2charset[%d] = {\n", name, indx); + for (i = 0; i < indx; ) { + if ((i % 8) == 0) printf(" "); + printf(" 0x%04x,", indx2charset[i]); + i++; + if ((i % 8) == 0 || i == indx) printf("\n"); + } + printf("};\n"); + } + } + printf("\n"); + for (i = 0; i < npageblocks; i++) { + printf("static const Summary16 %s_uni2indx_page%02x[%d] = {\n", name, + pageblocks[i].start/16, pageblocks[i].end-pageblocks[i].start); + for (j1 = pageblocks[i].start; j1 < pageblocks[i].end; ) { + if (((16*j1) % 0x100) == 0) printf(" /""* 0x%04x *""/\n", 16*j1); + if ((j1 % 4) == 0) printf(" "); + printf(" { %4d, 0x%04x },", summary_indx[j1], summary_used[j1]); + j1++; + if ((j1 % 4) == 0 || j1 == pageblocks[i].end) printf("\n"); + } + printf("};\n"); + } + printf("\n"); + + printf("static int\n"); + printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)\n", name); + printf("{\n"); + printf(" if (n >= 2) {\n"); + printf(" const Summary16 *summary = NULL;\n"); + for (i = 0; i < npageblocks; i++) { + printf(" "); + if (i > 0) + printf("else "); + printf("if (wc >= 0x%04x && wc < 0x%04x)\n", + 16*pageblocks[i].start, 16*pageblocks[i].end); + printf(" summary = &%s_uni2indx_page%02x[(wc>>4)", name, + pageblocks[i].start/16); + if (pageblocks[i].start > 0) + printf("-0x%03x", pageblocks[i].start); + printf("];\n"); + } + printf(" if (summary) {\n"); + printf(" unsigned short used = summary->used;\n"); + printf(" unsigned int i = wc & 0x0f;\n"); + printf(" if (used & ((unsigned short) 1 << i)) {\n"); + if (monotonic || !is_large) + printf(" unsigned short c;\n"); + printf(" /* Keep in 'used' only the bits 0..i-1. */\n"); + printf(" used &= ((unsigned short) 1 << i) - 1;\n"); + printf(" /* Add 'summary->indx' and the number of bits set in 'used'. */\n"); + printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n"); + printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n"); + printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n"); + printf(" used = (used & 0x00ff) + (used >> 8);\n"); + if (monotonic) { + printf(" used += summary->indx;\n"); + printf(" c = %s_2charset_main[used>>%d] + %s_2charset[used];\n", name, log2_stepsize, name); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + } else { + if (is_large) { + printf(" used += summary->indx;\n"); + printf(" r[0] = %s_2charset[3*used];\n", name); + printf(" r[1] = %s_2charset[3*used+1];\n", name); + printf(" r[2] = %s_2charset[3*used+2];\n", name); + printf(" return 3;\n"); + } else { + printf(" c = %s_2charset[summary->indx + used];\n", name); + printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n"); + printf(" return 2;\n"); + } + } + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* ISO-2022/EUC specifics */ + +static int row_byte_normal (int row) { return 0x21+row; } +static int col_byte_normal (int col) { return 0x21+col; } +static int byte_row_normal (int byte) { return byte-0x21; } +static int byte_col_normal (int byte) { return byte-0x21; } + +static void do_normal (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* Note: On first sight, the jisx0212_2charset[] table seems to be in order, + starting from the charset=0x3021/uni=0x4e02 pair. But it's only mostly in + order. There are 75 out-of-order values, scattered all throughout the table. + */ + +static void do_normal_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +/* CNS 11643 specifics - trick to put two tables into one */ + +static int row_byte_cns11643 (int row) { + return 0x100 * (row / 94) + (row % 94) + 0x21; +} +static int byte_row_cns11643 (int byte) { + return (byte >> 8) * 94 + (byte & 0xff) - 0x21; +} + +static void do_cns11643_only_uni2charset (const char* name) +{ + Encoding enc; + + enc.rows = 16*94; + enc.cols = 94; + enc.row_byte = row_byte_cns11643; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_cns11643; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table(&enc); + invert(&enc); + output_uni2charset_sparse(name,&enc,false); +} + +/* GBK specifics */ + +static int row_byte_gbk1 (int row) { + return 0x81+row; +} +static int col_byte_gbk1 (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_gbk1 (int byte) { + if (byte >= 0x81 && byte < 0xff) + return byte-0x81; + else + return -1; +} +static int byte_col_gbk1 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xff) + return byte-0x41; + else + return -1; +} + +static void do_gbk1 (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_dense(name,&enc); +} + +static void do_gbk1_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +static int row_byte_gbk2 (int row) { + return 0x81+row; +} +static int col_byte_gbk2 (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_gbk2 (int byte) { + if (byte >= 0x81 && byte < 0xff) + return byte-0x81; + else + return -1; +} +static int byte_col_gbk2 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xa1) + return byte-0x41; + else + return -1; +} + +static void do_gbk2_only_charset2uni (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 96; + enc.row_byte = row_byte_gbk2; + enc.col_byte = col_byte_gbk2; + enc.byte_row = byte_row_gbk2; + enc.byte_col = byte_col_gbk2; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xa1)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); +} + +static void do_gbk1_only_uni2charset (const char* name) +{ + Encoding enc; + + enc.rows = 126; + enc.cols = 190; + enc.row_byte = row_byte_gbk1; + enc.col_byte = col_byte_gbk1; + enc.byte_row = byte_row_gbk1; + enc.byte_col = byte_col_gbk1; + enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* KSC 5601 specifics */ + +/* + * Reads the charset2uni table from standard input. + */ +static void read_table_ksc5601 (Encoding* enc) +{ + int row, col, i, i1, i2, c, j; + + enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*)); + for (row = 0; row < enc->rows; row++) + enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int)); + + for (row = 0; row < enc->rows; row++) + for (col = 0; col < enc->cols; col++) + enc->charset2uni[row][col] = 0xfffd; + + c = getc(stdin); + ungetc(c,stdin); + if (c == '#') { + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &j) != 1) + exit(1); + i1 = j >> 8; + i2 = j & 0xff; + if (scanf(" 0x%x", &j) != 1) + exit(1); + /* Take only the range covered by KS C 5601.1987-0 = KS C 5601.1989-0 + = KS X 1001.1992, ignore the rest. */ + if (!(i1 >= 128+33 && i1 < 128+127 && i2 >= 128+33 && i2 < 128+127)) + continue; /* KSC5601 specific */ + i1 &= 0x7f; /* KSC5601 specific */ + i2 &= 0x7f; /* KSC5601 specific */ + row = enc->byte_row(i1); + col = enc->byte_col(i2); + if (row < 0 || col < 0) { + fprintf(stderr, "lost entry for %02x %02x\n", i1, i2); + exit(1); + } + enc->charset2uni[row][col] = j; + } + } else { + /* Read a table of hexadecimal Unicode values. */ + for (i1 = 33; i1 < 127; i1++) + for (i2 = 33; i2 < 127; i2++) { + i = scanf("%x", &j); + if (i == EOF) + goto read_done; + if (i != 1) + exit(1); + if (j < 0 || j == 0xffff) + j = 0xfffd; + if (j != 0xfffd) { + if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) { + fprintf(stderr, "lost entry at %02x %02x\n", i1, i2); + exit (1); + } + enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j; + } + } + read_done: ; + } +} + +static void do_ksc5601 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 94; + enc.row_byte = row_byte_normal; + enc.col_byte = col_byte_normal; + enc.byte_row = byte_row_normal; + enc.byte_col = byte_col_normal; + enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f"; + enc.byte_row_expr = "%1$s - 0x21"; + enc.byte_col_expr = "%1$s - 0x21"; + + read_table_ksc5601(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* UHC specifics */ + +/* UHC part 1: 0x{81..A0}{41..5A,61..7A,81..FE} */ + +static int row_byte_uhc_1 (int row) { + return 0x81 + row; +} +static int col_byte_uhc_1 (int col) { + return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col; +} +static int byte_row_uhc_1 (int byte) { + if (byte >= 0x81 && byte < 0xa1) + return byte-0x81; + else + return -1; +} +static int byte_col_uhc_1 (int byte) { + if (byte >= 0x41 && byte < 0x5b) + return byte-0x41; + else if (byte >= 0x61 && byte < 0x7b) + return byte-0x47; + else if (byte >= 0x81 && byte < 0xff) + return byte-0x4d; + else + return -1; +} + +static void do_uhc_1 (const char* name) +{ + Encoding enc; + + enc.rows = 32; + enc.cols = 178; + enc.row_byte = row_byte_uhc_1; + enc.col_byte = col_byte_uhc_1; + enc.byte_row = byte_row_uhc_1; + enc.byte_col = byte_col_uhc_1; + enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa1)"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x81"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)"; + + read_table(&enc); + output_charset2uni_noholes_monotonic(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,true); +} + +/* UHC part 2: 0x{A1..C6}{41..5A,61..7A,81..A0} */ + +static int row_byte_uhc_2 (int row) { + return 0xa1 + row; +} +static int col_byte_uhc_2 (int col) { + return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col; +} +static int byte_row_uhc_2 (int byte) { + if (byte >= 0xa1 && byte < 0xff) + return byte-0xa1; + else + return -1; +} +static int byte_col_uhc_2 (int byte) { + if (byte >= 0x41 && byte < 0x5b) + return byte-0x41; + else if (byte >= 0x61 && byte < 0x7b) + return byte-0x47; + else if (byte >= 0x81 && byte < 0xa1) + return byte-0x4d; + else + return -1; +} + +static void do_uhc_2 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 84; + enc.row_byte = row_byte_uhc_2; + enc.col_byte = col_byte_uhc_2; + enc.byte_row = byte_row_uhc_2; + enc.byte_col = byte_col_uhc_2; + enc.check_row_expr = "(%1$s >= 0xa1 && %1$s < 0xff)"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xa1)"; + enc.byte_row_expr = "%1$s - 0xa1"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)"; + + read_table(&enc); + output_charset2uni_noholes_monotonic(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,true); +} + +/* Big5 specifics */ + +static int row_byte_big5 (int row) { + return 0xa1+row; +} +static int col_byte_big5 (int col) { + return (col >= 0x3f ? 0x62 : 0x40) + col; +} +static int byte_row_big5 (int byte) { + if (byte >= 0xa1 && byte < 0xff) + return byte-0xa1; + else + return -1; +} +static int byte_col_big5 (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0xa1 && byte < 0xff) + return byte-0x62; + else + return -1; +} + +static void do_big5 (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 157; + enc.row_byte = row_byte_big5; + enc.col_byte = col_byte_big5; + enc.byte_row = byte_row_big5; + enc.byte_col = byte_col_big5; + enc.check_row_expr = "%1$s >= 0xa1 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0xa1"; + enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* HKSCS specifics */ + +static int row_byte_hkscs (int row) { + return 0x80+row; +} +static int byte_row_hkscs (int byte) { + if (byte >= 0x80 && byte < 0xff) + return byte-0x80; + else + return -1; +} + +static void do_hkscs (const char* name) +{ + Encoding enc; + + enc.rows = 128; + enc.cols = 157; + enc.row_byte = row_byte_hkscs; + enc.col_byte = col_byte_big5; + enc.byte_row = byte_row_hkscs; + enc.byte_col = byte_col_big5; + enc.check_row_expr = "%1$s >= 0x80 && %1$s < 0xff"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x80"; + enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* Johab Hangul specifics */ + +static int row_byte_johab_hangul (int row) { + return 0x84+row; +} +static int col_byte_johab_hangul (int col) { + return (col >= 0x3e ? 0x43 : 0x41) + col; +} +static int byte_row_johab_hangul (int byte) { + if (byte >= 0x84 && byte < 0xd4) + return byte-0x84; + else + return -1; +} +static int byte_col_johab_hangul (int byte) { + if (byte >= 0x41 && byte < 0x7f) + return byte-0x41; + else if (byte >= 0x81 && byte < 0xff) + return byte-0x43; + else + return -1; +} + +static void do_johab_hangul (const char* name) +{ + Encoding enc; + + enc.rows = 80; + enc.cols = 188; + enc.row_byte = row_byte_johab_hangul; + enc.col_byte = col_byte_johab_hangul; + enc.byte_row = byte_row_johab_hangul; + enc.byte_col = byte_col_johab_hangul; + enc.check_row_expr = "%1$s >= 0x84 && %1$s < 0xd4"; + enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x7f) || (%1$s >= 0x81 && %1$s < 0xff)"; + enc.byte_row_expr = "%1$s - 0x84"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x43 : 0x41)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_dense(name,&enc); +} + +/* SJIS specifics */ + +static int row_byte_sjis (int row) { + return (row >= 0x1f ? 0xc1 : 0x81) + row; +} +static int col_byte_sjis (int col) { + return (col >= 0x3f ? 0x41 : 0x40) + col; +} +static int byte_row_sjis (int byte) { + if (byte >= 0x81 && byte < 0xa0) + return byte-0x81; + else if (byte >= 0xe0) + return byte-0xc1; + else + return -1; +} +static int byte_col_sjis (int byte) { + if (byte >= 0x40 && byte < 0x7f) + return byte-0x40; + else if (byte >= 0x80 && byte < 0xfd) + return byte-0x41; + else + return -1; +} + +static void do_sjis (const char* name) +{ + Encoding enc; + + enc.rows = 94; + enc.cols = 188; + enc.row_byte = row_byte_sjis; + enc.col_byte = col_byte_sjis; + enc.byte_row = byte_row_sjis; + enc.byte_col = byte_col_sjis; + enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa0) || (%1$s >= 0xe0)"; + enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xfd)"; + enc.byte_row_expr = "%1$s - (%1$s >= 0xe0 ? 0xc1 : 0x81)"; + enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)"; + + read_table(&enc); + output_charset2uni(name,&enc); + invert(&enc); output_uni2charset_sparse(name,&enc,false); +} + +/* GB18030 Unicode specifics */ + +static void do_gb18030uni (const char* name) +{ + int c; + unsigned int bytes; + int i1, i2, i3, i4, i, j, k; + int charset2uni[4*10*126*10]; + int uni2charset[0x10000]; + struct { int low; int high; int diff; int total; } ranges[256]; + int ranges_count, ranges_total; + + for (i = 0; i < 4*10*126*10; i++) + charset2uni[i] = 0; + for (j = 0; j < 0x10000; j++) + uni2charset[j] = 0; + + /* Read a unicode.org style .TXT file. */ + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("0x%x", &bytes) != 1) + exit(1); + i1 = (bytes >> 24) & 0xff; + i2 = (bytes >> 16) & 0xff; + i3 = (bytes >> 8) & 0xff; + i4 = bytes & 0xff; + if (!(i1 >= 0x81 && i1 <= 0x84 + && i2 >= 0x30 && i2 <= 0x39 + && i3 >= 0x81 && i3 <= 0xfe + && i4 >= 0x30 && i4 <= 0x39)) { + fprintf(stderr, "lost entry for %02x %02x %02x %02x\n", i1, i2, i3, i4); + exit(1); + } + i = (((i1-0x81) * 10 + (i2-0x30)) * 126 + (i3-0x81)) * 10 + (i4-0x30); + if (scanf(" 0x%x", &j) != 1) + exit(1); + if (!(j >= 0 && j < 0x10000)) + exit(1); + charset2uni[i] = j; + uni2charset[j] = i; + } + + /* Verify that the mapping i -> j is monotonically increasing and + of the form + low[k] <= i <= high[k] => j = diff[k] + i + with a set of disjoint intervals (low[k], high[k]). */ + ranges_count = 0; + for (i = 0; i < 4*10*126*10; i++) + if (charset2uni[i] != 0) { + int diff; + j = charset2uni[i]; + diff = j - i; + if (ranges_count > 0) { + if (!(i > ranges[ranges_count-1].high)) + exit(1); + if (!(j > ranges[ranges_count-1].high + ranges[ranges_count-1].diff)) + exit(1); + /* Additional property: The diffs are also increasing. */ + if (!(diff >= ranges[ranges_count-1].diff)) + exit(1); + } + if (ranges_count > 0 && diff == ranges[ranges_count-1].diff) + ranges[ranges_count-1].high = i; + else { + if (ranges_count == 256) + exit(1); + ranges[ranges_count].low = i; + ranges[ranges_count].high = i; + ranges[ranges_count].diff = diff; + ranges_count++; + } + } + + /* Determine size of bitmap. */ + ranges_total = 0; + for (k = 0; k < ranges_count; k++) { + ranges[k].total = ranges_total; + ranges_total += ranges[k].high - ranges[k].low + 1; + } + + printf("static const unsigned short %s_charset2uni_ranges[%d] = {\n", name, 2*ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" 0x%04x, 0x%04x", ranges[k].low, ranges[k].high); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n"); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const unsigned short %s_uni2charset_ranges[%d] = {\n", name, 2*ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" 0x%04x, 0x%04x", ranges[k].low + ranges[k].diff, ranges[k].high + ranges[k].diff); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n"); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const struct { unsigned short diff; unsigned short bitmap_offset; } %s_ranges[%d] = {\n ", name, ranges_count); + for (k = 0; k < ranges_count; k++) { + printf(" { %5d, 0x%04x }", ranges[k].diff, ranges[k].total); + if (k+1 < ranges_count) printf(","); + if ((k % 4) == 3 && k+1 < ranges_count) printf("\n "); + } + printf("\n"); + printf("};\n"); + + printf("\n"); + + printf("static const unsigned char %s_bitmap[%d] = {\n ", name, (ranges_total + 7) / 8); + { + int accu = 0; + for (k = 0; k < ranges_count; k++) { + for (i = ranges[k].total; i <= ranges[k].total + (ranges[k].high - ranges[k].low);) { + if (charset2uni[i - ranges[k].total + ranges[k].low] != 0) + accu |= (1 << (i % 8)); + i++; + if ((i % 8) == 0) { + printf(" 0x%02x", accu); + if ((i / 8) < (ranges_total + 7) / 8) printf(","); + if (((i / 8) % 12) == 0) + printf("\n "); + accu = 0; + } + } + if (i != (k+1 < ranges_count ? ranges[k+1].total : ranges_total)) abort(); + } + if ((ranges_total % 8) != 0) + printf(" 0x%02x", accu); + printf("\n"); + } + printf("};\n"); + + printf("\n"); + + printf("static int\n"); + printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n)\n", name); + printf("{\n"); + printf(" unsigned char c1 = s[0];\n"); + printf(" if (c1 >= 0x81 && c1 <= 0x84) {\n"); + printf(" if (n >= 2) {\n"); + printf(" unsigned char c2 = s[1];\n"); + printf(" if (c2 >= 0x30 && c2 <= 0x39) {\n"); + printf(" if (n >= 3) {\n"); + printf(" unsigned char c3 = s[2];\n"); + printf(" if (c3 >= 0x81 && c3 <= 0xfe) {\n"); + printf(" if (n >= 4) {\n"); + printf(" unsigned char c4 = s[3];\n"); + printf(" if (c4 >= 0x30 && c4 <= 0x39) {\n"); + printf(" unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30);\n"); + printf(" if (i >= %d && i <= %d) {\n", ranges[0].low, ranges[ranges_count-1].high); + printf(" unsigned int k1 = 0;\n"); + printf(" unsigned int k2 = %d;\n", ranges_count-1); + printf(" while (k1 < k2) {\n"); + printf(" unsigned int k = (k1 + k2) / 2;\n"); + printf(" if (i <= %s_charset2uni_ranges[2*k+1])\n", name); + printf(" k2 = k;\n"); + printf(" else if (i >= %s_charset2uni_ranges[2*k+2])\n", name); + printf(" k1 = k + 1;\n"); + printf(" else\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" {\n"); + printf(" unsigned int bitmap_index = i - %s_charset2uni_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name); + printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name); + printf(" unsigned int diff = %s_ranges[k1].diff;\n", name); + printf(" *pwc = (ucs4_t) (i + diff);\n"); + printf(" return 4;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf(" }\n"); + printf(" return RET_TOOFEW(0);\n"); + printf(" }\n"); + printf(" return RET_ILSEQ;\n"); + printf("}\n"); + + printf("\n"); + + printf("static int\n"); + printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)\n", name); + printf("{\n"); + printf(" if (n >= 4) {\n"); + printf(" unsigned int i = wc;\n"); + printf(" if (i >= 0x%04x && i <= 0x%04x) {\n", ranges[0].low + ranges[0].diff, ranges[ranges_count-1].high + ranges[ranges_count-1].diff); + printf(" unsigned int k1 = 0;\n"); + printf(" unsigned int k2 = %d;\n", ranges_count-1); + printf(" while (k1 < k2) {\n"); + printf(" unsigned int k = (k1 + k2) / 2;\n"); + printf(" if (i <= %s_uni2charset_ranges[2*k+1])\n", name); + printf(" k2 = k;\n"); + printf(" else if (i >= %s_uni2charset_ranges[2*k+2])\n", name); + printf(" k1 = k + 1;\n"); + printf(" else\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" {\n"); + printf(" unsigned int bitmap_index = i - %s_uni2charset_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name); + printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name); + printf(" unsigned int diff = %s_ranges[k1].diff;\n", name); + printf(" i -= diff;\n"); + printf(" r[3] = (i %% 10) + 0x30; i = i / 10;\n"); + printf(" r[2] = (i %% 126) + 0x81; i = i / 126;\n"); + printf(" r[1] = (i %% 10) + 0x30; i = i / 10;\n"); + printf(" r[0] = i + 0x81;\n"); + printf(" return 4;\n"); + printf(" }\n"); + printf(" }\n"); + printf(" }\n"); + printf(" return RET_ILUNI;\n"); + printf(" }\n"); + printf(" return RET_TOOSMALL;\n"); + printf("}\n"); +} + +/* JISX0213 specifics */ + +static void do_jisx0213 (const char* name) +{ + printf("#ifndef _JISX0213_H\n"); + printf("#define _JISX0213_H\n"); + printf("\n"); + printf("/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range\n"); + printf(" 0x{21..7E}{21..7E}.\n"); + printf(" JISX0213 plane 2 (= ISO-IR-229) characters are in the range\n"); + printf(" 0x{21,23..25,28,2C..2F,6E..7E}{21..7E}.\n"); + printf(" Together this makes 120 rows of 94 characters.\n"); + printf("*/\n"); + printf("\n"); + { +#define row_convert(row) \ + ((row) >= 0x121 && (row) <= 0x17E ? row-289 : /* 0..93 */ \ + (row) == 0x221 ? row-451 : /* 94 */ \ + (row) >= 0x223 && (row) <= 0x225 ? row-452 : /* 95..97 */ \ + (row) == 0x228 ? row-454 : /* 98 */ \ + (row) >= 0x22C && (row) <= 0x22F ? row-457 : /* 99..102 */ \ + (row) >= 0x26E && (row) <= 0x27E ? row-519 : /* 103..119 */ \ + -1) + unsigned int table[120][94]; + int pagemin[0x1100]; + int pagemax[0x1100]; + int pageidx[0x1100]; + unsigned int pagestart[0x1100]; + unsigned int pagestart_len = 0; + { + unsigned int rowc, colc; + for (rowc = 0; rowc < 120; rowc++) + for (colc = 0; colc < 94; colc++) + table[rowc][colc] = 0; + } + { + unsigned int page; + for (page = 0; page < 0x1100; page++) + pagemin[page] = -1; + for (page = 0; page < 0x1100; page++) + pagemax[page] = -1; + for (page = 0; page < 0x1100; page++) + pageidx[page] = -1; + } + printf("static const unsigned short jisx0213_to_ucs_combining[][2] = {\n"); + { + int private_use = 0x0001; + for (;;) { + char line[30]; + unsigned int row, col; + unsigned int ucs; + memset(line,0,sizeof(line)); + if (scanf("%[^\n]\n",line) < 1) + break; + assert(line[0]=='0'); + assert(line[1]=='x'); + assert(isxdigit(line[2])); + assert(isxdigit(line[3])); + assert(isxdigit(line[4])); + assert(isxdigit(line[5])); + assert(isxdigit(line[6])); + assert(line[7]=='\t'); + line[7] = '\0'; + col = strtoul(&line[5],NULL,16); + line[5] = '\0'; + row = strtoul(&line[2],NULL,16); + if (line[20] != '\0' && line[21] == '\0') { + unsigned int u1, u2; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + assert(line[14]==' '); + assert(line[15]=='0'); + assert(line[16]=='x'); + assert(isxdigit(line[17])); + assert(isxdigit(line[18])); + assert(isxdigit(line[19])); + assert(isxdigit(line[20])); + u2 = strtoul(&line[17],NULL,16); + line[14] = '\0'; + u1 = strtoul(&line[10],NULL,16); + printf(" { 0x%04x, 0x%04x },\n", u1, u2); + ucs = private_use++; + } else { + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + ucs = strtoul(&line[10],NULL,16); + } + assert((unsigned int) row_convert(row) < 120); + assert((unsigned int) (col-0x21) < 94); + table[row_convert(row)][col-0x21] = ucs; + } + } + printf("};\n"); + printf("\n"); + { + unsigned int rowc, colc; + for (rowc = 0; rowc < 120; rowc++) { + for (colc = 0; colc < 94; colc++) { + unsigned int value = table[rowc][colc]; + unsigned int page = value >> 8; + unsigned int rest = value & 0xff; + if (pagemin[page] < 0 || pagemin[page] > rest) pagemin[page] = rest; + if (pagemax[page] < 0 || pagemax[page] < rest) pagemax[page] = rest; + } + } + } + { + unsigned int index = 0; + unsigned int i; + for (i = 0; i < 0x1100; ) { + if (pagemin[i] >= 0) { + if (pagemin[i+1] >= 0 && pagemin[i] >= 0x80 && pagemax[i+1] < 0x80) { + /* Combine two pages into a single one. */ + assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0])); + pagestart[pagestart_len++] = (i<<8)+0x80; + pageidx[i] = index; + pageidx[i+1] = index; + index++; + i += 2; + } else { + /* A single page. */ + assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0])); + pagestart[pagestart_len++] = i<<8; + pageidx[i] = index; + index++; + i += 1; + } + } else + i++; + } + } + printf("static const unsigned short jisx0213_to_ucs_main[120 * 94] = {\n"); + { + unsigned int row; + for (row = 0; row < 0x300; row++) { + unsigned int rowc = row_convert(row); + if (rowc != (unsigned int) (-1)) { + printf(" /* 0x%X21..0x%X7E */\n",row,row); + { + unsigned int count = 0; + unsigned int colc; + for (colc = 0; colc < 94; colc++) { + if ((count % 8) == 0) printf(" "); + { + unsigned int value = table[rowc][colc]; + unsigned int page = value >> 8; + unsigned int index = pageidx[page]; + assert(value-pagestart[index] < 0x100); + printf(" 0x%04x,",(index<<8)|(value-pagestart[index])); + } + count++; + if ((count % 8) == 0) printf("\n"); + } + } + printf("\n"); + } + } + } + printf("};\n"); + printf("\n"); + printf("static const ucs4_t jisx0213_to_ucs_pagestart[] = {\n"); + { + unsigned int count = 0; + unsigned int i; + for (i = 0; i < pagestart_len; i++) { + char buf[10]; + if ((count % 8) == 0) printf(" "); + printf(" "); + sprintf(buf,"0x%04x",pagestart[i]); + if (strlen(buf) < 7) printf("%*s",(int)(7-strlen(buf)),""); + printf("%s,",buf); + count++; + if ((count % 8) == 0) printf("\n"); + } + } + printf("\n"); + printf("};\n"); +#undef row_convert + } + rewind(stdin); + printf("\n"); + { + int table[0x110000]; + bool pages[0x4400]; + int maxpage = -1; + unsigned int combining_prefixes[100]; + unsigned int combining_prefixes_len = 0; + { + unsigned int i; + for (i = 0; i < 0x110000; i++) + table[i] = -1; + for (i = 0; i < 0x4400; i++) + pages[i] = false; + } + for (;;) { + char line[30]; + unsigned int plane, row, col; + memset(line,0,sizeof(line)); + if (scanf("%[^\n]\n",line) < 1) + break; + assert(line[0]=='0'); + assert(line[1]=='x'); + assert(isxdigit(line[2])); + assert(isxdigit(line[3])); + assert(isxdigit(line[4])); + assert(isxdigit(line[5])); + assert(isxdigit(line[6])); + assert(line[7]=='\t'); + line[7] = '\0'; + col = strtoul(&line[5],NULL,16); + line[5] = '\0'; + row = strtoul(&line[3],NULL,16); + line[3] = '\0'; + plane = strtoul(&line[2],NULL,16) - 1; + if (line[20] != '\0' && line[21] == '\0') { + unsigned int u1, u2; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + assert(line[14]==' '); + assert(line[15]=='0'); + assert(line[16]=='x'); + assert(isxdigit(line[17])); + assert(isxdigit(line[18])); + assert(isxdigit(line[19])); + assert(isxdigit(line[20])); + u2 = strtoul(&line[17],NULL,16); + line[14] = '\0'; + u1 = strtoul(&line[10],NULL,16); + assert(u2 == 0x02E5 || u2 == 0x02E9 || u2 == 0x0300 || u2 == 0x0301 + || u2 == 0x309A); + assert(combining_prefixes_len < sizeof(combining_prefixes)/sizeof(combining_prefixes[0])); + combining_prefixes[combining_prefixes_len++] = u1; + } else { + unsigned int ucs; + assert(line[8]=='0'); + assert(line[9]=='x'); + assert(isxdigit(line[10])); + assert(isxdigit(line[11])); + assert(isxdigit(line[12])); + assert(isxdigit(line[13])); + ucs = strtoul(&line[10],NULL,16); + /* Add an entry. */ + assert(plane <= 1); + assert(row <= 0x7f); + assert(col <= 0x7f); + table[ucs] = (plane << 15) | (row << 8) | col; + pages[ucs>>6] = true; + if (maxpage < 0 || (ucs>>6) > maxpage) maxpage = ucs>>6; + } + } + { + unsigned int i; + for (i = 0; i < combining_prefixes_len; i++) { + unsigned int u1 = combining_prefixes[i]; + assert(table[u1] >= 0); + table[u1] |= 0x0080; + } + } + printf("static const short jisx0213_from_ucs_level1[%d] = {\n",maxpage+1); + { + unsigned int index = 0; + unsigned int i; + for (i = 0; i <= maxpage; i++) { + if ((i % 8) == 0) printf(" "); + if (pages[i]) { + printf(" %3u,",index); + index++; + } else { + printf(" %3d,",-1); + } + if (((i+1) % 8) == 0) printf("\n"); + } + } + printf("\n"); + printf("};\n"); + printf("\n"); + #if 0 /* Dense array */ + printf("static const unsigned short jisx0213_from_ucs_level2[] = {\n"); + { + unsigned int i; + for (i = 0; i <= maxpage; i++) { + if (pages[i]) { + printf(" /* 0x%04X */\n",i<<6); + { + unsigned int j; + for (j = 0; j < 0x40; ) { + unsigned int ucs = (i<<6)+j; + int value = table[ucs]; + if (value < 0) value = 0; + if ((j % 8) == 0) printf(" "); + printf(" 0x%04x,",value); + j++; + if ((j % 8) == 0) printf("\n"); + } + } + } + } + } + printf("};\n"); + #else /* Sparse array */ + { + int summary_indx[0x11000]; + int summary_used[0x11000]; + unsigned int i, k, indx; + printf("static const unsigned short jisx0213_from_ucs_level2_data[] = {\n"); + /* Fill summary_indx[] and summary_used[]. */ + indx = 0; + for (i = 0, k = 0; i <= maxpage; i++) { + if (pages[i]) { + unsigned int j1, j2; + unsigned int count = 0; + printf(" /* 0x%04X */\n",i<<6); + for (j1 = 0; j1 < 4; j1++) { + summary_indx[4*k+j1] = indx; + summary_used[4*k+j1] = 0; + for (j2 = 0; j2 < 16; j2++) { + unsigned int j = 16*j1+j2; + unsigned int ucs = (i<<6)+j; + int value = table[ucs]; + if (value < 0) value = 0; + if (value > 0) { + summary_used[4*k+j1] |= (1 << j2); + if ((count % 8) == 0) printf(" "); + printf(" 0x%04x,",value); + count++; + if ((count % 8) == 0) printf("\n"); + indx++; + } + } + } + if ((count % 8) > 0) + printf("\n"); + k++; + } + } + printf("};\n"); + printf("\n"); + printf("static const Summary16 jisx0213_from_ucs_level2_2indx[] = {\n"); + for (i = 0, k = 0; i <= maxpage; i++) { + if (pages[i]) { + unsigned int j1; + printf(" /* 0x%04X */\n",i<<6); + printf(" "); + for (j1 = 0; j1 < 4; j1++) { + printf(" { %4d, 0x%04x },", summary_indx[4*k+j1], summary_used[4*k+j1]); + } + printf("\n"); + k++; + } + } + printf("};\n"); + } + #endif + printf("\n"); + } + printf("#ifdef __GNUC__\n"); + printf("__inline\n"); + printf("#else\n"); + printf("#ifdef __cplusplus\n"); + printf("inline\n"); + printf("#endif\n"); + printf("#endif\n"); + printf("static ucs4_t jisx0213_to_ucs4 (unsigned int row, unsigned int col)\n"); + printf("{\n"); + printf(" ucs4_t val;\n"); + printf("\n"); + printf(" if (row >= 0x121 && row <= 0x17e)\n"); + printf(" row -= 289;\n"); + printf(" else if (row == 0x221)\n"); + printf(" row -= 451;\n"); + printf(" else if (row >= 0x223 && row <= 0x225)\n"); + printf(" row -= 452;\n"); + printf(" else if (row == 0x228)\n"); + printf(" row -= 454;\n"); + printf(" else if (row >= 0x22c && row <= 0x22f)\n"); + printf(" row -= 457;\n"); + printf(" else if (row >= 0x26e && row <= 0x27e)\n"); + printf(" row -= 519;\n"); + printf(" else\n"); + printf(" return 0x0000;\n"); + printf("\n"); + printf(" if (col >= 0x21 && col <= 0x7e)\n"); + printf(" col -= 0x21;\n"); + printf(" else\n"); + printf(" return 0x0000;\n"); + printf("\n"); + printf(" val = jisx0213_to_ucs_main[row * 94 + col];\n"); + printf(" val = jisx0213_to_ucs_pagestart[val >> 8] + (val & 0xff);\n"); + printf(" if (val == 0xfffd)\n"); + printf(" val = 0x0000;\n"); + printf(" return val;\n"); + printf("}\n"); + printf("\n"); + printf("#ifdef __GNUC__\n"); + printf("__inline\n"); + printf("#else\n"); + printf("#ifdef __cplusplus\n"); + printf("inline\n"); + printf("#endif\n"); + printf("#endif\n"); + printf("static unsigned short ucs4_to_jisx0213 (ucs4_t ucs)\n"); + printf("{\n"); + printf(" if (ucs < (sizeof(jisx0213_from_ucs_level1)/sizeof(jisx0213_from_ucs_level1[0])) << 6) {\n"); + printf(" int index1 = jisx0213_from_ucs_level1[ucs >> 6];\n"); + printf(" if (index1 >= 0)"); + #if 0 /* Dense array */ + printf("\n"); + printf(" return jisx0213_from_ucs_level2[(index1 << 6) + (ucs & 0x3f)];\n"); + #else /* Sparse array */ + printf(" {\n"); + printf(" const Summary16 *summary = &jisx0213_from_ucs_level2_2indx[((index1 << 6) + (ucs & 0x3f)) >> 4];\n"); + printf(" unsigned short used = summary->used;\n"); + printf(" unsigned int i = ucs & 0x0f;\n"); + printf(" if (used & ((unsigned short) 1 << i)) {\n"); + printf(" /* Keep in 'used' only the bits 0..i-1. */\n"); + printf(" used &= ((unsigned short) 1 << i) - 1;\n"); + printf(" /* Add 'summary->indx' and the number of bits set in 'used'. */\n"); + printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n"); + printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n"); + printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n"); + printf(" used = (used & 0x00ff) + (used >> 8);\n"); + printf(" return jisx0213_from_ucs_level2_data[summary->indx + used];\n"); + printf(" };\n"); + printf(" };\n"); + #endif + printf(" }\n"); + printf(" return 0x0000;\n"); + printf("}\n"); + printf("\n"); + printf("#endif /* _JISX0213_H */\n"); +} + +/* Main program */ + +int main (int argc, char *argv[]) +{ + const char* charsetname; + const char* name; + + if (argc != 3) + exit(1); + charsetname = argv[1]; + name = argv[2]; + + output_title(charsetname); + + if (!strcmp(name,"gb2312") + || !strcmp(name,"isoir165ext") || !strcmp(name,"gb12345ext") + || !strcmp(name,"jisx0208") || !strcmp(name,"jisx0212")) + do_normal(name); + else if (!strcmp(name,"cns11643_1") || !strcmp(name,"cns11643_2") + || !strcmp(name,"cns11643_3") || !strcmp(name,"cns11643_4a") + || !strcmp(name,"cns11643_4b") || !strcmp(name,"cns11643_5") + || !strcmp(name,"cns11643_6") || !strcmp(name,"cns11643_7") + || !strcmp(name,"cns11643_15")) + do_normal_only_charset2uni(name); + else if (!strcmp(name,"cns11643_inv")) + do_cns11643_only_uni2charset(name); + else if (!strcmp(name,"gbkext1")) + do_gbk1_only_charset2uni(name); + else if (!strcmp(name,"gbkext2")) + do_gbk2_only_charset2uni(name); + else if (!strcmp(name,"gbkext_inv")) + do_gbk1_only_uni2charset(name); + else if (!strcmp(name,"cp936ext") || !strcmp(name,"gb18030ext")) + do_gbk1(name); + else if (!strcmp(name,"ksc5601")) + do_ksc5601(name); + else if (!strcmp(name,"uhc_1")) + do_uhc_1(name); + else if (!strcmp(name,"uhc_2")) + do_uhc_2(name); + else if (!strcmp(name,"big5") || !strcmp(name,"cp950ext")) + do_big5(name); + else if (!strcmp(name,"hkscs1999") || !strcmp(name,"hkscs2001") + || !strcmp(name,"hkscs2004") || !strcmp(name,"hkscs2008")) + do_hkscs(name); + else if (!strcmp(name,"johab_hangul")) + do_johab_hangul(name); + else if (!strcmp(name,"cp932ext")) + do_sjis(name); + else if (!strcmp(name,"gb18030uni")) + do_gb18030uni(name); + else if (!strcmp(name,"jisx0213")) + do_jisx0213(name); + else + exit(1); + + return 0; +} diff --git a/3rdPartner/libiconv/tools/cjk_variants.c b/3rdPartner/libiconv/tools/cjk_variants.c new file mode 100644 index 0000000..109a45d --- /dev/null +++ b/3rdPartner/libiconv/tools/cjk_variants.c @@ -0,0 +1,124 @@ +/* Copyright (C) 1999-2002, 2012, 2018 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Tools. + + 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 3 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, see . */ + +/* + * Generates Unicode variants table from Koichi Yasuoka's UniVariants file. + */ + +#include +#include + +#define ENTRIES 8176 /* number of lines in UniVariants file */ +#define MAX_PER_ENTRY 10 /* max number of entries per line in file */ + +int main (int argc, char *argv[]) +{ + int variants[MAX_PER_ENTRY*ENTRIES]; + int uni2index[0x10000]; + int index; + + if (argc != 1) + exit(1); + + printf("/*\n"); + printf(" * Copyright (C) 1999-2002 Free Software Foundation, Inc.\n"); + printf(" * This file is part of the GNU LIBICONV Library.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n"); + printf(" * and/or modify it under the terms of the GNU Lesser General Public\n"); + printf(" * License as published by the Free Software Foundation; either version 2\n"); + printf(" * of the License, or (at your option) any later version.\n"); + printf(" *\n"); + printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n"); + printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"); + printf(" * Lesser General Public License for more details.\n"); + printf(" *\n"); + printf(" * You should have received a copy of the GNU Lesser General Public\n"); + printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n"); + printf(" * If not, see .\n"); + printf(" */\n"); + printf("\n"); + printf("/*\n"); + printf(" * CJK variants table\n"); + printf(" */\n"); + printf("\n"); + { + int c; + int j; + for (j = 0; j < 0x10000; j++) + uni2index[j] = -1; + index = 0; + for (;;) { + c = getc(stdin); + if (c == EOF) + break; + if (c == '#') { + do { c = getc(stdin); } while (!(c == EOF || c == '\n')); + continue; + } + ungetc(c,stdin); + if (scanf("%x",&j) != 1) + exit(1); + c = getc(stdin); + if (c != '\t') + exit(1); + uni2index[j] = index; + for (;;) { + int i; + if (scanf("%x",&i) != 1) + exit(1); + if (!(i >= 0x3000 && i < 0x3000+0x8000)) + exit(1); + variants[index++] = i-0x3000; + c = getc(stdin); + if (c != ' ') + break; + } + variants[index-1] |= 0x8000; /* end of list marker */ + if (c != '\n') + exit(1); + } + } + printf("static const unsigned short cjk_variants[%d] = {",index); + { + int i; + for (i = 0; i < index; i++) { + if ((i % 8) == 0) + printf("\n "); + printf(" 0x%04x,",variants[i]); + } + printf("\n};\n"); + } + printf("\n"); + printf("static const short cjk_variants_indx[0x5200] = {\n"); + { + int j; + for (j = 0x4e00; j < 0xa000; j++) { + if ((j % 0x100) == 0) + printf(" /* 0x%04x */\n", j); + if ((j % 8) == 0) + printf(" "); + printf(" %5d,",uni2index[j]); + if ((j % 8) == 7) + printf("\n"); + } + printf("};\n"); + } + printf("\n"); + + return 0; +} diff --git a/3rdPartner/libiconv/windows/iconv.rc b/3rdPartner/libiconv/windows/iconv.rc new file mode 100644 index 0000000..46fe4ac --- /dev/null +++ b/3rdPartner/libiconv/windows/iconv.rc @@ -0,0 +1,38 @@ +/* Resources for iconv.exe */ + +#include + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 + PRODUCTVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 + FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */ +#ifdef _DEBUG + FILEFLAGS 0x1L /* VS_FF_DEBUG */ +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */ + FILETYPE 0x1L /* VFT_APP */ + FILESUBTYPE 0x0L /* VFT2_UNKNOWN */ +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "Comments", "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License. You should have received a copy of the GNU General Public License along with this program. If not, see .\0" + VALUE "CompanyName", "Free Software Foundation\0" + VALUE "FileDescription", "GPLed iconv for Windows\0" + VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" + VALUE "InternalName", "iconv.exe\0" + VALUE "LegalCopyright", "Copyright (C) 1999-2022\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "iconv.exe\0" + VALUE "ProductName", "iconv: character set conversion program\0" + VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END diff --git a/3rdPartner/libiconv/windows/libiconv.rc b/3rdPartner/libiconv/windows/libiconv.rc new file mode 100644 index 0000000..e1469f6 --- /dev/null +++ b/3rdPartner/libiconv/windows/libiconv.rc @@ -0,0 +1,38 @@ +/* Resources for iconv.dll */ + +#include + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 + PRODUCTVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 + FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */ +#ifdef _DEBUG + FILEFLAGS 0x1L /* VS_FF_DEBUG */ +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */ + FILETYPE 0x2L /* VFT_DLL */ + FILESUBTYPE 0x0L /* VFT2_UNKNOWN */ +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see .\0" + VALUE "CompanyName", "Free Software Foundation\0" + VALUE "FileDescription", "LGPLed libiconv for Windows\0" + VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" + VALUE "InternalName", "iconv.dll\0" + VALUE "LegalCopyright", "Copyright (C) 1999-2022\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "iconv.dll\0" + VALUE "ProductName", "libiconv: character set conversion library\0" + VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END diff --git a/3rdPartner/libiconv/windows/windres-options b/3rdPartner/libiconv/windows/windres-options new file mode 100644 index 0000000..779fdde --- /dev/null +++ b/3rdPartner/libiconv/windows/windres-options @@ -0,0 +1,45 @@ +#!/bin/sh +# Usage: windres-options [--escape] PACKAGE_VERSION +# Outputs a set of command-line options for 'windres', containing definitions +# for the preprocessor variables +# PACKAGE_VERSION_STRING +# PACKAGE_VERSION_MAJOR +# PACKAGE_VERSION_MINOR +# PACKAGE_VERSION_SUBMINOR + +escape= +if test "$1" = "--escape"; then + escape=yes + shift +fi +version="$1" # something like 2.0 or 2.17 or 2.17.3 or 2.17.3-pre3 + +sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' +sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} +i\ +0 +q +' + +{ + echo "-DPACKAGE_VERSION_STRING=\"${version}\"" + echo "-DPACKAGE_VERSION_MAJOR="`echo "${version}" | sed -n -e "$sed_extract_major"` + echo "-DPACKAGE_VERSION_MINOR="`echo "${version}" | sed -n -e "$sed_extract_minor"` + echo "-DPACKAGE_VERSION_SUBMINOR="`echo "${version}" | sed -n -e "$sed_extract_subminor"` +} | +{ + if test -n "$escape"; then + sed -e 's,\(["\\]\),\\\1,g' + else + cat + fi +} diff --git a/3rdPartner/libiconv/woe32dll/export.h b/3rdPartner/libiconv/woe32dll/export.h new file mode 100644 index 0000000..e3f25cb --- /dev/null +++ b/3rdPartner/libiconv/woe32dll/export.h @@ -0,0 +1,117 @@ +/* Exporting symbols from Cygwin shared libraries. + Copyright (C) 2006, 2011-2018 Free Software Foundation, Inc. + Written by Bruno Haible , 2006. + + This program 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 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; see the file COPYING.LIB. If not, + see . */ + +/* There are four ways to build shared libraries on Cygwin: + + - Export only functions, no variables. + This has the drawback of severely affecting the programming style in use. + It does not let the programmer use full ANSI C. It lets one platform + dictate the code style on all platforms. This is unacceptable. + + - Use the GNU ld --enable-auto-import option. It is the default on Cygwin + since July 2005. But it has three fatal drawbacks: + - It produces executables and shared libraries with relocations in the + .text segment, defeating the principles of virtual memory. + - For some constructs such as + extern int var; + int * const b = &var; + it creates an executable that will give an error at runtime, rather + than either a compile-time or link-time error or a working executable. + (This is with both gcc and g++.) Whereas this code, not relying on + auto-import: + extern __declspec (dllimport) int var; + int * const b = &var; + gives a compile-time error with gcc and works with g++. + - It doesn't work in some cases (references to a member field of an + exported struct variable, or to a particular element of an exported + array variable), requiring code modifications. Again one platform + dictates code modifications on all platforms. + + This is unacceptable. Therefore we disable this option, through the + woe32-dll.m4 autoconf macro. + + - Define a macro that expands to __declspec(dllexport) when building + the library and to __declspec(dllimport) when building code outside + the library, and use it in all header files of the library. + This is acceptable if + 1. the header files are unique to this library (not shared with + other packages), and + 2. the library sources are contained in one directory, making it easy + to define a -DBUILDING_LIBXYZ flag for the library. + Example: + #ifdef BUILDING_LIBASPRINTF + #define LIBASPRINTF_DLL_EXPORTED __declspec(dllexport) + #else + #define LIBASPRINTF_DLL_EXPORTED __declspec(dllimport) + #endif + + We use this technique for the libintl and the libasprintf libraries. + + - Define a macro that expands to __declspec(dllimport) always, and use + it in all header files of the library. Use an explicit export list for + the library. + This is acceptable if + 1. the programming language is not C++ (because the name mangling of + static struct/class fields and of variables in namespaces makes it + hard to maintain an export list). + The benefit of this approach is that the partitioning of the source files + into libraries (which source file goes into which library) does not + affect the source code; only the Makefiles reflect it. + The performance loss due to the unnecessary indirection for references + to variables from within the library defining the variable is acceptable. + + We use this technique for libgettextlib (because it contains many gnulib + modules) and for libgettextsrc (because this makes it easy to move source + code from an msg* program to libgettextsrc). The macro is called + DLL_VARIABLE. + + This file allows building an explicit export list. You can either + - specify the variables to be exported, and use the GNU ld option + --export-all-symbols to export all function names, or + - specify the variables and functions to be exported explicitly. + + Note: --export-all-symbols is the default when no other symbol is explicitly + exported. This means, the use of an explicit export on the variables has + the effect of no longer exporting the functions! - until the option + --export-all-symbols is used. + + See for more details. */ + +#if defined __GNUC__ /* GCC compiler, GNU toolchain */ + + /* IMP(x) is a symbol that contains the address of x. */ +# define IMP(x) _imp__##x + + /* Ensure that the variable x is exported from the library, and that a + pseudo-variable IMP(x) is available. */ +# define VARIABLE(x) \ + /* Export x without redefining x. This code was found by compiling a \ + snippet: \ + extern __declspec(dllexport) int x; int x = 42; */ \ + asm (".section .drectve\n"); \ + asm (".ascii \" -export:" #x ",data\"\n"); \ + asm (".data\n"); \ + /* Allocate a pseudo-variable IMP(x). */ \ + extern int x; \ + void * IMP(x) = &x; + +#else /* non-GNU compiler, non-GNU toolchain */ + +# define VARIABLE(x) /* nothing */ + +#endif diff --git a/3rdPartner/libiconv/woe32dll/iconv-exports.c b/3rdPartner/libiconv/woe32dll/iconv-exports.c new file mode 100644 index 0000000..edabe3d --- /dev/null +++ b/3rdPartner/libiconv/woe32dll/iconv-exports.c @@ -0,0 +1,21 @@ +/* List of exported symbols of libiconv on Cygwin. + Copyright (C) 2006 Free Software Foundation, Inc. + Written by Bruno Haible , 2006. + + This program 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 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; see the file COPYING.LIB. If not, + see . */ + +#include "woe32dll/export.h" + +VARIABLE(_libiconv_version) diff --git a/3rdPartner/libsodium-1.0.10.zip b/3rdPartner/libsodium-1.0.10.zip new file mode 100644 index 0000000..957f153 Binary files /dev/null and b/3rdPartner/libsodium-1.0.10.zip differ diff --git a/3rdPartner/libsodium-1.0.19.zip b/3rdPartner/libsodium-1.0.19.zip new file mode 100644 index 0000000..5c212a5 Binary files /dev/null and b/3rdPartner/libsodium-1.0.19.zip differ diff --git a/3rdPartner/libsodium-master.zip b/3rdPartner/libsodium-master.zip new file mode 100644 index 0000000..adb947e Binary files /dev/null and b/3rdPartner/libsodium-master.zip differ diff --git a/3rdPartner/libzmq-4.3.5.zip b/3rdPartner/libzmq-4.3.5.zip new file mode 100644 index 0000000..23d0a8c Binary files /dev/null and b/3rdPartner/libzmq-4.3.5.zip differ diff --git a/3rdPartner/spdlog-1.13.0.zip b/3rdPartner/spdlog-1.13.0.zip new file mode 100644 index 0000000..b4cf0f4 Binary files /dev/null and b/3rdPartner/spdlog-1.13.0.zip differ diff --git a/3rdPartner/sqlite-autoconf-3450300.tar.gz b/3rdPartner/sqlite-autoconf-3450300.tar.gz new file mode 100644 index 0000000..c14980b Binary files /dev/null and b/3rdPartner/sqlite-autoconf-3450300.tar.gz differ diff --git a/3rdPartner/zmqpp-4.2.0.zip b/3rdPartner/zmqpp-4.2.0.zip new file mode 100644 index 0000000..7758595 Binary files /dev/null and b/3rdPartner/zmqpp-4.2.0.zip differ diff --git a/appRelease/ems-frp-pack.tgz b/appRelease/ems-frp-pack.tgz new file mode 100644 index 0000000..b60b559 Binary files /dev/null and b/appRelease/ems-frp-pack.tgz differ diff --git a/applications/WebConfigure/.gitignore b/applications/WebConfigure/.gitignore new file mode 100644 index 0000000..cbef543 --- /dev/null +++ b/applications/WebConfigure/.gitignore @@ -0,0 +1,434 @@ +# ---> C++ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + diff --git a/applications/WebConfigure/README.md b/applications/WebConfigure/README.md new file mode 100644 index 0000000..c692943 --- /dev/null +++ b/applications/WebConfigure/README.md @@ -0,0 +1,3 @@ +# WebConfigure + +网关配置工具,使用CGICC \ No newline at end of file diff --git a/applications/WebConfigure/boa.configure/boa.conf b/applications/WebConfigure/boa.configure/boa.conf new file mode 100644 index 0000000..e3775db --- /dev/null +++ b/applications/WebConfigure/boa.configure/boa.conf @@ -0,0 +1,194 @@ +# Boa v0.94 configuration file +# File format has not changed from 0.93 +# File format has changed little from 0.92 +# version changes are noted in the comments +# +# The Boa configuration file is parsed with a lex/yacc or flex/bison +# generated parser. If it reports an error, the line number will be +# provided; it should be easy to spot. The syntax of each of these +# rules is very simple, and they can occur in any order. Where possible +# these directives mimic those of NCSA httpd 1.3; I saw no reason to +# introduce gratuitous differences. + +# $Id: boa.conf,v 1.25 2002/03/22 04:33:09 jnelson Exp $ + +# The "ServerRoot" is not in this configuration file. It can be compiled +# into the server (see defines.h) or specified on the command line with +# the -c option, for example: +# +# boa -c /usr/local/boa + + +# Port: The port Boa runs on. The default port for http servers is 80. +# If it is less than 1024, the server must be started as root. + +Port 80 + +# Listen: the Internet address to bind(2) to. If you leave it out, +# it takes the behavior before 0.93.17.2, which is to bind to all +# addresses (INADDR_ANY). You only get one "Listen" directive, +# if you want service on multiple IP addresses, you have three choices: +# 1. Run boa without a "Listen" directive +# a. All addresses are treated the same; makes sense if the addresses +# are localhost, ppp, and eth0. +# b. Use the VirtualHost directive below to point requests to different +# files. Should be good for a very large number of addresses (web +# hosting clients). +# 2. Run one copy of boa per IP address, each has its own configuration +# with a "Listen" directive. No big deal up to a few tens of addresses. +# Nice separation between clients. +# The name you provide gets run through inet_aton(3), so you have to use dotted +# quad notation. This configuration is too important to trust some DNS. + +#Listen 192.68.0.5 + +# User: The name or UID the server should run as. +# Group: The group name or GID the server should run as. + +User nobody +Group nogroup + +# ServerAdmin: The email address where server problems should be sent. +# Note: this is not currently used, except as an environment variable +# for CGIs. + +#ServerAdmin root@localhost + +# ErrorLog: The location of the error log file. If this does not start +# with /, it is considered relative to the server root. +# Set to /dev/null if you don't want errors logged. +# If unset, defaults to /dev/stderr + +ErrorLog /var/log/boa/error_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log" + +# AccessLog: The location of the access log file. If this does not +# start with /, it is considered relative to the server root. +# Comment out or set to /dev/null (less effective) to disable +# Access logging. + +AccessLog /var/log/boa/access_log +# Please NOTE: Sending the logs to a pipe ('|'), as shown below, +# is somewhat experimental and might fail under heavy load. +# "Usual libc implementations of printf will stall the whole +# process if the receiving end of a pipe stops reading." +#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log" + +# UseLocaltime: Logical switch. Uncomment to use localtime +# instead of UTC time +#UseLocaltime + +# VerboseCGILogs: this is just a logical switch. +# It simply notes the start and stop times of cgis in the error log +# Comment out to disable. + +#VerboseCGILogs + +# ServerName: the name of this server that should be sent back to +# clients if different than that returned by gethostname + gethostbyname + +#ServerName www.your.org.here + +# VirtualHost: a logical switch. +# Comment out to disable. +# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A' +# become /var/www/IP-A. +# Example: http://localhost/ becomes /var/www/127.0.0.1 +# +# Not used until version 0.93.17.2. This "feature" also breaks commonlog +# output rules, it prepends the interface number to each access_log line. +# You are expected to fix that problem with a postprocessing script. + +#VirtualHost + +# DocumentRoot: The root directory of the HTML documents. +# Comment out to disable server non user files. + +DocumentRoot /var/www + +# UserDir: The name of the directory which is appended onto a user's home +# directory if a ~user request is recieved. + +UserDir public_html + +# DirectoryIndex: Name of the file to use as a pre-written HTML +# directory index. Please MAKE AND USE THESE FILES. On the +# fly creation of directory indexes can be _slow_. +# Comment out to always use DirectoryMaker + +DirectoryIndex index.html + +# DirectoryMaker: Name of program used to create a directory listing. +# Comment out to disable directory listings. If both this and +# DirectoryIndex are commented out, accessing a directory will give +# an error (though accessing files in the directory are still ok). + +DirectoryMaker /usr/lib/boa/boa_indexer + +# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker +# has been commented out, the the on-the-fly indexing of Boa can be used +# to generate indexes of directories. Be warned that the output is +# extremely minimal and can cause delays when slow disks are used. +# Note: The DirectoryCache must be writable by the same user/group that +# Boa runs as. + +# DirectoryCache /var/spool/boa/dircache + +# KeepAliveMax: Number of KeepAlive requests to allow per connection +# Comment out, or set to 0 to disable keepalive processing + +KeepAliveMax 1000 + +# KeepAliveTimeout: seconds to wait before keepalive connection times out + +KeepAliveTimeout 10 + +# MimeTypes: This is the file that is used to generate mime type pairs +# and Content-Type fields for boa. +# Set to /dev/null if you do not want to load a mime types file. +# Do *not* comment out (better use AddType!) + +MimeTypes /etc/mime.types + +# DefaultType: MIME type used if the file extension is unknown, or there +# is no file extension. + +DefaultType text/plain + +# CGIPath: The value of the $PATH environment variable given to CGI progs. + +CGIPath /bin:/usr/bin:/usr/local/bin + +# SinglePostLimit: The maximum allowable number of bytes in +# a single POST. Default is normally 1MB. + +# AddType: adds types without editing mime.types +# Example: AddType type extension [extension ...] + +# Uncomment the next line if you want .cgi files to execute from anywhere +#AddType application/x-httpd-cgi cgi + +# Redirect, Alias, and ScriptAlias all have the same semantics -- they +# match the beginning of a request and take appropriate action. Use +# Redirect for other servers, Alias for the same server, and ScriptAlias +# to enable directories for script execution. + +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: Redirect /bar http://elsewhere/feh/bar + +# Aliases: Aliases one path to another. +# Example: Alias /path1/bar /path2/foo + +Alias /doc /usr/doc + +# ScriptAlias: Maps a virtual path to a directory for serving scripts +# Example: ScriptAlias /htbin/ /www/htbin/ + +ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + diff --git a/applications/WebConfigure/boa.configure/huijuegrouplogo.png b/applications/WebConfigure/boa.configure/huijuegrouplogo.png new file mode 100644 index 0000000..7bcb3dc Binary files /dev/null and b/applications/WebConfigure/boa.configure/huijuegrouplogo.png differ diff --git a/applications/WebConfigure/boa.configure/index.html b/applications/WebConfigure/boa.configure/index.html new file mode 100644 index 0000000..c8dacfe --- /dev/null +++ b/applications/WebConfigure/boa.configure/index.html @@ -0,0 +1,35 @@ + + + + +一口Linux + + +
+ + + + +
+
+ User Name: +
 
+ Password: +  
+ + + +
+
+ +
+ + + + + + + + + + diff --git a/applications/WebConfigure/boa.configure/mime.types b/applications/WebConfigure/boa.configure/mime.types new file mode 100644 index 0000000..6127585 --- /dev/null +++ b/applications/WebConfigure/boa.configure/mime.types @@ -0,0 +1,835 @@ +############################################################################### +# +# MIME media types and the extensions that represent them. +# +# The format of this file is a media type on the left and zero or more +# filename extensions on the right. Programs using this file will map +# files ending with those extensions to the associated type. +# +# This file is part of the "mime-support" package. Please report a bug using +# the "reportbug" command of the "reportbug" package if you would like new +# types or extensions to be added. +# +# The reason that all types are managed by the mime-support package instead +# allowing individual packages to install types in much the same way as they +# add entries in to the mailcap file is so these types can be referenced by +# other programs (such as a web server) even if the specific support package +# for that type is not installed. +# +# Users can add their own types if they wish by creating a ".mime.types" +# file in their home directory. Definitions included there will take +# precedence over those listed here. +# +############################################################################### + + +application/activemessage +application/andrew-inset ez +application/annodex anx +application/applefile +application/atom+xml atom +application/atomcat+xml atomcat +application/atomicmail +application/atomserv+xml atomsrv +application/batch-SMTP +application/bbolin lin +application/beep+xml +application/cals-1840 +application/commonground +application/cu-seeme cu +application/cybercash +application/davmount+xml davmount +application/dca-rft +application/dec-dx +application/dicom dcm +application/docbook+xml +application/dsptype tsp +application/dvcs +application/ecmascript es +application/edi-consent +application/edi-x12 +application/edifact +application/eshop +application/font-sfnt otf ttf +application/font-tdpfr pfr +application/font-woff woff +application/futuresplash spl +application/ghostview +application/gzip gz +application/hta hta +application/http +application/hyperstudio +application/iges +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup +application/java-archive jar +application/java-serialized-object ser +application/java-vm class +application/javascript js +application/json json +application/m3g m3g +application/mac-binhex40 hqx +application/mac-compactpro cpt +application/macwriteii +application/marc +application/mathematica nb nbp +application/mbox mbox +application/ms-tnef +application/msaccess mdb +application/msword doc dot +application/mxf mxf +application/news-message-id +application/news-transmission +application/ocsp-request +application/ocsp-response +application/octet-stream bin deploy msu msp +application/oda oda +application/oebps-package+xml opf +application/ogg ogx +application/onenote one onetoc2 onetmp onepkg +application/parityfec +application/pdf pdf +application/pgp-encrypted pgp +application/pgp-keys key +application/pgp-signature sig +application/pics-rules prf +application/pkcs10 +application/pkcs7-mime +application/pkcs7-signature +application/pkix-cert +application/pkix-crl +application/pkixcmp +application/postscript ps ai eps epsi epsf eps2 eps3 +application/prs.alvestrand.titrax-sheet +application/prs.cww +application/prs.nprend +application/qsig +application/rar rar +application/rdf+xml rdf +application/remote-printing +application/riscos +application/rtf rtf +application/sdp +application/set-payment +application/set-payment-initiation +application/set-registration +application/set-registration-initiation +application/sgml +application/sgml-open-catalog +application/sieve +application/sla stl +application/slate +application/smil+xml smi smil +application/timestamp-query +application/timestamp-reply +application/vemmi +application/whoispp-query +application/whoispp-response +application/wita +application/x400-bp +application/xhtml+xml xhtml xht +application/xml xml xsd +application/xml-dtd +application/xml-external-parsed-entity +application/xslt+xml xsl xslt +application/xspf+xml xspf +application/zip zip +application/vnd.3M.Post-it-Notes +application/vnd.accpac.simply.aso +application/vnd.accpac.simply.imp +application/vnd.acucobol +application/vnd.aether.imp +application/vnd.android.package-archive apk +application/vnd.anser-web-certificate-issue-initiation +application/vnd.anser-web-funds-transfer-initiation +application/vnd.audiograph +application/vnd.bmi +application/vnd.businessobjects +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cinderella cdy +application/vnd.claymore +application/vnd.commerce-battelle +application/vnd.commonspace +application/vnd.comsocaller +application/vnd.contact.cmsg +application/vnd.cosmocaller +application/vnd.ctc-posml +application/vnd.cups-postscript +application/vnd.cups-raster +application/vnd.cups-raw +application/vnd.cybank +application/vnd.debian.binary-package deb ddeb udeb +application/vnd.dna +application/vnd.dpgraph +application/vnd.dxr +application/vnd.ecdis-update +application/vnd.ecowin.chart +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.enliven +application/vnd.epson.esf +application/vnd.epson.msf +application/vnd.epson.quickanime +application/vnd.epson.salt +application/vnd.epson.ssf +application/vnd.ericsson.quickcall +application/vnd.eudora.data +application/vnd.fdf +application/vnd.ffsns +application/vnd.flographit +application/vnd.font-fontforge-sfd sfd +application/vnd.framemaker +application/vnd.fsc.weblaunch +application/vnd.fujitsu.oasys +application/vnd.fujitsu.oasys2 +application/vnd.fujitsu.oasys3 +application/vnd.fujitsu.oasysgp +application/vnd.fujitsu.oasysprs +application/vnd.fujixerox.ddd +application/vnd.fujixerox.docuworks +application/vnd.fujixerox.docuworks.binder +application/vnd.fut-misnet +application/vnd.google-earth.kml+xml kml +application/vnd.google-earth.kmz kmz +application/vnd.grafeq +application/vnd.groove-account +application/vnd.groove-identity-message +application/vnd.groove-injector +application/vnd.groove-tool-message +application/vnd.groove-tool-template +application/vnd.groove-vcard +application/vnd.hhe.lesson-player +application/vnd.hp-HPGL +application/vnd.hp-PCL +application/vnd.hp-PCLXL +application/vnd.hp-hpid +application/vnd.hp-hps +application/vnd.httphone +application/vnd.hzn-3d-crossword +application/vnd.ibm.MiniPay +application/vnd.ibm.afplinedata +application/vnd.ibm.modcap +application/vnd.informix-visionary +application/vnd.intercon.formnet +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp +application/vnd.intu.qbo +application/vnd.intu.qfx +application/vnd.irepository.package+xml +application/vnd.is-xpr +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup +application/vnd.koan +application/vnd.lotus-1-2-3 +application/vnd.lotus-approach +application/vnd.lotus-freelance +application/vnd.lotus-notes +application/vnd.lotus-organizer +application/vnd.lotus-screencam +application/vnd.lotus-wordpro +application/vnd.mcd +application/vnd.mediastation.cdkey +application/vnd.meridian-slingshot +application/vnd.mif +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.mobius.daf +application/vnd.mobius.dis +application/vnd.mobius.msl +application/vnd.mobius.plc +application/vnd.mobius.txf +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.mozilla.xul+xml xul +application/vnd.ms-artgalry +application/vnd.ms-asf +application/vnd.ms-excel xls xlb xlt +application/vnd.ms-excel.addin.macroEnabled.12 xlam +application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb +application/vnd.ms-excel.sheet.macroEnabled.12 xlsm +application/vnd.ms-excel.template.macroEnabled.12 xltm +application/vnd.ms-fontobject eot +application/vnd.ms-lrm +application/vnd.ms-officetheme thmx +application/vnd.ms-pki.seccat cat +#application/vnd.ms-pki.stl stl +application/vnd.ms-powerpoint ppt pps +application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam +application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm +application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm +application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm +application/vnd.ms-powerpoint.template.macroEnabled.12 potm +application/vnd.ms-project +application/vnd.ms-tnef +application/vnd.ms-word.document.macroEnabled.12 docm +application/vnd.ms-word.template.macroEnabled.12 dotm +application/vnd.ms-works +application/vnd.mseq +application/vnd.msign +application/vnd.music-niff +application/vnd.musician +application/vnd.netfpx +application/vnd.noblenet-directory +application/vnd.noblenet-sealer +application/vnd.noblenet-web +application/vnd.novadigm.EDM +application/vnd.novadigm.EDX +application/vnd.novadigm.EXT +application/vnd.oasis.opendocument.chart odc +application/vnd.oasis.opendocument.database odb +application/vnd.oasis.opendocument.formula odf +application/vnd.oasis.opendocument.graphics odg +application/vnd.oasis.opendocument.graphics-template otg +application/vnd.oasis.opendocument.image odi +application/vnd.oasis.opendocument.presentation odp +application/vnd.oasis.opendocument.presentation-template otp +application/vnd.oasis.opendocument.spreadsheet ods +application/vnd.oasis.opendocument.spreadsheet-template ots +application/vnd.oasis.opendocument.text odt +application/vnd.oasis.opendocument.text-master odm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx +application/vnd.openxmlformats-officedocument.presentationml.slide sldx +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx +application/vnd.openxmlformats-officedocument.presentationml.template potx +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx +application/vnd.osa.netdeploy +application/vnd.palm +application/vnd.pg.format +application/vnd.pg.osasli +application/vnd.powerbuilder6 +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.previewsystems.box +application/vnd.publishare-delta-tree +application/vnd.pvi.ptid1 +application/vnd.pwg-xhtml-print+xml +application/vnd.rapid +application/vnd.rim.cod cod +application/vnd.s3sms +application/vnd.seemail +application/vnd.shana.informed.formdata +application/vnd.shana.informed.formtemplate +application/vnd.shana.informed.interchange +application/vnd.shana.informed.package +application/vnd.smaf mmf +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf +application/vnd.stardivision.calc sdc +application/vnd.stardivision.chart sds +application/vnd.stardivision.draw sda +application/vnd.stardivision.impress sdd +application/vnd.stardivision.math sdf +application/vnd.stardivision.writer sdw +application/vnd.stardivision.writer-global sgl +application/vnd.street-stream +application/vnd.sun.xml.calc sxc +application/vnd.sun.xml.calc.template stc +application/vnd.sun.xml.draw sxd +application/vnd.sun.xml.draw.template std +application/vnd.sun.xml.impress sxi +application/vnd.sun.xml.impress.template sti +application/vnd.sun.xml.math sxm +application/vnd.sun.xml.writer sxw +application/vnd.sun.xml.writer.global sxg +application/vnd.sun.xml.writer.template stw +application/vnd.svd +application/vnd.swiftview-ics +application/vnd.symbian.install sis +application/vnd.tcpdump.pcap cap pcap +application/vnd.triscape.mxs +application/vnd.trueapp +application/vnd.truedoc +application/vnd.tve-trigger +application/vnd.ufdl +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal +application/vnd.vcx +application/vnd.vectorworks +application/vnd.vidsoft.vidconference +application/vnd.visio vsd vst vsw vss +application/vnd.vividence.scriptfile +application/vnd.wap.sic +application/vnd.wap.slc +application/vnd.wap.wbxml wbxml +application/vnd.wap.wmlc wmlc +application/vnd.wap.wmlscriptc wmlsc +application/vnd.webturbo +application/vnd.wordperfect wpd +application/vnd.wordperfect5.1 wp5 +application/vnd.wrq-hp3000-labelled +application/vnd.wt.stf +application/vnd.xara +application/vnd.xfdl +application/vnd.yellowriver-custom-menu +application/zlib +application/x-123 wk +application/x-7z-compressed 7z +application/x-abiword abw +application/x-apple-diskimage dmg +application/x-bcpio bcpio +application/x-bittorrent torrent +application/x-cab cab +application/x-cbr cbr +application/x-cbz cbz +application/x-cdf cdf cda +application/x-cdlink vcd +application/x-chess-pgn pgn +application/x-comsol mph +application/x-core +application/x-cpio cpio +application/x-csh csh +application/x-debian-package deb udeb +application/x-director dcr dir dxr +application/x-dms dms +application/x-doom wad +application/x-dvi dvi +application/x-executable +application/x-font pfa pfb gsf +application/x-font-pcf pcf pcf.Z +application/x-freemind mm +application/x-futuresplash spl +application/x-ganttproject gan +application/x-gnumeric gnumeric +application/x-go-sgf sgf +application/x-graphing-calculator gcf +application/x-gtar gtar +application/x-gtar-compressed tgz taz +application/x-hdf hdf +#application/x-httpd-eruby rhtml +#application/x-httpd-php phtml pht php +#application/x-httpd-php-source phps +#application/x-httpd-php3 php3 +#application/x-httpd-php3-preprocessed php3p +#application/x-httpd-php4 php4 +#application/x-httpd-php5 php5 +application/x-hwp hwp +application/x-ica ica +application/x-info info +application/x-internet-signup ins isp +application/x-iphone iii +application/x-iso9660-image iso +application/x-jam jam +application/x-java-applet +application/x-java-bean +application/x-java-jnlp-file jnlp +application/x-jmol jmz +application/x-kchart chrt +application/x-kdelnk +application/x-killustrator kil +application/x-koan skp skd skt skm +application/x-kpresenter kpr kpt +application/x-kspread ksp +application/x-kword kwd kwt +application/x-latex latex +application/x-lha lha +application/x-lyx lyx +application/x-lzh lzh +application/x-lzx lzx +application/x-maker frm maker frame fm fb book fbdoc +application/x-mif mif +application/x-mpegURL m3u8 +application/x-ms-application application +application/x-ms-manifest manifest +application/x-ms-wmd wmd +application/x-ms-wmz wmz +application/x-msdos-program com exe bat dll +application/x-msi msi +application/x-netcdf nc +application/x-ns-proxy-autoconfig pac +application/x-nwc nwc +application/x-object o +application/x-oz-application oza +application/x-pkcs7-certreqresp p7r +application/x-pkcs7-crl crl +application/x-python-code pyc pyo +application/x-qgis qgs shp shx +application/x-quicktimeplayer qtl +application/x-rdp rdp +application/x-redhat-package-manager rpm +application/x-rss+xml rss +application/x-ruby rb +application/x-rx +application/x-scilab sci sce +application/x-scilab-xcos xcos +application/x-sh sh +application/x-shar shar +application/x-shellscript +application/x-shockwave-flash swf swfl +application/x-silverlight scr +application/x-sql sql +application/x-stuffit sit sitx +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex-gf gf +application/x-tex-pk pk +application/x-texinfo texinfo texi +application/x-trash ~ % bak old sik +application/x-troff t tr roff +application/x-troff-man man +application/x-troff-me me +application/x-troff-ms ms +application/x-ustar ustar +application/x-videolan +application/x-wais-source src +application/x-wingz wz +application/x-x509-ca-cert crt +application/x-xcf xcf +application/x-xfig fig +application/x-xpinstall xpi +application/x-xz xz + +audio/32kadpcm +audio/3gpp +audio/amr amr +audio/amr-wb awb +audio/annodex axa +audio/basic au snd +audio/csound csd orc sco +audio/flac flac +audio/g.722.1 +audio/l16 +audio/midi mid midi kar +audio/mp4a-latm +audio/mpa-robust +audio/mpeg mpga mpega mp2 mp3 m4a +audio/mpegurl m3u +audio/ogg oga ogg opus spx +audio/parityfec +audio/prs.sid sid +audio/telephone-event +audio/tone +audio/vnd.cisco.nse +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 +audio/vnd.digital-winds +audio/vnd.everad.plj +audio/vnd.lucent.voice +audio/vnd.nortel.vbk +audio/vnd.nuera.ecelp4800 +audio/vnd.nuera.ecelp7470 +audio/vnd.nuera.ecelp9600 +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.vmx.cvsd +audio/x-aiff aif aiff aifc +audio/x-gsm gsm +audio/x-mpegurl m3u +audio/x-ms-wma wma +audio/x-ms-wax wax +audio/x-pn-realaudio-plugin +audio/x-pn-realaudio ra rm ram +audio/x-realaudio ra +audio/x-scpls pls +audio/x-sd2 sd2 +audio/x-wav wav + +chemical/x-alchemy alc +chemical/x-cache cac cache +chemical/x-cache-csf csf +chemical/x-cactvs-binary cbin cascii ctab +chemical/x-cdx cdx +chemical/x-cerius cer +chemical/x-chem3d c3d +chemical/x-chemdraw chm +chemical/x-cif cif +chemical/x-cmdf cmdf +chemical/x-cml cml +chemical/x-compass cpa +chemical/x-crossfire bsd +chemical/x-csml csml csm +chemical/x-ctx ctx +chemical/x-cxf cxf cef +#chemical/x-daylight-smiles smi +chemical/x-embl-dl-nucleotide emb embl +chemical/x-galactic-spc spc +chemical/x-gamess-input inp gam gamin +chemical/x-gaussian-checkpoint fch fchk +chemical/x-gaussian-cube cub +chemical/x-gaussian-input gau gjc gjf +chemical/x-gaussian-log gal +chemical/x-gcg8-sequence gcg +chemical/x-genbank gen +chemical/x-hin hin +chemical/x-isostar istr ist +chemical/x-jcamp-dx jdx dx +chemical/x-kinemage kin +chemical/x-macmolecule mcm +chemical/x-macromodel-input mmd mmod +chemical/x-mdl-molfile mol +chemical/x-mdl-rdfile rd +chemical/x-mdl-rxnfile rxn +chemical/x-mdl-sdfile sd sdf +chemical/x-mdl-tgf tgf +#chemical/x-mif mif +chemical/x-mmcif mcif +chemical/x-mol2 mol2 +chemical/x-molconn-Z b +chemical/x-mopac-graph gpt +chemical/x-mopac-input mop mopcrt mpc zmt +chemical/x-mopac-out moo +chemical/x-mopac-vib mvb +chemical/x-ncbi-asn1 asn +chemical/x-ncbi-asn1-ascii prt ent +chemical/x-ncbi-asn1-binary val aso +chemical/x-ncbi-asn1-spec asn +chemical/x-pdb pdb ent +chemical/x-rosdal ros +chemical/x-swissprot sw +chemical/x-vamas-iso14976 vms +chemical/x-vmd vmd +chemical/x-xtel xtel +chemical/x-xyz xyz + +image/cgm +image/g3fax +image/gif gif +image/ief ief +image/jp2 jp2 jpg2 +image/jpeg jpeg jpg jpe +image/jpm jpm +image/jpx jpx jpf +image/naplps +image/pcx pcx +image/png png +image/prs.btif +image/prs.pti +image/svg+xml svg svgz +image/tiff tiff tif +image/vnd.cns.inf2 +image/vnd.djvu djvu djv +image/vnd.dwg +image/vnd.dxf +image/vnd.fastbidsheet +image/vnd.fpx +image/vnd.fst +image/vnd.fujixerox.edmics-mmr +image/vnd.fujixerox.edmics-rlc +image/vnd.microsoft.icon ico +image/vnd.mix +image/vnd.net-fpx +image/vnd.svf +image/vnd.wap.wbmp wbmp +image/vnd.xiff +image/x-canon-cr2 cr2 +image/x-canon-crw crw +image/x-cmu-raster ras +image/x-coreldraw cdr +image/x-coreldrawpattern pat +image/x-coreldrawtemplate cdt +image/x-corelphotopaint cpt +image/x-epson-erf erf +image/x-icon +image/x-jg art +image/x-jng jng +image/x-ms-bmp bmp +image/x-nikon-nef nef +image/x-olympus-orf orf +image/x-photoshop psd +image/x-portable-anymap pnm +image/x-portable-bitmap pbm +image/x-portable-graymap pgm +image/x-portable-pixmap ppm +image/x-rgb rgb +image/x-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd + +inode/chardevice +inode/blockdevice +inode/directory-locked +inode/directory +inode/fifo +inode/socket + +message/delivery-status +message/disposition-notification +message/external-body +message/http +message/s-http +message/news +message/partial +message/rfc822 eml + +model/iges igs iges +model/mesh msh mesh silo +model/vnd.dwf +model/vnd.flatland.3dml +model/vnd.gdl +model/vnd.gs-gdl +model/vnd.gtw +model/vnd.mts +model/vnd.vtu +model/vrml wrl vrml +model/x3d+vrml x3dv +model/x3d+xml x3d +model/x3d+binary x3db + +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message + +text/cache-manifest appcache +text/calendar ics icz +text/css css +text/csv csv +text/directory +text/english +text/enriched +text/h323 323 +text/html html htm shtml +text/iuls uls +text/mathml mml +text/parityfec +text/plain asc txt text pot brf srt +text/prs.lines.tag +text/rfc822-headers +text/richtext rtx +text/rtf +text/scriptlet sct wsc +text/t140 +text/texmacs tm +text/tab-separated-values tsv +text/turtle ttl +text/uri-list +text/vcard vcf vcard +text/vnd.abc +text/vnd.curl +text/vnd.debian.copyright +text/vnd.DMClientScript +text/vnd.flatland.3dml +text/vnd.fly +text/vnd.fmi.flexstor +text/vnd.in3d.3dml +text/vnd.in3d.spot +text/vnd.IPTC.NewsML +text/vnd.IPTC.NITF +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.sun.j2me.app-descriptor jad +text/vnd.wap.si +text/vnd.wap.sl +text/vnd.wap.wml wml +text/vnd.wap.wmlscript wmls +text/x-bibtex bib +text/x-boo boo +text/x-c++hdr h++ hpp hxx hh +text/x-c++src c++ cpp cxx cc +text/x-chdr h +text/x-component htc +text/x-crontab +text/x-csh csh +text/x-csrc c +text/x-dsrc d +text/x-diff diff patch +text/x-haskell hs +text/x-java java +text/x-lilypond ly +text/x-literate-haskell lhs +text/x-makefile +text/x-moc moc +text/x-pascal p pas +text/x-pcs-gcd gcd +text/x-perl pl pm +text/x-python py +text/x-scala scala +text/x-server-parsed-html +text/x-setext etx +text/x-sfv sfv +text/x-sh sh +text/x-tcl tcl tk +text/x-tex tex ltx sty cls +text/x-vcalendar vcs + +video/3gpp 3gp +video/annodex axv +video/dl dl +video/dv dif dv +video/fli fli +video/gl gl +video/mpeg mpeg mpg mpe +video/MP2T ts +video/mp4 mp4 +video/quicktime qt mov +video/mp4v-es +video/ogg ogv +video/parityfec +video/pointer +video/webm webm +video/vnd.fvt +video/vnd.motorola.video +video/vnd.motorola.videop +video/vnd.mpegurl mxu +video/vnd.mts +video/vnd.nokia.interleaved-multimedia +video/vnd.vivo +video/x-flv flv +video/x-la-asf lsf lsx +video/x-mng mng +video/x-ms-asf asf asx +video/x-ms-wm wm +video/x-ms-wmv wmv +video/x-ms-wmx wmx +video/x-ms-wvx wvx +video/x-msvideo avi +video/x-sgi-movie movie +video/x-matroska mpv mkv + +x-conference/x-cooltalk ice + +x-epoc/x-sisx-app sisx +x-world/x-vrml vrm vrml wrl diff --git a/applications/WebConfigure/cgiCommon/Makefile b/applications/WebConfigure/cgiCommon/Makefile new file mode 100644 index 0000000..58cc3f2 --- /dev/null +++ b/applications/WebConfigure/cgiCommon/Makefile @@ -0,0 +1,50 @@ +###################################### +# +###################################### +#source file +#ԴļԶ.c.cppļĿ궨Ϊͬ.oļ +SOURCE := $(wildcard *.c) $(wildcard *.cpp) +OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) + +#target you can change test to what you want +#ĿļҪִļ +TARGET := commonAction + +#compile and lib parameter +# +CC := g++ +CXX := g++ +LIBS := -L/usr/local/lib -lhv -lsqlite3 -lpthread -ldl -static -lcgicc +LDFLAGS := +DEFINES := +INCLUDE := -I. -I/usr/local/include +CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) -std=c++11 +CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H + +#i think you should do anything here +#ĻϲҪκθĶ +.PHONY : everything objs clean veryclean rebuild + + +everything : $(TARGET) + +all : $(TARGET) + + +objs : $(OBJS) + + +rebuild: veryclean everything + + +clean : + rm -fr *.so *.a + rm -fr *.o + + +veryclean : clean + rm -fr $(TARGET) + + +$(TARGET) : $(OBJS) + $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) diff --git a/applications/WebConfigure/cgiCommon/Makefile.arm b/applications/WebConfigure/cgiCommon/Makefile.arm new file mode 100644 index 0000000..961bfcf --- /dev/null +++ b/applications/WebConfigure/cgiCommon/Makefile.arm @@ -0,0 +1,50 @@ +###################################### +# +###################################### +#source file +#ԴļԶ.c.cppļĿ궨Ϊͬ.oļ +SOURCE := $(wildcard *.c) $(wildcard *.cpp) +OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) + +#target you can change test to what you want +#ĿļҪִļ +TARGET := common.cgi + +#compile and lib parameter +# +CC := arm-g++ +CXX := arm-g++ +LIBS := -L/usr/local/arm/lib -lhv -lsqlite3 -lcgicc -lpthread -ldl +LDFLAGS := +DEFINES := +INCLUDE := -I. -I/usr/local/arm/include +CFLAGS := -Wall -O3 $(DEFINES) $(INCLUDE) -std=c++11 +CXXFLAGS:= $(CFLAGS) + +#i think you should do anything here +#ĻϲҪκθĶ +.PHONY : everything objs clean veryclean rebuild + + +everything : $(TARGET) + +all : $(TARGET) + + +objs : $(OBJS) + + +rebuild: veryclean everything + + +clean : + rm -fr *.so so + rm -fr *.o + + +veryclean : clean + rm -fr $(TARGET) + + +$(TARGET) : $(OBJS) + $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) diff --git a/applications/WebConfigure/cgiCommon/cgiCommon.sln b/applications/WebConfigure/cgiCommon/cgiCommon.sln new file mode 100644 index 0000000..e8e7f9d --- /dev/null +++ b/applications/WebConfigure/cgiCommon/cgiCommon.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.34301.259 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgiCommon", "cgiCommon.vcxproj", "{EC275930-0379-4487-8C30-EAFE2C124618}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM.ActiveCfg = Debug|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM.Build.0 = Debug|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM.Deploy.0 = Debug|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM64.Build.0 = Debug|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x64.ActiveCfg = Debug|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x64.Build.0 = Debug|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x64.Deploy.0 = Debug|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x86.ActiveCfg = Debug|x86 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x86.Build.0 = Debug|x86 + {EC275930-0379-4487-8C30-EAFE2C124618}.Debug|x86.Deploy.0 = Debug|x86 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM.ActiveCfg = Release|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM.Build.0 = Release|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM.Deploy.0 = Release|ARM + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM64.ActiveCfg = Release|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM64.Build.0 = Release|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|ARM64.Deploy.0 = Release|ARM64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x64.ActiveCfg = Release|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x64.Build.0 = Release|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x64.Deploy.0 = Release|x64 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x86.ActiveCfg = Release|x86 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x86.Build.0 = Release|x86 + {EC275930-0379-4487-8C30-EAFE2C124618}.Release|x86.Deploy.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {47A594E7-6556-4C52-A8EA-D42B83E3D17B} + EndGlobalSection +EndGlobal diff --git a/applications/WebConfigure/cgiCommon/cgiCommon.vcxproj b/applications/WebConfigure/cgiCommon/cgiCommon.vcxproj new file mode 100644 index 0000000..2456ef5 --- /dev/null +++ b/applications/WebConfigure/cgiCommon/cgiCommon.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + Debug + x86 + + + Release + x86 + + + Debug + x64 + + + Release + x64 + + + + {ec275930-0379-4487-8c30-eafe2c124618} + Linux + cgiLogin + 15.0 + Linux + 1.0 + Generic + {D51BCBC9-82E9-4017-911E-C93873C4EA2B} + cgiCommon + + + + true + + + false + + + true + + + false + + + true + + + false + + + false + + + true + + + + + + + + + + D:\My Documents\汇珏网络\15. EMS\projects\sdk\include + + + D:\My Documents\汇珏网络\15. EMS\projects\sdk\include + D:\My Documents\汇珏网络\15. EMS\projects\sdk\include;D:\My Documents\汇珏网络\15. EMS\projects\sdk\include\cgicc;D:\My Documents\汇珏网络\15. EMS\projects\sdk\include\hv;D:\My Documents\汇珏网络\15. EMS\projects\sdk\include\nlohmann;$(IncludePath) + + + + + + + + + + + + + + + + + %(AdditionalIncludeDirectories) + + + + + \ No newline at end of file diff --git a/applications/WebConfigure/cgiCommon/handleHeader.cpp b/applications/WebConfigure/cgiCommon/handleHeader.cpp new file mode 100644 index 0000000..7098fe1 --- /dev/null +++ b/applications/WebConfigure/cgiCommon/handleHeader.cpp @@ -0,0 +1,23 @@ +#include "handleHeader.h" +#include + +#include +#include +#include +#include + +void handleHtmlHeader(const std::string& page_title /*= "Shanghai Huijue EMS device"*/) +{ + using namespace cgicc; + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + std::cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << std::endl; + + //cout << html().set("lang", "en").set("dir", "ltr") << endl; + std::cout << "" << std::endl; + + // Set up the page's header and title. + std::cout << head() << std::endl; + std::cout << title() << page_title.c_str() << title() << std::endl; + std::cout << head() << std::endl << std::endl; +} \ No newline at end of file diff --git a/applications/WebConfigure/cgiCommon/handleHeader.h b/applications/WebConfigure/cgiCommon/handleHeader.h new file mode 100644 index 0000000..bb3942a --- /dev/null +++ b/applications/WebConfigure/cgiCommon/handleHeader.h @@ -0,0 +1,8 @@ +#ifndef __HANDLE_HTML_HEADER__ +#define __HANDLE_HTML_HEADER__ + +#include + +void handleHtmlHeader(const std::string& page_title ="Shanghai Huijue EMS device"); + +#endif diff --git a/applications/WebConfigure/cgiCommon/handleLoginRequest.cpp b/applications/WebConfigure/cgiCommon/handleLoginRequest.cpp new file mode 100644 index 0000000..30c246d --- /dev/null +++ b/applications/WebConfigure/cgiCommon/handleLoginRequest.cpp @@ -0,0 +1,60 @@ +#include +#include + +#include +#include +#include +#include + +#include "handleHeader.h" + +using namespace cgicc; + +// ¼ +void handleLoginRequest(cgicc::Cgicc& cgi) +{ + handleHtmlHeader(); + + // Start the HTML body + std::cout << body() << std::endl; + + std::string username; + std::string passwd; + + // Get username and password from form parameters + cgicc::form_iterator fi = cgi.getElement("Username"); + + if (!fi->isEmpty() && fi != (*cgi).end()) + { + username = **fi; + std::cout << "Username:" << **fi << std::endl; + } + + std::cout << "
\n"; + + fi = cgi.getElement("Password"); + + if (!fi->isEmpty() && fi != (*cgi).end()) + { + passwd = **fi; + std::cout << "Password:" << **fi << std::endl; + } + + std::cout << "
\n"; + + // ¼߼... + // ֤ɹ + + std::cout << "
\n"; + std::cout << username.c_str() << std::endl; + + std::cout << "
\n"; + std::cout << passwd.c_str() << std::endl; + + std::cout << "
\n"; + std::cout << h1("Login Successful!") << std::endl; + + // Close the document + std::cout << body() << html(); + +} diff --git a/applications/WebConfigure/cgiCommon/handleSignupRequest.cpp b/applications/WebConfigure/cgiCommon/handleSignupRequest.cpp new file mode 100644 index 0000000..1d8c94a --- /dev/null +++ b/applications/WebConfigure/cgiCommon/handleSignupRequest.cpp @@ -0,0 +1,19 @@ +#include +#include +#include + +// ע +void handleSignupRequest(cgicc::Cgicc& cgi) +{ +#if 0 // ȡ + std::string username = cgi.getEnvironment().get("username"); + std::string email = cgi.getEnvironment().get("email"); + + // ע߼... + // עɹ + + cgi.addHeader("Content-Type", "text/html"); + + std::cout << "Signup Successful!"; +#endif +} \ No newline at end of file diff --git a/applications/WebConfigure/cgiCommon/main.cpp b/applications/WebConfigure/cgiCommon/main.cpp new file mode 100644 index 0000000..9d683e1 --- /dev/null +++ b/applications/WebConfigure/cgiCommon/main.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +#include "handleHeader.h" + +// 你的CGI处理函数声明 +void handleLoginRequest(cgicc::Cgicc& cgi); +void handleSignupRequest(cgicc::Cgicc& cgi); + +// 添加更多处理函数... + + +int main() +{ + using namespace cgicc; + using namespace std; + + Cgicc formData; + + //获得api方法 + form_iterator fi = formData.getElement("do"); + + if (!fi->isEmpty() && fi != (*formData).end()) + { + //std::cout << "api:" << **fi << std::endl; + + if (**fi == "login") + { + handleLoginRequest(formData); + } + + if (**fi == "getDevices") + { + + } + } + + return 0; +} \ No newline at end of file diff --git a/applications/WebConfigure/example/cgiDemo/cgi-demo.cpp b/applications/WebConfigure/example/cgiDemo/cgi-demo.cpp new file mode 100644 index 0000000..96a4df5 --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/cgi-demo.cpp @@ -0,0 +1,15 @@ +#include +#include + +int cgiMain() { + char paramValue[256]; // 用于存储参数值的缓冲区 + if (cgiFormString("paramName", paramValue, sizeof(paramValue)) == cgiFormSuccess) { + // 成功获取参数,paramValue现在包含参数的值 + // 在这里处理参数值... + } else { + // 获取参数失败,可能是因为参数不存在或发生了错误 + // 在这里处理错误情况... + } + + return 0; +} diff --git a/applications/WebConfigure/example/cgiDemo/cgi-post.cpp b/applications/WebConfigure/example/cgiDemo/cgi-post.cpp new file mode 100644 index 0000000..b4f1d31 --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/cgi-post.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include + +using namespace cgicc; + +int main () +{ + using namespace std; + + cout << ("Content-type: text/html;charset=utf-8\n\n") << endl; + cout << "hello World!" << endl; + +#if 0 + Cgicc formData; + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + //cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << endl; + + cout << html().set("lang", "en").set("dir", "ltr") << endl; + // Set up the page's header and title. + cout << head() << endl; + cout << title() << "GNU cgicc v" << formData.getVersion() << title() << endl; + cout << head() << endl; + cout << body() << endl; + + //std::cout << "Content-type:text/html;charset=utf-8\r\n\r\n"; + // Start the HTML body + // Start the HTML body + //std::cout << "\n"; + //std::cout << "使用 GET 传递参数\n"; + + form_iterator fi = formData.getElement("spm"); + if( !fi->isEmpty() && fi != (*formData).end()) + { + std::cout << "spm:" << **fi << std::endl; + } + + std::cout << "
\n"; + + fi = formData.getElement("id"); + if( !fi->isEmpty() && fi != (*formData).end()) + { + std::cout << "id:" << **fi << std::endl; + } + + std::cout << "
\n"; + + fi = formData.getElement("cm_id"); + if( !fi->isEmpty() && fi != (*formData).end()) + { + std::cout << "cm_id:" << **fi << std::endl; + } + + std::cout << "
\n"; + + fi = formData.getElement("abbucket"); + if( !fi->isEmpty() && fi != (*formData).end()) + { + std::cout << "abbucket:" << **fi << std::endl; + } +#endif + return 0; +} diff --git a/applications/WebConfigure/example/cgiDemo/cgic.h b/applications/WebConfigure/example/cgiDemo/cgic.h new file mode 100644 index 0000000..472e23a --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/cgic.h @@ -0,0 +1,249 @@ +/* The CGI_C library, by Thomas Boutell, version 2.01. CGI_C is intended + to be a high-quality API to simplify CGI programming tasks. */ + +/* Make sure this is only included once. */ + +#ifndef CGI_C +#define CGI_C 1 + +/* Ensure proper linkage to c++ programs. */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Bring in standard I/O since some of the functions refer to + types defined by it, such as FILE *. */ + +#include + +/* The various CGI environment variables. Instead of using getenv(), + the programmer should refer to these, which are always + valid null-terminated strings (they may be empty, but they + will never be null). If these variables are used instead + of calling getenv(), then it will be possible to save + and restore CGI environments, which is highly convenient + for debugging. */ + +extern char *cgiServerSoftware; +extern char *cgiServerName; +extern char *cgiGatewayInterface; +extern char *cgiServerProtocol; +extern char *cgiServerPort; +extern char *cgiRequestMethod; +extern char *cgiPathInfo; +extern char *cgiPathTranslated; +extern char *cgiScriptName; +extern char *cgiQueryString; +extern char *cgiRemoteHost; +extern char *cgiRemoteAddr; +extern char *cgiAuthType; +extern char *cgiRemoteUser; +extern char *cgiRemoteIdent; +extern char *cgiContentType; +extern char *cgiAccept; +extern char *cgiUserAgent; +extern char *cgiReferrer; + +/* Cookies as sent to the server. You can also get them + individually, or as a string array; see the documentation. */ +extern char *cgiCookie; + +/* A macro providing the same incorrect spelling that is + found in the HTTP/CGI specifications */ +#define cgiReferer cgiReferrer + +/* The number of bytes of data received. + Note that if the submission is a form submission + the library will read and parse all the information + directly from cgiIn; the programmer need not do so. */ + +extern int cgiContentLength; + +/* Pointer to CGI output. The cgiHeader functions should be used + first to output the mime headers; the output HTML + page, GIF image or other web document should then be written + to cgiOut by the programmer. In the standard CGIC library, + cgiOut is always equivalent to stdout. */ + +extern FILE *cgiOut; + +/* Pointer to CGI input. The programmer does not read from this. + We have continued to export it for backwards compatibility + so that cgic 1.x applications link properly. */ + +extern FILE *cgiIn; + +/* Possible return codes from the cgiForm family of functions (see below). */ + +typedef enum { + cgiFormSuccess, + cgiFormTruncated, + cgiFormBadType, + cgiFormEmpty, + cgiFormNotFound, + cgiFormConstrained, + cgiFormNoSuchChoice, + cgiFormMemory, + cgiFormNoFileName, + cgiFormNoContentType, + cgiFormNotAFile, + cgiFormOpenFailed, + cgiFormIO, + cgiFormEOF +} cgiFormResultType; + +/* These functions are used to retrieve form data. See + cgic.html for documentation. */ + +extern cgiFormResultType cgiFormString( + char *name, char *result, int max); + +extern cgiFormResultType cgiFormStringNoNewlines( + char *name, char *result, int max); + + +extern cgiFormResultType cgiFormStringSpaceNeeded( + char *name, int *length); + + +extern cgiFormResultType cgiFormStringMultiple( + char *name, char ***ptrToStringArray); + +extern void cgiStringArrayFree(char **stringArray); + +extern cgiFormResultType cgiFormInteger( + char *name, int *result, int defaultV); + +extern cgiFormResultType cgiFormIntegerBounded( + char *name, int *result, int min, int max, int defaultV); + +extern cgiFormResultType cgiFormDouble( + char *name, double *result, double defaultV); + +extern cgiFormResultType cgiFormDoubleBounded( + char *name, double *result, double min, double max, double defaultV); + +extern cgiFormResultType cgiFormSelectSingle( + char *name, char **choicesText, int choicesTotal, + int *result, int defaultV); + + +extern cgiFormResultType cgiFormSelectMultiple( + char *name, char **choicesText, int choicesTotal, + int *result, int *invalid); + +/* Just an alias; users have asked for this */ +#define cgiFormSubmitClicked cgiFormCheckboxSingle + +extern cgiFormResultType cgiFormCheckboxSingle( + char *name); + +extern cgiFormResultType cgiFormCheckboxMultiple( + char *name, char **valuesText, int valuesTotal, + int *result, int *invalid); + +extern cgiFormResultType cgiFormRadio( + char *name, char **valuesText, int valuesTotal, + int *result, int defaultV); + +/* The paths returned by this function are the original names of files + as reported by the uploading web browser and shoult NOT be + blindly assumed to be "safe" names for server-side use! */ +extern cgiFormResultType cgiFormFileName( + char *name, char *result, int max); + +/* The content type of the uploaded file, as reported by the browser. + It should NOT be assumed that browsers will never falsify + such information. */ +extern cgiFormResultType cgiFormFileContentType( + char *name, char *result, int max); + +extern cgiFormResultType cgiFormFileSize( + char *name, int *sizeP); + +typedef struct cgiFileStruct *cgiFilePtr; + +extern cgiFormResultType cgiFormFileOpen( + char *name, cgiFilePtr *cfpp); + +extern cgiFormResultType cgiFormFileRead( + cgiFilePtr cfp, char *buffer, int bufferSize, int *gotP); + +extern cgiFormResultType cgiFormFileClose( + cgiFilePtr cfp); + +extern cgiFormResultType cgiCookieString( + char *name, char *result, int max); + +extern cgiFormResultType cgiCookieInteger( + char *name, int *result, int defaultV); + +cgiFormResultType cgiCookies( + char ***ptrToStringArray); + +typedef enum { + cgiCookieSecure = 1, + cgiCookieHttpOnly = 2, + cgiCookieSameSiteStrict = 4 +} cgiCookieOption; + +/* path can be null or empty in which case a path of / (entire site) is set. + domain can be a single web site; if it is an entire domain, such as + 'boutell.dev', it should begin with a dot: '.boutell.dev' */ +extern void cgiHeaderCookieSet(char *name, char *value, + int secondsToLive, char *path, char *domain, int options); +extern void cgiHeaderCookieSetString(char *name, char *value, + int secondsToLive, char *path, char *domain); +extern void cgiHeaderCookieSetInteger(char *name, int value, + int secondsToLive, char *path, char *domain); +extern void cgiHeaderLocation(char *redirectUrl); +extern void cgiHeaderStatus(int status, char *statusMessage); +extern void cgiHeaderContentType(char *mimeType); + +typedef enum { + cgiEnvironmentIO, + cgiEnvironmentMemory, + cgiEnvironmentSuccess, + cgiEnvironmentWrongVersion +} cgiEnvironmentResultType; + +extern cgiEnvironmentResultType cgiWriteEnvironment(char *filename); +extern cgiEnvironmentResultType cgiReadEnvironment(char *filename); + +extern int cgiMain(); + +extern cgiFormResultType cgiFormEntries( + char ***ptrToStringArray); + +/* Output string with the <, &, and > characters HTML-escaped. + 's' is null-terminated. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiHtmlEscape(const char *s); + +/* Output data with the <, &, and > characters HTML-escaped. + 'data' is not null-terminated; 'len' is the number of + bytes in 'data'. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiHtmlEscapeData(const char *data, int len); + +/* Output string with the " character HTML-escaped, and no + other characters escaped. This is useful when outputting + the contents of a tag attribute such as 'href' or 'src'. + 's' is null-terminated. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiValueEscape(const char *s); + +/* Output data with the " character HTML-escaped, and no + other characters escaped. This is useful when outputting + the contents of a tag attribute such as 'href' or 'src'. + 'data' is not null-terminated; 'len' is the number of + bytes in 'data'. Returns cgiFormIO in the event + of error, cgiFormSuccess otherwise. */ +cgiFormResultType cgiValueEscapeData(const char *data, int len); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* CGI_C */ + diff --git a/applications/WebConfigure/example/cgiDemo/dataview.html b/applications/WebConfigure/example/cgiDemo/dataview.html new file mode 100644 index 0000000..74d2a31 --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/dataview.html @@ -0,0 +1,620 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Loading... +
+
+
+ + + \ No newline at end of file diff --git a/applications/WebConfigure/example/cgiDemo/example.cpp b/applications/WebConfigure/example/cgiDemo/example.cpp new file mode 100644 index 0000000..f066b6f --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/example.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +#include +#include + +using namespace std; +using namespace cgicc; + +int main(int argc,char **argv) +{ + try + { + Cgicc cgi; + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << endl; + cout << html().set("lang", "en").set("dir", "ltr") << endl; + // Set up the page's header and title. + cout << head() << endl; + cout << title() << "GNU cgicc v" << cgi.getVersion() << title() << endl; + cout << head() << endl; + + // Start the HTML body + cout << body() << endl; + // Print out a message + cout << h1("Hello, world from GNU cgicc") << endl; + // Close the document + cout << body() << html(); + } + catch(const exception& e) + { + // handle error condition + } + + return 0; +} diff --git a/applications/WebConfigure/example/cgiDemo/fsu_loginbg.jpg b/applications/WebConfigure/example/cgiDemo/fsu_loginbg.jpg new file mode 100644 index 0000000..04ae322 Binary files /dev/null and b/applications/WebConfigure/example/cgiDemo/fsu_loginbg.jpg differ diff --git a/applications/WebConfigure/example/cgiDemo/fsu_model.tgz b/applications/WebConfigure/example/cgiDemo/fsu_model.tgz new file mode 100644 index 0000000..5969e5c Binary files /dev/null and b/applications/WebConfigure/example/cgiDemo/fsu_model.tgz differ diff --git a/applications/WebConfigure/example/cgiDemo/hellocgi.cpp b/applications/WebConfigure/example/cgiDemo/hellocgi.cpp new file mode 100644 index 0000000..ec66bbc --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/hellocgi.cpp @@ -0,0 +1,14 @@ +#include +#include +int main(void) +{ + printf("Content-type: text/html\n\n"); + printf("\n"); + printf("\n"); + printf("\n"); + printf("Hello,world.\n"); + printf("\n"); + printf("\n"); + exit(0); +} + diff --git a/applications/WebConfigure/example/cgiDemo/logo.png b/applications/WebConfigure/example/cgiDemo/logo.png new file mode 100644 index 0000000..ab8c9e0 Binary files /dev/null and b/applications/WebConfigure/example/cgiDemo/logo.png differ diff --git a/applications/WebConfigure/example/cgiDemo/pass.c b/applications/WebConfigure/example/cgiDemo/pass.c new file mode 100644 index 0000000..bbac555 --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/pass.c @@ -0,0 +1,97 @@ +/*===================================================================== +cgi例子 +=====================================================================*/ +//pass.c +#include +#include +#include + +char* getcgidata(FILE* fp, char* requestmethod); + +int main(void) +{ + char *input; + char *req_method; + char name[64]; + char pass[64]; + int i = 0; + int j = 0; + +// printf("Content-type: text/plain; charset=iso-8859-1\n\n"); + printf("Content-type: text/html\n\n"); + printf("The following is query reuslt:

"); + req_method = getenv("REQUEST_METHOD"); + input = getcgidata(stdin, req_method); + // 我们获取的input字符串可能像如下的形式 + // Username="admin"&Password="aaaaa" + // 其中"Username="和"&Password="都是固定的 + // 而"admin"和"aaaaa"都是变化的,也是我们要获取的 + + // 前面9个字符是UserName= + // 在"UserName="和"&"之间的是我们要取出来的用户名 + for ( i = 9; i < (int)strlen(input); i++ ) + { + if ( input[i] == '&' ) + { + name[j] = '\0'; + break; + } + name[j++] = input[i]; + } + // 前面9个字符 + "&Password="10个字符 + Username的字符数 + // 是我们不要的,故省略掉,不拷贝 + for ( i = 19 + strlen(name), j = 0; i < (int)strlen(input); i++ ) + { + pass[j++] = input[i]; + } + pass[j] = '\0'; + printf("Your Username is %s
Your Password is %s
\n", name, pass); + + return 0; +} + +char* getcgidata(FILE* fp, char* requestmethod) +{ + char* input; + int len; + int size = 1024; + int i = 0; + + if (!strcmp(requestmethod, "GET")) + { + input = getenv("QUERY_STRING"); + return input; + } + else if (!strcmp(requestmethod, "POST")) + { + len = atoi(getenv("CONTENT_LENGTH")); + input = (char*)malloc(sizeof(char)*(size + 1)); + + if (len == 0) + { + input[0] = '\0'; + return input; + } + + while(1) + { + input[i] = (char)fgetc(fp); + if (i == size) + { + input[i+1] = '\0'; + return input; + } + + --len; + if (feof(fp) || (!(len))) + { + i++; + input[i] = '\0'; + return input; + } + i++; + } + } + return NULL; +} + diff --git a/applications/WebConfigure/example/cgiDemo/testcgi.c b/applications/WebConfigure/example/cgiDemo/testcgi.c new file mode 100644 index 0000000..604b571 --- /dev/null +++ b/applications/WebConfigure/example/cgiDemo/testcgi.c @@ -0,0 +1,35 @@ +#include +#include + +int main(void) +{ + char *data; + long m,n; + printf("Content-type:text/html\n\n"); + printf(""); + printf(""); + printf("multi"); + printf(""); + printf(""); + printf("

multi control

"); + printf("
"); + printf("

Direction:"); + printf("

Step Number:"); + printf("

"); + printf(""); + printf(""); + printf("

"); + printf(""); + printf(""); + printf(""); + + data=getenv("QUERY_STRING"); + if(!data) + printf("

get no datas and it's wrong."); + else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2) + printf("

the input must be numbers"); + else + printf("

%ld and %ld multi= %ld",m,n,m*n); + return 0; +} + diff --git a/applications/WebConfigure/example/cgiDemo/web2.tgz b/applications/WebConfigure/example/cgiDemo/web2.tgz new file mode 100644 index 0000000..ade90c7 Binary files /dev/null and b/applications/WebConfigure/example/cgiDemo/web2.tgz differ diff --git a/applications/WebConfigure/example/cgiExample/LED.cpp b/applications/WebConfigure/example/cgiExample/LED.cpp new file mode 100644 index 0000000..2caeb15 --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/LED.cpp @@ -0,0 +1,67 @@ +#include "LED.h" + +LED::LED(int number) +{ + this->number = number; + // much easier with C++11 using to_string(number) + std::ostringstream s; // using a stream to contruct the path + s << LED_PATH << number; //append LED number to LED_PATH + path = std::string(s.str()); //convert back from stream to string +} + +void LED::writeLED(std::string filename, std::string value) +{ + return; +#if 0 + std::ofstream fs; + fs.open((path + filename).c_str()); + fs << value; + fs.close(); +#endif +} + +void LED::removeTrigger() +{ + writeLED("/trigger", "none"); +} + +void LED::turnOn() +{ + using namespace std; + cout << "Turning LED" << number << " on." << endl; + removeTrigger(); + writeLED("/brightness", "1"); +} + +void LED::turnOff() +{ + using namespace std; + cout << "Turning LED" << number << " off." << endl; + removeTrigger(); + writeLED("/brightness", "0"); +} + +void LED::flash(std::string delayms = "50") +{ + using namespace std; + cout << "Making LED" << number << " flash." << endl; + writeLED("/trigger", "timer"); + writeLED("/delay_on", delayms); + writeLED("/delay_off", delayms); +} + +void LED::outputState() +{ + using namespace std; + ifstream fs; + fs.open((path + "/trigger").c_str()); + string line; + while( getline(fs, line) ) cout << line << endl; + fs.close(); +} + +LED::~LED() +{ + using namespace std; + cout << "destroying the LED with path: " << path << endl; +} diff --git a/applications/WebConfigure/example/cgiExample/LED.h b/applications/WebConfigure/example/cgiExample/LED.h new file mode 100644 index 0000000..3c7007b --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/LED.h @@ -0,0 +1,37 @@ +/** Simple On-board LED flashing program - written by Derek Molloy +* simple OOP struture for the Exploring BeagleBone book +* +* This program uses all four LEDS and can be executed in three ways: +* makeLEDs on +* makeLEDs off +* makeLEDs flash (flash at time delay intervals) +* makeLEDs status (get the trigger status) +* +* Written by Derek Molloy for the book "Exploring BeagleBone: Tools and +* Techniques for Building with Embedded Linux" by John Wiley & Sons, 2014 +* ISBN 9781118935125. Please see the file README.md in the repository root +* directory for copyright and GNU GPLv3 license information. */ + +#include +#include +#include +#include + + +#define LED_PATH "/sys/class/leds/beaglebone:green:usr" + +class LED +{ +private: + std::string path; + int number; + virtual void writeLED(std::string filename, std::string value); + virtual void removeTrigger(); +public: + LED(int number); + virtual void turnOn(); + virtual void turnOff(); + virtual void flash(std::string delayms); + virtual void outputState(); + virtual ~LED(); +}; diff --git a/applications/WebConfigure/example/cgiExample/Makefile b/applications/WebConfigure/example/cgiExample/Makefile new file mode 100644 index 0000000..310d141 --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/Makefile @@ -0,0 +1,58 @@ +###################################### +# +###################################### +#source file +#ԴļԶ.c.cppļĿ궨Ϊͬ.oļ +SOURCE := $(wildcard *.c) $(wildcard *.cpp) +OBJS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE))) + +#target you can change test to what you want +#ĿļҪִļ +TARGET := cgiexam + +#compile and lib parameter +# +CC := g++ +LIBS := -L/usr/local/lib -lhv -lsqlite3 -lopdb -lpthread -liconv -ldl -lz -lcgicc +LDFLAGS := +DEFINES := +INCLUDE := -I. -I/usr/local/include + +CFLAGS := -Wall -O3 $(DEFINES) $(INCLUDE) -std=c++11 + +# DEBUG ǷϢ +ifeq ($(DEBUG), 1) + CFLAGS += -g -D_DEBUG +else ifeq ($(debug),1) + CFLAGS += -g -D_DEBUG +endif + +CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H + +#i think you should do anything here +#ĻϲҪκθĶ +.PHONY : everything objs clean veryclean rebuild + + +everything : $(TARGET) + +all : $(TARGET) + + +objs : $(OBJS) + + +rebuild: veryclean everything + + +clean : + rm -fr *.so + rm -fr *.o + + +veryclean : clean + rm -fr $(TARGET) + + +$(TARGET) : $(OBJS) + $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) diff --git a/applications/WebConfigure/example/cgiExample/cgiExample.sln b/applications/WebConfigure/example/cgiExample/cgiExample.sln new file mode 100644 index 0000000..c923f63 --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/cgiExample.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33529.622 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgiExample", "cgiExample.vcxproj", "{47ACBFFD-AB6B-47C9-BA41-041BA16EA697}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM.ActiveCfg = Debug|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM.Build.0 = Debug|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM.Deploy.0 = Debug|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM64.Build.0 = Debug|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x64.ActiveCfg = Debug|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x64.Build.0 = Debug|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x64.Deploy.0 = Debug|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x86.ActiveCfg = Debug|x86 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x86.Build.0 = Debug|x86 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Debug|x86.Deploy.0 = Debug|x86 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM.ActiveCfg = Release|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM.Build.0 = Release|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM.Deploy.0 = Release|ARM + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM64.ActiveCfg = Release|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM64.Build.0 = Release|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|ARM64.Deploy.0 = Release|ARM64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x64.ActiveCfg = Release|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x64.Build.0 = Release|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x64.Deploy.0 = Release|x64 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x86.ActiveCfg = Release|x86 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x86.Build.0 = Release|x86 + {47ACBFFD-AB6B-47C9-BA41-041BA16EA697}.Release|x86.Deploy.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C7F3977A-1913-455B-BDEB-9A3127CF2ECF} + EndGlobalSection +EndGlobal diff --git a/applications/WebConfigure/example/cgiExample/cgiExample.vcxproj b/applications/WebConfigure/example/cgiExample/cgiExample.vcxproj new file mode 100644 index 0000000..498ef3d --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/cgiExample.vcxproj @@ -0,0 +1,90 @@ + + + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + Debug + x86 + + + Release + x86 + + + Debug + x64 + + + Release + x64 + + + + {47acbffd-ab6b-47c9-ba41-041ba16ea697} + Linux + cgiExample + 15.0 + Linux + 1.0 + Generic + {D51BCBC9-82E9-4017-911E-C93873C4EA2B} + + + + true + + + false + + + true + + + false + + + true + /shared_folder/projects + + + false + + + false + + + true + + + + + + + + + + + + + + C:\5.EMS-Projects\sdk\include;%(AdditionalIncludeDirectories) + + + + + \ No newline at end of file diff --git a/applications/WebConfigure/example/cgiExample/main.cpp b/applications/WebConfigure/example/cgiExample/main.cpp new file mode 100644 index 0000000..cdff176 --- /dev/null +++ b/applications/WebConfigure/example/cgiExample/main.cpp @@ -0,0 +1,756 @@ +#if 0 + +#include +#include + +#include +// for the getenv call +#include // for the system uptime call + +#include // the cgicc headers +#include +#include +#include + +#include "LED.h" + +using namespace std; +using namespace cgicc; + +#if 0 +int main(int argc, char** argv) +{ + try + { + Cgicc cgi; + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << endl; + cout << html().set("lang", "en").set("dir", "ltr") << endl; + + // Set up the page's header and title. + cout << head() << endl; + cout << title() << "GNU cgicc v" << cgi.getVersion() << title() << endl; + cout << head() << endl; + + // Start the HTML body + cout << body() << endl; + + // Print out a message + cout << h1("Hello, world from GNU cgicc") << endl; + + // Close the document + cout << body() << html(); + } + + catch( const exception& e ) + { + // handle error condition + } + + return 0; +} +#endif + + +//cgicc GET example +// http://192.168.3.89/api/cgiexam?command=off +// + +#if 0 +int main() +{ + Cgicc form; // The Cgicc object + LED* led3 = new LED(3); // The LED object -- USR3 + + // Generate the response HTML page + char* value = getenv("REMOTE_ADDR"); // the remote address CGI env. variable + cout << "Content-type:text/html\r\n\r\n"; // generate the HTML output + cout << "\n"; + cout << "EBB C++ GET Example\n"; + cout << "\n"; + cout << "

BeagleBone GET Example

\n"; + + form_iterator it = form.getElement("command"); // read the URL get command string + if( it == form.getElements().end() || it->getValue() == "" ) + { + cout << "
The LED command is missing or invalid.
"; + cout << "
Valid commands are on, off, flash, and status
"; + } + else + { + string cmd(**it); + cout << "
The LED command is " << cmd << ".
"; + /** This code sets the USR3 LED state using the LED class **/ + if( cmd == "on" ) led3->turnOn(); + else if( cmd == "off" ) led3->turnOff(); + else if( cmd == "flash" ) led3->flash("100"); + else if( cmd == "status" ) + { + cout << "
"; + led3->outputState(); + cout << "
"; + } + else cout << "
Invalid command!
"; + } + cout << "
The CGI REMOTE_ADDR environment variable is " << value << "
"; + cout << "\n"; + return 0; +} +#endif + +//cigcc POST example +#if 0 + +int main() +{ + Cgicc form; // the CGI form object + LED* led3 = new LED(3); // the LED object -- USR3 + string flashPeriod, command; // default values + + bool isStatus = form.queryCheckbox("status"); // get the state of the status checkbox + form_iterator it = form.getElement("period"); // get the period text value + if( it == form.getElements().end() || it->getValue() == "" ) + { + flashPeriod = "100"; // if it is invalid use 100 + } + else + { + flashPeriod = it->getValue(); + } // otherwise use submitted value + + it = form.getElement("command"); // get the radio command chosen + + if( it == form.getElements().end() || it->getValue() == "" ) + { + command = "off"; // if it is invalid use "off" + } + else + { + command = it->getValue(); + } // otherwise use submitted value + + char* value = getenv("REMOTE_ADDR"); // The remote address CGI env. variable + + std::string post_url = "/api/cgiexam"; + + // Generate the form but use states that are set in the form that was submitted + cout << HTTPHTMLHeader() << endl; // Generate the HTML form using cgicc + cout << html() << head() << title("EBB C++ Post LED Example") << head() << endl; + cout << body() << h1("BeagleBone POST LED Example") << endl;; + + //cout << "
\n"; + cout << "\n"; + + cout << "
LED state: On "; // is the command="on"? + cout << " Off "; + cout << " Flash "; + cout << " Display Status
"; + cout << "
Flash period: ms "; // populate the text field + cout << ""; + cout << "
"; + + // Process the form data to trigger the LED state + if( command == "on" ) + led3->turnOn(); // turn the LED on? + else if( command == "off" ) + led3->turnOff(); // off? + else if( command == "flash" ) + led3->flash(flashPeriod); // flash with the period above + else + cout << "
Invalid command!
"; // not possible at the moment + + // If the Display Status checkbox is checked then display the status now + // this should happen after the command is set, otherwise it is old data + if( isStatus ) + { + cout << "
"; + led3->outputState(); + cout << "
"; + } + + cout << "
The CGI REMOTE_ADDR environment variable is " << value << "
"; + cout << body() << html(); + return 0; +} + + +#endif + +#endif + +/* -*-mode:c++; c-file-style: "gnu";-*- */ +/* + * $Id: test.cpp,v 1.27 2007/07/08 20:06:59 sebdiaz Exp $ + * + * Copyright (C) 1996 - 2004 Stephen F. Booth + * 2007 Sebastien DIAZ + * Part of the GNU cgicc library, http://www.gnu.org/software/cgicc + * + * 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 3 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, USA + */ + + /*! \file test.cpp + * \brief GNU %cgicc test application + * + * Tests and demonstrates access of form data using the GNU %cgicc library. + */ + +#include +#include +#include +#include +#include +#include + +#include "cgicc/CgiDefs.h" +#include "cgicc/Cgicc.h" +#include "cgicc/HTTPHTMLHeader.h" +#include "cgicc/HTMLClasses.h" + +#if HAVE_SYS_UTSNAME_H +# include +#endif + +#if HAVE_SYS_TIME_H +# include +#endif + +using namespace std; +using namespace cgicc; + +// Function prototypes +void dumpEnvironment(const CgiEnvironment& env); +void dumpList(const Cgicc& formData); +void showForm(const Cgicc& formData); + +const std::string styles = +"body { color: black; background: white; }\n" +"span.red { color:red; }\n" +"hr.half { width: 60%; margin-left: auto; margin-right: auto; }\n" +"div.center { text-align: center; }\n" +"div.notice { border: solid thin; padding: 1em; margin: 1em 0; " +"background: #ddd; text-align: center; }" +"table { width: 90%; margin-left: auto; margin-right: auto; }\n" +"tr.title, td.title { color: white; background: black; font-weight: bold; " +"text-align: center; }\n" +"tr.data, td.data { background: #ddd; }\n" +"td.form { background: #ddd; text-align: center; }\n" +; + +// Print the form for this CGI +void printForm(const Cgicc& cgi) +{ + cout << "
" << endl; + + cout << "
  
" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "" + << "" << endl; + + cout << "
Your name" + << "" + << "
Your salary in millions
(80-120)
" + << "" + << "
Hours you've wasted on the web" + << "" + << "
Your thoughts (on anything)" + << "" << "
Are you hungry?" + << "" + << "Yes
Your favorite flavors of ice cream" + << "" << "
Your hair color" + << "" << "
Your web browser" + << "Konqeuror" + << "Lynx" + << "Mozilla" + << "IE" + << "Other" + << "
Your favorite authors" + << "" + << "O'Brian" + << "" + << "Feynman" + << "Camus" + << "Conrad" + << "Vergil" + << "Plato" + << "
In the output, show" + << "" + << "Data from CgiEnvironment
" + << "" + << "All FormEntries
" + << "" + << "Data from Cgicc" + << "
Exception Handling" + << "" + << "Throw an exception to test error handling" + << "
Save and Restore" + << "" + << " Save submission to a file
" + << "" + << "Restore data from the last saved submission" + << "
" << endl; + + cout << "

" + << "" + << "" + << "

" << endl; +} + +// Main Street, USA +int main(int /*argc*/, char** /*argv*/) +{ + try + { +#if HAVE_GETTIMEOFDAY + timeval start; + gettimeofday(&start, NULL); +#endif + + // Create a new Cgicc object containing all the CGI data + Cgicc cgi; + + // If the user wants to throw an exception, go ahead and do it + if( cgi.queryCheckbox("throw") && !cgi.queryCheckbox("restore") ) + throw std::runtime_error("User-requested Exception thrown in main()"); + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << endl; + cout << html().set("lang", "en").set("dir", "ltr") << endl; + + // Set up the page's header and title. + // I will put in lfs to ease reading of the produced HTML. + cout << head() << endl; + + // Output the style sheet portion of the header + cout << style() << comment() << endl; + cout << styles; + cout << comment() << style() << endl; + + cout << title() << "GNU cgicc v" << cgi.getVersion() << " Test" + << title() << endl; + + cout << head() << endl; + + // Start the HTML body + cout << body() << endl; + + cout << h1() << "GNU cgi" << span("cc").set("class", "red") + << " v" << cgi.getVersion() << " Test" << h1() << endl; + + // Get a pointer to the environment + const CgiEnvironment& env = cgi.getEnvironment(); + + // Generic thank you message + cout << comment() << "This page generated by cgicc for " + << env.getRemoteHost() << comment() << endl; + cout << h4() << "Thanks for using cgi" << span("cc").set("class", "red") + << ", " << env.getRemoteHost() + << '(' << env.getRemoteAddr() << ")!" << h4() << endl; + + // If the user wants to save the submission, do it + if( cgi.queryCheckbox("save") ) + { + // Make sure the save file is readable and writable by the CGI process + cgi.save("save"); + cout << p(h2("Data Saved")) << endl; + + cout << cgicc::div().set("class", "notice") << endl; + cout << "Your data has been saved, and may be restored (by anyone) " + << "via the same form." << endl << cgicc::div() << p() << endl; + } + + // If the user wants to restore from the last submission, do it + if( cgi.queryCheckbox("restore") ) + { + cgi.restore("save"); + cout << p(h2("Data Restored")) << endl; + + cout << cgicc::div().set("class", "notice") << endl; + cout << "The data displayed has been restored from a file on disk." + << endl << cgicc::div() << p() << endl; + } + + // If the user requested a dump of the environment, + // create a simple table showing the values of the + // environment variables + if( cgi.queryCheckbox("showEnv") ) + dumpEnvironment(env); + + // If the user requested, print out the raw form data from + // the vector of FormEntries. This will contain every + // element in the list. + // This is one of two ways to get at form data, the other + // being the use of Cgicc's getElement() methods. + if( cgi.queryCheckbox("showFE") ) + dumpList(cgi); + + // If the user requested data via Cgicc's getElement() methods, do it. + // This is different than the use of the list of FormEntries + // because it requires prior knowledge of the name of form elements. + // Usually they will be known, but you never know. + if( cgi.queryCheckbox("showForm") ) + showForm(cgi); + + // Print out the form to do it again + cout << br() << endl; + printForm(cgi); + cout << hr().set("class", "half") << endl; + + // Information on cgicc + cout << cgicc::div().set("align", "center").set("class", "smaller") << endl; + cout << "GNU cgi" << span("cc").set("class", "red") << " v"; + cout << cgi.getVersion() << br() << endl; + cout << "Compiled at " << cgi.getCompileTime(); + cout << " on " << cgi.getCompileDate() << br() << endl; + + cout << "Configured for " << cgi.getHost(); +#if HAVE_UNAME + struct utsname info; + if( uname(&info) != -1 ) + { + cout << ". Running on " << info.sysname; + cout << ' ' << info.release << " ("; + cout << info.nodename << ")." << endl; + } +#else + cout << "." << endl; +#endif + +#if HAVE_GETTIMEOFDAY + // Information on this query + timeval end; + gettimeofday(&end, NULL); + long us = ((end.tv_sec - start.tv_sec) * 1000000) + + (end.tv_usec - start.tv_usec); + + cout << br() << "Total time for request = " << us << " us"; + cout << " (" << static_cast(us / 1000000.0) << " s)"; +#endif + + // End of document + cout << cgicc::div() << endl; + cout << body() << html() << endl; + + // No chance for failure in this example + return EXIT_SUCCESS; + } + + // Did any errors occur? + catch( const std::exception& e ) + { + + // This is a dummy exception handler, as it doesn't really do + // anything except print out information. + + // Reset all the HTML elements that might have been used to + // their initial state so we get valid output + html::reset(); head::reset(); body::reset(); + title::reset(); h1::reset(); h4::reset(); + comment::reset(); td::reset(); tr::reset(); + table::reset(); cgicc::div::reset(); p::reset(); + a::reset(); h2::reset(); colgroup::reset(); + + // Output the HTTP headers for an HTML document, and the HTML 4.0 DTD info + cout << HTTPHTMLHeader() << HTMLDoctype(HTMLDoctype::eStrict) << endl; + cout << html().set("lang", "en").set("dir", "ltr") << endl; + + // Set up the page's header and title. + // I will put in lfs to ease reading of the produced HTML. + cout << head() << endl; + + // Output the style sheet portion of the header + cout << style() << comment() << endl; + cout << "body { color: black; background-color: white; }" << endl; + cout << "hr.half { width: 60%; align: center; }" << endl; + cout << "span.red, STRONG.red { color: red; }" << endl; + cout << "div.notice { border: solid thin; padding: 1em; margin: 1em 0; " + << "background: #ddd; }" << endl; + + cout << comment() << style() << endl; + + cout << title("GNU cgicc exception") << endl; + cout << head() << endl; + + cout << body() << endl; + + cout << h1() << "GNU cgi" << span("cc", set("class", "red")) + << " caught an exception" << h1() << endl; + + cout << cgicc::div().set("align", "center").set("class", "notice") << endl; + + cout << h2(e.what()) << endl; + + // End of document + cout << cgicc::div() << endl; + cout << hr().set("class", "half") << endl; + cout << body() << html() << endl; + + return EXIT_SUCCESS; + } +} + +// Print out a table of the CgiEnvironment +void +dumpEnvironment(const CgiEnvironment& env) +{ + // This is just a brain-dead dump of information. + // Almost all of this code is for HTML formatting + cout << h2("Environment information from CgiEnvironment") << endl; + + cout << cgicc::div().set("align", "center") << endl; + + cout << table() << endl; + + cout << tr() << td("Request Method").set("class", "title") + << td(env.getRequestMethod()).set("class", "data") << tr() << endl; + cout << tr() << td("Path Info").set("class", "title") + << td(env.getPathInfo()).set("class", "data") << tr() << endl; + cout << tr() << td("Path Translated").set("class", "title") + << td(env.getPathTranslated()).set("class", "data") << tr() << endl; + cout << tr() << td("Script Name").set("class", "title") + << td(env.getScriptName()).set("class", "data") << tr() << endl; + cout << tr() << td("HTTP Referrer").set("class", "title") + << td(env.getReferrer()).set("class", "data") << tr() << endl; + cout << tr() << td("HTTP Cookie").set("class", "title") + << td(env.getCookies()).set("class", "data") << tr() << endl; + cout << tr() << td("Query String").set("class", "title") + << td(env.getQueryString()).set("class", "data") << tr() << endl; + cout << tr() << td("Content Length").set("class", "title") + << td().set("class", "data") << env.getContentLength() + << td() << tr() << endl; + cout << tr() << td("Post Data").set("class", "title") + << td().set("class", "data") + << pre(env.getPostData()).set("class", "data") << td() + << tr() << endl; + cout << tr() << td("Remote Host").set("class", "title") + << td(env.getRemoteHost()).set("class", "data") << tr() << endl; + cout << tr() << td("Remote Address").set("class", "title") + << td(env.getRemoteAddr()).set("class", "data") << tr() << endl; + cout << tr() << td("Authorization Type").set("class", "title") + << td(env.getAuthType()).set("class", "data") << tr() << endl; + cout << tr() << td("Remote User").set("class", "title") + << td(env.getRemoteUser()).set("class", "data") << tr() << endl; + cout << tr() << td("Remote Identification").set("class", "title") + << td(env.getRemoteIdent()).set("class", "data") << tr() << endl; + cout << tr() << td("Content Type").set("class", "title") + << td(env.getContentType()).set("class", "data") << tr() << endl; + cout << tr() << td("HTTP Accept").set("class", "title") + << td(env.getAccept()).set("class", "data") << tr() << endl; + cout << tr() << td("User Agent").set("class", "title") + << td(env.getUserAgent()).set("class", "data") << tr() << endl; + cout << tr() << td("Server Software").set("class", "title") + << td(env.getServerSoftware()).set("class", "data") << tr() << endl; + cout << tr() << td("Server Name").set("class", "title") + << td(env.getServerName()).set("class", "data") << tr() << endl; + cout << tr() << td("Gateway Interface").set("class", "title") + << td(env.getGatewayInterface()).set("class", "data") << tr() << endl; + cout << tr() << td("Server Protocol").set("class", "title") + << td(env.getServerProtocol()).set("class", "data") << tr() << endl; + cout << tr() << td("Server Port").set("class", "title") + << td().set("class", "data") << env.getServerPort() + << td() << tr() << endl; + cout << tr() << td("HTTPS").set("class", "title") + << td().set("class", "data") << (env.usingHTTPS() ? "true" : "false") + << td() << tr() << endl; + cout << tr() << td("Redirect Request").set("class", "title") + << td(env.getRedirectRequest()).set("class", "data") << tr() << endl; + cout << tr() << td("Redirect URL").set("class", "title") + << td(env.getRedirectURL()).set("class", "data") << tr() << endl; + cout << tr() << td("Redirect Status").set("class", "title") + << td(env.getRedirectStatus()).set("class", "data") << tr() << endl; + + cout << table() << cgicc::div() << endl; +} + +// Print out the value of every form element +void +dumpList(const Cgicc& formData) +{ + cout << h2("Form Data via vector") << endl; + + cout << cgicc::div().set("align", "center") << endl; + + cout << table() << endl; + + cout << tr().set("class", "title") << td("Element Name") + << td("Element Value") << tr() << endl; + + // Iterate through the vector, and print out each value + const_form_iterator iter; + for( iter = formData.getElements().begin(); + iter != formData.getElements().end(); + ++iter ) + { + cout << tr().set("class", "data") << td(iter->getName()) + << td(iter->getValue()) << tr() << endl; + } + cout << table() << cgicc::div() << endl; +} + +// Print out information customized for each element +void +showForm(const Cgicc& formData) +{ + + // I am using an if statement to check if each element is found + cout << h2("Form Data via Cgicc") << endl; + + cout << cgicc::div().set("class", "notice") << endl; + + //getElement + const_form_iterator name = formData.getElement("name"); + if( name != (*formData).end() && !name->isEmpty() ) + cout << "Your name is " << **name << '.' << br() << endl; + else + cout << "You don't have a name." << br() << endl; + + // getElement and getDoubleValue + const_form_iterator salary = formData.getElement("bucks"); + if( salary != (*formData).end() && !salary->isEmpty() ) + cout << "You make " << (*salary).getDoubleValue(80, 120) + << " million dollars." << br() << endl; + else + cout << "You don't have a salary." << br() << endl; + + // getElement and getIntegerValue + const_form_iterator hours = formData.getElement("time"); + if( hours != (*formData).end() && !(*hours).isEmpty() ) + cout << "You've wasted " << (*hours).getIntegerValue() + << " hours on the web." << br() << endl; + else + cout << "You haven't wasted any time on the web." << br() << endl; + + // getElement and getStrippedValue + const_form_iterator thoughts = formData.getElement("thoughts"); + if( thoughts != (*formData).end() && !(*thoughts).isEmpty() ) + { + std::string temp = (*thoughts).getStrippedValue(); + cout << "Your thoughts: " << temp << br() << endl; + } + else + cout << "You don't have any thoughts!?" << br() << endl; + + // queryCheckbox + if( formData.queryCheckbox("hungry") ) + cout << "You are hungry." << br() << endl; + else + cout << "You are not hungry." << br() << endl; + + // getElement + std::vector flavors; + formData.getElement("flavors", flavors); + if( !flavors.empty() ) + { + cout << "You like "; + for( std::string::size_type i = 0; i < flavors.size(); i++ ) + { + cout << flavors[i].getValue(); + if( i < flavors.size() - 2 ) + cout << ", "; + else if( i == flavors.size() - 2 ) + cout << " and "; + } + cout << " ice cream." << br() << endl; + } + else + cout << "You don't like ice cream!?" << br() << endl; + + // getElement + const_form_iterator hair = formData.getElement("hair"); + if( hair != (*formData).end() ) + cout << "Your hair is " << **hair << '.' << br() << endl; + else + cout << "You don't have any hair." << br() << endl; + + cout << "You surf the web with " << formData("browser") << '.' + << br() << endl; + + // getElement + std::vector authors; + formData.getElement("authors", authors); + if( !authors.empty() ) + { + cout << "You like to read books by "; + for( std::string::size_type i = 0; i < authors.size(); ++i ) + { + cout << authors[i].getValue(); + if( i < authors.size() - 2 ) + cout << ", "; + else if( i == authors.size() - 2 ) + cout << " and "; + } + cout << "." << br() << endl; + } + else + cout << "You don't like to read!?" << br() << endl; + + cout << cgicc::div() << endl; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/cgi-bin/readme.txt b/applications/WebConfigure/web/cgi-bin/readme.txt new file mode 100644 index 0000000..8d83794 --- /dev/null +++ b/applications/WebConfigure/web/cgi-bin/readme.txt @@ -0,0 +1 @@ +占位文件 diff --git a/applications/WebConfigure/web/css/WhiteStyle.css b/applications/WebConfigure/web/css/WhiteStyle.css new file mode 100644 index 0000000..60129dd --- /dev/null +++ b/applications/WebConfigure/web/css/WhiteStyle.css @@ -0,0 +1,1363 @@ +/* 字体颜色 */ +body{ + color: #464952; +} +.form-signin .input-group input,.logotitle,.sidebar ul li a, + .dropdown >a,.diagram>a{ + color: #464952; +} +.diagram>.btn:hover{ + color: #FFFFFF; + background-color: #237AF8; +} + +/* 背景颜色 */ +.navbar-header,.menu_bar,.navbar{ + background-color: #fbfefd; +} +.menu_bar .device-ul{ + background-color: rgba(212, 212, 212, 0.5); + padding: 2px; +} +.menu_bar .device-li:hover, +.menu_bar .device-li.active{ + background-image: none; + background-color: #237AF8; + color: #FFFFFF; +} + +/* 登录页面 li 鼠标悬停事件 */ +.login-ul > li { + position: relative; + display: block; +} +.login-ul > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.login-ul > li > a > select{ + cursor: pointer; +} +.login-ul > li > a:hover{ + background-color: rgba(153, 153, 153, 0); +} + +/* 输入框颜色 */ +input[type="text"],textarea,input[type="password"]{ + border-radius: 20px; + background-color: #F5F6FA; + border: 1px solid #5599FD; + box-shadow: rgba(15, 96, 244, 0) 0px 0px 20px; + color: #464952; +} + +/* 背景图 */ +.Body-Background{ + background: url(../img/loginbg.jpg) left top/cover no-repeat !important; +} +.Login-Background{ + background: url(../img/logininfo.png) no-repeat; +} + +/* 总览页面 */ +.body_bg{ + background: url(../img/bg.jpg) no-repeat center/100% 100%; +} +#view-scroll a{ + margin-right: 8px; +} + +.sidebar ul li a.active{ + background: url(../img/MenuBar/bg_White.png) left; + background-size: calc(100% - 20px) 50px; + color: #237AF8; +} +.sidebar ul li a:hover{ + background: url(../img/MenuBar/bg_White.png) left; + background-size: calc(100% - 20px) 50px; +} +.diagram-alarmCount, .view-alarmCount{ + background-color: #E64E5B; +} + +.nav .open > a, .nav .open > a:hover, .nav .open > a:focus{ + background-color: #F2F3FA; +} +.nav > li > a:focus{ + background-color: #F2F3FA; +} +.nav > li > a:hover{ + background-color: #F2F3FA; +} +.dropdown-menu{ + background-color: #F5F6FA; +} +.dropdown-menu > ul > li > a{ + color: #464952; +} +.dropdown-menu .divider{ + background-color: #464952; +} +#alarmCount{ + background-color: #E64E5B; +} + +.diagram> .active{ + background-color: #fbfefd; + color: #237AF8; + border: 2px solid rgb(222, 226, 246); +} +.diagram label{ + background-color: #F5F6FA; + border: 2px solid rgb(222, 226, 246); + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} +.btn:active, .btn.active{ + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + background-color: #237af8; + color: #FFFFFF; + border-color:#237af8; +} + +#view-scroll{ + margin: 8px 0px 0px 8px; + width: calc(99.5%); +} +#view-scroll.iView-scroll{ + margin-left: 160px; +} +#page-wrapper .row{ + margin-top: 8px; + margin-left: -7px; +} + +/* MDC 首页 */ +.MdcMenu{ + height: 48px; + border: 2px solid rgb(222, 226, 246); +} +.MdcMenu table,.MdcMenu tr td{ + background-color: #F5F6FC;/*rgb(222, 226, 246);*/ +} +.MdcMenu tr td.selected{ + background-color: #ffffff; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #237AF8; +} +.MdcMenu tr td:hover{ + background-color: #ffffff; +} + +/* iView 3.0 历史 */ +.record-title{ + height: 48px; + border: 2px solid rgb(35, 122, 248); +} +.record-title a{ + color: #464952; +} +.record-title table,.record-title table tr td{ + background-color: #F5F6FC; +} +.record-title table tr td:hover{ + background-color: #ffffff; +} +.record-title table tr td.selected{ + background-color: #237af8; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #ffffff; +} +.record-title table tr td.selected a{ + color: #ffffff; +} + + +.cabinet_body{ + background-image: none; + background-color: #FBFEFD; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.3); +} + +/* MDC 机柜背景图 */ +.UPS{ + background:url('../img/mdc/ups_White.png'); +} +.RACK{ + background:url('../img/mdc/rack_White.png'); +} +.AC{ + background:url('../img/mdc/ac_White.png'); +} +.UNUSE{ + background:url('../img/mdc/unuse_White.png'); +} +.CELL{ + background:url('../img/mdc/cell_White.png'); +} +.RECTIFIER{ + background:url('../img/mdc/rectifier_White.png'); +} +.HVDC{ + background:url('../img/mdc/hvdc_White.png'); +} + +.cabinet-box .cabinet-body{ + background-color: rgba(39, 47, 66, 0); + box-shadow: 0px 2px 20px 0px rgba(140, 146, 172, 0.5); +} +.cabinet-box .cabinet-body > div{ + background-color: #F5F6FC; + color: #464952; + border-radius: 0px; +} +.thermal .cabinet-body{ + border: rgb(208, 212, 232) 3px solid; +} + +/* MDC 机柜告警边框颜色 */ +.device .normal{ + border: rgb(208, 212, 232) 3px solid; + box-shadow: 0px 2px 20px 0px rgba(140, 146, 172, 0.5); + -webkit-box-shadow: 0px 2px 20px 0px rgba(140, 146, 172, 0.5); +} +.device .alarmUrgent{ + border:rgb(236, 93, 160) 3px solid; + box-shadow: 0px 2px 20px 0px rgba(219, 63, 118,1); + -webkit-box-shadow: 0px 2px 20px 0px rgba(219, 63, 118,1); + -moz-box-shadow: 0px 2px 20px 0px rgba(219, 63, 118,1); +} +.device .alarmImportant{ + border:rgb(231, 191, 6) 3px solid; + box-shadow: 0px 2px 20px 0px rgba(243, 220, 86,1); + -webkit-box-shadow: 0px 2px 20px 0px rgba(243, 220, 86,1); + -moz-box-shadow: 0px 2px 20px 0px rgba(243, 220, 86,1); +} +.device .alarmCommon{ + border:rgb(36, 122, 250) 3px solid; + box-shadow: 0px 2px 20px 0px rgba(100, 172, 253,1); + -webkit-box-shadow: 0px 2px 20px 0px rgba(100, 172, 253,1); + -moz-box-shadow: 0px 2px 20px 0px rgba(100, 172, 253,1); +} +.device .alarmTip{ + border:#17C06B 3px solid; + box-shadow: 0px 2px 20px 0px rgba(24, 212, 121,1); + -webkit-box-shadow: 0px 2px 20px 0px rgba(24, 212, 121,1); + -moz-box-shadow: 0px 2px 20px 0px rgba(24, 212, 121,1); +} +.device .disable{ + border:#5E687F 3px solid; + box-shadow: 0px 2px 20px 0px rgba(127, 140, 171, 1); + -webkit-box-shadow: 0px 2px 20px 0px rgba(127, 140, 171,1); + -moz-box-shadow: 0px 2px 20px 0px rgba(127, 140, 171,1); +} + +.cabinet{ + color: #464952;; +} +.cabinet .cabinet-title{ + background-color: rgba(8, 9, 13, 0); +} + +/** 天窗 */ +#skyFalling.normal{ + margin: 0.5vh 0px; + background: url(../img/mdc/AisleNormal_White.png) no-repeat; + background-size: 100% 18vh; +} +#skyFalling.alarm{ + margin: 0.5vh 0px; + background: url(../img/mdc/AisleAlarm_White.png) no-repeat; + background-size: 100% 18vh; +} + +.tableTop{ + background-color: #E64E5B; +} + +/* MDC 摄像头 */ +.camera_left.cameraNormal,.camera_right.cameraNormal{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall_Normal.png') no-repeat center; + background-size: 3vw 3vw; +} +.camera_left.cameraDisconnect,.camera_right.cameraDisconnect{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall.png') no-repeat center; + background-size: 3vw 3vw; +} + +/* MDC 实时告警 */ +.Play-Screen{ + background-color: #fbfefd; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.Play-Screen-Button{ + border-top: 1px solid #DDDDDF; +} +.Play-Screen-Button .box{ + background: #247AFA; + color: #FFFFFF; +} +.Play-Screen-Button .box:before{ + border-top: 20px solid #247AFA; +} + +.root-cheek .filer_body{ + width: 8vw; + height: 3vw; + position: absolute; + top: -2vh; + right: 0vh; + z-index: 3; + line-height: 3vh; +} +/* MDC 告警弹出框 */ +.modal-content, .dialog_box{ + background-color:#FFFFFF; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.modal-header,.table_body thead, table thead,.table_body tbody, table tbody{ + background-color:#FFFFFF; +} +.mdcBelow{ + background-color: #EFF3FE; +} +.modal-content .modal-header, .dialog_box .alarm_table_body{ + border-bottom: 1px solid rgba(255, 255, 255, 0); +} +.modal-content .input-password > div{ + width: 500px; + margin-left: auto; + margin-right: auto; +} +.modal-content .input-password label{ + width: 100px; + text-align: right; + margin-right: 10px; +} +.modal-content .input-password input{ + width: 300px; + display: inline-block; +} +/* 64节温场 */ +.node-temp-body .body-caliper, +.body-temperature table tr td{ + border: 1px solid #FFFFFF; +} +.node-edit-config .modal-header, +.node-edit-view .modal-header{ + border-bottom: 1px solid #d5daeb; + background-color:#FFFFFF; +} +.node-edit-config,.node-edit-view{ + border: 1px solid #d5daeb; +} +.add-temperature{ + border: 1px solid #d5daeb; +} +.Test-Box-Choose table tr td.point{ + border: 1px solid #000000; +} +.edit-img-temp{ + border: 1px solid #d5daeb; +} +.edit-temp .edit-temp-modal{ + border: 1px solid #d5daeb; +} +.active-alarm-body thead tr td, +.active-alarm-body thead tr th, +.alarm-list-table .alarm-table-time td, +.alarm-list-table td.alarm-table-level, +.alarm-list-table td.alarm-table-name{ + border-bottom: 1px solid #D5DAEB; +} + +.table-bordered{ + border: 1px solid #D5DAEB; + background-color: #d7dcee; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td{ + border-bottom: 1px solid #D5DAEB; +} + +.modal-content button.close{ + background-color: #f75ea9; +} +.modal-content button.close:hover{ + background-color: #EB5D9E; +} +.modal-content button.close i{ + color: #FFFFFF; +} + +/* 按钮 */ +.btn-default{ + background-color: #fbfefd; + border-color: #237af8; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active{ + background-color: #fbfefd; + color: #333; + border-color: #237af8; +} +.btn-danger{ + background-color: #EB5D9E; + border-color: #f45da7; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active{ + background-color: #f45da7; + border-color:#f45da7; +} +.alarmLevel3{ + color:#EB5D9E; +} +.btn-warning{ + background-color: #ED8B31; + border-color:#f69132; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active{ + background-color: #f69132; +} +.alarmLevel2{ + color:#ED8B31; +} +.btn-info,.btn-primary{ + background-color: #247AFA; + border-color:#247cff; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active{ + background-color: #247cff; + border-color:#247cff; +} +.alarmLevel1{ + color:#247AFA; +} +.btn-success{ + background-color: #5cb85c; + border-color:#66c666; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active{ + background-color: #66c666; + border-color:#66c666; +} +.alarmLevel0{ + color:#5cb85c; +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{ + background-color: #B9C0DD; + border: 1px solid #B9C0DD; + color: #464952; +} +.form-control{ + background-color: #F5F6FA; + border: 1px solid #5599FD; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #464952; +} + +.pagination > .active > a, .pagination > .active > span, +.pagination > .active > a:hover, .pagination > .active > span:hover, +.pagination > .active > a:focus, .pagination > .active > span:focus{ + background-color: #4F96FB; + color: #FFFFFF; +} +.pagination > li > a, .pagination > li > span{ + color: #656779; +} + +.camera-plugin{ + /*background-color: #EFF3FA;*/ +} + +.panel-default{ + background-color: rgba(0, 0, 0, 0); + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.panel-default > .panel-heading{ + background-color: #f5f6fc; + color: #656779; +} + +.asset-head{ + background-color: #EFF3FA; +} + +.panel-group .panel{ + border-radius: 20px; +} + +.rackDevice,.rackDevice-selected{ + color: #FFFFFF; +} + + +/* Room 首页 */ +.diagram-tab{ + background-color: #F5F6FA; + border: 2px solid rgb(222, 226, 246); + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} + +/* 告警总览表 */ +.page-header{ + color: #656779; +} +.panel-red .panel-heading, .panel-yellow .panel-heading, +.panel-blue .panel-heading, .panel-green .panel-heading{ + background-color: #EFF3FA; +} +.panel-footer{ + background-color: #EFF3FA; +} + +.panel-red,.panel-red .panel-heading{ + border-color: #EB5D9E; + color: #EB5D9E; +} +.panel-yellow,.panel-yellow .panel-heading{ + border-color:#ED8B31; + color: #ED8B31; +} +.panel-blue,.panel-blue .panel-heading{ + border-color:#247AFA; + color: #247AFA; +} +.panel-green,.panel-green .panel-heading{ + border-color:#5cb85c; + color: #5cb85c; +} + +#rollBtn,#rollAlarm,#rollInfo{ + color: #656779; +} + +.table-hover > tbody > tr:hover { + background-color:#EFF3FA; +} + +.div_content{ + background-color: #EFF3FA; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + border: 1px solid #5599FD; +} + +/* 编辑器 */ +.editor-menu{ + background-color: #FFFFFF; + border: 2px solid #cacaca; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #464952 !important; +} +.is-show-div{ + background-color: #FFFFFF; + border: 2px solid #cacaca; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #464952 !important; + top: -2px; + width: 25px; +} +.editor button{ + border:2px solid rgb(222, 226, 246); + background-color: rgb(255, 255, 255); + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} +.editor_lock.true{ + background-color: rgb(222, 226, 246); + border-color: rgb(222, 226, 246); +} + +.image-preview{ + background-color: #b9c0dd; +} + + +input.btn-default{ + color: #464952; + border: 1px solid #5599FD; +} +input[type="file"]{ + background-color: #EFF3FA; + /*background-color: #B9C0DD;*/ + border: 1px solid #5599FD; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +input.btn-default:hover, select.btn-default:hover, +input.btn-default:focus, select.btn-default:focus, +input.btn-default.focus, select.btn-default.focus, +input.btn-default:active, select.btn-default:active, +input.btn-default.active, select.btn-default.active, +.open > .dropdown-toggle.btn-default{ + color: #464952; + background-color: #fbfefd; + border: 1px solid #5599FD; +} + +/* 组态白色样式 */ +.white_bg{ + border: 1px solid rgba(32, 100, 202, 0.12); + border-radius: 10px; + /*opacity: 0.9;*/ + background-image:none; + background-color: #FFFFFF; + box-shadow:0px 2px 20px 0px rgba(140, 146, 172, 1); +} +.white_bg .signal_title{ + padding: 4px 16px; + border-bottom: 1px solid rgba(32, 100, 202, 0.12); + margin-bottom: 6px; + color: #464952; +} +.white_bg .table_signal_body_value i{ + /*color: #FFFFFF;*/ +} + +.show-font-chart{ + background-color: #f5f5f5; + border: 1px solid rgba(32, 100, 202, 0.12); +} +.image-signal-body .diagram-sigimg-title{ + color: #464952; +} +.image-signal-body .diagram-sigimg-value{ + color: #FFFFFF; +} + +.device_info_btn{ + color: #FFFFFF; +} + + +/* 组态值样式 */ +.signal-value-disconnect{ + background-color:#b9c0dd; + border: #b9c0dd solid 1px; + color: #464952; +} +.signal-value-normal{ + background-color:#0BCF6D; + border: #0BCF6D solid 1px; + color: #FFFFFF; +} +.signal-value-alarm{ + background-color:#ED7720; + border: #ED7720 solid 1px; + color: #FFFFFF; +} + +.ExpressionSymbol li{ + border: 1px solid #025aff; + background-color: #247afa; + color: #FFFFFF; +} + +/*本地图片选择*/ +.topology-img-div{ + background-color: #b9c0dd; + border: 1px solid #5599FD; +} +div.topology-expand-div{ + background-color: #b9c0dd; +} +.topology-img-div:hover div{ + background-color: #b9c0dd; +} + +/* 表格组态 */ +.nts-table .nts-held{ + background-color: #b9c0dd; +} + +/* 时间 */ +table{ + background-color: #b9c0dd; +} +.datepicker>table>thead>tr>th>.btn-default, +.datepicker>table>tbody>tr>td>.btn-default{ + background-color: #fbfefd; + color: #464952; +} +.text-muted{ + color: #82879a; +} + +.border, .border tr, +.border tr td, +.border tr th{ + border: #b9c0dd solid 1px; +} + +select, select.btn-default{ + background-color: #FFFFFF; + color: #464952; + border: 1px solid #5599FD; + box-shadow: rgba(15, 96, 244, 0) 0px 0px 20px; +} + +/* KPI */ +.charts_div .charts_a>div:nth-child(1),.charts_div .table_div{ + color: #464952; + background-color: #FFFFFF; + border: 1px solid rgba(32, 100, 202, 0.12); + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} + +/* 视频 */ +.camera-menu,.split-area{ + background-color: #FFFFFF; +} +.camera_color, +.camera-menu .title span, +.camera-menu .parasAdjust span{ + color: #464952; +} +.camera-menu .tree ul li, +.split-area a{ + color: #217CF6; +} +.camera-menu .title{ + background-color: #F2F4FB; + border: 0px; +} +.camera-menu .parasAdjust span{ + background: url(../img/video/parascontrol_White.png) no-repeat; + background-size: 116px 28px; +} +.camera-menu .parasAdjust span a{ + background: none; +} +.camera-menu .parasAdjust span i{ + background: none; +} +.split-area span.camera_view, +.split-area span.camera_record{ + border: 1px solid #217CF6; +} +.input-group-addon{ + border-radius: 20px; + background-color: #0166fe; + border: 1px solid #0166fe; +} +.record-search button{ + background-color: #0166fe; + border-color: #0179ff; +} +.record-search button:hover{ + background-color: #247cff; + border-color:#247cff; +} + + +/* 配置 => 配置管理 */ +.nav-tabs{ + border-bottom: 1px solid rgb(222, 226, 246); +} +.nav-tabs > li{ + margin-right: 8px; +} +.nav-tabs > li > a{ + background-color: #F5F6FA; + border: 2px solid rgb(222, 226, 246); + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); + margin-right:0px; + border-radius:0px; +} +.nav-tabs > li > a:hover{ + color: #237AF8; + background-color: #FFFFFF; + border: 2px solid rgb(222, 226, 246); +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus{ + background-color: #237af8; + color: #ffffff; + border: 2px solid rgb(222, 226, 246); +} +.nav-tabs a{ + color: #464952; +} +.manage-top-div{ + background-color: #d7dcee; + box-shadow: rgba(0, 0, 0, 0) 0px 0px; +} +.white_table_bottom{ + background-color: #f5f6fc; + border-radius: 20px; +} + + +/* 小机房 3D配置 */ +.section, +.sectionBody, +.sectionHeader{ + background-color: #d7dcee; +} + + +/* 门禁管理 - 时间组 */ +.time_set_bg{ + background-color: #D8DDEE; +} +.timeGroupCheck label i{ + color: #464952; +} +.timeGroupCheck input[type="checkbox"]:checked + i{ + color: #FFFFFF; +} + +#ControlDoor .td1{ + background-color: #d7dcee; +} +#ControlDoor table tbody tr td{ + border: 1px solid #B9C0DD; +} + + +.sk-wave .sk-rect{ + background-color: #464952; +} + +/* 指导 */ +.help-notes-body{ + background-image: url(../img/bg_Blue.jpg); +} + +.templateProperty{ + background-color: #d7dcee; + border: 1px solid #B9C0DD; +} + +/* MDC配置 */ +.Mdc_Aisle tr td{ + border: 1px solid #B9C0DD; +} +.Mdc_Aisle tr td:hover{ + background-color: #d7dcee; +} +.cabinet_title_color a{ + color: #464952; +} + +.config_mdc_marked{ + color: #656779; +} + +/* iView 3.0 功能弹出框 */ +.navbar-top-links .dropdown-menu{ + color: #464952; + background-color: #FFFFFF; + border: 1px solid #B9C0DD; + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} +.navbar-static-top ul li.top-title a:hover, +.navbar-static-top ul li.top-title a.active{ + /*background: url(../img/MenuBar/bg_White_2.png) 100% 100% no-repeat;*/ + background: none; + color: #FFFFFF; + background-color: #237AF8; +} + +/* 接口配置 */ +.content_message{ + color: #464952; + background-color: #d8ddee; + border: 1px solid #B9C0DD; + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} + +.iview-sidebar ul li a:focus{ + background: none; +} +.iview-sidebar ul li a.active{ + /*background: url(../img/MenuBar/bg_White.png) left; + background-size: 100% 50px;*/ + background: none; + /*border-right: 5px solid #237AF8;*/ + background-color: #237AF8; + color: #FFFFFF; +} +.iview-sidebar ul li a:hover{ + /*background: url(../img/MenuBar/bg_White.png) left;*/ + background: none; + /*border-right: 5px solid #237AF8;*/ + background-color: #237AF8; + color: #FFFFFF; +} + + +/* 透明背景颜色 */ +.body_transparent{ + background-color: transparent; +} + +/* IView 3.0 登陆页面 */ +.keyboard_box,.zn_box{ + background: #d8ddee; +} +.c_panel,.i_button{ + background-color: #d8ddee; + color: #464952; +} + +/* 导航背景 */ +.full-image{ + background-image: url('../img/bg_Blue.jpg'); + cursor: pointer; + border: 3px solid #464952; +} + +/* 设备详情 - 确定告警 */ +.alarm-remark{ + color: #464952; +} + +/* 组态编辑器 - 圆盘 */ +.key-wheel{ + background-color: #FFFFFF; + border: 2px solid #cacaca; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + color: #464952 !important; +} +.key-wheel .key-title{ + border: 1px solid #cacaca; +} +.key-table tr td, .key-table tr th{ + border: 1px solid #cacaca; +} + +/* 告警弹出框 */ +#pop{ + background-color: #FFFFFF; + border: 1px solid #cacaca; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +#popHead h2,#popHead #popClose,#popIntro a,#popTime{ + color: #464952; +} +#popHead{ + background-color: #FFFFFF; + border: 1px solid #cacaca; +} +#popContent dl{ + background-color: #d8ddee; +} + +/* 表格组态页 */ +.div-border{ + background-color: #FFFFFF; + border: 1px solid #cacaca; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +/* 表格实时值告警 */ +.alarm-border{ + border: 2px dashed #E64E5B; + color: #E64E5B; +} +/* 表格实时值中断 */ +.disconnect-border{ + border: 2px dashed #949bb8; + color: #949bb8; +} + +/* 组态-实时图表 平均值、最大值、最小值 */ +.white_bg .avg-max-min{ + color: #464952; +} + +/* License 提示颜色 */ +.license_div a{ + color: #464952; +} +.license_div a span{ + color: #ff8300; +} + +/* MDC历史告警 */ +.alarm-level-3{ + color: #EB5D9E; +} +.alarm-level-2{ + color: #ED8B31; +} +.alarm-level-1{ + color: #247AFA; +} +.alarm-level-0{ + color: #5cb85c; +} +.cabinet_list .cabinet_name:hover, +.cabinet_list .cabinet_device:hover{ + background-color: rgba(32, 122, 248, 0.5); +} +.device-list label.active{ + color: #FFFFFF; +} +.history-alarm-body .btn-group .btn-primary, +.history-signal-body .btn-group .btn-primary{ + background-color: rgba(36, 124, 255, 0.8); + border-color: rgba(36, 124, 255, 0.8); +} +.device-list-div label{ + font-size: 16px; +} + +.switch-check{ + background: #d8ddee; +} + +/* 滚动条样式 默认 */ +.scroll-easy::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5); + background: rgba(0, 0, 0, 0.5); +} +.scroll-easy::-webkit-scrollbar-track { /*滚动条里面轨道*/ + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1); + background: rgba(0, 0, 0, 0.1); +} + +/* 组态列表 */ +.view-show-hide i{ + color: #464952;; +} +.view-show-hide i:hover{ + color: rgba(70, 73, 82, 0.5);; +} + +/*64节温场*/ +.body-temperature{ + background-color: rgba(227, 228, 234, 0); +} +.body-caliper .caliper{ + background-color: #E3E4EA; + color: #464952; +} +.node-temp-title{ + border: 2px solid rgb(222, 226, 246); +} +.node-temp-title table,.node-temp-title table tr td{ + background-color: #F5F6FC; +} +.node-temp-title table tr td.selected{ + background-color: #ffffff; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +/* 表格隔行变色 */ +.table > thead > tr > td, +.table > thead > tr > th{ + background-color: #D5DAEB; +} +.table tr:nth-child(even){ + background-color: #e3e8f9; +} +.table tr:nth-child(odd){ + background-color: #FFFFFF; +} +.table tr.odd{ + background-color: #FFFFFF; +} +.table tr.even{ + background-color: #e3e8f9; +} + +.alarm-list-table tr.odd, +.alarm-list-table tr.odd td{ + background-color: #f5f6fc; +} +.alarm-list-table tr.even, +.alarm-list-table tr.even td{ + background-color: #e3e8f9; +} + +/* 加载页面 */ +.page-load .background span{ + color: #2e80fa; +} + +/* 功能列表 */ +.setting-body ul li a, +.setting-body ul li a:hover, +.setting-body ul li a:active{ + color: #464952; +} +.setting-body ul li{ + background-color: #FFFFFF; +} +.setting-option .modal-content .model-body-footer{ + background-color: #FFF; +} +.home-setting .modal-body table{ + border-top: 10px solid #f5f6fc; + border-left: 10px solid #f5f6fc; +} +.home-setting .modal-body table tr td{ + border-right: 10px solid #f5f6fc; + border-bottom: 10px solid #f5f6fc; +} +.home-setting .modal-body table tr td samp.dropdown-title{ + color: #464952; +} + +.key-table .select{ + color: #FFFFFF; +} + +/* VLC视频 */ +.camera-view-vlc .camera-view .camera-plugin{ + height: calc(100% - 50px); + background-color: #FFFFFF; + margin-bottom: 50px; +} +.camera-view-vlc .camera-view .camera-plugin > table{ + background-color: #FFFFFF; +} +.camera-view-vlc .camera-view .camera-function{ + height: 50px; + background-color: #FFFFFF; + position: absolute; + bottom: 0px; + width: calc(100% - 320px); +} +.camera-view-vlc .camera-view .camera-function div.function{ + display: inline-block; + width: 40px; + margin-right: 20px; + text-align:center; + cursor: pointer; + float: right; +} +.camera-view-vlc .camera-function div.function i{ + font-size: 20px; + line-height: 50px; +} +.camera-view-vlc .camera-menu .title span{ + color: #464952; + font-size: 22px; +} +.camera-view-vlc .camera-menu .tree .view-title, +.camera-view-vlc .camera-menu .tree .view-title > i, +.camera-view-vlc .camera-menu .tree .view-title > a, +.camera-view-vlc .camera-menu .tree .view-camera > li, +.camera-view-vlc .camera-menu .tree .view-camera > li > i, +.camera-view-vlc .camera-menu .tree .view-camera > li > a{ + color: #464952; + line-height: 40px; + font-size: 20px; +} +.camera-view-vlc .camera-menu .tree .view-title:hover, +.camera-view-vlc .camera-menu .tree .view-title:hover > i, +.camera-view-vlc .camera-menu .tree .view-title:hover > a, +.camera-view-vlc .camera-menu .tree .view-title.active, +.camera-view-vlc .camera-menu .tree .view-title.active > i, +.camera-view-vlc .camera-menu .tree .view-title.active > a, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover > i, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover > a, +.camera-view-vlc .camera-menu .tree .view-camera > li.active, +.camera-view-vlc .camera-menu .tree .view-camera > li.active > i, +.camera-view-vlc .camera-menu .tree .view-camera > li.active > a{ + color: #FFFFFF; +} + +/*卡管理页面 修改卡样式*/ +#CardManagement .modal-body { + position: relative; + top: -25px; + bottom: -25px; + padding: 15px; +} +#CardManagement .tbody-overflow .tbody-td13{ + width: 280px; + min-width: 280px; + max-height: 280px; +} +#CardManagement .tbody-overflow .tbody-td14 { + width: 177px; + min-width: 177px; + max-height: 177px; +} +#CardManagement input.form-control { + width: 100%; +} +#CardManagement .modal-footers{ + position: absolute; + bottom: -5px; + right: 0; +} +.datepicker{ + z-index: 1600!important; +} + +/* UL隔行变色 */ +.ul > li:nth-child(even), +.rights-list .ul > li:nth-child(even){ + background-color: #e3e8f9; +} +.ul > li:nth-child(odd), +.rights-list .ul > li:nth-child(odd){ + background-color: #FFFFFF; +} +.ul > li.odd, +.rights-list .ul > li.odd{ + background-color: #FFFFFF; +} +.ul > li.even, +.rights-list .ul > li.even{ + background-color: #e3e8f9; +} + +/* MDC配置化-单排 */ +.tag_radius > ul > li > a{ + color: #464952; +} +.tag_radius > ul > li.active{ + background-color: #237AF8; +} +.tag_radius > ul > li.active > a{ + color: #FFF; +} + +/* 视频配置 */ +#videoCameraList ul.camera-parent > li > div.videoDiv > i, +#videoCameraList ul.camera-parent > li > div.videoDiv > a, +#videoCameraList ul.camera-parent > li > div.videoDiv > a:hover{ + color: #656779; +} +#videoCameraList ul.camera-parent > li > div.videoDiv.active > i, +#videoCameraList ul.camera-parent > li > div.videoDiv.active > a, +#videoCameraList ul.camera-parent > li > div.videoDiv.active > a:hover{ + color: #ffffff; +} + +.mdc-assets-cabinet > .mdc-assets-bg > .mdc-assets-per{ + background-color: #009999; +} + +/* 权限管理 */ +.authority-option .setting-title, +.authority-option .setting-title a{ + color: #464952; +} +.setting-title > a > i.fa, +.ul li > i.fa{ + color: #464952; +} +.authority-checked > i.fa{ + color: #247cff; +} +.rights-body .rights-button{ + background-color: #e3e8f9; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} + + +/* 3D MDC */ +.mdc-3d-button{ + color: #464952; +} +.mdc-3d-button-active{ + color:#FFFFFF; +} + +/* 历史PUE曲线 Author:Eddy Date:2021/05/25 */ +.pue-filter-button .date-filter ul li{ + border: 1px solid #237AF8; +} +.pue-filter-button .date-filter ul li.active{ + background-color: #237AF8; + color: #FFFFFF; +} + +.u-space-position .u-space-i{ + border: 1px solid #000; + color: #000; +} + +/* 多级下拉选择框(历史信号) */ +.select-casement-tree{ + border: 1px solid #5599FD; + background-color: #f5f6fc; + box-shadow: none; +} +.select-casement-options{ + border: 1px solid #5599FD; + background-color: #f5f6fc; +} +.select-casement span.input-item{ + border: 1px solid #0095e7; + color: #0095e7; +} + +.cabinet_table{ + background-color: #FFFFFF; +} +.cabinet_table table.signal_body tr, +.cabinet_table table.signal_body tr > td{ + background-color: #ffffff; +} +.cabinet_table table.signal_unit tr, +.cabinet_table table.signal_unit tr > td, +.cabinet_table table.signal_body tr > th{ + background-color: rgba(227, 232, 249, 0.3); +} +.receiverPanel{ + background-color: #ffffff; +} +/* 大华摄像头 */ +.view_fun > div > a, +.dh_cameraview > .tree > .tree_body i, +.dh_cameraview > .tree > .tree_body a, +.dh_cameraview > .view > .view_fun > div > a{ + color: #464952; + cursor: pointer; +} +.view_fun > div > a:hover, +.dh_cameraview > .tree > .tree_body div:hover > i, +.dh_cameraview > .tree > .tree_body div:hover > a, +.dh_cameraview > .view > .view_fun > div > a:hover{ + color: #0166fe; +} +.view_fun > div, +.dh_cameraview > .view > .view_fun > div{ + border-color: #0166fe; +} +/* 门楣管理 */ +.dropdown-menu > li > a{ + color: #000000; +} +.listItem{ + border: 1px solid #dadada; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/alarm_config.css b/applications/WebConfigure/web/css/alarm_config.css new file mode 100644 index 0000000..ce0cf13 --- /dev/null +++ b/applications/WebConfigure/web/css/alarm_config.css @@ -0,0 +1,16 @@ +.alarmLevel0{ + color: #31b0d5; + border-color: #31b0d5; +} +.alarmLevel1{ + color: #e2e20a; + border-color: #e2e20a; +} +.alarmLevel2{ + color: #ec971f; + border-color: #ec971f; +} +.alarmLevel3{ + color: #c9302c; + border-color: #c9302c; +} diff --git a/applications/WebConfigure/web/css/alert.css b/applications/WebConfigure/web/css/alert.css new file mode 100644 index 0000000..4451e49 --- /dev/null +++ b/applications/WebConfigure/web/css/alert.css @@ -0,0 +1,291 @@ +*{ + margin:0; + padding:0; +} +body{ + font-family: "微软雅黑" +} +.alert-modal{ + left:0; + top:0; + width:100%; + height:100%; + background: #000; + opacity: 0.6; + filter: alpha(opacity=60); +} +.alert-container{ + display: inline-block; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + background: #fff; + border:1px solid #f1f1f1; + z-index: 99999; + overflow: hidden; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} +.alert-title{ + font-size: 16px; + text-align: center; + line-height: 42px; + color:#111; + background: #fff; + position: absolute; + left:0; + top:0; + z-index: 999; + width:100%; + text-align: center; +} +.alert-content{ + font-size: 14px; + padding:15px 20px; + color:#555; + height:100%; + overflow: auto; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} +.alert-content-scrollbar{ + +} +.alert-btn-box{ + border-top:1px solid #f1f1f1; + text-align: right; + position: absolute; + left:0; + background: #fff; + bottom: 0; + z-index: 999; + width:100%; +} +.alert-btn-p{ + display: inline-block; + text-align: center; + border-right:1px solid #f1f1f1; + background-color: #fff; + font-size:14px; + line-height: 35px; + cursor: pointer; + color:#222; + box-sizing: border-box; +} +.alert-btn-p:hover{ + background: #eee; +} +.alert-btn-p:last-child{ + border-right: none; +} +.pcAlert .alert-btn-box{ + padding-right:10px; + border:none; +} +.pcAlert .alert-btn-p{ + border:1px solid #f1f1f1; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + box-sizing: border-box; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -o-box-sizing: border-box; + line-height: 30px; + margin:7px 0; + padding:0 10px; + margin-right:10px; +} +.alert-btn-close{ + position: absolute; + right:10px; + top:3px; + font-size: 24px; + cursor: pointer; + z-index: 1000; +} + +.alert-container-black{ + background-color:rgba(0,0,0,0.65); + border:none; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f000000,endColorstr=#7f000000); +} +.alert-container-black .alert-content{ + color: #fff; +} + +.linearTop{ + -webkit-animation-name: linearTop; + -moz-animation-name: linearTop; + -o-animation-name: linearTop; + animation-name: linearTop; +} + +.linearBottom{ + -webkit-animation-name: linearBottom; + -moz-animation-name: linearBottom; + -o-animation-name: linearBottom; + animation-name: linearBottom; +} + +/*alert-actionsheet*/ +.alert-actionsheet{ + border-radius: 0; + background-color: #ddd; +} +.alert-actionsheet .alert-content{ + display: none; +} +.none{ + display: none; +} +.alert-actionsheet .alert-title{ + color: #aaa; + line-height: 50px; +} +.alert-actionsheet .alert-title,.alert-actionsheet .alert-btn-box{ + position: static; +} +.alert-actionsheet .alert-btn-p{ + font-size: 16px; + display: block; + line-height: 40px; + border-bottom: 1px solid #eee; +} +.alert-actionsheet .alert-btn-box{ + background-color: transparent; +} +.alert-actionsheet .alert-btn-sheet{ + margin-top:5px; +} +@keyframes linearBottom { + 0%{ + -webkit-transform: translate3d(0,0,0); + -moz-transform: translate3d(0,0,0); + -o-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + opacity: 1; + filter:alpha(opacity=100); + } + 100%{ + -webkit-transform: translate3d(0,80px,0); + -moz-transform: translate3d(0,80px,0); + -o-transform: translate3d(0,80px,0); + transform: translate3d(0,80px,0); + opacity: 0; + filter:alpha(opacity=0); + } +} + +@keyframes linearTop { + 0%{ + -webkit-transform: translate3d(0,80px,0); + -moz-transform: translate3d(0,80px,0); + -o-transform: translate3d(0,80px,0); + transform: translate3d(0,80px,0); + opacity: 0; + filter:alpha(opacity=0); + } + 100%{ + -webkit-transform: translate3d(0,0,0); + -moz-transform: translate3d(0,0,0); + -o-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + opacity: 1; + filter:alpha(opacity=100); + } +} + +/*显示动画*/ + + +.animated.infinite { + animation-iteration-count: infinite; + -webkit-animation-iteration-count: infinite; + -moz-animation-iteration-count: infinite; + -o-animation-iteration-count: infinite; +} +.animated.linearBottom, +.animated.linearTop, +.animated.bounceIn, +.animated.bounceOut { + -webkit-animation-duration: .45s; + -moz-animation-duration: .45s; + -o-animation-duration: .45s; + animation-duration: .45s; +} +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -moz-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -o-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + filter:alpha(opacity=0); + -webkit-transform: scale3d(.3, .3, .3); + -moz-transform: scale3d(.3, .3, .3); + -o-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + + 100% { + opacity: 1; + filter: alpha(opacity=100); + -webkit-transform: scale3d(1, 1, 1); + -moz-transform: scale3d(1, 1, 1); + -o-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + -moz-animation-name: bounceIn; + -o-animation-name: bounceIn; + animation-name: bounceIn; +} +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(1.2, 1.2, 1.2); + -moz-transform: scale3d(1.2, 1.2, 1.2); + -o-transform: scale3d(1.2, 1.2, 1.2); + transform: scale3d(1.2, 1.2, 1.2); + } + + 65%, 70% { + opacity: 1; + filter: alpha(opacity=100); + -webkit-transform: scale3d(.75, .75, .75); + -moz-transform: scale3d(.75, .75, .75); + -o-transform: scale3d(.75, .75, .75); + transform: scale3d(.75, .75, .75); + } + + 100% { + opacity: 0; + filter: alpha(opacity=0); + -webkit-transform: scale3d(.3, .3, .3); + -moz-transform: scale3d(.3, .3, .3); + -o-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + -moz-animation-name: bounceOut; + -o-animation-name: bounceOut; + animation-name: bounceOut; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/angular-motion.min.css b/applications/WebConfigure/web/css/angular-motion.min.css new file mode 100644 index 0000000..80292cb --- /dev/null +++ b/applications/WebConfigure/web/css/angular-motion.min.css @@ -0,0 +1,9 @@ +/** + * angular-motion + * @version v0.4.2 - 2015-05-20 + * @link https://github.com/mgcrea/angular-motion + * @author Olivier Louvignes (https://github.com/mgcrea) + * @license MIT License, http://www.opensource.org/licenses/MIT + */ +.am-collapse{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;overflow:hidden;opacity:1}.am-collapse.am-collapse-add,.am-collapse.ng-hide-remove,.am-collapse.ng-move{-webkit-animation-name:expand;animation-name:expand}.am-collapse.am-collapse-remove,.am-collapse.ng-hide{-webkit-animation-name:collapse;animation-name:collapse}.am-collapse.ng-enter{visibility:hidden;-webkit-animation-name:expand;animation-name:expand;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-collapse.ng-leave{-webkit-animation-name:collapse;animation-name:collapse;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes expand{from{max-height:0}to{max-height:500px}}@keyframes expand{from{max-height:0}to{max-height:500px}}@-webkit-keyframes collapse{from{max-height:500px}to{max-height:0}}@keyframes collapse{from{max-height:500px}to{max-height:0}}.panel-collapse.am-collapse.in-remove{-webkit-animation-name:collapse;animation-name:collapse;display:block}.panel-collapse.am-collapse.in-add{-webkit-animation-name:expand;animation-name:expand}.am-fade{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;opacity:1}.am-fade.am-fade-add,.am-fade.ng-hide-remove,.am-fade.ng-move{-webkit-animation-name:fadeIn;animation-name:fadeIn}.am-fade.am-fade-remove,.am-fade.ng-hide{-webkit-animation-name:fadeOut;animation-name:fadeOut}.am-fade.ng-enter{visibility:hidden;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade.ng-leave{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.tab-pane.am-fade.active-remove{display:none!important}.tab-pane.am-fade.active-add{-webkit-animation-name:fadeIn;animation-name:fadeIn}.aside-backdrop.am-fade,.modal-backdrop.am-fade{background:rgba(0,0,0,.5);-webkit-animation-duration:.15s;animation-duration:.15s}.aside-backdrop.am-fade.ng-leave,.modal-backdrop.am-fade.ng-leave{-webkit-animation-delay:.3s;animation-delay:.3s}.am-flip-x{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-flip-x.am-flip-x-add,.am-flip-x.ng-hide-remove,.am-flip-x.ng-move{-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce}.am-flip-x.am-flip-x-remove,.am-flip-x.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x.ng-enter{visibility:hidden;-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-flip-x-linear.am-flip-x-add,.am-flip-x-linear.ng-hide-remove,.am-flip-x-linear.ng-move{-webkit-animation-name:flipInX;animation-name:flipInX}.am-flip-x-linear.am-flip-x-remove,.am-flip-x-linear.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x-linear.ng-enter{visibility:hidden;-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}}@keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}}@-webkit-keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}}@keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}}@-webkit-keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.am-slide-top{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-slide-top.am-slide-top-add,.am-slide-top.ng-hide-remove,.am-slide-top.ng-move{-webkit-animation-name:slideFromTop;animation-name:slideFromTop}.am-slide-top.am-slide-top-remove,.am-slide-top.ng-hide{-webkit-animation-name:slideToTop;animation-name:slideToTop}.am-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:slideFromTop;animation-name:slideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-top.ng-leave{-webkit-animation-name:slideToTop;animation-name:slideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-slide-right.am-slide-right-add,.am-slide-right.ng-hide-remove,.am-slide-right.ng-move{-webkit-animation-name:slideFromRight;animation-name:slideFromRight}.am-slide-right.am-slide-right-remove,.am-slide-right.ng-hide{-webkit-animation-name:slideToRight;animation-name:slideToRight}.am-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:slideFromRight;animation-name:slideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right.ng-leave{-webkit-animation-name:slideToRight;animation-name:slideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-slide-bottom.am-slide-bottom-add,.am-slide-bottom.ng-hide-remove,.am-slide-bottom.ng-move{-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom}.am-slide-bottom.am-slide-bottom-remove,.am-slide-bottom.ng-hide{-webkit-animation-name:slideToBottom;animation-name:slideToBottom}.am-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom.ng-leave{-webkit-animation-name:slideToBottom;animation-name:slideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-slide-left.am-slide-left-add,.am-slide-left.ng-hide-remove,.am-slide-left.ng-move{-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft}.am-slide-left.am-slide-left-remove,.am-slide-left.ng-hide{-webkit-animation-name:slideToLeft;animation-name:slideToLeft}.am-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left.ng-leave{-webkit-animation-name:slideToLeft;animation-name:slideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.am-fade-and-slide-top{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-top.am-fade-and-slide-top-add,.am-fade-and-slide-top.ng-hide-remove,.am-fade-and-slide-top.ng-move{-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.am-fade-and-slide-top.am-fade-and-slide-top-remove,.am-fade-and-slide-top.ng-hide{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.am-fade-and-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-top.ng-leave{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-right.am-fade-and-slide-right-add,.am-fade-and-slide-right.ng-hide-remove,.am-fade-and-slide-right.ng-move{-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight}.am-fade-and-slide-right.am-fade-and-slide-right-remove,.am-fade-and-slide-right.ng-hide{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight}.am-fade-and-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right.ng-leave{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-add,.am-fade-and-slide-bottom.ng-hide-remove,.am-fade-and-slide-bottom.ng-move{-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-remove,.am-fade-and-slide-bottom.ng-hide{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom}.am-fade-and-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom.ng-leave{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-left.am-fade-and-slide-left-add,.am-fade-and-slide-left.ng-hide-remove,.am-fade-and-slide-left.ng-move{-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft}.am-fade-and-slide-left.am-fade-and-slide-left-remove,.am-fade-and-slide-left.ng-hide{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft}.am-fade-and-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left.ng-leave{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@-webkit-keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@-webkit-keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@-webkit-keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}@keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}.am-fade-and-scale{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-scale.am-fade-and-scale-add,.am-fade-and-scale.ng-enter,.am-fade-and-scale.ng-hide-remove,.am-fade-and-scale.ng-move{-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.am-fade-and-scale.am-fade-and-scale-remove,.am-fade-and-scale.ng-hide,.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}.am-fade-and-scale.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}to{opacity:1}}@keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}to{opacity:1}}@-webkit-keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}@keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}} +/*# sourceMappingURL=angular-motion.min.css.map */ \ No newline at end of file diff --git a/applications/WebConfigure/web/css/bootstrap-datetimepicker.min.css b/applications/WebConfigure/web/css/bootstrap-datetimepicker.min.css new file mode 100644 index 0000000..7d0273b Binary files /dev/null and b/applications/WebConfigure/web/css/bootstrap-datetimepicker.min.css differ diff --git a/applications/WebConfigure/web/css/bootstrap-theme.css b/applications/WebConfigure/web/css/bootstrap-theme.css new file mode 100644 index 0000000..b0fdfcb --- /dev/null +++ b/applications/WebConfigure/web/css/bootstrap-theme.css @@ -0,0 +1,476 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); +} +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-default .badge, +.btn-primary .badge, +.btn-success .badge, +.btn-info .badge, +.btn-warning .badge, +.btn-danger .badge { + text-shadow: none; +} +.btn:active, +.btn.active { + background-image: none; +} +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus { + background-color: #e0e0e0; + background-position: 0 -15px; +} +.btn-default:active, +.btn-default.active { + background-color: #e0e0e0; + border-color: #dbdbdb; +} +.btn-default.disabled, +.btn-default:disabled, +.btn-default[disabled] { + background-color: #e0e0e0; + background-image: none; +} +.btn-primary { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #245580; +} +.btn-primary:hover, +.btn-primary:focus { + background-color: #265a88; + background-position: 0 -15px; +} +.btn-primary:active, +.btn-primary.active { + background-color: #265a88; + border-color: #245580; +} +.btn-primary.disabled, +.btn-primary:disabled, +.btn-primary[disabled] { + background-color: #265a88; + background-image: none; +} +.btn-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #3e8f3e; +} +.btn-success:hover, +.btn-success:focus { + background-color: #419641; + background-position: 0 -15px; +} +.btn-success:active, +.btn-success.active { + background-color: #419641; + border-color: #3e8f3e; +} +.btn-success.disabled, +.btn-success:disabled, +.btn-success[disabled] { + background-color: #419641; + background-image: none; +} +.btn-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #28a4c9; +} +.btn-info:hover, +.btn-info:focus { + background-color: #2aabd2; + background-position: 0 -15px; +} +.btn-info:active, +.btn-info.active { + background-color: #2aabd2; + border-color: #28a4c9; +} +.btn-info.disabled, +.btn-info:disabled, +.btn-info[disabled] { + background-color: #2aabd2; + background-image: none; +} +.btn-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #e38d13; +} +.btn-warning:hover, +.btn-warning:focus { + background-color: #eb9316; + background-position: 0 -15px; +} +.btn-warning:active, +.btn-warning.active { + background-color: #eb9316; + border-color: #e38d13; +} +.btn-warning.disabled, +.btn-warning:disabled, +.btn-warning[disabled] { + background-color: #eb9316; + background-image: none; +} +.btn-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #b92c28; +} +.btn-danger:hover, +.btn-danger:focus { + background-color: #c12e2a; + background-position: 0 -15px; +} +.btn-danger:active, +.btn-danger.active { + background-color: #c12e2a; + border-color: #b92c28; +} +.btn-danger.disabled, +.btn-danger:disabled, +.btn-danger[disabled] { + background-color: #c12e2a; + background-image: none; +} +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #e8e8e8; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #2e6da4; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + background-repeat: repeat-x; + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + background-repeat: repeat-x; + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + background-repeat: repeat-x; + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + background-repeat: repeat-x; + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + background-repeat: repeat-x; + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: 0 1px 2px rgba(0, 0, 0, .05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); + background-repeat: repeat-x; +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); + background-repeat: repeat-x; +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); + background-repeat: repeat-x; +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); + background-repeat: repeat-x; +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); +} +/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/applications/WebConfigure/web/css/bootstrap.css b/applications/WebConfigure/web/css/bootstrap.css new file mode 100644 index 0000000..de3ff86 --- /dev/null +++ b/applications/WebConfigure/web/css/bootstrap.css @@ -0,0 +1,6666 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; + height:100%; +} + +a:link,a:hover,a:active{ + text-decoration: none; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -.5em; +} +sub { + bottom: -.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: none; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #192028 !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #fff; + /*background-color: #fff;*/ +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: none; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + /*border-bottom: 1px solid #eee;*/ + color:#FFFFFF; + font-size:25px; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: white; + text-align: left; + font-weight: bold; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: center; + border-bottom: 1px solid #3B4755; + padding-top:15px; +} +.table > thead > tr > th { + vertical-align:middle; + /*border-bottom: 2px solid #ddd;*/ +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 8px; +} +.table-bordered { + border: 1px solid #3A4352; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + padding-top: 5px; + padding-left: 8px; + vertical-align:middle; + border-bottom-width: 0px; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + +} +.table-hover > tbody > tr:hover { + background-color:#36599d; + cursor: pointer; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #fff; + background-color: #1B1F27; + background-image: none; + border: 1px solid #1B1F27; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #24272B; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.form-group-sm .form-control { + height: 30px; + line-height: 30px; +} +textarea.form-group-sm .form-control, +select[multiple].form-group-sm .form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.form-group-lg .form-control { + height: 46px; + line-height: 46px; +} +textarea.form-group-lg .form-control, +select[multiple].form-group-lg .form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.333333px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} +/******中文样式******/ +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +/******英文样式******/ +.Englishbtn { + display: inline-block; + padding: 7px 12px; + margin-bottom: 0; + font-size: 12px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + + + + + + +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-muted{ + color:#fff; + background-color: #b7b7b7; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #171b21; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 0px; + +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #0089ff; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #fff; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + /*color: #262626;*/ + text-decoration: none; + background-color:#242B31; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} + +.open > .bottom-left { + display: none !important;; + visibility: hidden !important;; + height: 0px !important; +} + + +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #10151B; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + /*background-color: #171B21;*/ + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #fff; + cursor: default; + background-color: #0084D7; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + position: absolute; + z-index: 999; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + color: #23527c; + background-color: #eee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding: 48px 0; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; + position: absolute; + top: 0px; + z-index: 9999; + width: 100%; + text-align: center; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +a.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + /*background-color: #fff;*/ + background-color:rgba(0,0,0,0.5); + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} +.panel-body { + padding: 1px; +} +.panel-heading { + padding: 10px 5px; + + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #151F2B; + + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { +} +.panel-default > .panel-heading { + color: #fff; + background-color: #1D2027; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #0F5989; + border-color: #0F5989; + position: absolute; + width: 100%; + z-index: 1; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #24272b; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} +.modal-header { + min-height: 16.42857143px; + padding: 15px; + border-bottom: 1px solid #50575C; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + /*border-top: 1px solid #e5e5e5;*/ +} +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 1200px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + line-height: 1.4; + filter: alpha(opacity=0); + opacity: 0; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ + +/* newtablesetter */ +.nts-table tr{ + align:"center"; +} +.nts-table tr td{ + padding: 10px; + /*border-top: 1px solid #50575C; + border-bottom: 1px solid #50575C;*/ + width: 120px; +} +.nts-table .nts-held{ + background-color: #062776; +} +/*.NtsOcerflow{ + height:400px; + overflow:auto; +}*/ + diff --git a/applications/WebConfigure/web/css/camera.css b/applications/WebConfigure/web/css/camera.css new file mode 100644 index 0000000..1223e3b --- /dev/null +++ b/applications/WebConfigure/web/css/camera.css @@ -0,0 +1,224 @@ +.camera-view{ + background-color: rgba(43, 43, 43, 0.21); +} +.filled{ + width:100%; + height: 100%; +} +.camera-view .camera-plugin { + width: 100%; + height:96.2%; + text-align: center; + +} +.camera-view .camera-plugin a{ + display: block; + font-size: 20px; + } +.camera-menu{ + width: 220px; + background-color:#010A2B; + padding: 0px; + margin: 0px; +} + +.camera-menu .tree { + padding-top: 5px; + margin-bottom: 10px; + height: 200px; + overflow: auto; +} + +.camera-menu .tree ul{ + list-style:none; +} + + + +.camera-menu .tree ul li { + color:#FFFFFF; + padding:3px 0px 5px 0px; + margin: 0px; + cursor:pointer; +} + +.tree>ul>li>i{ + padding-right: 10px; +} +.tree>ul>li>ul{ + padding-left: 10px; + margin: 0px; +} +.tree>ul>li>ul>li>i{ + padding-right: 10px; +} + + +.camera-menu .title { + width: 100%; + height: 40px; + line-height: 40px; + text-align: center; + background-color: #171F6A; + border-left: #0093dc 4px solid; +} +.camera-menu .title span { + font-size: 16px; + padding-left: 40px; + line-height: 40px; + float: left; + color: #ffffff; +} + +.camera-menu .yuntai { + /*background-color: #1D2027;*/ + height: 160px; + margin: 10px auto; + text-align:center; +} +.camera-menu .yuntai table { + width: 147px; + height: 147px; + margin:0px auto; + border: 0px; + padding: 0px; +} +.camera-menu .yuntai img{ + cursor: pointer; +} + +.camera-menu .parasAdjust span { + display: block; + width: 116px; + height: 28px; + margin: 10px auto; + text-align: center; + color: #FFF; + background: url("../img/video/parascontrol.png") no-repeat; + background-size: 116px 28px; +} +.camera-menu .parasAdjust span label { + font-size: 15px; + height: 28px; + display: block; + line-height: 28px; + letter-spacing: 7px; + float: left; + padding-left: 12px; +} + + + + +.camera-menu .parasAdjust span a { + background: url("../img/video/setadd.png") no-repeat; + float: left; + margin-left: 3px; +} + +.parasAdjust>span>i{ + margin-top: 4px; + width: 22px; + height: 20px; + cursor: pointer; +} +.parasAdjust>span>a{ + margin-top: 4px; + width: 22px; + height: 20px; + cursor: pointer; +} + + +.camera-menu .parasAdjust span i +{ + background: url("../img/video/setminus.png") no-repeat; + float: right; + margin-right: 3px; +} + + +/*-------------------*/ +.camera-menu .parasAdjustE span { + display: block; + width: 187px; + height: 28px; + margin: 10px auto; + text-align: center; + color: #FFF; + background: url("../img/video/parascontrol.png") no-repeat; + background-size: 187px 28px; +} +.camera-menu .parasAdjustE span label { + font-size: 15px; + height: 28px; + display: block; + line-height: 28px; + letter-spacing: 7px; + float: left; + padding-left: 12px; + text-align: center; +} +.camera-menu .parasAdjustE span a { + background: url("../img/video/setadd.png") no-repeat; + float: left; + margin-left: 3px; +} +.parasAdjustE>span>i{ + margin-top: 4px; + width: 22px; + height: 20px; + cursor: pointer; +} +.parasAdjustE>span>a{ + margin-top: 4px; + width: 22px; + height: 20px; + cursor: pointer; +} + +.camera-menu .parasAdjustE span i +{ + background: url("../img/video/setminus.png") no-repeat; + float: right; + margin-right: 3px; +} + + + +.split-area{ + height: 34px; + background-color: #030d30; + text-align: right; + line-height: 34px; +} +.split-area a{ + padding-right: 10px; + color:#ffffff; + cursor: pointer; +} +.record-search i{ + color:#ffffff; + font-style:normal; + margin-top: 10px; + display: block; +} +.record-search button{ + width: 140px; + background-color: #343434; + color: #ffffff; + border: 1px solid #313538; +} + +.currentrecord{ + color:#d43f3a; +} + +.rtsp-camera .camera-menu .title{ + display: flex; + justify-content: space-around; +} +.rtsp-camera .camera-menu .title span{ + padding: 0; +} + diff --git a/applications/WebConfigure/web/css/colpick.css b/applications/WebConfigure/web/css/colpick.css new file mode 100644 index 0000000..be77a80 --- /dev/null +++ b/applications/WebConfigure/web/css/colpick.css @@ -0,0 +1,423 @@ +/* +colpick Color Picker / colpick.com +*/ + +/*Main container*/ +.colpick { + position: absolute; + width: 346px; + height: 170px; + overflow: hidden; + display: none; + font-family: Arial, Helvetica, sans-serif; + background:#ebebeb; + border: 1px solid #bbb; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + /*Prevents selecting text when dragging the selectors*/ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} +.colpick, +.colpick * { + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +/*Color selection box*/ +.colpick_color { + position: absolute; + left: 7px; + top: 7px; + width: 156px; + height: 156px; + overflow: hidden; + outline: 1px solid #aaa; + cursor: crosshair; +} +.colpick_color_overlay1 { + position: absolute; + left:0; + top:0; + width: 156px; + height: 156px; + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff'); /* IE6 & IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')"; /* IE8 */ + background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)); +} +.colpick_color_overlay2 { + position: absolute; + left:0; + top:0; + width: 156px; + height: 156px; + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000'); /* IE6 & IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')"; /* IE8 */ + background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1)); +} +/*HSL gradients are different*/ +.colpick_hsl .colpick_color_overlay1 { + background: linear-gradient(to right, rgba(128,128,128,1) 0%, rgba(128,128,128,0) 100%); +} +.colpick_hsl .colpick_color_overlay2 { + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,1) 100%); +} +/*Circular color selector*/ +.colpick_selector_outer { + background:none; + position: absolute; + width: 11px; + height: 11px; + margin: -6px 0 0 -6px; + border: 1px solid black; + border-radius: 50%; +} +.colpick_selector_inner{ + position: absolute; + width: 9px; + height: 9px; + border: 1px solid white; + border-radius: 50%; +} +/*Vertical hue bar*/ +.colpick_hue { + position: absolute; + top: 6px; + left: 175px; + width: 19px; + height: 156px; + border: 1px solid #aaa; + cursor: n-resize; +} +/*Hue bar sliding indicator*/ +.colpick_hue_arrs { + position: absolute; + left: -8px; + width: 35px; + height: 7px; + margin: -7px 0 0 0; +} +.colpick_hue_larr { + position:absolute; + width: 0; + height: 0; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + border-left: 7px solid #858585; +} +.colpick_hue_rarr { + position:absolute; + right:0; + width: 0; + height: 0; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + border-right: 7px solid #858585; +} +/*New color box*/ +.colpick_new_color { + position: absolute; + left: 207px; + top: 6px; + width: 60px; + height: 27px; + background: #f00; + border: 1px solid #8f8f8f; +} +/*Current color box*/ +.colpick_current_color { + position: absolute; + left: 277px; + top: 6px; + width: 60px; + height: 27px; + background: #f00; + border: 1px solid #8f8f8f; +} +/*Input field containers*/ +.colpick_field, .colpick_hex_field { + position: absolute; + height: 20px; + width: 60px; + overflow:hidden; + background:#f3f3f3; + color:#b8b8b8; + font-size:12px; + border:1px solid #bdbdbd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.colpick_rgb_r { + top: 40px; + left: 207px; +} +.colpick_rgb_g { + top: 67px; + left: 207px; +} +.colpick_rgb_b { + top: 94px; + left: 207px; +} +.colpick_hsx_h { + top: 40px; + left: 277px; +} +.colpick_hsx_s { + top: 67px; + left: 277px; +} +.colpick_hsx_x { + top: 94px; + left: 277px; +} +.colpick_hex_field { + width: 68px; + left: 207px; + top: 121px; +} +/*Text field container on focus*/ +.colpick_focus { + border-color: #999; +} +/*Field label container*/ +.colpick_field_letter { + position: absolute; + width: 12px; + height: 20px; + line-height: 20px; + padding-left: 4px; + background: #efefef; + border-right: 1px solid #bdbdbd; + font-weight: bold; + color:#777; +} +/*Text inputs*/ +.colpick_field input, .colpick_hex_field input { + position: absolute; + right: 11px; + margin: 0; + padding: 0; + height: 20px; + line-height: 20px; + background: transparent; + border: none; + font-size: 12px; + font-family: Arial, Helvetica, sans-serif; + color: #555; + text-align: right; + outline: none; +} +.colpick_hex_field input { + right: 4px; +} +/*Field up/down arrows*/ +.colpick_field_arrs { + position: absolute; + top: 0; + right: 0; + width: 9px; + height: 21px; + cursor: n-resize; +} +.colpick_field_uarr { + position: absolute; + top: 5px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid #959595; +} +.colpick_field_darr { + position: absolute; + bottom:5px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #959595; +} +/*Submit/Select button*/ +.colpick_submit { + position: absolute; + left: 207px; + top: 149px; + width: 130px; + height: 22px; + line-height:22px; + background: #efefef; + text-align: center; + color: #555; + font-size: 12px; + font-weight:bold; + border: 1px solid #bdbdbd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.colpick_submit:hover { + background:#f3f3f3; + border-color:#999; + cursor: pointer; +} + +/*full layout with no submit button*/ +.colpick_full_ns .colpick_submit, .colpick_full_ns .colpick_current_color{ + display:none; +} +.colpick_full_ns .colpick_new_color { + width: 130px; + height: 25px; +} +.colpick_full_ns .colpick_rgb_r, .colpick_full_ns .colpick_hsx_h { + top: 42px; +} +.colpick_full_ns .colpick_rgb_g, .colpick_full_ns .colpick_hsx_s { + top: 73px; +} +.colpick_full_ns .colpick_rgb_b, .colpick_full_ns .colpick_hsx_x { + top: 104px; +} +.colpick_full_ns .colpick_hex_field { + top: 135px; +} + +/*rgbhex layout*/ +.colpick_rgbhex .colpick_hsx_h, .colpick_rgbhex .colpick_hsx_s, .colpick_rgbhex .colpick_hsx_x { + display:none; +} +.colpick_rgbhex { + width:282px; +} +.colpick_rgbhex .colpick_field, .colpick_rgbhex .colpick_submit { + width:68px; +} +.colpick_rgbhex .colpick_new_color { + width:34px; + border-right:none; +} +.colpick_rgbhex .colpick_current_color { + width:34px; + left:240px; + border-left:none; +} + +/*rgbhex layout, no submit button*/ +.colpick_rgbhex_ns .colpick_submit, .colpick_rgbhex_ns .colpick_current_color{ + display:none; +} +.colpick_rgbhex_ns .colpick_new_color{ + width:68px; + border: 1px solid #8f8f8f; +} +.colpick_rgbhex_ns .colpick_rgb_r { + top: 42px; +} +.colpick_rgbhex_ns .colpick_rgb_g { + top: 73px; +} +.colpick_rgbhex_ns .colpick_rgb_b { + top: 104px; +} +.colpick_rgbhex_ns .colpick_hex_field { + top: 135px; +} + +/*hex layout*/ +.colpick_hex .colpick_hsx_h, .colpick_hex .colpick_hsx_s, .colpick_hex .colpick_hsx_x, .colpick_hex .colpick_rgb_r, .colpick_hex .colpick_rgb_g, .colpick_hex .colpick_rgb_b { + display:none; +} +.colpick_hex { + width:206px; + height:201px; +} +.colpick_hex .colpick_hex_field { + width:72px; + height:25px; + top:168px; + left:80px; +} +.colpick_hex .colpick_hex_field div, .colpick_hex .colpick_hex_field input { + height: 25px; + line-height: 25px; +} +.colpick_hex .colpick_new_color { + left:9px; + top:168px; + width:30px; + border-right:none; +} +.colpick_hex .colpick_current_color { + left:39px; + top:168px; + width:30px; + border-left:none; +} +.colpick_hex .colpick_submit { + left:164px; + top: 168px; + width:30px; + height:25px; + line-height: 25px; +} + +/*hex layout, no submit button*/ +.colpick_hex_ns .colpick_submit, .colpick_hex_ns .colpick_current_color { + display:none; +} +.colpick_hex_ns .colpick_hex_field { + width:80px; +} +.colpick_hex_ns .colpick_new_color{ + width:60px; + border: 1px solid #8f8f8f; +} + +/*Dark color scheme*/ +.colpick_dark { + background: #161616; + border-color: #2a2a2a; +} +.colpick_dark .colpick_color { + outline-color: #333; +} +.colpick_dark .colpick_hue { + border-color: #555; +} +.colpick_dark .colpick_field, .colpick_dark .colpick_hex_field { + background: #101010; + border-color: #2d2d2d; +} +.colpick_dark .colpick_field_letter { + background: #131313; + border-color: #2d2d2d; + color: #696969; +} +.colpick_dark .colpick_field input, .colpick_dark .colpick_hex_field input { + color: #7a7a7a; +} +.colpick_dark .colpick_field_uarr { + border-bottom-color:#696969; +} +.colpick_dark .colpick_field_darr { + border-top-color:#696969; +} +.colpick_dark .colpick_focus { + border-color:#444; +} +.colpick_dark .colpick_submit { + background: #131313; + border-color:#2d2d2d; + color:#7a7a7a; +} +.colpick_dark .colpick_submit:hover { + background-color:#101010; + border-color:#444; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/config.css b/applications/WebConfigure/web/css/config.css new file mode 100644 index 0000000..a7e1243 --- /dev/null +++ b/applications/WebConfigure/web/css/config.css @@ -0,0 +1,9 @@ + +.page-list .pagination {float:left;} +.page-list .pagination span {cursor: pointer;} +.page-list .pagination .separate span{cursor: default; border-top:none;border-bottom:none;} +.page-list .pagination .separate span:hover {background: none;} +.page-list .page-total {float:left; margin: 25px 20px;} +.page-list .page-total input, .page-list .page-total select{height: 26px; border: 1px solid #ddd;} +.page-list .page-total input {width: 40px; padding-left:3px;} +.page-list .page-total select {width: 50px;} diff --git a/applications/WebConfigure/web/css/font-awesome.min.css b/applications/WebConfigure/web/css/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/applications/WebConfigure/web/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/applications/WebConfigure/web/css/h5splayer.css b/applications/WebConfigure/web/css/h5splayer.css new file mode 100644 index 0000000..f831d33 --- /dev/null +++ b/applications/WebConfigure/web/css/h5splayer.css @@ -0,0 +1,40 @@ +.h5video { + width: 576px; + height: 320px; + border: 1px solid black; + background-color:#000000; +} + +.h5video1 { + width: 100%; + height: 100%; + border: 1px solid black; + background-color:#000000; +} + +.h5videodiv{ + display: inline-block; + position:relative; +} + +.h5videodiv1{ + width: 100%; + height: 100%; + position:relative; + background-color:#000000; +} + +.playpause { + background-image:url(/img/media_play_pause_resume.png); + background-repeat:no-repeat; + width:25%; + height:25%; + position:absolute; + left:0%; + right:0%; + top:0%; + bottom:0%; + margin:auto; + background-size:contain; + background-position: center; +} diff --git a/applications/WebConfigure/web/css/isteven-multi-select.css b/applications/WebConfigure/web/css/isteven-multi-select.css new file mode 100644 index 0000000..ab2183c --- /dev/null +++ b/applications/WebConfigure/web/css/isteven-multi-select.css @@ -0,0 +1,299 @@ +/* + * Don't modify things marked with ! - unless you know what you're doing + */ + +/* ! vertical layout */ +.multiSelect .vertical { + float: none; +} + +/* ! horizontal layout */ +.multiSelect .horizontal:not(.multiSelectGroup) { + float: left; +} + +/* ! create a "row" */ +.multiSelect .line { + padding: 2px 0px 4px 0px; + max-height: 30px; + overflow: hidden; + box-sizing: content-box; +} + +/* ! create a "column" */ +.multiSelect .acol { + display: inline-block; + min-width: 12px; +} + +/* ! */ +.multiSelect .inlineBlock { + display: inline-block; +} + +/* the multiselect button */ +.multiSelect > button { + display: inline-block; + position: relative; + text-align: center; + cursor: pointer; + border: 1px solid #c6c6c6; + padding: 1px 8px 1px 8px; + font-size: 14px; + min-height : 38px !important; + border-radius: 4px; + color: #555; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + white-space:normal; + background-color: #fff; + background-image: linear-gradient(#fff, #f7f7f7); +} + +/* button: hover */ +.multiSelect > button:hover { + background-image: linear-gradient(#fff, #e9e9e9); +} + +/* button: disabled */ +.multiSelect > button:disabled { + background-image: linear-gradient(#fff, #fff); + border: 1px solid #ddd; + color: #999; +} + +/* button: clicked */ +.multiSelect .buttonClicked { + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset, 0 1px 2px rgba(0, 0, 0, 0.05); +} + +/* labels on the button */ +.multiSelect .buttonLabel { + display: inline-block; + padding: 5px 0px 5px 0px; +} + +/* downward pointing arrow */ +.multiSelect .caret { + display: inline-block; + width: 0; + height: 0; + margin: 0px 0px 1px 12px !important; + vertical-align: middle; + border-top: 4px solid #333; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; +} + +/* the main checkboxes and helper layer */ +.multiSelect .checkboxLayer { + background-color: #fff; + position: absolute; + z-index: 999; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + min-width:278px; + display: none !important; +} + +/* container of helper elements */ +.multiSelect .helperContainer { + border-bottom: 1px solid #ddd; + padding: 8px 8px 0px 8px; +} + +/* helper buttons (select all, none, reset); */ +.multiSelect .helperButton { + display: inline; + text-align: center; + cursor: pointer; + border: 1px solid #ccc; + height: 26px; + font-size: 13px; + border-radius: 2px; + color: #666; + background-color: #f1f1f1; + line-height: 1.6; + margin: 0px 0px 8px 0px; +} + +.multiSelect .helperButton.reset{ + float: right; +} + +.multiSelect .helperButton:not( .reset ) { + margin-right: 4px; +} + +/* clear button */ +.multiSelect .clearButton { + position: absolute; + display: inline; + text-align: center; + cursor: pointer; + border: 1px solid #ccc; + height: 22px; + width: 22px; + font-size: 13px; + border-radius: 2px; + color: #666; + background-color: #f1f1f1; + line-height: 1.4; + right : 2px; + top: 4px; +} + +/* filter */ +.multiSelect .inputFilter { + border-radius: 2px; + border: 1px solid #ccc; + height: 26px; + font-size: 14px; + width:100%; + padding-left:7px; + -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ + -moz-box-sizing: border-box; /* Firefox, other Gecko */ + box-sizing: border-box; /* Opera/IE 8+ */ + color: #888; + margin: 0px 0px 8px 0px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} + +/* helper elements on hover & focus */ +.multiSelect .clearButton:hover, +.multiSelect .helperButton:hover { + border: 1px solid #ccc; + color: #999; + background-color: #f4f4f4; +} +.multiSelect .helperButton:disabled { + color: #ccc; + border: 1px solid #ddd; +} + +.multiSelect .clearButton:focus, +.multiSelect .helperButton:focus, +.multiSelect .inputFilter:focus { + border: 1px solid #66AFE9 !important; + outline: 0; + -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.065), 0 0 5px rgba(102, 175, 233, .6) !important; + box-shadow: inset 0 0 1px rgba(0,0,0,.065), 0 0 5px rgba(102, 175, 233, .6) !important; +} + +/* container of multi select items */ +.multiSelect .checkBoxContainer { + display: block; + padding: 8px; + overflow: hidden; +} + +/* ! to show / hide the checkbox layer above */ +.multiSelect .show { + display: block !important; +} + +/* item labels */ +.multiSelect .multiSelectItem { + display: block; + padding: 3px; + color: #444; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + border: 1px solid transparent; + position: relative; + min-width:278px; + min-height: 32px; +} + +/* Styling on selected items */ +.multiSelect .multiSelectItem:not(.multiSelectGroup).selected +{ + background-image: linear-gradient( #e9e9e9, #f1f1f1 ); + color: #555; + cursor: pointer; + border-top: 1px solid #e4e4e4; + border-left: 1px solid #e4e4e4; + border-right: 1px solid #d9d9d9; +} + +.multiSelect .multiSelectItem .acol label { + display: inline-block; + padding-right: 30px; + margin: 0px; + font-weight: normal; + line-height: normal; +} + +/* item labels focus on mouse hover */ +.multiSelect .multiSelectItem:hover, +.multiSelect .multiSelectGroup:hover { + background-image: linear-gradient( #c1c1c1, #999 ) !important; + color: #fff !important; + cursor: pointer; + border: 1px solid #ccc !important; +} + +/* item labels focus using keyboard */ +.multiSelect .multiSelectFocus { + background-image: linear-gradient( #c1c1c1, #999 ) !important; + color: #fff !important; + cursor: pointer; + border: 1px solid #ccc !important; +} + +/* change mouse pointer into the pointing finger */ +.multiSelect .multiSelectItem span:hover, +.multiSelect .multiSelectGroup span:hover +{ + cursor: pointer; +} + +/* ! group labels */ +.multiSelect .multiSelectGroup { + display: block; + clear: both; +} + +/* right-align the tick mark (✔) */ +.multiSelect .tickMark { + display:inline-block; + position: absolute; + right: 10px; + top: 7px; + font-size: 10px; +} + +/* hide the original HTML checkbox away */ +.multiSelect .checkbox { + color: #ddd !important; + position: absolute; + left: -9999px; + cursor: pointer; +} + +/* checkboxes currently disabled */ +.multiSelect .disabled, +.multiSelect .disabled:hover, +.multiSelect .disabled label input:hover ~ span { + color: #c4c4c4 !important; + cursor: not-allowed !important; +} + +/* If you use images in button / checkbox label, you might want to change the image style here. */ +.multiSelect img { + vertical-align: middle; + margin-bottom:0px; + max-height: 22px; + max-width:22px; +} diff --git a/applications/WebConfigure/web/css/iview.css b/applications/WebConfigure/web/css/iview.css new file mode 100644 index 0000000..cc05b57 --- /dev/null +++ b/applications/WebConfigure/web/css/iview.css @@ -0,0 +1,991 @@ +html{ + touch-action: none; + overflow: hidden; +} +/* 首页 头标题 */ +.dropdown-backdrop{ + display: none; +} +.navbar-static-top ul{ + position: relative; +} +.navbar-static-top ul li.dropdown{ + height: 103px; +} +.navbar-static-top ul li.dropdown a.dropdown-toggle{ + width: 102px; + height: 100%; +} +.navbar-static-top ul li.dropdown a.dropdown-toggle.servertime{ + width: 230px; + height: 100%; + line-height: 80px; +} +.navbar-static-top ul li.dropdown a.dropdown-toggle.servertime > div{ + height: 36px; + line-height: 36px; + text-align: center; +} +.navbar-static-top ul li.dropdown i.fa{ + /*font-size: 4em;*/ + line-height: 72px; +} +.navbar-static-top ul li.dropdown samp.dropdown-title{ + display: none; +} +.navbar-static-top span.fa-stack{ + font-size: 2em; +} +.navbar-static-top .dropdown-time{ + font-size: 24px; + height: 95px; + line-height: 64px; + position: absolute; + left: -230px; +} +.dropdown-toggle.servertime{ + width: 400px; + text-align: left; +} +.navbar-static-top .dropdown-title{ + text-align: center; + font-size: 20px; + margin-top: 3px; + display: block; +} + +.navbar-static-top ul li a.active{ + background: url(../img/MenuBar/iview_hover_bg.png) right; +} + +#alarmCount{ + width: 43px; + height: 32px; + font-size: 20px; + line-height: 30px; + left: 56px; +} +/* 功能悬浮框 */ +/*.dropdown-report ul#nav li a{ + width: 134px; + text-align: center; +}*/ +.dropdown-report ul.Chinese li a{ + width: 134px; + text-align: center; +} +.dropdown-report ul.English li a{ + width: 196px; + text-align: center; +} +.fa-stack .fa-stack-2x{ + color: #0166fe; +} +.navbar-top-links .dropdown-menu li{ + display: inline-block; +} +.navbar-top-links .dropdown-menu{ + width: 552px; + border: 1px solid rgba(15, 96, 244, 1); + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + background-color: rgba(22, 32, 56, 0.8); +} +.navbar-top-links .dropdown-menu.visitor{ + width: 414px; +} +.navbar-top-links .dropdown-menu.English{ + width: 610px; +} +.navbar-top-links .dropdown-menu.visitor.English{ + width: 600px; +} +.navbar-top-links .divider{ + width: 100%; + background-color: rgba(15, 96, 244, 1); +} + +/* 内容 */ +#page-wrapper{ + height: calc(100vh - 105px); + margin: 0px; +} + +/* 首页 组态列表 */ +.menu_bar,.menu_bar .nav{ + width: 150px; + /*width: 100%;*/ + /*height:100px;*/ + /*padding-bottom: 91px;*/ +} +.menu_bar .sidebar-nav{ + overflow-y: auto; + overflow-x: hidden; + height: 100%; +} +.menu_bar .nav .sub-li img{ + width: 60px; + height: 60px; +} +/* iView版本隐藏首页组态与图标 */ +.menu_bar .nav .sub-li:first-child{ + display: none; +} +.menu_bar .nav .sub-li a div.div-img{ + display: none; +} + +.menu_bar .nav .sub-li a{ + text-align: center; + padding: 14px 4px; + font-size: 24px; +} +.menu_bar .nav .sub-li a div.div-img{ + width: 100%; +} + +.menu_bar{ + padding-top: 120px; +} +/* 组态下的设备列 */ +.menu_bar .device-li{ + text-align: center; + line-height: 50px; + cursor: pointer; + margin: 2px 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.menu_bar .device-ul{ + background-color: rgba(35, 122, 248, 0.3); + padding: 2px; +} +.menu_bar .device-li span{ + font-size: 20px; +} +.menu_bar .device-li:hover, +.menu_bar .device-li.active{ + background: url(../img/MenuBar/iview_dev_bg.png) right; + color: #FFFFFF; +} + +.sidebar ul li a:hover { + background: url("../img/MenuBar/hover_bg.png") right; + background-size:auto 150px; +} +.sidebar ul li a.active{ + background: url(../img/MenuBar/iview_dev_bg.png) right; + background-size: auto 150px; +} + +/* Logo */ +.navbar-header{ + width: auto; + height: 98px; +} +.navbar-header .main-logo{ + width: 100%; + margin: 5px 0px 5px 20px; + height: 88px; + text-align: left; +} +.navbar-header .logotitle{ + display: inline; + font-size: 24px; + margin-left: 10px; +} + +/* 边框 */ +.configure_bg{ + border-radius: 8px; + background-image: -moz-linear-gradient( 90deg, rgba(0,64,225,0.2) 0%, rgba(0,64,225,0.8) 100%); + background-image: -webkit-linear-gradient( 90deg, rgba(0,64,225,0.2) 0%, rgba(0,64,225,0.8) 100%); + background-image: -ms-linear-gradient( 90deg, rgba(0,64,225,0.2) 0%, rgba(0,64,225,0.8) 100%); + border: 0px; + box-shadow: 0 0 0px; +} + +/* 组态 */ +.diagram-sigimg-img{ + height:calc(100% - 25px); +} +.diagram-sigimg-img-td{ + width:40%; +} +.diagram-sigimg-title-td{ + font-size: 18px; +} + +.pie-value-switch input{ + width: 120px; + display: inline-block; +} +/* 控制-遥调 */ +.nts-table tr td{ + padding: 2px; + width: auto; +} +.remote-regulating{ + height: calc(100% - 25px); + font-size: 2vh; + background-color: rgba(255, 255, 255, 0); +} +.remote-regulating table{ + height: 100%; + width: 100%; +} +.remote-regulating table tr td{ + text-align: center; +} +.remote-regulating .adjust button{ + width: 100%; +} +.remote-regulating button{ + width: 60%; +} +.remote-regulating input{ + width: 60%; + margin: 0px auto; + text-align: center; + background-color: #101e40; + border: 0px; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 0px; +} + +/* 实时告警 */ +.active-alarm-header,.active-alarm-table .ng-table-filters{ + display: none; +} +.active-alarm-filter{ + font-size: 20px; + padding-top: 10px; + height: 40px; + width: 740px; + margin: 0px auto; + margin-bottom: 10px; + text-align: center; +} +.active-alarm-filter span.body{ + margin: 0px 20px; +} +.active-alarm-table{ + font-size: 18px; +} +.active-alarm-table tbody tr td{ + padding-top: 10px; +} + +/* 历史 */ +.record-title{ + z-index: 999; + width: 610px; + height: 44px; + border-radius: 25px; + margin: 20px auto; + display: inline-block; +} +.record-title table{ + width: 100%; + background-color: #203882; + border-radius: 25px; +} +.record-title table tr td{ + border-radius: 25px; + height: 44px; + text-align: center; + font-size: 20px; + line-height: 44px; + cursor: pointer; +} +.record-title table tr td.selected{ + background-color: #0166fe; +} +.record-title a{ + color: #ffffff; +} + +.record-title-en table tr td{ + font-size: 16px; + white-space:nowrap; +} + +.body_export{ + display: inline-block; + height: 84px; + float: right; + padding: 26px; +} + +/*滑块*/ +.rangeslider{ + position: relative; +} +.rangeslider, .rangeslider__fill{ + background: #0166fe; + display: block; + height: 20px; + width: 100%; + -moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3); + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; +} +.rangeslider__fill{ + background: #f0f0f0; + position: absolute; + top: 0; +} +.rangeslider__handle{ + background: #0166fe; + border: 1px solid #0166fe; + cursor: pointer; + display: inline-block; + width: 40px; + height: 40px; + position: absolute; + top: -10px; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiP…Igd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g); + background-size: 100%; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(0, 0, 0, 0.1))); + background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1)); + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1)); + background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1)); + -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.3); + -moz-border-radius: 50%; + -webkit-border-radius: 50%; + border-radius: 50%; +} + +.range-slider-ul{ + margin: 10px 0px 0px 0px; + border-top: 1px solid; +} +.range-slider-ul li{ + display: inline-block; + text-align: center; +} + +/* 组态告警数位置 */ +.diagram-alarmCount,.view-alarmCount{ + right: 0px; +} + +/* 嵌入模块 */ +html{ + margin: 0px auto; +} + +#AlarmRoot{ + height:82.6vh; +} + +/* 超链接组态 返回按钮 */ +#HistoryRoot .history-button{ + position: absolute; + top: 105px; + right: 40px; + z-index: 999; +} + +/* 内容两边留空 */ +.hide-scroll .container-fluid{ + padding-right: 50px; + padding-left: 23px; +} +/*.container-fluid.device-info{*/ + /*padding-left: 160px;*/ +/*}*/ + +/* MDC历史数据 */ +#HistoryRoot{ + height:calc(100% - 82px); +} + +/* 修改字体大小 */ +.table-checkbox tr td input[type=checkbox]{ + width: 20px; + height: 20px; + vertical-align: middle; + margin: 0px; +} +.table-checkbox tr td label, +.table-checkbox tr th label{ + vertical-align: middle; + font-size: 18px; +} +#view-scroll{ + margin: 8px 0px 0px 8px; +} +#view-scroll a{ + font-size: 22px; + line-height: 22px; +} +#view-scroll .iView-scroll, +#root-structure .iView-scroll{ + /*display: none;*/ +} +#root-structure.other, +#view-scroll.other{ + margin-left: 160px; +} +label.diagram-tab,label.diagram-tab.active{ + font-size: 22px; + line-height: 22px; +} +.nav-tabs > li.tab,.nav-tabs > li.tabs{ + font-size: 22px; + line-height: 22px; +} + + +/* 信号量组态 */ +.image-signal-table .td-content{ + width: 280px; +} + +/* 弹出框字体样式 */ +.modal-dialog .modal-header h4{ + font-size: 24px; +} +.modal-dialog .modal-body p{ + font-size: 20px; +} +.modal-dialog button.btn{ + font-size: 18px; +} +.modal-content button.close{ + width: 40px; + height: 40px; + font-size: 30px; +} + +/* 隐藏弹出框的关闭按钮 */ +.modal-dialog button.btn-default{ + display: none; +} + +/* 校时弹出框 */ +.form_datetime .input-group-addon{ + padding: 6px 16px 6px 10px; +} +.form_datetime .glyphicon-time{ + width: 20px; + height: 20px; + font-size: 20px; +} +.form_datetime input.time_setting{ + height: 39px; + font-size: 20px; + width: 170px; +} +.form_datetime input[readonly]{ + background-color: #ffffff; +} + +/*********** 设置页面 *************/ +.setting-root .page-cut.ng-animate{ + position: absolute; + width: 100%; + /*transition: 0.2s ease-out all;*/ +} +/* 设置主页面 */ +.setting-body.ng-animate{ + transform: translateX(0%); +} +.setting-body.ng-show{ + transform: translateX(100%); +} +.setting-body.ng-hide{ + transform: translateX(-100%); +} +/* 设置子页面 */ +.setting-option.ng-animate{ + transform: translateX(0%); +} +.setting-option.ng-show{ + transform: translateX(-100%); +} +.setting-option.ng-hide{ + transform: translateX(100%); +} +.setting-body{ + width: 350px; + height: calc(100% - 20px); + /*border-right: 2px solid #247bf9;*/ + padding-right: 20px; + display: inline-block; +} +.setting-body ul li{ + padding: 10px; + margin-top: 10px; + font-size: 28px; + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} +.setting-body ul li a{ + display: block; + text-align: left; + width: 100%; +} +.setting-body ul li a i.right-arrows{ + float: right; + line-height: 42px; + font-size: 20px; + margin-right: 10px; + color: #949495; +} +/* 设置选中样式 */ +.setting-body ul li a span.fa-stack{ + width: 36px; + height: 36px; + line-height: 36px; + float: left; + margin-top: 5px; +} +.setting-body ul li a span i.fa-stack-1x{ + font-size: 20px; +} +.setting-body ul li a span i.fa-stack-2x{ + font-size: 36px; +} +.setting-body ul li a samp.dropdown-title{ + font-size: 26px; + margin-left: 10px; +} +.setting-body ul li.active{ + background-color: #247bf9; +} +.setting-body ul li.active a, +.setting-body ul li.active a:hover, +.setting-body ul li.active a:active{ + color: #FFFFFF; +} +.setting-body ul li.active i.right-arrows{ + color: #FFFFFF; +} +.setting-body ul li.active i.fa-stack-2x { + color: #fff; +} +.setting-body ul li.active i.fa-inverse { + color: #0166fe; +} +.setting-option{ + width: calc(100% - 350px); + height: calc(100% - 20px); + display: inline-block; + float: right; + padding-left: 20px; +} +.setting-option .modal-content{ + border-radius: 0px; + border: 0px; + box-shadow: 0px 0px 0px 0px; + background-color: transparent; +} +.setting-option .modal-header{ + text-align: center; + padding-left: 15px; + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); + border-radius: 0px; +} +.setting-option .modal-header h4{ + font-size: 30px; +} +.setting-option .modal-header button.close{ + float: left; + background-color: transparent; +} +.setting-option .modal-content button.close{ + font-size: 40px; +} +.setting-option .modal-content button.close i{ + color: #464952; +} +.setting-option .modal-content .model-body-footer{ + width: 100%; + margin: 20px auto 0px; + padding-top: 30px; + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); +} +.setting-option table tr td{ + font-size: 24px; +} +.setting-option .btn{ + font-size: 20px; + margin: 1px 0px; +} +.setting-option .glyphicon-time{ + font-size: 22px; +} +.setting-option input.form-control{ + font-size: 22px; +} +.threshold-setting .table > thead > tr > td, +.threshold-setting .table > tbody > tr > td{ + padding: 8px; +} +.setting-option .body-head{ + width: 100%; + height: 48px; +} +.setting-option .body-head ul{ + width: calc(100% - 48px); + height: 100%; +} +.setting-option .body-head ul li{ + float: left; + background-color: #F5F6FA; + border: 2px solid rgb(222, 226, 246); + box-shadow: 0px 6px 10px 0px rgba(1, 102, 254, 0.1); + font-size: 20px; + padding: 8px 16px; + margin: 0px 2px; + color: #464952; +} +.setting-option .body-head ul li.active{ + background-color: #ffffff; + border: 2px solid rgb(222, 226, 246); + color: #237AF8; +} +#only li.active{ + background-color: #0166fe; + border: 2px solid rgb(222, 226, 246); + color: #fff; +} +.scroll-easy{ + overflow-y: auto; +} +.setting-option table tr td input{ + width: 250px; +} +.setting-option .modal-body .date{ + width: 500px; + margin: 0px auto; +} +.setting-option .modal-body .date input{ + width: 160px; + height: 45px; + margin-right: 15px; + background-color: #f5f7fc; + font-size: 22px; +} +.dropdown-report ul.Chinese li a{ + width: 100%; + text-align: left; +} +.home-setting .modal-body table{ + width: 100%; + border-top: 10px solid #030f45; + border-left: 10px solid #030f45; +} +.home-setting .modal-body table tr td{ + text-align: center; + cursor: pointer; + padding: 5px; + border-right: 10px solid #030f45; + border-bottom: 10px solid #030f45; +} +.home-setting .modal-body>div{ + margin: 10px; +} +.home-setting .modal-body table tr td samp.dropdown-title{ + display: block; +} + +/* 历史告警 */ +.active-alarm-filter button span{ + font-size: 18px; +} +.alarm-remark{ + font-size: 20px; + border-radius:0px; +} + +/*iView版 兼容组态范围*/ +.iview-canvas{ + position: absolute; + top: 0; + z-index: 999; + width: 100%; + height: 100%; + + -webkit-pointer-events: none; + -moz-pointer-events: none; + -ms-pointer-events: none; + -o-pointer-events: none; + pointer-events: none; +} +.iview-canvas .canvas-body{ + height: 100%; + margin: 0px auto; + + -webkit-pointer-events: none; + -moz-pointer-events: none; + -ms-pointer-events: none; + -o-pointer-events: none; + pointer-events: none; +} +.iview-canvas .canvas-body .canvas-config{ + height: 100%; + border: 5px solid #0F86D6; + margin-left: 150px; +} + +/* 实时告警页面 */ +.alarm-button{ + height: 40px; + float: right; +} + +/* 信号量组态 */ +.signal_title label.groupname, +.configure_bg .signal_title, +.white_bg .signal_title{ + font-size: 20px; + font-weight: 100; +} +.signal-body-table table tbody tr td, +.signal-body-table table tbody tr td label{ + font-size: 18px; + font-weight: 100; +} + +/* 修改所有iView的字体大小 */ +.form-control{ + padding: 2px 12px; + font-size: 20px; + height: 39px; +} +.table, +.table thead tr td, +.table tbody tr td{ + font-size: 19px; +} +.device_info_btn{ + font-size: 20px; + width: 120px; + height: 30px; + line-height: 24px; + background-color: #0084D7; +} +.fullscreen>a{ + width: 30px; + height: 30px; +} +h5, +.panel-heading, +.btn, +.nav.nav-tabs, +.fullscreen .glyphicon{ + font-size: 20px; +} +label, +h5 small, +.btn.btn-sm{ + font-size: 18px; +} +.center-config{ + font-size: 18px; +} +input[type="radio"], +.center-config input[type="checkbox"]{ + height: 20px; + width: 20px; +} + +/* 显示返回按钮 */ +button.return-btn{ + display: block; +} + +/* 放大弹出框的默认宽度 */ +.modal-dialog{ + width: 700px; +} + +/* 放大复选框 */ +input[type="radio"], +input[type="checkbox"]{ + width: 25px; + height: 25px; + vertical-align: middle; +} + +input.switch-check{ + width: 60px; + height: 30px; +} + +/* 实时预览 */ +.camera-menu{ + width: 320px; +} +.camera-menu .title{ + height: 50px; + line-height: 50px; +} +.camera-menu .title span{ + font-size: 30px; + padding-left: 5px; + line-height: 50px; +} +.camera-menu .tree{ + height: 100%; +} + +.camera-menu .tree ul li{ + padding-left: 14px; +} +.camera-menu .tree ul li i, +.camera-menu .tree ul li a{ + font-size: 24px; +} +.camera-menu .tree ul li.active{ + background-color: #217CF6; +} +.camera-menu .tree ul li.active i, +.camera-menu .tree ul li.active a{ + color: #ffffff; +} + +.split-area{ + height: 36px; +} +.split-area a{ + font-size: 24px; +} +.split-area span.camera_view{ + height: calc(100% - 4px); + width: 140px; + margin:2px 0px 2px 10px; +} +.split-area span.camera_split{ + margin:2px 10px 2px 0px; +} +/* 视频管理 */ +.modify-camera ul.camera-parent li div, +.modify-camera ul.camera-children li { + padding:5px 14px; + cursor:pointer; +} +.modify-camera ul li i, +.modify-camera ul li a{ + font-size: 24px; + color:#464952; +} +.modify-camera div.active{ + background-color: #217CF6; +} +.modify-camera div.active i, +.modify-camera div.active a, +.modify-camera li.active i, +.modify-camera li.active a{ + color: #FFFFFF; +} +.camera-menu span.modify-video{ + float: right; + padding-right: 10px; +} +.camera-menu span.modify-video button{ + margin-bottom: 8px; +} + +/* 组态小键盘 */ +.key-wheel .key-title label.control-label{ + padding: 0px 5px; +} +.key-wheel .key-table td.ng-binding{ + font-size: 18px; +} + +.diagram-ele-head a.grahico{ + height: 19px; + line-height: 19px; +} + +/* 新3D MDC */ +.mdc-3d-button.button-1{ + margin-left: 160px; +} +/* MDC配置化-单排 */ + +#page-wrapper.iview .iview-hide { + visibility: hidden; +} +#page-wrapper.iview #view-scroll{ + width: calc(100% - 160px); +} + + +#diagramControl{ + height:calc(100% - 74px); +} + + +.checkbox.btn-default{ + border-radius: 8px; +} + +/* APP License */ +#app-license table.body_transparent td.title{ + width: 20%; +} +#app-license table.body_transparent td.input > input{ + width: 100%; +} +#app-license table.body_transparent td.input > input[type="file"]{ + font-size: 20px; + line-height: 38px; +} +#app-license table.body_transparent td.button{ + width: 30%; +} +/* 告警等级配置 */ +#alarm-level-config table > thead > tr > th{ + font-size: 20px; +} +#alarm-level-config table td.alarm-color select, +#alarm-level-config table td.alarm-color input{ + vertical-align: bottom; +} + +/* RTSP新视频 */ +.webRtcPlayer { + position: absolute; + padding: 10px; + width: calc(100% - 320px); + height: calc(100% - 105px); + background-color: transparent; +} +.webRtcPlayer video{ + object-fit:fill; + position: relative; + height: 100%; + width: 100%; + /* border: 1px solid #FFCC00; */ +} +/* 设备抄表 */ +.col-md-6 input[id="ssl"], +.col-md-12 input[id="ssl"], +.col-md-6 input[id="auth"], +.col-md-12 input[id="auth"], +.col-md-6 input[name="timingStatus"], +.col-md-12 input[name="timingStatus"]{ + width: 25px; + vertical-align: top; +} + + + +@media only screen and (max-height: 800px) { + .modal-dialog{ + max-width: 1200px; + max-height: 800px; + } + .Alarm-Play-Screen{ + width: 60vw; + } +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/jquery.dropdown.css b/applications/WebConfigure/web/css/jquery.dropdown.css new file mode 100644 index 0000000..b65782a --- /dev/null +++ b/applications/WebConfigure/web/css/jquery.dropdown.css @@ -0,0 +1,390 @@ +@-webkit-keyframes iui-fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-moz-keyframes iui-fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-ms-keyframes iui-fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-o-keyframes iui-fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@keyframes iui-fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-webkit-keyframes iui-fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@-moz-keyframes iui-fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@-ms-keyframes iui-fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@-o-keyframes iui-fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@keyframes iui-fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +.dropdown-multiple, +.dropdown-multiple-label, +.dropdown-single { + position: relative +} + +.dropdown-multiple-label.active .dropdown-main, +.dropdown-multiple.active .dropdown-main, +.dropdown-single.active .dropdown-main { + display: block; + -webkit-animation: iui-fadeIn .2s ease-in forwards; + -moz-animation: iui-fadeIn .2s ease-in forwards; + -ms-animation: iui-fadeIn .2s ease-in forwards; + -o-animation: iui-fadeIn .2s ease-in forwards; + animation: iui-fadeIn .2s ease-in forwards +} + +.dropdown-multiple-label.active .dropdown-display-label:after, +.dropdown-multiple-label.active .dropdown-display:after, +.dropdown-multiple.active .dropdown-display-label:after, +.dropdown-multiple.active .dropdown-display:after, +.dropdown-single.active .dropdown-display-label:after, +.dropdown-single.active .dropdown-display:after { + border-top: none; + border-bottom: 10px solid #999; + border-left: 5px solid transparent; + border-right: 5px solid transparent +} + +.dropdown-multiple-label.active .dropdown-display, +.dropdown-multiple-label.active .dropdown-display-label, +.dropdown-multiple.active .dropdown-display, +.dropdown-multiple.active .dropdown-display-label, +.dropdown-single.active .dropdown-display, +.dropdown-single.active .dropdown-display-label { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0 +} + +.dropdown-display, +.dropdown-display-label { + position: relative; + display: block; + margin-bottom: 0; + font-size: 14px; + line-height: 1.42857143; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + user-select: none; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + background-color: #fff +} + +.dropdown-display-label:after, +.dropdown-display:after { + content: ''; + position: absolute; + border-top: 10px solid #999; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + top: 12px; + right: 8px +} + +.dropdown-clear-all { + background-color: #fff; + border: none; + font-size: 22px; + z-index: 999; + color: #999; + position: absolute; + right: 2px; + top: 2px; + display: none; + width: 25px; + height: 30px; + text-align: center; + line-height: 30px; +} + +.dropdown-clear-all:focus { + outline: 0 +} + +.dropdown-clear-all:hover { + color: #ccc; + text-decoration: none; +} + +.dropdown-display { + white-space: nowrap; + padding: 6px 20px 6px 12px +} + +.dropdown-multiple:hover .dropdown-clear-all, +.dropdown-single:hover .dropdown-clear-all { + display: block +} + +.dropdown-display .dropdown-chose-list { + display: inline-block; + vertical-align: middle; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.dropdown-display .dropdown-chose-list span:before { + content: ',' +} + +.dropdown-display .dropdown-chose-list span:first-child:before { + content: '' +} + +.dropdown-display .placeholder { + display: none +} + +.dropdown-display .placeholder:first-child { + position: absolute; + height: 100%; + width: 100%; + top: 0; + left: 0; + color: #999; + display: block; + text-indent: 10px; + font-size: 13px; + line-height: 32px +} + +.dropdown-display input { + border: 0; + outline: 0 +} + +.dropdown-display-label { + cursor: text; + padding: 6px 25px 5px 0 +} + +.dropdown-display-label .dropdown-search { + display: inline-block +} + +.dropdown-display-label input, +.dropdown-display-label input:focus { + border: none; + outline: 0 +} + +.dropdown-display-label .dropdown-chose-list { + display: inline-block; + padding: 0 5px +} + +.dropdown-display-label .dropdown-chose-list .placeholder { + display: none +} + +.dropdown-display-label .dropdown-selected { + position: relative; + margin: 0 5px 5px 0; + padding: 0 20px 0 5px; + border: 1px solid #aaa; + max-width: 100%; + border-radius: 3px; + background-repeat: repeat-x; + color: #333; + cursor: default; + display: inline-block +} + +.dropdown-display-label .dropdown-selected .del { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: 0 0; + border: 0; + float: right; + line-height: 1; + color: #999; + position: absolute; + right: 3px; + top: 0 +} + +.dropdown-display-label .dropdown-selected .del:after { + content: '\D7'; + font-size: 16px +} + +.dropdown-main { + position: absolute; + top: 100%; + left: 0; + z-index: 1010; + width: 100%; + color: #444; + box-sizing: border-box; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 0 0 4px 4px; + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + margin-top: -1px; + border-top: 0; + padding: 4px 7px; + display: none +} + +.dropdown-main ul { + overflow-x: hidden; + overflow-y: auto; + max-height: 240px; + margin: 0; + padding: 0 +} + +.dropdown-main input { + margin-top: 0; + display: block; + box-sizing: border-box; + height: 30px; + border: 1px solid #ccc; + width: 100%; + text-indent: 5px; + border-radius: 3px +} + +.dropdown-main .dropdown-search { + display: block; + padding: 5px 0 +} + +.dropdown-group { + font-weight: 700 +} + +.dropdown-group, +.dropdown-option { + margin: 0; + padding-left: 12px; + list-style: none; + line-height: 26px; + word-wrap: break-word +} + +.dropdown-option { + cursor: pointer +} + +.dropdown-option:focus, +.dropdown-option:hover { + background-color: #efefef; + outline: 0 +} + +.dropdown-option[disabled] { + color: #ddd; + background-color: #ddd; + cursor: not-allowed; + text-decoration: line-through +} +.dropdown-option.dropdown-chose{ + background-color: #ddd; + border-bottom:1px solid #fff; +} +.dropdown-option.dropdown-chose:after { + content: ''; + float: right; + width: 10px; + height: 10px; + background: #4AB1E9; + border-radius: 100%; + margin: 8px 5px 0 0 +} + +.dropdown-maxItem-alert { + position: absolute; + top: 0; + left: 0; + background-color: #e4e3e2; + width: 100%; + height: 39px; + line-height: 39px; + padding: 0 5px; + border-radius: 5px; + color: #999; + -webkit-animation: iui-fadeIn .2s ease-in forwards; + -moz-animation: iui-fadeIn .2s ease-in forwards; + -ms-animation: iui-fadeIn .2s ease-in forwards; + -o-animation: iui-fadeIn .2s ease-in forwards; + animation: iui-fadeIn .2s ease-in forwards +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/keyboard.css b/applications/WebConfigure/web/css/keyboard.css new file mode 100644 index 0000000..92f536f --- /dev/null +++ b/applications/WebConfigure/web/css/keyboard.css @@ -0,0 +1,252 @@ +/* +*2018-06-01 +*by wangyingyu +*/ +*{ + margin: 0; + padding: 0; +} +td{ + vertical-align: middle; +} +ul{ + list-style: none; +} +var{ + font-weight: normal; +} +.l{ + float: left; +} +.r{ + float: right; +} +.clear:after { + content: ''; + display: block; + width: 0; + height: 0; + overflow: hidden; + clear: both; +} +.my_box{ + text-align: center; + margin-top: 10px; +} +.keyboard_box{ + height: 100%; + text-align: center; + background: #0a1e65; + position: relative; +} +.softkeyboard { + display: inline-block; +} +.softkeyboard td { + padding: 1px; +} +.c_panel { + background-color: #0a1e65; + text-align: center; + padding: 2px; +} +.prettyprint{ + position: absolute; + top:-30px; + left:0; + background: #fff; +} +.input_cur { + height: 65px; + padding: 1%; + font-size: 35px; + text-align: left; + border: none; +} +.close_keyborad{ + width: 10%; + height: 40px; + background:#f4f4f4 url("../img/keyboard/datika_53.gif") center no-repeat; +} +.change_btns{ + width: 22.5%; + background: #f4f4f4; + height: 40px; + line-height: 40px; + text-align: center; +} +.txt_area >.input_cur{ + width: 100%; + float: left; +} +.txt_area{ + background: #f4f4f4; + border-bottom: 1px solid #d8d8d8; +} +.latex_box{ + display: none; +} +.mq-root-block, .mq-math-mode .mq-root-block{overflow: auto;min-height: 100px; +} +.input_latex{width: 300px;} +.i_button { + border: none; + height: 68px; + width: 78px; + font-size: 28px; + background-color: #666; + color: #fff; +} +.i_button:active {background-color: #999;} +.change_btns.active{background-color: #d8d8d8;} +.i_button_num {} +.i_button_btn {float: right;width: 88px;} +.i_button_bs {float: right;width: 158px;} +.input_box { + display: none; + position: fixed; + bottom:0; + left: 0; + width: 100%; + height: 320px; + z-index: 999; +} +.mask{position: absolute;left: 0;width: 100%;height: 100%;background: rgba(0,0,0,0);} +.input_con{ + color: #000000; + width: 100%; + height: 254px; + position: absolute; + left: 0; + bottom:0; + display: none; +} +.btn_box{text-align: center; + height: 65px; + padding: 1% 0; + width: 18%; + float: left;} +.btn_box input{ + border: none; + width: 40%; + height: 100%; + line-height: 1.5; + background: border-box; + background: -webkit-linear-gradient(top, #eaba3b, #e2aa18); + font-size: 16px; + text-align: center; + border-radius: 10px; + color: #fff;} +.btn_box input:active{ + background: -webkit-linear-gradient(top, #ffce4e, #f0bc34); +} +.zn_box{ + position: absolute; + top: -40px; + left: 0; + text-align: center; + line-height: 40px; + background: #333; + padding: 2px 0; + width: 100%; + height: 40px; + overflow: hidden; +} +.zn_box.on{ + overflow: initial; + height: 200px; +} +.zn_box p{ + color: #fff; + margin-left: 10px; +} +.zn_box span{ + float: left; + display: block; + height: 40px; + width: 80px; + color: #fff; + background: #999; + margin:0 5px 0 2px; +} +.zn_box .zn_scroll{ + float: left; + width: 84%; +} +.zn_box ul li{ + width: 40px; + margin: 0 5px 10px; + float: left; + background: #666; + color: #fff; +} +.zn_btn{ + width: 60px; + height: 40px; + display: block; + float: right; + background:url("../img/keyboard/datika_45.gif") center no-repeat; +} +.zn_btn.on{ + background:url("../img/keyboard/datika_52.gif") center no-repeat; +} +.answer_lists i{ + float: left; +} +.answer_lists p{ + min-height: 100px; + width: 800px; + margin: 0 auto; + float: left; + border-bottom: 1px solid #e4e4e4; + text-align: left; +} +.answer_lists i{ + height: 3vh; + line-height: 3vh; +} + +.packQuestion_answer ul{ + padding: 3vh 3vw; +} +.answer_lists{ + position: relative; + padding-top: 3vh; + font-size: 2.3vh; + width: 800px; + margin: 0 auto; +} +/*公式*/ +.i_icon{ + background:#666 url('../img/keyboard/all_latex.png') no-repeat; + background-size: 560px 200px; +} +.i_icon_1{background-position: 7px 3px;} +.i_icon_2{background-position: -35px 3px;} +.i_icon_3{background-position: -74px 3px;} +.i_icon_4{background-position: -114px 3px;} +.i_icon_5{background-position: -153px 3px;} +.i_icon_6{background-position: -196px 3px;} +.i_icon_7{background-position: 7px -30px;} +.i_icon_8{background-position: -114px -30px;} +.i_icon_9{background-position: -153px -30px;} +.i_icon_10{background-position: -196px -30px;} +.i_icon_11{background-position: -236px -30px;} +.i_icon_12{background-position: -276px -30px;} +.i_icon_13{background-position: -316px -30px;} +.i_icon_14{background-position: -354px -30px;} +.i_icon_15{background-position: -434px -30px;} +.i_icon_16{background-position: -474px -30px;} +.i_icon_17{background-position: 7px -63px;} +.i_icon_18{background-position: -35px -63px;} +.i_icon_19{background-position: -74px -63px;} +.i_icon_20{background-position: -114px -63px;} +.i_icon_21{background-position: -153px -63px;} +.i_icon_22{background-position: -196px -63px;} +.i_icon_23{background-position: -236px -63px;} +.i_icon_24{background-position: -354px -63px;} +.i_icon_25{background-position: -474px -63px;} +.i_icon_26{background-position: -514px -63px;} +.i_icon_27{background-position: 7px -93px;} +.i_icon_28{background-position: -35px -93px;} +.i_icon_29{background-position: -74px -93px;} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/main.css b/applications/WebConfigure/web/css/main.css new file mode 100644 index 0000000..1d4cfee --- /dev/null +++ b/applications/WebConfigure/web/css/main.css @@ -0,0 +1,1924 @@ +body,button, input, select, textarea,h1 ,h2, h3, h4, h5, h6 { + /*font-family: Microsoft YaHei,'宋体' , Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;*/ + font-family:'Microsoft Yahei'; +} + +i{ + font-style: normal; +} + +/*html,body{min-height:100%;_height:100%;}*/ + +.menuText +{ + font-size: 16px; + +} +.nav > li > a:hover{ + /*background-color: #21272B;*/ + background-color: rgba(2, 46, 141, 0.6); + background-size: auto 58px; + cursor:pointer; +} +.nav > .open > a:focus{ + /*background-color: #171A21;*/ + background-color: rgba(2, 46, 141, 0.6); + background-size: auto 58px; +} + + +#diagramControl{ + width: 100%; +} + +.alarmLevel0 +{ + color: #5cb85c; + +} + +.alarmLevel1 +{ + color: #31b0d5; +} + +.alarmLevel2 +{ + color: #ec971f; +} + +.alarmLevel3 +{ + color: #c9302c; +} + +.alarmLevel9 +{ + color: #7f8cab; +} + + +.fullscreen{ +float: left; + width: 30px; + position: fixed; + margin:0px 20px 20px 0px; + right:0px; + bottom: 0px; +} + +.fullscreen>a{ + cursor: pointer; + display: block; + width: 26px; + height: 26px; + background-color: #0084D7; + border-radius:10px; + + -webkit-box-shadow:0 0 10px rgba(0, 204, 204, .5); + -moz-box-shadow:0 0 10px rgba(0, 204, 204, .5); + box-shadow:0 0 10px rgba(0, 204, 204, .5); + +} +.fullscreen>a>i{ + color:#fff; + padding: 5px; +} + +.grahico{ + color: #f4f4f4 !important; + cursor:pointer; + text-decoration: none; + padding-left: 5px; +} + + +#pop{background:#232A30;width:328px;border:1px solid #e0e0e0;font-size:12px;position: fixed; z-index: 999; right:10px;bottom:10px; color:#fff;} +#popHead{line-height:45px;background:#12161c; height:45px; border-bottom:1px solid #12161c;position:relative;font-size:12px; padding-left:10px;} +#popHead h2{font-size:14px;color:#fff;line-height:45px;height:45px; padding: 0px; margin: 0px;} +#popHead #popClose{position:absolute;right:10px;top:1px;} +#popHead a#popClose:hover{color:#f00;cursor:pointer;} +#popContent{padding:5px 10px;} +#popContent dl{margin-top:7px; background:#2A3645; padding:5px; } +#popIntro a{line-height:24px;font-size:14px;font-family:'微软雅黑';color:#fff ;font-weight:bold;text-decoration:none;} +#popIntro a:hover{color:#f60;} +#popTime{text-indent:24px; text-align:right; line-height:160%;margin:5px 0;color:#fff;} +#popMore{text-align:right;line-height:24px;margin:8px 0 0 0;} +#popMore a{color:#f60;} +#popMore a:hover{color:#f00;} + +/* 3d part */ +#left,#right{position:absolute; top:50px;height:calc(100vh - 50px);background-color:#f0f0f0;} +#left{left:200px; width:70px;} +#right{right:0; width:200px;} +#main{margin:0px 185px 0px 70px; background-color: #c0c0c0; height:100%;} + +.section{ + height: 100%; + background-color:#202325; +} +.section input,select{ + border:none; +} + +.sectionHeader{ + background-color:#111; + text-align: center; + vertical-align: middle; + font-size: 16px; + padding: 7px; + height: 40px; +} + +.sectionBody{ + background-color:#1D2027; + text-align: center; +} + +.toolbar{ + height: 41px; + background-color:#d5d5d5; + vertical-align: middle; + border: 1px solid #ddd; + padding: 4.5px; +} + +.btn-group-pad{ + padding-left: 5px; + padding-right: 5px; +} + +.symbol{ + margin: 5px; + text-align: center; +} + +.symbolActive, +.symbol:hover, +.symbol:focus { + border: 3px solid #0086b3; + font-weight: bold; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; + cursor: pointer; + padding: 2px; +} + +.symbol .icon{ + height: 40px; + width: 40px; + margin: 2px; +} + +.graphCanvas{ + /*margin: 1px;*/ + padding-top: 4px; + vertical-align: middle; + text-align: center; + width: 100%; + height: 100%; +} + +/* class for svg items */ + +.pointIndicator{ + r: 30; + fill: #F5B041; + stroke: #B9770E; + fill-opacity: 0.7; +} + +.rulerPath{ + stroke: #ec5779; + stroke-width:40; + stroke-linecap: round; + pointer-events:all; +} + +.modal-backdrop.am-fade { + opacity: .5; +} + +.viewport3D { + width: 100%; + padding: 0px; + height: 100%; + overflow: hidden; +} + +.cabinet { + padding: 2px; + margin: 1px; + color:white; +} + +/** MDC Alarm */ +#AlarmRoot{ + width: 100%; + height: calc(100% - 70px); + margin: 0px auto; + padding: 5px; + position: relative; +} +#AlarmRoot .root-cheek{ + /*width: 100%; + height: 100%; + border: 30px solid #39445A;*/ +} +.root-cheek .alarm-chart{ + width: 3vw; + height: 3vw; + position: absolute; + bottom: 8vh; + left: 5vw; + cursor: pointer; + z-index: 3; +} +.root-cheek .filer_body{ + width: 8vw; + height: 3vw; + position: absolute; + bottom: 8vh; + right: 15vh; + z-index: 3; + line-height: 3vh; +} +.root-cheek .filer_font{ + font-size: 20px; + display: inline-block; + height: 3vw; + line-height: 3vw; + float: left; + margin-right: 10px; +} +.root-cheek .filtering{ + width: 4vw; + height: 3vw; + cursor: pointer; + display: inline-block; + float: left; +} +.water{ + width: 100%; + height: 100%; + position: absolute; +} +.water .button{ + cursor: pointer; +} +.water .position1{ + width: 100%; + height: 2vh; + position: absolute; + top: 10px; +} +.water .position2{ + width: 100%; + height: 2vh; + position: absolute; + bottom: 10px; +} +/** 水浸 */ +.water .normal{ + background:url('../img/mdc/WaterMonitorNormal.gif') no-repeat center; +} +.water .alarm{ + background:url('../img/mdc/WaterMonitorAlarm.gif') no-repeat center; +} +#MdcCabinet{ + width: 94%; + margin-top: 13.4vh; + margin-left: 2vw; +} +#MdcCabinet .cabinet-box .cabinet > table{ + width: 100%; +} +#MdcCabinet .cabinet-box .cabinet > table tr td{ + position: relative; +} +.cabinet .cabinet-title{ + width: 90%; + position: absolute; + left: 5%; + font-size: 1.8vh; + font-weight: 600; + line-height: 3vh; + text-align: center; + display:table-cell; + vertical-align:bottom; + background-color: rgba(8, 9, 13, 0.89); + border-radius:5px; +} +.cabinet .top{ + bottom: 13.5vh; +} +.cabinet .bottom{ + top: 13.5vh; +} +.cabinet .cabinet-body{ + width: 4vw; + height: 11vh; + margin: 0px auto; + border-radius:5px; + background-repeat:no-repeat; + background-position:center center; +} +.device .normal{ + border:#5E687F 3px solid; + box-shadow: 0 0 8px rgba(127, 140, 171, 1); + -webkit-box-shadow: 0 0 8px rgba(127, 140, 171,1); + -moz-box-shadow: 0 0 8px rgba(127, 140, 171,1); +} +.device .alarmUrgent{ + border:#B93564 3px solid; + box-shadow: 0 0 8px rgba(219, 63, 118,1); + -webkit-box-shadow: 0 0 8px rgba(219, 63, 118,1); + -moz-box-shadow: 0 0 8px rgba(219, 63, 118,1); +} +.device .alarmImportant{ + border:#DDBE10 3px solid; + box-shadow: 0 0 8px rgba(243, 220, 86,1); + -webkit-box-shadow: 0 0 8px rgba(243, 220, 86,1); + -moz-box-shadow: 0 0 8px rgba(243, 220, 86,1); +} +.device .alarmCommon{ + border:#2289FC 3px solid; + box-shadow: 0 0 8px rgba(100, 172, 253,1); + -webkit-box-shadow: 0 0 8px rgba(100, 172, 253,1); + -moz-box-shadow: 0 0 8px rgba(100, 172, 253,1); +} +.device .alarmTip{ + border:#17C06B 3px solid; + box-shadow: 0 0 8px rgba(24, 212, 121,1); + -webkit-box-shadow: 0 0 8px rgba(24, 212, 121,1); + -moz-box-shadow: 0 0 8px rgba(24, 212, 121,1); +} +.device .disable{ + border:#5E687F 3px solid; + box-shadow: 0 0 8px rgba(127, 140, 171, 1); + -webkit-box-shadow: 0 0 8px rgba(127, 140, 171,1); + -moz-box-shadow: 0 0 8px rgba(127, 140, 171,1); +} +/** 门 */ +.door .door1,.door .door2{ + width: 0.7vw; + height: 35vh; +} +.door .normal{ + cursor: pointer; + background: url('../img/mdc/DoorNormal.png') no-repeat center; + background-size: 0.7vw 35vh; +} +.door .alarm +{ + cursor: pointer; + background: url('../img/mdc/DoorAlarm.png') no-repeat center; + background-size: 24px 320px; +} +.cabinet .button .cabinet-body{ + cursor: pointer; +} +/*UPS*/ +.UPS{ + background:url('../img/mdc/ups.png'); +} +/*服务器*/ +.RACK{ + background:url('../img/mdc/rack.png'); +} +/*空调*/ +.AC{ + background:url('../img/mdc/ac.png'); +} +/*布线柜*/ +.UNUSE{ + background:url('../img/mdc/unuse.png'); +} +/*电池柜*/ +.CELL{ + background:url('../img/mdc/cell.png'); +} +/*配电柜*/ +.RECTIFIER{ + background:url('../img/mdc/rectifier.png'); +} +/*高压直流柜*/ +.HVDC{ + background:url('../img/mdc/hvdc.png'); +} + +.cabinet .corridor{ + width: 100%; + height: 18vh; + position: relative; +} +.corridor .camera , .corridor .smoke , .corridor .infrared{ + /*position: absolute;*/ + width: 5vh; + height: 5vh; + cursor: pointer; +} +.corridor .camera{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall.png') no-repeat center; + background-size: 3vw 3vw; +} + +.camera_left.cameraNormal{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall_L_Normal.png') no-repeat center; + background-size: 3vw 3vw; +} +.camera_right.cameraNormal{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall_R_Normal.png') no-repeat center; + background-size: 3vw 3vw; +} +.camera_left.cameraDisconnect{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall_L.png') no-repeat center; + background-size: 3vw 3vw; +} +.camera_right.cameraDisconnect{ + width: 4vw; + height: 4vw; + background: url('../img/mdc/CameraBall_R.png') no-repeat center; + background-size: 3vw 3vw; +} + + + +/*.corridor .camera1{ + top: 6vh; + left: 1vw; + background: url('../img/mdc/CameraStand1.png') no-repeat center; + background-size: 4vw 4vh; +} +.corridor .camera2{ + top: 6vh; + right: 1vw; + background: url('../img/mdc/CameraStand2.png') no-repeat center; + background-size: 4vw 4vh; +}*/ +/*.corridor .camera3{ + top: 3vh; + right:25vw; +} +.corridor .camera4{ + bottom: 3vh; + left:25vw; +}*/ +.corridor .infrared1{ + top: 7vh; + left:18vw; +} +.corridor .infrared2{ + top: 7vh; + right:18vw; +} +.infrared.normal{ + background: url('../img/mdc/InfraredNormal.png') no-repeat center; + background-size: 5vh 5vh; +} +.infrared.alarm{ + background: url('../img/mdc/InfraredAlarm.png') no-repeat center; + background-size: 5vh 5vh; +} +.corridor .smoke1{ + top: 7vh; + left:21vw; +} +.corridor .smoke2{ + top: 7vh; + right:21vw; +} +.smoke.normal{ + background: url('../img/mdc/SmokeNormal.png') no-repeat center; + background-size: 5vh 5vh; +} +.smoke.alarm{ + background: url('../img/mdc/SmokeAlarm.png') no-repeat center; + background-size: 5vh 5vh; +} +/** 天窗 */ +#skyFalling.normal{ + margin: 0.5vh 0px; + background: url(../img/mdc/AisleNormal.png) no-repeat; + background-size: 100% 18vh; +} +#skyFalling.alarm{ + margin: 0.5vh 0px; + background: url(../img/mdc/AisleAlarm.png) no-repeat; + background-size: 100% 18vh; +} +.device > td > div.cabinet-title{ + opacity: 0; + padding: 0px 10px; + transition: 2s; + -webkit-transition: 2s; + -moz-transition: 2s; + -ms-transition: 2s; + -o-transition: 2s; +} + +.device:hover > td > div.cabinet-title{ + opacity: 1; +} + +.corridor .skyFalling{ + width: 5vw; + height: 5vh; + cursor: pointer; +} +.skyFalling.normal{ + background: url('../img/mdc/SkyFallingNormal.png') no-repeat center; + background-size: 4.2vw 4.2vh; +} +.skyFalling.alarm{ + background: url('../img/mdc/SkyFallingAlarm.png') no-repeat center; + background-size: 4.2vw 4.2vh; +} +.cabinet_body{ + border: 1px solid rgba(255, 255, 255, 0); + position: relative; + /* top: 5.4vh;*/ + height: 66vh; + background: url(../img/mdc/MDC.png); +} + +#MdcCabinet .device .cabinet-body > div{ + height:100%; +} +#MdcCabinet .device .cabinet-body > div.img{ + position: absolute; + top: 0px; + +} +/** 告警表格 */ +.mdcAlarm{ + width: 65vw; +} +.mdcBelow{ + display: flex; + justify-content: space-between; + height: 60px; + line-height: 60px; + background-color: #033085; + padding: 0 42px; +} +#mdcAlarmTable.normal{ + background: url('../img/mdc/TableNormal.png') no-repeat center; + background-size: 5vh 5vh; +} +#mdcAlarmTable.alarm{ + background: url('../img/mdc/TableAlarm.png') no-repeat center; + background-size: 5vh 5vh; +} +#mdcAlarmTable > div{ + padding: 5px; + color: #ffffff; + font-size: 20px; + font-weight: 900; + line-height: 25px; + text-align:center; + position: absolute; + left: 50px; + top: -10px; +} +.tableTop{ + width: 35px; + height: 35px; + background-color: #BA3463; + -webkit-border-radius: 50%; + border-radius: 50% +} +/** 帅选 */ +.filteringShow{ + background: url('../img/mdc/show.png') no-repeat center; + background-size: 4vw 2vw; +} +.filteringHide{ + background: url('../img/mdc/hide.png') no-repeat center; + background-size: 4vw 2vw; +} +/*********************************/ +#mdc { + color:white; + position: absolute; + left: 320px; + top: 350px; + width: 1000px; + height: 1000px; +} + +#door-left { + position: absolute; + left: 0px; + top: 101px; + width: 10px; + height: 100px; + background-color: blue; +} + +#door-right { + position: absolute; + left: 610px; + top: 101px; + width: 10px; + height: 100px; + background-color: blue; +} + +#cam1 { + position: absolute; + left: 290px; + top: 131px; + width: 40px; + height: 40px; + background-color: transparent; +} + +#mdcalarmtable { + position: absolute; + left: 1190px; + top: 150px; + width: 700px; + height: 800px; +} + +#mdcPower .Power-Cabinet{ + border: 20px solid #2B3346; + width: 85vw; + height: 54vh; + vertical-align: middle; + background-color: #20293A; + padding: 7vh; +} +#mdcPower .Power-Cabinet .cabinet-title{ + position: absolute; + left: 0.3vw; + font-size: 1.8vh; + font-weight: 600; + line-height: 3vh; + text-align: center; + display:table-cell; + vertical-align:bottom; + width: 90%; + background-color: rgba(8, 9, 13, 0.89); + border-radius:5px; +} +.Power-Cabinet .top{ + bottom: 125px; +} +.Power-Cabinet .bottom{ + top: 125px; +} +#mdcPower{ + width: 85vw; + height: 80vh; +} +#mdcPower .Power-Cabinet > table{ + width: 75vw; +} +#mdcPower .Power-Cabinet > table tr td{ + position: relative; +} +.Power-Cabinet table tr td{ + margin: 2px; +} +.Power-Cabinet .cabinet-body{ + margin: 0px auto; + border-radius:5px; + height: 12vh; + width: 4vw; + margin: 0px auto; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + background-color: #272F42; +} +.Power-Cabinet .cabinet-body > img{ + position: absolute; + top: 3.2vh; + /*left: 0.7vw;*/ + margin: 0px 13px; +} +/** 渐变背景色 */ +.Power-Cabinet .gradient{ + background-image: -webkit-linear-gradient(top, #D22787, #2870D1); + background-image: -moz-linear-gradient(top, #D22787, #2870D1); + background-image: -o-linear-gradient(top, #D22787, #2870D1); + background-image: -ms-linear-gradient(top, #D22787, #2870D1); + background-image: linear-gradient(top, #D22787, #2870D1); + border-radius:8px; +} +/** 遮蔽层 */ +.Power-Cabinet .cabinet-body > div{ + width: 3.7vw; + text-align: center; + background-color: #272F42; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.Power-Cabinet .cabinet-body .logoImg{ + width: 2.3vw; + height: 6vh; +} +.right{ + float: right; +} +.left{ + float: left; +} +.Power-Charts{ + width: 100%; + height: 25vh; + margin-top: 1vh; +} +.Power-Charts > div{ + float: left; + width: 32%; + height: 25vh; + background-color: #1F2A3C; +} +.Power-Charts .itLoad{ + margin: 0px 1.7vw; +} +.mPue .title,.itLoad .title,.totalPower .title{ + height: 5vh; + font-size: 3vh; + color: #037BC8; + line-height: 5vh; + padding-left: 5vh; + background-color: #182132; +} +.mPue .title > span,.itLoad .title > span,.totalPower .title > span{ + line-height: 50px; + float: right; + color: #ffffff; + padding-right: 20px; + cursor: pointer; +} +.Power-Charts #mPue,.Power-Charts #itLoad,.Power-Charts #totalPower{ + height: 20vh; +} +.mPue,.itLoad,.totalPower{ + position: relative; +} +.mPue .body{ + width: 5vw; + height: 20vh; + font-size: 5vh; + text-align: center; + line-height: 20vh; + position: absolute; +} +.itLoad .body-left{ + width: 10vw; + height: 9vh; + font-size: 2vh; + font-weight: 600; + text-align: center; + color: #126DC6; + position: absolute; + bottom: 0px; +} +.itLoad .body-right{ + width: 10vw; + height: 9vh; + font-size: 2vh; + font-weight: 600; + text-align: center; + color: #9D22CA; + position: absolute; + right: 0px; + top: 7vh; +} +.totalPower .body{ + width: 10vw; + height: 20vh; + text-align: center; + font-size: 2.2vh; + padding-top: 3vh; + position: absolute; +} +.totalPower .body > p{ + line-height: 3vh; +} +.totalPower .body > input{ + background-color: #172029; + text-align: center; + width: 5vw; + border-width: 0px; + margin: 1vw 0px; +} +.door-alarm +{ + cursor: pointer; + width: 24px; + height: 280px; + background-image: url('../img/mdc/DoorAlarm.png'); + background-size: 24px 230px; + background-repeat: no-repeat; + background-position: center; +} +.door-normal{ + cursor: pointer; + width: 24px; + height: 280px; + background-image: url('../img/mdc/DoorNormal.png'); + background-size: 24px 230px; + background-repeat: no-repeat; + background-position: center; +} +.camera1{ + width: 80px; + height: 40px; + float: left; + cursor: pointer; +} +.camera-centre{ + width: 700px; + height: 100px; + float: left; +} +.camera2{ + width: 40px; + height: 40px; + cursor: pointer; +} +.camera3{ + width: 40px; + height: 40px; + cursor: pointer; +} +.camera4{ + width: 80px; + height: 40px; + float: right; + cursor: pointer; +} +.mdc-power .camera-centre{ + width: 1200px; +} + +.btn-circle-lg { + width: 64px; + height: 64px; + text-align: center; + vertical-align: middle; + padding: 13px 0; + font-size: 26px; + line-height: 1.55; + border-radius: 43px; + filter: alpha(opacity=80); + opacity: 0.8; +} + + +.menubtn{ + background: #004d4d; + border-color: #005580; + color: #99ffff; +} +.menubtn:hover { + color: #ffffff; + border-color: #b3ffff; + background-color: #009999; +} + +.menuactive{ + color: #ffffff; + border-color: #b3ffff; + background-color: #009999; +} + +.rackDevice{ + border:thin solid #66ccff; + background-color:#0099e6; + display: flex; + justify-content: center; + align-items: center; +} + +.rackDevice:hover { + color: #ffffff; + border-color: #b3ffff; + font-weight: bold; + background-color: #009999; +} + +.rackDevice-selected { + background-color: #009999; +} + +.rackDevice-out { + background-color: #e04d46; +} + +/* 智能温湿度 */ +#TempRoot #tempRight{ + border: 15px solid #39445A; + background-color: #272F42; + overflow-y:auto; + padding: 15px; + height: 82vh; + font-size: 18px; +} +#tempRight .tempTable{ + width:100%; +} +.tempTable{ + border: 3px solid #3A4352; +} +.tempTable th{ + line-height: 35px; + background-color: #0F1821; +} +.tempTable th,.tempTable td{ + padding-left: 10px; +} +.tempTable .tempTbody{ + border-bottom: 3px solid #3e495d; +} +#TempRoot #tempLeft{ + width: 25%; + height: 82vh; + float: left; + padding-top: 20vh; +} +#tempLeft img{ + width: 20vw; + height: 35vh; +} +/* 3D logo */ +#mdc-3d-logo .mdc-a-input{ + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +/** 温度 */ +#MdcTemperture{ + width: 85vw; + height: 80vh; + border: 10px solid #606F8D; +} +#MdcTemperture .cabinet-box .cabinet > table{ + width: 80vw; + height: 100%; +} +#MdcTemperture .cabinet-box .cabinet > table tr td{ + position: relative; +} +#MdcTemperture .device .cabinet-body > div{ + height:100%; +} +#MdcTemperture .cabinet .cabinet-body { + width: 100%; + height: 100%; + margin: 0px auto; + border-radius: 5px; + border: #5E687F 3px solid; + box-shadow: 0 0 8px rgba(127, 140, 171, 1); + -webkit-box-shadow: 0 0 8px rgba(127, 140, 171,1); + -moz-box-shadow: 0 0 8px rgba(127, 140, 171,1); +} +#MdcTemperture .cabinet-box{ + height: 100%; + border: 2vh solid #39445A; + background-color: #272F42; +} +#MdcTemperture .cabinet { + width: 100%; + height: 60vh; + color: white; + margin-top: 6vh; +} +#MdcTemperture .device .temp1,#MdcTemperture .device .temp2,#MdcTemperture .device .temp3{ + width: 100%; + height: 5vh; + font-size: 2vh; + line-height: 5vh; + text-align:center; +} +#MdcTemperture .device .temp1{ + position: absolute; + top: 3vh; +} +#MdcTemperture .device .temp2{ + position: absolute; + top: 11vh; +} +#MdcTemperture .device .temp3{ + position: absolute; + top: 19vh; +} + +/** servertime style */ +.dropdown-toggle.servertime{ + width: 250px; +} + +/** */ +.over-y{ + height: 750px; + overflow-y: auto; +} + +.bouncyMenu { + position:absolute; + top:50px; + left:20px; + height:auto; + width:100px; + display: table-cell; + vertical-align: middle; + padding:10px; +} +@media screen and (max-width: 1600px) { + .bouncyMenu { + position:absolute; + top:50px; + left:20px; + height:auto; + width:800px; + display: table-cell; + vertical-align: middle; + padding:10px; + } +} + +.bouncyAlarmPanel { + height:230px; + width:1460px; +} +@media screen and (max-width: 1600px) { + .bouncyAlarmPanel { + height:230px; + width:920px; + } +} + +.bouncyTextPanel { + font-size: 50px; + height:100px; + padding:20px; +} +@media screen and (max-width: 1600px) { + .bouncyTextPanel { + font-size: 50px; + height:60px; + padding:2px; + margin-top: -15px; + } +} + +.bouncyPUETextPanel { + font-size: 50px; + left:100px; +} +@media screen and (max-width: 1600px) { + .bouncyPUETextPanel { + visibility: hidden; + font-size: 0px; + } +} + +/** TimeGroup style */ +.timeGroupCheck table tr td {padding: 10px;} +.timeGroupCheck label { + font-size:15px; + cursor:pointer; + margin-bottom: 0px; +} +.timeGroupCheck span { + font-size:15px; + line-height:15px; + margin:-3px 3px 1px 0px; + width:15px; + height:15px; +} +.timeGroupCheck label i { + font-size: 15px; + font-style: normal; + display: inline-block; + width: 25px; + height: 25px; + text-align: center; + line-height: 23px; + color: #ffffff; + vertical-align: middle; + margin: -3px 3px 1px 0px; + border: #337AB7 1px solid; +} +.timeGroupCheck input[type="checkbox"]{display:none;} +.timeGroupCheck input[type="checkbox"]:checked + i{background:#337AB7;} +.timeGroupCheck input[type="checkbox"]:checked:disabled + i{background:#337AB7;} + +#DoorTGChe table tbody tr:hover{ + background-color: rgba(67, 177, 255, 0.37); +} + +#ControlDoor table tbody tr{ + border-bottom: 1px solid #3B4755; +} +#ControlDoor table tbody tr td{ + border-right: 1px solid #3B4755; +} +#ControlDoor .td1{ + background-color: #011042; +} +.tbody-overflow thead,.tbody-overflow tbody{ + display: block; +} +.tbody-overflow tbody{ + height: 100px; + overflow: auto; +} +.tbody-overflow .tbody-td1{ + width: 70px; + min-width: 70px; + max-height: 70px; +} +.tbody-overflow .tbody-td2{ + width: 874px; + min-width: 874px; + max-height: 874px; +} +.tbody-overflow .tbody-td3{ + width: 53px; + min-width: 53px; + max-height: 53px; +} +.tbody-overflow .tbody-td4{ + width: 108px; + min-width: 108px; + max-height: 108px; +} +.tbody-overflow .tbody-td5{ + width: 171px; + min-width: 171px; + max-height: 171px; +} +.tbody-overflow .tbody-td6{ + width: 86px; + min-width: 86px; + max-height: 86px; +} +.tbody-overflow .tbody-td7{ + width: 69px; + min-width: 69px; + max-height: 69px; +} +.tbody-overflow .tbody-td8{ + width: 200px; + min-width: 200px; + max-height: 200px; +} +.tbody-overflow .tbody-td9{ + width: 200px; + min-width: 200px; + max-height: 200px; +} +.tbody-overflow .tbody-td10{ + width: 55px; + min-width: 55px; + max-height: 55px; +} +.tbody-overflow .tbody-td11{ + width: 437px; + min-width: 437px; + max-height: 437px; +} +.tbody-overflow .tbody-td12{ + width: 446px; + min-width: 446px; + max-height: 446px; +} +.tbody-overflow .tbody-td13{ + width: 246px; + min-width: 246px; + max-height: 246px; +} +.tbody-overflow .tbody-td14{ + width: 100px; + min-width: 100px; + max-height: 100px; +} +.tbody-overflow .tbody-td15{ + width: 610px; + min-width: 610px; + max-height: 610px; +} +.tbody-overflow .tbody-td5_2{ + width: 20%; + min-width: 20%; + max-height: 20%; +} +.tbody-overflow .tbody-td5_8{ + width: 80%; + min-width: 80%; + max-height: 80%; +} +.tbody-overflow .td1{ + width: 4vw; +} +.tbody-overflow .td2{ + width: 45.6vw; +} + +.labelCenter { + line-height: 34px; +} + +.pointer{ + cursor: pointer; +} + +/* Expression Symbol */ +.ExpressionSymbol{ + list-style:none; + padding-right: 10px; +} +.ExpressionSymbol li{ + width: 24px; + height: 24px; + border: 1px solid #025aff; + background-color: #3fa5ef; + text-align:center; + float:left; + cursor: pointer; +} + +.disable{ + pointer-events: none; + background-color: #b3a7a7; + border-color: #b5a9b4; +} + +.templateDiv{ + position: relative; +} + +.templateProperty{ + position: absolute; + top: 90%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #171b21; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 0px; +} +.templateProperty li input[type="checkbox"]{ + font-size: 15px; + font-style: normal; + display: inline-block; + width: 20px; + height: 20px; + text-align: center; + line-height: 23px; + color: #ffffff; + vertical-align: middle; + margin: -3px 3px 1px 0px; + border: #337AB7 1px solid; +} +.templateProperty label,input{ + cursor:pointer; +} + + +#alarmCount{ + position: absolute; + top: 10px; + left: 60px; + width: 32px; + height: 22px; + background-color: #BA3463; + color: white; + text-align: center; + border-radius: 100px; + -moz-border-radius: 100px; + line-height:22px; + z-index: 3; + display: none; +} + +/************* 组态编辑 *******************/ + +.selectDiv{ + position:absolute; + border:3px dashed #43b1ff; + background-color: rgba(67, 177, 255, 0.10); + width:0px; + height:0px; + left:0px; + top:0px; + overflow:hidden; +} +.seled{ + border: 3px dashed #43b1ff; +} + +.editor{ + width: 820px; + height: 30px; + margin: 0px auto; + position: relative; + z-index: 999; +} +.editor button{ + float: left; + width: 30px; + height: 30px; + background-color: rgba(0, 136, 255, 0.2); + border-color: rgba(0, 132, 215, 0.8); + border-style: solid; + margin: 0px 2px; + padding: 0px; +} +.editor button img{ + width: 20px; + height: 20px; +} + +.is-show-ul li{ + width: 110px; +} + +.is-show-div{ + position: absolute; + width: 20px; + right: 0px; + top: 0px; + cursor: pointer; + box-shadow: -5px 0 5px #337AB7; + background-color: rgba(0, 136, 255, 0.2); + border: 2px solid rgba(0, 132, 215, 0.8); +} + +.editor-menu{ + background-color: rgba(0, 136, 255, 0.1); + border: 2px solid rgba(0, 132, 215, 0.8); +} + +/** 2D MDC微模块菜单按钮 *****************/ +.MdcMenu{ + position: absolute; + left: 37%; + z-index: 999; + width: 410px; + height: 44px; + border-radius: 25px; + top: 3.9vh; +} +.MdcMenu table{ + width: 100%; + background-color: #203882; + border-radius: 25px; +} +.MdcMenu tr td{ + height: 44px; + text-align: center; + font-size: 16px; + line-height: 44px; + cursor: pointer; + /*background-color: #203882;*/ +} +.MdcMenu tr td:hover{ + background-color: rgba(1, 102, 254, 0.5); +} +.MdcMenu tr td.selected{ + background-color: #0166fe; +} +.MdcMenu tr td{ + border-radius: 25px; +} +/*.MdcMenu tr td:first-child{ + border-top-left-radius: 25px; + border-bottom-left-radius: 25px; +} +.MdcMenu tr td:last-child{ + border-top-right-radius: 25px; + border-bottom-right-radius: 25px; +}*/ + + + +.thermalHumidity{ + width: 5vh; + height: 10vh; +} + + +.thermalHumidity div{ + width: 5vh; + height: 5vh; + cursor: pointer; +} +.thermalHumidity_2 div{ + width: 14vh; + height: 4vh; + cursor: pointer; + font-size: 1.6vh; + text-align: right; + line-height: 4.5vh; + padding: 0px 10px; +} + +.thermalHumidity .thermal.normal{ + background:url('../img/mdc/ThermalNormal.png') no-repeat center; + background-size: 5vh 5vh; +} +.thermalHumidity .thermal.alarm{ + background:url('../img/mdc/ThermalAlarm.png') no-repeat center; + background-size: 5vh 5vh; +} +.thermalHumidity_2 .thermal_2.normal{ + background:url('../img/mdc/ThermalNormal_2.png') no-repeat center; + background-size: 14vh 4vh; +} +.thermalHumidity_2 .thermal_2.alarm{ + background:url('../img/mdc/ThermalAlarm_2.png') no-repeat center; + background-size: 14vh 4vh; +} + + +.thermalHumidity .humidity.normal{ + background:url('../img/mdc/HumidityNormal.png') no-repeat center; + background-size: 5vh 5vh; +} +.thermalHumidity .humidity.alarm{ + background:url('../img/mdc/HumidityAlarm.png') no-repeat center; + background-size: 5vh 5vh; +} +.thermalHumidity_2 .humidity_2.normal{ + background:url('../img/mdc/HumidityNormal_2.png') no-repeat center; + background-size: 14vh 4vh; +} +.thermalHumidity_2 .humidity_2.alarm{ + background:url('../img/mdc/HumidityAlarm_2.png') no-repeat center; + background-size: 14vh 4vh; +} + +.thermalHumidity .humidity, +.thermalHumidity_2 .humidity_2{ + top: 50px; +} + +.cabinet-box .cabinet-body .rackDevice{ + background-color: rgba(0, 153, 230, 0.5); + border-radius: 2px; +} + +/* 冷通道 */ +.cabinet-box .cabinet-aisle-table{ + width: 100%; + height: 100%; + min-width: 100%; + min-height: 100%; +} +.cabinet-aisle-table tr td{ + border: 1px solid rgba(255, 255, 255, 0); +} + +/* 能耗分布 */ +.cabinet-box .cabinet-body{ + margin: 0px auto; + border-radius:5px; + height: 12vh; + width: 4vw; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + background-color: rgba(39, 47, 66, 0.5);; +} +.cabinet-box .cabinet-body > img{ + position: absolute; + top: 3.4vh; + margin: 0px 13px; +} +/** 渐变背景色 */ +.cabinet-box .gradient{ + background-image: -webkit-linear-gradient(top, #D22787, #2870D1); + background-image: -moz-linear-gradient(top, #D22787, #2870D1); + background-image: -o-linear-gradient(top, #D22787, #2870D1); + background-image: -ms-linear-gradient(top, #D22787, #2870D1); + background-image: linear-gradient(top, #D22787, #2870D1); + border-radius:8px; + background-size:4vw 12vh; +} +/** 遮蔽层 */ +.cabinet-box .cabinet-body > div{ + width: 3.7vw; + text-align: center; + background-color: #152857; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.cabinet-box .cabinet-body .logoImg{ + /*width: 2.3vw; + height: 6vh;*/ +} + +/* 温度分布 */ +.thermal .cabinet-body { + margin: 0px auto; + border-radius: 5px; + border: #5E687F 3px solid; + box-shadow: 0 0 8px rgba(127, 140, 171, 1); + -webkit-box-shadow: 0 0 8px rgba(127, 140, 171,1); + -moz-box-shadow: 0 0 8px rgba(127, 140, 171,1); +} +.thermal .temp1,.thermal .temp2,.thermal .temp3{ + width: 3.7vw; + height: 3vh; + font-size: 1.5vh; + line-height: 3vh; + text-align: center; +} +.thermal .temp1{ + position: absolute; + top: 1vh; +} +.thermal .temp2{ + position: absolute; + top: 4.5vh; +} +.thermal .temp3{ + position: absolute; + top: 8vh; +} + +/** is Show Font Chart **/ +.show-font-chart{ + position: absolute; + z-index: 1; + background-color: #1b1f27; + border: 1px solid #24272b; + cursor: pointer; + padding: 10px 20px; + top: 35px; + left: 110px; + width: 170px; +} +.show-font-chart li{ + list-style-type: none; +} + +.device_info_btn{ + border: 2px solid #0084d7; + background-color: rgba(0, 132, 215, 0.6); + border-radius: 8px; + width: 70px; + height: 25px; + line-height: 21px; + text-align: center; + position: absolute; + bottom: 20px; + right: 80px; + cursor: pointer; +} + +/* 优化组态行内样式 */ +.chart-body{ + background-size:100% 100% !important; + height:calc(100% - 20px); +} + +.image-signal-body{ + border-radius: 10px; + border: solid 1px #0C85D3; +} + +.device-status-body{ + height:calc(100% - 19px); + border-radius: 10px; +} + +.signal-body{ + background-color: #293646; + height:calc(100% - 19px); +} + +.virtual-signal-body{ + height:calc(100% - 19px); + border-radius: 10px; +} + +.table-body{ + background-size:100% 100% !important; + height:calc(100% - 35px); +} + +#picker .colpick.colpick_full{ + margin: 0px auto; +} + +.topology-img-div{ + cursor: pointer; + border: 1px solid; + text-align: center; + vertical-align: middle; + height: 39px; +} +.topology-img{ + height: 37px; +} +.topology-img-div div{ + display: none; +} +.topology-img-div:hover div{ + display: block; + position: absolute; + top: 0px; + left: 0px; + width: 198px; + height: auto; + z-index: 999; + border: 1px solid #ffffff; + background-color: #24272b; +} +.topology-img-div div img{ + width:100%; + height:auto; +} + +/** 图片预览页面 **/ +.image-preview{ + border: 1px solid #FFF; + height: 300px; + overflow-y: scroll; +} +.image-div{ + width: 126px; + height: 126px; + border: 1px solid #FFF; + display:inline-block; + text-align:center; + vertical-align: middle; + cursor:pointer; + margin: 1px; +} +.image-div img{ + max-width: 124px; + max-height: 124px; + vertical-align: middle; +} +.select-image{ + border:1px solid #08c; + background-color:rgba(0, 136, 204, 0.5); +} + +/* 旋转 */ +.rotate_90{ + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); +} +.rotate_180{ + -webkit-transform: rotate(-180deg); + -moz-transform: rotate(-180deg); +} +.rotate_270{ + -webkit-transform: rotate(-270deg); + -moz-transform: rotate(-270deg); +} + +/* 复选框文本对齐 */ +.select-all label{ + padding-left: 4px; + cursor: pointer; + margin: 0; + vertical-align: middle; +} + +.select-all input{ + display: inline-block; + vertical-align: middle; + margin-bottom: 2px; +} + +/** MDC告警弹屏 **/ +.Alarm-Play-Screen{ + width: 50vw; + height: 16vh; + position: absolute; + bottom: 0px; + left: 20vh; +} +.Play-Screen{ + background-color: rgba(0, 0, 0, 0.5); + height: 3.7vh; + margin: 5px 0px; + padding: 0px 10px; + font-size: 16px; + line-height: 3.7vh; + border-radius: 35px; + float: left; + clear:both; + display: flex; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); + max-width: 100%; + -webkit-border-radius: 35px; + -moz-border-radius: 35px; + -ms-border-radius: 35px; + -o-border-radius: 35px; +} +.Play-Screen > .Play-Screen-info{ + display: inline-flex; + width: calc(100% - 215px); + cursor: pointer; +} +.Play-Screen > .Play-Screen-info > .Play-Screen-content{ + width: calc(100% - 25px); + white-space: nowrap; + text-overflow: ellipsis; +} +.Play-Screen > .Play-Screen-time{ + line-height: 4vh; + width: 150px; + text-align: center; +} +.Play-Screen > .Play-Screen-action{ + display: flex; + text-align: center; + font-size: 1.3em; + line-height: 3.5vh; + width: 65px; + justify-content: space-between; +} +.Play-Screen span{ + min-width: 25px; + overflow: hidden; +} +.Play-Screen i{ + cursor: pointer; +} + +.Play-Screen-Button{ + border-top: 1px solid #5666A5; + position: relative; + float: left; + width: calc(100% + 80px); + margin-top: 5px; +} +.Play-Screen-Button .box{ + cursor: pointer; + position: absolute; + bottom: 10px; + right: 10px; + height: 40px; + width: 40px; + background: #088cb7; + -moz-border-radius: 12px; + -webkit-border-radius: 12px; + border-radius: 20px; + font-size: 2vh; + line-height: 40px; + text-align: center; +} +.Play-Screen-Button .box:before{ + border-radius: 15px; + position: absolute; + content: ""; + right: 0px; + top: 28px; + border-top: 20px solid #088cb7; + border-left: 20px solid transparent; + border-right: 20px solid transparent; + border-bottom: 0px solid transparent; +} + +.table-td tr td,.table-td tr th{ + border: 1px solid #384554; +} + +.bg-transparent,.bg-transparent tbody{ + background-color: transparent; +} + +.fa-img{ + cursor: pointer; +} +.fa-img:hover{ + color: #fcce10; +} +.help-notes-body{ + width: 80%; + margin: 0px auto; + background-image: url("../img/bg.jpg"); +} +.help-notes-body img{ + width: 100%; + cursor: pointer; +} +.help-arrows-head{ + position: absolute; + top: 10px; + left: 20px; + font-size: 25px; +} +.help-arrows-left{ + cursor: pointer; + position: absolute; + top: 45%; + left: 3vw; + font-size: 50px; +} +.help-arrows-right{ + cursor: pointer; + position: absolute; + top: 45%; + right: 3vw; + font-size: 50px; +} +.help-arrows-footer{ + position: absolute; + bottom: 10px; + right: 35px; + font-size: 20px; +} +#rtspVideoDialog{ + top:18%; +} + +/* 字体竖排 */ +.font-one { + margin:0 auto; + writing-mode:vertical-lr;/*从左向右 从右向左是 writing-mode: vertical-rl;*/ + writing-mode:tb-lr;/*IE浏览器的从左向右 从右向左是 writing-mode: tb-rl;*/ +}   + +/* 组态 - 3D MDC */ +#renderCanvas { + width: 100%; + height: 100%; + touch-action: none; +} + +.modal-top-10{ + margin-top: 10%; +} +.modal-top-11{ + margin-top: 11%; +} +.modal-top-12{ + margin-top: 12%; +} +.modal-top-13{ + margin-top: 13%; +} +.modal-top-14{ + margin-top: 14%; +} +.modal-top-15{ + margin-top: 15%; +} + +.modal-top-40 { + margin-top: 40%; +} + + + +.mdc-controlplane{ + position: absolute; + right: 5px; + bottom: 5px; +} + + + + + +.mdc-3d-button { + margin-top: 10px; + margin-left: 5px; + width: 48px; + height: 32px; + z-index: 100; + /* opacity: 0.3; */ + color: #fff; + font-size: 14px; + background: rgba(255,255,255,0.1); + border: 0.1px solid #1073e3; + vertical-align: middle; + cursor: pointer; + outline: none; +} + +.mdc-3d-button-active { + background: rgb(15, 124, 248); +} diff --git a/applications/WebConfigure/web/css/mathquill.css b/applications/WebConfigure/web/css/mathquill.css new file mode 100644 index 0000000..32bb1fb --- /dev/null +++ b/applications/WebConfigure/web/css/mathquill.css @@ -0,0 +1,418 @@ +/* + * MathQuill v0.10.1 http://mathquill.com + * by Han, Jeanine, and Mary maintainers@mathquill.com + * + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL + * was not distributed with this file, You can obtain + * one at http://mozilla.org/MPL/2.0/. + */ +@font-face { + src: url(font/Symbola.eot); + src: local("Symbola Regular"), local("Symbola"), url(font/Symbola.woff2) format("woff2"), url(font/Symbola.woff) format("woff"), url(font/Symbola.ttf) format("truetype"), url(font/Symbola.otf) format("opentype"), url(font/Symbola.svg#Symbola) format("svg"); +} +.mq-editable-field { + display: -moz-inline-box; + display: inline-block; +} +.mq-editable-field .mq-cursor { + border-left: 1px solid black; + margin-left: -1px; + position: relative; + z-index: 1; + padding: 0; + display: -moz-inline-box; + display: inline-block; +} +.mq-editable-field .mq-cursor.mq-blink { + visibility: hidden; +} +.mq-editable-field, +.mq-math-mode .mq-editable-field { + border: 1px solid gray; +} +.mq-editable-field.mq-focused, +.mq-math-mode .mq-editable-field.mq-focused { + -webkit-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; + -moz-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; + box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; + border-color: #709AC0; + border-radius: 1px; +} +.mq-math-mode .mq-editable-field { + margin: 1px; +} +.mq-editable-field .mq-latex-command-input { + color: inherit; + border: 1px solid gray; + padding-right: 1px; + margin-right: 1px; + margin-left: 2px; +} +.mq-editable-field .mq-latex-command-input.mq-empty { + background: transparent; +} +.mq-editable-field .mq-latex-command-input.mq-hasCursor { + border-color: ActiveBorder; +} +.mq-editable-field.mq-empty:after, +.mq-editable-field.mq-text-mode:after, +.mq-math-mode .mq-empty:after { + visibility: hidden; + content: 'c'; +} +.mq-editable-field .mq-cursor:only-child:after, +.mq-editable-field .mq-textarea + .mq-cursor:last-child:after { + visibility: hidden; + content: 'c'; +} +.mq-editable-field .mq-text-mode .mq-cursor:only-child:after { + content: ''; +} +.mq-editable-field.mq-text-mode { + overflow-x: auto; + overflow-y: hidden; +} +.mq-root-block, +.mq-math-mode .mq-root-block { + display: -moz-inline-box; + display: inline-block; + width: 100%; + padding: 2px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap; + overflow: hidden; + vertical-align: middle; +} +.mq-math-mode { + font-variant: normal; + font-weight: normal; + font-style: normal; + font-size: 115%; + line-height: 1; + display: -moz-inline-box; + display: inline-block; +} +.mq-math-mode .mq-non-leaf, +.mq-math-mode .mq-scaled { + display: -moz-inline-box; + display: inline-block; +} +.mq-math-mode var, +.mq-math-mode .mq-text-mode, +.mq-math-mode .mq-nonSymbola { + line-height: .9; +} +.mq-math-mode * { + font-size: inherit; + line-height: inherit; + margin: 0; + padding: 0; + border-color: black; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + box-sizing: border-box; +} +.mq-math-mode .mq-empty { + background: #ccc; +} +.mq-math-mode .mq-empty.mq-root-block { + background: transparent; +} +.mq-math-mode.mq-empty { + background: transparent; +} +.mq-math-mode .mq-text-mode { + font-size: 87%; +} +.mq-math-mode .mq-font { +} +.mq-math-mode .mq-font * { + font-family: inherit; + font-style: inherit; +} +.mq-math-mode b, +.mq-math-mode b.mq-font { + font-weight: bolder; +} +.mq-math-mode var, +.mq-math-mode i, +.mq-math-mode i.mq-font { + font-style: normal; +} +.mq-math-mode var.mq-f { + margin-right: 0.2em; + margin-left: 0.1em; +} +.mq-math-mode .mq-roman var.mq-f { + margin: 0; +} +.mq-math-mode big { + font-size: 125%; +} +.mq-math-mode .mq-roman { + font-style: normal; +} +.mq-math-mode .mq-sans-serif { +} +.mq-math-mode .mq-monospace { +} +.mq-math-mode .mq-overline { + border-top: 1px solid black; + margin-top: 1px; +} +.mq-math-mode .mq-underline { + border-bottom: 1px solid black; + margin-bottom: 1px; +} +.mq-math-mode .mq-binary-operator { + padding: 0 0.2em; + display: -moz-inline-box; + display: inline-block; +} +.mq-math-mode .mq-supsub { + font-size: 90%; + vertical-align: -0.5em; +} +.mq-math-mode .mq-supsub.mq-limit { + font-size: 80%; + vertical-align: -0.4em; +} +.mq-math-mode .mq-supsub.mq-sup-only { + vertical-align: .5em; +} +.mq-math-mode .mq-supsub.mq-sup-only .mq-sup { + display: inline-block; + vertical-align: text-bottom; +} +.mq-math-mode .mq-supsub .mq-sup { + display: block; +} +.mq-math-mode .mq-supsub .mq-sub { + display: block; + float: left; +} +.mq-math-mode .mq-supsub.mq-limit .mq-sub { + margin-left: -0.25em; +} +.mq-math-mode .mq-supsub .mq-binary-operator { + padding: 0 .1em; +} +.mq-math-mode .mq-supsub .mq-fraction { + font-size: 70%; +} +.mq-math-mode sup.mq-nthroot { + font-size: 80%; + vertical-align: 0.8em; + margin-right: -0.6em; + margin-left: .2em; + min-width: .5em; +} +.mq-math-mode .mq-paren { + padding: 0 .1em; + vertical-align: top; + -webkit-transform-origin: center .06em; + -moz-transform-origin: center .06em; + -ms-transform-origin: center .06em; + -o-transform-origin: center .06em; + transform-origin: center .06em; +} +.mq-math-mode .mq-paren.mq-ghost { + color: silver; +} +.mq-math-mode .mq-paren + span { + margin-top: .1em; + margin-bottom: .1em; +} +.mq-math-mode .mq-array { + vertical-align: middle; + text-align: center; +} +.mq-math-mode .mq-array > span { + display: block; +} +.mq-math-mode .mq-operator-name { + line-height: .9; + font-style: normal; +} +/*.mq-math-mode var.mq-operator-name.mq-first { + padding-left: .2em; +} +.mq-math-mode var.mq-operator-name.mq-last { + padding-right: .2em; +}*/ +.mq-math-mode .mq-fraction { + font-size: 90%; + text-align: center; + vertical-align: -0.4em; + padding: 0 .2em; +} +.mq-math-mode .mq-fraction, +.mq-math-mode .mq-large-operator, +.mq-math-mode x:-moz-any-link { + display: -moz-groupbox; +} +.mq-math-mode .mq-fraction, +.mq-math-mode .mq-large-operator, +.mq-math-mode x:-moz-any-link, +.mq-math-mode x:default { + display: inline-block; +} +.mq-math-mode .mq-numerator, +.mq-math-mode .mq-denominator { + display: block; +} +.mq-math-mode .mq-numerator { + padding: 0 0.1em; +} +.mq-math-mode .mq-denominator { + border-top: 1px solid; + float: right; + width: 100%; + padding: 0.1em; +} +.mq-math-mode .mq-sqrt-prefix { + font-family: Symbola, "Times New Roman", serif; + padding-top: 0; + position: relative; + top: 0.1em; + vertical-align: top; + -webkit-transform-origin: top; + -moz-transform-origin: top; + -ms-transform-origin: top; + -o-transform-origin: top; + transform-origin: top; +} +.mq-math-mode .mq-sqrt-stem { + border-top: 1px solid; + margin-top: 1px; + padding-left: .15em; + padding-right: .2em; + margin-right: .1em; + padding-top: 1px; +} +.mq-math-mode .mq-vector-prefix { + display: block; + text-align: center; + line-height: .25em; + margin-bottom: -0.1em; + font-size: 0.75em; +} +.mq-math-mode .mq-vector-stem { + display: block; +} +.mq-math-mode .mq-large-operator { + text-align: center; +} +.mq-math-mode .mq-large-operator .mq-from, +.mq-math-mode .mq-large-operator big, +.mq-math-mode .mq-large-operator .mq-to { + display: block; +} +.mq-math-mode .mq-large-operator .mq-from, +.mq-math-mode .mq-large-operator .mq-to { + font-size: 80%; +} +.mq-math-mode .mq-large-operator .mq-from { + float: right; + /* take out of normal flow to manipulate baseline */ + width: 100%; +} +.mq-math-mode, +.mq-math-mode .mq-editable-field { + cursor: text; +} +.mq-math-mode .mq-overarrow { + border-top: 1px solid black; + margin-top: 1px; + padding-top: 0.2em; +} +.mq-math-mode .mq-overarrow:before { + display: block; + position: relative; + top: -0.34em; + font-size: 0.5em; + line-height: 0em; + content: '\27A4'; + text-align: right; +} +.mq-math-mode .mq-overarrow.mq-arrow-left:before { + -moz-transform: scaleX(-1); + -o-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + filter: FlipH; + -ms-filter: "FlipH"; +} +.mq-math-mode .mq-selection, +.mq-editable-field .mq-selection, +.mq-math-mode .mq-selection .mq-non-leaf, +.mq-editable-field .mq-selection .mq-non-leaf, +.mq-math-mode .mq-selection .mq-scaled, +.mq-editable-field .mq-selection .mq-scaled { + background: #B4D5FE !important; + background: Highlight !important; + color: HighlightText; + border-color: HighlightText; +} +.mq-math-mode .mq-selection .mq-matrixed, +.mq-editable-field .mq-selection .mq-matrixed { + background: #39F !important; +} +.mq-math-mode .mq-selection .mq-matrixed-container, +.mq-editable-field .mq-selection .mq-matrixed-container { + filter: progid:DXImageTransform.Microsoft.Chroma(color='#3399FF') !important; +} +.mq-math-mode .mq-selection.mq-blur, +.mq-editable-field .mq-selection.mq-blur, +.mq-math-mode .mq-selection.mq-blur .mq-non-leaf, +.mq-editable-field .mq-selection.mq-blur .mq-non-leaf, +.mq-math-mode .mq-selection.mq-blur .mq-scaled, +.mq-editable-field .mq-selection.mq-blur .mq-scaled, +.mq-math-mode .mq-selection.mq-blur .mq-matrixed, +.mq-editable-field .mq-selection.mq-blur .mq-matrixed { + background: #D4D4D4 !important; + color: black; + border-color: black; +} +.mq-math-mode .mq-selection.mq-blur .mq-matrixed-container, +.mq-editable-field .mq-selection.mq-blur .mq-matrixed-container { + filter: progid:DXImageTransform.Microsoft.Chroma(color='#D4D4D4') !important; +} +.mq-editable-field .mq-textarea, +.mq-math-mode .mq-textarea { + position: relative; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; +} +.mq-editable-field .mq-textarea *, +.mq-math-mode .mq-textarea *, +.mq-editable-field .mq-selectable, +.mq-math-mode .mq-selectable { + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + position: absolute; + clip: rect(1em 1em 1em 1em); + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); + resize: none; + width: 1px; + height: 1px; +} +.mq-math-mode .mq-matrixed { + background: white; + display: -moz-inline-box; + display: inline-block; +} +.mq-math-mode .mq-matrixed-container { + filter: progid:DXImageTransform.Microsoft.Chroma(color='white'); + margin-top: -0.1em; +} diff --git a/applications/WebConfigure/web/css/ng-table.min.css b/applications/WebConfigure/web/css/ng-table.min.css new file mode 100644 index 0000000..841f1dc --- /dev/null +++ b/applications/WebConfigure/web/css/ng-table.min.css @@ -0,0 +1,3 @@ +/*! ngTable v1.0.0-beta.3 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ + +.ng-table th{text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-table th.sortable{cursor:pointer}.ng-table th.sortable .sort-indicator{padding-right:18px;position:relative}.ng-table th.sortable .sort-indicator:after,.ng-table th.sortable .sort-indicator:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:5px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable .sort-indicator:before{margin-top:2px;border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000}.ng-table th.sortable .sort-indicator:hover:after,.ng-table th.sortable .sort-indicator:hover:before{opacity:1;visibility:visible}.ng-table th.sortable.sort-desc,.ng-table th.sortable.sort-asc{background-color:rgba(141,192,219,.25);text-shadow:0 1px 1px rgba(255,255,255,.75)}.ng-table th.sortable.sort-desc .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:after{margin-top:-2px}.ng-table th.sortable.sort-desc .sort-indicator:before,.ng-table th.sortable.sort-asc .sort-indicator:before{visibility:hidden}.ng-table th.sortable.sort-asc .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc .sort-indicator:after{border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.filter .input-filter{margin:0;display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-table .ng-table-group-header th{text-align:left}.ng-table .ng-table-group-selector{display:block}.ng-table .ng-table-group-close,.ng-table .ng-table-group-toggle{float:right}.ng-table .ng-table-group-toggle{margin-right:5px}.ng-table+.pagination{margin-top:0}@media only screen and (max-width:800px){.ng-table-responsive{border-bottom:1px solid #999}.ng-table-responsive tr{border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999}.ng-table-responsive td:before{position:absolute;padding:8px;left:0;top:0;width:50%;white-space:nowrap;text-align:left;font-weight:700}.ng-table-responsive thead tr th{text-align:left}.ng-table-responsive thead tr.ng-table-filters th{padding:0}.ng-table-responsive thead tr.ng-table-filters th form>div{padding:8px}.ng-table-responsive td{border:0;border-bottom:1px solid #eee;position:relative;padding-left:50%;white-space:normal;text-align:left}.ng-table-responsive td:before{content:attr(data-title-text)}.ng-table-responsive,.ng-table-responsive thead,.ng-table-responsive tbody,.ng-table-responsive th,.ng-table-responsive td,.ng-table-responsive tr{display:block}}.ng-table-group-selector:before,.ng-table-group-selector:after,.filter:before,.filter:after{display:table;content:" "}.ng-table-group-selector:after,.filter:after{clear:both}.filter>.filter-cell{float:left;box-sizing:border-box}.filter-horizontal>.filter-cell{padding:0 2px}.filter-horizontal>.filter-cell:first-child{padding-left:0}.filter-horizontal>.filter-cell:last-child,.filter-horizontal>.filter-cell.last{padding-right:0}.s12{width:100%}.s11{width:91.66666666666666%}.s10{width:83.33333333333334%}.s9{width:75%}.s8{width:66.66666666666666%}.s7{width:58.333333333333336%}.s6{width:50%}.s5{width:41.66666666666667%}.s4{width:33.33333333333333%}.s3{width:25%}.s2{width:16.666666666666664%}.s1{width:8.333333333333332%}@media all and (max-width:468px){.s12,.s11,.s10,.s9,.s8,.s7,.s6,.s5,.s4,.s3,.s2,.s1{width:100%}.filter>.filter-cell{padding:0}} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/percent.css b/applications/WebConfigure/web/css/percent.css new file mode 100644 index 0000000..6e53bee --- /dev/null +++ b/applications/WebConfigure/web/css/percent.css @@ -0,0 +1,118 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local("Open Sans Light"), local("OpenSans-Light"); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local("Open Sans"), local("OpenSans"); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local("Open Sans Semibold"), local("OpenSans-Semibold"); +} + +.progress-container, .progress { + border-radius: 5px; +} + +.progress-container { + z-index: 0; + width: calc(100% - 5px); + height: calc(100% - 22px); + /*border: solid 1px #111; + background: #151515; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);*/ + margin: 0 auto; + position: relative; + overflow: hidden; +} +.progress-container.done { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 0 2px #0c8112; +} +.progress-container.done .progress { + background: #0f9816; +} +.progress-container.done .progress-overlay { + display: none; +} + +.percent-progress, .progress-overlay { + position: absolute; +} + +.percent-progress { + border-radius: 10px; + width: calc(100% - 2px); + background: #114baf; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); + z-index: 1; + bottom: 0; + text-align: center; + color: #151515; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); + font-weight: bold; + transition: background 250ms ease; +} + +@keyframes uploadarrow { + 0% { + bottom: 0%; + border-bottom-color: rgba(255, 255, 255, 0); + } + + 50% { + border-bottom-color: rgba(255, 255, 255, 0.1); + } + + 100% { + bottom: 100%; + border-bottom-color: rgba(255, 255, 255, 0); + } +} +@-webkit-keyframes uploadarrow { + 0% { + bottom: 0%; + border-bottom-color: rgba(255, 255, 255, 0); + } + + 50% { + border-bottom-color: rgba(255, 255, 255, 0.1); + } + + 100% { + bottom: 100%; + border-bottom-color: rgba(255, 255, 255, 0); + } +} +.progress-overlay { + z-index: 2; + width: 0; + height: 100%; + bottom: 0; + left: 15px; + border: solid 20px transparent; + border-width: 0 25px 20px 25px; + border-bottom-color: rgba(255, 255, 255, 0.25); + -webkit-animation: uploadarrow 900ms infinite ease-out; + -moz-animation: uploadarrow 900ms infinite linear; + -o-animation: uploadarrow 900ms infinite linear; + animation: uploadarrow 900ms infinite linear; +} + + +.percent-equal{ + height: 100%; + position: relative; +} +.percent-equal div{ + width: calc(100% - 1px); + position: absolute; + bottom: 0px; + border: 1px solid #FFFFFF; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/select.min.css b/applications/WebConfigure/web/css/select.min.css new file mode 100644 index 0000000..1711cb7 --- /dev/null +++ b/applications/WebConfigure/web/css/select.min.css @@ -0,0 +1 @@ +oi-select{display:block;position:relative;width:100%}oi-select .select-search{cursor:text;border:1px solid #d9d9d9;background-color:#fff;overflow:hidden!important;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}oi-select .select-search-list{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-moz-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0;padding:2px 4px;list-style:none}oi-select .select-search-list-item{font-size:14px;margin:2px 4px 2px 0;vertical-align:middle;white-space:normal}oi-select .select-search-list-item_selection{cursor:pointer;background:#efefef;border-color:#ebebeb}oi-select .select-search-list-item_selection:hover{border-color:#e5e5e5}oi-select .select-search-list-item_selection.focused,oi-select .select-search-list-item_selection:active{border:1px solid #fff;border-radius:0;box-shadow:inset 0 0 10px 5px #fff}oi-select .select-search-list-item_selection.focused .close{display:none}oi-select .select-search-list-item_selection-remove{padding-left:2px}oi-select .select-search-list-item_loader{float:right;margin-top:6px;width:16px;height:16px;background:url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAANTU1JSUlGFhYUFBQUVFRW9vb6Kiotzc3KSkpCUlJSkpKTExMTc3Nz8/P2tra7q6uh0dHXNzc+zs7O7u7sLCwoqKilFRUV9fX76+vtDQ0Ds7OxcXF4yMjKqqql1dXX19feLi4oaGhg8PD2lpaZycnGdnZ7a2tkdHRwsLC7CwsJaWlhkZGQcHB+jo6PT09Hl5eYSEhPb29oKCgqioqPr6+vz8/MDAwMrKyvj4+NbW1q6urvDw8NLS0uTk5N7e3s7OzsbGxry8vODg4NjY2PLy8tra2nt7e7S0tLKysk1NTVNTU1tbW2NjY0NDQz09PcTExHd3dzMzM+rq6isrK46OjllZWS0tLR8fH6CgoE9PTxMTE4iIiGVlZTU1NcjIyMzMzObm5ri4uH9/f5KSkp6enldXV5CQkEtLS0lJSSMjI6amphEREQ0NDaysrAUFBZqamicnJxUVFTk5OXV1dS8vLwkJCXFxcSEhIVVVVW1tbYCAgAAAAAAAAAAAACH5BAkKAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAHjYAAgoOEhYUbIykthoUIHCQqLoI2OjeFCgsdJSsvgjcwPTaDAgYSHoY2FBSWAAMLE4wAPT89ggQMEbEzQD+CBQ0UsQA7RYIGDhWxN0E+ggcPFrEUQjuCCAYXsT5DRIIJEBgfhjsrFkaDERkgJhswMwk4CDzdhBohJwcxNB4sPAmMIlCwkOGhRo5gwhIGAgAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYU7A1dYDFtdG4YAPBhVC1ktXCRfJoVKT1NIERRUSl4qXIRHBFCbhTKFCgYjkII3g0hLUbMAOjaCBEw9ukZGgidNxLMUFYIXTkGzOmLLAEkQCLNUQMEAPxdSGoYvAkS9gjkyNEkJOjovRWAb04NBJlYsWh9KQ2FUkFQ5SWqsEJIAhq6DAAIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhQkKE2kGXiwChgBDB0sGDw4NDGpshTheZ2hRFRVDUmsMCIMiZE48hmgtUBuCYxBmkAAQbV2CLBM+t0puaoIySDC3VC4tgh40M7eFNRdH0IRgZUO3NjqDFB9mv4U6Pc+DRzUfQVQ3NzAULxU2hUBDKENCQTtAL9yGRgkbcvggEq9atUAAIfkECQoAAAAsAAAAABAAEAAAB4+AAIKDhIWFPygeEE4hbEeGADkXBycZZ1tqTkqFQSNIbBtGPUJdD088g1QmMjiGZl9MO4I5ViiQAEgMA4JKLAm3EWtXgmxmOrcUElWCb2zHkFQdcoIWPGK3Sm1LgkcoPrdOKiOCRmA4IpBwDUGDL2A5IjCCN/QAcYUURQIJIlQ9MzZu6aAgRgwFGAFvKRwUCAAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYUUYW9lHiYRP4YACStxZRc0SBMyFoVEPAoWQDMzAgolEBqDRjg8O4ZKIBNAgkBjG5AAZVtsgj44VLdCanWCYUI3txUPS7xBx5AVDgazAjC3Q3ZeghUJv5B1cgOCNmI/1YUeWSkCgzNUFDODKydzCwqFNkYwOoIubnQIt244MzDC1q2DggIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhTBAOSgrEUEUhgBUQThjSh8IcQo+hRUbYEdUNjoiGlZWQYM2QD4vhkI0ZWKCPQmtkG9SEYJURDOQAD4HaLuyv0ZeB4IVj8ZNJ4IwRje/QkxkgjYz05BdamyDN9uFJg9OR4YEK1RUYzFTT0qGdnduXC1Zchg8kEEjaQsMzpTZ8avgoEAAIfkECQoAAAAsAAAAABAAEAAAB4iAAIKDhIWFNz0/Oz47IjCGADpURAkCQUI4USKFNhUvFTMANxU7KElAhDA9OoZHH0oVgjczrJBRZkGyNpCCRCw8vIUzHmXBhDM0HoIGLsCQAjEmgjIqXrxaBxGCGw5cF4Y8TnybglprLXhjFBUWVnpeOIUIT3lydg4PantDz2UZDwYOIEhgzFggACH5BAkKAAAALAAAAAAQABAAAAeLgACCg4SFhjc6RhUVRjaGgzYzRhRiREQ9hSaGOhRFOxSDQQ0uj1RBPjOCIypOjwAJFkSCSyQrrhRDOYILXFSuNkpjggwtvo86H7YAZ1korkRaEYJlC3WuESxBggJLWHGGFhcIxgBvUHQyUT1GQWwhFxuFKyBPakxNXgceYY9HCDEZTlxA8cOVwUGBAAA7) top}oi-select .select-search-list-item_input{-webkit-box-flex:1;-webkit-flex-grow:1;-moz-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:4px 0 5px 5px}oi-select .select-search-list-item_input input{padding:0;outline:0;border:0;width:100%}oi-select .select-search-list-item_hide{position:fixed;width:0;height:0;margin:0;opacity:0;pointer-events:none;text-indent:-9999em}oi-select .select-dropdown{position:absolute;width:inherit;overflow-y:scroll;max-height:100px;min-width:160px;font-size:14px;background-color:#fff;border-radius:0 0 4px 4px;border:1px solid #66afe9;border-top:0;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);background-clip:padding-box;z-index:1000}oi-select .select-dropdown-optgroup{margin:0;padding:0}oi-select .select-dropdown-optgroup-header{font-weight:bolder;padding:3px 10px}oi-select .select-dropdown-optgroup-option{padding:3px 20px}oi-select .select-dropdown-optgroup-option.active:not(.disabled){background-color:#f1f1f1;cursor:pointer}oi-select .select-dropdown-optgroup-option.disabled{color:#aaa}oi-select:not(.multiple) .select-search-list-item_selection{color:#000;width:100%;border-color:#fff;text-align:left}oi-select:not(.multiple) .select-search-list-item_selection:not(:active){background:0 0}oi-select:not(.multiple):not(.cleanMode) .select-search-list-item_selection-remove{display:none}oi-select:not(.multiple):not(.cleanMode) .select-search:after{content:"";position:absolute;display:block;right:10px;width:0;height:0;margin-top:-19px;border-color:#000 transparent transparent;border-style:solid;border-width:5px 5px 0}oi-select[disabled=disabled] .select-search{cursor:not-allowed;background:#eee;border:1px solid #bdbdbd;opacity:.5}oi-select[disabled=disabled] .select-search-list-item_selection{cursor:not-allowed;box-shadow:none;border-color:transparent}oi-select[disabled=disabled] .select-search-list-item_selection-remove{visibility:hidden}oi-select[disabled=disabled] .select-search-list-item_input input:disabled{cursor:not-allowed;background:0 0}oi-select.focused .select-search{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}oi-select.invalid-item .select-dropdown,oi-select.invalid-item .select-search,oi-select.limited .select-dropdown,oi-select.limited .select-search{border-color:#f1bc28;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(230,189,46,.6)}oi-select.open .select-search{border-radius:4px 4px 0 0;border-bottom:1px solid rgba(0,0,0,.075)}oi-select.open:not(.multiple) .select-search:after{border-color:transparent transparent #000;border-width:0 5px 5px}oi-select.loading:not(.multiple) .select-search:after{border-width:0} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/site.css b/applications/WebConfigure/web/css/site.css new file mode 100644 index 0000000..c2176ca --- /dev/null +++ b/applications/WebConfigure/web/css/site.css @@ -0,0 +1,822 @@ +html,body { + background-color: #1D2027; + height: 100%; + width: 100%; +} + +.loginbody{ + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=Enabled, sizingMethod=scale , src=../img/loginbg.jpg); + background: url("../img/loginbg.jpg") left top/cover no-repeat !important; +} + +#wrapper { + width: 100%; + /*min-width:1000px;*/ +} + +#page-wrapper { + padding: 0 15px; + /*min-height: 568px;*/ + height: calc(100vh - 64px); + + /* background-color: #fff;*/ + overflow: auto; + position: relative; + /*background: url("../img/bg.jpg") left top/cover no-repeat !important;*/ +} + +@media(min-width:768px) { + #page-wrapper { + position: inherit; + margin: 0 0 0 200px; + padding: 0 0px; + /* border-left: 1px solid #e7e7e7;*/ + } +} + +.navbar{position: static;} + +.navbar-top-links { +margin-right: 0; +} + +.navbar-top-links li { +display: inline-block; +} + +.navbar-top-links li:last-child { +margin-right: 15px; +} + +.navbar-top-links li a { +padding: 15px; +min-height: 50px; +} + +.navbar-top-links .dropdown-menu li { +display: block; +} + +.navbar-top-links .dropdown-menu li:last-child { +margin-right: 0; +} + +.navbar-top-links .dropdown-menu li a { +padding: 3px 20px; +min-height: 0; +} + +.navbar-top-links .dropdown-menu li a div { +white-space: normal; +} + +.dropdown-menu > ul > li > a{ +display: block; +clear: both; +font-weight: normal; +line-height: 1.42857143; +color: #fff; +white-space: nowrap; +} + + +.navbar-top-links .dropdown-messages, +.navbar-top-links .dropdown-tasks, +.navbar-top-links .dropdown-alerts { +width: 310px; +min-width: 0; +} + +.navbar-top-links .dropdown-messages { +margin-left: 5px; +} + +.navbar-top-links .dropdown-tasks { +margin-left: -59px; +} + +.navbar-top-links .dropdown-alerts { +margin-left: -123px; +} + +.navbar-top-links .dropdown-user { +right: 0; +left: auto; +} + +.sidebar .sidebar-nav.navbar-collapse { +padding-right: 0; +padding-left: 0; +} + +.sidebar .sidebar-search { +padding: 15px; +} + +.sidebar ul li img{ + height: 17px; +} + +.sidebar ul li a:hover { + background: url("../img/MenuBar/hover_bg.png") right; + background-size:auto 50px; +} + +.sidebar ul li a.active { + background: url("../img/MenuBar/bg.png") right; + background-size:auto 50px; +} + + +.sidebar ul li a { +color:#ffffff; +/*padding:14px 40px;*/ +font-size:16px; +} + +.sidebar ul> li> a> i { +padding-right: 25px; +} + +.dropdown >a{ +color:#FFFFFF; +cursor:pointer; +} + +.sidebar .arrow { +float: right; +} + +.sidebar .fa.arrow:before { +content: "\f104"; +} + +.sidebar .active>a>.fa.arrow:before { +content: "\f107"; +} + +.sidebar .nav-second-level li, +.sidebar .nav-third-level li { +border-bottom: 0!important; +} + +.sidebar .nav-second-level li a { +padding-left: 37px; +} + +.sidebar .nav-third-level li a { +padding-left: 52px; +} + +@media(min-width:768px) { +.sidebar { + z-index: 1; + position: absolute; + width: 200px; + padding-top: 170px; + background-color: #1D2027; +} + +.navbar-top-links .dropdown-messages, +.navbar-top-links .dropdown-tasks, +.navbar-top-links .dropdown-alerts { + margin-left: auto; +} +} + +.btn-outline { +color: inherit; +background-color: transparent; +transition: all .5s; +} + +.btn-primary.btn-outline { +color: #428bca; +} + +.btn-success.btn-outline { +color: #5cb85c; +} + +.btn-info.btn-outline { +color: #5bc0de; +} + +.btn-warning.btn-outline { +color: #f0ad4e; +} + +.btn-danger.btn-outline { +color: #d9534f; +} + +.btn-primary.btn-outline:hover, +.btn-success.btn-outline:hover, +.btn-info.btn-outline:hover, +.btn-warning.btn-outline:hover, +.btn-danger.btn-outline:hover { +color: #fff; +} + +.chat { +margin: 0; +padding: 0; +list-style: none; +} + +.chat li { +margin-bottom: 10px; +padding-bottom: 5px; +border-bottom: 1px dotted #999; +} + +.chat li.left .chat-body { +margin-left: 60px; +} + +.chat li.right .chat-body { +margin-right: 60px; +} + +.chat li .chat-body p { +margin: 0; +} + +.panel .slidedown .glyphicon, +.chat .glyphicon { +margin-right: 5px; +} + +.chat-panel .panel-body { +height: 350px; +overflow-y: scroll; +} + + + + + + +.login-bg +{ +background: url("../img/logininfo.png") no-repeat; +} +.login_pannel +{ + width: 347px; + height: 480px; + background-position: -1px -1px; + text-align: center; + position: absolute; + right: 25%; + top: 30%; + margin: -100px 0 0 -150px; +} +.login_pannel +{ + padding: 50px 0px 0px 0px; +} +.logo, +#login-body .logo{ + min-width: 80px; + max-width: 80%; + min-height: 100px; + max-height: 120px; +} +.main-logo{ + width: 200px; + height: 188px; + display: block; + margin: 60px 0px 0px 0px; + padding-bottom: 0px; + text-align: center; + color: #FFF; +} + +.main-logo>a{ + color: #fff; +} + +.logotitle{ + font-family: "Microsoft YaHei", Helvetica, Arial, sans-serif; + letter-spacing:3px; + text-shadow: 0px 1px 0px #e5e5ee; + + +} + +.login_pannel h4{ +padding: 0px; +margin: 0px; +color: #FFFFFF; +padding-bottom: 40px; + } +.form-signin +{ +width:300px; +margin:0px auto; + +} +.form-signin .input-group +{ +width: 240px; +height: 100px; +margin: 0px auto; +padding-top:20px; +} +.form-signin .input-group input +{ +color: #ffffff; +border:solid 1px rgba(0, 0, 0, 0); +} + +.form-signin .input-group #userPwd +{ +background-position: -450px -647px; +} + + + +.flot-chart { +display: block; +height: 400px; +} + +.flot-chart-content { +width: 100%; +height: 100%; +} + +.dataTables_wrapper { +position: relative; +clear: both; +} + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { +background: 0 0; +} + +table.dataTable thead .sorting_asc:after { +content: "\f0de"; +float: right; +font-family: fontawesome; +} + +table.dataTable thead .sorting_desc:after { +content: "\f0dd"; +float: right; +font-family: fontawesome; +} + +table.dataTable thead .sorting:after { +content: "\f0dc"; +float: right; +font-family: fontawesome; +color: rgba(50,50,50,.5); +} + +.btn-circle { +width: 30px; +height: 30px; +padding: 6px 0; +border-radius: 15px; +text-align: center; +font-size: 12px; +line-height: 1.428571429; +} + +.btn-circle.btn-lg { +width: 50px; +height: 50px; +padding: 10px 16px; +border-radius: 25px; +font-size: 18px; +line-height: 1.33; +} + +.btn-circle.btn-xl { +width: 70px; +height: 70px; +padding: 10px 16px; +border-radius: 35px; +font-size: 24px; +line-height: 1.33; +} + +.show-grid [class^=col-] { +padding-top: 10px; +padding-bottom: 10px; +border: 1px solid #ddd; +background-color: #eee!important; +} + +.show-grid { +margin: 15px 0; +} + +.huge { +font-size: 40px; +} + + +.panel-blue { + border-color: #0F86D6; + border-width: 2px; +} + +.panel-blue .panel-heading { + border-color: #0F86D6; + color: #fff; + background-color: #151F2B; +} + + + +.panel-green { + border-color: #5cb85c; + border-width: 2px; +} + + + +.panel-green .panel-heading { +border-color: #5cb85c; +color: #fff; +background-color: #151F2B; +} + + + + +.panel-green a { +color: #5cb85c; +} + +.panel-green a:hover { +color: #3d8b3d; +} + +.panel-red { +border-color: #d9534f; + border-width: 2px; +} + +.panel-red .panel-heading { +border-color: #d9534f; +color: #fff; +background-color: #151F2B; +} + +.panel-red a { +color: #d9534f; +} + +.panel-red a:hover { +color: #b52b27; +} + +.panel-yellow { +border-color: #f0ad4e; + border-width: 2px; +} + +.panel-yellow .panel-heading { +border-color: #f0ad4e; +color: #fff; +background-color:#151F2B; +} + +.panel-yellow a { +color: #f0ad4e; +} + +.panel-yellow a:hover { +color: #df8a13; +} + +.diagram-menu{ +color: #fff !important; +cursor:pointer; +margin-right: 1px; + box-shadow:-5px 0 5px #337AB7; + z-index: 999; + background-color: #141C22; + border:solid 1px #337AB7; + font-size: 15px; + position:relative; +} + +.diagram-menu>ul{ + padding: 0px 0px 10px 0px; + margin:10px; +} + +.diagram-menu>ul>li{ + margin:5px; +} +.diagram-menu>ul>li>i{ + padding-right: 5px; +} + + +.diagram-menu ul{ +list-style: none; +} + +.table-opacity{ + + background-color:#283545; + padding-top: 0px; + margin-top: 0px; + +} +.table-head{ + margin-bottom: 0px; + background-color:#192028; + height: 50px; + border: 0px; + font-size:15px; +} +.table-head>tbody>tr>th{ + border: 0px; +} + +.diagram-tab{ +width: 200px; + height: 40px; + border-radius:0px; + font-size: 16px; +} +.diagram> .active{ + background-color: #0166fe; + font-size: 16px; +} +.diagram>.btn:hover{ + color:#FFFFFF; +} +.diagram>a{ + color:#FFFFFF; +} +.diagram-ele-head{ + height:19px; + padding: 0px; +} +.diagram-sigimg-img{ + background-size:100% 100% !important; + height:calc(100% - 55px); + margin: 10px 2px 10px 15px; +} +.diagram-sigimg-img-td{ + width:30%; +} +.diagram-sigimg-title{ + text-align: center; + vertical-align: middle; +} +.diagram-sigimg-value{ + padding:0px 15px 0px 5px; + width:90%; + height:30px; + background-color: #575a5e; + border: #676767 solid 1px; + text-align: center; + line-height: 30px; + border-radius: 20px; +} + + +.signalgroup{ + /*background-color: #293646;*/ + border: 0px; + border-spacing:0px; + margin-bottom: 10px; +} +.signalgroup > thead > tr > th{ + border: 0px; + font-size:16px; + color:#066DB0; + background-color: #141B23; +} +.signalgroup > tbody > tr > td{ + border: 0px; + padding: 8px; +} +.signalgroup > tbody > tr > td >i{ + background-color: #192229; + + width: 90px; + height: 30px; + line-height: 30px; + display: block; + font-style: normal; + text-align: center; +} +.signalgroup label{ + margin-left: 10px; +} + +.alarm-list{ + line-height: 40px; +} +.alarm-list>span>span,em{ + + padding-right: 10px; + margin-right: 10px; +} + +.ng-table-sort-header{ +/*background-color: #192028;*/ + border-bottom: 1px solid rgb(68, 142, 254); +} + +.datepicker>table>thead>tr>th>.btn-default{ + background-color: #15191C; + border: 0px; + border-radius:0px; + color:#fff; +} +.datepicker>table>tbody>tr>td>.btn-default{ + background-color: #1B1F27; + border: 0px; + border-radius:0px; + color:#fff; +} +.datepicker>table>tbody>tr>td>.btn-primary{ + background-color: #364557; +} + +.tabKpi{ + height: 100%; + overflow: hidden; + +} +.tabKpi table td{ + padding: 2px; +} +.tabKpi table tr td div a>div:nth-child(1) div{ + background-color: #000000; + filter:alpha(opacity=50); + -moz-opacity:0.5; + -khtml-opacity: 0.5; + opacity: 0.5; +} + +@font-face { + font-family: 'Orbitron'; + font-style: normal; + font-weight: 400; + src: local('Orbitron-Light'), local('Orbitron-Regular'), url('../fonts/orbit.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; +} + +.clock { + font-family: 'Orbitron'; +} + +.sk-wave { + + margin: 40px auto; + width: 50px; + height: 40px; + text-align: center; + font-size: 10px; } + .sk-wave .sk-rect { + background-color: #fff; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out; + animation: sk-waveStretchDelay 1.2s infinite ease-in-out; } + .sk-wave .sk-rect1 { + -webkit-animation-delay: -1.2s; + animation-delay: -1.2s; } + .sk-wave .sk-rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; } + .sk-wave .sk-rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; } + .sk-wave .sk-rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; } + .sk-wave .sk-rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; } + +@-webkit-keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); } + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); } } + +@keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); } + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); + } + } + +.scs { + position: absolute; + margin: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 300px; + height: 300px; + z-index: 999999; +} +/* second-level menu */ +#nav li:hover > ul { + opacity:1; + visibility:visible; +} +#nav ul { + opacity:0; + visibility:hidden; + padding:0; + width:158px; + position:absolute; + background-color: #171b21; + line-height: 30px; +} +#nav ul li { + cursor:pointer; +} +#nav ul li:hover a, #nav li:hover li a { + background:none; + border:none; + color:#ffffff; +} + +.endButton{ + color:#0084D7; +} + +.endButton:hover{ + color:white; + cursor:pointer; +} + +#rollBtn { + display: none; + position: fixed; + width: 40px; + height: 40px; + bottom: 160px; + right: 30px; + z-index: 99; + border: none; + outline: none; + color: white; + cursor: pointer; +} + +#rollBtn:hover, +#rollAlarm:hover, +#rollInfo:hover{ + color: gray; +} + +#rollAlarm{ + display: none; + position: fixed; + width: 40px; + height: 40px; + bottom: 40px; + right: 30px; + z-index: 99; + border: none; + outline: none; + color: white; + cursor: pointer; +} + +#rollInfo{ + display: none; + position: fixed; + width: 40px; + height: 40px; + bottom: 100px; + right: 30px; + z-index: 99; + border: none; + outline: none; + color: white; + cursor: pointer; +} + +#mList{ + height: 300px; + overflow: auto; +} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/spop.min.css b/applications/WebConfigure/web/css/spop.min.css new file mode 100644 index 0000000..6a471cb --- /dev/null +++ b/applications/WebConfigure/web/css/spop.min.css @@ -0,0 +1,5 @@ +@charset "UTF-8";/*! + * smallPop 0.1.2 | https://github.com/silvio-r/spop + * Copyright (c) 2015 Sílvio Rosa @silvior_ + * MIT license + */.spop-container{z-index:2000;position:fixed}.spop-container,.spop-container *,.spop-container :after,.spop-container :before{box-sizing:border-box}.spop--top-left{top:0;left:0}.spop--top-left .spop{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.spop--top-center{top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.spop--top-center .spop{-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.spop--top-right{top:90px;right:0}.spop--top-right .spop{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.spop--center{top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.spop--center .spop{-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.spop--bottom-left{bottom:0;left:0}.spop--bottom-left .spop{-webkit-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%}.spop--bottom-center{bottom:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.spop--bottom-center .spop{-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.spop--bottom-right{bottom:0;right:0}.spop--bottom-right .spop{-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}@media screen and (max-width:30em){.spop--bottom-center,.spop--bottom-left,.spop--bottom-right,.spop--top-center,.spop--top-left,.spop--top-right{top:auto;bottom:0;left:0;right:0;margin-left:0;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.spop--bottom-center .spop,.spop--bottom-left .spop,.spop--bottom-right .spop,.spop--top-center .spop,.spop--top-left .spop,.spop--top-right .spop{-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.spop{border-bottom:1px solid rgba(0,0,0,.15)}}.spop{position:relative;min-height:56px;line-height:1.25;font-size:14px;-webkit-transform:translateZ(0);transform:translateZ(0)}@media screen and (min-width:30em){.spop{border-radius:2px;width:360px;margin:22px 0.7em}}.spop--error,.spop--info,.spop--success,.spop--warning{color:#fff;background-color:#454A56}@-webkit-keyframes spopIn{0%{-webkit-transform:scale(.2,.2);transform:scale(.2,.2)}95%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@keyframes spopIn{0%{-webkit-transform:scale(.2,.2);transform:scale(.2,.2)}95%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@-webkit-keyframes spopOut{0%{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1)}20%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{opacity:0;-webkit-transform:scale(0,0);transform:scale(0,0)}}@keyframes spopOut{0%{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1)}20%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{opacity:0;-webkit-transform:scale(0,0);transform:scale(0,0)}}.spop--out{-webkit-animation:spopOut .4s ease-in-out;animation:spopOut .4s ease-in-out}.spop--in{-webkit-animation:spopIn .4s ease-in-out;animation:spopIn .4s ease-in-out}.spop-body{padding:15px}.spop-body p{margin:0}.spop-body a{color:#fff;text-decoration:underline}.spop-body a:hover{color:rgba(255,255,255,.8);text-decoration:none}.spop-title{margin-top:0;margin-bottom:.25em;color:#fff}.spop-close{position:absolute;right:0;top:0;height:52px;width:52px;padding-top:7px;padding-right:7px;font-size:50px;font-weight:700;text-align:right;line-height:.6;color:#fff;opacity:.5}.spop-close:hover{opacity:.7;cursor:pointer}.spop-icon{position:absolute;top:13px;left:16px;width:30px;height:30px;border-radius:50%;-webkit-animation:spopIn .4s .4s ease-in-out;animation:spopIn .4s .4s ease-in-out}.spop-icon:after,.spop-icon:before{content:"";position:absolute;display:block}.spop-icon+.spop-body{padding-left:55px;font-size: 20px;width: 340px;}.spop-icon--error,.spop-icon--info{border:2px solid #3a95ed}.spop-icon--error:before,.spop-icon--info:before{top:5px;left:11px;width:4px;height:4px;background-color:#3a95ed}.spop-icon--error:after,.spop-icon--info:after{top:12px;left:11px;width:4px;height:9px;background-color:#3a95ed}.spop-icon--error{border-color:#ff5656}.spop-icon--error:before{top:16px;background-color:#ff5656}.spop-icon--error:after{top:5px;background-color:#ff5656}.spop-icon--success{border:2px solid #2ecc54}.spop-icon--success:before{top:7px;left:7px;width:13px;height:8px;border-bottom:3px solid #2ecc54;border-left:3px solid #2ecc54;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spop-icon--warning{border:2px solid #fcd000}.spop-icon--warning:before{top:7px;left:7px;width:0;height:0;border-style:solid;border-color:transparent transparent #fcd000;border-width:0 6px 10px} \ No newline at end of file diff --git a/applications/WebConfigure/web/css/user_view.css b/applications/WebConfigure/web/css/user_view.css new file mode 100644 index 0000000..8a39e3b --- /dev/null +++ b/applications/WebConfigure/web/css/user_view.css @@ -0,0 +1,12 @@ +.logo{ + max-height:120px; + max-width:80%; + min-height:100px; + min-width:80px; +} +#login-body .Loginlogo{ + max-height:120px; + max-width:80%; + min-height:100px; + min-width:80px; +} diff --git a/applications/WebConfigure/web/css/versions2.css b/applications/WebConfigure/web/css/versions2.css new file mode 100644 index 0000000..d9b601b --- /dev/null +++ b/applications/WebConfigure/web/css/versions2.css @@ -0,0 +1,3621 @@ +body,button, input, select, textarea,h1 ,h2, h3, h4, h5, h6, samp ,.logotitle { + /*font-family: Microsoft YaHei,'宋体' , Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;*/ + font-family:'Microsoft Yahei'; +} +/** 登陆页面 Start ********************************/ +.login_bg{ + height: 61px; + font-size: 16px; + padding-left: 25px; +} +.login_name{ + background: url(../img/username.png) no-repeat; +} +.login_pwd{ + background: url(../img/userpwd.png) no-repeat; +} + +.login_button{ + font-weight: bolder; + background: url(../img/button_bg.png) no-repeat; + border-color: rgba(255, 255, 255, 0); + width: 220px; + height: 42px; + margin: 0px auto; +} +.login_input_bg{ + height: 42px; + font-size: 16px; + padding-left: 25px; + line-height: 1.3333333; + outline: none; + border-radius: 30px; + margin: 10px 0px; + background-color: rgba(68, 142, 254, 0.2); + box-shadow: 0 0 18px rgba(68, 142, 254, 0.8); +} +.login_input_bg::-webkit-input-placeholder { /* Internet Explorer 10+ */ + color:#8e98bf; +} +/** 登陆页面 End ********************************/ + +/** 正文 Start ********************************/ + +.body_bg{ + background: url(../img/bg.jpg) no-repeat center/100% 100%; +} + +.diagram label{ + background-color: #203882; + margin-right: 8px; +} + +.transparency_bg{ + border: 0px; + background-color: rgba(10, 10, 10, 0); +} +/* 蓝色风格背景框 */ +.configure_bg{ + border-style: solid; + border-width: 1px; + border-color: rgb(68, 142, 254); + border-radius: 10px; + background-image: -moz-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + background-image: -webkit-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + background-image: -ms-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + opacity: 0.9; + background-color: rgba(255, 255, 255, 0); + box-shadow: 0 0 18px rgba(68, 142, 254, 0.8); +} +.configure_tr{ + border-bottom: 1px solid rgb(68, 142, 254); +} +.configure_tr th label{ + color: #FFF; +} +/* 白色风格背景框 */ +/*.white_bg{*/ + /*border: 1px solid rgba(32, 100, 202, 0.12);*/ + /*border-radius: 10px;*/ + /*!*opacity: 0.9;*!*/ + /*background-color: #FFFFFF;*/ + /*box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12);*/ + /*color: #464952;*/ +/*}*/ +.white_bg{ + border: 1px solid rgba(32, 100, 202, 0.12); + border-radius: 10px; + background-image: -moz-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + background-image: -webkit-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + background-image: -ms-linear-gradient( 90deg, rgba(14,120,244,0) 0%, rgba(14, 120, 244, 0.48) 100%); + /*opacity: 0.9;*/ + background-color: rgba(255, 255, 255, 0); + /*box-shadow: 0 0 18px rgba(68, 142, 254, 0.8);*/ +} +.white_bg .signal_title{ + font-size: 16px; + padding: 4px 16px; + border-bottom: 1px solid rgba(32, 100, 202, 0.12); + margin-bottom: 6px; + color: #F0F0F0; +} +/* 红色风格背景框 */ +.red_bg{ + background-color: #FA6552; + color: #F0F0F0; + border-radius: 10px; +} +.red_bg .pie-chart-title{ + background-color: #D34436; + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +/* 灰色风格背景框 */ +.gray_bg{ + background-color: #615856; + color: #F0F0F0; + border-radius: 10px; +} +.gray_bg .pie-chart-title{ + background-color: #4E4543; + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +/* 淡蓝风格背景框 */ +.babyBlue_bg{ + background-color: #77A9FF; + color: #F0F0F0; + border-radius: 10px; +} +.babyBlue_bg .pie-chart-title{ + background-color: #4679C7; + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} + +/* 信号组态 */ +.configure_bg .signal_title{ + width: 100%; + font-size: 16px; + padding: 4px 16px; + border-bottom: 1px solid #6093E5; + margin-bottom: 6px; +} +.configure_bg .signal_body{ + width: 100%; + height: 42px; + line-height: 42px; +} +.signal_body .signal_body_name{ + width: 47%; + float: left; + text-align: right; + padding-right: 22px; + height: 42px; + line-height: 42px; +} +.signal_body .table_signal_body_name{ + text-align: right; + padding-right: 22px; + height: 42px; + line-height: 42px; +} +.signal_body .signal_body_space{ + width: 6%; + float: left; + height: 42px; +} +.signal_body .signal_body_value{ + width: 47%; + float: left; + height: 42px; + line-height: 42px; +} +.signal_body .table_signal_body_value{ + height: 42px; + line-height: 42px; +} +.signal_body .signal_body_value i{ + min-width: 90px; + width: 80%; + border-radius: 20px; + display: inline-block; + height: 28px; + line-height: 28px; + text-align: center; +} +.signal_body .table_signal_body_value i{ + min-width: 90px; + width: 80%; + border-radius: 20px; + display: inline-block; + height: 28px; + line-height: 28px; + text-align: center; +} + +.mdc_temp_foot{ + position: absolute; + top: 20.5%; + right: 15%; +} +.mdc_temp_foot .foot_number{ + display: inline-block; + line-height: 20px; + width: 20px; + height: 20px; + float: left; + margin-right: 10px; +} + +/* 拟态框 */ +.modal-content,.dialog_box{ + background-color: #033085; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + border-radius: 10px; +} +.modal-content .modal-header,.dialog_box .alarm_table_body{ + border-top-left-radius: 10px; + border-top-right-radius: 10px; + border-bottom: 1px solid #36599d; +} +.modal-content button.close{ + width: 30px; + height: 30px; + background-color: #f4455a; + opacity: 1; + border-radius: 20px; +} +.modal-content button.close:hover{ + background-color: #D9534F; +} +.modal-content button.close i{ + color: #fff; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0); +} + +.alarm_table{ + background-color: #0a1e65; + margin:0px auto; +} + +.alarm_table tr td div,.alarm_table tr th div{ + max-width: 94%; + margin: 0px auto; + text-align: left; +} +.alarm_table_body input[title="table-filter"] +{ + border-radius: 20px; + height: 34px; +} +.alarm_table_body .ng-isolate-scope{ + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + height: 79px; +} +.alarm_table_body .ng-table-pagination{ + margin-left: 40%; +} +.alarm_table_body .ng-table-counts{ + margin: 20px 42px 20px 0px; +} +.alarm_table_body td .pull-right button{ + border: 0px; + padding: 6px; + width: 32px; + border-radius: 20px; +} +.mdcBelow button.checked{ + border-radius: 20px; +} + +/* 输入框 */ +.form-control{ + background-color: #033085; + border: 1px solid #025aff; + border-radius: 20px; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} + +.filter_input{ + position: relative; + width: 45%; + display: inline-block; + line-height: 65px; +} +.filter_input input{ + display: inline-block; +} +input[type="text"], textarea, input[type="password"]{ + border-radius: 20px; + background-color: #033085; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} +.WhiteInput input[type="text"],.WhiteInput textarea,.WhiteInput input[type="password"]{ + border-radius: 20px; + background-color: #FFFFFF; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} + +input[type="file"]{ + border-radius: 20px; + background-color: #033085; + border: 1px solid #025aff; + color: rgb(97, 97, 97); + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} + +.hideBorder input[type="text"],.hideBorder textarea,.hideBorder input[type="password"]{ + border-radius: 0px; + /*background-color: #033085;*/ + border: 0px; + box-shadow: rgba(15, 96, 244, 0) 0px 0px 0px; +} + +input:read-only{/* readonly属性的input标签 */ + background-color: #1E3F8E; + border: 1px solid #1E3F8E; + box-shadow: rgba(15, 96, 244, 0) 0px 0px 0px; +} +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{ + background-color: #1E3F8E; + border: 1px solid #1E3F8E; + box-shadow: rgba(15, 96, 244, 0) 0px 0px 0px; +} + +select,select.btn-default{ + color: #FFF; + border-radius: 20px; + background-color: #033085; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} +.filter_input i{ + position: absolute; + top: 19px; + right: 15px; + font-size: 25px; + cursor: pointer; +} +.filter_input input::-webkit-input-placeholder { /* Internet Explorer 10+ */ + color: rgba(255, 255, 255, 0.6); +} + +.table-bordered{ + border: 1px solid rgba(12, 19, 63, 0); +} +.table_body thead,table thead{ + background-color: #062776; +} +.table_body tbody,table tbody{ + background-color: #0a1e65; +} +.div_content{ + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + overflow-y: auto; + background-color: #033085; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td{ + border-bottom: 1px solid #384b85; +} + +input.btn-default:hover,select.btn-default:hover, +input.btn-default:focus,select.btn-default:focus, +input.btn-default.focus,select.btn-default.focus, +input.btn-default:active,select.btn-default:active, +input.btn-default.active,select.btn-default.active, +.open > .dropdown-toggle.btn-default{ + color: #FFF; + background-color: #033085; + border: 1px solid #025aff; +} +input.btn-default{ + color: #FFF; +} + +/* 按钮 */ +.btn-primary:hover{ + background-color: #0179ff; +} +.btn-primary{ + border-radius: 20px; + background-color: #0166fe; + border-color: #0179ff; +} +.btn-default{ + border-radius: 20px; +} +.btn-danger:hover{ + background-color: #f4455a; +} +.btn-danger{ + border-radius: 20px; + background-color: #da4156; + border-color: #f4455a; +} +.alarmLevel3{ + color:#da4156; +} +.btn-warning:hover{ + background-color: #eea236; +} +.btn-warning { + border-radius: 20px; + background-color: #db771f; + border-color: #eea236; +} +.alarmLevel2{ + color:#db771f; +} +.btn-success{ + border-radius: 20px; +} + + +.panel-default{ + background-color: rgba(0,0,0,0); + border-radius: 20px; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + margin-top: 20px; +} + +.panel-default.panel-card{ + margin-top: 10px; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.panel-default > .panel-heading{ + padding: 10px 15px; + background-color: #062776; + border-top-left-radius: 20px; + border-top-right-radius: 20px; +} + +table{ + background-color: #0A1E65; +} +.table-bordered{ + border: 1px solid #36599d; +} +.table-hover > tbody > tr:hover { + background-color:#36599d; + cursor: pointer; +} + +/* 时间控件 */ +.datepicker>table>thead>tr>th>.btn-default{ + background-color: #062776; + border: 0px; + border-radius:0px; + color:#fff; +} +.datepicker>table>tbody>tr>td>.btn-default{ + background-color: #062776; + border: 0px; + border-radius:0px; + color:#fff; +} +.datepicker>table>tbody>tr>td>.btn-primary{ + background-color: #062776; +} + +.nav-tabs{ + border-bottom: 1px solid #0a1e65; +} + +.nav-tabs a{ + color: #FFF; +} +.nav-tabs > li > a:hover{ + border-color:transparent; +} + +/*KPI*/ +.charts_div{ + width:100%; + height:100%; + padding: 13px 3px 13px 13px; +} +.charts_div .charts_a{ + width:100%; + height:100%; + display:block; + position:static; +} +.charts_div .charts_a>div:nth-child(1){ + background-color: rgba(3, 48, 133, 0.6); + border: 1px solid rgb(68, 142, 254); + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + margin: auto auto; +} +.charts_div .table_div{ + height: 100%; + padding: 0px 20px; + background-color: rgba(3, 48, 133, 0.6); + border: 1px solid rgb(68, 142, 254); + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + overflow-y: auto; +} +.tabKpi table tr td div a>div:nth-child(1) div{ + background-color: rgba(3, 48, 133, 0.8); +} +.charts_table{ + border-color: rgb(68, 142, 254); +} +.charts_table_thead_tr{ + text-align:center; + font-weight:bold; + font-size: 20px; +} +.charts_table_thead_tr th{ + text-align:center; +} + +/*告警弹出框*/ +#pop{ + background-color: #062776; + border: 1px solid rgb(68, 142, 254); + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + border-radius: 10px; +} +#popHead{ + background-color: #062776; + border: 1px solid rgb(68, 142, 254); + border-top-right-radius: 10px; + border-top-left-radius: 10px; +} +#popHead #popClose{ + color: #FFF; +} +#popContent dl{ + background-color: #0A1E65; +} + +.templateProperty{ + background-color: #033085; + border: 1px solid #025aff; +} + +/* MDC 3D */ +.table-opacity{ + background-color:transparent; +} +.panel-red .panel-heading, +.panel-yellow .panel-heading, +.panel-blue .panel-heading, +.panel-green .panel-heading +{ + background-color: #0A1E65; +} +.panel-footer{ + background-color: #0A1E65; +} +/* 视频 */ +.dropdown-menu{ + background-color: rgba(2, 46, 141, 0.9); +} +.datetimepicker-days table tr td:hover, +.datetimepicker-days table tr th:hover +{ + background-color: #039; +} +.record-search button{ + background-color: #062776; + border: 1px solid #448efe; +} +.record-search button:hover{ + background-color: #448efe; + color: #FFF; +} +.split-area{ + background-color: #010a2b; +} + +.license_div{ + position: absolute; + bottom: 5px; + right: 20px; + font-size: 16px; + text-decoration: underline; + font-weight: 500; +} +.license_div a{ + color: #FFF +} +.license_div a span{ + color: #ffff00; +} + +#License_Body{ + position: absolute; + left: 35%; + top: 30%; +} + +.Mdc_Aisle tr td{ + border: 1px solid #FFF; + cursor: pointer; + min-width: 15px; + height: 15px; + min-height: 5px; +} +.Mdc_Aisle tr td:hover{ + background-color:#0549C0; +} + +/** 正文 End ********************************/ + +/** 左边菜单栏 Start ********************************/ +.menu_bar{ + padding-top: 248px; + background-color: rgba(0, 0, 0, 0.3); + height: 100%; + overflow: hidden; +} +.menu_bar .sidebar-nav{ + overflow-y: auto; + height: 100%; + width: calc(100% + 20px); +} + +.sub-li div{ + display: inline-block; + width: 32px; + text-align: center; +} + +/** 左边菜单栏 End ********************************/ + +/** 上面功能菜单 Start ********************************/ +.nav .open > a{ + background-color: rgba(2, 46, 141, 0.6); + background-size: auto 58px; +} +.nav > li > a:hover{ + background-color: rgba(2, 46, 141, 0.6); +} +/** 上面功能菜单 End ********************************/ + +/*** 表格组态 Start ***********************************************/ +.table-td-hover > tbody > tr > td:hover { + background-color:#08c; + cursor: pointer; +} +.table-active{ + background-color: #08c; +} +.table-normal{ + background-color: rgba(0, 0, 0, 0); +} +/*边框样式 蓝*/ +.div-border{ + background-color: #033085; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} +/*筛选框*/ +.filter-border{ + width: 190px; + display:inline; + margin: 10px 0px; + margin-left: 5px; +} +/* 多选列表 */ +.multi-border-select{ + list-style: none; + padding-inline-start: 10px; + margin-bottom: 0px; + width:220px; + height:180px; + overflow: auto; +} +.multi-border-available{ + list-style: none; + padding-inline-start: 10px; + margin-bottom: 0px; + width:320px; + height:180px; + overflow: auto; +} +/* 复选框 边框 */ +.timeGroupCheck .i-border{ + width: 20px; + height: 20px; + line-height: 18px; +} + +.timeGroupCheck .checked{ + background:#337AB7; +} +.timeGroupCheck .disabled{ + background:rgba(0, 0, 0, 0); +} + +/** 表格样式风格 */ +/*默认 蓝边框*/ +#table-config table.default tr,#table-config table.default tr td{ + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} +#table-config td.default{ + border: 2px solid #025aff; + padding: 10px 20px; +} +/*默认-底边 蓝底边*/ +#table-config table.default-base tr{ + border-bottom: 1px solid #025aff; +} +#table-config td.default-base{ + border: 2px solid #025aff; + padding: 10px 20px; +} + +/*橙边框*/ +#table-config table.orange tr,#table-config table.orange tr td{ + border: 1px solid #eea236; + box-shadow: rgba(238, 162, 54, 0.8) 0px 0px 20px; +} +#table-config td.orange{ + border: 1px solid #eea236; + padding: 10px 20px; +} +/*橙底边*/ +#table-config table.orange-base tr{ + border-bottom: 1px solid #eea236; +} +#table-config td.orange-base{ + border: 2px solid #eea236; + padding: 10px 20px; +} + +/*红边框*/ +#table-config table.red tr,#table-config table.red tr td{ + border: 1px solid #f4455a; + box-shadow: rgba(244, 69, 90, 0.8) 0px 0px 20px; +} +#table-config td.red{ + border: 1px solid #f4455a; + padding: 10px 20px; +} +/*红底边*/ +#table-config table.red-base tr{ + border-bottom: 1px solid #f4455a; +} +#table-config td.red-base{ + border: 2px solid #f4455a; + padding: 10px 20px; +} + +/*白边框*/ +#table-config table.white tr,#table-config table.white tr td{ + border: 1px solid #ffffff; + box-shadow: rgba(255, 255, 255, 0.8) 0px 0px 20px; +} +#table-config td.white{ + border: 1px solid #ffffff; + padding: 10px 20px; +} +/*白底边*/ +#table-config table.white-base tr{ + border-bottom: 1px solid #ffffff; +} +#table-config td.white-base{ + border: 2px solid #ffffff; + padding: 10px 20px; +} + +.border, .border tr, .border tr td, .border tr th{ + border: 1px solid #ffffff; +} + +/* 去除组态-表格组态的边框 */ +.none-border{ + border: 0px; + background-image: url(''); + box-shadow: 0 0 0px; +} +.none-border table tr td{ + border-bottom: 1px solid #025aff; +} + +/* 表格实时值告警 */ +.alarm-border{ + border: 2px dashed #A02B31; + color: #A02B31; +} +/* 表格实时值中断 */ +.disconnect-border{ + border: 2px dashed #575A5E; + color: #575A5E; +} +/*** 表格组态 End ***********************************************/ + +/**** 机架资产信息 Start ***************************************************/ + +.assets-log i.fa-search{ + position: absolute; + top: 4px; + right: 25px; + font-size: 25px; +} +/**** 机架资产信息 End ***************************************************/ + + +.rack-assets-info div{ + height: 34px; +} +.rack-assets-info div label{ + margin-top: 8px; + text-align: right; +} +.control-english{ + padding-top:-1px; + margin-bottom: 2px; + text-align: right; +} + +.text-right{ + text-align: right!important; +} +.text-left{ + text-align: left!important; +} + +/*组态 表格 编辑框样式*/ +.NtsOcerflow{ + max-width: 1160px; + max-height: 400px; + overflow:auto; +} + +/* 开关CSS */ +.switch-check{ + position: relative; + -webkit-appearance: none; + width:60px !important; + height: 30px !important; + line-height: 30px !important; + background: #eee !important; + border-radius: 30px; + outline: none; +} +.switch-check:before{ + position: absolute; + left: 0; + content: ''; + width: 30px; + height: 30px; + border-radius: 50%; + background: #0084d7; + box-shadow: 0px 0px 5px #ddd; + transition: all 0.2s linear; +} + +.switch-check:checked{ + background: #18ff0a !important; +} +.switch-check:checked:before{ + left: 30px; + transition: all 0.2s linear; +} + +/** 接口模块,日志框 */ +.content_message{ + height: 450px; + overflow-y: scroll; + background: #033085; + color: #fff; + padding: 10px; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; +} + +/*.signal-body{ + background-color: rgba(0, 0, 0, 0); +}*/ + +/* 组态-设备告警数 */ +.diagram-alarmCount,.view-alarmCount{ + position: absolute; + top: 0px; + right: 20px; + width: 43px; + height: 32px; + background-color: #BA3463; + color: white; + text-align: center; + border-radius: 100px; + -moz-border-radius: 100px; + font-size: 20px; + line-height: 30px; + z-index: 3; + display: none; +} + +/* 二维码 */ +.QRCode{ + float:left; + width: 30%; +} +.QRCode div{ + text-align: center; + height: 100%; +} +.QRCode img{ + width: 90%; +} +.showQRCode{ + float:left; + width:70%; + border-right: 2px dashed; +} + +/* 组态编辑器 - 圆盘 */ +.key-wheel{ + position: absolute; + z-index: 999; + bottom: 0px; + width: 200px; + height: 252px; + background-color: rgba(0, 0, 0, 0.6); + border: 2px solid rgba(0, 132, 215, 0.8); + box-shadow: -2px 0 5px #337AB7; +} +.key-wheel.right{ + right: 0px; +} +.key-wheel.left{ + left: 0px; +} + +.key-wheel .key-title{ + height: 50px; + border: 1px solid rgba(0, 132, 215, 0.8); +} +.key-title label{ + line-height: 44px; +} +.key-title div{ + margin-top: 6px; +} +.key-table{ + width: 100%; + height: 200px; +} +.key-table tr td,.key-table tr th{ + width: 33.3%; + height: 33.3%; + border: 1px solid rgba(0, 132, 215, 0.8); + + text-align:center; + vertical-align:middle; + + cursor: pointer; +} +.key-table .select{ + background-color: #0179ff; +} + + +/* 控制-遥调 */ +.nts-table tr td{ + padding: 2px; +} +.remote-regulating{ + height: calc(100% - 25px); + font-size: 2vh; + background-color: rgba(255, 255, 255, 0); +} +.remote-regulating table{ + height: 100%; + width: 100%; +} +.remote-regulating table tr td{ + text-align: center; +} +.remote-regulating .adjust button{ + width: 100%; +} +.remote-regulating button{ + width: 60%; +} +.remote-regulating input{ + width: 60%; + margin: 0px auto; + text-align: center; + background-color: #101e40; + border: 0px; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 0px; +} + +/* 组态 编辑区 锁 */ +.editor_lock.true{ + background-color: #99999969; + border-color: #999; +} + + +/* 登录页面 li 鼠标悬停事件 */ +.login-ul > li { + position: relative; + display: block; +} +.login-ul > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.login-ul > li > a > select{ + cursor: pointer; +} +.login-ul > li > a:hover{ + background-color: rgba(153, 153, 153, 0); +} + +/* 背景图 */ +.Body-Background{ + background: url(../img/loginbg.jpg) left top/cover no-repeat !important; +} +.Login-Background{ + background: url(../img/logininfo.png) no-repeat; +} + +.navbar{ + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.3); +} + +#view-scroll{ + height:40px; + width: calc(99.6%); + /*overflow: hidden;*/ + display: inline-block; +} +#view-scroll .diagram{ + display: block; + z-index: 999; +} +.view-show-hide{ + float: right; + width: 40px; + height: 40px; +} +.view-show-hide i{ + font-size: 50px; + line-height: 40px; + text-align: center; + width: 100%; + cursor: pointer; +} +.view-show-hide i:hover{ + color: rgba(0, 132, 215, 1); +} +#diagramControl{ + height:calc(100% - 68px); + background-size:100% 100% !important; +} + +.modal-header{ + border: 1px solid rgba(255, 255, 255, 0); + padding-left: 42px; + /*background-color: #0a1e65;*/ +} + +.camera-plugin{ + height: 300px; + overflow: hidden; + /*background-color: #171F6A;*/ +} + +.asset-head{ + background-color: rgba(0, 0, 0, 0.5); +} + +/* input框行内样式 */ +input.input-inline{ + display: inline; + margin-right: 15px; +} + +/* 组态值样式 */ +.signal-value-disconnect{ + background-color:#575A5E; +} +.signal-value-normal{ + background-color:#5B9338; +} +.signal-value-alarm{ + background-color:#A02B31; +} + +.color-section{ + display: inline; + width: 100px; +} + +/*.diagram-sigimg-value{ + background-color: rgba(0, 0, 0, 0); + border: rgba(0, 0, 0, 0) solid 1px; +}*/ +.diagram-sigimg-value-Transparency{ + background-color: rgba(0, 0, 0, 0); + border: rgba(0, 0, 0, 0) solid 1px; +} + + +.topology-expand-div{ + background-color: #033085; +} +.topology-img-div:hover div{ + background-color: #033085; +} + + +#table-config{ + width: calc(100% - 4px); + height: calc(100% - 6px); +} + +.camera_color{ + color: #FFF; +} + +.split-area span.camera_view{ + float: left; + display: block; + margin-left: 10px; + padding-left: 15px; + border: 1px solid #2B2B2B; + border-radius: 14px; + line-height: 25px; + text-align: left; + height: 25px; + width: 100px; + margin-top: 5px; +} +.split-area span.camera_record{ + display:inline-block; + margin: 5px auto; + padding-left: 10px; + margin-left:120px; + border: 1px solid #2B2B2B; + border-radius: 14px; + line-height: 25px; + text-align: left; + height: 25px; + width:170px; +} + +.input-group-addon{ + background-color:#062776; + color: #ffffff; + border: 1px solid rgb(68, 142, 254); +} +.input-group-control{ + background-color:#062776; + color: #ffffff; + border: 1px solid rgb(68, 142, 254); + border-radius: 0px; + cursor:pointer; +} + +.manage-top-div{ + padding: 10px 50px; + box-shadow: rgba(0, 0, 0) 0px 0px; + background-color: #062776; +} + +.time_set_bg{ + background-color: rgba(0,0,0,0.5); +} + +.time_setting{ + background-color: #062776; + color: #ffffff; + border: 1px solid rgb(68, 142, 254); + margin-right:15px; +} + +.cabinet_title_color a{ + color: #fff; +} + +.config_mdc_marked{ + width: 100%; + text-align: center; + font-size: 18px; + position: absolute; + color: #FFF; + font-weight: 900; + margin-top: 40px; +} + + +/* 导航背景 */ +.full-image{ + background-image: url('../img/bg.jpg'); + cursor: pointer; + border: 3px solid #FFF; +} + +/* 设备详情 - 确定告警 */ +.alarm-remark{ + width:100%; + height:150px; + color:#FFF; +} + +/* 配置页面 滚动条 */ +#page-wrapper.hide-scroll{ + overflow: hidden; +} +.hide-scroll .container-fluid{ + overflow-y: auto; + height: 100%; + width: calc(100% + 20px); +} + +/* 简易多选下拉框 */ +.dropdown-mul-1 .dropdown-display-label{ + max-height: 33px; + overflow: hidden; + border-radius: 20px; +} + +/* 超链接组态 返回按钮 */ +#return-button.default{ + position: absolute; + top: 60px; + right: 40px; + z-index: 999; +} +#return-button.iview{ + position: absolute; + top: 105px; + right: 40px; + z-index: 999; +} +#return-button button{ + width: 110px; + height: 40px; + border-radius: 20px; +} + +/* 下拉框内容居中 */ +table select{ + text-align:center; + text-align-last:center; +} + +/* 加深模态框的背景颜色 */ +.modal.top{ + background-color: rgba(0, 0, 0, 0.50); +} + +/* 模态框 右 */ +.modal .modal-right{ + margin: 0px 0px 0px auto; + width:300px; + height: 100%; +} +.modal-right .modal-content{ + height: 100%; +} + +/* 微模块历史数据 机柜设备列表 */ +.cabinet_list{ + cursor: pointer; + padding: 0px; + list-style: none; +} + +.cabinet_list .cabinet_name{ + font-size: 24px; + line-height:40px; +} +.cabinet_list .cabinet_device{ + font-size: 22px; + padding-left: 20px; + line-height:40px; +} + +.cabinet_list .cabinet_name:hover, +.cabinet_list .cabinet_device:hover{ + background-color:#36599d; +} + +/* 组态-实时图表 平均值、最大值、最小值 */ +.avg-max-min{ + position: absolute; + width: 30%; + height: calc(100% - 54px); + padding-top: 34px; +} +.avg-max-min .max,.avg-max-min .min{ + height: 50%; +} +.avg-max-min .max div,.avg-max-min .min div{ + margin-left: 20%; + padding-top: 20%; +} +.avg-max-min .name{ + display: block; +} + +/* 组态 - 3D MDC */ +.canvas-button-div{ + position: absolute; + right: 0px; + top: 5vh; + color: #64778B; +} +.canvas-button-div div{ + display: inline; + margin-right: 5vh; + cursor: pointer; +} + + +/* MDC历史数据 */ +#HistoryRoot{ + height:85.8vh; +} +#HistoryRoot .history-alarm-body{ + width: 29%; + height: 99%; + float: left; +} +#HistoryRoot .history-signal-body{ + width: 69%; + height: 99%; + float: left; +} +/* 超链接组态 返回按钮 */ +#HistoryRoot .history-button{ + position: absolute; + top: 60px; + right: 40px; + z-index: 999; +} +.history-button button{ + width: 110px; + height: 40px; + border-radius: 20px; +} +.history-alarm-body .query label.btn, +.history-signal-body .query label.btn{ + font-size: 18px; +} +.history-alarm-body{ + border-right: 2px solid #0166fe; +} +.history-alarm-body .query,.history-signal-body .query{ + border-bottom: 2px solid #0166fe; + padding-bottom: 10px; +} +.alarm-content{ + float: left; + width: calc(100%); + border-bottom: 1px solid #0166fe; + padding: 10px; +} +.history-alarm-body .body{ + height: calc(100% - 140px); + float: left; + overflow-y: auto; + width: 100%; +} +.query .btn-group{ + float: right; +} + +.history-signal-body .body-table{ + float: left; + width: calc(100% - 20px); + margin: 10px; +} + +.history-signal-body .body-chart .chart{ + width: 100%; + height: 250px; + float: left; +} +/* DeBug */ +/*#HistoryRoot,#HistoryRoot div{ + border: 1px solid; +}*/ + +/* MDC历史告警 */ +.alarm-level-3{ + color: #d9534f; +} +.alarm-level-2{ + color: #f0ad4e; +} +.alarm-level-1{ + color: #0F86D6; +} +.alarm-level-0{ + color: #5cb85c; +} +.device-list{ + border-bottom: 2px solid #0166fe; + margin-bottom: 10px; + width: 100%; +} +.device-list .device-list-div{ + margin: 5px; + height: 39px; + overflow-y: auto; +} +.device-list label{ + border-radius: 0px; + margin-right: 4px; + min-width: 50px; + max-width: 150px; + overflow: hidden; + font-size: 18px; +} +.device-list label:hover{ + background-color: rgba(1, 102, 254, 0.81); + color: #FFFFFF; +} +.device-list label.active{ + background-color: #0166fe; +} + +.history-alarm-body .btn-group .btn-primary, +.history-signal-body .btn-group .btn-primary{ + background-color: #203882; + border-color: #203882; +} +.history-alarm-body .btn-group .btn-primary.active, +.history-signal-body .btn-group .btn-primary.active{ + background-color: #0165fb; + border-color: #0163f5; +} + +/* 圆环进度条 */ +.circle{ + margin: 0px auto; + position: initial; +} +.circle .circle-value, +.circle .circle-name{ + position: absolute; + text-align: center; +} +.circle .circle-name{ + bottom: 10px; +} + +.panel-primary .panel-body{ + margin-top: 19px; +} + +.active-alarm-filter span{ + cursor: pointer; +} + +/* 滚动条样式 默认 */ +/*滚动条上一级:不影响功能并隐藏滚动条*/ +.scroll-root{ + width: 100%; + overflow: hidden; +} +.scroll-root .scroll-easy { + width: calc(100% + 10px); +} +.scroll-easy, +.scroll-root .scroll-easy{ + overflow-y: auto; +} +.scroll-easy::-webkit-scrollbar, +.scroll-root .scroll-easy::-webkit-scrollbar{/*滚动条整体样式*/ + width: 10px; /*高宽分别对应横竖滚动条的尺寸*/ +} +.scroll-easy::-webkit-scrollbar-thumb, +.scroll-root .scroll-easy::-webkit-scrollbar-thumb{ /*滚动条里面小方块*/ + height: 10px; + border-radius: 5px; + -webkit-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.5); + background: rgba(255, 255, 255, 0.5); +} +.scroll-easy::-webkit-scrollbar-thumb, +.scroll-root .scroll-easy::-webkit-scrollbar-track{ /*滚动条里面轨道*/ + border-radius: 0; + -webkit-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.1); + background: rgba(255, 255, 255, 0.1); +} +.scroll-easy-x::-webkit-scrollbar{/*滚动条整体样式*/ + height: 10px; /*高宽分别对应横竖滚动条的尺寸*/ +} +.scroll-easy-x::-webkit-scrollbar-thumb{ /*滚动条里面小方块*/ + height: 10px; + border-radius: 5px; + -webkit-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.5); + background: rgba(255, 255, 255, 0.5); +} +.scroll-easy-x::-webkit-scrollbar-thumb{ /*滚动条里面轨道*/ + border-radius: 0; + -webkit-box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.1); + background: rgba(255, 255, 255, 0.1); +} + +/* 实时告警组态 */ +.active-alarm-head,.active-alarm-head span,.active-alarm-head i, +.active-alarm-body table tr td{ + font-size: 18px; +} +.active-alarm-head{ + text-align: right; + padding: 5px 0px; +} +.active-alarm-body table thead{ + font-weight: bold; +} +.active-alarm-body table > tbody > tr > td, +.active-alarm-body table > thead > tr > td{ + padding: 5px 2px; +} +.alarm-list-table .alarm-table-content td{ + border: 0px; +} +.alarm-list-table .alarm-table-time td{ + font-size: 18px; + line-height: 10px; +} +.active-alarm-body thead tr td, +.active-alarm-body thead tr th, +.alarm-list-table .alarm-table-time td, +.alarm-list-table td.alarm-table-level, +.alarm-list-table td.alarm-table-name{ + border-bottom: 1px solid #0166fe; +} +.table tr:nth-child(even){ + background-color: #062776; +} +.alarm-list-table tr.odd, +.body_transparent .alarm-list-table tr.odd{ + background-color: #0a1e65; +} +.alarm-list-table tr.even, +.body_transparent .alarm-list-table tr.even{ + background-color: #062776; +} + +/* 64节温场 */ +.node-temp-title{ + display: inline-block; + border-radius: 25px; +} +.node-temp-title table{ + background-color: #203882; + border-radius: 25px; +} +.node-temp-title table tr td{ + border-radius: 25px; + width: 200px; + height: 44px; + text-align: center; + font-size: 16px; + line-height: 44px; + cursor: pointer; +} +.node-temp-title table tr td.selected{ + background-color: #0166fe; +} +.body-temperature{ + height: 480px; + width: 960px; + display: inline-block; + background-color: rgba(0,64,225,0); + position: absolute; +} +.body-temperature .body-table-temperature{ + height: 480px; + width: 480px; + position: relative; + display: inline-block; +} +.body-table-temperature table{ + width: 100%; + height: 100%; +} +.body-caliper .caliper{ + width: 70px; + padding: 10px 5px; + background-color: rgba(0,64,225,0.4); + border-radius: 8px; + border: 0px; + box-shadow: 0 0 0px; +} +.body-caliper .foot_number{ + display: inline-block; + line-height: 20px; + width: 20px; + height: 20px; + float: left; + margin-right: 10px; +} +.body-caliper .font_color{ + display: inline-block; + width: 20px; + height: 20px; +} +.body-caliper .caliper-color{ + width: 50px; + margin: 0px auto; + line-height: 10px; +} +.node-temp-body .body-caliper{ + border: 1px solid rgba(255, 255, 255, 0); + text-align: center; + font-size: 18px; + color: #FFFFFF; +} +.body-temperature table tr td{ + border: 1px solid #FFFFFF; + text-align: center; + font-size: 20px; + color: #FFFFFF; +} +.body-caliper .caliper-visible{ + text-align: center; + cursor: pointer; + height: 50px; + background-size: 70px; +} +.node-temp-edit.is-show-div{ + right: 20px; + top: 50px; +} +.node-temp-body .node-temp-img{ + width: 960px; + display: inline-block; + float: left; + text-align: center; + vertical-align: middle; +} +.node-temp-body .node-temp-img img{ + height: 480px; +} +#node-edit{ + height: calc(100% - 98px); +} +.node-edit-config,.node-edit-view{ + width: 50%; + height: 100%; + float: left; + border: 1px solid #0166fe; +} +.node-edit-config .modal-header, +.node-edit-view .modal-header{ + border-bottom: 1px solid #0166fe; + background-color: #033085; +} +.add-temperature{ + border: 1px solid #0166fe; + margin-bottom: 10px; +} +.edit-img-temp{ + width: 480px; + height: 240px; + margin: 0px auto; + border: 1px solid #0166fe; +} +.edit-img-temp .edit-img{ + text-align: center; + vertical-align: middle; +} +.edit-img-temp .edit-img img{ + max-width: 490px; + height: 240px; +} +.edit-temp{ + width: 240px; + height: 240px; + position: absolute; +} +.edit-temp .edit-temp-modal{ + position: relative; + width: 100%; + height: 100%; + border: 1px solid #0166fe; + background-color: rgba(0,191.25,255,0.6); +} +.edit-view-keyboard{ + margin: 10px; +} +.edit-view-keyboard .key-wheel{ + position: inherit; + margin: auto; + height: 202px; +} +.edit-view-keyboard .key-title{ + width: 30%; +} +.edit-view-keyboard .key-title label{ + line-height: 34px; + text-align: center; + width: 100%; +} + +/* 登录页面 */ +#login-body .dropdown-toggle{ + padding-right: 20px; +} +#login-body #LoginId{ + width: 20px; + height:20px; + display: inline-block; + vertical-align: middle; + margin-bottom: 2px; +} +#login-body #hint{ + font-size: 18px; + padding-left: 4px; + cursor: pointer; + margin: 0; + vertical-align: middle; +} + +/* 信号量组态 */ +.image-signal-table .td-content{ + width: 300px; +} + +/* 64节温场 框选测点 */ +.Test-Box-Choose table{ + width: 300px; + height: 300px; + margin: auto; +} +.Test-Box-Choose table tr td{ + text-align: center; +} +.Test-Box-Choose table tr td.point{ + border: 1px solid #FFFFFF; + cursor: pointer; +} +.Test-Box-Choose table tr td.check{ + background-color: #247bf9; + color: #FFFFFF; +} + +/* 按钮轮廓 */ +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus, +input[type=checkbox]:focus, +input[type=checkbox]:active:focus, +input[type=checkbox].active:focus, +input[type=checkbox].focus, +input[type=checkbox]:active.focus, +input[type=checkbox].active.focus{ + outline: none; +} + +/* 加载页面 */ +.body_bg{ + background: url("../img/bg.jpg") no-repeat center/100% 100%;; + height:100%; + width:100%; +} +.page-load{ + position: absolute; + top: 0px; + width: 100%; + height: 100%; + z-index: 999; +} +.page-load .background{ + position: absolute; + width: 100%; + height: 100%; +} +.page-load .loading-bg{ + background: url("../img/loadingbg.png") no-repeat; + width: 233px; + height: 89px; + margin: 40vh auto 0px; + line-height: 86px; +} +.page-load .background img{ + margin-left: 20px; + vertical-align: middle; +} +.page-load .background span{ + font-size: 28px; + color: #FFFFFF; + vertical-align: middle; +} + +/* 设备详情页面 */ +.visible-device-list{ + position: relative; + height: 40px; + z-index: 1; + margin: 8px 0px; +} +.visible-device-list .view-show-hide{ + position: absolute; + right: 0; + z-index: 2; +} +/* 设备信息页面 */ +.device-info .device-images{ + position: absolute; + top: 15px; + right: 68px; + border: 2px solid; + text-align: center; + height: 274px; + line-height: 272px; +} +.container-fluid.device-info{ + margin-left: 0px; +} +.device-info .device-images a{ + position: inherit; + bottom: -118px; + right: 0px; + font-size: 40px; +} +.device-info .device-images img{ + max-width: 192px; + max-height: 272px; +} +/* 设备操作页面 */ +.device-record{ + font-size: 20px; + max-height: 600px; + padding: 0px 25px 0px 15px; +} +.device-record .record-body{ + border-bottom: 1px solid #7b7d84; + margin: 10px 0px; +} +.device-record .record-title{ + width: 100%; + height: 40px; +} +.device-record .record-comment-title{ + +} +.device-record .record-comment-body{ + margin: 10px; +} +.device-record .record-time{ + font-size: 18px; + text-align: right; +} + +/* 功能列表 */ +.setting-body ul li a, +.setting-body ul li a:hover, +.setting-body ul li a:active{ + color: #FFFFFF; +} +.setting-body ul li{ + background-color: #030f3f; +} +.home-setting .modal-body table tr td samp.dropdown-title{ + color: #FFFFFF; +} +.setting-option .modal-content .model-body-footer{ + background-color: #030f45; +} + +.col-md-1 input,.col-md-2 input,.col-md-3 input,.col-md-4 input,.col-md-5 input,.col-md-6 input, +.col-md-7 input,.col-md-8 input,.col-md-9 input,.col-md-10 input,.col-md-11 input,.col-md-12 input{ + width: 100%; +} +.col-md-1 input[type="checkbox"],.col-md-2 input[type="checkbox"],.col-md-3 input[type="checkbox"],.col-md-4 input[type="checkbox"],.col-md-5 input[type="checkbox"],.col-md-6 input[type="checkbox"], +.col-md-7 input[type="checkbox"],.col-md-8 input[type="checkbox"],.col-md-9 input[type="checkbox"],.col-md-10 input[type="checkbox"],.col-md-11 input[type="checkbox"],.col-md-12 input[type="checkbox"], +.col-md-1 input[type="radio"],.col-md-2 input[type="radio"],.col-md-3 input[type="radio"],.col-md-4 input[type="radio"],.col-md-5 input[type="radio"],.col-md-6 input[type="radio"], +.col-md-7 input[type="radio"],.col-md-8 input[type="radio"],.col-md-9 input[type="radio"],.col-md-10 input[type="radio"],.col-md-11 input[type="radio"],.col-md-12 input[type="radio"]{ + width: auto; +} + + +/* 上传组态包 */ +.config-info .config-main .field-title div, +.config-info .config-minor .minor-title{ + text-align: right; +} +.config-info .config-main .field-title div, +.config-info .config-main .field-body div, +.config-info .config-minor .minor-body div{ + height: 39px; + line-height: 39px; +} +.config-info .config-main .odd{ + +} +.config-info .config-main td{ + margin-left: 8px; + margin-right: 8px; + padding-left: 0px; + padding-right: 0px; +} +.config-info .config-main .even{ + background-color: #e3e8f9; +} +.config-info .config-main .field-interval{ + text-align: center; + font-size: 50px; +} +.config-info .config-main .select-path select{ + width: 40%; + float: left; +} +.config-info .config-main .select-path input{ + width: 60%; + float: left; +} +.config-info .config-minor .minor-interval{ + text-align: center; + font-size: 30px; +} + + +/* 表格标题不换行 */ +.table > thead > tr > th{ + word-break: keep-all; + white-space: nowrap; +} + +/* 隐藏返回按钮 */ +button.return-btn{ + display: none; +} + +/* VLC视频 */ +.camera-view-vlc .camera-view .camera-plugin{ + height: 100%; +} +.camera-view-vlc .camera-view .camera-function{ + height: 40px; + position: absolute; + bottom: 0px; + width: calc(100% - 320px); +} +.camera-view-vlc .camera-view .camera-function div.function{ + display: inline-block; + width: 40px; + margin-right: 20px; + text-align:center; +} +.camera-view-vlc .camera-function div.function i{ + font-size: 20px; + line-height: 40px; +} +.camera-view-vlc #cameraPlugin > table{ + height: 100%; + margin-bottom: 0px; +} +.camera-view-vlc #cameraPlugin > table tr td{ + border: 0px; +} +.camera-view-vlc .camera-menu .title{ + height: 50px; + line-height: 50px; +} +.camera-view-vlc .camera-menu .title span{ + font-size: 18px; + padding-left: 20px; + line-height: 45px; + float: left; + color: #ffffff; +} +.camera-view-vlc .camera-menu .title .modify-video{ + font-size: 18px; + padding-left: 20px; + line-height: 45px; + float: left; + color: #ffffff; +} +.camera-view-vlc .camera-menu .title .modify-video > button{ + font-size: 16px; + vertical-align: top; + margin-top: 5px; +} +.camera-view-vlc .camera-menu .tree{ + height: auto; +} +.camera-view-vlc .camera-menu .tree > ul, +.camera-view-vlc .camera-menu .tree .view-camera{ + padding: 0px; +} +.camera-view-vlc .camera-menu .tree .view-title{ + padding-left: 20px; + line-height: 32px; +} +.camera-view-vlc .camera-menu .tree .view-camera > li{ + padding-left: 40px; + line-height: 24px; +} +.camera-view-vlc .camera-menu .tree .view-title > i, +.camera-view-vlc .camera-menu .tree .view-title > a, +.camera-view-vlc .camera-menu .tree .view-camera > li i, +.camera-view-vlc .camera-menu .tree .view-camera > li a{ + font-size: 16px; +} +.camera-view-vlc .camera-menu .tree .view-title, +.camera-view-vlc .camera-menu .tree .view-title > i, +.camera-view-vlc .camera-menu .tree .view-title > a, +.camera-view-vlc .camera-menu .tree .view-camera > li, +.camera-view-vlc .camera-menu .tree .view-camera > li > i, +.camera-view-vlc .camera-menu .tree .view-camera > li > a{ + color: #FFFFFF; +} +.camera-view-vlc .camera-menu .tree .view-title:hover, +.camera-view-vlc .camera-menu .tree .view-title:hover > i, +.camera-view-vlc .camera-menu .tree .view-title:hover > a, +.camera-view-vlc .camera-menu .tree .view-title.active, +.camera-view-vlc .camera-menu .tree .view-title.active > i, +.camera-view-vlc .camera-menu .tree .view-title.active > a, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover > i, +.camera-view-vlc .camera-menu .tree .view-camera > li:hover > a, +.camera-view-vlc .camera-menu .tree .view-camera > li.active, +.camera-view-vlc .camera-menu .tree .view-camera > li.active > i, +.camera-view-vlc .camera-menu .tree .view-camera > li.active > a{ + background-color: #0179ff; +} +.camera-view-vlc #cameraPlugin > table.table > tbody > tr > td.active{ + border: 2px solid #0179ff; + background-color: transparent; +} +#videoCameraList ul.camera-parent > li > div.videoDiv > i, +#videoCameraList ul.camera-parent > li > div.videoDiv > a, +#videoCameraList ul.camera-parent > li > div.videoDiv > a:hover, +#videoCameraList ul.camera-children > li > div > i, +#videoCameraList ul.camera-children > li > div > a, +#videoCameraList ul.camera-children > li > div > a:hover{ + color: #FFFFFF; +} + +/* 告警等级联动 */ +.alarm-level-div input[type="radio"], +.alarm-level-div input[type="checkbox"]{ + width: 14px; + height: 14px; + vertical-align: middle; +} + +/* 去内外边框 */ +.no-margin-padding{ + margin: 0px !important; + padding: 0px !important; +} +.no-margin-padding-top{ + margin-top: 0px; + padding-top: 0px; +} +.no-margin-padding-bottom{ + margin-bottom: 0px; + padding-bottom: 0px; +} +.no-margin-top{ + margin-top: 0px; +} +.no-padding-top{ + padding-top: 0px; +} +.no-margin-bottom{ + margin-bottom: 0px; +} +.no-padding-bottom{ + padding-bottom: 0px; +} + +/* MDC - U位管理 */ +.mdc-assets-cabinet > .mdc-assets-bg{ + background-color: rgba(0, 153, 230, 0.5); +} +.mdc-assets-cabinet > .mdc-assets-bg > .mdc-assets-per{ + width: 100%; + height: 100%; + background-color: rgba(39, 47, 66, 1); + border: 0px; + border-radius: 5px; + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; +} +.mdc-assets-cabinet > div.cabinet-title.mdc-assets-per-text{ + display: block; + background: transparent; +} + +.mdc-assets-info .mdc-assets-info-space, +.mdc-assets-info .mdc-assets-info-content{ + padding:1px; +} +.mdc-assets-info .mdc-assets-info-space > .mdc-assets-space-body{ + display:inline-block; + margin:10px; + height:740px; + width:calc(100% - 18px); + padding:2px; + border:6px solid #006699; +} + +.mdc-assets-info .mdc-assets-padding{ + padding: 16px 16px; +} +.mdc-assets-info textarea{ + resize: none; +} +.mdc-assets-info .no-rackDevice{ + border: thin solid transparent; + background-color:transparent; + display: flex; + justify-content: center; + align-items: center; +} + +.show-assets-device{ + position: inherit; + width: 100%; +} +.mdc-assets-u-info{ + margin-top: 100px; +} +.mdc-assets-u-info > .u-info-body{ + width: 33%; + display: inline-block; + text-align: center; + font-size: 24px; +} + +/*卡管理页面 修改卡样式*/ +#CardManagement .modal-body { + position: relative; + top: -25px; + bottom: -25px; + padding: 15px; +} +#CardManagement .tbody-overflow .tbody-td13{ + width: 280px; + min-width: 280px; + max-height: 280px; +} +#CardManagement .tbody-overflow .tbody-td14 { + width: 177px; + min-width: 177px; + max-height: 177px; +} +#CardManagement input.form-control { + width: 100%; +} +#CardManagement .modal-footers{ + position: absolute; + bottom: -5px; + right: 0; +} +.datepicker{ + z-index: 1600!important; +} + + +/* 网络设置 */ +.network-modal{ + background-color: transparent; + box-shadow: none; + border-radius: 4px; + padding: 40px 0px; +} +input[type="checkbox"].switch-check:checked { + background: rgba(0, 172, 161, 0.6); +} +.switch-check:before{ + background: #00aca1; +} +input[type="checkbox"].checkbox{ + width: 20px; + height: 20px; +} +.checkbox-select{ + text-align: center; +} +.checkbox-select .network-checkbox{ + font-size: 18px; + display: inline-block; + width: 20%; +} +.checkbox-select .network-checkbox span{ + vertical-align: middle; + margin-right: 10px; +} + +.network-wifi{ + float: none; +} +.network-wifi .wifi-list{ + width: 40%; + margin: 0px auto; + margin-top: 30px; + font-size: 18px; + line-height: 48px; + box-shadow: 0px 2px 4px rgba(114, 126, 132, 0.24), 0px 1px 10px rgba(114, 126, 132, 0.12), 0px 4px 5px rgba(114, 126, 132, 0.24); +} +.network-wifi .wifi-list .wifi{ + padding: 0px 5%; + font-size: 18px; + line-height: 48px; + cursor: pointer; +} +.network-wifi .wifi-list .other-wifi{ + color: #0C85D3; + cursor: pointer; + font-size: 18px; + line-height: 48px; + padding: 0px 20px; +} +.network-wifi .wifi-list .wifi.active{ + color: #0C85D3; +} +.network-wifi .wifi-list .wifi span{ + float: right; + color: #424E54; +} +.network-wlan .network-wlan-table{ + margin: 0 auto; + margin-top: 30px; + font-size: 18px; +} +.network-wlan-table tr{ + line-height: 48px; +} +.network-prompt{ + text-align: center; + font-size: 18px; + margin: 30px 0px; +} +.wireless-info .info-left{ + padding-right: 10px; +} +.wireless-info .info-right{ + padding-left: 10px; +} +.password-eye{ + color: #727e84; + position: absolute; + margin-left: -60px; + font-size: 46px; + cursor: pointer; +} +.alarmTd{ + text-align: left; +} + +.distance-between{ + padding: 16px; +} +.no-margin-top{ + margin-top: 0px; +} +.no-padding-top{ + padding-top: 0px; +} +.button-left{ + margin-left: 16px; +} +.table-margin{ + margin: 16px; + width: calc(100% - 32px); +} +.bo-box-shadow{ + box-shadow: none !important; +} + +.rights-root .rights-account{ + width: 24%; + float: left; +} +.rights-root .rights-body{ + width: 75%; + height: 100%; + float: right; +} +.authority-option .setting-box-shadow{ + margin-bottom: 20px; + border-radius: 20px; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.authority-option .setting-title, +.authority-option .setting-title a{ + font-style: normal; + font-weight: normal; + font-size: 18px; + line-height: 50px; + color: #ffffff; + height: 50px; + padding-left: 20px; +} +.authority-option .setting-title a{ + cursor: pointer; +} +.setting-title > a > i.fa, +.ul li > i.fa{ + float: right; + font-size: 18px; + color: #ffffff; + margin: 10px; + margin-right: 30px; + line-height: 30px; + cursor: pointer; +} +.ul li > i.left-arrows{ + float: left; + margin-right: 26px; +} +.ul li > div.no-fa{ + width: 54px; + height: 50px; + display: inline-block; + float: left; +} +.authority-checked > i.fa{ + font-size: 25px; + vertical-align: middle; + color: #ffffff; +} +.rights-list .ul{ + padding: 0px; +} +.rights-list .ul > li{ + line-height: 46px; + padding-left: 16px; +} +.rights-list .ul > li .micro-font{ + font-size: 14px; +} +/* UL隔行变色 */ +.rights-list .ul > li:nth-child(even){ + background-color: #020f45; +} +.rights-list .ul > li:nth-child(odd){ + background-color: #062776; +} +.rights-list .ul > li.even{ + background-color: #020f45; +} +.rights-list .ul > li.odd{ + background-color: #062776; +} +.rights-list input[type="radio"], +.rights-list input[type="checkbox"] { + width: 25px; + height: 25px; + vertical-align: middle; +} +.radio-text{ + vertical-align: middle; +} +.rights-body .rights-button{ + position: fixed; + bottom: 0px; + left: 0px; + width: 100%; + height: 55px; + line-height: 45px; + padding-top: 5px; + text-align: right; + padding-right: 25px; + background-color: #020f45; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.part-ul, +.part-ul2{ + margin-left: 50px; +} +.part-ul > li { + border-left: 3px solid #237af8; +} +.part-ul2 > li { + border-left: 3px solid; +} + +/* MDC配置化-单排 */ +.mcd_diagram{ + padding: 16px; +} +.mdc_diagram_head > .tag_radius{ + display: inline-block; + z-index: 999; + border-radius: 25px; + border: 2px solid rgb(35, 122, 248); +} +.tag_radius > ul{ + margin: 0px; +} +.tag_radius > ul > li { + display: inline-block; + padding: 10px 20px; + font-size: 18px; + border-radius: 25px; +} +.tag_radius > ul > li.active{ + background-color: #033085; +} +.tag_radius > ul > li > a, +.tag_radius > ul > li.active > a{ + color: #FFF; +} +.mdc_diagram_head .mdc_tag{ + position: absolute; + right: 60%; +} +.mdc_diagram_head .mdc_split{ + position: absolute; + left: 45%; +} +.mdc_diagram_images{ + margin: 70px 160px 20px 80px; + height: 250px; +} +.mdc_diagram_images .cabinet_image > img { + height: 250px; + max-width: 80%; + max-height: 250px; +} +.mdc_diagram_images .cabinet_image{ + text-align: center; +} +.cabinet_table{ + margin: 0px 32px 0px 16px; + padding: 16px 16px 0px 16px; + background-color: #041457; + box-shadow: 0px 2px 20px 0px rgba(32, 100, 202, 0.12); +} +.cabinet_table .table{ + margin-bottom: 16px; +} +.cabinet_table .table tbody tr th, +.cabinet_table .table tbody tr td{ + font-weight: normal; + text-align: center; + padding: 8px 10px; +} +.cabinet_table .narrow .table tbody tr th, +.cabinet_table .narrow .table tbody tr td{ + padding: 8px 6px; +} +.cabinet_table .table tbody tr th, +.cabinet_table .table tbody tr td, +.cabinet_table .table tbody tr td .btn{ + font-size: 14px; +} +.cabinet_table .table{ + width: auto; + display: inline-block; +} +.cabinet_table .table tr, +.cabinet_table .table tr > td{ + border: 1px solid #D5DAEB; +} +.mdc_diagram_body .table_unit{ + display: inline-block; +} +.mdc_diagram_body .table_body{ + display: inline-block; + position: absolute; + width: calc(100% - 308px); +} +.cabinet_table table.signal_unit tr, +.cabinet_table table.signal_unit tr > td, +.cabinet_table table.signal_body tr > th{ + background-color: rgb(4 20 91); +} +.cabinet_table table.signal_body tr, +.cabinet_table table.signal_body tr > td{ + background-color: #041253; +} +.cabinet_table .table tbody tr td.signal_normal{ + color: #0BCF6D; + font-weight: bold; +} +.cabinet_table .table tbody tr td.signal_alarm{ + color: #ED7720; + font-weight: bold; +} +/* MDC配置化-单排配置 */ +.mdc_config_root .mdc_title{ +} +.mdc_config_root .table tbody tr th, +.mdc_config_root .table tbody tr td, +.mdc_config_root .table tbody tr td .btn, +.mdc_config_root .table tbody tr td input, +.mdc_config_root .table tbody tr td select{ + font-size: 16px; +} +.mdc_config_root .table tr td{ + padding: 8px; +} +.mdc_config_root .table tr td.topology-img-div{ + padding: 5px 8px 4px 8px; +} +.mdc_config_root .table tr td input, +.mdc_config_root .table tr td select{ + height: 30px; + text-align: center; +} +.mdc_config_root .tag_table{ + margin: 8px 0px; + padding: 0px; +} +.mdc_config_root .tag_table .table{ + width: auto; + display: inline-block; +} +.mdc_config_root .table tbody tr th, +.mdc_config_root .table tbody tr td{ + border: 1px solid #D5DAEB; +} +.mdc_config_root .table_title tr td{ + height: 47px; + text-align: right; +} +.mdc_config_root .table_body tr td{ + height: 47px; + text-align: center; +} +.mdc_config_root .table_add tr td, +.mdc_config_root .table_del tr td, +.mdc_config_root tr.col_add td, +.mdc_config_root tr.col_del td, +.mdc_config_root tr td.row_add, +.mdc_config_root tr td.row_del{ + cursor: pointer; +} +.mdc_config_root tr.col_add td, +.mdc_config_root tr.col_del td{ + padding: 2px; + height: 30px; +} +.mdc_config_root .table_add tr td, +.mdc_config_root tr.col_add td, +.mdc_config_root tr td.row_add{ + background-color: #77A9FF; + color: #FFFFFF; +} +.mdc_config_root .table_del tr td, +.mdc_config_root tr.col_del td, +.mdc_config_root tr td.row_del{ + background-color: #FA6552; + color: #FFFFFF; +} +.scroll-easy-x{ + overflow-x: auto; + overflow-y: hidden; +} +.scroll-easy-xy{ + overflow: auto; +} +.scroll-easy-x > .scroll-easy-div > table{ + float: left; + margin-bottom: 0px; +} +.mdc_config_root .scroll-easy-xy{ + width: 283px; + height: 150px; +} +.scroll-easy-xy .scroll-easy-div{ + width: 500px; +} +.scroll-easy-xy .scroll-easy-div .table{ + float: left; +} +.mdc_config_root .topology-expand-div{ + width: 100%; +} +.mdc_config_root .table_split{ + margin: 0px; +} +.mdc_config_root .table_split tr td input, +.mdc_config_root .table_split tr td select{ + width: 100px; +} +textarea { + resize: none; /* Disables resizability */ +} + +ul{ + list-style: none; +} + +/* 历史PUE曲线 Author:Eddy Date:2021/05/25 */ +.pue-filter-button{ + height: 30px; + line-height: 30px; + font-size: 20px; +} +.pue-filter-button .date-filter ul li, +.pue-filter-button .detail-filter ul li{ + display: inline-block; + cursor: pointer; +} +.pue-filter-button .date-filter{ + float: left; + margin-left: 20px; +} +.pue-filter-button .date-filter ul li{ + float: left; + width: 50px; + margin: 0px; + text-align: center; + border: 1px solid #D5DAEB; +} +.pue-filter-button .date-filter ul li.active{ + background-color: #0166fe; + color: #FFFFFF; +} +.pue-filter-button .detail-filter{ + float: right; + margin-right: 20px; +} +.pue-filter-button .detail-filter ul li{ + padding: 0px 5px; + font-size: 30px; +} + +/* 3D MDC 组态样式 */ +.sort_mdc > ul > li.sort_cabinet{ + display: inline-block; + width: 26px; + padding: 8px 0px; + text-align: center; + border: 1px solid #247afa; + cursor: pointer; +} +.link_mdc{ + height: 300px; +} +.link_mdc .table, +.link_mdc .table tr th, +.link_mdc .table tr td, +.link_mdc .table tr td input, +.link_mdc .table tr td button{ + font-size: 16px; +} +.link_mdc .table tr th, +.link_mdc .table tr td{ + padding: 4px 8px; + text-align: center; +} + +/* 实时图表 */ +.current_charts{ + position: absolute; + top: 26px; + right: 40px; + font-size: 12px; +} +.current_charts > i.pue{ + cursor: pointer; + border: 1px solid; + border-radius: 5px; + padding: 2px 5px; +} +.current_charts > i.modify{ + cursor: pointer; + padding: 2px 8px 3px 8px; + margin-left: 8px; + border: 1px solid; + border-radius: 5px; + font-size: 16px; +} +/* 实时图表 机柜U位 */ +.u-space-info .mdc-assets-space-body{ + position: absolute; + width: calc(100% - 40px); + margin: 0px 20px; + height: calc(100% - 120px); +} +.u-space-info .u-space-position{ + width: 40px; + height: 1008px; + display: inline-block; + color: #000; + position: initial; +} +.u-space-info .u-space-name{ + width: calc(100% - 45px); + height: 1008px; + display: inline-block; + position: absolute; + background: rgb(0 153 230 / 0.3); +} +.u-space-info .u-space-name .show-assets-device{ + width: 100%; + border: thin solid #66ccff; + background-color: #0099e6; + color: #FFFFFF; + display: flex; + justify-content: center; + align-items: center; +} +.u-space-info .u-space-note{ + text-align: center; + font-size: 18px; +} +.u-space-info .u-space-note ul li{ + display: inline-block; + margin: 4px 8px; +} +.u-space-info .u-space-note ul li span{ + font-weight: 700; + margin-left: 5px; + color: #5cb85c; +} +.assets-button button{ + margin: 0px 5px; +} +.assets-button .assets-center{ + margin-left: calc(50% - 400px); + display: inline; +} +.checkbox.btn-default{ + border-radius: 8px; + padding: 0px; + line-height: 32px; +} +.cursor-pointer{ + cursor: pointer; +} +.u-space-position .u-space-i{ + height: 24px; + display: flex; + align-items: center; + justify-content:center; + border: 1px solid #0099e6; + background-color: transparent; + color: #FFF; + text-align: center +} + +/* 多级下拉选择框(历史信号) */ +.select-casement-tree{ + width: 100%; + height: 37px; + padding: 0px; + background-color: #033085; + border: 1px solid #025aff; + box-shadow: rgba(15, 96, 244, 0.8) 0px 0px 20px; + position: relative; +} +.select-casement-tree > i.fa{ + position: absolute; + top: 0px; + font-size: 20px; + line-height: 37px; + cursor: pointer; +} +.select-casement-tree > i.chevron{ + right: 10px; +} +.select-casement-tree > i.remove{ + right: 40px; +} +.select-casement-wrap{ + position: relative; + padding: 2px 70px 0 0; + cursor: pointer; + overflow: hidden; + height: 36px; +} +.select-casement{ + font-size: 12px; + height: 100%; + overflow: hidden; + margin-bottom: 4px; + min-height: 36px; +} +.select-casement span{ + font-size: 18px; +} +.select-casement span.input-tips{ + float: left; + line-height: 30px; + color: #d6d6d6; + padding: 0px 6px; +} +.select-casement span.input-item{ + width: auto; + margin: 2px 5px; + padding: 0px 6px; + border: 1px solid #d6d6d6; + color: #d6d6d6; + border-radius: 3px; + display: block; + float: left; +} +.select-casement-options{ + background-color: #033085; + border: 1px solid #025aff; + position: absolute; + width: 100%; + z-index: 10; + padding: 6px; + max-height: 300px; + overflow: hidden; +} +.select-casement-options .select-search{ + height: 30px; +} +.select-search > input.form-control{ + border-radius: 2px; + width: 100%; + height: 100%; + font-size: 18px; +} +.select-options{ + font-size: 18px; +} +.select-options ul li span{ + display: block; + cursor: pointer; +} +.select-options .options-left{ + width: 30%; + display: inline-block; + border: 1px solid #5599FD; + vertical-align: top; + padding: 6px 6px; +} +.select-options .options-left .scroll-easy, +.select-options .options-right .scroll-easy{ + max-height: 250px; +} +.select-options .options-right{ + width: calc(70% - 4px); + display: inline-block; + border: 1px solid #5599FD; + margin-left: 4px; + padding: 6px 6px; +} +.select-options ul.options-device > li{ + position: relative; + padding: 2px 6px; +} +.select-options ul.options-device > li:hover, +.select-options ul.options-signal > li:hover, +.select-options ul.options-device > li.active{ + background-color: #237af8; + color: #FFFFFF; +} +.select-options ul.options-device > li > i.fa{ + position: absolute; + top: 0px; + right: 10px; + line-height: 29px; + font-size: 14px; +} +.select-options ul.options-signal > li{ + position: relative; + padding: 2px 6px; +} +.select-options ul.options-signal > li > span{ + margin-left: 24px; +} +.select-options ul.options-signal > li > input[type="checkbox"]{ + position: absolute; + top: 0px; + width: 18px; + height: 18px; + vertical-align: top; +} +/* APP License */ +#app-license.modal-content{ + background-color: transparent; + box-shadow: none; + border-radius: 0px; +} +#app-license table.body_transparent{ + width: 100%; +} +#app-license input, +#app-license button{ + border-radius: 0px; + box-shadow: none; +} +#app-license table.body_transparent td.title{ + padding-right: 16px; + text-align: right; + width: 40%; +} +#app-license table.body_transparent td.button{ + padding-left: 16px; + width: 40%; +} +#app-license input[type="file"]{ + padding-top: 0px; + padding-bottom: 0px; + line-height: 34px; + color: #fff; +} +#app-license .modal-footer{ + text-align: center; +} + +/* 遥控遥调组态 */ +.control-meaning .control-label{ + line-height: 70px; +} +.control-meaning .meaning-select{ + height: 39px; + padding-top: 4px; +} + +/* 巡逻遮蔽层 */ +#patrol-layer{ + position: absolute; + top: 0px; + width:100%; + height:100%; + z-index: 999; +} +#patrol-layer > .layer-text{ + text-align: center; + margin-top: 60px; + font-size: 24px; +} +#menu{ + cursor: pointer; +} +#model i{ + cursor: pointer; +} +.receiverPanel{ + background-color: #033085; + border: 1px solid #66afe9; + border-top: 0; + outline: 0; + position: absolute; + /* width: calc(100% - 30px); */ + min-width: 100%; + z-index: 10; + padding: 6px; + height: 300px; +} +#menu.active{ + border-color: #66afe9; + border-bottom: 0; + outline: 0; + /* -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%); + box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 6); */ +} +#menu.active i{ + transform: rotate(180deg); +} + +/* 表格透明 */ +.body_transparent, +.body_transparent tbody, +.body_transparent thead, +.body_transparent tr, +.body_transparent tr:nth-child(even), +.body_transparent th, +.body_transparent tbody tr td, +.body_transparent thead tr th{ + background-color: transparent; + border-bottom: 0px; +} + + +.add-item{ + width: 100%; + cursor: pointer; + text-align: center; + line-height: 35px; +} +.collapse-head{ + display: flex; + justify-content: space-between; + align-items: center; + height: 50px; + cursor: pointer; +} +.collapse-head.collapsed > i{ + transform: rotate(-90deg); +} +.label-details{ + padding: 15px; + margin-bottom: 0; + text-align: left; +} +/* 大华摄像头 */ +.view_fun > div > a, +.dh_cameraview > .tree > .tree_body i, +.dh_cameraview > .tree > .tree_body a, +.dh_cameraview > .view > .view_fun > div > a{ + color: #ffffff; + cursor: pointer; +} +.view_fun > div > a:hover, +.dh_cameraview > .tree > .tree_body div:hover > i, +.dh_cameraview > .tree > .tree_body div:hover > a, +.dh_cameraview > .view > .view_fun > div > a:hover{ + color: #0166fe; +} +.view_fun > div, +.dh_cameraview > .view > .view_fun > div{ + border-color: #0166fe; +} + + +/* 门楣管理 */ +.btn-additem{ + background-color: #237af8; + color: #FFF; +} + +.btn-group.open .btn-additem{ + /* background-color:#FFF */ + color: #FFF; + box-shadow:inset 0 3px 7px rgb(0 0 0 / 20%); + +} +.btn-additem:hover{ + color: #FFF; +} +.btn-additem:focus{ + color: #FFF; +} +.dropdown-menu{ + /* box-shadow:inset 0 3px 7px rgb(0 0 0 / 20%); */ +} + +.dropdown-menu > li > a{ + line-height:2.4 +} +.dropdown-menu > li > a:hover{ + background-color: #237af8; +} +.list_setting{ + /* min-height: 50vh; + max-height: 58vh */ + /* height:calc(88vh - 298px); */ + height:calc(96vh - 337px); + /* padding: 0 10vw */ +} +.listItem{ + background-color: rgba(0,0,0,0); + border: 1px solid #025aff; + box-shadow: rgb(15 96 244 / 80%) 0px; + border-radius: 20px; +} + +.itemHeader{ + display: flex; + align-items: center; + justify-content: space-between; + height: 48px; + line-height: 48px; + cursor: pointer; +} +.item_content{ + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-duration: 0s; + animation-duration: 0s; +} +.nova_content{ + height: calc(100vh - 266px); + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + /* padding: 20px 10vw 0 10vw; */ +} +.collapsed >div>.close_item_ico{ + transform: rotate(-90deg); +} +.collapsed{ + border-radius: 20px; +} +#novaMain .fa-trash-o{ + font-size:medium; +} +#novaMain .fa-trash-o:hover{ + color: red; +} +.collapse.in{ + +} + +.nova_canvas{ + position: absolute; + display: block; + left: 73.5%; + z-index: 999; + /* background-color: white; */ +} +.nova_canvas > canvas{ + /* background-color: white; */ +} +.locate_canvas{ + width: 40px; + height: 40px; + font-size: 20px; + text-align: center; +} +.locate_canvas > a{ + display: block; + width: 100%; + height: 100%; + line-height: 40px; + /* border: 1px solid #025aff; */ + background-color: #007dfa; + /* box-shadow: rgb(15 96 244 / 80%) 0px; */ + border-radius: 20px; + color: #ffffff; + +} +.nova_canvas:hover > canvas{ + display: block !important +} +.locate_canvas:hover > a{ + background-color: rgba(2, 46, 141, 0.6); +} +.locate_canvas.active > a{ + border: 1px solid #025aff; + box-shadow: inset 0px 0px 10px rgb(2, 46, 141, 0.6); + background-color: rgba(2, 46, 141, 0.6); +} +.location_ipt:checked{ + background-color: #010a2b; +} +.font_style_Nav{ + font-size: 20px; + height: 39px; + text-align: left; + align-items:center; +} +.font_style_Nav>label{ + display: inline-block; + /* width: 39px; + height: 37px; + line-height:37px; */ + border: 1px solid #00000000; + cursor:pointer; + text-align: center; +} +/* .font_style_Nav>li.active{ + background-color: #000000; +} */ +.font_style_Nav>label:hover{ + border: 1px solid #000000; +} +.font_style_Nav>label>i{ + display: inline-block; + width: 39px; + height: 39px; + line-height: 39px; + +} +.canvas-container{ + width: 50px; +} +.font_style_Nav input[type="checkbox"]{display:none;} +.font_style_Nav input[type="checkbox"]:checked + i{background:#007dfa;color: white;} + + +/* 实时图表 刻度 */ +.chart-body > .scale{ + height: calc(100% - 50px); + margin: 10px 0px; + position: relative; +} +.chart-body > .scale > .scale-cell > div{ + display: inline-block; +} +.chart-body > .scale > .scale-cell > .cell-color{ + width: 20px; + height: 100%; + margin-left: calc(50% - 10px); +} +.chart-body > .scale > .scale-cell.cell-head > .cell-color{ + border-top-left-radius: 20px; + border-top-right-radius: 20px; +} +.chart-body > .scale > .scale-cell.cell-tail > .cell-color{ + border-bottom-left-radius: 20px; + border-bottom-right-radius: 20px; +} +.chart-body > .scale > .scale-cell{ + position: relative; +} +.chart-body > .scale > .scale-cell > .cell-title{ + position: absolute; + top: calc(50% - 8px); + left: calc(50% - 50px); +} +.chart-body > .scale > .scale-cell > .cell-value{ + position: absolute; + top: -10px; + margin-left: 8px; +} +.chart-body > .scale > .scale-cell > .cell-value.min-value{ + position: absolute; + top: auto; + bottom: -10px; + margin-left: 8px; +} +.chart-body > .scale > .current-value{ + position: absolute; + left: calc(50% + 10px); + bottom: calc(100% - 12.5px); + width: 100%; + z-index: 1; +} +.chart-body > .scale > .current-value > span{ + display: block; + width: 0; + height: 0; + border:10px solid transparent; + border-left-color:red; + display: inline-block; +} +.chart-body > .scale > .current-value > .value{ + display: inline-block; + vertical-align: top; + background-color: #0166fe; + padding: 2px 4px; +} + +/* 功能License */ +.function-license .info, +.function-license .function{ + display: inline-block; + height: 400px; +} +.function-license .info > table, +.function-license .function > table{ + font-size: 16px; + width: 100%; +} +.function-license .info > table tr > td.title{ + width: 150px; + text-align: right; +} +.function-license .info > table tr > td.input{ + padding: 0px 16px; +} +.function-license .function > table tr > th, +.function-license .function > table tr > td{ + text-align: center; +} +.function-license .function > table tr:hover{ + background-color: #007dfa; +} +/* 网络配置 */ +.network_config, +.network_config > .panel-body > .tab-content > .panel{ + background-color: transparent; + box-shadow: none; + border-radius: 0px; +} + +input[title="alarmCheckbox"]{ + visibility: hidden; + display: none; +} +input[title="alarmCheckbox"]:checked + label:after{ + position: absolute; + font-family: 'Glyphicons Halflings'; + content: "\e013"; + font-size: 12px; + color: #fff; + line-height: 38px; + left: 10px; +} +.alarmlabel{ + position: relative; + display: inline-block; + vertical-align: middle; + cursor: pointer; + height: 34px; + width: 34px; + font-size: 38px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.alarmlabel > i{ + position: absolute; +} + +/* 告警建议库 */ +.uploadFile{ + max-height: 100px; +} +.uploadFile div{ + display: flex; + justify-content: space-between; + align-items: baseline; + width: 100%; + text-align:left +} +.uploadFile i:hover{ + cursor:pointer; + color: red; +} + +.uploadFile label{ + max-width: 90%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + + +.file_div{ + display: inline-flex; + flex-flow: wrap; + justify-content: start; + margin: 0 15%; + max-width: calc(100% - 60px); +} +.file_container{ + position: relative; + width: 100px; + height: 100px; + cursor: pointer; + transition:0.4s +} +.file_container:hover { + transform: translateY(-10px); +} +.file_container img{ + width: 100%; + height: auto; +} +.file_container .file-wrap{ + height: 0; + width: 100%; + overflow: hidden; + background: rgba(0, 0, 0, 0.3); + text-align: center; + transition:0.4s; + position: absolute; + bottom: 0; + /* line-height: 90px; */ +} +.file_container:hover .file-wrap{ + height: 100px; +} +.file-wrap .file-action{ + height: 58px; + line-height: 80px; +} +.file-action a{ + color: #53b3f3; +} +.file-action a:hover{ + color: #007dfa; +} +.file-wrap .file-name{ + position: absolute; + bottom: 2px; + max-height: 40px; + width: 100px; + word-wrap: break-word; + white-space: break-spaces; + overflow: hidden; + text-overflow: ellipsis; + font-size: 10px; +} +.download-file{ + display: block; + width: 100px; + height: 100px; + position: absolute; + bottom: 0; + text-align: center; + line-height: 126px; +} +.img-file{ + width: 100px; + height: 100px; + line-height: 100px; +} + +.bigImg{ + width: auto; + height: 75%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%,-50%); +} +.opacityBottom{ + width: 100%; + height: 100%; + position: fixed; + background: rgba(0, 0, 0, 0.8); + z-index: 9999; + top: 0; + left: 0; +} + +tbody .ellipsis-single{ + max-width: 160px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/* RTSP新视频 */ +.webRtcPlayer { + position: absolute; + width: calc(100% - 428px); + height: calc(100% - 51px); + background-color: transparent; +} +.webRtcPlayer video{ + object-fit:fill; + position: relative; + height: 100%; + width: 100%; + /* border: 1px solid #FFCC00; */ +} + +/* 数据变化记录组态 */ +.data-change-filter .table i.fa{ + font-size: 20px; +} +.data_change > .data_change_title > .fa{ + color: #62DBED; + margin-right: 16px; +} +.data_change > .data_change_title > .fa-sort-desc{ + float: right; +} +.data_change > .data_change_line{ + display: block; + height: 1px; + width: 100%; + background: linear-gradient(to right,rgba(96, 216, 234, 0.2),rgba(96, 215, 234,1)); +} +.data_change > .data_change_body > .content{ + margin: 16px 0px; + padding: 8px 8px; + background-image: linear-gradient(to right, rgba(6,33,131,0.7),rgba(6,33,131,0.3)); +} +/* 自定义 可移除标签 */ +div.e_tab{ + border: 2px solid #4c8def; + background-color: #0166fe; + display: inline-block; + padding: 4px 8px; + margin: 2px 2px; + cursor: pointer; +} +div.e_tab i.fa{ + font-size: 20px; + vertical-align: bottom; +} +div.e_tab:hover i.fa{ + color: #f4455a; +} + +/* 设备抄表 */ +.fa-checkGroup{ + width: 32px; + line-height: 40px; + vertical-align: middle; + font-size: 23px; + cursor: pointer; + user-select: none; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + -o-user-select:none; +} + +.single-radio { + position: relative; + margin: 0 !important; + cursor: pointer; + vertical-align: middle; +} +.single-radio:before, +.single-radio:after { + height: 100%; + width: 100%; + border-radius: 50%; + content: ""; + position: absolute; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + -ms-border-radius: 50%; + -o-border-radius: 50%; +} +.single-radio:after { + background-color: #58e517; + transform: scale(0, 0); + -webkit-transform: scale(0, 0); + -moz-transform: scale(0, 0); + -ms-transform: scale(0, 0); + -o-transform: scale(0, 0); + transition: all 0.25s cubic-bezier(0.75, 0.01, 0.48, 2); + -webkit-transition: all 0.25s cubic-bezier(0.75, 0.01, 0.48, 2); + -moz-transition: all 0.25s cubic-bezier(0.75, 0.01, 0.48, 2); + -ms-transition: all 0.25s cubic-bezier(0.75, 0.01, 0.48, 2); + -o-transition: all 0.25s cubic-bezier(0.75, 0.01, 0.48, 2); +} + +.single-radio:before { + background-color: #033085; + box-shadow: 0 0 0 1px #fbfbfb; + transition: all 0.25s ease-in-out; + -moz-transition: all 0.25s ease-in-out; + -o-transition: all 0.25s ease-in-out; + -webkit-transition: all 0.25s ease-in-out; + -ms-transition: all 0.25s ease-in-out; +} + +.single-radio:checked:after { + -moz-transform: scale(0.75, 0.75); + -ms-transform: scale(0.75, 0.75); + -webkit-transform: scale(0.75, 0.75); + -o-transform: scale(0.75, 0.75); + transform: scale(0.75, 0.75); +} +.check-box:before, +.check-box:after{ + height: 100%; + width: 100%; + border-radius: 0; + content: ""; + position: absolute; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; +} + +.flex-around{ + display: flex; + justify-content: space-around; +} +.half-width{ + width: 50%; +} + +/* 图表配置 */ +.history_chart_config i.fa-times-circle{ + color: #c9302c; +} +.history_chart_config i.fa-times-circle:hover{ + color: #cf514d; +} +.history_chart_config i.fa-plus-circle{ + color: #0084D7; +} +.history_chart_config i.fa-plus-circle:hover{ + color: #2495db; +} + +/* 抓拍 */ +input[id='switch-thin']{ + border: 0 !important; + width: 50px !important; + height: 24px !important; + border-radius: 30px !important; + background-color: #a2a2a5 !important; + -webkit-border-radius: 30px !important; + -moz-border-radius: 30px !important; + -ms-border-radius: 30px !important; + -o-border-radius: 30px !important; +} +input[id='switch-thin']:before{ + width: 18px; + height: 18px; + border-radius: 16px; + top: 3px; + left: 3px; + background: #fdffff; + box-shadow: none; +} +input[id='switch-thin']:checked{ + background-color: #20d36c !important; +} +input[id='switch-thin']:checked:before{ + left: 28px; + background: #fdffff; +} + +/* 新拓扑图 */ +tbody > tr > td.addbutton{ + cursor: pointer; + font-size: 25px; + padding: 0; +} +tbody > tr > .addbutton:hover{ + color:rgb(150, 150, 150); +} +tbody > tr > .addbutton:hover div{ + background-color: rgba(255, 255, 255, 0.03); +} \ No newline at end of file diff --git a/applications/WebConfigure/web/favicon.ico b/applications/WebConfigure/web/favicon.ico new file mode 100644 index 0000000..a675b6e Binary files /dev/null and b/applications/WebConfigure/web/favicon.ico differ diff --git a/applications/WebConfigure/web/fsu_model/css/fsu.css b/applications/WebConfigure/web/fsu_model/css/fsu.css new file mode 100644 index 0000000..0905d18 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/css/fsu.css @@ -0,0 +1,511 @@ +*, +body{ + color: #1d1818; + font-family: 'Microsoft Yahei'; + text-shadow: none; +} + +/*#region 背景图 */ +.Body-Background, +.loginbody{ + background: url(../../img/fsu_loginbg.jpg) left top/cover no-repeat !important; +} + +.Login-Background, +.login-bg{ + background: url(../../img/fsu_logininfo.png) no-repeat !important; +} + +.login_pannel{ + position: absolute; + top: 40%; + right: 17%; +} + +.body_bg{ + background: url(../../img/fsu_bg.jpg) no-repeat center/100% 100% !important; + height: 100%; + width: 100%; +} + +.page-load .loading-bg{ + background: url(../../img/fsu_loadingbg.png) no-repeat !important; +} +.page-load .background span{ + color: #1d1818; +} +/*#endregion */ + +/*#region 输入控件 */ +/* 输入框棱角统一 */ +input, +textarea, +input[type="text"], +input[type="password"], +input.btn-default, +.form-control, +.alarm_table_body input[title="table-filter"], +.form-signin .input-group input, +.alarm-remark, +select.btn-default{ + color: #1d1818; + border-radius: 4px; + background-color: white; + padding-left: 16px; + border: 1px solid rgb(68, 142, 254); + font-weight: normal; + box-shadow: none; +} +input:focus-visible, +textarea:focus-visible, +input[type="text"]:focus-visible, +input[type="password"]:focus-visible, +.alarm_table_body input[title="table-filter"]:focus-visible, +.form-signin .input-group input:focus-visible, +.alarm-remark:focus-visible{ + outline-color: rgb(68, 142, 254); +} + +input.btn-default:hover, +input.btn-default:focus, +select.btn-default:hover, +select.btn-default:focus{ + color: #1d1818; + background-color: white; + box-shadow: none; +} + +/* 多级联动选择框 */ +.select-casement-tree, +.select-casement-options{ + background-color: white; + box-shadow: none; +} +.select-casement span.input-tips{ + color: #1d1818; +} +.select-casement span.input-item{ + color: #1d1818; + border: 1px solid #025aff +} + +.select-options ul.options-device > li:hover, +.select-options ul.options-signal > li:hover, +.select-options ul.options-device > li.active, +.select-options ul.options-device > li:hover > span, +.select-options ul.options-device > li:hover > i.fa, +.select-options ul.options-device > li.active > span, +.select-options ul.options-device > li.active > i.fa, +.select-options ul.options-signal > li:hover > span{ + background-color: #237af8; + color: #FFFFFF; +} +/* 禁用的控件 */ +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control{ + background-color: #ccc; + border: 1px solid #999; +} + +.templateProperty{ + background-color: white; +} +/*#endregion */ + +/*#region 按钮 */ +.btn, +.btn-default, +.btn-info, +.btn-primary, +.btn-success, +.btn-warning, +.btn-danger{ + border-width: 1px; + border-radius: 4px; +} + +.btn, +.btn-default, +.btn-info{ + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn:hover, +.btn-default:hover, +.btn-info:hover{ + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-primary{ + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:hover{ + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-success{ + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover{ + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-warning{ + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover{ + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-danger{ + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover{ + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.modal-content button.close{ + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.modal-content button.close:hover{ + background-color: #c9302c; + border-color: #ac2925; +} +.btn > i, +.modal-content button.close i{ + color: white; +} + +/* 时间控件 */ +.datepicker>table>thead>tr>th>.btn-default, +.datepicker>table>tbody>tr>td>.btn-default{ + background-color: #f5f6fc; + color:#1d1818; +} +.datepicker>table>tbody>tr>td>.btn-primary{ + background-color: #f5f6fc; +} +/*#endregion */ + +/*#region 功能栏 */ +.navbar{ + background-color: white; +} +.menu_bar{ + background-image: linear-gradient(to right,#2281fc, #2281fc); +} + +.navbar-header .logotitle, +.menu_bar i{ + color: white; +} + +.dropdown > a, +.dropdown > a > i, +.dropdown-menu > ul > li > a, +.dropdown-menu > ul > li > a > i{ + color: #1d1818; +} +.dropdown-menu, +.nav > li > a.servertime:hover, +.nav .open > a.servertime{ + background-color: white; +} +.nav > li > a:hover, +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus, +.navbar-top-links .dropdown-menu li > a:hover{ + background-color: rgb(91 192 222 / 50%); +} + +.sidebar-nav .device-li{ + height: 38px; +} +.sidebar-nav .device-li.chevron{ + height: 24px; +} +.sidebar-nav .device-li > a{ + width: 100%; + padding: 8px 8px 8px 70px; + display: inline-block; + cursor: pointer; +} +.sidebar-nav .device-li > a.chevron{ + padding: 0px; + text-align: center; +} + +.sidebar ul li a.active{ + background: url(../../img/MenuBar/fsu_bg.png) left; + background-size: calc(100% - 20px) 50px; +} + +#alarmCount { + background-color: #E64E5B; +} +.spop-icon+.spop-body{ + color: white; +} +/*#endregion */ + +/*#region 表格 */ +table, +.alarm_table, +.table_body thead, +.table_body tbody, +table thead, +table tbody, +.table tr:nth-child(odd), +.table tr:nth-child(even), +.rights-list .ul > li:nth-child(odd){ + background-color: transparent; +} +.table > thead > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td{ + border-bottom: 1px solid rgb(68, 142, 254); +} +.table > body > tr:nth-child(even), +.table > body > tr.even, +.rights-list .ul > li:nth-child(even){ + background-color: #e3e8f9; +} + +.table-bordered{ + border-color: transparent; +} +.modal .table-bordered{ + border: 1px solid rgb(68, 142, 254); +} + +.table-hover > tbody > tr:hover{ + background-color: transparent; +} +/*#endregion */ + +/*#region 布局 */ +.modal-content, +.dialog_box, +.panel-default{ + background-color: white; + box-shadow: 0px 0px 20px 0px rgb(32 100 202 / 20%); + border-radius: 4px; +} +.dialog_box .alarm_table_body{ + border-bottom: 0px; +} + +.modal-content .modal-header, +.dialog_box .alarm_table_body{ + border-bottom: 1px solid #D5DAEB; +} + +.nav-tabs a, +.page-header{ + color: #1d1818; +} +.nav-tabs > li > a{ + background-color: white; + border-bottom: 1px solid #0a1e65; +} +/*#endregion */ + +/*#region 设备详情 */ +.panel-default > .panel-heading{ + background-color: white; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.panel-default > .panel-heading, +.panel-default > .panel-heading > i{ + color: #1d1818; +} + +.device-info .panel-heading{ + cursor: pointer; +} + +.device-controls .controls{ + margin: 8px; +} +.device-controls .controls > .control{ + display: inline-block; + margin: 8px 16px; +} +.device-controls .controls > .control > button.btn{ + padding: 6px 20px; +} + +.text-muted, +.text-muted i{ + color: #777; +} +.text-success, +.text-success i { + color: #3c763d; +} +.text-danger, +.text-danger i { + color: #a94442; +} +/*#endregion */ + + +/*#region 其他 */ +/* ECharts图表 */ +.charts_div .charts_a>div:nth-child(1){ + background-color: white; + box-shadow: none; +} + +/* 配置管理 */ +.ExpressionSymbol li{ + color: white; +} +.div_content{ + background-color: white; + box-shadow: 0px 0px 20px 0px rgb(32 100 202 / 20%); +} + +/* 接口配置 */ +.content_message{ + background-color: #ccc; + border: 1px solid #999; + box-shadow: 0px 0px 20px 0px rgba(153, 153, 153, 0.2); +} + +/* 告警联动 */ +div.e_tab sapn, +div.e_tab i{ + color: white; +} + +/* 门禁管理 / 组态页面配置 */ +.time_set_bg, +.panel{ + background-color: transparent; +} +.timeGroupCheck label i{ + color: #1d1818; +} +.timeGroupCheck input[type="checkbox"]:checked + i{ + color: white; +} +.export-configure, +.import-configure, +.not-fsu{ + display: none; +} +/* 校时 */ +.input-group-addon{ + background-color: #337ab7; + border-color: #2e6da4; +} +.input-group-addon span{ + color: white; +} +/* 系统操作 */ +#ControlDoor .td1{ + background-color: #ccc; +} +/* 告警等级配置 */ +input:read-only{ + background-color: transparent; + border: 1px solid rgb(68, 142, 254); +} + +/* 告警弹出框 */ +#pop, +#popHead{ + border: 1px solid #999; + box-shadow: 0px 0px 20px 0px rgba(153, 153, 153, 0.2); +} +#pop{ + border-radius: 4px; +} +#popHead{ + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +#pop, +#popHead, +#popContent dl{ + background-color: white; +} +#popHead #popClose, +#popHead h2, +#popIntro a, +#popTime{ + color: #1d1818; +} +/* 权限管理 */ +.rights-body .rights-button{ + background-color: white; +} +.authority-option .ul li > i.fa{ + color: #1d1818; +} +.authority-option .authority-checked > i.fa{ + color: #0075ff; +} +/* 活动告警 */ +.dropdown-menu > li > a, +.btn-default.active span, +.btn-group > .btn.active span{ + color: #1d1818; +} +.pagination > .active > a span, +.btn-group > .btn span{ + color: white; +} +/* 视频 */ +.camera-menu .title{ + background-color: white; +} +.camera-menu .title span, +.camera-menu .tree ul li, +.camera-menu .camera_color{ + color: #1d1818; +} +.camera-menu .tree > ul > li:hover{ + background-color: rgb(91 192 222 / 50%); + color: white; +} + +.sk-wave .sk-rect{ + background-color: #1d1818; +} + +#key-board .keyboard_box{ + background: #f4f4f4; +} +#key-board .c_panel{ + background-color: #f4f4f4; +} +#key-board input{ + padding: 0px; + border-radius: 0px; + border-width: 0px; + background-color: #d8d8d8; + color: #000; +} +/*#endregion */ \ No newline at end of file diff --git a/applications/WebConfigure/web/fsu_model/js/app.js b/applications/WebConfigure/web/fsu_model/js/app.js new file mode 100644 index 0000000..aa007bf --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/js/app.js @@ -0,0 +1,690 @@ +//debugger; +'use strict'; + +angular.module('nurseApp', [ + 'ui.router', + 'ngTable', + 'ngSanitize', + 'ngCsv', + 'ngAnimate', + 'mgcrea.ngStrap', + 'isteven-multi-select', + 'nurseApp.filters', + 'nurseApp.services', + 'nurseApp.directives', + 'nurseApp.controllers', + 'oc.lazyLoad' +]).run(['$rootScope', '$state', '$stateParams', 'userService', + function ($rootScope, $state, $stateParams, userService) { + + $rootScope.$state = $state; + $rootScope.$stateParams = $stateParams; + + $rootScope.$on('$stateChangeStart', function (event, toState, toStateParams) { + //If in cameraview page,stop playing video. + $(".fullscreen").hide(); + switch (toState.name) { + case "cameraview": + case "camerarecord": + for (var i = 0; i < 16; i++) { + var videostate = WebVideoCtrl.I_GetWindowStatus(i); + if (videostate == 0) continue; + WebVideoCtrl.I_Stop(i); + } + break; + case "device.diagram": + case "adevice.diagram": + $(".fullscreen").show(); + break; + } + var token = localStorage.getItem("token"); + userService.isLogin(token).then(function (data) { + if (data != "TRUE") { + event.preventDefault(); + $(window.location).attr("href", "login.html"); + } + }); + }); + } +] +) + .config( + ['$stateProvider', '$urlRouterProvider', + function ($stateProvider, $urlRouterProvider, plUploadServiceProvider) { + $urlRouterProvider.otherwise('/'); + // Use $stateProvider to configure your states. + $stateProvider + .state("home", { + url: "/", + views: { + 'container': { + templateUrl: 'partials/alarm.html' + } + } + }) + .state('alarm', { + url: '/alarm/{alarmLevel:int}', + views: { + 'container': { + templateUrl: 'partials/alarm.html' + } + }, + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/alarmExpertConfigCtrl.js'] + }) + }] + } + }) + .state('device.diagram', { + url: '/diagram', + parent: 'device', + params: { + 'diagram': null + }, + views: { + 'diagram': { + templateUrl: 'partials/diagram.html' + } + } + }) + .state('mdcpower', { + url: '/mdcpower', + views: { + 'container': { + templateUrl: 'partials/mdcpower.html'/*双排:partials/mdcpower.html 单排:partials/mdcpowerone.html*/ + } + } + }) + .state('mdctemp', { + url: '/mdctemp', + views: { + 'container': { + templateUrl: 'partials/mdctemp.html' + } + } + }) + .state('mdcalarm', { + url: '/mdcalarm', + views: { + 'container': { + templateUrl: 'partials/mdcalarm.html'/*双排:partials/mdcalarm.html 单排:partials/mdcalarmone.html*/ + } + } + }) + .state('configMDC', { + url: '/configMDC', + views: { + 'container': { + templateUrl: 'partials/configMDC.html'/*双排:partials/configMDC.html 单排:partials/configMDCone.html*/ + } + } + }) + .state('device', { + url: '/device/:deviceBaseTypeId', + params: { + 'diagramview': 'device.diagram' + }, + views: { + 'container': { + templateUrl: 'partials/deviceDiagramView.html' + } + } + }) + .state('adevice', { + url: '/adevice/:deviceBaseTypeId', + params: { + 'diagramview': 'adevice.diagram' + }, + views: { + 'container': { + templateUrl: 'partials/adeviceDiagramView.html' + } + } + }) + .state('adevice.diagram', { + url: '/adiagram', + parent: 'adevice', + params: { + 'diagram': null + }, + views: { + 'diagram': { + templateUrl: 'partials/diagram.html' + } + } + }) + .state('config', { + url: '/config', + views: { + 'container': { + templateUrl: 'fsu_model/partials/config.html' + } + } + }) + .state('config3d', { + url: '/config3d', + views: { + 'container': { + templateUrl: 'partials/editor.html' + } + } + }) + .state('viewer3d', { + url: '/viewer3d', + views: { + 'container': { + templateUrl: 'partials/viewer.html' + } + } + }) + .state('debug', { + url: '/debug', + views: { + 'container': { + templateUrl: 'partials/debug.html' + } + } + }) + .state('employee', { + url: '/employee', + views: { + 'container': { + templateUrl: 'partials/employee.html' + } + } + }) + .state('lampTape', { + url: '/lampTape', + views: { + 'container': { + templateUrl: 'partials/lampTape.html' + } + } + }) + .state('protocol', { + url: '/protocol', + views: { + 'container': { + templateUrl: 'partials/protocol.html' + } + } + }) + .state('alarmrecord', { + url: '/alarmrecord', + views: { + 'container': { + templateUrl: 'partials/alarmrecord.html' + } + } + }) + .state('signalrecord', { + url: '/signalrecord', + views: { + 'container': { + templateUrl: 'partials/signalrecord.html' + } + } + }) + .state('cardsrecord', { + url: '/cardsrecord', + views: { + 'container': { + templateUrl: 'partials/cardsrecord.html' + } + } + }) + .state('deviceInfo', { + url: '/deviceInfo/{deviceId:int}', + views: { + 'container': { + templateUrl: 'fsu_model/partials/deviceInfo.html' + } + } + }) + .state('cameraview', { + url: '/cameraview', + views: { + 'container': { + templateUrl: 'partials/cameraview.html' + } + } + }) + .state('dhCameraview', { + url: '/dhCameraview', + views: { + 'container': { + templateUrl: 'partials/dhCameraview.html' + } + } + }) + .state('camerarecord', { + url: '/camerarecord', + views: { + 'container': { + templateUrl: 'partials/camera.html' + } + } + }) + .state('notify', { + url: '/notify', + views: { + 'container': { + templateUrl: 'partials/notify.html' + } + } + }) + .state('netnotify', { + url: '/netnotify', + views: { + 'container': { + templateUrl: 'partials/netnotify.html' + } + } + }) + .state('kpi', { + url: '/kpi/{id:int}', + views: { + 'container': { + templateUrl: 'partials/kpi.html' + } + }, + controller:'kpiCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/historyChartConfigCtrl.js'] + }) + }] + } + }) + .state('timeSetting', { + url: '/timeSetting', + views: { + 'container': { + templateUrl: 'partials/timeSetting.html' + } + } + }) + .state('about', { + url: '/about', + views: { + 'container': { + templateUrl: 'partials/about.html' + } + } + }) + .state('videoCamera', { + url: '/videoCamera', + views: { + 'container': { + templateUrl: 'partials/VideoCamera.html' + } + } + }) + .state('temperature', { + url: '/temperature', + views: { + 'container': { + templateUrl: 'partials/temperature.html' + } + } + }) + .state('doorControl', { + url: '/doorControl', + params: { + 'tab': 1, + 'tabs': 0 + }, + views: { + 'container': { + templateUrl: 'partials/doorControl.html' + } + } + }) + .state('zkDoorControl',{ + url: '/zkDoorControl', + params: { + 'tab': 1, + 'tabs': 0 + }, + views: { + 'container': { + templateUrl: 'partials/zkDoorControl.html' + } + } + }) + .state('doorControlGovern', { + url: '/doorControlGovern', + views: { + 'container': { + templateUrl: 'partials/doorControlGovern.html' + } + } + }) + .state('alarmLinkage', { + url: '/alarmLinkage', + views: { + 'container': { + templateUrl: 'partials/alarmLinkage.html' + } + } + }) + .state('assetsManager', { + url: '/assetsManager', + views: { + 'container': { + templateUrl: 'partials/assetsManager.html' + } + } + }) + .state('assetRackManager', { + url: '/assetRackManager', + views: { + 'container': { + templateUrl: 'partials/assetRackManager.html' + } + } + }) + .state('userOperationRecord', { + url: '/userOperationRecord', + views: { + 'container': { + templateUrl: 'partials/userOperationRecord.html' + } + } + }) + .state('assetRackHistory',{ + url: '/assetRackHistory', + views: { + 'container': { + templateUrl: 'partials/assetRackHistory.html' + } + } + }) + .state('otherModule', { + url: '/otherModule', + views: { + 'container': { + templateUrl: 'fsu_model/partials/otherModule.html' + } + } + }) + .state('mdcSignalRecord', { + url: '/mdcSignalRecord', + views: { + 'container': { + templateUrl: 'partials/mdcSignalRecord.html' + } + } + }) + .state('nodeTemp', { + url: '/nodeTemp', + views: { + 'container': { + templateUrl: 'partials/nodeTemperature.html' + } + } + }) + .state('structure', { + url: '/structure/{deviceBaseTypeId:int}', + params: { + 'diagramview': 'structure' + }, + views: { + 'container': { + templateUrl: 'partials/structure.html' + } + } + }) + .state('cameraViewVlc', { + url: '/cameraViewVlc', + views: { + 'container': { + templateUrl: 'partials/cameraViewVlc.html' + } + } + }) + .state('mdcAssetsManager', { + url: '/mdcAssetsManager', + views: { + 'container': { + templateUrl: 'partials/mdcAssetsManager.html' + } + } + }) + .state('mdcAssetsDisplay', { + url: '/mdcAssetsDisplay', + views: { + 'container': { + templateUrl: 'partials/mdcAssetsDisplay.html' + } + } + }) + .state('mdcAssetsDisplay2', { + url: '/mdcAssetsDisplay2', + views: { + 'container': { + templateUrl: 'partials/mdcAssetsDisplay2.html' + } + } + }) + .state('authority', { + url: '/authority', + views: { + 'container': { + templateUrl: 'partials/authority.html' + } + } + }) + .state('authoritySetting', { + url: '/authoritySetting', + views: { + 'container': { + templateUrl: 'partials/authoritySetting.html' + } + } + }) + .state('mdcdiagram', { + url: '/mdcdiagram/{fileid:int}', + views: { + 'container': { + templateUrl: 'partials/mdcDiagram.html' + } + } + }) + .state('appLicense', { + url: '/appLicense', + views: { + 'container': { + templateUrl: 'partials/appLicense.html' + } + } + }) + .state('alarmLevelConfig', { + url: '/alarmLevelConfig', + views: { + 'container': { + templateUrl: 'partials/alarmLevelConfig.html' + } + } + }) + .state('analogDeviceConfig', { + url: '/analogDeviceConfig', + views: { + 'container': { + templateUrl: 'partials/analogDeviceConfig.html' + } + } + }) + .state('patrolConfig', { + url: '/patrolConfig', + views: { + 'container': { + templateUrl: 'partials/patrolConfig.html' + } + } + }) + .state('interfaceConfig', { + url: '/interfaceConfig', + views: { + 'container': { + templateUrl: 'partials/interfaceConfig.html' + } + }, + controller:'interfaceConfigCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/interfaceConfigCtrl.js'] + }) + }] + } + }) + .state('mosaicVideo', { + url: '/mosaicVideo', + views: { + 'container': { + templateUrl: 'partials/mosaicVideo.html' + } + } + }) + .state('newNetNotify', { + url: '/newNetNotify', + views: { + 'container': { + templateUrl: 'partials/newNetNotify.html' + } + } + }) + .state('settingNova', { + url: '/settingNova', + views: { + 'container': { + templateUrl: 'partials/settingNova.html' + } + } + }) + .state('ipSetting', { + url: '/ipSetting', + views: { + 'container': { + templateUrl: 'partials/include/ipSetting.html' + } + } + }) + .state('alarmExpertConfig', { + url: '/alarmExpertConfig', + views: { + 'container': { + templateUrl: 'partials/alarmExpert/alarmExpertConfig.html' + } + }, + controller:'alarmExpertConfigCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/alarmExpertConfigCtrl.js'] + }) + }] + } + }) + .state('shoot', { + url: '/shoot', + views: { + 'container': { + templateUrl: 'partials/shoot.html' + } + } + }) + .state('alarmCapture', { + url: '/alarmCapture', + views: { + 'container': { + templateUrl: 'partials/alarmCapture.html' + } + } + }) + .state('rtspCameraView', { + url: '/rtspCameraView', + views: { + 'container': { + templateUrl: 'partials/rtspCameraView.html' + } + }, + controller:'rtspCameraViewCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/rtspCameraViewCtrl.js'] + }) + }] + } + }) + .state('inspection',{ + url: '/inspection', + views: { + 'container': { + templateUrl: 'partials/equipmentInspection.html' + } + }, + controller:'inspectionCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/inspectionCtrl.js'] + }) + }] + } + }) + .state('historyChartConfig',{ + url: '/historyChartConfig', + views: { + 'container': { + templateUrl: 'partials/historyChartConfig.html' + } + }, + controller:'historyChartConfigCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/historyChartConfigCtrl.js'] + }) + }] + } + }) + .state('intervalClearData',{ + url: '/intervalClearData', + views: { + 'container': { + templateUrl: 'partials/intervalClearData.html' + } + }, + controller:'intervalClearDataCtrl', + resolve:{ + loadMyCtrl:['$ocLazyLoad',function($ocLazyLoad){ + return $ocLazyLoad.load({ + name:'nurseApp', + files:['js/script/intervalClearDataCtrl.js'] + }) + }] + } + }); + } + ]); + +angular.module('loginApp', [ + 'mgcrea.ngStrap', + 'nurseApp.filters', + 'nurseApp.services', + 'nurseApp.directives', + 'nurseApp.controllers' +]); diff --git a/applications/WebConfigure/web/fsu_model/js/controllers.js b/applications/WebConfigure/web/fsu_model/js/controllers.js new file mode 100644 index 0000000..d53184d --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/js/controllers.js @@ -0,0 +1,3121 @@ +angular.module('nurseApp') +// (重写)设备导航栏 +.controller('sidebarCtrl',['$scope', '$rootScope', 'deviceService', + function($scope, $rootScope, deviceService){ + $scope.isExpand = true;// 默认展开 + $scope.SidebarId = localStorage.getItem("SidebarId"); + $scope.SidebarPartId = localStorage.getItem("SidebarPartId"); + + (function(){ + loadSidebar(); + })(); + + function loadSidebar(){ + deviceService.GetShowConfigureMold().then(function (sidebar) { + $scope.DeviceSidebar = sidebar; + if($scope.SidebarId == null && sidebar){ + $scope.SidebarId = sidebar[0].configId; + if($scope.SidebarPartId == null && sidebar[0].parts){ + $scope.SidebarPartId = sidebar[0].parts[0].configId; + }else{ + $scope.SidebarPartId = -1; + } + //localStorage.setItem("SidebarId",$scope.SidebarId); + //localStorage.setItem("SidebarPartId",$scope.SidebarPartId); + } + //console.log(sidebar, $scope.SidebarId, $scope.SidebarPartId); + }); + } + + $rootScope.$on("loadSidebar", function (fun) { + loadSidebar(); + }); + + $scope.sidebarActive = function(item, part){ + if(part == undefined){ + if(item && item.parts){ + $scope.SidebarId = item.configId; + $scope.SidebarPartId = item.parts[0].configId; + window.location.href = '#/deviceInfo/'+item.parts[0].deviceId; + }else{ + $scope.SidebarId = item.configId; + $scope.SidebarPartId = -1; + } + }else{ + $scope.SidebarId = item.configId; + $scope.SidebarPartId = part.configId; + window.location.href = '#/deviceInfo/'+part.deviceId; + } + //localStorage.setItem("SidebarId",$scope.SidebarId); + //localStorage.setItem("SidebarPartId",$scope.SidebarPartId); + }; + } +]) +// (重写)设备详情页(活动告警、实时数据、设备控制) +.controller('deviceInfoCtrl',['$scope', '$rootScope', '$stateParams', '$interval', '$modal', 'deviceService', 'activeSignalService', 'activeDeviceService', 'alarmService', 'baseTypeService', 'userService', 'devcontrolService', 'balert', + function($scope, $rootScope, $stateParams, $interval, $modal, deviceService, activeSignalService, activeDeviceService, alarmService, baseTypeService, userService, devcontrolService, balert){ + (function(){ + if($stateParams.deviceId == 0){ + deviceService.GetShowConfigureMold().then(function (sidebar) { + if(sidebar && sidebar[0].parts){ + $scope.deviceId = sidebar[0].parts[0].deviceId; + loadDeviceInfo(); + loadDeviceControl(); + } + }); + }else{ + $scope.deviceId = $stateParams.deviceId; + loadDeviceInfo(); + loadDeviceControl(); + } + })(); + + function loadDeviceInfo(){ + if(!$scope.deviceId) return; + // 活动告警 + alarmService.getAlarmsByDeviceId($scope.deviceId).then(function (data) { + $scope.alarms = data; + }); + // 实时数据 + if($scope.tableParams){ + var index = ($scope.tableParams.currentPage - 1)*$scope.tableParams.itemsPerPage; + var count = $scope.tableParams.itemsPerPage; + loadDeviceSignal($scope.deviceId, index, count); + } + } + + //#region 活动告警 + $scope.beginEndAlarm = function (uniqueId) { + + $scope.selectedAlarmUniqueId = uniqueId; + //alert($scope.selectedAlarmUniqueId); + + remarkDialog = $modal({ + scope: $scope, + templateUrl: 'partials/alarmRemarkDialog.html', + show: false + }); + + remarkDialog.$promise.then(remarkDialog.show); + }; + + $scope.endEndAlarm = function (note) { + if (note == undefined || note == "") { + balert.show('danger', $scope.languageJson.RoomHome.AlarmTitle.EndAlarm.ReasonError, 3000);//'理由不能为空!' + return; + } + var logonId = localStorage.getItem("username"); + var param = "'" + $scope.selectedAlarmUniqueId + "'|" + logonId + "|" + note; + + alarmService.endAlarm(param).then(function (data) { + remarkDialog.hide(); + }); + }; + //#endregion + + //#region 实时数据 + //分页对象定义 + $scope.filter = { + isQuery: false + }; + $scope.tableParams = { + currentPage: 1,//当前页面 + itemsPerPage: 100,//显示条数 + pagesLength: 10, + totalItems: 0,//总条数 + hint: { + the: $scope.languageJson.Paging.The, + page: $scope.languageJson.Paging.Page, + articel: $scope.languageJson.Paging.Articel, + eachPage: $scope.languageJson.Paging.EachPage, + total: $scope.languageJson.Paging.Total, + noData: $scope.languageJson.Paging.NoData + }, + list: [],//数据集 + perPageOptions: [100, 200, 500, 1000],//显示条数组 + onChange: function (newValue, oldValue) { + if (newValue == undefined) return; + $scope.stop(); + // var index = ($scope.tableParams.currentPage - 1)*$scope.tableParams.itemsPerPage; + // var count = $scope.tableParams.itemsPerPage; + // loadDeviceSignal($scope.deviceId, index, count); + $scope.start(); + } + }; + function loadDeviceSignal(deviceId, index, count){ + activeDeviceService.getActiveDevices().then(function (data) { + var dev = undefined; + data.forEach(function (item) { + if (item.id == $stateParams.deviceId) + dev = item; + }); + if (dev == undefined) return; + + if (dev.status === "Alarm") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Alarm;//"告警中" + if (dev.status === "Normal") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Normal;//"正常运行" + if (dev.status === "Disconnect") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Disconnect;//"已中断" + + dev.colorClass = function () { + if (dev.status === "Alarm") return "text-danger"; + if (dev.status === "Normal") return "text-success"; + if (dev.status === "Disconnect") return "text-muted"; + }; + + dev.iconClass = function () { + if (dev.status === "Alarm") return "fa fa-bell"; + if (dev.status === "Normal") return "fa fa-check"; + if (dev.status === "Disconnect") return "fa fa-times"; + }; + + $scope.device = dev; + }); + activeSignalService.getActiveSignalByDeviceByPage(deviceId, index, count).then(function (signals) { + if ($scope.device && $scope.device.status != undefined && $scope.device.status == "Disconnect") {//设备状态为中断时,所有的信号状态都为中断 + signals.forEach(function (item) { + item.alarmSeverity = -255; + }); + } + $scope.tableParams.list = signals; + //console.log(deviceId, index, count, signals.length); + }); + activeSignalService.getActiveSignalByDeviceTotal(deviceId).then(function (total) { + $scope.tableParams.totalItems = parseInt(total); + $rootScope.$emit('resultTotal',{}); + //console.log($scope.deviceId, total); + }); + } + $scope.getStatusLabel = function (status) { + if (status == 255) + return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Normal;//"正常" + else if (status == -255) + return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Disconnect;//"已中断" + else if (parseInt(status) >= 0 && parseInt(status) <= 3) + return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Alarm;//"告警" + else + return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Loading;//"加载中" + }; + // 信号状态提示 + $scope.getStatusTextClass = function (preClass, status) { + if (status == 255) + return preClass + " text-success"; + else if (status >= 0 && status <= 3) + return preClass + " text-danger"; + else + return "text-muted"; + }; + // 信号状态图标 + $scope.getStatusIconClass = function (status) { + if (status == 255) + return "fa fa-check"; + else if (status >= 0 && status <= 3) + return "fa fa-bell"; + else + return "fa fa-times"; + }; + //#endregion + + //#region 设备控制 + function loadDeviceControl(){ + if(!$scope.deviceId) return; + baseTypeService.GetAllControlMeaningByDeviceId($scope.deviceId,1).then(function(controls){ + $scope.Controls = controls; + //console.log(controls); + }); + } + + var controlSetterDlg = $modal({ + scope: $scope, + templateUrl: 'partials/controlauthorizesetter.html', + show: false + }); + $scope.sendControlClk = function(control){ + var isShow = false; + var value = "0"; + if(control.CommandType == "1"){//遥调 + isShow = false; + value = control.MinValue; + }else{//遥控 + isShow = true; + value = control.ParameterValue; + } + $scope.controlinfo = { + isPwd : true, + isShow : isShow, + pwdType : 'LoginPassword', + Pwd : '', + deviceid : $scope.deviceId, + controlid : control.BaseTypeId, + optionType : value, + optionValue : value, + commdanType : control.CommandType, + min: control.MinValue, + max: control.MaxValue + }; + controlSetterDlg.$promise.then(controlSetterDlg.show); + }; + $scope.sendcontrol = function(){ + var alert = $scope.languageJson.Configuration.RemoteControl.Alert; + var paras = $scope.controlinfo; + var userName = localStorage.getItem("username"); + + userService.changePassword(userName,paras.userpwd).then(function(data){ + if(data == "OK"){ + devcontrolService.senddevcontrol(paras.deviceid,paras.controlid,paras.optionType,userName).then(function(data){ + if(data == "success"){ + balert.show('success', alert.Succeed, 3000);//"下发命令成功!" + controlSetterDlg.hide(); + } + else + balert.show('danger', alert.Failed, 3000);//"下发命令失败!" + }); + }else + balert.show('danger', alert.PasswordError,3000);//'密码不正确,请重新输入!' + }); + } + $scope.changeValue = function(value){ + $scope.controlinfo.optionType = value; + }; + //#endregion + + //#region 定时器 + var stop = undefined; + $scope.start = function () { + if (angular.isDefined(stop)) return; + + loadDeviceInfo(); + + stop = $interval(function () { + loadDeviceInfo(); + }, 3000); + }; + + $scope.stop = function () { + if (angular.isDefined(stop)) { + $interval.cancel(stop); + stop = undefined; + } + }; + + $scope.$on('$destroy', function () { + // Make sure that the interval is destroyed too + $scope.stop(); + }); + //#endregion + } +]) +// (重写)配置管理 +.controller('ConfigCtrl',['$scope', '$rootScope', '$modal', '$filter', 'notifyService', 'stationService', 'equipmentTemplateService', 'TemplateService', 'baseTypeService', 'uploadService', 'monitorUnitService', 'employeeService', 'equipmentService', 'portService', 'samplerUnitService', 'deviceService', 'balert', 'bconfirm', + function($scope, $rootScope, $modal, $filter, notifyService, stationService, equipmentTemplateService, TemplateService, baseTypeService, uploadService, monitorUnitService, employeeService, equipmentService, portService, samplerUnitService, deviceService, balert, bconfirm){ + //#region 1.初始化配置 + //配置分页基本参数 + $scope.paginationConf = { + hint: { + the: $scope.languageJson.Paging.The, + page: $scope.languageJson.Paging.Page, + articel: $scope.languageJson.Paging.Articel, + eachPage: $scope.languageJson.Paging.EachPage, + total: $scope.languageJson.Paging.Total, + noData: $scope.languageJson.Paging.NoData + }, + currentPage: 1, + itemsPerPage: 10, + pagesLength: 10, + totalItems: 0, + equipments: [], + perPageOptions: [10, 20, 30, 40, 50], + onChange: function () { + } + }; + + $scope.equipmentItems = -1; + + //中心 + $scope.center = {}; + $scope.center.centerId = -1; + $scope.center.centerIP = ""; + $scope.center.centerPort = -1; + $scope.center.centerDSIP = ""; + $scope.center.Enable = false; + + //局站 + $scope.station = {}; + $scope.stationId = -1; + $scope.station.stationName = ""; + $scope.station.contactId = -1; + $scope.station.remark = ""; + $scope.station.employee = {}; + + //监控单元 + $scope.monitorUnit = {}; + $scope.monitorUnit.MonitorUnitId = -1; + + //模板 + $scope.equipmentTemplate = {}; + $scope.equipmentTemplate.EquipmentTemplateId = -1; + $scope.equipmentTemplate.EquipmentTemplateName = ""; + + //设备 + $scope.equipment = {}; + $scope.equipment.EquipmentId = -1; + $scope.equipment.EquipmentName = ""; + $scope.equipment.EquipmentType = -1; + $scope.equipment.StationIArrayListd = -1; + $scope.equipment.EquipmentTemplateId = -1; + $scope.equipment.SamplerUnitId = -1; + $scope.equipment.MonitorUnitId = -1; + + //端口 + $scope.portFlag = 0; + $scope.port = {}; + $scope.port.PortId = -1; + $scope.port.MonitorUnitId = -1; + $scope.port.PortNo = -1; + $scope.port.PortType = 0; + $scope.port.Setting = "9600,n,8,1"; + $scope.port.PortTypeVar = {}; + + //采集单元 + $scope.samplerUnit = {}; + $scope.samplerUnit.SamplerUnitId = -1; + $scope.samplerUnit.PortId = -1; + $scope.samplerUnit.MonitorUnitId = -1; + $scope.samplerUnit.Address = 1; + $scope.samplerUnit.DllPath = ""; + $scope.samplerUnit.SamplerId = -1; + $scope.samplerUnit.SamplerType = -1; + $scope.samplerUnit.SamplerUnitName = ""; + + $scope.Template = { + EquipmentCategory: [], + Property: [] + }; + $scope.Signal = { + SignalCategory: [], + SignalType: [], + ChannelType: [], + DataType: [] + }; + $scope.Event = { + EventCategory: [], + StartType: [], + EndType: [], + EventSeverity: [] + }; + $scope.Control = { + ControlCategory: [], + ControlSeverity: [], + CommandType: [], + ControlType: [], + DataType: [] + }; + $scope.seleBaseType = {}; + //#endregion + + //#region 2.初始化数据 + (function(){ + //获取端口类型 + notifyService.getDataItems("39").then(function (data) { + var result = data; + if (result == "fail to get dataItems") { + alert($scope.languageJson.Config.Failed.Title);/*获取端口类型失败,请检查连接是否正常!*/ + } else { + $scope.portTypes = parsePortTypes(data); + } + }); + //进入局站管理页面后,判断局站是否进行初始化,如果没有初始化,初始化局站 + stationService.initStationInfo().then(function (data) { + var result = data; + if (result == "fail to init station info") { + balert.show('danger', $scope.languageJson.Config.Failed.Initialization, 3000);/*'初始化局站失败,请检查连接是否正常!'*/ + } else { + //获取局站数据 + stationService.getStationInfo().then(function (data) { + var result = data; + if (result == "fail to get station info") { + balert.show('danger', $scope.languageJson.Config.Failed.Station, 3000);/*'获取局站信息失败,请检查连接是否正常!'*/ + } else { + getStation(result); + + //获取中心配置 + stationService.getCenterInfo().then(function (data) { + var result = data; + if (result == "fail to get center info") { + balert.show('danger', $scope.languageJson.Config.Failed.Center, 3000);/*'获取中心信息失败,请检查连接是否正常!'*/ + } else { + getCenter(result); + } + }); + + //获取监控单元数据 + monitorUnitService.getMonitorUnit($scope.stationId).then(function (data) { + $scope.monitorUnit = getMonitorUnit(data); + }); + + //获取人员信息 + employeeService.getAllEmployees().then(function (data) { + $scope.employees = parseEmployees(data); + + for (var i = 0; i < $scope.employees.length; i++) { + if ($scope.employees[i].EmployeeId == $scope.station.contactId) { + $scope.station.employee = $scope.employees[i]; + break; + } + } + }); + } + }); + } + }); + + $scope.selectEvent = {}; + //初始化 模板列表 + equipmentTemplateService.getAllEquipmentTemplate().then(function (data) { + $scope.equipmentTemplates = parseEquipmentTemplate(data); + if ($scope.equipmentTemplates[0]) + $scope.selectEvent.EquipmentTemplateId = $scope.equipmentTemplates[0].EquipmentTemplateId; + }); + + //初始化等级信息 + $scope.selectEventSever = {}; + TemplateService.getAllEventSeverity().then(function (data) { + $scope.equipmentEvent = data; + $scope.selectEventSever.EventSeverity = $scope.equipmentEvent[0].EventSeverity; + }); + + function initTemplateDataItem() { + TemplateService.GetDataItemByEntryId("7").then(function (data) { + $scope.Template.EquipmentCategory = data; + }); + TemplateService.GetDataItemByEntryId("9").then(function (data) { + $scope.Template.Property = data; + }); + TemplateService.GetEquipmentBaseType().then(function (data) { + $scope.Template.EquipmentBaseType = data; + }); + TemplateService.GetDataItemByEntryId("17").then(function (data) { + $scope.Signal.SignalCategory = data; + }); + TemplateService.GetDataItemByEntryId("18").then(function (data) { + $scope.Signal.SignalType = data; + }); + TemplateService.GetDataItemByEntryId("22").then(function (data) { + $scope.Signal.ChannelType = data; + }); + TemplateService.GetDataItemByEntryId("70").then(function (data) { + $scope.Signal.DataType = data; + }); + + TemplateService.GetDataItemByEntryId("24").then(function (data) { + $scope.Event.EventCategory = data; + }); + TemplateService.GetDataItemByEntryId("25").then(function (data) { + $scope.Event.StartType = data; + }); + TemplateService.GetDataItemByEntryId("26").then(function (data) { + $scope.Event.EndType = data; + }); + TemplateService.GetDataItemByEntryId("23").then(function (data) { + $scope.Event.EventSeverity = data; + }); + + TemplateService.GetDataItemByEntryId("31").then(function (data) { + $scope.Control.ControlCategory = data; + }); + TemplateService.GetDataItemByEntryId("28").then(function (data) { + $scope.Control.ControlSeverity = data; + }); + TemplateService.GetDataItemByEntryId("32").then(function (data) { + $scope.Control.CommandType = data; + }); + TemplateService.GetDataItemByEntryId("68").then(function (data) { + $scope.Control.ControlType = data; + }); + TemplateService.GetDataItemByEntryId("70").then(function (data) { + $scope.Control.DataType = data; + }); + uploadService.GetAllJsonTemplates().then(function (data) { + $scope.ConfigTemplates = parseJsonTemplate(data); + }); + uploadService.GetAllJsonConfiguration().then(function (data) { + $scope.JsonConfiguration = parseJsonTemplate(data); + }); + + }; + initTemplateDataItem(); + + baseTypeService.getDeviceList().then(function(data){ + $scope.AllDevices = data; + }); + })(); + //解析端口类型数据 + function parsePortTypes(data) { + + var dataArray = []; + var lan = $scope.languageJson.Language; + data.forEach(function (element, index) { + //if (element.ItemId == 1 || element.ItemId == 5 || element.ItemId == 6) + if (element.ItemId == 1 || element.ItemId == 5 || element.ItemId == 6 || element.ItemId == 3 || element.ItemId == 19) { + //只保留串口和网口 + var portType = {}; + portType.PortTypeId = element.ItemId; + if (lan == "Chinese") + portType.PortTypeValue = element.ItemValue; + else + portType.PortTypeValue = element.ItemAlias; + dataArray.push(portType); + } + }); + + return dataArray; + } + // 解析设备模板 + function parseEquipmentTemplate(data) { + var result = []; + if (data) { + data.forEach(function (item) { + if (item.SoName != undefined && item.SoName.indexOf(".") != -1) { + var index = item.SoName.indexOf("."); + item.SoName = item.SoName.substring(0, index) + ".so"; + if(result.length == 0){ + result.push(item); + }else{ + var f = _.findWhere(result, {EquipmentTemplateId:item.EquipmentTemplateId}); + if(f == undefined){ + result.push(item); + } + } + } + }); + } + return result; + } + // 解析组态模板 + function parseJsonTemplate(data) { + data.forEach(function (item) { + if ($scope.languageJson.Language != "Chinese") { + if (item.id == "201") item.name = $scope.languageJson.ConfigurationType.CT201; + else if (item.id == "301") item.name = $scope.languageJson.ConfigurationType.CT301; + else if (item.id == "401") item.name = $scope.languageJson.ConfigurationType.CT401; + else if (item.id == "402") item.name = $scope.languageJson.ConfigurationType.CT402; + else if (item.id == "501") item.name = $scope.languageJson.ConfigurationType.CT501; + else if (item.id == "702") item.name = $scope.languageJson.ConfigurationType.CT702; + else if (item.id == "1001") item.name = $scope.languageJson.ConfigurationType.CT1001; + else if (item.id == "1004") item.name = $scope.languageJson.ConfigurationType.CT1004; + else if (item.id == "1006") item.name = $scope.languageJson.ConfigurationType.CT1006; + else if (item.id == "1101") item.name = $scope.languageJson.ConfigurationType.CT1101; + else if (item.id == "1201") item.name = $scope.languageJson.ConfigurationType.CT1201; + else if (item.id == "1501") item.name = $scope.languageJson.ConfigurationType.CT1501; + else if (item.id == "2001") item.name = $scope.languageJson.ConfigurationType.CT2001; + } + if (item.name == "8888") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Topology;//"拓扑图" + else if (item.name == "8889") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.MDC;//"MDC统计"; + //else if(item.name == "8890") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.IView;//"iView首页"; + else if (item.name == "9999") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Blank;//"空白页面"; + else if (item.name == "9999.table") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Table;//"表格页面"; + }); + return data; + } + // 获取站点信息 + function getStation(data) { + + data.forEach(function (element, index) { + $scope.stationId = element.StationId; + $scope.station.stationName = element.StationName; + $scope.station.contactId = element.ContactId; + $scope.station.remark = element.Description; + }); + } + // 获取中心站点信息 + function getCenter(data) { + + data.forEach(function (element, index) { + $scope.center.centerId = element.CenterId; + $scope.center.centerIP = element.CenterIP; + $scope.center.centerDSIP = element.CenterDSIP; + $scope.center.centerPort = element.CenterPort; + if (element.Enable == "true") { + $scope.center.Enable = true; + } else { + $scope.center.Enable = false; + } + + }); + } + // 获取监控器信息 + function getMonitorUnit(data) { + var mu = {}; + + data.forEach(function (element, index) { + mu.MonitorUnitId = element.MonitorUnitId; + }); + + return mu; + } + // 解析人员信息 + function parseEmployees(data) { + + var dataArray = []; + + data.forEach(function (element, index) { + var employee = {}; + employee.EmployeeId = element.EmployeeId; + employee.EmployeeName = element.EmployeeName; + employee.Mobile = element.Mobile; + employee.Email = element.Email; + dataArray.push(employee); + }); + + return dataArray; + } + //#endregion + + //#region 3.设备信息管理 + //#region 3.1.新增设备 + var addEquipmentDialog = $modal({ + scope: $scope, + templateUrl: 'fsu_model/partials/addEquipment.html', + show: false + }); + $scope.addEquipmentClick = function(){ + //增加设备前初始化 + $scope.equipmentTemplate = {}; + $scope.equipment = {}; + $scope.port = {}; + $scope.samplerUnit = {}; + $scope.portType = undefined; + $scope.portFlag = 0; + $scope.configurationType = ""; + $scope.templates = false; + $scope.uploadGroup = false; + addEquipmentDialog.$promise.then(addEquipmentDialog.show); + }; + $scope.addClick = function(){ + //增加设备前校验输入是否正确 + //判断是否输入完成 + if ($scope.equipment.EquipmentName == undefined) { + balert.show('danger', $scope.languageJson.Config.Config.Enter, 3000);/*请输入设备名称!*/ + return; + } + //检查名称长度是否超长 + if ($scope.equipment.EquipmentName.length > 128) { + balert.show('danger', $scope.languageJson.Config.Config.Allowed, 3000);/*设备名称长度不允许超过128位!*/ + return; + } + //检查端口、采集单元信息是否输入正确 + if (!PortAndSPUnitValidate($scope.monitorUnit.MonitorUnitId)) { + return; + } + //虚拟端口:106端口只能配置成IO设备 + var isPortNo = false; + if ($scope.port.PortNo == 106) { + if ($scope.equipment.EquipmentType != 1004) { + balert.show('danger', $scope.languageJson.Config.Config.Ports, 3000);/*'106端口只能配置成IO设备!'*/ + return; + } + } + //终端服务端口:已存在100端口,开放端口设置 + if ($scope.port.PortType == 6) { + if ($scope.port.PortNo < 100 || $scope.port.PortNo >= 201) { + balert.show('danger', $scope.languageJson.Config.Config.Network, 3000);/*'网口的端口号只能在100-200之间!'*/ + return; + } + } + //非基本串口,不可重复端口号 + if (parseInt($scope.port.PortType) != 1 && parseInt($scope.port.PortType) != 6) { + $scope.paginationConf.equipments.forEach(function (item, index) { + if (item.PortNo == $scope.port.PortNo) { + isPortNo = true; + } + }); + if (isPortNo) { + balert.show('danger', $scope.languageJson.Config.Config.Repeated, 3000);/*'端口已存在,不能重复!'*/ + return; + } + } + + //判断设备是否重名、端口的地址是否重复 + equipmentService.checkEquipmentConfig(0, $scope.equipment.EquipmentName, $scope.port.PortNo, $scope.samplerUnit.Address).then(function (result) { + if (result == "OK") { + //新增设备 + AddEquipment($scope.monitorUnit.MonitorUnitId); + } else if (result == "Name Exists") { + balert.show('danger', $scope.languageJson.Config.Config.Exists, 3000);/*'设备名称已存在!'*/ + return; + } else if (result == "Address Exists") { + balert.show('danger', $scope.languageJson.Config.Config.Script, 3000);/*'同端口的地址不能重复!'*/ + return; + } else { + balert.show('danger', $scope.languageJson.Config.Config.Wrong, 3000);/*'脚本错误,请尝试其他端口!'*/ + return; + } + }); + }; + //新增设备前校验端口和采集单元设置 + function PortAndSPUnitValidate(monitorUnitId) { + + if ($scope.port.PortNo == "" || $scope.port.PortNo == undefined) { + balert.show('danger', $scope.languageJson.Config.Port.Title, 3000);/*'请输入端口号'*/ + return false; + } + if (isNaN($scope.port.PortNo)) { + balert.show('danger', $scope.languageJson.Config.Port.Entered, 3000);/*'端口号输入有误!'*/ + return false; + } + if ($scope.port.PortType == undefined) { + balert.show('danger', $scope.languageJson.Config.Port.Select, 3000);/*'请选择端口类型'*/ + return false; + } + if ($scope.port.Setting == "" || $scope.port.Setting == undefined) { + balert.show('danger', $scope.languageJson.Config.Port.Communication, 3000);/*'请输入通讯参数'*/ + return false; + } + if ($scope.samplerUnit.Address == "" || $scope.samplerUnit.Address == undefined) { + balert.show('danger', $scope.languageJson.Config.Port.Address, 3000);/*'请输入地址'*/ + return false; + } + if (isNaN($scope.samplerUnit.Address)) { + balert.show('danger', $scope.languageJson.Config.Port.Incorrectly, 3000);/*'地址输入有误!'*/ + return false; + } + if ($scope.samplerUnit.DllPath == "" || $scope.samplerUnit.DllPath == undefined) { + balert.show('danger', $scope.languageJson.Config.Port.SO, 3000);/*'请输入SO库名!'*/ + return false; + } + + return true; + } + function AddEquipment(monitorUnitId) { + //增加端口 + // FSU特殊处理 + if($scope.port.PortType == "1") $scope.port.PortType = "6"; + portService.getInsertPort($scope.port).then(function (data) { + if (data == "fail to get insert port") { + //插入失败 + balert.show('danger', $scope.languageJson.Config.Config.Failed, 3000);/*'插入端口失败,请检查连接是否正常!'*/ + return; + } else { + //插入成功,返回portId + $scope.samplerUnit.PortId = parseInt(data); + samplerUnitService.getInsertSamplerUnit($scope.samplerUnit).then(function (data) { + if (data == "fail to get insert samplerUnit") { + //插入失败 + balert.show('danger', $scope.languageJson.Config.Config.Connection, 3000);/*'插入采集单元失败,请检查连接是否正常!'*/ + return; + } else { + //插入成功,返回samplerUnitId + $scope.equipment.SamplerUnitId = parseInt(data); + $scope.equipment.StationId = $scope.stationId; + $scope.equipment.EquipmentTemplateId = $scope.equipmentTemplate.EquipmentTemplateId; + $scope.equipment.MonitorUnitId = $scope.monitorUnit.MonitorUnitId; + + equipmentService.getInsertEquipment($scope.equipment,$scope.configurationType).then(function (data) { + if (data == "fail to get insert equipment") { + //插入失败 + balert.show('danger', $scope.languageJson.Config.Config.Faileds, 3000);/*'插入设备失败,请检查连接是否正常!'*/ + return; + } else { + $scope.equipmentItems = parseInt(data); + $scope.paginationConf.totalItems = $scope.equipmentItems; + + balert.show('success', $scope.languageJson.Config.Config.Equipments, 3000);/*'增加设备成功!'*/ + addEquipmentDialog.hide(); + } + }); + } + }); + } + }); + } + //#endregion + + //#region 3.1.1.新增设备:选择协议文件 + var templateDialog = $modal({ + scope: $scope, + templateUrl: 'partials/selectTemplate.html', + show: false + }); + $scope.selectTemplateClick = function(){ + equipmentTemplateService.getAllEquipmentTemplate().then(function (data) { + $scope.equipmentTemplates = data; + + //初始化 + $scope.equipmentTemplate = {}; + $scope.equipment = {}; + $scope.port = {}; + $scope.samplerUnit = {}; + $scope.portFlag = 0; + + templateDialog.$promise.then(templateDialog.show); + }); + }; + $scope.selectEquipmentTemplateId = function (equipmentTemplateId) { + $scope.selectedTemplateId = equipmentTemplateId; + }; + $scope.select = function () { + + if ($scope.selectedTemplateId == undefined) { + balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/ + return; + } + + //获取所选模板 + equipmentTemplateService.getEquipmentTemplate($scope.selectedTemplateId).then(function (data) { + $scope.equipmentTemplate = getEquipmentTemplate(data); + + //获取默认设备名 + equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) { + $scope.equipment = getEquipment(data); + }); + + //获取默认端口 + $scope.portNoChange(1); + }); + + $scope.selectedTemplateId = undefined; + templateDialog.hide(); + }; + function getEquipmentTemplate(data) { + var template = {}; + + data.forEach(function (element, index) { + template.EquipmentTemplateId = element.EquipmentTemplateId; + template.EquipmentTemplateName = element.EquipmentTemplateName; + }); + + return template; + } + function getEquipment(data) { + var equipment = {}; + + data.forEach(function (element, index) { + equipment.EquipmentId = element.EquipmentId; + equipment.EquipmentName = element.EquipmentName; + equipment.EquipmentType = element.EquipmentType; + }); + + return equipment; + } + function getPort(data) { + var port = {}; + + data.forEach(function (element, index) { + port.PortId = element.PortId; + port.MonitorUnitId = element.MonitorUnitId; + port.PortName = element.PortName; + port.PortNo = element.PortNo; + port.PortType = element.PortType; + port.Setting = element.Setting; + }); + + return port; + } + function getSamplerUnit(data) { + var samplerUnit = {}; + + data.forEach(function (element, index) { + samplerUnit.SamplerUnitId = element.SamplerUnitId; + samplerUnit.PortId = element.PortId; + samplerUnit.MonitorUnitId = element.MonitorUnitId; + samplerUnit.Address = element.Address; + samplerUnit.DllPath = element.DllPath; + samplerUnit.SamplerId = element.SamplerId; + samplerUnit.SamplerType = element.SamplerType; + samplerUnit.SamplerUnitName = element.SamplerUnitName; + }); + + return samplerUnit; + } + function parsePortByFSU(port, samplerUnit){ + if(port.PortType == "1"){ + if(samplerUnit && samplerUnit.Address){ + var portNo = port.PortNo; + if(portNo.length < 2) portNo = "0"+portNo; + port.Setting = "127.0.0.1:80"+portNo; + } + } + return port; + } + // 端口号 值变化事件 + $scope.portNoChange = function(portNo){ + portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, portNo).then(function (data) { + $scope.port = getPort(data); + $scope.portFlag = 1; + if($scope.port.PortType == "6" && parseInt($scope.port.PortNo) <= 16){ + $scope.port.PortTypeVar = $scope.portTypes[0]; + $scope.port.PortType = "1"; + }else{ + for (var i = 0; i < $scope.portTypes.length; i++) { + if ($scope.portTypes[i].PortTypeId == $scope.port.PortType) { + $scope.port.PortTypeVar = $scope.portTypes[i]; + break; + } + } + } + //获取默认采集单元 + samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) { + $scope.samplerUnit = getSamplerUnit(data); + // FSU版特殊处理 + $scope.port = parsePortByFSU($scope.port, $scope.samplerUnit); + }); + }); + }; + // 端口类型 值变化直接 + $scope.portTypeChange = function (portTypeId) { + //portTypeId => 串口:1、SNMP口:3、虚拟端口:5、网口:6、简单逻辑口:19 + + $scope.port.PortType = portTypeId; + $(".address-text").html($scope.languageJson.Config.Equipment.Address); + $(".address-input").show(); + + //端口不重复 + if (portTypeId == 3 || portTypeId == 6 || portTypeId == 19) { + var nextNo = 1; + if ($scope.paginationConf && $scope.paginationConf.equipments) { + $scope.paginationConf.equipments.forEach(function (item) { + if (item.PortNo != 106 && parseInt(item.PortNo) > nextNo) + nextNo = parseInt(item.PortNo); + }); + } + + if ($scope.port.PortNo < 100) { + if (portTypeId == 3) {//SNMP + if (nextNo >= 150) + $scope.port.PortNo = nextNo + 1; + else + $scope.port.PortNo = 150; + } else if (portTypeId == 19) {//简单逻辑串口 + if (nextNo > 200) + $scope.port.PortNo = nextNo + 1; + else + $scope.port.PortNo = 201; + } else {//网口 + if (nextNo == 105) + $scope.port.PortNo = 107; + else if (nextNo >= 100) + $scope.port.PortNo = nextNo + 1; + else + $scope.port.PortNo = 100; + } + } + } + + //通讯参数文本 与 IP参数文本 切换 + if (portTypeId != 1 && portTypeId != 5) { + $(".param-text").html($scope.languageJson.Config.Equipment.IPParameters); + } else + $(".param-text").html($scope.languageJson.Config.Equipment.Parameters); + //通讯参数值 + if (portTypeId == 1) {//串口 + $scope.port.Setting = "127.0.0.1:8001"; + $scope.port.PortNo = 1; + } else if (portTypeId == 3 || portTypeId == 6 || portTypeId == 19) {//SNMP口:3、网口:6、简单逻辑口:19 + $scope.port.Setting = "127.0.0.1:7070"; + } else if (portTypeId == 5) {//虚拟口 + $scope.port.Setting = "comm_io_dev.so"; + $scope.port.PortNo = 106; + } + $scope.portNoChange($scope.port.PortNo); + }; + //#endregion + + //#region 3.2.新增IO设备 + var ioTemplateDialog = $modal({ + scope: $scope, + templateUrl: 'partials/selectIOTemplate.html', + show: false + }); + $scope.addIOEquipmentClick = function(){ + //增加设备前初始化 + $scope.equipmentTemplate = {}; + $scope.equipment = {}; + $scope.port = {}; + $scope.samplerUnit = {}; + + //判断是否存在IO设备 + equipmentService.getIOEquipments($scope.stationId).then(function (data) { + //返回IO设备个数 + var result = data; + if (result == "fail to get io equipments") { + /*查看IO设备是否存在失败,请检查数据库连接是否正常*/ + balert.show('danger', $scope.languageJson.Config.Config.Check, 3000); + } else { + var ioEquipments = data.length; + if (ioEquipments > 0) { + balert.show('danger', $scope.languageJson.Config.Config.Already, 3000);/*已存在IO设备,不允许重复增加!*/ + } else { + //插入IO设备 + /*请确认是否增加IO设备?*/ + bconfirm.show($scope, $scope.languageJson.Config.Config.Pease).then(function (data) { + if (data) { + InsertIOEquipment(); + } + }); + } + } + }); + }; + $scope.selectIO = function () { + if ($scope.selectedIOTemplateId == undefined) { + balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/ + return; + } + + AddIOEquipment($scope.selectedIOTemplateId); + + ioTemplateDialog.hide(); + }; + $scope.selectIOEquipmentTemplateId = function (equipmentTemplateId) { + $scope.selectedIOTemplateId = equipmentTemplateId; + }; + function InsertIOEquipment() { + + //第一步:获取IO模板 + equipmentTemplateService.getIOEquipmentTemplates().then(function (data) { + + var ioEquipmentTemplateId = -1; + var result = data; + + if (result == "fail to get io equipmentTemplates") { + balert.show('danger', $scope.languageJson.Config.Port.Failed, 3000);/*'获取IO模板失败,请检查数据库连接是否正常!'*/ + return; + } else { + //获取IO模板成功 + $scope.ioEquipmentTemplates = data; + + //第二步:获取IO模板ID + if ($scope.ioEquipmentTemplates.length <= 0) { + //没有IO模板 + balert.show('danger', $scope.languageJson.Config.Port.Entereds, 3000);/*'没有找到IO模板,请在协议管理中增加IO模板!'*/ + return; + } else if ($scope.ioEquipmentTemplates.length > 1) { + //存在多个IO模板,需要弹出对话框供用户选择 + $scope.selectedIOEquipmentTemplateId = -1; + + ioTemplateDialog.$promise.then(ioTemplateDialog.show); + return; + } else { + ioEquipmentTemplateId = $scope.ioEquipmentTemplates[0].EquipmentTemplateId; + } + } + + //第三步:增加IO设备 + AddIOEquipment(ioEquipmentTemplateId); + }); + } + function AddIOEquipment(equipmentTemplateId) { + //获取所选模板 + equipmentTemplateService.getEquipmentTemplate(equipmentTemplateId).then(function (data) { + $scope.equipmentTemplate = getEquipmentTemplate(data); + + //获取默认端口 + portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, 106).then(function (data) { + if(parseInt($scope.port.PortType) > 1 && parseInt(data[0].PortType) > 1) return; + $scope.port = getPort(data); + // FSU版特殊处理 + $scope.port.PortType = "6"; + $scope.port.Setting = "127.0.0.1:8101"; + + //获取默认采集单元 + samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) { + $scope.samplerUnit = getSamplerUnit(data); + + //获取默认设备 + equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) { + $scope.equipment = getEquipment(data); + + AddEquipment($scope.monitorUnit.MonitorUnitId); + }); + }); + }); + }); + } + //#endregion + + //#region 3.3新增自诊断设备 + var hostEquipmentDlg = $modal({ + scope: $scope, + templateUrl: 'partials/selectHostTemplate.html', + show: false + }); + $scope.addHostEquipmentClick = function () { + + equipmentService.getHostEquipments($scope.stationId).then(function (data) { + var result = data; + if (result == "fail to get io equipments") { + /*查看自诊断设备是否存在失败,请检查数据库连接是否正常*/ + balert.show('danger', $scope.languageJson.Config.AddHost.GetErrorPrompt, 3000); + } else { + var equipments = data.length; + if (equipments > 0) { + balert.show('danger', $scope.languageJson.Config.AddHost.ExistPrompt, 3000);/*已存在自诊断设备,不允许重复增加!*/ + } else { + //插入IO设备 + /*请确认是否增加自诊断设备?*/ + bconfirm.show($scope, $scope.languageJson.Config.AddHost.SelectPrompt).then(function (data) { + if (data) { + InsertHostEquipment(); + } + }); + } + } + }); + }; + function InsertHostEquipment() { + //第一步:获取IO模板 + equipmentTemplateService.getHostEquipmentTemplates().then(function (data) { + + var hostEquipmentTemplateId = -1; + var result = data; + + if (result == "fail to get io equipmentTemplates") { + balert.show('danger', $scope.languageJson.Config.Port.Failed, 3000);/*'获取IO模板失败,请检查数据库连接是否正常!'*/ + return; + } else { + //获取自诊断模板成功 + $scope.hostEquipmentTemplates = data; + + //第二步:获取自诊断模板ID + if ($scope.hostEquipmentTemplates.length <= 0) { + //没有自诊断模板 + balert.show('danger', $scope.languageJson.Config.AddHost.NoExistPrompt, 3000);/*'没有找到自诊断模板,请在协议管理中增加自诊断模板!'*/ + return; + } else if ($scope.hostEquipmentTemplates.length > 1) { + //存在多个自诊断模板,需要弹出对话框供用户选择 + $scope.selectedHostTemplateId = undefined; + + hostEquipmentDlg.$promise.then(hostEquipmentDlg.show); + return; + } else { + hostEquipmentTemplateId = $scope.hostEquipmentTemplates[0].EquipmentTemplateId; + } + } + + //第三步:增加自诊断设备 + AddHostEquipment(hostEquipmentTemplateId); + }); + } + $scope.selectHostEquipmentTemplateId = function (equipmentTemplateId) { + $scope.selectedHostTemplateId = equipmentTemplateId; + }; + $scope.selectHost = function () { + + if ($scope.selectedHostTemplateId == undefined) { + balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/ + return; + } + + AddHostEquipment($scope.selectedHostTemplateId); + + hostEquipmentDlg.hide(); + }; + function AddHostEquipment(equipmentTemplateId) { + //获取所选模板 + equipmentTemplateService.getEquipmentTemplate(equipmentTemplateId).then(function (data) { + $scope.equipmentTemplate = getEquipmentTemplate(data); + + //获取默认端口 + portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, 31).then(function (data) { + $scope.port = getPort(data); + + //获取默认采集单元 + samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) { + $scope.samplerUnit = getSamplerUnit(data); + + //获取默认设备 + equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) { + $scope.equipment = getEquipment(data); + + AddEquipment($scope.monitorUnit.MonitorUnitId); + }); + }); + }); + }); + } + //#endregion + + //#region 3.4.修改设备 + var updEquipmentDlg = $modal({ + scope: $scope, + templateUrl: 'partials/updEquipment.html', + show: false + }); + $scope.updateEquipmentClick = function (data) { + //var e = $scope.paginationConf.equipments; + $scope.equipment = data; + portService.getDefaultPort(data.MonitorUnitId, data.PortNo).then(function (port) { + if (port.length > 0) { + + $scope.equipment.Setting = port[0].Setting; + $scope.equipment.PortId = port[0].PortId; + $scope.equipment.PortType = port[0].PortType; + // FSU特殊处理 + if($scope.equipment.PortType == "6" && parseInt(port[0].PortNo) <= 16){ + $scope.equipment.PortType = "1"; + } + + //是否有其他同端口的设备,如果有其他端口则不允许修改“端口类型”和“通讯参数” + var isExist = isOtherPortExist(data.EquipmentId, port[0].PortNo); + if (isExist) $scope.equipment.readonly = true; + else $scope.equipment.readonly = false; + + samplerUnitService.getDefaultSamplerUnit(data.EquipmentTemplateId, port[0].PortId, port[0].PortNo, data.MonitorUnitId).then(function (unit) { + if (unit.length > 0) { + $scope.samplerUnit = unit[0]; + } + }); + + $scope.equipment.EquipmentTemplateName = getEquipmentTemplateNameById(data.EquipmentTemplateId); + } + }); + updEquipmentDlg.$promise.then(updEquipmentDlg.show); + }; + function getEquipmentTemplateNameById(etid) { + var etname = ""; + if ($scope.equipmentTemplates) { + $scope.equipmentTemplates.forEach(function (item) { + if (item.EquipmentTemplateId == etid) + etname = item.EquipmentTemplateName; + }); + } + return etname; + } + function isOtherPortExist(equipment, portNo) { + var is = false; + if ($scope.paginationConf && $scope.paginationConf.equipments) { + $scope.paginationConf.equipments.forEach(function (item) { + if (item.PortNo == portNo) { + if (item.EquipmentId != equipment) + is = true; + } + }); + } + return is; + } + $scope.updClick = function () { + if ($scope.equipment.EquipmentId == "" || $scope.equipment.EquipmentName == "" || $scope.equipment.PortNo == "" + || $scope.equipment.PortType == "" || $scope.equipment.Setting == "" || $scope.equipment.Address == "") { + balert.show('danger', $scope.languageJson.Config.Confirms.Device, 3000);/*'设备信息均不能为空!'*/ + return; + } + equipmentService.checkEquipmentConfig($scope.equipment.EquipmentId, $scope.equipment.EquipmentName, + $scope.equipment.PortNo, $scope.equipment.Address).then(function (result) { + if (result == "OK") { + //添加端口 + // FSU特殊处理 + if($scope.equipment.PortType == "1") $scope.equipment.PortType = "6"; + portService.getInsertPort($scope.equipment).then(function (portId) { + if (portId == "fail to get insert port") { + balert.show('danger', $scope.languageJson.Config.Config.Failed, 3000);/*'插入端口失败,请检查连接是否正常!'*/ + return; + } else { + //添加采集单元 + $scope.samplerUnit.PortId = parseInt(portId); + $scope.samplerUnit.Address = $scope.equipment.Address; + //修改so库 + if ($scope.equipment.DllPath != $scope.samplerUnit.DllPath) { + $scope.samplerUnit.SamplerUnitId = -1; + $scope.samplerUnit.DllPath = $scope.equipment.DllPath; + } + samplerUnitService.getInsertSamplerUnit($scope.samplerUnit).then(function (units) { + if (units == "fail to get insert samplerUnit") { + balert.show('danger', $scope.languageJson.Config.Config.Connection, 3000);/*'插入采集单元失败,请检查连接是否正常!'*/ + return; + } else { + $scope.equipment.SamplerUnitId = parseInt(units); + //修改设备 + equipmentService.updateEquipment($scope.equipment.EquipmentId, $scope.equipment.EquipmentName, $scope.equipment.Vendor, $scope.equipment.SamplerUnitId).then(function (data) { + if (data == "OK") { + balert.show('success', $scope.languageJson.Config.Confirms.Modify, 3000);/*'修改设备成功!'*/ + $scope.equipment = {}; + updEquipmentDlg.hide(); + } else { + balert.show('danger', $scope.languageJson.Config.Confirms.Modifying, 3000);/*'修改设备失败!'*/ + } + }); + } + }); + } + }); + } else if (result == "Name Exists") { + balert.show('danger', $scope.languageJson.Config.Confirms.Exists, 3000);/*'设备名称已存在!'*/ + return; + } else if (result == "Address Exists") { + balert.show('danger', $scope.languageJson.Config.Confirms.Port, 3000);/*'同端口的地址不能重复!'*/ + return; + } + }); + }; + + $scope.changePortNo = function (newValue, oldValue) { + if (newValue == undefined || newValue == oldValue) return; + portService.getDefaultPort($scope.equipment.MonitorUnitId, newValue).then(function (port) { + if (port.length > 0) { + $scope.equipment.Setting = port[0].Setting; + $scope.equipment.PortId = port[0].PortId; + $scope.equipment.PortType = port[0].PortType; + + var isExist = isOtherPortExist(newValue); + if (port[0].PortId != -1 && isExist) $scope.equipment.readonly = true; + else $scope.equipment.readonly = false; + + samplerUnitService.getDefaultSamplerUnit($scope.equipment.EquipmentTemplateId, port[0].PortId, port[0].PortNo, $scope.equipment.MonitorUnitId).then(function (unit) { + if (unit.length > 0) { + $scope.samplerUnit = unit[0]; + // FSU特殊处理 + $scope.equipment = parsePortByFSU($scope.equipment, $scope.samplerUnit); + } + }); + } + }); + }; + //#endregion + + //#region 3.4.1.修改设备:重新绑定设备模板 + var templateListDlg = $modal({ + scope: $scope, + templateUrl: 'partials/equipmentTemplates.html', + show: false + }); + $scope.showTemplateListClick = function (templateId) { + if ($scope.equipmentTemplates) { + $scope.equipmentTemplates.forEach(function (item) { + if (item.EquipmentTemplateId == templateId) { + // 解决DLL后缀问题 + if(item.SoName.toUpperCase().indexOf("DLL") > -1) { + var index = item.SoName.lastIndexOf("."); + item.SoName = item.SoName.substring(0,index)+".so"; + } + $scope.Rebinding = item; + + $scope.Rebinding.CategoryName = getCategoryName($scope.Rebinding.EquipmentCategory); + $scope.Rebinding.PropertyName = getPropertyName($scope.Rebinding.Property); + } + }); + } + templateListDlg.$promise.then(templateListDlg.show); + }; + function getCategoryName(category) { + var name = category; + if ($scope.Template.EquipmentCategory) { + $scope.Template.EquipmentCategory.forEach(function (item) { + if (item.ItemId == category) { + if ($scope.languageJson.Language == "English") + name = item.ItemAlias; + else + name = item.ItemValue; + } + }); + } + return name; + } + function getPropertyName(property) { + var result = ""; + var name = ""; + var pros = property.split("/"); + if (pros) { + pros.forEach(function (pro) { + if ($scope.Template.Property) { + $scope.Template.Property.forEach(function (item) { + if (pro == item.ItemId) { + if ($scope.languageJson.Language == "English") + name = item.ItemAlias; + else + name = item.ItemValue; + } + }); + } + if (result == "") + result = name; + else + result += "/" + name; + }); + } + return result; + } + $scope.changeRebinding = function (obj) { + $scope.Rebinding = angular.fromJson(obj); + // 解决DLL后缀问题 + if($scope.Rebinding.SoName.toUpperCase().indexOf("DLL") > -1) { + var index = $scope.Rebinding.SoName.lastIndexOf("."); + $scope.Rebinding.SoName = $scope.Rebinding.SoName.substring(0,index)+".so"; + } + + $scope.Rebinding.CategoryName = getCategoryName($scope.Rebinding.EquipmentCategory); + $scope.Rebinding.PropertyName = getPropertyName($scope.Rebinding.Property); + }; + //重新绑定模板 + $scope.rebindingClick = function () { + var equipmentId = $scope.equipment.EquipmentId; + var equipmentTemplateId = $scope.Rebinding.EquipmentTemplateId; + $scope.equipment.DllPath = $scope.Rebinding.SoName; + + equipmentService.RebindingEquipmentTemplate(equipmentId, equipmentTemplateId).then(function (data) { + if (data == "OK") { + balert.show('success', $scope.languageJson.Config.Confirms.Modify, 3000);/*'修改设备成功!'*/ + $scope.equipment.EquipmentTemplateId = $scope.Rebinding.EquipmentTemplateId; + $scope.equipment.EquipmentTemplateName = $scope.Rebinding.EquipmentTemplateName; + templateListDlg.hide(); + } else { + balert.show('danger', "[" + data + "]" + $scope.languageJson.Config.Confirms.Modifying, 3000);/*'修改设备失败!'*/ + } + }); + }; + //#endregion + + //#region 3.5.删除设备 + $scope.removeEquipmentClick = function (id, name, samplerUnitId) { + $scope.selectedEquipmentId = id; + $scope.selectedEquipmentName = name; + + bconfirm.show($scope, $scope.languageJson.Config.Confirms.Title + $scope.selectedEquipmentId + ")" + $scope.selectedEquipmentName + "?").then(function (data) { + if (data) { + equipmentService.deleteEquipment($scope.stationId, $scope.selectedEquipmentId, samplerUnitId).then(function (data) { + //删除完成后,返回设备个数 + var result = data; + if (result == "fail to delete equipment") { + balert.show('danger', $scope.languageJson.Config.Confirms.Deleting, 3000);/*'删除设备失败,请检查连接是否正常!'*/ + } else { + $scope.equipmentItems = parseInt(data); + $scope.paginationConf.totalItems = $scope.equipmentItems; + balert.show('success', $scope.languageJson.Config.Confirms.Successfully, 3000);/*'删除设备成功!'*/ + } + }); + } + }); + }; + //#endregion + + //#region 3.6.配置生效 + $scope.reLoadEquipmentConfigClick = function () { + /*请确认是否执行配置生效?*/ + bconfirm.show($scope, $scope.languageJson.Config.Config.Whether).then(function (data) { + if (data) { + $scope.loading = true; + equipmentService.reLoadEquipment($scope.stationId, $scope.station.stationName).then(function (data) { + //删除完成后,返回设备个数 + var result = data; + var ver = localStorage.getItem("versions"); + if (result == "fail to reload equipment") { + balert.show('danger', $scope.languageJson.Config.Config.Sails, 3000);/*执行配置生效失败,请检查连接是否正常!*/ + } else { + if (ver == "IView") { + balert.show('success', $scope.languageJson.Config.Config.Configuration, 3000);/*'执行配置生效成功!'*/ + } + else{ + balert.show('success', $scope.languageJson.Config.Config.Configuration, 3000);/*'执行配置生效成功!'*/ + $("#side-menu .sub-li").remove(); + deviceService.getAllDevicesType().then(); + } + } + $scope.loading = false; + // 重新加载组态列 + $rootScope.$emit("loadSidebar"); + }); + //生成备份文件 + equipmentService.CreateConfigManager().then(function (data) { + }); + } + }); + }; + //#endregion + + //#endregion + + //#region 4.局站信息管理 + $scope.saveStationConfigClick = function () { + if ($scope.station.stationName === undefined || + $scope.station.contactId == -1) { + //'局站信息不完整,请检查是否输入完整!' + balert.show('danger', $scope.languageJson.Config.Stations.Input, 3000); + return; + } + $scope.loading = true; + stationService.updateStationInfo($scope.stationId, $scope.station.stationName, $scope.station.contactId, $scope.station.remark).then(function (data) { + if (data == "OK") { + equipmentService.ReLoadFSU().then(function (data) { + $scope.loading = false; + balert.show('success', $scope.languageJson.Config.Stations.Successfully, 3000);//'保存局站配置成功!' + }); + + } else { + //'保存局站配置失败!' + balert.show('danger', $scope.languageJson.Config.Stations.Failed, 3000); + } + }); + }; + $scope.contactManChange = function (EmployeeId) { + $scope.station.contactId = EmployeeId; + }; + //#endregion + + //#region 5.中心信息管理 + $scope.saveCenterConfigClick = function () { + if ($scope.center.centerIP === undefined || $scope.center.centerDSIP === undefined || + $scope.center.centerPort == -1 || $scope.center.centerPort == undefined) { + balert.show('danger', $scope.languageJson.Config.Room.The, 3000);/*中心信息不完整,请检查是否输入完整!*/ + return; + } + $scope.loading = true; + stationService.updateCenterInfo($scope.center.centerId, $scope.center.centerIP, $scope.center.centerPort, $scope.center.centerDSIP, $scope.center.Enable).then(function (data) { + if (data == "OK") { + equipmentService.ReLoadFSU().then(function (data) { + $scope.loading = false; + balert.show('success', $scope.languageJson.Config.Room.Center, 3000);/*'保存中心配置成功!'*/ + }); + } else { + balert.show('danger', $scope.languageJson.Config.Room.Saves, 3000);/*'保存中心配置失败!'*/ + } + }); + }; + + $scope.resetCenterConfigClick = function () { + $scope.center = {}; + $scope.center.centerId = -1; + $scope.center.centerIP = ""; + $scope.center.centerPort = 15001; + $scope.center.centerDSIP = ""; + $scope.center.Enable = false; + }; + + $scope.selectEnable = function () { + var a = $scope.center.Enable; + }; + //#endregion + + //#region 6.模板管理 + //#region 6.1.设备模板 + // 查询 + $scope.selectEventClick = function () { + document.querySelector("#rollBtn").style.display = "block"; + document.querySelector("#rollAlarm").style.display = "block"; + if ($scope.selectEvent.EquipmentTemplateId == undefined) { + balert.show('danger', $scope.languageJson.Config.Templatenames.Please, 3000);/*'请选择设备模板!'*/ + return; + } + + //遍历选中的模板设备编号 + $scope.equipmentTemplates.forEach(function (item) { + if (item.EquipmentTemplateId == $scope.selectEvent.EquipmentTemplateId) + $scope.selectEvent.EquipmentBaseType = item.EquipmentBaseType; + }); + + TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) { + TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) { + $scope.SignalMeaningsList = datas; + $scope.SignalList = parseSignalList(data, datas); + $scope.filterSignalList = $filter('filter')($scope.SignalList, $scope.query); + + GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + + GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + }); + }); + }; + //查询信号 + function GetSignalByEquipmentTemplateId(EquipmentTemplateId) { + TemplateService.GetSignalByEquipmentTemplateId(EquipmentTemplateId).then(function (data) { + TemplateService.GetSignalMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) { + $scope.SignalMeaningsList = datas; + $scope.SignalList = parseSignalList(data, datas); + $scope.filterSignalList = $filter('filter')($scope.SignalList, $scope.query); + document.getElementById('signalListSelAll').indeterminate = false + }); + }); + }; + //查询事件 + function GetEventByEquipmentTemplateId(EquipmentTemplateId) { + TemplateService.GetEventByEquipmentTemplateId(EquipmentTemplateId).then(function (data) { + TemplateService.GetEventConditionByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) { + $scope.EventConditionList = datas; + $scope.EventList = parseEventList(data, datas); + }); + }); + }; + //查询控制 + function GetControlByEquipmentTemplateId(EquipmentTemplateId) { + TemplateService.GetControlByEquipmentTemplateId(EquipmentTemplateId).then(function (data) { + TemplateService.GetControlMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) { + $scope.ControlMeaningsList = datas; + $scope.ControlList = parseControlList(data, datas); + }); + }); + }; + function parseSignalList(data, datas) { + data.forEach(function (item) { + $scope.Signal.SignalCategory.forEach(function (es) { + if (item.SignalCategory == es.ItemId) { + item.SignalCategoryName = getLanguageItem(es); + } + }); + $scope.Signal.ChannelType.forEach(function (es) { + if (item.ChannelType == es.ItemId) { + item.ChannelTypeName = getLanguageItem(es); + } + }); + $scope.Signal.DataType.forEach(function (es) { + if (item.DataType == es.ItemId) { + item.DataTypeName = getLanguageItem(es); + } + }); + if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true; + else item.IsOpen = false; + + if (datas) { + item.DataMeanings = []; + datas.forEach(function (sm) { + if (item.SignalId == sm.SignalId) { + if (item.Meanings == undefined) { + item.Meanings = sm.Meanings; + } else { + item.Meanings += "/" + sm.Meanings; + } + item.DataMeanings.push(sm); + } + }); + } + }); + return data; + }; + function parseEventList(data, datas) { + data.forEach(function (item) { + $scope.Event.EventCategory.forEach(function (es) { + if (item.EventCategory == es.ItemId) { + item.EventCategoryName = getLanguageItem(es); + } + }); + $scope.Event.StartType.forEach(function (es) { + if (item.StartType == es.ItemId) { + item.StartTypeName = getLanguageItem(es); + } + }); + $scope.Event.EndType.forEach(function (es) { + if (item.EndType == es.ItemId) { + item.EndTypeName = getLanguageItem(es); + } + }); + if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true; + else item.IsOpen = false; + + if (datas) { + item.EventCondition = []; + datas.forEach(function (ec) { + if (item.EventId == ec.EventId) { + if (item.EventSeverity == undefined) { + item.EventSeverity = ec.EventSeverity; + item.EventSeverityName = getEventSeverityName(ec.EventSeverity); + item.Meanings = ec.EventConditionId; + } else { + item.EventSeverity += "/" + ec.EventSeverity; + item.EventSeverityName += "/" + getEventSeverityName(ec.EventSeverity); + item.Meanings += "/" + ec.EventConditionId; + } + item.EventCondition.push(ec); + } + }); + } + + if ($scope.SignalList) { + $scope.SignalList.forEach(function (s) { + if (item.SignalId == s.SignalId) { + item.SignalName = s.SignalName; + } + }); + } + + if (item.Enable == "true" || item.Enable == true) + item.Shield = false; + else + item.Shield = true; + }); + return data; + }; + function getEventSeverityName(severity) { + var name = ""; + if ($scope.Event.EventSeverity) { + $scope.Event.EventSeverity.forEach(function (item) { + if (item.ItemId == severity) { + if ($scope.languageJson.Language == "English") + name = item.ItemAlias; + else + name = item.ItemValue; + } + }); + } + return name; + } + function parseControlList(data, datas) { + data.forEach(function (item) { + $scope.Control.ControlCategory.forEach(function (es) { + if (item.ControlCategory == es.ItemId) { + item.ControlCategoryName = getLanguageItem(es); + } + }); + $scope.Control.ControlSeverity.forEach(function (es) { + if (item.ControlSeverity == es.ItemId) { + item.ControlSeverityName = getLanguageItem(es); + } + }); + $scope.Control.CommandType.forEach(function (es) { + if (item.CommandType == es.ItemId) { + item.CommandTypeName = getLanguageItem(es); + } + }); + $scope.Control.ControlType.forEach(function (es) { + if (item.ControlType == es.ItemId) { + item.ControlTypeName = getLanguageItem(es); + } + }); + $scope.Control.DataType.forEach(function (es) { + if (item.DataType == es.ItemId) { + item.DataTypeName = getLanguageItem(es); + } + }); + if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true; + else item.IsOpen = false; + + if (datas) { + item.DataMeanings = []; + datas.forEach(function (cm) { + if (item.ControlId == cm.ControlId) { + if (item.Meanings == undefined) { + item.Meanings = cm.Meanings; + } else { + item.Meanings += "/" + cm.Meanings; + } + item.DataMeanings.push(cm); + } + }); + } + + if ($scope.SignalList) { + $scope.SignalList.forEach(function (s) { + if (item.SignalId == s.SignalId) { + item.SignalName = s.SignalName; + } + }); + } + }); + return data; + } + function getLanguageItem(item) { + if ($scope.languageJson == undefined) + $scope.languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var lan = $scope.languageJson.Language; + if (lan == 'English') return item.ItemAlias + else return item.ItemValue + } + + //修改模版 + var ModifyTemplateDialog = $modal({ + scope: $scope, + templateUrl: 'partials/ModifyTemplate.html', + show: false + }); + $scope.UpdateEquipmentTemplateClick = function () { + $scope.equipmentTemplates.forEach(function (item) { + if (item.EquipmentTemplateId == $scope.selectEvent.EquipmentTemplateId) { + $scope.UpdateTemplate = item; + ModifyTemplateDialog.$promise.then(ModifyTemplateDialog.show); + checkoutProperty($scope.UpdateTemplate.Property); + return; + } + }); + }; + function checkoutProperty(data) { + var d = data.split("/"); + if (data) + $scope.UpdateTemplate.Property = data; + else + $scope.UpdateTemplate.Property = ""; + if ($scope.Template.Property) + $scope.Template.Property.forEach(function (item) { + item.isChecked = false; + var str = []; + d.forEach(function (pro) { + if (pro == item.ItemId) { + item.isChecked = true; + } + }); + }); + }; + //设备模板属性 + $scope.isShowProperty = false; + $scope.showProperty = function () { + //$("#myProperty").show(); + $("#myProperty").css("display", "block"); + $scope.isShowProperty = true; + }; + $(function () { + $(document).click(function (e) { + var myDiv = $("#myProperty"); + if (myDiv.css("display") == "block" && $scope.isShowProperty == false) { + //$("#myProperty").hide(); + $("#myProperty").css("display", "none"); + } + $scope.isShowProperty = false; + }); + }); + $scope.ClickProperty = function (id) { + if ($scope.Template.Property) + $scope.Template.Property.forEach(function (item) { + if (item.ItemId == id) { + if (!item.isChecked) { + item.isChecked = true; + $scope.UpdateTemplate.Property = sortProperty($scope.UpdateTemplate.Property, id, true); + } else { + item.isChecked = false; + $scope.UpdateTemplate.Property = sortProperty($scope.UpdateTemplate.Property, id, false); + } + } + }); + }; + function sortProperty(str, pro, isAdd) { + var result = ""; + if (isAdd) {//添加 + if (str == "" || str == undefined) result = pro; + else { + str = str + "/" + pro; + var arr = str.split("/"); + arr = arr.sort(); + for (var i = 0; i < arr.length; i++) { + if (result == "") + result += arr[i]; + else + result += "/" + arr[i]; + } + } + } else {//删除 + var arr = str.split("/"); + for (var i = 0; i < arr.length; i++) { + if (arr[i] == pro) continue; + if (result == "") + result += arr[i]; + else + result += "/" + arr[i]; + } + } + return result; + }; + $scope.SaveEquipmentTemplate = function () { + var is = false; + $scope.equipmentTemplates.forEach(function (item) { + if ($scope.UpdateTemplate.EquipmentTemplateId != item.EquipmentTemplateId && + $scope.UpdateTemplate.EquipmentTemplateName == item.EquipmentTemplateName) { + is = true; + } + }); + if (is) { + balert.show('danger', $scope.languageJson.Config.Templatenames.Title, 3000);/*'模板名称不能相同!'*/ + return; + } + if ($scope.UpdateTemplate.EquipmentTemplateName == "" || $scope.UpdateTemplate.EquipmentTemplateName == undefined) { + balert.show('danger', $scope.languageJson.Config.Templatenames.Cannot, 3000);/*'模板名称不能为空!'*/ + return; + } + if ($scope.UpdateTemplate.EquipmentCategory == "" || $scope.UpdateTemplate.EquipmentCategory == undefined) { + balert.show('danger', $scope.languageJson.Config.Templatenames.Type, 3000);/*'类型不能为空!'*/ + return; + } + if ($scope.UpdateTemplate.EquipmentBaseType == "" || $scope.UpdateTemplate.EquipmentBaseType == undefined) { + balert.show('danger', $scope.languageJson.Config.Templatenames.Empty, 3000);/*'设备基类不能为空!'*/ + return; + } + + TemplateService.SaveEquipmentTemplate($scope.UpdateTemplate).then(function (data) { + if (data == "SUCCESS") { + balert.show('success', $scope.languageJson.Config.Templatenames.Successfully, 3000);/*'修改成功!'*/ + ModifyTemplateDialog.hide(); + } else + balert.show('danger', $scope.languageJson.Config.Templatenames.Fail, 3000);/*'修改失败!'*/ + }); + }; + + // 导出协议模板 + $scope.ExportProtocol = function (templateId) { + $scope.loading = true; + TemplateService.ExportProtocol(templateId).then(function (data) { + $scope.loading = false; + }); + }; + //#endregion + + //#region 6.2.信号管理 + //#region 6.2.1.新增/修改信号 + var SignalSetterDialog = $modal({ + scope: $scope, + templateUrl: 'partials/SignalSetter.html', + show: false + }); + // 新增页面弹出框 + $scope.AddSignal = function () { + //console.log($scope.paginationConf.equipments); + if ($scope.selectEvent.EquipmentBaseType != undefined && + (parseInt($scope.selectEvent.EquipmentBaseType) >= 1100 && parseInt($scope.selectEvent.EquipmentBaseType) < 1200)) + $scope.ChargeShow = true; + else + $scope.ChargeShow = false; + + $scope.btnName = $scope.languageJson.Config.Signal.News;/*新增*/ + TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Signal').then(function (data) { + $scope.Signals = { + EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId, + DeviceId:"-1", + SignalId: parseInt(data) + 1, + SignalName: $scope.languageJson.Config.Config.Newsignal, + SignalType: '2', + ChannelNo: '-2', + ChannelType: '1', + DataType: '0', + SignalCategory: '1', + ShowPrecision: '0', + Enable: true, + Visible: true, + BaseTypeId: '', + Expression: '', + Unit: '', + StoreInterval: '', + AbsValueThreshold: '', + PercentThreshold: '', + StaticsPeriod: '', + ChargeStoreInterVal: '', + ChargeAbsValue: '', + IsBaseNameExt: "display:none;" + };/*'新信号'*/ + $scope.CategoryHide = false; + SignalSetterDialog.$promise.then(SignalSetterDialog.show); + setTimeout(function () { + $("#Inspect-Hint").attr("data-original-title", "
" + $scope.languageJson.Config.Signal.Accuracys + "
"); + }, 500); + }); + TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) { + TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) { + $scope.SignalMeaningsList = datas; + $scope.SignalList2 = parseSignalList(data, datas); + }); + }); + }; + // 修改信号弹出框 + $scope.updateSignalClick = function (data) { + if ($scope.selectEvent.EquipmentBaseType != undefined && + (parseInt($scope.selectEvent.EquipmentBaseType) >= 1100 && parseInt($scope.selectEvent.EquipmentBaseType) < 1200)) + $scope.ChargeShow = true; + else + $scope.ChargeShow = false; + + $scope.btnName = $scope.languageJson.Config.Config.Modify/*"修改"*/; + $scope.Signals = data; + if (data.Enable == 'true') $scope.Signals.Enable = true; + if (data.Visible == 'true') $scope.Signals.Visible = true; + $scope.ChangeCategory($scope.Signals.SignalCategory); + SignalSetterDialog.$promise.then(SignalSetterDialog.show); + }; + var oldNo; + $scope.ChangeSignalType = function (type) { + if (type == 2) { + oldNo = $scope.Signals.ChannelNo; + if ($scope.Signals.SignalId == -3) + $scope.Signals.ChannelNo = -3; + else + $scope.Signals.ChannelNo = -2; + } else { + var is = false; + $scope.SignalList.forEach(function (item) { + if (item.SignalId == $scope.Signals.SignalId) { + is = true; + $scope.Signals.ChannelNo = oldNo; + } + }); + if (!is) { + TemplateService.GetMaxChannelNo($scope.selectEvent.EquipmentTemplateId).then(function (data) { + $scope.Signals.ChannelNo = parseInt(data) + 1; + }); + } + } + }; + $scope.ChangeDeviceToSignal = function(DeviceId){ + var EquipmentTemplateId = "-1"; + //$scope.Signals.SignalId = ""; + if(DeviceId == "-1"){ + EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId; + }else{ + var device = _.findWhere($scope.AllDevices,{EquipmentId:DeviceId}); + if(device){ + EquipmentTemplateId = device.EquipmentTemplateId; + } + } + TemplateService.GetSignalByEquipmentTemplateId(EquipmentTemplateId).then(function (data) { + TemplateService.GetSignalMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) { + $scope.SignalMeaningsList = datas; + $scope.SignalList2 = parseSignalList(data, datas); + }); + }); + }; + $scope.ChangeSignalExpression = function (SignalId) { + var str = "["+$scope.Signals.DeviceId+"," + SignalId + "]"; + $scope.ClickSignalsLi(str); + }; + $scope.CheckExpression = function (id) { + var textDom = document.getElementById(id); + if (textDom.selectionStart || textDom.selectionStart == '0') { + $scope.startPos = textDom.selectionStart; + $scope.endPos = textDom.selectionEnd; + $scope.scrollTop = textDom.scrollTop; + } + }; + $scope.ClickSignalsLi = function (symbol) { + if ($scope.Signals.Expression == undefined) + $scope.Signals.Expression = ""; + + var textDom = document.getElementById("SignalExpression"); + var addStr = symbol; + + if (textDom.selectionStart || textDom.selectionStart == '0') { + $scope.Signals.Expression = $scope.Signals.Expression.substring(0, $scope.startPos) + addStr + + $scope.Signals.Expression.substring($scope.endPos); + textDom.focus(); + textDom.selectionStart = $scope.startPos + addStr.length; + textDom.selectionEnd = $scope.startPos + addStr.length; + textDom.scrollTop = $scope.scrollTop; + } else { + $scope.Signals.Expression += addStr; + textDom.focus(); + } + }; + $scope.ChangeCategory = function (cate) { + if (cate == 1) {//模拟量,SignalId最后一位为1 + if ($scope.btnName == $scope.languageJson.Config.Signal.News)/*"新增"*/ + if ($scope.Signals.SignalId % 10 == 0) { + $scope.Signals.SignalId += 1; + } + $scope.CategoryHide = false; + } else if (cate == 2) {//开关量,SignalId最后一位为0 + if ($scope.btnName == $scope.languageJson.Config.Signal.News)/*"新增"*/ + if ($scope.Signals.SignalId % 10 == 1) { + $scope.Signals.SignalId -= 1; + } + $scope.CategoryHide = true; + } else + $scope.CategoryHide = false; + }; + // 保存 + $scope.saveSignal = function () { + if ($scope.Signals.SignalName == "" || $scope.Signals.SignalName == undefined) { + balert.show('danger', $scope.languageJson.Config.SignalName.Title, 3000);/*'信号名称不能为空!'*/ + return; + } + + if ($scope.SignalList && $scope.Signals.BaseTypeId != "" && $scope.Signals.BaseTypeId != undefined) { + var is = false; + $scope.SignalList.forEach(function (item) { + if (item.SignalId != $scope.Signals.SignalId && item.BaseTypeId == $scope.Signals.BaseTypeId) + is = true; + }); + if (is) { + balert.show('danger', $scope.languageJson.Config.SignalName.Repeated, 3000);/*'基类编号不能重复!'*/ + return; + } + } + if ($scope.Signals.ChannelNo == "" || $scope.Signals.ChannelNo == undefined) { + balert.show('danger', $scope.languageJson.Config.SignalName.Channel, 3000);/*'通道号不能为空!'*/ + return; + } + if ($scope.Signals.ShowPrecision == "" || $scope.Signals.ShowPrecision == undefined) { + balert.show('danger', $scope.languageJson.Config.SignalName.Accuracy, 3000);/*'精确率不能为空!'*/ + return; + } + if ($scope.Signals.SignalType == 2) { + if ($scope.Signals.SignalId == -3) { + if ($scope.Signals.ChannelNo != -3) { + balert.show('danger', $scope.languageJson.Config.SignalName.Status, 3000);/*'通讯状态信号通道号只能为-3!'*/ + return; + } + } else if ($scope.Signals.ChannelNo != -2) { + balert.show('danger', $scope.languageJson.Config.SignalName.Virtual, 3000);/*'虚拟信号通道号只能为-2!'*/ + return; + } + } + if ($scope.Signals.SignalType != 2 && $scope.Signals.ChannelNo < 0) { + balert.show('danger', $scope.languageJson.Config.SignalName.Acquisition, 3000);/*'采集信号/常量信号通道号不能为负数!'*/ + return; + } + var ret = /^\-?\d*(\.\d+)?$/; + if (!ret.test($scope.Signals.StoreInterval) || !ret.test($scope.Signals.AbsValueThreshold) || + !ret.test($scope.Signals.PercentThreshold) || !ret.test($scope.Signals.ChargeStoreInterVal)) { + balert.show('danger', $scope.languageJson.Config.SignalName.Storage, 3000);/*'存储周期/百分比阀值/绝对值阀值/统计周期不能输入字符!'*/ + return; + } + if ($scope.Signals.StoreInterval < 0 || $scope.Signals.PercentThreshold < 0 || + $scope.Signals.ChargeStoreInterVal < 0) { + balert.show('danger', $scope.languageJson.Config.SignalName.Storagcycle, 3000);/*'存储周期/百分比阀值/统计周期不能小于零!'*/ + return; + } + if ($scope.Signals.SignalType != 2 || $scope.Signals.ChannelNo != -2) { + if ($scope.SignalList) { + var is = false; + $scope.SignalList.forEach(function (item) { + if (item.ChannelNo == $scope.Signals.ChannelNo && item.SignalId != $scope.Signals.SignalId) { + is = true; + } + }); + if (is) { + balert.show('danger', $scope.languageJson.Config.SignalName.Repeateds, 3000);/*'通道号不能重复!'*/ + TemplateService.GetMaxChannelNo($scope.selectEvent.EquipmentTemplateId).then(function (data) { + $scope.Signals.ChannelNo = parseInt(data) + 1; + }); + return; + } + } + } + + if ($scope.btnName == $scope.languageJson.Config.Config.Modify) {/*"修改"*/ + TemplateService.SaveSignal($scope.Signals).then(function (ret) { + GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.SignalName.Successfully, 3000);/*'修改成功!'*/ + SignalSetterDialog.hide(); + }); + } else { + TemplateService.AddSignal($scope.Signals).then(function (ret) { + GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.SignalName.Added, 3000);/*'新增成功!'*/ + SignalSetterDialog.hide(); + }); + } + }; + //#endregion + + //#region 6.2.2.绑定信号基类 + var SignalBasetypeDialog = $modal({ + scope: $scope, + templateUrl: 'partials/SignalBasetype.html', + show: false + }); + $scope.SignalBaseTypeId = function () { + $scope.Signals.StartNum = 2; + $scope.Signals.EndNum = ""; + if ($scope.Signals.BaseTypeId == undefined || $scope.Signals.BaseTypeId == "") + $scope.Signals.IsBaseNameExt = "display:none;"; + TemplateService.GetEquipmentBaseTypeById($scope.Signals.EquipmentTemplateId).then(function (data) { + $scope.Signals.EquipmentBaseType = data; + $scope.CheckedEquipmentBaseType(); + SignalBasetypeDialog.$promise.then(SignalBasetypeDialog.show); + }); + // 重写 + $scope.confirmed = function () { + if ($scope.Signals.BaseTypeId == "" || $scope.Signals.BaseTypeId == undefined) + SignalBasetypeDialog.hide(); + else if ($scope.SignalList) { + var is = false; + $scope.SignalList.forEach(function (item) { + if (item.SignalId != $scope.Signals.SignalId && item.BaseTypeId == $scope.Signals.BaseTypeId) + is = true; + }); + if (is) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Repeated, 3000);/*'基类编号不能重复!'*/ + } else + SignalBasetypeDialog.hide(); + } + }; + $scope.clear = function () { + $scope.Signals.BaseTypeId = ""; + SignalBasetypeDialog.hide(); + }; + $scope.create = function () { + if ($scope.Signals.BaseTypeId == "" || $scope.Signals.BaseTypeId == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Title, 3000);/*'请选择基类信号!'*/ + return; + } + if ($scope.Signals.BaseNameExt != "" && $scope.Signals.BaseNameExt != undefined) { + if ($scope.Signals.StartNum == "" || $scope.Signals.StartNum == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/ + return; + } + if ($scope.Signals.EndNum != "" && $scope.Signals.EndNum != undefined) { + if (parseInt($scope.Signals.EndNum) <= parseInt($scope.Signals.StartNum)) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!'*/ + return; + } + } + if (isNaN($scope.Signals.StartNum) || ($scope.Signals.EndNum != "" && isNaN($scope.Signals.EndNum))) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*'开始序号和结束序号只能是数值!'*/ + return; + } + } + var num = parseInt(parseInt($scope.Signals.BaseTypeId) / 100); + var isBaseTypeId = false; + $scope.Template.BaseDic.forEach(function (item) { + if (item.BaseTypeId.indexOf(num) == 0) { + var no = parseInt(item.BaseTypeId) % 100; + if ($scope.Signals.EndNum == undefined || $scope.Signals.EndNum == "") { + if (no == $scope.Signals.StartNum) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*'新增基类信号已存在!'*/ + isBaseTypeId = true; + } + } else { + if (no >= parseInt($scope.Signals.StartNum) && no <= parseInt($scope.Signals.EndNum)) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*'新增序号区间有已存在的基类信号!'*/ + isBaseTypeId = true; + } + } + } + }); + if (isBaseTypeId) return; + TemplateService.InsertBaseType("TBL_SignalBaseDic", $scope.Signals.EquipmentBaseType, $scope.Signals.BaseTypeId, $scope.Signals.StartNum, $scope.Signals.EndNum).then(function (data) { + if (data) { + balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*'新增成功!'*/ + $scope.CheckedEquipmentBaseType(); + } else { + balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*'新增失败!'*/ + } + }); + }; + }; + $scope.CheckedEquipmentBaseType = function () { + if ($scope.Signals.EquipmentBaseType) { + TemplateService.GetBaseDicByBaseType("SignalBaseDic", $scope.Signals.EquipmentBaseType).then(function (data) { + $scope.Template.BaseDic = data; + if ($scope.Signals.BaseTypeId) + $scope.CheckedBaseTypeId($scope.Signals.BaseTypeId); + }); + } + }; + $scope.CheckedBaseTypeId = function (baseTypeId) { + $scope.Signals.IsBaseNameExt = "display:none;"; + $scope.Signals.IsSystem = "display:none;"; + $scope.Template.BaseDic.forEach(function (item) { + if (item.BaseTypeId == baseTypeId) { + $scope.Signals.BaseNameExt = item.BaseNameExt; + if (item.IsSystem == "false") + $scope.Signals.IsSystem = "display:block;"; + if (item.BaseNameExt != undefined && item.BaseNameExt != "") + $scope.Signals.IsBaseNameExt = "display:block;"; + } + }); + }; + var ConfirmBoxDialog = $modal({ + scope: $scope, + templateUrl: 'partials/confirmBox.html', + show: false + }); + $scope.removeSignalBaseDic = function () { + $scope.ConfirmBox = { + type: "DeleteSignalBaseDic", + equipmentTemplateId: undefined, + id: $scope.Signals.BaseTypeId + }; + $scope.message = $scope.languageJson.Config.Signalbase.Class;/*确定删除此基类信号吗?*/ + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + + //#region 6.2.3.删除信号 + $scope.deleteSignalClick = function (data) { + $scope.ConfirmBox = { + type: "DeleteSignal", + equipmentTemplateId: data.EquipmentTemplateId, + id: data.SignalId + }; + $scope.message = $scope.languageJson.Config.SignalName.Confirm + data.SignalName + $scope.languageJson.Config.SignalName.Data; + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + + //#region 6.2.4.批量修改存储 + var modifyStorageCycleDlg = $modal({ + scope: $scope, + templateUrl: 'partials/modifyStorageCycle.html', + show: false + }); + $scope.batchSignalConfigClk = function(selectedArr){ + $scope.signalResult = { + TemplateId:0, + SignalIdArray:[], //信号id数组类型存储全部选中id + StoreInterval:"", //存储周期 + AbsValueThreshold:"", //绝对值阀值 + PercentThreshold:"", //百分比阀值 + StaticsPeriod:"", //统计周期(时) + }; + if (selectedArr == undefined){ + return; + }else{ + selectedArr.forEach(function(item){ + if(item.checked){ + $scope.signalResult.SignalIdArray.push(item.SignalId) + $scope.signalResult.TemplateId = item.EquipmentTemplateId; + } + }) + } + if ($scope.signalResult.SignalIdArray.length == 0){ + balert.show('danger',$scope.languageJson.Configuration.SignalControl.ErrorPrompt, 3000);/*'请选择信号!'*/ + }else{ + modifyStorageCycleDlg.$promise.then(modifyStorageCycleDlg.show); + } + } + $scope.selectSignalListAll = function(selectedArr){ + if(selectedArr.checkedAll) { + selectedArr.forEach(function (item) { + item.checked = true; + }) + }else { + selectedArr.forEach(function (item) { + item.checked = false; + }) + } + } + $scope.selectSignal = function(selectedArr,el){ + let allCount = 0 + let dom = document.getElementById(el) + if(!dom) return + selectedArr.forEach(function(item){ + if(item.checked){ + allCount++ + } + }) + if(allCount == selectedArr.length){ + dom.indeterminate = false + selectedArr.checkedAll = true + }else if(allCount >= 1){ + dom.indeterminate = true + }else{ + dom.indeterminate = false + selectedArr.checkedAll= false + } + } + $scope.modifySignalCycle = function(){ + TemplateService.modifySignalCycle($scope.signalResult).then(function(date){ + if (date=="OK"){ + balert.show('success', $scope.languageJson.Config.Templatenames.Successfully, 3000);/*'修改成功!'*/ + GetSignalByEquipmentTemplateId($scope.signalResult.TemplateId); + modifyStorageCycleDlg.hide(); + }else{ + balert.show('danger', $scope.languageJson.Config.Templatenames.Fail, 3000);/*'修改失败!'*/ + } + }) + } + //#endregion + //#endregion + + //#region 6.3.信号/控制:信号/控制含义 + var BindingMeaningsDialog = $modal({ + scope: $scope, + templateUrl: 'partials/bindingMeanings.html', + show: false + }); + $scope.BindingMeanings = function (type, data) { + if (type == 'Signal') { + $scope.title = $scope.languageJson.Config.ControlSignal.Title;/*"信号"*/ + $scope.DataMeanings = getSignalMeanings(data); + } else { + $scope.title = $scope.languageJson.Config.ControlSignal.Control;/*"控制"*/ + $scope.DataMeanings = getControlMeanings(data); + } + BindingMeaningsDialog.$promise.then(BindingMeaningsDialog.show); + }; + function getSignalMeanings(data) { + var obj = []; + if (data.DataMeanings) { + data.DataMeanings.forEach(function (item) { + var cfg = {}; + if (item.StateValue == undefined) + cfg.Value = item.Value; + else + cfg.Value = item.StateValue; + cfg.Meanings = item.Meanings; + obj.push(cfg); + }); + } + obj.EquipmentTemplateId = data.EquipmentTemplateId; + if (obj.EquipmentTemplateId == undefined) obj.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId; + obj.Id = data.SignalId; + return obj; + }; + function getControlMeanings(data) { + var obj = []; + if (data.DataMeanings) { + data.DataMeanings.forEach(function (item) { + var cfg = {}; + if (item.ParameterValue == undefined) cfg.Value = item.Value; + else cfg.Value = item.ParameterValue; + cfg.Meanings = item.Meanings; + obj.push(cfg); + }); + } + obj.EquipmentTemplateId = data.EquipmentTemplateId; + if (obj.EquipmentTemplateId == undefined) obj.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId; + obj.Id = data.ControlId; + return obj; + }; + // 新增含义 + $scope.addMeaningsCol = function () { + var value = -1; + $scope.DataMeanings.forEach(function (item) { + if (item.Value > value) { + value = item.Value; + } + }); + value++; + var cfg = { + Value: value, + Meanings: $scope.languageJson.Config.Meaning + };/*'含义'*/ + $scope.DataMeanings.push(cfg); + }; + // 保存含义 + $scope.saveMeanings = function () { + if ($scope.title == $scope.languageJson.Config.ControlSignal.Title) {/*"信号"*/ + TemplateService.SaveSignalMeanings($scope.DataMeanings).then(function (data) { + balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/ + parseSignalMeanings($scope.DataMeanings); + }); + } else { + TemplateService.SaveControlMeanings($scope.DataMeanings).then(function (data) { + balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/ + parseControlMeanings($scope.DataMeanings); + }); + } + BindingMeaningsDialog.hide(); + }; + function parseSignalMeanings(data) { + $scope.Signals.Meanings = undefined; + $scope.Signals.DataMeanings = []; + data.forEach(function (sm) { + if ($scope.Signals.Meanings == undefined) { + $scope.Signals.Meanings = sm.Meanings; + } else { + $scope.Signals.Meanings += "/" + sm.Meanings; + } + $scope.Signals.DataMeanings.push(sm); + }); + if ($scope.Signals.DataMeanings.EquipmentTemplateId == undefined) + $scope.Signals.DataMeanings.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId; + $scope.Signals.DataMeanings.Id = $scope.Signals.SignalId; + }; + function parseControlMeanings(data) { + $scope.Controls.Meanings = undefined; + $scope.Controls.DataMeanings = []; + data.forEach(function (sm) { + if ($scope.Controls.Meanings == undefined) { + $scope.Controls.Meanings = sm.Meanings; + } else { + $scope.Controls.Meanings += "/" + sm.Meanings; + } + $scope.Controls.DataMeanings.push(sm); + }); + if ($scope.Controls.DataMeanings.EquipmentTemplateId == undefined) + $scope.Controls.DataMeanings.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId; + $scope.Controls.DataMeanings.Id = $scope.Controls.ControlId; + }; + // 删除含义 + $scope.deleteMeaningsClick = function ($index) { + $scope.DataMeanings.splice($index, 1); + }; + //#endregion + + //#region 6.4.事件管理 + //#region 6.4.1.新增/修改事件 + var EventSetterDialog = $modal({ + scope: $scope, + templateUrl: 'partials/EventSetter.html', + show: false + }); + // 新增信号弹出框 + $scope.AddEvent = function () { + $scope.btnName = $scope.languageJson.Config.ControlSignal.New/*"新增"*/; + TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Event').then(function (data) { + $scope.Events = { + EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId, + EventId: parseInt(data), + EventName: $scope.languageJson.Config.Details.NewName, + EventCategory: '2', + StartType: '1', + EndType: '3', + Enable: true, + Visible: true, + IsBaseNameExt: "display:none;" + };/*'新事件'*/ + EventSetterDialog.$promise.then(EventSetterDialog.show); + }); + if ($scope.SignalList == undefined) { + TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) { + TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) { + $scope.SignalMeaningsList = datas; + $scope.SignalList = parseSignalList(data, datas); + }); + }); + } + }; + // 修改信号弹出框 + $scope.updateEventClick = function (data) { + $scope.btnName = $scope.languageJson.Config.ControlSignal.Modify;/*"修改"*/ + $scope.Events = data; + if (data.Enable == 'true') $scope.Events.Enable = true; + if (data.Visible == 'true') $scope.Events.Visible = true; + EventSetterDialog.$promise.then(EventSetterDialog.show); + }; + $scope.ChangeRelateEventSignal = function (signalId) { + if ($scope.Events.StartExpression == undefined) + $scope.Events.StartExpression = ''; + $scope.Events.StartExpression += "[-1," + signalId + "]"; + $scope.SignalList.forEach(function (item) { + if (item.SignalId == signalId) + $scope.Events.EventName = item.SignalName + $scope.languageJson.Config.Details.Suffix;/*"事件"*/ + }); + }; + $scope.ClickEventsLi = function (symbol) { + if ($scope.Events.StartExpression == undefined) + $scope.Events.StartExpression = ""; + + var textDom = document.getElementById("EventExpression"); + var addStr = symbol; + + if (textDom.selectionStart || textDom.selectionStart == '0') { + $scope.Events.StartExpression = $scope.Events.StartExpression.substring(0, $scope.startPos) + addStr + + $scope.Events.StartExpression.substring($scope.endPos); + textDom.focus(); + textDom.selectionStart = $scope.startPos + addStr.length; + textDom.selectionEnd = $scope.startPos + addStr.length; + textDom.scrollTop = $scope.scrollTop; + } else { + $scope.Events.StartExpression += addStr; + textDom.focus(); + } + }; + $scope.saveEvent = function () { + if ($scope.Events.EventName == undefined || $scope.Events.EventName == '') { + balert.show('danger', $scope.languageJson.Config.ControlSignal.Empty, 3000);/*'事件名称不能为空!'*/ + return; + } + if ($scope.btnName == $scope.languageJson.Config.ControlSignal.New) {/*'新增'*/ + TemplateService.AddEvent($scope.Events).then(function (data) { + GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.ControlSignal.Added, 3000);/*'新增成功!'*/ + }); + } else { + TemplateService.SaveEvent($scope.Events).then(function (data) { + GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.ControlSignal.Modified, 3000);/*'修改成功!'*/ + }); + } + EventSetterDialog.hide(); + }; + + //#region 绑定事件&事件基类 + var BindingConditionDialog = $modal({ + scope: $scope, + templateUrl: 'partials/bindingCondition.html', + show: false + }); + $scope.BindingCondition = function (data) { + $scope.EventCondition = data.EventCondition; + if ($scope.EventCondition == undefined) + $scope.EventCondition = []; + $scope.EventCondition.EquipmentTemplateId = data.EquipmentTemplateId; + $scope.EventCondition.EventId = data.EventId; + BindingConditionDialog.$promise.then(BindingConditionDialog.show); + }; + $scope.addConditionCol = function () { + var number = -1; + if ($scope.EventCondition) { + $scope.EventCondition.forEach(function (item) { + if (item.EventConditionId > number) number = item.EventConditionId; + }); + } + var cfg = { + EventConditionId: ++number, + EventSeverity: '1', + StartOperation: '=', + StartCompareValue: '0', + StartDelay: '0', + Meanings: $scope.Events.EventName + }; + if ($scope.Events.EventCondition && $scope.Events.EventCondition.length > 0) + cfg.BaseTypeId = $scope.Events.EventCondition[0].BaseTypeId; + $scope.EventCondition.push(cfg); + }; + $scope.deleteConditionClick = function ($index) { + $scope.EventCondition.splice($index, 1); + }; + $scope.saveCondition = function () { + $scope.Events.Meanings = undefined; + TemplateService.SaveCondition($scope.EventCondition).then(function (data) { + $scope.EventCondition.forEach(function (ec) { + if ($scope.Events.Meanings == undefined) { + $scope.Events.Meanings = ec.EventConditionId; + } else { + $scope.Events.Meanings += "/" + ec.EventConditionId; + } + }); + $scope.Events.EventCondition = $scope.EventCondition; + balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/ + BindingConditionDialog.hide(); + }); + }; + // 基类事件基类 + var EventBasetypeDialog = $modal({ + scope: $scope, + templateUrl: 'partials/EventBasetype.html', + show: false + }); + $scope.EventBaseTypeId = function (data) { + $scope.Events.EventConditionId = data.EventConditionId; + $scope.Events.BaseTypeId = data.BaseTypeId; + $scope.Events.StartNum = 2; + $scope.Events.EndNum = ""; + TemplateService.GetEquipmentBaseTypeById($scope.Events.EquipmentTemplateId).then(function (data) { + $scope.Events.EquipmentBaseType = data; + $scope.CheckedEventEquipmentBaseType(); + EventBasetypeDialog.$promise.then(EventBasetypeDialog.show); + }); + }; + $scope.createEvent = function () { + if ($scope.Events.BaseTypeId == "" || $scope.Events.BaseTypeId == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Title, 3000);/*'请选择基类事件!'*/ + return; + } + if ($scope.Events.BaseNameExt != "" && $scope.Events.BaseNameExt != undefined) { + if ($scope.Events.StartNum == "" || $scope.Events.StartNum == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/ + return; + } + if ($scope.Events.EndNum != "" && $scope.Events.EndNum != undefined) { + if ($scope.Events.EndNum <= $scope.Events.StartNum) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!*/ + return; + } + } + if (isNaN($scope.Events.StartNum) || ($scope.Events.EndNum != "" && isNaN($scope.Events.EndNum))) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*开始序号和结束序号只能是数值!*/ + return; + } + } + var num = parseInt(parseInt($scope.Events.BaseTypeId) / 100); + var isBaseTypeId = false; + $scope.Template.EventBaseDic.forEach(function (item) { + if (item.BaseTypeId.indexOf(num) == 0) { + var no = parseInt(item.BaseTypeId) % 100; + if ($scope.Events.EndNum == undefined || $scope.Events.EndNum == "") { + if (no == $scope.Events.StartNum) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*新增基类信号已存在!*/ + isBaseTypeId = true; + } + } else { + if (no >= parseInt($scope.Events.StartNum) && no <= parseInt($scope.Events.EndNum)) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*新增序号区间有已存在的基类信号!*/ + isBaseTypeId = true; + } + } + } + }); + if (isBaseTypeId) return; + TemplateService.InsertBaseType("TBL_EventBaseDic", $scope.Events.EquipmentBaseType, $scope.Events.BaseTypeId, $scope.Events.StartNum, $scope.Events.EndNum).then(function (data) { + if (data) { + balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*新增成功!*/ + $scope.CheckedEventEquipmentBaseType(); + } else { + balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*新增失败!*/ + } + }); + }; + $scope.confirmedEvents = function () { + $scope.EventCondition.forEach(function (item) { + if ($scope.Events.EventConditionId == item.EventConditionId) + item.BaseTypeId = $scope.Events.BaseTypeId; + }); + EventBasetypeDialog.hide(); + }; + $scope.clearEvents = function () { + $scope.Events.BaseTypeId = ""; + EventBasetypeDialog.hide(); + }; + $scope.removeEventBaseDic = function () { + $scope.ConfirmBox = { + type: "DeleteEventBaseDic", + equipmentTemplateId: undefined, + id: $scope.Events.BaseTypeId + }; + $scope.message = $scope.languageJson.Config.Signalbase.Class;/*确定删除此基类信号吗?*/ + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + //#endregion + + //#region 6.4.2.删除事件 + $scope.deleteEventClick = function (data) { + $scope.ConfirmBox = { + type: "DeleteEvent", + equipmentTemplateId: data.EquipmentTemplateId, + id: data.EventId + }; + $scope.message = $scope.languageJson.Config.SignalName.Confirm + data.EventName + $scope.languageJson.Config.SignalName.Data;//"确定删除" / 事件的数据 + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + + //#region 6.4.3.屏蔽事件 + var shieldEventDlg = $modal({ + scope: $scope, + templateUrl: 'partials/eventShieldStatus.html', + show: false + }); + $scope.ShieldEvent = function () { + $scope.ShieldTemplate = getEquipmentTemplateById($scope.selectEvent.EquipmentTemplateId); + + shieldEventDlg.$promise.then(shieldEventDlg.show); + }; + function getEquipmentTemplateById(id) { + var obj = {}; + if ($scope.equipmentTemplates) { + $scope.equipmentTemplates.forEach(function (item) { + if (item.EquipmentTemplateId == id) + obj = item; + }); + } + if ($scope.EventList) { + obj.Shield = true; + $scope.EventList.forEach(function (item) { + if (item.Shield == false) + obj.Shield = false; + }); + } + return obj; + } + $scope.checkShieldAll = function (equipmentTemplateId, shieldName, isShield) { + if (shieldName !== undefined) { + eval(shieldName + " = !" + shieldName); + } + isShield = !isShield; + TemplateService.ShieldEnableEvent(equipmentTemplateId, "", isShield).then(function (data) { + console.log("ShieldEnableEvent:" + data); + if ($scope.EventList) { + $scope.EventList.forEach(function (item) { + item.Shield = isShield; + }); + } + }); + }; + $scope.checkShieldEvent = function (row, isShield) { + if (isShield == undefined) { + row.Shield = !row.Shield; + isShield = row.Shield; + } else + isShield = !isShield; + TemplateService.ShieldEnableEvent($scope.ShieldTemplate.EquipmentTemplateId, row.EventId, isShield).then(function (data) { + console.log("ShieldEnableEvent:" + data); + }); + }; + $scope.ShieldEventSave = function () { + balert.show('success', $scope.languageJson.Config.ShieldEventBox.Prompt.succeed, 3000);/*保存成功,请点击'配置生效'按钮!*/ + shieldEventDlg.hide(); + }; + //#endregion + //#endregion + + //#region 6.5.控制管理 + //#region 6.5.1.新增/修改控制 + var ControlSetterDialog = $modal({ + scope: $scope, + templateUrl: 'partials/ControlSetter.html', + show: false + }); + // 新增控制弹出框 + $scope.AddControl = function () { + $scope.btnName = $scope.languageJson.Config.Setting.New/*"新增"*/; + TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Control').then(function (data) { + $scope.Controls = { + EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId, + ControlId: parseInt(data), + ControlName: $scope.languageJson.Config.Con.NewName, + ControlCategory: '1', + ControlSeverity: '1', + ControlType: '1', + DataType: '0', + CmdToken: '', + CommandType: '1', + MaxValue: '0.0', + MinValue: '0.0', + Meanings: '', + Enable: true, + Visible: true, + BaseTypeId: '' + };/*'新控制'*/ + ControlSetterDialog.$promise.then(ControlSetterDialog.show); + }); + }; + // 修改控制弹出框 + $scope.updateControlClick = function (data) { + $scope.btnName = $scope.languageJson.Config.ControlSignal.Modify;/*"修改"*/ + $scope.Controls = data; + if (data.Enable == 'true') $scope.Controls.Enable = true; + if (data.Visible == 'true') $scope.Controls.Visible = true; + ControlSetterDialog.$promise.then(ControlSetterDialog.show); + }; + $scope.ChangeRelateControlSignal = function (signalId) { + $scope.SignalList.forEach(function (item) { + if (item.SignalId == signalId) + $scope.Controls.ControlName = item.SignalName + $scope.languageJson.Config.ControlSignal.Suffix;/*"控制"*/ + }); + }; + $scope.saveControl = function () { + var controlSignal = $scope.languageJson.Config.ControlSignal; + if ($scope.Controls.ControlName == "" || $scope.Controls.ControlName == undefined) { + balert.show('danger', controlSignal.Controls, 3000);/*'控制名称不能为空!'*/ + return; + } + if ($scope.btnName == controlSignal.Modify) {/*"修改"*/ + TemplateService.SaveControl($scope.Controls).then(function (ret) { + GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', controlSignal.Modified, 3000);/*'修改成功!'*/ + ControlSetterDialog.hide(); + }); + } else { + TemplateService.AddControl($scope.Controls).then(function (ret) { + GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', controlSignal.Added, 3000);/*'新增成功!'*/ + ControlSetterDialog.hide(); + }); + } + }; + // 控制基类 + var ControlBasetypeDialog = $modal({ + scope: $scope, + templateUrl: 'partials/ControlBasetype.html', + show: false + }); + $scope.ControlBaseTypeId = function (data) { + $scope.Controls.StartNum = 2; + $scope.Controls.EndNum = ""; + TemplateService.GetEquipmentBaseTypeById($scope.Controls.EquipmentTemplateId).then(function (data) { + $scope.Controls.EquipmentBaseType = data; + if ($scope.Controls.BaseTypeId == "" || $scope.Controls.BaseTypeId == undefined) + $scope.Controls.IsBaseNameExt = "display:none;"; + $scope.CheckedControlEquipmentBaseType(); + ControlBasetypeDialog.$promise.then(ControlBasetypeDialog.show); + }); + }; + $scope.createControl = function () { + if ($scope.Controls.BaseTypeId == "" || $scope.Controls.BaseTypeId == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Base, 3000);/*'请选择基类事件!'*/ + return; + } + if ($scope.Controls.BaseNameExt != "" && $scope.Controls.BaseNameExt != undefined) { + if ($scope.Controls.StartNum == "" || $scope.Controls.StartNum == undefined) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/ + return; + } + if ($scope.Controls.EndNum != "" && $scope.Controls.EndNum != undefined) { + if ($scope.Controls.EndNum <= $scope.Controls.StartNum) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!'*/ + return; + } + } + if (isNaN($scope.Controls.StartNum) || ($scope.Controls.EndNum != "" && isNaN($scope.Controls.EndNum))) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*'开始序号和结束序号只能是数值!'*/ + return; + } + } + var num = parseInt(parseInt($scope.Controls.BaseTypeId) / 100); + var isBaseTypeId = false; + $scope.Template.ControlBaseDic.forEach(function (item) { + if (item.BaseTypeId.indexOf(num) == 0) { + var no = parseInt(item.BaseTypeId) % 100; + if ($scope.Controls.EndNum == undefined || $scope.Controls.EndNum == "") { + if (no == $scope.Events.StartNum) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*'新增基类信号已存在!'*/ + isBaseTypeId = true; + } + } else { + if (no >= parseInt($scope.Controls.StartNum) && no <= parseInt($scope.Controls.EndNum)) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*'新增序号区间有已存在的基类信号!'*/ + isBaseTypeId = true; + } + } + } + }); + if (isBaseTypeId) return; + TemplateService.InsertBaseType("TBL_CommandBaseDic", $scope.Controls.EquipmentBaseType, $scope.Controls.BaseTypeId, $scope.Controls.StartNum, $scope.Controls.EndNum).then(function (data) { + if (data) { + balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*'新增成功!'*/ + $scope.CheckedControlEquipmentBaseType(); + } else { + balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*'新增失败!'*/ + } + }); + }; + $scope.confirmedControls = function () { + if ($scope.ControlList) { + var is = false; + $scope.ControlList.forEach(function (item) { + if (item.ControlId != $scope.Controls.ControlId && item.BaseTypeId == $scope.Controls.BaseTypeId) + is = true; + }); + if (is) { + balert.show('danger', $scope.languageJson.Config.Signalbase.Repeated, 3000);/*'基类编号不能重复!'*/ + } else + ControlBasetypeDialog.hide(); + } + }; + $scope.clearControls = function () { + $scope.Controls.BaseTypeId = ""; + ControlBasetypeDialog.hide(); + }; + $scope.removeControlBaseDic = function () { + $scope.ConfirmBox = { + type: "DeleteCommandBaseDic", + equipmentTemplateId: undefined, + id: $scope.Controls.BaseTypeId + }; + $scope.message = $scope.languageJson.Config.Signalbase.Class;/*"确定删除此基类信号吗?"*/ + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + + //#region 6.5.2.删除控制 + $scope.deleteControlClick = function (data) { + $scope.ConfirmBox = { + type: "DeleteControl", + equipmentTemplateId: data.EquipmentTemplateId, + id: data.ControlId + }; + $scope.message = $scope.languageJson.Config.SignalName.Confirm + data.ControlName + $scope.languageJson.Config.SignalName.Data;//"确定删除“" / 控制的数据 + ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show); + }; + //#endregion + //#endregion + + //#region 6.6.排序 + $scope.sortingOrder = undefined; + $scope.reverse = false; + $scope.SortBy = function (newSortingOrder) { + if ($scope.sortingOrder == newSortingOrder) { + $scope.reverse = !$scope.reverse; + } + $scope.sortingOrder = newSortingOrder; + // 遍历 + $('th i').each(function () { + // 删除其他箭头样式 + $(this).removeClass("fa-chevron-down"); + $(this).removeClass("fa-chevron-up"); + }); + if ($scope.reverse) { + $('th.' + newSortingOrder + ' i').removeClass('fa-chevron-down').addClass('fa-chevron-up'); + } else { + $('th.' + newSortingOrder + ' i').removeClass('fa-chevron-up').addClass('fa-chevron-down'); + } + + }; + $scope.SortByChannelNo = function (newSortingOrder) { + $scope.SignalList.forEach(function (item) { + if (parseInt(item.ChannelNo) < 10 && parseInt(item.ChannelNo) > 0) + item.No = "1000" + item.ChannelNo; + else if (parseInt(item.ChannelNo) < 100 && parseInt(item.ChannelNo) > 0) + item.No = "100" + item.ChannelNo; + else if (parseInt(item.ChannelNo) < 1000 && parseInt(item.ChannelNo) > 0) + item.No = "10" + item.ChannelNo; + else if (parseInt(item.ChannelNo) < 10000 && parseInt(item.ChannelNo) > 0) + item.No = "1" + item.ChannelNo; + else + item.No = item.ChannelNo; + }); + $scope.reverse = !$scope.reverse; + $scope.sortingOrder = "No"; + // 遍历 + $('th i').each(function () { + // 删除其他箭头样式 + $(this).removeClass("fa-chevron-down"); + $(this).removeClass("fa-chevron-up"); + }); + if ($scope.reverse) { + $('th.' + newSortingOrder + ' i').removeClass('fa-chevron-down').addClass('fa-chevron-up'); + } else { + $('th.' + newSortingOrder + ' i').removeClass('fa-chevron-up').addClass('fa-chevron-down'); + } + }; + //#endregion + + //#region 公共代码 + $scope.ok = function () { + if ($scope.ConfirmBox == undefined) return; + if ($scope.ConfirmBox.type == "BatchBaseTypeId") { + TemplateService.BatchBaseTypeId($scope.selectEvent.EquipmentTemplateId).then(function (ret) { + GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.Templatenames.Batch, 3000);/*'批处理完成!'*/ + }); + } else if ($scope.ConfirmBox.type == "DeleteSignal") { + TemplateService.DeleteSignal($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) { + GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + }); + } else if ($scope.ConfirmBox.type == "DeleteEvent") { + TemplateService.DeleteEvent($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) { + GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + }); + } else if ($scope.ConfirmBox.type == "DeleteControl") { + TemplateService.DeleteControl($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) { + GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId); + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + }); + } else if ($scope.ConfirmBox.type == "DeleteSignalBaseDic") { + TemplateService.DeleteBaseDic("SignalBaseDic", $scope.ConfirmBox.id).then(function (data) { + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + $scope.CheckedEquipmentBaseType(); + }); + } else if ($scope.ConfirmBox.type == "DeleteEventBaseDic") { + TemplateService.DeleteBaseDic("EventBaseDic", $scope.ConfirmBox.id).then(function (data) { + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + $scope.CheckedEventEquipmentBaseType(); + }); + } else if ($scope.ConfirmBox.type == "DeleteCommandBaseDic") { + TemplateService.DeleteBaseDic("CommandBaseDic", $scope.ConfirmBox.id).then(function (data) { + balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/ + $scope.CheckedControlEquipmentBaseType(); + }); + } + ConfirmBoxDialog.hide(); + }; + $scope.CheckedEventEquipmentBaseType = function () { + if ($scope.Events.EquipmentBaseType) { + TemplateService.GetBaseDicByBaseType("EventBaseDic", $scope.Events.EquipmentBaseType).then(function (data) { + $scope.Template.EventBaseDic = data; + $scope.CheckedEventBaseTypeId($scope.Events.BaseTypeId); + }); + } + }; + $scope.CheckedEventBaseTypeId = function (baseTypeId) { + $scope.Events.IsBaseNameExt = "display:none;"; + $scope.Events.IsSystem = "display:none;"; + $scope.Template.EventBaseDic.forEach(function (item) { + if (item.BaseTypeId == baseTypeId) { + $scope.Events.BaseNameExt = item.BaseNameExt; + if (item.IsSystem == "false") + $scope.Events.IsSystem = "display:block;"; + if (item.BaseNameExt != undefined && item.BaseNameExt != "") + $scope.Events.IsBaseNameExt = "display:block;"; + } + }); + }; + $scope.CheckedControlEquipmentBaseType = function () { + if ($scope.Controls.EquipmentBaseType) { + TemplateService.GetBaseDicByBaseType("CommandBaseDic", $scope.Controls.EquipmentBaseType).then(function (data) { + $scope.Template.ControlBaseDic = data; + if ($scope.Controls.BaseTypeId) + $scope.CheckedControlBaseTypeId($scope.Controls.BaseTypeId); + }); + } + }; + $scope.CheckedControlBaseTypeId = function (baseTypeId) { + $scope.Controls.IsBaseNameExt = "display:none;"; + $scope.Controls.IsSystem = "display:none;"; + $scope.Template.ControlBaseDic.forEach(function (item) { + if (item.BaseTypeId == baseTypeId) { + $scope.Controls.BaseNameExt = item.BaseNameExt; + if (item.IsSystem == "false") + $scope.Controls.IsSystem = "display:block;"; + if (item.BaseNameExt != undefined && item.BaseNameExt != "") + $scope.Controls.IsBaseNameExt = "display:block;"; + } + }); + }; + //#endregion + //#endregion + } +]); diff --git a/applications/WebConfigure/web/fsu_model/js/login.js b/applications/WebConfigure/web/fsu_model/js/login.js new file mode 100644 index 0000000..b3619c5 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/js/login.js @@ -0,0 +1,589 @@ +//debugger; + +(function() { + var username = localStorage.getItem("username"); + var shoot = false + localStorage.clear(); + localStorage.setItem("username",username); + getLogoAndTitle(); + if (!window.JSON) { + window.JSON = { + parse: function(sJSON) { + return eval('(' + sJSON + ')'); + }, + stringify: (function() { + var toString = Object.prototype.toString; + var isArray = Array.isArray || function(a) { + return toString.call(a) === '[object Array]'; + }; + var escMap = { + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t' + }; + var escFunc = function(m) { + return escMap[m] || '\\u' + (m.charCodeAt(0) + 0x10000).toString(16).substr(1); + }; + var escRE = /[\\"\u0000-\u001F\u2028\u2029]/g; + return function stringify(value) { + if (value === null) { + return 'null'; + } else if (typeof value === 'number') { + return isFinite(value) ? value.toString() : 'null'; + } else if (typeof value === 'boolean') { + return value.toString(); + } else if (typeof value === 'object') { + if (typeof value.toJSON === 'function') { + return stringify(value.toJSON()); + } else if (isArray(value)) { + var res = '['; + for (var i = 0; i < value.length; i++) + res += (i ? ', ' : '') + stringify(value[i]); + return res + ']'; + } else if (toString.call(value) === '[object Object]') { + var tmp = []; + for (var k in value) { + if (value.hasOwnProperty(k)) + tmp.push(stringify(k) + ': ' + stringify(value[k])); + } + return '{' + tmp.join(', ') + '}'; + } + } + return '"' + value.toString().replace(escRE, escFunc) + '"'; + }; + })() + }; + } + + $(".input-group input").on('keydown', function (e) { + var key = e.which; + if (key == 13) { + e.preventDefault(); + $("#btnLogin").click(); + } + }); + + $('#LoginId').click(function(event){ + if($("#LoginId").get(0).checked){ + var username = $("#username").val(); + var pwd = $("#pwd").val(); + if(username != "" && pwd != "") + sessionStorage.setItem("UserNameAndPwd",username+"|"+baseEncode(username +"|"+pwd)); + }else{ + $("#pwd").val(""); + sessionStorage.setItem("UserNameAndPwd",""); + } + }); + + + $("#username").blur(function (){ + var re = /'|"|=|;|#|>|<|%/gi; + var value = $(this).val() + if(value) { + if (re.test(value)) { + var language = sessionStorage.getItem("languageJson.language"); + // $(this).val(value.replaceAll(re, "")) + $(this).val('') + if (language == "Chinese") { + loginPrompt("请勿输入非法字符", 3000, true); + } else { + loginPrompt("please don't enter illegal characters" , 3000, true); + } + } + } + }) + + $("#btnLogin").click(function(event) { + $("#showtime").remove(); + + if(Remain == 0 || Remain == "0"){ + var language = JSON.parse(sessionStorage.getItem("languageJson")); + $("#errText").text(language.Login.License.Prompt);/*"试用期结束,请点击右下角注册!"*/ + return; + } + + var dataObj = {}; + var dataAarray = []; + var username = $("#username").val(); + var pwd = $("#pwd").val(); + + var dataValue = baseEncode(username +"|"+pwd); + + if($("#LoginId").get(0).checked){ + var split = ["",""]; + if(sessionStorage.getItem("UserNameAndPwd") != undefined) + split = sessionStorage.getItem("UserNameAndPwd").split("|"); + //存储的用户名和密码与记录的用户名和密码相同 + if(username == split[0] && pwd == split[1]){ + dataValue = split[1]; + sessionStorage.setItem("UserNameAndPwd",username+"|"+dataValue); + }else + sessionStorage.setItem("UserNameAndPwd",username+"|"+baseEncode(username +"|"+pwd)); + } + + dataAarray.push({ + K: "user.login", + V: dataValue + }); + + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + + $.post('/data', encoded, function(data, textStatus, xhr) { + var resObj = JSON.parse(data); + var res = resObj[0].V; + + if (res.indexOf("OK") != -1){ + doShoot(username) + var result = res.split("|"); + localStorage.setItem("username",username); + localStorage.setItem("token",result[1]); + localStorage.setItem("versions",result[2]); + localStorage.setItem("isAdmin",result[3]); + localStorage.setItem("needLogin","true"); + localStorage.setItem("systemStyle",result[5]); + //上一次登入记录 + localStorage.setItem("LastLoginDate",result[6]); + localStorage.setItem("LastLoginIP",result[7]); + //自动登出时间 + localStorage.setItem("logoutTime",result[8]); + + localStorage.setItem("showHelp",true); + //$(window.location).attr("href", "index.html"); + $(window.location).attr("href", "index.html#/deviceInfo/0"); + }else{ + if(languageLogin == undefined){ + getLanguage(); + } + var prompt = languageLogin.Prompt; + + var maxError = 0; + if(res.indexOf("|") > -1) { + var split = res.split("|"); + res = split[0]; + maxError = split[1]; + } + if(res == "Password Error"){//密码错误 + result = prompt.EnterError;//"输入帐户或密码错误"; 不提示详细错误原因 + initLoginLimit(languageLogin.Limit,maxError); + }else if(res == "Username And Password Not Entered"){//未输入帐户和密码 + result = prompt.NotEntered;//"未输入用户名和密码"; + }else if(res == "Enter Username And Password Error"){//输入帐户和密码错误 + result = prompt.EnterError;//"输入帐户或密码错误"; 不提示详细错误原因 + }else if(res == "DataBase Connection Failed"){//数据库连接失败 + result = prompt.DataBaseFailed;//"数据库连接失败"; + }else if(res == "Overdue"){ + result = prompt.Overdue;//"用户已过期,请联系管理员授权!"; + } + loginPrompt(result, 2000, true); + } + }); + //删除Cookie + setCookie('activeText',event.currentTarget.outerText,-1); + function setCookie(c_name,value,expiredays) + { + var exdate=new Date(); + exdate.setDate(exdate.getDate()+expiredays); + document.cookie=c_name+ "=" +escape(value)+ + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); + } + }); + + + function getLogoAndTitle(){ + if(sessionStorage.getItem("userLogo") != null && sessionStorage.getItem("userLogo") != ""){ + $(".Loginlogo").attr("src", sessionStorage.getItem("userLogo")); + } + var dataObj = {}; + var dataArray = []; + dataArray.push({ + K: "user.findInterfaceConfig", + V: "" + }); + dataObj.data = dataArray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr) { + var resObj = JSON.parse(data); + var res = resObj[0].V; + var ret = angular.fromJson(res); + var datas = ret.ret; + + var userTitle = datas[0].Title; + var userLogo = datas[0].LoginLogoImage; + sessionStorage.setItem("userTitle", userTitle); + sessionStorage.setItem("userLogo", userLogo); + $(document).attr("title", userTitle); + $(".logotitle").text(userTitle); + $(".Loginlogo").attr("src", userLogo); + }); + + if(sessionStorage.getItem("UserNameAndPwd") != undefined && sessionStorage.getItem("UserNameAndPwd")!= ""){ + var unap = sessionStorage.getItem("UserNameAndPwd").split("|"); + $("#username").val(unap[0]); + $("#pwd").val(unap[1]); + $("#LoginId").get(0).checked = true; + } + } + + + function baseEncode(str){ + var c1, c2, c3; + var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var i = 0; + var len= str.length; + var string = ''; + + while (i < len){ + c1 = str.charCodeAt(i++) & 0xff; + if (i == len){ + string += base64EncodeChars.charAt(c1 >> 2); + string += base64EncodeChars.charAt((c1 & 0x3) << 4); + string += "=="; + break; + } + c2 = str.charCodeAt(i++); + if (i == len){ + string += base64EncodeChars.charAt(c1 >> 2); + string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + string += base64EncodeChars.charAt((c2 & 0xF) << 2); + string += "="; + break; + } + c3 = str.charCodeAt(i++); + string += base64EncodeChars.charAt(c1 >> 2); + string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + string += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); + string += base64EncodeChars.charAt(c3 & 0x3F) + } + return string; + } + + function getCookie(c_name){ + if (document.cookie.length>0) + { + c_start=document.cookie.indexOf(c_name + "="); + if (c_start!=-1) + { + c_start=c_start + c_name.length+1; + c_end=document.cookie.indexOf(";",c_start); + if (c_end==-1) c_end=document.cookie.length; + return unescape(document.cookie.substring(c_start,c_end)); + } + } + return "" + } + + var Remain = 999; + function checkoutLicense() { + var dataObj = {}; + var dataAarray = []; + dataAarray.push({ + K: "license.CheckoutLicense", + V: "" + }); + + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + resObj = JSON.parse(resObj[0].V); + if(resObj.IsShow == false || resObj.IsShow == "false"){ + $("#btnLicense").hide(); + }else{ + //linux系统隐藏注册按钮 + if(window.navigator.userAgent.indexOf("Windows") == -1) + $("#btnLicense").hide(); + else { + $("#btnLicense").show(); + $("#btnLicense span").html(resObj.Remain); + } + Remain = resObj.Remain; + } + }); + } + + var languageLogin = undefined; + //中英文切换 + function getLanguage(){ + var dataObj = {}; + var dataAarray = []; + dataAarray.push({ + K: "language.GetLoginLanguageJson", + V: "" + }); + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + var json = JSON.parse(resObj[0].V); + + languageLogin = json.Login; + parseValue(json); + + setLanguageSession(json.Language); + }); + } + getLanguage(); + + function parseValue(json){ + //登录 + $("#username").attr("placeholder",json.Login.UserName); + $("#pwd").attr("placeholder",json.Login.Password); + $("#hint").html(json.Login.Hint); + $("#btnLogin").html(json.Login.Login); + $("#btnLicense").html(json.Login.Probation); + //风格 + $("#ui-style").html(json.Login.Style.Title); + $("#ui-blue").html(json.Login.Style.SkyBlue); + $("#ui-white").html(json.Login.Style.TechnologyWhite); + //语言 + $("#language").val(json.Language); + //License + $("#Register-License").html(json.Login.License.Title); + $(".Generate-License").html(json.Login.License.GenerateLicense); + $("#Upload-License").html(json.Login.License.UploadLicense); + $("#Upload-License-Button").html(json.Login.License.UploadLicenseButton); + + checkoutLicense(); + } + + $("#language").change(function(){ + var language = $('#language option:selected').val(); + + var dataObj = {}; + var dataAarray = []; + dataAarray.push({ + K: "language.SetLanguage", + V: language + }); + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + var json = JSON.parse(resObj[0].V); + parseValue(json); + + setLanguageSession(json.Language); + }); + }); + + //存储中英文到Session + function setLanguageSession(language){ + var url = undefined; + if(language == "Chinese") url = "../data/language/ch.json"; + else url = "../data/language/en.json"; + $.getJSON(url,function(data){ + sessionStorage.setItem('languageJson.language', data.Language); + sessionStorage.setItem("languageJson",JSON.stringify(data)); + + initLoginLimit(data.Login.Limit,undefined); + }); + } + + //是否需要登录 + function needLogin(){ + var dataObj = {}; + var dataAarray = []; + dataAarray.push({ + K: "user.needLogin", + V: "" + }); + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + var res = resObj[0].V; + if(res != "TRUE"){ + var result = res.split("|"); + localStorage.setItem("versions",result[0]); + localStorage.setItem("isAdmin",result[1]); + localStorage.setItem("needLogin","false"); + localStorage.setItem("systemStyle",result[3]); + localStorage.setItem("username",result[4]); + + localStorage.setItem("showHelp",true); + //$(window.location).attr("href", "index.html"); + $(window.location).attr("href", "index.html#/deviceInfo/0"); + } + }); + } + needLogin(); + + function loginPrompt(result,closeTime,is){ + jqueryAlert({ + 'content' : '
'+ result+ + '
' + + '
', + 'modal' : true, + 'isModalClose':is, + 'closeTime' : closeTime, + 'minWidth' : '450' + }); + } + + //#region 登录限制 + //页面初始化 或 点击登入 密码错误 时执行此函数 + function initLoginLimit(limit,maxError){ + if(limit == undefined) + limit = JSON.parse(sessionStorage.getItem('languageJson')).Login.Limit; + + var dataObj = {}; + var dataArray = []; + dataArray.push({ + K: "user.getMaxError", + V:"" + }); + dataObj.data = dataArray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr) { + var numError = JSON.parse(data); + var split = numError[0].V.split("|"); + var unlockTime = 1000; + if(maxError == undefined){ + maxError = split[0]; + unlockTime = 0; + } + if(parseInt(split[1]) > unlockTime){ + unlockTime = parseInt(split[1]); + } + if(maxError == undefined || maxError == "null" || unlockTime == 0) return; + + // console.log("MaxError:"+maxError+", Time:"+unlockTime); + timeTransition(maxError,limit.Abnormal,limit,unlockTime); + }); + } + // 时间转换 + function timeTransition(maxError,abnormal,limit,countdown) { + var unlock = limit.Unlock2; + abnormal = abnormal.replace(/\[Count\]/ig, maxError); + var endTime = null; + maxError = parseInt(maxError); + if(maxError >= 10){ + endTime = new Date(new Date().getTime()+countdown); + unlock = limit.Unlock; + }else{ + switch (maxError) { + case 5: + endTime = new Date(new Date().getTime()+countdown); + unlock = limit.Unlock3; + break; + case 6: + endTime = new Date(new Date().getTime()+countdown); + break; + case 7: + endTime = new Date(new Date().getTime()+countdown); + break; + case 8: + endTime = new Date(new Date().getTime()+countdown); + break; + case 9: + endTime = new Date(new Date().getTime()+countdown); + break; + } + } + + if(maxError < 5 ){ + countdown = 1000; + }else{ + loginPrompt(abnormal,countdown,false); + } + + + + //若 numError为5或以上则每秒都执行一次该方法 + if(maxError >= 5){ + //延迟一秒执行自己,输入错误五次原密码 + var interval = setInterval(function(){ + var bool= countTime(endTime,unlock); + if(bool == true){ + clearInterval(interval); + } + },1000); + } + } + + function countTime(endTime,unlock) { + //开始时间 + var nowDate = new Date(); + //结束时间 + var date = (endTime - nowDate); + var leave1 = date%(24*3600*1000); //计算天数后剩余的毫秒数 + var hours = Math.floor(leave1/(3600*1000)); + //计算相差分钟数 + var leave2 = leave1%(3600*1000); //计算小时数后剩余的毫秒数 + var minutes = Math.floor(leave2/(60*1000)); + //计算相差秒数 + var leave3 = leave2%(60*1000); //计算分钟数后剩余的毫秒数 + var seconds = Math.round(leave3/1000); + //console.log(" 相差 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒"); + + if(hours <=0 && minutes <= 0 && seconds <= 0){ + return true; + } + //输出到页面 + unlock = unlock.replace(/\[h\]/ig, hours); + unlock = unlock.replace(/\[m\]/ig, minutes); + unlock = unlock.replace(/\[s\]/ig, seconds); + var showtime = $(".showtime:last") + showtime.html("解锁倒计时:" + minutes + "分钟" + seconds + "秒"); + showtime.html(unlock); + } + //#endregion + + //#region 登录抓拍 + function doShoot(username,callback){ + if(!shoot) return + var dataObj = {}; + var dataAarray = []; + var dataV = baseEncode(shoot + '|' + username) + dataAarray.push({ + K: "videoCapture.ManualCapture", + V: dataV + }); + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + if(resObj[0].V == 'OK'){ + callback&&callback('OK') + } + }); + } + + function getShootConfig(){ + if(window.navigator.userAgent.indexOf("Windows") != -1) return + var dataObj = {}; + var dataAarray = []; + dataAarray.push({ + K: "videoCapture.GetAllInsertCapture", + V: "" + }); + dataObj.data = dataAarray; + + var encoded = JSON.stringify(dataObj); + $.post('/data', encoded, function(data, textStatus, xhr){ + var resObj = JSON.parse(data); + var shootConfigList = JSON.parse(resObj[0].V).ret + shootConfigList.forEach(function(item){ + if(item.Type == '2'){ + shoot = item.Mode + } + }); + }); + } + getShootConfig(); + //#endregion +})(); diff --git a/applications/WebConfigure/web/fsu_model/partials/addEquipment.html b/applications/WebConfigure/web/fsu_model/partials/addEquipment.html new file mode 100644 index 0000000..6f49b68 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/partials/addEquipment.html @@ -0,0 +1,114 @@ + + \ No newline at end of file diff --git a/applications/WebConfigure/web/fsu_model/partials/config.html b/applications/WebConfigure/web/fsu_model/partials/config.html new file mode 100644 index 0000000..88dafc8 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/partials/config.html @@ -0,0 +1,471 @@ +
+
+
+

{{languageJson.Config.Head}} > {{languageJson.Config.Headle}} + + + + +

+
+ +
+ + +
+ + + +
+
+
+

+ + + + + +

+
+
+
+ {{languageJson.Config.Config.List}} +
+
+ + + + + + + + + + + + +
{{row.EquipmentId}}{{row.EquipmentName}}{{row.DllPath}}{{row.Address}}{{row.PortNo}}{{row.Setting}}{{row.Vendor}} + + +
+ +
+ +
+
+
+
+
+

+

+
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+
+
+
+

+

+
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+ + +
+
+ + +
+ +
+ + {{languageJson.Config.Room.Whether}} +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+ + + +
+
+ +
+
+
+
+
+ + +
+
+
+ {{languageJson.Config.Template.List}} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{languageJson.Config.Equipment.Choose}}{{languageJson.Config.Template.ID}}{{languageJson.Config.Template.Name}}{{languageJson.Config.Template.Type}}{{languageJson.Config.Template.Channel}}{{languageJson.Config.Template.Data}}{{languageJson.Config.Template.Cycle}}{{languageJson.Config.Template.Abs}}{{languageJson.Config.Template.Base}}{{languageJson.Config.Template.Operation}}
+ + + +
{{row.SignalId}}{{row.SignalName}}{{row.SignalCategoryName}}{{row.ChannelNo}}{{row.DataTypeName}}{{row.StoreInterval}}{{row.AbsValueThreshold}}{{row.BaseTypeId}} + +    + +
+
+
+
+
+
+
+ {{languageJson.Config.Events.Event}} + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{languageJson.Config.Events.ID}}{{languageJson.Config.Events.Name}}{{languageJson.Config.Events.Category}}{{languageJson.Config.Events.Start}}{{languageJson.Config.Events.Level}}{{languageJson.Config.Events.Expression}}{{languageJson.Config.Events.Associated}}{{languageJson.Config.Events.Operation}}
+ + + + + +
{{row.EventId}}{{row.EventName}}{{row.EventCategoryName}}{{row.StartTypeName}}{{row.EventSeverityName}}{{row.StartExpression}}{{row.SignalName}} + +    + +
+
+
+
+
+
+
+ {{languageJson.Config.Control.Control}} + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{languageJson.Config.Control.ID}}{{languageJson.Config.Control.Name}}{{languageJson.Config.Control.Command}}{{languageJson.Config.Control.String}}{{languageJson.Config.Control.Type}}{{languageJson.Config.Control.Class}}{{languageJson.Config.Control.Data}}{{languageJson.Config.Control.Signal}}{{languageJson.Config.Control.Meaning}}{{languageJson.Config.Control.Operation}}
+ + + + + + + +
{{row.ControlId}}{{row.ControlName}}{{row.ControlCategoryName}}{{row.CmdToken}}{{row.CommandTypeName}}{{row.ControlTypeName}}{{row.DataTypeName}}{{row.SignalName}}{{row.Meanings}} + +    + +
+
+
+
+
+
+
+ +
+
+ +
+
+
diff --git a/applications/WebConfigure/web/fsu_model/partials/deviceInfo.html b/applications/WebConfigure/web/fsu_model/partials/deviceInfo.html new file mode 100644 index 0000000..9d2d76e --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/partials/deviceInfo.html @@ -0,0 +1,152 @@ +
+
+
+
+

+
+
+ + + + + +
{{device.info}}
+
+
+
+

+
+ +
+ +
+
+
+
+ {{languageJson.RoomHome.AlarmTitle.EquipmetnAlarm.Title}} + +
+ +
+
+ + + + + + + + + + + + + +
{{languageJson.RoomHome.AlarmTitle.EquipmetnAlarm.Alarm}}{{languageJson.RoomHome.AlarmTitle.EquipmetnAlarm.Operation}}
+
+ + + + + {{alarm.alarmContent}} + + {{ alarm.startTime }} + + +
+
+ +
+
+
+
+
+
+ +
+ +
+
+
+ {{languageJson.RoomHome.AlarmTitle.DataTable.Title}} + +
+ +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
{{languageJson.RoomHome.AlarmTitle.DataTable.Status}}{{languageJson.RoomHome.AlarmTitle.DataTable.Signal}}{{languageJson.RoomHome.AlarmTitle.DataTable.Value}}{{languageJson.RoomHome.AlarmTitle.DataTable.Time}}
+ + + + {{getStatusLabel(sig.alarmSeverity)}} + {{sig.signalName}}{{sig.currentValue}}{{sig.updateTime}}
+ + +
+
+ +
+
+
+ +
+
+
+
+ {{languageJson.RoomHome.ControlTitle.Title}} + +
+
+
+
+
+ +
+
+
+
+
+
+
+ + +
+ +
+ + + +
+ +
+
+
diff --git a/applications/WebConfigure/web/fsu_model/partials/otherModule.html b/applications/WebConfigure/web/fsu_model/partials/otherModule.html new file mode 100644 index 0000000..5ce9858 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/partials/otherModule.html @@ -0,0 +1,236 @@ +
+
+
+

{{languageJson.OtherModule.Title}} + +

+
+ +
+ + +
+ + + +
+
+
+
+
+
+
+ +
+
+ + + +
+
+ + + + +
+
+
+
+
+
{{languageJson.OtherModule.Message}}
+
+
+
+ + +
+ +
+ +
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + +
+
+ +
+
+
+
+
+
{{languageJson.OtherModule.Message}}
+
+
+
+ + +
+ +
+ + +
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{languageJson.OtherModule.LogMessage}}
+
+
+
+ +
+ +
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/applications/WebConfigure/web/fsu_model/scripts/fsu_function.sql b/applications/WebConfigure/web/fsu_model/scripts/fsu_function.sql new file mode 100644 index 0000000..be3d025 --- /dev/null +++ b/applications/WebConfigure/web/fsu_model/scripts/fsu_function.sql @@ -0,0 +1,80 @@ +-- ---------------------------- +-- FSU版 功能列表 +-- v3.7.32.1 +-- ---------------------------- +TRUNCATE TABLE TBL_Function; +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Comment`) VALUES(2000000,'设备','Device',0,'设备组态页面'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(2004000,'设备控制','DeviceControl',2000000,1,'详细信息-设备控制'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Comment`) VALUES(3000000,'告警','Alarm',0,'实时告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3002000,'告警确认','Alarm Confirm',3000000,1,'告警-告警确认'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3003000,'告警结束','Alarm End',3000000,1,'告警-告警结束'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3005000,'可见告警','Visible Alarm',3000000,0,'告警-可见告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3005001,'提示信息','Level 4',3005000,0,'告警-可见告警-提示信息'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3005002,'一般告警','Level 3',3005000,0,'告警-可见告警-一般告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3005003,'重要告警','Level 2',3005000,0,'告警-可见告警-重要告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(3005004,'紧急告警','Level 1',3005000,0,'告警-可见告警-紧急告警'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Comment`) VALUES(4000000,'历史','History',0,'历史'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4001000,'告警分布','History Alarm KPI',4000000,0,'历史-历史告警分布'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4003000,'历史告警','History Alarm',4000000,0,'历史-历史告警记录'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4005000,'历史数据','History Signal',4000000,0,'历史-历史数据记录'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4007000,'用户操作','Operation Record',4000000,0,'历史-用户操作记录'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4009000,'刷卡记录','Credit Card Record',4000000,0,'历史-刷卡记录'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4011000,'可见历史告警','Visible History Alarm',4000000,0,'历史-可见告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4011001,'提示信息','Level 4',4011000,0,'历史-可见告警-提示信息'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4011002,'一般告警','Level 3',4011000,0,'历史-可见告警-一般告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4011003,'重要告警','Level 2',4011000,0,'历史-可见告警-重要告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4011004,'紧急告警','Level 1',4011000,0,'历史-可见告警-紧急告警'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4012000,'历史图表','History Chart',4000000,2,'历史-历史图表'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(4013000,'历史抓拍','History Capture',4000000,2,'历史-历史抓拍'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Enable`,`Comment`) VALUES(5000000,'视频','Camera',2,0,'视频'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Enable`,`Comment`) VALUES(5002003,'RTSP视频预览','RTSP Camera View',5000000,2,0,'视频-RTSP视频预览'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Enable`,`Comment`) VALUES(5003000,'RTSP视频配置','RTSP Camera Config',5000000,2,0,'视频-RTSP视频配置'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Comment`) VALUES(6000000,'配置','Setting',1,'配置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6001000,'协议管理','Protocol',6000000,1,'配置-协议管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6002000,'配置管理','Config',6000000,1,'配置-配置管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6002001,'设备管理','Device Config',6002000,1,'配置管理-设备信息管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6002002,'局站管理','Station Config',6002000,2,'配置管理-局站信息管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6002003,'中心管理','Central Config',6002000,2,'配置管理-中心信息管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6002004,'模板管理','Template Config',6002000,1,'配置管理-模板管理'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6003000,'组态管理','Configuration',6000000,1,'配置-组态管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6004000,'接口管理','Port Config',6000000,1,'配置-接口管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6004001,'移动B接口配置','ChinaMobile',6004000,1,'接口配置-移动B接口配置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6004002,'联通B接口配置','ChinaUnicom',6004000,1,'接口配置-联通B接口配置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6004003,'SNMP配置','SNMP',6004000,1,'接口配置-SNMP配置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6004004,'调试日志','Debug',6004000,2,'接口配置-调试日志'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6005000,'告警通知','Notify',6000000,1,'配置-告警通知'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6006000,'人员设置','Employee',6000000,1,'配置-告警通知-人员设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6007000,'告警联动','Linkage',6000000,1,'配置-告警联动'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6008000,'数据管理','History Data',6000000,1,'配置-数据管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6009000,'权限管理','Authority',6000000,1,'配置-权限管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6010000,'界面设置','Interface',6000000,1,'配置-界面设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6013000,'门禁管理','Door Manage',6000000,1,'配置-纽贝尔门禁管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Enable`,`Comment`) VALUES(6013001,'ZK门禁管理','ZKDoor Manage',6000000,2,0,'配置-中控门禁管理'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6018000,'网络通知','Net Notify',6000000,1,'配置-网络通知'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6023000,'告警建议库','Alarm Expert',6000000,2,'配置-告警建议库'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6024000,'设备抄表','Equipment Inspection',6000000,2,'配置-设备抄表'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6025000,'图表配置','History Chart Config',6000000,2,'配置-图表配置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(6026000,'抓拍配置','Capture Config',6000000,2,'配置-抓拍配置'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,`Level`,`Comment`) VALUES(7000000,'系统','System',-1,'系统'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7001000,'时间设置','Timing',7000000,0,'系统-时间设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7002000,'语言设置','Language',7000000,0,'系统-语言设置'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7003000,'网络设置','Network Setting',7000000,0,'系统-网络设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7003001,'IP设置','IP Setting',7003000,0,'网络设置-IP设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7003002,'无线设置','WIFI Setting',7003000,1,'网络设置-无线设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7003003,'拨号设置','4G Setting',7003000,1,'网络设置-拨号设置'); + +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7004000,'密码设置','Modify Setting',7000000,0,'系统-密码设置'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7005000,'关于','About',7000000,0,'系统-关于'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7007000,'重启','Reboot',7000000,0,'系统-重启'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7008000,'关机','Shutdown',7000000,1,'系统-关机'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7009000,'备份','Backup',7000000,1,'系统-备份'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7010000,'还原','Restore',7000000,1,'系统-还原'); +INSERT INTO TBL_Function(FunctionId,FunctionName,FunctionAlias,ParentFunctionId,`Level`,`Comment`) VALUES(7015000,'告警等级配置','Alarm level config',7000000,2,'系统-告警等级配置'); diff --git a/applications/WebConfigure/web/img/fsu_bg.jpg b/applications/WebConfigure/web/img/fsu_bg.jpg new file mode 100644 index 0000000..ade207b Binary files /dev/null and b/applications/WebConfigure/web/img/fsu_bg.jpg differ diff --git a/applications/WebConfigure/web/img/fsu_loading.gif b/applications/WebConfigure/web/img/fsu_loading.gif new file mode 100644 index 0000000..1f870be Binary files /dev/null and b/applications/WebConfigure/web/img/fsu_loading.gif differ diff --git a/applications/WebConfigure/web/img/fsu_loadingbg.png b/applications/WebConfigure/web/img/fsu_loadingbg.png new file mode 100644 index 0000000..0083787 Binary files /dev/null and b/applications/WebConfigure/web/img/fsu_loadingbg.png differ diff --git a/applications/WebConfigure/web/img/fsu_loginbg.jpg b/applications/WebConfigure/web/img/fsu_loginbg.jpg new file mode 100644 index 0000000..04ae322 Binary files /dev/null and b/applications/WebConfigure/web/img/fsu_loginbg.jpg differ diff --git a/applications/WebConfigure/web/img/fsu_logininfo.png b/applications/WebConfigure/web/img/fsu_logininfo.png new file mode 100644 index 0000000..a77ab70 Binary files /dev/null and b/applications/WebConfigure/web/img/fsu_logininfo.png differ diff --git a/applications/WebConfigure/web/img/huijuegrouplogo.png b/applications/WebConfigure/web/img/huijuegrouplogo.png new file mode 100644 index 0000000..7bcb3dc Binary files /dev/null and b/applications/WebConfigure/web/img/huijuegrouplogo.png differ diff --git a/applications/WebConfigure/web/img/logo.png b/applications/WebConfigure/web/img/logo.png new file mode 100644 index 0000000..ab8c9e0 Binary files /dev/null and b/applications/WebConfigure/web/img/logo.png differ diff --git a/applications/WebConfigure/web/js/ThermalMap.js b/applications/WebConfigure/web/js/ThermalMap.js new file mode 100644 index 0000000..3a62ab8 --- /dev/null +++ b/applications/WebConfigure/web/js/ThermalMap.js @@ -0,0 +1,204 @@ +var ThermalMap = { + toMaterial:function(option,side){ + + // create svg element + var svgtemp = document.getElementById('svgtemp' + side); + if (!svgtemp) { + svgtemp = document.createElement('svgtemp' + side); + document.body.appendChild(svgtemp); + } + + //generate themal map + this.create('#svgtemp' + side,option); + + //convert svg to image + var img = document.getElementById('imgsvg' + side); + if (!img){ + img = new Image(); + img.setAttribute("id", "imgsvg" + side); + document.body.appendChild(img); + } + + var serializer = new XMLSerializer(); + var svgStr = serializer.serializeToString(svgtemp.lastChild); + //console.log(svgStr); + img.src = 'data:image/svg+xml;base64,'+window.btoa(svgStr); + //img.style.visibility = 'hidden'; + img.style.display = 'none'; + + //generate texture + var canvas = document.getElementById('canvas' + side); + + if (!canvas) { + canvas = document.createElement('canvas'); + canvas.setAttribute("id", 'canvas' + side); + document.body.appendChild(canvas); + } + //canvas.style.visibility = 'hidden'; + canvas.style.display = 'none'; + //var canvas = document.createElement('canvas'); + + var context = canvas.getContext("2d"); + + canvas.width = option.panel.width; + canvas.height = option.panel.height; + + context.drawImage(img,0,0,canvas.width,canvas.height); + //img.style.visibility = 'hidden'; + img.style.display = 'none'; + + var texture = new THREE.Texture(canvas); + texture.needsUpdate = true; + + + var material = new THREE.MeshBasicMaterial( { + map: texture, side: THREE.DoubleSide, transparent: true, opacity: 0.7,depthWrite:false} ); + material.needsUpdate = true; + //var material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} ); + //param.shininess = 100; + //param.envMap = reflectionCube; + + return material; + }, + create:function(id,option){ + var tm = {}; + var span = 3;//颗粒度,这是测试过没有颗粒感的最佳效果,如果小了CPU和内存受不了 + tm.init = function(id, option,span){ + + // var tooltip = d3.select("body") + // .append("div") + // .style("position", "absolute") + // .style("z-index", "10") + // .style("visibility", "hidden") + // .text("a simple tooltip"); + + // 颜色Array(255,0,255)格式转为#FF00FF + function rgb2color(rgb) + { + var s = "#"; + for (var i = 0; i < 3; i++) + { + var c = Math.round(rgb[i]).toString(16); + if (c.length == 1) + c = '0' + c; + s += c; + } + return s.toUpperCase(); + } + + function getHeatMapColor(value) + { + var resultColor = []; + var color = [ [0,0,1], [0,1,0], [1,1,0], [1,0,0] ]; + + var idx1; // |-- Our desired color will be between these two indexes in "color". + var idx2; // | + var fractBetween = 0; // Fraction between "idx1" and "idx2" where our value is. + + if(value <= 0) { idx1 = idx2 = 0; } // accounts for an input <=0 + else if(value >= 1) { idx1 = idx2 = 3; } // accounts for an input >=0 + else + { + value = value * 3; // Will multiply value by 3. + idx1 = Math.floor(value); // Our desired color will be after this index. + idx2 = idx1+1; // ... and before this index (inclusive). + fractBetween = value - idx1; // Distance between the two indexes (0-1). + } + + resultColor.push(((color[idx2][2] - color[idx1][2])*fractBetween + color[idx1][2]) * 255);//blue + resultColor.push(((color[idx2][1] - color[idx1][1])*fractBetween + color[idx1][1]) * 255);//green + resultColor.push(((color[idx2][0] - color[idx1][0])*fractBetween + color[idx1][0]) * 255);//red + + return resultColor + } + + //任一点与指定的几个点的距离是d1,d2,d3等。 + //指定点的温度是t1,t2,t3, + //那么任一点的温度可以通过公式(t1/d1+t2/d2+t3/d3)/(1/d1+1/d2+1/d3)得到 + var pickPointColor = function(x,y,sensors){ + var distances = []; + var res ={}; + + for(var i=0;i= 0) + { + this.src = 'img/3d/veilView-i.png'; + document.getElementById("overimg").src="img/3d/overview-h.png"; + ar.cartoon('veilview'); + } + }; + + var oi = document.createElement('img'); + oi.id = "overimg"; + oi.style.cssText = "padding:3px;cursor:pointer;"; + oi.src = "img/3d/overview-h.png"; + oi.onclick = function(){ + if (this.src.indexOf('img/3d/overview-h.png') >= 0) + { + this.src = 'img/3d/overview-i.png'; + document.getElementById("veilimg").src="img/3d/veilView-h.png"; + ar.cartoon('overview'); + } + }; + + btnContainer.appendChild(vi); + btnContainer.appendChild(oi); + ar.container.appendChild(btnContainer); + } + + function initDebugParts(){ + // axes + var axes = new THREE.AxisHelper(100); + ar.scene.add( axes ); + + // displays current and past frames per second attained by scene + ar.stats = new Stats(); + ar.stats.domElement.style.position = 'absolute'; + ar.stats.domElement.style.bottom = '0px'; + ar.stats.domElement.style.zIndex = 100; + ar.container.appendChild(ar.stats.domElement); + + // Grid + var size = 800, step = 80; + + var geometry = new THREE.Geometry(); + + for (var i = -size; i <= size; i += step) { + geometry.vertices.push(new THREE.Vector3(-size, 0, i)); + geometry.vertices.push(new THREE.Vector3(size, 0, i)); + geometry.vertices.push(new THREE.Vector3(i, 0, -size)); + geometry.vertices.push(new THREE.Vector3(i, 0, size)); + } + + var material = new THREE.LineBasicMaterial({color: 0xeeeeee, opacity: 0.7}); + + var line = new THREE.Line(geometry, material, THREE.LinePieces); + ar.scene.add(line); + + //ArrowHelper + var directionV3 = new THREE.Vector3(1, 0, 1); + var originV3 = new THREE.Vector3(0, 200, 0); + // 100 is length, 20 and 10 are head length and width + var arrowHelper = new THREE.ArrowHelper(directionV3, originV3, 100, 0xff0000, 20, 10); + ar.scene.add(arrowHelper); + + // 3. BoundingBoxHelper + //bboxHelper = new THREE.BoundingBoxHelper(group, 0x999999); + //ar.scene.add(bboxHelper); + } + + function defineMouseBehavior(){ + ar.container.addEventListener( 'mousemove', onDocumentMouseMove, false ); + ar.container.addEventListener( 'mousedown', onDocumentMouseDown, false ); + function onDocumentMouseMove( event ) { + ar.mouse.x = ( (event.clientX - $(ar.domId).position().left)/ $(ar.domId).width()) * 2 - 1; + ar.mouse.y = - ( (event.clientY - $(ar.domId).position().top) / $(ar.domId).height()) * 2 + 1; + event.preventDefault(); + } + function onDocumentMouseDown( e ) { + e.preventDefault(); + if (ar.INTERSECTED){ + var shp = ar.getShapeByMesh(ar.INTERSECTED); + if (shp.config.bindings.length > 0) { + var devId = shp.config.bindings[0].id; + ar.options.shell.$location.url('/deviceInfo/' + devId); + //alert(angular.toJson(shp.config)); + } + } + } + } + + function attachToDom(){ + ar.container = document.getElementById(ar.id); + ar.container.appendChild(ar.renderer.domElement); + + } + + initScene(); + initRender(); + initCamera(); + attachToDom(); + if (ar.options.showSky) initSky(); + initResize(); + initControl(); + //initDebugParts(); + defineMouseBehavior(); + }; + + ar.clear = function(){ + ar.shape3Ds = []; + }; + + ar.load = function(config){ + ar.clear(); + if (config) { + ar.loadConfig = config; + } + else { + ar.loadConfig = bn.demoConfig; + } + + ar.loadConfig.shapes.forEach(function (shp) { + if (shp.param3D) ar.loadUnit(shp.param3D); + }); + + ar.initLight(); + }; + + ar.loadUnit = function(param) { + var ut = _.find(ar.units, function (item) { + return item.name === param.unit; + }); + + if (_.isUndefined(ut)) return; + if (_.isUndefined(ut.create)) return; + + var mesh = ut.create(param); + mesh.unit = ut; + + var shp = _.extend({}, ar.shape3DClass); + shp.mesh = mesh; + shp.config = param; + shp.id = _.uniqueId(); + + ar.shape3Ds.push(shp); + ar.scene.add(mesh); + }; + + ar.animate = function(){ + ar.aniframeId = requestAnimationFrame(ar.animate); + TWEEN.update(); + ar.render(); + ar.controls.update(); + }; + + ar.render = function(){ + if (!ar) return; + ar.update(); + ar.renderer.render(ar.scene, ar.camera); + }; + + ar.update = function() { + if (ar.options.dynamicSky){ + ar.cruise.lon += 0.1; + + ar.cruise.lat = Math.max( - 85, Math.min( 85, ar.cruise.lat ) ); + ar.cruise.phi = THREE.Math.degToRad( 90 - ar.cruise.lat ); + ar.cruise.theta = THREE.Math.degToRad( ar.cruise.lon ); + + ar.cruise.target.x = 500 * Math.sin( ar.cruise.phi ) * Math.cos( ar.cruise.theta ); + ar.cruise.target.y = 500 * Math.cos( ar.cruise.phi ); + ar.cruise.target.z = 500 * Math.sin( ar.cruise.phi ) * Math.sin( ar.cruise.theta ); + + ar.camera.lookAt( ar.cruise.target ); + } + + if (ar.options.dynamicShadow){ + var timer = Date.now() * 0.0001; + ar.light.position.x = Math.sin(timer) * 1000; + ar.light.position.z = Math.cos(timer) * 1000; + ar.light.target.position.set(0, 0, 0); + } + + ar.shape3Ds.forEach(function(shp){ + if (shp.mesh.unit.isFlat) shp.mesh.lookAt( ar.camera.position ); + }); + + // high light mouse indicator + ar.raycaster.setFromCamera( ar.mouse, ar.camera ); + var intersects = ar.raycaster.intersectObjects( ar.scene.children, true ); + + if ( intersects.length > 0 ) { + + if ( ar.INTERSECTED != intersects[ 0 ].object ) { + if ( ar.INTERSECTED ) ar.util.maskColor(ar.INTERSECTED, ar.INTERSECTED.currentHex); + ar.INTERSECTED = intersects[ 0 ].object; + ar.INTERSECTED.currentHex = ar.util.getMaskColor(ar.INTERSECTED); + ar.util.maskColor(ar.INTERSECTED, 0x223366); + } + + } else { + if ( ar.INTERSECTED ) ar.util.maskColor(ar.INTERSECTED, ar.INTERSECTED.currentHex); + ar.INTERSECTED = null; + } + }; + + ar.getUnit = function(name){ + return _.find(ar.units, function (unit) { + return unit.name === name; + }); + }; + + ar.initLight = function () { + //泛光可调整整个房间的明暗度 + //var ambient = new THREE.AmbientLight( 0x888888); + //ar.scene.add( ambient ); + + //半球面环境光,模拟天空到大地的光线,可作为主环境光 + var envlight = new THREE.HemisphereLight( 0xffffff, 0xA2C9ED, 0.8); + //var envlight = new THREE.HemisphereLight( 0x888888, 0x111111, 0.8); + //envlight.position.set( 0, 1500, 0 ); + + //envlight.shadowCameraFov = 60; + ar.scene.add(envlight); + + // 5000 is sphere size, 3000 is arrow length + //var hlightHelper = new THREE.HemisphereLightHelper(envlight, 10000, 1000); + //ar.scene.add(hlightHelper); + + //平行光,用于产生阴影 + var light = new THREE.DirectionalLight(0x222222); + light.position.set(0, 1000, 2000); + light.target.position.set(0, 0, 0); + + + light.castShadow = true; + light.shadowDarkness = 0.7; + //light.shadowCameraNear = 2; + //light.shadowCameraFar = 5000; + light.shadowCameraLeft = -3000; + light.shadowCameraRight = 3000; + light.shadowCameraTop = 3000; + light.shadowCameraBottom = -3000; + //light.shadowCameraFov = 60000; + light.shadowMapWidth = light.shadowMapHeight = 1024; + + ar.scene.add(light); + ar.light = light; + + //ar.camera.updateMatrix(); + //var cameraHelper = new THREE.CameraHelper( light.shadow ); + //this.scene.add(cameraHelper); + + //// 50 is helper size + //dlightHelper = new THREE.DirectionalLightHelper(light, 500); + //ar.scene.add(dlightHelper); + + }; + + ar.dispose = function(){ + + var disposeObject = function(obj){ + for(var b in obj){ + if(typeof(obj[b]) === "function" && obj[b].name === "event"){ + obj[b] = undefined; + } + else if(typeof(obj[b]) === "function" && obj[b].length > 0){ + disposeObject(obj[b]); + } + else if(typeof(obj[b]) === "object" && b === "dispatch"){ + disposeObject(obj[b]); + } + } + }; + + var disposeNode = function(node) + { + if (node instanceof THREE.Camera) + { + node = undefined; + } + else if (node instanceof THREE.Light) + { + if (!node.dispose){ + disposeObject(node); + } + else + node.dispose (); + node = undefined; + } + else if (node instanceof THREE.Mesh) + { + if (node.geometry) + { + node.geometry.dispose (); + node.geometry = undefined; + delete node.geometry; + } + + if (node.material) + { + if (node.material instanceof THREE.MeshFaceMaterial) + { + $.each (node.material.materials, function (idx, mtrl) + { + if (!mtrl) return; + mtrl.dispose(); + if (mtrl.map) + { + mtrl.map.dispose(); + mtrl.map = undefined; + delete mtrl.map; + } + + if (mtrl.lightMap) mtrl.lightMap.dispose(); + if (mtrl.bumpMap) mtrl.bumpMap.dispose(); + if (mtrl.normalMap) mtrl.normalMap.dispose(); + if (mtrl.specularMap) mtrl.specularMap.dispose(); + if (mtrl.envMap) mtrl.envMap.dispose(); + + mtrl.dispose(); // disposes any programs associated with the material + mtrl = undefined; + delete mtrl; + }); + } + else + { + if (node.material.map) + { + node.material.map.dispose(); + node.material.map = undefined; + delete node.material.map; + } + + if (node.material.lightMap) node.material.lightMap.dispose (); + if (node.material.bumpMap) node.material.bumpMap.dispose (); + if (node.material.normalMap) node.material.normalMap.dispose (); + if (node.material.specularMap) node.material.specularMap.dispose (); + if (node.material.envMap) node.material.envMap.dispose (); + + node.material.dispose (); // disposes any programs associated with the material + node.material = undefined; + delete node.material; + } + } + + node = undefined; + } + else if (node instanceof THREE.Object3D) + { + node = undefined; + delete node; + } + }; + + var disposeHierarchy = function(node, callback) + { + for (var i = node.children.length - 1; i >= 0; i--) + { + var child = node.children[i]; + disposeHierarchy (child, callback); + callback (child); + } + }; + + //stop data pooling + if (ar.provider) ar.provider.dispose(); + //remove event for controller + $(window).off(); + $(window).unbind(); + $(document).off(); + $(document).unbind(); + $(ar.domId).off(); + $(ar.domId).unbind(); + if (ar.renderer) $(ar.renderer.domElement).off(); + + //stop animation + TWEEN.removeAll(); + if (ar.aniframeId) window.cancelAnimationFrame(ar.aniframeId); + //remove shapes + // if (ar.shape3Ds){ + // ar.shape3Ds.forEach(function(shp){ + // if (shp.mesh){ + // ar.scene.remove(shp.mesh); + // disposeHierarchy(shp.mesh, disposeNode); + // } + // }); + // disposeObject(ar.shape3Ds); + // ar.shape3Ds = undefined; + // delete ar.shape3Ds; + // } + + //remove scene + if (ar.controls) ar.controls.dispose(); + if (ar.raycaster) disposeObject(ar.raycaster); + // $.each(ar.scene.children, function(idx, obj) { + // if (obj !== undefined) { + // if (obj.geometry) { + // obj.geometry.dispose(); + // } + + // if (obj.material) { + // if (obj.material instanceof THREE.MeshFaceMaterial) { + // $.each(obj.material.materials, function(idx, obj) { + // obj.dispose(); + // }); + // } else { + // obj.material.dispose(); + // } + // } + + // if (obj.dispose) { + // obj.dispose(); + // } + // } + // }); + + //clear all resource + + if (ar.camera) disposeObject(ar.camera); + //if (ar.scene) disposeHierarchy (ar.scene, disposeNode); + if (ar.container) disposeObject(ar.container); + + if (ar.renderer) + { + ar.renderer.forceContextLoss(); + ar.renderer.context = null; + ar.renderer.domElement = null; + disposeObject(ar.renderer); + ar.renderer = null; + } + + + doDispose(ar.scene); + + function doDispose(obj) { + if (obj !== null) { + for (var i = 0; i < obj.children.length; i++) { + doDispose(obj.children[i]); + } + if (obj.geometry) { + obj.geometry.dispose(); + obj.geometry = undefined; + } + if (obj.material) { + if (obj.material instanceof THREE.MeshFaceMaterial) { + $.each(obj.material.materials, function(idx, o) { + if (!o) return; + if (o.map) + { + o.map.dispose(); + o.map = undefined; + delete o.map; + } + o.dispose(); + }); + } else { + obj.material.dispose(); + } + } + if(obj.dispose) { + obj.dispose(); + } + } + obj = undefined; + } + + ar.scene = null; + + disposeObject(ar); + ar = undefined; + }; + + ar.cartoon = function(type){ + if (type == "overview"){ + var position = {x:0,y:3000,z:0}; + var target = {x:0,y:0,z:-1}; + ar.tweenCamera(position, target); + } + + if (type == "veilview"){ + var position = {x:-3000,y:3000,z:-3000}; + var target = {x:0,y:0,z:0}; + ar.tweenCamera(position, target); + } + }; + + ar.tweenCamera = function tweenCamera(position, target){ + //TWEEN.removeAll(); + + new TWEEN.Tween(ar.camera.position).to({ + x: position.x, + y: position.y, + z: position.z + },3000).easing(TWEEN.Easing.Linear.None).onUpdate(function () { + ar.camera.lookAt(target); + }).onComplete(function () { + }).start(); + }; + + ar.getShapeByMesh = function (mesh){ + if (!mesh) return; + + var obj = mesh; + while(!(obj.parent instanceof THREE.Scene)){ + obj = obj.parent; + } + + var selected; + ar.shape3Ds.forEach(function(shp){ + if (shp.mesh === obj){ + selected = shp; + } + }); + + return selected; + }; + + ar.loadUnits = function(){ + ar.units = [ + { + name : "floor", + buildFloor: function(param){ + //因为SVG无法使用底图(只能使用UV贴图),作为地板非常难看。 + //这里取消平面自动地板生成功能(可生成不规则地板)限制为仅能使用矩形地板(使用BOX模拟) + //所以下面代码注释掉: + //var floorG = ar.transformSVGPath(param.path); + //var planeMesh = ar.createShape(floorG, 0xdddddd, 0, 0, 0, Math.PI/2, 0, 0, 1); + //group.add(planeMesh); + //planeMesh.geometry.center(); + + var tileSize = 64; + + var floorTexture = new THREE.TextureLoader().load(param.floorTexture); + floorTexture.wrapS = floorTexture.wrapT = THREE.RepeatWrapping; + floorTexture.repeat.set( param.floorWidth / tileSize, param.floorHeight / tileSize ); + + var floorMaterial = new THREE.MeshPhongMaterial( { + map: floorTexture, side: THREE.DoubleSide} ); + + var floorGeometry = new THREE.PlaneGeometry(param.floorWidth, param.floorHeight,1,1); + var floor = new THREE.Mesh(floorGeometry, floorMaterial); + floor.position.y = -0.5; + floor.rotation.x = Math.PI / 2; + + floor.receiveShadow = true; + return floor; + }, + create: function (param){ + //create an empty container + var group = new THREE.Object3D(); + + var floor = this.buildFloor(param); + group.add(floor); + + //get enclosure lines + + + var lines = []; + + var lineX1 = {}; + lineX1.start = {x: -(param.floorWidth / 2), y:0, z: -(param.floorHeight / 2)}; + lineX1.end = {x: param.floorWidth / 2, y:0, z: -(param.floorHeight / 2)}; + lines.push(lineX1); + + var lineX2 = {}; + lineX2.start = {x: -(param.floorWidth / 2), y:0, z: param.floorHeight / 2}; + lineX2.end = {x: param.floorWidth / 2, y:0, z: param.floorHeight / 2}; + lines.push(lineX2); + + var lineX3 = {}; + lineX3.start = {x: -(param.floorWidth / 2), y:0, z: -(param.floorHeight / 2)}; + lineX3.end = {x: -(param.floorWidth / 2), y:0, z: param.floorHeight / 2}; + lines.push(lineX3); + + var lineX4 = {}; + lineX4.start = {x: param.floorWidth / 2, y:0, z: -(param.floorHeight / 2)}; + lineX4.end = {x: param.floorWidth / 2, y:0, z: param.floorHeight / 2}; + lines.push(lineX4); + + //build walls + lines.forEach(function(line){ + var mold = ar.util.getMold(param.moldId); + group.add(ar.util.buildWall(mold, line)); + }); + + return group; + } + },{ + name : "door", + create: function (param) { + + return ar.util.buildWallPart(param); + } + //},{ + // name : "window", + // create: function (param) { + // return ar.util.buildWallPart(param); + // } + },{ + name:"rack", + create: function(param){ + + var mold = ar.util.getMold(param.moldId); + + var faces = []; + // order of faces: x+,x-,y+,y-,z+,z- + var rightFace = ar.util.newFace(mold.faces.rightFace); + faces.push(rightFace); + var leftFace = ar.util.newFace(mold.faces.leftFace); + faces.push(leftFace); + var topFace = ar.util.newFace(mold.faces.topFace); + faces.push(topFace); + var bottomFace = ar.util.newFace(mold.faces.bottomFace); + faces.push(bottomFace); + var frontFace = ar.util.newFace(mold.faces.frontFace); + faces.push(frontFace); + var backFace = ar.util.newFace(mold.faces.backFace); + faces.push(backFace); + + var cubeMaterials = new THREE.MeshFaceMaterial(faces); + var cubeGeometry = new THREE.CubeGeometry( + mold.size.width, mold.size.high, mold.size.depth); + + var cube = new THREE.Mesh(cubeGeometry, cubeMaterials); + + cube.position.x = param.position.x; + cube.position.y = mold.size.high / 2 + param.aboveGround; + cube.position.z = param.position.z; + + //if (param.angle > 0 ) + cube.rotateY( 0 - ar.util.radians(param.angle)); + cube.castShadow = true; + return cube; + } + },{ + name:"line", + create: function(param){ + + var geometry = new THREE.Geometry(); + param.lines.forEach(function(line){ + geometry.vertices.push(new THREE.Vector3( + line.start.x, + line.start.y, + line.start.z + )); + geometry.vertices.push(new THREE.Vector3( + line.end.x, + line.end.y, + line.end.z + )); + }); + + var m = new THREE.LineBasicMaterial({ + color: param.color,fog:true}); + + var line = new THREE.Line(geometry, m); + + return line; + } + },{ + name:"flat", + isFlat:true, + create: function(param){ + var mold = ar.util.getMold(param.moldId); + + var obj = ar.util.flatObject(param, mold,param.position, parseFloat(param.aboveGround)); + + return obj.mesh; + } + },{ + name:"wallPath", + create: function(param){ + var group = new THREE.Object3D(); + var mold = ar.util.getMold(param.moldId); + if (param.moldId !== "wallpath-null") + { + param.lines.forEach(function(line){ + group.add(ar.util.buildWall(mold, line)); + }); + } + + //if (param.angle > 0 ) + group.rotateY( 0 - ar.util.radians(param.angle)); + return group; + } + },{ + name:"camera", + create: function(param){ + //var transparentColor = 0xffffff; + //var size = {x:64,y:64}; + //var imgurl = "img/3d/CCTV-icon.png"; + // + //var obj = ar.util.flatObject(imgurl, transparentColor, + // size,param.position); + // + //return obj.mesh; + + var geometry = new THREE.SphereGeometry( 30, 16, 16 ); + var material = new THREE.MeshBasicMaterial( { + map: THREE.ImageUtils.loadTexture('img/3d/global.jpg')}); + var sphere = new THREE.Mesh( geometry, material ); + sphere.position.x = param.position.x; + sphere.position.y = param.position.y; + sphere.position.z = param.position.z; + return sphere; + } + } + ]; + }; + + ar.shape3DClass = { + mesh: undefined, + tws:[], + defaultColors:[], + update:function(status){ + if (status.state === this.alarmLevel) return; + + this.alarmLevel = status.state; + + var needRemove=null; + + this.tws.forEach(function(fso){ + if (fso.id === this.id) + { + fso.twarray.forEach(function(tw){ + tw.stop(); + }); + needRemove = fso; + } + }); + this.tws = _.without(this.tws, needRemove); + + this.resetColor(); + + if (this.alarmLevel == 0) return; + this.shining(this.alarmLevel); + }, + resetColor:function(){ + var that = this; + if (that.mesh.material instanceof THREE.MultiMaterial) + { + var i=0; + that.mesh.material.materials.forEach( + function(m) { + m.color = {r:1,g:1,b:1}; + }); + } + }, + shining: function(alarmLevel){ + var that = this; + var color = {r:1,g:1,b:1}; + switch(alarmLevel) + { + case "1": + color={r:0,g:0,b:2}; + break; + case "2": + color={r:2,g:2,b:0}; + break; + case "3": + color={r:2, g: 1, b:0}; + break; + case "4": + color={r:2, g: 0, b:0}; + break; + default: + } + + if (that.mesh.material instanceof THREE.MultiMaterial) + { + var kso = {id:that.id,twarray:[]}; + that.mesh.material.materials.forEach(function(m){ + var tw = new TWEEN.Tween(m.color) + .to(color, 3000) + .repeat(Infinity) + .easing(TWEEN.Easing.Quartic.InOut) + .start(); + + kso.twarray.push(tw); + + }); + that.tws.push(kso); + } + } + }; + + ar.util = {}; + ar.util.createShape = function ( shape, color, x, y, z, rx, ry, rz, s ) { + // flat shape like svg + + var geometry = new THREE.ShapeGeometry( shape ); + var material = new THREE.MeshBasicMaterial({ + color: color, + side: THREE.DoubleSide, + overdraw: true + }); + + var mesh = new THREE.Mesh( geometry, material ); + mesh.position.set( x, y, z ); + mesh.rotation.set( rx, ry, rz ); + mesh.scale.set( s, s, s ); + + return mesh; + }; + + ar.util.transformSVGPath = function (pathStr) { + + const DIGIT_0 = 48, DIGIT_9 = 57, COMMA = 44, SPACE = 32, PERIOD = 46, + MINUS = 45; + + var path = new THREE.Shape(); + + var idx = 1, len = pathStr.length, activeCmd, + x = 0, y = 0, nx = 0, ny = 0, firstX = null, firstY = null, + x1 = 0, x2 = 0, y1 = 0, y2 = 0, + rx = 0, ry = 0, xar = 0, laf = 0, sf = 0, cx, cy; + + function eatNum() { + var sidx, c, isFloat = false, s; + // eat delims + while (idx < len) { + c = pathStr.charCodeAt(idx); + if (c !== COMMA && c !== SPACE) + break; + idx++; + } + if (c === MINUS) + sidx = idx++; + else + sidx = idx; + // eat number + while (idx < len) { + c = pathStr.charCodeAt(idx); + if (DIGIT_0 <= c && c <= DIGIT_9) { + idx++; + continue; + } + else if (c === PERIOD) { + idx++; + isFloat = true; + continue; + } + + s = pathStr.substring(sidx, idx); + return isFloat ? parseFloat(s) : parseInt(s); + } + + s = pathStr.substring(sidx); + return isFloat ? parseFloat(s) : parseInt(s); + } + + function nextIsNum() { + var c; + // do permanently eat any delims... + while (idx < len) { + c = pathStr.charCodeAt(idx); + if (c !== COMMA && c !== SPACE) + break; + idx++; + } + c = pathStr.charCodeAt(idx); + return (c === MINUS || (DIGIT_0 <= c && c <= DIGIT_9)); + } + + var canRepeat; + activeCmd = pathStr[0]; + while (idx <= len) { + canRepeat = true; + switch (activeCmd) { + // moveto commands, become lineto's if repeated + case 'M': + x = eatNum(); + y = eatNum(); + path.moveTo(x, y); + activeCmd = 'L'; + break; + case 'm': + x += eatNum(); + y += eatNum(); + path.moveTo(x, y); + activeCmd = 'l'; + break; + case 'Z': + case 'z': + canRepeat = false; + if (x !== firstX || y !== firstY) + path.lineTo(firstX, firstY); + break; + // - lines! + case 'L': + case 'H': + case 'V': + nx = (activeCmd === 'V') ? x : eatNum(); + ny = (activeCmd === 'H') ? y : eatNum(); + path.lineTo(nx, ny); + x = nx; + y = ny; + break; + case 'l': + case 'h': + case 'v': + nx = (activeCmd === 'v') ? x : (x + eatNum()); + ny = (activeCmd === 'h') ? y : (y + eatNum()); + path.lineTo(nx, ny); + x = nx; + y = ny; + break; + // - cubic bezier + case 'C': + x1 = eatNum(); y1 = eatNum(); + case 'S': + if (activeCmd === 'S') { + x1 = 2 * x - x2; y1 = 2 * y - y2; + } + x2 = eatNum(); + y2 = eatNum(); + nx = eatNum(); + ny = eatNum(); + path.bezierCurveTo(x1, y1, x2, y2, nx, ny); + x = nx; y = ny; + break; + case 'c': + x1 = x + eatNum(); + y1 = y + eatNum(); + case 's': + if (activeCmd === 's') { + x1 = 2 * x - x2; + y1 = 2 * y - y2; + } + x2 = x + eatNum(); + y2 = y + eatNum(); + nx = x + eatNum(); + ny = y + eatNum(); + path.bezierCurveTo(x1, y1, x2, y2, nx, ny); + x = nx; y = ny; + break; + // - quadratic bezier + case 'Q': + x1 = eatNum(); y1 = eatNum(); + case 'T': + if (activeCmd === 'T') { + x1 = 2 * x - x1; + y1 = 2 * y - y1; + } + nx = eatNum(); + ny = eatNum(); + path.quadraticCurveTo(x1, y1, nx, ny); + x = nx; + y = ny; + break; + case 'q': + x1 = x + eatNum(); + y1 = y + eatNum(); + case 't': + if (activeCmd === 't') { + x1 = 2 * x - x1; + y1 = 2 * y - y1; + } + nx = x + eatNum(); + ny = y + eatNum(); + path.quadraticCurveTo(x1, y1, nx, ny); + x = nx; y = ny; + break; + // - elliptical arc + case 'A': + rx = eatNum(); + ry = eatNum(); + xar = eatNum() * DEGS_TO_RADS; + laf = eatNum(); + sf = eatNum(); + nx = eatNum(); + ny = eatNum(); + if (rx !== ry) { + console.warn("Forcing elliptical arc to be a circular one :(", + rx, ry); + } + // SVG implementation notes does all the math for us! woo! + // http://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes + // step1, using x1 as x1' + x1 = Math.cos(xar) * (x - nx) / 2 + Math.sin(xar) * (y - ny) / 2; + y1 = -Math.sin(xar) * (x - nx) / 2 + Math.cos(xar) * (y - ny) / 2; + // step 2, using x2 as cx' + var norm = Math.sqrt( + (rx*rx * ry*ry - rx*rx * y1*y1 - ry*ry * x1*x1) / + (rx*rx * y1*y1 + ry*ry * x1*x1)); + if (laf === sf) + norm = -norm; + x2 = norm * rx * y1 / ry; + y2 = norm * -ry * x1 / rx; + // step 3 + cx = Math.cos(xar) * x2 - Math.sin(xar) * y2 + (x + nx) / 2; + cy = Math.sin(xar) * x2 + Math.cos(xar) * y2 + (y + ny) / 2; + + var u = new THREE.Vector2(1, 0), + v = new THREE.Vector2((x1 - x2) / rx, + (y1 - y2) / ry); + var startAng = Math.acos(u.dot(v) / u.length() / v.length()); + if (u.x * v.y - u.y * v.x < 0) + startAng = -startAng; + + // we can reuse 'v' from start angle as our 'u' for delta angle + u.x = (-x1 - x2) / rx; + u.y = (-y1 - y2) / ry; + + var deltaAng = Math.acos(v.dot(u) / v.length() / u.length()); + // This normalization ends up making our curves fail to triangulate... + if (v.x * u.y - v.y * u.x < 0) + deltaAng = -deltaAng; + if (!sf && deltaAng > 0) + deltaAng -= Math.PI * 2; + if (sf && deltaAng < 0) + deltaAng += Math.PI * 2; + + path.absarc(cx, cy, rx, startAng, startAng + deltaAng, sf); + x = nx; + y = ny; + break; + default: + throw new Error("weird path command: " + activeCmd); + } + if (firstX === null) { + firstX = x; + firstY = y; + } + // just reissue the command + if (canRepeat && nextIsNum()) + continue; + activeCmd = pathStr[idx++]; + } + + return path; + }; + + ar.util.gradientTexture = function (){ + function generateMeterial() { + + var size = 512; + + // create canvas + var canvas = document.createElement( 'canvas' ); + canvas.width = size; + canvas.height = size; + + // get context + var context = canvas.getContext( '2d' ); + + // draw gradient + context.rect( 0, 0, size, size ); + var gradient = context.createLinearGradient( 0, 0, 0, size ); + gradient.addColorStop(0, '#99ddff'); // light blue + gradient.addColorStop(1, 'transparent'); // dark blue + context.fillStyle = gradient; + context.fill(); + + var texture = new THREE.Texture( canvas ); + texture.needsUpdate = true; + var material = new THREE.MeshBasicMaterial( { + map: texture, transparent: true } ); + + return material; + } + + return generateMeterial(); + + }; + + ar.util.flatObject = function(param, mold, position,aboveGround){ + + var material = ar.util.newFace(mold.face); + + var geometry = new THREE.PlaneGeometry( mold.size.width, mold.size.high, 1, 1 ); + + var flat = new THREE.Mesh(geometry, material); + + flat.position.x = position.x; + flat.position.y = mold.size.high / 2 + aboveGround; + flat.position.z = position.z; + + var shp = _.extend({}, ar.shape3DClass); + shp.mesh = flat; + shp.isFlat = true; + shp.id = _.uniqueId(); + ar.shape3Ds.push(shp); + + shp.config = param; + + return shp; + }; + + ar.util.buildWall = function(mold, segment){ + + function updateLine(segment){ + if (segment.start.x === segment.end.x){ + segment.length = Math.abs(segment.end.z - segment.start.z); + segment.direct = "Z"; + } + if (segment.start.z === segment.end.z){ + segment.length = Math.abs(segment.end.x - segment.start.x); + segment.direct = "X"; + } + return segment; + } + + var line = updateLine(segment); + + var sideMaterial = ar.util.newFace(mold.faces.sideFace,line.length); + var wallMaterial = sideMaterial; + var topMaterial = ar.util.newFace(mold.faces.topFace, line.length); + + var xlen,ylen,zlen,xm,ym,zm,px,py,pz; + + ylen = mold.size.high; + py = ylen/2; + + if (line.direct === "X") + { + xlen = line.length + mold.size.width - 0.1; + zlen = mold.size.width; + zm = wallMaterial; + ym = topMaterial; + xm = sideMaterial; + if (line.start.x < line.end.x) + px = line.length/ 2 + line.start.x; + if (line.start.x > line.end.x) + px = line.start.x - line.length/2; + pz = line.start.z; + } + + if (line.direct === "Z") + { + zlen = line.length + mold.size.width / 2 - 0.1; + xlen = mold.size.width; + xm = wallMaterial; + zm = sideMaterial; + ym = topMaterial; + if (line.start.z > line.end.z) + pz = line.start.z - line.length / 2; + if (line.start.z < line.end.z) + pz = line.length /2 + line.start.z; + px = line.start.x; + } + + var wall = new THREE.Mesh(new THREE.CubeGeometry(xlen,ylen,zlen), + new THREE.MeshFaceMaterial( + [ + xm, // +x + xm, // -x + ym, // +y + ym, // -y + zm, // +z + zm // -z + ])); + + wall.position.x = px; + wall.position.y = py; + wall.position.z = pz; + wall.castShadow = true; + wall.receiveShadow = true; + return wall; + }; + + ar.util.buildWallPart = function(param){ + var mold = ar.util.getMold(param.moldId); + + //var doorMaterial = ar.util.newFace(mold.faces.topFace); + var frontMaterial = ar.util.newFace(mold.faces.frontFace); + var backMaterial = ar.util.newFace(mold.faces.backFace); + + var sideMaterial = ar.util.newFace(mold.faces.sideFace); + + var xlen,ylen,zlen,xm1,xm2,ym1,ym2,zm1,zm2,px,py,pz; + + ylen = mold.size.high; + py = mold.size.high /2 + param.position.y; + + if (param.direct === "X") + { + xlen = mold.size.width; + zlen = mold.size.depth; + zm1 = frontMaterial; + zm2 = backMaterial; + ym1 = sideMaterial; + ym2 = sideMaterial; + xm1 = sideMaterial; + xm2 = sideMaterial; + px = param.position.x; + pz = param.position.z; + } + + if (param.direct === "Z") + { + zlen = mold.size.width; + xlen = mold.size.depth; + xm1 = frontMaterial; + xm2 = backMaterial; + zm1 = sideMaterial; + zm2 = sideMaterial; + ym1 = sideMaterial; + ym2 = sideMaterial; + pz = param.position.z; + px = param.position.x; + } + + var door = new THREE.Mesh(new THREE.CubeGeometry(xlen,ylen,zlen), + new THREE.MeshFaceMaterial( + [ + xm1, // +x + xm2, // -x + ym1, // +y + ym2, // -y + zm1, // +z + zm2 // -z + ])); + + door.position.x = px; + door.position.y = py; + door.position.z = pz; + + return door; + }; + + ar.util.getMold = function(id){ + var res; + molds.forEach(function(m){ + if (m.id === id) res = m; + }); + + return res; + }; + + ar.util.radians = function(degrees) { + return degrees * Math.PI / 180; + }; + + ar.util.newFace = function(cfg, faceSize){ + + var param = {}; + + if (cfg.texture) { + param.map = new THREE.TextureLoader().load( cfg.texture ); + + if (cfg.tileWay){ + param.map.wrapS = param.map.wrapT = THREE.RepeatWrapping; + var walltileSize = cfg.textureSize; + + if (cfg.tileWay == "H") + param.map.repeat.set( faceSize / walltileSize, 1); + + if (cfg.tileWay == "T") + param.map.repeat.set( faceSize / walltileSize, faceSize / walltileSize); + + if (cfg.tileWay == "V") + param.map.repeat.set(1, faceSize / walltileSize); + } + } + + if (cfg.side) param.side = cfg.side; + if (cfg.color) param.color = new THREE.Color(cfg.color); + + if (cfg.transparent) param.transparent = cfg.transparent; + + var material = new THREE.MeshPhongMaterial(param); + + if (cfg.opacity) { + material.opacity = cfg.opacity; + } + else{ + material.opacity = 1; + } + if (material.opacity !== 1) material.depthWrite = false; + + return material; + }; + + ar.util.maskColor = function(mesh, color){ + if (!mesh) return; + try { + if (mesh.material instanceof THREE.MeshPhongMaterial) + { + mesh.material.emissive.setHex( color ); + //mesh.material.color.setHex( color ); + } + + if (mesh.material instanceof THREE.MultiMaterial) + { + mesh.material.materials.forEach(function(m){ + //m.color.setHex( color ); + m.emissive.setHex( color ); + }); + } + } + catch(err) { + + } + }; + + ar.util.getMaskColor = function(mesh){ + if (!mesh) return; + if (mesh.material instanceof THREE.MeshPhongMaterial) + { + return mesh.material.emissive.getHex(); + } + + if (mesh.material instanceof THREE.MultiMaterial) + { + return mesh.material.materials[0].emissive.getHex(); + } + }; + + ar.provider = { + collectBinding : function(){ + var res = []; + + ar.shape3Ds.forEach(function(shp){ + if (shp.config.bindings.length > 0) + { + var pack = { id:shp.id, bs:shp.config.bindings}; + res.push(pack); + } + }); + + return res; + }, + start : function(){ + if (!ar.options.shell) return; + + var bindingSet = this.collectBinding(); + + //http ask for result by interval + this.stop = ar.options.shell.$interval(function() { + //get data and refresh shapes status + ar.options.shell.$srv.getData(bindingSet).then(function(data){ + ar.shape3Ds.forEach(function(shp){ + var status = _.find(data, function(item){ + return item.id === shp.id; + }); + + if (status) shp.update(status); + }); + }); + }, 5000); + }, + dispose :function(){ + if (!ar.options.shell) return; + if (this.stop) + ar.options.shell.$interval.cancel(this.stop); + + ar.options.shell.$srv = undefined; + ar.options.shell.$interval = undefined; + ar.options.shell.$location = undefined; + this.stop = undefined; + } + }; + ///////// create main code here ///////// + ar.init(id); + ar.loadUnits(); + if (config) + ar.load(config); + else + ar.load(); + + if (options) + ar.options = _.extend(ar.options, options); + + //start 3D time line + ar.animate(); + + ar.provider.start(); + return ar; + } +}; diff --git a/applications/WebConfigure/web/js/bench.js b/applications/WebConfigure/web/js/bench.js new file mode 100644 index 0000000..9888c1d --- /dev/null +++ b/applications/WebConfigure/web/js/bench.js @@ -0,0 +1,2638 @@ +var Bench ={ + create:function(id, options) { + var bn = {}; + + //public vars + bn.dirty = false; //is config need be saved + bn.shapes = []; //all shape instances in svg + bn.symbols = []; //all shape's template(symbol) + bn.paper = null; //raphael core container object + bn.temp = {}; //all vars in temp object + bn.enablePan = true; // + //bn.realScale = 20; //unit : meter for rule calculation + bn.options = {}; + + ///////// function init code here ///////// + bn.init = function (domId) { + + //fields + bn.id = domId; + bn.domId = "#" + domId; //div id + //bn.offset = offset; //size of screen not belong to svg element + + //states + bn.mouseState = "default"; //mouse state: default/drawFloor.... + + //members + bn.getSize = function () { + //var w = $(bn.domId).width(); + var w = $(document).width() - 491; + var h = $(window).height() - $(bn.domId).position().top ; + //var h = $(window).height() - $(bn.domId).offset().top + 117; + //h = $(bn.domId).prop('scrollHeight'); + return { width: w, height: h }; + }; + + //inner functions + function createPaper() { + var size =bn.getSize(); + bn.paper =new Raphael(document.getElementById(bn.id), + size.width, size.height); + bn.paper.canvas.setAttribute('preserveAspectRatio', 'xMidYMid meet'); + bn.paper.setViewBox(0, 0, size.width, size.height); + + bn.resetSelection(); + } + + function enablePaperResize() { + $(window).resize(function () { + if (bn.temp.resizeTO) clearTimeout(bn.temp.resizeTO); + bn.temp.resizeTO = setTimeout(function () { + $(this).trigger('resizeEnd'); + }, 300); + }); + + $(window).unbind('resizeEnd').bind('resizeEnd', function () { + //resize canvas + bn.paper.setSize(bn.getSize().width, + bn.getSize().height); + }); + } + + function defineMouseBehavior() { + bn.viewBoxWidth = bn.paper.width; + bn.viewBoxHeight = bn.paper.height; + var canvasID = bn.domId; + var startX, startY; + var mousedown = false; + var dX, dY; + var oX = 0, oY = 0, oWidth = bn.viewBoxWidth, oHeight = bn.viewBoxHeight; + bn.viewBox = bn.paper.setViewBox(oX, oY, bn.viewBoxWidth, bn.viewBoxHeight); + bn.viewBox.X = oX; + bn.viewBox.Y = oY; + + function handleZoom(delta) { + if (delta < 0) { + bn.setZoom(0.95); + } + else { + bn.setZoom(1.05); + } + } + + //Event handler for mouse wheel event. + function wheel(e) { + var event = e.originalEvent; + var delta = 0; + if (!event) /* For IE. */ + event = window.event; + if (event.wheelDelta) { /* IE/Opera. */ + delta = event.wheelDelta / 120; + } else if (event.detail) { + /** Mozilla case. */ + delta = -event.detail / 3; + } + /** If delta is nonzero, handle it. + * Basically, delta is now positive if wheel was scrolled up, + * and negative, if wheel was scrolled down. + */ + if (delta) { + handleZoom(delta); + } + + //Prevent default actions caused by mouse wheel + if (event.preventDefault) + event.preventDefault(); + event.returnValue = false; + } + + $(canvasID).unbind('mousewheel DOMMouseScroll').bind( + {'mousewheel DOMMouseScroll': wheel}); + + function updateWallPath(mx, my) { + var cp = bn.canvasPoint(mx, my); + + if (bn.temp.wallCache) { + var twidth = Math.abs(cp.x - bn.temp.wallCache.lastX); + var theight = Math.abs(cp.y - bn.temp.wallCache.lastY); + + if (twidth > theight) { + bn.temp.wallCache.lastX = cp.x; + bn.temp.wallCache.path += " H " + cp.x + " "; + } + else { + bn.temp.wallCache.lastY = cp.y; + bn.temp.wallCache.path += " V " + cp.y + " "; + } + } + else { + bn.temp.wallCache = {}; + bn.temp.wallCache.ps = []; + bn.temp.wallCache.path = "M " + cp.x + " " + cp.y + " "; + bn.temp.wallCache.lastX = cp.x; + bn.temp.wallCache.lastY = cp.y; + } + + var p = bn.addShape("pointIndicator", + {x: bn.temp.wallCache.lastX, y: bn.temp.wallCache.lastY}); + + bn.temp.wallCache.ps.push(p); + + } + + function panWindow(px, py) { + if (bn.mouseState === "pan") + $(canvasID).css('cursor', "url('/img/3d/hand-pull-lightblue.cur'), default"); + + dX = startX - px; + dY = startY - py; + var x = bn.viewBoxWidth / bn.paper.width; + var y = bn.viewBoxHeight / bn.paper.height; + + dX *= x; + dY *= y; + + bn.paper.setViewBox(bn.viewBox.X + dX, bn.viewBox.Y + dY, bn.viewBoxWidth, bn.viewBoxHeight, true); + } + + function getDoorPosition(x, y) { + //find one wall + var els = []; + + var elements = bn.paper.getElementsByPoint(x,y); + elements.forEach(function(el){ + if (el.sym != undefined) els.push(el); + }); + + var pointRanges = []; + + var range = 5; + while( range > 0) + { + pointRanges.push({ x1: x + range, y1: y}); + pointRanges.push({ x1: x, y1: y + range}); + pointRanges.push({ x1: x - range, y1: y}); + pointRanges.push({ x1: x, y1: y - range}); + + range--; + } + + var pts = []; + pointRanges.forEach(function(point){ + var elements = bn.paper.getElementsByPoint(point.x1, point.y1); + pts = _.filter(elements, function (el) { + return el.sym !== undefined; + }); + + pts.forEach(function(ptsItem){ + if (_.contains(els, ptsItem) !== true){ + els.push(ptsItem); + } + }); + }); + + var wps = _.filter(els, function (el) { + return el.sym.name === "floorPath" || el.sym.name === "wallPath"; + }); + + + //find multi-points + if (_.isUndefined(wps)) return; + if (wps.length == 0 ) return; + + var positions = []; + wps.forEach(function(pt){ + //get path points collection + var lastX, lastY; + var ptPoints = _.reduce(pt.realPath, function (ps, segment) { + var point = {}; + + if (segment[0] == "M") { + point.x = segment[1]; + point.y = segment[2]; + lastX = point.x; + lastY = point.y; + point.type = "M"; + } + + if (segment[0] == "H") { + point.x = segment[1]; + point.y = lastY; + lastX = point.x; + point.type = "H"; + } + + if (segment[0] == "V") { + point.y = segment[1]; + point.x = lastX; + lastY = point.y; + point.type = "V"; + } + + ps.push(point); + return ps; + }, []); + + var position = _.reduce(ptPoints, function (pos, poi) { + if (pos.min > Math.abs(poi.x - x)) { + pos.min = Math.abs(poi.x - x); + pos.type = "X"; + pos.x = poi.x; + pos.y = poi.y; + } + + if (pos.min > Math.abs(poi.y - y)) { + pos.min = Math.abs(poi.y - y); + pos.type = "Y"; + pos.x = poi.x; + pos.y = poi.y; + } + + return pos; + }, {min: 99999999}); + + positions.push(position); + }); + + //find right points + var minPosition = _.min(positions, function(o){ + return o.min; + }); + + return minPosition; + } + + function updateWallShape() { + $(bn.domId).css('cursor', 'crosshair'); + if (bn.temp.wallCache.line) { + bn.temp.wallCache.line.attr("path", bn.temp.wallCache.path); + } + else { + bn.temp.wallCache.line = bn.paper.path(bn.temp.wallCache.path); + bn.temp.wallCache.line.attr({ + "type": "path", + "stroke": "#28a4c9", + "stroke-width": 40, + "stroke-linejoin": "round", + "stroke-linecap": "round", + "pointer-events": "all" + }); + } + + if (bn.temp.wallCache.ps.length == 3){ + if (bn.currentSymbol.name == "floorPath"){ + bn.selectDefaultSymbol(); + } + } + } + + function finishRuler(mx, my) { + var cp = bn.canvasPoint(mx, my); + + if (!bn.temp.rule) { + bn.temp.rule = {}; + bn.temp.rule.start = cp; + bn.temp.rule.startIndicator = bn.addShape("pointIndicator", cp); + } else { + var shp = bn.addShape("ruler", {start: bn.temp.rule.start, end: cp}); + bn.temp.rule.startIndicator.delete(); + bn.temp.rule = undefined; + mousedown = false; + + bn.selectDefaultSymbol(); + } + + } + + function prepareSelection(e){ + + var el = bn.paper.getElementByPoint(e.pageX, e.pageY); + + if (bn.isSelectable(el)){ + var shp = bn.getShapeByElement(el); + if (shp) + { + if (!shp.selected) + { + bn.resetSelection(); + bn.setSelection(el); + } + bn.selection.one = true; + } + } + else { + //selection default 0; + bn.selection.one = false; + var p1 = bn.canvasPoint(e.pageX, e.pageY); + setMarquee(p1.x, p1.y, 0, 0); + bn.marquee.toFront(); + } + } + + $(canvasID).mousedown(function (e) { + + //if (bn.paper.getElementByPoint(e.pageX, e.pageY) != null) { + // bn.resetSelection(); + // bn.selectByClick(e); + // if (bn.mouseState !== "drawWall" && + // bn.mouseState !== "drawWallPart" && + // bn.mouseState !== "drawRuler" && + // bn.mouseState !== "drawShape") return; + //} + + if (bn.mouseState === "default") prepareSelection(e); + + //common + mousedown = true; + startX = e.pageX; + startY = e.pageY; + + //all situation can pan window + panWindow(e.pageX, e.pageY); + + if (bn.mouseState === "drawWall") { + updateWallPath(e.pageX, e.pageY); + } + + if (bn.mouseState == "drawRuler") { + finishRuler(e.pageX, e.pageY); + } + + if (bn.mouseState == "drawShape"){ + var sp = bn.addShape(bn.currentSymbol.name, bn.canvasPoint(e.pageX,e.pageY)); + bn.shapes.forEach(function(shp){ + if (shp.selected) { + shp.updateLook(); + } + }); + bn.resetSelection(); + bn.setSelection(sp.element); + + } + + if (bn.mouseState === "drawWallPart") { + var cp = bn.canvasPoint(e.pageX, e.pageY); + var pos = getDoorPosition(cp.x, cp.y); + //var pos = getDoorPosition(e.clientX, e.clientY); + + if (_.isUndefined(pos)) return; + + var symbolName = bn.currentSymbol.name; + if (pos.min < 100) { + if (pos.type == "Y") { + bn.addShape(symbolName, {x: cp.x, y: pos.y - 15, type: pos.type}); + } + else { + bn.addShape(symbolName, {x: pos.x - 15, y: cp.y, type: "X"}); + } + } + } + + }); + + function setMarquee(x, y, width, height) { + bn.marquee.attr({"x": x}); + bn.marquee.attr({"y": y}); + bn.marquee.attr({"width": width}); + bn.marquee.attr({"height": height}); + } + + function updateSelection(e){ + if (bn.selection.one) return; + if (bn.selectRect) return; + var p1 = bn.canvasPoint(startX, startY); + var p2 = bn.canvasPoint(e.pageX, e.pageY); + + function Interval(lo, hi) { + this.lo = Math.min(lo, hi); + this.hi = Math.max(lo, hi); + } + + Interval.prototype.contains = function(value) { + return this.lo <= value && value <= this.hi; + }; + + Interval.prototype.isOverlapping = function(that) { + return ( + this.contains(that.lo) || + this.contains(that.hi) || + that.contains(this.lo) || + that.contains(this.hi) + ); + }; + + function inSelection(shape) { + var mBBox = bn.marquee.getBBox(); + var sBBox = shape.element.getBBox(); + var marqueeX = new Interval(mBBox.x, mBBox.x + mBBox.width); + var marqueeY = new Interval(mBBox.y, mBBox.y + mBBox.height); + var shapeX = new Interval(sBBox.x, sBBox.x + sBBox.width); + var shapeY = new Interval(sBBox.y, sBBox.y + sBBox.height); + + return marqueeX.contains(shapeX.lo) && + marqueeX.contains(shapeX.hi) && + marqueeY.contains(shapeY.lo) && + marqueeY.contains(shapeY.hi); + } + + function selectShapes() { + + bn.shapes.forEach(function(shape){ + if (!bn.isSelectable(shape.element)) return; + + if ( inSelection(shape) ) { + bn.setSelection(shape.element); + } else { + bn.removeSelection(shape); + } + }); + } + + bn.marquee.show(); + + setMarquee( + Math.min(p1.x, p2.x), Math.min(p1.y, p2.y), + Math.abs(p1.x - p2.x), Math.abs(p1.y - p2.y) + ); + + selectShapes(); + + } + + $(canvasID).mousemove(function (e) { + + if (mousedown == false) { + return; + } + + if (bn.mouseState === "default") updateSelection(e); + if (bn.mouseState === "pan") panWindow(e.pageX, e.pageY); + }); + + function finishSelection() + { + setMarquee(0,0,0,0); + if (!bn.selection.one) + { + if (bn.selectRect) + { + bn.shapes.forEach(function(shp){ + if (shp.selected) { + shp.updateLook(); + } + }); + bn.resetSelection(); + } + else + { + if (bn.selection.length == 0) return; + var box = bn.selection.getBBox(); + //console.log(box.x,box.y,box.width); + bn.selectRect = bn.paper.rect(box.x,box.y,box.width,box.height); + bn.selectRect.attr({fill: "green"}); + bn.selectRect.attr({"fill-opacity": "0.2"}); + bn.selectRect.attr({"stroke-opacity": "0.3"}); + bn.selectRect.attr({"stroke-dasharray":"-"}); + bn.selectRect.attr({stroke: "green"}); + bn.selectRect.attr({"stroke-width": 10}); + bn.selectRect.toFront(); + bn.selectRect.draggable(); + } + } + bn.selection.getBBox(); + } + + $(canvasID).mouseup(function (e) { + + //common + if (mousedown == false) return; + + bn.viewBox.X += dX; + bn.viewBox.Y += dY; + mousedown = false; + + if (bn.mouseState === "default") + finishSelection(); + + + var cp = bn.canvasPoint(e.pageX, e.pageY); + + if (bn.mouseState === "drawWall") { + updateWallShape(); + } else if (bn.mouseState === "drawRuler") { + if (bn.temp.rule) $(canvasID).css('cursor', 'crosshair'); + } else if (bn.mouseState === "drawWallPart") { + $(canvasID).css('cursor', 'crosshair'); + } else if (bn.mouseState === "drawShape"){ + + } + else { + $(canvasID).css('cursor', 'default'); + } + + + }); + } + + function defineKeyBehavior() { + $(document).keyup(function (e) { + + if (e.keyCode == 27) { // escape key maps to keycode `27` + if (bn.currentSymbol.handleKey) + bn.currentSymbol.handleKey("ESC"); + } + if (e.keyCode == 46) { + bn.delete(); + } + + if (e.keyCode == 37) { + bn.move('left'); + } + + if (e.keyCode == 39){ + bn.move('right'); + } + + if (e.keyCode == 38){ + bn.move('up'); + } + + if (e.keyCode == 40){ + bn.move('down'); + } + }); + + $(document).keydown(function (e) { + + if (e.keyCode == 37) { + bn.move('left'); + } + + if (e.keyCode == 39){ + bn.move('right'); + } + + if (e.keyCode == 38){ + bn.move('up'); + } + + if (e.keyCode == 40){ + bn.move('down'); + } + + }); + } + + //actions + createPaper(); + defineMouseBehavior(); + defineKeyBehavior(); + + bn.selectDefaultSymbol(); + enablePaperResize(); + }; + + bn.clear = function () { + bn.temp = {}; //clear all temporary vars + bn.dirty = false; //set to default + bn.shapes = []; //clear shape instances + bn.paper.clear(); + bn.resetSelection(); + }; + + bn.load = function (config) { + bn.clear(); + if (config) { + bn.loadConfig = config; + } + else { + bn.loadConfig = bn.demoConfig; + } + + bn.setZoom(bn.loadConfig.editorZoom); + + var loadShape = function(sp) { + var shp = bn.addShape(sp.param2D.symbol, sp.param2D); + if (shp) { + shp.config = sp; + shp.updateLook(); + } + }; + + bn.loadConfig.shapes.forEach(function (shp) { + loadShape(shp); + }); + + bn.shapes.forEach(function (shp) { + if (shp.element.sym.name === "floorPath") return; + if (shp.element.sym.name === "floorImage") return; + shp.element.toFront(); + }); + + bn.dirty = false; + }; + + bn.addShape = function (symbolName, param) { + var sym = _.find(bn.symbols, function (item) { + return item.name === symbolName; + }); + if (_.isUndefined(sym)) return; + + /*unique elements create by each symbols*/ + var el = sym.create(param); + $(el).keyup(function(event) { + if (e.keyCode == 46) { + bn.delete(); + } + }); + el.sym = sym; + + var shp = _.extend({}, bn.shapeClass); + shp.element = el; + + bn.shapes.push(shp); + if (!shp.config) shp.newConfig(); + shp.updateLook(); + bn.dirty = true; + return shp; + }; + + bn.shapeMakeup = function (el, sym) { + //el.hover(function () { + // this.glowEffect = this.glow({color: "blue", width: 15}); + //}, function () { + // this.glowEffect.remove(); + //}); + if (sym.class) + { + $(el.node).attr("class", sym.class); + } + + if (sym.style) + { + for(var a in sym.style) + { + el.attr(a, sym.style[a]); + } + } + + if (sym.class !== "floorPath") + el.draggable(); + return el; + }; + + bn.selectSymbol = function (sym) { + if (bn.currentSymbol) { + if (bn.currentSymbol.endState) + bn.currentSymbol.endState(); + } + + bn.mouseState = sym.mouseState; + bn.currentSymbol = sym; + if (sym.initState) sym.initState(); + + //update cursor & mouseState for common purpose + $(bn.domId).css('cursor', 'auto'); + + if (sym.cursor) $(bn.domId).css('cursor', sym.cursor); + bn.update(); + }; + + bn.selectDefaultSymbol = function () { + bn.selectSymbol(bn.symbols[0]); + }; + + bn.findShapeBySymbolName = function (name) { + var sps = _.filter(bn.shapes, function (shp) { + return shp.element.sym !== undefined; + }); + + return _.find(sps, function (shp) { + return shp.element.sym.name === name; + }); + }; + + bn.setZoom = function (zoom){ + var vBHo = bn.viewBoxHeight; + var vBWo = bn.viewBoxWidth; + var vX = bn.viewBox.X; + var vY = bn.viewBox.Y; + + bn.viewBoxWidth *= zoom; + bn.viewBoxHeight *= zoom; + + bn.viewBox.X -= (bn.viewBoxWidth - vBWo) / 2; + bn.viewBox.Y -= (bn.viewBoxHeight - vBHo) / 2; + //bn.viewBox.X = zoom * vX; + //bn.viewBox.Y = zoom * vY; + + bn.paper.setViewBox(bn.viewBox.X, bn.viewBox.Y, bn.viewBoxWidth, bn.viewBoxHeight, true); + }; + + bn.setSelection = function (el) { + + el.attr({"stroke": "#8ADBB2"}); + el.attr({"fill": "#74ED34"}); + el.attr({"fill-opacity": "0.7"}); + el.attr({"stroke-opacity": "0.7"}); + + var exist = false; + if (bn.selection) { + bn.selection.forEach(function (e) { + if (e === el) exist = true; + }); + + if (!exist) + { + if (el.sym) bn.selection.push(el); + } + + bn.getShapeByElement(el).selected = true; + //bn.selection.draggable(); + //console.log(bn.selection); + + var selectedShapes = []; + bn.selection.forEach(function (e) { + selectedShapes.push(bn.getShapeByElement(e)); + }); + + bn.ev("shapeSelected", selectedShapes); + } + }; + + bn.isSelectable = function(el){ + + if (el == null) return false; + if (el === bn.selectRect) return true; + if (_.isUndefined(el.sym)) return false; + if (el.sym.name === "floorPath") return false; + if (el.sym.name === "floorImage") return false; + + return true; + }; + + bn.resetSelection = function (){ + var selectedShapes = []; + if (bn.shapes) { + bn.shapes.forEach(function (shp) { + if (shp.selected) selectedShapes.push(shp); + }); + bn.ev("resetShape", selectedShapes); + } + + if (_.isUndefined(bn.marquee)) + bn.marquee = bn.paper.rect(0, 0, 0, 0); + + { + bn.marquee = bn.paper.rect(0, 0, 0, 0); + bn.marquee.attr({fill: "none"}); + bn.marquee.attr({"stroke-dasharray":"-"}); + bn.marquee.attr({stroke: "green"}); + bn.marquee.attr({"stroke-width": 10}); + bn.marquee.toFront(); + } + + bn.selection = bn.paper.set(); + if (bn.selectRect) { + bn.selectRect.remove(); + bn.selectRect = undefined ; + } + + bn.shapes.forEach(function(shp){ + shp.resetStyle(); + shp.selected = false; + + }); + }; + + bn.getShapeByElement = function(el){ + var res = null; + bn.shapes.forEach(function(shp){ + if (shp.element === el) res = shp; + }); + + return res; + }; + + bn.removeSelection = function (shape){ + shape.resetStyle(); + shape.selected = false; + bn.selection.exclude(shape.element); + }; + + bn.save = function (){ + + //get floor calc center2D for 3d config position update + var floor = _.find(bn.shapes, function(shp){ + return shp.element.sym.name == "floorPath"; + }); + + if (floor) floor.element.sym.calcCenter(floor.element); + + bn.loadConfig.shapes.length = 0; + bn.shapes.forEach(function(shp){ + shp.updateConfig(); + bn.loadConfig.shapes.push(shp.config); + }); + + bn.uploadConfig(bn.loadConfig); + //bn.demoConfig = bn.loadConfig; + //bn.info(angular.toJson(bn.loadConfig)); + + bn.dirty = false; + }; + + bn.newConfig = function(){ + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var prompt = languageJson.Room3D.Edit.Prompt; + var nc = { + "name": "new floor", + "title": prompt.Room, + "description": prompt.Note, + "version": "0.0.1", + "editorZoom": 1, + "shapes":[] + };/*"新机房" "备注请放在这里"*/ + + bn.load(nc); + }; + + bn.canvasPoint = function (pageX, pageY) { + var rX = pageX - $(bn.domId).position().left; + var rY = pageY - $(bn.domId).position().top; + var x = bn.viewBoxWidth / bn.paper.width; + var y = bn.viewBoxHeight / bn.paper.height; + var tX = bn.viewBox.X + rX * x; + var tY = bn.viewBox.Y + rY * y; + + return {x: tX, y: tY}; + }; + + bn.delete = function(){ + if (bn.selection.length == 0) return; + var needremoves = []; + bn.shapes.forEach(function(shape){ + if (shape.selected) needremoves.push(shape); + }); + + needremoves.forEach(function(shp){ + shp.delete(); + }); + }; + + bn.align = function(type){ + if (bn.selection.length < 2) return; + + if (type == "left"){ + var leftElement = _.min(bn.selection, function(el){ + var box = el.getBBox(); + return box.x; + }); + + var leftPosition = leftElement.getBBox().x; + + bn.selection.forEach(function(el){ + var offset = leftPosition - el.getBBox().x; + var shp = bn.getShapeByElement(el); + //el.nt_translate(offset,0); + shp.translate(offset,0); + }); + } + + if (type == "hcenter"){ + var ec = bn.selection.length; + var sy = 0; + bn.selection.forEach(function(el){ + sy = sy + el.getBBox().y; + }); + + var mid = sy/ec; + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + var offset = mid - el.getBBox().y; + //el.nt_translate(0, offset); + shp.translate(0,offset); + }); + } + + if (type == "right"){ + var rightElement = _.max(bn.selection, function(el){ + var box = el.getBBox(); + return box.x; + }); + + var rightPosition = rightElement.getBBox().x + rightElement.getBBox().width; + + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + var offset = rightPosition - el.getBBox().x - el.getBBox().width; + shp.translate(offset, 0); + //el.nt_translate(offset, 0); + }); + } + + if (type == "top"){ + var topElement = _.min(bn.selection, function(el){ + return el.getBBox().y; + }); + + var topPosition = topElement.getBBox().y; + + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + var offset = topPosition - el.getBBox().y; + //el.nt_translate(0,offset); + shp.translate(0,offset); + }); + } + + if (type == "vcenter"){ + var ec = bn.selection.length; + var sx = 0; + bn.selection.forEach(function(el){ + sx = sx + el.getBBox().x; + }); + + var mid = sx/ec; + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + var offset = mid - el.getBBox().x; + //el.nt_translate(offset,0); + shp.translate(offset, 0); + }); + } + + if (type == "bottom"){ + var bottomElement = _.max(bn.selection, function(el){ + var box = el.getBBox(); + return box.y; + }); + + var bottomPosition = bottomElement.getBBox().y + bottomElement.getBBox().height; + + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + var offset = bottomPosition - el.getBBox().y - el.getBBox().height; + //el.nt_translate(0,offset); + shp.translate(0,offset); + }); + } + + bn.dirty = true; + }; + + bn.spacing = function(type){ + if (bn.selection.length < 2) return; + + if (type == "h"){ + var leftElement = _.min(bn.selection, function(el){ + var box = el.getBBox(); + return box.x; + }); + + var leftPosition = leftElement.getBBox().x; + + var ar = _.sortBy(bn.selection, function(el){ + return -(leftPosition - el.getBBox().x); }); + + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var prompt = languageJson.Room3D.Edit.Prompt; + /*"请输入物体间隔距离(cm)"*/ + bn.input(prompt.Distance,0,languageJson.InputBox).then(function(data){ + if (data.result){ + var interval = parseFloat(data.val); + var leftSpace = 0; + + ar.forEach(function(el){ + el.nt_translate(leftPosition - el.getBBox().x,0); + el.nt_translate(leftSpace,0); + leftSpace = leftSpace + el.getBBox().width + interval; + }); + } + }); + } + + if (type == "v"){ + var topElement = _.min(bn.selection, function(el){ + var box = el.getBBox(); + return box.y; + }); + + var topPosition = topElement.getBBox().y; + + var ar = _.sortBy(bn.selection, function(el){ + return -(topPosition - el.getBBox().y); }); + + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var prompt = languageJson.Room3D.Edit.Prompt; + /*"请输入物体间隔距离(cm)"*/ + bn.input(prompt.Distance,0,languageJson.InputBox).then(function(data){ + if (data.result){ + var interval = parseFloat(data.val); + var topSpace = 0; + + ar.forEach(function(el){ + el.nt_translate(0, topPosition - el.getBBox().y); + el.nt_translate(0, topSpace); + topSpace = topSpace + el.getBBox().height + interval; + }); + } + }); + } + + bn.dirty = true; + }; + + bn.copy = function(){ + if (bn.selection.length == 0) return; + + var copyitems = []; + + bn.selection.forEach(function(el){ + var shp = bn.getShapeByElement(el); + if (shp) copyitems.push(shp.clone()); + }); + + bn.resetSelection(); + + copyitems.forEach(function(shp){ + bn.shapes.push(shp); + bn.setSelection(shp.element); + }); + + var box = bn.selection.getBBox(); + bn.selectRect = bn.paper.rect(box.x,box.y,box.width,box.height); + bn.selectRect.attr({fill: "green"}); + bn.selectRect.attr({"fill-opacity": "0.2"}); + bn.selectRect.attr({"stroke-opacity": "0.3"}); + bn.selectRect.attr({"stroke-dasharray":"-"}); + bn.selectRect.attr({stroke: "green"}); + bn.selectRect.attr({"stroke-width": 10}); + bn.selectRect.toFront(); + bn.selectRect.draggable(); + bn.dirty = true; + }; + + bn.move = function(type){ + if (bn.selection.length < 1) return; + + if (type == "left"){ + bn.selection.forEach(function(el){ + bn.getShapeByElement(el).translate(-1,0); + //el.nt_translate(-1,0); + }); + } + + if (type == "right"){ + bn.selection.forEach(function(el){ + bn.getShapeByElement(el).translate(1,0); + //el.nt_translate(1,0); + }); + } + + if (type == "up"){ + bn.selection.forEach(function(el){ + bn.getShapeByElement(el).translate(0,-1); + //el.nt_translate(0,-1); + }); + } + + if (type == "down"){ + bn.selection.forEach(function(el){ + bn.getShapeByElement(el).translate(0,1); + //el.nt_translate(0,1); + }); + } + + bn.dirty = true; + }; + + bn.toBack = function(){ + //if (bn.selection.length < 1) return; + bn.selection.forEach(function(el){ + el.toBack(); + }); + + //floor and image can not select, so it's must be at bottom. + var floor = _.find(bn.shapes, function(shp){ + return shp.element.sym.name == "floorPath"; + }); + + if (floor) floor.element.toBack(); + + var floorImage = _.find(bn.shapes, function(shp){ + return shp.element.sym.name == "floorImage"; + }); + + if (floorImage) floorImage.element.toBack(); + }; + + bn.toFront = function(){ + if (bn.selection.length < 1) return; + bn.selection.forEach(function(el){ + el.toFront(); + }); + }; + + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var edit = languageJson.Room3D.Edit; + + bn.symbols = [ + { + name: "cursor", + title: edit.Cursor,/*"选择"*/ + tip: edit.CursorPrompt,/*"选中物体,可操作各种物体"*/ + icon: "/img/3d/cursor.png", + mouseState: "default", + cursor: "default", + visible: true, + initState: function(){ + } + }, + { + name: "pan", + title: edit.Pan,/*"移动"*/ + tip: edit.PanPrompt,/*"拖动移动画布"*/ + icon: "/img/3d/move.png", + mouseState: "pan", + cursor: "default", + visible: true, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + initState: function(){ + } + }, + { + name: "pointIndicator", + title: edit.Point,/*"点"*/ + tip: edit.PointPrompt,/*"鼠标点击提示"*/ + visible: false, + class: "pointIndicator", + props: { + radius: 60 + }, + create: function (param) { + return bn.shapeMakeup(bn.paper.circle(param.x, param.y, this.props.radius), this); + } + }, + { + name: "floorImage", + title: edit.FloorImage,/*"地板底图"*/ + tip: edit.ImagePrompt,/*"用来做地板衬底方便绘制"*/ + type: "part", + elementType: "path", + scale: 1, + tempParam: null, + create: function (param) { + var cp = bn.getSize(); + var fx = (cp.width - param.width) / 2; + var fy = (cp.height - param.height) / 2; + var el = bn.paper.image(param.src, fx, fy, param.width, param.height); + // if (param.scale) + // { + // el.scale(param.scale,param.scale); + // this.scale = param.scale; + // } + return el; + }, + updateScale: function(element, realSize, rulerLength){ + + var x = bn.viewBoxWidth / bn.paper.width; + this.scale = (100 * realSize) / (rulerLength); + + //var y = bn.viewBoxHeight / bn.paper.height; + element.scale(this.scale,this.scale); + this.tempParam = { + width : element.getBBox().width, + height : element.getBBox().height + }; + + }, + update3DConfig: function(element, config){ + delete config['param3D']; + }, + update2DConfig: function(element, config){ + _.extend(config.param2D , this.tempParam); + //config.param2D = this.tempParam; + config.param2D.scale = this.scale; + }, + }, + { + name: "ruler", + title: edit.Ruler,/*"标尺"*/ + tip: edit.RulerPrompt,/*"标尺状态: 标记地板底图尺寸用于缩放底图到适当大小"*/ + icon: "/img/3d/ruler.png", + mouseState: "drawRuler", + cursor: "crosshair", + visible: true, + class: "rulerPath", + props:{ + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + create: function (param) { + var line = bn.paper.path(["M", param.start.x, param.start.y, + "L", param.end.x, param.end.y]); + return bn.shapeMakeup(line, this); + }, + initState: function () { + var ruler = bn.findShapeBySymbolName("ruler"); + if (ruler) { + /*"此操作将删除已经存在的标尺比例,重新计算底图缩放比例,是否继续?"*/ + bn.confirm(edit.Prompt.RulerConfirm,languageJson.ConfirmBox).then(function (data) { + if (data === true) { + ruler.delete(); + var imgElement =bn.findShapeBySymbolName("floorImage").element; + imgElement.transform(""); + } + if (data === false) bn.selectDefaultSymbol(); + }); + } + }, + endState: function () { + var ruler = bn.findShapeBySymbolName("ruler"); + if (ruler) { + /*"请输入该线段对应实际长度,单位:米"*/ + bn.input(edit.Prompt.RulerInput,"0",languageJson.InputBox).then(function (data) { + if (data.result){ + var v = parseFloat(data.val); + if (v <= 0 || v > 9999) + { + /*"输入的尺寸不正确, 请重新绘制"*/ + bn.info(edit.Prompt.RulerInfo,languageJson.MessageBox); + ruler.delete(); + return; + } + + var imgElement =bn.findShapeBySymbolName("floorImage").element; + imgElement.sym.updateScale(imgElement, v, + ruler.element.getTotalLength()); + } + + ruler.delete(); + + }); + } + }, + update3DConfig: function(element, config){ + delete config['param3D']; + }, + update2DConfig: function(element, config){ + config.param2D.start = {}; + config.param2D.start.x = element.getBBox().x; + config.param2D.start.y = element.getBBox().y; + config.param2D.end = {}; + config.param2D.end.x = element.getBBox().x + element.getBBox().width; + config.param2D.end.y = element.getBBox().y + element.getBBox().height; + } + }, + { + name: "floorPath", + title: edit.FloorPath,/*"地板"*/ + tip: edit.PathPrompt,/*"画地板状态: 画矩形封闭区域,点三点形成矩形"*/ + icon: "/img/3d/Floor2.png", + mouseState: "drawWall", + cursor: "crosshair", + unit: "floor", + moldId:"wallpath-default", + visible: true, + style:{ + "stroke":"#28a4c9", + "stroke-width":"40", + "stroke-linejoin":"round", + "stroke-linecap": "round", + "pointer-events": "all", + "fill-opacity":"0.5", + "fill":"#b9def0" + }, + create: function (param) { + return bn.shapeMakeup(bn.paper.path(param.path), this); + }, + update: function(cfg, element){ + var mold = _.find(molds, function(m){ + return m.id == cfg.param3D.moldId; }); + + if (cfg.param2D.angle) element.animate({ + transform:"r" + cfg.param2D.angle }, 500); + + element.animate({"stroke-width": mold.size.width }, 500); + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + endState: function (){ + if (_.isUndefined(bn.temp.wallCache)) return; + if (_.isUndefined(bn.temp.wallCache.ps)) return; + bn.temp.wallCache.ps.forEach(function(shp){ + shp.delete(); + }); + + //因为只能绘制矩形地板的原因,需对结果Path进行计算 + //只能点3个点,用直角折线形成精确的第三点并封闭来构成真正的矩形 + + var startPoint = {}; + var endSegment = ""; + var index = 0; + + var floorLine = _.reduce(bn.temp.wallCache.line.attrs.path, function (ps, segment) { + + if (index == 3) return ps; + index ++; + + if (segment[0] == "M") { + ps = "M " + segment[1] + " " + segment[2]; + startPoint.x = segment[1]; + startPoint.y = segment[2]; + } + + if (segment[0] == "H") { + ps = ps + " H " + segment[1]; + if (index == 3) endSegment = " V " + startPoint.y + " Z "; + } + + if (segment[0] == "V") { + ps = ps + " V " + segment[1]; + if (index == 3) endSegment = " H " + startPoint.x + " Z "; + } + + return ps; + }, ""); + + if (index == 3) floorLine = floorLine + endSegment; + //console.log(floorLine); + var shp = bn.addShape("floorPath", {path: floorLine}); + bn.toBack(); + bn.temp.wallCache.line.remove(); + bn.temp.wallCache = undefined; + + //this.update2DConfig(shp.element, shp.config); + //this.update3DConfig(shp.element. shp.config); + }, + calcCenter: function(element){ + var fp = element; + if (fp) { + var ps = fp.attr("path"); + var w, h; + var sx,sy,mx,my; + + var sx = parseFloat(ps[0][1]); + var sy = parseFloat(ps[0][2]); + + if (ps[1][0] === "H") + mx = parseFloat(ps[1][1]); + else + mx = parseFloat(ps[2][1]); + + if (ps[1][0] === "V") + my = parseFloat(ps[1][1]); + else + my = parseFloat(ps[2][1]); + } + + w = Math.abs(mx - sx); + h = Math.abs(my - sy); + + bn.center2D = {}; + bn.center2D.x = sx + w / 2; + bn.center2D.y = sy + h / 2; + }, + initState: function(){ + bn.enablePan = false; + var fp = bn.findShapeBySymbolName("floorPath"); + if (fp) { + /*"地板只允许有一个,确定重新绘制?"*/ + bn.confirm(edit.Prompt.FloorConfirm,languageJson.ConfirmBox).then(function (data) { + if (data === true) { + fp.delete(); + } + else + bn.selectDefaultSymbol(); + }); + } + else{ + /*"点击三个点形成直角折线来自动形成矩形地板"*/ + bn.info(edit.Prompt.FloorInfo,languageJson.MessageBox); + } + }, + update2DConfig: function(element, config){ + //todo: when moved all path string changed to 'c' + config.param2D.path = element.attr("path").toString(); + }, + update3DConfig: function(element, config) { + config.param3D.floorTexture = "/img/3d/floor05.png"; + + var fp = element; + if (fp) { + var ps = fp.attr("path"); + var w, h; + var sx,sy,mx,my; + + var sx = parseFloat(ps[0][1]); + var sy = parseFloat(ps[0][2]); + + if (ps[1][0] === "H") + mx = parseFloat(ps[1][1]); + else + mx = parseFloat(ps[2][1]); + + if (ps[1][0] === "V") + my = parseFloat(ps[1][1]); + else + my = parseFloat(ps[2][1]); + } + + w = Math.abs(mx - sx); + h = Math.abs(my - sy); + config.param3D.floorWidth = w; + config.param3D.floorHeight = h; + + bn.center2D = {}; + bn.center2D.x = sx + w / 2; + bn.center2D.y = sy + h / 2; + + } + }, + { + name: "wallPath", + title: edit.WallPath,/*"墙壁"*/ + tip: edit.WallPrompt,/*"画墙状态:鼠标点击画墙等折线路径物体"*/ + icon: "/img/3d/wall.png", + mouseState: "drawWall", + unit: "wallPath", + moldId:"wallpath-default", + cursor: "crosshair", + visible: true, + style:{ + "stroke":"#28a4c9", + "stroke-width":"40", + "stroke-linejoin":"round", + "stroke-linecap": "round", + "pointer-events": "all", + "fill-opacity":"0.5", + "fill":"#b9def0" + }, + update: function(cfg, element){ + var mold = _.find(molds, function(m){ + return m.id == cfg.param3D.moldId; }); + + if (cfg.param2D.angle) element.animate({ + transform:"r" + cfg.param2D.angle }, 500); + + element.animate({"stroke-width": mold.size.width }, 500); + }, + create: function (param) { + //this.linePath = param.path; + return bn.shapeMakeup(bn.paper.path(param.path), this); + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + endState: function (){ + if (_.isUndefined(bn.temp.wallCache)) return; + if (_.isUndefined(bn.temp.wallCache.ps)) return; + bn.temp.wallCache.ps.forEach(function(shp){ + shp.delete(); + }); + bn.addShape("wallPath", bn.temp.wallCache); + + bn.temp.wallCache.line.remove(); + bn.temp.wallCache = undefined; + }, + update2DConfig: function(element, config){ + if (config.param2D.pathArray) + { + var oldPath = bn.paper.path(config.param2D.pathArray.toString()); + // var pathOffset = { + // x: element.getBBox().x - oldPath.getBBox().x, + // y: element.getBBox().y - oldPath.getBBox().y + // }; + + // var newX = parseFloat(element.realPath[0][1]) + pathOffset.x; + // var newY = parseFloat(element.realPath[0][2]) + pathOffset.y; + + var pathNew = oldPath.attrs.path.slice(0); + + pathNew[0][1] = element.getBBox().x; + pathNew[0][2] = element.getBBox().y; + + config.param2D.path = pathNew.toString(); + config.param2D.pathArray = pathNew; + + oldPath.remove(); + } + else if (element.attrs.path){ + config.param2D.path = element.attrs.path.toString(); + config.param2D.pathArray = element.attrs.path; + } + }, + update3DConfig: function(element, config){ + var ps = config.param2D.pathArray; + var lines = bn.util.get3DLinesBySegments(ps, 10); + config.param3D.lines = lines; + } + }, + { + name: "door", + title: edit.Door,/*"门窗"*/ + tip: edit.DoorPrompt,/*"画门窗状态:在墙上鼠标点击的位置放置门窗"*/ + icon: "/img/3d/door.png", + mouseState: "drawWallPart", + unit: "door", + moldId:"door-default", + visible: true, + cursor:"crosshair", + style:{ + "fill": "#FF8080" + }, + props: { + width: 190, + height: 30 + }, + create: function (param) { + var rect; + if (param.type === "Y") { + rect = bn.paper.rect(param.x, param.y, this.props.width, this.props.height); + } + else { + rect = bn.paper.rect(param.x, param.y, this.props.height, this.props.width); + } + return bn.shapeMakeup(rect, this); + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + update: function(cfg, element){ + var mold = _.find(molds, function(m){ + return m.id == cfg.param3D.moldId; }); + + if (cfg.param2D.angle) element.animate({ + transform:"r" + cfg.param2D.angle }, 500); + + if (element.attrs.width > element.attrs.height) + { + element.animate({ + width:mold.size.width, + height:mold.size.depth + }, 500); + } + else + { + element.animate({ + width:mold.size.depth, + height:mold.size.width + }, 500); + } + }, + update2DConfig: function(element, config){ + config.param2D.x = element.getBBox().x; + config.param2D.y = element.getBBox().y; + if (element.attrs.width > element.attrs.height) + config.param2D.type = "Y"; + else + config.param2D.type = "X"; + }, + update3DConfig: function(element, config){ + + var c = bn.util.boxCenter(element); + config.param3D.position = bn.util.Point3D(c); + config.param3D.position.y = parseFloat(config.param3D.aboveGround); + + if (element.attrs.width > element.attrs.height) + config.param3D.direct = "X"; + else + config.param3D.direct = "Z"; + } + }, + { + name: "rack", + title: edit.Rack,/*"机架"*/ + tip: edit.RackPrompt,/*"放置机架等盒状物体"*/ + icon: "/img/3d/rack.jpg", + cursor:"url('/img/3d/object.cur'), default", + mouseState: "drawShape", + visible: true, + unit: "rack", + moldId:"rack-default", + style:{ + "fill": "blue", + "fill-opacity":"0.5", + "stroke": "#437ded", + "stroke-width":10, + "pointer-events":"all" + }, + props: { + width: 70, + depth: 100, + height: 220 + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + create: function (param) { + var rect = bn.paper.rect(param.x, param.y, + this.props.width, this.props.depth); + return bn.shapeMakeup(rect, this); + }, + update: function(cfg, element){ + var mold = _.find(molds, function(m){ + return m.id == cfg.param3D.moldId; }); + + if (cfg.param2D.angle) element.animate({ + transform:"R" + cfg.param2D.angle }, 600); + + element.animate({ + width:mold.size.width, + height:mold.size.depth + }, 500); + }, + update2DConfig: function(element, config){ + //element.animate({transform:""}, 10); + + config.param2D.x = element.attrs.x; + config.param2D.y = element.attrs.y; + + + }, + update3DConfig: function(element, config){ + var c = bn.util.boxCenter(element); + config.param3D.position = bn.util.Point3D(c); + } + }, + //{ + // name: "camera", + // title: "摄像头", + // tip: "放置摄像头在鼠标点击位置", + // icon: "/img/3d/camera.jpg", + // cursor:"url('/img/3d/object.cur'), default", + // mouseState: "drawShape", + // visible: true, + // style:{ + // "stroke": "#ed4f44", + // "stroke-width":"10", + // "fill-opacity":"0.5", + // "fill":"red" + // }, + // props: { + // radius: 30 + // }, + // handleKey : function (key){ + // if (key === "ESC"){ + // bn.selectDefaultSymbol(); + // } + // }, + // create: function (param) { + // return bn.shapeMakeup(bn.paper.circle(param.x, param.y, this.props.radius), this); + // }, + // update2DConfig: function(element, config){ + // config.param2D.x = element.getBBox().x; + // config.param2D.y = element.getBBox().y; + // }, + // update3DConfig: function(element, config){ + // config.param3D = { + // "unit": "camera", + // "angle": 0, + // "high": 300, + // "position":{x:0,y:0,z:0} + // }; + // var c = bn.util.boxCenter(element); + // config.param3D.position = bn.util.Point3D(c); + // config.param3D.position.y = config.param3D.high; + // } + //}, + { + name: "flat", + title: edit.Flat,/*"装饰"*/ + tip: edit.FlatPrompt,/*"放置平面图形到3D画布"*/ + icon: "/img/3d/plant.png", + cursor:"url('/img/3d/object.cur'), default", + mouseState: "drawShape", + unit:"flat", + moldId: "flat-default", + visible: true, + style:{ + "stroke": "#ed4fee", + "stroke-width":"10", + "fill-opacity":"0.5", + "fill":"yellow" + }, + props:{ + "width":"100", + "depth":"100" + }, + handleKey : function (key){ + if (key === "ESC"){ + bn.selectDefaultSymbol(); + } + }, + create: function (param) { + var rect = bn.paper.rect(param.x, param.y, + this.props.width, this.props.width); + return bn.shapeMakeup(rect, this); + }, + update2DConfig: function(element, config){ + config.param2D.x = element.getBBox().x; + config.param2D.y = element.getBBox().y; + config.param2D.width = element.getBBox().width; + }, + update: function(cfg, element){ + var mold = _.find(molds, function(m){ + return m.id == cfg.param3D.moldId; }); + + element.animate({ + width:mold.size.width, + height:mold.size.width + }, 500); + }, + update3DConfig: function(element, config){ + var c = bn.util.boxCenter(element); + config.param3D.position = bn.util.Point3D(c); + config.param3D.position.y = config.param3D.high; + } + } + ]; + + bn.shapeClass = { + newConfig:function(){ + var that = this; + if (!this.config) + { + this.config = {}; + this.config.name = this.element.sym.name; + this.config.title = this.element.sym.title; + + this.config.param2D = {}; + this.config.param2D.symbol = this.element.sym.name; + this.config.param2D.angle = 0; + + this.config.param3D = {}; + this.config.param3D.unit = this.element.sym.unit; + this.config.param3D.moldId = this.element.sym.moldId; + this.config.param3D.angle = 0; + this.config.param3D.aboveGround = 0; + + this.config.param3D.bindings = []; + } + this.config.id = this.element.id; + }, + getBindingTitle:function(){ + if (!this.config.param3D.bindings) return "无"; + var str = "
    "; + this.config.param3D.bindings.forEach(function(item){ + str = str + "
  • " + item.title + "
  • "; + }); + var str = str + "
"; + }, + translate:function(dx,dy){ + if (this.element.matrix.split().rotate) + { + this.element.transform(''); + } + this.element.nt_translate(dx,dy); + this.updateLook(); + }, + updateLook:function(){ + if (this.element.sym) + { + if (this.element.sym.update){ + this.element.sym.update(this.config, this.element); + } + } + }, + updateConfig:function(){ + var that = this; + if (that.element.sym) + { + if (that.element.sym.update2DConfig) + that.element.sym.update2DConfig(that.element,that.config); + if (that.element.sym.update3DConfig) + that.element.sym.update3DConfig(that.element,that.config); + } + }, + delete:function(){ + bn.shapes = _.without(bn.shapes, this); + if (this.element.glowEffect) + this.element.glowEffect.remove(); + this.element.remove(); + bn.proofer.resetUI(); + bn.resetSelection(); + bn.dirty = true; + }, + resetStyle:function(){ + var that = this; + if (that.element.sym.style) + { + for(var a in that.element.sym.style) + { + if (a == "stroke-width" && that.element.sym.name == "wallPath") continue; + that.element.attr(a, that.element.sym.style[a]); + } + } + }, + clone:function(){ + var that = this; + var ns = _.extend({}, that); + + ns.config = angular.fromJson(angular.toJson(that.config)); + ns.element = that.element.clone(); + ns.config.id = that.element.id; + ns.element.sym = _.extend({}, that.element.sym); + ns.selected = that.selected; + + if (that.element.sym.class !== "floorPath") + ns.element.draggable(); + return ns; + } + }; + + bn.util = {}; + bn.util.Point3D = function(point2D){ + var p ={}; + if (bn.center2D) + { + p.x = point2D.x - bn.center2D.x; + p.z = point2D.y - bn.center2D.y; + } + else{ + p.x = point2D.x; + p.z = point2D.y; + } + return p; + }; + + bn.util.boxCenter = function(el){ + var box = el.getBBox(); + + var p = {x: box.x + box.width / 2 , y:box.y + box.height / 2}; + + return p; + }; + + bn.util.get3DLinesBySegments = function (segs, y) { + var lastX, lastY; + + var lines = []; + + var parr = _.reduce(segs, function (ps, segment) { + var point = {}; + + if (segment[0] == "M") { + point.x = parseFloat(segment[1]); + point.y = parseFloat(segment[2]); + lastX = point.x; + lastY = point.y; + } + + if (segment[0] == "H") { + point.x = parseFloat(segment[1]); + point.y = lastY; + lastX = point.x; + } + + if (segment[0] == "V") { + point.y = parseFloat(segment[1]); + point.x = lastX; + lastY = point.y; + } + + var p3 = bn.util.Point3D(point); + p3.y = parseFloat(y); + + var startPoint = ps[ps.length - 1]; + + if (startPoint) + { + var line = { + start: startPoint, + end: p3 + }; + + lines.push(line); + } + + ps.push(p3); + return ps; + }, []); + + return lines; + }; + + bn.proofer = { + showSettings: function(shapes, setting){ + //single: + if (_.isUndefined(shapes)) return; + bn.proofer.shapes = shapes; + bn.proofer.setting = setting; + if (shapes.length == 1){ + var shp = shapes[0]; + if (!shp.config) shp.newConfig(); + setting.title = shp.config.title; + setting.angle = shp.config.param2D.angle; + setting.aboveGround = shp.config.param3D.aboveGround; + setting.molds = this.getMolds(shp.element.sym.name); + setting.mold = _.find(setting.molds, + function(m){ return m.id == shp.config.param3D.moldId; }); + setting.bindings = shp.config.param3D.bindings; + } + + if (shapes.length > 1){ + var allSame = true; var ns = []; + ns.push(shapes[0].element.sym.name); + shapes.forEach(function(shp){ + if (!_.contains(ns, shp.element.sym.name)) + allSame = false; + }); + + if (allSame){ + setting.molds = this.getMolds(shapes[0].element.sym.name); + } + else + setting.molds = undefined; + + setting.title = undefined; + setting.angle = undefined; + setting.aboveGround = undefined; + setting.mold = undefined; + setting.bindings = []; + } + }, + resetUI: function(){ + if (bn.proofer.setting){ + bn.proofer.setting.molds = undefined; + bn.proofer.setting.title = undefined; + bn.proofer.setting.angle = undefined; + bn.proofer.setting.aboveGround = undefined; + bn.proofer.setting.mold = undefined; + bn.proofer.setting.bindings = []; + } + }, + getMolds: function(symbolName){ + var ms = []; + molds.forEach(function(m){ + if (m.name === symbolName) ms.push(m); + }); + return ms; + }, + saveShapes: function(shapes, setting){ + if (shapes.length == 1){ + var shp = shapes[0]; + if (shp.config) + { + shp.config.title = setting.title; + shp.config.param2D.angle = parseFloat(setting.angle); + shp.config.param3D.angle = parseFloat(setting.angle); + shp.config.param3D.moldId = setting.mold.id; + shp.config.param3D.aboveGround = parseFloat(setting.aboveGround); + shp.config.param3D.bindings = setting.bindings; + shp.updateLook(); + } + } + if (shapes.length > 1){ + var allSame = true; var ns = []; + ns.push(shapes[0].element.sym.name); + shapes.forEach(function(shp){ + if (!_.contains(ns, shp.element.sym.name)) + allSame = false; + }); + + shapes.forEach(function(shp){ + if (setting.title) + shp.config.title = setting.title; + if (setting.angle) + { + shp.config.param2D.angle = parseFloat(setting.angle); + shp.config.param3D.angle = parseFloat(setting.angle); + } + if (allSame){ + if (setting.mold){ + shp.config.param3D.moldId = setting.mold.id; + } + } + + if (setting.aboveGround) + shp.config.param3D.aboveGround = parseFloat(setting.aboveGround); + shp.updateLook(); + }); + + } + }, + //rend: function(shapes, setting){ + // + // //when focus lose or save, save config to shape + // this.updateShapes(shapes,setting); + // + // //3 load proof by shape's mold define + // //4 user can use set in template or modify it + // //multiple: + // //1 if shape's symbol is same, they can change style (not binding) + // //2 when focus lose or save, save copied config to each shape + //}, + proofs:[ + { + type:"rack", + load: function(shape, setting){ + + }, + save: function(shape, setting){ + + } + } + ] + }; + + (function(R) { + R.el.draggable = function(move, start, up) { + this._ui = this._ui || {}; + + var that = this; + + this._ui.onMove = R.is(move, 'function') ? + move : function(distanceX, distanceY, x, y, deltaX, deltaY) { + + if (that.sym){ + if (that.sym.name == "floorPath") return; + if (that.sym.name == "wallPath") return; + } + + bn.dirty = true; + bn.update(); + if (that === bn.selectRect) + { + that.translate(deltaX, deltaY); + bn.shapes.forEach(function(shp){ + if (shp.selected) + { + if (shp.element.matrix.split().rotate) + { + that._ui.rotatestr = "r"+shp.element.matrix.split().rotate; + shp.element.transform(''); + } + + shp.element.nt_translate(deltaX,deltaY); + } + }); + } + else{ + if (that.sym){ + if (that.matrix.split().rotate) + { + that._ui.rotatestr = "r"+ that.matrix.split().rotate; + that.transform(''); + } + + that.nt_translate(deltaX,deltaY); + } + } + }; + + this._ui.onStart = R.is(start, 'function') ? start : function(x, y) { + if (bn.mouseState !== "default") return; + //if (that.glowEffect) that.glowEffect.remove(); + $(bn.domId).css( 'cursor', "url('/img/3d/hand-pull-darkblue.cur'), default"); + }; + + function onMove(distanceX, distanceY, x, y) { + if (bn.mouseState !== "default") return; + var cp = bn.canvasPoint(x, y); + var deltaX = cp.x - that._ui.lastX; + var deltaY = cp.y - that._ui.lastY; + that._ui.lastX = cp.x; + that._ui.lastY = cp.y; + //if (that.glowEffect) that.glowEffect.remove(); + that._ui.onMove(distanceX, distanceY, x, y, deltaX, deltaY); + that.paper.safari(); + } + + function onStart(x, y) { + if (bn.mouseState !== "default") return; + if (that.sym) + if (that.sym.name == "floorPath") return; + + var cp = bn.canvasPoint(x, y); + that._ui.lastX = cp.x; + that._ui.lastY = cp.y; + + //if (that.glowEffect) that.glowEffect.remove(); + that._ui.onStart(x, y); + } + + function onUp(e){ + if (that.sym){ + bn.getShapeByElement(that).updateLook(); + } + $(bn.domId).css( 'cursor', "auto" ); + } + + return this.drag(onMove, onStart, onUp); + }; + })(Raphael); + + (function() { + /** define 2 custom attributes translateNT and scaleNT (relative attributes) */ + var initCA = function(shape) { + if(!shape.paper.customAttributes["translateNT"]) { + + shape.paper.customAttributes["translateNT"] = function(dx, dy) { + if (this.type == "circle" || this.type == "ellipse") { + return { + "cx" : this.attr("cx") + dx, + "cy" : this.attr("cy") + dy + }; + } else if (this.type == "rect" || this.type == "text" + || this.type == "image") { + return { + "x" : this.attr("x") + dx, + "y" : this.attr("y") + dy + }; + } else if (this.type == "path") { + var matrix = Raphael.matrix(1, 0, 0, 1, 0, 0); + matrix.translate(dx, dy); + var newPath = Raphael.mapPath(this.attr("path"), matrix); + this.attr({ + "path" : newPath + }); + } + }; + + shape.paper.customAttributes["scaleNT"] = function(dx, dy) { + + if (this.type == "circle") { + return { + "r" : this.attr("r") * Math.max(dx, dy) + }; + } else if (this.type == "ellipse") { + return { + "rx" : this.attr("rx") * dx, + "ry" : this.attr("ry") * dy + }; + } else if (this.type == "rect" || this.type == "image") { + return { + "width" : this.attr("width") * dx, + "height" : this.attr("height") * dy + }; + } else if (this.type == "text") { + var fs = parseInt(this.attr("font-size") + ""); + return { + "font-size" : fs * Math.max(dx, dy) + }; + } else if (this.type == "path") { + var bb = this.getBBox(), cx = bb.x + bb.width / 2, cy = bb.y + + bb.height / 2; + var matrix = Raphael.matrix(1, 0, 0, 1, 0, 0); + matrix.scale(dx, dy, cx, cy); + var newPath = Raphael.mapPath(this.attr("path"), matrix); + return { + "path" : newPath + }; + } + } + + + } + }; + Raphael.el.nt_translate = function(dx, dy) { + initCA(this); + if (this.type == "circle" || this.type == "ellipse") { + this.attr({ + "cx" : this.attr("cx") + dx, + "cy" : this.attr("cy") + dy + }); + } else if (this.type == "rect" || this.type == "text" + || this.type == "image") { + this.attr({ + "x" : this.attr("x") + dx, + "y" : this.attr("y") + dy + }); + } else if (this.type == "path") { + var matrix = Raphael.matrix(1, 0, 0, 1, 0, 0); + matrix.translate(dx, dy); + var newPath = Raphael.mapPath(this.attr("path"), matrix); + this.attr({ + "path" : newPath + }); + } + return this; + }; + Raphael.el.nt_scale = function(dx, dy) { + initCA(this); + if (this.type == "circle") { + this.attr({ + "r" : this.attr("r") * Math.max(dx, dy) + }); + } else if (this.type == "ellipse") { + this.attr({ + "rx" : this.attr("rx") * dx, + "ry" : this.attr("ry") * dy + }); + } else if (this.type == "rect" || this.type == "image") { + this.attr({ + "width" : this.attr("width") * dx, + "height" : this.attr("height") * dy + }); + } else if (this.type == "text") { + var fs = parseInt(this.attr("font-size") + ""); + this.attr({ + "font-size" : fs * Math.max(dx, dy) + }); + } else if (this.type == "path") { + var bb = this.getBBox(), cx = bb.x + bb.width / 2, cy = bb.y + + bb.height / 2; + var matrix = Raphael.matrix(1, 0, 0, 1, 0, 0); + matrix.scale(dx, dy, cx, cy); + var newPath = Raphael.mapPath(this.attr("path"), matrix); + this.attr({ + "path" : newPath + }); + } + return this; + } + + Raphael.st.nt_translate = function(dx, dy) { + initCA(this); + this.forEach(function(shape, idx) { + shape.nt_translate(dx, dy); + return true; + }); + return this; + }; + Raphael.st.nt_scale = function(dx, dy) { + initCA(this); + this.forEach(function(shape, idx) { + shape.nt_scale(dx, dy); + return true; + }); + return this; + }; + })(); + + //add reference service from outside + bn.inject = function(){ + bn.$scope = bn.options.shell.$scope; + bn.$modal = bn.options.shell.$modal; + bn.$q = bn.options.shell.$q; + bn.$srv = bn.options.shell.$srv; + bn.$upload = bn.options.shell.$upload; + + bn.$scope.setting = {}; + bn.$scope.$on('shapeSelected', function(e, shapes) { + bn.proofer.showSettings(shapes, bn.$scope.setting); + if(!bn.$scope.$$phase) { + bn.$scope.$apply(); + } + }); + + bn.$scope.$on('resetShape', function(e, shapes) { + bn.proofer.saveShapes(shapes, bn.$scope.setting); + if(!bn.$scope.$$phase) { + bn.$scope.$apply(); + } + }); + + bn.$scope.change = function(){ + bn.dirty = true; + bn.proofer.saveShapes(bn.proofer.shapes, bn.$scope.setting); + if(!bn.$scope.$$phase) { + bn.$scope.$apply(); + } + }; + }; + + bn.update = function(){ + if(!bn.$scope.$$phase) { + bn.$scope.$apply(); + } + }; + + bn.input = function(msg, inputValue, inputBox){ + var deferred = bn.$q.defer(); + var $modalScope = bn.$scope.$new(true); + $modalScope.message = msg; + $modalScope.inputValue = inputValue; + + $modalScope.ok = function (){ + deferred.resolve({val:this.inputValue, result:true}); + this.$hide(); + }; + + $modalScope.cancel = function (){ + deferred.resolve({val:undefined, result:false}); + this.$hide(); + }; + + if($modalScope.languageJson == undefined) + $modalScope.languageJson = {}; + $modalScope.languageJson.InputBox = inputBox; + + bn.$modal({scope: $modalScope, + templateUrl: '/partials/inputBox.html', + show: true}); + + return deferred.promise; + }; + + bn.option = function(){ + var imgShape, floorShape; + + var $modalScope = bn.$scope.$new(false); + $modalScope.m = {}; + + var getMolds= function(symbolName){ + var ms = []; + molds.forEach(function(m){ + if (m.name === symbolName) ms.push(m); + }); + return ms; + }; + + var load= function(){ + imgShape = _.find(bn.shapes, function(shp){ + return shp.config.name == "floorImage"; + }); + + if (imgShape) + { + $modalScope.m.img = imgShape.config.param2D.src; + } + + floorShape = _.find(bn.shapes, function(shp){ + return shp.config.name == "floorPath"; + }); + if (floorShape){ + $modalScope.floorDisable = false; + + $modalScope.m.mold= _.find(molds, + function(m){ return m.id == floorShape.config.param3D.moldId; }); + } + else + $modalScope.floorDisable = true; + }; + + $modalScope.walltype = false; + $modalScope.molds = getMolds("wallPath"); + load(); + $modalScope.change = function(){ + if ($modalScope.m.mold){ + floorShape.config.param3D.moldId = $modalScope.m.mold.id; + floorShape.updateLook(); + } + + bn.dirty = true; + }; + + $modalScope.$on("fileSelected", + function(event, msg) { + $modalScope.file = msg; + }); + $modalScope.$on("fileSelected2", + function(event, msg) { + $modalScope.file2 = msg; + }); + + $modalScope.upload = function() { + var file = $modalScope.file; + + if (file === undefined) return; + + bn.$upload.uploadFile($modalScope.file).then(function(data) { + if ($modalScope.m.img) bn.$upload.deleteUploadFile($modalScope.m.img); + $modalScope.m.img = data; + bn.setBackground(data); + }); + }; + + $modalScope.ok = function (){ + this.$hide(); + }; + + bn.$modal({scope: $modalScope, + templateUrl: '/partials/pageOption.html', + show: true}); + }; + + bn.setBackground = function(imgurl) { + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + var edit = languageJson.Room3D.Edit; + var img = new Image(); + img.src = imgurl; + img.onload = function() { + var cfg = { + "id": "0", + "name": "floorImage", + "title": edit.FloorImage, + "param2D": { + "symbol": "floorImage", + "src": imgurl, + "height": this.height, + "width": this.width, + "transparent": "0.4" + } + };/*"地板底图"*/ + + var old = bn.findShapeBySymbolName("floorImage"); + if (old) old.delete(); + + var shp = bn.addShape("floorImage", cfg.param2D); + if (shp) { + shp.config = cfg; + shp.updateLook(); + } + } + }; + + bn.setBinding = function(bs){ + if (!bs) return; + var $modalScope = bn.$scope.$new(true); + + var echo= function(){ + bs.forEach(function(item){ + var dev = _.find($modalScope.data.devices, + function(d){ return d.id === item.id; }); + if (dev) $modalScope.data.selecteds.push(dev); + }) + }; + + $modalScope.data = {}; + $modalScope.data.selecteds = []; + bn.$srv.getBinding().then(function(data){ + $modalScope.data.devices = data; + echo(); + }); + + $modalScope.ok = function (){ + bs.length = 0; + $modalScope.data.selecteds.forEach(function(item){ + bs.push(item); + }); + bn.dirty = true; + this.$hide(); + }; + + $modalScope.deleteBind = function (){ + bs.length = 0; + bn.dirty = true; + this.$hide(); + }; + + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + if($modalScope.languageJson == undefined) + $modalScope.languageJson = {Configuration:{TextControl:{}}}; + $modalScope.languageJson.Configuration.TextControl.BindingSettings = languageJson.Configuration.TextControl.BindingSettings; + + bn.$modal({scope: $modalScope, + templateUrl: '/partials/bindingDlg.html', + show: true}); + }; + + bn.confirm = function(msg,confirmBox){ + var deferred = bn.$q.defer(); + var $modalScope = bn.$scope.$new(true); + $modalScope.message = msg; + $modalScope.ok = function (){ + deferred.resolve(true); + this.$hide(); + }; + + $modalScope.cancel = function (){ + deferred.resolve(false); + this.$hide(); + }; + + if($modalScope.languageJson == undefined) $modalScope.languageJson = {}; + $modalScope.languageJson.ConfirmBox = confirmBox; + + bn.$modal({scope: $modalScope, + templateUrl: '/partials/confirmBox.html', + show: true}); + + return deferred.promise; + }; + + bn.info = function(msg,messageBox){ + var $modalScope = bn.$scope.$new(true); + $modalScope.message = msg; + + if($modalScope.languageJson == undefined) $modalScope.languageJson = {}; + $modalScope.languageJson.MessageBox = messageBox; + + bn.$modal({scope: $modalScope, + templateUrl: '/partials/messageBox.html', + show: true}); + }; + + bn.uploadConfig = function(cfg){ + bn.$srv.saveConfig("demo", angular.toJson(cfg)); + }; + + bn.ev = function(event, obj){ + bn.$scope.$emit(event, obj); + }; + + bn.local = function(key){ + var languageJson = angular.fromJson(sessionStorage.getItem('languageJson')); + + var zh ={ + new: "新建", + save: "保存", + clone: "复制并粘贴", + delete: "删除", + page_option: "画面设置", + align_top: "上对齐", + align_bottom: "下对齐", + align_vcenter: "水平居中", + align_left: "左对齐", + align_hcenter: "垂直居中", + align_right: "右对齐", + align_vscale: "垂直等间距", + align_hscale: "水平等间距", + to_back: "移动到最下层", + to_front: "移动到最上层", + move_up: "向上移动物体", + move_down: "向下移动物体", + move_left: "向左移动物体", + move_right: "向右移动物体" + }; + + var lan = undefined; + if(languageJson.Room3D.Head) + lan = languageJson.Room3D.Head; + else + lan = zh; + + + for(var a in lan) + { + if (a == key) return lan[a]; + } + + return null; + }; + + bn.dispose = function(){ + var disposeObject = function(obj){ + for(var b in obj){ + if(typeof(obj[b]) === "function" && obj[b].name === "event"){ + obj[b] = undefined; + } + else if(typeof(obj[b]) === "function" && obj[b].length > 0){ + disposeObject(obj[b]); + } + else if(typeof(obj[b]) === "object" && b === "dispatch"){ + disposeObject(obj[b]); + } + } + }; + + $(window).off(); + $(window).unbind(); + $(document).off(); + $(document).unbind(); + $(bn.domId).off(); + $(bn.domId).unbind(); + + bn.clear(); + bn.paper.clear(); + + var clearPaper = function (paper){ + var paperDom = paper.canvas; + paperDom.parentNode.removeChild(paperDom); + }; + + clearPaper(bn.paper); + disposeObject(bn.paper); + bn.paper = undefined; + + delete bn.options; + bn.$scope.change = undefined; + bn.$scope = undefined; + bn.$modal = undefined; + bn.$q = undefined; + bn.$srv = undefined; + bn.$upload = undefined; + disposeObject(bn); + bn = undefined; + }; + + ///////// create main code here ///////// + bn.options = _.extend(bn.options, options); + bn.inject(); + + bn.init(id); + + bn.newConfig(); + + return bn; + } +}; diff --git a/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.css b/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.css new file mode 100644 index 0000000..4622ddc --- /dev/null +++ b/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.css @@ -0,0 +1,31 @@ +/*! + * Bootstrap v2.3.1-j6 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat, extended by @ArnoldDaniels. + */ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.btn-file{overflow:hidden;position:relative;vertical-align:middle;}.btn-file>input{position:absolute;top:0;right:0;margin:0;opacity:0;filter:alpha(opacity=0);transform:translate(-300px, 0) scale(4);font-size:23px;direction:ltr;cursor:pointer;} +.fileupload{margin-bottom:9px;}.fileupload .uneditable-input{display:inline-block;margin-bottom:0px;vertical-align:middle;cursor:text;} +.fileupload .thumbnail{overflow:hidden;display:inline-block;margin-bottom:5px;vertical-align:middle;text-align:center;}.fileupload .thumbnail>img{display:inline-block;vertical-align:middle;max-height:100%;} +.fileupload .btn{vertical-align:middle;} +.fileupload-exists .fileupload-new,.fileupload-new .fileupload-exists{display:none;} +.fileupload-inline .fileupload-controls{display:inline;} +.fileupload-new .input-append .btn-file{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.thumbnail-borderless .thumbnail{border:none;padding:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.fileupload-new.thumbnail-borderless .thumbnail{border:1px solid #ddd;} +.control-group.warning .fileupload .uneditable-input{color:#a47e3c;border-color:#a47e3c;} +.control-group.warning .fileupload .fileupload-preview{color:#a47e3c;} +.control-group.warning .fileupload .thumbnail{border-color:#a47e3c;} +.control-group.error .fileupload .uneditable-input{color:#b94a48;border-color:#b94a48;} +.control-group.error .fileupload .fileupload-preview{color:#b94a48;} +.control-group.error .fileupload .thumbnail{border-color:#b94a48;} +.control-group.success .fileupload .uneditable-input{color:#468847;border-color:#468847;} +.control-group.success .fileupload .fileupload-preview{color:#468847;} +.control-group.success .fileupload .thumbnail{border-color:#468847;} diff --git a/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.js b/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.js new file mode 100644 index 0000000..34e83ae --- /dev/null +++ b/applications/WebConfigure/web/js/bootstrap-fileupload/bootstrap-fileupload.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @mdo and @fat, extended by @ArnoldDaniels. +* plugins: bootstrap-fileupload.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(e){var t=function(t,n){this.$element=e(t),this.type=this.$element.data("uploadtype")||(this.$element.find(".thumbnail").length>0?"image":"file"),this.$input=this.$element.find(":file");if(this.$input.length===0)return;this.name=this.$input.attr("name")||n.name,this.$hidden=this.$element.find('input[type=hidden][name="'+this.name+'"]'),this.$hidden.length===0&&(this.$hidden=e(''),this.$element.prepend(this.$hidden)),this.$preview=this.$element.find(".fileupload-preview");var r=this.$preview.css("height");this.$preview.css("display")!="inline"&&r!="0px"&&r!="none"&&this.$preview.css("line-height",r),this.original={exists:this.$element.hasClass("fileupload-exists"),preview:this.$preview.html(),hiddenVal:this.$hidden.val()},this.$remove=this.$element.find('[data-dismiss="fileupload"]'),this.$element.find('[data-trigger="fileupload"]').on("click.fileupload",e.proxy(this.trigger,this)),this.listen()};t.prototype={listen:function(){this.$input.on("change.fileupload",e.proxy(this.change,this)),e(this.$input[0].form).on("reset.fileupload",e.proxy(this.reset,this)),this.$remove&&this.$remove.on("click.fileupload",e.proxy(this.clear,this))},change:function(e,t){if(t==="clear")return;var n=e.target.files!==undefined?e.target.files[0]:e.target.value?{name:e.target.value.replace(/^.+\\/,"")}:null;if(!n){this.clear();return}this.$hidden.val(""),this.$hidden.attr("name",""),this.$input.attr("name",this.name);if(this.type==="image"&&this.$preview.length>0&&(typeof n.type!="undefined"?n.type.match("image.*"):n.name.match(/\.(gif|png|jpe?g)$/i))&&typeof FileReader!="undefined"){var r=new FileReader,i=this.$preview,s=this.$element;r.onload=function(e){i.html('"),s.addClass("fileupload-exists").removeClass("fileupload-new")},r.readAsDataURL(n)}else this.$preview.text(n.name),this.$element.addClass("fileupload-exists").removeClass("fileupload-new")},clear:function(e){this.$hidden.val(""),this.$hidden.attr("name",this.name),this.$input.attr("name","");if(navigator.userAgent.match(/msie/i)){var t=this.$input.clone(!0);this.$input.after(t),this.$input.remove(),this.$input=t}else this.$input.val("");this.$preview.html(""),this.$element.addClass("fileupload-new").removeClass("fileupload-exists"),e&&(this.$input.trigger("change",["clear"]),e.preventDefault())},reset:function(e){this.clear(),this.$hidden.val(this.original.hiddenVal),this.$preview.html(this.original.preview),this.original.exists?this.$element.addClass("fileupload-exists").removeClass("fileupload-new"):this.$element.addClass("fileupload-new").removeClass("fileupload-exists")},trigger:function(e){this.$input.trigger("click"),e.preventDefault()}},e.fn.fileupload=function(n){return this.each(function(){var r=e(this),i=r.data("fileupload");i||r.data("fileupload",i=new t(this,n)),typeof n=="string"&&i[n]()})},e.fn.fileupload.Constructor=t,e(document).on("click.fileupload.data-api",'[data-provides="fileupload"]',function(t){var n=e(this);if(n.data("fileupload"))return;n.fileupload(n.data());var r=e(t.target).closest('[data-dismiss="fileupload"],[data-trigger="fileupload"]');r.length>0&&(r.trigger("click.fileupload"),t.preventDefault())})}(window.jQuery) \ No newline at end of file diff --git a/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.fileupload.js b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.fileupload.js new file mode 100644 index 0000000..91b7254 --- /dev/null +++ b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.fileupload.js @@ -0,0 +1,1477 @@ +/* + * jQuery File Upload Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document, location, Blob, FormData */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery.ui.widget' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./vendor/jquery.ui.widget') + ); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as some Safari versions (5?) support XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads. + // window.XMLHttpRequestUpload is not available on IE10, so we check for + // window.ProgressEvent instead to detect XHR2 file upload capability: + $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // Helper function to create drag handlers for dragover/dragenter/dragleave: + function getDragHandler(type) { + var isDragOver = type === 'dragover'; + return function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + type, + $.Event(type, {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + if (isDragOver) { + dataTransfer.dropEffect = 'copy'; + } + } + }; + } + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default undefined. + // Set to a DOM node or jQuery object to enable file pasting: + pasteZone: undefined, + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // The following option limits the number of files uploaded with one + // XHR request to keep the request size under or equal to the defined + // limit in bytes: + limitMultiFileUploadSize: undefined, + // Multipart file uploads add a number of bytes to each uploaded file, + // therefore the following option adds an overhead for each file used + // in the limitMultiFileUploadSize configuration: + limitMultiFileUploadSizeOverhead: 512, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false, + timeout: 0 + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if ($.type(options.formData) === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = $.type(options.paramName) === 'array' ? + options.paramName[0] : options.paramName; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type || 'application/octet-stream'; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append(paramName, options.blob, file.name); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + file, + file.uploadName || file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (args) { + return $.Deferred().resolveWith(that, args).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise([this])).pipe( + function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return getPromise(arguments); + } + ).pipe(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise([this]); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + this.errorThrown = 'abort'; + that._trigger('fail', null, this); + return that._getXHRPromise(false); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.processing = function () { + return !this.jqXHR && this._processQueue && that + ._getDeferredState(this._processQueue) === 'pending'; + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + mcs, + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.pipe(send); + } else { + this._sequence = this._sequence.pipe(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + files = data.files, + filesLength = files.length, + limit = options.limitMultiFileUploads, + limitSize = options.limitMultiFileUploadSize, + overhead = options.limitMultiFileUploadSizeOverhead, + batchSize = 0, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i, + j = 0; + if (!filesLength) { + return false; + } + if (limitSize && files[0].size === undefined) { + limitSize = undefined; + } + if (!(options.singleFileUploads || limit || limitSize) || + !this._isXHRUpload(options)) { + fileSet = [files]; + paramNameSet = [paramName]; + } else if (!(options.singleFileUploads || limitSize) && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i += limit) { + fileSet.push(files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else if (!options.singleFileUploads && limitSize) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i = i + 1) { + batchSize += files[i].size + overhead; + if (i + 1 === filesLength || + ((batchSize + files[i + 1].size + overhead) > limitSize) || + (limit && i + 1 - j >= limit)) { + fileSet.push(files.slice(j, i + 1)); + paramNameSlice = paramName.slice(j, i + 1); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + j = i + 1; + batchSize = 0; + } + } + } else { + paramNameSet = paramName; + } + data.originalFiles = files; + $.each(fileSet || files, function (index, element) { + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (data) { + var input = data.fileInput, + inputClone = input.clone(true), + restoreFocus = input.is(document.activeElement); + // Add a reference for the new cloned file input to the data argument: + data.fileInputClone = inputClone; + $('
').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // If the fileInput had focus before it was detached, + // restore focus to the inputClone. + if (restoreFocus) { + inputClone.focus(); + } + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + successHandler = function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, + readEntries = function () { + dirReader.readEntries(function (results) { + if (!results.length) { + successHandler(entries); + } else { + entries = entries.concat(results); + readEntries(); + } + }, errorHandler); + }, + dirReader, entries = []; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + readEntries(); + } else { + // Return an empy list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: getDragHandler('dragover'), + + _onDragEnter: getDragHandler('dragenter'), + + _onDragLeave: getDragHandler('dragleave'), + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop, + // event.preventDefault() on dragenter is required for IE10+: + dragenter: this._onDragEnter, + // dragleave is not required, but added for completeness: + dragleave: this._onDragLeave + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragenter dragleave dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options, + data = this.element.data(); + // Initialize options set via HTML5 data-attributes: + $.each( + this.element[0].attributes, + function (index, attr) { + var key = attr.name.toLowerCase(), + value; + if (/^data-/.test(key)) { + // Convert hyphen-ated key to camelCase: + key = key.slice(5).replace(/-[a-z]/g, function (str) { + return str.charAt(1).toUpperCase(); + }); + value = data[key]; + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data); + jqXHR.then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.iframe-transport.js b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.iframe-transport.js new file mode 100644 index 0000000..a7d34e0 --- /dev/null +++ b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.iframe-transport.js @@ -0,0 +1,217 @@ +/* + * jQuery Iframe Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
'); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.ui.widget.js b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.ui.widget.js new file mode 100644 index 0000000..e08df3f --- /dev/null +++ b/applications/WebConfigure/web/js/bootstrap-fileupload/jquery.ui.widget.js @@ -0,0 +1,572 @@ +/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28 +* http://jqueryui.com +* Includes: widget.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + + } else if ( typeof exports === "object" ) { + + // Node/CommonJS + factory( require( "jquery" ) ); + + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + + +})); diff --git a/applications/WebConfigure/web/js/camerarecord.js b/applications/WebConfigure/web/js/camerarecord.js new file mode 100644 index 0000000..8f84e62 --- /dev/null +++ b/applications/WebConfigure/web/js/camerarecord.js @@ -0,0 +1,586 @@ +var cameraApp= angular.module('cameraApp',[]); + +cameraApp.controller('cameraCtrl',function($http,$scope,$rootScope,$timeout){ + $scope.channelIDs = 1;//频道号 默认为1 + $scope.optMemory;//当前选择的存储配置 + $scope.videotape;//录像设备 + $(document).ready(function () { + if($scope.languageJson == undefined) + $scope.languageJson = angular.fromJson(sessionStorage.getItem("languageJson")); + var title = $scope.languageJson.Playback.Title; + var voides = JudgeBrowsers(); + initvideoplugin(voides); + inittree(voides); + initVideotape(); + inittimeline(); + initdatetimepicker(); + setSystemStyle(); + }); + function initvideoplugin(voides) { + if(voides != true) return; + + if (-1==WebVideoCtrl.I_CheckPluginInstall()) { + $("#camera-plugin").innerHTML=" 您还未安装过插件,单击该连接下载安装!"; + return; + } + var width=$("#camera-plugin").width(); + var height=$("#camera-plugin").height(); + WebVideoCtrl.I_InitPlugin(width, height, { + iWndowType: 2, + cbSelWnd: function (xmlDoc) { + g_iWndIndex = $(xmlDoc).find("SelectWnd").eq(0).text(); + } + }); + WebVideoCtrl.I_InsertOBJECTPlugin("camera-plugin"); + } + function inittree(voides){ + var dataObj={}; + var dataArray = []; + dataArray.push({ + K: 'videoEquipment.getAllPlayback', + V: 'NA' + }); + dataObj.data = dataArray; + + var result = [];//返回的数据 + $http({ + method: 'POST', + url: '/data', + data: dataObj, + headers: { + 'Content-Type': 'text/plain' + } + }).then(function(response) { + var obj = eval(response.data); + if (angular.isArray(obj) & obj.length > 0 & obj[0].V!="]") { + result = eval(obj[0].V); + $scope.reocrdequipmen = result; + if(voides != true) return; + $scope.optMemory = result[0];//存放第一个存储设备数据 + for(var i=0;i0)?'chrome':'unkonw'; + NV.version = (NV.name=='chrome')?UA.match(/chrome\/([\d.]+)/)[1]:'0'; + var isIe = "ActiveXObject" in window; + if(isIe) return true; + if(NV.name === 'chrome' && parseInt(NV.version) <= 42) return true;//64bit chrome v34 + } + + function setSystemStyle(){ + var style = localStorage.getItem("systemStyle"); + var random = parseInt(10000*Math.random()); + if(style != undefined && style != "Blue") + $("#Camera_StyleLink").attr("href", "../css/"+style+"Style.css?v=" + random); + else + $("#Camera_VersionLink").attr("href","../css/versions2.css?v="+random); + + $(".loginbody").addClass("body_bg"); + }; + + + function initVideotape(){ + var dataObj={}; + var dataArray = []; + dataArray.push({ + K: 'videoEquipment.getAllMonitor', + V: 'NA' + }); + dataObj.data = dataArray; + + var result = [];//返回的数据 + $http({ + method: 'POST', + url: '/data', + data: dataObj, + headers: { + 'Content-Type': 'text/plain' + } + }).then(function(response) { + var obj = eval(response.data); + if (angular.isArray(obj) & obj.length > 0) { + result = angular.fromJson(obj[0].V);//eval(V); + $scope.videotape = result; + } + }); + } + function clickGetDigitalChannelInfo(ip,obj) { + var szIP =ip, iAnalogChannelNum = 0; + if ("" == szIP) return; + // 模拟通道 + WebVideoCtrl.I_GetAnalogChannelInfo(szIP, { + async: false, + success: function (xmlDoc) { + iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length; + } + }); + + var results = new Array(); + // 数字通道 + WebVideoCtrl.I_GetDigitalChannelInfo(szIP, { + async: false, + success: function (xmlDoc) { + var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); + $.each(oChannels, function () { + var values = {}; + values.id = parseInt($(this).find("id").eq(0).text()); + values.ipAddress = $(this).find("ipAddress").eq(0).text(); + values.srcInputPort = $(this).find("srcInputPort").eq(0).text(); + values.managePortNo = $(this).find("managePortNo").eq(0).text(); + values.online = $(this).find("online").eq(0).text(); + values.name= $(this).find("name").eq(0).text(); + values.proxyProtocol = $(this).find("proxyProtocol").eq(0).text(); + results.push(values); + }); + + $scope.reocrdequipmens = results; + $scope.$apply(); + }, + error: function () { + console.log(szIP + " 没有数字通道!"); + } + }); + } + function inittimeline(){ + var tld = "timeline"; + var tg1 = $("#placement").timeline({ + "min_zoom":1, + "max_zoom":50, + "show_centerline":true, + "show_footer":true, + "display_zoom_level":true, + "event_modal":{type:"full"}, + "event_overflow":"scroll", + "data_source":"#mylife" + }); + + /*setTimeout(function(){ + initrecordplay(); + },500);*/ + } + function initrecordplay(){ + $("#mylife >.timeglider-event-spanning").on('click',function(){ + var starttime=$(this).attr("starttime"); + $("#currentdate").text(starttime); + }); + } + + function initdatetimepicker(){ + $('.form_time').datetimepicker({ + + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + minView: 0, + maxView: 1, + forceParse: 0 + });/*language: 'zh-CN',*/ + var date = new Date(); + var starttime = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " 00:00:00"; + $("#starttime").val(starttime); + $("#endtime").val(getNowFormatDate()); + } + function getNowFormatDate() { + var date = new Date(); + var seperator1 = "-"; + var seperator2 = ":"; + var month = date.getMonth() + 1; + var strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + + " " + date.getHours() + seperator2 + date.getMinutes() + + seperator2 + date.getSeconds(); + return currentdate; + } + $scope.setcurrentrecord = function(ip,par,obj){ + $scope.currentip=ip; + $(".tree li").css("color","#fff"); + $("#"+ par.id+"_"+obj.id).css("color","#9E1F24"); + $scope.channelIDs = obj.id; + }; + function searchrecord(iType){ + var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); + var szStartTime=$("#starttime").val(), + szEndTime=$("#endtime").val(), + szIP = $scope.optMemory.ip,//"192.168.2.144", + iChannelID = $scope.channelIDs, + bZeroChannel =false; + + if ("" == szIP) return; + if (bZeroChannel) return; + // 首次搜索 + if (0 == iType) iSearchTimes = 0; + WebVideoCtrl.I_RecordSearch(szIP, iChannelID, szStartTime, szEndTime, { + iSearchPos: iSearchTimes * 40, + success: function (xmlDoc) { + if("MORE" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + for(var i = 0, nLen = $(xmlDoc).find("searchMatchItem").length; i < nLen; i++) { + var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); + if(szPlaybackURI.indexOf("name=") < 0) break; + var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); + var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); + szStartTime = szStartTime.replace("T", " ").replace("Z", ""); + szEndTime = szEndTime.replace("T", " ").replace("Z", ""); + if(isstart) + { + videostarttime = szStartTime; + isstart = false; + } + recorddt += ""+szStartTime+""+szEndTime+"ho10"; + } + iSearchTimes++; + searchrecord(1);// 继续搜索 + } else if ("OK" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + var iLength = $(xmlDoc).find("searchMatchItem").length; + for(var i = 0; i < iLength; i++) { + var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); + if(szPlaybackURI.indexOf("name=") < 0) break; + var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); + var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); + szStartTime = szStartTime.replace("T", " ").replace("Z", ""); + szEndTime = szEndTime.replace("T", " ").replace("Z", ""); + recorddt += ""+szStartTime+""+szEndTime+"ho10"; + } + + var result = getinlinedata.replace("@data",recorddt); + result = result.replace("@videostarttime",videostarttime); + + while($("#mylife").html()!==undefined){ + $("#mylife").remove(); + } + + $("#timelinedata").children().remove(); + $("#timelinedata").html(result); + inittimeline(); + } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + setTimeout(function() { + //alert(szIP + " 没有录像文件!"); + }, 50); + } + }, + error: function () { + //alert(szIP + " 搜索录像文件失败!"); + } + }); + } + + function loginvideo(ip,port,username,pwd,channelno) { + WebVideoCtrl.I_Logout(ip); + var iRet = WebVideoCtrl.I_Login(ip, 1, port, username, pwd, { + success: function (xmlDoc) { + recorddt=""; + searchrecord(0); + } + }); + } + $scope.fullscreen = function(){ + if(-1==WebVideoCtrl.I_CheckPluginInstall()) return; + WebVideoCtrl.I_FullScreen(true) + }; + + $scope.getequipmentchannel = function(ip,port,username,pwd,channelno,obj) { + WebVideoCtrl.I_Logout(ip); + var iRet = WebVideoCtrl.I_Login(ip, 1, port, username, pwd, { + success: function (xmlDoc) { + clickGetDigitalChannelInfo(ip,obj); + } + }); + }; + $scope.optMemoryEquipment = function(prar){ + $scope.optMemory = prar; + }; + $scope.changeWndNum = function(iType) { + if (-1==WebVideoCtrl.I_CheckPluginInstall()) return; + iType = parseInt(iType, 10); + WebVideoCtrl.I_ChangeWndNum(iType); + }; + var iSearchTimes = 0; + var recorddt,getinlinedata,videostarttime,isstart=true; + $scope.search = function(iType){ + videostarttime = getNowFormatDate(); + isstart=true; + getinlinedata = " "; + getinlinedata +="@data"; + loginvideo($scope.optMemory.ip,$scope.optMemory.port,$scope.optMemory.username,$scope.optMemory.pwd,iType); + }; + + $scope.getUrlParameter = function(name){ + var url = location.href; + var parameters = url.substr(url.indexOf("?")+1); + var paramItems = parameters.split("&"); + var paramName; + var paramValue = ""; + for(i in paramItems) + { + paramName = paramItems[i].split("=")[0]; + paramValue = paramItems[i].split("=")[1]; + if(paramName.toLowerCase() == name.toLowerCase()) + { + return(paramValue); + } + } + return ""; + }; + + //将时间转为yyyy-MM-dd HH:mm:ss格式字符串 + function getFormatDate(date) { + date = new Date(date.getTime() - 1000*60*5 - 1000*26); + var seperator1 = "-"; + var seperator2 = ":"; + var month = date.getMonth() + 1; + var strDate = date.getDate(); + if (month >= 1 && month <= 9) { + month = "0" + month; + } + if (strDate >= 0 && strDate <= 9) { + strDate = "0" + strDate; + } + var hour = date.getHours(); + var minutes = date.getMinutes(); + var seconds = date.getSeconds(); + if (hour < 10) { + hour = "0" + hour; + } + if (minutes < 10) { + minutes = "0" + minutes; + } + if (seconds < 10) { + seconds = "0" + seconds; + } + + var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + + " " + hour + seperator2 + minutes + + seperator2 + seconds; + return currentdate; + } + + function getCurrentDate(){ + var curr = $("#currentdate").text(); + var str = curr; + var index1 = curr.indexOf(":")-2; + var index2 = curr.indexOf(":"); + var e = curr.substring(index1,index2); + var str1 = curr.substring(0,index1); + var str2 = curr.substring(index2); + if(e == "24" || e == "00"){ + str = str1+"12"+str2; + }else if(e == "12"){ + str = str1+"00"+str2; + } + return str; + } + //开始播放 + $scope.clickStartPlay=function(){ + var myTbody = document.getElementById("timelinedata").firstElementChild.lastElementChild; + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szDeviceIdentify = $scope.optMemory.ip, + iRtspPort = 554, + iStreamType = 1,//码流;1为主码流;2为子码流;3为第三码流;4为转码流 + bZeroChannel = false, + iChannelID = $scope.channelIDs,//1 + szStartTime = myTbody.rows[1].cells[0].innerHTML, + szEndTime = myTbody.rows[myTbody.rows.length-1].cells[1].innerHTML, + bChecked = false, + szPlayTime = getCurrentDate(); + //将时间转为yyyy-MM-dd HH:mm:ss格式 + szPlayTime = getFormatDate(new Date(Date.parse(szPlayTime.replace(/-/g, "/")))); + + //实现选择时间段回放 + var dateStart = new Date(Date.parse(szStartTime.replace(/-/g, "/"))); + var datePlay = new Date(Date.parse(szPlayTime.replace(/-/g, "/"))); + var dateEnd = new Date(Date.parse(szEndTime.replace(/-/g, "/"))); + if(datePlay>dateStart && datePlay").append(a).html();try{return 3===a[0].nodeType?G(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(b,a){return"<"+G(a)})}catch(d){return G(c)}}function Jb(a){try{return decodeURIComponent(a)}catch(b){}}function Kb(a){var b={},c,d;q((a||"").split("&"),function(a){a&&(c=a.split("="),d=Jb(c[0]),A(d)&&(a=A(c[1])? +Jb(c[1]):!0,b[d]?I(b[d])?b[d].push(a):b[d]=[b[d],a]:b[d]=a))});return b}function Lb(a){var b=[];q(a,function(a,d){I(a)?q(a,function(a){b.push(ta(d,!0)+(!0===a?"":"="+ta(a,!0)))}):b.push(ta(d,!0)+(!0===a?"":"="+ta(a,!0)))});return b.length?b.join("&"):""}function ob(a){return ta(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ta(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")} +function Hc(a,b){function c(a){a&&d.push(a)}var d=[a],e,g,k=["ng:app","ng-app","x-ng-app","data-ng-app"],f=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;q(k,function(b){k[b]=!0;c(N.getElementById(b));b=b.replace(":","\\:");a.querySelectorAll&&(q(a.querySelectorAll("."+b),c),q(a.querySelectorAll("."+b+"\\:"),c),q(a.querySelectorAll("["+b+"]"),c))});q(d,function(b){if(!e){var a=f.exec(" "+b.className+" ");a?(e=b,g=(a[2]||"").replace(/\s+/g,",")):q(b.attributes,function(a){!e&&k[a.name]&&(e=b,g=a.value)})}}); +e&&b(e,g?[g]:[])}function Mb(a,b){var c=function(){a=C(a);if(a.injector()){var c=a[0]===N?"document":ga(a);throw Xa("btstrpd",c);}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);b.unshift("ng");c=Nb(b);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(b,a,c,d,e){b.$apply(function(){a.data("$injector",d);c(a)(b)});e.enabled(!0)}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(T&&!d.test(T.name))return c();T.name=T.name.replace(d,"");Ha.resumeBootstrap= +function(a){q(a,function(a){b.push(a)});c()}}function pb(a,b){b=b||"_";return a.replace(Ic,function(a,d){return(d?b:"")+a.toLowerCase()})}function qb(a,b,c){if(!a)throw Xa("areq",b||"?",c||"required");return a}function Ia(a,b,c){c&&I(a)&&(a=a[a.length-1]);qb(H(a),b,"not a function, got "+(a&&"object"==typeof a?a.constructor.name||"Object":typeof a));return a}function rb(a,b,c){if(!b)return a;b=b.split(".");for(var d,e=a,g=b.length,k=0;k 
"+a;b.removeChild(b.firstChild);ub(this,b.childNodes);C(N.createDocumentFragment()).append(this)}else ub(this, +a)}function vb(a){return a.cloneNode(!0)}function Ka(a){Ob(a);var b=0;for(a=a.childNodes||[];b=R?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)}; +c.elem=a;return c}function za(a){var b=typeof a,c;"object"==b&&null!==a?"function"==typeof(c=a.$$hashKey)?c=a.$$hashKey():c===v&&(c=a.$$hashKey=Ua()):c=a;return b+":"+c}function Ma(a){q(a,this.put,this)}function Wb(a){var b,c;"function"==typeof a?(b=a.$inject)||(b=[],c=a.toString().replace(Oc,""),c=c.match(Pc),q(c[1].split(Qc),function(a){a.replace(Rc,function(a,c,d){b.push(d)})}),a.$inject=b):I(a)?(c=a.length-1,Ia(a[c],"fn"),b=a.slice(0,c)):Ia(a,"fn",!0);return b}function Nb(a){function b(a){return function(b, +c){if(Q(b))q(b,Gb(a));else return a(b,c)}}function c(a,b){if(H(b)||I(b))b=p.instantiate(b);if(!b.$get)throw Na("pget",a);return m[a+f]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];q(a,function(a){if(!h.get(a)){h.put(a,!0);try{if(z(a)){var c=Oa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);for(var d=c._invokeQueue,c=0,f=d.length;c 4096 bytes)!"));else{if(l.cookie!==ia)for(ia=l.cookie,d=ia.split("; "),V={},f=0;fh&&this.remove(n.key),b},get:function(a){var b=m[a];if(b)return e(b),l[a]},remove:function(a){var b=m[a];b&&(b==p&&(p=b.p),b==n&&(n=b.n),g(b.n,b.p),delete m[a],delete l[a],k--)},removeAll:function(){l={};k=0;m={};p=n=null},destroy:function(){m=f=l=null;delete b[a]},info:function(){return F({},f,{size:k})}}}var b={};a.info=function(){var a={};q(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}} +function Xc(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Xb(a){var b={},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g=/^\s*(https?|ftp|mailto|file):/,k=/^\s*(https?|ftp|file):|data:image\//,f=/^(on[a-z]*|formaction)$/;this.directive=function h(d,e){z(d)?(qb(e,"directiveFactory"),b.hasOwnProperty(d)||(b[d]=[],a.factory(d+c,["$injector","$exceptionHandler",function(a,c){var e=[];q(b[d],function(b){try{var f=a.invoke(b);H(f)? +f={compile:W(f)}:!f.compile&&f.link&&(f.compile=W(f.link));f.priority=f.priority||0;f.name=f.name||d;f.require=f.require||f.controller&&f.name;f.restrict=f.restrict||"A";e.push(f)}catch(g){c(g)}});return e}])),b[d].push(e)):q(d,Gb(h));return this};this.aHrefSanitizationWhitelist=function(a){return A(a)?(g=a,this):g};this.imgSrcSanitizationWhitelist=function(a){return A(a)?(k=a,this):k};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope", +"$document","$sce","$$urlUtils","$animate",function(a,m,p,n,s,r,y,u,da,x,B,t){function P(a,b,c,d){a instanceof C||(a=C(a));q(a,function(b,c){3==b.nodeType&&b.nodeValue.match(/\S+/)&&(a[c]=C(b).wrap("").parent()[0])});var e=V(a,b,a,c,d);return function(b,c){qb(b,"scope");for(var d=c?Pa.clone.call(a):a,f=0,g=d.length;ft.priority)break;if(L=t.scope)E("isolated scope",D,t,B),Q(L)&&(na(B,"ng-isolate-scope"),D=t),na(B,"ng-scope"),u=u||t;x=t.name;if(L=t.controller)oa= +oa||{},E("'"+x+"' controller",oa[x],t,B),oa[x]=t;if(L=t.transclude)E("transclusion",da,t,B),da=t,n=t.priority,"element"==L?(L=X(b,Qa,A),B=c.$$element=C(N.createComment(" "+x+": "+c[x]+" ")),b=B[0],bb(e,C(sa.call(L,0)),b),pa=P(L,d,n,f&&f.name)):(L=C(vb(b)).contents(),B.html(""),pa=P(L,d));if(t.template)if(E("template",Y,t,B),Y=t,L=H(t.template)?t.template(B,c):t.template,L=Yb(L),t.replace){f=t;L=C("
"+Z(L)+"
").contents();b=L[0];if(1!=L.length||1!==b.nodeType)throw ea("tplrt",x,"");bb(e,B, +b);w={$attr:{}};a=a.concat(ia(b,a.splice(K+1,a.length-(K+1)),w));ua(c,w);w=a.length}else B.html(L);if(t.templateUrl)E("template",Y,t,B),Y=t,t.replace&&(f=t),k=Uc(a.splice(K,a.length-K),k,B,c,e,pa),w=a.length;else if(t.compile)try{ja=t.compile(B,c,pa),H(ja)?g(null,ja,Qa,A):ja&&g(ja.pre,ja.post,Qa,A)}catch(F){p(F,ga(B))}t.terminal&&(k.terminal=!0,n=Math.max(n,t.priority))}k.scope=u&&u.scope;k.transclude=da&&pa;return k}function D(d,e,f,g,m,k,n){if(e===m)return null;m=null;if(b.hasOwnProperty(e)){var s; +e=a.get(e+c);for(var r=0,E=e.length;rs.priority)&&-1!=s.restrict.indexOf(f)&&(k&&(s=Cc(s,{$$start:k,$$end:n})),d.push(s),m=s)}catch(t){p(t)}}return m}function ua(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;q(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});q(b,function(b,f){"class"==f?(na(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?e.attr("style",e.attr("style")+";"+b):"$"==f.charAt(0)||a.hasOwnProperty(f)|| +(a[f]=b,d[f]=c[f])})}function Uc(a,b,c,d,e,f){var g=[],m,h,k=c[0],p=a.shift(),r=F({},p,{controller:null,templateUrl:null,transclude:null,scope:null,replace:null}),E=H(p.templateUrl)?p.templateUrl(c,d):p.templateUrl;c.html("");n.get(x.getTrustedResourceUrl(E),{cache:s}).success(function(n){var s;n=Yb(n);if(p.replace){n=C("
"+Z(n)+"
").contents();s=n[0];if(1!=n.length||1!==s.nodeType)throw ea("tplrt",p.name,E);n={$attr:{}};bb(e,c,s);ia(s,a,n);ua(d,n)}else s=k,c.html(n);a.unshift(r);m=ja(a, +s,d,f,c,p);q(e,function(a,b){a==s&&(e[b]=c[0])});for(h=V(c[0].childNodes,f);g.length;){n=g.shift();var t=g.shift(),u=g.shift(),y=g.shift(),B=c[0];t!==k&&(B=vb(s),bb(u,C(t),B));m(b(h,n,B,e,y),n,B,e,y)}g=null}).error(function(a,b,c,d){throw ea("tpload",d.url);});return function(a,c,d,e,f){g?(g.push(c),g.push(d),g.push(e),g.push(f)):m(function(){b(h,c,d,e,f)},c,d,e,f)}}function K(a,b){return b.priority-a.priority}function E(a,b,c,d){if(b)throw ea("multidir",b.name,c.name,a,ga(d));}function Y(a,b){var c= +m(b,!0);c&&a.push({priority:0,compile:W(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);na(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function L(a,b){if("xlinkHref"==b||"IMG"!=Aa(a)&&("src"==b||"ngSrc"==b))return x.RESOURCE_URL}function oa(a,b,c,d){var e=m(c,!0);if(e){if("multiple"===d&&"SELECT"===Aa(a))throw ea("selmulti",ga(a));b.push({priority:100,compile:W(function(b,c,g){c=g.$$observers||(g.$$observers={});if(f.test(d))throw ea("nodomevents"); +if(e=m(g[d],!0,L(a,d)))g[d]=e(b),(c[d]||(c[d]=[])).$$inter=!0,(g.$$observers&&g.$$observers[d].$$scope||b).$watch(e,function(a){g.$set(d,a)})})})}}function bb(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,m;if(a)for(g=0,m=a.length;ga.status?b:p.reject(b)}var d={transformRequest:e.transformRequest,transformResponse:e.transformResponse},f=function(a){function b(a){var c;q(a,function(b,d){H(b)&&(c=b(),null!=c?a[d]=c:delete a[d])})}var c=e.headers,d=F({},a.headers),f,g,c=F({},c.common,c[G(a.method)]);b(c);b(d);a:for(f in c){a=G(f);for(g in d)if(G(g)===a)continue a;d[f]=c[f]}return d}(a);F(d,a);d.headers=f;d.method=Ba(d.method);(a=s.isSameOrigin(d.url)?b.cookies()[d.xsrfCookieName||e.xsrfCookieName]:v)&& +(f[d.xsrfHeaderName||e.xsrfHeaderName]=a);var g=[function(a){f=a.headers;var b=ac(a.data,$b(f),a.transformRequest);J(a.data)&&q(f,function(a,b){"content-type"===G(b)&&delete f[b]});J(a.withCredentials)&&!J(e.withCredentials)&&(a.withCredentials=e.withCredentials);return y(a,b,f).then(c,c)},v],m=p.when(d);for(q(x,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var h=g.shift(),m=m.then(a, +h)}m.success=function(a){m.then(function(b){a(b.data,b.status,b.headers,d)});return m};m.error=function(a){m.then(null,function(b){a(b.data,b.status,b.headers,d)});return m};return m}function y(b,c,g){function h(a,b,c){y&&(200<=a&&300>a?y.put(x,[a,b,Zb(c)]):y.remove(x));l(b,a,c);d.$$phase||d.$apply()}function l(a,c,d){c=Math.max(c,0);(200<=c&&300>c?k.resolve:k.reject)({data:a,status:c,headers:$b(d),config:b})}function n(){var a=Wa(r.pendingRequests,b);-1!==a&&r.pendingRequests.splice(a,1)}var k=p.defer(), +s=k.promise,y,q,x=u(b.url,b.params);r.pendingRequests.push(b);s.then(n,n);(b.cache||e.cache)&&(!1!==b.cache&&"GET"==b.method)&&(y=Q(b.cache)?b.cache:Q(e.cache)?e.cache:da);if(y)if(q=y.get(x)){if(q.then)return q.then(n,n),q;I(q)?l(q[1],q[0],aa(q[2])):l(q,200,{})}else y.put(x,s);q||a(b.method,x,c,h,g,b.timeout,b.withCredentials,b.responseType);return s}function u(a,b){if(!b)return a;var c=[];Bc(b,function(a,b){null!=a&&a!=v&&(I(a)||(a=[a]),q(a,function(a){Q(a)&&(a=ma(a));c.push(ta(b)+"="+ta(a))}))}); +return a+(-1==a.indexOf("?")?"?":"&")+c.join("&")}var da=c("$http"),x=[];q(g,function(a){x.unshift(z(a)?n.get(a):n.invoke(a))});q(k,function(a,b){var c=z(a)?n.get(a):n.invoke(a);x.splice(b,0,{response:function(a){return c(p.when(a))},responseError:function(a){return c(p.reject(a))}})});r.pendingRequests=[];(function(a){q(arguments,function(a){r[a]=function(b,c){return r(F(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){q(arguments,function(a){r[a]=function(b,c,d){return r(F(d|| +{},{method:a,url:b,data:c}))}})})("post","put");r.defaults=e;return r}]}function dd(){this.$get=["$browser","$window","$document",function(a,b,c){return ed(a,fd,a.defer,b.angular.callbacks,c[0],b.location.protocol.replace(":",""))}]}function ed(a,b,c,d,e,g){function k(a,b){var c=e.createElement("script"),d=function(){e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;R?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=d;e.body.appendChild(c); +return d}return function(e,l,h,m,p,n,s,r){function y(){v=-1;B&&B();t&&t.abort()}function u(b,d,e,f){var m=(l.match(bc)||["",g])[1];P&&c.cancel(P);B=t=null;d="file"==m?e?200:404:d;b(1223==d?204:d,e,f);a.$$completeOutstandingRequest(w)}var v;a.$$incOutstandingRequestCount();l=l||a.url();if("jsonp"==G(e)){var x="_"+(d.counter++).toString(36);d[x]=function(a){d[x].data=a};var B=k(l.replace("JSON_CALLBACK","angular.callbacks."+x),function(){d[x].data?u(m,200,d[x].data):u(m,v||-2);delete d[x]})}else{var t= +new b;t.open(e,l,!0);q(p,function(a,b){a&&t.setRequestHeader(b,a)});t.onreadystatechange=function(){if(4==t.readyState){var a=t.getAllResponseHeaders(),b="Cache-Control Content-Language Content-Type Expires Last-Modified Pragma".split(" ");a||(a="",q(b,function(b){var c=t.getResponseHeader(b);c&&(a+=b+": "+c+"\n")}));u(m,v||t.status,t.responseType?t.response:t.responseText,a)}};s&&(t.withCredentials=!0);r&&(t.responseType=r);t.send(h||"")}if(0=a}function g(a){return" "==a||"\r"==a||"\t"==a||"\n"==a||"\v"==a||"\u00a0"==a}function k(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"==a||"$"==a}function f(a){return"-"==a||"+"==a||e(a)}function l(b,c,d){d=d||r;c=A(c)?"s "+c+"-"+r+" ["+a.substring(c,d)+"]":" "+d;throw Sa("lexerr",b,c,a);}function h(){for(var b= +"",c=r;r","<=",">="))a=p(a,b.fn,x());return a}function B(){for(var a=t(),b;b=f("*","/","%");)a=p(a,b.fn,t());return a}function t(){var a;return f("+")?P():(a=f("-"))?p(ia,a.fn,t()):(a=f("!"))?h(a.fn,t()):P()}function P(){var a; +if(f("("))a=K(),l(")");else if(f("["))a=C();else if(f("{"))a=A();else{var b=f();(a=b.fn)||e("not a primary expression",b);b.json&&(a.constant=a.literal=!0)}for(var c;b=f("(","[",".");)"("===b.text?(a=D(a,c),c=null):"["===b.text?(c=a,a=I(a)):"."===b.text?(c=a,a=ua(a)):e("IMPOSSIBLE");return a}function C(){var a=[],b=!0;if("]"!=g().text){do{var c=z();a.push(c);c.constant||(b=!1)}while(f(","))}l("]");return F(function(b,c){for(var d=[],e=0;ee?mc(d[0],d[1],d[2],d[3],d[4],c):function(a,b){var g=0,h;do h=mc(d[g++],d[g++],d[g++],d[g++],d[g++],c)(a, +b),b=v,a=h;while(ga)for(b in g++,d)d.hasOwnProperty(b)&&!f.hasOwnProperty(b)&&(q--,delete d[b])}else d!==f&&(d=f,g++);return g},function(){b(f,d,c)})},$digest:function(){var c,e,f,g,r=this.$$asyncQueue,q,u,v=a,x,B=[],t,w;k("$digest");do{u=!1;for(x=this;r.length;)try{x.$eval(r.shift())}catch(C){d(C)}do{if(g=x.$$watchers)for(q=g.length;q--;)try{(c=g[q])&& +((e=c.get(x))!==(f=c.last)&&!(c.eq?xa(e,f):"number"==typeof e&&"number"==typeof f&&isNaN(e)&&isNaN(f)))&&(u=!0,c.last=c.eq?aa(e):e,c.fn(e,f===l?e:f,x),5>v&&(t=4-v,B[t]||(B[t]=[]),w=H(c.exp)?"fn: "+(c.exp.name||c.exp.toString()):c.exp,w+="; newVal: "+ma(e)+"; oldVal: "+ma(f),B[t].push(w)))}catch(z){d(z)}if(!(g=x.$$childHead||x!==this&&x.$$nextSibling))for(;x!==this&&!(g=x.$$nextSibling);)x=x.$parent}while(x=g);if(u&&!v--)throw h.$$phase=null,b("infdig",a,ma(B));}while(u||r.length);h.$$phase=null}, +$destroy:function(){if(h!=this&&!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null}},$eval:function(a,b){return e(a)(this, +b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return k("$apply"),this.$eval(a)}catch(b){d(b)}finally{h.$$phase=null;try{h.$digest()}catch(c){throw d(c),c;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);return function(){c[Wa(c,b)]=null}},$emit:function(a,b){var c=[],e,f=this,g=!1,h={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=[h].concat(sa.call(arguments, +1)),l,q;do{e=f.$$listeners[a]||c;h.currentScope=f;l=0;for(q=e.length;lc))throw Ca("iequirks");var e=aa(ca);e.isEnabled=function(){return a};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;a||(e.trustAs=e.getTrusted=function(a,b){return b},e.valueOf= +wa);e.parseAs=function(a,c){var d=b(c);return d.literal&&d.constant?d:function(b,c){return e.getTrusted(a,d(b,c))}};var g=e.parseAs,k=e.getTrusted,f=e.trustAs;Ha.forEach(ca,function(a,b){var c=G(b);e[Ja("parse_as_"+c)]=function(b){return g(a,b)};e[Ja("get_trusted_"+c)]=function(b){return k(a,b)};e[Ja("trust_as_"+c)]=function(b){return f(a,b)}});return e}]}function ud(){this.$get=["$window","$document",function(a,b){var c={},d=U((/android (\d+)/.exec(G((a.navigator||{}).userAgent))||[])[1]),e=b[0]|| +{},g,k=/^(Moz|webkit|O|ms)(?=[A-Z])/,f=e.body&&e.body.style,l=!1,h=!1;if(f){for(var m in f)if(l=k.exec(m)){g=l[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}l=!!("transition"in f||g+"Transition"in f);h=!!("animation"in f||g+"Animation"in f);!d||l&&h||(l=z(e.body.style.webkitTransition),h=z(e.body.style.webkitAnimation))}return{history:!(!a.history||!a.history.pushState||4>d),hashchange:"onhashchange"in a&&(!e.documentMode||7a;a=Math.abs(a);var k=a+"",f="",l=[],h=!1;if(-1!==k.indexOf("e")){var m=k.match(/([\d\.]+)e(-?)(\d+)/);m&&"-"==m[2]&&m[3]>e+1?k="0":(f=k,h=!0)}if(h)0a)&&(f=a.toFixed(e));else{k=(k.split(tc)[1]||"").length;J(e)&&(e=Math.min(Math.max(b.minFrac,k),b.maxFrac));k=Math.pow(10,e);a=Math.round(a*k)/k;a=(""+a).split(tc);k=a[0];a=a[1]|| +"";var h=0,m=b.lgSize,p=b.gSize;if(k.length>=m+p)for(var h=k.length-m,n=0;na&&(d="-",a=-a);for(a=""+a;a.length-c)e+=c;0===e&&-12==c&&(e=12);return Cb(e,b,d)}}function eb(a,b){return function(c,d){var e=c["get"+a](),g=Ba(b?"SHORT"+a:a);return d[g][e]}}function pc(a){function b(a){var b;if(b=a.match(c)){a=new Date(0);var g=0,k=0,f=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(g=U(b[9]+b[10]),k=U(b[9]+b[11]));f.call(a,U(b[1]),U(b[2])-1,U(b[3]));g=U(b[4]||0)-g;k=U(b[5]||0)-k;f=U(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,g,k,f,b)}return a} +var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var g="",k=[],f,l;e=e||"mediumDate";e=a.DATETIME_FORMATS[e]||e;z(c)&&(c=Dd.test(c)?U(c):b(c));lb(c)&&(c=new Date(c));if(!Ea(c))return c;for(;e;)(l=Ed.exec(e))?(k=k.concat(sa.call(l,1)),e=k.pop()):(k.push(e),e=null);q(k,function(b){f=Fd[b];g+=f?f(c,a.DATETIME_FORMATS):b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function zd(){return function(a){return ma(a,!0)}} +function Ad(){return function(a,b){if(!I(a)&&!z(a))return a;b=U(b);if(z(a))return b?0<=b?a.slice(0,b):a.slice(b,a.length):"";var c=[],d,e;b>a.length?b=a.length:b<-a.length&&(b=-a.length);0a||37<=a&&40>=a)||l()});b.on("change",k);if(e.hasEvent("paste"))b.on("paste cut",l)}d.$render=function(){b.val($(d.$viewValue)?"":d.$viewValue)};var h=c.ngPattern,m=function(a,b){if($(b)||a.test(b))return d.$setValidity("pattern",!0),b;d.$setValidity("pattern", +!1);return v};h&&((e=h.match(/^\/(.*)\/([gim]*)$/))?(h=RegExp(e[1],e[2]),e=function(a){return m(h,a)}):e=function(c){var d=a.$eval(h);if(!d||!d.test)throw M("ngPattern")("noregexp",h,d,ga(b));return m(d,c)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var p=U(c.ngMinlength);e=function(a){if(!$(a)&&a.lengthn)return d.$setValidity("maxlength",!1),v;d.$setValidity("maxlength",!0);return a};d.$parsers.push(e);d.$formatters.push(e)}}function Db(a,b){a="ngClass"+a;return function(){return{restrict:"AC",link:function(c,d,e){function g(a){if(!0===b||c.$index%2===b)f&&!xa(a,f)&&e.$removeClass(k(f)),e.$addClass(k(a));f=aa(a)}function k(a){if(I(a))return a.join(" ");if(Q(a)){var b=[];q(a,function(a,c){a&&b.push(c)});return b.join(" ")}return a}var f=v;c.$watch(e[a],g,!0);e.$observe("class",function(b){g(c.$eval(e[a]))}); +"ngClass"!==a&&c.$watch("$index",function(d,f){var g=d&1;g!==f&1&&(g===b?(g=c.$eval(e[a]),e.$addClass(k(g))):(g=c.$eval(e[a]),e.$removeClass(k(g))))})}}}}var G=function(a){return z(a)?a.toLowerCase():a},Ba=function(a){return z(a)?a.toUpperCase():a},R=U((/msie (\d+)/.exec(G(navigator.userAgent))||[])[1]),C,ya,sa=[].slice,Gd=[].push,Va=Object.prototype.toString,Xa=M("ng"),Ha=T.angular||(T.angular={}),Oa,Aa,fa=["0","0","0"];w.$inject=[];wa.$inject=[];var Z=function(){return String.prototype.trim?function(a){return z(a)? +a.trim():a}:function(a){return z(a)?a.replace(/^\s*/,"").replace(/\s*$/,""):a}}();Aa=9>R?function(a){a=a.nodeName?a:a[0];return a.scopeName&&"HTML"!=a.scopeName?Ba(a.scopeName+":"+a.nodeName):a.nodeName}:function(a){return a.nodeName?a.nodeName:a[0].nodeName};var Ic=/[A-Z]/g,Hd={full:"1.2.0rc1",major:1,minor:2,dot:0,codeName:"spooky-giraffe"},La=O.cache={},Ya=O.expando="ng-"+(new Date).getTime(),Mc=1,vc=T.document.addEventListener?function(a,b,c){a.addEventListener(b,c,!1)}:function(a,b,c){a.attachEvent("on"+ +b,c)},wb=T.document.removeEventListener?function(a,b,c){a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent("on"+b,c)},Kc=/([\:\-\_]+(.))/g,Lc=/^moz([A-Z])/,tb=M("jqLite"),Pa=O.prototype={ready:function(a){function b(){c||(c=!0,a())}var c=!1;"complete"===N.readyState?setTimeout(b):(this.on("DOMContentLoaded",b),O(T).on("load",b))},toString:function(){var a=[];q(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?C(this[a]):C(this[this.length+a])},length:0, +push:Gd,sort:[].sort,splice:[].splice},ab={};q("multiple selected checked disabled readOnly required open".split(" "),function(a){ab[G(a)]=a});var Vb={};q("input select option textarea button form details".split(" "),function(a){Vb[Ba(a)]=!0});q({data:Qb,inheritedData:$a,scope:function(a){return $a(a,"$scope")},controller:Tb,injector:function(a){return $a(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Za,css:function(a,b,c){b=Ja(b);if(A(c))a.style[b]=c;else{var d;8>=R&&(d= +a.currentStyle&&a.currentStyle[b],""===d&&(d="auto"));d=d||a.style[b];8>=R&&(d=""===d?v:d);return d}},attr:function(a,b,c){var d=G(b);if(ab[d])if(A(c))c?(a[b]=!0,a.setAttribute(b,d)):(a[b]=!1,a.removeAttribute(d));else return a[b]||(a.attributes.getNamedItem(b)||w).specified?d:v;else if(A(c))a.setAttribute(b,c);else if(a.getAttribute)return a=a.getAttribute(b,2),null===a?v:a},prop:function(a,b,c){if(A(c))a[b]=c;else return a[b]},text:function(){function a(a,d){var e=b[a.nodeType];if(J(d))return e? +a[e]:"";a[e]=d}var b=[];9>R?(b[1]="innerText",b[3]="nodeValue"):b[1]=b[3]="textContent";a.$dv="";return a}(),val:function(a,b){if(J(b)){if("SELECT"===Aa(a)&&a.multiple){var c=[];q(a.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return a.value}a.value=b},html:function(a,b){if(J(b))return a.innerHTML;for(var c=0,d=a.childNodes;c":function(b,c,d,e){return d(b,c)>e(b,c)},"<=":function(b,c,d,e){return d(b,c)<=e(b,c)},">=":function(b,c,d,e){return d(b,c)>=e(b,c)},"&&":function(b,c,d,e){return d(b,c)&&e(b,c)},"||":function(b,c,d,e){return d(b,c)||e(b,c)},"&":function(b,c,d,e){return d(b,c)&e(b,c)},"|":function(b,c,d,e){return e(b,c)(b,c,d(b,c))},"!":function(b,c,d){return!d(b,c)}},md={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Bb={},Ca=M("$sce"),ca={HTML:"html", +CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"};nc.$inject=["$provide"];oc.$inject=["$locale"];qc.$inject=["$locale"];var tc=".",Fd={yyyy:S("FullYear",4),yy:S("FullYear",2,0,!0),y:S("FullYear",1),MMMM:eb("Month"),MMM:eb("Month",!0),MM:S("Month",2,1),M:S("Month",1,1),dd:S("Date",2),d:S("Date",1),HH:S("Hours",2),H:S("Hours",1),hh:S("Hours",2,-12),h:S("Hours",1,-12),mm:S("Minutes",2),m:S("Minutes",1),ss:S("Seconds",2),s:S("Seconds",1),sss:S("Milliseconds",3),EEEE:eb("Day"),EEE:eb("Day",!0),a:function(b, +c){return 12>b.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(b){b=-1*b.getTimezoneOffset();return b=(0<=b?"+":"")+(Cb(Math[0=R&&(c.href||c.name||c.$set("href",""),b.append(N.createComment("IE fix")));return function(b,c){c.on("click",function(b){c.attr("href")|| +b.preventDefault()})}}}),Eb={};q(ab,function(b,c){if("multiple"!=b){var d=ka("ng-"+c);Eb[d]=function(){return{priority:100,compile:function(){return function(b,g,k){b.$watch(k[d],function(b){k.$set(c,!!b)})}}}}}});q(["src","srcset","href"],function(b){var c=ka("ng-"+b);Eb[c]=function(){return{priority:99,link:function(d,e,g){g.$observe(c,function(c){c&&(g.$set(b,c),R&&e.prop(b,g[b]))})}}}});var hb={$addControl:w,$removeControl:w,$setValidity:w,$setDirty:w,$setPristine:w};uc.$inject=["$element","$attrs", +"$scope"];var wc=function(b){return["$timeout",function(c){var d={name:"form",restrict:"E",controller:uc,compile:function(){return{pre:function(b,d,k,f){if(!k.action){var l=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1};vc(d[0],"submit",l);d.on("$destroy",function(){c(function(){wb(d[0],"submit",l)},0,!1)})}var h=d.parent().controller("form"),m=k.name||k.ngForm;m&&db(b,m,f,m);if(h)d.on("$destroy",function(){h.$removeControl(f);m&&db(b,m,v,m);F(f,hb)})}}}};return b?F(aa(d),{restrict:"EAC"}): +d}]},Ld=wc(),Md=wc(!0),Nd=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Od=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$/,Pd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,xc={text:jb,number:function(b,c,d,e,g,k){jb(b,c,d,e,g,k);e.$parsers.push(function(b){var c=$(b);if(c||Pd.test(b))return e.$setValidity("number",!0),""===b?null:c?b:parseFloat(b);e.$setValidity("number",!1);return v});e.$formatters.push(function(b){return $(b)?"":""+b});if(d.min){var f=parseFloat(d.min); +b=function(b){if(!$(b)&&bl)return e.$setValidity("max",!1),v;e.$setValidity("max",!0);return b};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(b){if($(b)||lb(b))return e.$setValidity("number",!0),b;e.$setValidity("number",!1);return v})},url:function(b,c,d,e,g,k){jb(b,c,d,e,g,k);b=function(b){if($(b)||Nd.test(b))return e.$setValidity("url", +!0),b;e.$setValidity("url",!1);return v};e.$formatters.push(b);e.$parsers.push(b)},email:function(b,c,d,e,g,k){jb(b,c,d,e,g,k);b=function(b){if($(b)||Od.test(b))return e.$setValidity("email",!0),b;e.$setValidity("email",!1);return v};e.$formatters.push(b);e.$parsers.push(b)},radio:function(b,c,d,e){J(d.name)&&c.attr("name",Ua());c.on("click",function(){c[0].checked&&b.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)}, +checkbox:function(b,c,d,e){var g=d.ngTrueValue,k=d.ngFalseValue;z(g)||(g=!0);z(k)||(k=!1);c.on("click",function(){b.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(b){return b===g});e.$parsers.push(function(b){return b?g:k})},hidden:w,button:w,submit:w,reset:w},yc=["$browser","$sniffer",function(b,c){return{restrict:"E",require:"?ngModel",link:function(d,e,g,k){k&&(xc[G(g.type)]||xc.text)(d,e,g,k,c,b)}}}],gb="ng-valid", +fb="ng-invalid",Da="ng-pristine",ib="ng-dirty",Qd=["$scope","$exceptionHandler","$attrs","$element","$parse",function(b,c,d,e,g){function k(b,c){c=c?"-"+pb(c,"-"):"";e.removeClass((b?fb:gb)+c).addClass((b?gb:fb)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var f=g(d.ngModel),l=f.assign;if(!l)throw M("ngModel")("nonassign",d.ngModel,ga(e));this.$render= +w;var h=e.inheritedData("$formController")||hb,m=0,p=this.$error={};e.addClass(Da);k(!0);this.$setValidity=function(b,c){p[b]!==!c&&(c?(p[b]&&m--,m||(k(!0),this.$valid=!0,this.$invalid=!1)):(k(!1),this.$invalid=!0,this.$valid=!1,m++),p[b]=!c,k(c,b),h.$setValidity(b,c,this))};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;e.removeClass(ib).addClass(Da)};this.$setViewValue=function(d){this.$viewValue=d;this.$pristine&&(this.$dirty=!0,this.$pristine=!1,e.removeClass(Da).addClass(ib),h.$setDirty()); +q(this.$parsers,function(b){d=b(d)});this.$modelValue!==d&&(this.$modelValue=d,l(b,d),q(this.$viewChangeListeners,function(b){try{b()}catch(d){c(d)}}))};var n=this;b.$watch(function(){var c=f(b);if(n.$modelValue!==c){var d=n.$formatters,e=d.length;for(n.$modelValue=c;e--;)c=d[e](c);n.$viewValue!==c&&(n.$viewValue=c,n.$render())}})}],Rd=function(){return{require:["ngModel","^?form"],controller:Qd,link:function(b,c,d,e){var g=e[0],k=e[1]||hb;k.$addControl(g);c.on("$destroy",function(){k.$removeControl(g)})}}}, +Sd=W({require:"ngModel",link:function(b,c,d,e){e.$viewChangeListeners.push(function(){b.$eval(d.ngChange)})}}),zc=function(){return{require:"?ngModel",link:function(b,c,d,e){if(e){d.required=!0;var g=function(b){if(d.required&&($(b)||!1===b))e.$setValidity("required",!1);else return e.$setValidity("required",!0),b};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}},Td=function(){return{require:"ngModel",link:function(b,c,d,e){var g=(b=/\/(.*)\//.exec(d.ngList))&& +RegExp(b[1])||d.ngList||",";e.$parsers.push(function(b){var c=[];b&&q(b.split(g),function(b){b&&c.push(Z(b))});return c});e.$formatters.push(function(b){return I(b)?b.join(", "):v})}}},Ud=/^(true|false|\d+)$/,Vd=function(){return{priority:100,compile:function(b,c){return Ud.test(c.ngValue)?function(b,c,g){g.$set("value",b.$eval(g.ngValue))}:function(b,c,g){b.$watch(g.ngValue,function(b){g.$set("value",b)})}}}},Wd=ra(function(b,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);b.$watch(d.ngBind, +function(b){c.text(b==v?"":b)})}),Xd=["$interpolate",function(b){return function(c,d,e){c=b(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(b){d.text(b)})}}],Yd=["$sce",function(b){return function(c,d,e){d.addClass("ng-binding").data("$binding",e.ngBindHtml);c.$watch(b.parseAsHtml(e.ngBindHtml),function(b){d.html(b||"")})}}],Zd=Db("",!0),$d=Db("Odd",0),ae=Db("Even",1),be=ra({compile:function(b,c){c.$set("ngCloak",v);b.removeClass("ng-cloak")}}), +ce=[function(){return{scope:!0,controller:"@"}}],de=["$sniffer",function(b){return{priority:1E3,compile:function(){b.csp=!0}}}],Ac={};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur".split(" "),function(b){var c=ka("ng-"+b);Ac[c]=["$parse",function(d){return function(e,g,k){var f=d(k[c]);g.on(G(b),function(b){e.$apply(function(){f(e,{$event:b})})})}}]});var ee=["$animate",function(b){return{transclude:"element",priority:1E3, +terminal:!0,restrict:"A",compile:function(c,d,e){return function(c,d,f){var l,h;c.$watch(f.ngIf,function(f){l&&(b.leave(l),l=v);h&&(h.$destroy(),h=v);Ga(f)&&(h=c.$new(),e(h,function(c){l=c;b.enter(c,d.parent(),d)}))})}}}}],fe=["$http","$templateCache","$anchorScroll","$compile","$animate","$sce",function(b,c,d,e,g,k){return{restrict:"ECA",terminal:!0,priority:500,compile:function(f,l){var h=l.ngInclude||l.src,m=l.onload||"",p=l.autoscroll;f.html("");var n=C(N.createComment(" ngInclude: "+h+" ")); +f.replaceWith(n);return function(l){var q=0,v,u,w=function(){v&&(v.$destroy(),v=null);u&&(g.leave(u),u=null)};l.$watch(k.parseAsResourceUrl(h),function(k){var h=++q;k?(b.get(k,{cache:c}).success(function(b){if(h===q){var c=l.$new();w();v=c;u=f.clone();u.html(b);g.enter(u,null,n);e(u,!1,499)(v);!A(p)||p&&!l.$eval(p)||d();v.$emit("$includeContentLoaded");l.$eval(m)}}).error(function(){h===q&&w()}),l.$emit("$includeContentRequested")):w()})}}}}],ge=ra({compile:function(){return{pre:function(b,c,d){b.$eval(d.ngInit)}}}}), +he=ra({terminal:!0,priority:1E3}),ie=["$locale","$interpolate",function(b,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,k){var f=k.count,l=k.$attr.when&&g.attr(k.$attr.when),h=k.offset||0,m=e.$eval(l)||{},p={},n=c.startSymbol(),s=c.endSymbol(),r=/^when(Minus)?(.+)$/;q(k,function(b,c){r.test(c)&&(m[G(c.replace("when","").replace("Minus","-"))]=g.attr(k.$attr[c]))});q(m,function(b,e){p[e]=c(b.replace(d,n+f+"-"+h+s))});e.$watch(function(){var c=parseFloat(e.$eval(f));if(isNaN(c))return"";c in +m||(c=b.pluralCat(c-h));return p[c](e,g,!0)},function(b){g.text(b)})}}}],je=["$parse","$animate",function(b,c){var d=M("ngRepeat");return{transclude:"element",priority:1E3,terminal:!0,compile:function(e,g,k){return function(e,g,h){var m=h.ngRepeat,p=m.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/),n,s,r,v,u,w,x,B={$id:za};if(!p)throw d("iexp",m);h=p[1];u=p[2];(p=p[4])?(n=b(p),s=function(b,c,d){x&&(B[x]=b);B[w]=c;B.$index=d;return n(e,B)}):(r=function(b,c){return za(c)},v=function(b){return b}); +p=h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!p)throw d("iidexp",h);w=p[3]||p[1];x=p[2];var t={};e.$watchCollection(u,function(b){var h,n,p=g[0],u,B={},z,D,A,I,K,E,F=[];if(kb(b))K=b,s=s||r;else{s=s||v;K=[];for(A in b)b.hasOwnProperty(A)&&"$"!=A.charAt(0)&&K.push(A);K.sort()}z=K.length;n=F.length=K.length;for(h=0;hG;)z.pop().element.remove()}for(;A.length>D;)A.pop()[0].element.remove()}var h;if(!(h=w.match(d)))throw M("ngOptions")("iexp",w,ga(f));var l=c(h[2]||h[1]),m=h[4]||h[6],n=h[5],p=c(h[3]||""),q=c(h[2]?h[1]:m),t=c(h[7]), +s=h[8]?c(h[8]):null,A=[[{element:f,label:""}]];u&&(b(u)(e),u.removeClass("ng-scope"),u.remove());f.html("");f.on("change",function(){e.$apply(function(){var b,c=t(e)||[],d={},h,k,l,p,u,w;if(r)for(k=[],p=0,w=A.length;p@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}'); +/* +//@ sourceMappingURL=angular.min.js.map +*/ diff --git a/applications/WebConfigure/web/js/config/bootstrap.min.js b/applications/WebConfigure/web/js/config/bootstrap.min.js new file mode 100644 index 0000000..c8f82e5 --- /dev/null +++ b/applications/WebConfigure/web/js/config/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.4",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.4",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.4",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.4",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-mp.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.4",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.4",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.4",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a(document.body).height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/applications/WebConfigure/web/js/config/dataTables.bootstrap.css b/applications/WebConfigure/web/js/config/dataTables.bootstrap.css new file mode 100644 index 0000000..eb43c9e --- /dev/null +++ b/applications/WebConfigure/web/js/config/dataTables.bootstrap.css @@ -0,0 +1,314 @@ +div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; +} + +div.dataTables_length select { + width: 75px; + display: inline-block; +} + +div.dataTables_filter { + text-align: right; +} + +div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; +} + +div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; +} + +div.dataTables_info { + padding-top: 8px; + white-space: nowrap; +} + +div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; +} + +div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; +} + +@media screen and (max-width: 767px) { + div.dataTables_length, + div.dataTables_filter, + div.dataTables_info, + div.dataTables_paginate { + text-align: center; + } +} + + +table.dataTable td, +table.dataTable th { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + + +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; +} + +table.dataTable thead .sorting { background: url('../../img/sort/sort_both.png') no-repeat center right; } +table.dataTable thead .sorting_asc { background: url('../../img/sort/sort_asc.png') no-repeat center right; } +table.dataTable thead .sorting_desc { background: url('../../img/sort/sort_desc.png') no-repeat center right; } + +table.dataTable thead .sorting_asc_disabled { background: url('../../img/sort/sort_asc_disabled.png') no-repeat center right; } +table.dataTable thead .sorting_desc_disabled { background: url('../../img/sort/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable thead > tr > th { + padding-left: 18px; + padding-right: 18px; +} + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; +} + +/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column + width calculations when using scrolling impossible to align columns. We have + to use separate + */ +table.table-bordered.dataTable { + border-collapse: separate !important; +} +table.table-bordered thead th, +table.table-bordered thead td { + border-left-width: 0; + border-top-width: 0; +} +table.table-bordered tbody th, +table.table-bordered tbody td { + border-left-width: 0; + border-bottom-width: 0; +} +table.table-bordered th:last-child, +table.table-bordered td:last-child { + border-right-width: 0; +} +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; +} + + + + +/* + * TableTools styles + */ +.table.dataTable tbody tr.active td, +.table.dataTable tbody tr.active th { + background-color: #08C; + color: white; +} + +.table.dataTable tbody tr.active:hover td, +.table.dataTable tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table.dataTable tbody tr.active th > a, +.table.dataTable tbody tr.active td > a { + color: white; +} + +.table-striped.dataTable tbody tr.active:nth-child(odd) td, +.table-striped.dataTable tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + +ul.DTTT_dropdown.dropdown-menu { + z-index: 2003; +} + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li { + position: relative; +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +div.DTTT_collection_background { + z-index: 2002; +} + +/* TableTools information display */ +div.DTTT_print_info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + height: 150px; + margin-left: -200px; + margin-top: -75px; + text-align: center; + color: #333; + padding: 10px 30px; + opacity: 0.95; + + background-color: white; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5); +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + +div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 60px; + margin-left: -50%; + margin-top: -25px; + padding-top: 20px; + padding-bottom: 20px; + text-align: center; + font-size: 1.2em; + background-color: white; + background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0))); + background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); + background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); + background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); + background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); + background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%); +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +div.DTFC_RightHeadWrapper table, +div.DTFC_RightFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; + margin-bottom: 0; +} + +div.DTFC_RightHeadWrapper table , +div.DTFC_LeftHeadWrapper table { + border-bottom: none !important; + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_RightBodyWrapper table, +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin: 0 !important; +} + +div.DTFC_RightBodyWrapper tbody tr:first-child th, +div.DTFC_RightBodyWrapper tbody tr:first-child td, +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_RightFootWrapper table, +div.DTFC_LeftFootWrapper table { + border-top: none; + margin-top: 0 !important; +} + + +/* + * FixedHeader styles + */ +div.FixedHeader_Cloned table { + margin: 0 !important +} + diff --git a/applications/WebConfigure/web/js/config/dataTables.bootstrap.js b/applications/WebConfigure/web/js/config/dataTables.bootstrap.js new file mode 100644 index 0000000..2c6959d --- /dev/null +++ b/applications/WebConfigure/web/js/config/dataTables.bootstrap.js @@ -0,0 +1,186 @@ +/*! DataTables Bootstrap 3 integration + * ©2011-2014 SpryMedia Ltd - datatables.net/license + */ + +/** + * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and + * DataTables 1.10 or newer. + * + * This file sets the defaults and adds options to DataTables to style its + * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap + * for further information. + */ +(function(window, document, undefined){ + +var factory = function( $, DataTable ) { +"use strict"; + + +/* Set the defaults for DataTables initialisation */ +$.extend( true, DataTable.defaults, { + dom: + "<'row'<'col-sm-6'l><'col-sm-6'f>>" + + "<'row'<'col-sm-12'tr>>" + + "<'row'<'col-sm-6'i><'col-sm-6'p>>", + renderer: 'bootstrap' +} ); + + +/* Default class modification */ +$.extend( DataTable.ext.classes, { + sWrapper: "dataTables_wrapper form-inline dt-bootstrap", + sFilterInput: "form-control input-sm", + sLengthSelect: "form-control input-sm" +} ); + + +/* Bootstrap paging button renderer */ +DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) { + var api = new DataTable.Api( settings ); + var classes = settings.oClasses; + var lang = settings.oLanguage.oPaginate; + var btnDisplay, btnClass; + + var attach = function( container, buttons ) { + var i, ien, node, button; + var clickHandler = function ( e ) { + e.preventDefault(); + if ( !$(e.currentTarget).hasClass('disabled') ) { + api.page( e.data.action ).draw( false ); + } + }; + + for ( i=0, ien=buttons.length ; i 0 ? + '' : ' disabled'); + break; + + case 'previous': + btnDisplay = lang.sPrevious; + btnClass = button + (page > 0 ? + '' : ' disabled'); + break; + + case 'next': + btnDisplay = lang.sNext; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + case 'last': + btnDisplay = lang.sLast; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + default: + btnDisplay = button + 1; + btnClass = page === button ? + 'active' : ''; + break; + } + + if ( btnDisplay ) { + node = $('
  • ', { + 'class': classes.sPageButton+' '+btnClass, + 'aria-controls': settings.sTableId, + 'tabindex': settings.iTabIndex, + 'id': idx === 0 && typeof button === 'string' ? + settings.sTableId +'_'+ button : + null + } ) + .append( $('', { + 'href': '#' + } ) + .html( btnDisplay ) + ) + .appendTo( container ); + + settings.oApi._fnBindAction( + node, {action: button}, clickHandler + ); + } + } + } + }; + + attach( + $(host).empty().html('